31526857646731258953537747907308911410172790877946237998826235003246426591155144263432003129957224412286426535907972491998765364187422433154287068360010541403786532416698404701445857960142408724876184238151584935227688585555418067967200543727023451059488975268525576572878952661960277592858987880693473670669950118660577839176443385979827310064895683766742667279589354792907324766498887952016926523757262276200731215220177862792736499926307153007123508713015479661499757322147352818790792532637159848363689484661355773591731433103143844851362734918191712122326170543823000470734214659308252943283432630478499614187499483332035031831197428966734907475328015017313529640637553210746753071708746094373709595620263053793443206951829803736546695438727237710460562627525056700488564757569760909054350351334130331306686302500373266173430380722557396089120888352336175450382836063354301701258795802938742310054099681263040055688734406748763313567920119923074307166953847496761580451864612151506775928086765689566335654846795531851407842867929391856046175890149986493991092974823443967932632776761333646521885918551540000346409005366720430648927370250932987368847895527795618277873027235182072600640698657275661017270509340596768394623924074764440674770164670399519003872770115946796048710974351514893858196739375340844303581630284174600642346020316876978360998099827288065367814891582518882466681881522890051936223279029941137206778752955711924743694996690447823673592412316793033241211424650957695044630019293694625706113977496238889333062952735539892544745503494075105688633612037300849230499127178547368752746698966163586925767256606277223207556632539831617123307505710843109927677420818662663537883791888880899450524899653736743298996481706177292982441974877262690699308540256870067880120001827441877574738080553927271381904317693572361526307822728925094876720570760299065468523783856976713303386986702072747710673519727979289305682777496303710996606406182968496939450438252935889577054510073696108844401262386412750942850303762821624174659274845663491712469358256941592206013020021253050840616875607341372624415449200347921620515149981478004585360741080140101112053129457487823092413878186814111559599570360177615914681537605557033654956801302029925938538499060057286837441269700768556795311894179692358901285209873426992935283360066653775369352973625140825493518909907140040949286927314067997336218550612749170351083405199603318375514046111201045123997679301923785302142666753453071476257175353871438379595945355173297326510108109811896466863359197403291261908353827754140502625906874992123344261175933438989756905861752575592595950811933041221847262791465404327855689201431321173883176063561526585651479353119202904398240045398904831281067779430897467607232911475311430155113801905919283867087757848370943560591709483457884272763644095770029764528966865874013294528971472617407588549047074146259539377179324730369768832662920166258778447007806406792831136233081518412253880356389216141603817214477259920531118910000824580197329361206125958617725854056533733210357037842822913603823862064295170568720644383241417312978364813103269418011558525870361686809737809067162901955372764199201786863901859741918817518880404882163975613183912774529637256946438705354271269658116445675299506557368157798935374552536918477115091093216901845948005974296879154423046032043280592782663397917694689523299186981316261465460473242549390864144815819696998602801044434283839982367405354062545085506421061569635756439954274933642232427425772506239329722215051836195034198057821081084015962627328569632695352950349168749326734786316268226041528780619249643470672837804518162007489371780033993200830952179435043388729225797849822537664357699214392393074838141293345742218772190602167364998790461974168493294775912037473720770295425659470783544479944025660063148872794076524886852477362516808674275495310811656873348831512299073803634101557082815834160339507449574352356611974604759876026804353137477166682262276021838192015012912056152873939539020363219155853416745871641512617679736658773673313400913472300810199338243430257415246740958366598218265558454532314901166430255890867593703898746998091548710456140647900345452962444249114256505022625351815875475972233018833767880137624102676428863033333875305844785701444021285283878648890360607191443080632586025885951063989205073876581586966652875728585044426257412075994818649613345679113290928394512860821642062391776858173670562048997133214570292220213736452328172249489873223372250096088586476793844369331320175367825317670146292773187707485806743326513979813046084186388100307914710840410838831306744597138980061594040144763480433196109153208878898462713637483873403979557455868333210937462739726013370472005961157597411568615067764443663859047825177493933974217915962338734878459090169396430350946448587613888402097309618710084156241422629942258106270447627883297023232071812939950386168562006145794894334829744107540497108440296062952335106561461819669690050092392911339731072490468851771051970099624800915220166504599444401696494641658015224773636111601549889674508060410225912773147611987710276427246729207809001424056847582331383553226565811302456117328906788402270465840784312489882265996651876446825093604835794868992801717664499949259389347617180958244203856544031631672505749510655246907883776183325822900185061633840167251059464636289321984124094478596218616001568072170767479586566865383144988765816818339525155695134416023608638219537544653224030523125998049260904742998335134910183052321131868220216059278791900411806740188087072066635222219405754094287017889843590177232956540324102084192809233184703255839064246871515995425285463559817059418639144813537061545528990445541901833130853548710468288042926903252178034073676162796418693163892087941808476068249761000564871419252603020441271464763049741680027667000001251715243820239303257467531685714625484846882216899374724058222647941622824346257777417942903230542155805600551955034848783377385264022928009599383386312059188454334320550409173946381217498647270452831582118376094606785834058997760151945621409283975515818639548760569837917520909318786999638568142769396850379697052115917231121161126901441940518500427052079135415476136709765488110043639392508428086277530794053682122536858549428376644284915937960942438308804460830423919891561134680713088363027082191132883110430102714012433325989943778301336303377047750735140429931339842614356000916216123912615808783044267254770484513581548412392747837768417002048359088285878064339012355539295719195469970410923895818897375844671761494156067940899478227051308771502147187337047513763596681219823105707474950331535527526343801783347475544283558609505876610867584510467681567682283165848347219661101900812385560590092334808421586585906955387981374391829362902233281839841129523092015210907808014818788280877613199623739999487641686031543400676458730813942387020762308911904503055654139509591835711634554206776041084930813456717247968856717718439593477299403797141331224455195488082385338096385152475459407514931745007331333276587037503827227013247334529589824132234331664171899085938443617930277004765817230814432750078176477354040781230202538171272009984731949667450563510182830924912478234624500405931802185080615236626773931738618631722449254752840655892234393686721811941693533922818538827177657614963176886101242679732959827607760711001467848983713823009891730310194738038215476767312931160665009505811597165063798669461465992624904972703284768506513924903946007679552485520098131932557337233393590023139996440018459404360983427260812688672903034502919419142663644713892319087762156019749970098707696002667084243460387563678198250353487355255911950346541098534654314308576637438790685483356260749457940081455135783463057823895974565936020078923697810094337018817002523947784991145918489525157639461695098114705454870446848803189620765798203543887005819216055809834685111728201745786623752479847212877386646024030820272330803581633844189760735264631465894817298975002585636027690581458778582852851299629453930596812052774354288309174751877431609564052753147957644311397206920610035177587083883100817359436598814368437853959217393249852234151570180300432312260021116353576693211892803423778774941769895789349349914984961870249366398842351715336727204120158713624948592720090124682171854886549523546520976217543783405810805595900226438564965217534966338223036695003502837254457602332735169676084862665199022567126442822408925268976167477805393947340871134684572567389548585588124438985346254255261406932933621260172008288865773684081673261737316243574992087563129788818144891078623190093571091372201003375353555623332000352559662207164499326841575897355323518904588094094478902470599935442430896456963055358284351220468639658774301089107678172669740797028923398813241443574660119707803971496898572626541104065477326866905616230500864806152528079030740175132405957450321303266912600288073080604160593725441498488311575772136434650591916692065593028861147300838622256333696932623834930485188583177929742295945853425999930717200725462057821640486902118579505238300246635684126859080169425387373485550453433129659790167130543086568985524223781058247620876305118759730028841769705689595561784931073194197874160723579329834739134191717971780410128281153022413345438830142338146717815547992821848356827146236238929455408327788346319978551927032514950569099847534073433263351077415423997624789239385127848206764946820741265562179365359403745226836256457363814031957719826033194456255471969223679580844866586910348367768902332393024998144415137498131766722259044270798797908833632539512182976288212618512679391347963680309005873091616972185628242581446793877394264317502104913851400389380662588335763131252196062380690618978426337760224960652592111961333837350963281549119781620009342536518960877798169482408675935254727223141057515822470860673453908630489646284645862580778363165630810042277775112352499238065886216882787889638820305074738747037471882001568287617610977985238143544585721531124043014611976286531675900260614135504623137094190633437616794547536488501896044222099750175745016175014785779901999380966297575733794486905524263598221812674307990881179723880925098206569772973975725465017884865316486069937632070624138060928161009360611861882282148167111608595920156978268026864636205844378141959934595528465705888791674089872457794350810461023773481181791930212213644278282743511799386008275615988096865572583511719962131300889045692523544760604911518045384065456775146929655750342289929739157041639049040778375563464988703947046131196817211071688146972167672139432309779995265985022041186691475347842548656871507448551847591446787449487483287695820285392313592521151124756005383616813125091264711199723680740341118602215675806912994065213764203890714906248533877244602988398194792210908735735029475748147123466035979203746483165997142315491079930692322506000572824325494498909427471945319298967390505305579106512731432975352943294491377129662656062742540938246113022935031191018535900998986584442515004072467040975506134802733181835243766925764696312237041431352609135490197118258335973071810150578767223415647309865529243798403888280507968542946025815918714032010432257927914395619213357507765699966730425503711488382775706250719344617013741159390227765194262449978421983114140988798919238317320843601742684928570004372818381272061218591665319208243469684314160812340803828925483238471090657109979968307570162019220301539629008837956224970130311547099780612076796209951264753715904246456315818463356360278561198615038853209395844337680747846885770983577050262900269642667647668450295106963770475722952358639465714798879797001954766105481041599807577106290431150083534786928422556727084029904705707428422438150560301605184902618849060679389530455570245177096340265778205351228217224315311473620224580880031880600644098592449218149360072803523343121720881824070132937512365283251693133094258740099699250685435547554956449492613879749330493668751598043371475966047549369579641806084505003431004396838987916637964800960631797731917793456928309537342705768509124635788752960776943369632985643263067521651466574671116390878532145881872525336760891117742067160603016416690174827391596857394406537598093776372056242872691793632202590044826392026090924892356976427057626837484911191169535952456192742388147316314567048181843615792010722974221033086992510855518368406028841671903061404391108622951392974721790275434555626036281661111067147283907068241297336136116684780656386386025520559112524334033407278213003221932979442476709216114857742478956115603812399546352476693816546540721242500298897376133682958571525788117561930246745341578170333156162750625844002850271134253332562262427575370719280392091382856741218924856384926921969424472465626036216547329646586013361661014383058999441480942836234858020950276849902874680335242318798727085167951253740463109234045567615019545772087932794521547617911979217644978181168478305327234738950513644232393093882386610011468332508191031570210900704427369257484975849667351338061653659414476353821214155048680257759942391961668431885304247240005291001199789587136583739778806227448022903320725367618284954750904599267832958478306854178442952840354025017754182509007269085477415908169946396252987636709963316699683575126507944776266011526382854361641738581154968215546598876380481075347489294192522662864771067801710593556757117529168336371628332125743664103661240345427036537957420744697746170767467399225790067828714607492790367172277338688456730310332025259049718779371390973658358089340222768667883870001979680617357080273720927787976295394776613161825736580075366828928397864397205876952445083383427989709145035390276160569925038407101040581415835589582687639419621755825760713918322636205511157878008689943393151065828800104264803931834698562840504666263628879389182106565421454593620854430001521454915064836674778144359173614664330429944881494041842884733519015241450284965766880140695683656326208972564035990406670190589909161158701874276661645543938942866658407487641605052759944814924923661452883624279927475689968730202400241121149109096413015885725491014327308446024692501223026952500572029543717642656143770490829308657060948749691845209382676902959871544615193721668761195392560481546665338461920637018215506283823083992487985119557092723490249064307357802437857060469865168457280076603429322802807821343783544323205380774158257488203103431967840882648644930601111062628099941112851954476245735564270914072842828922400579659625490181548940711984391089463037980314058541898616900258917376233515322514488921578030642370102787147110972691695293733915503373124739315392640393070072977858059361246514511897224594847017411581869953110904198139673380247608792688146629689492708357078234981645511408967453119514073747380083471704122261722118423073875282483529726276806618470168755763333179443790187200030768175895957055783255628582732500818224238741399365991781647962191554852326583583231452932806797242833988777529513209660708021691721823128996307892492873009802301477982388717307096683262656016896100793695506607318326967536141261386708861380999409019450991210689009831006661628105293737169913383253394396172033205902261770380494595518654181782452173803953275061290392163296081729373727753694940306050817881360720944164052261957707323469798286269269798909211169256247073791887307443313221335939918670591423289443180668693937488838237173960456418338811202069103483576020764991777656726994866559097053581398028715519297871811405830053369742176704311234298628859477798306040794044574095276794409739003335993889054005845261242913140398524189346280484319893960518535379898003233582642629701376403395042143330197761007864710010505411656086763275046009314095909994657611330578653916469751364435923408802762842602531889165107513255187969865830080946397139033718221527404469766553654350703436648195949330822673781893918715289976239961910180012786506711563461414466779020957259409866817005264778931287511160445446759098207206324460464056015558733686284941471722142011477963351711557189929886449535019273242047492373819752070631636616693976270048388979994839240510550975218008374960627995712108660378576252126251755754531326441714538804948142486193693084399024482095658541373906477755566646054905400672774906345249197933986184087760347952753771563657977529974303215185158282229721293065469925849481944618347401348289208005686165501429900462835838978641623586355098118474440162165922558737365363841627125419600893409773215536692108056117931981559537240762915081237378028148647661486892661393334032735319356591796930677347590990301822739362161968471513459978132752871816471345232141673721284416124744805357093993688527637581368936154182477569170100478136020869983406421023196590783064455152920761979268048133579233263166194667886261706799560205770199507301287998597596439741964258690072021781616739559473450680158088219640498070261490557876798593230685178980366865751077392892754153458203138145538452768308891056542284564078314867521396162356039217585654157033735307370264999906613722616291932283626871585505218593361616793562812060693583590664280635369755864562693257981438178242717376829352683951780874977656426288973000862244706433162149349389783559495151502945172632145739211958072015190904851727719103812101705414648747204610597069920224718158911377173960954138836577793300337108237634525136096381507533882427117018091564388671796423454384410769762034184651393527886304709014140339545617427832384986974139453316038725695070225178591402196828880158763549571764167524466952679770289178234612811488419962458688134866209740125046414162139645427628903184498814596495336723323949198253776697750424515496729942555810274037905294008758800079995146378518346300555328738939884046879793393954258141172239057515947762268608989350568542680112434960417089079236401962562573012729499733384041545189728073127336353806716545419456429386488739122500730881362592644017689389051550098481271757592037337456151091405319980074969104482984700228745273331139610615546361103634665167300137958747628392137024757317285095445713936830154985307283274646454345468538700391606000910095950522493259051073918473177522412976150286974379456157290001279164281126359622168948349524229696550836038608557247022594327282609121631609816001366235915540890809137712209950047890713059849862624146468145489508258080955383019359929133442230320061914544115925811090523239541907031090858511647014370708674241183027206586087656228137944666022776211906445850437948550529705290910849300025559590823559513782794807363325141855569818166562949114901417229303461658711121935899098278840197218935082484302621884251573046522273771599189014853113239867584787100340710354043621937210781204779559286794269245735855347711759703947120852313376104075404408137105709389284099487312969247039150575302963357606929607610382670201841869670032710795937797350596959021041919169372610408693906848189948857335599351998339910237625968319401576459472146493055842942965139967725873832243540356938488630954916069432466436059428255885054979421983018463699851674675579364619925781393949208068253448993295476524117779401657017119844687801084807766664699401969737340984394201923213893607268345221342039632782478536712783465662800554160556067421087791022315792580096920454517026725842201387085814787807943940876473710724014725653077400710543814476741673015785103722575012138338824969238513462089097864406325891969700331932720287507899866786038642207802071335811932157760497640490579778605521964580708468289950871734095404883545073988602765811247013113849139386241423712242732002305502634959594979361006177083745799362354761906660985797139649041169671705698247390722984075791744512582834596986239298281489984749279161192719208242820052209064161806424398613847107469198768691368342624832285234822688118303243547291642992351782402482729156840113765553585214612584070126650331577337112624452660861131076533455603358957901010523289760597846864512812817701408588772633096410859644480054254077545667186600395996935386753657126120221010983491628976180657820097563650027893505100228294744554259871113092788484790202235382623837385607201547783356548105767193565885395375692450200584664127370226646802634183812854914714759407102072280351370643271614015203792043463422212684379654433999281011375267920479620275996234553784232347352645313340810046588449399101889748374216466887253604795063137771273097633500866140445487085467657937428264520675155301003626036291235505057077418668249014198318342288000027164752916855307303625015410883252290492004543074176021100215132446202602231342389482988084674349360160461772655861384059016421850131620497029153304107475354127975773326072985771853638294148251967731848997583286582202754637058806099962564923216440164296904073536108947823288206531199944574996679457962721649593587101725029278003985519946886911441510286004478362924333576248692020033447893278222946105872873838961331780948300794183121373351871268309862106730236014267414141224181896615019589573616363187742401936110588320509654379179062255366874714651824970815531104675980625460399625192620932253965525443272986290635491012756474707524356778082251494687505606563209412635928889581090960198694113236317139735357135789471995913605220437486902455137923934260364245081320293945071181740334153858785258971981458369140166437053241864589228514376896921846881513132147000931824558305095682301366988372399115740332072205277290600230083650174637990153297646849685865418832091034525116601597611367469540680420429672308694332127849700064718173183645062137729655158228016316720787824627249991733937209769851530996232051771204124743907888814394001060066945821736144592597755284797858156908995954768696106619802409176375704302633100202974251591174943101945493577278164304708378342152337827600195005821026738970752536121860038216573502911218107899109335968030113876535054255700254445827295088090123736524011185956087610090476771874335546237748025668761942914241779829222690849943157540506694620374985892111906286919382848275581250309649659384873067210670679464162424846249716325679198880633972679561482107800434316153114386053985490035646245771145892325831997974839653313430115440121926176202947799848310430613485333275756285735067514271559169322231717038115681989182870487547601923024008119843130246017435960747513285793426453570263518465040986376585176765776548818488547609104642971020409398316642631053251483429142589108195214726556689054364904444607924061224630858051407013337145991236260683224096915798674581176517794967962180629086721236957915584749107533135540206630619975800461761368207888768871062705719828754893506751146631040248671897003777398426540268293103778445621814537971699846722199950320456269216353695434197183709801139781861218348418956540646959610503661414789215628485288350755361722088910260483671571853351637455166734405773226231291463680047220523334277153445796585544001953400932503212114167833007279499321080324982554082291649805243513015969026106154297224912665764890851257657005670274873933650097827782974814266821834540244361713010734575276725065079079332379007884960752935560314797475709658366959191143767502237363931342783625999951375551181715800769663904518575627520966200830331300951890934291997942406178927817924357515379787165660312187822741055335448432337055473803165565400391555535203626334861099036005603184988211031399924675057726103179277154172820342792105772322648200498752272524737807225204109169720868600414153428475176543006266928703307285773541027138998748767976336597962664975303188627061874699696691268656906848703579144006841810365568221674300303833342890156360225529716493808521330989554238203083335962205050124867680237309220762709593460480764142246053803445094860014675606195069325524236079923279471661676469196840568123874712324608103645443680175413947249522893259330848681818394807482062925450815316148708557014666006918944722884766730453817776147570585480568162593118989147782060644596656061127794458599727205821859611308889952367544756192692756459317454567894102004267073926032144365904205271948092159492396669051751946629546423808991301264650609159159373403583143621538326238150608935393361934867602265586553831437166339048234927326860008699612362141179330991160693682498035451527541113258306879459796647293594504359900470940370466262150903799416368615073075334266668828980158595332294648456316477344725324766855247799122663152477133515786991027729216585166516494744052608658379819389009314285548071805886244236420239512317440628224217150077340330744951856600825122536750247728502211070455205750412466443462160823179638050232168577749517450700293561623507014767872710104859701751840564730551849707855900720921230912391321622227410616452612207368610170853066274070666148680357535274650703919032348554974724963898936097302799920029889562138773700884924749530924473179183552872572639994916018480601287270624793475146006548894130703937930582845228761448874743977906295823036274854261362917328565662642208685713400094824519827508733081748831907908642868766650166724212078549490064591398235962567588724740779911801415928933772166112544289607710022713978733166612187760396838263158480740189715622261993880655965729001423162946053994230792231698751055689777152386374946898527237094573745817001499861582865703741211145310039518061395142145210050636563425164307450240338874238834829677787980167874690042577585873062316155093091299163034585082060075730379423512191003618449669088697941180423184021477788435359456350232471782488920201878076660116990714623744812905171255262343733235758735919404049183400271132895202605143901917367354108468655120085985007212214472858209297258377686923180081061521126771026239305564657834248291975839673542811171541310635855038477450051927949774771314714985495977674737084213736872593565803928346073167583433225119795913851266821402560867119221854200554279803405336779066209310444281550071520979646433626857829358560473136975045568383355601441042875981526290951662892212468682384993638490565689521367318991576910778726993553018944925908855750909327593029819620706799072660863249190046515473867699885410252756021434524657762166266402965570437776975111440712653739343377746807463184388948961326935328974060320681971532408138007291945353574021883738633995965967317046780568439040770307190608690306057012607765471488790275924562631204642466577865565682127681954689070321893901415918117646514241640457034435389743389514726371119078316710493905964508803479407380454410079406369441693015641949863466584087629091090254653048806851011587989862820429635418944480801671566304466232893560185923518945982694717853558135301850745001056765549809985189774767946762006942100649158954861219632643081630757055027966203460256543676688428094054478951548810011768776646514665963330308518201445699200937909644503931267372905826375336627413541573077485976514947918426649555456873985660917877930981686293246811457470116490388662920743098222236403009241990655404252056766401015833361690340224132509644095792771504093080249439961028692426619169024759212730433541339422540150024554540477571302003433157203693731623971019166634836352799653911874235909913448120368175140152499884174678861506271763064505877640106949203752820276213460258881442032519837417222773869910193265949674919435227048704604786154842141190392855626713959817501424176485136888405646173546932198165202209814351431940379156451000839976462304272386690834095611364523142800543184257134282763864829803480766229447426655545728015245094443854674497462898006486879863355406973034178862029903876418544669432663412422330665061819849522443548314058522274357729117511809195047702272074377627273819926510062988564476901891546340455252333614017660602577259684512205560057597827044700347385994965709939012119695668032389586318642736377097953418970528839397022108416506737670339204152858557908724351941554525200397380298978463883242686041503483784789453580701007223118831728270463337262286928190746423785761253598684414555895267877262554849579973913264510397784701288399979380125760853846571581457791370122931358773305023426331067590331868196790465229544118259836494468458109322756296300095559436612932910294936187709178707611397826155377853059428258879627375091443716329528932554911556567738241508731436889121467554241605178448487137418520722783626431302142500927041436813947218675274377977720017712656553138582392669019032677219191630090852914233441418040484402711891993394456295389276118456979151982425844916148368648488710495233023578686296628897406234010003482902381443698728749370158187464185472760224261107165206815259795100664125359131976985799799781325212859790161482616521334057448573914435991617589890674979988353348320260448294204556436092545248075694492259009841233358552642091840623775715113766524872420539553015816657056565670254474200131716512259550451492863054273591434288365145774642111354279798971971120510624829283539293666941443211538603914119431549010429246951654699852828286680099693091985582300561008068388451120991923740160990748676183798949023068441397152018010650981808637263405998507906499677043228121215391500938666729708879188319229104817027830249116271033878634660941353716505655933386601519632155692923895748605329293939972257983848102221833457524067450433495942134407181531099257256169589495312832935103642429869178823724469539348693650587706367321679726938718881013268528534599130075201401227112802690235184778488008739567126836224264628426803588868279129472698126208890691812687382131962057964378045334109339314069933305460087499508650123316565561917572910400449776523399672719582405858970814642658403460706905532361662766722901209626346280172474782521881913533026248656589856083410825768282975743600816216185458231270651688730913650468099450929889561931875723234098202610974495969720896837530682818621316268349394001187744712419571407972109971848776116163586604941152795813780314087427443699137293999715568153846129943414059137768706372958104754667587926788191420989940434464161227499711489939963545632042591510483011887293201412589709133096894641756802447358986703750385711016915228492746677037901723838213550029596519027888530803724780511405774202666082423144359858372968771472628234635285271959925738032798910014288894888447174660410587113322821224995221817345296676916024301958959425047283560203256159235248971638060735076581898655583369088310161942989159125444800090777981372354659898884631761010723629107599507734879166457044672446722011974611136482676521787069001371586186768081535224891933769391239060190871172744188667842787286166952347745266359000789127889523390381934470018035641689336855041913578145268120631157604081727517971721387319854885595862110692862456993496494387751464780408614750207487636887672989039005989560339076935914306572544403775348847375974896070974519701395074227609807035179976228445930710037376069701643319771257452388109848352218230914363270950624956396250970407508204129986429217086263103803202709614200046218727061177497022301855851486709091256353977699819568522897592346108081547242451032888166923232441222468703306590417561538201059628845650229431095098979756859234800613288434974151978037423948279958761074310676847241500753423979486737540879632697791709511739493023125995627951358845310801013998200803247403988250183768893590926026762701202948910425497671195139011097227219810516768007880770658832923667362789185404645269990311731604523862674541373147705297542464826352143789477411810304232645576816873162053357774670344949538029438385866693709888114530736832410535515891042553214783626653542701400860189975289241592584308256248071295639588923816859239095134579210736298085892006547057980020295577516207564519942955424181565492058212002710402700013519786273684146866464465074647571533730564801753253622004251697400319799692517600380258106239292898080967906424763894993504248147551183771821693060595026617900461576334873446556552794979815348251814692456098137467559856089339197729399988835784322849439643047604286223304597562623851910517972687867205036092504209281417437038305002681789171397057906806329369021862429340038972665643836943541190522238707902561155648115826841114433162483435730466788925976197935148308735056694282409561453282032226666559926673026672025775203607678611641034386119464585164990626430693736513230837223453556817528943759656264371261620386412943382378265056723641616953872542374838561505835001580854499931567348111857987952745813830180434759581352215476144250242307854539374079778795634648290079014631157363891715897430254222944047336091394017753482618217701100055196292783199480127663913266789345435551842854362539672996935197172297622497167481343989269742929947896433558724854869244117962754442673254082862563988682744358187403903256866879267628097145152242247170296120712822709251949009026403682937006991717671128158720512581501148688525716655801746381823533326861662919560132476903725255706169722952652881402717207410227598897737046985957723200365124688050852239545672076566114814104158054677098309510100778271465083301355637757795390245232248738732483989497620038598436883800781229684251658084681512269799884711185851145435050091391809870166057817414825998044292353610484970183857292061190877307971400553784421098610024805172961104384315081111848696949188844793577127202975462418404805023040584139258539932976223332051960550006856536375367260187816928500856328753472555841248753689383208394917167176736440786606836866065846062819195420989466545029578944678575807891397964983550241629988895234126720310806326672863106828712993859201130631816824575017200581585074795755439657336066655706729221821809254641790681793611603961336975197798107029542975817098618073458222115851006659555612882234410347505649319187416071873969511332367030555087020468350576923064555691869237718219373669619442727760806360311576075450047003868000348043342496678925566392354675974789046289921812435200059334188156985451794332738718115857344685587316135355982318300090289954833770079413689383745146580094129050838375635325018258344546269201010425548452064228310449620376867939915607039773792064376648367173350659651556915605124817289778370922634020302632680427226570098123679462916904978457020471682467875408110796253620918277662539434117196226294337326263922028910085737164562312699918503104658804156606541163516079031190639323918324883280152207643551880725724101533564908006763423273788012512434485346152676687093131201825636811817529204266547402172914066449921402623299777266195327055477720516005158207647705335534689969500018287019405122929768833385546371708722218783465366586051619889433172321697324732998618223217235599703488852352705928950088876528670600897615981005147560401684300590584660579656454114931553933308893325216073723832741093479531082997931368116177248715945435295500983093894440879679390688009450571098278926345756737221280115074520431761850849214042414166970358306489259136703616063440506415378940069090316946229169279413305139092259451981632817471139101098525132484478367930804899304132173748622337859283397866412423177439309235107119553328970401388623457165193510128467309084644812650772026406022866317907486545706651179239296696204034727291649180873600847051227300946903020677924442684990775741772391942457800196401900915567169096620260800842430611349162578434807293132327212527267232124616618327575482927622696375528197671629438686773497271645762298080948981139939146797850108134600253079400241711117212450455550467413298579324021747144117268984253749701458870941129969592442902422902977970913397574479474897891047751875644437227735767653647805341269419106217609875618991452805539801042008530779067338536373432679165838782816240647911728452819726630151563040462135864232787175942379165827445274342387182711710611110936857862843974434377797542208058541127231444142928210706491037555633748052492247369192049343325273844867630855144560284398799372584371194505593561239393738945368468695037670651387289106331967843623551655501619016897418696572991529756500133982027305895943327817792565756108539868847466172321277723182219580666448088045516891634737915786254052353083471562956234468453316882090346785397064777759053554245876739478245962598939311075108551276725885995975010025182023134674349350960032163994252423901227044983204070783249126636221283969021382796870779656308182255552074509690739417462590524556945939684838266827789724462926735288139305382473877148440070649627273504618290669907672825364708402956931183761225738773144483815538717877115836174693553797326086592386629686801243039818559707696083748482114143464203644382180116357121245864192232519988335217307823057397725769309288600606054876965847672609432169717159830102691808244962789808995484227166856442497164152212110114306144138620681901655286909656315451882115303982899449573276210762409218436891564322522571374722688172405605717378344837321122837047235200803825836865508485551917645414936174719244455258112915908629606615239520141811793221355212942482262431421148552486237530320523986601652200850444521098008311321911583399233943752854599142313619561374293818679565726094486258045063509345264384750703182018576995580839165879525589801293180417474891416878936761000413620789188021418683502457072364151280168815719838712083601679240119781387415618817777817271590528312916045655539356891486912951016977442570203807308883279608635898649129932437353503410403428393077315629010184228024590678373734194804698443075573342052543262673277219301134285225158287364619138451259237587747456812283265316824925220767271587514800048084221100712405358112399981371017232685227692537729034377208345094673140221089820234295845039876242565266626530943751746254595329896813259876049062577044630265544151119852252971516517393707538276839354069959566784327773724747450027574557286947506221769642735186947111159975175833782502303468485271801034917803784175368666921857413103422032133592848811300240821190772224328988446330695490895395425897879958542280567121743729827415299963646644891419566080690387576633095703075427617772948195942443526414548296860060852310165822967273226596771580237695476415567266191619072494189454337562063727870668289943925230910364742829752215231959950535137548056880415879642211467090014840942525912430505127374433031011815709676492146254915550769358517879782307829339520527203436925004705266774675516299726712550205491404675460467454802832286127393429501654962736813562353002039870541541369725047141500329483216100318769912183884575392548331657313609956416829654726802378257588398679606142385005826499755836927750185824215450798473490746451455807687671540555518099104261405865140117415857536128401089781685674304992884445269518635639254256329437160395486710177786877948585481366255007616360146727758744708980493910015232412061857135486478893526260205897899899088406256161551259988311485718456719644972260624471970753501684002428922594301780777931420435736094763294452673729146615612956482774233102049870482222515974405032153886685319220119491238867414775741208630939927827106001173838026310262315171254940681821590857181760267946315600563297574297164512236316289573932760287131919502316840489214804522413625174675692853629755643952325646181552878001493567444976252969352195540297218288585731017046872782213200858078393312953143260092547079160968756995398788985675864882542719189821735276378407735085236860523824568839495143361184010747788316848747760370270120929975777446496430715744316643878786416143123853671850910624082228717854853166390248749783246807581820185072778380720331421060767802791914235528169314336568417570753494931253903357835026389915159311178092996935742115781698269469353761024168214367781394355908065931533455005437658679971695800832284414517778041210136810203533543786820650408158969257986095351367338550418333716521606639510667466224348921706893743752916421666777964731799480839529741782210455422282280209513191851842922345420645389077535373448798362645394419973456907112596806294393328059863306817953191050431136955474111958765242532178987982612146274730627160887118052079632334580556781404487208601518953509565301973945014598275245419107110035886418309482437317613872149472198656676019018491103722338090773940270678938926781042263269255997446146239225262510680080495579844748300794603573383883667583148322185102289128962473136135713429997529399908607116325812587212343640889969897081167067004571216741314061832327307977926831323173972672248180081320656956212197358288002393421059973277560550808536035518045988677794456491194574215393351825762603748021001600956114335201811341810856428052459068233124158892217959531430908060382847049389242836951347970062879222119107890671186152382011727277038914632979434153820948897217583700290709314151516141460144965391802400460753518695726238276852675596365382899729458272201337994736545493965378302991965635522796825192575805293527146678831796584572477804622493794294923656992324665788890626149823791360228277140702798102784560256819073431067891205033701003860219692077598894792237565005486291870314232502340302776633630334302847790887858899138435257430224177956015243403396952945632361580785170445083699673509077122946984211067659533195103890100118137348096618054035535266355633462201528956389769156843861070461862437775093635643208619694949041309875288001811144559714642474134039499529473601803026308802602883693225233801519905786398566985499586337566017506306885010433244314022808876945382934072113341036975846357657945473189346766400275491013910617604444931585181865724822949259447460505180500686967800835626698753914874543270103512035814688966452002316038561992442388698958247314589796136491651741444645900413194295765646709505699256258497750677008180524366319684106391574267049104297102859051275802904078751990446020610602832615997706171684582610721995728671332523720605035774951559302901053052702391924164132888288343451721613393027888028542510798814139079355563540918540588540490503709354513339687935635338464449553383638523569798095945087496781043220054019189472765279988551822366265372984769887110443924956127078769188854094878507132619581663209101759666482608437142885200375281053039210521234366662023136913097888938836651707269418860798167707204285341184244194884644737226817847888294547113871334547066358627522488362373850870581599177072829640058682087172486218628679218894508041025767563590632550778930197782939199114063876830520699425505638579535546223834445138708666101471120961617168138579819713151600275664141778228595708825199121949200188725913304832168317028554637434456111854024816869531622783902969164229319191134689978009599738198297541271613926555814038235864149530149410773746277051724060060991539037602216330769050770422552835426191584454982947811917602221173286784296672786187162565527378238773689509757733071816091755795765003520527119663830399465046580192642302889893393429470017916251445365843574271929750915607036427664554471024834721214812654986849025255288561388358034103107682865784730315206530864105277057861108736014730012313002617244696067222713126383414433845344415397747422617622968444119276013480277090974938653996015692469477125700252938502686603150879556731738232485989199114128862141060359966653989330850351923518969480569227352088685880879891622811613230511249449978531743138832462396625056284793658367777033864796309532397984261358287023488509674543954416868707821988093095866225853135386049829000197156874414810271417572664207807850056241261968151814168143580821053944872947393528972881034008338899834429547433141432194684540234641575562977779809280526172102665593451883854880424126296251376440535032241608320970320004706727066746284758636188217273481452624948224880039673784414295380187515253212568905145936602133231599987049225839195046692236748168745391947334767626593592325227299345510788438169759601673742872964909339143725702774611227056397806889901683050379305440854622381819963592060925173370147907598762049187046492520051349794311241721589065688182560717164333869063572998473373186109222258466128638211717262778477203880396745302070996703184022625475651334236013892998712230931945934636691485069167896316636996277956288201631726182392905583547869867437937296795407995127181139400247811886956010369039797051889141455420039359158876579583210585820690647563789676763185460623900639273887500744774759877589131105337181973219443914292531000805298202092548164423723215468540224002106573719005787202199148131232317128193605746449348690315816542111677224976564643193362666147380503339985192247296499760696554783425033729883607114926983165304316750115566387735557607196485625616174132678475025735368589412473735658976448426995848105885239101245308779096871294366466700804931486723291252265112836359056910602198922188017145562493723740499347939117477392840082973132546284552405972510572052218042528254350501692694238236613200351936776207147429728915797685769520153537061391156859988799790200614103925851386475784835538856508384585457253009954182704043157028269913002352609016146838988537117893733602501099294576479695395036250110207004378773124579780815669569261688766314954332800389538220143022845713987583720271097115642678562512509682326457404227460224505911600063683629692432456349167846884440006085403461118633165558114010158260015044220183264600584350483139834077749485134861407484629930459086537749489240426345539667322099910756590379100183870643078907973220657614623269482564465976121105135563063272701066234718205642698436348091084788672447782082994737571796730601617968600342969628780913160972315750959559444184352002477316380571025083014965013567084499751825831767355693145338890453281509465731525215653954872550007618667993694370533229047947349166366263521751088105707520818860060548094019035930110968992909874378917676414035127119112290816498627269052412816966726409523522591439987493622111839134183965900606946613721024847976400852434236609305732330079875998765416108149306365629649747188566153487677559008960021038904810292107799630078840380686711498157943799147471295747694515909216723782737435711944976919567123133573729774210381682013140273644655330063406012004908980993894643826963235240143173972252349356422392203331627614696780709419504160124874373098043032520787391369121676418176266030571771252297943430603034029613502037121881989953268964510446030986078547289119601603595936317165830892990223149747378939438557160690517588652270590267214641341578248520448545983440827039348962433424178840557296955130233989737937284295932551138785688093498821254244379124557503731290506523846356931062109969879040429320550811902040603597646603754214247592810303408603608699940233755988842304970997239510251832090335947187965564327908625964440453957296434890143075377271918110906402691253681279435315144207232704824549693093672419168917138206825245218178571367744590314539142665654847665359722463520266986533352573899817724219230047485834732397799700819428278489845112380048140214699329805747935863538084148460112609996726383161779665293036931519618004512378093056859144663073745122529232826160332641372427776821876570656695196432553956523608056134176284529248678980386670075009273488214932715834338119720191565329399173387586319823158913509844527739461867848981608879467006338613485163534921450169105123816176320655930686907910651152786648611332719405168164371208081423262442358582963854554008491021485535325695708171783701628157469470147218975428086636750701647095261976061583702101830481546916986713601156110948102500948399743081766902188659606067596060033999140775910513222387230487910578598082008649222098812116849484311057146875703103755019388252076539057973369849471158005591808015525908308514627374342612671132260892524285409790899751750900412398974995895782565012253526123200984690394788173869555360786083481442680934417678383039000443345424262344708769524362898842404316897891927326564983775468927011379280345568064294762588803503501826315081987866099343049930703495990742055632998826261680973521886597357251158311315559268479346383904781644306446607685086469532820790930534084548126655104719483488779178155131646921175196060844757039544703446795789478755264282039015616099347407735681349939103354212504371011937404140429361374614678501806776306390575672139031338809447355334737628547073404973221565798005251252681171487948371520813737720377640790213811947803253982929111174143941980382704011307606906762755045818082417098875521726211386060567597164694782228404238789755954629012498048289153096801184283503044041493197502003970643628004753373760273903304399098923416005743597639065619999489634545835020840890505242866336016483118953422820404270562364910505802388122029437664513132124710910025660286237221875968267216713868746160873961884962709966769554561213027556178026209669499665312304372532207730167709521006681847876575637983987194371231350042632129573757464642315128930071067125387471065502483744821845333778427484918743861841800415417462935787919096210858527026785192787563882829489137810732500821197356438244047134454663035592338526346892798924610358295282671831254218213294640111162633899959259458615370200474992376637060350832523410033284798275850261965443869195698107170543188834737785342152137296167353924069537762340587959155407680038754476729502009899989557791170974010348151734466219810706248638633832249059158702639393340441921031427032742956146063246834475661728005154843154757307716069998311134159745147925979328342552567553582315607468382389190907507099005402197375262264784516739875689062939540971157556803156375062462677262630205334938192173907073096596345528315783469953089274753293855908473448317450563089524518697428490579391784406743786422364732747465832660647220428330668009948967506501024070264525634878064139523583022840296886236051346510012226610314695123673068871810855185425781955814095623076189709895695978709097781579118108190775025489599357935400543453411155943594811227875778083283260240730199599170342872531607638288208109158902215774271506133718191098765340764610821458638052343496810464993301899064698688106248726119232424262303219589896639952053107843390740948516736081146239485460452128021840617575230862037185653866826433494132670605865133309554166423608958330601867916889924911869220820722624154572367996882064442925289175380432866385930656111386747583798510563653810658869993298613524797362933969667171951263801314802323811039308304240456231565391783651803322129807583907394792516488456912269360902399833348041141520535020786027327390069932606335765799283969534697600437735337722088464309796028301697868842152909169051103970640123207200123112646825674570237506142029675877237734356105852781616803605714885932271869591910817897729718283235878443618414028632946527039914316789057956666333194044092926090826601956209628750039597450920077474299041356964688240180347975884633425426397523249706778825260799686070413766571688217443082393026355417599825270029776140361390625839202695158494173871846189177845581548859013183768797460925435488266844214731305927525953675043392948446034319270591411555812391088426964264797037065042571250065465351687758351917793884452274569675648575012958726263893528346738619632896241948587793073352082764458739559826860605742435776506251660949851333101224825708027074643878222760479508500112320856305286671435395708328692135138630215539314826141683160704144824001178201595359651225912789407817889393186286520156228277390772000195190406777862802948873027274436613445124645684416339019761479311331784669445625068851812753666734872851383049818182005131740041946623218696666179347533054423340663360538665279927486751763905507561619647101200506240661508083820156949330384068623222440106481000792178471771965581165381568886211223720111554175404764406201286877929936148748887792507846618827215570396303112662499861572155013160389664006579827248660679044521996671825965738073949621812781538674017582040917447106469897510538637443155163984455058294075696539453783655909270644164303623341581545783644352107121164542987987731879927250297579784800230744220088731742463730669319608112636597742354235598832828152916133735171988335147660048400073858800213779041642481070571132745230905942218700268339900342290806910930507840191279840359863780728034924865262697359834618821807596486644702979986992543469570620681685864497514271528607844290142280285020081537761236189218490930818617873534583941034762794813652681268876320076657322420094041388447688698754269116728044330980132936263232115267504172806173509448714097471832023951191002620151157087920977962173123861896702993153748008534706942891485523636328133505783898598604710957818978685353585935326274219863673934606415929470925548222873346299749475906634550325909312051770045595541761794735138050856124247224869351204585212956783248862625669381277040608566963031697400083161280000923699469035362681769703744328724979962314925725937682364519068103328781862034276612679072391610212832422647825823882469836869728848727851773751396835725839765892654721376724629937104652294121200378896605767806855667233456743887578063413269707814140056856071452401682659660613095178052471224678434914390236563111468812997302697443353738694744680020667806678144721199894341172424906275761152584935667264729006146585080509258017350659206358227194183950617098669478203800953234587157411430750306605847949805660785681083093355832995081947653602401770885747082886240063189897987568358815517680544728955175775014978239234933795439465602045870310965997958414257510293042336959179093003198483972703959407172453496652120049823611087769619653830460213234848263068613179432831628774396564645560747953133480825618049973993790284801476504287951480366639557873603458087020332351421959482112806708852419910907520383162165943391803867311705707405380501560741668459541775716356967800765198633784866403682120363434868330921095461183446362341962184962032830515012580522347658388028965944670467952732187780547856772293575080823638834016549815125231404309978644309905307414047121708608736050942189875591335714517737643327273425348587323240072988765026451998149259633933568359484968801185270657068526889413505145446299782498780215958101766352871514227664232290266409476887697047150008749513092779195873337330667473166502924772986819389750942494552927531765623083301255230449631504638992640946672027557469083664834354793815925843811417881603263759645721402320089964691178034487499729940169534349219296196670278905814960862627947030349387004260285438102390884479575692992278080549602597419635827128490115640349758314225208335287933567510461564064749811013586351368343739629481692480516972572538871376092529701148659242648718665932648039934961394662539748929324247140848219919165752996428925849331049679733332664429569281720904365502763567489023345444344868181163278731742835488631999285143613688122201366395792184693860859171084164120056026448732068893181371371882486269939874536047281172735160141251660558517671340424024537686467253530231183439279816405914798351686676316467238592117678669988168579924522898597279284540082355983050707463177385440397849371795347512812021364591164749510727838294035601419245706702069479504652250903087478124199277020123863695019538209333709993575609480389302519013958923058047751494367236719510972397425547421081175133488446239948154905755907123138416678216530722540152766078303902773656176128677532454359103869880833339926268261472174138360583484750589638129062273864192428485670342513994484229227135002120780939034272320520530929177466769658319682780365185037818426431928387233719953205037394191060982140250122938929760744912690571010933690394537396788673966389692662729940139866746114531152831286728451910792884470209903168583709293976806250015645460379501311662439625497945059518177410793032183006452726838113923041900722351890801676223032145404508788551456955220958470987314526742135026682780280171702064920504533205235129972052236622795909959540479887503943963346421066654642729655445684968839036104450863956654702571146846342798748131688614605147577330208086957403156438340800007531542567763173257409963411925527778175931514053416643872209610018648611984200676574996282024715995978224921118280627554523983255407259733627240573665501210080974576257684312253407677544389815351893102594313651308820061086522966836542246865982910771944303977827747802285780616381008064815581860339853492922015338985709409477011797222818499292190697464066165944977100343384883036431287834809157070287990787996100411022000169404706819291789798533005097194739482447437007683988076235053872216726408821597566061006488425586591024341568090163378201136336016749275495718527287240986450972394721656944622462800652310806963429813988759425001865061927248359322064750770231025593739493422101688772640187204589677476460334644432958229847932178002112757166139313577950140629869103518338242466059436738537643367499203013391563391879404156123712604131108840978460117907843428192120633123733214244464333950986529719612117045561102360761498110896368904944382096092929373879080790682291395660212826902774648350732416857169991813628499601313402709019556629286278870532915972282790507670808878024505950124029119336124512515352678418984756940827277871953250095366039104910963829007412731670402489072324507386323571400776713825837120555313762606031725882310808128329760442073674162465242877557272472643080215897048601355814931879907584742959815273964739362503608638457786727387132893305601562628572990510196257950136867806023888828776760775283749829809080132359784778308120745276636030004017350261243326259608764420781891836953162223731316995316788934824649588424590678784132879521199934020706140423457932416477593384787543671061349616013225381514202474464410607084743711446374183500787175086396550762416278691079331767974133224323200753315929557262280258010878738828560907488729826730814254663098246454568341223038658061715568119513915882267468442216642818886628457675894561431614037941096546861956073586770459901610579165198263272885044744705468401537457063427413663360013846730664631838842340950349242323789594558108294239800451058803496021729909071130984939592910418911824703719734249803242119807672619855981154787850981249347347316273594885221417365664846978736661226374040180290713528090947671409514590471486430017003250625615548481935347848964525028709394258696299832513145172766308980086343143861915745910986889857198329168125837966597363890013400107142637069617718427472205718517612726766920618412083338313820950530241038547189283809260182872387261225732188003751681415162488772763763086518206505613003999271199710313084671645422289827133520620595105859347830034796779370124731157448298425601460203195034051301524441104551367897700869336974270996737550951676768067606741822997510068631319075986774778373868336413253829427254051926405283315251469098328484294053382484464022371743666758002409970529968957515474512116712597070392559330349116875375646459697112030959611872122610074847654488552161959936831187118343838909367419147705112096503789268951372616884691780971989428477136343984551382706577295390354121266179002732782751036851996543915316074569319794350775214101679777771494164791576945292858237564255440661381037522219229564072487450119079658843490398404898771013347743006151013516629804386663078405836059982428614899260467911530993197802255353369872311626263278779002445498116849827458961450316111323923244801047161850057072473059406018390398402436297539296433056330980617383903624805638475953388094594886441222173858931092308038822477629488805144491332038775395658075957598306494855341625864996315640980309015300813002874800849307022904150758376090742719478048220809746166138584466697988247656518286899739983193274435617677685628373247110775796719782232632945282604618148020888084618065712992344411609210721883812191931723405814841341544460668919415204447734731725962063106578154462910064980272085032369629132676439602910433083841583707963325209242735044931291291347899323320663815963033307499381957477183132419745422342349778179092780403925857448969507718218413564507361513181665618942032595486313744965634878814378736359006573782352017180950622126387243369187739403817982848771557967101891215286623050566116665206240138465183730965778936273117190341198629095995632864110839609462717461348107265530329412752369708926338748884479644051336291959997115114066165077488893282826414838183490908318893710885137282091487257477877013069257861386949616558973483376177800154815413047909454199507653900274724084913057114701583499896195657601719980257901227534222085311512473429407029722967379830539307551758883372658066402841691874095065148942620952900994263185177225752945002025208690304926318817610844554662851956595835206843958026410137199177025056314911591967999378330249398091317847964315472190419581376889667230626821096924680818501186103175677239758472814120007152368566732280362743057282651044189369787998805236670271188375206846079574838151303435543804837478387062091482562099189875906367641145605313072278010074758737187761155425471935389925043460487667387902983216226356292175388279665763258932738919488854939010460728105734975327482908044365501697932126382533313085083760402372669793820273857942310321984325714071978911518012719129912949170372713712245284909623740448353724561376818800493773556701212483071520129758937776382072936612161466770863149981338552426467506380270759507549022893660758170139398284318165827341461220707831228931141141061635014074378406062811346895784305787617058993281497977020928493636007997107335481212647450966961723306257638623817586508661683928340253139842383187781302001757810635403839368203074151097193368299042930597940205829888623413122792425427084050703917000448570172085302394945122718296628260724049030619904771603768884753179361867640071640882881252962580069825210155563604275773381918729969978152443521298301084658716059593206751471596456237738064840931118046368286627967327013534722826381159730734694799386316137294258714393667129733372167695694292452448648946087938483736183481660418189468017356763841717984557346638817812104715974024129337707589082945200032704548551554188009506482299149449850893764861231959289256307602665162091904508585117047380268170286138370474578096930619658719556836677048259895991167598445402136600611441600725327850869974027845186641989296768839016657975119319103252964359106640825871112805486731766452486289841461971750849957564351811333613286934263087024500390497695904220415894964765573545080049913853502076335268561264978966247727726047041701482139962546461581342116309649909682706747258577259782917287354918608457537452428494278926048365671528262782233770187911579399004782741326150321016642384987247988555526298120610220463345848786837448623711616819777629698062813210136186692051265098890038547045966170009876496116798349093639481793690786336433385124867471636650057635305090870657431386634873146271627412972932567101153677937862432076424343292785347935447953889283328274579816467488049082735645782118847015103821904741752950585930596847842697085962011740387071526503229025560641025452232644185115741258348255515282938970663525797063331446685494075185198273692543234151224072511155085787711944585710085110535722729061242666700202786200704616575090771032639481442369891232922911029722573931440307926488141970791953107178523729059144168263065489265356496419358640316142105776711960259510439091134609698825664523218927261552591141348095466052514505189961500068898225384040483778979522063880241198419393536824979182865034220763467522106727856935402947321383654407802802620829140952015972015282799429035894537769371318181584600800939793169330602310588993076075941889692475587955967711681863152677154423715434670470687320814517376611376911880731392386343438851391204794861074934858157870755008771127493458914408514331909201090234155244020228857936832828282493545358796846466917895155773986446150153563108281832051958559458949324237156261295895123435772860690408248590629278223134040422914561651411207827234783450255368459153881871237187604184147139807656049419995547239872117347409584258141933333784518953600616290727556101316642697690818913551586601872440550504736207669666155085421656917848683289194446961668343152902188272644468392824396865884661008856439450744156752948593663256957705752045737065314850348575208258325071330770649450554573619397654329718794193190096633247535648366792128082346069638422199698621641602567646438491387399528058620994506802221568496809532143805977472263346797607512244574533091068860880513043563837065930296579106114743715644399753313205174780346602890678146061268221496969191400047959879569431665915511962366922757601695942316971417873218367597172699752814507772897881168756624714885482886009721370655781441905520245611778432750518653829937589437540005236052402354604661720227455521353949797712468937196605466923122166546332063692407959699605363276475827828323540946923874981675130537217414326886372883473170070540620304319317886857989513322211629730555753688100112896708506182221935763113493842274107794347739823850516804732443008787107337152890012205664151415463046955438164712191370856667341676995329143038611026860890567213673024741638542458557613902127850947077395441997427168106313552347379876934739611142935205633749950428445403324054082574357609964849086259844926375471559173181858332394358190691612318088177887766983431646583307522526292388179320726455558157532164104815242301522340432199498674276988500009416096681050281869498253616272530902340292056279169983787599433699100796980602262821566362087275857825813528852401266463776654302579234856880806401841314073394623367311425359219922030556507233610372251588281771106338313308821379569273636011796351522846937384309620435142078708749357382571170505621155191429072783127210331095659191107800487893202163730124462107693203478073116094253108152033002198590706748325030039676362187507271243945824014093351319610431645254146837011014627213702544292112018285271454525394857442420235915220106543358894374133940246379851615042828529716048171370923405173454600573243537959278411333125978802953114869678858242187833260584107281990978120214291133190990318436125664443821085930396959095378482653463701460927850738200343491484575928833777461710038013858733452490540004029902632403298777477789319588456697725673830521959586456897233465556749435938053631965925149792427448929389367508612214554180447101837265954406538731248275038392232859355809315515088107456384018738559675960468614547196848998763101827894295612405149599457651153298019839436438010018606423252613054555029906564816208663163847475962049153359274567191655369904980685315093302613035204980541967023108803636029902202165152226061043910950784807386176887567367146371972744958910694997045537982534092286461489119897313361167329497155622441206438649869900494246112137689031388430493714293202714230664219076981741679003153318280992375918600007337083685991215238604661731828292887216290574368901509103543037374112418043020768429786327911401155724462206915508035501489424294229554854675216871014556702827649341778928873936004830025823692674303200339540564729583909307260004153154532860379304969017214266945743476187113535036916695291274496855264614236257222323735282735721657212414266052785100130234810459624341327981648944269307168276202764453091481356887291987989934350751798803326649718683831389782431954232772721133436704511906201002715031009716704642937707965375413203354459413296753157431995010307632884730378651534582693133874334508123490192966749456291129698147564774020262426390359763558583079751493485247462311710439996812809626998867236779540092947646196508958609168198314028703390623519688473159326814851516203114739216730900043685097250297911806530093276355696211676832160206371225417232043644135849031198639932346616173601923030983415823970951225964912193711105524509753737469835033713569782024271624749931689684307491228558418246395527628563382388877234617836371006604686150173843977944589014364592003735863552539349691710164979259820254921735689700628619978294317456675051742192466084805915628420874625243908000705972408587851685420808100946019196452774877955030053365972150819580361507250085237658532401563565866141587296039194656719195086725482512666210797648278641803490191177723413493653325614498584329807581628244531100933735143297813756795688315734951202461230732665097052197047871994797766851711195373620036930785790828662090433409201764723270480211520280031358995494109271731601706202406395191096864700702670474574071389469193135082919460659194531074772984546213606342145133849849763407532130560138781486013960831089999464299866698038803271023452309336633685801328630975817598713535018215287483540550840022815472643267530843642972575112911237182435249541702379165920331532042363062938671441115417533183000443648712426542672578230805102269387307230887415173777071240962124240445337063140514650004669540290146021752462049189738752301564926202728786680944411960739131164053120023092504683881681443930584697461154199040822592885844432587859690765686799070159935573997383491573507523148716541054825747702138525032181643190955714273428028603176440731503546017724431550017835268815150204707464021122570301492715953957456336400501938785029158626775463591913041254928841854022559602026359267577483645630583633450405296562663656869536349126800429961488873014738829033344718183839066966873418307233397154172474888294846729800932506809377356871856074948529824904148459660843689186798647843494338113071987888625446623582982057309616286106409481234733884574443073569480688404768775098333728517179143329478091345974735440753401291341725324123244848829784796509410106138091780094636246170903192474272741638329345952415450997954381291683869014646582213753880861341443420614104399988744641643067581570234425111068531527132940058733239553669665206875749927996741670048890243136345523352164495643515396676524085133906620973032185390851540759612501462190353356327114584264817494767320173677102302180420368799925304396979002600215517337140539273720955921120294912818333193776928910244776511760555223563772848926459242024975147565542806788007076569150733732588277412797803160937933020851792289139733137118079967453261903766741381427954235887283982054091722759081490306784851477602818070870513025047232800792671954304134857376665672844925974517743060473650256644966939166532148743161966026565735327982057679462174506459654075046273642430398872732818007061702185662027913192457416669402325238660674788845777272268706093510662762674447622603342500967061244212072650757576252850407400698072193648796424081664584909532585921186233744441376531675204560065322440991101084590525614623821584588101525970862519787241523929296973079397088197330901798518316521929441080060891761267181767612535642323363096319801978326396086766892754671382668778285234232824190161878681733252284310570083238382656066741452975294701120806655806883616935624356117584131170417575298629130624683686632330745209262724222875960749972417052189863796717504742360912524707494118407233652767118619357560934176580235885799888062916445945765655707750765537190559329867023884804632892378835713406324713947672459480611572749893226577009250392391407686507363594045820998936078599594418579069472349634449535529634899799762080946666395475650545851951207725580211553882160095405127303403638398603865784612673676968910706222256687806353117473209913767691250532910890032099816584169491599446900251355227000276714866278085087637577651916793391971140567220497690664373423258045196466959043263440279235069461195091796335348465688593066497640898023824679615067574810301613333655608953581336376841317977180519108844171426176623671474584769498634614433166158720192410145878768252075964933892825818102777841514394124900589411168729593867548199017182962558886558318857000346724808125652741160722936717503778056988540709996978275122563935593142208509870735457141095942824354089439226149543590697134730083342032738441103158224351151189821798225850410473436410177090732903566126948775009422708870347626195070887314233890181681391486588457835450429883898685611021423742593288103219613119419183416643612508656056296236165722888159494479818034150741948370161055061749619870882525282353610166148295249226827771379500573896995179825977861131471622629541036064915852337387254008832061332903400412730286329067981273947135666196748564996935290086362889993851796711963312924220013433486995283244622839203723224324104659278023617659727666463296157007228197784408186512522214659961608926186465035748195595875010330634035696313804656630298599888396620165023931910425844924646040830862950948477124719391757936257092065080953237257579450684734152400459748024425310590384048679673638700005781398178919390590468720209820547473792840947931632448223574400245694739412790920565921945290890821392966114982144861594827646466977954067243454204816629954471765895147705716689060387014784289122335631058521821887676830655131847976271584922659712608273453713624794374278120392243898626211718932837035625378785474296233240685235206906853427728755825903556364399461613418403312288286444132882531407163220685067252182529532128241720601634199592653068619142273136071956446905053015120642719942556987886825792508331758108496231945184975731682176981097533903549995913424605784139883131085276282949528146264865176826522060124081695914038671130836427154317572097813977167414809238495598589424535808206364516854129141199714834915353193593839618243632000399245454588137860843320334046476270702601800915378625605524168305982947604860955491572166206018757630986066177718732765553771117667746984452492074639787899052675514266749018410658813106167320968312685710121019240667160742623506628354087016042698942046666818369570715269701295712627072944189786365596702615201325995895338624931423876333567054728333668391234893009590279590059491056096375522460899477628790849178982713416872343749939213488096442274851246143484164252189208698823416786350104038000455119352051339993911903534360551531530654240406997916493335323597609712722585458902802178608792863162133391661928054063615139882184034929223584405352041467672433980938551212100562692691256785466984282313859649314407231871410562971606384108927224643885946468893127062527281255257420029926950519365611867156992726028545764719349123375056653964522820517175581925687338621883487543216051740858095196599727406185121722649147083719246914041573046682861470376919073592974267642060343707774950756507414729365515793187861364527577918414340388059918324754562648051199784176515864770104452297211241937975689997303307081802860838359839319943508973851711930691808437309407101201627534961433949758202884371885818230504505964137418181182886573698857310050071388080883014933950043653947839268470414085800489670742991440503124302982901250370420006526178516493672711516675509468511067865628407298423254188346233628630438679489861250203336852823924770567591296023809827273817168747155894386320874507008362911172697122223500949667726554210510473926311618228960358770047654505979035187950921730154451141323053764428972797796418921863475934745579161688622937885919380652356935553045521906147253406654524331168249490220858304616891335956511848472881437425895501714447223722525618423570804880002910962759340528164574632485725921246207104936420756712445229131208381108946624313895900587548332439455708279927629477232179320526161583705540233677187397719879683255978418761255863786301840876462494063862021242589370606216200350369443106816932764092482431689378344434056866893964185443080149434641697229826205042919990313879363168882741129255948575386371559376841540482718232734230263521409243485868219852052943159588968023712414637816907368654950329771937744817004477103342869526944858744872077318926963063392654800932342964282626400393700952404368720464300098032015328274739701327979763775626135141589356328258970484420418190793284349656109029277478636118611795487772137978866584636526785582025297519961015120167240217049318481714764048372237369917857388099134441024170689842363800090546149263756144765226196391274943828807667039247327912176407284090272301882321619740214087476378059492498126530903030623567400989062567610132156628699884975335155538071593592345567868925560489746139439792222870246511804928042386342903663463925309952422280327742659958387903464382659301074573060624454440057156568589033760414214758672241682421580726729606387064959257494688851555462052934213471911383017435175576204001317524309640204322649904376190308635115227609703099621733837212053003758264420942610037291299323255170716290632762374025341435679479143585509724559436318852160798204538603574083451178092539885975531356923960376052772292789587620920977687720390715387576182635195980471774514904503683915562265146407251452909075673212105228979305801922088175215787364363603502227602436905597621085655552705753127236466114184848371809225712321080580192614263108680035679294121032101167766101992385047599193316827024862686525733056228643598822456023379517391941297011468215176995109401249641213344714761170414648006100443699920640417980444351835227806151886912643440139942336087024956257952459944350414427645320268846311007918575588490423877898817482780310576470032202745638864773319854081845723315013306181197042313821927139419109315625429883980665203461693592481263012074799435966579149523468406028922346714607468939756982194935054563729832597792880251504638411990673191504861547931095242649688557033851602701231891262261291119076108221710200490444695034182217477701022756308783269643074438022698898664553652394475063090236996617738690480801939608237182223735226703789977645296598888255162301601769363808269760946411471177881852998335917546563294805672115767602049491043502683499724221096127480334299220393571415499425140772655240075378673403103940136405794105823560325695107090030406412749836173332335132712344670372225875956893067900171689965634072480814237179757003697325091554175740221415738511311525228808005008902967309917771768908685044776658780761905139324159130334966939089917676170581896620036295277014237065190085142537332371272371908388515789203757770688396880131619543608845044820605215462468060153123400925468152519554782040645910090801681540009562507935466512344630193927062836187403453051504898317383156652891014777608433974233535291087981572763508958530613276583127370211971855882581443975080095980246135622150474078581889325755817601944435573140432697187335348564368948714660589488712938573416704404799675175994966783668496110653793687216345289373196486796313600782431819581735793040985302934168267830837029581592969528669473974888988900397854081959526005092406832384317397910142684364166612371103328985753298999265376593926908270165542029314027491687644768563738582724913634007809470618799564896371696690133750284009871268453486676547644028733506081969553540966986962472540925037476896818509661355135486020673238635737408315671181808965753795888083781046445824099909590936660025430468394277120858477975350891485957486250489886696666165799881715340654253514568811205768691160732826581932644428614302934607416477112652481104323922547777373438812527891396274907134649152658882514134441139635129134945593299819419195511309904677270913355929378320175267482628333702950021832509848030859415946138474986934027945239859041939031849193733958029552704521955452740987965639220713958613304129051408159068565223773368478603281732999181379312696438556832258837891495882494309881059968956331413365561086866654599635288801299233396459745398292002921480406311841311442747163878572285449270404965926854424987712394053741311005307228373245644216705340126841499721323791656094585653331087488112886176018946062315067485871934718193153057153826526118769339232022198919487440224351250490690475640673444415177572206460279771892997406505850630803870958354153560724535679711573653688244446545278695422765568889674325092691004070611489655678725060246538002416690490856463107978425044547235972086822925442469113546097953941299481498768501670540191120735925305487704628344091339516053095235397907855898353562641877372948172968337787652348589648199323864197170299650311519933157025443426168380312982714894780828596617333540143011112157078466107574626553911099988922586696814225343557476188456731112124229106936265270385313346872209214009215891799741702618299499113435381948047138880750851678535529968890199693235277478934751807983438935696893914043991029252527372976015569035742067137519704350314587465612365538838432567782954284458358526667243327215852286182647625076888993346040298079030596181885642774268343662308025125505998977120250617739663019689206674354946419565498509918693182862090755942663275889061488349880586585960637075886991756217964312325219926174914169103120462878731132590847374689268951187625271507291340808838592379564399649804364410309853956959689739498706382971572961675268487718923250453518627652099126313594395816770296246803706809891667936196684953465313040244184319053811211617859847891184324420149520169757233260569932231294074849626332280534949321606295935960610730969729933322116474411968296519663305955420731096497647243056874864539353760682484568623263985063758440866488031654319099424169075604015864426570276042472302277774393458596103930654724711341766544550498505460193865388337522646981499074318090418869742106531134072034845413982977056156899125415309240258013752115345436417201049355326483046120807887877582869098953562665202450832395454048318393026852616706634078280081651369015024455143791944808142470856800514540784536297051613537605354714121339767861882173439765634400439745132137149278675876560792083933335835046245399837493197470367886168217669757909614613691618950018593808398557800118857353662354602551116480209495798382889700485372331969565068871429558440853745095642789568993987860990865526958117898073232289901386383516420926667092266187070158413113104653619855051819679237693432595833511445150038451210311111113872413118448531152087226762985125866149768089410767190502495010703969355826367913004800706853018718175906923596504830203818272164577284791295189836632016605275855913967360950389855254203662891348734053301014276936515219668405272565265367265331769198743344115017697126965100163860964068295637117762627800791374211166619760100998844652737810420382129460536491607566932182118526099650891318555475148523504118156488837642659673762046780991514371540096564064338943861110788843759163289933322557644652595289675134399966477253641754179775274239362077444585774115532596678969650258993107546296631762927509515348684264620289126032468195708771435513476371625765472888509737826944215334566719269913310618618470332411125671601719807258472803675149233174421117401043674399396915299783895765204352917601803052456331885266432658533737990087745992610407123913328829588744813516892703316097567254452473110963037446090305398440976443818443565436345746634469041138394044260887104633978840875255927817699790493039750973013197939505109156400791890316070983904260047214469046684476742634174944543054862105360879222241626476617149909929316687454198947946250920095757033537680853551914808712819026403889440887959558711345544802733564438698910917206530008209278005467906591449299120791427932454643673871455198053409560713603929069923967529285190928779180014121755977120199730891745717694588740290793050591378824003103666441561451739167584460184393583514379114103186569685087222604693986025712624049788634711290624685029021211041502361122578138157135210196839485779240319584473794945453765018007445880501095362123050410931268106582500220826598288073067307265867961816871705537535176604382830706667502703528912294029000301566864501129943700723456562588960327768374512955094706569048852085843254246853732076856084067350072299171860819788840081029246027246958142537432224380315831697318763863911422821201014040693586624024553492259152740065094871898368933064489308861336303449903264324993870119390243206047486073972384865534232921588600467029485117713416484977982271790961975732975363554651316546487692105495095195989078738380420882832784947941262361250768088764825439785173598567827504165631368912003451026476913284577176370595173857203743445301689273750746692364894262839729039964578124289925841836118874861983560588538791648140438043602439347273817222591956602869817839758507077984120768191177027442640710514406944256402770670987900571203072534234734517200307514838081618096257320336816683695002473907452125277731553989842833902471210242319651603374488866414366954899855392297123002952880470045859302067464573383153775626367443690251210586307860698499249710011956871471973327784905838812767738108536176444120036406441537091901047446936492626585211603691339076196108926972131791737665499892149471937150096404253887806555463281805592690963285175294332099096553919143171367147995952815319295100352563242176172892352864909312144973440092205088613165767176603435056303042469196027687437657332472069635998426389072065068070086302388535069726389349324997446789552889333435378911588609243054231581455702668744068370371513345179482808203642294978289538792589513180779146106096936161629336675217480938219185290078970085591919409709249780364430776835586647208136186745809000595629507863978475847034153714408819244594805583519223687277404438898876769192281169005554255917052065968428519259920166882763085564946934155307147588608245807824246953616606559350823833053892859306077823047593968276037408888089986265679081481643217253877022058442874121024005289378364187800515717127218965713812467935605437943920061636581090585945439865182691611700686619225940564734611194037160204113057789452512955798411793674594386689613022797974448338446035541640743204871425349515203455195136970837670546569794027835337762631294556972173454780411293934153586979610125248341121524133129842698991012423262067683976292059640868651953019530844795723524536432641757934650171649385915868701989768598365125378664989392178628659370355672935874399938486982231375249544018194604821946905010527651300505241411004578056886973775264647587729731696788482454206365834658491631120443266573520715017327345276421126936107840904441194317823931306294378626324927840449281033216111935827234971271596094089686224901594005553745734035621826239869028421614320362795582507005857898386448166321931960518100881684372980416941393967735033687893106833580505610678041185906231407065221435625534172402580929140870618041778324672458138789497172443872908313897144012410517162279115617861734134129550919524760194284616747219418025857580275617739988336995620506518396391036633464812345508249750584089449323544683059324336272774968347381166127852781842238415201080247976250191203995458929122026038501591378654346198123408177753533511035285008250420889153009206251367205595677437637738012842140840732909887609706722703701324447601655364672079445690908375951509860837585218461750629304695907785570570818664461872038641577429339344173876548964770850865195159249137906973955140997356446259308258305961261743737796029835184603815779190207438848692431274238569316606192677373812383697254181437139215758200646131373270908118144392566008830969314307136462541450588113244607857982637189517092004186319312820872401890495268519309171664312106336242556703361300367729444677934728121745280099632581236906206769771802154629995884013274168579533266299034419824996942791006067137024297194463970513728839891975051734408084603456459447373752450063579521482127837081032494337655780832558715209760392023429974170935369734389934024078301015763832145377140614562416511662904310999021922887010337121155661193025857986078615003683536917496503659100400945043240307677852380106044542909607947359581143122961482828105702457821241932645162903576446960878380519389531840821089525074218861079985519253085010361606500078783211854617896673077516139105194735778394676441915012655259367624047447090646927656021827328437041154382238848438407268045636701729299373484451923299163158132777264779807603130422294813742292135502386754760743738171452212195708482078967887107194999184542184161175175210536519824665631327328464346516875357538744387567044088757270969304454097767294499299929513601835638253663877853328392803144040708802413038840002522765988332924986664085487444204074874384148658194944019148299116233309890792699409966979636104067327312646127989849827758662660791569587775035785800189845617342753725285823504602731735705998173462797394823266474549314583107578562271123208595460757265984887663534696293241586965417306620235871126619394923544066540068666537578662153367738878174637223038212996700974060306311158128466582814141601804397666726629652537614527402616966117226990406969654246278637648121512615937234782766464732143718027311756626944447717400692926147526444993251542476125594401896528068257297532772027466511709380426304020568069651964848657441750845947431601389752556416966461514419270551070058186458936311070121999344863302436360859777728144011589483556380483533951120346550256303138225001145950782254939140522911340583549200676085186535135515334791075121221366928746184617429391205739238812215439752950729528024207668003895439202363340931066807221755688612730874016130151313007420931092611526120047315859139462452977110363159363077576506942354821357496802451299288083623950144771536424510189073632557366574371967141218495371124685262803932013337435663033466506641539568112010896324045378954541285912756602736043392445058581699368742032307364556325074395562852520483410512502123164156156577218284921649591520231834438394327641883582138679987326497122834598746614634627781479661750770038082957833420559039110442756127503395035676225590285286485617204535696849294175023729459242962923809858809232032524448399347027544074873333034650874097241546249865577963543304615155575990929150286477641024996643185105455766632630431552128286912370590774151117113848928337398369495839425484321299924580234923661954663897799966962853520137769652224949007581215676530534661960244248098149353781080982970787348259158315195254736904885866135024075814998935300845520024330727107273925486907909846435616803463342435441614026010289292326498986596073256668766611310292994596695268551658681426820918563482995897152433475898293011081169505334312839774734538268754702487988197084985611999981420729023804051607584859830417851517818025453603595340644601948669536011130538229972260103710855696676313932412947256634945838599920381616780240137450851170294232171549660825606334855823709259682244876718027152248221391242054787846508415032281490846067907522636026357110513433255213767137907718311084424208526403182215560156724819185378136802746866400095045738294481741170580169364198571390757304825163308752655299594777934767982050029437187059235643504153086816779152142119052921837150743308079369616304895278810786480143070877000805327335759957780043405001019684918867235548820545324949265958038430111603971441444003662750054908491285857318201514231049868141855241362483204497472479327877936661829551039725419311881442783483294473865949577842229081758562513432962420355448629754712369778631344700638222654875658431094973490461931519278547112842600277021563648645688367423715406053008257623958026107526160900052585017694333426638123890326905337638132289242538522384129770085490043404154727899678061504317600010242595863350469832176045510506014336961277333559692414776440445464181276780732488849141741477220031719362078197258386569020042630117319517357632131242905698177539977465780099471184485404921228521931614187399895276261792905843114998489618780829159210029314292490683962664405580552243015403384128018435946128939062097541153703390695388352656925682278808167682495693874001205250356335100660892937184379999070854285826127037657240827637101341307345029847061292727856213306517140461398235670648514644098798818544882282021627991388680832925088020096327329286687238482834117376735170954962728996040815635629349893500896458600214164870051017257562625933353500026963970960730588190056677959316087124811020321828360343932292441554191837738066112947888694398318623585900898193771022192241258284627564971728194122747027157764979400459414373610700387147948496009027849982847315638670220353793099454999035273383663772578944150427008825381457955414129931571402902721063521030985341171028711604928789084558817882264780681263039121075528803628959671651354099564639800218822308415935542256636686662985898633089523986356937857366409643611033117234281619202086116352482184609797800226669572153049619704479092279550214808584681806061705167698268698267007910185842345655644429165009883063513908641354773054955226991064538448855567287166776149407651434940065360632880441977125838543155558122968396695654645967722266179547050370085543934095850671985319149218445302942987252309056662075885730301128706577562901222887243091041572480803016860550248250159804582068373542629057619011072841899690174971858936335411155025066596922682713261223853513608998011835284870971384272015247781855935684976235585090766599482720859097153169210002675131847511202607887185484770784701891917021436257351339892602877924040880774310840709489575349972173962703104008933468265466682865485340163825878128659950695341532189240872267530017463598136363600084065851411881293120769801908888885973383177331354172596428084085163696114572869644136223706916844328530989574238338280645271388910613592657042022983576243903819081598942886653002288637397881017871450475799446878827138554248425863784435503611647354486791581178263830088342043882813597921577194218491329325272281967040075085903325806958962392219114248357858607371209718391476748943682062356426006915729154537386857182880078431318433507057623620949179727680296587344250072230361663451641031731182211331299042471706338532964920893221010777832166813239927605072941877825668090523996212661764248975288670379893642091049384165327104073944447330422191361526597477470250926016416957478541540887142480714030739475797149785355199809379971737471080205770246590586504569570859366427738755423014319128574069871198022540907009999347336216088670911786876803949007689000102573054250520366588775327771028478781080217457251984417008129203370908055393131447582474273922744916392209561760572885252680629558583048444456926377668049736527798327603372403706097654341235893576057919495890221058517730086342371008630211617971636020849402549231664427801027388205993733686923680020828283922067434162284259599849289843120285162218790635616253112014696277619811910308582734132274721191827831307547080763841928394889691692148414536092875302769675998204403228508655417488695472439321777536185408429917535373169405529539391955947738027256229464013608335794571266805503834374248072033959686586611149094396556391532565639344317934487578791148901181550759508559896647374198008859831185106270696537425162383451224408468993777682397225846916728222080023581949968671798283084980981096945861966065912257073177923923591895465285326224677830409070697481431700729562758188761966656803644198131261241707534894848417594827059545641822012709816971709954629143050926882858748587913372326262983083735782255880822189809466901927504839945739370333069480917708993254515859243975700125525481027440361378973830977877298168257292114864350116475397054422644427022516638654311709018175465413140647917580045430245721194028024833249603912136399391645391896817982891528883953664610626959581511510085701177228754196599739525091536565720895899239574311420566870703473209665486122935537424253930341792468703083234378586030171092887138282575704113150430110449202418426438313722865255657246762375622798721226489679945540080142123373797699918081582427384310812225365810938364524636201095299240310047818113627368691238053493083012946677222674098142198179049251164048916922139016039480238877004258814531534044871189198968449419278607802573095742416989728633399327368476283458128268664171843235107051247157646268112253231952090564775125929787436178119941820213647963964880633176678959304178446045582812099209591279211981185079642593827181759969038723943413105866548219680903856551335724755534413143615169225202034090043174474945428238677730672159615198201310784652029021815442721387635353650187562325330081426550046897820974922599240820300525448181256847469368132005693602815410153383554601123142231016453486899847497145252549319114935124751517126912692199615329944301798853926763542584237442922104243718304604140770722466289420443722546358986272389692090188515878989651470499607717463981356801737259018901568222683755588529172047860063418479558825424157595740922650590124190186395168341023481360267840043202436685793444475951585785061714383310091199255956647151802850702446404084095716656763733615135520991192945033691473114327442716696309305585007365014810928889337380828257465250316099912215527654830839028501351429510020388911480984970596007229626203929331200919415234164844611667943292726186550368839667053541964111244182344945663310731599780743948252331650544666421472265751172665550623322442906519843306152353410482133791160480027358760558088659230520769300248109392758659806485755437308104734979099418231331508671065807718763082239119551316869123527220422083735624214291339009798828526177247670460991887482219064347613624870618893248636911489324870600177844643658278954248372825201524864620639421218127752542528100007226230306393909110441735323535120047479202537137704731042904863943466762726162517519152108856666318338885943030287899259842928435059049514776001916283122559127477758693338721197617659508912910804567715612621571151543109783671031562172352745996656086193898600953703485524076809121991975644177068087344609746153526026990869871016423750395889973322859111992193407183803988300510133887210035939059753425650921739607844878862733482370324070859986565763913528951549412043864893802869094225046201100490849262466851053750763475525203152189363671160919342953281630146432058697027932489085656450512632802180302137265096014566165016326975700765894485239156639526025762265419619325908513988351247410007790877536251105572841005891950677306664303818858394311612499634601320967184405964406082893987477111957023353945827211957431642571354849977163583341797797286647691196065994341026540546781107758694373852849046905843544245666048805719000878850855803828671903097188057778976308764080533295730624672106593366692376376084696896131416738136087750431581866043971445099963313558045599519884603939195360835229607359645825830874293990466939715835328661634742394351191104502711291502343875002519117021055027464581921363711755680515791650456539098909695661891513617523120181723557661565040998200044448243592998905412305785605571825256155234373781702020719074613949055933105475115531734735169574916780463766171180274064213402046196252824484850098358604537339697553626074336719269442916167393914844333564957584104451635547444807423111652861783534699068937350007956278930655670227684235345998266941061409437924955509714967367605904575226301978546173197673049262119252292745551080628488682414950159803226791951193904816413800979591994189838244928471695611231795124175807006511068694738236925666049345486566227324048325474435676924830800414260538436328749818955423299810570965470683166821137580858068857957277198477899272134066038839717980827654463682315408112798284802780586089133105052726183453301863478761230615291685106370546264073328682482990157361385662617383045325377686521886871836033008986390508292375858107549968226190385284231512927410720323671970420595656535214723060978744154566224183429727027018558480272105583670889808978126498978213448462425274832488557498605071484246557078327931255515077738635115012384018354105247341849094057102323423901593099527655992798590095470383315756711650517714311933804549459677652546694243934154681321289486132742372166570014167560113072621729349527906020709476410185643016169692711164665465290420099470586633007901478322452464923364178246192466961174633299949907430846502102694555380182054536394800013343897480931251230357768184511361638115863453273048205678150519963345388208649297130378871489523027367329364035303269949762302650569059924384351503525964920968624776260752726326482151517877382997444751561241391212948046236934063949180053050834951915034308205776259568465458143119256626431411849913390734475615950737335937488972742895136661415495508859585564406964051179010264093199402913572635052462822229867898964530280012383517655451761500929598920824279381180730555459350046180227613205834661245679762539312595665675338964009301998952773216974919995336904629955398050249156986083209677707669745109081172094544948690493826026054147638569962571104490061549632006420027232905914699704635203284381794436530966434446951854940418323033596026715087861110684980026499024316184931255478754544601889784715991621473265619689539769259015119751244638036258536898787796493497710692541745307826232368892030779548410339956611758493649054061772083390170800413312512830877826274724362414339834945540685373254574675204641234269920113724426843089580066502986915552912783031350865596952586771971232281848843525854817645958612809449196385335282634192230648707724535434174075420033968175870369100198302442142458088055010075639756399210774962565774279155536655577105854486654196455567105622078496696512191252557413174983546951642813855035212618115943225238494659955623769134420461955139943207166513265711600662921021522104448395342825285897428918074248926940448190311366042475009642165394435949473973486929185731948091577486504796012256320951729265107324353342904124615412573082478797915254652418961750943136709046444713716231324952181518437572199086285751050506283184768403559922068700268502351537367257129545975805099295641453429782984568038586221278726353548700324391215600578993057102417212923054690495173282889491104682203624303077314252725753381121193159667037095828581874485474031154493990220712785802854284184450883826750980642948423530797977166472684623206869180444598055912977864891504975399716634874192406752561035720183051087557614115697026588622682121835511553410337547533473012882232803570300336333155486986505189681301468743146894838014567302276944672006946772625089455083287763943393256398511337077708077003237923540009458062894514245100835255567818495974013483556584909634506402586994041020545984941975798089473645235458361324567333544736446719860079464234974884225453447753452627455617252449954393162735820777596727654784429886597417547282049639197466461424432890987290016877325516419555706457218119742053962797559182861360313760872354432993837932582295636750708323663321387919230291897985977868962446155549943493250767530644187603593983360179425933961761115769817162526553077351689077335535756963999946377255403659988758467719732390809992621159792209555616648893030403472119623196988588872181653151149239613665336325100951118813704336713639641070139834102118184135498520370762020845738478664504128117298322818515005869376166842811051112124641301940830137995392937247358031095563421679010157701273904254070522321377125524924319137499751157848132949983637084815205152196001346641951227987973580274767132524855812378400937722288694996194517169372129021347421113241580161693841589461002417666997297290269307238037488290944875629372511139417499793762812614779391744058511688991242947588390076460241214335887432830326306715209379367420819240975482536475476769502904437121287610556489528861221908238434408747066482232593045395530985262525429177307447468672944993229536766111776583062960578903211608342648351581393835598396310310548721266051487409847979445549174517556720311563960259121350204403954374948854646081079024451414879457481887023423902555219177683210018977905871274222078999643193718347983572030195509906203405975982476709696839045116747514817430011905575352183382741735607682065558564443731231401064398519978528464770762288900164698380674268168514943258913306543801971857411524003517915047881221661430501732711624270937103416547685366329600934720972108785152141868799394685439452934980106238518862382920618692549049064435295029696761423811183167726801673937030509738097376647047093488580768351361235648459171676213874924093794915781035520724854102955537978070986371319047214630828602822823974548718815871609298939061180853355811260611857162122195949509066590229369906952731378465878262460718795197988749683663494768293515791111657724575204053582833652236433609915619846851474250856347027622371023401215208216873744949502678034727387485776727980155443001188177053958430366238009606925520647573841269471364227133588806468005752245105798554686818560653339481438047988047947781295518631977717518564603971858576880020491116653153345781436697148310530279072834006931903076640457514495350084360075721949744181612266386976937487297488206566065425250586693840690689658087921386714929177898975823438114151554496666832705234616335498917765522577316012933253916471947962199094740405123358337871086311126023705260924988142887214123814704544760465348512924193446655373619617053520471758743909041239592694753450988982898375362585580172869582819189093311621526227029124504460181064795018942655546033909308834141497442607651130466858318368756404980336798158668963402157567174102651498735554477788354641825785446534479757499501980431108742929241822475616068499972344441934577847027156285120869429454122997040064853105983167242003723157166501946246614022919611927578984369296419313277469101703006558239758408784482997000912358915340883164559772446546341570174918220172682520476256050682892537276385639693527670733693502711303040509566727336124902769187500769281247237570758137894722248193248198830211836202170295335710697624844810253768769260308458128912328927193875997256843381337639528290044015947417407641542760220095006107933907608036097129923643333890362657346235490263227617436707348697618167056378927582885017180981130376764031714099181439407201859303227167574134545439404695817932325887365607156924622692709287611369590334865164110584683786685503311290123188566687071170979127288499265268514154650905604778487455029064883601427433461434601487044145677067384877943848662643305053074157067251334311847531446361804481268962363982345590940496893841207233560437498131253886147952743531722806557069682106914784749166501378146839192106433450455324394135868936200426667031258655069913359741737688145442016851346888340404096588664546358127301413783276468491847669676103150960169381296616215951789317139787416498543856447131875050528067564321081086900351193939061602497598932459392063509054366826893635300441052756465204482916252201548876583894687054819585194213656758902193457135812705166784862610061801910291485587462736231597383415506934439289659063750388355666115427946976142081424926462893319336875487519567340472482885896101548501141012331246527900246851841596180790173090789436351609487583571158408208803285413244828166348935307600059570312316784155912551380994220277257884224369368511992833859107617493124509656828425312365756599408441233950741793416805930564666603507327353353979156919852872289111751125448188498765966334387383233385155867807146999235502576898273522384134929651945878942091403374343751821653354383325914151364464448584460710502380372393622889424139577293927488890106811849838287360549212611993455824417122512528304910960107641042191526114546658948101005680537619954639352490882697883088517458152897930909770651988760036974422095635896416469828533432364473003171068546801994261092083921332522833155159150539917571422747633336480972830386860508604920447372926072395307039342650591805032736622821387478094663252551472059299408569067457007817966515957052428071045628020574263727847767510374749223308497680879585581851436404565823028732019877760134577529604602095843316128530585017484858924426441538421372430862911997586388510630282934324200897145579303219745212780234804721138579674938091742100395454434049061062743755682242721844142484893280882886026546986563669348317867465725468508742178765446586072367330081365335855481059175337988255012938123218719998500278777912253884904312617732400292640196707186903776515557319057655922661281511063965651990157187155570660637975701464585035402751154522401874361134344550004351030552152376831961377699038598378956757469447908882927989731357729804357953422348004565313323919857375615821420195383534943761772562746469275355452383342303362826063688012112589989160465220152495899517401388126307700901804368595013147199177449081671223690697465468063626899563586685642726931642931924539406671737783137249232117894415622116355995421165393812784003870464812012770979445646824040564611815566867642558223849521083942861210449683883101380939007497287848187115332701110765584587295498248526218076167079983583699533608112610719647578719559225999421150493200885763150358576661750037197605907322626481561367784483276616707183680257902547487461891651464388659669166387057810632048809017990967904204931828418685655243534464998284126367060488370838266540713391604435151710913357454352767321138664737758345709429219133214251238509626882909613220274493548646654455643403739836664260939765682298814328451445539512762098819635685232382220180871256939059637088441630597700528790385886077055243740019431558158978888555366818194146584212426529478665558580896052152768552955231378361225265205909620762974063046806865468795841932245231129267934231143401739362741188783567402117881808530957407577975411697203757179124619765619007775250111531260233767858646722736377896410824221945597711699469510803281659412229589671653716199652904174997556651042796213902526825550011054789125273337560747777090615208322970483285184834236530400474455317472143981768310149535750068356724090890276917036350206419724601211195271980126538837648449681395450714219280069418211675658573025979014635196345106388381125048010345720892160630187266236823943791797742235415830809180878774666270752684768862183716632441929363007130769316932122614019118343105855624581228604608492938127500633989216034478569206866925427674564949313313677780678472139344789145466472063237548073457639676237296874591634832001056211492980069269970812930725575105465013833334987093676208442295266749317264924541371378623314397012406950469046935453328957315073338487541054774473922613049128886237124487164414689088781795831234107957403033446111367195837673015791105781638539107309317054157242346855392658034626218633930811317431012280677529198966900405900443430986418204159897900200279065106606450576612492727304696141647709301420107929043069003022631212060537796999269248926475739749243842988756161013479660000109416729930891467770899282659676590982010685738340008656163667248341713529951495187096085399409647884625958794025892478827522645094604175691036355659014246971015707540981308795443943210844695952736194584181286090970048863659084604881039597960647602419915379202350399303966899761291280674657201387470323566615219934891960961888708274404550451054006965840012267751162079443261047789705969841136650626235632449939478162083391724817708270139242900245481949950422027632408260915559875869345797387869613874386914828032165606345397929611601346174556289571362859576077376110328505542243849079933158075729923131094819088444429297316817285243159492314077428009308232169127887480160477501430339352553580212168404639218015365041261497873570338333882830548904425659128910964016123372794477467486666200744082283676147740717507222805041389753750073162262623784657396376848759023609163153479104111362917193031996450799785544812169054230007226370025876795404203126277885170351329908675578269023311880005568282089271333471039121014697998929789638474147121986498049726310357231533439240755447000334325954073068430494288603912116641583521211750244453797577567696326980580298070075245685780548793329996215058654809689887092698850007446461179667969216789776397639002983447416224973300597943121544488736227710169470470863139656520298776726167906954544299831286279655373375307876351210011500903124541231963889106198169988761612937946791263801253222468267109755024008073266835271444782555823480767781786463527778553835670845836151362006603355346450606879134738661169939656222581783752491348144077840086049262479020013388133742212531455323597089623909913303748588673950097098590551343208714488776618320778428650878481521014539841773245992533916761379877538259327838431392880244288722596888426724974859683000403332794006542216519449886277447631546484294709038513778855748860671580639393565610827443125174902007739924195330999478059762595531086611431709768252816462765996773348686674021174022316899635254948729633008001101349571471998642968181553901041906659330325612121163044362283325065769274669882697375285869261192638474425342674346133068585997972435659328356855540927382318345088044520722638762053622759471340804554908958985658366366838754024220527896725568131868432092318266531096220748524987667386115583611217462261060516561825988657241386120463236634885766885867523635219504349107119648365969886290622426487740530614199481255272362949281854167859979204763746075189934368634902557981630688386391573700123485198394214798701609259023570989958728086726651033006619090962520775365630056425221272297554305613881996173044485795931136192624344774998366820947146298457602834714221737196201845223348836406389981878870758497549333471619415294993259211310731015760419288547847599439703265545738638536590471592810474069605295943447086906322342438690120405175773186714639476398657652342029017339371650049338772543791109913428077561296814312463195391635237051527514220752740275292617868525466727635591101664722913709098757606771149785164486497422171212366438713390420432419133957889068560215575727289429160072900178723507375131439485578056212866050915680146234856917916101259478724579884459582124475826565355674786261021068329647295382393769347479598175421249875999865975021749039971129468043690127871038295980593093139495813694729264303469197690384518951538414544276204744720614516591517060711452604771373845781940527006657160291872885516523241276983405617026784212317177737875234360782555587855409051424586841518016029086441561673010965000241585289309639364915193812143574449381149228696045615079218287703009011737925186961063596863505859396549603052918102864100049764528602649157614441024343545370544999230931609364092116278110058726452306927730617230225143425433123292441887056042005082249161305624258645912841267197659643858356350926984209853620060335762594115526064943358075785872135576161549594585271297906748859232546657675895720022859120899750207322464985608778492756104278125988695632638865681615130462350728917388056927344143173962543481903773229185623651027029793475303979916199121094203726404146094676641326110930006277782454611894291511084095732983523975358478567550489751930581263120889078108154227732741720497700856211299911224545530347220480347920318698041119652574583525578873838055811324421994562987769190568260057146484545855711158976378697603271145517455093650126277049571661726472591026783523029943737652456441930154744760777051845144089075841220685873249963576316957178228258914863782238465797846359256359954026393025011411347125204732192457380718586310890617576669672477806715497911243174190452224785099107564118796403260120448752260344289489547358112544923140884602261833729154388939407453934526641592635726979884678583136270445395234529805104391450204524726681678333412940484942092465135500108590504720859123797783770225282973206111922064140777960024384588937959413423988297223554725145491521751467793498398691738817314314403312516178361117699213223815112036694244757373632358464633545550050472393024406539088739095892392297903376211498534490450838123192489859114164721836003677865858535852752266735238774227547528615530882092613435265041348312580166766098578429032873897679694378361476247031635903214178547622858868621803795238197880492210941998096878451060067289095655870382316383339369642042467978283421183085575656943012488632406068551977870197348814297554414640825594946428124377568849193757761012515949402191760158389301935468290082279350429207834226509433095006226498427650448081775397915313499891387668277594476070256954500151808190120772832190649104980913713125510834283047248540325713631346868311240980059364727308380413207419440689174868830588807014056265429651509995569153844951494772229680017110992885012026620274692315342296521494963174386587564865953248806507999352367602511320305547324796654219313970931583189863124165082023586053923474369887669909365831401098768558942032175224472458197698525539367761752190993148452018992417631410944747743510981540123202080934875677777805658653593532182991785629728308206555709095975708702943432085429416217937001397906154128584128450834697875388618668459495724775531887568950425618673706443837348785633647599986445399433251818424855563775671272156979914683786221721832732601179928598479889268354427442428647599751596288858022332754024046378104194398735269546648150926990100810345917079018222915090730290738002437417290576060642823376319860484378438503279656611782626532534451851923235729858043062506259451025131528494909084228696076903007284878430055043957825909229011696991297480239256233651985994597003752399539834790915764841569825110868629125892780141879115591405086010580623701913615952338798928645671170284913905396786560472568997241610843068970509733169884759296529342888329737558865589237361618088924463772993366379179450867704279341014224115839452396089126708869119694293850252080573587400479371529194794374519084080025258852180770068319767834459588235398415384100665331124123116969969801020953797279233354762089516344547624336329694185113373279939601738397935425180438551287230732314593986476586035766103304856694095319218537438893020576426752677574826651401606752220168656441741111434384440880202656704245236086495806014980973191117856336735382547235192782580875709342079771326459343950449581964953894713215346350406757844587302890947609932784732732733622051340849571705036929332065006394035416836895051131690356544498464078148117294765657841156971930638910966413196069038730138393000866687665075201356680652920312755602932474835783128018756584749036347291048680510882823554625833891673452738781791285098191269458187767527538966889886991850303199638140011452067738621209722455587561908164122348577939440464220176909683396521224263532704954428604777478989530744778856169687447992878072367874233363542149925791222464589568005606325808127732755135564841209351553144663138878295637392098503570687326107695251014899615029070857357509916860452649779391095134350666040670835782417582076945489212520202751333773054720775212742200942437187438674141321769159620813222186876577486379343551229838273199215837480464164221267314762093510964008373138960470836550108168296451862388590574775878472249989186167684045352182332558291439877025340489102303596209552467050342794723560905007778177029995729806288891332102005687681194872030834944366960048582090070562002762080150517691372629541400376352020918459414618118178438098463575415096697073158149283657756363221972829920611197193397815306153747801550468798234466897101343128096143380008508815378717995221962454856391073194669064535626360300525481377572846042157639437108573563398546546268370888702039803814965850982232352446406390885638161321972023390830396095547914364297483826446610834331674179843422928619502805488573848014461570602310708954815392017756018143252695672477103630664511234583856400522284042100705111742126717140685293929166496332005086582638325382379624890629371733258885190442897806374797099804769510317593465280271940109478866571342824265607418633945168593051901017611476754361763315871385857355044152614467926938200244401530320930659642582861827650229901543776120039729819494883810348699099505809253055312742180023622118231017076486776997230780743478393538515825945655469323648261475587959800058201392717380179392864635763262957491033256878807691110025159652256353784258752205923868646383168516928617205494670639208995598065417109844084390295127804785435108205910741948243184320112018479269557140685444316681908817590909960679798460239446519088564850591825191648863228199362604230577841956959273807980727989866663379434763689834967068137423764512217935060983615187212533022690187517009526275060563897556544789482560724865043704399723948221184781348003041800920442536677159274306623017632319733129709190526688074481649327388229535950931464274715346607835224451267176029354140427271956013357082360674790174483679009406025856743969599692893534311453738933432575110738773250730578206772882238478661658834595932787879938059225172948994884252266491557572788767667312013359895284061879352761982852093587587486340959372915261780653453557719187566786582730271214593766708603659406586581935558950690324177599926950788560191552970155496194739889494125101285310639408389434290983817183444202373445075529309858032967317819812579303479357840048110099252237761603926923462905381389967917453360188389339349194896543029523426882839485607202375133740142792922802450054351083478923617333607031908220967480527676658746117159895885648471418658343099077546481262500861873358871587342545176108367786666842010471352836738906096743916692910508594655329551461323625177609945911430554325868889272685481591890001390950363572154799982717300087634248540302084814367401093697488084374473349808425511394367470636221628929867108451423398495633753420154850080941970339236406570224128131847757266685716553510158927616120906267272637235679965950794283394652783484639165611547647225398302517624809994259191490844303933707034397370328859541915550520078562181532083208046621368261239559949024413868211939814793324629064797667982557828220947079660146376201631508580616124027327641948974338202155828409600520553601822157645179577557410936553641617861316738892900149816535073874722229676788433289787394091784110082853095097004412347636039971056203095553218991903638505003005065693045979800283801609619341808657406569122569855399654494636455661611469849698081932074847682803872607161720036932005416187276363948009653474406961184765944117635029121086310673038572104322994079207718947078785219223891403809312599574011051373964341357339344454486899618704478666228345987460007754739945430810625377293129179334461182384894225718228314188525768491287932647596689958568143368570797096304703729896844497748535719826692805114487077782346693086411740498111636832455158606524711170279793223004744398755756822693606124212740873625438586640930702173898736109259542575994275464088318061390005205982486699089679431467462469977662151789487720980561259165704149315248011986828908394389634366735237215746746065493067316516318383893189390528665643286311703768230277788706164120907284797036001988558462962147886535979018397869055242167406431989327539389548333430383419926856203312944588867976882836458909291606132476605525082154000696812530918929262515140936573703743741698274081363732869980387239731849270249134943065157990392944024397030460960909236502069408086404779000939618169054369865923264192934136807362541178942360314736187377499050308344466852104278342040585055874056299640788873991951232915252418439444002952346789713017672192042019753282731654504436273429346097131685918481402885018982897847005585240102260650970350305309220415033024251058392066349000980212362537004184845486707662540140616031426658110577028264413603077015675071481367486026475190038898252113481240595823249954875514957623564533797107867522722239999477667872343842774159407077413164142182381272579086412143150320326257795603471361520426079164790540047607526512221733473656095906011266741033082766976506606725779621405861670420303684769761691063346199467701861650782069119662318817503714614579335106855494275079763625856835634980931027517957410092150771611261707716741865383600600251949337600357058380201317492653195956486617456437813959693837385987603523844613226180502557683353061269137515691827585632671732419315754479606532988245937650193272351785649119666527468598300099407466398903046180808007559994322807355162911722847661589764965177361784252902733437221042827956626901267758785642911801722601180157492524268311596250150646838802968518182616769794109291294491669171446434629510725261632940362023891721238348590021127460353789209480975656286249937930235333535816278485368818148639008747916194347896069078861740358553693415572279319361326239858340073728963880462378229097974325333000707850714061149131559843889117479543495996113667823114213685091852257280699868714961984293358205024857692668049251402814236588522505389202185716377774803060213920093796409471117584419811728739286732500147758949958352218129699664211026388114827404106278001755911966477542650540127835733291020855043169430675732511188479780128645446883410630133038503070484233117728970947153852989585555956907535383701720838102156276618837573861105976179631082008401875089696959154865320506282356173008164395383146637252740188114306396768356144459688390384269540781242444649752708796754699861621113604654899785921724057970183936347445155223872732216863673002349927940745523169296393136650076897446041151824754508020045143602336804586510460678234648976058372759612159697981656005392549757426544934707560321987152869300627284312339974565376851151153217450414759764498539867495022057166161728308681390584487809024781316310838494693265578265445047689427464677015758718052661123668622597679168909076476594524548883528803005425612107607766189640434817432673460794260631104442083015916799521251602922153016344484294854130991527131573447021134855969157678593363940184046010260073735672667190071477422643317747250992433423868238999848088416959238939438953408254402021104490903352879953698783523313968343342910247013164218362110447830458078910924108001918403904062276128851418384373921835525689059686583708969182230746101434363114348198041632492389300422896745746276399632145943901657231726052120651722953187002776457070265325499608051150967845349173954345055799877163920115753014759674889039839873726191393018995924854019190058973222345653791542270943729403051617611205868929864580040996286142959552702795732401273907051104712748526008685168495342330086420306651962984936774727512623341131392502943155621775776428739005840644978646197969926362887134731607005977478096795423709722261187856688418634455758323160961029211169319127438583685155917894989400940101012287997417159770072190487131550431486746650132657565262700934748968433571073171513215530847893416443154592920893057051476422380567711558046412222440186593493670300725694620297475833980963240914299161518402115086801947350069640936703427760494738500845332265234521950465824277123187356822694288895939854929356520149683493005701693963030883920791396384934534644719629207390298572040769883552757298503213474830391073549208607825635041918260867460543959324800798392326444395867525285373237886417674756691955894560316496073271585909161587137260216437078334408335440201154598586066571934329644172286234878891954532954701160727368512411666660885387794911814898715180310572346715812885010573740104023228501741223316938085764395217713310138398018905980735133716747296556203190550582120988965445966685702751558662195904898307057481476528747442921028852518287411403133222244290603302398466214166833349944340961522459910398320216146853409839837448641751117253898608827613753901158473816060624284809624915154816587542330292065617319496491598328853185325128004833452795023449200498758145841130257040556789844032030706203749407456359518490292065019969551880333140593108764659808605511067655662683831119197461021555030992355910245650060590026276595227775981937460240066485638787201280410522876909814913437537929074461921969318732561926729743863200256560334852379170760085952482271441543044151364620143415661070021412913186807330951969395043920201546796733659074534581849414288102287901701531834209175714675326357790175098837666962355846127074822622202612690416237423227472406804349322910809311163588611654956366328809417544283361862786134002136226326244497814502224191086563581246161035211737885713318201851241371000261128248817913328498285001991412959682153590654608234500732669774893464473573240880920770655815634239936819944333543765801449745916793496925246026139823286686450920429164403662784748402234008066059956169890561069525546149906282765791301238892066860923809104691896921161245435111878388956231699723993614420509757768644795992791887058336124127949771425554070645405366524222394709874509303295376527046626912150724876918330709986193330918676970352259557091504112195217393177482724642245308328647407238720555271490061442289339136498443031331264814260911945724832090994465661677627520753184683367210948457465703066787299650962533892789003725489335020704966384280722131148606767647643627785562975873512018921704720675521185948138600491792016517342392737371037255542240753788777316167406733793347112674429952015738190554305097459290799104424049375371051245904498709158328719355131071525272513640722800783217109805952711969186973684321756365233941044992857082727345389978686303110474912814610461396745671914596763053781065232214359149231062618714746360141054097791234556879219206501149607442113769608119703016993643303742213689768851433593523980590154867930706085625434880901479563211506367339622315307918506311889473152044617300314040690191392523039793891762400750469935315259938844161225688805639000585017672800998344500577955758911568168341899717305455418753551288985034545404663843281481301283195131565945100068849461903521835028939356664917798835185505769189685907017645326867096828596341700273156180668205442957411178727449323567229473152930093682209937745200981021100857634405215588393946844466593544116087312094679229638891166493108717657202421362596361337681888782982968593630326341901386030687960060989168940611507073168113396661933202824398084355581974103471398771481487512914110703384121303769461146220095562249405314373639732545529770546574777994156812811162888654251170552617881753500161883351452747548921193698119705038831850562757477615309674076195226971986414396995242393873740716321474184862010218576985705056259701197641089892801391020085424626678140759087168176981038626098397543437092814275646638398758694610808262474502374963971722586920409312472098657557402743238353234413902781245464666742739623152431984507072433046404599463899979133869256842829581262473877098073035408597052714613655394700914643005405460166771372914883595884984705151546782092742068475170634944405399609687221618490469779267920441517674611591163435086774543339920587103867945783418237468192588409985487265570140908223457351582763443918309376753596404874387691135431656075525472278622291927304459833843290900001931672021420270823213459889664110286399389786394684575700477744065268629318661804288200318942450828247865817204740751415778187766661552388611421570541141982594306076496775963936061570430159189232306937070135153766435011011166705010494742871433464965223700689591146075858169533797545355138119546671229793073926264142414078686918137349049526363709029147991344098282456936632220503890623082408787819031940560474300008496607514679613889205643619330735780271055296441851692754274847026903670990012948710023595091423222801543430059688612007511913555406138654403052485210787776397439361272350699928874147382300601122674149878653845734774733596886720862383707864428320965997744155438723514147410366532458415238110757216081555461034594056082859289004441627450727262710702923883423069111445246948782841041010647587099608081157422278024188527981333514352471616113883516110434478133250846287007055544952395224154320716882612203180217386003674555230321771719031188193326727889629755484458776282115302282951993071056668529022612215272296662298652806921013576991793738398470799048421459830121295506253025453565202542599474472446380196732189721509331371237846924786826363118098763065679735513184301986390370000972107112997060518272306074251718963956632263638681230337196091038106677232572507090389664356011831378508685716860208629116217778311508669246923098036042439756887754859521540532529249501898271676243696090063615199914306786145824180764564322185405062297689848049208269639242256378286332409509205660481479177678836425138945581461479520249942506023005755998050565239581174027106618155819679050686470913909778147897759213624447700460305040288852708620632646159532768886737887046158660809950499802785122682594438644721992147947800796331038772043979459557711886773758267238544171483503129035643362556809751440564369218880362797718214547445757484833525774775898995916521269031259804870590425234140815809885221201378952873809807013584262433861099038982258927838544498479011916258258941233635325055236456190039921656215587953145067173389477110125677519825141675529777554672810478522994234829633035347379043891649717306126162866711201286246336379237074461017898573095513159956735976110803045880401221759906668312329007896524496547419726554855258709517915932981153247663872952213026950844062979529511171937042680787396822865131878814230509229017964213533749269979930507939629054777342685690115731296528415335105560646741237762828101967339027641404168221061879568557809263652576956343253268403842341976356620517128197251050940466653169757253723094639313197179814086386690475036686107977648285937049485750730662866179937438647175170377543659658537195765541795570771659809287642019581377819471697563617467244030241015649562171018337643979937538362399602110527410614599475230341387001004201201254951816728599819106870285065594586713249691036078158717714832315721056679020602524688541895821352608693816385497261468856271972407093671471938124207595202052800496121871477924318211717311700298036154238032761988009604476632474312100074008352176774495647469562005670078660325164678546860696537229170241071581846922902749420775515878535684269995526017481819089327539943990206861923141704200279431328652522246766651544699199700451317702814806320590965524103774396161448369097083407915941824789569915342886116625738325186680663075241347144687535350155613252146230617519647347790667964681656431841072020180974314849270208720227521437121536208728606027982444901009684431667719585970095687839293691161106249309482810815765408244008651217724321056629298605935540835008426106439991868498908807735509910641986321342666690507567425143661411278229577324649128974031501648923339484547528113349505307853630774374679774253113809631415073248166578635031189151036242320917042438034216536901161541443812997041647911347422263759138508608595757752677986391573261867307964627955678119455137684618269360109799548714388955825407930823226551184421850059455346011688918087614027134223584633263932743518869640495852577730357639248113650534531953687862337346899487689403924141162613345852532470523807979708608665784116207130058913173309705974511475760574558316547054808621801741067545545686576970712072857473439956809401048611462167649603782076050589685608866467968320864561290714878378071942852708561211333154278801313463911713264432937416568580496342439641991908990280359099975127982151185339834254099184269528179519825988621894092612166890020035462728674212593006026457963007175758195440961070673437143645931042277035563303755192040713928928266218921201437250508651006444415639774541517082828273399879683955322230971928337705448595394284623775570644664226572833318337779729547422640141274500571325086686139852610808242183617535691245841898313531854383856016489844711134734617392253688818696336257127993759888423607256257744756173993548527633056969061868677779968985542293660788224348311143376471685102707598493183223825216328217651332294582164390884922262488102316167234117493890431799779087706762524351197333645760373186538442990161389043270071181499579679258711565455184287162726793974932798691887366312155544356459724310871070653705220254660964948411215330313544216297867028084879351613796457465812186538479880890908048081048597486489694277115769399078678502156997551695213496568742043264337242290277604824893095764360750517827631411801924699714791994052307830094527176038052620954085203516850065281998840658588288015704985677761904389991690353266446227110910586395683454936341063617621744887055423545891184350800218392560406098166101103359045813176610891802338756733775345659978886894580296878028976661442008267731620657444389891025841154687847539059977639738428543323627746746023897008635315975348359892296755321169589221209471287560802139347081962340736660700173397906946734313624600795846116209263643529160601593169822826010390727268440468522168507637027835160504037677080885340517122253392459445445194092517063270041227189043294477058373148477577663960166597982048605258775825724646468467210151286799869291421181730375551632553829138245469787290412127627864871018006377022301457769126691208793581263891082698187169029132661925575237628668211217313482288206420800492239880157317568000398061929446226126380971789017884164710675950819088833522798313526118213035961080576508454822531104195233693046280350773206647565230767207604157046585531607742963309212447063955531475996691812359451022546674542906859590215855098985804990953982181864299519239874311431866313916920463726731077783458201824416630051787518295053510908255520065916610534124693999490935970155461075612346575509803045225540451630627419083409176672151953188678050928045390358847272003132699227590010108498185292336718073295164796176864442548913823036504255599473552087348674108359173881184187375688048026511634569182429337945189940598872532797072277534008639621284036948961250447663666322219960847439054469376717442084966736447874458791639039111354985212453728653132672024087539997637136790158377151759256955238974218818934109170794771908643193067077145375755018532508899795380350383658115401583458029627154509263810536054886990275668072918460235069225869181693053480031654547203846693226527797652794442705097116350251600329151812429984196025286189137388449993174787710615703438388219296820534830193271401226979325297935427127861252162299917222947739244471142109403098406846700602427341294858464190560905263399036394428692199023090502416112702053896222241363866352845768959945458131478840052812852869247273824273970504924256778546984486266835773975007445284652661730422357848071751199582545101753882258545874915672203528134778618666320194395353963947298254230732092172369038945932392176563998089250439582686744721725960765894749544101496700236457852145363821588862921385187993575715984288645927549085285228027300843692234958818933805113541611145018333211804735065560002248271619620368982814208680026534127006625089144946767590136203656423154264517218788940542453307293546426535538558169737162958374342814151463502771496920438839378191771499749998195335735803828107793827888293791731226631655931936582183898447866403139937189765050824372649292467544098278201564879257358546466647754093560400097076420275492613412348778677787875313285476203600554912553285866752020201358571533803103514353082024316604207818531603704206322455426106544004323375745117395433686616361063630462556060870325719281755587446952842175113309427182270993139235896352609431415880625359362028208533678616098934444529011332546923071361302264044162573281235848717216321865926197084329593894765950569284026134540487015978534853814648905107938733888714251720308787609823453513022337263689168061183082899358645588356100506198830893260264824325835274719034293439987638509669954228837611815528103868254981294913966164551684902277333360959070819390188812223605148044840280335560190137491532381458450936150396647019177851324253115802232558701830349642110572481426445696708959255365350321859377542556103336076357388844702337464249482972867104454406470926694731238959666048737579826460701438186754563724541545994425129879901043523921399665405921068534953394851203820903570326733881795007302658643477726788084702941830580903808608361909041530253481278383754377723401071626992180510235839362391070739920606337368480177541635919524019848608081749578204249555674441278960916097987333182130229661745985516795375004265968163876515296648093008964512397049328179483635690678938020866838305923809469536861656535245782266144612564059335538398680965425166103486286162387196193130489550514627881256082713515818417924880313877112302701158362504389783519961285665485097932498544712178065988503892815790768660316660354935260600660978605556559008435696216323648360454750819763035017103957149958959372186315696372224576997376049560486839006911286032079243873407815698419572080197251454453496895562890274851633990211584372926008901843031350436169823905618530135076368394653404303544573864544151558030467107305299208799207747297105094430010784857192352701985279805724920146913671732427128012963600734275273689663203285160604928653709705682333752477003545099458871299611394747273671151053483424959659959267551466375370697317409598878497825299358708317272869562553832196515799199606503414624663263842918703482680857716887816441559135520788407778660057052388565535729193989175669570118375356082314325094907333930015442274551122545794497578232810388407693354947203720713739077824387455923965714166006946552629613759429040154233454129929627830541095439358663865877675372831610981264084577522173552699002832589997595414221019749785457485743177500786173599441409458850226655734133799715091591109147669195542132699815794497282868221374154873139199041998716469631502764246160437944491006304378659039516494931721986989460513352116435831205415368503617807531529716945676345683190568865627638415614833145354176137957793168327208707968237453940929994709722519426394636158257433451792707957978712317403586942625655948578400317142879471611067070325302949412726598552398890925346974214864693945102665225069731279731315677040100440851397957517253182679490697259894973280077055196033389049556627115149305430920549913984144853571371974094696016012366361016597137833400620203103653114009966657008215812911816486726343182144711299584615197518124626793218073651198305386346456564461009401485140852967162856358527793957137623886612952918960534215794200083895823079543488579153656799526747858232183894171493545548323126709880666448548250739859522869464708048763253306470422642369679539674183729364110133289680094799932122590053173115796058551765789504627196445351143552589109812285548923819311210247676257767536556466594259187895087272015105014431334229825177010668017887315171890934745450478029352626316920250220139876638992704536148564458609244805874766748364648876069471008664385329791441644535972998932675731509873130801534330208191235460629284627668544579282684340857233084762740044262272244810254599768687911487857620723136254033191942764803103696832905471614864905911760818753854862439104270836320414418354813185360979146173888470428669894239634130281849835737937283784579687247669533885733933281374715494529642253252494472642569123498258849192201249527490785608361809462067092413978827052169656022570259083764141386371931896500129317766623753353666202238585890428254951604305409213514948961710487635857227674365137796445509791646761298752335007270346905406355910370052782304998049215187079090876945265589179936089928469987911164465061468216691000976896283471528746305770397344631983519928570833682402333044427841946835146140956185266757819487469372089011117400224019412239878861742329152939540994255358962739433471004202315019446928893653090166158343424587406150211817601161381822498237369727192785910426293294710846839331132057452790355814663910392751006748037295658515593640164532808342181996284605972056687882634404294949148264302062039914641786346463691041684655140310349760320974230041488122162462180531409045139841059987807515499769259956057505560132574371102275476705949626243695886041884548282718170242158106159436489733742040625805055777122111876346260649243045925656402061748622518781610321233078657048750091409087825353291554662168193600553737110615840471818860764739690806120391865896113682704755057354198362973377982012279016006861659502613467956316801838768990347938875605234328509259145797419399042351914969238250370780062589742983776009034231459169102055656053630151538950489652617992066834900792618492800116605011040501726057654444884864370912574308428857787702737802390683400172696420613300329990548976003524715798840158925048461006700559789982754503565714278765232681958687880564495441724761469380557966501133333384693845981257836673243569139429417547926600831690890947523628488886618728654178387414659650114824275650656405863004787668250937835343573967206427073962837130717609482619041596276682751522924546715357655311058846924770588423983082657173631540514915462432257031696843149539472049728736655907641839561680480448478283231391023583347849912885428389313196012857079389229106833065031756660658384476532892149197070585489755021393741878857518341515139066433055222593343878323326024624042746686458192214186198122658889269924074393508537217001978002714409099375304126933539189647285135747000480562777339030994691994203355790962555223249892839610087163231102289703669841792529901472495981531579318615040550148320137477299911580988074078938218603651752003712073639574462559008734604905741782918575793840792390939785313385369665937339767102401505960046432675010075677622378952253825649114080080759719742858646423778827953062819252523836758451693259094623933666930821256856283288383856907741475291717378030499381208281122904043263042804445336656098092286895615550566943799558981880549107335409484773421430420296216120388467705266504780655559862913434332402204663932147125765930347454672391494601773064375389434123807156937346830256589396349220424857563289199038039402578459195898003944958312866184571416882817099206259912450110601211590019543377718337137253018668555859149633611682615993678628927797636563796326995657377600647481557614757641440993107976973647798969723522354199945688561633085363115722834235596352407375031285596202223151833919161219419587727170488989864518719992040027362581085599538747387836616470032593635408795419386187943010159637073828319121305548587725925092211397810464737498850428729753633649831155400876321303319989091732299163225548994088931591088488488119148756340277734817130761152086008444730956538238863384590855866600956282632520434100801095333541867519758362038234428782942289480166819187238273394306356538399588297499084307697986277230150201177867457290503010728636040654997869672481843092916637381478343090671183541604206609806008960365699853958552907839162501337929542301254578952807234740738006284323768980544508110676071549313586445326896336635305196309972781052824045172829299996885683100026149240215915347112680153141941134400811475537763678443018879532312379977888255074306051878252536619806247117079590515184144589126292617321708338165585159137362338466384546227563416234934037516339968106942413925762651003211087176882091659472710500796031455729304847850902227675375066408079802672435852610365459843350212090110520558976175543426584626164198049323913222873245344721157521621854933812824005077486191600492978474523429160580611800351130945882127785992931664278277497646304065379742107672406049882918093063352256223348612039024824238854453253289977430046099929476284916062388469233156581572927232927040595762995254232734180675342033731194163307329676801605001304575625993017213538020357081768935223583460974776132782348385660455237560170490843921604915837646674934390874228457121961859673328735916324320376330700561780038615970770603535211160829569188215595398367502552744867321105080858325619682098444380062782537196144197821091748702858895549289837412188621805714467983815584620026984598277452854529518427687970529097677875168889947819253391974990423051921468455309127797846884050401573744972292380418135834687951776366551778788475624488832199819163299277194114607431177376172279745184194805677530239467218897238985410970869296032546100195408503854749415596663883770188915705818159359467362287393545505623447700931609561661092926551575155570305305378531303978352404424405276224131793106062682508185971839983706571992767732849136972392757594199872753118077325391286298435833311490710523934822999587560094287799945893053641194582397806863618536659479494401931382092682120094083346788825300384839769998600240580594317929464007935319754804227679777017598316652111194556738892720748943069057794033812219189472119457642882075333140598617544447369429149758164555145186262896211802421000721795254859841225731361156402805522953584550185783086956966211759489526310082203414183135807512538171834729711235114950581368889416867585821983574313845118877109993046826961314358229817360625812001878011010589448103099194042205394809282050424569819499587157805357144733011566253645295413874545141971564166315177568046483525284641219525258907680946187725713193878761679070933405696537557883657529434360685263825464981146256903098931609377936502266903612192319950064637022959795848492046243473403197093667561926992105939758713431060700730043752647369155229520628618925725428225929728976148422075017546192669918859836074217844792345426332572346956491910935963019809510584135075159694870462555864477308525398184692666140402946284055750097867466358850016089514653544187505657429398426506936240038560549122064672384102696088559860371194923541675918709679354232236740169727094681835829653641178468482233318317294138595122660299435635946816896109871500856746375791932777553127528107972241291019989368318384149928243439647261879552063693578353490252436522778164438766539956782540195122557862821353469338904546911968368350863605374075686367796804656370937972087252104866873548702461592380960677638789548449237743706861453775311062677972161453900313594681388590158878938596076629063793778287256728668836666927076252118674091056821072124463320497369953983239402358383145144677280378329680445266252990603228252741821791929368011800177099233836381591189954152074877556975790944980914342913597443078803181924515851396024121437742591657077339380223365867886641372367646101805495603966628828142762316532238522388641692350639865816465576978282312473050606724348051037858215718465370003088467691126473718660976705098203856926624004294017363172827603325390721415109072721300395697245852160740475317334714294146819908555120213923756342562372067464080767839507371591460967904862429836843688099931849489026805990455791810949106113976830504773034642447331856774547745208118882886347539713236455289192590339381039277526541896972924250552043911430129363833337782410666850577951054657398637938850391272097027805091425711246267105806273114817357900463290796112021587394771201991081583495398806288151482229974305619506205591775306258511602335603308102265503618215740720353283131032131630894190167455477059469984196895749835480522590375501918075419644153384890331119720916405851451711252214589386449143574981962025668654815905902859398522587952449889321998035536804382313530063277377250751181175252964116936406283307282823293111877864238866596801240639590896511827092217996542873684973455991934386530031903737666254602540165490829850286089358811662505834156796502856897437415454322541640262279323087833678756864916449511205295598767721894346683641278025848725022860324960195555911889915360720501331867733400088484841302752587088460630310543216626725796966411470098422200965221030583905498432712550495483096626259449223776036357174630951873425242087294383714901429635237687787139723981075585782580840644455013331906288989603573873304486740254997570111005182981540739326081382040305636015298573697299135672518415826148073508862740878858574003052701514648987566609798677034673638610267035691927962759132646939355946429899259248338306388925794177260489954801985411878061450416523656073920440610593033977373767839887303171541342121334221499610092002352089355589715734847651534019870470952508052789054501118305491630388622514960987878696846797421885160721799650991517011213894853907465906006385008319524374721376070430311675393381093835425745786820830098298261468465915188352846720157678259138271533512101689345912259581315108118382581266513440073380569583503919650948583180864344345972895445884638298794366600706685304934903529940851098363354450969732157154392509202499330853286441790001565239345631215510019603345858379537247999933405656981695429868447412741357502394443448841291514393503232482244414699751310970882126985693477920760838914305371823977164560000725619060367268480052607048622470995100834036323578708582208520940779987980748235340090340943481525355990854788662277258010722775346604769457525776755876333959265963690041818325887032676479480365612367993793648237909494614379221560899386303305600721954751477051211566263808836312868044424405620600238395668594902886198472448156956230423189519814386897849746579764682448208597670665426159562805407825626881557825508153895222329169956171770578617247860100612282350364794685337511202253662983145547203622601852452227106917708249320728530863831223271125793543553027892894880205505704985630166991186620393130612295044352459888514844948163891287407899593307969280480296650306680717251118554546356110008975720723987842566737480215578619370983629748419826522219117187483944695668769904335449975918139571301090586737472379389215376868189742558710217025280024427682513117284292541850362798449711563820247956081846980409807254579512629353342425565332449936559068738018166542693022604473283434861049004923375285092552380551161810223072583105334352244709440555471014244765701172248740588427233022195447967816167577244099971090439032882048734426451942635921338160197016824814741638484959746134708108930375487006605634353538180725264367441260387425514209968098105146076404748329531622900729504647081060133245743554139019339940672295802454108351584496741790288925792249401369064507542539037353745456646206059588850664369433909032098683172213893896017640242667503354733880321275536172597101007427882448580382664063607471319125350649433417276436386263810208041413749022047185617862458618633523676524690436715088417954789779096115905210692324555834594864429722272888873857263001378291450672337967941233674242521058910066612232480591334403579741771230768079193895899695061667610388341781184356845347726334273188901441813131319403425786402659639639663695512006253270679257040105487834353633632388962882418298918935547077815962309972535297695333542533307449955414862724445719218368376812417359479393105735282551865176061781288492879179742653602414103665055901775857076657229391677652852969522233050339355165773191814436947958863313929223037731259153471413711978132618384338614693508586175624557884607100670668588893033021930737082643130630724065660916486745021805442996676324836056938269300104921476364937098509967881948059902419267351733632588347197263235209243388607752380393494055613695190345349734896368407762145448199703513829321879805621505857382967756204867072313830852262501116400391035575341900034778975199626578402470915402532906891766247143041485095145154504406747165504306171387538865714411316585354871610536178017745043651197860826465755870391005342942944637486998903524830694836739788330907345275355092203638244559261619180643838810640806666494781934983196481828184191705358577357282725107496034107324404720390047499352190103414327169738596186252867965596300214176933925363020628682096474416540291794558514144596681844487204964288967431326684410401317795325695792782139072089770525742733387766519202658255157771675094522417297912126249578710695407916726350863017419566588481415306814107136326792277240075610512981223713625063638711336430458916380003375324212778888818881739447875431229590241105931176004819077593683431103183526207266501170094676523620332610346070044864229200543805903634358707789194645182404075935227193542038494367928551274013397488092109958786473237247826165384852261233231001887166609998520502754496369994799798184121714340922960388400573427932135127149826104338981222899740342730591125487036705218402650025807871174582382383086560452709874258566418955446605666604262116894355950066987838756336193570755719833737093949553067203731554810208671434529176977614223900605917906904411451133033276790235133570510691158955789287373294408710558085328129202528161475211089161907886895444258467972943362837073838636088242370172842972655053315595487164830826909175653102812302438307361818315471302669069303556140174558345482377913504062291846563769037271048962604509181986868903796929883047489678848837223715099684918080894481669009196508253966712093216911947211588123115416708345356716723223662038623350980247785593167340076282811578820303592420412808449664441059433106217767148967922955381203528661740461228598002850710496835073816102843723498818927268607389500994432072244094340574541364654514202809985914744043521912045702270469683411407866862747133149734868728241200224665345631079248270020942218657994227081782583305792400132075404725772936162147257362514448411006746748946882914883407676758809854595494041717655165004413872797294940271736380342497796523935245945273699353849841350780431527399819472045875584850665739771637370897289204317132440772926919008759285390773655137562576342752526578479127491376914846600462323457003460538138299013260353173512813174669742069863315263090633789136619543655408177033622731865153575194312877697387537579734933470807413197437697088200872234432992135630457122799507008188872232518398092461645537939761267500572153716087238416766991797093226750120284250030474499488706874737759660693455804783309774568129331605757004673708908221635088476593643004555204492069256707813081239575490983392291986324277072298766908897755745585608794370436952229123074656380532149237027535801937081346953696809115379125142789475607479858004022412793356313544527696464454560806121110392882336306491398043326541061185534073022194729815028310970219565374400282338727468983691722291218592188209152079580232467737610364261141012890456190947732069444952566033377762982727895350370172665555709834607713341683674883480790563220360080945684201883356643030616401344164641819152039423989351934279823416270566556192171156675477158557769328981162528097889901966084590182920570091802451273688885484592193279821937193952019434908425916731991188587872916573189292994329872120596018418295830113567052019329688469130232341852873091775101137766655971822106538505584978510407795284576848653645620053800955458781041782458704588374081605738645563035964263452385981674282229114887827431012153957599537590684080353805282746996423511218594149394261064534861433114524017956452661051921986683390862407363282820461099231772792612665866852059220161400701869239128326122988400402510428595026238832981650708884180436971705519825254814116562026087360323183314017005786254507115730801651210504961603794249286748917409997338277230966421972427181344165037166990198933070150692059815780130067599966430626327476381278227709357557703219142246075221935451007557232794518958389601856965265974469932587797466387331561799226224014556220661926674508202763050472268384151909679152206238296955953351818598099562117994927273953653791759738666044265752651037397259549798166942748819086980794104834418576429877506464422002852114124103090698552629529590167274416438600445273704636414431502261345452039157733749284053014021688528643218069537572585966397304976939660045750553318271006640094453214614535257501279058551294906777417119188212821307780126396257200360315455044529513116558312729494181604481252361646136513230912695093782423104094061961042021540144944235331922978713736683544630198448946287839624035686200247454151579483602902970041732971059317078423045649548949941108391724931996360933686133924509256207719536333538182634559342701864302168973001883917851978819537747302189409807066734505789917469667330990588774397971043899641288086922525727580553124225400983605054138464653526919925162975290573454842594701866222906602432198509969435853577014862410154776500902776956402291779472425765907285706726165502557680005969707666898714748316462897735489631288587387173013572605000333659048209621377227974844443234775531709551895287371329550131183194074725770435260976622386471186014036784584114755355824067269970697861808054264892172619913258384951248711138625955628377976295275729069567571287193096504493824932137692669134011157106112864498426239872975592569270265197442060126063394456542028931012620003729046042392005754846127846621113464471511485518734634026221233309302291093203087490515055889409608622580228957892582083947283152720908812886568907545146200295957298162497540514466430471856850404359818647858345947819064798018418241435969166669331322693151702905826399294415004862461325579128518757344069314740746820503858509945380846201389920369683979940255991597045686169220234549666226054949520989429388452185041947935672333482324931118486013297803723424442156262227357102943252505000655688625341522680090693564645078238426842606476505531811295524034001848648861804288559746814653066175735948005990516745751101490837118013706583884126649138290970478449307053861978373856410298361815934559518869190736067110917875093081548753311191219888468737495863710982279164554756576634442818267283102461203482127173866049237585076973758183820186172912422386385332565024117163521552120223871893926516025135502518823456444676415807830944260743298519374967662003935346159900141397191218800719235621371350587767429917960270954628218502413595094129347349675447114385348770158467117066816313643498100899832170221180818531429457433589633198362672174263807170346579294901384671348040347517838359558624831475038285148138234194691816380804549139937834978605273459571386252392957564502765785015013935398981793742283910280704359010206505486901273940736346751904393925602551746740419727683042136648380577943615515032199500912258035136648391466020678286770280542108171606788807691012997647417848758613411197301940061204282121118338242819697205721748298052436139470636377356181563238395550055402815635081282077037190732822881636790496581128503019112246465359387599188192531354336252205050183648920192466447504048509967295721116439941412550392109068312252888488259509589431490549919030854739093566417751085241556909771396174562251492467063361805628766001003615854342755322536222456857659576018562969640091945720628489513102876364443772555964224461344794720444936484569477536480016171268265904477825228344693533243819345953063101985247026692299372357612568548304606303547991614459701623606851986345905730808289398693203312522367815061360561164017168914974240396335682722188331988947470771993723104270698185126061535601052581463139597844759772903102304380723438115118771092096986011462503995106375026184944695386796429116314765804727553542873153753007325676067888547686395383978935958979441526325360173393656000568856989795423495300510910430504523777200142858609193954131462309896745417061209023900794472572717805967936688242103896576668311633406267889034389415146667832662802342027379956407300334044475667899743388563180075661786982276615949515633017152652429472056280420145252020603893250290643921831317734164466301652978615366297102405270563751995787679970252650485576889444310410865943565798205637984474008234266135549724964041548031381353563862726848579198815152696885344736295708024186763610373265160315851581985088862164802639905902926854113786301999049793289834135497362089857217776907753311705202160893778485740135772637373492480814441344610357758970561924972687639041930141745007798375700618170462163942273505694967733902813485457198897069607515767847642609379489566481991187161509066694442958301265681920098308284245179597817148417766828244020115309875326371082196547245440666762759667617009417590471864208398924904784310612713559796553484393999921290932874700985728218018328937598426344854078148700417613926393300010058664752273880068897871732037364349446556861876582092248459204004591081524080728414643538802402922477194729120193612103067413732978408347431894986336347381518416979742561738164817181891021703057844485539805565338660865149338081815705097881902845070313729765073175582378975197738492537608784743203651043757053942723862734949811707159592835021705442722861209510130588254064406754669674014744759611473808615834084215885436436194258479821092163910965835172990182621767561965398068735990404090128885153450968530785410201792871154082209164474983511650246966126458160513916840870167640948894381920907343500946454092219096589639742086261737358681304681187078621491204992642664752683330618127893181918508329083932734970464803210265037336044114511458877172434239473076030290186067892711065070015717362909479081013128496294237755191183599448601768886884041179782129643642765155733470084321908738985339275627472428349322457261104461055404674583833366683573905086515444422962724579980701898353431866973900400190382144118122606781464972264573797002596931204097397642109069509477098517194120978960640505203701268643211242058147618422884653074031094224248291790432806752577940565817218141699943052122381366801921994681550295383996296941494638677264449691409830300492263636312424358340432929631808544838995224538636086002847245558929099549964602216004248057208629383804864408049392508458139741452278882236809461610358653502956350568423247747957544157119759461789836541481833974051671021433290434553962092198561562364906002762684896286046098952808788317469817915538518769519643716347949647967254957799889687455088874232262417616653579172684271946262775724656679552499708708428310397061210647452592429763095719938932542570169764706848154056408043663327162788491574132752471795250612400087776521451755141488060436010057351013509942705003872554837615612675361838693251536984681471920507565078605942044356844613313293058157941912521350115746406311067822630623747284939376791726129752447554289809348903144985472755164018989679301651072464297641673841856482652816920364426653503126040104142166617863474513765162318722302079160854714601881769017147311963391774767754663283003128403360148818056032414866887300874034862550318509116407131068216490044335853465244068056396707678762154468602330860017179482059414630365097917873490290715982779988109989060471793517433520469473474298125536250589013227193152671144790801148536531471078844629598969223872247767325879709348881409078321916367836982560750729312103329554363228254417494670279712416320622690342114039492799007966276720101036501065996740180921012933342898870437299519473074500528177732946413513945376260387607435357579661360993556558753131748264489816366377704385881600465000553704889330469166704841162293441130729711074820040098087997687020140000478107955788138228322827264643840291608958092011780264317685828246586209129936595740375334918342596071899632712535599762280230963628159607639759832182529582029785517063910647776226623852533620048131796858628021517012446807310345141606064188410383060630802928785110796757294828639685106876866495190980446996386909571799602550426256371179579244327158679724380831784470340269889754613444959103888469153623802203728990271836784519389266842131632591448460212217955161283249581856605534668155516984869035936713240762541589163720558474798818873689759935179746276050747321137114854309255277277184443273996351604921188856773558740072448557509753528458229519996831563112263046274509944598480956066372591165589819745787445054639770979287987983267805494485382936996349814087187099332506598270383632107160196910353110518311532396653515893801585888837788601502607410179608810717440587443803713758602044446003879598797473540339145808166839379534108588273173512929605580884734023946690218461654780410668228237218140651964858381403044820111610610012066047053500890024947369953436870219513786541208888473140830904629073928375436452511316160521375210661738553413863545135289342233751163742463202802309268922308665484445379622237672642133396848551366926786934764962292055369096539010254328619327610402325423096980409323501729057153948834886582728376684642182925200150412692738631528819190371288999290988893930694010661525747983940584877933706858216795967591895072888199244586750741111402788607817758450397136817607002730326106015425343102091597656482793062859841479711384524653416165474966518727616514875012302629888600768209255911822779295013078810392353504173417679981859997737740006675617897910439036616068507366221885313191958233636616195959148041668592803186356472744563266884487182828837595645137669205338441684263080995451786776430589101090074799433776492380433891506066114208456735189074146827455350397848880331672639682612117519494267205934179787982919699833731348851786248074369798765376567346393259289611098513998651589596300297590151854577031664736308586417179486993809781505708135147784213451210813295564987226080880959217053674708122845990116918319900165573616239727278525602300398101404580785987689106746651716190232807759326467099539149301302146278491514199672538781235347168495574559362529950027065720996062547055483712664182844813234384672619228465832391879271408561028163317752397363413122798168578709797674349917832456783749767447252701446186248684223927107499727590080225170308662563670615840311153490330094312335159187402206843903827886389873391894901225579709218877259168779817502787248800671617425081297793443615697941026529306023622596648362898287291697305387245900486789278546275558830472848925339465606913417857591044140550620084794693802912308214709961882526077759923275545438984874608701134466321901009037235039055460378463441690872859413288501660035806677776074491383948127390044448118634301479685508217002279220807964284422624309898588333570065111147293462104329764084423830544449989975465537133686438984431021101051006371246552190579238221027865140271718533086360990791516981669588544390278841652652445817457077029795313613067684692982460767256260464555256800182830938106420232441359772142197289907878646641532347381556344206469057430192989812201402247764058216530846648490489211903680841148562530567438276333349762023946959097547777989773556502294673604975379279735479089048897630412198944180053989918869370350609351194197899571493337931317245945030874276723882819351279536148236528740260659936442434292091080761062965608471783277681196567945523319439926446325142866193161508674096213516903000578757157356187422213064100359289048063192632617099873543797440465129586613830849818280396033391660267699900592673049315997016464692161294927501411110799557002321074278824730952907828469945143538244986516531009916832197923596861990932849741347625263090730405721503142595799104037981268489860454473108697419828346543030122652014603511814151820550011959764004303838668164017327834431747121069808123611192878951374903931061320066223621391845718566166175232572772995858893580819761206271836746070183505244133551866669108640762012992672336071522778450527861561594196216065372983233640763662090100134986951852952159901330705704065390832847667351966137415075556220795978509711896175449640378099241420064878063662913740472006918574570581229588254913274659723197850148599187878448139260123431590126147087799063137205552904352579398608567084840677143624351839818019568313634848886612365459174630074141267771973581086084432780070427719970603353570267637189946420947141886204888172009147781170393275802581531317670959010134355807677752962209676102546518600996048142416526844168625302210177611842350356692643225333457569520752164577154634552850374963269631348870604763716268323542313783838173109615465626415720480044316875768395346614887056708047788642986331126609288292791764182674381351943767279387024036543344565092154186840779809655620676640693107322264983602030025272389382904620345646815093681587838480423113708645407531987662286105029864974577419067926385870398398667202789664903059515702741349167281846489545040720832178591769841685943853319487609210728538594345063811679118306031826401573786043583767852082699952772602182046220294268849606604030039734410080719438303283490646463495292386170726854764008461920619913562699287209240217428257392151120801593838198625296692702226721550777691630112457800328976971463056383111749537674868613993337563002838429164563042587609683532618794676371444638790242177627371907279478005261389339826342517086704284451595516712269922845306516849696044288035008765517536836677838736073819154062930525512715298406479172208766805079586608069592558121658564234777839284293954590289864619698863892343233753843737436968665526268801834554626884087521454759887684128477672005822551938854865249263026750710828980122378199370796832465793819211444240945260285093859134199366252964576549464217402429676007758826732342993469345174680039381609192127869663056040701023769234819497243478587960111660970163020643604631102821207944018825991539670341522076553562334444696866215753448895416484354412236525839705157170714123293900823259823436285362278052784906603761708164189463612764482323149412504594999546965970016483049427671820673293114452306089249299603698934440456222047142272245334816288232526008915703467451749525335782017679559061122886768168380000317500091193249046445915164210313940921826070155036168459389383636684940858396528217216394466313822297058958420879182098125488908839368351131469167592152846277777231861836290217726242181219050396600507990214944075277457826488033728182318130535126948575029721970837711076648243869692688591873232565648185246712572765454477806290971685047590022151274896668048299600797618189050661046491516857741946584285585668486040884638598929369142392818810700823793947845757394099055739168084139868996286275180263117749784304918652574956679964839536755443957357063668279544449991044788376136147449322445086750572921160042150851585774949666594597595128731890497710895314089228618680543938860253163233811505068572891649481984958932314005331667108333411381759412652227833740084795974963134539594871055981670397054480241663981569121027904808954104197806637352082674063615791339309340681138593809520597998433293897624210430805017473877327285118796542512080087723288821924103759203759344785635449223435391955933009836080725088513135871666909056416892278909569477873073302818139783811157895875624111853307891695543356637798047814938129063074859200302574764485027627341126942209890584327562573873561212927211696666951228676273741979982271785325804857168223359282245530788899267146794380595176703686101531090432102791831127240825785355788624736891354082117734308581451711317426890364093029404332344739926651901346370019920373843027566692143561141550001563283027671166420404330400195184861095290111605395617569382020887287644386532453834266813135676913343904776690036503137241591806776016089087907189177266890083186461429593092586880373670272043274152143539062945729308351517857168587212734925419599517009796781620179321233075194566790724312352695194563296526153721185682144431825886549515056391196186780106062563267080994900971471862825674327280663389451233845598087586316674647891117745946247437383482098894546388820368729837112022503229173396215572666256234698802803544545510834364026940364338633722224234470554704222519661840031452063693918232164691332950351484305550017770388564118975431281519393828448927505531802912550611074463462499742279679742601284304288178340361798633519468104034607015316309422459028058131417662346413806695062478656388392599613803375077806372311788590641184255269347493093118421745134657445265716329717202505894259465262612734559221530613617686792630137434403601482091937898482670746583843610004911548136115174714075971773799565838612023564079156298419144763810814764054010839641778688615825971404820242318317450235717723468978230365485734812057304452261721028968906265435231324759358056245497754111836395416052411872165951990376531291917220607231240859632142940430646649369704793719326908713839547083286593099304112753939645642854046740983732138945268936193826721893814585008563682113770006245055213056318111023205371057248567583738704835854472741097771311775028537013608698657324425118635217766078096096063031598156059138997842715611430088654382836442932940352152575001542368318139178502441047020003192570596277410772248085184653884804750613830748938551347068651194845540774971353296083948268695599427335108451223169521361404179525379919934355419490071211891531940308870251500253272797663397771347695086127756933594097623569423178237512573996852715974566262721961781655248647826789064607542053522401489088579207078029263981954166984588173344412066588507339444850602072820601513550421544947110214640650518753939836900391320060182249801163519585906246601477590882998441492962270983541230379571900731906879734593651647087544516427532237789119514658714915305274784439247938283446286914034120380593536026697933765199987023985351357632808749359750618474402956753857792849413482302883776689858680601368001257921842496798684769432369566278712456424138643089527321703072384615868694941014386941885322548281144129572924059147569360054149999334181016683352273327479451679533872007874469441877530094121476322133894850925886743743295108410689987691495401292731006569651436699053091938506646154794429053148534555366666806517479807673458703675363582807774338401992225263674961354993808490088857938105903770536974049017091356835202175279184235119244566210839864368244161544853860347423163828026879505301272977796132867411039373783893432614308170294043779051237350795441506956922473322816363058493113708959027606729876483632107133932119246903238091745586205550472801639108655523729816051023272626528840613413404135353045523338505141637760113415393953514081243071788956417014049833780976488608067291691232045378416564216308849668445014343818161508094152380350208334826047854228534390693530299712774060161166842820445064208291882183116009510443817746557360055579369486627442595117380320596274111731625467096520081688449733387674888238885455746270547835537658758182465597056865465762083595897105487582453814308137763515086640128229441436585650833780953908908616048607276806609751663224897058236004790696741887678641672154414176838478735697128543799783126261054529732331303546658894812186020333869891106074882891679195983079979901264692548611403821187150275644651973358260946677006548302361555667086182518729939475792023463987515766784151250117131466025635298993502809961083457579295104393208620163602098679427291560201116933124059678424633312933687182841160050445865447202217546868012789367494105027767367812162565635301599685206925591827097723431695043191856603764215464285367977593125855987450973429057909514399853684272653758161247397419931155123044224648618388583238771441801828351583340686436922807963940817165986225877883154661481936157845193704386733201692408821812665098924773154308317217646772756715654717058053582940882866220198414963880885050525940536220103431468123197556797870699095247708217894344067820534962229283603535948251078008659383663531685382320187550520215402333431655933309706529260581053390539504463624954921848431118237447998355635532606323549422406312806291632598773872263960030678640640172717944745489488932299384154736656662777387446407702725878621272705347466796419732569317440352829614765629354220409449030580542647190659167008163983828765284015251702031548055587314902056557064095451237003771325324444802785894536884013499897972986084067719205657605757215416356058049969791378676675755844658669371497382535965246281823992031372811633070150510665327456997434343663333701882420307900272962119110849239212378155553528607660093678323000820121115641188780040792133683222616521216253667507400437053928089779671228747651459045151163435180435912684536698041237033773468970551695341956373712610769160305047543198385054609752831281953939732516984366806327317807192447685664870916953910252423840382155134084330347824997818897019774472129181115166195180667587514077832479648103422612508956038897760758203328848374329407820859651753046495763057130074978829378773838771015123939063466529828261236589739934664662202531207808060121623872105418740982056278840273211345258775431764614993674655036461555975501915918817023622614442415346520863461908882001394140272909987596763628371099552437007660729666930112120947307478659472787481104463576813611307828559611520196169934628038502207309756000923605894828702566482063618886545923122593548274557191603668125237860423559181632772448420105279261640075596296862306412731461644707919394910213305301435040227081477707210900514750283200428540408378025672060930326203933257017134917418664284416321416312900549320017187863081425383961761111315131323467257173827811468561341415042955137822134720587200578557465624674943879107770320046828415060260082816668871262824365858950196695246773371397984570668447732529757091017336200416537012607677571040507687499924541479891678598893848862172020188760792042846300943801987665200091870705738257113758308601903595710148443291156479297696020543472334976180327472746794986599296220602521087236293415653182006160956823143924289040289881588267232654199970297775957090018287140732239164182682175327675789269290993052242307455142412541581709799381963477300474370518908003554872981726210321383425755052014878707280021233920591574402280207931023985399309914839732412270877186753849585573978011070381588730590275952639911977405847516753339035347398952028631425481688420626284171143832183977633564943821985674246106281792453429429886027611984367355207594372794374744622768495163261575864780674834883281194913721451458021725861030433060269407622692442773414409072092782755076553680428048414439014169693854294479890402833256366198510963859778132889549113246688152326622937545770892946759790839858582202334049380445066211566353473180607805575869452243720950797618578745138209298721321495357678519056391251405213643660525865807010517257447745152253831036364882674380302917676723047514311728732304572347155812805257419763523524327551009501573574776967081360851026229454091340318488452553587795661761195010303109575212981078385886415957864944140444785994717336537800713289859500359385521424845048999679452194647888845466301449071692913157854267771186984972844487773359838262096834411144389331823481384572946741877818849296308246274145933609318545514482584236792903991243945085177793710854331578087246012484409547814069414618320819133046975296866631519695298061971682095005883395620610394154143262776654072160420390143880034458473281804412806532333737467958462331314231437980820984538077908948436386457920951412820434955862768547514079088202238513600973665327032515390473035533578839811945771842474559703636452849897426011663241496489125331704615632584863594088132750954560056452527816755206604442071530543134045347205761876876152063173887149616763649728342242682690508600383780993828084893927382943323126692999450606842788414344741847288494941683890957686273410411054811431163015429553520527184417635792777720602260476955727045392257864997350199898632775604062127957913457474870914403783515456774681508474583281089107594499615259445847613693370642148613392892789870176905185894320975284128735932959153119036655822193149411487310416194887805120275044973702082037123120084295486305318591572596069934721946745310397993803195253222454806536153162407009074264763188893701263320887825360384601388577696835519579148849681222718293096444353289853825327443752673660889050478184794232105891451582553357532205048524863664835104287695059874358162728176718333216186550165919421710603770219245907701940226504272518307791525066186672697421456070396664144726433251390620837342784886061056282209700977209995830237476843502536647994061619871751940999455401930554770276565054731067565988171229427543485563071630713868515484728298898607872656748842607314672832097932334593306928867480663210589580860902107429713222916390860053485305904034081662550573503552799949966282243063977089804498391863009330351645186818874051459712173751932436776753777739754967056962819240610030966856812186096652034005380542848602279821738182127207327333178631777122447719454824930262528825060863026406588226304443894956250872869109228895899503635252297241419385641013800291690594946210618766238114790588689846038179577995494762280057564506520699146163666377671952117115724709579740305750449319540862261502626857928025294856771377050486304027222532466745671649401492399201836366715023756823623212792526523274524081790157497945252779577334406428239198353397821838353243269733383327874816083341444440448364618076626378032541079939755341265703238282704476734732598216877015648455173027639363770117765481012815926227270297807485013837824904409538656328561324721388295302208457632857083856869207556914781408863951510625516484532321496879186245540529194897285123569533238580208354657051972047570750251520411165536489084528894974819176528468982764680695341089332756872566270593321015966944819089934356837993031025115426946025112696520353342515755825787183179505721628438428744746204501065611776294753562770947532584845844078872262439381845906176703617679012125245267595352960080374857575371791534870515833094687294252738087564195707240661758296253892695557883575381376481624837778827491254799685131552083921662702997969031443608925584556570388208789545775465548683656937488582443709186401854100687081005415389763846462737681128368826851619630890531019433198918941841345616316622814267326478599446262687942518263766712347190362843654029747157828497619103809246064473189414880581628773674263848290103790781516085594160559811774274405273751494998366210775492562180299880067102912033748962469692155826225982304683839385217035314597565380918996489346580517335962680130942747779398408014626649687457215988409691715005434645027339903418641966140058026568068234408489608343166699713551252760220241274984676231650853643585738818064458332328366702621039775184592164026631225249595297719204924782104355619233199370803414716318186325161922631183493663572210702826565106684470419718877383317460434464596727002155803953374199549010618922571624418916042861828295548195269695249032025067173640939335615172973293843900752159634345350493049615654302966129566459414135023997852769355825977699471059200047443154478560922916409780675487943177647985530348457845896953668752435913749812926228037471157820748114210944509811491270881418036545280106570591555327273542569618639502502405271071190557980844275537247926283328418165051780213474594143454036452735564651952056992006883920461359850148366435933138352259708093441842377131674727854027918318919231906069498198824932383167250513265914522223197511431706894539258207387861309304416751781448685193548081922471974762562533820572114778480783361902863286566314645311744509464781394919190664863070259640860186602123658915552694267892525532629493518418194968229562507929628676115448825654439479672780421386464736161753636849896569224242566373276567481439276508956993721022950526060138372586800924278854658889687014160408659715286446407589493181015239476027035209366186947256733642354478561301529283951930986947241473343443272583680008404313301559838521389934299211904723048881081683024672408502697289428066415229097416510194522695846152078332464531112770421591953469538110500438201098111636720197142256594584713648687607850819102600857673164615415707237479731227124444231264308388771600985278325994262675393034781258204769821645926623719924278557176361068540027057186452484483763134752973438177367941506981636369180174041482915751681541639905834545174347733348790612074737266790454489275673914371140096295908137208769692072843235145425311187647325309527819977342015863173091277611598929238521438592954752294556383597678549134800973735670685792615748487809866077107639246549221379496626955822495262994434157350354912202672948246041891488469257518319073277433735414828653612127375969666403705225809212555163388061183902358089982510757944471814312114856034636964819441154065907790505686910035734784920494223965908622167921104149908481474721206928244843067896303939402289607927082427199211744109411703669840902360089462229514869474300706812233377572425175627824873216794723000790570265552865497173737415893085684094197165710796699987357744182645598035827096361928719528956716974969337276115785689165501295068228101720099956278107957083416679865502005079583500178071854535081815461361514048484715393336901300452469976905296226648840281376086255507073470932832690770148345192269247234482569745994354490158700769151267322164715724819541949425825045755914492276153413424756868931641277881616186102006682752311338716310949155815361501072504589426203199923325577658690582288946377165627446539457737656342676524524088983195765825014841727549999689058803400886549576379013703045358357913150516628336757771818386968892364570975278096275977819141079323467854855629092448705881847400278360419669119806267032911200121687619865338671972380285534832060692582766233597603395436102826078359825496210413837804285228235988030437769232430585833002127643278430330285891813002801362420257265199228773155515936849562950762710368817857570991632048809079420525166186367667484837826785800805255613039396172371882719528586134957665424954803407450200161940136053580050511633068534959596313370709510008287767981420700266727514507128377092874367311738960510793433259587662837821333351554276453923296104112685728900468364247221268804698976977781533584346473556698044859274213684526953980814513830105389425876337639247270460585697612173556765099434071570529003496329051249403076604331284985742323968610535516700088978231511134099949891539564687308509879339059416169340131355410023549249935328111635403420933667883160460010451995049797541684013135753298710913704567830112736066566766192923918277770050744483312657387759696700005233014605436670557175601237476973951578945199583069345342570766820230553053861413573202861700054057954057720832733238418045831707546531374251721079936314683573745566396865054024522437339219197678139211197368795857773360034642029810537446248209832334363526358691423798214634892027705236436384993638565305360621384104372849087285298203476042990070676333476781600754716760896138635607533679496648180647518427548114802235531989496610228187126252765519187850499028632598822162252138145756108652356264186823827331636024552449647036087163373177922834881811049386240020645647171134940587531955607360249545695637355701323102616447638763280143822446728479398081387121101080542487402997613532389782045263712689654193905744825430931556350337272549613224836912793158472937029468002381651763323542081663526242707333588637254793327193235114018539439367217914859247052981640685722559178940404704019077207700981117865675987820493147267266041956144828002080564335533240884364367592854903854834169085992794115415618017586732021547201630080541137982722186129959930549508567081101845855960834419391827953479865382986110795611763767977144587653412765027768597320675707531533588928234135192388420465042818971219982735903432267923053617158478694964289932035772208977602736583903919968787380452639342416793347800441142634490343500730296583579321711199132287568373160708616932792707396170017414898774596824937287969572250618742138882578036747361226600102463402218573270802421047415385079239473601860574053588300811025319461862444452118567008059176742854929297425958263622862954474542560195672743147206716714424997282442079247868111053348254263683418228913789580363415886377941934217189397653565325038479195549897484928766419486366524211434405658528357278051878754089241805913741618771515467540274698641523815076947412249952475595243786056545344663836761938013932149033720728200052476700332887112998046477172064035176941960002608294643861524358235944346259971626509395938443431559178595836212208020151130222210376357442915022057375788428128834950365183605589721345316784448841040083053547753735091116562868975761125036577604321791018722640549887325600093528860974936611332981712098471866899024085668306632683907574694704796315920133392393628955195467561821274829751775145090518883796951876672367300088689730279998799242636621621831564312376223633916222820030760878829089358719274525831001832708576218794570173874246081026218019210811720218544955867485025259900842442986877333348060050899460167640253883804795116652196178042691805707850666835593651804646819965016607878859115881595071905254954107254017703336493936473274551087806899159904992479844806073089302418657080279732935276383283686938714068308207086029889898625804007240846326638443706395049730743557611991960971684908013925112723481562974097648517338611876985755846535181795550968446211989178764812776936039876377434645708044904787634397301418684390664533290611319834928900216392364358815954967639965173856629934150004292759331416597310588458557254523028236728587095729626798704137199607991391512071124800338159789724225765400505057824461319829425088044579234374464879515118027166161708691557366040305295775434687709299391403011508887788952766005381933776385189492116142045969217324623431070848482970225473479330861760375060979060563858785382869326829012805061131126876141914435092098230561389508099729439330028147316772173851193422126562876960268439597274717989403587401369731079813760392589729642621473285889339099388624696097799414030358746871505416955606927614588616435882289790125613838603886207835812081786477779441207241847603771182642553500928272037589248906030553683227158583461757394770797259179841871451770997962034505031026274340981740311969941067314602835274936285777408953959615552074920408501437516852830664169786518969500118736793874541182059605444328069088274839505905889658157143728470830749219502016225494846696170783546752126058403527730994940732646163589147808275756553643105337824859065621363019227192950161395597608250814610992811315253897178324787032812122376667708094696155917695330696193394548129853073890246101930089750605950099769383766133263512655874595918918786807654390059366056720814029879796965672102027300402961674591814846985516150438087762211041458390708738220245844620967550802790586790411259338415821617358866156269972026545901084954013259610033566635468034625808378366172339443545522149195632727625966118135081278569284337403808372627272277186558988207797455063963109095429261767080873702921245760690023164858863948914878158721617480770806516272924415109511503393553377555747723070671358395171463327800757935924075963000872021351862669816613623734051672299781577022585125562074710197866413430318896766751196391385645916116064861681785798796028648041825036645074241328795643852019654128114863293082190031322735284376632332279256250038932133926708023404472155602316106561661374291926030549635835509043033401739144767866198374617359424249993209215956420093107822593298386719991383177628261160507851564087506807470356719408120970098513067175693136019444385036132218760607228703341340931156513357415536277193257493579171034272851834901114620581383297256514590948079199177406349751265776689284100260382032614352268949779197079626165181179501118526762084799684809174901300852360740803080726178617064096671156247515396195289621518531290659997202138466297917604903259635013059613382967485131272156367380084960546474415550547979532653157642946135650171667364153001825901814857805022866016127982290833571427845450559166422315267854028437990352335892078167085049018968558507933106663365158728696141029467372269838789576875576982393059629935634796998009017259509311800401261809608674979846785318538651493540531955636609475611198330181383040526320757511862952932164521531774986254060761280884212058780834744242502719327519242824990608688088259383956798530270360863679116730775665746481868122761670505856435366494936509892262456603359887195211976331336369131676493543586159760918256060581759671126870238330386273044770909769429966919820847771324647006974977847488731057155343244521555172769940343390224045782337293158296612538696772513520792434170050809086221551665775110102319145539947928155150835590825866818219453647998807057974248308492996146539947165072107232885029731324430883408294488319103818625632144011730877537341207663135020913134826056654113026409671628975329408814631407207154926619992888479931455403680774339117302221346317878291579748233630545382634760317758896056317118858136477963317365815369385712268609543378880086275439477421320669555585393454735990545153688047212536633014722999615027274300253617001791455044790362871097486913524533388458266388465184773021156430401232606523414574953943974129026701935772025651863981685946617476493416523758573357755067622445576404799116724436080992847534852102871538985798781149176814936637428796179852612078890756692304044432575278158897136870333394235849421257565418477105334958863077449778907750921718056088921906424853600382285707433376586535456087054941642414263177796035663250814803868553787202634891572045121771148960679913714246851413375561772076491560968913569517917834656195067438903979321530028646820196284100718176684815785008400361497473317642275468915399972727550316666622272890819841323007988073674697560454304670988033488810800803871183106869443346836084347716665815350710356298495378351413021513685145535083735226874393417105508932400311442365480131190752712190506592356001098378373017375785367649684196218911900052149156835209003024363871216612401150117984724394438868790271990464660791978163774522725922002823616920905680236552774422233801980210703727614059563233860235927495556443875209952280194350709889536523795004890845727168178690708608075587463501177846258954269626937399834521131781829750367589233230056494604565547545974314336033077157845483803293177504087093781130099152514289408949405017583454792789129260046548193340223621183827158875424016827058028408597528283877098878973009007688168238372473052460463634049103879029898224474789137667554572802438192082788515469412048188944900198460960368387434389001791342365328225312508331425778744992735967313219773158062335844528825937055812632603650936700932389961081564927946810344672252654144549365021895452932104609938940743168886956365702848806126585094378769759686008723374929741802063534797989448108251239427053702393806993926192861862272626181094162827618775604829310515955920423161294158234061116064834539450158624323809264863089950582091548961426844314239798216364016647478011905114403670287106205243927712301375737849311526177100637245575579095573238692900548764540209015724960066868573174761690033968056272790146803969481035990030201332464741230650113424747059477169068552195493855986810546705617420642794953703353459537761817663556542581406195480002684263452826017526338372187209191087373335156613347574343423295453340576519573719371875545383767637114560354597737853225699430854422195284156424859674307471154197486595567231235011278170097194616053997767323789069709165654302851036086246587547279217542004498187960255156687293636698257367590305567083790728542366737821791352727253302737006559224100001543600635752702112607431440086048301152144517246161171473610556081378774885187393884437748052660584206709936703374396767207189557998431585548812185175093576377881989084026000321853480032056569398875560159557726607155543730590185924493627632575927750192686072200083242447157425709156475110309306424748883428562500510052948809905544434012100216716527018838238349020960332433921324971529472498908341245496889262348619294261980744791999976705430417323459752308584999545788875603129997625617486854356732151548801099511902405180077793855046242210766858882809292649637749277394152844580471916211145743305049877115468482558474822519416041418859819727287872931242925641314706078169894822323290165147573183747442478177928645410815221110521902083493036725355155870726380923092376741206322914458094408231103053155059379074072106451219134131453516403148507537340392622920884085919857092600484564746043068503260423114441442446148313761523728837435410926981581520838502468115406893997932212198976841959192018592147501855944583719511494714389053831370493847183348502561775853404758031193933933161353339007560046530660218992707645746036871443226315223808144738712051290333899093728255240876508454847922726908184460215216339336798435236056215286414092989959261170762169444724234714473067079620730834698116242669943803728434282923869470207643481595207819603634457498171726117603942042246563447990533208173366074858504273360419811815023197417047567922029858222244275814269555729540626581188382227190441045977163606059586000298985994603361381538967312562284215262986870070522196273025309264018715375481721650066165673394270795481160433503135615230904199600419243041579520019391906109286781233758985345041033083916129363234930504565821874628237853150513300519960604035170196178055247414282953605467007498195189155770071941834848087931171754813029604980805344937969053689291951504880457629499373883723334496297657766844829717224486769798108767877476371178747618984140108171911909089840236401308972049857717582463227904719085140209267023279161961508719544848377382650314993727779756894528714120283934792796920783414530767290668122735343952059103386489223812124320280435713986444534967436238669380807202857348148555245799395217273996440489869942035297181106868016638362085124230722629126923075518780361376681656876425561981449743971379186755477129511840442224149678521599692548763415251121204841139842193468256091228492830951091011711051287963944223164496520678419698645541186797510520935607135893232481656480231771728428792217589858318851997878367729225015003454498654855535712174764731722415153624162296889665595355471598206477439304808775618779756499512069323109309079972252084608074808230643618285818297752867437232643971111377406129958871664858308865675776025656342372351740125736456809670214803257628499283492968789853231880087550706620759681436112100445716425327417161909010289991546996598360213857065558680559956769366644097841282902395765317179730531563099287745769949867398717579584367774190570250722681023369034862151903442506003325228305775720800072195095015778155828078705025308753618753157523064892761622918826653157745894041614707558732067643846609410133266335174639778209487262226260677625637781808354150535600829679974121885167801149531377039066050629030280855354302471698193467070569499066828725733928321855816024120036956848924945867377402834413712167812837943626225389567307577605938963854757325615965170197889101515633183750889460858051662386038181947501872685104901680175606753964584704312537424704547877292535875061226237847874913331583966451941944127778070161203334662246286111890222941056245589901946169423033528250210668292635466545087717585179965946834439146046834999287171695474434125753241589289797979533314554419738778081852334299503920552657846250267965873590595585062457091172790074144359456335473418354567788057905343217387757707999155235954378514091148910272066581713920233498503930053626699124330558190635443479338524944782131366443358776974391575058058823239618181808193445939025994820835696050971036620013628723316560891203623576623764685404957282367966802532491555078364815918189051683045149142643970688038340389012371798460928709410959332415540424052994912593764434732898715166024225352989162681241727705434370019287169541603611746360215403694189712431316821917033294544077308900027438515174951136112102645272223076194164924339485034605562651599577907584776185314303562213872694827831595130719731097848465299734797631644567519274760457183538533997438974194280875335360276565486477695972369294043178503797387880132215404892784341119040908756314119136637770557931757907939289497088345857977106244265896571219845692764878712307853486972148015936716552845280322992058767707246253139476418149445239659254540396181490029862437618183512599675876175437609073004161951177149011676475758677186037277871914696844964936644545081410976617928568716241022153657457784547904562159463588584617072203135660996365620151854463107718305630143118808475014413951824986874983026997156147741941906512228642233602152726405584463142287600602836708282367741985788891315895024866538223633164210612698211428725808820201577288531464074018657949831275175010924827782084412000087397098247730750700299744508564008934119729769702889449296252757628213632544181885944402300210531213819861788700911640775106693378743298344307485936572617319500170558148023584291351944190127813908132941803790362898316537279061267654593836747343806202968228235343462576168405577973068043748337097592391841896417349147184216075516249226967616103378704664471299286369786820236014964496432008205521640654750640416048292373637861391537692926021546510089639051961767858771544993897330889879390850774586254812013791490434328871008470415584805016256946586458366177547061970683697365318216435630146329086606077310108406987490906391636781501334962540549347368860426304031654003089908527177978717303358362776512425732766043255700124533993809338919052655613211816540213626501894086088224406551629170534243824377120672166755657448973462556614594278713689123542405606692229420441654191877104001055382668216389595192531386686724507505222878788586363212076273043969566097595320814983145747074948871958197514845852518825353832455544531977060045426602921078686552755628999151420487780905805993060211129424619183983059687091287102845236508074943371143797923235846201657002020376325467353741393657418424104453623392687960953686159773921923504455350738494045536417251610879723004354905318080690928481804171545407002869601091367676469972624504279742583241748733342781545065938767543110789487574818834478963457127150399555203244861008955001920823036754333512621138568961284046725880966683157414334954805948303221863708723979234248545278978919619726780391654724249544965810358853468669535902952379279599821361212210539757097658972646953807704389528268622630005402873867598362882085760856516269228743037351937048261543692000871243604345993899561965383707992848507775807727217938877650008837214484240576689329889041985064290884259932631211741050343918643695597243673214979360956835243576281263831562250217882544519217649146637325393482060276934634360843655091815730512229965334100966146219614083833621937736501410592708655930148564535057949212924106525588613893361355463225300317415083523975743808822444652668948968085844802020911984988819381828888639479292369191924675112586971748198713237029632146094901244945056891055134611636336805521974296565696167948054602791276798596392476005934175211932135752262184777734734959684443222092783493900683212889158659413725299181195807019529352547207685129321092252708281320838162307439675784816292804663270977429411703108134443647603214128944339717536685472100058418966394404171446531111521392182315502667775404337729631436730786355806014272775368938408082573732750429958118497451716911720721009680638936503976804563660072934179269876388576694109399648649210485943147178487659511553382107474987914267124608294750620248048409766896184567081485897220053730172040837852524283956886351684455130075074667958841283560804070507475556865785237056712316800690620790042152145192699529642100629430503052428560658807851666531623146795115419853384393863176246926400851184699863083227306352644700215148690075208400346471560871288456011771697020849713059103991537053729048321921248900981584459752401013830904447671947148614293831951338555998492274975126604594186697979443051804949999096871981708738350554821027014324474974262921895298543060090373400794449811875383161098291298126747035451525110184410875764000531482960999287547435843071956691381106128012785300282057759476227189815166431042100725600641551535803748450631428445106744215853373888631969800024296093605930723382837391533882138482520479930948874273056288338857616869418607845319808243950251483337480879258208296831810356164819180845631796334216767936983203632024356822852196623406295276851980189280128090775084081634718758726139535854717855704065300570669595705915653342365308962755061819029403723849608126648427005044272222937499695930139066822626674991852800436444148164356416879922862695077810803649241557007925042455653855417820405657308715400668163937703566389504103808464255096173628037260958038632276718965832457326669291725724872341204795082127499754806826103861248907395368787849281695074673950234349734565012632963855842357628356550858863704664509834075333470937094720726274224265987137598012002636773987475231481300779073947428393984949467375989732923827974145750418762656797529790817038602174079930867861355695321546198969398826776176631720593638713616141876897809851330605745656650737742588028360819624603676950140203265220346021551690338979630215805527029373730958910487504965628892342991979654973995147648246367524065070890808049944286290097675442099270664698086211114838631404995463781838031796418269774563876663637429436146662779993718348414403950110344564178714392969554623101641311113287051269352701872638751620648420913079200088384482414811846057582263226765842670664790632087956210316667086587169378130639107874567820199159415619471213186676606255973923007170607238541452793358820783453688815557515790359135174833060152416314366311638565899758988723190542558542407123303075347091763377521693297231827973905120189605449520827123128470184546285311375910322964590924513689240871960064482665796746819938304336105587654574711885187649581843995860984555094772850261744517855355034613491072755678484136292193207643743633264932444786268284665759970851077941491119709910171396653706058686326422347673553926075673440421663999582556759294713190600847906518093968318658071882911202341631632564220332452684435291113577198764426462413842097902936269765939275912966047946838334646243889368551841708010346640228910899527401779707610437904093322780133232508574591126569407283868433937604855327582647685508590400162423038881666549527418066156250149008213276521432856991865101854358343536515729089973862371182073900382927314125041860976009125209828178210835778792045788422456396657181963124759390171519176598243231451033022141631688479520298895510149672598075036301599045098605378107989212776007495958370257587092124760831819363117388542928108561827050272918282165857085478132697027274825520312693912866825993733545179135533820365198462855020771220718562763031567514605065757471714864822555358872004998613209575760291032478399621404639188216704312510661574883356212477637812268865251652603002504206172623283082807902001637693422806030483613706308261373865415721322029962742939282406829088369423865403110324312304263209808539519172182814117703213865271077393381071890700946463564884352336224548320347829164593297216080907253686089539254435291574769144503645120230124713495152413143548872573709422334493994850530594981275259108229854317829173036602693519648684994238545462064335168442212369738931318031018723362951471185687180593022533753172329857830850222586567430673033436166958798730246516123845586905406085356278718533609804566598308449813369819118838821377885076186874866692634225708446251913884112094373513750637225492000669318472646078499323559565962075106196560718797129519069647488340296865824674862658958599382788844123544373451065012211770074522571008126078514021733927991821835734515277956625374077270082472004619026376342962237680027333428639675413031168150775991238830606744346062215819442095272382064670226848092378610198290555544538383048472479574415423754520192874808205598170490098115018532398246883736944323945287731499239416683208304762404507482299510650639489312825638519179563630781653218711957651138033733886406747671073755237860578565379940551960380734821714665416320072818353783169217120396455410332920390774799839894089992642114353868267931378326604897588744939492500185771972548701564739178767529530171866846162090590054786600473061140813907900335523230792141036345334762605153115837043744340435761961572873532140827455452225462255581586688039290863794771439504329010476702198877504227679616650409594589561420712823169656464364039642977625828559711637557942232602434061737588313689376158354160978144827902247049999956367426562597325740274975891586451819861370740578762703760648895123805548137498252273268178033577684802084346886746471521238693006125528835766099788904751758138829111020566224189311670312114586409523290504598954476128235015992471118413179716558559779373530377650271979660607818266370595966075206396089200412733659321287612246528612455557373625342368526516673419177098642856189660626552059598469395518428487998563927618182040408571882840410524488052899049767739174555643510618216984458012151489657301897650256748868407088002355727026964454298558039111868948668903736853595936460524627524432942708948407905763242423010898129818180088102214552697149178000543726267545074942952563633743879321513839176064060558657310694987295064736732978407728829603838969145179704828293287398707106946017412930091529005309755561905671804956823777735365523835099741455210133829757528232924429040159995536781918080946083436602550187098181344897372788400180591918953858495222107164910009666048369216939153828717619826177616032447407266177163783554506828632630956337285933075223846743079526674134665062106546686120950031633983597802528826425254463780801003883428531033618212991992320425225224146581317800251871275234956834902500729933128423693203690465413438015789195563359655767640779359064665102730758828785774846308297507919848641076928141613386095821268925844285181378196292219408094838803718440825670922422349137462904672619068027009850266008678774226731635523746353294106601019323198789262092661063439913525637689378959410369800651221579486923552062516524074202287417512902158704939889181032648397970737500824278336521494707690167816863505800064959744285592843408363338692058626442681433974479027973874126361560490581146414047210156493291504173497231034774601148112109273049964510696213012900923342213613909925856744928761828511303988435443199400779857703792634337641196057420096441700030222405984897854623760137047185043978014324534077754100443025983741305366474672193579329606897379301775830024249892732758323391443942570935592875000534762633127469545748551571472068228089072588504214724300608726887216344771815886435026656272772387104940371696436631683764518844523371574875847934695832681714223981684298543871018376262928848113669452556581205004568119975721330241856172496787608119729038181312581902116524488685212242885575787931689436631092582702005086980976556473776320647357218414282362046842206103383869430522995486634578219663776823242616026860994773536508365236521576489925546919285783353948522531686718701100983503161750601707195011778511918016371527052271129206162695632948812404894637289679540006480793166494149876761785506950435978909772051890914837547801231483092822000916064405682981304087330186685709809030603854100080143036725806222502308754487168102599356936313547571805840794120772139369456479125732495390435643300627020761961897476391784436560377141372110300226419771533936693058426348841519246923269959053412925809400695610801712997484624552164250896991081282287311938022754688094118086498267717148729262528429766347367567902505552330418336712639860640010552549466143786320310522859808341942713682527305498721079806616605759654263789565556107302904425301146091092834911463978180100808132264087172712358084234904046306162060848204033934602573541921623840275071722369537080876037907603101037682287400523404419545418477267423808858702534519692509731533688392497064070668395183672940980063580584318581542045662985185956495691401938528670271732883895411736864976368972580344373660622509751442346372686576849274257845200571216858155075994654338734714669310478685884857217464180024012613841152191623957340560575396691680426912739016734411980438070629905698682289720025901460701183128467491838162167545822648878282056056427603305615418478873740457895238754511286870611846751128710524537209844511968325111973372244436013667907777957868739078095760344507071295496423568456549530011234924842108203292292341065247867433135483192736147562180732196392990487058680306293525198351892203969042890125815086052081820622983166481019222930965062229849364978613223294619651885536169314458368431808357263223563472488768481951562483342517111755338570518375585217436502548904258523578097855840539503338007833807431190210118499020928360765425265178550324961804548379424968768052434063740012347121615103894189704382840804249608315823481561860250093163260811457801987650961190952761688336498214382683911874733243957821685676554805373619619814396948411083343902797463686416685974979111510219717886789271121334865722338265599138580435355350492487391438712440116786163817201943970113063841564579259532225013539747494088701037154187795039445721316904001444385858978594844287939786141450821449744105613780830823319841999037412680135376473825063915412564561358453133910725564884573711254764429541699574014671500677988383562642600345937278819851405598585710075801200164476215885823157304634909123780686546254057796162224374154900956266504292374503486295176932181655956228458329525886683315169378261755507377649206136848770304480111942785559033432392130930211107169186067936096507798223262253694869722283196348352834309192763728861558278377077050478623688815081205760532250513817201076269475224981823052162618575526344692530082978145720741950088687798447699986742529474244008594086696625176840467148846550217481517026015667871103256321148851869958666280745460441406910751778156690781030232258431588613612245574978631137182085277705060591279486910319168952470666441319512859423894671794903127927925171597771144639234415292876739903974051503001365390949347206988058646333081965599168474364440037464856954352702105663140130572570998810145212309870449041163749506648389582406630163365447593694270248708731766011745023257769239992843150986968148636580912025839398737685558065549453503784003237508968469503814845886291812198000631441797286818763518572175668589010428769660630640606441104766634648151420003882031642290870410625092030963773579128069810383304551909172632296628004574835283658914114130279811371312921250519009279444689819337212345147867609045521181487541370458374577134421520438728262164613691098357915765524161925407107297117562915975257115046045369077405217454303911548902142732619354827926199015325964721812841288286769000189292519785806083690163200740513555639500074914275195407736914706402100651841309984600647524958427090674838936999958807667803298646603953266171938330617209666972277036448728771715982913268724117423730324465612413684525969624169043103620074126516539497155900991482552287028228417707693123568176781156131411097516665629493488757414094510955989066203289788404341002397888244967582717363683511077335448263094462642484068287442787758562818360752920983191821735861546054209278622208246561581070314319917965756484706778968154883456059436071069916112356377817051880584470179074644097249777102262433617497491186446389797883760134630769832801895047619402525641806027865217365875481952520509972499313660549861983078178543016424201986232976279960331105731936378650629346014735534334388188453634318217803970452812556255807691507015843429084087130676224455764012010609001293272064559816267417086303653850257658841089522337302270782531684757714327821528517690861603194227826817758998912238020268841803273839072908435696984315352016897402075968289773355544586912936776678776393347371680817516395759811530859702770396650431220378160309585561928223182743936335369729952991226543254758636969052768439872605540547798565554945839457397970937809227132695517263651604063080338276124645649601221911358028766517227207002661384734390023601242694691219627037556723814751161275948980608156814852063372469118661906268135411689588694037264118651692863652478828017956819617905911217773002603846297110071457436866689980389352856655862074631608804572944523359614107727012968689437194350183352854710657599396401494742938124922490412713316504404719118372194934302886761010933020525730207740885262202024447393220392705975700713358866691521649898199666877343805554007338977214732857221976937757904894463991019090804603716950771929583031108852406436347246960314544118563436545753637079886568846832980880004977762176853431978508225726118068947976384306732728416523097843761511560196748481693865640689409671888126225292317026692170381573755509452960636701817404036587061124283224247815599409314506181917037520192689363320236116530332519064908786385588634276865851636326425454079921545795794639561189411683015809508768731919400925865227298556789262760684554941648400855709746203787882894313699448467582325691060106343897404726618177562920933885208647452083810510892664828056066797824129989172043147789435829266719202874577373742099904870382099450996440356551447817163320163410394376567352396763878338504448450927207566084758720855977054117520267182513132709147977862426451966675339263725182589572920052328646932762355858959836550328872469678825443994153095390066725270311143501109848869721121376166839521978607922318897165244400788198981989938285866564237986611963140457093266218718512879899899089952224807548942789782810810665528403405183811163087032146268513931987862898058336565052271224286810254440325830477098755448708210187857066662262213882289856897622110369705268757050888911605480707865354936930087674138750441888705520786197544094860152211262945806625340216357897388790505953144972844936756244812123805993286880059471195522528322262504594936307522811844321757587769930089917226750318947634979062725635720920231966524491337556466791878166040318563144005216373112152768376424309930335181283141012822487452254801155456201549738146621404611383756663823055571072814449888768498220081035584662842399872945838279698194010070618948235874299648722554410310484302593773132667899921225893263152864993273440572721221863506680245190753990115616360299861696201057285309201809023466373720714099114221881432835240762671145851793610496730207426592347058695978955677775547861451469502780663305503568626478145453014379503830676994097503038106112276593054011888603732306629995653281011603540121136121077565598948346658801772279752555730747875899730820408871452110008309166736984463060870962380326378825961967139314862547732112331127253285780509103505135323747924047098918594062739921842912900570671516127510183818361775761575389083983529380040071014599513458078782417356699920705988883857310503624529801377179783196546153003341667836194799922789918978419526768969619902597267164354631949744290601254421184525985278522901712548489544752912448943332203789657269113486839023182682794363649810730465933202611568607369818916357478796057332374345555600577732708248540994176754983476140900916179157834951400157899107295674832432729494538773822043964683970044375403064450971965135616294094709546140059398908693252374419350475711641236959737201697418825191777612356574504832336841553190865910792376741447026087307422644711934804371936996784726050032035030572257651700961821160984417346344886624920029216689613342662718519939675719896356108233271757384553147722681905740536739681027091912847340622015100097569779950152928722755371446487993807490815167225295221346324675577612173993843050312344179922340280481607750591475408878454836315846573715305249033954323473099634844027827223755500543072263937568129666014560832077184757822776942308887530148182564224171842640119784929024681699940802146051043106078224955596461788927148880795982703498644089788138880988333837867192299255384742312591478042316951890099485746548611146107115042046160673645263499076588025160064007918023430225879644315104476457147011870632291216725030214010244412604479741834688596044771410530235919088371546810083215506455743162654804718586232241998329276345545283981502635182958798084178092357808554312402665411007462870514485110946411662681395877569895705884842143142828161963216726400333985244626948639975142414809224300208451773617582837345706232673513351310719200007106562017974740666923983543162435362223993518927929919948811117075497885644376848170427379466577753080403274371640162424267470604805605074626486790381257521483281723686097966432906813982933767579204576752801154942261266729273979346785273490296929677090032281064961450743830723787492216409941134700395105911423995101808019995983602805207475307645802360201086887005004094162078101198932976617824332321329647977035317948754134726721759655989871979677772990455534201815576177621016301439631365897117609330152675847992708065579157092716260443534717222253121468612711491932502340739468010011322009042393008336748277864745658909284625451289735281513426279576934440024021730433971807000041318157136523209490353448403557379038174798197521818039180909035781002370462650776913832542455242845424537925249047739946004318467229811753675736201947064299436316991852503045126630061508853006167857276412432388450741750003128444051944579704166493501957803509793715079478783213285757998648381422774242553692067149788564790202003513764707660294071590093521136243657462432184663282173740423699368439071385662751108731218282530611909551034035783708950840399420258597389437105509751875428800592404331374615548822581026656470155480289607240834414792548910167547178713788857969235994111589796154358551236455713113776126171532661107771512314913454166500472315326505131939597431683462190299197801513044572710622446093995841028127280349626440770851207130073966382892169786737340195293139897220569182010321992409940878023465668046458567529287183953565772654900761672843592915765880584736060047549564755356211537466851278132437964502956330721810281733515580998341354616342576026034950172611946917306361747660848111967380886441400852795268598252219048165652414416144673280715674496088383602704448787228469266566338208646995838295718781587320808055523679711757681316330287327005296019685233708648084357437017688157857969697483442193261034874348508811369029327895964750173401125541343172936527543776759773883145576978858310401997006279786208525902293800121152931967826092926660745657876767204996528620197254319000864977515717334151022239217238477701439798098553970658284840765895348708193832342273194873816786177010348008646215709029462019063405570547616445132341475324246606298854262896120496942296606985720923329889567754466718708911517717956850309463963228576166646061347209023490835760189522452423135480868808519478151702626010997399524054782450597879622515978618383131519945828883805186764009799644878077970504286440827671800582681716662347120267961173340403554584456583470360906577734930861447911329454126409085769319623819033380616601495305375679757557142652861126029046937346454848501284922361116716273412024050896004760634447761005246167464081115039473225644097316979724581105790489170483647625085883142181275976545391942766473709635163021204664408266982120214980492046526994771151054765507546425018108492885860782009475342963424922716283023083313774540962541095690369690114586445010924153291734306412633756763105771117002916556203635501909069448239935523676447133400094720115569827988543598732425841540893748814083603414553193839093601560547571065349477851752579589971682022890540006333059647545028383004029323023906590646699686084655240645651511107006783072351649704514027930227636113128449385599337155342027241455621160218182051483916616067930265789493096362942305583334460157779413026847170944509732300787664463171793236067935795980637118059201492487451917311174211804453907734019851891240140130037787135084507943041622287226431496508751746440612319884072092274090150736111815405991695154261743947678735052560371073563057762649784999344722877405984740332475024570400681545203846458973520300436999632501202300446009816509398667063784542030355787879152848640553703534404160471906472180514158989997791388060680469864981243335926259409013276297617761061036412465832454304315281510546960720372863312588123391547477808967004099407961371037502923963183533668205900700481735846741679686004003603267082661006178727759060133348569507379489494301302267865984284096986104194412094778363734533206696132503346765921998365140352422903248573864441556264313263103683785010285617613132481691624533741889599174087571259027241676891621535476338979242886833116014867334555445147542050710459916645570723715845748279155148713808615003004221259542654084415619727511125902443929340060821344556746256335721123084729922825497636369289184887967151201209766495734552141523403875004195342141316125633004443482996241862591472375133763292977548211612751098237055036148099444609597920909996560345128773987732047100848045392809520124689592950605436595597532303030293973769172185912619344711453063068149555807407998322101998426059989934957476664470621689248638929964351598261718091950515496338286977791430944585699208130087083010557321134452868878729333567458090415180987777587216326150624256432762791821363898800309315847457510167078828208611963021413396063029677804884289757140609070633109659875981992759015759267686088135127953550927571340893954794171186956032004543577797576526833606637010993521531915718561808289386232095021767866529223368986972365372339875227489786063301995879268894079036693364516586845099989542715459184527016462996271938577581857085807064761886777711417090629880963215258584349396309900321626142064897148748678261788364991006408052566965780616745437298143453258250609198382138483849406204823382952095090550929560083626715664283546921851743799957323342476600364261770643215663353780216721624294170735651848412533927818370498292849838216464363457619010424929579128562126080495372370466195672991450694866854774608501659271400243775850096129195580685929031955688439814772998580316025083503057862872107460549223195596350188339883746450804197293414439986034564900496034064526377501211777023966060396419484615178939288631685260516440289826696711381917894102579143447665033119663483695131654720807474618169778699536126494081785305630515401880141865200065040949888400956175367188422402005121781158615109536222227631568186744360369755486436857217115373918390835793223593913324459079683303148174141191207588126085888168987176209449437725753620101674815514664196733621385367673352289915142368148744157975540042379311058789745529473212801375917640082195726732856735394598877968206703051128774269765972094925294138894943565061746754262735647340458513259496255990955242243885644649770820371448940605981314872494876878730692407763684776078190648333516418624269647525025967081567536612748355154773559784300207863204437408236739468555839777733572974468042468406327721888473741286404812366125687073552790161792099068488637394576704975291574588399707016084298807735110077951816267630422324730624954969133942765967965007741217575844951044527488491090285450999821208077869867571620177155112303298371700713222530783523091286147311838065277258057513420602701009096117783072009919745339873321723051662883929200036534068008212635185948721513671355932905949757252727324779389618571851103301439251799297511404081521249006493688219190272713462389823125749324545813717485446822129269057822252149389962939964657489189529474581849347742393660066519748085097019094646881206639858045915042396069532685263932272271102487740773202595266754138678301771379841942478646921203811759363597956938318794806192367360327425617989889799240474367224928154687688522783349665535390729654715948831812097578297191053297763452558372449819438892483938223588189677482965164264273938521834790152485463622548299196756577999384516176460615497508650391959522648703363991048061959031711705761981140066981206169905492883028922540127655001370200330305330458158890940362467456888696521915084121844876185326719711912945511288910040555060642782735883140530642088824308177615431993572186983494018629000555610653047450996009279943984216176622347700014967981719362247602485367420812617947956357763562428724968397493079973894082937259893250589829286683503264377813882852514544286095008778952671398331155203630504522160682889616944246286206477547608280358626213273730246973828028078010887146779506407355096159916777937831561568721564946019374729396541646909023243058006944842737470122567082161113968159468966784024123523484355944745120079482046760774715822415620724786580538867813414116201925179842888779880657734269967034402602996051101315860887430035649179280090950577267954988767863031030279064157454061028678551057447991126716784863375249116827271022301876018322248907803537801171836968469995123099090344289883653787201122190465124384666162894411690402179608232833927962259927772246969406540842073909361378811328439217311589521031014237592854609874383077897901649928383376111509437597682372859821855283486423930256686636894835284103531556207503432097203668380012121277642722663262859886760864836066056928490132520394291541128057332569602193373955605647304544838724637969715411601352211008104667045456939547849046545013985048069571564431279845935036154683527967506082915640153913582301245961776814456155909932287479580007071251050594716459922348333428101066157557740374271833907008948478252868540878402587433097158369114208531856707274512103830807323505155478086109347419622444570834688972287125566983005379506392821495134182073523154308416461729426879822623845801939493625918281442314102743713911402126329181712500750595843474920229553549187998184014026129308689047873517627489782034875566245031125986534149915868794827659744010108577985543708188911527314789494605858064542369978319653045463234533988848660692161397741920392426613479098261236517239047021878255391619220509826791540443865525389879493464268925021785197758622753968316543031105282330165844182966634326558209377664730668891868949603693654662676418237479170732201191752118953807642460621486214168968860402520674869800644890756447945800418549030877230066439694817712730655742278582980847090622023815099582916073101447792797613162676976107016181328265023719040379437915635221499753721597291797007406782436611958922783837527184094599368859181212060466929074112549940150559294938144708150193657504458807308073311517986611491491332566708483255250865264184658162838603414400776497413815741487395754496073959019938645730717130258319254382729900331382595383902246626502112625530690994600159391985668566565318522455426138936120959597524672382691263306866753979147804287284023407267579156370448457484488301130334596991827124245938184924506177824609714420962815342990987970392723063643610485919214558804742952358202885350635171452603111303659403433582150581687445395374345578375412263023009728668947694189792387680458722652564009070889279162122604376259181029821824414551602063264690264181876952464449742367646413061938511660216677980362645845615709237257572203864849199657261622003280485906853556505730764350030696733447913922069832760254247946067148963556204951032565725818498405609618694795141984462427108493021408284763966193517798856374561684047989489199898643043678547061887134801640789705337039685634333071177598209907554420372063410609011736051500530928432526464219710561892668641970151727368100816102104553690678374462805392313664827059328386979491121537799245517303500127744443080928145371840731534446896254357218446930559584618659970693883032945695054844648243967880412625385565830106816477669805152837725548578545332206620406227962647814035019765418535995201885933620682761633589417059673987982184809048730915387562486176748256547333403736920645017873698187601477414189784477658529014088661484223206424653548412550330427564666785737718964953998498383232655943698834715719192712897656956868954323913785569951713518807409713642424714667591313610595589437289936271829048822164419884917217218493409633620287027328103690394281698839212013333592094961195278034292311688595834444846456969283358676538493912976258616453233054227491813052433698355249404134221208785776319267769877721069752721072589588364549160633155097703382831126259432139934555311079161422654648399531899074685475363852824781977148604373667337174259143332046941498605331582142106949330496417411528629006735034881474776757066220306709271103441700366785167669730140465096229628026705813424792080652928762347853566995279685301218017643160598742079934891484476456726097769584795590959087543134151727950777414200060522044372879979962143007419190705179963312390946489156676950308521285661533154358163068853521269279944233485718017758121959604358222636550833224260933610862649473966251143481714894802969921707562776049697258995732033294946215448114982189003557349251184311192772163567306845225756600538132052886611480622743861056236634703407982804717407699752787136738318327757305193064421079625547575772770741443374526540997977454391711672223086655712240358107286803813203811360632761969843304808393123947136794420986238773964575309209165609580533320043637410130314105650538467419723223083945302364868686668186812868880439184764560367853319082423612043986919781196211359147698984884480167559019757598899342893575067807005769366393263088212011901066227259822291179792298025555204068107409080017609716004137007281034007743557596958855703292021704565468408276582354168901625419763997482446818213111106767735559811228164053498248712224647188662874890872273100352698935746564672871591247854863463922310226017046839087733212449299831251028465449150719058444953445463082687328934442381589678224734969920772390291574638684334957352726667803174964386390065260845291759018790969932574205553292404074938028421510816382642455499694898452387368617473138702598286968019608993384265862707862529365511825369752937931993793462911459769753541280336256469053422344138446499921976260598100190376796714608835227597228691831465608249941631058302945524020848259799189214818450144897194141905221832933404649656980285840804864513715973539601109710185067155602820489063749108922940065458257117015542121690279872475782543762172596502399522919225345871761894912528255662645523869439731585104711774432241522726563096797842202858791202076316771565505213334842987640132951758448549154635656814758034496479021831658814950932730667313473021593749966755016623825617128975576100007845306259867535640733133344462838045570954862628730994359143714387715363551584877968156389486193423353316737401407871616367988302816285488544376724940519998590886150922021684553097828536917079445247757634203756335290162205041920627032508751935383438878293120265517115515056805468568051152406599425623060954301905081365207257547651930950532946352329331008640150913946670410578323535904062491689278476638614960276821594271540958894224464251832322533637922481404895416841570294792822072364372677626626029828778464692736723455364602918551118000501421449056787504778610744686672937157941436972707523315356267927860716911811676641458135199866220053969660555211423281754858670752489612779326277456037241651691313020596241613028332269596469745653355160859548677383386965131288546313896942879559287153847656938304933635565902676068668081599045652930523184025590227049494752783675593393282317417848736384757284648634313308528724362180823270859451628728473807338508506598000965201873372349868728492355756519330085327416059257657566205989587507089836135372104260856352088661532255467734038278773880709459552295011245095376048566924037082254614671003641800145565962858720841041735527383791629401658265590449297122185638953881629589202790009200998919126466641028499503197197092736232777785347198763418715305653913413888818738514802686963119555705950543536498709393843527880490090663954107427763622401864822268256204763963306771391475296085975459614922977995288794300261222996074661448929985917127273707132982773654856035446718639563191803964877493005121218266420295900405369664688759013271272784970147959577942105787332704240162588324985179245139784238741860539403157044248216591003731414716686201251887464060640135275710233938137092156794552785114804575432504479746709933449282731442619613091521265505506393159974245921525902690305462078907602159043957308548790158741541745010620202477010295911650391108477997563552167176266703920443371389497307543115440950540816667553225824636090077507456174301385570412393244027328316990731557514034105476562466986151987153690814775990364132146856328115559044198326706788301963261652504953785662494970970888604941724150057656431527816165624753786514711508601139270159279983918464102845781237492889203593233715793175606628687559753007230584041310350839494856624027036439736915341969954513799202855714924741179400677208136504874482576657528549346072142362873838138387928378308906972015330260988416916796904210398456790053362732059095529475115747973447621483378362315267114811412544954894643688186180196249168946803380781370503509925084307704279656546749514911628306038015012876658512844152013499482809125699488277699313781153907251314811911486589882172650620824881234900750973388830456073173828733529221025016329685199829639381959322726854731548438110847959893359370182966519070373930420137243988224262066267718710170316874655633828380046527852556455436462963151825024488133281366581828984012520856555567467177697243356384088998066991022670190075871857692519067994070901436069423288812845561747872699338159802168835127289397852231185061041839198906472944551573058645782243655768961249119143450925156564589701585403241223014514448044584225786475563420591705385955194677171564968290906412649888085778482214647839873502065923911997672286928732073479186344883137571387838986628529217637304498672626236588413857756621078776230747782874785592412189181050675617395660583112903881906095379148440662045031249212142967319667204375241802127436960167596925896792477987835668599390450130254252920407271133111493784775744862280741497996208559022932925124057903142858416077471672990548798795720336558857190136725583550149058356190778473625493510015433628699637196095042594636766559402548351328827322880809606448575124292330091997270736668809139559262035916087377194242710908357568789139006689938551945585467263642025825593325718912262557964850922876905994980146880324658354503167025862436065377344567163912099590095050939588831874089803037453699442233960027715647487073184207692281701676937558404363254542071420831276900789106081728858675127524120824839299389735264191189746384459194550246519131026097456944773177409238298483947716175785782295289041499902428414614039655270970437824779530520979735959465406045058054749227617602066009056501997971659440286025812990448637280856039980425452625545768574215228746113821894707128565047568729669104440529687867313396773079216930360551900416570547243154027746064706609996729735292106174509191866144973791442258613208430898375307203101456931969476731973686458182016895017480370933202144130412812863436282096923114013112801038177718865512133711630220359030900487884183342702677526088758146114995817304462673028565709517016692668068955843687909310011847118191718577297828251459247383724280094750810692847305834700631505473712066806545432805611317653514288688446954214034559793055243047493215397971418940096287798591695731533188259820735487362425621354135979234806361237221410434334418649344132283894958618286079501238743011316344610508489090784211112984637987077458691002399349747429187216250687325282884329629862700742770763044050896931721146626831664684167578199184083781350685778934871345465994954174292125011582869062509323189084524338566632245966218474966577861774274290084684493039632179609748411968596988913173552539137366485798661180559511767037914622923902575478291979852691270909545843969707944858101851552619067303238634498622074961913958763224442647992714987674243071886787379300236717590569280228810551656020151108875135757187545650638958084886433532773832493369043078441082631608501280200937238942727982969462904619890931000862565914788742059678184001584638690048745051044061067353292642453135184975741740546773430718723440280892269703432085735912911656738207015929878583615925973599645796365187632525836003907536761979639838055636734740725990171894843454288035737545111920491518469509921598143336304118909030979775759374250783561947210919401342661183468239033466111356723765237173852033091034502717874173493565949076951865029706272971311023895468558440173281888049673788826644927407607920607542882348907959591434644402425572709311918240174854816558880202568594384575949895476322964040608675751238670834150922912138659591979752436918560798441714349551399481892728930824839667889868316082092548073205356546893960227719037317989141776368745187578240050373112466184486910317398105807879612912763910549358734307836637312499043516473811599470538423757680559331030882848399079771815866486980022299496066636969260706588196285043975343011346963864230497824618233122761344454877341198397199758090579092915586284755734597386093526489238611995156748380849627478867939203687618223465752581013365175157270559334741757882770676644130814107557627731360551941961734781097692533611845395040142645868390287016062944298029802418011654391973028693684618677324576529851033136465223019770134324866444574430154574625103216933634774291205767473971860205078973100884320734730163393667143022316991106383601869631871171291196531488971500025438815891813411700139317306237481042244670685760192886727204407477412056297575189329524823037367129700038897529870730749087603957063206813300734157694159234847086539399850379154535795399378299109259054632846560508218525227482048284531417832599671831245288488417413910044335523061340698064978213621180399463950039981443481122707020978137774638055926108847872931740833563047022402510867212540458782866035067379103448079189588520796264913061567447071127867655438043769757586030767814735330193687638435780623563800069925134158105242831591912986517758166858390192613732663602427233461609440352244752767365384445281386167898583077038372502251448016678516636053327739040538418788833280778539954653914852985992683285705864714843215304658675459118705626120846797173404065799594315108434722840578501296607519253417737674164860959715025120707133202333230905942608349676295155451277545955615661553807086671079707197233326196634999080195597721743648996645692051695470437713406085172247502594949745547821396310966326265902037901791161148333219068404677305100021071965087974264485535435646999361686895440583950636350229410116655406072421470750599031169634813016336301343076735983520526524556329554327523264824204992475847747034455932712347124130984591979267491167987773205593825126534837338845854218923904863127293238096151306005904782014042051971896023516546537880052902827677024286818172457627015775151590312578594544372846136904000551167995822602307609388247072396814452456621469349544274791214844716542013577989428112624965816656560986294992967782988723403116338134708668258577112535363711499222347418218516150260093708492777600130891863590139759783249471362886682386985174510648176974570242733577458777144085745350585492401819709223025613967856769154979652204248342936340551367232448443269680718481109766484073618986608390399863517452821712873127157185680112950079541772308607665202818817269270830379450630079485737603856991385986999099575521442608254724250266398071495615128172173794867891045637749122579719273667807991717766842159522809898781644200316893743853637587827154496681672079030550726683567311901896680390365788893921367588773914850769526088338318758327071181044577890258139147097241889010151573668095782568564787151615964034352372155107109832742388133813273938802360735185712024116673993844965680726188145637955344794977822166096767873213189403466657319880103836509675074693122090782566013796484348896649727326775642614054947672087500878829240599335930249971312679606646999152610115409863944196544073314930022665190570111288898600981282489403679917922219936792430952574480109089526346727422740684224261785563524962882834985631254762347368281468872607369381531453432626618154440257223089372215291006721422416098114691738900266781455859409381511072463002182958162856812524041045942671313710854159080022308064244240747732171928688890217492197292442808342013544141716200589249361518158671910917011179359519549248943462655560914014376478681348531665795113298853632992722019433771564725709718928938375163104544969388651676563030808766831856069080185370136846348250344928682858771402367045496925876767546570767350536840388561869306406512616624307166183025509746090865059162909837966013349719851075668398352758644358835420155990479286531646079380966703035459132944006019380898746243847582481057980163213533462545560017677440023995097353695466908490831122497571765173896289205447038844832902229342403740869103125749039995827692741442483532252389609917615807386567316560673378203852573620477184663395608114046027089224433609929056641968532256192532873455309607652870971596662138623053568893737187558516801980534728263536439266751311011682079671392807849438059533272977850518392789053162285323336185694301232343119588474937086935796610566369921000766668428912086830103301069047204349206225408271902166043660836762057549214448499979351717057320125129070404106135240214784209757091312535109578233299126974956707314099096893803064548596570689842577076753221437361147073083187625855871454527675005849540278215060354717505948749483615471043965071907284210270221520417293305956857544211716045865957228686570636439764921122159983288336697684105694813860765331939188520191079195740167487139555619146999502026298861830414482149752880132251798017517080628146285388531028424542667348616648305008922033946945826931110017468835188034420572795081360470116067757853350738664632024458861963119900845654860584434670941491211590887446483905474564912201324827038180938740003838214729316930987658158224010667217296257881994304127930182516923219402556426786258071070715870463235097756801331274660398228352300485617928342542922089312748249723619257357302654235357451993449576175002773712240778880664803840809547015647680186833220813637652007779938877307696468268129501937767099798197771064211655136957928770501299063019798329314181947608346850165534019148163126132477860285728364116068788349191618187392592773535078029401648470067832468814352598630948341156636347522055923993530472432979312960638177796313287453965580878802884280971892485413952593212951882576272906280099115992534919225313617516180609258580257651592836168094371207947158162150573931565936967257269541145007378494778764087404777364451527376488400904871893027799256753043096005298724975785312989611238433777236496859079624663045667038114747279615229200848426701694561399943864297151850521785014266536083738168858018743365089589564093782000844470711979579706755768220613139232198356768755752504514801922693553651527122867408071244403768086483248511439861436368844017656635251369409774812072377489480374859587382903185244879863016266859779968915271218396619863226102026852911658304542172714450126884276651394700961747826773998409129487346692436297442719200420574179260578530516888359497787660852197914225945699802561728261326004944973119544428942465713067004221047030338933942507716909341414359701593755613305261272917482091401574399110870548750269029053855124334211842929142156202552697669071711017321197748161518534995810269949335320853677978640264324922730298416955375859566209938449302623502356480399187787483919173113225900885884782490492033191946427271016433124024396478301542969916074685253543834324534712194005826359396751388607916881730927725985061676416650031206441109303826765409265626076729432466500849806806949918490088297293774556083547141316063977506515821095365880647633079939081897712690204984478742837490161016606300491850689840451496358444235470723532849888384770527873257371824622756877278477303851525595962093023999008003393637486563356558258043476839770292000413267471253868425389579341286607125304183517935640393021789174043358087311315265010496523594296350542425086212534549599740965061562948046130847376139228388478494268725507296814194849793703312156142337406359488447443603735322190037069562132715179933969605231640177124197452460179209281389327718736427824379036297913172741327471771036564930683897456565603666477699465477166674629937573900424082250043861202868681445994582458136254007991908040052667328911913693088735232349751821699610943657928190117187941004661114917849195791086646257730005493979991767553684592353704948434005720237027742228173229411989250711357728143323980453458689741101256796237195619308697276117675857015236558328538144188317938616812196854347128578818915927293763642947788834247181450950363845761908940648075715795841778543799982518862726937217644082896488656949230288123192375179848875534129613754684174605963544910667406470412094089598515010098320277602426452033583811925174792523675180728853179416286314307793192070869345103395852447628357012917717285423048444403546107475929325061676955062195552072242283108676341632217903388817558992604941108854842976644086668759593224720482363772415903260631181311257540417956371970365972728532935212208440803833705626788397558464840915822439343992649342279136733126971760460367656243024371669858183405413921609552447519620697339113531340824056370390785234820742860598169784070114861489528853812626782352360790495934451258024770641782638209850524026472660004280706192143684480380736970987216395655088186305982728148795440023546541584644024613454628772233710072905552455317651813343765014666304060103572221800894485960601692764344490979893758795029867509259506341722132537636420730683359207647188099207222220288788078296612491852333661812701277457791272583404757172280968785262277582100133685758675568005414477133744681017501647658822498896758178625140573012293224825300298238047720141809635804189678487345455441837764126224383790283842192618203558447431103319877602504734476702960318554171898526480330743263270291187202253135408500346557192627832826470866434148449315779406083888983497258301916980055618771408666161280726773805364747192756684782295012891097233053755871006948616867493545803620603228009583069788956281618690556120961236443038322652566000813509643643660865793860201876653186941414754434291220010713842093979762563187623934989422474892463909676141739374371686059920276265562227970396893625188102844881778152969116099891282961642320453954569733789670843945609944839371248034577125683286742149655470132460311223915818593190232214138682185636124267908506071378781590276147565839147367814144733867378269902891824209498502898758762729869091466058808768592961617485544402651827709437285949408170398636207067331671456387976469353790157507880767664106950604247953446938054876027166570884870224939512045082149696828410683516173016778575604346237440057259359052539698345040800721619152375764864807511506355027792806074328106449123853676956687181259811174330224014924847452055696265792197482737760176810276885736370794493979992125094327179244434973913938018988874819162912545702375653149339748691823036268052307565149890102601990173859650472027246434462491718326978310050298067601834748385059074859334757955209243327963690018043748396157708280761052549737603926170886931430591275998363770168960719797056024753798964678920715412321141635267325127260740103696176244940295324542635982032024602063584600771257059183395120378757836787858133452733940333344905634627490815884530248329992996098021275665236356642132935438281818127255256626603001533668464033417616062323399567016115408056634381343776353253321228970613097969874586332634755543630399343419956847549467764094770620804842074003770654800744177715134643481202389630783483485572542107381299600066595271983873508612046311091103671174615222369571713185772794318819728567516009968179714456194755054963398321427239317855428892671403721883019702376688954871968682121114468450385039504499649868424293803104176166858795072583110322576649987679012555355945059659379631623772232961173482992554726708723734388893445220576738612411685934335358213761369616651689335017840277970128912402656152828357592407606103677685628389471552082494758435865363555153225352877570322050121305677887768583224335270928684513770860854278698714388300107983450351353696288986892723340679808996879450972543554093190028961575834349761255231500126471048509377435056124311921127292779328185575346593612908497170696744887527662437007589467349729813466789897056926061950687156809835741732179692293480035190076547237382497053082905212371111359290926596252341938707079298997554573612558778819567632179622686957817642206012768186778627912907438944759367989639699609694258344182880443025886244871370499356408755047460442605351874914182111601490462067244736039603341842319044437765189870023640414059254988624614367330500027285501590271978442262611925061444028791425608335336469332597979056135612004679475456379405203192095319389259614527068093299319516742007672305104593577788478526269093948406425071855071571738500182304197678259026052089422684101786056367507585119310399526591662115304899281371043170331418145642965985516293036675796268174806925582806746942699124202830379180191104250639614959883947331152310418198575896515005398161095012930057281043907038115759456823208960783448619991173344699765690514337565442306625628783049473112828719840500371846738329597103766237042674071566086667566159050547368035150293486651195637315786216489168468290727888892152539781980153355136904059212818836771070926078215345804569013607780109749216833189909945505145207366537088999043842635588269777135710277641033078934949007885680533740074293567001496534526406181171285575108053238041187048479245353140993262618592766453887363807258359124860524401477041170430195557091881680315623274608932016742667445454290462683190064946572163541706020497588743341282768391643626836428942285646735442138327662132333799843697675344227369241714546553601041502415893163735761928060673006687744268438920143935280727799305943598004727048400809464798294436056393027114808071659268557232568786960113727029870488272522842761269600593653851295087874558332194645312709239292979364386160096899822634447810786754302101710753894117637640116828510953862785629699084846610285818537540590062981383643723551015887509761553445802591122039532595222832012619962880119074911074532933793623487815275427446987046429407802339233542557883945669104044902589207991116982045107509360078004456091592393820387840694605243912584579229514521116177237262800276132650997640214500633312228931447863508342729509699597250855570941180035909464278630427261536735909171521603318916112066451854819637006460891551117398324274786683090017416571090010864474267730476815113460769414468472558170279345779387205101532867531514981987231252866593450078172508725665180700328630420292942236990278814397939912118965532960619719153863070930462801738873113858336156654708343798103871082464708868959956792154537806492441616946475889766128970607374833881121468025323279580140681237137560007365599696352065463863196598538997614034072911689196918455976682454962691914402070566728805688341965636631172832997120272120503004986307952451781947754870633918195582340489489261215995086239465091225358350034997531077260005332206797447032154996455428089113824101329905518898553013515346130178309774025472607128152253317348625139503415377887899230315974246888043658146325049555630062685068778264579453024466565702920942419400613134554222515031227731218429505508063310396870524791557110159543693398876931224563242596244207018683146091631690283784450789875138861555182983222413526432513142144557543208734566583000573079153790807502186188998827410295214896906834705397130939771542290429559378358820371597890193176684503645886701440348467537447378195031250227287985450351918021012852101902984420755701804961005793251954313827185675635927316246867452824143546117205456574217404968559959246717093624120902127552955208651845612743973887093641479777886341684701846629135803240101481020785057320831265877229299372886915441753063292424943699934120670384178340048066239741128962132463900761096403347378020510642718973306610938911352412267733284551228766189148808491061023568826954295436510596533085560008483818348034140915144474685728772717512393742041361067265576879890531972441591430977747998929261302819163734943580103022405667543447930608148953914779693020536672466609037558112621682259032569183984533090449371146549515172890260252128051491851847347604201559388547689046033353312768636015603418438049833169166918016469270544322316222854586048506168191813276161378599391409002109738361689770012363110758383272430631291808579867646534508709454721685421018654435451961797717433726765624717451762313855827062476284565060187329640299166660211136188018560223108383933813033495613429421191290171614227807606420704489551959148708690931990284971380014898725767326224368977383879780378995420231988431411781765674401494330977493281954212716377850994406184230020008952617663549095711819983935941191411767594496304097176332042027769288611605658551961396295547675939990295418187584772673492983090521118586289575479069248898651318052472249527031244385435625161206676525652502206666666645178694917572875064482356006884971746736248335060214924902940552636415552342128785526333729939708651111554560657647827087551985674025922278371614213980104038483890164057737796422073452224089001195599568499693671653515246837302343468927641712938456595745172451726236587447745363361153460547636608806650647294038424297148849095904812062135356961833368623969265498106351347004140168177386008135450610736582750488559679471642658261109093068485729894558599285993082342057132825790006685763945543309328901406796919181087067974737052988011118401009995123402981153241594968899603311758576043026503514544160171267245587032300384677107647910945838051315225515855007748078591227270039907053130433487641809125425991245187644303935961309642521644786361037675984210447789493550878499654552493893357411967826663405993488268030570193187101197803180464274916970601611261942020628698420449254256116913539958362303119481643093301288310307445067868761836846090351759534264760645850495181932025324911070777315074555439486420942993070565104618718197217830448103239158955571046245117703701018551893402580590716149985638071850103215142319039883942168476529367593447416071130911384679286888833151772026290883220879930879170930655805821501556694271074569436889853712082484543204145446143552098772496392489211084280575927514165364108617361400562443051594168770896738943367315596610974324122116208605149209482093025116973960954046697403837024883780463320912159318015773408696460312810357352679597731033052432217425627957216474305663274954178638808205009736092896984338742817645130995343914799663700047957988701099906557801362727945595281840875152908406527809185950108969510490655399919055179913807799913695979304555048206789294736009073976933268651715201702293418542520539660329866256074599778752837127191491089998927783405050840192129952759477611259933076098447764310533878109997618324406744661395715641519043860310969879570454633970659113867902359108051085582052403713539878111662098250678896553250406171225041148206928258448016769696047544453497296289509815955189753078625956004003961786015485214200045925302743149083410836087238652909427854982344706811303064363310873962049903077445228787281943956451678965471545464093789402033994088327988284086278447082530911567857523774440226382597429502124096649778963618133784027230384901467091135770415045739414795909959178843276553876934788196868231654523455993337267855741649648887712912799946489029533229965201637526907305562939317230456876425650210042817583693800063893885124262882843610550067390364476889863267322638094874619625932626170547843675023347489453111863111168593962489953110726247246062800048118034789824420921047428504699957791164170832304112211552471450497505569784740689033143044615798398701164337166003075180824641638854676985562724700749628675106804718002291606723886335198631291038131618559558482212634809535026317296921554491448619811606606031969922127623667975985124324089443708885332959456404762364313128719827607092453579026867822861704135768227782903588485439780451802882554358335190720514560154796804846403269932943893856985842310977572310056969278647264893844730367592488367185170192113586043253249245948749699525862440825229411368694156105826626711657994742037074578567530897445542435141917037354469855023746298209429119768829428414525577284758598747974008467390004401767360315560130975971406327194578231262943179787571612622999175674530178720479170585527715750057203306083819329611969853219189719258943534807132765975391922946033047903025379052004210594389417479631565939607750861060694569787687856888363048784460453648798526585652696878212687232141418810461597119928223722898280859151954684949431897600268084271418362646392787658595592903676295581309926738821022168099782402046060273536771797125300025475198948966525151304613727088646886005027432014760418337385826559293121372039475534368978468591674516183253356237886491427392075715077605482634602340060793182715729126863103185326568972635894616037603861489146107440720422057510382490755314992463720824966708313897212297377130357283534558492839784617867534187721327141868056221231855359278047008678221001625033393481862307868227292908184682238227745805533593041309137058367111477272786757255402721477272243957259880809594478352661285647575849024492285336036345085388317591803231503567917006893493373233618558623014976773182208592990781261994234933783976029948443723220193881537208127094641416672525886619700554533896405969551464856781195336784598963854395478021612194047830446139370705517906888021420622926575570699222085405842830569633671834382652372617525772221916495158221951987789059190203749423320634344643943243094728035991117095384352173538912916888239571717422379257233461066283633122576011233778080720581497573154060978938934782057550753246565629017407124836832134563039403622983666874911738746723030212972462840190639260907496095067487190718543206165265313464256349318036901655262633985873921755633883863880005158753477133094568171395926960272119275545583282974996787965437089383068333035788337398619743740336245548903833867981873265243421847958657264971822166011883051352193088473615375798449502113917152314657233144754433777979648347571146320260719596801363912511515217214823122186659475692759988707494200470584021444037942607709232448180571873745379551523030224016783097114996317739501490037752028041397640265253520867328835005200217017431450152162595354751091151864764475435909184541582037933500559951263365884882072106365841044541612241275247015455333566017173672671468963567759912173652671243888500135093011300837577674374585380084420093293055060016712610584446187126594513403167927346640976053819060738340155423712057494100549751968514907132135107227804420379859962473011055628584755393213258838881818482729994663450980782738630317925485935445917607179165121320740373347948885523069283071122612990614429335934776945267147798263140876845340992269102851867477227396149460471511839051674539241950622018892499067723978914628190857776687000277584156195869450399944055110319805647556158659490973881184518266430221317281311832575937641704438813789024059761857242642921625390999298205491239007570998697310174012207771667449921824267146335380323886876435640181534113780544411966310399715330980162894716740900364594673592836480690941881392102088889270325570729895388676775905939732423830402325364485839907530326715608726148959681589735178223851893481022242120409563233684040478367693430999389213513423989178531627356906415183146849165691347930117549450784029622824973249113737422523250580209475892815251771973938796431313578345212122747055671015943006598354961363310106429028213875328242441146581650274470721810422152999945998404293617038886374917997163377807851581734681492507667077604538394912736356223980195058531550452333340444628752727196784106238769866350063468354612716447976681435786330690455098092271446720242711094592427341797063811654617847707238089971185703515759614680394260539771720538123568032723300469181678197064455903178803026940476733867187905361426050181731283365370863507048369686362260374065170660013286622618571630217334005604357038311903321209130700052582338610995527806194745343916198410600526447047561421727698807370264441714981750935186833686563655784861443075590909790832522314725659615653804483870369577115025261312128065511729123596751214192822149868986318837081037440535398016338585825828054522650459442573436457554407644724513652150265442309685630454831669207407080314596923612742475043838341907350464894787985906126543915651680399499819507511202740119780702876277532700436025680154678848137107171880505210146350565906497574300631397087705810626656462444056066099772920442919197956457905506376871605577091164779648162150072559971265531284453987631350819564355808032813955926397440400911741895945273563526306734671977534882005112105046323057307367513705851151275948526214615131467436563493052976796273982012201520006716070079023492023119789155749010964830001704337698825835455310222751807614507240454080928440156177532149601653747269255259964003441945598644850847799809651950241198037508815547013472839706164253691100468581363089209065279142281957882702526006983971760879614178427304197867686685294125966981707107660764695644931869072614384573878426469724315617602222640524731033380016469193628086305519060750806470572794262981716465812534859876716823825862390969016440409675473495055407922226611768859890319657998487669472965043929437273183091155108049441993119208114327986822432476112562805937002166061381493847241734307246627771991617860911315255856703273708047646153040264549711749008067425443892539109965567958488895333430117190425994241299331740276231756642638717679062932068559165278958242005037960169069674661065878240221283238130348382272763072156004770767391310640400069015579220710476282807237838769647261837167754493425570556203904009484417764799630965483814609670392801284358456950482612886321413129139843876559265703376616913070152964995895462259420743142973790202406279472697247593167082823021760596399699095254199430709321015117227465770840150857073165285249260547849865242296431514056086638488924953949027071483366421521367493551313981972887379074942036543708148694580829531472481554732348081036976053410864702752405805937612162765541394347177011171902617836690765293618157672237876970277673819605498928852036161314233323663903224443555158070673973683004590921563535050848991015356112905124786545214315095911834641816173625084415857758104155973528581088252309592117062753048180158592386881504009188555259877589290935143203566559061800165040382351204733572123316307672649045668227868483496316540804075054649147333880912555365813349740228031085673392052305994457990896299932910616590824906662068944480661440795170246812540151578219612954158710332974233866758414491427824472360484806660095972002764364720723887010374545770241001925645327734475565442142026853444134248086596617887000390415009631813686583668624586645103818693838290993284984824289668030470206355989211096134425529092891338899135376334680514713843904529905061888054747040538854162858784057526607416376231024297818976965011846559052786288019580807774012723177332346654613355424716392204481016250676136071478402544731544356594639689783158393336536612335932290341703984828630945041989825247306101283762999449699689223071001500211319927107482096413484603751374258274123741960923338404358561996350643750263526670003976193733568188467912838965277057139423501810617967256779524847608511261569431803984936186058092334591224374461769969155293404835276920748314777594539562195069181284092290983776267858908601549973629858801828652174840497191228460355811872142206332364089463573898249581459910892019401908558688027171228248222791308908328428548275733634081921129327893649787562687865704881075293394623044852022775400866202722451423467878683119844288241781551815743452114884991812535260835354830386242364096520441469319977741670012219222455031726786861101873067774176200241642343736035759003499701438163902854197350719125716202536096741507569767995145170110130646185313563606416853266188046451024960727213460991783328722403929858650402298348688482009180348598105400680236920364771040892231815496671009962914134497962642460228165780203027295892137176938263573029608023653452899897032225047998896818134141390650424508490314459775818812578739475932243775264381507389665478841778089232664135501522395323623723209945616772077184116257730440893627234978503222480591234469618356054069369294045866852862454321332112904586817795244707556753393719654398128233946735514950909773200878510083277452938969771035689356473373891341596871004211147640916765179486612855007470756461627437511277730140277019621611815201280924278401365514640050505974535379535828771517078401291016445235754297911807735544872270046020748926263700107212053794312869589394498835422949173165748768728329774126666570967475139041970583349214552555768946300838659318876506882126397834476425865980679960495252412897952689527966845052148232734555171876472546760623234511791783440632865653077423005241599110138691326270665901663504032989972325072266800345516427879508196594647353258286852190394886765877038174040796444708277199380614124791859680066119245637987728381826263867539317214868457227077479788680255790467019074793199060141974469126502269015019616366302824534450074782689544570018086749549879488981214543801227542468263957559271721781044237857396015992334653591414436592899907790748926159054945790674492958480235312359025108011995061608877155033662822959151191170151098091048183766121818430978571189740734560201372884382869453535282118931431627304589363284596523207444569611783201980651940041136201569889623121917973706773282020128465412247721802874874516509125299267178781349943181071870805166195641385997016531596197349338003973941862839482059882089324034731645863979774024362294882759604095511325810315861702117213535047473887955052662077119092572192370831743784254768269604205048565962558318089672685343951696899778522883135423816808420002091048395365909147386197211062932361746010445416044221604766327212589605767837669667628172568626312861803958510196995977595135352828364608231785461796307109214994876612754258388112479598945941585200129453473507639291420797129301552413160369362606781218089658220330544675898056323765286741347663569593715431075620683769976004024717048962941261175642611369848482106583289426817404660836147655733492901486004604859844458838473223281092493891798894708002118271735580379237050731296870709467549896760446119834388519854231308040624509907682814258578215221752557986219268506807123496342921070780067247349047787407071165192668693236530300360724960663216154400760004536994341003390218909040559505261690133311999514877946155823933891164596328924677072438889538272451196887590312846227245573945792538867701755080255646182356751151214383780284671279245679332376960699668489009382145094202797743368536391102363616971738261577016771923777914735901990855778895992197191626073135910416856498092863848935885161653075932067982869807731917004881102975200623843467380231731166950066215186645583171029957534310388037877642645992102589975827524771163094107009420244549140510186939987142622325414985605701437059967939717757619001189202882333763649021081038593730209883323895329060811288449259642801930163431586739348665854825220402259838660302407252298979676793994663122812505048997305723744822700772583412651763341733995916149409084677566198407004815625260354640738507862563878383764369758936233923087258313680743746091599857723136033735169286557219309050883016284950812160427597536362825042528685537473435576866333908266627152100145856242226593908529370093506520064044525232763861431171095592251897091169316801819806640378802433038941591628001050984088409516080079695684209719718858758424713323135558727398301411397905827834734003047984820520326357806666094439282594289686520848460094320265132901964091339740440824631913507899893654929430826672114952050265186966455321818810534136226668952798993589031431687768963482061758058496631498410015197600285914989171878381422982057071979307929662444048755415088611377276797968862466514412773035188252254821754794233423870942255648590016530168391709814640375416801954141709972652931267727503267818780224196859733069041343419310497538345596935601777424008340386021795514589344671171158453857735905205464746957713526744030558234328311560261168174783852552068901718439395535624681238582931276539340052387882442800690290912669002713256189908631971403231528357510265417124628327024517608360765696862791792826609946907469826892119373672308592790737328135013255690938933419226060374486083971439450850733184299606725488559883924984598115828722391891493995843293475973633740355235749725063792918504036428719209447422864744317071828935624381969584258504512053385406346391734290755460205519226833921789241325051654196827025941876339816618778903434652273585202785474969968873434806184096537921528237422203328962192282174491740956301519980276835015285952398200865784934588440403682764077249795281922901068684748086688384606331430028214689477678864683287782010377293253794163136153824942825755856088052842656585908913333602553170854506339699584869350434611575652166182657149690475212725187392724265325210085642127371601454681684416456045541411968168775708903597277044137393059925316075870896323367847171924833167387586994213914932108773270165065527251442435449319674010031929633627526664745265747771055017715603364928445124385265053071675058431761634090961244275046979555473434566035622127373811530757558277415800029998191233162910749343644001714982828034243123402326156475742769917779357394644712976611700751523580984937412774097048927697313604878122875835172954333387131839173970461150031062637465120623446837335074640367552680916672884297933972541726918784007681128533860609739155923939826844305386220670278998328479460902370262936569655152991359043205698693905651769305958916847098526127439913351392149887657214590008360452947242931864806601571387069431529667143260805558944686387526395069733704793642751330289843201024210333543028246940031849578696481961029692527306956351837683066636965500247963424686413612912729896276613323586237847570146479531668722188466127068052317082185232615201375170361177140569193886303474821217679884993870753028992467458903062878649195974061284020962418883682570991215000513297614133227514062131775759773559498584721032017049023469135249678008119595747452373295232423524445410413580335696286020525536883699646955648447037862532855930428143101786876511196162705352411554513899120644012606400900729490165522088915700395310870774679037269999318814581838633203653482358278790527386103618108011087836249501187589992086059192847954016654875598095405272986867861162043412599136188604717637969277789931492195953815646522822845408188055629873331460320481452064273568753179133696254360424459447314126599582173586651711806501919098260103303652911664500698809850931342866510623590449425594967216420068660345457653337992601369971732455545092558995174478846835560287472546545869981511100587616876742036900833055957475208162053542595818398608134566370317950621017233720463922512923068330088345084439839207930969805055989508803614542895888688398797088495629082398295294657579484629854500529257375386226209356715178228105265159561301740135215639552343882565441191622706439868147864110265919207167594587058160289749867491059025779004221416460368689135807451798739105663819327554255798868101790430241097952909971232498121780006754914008534086236516202889854761672065078239260592729521525618336942128540619914841309192669505916815816759932372675212507472900354974736833277414275577744548534630343503840024290754648183087696231806531499837702753286841838546677275194968998487014510286904885269532368997110459734422261676179454061704153447956687321340552193900424022192020720927482641856617292494020371102584824007406198384889688192873138288744751053759198478751921959710430820415569056154108114270669458677654216248992184562954842446724678014092568494306489760850774605807937778107919359775665844736426904876664344323367573144924853507421416355206043111885233348093612474428593031270491989874517181625291454999403009955732075975162867212119751148127013642615145348504677215759082006731236335528773445130216728964462086017717861059237343110283225556885788002858552585740266989350591590158642375361464232667648337525577292674540547735126575051114924380095363813623951732514973628245853018971173123652056975714705241793424433893783634384557165059296220973727861017703626243462232448516259567799852181773187637553762049716797720229648300584743920079897843169412810882798154234205680299284161404524162688448245450871327272367676148865095038319577517626538810719880994876247379942451732702364085732171660889245780336277790980556868968023590256627389626166428610685335623193422189547103483318010008502323980940312524768239856449478368273184747872016690320977448414138326701209268674445710550552371076592235803611578235917193550618195634686412342305146437129070138700459587832499817629429826968346717420261907770686029575029939992461532200496401800308641240287564201521741686695608097878681324380687856788241217458319987219058551284061692677452286472699465080627495670613580407769079057567931840905949990536941694071027587367734562550966535977588604405896079689070928437898550530111786898184524507677889217976604289972167203743538162318395186547869803461240591141158206300785216618228085667612142087151529786967291172964293591120164300772532401805691329497637768240621431362171478100353872026776465904014668680494497349103638274669635759582445579508637424774247912251629600936149952189951397513333508213125185692151981137057397015822826257953221214640491647426076099997097335569599085264049587650059526073666847591413142700949331338038515567675529099434994551764886805465230507878053935256782720763594344277464059450289256634974595256897384305227636546177736915319074421623798610239971568823669652927064536756510416679616741397571112832610218679700975759936188391627564936358022565658211454138374048981548286325097487630515089737762489186692776231155358923099060265891335827975545197304003295692670439485067398366796549320906565278706569043553080511312315257907760358412531655617810213391800202043612172401951700518655305821544132053783082815024192845818078097156310436553074829116151086560548752029186979035588537579214699049562432217225137487844188997468481357076449988562771838944451391970581397642597858783435529310081466401618609147188187248553679317709811156798612398203226933378835505636866095256547788660344326050303309811220925985221702796341012507275290758540270557187890017620915161245281422665487757209500652428305445151939118882111926480074695729650481749270269118342293094621226439299031091753216485615484756415895074528275749739362732990655542154521434695242044641333764490977121551980592883916695076745617516202032581013467450161784257487881376818168782723867353784458407383164693045564781436985776213930726676613397138991054411415476505544234879906188541160046229003993120977266649836524335904230008030436401582632821358379591662205373246997247813850696675242876080626930538419598645265801040689554978866789488222339594947156857906808154459823902238603510340329176023502780620109754789767412816242274009764928619492773897231003991107777441731030020314403089511923728462608150757245722390788458608112837340115986489340123994542215302497218930157369051689755706853828275184828103291741217341261869043424749683818012323724764471563045391088780102182118008704138483409120420755184325808174242608131486613264921470928790021784331569662400655639126816214451825922117596550705135712741496067419589907657294152348405349446826331518599326370800533837277186113482558153325738159449662359255052528951625584621693120343613557822262082985927266537229637728924201440033376988018212378747324330972586105265042107126233311376028485546713264889679067817669835594500849928283778183232802651327169577120571994402785751967756786327720665085466041298656020007449563415738036988338104168953901161659374227021089985796062635700158104419712292459178040123653532885816133208870512915309996940929404260937903010418560344466608910755965882909014970976856559757342028588013655516458012002482148412567828655716676157043658026917131380365477406386191940766731651616153524410616548359850191136681645524536076554185804314245970241349133985007080855848386569002617921779768230792245944083184968859904576277169658602918011137149048071312117955406885394131102808699605139401456074229269836872512994265038570186673844051340011339056695990259805205565189986586393772567260462003109576843008344399561144823623003882936393437939681772345573240017458212600153499361046173435557825163379118037725549121201606414974844365723847729448519747549071098846750204290962956172389562530512714298030552183046243932994890656216144262081987627953984775209723746885863209860404405423588052621467500241769046166238917918447741412576466509891781051425821677312239336225830812991617441345136125103048909716371698967961124724519967600631209504346334113677312870184741730564210466473203936567296094606849403795112344071976170341821423289832610428185753149547989040121187159217929310068492737373877721181581878406060593517342475369719984942418200688274891705177399597412452789406921871848587485723233805816871065063222950483713486475250366442079631322841027878096731892226392370378299337951715464881358385176141971816096387121166274704257694339924211985521715641755969342382139229582907618907129007671365846545692801178517247507717048055406436636822166728168608521212769439721086263726676753523749631128957256992928931356454401939204024340299539059258244804215430481336488085194894290184135847483279367319844450434157646832903080083071042096863006550865447250566524751279496047457160404395391726406826991060872325555733330142641708823364313370856766279280473528617530445351182128360199112747680381376639786967903613155668279490190094861238492213002481696756601641058759249419394554616416467811351308834170708153282030824645762606003984844407454161758310484893488523371294175041704305773327950434649818924181658693524595376116308444787789777067460159781215777834408787785989596088357495863795304719084489493296224612036783107066914230051499474839668504512040283508111361160838935768686413324866649401048461547932018550642734062900956606030908155146470293204993134357875701343317069217209016513585201700182732109957237315382132691585167783746457379871328256590890240160270147420482784943579974551122202554529547374795117593505401388285845695459631247809283594586524041467746041416689286666175842240071443823822282594703856236750817987221312376446452769985621550523950332711926550306302180985767467555642689270702337113483211936431066382902279266144423201791244046014489846555123161539894632575053857865756887749678465800450610095061277900857736778896648738375144362214682808112344878335978424184725829872269634394594848834932499724538431976622537836747605031374083477738167275556568265942809343290441710341865532117681992765758239101629809040624348134919147194885355892872328893682422324209515537305754700652184006962174927829827034749173777684070278006131419521699623012177569798322106750998203743671216424380228292972127876871789999323234871197482897004463079508979959910428204008106126644975138135971873147684284338190784031392302225664284002291640395833656268174557614566326299625402770172803174229525281765150625766296637509316192099668966608655666442642982490818722215842939257048883897897984870203078588957730518438265973156876594381434343960754762274442773516788641936792481768147681580778101808308574206569835615356914650620576613897838421702916192053207190802509272671715843434142491478754308568454969905478748063309624056440057973401904719141460126385310843206975453270470669958025138057394308481185287069006916278054247926851286079946568924848739015948945343389717233929015832948789753461236233489625686986701304603806936637123734977764429048197897036426352619195331331198773639093828742319546425222432888633818724352698031759107901983274775092505924630530235634898869344131084383294864126378345734249367075110242311281401774259458505718069146895351753170213099636808133285561319364320717981046079520698641548137403932210675389501553159782940849721449657948579116910275569440717454167487759811801316026624086203787128601943030150991918653079291317593067352416892644940183616336959824509361415083184079002083886911233581678425646290580347363655030784845268060955132183727950022748121674518303468346569954336339760498438441712189413406118774399061812786447191794188282161268492397537702218091962918989007297531180342036130359207607821399798120963848046578585243808776957730779260541832177365267215899722889182438889231550221575253759329713681042482888447027665476860089042140311883543934181794663000000633394003593631133575843156140560020836989240291965859284300108228108634584150392843489169586421688123246322207561105411230651333077409968817015606383070122422637093647068034287896081196250732122896145442023333182790045033606660347479004451013976390151557863674968249378810233218469448302287311622857366960170338590792976419636253664299828434954657004224333454624129320197898881247475312147121147662230841720275941112841072770037190345664375926618637099487029959693371502771473400013982750889303120849173364710326672350554554955620319120024711507411646110909747455934606484405202285127077494038629555147731191423581377459789083544120961864273720627967132323544129094809097508757976438665991992268166193424865397961183120151309903627838868612385296614700954818813430738607934575313326273078856297762401149280775065027377968656245574002918827478258955834281636431784239111630292437934229544480985079813917502647089460014448992613562567282327630318003297391844946718038407192040344678249926782728152546107074978194687871784479813931248770316882314282054495148051157348918769297768114484889691887965657807269238682639108679883415762318712436144604842090624746183832495945912293341518045922536124620729654975898043520282440427095834399897942244470032131493344805642565584356500724760743821518352488983713563435424777095272889638020473310438107822990853374149393667818863568914198399243118425576399279009424089909656373127056520452035294060355420779945978119862715093956736715112857225088903048843441356809831902530286021814179060176802655672147173140685631622811625812337253600576725188376918050772870756093562108398687875969194925821669248963347354439211839913873687275648064889836266566515323538831716090461100052658654294389925177344955765486032306540293440925968251397073890816272392498543559992982155377639009547476047843189264226331517630725047347595168759045437615888585564119726254799362283248673953488980454522486960957814098028021364192791541966476489832931445017771211009402974616844785446563200362749878060672628397514737761640480511939454323671981291349343016804949564855517838375523274300568644445290578040132818649902756159608373090547767722806117879672735937608552995669794509068398906506509159068717441586600837453916508360866147167241941636868433899552512022897716090422096269694980577116016283109265092361616108103720926224420081825849501047892170567211941705173430543169223040947641618590134893935073783331530234850767003127462741236311097938048596634879080791106265376821373355435408774172136287241019521348413312888737982656461037041713523494494902464900062144835652439122536754224195705593557232741334754539758995491519083468626924422881742044545123403483418209907483241892001150678951231537790033576745384079004024373756128582391491936231123823428246111679854410222251080630565630650779515303784047789441623831047719665075487516949232317970055582522879870531679070799287383403443198287399197526399805969939856469997262873702399671840996842554902870011689828152289950378775444848674719053752678922473297892096635073246894322712763829848198459812346608411762053976473620849132551328923291806375651579139332683629941094728776796147668740741087036238465354696658290769706844865885063329968423649914502919476418774032213554664161115372936516147944901417968376285213551967274038442676043465391859086239352380388346445666175922601398581184974699827642993957534262355575531128054808456551427007799476102353521970014788234029854896517376672781188363191021547955117097032139174117424930906530891192606438470203557745458266974669974211975568648139615911382212556200596423706980506208344266786724031167278986278034241098610238067173094077424766253542439280611304866071113488038954359803581534383411307359390197890747251313612438159197097284353129827173652519687232272926873416006965695340177757241840695542722444551966752071008123180002518064000103685014881724905229899771316373750675627373017108789982628921356517219962949911708491289925839467798047665519014773487853724293700344271291787766023347462825346040526965853770080388823530652267093800868261994445234462264931691442744094393240602010597447980286538241172151606414602231080779484923100204083202652047600772314266958009979349794962710667608826596984844732411002085562442921961448787128990420478649614781559606716219586328032141013458059426333701274421581317024700060173284648626281325889994974973067341543045568904612872306474373029900174593891188808070715664304043729575526222583938177252386405609150385489816804302414837499019580686473098572438876006143557442403702400599094774609134922845021700503134554880874816144708768045664703916056325267019407131948288777825243459179347986650186649551029481965193654916345821721532355803095000450084925467276141242001505572921890150080094719556455055425728840485692580056845873534513542924310031794303246235094705541286188451567960893402011862213711865383418611870882701821825254807166306584759156966620056429612556530081959274053884251783609244937855164784531539261396191701334168733981398635315333381700522208741837459485150354860995534227552044557203742264081653812500454046569106341063177049373614132211267307246128091635710816575858797928052578368214780605793607989359051971657587434009597213970229574739691863700685799435104549037474020997453860372718556512500580217278897755163430466230172087629767748947091512417267664543860416160337678042756150147363879058505589434517323322491116850995183688961063426783898172615193794854316873493303534404539193402106444713847114627104113667751169642529161328088389163456782425191455384327947012580855948620780351367328685598108814579598911918283608550591403857796817903183007949311774093703005372131868463272732721446774738647402047622789446393055158907998325829393758753127980397350043633760738530122903250091268479829828695094104861593873871581399723506905844160476374674573896354714444891373323454604105761788959934780917516484371182890463969527986403242658395532641766111927580873107675313983087314369568361982482815707772647223620007816835749648938181273236964579322790451530447433319753149873807454917195723206934493196906218354363282319084500812500253352723667530806038068001613298016581823823307808225103352479749080160093040449691071930993417856560055360356816824596535103821947251032736599009562241135746812250154031798754046022507574501296790767651343803087873086837804939590459036364876285773396434539533117385672588619148433220996008961538732233964594268016406668541705655233549081919130366406355058645409521901423032299418450796909149020032912650808877541098746678480774518554218966214908941175256097632448795773573434080819520054533077593330760472807352035434122510615154469620121542899450379895020184723037421853958793245737773145440131051162116952774735071205169444092016700912250399043321427947050270538432784278244620200367306049473492262515735146416956014721232933435341969100581237089089511361323317984339401943637484440788770956833825650612178076268055158100512139829117516749111439448611887531850871898207543010815237458700225835809747108710871116520455931060952601853379406247587753941764921248137414683853310610562419385722029511714317577369460212414226094972761297290785745063258766437458909930773653489248311331945522442245006651844242390057625363690239265284679631769167626303914215151602329431690555387319057881805901349869529354368762826211406978834100019815137382566992618392295775501093175336298558749957533586157151364559548923675470873135445617125963574376336553998665225346257105949701712290680867988700090151320943529384217125973131997969529661279550047583247378155153397853539663559018945822184049721754945755721371346714583428969970697539380513613518544758073640138946685794333072670632291537334100811304838985324351246556271827826736005654976662431746285235832936267322771599014207201527158817764473214677100635903409762325544021210146221282953194269077423030909209110845396989115697225901191113581443149600209650695525869481820417037909622381523924610979083749080541282033243648879821741567840295716658905399560494383465402159100799637275622885798380314889265459886174136207923472003624164464754830880468932596964461034862678649091332771747811022364175526578210183640110514588339842093911449261186041355163965272691970959460139143731443465840720987723971641589235649951396077220466252201454909240481701785067805891418629463659065360744304166102258021485280451916453070319356744269042251863398025726567293005622799440050744125153253931394044845342884484162706161599941555532277170815787605483019941907120213721009607102006328048981647183715583775182643879019320913163227834460487384392357663101227603781723967915501080868843061520083802454029432328691674390831000487537412786497207411232371956721230455542507388650440755631730164227691846730830563562647874415800240229417512942016075329820555973106575074711223975001079185355344962173302634513267935426302927063064193336727347001919505862654570407088753668436160770962586074262076870168963992122584089259542929008169618841431603664419553213812331895667361013704361770305518682144648208029211734473265202773752035716456748562528596316859564098589100517019975623072362639656950008577933572149195764018854345413228186856631761621602855646424763781744091267024136153676970749776754463609876378918367135473554018517282047305152190929501596961354605340195318814719538612855664671523033345558439228931056784412306577425237851614732507793588995967354529768775461868870323012270041718303336198863192264454186870067449469412107575051739968766930485548615586892933711177048582554223160174313998854067263033099670349877664233779709263623907465451849484073742513912012214891869133470654800490116630923860151788574942563034080127604687259861113010846023538579171521261214642032260797238921243636395038690218160641829703727080595881293668380393975315869073509859399826308503940292413741082445941126721603783474989597175184270892613374372712496946045448410515934431724078575547696451252404215427847515906200076500910498157047918015258267409012233995327735154335707821344342079285635351371875327601227844100596798753363886137498008869619634225243372275932348433613210220312134598064356223374385498565897470400708786499464249700834077354798640721206545293404997000733360522355150140628503513831676684166425613563170697798599783991362125792603751689460928033978370800649714987288886543883386171804229157092987533359186358992279178877214235755738976587253037136820127426360623559094398743792393228923511686855887681222142382398624497163442932940533151908331820973267960155192711411221829620058523499258438034100637149580198060039656729658085904617973477303836367949100150416392200464204158572754099069271329970787844958698070568831628787818130904006749072163203552993756648905725104324556767850043956433804462438184938514205496020249991961042861932579539392676586772864102482721388348050315260013832833797473484339070806449718012763374784923382531784496736886648819060127420152500749391801452241166523783004143726455777565869414795221269759336846071738973580497914516590882726064289229761363218247596434566728377277397000423324131237019668046031148818060987671438315826288852348862331406492931198814004960018681879029662884603002908978133210225281060800404851254829294913087983107730530918712807695510063687734746714462837678574657588782416431564998252125253518785778871838608967939957888897454154326693573560069608197611563167960595571579471278941088530450125428309236732640206319404482416462246928026206664595944961441289936164500232084444942578675379944197080316271084481905445247000025513991090643793842307912544311452356255032009978812853548940568802301157631555333989960053086707735402330758358942678451121628958534589178970469730872056080071947360375348856978438089443868942277771187190039756573665813810045689966571763491947689362171787545109023748048140049154407910834471255370186125570554907045207869909552202107505538692933970513708449529802206523693569008182987440437446407002697363949953590937101798710185131296529838691941662120570593988982429215270929164189445021046577143632527430785495845799458006535554551711027100683062221724436271493559126741049670642175984951482051186839554545926507430292952787331012408083833928114623025996129251688143883731083648122593422320906441266097799025268130063166291745726664887338728468533798096232713821821902217801041843549747055932835089931982072179246861371224840307184458397120390614010306055871546869852376781584588008193051924024225515333615980627903747138125058677315065149010881712895613226348551170169461087115165729663336591929415881097375756736673389487935700957987923723393877415682461691510933330636252882145015743510864386605358228019707535853330369031632000365167735816040349600444760330422093544526348142537381564049579688077042639400347633142747983187504606167504218229720290219369294007747438003957906904801201053293991500718689389032465981123820058513926679090690444663817908493213007392139336868854908098693208774481023150047162696407636144353983572216262119803941931963973856355867728530329010901477600102988854732406016666522104198357764120038887670699649788502731148114627112694416905596660912780961238186052257388320862787848760212723978749133156040694650127805480938455801332890493943232216830174536987984150935073937934030297493730833915037100842943817691172139345394373562161637134742846541196435595046352979301273455004118240669465752851492469648636228388926727376871970865825328980989806313739306015916188805577353723983674043481350944956467061643671799283320584196170746102753763084919928354972940288790918864816622613936839187972533157036887072901409661906577202301555152072660019933888445966434521660732974202796455100346726938177899136591487997310512678524317564836211377465917122632800797369920635845896126877773675435146252772982133131525437577141615313768336978522443708939173601436460214353304178501137877593206467904379952676786900501422133347854199287006910924204358278953031797569797084137693500796248786279935716762663774050920879768096972917464322772166022206997770076863339129163265988667489864890731082411277367047946429666649257932416573777286709974373442144430416188777734014777699491593952184562654253748523819967973698995190335760877750711273234187819769124678984571798721583400508392047780648157516818428476598714893285328472252776834578264466466262356471596933986428164286474429517631169245993097223963666834201838609446794059989424634776990040142036673310252831926315053581921426964186829561430706548719757177670031854567401788699962836990533582978213785758072928643010428872450409285349088904249000502863122241600187240378709395443326504949085972654725141061711646907914127117938115439200981828614459054947427470238075273952812528123681648824726593891837799336461610788532881867198383966078367653759639778525012004783116043712293599095882616253816246403043610194667285032569930656984258434572309601341615728803637210979933290653408713552866678567382134113116779980589975708101002773955991875553576194670261368025902793170693133674278860389189261855008107090713395496153409285436098895113730612431077087841886127362426232224511398228757833056196782096600767334096632931511545212258921081948933819787572000517882173349762987613947490257007388207833993523963504000589535765521873085562853195647483973264902604860057870244637896313252794969826340717380906304381476505967668314335716725771976349622107536226147142355401843686109922558406056211579657183118087466716082272658694739968071589016425679569711474344966763574217911020764403547268754265985097012534559683280786411732524366703703430488419398295768456233074985015430334616892260679085306081820958345530201462117843204794174820105355755598711177431106652224113664708339079265004991669050060392799707135650306671843227399481416243749049760314227972240461020353308462129205037483514642014224881650867676208957513299590157625830225363836800132850327858348362464135901688796775984830307217357280062287592816072291518868645650182105565595861533970064479333156293104171995329740435516393705734421137325581640763394727652194645741567652676368274887914512909067766698264113679601208908575073149938591064754077905542536249290700782396446770098587525829236575332522805497861498309863790477823244967439135106005722759988313166854912996618667345014959239992682464353463160880521617199033415529699376303698337516283756269420610059442102955008546387056158022716892192806152904700348798971585243231474833821932944561201756175315831841593376682629102640333308525453243959313773611707433992945766711642533138799212109975660331087578923707753837818433426404083405553392233741527747161149520008510729336704879718605570380259697790101005571115315254259704780286865927929065322552566169985234762067999499701055181954487440351266749195170432385309864579489211815997636999913623560610287790911557944727084133425722490780702008313854881862228347855410213987574171264568200396366185801241919639409973486656604476289607790260523522400102186005213600524386275914012145315223745747318420019675796973764249271184412785514955652400907257449640203655676918790134685311330212906304271505579047727446136283814557957257080734366930845674957898820116600004664635940112504899059990976025922517096828174534404903765768585258150604971971117931775024023790713772456829706893401686784219651590961347264934891586838413867749290661440343954537561618203760449908084294706282513670163138858061409127084711511496838141011951591415511830831815544465132762198108697239160704833626969728197147322540835434582658785301669384345576742486497402664506026047697461828797676206714367569622648257504902939495457724319254341712805846658604722593607483618990681870603117548683878875950940902651409732932727674510567310261083741938646374280285887275818126217075592757975041656292794082078205636209911657270109911507475152598797972684539925731154366387614226893088930192857902643429274267860231085324926422654380807117142415794065536141160031191697663829948621352457317664444113391662644128138850212901143974341424446507168581894256400944932928984215566976589845403790797590024122220176768697141726833475988329624486529664525366547333066007453813007587623002200641820589182638293521650882733211976261128586911256479272190144775915527353924402918761068821618034449986766086997694292377609011338810449508491704385301482731224702194596201310069356810441418189175108010125363200236978105583927790522117149270552897588932070261638096492947716456913717643274167972975598075293223428405732381305462632350738740597606319129255323729313648175332758606559058041549003291554784345016023565161540689198803243882448254818488662613758632079777142535063194600505795752493652562212789086362467480807640507534473651471866401168141795038710555665584823183938174296741619926031312521236142354979408652018946741911426527846613174199283670713480945668190702077306886256240031899025007701689225090625689655297138176245935579911563968430444753724319808218616037024447875244923009284804168210699052028164310457791304636971158432547103809308190694883165411772396879796469320242096610200386068416168755801127301654327301650219410457115787242356470917857711724674520627563541737418074248818069000841845934272230402981923532930153116987671451890659470102098380159517506317968005705658858380587535956970329839913731782709754522043082488615749860179713904022080046930179751678252149542420790931073567437963441079630419554023661656482569218753605265503574217501835341527296021184244370653298039507320799013374705963511916591217690948506770108836239459127424401477111487216658077329711716181356797379352390097955541816587237598146598611611858576244063363428325995008144670148781359293783130683647508993370309257314188691522860394130520770385015423280783618729731911625990996199778960379113169288876460582886966779216133187126450796782721070151839915117650259498297052303006552092799244766152299328356154698444573659555096065144452082759798583000507504792553992006760230025542156735174034234708266775144437761667341918173261200939828268819563353901401007536662756865694370604522284341280972046902465428513356515323203276458041920457447679838001105357159260937379115404812546021976804586770422175921568981195064190212897998821904704921508086958354247343589710737714484128418729478421426580309896684352728088592353648839563830416641464813394592876343976287226649735317695987723099130006732566221572706822781851929418191578914239062364458813274778588466028679388906407303040096879890258638472185222984972578240891876290999678690297822635145377993752342275300278463062135570673626407303315598449133676364859660727468712615366431057740096492313669799938134495182947650374035622496324737731115289059591744940560797772573718809198372166357475120126005072976622331685490411814179981715677651191616705080690026502366092724855923225946940203644815046091078744335399225052879112769561464652900560628782453786874660566748860673229222748904167213449613400488497662647958500489776555258335507496919349874466651978875197691556413602103528832672469359003024587914960808250141062007666846597056231794117634166881507736930657663636318147339385086088183688476950298588066398083111176888535804316262582860753943779195414213643859635563413138357242352938798094945706574407966586697193553491634956561003572189171106553600128931725149454895045847543851625325447836511943952557822987776256058351976988987419789911359594429161765367345337006582885302283544425263013705936692522264706120203649213525681092718717043453465080339434566002747494874615823907267813843194199586445791160675901310208932633422953535565178343955361083161872056940459127567262596343379794300449626716404117425898200826772656338236459557547561021734750151118583274417704341111878513219856970774624509666503740972720638184635478137748353293509333353700537664003084569949681933067098614304109208434687080049599872996609790220276374025138243836880226883722903911588215243902261529013818571115847181226895953969472202512618145166346082969473877853301617591611208789028193170651264841400841654754191840905627572412542233462424043504689151890916796176023232002525711040583816840730192574666326715059873760306017405739453031415391057553867078712569041012871194248451683939502826278134329598917386584976449030722859603036262892275586433238501680227352418616795532609730874493891947829021060216691204872324761521597407063427226650282193921875850311099571129839254833183818527166797120133767979609306726019391453216508372896592755452315946781892776382305475052287568243956013416133712877711781325317299675293079016304838153682132769257477266508386978861005986355004225843770098326579232568874361217872909975686863213898795399451338976436526771422347397172675191074003528465925824359566272323453328668663309700412526817667176843340486551762668977871679875998852662367521323679149864066369518472759406906605127229207931967496398350544361522453106114724623599703735124400014432001160019079747326587480265711899233766571083868805854762110478849866819775525793074863022687348830573130490989158178270649790375388571232045379765093630695846656343608668415567244862466705767931415788678655804121843777302558074018583676585565809354877579665126088142669619576278767025972967329513043617626364367356399436516459307257157298950627852691379204880556347758508066449918633664225978587401725190540588251550970194640223395590780056717622939325616443659910673228278491462653916538307285599974653003174028857221117143348654257621388658774217921739986944347198626650129089273534268926202476498297203459910173690326014076513454743856074983138655240518538058239384132444971878474083257124434224437228559407421831265224768805552436628462280051971468025019927269001162272038771921634113972976200416938502363657081485780110708520021400646206730303350039810865392936304337567787406155860988979121360080537584280425434434394516476061187358359288755516203312564707528176352136577155349943554967566144920027687548429068574578509361499970508019657908911477576985474442920691079178568136854357543878047358547522297684114129164092383886692817478086561080582719297597967241947331297115064070743651960232473407793631395383844315825179149566457035666896551004520224345886462704934127109176324990606612105262418460898425082981347389624842553764763191688221107118619700329483529624718294912846222146461465355425803094290199970673741330912359153095431422289220959079734063758205142795767768294606642706342091075303784326949479042203654226523090986506987986536569377382280659333501959613586892343954425273594332812600107334140025500168589241714517896922672151504588938804877497033998972448436362616977884381203482169539833923461926721188981440941319626750671366244874339328986342845614206259374465206613767861993547190651928706396795247733774412713008656761775725907615907152845936450913159116921273296200368924128300371673017113225570959960788385164127617589241713004777854871197544260507612688422745100485335388529391955915780486739539044024391224560699334359310267489049094716974398011495878360370459989322266999804934104747961784727603363710941171468601091549790718169516107314974727984383080109633137619378954343118691844436030588371863464506101200126725399770552575108712816138245629681872074759450093405916192582772164529368469531412530093275542004538429883649299723968423650780575811845420442026593013575928519888118318670397465746517077175328890134780522129557765843245956671058460697118802711672100481721456172233258383207929502987191201546145322933759623553034692599305224997018042901579053325306645745159835528031301744010400221384503601640445791468119747001954991038634918675416225116586460513770506359823946590147912431844577540240848665321673916805864845799735641310657377008899887906827803777288425261491508985094320953049287360475132401723533269200923211231180573719356493513370462818391933056839265111447005993545469740553819009940095316245199242916721415557271532211275302107137728584228464140236995061124626926162245640712113052251552162928815791993074258591639592408372090125137050349549240845890261800256864108053809209831495270308202741994019451412986533372240143048825512845457312472974310232730911705480722883589868959571799968275298375577560403406154197141113278092806033410722444853528395725794612430144473449428101850306485757118527453652048108305314565936460990598317037706544986504958003442914858486648003285421305500306236015194777092793784183631548148395503805045701798965829848814461420179613536615396144163033937721356072421218610957733822089897909058682252847861482477949988371214552767815054455189318533868137167186795168830910384792988139743791685648319779005368377619631383982567987421529881276813901229671294671850117413278589200558758835010489056541423090904299242648158202410125137462030541785646355819462948286239145909228185970543724540358584949104628603962854031157511160224791077636202011444796825493811350142252099490385422193138980046734364170019950732433477428630458090989447815410726084086406516049195937866511430667274070694464865480219108067059776754846737336384695566483186430236053239044055987370131988066603539201132638617161015343256516417026822431597377411512143581912635038999720633949387163876850458309383848372805808733615799809541176173145764985310547001692091808309944806140985419745913687691614675281078686907190969675685271132346917130536419649302890563425205723552803122978834317828913761426629353836142122152381295420850841416945126676350405773151125556116218895243511499050450721491618595780152035942457182910277736565227502512569338164397165762517005114096436712610017782127937111208181259898161319543441725171617785272353669139389161404794222696910586147394076390954544117492020244855321771013434057875831006074042838955104055047763649334552445555830779331194474173217356060773458743424899209241284844164257281028857221038392549930099886090438092157067411634175381228037863224154498752700851800130516153446356360906944768808874385933482605871624199642286826854990068175769172948041503678177439804002507565413785172331430725178829378795558977780088230779992952839719355769160137487516299563238255876051677170056670632813302517775771831960308423418726590828032699979293502472393668018167782128677049345934480997411218601736027756870101407844623759008458741794931899585485506289562210881772679896444149206481249090980673002704038558596254469907272120549721941131757026593835958299116602251933127550232191539971585704306498965285937876813412476070321325114264020733245584909813321209663233211835485703152640990570013594923914679603842383558912435177058284584595756667506561014679072535142978207690877766179044204885881673753257134741397880181060485486603195593375624427161383411836127775280581037264175235646150739425787531879597881796368877206639417734747598413732523221959700862460354792060561314899691944568663754072987403605294395510102904988029001812620475179489092503778989675649471990590928793568425786119289796924401722856123285956589509159563391574989216110497245476806262695928504705485046348903081974096935957362672429060097899699630180320261811541697668371447308465512362817027022241604809887629383544756470121146306334559903627721545801644318043435019152050773400582981661232850231447594650510138926605749441112174059681307958993565362933727151813213565704582879435165653362917593791984520018084060716818512694984268928331272525714796765506176843614361239585778573920724523501184601854907357209988413466498532788097251095440703071832709323740405922926488494505970770082660581150446307061475582060557489629420997069896896515390307966498524368464113042214754401670066923602466257280517348892737233407962213191115477744583092198281252208428614896514410639384654340667335722941942525067694687597829505548275724168098330546576049402964295018224685716522924909990379421528163715422507146337262970258744162724113053338722271540260500936942917858771535966157235431795464648991011370935422991791233551849491755159594301577005398349472560244700377635203542369851687196062453617911169510215051897676563743412257758934648008945587753554123375577260385789619697690567143280198671755322093513851436059585475295959592018551720455124100622390197944839074989971969153788512732933796505654402610203769515161907913884095744999937453908138426752790096578245294067438980123857846469899479585304955384789373177167039973205084749387579751850768340071571977678129066689632317065732004042128014273327528434997479961908067575500080315483025386532986073165469986965902580171407073947374836022788993140940100480610749882007069280283339378058265313680148397810068803297512406253978137143593087167707928574586145560010988506943685111094895629589268354350841816147772884548719862028712094308916505147948978010322269272678621321621842535235098488889515569614824394324084088864768870999882947608973012626045489643791313982334021186326640106385848547013503734811959993618571149697419982436899503531405067047015477616156058952772506788744928909282092231753311008023509379822993287121833228276279257404949372117466068506893203997197420277520442494075441096026699551175053202668848647050957880585168906452017684446664174470153123437502297632562600015552019446864601063254522382289858054611853450356278449753587261351616215044976547594614149333668067966161041155948605289694296894572915737635779326078127705922523902335137679117182017862900268739897512795232515639387057519675372278793168486316687551944917846439817083994403974155671323641358252849518035915176801237899755639622356271387858570366214838925942321289712306209881866943078734024380775597165413170131187095805805842510284914408256859229175549659682266060714149180338513899001852404015779416232799702935009569811052728876221027139999885021014111456328400199958874021564615113792189172823240571527893096289744578883736729791665083744115316199627404379486988465691721835620078824223205615320766097521060376483394248178577066823914325112078566609518250774602112541793508593366236354265727913131798194116177983523718486891357194113336473053545568055654475935115453232577406906416450998584368898015099650225733301722850599290324611020785687058558842545133101634496267351902127009486531232979343607789679343789640078334798178149061693643209518786780587473725658216253316011682372792833238702118397308531829279760888281069086712540393904591175685852410957635182935188920977562728305901043502870334750881423986541377385180834786992225908686944697645039566523337413775352491833631207080570798699378415875046107506021078689002133106778229390475840314946166403345622840223422953261575653531698572214106837386005978572962162553054946638197585507331395016458956129044467099646490458619651050214980688050653371496442708405280686384040016613646555227586304339318610752112405073890439649221623959396411334014597925546688404818174715746656165557178649068815644600997512107596452076290042520519594837273546549626643284781653836222284515393237956308584745731289545489648755504547672905223145636700681887667850475523059861971015745450246498892227956167998224353204503550082664076603002223281881226569802145462659385352900301915146243346341290192430194528064056085165085314051407678555164294120411039663689499873373308778155432251294121769671781412943780078504892975679203834055593345520818493886167900400986667314950067941398711305703573309397636109719904260535205724297566237825330836477169077586604524165764148068326156114271502119130246510279395441055901533707556133805880001521478590047154865053219717501336341347675457399498310115598598999017324688086129579676110788283192096556349341489851540919951841978380398492051813531419688477739755980212175245720478873991002727275364040926818142443540012997598784609580171769814272358075743424410586515339936854998733032004580207300813450269293165912516999468847791140517430326479736317532568693134590510031430713251066531769088484765942183736921281825602716566494446122008692220550716277101948600059980903098482804265953949184431914805110588614007213471743081651519891470977509795708112078224987360443759167681586554031141194850967847694794985234224102647135405774179978731897283840173740187979003636318906162300686362776725154076500473464963606680238375924769121417668993307886088214506831327408721056307616568789816695693924139922722601270416870562067702632548831047068288339118326004575137507176124034049803404039322079662241715254901934083296106951135587203194154555150998046993722208847900420565923794566827018623890952503681933639242097210897411179204998671829848360125103544284837655930230672377682405976706678802114635028904229408076150711270537321750968168707681015355547190450068187758875371014899140916186283375248372914057882797953198701740938047214228274529973522690461856825150667250773606742491096926965190529533219660698738477032919868096718133786539045303926816397784989546708560901193765657606476371888805199457544516581481533609816839245866872444850186531942738991950980239649363134636010993777441973189205694602583683576623002503444505948120626887612603148590410866571432961228105834594686048895885427931856189539028102458323719013521925073434198446024698318790600598758329556535851841692616679228489448663798861788532636949815459707328600595321826837832353298771038691498451136958602087936920583729873346810882860665087202502681456558640088146560531398675586797377649708954934853646306880564419129402726853691858344220051895939053138203049355801324110601827539208369072151090448535234003252076549821225850120168006477108073933844457902979735523137551969312185238050578850348101164390825418236094877758648923049685896478910395320626141606382279224290351909059866889102698737796866356570087843350368266254049312329373770729070956219979849311126844400398296269864654407145072734296608568304784363181432696836092564096354701643507401804347154959743104748739008416994566332662757136913607212147211088801900254769813184140039994102705448809839630399430256860086843688581261489572503850771384608207990016221862649905251162652977853510850662012768100644438673772657189776084274734544242591189059563076793230688665503544103402046696649823803135236122455293913343777199683699844757305731646735956895160366171286810877800803107972436123349745239502183761840781197897686020256518052675802064545007164286558061157959575627547335203270115120680289143438596059422399835208576707326088755590923309322322985951173323602895497148641219711539589662931402604613059418154041177753639914700985240359935367822197584929737068008952193299452038160988994940612068644419346207621765380120390217739814744192196746515064749015792153335481263376157928597100207566715883233227475351851749051123823615734807410528550544912196454379598061897216201912836094209206961970186659867042324117869298593698167227396295373120256943712068104926258422891918955938850646555929604260443514201209747720046364774444838091189136832476533053572636037369067961311619054488257620157210694833150304072336415027181177723502816823567781949255941387322082561143838710288036391878033330468851805097927084834914454278680946483091057478126357184100331090400277693579098343120990081385650441782377911063053361344577703906422976545051781561648487394649928120820096558147508902836556296496682670965855741595471124490424405086445626513161181112540271181542951990413002413881237978405561056565695883087013031871669480923401326232249512558371891046487535743021910559892630301439380180741642611697808543058581502057831624632051452304397539135025444456992590796630524371215843547238779414790348657637507979963737467405209041285270735921309958853849406594909953095631762352436468777527713316638093947227353179985794639978506756957036922682844554643557820372715411423672535166652621110240121564282854980092604336795310686704776106848133491525645838862240341257075334810142128283681738593577795041792199011709254407353456711298100662766238167282842974368128169531884810524310554756955187241518786243971621635593333698233848097987506009811134387499083721677028864790983352941166392592698451964605183417059924022934471987512376484045354765600400377822977030922426238432819403676471160281319793229636482186672831857608133421869361081372411505201509108218819905370050950351858840589961457788642300440192471619211624088895688110727106241152026827847915525996495252754801282634528534017622323385386917251017624007666541767438535829564088088604169659754021353549683254444352125227499466233963872126940332093575424851631752749060369955648857187913601128146224776999730491796839589256485969237523504617179244446929756678460336220250906439033542329257968843881678178654708817482739399418563996388192585386634483409182828670013044758760013420133523054728987486437292594357295558979162436379790382996793985608568024074620707256247436004401623047975404719151706963328056793499488529183859669384152727422569369538201164453267531541736440653883722581460236098946850363833929848805638962275624734897662444412368623590771174639918130182532847842141678819295214991770765847779852198777917884511595446325849817606091168311069231194807034963151615276196587804178414735551781970371434175575191352531105748400250098553037348228193938046740569518009842249595984875020437745231269386866654014117148002605131425654758586688558289847709212963854885212011292769073211014645591856666557127506138997605710194571855424136860380148318378351063487982352000572251838315066097535699700927199651645278626030513925653577983382272415512558890093029031233872607513503681416902297791270435847843982336067824424082995184029512363128031701323035292502965715487110216942395048058931001566149531998561997404922893024856621817656601276716518461819913166043559947165315684034656806167855303274379741014722098600797825880002478414026053456643257139642141927499478741420146183990167779420555103945301225069105862065501520800464392999995564565890794649552905934587311521437278726544002249789431256324516553307519428670693539254121475093950972987228408134540880823130179535232711852652302566658465570690242821089622191903062281195102905236222674146665844217355911955665997798557983187298579966311428900580823183110888957248416145473333384119690033072069577260179416897372165001667549767000573786866454669230272017305978610782394957578603113932157321765719334323906242041561359163538754282447931122055993709414352347618752505018610193542164946207888593969116949579551541723993307059347744146159779143285120286260828340473402528437646560132199446114371659181314728627652719860166115973781285929033034567079012720031379690135735699278790251881279592491269213403332092630482255350913117022013574250837695934607976480264736061353174967003341499084167549148413436879321638475920906860603747254109337568238830946902142487464790006938195178252041017262343677435387655712864294452913614831471024144602770697110049955850974459842457025157306786944709876812835451378306936522812901761158426147991869473824234746220558769462992670231522714631979207652893062264627270290180481178066147521863286702665774681318337584913154709464758322148427986502369652734863551357006535437978910149423474270323933023565497622136595552928913678653977259690916478070304639723166207479012639270117732770192159120332362202896001514438623462322564355519003143301114104374898222260333991487323690402878905773518410098668659466892118627315047039579521652728335283584301600577335052568463988716885123704873551305495564821450047757814535216115189680849825388827477237567826884275846953675404542699160350806689420788739456910233779741320853026618464232660305372043289611130461596491743931133960579063194891388000153470088679573353996889935134652281753624910496015804208306012842953255716194957923938816841078242240244768803391932128354503537922752017836769671682338127911089457301266749282436050069521641104882293283614733683395489364309742667424786847911114951511865462900117296870429633548686163749699846931634638532283333451679184669159347922391233892358458189498523595528240689846219297919126062074414248575771563481833335613034883967145956434141401414170817707383093675059688425766880902679310516014435235990899783475267395064370323454838433311899232837725529829683458519499482218075380871359376053653558641246734998194199257477988153895408418383945034078417214453801522179281348003074614928403611833602326246855167497609624599178186677126556376785179246577614344334721717984129960948941592172835592521702144429984789729609380300608059064046394999189810099474345945921407924924605863509355527879600782367774426028087882693619990907061579537425813114083521573592097947172234073333333295973113809846653076812865618910886159988264642002725035993020233820175873637089718264259333376058322486257226417598240797431166919034224588038400635265837565711539435922754221290284585464404621042743341251977371183853512488961459620420943493037068395331843699877554788573614543751881354695817703741845845338712164012142528798064017250380546788828270119010429017869232344064282027690923264378629571125224727284400322290386652494714173435571479573617398742218229460027976731647912839099499372320861335730364932604780084673821094239065154113308354955872700618433225051577143089810418290740070671768168671381054115175073005068877826413774339160215633155595441577449123407602096051461354880922215128514076320086091930908573337623974393983321194676094103600276189419458864539146229878518504016078256888670714627542762546116136358288997672228118642816582735444733485585371480327089583734113649256231825291743499838871478826294204568416737228260022676574182595275678320532316485147983575430339936324031671173038207901664482679970685413005927408952354302650204051786201264385504885665440537385812413514703001933288005231803368809828668994037375435721135451071963976257169600421925334785885033968875909031514663711430316431568174578634657837631367193942095691061180428296019560710349422802077081438927556543833241744981611212024542703478514121300152206861510313946052244766357719651021464651832530121789385070360031455464333905525547164951185126431179542919525340332897551914980641709903197764200519584008838587251996808829740024310006965397272521229720681530125447198850362133099344877552972609668816583228499974343016838901597496776575592466829688194353250588876979285863519061479027712055145812485761482225223972693751856927200944598102428955499434987805453622218133755523096885692604382993302743846437891936125267471641286909208993119205309632933175110838135819954683202087585587849375916380373685831991931821452237391483016663663645986359692201619062263918502871668011240464435597391550793107634254323513519242758793012836454261053726623938844884021232529058057139019839876675122333877201932573008019811579186982842725449149599325399454908998977844743505392204926455864338916589303663928684154535990925897964398760914613061555621706243073300977308886753983894045469524396333883168220003171328829476999082090133144478626035861241369012706950650305710673901808749950142691379213341659863627097882791169504413707989813194576876334294079488973442099031268554952078247620726901519471253120936410959224223177722072018535845932384158817920058255764370294253968006344863164207898980929640946238742373964057816717943296329101967257668738631973586464702889518611437254647134881844179574627399204657092408728816139274431617880200342586439730707965757791724041186854113426947386328595205618989415855814767746148379497919961636316628047475892863636257962805531982991492416095158402213843958292885524635983511113735329756578424771086482108223056068646060081946402275139380176553042592626287005937307081944531995920095697039738204196629672305147861244809464579948482409838275334343981906448777529482416737127692983897604215625161300429455610155929921447352749281048915007359384536211445969088946341107171814568150809646244567343411653431036203970130467692862413063686585187050324399577468050880797722469753614748124879378363236571888727505192971820746817342192465830719329605202152063744921626167008064476549200733812906789960470819045010569438553980202662895814013249329252777613206519873648318229209963989959052244108392779254919356563852767982564214723977423657102106416587748671737998235042211301922218961381648338050875570707156447628497525698482577085386567043289680437723302392819654565843832464025783229900856065436605133177386647578352335100599425059546768650744265211805552549512513145068523930238564322164617599464196516222807234656285581499919841179951734054514500550043822040059506116721358928991139515566739270872687187390607182222703173168842724571197650446376485834097529580851171844991915474401904957940227000660859250125961779549880431859303746015362773866396077477794423616793606129102331417867406601925742809260480104778320134777131202461761282158846089711006559395300304907627950240821348381909386807318107367688089736480309666160703876285794967345051650549364175378937398356753031683816783254220431815944186503256043977084122430137740204712375954690746229503027207776839444702981276293500960590826625695182437957409402988400566666052450944851270109399507018402630430368325100872510010363728495611689282425274039351244486619475945690880142648764992684784855224831878039386133524159957135397258940399924008191457861755515672824586201154032244193529058021707397329276538366922660009641647460253371528464277076099884951820990263163387523040733987728025915336422685676167136403095429125125479004674490354966967966940293472782164441975061004024698189759460744066140093963541247021970177674860353582029669205593241946888614065738474390541316956910879471014684653583127269090358742254020854526380357340312752311450978303783981697935330888310741250441195571977073953756241049250815988822759956172143792754616506410949137153999774720073040134831372940931653286416434252635182005481355108851568569560340223303450763859016267940479677744162708693767460493010824289620435764117341384882517559685804843889041103167821235615141286978133217488685390466825124782733178637373546932377802296637785952495665640472256839406018862571920091938112505473059913278532039358910664522219766050844474512225460600379044773353058445255197080645815706106868519050837941643897089979195956704686358431171006129175465532784800321069234615111142429596611179410625067782986415960823374157780905153297059658674466229119389905082689826809201317061770657049797388249825157855951387886509951834624028855342142913108853237181792442159770599182126292945098563137677986404434174176624376530346487344439281485882055733049437226271110307791204934978925711767956825056258005251602735902394064879696156984026328583176602976762269334701432876025217236256846659446014500154154836934438411937763796533356200817704425727493871903542161180292262992077546481933433269787813455229917427934917366743461901915410596521228156993713153488066903964223572141431931171409189106750318808689336463412975813694543566550585207603870463903592664867086490494174236778397053776809178947797273681078776944924889260799799714208590797336860424393567854900050876005599522597053084008828434689806112229662806711581425953947478803086264506092586320560623452655059066885014917437600854163416421677590728178547094009292230874457076817037388982767168535961873769612072777069972545699407645429869623875710300305887675215127426653363219811148962025494882205270612970439347080024937095967164877624905832882940547764624244584731266371155051672337604866612136241961141566912352726529457023014452997408757715670804204458065998216413935350013077731349512178486322057128343498895891493035004491073981649310493722052913329052023370494606484833149149345564647398238780067492752962055859550633597503403475150706622872230238055262951649356309066562612413543291945462724454533752293473322495188270785141056074428633217056845428734271667256031383401322719827905020868370522651156496081746554866649188829342338255002712128316383354980073551856108085815658054766296917751607585150934408796700126189748903928153742769415380351301620458072288704694927124336611672831480238047716179415560842094757103592481098593426816955750494961210856588091135286900752183067304960026484329989216132695966898844092248865826334981088627501137380316217368948508446641119627259550839540806420315225135569228032214314020276075452929863059288653128363677096416698486513346061146905603888414592911055407221885621083507084122052899337366492414008287893947482396499851942527937946481786271144988847282034558748795816171719737660320632924463092126989431648048541294550900959692381259599391709183742137087998196851148468285776740099238012253938449635584882554201644662787204342029477155459231916784931534571111925788473388222838933168382720574420161245638153475061197005778557986806043818750200067438912010467328639081236323745025705021780909706666621465448332204200614955869800424851008486492137660293298002911343214779382157412883629593545611379491650862826149696412026779516148988142803831932423884785331286459774416832350314038027866605066397476830532888417698648208245800333738871207982810413458291534547357686945823375528060101584959016731907635857570242956462542844498966146582233404841484931346823284418657140232447821844203712766395141900046902250225560107817257922012650818154954057139813810249438174607410074287205119996167405386020618606949244536267667457310191457005474916244155534495673751468078651905350633425198080733591482401579515469342731050608411012211292928214737364337054819753644168286988707219639769153321643997603403437302850640509976828427106324191885692414278045578864901899888888822858016538797554783238721532601288387261380420171883084149486833791085360484181224529914575583701771431163107395925235718552133328533844405498463293553702832015489923803376091940385037919232527223132819004139770986448713078882593590114607606140116847206644587907216401597251886828577298726478442044527422472292993386326369518622891412033620308282099012659666043481244175420889558265038073245713852355133667462387319034618993911538348531994196336113321511038960484704004228535388969264076965702895640983041887012932795370882657051385395421850933014180753884258940023902114781659751709189757882496212037478521394396424937566754844185391143100295779063935532889887337810887203381031392774935764673757883579015883870320374131329749808384068147793554264042142981175633820030161924184347602025166342458298068031748312074697769427824508167177209888948205302020463029128536429000727744631874344330685288111646824626667037108861772023621022139735607729228266982522072859863980751037549354614026088772171960923103566143580377104325759654886495225701825347548667335254504921499207447858371649178725050816398537996717368086349174184037062246113381410363902925413123170056572682073940858274431912365532380055008286851426356318848623389108978706030021251344096007754151875398007274433305749401781757894193372748775302740071234529175311097560358619428920329512062514672459890411664150779297687486470731054313276393271488882493995005363641488762292227726574922439023709908597319128248757691096063995227952463192780912661725487855919129857974505379277909990482298779753120787347477386710353546204596934452749616692739424723315139683941388954458548378526388327176651088420013635821012454039260381920134287195875019930745708424817808019150354311489528291438114824585275377056308726210013817922643508408335069895714337939853591540189319864520264060933271647212646322526074039780844101299084620900232838527620412650473590234219512025320459248471646307267280104026076437371246544688940175780066458962858755456902522488301397225352759194363035865986814664592032372299737560115997002814094803215896452357387434065286113750479833628167868289706271637306425459518899407307792423270523052190458864125241731076202644288993903067829422395229429958455103670085435424727692252021080857852315406282578314156411111434622340472154852172889651845570874232744563677753353698179376670717939532578819137631553537039780671832087316748993037210734968322078571516964113026667403793482726977759683539649090189695186310713810540018259993114070731339397588922147915499145557420952848813182002269971638183262735762504647493955095472818961020111245403932827923037001805792032296492858769539623713557410829105236708673693477673560852228249060853271660981555107387499809443820438761222640142181902890715377119070239481203220872359475257905111607178444793118955555741938816988418011557451522839898753348435601463229229184632533717323320366964259753374542538155637527961802261042288039526522485553285305928682066436417445067933913133434190214774883279790671286954728768948486263117428006875915909967626023869477998151323478581632964506152511678474399109428471604898533561891063212571178980326378193538830860781645825319790156634858327573950959707612309643097834087829098314250156249383281771111704506234740483813288004966296910828917058383901029536169262524069455419424532335202559150912873874492435010447961571924738660525949312544285883466995082408005343486847627306282033611280554468931372767197885734573100380189908375691135210959584987077086777990442557265325437354617818574880738244332194024810050035882683012461429214620389517135874854589171804970925254383074087333640611648299922982341865561156996580735929465209189636384942382069846772045155891798434086847267227127697958721764315990741848212338012369426433170745731895564251583798437202740858659401512169401444355557444793122838037512161397947134905734181976902062871759799404926026352862945266690391853640907732478209099683592940913226980428145190398813206499234507467557066604688022575971118901850590211898912287154162180897091956267984083333065272447778418121803266351456771102586697967822932733796076171974526227434996341718051644122030113219499467397763586763144191660073419426680160897259763411621835124681979242953783558809628710431813835051881359052403685175944041980857748311910688598052484765566942509409642083786828692886379660734781033090677203042344590485256123956690297169217410314671887064793030839721372572283606748161895403523820532332250387151297852483439392522404526909970838400573597142658640640802721896240345079908929671470342453067918709671142950672604029097372606998095429790325575890156471090613239158652212620945156904876216654523378069437842107894308720909506357644125478663855014155675852567887632087214863505682475091498769290480705640001137978999526034325850258367057851444844589432031397755585491325775953207471727678413388820943926024352098463241948672200559866799968036822570979366325009246873718233177698918082044262454590131780714221403979724324563102884889543095235426844737900064823301601352427562310271555218730161739359355685025802214979986529929878357586841055702424032884440743002242630901531045247301044493677977339255167468839146471801368716062962784964286013598657742550087033088188442125985292318299889780565244951732441345191600898996384184981400722081230206690064129945146481087321806024575933954229373528287661295804142593652530574011088579833961694434428628918899992120552962451965346204457820459908041329214161067380309513556031643992544474843480914262611733468549325695270441389216969278488711884439553533596554839844305590848162579284092035972833585807494386194075138146896872729525836142463202610773420098880522641265713572459343225442050574091934387052323514726935792611425821209682123357672790493937482583671419660603815084959444610578626783109367577046723103123673754066030573235888858363756001194017931343908977796371677768652441655734438072136711348969953398454454860757122860931854652666683170124760589669643109309506197076919789296871580473825913338618106858592702165855157802702989312005511517250498896554443868416887992947810001318338150216431551579108841208399338230866392797085475710309318093303634464460341045395921119482143814395317338804556579756893633479119605889504846380001500404090564253358780769273659717800869973081186442991890055660499429983599342891172529047489250241222715199986801925548054931752604257223528019337897520154278599308752892439852021774388912283775907839556594202189673428561800867964053170037266458688606312297373943376876710666660954212946749010388158787035145965299176761592200240461254455057731821903564663304318472896613476832544037045683690389013378199398742641444995077158973789465079069483031382761876792957710052755395201091720140975077264861454821388912778965963523256802347085473660619874621707867811429705931308499292073415957891777456810575307641283103343332105582325592429145329539175383308996213333305647176603254472165235307088218742190657181965309474495173805492738529339973885963656331712114375479749540131322242525464965177347314464757772665013470137380383600819007247030109767149175491269777098437113152773697120970060493999630486771905191492890038423357338528642541376749346801867888942434737272397608015198337856092469723888394253199811993027911117986009702588332460309768327688227601580803904805557368338355385457560893130671790338360460965478314233548632250612818090926119805273518841554366188796878754766368550092568265445115455829702461911343780614311155679458506870651982638612537371766551942137438888500825515154322748359322502198429660134664253829345794798964631390625719860873283135097121492507965261777274308020040118563008132887737899818897770761244683356463233901071116030081260210463212115330080947172780289509812618329075723117694516727247194159353874084770806167811341819885299346275132097444963007681942342162269899631727525216483850557156376501383914744750033677620562223262998238826696500773652234274361590517635720562802727247708668975776855969194936691477460630298235782252734213811812382315018476751327222785216692147231518306372926858954511650792322464019545374414143211912189630971908674620048115782886042223100901129684347225572721196385916208483588877021680354961492607400826556198937747495222411898393310553100624188547185551807054685993436910696594216597183989051585504448606101029217800316815075862332589646560671626781972619658961238241220679551313800954633072884632471692299304245865974633490472121358738491289044401975208551474903785427321016086897567291607987413144112171887901754407097395592663253346778554178373628979982503754836630696177707768150186855948246456013775455196719662049582630154110149299272320120631538336985436747795019002281308728956453609008876881019650560900140320906820948801021090792156095533317790079412463931075310714987284409099547302926924210743245221878022913031187740212890830986229518978592218873237609327668277496168275131490437923907565869832276351464954299692329037049813354481415863363486200910099907203992935188700556216808207605344246125234209724320540811125590326587520947629073430682705495908618944291193627096052731311938764776984102844078740216361008666449960212052624453390779894764950694622162440671268249223925646130467901847215951663785354537020907005423516231910491574565545939486810305681983833267435184110614340658527463899604070385984074764648589985836180285834424705810359461087751187884205860579328909298605154731047230884979390346535831461303792518228917443195861733891443960653185621701141069477115018024871544722434821368798115619822235463093682915164960853438364328333795180453674791022030564083371707614431121777309273954470524701489415242800678418931762063632991270379225826545805900004652851044715912136321268787863330713005906644152425103655747283696908148505590813661925707888968014872062167488324037849933250328479646507771702479314560940057712356620597629944418884243569329206448806369556651646498869495603237889698383651416914189219058969753438823114916191505170613165864858895973527327121734692812456851761828801493357508961864100274455949802266378564579033640285681392440839402588050782095698529705995840711468296812068343185348626898008046263851025682317517075738714711360759431316528064170166143882751532934553582223133284984395418416683822996356641313620604241597607713777467979855761681388490274522195377864226777095520739277612833856644865807403608921007344449762019101819901733853007366615485805020078077576690629118794000931081316763137468071367253692748014387875441350667030460989838223896753432227560930199821958668946523813511569557664930122137575411382665851252257424297508485589307634397420166347906077386310992932589117193049009802682699448363825033839738006368295216574537640543948783670082102589753327185145787629712055761175960635426987149030728225557479078258737252454563702557621796144161094542092018971530740863815503126069629970153914497609451700805606362165174620181597250486136753864732972344214255055129684654719510383473264306247466503148337598119493318578888383554303014832940939220712213549703535234026435483915601292012754828313745603558794841361403110176711319954265898793450857100203850286785050042922698727126542398030240360224760052956088793875151676382500274334420905357553723579433967377889967860577539658237219578500750262578007290890374810435894499578317277426313303291860243849645102311181305629409087411196466742714752660140455241977332240939223164693274874921802245438417313271033176657607652481568672412570637411561759523043982410052670513627897818895104755963022834107611571674465192172076936333915271946315019010127257184428405399537082026295736271485973984418431064200574414634854455318927545589895456688449248310247466731732684294301183469817603111989572680638335328337769129110056738099538397235425929685050818133424755741343845591057501416821583898856988601701940449392983129611566022301487071196691209258380198617745761921735231972111583945898054153165577097211523931255565137676463953618049957616405469321392151211888655447584847718564738296869231084678795744419188475358518000150038486057631015319859060136127043970860980000147196433332035737082008829493145666011461725614543390689151826960507032109957861803759081931053215814412435004834887971029219452887959995969369372240800860641488707437902861341304561682947141390401625517444853675016221465659448222188529603418472071123172914485996424494554621822228486783950997613612965007953162590040195315788784676313758679774821030468167672157045380828158996974479396566445638136453044368108794490421895905557708978107239393008489777298094322963729535884188607754126918759736502979467312405637138790457500394959839085121795721079042063678789188572523518859032483218372187016277889624894983276232629115256071700067197830606411632175584109576661959025597754386851441155620822368437546527690847860603115685669684959990821914583742878223535315453421878829328768837838027389241275240488050395340239831558510789151447300653671916587473622037566305105616986349234013059202350488468831913364301880995337137109961843517081241052897829352880387808195254423215499866652659880938468219292697601907594074734108767171020034131810734656693844100348672695250961857490776818281969104431640628687514972945493696642607806438316552800526458760186595850533871296330700855363912949928765494277681993044007405086533256201555766912195109037023894304816567269992442312359924111165546280201459267948916911434713452003776241560388654097221058489163946469712035369493054635616787643515532195973733803500804615723554788985459754967127335234254712744202846393324608504829085009414106746977484865654669436398239613077564819512660534950511584436534354832938881111948430616480543813419109480399153993000083291431999375269609482010846330035204232800692200104214139909044250092512603267156856821305669610907694642334826917345075598935244169800251833026482506683197527307366458134220164314706605807525327046511129020843390028382808002066306571395805842931704177780046860193905166864112206404078192169908083300838057004049200036038543637578986568591973846893341118495386428073044845158836803573716930261433456844032592051514335945992345191199749080320615146016963183110970141084990807189072173438136411817818944676272680209742047969880938487379117706781098234177393484540783346690592928852891681569846069436690883836854908114041309477621527973666906419050091170149483479723412829795905817206289100411380173631915978372816313876269999497129466343118322982686035758177753815858991961596809554899488747467748383164116216345012168177238476301707713049305075589433008540635272537863788751134471003877115521898605504942236881273382053982607950966268878956753528166367528818762629493012532552725135640814494686300409371317450248934728437822990214540554915839657533401618192972773951159731854733259636885330862385686985338499272240086020739776274649113953102497987527343875060856860125168029417791745661766020083574124565675563970731946970212097316647191303132064839169478024230842210867629600848869456717260783869227477240461804682281951796894375352566463148921895177880743621383643043602516881441016202410630436932907443640297548451922167281041085063545213247859466595149749465957798522466786600613074495832744163812072510635463837193676851482650502236621377172052869294098509394596778781940287746836511692611638245115561697930857676640294900546724475035509908545088394947049843330371601555359477595809531975917862894357249162585528677967136417722788223518667825192930120439050670093437809867470084312416446320300066427096230860249988561411160285759942725145012866172434444676704741316487346343201824775196171054771552321303170842609314306145593435871079606801481092056601056471027470678793234717151801766829124985466795187877859713259699442798244502381225548146478526367188524445792330405748275965135567227851944000025860904509386563364529786761396772177085202235001586887648008651432132453416438182115990506000586796906292154433050438863292041340698518189945067194639746399009974004505326386793403856230316600267784240066656275453601522183206589087561467176933058973280975984094493875150538996140424156124432549490952135415751185013599939105919581975234705797917601825140065082329097610282442113794867557991622784391938383936447078442346745034815592525151200494919050410681897736862954774432554193926605967924657904971828771645531478794913870471722091618745721252313550593803073748822416023137648853681288892096912409845669269685485142278288325518402214445203597089899327642640016685793726891789508995846547875732659502764067482337423779630196268320645119785489352969552807004023225064335055229891358808863935242502256409250628335523039022012864636017928599086138341930489230890027576228785515061449070919670083270864155203208116945434383289489880347767872869804979186997145742094990950116492796241222018720345999015232891250473709731911496137108272552975345831103064808398856380244241388599948373934788804154577756302642102573998343357722257375900968125679498666565448466796508814349074728260985503832652064878826831961389089991290637155300042643512729876439479874530141006521792635554995411760795025948966767111956368245249428538458091965470331113507826545752672922486228705798212001682444242850672845274906910032583187314633855318257202508878656019213082769691279465351033289125429178580428092022025877516398770944215590346744418827276074055541189402213872626922715110579255975942096381454397227244137226097478069034487033071611639342671010211113793635192714083325859411171086977280364999265330092948246116504235651821407638655405800578861187098499039131663627783973506654228507969710908680217638093790800384912003302679048540224228766380262520779930559474288912661863746150076215501722717264887765890426998083725753809677163169201169889646044399287738650743325808135583995476399460455696841075708481828708895608309735812972763096572860878789842750005178937152074946216622917700349970995682991657103653411828650183936694103316943428379186657243476301372790364379196935396856811245839756860622761568016322376679216480583924563007572151173989708706058194500170127496896169110421109187602423692130263165036854619758664735511811629586611860347489194171788166465997923034253031566234813985202103672329502771905866477378570387418097050107922201401891335433992107481045281206377761108131794351586541463290033837886831898729730795389278916111999320900612185851649630617618144508710741638586302558144465321230580454105000472183620867394672884692735690108788791910672074008308331321978595780312360421939863212271806562320493944418426619180558533899636672686066261663355857292757267814702051053843556239823233335220049866158928663319191149140701677208720050890138019083946704475007019710450572452950060926299322689021209206766348868312447578317912776924993238381158229642850998524293887981223360892813873536001883282948243440612387690981546416476210028352199000916867523351007537167624551785260995717435043468574515175314432963385843751966197788377149154582855762696536297136996240380334381034361978402983741481072239965377783139080359131024792944416692110196638619044802867937302750123563674421135472576427956249572409210406366826699307065614959358865989169384225893869844442597839117715355469009994277134980624817650456179618965033032822300399536177423848365024078768988342430791195496153464972790398560775026773876490119532151635510685320696419089455919035420922891045987226184531105209210017658213867591729928283787448753894960270316280204771076293871187484454694016227066524000415832787684700480678391837262320675193863172730134192636776897569954780843038945921409432535494146027049551344875447696665519969675532772298396630386332113698003394484331358161817617729748168137788086007881717048645329378630811416575024739813375732031104275903478092521009056154273035859274138739093187805568808501244707845999596672709678288376313742686452255378995063475071255767915803754593190994642552581071884009492311574501719775920300758279225526630482053300737054408558571526824540617348959988187193975184233089101027268545356008630536410998273214238884164986281299109770657137349740055816529830143886341245211058216299528540990235846195989680534515297197455276784926775768451808911194431295934949527448727417792051085356704075806936150922336465980327718203674789521743111105492210122889799044361724097651527318705903298303625518063749141670085305397913882940711353233828086916098068288205879223522006593760496576192461369121017341422432852918431291339978932565818553439019606460109846280724203731418264030286370180400867766261027992641180587117968044389662341300919463341765381216571123330625594512657516752232346853519962303331895922633041239449683551942603673522633536376806996094442807335395468630311832172305922962401978471623816981318404036508702619650807152495899751711202210820202646966417482640190743822241706791115910937920207476683391408810695295310150385633699100146319097435874322933941214106879570100934896925795026266052177838215894641361304973301670693492045783828018381086881228901456210741534027268345990102994339641098530624448640470974588971290420640795044732296477526971030129526358774900128928576062750435784954939010960458969002724131785252961793726205089805813007140229004430228169961410815253856758618952555882197812895690022912986972269169826227516238909202196886916936664564508906787772519732778343132921663237853528498207562909542552297436255722144757358012422346942031151361581890672076928992189890837090157509314018825211733593133422450320435422671504592035159098762971168382684543683453406736430651523939686224527527475428927285301500859263108955797008615459938476191472149365205174443155829008619087558576578424893319841164814021867053380084653420183203335080319641125312492956776337141619688366328530512819932394233267358956662815454924906258308330505699324491520980810070121480570255946837024494945728428456768784310354920270202779728195892778639332681675957094234601773796627691456309539144720200091689927831616970053110925054908222129588138668226130575547130022065008252385517618738063873131256624920185528223995269699345028789704153086776856057182224176963321848384006300981224252237766737079027167302382243829163434722181124914253011010658376976572188609972554543417357442982522886294028725485378151418812136955476502003244490284077455872186345178448605577553545717006247963298739594249270281872978749421609485928958166813574380310013794143302363469148289779592903612125091943178441010571297181147182355651427286389282802789386096339402862310244243073860991658407223978119676971845733410297159971676436771070978136524570325968628420126594464186584125976976932518952769545069139178295023437587255014799201659710920935263561461534045351608557031729336804481375704976069108393689230947815268254301484017088031240442939213007473860284594155285598921437603410775225134340083229725922767060929676782026313725211500959888659649807712262166603904196521129094392329213326807480269652083310187588855649662012707513701125879457879478723546558935029474644791646006771661371992944215323662594858381035699987305853482399462909547565927258551031510145106123686117192557008247711932239995053854470620233063222069464274228559063338087228890576425200523596901938532688740801651788982677427978033780383845712396027432459572088556220361385839444930224713516379743681552972924774864339796235795440620095861189350622160462141867331712189621963586910743942780570574099002336143473071035420800419035289619911006366690841344571275960932323779984772009979537290799840285759829116836359224351655635909575011237590748990934254440848383540276148698887393040900183876637653229943287700268567564265865577176257199602341848666081291283941935777073825568901967112779553373287144521389498260681305441939641234101471261849924909532710976086152039441545780135327744553485705841575292483207869416036950585739784177876800559799205859413959249870611988285885757806365040345887324047608771006264835699041342183063450549852217071203607564848422112243986350293949744765808183878844016076828269535154619740639687295412934896811220695495120294443283347954410264714965308165124501593272481998684464812370893832042004504754390012390036525499516199401091382467545519767180968542340803336781625282092984783256002933635902652207674789541540720026708286310273321028814342943894853027461342795495501559280022278340292886045296162993477651337216455413629983687184565372972081655969961912610106223713999161653418278336161968023745886104904549872442602896315494000323410500829181873912173270391422030166997064531308329662702792927451523992567157338037567168368498905293499632758952078241310663684516024003293188256250137551628568750292474963043994976502264691762192987829364957765862683624151934792711571140591346974254938776271991405984796414582569697816789769678153683178735355825367744801154811969324503736786170303482369738208580206306145813523821844562108029044123733491256684201131247341045787317488409229735371378069891913377519241636898951053048500525459977249689720698179121846999405139221147871518735606343927979988508931672027567560429446837045950118622392913171207563580532290194663639394752134423735229020906126234695020710250853531999427241722016113472762680753017748278940968410872888021143275805201073371835406879735769358844540577830619211886522391754983554129378930379622758929585380790272419492580377593652040920983688547716579563539916971989972740373610071513066954393644950940750138286375999559243899722051021076625169494528818059192552626125455250317175344794398686890086305421645240321958126151257801274704822901317055133022858693092955105525504236513180218351111327513049001656102467528303168549447389038382787372443882829475908928577945965244311308165969878837264562426244636532003116983928684661407530937579641139364435417386174034121261118159621257902099522341550795977351767896375099942163958063792485113674212909800307665602770296133321309767073655421589773703874602185010049242175748834951895691645540428745559408337789712397354253037791491718409934068066941928867653591915951428005695096990462641257449387893209149334260829154738710257808426870459145325846418771066205284653137174176010950990183953895960059516466128164542289883168748888181593491440971328755022673993237105300995515893347059323986452516847387414289491478031548437293116028112398240926761981403841653206615739712142110442032392710474547315659664497621550724783208855943968715322016636624447047507945893749935604772232661997484333640399857418178009023899490476040658149331758256122255993778592476630059822220962996357675143854518242971647831889093945940465819615236760219089125586473396430178324358764007413334723478466326699489420624248681866721859871072221198287737576097949360885679548714331927746284223405910732875970097739668420937334663092644608084060517702469438192696762479559860457767657623180463599735737179134342908446599962654821704407310280085681256131268149702681397859385406201831656263089029308269722942973439814839758247037679412480340861545287580358968840836995286193079304024451186552710325063189569526654744664111678962249715148996571116327880423110752359721971999010561343865719478536618509750813819457484237271035202026616675751696591498635054364817724500748329621512207847003252094343128666815849039123457635726686616910011190667625381444911014533132610128967833506013694188372703453184407418442709508147364539999538728720259421694791693962229678382148213873938083009284195278400232192549865227591376128362004297754359508036273225551558648430025977729781478942530612018464378998564011337403559412041201717932981785479771131356028400228573191505165422673253628526843542728001686723361909109447377089841322458147458827325377388050471930163286017016406154485816681252601530537794407929901856932962490399492499039145191942732886230061214033519645645646932515943152167813133940398994215139809152277607903802839027627064154866787250359383746212376308942886300735476407604504077542921593965228410413054297854316381106726595726196393017286944114988200274602399492800139548419453457937406794585700390708469167826550057053683713421503506670964835319041170115034248897011291290318277596368832461716256593125188073396013921582968453684270684910058706597830655439085293710836104608046201207400944785797433651639110138851552686185308659114024527440993272591297930504886942268647827488030641554292579716578482112913495540484745891318103966686436785312017661512322608784059395974003216611650681449723293082292618771883439452037527256534202102743135806013319170721339495419932456850349308917520934702690028643654826681623614697694178879582730944954456503317262550346804252598150823113240428393997337855975542054754547767652357022734006325701715415111774288670608747138825845332279975144741902681903716301839189918486716448023206687501860026062642905081825069481254386315271771206499536054441046341249255046724786112467410132072817135542971372509429289410206528715953489632938326325124474010663388934685912395257203698619352193291355324298815978165395321260409046820545246940969051611869213589908958304209641146505780493492817164301399692670096023575082244883877116000447551313336559175015649881214310009484269132065773952634535779166899800262898401091652298616592844668099539236802952219008498168975613324397631380704690786217128414671629301582760113513355922703481018771492017518196113106841496348824540900704243962947374826926995120364259913341030238810077045043238817358005079882141257490403450075785642229857560268040212502729287950152325185515499234438350175619017106866251516679323193104350609447148187444572429978930653743439924088994308085366662172859925288528461493730974176337947968462968479323357980394159164902342820683989751250037276756353888053769641406651289117221498435750210593025252648972157515427161148640715451197721222586612981421899009269216438387997785566524875581858377958812904148757845128812711380547377789481648828546024984052085720361160991573131897514705328425256608822012858055227678479812738591361125705496230671278086432168412816471405438574320103748160372965229212733223807386991486284442525819148337082334234802867211645298718094694815247575928982067760434059779388017859431889784143817385578179632030204966448438536762648588922060192277449921094580538925211360657939931124328869645394590045251525282634239217906391796738221198190772180937088291997502282830349875306212232720960420858503460406635835951460594277322650421222858297159886813452247153191178022984729090176606057420106537369286381388091233169121243225522015187952009019855049358268729483617540492959597465788089860025569943340090354688287415437599504501332981857581131635855830945745261302712055819011804148969105081817153892999943965858024695667365754760610017454300810650468925218344628165858318803144298575147718776034474616030837139636812766390853342352247648222908458528342239875631546153468112974254135300234896890470457781055997985941619015028272062440359782750934320535616504597687949666945428256591608372037302068252130956695001233326493981986240613177926900210614796278117554135592258516774383523580980578327527162392450606149817149789738404420627318946075521204428365633762260479546446191954363282200323493709903938577040708628423801310755888475707850252844337939145533858136233033336113562426618515610383272114302173231404196663068224430485344272100762665013598675192545670202992987304147845307372812531015366384185013537755198389043680745126867883384722048200343245426475426255305011261721025267981480815406423680687495347212060785732837161138030746482184026915965996913684268509871946121685751624580835923540231995064193039120053822991797769401077407143544925703161856117493338405506586963933704198704202140839702257513679515272811795878503476810444812355813016306004801179881664696495299815753959245603132536160671041880050598114401097651019862266943930074517777833901200743130714531131446304666292575866773080678789965103233705695456694361992081231549940056416652042726959985643541958914992305296158121966722778956612386244808596299155400084469662982761049014691955078938003571258754003231838670386654384578766638962020751201181057227143847903612272514850465667697031649054697566256112438656204641676625267961493249271316511041013345777652790418333525719615447510374749877652223943818164824440505874748925086894143677277949766005334458719190904603272979388874607920359232753205983335573858154011930849401312280105762652125945559669434755702092592172780616809909693146294067196636658014533937389160868625005060177679415356623394094345349032816449941622448396051172956969723101801180884172662477840571989494152808600721926555433599351099259590205294527333468952637230243114450511440109051911246705938549753586244270563801269288595951852249434018664099442835782993675152704337549243937271316010125223876504046386456314732600077824867528864121499848423561449235878326789811646860631288761043760026846551522858177490128203007473843857098499346853920037779700223014842680786082830619344146846076862181499753374301265719072792070708660625338873312099631405190317222943792430316911887552899249048734227554913886794571715636338614992152055366327599257664394152849379998811226690901565219572682766323180706424177766674728557783337294301612118977535583526546568793789739853799619245889198408551494749295913842232147489716191301310702226699256354357399337767151123720372728551660697038427973478386288365953628270841640849485840983433625131886747954611179572600094907408027129444975912883588972297150965770360818812468611530347974305602286490810886994870747979285948842990798976327365681990923110610937646933822842041185836452293524475687664921483366809101307303850037487702694375337615762168185090760758057023915753662906178249700812490506708092834955435292868298811446508494541997545616237924580379710223719453501671723745726637849711184645104510572254883948202598201095436412781191214008228936356863622624141129356721241965005584004484135449471669062785728015397699490246443344176419837605591524304759905169935358111298955314291429913174059170216912972431189904039423140532362480219504821071667185505611843835456010180669149323372219214402646951273769524913731859701498969024705595555099007635086931300589724810309942841399834089980971627559301421969245405283201744717364771037705937783551743612854875016239200066228224398099928238957872264996714320585428920193558361684572109868239139681413705192203223483900537586254321399351714762567705385869162200098323859479755350410130254415834711886345004098535917019575399674248140922402010281977939399124898940880575128569548516402818890599474213227975707979992134478053676302031450402703276690986807444308744931404387983850622091837193121147469602437256265720176977287752467594914090940666437844826352064506611837712255147903986906153767239958845057118369507848227380123239836651251762535111784309896012920000490028301306996730988690572057775193272091696984213508638132984510443698857067680972051545904934625084409617784059061235553099894611106380608689384231222335364884133548787425965845578952103417937889331869610719492117769477784988468816620490528213391349128133611145022736951650697563950751961593872030375278102956919740162187900552400849827684557539620984521548744188514673700700706280342583826158063405695035417610316478516077924812393414901782908610899950762395967432618969361165736758615171982730225638120041621310673838913343741804162509110344017698353872351120947691145453227450816404019985159074013782740323339962707003479621999856988796205996481858808751470527579764435497955260016535003023756772756768234229073940661398180340203187162737873284841661550711064780427747086003972771949888973315269304327653218606126349530247783763990116124098446180675052833481015561220952843354655649754440889473343924025078064785002897878325992897940695608731454233417285830054857352301135936414850356085833440697166367176042556280639290171281018077752789693425925649146597829608770502919768488369302585251867405749846031949171490951158363098246974277932097897072461728716585382385735402840379763103309863871861946963440058136260196876906495547996216003717325555693705842795188930170227191176306718027985765249216441570343291221781379085370535565460882419133123115351034444938822382194604767497983146882869022198274332612858375416925901643918100469902949076433955965505423870777968379671684690380979816464037689689646187072900292432262196590624971196650581412848483783643052699362295212208716358891497782657337288456416656503636247910184254824441653683385236873813805593529484126123498636873862345436339183210123991854969416518300880637134671826895400039359450622819397648906555685540789069332374215895777454130377012020515098313605993003484660481541929015481604473002858183857844639397675471082908697731192732878070499039661487328891286757604555324040874833368671108526008032819618832768446080219305118115917829506536682802705895732602487264278418707000725222771700361770717488760510214560974167649127727359052558916374570435612360253777783173480641815959582316110576128711604041941006725065177384051254866891430394604592721472987847867738317483811133634338625146169874738235894237128011784236950381559999920173786691740024286118516371505936629806080089769660497709979796166469953585532176601663010701428561072870695070284411881518487371535081877139972738154128339090818697755340335668842372822108760651030519138797469546458085821958149080589806203418295309020501285419874434535461696237634421247559861297655662889539966767039540270501776594667743127150190640816297795560892792469576600006522083505618527594413389143079669759309486741685124654073667433814010270662374798720143080929525954408488761429433983507146723344200737912409687844752246772961796050081753320896187190741391331990768339812819880668162989194744171733968043445110239385440815487922737510658395047605359824133755385190127719663578937385046252066218885224608252937438742059789122362995315023615960520204460098042131398120150518433295968708373368035962027701219790127042873253778957908297269133133683340700857722232367867827455718621873862592898099453392043928488100477093470514978772750522762073211422679308810596625761501876577381211390110064608073929882102118476521719850277571195177431235479485897623401888509141449298225282012170815071764348670628708830226467975545117677943302811775090846482888112814272980504981570129977369748817093657303816704967287160954512510819786012687242277923090186457828538188739570668591178092327656384172289721958793682216387974104975132430865955565415175310918489062929563508740332429899571681613979074918629139941185798424172709209743714385352786758893828439187843979283595907676786528086045534304653128819340379196813668190765957073961926173307175689773137073281678106596739643021626475755470113982444083955073078837644503363433972579853179748905132071205885875231618560014714082675022998381853761828049372915419365618373304394574340488357644326313961509989366566382799222191495930464214549167391941704838367864511013508790736608713370472938059171624601453881352269632937912936110437496811705974752240864422296462149330367617838010898077870680942212302079000356958217029165747356647182775533133780501592894063701924786155554458472042004556620682321714416396746663285320499201341075186429500354781604590141460503591799226939041730543590156119396198647419835125559691807764841092731580150401874811620465602547386853200954142630774801650958845275182834713131156304834314128755841461004177249350959768155345956785719103936894565476301075964255102844770007040414748270612897684302809596897965940673162130532556348144028024950442015145868976587748545159464628334141751818167954022778826962592667467409945112927928146606078692002066805380561527418461760834424612879717270921629587798440921690627474985522530572907847415480216713974443250515419563208981501428523285858762803208662903755162651966068249203292591522878831576169111860080223358463166441651068392079729735261923895315887587864425706339124579252558436324315260221561510460777123018828157643425958605753013466704241658355075293713181460806244712268596880847722690067064547180877797380938070660205052611706897323098148933289389950788056536349906881099690739684653317327881292781691439126453598424062374979032028499525825724870104096262284633844855246306920177973987460510480289914508062952610151105050304454448937599199241742839101634719786742603780471720594272931693340345722021167952286067075599023106153791325387768485321618962300833660840613907760693797901560932615962720268788152341722794799123152786281027664547804401368304385702863586586303236644411173634154767392421424299457311183521572054718547665013208282357968707664993201982407032732980560131329406180835981870334780596927355998837295417294708141665805285737752662961808362833479193727386268697015574415131242181933879391422744596091410766099572778284887708289996009409541057780836804389565851087013004967467833150017792535578712057669630599673510757335079797292086467384309391315302911154267631092193847294426573559164204971184081049111875598381454906783382198010966890984800846637337282082541325856963356632010776719633952943623178164417079633846710716513120070802099226620657954892084809894774409583196133933135241972260944362858936050058513305662056065405793153870707402839101891335400169080191486138550061733416712165235069862875935401152105192971193615569825534697512472788476097945059988455580004243450795020100927611879138505392608892447646321894066450379467255243575094621237082407764668768819281043868743454455136989352467680169449117427984138261144788707174787605199241285802956857416324358016604427922611174825678928918667023511524439258154396408507126529641462935345854899908669301384697948187378818202692897993894036665102025802211437621294690651167091728962217434490731228495195179915172523965400914506076833617834295327358640640361293011765130551060638745700550813850907267082991694974359748097555742858935292827589684528466006330622363047819224111439245196883553460343738734414951227376865079992437276079642685130407832068392463730803668346713589740026683840487528599274815901728052311718463262643477866752471810585471693513944203832611525073556081510860528989716320995870033655927552246659285350411154291920194716821160988671586220089021865558329607254721539421945317539959472948618477010205685399620200220617347602978105878368175820383568093935981144681127153216777742824003314387063643103552051808465733801496301037145091972883056250201046224330843703499148089326066410793277548133786760909436583823807401435382501918989569675104459124777628226150657418949133150775195915888004654019151046733808014330223058303283807092015556399248161973636170425400348070886523721711864454790800263852914821955221133345703099767609406233144438338497271008113850806321037975905956637816572006710330766598727012618502819295699918614757751902993068058866006893819936499870048643139189460285367928810627495621955275106429018724264323072243353411659939249075181535232273628246321111581983230173451754277982781881667582058124908341764809903075221520962544940253307969031695817034048505519029810895859473661738203479314559716864679888381222998824093598339299335854979321163049995963929595872071501561240601998326556826347082893623416949782783769502365494411905934183664382661888860937372166048845595468062315346744626294441838036604738006863607437268325369205404933961872900953695138954377307312307925063704423093423816786888712339920034187563318554902065647844875447811664327261375392309477601996419622670391559601681277460174992943846203788349289725004148072300700162219659041132766745015276715643332034124415434293007621292987106933305515574085595325308441491086298730628346234195671502778990958650300216887063824460864634063723837136362733473624242316245113205964117063989072327264845987340455206249312895747704161455301009973552997773293271955243917776830285253212827832092968318920924349699243817551073628334416378434243667581872342192197980128472823809038521722454420731448271535926456671519745962935779524363496550106960340874635970968882010703099081718163765565615619367563264899846297976752897157299890084237879730962248430757540802761823340491552451654279412499959332065401372320607388001322074410745239153704496627687870172830157872313020133422698375837450581484874792402603765034651286787834876967680550408114115174422029203350372215360840600720812951192398820154165345625998944262644539311014270251708123342846045179795653596321789607142329867467357846595348286509803736276990090942440834697191833646347547280127568751363795960234535735924117394424769736581322930610059488213436891495726971449709792328845805929181387843938484192311185719903318506754533343294386614037517259324461637121234806069855420034433980357109414033853097704659132232783197189501810115253305260242048795183331571446784546481584582955371638906618394082197618315642326135038261662111669868571612012081828070535303793106985205302423340195209514973299132494177630905035850801755568878184208340331709971827538044465272164678914709364896800584501268128207815858829444992226168822661092461561699778063160127299749478873238332930066896001951147804991094887216436232236646367834414727013575375958936553072074959244934290537107347051982134796559054226174557477763381745128732898684473637536544191160327363517364872979573329515026736653820396715151939271082722540686504846837530117778205996170290925162337018236052985899215104695303683100520160262632112794684084588699914988342836031657177854890453019356409167680132645518531931327533679374081837037636476360304256270745893487805349877212548754411555582628240715502123970534290160288829219547529657014316812479743048440549194359044174582197959711385769763603190482950598624562970350452107296000937894644048732145932482478021676987316693211997243610166521151578214971684410880110931078999449159572080636105987541064886709404256176837823667521504610806008639564872865758232120113558548001995233999380126232623734747685712644849326217978932175949344778045777508137042559066808418024818315261991757664928301053292259771555981972229069999783262479507828405899726167636147353266082027423029713208523067402762868295797859712466840600400187319339709023734128505500419955255992431620225077303967561690310166468368660010946213520267696486273491848717544803943294637687237645760422301839653538079265312834622635649159981225757698670200110479964316864287048430333381756176693012737896674652147620010248938736739098437810649346754366348192990611591491520606245454637708923492487749737306561078016120122055015010232903240010543676209473421148298540012122829745324500228605518763439947599215740686173695473344103890221554020210431829442054219232431562138910642836132680224340839285894590301336761186410586659670991768848699209411965461752614630786537307880387811278776853448662175661226288280086577158016869159194229588458509003430729326145688157273705883234768986892752251643187189050118390523579111572235997945201808232923712868916894003084143458956753352107359129345531343067412152125825726055620805158719575800366156593878365857705773700380762887555676524280660326605969462310100613793754675731336370780332765076693177963647533653725927483605743110562721220332624124937775589340219442894766201063295157070301770396173008060555087692965814165653579046459472015986484756818448898217569380769102013595785961057693065382969515642365137157693214624063347827100275838557335632937125813862316721777136526367323889177535006378991031938657567094930346938593406867141759061626309994218731993607806755004735780593974944379258890888370679046178698627409841596030817872350892166961553755471972879383982184158684430669104628360090287245424473041904491904085318893586307710507609728940971556199651565564784114444789637473582816492684938849665841192967991051807544842748513641163407172849177425596322277992124025316347286781533684071310656373261482573825379103037444775583026583854672685286833101359360709753319718121893758393706290012567402835170892868388374687118418337595911780065651468398291173037238384690384705339597700985596270157791860771199006501889921642425706413180398356039298775311566276563358578381149887733653109224089983374797974619750137860534528171490603410755824235260773559039188167982550244000750167419829647357132294312481889584046115669735047676197224055769316132679879082522876402654517885809615471198594958437888077179722788667267574790617049417832249239448610213957614261427837048923999418476515411485528195717089776083400931839567600584491647287981011378047311870626305571277125211618549922437711319581133102570128762272526397911515612314919817369317947953268062441127210878873492414750926485667205797494264723385741520034710767584246272040146053726863585670713419974683320440423195147550224781791817152935501505028797039220438836662032897140180264109836023064863596869230309964529402592206686073011498769336259479655825664886740578154035503806013777084687221884875133769251829294708943266930572252749220812739177629651855153962197036200511782896110082411925459770559509582026732841339586952616406021600047751943605307380567048563031348354719808876248271814027585994852830043364393743648041600739775874663008796961074969720294038743003322933077737912442099838865689281486144020791792690466594138399439286494261635026353641951675981794402193821875593386272685244474686120844468182436825412264806829474589001962956350983969867669896897680232990374768291098520415905602488051955651248796731405040708005682837787285223127295385770930452351707668885888597257524777396671715212095627153777838362497511879427443816829936585115594949467352512531772702427027595897587757263768028699450295649247987656665059545580677233346020018939578714574178220732377123853273376560529355445707870815856169613806251014238703205021087893832088860587031675366410675097471397622246693589761952768291924534340143390679826289970384742434705734183766244492758725415276510302722179474118493718477376821338254285234037537797643766232315576185016104091287528558889050677579062527901625259376085066518328606219286336566065755181439573130762757478349730179928305618274484503892157521436230541192300132960423688927094971604153116190506450193738819353211138705406204996740744114668857807818066708696244150766986543650548439325747197877377338426686216759434820284967195135588191836090736027238368074525038556503223940746018995286782115281121777025320541237657541372950657431151081087058814587496542401635514659175141367687307485293637142903598165259258301400718117933942120211336266091872451113780348262731039520092160386227701154510066829062096468267863524444926927583559725244721425061946806999270518811688895172715468174231050288156963885990350244102003075576751432420657029175825666146295923832373336124064652814019353748470718112148695393189374956567908002139114286490535647442606651162240870604312132698345620840096842563639167570338086404073850877200353428464292726597422705487903694063457121818489888463960355666817615739402864527535848483499669029858956150373887560764513976931748652713183604666529953759276370305429118231253535648860921744506122254813900286590123096036937793251948942187029917411061017673518319593629127179273887751919233993106595829403927579836019492163152498278733049602303015048207206372738787513999549572248500542882448639846405014505809949798774716881987735962062538528075187956702444917600897905818720664171531327671315453359903173967510027698677861834572266467340420103371245351057648574785009056041168166485418665130456230704580691863861370349253112072979845053211503929097209028447002163679466666490860591570843691704815885304503154566650543044668915679797771687049998028622133621241529319888308699813904177972511070688768833183377835157413707970848420887949668082558747039341664348635475316792004640469129388963308848775218737392687042740689700594896846206927629759325533425557154946771629574955055070770434310580411725842777021900203247519920260796047715275251738618001461521544059922178020653779532161343824781836558067437524071803112745757201785075807274768123518509438006927002166464040112601973761985087705327805724046206477809521561312469420858564348521301638794921394905391842592912670999153487713517111489172975545545718363422282886941099686141326333100071833627598405666445257290968388621900062831030545960941358785374000925618187263602983686864234901462126888245607234988406887503833803166155355096877715586859959523112312466274544564349874725839962782058587709907098384985337694708829381660365820914124036792050710780919388025411053944291047651635822351777048827033704493586296202327305471872103128654801203862179209219086507223157730779387009583693731841429566602351522595422809769519898760378491441758792565377508591822548276041594531662325579529573269190463258682723011911162968768753185520452252193758471143442252820414032664568963238134658778282843649685322788002816198321227852411234829525452887964559818290569190076142141515830409661040353464712412233716539901393169166024696102137404770147850344953001039361022562209475188327313737429204976844010038675172373393050203480523475054722197226971333991413877450778200280678654540523138422674907734035084102608159015293906845155372682941311603255238089147247491699454349952961909923018383822100356236275602112644061853961172207543626298505347123698625762857027308913000836000393566162229224746185415712974501699651749498711348764882983843557818068072853484886370276152759933057643713701030215853936378984353879629654197023650909121848835085027709495580702378262904281963834132804624109318254947504871493295047459439202238237102041452178025921039223457952408532919844255307365083952339394131928061502680397837637913953577809837100671455283510511433796291256910220602515585299580800422117952894142257287721810929583467898492010094233408150707946349512695880348945364226068070074062953642703388969854288436390053231844851771364704900137295393138190865871714676661143907428446812942117065398908494318132667210824469127009750053039649264526494382983694513122949603165543564824675418037813050145904964547984746612657574276284022017151478771314685374145539025983559898258825548501663762837850320022555168103974730097347151644608287776318144654006032539725235167496725643836301083948243944165821194242930844925160598103746780527332781394586878608905929716488311923489083389117453413556006507191646793574961942874837393730831562618896651322114226231105882784643892454189274232433718440347135085830033495056928262919109574810933549432317950825069741429341525291546481256997592895765673207952358040632681225629785033724474008290226293268251548777038895455731857024258353518358709701230018089723502133322668288313281984401634244509804082765822864994366197804439384403247659450497809855101224842449816856779542928109751057392076810345333808774086847222605767642163215283576728700337523149927704861763234736122955185538321675048043792993580191014734046528836350777633245711516571796463650870218048482128059694495075562685150153140552679741474272672745647524247402207953755167277416773330050135292891807671157977756537645118616285770563341645653168967544759522929514103121071859824861081067241416207195460477950330983448614743253282384009672072329142777682246607798673244555230575109915925796019595596294598800737991682131038103855759330395468138755094190156738177240786294398366680919096841130061594488914782421522135335909628293850056207188700559597954111002890460021311971750318676478767568309421722197673252020049599622748884469565379179275420030987962806256300151201617592600317402766467789493608861296963963852475417166845147406193102859600193540370344973827496453629152002584561090120274798626302400329210954397843592299447157350487828225240887932761038918391452845182570788617716682898877821660738247566479955115915808712993729718983194186098450918749739488913419695427023301497670971973360624291723056597527718597215896151934395128335472230110621674519825927901936610733605012460564810006868659631952449539987655436215997680606501643614732187547089804801384422781135681738625858223245960134027467471818259771178547538373266377023445109503872530417402318647654182407690522430944780653634348076509565915516890729316617407866836995948684994422251988685504202405415607791955749084968992134326486950834772021059549930625052601766876311843717794473144094807844465302584841768057870237148359194660477206759010882682348474409141243398572040628992197898744889225342384828859263855200250048809348829972465114543969111256649851863208342694677045135717196515966165681063111902284403349022034534103799306381426383956197035691019764563973911542552943486188581261438822930178784902104048132867425146668816304369540502189632612167377524771641533745077676384602255391192801600502735959519118578189615357301097403438464043677752118537604874315392053038848926408907455465320307869291935441882805920263512579076267982689138149290665277256362404075122220094462039515903299830083274837250359323724208098530468005806715550511016357878351642923054842485289262452899297464182735657763958318795918131497326465938631418998302904372188165949893086186277218379815665316712883737591186321052355760245716459074000201477804046102288343201870364780413059528402545251204635845256988238882332762830773796607930786703851388362866254884038394076827416287697530084564066306046308582817244800300139254338104434847297217679431604760852876804027715786884052544302165921079469186546093104675027691585453561475484392150155280449037741366508076533094746114030745537238432449714254159919746318160902933314943677967313653632644542033564861715849883055358083007069353792961131204011235898183813005861756119280986222047932173215662133431854032571319279603765396136468315178441874097779838905920253849192251327787390146526090995383001342595319536325186154325629328590033677199165057267944498071816952158335505962163951543744440689206604434362436175731762976217685966740091255827634715088931309740656481403883247561104410415734879003623765478124077478185946167653097980739486994928874706406749826312085247136512919135391073680903869001671611234310952112732775097543458106284087677534727142579079392566110554096161561104042145947440898211236672716777621778920302373767468182467934264360245390618509693121000818381424497467692819461183638110207049348089404320377533985931840809422816278607115076125928679740421895082944489251076116951363492153773991474798008531204594705666003102190269919312016752838577084366260896593789669184879166668427175427128121189590136297878564400084961935158225408579506720491046994066333340429991150507968060480217059666581116165342520053702938489319033402708345403781991164009484180230962828272355935459805222247771813319399798022918987107989057513531837595927825141762004513406181878728754159604039691475116417440284162866754897650290212291413315465650373192836440553490006319399724757234274631427441255110394339773405849935986206108910573406590738937570974578862886920783410891288788531560768572870534122017521932543391213361708779658878133541003880491020298852046915048792932415082302350503241333472437940791525530794622239398687309653317485010661688633874192185636654135948955641042395817504291212200895537393122291395620561029938381286704144766583589083964868071072413838631731507636792212174936766437923422947796523657967105408281834209420272594892440084538557314006144566769537630599848956946071003144194004171627367507601946199627581063129058775982265968666239944048141733759584355328524453024953269631802879673905498376661980820481502316842947164071695833711555573532883978240797541533873666737516273471148138960762244777941134496995905008086147705409539485946465317213978759413332823123154639392196952931586434187734683543999592292345560165358660567414065392825575833545558458189141158746106243976886470335835349548582407331251389049452264929554655580723236900861460225811424555576249261277957093834572596005933852075937068055314292060608842394120860274303642313834826618748315624653890185941871226348078736540531340273006765609762817713471338379892416685436789568037259300573572310539340271043807599376881614187398046587170039860485676227059874812499349403628378917863195160863732178280569485460973838954201219472153030210984186103272248046249624730965941008422350691435950414790223163254002109939223810253317568297618698028896794313259910929374566183282787574000497702286449360892343483056929806032060748323277708883109288484802653703354029512557089703144268163733355801622845329305202742990290504375818642326479406044386821470246922874500739361359389550944018105053369321465948708487465092202365783543623659025070637179496114986923074881402860478285653435782654095223932151049486868158048381970547930071259990163069084364391999487018365121775740291662122710170985394042934073013259392702215387213658029626066764332717091753612723866098501611969745475336915961492636377036378074906651943397149095022153431495130409886698322159519307151966650738052833751219703220930110870244336645623362212987329521009183404388242187513608702612760210313406899039161100403446466477602414910107509748538443730997865627269960119636351960272138789779873411105868580175200006506551657948373928317373535112726035225082465609775832244979610017899080250634528012864654524178140971905108153603883711304132698057865251218392219681116429205881987491856257923949616974958261192881370231574780431040214416111254415337000714132776475556227108852131058418264346064491925654129116281030898839805337728323215110889780171774417563847317239397587845949904012324824514932547464335309182277438417193153777522871671453018033650585679002470828216073944847404192251019130369382956498757968224285703110488540669388649400266581449942571549295862185552641756769222671752903334470858810234174206855409472832393029082921154251461133888574686057020927711052345170213237778591564181010872340882968683789734186553211963240552713930196084659311776609707274998162701448357693806163606352017280652805602678172918103083229640079757337958141123243786881031314769291456327027222215312699641205033347029410556997385326386955262144736013562405550343076466698971289824460160876965973333601318181360280623158761423709305154304547127252198378920905112627352874706814411271036761293097953301462745655025591208691032511983546408308185366213319531747946012794696431780736989673316023921372984928249608632840446110390933745377721250718283611922231150869073443883512876074187543719826570648304484808528116025460111893354102943951027964377409875149189764369450793331713896722374722686806625884586550296570880538019999387349931855020862934967205461049194563897841352992772097345985723353426817374189111087145525447792840823330881286254488414613019795884534607131441440315930676623076593963720291376878820457627735472686686256817202277988585026082386570341457028017061788856462433700835054263531615655379065289491502420632663505304542686383988050239342449856539047266729770507147576060622569787709831865791805908290782974009113259148639539917403187264236389431302003856705670720170515188314838511262755147403448709277761020699353614780078311620099042924628356363072029624728733831901173519624380276804693339520307289058405232055530301847047673186432951014673588292459032776942212042801931590871573164119140634838826098497507796687585964573497823601433112167699237268393580501328989634314147701322609324394260364956048112781793817509893462782081696331978520609756681728855689871277687964806715311951573041248461891898096333613356418624650176175349795972065004985192878124377376804183270666941427657198558679124799009388798686778483376244013828126201004402233493124052135769836246667221094368705080436834851963515639729136890721349632819041885007845813897242810490255530574898844016916719479744589032802231432076991592484882015714006113585028378123209116063570019462560690230977057828846742186329008137634977877173763180707662766044039517607125467304499984500559853377510380341805889741141375961609681601133743020487254443039907335210658502543238874181917151045036777550740430682965066716448600185965634666271929987423512498794418973202576478703345252610657162727471317701585518129873771699335272573485989014914662675518363248438736058989614009405751317907530513267910757946408098625706161570437840490037545269578785040625659194671717969820760332216391927115461559447940214694933212880614293720539535808826978978539189603936152893525333218400794101949294988481474277989888336153375881103429859814324108398210110447665423868330561454415321011602739609729015248117034260986240139761268480833824617871418620932989173790932160411241607987169456376413541399661872268532483620872612799017708405008296257927343902924168109975250303348799019665254804408594179557728651133390203502270733765751050256698626123739077902421824620818195192281665293522848538072784779004299374749315430565962099624751297724349511595743317644826967587966802474416039190804709052647888148992137014142288097061197766958893216814883492008711550656213352260160762708303806870866149654351216617745980187018641259685374949874999505989423906545957831811471395554140611282734630248987704242132260786797874493278216695957340871927605300241477684393225134419799169641472680903467194816409304083194797535564122187323530599896565822766776806054902311627158093767429822491838620333370149958989049249394249287139837191818448623949782358125343398425428481626955636712614275791682099869820220504859224605512906718856604631870587898957512584695651754399857057271943532619932832141082025585240526080099871941959184588501434169411954609841641162945506117770227506856326207116004295564455569457245842118375377334742346182899722387485796332665807351013274028286664842879640449409086780718915350379824803805344369664982798011704145510207845104350611881940908033399450640101669269980632217607454840921144238142235624669394677336764557483569055766032476889321116904192756634712120610603638234790017530334301657684039725549164122002954333352089340090568175022046820295551404383836899493037322377409864013339034898809799749920967110437475642706957428761599254373858153656935658626578381662270772320359437767802100131393306976765291913382704611889536128841306798689286495964898044517950927672058923878026872639137398311383011809962990101902133844957088450783555685227152666609972866560620806140043443565495193624057224806974195301294213273358503020093622156578098059940782081284079831009063492318276533390135829407687448378771370201897337836956039197619811079474974663759992734445434502908324949938976929932530591498623338267058616278453155354025115715658698374397258245034645157615300327047349974717565197165292646017805720881617915351464035082713294780799170031193245587451389747722358359812896985424964900559912104776160370398290237609854146150213839947972720025967301453894467928083087923438436433719755717292082734911855461193920629077815380211311292329393300542684588145989667569591479161751418054261825676480559116895272312901236559420556083763321059249695804471560187251646322593002016732200246842009484210153944046860989166425826771293097905442745589819892333364186840863229114494263484218562036097422800962795541461465528456095635029616446833182208883617864937355950195554927408060385653090262343129453231596742095222705805237709514304737921721569715795031127376864328250896321754700031042976405221926967551772115232195498166887284485055502191209906993358980582466494908035153336505667244715485842803059119266459634196591071499454711945778083936423201350561132715007102740685117294171363433718340202405445213820548743246032514429444728108184873664027488924923609681939821178421043883955185369638194849356854608246954533780700972475508247034027953660053416625414560928468586971625281875910312237007680046673094618234185206600259015069068998039973282309174548686184025067883221190153030434352481967157235151943972937201888092263022259782987237130123516194257338749442643989692536480029251477622656753738158970542374023622513678922984395140396946250668399536632603158873622453531518452926720015754252069109255590353786234063498120643843369990607975148777704857241955743505098243648892900028756355412337848076042377632593712888752062410877120688225136021925472556252528132383120717404046217636440133416147447619154551594258034481898133288105390610770004878427872640871218507670553196144212253412920346037974438675455239311479404616685482590719643115851945894212127756554897767121100532343231396515897288469585019765471097694417379805077118733160863033361636084758952974736963248632753606796954527986845180918328385414526280942206294609129226788213960097498561725630314951516791380819494714894047041501601450176693251223883418599243381637702654916032139260508582828956975923521630916540392188889823778023571816118305395290255760392619198027562090865036851954642716607065248947887267538092319971161000197837359398714050886197891829358522513144540141499010803178427656589730571293110957617137542996844897014283855062668798590628707304737072783026509928001114978548822595760794490632603967703558625671263574631505666333950834057876078713169083812024501977172143461416307651405262010748157191950269541686477902124505000974579400445503378905124694965692293317449829885786411990741662558591204334716154202613679278109678312224127970595448640644767952203892831017154251754647326025770855294918340498147770954152919684866031482387917305868586819231641484285212492698758025902334769370587392959891272149368513853732047061119781666076962638060374458962816578737769304053361003616824764720385798614197749012200457498353461217585250808749930721468858610226051279150446300001755026680989227131724160245000907442938636541591423964652488732729447528598759063016181369303896429429904668634372506814887306856035704064780886565263757146437862472444924342139356584101992973732597879523900263345974366549276246568119341979377703396200782457141395993198971123905789405576012080370432216848390189008609455850120740781264334105344020957046578354489521734679637986760762744462214752541638912973832162750896072928985880970607772908157028467939738182110728252846840518017939674960583999552929511272477169906248132233269372665228530863603408996483718667772637935059208946926133775014241756287787101271276368439986002454465171885514513595627926686264691460782461841638285212740129686371583931673173041532878797195266459071669276944504514298616615342131211606487908335760542310360851217064084383248612040717649158500801405052413525426242202642062791278784422801001846130219885334570756793441089489045550699117545655155086133878043337068743673346582488859193985861980208331974259015985810114186247655254738379989746927926578753569516280694602169536900663090676523963352678131759046143093485667228891598858333606219132671042334374469943142205460593954934949290486908458454600272337716364890085935130201438620016208020219020488979899693502098163119971680359445631878519672814952238723577016934050024427280493368956754631832559134264999542765043954261809749606515105208695946593494787926879698503076755070354836804126336322189126225659903006162371101980857691339146432672802930954601509394470472914308633026503299301565945170721994859229940181323342624954880787437455195722413067331128911993246514716194593988409660959024513572273629381308176917661467453242612869334590597481019585691421815105073117059155455078120254786286862861488078974977988156440930220004093802630842665644945894558243765333408211319474782449141513624229825209662630169971929297601212987088102334913874680272524207712431144395994086149575988124121021686122678731442320558927569327108195550229532680564789028798869766686781455202307326878823927291923423573243306057730456307246792088357755942136724255060549675701274231726041230535981686538212687715386153863261303674650837754321892838829876311289507493334324409199653534327924225780389421394997053994311360605802421229148083643188063003491223347162555443282621849298845361456029869055044247849703839455408721683825243238874407432884381706124739988445448948392025326097091823088159675724266374046289518589270675259472847665018468434003222016297624452039645694615037049191367311199824224295228396861750857080634957091005668919041433365109933084615124445924628583528456451705518390089157883225951535087166982514927494260028844981965383440209080596525083297599384234744730440136545344049799625482245300907579422633003048423488266006019868076501428447859356437177938007101987487777501201901122786627203117832496707765847330897165854571726806175928873766454981548940184538821780135965542672245942849979708910500749055699220527806489835617979229231567160211549273311141184184864046628627001137299395477887191231237344483987127660191177612584861655968337057520935580614781683261582458466806755564112618118355855919488257460799591591809521383437562912345478392082457283256286374971196594201233081446457412541424464764935312859250610419749982154670775678635228612701190517660723672753695409086539993675113089499566662923021744807725973982810031812099071261118437697852790436888744543060294305598864531128274230120891756355110601037969167198286091790078863042247500591745268243001766118943740120704547798789534303725736935331075008784566737811577025151658844595669996683135710172540855349758741632348775458876075985203888566188265394191374919331142863177519787470415017323654293077316960766760828990907334425815159780410347256769959830071688555262272274035028121316931948474091677305437904284950689524680542211706987429698013213523886322034040412687945196009004149655539204315059611829370289388494970735162391496092679973196694251529461580742273291062131219241372995219398320298236951346202422109056836337428765610693367658743896109110967019992979958854403680382193529282705367094344033497975458939800272838745138189195072340419269444107814746519783838588351544762222967581462023427108497818248824675593068951945906027993288384027715475639980102392830890393476507472320333323144977152235634475419928816525094019632680760199535079795336118403401837989308083466384444506241757662299977795811476630184977733604580765357288592524217271082226979301249249168016360218154778547837127264139472907967705319530243125126298253922560699366189831177063143440809666187968889967175902382673364868400299059676836125614471564995334985169363909357931538434060439719799007381516772640010621552680024197368594643970445090854121549076825430755095524228270967413954121613134182796702341343987175416561501730913876718457425798988989588694612305899669254274563956352930303158231238331089600978612167247991039003425671293607725791725746843920177133981419697526319562576955997864471132081600850329888961733319151087157778349563579950434230950995965530073849425253067717171404955354450001720014090846479933651868140034587290230356407356196935035498416746761666501639364025077788679341789156305800754802960841332900186288652724926524769973129136711877730079584606378239935933047415684882322615426874342116552979622040190432945948843336897566470069271067375937735119618768990529794163084514242201098173256434895513801417291108720967541149815761496382488946260037954870068373326106759933695653107940432233835983775518415510472706689157952313488188619779565095187506715627070940283373159375821714201685678922558071153566640123108970697663616331260200906745519535372738671554078433157110877322869681958350780732867847990021578830916507531038476984092264862279130527302152413054285028871697973203210647495520591920271630970585504517270092052811469064537270030097627533688435003496022219847621304854994729931980560805424372317634943691393169126563975825078098446243575462302356471239265239716766432624644868459442159674896461250805498439692576864079591426093994167400719549943602431317059497553448612863275280374504030815225613462993147764978458926660120918262947833202787244897956884733292005243414123116757067333343977238431213057558445357857610509823013234812384415660477665355534416448521702680238798407636306563767593273825146035950737913461010961109820893391844054240163905673524409087104009425398476115946471532403662822061550907088527216489751512258986834156392477654062326963421489133809357965018078023641162705406628079615557704954051910625377363120432676601785567191166013246309924375470972194379779893975826112202746158835803302786857484758139946823132064907946902400535252985424912751880048413516620208202783545309149911760558191745939647893526833994760361468772872051063206043247007737623030908525117091729355154128912799272816830649750660823491980580189304229864802279057395312604679571658757282093596901041878276712702729552483161214757172602699346237340673689514479614674938310028838469417736487986004828553919394766043426477645622157432974362525635941586882875988671115149508043910506136587693682050381029289890219313542106916403306620069057903706665537850494913253443197916241200961985541426634203000981528646228733674567669738303028429153281836706506375866957418221138553293358188289480702761722789225856192348074052178030780002078421854115862620198145683525865181768431556758954017494330436156569218686352666466148402221412515615442946529541171411621155650644290491792911520591772244179766140333282593921239635930523403427359430367988911348940572179445414390618435606794090158578366276831408813466692495673399876932354879582089451163000056141268792323040483999085883090419656557488897571565729670650048301982654400994541690358713985520054538358073312125014244093076413138361794362281080746017421748976009729858421201037794601124249756894473494953267067760434326585232305613206753698728816009976566425253677063706235732384397038540776634742948671729319347528881747526015160719888108272107323719668631992128544416374993423683810746273536543388709694886699877085057119504422959112922417851630878124430020044334118563003971721467421978511813192500869027546798925303118707975994495578753671273881422325774928552655074409123556366000118339712323629812031893638157742213088968774361016964376174558753827968510276451293065155619118710208288157775386779340584115727949734874211597128566985728240997221703245946162259402520775521196724302736882164172402269521897609179831901202203799633151906072968728639740146018918955617011790433990273341547471331428661534852200585076817020395730363753852864910652853256914453107617237917898670235335704039838424374811290173816811293880226183432558454950383451332041550190050911540896913228082021766140532745009400352176392068857801413984004119565855715447081290770246908621858595819796079022234206934523145984337281369918211617375530897203976074797796911972185040815264552251716391163446580855742531289649396001661223487779878511137801939151131298730407314276160840724503332484976351364846828197916533943138741012875665950407098348062907196017254867830846726766841319449413194805288604341924377041733625175419059606594576721563977889938853799785019879285017281853048991247917066492437966946213421510283013502747187636372368420749306583956801208552467185290454390391488008501263746791933294772674217789186253807235846488579088334792737072375548613208340964960453947296174902183264827420023421391904753571220254622050677069759328303969549256983382121420787241377717941055771954655535593567288172704166778430761338000185095016104118987378505744193433457258960670120408080126569058746147948076023613216057468386316319635883216556020399741950742480007910319187348961727332463892806873000174545393191463210417341344721504462456995291619438314878629496184127674616578172587006010980625337572489333383611881424947650404203674884522609396923502971662813849281315814782896362991895055029838086225808386390296187233561244061527997525773480595499332502049015901873619946802561900333597998793532476021547902334013699433303328267863218209693404541175006583521094448160901183993507045935109455820860633699549443592811804899370788118205418269156100982292301079888608048358202577025319799837430256173581375751905785090697384212176395336651054859461391799013254596674496841515816386398044653925951927328637229107255054129225518851023864665629379671802977829589861140177116319835127578769747767878573660474528633989598457505861974529175261392256520186685983339108533240563760062565793154448169189282701486547255419714482628182480174508028339846558689824056655957902199575822033031355539566280873142378905460491120610914517292425003504411229179325456346834559804643595564880621444807804877337421832130618854727928913354589173232754365396270035946482491135718048561273369032531179562452581378524466782581590829763698107510517963423202143171181342207916399987240753485052544577404313938860610076314007972095805217050743312068264827728793584914084669407599495103589545758499702701709346925276137917700607228339440969554571143215989889668180255338046274558883521937463580177362964918391597909252105097543952741334073957071793908457546676997565038107717787156079822703550179739259492241135708909196044456439234509468154691296541523225073767794679355976162405180064834014464524617757671061571938254740180835095335821325490166994174315166592923383275244761086475647471410407421613122716512162321759565763544604239340699665355197147901918161719408875201576219869915974430614804527867534716064237032190178876423071213038836087463026516810159223705056278147629220852788037990692097805725191433557097688578896522108040410737520066313732105553222996699221160697881475758718298069100598755659710650394172084433224776578372551747248046199572750896384832575252487083406292832240655423755341835317249691880533734457362710986938563874570400997892028226936437385880555902407871548938965267728675919483318408741320035218072363762960446445584151986782032626672421512373495367715551290406806179387239967687359447911679139230804137144970353180394692728041406234612121327677484275038010549327140848364015695206373695302255389422497387536371389038362700612108139066754211215608177773251789710411894457578732703896307660990181239760330329013137278087670912043097938014541873923597498712775378936826602049725247132523084201815875245808103756643621782173523782804418810126326094041176826933250510435388988727931945837382017828698838714389645103759898166547527824525240225178072808935636619902393183816107205016779392220124324620725566104572783293091749037334737929744114309690443316197039581674891906295943296723930213688393748227005339461406283277132915752169214499783155946322048025119421281466433571294707677268805114499185448994227887853935742649376734583395349979042289329498938604577265427948608089375702868177199319964907798562428909226097128770426454487424167237621655765994202226043975408984532573006772456816723917552723077566236785273793096775386948123009282217832120742118038870231470189286143175232761281720226570999044981148313808842846680154177614225420856076754108981378659486607732902495066383387054227037624906619772710405749533763259528231028121111224035324017572762759501244109417772076946048179243567327888738564532284214969974410259771687247967686854532028419051199284128616602227275853243753509494542044419634279526881072265826104669077664955869947688679357655679458149072478609490190254690153654718527444101999794983531875071367610138440397369709963610594458544650271992762257634133189046283210923834980537169322913531633347190189623826380887224675975945217188198455419321809626959485212589485464884935600559538635249644769706731361711041090737427744293474171848116525477182068310913863162141738363259146707264665394409874324980522523480494738793064977935038586998861893076682489166588780779726810380990016536707967259084960119422223307576321722651336332363636182608602385239178011209555323223873019318688816561013659517927740322354913971912444351826556032878756593207782178262933585221638120027104091626775837912880477473224826737643500564408535119049786578838464948381217633490198811014138702778229685654144888225447087964908862350507340967378612561440360084437099882736561664687458554556240067074262417296785722768126075342236507649088888681226906354022760769124315569588781868920682586705240457170165134986841048077055441706912119935877844323324677032828410087512225452301774376298039066152368164652578654596381389115894525282769122432162251583489869100491445274473923997662972395167936189150914875503993835791010581899911621259188424595930107016130917895073624551125069185402704564789442603992634679522502709506773489728064793335769089180384756115639095296265486415603773956752871069752024159667083964412788613888196303369102338249080223556917961859124837859057606860949925767056873943399343687896541681511454695644256818759833830338650842790599925444943603853236100416475072176742007399832290698183434044835267385992678634997047182893127707589335602663299446255365238169277009451286656433446058664711478344011513167239905201562063374128485590641859201783625656848862818788867895748339426426764521580863184365212852170944780871155396786800520846078100769319565733705402533213071038558557830799214982961395298040601910199167064966619077654956368073909033721096074934619369713753200649200929577377119854151294876726599445775496499710294125191330859907609933306758564074172571951952276569765058619802861724721480131462867015975882719825690322579574851515822266467073331978701443858669689367822040152255292837568994943681728530078315513185434527454632802898694955777446224040942505423884239205822017651894590127546576491313512845733018876673245981317342295561354951051244177610376408633377236174626730974436005042898532603801238179095473320612277832166680093052973722584333356627497764389935389324665514499527352376685310978985725237398906517998249897038956442136142142053409855318511715353305036754765843263834786731388302226104201148516907015591660122498368430268138317160524886436728665508735841888250787039126519264928891208370036021473828988632379950926356768326795293030120301069749132786632795535746326461626220379500901269860804212240602168909039131889884734781058782513553783925393022624905669792501841649177217744578764510901266493344195154900235445729642109691742194570564352572463053311725325986701153499729060079949091544258344149941590611237663140653082100713014259812857107158481469554836029597527936582995782668048127017982316332709485190729634968871630661318130336714827265810899629586140724462603936639711279530746985201342577997378955720624133675595315411012007340106632446188391134132415910398097221842636729207760642409377866448482681871833592782964308471402883658961192531095805077137630930303840392296255733673066876976051452926833140867639942711969619068955036363232135145188756043630616865048862877733922602165622899440127387897547631509793523985686655821510832402150308901792950917605674136651275752948352988671577934547370536723987008028570309266745763021091735649124679333864899706540648079351237404588884549782816267656034905372010784778237289670538358758992252668725951164046028230090143394527984757455425141856579685025764608645649143749921855989908115319280068177423121199750266984570951361733059331855651312911964120615653234981526344684814447300740948154139420964762486713331337503793224990145040462823043002921356359589051011233551919560129574784004581542226945276435797728523950175529669279991487010047071981553264049698236608160593103584700680501969443046120861856248426645325298418733758976324602593325626972048979315798951696779056718572704445342174505954621160183618050258007249167085650981276871858127444791242594619491250319773766787441483115088463877391199309597358552382827573349691395187753914901727166169312640575221297775200250623292416838187394539703465453863922373954832456981745889365860654898519007089803673313300145247539291341718376324641777240906273046574891437414356724236880548000682939776453998405350336233332985188421909101608116269513810852446306170180591110759649279285249210787148006087214986295961403596051492948649579653688289810614605929452420020332586054622622334819634881036811025207390166485232825884453325226941687324677438698851868351767936482586793880521338038442043682895877708331756486557798319365488885686739762576407014224753778514964616413111665565056903906122209000749649880626497620149562371443660456893664486468624442318087209983584860764543216339603533922422228442041895104447464264012573351731036633951727476024546096306385449227693715795691526704357095081807515790994510322248030857604596574357256075394388343279362328149244352746596859587723288398082470530766610867366450448701883508345354335185148215821946184644238188112020709793740261973695704179998450792378051585259181900510257226442961650997656147235024065689994746330156474938376547275930184195792593698421702973310283924014876819170459655345044523212483371959347472923571406617285780909552804120357564095405047712813328809142136789327104826363904158155413799621343639302161146777783099896389968285786411726837316942259524675787739585129969149494950300862230975330277284050364195905151219306675198390288084999336861607208774838815466705337639100131109149342276138451301700755755044816103028526426133777908779891279313329548562243986595513043051499865683187235503422392538609420028369237975148752031043536757165365382624692110527324457574553844449464954672856787594499234319269421236411780158947832665908117814520278063232635702446444705493629851240854421424647115253857427288302936760238394359067361424757684573721809717514675153033527426777033354657609218731640280563768022319461444648628001442661503803756888359784322256219404686795870953534561895071411564768979605018736301928277098328561947721897071638846113502151976252549081544886875997176961994280430562430475646745843826520430339729179728023190604799393398519935189977763322815293232999685464994219527089894572179519705647728469387013513815100591530007221447138836302024736080210104899138606668380487920808243292606089398207335122952521395590996408045789729055014763912864897479803923855052445557731292321241634454363366248944497240390517430309800001956425727915800197817520552802455783365688641029637057659946171862894387898616453204136220174967029188139315850983647486488154173466720032352633519693487034371211054923742260619987513751374801389772625021301981527459248967347780657200114378616530531980893659148027116322208918868825211548550273552178030015607887764895567229721167475124771204063874444511420937038824711454656215253087736326561395418069912545948038875615535346220700930437022433685372076769836348607847853069490373552793140422375306655436748460904811725990096121731976683986423220968021941084258708920637156840724208904435012938785945929193828869459188113856280124884216184248068590426199036126097707768953938041019820035443461687123772012844506306321636185202936462669887352052918464177959131871543641463135313576763974280128069418443950925313854820510043472406806400247792799426957546500704935834625523230527934686397888041637880021300717644075788797361670628577392785201057230383341456194167017070403239844507616993348963971364152900207602118079198774592014700269989506133180244773678138674286874679892156065601818762801216352539978097116395980512023594354537945495850540478924045936179722997775609102535735453262562492124452764180916294663210224963947064516469904197990179737159376690351172771873419692432834324970946080927330930338157801342550432414927224106677974983399329917355199698188918071365871076045869894560262540480881026048132387446680451215498390173125131286478698713757858949474815223367708270730128578268576285302278370988659640496431659414957551679941561856286697036576443361114280535053569142439520837809308746232189492232748429328872853052751144221292487780060615469823620878382130720022854931567305658179321307854220657663257440639934135363375555969096772384852988036835390457863713662724980330312670458978774806023941203706771593853938708016202493702661461918576791062636574157880903105160182679555047790151923587114180311711354451744863849369784998535319039248961846381329437731199312595812107040586313051212334961561236017988251874500582681640161286649202566886043831030338173980658770921933812872781289839040596691228700097897439017943112949538060735951381665839551466894099809521060700221268605524562418630361511307904462131877832052409039772997204912899198098228103492002889780044481664790061958965061965772650794646194323300479468439613968238539948396011726209567790443858771504065756329136540703567933194618583722171158082884821869945134670632293101618778597711694686327565510999703843664893444585579129817969334708706289221160075646286047522969073330258611066810568626427225534880488467643807341444672535946130881200231189410680237296234131203656678363100107858363621502299659547214412329265192293312348572603831471833609245883662793007289597338382704435302264786234089158383417684793369035574488891075085430774792382543228473676891594421352878753986943815250136540174923737877159171615152441921819698247779395561434951947176261951406766534440131523734672647636641108166992790443314437880326850619412204651691268467200869796800312254154408440495983857527122861456690851812574669067272102410582005947332742436813128083244233589005038539624897627779737697102903973680744937496005690596555937292096858973394323379234609891992378557795019395774303629019093568261117946996427747648672088872378207100931105677601284019270649821018708559516084390361311562981396997736524286651517981597146195876052272120011908068724755836804294563919799821276041112238917377011607485760463137070682419751203116362611058537153987306917998350384526985011755248553919175082018724522847177546105824528174013714311303314955911184256748165615663077890191090085667663185150451575270044236932171502340387003964135389242114978783622543683906535665764970599800346750152954061232320939388203216564778801415729436590792058104017786433304006393401219211079438570376517888693857271877474100913481155433936486920968669571496220462362045960725027510604575617227482540412967372070424614325069103580871330189443641779130382997456234620046536639469612531126385355803182246134909985369189954808923935179582329225809866406970588461376092327374923958857671119671464253112961353652390563058874725776351050983298217172942399982568599339024588009546215165869136655202678558774178267885168858562972326985137695289021715468151973045605023676585255704708483680728308432349194237109892494637267897843901162368504553281827832131001699228211387973025057626212398207249074248602273139531535948029474094429722494223276833538394827805264096190417496434947706040437673848649536832496208902813240347839625173620290277495393532490289160682467258893022205378343305910728674583682173015214045692510684992318505415308458351861244944175517024303850422158370493174297021059753458631960301386260450180624325446310774057925488451647506927945136771307887003656564816664493851436199043226302707329051197118761087071263465273880678912227605574127495160522226372455000254277298886611729495792960306394238252950329130260753404735199157505728040358488719600238540234289104040633001914448465191297732844782142662865756108880393750883083588275799587863847453631228934954920318065611099339387518447983713167554927913835260169450770186071177996337206003795508141269722656515890385411104602233052236847265034285762509820732776342834297346115959136904617370922883803778568109755303789439049656886078513379205527221423777692339692062041459585380365757843531198811101791486822929023827739390867235355590001414005460232320664075395018731316861625149967454057914151091936344036403385536261645955508153443137642380441966897645673911699379356967838448154111914548592832090394541370078277445562164198758521962776161580473501732842075089475256349047476897633327696783142860082687920149094534372138081623520415833389896245429569529142930047342222817109690283779746307823766707090401136416424234643664642578882670440177428662113509503427926663193192516589073412909395795055779631032827328607147887928368324280467380158940950895072244177946105852469352864253698483054376295025063980122835310734287893444423307079609512522093967438300019237274086513461745977434507094988290439940053702877188542813495961210849194087730113614882812357896418252028682872470532423034944680250889668874002802329803295986716744462835279175296151590190011132130628570144427222830059089464074485288702970529011127732268164326373598121541896640644767455655856124957798526739347319900847444790486333744506308424593908168109998917455409346111167043760672448231581281625772533934715917611928674497581117392207668641665571317654477208327150878547638102019736347541759443241347789495939370571278922092515128632929442794609081577143657998151842078782361412139297823004697421629249901013472529059203641152081313720123190853898758301038305543077793106670776202245875949044244468677443230991770614606410707657063708039979940168571281565782419428872503589260192271431232709983069868878977156150694170265289576342910800722721822124942289179696094639939716491850815956824305035031614938032639676521951462683878160811540875424380080217529086762376784585495352507391250748724312912250278240500971678072381266803517160141804038498571676718902525510695296233336224646336003045535348428586819987310453824214944658937966804279279670403699679756691322616387371666195992707153937421159015360106837007844568224015939407465399757120061232646568792767481472526604838155551878184008393514837698141606174481681675725306514293719953326897871084947432706327764759473087559637088949501312488050863532431138214044207904108314961290247801267928806177573845908635232541983421730538177451651439864344661623972529254659728408464127066448204393301836612157844971975722007771078475412624380889822143805582480332897177640341997403456357572280968114896150601654855671722385877570263767510801174381258423886948141820579287776808803339344094554197494365718712655114016603350372744279240197271001715832073161523282594220754710086387085024862970183562451056150406062001307696285370066659308919215006397856762770320521388458898103590414239339340345507691878995834535124148504128819853137000349245141869393079421202113199119246777055619574855986489263095974650977203988027358307968944563332064595008041850887656173252116696265814070252079170892829998050713866226393491541190946808679443388035342300634780357616540068680756494021701540449186779062974423033256121370526793411558342240522209819911467098675359831166100232329989816410655594983528853313288110336111124226085885068344037685397706986580239096012992320147774041156684132110861350496454136089801843893034568921674639477909452444642639551776112913456314838038074185093845341027548181986214116742471729987870950700533168983247663701200049293743735736810784767273764984048050364499986507651366197880918471420529521948116380854425900152710807246084937470259073740668102650642601160042762131461021015668676985982406094076406675909050560781629838403453810004070211849162291493166274516190996158235771235293993782998459747791466698508435727536456946735523037913428665508327088761678538230399987970246221902427208604590036348801478891563157640460920931065680110775050764247176971455178045497080608547070559583326663694716532168291474914838921684746312452498314129503084602794295177182193032194283237972351954350599233237373965184670082262475517224244553881698612003166126893559624442156299797835987372214877983596551937962084879366583296042334357636324007956517369751503274940408072969945329722717483550312636306997735586581960132548563474134149594550711041212914542224779955931665431617643140384288467441734695390639259153255826723553801935052099227301893144774969649558924150257441923659810050618228531690844148518402892344440178146942746400566971154675975807025473751588373018504672337690181870464496604423493171821892466564537142765489312230578945912315020294821060710902289526913439923136081989267116324974035852151584161096048648529622962624834657794331484817440956815494726605885203536270052308860215312775918362822992772361626122763694871264259976952982400380248081868609896260891530080066134360407255958040572772249345397713396883010820781988273531636030116158171033163529064962309509138340973297517306320154503884759409646299459201214301353230605176437920403178433201823648055030073903811831483136710262908201788676997635365464590298978746938362606553419863758138399892539982582929764322252246556292420513497263877068792698707996486175876932927065983439307616546035863771607356431687844024082275900142859446756759965785299557242162033932595170873442698064585987329129703343031226984566134012862415607759381552214425586188576113185263082558586297659823550306069247780110644872070444221075932916024268156896047821479998965236784110418085261709269119677287408360318470499257118217565880634257905089553231694713064610213440091622974754101655335771321447894209894242924131822714205010047632516803224889142913542969870213279553727587440582213731355912678514054062151431763415772535576433161584600015552626290503551149617869190219574238362992674469023792696376655357399242188396874208474436295413932262308981708607077568257927577158457351658100896419275896358747270830237681972049116044467535985813680874315836763781845063775972681688337613900085737209088350941271426577465440892121903503659382459711354203668189425376656905004926338999070422418052664600630678728297943845326783449890079019016778948834659268615100700516956706521762816125991001660612894885078378710782391890371533473063472870859073138059740203545608907223784316584181162296155578396726353426217096812683870001477975926175017576617071237081503791699479377130693257147686647749459548608530647967818280534934427380711337300474893893993648824774898678070396135607770895134640719280869089719315064210252327097167800917337920013895745711278642674136567531561667552348936909493632705011162721030824520350166695527886461323738290192092007380252283538254624985522267727353806040696302140778900134136630156369272093399764641687253691939980529497498407529563272281350889607960969931112954059547628072524568973084224768156172965284588868644720085287876458766461433461455048491249166568024670912611095181816179808674781553220623948099758723372715101059659380252657216242293541910410359905363488732527172337710559285083281152349128308975844051762542290234313960724995131783934307185911134725887727360847376086069515043695577871841909697624261370861824564392366247771760819664165192586111388882090746434746487139488021437402111535054043289108804586693726966566201168640221436023998475798615998837162671906527880268330066270756001136748179382092519652219804972432395568401046430883405282898876884744175644169254905455698184017390973182759629130002356535569354174822760821736305573161788772227602086288158611432607857062699240298672208401582492050432556042217090238126754985925705621354251457279572625341391381972820085916711781473995449462858042411604814515657926295953411135316244917145724793190604941427922567305928031533764092108339435875202950028230296343726416069088930153136020745933629254038991401330117932550541484160834803811967526608534394812132794941160574678697954295132211005683486036578276296122632655725027995825756053719270934496667403616349246859505531770197574660930555843162779555776688120652940230467649444800262789756724629956607088670766173242576046526637452415299872568847391182343659624119611604073133667605966199081687321808740548759668855646957134994967383270167945088786702736751471836241187789238358375417245954923177755496067443269816061683910918780605110843320237885555654421009286912262267306061216417592760104819581533471409744037279795217617075552832266869819019877230238028717114231805465861820156494512073319121883448865143003966144845838445664214597137363554677733098990921094249305062190218975430098758680486806145419832305438215514436569066787611856209105384696191555610905695405814537541530808996935917947237395599670729204860635478161558298105282642573049075618697785210448496721384991708139527039630276249946490263699287289001308364000718778800400940179599127670404036351873926545750354665106572994579144125317249580222973266269192911407581387707446313032301524260162275134705301211757368888457941965073646939697761451964154982865757648960755056776719436144383437981197889948333593669350141616885024267776249140331042200151633544722380821269198032773472187875882973352118446294948194383267212595546023522761563345709579159329781050176810568764748562342442672711630696692241312883285349828439037083840740674951825841209133180218896027939881828945351085698553129895412223979901403371932580367580133918393236471719069054084052947394590298618886925651539852171067495409430030923996253509963048583843278431322435460076184364417087636036439389133324240961408287260373786744589511747964615560371464221803992251164846493009324664548558398958481853495813895208762338573290991884177582667785552011723616416054109797915099827855686113484007421241009864295895005737530729560509820560001755997316965392276399510612758745170127263895658314693623335057753344227835821629257301405472838703515744906573573739349625498331856976466841401956477673567204699285602756357143154611537581440892289486792315294860705166509207681726237967379708418068828964396431037506726694828528142784328303425591880972498450741655367033424527627540061865751242037762372301222478723685053470649921292019930437139208249555211612331450805923157203085322637945220390484911793921611843928103563029799954478480823307208930443777886622958967671985273855510754117194618998263902947403404956099122733789395812167713743340853310178617667840730572215133078702835487499049402758570840253934154142957838968466153477544794806900176650776533635775244387919837328109261897126546221007294232276683514788405400503081992191139914156153629742786695753462060429967005028520553779497661815578089821358554461389428231286646937219215727696538488765156899650388123986562998016022877875315048481868331599344772065630654500487820468999459771564844429979574851375456009368324113355613565080497944758466126466541897454444068394945507468794876006134635190105660970065864476112245823425711296107402255875702455594624409947711763390683422673800186700041337926768650238663418327600414041333699679114888490306195292374903931627981322494887706783486479472697479663759482898404509020580316376886678895492725350951205140670293907284342503622350579498273615885666524167327775383686089960179834412827773082919661583561542432896326903840392748965608420189441121373752773271886705594415130286998682317515693297423213166200861978793177459300163037112239595212737137161872292473182051521156086387688457471397638528330783818058848220193738784400806289059092310184387334446369222101045175023668565678683186395502488017165931408091897763651869382969739524892825318911451955755632960390091083186125540702968550528770700949150778733520265662372299644667279884777991265945633802754510673777400649088663141053572134767447074424982915207097654291507517542766578640959103022304117447008082476705247064748173089108257521938623059263921799079598011312576440667615308687890567598017944511671461666246584311809750082970155286320002331015100646755939738120658843328354877377054207438863877365434983923254548179514800820268236400712136400522790912027373702147607163454121082806498657091285714704528146584400504900913288594573175671073879358085255280926139145183640595620581493143501597788212429773204451597633556386993398848920734022412482996146422116563628321453741587993033387678450793809125226337983883800962431697952170001772839410803021949938233775137206036461389237823347523184101238251965257819108786128062522022669182017880822995456304682865802644135578930686774529097149192344556488855370212303584325292519290511565537849132169488805847556847122916883762898575456192450755560760970259973464234680588507094674824522832086525669848795957515890480132218254871883705885525747054124434581070627557154320973239045761081249032199505359395738985668508475261755121190317681160495820987391318265609426251502124683079735488313949332995981114140408935259929551328999004592454875980835583098697747497410065781546580932104106020913983303379740185305569722487222320435225119379434922271090151351762389260592178415885091031422393867029055756056590932385205329328808320311921618664811142608934861601043344396814800732718006806288306171133255688505880810073087789451394017965524441688899323131942644122451287485394007182486383241694542818454251825153213527134634665259988985016790522380026767367744520648986225048114186242000281741262163173449166603068769820817395054690078712701552514765239696108292984367580310657740653318692714247409715281296908780092484763508646958299221697097892338024412370708017492676280212184665294949239682902314043636729546998613518009000197381910356931918953150067166744316239531210698939091801021226488319065709749361629170351689090573263558494511024701512919282483598311700776990361843428700405456813292030720739854025138105209774073860133173967074642500858273623909736828959881648412267580745073536501053726536400563524464808127404699728220778574344881961455068590226112267591306600069975533099412429564254384328270038284309585061881245985366113913294133018073298735615397753500557792533627871317355755530837840201047390240916970499232975097218761448775773275124333383911509737969767097431943926057701471457668976368779684419957232666850589269694614532733882237440254334287044056525243267388932019881080250387960144066434130756210457917094210209738535275496743632353844975770291919609847665963241689334090100514271802119897207637324485270627708749577933270231717828075088969377119306695272316468877853583850832956473369198507632310880518840112320833983344996918642742256088437591990866301962501298872304763957840104569063586717148030378667623851222794272928355659584806354113784636766460291794402367742046371910882850291493560732723844320438029134417109290012864551595910609426341565871393920305157959448914821258451889803294657384869697339597341724238417077619280843035223353916799603484120615234325852801255761353936491004236758424403716278088158993978048458662087747381227503386962661244614842270037490886915212263449208211712822868141536281135209264582313353731605375050099343813013310662061781621432067396131391387687774783031778933852652220215788943874765384495117226117816269250981078808551536732276448725660701824764163910986211816171206629890206625605448598481760444462786905569675128417331790363689541113182168302191324980160324418689278468539432258198211547994403608291851191985290882337128520299195692582441768117793348451182286606046988584787488485430931609745402378667037410359304797164253428387159767927830600939983347265718756858080639673870391665961723968278618738279367015452627989961679432214816784390214235861963742953143308663612207317404704864069375288993972115598151304773567079327670100527162133005605456723396069883332299623334459330425590524319645445388053016806760869544673264778387082203030675850771072066441183189820470600895174830482775866258761833948405945467097445748180463948257580934841311751809761838908601163511427325863489363557373278551959481871764510081323702060245656652168257412978331765632095007815517263155537390305965494300850138236104683313614476337467863226088400449486016551288964207305362646788696307958088875949321957139524048764022787635270669580007638716515571240715814608095705078948996261659893739276241171006986330774534038046972725404826538660807931012515127125607078731628505210908768678780697046926480507780842953465188625766009131455234662275440142927633381151938217436822190523341052470675175132785816245361332943266747514211741878399109185970076885024553166928163543689701310863306682428775652023894306921009171281086967281143330694556593824544694337083110852298711335251751144280666471997353398209653716905859309149262525858903846059371526142977266152042055392268130646354208337514911320220673118525055695122309657507499805121425005083766655798356975441071320092460531464919875586643287149637972203153256901678573405682533882458283454012081065269971537516447870644853300647465453895701509091410339626599878345155587641245306389732848900916488042947223860347014798395710976101698897796832863211689388866147160942341155328652117822496297709935550443945250728622848054928121929139143270479974307345750890456694066012747170476486150248870928286937876908821076180282449477243707943362890297628052234795550933722007141496765090247562875664371141188847401642127299602860191514245509537507539989007755799469538151492597140314099956612646741293086985551151821875765376062171295323266693043400881874796222397846880732270693145272469542392458527764102878571740758449272279406759027159277402340600932724785188280236925651340477187045014216230420627959382770402349823231941923554839851392120854192002883688444522525995563457780766491127997913637084837643657797495858162894727851779595896967304905206698921556799856040297083149653067110012320642642560004906197264012738124281889277376835747544576967444455826447511315563690570017861272647502022140496939367279848422721770464835548357263453926834940939607938020739636976277938744157742991353306795018509695036951626738075463161071578529701276316580707250838627345311245459078506871117289866110982502746802661994895098277276594983399089229671601727568271419814434903383563066323651293319673356848134604757902856347216401562911756829687735245583022502122137926630493694113461315229816301170203656939173253969859479552953560990614862663306161743763927416779694203770712407936090112527986897259007633396298162432267371456922953815666387518274060777766253622922490101777142705835946362513633127369056233157299582157802679651854709392622881629644779087265329962224345733905696802188035084199549710856241823834687030230444678917340430834880463458352117606146054503341657100667688769551181778645190988007416318738386351351627382214480697198862783580181332882854630638935459393638943958668328996265155544646657176202935438337898199518224704838434028871889924424178224721479098155113589326155638755507915060079616315912212093153985973089790763027082822340904295221530336312884503698786808953970155933341966323695514608491837564166915772687874969587458489088608546866968752799046409469188242600586959977630560730247352518181429527864206944484662287438802589440845481640638666009933679240826875608890385639212993253982519105973799601532439256746932559183063132572731972355828349433497182425213094975187292697857232779621498132608247349460200357545438705218015753168418981546669745714523423996349258541063275812270554553875740134862604255325598926019538689852183642617323506941153721215352532437636450838009097867628161690385956860593468501713928885887542849602820440403358020343526244459694545869668545134728167358135831697764260580723201309718264067796525639454224089443888927972042703409835613199585827817230538471428029050759489049836452804982065497522575781840266887850362404787213556640519102180119012928799161730973477466630606269597666379097033484963609703216223850292753950822288576510609224281133210523214640192512611327079871887292268990870109435532388809625022995113975724067259194963815997050123173785897043620806964264650692769836267254756472578963519342049459738757090924713610192457783566428299303983832644463287143900131842175613765331358804775925257200416368094691670309403526997975731002675914721352042429121697232242737847689379793122688856710038269346507457828494412433880195018257520708322448322810181285251701790241379293950059515444183693464624124473973121787616366698724156689389166223520441107746927422509014074878200886309738769470994537534413989699854735055872261395239148841704478274355269782700548519190642249299305931779737970749055456585101618294657633819257042604404461982632220523346403342293758153008215936033014545321757629895428386068848981062376444290700501824866427800752439609478741223691852682112857541981089358601526106061522022577272740194719809906301005908651027559780256709874230723584932840466217734642840707492598606253166785434449513258876702508893807272310808435307809438379095448169834707535368262284550925694432045476294157083571171444726918585164417579559126665884218620764449789232580214440136980225470494214835544351653335884494099485769732072446862370077755417970592805355460196975712650923581959584911220626451136680900240000730870287675320081699628331203010549283426259829740626041954600384021067679748705255349978098527170664763705029770218123152953718050670336041914763248762194822989847064879327139092183035387304391058762826256867977529744621999926128299502117204347801022844008712673398265329596351512006594691629278547678804380354515125717945035256625957859819951588374584796358613180804420189625699119667966248878275202808229673562037624385770675983738096325384936311004842481319526812485028197106438834946797326750107843282949357055262834456056248806780024931325656540950811900034564704133003443426777898170668229418714017169052205606252588745605028097732411342308332295453416388812792328392536481830622239754427320618590181774066044434999989464534770000694928168577556065415434616183541760179928131480637304741823346907033939672972465117817777215846199072471854873985724054880831537705416544094824371524212342927130298570750411175346334606168467036243583228662643107641814918366823978193811468546849684513509667696604835717429829921933233333333419188520559509124955681213647948386406388530564982091764463706030354818443555436514320443039772601254930009764015396288025360622293581068818503815035337838970860438720038104852125522499294345918425299495374983731325683241719462399530235433589013762750411172568343240218984749287287759936435839694129278887359981121247423641337690920347223456762691604277285987025126487935930630408007608462188675437761825048737972307942033473046311940339168914738470418584626719398120932349249737983351842431281700325099519261214388372055877043915400359932529155401505381697084097269562682830172085190156952939884576145667423525929511593938097359085485871844296779444077413490187133669503134232813363380882326589175620475596762390081145649398520336042161383656985538779022410465156977964723871474438248740703702750579743248223960536964995275345194008259508488131097767231453966155528198213156569483327158775089359391486440369723988331552683258993869660131326832015015721785920244305941814664640305504849656727733040652297543085741777792376754777151299368582294922108632310888245212244088723441255211975403522461313810713689865493083392409095794231219524867197171125576479809846734129729746134490069012544943394217980069940011400797722920909188522159535987171724109335455111279864478416365388643365009338503379320360511502731570257129577971965015178412137096904496365091104037979248785616359380221189375297438913320602619666542901420431142004846657259184373617323237949786123041686780945102064610267243303741861890403527550783328474857874806269788879457580161872486689229214937351661141863113385517495826723921244316960961749631901126795061746389302102239745842784888022289096904457003602504041316258019452783671841151675963868146613595156519153761051992298465896036994118467723773791476179624539107837404724111253382607313530486366374953416597169966567700300944728391699573229643244479555113057124955669266137885665500885238230304821131756602093425886585768511542729618712541769572309394927116967276302968277403717644016607089180851052475467260014477943447013249598803423971944032822906775550811003795663054143071174961658063383542988052791810192273901392740126887287026101688451406314865749793377353176657475151638680832798090051924628948095932899466516877328287573387005648302605078523798372015484497063979881826145713613150282504949417510105554698172827090799627569604036791524617336786206885746279217110573783258997011016072506531212332834067685076926785136991775551522832858838846462312264127412696751511275354082836198447606218947583269470644031339804739795806382460097360143628483130657243737135890385156510243203505810245792557676063562208051037718452105034817459567336118965716618040299196928706236814378287535450724554403098202778979454849002116450714698900764763830709832968723795411429127568534611721833826076215819054533547308675886095139148162800061177262427112845533645199715081295639000560845847875344897378285967338351984939712974683859776879298302043214844784088193445389442212531446490538634387220843080490514006341863993446853731712672209891892901611830540324435020390842314158834689258468828351097936557163416405710162279023593394724039874435781610200751070432937975084507590727410157425330894480534473671913155949638330157012443522821908900626253241414227949366388170204029690632739831869247613402796215592803029802523664648341028335371239230793525595040856882445191295281736108131005762319911213934846001626335770956466163601314975220241205985778449035196049373911265052094894903090548820606060446724580326347796573750316838939937731059566023483908768297349776586291539571932368320533307461840501113917099637920138464634691626300712974798320547052115872835317522295944709795892584496992567768860140630512835797332983876770647998063046420500401524560622630958655981856240761484376397424614624213884671502257881545462905538849645818936360046496224586536867842368525870562148655983814452476675837362825257225089462415028010353418521354777725057401031779202860946366216147690314761796570274332148816347278145952238709468231368662442281739781537585337357849883242820995794296306278080405357550356515278231114157595643703162042473001223599166131774096954271367155160561143621856378414201185863049134933878576316603677697952406380347925580573797006561272968157878281146574000604485566324562213159916528596225915797790871814522875513483627284109555744602488111800826820546604390196643843003969633373414999467033753478106236085010886304765993601464347205519049567075481745299844315485239180506387244701776066658026063808416978418952334834172308106404975586413853910933228554894040823349424786397504834563681731548086028749442966263084820565278501066992840219256954228759402925353699956457979492770293258469298139794791995526130873280652913616262239063592266343132014290110825043028679035079262851317299652737726492105033007080177980469247137831108184700798264853807247531650083835523179688990201224776000987507537055615729845081850015327648078428368299504752314507669160217532001361831131681880212998040339519825818322060914388945981147412503151775614902283314412949888317008424585295526362971980164464225231925497059126831445637518795701932038403933530612012457960847354090400533376172793948628217931548886294221984712871240322041638180155226637663607487863136608521080791411202985405392720373060096055192405229420546578064712335598001989922869198375770106688762690628911874807861228743462215294093879074111336846834171605032806790237393540531448591546758817198509485821333316109126352556641409995494602856366192640573752141566797612405009778710702469060073630077952158982466441267870824338779280980322293819547281721837904659949081268701803780946817955737749141514262441187878274978762773087545736816641165628968494586797760847676293154485426348919119432175367922174603333723829437005495270961940236339276145328816658369230643499864054134316733417988599766551133623967241868298687310913177642121652771501849354880944079238464983991482861761101345062494718431393330881622040230388208089452428177635496646955775687817297935541568596373764036597600137607270798473538056102871201554774209810248374084935432762568300937528452843635152121119735513836759795396827453941789210068574449138778034224649678760892062204390730316599439295099907944604760894031880330323786197447623355996628138035603895464279464487187620817434307190241159167884441350192948139220764220708930338339310408850896759003447891939183945445902821102607832360794257042789486257685919116128163989429916417156387588493711023400150795444861488347398335720494754607991228085089294402842664259819242941828228669278706157605300924121774618529150156185765497261816607097808657424514458729525144780390016694722172325001286172957927104656018562128722915309563432420699340546587865506315251297008814426079034240368405719846665249108837629362036460985844294960829066101603349448495653404671637323927034519834461888892665485334083113676710147508365339445225263863884176447150098594933511955773552184591898163985643863490277606568372355983164827793745452698222606120844613866193795264180043145590308992826585780090639466098183137390886344201411218553691915773774113130712260172940610161741628187370545544042696546208628646925448058483891258271546873008326030122395170137485999775886709438568974651836313258224620153645673658122376068671262303664936518413110156856479370324828716863138694945722015012684403625895078026904635907219585919974978680755049660082030806894219977194657956534478871278235866549743808702466762861007654459939323939086092287146241415273560966144075401087094851856860088589476396522863604148534915022926373021115351311420697823199515842943660451106856013421145418936756281368506841131538912062372412798369564577112182898189638590366743593789126949422819859158822260852391858793502075498560832232548097423225189884082874062616733606891303591177160625549183721511968839318811482188618893657705586976716484536929885127205856669390874403448425627122616409015832029974774695150274739033353649537485833787116421049216603946377357305381564197916227607209204110548001915621603327518320142911286686414475659825384246263854480197421799540008170427372988500210013689113393824876940950737028047671267558117553272779336577659916686360354746273641891614535376651501267225503180492718659148974505347722015034683854243476443017242289803406429459724892946905149946222173420007538375109609294825225796343932202494042153348464934256314848631795346654120624213339511990741773426770299186162265560424456519894548338625535584231979651282336179333870614388374626238089642422633277135229677295198728764408379296353892546540776504422690809669200289856001221616339595968315064667729319140324098176671488748020853038017104788601564625578458222631153171849854786831691992217749746919638218811860960629162133088100045056227922638752850800183761345947735454613982659064225329603558085726839515945985385275724906079380186572807486867218533272758961132763204333580432618570359845038550157437999689602075973954710672114933044788547812185054364408276201413482010538842776943561229398608015837965160378256088192238546828754024056808631082509833075235914571467098477899575672983200451696802674243050851563221316375147448185320959909435317023239109233256901723096819743553427213437510953702039578288224317330946156126498573123263562111935838463864375190604159762678037728412827067262113836551460639726220167907889146639155940135134500482389383828566143177546108307701119824828079897603763816594378156301726924332929915455989142715220136804476192937401431251827002205521881218309421587221776197116070560937028134394879804628070656100198288327547254535864822107730633429797056400373934428388272430044020028760570010448392045575455276403905743773836864063043266227036119262704135210521002683445420027052684712578024182735920999921696144147980954484956428862555650086683143830169823981970529945507538426788926943783475949619994278308100066615153177451150798423503504801962628959726982719704726588239896957224807170131950321034252452825110805565278476602720168539875403974367969999529680067059037885182700820623680236522608066814085079625860861561740997650536473749458297947851945097494345131714099880483797090184236382828056689809935561714023258589508193900622634419870864563758669595255542340314274705103698762787886922477966130096484688695275001917856390843573735462953658194615688612333498735042707916379579703585995991667200712626936645254274303425142327553031928515136912333400612658633595713999882307238294088007848811273878774985712704086102311776526264106980060933662868460661457003401012641621994872273696490639295112057935780457857856194612608435874985293793849229215394197330565689607816591659153740880351335882351139342708952285162426661568003359391768631283516005481011045277529063573550032150790161149453217023195490383272073866052174777974315575647124657879726707458232322780158637375486461446292341375724239119008561658008529456663261765285472345276073224924000859471513437960666882018270633959532492457944770382309044447658838072261216763649194394169525962831986070343965136476025180127711158849424397083132424731269565200511301120445916192916994097292488455895932120284691202113879994438285697525139462776787647832748044263776447078202413444318297135276018683165091193811062704330647897294474313678272253230766041585115783058746423932958495507701404674253823914563131069973291258507581530325635630325810891134579872867508881961592589579361588623889715258839599941683169815451309161536685660982503714513123831913894871061733888688874403417269957167032009414532052960885137169688406676915145301233615702265263132992857894895974983800960250429387164611196924094809037861273765196502305206483297526791772497471547126397977608439799063249334311165623273145395892641054640559706355121148931926840902577895998454996409525194078194250007926631385700449167320357099899134465892605051640981475317023228705129258704086822783621148451002729608082040937806157005297784832394140242457637478204976204806379070179505332107135077315673273279623274261447036858678476733609973875407587695313348512088250815474726810418405490100475656558641044254086595852083805622051566126251765970305866330630764202800407492547435449808652785222530719483128146131172849523380935729772403618521795545022617267128991314945313359482504628238604914147274180912819284852151225413855695037746654165911604109703116982216167370567350888038640983805658942715004331677421390571284352900719334043119493016538270241130625694855574231260365138151812248460135011541452767355508125839489167697201584861251804807464674359379414591704267544074365698904136156184276257907568313223009891942199449606692276128323915619272891136068152343272786905205383559468842365699429798741219064889453421561012762362870874997745572015545963117331293869029427525120960898475707178527821201557148049813534688702352991966277357307962153610182104118546478747445284264911481862410086296581675824717898245923953935606476725434557117244892769446584174586706617930196448515117181571917369545629234608230410573445375516410495971838022831050785578039577706817768420190460859040205490249518966798621618459743576810058066100847411313476843336424167068521914557105199771942107434936056793835680836461891556230362243656139976273956112184230166656801805606866704518901029223259821204104486909786487349443619984431046820074524616488086336252488204182156210824874320776725662268110996561305339218842761438680578717828264346448037982915201670919243471502766452218706186389731371397407092408368153251461053548402488567332856356112557033834360670552404516070153288081282168530185277793393689774746802013976632903250047433551785818670001878879238757025023375392644968665253039941289417802109428351835712632158697804865209466231685889376826573378215244344894209584206581554860455496761400789213133111349898758343926229636209096135946476349638110982704492164714012535749394328161445594388690469175447074081106688981488416637834906265557507370013576190739946847068470022512644892115436532366195426385368730299540945312660088504339257559596213204244353243642505618094926572601820733959786439570412242792551678394764209767597857700373799401406128333353639911296766477109021540171647821553801523976060874267792594473468174637555283005114688917180886902485653095416627163635228115684772346969108289505929459515127795968952254793400012625396122332942262253564617173310500267566764413114443365676246862102030677349473983224213217796865608717861963474098613816606998987412381160635518671554499483843094382423332737928789381974870174072946618989297679342848768451172874291644645494875140314336898136601915028885074375109750980985844423785269869118183074203592287676572606364312320139890502951767037460595751669716781274553104608505519913445906406807969507524321384613367578527682108135972690685447315052193592791149608151386258597666268849644258755159658462730229893406616210117547929543722640784886484746170793498309620482183175617159412223675193401792596421918073901940087608504617907935554723004625457665165415746351190579158900404186344343745058005720149134873595478613725675937573846991359858807203305241775029721955775746943861959537160918790800570644496366384132739569601348050094314967054220655793624111249333106882910291932844640537311683782195276821860767343808430198239979251277864553679310193761302399766493663712904717537785948686359519964588160818700094530824072197821228406409930097623767030391388582225183460068320438751112407181360839374633281488908285067785959838835110212148001675143417042279301876546645436467729722298717080379959769047596331600431852144141028152092728549128495299289220694889590291737076733314216009539127489428005830216698562065458625630906020629851568449557957987360532791350668243098753473314867897938222405984376302380130355716941760267291722660631845629300969332604789737751515961905280254560339921076188171321021220262657563616678784550405506842913562563879290605363430577037305328550689499013257701587028899841600459811571706928766032291984402326755976349900705058630347786148643446466490726492470118909242922157439011316406290845844131279181641956826634919100774796673773667107359705930891855176509436761896849712400251277638517255993412042897212377866347256694106245463286461192907757086768942435601393443347831080522650188491477130182919245106755124419639030777411003877051205322641524779563184489768526369908291103387621944017241453458878202374554077956720061701014539999101957562022019084276148245094246975995249328176752180268230618643072581876014149971874415386855371455288349020421825660421847515399148178084177163306540627890290358710760515682905412352251792939824538210602843083197535982802346236348282784060075271365689979462226860499129656612926546130210815070565870800710031939442570637050584915352609619066502429008173709858629352552839487128395144959240703937162769955584769454422779326081226683637353300991734285804882736695976543029131597079333840514357000935710117152513974196863556934453197077037607805360456930492484052918951998431101769976366074434480573194800168758466106918707338217835980822678524432745373092897108557820264816220546075137076355232392518079081810167128595990532990374577916160117437924814644755431521568593503681387060272234398795179488593158190859499305494260241337806349941335250806953221635566085963429657064966284351722424702333573460746932714190863091196685080631095850235496961591304887757711746474981851989733944485691622951636196702744850637562383818464872992698112577097506596873057668493195046181914412604149903927809043561243264686185975866665220355412799503543555183197607363649397410952271605065884921156522250810964588135370091780042319640958749145498237847512459389971220673339342756469231266817099143566320410330037237012179823560836261641433237826801270890667166859857593607905867505986588368575590526917867412471186157935222156181724854519466908822445046249964798586077368324755653714430565370179624497786332397556561162673241926873873582688478828442582678096536204179822552056798647475956666965642523097297907984610631717522323808017971303117771626415382849798765813277228328920008922240256783465143029027736665400592291873398295979446123178620588925074819963151992483450238540297346222811898626833710739778653283368235310124828188628478557309729144105747069651048275280875720361142432503677061690880574859509836614859579637259092080853546203441742614720120482436030162532875060271698792822065047668313701637889326830243227062148868454535735464646442777793843606345950002083488785774486152959614322171245109122154591691909640513818609110843921041989622434781189052526158959620533672093901322675206439559702259529456127418258524026927693158907083115465390566337057580513138146034905256210130109747733365437370362527203496485833873142171104805253829285615907573109374844588072241533651931035185622200379610353778813066035968895848049680164840536694503383525876749279714257964126392526180433997379313011282942954567530454974660832401205762030325576589258984539815246945879994215566928762636803431839321050486003748698345479434663297348422256014209669803427857992705312660266501699037413926528858339077798155119878994223734408729884083241993942878121966756159820422732363560174974308988872385128051047640425048951038355387388741156532791191680379000622940121785433012757827465116002193267626616420986847534031704710879653449697243923172542126768528162779956349190016974300323247030518247228601450968278857491123387309393803028645404602506831286177030251591934016990249967388991570523995510703432745732875477438467888942379698772021250806852601080323488764454954954197678170867814948084863400416237000419359845953344739021081495786521989678431773557920065380109871937712656743636056798240808457410422788407506856216810222846354708104614449853956537552218425492553701608915530115421309548243510287388403104880509420620726319808317713418745063291773218647271328411670729694157589591361013271067744297827111379458804128277810039807647166935277659388899973170105485499750547438077676275310175194113608840757331596705541397082148863433866177467396382750663291501475491776377766433607808507178858371285713324411327804841457903697860848719162578690823636216271041496374024699168856806608780754571406262031263269522544606981913325513698794009966030493326622556609771077277987351780712719070149392979541623159940407042598119001320397069250614613763128103967111526758141915722429947376177808990400424245671315591630113977512099731078048644270274782601148750842938835151108900892210490621363957716199895764697205502625532066651452334553706634463801199848120012704070772935718164896185773057433699669925858449246050554755568678272266341479471753770447429278393785877337653115866302388750919271709101448063503800252803283096728275812248236723831978753234836613440273218347770769610226995579384473143946493317200138627179704946554083056679357769279851057543349736204830372931095665274297561721345704647723167693215227766814466987978804582189181768188757141837370927342735719805219491327810829078656254330180973670583984458250399615946949279461870766355844068972361289543533210116599830865915794315810396422111456151171068897637941723210080995829669732565575694162938312562508753420142688546820891097355609956863105098963546234740758748085078443724976782976081372034866135903761147050261449502219551845937341021574264064352119875704181618674076796368056666366131121524965780066938988801625982776286388606335658762083090117895805331617438447595092209209700121815601970737026119625589160290606411852283778205296934858582685872284637907552099054676121309305051663012983091690396695529177587961732035169394093042052157166075559576919727488271784243256496280974520218165776922358402543463474641915111650599448125949607110625346246221723348905933367486503625303965985168204130794292846685031860393723537808587800684042796064299006187686565304142195763766883209995853782742800108102217365335308932664809282067580224113526670299522429224741142321282313821130533994803535839239301387695872896077024988787262088717727656944137629709349217679122058550890259765317030133712268757716993845192194171096651593602622832416022817675739179660430766907016175704904212616326140809027576096504756258116100298730584815274508031095873250531150559698873701842045879948974306583630984049092718721665937337488110575322172739132906496802242042378828293008067678133581585120144780662755690904940782126117364329653435039912348250147278024547008796362261536810944205805683595027567894678118346634424571181222895411845046189061017544285544835485875402504065417092399284044413978257974976040819003244169687979979127175545437450894395487148678057475698101252133478650318574501211241590281955871951143139773375462288160558456481260999583278811399118383312185376627262265154976208692940658931114665331929170423813387205765773214271092544071703573105898973138421535854894285715019416113248835419572125561112719375836809842285034057462549633980051918742513814820638340227899233512899985398697930396304828766698627580218883201956608264077425133755008642329649657361549140536960337754979934834879310144076631790943096883382834471712295671086100166309548158515444828699039078107445185839172534715885150418775699112638644923511881593387598072021453549258754327979690185153395576949477906506748704919864899202077243622649744205257562116486476026193317437418314244459009700112308069522293539301103332626521639276400546130832011061404883617590851344928695647092124256318265035802880027978656694950417129566330171990036602888858546309054982717567801685357203992261549932367613755901098816748794525986809218947401794878514282144086370686641768253721661491159281599843439302726611315867393769926692828264967363998775467731196702169943853972601475130451286347585872988319521286093537311211922233771104766852028530203546988264220048999785971415517039702581282875064994354947063318062112133588385834164543847611638584271414024258505847862142282864006678454559337345626190883806286625634657784678750514914083853976993907387706187220578671553470175670576503348908047104900702356947215168167143725747297285516712287505161053375674579534217331707416904479220279195656822905488702863977746184568365415570132201648956838818220968616302208802718157843850328570408093233365920513227941346242503510035096409106659571141672766351087558506382134623506626304492934070369863362704357207722808228714178193835303421600125799734389384020955689224083434058196364025454592958290889649415389060443344486674007599551834544694572181293720603136944417043206331293395634374157444549410522469382216816585704966693723358517405114952964338626148909834923827229768460949956907956427662410784277399693149557631643992811013447408409714221381272555588700262985386852732382618884999971787621247896273184935995937408343795892007275445628466576318782941425884936209986724553984476683858382517995425872658159917295478439470767869134411288900052777960218539982589243301494879079703868464714474207748637027190002806133698013851725588107576559039094069185526958892285103789846897075017424953841279786043767667169856642150867549587674469744183352025789226698753024383700644685632341389365083194704373162588111543032528462402104219305174315357964485600624159615579796678514325822913462964407967573233841628351753462828400932708465697075141885643938691355683771101183105631742607378844016546454341166268088157335960321874145564700406146497995720166578660019773313313677618262208562633336712196959543472639350136097351803627555180458277797164870278750894760772126894725897072882559973653741675441807121823977712138519346210911342016217778091868727735326208256640407540538959515621769327627658454595085395112646422252891198515545788571436256880677593681039600775199250480094445947345798225412506031743936421364610662856096590992538942631942293093741266899609774135006569307648987931078704320857097883206478050455956085947010722514718287686823417988946131818996877133925950199552778240048179049765089007145611708231870900678754240389455127603200210623017453449044521300286313315860470642763279234182660378771610937408009492619614113346205662651478202635367581333824943828969780711841407078428186822921227303784585709151926529039280317607034605043049828106197207553084563577973416985171164355437011585235485844017758203343247066492409714084907701938340225804659483405597228934548004137372813301088247391038045127178681804558701448949431375751564226141384317216665975840895908694361787503481566616220301317548632824823307174534154892676952163284813939657046586866519277194122076552433986726389057156512230706351942536495356444150094213913374837384871183280374237711702396436969761195569158867637585871007477807231529013616370381383350037115564204605752703972570576719046114579336759780447603483754412252090662895959696550524942210657449540563735478089062532291837282523319875482066894713274895282199910949112368412586502883298178517872705849688988519654860535428387685826728927549540557303193345187038327315206093414719325938247258727692262383240165239175749944193336958414544625225921604746867747848368565095525556241148643831995231227759059593011023251299944593176423720975683446535949159668135717680775326524643594418711672865711224595962358749517094789907003070906046478316166802712024198405306876389767885504066202296608612288531023196833916281014746582876699765642124162433070324611130313321871184926731793175660131065582815809787179249244819994078079998104822521554640397092003387114655842345716938294744018103775032678483337608697724066557377848871474692820962355056693371445268090425876479372479971289185199308191228388707058987273289353538194791604485129421309854531538452978158429769529466140874553262507049328824829839230555490318604633858642006931148822636685404981416867954504741631274685467400797966780468895120879300614042932826693727508785187877639343395239580486089541514821792432134409493256311485456159470559019328750358253187520612660236259120592826018026586466720291153313983151497082062718796003758147419285188079661340845553724396196634931084704703634809703837472655091026153287594153199919990364760174729156610966071469512686200074454065235001971355588263579496698828542684242520823102254651366245556208863864122409396821963566467225034639818015262082065288379903995229874234407994388909722793766375720112331112711098167079708665921558254439319633234843342409101400698806918339733483364250540417374967147719070193790103183184896064146811802528599616173449659501910338457246996673581850746233098428251652527034341369987220374629258634305628378735520847824865128849524821709162797488512602450727518837312467850735219395330199055555863762811074627458511556848830458532066922573840969854505319031584665342903010382630440575117041177399495698496402660077708630331228493559008198450876686200471063786901889410776149767260297044253322145967190869858002969701165374320322929670952931070062247693822478450982267224072575418090791985198232152678463793647054941645046302299384535136128557462383764210469034862869302731537348613207440002419947381482962025823256561465061275122138717172061618663471952101924009339208538894537951779363412795627865291911919627865892585752523019451940217855502908189204700608788579824857558726545366254478067180987738860442435374478346397543001343250642685760550702538509472193019160302938755276005263502073175664266466749540442805638330627075570753946707896076249930140445697216428052830786279746984057888021453771375503001112980468985543931173153494641839064140363159992681171400497022526524941071401708974314428677925726911376248871315375959039244182772220636682315882235068182581566744704160974603174239777854782912390876179723075044722474252464244349609293614775426820991087450825255839670116160050534805500679033010502521559235638527950573107670598455951422821298530071808823314282209344194061262284076603105525027454159524467859399745696116567157653492447803838573363523414786575589676369986820897770518778907641482415569018384411929389812711307310891248253824903311866179961597580367606224937151104172539448708117414842744793323496935348878805368735795338025644206771817228106812780246107510693216688537523860108157667667134390333047625653328808425682236165066937065273176225517137944061486548966708531091178792562084409325714545413393491146345740503927637753596843587933491283210533429241280869648143805627946357810057832259819466897393341807936141952666258286804468281478317520428497326672583364170666610349368428793104909770317119609455412385356675785674299436354325075825011629679275110276183783598728368340321387884116084579084707942764834286637570197352889256723596885608002304979047986861914677976578202742391916774228858008794478923350559731847092634417296649518996842901890387616345790104488178873496249196023619554765840817275113317038524508918938074873926803295151507560882763968147149648514619889410929791246987111317120472219786926140684286176513142533572762157354122408375388937582562662318852828480304110816521689740032735856876230081798704499422691435921898087842014668552738705167414328123625716109669927739333326829485419206924186958479827018770500242496132011418909303010513142646371652334748383217395518257187274580108949634930210837170030715331689843984241344244032836670106467308003980758999274265878895876570235095293852161439605940540236596897079730060279215836444256191009749799859907720232955397472116281087820425691179775075980482239242951823780101608584235522465097285861371982399277644115816275288819703802298925773428875583061380797016990497073445727477189458451469488352097274521427579735918468765500620527611585173968943565973989743435009054432010779794497630435275084638582074213627378042080799095154070982973656784217567474192146152359666110186799046176401835989950575882341800124259330114052201538231514368072199493996018799269068390539376301814928631795852334339486344761544951642201579023951358225328076631199623714740645198712250945580190384289187289755264999083185938613260387798463013513650667899240011401862002768854455162033965417062826984702459161392611052460945960438108900958329261669982431637558518512544467927548951580429736782565395082583763792975265692639334718332120591892004958252747191990647720949381794375893671375836306958900227722762258440289367835804443927781405701155714134976729332389286561589316263488066993865311811993742589127995099126384747172336649331504943844268728697167536547806606982855577876377221740071410845124493841733640689930242044044197443648367920800005010564058678210404779424465527499241531049052204871962298729505453077900538899813529588442728597770471103774414948028580723089927887503571410049885937848988629201154728535928283994003664049681757578339228622730355547518739488026016981407309595260545219504575712111756189554450662434866295468368210148264241736571807322728178501889938171579404871319031624291828401965100566188555812110456620488186932236178468880967319206192627783745720054517346766321383274017572621647479432971481523411506555834060494199135778429906216830549555567923464474512745452697808732432973776118706115245276001343024815729902156858802104957420540244356198130991378935939069350775439330810234031307840937024777917596571727948971352315845790934362128094927134191363162822248803002368789600034113821881648234899525248993249636321891983145810027461110228455275488758052372370203113252571707152435086189021225687722508164566269360525147064060061233309671714549942726221130576854407138304604975760502212373463747438103503259850732623705498503977002463358591558657966497468903941589524534319064212526949073022422018679154289053422360218373952270164353394348745688633716575690548901143563117499905436123874393052198149147274398481695386908780963575815279291558396039278299615257099756007717291115600605743952498587108994528110399523946134709395340188742511216287648297961407433764477517640367963124347052849904901602936465558178978641923235224951666226094809087018991076354753426564392441122323683682009564471220702496482164833876949218049658599253337440844437848461839831740535478984145313533864741671631527835338289932363710577633192222875469396616284564137291897707498790499420504229560682813085543002095685924714350463295438048853402411323646061377338244263941646849610273003575565007334359228638625200632238722767211041508799142975504150270765173528659287386281928529128074809005586522265429329258898997401238921049075869896674399352866858059484855630227558740207979388188805167346551950211215764690216704151279346367922399505469433644161610299374996815680314604878597386273203168480201185153152861770218818774386597157118835684896382230382950957032802830422986163599275122586472849653187891490084845561473101290853986274305039205097342687375913779473946690196061704029213712491672579297950984040724914046011370853034504040183654336335523114048125633721762167832934390581660364254363882879452095302782104655447883163474688339516994682550616680945619613234464618571851310819430680430022324460543179097036509139023960641314096606749893840625564239406386214019139264616688964659656557802371946807687819288594662053371796569581686253843880154636634219663993030265084981079833045047993103683785995044845536858397898605992404710358590886197813664176424160602289702228048682083871291300531574018445221465607943629547578809666652301524074657115333845592574289276973935974383539465661421558431622924456830318345955848238115792060228249161420458921203110507841932564887061602464967208193480562617440383175758182129959878850322885051456396326554798963960105219911767089935726725487395102688695965276279020556077004752443521031575691176840952111310351739985932109966012215763734029393888957552857864052434583738529740774232797807422991522818180311638926217861811969421535309962980866980886515024852608673127377761547387676093892224222408030259433390135107429073804896622095226468046210625377561628325937076278345037307157213233208478365785001369475804071866458454676101116074870545212509761507617595492187932837459932904455476688197914842074025164784947350608248057112605083947913320892907564083998207334337059650904850492914932201335767159180281411984821114880674311466217321130298801584071208767048356493273739108150808293120042056582471465619395733182915886221686507665444329824965338990166657461467943624774544180471317708945082560045307521935350076872868827823907866575298690610394474932418494242460524370268267419147747016002417441696610936373993111247897145163009310487823159638497585431174293685145153268447931535147828490524420614703827099479869357018978477802579934169912335210230210792451558650008506667189681333592746241258948553588076194417409741431658653168368110398647336434687786594670521072759710880996397456515473765487405064393600392978915924360019756512848804931112596767935094264183929904471379588375535072430891188889342304955560449723265775646329549786557909739162851124359876546307915447568812674876634060819585009730464307101816110729112580318267339988715104265596280723943970991453216721847146434151167843990787250367574295721928409532895571309541857773322048206995163171627428686483139908370256034179422710597991335584591093670883192676701186582399653270285399823051472984511890667398123984499472905607233437022366626525198082692977425242741119768906056610643340110864799965450416666156297651000175096985835897966992084484533607173472386124183956768425950165874168027288664031632144926573252559116556012654715569015686959617799132461842951233380419884842681303407588852507254678504763388964753730230540645376916478166000195044636345666498721788474639627506062601952823689974055284527329634617600672623222902613546851136529050324133833693043403700695578326424705863337406399482135789475038071585517175363487561294450388247766183336968091389008355497423135669278232279211487999784827547701277042813561932315481847077002995657177850032521439959699772629288160210539214961685913150350217987622277278540459977202412038288216093697942464609564712927875049151854412853034323347140306797608833878272479179293031368868865174051445486431412548150047166548032461494077726395693343369364865500340660677168351897517358251711385683083926405089566254504413570672062483538326644070769150126599074696806499191254273018939614910756848134481623545395976148382893415775768667292887583680854238562733993711337735993882885353619965074480782391460494281727382809669187398724331988803538970518500171611781015470613686419864345016418634710426215135790644069282802250266511810878382598442909675273906923228457383472165256213958267833613627223054949347921788522148666353743947389999232032948828603856023025853270697077161353341400535196885506275363511714085740863772723545220223777721636787886224139610324600718240670582555948394502753225568596684078055944723197915200615212649911849351564883071955124034481691044040844542523675041029827896583454132179407087875261696991861833809899949027463783993201661477952453665710405682473702033765871185820869043438389227961401113852223304437418093793891740076595400593244714708384837104398368245923459597320908525870956520156244817103852750470923032606820663503974769060827288281519717657168408221572326968955527136012386119857967106015660996540056598200855364985943588582787724315476070382608502619878164486935167053196581130611065434199491172706024101327582557588896495364888664701773770608288923500043225618359455810459241806452536934402599342772402137098645649851272807575811277813861474592707419678086849565209789006721522499817286737210250121712847962968116749597766504487515006651421856836562483870679224959596917445564125798847451030100573735459414537503692632938790361582729879234538662604854617015620151219888708198914432318240162609483080031519524731572143304089453090572456911610938864751107414209583901432652891984759857036832786580611997335075774112616297666062051554043977575814162809267188683179483573884057548608009950114577292980279118326704272117804416436789550830489680794058544718918168634239661916872712405784654383891377764881405250391739867109365225087134024357181989416318458922840459276852211422766687408330147007764730881830532475848920086176953582330657133334413772299834103185246869735421722250477366436831787708393330680646645758394451123374156069730369369798582841346485636351814136544574837731136867113988328354134970974485668072939546679502214477017812644409474519534074975722890952513167605608411008894533545181569103198861489119292826911437792068486831448541172966927489309896263224801482054096593799237195630107570600814621420893560505011596401977098852145725056376510643942866680230200609605453339595064842634555423682645357450233392257150773293110464102406418449149428592262124191480254314749709300158202757083961793993494266040668784717216820566108379595495865136817285583022195053877107635754340517379072926178462072022467922246928386836355784259687674599241689660172176676407860024037141428163561782136215416207555845961982552576491170194657567558843997476801186926460728603201612365546679269623258791423791386149351639272871617731173205205705402974844321891407212099196612128315537941055311385672226861692211692412611867084782534601974036529205892020168576438563822046929195304835452850352306416566004889627989002371870656942942272733429788334089321990270886071505796398209597412926765420295021377043779146920387903544977100106480651251505231435853697847032723302580524567742956327323619669601461528132042290097536758485941256502249273035403888021334246866779207300637594667673343974640676541465272872058333117060771385708551772772085459272122730155922310251356406014207360380965135614256613730163575013389561585430250846493984295488500625861003979701128717164750386307787180420114719283343703957285480101376643023618180599978776865958115617591424331940008994828137726318943956001671678148118702734565704820826859926212560084015601312500275845150470957915214529361979260479528188097324117703113795865302108862315532903823501168243523101586004015381213090798547172460544676291141342642996652384099079713161886800255219174604786430975744792058748342356010810824831982174683076208814907578791433270289639480809738885888582847613896551539779615806064984794513391701988321944872557383406609622699851012381901184391452482583341796558242776516581921138610385937380778588467962731422173212585688421197759317504413612997127561973442839147485637308568605726170521484961510251843638524626235716959548248926221204804493828066014143544094254597625367826390841720848003147125622716112371073500101579711683561208059663174869386380323893952472589128712614140950892625878663188508870510333875912746093423915010923568680117356593285232255758299996033925296977145528049256577858221333869684867157338354196424694684903207650573932067027115953679971626215400105274624334221635936452910079726349646112595170950181124080806168203717808824329886298733742039745651016438858757439914528590052555881992458859345591274393348412491941581755453946762869612256717027922772756749274974065677860794887212600870975479975394007394182053251640696795168622859930135433876314466306079063532462274546435031084132196579977873246509195546011772949093153716214486596493153441854500001553502089694426945455938628885102914008110619115803000733972563140148025692438001868231475409725380327580483505840261657377337040927778495002976143978141525786468963698915704264904550120843594998027613418826499180020048701210697246172333574987400580278336215510390658463813246968454022323377930268092932281863209768986397501323693289782793528196727239574346548025466951008856118014253995251830080534859998335155595983972394057212514938589644213356646037471200652635416056820944959528036059757323726256877744548279974071666149707807169351383587548486372791610782210566388216217580038916261169446120222265405670876840241578981368841575543543683439096960398498654547451597521712050681730145635553090758556366557687487137291188291058401249067836123785887859663631957420960457891550190046774654654526658236592530609989980901322513545759317015405400059790190646580739471849686220713962914963535502951845986239401889115619754013649693142871493393924267327354647922069008788185792654421212772736867934683580163000906167136756280884382730406838793952322040922275184560998320678109901914317014767448360952630094374666036198388815218609583636249991960848858270596983639090393328597925112996331218037955163524904991582057795040429496387738361802970338669934170714198515579505145498567903939997740035935403044429482523552914115783398659083868436206475716159836301544852394754118827561399298153752710657302070334827065225709950869974856330944913780183198977564634533544727782455285251301653292698499935474793489344763424346817955992977946658620585830437779276972640809992379683187117827493736594066960767262464463645452456599499724947449707409743327231848785679156370365301505922925487935824574892296930239057270411524856916003989922122405913811582647488487943315793828348613208628955349218068894275669905817809983165978379997961181414142975625169259154299448792512493796745518067363065772260220526945226855608732261846285346664312611679683417391264060335227911693709101501462688088428014607779055644222984419645543748132227458304025848807337807633391102512028590411673765919194756423730799294082663775877706401867609574712125524023074865175133602406838646859291347460568211445644449134857955175236531237074004210205064996817788375171413796073533782351363487715859120886229588578026188276435690575025110766400064284810320322542940359052553421350175510151310011542705540798735392652013013948157645376028756396154950277661240219148975260523171318647700649907455131629071391326341450519568230143609734771558698055407894936078353478712405618503070677372018672767782184694843697438272441461231119343068331894247294588698397495069377638804251479665825358003775848109790015230686412373807377824164420147363016288080315911549771149572501825074335428260895071818821539031540156912332592405729266031461628961319700798220997099016914154071885737102073781809119936241513773244455562315788055522965988699276444138937786790199070303031804509817613670036321452255700009499364919236578438121515600943550091310149443608276390864568031556178629970221433266994118582812751815163191486249994609234453441020126479491820876045405470532381548357641050251041412988293603820452547803279135516390839076338763185570084939126582818383775428669961913991595024045657624048839704652686742066749671479603854749287311212446794595496131554069655418805792570828806462477890855229905812001204681421782122853611958186280333694263410880834811542353525217121841299622110531219100874159813907049549169926214378870051626494303695116988620946982156286700726991245444706722215079033449271830053713809519527590724177002880816504370172702802392327747277120645500078735379544419918219599179677500892821120027101400556179069179352394798207485791800276221843945488095068061788436231205494877087333421778442087610369295904820316736206180500438518258151160801519883410556253266909399251376152992155753092135647736950239776235297463513086420145109484220658587219787028427993532954484216597342840023325812840556315702673396927526613536733341396143343144111346248368836521738039011705210234545191106867308747625941718276496869714449705384030454141003476992036441076036053558025018046115283523624516818053265293109006955219639003798143215167090193092892995194177827253243504442812714057034753005257732018970346003660646367176757547796818771669603262166716976399470553013775834608663918147258642457979790099808356810904190462740247075833308376381446164199400569121583725447319573943722668589356091063653303112179657229406051370883690349847811987449281969262575768619630930080090850950090505300208892119156554052334632049954038660804123733283208510660972823665251362275838958310604005989141291357826777964589137916189351266702197032967871273589273665057246496073899937648502409906315477243398036771424332837843921508564755410771297635790925912024977541982356967747955611116707627070766000233738908485386135373513346718654889618576929878263407106268733428918141244748295989715548919043097950861321804245915132277075956754913786231633774954955577690073540035796783239657748199753987716797306913923418655491033560712386383223832477256647489717684244059745068978595728122715652640029090232417492897421019805483522565791927114956838186790011176047347761275370707242086465991457414543902905508141819255509058371085363240861585235576260244831460227633652776662330263162618580735368590639551767363362991016862878862828448192380260562926701386932270407671025528671143982344606851265578042488504138631180356832346779187046950975776755375872077350721506093320607141205814936446744814409242400600569437794752943240514654636621887933977047435096063639314043781289766591669994307563430107923263673268555265170619059772144528104213520399340862208051089011599941193200773967128678389133680785454874308102178426651755798440512645559187956823444663540729604775978328409831036593440293264632101859454945744145551596201318458373157511459191708657007013392451720890326405614559910054549496748788728955397127461606316820331936312656985854473559197993320721694698637073978744333835554574884724505217953911161309280151111261408058804136403529652958894071359377042414909971640851478367892058012340031655132105045226813708320372252754595558488265856956161444027256359504468526055459893509963946379547418065645148662150874971016138742883672677004482933703617702680507817046168298706667202905003190219562284484791208876386809249117768484837100385325622773521042302483770200760894371272539259856043755210335607204994183198548556376311152321277889758431490625534636306165327235924640585415605224215805775538965730382307833612973888166720387851591153494604987049299168276510210592404841201185616087519780099868931868460889719411719575990670988538204446980533377829249749676806904145946982737757300448884227593662464429082767526157091433191940513395133487718031663369882288998300240414559468113750579368340562505852711418054127665899961205119630974923551119896911834714414835407652994499773710366152243426294378159400872184713215962105917318167840686422308024234202957461914070995399177261942881866011227740639775173581831409378214973800217130991377972539499289752833097865664677971812251735959165042313900442552999127342727688031281079010739952587575116831865602013603788259197542046158513398616473925611092942867004639892478443663941690556520084597194781975512593446792825743604287346032282812212273159732312552246655283489096207079468080925990895822326614047315986418818087267285899754099581688725831356734613035589307316363554184393384399320040510642029292435519151176051361083086715238068698875119878921862144514788313889915509493014927209591070107731607484571658815196201784947036938247000092718269874854715634618736595270399120805838816413978047390435314253837863397263792235704174021924750470222353522018500456777804477123741828751097412509226329266825259489329831035566343573004597594525864042132285948666345645363495905726990327309412660501572951313971491873194700072369148190526422576430373838959819922761209382355181799673486447920783198864923164380167342203717828171654315621417182259200307631372977339906021357577140136748916235624817758026992439492213812893896857061412311915149652040211714131801409330418878095191500171243534388813743438092892717961440236913373348725941424904750480485271660882845149325689025889113848263687874121511655461518460967676112775952479768049995338396760917261619478626376170053322112944188346343155543763474785109212505477112684505678804426972709142960428307647895436628662025435190258229302807031796565751938977732731770148095288135304134706244248755112520491832953098370866931786865275472466389918142086473008281230998657567723637532887047491643716724189070381413398176359589275840319163889337712069887618772647353990637374043540562584732075815552058722246249311250319459728388693264570205084812742331330400106243609136013733942849734237455402160660626671797548309868071442723582371298933097444957987948754334579766469529779325611452201116283486479134391726115335811904707732526522575080442962017806198884181047734182098838505023672959515080220119298270355687998974202631211161023235267456817188050539926525872363095266133831312680545658543053573111548894569442117005167397622565013901286267795050692723119553230698233065097106589459051833413138324266966447290592862179431855758465990949217916914331692785529153519227632058166634920756150193208222356530057721091142560822041967603887962847867632530138912673454160235632225734563439348164716315224382921569811306075713640365261213467768463925267671255327778277488013985349683276623747144411771754931969439330305760990308719340305770544872003948169019693634631181685375385446438739237161262063556592222751194859097489064432283575799411153404261497401391347891069155634571735531100783380458764869128488279879289321558018854999536523611565571262164300771299046827987188589939713739016510334537468764454659769258710898883028534483388893905451680461256787898434065455125078308974700563117028913672028840345014229251568883051431888392420937320156921245666266477213878229169853777638355008179462159771165360896908941565531761971980199156228368546613212606497887282951578979771765856368152371055346090394983265979003379007401704570217939315323006015972578944015477316661725956030853574510756469255422172914084129734953146448999526091748087160856158322504062585271777301313663436975080598031107361917623838161850191165876800213767499853442076793726695695669500305304203791316479187233214111078136821181650273161641538164000706254794622688625941020996443460900951771551797998951322597706302526035307995792721747588874736441680080859721750101308954199234195837839906334063211404660341194152575957303654320074239959992273518991362104970793391301451416898269333985653738051796349268552643667339383251033160624048395222723979896441681011641133277697252239663362639294150054522929435962357088658054420648698355853548502357101146146651931088697842519100980550937431418790741038367761582362762140341041562074428015333137899677548591669717200086484191369291773207535251854650147552255976070975244120013197707957754718848424604566104942529240777624514922325384971384647407669339448877821023565518002934912906506371880144014062889625415418320605673962010364919033299654535146768297376775802282303951136572996351789743453162137018689439841788491852261052156977427947264335724640751570338879948699373535853236528152397439811039805209685268029653288811674712264648403812973107698928162189415596899774607747359548659459599126131187894539797116136905350337914189553923909186530439127080141864417425244072021157543391224037020961510038899687399402296145404556468867366902369232381479785910254612161182815746564466910418029659228825668709469412069827111549938983382164335065651158387709486618852480345798972218412988499501314314787296832253087586145661477450749223871190083478490270226471443429624151364658380083221918307986174634031569639516551296267602088737090914333512428930145870121949662705998472453591573216098916939818593687221921761608013974318622275642056659860351657059707413064160168991266453237664035973062050894204881728780274656973332603223983118822604519887445709926786144001225885290252111790629213088074320826445784997679580735987144491687467928781817717734711838710346198664803290889811691184015355904257510692079431990000186893284032618263909482159872731230368400795857740171463185809199940694688540231981763493210183850439538180949325587298937473047531184103551316933523961009772877861362083045983981337539994652742630154444864149358226070778585384453912856615433748227031816013449690186147736243050134523396176494677862604980796404177318364454510022815329249688833836682428336505300697024866419262067711990430663922769449298125635379257237466431672930747025585830267458978999586104425554027181239276351170975834843064628405628398851427868774536072168889570547359887175947162669426843280937817234168008299716795851932594829601647827739678468039006045076523756311002124220245062217364814823289030191852036760115715987288348686370111211604057616789104683350523084670615774315716080133580427221578254403967218129318550699170353784823043249303601563044021407913225203461986763403213009165085739830976299125415489015843490589277978862949089147778044143031230256522861750766494925079598571039995367470459489788848403810195161921803405243557335621605782145745828183003415062152736484780214497157752432562061165342507665268584355546771265250286090817683072254369134182812357440464713284488968889973297755431523969939748875052092964510141822816925031476403315280094501397908982903626489689556086059083213154121577183457872034965416012073274596851892052528682145241790576139464268731014314671931906089262168111528547521527475821868318301838168969325443400997993118385957192212216760208444946242138320116760628893357211978741110085255682584109848428467442470973417049774251262603697639943990288814795887259115200865573394305201657749686007499616771433875871125290804881588741018322844135734454053470069384349080652036292265047974423583269266266031994174826880053005381642876767677175808876479184782963456580733530514266567882754146585587133110941552123759651523386721248073806518724703293130885827208814513535085400449645326298898643242395919074553809935382601624077911232776603372822663789706841316912557463694680477261028063202887762436525582128168756740043298736873963952677611910362765164428552066274308118762146079429802911778380497523493771033215140385537328134381560124555218684845359226009134433368889602919897906705852604057833704163827825225028965216447382488333019495530073865723264575893913336935321852449988179305266941151357215465478023739463509466253736862198427900610366222444395688344665707261650195494661105520061806882480714103574364992566625800587849149832474622100427762876225851397939740944247552110785397778942253909446968841705020754766441605524558591598140090833178034592567741930140459357562922017184599081749675518599291531258657872472156955008233577897493733549458678146937438597989677594218565173141821666208291704197207134711383638804558449179649335174381672957297913241680460227397931850556458427192951132355599933131385503030774974320051096959468421414456340468870856803399792817876297982707314757649427869611250509235480939138867456377790441659790472646058287451122252242610831684007025373824110593227253176337190095237518100584527272930241215150650551988885454900564891381640425969707798342365007068074163803524506598010446242541769184150847593375020582495181236339124889590030327120969212189478825594063521611020242585705496539819976203945691862511865311523269993394211699229592953375300669098240226857869257616899092378776750509201392367736583111571958697627020364981819353826270114936920640331782354534754180147451378597654927962229101496660215101523070380526804179019184452313276305739188422490884137566784488830133332823281190214543039815285854057962776479441794036272551036810539853603470442058745248739397196715137147282468279716542330628845636596818520663848109700147875970493985852788592036834799311503026866359841136584311063085644658905086831341837884377075319297425623978875554023274165662748000288200147175556417965634950456048273917713939331142866653625549298754313254417821750972134086879938180145627406309531893596478648642748043771022622510176398480251909740232788368843736398811795937933282777950645560762147243273854006269038195682882705914215512613010590354772593577805717825968866923801490884307232779414375195354278849755682447196759941216724235080995471708844702795169448867974839795046275364142454812429957822719045141785446620911875376713812998605305381085123683616360299684926722781482352345843911670949322416992651384056872705642444350072810633624496294748340690795424429053870946141963252116460945602747686331071241329855389100724835489832840764045324371125240991382344454357244095600321083155458135997118707211921330774260660264399702087064565225684366841789545912558953695469475621340184416099707996278969155881295542741679444009108013313468121136369771506563905431492178554688197479110622565849190124302837542539875186696710487512681643443379702578926886001530289147896860240345525793076221231444780731549715396579643084107896369761725036775453587470989687319590880898994185601646293156191019844812734012753814053865275588772661221097169373511975294070120136166627616789839801667654868818831508900024989970250183787837112963180756310069462111408763844697284438469094590105339382562317597440184383261454982440157485508516536328248985926823616618297661973520018631248962674119252927270375220087701476750072858470414570264074241677795547592640583234289736132337451156585346317363459697862605742236892964575564118356408774555598715118613427538756168868929902605546866222344925240377643525841072481223133413397680484892331529722413660916350800355896171998798339635039741955605249040611523411731451777753035246248764634390699112859077803745762551044503440295289244967404010357344181457885848728416851581266696580565427076316985859072532924260058897316782401247463903234396248967161970293964006165191563058499492539476847667488875888639464212056920710994399230621321602969667270194539141102030509174497341745769069993692542908488624219390770573996650120395768868412000063822605719723071871879464872787893215113385827884646612391834486492932456749786410121571608771713444518630196516924579595855310853933763506246835177432792884802124349253056701050954635430868472097575342366002133347944604474769609895207824730667823605255240886338952543261192423077918820167603500945765116919043991723932569828190145267906845021398835088469536007931882052976288939277747511077411896756323358449930431215991687841570988549144290600808669667250693467297362900480403282145990909301967779856245182507301772811283624501128802414576719070137451486704258443590060381551810856632370642275135976918539972319301147815759194241086402414782480811133543708217036566875132323467763437919094942836478167102458889038689465296884896654514634967781328334988278322353096050576511159600820654749265796258297056534935335831684790508171500772001341682233170045129052311454209062383097590811305936770666545359847187404860722722552034010933493799507172036916574467757581609208293283657494085542309651940698223775339719312495908869577166081979601238484421892317038664333691667871812623985365512280976026334610463782805054214559553001835143446511907736465105714572454715725771678437889658142420222863006130836219647123498552278844021828698433818185689892000654583880022658229918324922777293704506055841503810318965971305315790505740688871071719678668860126389666711803263876938422794679943420759046564967990928647527447136859678782365888668766639116997213158285827303984533005909851457037389592363227634558731631492396357340605891754443580913148030097499246448191125650981778967821985754740436516900223955490711762436987244421262686488971094306960650949103021101664787211684172446511828217068925050503444891304159830504299785734164917024495122284637951668171393063880162736955652948302765417458507122812766306811092511115831133024726191750201961725630808919393054509036975652124415305153346807057447161614715143484939756121737574731589235391346233456543419007087700622451527061436808735746407133525427771402545778887027250685506676626496472860296789204099042678004429648145373550982463944302688746767198582237015608095880838387383810676609610097467805189208293059834718297184904106981087217445183634333019158036807700369704015396426356673135992534833313999445236792781584472636858880152622593457683105334071819543419328223812504500270444310497989856386981721548819691509465826188728982589757473176120753009727960377708267296561090062835521658013494020496264108710108713190505337288345696456215844982629494747637907102181663921188424925865411314438693951271579635864444107438247322594407566891816119545983556207338558503894966318641006036112038498875964404517954135888927590623795881446290067640306953938011697877834438577359860428260775824664858773625860665351640292089824497611979087036894938363325905221788473039251894379959371494386229328104890165386240020291478518825303764110685371454262450555420268602276068945284464067536049573702405696087145449322111466782330035929451473173124149268891187651726401345103143274014535948321753689068997396742523477698348576005043019626999839785945385892739554117169998003141421913857889041996697593045103300473079076255914126830367457109749527233271233125519155058506307919038890632941570596958516047742131496010120043637757044067033464401044994418856126862762312660006681212448790334512005977172505673490470053604409993445780516449339074696482227390863327503191030749923955992075265761524827511764934523130898956155330542997192508419103604395751699849209394556845165535518349687256610856492124693234784318476394123000116888929933550878572546436271689511341194657531178867838862950658561546540924991889075516724895266230103095329850998629307259492083809090323968226328396967208427538655498147285634567293257071404606269842464980901994663823667994631386541203494025131006238575006018488956470906155741408312434485437191502445995372317962375915121171286636497463489269348608539288548697404770089318319274771325172522289550670468917277202505110047012702307151223884952112019844520501496879164516727924890205784677276150946763476936933778789596457000317001812239202813192046326696345672297259058246339993386901786067445572880128777563753772102175562323241993476324452908223042401789023553114045626091458872505964715252758383977103752357682131987853303425274603528635806391086148257489521861183478532827217224073319499273281991480515931710882701125080746120037580522999953147147130430034095340617857725031588937104515050382040145732333994375858276816120989973988125781845570753536905898230959298545775952485092400410631203143705527804573030492895341070893151088149225728028349256652409147681130089650917749624690014999617172631554343610885220918802089356320338812271008424159938694274918634909393303623795282476245274944579029288983608039023675108508129951120389643491480943593128794080395687954175621332675916856334357991111307577272692414485674484005258286658547428173325918539121794723611955238964103657082683306919664681618984488909596457226424251312050912500452078393901640749422170257305041821655469249399411872513741332381856685382574970729391979857316077918110161109686199811428950878056841579741452387458068164058759604430267458779048880530825279192286864840836225459806545410574857177333639531134214588674748260074722477187504243583298894765699975550237925071572437382484742582314575226385796358818735623623587197455353462669344940822552097579285443610086877655344866244268539898586508557906860201222078636297227670549263128363805110972608717848259318677842860129085498587152294730362696619354363255073369880160985929096540545977018450634009267546080459077207555790893108128000523925733695812525918635236809846037498137604735117514197822369260800320808042651069194255826196540446906788183543801652829976846875119898454548008538638060812445552564360571949458841224341079049352024168857402227682480656838181508787761731359909644182247748901156249457195563321218500338045311824049451816399926649102862912746739083586902386121462852085805890889326710729872521451181975830416206709958080062798107543219360772721596834438838973094905455793577592132602301143283403863573206043255020598589293324892433116334661439944586117345972443970677312092543263549663075457999262617372935499459892058766825083380767307041645508996205013926951600401806575969155885868564254788497205355605499097145681712933388275863263743095305567690249600933915859517951559185996998486000561870268859920458426985697600738448501923371486571242137518395683512560247532025916023475624204368444769074462644331718313480431869377286168557576004059976233780606176197103179786514984780786654509678512395257679195744681919793748828664915448595216302008954143871225915346314188278679019304032715155599172735807636825247935801117360008429465983491554964786220932712777620386853378201933226132286234065170563478018534999355972226077683383272111705624223956929572307013191156412012469926444508809971268550682838869068188296802334130767785096733289284887779201139985084325003800013913541785756226693963475411540112459061790251782917077320949310221546625994843546483054163329038378001571563481980890238053176970330618307344975922837729519109033302975589735817480198124288210015419579701356169449045064938855337454089147165323605046019261065517132500754085715525941267491108328697475871108075224674919198955355599743061809962689873129739905700820884292950781353056255584129771540339675275526915008228902182888163668444476560161275804018322359662319814695316866861869199384802716601028920487248598382770938225652588998138079951821333195681475082508388598498401254180074787027374818217379015138486502148353248548673715098862632609319124480779496192266340319832790612658994161530772691451379488622522961551290769668111583596552894592603151254996972319495685053886662157100614510228692850398004031709476284148733462480342773338536394666456395585842128618059761222560068344662565726102248558558995265530454672008935822547654025558777091532135724313212475906426512472474680891003277941283426314487323302226688921876102238963365716058817624250969529716456722686926721749627614455913359223498754518032917876086072579673207985220572226710990798878955274639211225394715383865679017482560149618885176418534350918226640053808889791442971654755851216208561813159672913131524130019474341903351431893242183368881511164960145932771664306880001207914752126112521821447107577363773806487436627778632213926667281149079235231766229107963050447612166417453815135971979258196677581187986603940278740968388419249988232119167328210941548521478647123388474821392725127571615841651054219448710619765455159886129168302411525206705875602402662118394520851880269725432335917541893659897168150607338888231673223738340209981449584710443245315313761678162396566951146663527792991681883068635211419281679854204020617790640092903286069495616999088746601625973200450975776565899854272837225394186041753037023215778011749778724006143229834042610240249822024967808432275937819859665147249085300219653631651300342695191697136491787002203869017849592955324896739447397491753389256754016547642597727201083553884829252231725183196586501951280688708470404936806524175599007771193049098053596996420551602375823026686595555185814680808509408971627705359874094682282952264621417900934762449859910034566360182792951897220057302377176378680363716551719258673460251076484470510457899285969087116595271781030978322746568911080941788165444129039875852461874477058956508506241906861525780936641731102627878321888036541333152126114939144707991379236676623384751189619961629508200897829010222112999704830681195935693979070959873987630240498614622197246188427922860197227769903248208683965518415640001556598652972250472227104448548516151008562585667173695086337525841477156155725007040383828541961971392068323198764237152002858086926336639540875109055460424061127755790483056902864319261787774467577176711258654342313771548775944583532958551850723430241338184973085262931451246618683029166426956201795619362382525896471563513605372144207870086303513195021236741084032503018666527920302328210232449231006322130511106423624748394503684633297018828588773493668977653980436535799738673749664626128468998414862605310231047408014515998562034225132793537011953325701096683532849692988759738731571740826682469824672954934696638253973069725667454534117561096099001251790519248098464819313300592084409612169409909840852885836341844170988804706961441051494602196743185263470677558496165573525412174407599413831236201591830310632616889150547690535876700729150309759916786000904335737168737736993836728678037186365250255593566247784567535162429915147287726128409156957321964567294852021886514327111863900974790764589223159655204290676509793986370981774720667784041066669992838474258640563851940437856460264673381334910729612201422394969847740421206610611265607860003215627108081504950366947652688575930145631943640262619097413109786359333816740432223820586776884314906726809586055241888139688790005927773610228834297115505433446471746393486332860582489092999471618664455068197432720377278790161287460085288079783249105966466057200890049216673079926571839001799218149837057264356097112806967306764649547330012281505875379531090068087868897631068851374590133943999165244199358963849728834347247739652325552568741820692935147738204174387767856335970821224682619425473465391350447059337656948131846260368627143523367908360553304570895938307506399871007732580397888914501915892169258075784688587461171223056498501315316800309489153854928089171725704278300690335367302749291117100986180239440406987163913092097174894108584733721723328891056462453692064282493659720190008316137283447992243276053286892542634118669552153495752215614376639142361872036692429887847974124652196537190774887101625714149624051058042645412440113759087804286680578337900527077442575264953731431969703727819736338773975352475412787760857128615826471209301101729233973334944695563977373752375019571248664761526383966712088491004293278883547646554512955037887515716843401113824935237673177795387314051202470893709025849844019688684451696465541366882466046874716699901734189984571352966280375491824191219941869718761518376190051352175865294467199835634819242667311627876532946425576134761488578729537417404300341205787946936672559364840907554920772106123588125450168673250199740242505617271963650517052576994329898141498240019514103933210714233663563021164812567312706120938203905226708361374070996862615447309327223302140941820728075298165347114820017105740144010194819132605986786661988193238945771062522747240659542545646241059147954807912919828249354061261730864147827980556306492333381598393469900109102437178856971831276412821602956524950180311470876573260569481134411780885055581622887536179635998929295963179238908039482053690913007409661205460277263732165000536827775507074004141300046684723907947696107364385427887792366512626374946740479629734232281548759984744488573864415261418643024221297206159541735939585877179918668701378565660598263268869478814075992562983819713079471391670817034746768598264058851422540128915506397235712231682033969008397928280010153096372527026443071430649539359507404649494642707739489998923800314285920791596902113613102459534906346865919612602097413954894086399853349046084085332873083353123912319724019246302544187866446092042119600504619869579338835940183153619216453374270774544328342965842000588610241412609413425622391444569327665674665981427452242306849111466005241757708224116913482107835132695340667549310787240207446885483137303268635696428897641846981966502077430109863739460034329792765988185392035256263585253431941782586498979746628499599469692220543737617378888367467751207645548521214350633981144579216182319696929321134653490179187319742027858796678290805674160064168184475333332145489870954707813290148408032991601484655926771953406411679492943956159838590278257978584638411466416898104559681568908353355306974883811534819229328782798912049176291505716576607843794071160183276977924474769076994207476639568146986588270907786617338187664114896269369701427714226415829162876121520041794749615705817081613097108439775712529098223596632191468617711833734138948802287823358289822954750517545665057321049875113839771144130188228397847716239517964573365050358135891518558158313465956874377115352142233068399681136987170790315973655990210928069153058500812467713322335114310069632831885538342679017748365750691607335646238579775572302217953586500231332117236189692703444576007629380578415496722829401393656265483026079492834095504370642761670237905163517633466570374778392969982006792583791750515289847768861861814041660582490481926213333774147228855619520087825570711387454180801906924906890851020179015625993534243938223277223027779694008219634404741106926204421787825278729917675350040908059055976478101341301785376982213806383047608909043635800292512814182775626783900003870810133411221728331658238294950959430053735584739473414260586656972021620354260258384189503052564737672670833178971575357339121638791943912611891670462920814552359764194150215149978849141875329060621862417063230804276918091794646706104456982089527803825326297479734996604355478266557091975298722644862743216897932939944902778396461834337747418245846208598550171147153367741575607137972028445980057674397442375764871354369057540275720499148748390125236561960611489163780596819724825977075613957124592184075419746411834773508158884310190340016118486524088355790324479897821850767273809165274609166682070125312098229309669518401426886567072883225247759027932341213798241122624045528009226947133765970426508949338102663024228417142834422054722068583168983224927778746544022782313759134601618552289514329117524902799762627803848980547537051379958193494520701501106251375188327968194070199969755261292525403321868819353523125889318464644366861321858937470920921014683577712769796039752951495810647667339610682807608458624281293769953298700326960584438677617116402891938243141791387416202503792093236589563254894279765308089977111750318887767615022740821683175776988906566976074197899863692334184505452478994326238721217915569167276852048098208126531733228490704021852051651780201677238647218928418507061268960522986748333564735619363601729704824956923530113430526284182704865730960453869417090038452863339661623026982610264400023166581561394240817188930643695484623718395692983312135146703652748491295645181707662587629442621879709216072600405559304578030163946288983060957416076149179620461397731577086222632174376933441485366603734541531308398597502597538243325653967908022564170227666147767104367865187167478445690567800279657866556203649968887338582077941558986323565385757877750829574645185402397029577127043852973823119579640582565257861709169708834683714516255846522949733824925777127235423965793979374474712474251342795397609081561372984749906972069737465260163485076626432453046347288224540281569628463348369401171695546335590770380857160241622148035501136408828130386601254427106467620414289073372288133576851913753864256385494009458313766337176693847635466943659662605591472721749101585147988321351348989385577041267555350627359190306042261238433360531605356392821343655921742208726128751629071055206666326097344445773537684250416814271268091446732984733916246630426513693290556862873638565921163318563646786683815971432320631834217677949141745667966945218534230492124771508409419185718570017188377540346358502198983770977441855674754144337972469050101726466961723995576335571431149773138944128620916423752972419386206509362404366681574590305813094007282902516981793446367356811798196437560884900324875685078767626690581905692284216701890416455591803421121239501103014417895513346184111813979096828998507984751254803803299434515735101094235378015439029262382188866599038303607347126545207907811863353783477774736132232495283918722039312560342240114387674474915060897657058802263391435821099834800721275154064738306738074391392709387265189258671027928669784608686538242178431806903580073046826064101450963710332010332016256685214005362580187339725460536684475956261685040122399757084954393906239747446200050756660887201598224986935894190368764458923061750576238685566778566435112110485183403530131869627116946165613727077245147557109224262822295011037462608867789593858848564055482314174607872764324462148920769696598110216651856449538209452811507846888061236077022946440473034523352010439136188801505737812659239870727317728104195217733224232689965897609781162666465537110262724578959176945972380949498463755101804306790184240176334062777790078971366116956406274141395298864385529529320738902715243437198517786026270358148652876390755157289777242020337452649164721540927319548305163912136745215351437432649002964399961066932555718581709793210073951896614076986512023630532822893214651728533943741469699271709466070409934343635012915447051358428057140893660701230985519043138252721449339303175932273354048138818046936480849077199690885783363875477960008819792487798183357573524673353154114317734956279205865729631168853158388758930200531577497397432963386724025368253056202693136958444464148199959064958073126835348844783808353910705515934710977175710092804434453545215191825384984660159128920952746019100934035325138950968083568358380548831646642950926835757031904337214776065156110492045602614431044699630312827883562132338480079884582921642888088570126700530457597371095919350554440176547104170109680267236979863463730244853900653378019609091150504981997285230004230526765035198073290753872712857141271181536310660772840083216192564606412319675069459411720160504057287427300410302846548199412150136217786208339930872714713578781032211761556616487569274221669398362310627698502657635628815297791698055174525589602117722371154148842710848938670715308297598180208236706315322634753934738584780928026163639640414974841583406622725317562981524938504316657020341369625659642073615722278830650965225884504383565574151663419244790103632025898285765439558320861368143252331624630151920712518986671729298158999894559763865676801685324044914039835729868007761218178651667261234738301418645862332437975057879777987101841026360942195333130880782862529760545474516792504248552909933662393338959400238842946382066641664562019861160417252338973532755727977071322366098741882320086928706297842526686202474456474143486819174601439364273237600523464467792184079082753396955064231220791296214718565653240198782760228778262175328511832037964843877329203098678673859491013887086328913839760389377705064532622374020794342460413357226628973878549247047331231186273582610496866562692116798249403915720338518000066448581571018523160810355441285222624124474011345018629450340417921028079059861798552800525512123534851844436173569662449817172127162934499255186726448733648909524656248139987700778081971211910138762703987371993573397649542693590917817170624948736494429348105396719466745725547047638341071947644502380848475399158698527519001180906410391834290420690436077956484729469105973383191796730691927666912253786219910599237206276823162406103147403423557320826336648194898674634209578768479472860155808511740033676637243047786811756019707105590346116585302044116545987875763730308137905472678035779010845321283110386127384640079385918236086072950485319338554243706694157717454340361122025266669991538634268822337761414670521042419946080820762872637918892021620612361602050699039472078019101577971421776271754064581768478293206352306166819877681758843080519394666892771637642686869269218240155803668337802919783501084890751984630604449512329415741100131397204946020201783203782590922485054176963594148846109744397677724726631224458700086853086465076116659125237425350263939994737000117443193411279330905890252935197959543062757841995529168250599446271494856529283426272961542900854774124976954494118778018284957016611947244520580302253363210171637855947110424454457668496889885653668407538439061480968669990203484809468256286472060345140377203490156637024035099099854580218569374287482147109753045269008734510647664759290052387635091520698738979008091952898015730918151513794651600665576100348876886418162518177473159047521242040480074489501842704497979269103347240233036206302788968292796795323671412942416828826498210410315093352455818558779865964134616016199021338716249644494475853637103537797671506709700647511429679074439436883249050206430495802404718093438778978689239549119501168875183574095176880032563471445138816075124942629799647788062858191928655602419405568990093139916094609528390132739344602749712606230796454396829539233847521615146283794392205365044513787512249125597458715869089393219877029511545457431298133299452706126348396100513976214197582080063356077694028191471326011489279725642327201154927879678088931373829542152913227958453582781362018085906371370268010477267427752575403536249254021747296322374665841884315730486349625224997767012568084314281430689067486650941101504657408397224441673826858583208781954480971911395449990459315144543634455525309740024915120012256056851426095324545761259452884988011177198168767461140402929389636390915802401446748805115068833734690258563773485550965176648769504235501702707517589242947190586139750744641585568792227206048796242532606470468259289315451929462427424536006546147782644867659401787643376591986411573345787280539183744158401582428755707919736226359601532056801459233301910396718174507490909825472627432101965518307998076207683288463078005593104857232801863327254748348110438585247093005403495043312894889413947521373184123651876623837907789261392330124398814446613045747080293015297909502235325909442975890493655950027903079577378238574912150419906698838340194866471857011292685125419196182518419011449293075519397567700239644992752349800292489759206495729701931085879900947295793157415144959704356047380219075317769647554485195734133455107141323374834606929345576773384203353734914030542955352101595086088073866825467686403346221933973859150724287563824640302017606225737473199830457908359330046411646183126474743814970397588202865509551600304868238920807955331370788721089465603905297318239997887224781546828176555500360904449663099172309924807283666203385396947568476536201289260668434611548398009627221951811218833712301289484308495010921146217735721574031866912637386743983639090028688143799619778566813907256413419697317040396595630640596612403832294870078932195718162472600835656945122569972512000516452982399337724606576721770381937209681022030948794991894674869490742964575006277941338883234410171473290511229293818493896008479307914109398336441333991526242455766233317614755539963617412917120740240823680221334637759673650225362545396252064949790268045197113682206437314569939518704353088066291269406315365115383934529300924243316460278792877786127333693013677856474084813152116688648003291724345329135961112049657174555323417577826951188444183048567631459516232445056285637578159923687147210426831098961063975572967000647247217931912473519825260990916315119299709312664823125087259732322492896453519088447518977280036152596574094716727537926499937829461248529141683949407323032077111284182961282607659287730372196715845099595891373509263519874936748880896415343350037035328117080133313028707403684229896493923717812058351747721144682407776472030065481090148188940341442270221579041701839495380559796445789389961368995681718744923207714125200372541904538432880193288843651306942585524055305684256568408281952496742451020749635589067693021613776266343942048484694769908276171393195639655703531552343317029267688279248664030923391618996964879927708794805233040201601777828552021841918190368919693381246496652763982666907246413169320781855254927084924106017945142418448352038061151174813548577895981954078974956672593082362181289869368973084952996746489351519883549115458844860624962179694706916804264023081767422706521551520123761904793583976547219007501856362656092372163697027694196636102627027110431833478276782179878566693033145116253274618107982474482364597962997113458295398972485476529360562916876986414428950507092752864026506351779709880239835932227839031653803549112400525135112465152725657218780353685411296159816447256783616306311545358921988210190561708547826808051678139983922735021747695859219355401624656299120047582840959922969466441369853079344179697289791642850095324516922723474533398055094161367662070116793906041111144269483712750378117620565124474222770541599035137941915254034223114287525176139507365926991925000206280966202490546576415640060271254991813456278211856084626618620655214053893937136078374658846174798600701142976195080653760696358478360652257146293534382439435612401033268280895376696727117904242300326243295586586631273545875130242742549752258944900546265158454688660308277654042276544000200057385809719104704636558233310619945560413137869057531994037759645754448697653348125429055549588588858487662114517160480829660232555012104694014925887349121642033775582010892546679125556226157030735489608998767617171739149981514390861989630564054399255106400145841026522329360255593413826244351466585013946849559917011609305547594657792218153027963794741221255016774422699589814781094501418565413508579798262947268686238123430869790558655401658420771171938272763803865601440549627548043512230366729391433018596909008190030771510304553208685074602652535791114823368617344188016989703838284248953517292729868089207469213200668208024338552157533324586351590361084103864782391764696300449597191502155454804217872911429336029365240853747712503169616507728731799024985347956448189975908155754310638745007228556491616488099870909604220585954481656676090371449905575865856927920673614617400659943598407617564276656593554642369024850116482896936783009870926976360974622883071028757894504907615806086226448525353122379852176369649186115615258545890858105730123536590144804968758446587263846703356970542511850821406839965268306179134950092500716836963278886847185934050321794747379099492789202646549955552079887496940728262540604942575146503366653149977989219768204698188794799304321901164583459214304485777894786135889031355866152928162044390087397308047725682924488844244950819385801351151599521325593760818171208328020850460583394927119080326296939541454320842878835065408512296043313108167684403104265534665598702974120840587325083501671597664651504346513774295489105842319260729361962687265015289979691266688543063777522567782968851026065095181973323525517258740786918480252032175379440816115541005743385775288196647667532235614992562704459813375028015633694003935769538125881670190721385609910936199253695851578320529456770667222702150870675589491233298101421859754273230364306060890079116652823738782838397604014159252165149219631047854578939427617105497047882453543832160161798158889968149086115057911013670331133186212599142265428469127976996444615806819644934923833969200963067150353399062476712678835941684303921151800051711479156845446048684810625042982857459846415958357094388412552780078189361344257021410743060515793083728747927633539997236935380028492001604906695440155405810169502408723191125639013922470695780108518543495324634635065050527626499124119492688600399296007370354050774702643281516613990219387841460445689753603107740916646235115374545960886510033912231438770682067324256528780959413283317458592732137813555864510266419440861074686096216377052677188916547779089691780833823164051670532300454087712608080984512052192962098191798157211768717195601713938067125611999458744239708764698240506318803597761481124792804203417860719795672136785850929235313124988828074764021938969824354857575453507028770410800059425702631902635781190978943895880780523494129659995019197335024089186889692455895716437942860601169267271271947202143252243948637346792262999048480991347455833538413464929970743269313533657073027451965721922716796784105768093486179377711886157122648634995911666264946710673249459923073828090560005051485972090806304911596414329210309529541408082232462251029239996028343687166154341258562308582356397421456335740870281370762792555784356103806993899466432985177008936257881304506636506681025316938705949616952043114497605099288162341941028147387714405344937173859435992079889838298297255930972558260081446481888292901521307163533053894840141799358645769656772313387766896051097796597626334350770466107473905121512710629862131557337927147246788862842594908368749042878436439450335851199944196752706088777968149883499516593115290971445776998360389802367107502089460114362484340421003532772720311960866839560191692596118299188572075846885598186654784793556894663831076134301261257160680373722984976720323540219846879957963213219772766248169468630584958907335491301414354496323324788131901522117017595488857877441554858506374907626254386762694494688830740870075396299936261663713073775731898831562014970068409362976271030102353540849836854887744960788351441445154911100796829406239333592163858095334413429142507011506695449519316682198058053642350673213406498165485979105994195460023461842362538979087950505722520808049133735269640396199216088935132531569731067560279452422583217897847707454873695703885375832156107793220173341182989766403270570769854437652987539581755990639706541147478386163462300847383942677366663075436912606063238166691392723523314723309753574087856816316925055084025291345006934972363112029456621215659506608239587469654029064845804667607155900586689208647513569618264463237536353318061594887219827763280201068234601566173820738460267560741009122865349709099937560595622377984586043547222617798291547038557327963886466690277169905343476750236664412347919543857916381076336980659241939162576625382344386378981217179189525202480259702957818615090000710313641492565076476868850527590260871634758553076953504527355414830439276865880308886091148871637752187747684636776558233922203951994657248124006670064398285922080804756051388000168358227771169621846344204296238972426710741504893714067219529895641930598324840952894668754838274195848859999961109103918089261928878355035486502612147238679584835765505314163516385812955027263955564782117919393636539246065835333144421660417595109382992143244604148316275273245138768513833163085012226965965594528321397804619905213147947519424846637299014142533321948294477076264710901846830327986699000497168661486412492458296297847218076926575518930441154470811819188619578827788664734326161136210097300475369811556965357017126764750991600601802368251231961204878243111872948053542674357768461033430662194307981247502655613949434586857788251815283474978217629630294667227871153794412923856737139680066701506739414247420213574274859199247458501316670758869694628141250743660877505702731823303536734396079732228960498102244324254644137500784158956413072839674499572500284021177803975380198525076850091392893973692944441762245382997175287946701561276775943346666430806556365146624835975713169462427959970121314322693418917159354303067171647626044556403676826504520773461270626600522482843813868584695819219290896687286303120467423058244273684317177223001731150689202543397765217167920806019679953891829845996167912428340921770977119934912843747269616065782015198941081365431265279995370062559355533844719735493441487483326497566598279137281632088552997772643039122842091193215762064818061672976076138954081775794882430247384091693268767831162168805259203666876899405324744785696001810147377018123569189334258392022783905929969070810613769690569348721427182090155367835491676077211715585917663797746111720703675031926070698335352498888733173873844077136008614442834041701344277915666650756383612658535961062297863995975414131737843932506076240818490008400181602357611721714890541108364578288369346088111566371057022560331520826165591031208652941588693809887133389924775267174986009978807613638501415301464204138992910395859537056539017221759549514716019398435526305030259349649139357522467001712894019395563302796129442774512365503669789648967733918692378447871845480209098631920467563193927130603672530888594315716946127748174795014115335186004300666354178622610513169339037377189511886854818443917274038803524931554795424922698837206585192289308559094442901313904779509117068487558508959190611012025261580866517331801901172291538370774804180411714464318008168372061130726962360218162118130572051639831481465290756674329548409769068046666440425343877281513121019714878470510152128246037318227414234480953081958771297288814602890460814450528086611267326496979009158181430243020907754694361132753401607472829813567926210308271818999872794672006269439688249844450961240434747222721084931545265771244199096604664099863317103943508865551444872264857529061653442864444825061057078954906355355543445017159062193442396671579040219956758639844529782421588951507005690402168842171772927331400808879074315652360064863169675780935588477517607890435966974304850251189157434428747512467320318491767259407527202534168482538080590658785858711652375550426787297576147807125288111618817805321670295790173660378747470728342735738203998042208462650388917949668810893560718045239338750664314281362029483702468360089234291665373164071362956322799788484915829530252345693732899912859033324748651241429736643970446137232695416896084668921189889704117338926297602933188191070412502723693056433709213360028187266287196866453064447672859156423976183398985832691896291154954878876603937073100712249500575431134419474266109868116505531111188282529624595289284922099680650593799855331832323733668422598067745504710012690353380310836313632673247732633970314907000758660569558567960388954950476869069360344283973686693434569587672909258449527977368923521635720054123984511830406539907267748719523425746515933132897579318158052256787644739973594792454752135071245246113722495428382329575811134718223128641049973674297148951567634738213272241978210195134418649611959392891670319175604471655784741013360176990899315995445108585949270382894831125085687986352327052877706948948349002623086457925786053121239686377366063248298259695754201716219410254177377636912603501481490864252010862713213527671156559444921591186127548187497639566823626518809596163770477138917124242905502213859456094859597431354522017889777351747088457298907778809848117889132989620497403857393267241591606326805506944722962218206613531832892239906266602556613068543528140049268001330182426252945409116895625296619204409865575987701910873990698906916340853988376367775837559910714294694748355111752453293270018760193972937336190413502102051961963930789129271210018822664233802699850559519705480951482735199833303897034653158889288212428782297728955154178920809619599526830719641768310096989754782910541327077903405167914174507853482600922873512096449331086729264712193383261488195281678064653034982351384545868102616966595169958115046296156332090011608321173837846579536330361964245435747317839295903110475715641587886039753368111352911734169386124234226644591599819906675056176284813626539337050222867861495816057818959674310407732165716948390446021614571895216365974200074391824676574543144945197913494882479367373844774768782527560758980744687299991460913818318343229401256583583048944431525024789542224024284462181823526923906155248269278061990721614924278539554313914283857887111930226474463336275183833802645749501218143271150031567469188392828199615370849187296750494437244423423595283027992709786128943395298873605364156242497312977801880727374806253415204403478766220488195877824480475809412353755922126195839729751126811109521842820075354420763668500430835203380257618009104344047698922927681886609265444059717138955294279017223207534288645551472849591962063774798876522752130367841473819186516802479985672845088198203830558682122926894705690458099587556763775789951887360189692865348818325524465725794818158053311036167555316843214163312053815957483319333643723031534676248480364370670372425444700204228339792329387121546231857004883011843949762875048365141849229073008965184978482596732690845917339706748922795774480146185057233002135865649211717182083400717478994025491448518518468980616832110574378300852024484534557977445843196493305634995231814460395519640887391855600159327973492303303637823606104145663781666004775637496459996093618483368492454308570615324658352441925956833127520646964204076199911075409784698464993514310311143237624568872064112833215641899535412781829875087978347737839259390510377841283080221692542035363314215120736112328531979884127876769985109246328063917564725511598003768688064881238244538151894829793042846987334184889076405160233122646475592628998902670882474454725699442394369524048245985098658510155264993692744380927080546561522707788645048061815406302992502818679460158222210518311379627376313182565831927245942592884730670463018839601194935681361751056004178609504406481376949391906890021443491995972730746275025249443004874847647523371102279076578250248359364168642018237707267332020439039986897611203550788788795561678841980643881699471261934576287936960023041897125086055131936830741690460798273051946326653892930307532375784851716371193768803469011594860040025071379175387524390022514974459761827167556770649998568242605148323051305773053752623356126844606378310706222916039459598387567890515266003337536374034046985178203754478234233001116738584101583358279411532484470752642807164907104590397613959533787813052823688875108195492816324730784601074475069706719071225440969256438638986847701479839581277149194730279413649399782604238225617821158420521108781051482117133966595696566191579866583861541570488967327346719574391861543102871659243535744845938055327942294402761717483504575445625208485844841389188454997499027806256300181431088112750835894475837523470039640023299954761204582297515526787844015067237893846693030662692235122406000675223175400866570624615575770795970264910074470765205433603394968086795714840687306038276383323767538774306542379342094458983914609373254013506310855672776098964127454310687381436048787497962530845757620077282792574653045345674803947920398942305874987416190861567945225828124441373349474500389720685964608041209275221460789948219841744310795715307104756526434637999034862182836019296288890766570776427439038987788315379139250384048737220655398313033437635975945073743290588133968301378111930386093314839077210308857336975792829612923476351060204347477095094827566021352716062980692036988823218235613810983296142585412407948883810405894220265484574919352991659759712321996300365223433456806407563231656936965142883283438678167145266650903474901469715907251267445846372124677282525763443074070963581078571889294180423278779084643523345977836088909046928931898728366413703962751549240263027042728882716945123165586690795523381041505198827667094292332780409312159663165334204977103151135387099819156053442809596438510106674391830754675675743810114155206563828735319364035361047611416727095445423506472138322098698956730165953941222288723670377483250784083793493992249349460418839917043603838794030113956047984041829099210841787587106077033204147605293529981573250971692697416143760680157216552709727514923282469232453916370831974464179866814741954325194723197523694682302630459947616790071985276505012401576378447210069341318260159118265849354359276218645818516877958528928004799126980656492097691172127619647032220847997952141201956393105075207650219715122070847763514350187000692991815454386955625114383903394531026324220550288750496275729608850715629224116102772027733440598570798544233215947599889175286590828064416241573425043355778070025166837380025010459187733536373826421098328849966980594214650354645653152566439297166344391270798896522477501321208013068238752119089723403009564857240506937383509693466811277278005748721016525974112832150726315173459794461967223153003306784689506063886340074218729935856735072455769641647889161349878011897659666674491981078466104502546241330411208702226518966284322260018643823826762961672262640813452411059053367172853826547410571139685444767052395527295947375906326229719179874029237796322547987026802112636443817295515019846110825137764627366440622893989875708002608093531493231755289400578408201837728199270284816913151980189605052661423023511129058345755046580209006089995729998160282441915149397704441520113150714456475167005927185895675787626290651363219666588832850623730946095002300319039537753323012947795001483546032290840691227179117240600583905885366745326665843072072445648106411850054983881646388365628848547218643712522626301646151616252663846181419496686531970915169512818570032091630701576138645987274483528584005580020026507093887077849248723618975375870581772623595976616574692223079224580467964800944903337128437940036556265516299130062064621696398489061638319401259852369712188999617754512953769564710967756167909567358576983010553882926504560345187807083003293038169146950467849372689191451075992422706481014317532306103365426464251286302032578676066932870864646810075581106039560385931376428929901038664045598112280657540053045938829972790645800303269850761284439802091492796809033426624218563502562982375233000847380804830850621064938466097477813013515862354503428449761589303787009642296036217184102468593251205418842039956531997470958631282978545380561733964622758664356700586277030520443098066457249306647052936669553910612064846946524920303875903350728527504182688088524850224426857543731677666019044139480223325820097720259414632125678784145527403167046053454991077393181698432577145945081434386092562815462267325403446452519810626990626745113310105123898423651228629459797260349934710104822119479480041745079023340286578456284744068370398926830103526091686581300972985459533768600252260769748721893288588064081777444863442329067105618474760379632581221974992356848671839605999951024103391718563752290738986008179808639415823370232649327589120267265631406554786053131194279889358703783037608120794080411921901995508135003555473733558615840546806920302726741424623394134327121212936200077343401532213290792581197734756374166635000129615794656580684542231478029315255657941067596715855792404996288124193143422904771101219301214550129067657325032487478003731586028723302687433489870023901957301859916363740537009201060218781717596500415999927925240171332780380414265168156978764960817358771176540134467450263419976504158858292637353757103097290913898205310556102884638035655198581244222561009539347087143489051425229490041481728602949593425269895458797346276697855288965351652919056195400915147291716390828012656701033968214779649942800206898067055282471523980326690538641707246625091391956285859821693029630001516834696860338920812614703710964846247583901519845675112212466128186545774765415045007421570047330049409734935562592170292849882909246865164830580681996082137549657312855020633200440044116900512932294107925565535911513724812034286883688748769272075915954420036075595564812839456681253820207805428853764007704883275358028701769579422683772555419562649483658072860296214275410859014155552512914278992121823823284937123139201121668700496518772505224305211299351627881754863885135331109784745926491902137958792991328193356177085511570338051449788689345846295104835434042059930271345134716918209878415500476482191428902017554541787961028600457091081616883623734380018469602606664210075371897742886082783069946708222008229689252962277143838463562245961993096571403929060795171954157170526314345341530993035377148792971918605569575356426928616718873987208217024305145489206649565368164881974920135733464638280067333161006238806497910108474776423420683876262941356140126040679810341170519050479734565031374340144731485422247388172717689102632781177268880565001017119936673708108964770483234815377817312593416925878407634499689173226903460030633747057542475028239392661872393737669923602156651910888007551586790371607743207182892122913977775817043416266138386707941890630818081709287109347848929923123371103924576368608395329164117655340157349281246402097412254693141935362501236051109250211940382728273204267155104515807656331806181203524582553985771952522005488216979967521177750285162587108269840032672503613886764346182212009500531366385577750531282465919796330105151316016213692500910638560364808197574989926270199763795508501020445221804563170300275155494905516143090022725738542659361168723454917303438558820740824979635227968212287166261384709863286138536884388176058791448011859139341468379810341541968021976109608827798272398318318713248611965004962619153350126381703244788375804660758324556990323958462177008647153504309282881855816666190575193977035553744191411050733828828896847627285572689329112984863456836621917567568325913686562707896033061489006917309328036091284563708026261495713110863354550367119976265623849587307879046603964685978498401533878760878817519253641061636342561124230527555350337993401315637459273415834483484794591844288500951154352819980339530007860380575097174556876149374690332360747472230170295771713887631007995757855539367429847473876880600995315264464298568210077367787432825146969289816292723415247797500226669875035811970598165869642180299491223271143335121762067466580871159995821893744835437227276098693447257336045408843522067829048473445791598532385888009235243431033380156031401326568764771398023373678857327531287279160673112626580231589818393074808718481363438603973059224842644562174380713563228862006265209992250547319007991928216972773044741125260735054723529144476601398702172668604647029544349892816840647819968050468101867804235772762808253021417452479834783787018005516660769701784192514044459173620335869630657942099891357829708386270346896153619793650268356965380025484632692463643827938671631454764116952547386500391777869127533474841747694928322415021411922387062452264438763910604720548260440703315366898581829851443571116626390218078618867635421879110378361461562037615407353486713404779682684686990014968443436371195963588965093470175985248366142907563221540106485960027201370022859188499848928320146985212863453943350332172740113318151490215543863521710601556397718215634646885371428453550243237455600037731127759546436963611276682837317697140222654964033653718076228971350844418464903340256594111105875770842294490795389353131308598395674892379165186698172058928657945660142947840519279873492283800729176074531447803109390003479879145758811269978888513131977758651870073068605760718977593324965975333144320034431367936685723089539649886431008036400488623531474651607642048967650195776255329746820761467100900680466863623406791778929767627088717397382962421394456567466353187558010285339262761147407580210813826501169112413247196393927914948144023231936456884361549900365166575412818273768596800108070570186367664225565164907819234567576095255634417174480720255239479667653654491292111712787779317128469742919130631309845868032857814666636333504075778450686205345312455460781062853806739810616470579720559834618799665952547802547322559354848555729123268376153392825511507721389512105204140351972659429927665015718071498007427686609097949240752642194645049900061098188011789319418514752946070086308442244517560906801609143752427468124384991012995118555579596844943069311387512941149430106002376606868791007845064128789555191263843910611784141676736162162858805283191626866183327523978955557533928492515654895827127997110974526037774480923412153949828843147263382727755301695582594509992191074905399410836535876850379452490933807831110164129250771107609051834697361069015512716247024884721797832866848840047250660826898858864495988224692208967572689768766270809989416163731257405086647372607907548320748508027573131131697389665995267739576120712834056736399528559159428659763297293082634259779448022203049725280118092741794207010296760311783152878793796514389465005693567738191145021055765652684152950457992529204137436513734809333297666279647544351636268808248730947866357256419275884646486738735195114230900121282658386834949579684166956088127976087726398464900555024143651313210634131244777716693980566715749066636407703904047441324431894742241312444446487254453180625021776685817479971461901814115510631059544022689440134739976172204897638903268996135353339813237691848190936262938478802680530844364935090061902472343514990056662434586421409449447912795412011839552566212195510079570236278584317621420314035032371680939953258316650511687576647761208514967951451102504821966027927678971613773035579401066956235357210889715570246827741140149754794667096227077025720630855295864942330503499671572935215093332561049044461623122285186946827756553616626289817310063201805745534003399954145184772077688162327810727151736332253401946379719862085266509619903514743061825900554768752708398864413158121897587267312401089693924215250298095241123115061131534560862660167013400704349202865399362584526847790717394842869413284868491966993182404538020643924424581295457957521375449301028993249895586115942334249686065737987632528658442807503458764831857007150271380965421990810275923396764319536898857358201633744826437692122366286881091993033661175033149488904574624803964186746074441539693822914473202438383113890871469984737634707436188314476276984458279116576016397531331394455157641105570789364734997722254609033381518598022057328240037204467393012469816613361016812635930303909726181352034078645374780604067467330228351315549276144955985414566863004349415665387172758976438166219460596194629545448247735976991718066127453748627185615963450876760043643112086987549598639069043063174365190996307315755383119815931810246571487617815977116859868206714969804313726960321531499634051822764274559168610632896092082824876789179622088660117750388077660971636607655127249935242689745088198973504787318346466953183193485528701908142608867740700740113542690176547907866847716349230521095394429335785464136942727938085595001480195079991023179558802227391142490352034445756452585201825166434853466045131600041374478697075992718873161911080390272362294563702044636172111510921935169732629717666763059902413077230149756189547100196282676986390598731142400807609525027025146154586724362392972158923826430743773717147864903548119031095837580712877002396594645703940002967505926695809381054611105002870833088107900600792186048658909143641091241889672511904837379053570457518940361772641780033400378323620900490287230254848443664751030606198551970004005079142339411246185927208240846288636273205949599228583808230347961350777756222114503035336862890706026726295941073763624560091189716855643982875687010445337860899459547658414867155452164619832253784478408315991275244491789008429728715562111943478490666668472086562296810738626255954562189090138211856272097856463218347818664109023200459027402631781944740238765846649752069691989802894036487049475705196822504673008590859058583513031388240949600304605348394009882325627312358411739259008945229353960071236133914660266218007933422572960883438251641109570381305388223221254127910469933709525995682455556222201429605933814889879229462418992993169002394631369203357127369366232362403468078257055430663414270759881608517776796579799799029391725325255097341546704385399668904160787705859224092830495209290012482105905274047048557023641123264780981776873629179025640026922304120071819072181818070837531104314932067716775669562810913814524423991727241434304828354999377943905876531598444132542702378465712140741653156786455243212937516688423164998036747139017506909267342055827928327327655689770749993501998568551992349357801049541011755491249865009663641221198908535968583948957367667641625639632057106491269472348564956662426660747266461881615765228933951142319831879178658814321405180845081204735760879279355800645573233894761747036491809666325383150226357219418365451097273775038428045259387505174379209835025001607099743955343205844153557737140628221073669807602355516395818698483358707598617097616232887369393697802403736686069124221680140937974221219778357400710335781543056137636650575160761978608270247433405832866265006964338070365376972002583202929171985198401163467485671297122801744059758541791614546051362623007387646996361434686268313662139127755846236574039830848521233577483013027725966959980228771159501468535094756958600867724103336126959925293768757336873649664089648873170741277179397730478054229553190208391991382262936338416611500620502644347981218901238373527770672888796621707273378722905556674460123280149407836579078726158727574132374883717040981912496882780648838670587659954449943373856599632029118890275763256078047498436520148975782553569291063471889152655100579278528861715667768898141657264290427225651832737196019550678185184275422587560460237236867563916180614301206693518499410441041856685449140197577325909579057435754343411951715572034302811192641282303281320928936889525954215341533049503753667554628869658028106146673825077268578556073729333177620286469801697250552349406353598388834444980824594336746737082995076228933991317689524278111274446003205784036038165084139100257303168035264797618641686660674502572271860438014818564895376357808846761972611257406848586337106854241330271520957931764169178090433817890546748530483548483559321562110750591754370228206035731067243205289881984409872781882873798807311431702042328870716759344607332098355232441314338957555153528765018740429955662687421613265776840444053014634516828263912830218824664831768553663951472050959257329293228528341426869610785421280995992198785105265999293331824212669380956461571088033270658784320303457687968250255560681210899710295325019896561162111645765378423298797940345313503674718997921591475544414343985341643907058904775563759172755043273658711754591245186459158716021983556724020285896295792600023584373136610087518252160372403507018758588478923593506021117716329336142689686830824303951556691139326834765006854611319879711290590465069715263887037864576835933053558724506057816870123149121205590565918939235726480940635256972812705158683971831590760532952476263132011746303515834636434946501610723638914953273247454130360612400328883550197322142789383563109143098878239781632021512438625819083566683888334538649199552870727784498820819162832746071995543006377968996697751756652612349381817466206104985029794947411376695409414473500035408542780892320640898321674789576222118144819352073748256474953312997289096334913057623662309905917720103553336761965953979261970031246590290926070328158143335594768372875414119478134046803092232955436160409018456662725634952829737185891590440174549235461238108972988967867353566192233738561024863090790706889770902840840979949644898459659194261842147366583480966067438098877659510290774896328455351797665475846776308173048690266068988684013429851941806092138093411561788954831245852790966202430077681755567600402490026436556380626499526896293719976908711855756951688817151318277789694110020163813134890050912039475930070787574056750402167612883458817161501459790359750490175984326769598320471652706134641599055020885391088547992466611640474730389325168763617464454588014849789389988798550652830041416036164008705484131384167833872630329235569560082984026363589470555426983565595585194028939888994495891920772060759761625418084109662601165790265311317830072329605608510574834967560009482244585201403795399180182760398233170792897800844414908155517096683744133606732931778552444762670131369706096914641104871655443108795764209524871154401556472341674917686987723418490907557671301029540528376025957163249703482358279989569840026244683474493949446361975782620773422153870887129677810017196699513707117731017626713075194881350551523336584528075032839325260019527628068206129402941786947912192261765477054211415214978104725761267198257074155509718692886926911642301860190590342370353240237467177305761677616018919346377131813851126994251720440022463681440221365151107116213378316988863566602091532374396734086446767413475925235174803643216872306792785152478830406944247272576062773799950523366879865269245485740751607528743607426132577937899917525476236187045369571744313263533687767845683709341429487808008055107131726456288871329682697310857894336315566368558038079685062578238914719559335860084151865863069318480708528759263458193596392838019649562336525340334679028242015385436522137049388658838184926315656305935963811534909150486440179802215760149625766616192306536816548122390820922076116845440849376191435665082092962657806712843338470687444017623810544310629582061160986534807020960434067068758495216203028621314347166918082038884023507699565115264893831208316549120243470522290589647918212279194364538960582459567559105302338997514448032798814319567223342369187254028610867000881817031113203716267308168325395146825022111996875013229515210802911075196346908757233811603957534486061999426166961204342523005554487916233658043127175165647766800797451945349708106230372039866091243528126097923590638939917036961099350403750500795587922530163508348325950923756843089893619003980045095400070064977676877974549939949391415993741652722679458895744940917523544227084409732582120410435495144756349997587096737870661980207732870153548464325837775200288477834448862619701395643107261137041218404769611968866260472866567604717809653300872737798512588318210528314802105222517617960352826036347839399960634064916470672789254101551458747201664407733156231601338337864285926181400612146227980230015208394820070583717301574867493559689842193209863573860803185708183832528024781849250351077032545131004454133427520644253034070124953404059840112960588369587203863795512946568131786680319727589513569852766382462359067132628082436738633064352082429332903676045470463425877005029114117070116773609778436296171960577869647404449754934262937854133296596603031680575454271520568744900062712265145236312994267349519752542690781992398522975952497422730744871778687644828827746036653707643321314357386846057621645499079983954277565670727019618576131125332995972766453483537504619457063351728650033519177004145121746799850134911866377714269601711199489494981221906802751690417584075796705709744836964011032774242131839397408586535151737400509796222800665021795301623701100909122070490585302028367108511829095001261646406457999172784633237948832427354500733243532695268137724732022978337561607616940841471434287546421825940489739894956284900158721832978837052217764556266330502115363379592922636449232931402853271231885254653987847944221197693911750714402931391805297277026246877535419520311423812163164302414766037958297965927000133597472954028723611356807418750642437079001889393420975901542684797433912137673384952694539188343790369251159685021498559363108991976721016873601881602464344988956794786253624460994818579764021774285677837125833595543973596161702289229212589846226035275629415003988394599040343328341183744888018464611380057321522911210971351897793650946741006142370586373134113785029953529936302502865372470661370146509285311264777058575335798656268393688490975536857000837810996878992584179683652848990441426156273362862258379531017644157821675191180764657033117782909936958004025092725269597757146424196792540206208298010446906551270700372830642357424698874960203102430480358962073577174182215128103322843085275011223819984399427436448098397738214314499111379280589784642611846182153310564793716038184277965684877050130336442046700385871279152374206689616379067700186481309572915080559745767953526111173269259717873366807960166820297769781543994329534810858662007274629558355042359181045189110997371495198097238884441124424701314121445490385547695793629486901278595621262599830030754519777388580181603080773646519781102330368985265124384964025479292030426528190226312776783108408188444197569628440790554506290710370964916476724992873267380575557743824545723596317268865191463609501976870895829104475806461400724174294409345839899287731346052643452618519509720001628838910564262827100823980726262622868391822548000952340211028103671979655495767013054915658511236898079554010587948780006837224456106032214978974542514476504858881142523708370495079826570994527545319899110384466489732073031794177481161199690048159077932640096429071448998149591166698295977434155322418876118238643969079184194605668027435440082229221915906601926820825171067304215012438168215874430921875943294845204697511859279249824284228075046605321007967899544776062202687291064102506345759637949710346302776780244370193012908831681494974688810980621827402143298028229531435040334341066552392007492595479414745366197222284635899485878932761230593725305589980195110981647388022465983345964015257978263498322845269583703244903275800454692437289118327468493683255957320854769055945952184959610888440914315678553797674596928960699196364355205663317209900554891101867753617398242128657816635631782492845296968566913194664177851823393805451252029515970032113935011930178706286448175982936782869859442726567194165859781991480462210327751135376392843550404892187524725923969597759093992302451834167637994365597719344469106387772819727483829082952557535316297173363887874975206448144016529142243656498053057610153707577650972290255628468965473579392767052789093379037837982889149772702648545706650984562404952585291485296935620485786209702298426477132181560959754400609841779213898824441723906614013254325964982213372978530977088258138805653046110106323191822317256853496840683324571702647871565719768777937000528888402065967197413399242480782965594305932670633228226151706578354572236107951053044970365274497237388377534949521000733844814670049358819555450387638676953330615248442682975406136283264335878246233899395018101335894977462461573458076583324069909279696720125549611920249241532649382352500054345587522100781013438477256293524058408562869079622945015203694360974854060428314236820144510679691860292412671461342957280578784470852332640944196156950236963423759600784544019624642972694632553740361642396408417490248855113852905688492485069952417522801620486549615769595764184602038548883902971867146655359342378353241123893440589212268465871070490480450283921007437413511083192331095263459388210794067950486371722866206307115659363869778999596550941800266837614180939694580439952402089584418129102777684444671340611741642823053310985689148662582965272154157863049502959933378608316723889162370856553467404836605094640373472506368995598880487135241250628552768368201219193877144312203718191508865892152029309312558572410413945413007922318124242703806543501158545160168455157106659480679175918885849955964811845237148537636216763165305169370294197396383415196000416576995575291719715100731064917796492508131987160261098742627833116027673843527620384280022929374317422275791810390478508395327543725001799144063361723729548326839327854583445266020353224444076719640552930455764890025771485272631806734444787791009527610476491427337157958497787524610312880875179930751819412938203327372116369690337121852272123551463925671139106620020695051557824922549466335191317689338103636445539794358755304147418752970283477868538868169999421874714635349286269162878182661316095522269884194567701657111251639758004741880439015354088522229190560474324659873412001705657216366940946743268903453018560770567966374926928860342125774789640466195004686764886636220805806368750682431321493846356449703735213834842008303318324970059114312249415620653956838916626988853222849009424855898789508337153898800515465637397539365584872353753922452836969599360253998106537798370960569389776538795606536179875225752555454271560508358617424244114294757917277225479211764883490267669491368914006062064105838887504557275793163172890802382022478604204447135382585947188776772647191562969394966874187720372148150275850098360273855006113825628522973723785233785015471441281752835657760271667639610166735837673301759335379368885214020962619746736575505360538767268531630466570831106222121267507140222488033401223946019207161849598904539944086498100696771500803732621083279582156082572723347153623234996971794998347842849008284077551144034224164121748453515222664313351975466724218072440725783943110324154131976794255408490299957253055076708144196340056888658374713714086891146625004725138773844544067845418081707126933841282772113219488020877664273486122823791664338082403611257348994668511198397628233431944422384786840333321864271380931224830463318173476656009237541215906516280283566383487505414055233640551317058354119802655265749114285293253657589699506318850692330792217262868632605057706668438210569110580594018616895368333080957329676937170720718390486658924011408753930961638723892404497673223848798587544020942994877828315457233839132316961976002715391554059243937273339045679997600165140006517816486754631741509049447358681900109064072370869022179765453251148440466934075066419369888069812981379068722568310148258349512713426519674884828705802733354439814471575121638525012692480152466604376719016382635743316864849705910142844101495141161816945817847747010720960551766085621731889091503544197665005209949897202941124663646699835635783827434749130544249398119602302031480204442035986368895666212611349761239533492921299622035392963282809021264566024619689344220880986014472896475049691795629844940221682536901921479219106589033718154621242879904746644733525297475188214466578502824620906766894986122784035410427802092499045378172379243632714381646360321607827585107317090933773722503144585240038181654570654758587024309011539643321571440582170801640879647547086143121596712641901358340637257437458388335311357700260380761300875720009765325591437602927385908449491814079344387893130793707359503275523005274536841985782610632441581577525710548039005316094228952555488758420921205942813622119871196812630151030182921346496104454326662147314319053026717654634677541363973820302190351037178590620847022162431461223558403895716146242870128733765980152566180846207369601926414448799760382030511949490756054205916810101393235134869690632927220165613059047496568949430875184812973077054108839588782087592590298295431483129307285634137161907398992636434918445995515895311013364716316643098821858929668570852308560348895101355194896178267706932667039130838010769543992320398017616828541735272342986990962785319255292499227131398773580363272622250781076534574646685373479460752329683563988803517339437557554571196859757522469127837199393960500699941673111465610109323610222710813762146469118252483385933876807666794014621274891447675252719767856656540222010973704194000312390456558522588366529344302209226260130438595069837314896526258186904038547938626482732504199740453537426632432004422793381356137005163855818072830296275016504549231454479517160454262143225423154703893879510040139904364391622484567807515279643959932008932461130279855687912925056481616189762073978564531026171090418614581843363845523312750682774357658298918941113723943994203570497788739356621232735776198547287838798790400307012243012588633012815915857691656405562861907996130955069078870873004783860263426018354954905264522481754167973644353610390856193465446375081167824050148935244744584044261080939214566942088902754555662530340404019208537446734712677460839359418299142589454794132402183167417408296534633173395247281088887635418257388412326511866186697221165521990298033992700532583661338690842907535752902391927995334850328835289513726348850887655117883604264208979920809770606712364670086344884171176127816656535395925554964539557176614203249958455495867703107462214945429134995264373980807550742014472935568277170307409789958306425771303579859243425713810277167429123745148843691596840397501114545358736626383674880158092070603200571757640082835870450744610001622739577718575274979899759521647055991597403179162494797495318001396876724678205092305039301482244260226485892103810872304684605463415124214073521795524430873565183500813090106258727500396583140794276937616284733996769529943320699471730113930458925706641855295253801841435420109764171773975968295833364105915483078379075539159754500976573301240799612956313764942401887998634569233455416643881975516706974850587077463298061598065026601813543899033561390095421646890170385904698912544908912335511135906522538787888835759239369018035416113104233603697699882747012806216040793616553759948607041305088466462542787462099600557526471042809807534352824975654243135037143538354395966355985965562999330383460034135554962940126985191804548535870034621859608594517767858381059698025095613229124212638747889630052743634418303638313901403478554757955484405442042412771299022695373307325568624571377389716397241441441703424855683228897795754414029113199062723638544527799491508946204771703946224128138224636262513363367675621290703005964823509347598261728311753258424066424686854150477873453230939481492197062296072435712538582253363517273414446484481850226032909344877806646099535643418325497450396879029317527439209792640716012208463499642700640688498659701663463474592849921979999627030449948917214706948404960952461484141179597020953737131611260535602448866766003732055171349808267093662204285711415267109125960209032565902547724234859795274956062422364969601368660258285063429224664757847479442371219326485077500097940543052822934935766983059703221928473766095606071942197070568333087673492928865128558763987403099194237005263083980186773035496023058265032615534213100418734638690632076545792979057955141640993886352458434181871901438038204814517917145787552005815163117124331197998996904169314885232924262208706602558019576601360825739543502653255737470065574028761254504403559519745575628106363799180867104707687514037916211885929249107116699751065400656348670255012811384765793277648355389114570898957361371999617961609804640029321366811703422895922137205871950450214327657891382304733875008388765088436630007439538277557934092730962886066872394621404014123257153342790409247161082044162757406871682171493446728701137641142821179809935455554163582447178021406813640402074412592030818123447390590506580776094881167447002221810637136060636518256691302777405295877076402984097166276707976313933328977118406864050912061571465327230586889242545264275870806330384174499953705911416359210190123705299033263551991508300445511217084517305813062849162383507862712017416731158232443919980931588306177985702425541579773325917145006607889059273220939132663741049455572439593265402646241479291235876814038027652203351341823219154025262617335185474793971860315131759108167489803642612861462467961475335276922708005831067552049849871521434604165153742401517994188090121258394308960576764310379232072233745299699102480534877646899616761813905517129524500228797921139478397152039565967713649182327426215077282523257066055683012056825799492643990758525373280590127856774892722023263754717713166055793814479609647386456793963065422308602884897969764914460996244646884714970243566633647809646088740805476271917661121514228365651732642786872715654618990347691356742602394406158617120828388099593282344032803221385179475518597814960317511343082600197224821489697464994168275497589972514862783283124616809175531230664049914268947191269675059249112283362165599060168708963269470395123148474376530238862582692657349832760973193107289209437853390791242237571193010870633956837606608456896895830800476240984124001708687785318566753911707360660883744503127853025236965657479769889225124470074840835279874253574112311575937906428170015000841476857935613541142293368654509404452261715417839350941406025150163904069696091044235628518078858584834910247945528350800594810252234313317688238807714306703530455013609023608905882728853190724171301611126771841902039193002923132389509500375483988939035432672202399207512208212232495863592163806079410326630223604271150326651827377354676772602875643297210519874151345218421363053004450727635486010288162399021427696622515896893150646516504467741051312309994478341694423786773126545205331496461858550872612257082740801944681123717682399625684045626658367049493715378977852129752229965875684531621885891406591062608020999390712240113962523850527633260057172286730964210518659671618655546048299671086392815850724410536334875908843258020406369285276275432767627131174052896198414315052799673071617090054082280305229463507743523064218755216150855700745838017846562074547740446353621058585878592434307185807422185401152698603551559331576895935924292855773793708315631084952504020878371282826845195419688216070944302089229787047085437320640544647522189909547754674670811026233701767484770772968722685089216072632652612654826546454317692714756406374950756558861219185030115347389829376525036729369846700234479316364977951536789908893673983082845762673505210882764722647934880868046759947296646277922908852787845198201289306271028101772023002441295165791985122326780896336949427182538101380945351003553787598914937747578205421129610454016676659295607949393821191873289974781735892496033310158828132308433998572449497010437731368963686302884019492680814150676940741185457735050236802665372981772244759192403538908472703246893654289279708352813022977779171294222442674698759971902201189857583264750204708901717889987098734091489017310254959238758752183128374661187141865741080524299762870348799072855067620604794714265812843957662761955539275101516060378919293289117286283692212683381944041051703150121888440116368139386968055000892713473891785822497742167061194894222744547945364299819682136135322248035893007475077187965293743673380478351307970064649630182461129702931892964437685123523074786444126283109920297063839196539808270612314138046533044135805853524751178350543097866860430578700403360291042626750925168482510412080690368615968614393988028918165882551660062343249621055722706919257823726822070397732961729394794964255789818695293743159384961938325038624822307626662433919227924751070440527894908426816055586456064620387509721885288827199339380926335743410146528067697518431395911337012355049552193804233060108914751412588725353399345661059024552179773027599345603537869089479625331364496635998398032581428571806770401964725504626915447852926256990579507305768167024521403903316205272788041847290387299810506808050966896884429844319930362625018678149663558192937564969499913963391688619850879268787650352983775500305511173625530035003530587290050587762831135616531970725081725762090367522452681979887744981957427825042856738298427599497959207294491181326866943360626342726758644713995463747501461448005008218479733471576850322091848830158867389198628313224176944948332678512344786831694302541378799872567345584803694481308844622165443544649648816625566756453891275176825546194161408015900204801275300224189495345735200658524061938490020171035592674727714638726496366610165468498774227358909902843449163149083492738956009404574687706798704132421622526674816486762334748824686951240271826920093667042485758995650007978462635410433227739276930466620281823127343134904928212992334061637814755042197001102030888762565684940819804370979334652309002108062388495769602694285040629161154148842692072050802915583259075641618824581627848609660694678560097211862148353971905771746587267503833223071176683542489945860300256667776451918824585169944588644406182450113838045297083282019873528541521810847132250632722346592619041302058273258590701703752386628302623242731455570394288122236553722435532430027045229347479453710067216673764806031187584252504107324885646673017461371461379020882270421893358157712906398258407798848170437337092924631013855997456532459892626984816742028253901373501375481668757449371074869325984486838592669503510242705248608288324377157589211339817229250821923822873695492306188291679896432281346835921937283721868482613057759103332452985380584556389584364745392193814864097056494440006492785748503471719408115400643319382463953671179025562220905403357509474484204531607488784438043006473150601160690810578340099448913489727218207229479742874176836474304742053930708522881121251287133216475270483244445186915813546577401246925413358633416076676805819245864839099611833904338238377046311447905813204056322072890912269001276942487789295131332069952906447623572247357552959134598865819991842814497326838427736857180719135800899056777828898389250350778315889882811561812938067051746880772378891551620782835141009883118783886821724053733859205362691023946342015934795469515417399805653909828455705434348501996897783329977181016340574988889055451579326674935589006815317525931631272369653100217154738525364531876923428234654236177964516892066144950398408933816789203654239611044633666289535735839168836974074734357531183002160615989465718497727920187049654672529618805912513234503327786766791229653769533508005687114363142754831557491613757832609147825495853512551886321466719047913901461536775503729988058892272424022265292407638714702238253163344128131323140803551517973049101390481780211347847147677037778290750063053727481302743354818006207998862704330418223860589364199651182851124946905837854240722060033776532043153467468083397459976155045423166627579478175145412672752570739854787978156332014665353949975362447276403264285832697667536523635996483906365570794446283346128900407330944393345257926185682027169675037457111412981127169765114516474388450000381082022946124477547798850160272511057169281695077233844021341259575578090225401621243978713180031507450073082727889945129724665308447557085892055299468177401946025870021227466087851570186741322195495349906155011705912400051326177358096142427566442634053121864172940796262147281672123669739958343460594380729335392937160485395625894660505207425283924427428337552138224382840792656482891369682981136266619954196272913206258373142921591643294060741177774171474056421385054610028886550268470760461767913829942458268838145622816375148355334892989753658100742789854559513133896039580647996904097182922305870748968222836095373371365185516723219607685877418812482929134266216167755939076340784777901805211270621893271915850976549520902178091817055883709286620699618839522475567707825878376116701906454928198287969845021349258591415644939950941336163525059473739024364927022835226298706228539502774808131389425951416744414379535290418337993080122606706649024283083509186222472770728084532315144754631283526534123619626328997075102370009431182846476296065712476184779713165697306602697123876840418941029927933400952822106955686646919667819258307721490346485929732107363839058980282359438179719288369457189461411903919604509250714109545636060597622278340733236429970555254277561658380857405491338384689062556705682990711483422136415839257930848732812002656888121428996073491584119572595043075489687560512563675382537073816186165823903058794833485630058545493605205729846016790173462970669807693147679236401908166234570283781707501331544874898308361104973657789636220326290879208187350052696678679141133731764869439319273755182351973244135901478347703841043697080478054195580379744287627633675687737756325547250906739471043989618936006650394278677559073216632236137891106595777341779805225350541546960246136888234728191519328310375336314669297302400185230570886665705398206784853713718709077844564050086595710280375089807220530787768189857611254146680505858096008258595725910705943691481448610905719191733915431780108206323723919079971107056439396527965263028160565354480831485102210306156624318165941708164538924404023342704514511000885148523104859912764971887907726310297839938107729325853496019002331337610807145305923718425612984545426920408386995429207448987016423300820343080972060855240428613637012002442870325977908930717706504761732029535182229777934075274337419787744670825334056099204730038434776181475788527073061168674837161075677909752101412918544513479840509889848138768902144516055805008034029305828685605501573404294755298495170967382193819054201179082586884578354781106206566458021947391377929308759238124342954077368320160381391876481314925448712217055743098508529256430323969391434239034190576076156346625944451955489365453160401681548546570092749718761223201874486938841055433340131283981838786912766259114819475210049744674486882985689593706605264391441584008814925201111399707369220120463026813286119308420082402376330308133924734848702250194097085119824210518036676400531581783845108130450449305812675328083333668632697425133492391919788158135886832301967259584276135994983089237305601332614474602907345954918801629405803303685424268630550351054819206485032797112394206187998854749474953812457423324423687521834516107310912792213217536521825863365148758448352679462912440232629253831818267524406970747202022463993993517885150580635990961993017121948149371178473472161655961309538338549699248944066240027964605210989145594420622136369042243275983095314091447692598305980137170574443228583355390308758112545234295539616307005331288489119935428112338147027732281025398794433749119537592122907478682235317279392587102105071510291691102436055477779808919014829359937563900843111981132690228152727699553917067458040068698620102914448665913322035708577789764955463710625315430934385707398825783465766879362723045409695143553392640534045271425425802003766854471170826067661017260666412860952982348875865626444298972009131858805214249889350127531348471726948801077021564102024238388234484852399946119049969529399074409903153052978020471411362798075009859027024815118339474731421023178588422229863359556740435286766696134264622063296256051046929111545421083674075030439682822415456362072447051942888623659783955735963478960035673484238392563406921634897779085079669768525765683666214437934716489583622547003290176972703810314492633173614640663432318285276537662222456923818937499582077102624673409908382491264962279551961000445367606742325599704306198801844658362585795030425887098608943976945330376699073909388658228118148875505232135864620148946095571147870266585920959410965946028847972641376940462916933215594067240306632952777990953724542072668119830588486106944760081147271711465672195577306112184879281765866706154359156990969115049718440267139966177161503410405956932644531250379124760168985178675683236588534519396959388171337650921807516700270748712831837887348889470808097525538491742228174425538533025644132310328849872029075695845005282082090886663273526226883820013082847837405270582246714651083803250164779808067519584726861129921018314405021205713254435075819308480576210884247450273355864004628845759950102365019958253472585848527547259711691833152254046417267729506290992654241891845586597784273264552024419606059815486280328496118248905747660274589339593602688452709623547860400042458849976776486587329665283519325889235046313750409028573715641597801689314187868160429367920915839330464890131278475045481876610671337606293716053213660409629713843842822666171532359895669734104395578716105743497710588438873491762357100028945937882935895410454112377647806816176290316722590625662636015252382388973811850907153734547269356855371415284164494252326495431610237707759648881063116195134211587340012146143282188968253436141617229912054791847169947174261292147555531520145908580089311128261810403734420980619979812554290282166332967498349204965484222618444061876100049122582524055256621481820165876600950780707537992355558276864029266262325708019166489527931559447282744713257003785646745643019017515254769092211920331064690779305819556725313311007695653759048621454679775025982569366051346523216243092207335244768162171487145142116532354442834759767804081045568914001722547369757997891267017156492518403540661449622146486997559690540593649028496297571391648971898609225553111146307607444598491966145232691533604043426078895996158508652957723310839512122769895182751882065699709388904584309749624336030624032319782929711431044907849293744784760285810924926856684662895320986653686121446857348070523472020184518808874445167503165798373480616739142109811256155431825138255849482689714622443811609217375976750001778766416022500879848470293765421692124966608211977805275549913171564745769040942681743613923034475104198925326925807284985715960290826430159084452222025183775981459792160431999252029103039903154565655634393163434236224834737625491914744830998583952355785618396205457981205039852021028803181658114207100569122291686804042626495642877428024151972967122033639781931553493087312797449080955368589778644305557240182090438420638465467839589034651971976725754713367881530613295332518114881182035977034948494231116861881783632477986084025976834348312370217896157060784661215783679161971174289221231983320525081112927376011199299445771883075508085144700335635009109157014736215077089296013463077736439724368301778982048453096342194594915972067187903745731539439021197368219196787272948363058194737155164911618505602370736805914717405914862697033223664576403724123613886467786377271302212820460680280076276229409741831660103618537786598921195821430796231823353706847246633653653416552546258255371981372356882103097397853539607609518600680406992084097998728304751880868406225920374082547066263832496106233629633377061974671298869476994792673053653703282455689481067249243390697713750864148815971058149350813154062411554632007421118043908644776834776920866370875715370132814397480748781510420994637715476298710846439434723061498383867460990902229624325689634218037447868097340177154775647274774227845855384464875496141187123671687887879431090482797490735851735601445020424155106621315725648412639891389216564167563551787181174300021966610857289517129652692596044393593844123823570564633279473906609833648436081529279075613670128490785412592367444187404659032638708932462171789699983808087700122670791951132556204801787732168258892067756863521949943389875138925989376228786684998907789487553758286524830301036050757364432883783455997556665039828931230827176233999172442365562369440594721306782625557826283363537857293262859873167973450911862041710264736685375598389105217510208760759576412109472014056272491707782119313112311886960886533804867371648376561357227521903480150607439316685559148562139184317452662367247574315025389155150193852630899471099133512425893813656509717898859203794076528334205418671784108685109016594157188679434416826755011342383854211768270100234458733316925519697892756465295657178166734059011150308003308039420181795811492485257354890320490199521790972617991847424323432601207412963915453024765310923076541819393864696665993527719805134600739922867706985461438545835789500611371220992208732567661302080906889231038730385934636372148895143821269002281917394121632125625287079000529809711662995474765121440043262440466208905291393480891507070742686459975170268604464847941500006195732422940882164590055538192409917475075433012738845021120864615152997085420926757196582425846267240112494166261315153276395829227571996501538575954154461030599243930500304016985608959917457499504844518447043713321278363284706970109657875813875226590657783188714166574623435389495677354967601663658823226142588632221831561086432300620306562415142686920209795061106173384675475066180199848476852960579476589669203976814971673845195186075499182435333325289041892713401425700740749433096844884874462386368402324850798628096892842821591471371929468781287739292994994178305434517983510553749203911986840200445290650276865032018202020854833102168326590239754723753027369817181770167608645888642189917050176765682995103411768483664110754081215730116286380972724976826823351650494182918615696804811935491696213510069347192665619869173147560167426473732914631867899370375288020380311969351834003568040648681491798092117084723415273599351483146145908345971415122122225773674039902869793385950455415461888762165809006873729215842191222283131443317084120118176700123717491973962905676412166049854929616483889875386946001147556062094272098115434415633521647643251352333201950870561505050066773120143989773996330728167607371360414038068635267170155792348388170155453266960492351513088373714280618990457930851029622944446826857031078247414262505833882218170974557931780324639482827986031488967129987324723112358931548871488579890827332788043052191343181079798777232201756382869970730601166692889960699586647846931176101040637044767976223672406225939431046807135470237711422266119108377489641679660090744906491383580816974684753434750852820394801781609167256813337286935541028766196660195485686778171712691472265533465567759408049729888458631766357755356007485279505237189434069113679660604545104202483323982396801233590796491683513972254567874127303906270279964604818946910574167187109218412343100906578509400883178415567763909945624211813469017162241494579244171745351118900004365865247588716071229532959015245251934172249601536378871927460360646451479133533635567326438522885096631309068979373662567029270222745048376948782305202721987345314456527983996100944203699484082954328159451025642254400657826057914970283431265938762190172273688786227462977303262124170980166402458439803462368637776124096214475047908994203436129424145514628176609757979441231049762114824686613166171800128818358683807613654471741602961281593472854575030056322531865102021038014789941555187109528372022268694774427614038902180356292860892057731231781125246244399457840856913846509315104376079004066098803373015701313019654826644635140348570254877212403794763215187246426385664288316379527399972898534435539940962972922928468454653593231377023071651909939614245871545092175724004247159876826111634012566492420652467317392790840149492988253726943515047273411344102080052760797046174239738349192814498291766541278177023305718898510302158060516099457572929920533076061484807095176618278788856506666587165482651894129828715416974768994928781440601626255990003984926726997708046305645878423767484195254902895851944039209151363890306459975069201996301301600894258737145698965400321283267260156476619141151960879531569100740553687770174904646341941559093598342067084793850966820531160120941309550729649997339221030075107433973737942913153044103548078346549548562179614607449444151780682456412211174438727227950069000229271628442721718497266959956095329441706435975785356298256879121759606944470338224447920789929276363019111366430534111843998892726253518653736090820411828285184908377243424222102299466979594605893049789933927664724052028316649716883183716338662596657220423577177264621707336733378909406892630380253440971936652272862632681601151938646207650418558573243369368031338029627316933825243151826075022687734814455718658902367903156072248237174287271810427477605238665297496867188946283467922875645800200851355763375941796010039259930437971155298249594543225846543154719107286624286611946684144814440523725383737193380171213529914753095724654470525801814037288786963363002640918824106132612841876401885517624667504951734171984972785669599005459043165018480715564911024619292196569450105745599784124282482924393390485898112278183578518158203081620297662601936727263882929603152425489179790215804873718203328816808423053378808560449141134318091291381674000516998451126780212627381865906705087780580511385392879534353803651659939408716666527909093882430520204878515811004201685284358154203035006456136660791443164396445324649647724590186554226908227576348100214548716389793703399318051775750695955067385857426664574346540394049070828785706881163400273409338891869721769705201514224458959491462387583562287492755181705686293310950915128412557229185473399463381071709991535811630381015215301948339622836982598975346131386691947055864125011681671651532992000244547648171101101926293191911637698106877086852755524134423076550882989772218589336161247613180202870314471655545652157140278660948579366818534690487469998745261422568045415749883588049031965962609291369426775673099832839443873572038141669837076857520631828049866370124030418438527458893454554479493112329032970634964056907377121158107925909826612128360077269103722928086368155920059289866993463973507545740398014945344722769720212174456036672240419001040827588222644822761073058567526248026710624428691093307225109648206245155720265877842075017832526774886812001979874395288913230983955424902653950999417444901142856844278136144327484376877748127363507994917726992949630894268018313905846931762161856792282327205915086645885390028171036013344207018708386539763619939844420546999982044435560582494747434375156624284554812897992611730546338987257444688568810333569651748516580325439276860795866867874345307743370416817083005892229691170546412465811179545789365335114760041610015775933544351132946477806145963453440443910981970904508249791877375836563611148973280578340489299483804763683823567925962375982485971454817052369049012065876115203635000999583082985909142710253367689097038592868364649641508735255036876199563595290633355190475553112055953682374394036573893384766774545618325986222033747576171106899238477129374168101083636658745959963357111362962218947207934144291478019466157772853582201222455238788261340561770794285822045104218437421746131061501175261207153399023066585560846763654310806009266363744188389457721698205035450965165077809429349225445659892480148858560594945365708602784830858751453765924712493397671823969358413358715727719727170663317052646036093131159536469865076076332754903436060791169573684139876703437584621508875637430238077040632093290267603336852354270819031317581101917138330699864764028256967886443085275693272853954704330776198414789368847003332934449826469676888062863628295848923619564262879012024442359742331060950463687150848555880385894223169947525395012030593163858111048087189700173125369513257248628736686599973092558940634007746208387348490651596300978565021039943017437160655048322612626253410058309454854462806270683123465333534644479468060669603940552728313871879733017341423638121003382503423743596419536112981535097457071307601157943349387894610501744618700113931855424527118281435162646285112136982855916843170641771077879968518354859703680947306080411739481560737653970213731643007871539019535938354228474011894386789400875513402045648817536203285842167756335829215449000836990614706409078944932210243247737287476891763629077673886967192620315061656078640500819797252340023859694565470937871953819346073300532463720690971869544791220157569592300860934164873737630050832741564968073055663651719101490444847732141228427960964974434295922976117868403322183764351330263207629010981024672235160341465846382645539804856879308227709028394952523174237176352757645594941212492844244947326082450980735733074044554584355615341857905412371161719664658290380049190273503321226253493796221539394454657580032757740743281551246341171878382253228061792448811577718505550853928199919064502654620695422963360933959199378478107793063233175922061878444543873773970899509074645183949124143807014571793428180921119254427251186973102932853602210828131787737958627194097756447926414179427218683058795438933655488149442867309767758101761184356586956544074564637056547818077266178655664570491707568270625272772008977553735129112375110710844349297160887442258759408950737759282925123684850933506127543059148887824789700124876198723523982285012798147487654534853403122976381972254486421850433244151856384712881571601073449417142070673826880094832554551150606945076682597205208389302221129249666539008867258061638449177216934332131505515686509866888990916415912590590553518609841462646927164466220771166712450836489311023353362807405213145915718581413440141020625328784046205552344597884478150980305109856872425584003457397761436637798653163355261203179672278917037218637245454696826040018339992735824820241488653896230994969220756767898251043688513556176628645943938993774486277854078001833605973515109678243982792774852095633581679044209190615253587511569400664852932003398208555093222811991391993188070632944016394971434376744003245090657751086077009155571096491897593280575714269968672579882379706739934397148472305645684682129311229673416091653174710209701532942745610277457225201681959934466850475322508002267453056559182456413553968377958264313362234180468645855596727514223939818039293743929825769733366837662091560128523137210804808027624421719843532757534141082423849700053675494506346145258878116264772420829398215418697157839654630181599879081662673455901279052277528879144843208637433740900342537005547151172410148634513892127109937287149862196542192136143893043355205575837742887196431469134251889550938244757489051868180343929437427190797759591938024580263055281825974923514459033083239420786683657044935924081402491536662051728979751179203332138431543877348196175015437864372555644530124920290176455942908665589254463267520745875073214657314478192901220072032864723756293473539146222623715370551672464453567029048660610790111169508941744176885602088115966023000574472342545304868409457062394243497966935072020250021946981570212200150240186019802163301148016206800213916011473336383101538991180337579659534988574620203919420122217940484245750001048135213902886062315957549939727954761669096265742133673407272995968394043567567694803618584741886335261391381661282826328268483777378732985671672238665587541021004227628619968517475766119829320587692734885059963636111404888349180218029273877212397288303927856659679251325625120149741776818561290594425163337722193636190783456734400917543475039131319072392253553341955529471002074165019070704444690180314984206600437905759129442586129598219653117513755757616329667876955364752835464681076634495564010232388123477946541872481226124313141071803493332596467251942463978941678139006290225721629779741888269470987697005821875818766647823489621697985017891163071440970091123757741870546699025214628433376944425490991748948368410916616387195186148816967446186679688774988624329182973486413410430926527400186353478946196813511898656774385057826539503383477818731477712214860826851998863602423977835201780473341587387927374288926130653724944613354783991131791086007400998550752773334057280564879052101773579936009737026668355033216222801961341545212827853872843593165553707468553490576471104700087669017237774864048807325070950567915795208305888468725050796353126477609771705806239301062115037809106489238708520174737681587314195651156076410226378614849830036862805051148220226936363401363960898749599513104692331227854920034933451745587276253415823352568598977830709171922780059499478951633273398738345998709114904710332649557981298389549624814016207373031010598881645265776114174675612372315320050950483689878432009422030907201332261875958149574590117158272627547925720001086610033712326694942966792257405563309579126765253960490648332637618327777425994560523178056669315954606884887554518630427684632061907553684422191919990726703574420667041748584404748090382643165166318874800223597767299407148959863777130198740265226817688850276598381601275952631157786906806507188070569575852144977267608213167629092316170050496333097464326696824313509962951464364500076750038702118503637282387122194020294497703306914037174545093970797787916347328929374421947196158455302436008054793160004189894864673461305791895088171752745660833648351486045719564308455589382432860870916042301947024826598212894520975664031290149182563890505927135164143921155888881556161585915943588403230264728787156247890535977136700049880688690574711616091235140518551515832001283852624516116239593275188151251236263307988834278510235271511110669518140264548076545637753320053584528858203976710706373651057387802464463768818402386582229012532922501724746922859309323723747852294067311755778223381672081868893336219955998172280826786548508194231051951163477198489943100097301537519409679201550049388072627882935284784275881994760641998082685448356368821061956013916522324294682817025259526139492171335350388972369214002870827656020540119896845306464358386705353032386333109093457557602730354075447951596269902355881919896126394259305418846800428681235630485759432031677106876757995530691435755609064328275351484375324357317222904913931969823220671154029376842761219517062843008557802508774596364281413432734854938680847245695851396765389804663227525142209226532913406050162380350181826911603469533937902065051396061082399481629396559536266389364267599026493374981408696696358064359056893001710617425227264250117117258858791804569062842230840128294433826948797089136551672433921896050431785866008461821411369749925870977987658511421341637971324797760881158717022592518618071472298108523901839738195252007372657182207138739415038365430947510804281129183474376412870047885562078884275099122293367389086423753375757802967935525471831018206611175867641922547467887153745903974434512718698927163025746693084310771044637673590865602371937241258923255625111720637676571968970250383965148543837892240891579886237747087527072137703068328561468784621927582269102788807076296200513414148078205265916101840060606040711330083405241553870734677219303154971427932580880496626296420306930520581892551259336580536849124357240918903363511850726280070989495224354373326902984101977981174540062273116916339382944428982156414964622575785994049462366612801560325570992942562565790737139662891895419459199986058652534792569842022520998672344113256829765914002431055228060456153282812546314483837071039552449612511239151168321482830587648774845661136695862839740949068473644003365833131663163271308903396270414275216627589892510217091763204279163102701095460044924596881390559354054324261867923315038740454784793558601656656847280495313733225204817037631699809133934807479431672113436283951381128504917608197989405550207779590235743503979081518684145149337132077500590853785399076604144410577873951687997923324890932654163307388185891700459578085651183600641053111001392409460821315265391452713885461441021260104082632423415986429012278531283392140300679251998283292524311924793925923940164309260950704111610809866103025903478769002602438899433621164964131404438176429973408504971244826440490521706758815304074899259656886538491709255553237985805804551004392934687045688468994259371632546093701831393516598265784118767850205899346428175885157702045828554274144462692849917205161731508050806765980614888497312132608238076006333755605463903835163241229081774314601097078497637403143541868995993942124704026607661586369891445318211888012461523563133052860987698566148483150287884383216640573860457996643348386691294485565277545780710954103938698186090832649449019975200554231348355198434639310987464742996426054786142659885351974686702915757154333679413659556630927159948831972809778522545038333308072621248914196343166982563579726899998918221093264805835357739396913519047979591629519372310767289351255664106505317998339053516932321770781058493683386608122696108100136651515537776390289791996615228884799722207776543916399158040895968341710906256220575328525508038669124398832230432331302513925335354920821821940823827961274784604946220294109683485315189736767912667181738315528343435601344830100499492233299036122174704383949599090342304496713663381013623937202704978294452353882291583344640715868115576025676208069378965904697747419504551095007132528397438403980307825157070915979416099925251508842366340562286286482187488001673351794064953427016255860326077360347049883781803476730520686453023529439489489865786778491932791095788200486322510513856935880473639144333464775594104706642331010581366232377346323326560007484739453826018435800439868065317342471123247894906130788245002248893821808913025313356722526569021998911473876888626657469026802124467053553124962245094691174712785761063866031443103816848300475412127781761731319904718610626078712601692437603103810471119136809817957089117324404497861923151948821580445092796491337094848795058152970636167393112629091036049433121730594301164908124541454156321411577345997857460420542529582774404678368475658933947067474209873572891164543462740753062164066369962943594455482846378942732439910213704584804829036623716764519932705338905799477354675943755340797434102404298289052921328344876959241199106358768199806179612462947945968122458178963668995935128927433430652728514806282280038911951757391978305845938141681266216540399046846261575384323352246308804561772199493248598941907998397472874853772320733326152153574574212059493193723968104965227436679693549062564567919510741537841330785752616984205641170441596695237768069245579220842730589854959866136129577852279301168838151124411530636797252014989318715811733830928079878306869850668773611745142959972518775180264018564750797365517798241312560909131627551645691210324838280913339563255600604108769197870845635198004262168703663436258442196808348734761989201728176943994635735184905030322444081947724365572490473357653952848066043961738617585093407825673231475998903751163386769225053768368118382060392555777188583965388373889224619894288551997769204029147096482795427304151148997173753530111522378567622350885432867101475728483489558166154048567976243788295293396226737828463713946658011708166697772300174928760004255490609425025817499203355797478080409677740488937694743345603624241003916170027412457070474468652004832205256450698907887353505370931049223063682361873007015319064457526856105813740341957112084189381421578299458744447856249230352168627393017425790186852772644262266521249636344894432822354389125320756844557622079516273774651733156807794600223929053431721674142209976078127624518022772717353627703203064113808822015702665390338035996569919315024637822606644488297716223009997010996232247077657274962018353361459068993238187005413454205456988714892115895073385633514320537804708098146956073661817094273220855212011261308404685743521501948882661319105936756073855804956038334089092578316110985462954282566710052607521525963394215396681607561537546042802724934064362259618874909823950617415120764809268372932111863633471174853961400683745361134560088375745057209922182003511771961512163537307870543339385125955403528253060874201301499630863481072155552205518233477068364861570538568033696641295754978642067423511439769584905324618300662224083018479158984562129194677411604349735614157807496449254085114176408663929221361859020960547493306968357023819956362189161216433944667272979584517095281799188357170296880880122598131335442235307726389254982893120811180918180911110210430617503150636848167162740545584354165126235730550446975863413457946458379498160784965072363574469459681943951514886297102603618604832461705315109473490824139416375489143418499156255048868978226627039355575779861350778758148263124572200789189578993307658731654400828444475378855400559048613567662257423406319717032522578575636123193816266335727194313379236712620415223015046374140256807935105969094058145847748006169733724636895290660684193701819743314708940832017355977423732688588945078730751182583977996658302995637274502465224562381825697112139160816674116771809660382111893034419319377861784975986076930291449796230679263968570565332216676541719329551641412446358442782969696967041833380981329081640216233615956280510544674154514161415411832346755390517105205463991147990170114441096263963349368795344575848753633513606233794339335076345697890990599180817474748409260264852012658778329601467947639700111854417061253435966330238166024889317144020081153153835245786405062539305465042384626475001378607744884717893456455749245838242784255520991835255311781678073605749180940635845678770535488404333569151036887225764747989656759311327852682360619680386449715390644594062565047149045081855187227174471749061391107404076726197740154791298351900257446676507547165088581655242674575155828956228332730037165905911776723286300667911080965590838997419372200179630561400185911820678039082274971452635819228017927322636727172913895206856121718271383912121409051138336553849274945713826552271487581657367379549997644835039145385733212418764633770935833656302507207406387449428822890061027234290003836267473934647170595587005443803317860131219811063854992801013246509023314375142390292934819655834253567215501759469514993062717010668240321353545413588330013621817834810046370584603036067231292796775310843426122438767214346931609632004509804377623758362775861778066511173854352343460865725162952562478338089198767453003106534774017860553533465758981945034127360399889367116896397597166497007965765669304847259060033499692919451667666696864070431867767819093546440614724320585053214810987587628981089279089897519242650242511352464815260595983060784599414235741605961059531260959809079863316518330264976691657962408109944650768049223843567233049452113179842257258518024236581668918931958393795033754195229209806751114182662854809828998407593431447072226699067691905921106790452245825224707065176486766919357132954567593970810002116545764435152864863258652322813328683794302931624371291570850179682312256340130882575137567763774287080205855096568014905529576985740984450986308417824576198084913990925065843888343929761497150076164795950510847222841648446042101108410022166066071168971531542508870102288792946124822218619943535608381438194866665461586123023352291468671144491692245998665908850786809696574865064475530026947197660284204786882974454886928849914931976320411594808759174236689792488692069867080834115902136870832104293380704755507328963202812631978109638211276242251802573132520790748911969655995966006070063731485167537575909789853134780496808826540633623062067191467239884076329340160337343009347478139051136331746963464384332959431829690353107564684547800019163655186204684109417398998585380432363413682328741153528096073576031901818181480725025556408248799959797003669069729248947259988325342239043987365432953870785937816778316975654524268864219110681202759358082025196555804964652024777229835215361246089648435691817388803749415260130738590960150611702188209114627550879597110419557861292695353018735732058141848267096691071939395042689714336211376870153172858932916460633349346367299882212866794014688771407723055705616345216854075126719235985338388858907638663295460595982090555333906528890742343233355492836247102314752550361457856694210302567375667608959479215187289659467123824019639318233785895252931687912106422400211134729339752134463029857517064596921447136611850763956658588921943794735183456473044667111403339827521981205273882790033192292542283193537004879115436493376526643310371119015177034463654608335113759232058848761433173241700787527942146210559355430357465871450021982510315238405603189093675264636026739422615365031782394080359418965281340740581735665506111458394879583364532263241591851222071823500205046655676888103220318064208598821835869180682718570542757260639445929364004092565030653275063157983597772300453628621127045430528521159867468069494922656312013213618301758657743661227645878481765985881874420410143867174720166698797007597178664914865193608944628817971237935241959481535500368081894111105167117176603153764702269115543917032485847806662718708655413736846556955482357062107280447434914616223141988629482333782786383783200947954932826333547844255345793684282969388064900567498102625183901320803174625827317991780167729796061173883060799009108361157463570948361060388262362649698347861289694245551867311620189648483285436195727738408012757609928181513053736017491681974551436520055454031120822197723001525012858706356183229622323281678384206696639658355687313650837027368405508494651151988042563674481642320069670602123989277977408832948298732716506450668343204855520764900274152753245612689959458613903895440994529348315490894747895642775288356723288021747805487240426537539300352857747928203015036553630700433655002770513812136109138850101616338588095598476155660284917908883271479507193035044645679053821653233007571084946894766397393271360921751407568746753115167674744399756305229636098524759840409030174172154814947142155704974608380945522280480981175958694447885844638824434181424617480113859895351444065586194968363461243644148309780006034813557459634645603946886659160772756257510465282365888132799833824064814510398732953773623672195218313113266646313441979442655757910014065563404592439880566680920308723860023086530742224324902873560813958859084415242503118143562473423625401459888282144727619007943504665607646499039530310663281547174801066019549134939106167794408244733859863186436060378412823450514348813286905181928642690677534076497272386387509307204900134199919229520736733628016630184886123406680155518963551285359329810287578432040258182830967670871157107887860416212138035349925905714515811779182542832707459363860602164859653294238790208034080662815730595178628708593140765970714456247833394657580940765710926443152643279139660497476384946077635349254727969436673513030662293041015470995028914071571774484927201168257682628956721699095967655210882840100899508502416269679282247363479472773953408906098817813943326449177854130340326860185606883336938506784199891237786662654009796991557883052229661320938016146839160497876249668240071435790546182003988953082297557880812683616232795500961266064157297827634775601088225725030820965907273415450737166969482067767481050796815561201492199170243316390393984381129428375661872707091266906449762393982873538908749423199923229567929120513232348886521954650572502199907501942752958067444294299426526794537277895122392218425470304961185471358372354668394541090388404031292916910196144968856752726417236341401156652095601844646089030337828966528770782437359313492941721263809429478399615864646264570172972388820129784082635683947149077994316748291256818392106873521890677251252276559586445043372362069258022435185434191860302703166560375150226518532684738877361815160397976045463403800705939323315050499846384850590400438128242536248373658675224663860636746257855530384045072260283126284440392598391306689566929871577070831515932233646542830033158296045618576439412422301940078380620380058745549061621937140876266197317001153064895288057616907934577279095629509145351912971626567974713802651258306104744648744354651216255514161098630991230903394276613026673150932668117939478267512905416465251413761424547050363546545338076346029122673859816400549996441375229047830110774167338692922164184330706458784203638941285965069363142260089791643649154442603523688109066980388816733630391659819913961541490847222561268221595061741740157193722596869242190511904987866207804716509982001564352300410452600138401227417696145593909222404229195991571444402365282975201757430547618462985664954810450185557033758230630579626796989965272139308297872170677349916638560280985730414187440609556636547078620559846440607102100952353610803577431816281450362610750079525934945442402094233819724302846410122559970154273292023414944161816632332377540890066190010684384952821209339856239597895416374668177280533558776374256507748683539500353790054786057715461327129523494307554602779773764835535907621277647507556574731636739020944254336504212396525554130348678918657074629775387785709382955998881686117854213417720119054736300526039675040069316109467449428759515542016856489503013411355861236746597676334913809717098638417835096474949814870156755604253322256809402138416432968320780958796220554734686531806750115555397869635310880385058880009274934249030491184260235567793814717634708618755631947529834519831364966678447338770395549383961256451854734106298405419654453969180421040343878650436190412325150760691276009325436827522004769221042506710090464932487211584231743135316108199821895780213591835881382265520347865814247947864687822518758901814018139982181838044235486387918692534288791699680394844401615960999570546456571175382267318275018634736186990443972874203987991280729686504506542129956131328774451756144478065728147612342880711352067516831247139246999519189790729817220867077639629824849320331500655895268838401792066630032478107938454660426252103822820554304358480202782860836861224562518042146896411085790079625051280199512040668546647184856384773749106499170686409866255433489336377075688143720782527599676740190979287042289826791760530940164521575735690053744570084396528372073662342109509923573066135268372673549927328085073247867469563541214913178016061418874765912490030130151734362736687680861121754917942013294150921286789908325212105567123146935101426899893720828327390851429571401258961834391356764599254998869868239660591162618409673760718326229516091517738625788637382188545152964688332635549312029008850743494426924033818661984878985291238822654013484534549048166972484746693489785086543827774638718493031039307719951697450584662634628813174693425988610095161954214518343290305564158737130220773323069953580270594062070667479270488377611407702197500806663450486897708183894675871521018947288025750765829348736921926795957861800102926871388120652196471187564113610824023388556121631327192965127616606053165040841658845152808457722952624202045592324689886559073962040884999108976224365032352207144808056738987214155706766770836642470128013744506887172706036211673819937255212048501130048559263003158275297058125677029576597367640028533363927181949272060756292234580475354540051332222712962886332198727655681042376569035988006849269599330500855912545984609262074698808063916009921312617621117081653218997597702489244919972284794331389386330831702670243840024041138603223624696533507113220620684741793679833599943783361549187136856328555707770515113572499478798744221023523882061014336337505378748069001799944253357384947099062621040889995483816528570815912897219496953631789168367347193381155956024456572863613453282109565390709389647225017306019496495319785787172897727706631114525716001457957278807546266163405478019193395472302426193122235607663189925873010491835280146752019356963379702811519563222983966787970236000623991511475763442527634497030108653209641168345583709933523303054001861183854224796592389426026988688930778922511535294155018084697649556593631020492787552531958268562235444081825521020958555496703846063472806865318020004399028301323507572286485315641551338992641462979488394663277585660159067127525303762410715271742396056646155588194991003480772414245050984033192404791759076397598744140167226790547982001068240500451391640737641946769319132601905361687535855094053180293053926468380155157242024487883382571176308107697108447240538940556349297083978694488732760825810451389756067426147558303294896405170474320864757298286402470353674732227432423703771196259508263213065584340675814331640989526225453077419986628778287658480674976526028380793055979402204880827186745747371690713741265469196979609120121307969751703598815624989991589890185693979666621563361053230821919259939873559458594206173156222835319362986886364463769440952153915011782382600093066413619473096515242590998803516273327507063512648324436857971248570848952041040391589164126861107213078331546270636748156943689070063464272622905185580388576507352785827780142251795001583921117107733406066458910312902638773988130366012840783996171048718354738394265352918490230006643407748580452189231859295144535264646530684448993614277618121014133239501535606778449011554033707113316759912228290434130817638856480169716989294087618865541113555572518134530967272499331043513533608801284062942996608274601713976142566782582552720386411980415342308004689101681499530222788305810004796475890084783718270949703070126392413076480549984032596778392084754662440507954925564938580670868949377672027399558150850431382175744068255241847222657880460529265218044544314038071501746999529962278987974152766811012771509108457568759262294273111620110953643570898867806369134346787698839846886220143108114038737681724495595600727262208683085913487001415185849643042449895015378380690321414523308986282913497620068140097193341925125863639215325282072764065566381705876813138894336046837944035968020938258133773474828735751267721619761080151103999087145259352318579958556331869559082390963005306319110665252046811095055739982037077046294432257925749427211206304301797507745287291942212256991473315447600857787118577443942745414562939108138214236361837110155274929859015277903803966914255514672821244879184477280058557426113645465506279137344243107004541817914616135506921253138224683319282869350715299327100568046295696191666320909588882535145711696027927550903785785386318145015108204179209396944906544443486178276785039738661814441452808012261139880472855428784647205041467676247737302133592367700510693622487904541660007481871910420902565178564000765860945221089354105367206057567815370664527673038841806565690218686956861807363951250329876921455232665337352605573503701441775854267306992294955477998854281500743485869145049708150344973273654415729028680919455097412386043734703138769639648069644038213987848957660875532364377937291715844557548880875254052091413940525557219849918722589917714572171013364524872257922731754952028754684915095960476932076791117111066863595781077648871336011564570448384517603470764257015941373156105958772345215302983562252836810213336663674030252996135185272605158468078056864272924550452050530296595533682433343372161400900073827075586259154825867061033470964041805387094878838751375867682179289298463355907282007850032274104886048029269834773554147321921432025044380941485738754026093064525380281820276299400883634685850932890272616823100390226886158309005232895925038516643477827469808547737617626646697271404275022502390483487403132883983158713364814129920120122362842793049874030675597714603930476148556325304935847230041326932179674381776815435736992391140451404154473906417035441433974806447863055042021361525477932307681642306970806545655799136786363468752382279525861183440647715680307239748197007623858196139324420754159840338495885778633360424352163939281805350547491172929800913453887908099484178031951539111660056380715305359772201548041663139887415489667697233812702352800733686595069439525550477385129094401302203029424663798995882507020406810821665064027242809148823268082696943593258706495798402659022400602426745485082776910854399506392060297828631153033575927746622794711511859511870612568200173642015826712172872396807573475859851331831075307738888190035218918031558561672841407343924427463777419496975591152551631403071996035378994169418225601529892833476079109018377610443829203802169416705697535499713226665554624149744506426674966656100907800399392007657422354892225170489975279686984350623375942260289711227516345279543869892954436849116012155215449107505393797424535647901151248204081028651019025018303439955632493127900551745774671306948718745485670815599770575916565516853214547892120548063363888524897312997172057949232005090116767274841921290669077330416991774846462605973408715160703556997826929585341355563313255462584993573291853561494278012740056687250727733823368178934886868317821544897160220687903084159931047469749191704380946534275398520160730315591181786296778478669605177736670677893991840287338292768430178390546428858222305087179690036565648434479116853947635500968883322754055702505301502888872614869162714078204169233184015281599203192937092240651604499387712920106086605479389665273378906355097797263692133960162640377940340889748307947580120828723133098754089309975119525633566630072187420032644173960631008482876173664025230063776376787570901967592625272283604287589978129569861095025038245447816797912343439900956705986195764821384072348855926502687961446455880685677287225789771106641054684302557847663179970685368374703030299333696225418993863870393158421539811936018866040742007449799675920813017470179694542048999422657553218511558598794613346962460537523024714997158935636178408199192846216795659643889975960272522887752362569840717441992109342319603459583745668599726891547156779585891815425479404762015577438358061162735613827753053544461125689525353607923029854442974045264658214641011656868995722535895185860969347929973474316514389644757112137355675104914798644117581850766794850466623444101773898168461701246674809131702586579809370908950654223347288238080073267612528928293391926704961327924817729918958693630538343615742182046314138347984976279549231995817892046525835141031694565018267487788389704613578067226740296660426874421413304673672949876179606557974950581290393007941716352686187135165782810868973718129221067792063478326409803427836070447699839044945526235572322485043505318488997927889119803553609112708500213341903536537515774275043671648332075774844515249409065153541718251067470173907162801117147338605183821134554873124417917826520880594421301732919362158898090885069696537511165855466842861259210320585020438864754288704018904477644814430785191415517856978364984547651750301893152974428160198910840168661471022747716306957891536416661790273177507769555910967557640790948573867762135282004307664661022190671786392736134080034383879600425022279952243346695993610584252163951096749051875984247190045704584720560556198182928716106216969495192697379905866832741216687827351597053910824072983165249867548437411638013171920840281835227971136975329265381120599573972302674262504787506726114879966554732542796340239056746293980431039529998838505384402958426329226187343526227489952556753236308310236730068591978373748751076941603120822438413353267393917509007792449125214686681018130250310505975266975040915112148222178323531894094016597068278011819155706304656361119178833618242213742611640257634484108931255915430623758467020247365826128300390108545282735872617257560419830214542404763443147492032640281836253739332554638226046810825174853052556889014012597270247836990978343700220817712227513872581278055182410665761296287145000876304978581125149600674313140706140373798511256207835072478860775991254507925213403189512050663669061519923889741302018210376138749264841192783806291787925566869728779795182940867753378002518502461242451026370679712229684889001711675174640004607788359981884913604205575685423214819743353371674648344549179792962864821637939282369354632888850454618890884257787885246897857110329509433541303074743636020439201666019110784686628319126505136220776745114417659878302998883035157398939063360856269852701662030524565118904804374736927905960753384527827244455223485421312782406940843337504164527929894783579182917875871167391790234037471917976654924775024433705146774104987439322288852868998549430976196759391297348258307785037186561676414311486679861587100287691562510539751532218853594534293533101117516933233813278505422398848772863582347176950009421057677454752198844356358032336590981625402861289044603897008991510311514392500733501008516068047968143409149862978259748051641468192551412133606382526411003776183247531537586901771270125457628245017916075652619618890406288038666565003780036372066189681174006111189505685641434649666401927478506645674786626975546941211086881246917480663226916435777334684602173777587004130460327117166074293725278397566801200986459632738356101028267016166574822623210488404150859297090259331402863483803998466799346924646570756427475360326401120158068938619295296751912226122867224274988296817953783597699090159974089003348043432813606846656687609476227392944535931611581493628626311619789388118710885060138070106625186427440571798146158296504932568887784520426770604326564538612193402905858455521919963421099649086381695982854949686664557596674249732942267434026436447217277013123707035654795388696348508163462858537556384290231222484370495012770459049190887965911459632948273727952579165758752231478503293724556993752419104529547153363204154805970873235013934973639846211217661490345812291895587669382788089465062748856518662506591680221618313968611379006447648001318738680016817302766985834481157936761701175432542685022477888784685354688344915784903630086384528658516945855737637980059767032902314793253950430389629926746148532370409016821639126173100808872709704970003470449918094485100529920337911422998232973726959932637061247390714130005354461248432855953667927730759626060871375344904730508908549899034569551376758016999700491077047095956504377920808402402952832603952590616514088499479235590579321719786508049118345243316071486370922881064844593192884760195442779169279502058640819999445577559987165029923612249932656724151524208925041403785506587600032096121072486283978798590624948359735509533405464713608893481513356515005084746385044295287245965851283309110682656124522570056443528722706385360003766481420115388243726495250417784589407603258358759388741547095422703799997049701831562383330590578973558404959810921052523646078163430462502953675467142888466080036132495369482970725870722292728005305107868973789967303602879469000752026020500320548291097779989107925989520169002397155713125720072089089043724903361868038128264969088317813198534525579014598640860135442824303079784810687222006846055474250900637612773379940589738328898939743591833369694330668145950146994803056545865825621885350046297342285471913375692943062902607348732365176356357056309502176411309814647416686257048377151526240781595963191669932829004400724521162901372325145685461784623614740336084446820739578188320552418758672196388224673671171386410302596290527110892488347184477036996413346244861174038179947268297388494051243956291795606328932212022874521066651476143954584132338391285316986584033869526218754905760807263089093975700437080885738348203108642880726975030756452059030030803486188244369487196650396378819203405007101637486266400249253707792412137245882025687805476638719681329199592442742699809858894622584411845671432386225438538845343817799797938857290780473843970125706442500034953793354129539657738625274920180586979982764580093247717805623518451505567821124286394049014170492414577469048577463640501676712433463242603804888129855657492900814541073484846785198782731704737320288856738691309224871550961322560147435720256955165157095113762260143729885883060972648940108773567289257277248887849130040486958756712800626468973283074934618519372055270185605375063293460887576269353831136805794759919031691491597387387505595573597033712604688083140729299953455969406044317490719218382268245737550137959038860660234193990333257493960539725593305070163591083975657709390825701255542865964358759730583774535921668456500278296697592461776728088495951006170522945102798029397472805017074081190190778591345114108964945287347579484983531460655164714281797283119114056961443291845471577483856311216030880440146250838747734279932787279462495015022312648341302534215411221407377429020744542820431416660869228301113305513963774380039566072182211103486825724727252762219599910076488332363533159901499130923239887978729535234779321407361558836192017401795997297509180950387497207959135566983766853473401407307325458490373745541939519933659313156207917540527306017935262707745406557146661697950305626378478581037714634953438309586164576668881804456828605046442320663881291866237312383936126098727469910817198502325095291899267692075010946532864866070218351735498504005815981105908518380216797241454362869118815378375282202008605332251836230944949619831730236594761790897063136267479139367863197772145980871688109562522792119362277579668133074678426890264540042824376210941044687372302909011573666421525488359846789335404669972516631951792392581544411706154174114632782479940665604800625574450284742309826038564527543597760737413961286392401173546342676018810710933981333669897808243692479879892921219895901043473327863753661335882043399746098603061150396967497207848767224284972324945847131664107488250662163283405843112358861861611199473033101073866463582415744517826601140836389058461514148905116638673131303629006569330331040597031971537338468398788991469316452395187854879987276410185721401188670078085255397817182590978955061932088246220821703552521748907585778079020770876958991378147386589567389438721105543192966601161620555072608426635977371252793521565736750622063663871566621702033708583823842385057220488853247459640736500862625013750442805166229045011780117418784459704658583948017266697255424133448866703305854036510188622480478110817095788143057764107546020197315224456517716135717108908114532238735023356064156094762746386334996104089711387727207541964838660358826679172232862211948793229749753251261931156319535717832763121117725532000581848073452465838881468500335793789178382751846617242762283207601527431994447479697182530464345452136067898065094072320490785015931444207347971948376550135004756148796859663692890278805094419387447499304741343987248714214140426312944946001539067141874406371869424889162600817780717923783645282676172329900275484591508187739493491359485531138986347212317841586296941780001648546216040663084344356803924272891364632931330156937117540559625772027257809111674328817262547039627404822917988632890255888494463817783498805254460236715364085744078184694619068710047318791116978451308967209585630253011863480949921463287357712949910284667107335540622616392268115454252714532637455285261482078873805478178587325780621073165890370765614805745847098424312281824177974156928781491451122855049210335085157987759757776734937210190667730439328204601377384879234715793626293929608032559885004361939241866776235980598977860875053974024732911822967398893805650428038936731820004729291870233603998469685611372767587829833669674235932155995999360211856923727075749969937616219159059670182449494289642763984545506515892544510981252874937901587021291841417728663267696679556896327494469799194198687816349243746530485964447171685652411114617108596836006937369621185831676173906204906349344921611718444533361762199699247803408147189695071814074553214578179697430409108830682888306548893936992171382587702711574663446297309705468067669887773417410552475171080032379415044251690208382888341837241752892350520982672054182970324013107953312491881373585179471646418125379714302152091898001269729290901370177156218975457161038324067102961482813443997018441560643349380736819981944930325390094256194107941108203227735618936165747920205182319019920901147320669510834292391404254050658144673932669535191054668677703423634713432432646315763490422596300083101878624070050112036704635591400369168804909030023979723904185871644055779454602600974349028750651479634692055207752648475645092507664609034459651758093290419569048162431373380076674216154852900724295095788930382208365365211058488682176888299868953068544138332373507536978238159884077258768671352716470120605550822363693123237497328544721120677573949628687131941498021721773917407239798014404598825619555563811928994103845024711300484896207278958565045746739366988703109161305875673352041899911143621419027086620574524286884390452028827292622887911371759273984933529622350178768836432136591299740955733440271877014681094592600990788174905215974698479833215040751225963188523159669687522324242863352984277525960217000740995866911014969149299569727558370224623783075085585026456105923236648880898378172184744533581675081940787546250454677156180736440824925403885609906420130017558021530026703061728462696607673985917386616937182120425539453097303235676926586232966739118628031917263521912500407529598012458606336815192384907775355265914284131051973143040491117944439384526329089914944932122325082363188959128595214985192762071094131713130638586591617889124752650400984778247861988689618988805130303082324422938802155315394140403898208291822098598626350593920087313337441376830648364263216642928049145312020066680574991624185018087445301390674482842283914867913532378634829441490239422735236750285541621631245492159092913490665852762409514535429876071293460498379593779854190079938951883676010338821496746741141205428442021397780872671326528725727106613316236358942230757469761421571160542961271086935372122787322486581981449046824978244513158737696650236449702142860756048897425785333124710419483366953362288993285029529539495010647375031593457513820990092671653337562335909147735091993425538283230442916934501130765110973728258833971304035425638069401956600669202362291330190319060921648279973222830358060468861833130732280354100810719296783124580484080357556872311127892957021411210498038469278070837707637978251773307276924628503858946793404698214774231491669895628628807156338960831121061361520741985181868711667997703672425874317531831920201889287772044838495320611444856374278858001316873403650684433576090337054111709366596310331313363352950097578197402057700461526355437670378700069894072200678585979328792553046517014340081948715083616533596574559453703760444264183876249546154286046594458366396198584308371899232625113559629023013969125389931070440040841688138433186134980337749858853613137291788418550585980172147985410458710738344509379584694670343781196419659607444167351218917835595560787120597705208892164988283505406225002929367005374732419000475702749201404469329568403269487193805169911766135646788683850110172756891892343623374589437500754512602052222652200708046705101093848654062261251705984870884553194760207867459786001462253076176268160094492095499740865214060944385809578333786267552913425687664402217864219225175007452413755398049341216718574697534859135768810615935797569483394217358921561135698041567179284935071334487358675821279278264533972528297792473185846264456516701282461504281822984129251911342680997645186401424683087097877602586735115938312866313694688108414976805096882454568959532904124270090702835946144804379447263377339813821618583425356572672385149535142438503552304438820874047446073016584818369053040617273964824860089871394210064127635997718038679630695662031453648517167795728853751551107268853549314343244581811319767984929279598938063566781183180590113818255379228971229118956214226897144800392949380181522414886649047335661779448932215684975006149193593481987975356509694426672721349060018759087861995825394424033114862331498791463162994332339660979624056253642734626683333290086090416984786733825578204477714160708579990954892399396838123389688901097229759567054142728505674097408719207019303751044730624119620077412703400925887192803910761499913088226631207808834627407580696026917925715622565913846859344267040112861612863403275235039674763103181927740949871553903602690439373438016416373766471353785349933121969115835800649345150908980293470787172127695261231841304015330751884935591917739294567368530245141389643535967118590291668610805900223590832785329347473263893212339207943011391288843785109639074153926387042018903869055592044893179366038018178596983591281776713954150804565021635545519489648066332307898081403700612393415967687449542713659370296193675237781330092577789368955614511358674339160513774957582433586812286455450960267774166147672735249435922099976195795513085672292013465705649744361777210016658147279095697898111951911246444935711817923951679127633279823843158116074189368222433174515514643744427225263262067222885795629608050330200190042627709955983806774436975478964645008125648752338468919734365009560777331244501369209897044563171807913603490911916105492022829061016327808927875845744829579585068792067087255360352556430624628403354291397393425884068469421372163643770899167090570604388762415872870169781495182365578127008717072352972366920849375664438908958647880570982827369397051033246066975491842271226071498336995685678769102286692886668428240725179402419888070638083885700640834817232300707681978277053325045841331883040355240014293954281561876152024096728097993980171410205505890497490778235335497632141426284590414733006583749138173038828355258387271838726869331988560429039805938582203407163529968578460691703059391404065329011829711182872692662652330186633940463822240717825395953197949740418577214265291870506452855193847465028996684587304886944130940440273013551296947491981079660011177567445025511011344890104788585921232960166848827076820497241716376874351471703910521095799752769412001997211926695721598829106353659026110580437761007444709315661672107144972813420484891467904918814618201778036228279226430656314635581335702863497590056068072365573280516351262675487970454230338006688688803440258877244413195722300584883718338566936347333427325784877631225007606032477369654071820530760798239571744378264718007184772696794109264229212343410179712481310056752470371907028410920164252869261506052334319740844188976906281399043617786906348992227427544222723919744604225642983290800909050857987542089615322286136018067627740501181948819935635660156439600644481336387277533443799761801549737811731898139828997869550738496899788205702916106423981758277009595658536297334909106552820056492306091228617046660482385413845737424886822510548109164236360386174286139973353684871212242292063162222376346923593191517280693138300412559489836076950050981964144944320674078715809362377130976272880139695199955898630155503314020337409443877920147717191036253067335650002472865985141989403180377462594049722501712684822705283017186475529304516952601330634472417847915611942837961768459101358428515348485296769145894952174533636694439014958254126849259714712811896094628690838651559975967311023735493365727360186524711910927770932793899867596854815513011956579120830661756765452929720690782317032024879689181520071032281220740396528865804866150415746015314767249838724817852244526109008205792611311158708586922990440831875394715204564310663836179260159420927806517092479272880644742709740173864253209335923173257160775960081508821214054246028391695799736125103437994693050791752735555588498100631488518640792965202790866073181256419245541599884158867180352667708597223116532810380155621362290325643557870044539544046435324607381495670203538542422052581405861217680545020907817349802031920060753205755339614490761491460339933194868491776326219397683124757185575187695396577617144959610726223518118874588752604182996240845995354888894459526525101677516872634173076719306117499870865925094724210979097381497559537166569349086598976978730027409095101115390596274268945597371056273080697707054133799900987927266466390968965548930993470238434360120127343865107991630854984094426072733182868860915172581318364571255139340932467646743384033938395183522206825406379058826058022218435824292042897292783165803986149956873543249215475565554531849541801759399164027813149597545294345475810562233122170218405344042047859645885336989388492996791196618687450515339440417841578323924230220433536773601153771721688382100704035616459364103640505827803967845596670519426862058897851521103480208268432487858172758512732043741481064444348022506116107231701431558364104783773072102365518277995166691627943615720993771677951142475611291083818579086017821490255188569404469515082611991948216181606863724524502248980675792002643466137234910086204926994888900756215727207785239361229568194281491150004624065428846879899417655305485244493410744761229401184727459045291037984009060434766140044273853047366823071515839273609402877842481669992772280847730697670735925406231018081095221441824958265009651017833537480746731583442393466932099264612823454296956508872113846429976865699669429898272846503469662369176562990757968847916250555249966174718268902090505273267063189662135399121895687056833712248042031606911767163268867083754911162107061510927188135681520636972663587172948888041371755834191887183743268163877740158148949614805819969956162993938867814464857271236075590226516614966297458055981252335471581976597049425504251752983907837150458280534501961616391403649865498792774051407908951955381798247013146904191927176752795851801874513572537752659878654110573172458370004286127404128201838258073880188472500841390992993108739955807927373325172624926697237316499029439771637116834257344733180070094238614178115090360295336974474438186034288835313257078773089858573438612268458266316709705983698428827124878256732591072924378891546981674497213419076033642943758301434447692706297630670227293762184000484072046086827039121079942839628973067331179593120878054067677943229672511355083316610442286216468653699888558598032192310413884766071659090323964868458999788880274695654296736946354472404602613281858476531698177841527311828307593928484035666479513796551294215936623428212483536904293411240068460610665954461451426670066051044577337838952677322124421538194175210462226583537604545781995270763047370986682332662097017817993498596791546881897473460924727527065288727544830954108934580055819742361623178258217943679334931738973258110699638937183960162203060212406553813600405573199009484474328071410928020921330029486119843966414693480025555093168434638032230970695780912046620033236971932122723264213088100196942448020035012375428418600346765213170952071153156151694766076566367474972379590216392125995061879555273139813364648854606979095372978090447527884650494482146374383806172889012324713810672021911080238658632922433219915831422121623476818358131214640547079703403508085266027777058729276149512952215880357782608464071953489166226212897488463703792833143114030089147843208047945794539486988490075456480519113270016327615128893304423924127752962749452800334105795655774164098338618068921406166655102149097228770723720953624556258369267109660009440254684728316495853334995706853871917532018411554640531950352806516926555241167518900836748434979400806320557523254768285127020332609891238888447308509488302979595405742787396134856223534686511872235811758181512077505566981572442838403355037323321996193723913386751530532835044475145928782249644030258267359901182988741990677874724236492794034608319785474318364384703255143195326265497882149271506259478793825001821777987007620427347949601439056860266596083915090616118342182302136570972645933172349860794878516453819163070439768808290708958750871782477329272364141427409340433006276095668141922546223139559319320902567574436349569047035262296561665847331080663506002389609137778004928102689533863715095381977101907809452995637966337640743353583919413670459611805766388980796943544316188017599893105211846545626756205159730484675921765658754602377374133854522579968460933254320510076082076531667021014540444644608565605755683674670326738682613961212124306798564333004684039220239120153814297096934698545808884625310116508068987129168034440101210857495391961876930463058046228231585586429041472929879084321935388941768108635895293582003277257999627591372834727994234257191058657312470099241547153211943614542119090236803241016035454548828185696896072355541626764041000351895761204021859409324390407218951516259267819414881168433266245243075299188382620903604898747223304010632060270287809167239679074502236396483606511691882969615707158510000704448528599595984005171958354728848418492661283874625337088113542117598094245629058386383930619789716750408381719679780352680224805677530584199942589733698137436886894344390837332365687389706291907214504771561880753847181463088931709246027361372203533834486153631845434600692001460464746000519343864669001329082893415977943083638524608434869649012941136352031188082694061700415772372849785673991057804205684391120465814262391252060525290643491542707384478112130005022655761285292366905692089236219543306805230954779066103273568457014524007526423961076525870566730836884809520976894251856599598384133184699648277038917679700484937578457348088782297734623133596733514863541979614548511805989868515774019330684410201057463842349772227639687809750690447099991184813096122931171694701656901306833623755642385812127085450166539974203461608502943908059433073756496308917254148805970253895139995148028879153058277533897377601741845566146363138908962302713128254857068894678782278590796553100060446218122340493790514450759634290770390857565565375383251897251191978512469407875478692048865195561143941219552033819555453940837063206472681473400549280980402035431204255581260208799970984779278486992301712962911739237538578524058478118868539302036049754892257380007261731750441577241646150613567678965642477714256488214257895068640087913612739170532885218262093611372432609483231366444080432345912808724261852866332259802031177810361783900832205086265043550768187919028568290401231636829301551104413101216926239118907058918975246569791841151995382457433246842033960269511393520138092370636288856895707080041116975403328773206662816725080167836009312126084032411514271179963013188610599121717370562491745104051875997203406706623466525581530044439488986285376902752055240128196334817971801121993235314186619527524643764277063742797382276939289721241802528507433560650635208972769105338269000918320470901263578409969778960039565014221683637593378188547786099816713407095026114996541767609090960310983355545226916800817354364451053083159494896542421360436629525485565589009754634630347317343501830418012841272454482218688915019300694498904276693243859861445562416806171503575344683930159384238278304126159690966978298632732686090663996450592704603943390339687236532148231486857417369494140384715639378338465896914542412696793795265630014127701992065879753349050127286351568213428969994751933555041857185319887410142615174817618149965499765572277944253643139703428636389583636400827899096805295914779684114160639573980241943509939656513949720985836274570704842822110256698305767051458266450062722344420411861484739120136547266795561223111341656283004147657336349361467270806940615115509773242364678962302505550960774297275595856389290676471012392435819281132861230474896149795968040323605816166008706721052599383561375920810962976198770778154715333831802225327060756297711816617941294572809950532584881387405796897959537951292228726719882030645566586342291225678736141837092518919368536954172720941876593889452828478383432225937510846225875737716037637734975650127218076103582155978457729305082305786813048253934835572284881240382394048868871305557854833187401246196049622577683702320170423239179899285359898228478624939701808478695379732846694424956359607075872690761530201404429143049859195003978294896263793349588939877566154088678637559947411029465313791579603306326428818820680022557835426538072385771322132355213285564974387361456221073710672320685044858630480274555718145026614058498338932412176273916508341311952031217888987026287796778165546654965541834841418985131497862479336372418596860764492047423139255222611645624674975517359105277141889497457938588352997866753058469925063013197023657100890491398302037587465334614527962528977441905200633969747943150473664400361586868032596991548162897301668456468762033960265048231795170624287747002490737886831439935152064812788702125347286685191330347314829393429015426033737014507604775446025524623041606452826520861864132619327318148144427711287793667817114076619637218946239061053624219954352888454553207315416172543920954126529255658298108737625516453781198556999497685175071553574549808268672568818814306446670154182847104341978170392349857199734279818379006445006950765661647406472207916049222301435694365294013807416530377615182743420268951495504019704799200688162173494242790252328692915926069759956568447714631823802918532844749751762757945315100447754648462770545669548247332001956929757375308321101644978612258491571655404968738266229977846485424956160058186528250928597139224896232070078970561384891398401368804060663685770791681598907883186046961326149479258400455599991594975081397977535790766934380525639802426375252305873728708716966091968473350764306877680354333532656516567825965663233236673390013893639543762356247054066078121474416456238029833957871989253857007644025171471549787416321991690939353991703817352026016944406171496470590542141075667426812515030799911133263640355228348765340434524515089750882945005331066070655817655578228406176587684155599843719355709153374468053212912757453841242502906745410988528824344115338234912876390830443304643238647352656857143460675147884097644807808070222500134801426611773725373246428832560631953612081248696732686714639632772006525605604741093127679352945536068007425124980622001927293317989892233704590460282266061940376551520830716826203420871729133942572518003666056695957497871356545471093496032321677717453688739941647965222932641936347947914556226468102696652568751835384575910233697850177192720933590930500176458792770620165746604733309797779452760100148622564046966146605111191080455245474862201943227987569604662694778940868974283047360532597682352555333283074558558627720740038848596886088820959277880858624804242031797537026080307876246585902464152341825350134572611402401969394142804200353382632600785780036916036551468769018035648111481667743330866409487733084069316210416513355324662882723528103797548968901567873151003111467938250376550449132324314268581284167025240076767325731867879040071218544891557140352853710580608925293967955006303890921807990045226587692621000760637376104762373529431998518936570815064942309205779903019440038287216955735868489873102226526969049705352160677224603038024545331901254886722370649063813056589778038777491420570505569195450434862225105275704563865259013534194786185954873113016789581573952768038522623247251399099818069910886756743845463302855665461815349100529116607117067999907716466891421723083348415564781902238555987285966253393986751681826731481631113500969599285523833874999153361390593614829882748111355084206064209943717317421611446052774088352241815362773810449687722408810954301381434105862040657403144386348819273256105367537400287050430294496353348772744734630461719650002239873909191501406461426796404145661682308524427209881783949317380882318971831181506120985961606262210286180549158913802103359310120535808942657014074507398694215647854521963285005561066498959742552101687589572891531038648083301919427098433932364413255869803315956726328659916282416436504692083691103811754762128116567358492252327957190305004944527631355972093534763490342096248793673721251219942626774960598436687520069542840278712974212804483583505960386135504018287971199717343060568463539146077408377053318687026438705290456529652280896371225922821453257986087930307558076800822841096148204586904359374464733927722630225510022786778812577652173083017642758308848454775168108564923220593773048123199364252153616403914158155820863739082097316438210291427743324778364760740499303770583977671097508857063923264124680701050215755831992953920291236794639661845196936747561053193237721495837464029452621081129752625491642882512315116881384654136966229210024286476138965520897320540104921395664888497608927947383370632101158047399640513054337669585606910346978115778319529533252970604720289723105636055178980600002995651676537897686869791074520388597146175895211463441210795888304636815435704665837625931436497056190673877050660232919222648049653206272992326739045280892979927285923772724406113907011199116105347212171567118120627850859183577994997586384431811812973637307256233623609156875225140961501718492149373274168565338977615613250837997884907605999578658987735212721935931413047913933093300833397876496919616692031860774790832291825952479641893187525254997106797075244347730205328606405136308467793631414222080595223641740899073139101463221671182011459693180949256360489199680196744891726200129321942517767795636119712225187110550382432331545597471202624324560895651507136839667957731920296767939643167283716586271110685320119972604503030509362240680722574392814069895771830053640706248306843343541016811079275947940797654116637161384741327758077354262845622050773559926830252124534816652138980712356751180525648932678602198757390204613503734181301665085914817078839800444617717278216263352234557854765906560521578106168666142357855313917485784236424765759696041118032081132851830465794832955148326612144463463329396800004256000805699603909232056144804468176769056600483181196090606600386207927629636544392830642312259882436031237635778263434619753304028814689530356787683007970106190853292730443347621041113977381449910897036087522934712003659537446530914222136558428837640084191299192622744178521396676470362535907531736748842120766650786853189585944191566076238139486290694208335620507103785927041860301590048938434404147755673782499560232794874673849367036946706972722033733865863132193853625994714992869754769203401041887578975037936197651175215775367749513105509691053286319540906737901686020685563509362171530389133446722479291256777010759677266947603670081273701658515925530248023775063421947928215303216363975605152570350901094339748726249393815828552983356168689821052763774198081899671818192282866088014519361811824756141656542507385451064356004426773214531292967578459459336332960255031911807553921570663700687839146997435431316986098620583077802054304767289003736411633706979941970130533379195544080110714700565461762486266274496262287623992279051940222963120425783452951208409983959998078755885403116400734084549623204882548395167908628931830715685282405054252044050693070797151148902377133254188635263125377920005430884542440795278714246003561309756881653964308679874547734644931105503829751656671467123987528150579938960197599752701841022469455924422576168696527005288953437639556035346499933747479472353250153239797019202685734579644846941250334918816641507263335565788450634918081600141922762345076451883655186981219433152634709899993156713455249205245301989072266818629004492017172673224416747502526370701554017356733211279402846628064602315873532526418271946527521260251222144063953153010488878726822740347155188339655648403937004387706781570613048748599224990284261262664586757603969246542964109252364819466708632779474873566246549347158682111709356914726045875558420277427904316626003073614073093455116721061578287684215285512064031920584322188473528409898771341449006613058328527582133754294735575943303160815323296100128188988628381810852251592427687089711606035902402311947227632045447649504449948143068041289943131924048275136817539099571055455019434896964937577436841888389017646263646930327757753905161124255668961254383609695456645472406339709310201064720117375625022769836814323572176045093402308275077069451365687010330405085401559762166374205243392791823465844422703028096187302879001288542147646383148738803842404761094832695616726374927324443931369425827412547804859686648325410541572275851215392149645173389081899041289952847234527443064961893405346927490558107044886831032948294758486710062746521277703871016871177420149706330462197969815235782500150694919901035971271529095793951365684106555067803121798021005451671876784554817499357731287177664014424633249314403947799884436158654021338047134311140732019925464376434786210885860050430383048528820983490265769418866312377293513794971750551206842055517949008227946037454106777715516772936695744974135099243787576089404425846958638019923478301293046371108289888804538289016747816559248484051352268593580186475131849970640888553056793626257309700392414824908308979652523060899099773395303928015033844424527194177924734174997667543889201511959286838360192930452581887627607105806900232031235776321903312138245820097352634040831252035387927947270007199693174396500079730228894746321186170488108306495161796348989255510150918485299819695965695567540318491249903467224793870789055180183208967471924898903138018857528961866633357594216486166767529894730481574970492161982757875453994282189687933080835609332503168017649495187720425362287159492914882698879082965943808843813102972957185754850693319613013729819574175273545169078925292389654450547760681345892991056624987875403058353202630594673732199198475682431484532266072807413500969746725353830495961457714955333280316015148258795836872171533740247883527329407378921987718312684544704294823551716316915163627382843032504342105425964397140079980904538990045728664990760451490679501605075321723882912094242084439126238513733219377099800813004280285237439003955483488279173971670698360565379354907649299224050353725474466059895231591305861506354844314412555560558700308939295804199589190951650527462734649580507510554715224962094892503099357160221509915750775468570521700120980779002401914754914040140715984896630215598223452216478112141533008916850922525550983066884146530193648006417135898098466199759536258087489555434606832189382078238601184535022455898290528126601213350440926747604194408133441222032727499769887852148540282559548288125964789737861005800319938565554428589118317077851027410041352101323221968249286794904296029034898962992467986952256612044455017387539670425282915892150601268985159890759677005335389440564238601272047822678806214937333266435152291525144435804937235862271386940891815431524982226497603709240111145722951828255022080601150585294341647523290601488199434457503722370457717436988477325487865913723465251337128553365780647633816341113603062656352415044484251528924484578444309049499326368638081285246112006582277128017195228121508355119255553875065999077721661623858124324091224065147341350469324044192060415607677412338876285930949175401594284624054397622574550244936983407705772650165056343421205952274194498454686615277534828145524482569852173138984059805635742263391760062349005867807964818395903067733348996295836638391978776354587958821804358634403867858299282316146191115114571040409432260690980816614127260918541783062952405156518265014727060355162583231167990723448287399994213997395287524086705486740185882593632094268540624714810592581711345081424547327433760925292344033283532321982685969441730253825717381217462319820071006752294466448937525565749724730342698562203667210579429643132131978203854763337830090814712621396878274144261741840392177370442468133775500224651797745539971576125573416978173718179423673993382489316683664916176182619051747668542624871596384073141243060064657021384437790185839782683525606444447881953613506886149731993639683532067396735175596301616300052673923068985278223538184850067916004351704623986657366164035706760218764725222069871590218105174227330132273638838698035388075694214448627208930856074066474084765320589595356055562452253480045659388211942879662234556252404246328645253788919124455315446168344090519234336492413594837459863484567370417221380757173987500786998243817158853842341767636766214615919499355256008783252904370491875454832956393575884062109122886692865229292279251809547883202532666882893245421790893245961801282973262460183883947147571095635833220381779004649514206413524140242016588965059174247384614828304376656388378712976791539021017424518216840812036514669514097033369111533402971381471917960208750809791828183194865880626474060721049737768569394871225849229703859171910498879922180024559242224126863234094401311797014779387909759844060033235028287424622535559421800623472874757205796608133130019490310060938920568088129808299663650256491338941231522777587713457217804715146908922346131725544537066940368762495142913163080848086544525594358818925687599918976662370693295141186230899711723144236166271151851111199315552518537028067789764417862931704315117740084575005810959746005090598397152841648654164162603155942330377363880137768672126463417625662350889878450456840453451580000562284138153183445415157997798957226027343909446942147292670692792336485727457286848583114149494044231024621165285445969193543271673748567726767017160706825822080258186635811774404684356513387953395298436827069014637392790729980492790858064033411299783812099363125518059207521152747892682582066456467534465641160774509908305440516282894093611963328071715397582432686219087518156215535809807064896652425993091482628350898889746204241999522422251815445646503005458860471999587839120669090465834461029125587674932959747064891324565920132580539811214751130510176551680473325929466585072309410895830370274757190578919172700004693603748665775739665311012137277204906313068605341231310167079617798614116242442025196237729021990453110648530063036176340929821818233719501083635545175634678705011921169291175445823723067568162889997095473841327350395770630782849661952179561094911869861653327694617678574276161820224142513882788313771041829153478789801386821253887318183212589093574332433917894045543235844354605518246868276563298961810398159866069561171649871973171750324868523693409234066637424027769998274189949268946359789217076542139987501683022370476121848494745559024203912414983813806294181985944990393177325750467223447041280729218705932098864879618443008927624268202907117754086490789104167104107096218781377108641358196230504751493985917658190379480758175201354439443957483096738385650360286610075317417739396061925248244470694926664508895115054168048675335596623359858749451612369338962256849329676035118894400145810413848350598448716255287612714486990634736542262612354751506793280840056445477028465973715711356391028481879423237149859064284986775255260369023936337351002928483052938494072235425142076460707678739776746418242932867298560676907196887969362330605833241566764996707013902824116981438440708809058115716937105483991566674011508554995711932739472340926547432066518434010233571102445875904551481758959226803923454284817702626435819196190978049686602573394184187853092297365099807864532174137884306639758176056428267073405571171802512961637905187082679409289774937778011110441087628846998362385222906060675799166306528102054324952769087025337907711961067821881208549679464520466746757742838890423246999736949288174879966695227204865628573675272623631595685715981459531992274617928378046302278377891458650640663627432507089489491857766861455289549128348465975212055042025934523192683719857388397443751850714105854168029631373944205945273675258955762607527129023374704914521288359014582321082345964766023624359574286476488793271513565129462535055215492822925038213736239460116822212880519001595873747692418506020238883943489325866700605700697963420128467921374042042565479984276348752799673358001403569052570896900770410969019928407173467849234516771682729573216942983512872865669652247474835825663125764274979889596702077272557215184266884996795143610760331377666376352477500027277445205146456578712554582007427492117228239406440485343821193225777962928065813505600075771217108605314262405890653618107999049782256175425075037191850930550411899559002016232360181105710697808465643906106708524676331502816248067283012336073716952946271965199109983716265371159496421656856135029209894889251547615096381346788086066962723947520750033587455698848143573774987988325852299474812376760907445142304872999337121882346101580624546072408839418390046548151790904415177759427639066042465152812672998628899429874066822808698006302673266042254155405314235621442010814831551046207356284768917985331121312420263211463954869777041046241369637639404901872091779693260969629199930050134652494071893449215563478668572650276658081781543152568882232611514878277602312501813945234257706072426846511378579008416114091124930984531271575543107242493515732301334472736126785420424661499131555440058199774744913553359038654951641461985657268791660064616316313789057930936266753961186250820442083953627802871684902466506059712371370213003387698709699730264964953209151909645211158192350980034946566604100660371357321236100425142369672921024324233902009504203811954034671202776581628639839950828963526420274935184733021709126616381569612247851526525707284482406924045869711842373893029462645692474809195040215221237353314038379290315638690519526379571764262239832493519162323964200617404065732949332537008707020938593152342056919565451382988644372227008164159523401291507787498198572183384305549426574270997154686544617284919560607752513470632150180928821417111124274926203350494398847107492845170847760980022114049484253524650097979548362071761862572169917074645680940482994148712724625638904623914335610822663512714177537439901854482146266839706579573436323743396420828937577895181402441823930949401378977353840767812872839818955356501120125997104375242703412557181986774499018471381387448025682417362659901274872854271563952414502712710800105013910654052082823180316409653015595348576245530779775847561662003531055883290911814768116465089628255039957825383958674022464663196816103679522627588170855291656247801733115716482399675501800187675736160780577381191513360850449083721055987233660052830763176285814609075700730609210359655806489333501464351943561630730453462522379811213863918110523664758816096182119447812345112529593429841038341147916141391645290183338058420003664426569202903427400646067731302873484820547324335108041579518815109016864030770898665468554423667701210941016553419475270797022479785090068579391799739441118344175754610068289050513183645428414533687580654814214877892143540281591948182426086389272206063060124529341525862232019920992500128459588222431626365169297942448162182953632245889791945166657860537086263975635245120160782024674019309777694888565318415162308441855384482488910537923243878941430570324230760323473631717469615836552657260325498532740530497773980223465117327595671856135908620008331494933894614947749372150452147308430557480849452105699934026427708219431852693956230754461895707832257986843045797417626336964392586891687792320679956740988263066023663015758705978588722003414983525130880797932232090836331448663088489017139514436377602294728545082424238626080850702540155631579738527794914623862395905444325332084736995589881304279095985592513494217272225067459432052041593754895080469086301943868036212731013080692733642579620471824959372495636172759318924158021584914459275738334801202068811893413470828733225319115167939008954901130224411766990300961228017599751454921448299813283413539889232718395551793714273434622269462400260387043065583819114263010377226818133608677022500877374552451344118078836249475194342752435759753598436132307432220705606056584588422503821558650203319980478434483579543341920628647701611767199181874300586980759201146146019807707420933273407841965240214371845311575316094636731955125703098685735237229382064390411659455126661626794353571977932967981271377268670193559493947718962407389467861191328236128177926069342893177777244611488656365784097510932832763786725064759879189030300960619698250022796635190332839699619823059539730784716036005587135445896104750654010972165928446431190067420919403373824269036237358283565964602995598018393988125274394756062719139725374309912141896206731353371383802622298819349268768655758593450546921554679983483706567920375639573603276654986593403501655830945596249518785790725359721876768359053357331358314038052686092230054540548324966434414853668737609419923066864288157915280899913201756940335090599220357949737358652026511977880863786532630768262776081687703660690517823320114996067195933266772904277525760500853438848074885405139961477461819098262030996092440371294321642772964711735286662495871403817266285287372357978012364332827946203291273822962067554570516056680263746304408776969241004572489761233663878982627359127914763849010337512770544721486733150624228128296062479604337737362321372041391781803833040065394554206774750110794770032920657306725498554867163139661421090687499990442923469305469903777954021710838880683276391411009578380588124274282246602592889205084438510613003116127964437109272745914822229616718882336127588818470511891042623704997521881022533493933470611397777767792743486855514919131497845615019832541311607058042349771748945017734165568747012552689176794908351328753645038544584485868497419700688096952349685909311902378109204816810440705285928249922491665445056757189708173454663834147971242587013869628438267578703932545377709167321879050573387316127498373205223025977474377837307843489732895211103734924045909925084574661823255526105575851560039712521146641408217532263986987340591470889657235539559379199958689622832128968904175322365408835893671843770368917835542282097598069434827769949843420876343189080157689912643916476495181799605266691832223987994882295066842940168808195434899878028659383780799630499734223267171318930641968023912791207700938284133371423859212728915728044450275335683781312647302325044559285454123393654359095760949313924566920541465488856846734866813407092068758585917546262552188746680355458299833794405163039389615145974911919805293277929696547528409284420699409399204540126876534661832694610139299726398284954818374892693453614782728158411564463094595845055836528717422060192800146897606481441546878287941847903788834987423219825455782378796657800907172066808146367702453504343230324837425894195524169712768865186414562590996188268703864800790615916644432874471396172863797136211249079888102246590124987282354055416694986276000176203489565735543159802083306804244282439893085548898423002207870455101425136156582857689888203462595753003928152093257006562438739814855765436409966195552520168504571196210401391302640511313381489717799354847341860439631674772604008608566444085273932051360809489854174604980099837542566539966077405257551032537319997303821171948225257932989491226582876250213549483429009049199813855619757847678903632112335021846926441970732926419897223134926878255977725634907738231958652005088719821642559473007738475583184211550180439030385379240497268022253219071206867021799754380357411392122644296159020236655277977778731254417207349678104999068084281538667393430355794363701327077311541717390538358821228818049238184999467583386561840068174911188080541053989678186601106738983308415259956801674904107687031632184865245313388448562434513348149980073551441341446049743320251973515426222280230077743555518490530974755111997715843734486540038722287860994969332539406625254765543103053089653190134146894289688509061556923084469610852251414188301697152479534634917465798498222870160801159154348801385009566491998905443712021919586492467494983983214881218814236188972918627118661742645237191117070519797631782061882178451762214969359520558979274355548314634951193658539037859464103098815901669683404003561102841725125937341310130392647680677403320571900819537466323661414404556705357723235022423741646695776675598637696529246479373483961030204835305044766296283698922635445323316519993099586941392608277741872737731389936402181189207374742935841487568434696698687164532087802040747786140030674517068547695656138837731684455094833280428484624802114279273293460784451871592715904996218218130558958991453485848756188939336402373201529039593730990564683188207685050296595953659186173006963549176543604296840994679417635173215085312170596679149300977977124037391004702836752224360843504538533735105916700099456492249620381234773518537971115562361727651404898831278402732087370839160773594814350959470070070963154033148289192279474300412052261445045858692374303759552066278924245652258345874067054949542987009606060580854655597344750846475147709803051622465622334405664321789098620864060264530326342986088365998497619375190170416638138812655850117830294569868215537927353508393658768367749568497702455270483786971143544167962150448444202655540127206715549898817461907237365581134650242798350697887866700643482666944919882908525288258860741893773722516495378657271065940588506020722341572502611358102995697767859286619942518141492563233391973985590397196775017430968226954771252869691554726148350853055082258391611783672730601704417728326761320713296207268242652104368997674434463016212544853853541534133802961955610288669497059345773415998850801931765808046186603987287630010869954865578984396042092694394324495615793084828645826909800011706857719592795825932435843609762690719072871397517173773330000078154863841395719937367021217455956272230952525250537217207049839800483557540361379715392806214746384920139574051890845094043338816873196731278345422800097069048717755787114313454098420318744768860113151127042705545374802273900059249428204740438365433662335396663369599631310735660405561415815713029490651638305859615641689213533679587836598520133096595554247159368327495002850042905416373744474407536849285660516491490798090884363406493557683110290300806898206869688408462305094796524713337139928752666967295063965981710266613619344917041046192497941707742519094087350057442701466641402562375316936105695430797404206628676257667396588882777688211208752962840478037091044087608239147042771160725827325901190639998189135135306423900878366346190974264416197553712367858158598102427753115947992791521011980065492337871612429457110016167678163395932224267598960102082327223974786493174261412915181218050602139117336313839461801149516590324522595146176569728052952995552462571984194339717021561398294628601667400337837921097550573318308743622990024863645118047851262724166929366982545548106650091230463580326375558128931239422346334089897490381201189186434443531540117624716441362120484267582800854532824329634965402745157347037168209906713067240139245408399587567467390302396690728459694897782729386276313056552210845148026810291278097698590937332023043135129655247197053998171819876688602284146538309008073795452091195272097710177295340563327175875225883894110339479469566747098506557921514042998495004457490638159426163223906075372137180314975750809272972385044239958856339097867595527227591523992006890047560910328341936503360547972070871332729988392258212846981351849563564241037638366854086470544645380572786114696035631193253400925098882411202793691453569441275326431006863145223333097613484879949685421671316440567248702199574620146705334944135032508870982903204135286901954848997549709986046781223795540764256261448299343397535037197672900976808069527648591721697344822027004801403145245204900755950578465594615716601060673906497845148812840213020472722471311205534048294624098316095127861723537315200232868258889965677439498847524326568175442908792141190781589987957474414227386590300649738260914600664387510553278723795602921365535829977955220244339583471648082403784630702991040727458566733195029003070591121172612195352975685900862928550164109012629805546699086778880221646336077868866573924673871469976305043379791936044009882652533177118379650010810595624684333439068215911680606875681168241575854143228322075507780771972280503230284521818284714254204903454102094708294262005327102718643184608441858329693796954792777576223553185402023723309280960279873940130030703870938711772678960853715110914940706301341125598240965251955613035064776010035057276961017653421888693110981220083760352867271501105020601144955023026532507151051270375279117475135425620402496037783319937181286019024313423585228235023628913670830967286947606543673219559831623717139931566955574097767296704534304756051212788270859752859475585436115466588357207090082341365554295537998000188886327117797533692851661446693225566476621406182900665491384450126928672433593889422306642798739262748410056318344136102485561872333757260794597697637436701815405545258561306774391535840534341496461921416559083389554501048753585055465593873601858093595628714612744975127793002233311259043936630742101454935398173417931283572493585041199112475073454558374931562344012669041746641424591434930530220991436636031390953482526541661233495072954390307840764519998413751481044132633127177923961389433396757280952341773929854566813031824964854965750828075069874546678781895828489886471140293913191821948822280052487171598270592847808110920081520970747453779928220486981009138448855084900404539241707450085840536907277670588268218125636620339703495110891589998203399110197181362159530183643448993957174921733483867446274614886045182664490210236876981642225481994491029012450646474426920451797672500742606852419511894829621540104719299659123913222980900193928972650446967988009856791497157113077042991820049410727619269686133432971464194662654031431708091790054113745198007401985611311385287693787796535575191177518731857191747547031126412016392586983009833555782674901365125828841660775083726090174823977481852385241455241855932036356858525581209520173718472812459001126532935073767841021813659194879584111349989317141825087566402286417937668866754411211612931297472930885877946949163695106866971802227474112381944673195348581768124007203722578803974068310852397813013879231911651750372513321176187959932124527668653816080374550383556585013003282212556944253019143659788247528406510704935473734579492542299315424444441858327621399691287304040085422969396682113332773646932708553263335514756310510737328296537531473351690320809670645190895595393318001023888823792148846360534094837411938329256219995338751258719245922761795947197898640261057393303596655436252569369284676954957111825050423873413159323874524774601670251414872088482905480938538869224380562756527987483132447148042110179179978219798155157375865756017595470458685944508033806617102128113363305692034250630569700203424221957574726527397845559817834485284718794021821870973257154085000726841432932872520246992980274429998381899950040722933152790928709064738668666778976196744721478187958137427844214855904655149844411986321609343573092558566792517860798944084109594773754330038327521415122867218913581718338269910648024528211000340752031338042555039780144582833409067117063795060199683354182555515435728464364682480525886223101557838195334584354909281083962963524929780548905152263279326869160418614453405682943108052745133870822221955707697751640970494992313378290255882547825250116267682655325107869185581790720309010482058419641965451031104838369887942607607791185079116183098432571301904904326852117539932620433260884392773501152715403222028874872791379726249385501317352729397197507920113289098960329776537114235972148855899550646605599612034234590320141697259131437400168383264242668628435786460420451599935493665177384140555016580703113383270664342938725413854823860331424089118940035778455153084210580024131150149985764207447054168847768509530039227569570588167411123699942859085711751396137579993008822201299855973381357020520602090656274947944579126279406561995850448539800765965533412408531893360507977786042370771633978887806541110571462207433422965761722245683998082082770738044317359940774283588328202870368224603720435107328477490558724244794244104076360436178554263331042856874425368114783083731580009779578614491354025301309304728294708485264669716673644254401072971752069837534026843517353147524142419868611581992395133924886085142821584729587605923055158119121311152761347463624975229734440104882826892660478654264813844640264887445582036953985231612577500022690102984576431463317809250957702999514205344285922837950363037834013809628975202978123448094677005695074287290934042491818707703027596755070564534095745882373646515717301273160456607348819181421670366058567597474014951170542530686625031841354487797398207648766948198155273933446080982671903998171459486666376873971388873466734925264591146928035266806744238996941844481243181697590205669649439678297759008935605969282138820066828423563775370214603948916191605025433642493351206352904641007104910669369677607302582110458072283850685593740817458572076319713865669133327136640923735016006285175705087204792590425904879428448840037893023172814106575116371827960014353679334123800943349957465479261610644263172708783184538171892828335760178974940383820348742770129987707224875298154225902870253886435400176277910297419506694517320076062095679467744799439104879677192248661087925486562317458180176628294011492682761162102851751951059400676622526216974696364790753224303679391369134057539037904064291230533318450571094504282491801702582900984603653533143328192688997461759435103646893066533414462524741931754130229435972973570933236658650621392418904003146887412214205712871923519567968797812688807636927321402361385672260859304939996991084796365776246612268265521704293979285752686505732875729423961782346717679281973163864599566819589641070012953205251332744231640365009955568365038304271514925320539111338008628891524184934586186839421189661180977217257963299180093238071950215506277656289008045166739301025805856338932050236677702186332990659527158068077721976074477208045260108632593313142084249846434747897340117663277520547923318722852048773390140050981524358074298039029822692754801295450318484218043999966962831913431892532721208252000355229361219109185898249342135507798110881122582469304694932492127093132401464160689527105587910624272110618832606571048037219445795554103284367319130721338227794461697013613052934021418602565722306860797327797477598315123646825305367124900944887997758748645823685999847265284542669766711267218956693682550081820331865047316470608356661803942448347198330810473657344080166781985298131381004514434074028315200901077761482465150738202269193192050602609215821332658415098108192180695431291478655785397662765371490593543629274871847028080163777780809137445397573115017985401607062338037431469917298838757737111615564186032934011818472320088264019822657344225758193009712749683229350585850084272895556836118504579846060342184534746042767366991907194800799066632792165408580145911415428899576386061771573486319880772927582340968979122578564901686150220160813617475024094137585797414140868781711363307335865155834911781904266528017628915332291692001009560060015062558237695131356078402537771751545335250668067309480583538149314129285609265056676882686831464030794483108299605350140933146585732553681319865510201053167428360342454165576124765984127165480221959342872048173728492143986293498058388752222819233934910584609526608740649470132388992069133448785697266732667283228543498908006341058694253089099849806641896644543209259111821046532291487844663034362691887516105782794622456111536918712549647754215198191361059067903481564100414242148770028707353778441533757166889943501545048064453787637256953361847622197116127657175526060600640120317569755048450412257059871860365690589524409714546379692712024711941445208039359980679237936701779868284564792559342082829819564487804353130764983861838991921646627402621493023044875314623872763621291980652577482685030301698206619860921619546198771356638510309742591890046354366524039293259019813559048071765156208381484162217050216954254399208352204291884062536606477709064584528284534661782826010642238528425008099629724770330068940438655192059298965689012524334948795637989917697247584732183269732580293027178092492025120386947458086969552603185232541468681122951428059915928998077546124188057171170212149117139751418249288520212223197786409628087735844109070626697261625720893169655835184968637763104368560597273517905786587179929837752530403317008913875264069218092479540172203598021182215432579628594779585153789498923480922710242655396472110451718062975533674662163856403599460370290489443152898946127448616841433556605168652671269761456130591383777766306210542651168136018043437972543205220986974091357847036396905952319309282389463977450523247721267809759551445970545062342746662756610440276964438840790945792082192956574849799334209008684829012924710860364471857207156212677252545009971695825844483355121534874707994517310482622690520325039850020888585522528765690862234376772044552777484849576565899566297626492241848256393347255957170064796631289034444609629032966228817107390559564245430345191684483881871379596998876248130392206522765699512351784277428217943565280054050937450448398873740392759703502511478484335154567125585407902707546202240263224102237515916300034637346773130244974913121207701753182001824858132648174550709983989449180254060409172230461983708725282347651167008297743268187424602332407492250084437392338078611590770668723610443917154503021465439769842436409039340899899475649676997118386204789325661613448041072356969575967413201088917207262251226444517576111686821508279384612984779776256524770138960244819480184652362130752426209725926955078858891939643564612074431151566859733028823479249118132110938595045337808230002924859584012622466285327758999222425389043948266132176935458440056929591248077405589280628235841113244508978488644074790007068091249653619436952269458652107982978744522240942072218769965572807955751541293986485644230487353676219013729165972639400048977442635965297181315593500337149351652022588801860089483603171017660665420791436229355485706663668972744308505411875480508933490609829548790660147235951408996507362700917128897553248770681282907778209398768992658823076979701696498370669732008669472495366099249366888360375500341697969310735626083294973522873642931764387736300764835560130510816093715058698278877687473080558377486501030899181576821676518427448173003524422754904374643460309843652201926527201207633879294580674297708747132759462940257401744978322760277719827206512374094315119877366674689858021301815706060656585206428289012875037594147155839482152227888235221821563276016972578553864037432450451316833974027005700451027804421512837286736407917355893093407925781316806242606411402268673694099565305018505216474711706761817286918436815077486159681099862653152214624485325642890226472509370081224458167391357588792975410406391195859926942806021537158136421353671619096742366105422911807828795124331786930847694794762587962910978376623663894027195927826923822598310179995413630280508169617105979556769232114858168901266456566580213474302679213002884286317024669696140564784785247575414106487401178827934735670597371800842066648389166994396951642505206505042602469439523988186107724275899117050716626062814156238561435242720824183696577367670562209760066969563212951843180275450719053911362575579834179962052809907794391667879026324251447997033358058198051049923571645281052234850498378786130883024582630002586904932252267128170920973536537133627632782265365026525333119515425295916296325383422783042621626335079315703544044333791391271786491744962136370957374064205339698651681981785009247605524453507562724225206241319396662966558702483734048778205910963994049831634487015214915673672852795945905318833780372026555165316411555296557347979654064088155287620890624971331061058521336837209728782600708346222500842367365702286831231419180330277207160679221481685502000991221456604086378139192748877348152712884713618277860983719434576019639563822019667634620222167089810773700904131247271675517360541237292925215271499735863456738313377843617735774633108232759690358879469524128144284536984750763238032297565436790604866742265508234983369142844316723749958272100192222144820178626791118179776172721146061831481444966719956334320493906934714871258015346234555760905980451083281899087881191882978833475054362244714576725647081807529445626059454207696706735476407524716308663480568941480041203416383792631484224299864056843154560541517057257588670219610480403673908231714997098367996150196183054779221751957110107615007871828627049279423508991103183832785281086891126844620258865432997349082544917743375810083389036370052958701455864243720061581913914994833149936515468533967397890584276617856644885941156363725242626602975913372039203281454611554721851263791097689512310726570821451227861826629717037521465483914083981645731032802283601108210809806072789533130877231381958056535878498503861880254188433860416689891248724571015661989541584398457941372859981389023624864124356093183066325129723079462339577638442368436984705898626453989275369039109436492484904613832512975424097140430319270279254378255721042746053254849146661088337917257923596827147571809268559711591085794768800435938879440055980135728259210575076824541206086061465662693342182931150727486852629568891283501395516752572683264151452571211445817684828052177260888807684285879725089485910822115942654541148367616767731578586559868532465369185789598275156891854152254812040454851080365921391500674824025412234472283185470365663620593823769552277838429390098423514256871662290225842117057005115787155900831874564652549076040496692182294607784229447983125593127154056260511176568468747746238501339243907461739648802354210004860466376221787808658452875664201566665572561205253533474335694735884996768125725440746459648003307989416095841199659947973162980638250947870222986100046264351975537290005756453995164013328545389726290254821999572996241979438294251240068550374973061934959082019618837669141480832098763486193543176397353834110420690428468373014729141652808640017076212858458038652128592624348907122284478424132325870017545745413818829758612444720749654043528760627602947164587848531243998027180560296482580924259389633847081593294282048606891926109904978301360309672816798419495284874781597370699279051712184288223165972120653277750320553041368189962452800818113559507449910013070317464748477678394864871845056606735078855250074260174316652725880713133744783492542607593818129615813157057090264373649282768538132913308287232741424354329190248103131471864497094754035659683433893988208942298554841991317977019846432226373720308931077241394267353464868313059307683176470730075677732341511449373518248670323836451507221796069714465655164026102087808706079092350753562685944894993239032310583403794719136754107383300498541854067996934973120153039331208006520066596336134927368604003200831248329254653251385154552482366780628199544865902010910866398242910809597125305745853042238076976286131581470157623083088803362019135474268119427213163757312827529276162453542823044456351585511119506166276143502023663378285212766755342425802829716761673295275428680482031496464035667323982213209808906464611929973405703830181972873148111220761448681572586067404848527003948689727805353236995928605700100060308469520803569594554929384608850052803713318501637783845921932854678304511152546980078545941746867301083504420853537417358807157078988992156499119701155799273816109170697384731046134205698565644425496215928751306245504762463756945391728222812631981804761849126471613622701724816089102511006212268087276104226600397622393408253672196091864516896891574454203250029526367239271779210729445179233259801012702423471404812938402750963574078690949747806930596830959140011407961193244507471942373031206352269183989182943865042444332812163216953990564542333953252835271298895642569407735708885904595880108767736098245980375595742949797728112528820962088471091787437348738529185844866175462048080677220575209691770786899282401360632387130505285027691133091392538455258870017267416491680539725211708232474680599446989585017512574598826402118669607181160569398167184257901840935716454782123819030973982917570483375054015162132591546839086122252479860421867943070562787429584731771098777225616990904693163899527098507336030166830525593021194650167673399052490420931125155121418692022845987471825030363931644297102790094544312473669566551585239292022571595371825926401250457728720004243823807377679132749931268363429075443952889556190764401411876872448068368773491137051839867806181175792290439713959104253146650786295704461209382787706546962924076255306492776421661680392873545377199396805251213807112675245775453989557203789881986034212083541336322145084705602886098233264804170005662899243691745502312160749433345103093874877840717899988767994883929448101157780535169471378478571415219926595200710364993028446369978277835827634172541313849065920362099442714583344000408642684835666668272386030128482903210652364790206735890967457777024391078199595588897683600819803895293684750321239100782057581626745203043782838981715132331566694510364615117789819993075023589720642510870526413239471890551212079163145404298246561826490771582349862940229750765554546527781671965645067416749363057982187031939262669441996392221588763566815721545638559631487254475909838687153408880653833693095896156812815537285706495149042960751798300885065509322099216562426145080639904571263131177979431403385118989766455879147742339052578034644717225921548434806951118181094715831520969977238040739394577599267997679697948606815654024951680924879999758868282329679735490199440316665296353764676969281029819586177600474910977295390007331794379574202882870840933854039416553573953957226812114066328252677790524920509570091517575359091200839373304763371842777084670376926541186497833531597259933626805434068845408008972645939246545190730749896218828294457844108812637594679639257820907636513936570603674206255628522438184231343821616955437205935347448617773174127750104946926565512018556437049111857476911459921572486178050159430148245804509382915203872236018526123178872798821454882667402919923412381215886616492450019258631963699754357104596518456728701215494699782388786356502141759991190476863872969925915645190359360374079808186958879580938671921448372258940740191361098848692720909859994652642125323565441008312948717393788347905972609500794198571610262419321779550772174736625612489752789609463581661540410322477282306566048961010337111281738269310140076681510337034958280578349666795443339648267450137987156425678047928944563901170705796284452529469397777323328207127671261932660763626911297822073094700187672229173677149943717667493701946018206749824647933263256457512500665748471659663643851537067677808308552375889191520638917413841181285308110516966127186040385136567210892281631896612083456376856026229978989528466235981217944432164058050774468270576166587305928211007732127774427243987858882490475953993597742946654841854303905940986234569456179846983309040918235650207915937346923147757930954575099355077205263167402378215524117079342954925828829810047725942675526706754298530429666405085868870970267908322567914809062209885448032494936468736544008939138999591307957200203600341225588497623225452344015240877377713844855813844118401795268873470283099747930544529023995553865572671795234982393994709967583255307206358799115364994147431788955921687460457180494854801397817192825691915999367068415265854227857178324303769810691135858482344628192833739601662679929663895056068737843285443285155181091700314381098346408140834805609866664328107794793764107030900963309425657484335469922021225417766339708818470877661932021088189079776549907395653414702896534299764096670359107384765674651232696515740094669006628671110089097303373814141910734104026766863713947566510772305877940684747951047449492448894971074988611999088800916066278229317413157741281354155345679980904243795632493119145161653453139856447691658612465202725184665025529341540083586498470633986345660517566131643187306707382318492909570271490145916324754562077118045632439722792752315377652247145586018579188428846065322123014745526584696545828209147809932776608382975214369977678337483296304652463199494793270522154410420550534377004304005455309365175222393521456837254613485230375441474291426225578376460415228776166934115499702118437138423150510686668395110137758094475053504041038193286006930801859632253770255034086076248316483002700835074321441981309217123991407180624307456014580740770145314790950512865374514806788875709539045243947200304966016493554858168001458940328502101090195256231213941338259132200357621601338010402466647516038829728364314027183906234234179608114261103982373642787103412678601616574590696359091996610122183718820692661431197106417096961090220035212061838878800764304873924955377631671687501225223229141785450932848742029232716541270282632805969791101960108099139933546415062476998585614283965647474377134679989585636923474825307476890896154243193058935214046329276559762202025990960993813905071712719223512446874096651444743629689848099003050756539772368778167400299312943016646875106936480448700022574211272255935567403900939939877700548929451386513505620500005206617649111176709389656002766064162340126535183594597366840362954347252625704790814530031326049244307423591349765223016555615306937920950109702317323018088992292883100420230607876618409796084292928296598992325900262418062191358882289689046961169311468499932416264442623537168549501090105634834433537816444799781567131740689083618384403925724921238391948127936555446668519100135348953088790212697496213743413858190972800644679336089336246509354197525276880379244288830607999271893485672362762055285327735883417862125246420910461757471268224404675160334175469124685500987630890186094919593059674480927343077448183435384333046469419794369740087187656301911352523960249314897878493123307933010580127814375364099945749949789215935036504294415363219376913206650335901471505623174172041088757833389434529176514926283934445684275541118970671165641123882424281568219817654683809536853477204194188621155730366483352260561261867642438989020805241457337968907858090392212595840799589467634338471375698285557585300707569483280255245822414966602391023742021057152542548331439623719383889409146630705065440980674729714888033667979319410761898150836932054248355477932744665636099724853306086042857131665062511701688526972770921325647157678445714455996659456952941832200731772142555536838463997975738684435769286216426561522512487610384604402624404616952034377160035016870601371780817529948616600896863774839197556465491603757718947168858767373088794471177834131435176439691481661002418580231007690498772251787432886271928314120453977409567643798889009075936100190722128848725784476042059251078188594976239742531542544013232254973747312657248641655889798927424638864029648748417776124943863023179180070378330062332872381324070130619749219222426839435150845690461007112124571376985312705220492130750184688829359644845889497854395066833205474913998884230738434997587392251129528129049882111982751651786564617351534987496497453327726268932240952284735259223970237606033040451234428371985770531616375568587672539014270464706198679460001578737910315972074937630850692680568753941726080068222436208554114115877550259180710693649739156225947737470390859573861052277709932661940498310397346726691914940962992414316144339206111308084408647844645645664487412648124312901642658473639060540088188992463968004588231918751841688653248679429950853525459375663773655828549786385352801615808415446379131506379390611813626016351387722049749014613574893340116496398639856963742723553166575931566228241356795939786799794610513135319110323151035863034451695729827698944074579094045199583896699531884622665469594701390890603857630904264307000849877828878675736186786790508951329812958276938095145406440197652607721907346279843695485492657975701493008410320475538540639552654826746995137210963906696154993566542907509437891710495138117446225449913320683412103957721548633288524450217196186965142503078660146729683392231059426483869467576998928647873168324312924805151727453611382897249011227210877923375016907596170793987332575749856585406938052445091654682783026566714515144417372352717845729497834996921541895383607541366135508610973040198865484043547655479201309060297019347832604802363185885574499076324905576364024369486552561601828833765242970590169237358091370121706714953829571745117194341950017071855032719778530566573273440720470203569422356833771041987086880928838922325539773464895566761582188756035582244810015311474101542555934831752705256808363151939589797451644282986964244777306727371874959085690846121119272570915801781145738018331473314032943436776559277975283049952866875481179547425880472032463116212344961467062399089334811796484549806082331511280280963464193304686264618862578847097652432528453714454470550098332756651556735593335810243717951839495768076661525411083560644231431140791665411834879773005790054163454256269199575872822339688226197392438805413266322518168557684005535369250262716657068591952553622201669739257109550063971727889132915395945724797640530669889401077530827342653599232987379714400785077449092501554415155293469911422716452244343070401531518080856645298369588205514944481478144578864356112434082746015580835751118814413822854208751936065285889542594330456547495387703450252254844283290478872052768250803141720371999416711389026619136977121740587582419349538932100906224831259670102598271715912828124873428552106629859081083093543618370691788957349689065282309720939419730042476850240590442714060420196155261468298826065033320675539316393074724094997455579572085514979941957588134783092060334213112173783893166216250661021330120940153137590833305506776669881839851265576906707159176561624852267458352547582972039366261120024872521602296055459080583878494615724529850628307664692040681465115670452762212504669676812893584384541602569175667121807991170834619409211855603015772149067208560922172833506823501146809925812057131079137526323761880081898435126352442636849924675512046439844312160784468079428643146820869252746704797380635090101989431302607634429591672874372572108894966300068351629730076086241931305604685516319666816670835931188844550031640906733878429929208867495255484427361471740400645987885267268841346300025769386837629563588633208289358072736336923167124486984250767363030395439844871560856542817011953431437525897766359017108599544190211971783962636164502806258450528186810769168641419264709170226140620368930798154049184150064431424930391063434841384303046625657392407923496740038185587089114062356109056193781068140138369891977188355757465563450914513300693551790156655073812392655313118913543638019418365144038219743929109638915837555068875918961236730311637944266615779443604645255426252278730274579116955901861993232561078173022760173677785486191226159604738995600309159449422719670831796364888553043543612593979752167843133228080493141650468623146070894563203828919846773923516871777475826838377379387170480097660378326715443298757472265894438857303926396345711746954008348494849450400492977436780710834215040797852035457072579733754703246658021998795528515854755416979051906242048511915493271533418030299662364861848527251261630936633797116092900581159805601141051985667370879362290091350504963186938321495917343368617825834292757664678552619947427435742911264539640902181426868571918845303820489308676208844773881394872664734721035862735153486297389374499944199965129620327773970539272093105243183620419134722002862816329031935268560725555319548974886576674845255543813150010890212867308949314077598574134866139760412860422573357120079409281302702726648040944485557386308093063457647994613508193901817848191348499478554022519899819601444367349290272295608905945828139675414513788323273110406007849081719739746954864815300997907389025430335826749163397496160141751768433395831291017743547063970503054126517395902186531579844368633311609706856363030278934811725541688211400889550027379744280250884018335307486355482954902970631556273016256692628047942614529190534096870322529912854701745496289220588936621807303876408769342051671310030018397832242593344159411704672820949798506560657588147427645568750833336082865635080275818774310645027732166855706913638349744744645073405004241139355786021255066851891726924685629020546251621166732060950058276189771654354787736613095625096348470411161146437820698287299399460188554782926738667164636166982781331576975034260748339659473514188895173297950890586143951930201444311778693621481419459309656889572171656285583654797399498698736798172542842981912379762012520606558469142111588110373891030573476254215636055016383531921984099432941791198863569524194714403450495163456051756975388365968156255216654412572890481451595481705404761178441822036544246013909950884128718801055876274398462209478173381927598304896004535730392405866051141953223972580283956009855768036875772608024493441513816709779373118414489027299010255334709989854125621571857761706345720005643411999949508849552596590560088852827998980822621049200200084376767798823506136198775654909801658992856977399989986435295813885094950343341421982012787766326398412746355711267423518743256655294100535763297497899617401445631023496396632827017126655807253500038404204422738331025853127316533898048640843001940704555512368385591697800782598747288221819749870272415772651060986838098773331909322969284543278649649258586591259979489622563462900481673584740728568246246953456189836876965639456975541402647050982423417404652645337120908839447536694576573759893436360317799212321379276195326146130159739353008386435724174010531317967556600627205882507678040555240521417572035029359226057596571129843389123757445807024491628276592954213366249299472379296876787908375274213451710194500006294486535675748747655324625665343505912889627809864682882680238465844240603067555722912470415473996758662481660578745881718219059791334976801626896655942413608482279990507763534904409067490850883734599552327468131954956200336852577021676488200876216936150782781705407077986748094129473766221126101789383799936641040756779229036955825938349376016760474131190561677978525519240816248159752365176746615821149651699505935268211393353923603181617252432232397433305652037917410190654490395315944386742123107333530691273916700192961593207643910399217225653846602750437094473738065799514556104172756437867024358743027841602610153221546720200809412826936380207855975280069653462756515415550320570287790152704485590423389624645455208631456526231599650291738161542138056028679570178673905003188034371634175021268699767697766630247956824492023829137314636681566607876138706756954088422900085754347104140250749167335668299327493249448248181424584278890669428963976090007888002229755963445482400739325685963683602678583585281364580394012560401734439841218407984395847988928385314125469855624811633212934797216699262276133634337693860082886440776872510678053798438063254534076554386924879251781170693273061114743867773088446678166000719336492512168798595640288094446395582507014070163081793916724921654067469339761353681722196370539817518555171585844417618239336038314386879967871170906945281013413767107861932539487786305039925147628400323868188420567642647704552066119184886956766785914486128542919998866982828794872563120447771181784565604714466860732078097265974455098562156268439327710143929864116406519138330329508833613668036311078231650021155058319612229013359956423908794456382765151261425104690727488900896185873665690994461174488640897354052821194547355318875189963447792548149860013239296999673516693296274591849523803047191606408295137929501689866324749436463811490991363655071017149171789427125301396332866317307818027674947858872568120244715072669572610408740345104862033626053620531133293318716777885348908136149394815814984089942959871474574330541527752265776977112209276719282135827456403829442785569636584534689601646423678943546520773163029253018934011534124632396063349190114503069886974319314296932128139127969179245232026876658371336112206716382528667902330685295110257326166365460811234727090879005268038844622064418054739489962622366737318867796921030018303968769420431233285693517775182072131925299991573309236921099750298539067588952406319372952877915076541898578552290860770102246172071106348726960891355520066011113508535528979034657771607111436684121795492629561932230305140266423310427178719169615446048974965261202813534044169845835473538747476149293016851244176467253440176605717587873753998650611990570274882250920476342590118121401129163620172440672310627300314857118686554985477781486388785372974821395786212757328785081139152297921923308187860201770585179035149694191075353166121909145407452528877156526985105297317787811104542104095324993545709993388184933073207647180955259123581586541395097688899278048275575254373228372539120178312180648766638838980160613405800686819578211427962845918289802182028408301379098353117339150278677428369126484060716882378225324046670837690010547464089755402478217204977559490386041082052413955829087793638823779375218466422529587407292716252418164373901751566208000889827907594481108745074064226939078123030622383613288244075231376499184903955947239015126159734400734304884509253220430193751113391965587676415581286469433064332520895957663002311850709093698977076480990574396476715038625978170148080844364949722505017894728048879790438100797721056561669244837997795924340367407495688977261195388857113696135461391753207717807850840023246110111943822370336139834014682708650051769710214894371652796701590725416281987056698136193942050359231030849163560238376542237341515552757677576852477485227322243875726956084137673162239962201397763588117842916415173487696555672876610946846285288567439910267949715710503620547825343914410485490163256558418948911284301903330783552258307350844376636967051165117008307747758037668694387394890280034769000806058967818722375431308326128877759648770905830655221899228360901563927993853614778462588133539757182103326307855336418743149263185168124985561769263753554025583132975464744312395935118573126987935527332874218220835232189721035301509134329968159139428884001557625929133497900307736648654638497287364167838495255398281304851018933765207480956980703687857069201036573839608499020517893257744659623405191414091295147838448110751582348441606101778440681242182116640018499445852745657909434289227660070189052596474275171316799718248044552697550769237002468654991288288620233580589069256535923557355729193578010495066321965450160672828092872383023891970529929181957824594711134015406393843920527372086599616510679336474284982758679877725255264481311602468459366231888003246031103638525172471024611522947148367054753290982974980614760581451274687166533746737077566032312351049211682298348559715013641423406631766688133585205657647829622463281929571573314025052799151197213139722466279296402913448340815789111967586413065503597816553807118011122108697232403240827667997795799759756430233408966624018598418424660310441546527756800613256147167984421626569523084552170744473550674793978430662849995949063657464630323552653352360421013004569794784103890744814944553564157372850332043535420158624640096443802772054425262930300754675781410867724322496255539535590797503439552800759288182653036466711326286620858338730857953991438488827378168555694305644147023721724872913977470451906235794144753973386570698440642729200692132401858669707063318878824960158628431599865647023169131908968090707360197988165839186382493757795416234865486630150715744790357895494495465136376049634769447729197380027100836903260080152803847443612407722888531010135399647522927885054178068686463669533790287077855769440106222937998897425180718849843232991249316055532237579005010980929802706951493214734335082781322205055315952329713419026217747393579407159180521013054507135546440913627941838925445168012349116224957021174659491501918203695871723744645210161049516759518506570175963866954912565492332467912462448267964043975217686726064411047480481021972715674447020944072014428616944722727545258242904214550358970767415726452465917603035651540662851296103168779266332897223768801877796315112464452439818213528408273774920801479999337316382237389450226005085255367833261554541048420080194194062949882653328582657983869484911889756644180772440108132557383221663345998314718222860199283476233559979749502397359800794390852672304294653052220474615150013875850269174587531104433635085190250323900313996783577354793642520965648766956431969637035130843904890731476443550576450593672600243992170535509946809042466301565479507593242831717173550836819691645837596769764065294064060931597439737947445700297385848410214065452874020788128419072757682161533671949435317636114452945200392852225079864794560133434940665565736327582149558623463694742633987690087135575509536299616719213864412154981708392817178358075663327283701234656410707903930236503650151260320737460532456431053574756868509356397788559824813929982343942244823954883762929816639135564372300108954793857565893253055872794963963786980729779653011830573788234129830675097098598919097512661304175161171050396923101729743752387919192004665451484516003635379351940336383965876861710479283771157505556224806843464412275823499347181417250522691657160100970395394961414842185196002355408383360111813572743422110641355544949808099464996156122287343158878957738741308450122366521163364470518420381849024202691300579122145999368764640354668077188090269622878975664550684068796266263023297664519609333918865358419350758470294916246641823279560143541658423320890636067973983961768155277132352788242911037594712422531078199625328015787812164318432238591763614349798036567155621836507787702881456264118142208499814576874096961372162307531752332150251852215132099367071363136081398434832236329271715771041299233675639620857241447994441071320352993134266657980775667116024635505285812463740263687425900966217133262904518216704145447431190602716610999016377341329972369583254362257615031171717611816373308736596087052888274467988684613087754629006217283742688271673300787334549907335372314141747702331809432936889895533434819478942519524555491565972598188333457971175831306514798407029272820241525580156207412957646850415517779389106376087298866568612367373930308768069901765150918753660571158932846516935266630789912721320739251496399997792235909334940046039899354410697013278428401444934187549511048768797372215115238185430527729227254902820262436244563114368094834624276977357092982372666873931787436325246880703228417492567115861609934531416565974838098359839338626458995301879649288524801410022503576749918197206789912782724245083928996740535985554232822503256681844526954901829203822729879063361714551202213507532063651910723811503726723804592642635241241446965995438141485733978417500980971024577053009193912826451476048897389183215230637772306006897762843750846721959730460529203362868979756992753171864304282621060555180952843906753028355547761770174304797382871707494667497431297150611921635251030257792611020411001247249741149422288396015317390164969581780741211742695656934466882828129493183339603673520187821044847935020841975866558007901635033735362706333543362370696317704822378872264920862982358604337381320795089296211378461899226850387023730364586046332619833851525983882769477872741294773501327663960470624931021741715786304308734148293876867496207352433489213223397211247284370522921819281023147579889037962188236903211874197933984744320980713601136272944912833097801010596448359029931049932188245640593212999406441097237510163554516770728347190093611846910598405181838234303651885216727957922634843931204564825523900514218966657009968334729466718135126474433609458832262965608125405165282386312212103299650008369114719388620691065846202926996281655088094021728476887557629940097122239187911593569928193550224841078227227460939272084498760647425737948827198765475615566035657940762628355716347608981805041728609972243296331982663763813657625908617817638930463100609462229822852587842994439187695837361155845575711489228253378449254838474063958433555292847981578044404945507941861394359639842481293324444288161671508923175234312623951490135939444154785407486666714249622125893281223400759773538613442894033380441745443850440867197256924292984251110681086812374969700684072059618047099212559577937285349673122079334284922308854603871577969153390717765679938444212098025501136436882594113735897885957361272682753577944607704557205723990386921290326215941026341616821748781524287860371704745786091870358717371256868917885348504166237597447955202822160078013611202133505958918233819765955062496671159588651717462955963340271292527944896241001665282294713310799203113714959166755761555963756369230485537178137517477691749119131968563602795044413992197879010914851808926431382163285790963279127404352637892257416463777828785442791043852606203452234522087828136931399942999410054750716486163554271889711159488406837811972504779139717514325410356867942758141330435391845200386918122322982566106975729363436509869326177010948485249738854685052194820177185793221867271704858157967781877030307878990538254592914658640686154467578641232814034689083556363357526340478721863540464546056542524065849920908810610188082764505016595355781041771161663991246264030878368951184930396899835268696256144832037508140822915221714956388896694111650931839357276865241587593549597002216534948563257036630317683970058958210246437035353609462523628509280618505216871238094636257766773821308958092208759489136137661154734432274423009896880857064434546282381032998567801940209752180701321509543918111624394462616029271220115019108477811654134104522966133716537830452685033764445597081169231673470914702451380509208592709724654659404873404811038207840456844443205908526704440029537920784192139944321589389368853736258002649586837845384096193750043600089520543342969025652339113657825549231217805627654868293997475428353395261230240412012392917034336362444115129362523181104648809453294185734584049774567073534835380828384790495915755297684317682179879005490405969576459207095343207126710905219549494858659621352431029405835584806114280748786583794651943265901088943866820452847539094585873433964417869813245698781253654414072084072107381783155397931812065293743391820509762383126042981853526704145936221792310968159135426267035881456236901657071604816880556915790584287561586157255458883655091550619117138190968277853209867757454709409873395119835671873422803622288180476244903274581676854887313692923367730091975580537184306975557441696943716551142497852003938485190041858814555301129830628260599665639337064692155206158643941950404581599748880078566450734976205727949346512794496736176780509377066633888176114322402585261254973287794657263530955407612663276570656030689385987300468654198437473417379462021588259539339170881071963466726404887088637992219694834304448211393182157659141771267407267402056241413038452985788645588660240230785997325524186660024697635087908373414972752487602365597311792393391828607446925740998289793053364548771789512879047770045737191782436750836776851487748687791354302585547492312680575197831242162247015693922183030936060415860452333301257730132644534621581945516697325984921041146044492050040113924432897033906692342555957013929332964178093415431023225105878780958245890977207542614850455487693232966675762710933823583922865140873997872520070255340268086305196818903858685141471491621029374624953367691731688415169406204902253487644234908383051842190234611693098700593477660700137964736360479023575175093803582465100207977106506450541494403804676376697103841018642192142530165659849528410269459868811125737876224553281147703629100777863783115493509597166390943570293527724825488748547995063687773278157661124653591184848123416243901699566820241863542131713981851696138633082305717320407933240695520040925352800326468831507216662411938207525919913238296057625153460843649681107619286893453643704689757138724383672578340837021202175385505999143240795108078472600319656684704078457113731239022410927676468958623962677583006103272680263665038497933171305273553554459127724754360291534321582450611329246237089252893226723795009015989472050988649277793317053445923004752319969480720345540546255641393278810865099868338196284844144261121077701448377466628723637313580047622862033248715823410330042889180546243660031206253602181152556372827329721998849342279475321687037069961326046615191053355752751578867656000678072990854821927358716952194142976629925661219492963624345048501490846903289861554804222742532339548824605682675561957257782520051759569862915811261491981668775115747727706416033080900119527961874237694772128800945051193660270481490933860068595314674994920951255165704216342580486469379135400331307382150142677498856632744603660934455822021175436106902235571117411929832341049122248054589257746887002000731126212185026364142866458681797249521992337821842762011955813807577048638948536482571402082043565493838949191970575694927796408731530181160296711688067574829679512631905902846901734260662559881981942364527341856726435200482792753920451023507221783054366446014265317744790809550331415852930015199380052666719991221836185185737605636793730282241180668016581156604313446782133656800541543374318128137852734865892051727226386056340941619468283600680451644039385230541197314035745152756072775202470562198048657870636164156819780424547930603912613672859110364223130783915007497120243313900843913380800636776022037264979058797932503151059185697741040963965399178156142637401942423065559381608771617927549144392951446710427289645532910175027384091020846408525174321288114840169959364864044354267140814023509941863549756570966964895561108653884365295052368480027630261583101497179248748159316455280948147750189837356853688329226818419818941250052295578697201690067034097691558251995497532009649306560303939351386254359567152451034501558017325961130784819954799179773641734673192424158767390493182219650977036379733133417937370499271699673677417961423898490421631917583268948027323211180040357899543033385776436964945643521810772304905967999646526051223085632180746581198409260029997787545743309709856017173878534894985139374727776567604415558479048356265285191736407386246280380327202370122528947231438057968865043599038122768316854877382659844718276697447750367304966246918947929174271684620413626765452432859518124559186053491805022779692561420935929314082383555892765431637798400096126270803415641428147253318784748555152975156258189274929684025742007848298457263532041313274549699231112696906562850775891320089421347865954990987245018868428231276344876429615620305378344354894551539833084427342360267165658707842496486696284866711235949695626165936748933297392595657835356530939671079499037271811239391418017969661541179410462607642547482942316086742459197676187469658945338649205182372438248890678121492927162419174248917406687402030212560169151493615606114324424697564766572165202154423567351078878527786396734821431891362988908489674203463434841289690245660927051051067225736431456713038291679558707504607754484148039385686879206042321757909611700398367767234596577489796201143617667605301627505258625242200337861298439172817906953522996163925757121658053230441111801625869736938974260661085713022561897080571430856599332391848624578038357405207760784525912214811420876118312085072512283030099233292397326400674892193774566357135885636400412635482364650655646154024732972077820368185743988398576174807127412485469184632151084002765191903114691912046266035491710631048321576971936164402477283023146873131161213637054105453971086298066394722703033356293907693456484851304098702835240379184514854492189220467036938725461852766817395492541809355954453531088866004744684263337114688278832927462561141996375476036851064280115647234868200497315354275691587651584483787922678259435628330488671632395279528996372142897019848663850160605451681774536905839378167525458766322600974555418711628089733879750356313070667263397983885719062497277321440511484489061627767715619781308887046720963751888704732210087846479535008186758141345202241482293424288140035150619238792529616821025964902091612744244420035564964637278260790808074069415071471106629369348735505817710463784962062154259227906349589602631851729781534188173219270912658824622222131003807777030942615922620531735521775206495104789749045479184371940679248621824823995066143529141117506496712759563502267976621518023107994807599076845005721424245804100691896542865377453044575617394308582581322832140906208594576709300259695583755292101592444110169562233318806974261122710961654097438526787305328166685837692415640536536829507423476709903775791836993137020014356252787662446821676475650322354918612749342822805071919082454461267451007269931703262891035263382276354808944116729346353523775697705428102252099057242502788138697577354001339719653787511732482000027281560047475849298002848559625841715260121796160766777626924017117064522140609618694396576884611184104483751593059606844568684891688141728656630838357796802997859161046656266533039484990014125882989404395653869940095432265120318305760996854547496321474187936760900560350580435305073675352056960637884162010765989026048100844698723562554725059854706720566807943162698484868924614022285260724524285457177064554267498683848546608536969818483144463306518765198993626323283077218677545154972677018855302607874669445902718075163381971861762041281885580429836394734102557063769024031629736729530871650594728655411394302724601205745596328064530961873883561554832996993199383729058247836873652220540433247265300877596127675436253383445150525347321124400466640824522382513599356824364080208268928424698523874001592581973559028958518388137956834576667525771504981710036712576483709333724211194390800045722772629173587574433604544294893091246432819428811823932846502196547758282843349834060288943102605597123844135075077028920150857053392698831313294337522891764398126006498262949858496163391490228919994787748592756913118218260892969932612888473446152192678650473770755179200902402299182945518336455884413692507130047267674264384418252180278762876137163832340852081009376105189582511323124096917503929498700404941501444146223055184446984240696068528535449422450897106558306397279029267256901456926048352625631765151480603987802723778946317415009455433405651933104350611720803975704799657564132706256078782424798862065575072099826741114995762841085532597335892493593430341447665017420047682399362277994079710405513392512496796270911872634586583924146992088855263338560151012054281991193708391022738598314064988055150113705066490490352981274989821949219233674517440708997179782478319312327471687734181166292821249008748956335897963319234654241093424947066099293205231456673985057926189010147906257334341251745875886323764960442360704008675260929349045155362289403468533443872895532411094916247832631941243094266080546434090161299186416239426915757966453121647362318435114620204639892475860687915226917056880048711564619058179185871535231287384871053944060457919226784960674005792860100143709621732804985921269861915544725629037095119090159976105040420490088175358917007946866632658121517432135744584914891068949159299194643977336125141443174614158949672942082613383367665594969896962501187578125825637088375940110232215502958634138302514543189581257778083515638974598839231651235410046691338755313324167310591700607585295659941245944311286005728239971940933424100116268488726864068180032261358723956977209759334037779106410703767289351958635396035004943354670396024037124823192524763896077043892478980269510442086702262324100072859344416636899744045778569340497775450378796058358782115056640898496558546348239217522342066458038810563555380758827740662899387865831387424517844760167684192248922030121265650962798808717337025754957273080139021999851850791057112494787015796925294935401893598586261550683561083603883207941075768789304395802592583195159592486678885501278874902637243589698789669646145204372117137187918912073864190174322437334570250991866403005947256857462955557680446022974453344504065154249220735864188094664860187077076278735757542595007249179327325355495269030178404723690872434546215377128859751993161886307730735835055199699666775260397921810102259629826669359401197574321456519672612781971452392141320735605580908847111945083706104088469359035688722182185437653216656195953692731091903699587230875050358291388595616811670113893622032371421201289530051201463852626630285656290562338553904083387838734146467378215642607212190737560385092049177830159600555393311244869964515643448885187013634088916414578284445229936922408557227967058941309151093253277946111355821368715775402796471841067792924748144872587638063127552296907069153306742162790655515010020695934955189059198600976557171238844091115466914107752109889428835007059787430220779107031995976904357914121076547164795677108590246837461230414639470897439352109843885991054465833465702172666192042602397633610825135881343901019773139514503189392060719940567526699516599962876498210881217019617721036363252281608802393433418934391523630046721868886153207639164551057314799909902143302605598371896362283026841920473216392228997393021605138650593060018550093112183123935952866675086480279916503012912658160104019794467564054397745564919338948253602354679438831716110424885491066168403107371582857100138232097667829407893625569257277137888483923098007597588024250921879119360068254346468072909868582854285221065297894194063238440482218590112866931454611995168108407880503207956511749432525569959177438822425297994538784694022901199103735521712267699283760203621208948575530566089006467263080238074311076051839105830466186487915448280047910998261759264227422262458240635039639803789947634644679003730272901540609732586085529205021992246607412030522137202333492678040329769926354110578282189616720773379634158801031441672348057011782687968290398617649593177384269455140894027191038060383356347945612582070315093498833449922398088992538037144911582098585659359022022895168520305137801901106270916264378049796747626441883738413501926765605439572119638306962898412481829314491258349244530059740792095338686886379925426201511511350563568632960542452299028131851170555156883860242081762031402656995888861024815982429650531534522360873812124838830265777832080502992062169046646671840531320848943784578909081637797787686462140175987378155224797584387783838426191063059804034664871118770330800453029959884526630003295135228441187600252214331329962330538342482219839099110284175750363404539747240180560368240239460580041449298456799674273402883313028453111789207325162882885339542041446486294208149165977354495704678927999889431769571384632258611729040123420275970809569141596670871320758487680043945791241523632484487712001511115392519526612549011891610481791068137522664030005660925114016374572401696360107527936160243685452062794951543191544863526297940777962919356757846496227000480409740947095751816604402866212073054165221030243344482656460489278462012301199790122837920670566438987589659844511203996409997382976705522150458361256740564753147391407038998729020183646006134123245564868151541819074193162999525442767662911233585102358139309062679177448975851373894000551917074004551367060392497469469828643108516573986896980588377937055595330356768854092805667571530777343586282633002059079921107822708637509415619277514004843438007255670643421132469995379413732598918257166055056707556339864630857028969088050719381365866144232925164262357450107345686150164184907211458130236012006628848450686572660051262770613360829731123035316658007865871416018589325432620369065604120048548499118468162729183290712002842799625602760608220377684102800215354761455911982091952739529027894106498873136097305934789667417061921738282978335823285553636567740413345052912483308442248250014332625483038148567830752145566018308051906096326435802018135346538308009871495660084446878575351098726049915892758579060246489813202760917817606391021979876439136243768946944543514065101610793351503576805507714904347154487801202898636377378161675009136696496163556609730965739765879494171652683137584399739214397209630347416200876117745098126104757362303075601709412988366475525728148427340719140793278669071377022811411829587685779900410450488167409145148103029365384571785665537269344998600169530238115436976268410545197814612326403543746073973070113104947118251727313446619534022907683616251634753454578303022297802342575797578067181214359343245657212600513177362697222359081557457075645205470282682737101818802009660166602947639455930174084806603030851658253330322134470195389318189510592827926458193330764429789822788200019720021170087470523074181996564686280817429073489084229027631311729099423801149758565968319737118251758932053753280407872272736681189566667867402677646684621107099291433448482072599486007483816770591613668254881851537183516782060538593038269209081443421083495168059593693265696173079354917407541293092704963317299300337143710225231639868668684976239683600070648936034193346103264110871775624068823156007611399561374033925519429535154110225932288672985175706811674281582478530078688928180439942863767243067018502511468953619369214449090255936685246337907937516136323212545090270542995345233571584585035726238075117420616511121647209503716328557131459161001015591543505624460309561319007330934509213060120469642337439563511491093632413815051407467794135959301642264325734194993375616716402393782905013466856725619490788374099331386742486292811919748990648924293018177580463397429609167120837909329754777636733760954515269159214329087132172333972405197932526467427160048869958699220416760360857747872847814249221972108133660048049211343659475787496721416998373528928030957457255537552164791563524849138956861384913631158739635006816242706179222912766913523535822757385174925195158777130055410082105079044881992842864364890987107393168981672573918296788726415694648917602855859020333706512138342919851605674260830600350138894548679066570751244775994635535734238985286833103079656442131337187730617846810041553321962036410607366421760466458954432445383479914003176989818094588113246058159452894783196708167608627046221072789650563436473343828440400245085153139001507318681941308123857999115686693252716670762602747403410288499171369744173888690254694414736264490331064543235199915211006418727116981604326462337205169967273314144292131814207776221337137983188678946532047729191528601520754423946013480452171456235646161610290783825311545700526108747866536590617017593141953612113168780948134813966957912820466521308557308097482999011425320947453809266133801725345399258380505399833919217362561119462403742680983003661591454182255971744937827958193198235847890493592527822729175709768277004440260473709784727228215132192883468891917922145845940170104240367511466777458897706025510935051947186990862578443636792542434466413692708537573135275845124388738482185602327879375264431121183322709879927225949599905921904573095320393149756737674611071801677328020460924990015385981985030519010927009673657150211176459883731727689852356173154876611981190438650902352834335991323806864983918636511756502221354297657863443329892506895511641757597495802786425757395680806876761434612772975739965119054474721396821658945192080568463006402221804671577326738121824232262570237105155186137382377691770849548371298118833994052003541667513350188066456495663662279306179474441351980271786348605284032446438078266580460729279311438561234686763311921749524853467214398917495148327304678546044549824669522733255548233160798621078677832298848675180401574198301620533787916215216949916975371818486955549204568187422744402810981438054416353769365376175981952427900622722994950169210636397038418983662132830397158886698331806082894334224558060381399622147347262193942118268758356763068337984502850880205261531075878915293721640934084682985507188923442348025621100322508611236444841956246520449308272416769629871752767193012281618965597420117744520204513533304511764420465276018825836318936713480545740857176992197629842830410080226819893697757511289002488470435389757708360508091254977710066756793762313608612488235921164995942925877404819442367043036754856418848698926958679360167779400495671714656908363699730210037791381154392646484890985886675420340152405681208687094256099103469848472930801747981299912962596217064834535306285738736580394329162789678356982485954879909244881189940760380111866259813860708365748395291743512983384517456997657669074836518578566266350833866880177625045972560221998796435305643185912065157115614788397870792652068423926794908755411819082780290514223709771350562616126934743814817567871640450815022515518039224500816040627089661254467809669647629518922792164329067954940334955397415224927457336044822280448028513916952547144330631433701113907722956250181620888624383490831547408323949093135132570345065877867523781841675767873377692695695438813898499852865837488912626077536472566781254339504494709448179987588757252546190924450692919491099965823784825187802186300307085686895688284128512226260457565150614379913115046152035248770416790553753031246119399561768725304844613830656753948799081048496094701604663794332166629547761940627969096432662630277997272498298008587684342944342622206091557537026417786295792339512486156527220302981298049709098265835089506084267497092743062550590584267961801931335413522476527657994405026262762991418057550195254587841234821838884145486099152139365999236056555017261697480968671775363393242208079013268661588070587260748510772177243721348533340050911505336260329759161549602490631193442191137738536462031444002730473630944903796445933572480664834907070829377881173975645851126338515185750447359399795772929913789065746042886557788049096033442266280639725366665161560874372291929850654019994886686478144115858653123869656229632729400937847960413318632669121582398591727295774578677008752776706896965989000907610996666817982292691043616720711618959819303672285669135705583427908084317754052920192370913185712952809484455681626947416131341922439964176557347058965041778568653187365840959407943751272774786822663931338382249021769287293086125200065081857880325573192806285362297989224904321239629027637064376588735585210700103084652093484358121217370501109135938232415177104328506296655164602262678975582068561893090700333334490668708151324669992534290754005560865559592280020893072596657049667611517093801048425105001293688769480074487632303371619574042846821169049038178195071366891573190624032940929581597456767312316995736075748844048181318497784371318097735375764993243644079796907088637590468932675777152165910788954773528181598624458604637435705196256773188921274963925196065146861332902863762941278721554849024189993021549078812111982535346913982692215926016237287672580870517022121653616488540317509712475315319355335675158336176702968910171910815079098998175731165998645249155460549148230932086733882020824484342899276294821238784482824977334223278186720241231653732498659817436983753711227382565974380649489098774126151291916734078019481076775089538315952381509124197365352060827898101460154114377375269731303434927996389548035548332915936159018648991701735919341993743990824726435209183733021027345090228908692747081877588582079508018354023206178197722620300184490403405283439050060718158499877842685879119289971589142628358283435887251544025122989770301729526726319601650993924365025417170125115084018441523023363628577000494954257004684825128253791767679805723212259658360622583982816410013277071198519168446040801255492510549732775904375504696706789874732708506086726093488418667029514446910472450962423020182780659923725421744035857252563120618056344039920977350145824878394005392982049491828306424280306699232546097518125848246765570530741546346646690510126843777365618361765685889569894606770736694575933688584361099344912202766425919024876234452740176667029126733691124446994088502209155920319858798820857572907387622629351523356983985959725830554191071532125355159927997013897195851758869959920542772554230602373859254471022399271371531804914737705688414814396618590947398165870274003977838450078674333454047183090213898185413846405623840519251017228403734044359656820522518598407582192696218274093928371130471083224598042061605217591871573985289938862738605871043074887188939340072394091926499537550826705967628911288567650385894909940020769234535867879317026150000419445681273243761455897352581048315738497014962539851800650513177245132770638000928839067498468215284438552073916941801169482703336101491044699963636554194765650882246121633235509811505141863030725113512159268817734319893059089389156336598483768936492516950399339703902384343486728461453592099024039233392343201263597014611048891709540708611373795034043226017083481189166342780949679744152279955568511641897026956047169084315538910254061045270568816199138265233822681312599523262522802297556032675551977437923682634846017954356018038403655367999079966919722532832943405712990767904370966115209102912889291632038944975084798043545066338014520837379002458566522934227244677650111083680793502971485514319830879861925843355024356306171004171418864423427621940197488640216932536961252644888150600636651819822604320433561517391573843791067688525912227545355756290027541155765147981301065256390815539229573457151628124204249258587618546680039465055498844102327837800886548623811979478633295920881903423429712176713599027408851381983988220005800814393867423250991873546539195560194940480250346662871661451237146034957482300612743586343942662792821323140143705704535637581988462068312885558301220931699155021633448400469679150061180883131870092829556026970569581647936153191565134176947413984718078903119707499342207214250195072474119104584737251272947787855762858412912979254686873135341864471881106392205887691018164223286226251343644450602957204201495808860318105035730035263002411276442222838515129226828082842141632023742946163917712561181889272802281409283043644799530692551103477661946543905694129588208523300070793859450151160121774066453665292700383691830094758984674526783169028336524934850673588228950186799657293986521980683952270553168299373066444021936086779132841651428749374498526052741685567274681782493794537844372740768250746019057734517256439563206971373338933011686944850350458595861615825168581735952214380701473011733632097735592454016730015390629876752560377169212200758444091496077738411859357190803557283453958267116706609293894418548226602668328259922206234680603722836501442140812524117189481354156918725008525978635147081459335333029763733876194043140079757938107705771553919052646489449098704382695310014860926662672647011705295405170190153181847061503830190339697434623492558660459334940919733148372650490598916051851613996774742007090431409920287922901109499628289472536547304016386743714927140516769107291663616253238854539462678742048403816442077779631895050327567727788820465602811739091241891505578407150094131943160198247416600125010111256499104810498459009699121257512267573967899367563567588283570309454637502890205127156270471763548876087427646279258313253921018568660136927678463062864825269271349274096283437144642834185577552675670936260479213301544720830616634342501577428014954806073641951256416995454486791018945074568346947064196521196760733144965205328160645597019210587048523363979293721599315363724645377679648944715565770132363693787366622334642882028728716889047151094019684884789588380875213219983302102072109574864355880334286081757909886515564355876874350047644799582508388855926303497541643322572195198327867090446587156486727730910366456092819322767863230916582969657921264683569007970153916071623031795819408869226797227959942821502072635726269855518149552585417913881845581867765061935234467763908318338328271877844295135616090525524216185894293589494596343196970007689476542421866093378416597909637444053322696369855062563332310135498016099451687788703467064304467987501490839852490359215752055641885497038834752456391865434760519988078092498441140145887903727487020365427941662631905950777356447282217411597291315865679260463054298115637790140234397474681764266972793826545682383992047655167435356147060923201029594332050153037539737346612771503645234444158867184005460361309024574543720590523512245476093273737224684931733538973855349987072975875026804844113678822247317999204765156513433714724580117417824585528047337332366683695760989529409323698416533943437052743870706183945267728028328672951114518630690910744356085147372672503551671729953651072018880427193788553368882488449253721361755903589442262027937457803345934486616466910901274086636830197208129764678497376058768416395896778633481993249794675862378039529891037329126319799915895513333199807421893136568978209944259606270399955467559869043352822212699561225894425694802860553426039602029933708842223160131789837622993961421864725601959430894358095699093993564767821811466115374407443065949044228049934974703869938495661443130145252621734681190646991930883262134200071122463817091771800930250519872005436519410760359643907061117961006609081551039005966043669262069178128808670150611737772829640651165154619574293992594636771489822571510470602937411022454244160690245136109828999398413559123883000649130108869345763484576200643053684912177409797202399109199171409400696802426644532131089321154346357042702146339626084140403443976136338810121261259967847496048527806057397726315273121780735979315234875270901218154817418190403102210475917666698943718426766884287903939639838391555050502179140926411947588086533929067182903767421710175246557428293824576614579723173993608965293811556811829380202230503569838446818181715757611942761055934803203790160824814526983508386207698852526687849630475573879375161244250111270343467719218677279585347600111460679206587673375037525594710038944912349870538366621128340919228756830084029730057698655743355246993626129623053209133186611009916847281145030522380529491447707291340354969814900333001383153771821122429149465381555164914189900077565285885246139147019834498876984987063063984705449759289646739327985342127271884973450538395158613162249032043435730960794945836802507118463531998075238222527532349286890930947992261689585635098881901716477595793941480919755652270548012316949527396857704562310743983959870663012976235055371517871016118271062777253339620902521043047974028937677232787272836066902904002972944127857728518774483851105442193807694303457014046187339836510259997471487220262266162832118089635512923309244498015083832131155808905320559479202815412269567661941343779152680921925446492816053269301261061247230697853815890366363909725339155497906733570014782542960804309609862386527079976387070165053109695378017290070131203564294501287559284941525768043487613323483927821734360209699143552439740042674045485176666997156935511908748479468867663284699841451204019723958563015243988426674357949971387529713626272462846713086582573013904635872566534061964072472170696916684204665967352775620279181816254749357635841679481363629009884681550164183703907663420282366181003518857492488722958759952651705711616826846558609589229957106647943342014019731664198734375911391338296479453803791852845690918292571087745021131328070863099453294002263608382698074613687238602116213209817813966822230814837109284752206404295459480027535403771284879374404026262076358873907762707074282876011600431454455164665862923097067005169872412905222991972225044105039919365177462455584672003999921762476411872196199289886801372486205934336334227937144698513663393963879915812174812819246181092808808837838456424557276191849871796903713390906515128205871281003357520349598475872831548052824961902719966428606561128836872251401896411397827122325493022245998358198020082158106619675068000813336194226444423821945943137971365616816624570618562913538547781975452125650511627634770964653451879358491821227831639964614591531624241164477953077897212704830738208337498940129230145799845120828025842724773383931681205881453793142381380948064177945887610853823518645959824735240091249518018526669160790170952556286992515053792178977012940035804474170098854055843804159783370681347506397483470910594314842247098442705385874140059249293708547091521369663318685030376554100985520790278948603782497171924020493401262818572319172359427021488568449778058028147268999500659024105652775345952990390507609054562596334966051756487288433765688208961041931447611058991934203467858299555429317402225744160216667439849771983894393757742759989416273689312200635985328029283142119161034356788851657229290796427336205459755572677613100745247816099484563893170977066423152404011382554642085110248422957848873025676809340218008791406193871037231902136160011238356255630513939222950008972543124480164626889117600341747936849092471458156161081846731149145263675722817699106628165645549344346954493930575140319730643918910747729875525181325371807271195549881430544114093244308491012647254170246332449507109388652925102134417801385249539246770827447827584282477988138813944180709546400562811982628147591622539317231727653558127857739478451238689253108336260047953920862812213120020646462306032768689353530029448873604582103031127234759548014177882766051505545846901200919384689880207111913821911730159788089866487410473252535213338485136771923859351626848373961513470610443294551756842635247818759191807368025051386941449579644403796001262319154824601091765726774860765402542645036958005681919059605537028388004026822804535898844680361798375767967915197117204050542641931338666200293009757998771734726100008147776537490946296873671307983082782185457257909460463567781222402344076858076863679538073177785134323610866387287248624098724065269033419922584681704673608340692251426598420581359119719734385938138642834363937728150503873158739959680337178833719608707360889898925979324124109253634759598493374145874037700980327153017001210297151445138679226411603908894512676053813095069740278318437424849494349863727017951617761248117373603817656372652094689832548584883716611267655484399154428165031720837872127868339390477825110673087662160498907821629145111064361519178742353847291696412956188844466923254090869032830430347452725515062026279294331879425427277335915111562319693259271904278708705220396233128797326478107760401799272194960356725302702116314911392734625805511730162393739031378922344194819225106305909789915104236917048310977097911692460462156263318333113361691932054916026582881758334652266098191662283501384900242301279518787821866805553410437776993532370207038941414995922025404149955845400932121103306215115364055215383334025945576270097307201999113503676180142874387059844624950147299177572312829663044833037682372674547062194578949534614703861610972325925382740319894420731764339295293424115949982267555880511196044811364537418187389907256795643856216211645132850529979099554956045937691098885876743362824000184553507924970474029447520166352670379769707276511016223217885676752548988350510004447762386279216721627168225569772546376602401323948837908682938126384633034254648853100552185323034284537827557773306257955588217172558174073529072601880332582402889804769436208287315351747527543135137568202372594689672279629821728519493815518227852285830321651423300643742284327033191074075817820005702400792545682700788553266088099830561352668854310514181544765274383841580092490936909887275662693001517545645851236577937339980045096132028545887637724194936119543007531097984105679269202015608587480320699778549468044847185050843963845716867462432655927258692915459947534587992184892389314640183114280870257191413672633746446606290768520727858082412530186773994456973805088546543753503865528375973177109814584288950920834848598042581738906352771682335539879006404565848585573723078968371727880706891704642196679185342432836714390988541645476452376961556465202542119338218896698644823719136119344701806733276519254441842199347383672257067925838858490323937491959967454364103754181547422663978554166415129497211419621583143316251755329276998023860385953268167612795770732278163778891335334569411859880189887750855909137080921851813582552034589621947804461794591743285923659313394888134540847547107148389901792595792457528975600814851957486069169109922285626228536458518897920413406853516291109600429582859080680755741669430758819773914489511896550431511363806182630135618610196327502045126371953097635339477409132465202967967735584939408682721576557454899037216126656253426314043305759495895018547862864387376544443236662977533018923537047730001615347363300106981688465212716547387299720593750201177160721249253983221761972104231716281423271884264872789150688771850770914533994027965325664016867786178792873022769320026071134989879510336765920004414815952581509874813221524134250100620491920331687549781437010748614277379103158751153571899789936952168740011238596859621315446713610202351279332497987958858323125024609078005921184827404079228171542702961175570583205888703550894873833530753870355949221263730535742094593857698204738389868802121176215523259601758131107304324298871437379788363387295643551058218867219141691314974857648413602482581702082171301927447536562406586165032791639898356699351510609163589030080752936154099634160057531799786960857344331980241599377149272175170412416088402362814381101938092507775244027802567479311006852227658315486358203683976916833904152682697019471277558824635566221141052863074884851499348386809000845513308016162005787386375021204229247442443523783393902537374734939362517954535088284066714497739080450029598037909181093912004811442276587206653624017790715291849952235028322337707132922372172245617196941869222784506085488691793730418304218079500105073131077637410049938412046196066043805794932619965165659997623232210575465476728891982776237516502881428435746600837029211644561737109534839403684447712779322773177481625104199892571358327456959400977862099883451916431843357149568281464278271332424992893462002587613901208032536534056156487141751894686083421535530158286839855276535668751402826092295947583331862406739419113912301915567630744269145011857636770808853237411758056180153243273640785180113519866537522084914755742854101049634635847548027844876358554126232303523457613053362557071432004213925397618628628560717437460035103796972790948593655947906864733908901883869738016210005349798357922509423177753958553400185891318878565576810954876675271357078157429711647375486689636748902225861331279392218522383511515002883374392826588784518428938805786973690469559576065000850572519673020638614514977434664648792826276661350713006829884288716298774797984953782680819204459749055140944184597000615243619408224596139495603919264938714509652700351786477866192637508618445280620799474525914452436026486489108372787744877264465510038367398806245680367481749552846468532000520879977930325846569206157266433671682430441814001861685487724440257850550405757273066097547230312499820278081376783677811152460074001966223442584663915986794711435982847058563631384526057707472866041891658126280218246158054430226821788773341528726534196846822215895853928010579255790356544436823348798450322590926532877617805281816581446279813831508740384145378056682352584014676044045847294177414496787115731687820054293099979778339490363247918588707075573406446729104280946291594459841917525825922678765197106963049544753141746883119345591825411749242578666985045834447760298030288619301386699874561915132551950433705787186496070635899248466700073736940849347503562269256157261325183171822278358796080683484418542603250296041061459639185428024136287255159359565782971061857946474148741708851862715860926245087161186525070515880605812823821494428070882926529025455915183005872744253028497523546087009954337902863921699731838989446515546363926858443503315355977199868350850045359196217307231947046893804423171000538226322810578675949546436126971316263535096259378996682356293377452486381444014800466655051811537803226245303741909160263343693440977944094462666061413154710599748324140180280005254731658810930036057923905621632321481555042805474856106066906645058172588865257677148140083947320646486285673800362662489735111336357325646011061998733628750373525709411949561032274584222766209746623498076654397017265811811592436002279554582795637485401372831784145372858580238858239099113440701085251241233748965699298481653113440395942686975310245598070113382082921752817439254578649384200528207961721048011519492918022175490807201223636249439864870421793000634792026306586303027888366971690300277290863792049052096210053403951357579706791412664728291215237527468498644182674082850460846335948484212910831060251317436145385166573050393530958775481609877900041310007078294459057430697982917135618472909887773861016323908402241547010762858970956693744762383855009196831347211312283934026161542211364726212642704691825580866496163731408430362216471745346680920583554248094982175037917446160290104183422425744046503410324431538275882847546458607162377810232868140536797738636462952641231920549613031447619544467717294359979035781203649170897907313687517624546742229971128720435986527640080455025049446081754405974005396273864944314838201709534137306697384111592006868380022608022402031651314888397687164303099828485550817526503982586632483746647891706021264788158074989523404760063584586537351767784763940547384305560237755615932792514281573805562022141813779021100595393859785596063981261548260960088838356631959234825892769197043734244837562508266653256093568872784712676580260775565487851604677974835421682952576438119559779704573959451330477543082484073131994459527206948861195799660565079797426078478797571291637173986901271379308576392921449628729635572931196541714800151937000823797850336068111768236016325050094626291396354464738310172703296541880196537402061631785162446981295225153099487004694689113622634038794051758231420570212697753751439622390265513441722894731431120245275398170734485183248369485914705286740598337698044507623382019972358398474205978908835092545008938576008333619477103281863658321543182816980985133489140867955596309646453376543452221182195389999647921973309708293713320193206464167393643198010625157521936660053464065505845242537212479333658220069317588764926839414485150017659586960837675903255142569503068385260189719208997711168071693915548025974334159488223826679728002550532807246100880551614017257219376728600694096553047361095523475138265065752278315739526100624158643633695174210921937830679306000007443016475539314207030867015407893569978947227638692759712794827494295051828181776613820397054290043169704730828216946135559501069387159914844041270601990655955952999227512267885618326259416024040383625482875977711467279781146821245416736719475701107507508485837316497519747650354519424270171803181327250102235966275857969294718922360959366415896342653014131255842496521651153148641814721694061051197453947001750142200061524494458398396467519587106978475585847507405472394745204871067474353639825912442095184016455490360398868126838554534315499244714992483073997499607410054192216017335556892291230670832819689964698166814194589837323476741648327738177611726056946116407424642145746638439331142266009107831541851167308236782304360304745069918039143553187177951348901426293039426641507379716493321572797544851755583765742003182897560887092022460374789749941801105175991980492211668492207693516038868544194307436701787593448201489651314074073726932804268473418837897515092981693711102105154427847894735504547465494416150371633081761787483611816105924511423543803941892597372182370437220076223100010084802242717360782775691193858250354025663295529515596053364147376685081709152629567625795760880075156566245483082492295503810600332038834275642626742422720495320430990349147171256342776796631733952267099947094734992385698657674838524077382076130208356798879373630961639053091575139442232510789451473565599769781110511639378021733898431380207102303080310531475359605087202079397259090821293513178254750763380675415243602019538466565428595224293358827265126868225892025569020922058384476622804327629452186908183926065267745131370695311076000828639599246260734185244754586618776533350972306850058644574758879957027677416644720356551276087214963537382184977357891019936111673128693843613034515792660824432281671839059554031666332523954615694608326777518540295491354185083973311854589096392407325159000510022264697797290841321403208457204961788438191971326458887801505092500752596545651133049990733489292245254571276374401302305334670216921204214263468001025242762535292800248567928503459351189380143378718849962015212727891192700549395409311384154198157501496204047834657192441478209689394907796929691026848482103043630148460910147756759899399091293057477872489413738701685919190797607866321509510996071568868499879272883768298772524281203739800062189125692742941240494412947429865160584337712679623783138459774614728448702351065651499547626250531773107501962046079290403669562660040683038046445081232676654301883248167539741563607750205401874334042030876583299313465497211714780334978329197822909672413001845577889617117839430630214018735122973528700507761960052895170838467420407226715169069902502794053318044522351739984119753956138424309661157529427698776947469931198191056950069198585818363147079270644400433632185521100369349279766998675948508642157169412890678052938049253636820291524483067579868315203491909525774465776437136807783299549875333155840254520263991669328024211768555023813031469588090479054234445975662652912760979542061713616483015671502522806370774301725622143628100781324658153562973481519784627734867993728993784458917129015354817149096562572942349063360751857618569283873371519582196153829100658371551399210473657958060515270547324810058936114795547727590609189082892953332652037865075039759775328166300820265813974769434007315998213167127021146988177922751554647915913870381518921158309780513573917535204833221591317915691961761924652828918131792393406442819275203166137081364892826792685957021245437019593722888911563703991081506680603006404688111975389754661929938866073048609462777210495222295221610612485612007121784888069569355759159227737013241715708708886241235890633654783575146703553394306670558115211781659728257868929344940278467562517361051636667802701294696858007939698232002449372821584672192342704736236629537148987197072440358929922124512393759954402024220576244466291604381096436882374137913355193500444383275357879935634701287287198776651465800843870126035372369676222873232399658021481521222270353383346442115987659134564639917105414595937786841965546764396557370010564235323203537818812508264583526431781566271995857671202494554338953181740019746284418084996836625109233186323198614498726328517980271156128938019957253640711553150810268255542613919105448968015437094304245326167609666623414082923318069415435667370173295368327605540530368418778612123585060965417617595118723536561000147782362133048644172592137162516398665211402927106533358261906876034623354394179256643456742853494985975041232227474939452583257068000708910694759129256035821542627568287062443453716644487646196307496776090454059181354279480803832133403634822656734596870303487278808745662442644067775620166021311222666469156406405775584416653756713363175651166995604994658486099388506785016558481239887629673465184057346013344412331359291635673837030206414449302279858340616586214312170324129977697799957464651476401392297300747117540381953931620155508377885240054393685705626658979591903950287008334840572968293515940691906970378310719352110595887424249840644681109271272004125065757366106279729663586580077534578076507267059698833632153694053990013742520777835463043190206028080263271534724444774785327131320035633270375652674673307716639661191114957652375519855806466567207527406931973196309278376777119741137113489822308068459642073277170021986054683351004311160112856257446282113561595688386506257299925685434506786434958269913966926872301809914889727898159922377392345842514250795658782042427109491652961039729596097069116068393868524354498626313551686523146962288374695342274629910816145245738798087017796077392842284427023663200516931965861800662413215692083445298341436633744670707406830945236991056529220429122627804509638604729992717759532782248929128363576785147371621633423826514928868733056578364292043516293937274334672843127648329309777236717996675039212192010092209889140658886609002372064809263459070360398269517070089482167460433644061057107750970123538438342852942931439812328998350594312218898837058082816906883369062309475240572205861182526341868794109218109446493194521440736303796377798463344560226201139692634631586505810031088934430939055176156554886379284915674033953085825479550806151752562017480375531873019565110961286947163007018346945762869302793553617625592082565943132110300360316497159876608527399740623022856454263461715028024418837906386396734823880530576268601782524398694564397186314904387620102448605311641729876855701640105060993770344307907669251590554871844015275614931849734580775471690123265812498125633371034429741477570160220411314621638605455774762665552006391244660848508450403761770300344616975441089356291334318085470506117839988121184658407200194857781054724335755398339433307584548811562521591124391423191778572289168498351024320941186418892312787316428519254445275389369281591393814920142966936137963212521323980257041405615990075481633708849462013357391212970409636527707064504157037038018638085240814332618311078874803720782108287309636145962252028790015889622259317596136957683622044845651613374933601058143110270031211591584212540803543554996416011463599946295264115752563188456065473611698457367684763872981888174667565862644816951930424941472552298590406062564047518623921420505040085070557421716855193819537331860077430797244403029707624145210164822192722906618392949048700237938073131382541535526619540460685138716677342089120775035670736749717041479625608481865325212509389414174589789899347337570155596946644168078572876014004644159536731498657094865972573912759002073611038220883608289344810660181150837653634087512466865692595148242911327645666031067693980077488201154779449302841176567020320973275665886042185110995512627976689205778640439231250530427619515112288390963260808357681608741920543820310467481314069916421347032903999419987055707915901726015368662310230906425551219798133701200613703952025760219422679667828191185200724917196711379830849624729782942250067843750198191339631628273532678953288367458614602498519839973617922484099274271363124122229964790530967727886362798258367693820316063765381845526154055002231623707706720610722807657258523030361647666075075580042599067127588457921697107175051889771496230817002418613937818868998151489657995737103528859054840782229814431559820675682811461660257553728447108264781796885418755568003065854775267068979644243210603755863664645400058641432454776741267106033227559149320615256505473573462061612304794799335031912629738658625350751140858171916224704772677724996527306363075132850123549377531980111764642643285389088668564006010137583905477261005850929963843786634950720563488732333363658218834307081873790186286938996481233366238843251503461934379671548244432598716774351257688411208015334065336437311826382831381186348121899777306704278521099279154785870444698125781832283264116759893045784951121530655955017447473523404211935652703893450743282116747539709771744697601194305549056475897031662630752866243467544623566156700867964952259610010639692370176569924695842936701198430564597924794484173761463813774269345357011009531906493983298176885223625695296575858569809528486997652916467561002184143578742910224280415883269681106860620803334356204957814624896947137379188115828435522562010679240867141430295515721316230747509260683082838575703267540490018361648183481783639360740952519757098388857857193928739356904723595559346821316423920830587512140842612934043070202652560069013344090727971510430178404092436470244870026687364172793529240574336151472678977419827329062098245553188452733848693541839211004475466312874211208219981123589721361956212189961364176446964412526816568571717010270900660659803216458651154005916888987927228780025864533639560788805152885852719262054726809978538290238524179072006258267605222249354811271395408874487985200037851498978158815519868528291789906237648987511068206390589227393641023932986714596780323070640201304883183432631350697760980059011715062337726465852753651482954000854028418639341534967369387111469220671021950879227234594911238011644557338852361433868588040480985958703560983807929476748191893702202189429236706085704362550136402985216465849308259432918729404700484569290215050286252939826806896663174980015544104874051811258774884543996413118207272410563534162338078368190022945317022981866957683844060951754737605538214843682831205577515990532629789142138231244648057956597103967429632075171794946154258245884002469828990900891640953111088701300734392857065304763269463849380208763303650708573722133497158955012460387097467611439835822458455707964053545194093969188344251882618875963018705567711711215102213172072407403371446571120140820955462322851337261434993412604175269801662280918430418656883614487517564009790580118732661137056047978452098034963814684775594457069987878906911789082792382030100017325339410051712106422170751363715328306184960406712641671800516171205562205662588968983935324027794674210509598758715336362530426221446824164701757106647740560885179702312700969008812026595432147287832739546279629740259581582554120052839752337152467042635450839732676597327255818689375660273126791073933997379488845709125204857513682459237612071067086057336110709899811446690591998221741153347992743458545582875139438175789618798738881783506438802656621010527510075140192517292534522019150212015864051044282189699371363067174623969064281862323643996748256115007666955704589146732277802215036769452059876625644680841849227276208686065884150842757797547149163206798742376215411867346736570917180317035724930368391173858271721782087578757055100124808180861960692302396386707869761936214825207825535444382369253518476693282269588902093032310854466555111043232871232510012034944720103233588560068951489611162399971614080018872573332326695214917974627818510554941710229401868785744372059835104420203186971955823452300648307754053325001130920794177479810755629911087616565348894162673513853976193892474207711043389095822466111464574367354277998351869546499183981081451963458260376562237051881804704945156308402134521582614871904065684752771701463637980168477705940442462966405367196599967732185839507587634964393970498970969772250382384287172582825778461984502827584274599927718611525540392092879556892693052346737539364140054183232265905681568977725900586997424086906557461508257182639522352419077716452965162071680011011907190967866637457535179534563407143309301624810566823718398591329429721634714695955528808721677701990243376800760792171524750687480191805030701125170447728127344773492962569328044793258833638334933418524778254299445864711236513556202630232760256319825888291304450266781259958959993912893250657521138041977925983850493459606319541554562121365917647610960791608120554836885071689788688702004563122159494815382435837267728361561075769653491113414641459885527167630024571671348387576562533704215500220686019104530133666295143370617752803499722935431344004913225496585283478324576642343356444421629516489933522726835340266804907310507576192154011714973713545599304681160365307619123252806273019081717196474031609335972183611091302676614538776195088138647557339571774774294376760238737021736049750488239671450133682085685294800249744428276474358868667524441057742554896792154809633271312346486553660825472907843995468271965627773777117327313909543971759556051181142148397134871126790217012806551374906635687077169070025083824165369565227695222808978704478142216725082810290138746748736260893688917147545264675112484745172919717018336855122453845103028788329711761787112755000286353542475229497446525367602341567202060871905044025191618733941160011748095455376323124806669178923710866995873860037452756256928265484018077106302284234397114934154676607120777222122270736516874413732975125926649862519219495560515254512297518712987976920714075354734329217020379278342124559393651439192335650376279744154848007772504397685222300520882867269805196524049197508002491720725846884671839734870987583392716049970879441298442361305386454701823294444130001134134174122124842611253462199147166625275311256277068928596593410347676125876283776417631328101303611029653920844051370142165851003095021270286137079728586950969018246285944366420093409427203370422164826720321497625696934121476542005027249203858813223006057436991933108416200524862289558225070413204754552291504623825824253019713595444006476613691433572751897647319981492828838980320605046702559361140218810867667111185742997651354363220293310670333316431726090241753518500941451419376538616160216721703789139618928848510262227517577527053963042315904126047694893005075195220999001649905093295341202128013606187414474844161759627336429590553581220172752997135065593798090715219778266876406753137628899971686756233809805119355589548378033337591320725006293910714953561952482741580273128029259904390673464411378646932598006526311183952497775796473830353445239410477926522478245679799399128484009663750526579970234017619540268920624432790035695065311193621047670966525871644591795071420297524534191289703260171294894166368876228650679399442498481327499700699909295268918582723523242711098217550596842512383602100355239932972906442633680898828752273325117663703918193720392184924240410366557496797898200738440889248751568404561958089254572750902031237508760853387695218766788976974585162960863641110537103942860820886917415382259903410629218305123348807906445542223397025673490819420155789659054302729146497917929037262788691020963405483122080618605694667513833861017459716385352227907713302320613243040529548308387167307387570113590619700051093714786679205935283671280351046819084475546076643921798888924921273875568210305256159584416713637478008316357428395889917997013425471355177709373002775293591756452024069362565948994962404883564726494526639055562958684730558600785532907377704939590964471454019381092146502991967465195193842967046032967610267313542002265581194170371023353586263818391760854501927393682326943406052137260125586795576757589352408799593108186286731331541030882387029128954181120327851491449283149999461985321731375334571229693809019679025579499544866094076846673771121630360784297757939244905071935671121714511473378851705288246704634763646153404486049623591909178201311303117403247629560879166250392009830790864335618130115421339926015710416581499270595261894154893145069673012802600084407401920593159164964430190609711081154187727167903935436057685063339030207655563447364922126385440055951119784531461728430802348707878568814080461509951068139436015124598394518341198147228969573959728301280795397149218523401878666027405495347487395743098356228640848825801708340628076817698724545892480057957452609037325196814842673781255638056530959525381682318264389790662110252616549953450783054216911621981272885906913030087212423102200499209529895341015371881747995125894607820122966296420375933354818486582789155140107217981916646135052988373886116498896668392635478984296719501313895289779552554785448125429587699094282125177071619041843185330898052799792633925857728177450716524936474479598315529077212137785332846140049017935799874551568891927739096393995364540360215432038995758183477161201328138291716625360272864448226940869237841736822700343795247156591382333430562827393982588562174809476840449833427072316645608946677429060099343733618520201641189048401918185832683266507744541373265631653476202846895873790225105968914377834730059859803385077884298866673282233253094883264115278378077880894450925478184894527788670305265468517120759628991929182206203912851339498368479608416219758274416470059134163311233425841634597875517790231785395861349398464694219695117607882221005335384054392086215551791678369754070533961349335428607062268207356092115357539731802964852163399682160050224698933865957634397380096090383871846466756011030598559495280080675930889505945749491118944298392590486009226571956206175924686195821024796244260611609788966026694725050087049778735751521717192427497234603302033271968797505117286896820510836827094861338125067808235563655009798943176774478162346263583067199220336894723480750593620134686182415914377076305493956551380081319341447420246645929398221487481706771764517036217664099583825389056074993449629988522260980491444749360632085905560654473530411609934146864998664865724098079391692861697387940538405025560946105628524657792963052560206749806640601233802439419797615209352138789139248784718405599133822980535797674299382419266350180668970988549203241356795519094278960884601320188364790999613752795258609020216459260119717623922955069692367623183150023404607730220955010607123990915241881539743065839772399674198504086603746350189416609004366347431128197201059494815610507815267506109700427233369903053903622083708653173379782442845016372561757725824001841386352931291807141807956858029889899773884930599186931430211347861493478723926802658107407281689237006393515752679963265152735922188780387457653098106687302887675450052503891653475829404604700580033280991658784122806017728740600545614101513941208067664226906900418963229144785267726299296095647732306952694702913662678717815788534057718246507329451390674851767660968476926359151715565655354572912050748961887429270568947524230139040294947981440217433348807458138896546904047399830752348321634892827878923953913093518617078475626579564830442710997142233343149613673028643851473766031017069458297709384397125655584276005743993032534437094578776632612325806184467662894540561009873345014599835220163959749531380226551879101667520067704044006499091341855978462309626007191772823180890146922387012913371825615389234828090546611072432351623821746923617579521358957676271096658867991074522609981946143290386583698576748370097709654237745947695253259344765312765070747827420439031057110345894782734327843421764788079874219020133675151963048993886797335110065130507621479409168890971078466449552060724226753696414401033014560156653944291774558220791329977464475605184673780347967904839653874393321030667865866435141354114729144779599779973106824404273351684977460281908199923716115367607647824493796046243641488517744063189762380993620006050504910126909311213180502415597514639316998929602190283898648551849080389031118384595608476178396414520833284978415011732057743407279529523201594906779841913293405999588218661736954707716603030700750477034431538888557619803648008049264962562559701306710830742346811351420889085703182888493833178905967948428914873019154147793994110131993212810659020832490985991218771665936431300315884961266637852481290091359157996729783662161385744843724756653544648125504870951974948979671732785608654326530500420697744792427813145150689840360004060535754670089547135119300091020539379817455197081033724106931482230782060357164087891489053305745798695425605039536671993613337854150923579538001488816998815503194955096504796103138347765703913724859220401536473530131935837545874808097364338864423042578484767462890581693354012078457964203585147319736706106419176348329359509202286943037498521027695147899528779369791653122526592784315356719480676609921652831228876315875457451734258117681029722310995289129361310789277128604167067873414210538670427801011559125839770129858665619825475350129471981981070251834931037768590795903664626348257922634314835158287982263164610797380053356690728515332164581797438643464308208322908168614419805029822887332951391145563483181721175640084472393382288664552590044376417157571865327007965273145345954094931812983357613663649756723397225681584680941335862284720722209983517857673643365116773680544890725675392181782270479372715374122718348800849415047511581733060717121046431858462300776732650875669747530193499906778001952835072334571524898177258344403987578336620762706871774290758663989425977884344440385846553640376566308710036155291098936750651549262276855348766954814539899317545543745444764200362526639688271835466302143623548870324765832956185475418841778720003220712628225867431686476618739327540816917319066901976188371992046351263504338788737694941343502182856155796298232564463565940763907176589567964574452447240080097795217939317468472725666468846423232042885882995759824270460953051738797319420052818167789691825491255807651419600075074024065976473073000015014229913169704906003180066541711198122105731032255256620599392464016564297024541313014889728434828416727899033214758418060533867413096222250449291603794378116610571451980732524886560824337298366207887636201978983939668066056510493629552695666273737901414730346184294540649890033051775648826999488890669456421474653395506118628080781487255905816818897403108690707763780958750179680053188246510483188938176543485342476704925273879527896142786353051101094646518736531644426711384702367851575445037830839520230355741695169583456750736178202479105755309033327300267041999481532576619915790560819008788726996086959968048835241559242871566219422538453310917377188214420820466459524991587117172262665090363353796280397864017889056677948125719144554396474598778434249445783024818137758615176914722189941163382784461586088788867078957438789436292968111056936120916551400331704984085322468538400709507418961780670359627893915363715782343249683425040135334184356933287294046466033624047254459875303154858605551054435996649585793721978031288107513800908536473953972205457119950563653244741286798251074404819370892310214938097581450550774923042808923958220308935793912039745775378719136875950465666911714534597655933715796739824909814530408338076686157164557283965847253735582228688162351171710714633679280804403580967146660003975289383959993840220953287681349427865617683837747716970085350726330359535188907127894467761085043408981727334646216996144352624417506813686562092115217762859539637235523167048266059762765194725119380338846855224853675058619715110276963610652640022204394617687034084546066956005623063207498684375089510310654597799074463747331543053434445221060752237429218497307809030713788119017198757276425420492073796962350740199457482373038985712341212169850307344458520146236917141345449607133835901585806428310289378216520240462184022116860418507569330107989956331860692455668390547517310204683485368835085552132059394428102459037407399953878595046423879413334072935639450636649345414244316541523594914911890778273679897320355238921975849894969260154872510884792654016929283320593029862208416843125055040594446969296139687317943652274944766457464878425691666327281016871172290331897517918285655239285059014680059547762525488339307808661567687273560254991696583764789516364783975497713979058425065063622674055141821471928005259298192307779146770871773716384910649010629684263775618498189595493643477653891136811732191591114500164801725931239708713387879625196445468861973441849469231711349856306012824821756802941401838597382949967717719545635980523547508926987148917284180470483124502979524501325170252149735269325964699536146938883680121638097332477269732406198946310979737871552561117569822939728642434322106020148346404831166593404181629513508182161090090221415169553613146739771588698561953755124208521302841679876260460708014035590143189518631405356822763042885807803057504230911837133647101325733365597774984593365265374702065201000062141164594527352799303891135825334539836262347942180281720763938905032732139348162089836075172036864585234658941415117490453576173029393020046574343918188774491564850201533392023441960060015789010726958311400591743889588231356659882743130346312553729137436619432107496192577100213192472384628088043084923627801767239289295272792365228154162931567341459608599335812264362125568964344144534466292202123974730517904982408533975631847157742549190334250823938498789362868899079216415160984747637166581105959792137991667830151513298839487830176462958348665903355799902019682891662600930432472531080931187261355089966710764255717097578513502507834747011868673974880862375913233577926594283668766407422925444424048692190080091989752997125198366163313275314323764112576405342823312388888841240984544478844983371225580476310370254484877396082929205362770843728792062143321402225405992542337876345322578262888944636685047459133323625414736438755339787851354261350195491130478207094696771483294205067471495125610031030266910327992532164198934175608200207352554932921517246211022266480872515634390464874793301372873202965339410833797631882315756767036000870910535772655446651399531316339637931562792410230841677013567723379679137130353516868395934457908669055479144261808549223725175362950758776459811850114660713534123866146869334302993031624006043833472326733835095547973934758735126064602937298605125381342422805867896088257735621251100170616424517903839423214924067017156945714813603175901078447420825764388557658149320652980093651036025683558788870228554540638160792941862774115322938865675142575517214646327468348883767132758769008504541102261618289834150645880993704668377603589903275794270675742294098108370825316448530428942749918300102588750394886307292139763550363741872679529112383284761512947661214342785429082375674740375274462888694680907099066888779988724063707436534055447431612652327900196034172964952001375810441898555567175631850378477740546253692975538876223528670293953933043943757353528041415126168571700113115241127654897629003140120961627995273882160819221432236864703201197579735462000357792885898063007456411289260867938773688233335088696979895626054615296217127596061179611884954847178953453092894267135675054229108227825232335829602589934754357988360454054319872224167580806144312628608800893017611026443198332226269728272381230280194374767671644584291275723378775543536816306539735410902086594926586776392568430806885837084290309098486215332473538150966241073024296958471118292914103872269336222256180490167562311687219869938891068068380489709892334017793813225160551345151799432878904583834203661720238703042016634296426203305152713248979077911959505411931158711933987165260181061124485138915048532570944865261817219230974342682420939084757593820877779645772449258350653109151737677228754265562622661942949161372531051657510200769953319573660896620211365670109056431278251145615951397930381030361544202860608912827111189753588506506962236110308383535678019172182644274006428087903973985035183039071970881705847573361643334595957898110092082222384376636071889354495333320883577731257495990226759072199882914389708923956741910130110984476110204896439124453987917805033896203891463311876470199143416514972747999239949012636237068273301397484995779002729235906543154195425851213226193491624934517297622539664534706235202083075050289180460756139524091706848251763848221795016671091324885544161114099412074604786655586371589505697880331343055594704245603275285887366572159718798313174373909932005760499208645959001970093052424155038241886243831594808531933489996661653566396552611597711924045304247944709386914014864384360912360658072756797330201927216066386778486420787823258194613504290318077648327939070782806666411818386873928204781395254824593137440752522872732105775259927921336304959106303529537775093512487517769217423323842797400981971424238457469859968025636156716845422380327189681795119828427151434657684184892170713877226663795586422547486203733254717520101274047203646414219754792940914040307642962889023468606790360049473000247195880594148747031859092251971067741119283898926642006371383024693012859864296557457001032283230283918557541543241166001191870653900950066677541743508336795558130771768994750176995749417473864131505066472901542795681012832500656877561510833589377246237461902923073513663208524995154853849177482407836918507672370755419122882524028027320686621400575578262158247473691158422285782298902634149072020910196605960015264077074742874315599083315389749519018129970826586006671133456761948169142561058017088944273428553072545721415435592088282332940671151558449644840225757650849513259344432309727646897458081971720977327481705104477968262541774504366623898927214513575619151415364625425052097456494760429351741074518589522279537012962937277328081396322220598423092402245573922338938896815406182166444235960520231045365227263211416349705462323243883548558346112435485605928241372519708065303622752123817061469042061943328488317009267208511237088736793696853611891987142879545016005865094709270459655296871106092073198162990329262817180502138991491221708489646246808824793313345591564520731405592831878779987179848300384345842005499275978923152177434852021345025866073570010868248171901303213036459549452602828592108978118161230388855597751193678103227727102638232630243332194267473581393219141215277663937665952705654384147070886503913703400920159685859649684630002542295862840419681039982542350805175488547422055511876371318244449484547200810856715398472320361193384849712767450687529544218373872228005387687103842266550823466328802392995548431989639515099359625588707658137192745057243285177797154047352045530202402727569063494566739018018148716715608398081539906397351016905480581898750084845928212762876262720039252348798326435412872331103419575872864186095029146549123424381265949629774875096863895668041283549420878409594879092948583661828926709369135090915765045339131730852419346293234385181550402671886627316908739022025939790526462427538412367052739113037376939027233634241820714656913721810980170266881915962869033931802246600108807901904208325139509149568676465604978443630595293529603007758568716695088331244919671738441540389452545719270775343807387580618719541174869968758277243758661899531877828271598266396415392459681499915762315044859175587327994378365107253558554351367757396053138400670606720086296013553944922393119934286731694683677220524907133395749115456129653429499239673382507567598278071932335187757892152270696056093373308291026153768328111492229907424259839362559584738909194326670292989268657879298758527547157233043759621485195013904501486186041049507077246896136965502334527903446702810612027643530771780328052792608014274190073707099451048492152509792591822344546688154030348927019037072631065854648655428658828365576834394089737527450912278179242877100706730340432529739429165117910821950926083249044012800602430029574220469055234749063867839589301784951370926048707473223968619946217533220865695771448989990514943436595897779648172718053393887486514001152145471748334401832005144650005868637773829692030912944165658601693580950000581051546048721220958406193818130992197685930647177723036088356641088998058740379556320963036047427428823797299083125620636693092895443030671345228702570632698871258717795643122225576019412596672529997028706092119840396944405931062118879429560270857284919054247214782213244637082012701174048897673806499834629403001627983925390645400042316321877804864154336054786315460388739495149685274724310654600328729906461919909597921752335107167675195489317469016265372216192265452758822169595445217583112150918721912516270117285598554544414836128966006463893114887696784727497297993741742723125452516654604703792423243639571491865466626643564931993216866144526887003265846028471281436218429506908304832770995108820963245049384862813334749824423562489780309627018632178334492653055147260989781073264115914886026678963266689012231985786602621105887719709401204168452334436199706546108311254919686043543241002881906812148490901621515769352378794328218051147773589896532469945627082237644506779727575945845244065477914606942338731941773031938167853421247850837870092727021287764152694616595291059585417323642210765619059813874194108513607886285077277134322935030725276762042008080973785618731875123711674021460032377552109060604523711088616775866787101702472867470423641259158170664079640238335375094003548236829360074328110136715188186726107145427834029625125955695712897329049354200197601988354237219006047108565311628893205041765449211445252522146065395541099681617926032401828439989690051884177771161928949642079473832896344204689528168063872855069114595807438580356184177080784619080027253888673391758430083567738277643110912261325998053979556917196241419808539558886344207102790248086944962850810445162810057843172516548023089494639326180523652539556311534324117120890598848474272284244356178768539348413112766828733130835790048301655164089356626319903526384892029455983292630689980324450351185088630341281311076603106502775370120570246170472152052860897253467363751398880659997081259456962569315052843454901587546087005666393966927463544115713590075971713329643796718364582837217748398672202087516700362726799580499826981351768914379007309622985477773937041475351371023446803040345563088894088642039081345420582949443922069656951840585525902029844543343481935882380437622803774264425643181269425040260462136709859679519823720730689521571730527980215567594404962083971744032131058502059323044391452048313673353877894148838422332865606828459872535610564014811600110874639000078815076714089723518795365101158790307637496461374604031816616331712323590047106324471431657294924649411900901596209580261474819515009333526722935678335897066965976015056030362982238939788901632259603959789199964208273161080006275233851719033392662354634602828281784365265497551986844209048243736713264957714716660665831173961269371627707382768091086600933337946742864718495497333525462787932910124501934622986911776135416763451326866398948473811627621357594621265371845694371117289516434256510705302034378828141924748306038604069378842522385964585832894560555188318968694662941650633561656636244959607427643856630726680971032947313285505261096296250836390055237598744878050938386487349862399161927939349535176407482806549911735704376763671713169759863356754985187226754007378840434712990235819204308958846120955605722543060157392871017150820216369426681178917095254344036466458271631664306771170241857331035136219359098393346328092428042440462932175823418980594605263778244193243079454608367808439202493359465528392563387883842365628711608872385551445556343804357639644725121727149079002964705268513320852335733663227707853421744651092203549458137774749679788091816897490404729008308933352191620228765047585459324638542471766610976962046182753336535769986312226256840334485521915540447480139902911356348532945320895093088337254529356275118497933313698007132814025956630137274374340767021771457334700828649746627234109983327935200827889849392366363497360087737193771039959132091599216648749109315725380506585118578007759224620604885873644591917143107704160569872348773969023031344445834310410938230257778943569035647631281350502644993024705288743398536582453150973051968740143669453178242795776013573206437200332750046444741027076160050426756583154038073526550781094671873753727000044532846438507685417988516142398811889864180182445493803761927909492830399214075629991699034114012448225158813726335278636201685946457154833242135447378052101635281578942080682385425160354663385674444279373719705800011347031331799242496280734842820808956740380916782948840701870685103307949653749876947210067027452121717838163882803828152567912740631624251729363418055903818663380951778014778023812765086152347243681005997505333040821396756086398900835287942930274543621795672004186085656303423016732130290128096480966923733653644139288168927251287476655144108139427169910192726760231612334897468909273575432792738410775204794976595541681206737594697732270524715365573576948773980640327542046046605271027955779088090423234804284472865274049766997347553358602683954968662596577066054085263454442779245170892315254547702959149170045052235082566385016096149323135450865565046028609349385974666298140977003674452310296494158547125604773254802548936151652758633897819527420342255988337304957234008744442152252235455101164442336746824517628908374040959705933958569091044545813639159622888034538388521084281896355028508472475519010796646474334740355556297195413337307333196466798389593354105246942909732281993443566136029597859467286174027771290845472581663301193076468749461537739012633808560286855903217137264252495581838883566222914049101187853699318532988051689526826688188543995655769249004878781286018116930554929275591621321174104797189211259579511076708511239602274387001436671752572202587680122797776261075283593645641256920846933554503330428047047423152947116620367195408095504437349052932077506311804721588979559821782665506862786873501645881571818833291834046773273194966774062159147873813799607095454855556723851892535076632579821503075056769632679110404014305338691488559730365045286612340605856650201860313110359855536920979661106742010469455609646007734218924054272513251495899648541681053698605454161383247816723083270912715026472457292926325229641410359052912844909467641467894268721932304775386949090046539415530103706851487507698447097241010349485012091837790377612812296508773441348260054284189072768701779072574418508215273644458432054318643604307168975414047952130918844960536447641832026939761771605468522831078128590887729365013497105919541446754492561808642673383750573578816533238969953087646133344483759461444088428058922796792448664482477387162362583494581275801460159186397869033231010279347901793362329415324465770575446544691545727972357508355546525918831397755069819705978868291970852127093650118163638816601536602151134734191039584542897734638041526090846230349261682540062790640743314362755730660110454810707060080360490141142324845932557182718299768098654562058762059751022024491362128648380066446764485172290201147098461687526440976487844690644122090823457691691722417161531499734026320131022142841324873563943561072803093507018464635159431359653218417919503922878844188313376056188669331401643348521981147884890098325258133202545017634077943925236232293631431963962839849165039407528687405346776951478502250823358497353865808462813881459327077114174227924871997234555615617638554689836567155212102478072376598831692669149890554197086407346267199557655908409869290384514365122068231175371111595996752882414857980544859572875761439253293528998069771744284120167739338449911875427974812424073786799018527370349642461976416883001423167284730855375930026980035950101132056844192051466090704312709544574932930737527408917668858399586490305423243140771278150332551467356662938881041524470614784062691825642353985431610265524462882354187279209228945451720497345735675276789331996106319789944304707498455561180429663108433207174337115255059884137879352666844488037307732374097637535984876678002472498976159080358765965273870347987213176294124025502926204194037273545452171360208628769176424956908158735438584565345172245273334905535841790233894621532832439699366366532047940425378399093266735748419760353824944244557555839567397956902661692688509436654607496551915545393706291169520253702324553121980970152132826985125369864170482139149415821613119720472605485658056617093110942384520132979968188206684023584376422705496524659047721520100553342935459240268620753591297542249371147100256846165771390586756095148270411112164017677384039992121453865120748958679340616062349466346251733151275017262114017353473340660245815018198041634439313888752105520496169881595973471304232634792240819577864098411718097397838119964918007748107751224685648081096461751938573482376015726456791393235597109839162555416741596065030594116992995614849219823732121718956850490862771198723053423008830339486579787810572481154929354803935522967365068898727087814304567279574768543944139391027547057907966793102783383218626470884793948384736239253953501851279957386842332729053752361470317506936293385873358811847851104359691489909321193982587746554998400456899208271080827354676601717350398876768585171338797003001160755063296764985173409229598673145261435858219002305287393587743856892881756503251314426294268492245888404075738360489591422585060333415596519066383520949342591087813415161760088651143663043592455258204698351918383146250908738940346374320979077560830970917622333103329384010700645888657329103937570684296510126827695763200415756354628010229998481765372534585011821913281371837591160694684136208380229598795858565862697475915243659649938873326607571368584413971213737509084795593478567805610689919680997195167627919994236615230126796877315722945191492591680465343252799506460261781419393718864059897415868776955350267417835833477979101100805835641543426843287923665855329527045689814991510452669407574819131313129538043563830695499473009894520022176263937423786432749373600543157893946500297797592793064994839063223350473515219846351753727593476542992518038494862015559186841103448574389567243087372955163836539066562195335094219281344649057884386145650153234912838235521693791617635370956589852497011611673265142281890414256395826025694256423981486326446488318433852437198046419968140649253165783300849911292646521010730494690487747557439634094151935939324156887925140854688674517689292868166961767117370650330328216365369268776477043588134068194155289606281130032387404017418773716604618803148556239087173261829886253123413046503596688792521449248323801653754841915214711331788732289894916285670747141533945082727597775078563683401084244176255747543090076942825585612818935589779901163917580847224830716863509731061642284341729358013705441152009446895994724839642090804024354645462644130620056883573298081320160227056346322651843323632378744167859792977023655804922730883332207171771534718200196047968366626797852724244780021968565518012599212873604792987188694068922166742623180112222197224965405663790058330612173929375364264661592414854709033166653811403105219954375754474079735213669666750425471512946040446286838566409063416356139523603484138770739140174518627848618906416290369414721894518052022017607090496620854444591797275294261622559847157484987983747670567369161054254580227534164977720727424920647412572000821783033164320552526573252836169940074059378684124381285670296473180495301535004424517415104047054929875403413656135202998824928052271492136185237786147110770206134801433531851287648496021831659171084758991470521233211563071828729467371955044669024469200761222936570791882884561970167965835978588502791255505252891701618239475011457530760198021674831247965213808741682964267692956770668180457746649813464835627741813000189581731098494944271794784089783089895791564287518798803693009759516791794352439450950241730929266978487448642833932410859434086778970288422845991781813939463374772746508282426694970997503283714887923001484769833154189753217018140515120644145749137283250479514851098627802988602763270213153693210849823741776944150530211460693823020357860436521394093308098652275674845358953883715927522389178100449463674017416902844140538956685806724888912590788530235632595722998380544781716403712695487079987334363089862675834873565543391374605763079162935574438477952424681858051930654557998686772892919491485996827335861469566906007586419075521115636949254866669508351474605678882456317413846444701957728157508489913268404429133544444878870140336711138958516655814452938196819988207864426277521345685946322644153904463355960632227647556582647164170241522257595912751089044412380700187395136878970699759850633050827746700088655998785111157157018407903768449874023781980383173231842433520180456238800482175332090259640786407696021521317089467098873505201180301270577381265738515833597492649830196534052173049495799598915264318057374714102553173778299582492585767982300586695643059477403619284152627029079542714829235110559787488560616917078541272102406951083296172876451271494791174374876563795161503098550572612714730537853542106081418443233333384296383327422026541509245355520260554762344971055143139004798446323709612426919874100987851647959625160028689319069969046721151789477336417690650157220825662854958502763922558574583772409697175965906800681938987721322090219893869522680227972907535019815353166556547563980840010861782037959684540749267266663722955529861792028115940821803217993060505935167797689320677828957998702810820753145942391705473279383215505284559381488010649504506974808448268625788424784117635327188603194130159104334198484777883981154138465055753258150125495310622117821171875483596636661516592016828871481695187398470484944847499911372858370070621104391505208923691929054865380725852935435677620176952878249174216640581740361631845568914730887608130254435737416283990739839078212096291533160211455155458988407909932245020003238846784144978149034773673936602885304803771775548263073511628308441321146727830625347352453075281125732079547675218440110295265772628531670830860839184462417513466677719735243648561539492133632367749796091634519595836501843224626992289260773649943754824299367976467825395084645235186446184854884216081061762665151482908146713036265778121241418956094976245167747095743123461732116541526045155248961316228969973137689803600836575273274189685143070172007716163512004093588595225085473153682190727407690168136083513225502090202551367860817727193248214862934192675659234766014456420189915551134542676990270678495363204906938779610008436605015062439785946501420278452859711605706999612313754381043862997273444906315010673638318161662833755867554635710398564258853431407942153907973108908106834192672281487251495648725270719877306911172570343470831601692115365628908186188556461607787512353463495601124309639324825333338924973633458240155216714641143602029194559640863201465529570194450516266156120513776076448138351764750071883632759636230589143203541708054919187057278980613430611291176787661561074619526349687995038536842549151335098167757602874335612460022930322096429232450140480116540691221042910036685672567511887441264473489488902779191520171551354693048518133714207976542482375756414029637205463612098462297016823013936341766618702807085763612287457273165388973737465310509719786881284405007936321539481931971972391345640849517922952058789335273394547957511668234360629330659898062171282849204287362559066243032875991234987527919755614530497301973862108934544774448372662868592574266106459616753592325539951338637170840467489571779759778986988922254301795723972064233032937369561178347388063333125698789345671640486340239045130316475409787225186264308185106854621065458813896582492802819081915196437682471536201220947429444369469568996516862261808261739181042249577196798079315924067003899639710934273295349210833878136122740211402474986390861684184045847746864237438731659891061871564289364564207129285870775557642353981080190040701668015934119715753766974074240402105694822269138390105888819341464233570440347733253810178191327703060209595784470906793413746311695211641153018751436049403001790637879318728649977431143676700774925917526838444241488903306005636780036552155087988828289425230027831741787050725440723432722848422076062393285959823352390209516741126478563168375643894473195690619523558573828403231823212873906143467618574533018278293721620868478063821561494136628463270877673041874416061977602628994744328436813539007828903947306816365083884939069378129883658936301655882356693878252054205041353962258641656175133888589591797948205520261587815077936428529049385165767967514924774495471218784872214026709272735473312460969014882043108143667237069853061437887914965299005973592755166907205453098960711239503528618788916099879037347624400700322529297702192644170354798443544728004695437680357721296143143050429014637256371577111369743689263953920572138969387754645678499666885426913133017067372991493931251126555502813885385469381171937855187218228505343057773943944526541857521118884478421255135685415188391104309183741316823382680887303312410077690595904564542534701683051467936380640141377345040377905124400516737924511268477630545028692100610562716386324235788750756069783968678483720360102385151126815008823072998595612839063278602617486729375969606648196421790717400472379370602329660755187802944264423993257986395507517581737756271183896493891948045784598748972544480619806874923566684178021122910288950450873462172068601916251297015939889688930667263821375272970733111843319140386782446807246612743077097864085266602478091723958037619513613753626190751742151171031302343640695041673502315372389689688970852939797440648978557172242495938816335881441729870613257669162222822436038527251017126065930454995178600513109070767762897958248438066920407401507100905816311177494112996687352626836700721423338771334261212560599889035034284231297200150613383602435401553630734354153369588070672777273262964893196285983018400389538469794364204022554388135843561953804375742111816286118199305260372230479993526176244400588284155489974302196644500881336490903487400891574312342922669019628979153062640315285827056193565113926917553381329339168616265516681186582458786393177588088106726094544800059806483425306715818491498252436495859127067413008832458803500016687733399429736107303186596214530185036625313616150514395086465133181792928296129394506182868708982920556960504114652464892562487211994835550646243763756358463865887923583054041817818905685243828780721138947917233254125672882154971467012906723227287281461849597391487721905075003071541759630691943865032700724548805326636351792112914176590962700310390472562204533822030422710392033552788111579777393893747550114048786177789069528249078141778084500568280765177746339979727404082428795881844206713660775333731115943695597316841342014521098364680929364001650843486789671562966550736322880092932722692834404701353817556170266522130883845687289826277723160957898776474316965536932894430167102431125539041599446116531889274261727541899169820220082787563556708377893603153364500895704971885959684906359156730982173710303226891953135794439234845706458229750380815145834132073629630071751585606424018149027299518872508541339060534089019620483007497764207935708804851479448699536246464900606132851890695398414306444479336115779442721459584810859425725430218486517401087113675466157736912363783464454240230679129539368403282169622297810945947043304958177100315869879711511194960493903425873837744076726764151538934719498108601598264171183974570489520402301236570317668806178195339928732773722357708897661889735912979137597907883213590880829308399003117948666304604711374367793146367422799200134658570029980285924722180852208951314211399049481570230435130413458963061535714291610725778882347019262004310737508059187463941816436394393305689495421933818045788395355412886086267317190640423990881005926772213852216151004753611048182440697432723941957898065375633744586358044746528614608130397760651747881552476041191363170143138088127525337185370371433013155053760156228643987921562626226757444443896272697636353978112680294898064583095416785926450530907529256194254119218206998308958014760038607152942053944286106424146118196061536334825243296774144085581769898555977230076279827274591314278518329927903597662334613246030819936817057921955617664241163875046190926231477283960583450053303142956904106007145427780139690958015059433016227016106216156517814910378425930662861116429827498529675976119094590518081763135991690856002729683296644496137172903759488803622968550603940689366942832827341326395179261953928311948497192356704460142382374106384099417840973542967646924010407168003439864627153689463143070084973890524977611479969715529371264711649577852238179995810158314869753014650539992482053365397132498011538336822770855160081024778243545227523535104764524197314900456851940102905398959252078865849557581572045988987405521351748107915687547735432110525721674653783244026233442471770396994822801017861092834926362952441926374008248393048578336266380141685972143268111585703067340974344539607099900020897344857417116798582596242543222341788876455964022355161145970480858500898053781022727247697323311906314984769369491611084030622555449528445500635803490610792962135107666337831347081081387295342790672802646694372478160276101678969398386685309422653198326220894301915824883025527891852477782588161288834173579617667724352040776811284042293987532150191578073441604212164363610942516641713619265928540607583277970887082304519241296568212401261848691898363980435703362260414752244315640464801353616693244669374812825874309557575954955730482837046371602530778496946985718427238923716819203160197214494411794394524427653722557752878205347277160070649251474420856982446704372025273315222051973204957968602220236774240559051584361842453870764441318976700157665781860258650962970422814399689890314405540319986602747109467814467798882896216875118096409097481782737178229664492697898186509220609654334675276442373016650374534499323505509913968623907513119745877332662962847211904272054528820637499076649191791627188858645740269384774495977323779701911720324433581275476583172228554912212632020246454362883643936169720199275741747703897789206797059497152240701756126151919173859743761402473888661206742367369632441219078524105528623160465064140801216918766706903429271068017117104711579538929045257845288817593125369118498279527110441545790357171254306642802754310125649365629625205529455941850428243805586194856175230882877054022069338969349308967720094828614744121996140664469138129119175009691286272156861619466200457150848433103464864963093202116313229473645892514515405316847298643220750741553372381043261483021312002528143398707029482780306326852818980429195160104791576118403541733066251299162508033892223638011238139803973161116133396028186218577282809904474408308133883929561395734469099021370812636017777819460692063795813860910586546151384090749731329582743743640803762912885349942516600422511669562879509819907962998224446380206155136243758601153141522167852520758228051446824020623884172387921545425259009181686512711860920882924461548634729535736492950411178367999148169121804610845105952512873466088230613991703442955057743604458405567514779408821911191915935101652178303811535651284338190927365536614091685620835406187686470796031202508107707503811412558827486007478765073703522850443248658016600017188191342266944819803187959352383040107536154524847121386732766727058730125779170772047727424883646917046075196669757251123097860106656173813897867744503950873073272833085002248398193231783019497430936329963672783151819627064067161782533642145295980279724884355599145748002550356676517768153243064477680279461529669994559311423559616037034419314497797791764203391071527920898588515524818726062985157588645519420708694728730776758288775956319415961326724195628678961047099169148817923705957976716576002628744259666488059635079707410187475793803579704417038832439063453926006354454331249053343497485403321647783123878860562110254299232459997819037872021884219442807642336747297065478702013039668742439479801270890075192938593105532805413648027520786736028774579801931118383937428044385111310757928608259319008807858189355720074795226313233110164492405198259320071186458896303396868825406555413607262400515092972025953702608823351112012762468711704459862191938166735482516345664012958608241231411169230751464989631954945802454400996718214934362593928882093741682874405687108678874255865046751960479233228982185488561285687855226878871481334488851553183202697287676601262232148228211528812721042891030891398047236411099811082117133605462293455301617675344123602344784125134601969557334617278729740601067890585405669977120475154638416716902444339224528510625601884788832609935809786903806419450989388429443725127975229522882684265627105780504475372692727207522523860962025673711338390177440517806882898731403569854836739244823798786319450009067977413465970125165304712825007630151420260136729276746806686205460430845976793428507208808139070278020124829564505101775044933102565516251578500953359219767485039559998642236589898533190778207177446396339915037089231519018054554873030036522547232515830020107909779184262242031774399532412256967987984109261829547478865437554484665818084512681947350822983934879075107623720186773933358857210781111042887309297728841393139160170162046005709778679276651427763497102728162720102350987104137869262970651210409536137409983829526557167027807867098190067960791116885075852957946037805673141570794665710165597641939952510637248054745007234142360759594242745979858582100180369934959225688245339588300548451069364288088249635388402849675771089658424458534084999374258789410706758900077692134954712817847925145079961864733981994080498973490820084470023435287268566074994759031795421040528400098739310877280040703818651701022446858285410689555757450670563337357396086643942083512029574037825114767747267969835333778585715555384886619862344676818133421619257264707494816189794537241574811083645314599325840004108669422762971746732286120315923105560026914314563302059774964553279372038015255556469029749309638942058468201315184541005263108091859672919305207372302398233587322310988367956205489008395741184584491234859741192500725113522952885002229023549061890755836379478833191414131746641956256458883955560453625344131224630862595843177016059275247018932843284524034620335084444875692662259604849820066684474192539353920091393436238543906595193702924908862812053630985331767380510314263493160836284772605774888176321595605835295655455952260870019057558015310470226295321423308042973863159841429263608321330258682124854232224578733991637428482345716631124796299198939194000753494306198192138630508009147588402743551037177354414091137459835515531515181873655167349183660356474859579466576315133402572887019819228882425273047811738378740115771117087256777711378279279791741282532597800874197289079802542748479662034891154544477661183421898479578705545532491710822368004436231133121844972243750897211728155506868415322040861131213570776456236490658265481695129268211264679588673869468476582999091429640791554303330095994805925579811963105105827221276472696297578605422776110214573427458523212834392732569267847226401411844555933277589576411018632092811190877462254291728985851404097579480582149331599003485515330661443369121239136800610220173100499114150328781659939492026427888490641229115789118470375183047663592462256722039091621121617510509390783583541296736462435210638723653213892176512900614463813537213803853284370959279280710849296028434112143694447382168041996775394928336623477700456548458483666366546049795100622203955895511559767093337730165389809272714247035430038504018768937297145777197519452956771067293807581268738107017830678249564332027841980700568615822037267526226955799954959989996618528945183425491979233438615520710380853608444358549374763899225954081019464670514122581237046877013789676204882748736885839929469644894040119575153397570270633109522195432886229251414507074778608164207643066061411946660464311124120916100292068739194394686408930999498830574910434302324247194897718094991389446374080963198099926956210885337392826071727201979908304914683059878162569698986706803331888531353462673229399797450520785114580741121074909856713505821097581857277759415006333994092053798595541801880521003349189247384034876586736245343098250906209857360248459297038669017354166330874375965835738077578066072499441536791469217346245222493978448229673914337655991668133148504493605887381241909233757968197886592830647414984416434620639596470646310522710690921758950824476115627523790973118907018586212584546360446340019829193365096700811590788648604198762256579463043489901063235450451580320057842662785682557870233979372804540820748892797608020281661872710994262833360394179297691061365268109354601034571335786129382315126567950870919107637749094717598925614057535343604761131869747901672075730996436752386171804226914290584046840517113844525154487284049507352167444708925385666588251760786957207968835633405198405772142741295095407967879012826264261237315677271064309938742940482372828186930146079817408987953653426371501860145388320242838641281260487399531426772940005006191761827948872254833910083731813397858083319542092898428348674099495960054088000370261496228123390056876150147738059678254248964958210987382431313873051383650013051486033885210915721534390274304583486828619746315350443304820442157903182566543616778821944132421466783724757294196004226847206051298524453069314288967567693909759076677981033905917471848555283144083614558656087807373501290862175261793606319368139747754442854734364833375936234911741107676857352536318288426482695734116634723438868104040354446697974137107300738558410786248136953053876098687864087052581276227075787096033682852099973311146254344987676609079256867649152922685682601144835733417223214668834599386584502197032041729000433362741405755912677442141202607851640003430141242656745730596154776337852104926056793295765706237271966467309708337483620693689548301392968825416212963613624655450913031315815220970006677512112113036865918603881342574314960926716972949420147266250878086660185483398690916465335410674812130126704562150441635221338547261170247422867864135359140531618929836368593754605060735637533905805455351077561409427436958484066922105877287594891431615456120508335382498315968282766409831902669111530514569935875263766159974761901610670471068979207409852168755769894694769336219176864087311385308468845760600191679728444693171225894877697860035866607832055585135528422196614430939343139431313027286596470581086291825961009165019088795332493301680571443971813424630703132150977081889382974404108377234272144049546086669544241902700152583650942701189311586072397981468615216359524276655556484921263723612963891264301548219207279845387634995810870476355430281809064604822161418536381606665451602553510874093993067821179592013765950711788982506410067022684793110601163506396891089744876963731861976111130183770395802212470447187601427684619227657863700817787392822812351648847166939944894269378582577258266633235836046490552642380054813150061240734074510096899407825266138758461407375826114410187251101892456539269677561074039115365737343694385403006281777196527639672635451649283273191768637974832643309650282997481973532631184297598177729483521053033058521808612776784808409516432084330994703688949018488268765632220721745782795344899938542254842567003671364403738014950280361946241777774805012271083115323135401754336963631716203221839755569997939761404389492937139763638821597563608412049368371479694206988496481186099559989370979738457663180688525010100100296400832222260790567708972843360828684956404225251218775274151469347019608632813945948102381817013288600471084481095887416502472794967205248237682188533963969985727282141807318465035455864148165448716836808699960475229726478431721726014005671985067413838597177373645790177840782736809263368301208918567280909423262343400159523926176431144071118908332896171754090507864085870021485614929173019704946502751466052820780808307963101770729687188363654576805175155611046551170796306469244279936766966922030148497548628474969138429942110197244251979543258166600840895428622521066576845146410775538332866178956387727499894107628024639886724452948218137955707714805639511895858487194829380501617898070353894475466324331231291581637930577502244367875601068486280209391834210415462075779889329765584567655893336271791712266720428420434018636459153985486136942688153901279825679738466241180521001461178107477707581615542704967167879522128687339095296361905712482983081652785202094202724570233034231374928381251502450248095813323349727803990716933759579777497804898693335763469874401617467539078969007966448198279221687859982952524638694052563392523169726641831492678852623556499095372728620528083856101723354742128448373076266712083996159534615896139439156602386256084270792606797850977229935922382645326106076767515634421666992775052073442124718758420617217411548527642610282078962651313033413793700700575623677870270537346856546125363754131618102488816569036930959682076480704019280680255825746325750033613328426317570188678777418292349911577398298887404231423190520469954364712732713451342253616466821584331351725960216290074664094072557616587019522944619381430072507496054469874989541480859888651449004723288522104133051724561791204836023359493455929064913582287077256595631689611017384284052644253038623652349357029989267580026098913793614283305770637306448965148046157968791179027443099396459740673930278750259901344863589181401784170358318247875837683295726383771946313421203700844830772422933169018264694346178805025787184048852288030457478602722354632857029588822369452652336326618968057464261612966659223155016669924628023976815542102699706683785224970333635339183271705202851257138017772543057678883038510556563516269334550185796363019107371535115457205608307301540998964494363599308539762231294008466741315521197333099461726952590076067572725859642010436385179668396323876290094076157479072668599767373010812208710011415172634039135987061560810016212861478160757580001906890874623121769686882473725076244213563478283701445510885919214667756668609682249773200377968476264717041063677646493973241899451962215913695387822698009725918510558345032318671835951640838353088377690338217989068817075877641712840607442889746896646878144993246616230391087645377282168863495334941998243536229995453308439576712163103909355954054163198668577181023791205539787310631881591365651972725332530241228209154955347512382260125309835243081850344771541219972023293341438524862662217086474276443848720730150664661127433690005463222232935478075241611520958870262047054237078248105963328596806268417576274966630029319644290595606929763705085857400518886946662429381037615451561581858158250040362945202708750982857522717113071005526014706772158149694660374279250679124607872556566611928520316587598736493177844662335313910752799582531794300419307060182533369094892529121330340479041961464120139170666331542080345461904416844005604455948600053999995481500878335373855119321321513503693083938704762569157016808260869587474312893632637384859221070967446723728821042664303044015277763114955739515026950818679787649037350748006833174415860462789051105859604554503721442602331217194643628087760126603458182873387847130007561499901815811137511575635932463650533264039098454797223323318641124639435211229243456608618445799849753113433043187132066898839464982110803590884680821170279779124067033022933188318121733870837222373872009311084109279902962681649558452400442308278063601066483453306598830201572656512781944981523224588497209805284638449162736914365817181670237469732999116519817372046228994941558822675964375893807242699292580900745774432206238545161299611033969897088568640048827870171924739737999612976916709616177247041932352409221766679755923744735167968382787551794709595316345223443875108823444853811506365686042014214523243789921542376969079954108353301479003069917930887935487988454832586989012070253332114637705490567582555716146867125347148606920448505537558566960126982462460165194880876048915732848945263552157131953873571820776119693037728082202486327419263044217610797292846300728208876339347797686383644705437905571464011102915981758514905175094054203003446192706248701926768262375966476417044430346981107790168415025302110375480153842028988215368627417834391604770327990618659847829910251148226947024588812265450236431322620858759713457853975136300728712211507691889070631034770060306853601934489787295804760305022927194735537311198545828254867493567514116257567093988564888235033665515810767132315898805044352866507687753122956141913462093834140601815313239506102994839733215995430980156512028885799683014908597790915948424126355807789043378281721699970888510207733278793203269249796833385355571703319115165099165326238846010373905630841559592833375108827591300375193692676318180710404940386793164686593942936077571743417544029844504255788572713296710320542306959949747559918497121496033463563895743877415570671437116253102214618532807859406135038473132746930204421373156225577126646199454438658753739403768733937989787078766694959421496395824878556874299268998382058506800845043850238931730454786755259452957326059082646178307547878329844878423270700426549829296466536318289846712337114585724826797423986312012591430270445401141894548076681222110968805027584625110907849058823683182682812141154595867263744404523646583415163793734868187148030776557400329242296661703094778111163779682399985732682985173845389389102611691452413166548554539354776760316428072519513603873309296781942740650016895699036153601819272438068116150959473446906096950715165408212512858534201744933274355728148090942227344526283638504364393297164482552946789493671885957667310742086161568998973132239068546275182926907876569267857626134405781180723068519470977579442273098857962043671540532453351393920255886664004889135095799560310176004208120974559058323741491182112757474646592597020516472851427241709830886097645251514070433373777823993961201387048531049492362857394433079629348231411666233923915195742414715168912124703567222636833427650966989940541668256893450431102913494139151525123152238979620723945543102135848727816011459533041736036984105453302862325111878768169474752837452488640108236797873917389868411128056539767642826934188873682751368451092677751635510294890100213961004191027387901080148710864774177668714995966281062479402964276566539368420462315633454996635711183540183560604511741944680726384214311386023282640776028531907125947165469018267034548091178335211157911101391459236640282387768911854487873257964478473495868091252294436525819538327048154149836214320744646885342436864652640603017610870164376293230595868539385094471120030775044608770760552440466488467614482263081939279493261713200922017883978678874307644202036230439156186738494812362327633875221522845771610711306340766210662636335949562271648501566955082956180590184241360743102529466649041263937149749614212479637685516900096515354623595828820681068163804633638245461629039611439629805321217099917371704210831304481005197537171968981612796076015236796637033208440571316268921922611841513343133098950900490682521253161445220065327768048661125354355288835249074805069972774258241057615774120558000192019817174821823195019968444765217026277373884091749799043052346354925042791256865606185755265630260338961607289094883700491734826310467912073063464968231868009561813618992108699687038403545817931108030800543081097668924582567513036026468577942787158738544857295708911364728686248522196624372356186018818724115146507406449289428494163143296812975484659981853548405391185524207873982562037518740497063866938586160158191972200530677271707078276277050696286175984492612975613471172596890710408492360202740695936169836702657816755550347437108398517024647146514380718125411324306043106082342412206697523856764476169619865736988299155803290995004312168489177369024936809429990788847664480112636264886132837023568806103078009641607481573749818016244355801833016610318039811070233141938092114313615904821362324473370445114950492515389834985372772931035847420345864206125808065493313246798959735280990643678411027016313527998855725738438545399586227995908615771222630052263732998238611205678225363090887929168413894446882100424774021175734522682030909420802470181658284696582221288634594156156065697184058480035439422992955045467427011383555193333335500405702990275186758578267570385221521256608454587979204283707430230172689896128484559465470272160558080432003709507024181539054463320401325679755567413817537019467549535773722674364467506302892121736708888775679605363470408420905684348524071867720326960074838797038996640419594856162913400510587854746334180425334292584244258065627864603603215219381615130369482871784516403138515001783960390732256041195826355491647011396787081035110415184180141271064526390838464510050589793173294268646025827858682114874859653643244852133628674174639485111319712888981139706247695278735547029055210945139229349407564050687253450035948763011783929828270416605232994215483542008689695103341366322294771534963297024846335206991374248886492557420816124976989895906668797426793107902531345002897527248894499715029371957522338022528835176853788586063639755160588426177988772808144402763379614054143510208296699108752433619558157422010103366886542733852914722518751970410345310537659015157947983287603376652874397791671636445056931572266408795463278235910671454490320175173296876667728679105679463174057561500298018220978651111534802283324107808366938141281917772447374115594384762495069589872967960219394095951164639799782789835785455278321889013204942054557135798083235065924210047218476334797533960892357150382764355502328355761551478569264491042226678000419968722600183084839353547633318808511161493558501687435580470010582315124387298527841552641736327419642057993239758557195657490855078986679178443218043906639322845417600042459037795404786319540145518007444087095951503634289184817662448364852276389652772106214456684843186798284292204769573730620928961718467978978909327722225422927858997912204794228542506651779824151732929702933045564859375758142967995235833088505365868096687994535133553652355566194228360985807114170655807890818669906145727769548076227371392438615832275371355855262551724088698444981730037983853258081840580356443830454468395048533363628851438967213671864297073635462176455221059550006737743659073854369345491945681118767514068552952414983234449536127692735705381328393342472403846068595667483553596966692403046161700197522116207533183356415530799873040467195298265569818750228637859319054706539523751089233913458858173800900459241097694725133089237451112001824966198092018827687094738832252902933942983576799960052768347890950545563537799261258593897668684533356018086284854933660406906975954410293749887064027009073997933132425401094751641605525501360898266567407506540241399164694593982494591094800004847299423446669401948505030239818114559464191288639809769795375577495450845392816133759484773211869026269537299181364071437687880468765275625884815682397959462055382377346217685902456619044944988144436661611680685976072229716066687315121895626027379086224153295539282843409779652723972751306336471770530537790840752591773577246714390269166216229282669530376581150343711953675077936872631221038910122581188489007563078506483981365486023575740066934689958989564388575900972072956385103164434192576770128677744443396227063707084396579432192544254425469129942306637710799446577546950156312491845265096206653787616198805543172329895124041296703995797086816849032637855281390219251818289047804772156368230167815644283734825840468672523438491216261989348488667864611631714590651042004114259030350843593971889880747496393427005530861179275384901123205256986716464491992221761768800800288129108370988904783578239801164629480474222310507481102019984555650066534017383432578521944903335724449724905930487166358153920923788476408050537368301794155389930080527300509297167635087720342283863431975734803423577756089544461580426518628302264196976043602444810728710071246758651792413622799289650420420848415795658007409847749497280950407173870108363647626537865103396067681920188391766447568172080566748813028143721110080611319759829104568095982869992901146525743123680574107942942048940991297991122195681714130981473510140350857113122107804289306790519997644850521992817962525143717855456344037024946792329364194847131751595940754909872355329376969793927336302683662748755243989708278758345187132621877153219201374904265282639821432401313406163459368012783661883240199919744554892363426172551418892193928810031844068440693069523561612874042589092697834383260624091665330470606338492462855499325979840039964548965150968827601071275590055124366045388287683134683259799987453510037729849641316647997647258594659453571627559634187574999312410328244870868916983219427603301468876633848766388982674620541296217391384853332684546374797145813330013805471513521821219505617383720450493074405449677987442174789673102839683638427656966953686198639391759957141757216503678958183018637901028963339865645714287872210413625365296480439914126838380432717785552510540228068137261460071092682277177824520887960081293424546115356237034075455953186095380154347376152834684798444944102322824154578694464504570136289951835449609923660520295801754300291518170547624380214185290135263352864983143739800043807614359066974269880393229868606320945030369349625105458193973088068214143287459845973405963288219265554648013655229749248418417526251443220282252661050088330976390766316322922579474416528752189238012422062067425823406548814683412879641375658689202344055985735625651541339282728677464820194813824545204174844987795132889853017455839547090699098345402534444006912741845702174128943451495769454101133483256008679735143143680023801417757497097797727165138839234204891626768774121370471803628647276696259193876399264521543817718283685253840026356863496657498046107221882529097597121849140155614356127172537007304017825732875092144492878913964562685030104262742027766326487345172309358241221405471325557544234130790066421251179196796048220633821449611452397823989100949353800351376008387571902214455195880400351623794509145000372474704130092724063107567516901207617100838535684946225939698338351861727487087081787912147126298479767940038162176928831647839566874295173850923205418815090141932617556334237066819874943059996527201805250130165239718392524279261874301439927748909762486430094483041386400801805585051800707837600226272809221061711755340168358477100652915885104029278304476171282561343617351657681027669210911292652318186483183401914044045507138124046489249332119725701487578028606020062492900333887917557057543977017799183772993970987667553827078299655708574952246365741505387607527813123286672875401160171709826453309288021428970653494966243739688238870397780785535216161173924139541081359040242611792783195363259377830608752007003136155241681063701602454611370799403270594596759150141943349864654441920337817627422755606490144951627790803062662291444824714352632712755487083467661643280218443362364848259644948515647584865611121025915054502004495991454001368121185996463125142476406509350140502754760013248989654349661171144398202220564934392211165488505449548443120004373160562733355530248003273849109104292502260795851825412327820668600143625630505332493275674730350679527977547025731784301334119792110874345770550910167884144387960479374864669889597055961722868994505118957725696319962087780538406974423602229673492108599120999325360776903988966047106075952162395721816275420127256523045566247862537210912059602392369954113742066370793103087536407626924059272070764066475733440001133916792200971252368047375213424268902973354309742345042695698324134654597734850577596687650239875566335962472442150559675197974409565241027704458873698741355806543181896729590792486433671797062708763986514427241848988816284034938511243122538264398635505632049719233538026233019648221907827657803830425075957562000272503800692622190106563793208258245645406027056541220775884933932679909662456838538964959780525685736140219979170415258500302985689845680240774527656984372658920732706842876049990365532997003966175777498801050544137003299376173046411782892069322106164483870173235561347544790047971959932372760675774239348739607246680585745835410125488380268130660345845745347944701121458857321939963173572392128101493271351090631399309786308314067171108240997616253334933053759206138565440020484422556086052988013088154903783098637981367608983144169187156257648110725361956897278607390376922607305727492702762608538375456826943138046474701364265069293023024396387430287610349308229082134962828118048392251124710806163023141974197208195368470107114420459327442751749606595497010408888617613684602868836083895226122457678951810372561818782074542388623572872671374946384871788368591401127917113294824759626928719857177481358010748367819296445681522932045589721696788598978439767772316421434735841243121405059292209713728419935773139326806550598561007698547988292733330466334734477509622586840253128886381282474996565165393526447689666099622483702536458993063197540720892864194982179513325411450241599202380819070447019829307006806746669320908103006667958481034266795078969088874696199314632768210473488196174263615833860316218710754355229808713619329119533734857633301234046557696408037519600899686588236453953434075642276303396923989436778308793962200286388533002029840094425583873984749496467570594086721802764347260123092395200505512527830997390712752152296150855077015954701239111826076940606567908804088560345258595310887038806702484594880429154413555687932633872238984444048829165106935924376976063267977526501343454091491725714788049293114125277578202591470283818739831206450837462456416541392152029977103182437520543720574413471743124353085181191985560301466784446220353685998722916242420297183879518302722388958171379907005940062706944162852480655922681065147966691876919444967373584841050092990430571720719195218772759371674635139568833738473135980658988153272103225027596430629917684720438692761187488827050259442277447010903087266688998192319598140923543828293673302551475709818539459725234335009044640499074468065865645778659438613171196317019901813888396532512177478901261716255022304212497921301626441930419602229211328226865056439536384546284776962944932057046504678320299042644717642744724108404068209731110457503411013849765189116333151886328540657668282186413558770085377846655226979304030509358293853593173103094626109707986443556633102805338409039517307006633648480500987580829864272266862943848947499764387062009006211676987708551811465063862640719917547591545557209120904953400147226378695451087294448380195451731983512798783188580770785641646077502354165619998183551818294471902522652706873938936572150054778864565741566562351877994347077496559326222256583852842592302750946392980391026916678364395122375476166773470337537466217416726597692909900046905077745482877357598291051483692660568470255839789426799627475923188553356835770374202345194416919378719918166257876546758586210299987509823838447030903890080213489300798666545628025045804658977340322794961934217992768416644123656419019265857133468738878334936635328508553724123384671173602672056984263781034851036271243548994156741057746905513304872505330031880487962256665492990349462031284161675420670051564625824625788576146403395176491340395918887949981202558363840052862167308841288550825667869907693497303514000851828360829641533592660317125329013042416537756474543153925179676419245442564017160883317285092193203145982381756343427620411209806386196889834502143403593462308984637041969094818245763501408051235964233242836545172300109862841040379128195069943401377010847033057965475499779574687955453695640573354025740939777900939736506966619261932953929158912123740307614019091374083998737381549150349575969270501199333504917117136689055939351933812858733689443610371150870082711411192843271969085259195624800311778865559331343454039081316951847977673985056150336485571935271116689716749292668145023030679942957896341349948764951850525342119551591270341385067493512833416096030619383931961936242087455842102242973556467279733237361170575732410512253427502291652667402821669350733905936428339817814855779912209595466450127012303359913523134373296944887793574850553601049432081345543893382487600913148562411026121253770600547813052699065863200599247353148149171120939990539151291744831725919384546361956150380168642028631909705084007366708032214695121441879082390687607366781858332548653892722627203750322399921802546619204110538686352243858981871118130451403085986142144983157228990762921499912693767379263196496198956023028043500971465783067528506422198990494320976034828654763750538041165567625359037216065084513482926426296857800483596254124490160720981526507347536476760739331964555986990217530869379957957460663018541544844924296863998664303473182805435097682630025599116968918615178943840552210221274734418682924539345759428126786374748848275465914951826380881882457101588540355073565729373384440525263739104678872480650604281400767318324680213631095256113893951361091139969354583925554386372297705521015729573348655345215097158955617612998735376744031401167316416063836270566229390585660682752587059679157431008766838073345104660138710173308255061080626222309328918058283497544899949721388990783946166276729307840644034914132936440553199678104745506364851781808661242250471757107239991692934097941701784970796193858357871905732316814894172404603361267644466791194128244458305416007389370405915634878320979505921524870241296381356115115217596328101242662673710498783001122053055041994349946932898085185316756162099798860831962064350177222736094731050423391927567310173018659347467034733940879384649692383853616053741157040250390484008513628543241609046441315522578724967756683227562470780619122821655671703245308612549559469471277404042674750431625145968281688082893258561336820077864923151587165942699007276565291610958576335222168305090434440943290686834225330564006420532449594725393179454281851041171442468057844657727569426585919385474635496529767113636326918077483469208473106720229281569146047772662769956398677037876731278046205178964689203600036337432294107961141420274344041073102065436168797480719394477397012981748430971756688153548808901679415240638268173067172333664506693594188427975710870104761146531942167429236302959664635125699171855788867539397425207429680631326353155997100631694316246320843732771869143045569431062998739657928195330157746496700615766058186825143174595300661356293695534910593763555059474477131946213141330960066866299779361625143948303451364842072359227776151886891833438757613572289386644282652014319396743793513347078996605872636204523289144077595374022527421027455776666854778824454432207672769240225083461319125699949492615293226987671611077025557165542475547411945760680701123127807922751691748464998347216597033623885529386491696609455158014731998118709012595298308995039683819529607969869872374129939074906409497594821226695721584385832165677192785140547175210977276058625981626187847967156475289321534723433643697927279675028674353519637508920197464413928937641801530993367860505552525975922250462900223354735979432318542440586673769643474249655603741422622485844192208148615578512252477235068288158635098882494233408595776565946179303542694067095991362428486709942333411885897604931896209457253044865322791447074843435609253848770534204981198938403998729962988603209999151866112203699856656298648622163571791279708109218322182160271533257174892169887092087138797080722352570285064875490440647685630713063924491140694917259280468036582723145216339420675393363547438473285611939501609377699429988082296576956343362941555051436283741142527423673987745794560735351504826720651825730230920648033256379890012497860384725808530212567313044090772810222953715542011130974289474181110289383221650838019270902183591402325457320724061282515802484256655245464251067996736106365139747227805452793326746848683716480150790805397490415809402639914645854213996628847129761204846033926411571641711363510365071238637169435048839025742575446395706884884081599291467698937680166652659669171186238793174360689088111837341804241066108189924110239825688567869534921590091989009592762030298726584259158400066478566271423472040268471615714898743115453082238062758684708900435239402950656938838822616257660548241864018237207828359458283428746955861596248208329087922383110437146395734280735166694663738417187367849601456800562941237793777584283800199569325094691355898388139887059008795361107458664826389151886896138646132798491935312896468666966745108776262741800026186041298151825845570494006944796101551510774503571111029668508432640412249109976686387262281119153039927038263145949543054314298039700928373622880360677324641766684899775837154105613413856908256772620141377085090859876640153036031068209038894611296722395047699502980046162507966438976823331999204411955993172036832724272346015256783980192393641030498393483747581746639251342062560145593757189405736970403260271536584916532424853686827659584022821527426429672027633467592609653284025284318770648008900849486939976979128587528953645740168598982824665375609896298594381150750487361559800597637646530282982204895054242247044520167092749493345010917982757986551346500087905586636867832536211625006166641562890063561426539499261183029598422912667001990124599061843491002728800463113542292980267686900726069064240432778259734953297073617102928081408191026820754131325360363606812833603182336274780507285380214426704858180665169942039652259237192268706105802188291862669388591334840093659717069982196176529564336949294567922521457296304321012656608210352702988547881395813960644068891769008670442536782443124022572131607845502281789808160255183781692538984237637695225487768064599973549032417584394753270532662438352327479570360126924620407499731633827690551232791287143802445560103697151105209019407215090180325324282900003857134470879347609023565467865322292894050694426097843627054675270054253133621175702774992116260745220482094151717415833091068541390565994342425473424592367047089563542558902094776390189656078020828899182516251354399923319560564617262592940730378949354600105556160172306882307799044282360939079575769838818672994744483460575542389741307901286556007392605970651648275789308663905828643908780885940815402676227328911854209182064427378829950241014431948676032170320147032122371958088816968067476384895387442308572149002069396467895430299567430472152692513637002512758409616800702175344938455740154378857948594960086325790572066165684403316950583063371275966013982614937602998271691808127310675105382235031112609214445965946918653775196766127958564669850953563261559718735737736024415045937975749759522750320635759301704580674535789375474662824348450989190525927809003650463808316535266456759532740423385637261453377033430376203200191083426870799954498654962967093377884912608113806006689817692074612748784575724460409572410223951850388274597725576449564923289299845073651133445230213776355411668735597473561967147060306301382488982211208414881160367072064786012488610496291221209808584151072593212172179067998797148862273188580566892203650226138522872240616655382449230723854691289260328204852223893692663560548748195067271142662213158681163920424378391036998318047434012192511769971593360995910083401810572022216056368548954511504120039293875103012759985825731932095402422527083097865230400371208124706909241402322613203326825828332780968362764113665571430354191589299835043979230370595707257227755790632704042312829705856769086596849796335036764323319494545188118261899557346956217145561790894592056473598494603284469888526287573940188064407158461650400617786449222932076879179496462566890794923452048460142720137455298256113949690621409525147432657096921060956800745507766123130352683894345960380583515004276880530672703531756915457249759988684926476297548604944346134179752229674928782515328614267452582594654103139153288108918617809378385787195226409068565906329031068055215333232473984572392953952502643190989022350625217357921638745537116448250297950905587796405633268901174920237637296262674073815414606321047484389644352282435085914059710685406569942066015915171768592542482874849811528824065171194415477787864001118036778440995753193374450954439107298745031787522814676384405129841239212812699924827702197836149460775970437137819241858036907969655661494863314969997746093398626789746054042761972254852737157625873285411978559529644202388243852354416612923047796487516698206614557027153533093115272254279418178948986155869059712439684215627561978034647327379962446024250149706227438317497951376363778725196422069975185636337010365376434566722927551379609501305793712035650183773276536085471659096627591072006735155051224052321545198594823338390416330569325692248723232745554046477461275613732673425468414913784567019503578491549624004710240531100263319352347811311233440889254693521261380228439995833630770120501125482893213477084606595535316374148256537706502585426049208172856716494365571735875524014899504800146610310737544179291931902630776339948734331753156137620691621031007551288582773882646329813391822031330156592986505895870296916274086402136817826500833537429743034212779286849642145243041308248985900479217248505038256147606572896997524519654978732280697280941990802885702185453807755326606816643723431813003540822692415904785099542370689316277439656973935676724410391820065611858481431736293531725991049912700544041822847132963317481822131066817047405716190524158855469673965169762890768793261848443802670167863982983618106661021959492803126573318813850373853760732230256744704014901534204968064019207353108751610287181289905897650717474505341852194126244021819215444025772608656448259131290981197566667947726818149838107697488850927805741958767490312497539685882434735936546453300771761143080175182903219219738274042945737348662995625321871404589140931528143943955078426294524003819007088338264138014571406892257373804985465945049410754902884937675230405411914809430776368204594185718810104451363866216870493864592482947085961683154172288119554127725139451106463597976694508598546664997945510960560699460266161066760407293403143902409590076832920575321354194704717449246410884898281112053882242915843207482015195552593239557564710690417905461543939232305439617744749217906449928057532591494239174971419894174038361629306202964793107818017092664874582816128828393749314253151331481234844077223986137113938179172591051801768961525387687265381700934919558854804239395553183913503617299104208640478948314924358631239081139271202011482883646002274604614299427830594432956998092150024454212132971567937453667080890886027875930807767442908295030332101633233909340582673963056522290526185919224820530015850271605511160371995352861407806944395912740217812536437073538133844033315308032698198777865651986800600553299619906897612563755086522758623803500298958869560804188357644490095671020478720410890465874598743448225291428476268003353017032821868037531133996792338319863308281471187722544450482109935565326106499076735634959907682491754144087410821058399851188507851181460749058681728614211600862420232252604598847976670834167608563101097597519225197803122081769272934640562570152784921777585294465838020995333252830387509413622942387274399631191915225951640952278168533561673062302782360760325831273124995346159891974659807865466253761590891827344259910955057468191705277123200391824367025655690033893507931613674180793099040546712972174547790265256177783061939938211463769919953268573817596404652001945840336857222540676961597140626056920967138387744413764345535170379289398772467689994716142057636202374071853394137302387523562034599255508550330546615656542622719575284262646956765539709636513350387584269779467903368236522913569838488038597970395105360167241684572503727868793708780165145278007714927479530878867984858666307558626326378012573844841706427571400518024052775581954864398872405706649213772148258294270606469311050652886046390742703379015252624979441834342489591313836004603982652927332348092074641444742900903567051582560349430646598592709182668942342550870745328251877535170886660349904625880849165918411434274998008934807707275141159682851999091345946140603397725931677654084202844445563929603040101077233959043346758166352331466665038279261046603477198646670206749373869621701537107379111242691833424495018133427781032296983066580662694495396210389074420956146113622703777882041571536930625646536082704613187304570328087202495377729991359877980448581697959467730904325471271841759858007721618601088997218287847502618070295833057659902252170987642782393305415035867307788031161262974177843632810208947203894150638819179249892743917682499915490321752104788804753363268226869211651199628388948048737397593205722805515733669597433000235291394381887326394443557597907442495074671024813275149085588476044173219243098130690221644694897592214920156082407662668179380825969493435406699372749806392802990124843913311461480053792918177455894955155302298424938700300386740851403257537166811045973259081146306047977509073031875655928250861484102380790710929608008893147318616633167331555047909113122488588024266742660317723192787193292669489347100645944609007053945784712849115425176802921502744035009484524720243330361615564227851512854966161816319525574009044130500099679064834860312438877818925430158191228286208569593438580033138092116214628331965160661361002593980128315846102502529065587146834372662952789372715321661381248856939087710334576833068051183152647672547448905037820764179523753274473757391723661791718550343935462923481256743573805144436484130654973699078808818245178182113179567988898597800351046754131128170877683674847650538525733272782640144973671722127905983076399356789240002710417558928827591440576044802886319249883627713064277761904523700368045421706963782589500562883222788927920686211747167180147447471324454445223280775774726129341234586174983522079414063174683529140267382328022816956825850941148359818368781429141262669326577956374858046479228947592060605017060685353407586966665278576794328163189746945417854772397468139031028210806753077098489701126137873353166979352854740767498034838390595584982707685996762913419375526523602294791531292420056190005581191360766036883722320486696785455159910835105988817739014092700110595795258046132566636444321803040412879616871997962847862820739322305534325633930242046235881627529279687501720109718097250867574449894821954445179544898782417070544164696103941950625878540094265183700446446134933406219929763686412825082885309384410780416303721959862925400738837043623405897289078108895867968741513007694844486264464406382167035027892497982235174385622769860717350346927973308273466922813358342655573417681031084107253558744929379128945643446115691821883510824928527673847950039253885593002741471566252489886092903673504274251574049991367411860727571362514756783596374475964925902756779012559889176895251616897625776065997500738106886506968291116124593009843424128221712880494544163746974870941260197906053085380777251700579697465470460659433779864583382941768873051696220816723419985151535975642802423902507087361199977305395662155586880947189958242191987436288068651979400443639017554654507215367737607661173670928547200934833960595852178399544735903897362416720427668251858690395593527652631670920297713920084714137509558849813593617615286532614272535908090428495981171234142853802335367197681869932731357988832210818786225880616017994475827221560909912322225784971447037567514059763044730043961238123714817720172998081323441333869249786446901193305783944560257056231576969644013565137360954219095352427312556381953465541893001975114947657872534687045264269831411283260844896978196020528244799624836537342683872036439352271292455598651533237032295938616975383838950001657417712255715386721344973429632447514557949075423869611384304046487452748997463657552371141386525303100932161997839265928166820259093089742239505162700768195098288005886759220444054271719576583828972009269272084085895538757364066293248426461621670200323345918539526529783943375545194156539929252165450832162470292304110383724626814946745332919259280049721790603218491869049711020986233970645493137109327602269629529377581535145470015402733152943235677171272827936113371549528062586674850544631252355288232967273095551946569802923979416995954841200891127993386490229016901831928952422768240255718433331954145756029125581806459457586259048504279580844033363720699527925205952663704250264487431227505065153191204119764238448162360270507944217463122445089454201245896410593333221226770618759831111781889381406975074346107405244172501066014919420870182454485755529914735741691930959818707310012518440347607113599912262821084185499485890475962256312698121954418068210802226639419916751854843197176665823848748816532483456560009495174595080884747753047639125761723602962894339607193088073724884174606058038233859309478023566690695840561728914299389204920534172763019645667999889448299423462686661367073901034183861302379829437893454880793233640647147302170598402772161395776435503349189035534912080882321167171592524495610943890053925013483700487036709049994507090729367643812809456449760578139918349902720594018883957002579180494374693452902510204009658141981063688761276508194812372669469603312622205679107570631812853066367012795825741725264747358078737217264817020832359859134980118458043519064623090311128863817021978797117291259971800607445943438019552510792164681160456234710424805168256497244008209476113863783383518637200330310978137575693323285961832740033443266671332647091707783194756015018976060646742713140345427172976493991494094456433435004733392019031695479311468112860109255652411092714345701240463570913001573815955584924821730468920344978154392867953635426814654197085824673007994058060254485413009331018625983244585292364216535084503278706868730330848067573464699506021274560422445355066246442652277996586745917052408375603102134168282564554752810535284724654746515745630186001805291371097416762380410652523317922433778227305562985514290254736852338694825012498926245704051680348942443155693161986268774807601311656963919013542015226908145286645686160279073514056718452147999627136247729041560837777515901028949879124230646024053896196807967104918273179505049121905667612442370652035372464552540652419794198974737894319929714169132790981554701517813276990076755346796952303063362907120115161034077734951119380693154877461424402028137059586316516636387659699665407281261191534219416244744906910840140907789905594780512367583637085398316117686111548910001719728547779585932688338246286288844041580164558873042144050119505901425746408247106407023421589607641924220197490512334781863325189006522809751781597665105981281691710689939298015831268193775326626959109709806444153083302606586174559624720240246919205597890317045465000988903347900270047607483868046485617607608319046765635521588148510861214500801429125772430829865235098482433276647979306623249817034681361877648010818782630417213061731187136347700636922148461753043600329592999567302361575131417472032166649346857951772401943043129696681901615548033726593346588299089192172311101976590594696778776723964269640117317081603445712362941923197273559660628120623764124026683847840350402123818682442285699537220928409033721074908932993427603918953178092326824601052463690565210233624915128160613370931633814625691045803401656868189516802564571272974145424735624472197455681106235646303938749927165067516236343625205882237327798115378347599547670835391591682774650962721860859797510645672112825401794478395612566957446080625655313954543300617857890941549214289336071469233487889234512262624508859708009271741603610496221933862968450345187837379388637160202967257827957893438540170481107872685161370171678596472400083100373590285666743608426825504413501983151689536356570849382808248049635815499646846034175612694193921829494377027470073772819109178071799182887032456640881404455305805213058052679606831241235799398457275890297571635341005363322252559294120284370806286204063649084850768750711553550028656757711628612152315742229000136192399698235770150849617118115225362384063721560488526976490201573314429029552096456148310129043087676220428105984717158978055339271315581721718215646962687607073552754950116380197828266986869267592889978508685262566592734506368624245456245890940182292498135088194489140814012501757063023663265366018582174686800767139357739310235668176074963318602455404371696987878445545880143647022014592411980898570187483540322348209492733769746206228275905864059479467205279460892629254301831902070058349211797977251294489124127409267708663016951334696393888134572138059622671521614471690856629088552045937712087287083357223557979176965862603471274582876047098087602887936333583235422746019842936622723451904319482360932480698168409285241100234919330882162976997117904850043297401277474916589078577462514918536977185236969414591885980977335812797589467556601011448893819306585949365408810179815985073463094689798234346414342937607643628641714200659986688065664122193192049106015604371362461208198879509456585094074313577579311039689191986164328552372368558485490715518892612931228574742347952386257984817756159190143052194485075631903900997485953618837194192033117109954150718102496831972332538460896512348007502986506733084104914452946724312979353294094980630935119521105111074206297661833879413936659794141030570324197620469323091885139965574267455766407373595209982632054493032819357053728127601620138048469642173949785817685286178081282687331685562872268287911212355525458327876257789175952133152938397206009440807909649560420253531309422714768019656271315906657389954768973106839570025998460272041118008314530508857832635857366061518280632115702946740159157958047824719126595966253619041219707076209306107240643953761602011762025030583991124007006920852286832556730175221965330009778682372372691876421456974567625878240122793471475892104301063931670296257084558419571624475144589531711392831644266037366607424958012690173766134378595600031070324870318209102482028139899387675177096893984979682033122633295260798846235510343588533169459057976158830857405156165632309629174896829662963611491113648678905968823528121417657696350590464324298572362554806082916671978356649231886832003121315809719734504056827460271126275879731041159015780866184779322988396420504700954518831092694721536500098574909298397123150249709604922294431607990034884445684381619454726228799764893174149237039224858205655227616405742244155483807104070287396864023843590237081931524427128494099619110239541301158846957890310969886834504894103203251266158830201079816200264315607315909516878839223959877582334057598196892078915138673104777771731779252421185257843608819950287511228127038488781389580662770103182421922872214764569855132243163767999993849807353192746921306740345265141008427536962194419463638536198756884374455162525197045957569467893776091279612605667687211335101262863181488691183566406725144410349657729950344947785755334126307324148917709701079046426867834305360273532981546490480870381918550855584551942520073444628813605987889204982562207199422167701420430094297048814686226055002880988253947403465026670191259833096002128988021080670509992032588399614084228432761159246984247340365967604000762774560426989955219063679950412538590290556257088227968301822303879628235832111587635900189730458905254664852353712342907843634990135090846897576322798875231965230596355454304063498343425058810073946508225536115312426944109694344104576598060573276907542163923112569114536108461837811179752119326450586123110606858098211883453811888602005849113845118280875264836224105233283360056399281315420059271008432769264559309402024928456489894689616841138773833303760859409737809522846659527376863783301541789300167191412607716165070169237009501609262248087896840176807414592497354022525793844954358883815439510058108028394194064653788552104280154646214936111256192995351699999929586521835974109138024434266088976403344037018484122728780949337440591845218780945195175762166996581128348413807183090740068439637792928963220458009878533017907921441238711353139936529105810453617187033048860350483893638735500268242892712763858249730143622694536079677214101080351047904710825012561866608706128475654023690520676001516510944141350161380866845435729079159203209357485708259595881263004114726594756075985909987397113287099511597003801514487277223789711176308676169343515340439270567365627917862853574299441233254927930600271081707229318569589624772101672899029794335436358064599016637814014328405660613662189451971388123473943710284131981936618448600613276055723957619599434891277141665444987685345560455294984296521851077160617942844475897588868970987199016813127537365886165937823027231861430625183165265368315179496090834866097638958471386300244022220970804537596786216367634576738398089986992856797788105262088638810002264143794694782857850866806503945906264093874866512256201608404813050548164488585361068807188962275108931546688708666408126590640338200079554496003846879311481329569715430857887017144985742746745071216907195483183641503963093778478602431277396954565041455065195131050416334624825522766945100742540058313938764865393128692922967695642472199696289957901622591847206392551142845750932052216066560296114754267016919974829841600575611506696460856439910477172758338097184973086033235359105515098897059693333662476652901098646063729014994042786633036411666802589278596026962825508398718474027490101206088241973023156816101426779427252572291928483208260263588166220842308301682664628702903384905610732091605410847200523184965093592448935759777637521046197953300475303987772158988398112707945778747244573305752924537954153629210157618098859309132354809090616167621705023524336382253392027914608215594724074364495039059526557147586577755427146792987313774708113357575497205177519007774149864117475132345201444574765429910875661456386710263156393636444760423530225740610694959047453582050496255279786199318444257614743893086824885285661442556029839828793459059960954137061148607659474015958459324213230694794317925069949018824884923720992431459371420482197854621054516521938456071832384129044553856834542264138585973377359241352777663525663393412098170495509637908963540875206774093982433045617279246199104597860034543160304622611774609908775872653120618833445121363098127828424542065195780904260603305953722741684100697452455550483689248811225025557891016527928179069764638859444412920798788521549676763788036546091630875406354097952789783766213421365921997412523061189683721930749665489648717767116585590418329942125528432285605615453578711052024544029494548788095824081176148394180688659081124534927928878133640190890413344745241209981953649746008805863599082314903156412694531647308074504435417474751892657742737336909799017890291338542732194522458995539970735166327005234205505223546276467182285379890091335090009808048571828157604213453252069759811331967056395465933848632175770441204570046386298984233569699516232994821267368087484479067247688501630085229595960196938276578588856095175133730822741561948438683795734113770301436424068514561907845229995320411026272675646093997638883164948947345350684224739627153640991314917419144800736619914499815854537529218575199073278861153584402528603306437476611499703666179177728922644210126022540824410184584415592307315239097461977936726364472822889107063847501940507082758954968114008807303004442371939200355868931723618464264182267883395034253873944295488907568981270280772778260216695018371731137534699819534802839236761882168928201548963838571963802343354028127770771395312146611697992209263797388369039721610778462347620290835311047533043828705624518490261421169103515797960022502318514627449334978516405618306040252458002554327616588401475025373555758972221873623422803534730143208676921061577552259178637735811048765123096534114454090090567097187838187679850533565450223590326470563507305369417327419688387031313633213108245089838779667208515972131012022284770430367889124466502134433936912190451690050547427539587208298608020527954371095899428471176701008279036422042187088569267199084810361795837521061515029434459349123471972775089924718000876861646065910507795434701282244310271712405448293334718227011341185058115947404844538178705044049359597466642299121596623484438564283291762297119229525920459728213506079973311193628674616591705839242865397524427316664336658343808046744455244228191348541258054748218536546715247618813412842213696849777572930925787287787432659860834948123736506159967011181342287204364334263072130104042542723935841117939935277556146903007774578340423785039759619192650224050299985149933822002526795027860319625858032112586668186458690180944386595460458810696666148550627448732210636382107751902042522987112606921815697669896178182281246234056909768172005545808227651917427198397946623614223190464556922285325649083772649564532225395532937462463164359780464131719133108389643895948787226034967055109646072735858568893953780794509118219494236969417269895211201271623663797748605632251748246248336676260911737107401477497225309016510234018144927430373564839761075554123117545911506799733847079326304229988384991100591845564593290362755173264415979613930381044426746786606598863843276981793510843911697639908052388002300911976089904129132948571518803476872047210914883542028959185169162169394922481627318844417687413766035344743257299189322670439031900712069689469688561456483939013996911876491438664670265688328035246180945172278196992136010600010625006235476296106581231486402042500490325179981521574973281897124970977771256316101203564075855924120641549964346745409743909952236239642764880699658179979813857489001628899841197036625836314066089208970387454782816305498301458380033399512031277581436513569361223641667789245948178126548137894235832014772663048396736695940367062177896427693973275386107008483633297769088539610573922593673338038967458193603476929808670909083778986690895844704032173860403832295408064529337538497481891702235418794379636047570626711833516401765933444253020592687879633152715543980804071228567297253086934357293938565994440000437650108095185158419049478390612247893364080060502647725851768740882794877601069322260470132239515091128864034551984787929118584597360204104888307336689376908562354371007886093426180000775355527776158285295742793971632502121549322568821598908545217667154518339846357362471272563256955266114009460664115021250902824490253558281584883763085942904838094847123018041623735726100356361658055193137977922570593664458224454553435963767189828216366058234812618218531127447559983084557678367237336073128595553294264152912731986510361276993798969271170422612134467948172455751549193164254461449350721816693287156509186714178067286317664947049102242102957204991172171588593449499240231838859057826593113705697077214538561254513002021421623141063938291272800296817593410094609079218057011763310662933857887419678226264283435258878590796357510094400995727536056323073228982098088119898857581286060939415538265707591366498991893615812678591794498635036539112819771353576848904330851726352470220609720063422023700952909189437430664673269274546245870067548321975848132654940788167768958583293389703965800826085263919585099982510706467477807532909259237710718955562399563540159117777156762775663238646085889368227081787294760758124703774969313646894520909903694455220190051392501926181344539590923138574436704180829008696740822015160284338769539933145543687723230875869857561219177251062081331787231829007673671726779032701660676517202343005454706530475913835712554508981425870189385234683838579093181946352986275492636758322385476626056289903267688749519839104262071772019945535136324612708716944190623885755046546976459896492887044309853263681166233527224136369373991211771815498444024778049475302707177480436840022059944840289219996052753186749307518831952324585236061964048945355233666968329080270976954965361036799017043096208960809921376784818977768489294474945195632421697827011212737434872763358662055005327417412034542323720189781903824741747409954563580791292229929444476638341891884990140712545306413235026483959917262237033724955205712009593367960840481860104246536082461538128646144765138054475501854727805747570078080678247430233370058817162407765968485566484653793646664123588794453359883968857023437888044399195980226081065477053140268514043189962867850550163136867981698217136029498494729859246251001746524711693839936930019562178977649613954192681791992176033518801213894288095485385163732301257022809378347436435715828383941168110846920996921824553335273368162381389749132658199007140544722434566989102682785122969866141789126842319891705670946461141881197506960664910171347987454816444281519292878472181772143577591810703045121586470371381264051024156321261590506877138445040870804674328768764397355983711308148433397878264519380448576161061130742972379994232507301990061881568364468872310417345026310419619738105044213635382513786807940838525598436336412802707885042145891799558602202149667924230129010155523953614753491614156229186460051390530482756701895386475487450336472203440574536808239575612351005049305668332853722121949841542915455833230973139727760408474941281546662810769634045428661797248519818297694176721855473770468479934972731839371031775088663891681810101133933384176893609793479367084469000184748479541459346565388189030626290864471603876982049207252007013432976695994944133085824948039392066901645162829593166332289258233515803570254681934637466519326546776242759381224946693717144034622248559732475278746611721642251288670935276140295830802147618401020594761109748354360552247972634153023692587555219700246479373861521237134878526096915217610479992919491182007182496289805508528315800940934736902306445723503910227761438436729280804687057638364721119661003023765750235356202023613843375568506964612935284864624333708450777077631151682104783907555647065306655845766969323177854492579814320094198855406180613836995475623521063428250800829445719527775435419009024045354599471263165817956528892921716034585357538052988823405986125539286082635884441181772279081236181682087385177471266761523897915983553179188235167933578212487548389186673174661377560852128199797840696960770899489112901249846685281780224696857852133308277248966638279277408900889283260958413427114563101814801463009903301423008466443532814689197896636122724250429431380787416367171916365838834691136371480657495709502919072748789626998135153925266557005334771039849373656765470253412278895944807322356008429025605404693470301295410668702471524657290776795174059887457174962288102712285284526479176794147092804489723191424935884931241096443522243516772178408615969277419415652485619794129692506708917016912458256460788466883765247833792565854097887038914714188139489923800696737983684600034855478675192125688280412988987153024164888043319887173310786422016788064092308888177520061360240157526162533785701141832789662381252572996170404219744204686678898184304745035730754295178639986981425742819591592235491499631359513923521504586100034108321648581960287370198430981987930690353072984697745388342985186878674146717682530389392698781204024328530734468151971456065756614120835948557651376467116757791941078337453356504586571066758779926529298562322093151325280710915417670438623904648905077591904040390976240306444937991229812632874383461324945780067550142931740136401116271992887208608306855783968993486319460060172946839146451469800702908031719403292574337627236712123176121387318894024052516729265736227232550637193142385900131980840619920857764659890149065029719321395174200676267123909038554016590322313954484143710887353343785398242689194318433423697573419864500986757771137412447387395964339520934488932503959920856234874121663214947280308525722278022092861557632267927560497016399969955937341512566494358776885066062572992855024111220545237329231496614162331114825183813185749552284155341068250716500061458824713005746158911557594431682354388103396840678893290270317994501877226072365274683561559508314091370337794372403213447494260925172037500406824540147466469538619466318012457599174653780334725868005989367416821111160125916614713582489564910143140955199204099673177726631097246124503860058546778714249661875001845860543542850350766460694396559691362650222587259378745709864365592515797200668819515595949423633519699542797137593581220576413120188290515072642283544587937672507048994950359230665036074919760517142746549468983191990036355951934393961262384972257944108485572411523222755161964945525416846679714980473751001955627097003065917750900005093794478558856483647840298942569395145861760844492731538710424341626559468197434533807894228063104582064658860975312985669312059305261021938619517624602558208857338503026410474916801327898083499118541581650122910193684900294565017531036374071371659358811050506860726725672812448246983409771306069583076701358302645250878083781059712853395499218746894600664375856979459302546112503254043182260586474149841126097847738290006415887746540556624507727601221538926820422248743005617234882382784050313078339597831875991010451917429118037114380113034030054682460700591550032712430712910510770659269414170695428231435376651105474539368526135471920720494798651142555777188410540876611091716547067997203315042756866582764759761424841747658128053329674632557112536443742324001236694137740305093993860568348176825903053778178774050959434530154048066063891913732317591730314689559477342651650404693347292317857560016356128767221388153340160691612824948732335893287128565134091231780851567533090179507209756081038350683224636248765606683542790167684528771652194076849144693460380900367913354359186010233577405742805134586758915688124845536608293656921471535465450753449496891122574087586341382352677309262838296396754716750173432179219464224441666656307748144903901898104676923193320644198400208824063602662703454202507802573407304938103150242461511221041610379854815382129654202614846305828624520578516389410459764284733634444235405038100174138824140584990809097747033983998884548121691279123209308167890176427494857843530228200368704102306408306682636900531043203646944748027892716497161657849657401113165795824904773861680410637818362693756286054386324565232965505001808349709129926836620546468099332946059416829554711231515466856409665597198385575254499346007616617316883002457698412837433409149601051158335051038488876852826259004810853724648236126152665939291610255088140347902423270891169801182587931629758476527647840751937067861433792171440186425675010230086550449404995428633551297730315428542660111487405511977050516567027748273719926155394562389903213721569523133410853815579057019396486385430245586085517963243551314251069215409367549417147959784360285048725557636782516118747272931531855170187193986244079560289464255862015118082508890570222134887384657183272664335569338891024228870686233281483548948756351639766541897147812200987464865519266180450329661846174585870424850849962900167896888672635166528922373050610153157032751093144514824362593071463748979370751311266920512135325656271922910677554367562780806804999129369900413413659687830588575852755929032389481416553169489036427444915507925503118970780660953147770076677268974307141678918187800578210609009932962106402569182050032923157505146759346606190976988525795021197858807882254649369650292240308601367442822641856820613524251746260732858780285657297390115278924724242723497614204704309510892560822088719927449402494379241673283787858314982642110204860331985101680561206831493936590241711716606266863567965248339918993137441621841626407323486367732935735220522310019960719998280466109284274814538907079228379321005924612930278917288940379497671098159261004220495358267441445470133513767689064011999715896632722206748271722520775677671590987688119750349471045405409952502720122569012790931752159294371703568708478812800468741632108002696659829762502340727083609362934567345353309126235144453332157384593773099753341383349024760248139955006159553515246507358504287824347746636969323794584216327008145856662967392323504599761681239681811044778507976723595076832653564137653967322847843385519804635225679020974499249719141934812824032424803947655278195691461820622558609832140108741484821529621892704743485911579922669772480191619871886201528715023286758932798898708844769136326902059700726325619697072812697234731554019989232220038771061856013805876803456314768998500616181511874862832263782739336007326743283217223534076233261450500582800350797934669131950155368795760067023006830656893409547398945656269644630882798285144769972962812860809201556912015007153391606620045697080409496449127773030714015459116707958721720931448603470558017105225295732939237180464596972908945871149322219221542555840191940649327526428374291240159164842345764025491280266163915582466587883343199492971574701591762268059890992394702621023746754074846462763463139450099488964581626890340139356073382613843949118009755100196120634131668854091988023185944551193143830537064459223021232596373393737240770089973774194163182600246734613480688172990195206142131643565268958841975649256096366600314165967097960616673459327636725835495469650290053696423129154222663981385009770902094712092554333084662523633629334320972658083410329325692709480176531253324898739861056943093791297907795425816862608777601881723440376839207984870665550744655634268763821800516604631378464179417314501922505737870548129954969664184673442718611908051661741754621005191597706722436415607797875608434691854158857884192452872634903989061653903684469176170671143384199992540936003964843062651147683100125260391144167722333325446047875071844633509586001810986617822177346750603974565523784656252470277841715210990911828221610182487538331515358671918197955974623320087054997263196373067700842226940198316398662033151482419839302316164676715354074016110914574381624305935145404650906856126980755603365732366213622880127008378866879393490154580366006659079315361362720832896571569856172961640319795621931339213557113114529577469878403318793491582235528471916562624805353327991359302628912563146882325977948419831639145203750839967045424328981783444827022568560794532895920340693963227605646494738237575432724698429343547187377919089600265305077378497378141934237776351320174586677583893062937766705567124615375049660887362704107955166658783526024411965143668748905527326825299777798765224066515130589590633520040484076225676650088690535847144886850490812484446942957304975070292000975200974722610666252538521736927538304419108854527855821695823312423075397375458656564461120935743314182202915170696522785317992700409789704010713080954977285591810787453627239041154627695114203437091180912889182521782587133992445200180650364119520604337729929742793511087177287328209462536566474084804113644646994436868718801046625286800888062561702325760591861081422866676575434634656126442840630972736952056207204265791252709787026377485925784813599436623689941388643946181574007483372929116826694352987229821291333995726600219998219329499996764399325947642555888492552950758968920710420513910581672912975915826184967214850352145159515634383151774769177077420376154564317192506349654066741179198256758992744109395741271708237165149770986126748828413143041649064971177049271014494596150876060132022920491842733230728169794397648528221302351664550838626722739260887137699484108644909139855352688800001500244821560985175293213559213436799231916140653136919316105755492445978994703726518586270541693024805923250401133033862743247936414022592571814948241582981443902889279378088822686838832965829664280321758889252759254972964211172447226290488123372094032413017638510963113149252344914335285524391574104865883468560318500045806800681827657885786666379535923022325719735798800494654096409413872504949921731674923067191842068698657957216536859954224609508188063897153185710703136474815343560389518308207031513947206882823796710391301888721280601494700987094410641535032679732010641471218480789108864112365201061714660164751956795934773474970563672777101895823498545884758908271862258298160040523523318380996295386532714656775657434829716514950971075964325812117983354944635526387412365620112161628057506689527466175100544818423059715279456660935617963378820347798782885621611080017523210061999485331892167207719317569083252239659797043477076188019535164023031005459383602949877366121323454220025746032653472568604333113653805908535078503154447994829464121869915839355387923029120345271743162074639288096236482301882260492811898999643049297116934473823675832133710156324721597109632910166779019028659554277786159099008752517335109032095456589827774128723704340952062327522079562171333666415812237789389496903942075115668446864384373258746936133162257954541414249753414154400359186552177260003105332230123114667365453023839839434946846155957624961415487224528505473041000065288098853526486931169788610325583770071547105707537139647192833432756891080274981154983028674764201227910124179181346458330869240233924817534556388249553365806957950266179575874715187258520587515986380063998311718346393552083672551960566296288205577109221421058031078785907106076269483693583422878092467710419894647457290483858104927724182884364209872159057062932004286329383974733121842151608201464495597093904678939030658409862303211051685214292760313058789106058900573279473184955089223154934005125823183608630256320960449209976226618632730727254310555855624117011176017322683329170886961113758052834582665796337350354092531026516238212803021347649279304388648768343930959185498626087276343778262451006321146563267222342427926739821226288016076414644299982621390868044673731478057003203403568117110145676340433879252823590355037731950655209095106111730461812438340669745478041392111745317831284549438682068071431345700780320890965711032463778433796786194679046671421394747018384868914118902326182580273353214916572032173621536504527124788325742821729700442275171329317943177978224289449916462888249871206125991356689313315837496390279411718146781184774271442691810542066277620952678503047430679375934172402852878577902248699588413379414998536975520245924851415034277995620092477607988777484288158535364483738724620439427163842488213607738312208849954864564606768652887719964453996157147829218174546664665415348042111848776462879946643271574515296289356507471467122903186278335915563051399114793457350953760775453187462407576423779814047606949900292025912378102441959451326802847772504868057273233590266768554396620340245716110257828658769674356230300447782411140912687752189557017111399733983236940820976596595495963688156382470444170413142578448059031124972889900966590673618324342936322199863923287272423819052244660398571954692421187130245728238524530318592863651841901718574221840220200746561044962953031140205097666973751824390755867900600599387218875150730021256727632190085876818864848526288444892756506412037950081294753483362853457943637228629291915339923330308899792079430591141611588233751406948340028752243381884729579084011178038758859696333603241071089305306840840995286461613299276528930055513426699953924194447209918452028637745937523339211212979895583468630978387172512517810517970030943115923814717038766573993805954162812307162331910716739620644062309250719336072237396176111179641236852063748717321477898751833937878783258258937278385966634654891931801510247501055297539016382104745568219519394954822965002384715542983023699649792003629363752776179031094178709502509414692006026730850240303010093929572441020280163627380667736846945928627155319306235491948415505272057626232351355697506374710969008719543123989328448488040626382985136067019721417091615096590904763290628921269081202701421361798750644659505798974864963466221732276140253061124451140065306021753041652063770539184661884713598841303984134099107263696827937747782566646285269802485422420643569518857735236939630609978027166115111007540951000760463110701113728684435143304875718349820501197574406026584892994467799838876892405723751749077172835393260328522883118303021450360440332286332987801750105616674526289800657506494229666176462486034089568106398439901403916010356916401309075590571268234881108051734699172911967487552933029837056854714728922613727135448203721220711360522023944312519213242497155196114645506817510681980799311517056464983860280213872065415185296863188517615271853764544893438969357831830130446861181611001106491976456838215767808863210183017001016228196479985538752183175554171653596305570240940392385248369561650064221397117151157299570132271870492460680791923990565972957334857440351559268889546605902600550515068789507710317100416430772466934793932851954131218346177902819720048165575911966810973477512395336532689095092203610254831320802974522507315566255880245329617884875211510149906643876181823822188673944026320437088677702189090205161874660699946404827134466605239618835946303373063585043270913872535103097037863368470701688085934802746617484844857103605180838125377097713948573511769447437293906653246650816587744737359719729734950407314499249568956185120701463548685708127454796139530937501832706028678634169840540417770201913118879126894365120871721648330351707651362212342393794175627100426513674978926785748246674866438924103617695464901630301991419138606408868902960634611197237022762115753010662050611400216438994350038859286347687462549520181832000451466121931060884814663094302465890124237374039229221935521633106706779847700249364504627194858709852659335720098865996462254139363296322105172334490642385722120409245308589535896892360391738516210245099330622113996614334108633886916025601347296082389467463203175514442405740754765030789844625206439282912926490959974057214454432794463182353115525696666900185288960147189053428401124110560739894774810901872192864970316632014567009218263346852300575689345862698094481589472643052596692129209937043206690576824392415915886912785572187455397736040460949048236235580027868767040043773910031167472426679833463407957545515275614036554359615301892080215459313684668476531156865671864238495612351312520201356961333797808851007672790560611894048255874780675117994501169478440512161143248700993193607726076884741208275557859927629284037240641089976506601575006182403398118637317729834558864998150062967095919182928663476966755311996470149396035717325455307292196794231591158538563840623151629805310060637168886870075039394694380929154781124908850363305071709569333705778739670754348377917736992619395763105930084618495649788399188592959360137919342404212359932894875485068750077735816694090289650346377741584044385685654644149557739054233998772492535812479277431222698227325784419001987965374460867087478606318294042620593190954081639212608282511202733839518327156457920940089176373070675963552816789247968958916759448905057605696965994138772759600813047936552971533793467092211909473149371644507078007331134842894958752594615413363532065996304534139266879761031118566814278766719432951602114191216756894278797748981629023003773735995199572853872330373166069718231524898117850659647910566183516503349083845656740602408882588084832260083969335074534060032304245286968605102095942011079094390245834647194950972641139001670606405739191871315823469478087888799292667047402547678833053272711718900525099095587832379307165376569495302215875572258849996494532915429306054691422008860050313509317695884931021656267884200427895377668422557419884834577344589509842195903906456968198501185624520462985887004408445962652931097120963475116936424660769389660610890237328070328900937466695784850795493315262318851812981745999469045317761319254644678015591443223160843762831553676755691166818074820530887789843112764456539955167775681303769548080146016235479203155106650889395959780917942083630398852494864304034511533398838489800975266556317838095598463980300815410606637993334061808382548552124934433728575945254492972148439318994643689117009179522888636996789576720144884941338033752578916173279653955932487633956084332076471041466553902246263588834262619218605943443502849935656009293776025000656199731223471627279969263826340290841162099673891150450114688548048781271320934546652145775343105049266962345589175912844078453068555376652284308608102952225171368332237714300360537212958844643040704522928088617250465054221982595695713128817232391160505174025103808830983461471283663135056630001080737064352441045688330681011513420215581606751297070805228025833535788832398854987359595498963618149887433016390915562182982564328890966259346254853730808640637850552536202194545885114235690993511876598026391338232685644417436539123796428042620814305918583152643707379817224388678369629870672556856352184865413764818497647593430654828620752587451430510061676266461820800449570785550419919135441005125903886893840650957981487238276169554693970972645716605737992950339052714710791652813430525240952339239868413064704411685159178246793593413351588396607214969604341688230985531652496287387358324595371038763282773632242917116253939810134489009526146929354840070494559599283734477358092929199455928269443193743183680622382411190597074307659701784836698630122237657045760725602733916525102745578608196003919749379963555131246559020015951158928553517193506858918985091429509195097627167456549982808971479926002638713892236578622358137284125360400930852349908589701070392363332128124954448867045417658498715387709084650980211693783556946332136321010432583607337770211891943735543395957169559618259529980261158647991761781346906244851360942161699469477077536550676780728791998494679328932004463704746199773664547912113021989134567622893673899523124466006290770528837819091336585066889601692687276528471132299620949078731520162347294059074839267629247198632456360431341007946054294998763648651308410376051971879270332817259428994624430683416121750761751415156218554701143898020276897170990364393291841446070186464747527328097731806345334459962952839437454997887907340241427510766178381855018595161458306226338174653541869736682624883223415282497949640435167541249288874916961292673443808291698769767669903087905869132513971629848073119367612203945597831694755723803546158209334372475230389010630371346380790830102746544920004102025264712658006157629355554660717686727856672997486323318424557676285562256244883406111791361194952148124799504482787458090794451815127194984449636252433447897617478023093001642233778906372407248004093273309955518072942001942485198837133462406105285368351784203985065266102426460920006640228308688704261338599337304916264938316835790885614102645221527443846061178111056120772985082646392051216053022584493122099745966551974961132538178692822687507212132521679765174058086891095045060589311346808428682454358749385212767675425653253416285411682704377298896168857834640965073394289880182888788117250121647623747041665778740190312813584670580631378723720247666951124140509532981199876704016111163798844364400465581263982715778609524848220135343549668866049941450241543245995128350059635599157389924469972526475562104253518844481463702783612759341069141987005851078541738423401192063857832652094858413099294408148245322255917092322887697990269923671216232221994652560586105363753948034865057129401569301781360959967328428574920077089024037060783188783175189128813737287655170162292574998656422000681777778202879727059033771487091081200687818553437063883054358106263492907733622295106377831247687366387844903599748149179986295012522785129825765379333076610338125015342076038620257333981637713386147035906003738470217575971307356830323461263522163434054008938315589372327192818835859402571088940334316132717547517053967714513006751252620763400773033165232104044372194823551882265405296639330966087147012114071426817738912731182123138550490021773486850536832449012328419265546098536821528142117288897563124211014082013839906472314977738005828835402615855512699519341392461717769403211156527205028420317659135721614144927961772379371522162147990784041243400838746540141955520788390270187269160830225725989804970330502614154779272904795661655351722859839639942217216125791745175038107144133430755986859358107388420060823974778998410001717953549742126283377921765214170067728016396949106737724570826435273930520568876394402650312555025030740238871622774041946049206048934549752813644986501826528082371422988635259021280414872331473988014617629216357014961463902837608334526256171651320831028884935456299069541692395801109419102074903044023981512532456162031877273094455763363562420635373533667367481940751114076848718540713582706869396849119451361377752000832833466031000284274931422975937183495119117987241787192573232292164434898292445476346063603477833919269040288980429704144071904602654612763056478607053294990287878393300120410103178946542300762610800084449681079875339205055996745471864742956044591566280112344378355627213147146602704141150170579535453695861530191223776358451102998857940617386983434863072364015028450015201676475731977656533889095256532382771562259709539621214480890003706287322039851889458616050931700267724830240056380730139026613404059709290653209211671329205904994714018303026448180960061746852909057307168953151694998357266860144473273465902037968291171996895155671669862768295165644020744487359127073463408373231976554168888249079343257128032868716607003062454395560796980173702120246969886015608500811477591828258895140183082053620213063026004001358002940449752308712657973219506908910955610405201213299602700571836395117313418011677913663915915444727927026677220687382503276682957738448590808336595874063738063887907132551743819764155914627625855102330449763685758455383345215642704721332821107401673186632070057814903499957409146803415819125403736701487791849099948707863486561087024741617224761582389301005149802239872234871467944451884191328144524374571990742908378691364294953339454767087953825055891601110134625773190564374296613478082961066600251489041728190044223853556637129115637299577542347838778499336878919094759319379231407919495505809460027982374841689667792807356781545107998897225920271011691382092269786627833725377363861315288954231111045005959540070769467365008408638945888513211609694298668832206041773880797471267936403890634213792042033264053704157591384685998506934747877398068619273970492526621899138552548771795845947385954449781262771104862240304946006787730014419252557556182297520107604170303112798089227617166497476481893361787662472157133676236249547014804574720138492427009939746513863382413267502780167006342416557394022987676660044833799293420853068657700546952087070622217440321647944144877892403142912065981737953352444169717062328753270034708829881353547231743128422136608111993134599807214366062324242915927923025451603535994596677378985742562099984438571839138157009992129896144536311384217705476657487349063225069743214240077598742216509621063368612216888797194848859662303273329724179588861423775752276339706877202932442976706365373169680688902089659108769175395045738539317597433058000306922329787906773330688780760949962019036397012968973923010095045030327244355893333439717558172148076136100983353021051947902187057023296947028479224545106645712928608309090772662608141763152635253868799485622639420203240912020348115242727499596639401825379032501997855150714786164249234901032606642254849104970251475194844979555011873576326055406960233309896749154549636715419336724132417991300804057988265827000435897205643242448090513107018156552661220833183916062130058446320099290286904875131590444823515350232669310347621253658806051621727516886685077246399709210964058955473729428612921894413833915754191850799460213579827131279949645041777750013707878200676379075855237534687866367391817922027679965364552645128832360117352836420488909750958792474665268330067170093073791582718571797522795388390914677762516561533024445476767788718569462836393170476943130900252197510070797855704491624719630351607734328715403655496285258862695190826016562535229749628533398322930919409017971061259804735758445124823122356239321554521025825578317702108112800082891748500872499771746589609220171702514060194209757703771746089762991982760478409689212433714680911070628278092180680439481341377607052572633462918899528695560623628502774386410405585167868114467678802373897347978074496844712446694735080011881476813605776632098603394759499528647497656901451017814211352494067573257751160976520852217398882723305328109951337000905682652946388998045801766571802581397995456347457646307594100182661796995074096031511542444788484321727310045547264249228541712188404168038117825786906407272592642257545055235197456449458990775620604414900008830845451386883457020855510788768129323532345031137291238873089008756383963116018735911595910479993473740861405115918287763431558775256553877935870989316370395423747636230561061952073173107913879828341375141950521526563568511485427763474311311305345737173934437064313136847506546360929309808013722263014677651351683971169571286357076020260303429129936306593854778906603227218078188419682899927532348962785385701217125919970077803599694021153495068899068436773889409791920843437884739176110788222835868780118817518166410918833009759164648466098044534454974372939003780958817541281163910808818602665021846009281339074252508339015852322121180202280674632335339674475032666697247629688052732007239003038288912503445620348868622052073586211962502951302407575082324246443241295019998194873059485364405580932024873885884937400354060153940922206963529252556106893308652042122284201093282574168918049145488930405484231613818179377130230052625737489084850153942883024696606036581030867806202842960555782762834816375099601563760219478008195156094229526270555003662506327605165585980635053092455703191796356356795073103947918495919174490484412138508122436654175529463675306252091008608756615732957650889588925733478074611839908258073947925181940912726501435529271385798765084011416085531778924908568646440987426459233119494871286211807101356773803958936502071423644379530876203054494617872081853247633101010217277334604858827233827005274812528860220490403530221425546740662803837681276377351785403730876742195344242763533095928512617327183574739048470921607627414126707582683980563945588328603993567301732549963920705861216577552976582040967035561274986786661136932162432630266514020319460179241109944584212697611147052780962028170251473752679276651688189076657395127317006241506645368053814134603981821732705460187124007463727326023961100525899512772508370729596743093086542093246705086075453743325283531524589937846977685712535374182399321009900548245417073868039020264707733977567842253571975175423042730757003801084287493555050055706652576871221234471647546881071151313450741340836416808998524120127888132249882868463435947334242403796247726704986901766907092502604407637180592204735586871203460291240541632461148697147866840386950248495536632002093469786545191531818296986443209660520469194068681689814560815343820729370650778536586528480780487094265255734378534248565389308967405052573917085560475551081011851887014540618476850503750864308053302472752998446952144267294091793524472455222116612088710224521063587125900635671091543168806884465328776283642975513865324335830935690577262116106022390505537702966961702016828285627960098560365674709537362913781701090796674762040299328899645449527672285028647950354419958212285165714209453299652849087715284306866960460040649103300877427012574935375649697392719964490219888074603137858128879684677875957000357049084163799783485163932416788955435738936685696953578196156944246127554794693779135439180454931679216691860040597212926554262419005197084841330709491122134544720158090993563624816214952128665587682795626807319810306649576912162698162452670710871239305362874407133220193583010612217975848979886737836598369763960854775448689500835342306976012199495584369398215876622674223227038666412721428611143678299408398172736436034412462777484671349698406165681457700479555662764166811818949183159864666675978954273275721445519545210387220260510257371769250276263745391936382820574665384622254895194995598528903825448496575875755125430003192834394155658075433008846751907450689680790233481573877646443819797026274722016722555929981697544466831932030829368881708362220045631605018160255446608583423013474608608627502208757619032080376379793049385848947681335873198679708367380172907086559104881417887940295118661724249700764367803352484517339893507379518880654034562995437299097574275047326081982785031954455199073077161004490296970171556109627683534449975082396613586493586224624974841134951185651829848231763157208189154758530101246495474121543942590448947936324772390727418468275154563747926675197862639788908438831099113792330525807209755255923519010087029474107537035384520746131793481892057509241797533817885314031988363760817895015516050695747083401252716016309139059622185819060038568629767238864746552699727944549218939350367817096288183772128320225057076601201392472146734310114797156001652053677611859098941904240991001160583599859266191400466314575963653428593647913143590678451194579006891366394952901257711629750371938663175496409786600916144907645971222390262253016866558099476453719843369277488698671161380023074694297740989635926587773906601048054199054597658949696672220253568378711612418671354215463113713108557454007792584376689821437284660882055967698256671839621517806866645105345254722894611855625801849922185451092209379036276993992678022538710559269469824166005285257144970618523653988125425105339594927471585589784977493786672820293241799170846254549374329831805017634204083921545654678932842452905251327323656675254034862628180010165069870578053181304676743273885962222364945533486301887549342062051516027767858232960859168163132543144052678465619953697412847861712096811273886902495592835896942717518769435332631532194745500437147070990413396250439127167239252673683080394802834879632455897400341091371496960243718551097110936292061676749146444017373272423939554256087796458134511143745009775981811337465175028276691476586885659692837147271145844441924382856572742192757936851730677874805511242172211508730050098291697211294476454593245466090646850103587429267499748722033347122777132752235658524612115253849952058867778382726184616997165722603679745819015109325171424238046201009255752601833301749299202713290887451304756166616343854122174111842204426281378901303773893045069483206152442708040858546504883975219133772396502390607253631575889328849931197573950519012413006017910832522606058496979038053180484066235184913177764873088172187880285398384616243457896570601042752963804995518462541042674113450023232542258134054635308787228100273202324302579359675290041403863217254267411232902254656290463444244780749242686635125248934271261069734839769962941689529998022907641631843817046899927601772474570198791413640000009641125831402599060831958225213132635378276571324642159641842893663846165725536103144395801382124089247908339227339660249773186847526918823393994688732546979870113968213729273349751754349392827264548346953142774907812524064242058689771145440139822476246447974221956525825671786789407106285919727604551833048818524596400883881044552067413092922370465067685633839795180503841454508032085865753233138171932996736809237401960112624835757735815070154983635898824186667081468158068645630423628160850464512080902591765605607824946783831888872599000247319854375706432880248535120551081016895134808273357249588324976149835249529309371478653615786485072984994408593796431015609160226413147303342948082320596262426723149951010527840874659629740698129382397765289401202397851159428913812084248621215362801340432829996050890060083614421526904815369853982016323204942770131721097776919175799483959528238534898419806262706095796864222130518049139964782444558957898974463095345710794751625689866512190922853791832635251354994172095125768207013360033365060728468233524288506818173547724028274762640208977386556074991938091012090143280248310731498034339950633693672839020706444980616238392706357408931318279398126712050489783036131468479668831112411411408716964393028721798603670498900534832960402909059303011774780412128721301334778772378839778906119656456212917006545065121202892933962974805480414506051773085906957301289667312297490960336008995846845550879879056140231933985214979712494981657300507204284879280868237815771092933926069438335896264703982255505991706210537504862395750403548440810483659677521598130306911070098967454254333630271891245247861954502607563197821681119632708022747904733620801346846055667959616862310241917571887507830115380387823071418004434465321540324389955083670212458804674970603831586366499498975044496231674599844378754123735869496053679885693460320014501216174595094883114821645270463171035970681851022522998665062273260456380847909340891529799104126833315375225338938699547186363661417199685441393338599906965339233462525455159432098812740442354766864307828306038757308470712995867442186543934919846829008658257966919083416663572336271147312992443761060581323143408132403097697607420765789519830858909657835338278799153690158910532891455494855975624190306853438964077092667247319450845904937249813465148678217783736648630938452691046128234630330318220701679933561346560034662567963101383045453989537920034733454777157633211822073942453626313396736786302129194098043838045756048737501559747352089970302826073128492261308718914081908972353933632066785203693489448785897701790381863248443942243253541325359964279203181706026647469890008964000327856235678920474179533651690044702542985915971329470644443523108804416097620033390826113553451834248752338232212007225374049985197378489565663294066048404643756209500036666899423553208015630277351504011649299867535579238392633148642301325837217308152047247779862475224674303259950851117018685936647156654154885362758484369188146787960241113795447840550035301694177911602055317206890749649538197945646933907186933491682576918817422572865049326658327489341500111559412806662318704085309746025705236652791124208442466326089834573322494915486773879905284788677399378414524322392843800435285346606354092129912095757459413009038908779945956741280191381653563593174767349585228325625997127540933024782593576879977599202093583699065745645518084631600759402464069108664614497436930910015741906902588689063985568985344540760489271622785693289241934816743534897428475460061149167280769479407173060573564801483854459053114902075229173272762679298777243249821586528721466385229457349265160155538275675786727222662554746114459278766294181681096776329693527015063291417464120923246280289357356948172503248114441876457470344086098000106808745069449646988659064306522849073342724280115853843811168718004286438850327313091371870117097974809652993670956548381128857449165220506951528833267372806099817357309231593826455842568941691661351782897247120732064002884642400286899820995981415286103050506069444007246350802205115743638088179249927916111805118384576683283726866668570215507328965885429379083295393643104227864993164001117105068966256833762911737999806165729882237168277374377198988280868299148478962774567942353984292210135284508910891917346502872169347948645815505124377361166394600376711380791541785750422733638345050812863281137834171010526605761610505880134016729026858559455553203549527049145494409497295072179006989103025185270095314199842230989773120917103055891873212170990473036930716539599852673445421282664033630201057268308654056623504759289257198446196317472236372718006196351658160261153205906398378119215511880083346698824976844959022257890109779743634225099187672019570460414284522117422680007730270501593623608183447471636944048295713059474574358419413197185345610742401994574780590154995308004546679746562822507211471349480773317231619176801409699291200349693842064656058751930583555891610156465705886887563263287900615116975360670621795117841981973707166149478174950160419147678509303568980923024727309645260893759964264011503656479841931177307489038085526753059348414473249903393597167104087581836701102106641810551316251100133283411014385205025045209136655533804079610536867184823949864047450062328069065836775793572518908451226188792191796500791122886701986488517817122233154250884906325612678411116278164683250577256368594929924734643105823359484945160885857803227030918591426196820339137346144046778901742651605212822760216528395456469483637505125054514262089814178215048757600994523046740223575359953917765408903839516593661416125597406058283036411755635858483424643847033204542091415215501978139208573250623557135889404991137276570823551557956576878875572040550231779829355436995330715820299869268045135716934771021048546324081297641253234002672901369750052423318954166615095945349357266928471587875658511962373180233778815328130024587276944485489375159695614212940485102973540234606160721027110951624028102324402029742300307250251327606168916101740020204645349147231511160299748879300445357833554734249774394255461413099001558063881054852009922437081687009770458759993504921005570839470116918244098599982691127451926811605983433873303434517800634598389167940333202716876266563457910032179266404387652598488569340178888606252591156633398304876866030521215465903319247505905594479197947695082564019079200865222514710070735705412760601743781836828107117184198052459130654854244813889642916318455033159508916394283924425631232853570628279743943906226210470927807631033136773928945905178823543981803852455793225629802800461925452196946206456463311459193053659526806269559531478928518678011305520062682172250608434507307193807337016884240880974002170107425962733668819290407242739322528273141278664282197919922079087779726540293287489411069589504900087101350829880757457891129309814973263214909277147176483541467296773193278411918470575393512413555042369895804276090204821297211553916995901165651565132861150339725207400472912465278749378345939530123762126927171482540236597071852006948074503263561432314492697955669377052678630033773639055880407922386123437068563477722874887632760360459581838982098105557180776557832399352426180990617139075321810923377306093764923845570481712375733064322473581824074574600163019380544618518697281354210461204677817678086397150502548556829934188177317856188036500797744146002265920769861878028997867735543071390399705828393201660310217976768846003338577625271532854476834074867071872597487518221112497564125568394051333717507308507999178369423564004939642886860136308613907296057103502455039847526214068649986871037609594963354973966961597520633893578140523912733342608339948585882655332513943279887946844780754685771719916086408711877386456378752051659215666955114975335903346274648665434180407373929080313674198508921112525231652872819922727071080588378399235590477180814865620503091273038988857527554477411706320007595097157462516819974693739228494106259953908188548047038267220843321304831375884672543815605944423910084328558120069965062295178940555307807209449561036967758404853421043591047368275618188604426338683467246300110065286548168693846749511051390744089180815644373073436504334032073957222134234278386572619027171550798008229227755011244227290415641464821777267425830020603376418075745130074678103270145130719836252883690595535901611285040773487957760594286939314304648607303342612915845235095740491380907266072909706842133080169315252380077865831644525156667015324850888607540702874971776742153145400716291289253062151365394237246382765163088037611995698157913763960011212621658657540621040183519805344739824540487788238816685607979573170951789372346238864863822410027562227889709716412266581674845924006372843890465866819405210027813313213428640459096090532994742737899894271586692506104741163664266201417239987416151139024423051528289247433578880463186731233652260860037555964418675947491045930060910116570751327777706888188468676595829623417386504139450067884324928012567437464845802434132210926007120591865451032704954703454317424336434363792549464924705282292326342848329339191918820356820921190093726157497463180255888481158968826119237394637590635408039181394291015183656115310130839287562440275055726609284019097738886313543735151629041329001364170454663974202285478192882519495952836532411445068107488926782557206010102606073862202508041058275798989143807776389752726253361600651399148405727138836984640144112775292538836105005159425127235760023633695698131772217694274144071606499386548759476823765641500637645973184277720439722033317133931136039858117757497547191814067337734036018931606391026508575615659872068821534083725245032929513632265767826376169409359193094849726434604884144795887750927661268862658657442575637878135056745446383897609658574585608603885738097267878972797073211824809980046587114696391902334533870213356919797116682436210924829600296767191599049642136322960007648669201029772649985814728957100625543080105477963342430940545497107586146791777415492319270307807111148337316736689041097571863547636578083470494517857790164927814913947947760647477254575364338624949978894764329886999695120605066083743162488382338935812627381249833399787350766709135571051800995212470665027966958497979327452593700770775309467731420783072124497301036596484997186627955144225074413939646209438894201388538606991562725709576077265050990432701928385502861087846289252044689522808704332318515351385878257652479669819986276227972775213439815559120317924636126695243845671186957677128425142168254541968974826995231794590605791856655921573514338239855684191522384822695531987816809895643094021657239074778314540340747154249001521036340648218524742284268132195268104296995600620851932201080676918474050857946270939732288027303887987418754858586023739750446557660586562207313365487492950347023299754286234571381968986499693537484900799954380157186094592135152163472730196433899260933410153231485207044990745135581243941639897536544094541788374058050248955037691520237122108514318841274709290829152925837272825488883492720042083025833662243795086005304726028380507514285081576993619372673054527664332220698395271957123386602423280974357926409105868643044167848325999084240665665866241907030072728949495600918300340013424259870572688614618208457533697086303347830135421958987246242033427558063648435029001967755150732061212801309795112213206243547653046545091363552328987210230502083808699547962274965975003128915459786142980260165208998342742592552554194423296022481781621581763187049978713003506650856818398378585811221749839371036115160317348709783352063070086511929681879936127438912814322595208224501951077289219744021257831509746389479398471224789697492346944503781727072532949951633246662606905970387954524770325508165408182594037100885896653426776885521931110411377409040049234192115239361508098150588138036908310944175556474882907600370337212102394448669866070312952552771337134212828813895495116198077992533637195087642115477830620648352880571265045615324836196905193013582767083354202429993328994030070672477364268049887428599899668762028255402294388335348259100866016392633503212871306619845092639180116870964170171691359670983835786031004896644194530236174568631967477870730902807997881991902572692508686581621784432651528325145146725963763802443595116466194110988345975987308990406021264759705998301020205253854867872691547078090233454463561430248844926311920000752188504241204247982323261095042252569653681509847611713785709044093168012575557136642442082793813037036393614341532249209007087765144154160133992834572283705625327855340106006818274981074671693938552633066481776948273834577067707699839955476224269376452251285397300209050673445407288623597014750701091538711213901704958234147214565117940509337700592664445815182287369179576232020790421739781525585298908881578308194234797054772161178479145800676195280649938160174271504929960262113101920894939200901538185356668042420781091945941134840762280523720277903428091843046013633359040825877185211132773338277052894881879454681982113229199214871413284072400487165800528797271143062406614339601600433767409102048067140969000925674763804443936835514046650017673818152824970553966330746791128491911981648377787748370065776987468035378568438701851251762391337642408597677616584568229178074369575513686265284818420208651126608410774019283106843346653119315019625909965339084047200702192736028915522344246680297111956971497536519589412496663216378913930207623215115208911276133500677458750782693366815582352660236342615786940739329938588538689299712890991779905936606483515323768855789357926007712478284015226423173313570219295098405601047569072013847261688461532214377977643985979242871624186359399595075345788146541307431467131585845910428422902847586810619730606715935669777564735816115220298542559831291130638821368277926000884475702578723433818492131141824225301476689675968932781402038633609486779124602678200337431427487321226551883093994038499540004313044759371440241908915528492199835365369965525525910907444446109707338128153928209720740858324158342753203175631172556970873645888168737055130377889920613356505102638199911235740138229058112346308199339399790643597120220702809201380090577705361037906786423143656219468566363727400399161553065403837888747287944857549428474841115404670332098343523577164634712531269046370336477292693098848844723299655708741019068042401580343792733798482079034269710059976528304223138142861137520214946648435444098128164802549048263787084911535342485074159673044022616209744353634755154686712144448159119492729954310827403851972671424423482855480017361037095863395169144498822049776741196319892769195551260388663352930324266946917606389531063815111103402930170182393649423874900204689227314713267370467248070602756709288565457811109727963439052770420120773009875326589725340199645996555696662196578936764505333257319237886543642614621263059891958933228141860213110124097892212868111273351890886819568548158813600050776104885991780765272743413443629872997895317160900855825335882963593581541576150248745413105983621735794385872878884978855138376176014747392427486366552631970781159036887211804876937516476496412560226543137252376259672171106961705255612547487330154738942423229811915404269915184724495855155371745158579539104135738363288362859496791956368210560593987096725452967262208532485011057912366014678379924096711767161492378214885065366270658922861664308939312518158439292208509079401432384136663627565920479069230246921911637134769163752470701177272238359990557077986817601437042063683787631538555641028837522869493010555270719463739601634508255251309806725981090848793983297517455015475632599152744226839908562209427039611206166404403436773020317863301298068930654069642983747569035005055940558646870117278214144580644397391842622369335792135659622718577900851175481747898266532755101366093950793622074168225328125726669442654538503697469631782702391020748936491559538652748711518746971420414127465563834308463103496253573895836865735160593563781858890645592333884299629476078623872773005343745326441499322471048274752545323980107974332672116069166793185341640226766612768520611981710414101485676907463590710883232232086261705168058578311853229773982881001900473244065265382517297041919009566931216954306855183282953328181079587644453780707070214955385102403569880602507324056686179619094146047674392416629157412627482962426754660232873678326298222588739003491318269591370771315162393780986208252885213022519365608626117746731509780761525323064613134061427448272587908376000430886567024673212234760171532044390432895822418241233604695012304300895006571622263450153233209989436034091136788946710474684718729887432201752199715836305340053210060401679637485028505175266067076483382464959561990454452786686917187882144971172112328818962981281788026388108198390583785470373336055427700629840981430493720241205975995451383297250505517089496842524791431561075562323749769182074742054203281908811297807814042361062089838686475196067982541873189443310276831872810267132866325975358413250571277358008546786098973761955593806941032161828423256642541506749675058661549469731725416535342512372155424180225009651029711198597112478161125290747936416037192910215405841685169829047294582303163211814123583095752788110015583456556221130216604252537501438655203316584830303724587124091003697474801244112507232709770030007053526991093138547478066020035849981818904984815487345078121355978678093698599186945664506565936275142291626931284579862944959018831309907224335472269435679949233055983996977289407381252950868729063688955587725601611544817077304637442533948542293419145744577517370740100117923170884584261692803136691987128455615534661295945190775649074550839162180587672708620505399894582113038170795870695414916349959592535310383816550251365049037046213937190427329989537153620382059975581734831400997676397823930573040342040173335730715953212683738046920934846074876016548359408448707345995852864819428362897373325888083560763743096646186896167438354349736378388106206707367128516084933847573287006074213889061034814457771811387106885046191131761033425621342894305911025315363421555993321009953234139964322821025377945328453265767763949620158555291455081132091758119476825782812277766732867699412490424701195236546228636717932585829713201364825665865112673437576697334283599727525735841342522630567112256287080034623236216129099204910693541368798245342958616155590690420537450353895126489228540950013858105714722801382449258322711509124671732218103784488902020983087946082171056281689558230739066483823780793061575755687318155932275398687353016462954531570823307086079391184007012002087357411094062888811850841505168791498627420390945960761772039165151706468293815666155021893851617844038656576187951084725851990197622729881483102272836089404388902521215572630542569946301098435845497492586556741554352571997122452171920804982548804699205515997341304189032602507466510402481504787494227468024822467614886798727142279730740170160476052032858980575390995680121393744367057652897872758499643804838474779039778974915290976003775496712979149939277797418416823042119438214732950722808491231602864557228707478498159185930634801938792778075419517290944113947106926011556764236971908148093176437233105251061224653107850511519016925543099637490075809928554932095717498086094749773954424228518000924191384692981733882367275614434611917981825270347502533771972901276258776351725413783201036024704810271152487688566125578376715150790644068623029751977043257193305065727620305149761099776723143748411423985742923025928105199417637081435556757163166392483718512644260222676852936516831605196445063116360693535938743483436141243887808683790885956004190095610757157761070591369901255790067244548960255219494784843719676575707090268231355867747258356531530792039107135131263248388267968011841099357450953191829941581154383823181119253184604679685081178604865126409731335025810000262359004996412214744730302090296527869051711490686306652560083344731639461573166760047773659592159796643801127789945982255102950024668173870528635082234764720888187803142935346932736163306841066855023744709425684205114472650041302341425066428955766721763421510215350503210745257086222353797651110609562808987399443123259084328597298032450041615275274552863334004050349975487728522439191613782129304305975294789827113838743088841795254123709720748493229130381353197243541375871336727170994101100171997984848749812864922104707634062545112613235466619378805663597806909733228733167926044426112957121614753546607571578458059350213862561120230711735569534243570557618391635175552557116886341524004504315130386394312799266201747793635006848010163788889386135608641112968216460629274021457915648532248357632231990828685849050120542357341296480957755907692608033554673895913107107343401625304177994567568300084449348499652911619235009609446872316408013842904134262568138742702812541966775375022557331948276165832094253425567234737904322979221740645541496004757104894604056674437746593586027200318574946303142028275815864764438177914351724557419203826312527768171367779676663005819613719481745403716024575123671608622252396662084526418615047049888355790428848368282771087097214117972089815350053753414920389622950886817897776186871303133606889438852115408168359001509846182377988748872310924296564795593891633605453103626924974388767469375073989059581422984226192824217183872636972276634762867175757270223124524236685983205377129472767287952518921502691672227470619313159291064062708991713946944437043984340240981156068497907823679074632945739168844069330320824482771358728622820292225755937795657442377245617787850153657779572051373939252733408603747848890149219792615664194323253878212682868014688968720952466648806460600413218397941640932950906987579813868808169467149475660022095351279521645198411527837651199408461062654416325260043307217197955937088820140494535350501100343526373892954251355328447418129602839712459053251861735794199788052941199943158408671142441216900489939109761607075853987550167825908670298533933185559142395385162494271090561255640792675366080507225082489665566746216366416814200818526665913177909497923719370825408588359702973816425693035877461383405593202297798966955413322466887790348204302613351061653873920014547332945273539593280308133377691992561503956872786084233245942321248002075492056890730636613722051985166059754820756869145146577286154052275537617497084330231903888727107257402056863168612633592360128154361387600117701764621470280459569598406782044373670402942816660876228264407359024464896095622483530583638093938453751436155832078887057308228883156416552155537211051241118215008145686633841929980755788538525585860609481703023765388889468609410039627016900062645166330003652203993191011421213342412077682678336178464262015238898438612776849462234966076481994189538541351088358566310737903136669431945382889735678971138966584539791485917278636858879898007712751774681765944447612759125869997436541746783082302427119155680533210159721905288378554943688784892547798771491206841096965516595825586327124516659115348849958550149989732962282100930789350839621446757001531921994799090440368596744528163959108335939464190092885885877703682607698278378897311576697134933321211515842077054771963133995444084347419385121088583365233127079295552427434561149165116454686563253834542077771254660605707025075302722604639147090317365547672710129481526630585789250104240815720373522212887388014647982915157955700526153684083343686181175936133960382738354784494948034406942700034190474735480724162393235623007595053800139234372206134680645397503129604263944906285944985250976047502243151622960918152618566115921719374811044964208966653025643877163674817650424564429570532466070623943151951169958920100404469551964153183495851441076235534713417882048720146740193689013380867781834557116604223590460080227960130165976853266691575314143114540942131808048410172985548870432627336882131585181736398144721884200472027559719567835389907083883825008604445439689561646671510134605771941549927078849615398513441254863068026897537826633491249339957412178977829821821579281730034601264081218859582585757649039967808419948802959278949612845041715302742757103728114591276413760819231590159175497697171787414884476079860691330980682188732515700903824682637847698158102838231755472477803140639679575998338567583239353367021331839542083168959488334270153245124881150407105749354152946484818744935451146036467156893275154050928534264425579965378860278058280130234278012867476986080905306174481427251779795223799035080186696263757976449767788207864781632025186752401163109575091813673900592766003841159366722174030483990569605351487493072213477191276030168467688720178783075304293536076587586068875988580803315365397398382911992911863571635062729873954327306939187330795661028090237318987857027953579385405978377590846712753946820537193431632764148707462918504901940975460159377988313538735023318347601266079623003143376487267301587317247920636232072236042831299875173979297771702187080557265443142953187269599376878591595032684347385879065238684730697631371581710786435132820276785257894734233768616551506992678184738119714013574994402603143314385937694287398115053490533016569137952256935772165879118971842744087819993889738323159063053888419648818916855406443085387650278601222232070843906869358186683249670413347629023091030485147392653588617869954927865827985271846544639142293032419151466130308354182269613019274270381022341565050764606023096223350108603510688830636067054270682241975620758933804030865194892683979998835189350807481261753422371776988672220901423307256689437448484485239224496596848233936921469788119109240076360636163944548941381650199091734969307012723251536686172218595030160703503353307589962725722921788555242105907829747844123183470564074384025709638527678183579220814132242052542850058299526306772280196750841033171363928952224816053698437102861941022657944931421564373940702999735136303198239045103383173571100635328119414594482796948326490165579826617087300959747676896808139498664941986135109240920622827274087411406628160301864258327549339550264336306597655419572023771712076909311395045159090170606139394235270013006673313918723844611480571473971678304878672920223533129147762739214382927781948617473985905001892066673973266679964248627212742959943454194822926745570631243720796049817868286631959071620269169351040336778957141232150523936450696775251321204636106309654508498339326142090923548070513750126662442797128204430846054574787154275562238657796347892785260308349074258438646823182242051428487518391668246926433260497538517686614097871732517600208243759536238874831413884692115607757476151547770072164924732758433471474391494683592437621611571015786352830281050640310836900755643653653394864365548314532495815637156136206063712005354939357868581887305080859145406617258678429080122383968617144913091512510394883047711761832265642326353185377540383617798515733582519571771107114487478191927751932349307380808072747548948625436802298019350535911433718347688299114544674968008059719081057052312772361247648741258538225049182283517484442972810750922240454203375954765639700949038834710421296716303527229294859515874236271655079204899415220651622615015910316855809295926758600318459720210086372672936829571030616319592351999692531794952384191193798702502970435202274391620884753263851548727712136169958161202494154047090563428049007959968988394948479885099524417703526350245203242605550713499762099435791464612567885854785725157005225310464483064675163615261093771457475851990398733856626159153171904364438963521651385233050156433524284466358541770909332953494280500495792066556867143765283796478476242425510239306117814616700695402243035877663821692530511239645730306377891282340099912542656128986306012256862690988054621940844877608306105261820705986080868037036736219025591860695664709674881019915461977258907083195965334561576369169430889963728854944158843887503730497621659137417969354193989217536295836632141648641336714819919619299429789333192486292530441045131063237998262328874972112422674041309861109204518417610051807456056875085880690146248375950865926150204264977689163415130688198876991186440992361658300019263967739188029531204119031211980414009077350900116759355110586767608279182108441502170290739571757081704019991726314826097317638750071108181722447370168737884950106167748768377187797594764191789176161775535765678177836298092804156716312808687558507986982959503354642362696920027941715976510074476034622882182976581309534025310093969363920423053376045359314944152725331234225957069345663788302851282459658690906153982583844421684341845529655054924344055484974645161283672413754295425835520956812361146667841301496135965298793667803799341829697490130646282098298087812963231977201870526701892471800539079978704336661214526111711323932053071037124558658841023857117056588902148617832744498168573457135450889130847530826820533929670963945224854811344523919710758612207378795878481880233775858296285585400004254269427396155693124671304524560976511800398403871701958913450213726138876323590897323052180996867691348344640766288269129932589762741176095563917423740043875674985841708394251964501217740329506224840256864713052135590148886619496979227401811437866378238231672693863937843030713894335367066329517141560020247096842682348394448280204518339879461761383145929984208787353598082160114110573578741603080847648998804541831795855010410953915556175175173145062711855129132648040946223737170275317687470395142386628497620279187848600108187068536315089220503546421807210974720812081261127390779011414626050516141890838928491334748805426409359118023504552645059878118379369375365215216130789996786256595570737620735298903469846938621838660816899852838797362029073487289249003142195775979635078929819887809546547758810136013959461778283765719210273218273389683926845870673808750123104241644568523031487160588957646323552836800867752375016268273273478432971131133203381653438469331452245346503636969122155417461991162989311444405211479600332211676927682891109655381865051096547358655492988433456042711232894211329551835457237290298494489222636279490711956798740333471378504200384347561143447971502316925577064787459640438581083566563736202585228578968863663205775583910857082558193933789749377551285174779612983576559598629861814701254065908761339862870246089293879762062069664125270649616506271238901629737695987361209952649681645441592222877361099236661118536868738622491618881994461683471974343530154585121340142946789580780959443212848685431522916652806677796842482905097090593777044658086305740190131708835442800262559339894673882090340570364446029240981082800007372392416749827384184545277501845571930692089566890102717344306256819254218880947742881556500097219752042539449685248500052456321633481005371038035926595451406518602514219641647360515500116140475872532517378304589937549366404782477035671054004258627718030926110182234313325623173632470473357986951744106199981079527656558333181335533715719341775187787771121721919543511316150580665099881720314865151065353709809462777304856145248517294628155493072331461152952859980339371496701418345834362072859751076805557399932846582193111277068997017214103592415662910073745697730875754859712458446614370256515285959217595077870982525646127347738291753469338316759127085767621725422150320993273347671525115016167563889148931555877678736712308149673334112240342523850051668047096075190434312220661107910982799786975704805319348091163949556634360229316398202143787305758671141442332614933261864262547243129092057119484373616521226392891770086203143753282286766568414997297417611771300512899138454851936455219730461858249019876374719588387967616163898031256369960875146986319979408280723287208601273353747844147468533102101878496888622341832808123830273288812333102122077154419982601445008151575874991563710144991794461946843809698861131408694370357457426861956134294816034146000055477396203199672016550751307210163967663071303696430916704240359400054524716467626069267294306199735041915433087897050715534531076943977198047348827130931768919772532478636326209511072381103710371028279024316840138339655995756204907060475993622335769431629066601010318616111992024349470341732067056809310438687972152196824340251341942571641415780283473810247575704261361349751979117549930329357509515168113393121008756856199319161472941896216699142279518681925769815772619612716497960806920268511468810876757756707247088089382951485399711102625039536257596889071722639390002303978615182044352195981709984882306089134937034526798746564602412431829194990716078632768302675322202554961281566975747141650588841426065614257992506539047008264705238604473991265663547570817182508258232247600408343443781969665074120534547790156579540179249926093144419443389887393497570014260467138008663464778166208491326310194817065090662821989849340122130061524505454378405779321099555892218648868739758791182727226040528118114260363992291632922671147508188657065591524476559133814627326688930019031171498253251866813875951326210020573571648320331605473962152786429281070396984681107341139826132131750650483347201470345226496220941490365256093355113991170510614495278591670820541421877359699529610534169126531086504703687291481376034298880933485199647960738092702996526225666768463831048486015147286456407718352690611528514896709404518723064352708263022380085546377495319795215049620203322386276648747847832831302788798618140153604577626877997542684814640072068553024476456843726945827119616997423798356182575125051179782222079767706152046196623659564417067889337557908001466903669494331558297512765945186282172125145790920099728908377155209723189997608090673216686081284831756138862314551536951740404840783641711007098692376227903342739187690285231250585755053584488396272137750610110641469477125401346434603393182639037100249953832346442439690760194650226401506581365966034054746029361623934815240186082693717466742591929119707112889781931810435365345800267927538842423542665259032799970115956786458086764261168172267753597969622270510640277540922405101732943777627707168506982800115845711676696659014584533832736303845295066279470948598581414375509775436907589008622763461781856361132306955964238257946120649467137931254338586375184631202130888052504778340530625013322794231823676137766497989134993706249552201811699227931900905929416116189141944707870497307860692905376056045501594735176194619778699605287047869582458954753085230932841165358675039953911359838622452042539064096054840794623001262403331482591165061499842627388150529772436698395511012586987714053882881386296391707255215176060148541998712994895000866998540763714007509390888315232116754453138437688917457807705870208342512149090158944847860827171445584157493748828726544530653442537736339043535877883501361608806541508237531497017893834714155135310510523068981942918105428149296510873977281713694329255949851182330140375680512447280334471990754704520154349334349683591421864929546142211337769232593312628626670752436648222250278367319678355538447670407631462428256329664239860754934938704875085328280400938029515447885029865386058644010901774605354224105492579153672986630475976823256869644175220685872286603381132529967737584305427098365816200544133303843559675907085312934598936767595887754200421947262848159909994642527211123028641655362967830495956408610844774889678249284063162794641443255299750520667660890200430788816336193055118869187877229994444998166992211648458207050656922282681122199472966212188554473717280553915985430834573488754837296330095797269380687424261024242021694182945392154029739998797594520842367328323962325467632323950782688549159598946614810864783827334835189122723210543192816618404618493722442246939054120427091871535014102369542134911600441315156133967660303016733547633400149287341225420387768342872158675418370955047736633962658686921489078639655229660668937291985984911407422886470193577870653338282734161886614535375884291022996776347748826613292887154460284813921302862570834570838410639654867621289471833285963403489720957634166448906210233649944734676682561390437079819741973151798330214627569232942498963482352164915228035590366713911205316336217812722909086157298965456566349929982291029548399809974588968273832042773185737594298483097081083655113261524696381516409354214891836532742073900525655244080064319256157081168931330071054647877730948350468532839164721467233649351719408792058799797416440953364132927085321141432750732962166485813005293362045654677649531602331881157402540986909794662095237671292782211985517606327143053126834559373949628938610308621981226195676020696108287895760294318183522718372065900131557407115928996388861078181341233564960950536284784694009268127187110046901673777101767904668200560132478524317806419446198044960920935532067635601443565965077274953595566588149895670702471928632373521371457993566879136698524233284769716198438939084254207006129460083437851529875625457229214558225778844140106820517029372802956334243064985358056904400976183946398836105631043319426417045730577574993593210291797274106756846132509383574893289291580709055106393566873125752243053204019001768497440899287963727457802893442403441238575845929951655581844277876502497718791934834431389321766733056510860515007913837119625800674533838211683926476142597380650212589952377329759031597769464667122503694547760952436096621340398746461724327423453810302942268641803999988131535983628966835491024722967997246735438669941072986564030962822343720151374049213376336856489575462961828071016363675345981700345899832738357466272455662425186658526214302522608079640464461279709286514580825694947560674835865340177742753234402834874401114378127014695496581409970046768991469663386105644091622004651715015404627447033495657370744795865818165140354246293349064395076175398055708176698622293726302757514132219137711733548604395678880403633539685360154032307258428775284417446176113510243578902946434308439512917978468030454984968701440282566827641759415240631718062859092436384275445174114759328429034984472956795348599673746469594491684299234756851894166006760795394842656832337015055278165862130624182917001211268359882723627448398779003364355928163224126012958605207495326763210370289126667268676930449648392895316511090359571965864043182904295075218319767234816651895782880821209219345331443831468191117468936689109591159491990109504804779394652433501765033332351994670416965238992884844203799771918532267242671527476224480372584834105359932591615403296415898095294712552516577817566645684434075672232796774291678538134718054468473951886384173160952275528390753638654117235786840485041858891904790666444384958006971492082803838521881634971000551975939287668186006176003367957679737511889574838257001190413916152656146526163012712589742207200405827170360664815322322949612680406750448697614825726686375800806179237734475633417750625187734576406985187188450506438542711724261452070668378691296793207571599523144780293921253367667226904237548226322763005674571977292505658419409632436034611757604599972891007791691519956857766344521977963231223001839045577096118350002946804323630950823752746876057014256875054901040173182286868667496447059239910269329566783690064623149671296053407127583350132853642718895575924691594497951135270686834240614289814212603787798857356065520144495572024333627135286518244395732233128508681880190181671973761771061832906950123817076834551506645231853413835278811196978409117911797924681580258131387375780147671229313223152356285971610588535425055452546960592562912690024950397294125779521096802476945988026355126984209436002487464516952738462104315557756959053848690860346189894040107927773326172647494043527550087294207875092182712300456979934140284120837375546677952306999448168307209953244263378468034174628492863920539141359819678807843260111132186603795193873405017449356684226453296807218388258975805288294065584151174523536800503349268292850518649807759299787419268652908100953491754429533057647974347136030807772211039251321067786382688477601422506306358515415556973076755280854309626380202687385909800485202740711894486972732689963631715092654310548796543135397489625046685779687206394320823455697993385545265119782724371331716005337966113047402604879809735199814911323761796651301267103451464875374230404577917572246759782559469020791547556268620726545076299845484401081468462288560857181325960797235982234667550656027105238634157713472927919221713368924610210424463372805950776295708419934822683305774437399732772439237791526047074925015617652901846953441773672920562082151833211303913080645982188918198278621842149378134570891942964214824920940376377961496836044956378166455416692117966759651272395144884186405060863640768254018437181522376164875295614949986929939103336095064871938992672078305851838807573317745926130922479193113362115561320880278716495788677347613330298668988870694812033871891415214241986956326687070665402051315907032238224213398849768581850227782269118180846145095175423538412983338656139630704885028402909799499376599617731368635945912709358217408215410794938214053134328570000345744373483846674019165576778019274685113895407174264872856431673562249031568091485989552980029860908665860637921391763713326779404748876656076320123330213361176432452017264204537305344495068743019479279831332276183153418053140569227473813362882268124841126826863016156066216299648314245721048775493081556581538518925438635675115082470401178282529647921047839235100275948065651702021122662949972299469678793584981781113002459483276530151051852544187580771289341608360773629075978630611944331490112448090912423483266377291929176409183772325398116435847206280118281513680491739719669290301493022959127482125324128906262067495749885612509207877977778315588397895785684646705469175782060977592334990841921394930931549855796416846831431594667217217704811230125195843380738694277108653868013163729506040419157199054954565342619844190450770823867894958107942202884576012665695840421300931349260949944963824159729181325189264169527335844798516203297756377710221440110570472993645358909029312902468856796521116777464029486493804428984620308680661928505244726804752892633514508733217807884443723402682185471275483032819429438087358834152747169820268040219362948712708927157218257713846704742549249546961023801236472729303021007567383305503705659346636772806688016398179782636301477767726598316981149997650261135570400205636072752546410510331949019239110737324906670018963363641015689284511475157415927001941130797550834596162452710919630267390287805522562022430227679551339899568184248764671069117271916512861516196847872063222286943321606005604905209955344634486837041722203416468271726671639349305270857792830746923905785358846488013407166889667791433488591383444119401207811850703133374909373599555103976794660034655152017096456020858538581018507854344250464980557511479642739378937643251889768571718315286579836583521245029423121845432994720946013044300802340631703053574669139614014617306450164104096347173599633860398173217199889851224935595705154151021320636073752643221226362308894882364606390462393760518737065923416857975647505362915804051311970987146847612690172818866583932107872623884348704859203422021083135112392720103545475757220134824543253628151766346425635160364041271949579973679801356454396377814311797795924509332778092499757508557636788793538135887725581929501209145495892561422722940301213901288912431297024031380288178030201438678880730204052130804990321246199126151447027108683510577734231119619754087510734981004752396956209977093819636458997506264548458836438807684361976117286670451587356768594487157708900259665011099870024452882357705734798571577960657547428829210585524319328945632942762833348505824937913661874007826857823587755760539428682081329788073436764505958792947005094773471015052235878714430875778909302729733498155889625956989374641163452809860302645989249262937985955796911902923517186880841355502155958692232484424381635753105892505088195276736184651077378595772230108823144607333214784782742488284283417341918623645139326189275030732951274241419415997859543269542172397084096088908730190557540843214286578626954606728551571463558064256923382321776186217100427829501072224189151927534767250439823325660688754407003651170308782722473014967851550235096182546898647021476789706551407546416116577875465519348223641281742356872052341122904410405833578398722047035621743446079218045161198241258986915043882965110120386319163615562458721438201119415987121755694733399422036391395105384147944056802325433207413989071208155234172929523005392109741731417881549212070415720805420337102340370830103680187798571513157327558173933482503626737511619920305655908377526751948262198068522323227758412429633914187533123022487130610857124414554323716459497505667668599133774576865411300562005141482665820553092741736625048730610668586964633044570348536523232143619417781173054260091526691494532823036214910476518671215203623621461285835923593376685926211552562673851480195268474710482485884723235903354407005459792478094576272938462598963196973646631308094628619810074522106829914541151545702672208550611671873201353437497177172602394665858969670625224712878924699801519372268992406755484394152526596739043577220597394395649576699649556471577533384859350591592429419835202490286549980018305690683427578631414329070007530124497419794053325856725161460914421972104589022179110399762772600851689710308815691037505682761276557046409636542830193120327793944730890918277989630705629665324486734389845290888971434409912209292312788500371424115988980802782282532061620447830707226289251681937972335311994296393980092291581109598280389661786149049382134262176916866975000167801753617175642183185738767570443120044052056451975887052212648940377775489020416638700701458638926062377701869465687695522197613396460900874613955698732984615242749186555441956189974265458749333954175264665753373017422711557442600797076747140156127417235790375496613312955922852558763631572404004385850690698967596685793785161225949961295530619861292142856814811732592517173550880853234440630541367366584845227678802145480100922804248790852806470641824822381994380890067080354482868622598709541693339153094341540499191081119011208390832561063440569486144939201072245369284045929514557839455625460926376824201350771229830035363691000127827625663929256752939469704092786089864851898343922871358935939548296168070493578111736342334362943006127482069997601283310930059232426753761225852785964622980616441055474751201149946422320592259136931174491080846730917137498178788858153812195849451716218982347552841049269355284107605014877923687481283250571780613901507765270025350027794426367385185728546886193280728386243527805206288305741163511128023138300020639047882377679444767312928293965822184683465878807723287059087265798377819788300063228774422686973083910202938085672862430226699148726488750516383062109298879164109882959510304581062177084872013362799093452585304788786923696325501629950403050086885182458201373404808660135398101751421723568520642899833885432604158862002694058403646560310858224482868989870241928826110810908010266351246762296136439942649533674949901826293830181806565945766835842177422244890865999894782067309767719271136138300103828655082119170650497490514576401612176952064348140916727482891018915061006183612623541339274314920711024370528828962057947070612718670268702654616626828753784785159477413093716189249675857880326455776382061388547401939635831009315496726524162636854062124318634482631403801025834092665208611770212596393583153363090388051757793905005020508376189478058939288668714595572037296644518422406736552047477294245486741670251829690850326915436767401987939328423355060470288505511274423885039282255834382140121538388564818201860130017638482914782943935389162977062444975571313482621603637166670478587558537687744639187611598116226396559007816139546725086239531077266642267456903133634871361004889139795394817625269959314226912736635718590376356961926143305794940569990026769505233066689171056401059990321196842129681121714250943014256367721166456360466273947848534603715127172026566437207735627745697973003451687296451692150041306165099153796137544764549727215970807968930997129678383032005832362888402268988827461324603937183846624582743636719547823114608935369427181977741436044377875885516055822267309999008752806162058963975846152396257405312653893724985840815684057953370420522570545998890034704378426990332203452688002235740093764021674990957193848616280927096596793965851372975189579355313848317430192326082981246000072107102140705148233032444981484285346527264275137231099473771003052090545017127012192641391684590864580193342204650797857946954227373439373135685347377340858315337118451309991273187328278395200026010894507013301571997654844017171030832912550213074718454629717282080853255612346536076255660071196633323797714975327983840877254372385330443944863384845711902132101515131065756682822896200188581434500893064056204816944861832247210579463120047132634857971010866225576477791083619263437516042146387680239633308200708646970922675521930939205618093105370412033979482307533156397208303070880532410585883065030952849496012922241371763650407123930552154840746417862600046672955044218233339129780555864318792281800555583214844308588442059391433838058738667677774582619169863244185032337560781239565506010413204393052692677687098069794942284148418886936666859625098136414310230108852941316835346096209059198637594760248672262399286172789413229037817648499046360095284728036804582251505330455630992255367575278047349117653482502833328945855558355077690376887011403298537966062800297666512540875615307291899557015284530150004939865242783459044539694200157334204308776155172885505804884619041331176976136879493101741104544709752470809872098354273991752939896928848219413247513171231768234437830698280277480511412129459136791316260133299391821767774444434268755130751386988889360812515755112692696433327084669216239908488410133617004535779265850723748764132969683297690750569753445559915089519005579163460726899050689510484062967881485323322532691040260652711776932394781820075054465815742758618091511434369364982847131505775223860744969526263388662632770875059878708425793090329229264643246445064203092543944871425840780494026314466237009171576375247741963163749942845959750390431559458680768946071172271203801134310298331526603742967902584544029696195468992458667261475404976270561248138909738052234919018681531664606066477074080034709181787897057906348502665701673409698136163921553270521257172266521057814645245874155984037986831711148953176504692063618921085724181581741158864181808926216683706453521634335924365599374022984459609247855955333309161798002924790313049383468592437872380622588839107787346423646792042310073646774042944080077032687919428783585431866044044562662329501647029298386836085999277919518098209900677498459733880178825704376160158061843900493003598456283468938531115888615092470919830642517589894491341076178098315925299558025090106730352858974806208306965961908257638927100283322377556821290723327504661820075110842847174770165000490784254277663905711412263271593757431053214348182978271775804815499380215808181506607689348323198529297092414357431814734906735678423277724537809300159089114403259606141533663967625928311084257466768688784050347549328690607252063415600169648425257019275070350253354608258432470116410084435014607929316985595694519672621145141814094204976711376267392317120693599152650462097957123285273512957682465310556514379955327317323041426024372817112664657872007703697279396537093556290477310704112458131438064473055268397286913604628626749511664227362915861244148656493322890008288626002696347349541113445288168115504998891532090918461703566743055967564696422376224640718816929614056924296216612028254554202526482240492378671395606303862581352047456641005352809477787003796618821514773863364180647320944150515885153369062516371204546217371381468107445165388406744911074031390205735274391088349357026119050529728076967082297982604622253044032531974864558542819992700388241578347638252060350227174624835748103475735303170874973072257899530101398455957253801726727576185369330838258715628078712268806803519866921968440558166643172275243825340970598474241383640687861114207368027043360883693555366658700107912815819378369771525676692957657414778981042915320430505167355193688541961357653541654880684744692306293407994454303185848291575293576444649499114893528323189424781144286525966335541910144300390078186930549660598980578389937532427049474202076715961464958490478010837655482920515786453061426414737093941899991335478463251685577528301488450488925777825306240682533980188308437570086842218076562024604301687606216034400918358853638282440442338501200131526403243946688534538849365430866337239902112981444156738208786403692896177733118357011490839132179866625037263594720825719206067076481241266080567173045753658552688354714319788023575984829536372534529084363624020923099492102719493300442956644647514897838231104029042319669188997339759682911711980176289539598089099860775537446252259274055383887783635738701500201810921221509173640615368029282640721430771156474623578588442385773328608506844265238203460367400989510683689345841064672162642826678279162247628397349566007460927814963045663814947293648515379075611724520999951522271456809364598667012744880025704439871266408125668942989109142070326537353683293577899415468348121618817491315916235477770547372752097026598543383459607174384502311011245603179976793278446086101740084574552648889934945451604032258450457158583229785414400506226234180076233857166194107639483449095659204245041998691020196445861942945440824220481820780498104502516687108236067367585625109729008100705228867324608044484568884932385837290699308122137390504332491428126035290142144716158840823307049142768204004084992497217735950621187700607397021950255899378573019132845582735069353987573655792622792160385268738330593901582950297767126139655409108673171332338441583146821295077573861607111761642838542040595664812920535511790838552187550554187041411492444174415887550638133466378994935829364132218755245502061110509178639072139107627945708241690550121276829038156772282690101404190350359500122131203268611625188926608380979690758686500256371193455615788026444331716279570903471278164722518981193056468601373918867277317029484870721128580689006756219631821949892145132099361495179192662141250159975991661085882243461305078935851271410479790983235496714880763382592088236106170011599050069074999448885790751483235146201447286402838299736105405009214163308588821172617198756492057225657799434337157316847036335473553359049356131141484416170741980544102203464063189322273852721745314677517525998018544339295965237761503088638032401186935344171500892654757901478144234290544305434064325406888562359004119306878068503192013705249655059776430939567311808479332018223437877902105587141477445020775669057128436220994032099357098108817276331162837149823717719563799245014807275532961366677861377405014450620189204529400743406153552653096410711855327316032732601299493179137839319320183456548309322571209530677116691296665230274446191187355414984597889682919736153565443691515724369879339245847021923536291823456468308143466377431176983755024092756029539830695851643973910122173378523328926207028468337607431434135325544772371329437623466258783875322496559032612663206980560453971531161607794034611409460362706169928995073698155566840072425478995761124990806870926762383448150497820563426858946195143158469148389263058540474857033647287244895155111111308932329428205577429206495674493953639230611595547026917361253180481419776049117890710490103221168579166976602847629081682459536977106693771087179491672235127782527717608014524486046734077534165445745271073925569027285179155998663317547438153349244938842787439957052756030388783887382670742842230459250361821268115560498131362072772238321810914934281017986282047411656507603742296379982646277731629104846047961201445562867317352214171535777998322599794197487230147035439053868772564291384464252960102283385117859648576841662360607961408819796915044969940276431546271604256641856678711186934369384212824330154046421940336512334568739009835729322796495425366969277387862533465005788973476643553867166087827703885480889938528417816295949181326649206592854648920091040784836331345094063731531371758602574997580739954328228920181696234527275855955095897692975236431177856724424598082261781877940981919399100938779900035419793003670759648452313298619897272736716929321213771054472100972042725127214012586107308154893683550075568963841884083902722713787215138511404270780907253118369204857844568404314620219757260405747373201344510085161121187814940577829622847254859048227746791728424393716291513068440589226948546589352785410446270042884786676873284741809417133330747665233996216852080236195433686069216414932758297455129803073026256973331416138216782046154258978935785823476236886176217164993103235295305586844025349038448760736957678476137755562833396885191739600090942653357995996054428553200248460317152572201718233975288415165901427688253543216041000765263815105241403712609361397481896511756647992592450768305275382593431538557036415488781650661160002702070967320826084646855905052783687386441666792348881793504181484229437486029448161017637365232182078811747524956237392275459238205906345924571179896509632871503762342652194496300955062640711749565045028515619288863770976481884533060884765198115467222126103717830444217056595155791158764524104823975007468851710367889522949830498827902469029598970051631322084771179113761096638934611318414652385469625656530496623868681886791578713879253486114827758788762959076330325932792642467788342697160601024321381652576568114627833340646966759263521498697110969925614861970627677807250857269600243207705573618915441402135912855266042880651054705381774982612692353586542562136811462714760085465186777771943830996395399758956964615891982577505359711022533808499986309524444907400749390106220344498916125515257282216264622645690722724168358886002479516633562618491729497768760066938144446428740188295766163831833314550436987137659768770503719592669275641200935071904012193424371278671910186379740045353120168840000478219879527155812207794584524308387603596914747234406369187736048706660246378861210182658033455770827974647638174378376739090680878666680719746863205706799339807179626975489959614370392164535163298414178439058786360042937342694355179067310368484318225020767224152020367120713680156701033005509689992284540352432203214104159896951961318903895980306253010851351988833364886624872608219756581965558183965740481510578992526971324898132709220789929692396146671732269873556952906377548376251132603045449348399837924034741019867494087112094296314974380175722555268295600752908846408837488129876201259353111954005273964540128711346326812719198432012889437425468111040931852103213425760180837406819318178796105926779021478156658200957303397645546385079927043695441141824858810975475982705746208470257282686566001759722848871777790217194330589196625120185219442227909909209431340888568817121131358195941463438690104236655494709906021861970767732364682099453863602497423064987381075277141815047047355521019872342757821972759895944473231065716672861851435164147596856995930995265743643300707978074013074586350616563595115582907189113230782345373155392282874612377854121997193857601976794882226610826980432645886904694186269579065183910799150262504827713121708884632354765085197092367506867356154031911501621080656239774981711108266031598229311335719409641942313418780438284435920553435097750602650108679563378956782746165190325353807890667966178835269624770880371403592393224963948616136291902459530213605515325353458325335793678813116874968967329983691379844198064597782240129492546562623258552290962174294920769340816762870235356689620008776765368677273756810304128790769390421158595749386747921404006188568110271676213001394044664606562034665479224253791211581226032074588486339959281219849185984271290376144486871915469715361354282207974318005412301932671943888274337759480622434351342914147118527385529815707216824607553430667149100301885631927709908652775492703990808408101099156858077615437349392119213672846933727950172465379407585852259952800063408173841243689432573739027907737178869023630550899317835235101718979176393149277666486286694618058458383328553520864450793518309004901978425447136523075644803224112537852849385196906602176785299933008201429649169732480991127136707417489093074002991545533825342483779064802570757856033429648378199638291978483946828011391982573299183259750130807858207539641676546350119635246786145642389978803181968100643394745405401769891699802790881888652521714669240722953355256527775997963893082008468941434639626414979530964586220699571531537066326428972120297032863316744902074992888086379906327932589892230549600936330841772970878659375721646171385721154629595575469681801224337738098837091031975539244392491235943012774793346651258670106346876800067313841934450117603343985528316584084544023150991543316096838209025171748543744693001407897817038937439408165121622851756435818777748624519885482117519277032850851092345681054544588960194414207391582834732546536412334003306564236848519139201181514829625027074749068350881918021873835027203582737488953536531551822401894091479939664442818863110898821615799869182575566001943323220525931675598515076067445189472600098137333330487232160057435325351511102729358614062968053273542158363091677704038413195105147344942035676850208093268052009651732772048683397265000895973418756534144060024390726538643563665472122652743581671504138673263961461499130536843584414414702910638838199985982078194310937889927323625193914250239042592515109576686202782485850553517922225632194911107595149882211373330255943293576603016747194087489547770329645656412532868754292449196705275165032651737936173089652139160238544383170881650339094135458913417474393558592009181060368451672284175111163064878552760617117691322878390284756671139387295321994156591423395964919374172740957961056262187476868988237795710847033891677149874021740565020103169615089137723432111133299778131900478063951739685579974062295443974350543986337154368464645973592753604362163809718438029147589307619213832556970782927347034832353873025415112522058418362224961734656026312743900114073067945422782949309492269235246352120272952304600699800744628938847557828809621660655233782317824922698463435295261625729803222612986065927179913046748625729067224212889103491751933611690150386370972229098171501287781089645122045936525237967201912937312438043039217164069099228701821249475633007281430292736977966528833980153089099486975068660000935777117253728717301859926834669691008276788711960160772822807498405334625620416711636102776296767779064393870645458984198170884022887276174413074311594856885914925421680232209274224678956445430819710816006281685488482178312555717622559714688304509144774205755169638185085540063456769527340262797124901681641278057356376360481434737719888009041455858297232998684642799639603992459819942753689424592430379360398598248611780715291445233527434881005336595532929927281665488797621673233001692848208294075209550869191062809984427835841575645398624019649227974616047612091701751011485760842070504818031538160918467465097481831975049848529581306561753447686664873605734292066789769773426448700547827783436914349914765757034293443676013470049728256939350521015417367263173750907421644701325737846166743826772216083041504826877860390003045823551331780112667540082502891661159975397723961981410547294293626815079677041791344411212472078167296326770538902265501819503213769641152175343797324612114790841965281411236703488310551886801657269567820261652889389931129285692646272836083551087238488030340836079634566531320996299920833587272761493231126731823906893471259298964151739884308119235599206923468074117771214389872926227926633570482329478029309189438225040336358085877425267534243378564455328501735390921902403162232160190945662251350977018837127507136691276152354559748306463455367239731659131690556186255541111111229316604462754332515373826832650022199456981006533168718078194580874328969899096456946876821091693336460347985771091915229507617238728429755335863667338468942440943444519997716039387443590499381157337399311049543858886672567142735254663541534898994025730792210594442622818028560002809997011937865275602645131873740816605326076401323368450682612356286722479229042394594127702869199820557471593085029155654669707861842602825255381400282863720813759277747032015484220698172997636551850512336281899475730354839555753008120179939968677412881270064186996360273620152264122109470845378550820986789424070002047576621814210561332664264230514674405606278877609974947385076576940796666766220190706140071572189382129550206110517749686845967388144776531384891817608965456277428623664194490334802291696367588137424657582801738544336483335006998543911668156820626347969497179159444144741170818289465490179268484921177099750786241210131059154651799494426161892316852855642001467808806674802337614381217791104034410733108871073503698018939487852078056269273495222705381364538532030400879179576881797640806514171226630965993333545190158539020741819318561260825058668860803129351216590239477524309924245190699233041131140812270126279836768011804934633054118689236194900366469575320458356344356867042207828281571486379985034176314705318695761316029492519388997963040066265594068770694979021007426509291357001619507171203991492320967583579280410693620470753046620871078812410508586738843882450033223218400314521027459628187611880374236054458111104719826407125781348254032522846884725387096417105496089251540874924961614796490770228289106399383170639677117198854429901540485973181973976037133152322411814277728376634787993271862013952648876573905888901770426873943744873458248080273343056201113801345797997709976955227775148284925124596928411196259559233527406572065592643312741566434451308984086092940871588652107669157441967652441156481795668289056745650147561601640268717527211726491637814572198948951642984203440421769673544981552264654537557993664117690730774194122948821007986710192162093695463211159764315207108028174198464083402172162006861973801578299968787847138410300615368660880991288412396418026317398372570733572903489099637763503690003524555383958539083197860478175433297903780541861505733239652147990431929852966357571325648208954816088479654872527703178634794597646006360879669734366367728656673480950037204519410257510368844736795551118733563306841571486978388644890528657077608886839962229349610767030785651678338813053002905841483734127450191056124685642443392468822379773280995208612084310293338850118748670275158205040981823518345430187847414022550824382124722323644720385873528048419914875562217254990332605889085567402551395961330258164036947468411267684372989656093216155743738523622933469813714472956119068175804255941408802447487267031063465607672780241593365707058460437156106271021231751896954301094227496302652271192993561836225194879454600432251332388514327239127197961674628588377575428453271499599977095629612714016430408574415610761878325237234637869309437414210649435478608121680125970388087193516010275431442128523948622997276463581000492376801054757276873668011153012159221365890164255365756622886501102164520552023709078589777648123249545344430006736487729785386053032206294706563236848131872587049527161968582683142328934106043500503616509896212607172624280812465634340506467852736135076708018514629376596429837039842063726345918121162988025018986799090143783654639865988527696608371746370976625441222147033736973053710181089750340606958226077248468647556346398524454131062933826141071311694013748994445599866449162083161952874654601115506266942928026325483460013773052244235504392213326026561542213385290601660179014068780977421736683462666283790287557854937520128377116221973102871338339290096780773339790588420347592343880496470146532881673240817769922979330010742876411277759780979361912620678972111427095830770141822755128822261526333371874973565713613153274103888593188346909932832540446327653782042837622691863221277668617720744174756682196036159602605190499330153043780519736932173808758288715816256619160438914354770355840239162785945233758821209961150761054408271693986708203204510058613220650355218256127903744003593289097994485692914678893901903041572130391979395210678266236115063094038746780500852268936072515338085100970638050397885749008032593133720628170202885893858819342544961760709511823743222772165121774969325911420850468136680349233289951589220519498610107572245336701050612765261216059838153392010518754132845623185424064085238830994249860870478443352764888558887215220867736952552794240733441814806498423102220802224901256120900009207285511591804203950827042358311172169227570011144313015890252399565213174836453894405230332224682204903854937587239926973707998065238645234364983759404956961978201295352802285942554930847059741202303740367424525535952384375896996511549984052397372864454139825183204151903370833555476565202458990590297144539188080534881004318714667787091581691589921791938575192561510438754262051376890531802847521034681359741464711228857287208911801659171789549654418123607274760459563093960501017313420545790760763687209621269153735315088888430789661097254266498452787127591124870507733083676998123896553908989756844315713725028691502734017726377866921988025572197793738052989458759733798646327213285983777213866647142187444418217677713434926091615983115188451446768011335653445394083559210232838810458049810631170482913725278590785747855684882879824603020157845316130305552959775552832949023540830480669856291909927302327471833702293925062104744152181867903082366883017393997534078211592729215671674299118773269616640958543745862946551895760812155274783034840620065635747471583878686968930484432455094003886957413588455792718959032795666041715263377702764354111118353911036430939818748624121932147583884307394962193199649263155654588209633984577424177638663626425807111312012981448696539699520816440107326849694306514944320654483808994075134616912450433800031095084013545572527104797919053604551861037098890424193482463547193644012266141527058898734992223565150275953922686739147310227511448893508101918726549589702976748585690220357335491091842265537488082851314221406690594184473799378387351314144420326444476317348907420379749614506827402240524192367212968491644947121346605031513938280757038896684614086837271677756463493177587817710713332277416251297137329319514370983729183951287056304128018872040861083899575359840995211890799646234958323268352966469437270885187581083314958388541111296030379282814034576660752697102868325984139816699007825960283582666056617525623456922635592385635741847243626791445964155150965944476188137750864351864979475016862040708801733488806301481380719601890976844832521408157418875657216895311227480464245424063362512949438042765138227857107261995327088798191341275322978986412679560198252089760341579537575344009199807485317748563632984903475261116011405592230316489044774770070998534196955353194230053456275857799533950413651343655906814383159302674558300802091812813414563110680429566809243179205359068908099661613025544769744378069635419490012209707118316406792809007606053755008990415243571018552862128091868849813957487824995507047174696128734897377935915455328869623810446270848724536510490414747679230666567831980334951749698047493752048359450867461235214139788158410261473713901842213827067563377683500539592035745879613609477764667142311348859256219554342549972330130256490313399648131184309129553027971715396049204099228877462088297638479883099262349046479716822042868411438777872403694178120813693889055623518369872914628982140036038182598241735941064818896527650945968159914547253842446958463385203556422573306080076674736682938817176183779705901619543543354486176228485616833504970987818640693013225812414138188310878997672690555618304893863207486244151122775716339254942086198159671040707514492596575862368377615912271317653450555362722654065362608999472761491852754721243649407864192889500060634846375878937150258038196561291872592176344155989184354456001668713870180305733882897543508748524635633144505093995012920089414648882374593453940266744202423030238203247221817314370895717214009234638911366338554055968863560471152852845418713937743091824059076493443604381512348755362664580764351529497057391149883587199929244537648816370759057801110316627881449302588706484840086206934790309686357322418107160508940842054239446983049607041045484794188544071925512689770904723065832881451402970909090077935416725455365078360447859232290773276225788905669393795705228611530170243575167058378478625334958681517043525422434993013373307344264021482647414032708441652111838507519639820978767274904403082415328838414201859215835042233200474956851808435177187884038115195603774788417954573197897434710056021678589465382388776353247040967748713517531682969017941556729391800740956581969213533052604654009467086586966995106208666729127535532263811254867881732515926415984161067653851556830956979316789886698084919062039935006985821980074908736945285259579856238727493316220549968976917476260807924487024928052221638944033693403344493741503810829022432519001541857562429513556839128478097150724809208985284258427737606126550728078522027395790593501098483162697528626731459070898913468916883874392149134487947485922270674282977338400736874521083576504386263584149534747539079152230082195766447718348731362523193822556954386691489721504584427590006784788426352223399437274989074353890637887239623620559408209918504666999141836621940122404843350270711533005778708337007417203201453245319767832854098214078044661740644784256329977623886630456113082913727180159207465813401043307288833570993835262902836205138495806387170540234840586233175013875295041645112732439671464465998473356275247353756446740667375951818873844734158484770524011614037182448392869934331087026548859718089808255313039568570722987082689395313216166176977287437808374994749120527110393415054457636431849415792582454334643621705608026655203723051676632553260448320782201765890683271555520175784572933242441252390813178507755596502230033125677328997306936500661384043995074925634040953917112245113673744850434915451893311613394130855523046035011667087780138085768295272571656267165506152775491047050692901354978306119350981491163809069700438163409967325986141851014317080302314170286549825292735693087214688578973615429882602482300690376528031422530485359565990557861337733116609078802059768087115731233997921127341102584125210668071757787267419135272593312333702919572732039647885614158799890444702346845696222434532814530862504714812107255760918577514548343354697527868614184539310594716513789458974457326242949166130916793902752441433499364230867282480310151290164894837600216788997521736738093465525465829274700171641966779176809146125569202469702046594422768800853652429837479791747540984076764549783544879865012146302839077460587130311148404663232944277946846783598850477202146210572200971148412294380947842608734254726178367507669856147441796045947566493325210844725800054525617196349967203946683882776704048994559308715291462963916537672733589932113199956636657786102097523317842847511138656964107255263134517600763718423331113875309135303961902275301628857961548096842049508474617996658059960679333731977800037434010409608194295977130700484619959632738855504236314080208126436877884020816504012690604245291673868339150828703246775137572016011935425779963899104636450259089835512547985691785650162531863232514368443746127258269329379732081039635688360874482056822200090904413960787390560643224747639308411040664417804763246978001862616150818602733387638929462192184700055713052035398950169257093410849447971570986211439335197207999117024385545953170013852616054955110397984511196987150963692376582491243040644535586427979829295789927136659832666390173552864174778969898509470435444087242529517656294882765460783565077990607735953726870627471942430791442428253170497808396389627034722015618625597536852091411224534356728071608663691290769298111286362933427231934826674389846259420975918958004857380265026594696817436557637288318707943416404117944920921603042055167519554780908980774882660603354185784244256831181444630333538288145097746846027551856603136608081888639107193488617522063956420355829806688777580057427019117548608948477423174443438818773228768499724044657699598353084390374663537490661664247445135949041548587401638098395394517199985176486205048042952864135048400688226140317335936962822214113632549002428506128736471274291285866018322068024751637147848691034063930233640143070821739111901773277447086972926487239229367603484107862445194532294009145075280787641970185143526304216856187646406602983451131364072275902181825128031605996359841375132963023857714291567766457656547787663056954074702476012483610710889646496639268317710324836865613114823544058655987194046245678119707646221602225906953119450195966531971934059722361677136681408808812781671234299032682771550545979751387904217966916441026290175710433237403426808358023484668960071470012490370864489122114267872841411201433387277893671144377344753713656040503885864493670356296411597259100986795940117775087075652855280629585958415277285273528560775645191464601463862852721262671339831874070978791566070839030144664388505874241968525749858857229900525620001636452950550451742518139457818522816260761527997775494564509281473001036631112279792846234607936753679149550543905149905303280378549104982786041328177928064019948085081825760924872071012424191477753868038011833476229089834423486672177782657715513026006628491157954214938016310450520421138368896527940156321367909754817879679461771393670030829615067136654258713808783727640637662054685151957964007149555658551387136683666630626161633869902385606056747615510492072521555715750880359978457577216369172947546572907226224640680617019498589360366547045852178340848735363248475340660034434900645200123725555188990354303979199569033897509047066381368044735570252514527967659137253681257565819942875237198571045502143114396862417139055789895895672506319572038344950701772994797733162741003686389622123132144301657360489472194857383308385573233951522982640842432556463360947202355702599283850173752931068204003876324800588624901207165819458361455822884595891591417456115714793120305221997758307007898434758102730325850318088305036012442023141964650786856840814834195034182879073073989315118199164152099592782023366204414137731476930927097180345552776839225165573336395495095378328650981156034685614089711635469799844814129466275016147031760954764357390428041688356940622371204231508224872757479374562844320476606270621713312566656052899935028318150813712700828820270731699324152984121721115235549562484768807012635106153410756647309697561554811991418095086784885682200201205877026241445906959762298285078540795345217593163855359429455153747624241314907455095699125349483376780977140535077269457173817764781483703574421634700644856520365901249096715123198833184908202616973429709460855416563738881552436543750900878406064229533152777735349522756958345627347100967120936869931793283571794857773175219646378616692882958456513698680240369024973072606332420644185707903639937118548306399591442399026010370132977889664130343382970065778752303582652677449334169295714501342371619394244671531241506320613857341961013975921693026774845115383999255796142183483086295300438433176865675985258011506553121768956596809083925148514793066799113561404001084528400186930933696553807212322811141858427731908634722185396826855976275172815368003195827354908623471776733166277246523592674158471075434610603315529161293735996203006282764457967430644978529623825427899614951905908097154257935411830807124806524202631968748691161254937367320273040802170011609847286503493178451093634927741273002574552867666950389429329952281330785980741303731336993561071118915455797464697848893593308201206490873618962749297335603059257715662780782590120745826310754706946627090825206383334951281947705837371384116285199064588402828719167457236619908584193663912550107497640623679294184176980006806138972290574701467234426649489803204566250005449179454956734229343849186101038268232219339041138279757522499893205004926005457999789263998941931812464710066056482109590200607037074554565778264581005107024708688727556553541343382518502768347981291633678498369949073047278570179392851666871585306035391278018373413529699657975268455600279441670840927249048240856469667572419473265889384858824564019567973072577583501253868924091924254195261241292231136206886570142378494951120808115485880150887715272929830054965731308093127885381335534333140775911144429803551789384012320709130591000866473174738179319626056158033744516172803211968718908576217077344253013881688010414577415322385353951811273810144143228349732445893962271557538554814232688722817771602982978641007165785972796682614503155280577738321143231813968901021788175987811825940297846370389439586342921151301346921508047063519575300442749361495026243158540999540550536511318052571572494771251692372298807357546858718876594187286912393465235892626079642072212050604253183141154463341673471217692210066949897418778665300074251819292443519353204303541074196836374169985136901091173148757581372142738601463603032781565524938030013331123584223896757774150754326547566515767596664498340598091200116263376701097524882013839609640803691479155257557967935468176142767172874817995658803295169682415266655072284736512329096875899676665141862370999227588424254943092649862660201907004267073746141542581363082621747845418281569337909625386518462552639781522852923170754744289417767852549554269346867952627490716200317826046867520017448950000000587508654798005385848918295278089221642290441102820583751723388871245712797539424556583712879845628296587503617970150983843179719413182945966140998865618341829869226771007382249332969355022844501480312545173737905866026018274560930562333165957309099781291980382981466482238404578553345712825006680163761148966173149033505563193907761005004927579696401346751711064784255825702208407279217176920567528848327870569040468557767231304612094278019934008501011440445431534853128597388164242311315719372927998317162942553301286482957075531353571751719390720258412538749143380488670779985277726805249851018945648008030520001027509412261637079718059867544007818512665323116830648765822153369014969362600839152927938780038413608806477682860726853309802469275733250249739187135072325239954122218901552026577081400729832735313374180144688068387374121538748559478100744859292687124402510283644585746756228656405953813856480204720038151554019695964894095279497488816350366066025454017668653882190518363038172594776907968091961725434816054154714073862232107837561024588326712014481309984838577255696062766755236416031958559285992663849780794150903736979746967854012943794048482554077645487568023416893774974265684742207421263673439638638731706459207625982005996475541444919162677667197205427503772376077940701564376891725282615536212672691277490698963841839039887494131578329517512472259773726647167245199135879787669519881069776135672288717707795938291683466285585170081239955706070028005805033331322651275194965035650007311270726005210317043264528727282927329475936750154381952120497246895506534310016707793576441872523973799762131724032096806414595148816069581522784497428415884732574945250418749231507068700614307201514477466011159840182553197197984002876909086882428246964198839187763542962642684538042993028939103148928681999372977728884543199282299558471316233079881946226739940262715979033316518994939572950077013727210128182663156320039069485344984045816864278682441811115569937930290382352473866299301045659657005310104808958911183061553962009133657518582612332437064366536825218206705499186633408430113038661384605493866414892503684248313375793988252554973994356663975982446874486953315338629938493870566064517154389362354508037462715794460692629458976564088325473288797286561176826492658860461470175470310449001455975559244125746502003723985475050492711188247481796961084758838629497985640432995573646990676526586818863170990985704684186665301767723841292393268822763977490246424246040902153394286410097417010490751775153089422709569967647214260623837676957756879989525237586433882904015330935902659623912624072499724686427256873259996568004317060263734770859493716193839730989670373288168640263510836547706741172837741112108840909824963625270401593689537804218916202204823091734858527023707896536496393920333937069195991661281299633664687194791272442384423775991923648334030390133043514867569937998626190717605548165625402341727133337818985677052207381481234718374674736907148537486912110472612274583792112589846764258529799086834274752230631326799553649887294947596828826171206646136930061239933632885495884642044800181985344680540213573819002616724759773262282720711543991588787077820211415669932071133308139372816557988841434227567707212398717276752035147322305909143610435217228968952680755315202003800415530521147956407387297989161645273450785175003670519405363222580133190943408344893916932587563289008208687130390500715898122707864969442728722556361002390383178204780315215731626045742007695029690796706589752159467881021597150672446545748583462643772965159677592478507860226625233467716525066576436363211790521699849330519886485597673925319361357513671335090246053675664582090559476046821700411880880908679458454706560865985737503373906859861418009246312234599930902418551963605531455229910364579197274915666308083080619450347357955672487457933845961808060545489894882747822902772033156964198363541209444007013947080233564231282941297307841030290985571054065056595146296221479338215021824908528912572185804033356790154316150304589839083992854439607303194089852155259275067736442605705645846406385326322446394845121744273748576946365002747628743079512628188305733538117550568016619712754269693146409487819917920029680521668425060191233679865028367875713069395242835032847524680659037785988890747359933279574813545492529472514698185707517845580338257133609173336981184066722561503843018957379206687325400108623218941945487638154697888532531095816160364396125706887352659399728262763301570905041981181185487988923485654023875295595774861083379332732387769951286036473327198432747214716029202635702166357278336465627454627446037048076208218452355150198622262641128553444194109316112273377616973988199064708173682664632253892511697920321190943341740074284941801836050951106605394849496768166256485857554608367218087788189224799096596465994589471801105547460023691237879180368274009210961744104235880459780750168006710596771101749973766019119214025085947473692303146008127218244189044217127902652403675590634152462455100644127621649879047529810988394541222450414122936172728432199498348851708602397032873354635594587960591916949233161155921729490182737477537310546017665673726360871310008215807495563721800845538253641586384076979948740622703954691027744723639365022857409268980783226218755300797133068061676917495283564226885710978155525501498595247368866486985724913907338498822858596477651355628079807023609277944959037019011393941195219892180137194291528826345053097042577446196852915718140262889256267679568052588053315174718367134501254716328213798168060651470259907964353149025848130123678418974471900271881065388908438576545294272959946310286720393109317568618408645333247288306401087524727048135215295727569663734699441767722009292381350624269539127821719283437487028975750253487621888317886321097176244011958297606508657076858581983106578644015782985331951567265392612299561780495272741184844874214833737189454197906186172228721803495535325353734512604388256053474233019577399999876495853953779787665503807166330640357232569985636658572137868306920700983932133466523797316639329008299674036137542961105942331346076160775568371913030777540292344465889717220253359763229377605270349221169302016651987049415955994952585508045298402676047219369773088402127053196994685443457351123988937060770419425359023501711466811304583881473724170141211985660741814020903914813960062143920553932466448204779520747082857382827565765020701418072364659400368626566293838110599131678519170892757157409081664468482183683702882649922795722494587309841283422466770476365646813855849373656527796585594552146511896440400886347135707236247626226718323565323892812391043828503482462498215886471104921070802381877862150837610909542194679485385849401068331842700153803738279326124107086067321042035449082054594451033540094246690067917777934934835006778291850006957969575908694578403349900289168097502774089729242589686787800469403410124485231833487881108906477001710001551215467550370102514227323505020091726890523671761970215335842929070821529788566104994031406410602535379755535068247434029405383041046514103528589444902052701696680021536844701230330799185546150370088605556407279788960137380550064262262525054611119196087763491770375575430762192657349194906248219512540497712653612435942543602087983680302308970463393870813517509909604902703032129422603998202909782128562925576468292113150729945210309481405153424858751978474490913681869269862370991141982673786734988163766637211924084891010732054879136332634679070959473913443316806995337178479132478115966201387352495128463026498687073389318228604866714242739904150590626093774891027760012755612416773254898946033732762312020711050257500350588335535429828697173024165655201866358244497351533614697766384954763580748670634846294565061704172637488903830603169851208155910020372177083514446204915276095157410893724895364231583025958161308257816718103035545982818891341325910847717954308399556534174744445306858402080596457766840504962347146591337029520986565153416273391589008030141877486986720287608544675539338918260542193788299517847731513305472881929593985685980404929146971763848817495667479798173750453932895399346387239268259520465054086469931286356801137142646856757703937146143707540211264614251563647568099741800110158872259295294028825208441475081071558165330692515016918197188181679406714499194340538795701008378401210578732650575083285518316356975754350782039043330074632232463211266859613627346461650128511004013959986127955713145236921083201918298256552483418857107457772132883687331812591462059625688404163414262437110125267924028122593648146390210219513888065280531717829715105626609479881238026737852862110984333975903688460249744892842595974055644730581411415113419899877429266137826575866073846550051769206904695080083204074549322286278127935098527949675845283357527630227134749716161363833858466627294070030879044989511003368766926029377507403423673158919001433548534702652383421090363659260360583850415809634475428404471315067764272516026316149489425656827968260079916636444126356625519589252378974449070617593744191501471941670737368305173195682466153439524369406191917964740057370357866853317100331534200772288049812389269701721558635652111027319205665962554919815307828224065501632139853394598518316958658436326105553279325852582370901694146456224977958560684184421304210749648742165864318260491617902428588693045977269200767816803050895783422381426603090497581598280189196263849896030021984606456287708038489803596104331556752847848282231476862553010853845930009403627066923436769955800697383637346424368241319985743844325702990002233172795384917565651356727320655906576544639363491260932334308208415324733424844722477963805545421984161655052618701196031286806688981652611938583012593554840352351662015801210873966752560667016290946236626376233315140522383663708515970199936039091239736799210876426315678138032363879670897164559932446446975736735158750071373952917688115792454141981673808465064099526436892067284527018365704804585273607700897509624973637442483112065824325400889655906457898114559075275541920664001573967888397447633352336742829325616487162593711014036433461779828564812670232500139761593762775145474347472307640476157272281579246530950027075136236223824676846699072740515088508515176537890769099763867709824464099240541722024576502108240878801080046946638251068476424519142562677629150588343688470859883972441105707327876203104079667516774008632768277197053057519664168749828677811966088724176421045891746762266782788774682910456779641571211908368528961393007109193252782438613180446821278759263182277525739248819214302825081439596708297055807256770712251709346705020788898413794471027118012766076590785343622004269446917254772381718797793513926914504714562375151788795103634880024938766312580271430651655908714906961159060150838054506781066965131119068971752668555405704747945470543442507698088763636257004522335460627682160304223515133709498424048445203512979920501858817614979449711477128500453702596925582080868598723407203051844790337928565030261913903559217399415865897933540324028092885498563114781747855593939751083390828133784426432189102446486588975363999760397700853134794385847115860848868790950791485496345825927725458010370083948664572638168454267862387384884015399555993636373256415521517612448768659241937641157915139562043482367016729531287733137959629267449471297636460693918263194422797678770318804193259779321597234076277667663619140812430706962974084994362374912821615658526398092933609768662599470689633249729629271857447263192604532519676779498292953803361647764478773070009637850926234714137378546017452590916506026990122991289630196037699222857660322655765150589206526539806366075118744415028004924836009982600252890180016478900496105339370789233440959848060245339492333509130159355992176722477203095763536378627947406926836742206943535342521512639115864906310178836313598765000370929052172244731422040185477318598607912704431198822646266589023912404477673081253390285901778541719174856073210878918481330818332000050347468978795677411155378831392118530687957249856982491833114439710000699868989684936664575817234027351473899070925570635257545652973202991439479865782419429355778117543811272353299430124058014114668443486579613277206047773800907759997098605735202235341893556027531432550827160332702136284995646615162733057097543512460328270935997993216159985541422507112639119232994347347687140196054164781244316403947680972760003651328311052107100669774509026645164979247931368933651730228765500527951175624067665570203305196659318152079810450902203085325965999402445809989768748965456453221877326577244023996866807459620931112191104021060274738729785599455495439510880026627431118279388550881379174380091920682028510890130033170370174705429743386801739286706787388836790875622299093826187648832674392789480928725919595156532998969565736594700059322596896948593273527438252394464929580551842205865564620280156082345304493319197053480964739816927911688522671773005946995956083142823483193757290856076754896027940758740880759675742206392840743360611221664475353488162246014891334097338550110389083122148129658414678005316032030920581288580015222450833165418922834255092486108400116936333579199206376868224206040742146003158223102096365807264123673344188035527463881393448995927267575249893367447720377713758141451999113418848667878903135818789396074640148287804420046556664971720666506122486004319551949612210119864595236298671164966011073561674731903168568573168020565063317810081112935890880576328093085929635999267062705827636393231612697374795123194168318271701114880457366653970014531379708788178788065592960598809439766955663969094961500328168933488414186400810562479594467625105103526349021389386363261004374841730852846459852187401186938167344263197176709604312132337362157241051874165641606569792739529887635559067254919600216672862385147795669427768441761325918416661126779304878264592266237107347032704328726894628684012526043382926310119673444252625046377127416143973662924110231084375069873567051432296114914403529389648420853333102582167514164809072415528603365457378622405111300712946262908302816756338680776878774566158086088928432078373523423421314347220445473450957712997888445539552306610715239316302999714406976036233159906943578699225397095489031010594595322761304041313921378445053951647528943422479363660521941489273019552422074020840718012879773283042675917842105785064803622912438810114142863548488258346159265034563153548571437241711286032559707511773037530416465684017821174480904019529885279009033587627228397472976555776870508770800765254276443284099960120404523634670669279055870653151587981016489642330053757243363565253073735594494319733852839178982959229545280128463292246277967516562116318287945895924906357771258236108881098859125279804673712778811287465894207947272721951393525001202920318759742383348418238881838780850134551898286269143261225218693611339461688606857622279623220829677928953613536761064715672832373319140292686825970508242126751700473712148866496881577019344874630144099256978188429152521275008290590040878016890415259115294266839989030672691519271572727089329677402949077285008858796599074718493066597006246779335474740197889800632561416159004733609857344756835944665253406474069928042078431230232724644685102895598636923962406973580692973948169881367490756392299273308170768979938507461815159069085089213890257223560498416221131169255737632381298924482182494007302643548446416850429549308881688741154661407154184548650946032008397096907571172808061224978945782774234492672363799829296764317557558095257194698947317762137698996920381398939503790093080623705850091439609362859812458138230020901867152166934882650190000592797220817351155767051849076249952818291505764048731107960832184657570762822554421034755261277249134625849284750197429209198911416498119846447695642339410293350485459952848948390434071221227777077392412708363826151615287723061589461495939692058014533619098592021224764381652891777716782805328418811304927039460019465427034162001155534634325676105649352246944320064335918709902579241697600087542530828821230805296028546979153110809272101868875987614126841880387814156318147990914839546059282988457163214311679025915216261359536881183034942110241958331864285577798238288583656336021742278601080305303815849057566021951233355599159329721600052734860985138993870810786181619273255291673182240780552503669142832672868718491071393214557463953115337069801054210232768965235891222938361777396140801346211354737968822455442059235736378792511813504713923537513347103070249862722117927492203135625565460777236880829540104000777325510567305219027086481760164206994514171769435656649108592648043171623442218110322300851731225465325808609168356269211479146922264049011199300830784481896014991776916994269384609630800678543043891536715613880853495979709647668018551312571479394161647141023527394535126595564678128475151575178170558202344113753186016515122965889987118257117213405328749687650483933090554117565894739478235229196708672209240962718424324312702913641288090807332256028242533556914391006669781515283881180985930485564875764265189908088286716933852155484119816085290653305086577156816993280383574746866371719887289977729923971614165901621927761760770996483209193616305979629176473034694084110155408341881273380911666908913294412830561589879498932190296866076918800883429957128752493744549375304168125529763521046133964216867782621532224467413318780902102664677395694453763615267913125575351661455076021822070901622474658169422075160944098553849742746174952464212637171729196512916869012107208400604398105629784796597562635285333859698288172935642195885149416317130709989836926306187822135361938736843029958772575687197998335916323475351915856287226355334262587227010683986060384152268029546661978205923940163983406660105821470905111457129538905657768681025468761048943317942160503674309696099841756896724991737938670878454204333073538643977434895156032461736698998752709569106356950134301301410219802070883446353745120674017630833908641731582533298717733699736640580876362516020730124662995044933432874968561412934018979112973485219077374242720581625304747469771057725678572695556666021019450480293919739369317824297991194296522797625543964859951534680601165865650969889251697660629340646391095761260740348200398291537848367191260023112748846564876753923289631204458145151430688062450523714873769199941167606606376734939333511396089441524963482685531817453438414924206914349644332759746402484699710479651165140011472895626732464035531097156759048102219735518446134824264047201438932896008042794183082883204516997678131554197012772578359248282109937858882494823020333160379299572085272135534241821428600501041640042935022702733415791674872975256027473391543129472085059499078250327811757735458667712891788159253480801768064699350052158215200473667487001939017217444363287414217056107452426883968373187182517168455271445002684383182008618433750527584752290088178925563958729417358005755083335659706124488400566641126978148782436491150728725286655621970944402293489332811348378193336648639796685360418371683495194282076674421975665426719857815046178945863824704187592897580971124072548193367919423701159959707995683717135325747568820673297639161455902668234265091049356464954327288033058558553967798042848190885327644535236337656373137319740294550331722405980023987977883562138668342153324832175133290445174714430410926043904789199268373763974412245683233339455262610386574342511419131803783355634013964699243109329791289793966682619777481612620763052474393145574500701442800882217186939841448092664599050436760950891407958837059465361309388814841319888187268359204954720304399572449507054829539217091867103655793742372686183792602849979043297670845487713235703568039407286980857061857094400978329903768778015451222076224939209132984393462224476940216070749120487278439675841280124366266315942353844790803567541698455645178710847807798602102226705544361973230518153983496702521504218398443051888609639022405316814760267933497266643205830569043445435258537435622708613058743704865069577339315862966786181603421025590712475250287505013568700822229654958534920315661457018595904806752316809440453110309081289907215334176050161193006857678875889593776821181780677658264268356281615944584775570515860438198657078219831115141222843382913631174472636638538325451840737208628598454188481516371436004063179428461754546414864844093926190632359517803156883001612930223076359358247533209841980071591816512903651763676723770315688964308545954667833321289794804954649168882128107872246925681448284641899050222310364137142104906383218724529601905804755641169218995238097742409581689368224044318207746355217973665504091651499097102175406461633097503884964401511046111607292297366598659021249229028504085556155519923793699759986195612836485050819737487782042993507119349370638454621221555087922525303607378234999521397222104389305682274549084833137119847948182789124268815287422977114994722725300064216016186853598551443537269635518946590158967492605825955848971021142634579932235933971416577542307172981946769275229188399761782894907396004597403118251922751130112743996906535699382782284203673081441503027553325584584953481319185654829529221613076710097275895981246506214580708626737018552713692837962297109151810802923048318229395132604523939308241492088816710273060355198373705959976651845967204565194105984796449291297183221742605742666426788433287092746717049952968738136824906607280352620196368967523429982715928143439545211198670934587490480634058903410978624157378258991649415618088441737007297252624959077958673753910402297044439290614686118946504513328863227835902960169412992920224823893771824095459355145970386203884837593216058266906998386075428682541300804984137637477449774825625573073317199848256442883270314809750563172738331579325950633570053619890448272179928918893271643938137964435112061463088204925472859268522581052516319890212360170979965713520365000791194722247533231057352217740456945065704060276254204274188595203606766862511554437469326446424803456867488165052446466011274199594478803627422646896991736874092247695808357643067409494707158216001346704791249208465721720089862197037691702103083173594299136542265915582167953547569487667342791358449739796073586144697522526967137386021129303269361916806400097438134811986504666276522711837493782958139529298121406066736979465220025683185281538025111701502288257879941461548646151063281273228295697095275854527858329958947546382318355507035491820200301361971537407616851665025421170874872905103051054167526989654706803918862195338900623338683925669308555552635838262265391678591623670382274482449643407324221641663925879373646071117232444868597281277281257926585183007189403354721289798161156803287852105741594721008873029877656603287732305969760834613852193746275970506186256271455613087214991079422929625049783336884865818150878826485583171620553746375662138650960294603230591633891900077216232625054849128218044645231982278984548234883942625357941548309598996763956948997106157381959004987798687722688930403066618884738072389606133252188970641912211077514553424821265920736840624559736710847697222020640544809708735815562723782082137638413813863937681470585829886124406940706757525353118409786589134925342929702987651301782086361113225237415208048433733761895095067762136411955489184683976434862226589068431151367297401283569564517471193226576979865699753912410932755155593163448925403884051360566087403022242691078208412878206005333247169086727326619057661574228214873382428473648478327221003904230702106366721720846226810115293754612638429117208528905090354279056912887133988016482222531732753096148018636192971748735679397647284641407780543212863514001233488755892158430058983275650066676375173771336093877619643578148874376174001772508712429655521296299054257040186131012519853440062711407857508035304181150946086637951240748077582491240266994653760910382851657757011351715883284892638030330884189670861909134600752374427274166240529958283782762752629210271042236486683808952943918166383107297638034340250713177854701328740595627205131219731194769455335088139833714986436242401502396087898844158229278404283522664387872866970715802305837387484164722701488341058630670805920681731997268017466578041819622615161602067628137640146920751845309616999884611941830565705422748050086214617900389825844881581185374496121192704235072289595853351607809124362710285398395788895442494121904448347701587917526795336965039382096683578579564519627568788892496449097692953614554248375583196950202070128674723255911587003792010340492733314903486987604386038602259239224732483786667173459960563996085573580020211137412582152017046028753624481167899771302437258286481807385092576557393766565456076226266253597993272969767525639015146752586659542805485201169223095372777743763367135866148624507335921030258627398558728557878580200106666789672502390467151322500550317031424516244070323362211075945389158618105708117550110485687592375618255531094922481056302294717735451452403783068144440424321527579030141377268882573535317393427447788028536374099946268582494772592167388336065829711644586763006105670397420185927134088624873048545040327495719705831201112918954757858033208654157160302953847179047153539898533948694878177100626926005319105214817730335166550279279571873812000045714809012020509697412396070653483063417411583827476434648833811196717399100412757850830582110491973357442020246046877931849310401929420018216731873469525129081201021714946741406882854611963685125587678843742929205571868110435320283009264259088729828009831916212696707628091433232910586658364426569860190289260615814366488009351667845773358284098434697944847515050754084759839195688115847928599597859296693548073998438367491044465255510287044532512461436670499808643092735563980675392115908385997152600651664899614918683498885639538342819579896833368540845331387787785368301795564624950768931168403970950791271569120174985653236429416957067704596087853736037741847516029185444054335136764971682133818749672345635418900258382000972584240702480608590378065371438096457699174409668975429421763181787372367887764218418675147973144202042521929429887005436881063223856613851432354313021336526655875022713659617008378827908197105666578354825325535225421584947993909187599925247810381862196680943240347373885984311738530270028351474147100394536213538329586166426633010415009049231684284256187001585234412806197818507121880372489072691555362430561995160973235956999782743916338970441474047780803081758779963673380403888562679929513186211304457766434604073945248896462863067180800848375824847326252149256238930117139656144486502505844332492101642013145358235970553428939264499255169119311056012608081065558373796454627517311627057891083030440824330058319181695926012622352669275979735612844261238613922994413325972984234529470935099359778851544737584297138393743487668918925610322532970418317824205755772943380470086332947542217464157643151455619486129840225029543995168489846168568261299003314274182694639908892760993439147775248519048171050066132567379377963659910539767339894237700457016510605052631420899790807727637123502376995814304263350700912443845015830396981641307500467396126783622097434953941293574113789131022123033656663076700176711884383433049944992695166643979693687654439233644532678400208975467510307517110820308727257220740674473164332971764634119854046392365084063151998383421222544579427973913180728143498932171583749388610167887771361185487768712731209517090979694997724675955478801393411929721544870143513655517449732387786058784221933701838739489223581094980790602538432508587334515413951199061222966420998152201852479715905792887864044576801921255973515207607332421754109931852386137746412014888362798567121212732311380838929668860839747798481032498422257180731410131220747042317289299919627438065984364031528618461085952310283401487938040794659809494159031973380926692549578840089933149459988186162009954380052822509734210823553593246947245759138326572429975039443229183899929254790360253586511148939835808459927793785322093276440048612281123045927306277721149861848859561549482011909177092588794652170553370950728105684191840830980814945432081588869939278049530982116203183962401462385628033339881100925011649133485588507065689622102649107613606797478151780679131933531057728019919474475715576594592797759807607239115617058539345636514923435236692202031235401864580571209483174328556668850977938988686689029347263755341756508520914319958943353136991156600011133844036868104996235998219886588871903346612726465782678359406952101701959190474494829766696749864690995603780334989021794933846892968700822079280660957166471160734902307738621291709400668192611643057152643444357045254413548526629645319035024382063911361770933428639190071128635874556671079032560474324753726938700642836198837538676976780199567539836628680437107505345862273249056828179078559619824295236978764153411618024186918194729258901517445892693090600853722007587779193565517887920755138212352115997094297959492293556041549506669840234822584330451370747296564375119409459415022097538716150903429032017661963961927360638403276888130244767771259411157843693286162856330936503538302111601719736182281854255104674787299946299277397631151323071375914969375437094720121474269477762092613332178634846566782285850401093229609350262073492279354352156025908765621196444781583018835243703597654158314514837439179552662774514259956123956480360118820189815043810440868655473623140284613991709980808062309062430642302508356308801018007514314153210458029444468693266201056355858080532895248531219668509574479942244028882762249359860509231527609245982812348894419002887656393350765171470993043199018157175486072705707861996773724143313120016952355922505533142992866590842576873772103769852256158290143731788871325448192156869806387802009751160360876724572709154865797514394072702025580439602653428225001296739676423288947628099627111870355103169405549069247509539292974189220661286590071072343906311747427185960547090779957060128516620611586600091529956882314597881926657967889613641211909402151228385919182790773657580579623982587953093864559840311774415967609232179139303825991513647892164332310660781360533399824674672759570468246123019243578839908602923296328748230155282889164385151052520078305322984113079321184117215603397573381899864584763549574376121397895168294274996288599162989081383286032727810759900206317702788324083628806714734681110430373973123249689644439255869923778107842392798357791145472625470133523944237511695627202304353421347380651669542498601632523815196873719923019245734454064438317890138663675327570771805964938735477797114547455440624805343639427324267990125205273119409707627272834303822244772045225852577841577895797848843729346716706605072092827756515850169966917462453242615390160556046914612246085973066811767924465061975114049106824286277489743352937596504156144922204685168483371301028183500171602683977630708576957046934978545885417230831620929347690824045624478322206692551570976704786958905489500220298109254430524369280373731054223450405299605113591290612770247061239937681147801551878764336006972002708537157180269723093426453011721450017816763203881946224621265333114165952135771678354428544474880717628207360898545433234905079968257171159544552039860841616025165123678892954692424830069117110123579561881053411500616595499562602686461205053759582571121404585646215990242962447997893582360145206826415161606664039011220129270713775739208496327958516591244673655651922396117968968285105046165963004397706015422075119837938364088946889734164516227155045272625242578197831520531813099401313168174307258456875970147895635907963583906924278815474966104448186629902775047345272664362570234601933390011545005277853127228778785415403330210889091167645017559328252016455843443188325942764683085355773600165827669788315081478241908999069801538353843955835343214413573359102749001877920169790964346467994575026817980694317757304916832956115504864563706405803645914221374347078203598515078449702796415018073430535516447791454825453742693730821382106411346061638635110071157687909423787337246345460597952471047882119390740937093989258732979359624390391586500417244292801099819571788461572130465480159037064465998747946568251350557867239736132025395325923979123776509293188234375825430684536542787301384675767906346347041006625302110970693536913016057830203706135325003009039545168290527088743619711226671398181017039670575021710270543614185096284195422932163452121004460237222030830263423485412694802531657883853222856640074169577257622837667310914866797380611077630119696527730837021231647256793516386097625784359780044189748579964266197336175925960485653776556871680366515948821345246844863011593490548115208554768842788666228263287104840580143461341621046231683123284182271286633829369852815460433764698161105802889799362115316373245485441532689091491741690893898478603254836974748037087425248658663275254975434655292266944321019793435451044122039640218416486968833982347735043850934291001605377596239796188203537494783565130810557789141093078775801396327720360676071876354658635369976242814601638763722117066761775968590489982490895165819363675160314744552863978087207570430173817046131663687095023345123183111297645242194328903859531102034015770821354076329807142210274927668618988537615225275589026343244284858327023177735345635532477572610888454330287568568010114410324949511418322423695350059424300451387522017954510718016258866182235588732751910494251864366698032696893757850189574508392944964934067330364932909259073634180829521567901960686181182823859288214238426289218918928337030741759454360362945980366846837001885919620754249005004841899432971263372947001445560011723893410701739336763772409523108797700463815534752526189709639847260258987176614442472281590684508537415854880912068013710399429026503930906945192626084499715931632843190745346344193923372456688479172257881021990383529253639811280581651206422334675875214523971323243786995221691692308508352920260846361176998731469587437920538874058125295526833968587727174893928313259763866462071048664130573953628197312523071097302110264720189077270942336041165763141618541972238870199785343755926218608965178215679131918699448590966954310064548089921170768335627772674409958195100714758051642541728191608465976313988189318415043690661461602305637846416191638114356243569428662891184329499637555984537619278848527669379775245161389557949614894669311639057313185786849810650153073730450657203731114638133402145411508087397166584718034789366833658413325871758234783041783757443023745363530180966636099009880862282502595571833013140609084202143156627264112101780702814814844929664969964216262533502462220370706707785162978762827209599140476121374130460488273970350933971649903161091930803048130829379582780090124804573273407679528204181645272755557401735172239208715090230823094853253811722843578159557450819190226691481080898864121134646819542040184319300171259797081485096427114562340717941094437048058036705370699116571806437627965458977606141380693884503982170913115720611235515917023655448656087016799159561937827628788817188962752771226772061353325344849862743685010805795359365480474718830202453110684540022629245009588203218505369884969503570028749004230179266558947554807742863429014466863378019174093276789804239174840600193057821199475952287666485935902090873034600789576963013601606102375420872595836662538789640772295130436632874341627939251221886754072039568636079617460697496134375989235524620894668337445756555668116088383304761097489440600325476056152080053239529270116959614395444663370133969005764977322709277537370168748312309429244758343750055594350502382337894868191078690423353607162877931626786084879636533336069153523799548980215894554945087670348850299432465347893931548980552076045418126900562745506588786519816569170755359338675978692032263381328878529107521923496498794653221919414379199782132423815358341598687963809125245009402984065498931886749387061411953608037319740310531370626581111395423614453349060031284038044799944060752686994761355263980616280978058082978584526156991296193041016581816974909521698865695846924164138215124315399191317676766836675865507576946943111887517003972605048322828225236831282816085334939971911907508491377674027958360422768074178732725071315743883481863197837252131013664654191440392315724942330533285212890241442949569891920042831287926097788795794455053912882647981242772389244891685027181203355820357894547884628235451315168546521294427615306470856146573616735561300878916164420985780656300557507983674787937450427269474188189606133671205455263205749058085036712456557638441371860863942136942710174686523287149009250104699439660530179671973709678655065416100001785698138257593219108180034865185381186283382552831696961817242940131457372519428355927967082128353947072884958791385376179884851498407334847542131214821849913958991847693701001088908019367871881974546969786024270500584091705332940160568259493489729487848588803569838742259215936583390318118173664627367301279026400679804200238904228636856775455784476792709274609955304905436829615698760774058737814142268150812795103842067751884051037840247790035203453078012539829165093155609792551031629981306394601704563703869944584785372646626783988232116971980624575790822499431500343392457861155053736225223543752942598746674967353953664220630852648078129969666794502862630344498159041779188465172548091471684829011871895384394069899247040358754028579420476325983102124607842899378502762112338790599814702959130739721890427647046328114693632536153366762279504759031087025215808952609496057969867096945643127971289433648145298152143365080632912591297506645808801418378068721800647521384022077471679579576786132745022886079512031922140448423687274869504684605938410536728667659470859570014726075824285115648048709282943326897700896585694427262990272111819681065545850468642622184961887307179086869728560858325087032327005204789663813615708714908954058937003592594576409423480899285843630232287882798261267699429068860355959052573595408456477179867782270501641524506042046920287923079785891091935657239611022695360050889451072546307411178170182247744262925540236586824579985608354999115926400761934594123453642682179011925271998302246232880793640896919899821297829959795143874411550741143603074326078286629282552684519642370157878967896458947731453981357175525781182245475385846093161131119781266264597383109476094678135133763202149125123004052607151796081371927097732825845213328296527439336017704597197317157564988243453142214436906559728125015026109660972935421889273882418426005797351268033213242146359623404126265936016953575886356660033316017178603157654356156398945889611671360973077000698370720242099017632981763140370123765567994540639739515289522566253699042063519771609024706796684614890265813962641503671881277448816979783919977154489324940450903142654010326177019595554154847109109767726340346469069909581745953021438849246555194097518837063014033358984829235851332230030835118861939247800997915166186039521144549049797311748000358976218497216494839776097829394294824119562357946911392716434220575538172237527089694269261596933253824071881830322573088649043170929822598209064244459170001417720551025289486784769744794612441984184741131067966561826091613495358208594323764687424996302687719535576599279681067261526864065895945852827071791219682143511582421988536245433489445018252781470468112341373890338338633927733872542587206281475419128630354046176320883293291164469038325025755403819096675183800909262935329175157002335159333839489374661133952377978610565161412550223193982636466246212110799049228740969807954231756926050350354253264462948791142156731890968310924499197450539455596377135093599167293567321502352379037555416218223845592340605377139123444198454728194779546377871002562126963684652012394231981681097947746731562176423291162937955009838935375147106881598707676075622534283004448311138224578902382995318578345530288832632831412585269733789838518400280378473670687810738217046266006311231769631077311584967907841985894454721315236372616292743080001423065131418478723175831682406216848887466675549967384794701147603208548793715349553833654018428890652379165613734998574660419566531412553823967714592445765488304695427668110864331323951282381158978816617680061762607060509102578268280228195283642203915768786183478780146291000360382276682066199570784867713423703548122394543997730029696949448553006933492924526396305445827225926262320297395417441846654829218073250335872469973818237531914079584700081443200102028232095712208676539823330935447990699912779113464272381520408344342630865306530981415079371315672758251210974033003844769492349109126562634708204329218815438113575548757436670831295818274159601049167112929492879006947319083796692382397170481683867946449706913999101912457278196052148107690278703387746161529858202405445696109457621538505296826113095908618249667236043392979398258939284699979508474383785340420133180140732812673415045183262314947543345862704384302260905974443951652275287184404185634980961997156490866137394673846854556535852205495390344747212394259247898500584162694844847023762096446567864783526255065265539942530910147781746528826253264104609240493476530482750869463108451786490070686295368434555025102615486182932486255890701010770187353617868358724385066471360694338280855021389599155784843264296137497831007304795223748544733140794158416909213904242991282788593955180967707975924485366987561171387160652874686990988642330605513257983514297415411061688042671272461323395435508324309238409111517695448644044029973671914297471106177522315361282454347928547958322381685000696950169364323294588520607413589073551576257517626639763966434947968020426058230183234253753515924134781828072671577741650605897701994172126399827208628071914892698672411687961512646752436220687873089942082253011945666736106927648194499451219060399119014603304396676393629567590270530627708235026621488228349621499353139559289902456175580450128763289487021317820164528891011360426582823534153264532229263654014955506956645284388343372044739839153394121373383163049632555671721232386952277199612014227566007774006650486198106804675840705683216994886381801450049297153356445943694659657910268406691235823629223445919859391965519379870025907145139031442754265862861032374579542130902909779416173976643782627911748361158743640710887160982001582360286232563435517544539054467423093808801634334199973724647804990598842996385982189623489698144039827608138038599073775923578038707386503320694096336816440015307241468829845931590629229181095251159082574142420648174989352823568598936426251121101763459786016526670841302326719145226663562312872380276600706906039737638079950826144899297979265613836367232407326525391532031523591325637382004573751318868847016708529912679290548692162831722559610291328905445816274316754303439465613825083651463674759635849140868288619306607442792678864808521410227562204924125278031565260033214739625815503457482515780485827291080462908189823324969220376647971403219042210455174546257287472816277035338202407316855554730701472554903005450615803618855623743178658170291056310151355621445521109602686922045014219274217118572713589222760455066635863149885989654767086257819825062693879657115884807700321099932853554722098719113167684071138306121393391887784387405867533281712102313904567219817028137885643053128308035243861829066065701703407122068660420401254097975542462201848876702794371864885363287275050871616119823273793763542672897359695578051906430488459445795674493930709189016293659047745009201877213339740290118366257742865426084302528449930594545993087846739681973866552217898212625880660567739536743832936762700369609952166815639790413101667543270113108981624438615893822388206310277031673158408382552391683022539813959220822633752128838928551956787853529438240408956156756391932231295432059451140890503487596137896827211362444800116140002262696583883431385477271449858674330819339222716673100487962426499612629511306189814319348998936224204048168298505122426561098140875402073803292105893139693263477261346771573980780644313656264381196664540237358549264695774542458593969939728064293319743626692616607299589045549453662746966485574266631988559764734965660186426694556846828958175160076248152934158957912048195926740857683092716363025191156576881925469755705819666375431456883533393210762340901972801126764030122975290597366116516925241714417388285354290164515873257647724921193341919583682804608175383459124874417427938748860332828439440407455748916811874561258737457885212378603146779931798003315102557267546730571847823069060650274328989890287841171294541339723053247284200783528421490691405236476798526547368757475902342782700145155268407297241941501067275779734697941150764486411544438633064202457870306254390136258634860616386976765926302477510029229800874745236218279454321098684731430582733086247522715203755567767341715032495646207451418227562090313710952004317740395504473612509815974524356033438659238085537733216387962675058052181118181162098029525533609011233728057689203563186686195826378579435677981303446357884209976346718104197221839827565882091975638975832987542198368870492107121898612523019131944083386374274757472897659223062395108480549123271063886981881183232562477560831724333095442947629316312868632830602856552845261530855744807017730509852849584070033575716927441893747062964456549355375183298307013778773152948739682185852654256113052317584888718675871241258025202931782739969745547375698765481691910036322607657507241718414629032375502153236052966871429161323221462694320728678357814093390147690246768450653751348114869126754360183197287194075661635981114262401403746080161664762564301395022206495162794737191114130680940312579089572217035500388892990823146590922087689365834116283005583120466119964604299115387734973902758148013587097457004891081910406041869690091260431279592781673409326636039739819748050007520280883275119874623064338341843423696712558460985141766092463063327614542022479160966871000152927544547739178446793550096654193607801373631745060943267229120521330694896059253359354393868860283188710068948072757815015379433658765259596978442120651334378366559858775899834209924224825405507450196328391807425870687173912106522558486729397116721106462388833271094216173834142331885593614774705089272029763205808043056873080349310245881898727883542706638174204256770125439895249416330503947555911620344530086227928571514064978438417242342191769984006913781019914809225516238927044340216918418431849678004303987944523788654013186814482435299823509444864364496388245090737313872980387756610418556832310926861954054089535394275625839854894987483314400795118559583671209646684683211144706392662132617397292737267520710659222962067535769234747225139498467724302273518747796656802273871144883378776657435202446592216025034827477072243864946961707103946036517922486170234906988914535701863139541959865985054677809958310266414132535940407178771943428875055761543179228975033588354569822464520432752989034545161664598966148063388674188937412340444624738560170908543693963494331071681494250195936361923948590068474560816914274392038809072456441279859757119267078450984306047288331291624198589010755812894586668608933229135930266009364281901563129270543931538768768399636052925808424183143368905165645070373513682257016833305717353133241944610981514319631711874223860644395921761407289676267350505089720715869964665226742624618880911541861899766794077799971356890246781298217537690231792872668485424253321207271918150597680783779734571346183596525889089432648893227156981654227242094523952641746797225807175642201851896924506436246123216026112946801504663444577412546906716598010970638636173461144734797946795406677776725407772070924242482920149371480696183636326951965399213153857635702977774985529046277014565759330876686245342999809281042971057388970032225676394214436685331893281606723721426558613619430842270652605739597130222067389777419581188354119214226717338728317007090658432980554775557456187996646335049743136232880322562610244920620726307142547705476255852503376400478763358381802179036773404191614336481215762091075470992495012903237870309617155082104867020202465399301518979158837919165446915797973159204552982864360378100703057958015654734706721376630368610688440781008676754240130215624384418341368199439413648383018233739476474822255796121034694765665599590617638340292642236306584825233722734038132647620200651104072277845814990445915621382126075119175955135961143291677241215085354061457420858072360704421500135580811743561027936669635419121349431742720271099883234210029941965031387335081333742529895464749371012698812171426279505041341212187675254157313930003491931598520097124776649499516973730156106995904055275795703710019898799429461825978028498266853942257754355225668265526416766186735339126697403097462990177166465144524847918864118022944337810271595801614648391284266729022279083190957503929952926655184045360239402057128779235610863041720530416461449015795612628831942033095048140484170802982138561235510917857560478527192230430969763074541273050648771440173297228007803059961230483850542242110598693285611625912731632994021597290024963403295424674882820042133793097776429022327423417483207955098550387470774794978126885660199132573728578031519942244963654829478097652571410232647229101508579753918821131570840462202726991354749053710103574599723267416263191072561634810897733220311561044830328090580514300187484130588555786802073887998400256326443575415060601042406187216104560576133496055659189665724590798856282328920963265420250155860043505875677654314946729812633075181686459795806603014751955185249484457934376164480304419582582849613689129012310277877324875807784218507166325910666315716669822047578128774941236832896257526178970852487627256932240095602567292984582710797932269240351470214342076301855739347795085029632387064837703944405878622881627874064110235719280552218043220361932429778347672177306253097135453250869107876983462556323615897298939139331031311592625258305180028455929617038915926168089036542659050977288282856655252608735449195776752954418962939467418018415843612043691365282156847301160087549650124660248196204379697374484425375454583128523513020130887970313761975946911241850140847127988805050527513105208002922091529297507717908892174413047480567350561039786084935664291190568531203399220958148978627926079776404918928559156386668929032260947533172066420405009663721145877234094898601075710328838277512501956791769013397050859189602512175517398532605726438013114422531779864736966969188407427757791315001497831570310310262618060949915392032586109984944589351568825231364363993988609353549866012791755927921787965998833035316071247045640214307339303989452244122209214735823452642834679201548027390230896090281738239999168333711526964567354655359188163735516876048759284420380163608465933197600335235621521535109478703709456227009018502724901482425795155755522330829933388213539542041435815555734637599152425482174322701610063084805211202357111553705855106588704786885499206445320103888151413219826735202614547102585632881412266705173541889196519766190785112198801898209781141802656987331955217971396506695320991445471564401218677887182280979464788523268792427570528062521994860876875897139331563957826673669724478283274732194521362779660854827694845192274246265286829093718417173028937114845738664688266229383492408789115516595841472702680128250025228929731336709415190643838988523945104651101609625445639896387773328278006798627995114345886697673726404403654779095103580539626710451323723904026862694099937076833154469769060170937308873992816370999532532130341256956792362443120160684510428303050749727677533414760146856349228331545653393148495073697788099485668649571376402049881666345298939090064413308535222106464717174053675783816092541131089128530791290870707842460044865328872888897400866373193063101057848006795671684387032176491878017415228248284525607321713016106716036299124977346678846879412214763086003922696543303131556549304371725884524203502260633129686581771956097336414035981437822163476171261909041755927662068722099716794959298247224196006877715963909542041197208273654210755280748307157849717107251216601655147406576077718888287395516444759821552713268482958938844906578380252652755079775090159963469619211256671368345119540171441226260048206578396917908177068219837724840064890975535531778453964819651200527277094330237601270958609771821973273775052283699825915299358892245372745774435265387405903180542267138158440964885432919051067451415513043634084855118949501221100509835764542478363364130841272866005828957683407885639589225886778798696676713878247816641769611256472861223403376264309238545065184770466445093943885120548594047001291661375446283657441722470697688207061652991991106403874247559814769577339012842249142764642580005215271747934212296546972986390575825111735186314430218682207424260694842527944177859956050068222190012047928767568584876528888086437260424885697865410945274437446535711284860371769739758795140537833900969316302901523406401290844037949304151029246791125411464543601206087160311361868674927353487135158088458950889104330527159614716950092153954701793578498568801515214613428628881781539693106462707544158765356902768731479771791936850946500485464550505087980669715811026089788763436214374703269623595381416796155359638127967066903487986727927623992202435231633354336213685077000538043479370386246166083615741906027930083492935315009895252552851466700458181963235036219887531523815518307419450468988669825508138104497470691298321094501424241919058070121451305214243576241536690512380237311743323437553687949626983377792564236435129791071176745605806688852900525384560479421802678483415587269649377676992480040011720224048144160525434362001490464943245876983880737569511696959063296865562916890234640329978465542616133833362824829896631211314403639796443187713950861348813958449660785241232957597840957624352000217981508019618059718248001508192664530140871820249723786941769338278957466716240075408941236735785560416337921689544439279265685878352483831993741224985410204703901958544477307750897846418014309569712530937702423223945567303698269863316524650652069425155205164914079243825956006198260379573322867752121763702786210365229118032615958901145308364786342362671777516616165000888130829923533209849343029133353871576978626876629306359430230017536986951838696243835686619501100249083349319892545845067047922797138066418159366970881755615999775537564754749239349079265315987205148298221621008662759173873059371696805486542647416789638915857157777581535189384654197714268107744118465162391492606306053307738128952076407765817579903118059964604597488864761901675084205675179101183588027978390412338885025348272823964108583508055480212147029620026755449972328173382152950976450142330775750478600724536907792256751109791442924901688027865039021743026460500564659143688501951534121049045551470708545150830711610554388967704592013629951604726383699332499668290582552304980483980174139547348316437069724978628031986157697570377312277883867852965916955721472456432533428619629618194054597380529630402504658925693395080437580051883693744429638833869829194288892348770653619436146879099754780285604014940046204195421177548454818732378617808299715818602244441799467539444471274360935647747964537423781876614319838034893565369871239510502352410296451109172691202655264925470782746571939228456866907881511346664131788384089833850440580445590831251911740731426644816909316355440103957751138445303285764674673300426300593049243193471280295458092060177717704803674834301831477226097975806279834721810714553215201083155650874612227615379196126932085745767446504514962579803944400804611767137672436497269881992389207024786590142918596679107358894002765261516633036929428824802449808063710746098420179701317575757025267246908961111302353780100716762407189290987894515363390430144509439549637321117605504200749381466626890787246188314396534043714247663249145283052957916579121764092018369244049655677327517249470123864441777852526028012607482006254101812588786802306073059775834467664690059367804264153899391521760699485995319101236049381266219789156554498302533880634637594364524821585886584520402750024018706696413121022966344546027360579067489719485472977389549892686267009843134252119919059972772276727975416080656868287874073541694361835646266570669949948459497148560341712149017062472683146172266935311731095775011904088319476760466257768387367129935938670733748232904923191086927319393399764001447931444011617215565494378900151522253662093459603970706277777284561830824961079513821617577792288215073491208021313706401093240282332862073050970649049592230053145685071023708411782653919986076320481806386695017583688654585069453457240805091460038468848880553582756533356189557853403186241916677987733786245460495561385487295997261085728843981547206724550250218634684656829053083576184784383261752849440997468613334558454953844443409863900621348941669311511404964813152553803363723135862972631750391034263824250129192267915469755453590092707122444382149670855302587320072214599177836429780623790901650568918477216823995416227069341144837230941881944915006455083648611179519305440902269539623558107390693117500941354629848627594840144471231449746885896204408161924451698214261660560745395135061920767470982900753119566932082044616383062997494022141546396763105713869638204625720467163786695019047276878639808093407519208103160175321906599864972078690683225441254027234988473016301582375212406312720109510982141687920031746196383539257399918526821435251650165921270606663040207447077569063454437178784119912172344548978818440786718393016203731047542572960654558139080904924987640131170333101565519098440797816386214017324373129596448724790706359216799519174424003746999052898339247298153643150117087878779556743002637334230890512232880047946557705228307805687299540999905823376211081079000817933555471012095498226655101834085290833712771933889761264008864802090259872110847643983132107519327582896749066303742720635720756117763614877694810796084950201614544497869449789225542228413555488882627555999673016735127531189287990352871721977160115289939431430059392771832363002745905725456652439094159092874489753342208436634799104342469937015683874951936654829522177998282055507369925306219665157262821959753080503101443585567946494865799241834574095931200910737527212840622943366001470145282121043002871584793164053949864142700741720866047078910372164084965493202732422347408011201072679367064772828780911147024676175239965921624048780940618909203100189225313630063597766404842381351503483818479930850920429575001461968994732445888599823122763392436168667335032134512534102649837958284136625001854700556916609085947866855030667368481162578426107073943888665111118811741956914750659093183319398478468450112545788712168322789538167419489764277023168844608020750253247756302516441321639727639921287861427870695238856902256648884806591278751438997533729386407329840383042452152976981249730750262858543000139583254411073787724843222996901155054328015478923897352145039412726509465938057455511009530427966253817963314162699651788994723042861555661999595838609186751951088918900300051245361085760509533674507442527162981589835025805369990220111742700928738520514969115530912615826112099772492404386920335460024349968063503936450539974039233052600203664027507833036058046701327049952606990486422650565778357155851537371156654002254235704036179496105998707657346208418148435773331851546218336569424325648650719468253963455871889256253141741897077832971190923164257028359471978004781370594069855993517078768200386917461950689835803214621157021768099498130900612953496653321396328538066271297416889556410724195822233706097597687669665614757645767444839841585437801998600114109477075578041825377606020917855149733155475399637343467790942363016975559057171624514403037666813131900361731356206477969726710451894737934611521602781533001912646517974062045283842933057023297630580147584625872244783993191342383749112124523526707164997009510500417982133690968189328107917307828979957716662630929737958184850457838670926669811394332569976727751513812199828433433981625028485336882554100431250907466743605253190985435187706310458174693764462238491337906695489226022416290329428090398061026178379456600050861182108397564731563280915959965489653724462984866844457936526790822103619201711220474284909880776238883489572666995081595981733524541384833120894607277154400344124147765837681900927424385006212935532018052000218812441575984749239582370910894482622369107591360808303912819421779772195266666810658165907587933467916186842276145169055495064597563758027527170312927667842158658802061053587170319613176063798708366613798716237153202286835799220306219101616495743387804924492645040696194333038027123053375765254516683491111666675041442719986891600829469533483664626942273015140545970484661386704491171344099151467455017295555677347746503141508028898080194644642429711506628460628432226031807354277939203834612597938775064865834501246377300037162291732940533417657504331281778975826830250660431008774322639338176858184464748790523313261274541910425374576679125928705623794528433152009488060354263254760973463332621296169617262840747938021926794696046515038644653349210395834313392200911893786248204381874960461363533019091780435306393051232304680751129082288567408428727841314857275940898581533158724754269760932191627311615268918640474397927681460224436193974392379564890867980086859917254769812681627585272151469338256532373668334556012047533763520747801253466048452738750424111763932968352413233272907671386987384311170986140617022259107796599138124086005692394496970053313917341372121149811031450589681541483725062993622683823927077312730838805763801986273327372529293544008537006830753176106510771201314524705612728402279176539309009950857566750097149874763614486638573150515203591757940687593851525182959855603700906059605713960162727380759052866293410706957554072521479205697184343751238906963128551918160082794197705872388852785641316430063839762870786735202025156805886969122841382292815971245374202744373583848343762351853835902070129691366052851027376818318470042492121583679411491884068997208586604925233576344910142832672850216105568988984065824477297467475543427406085877081807639375444506749926911914429621442905506487486245143949283065023337214670120116069314857926606519279469177429674819809502045181337987699891509429150279001786472970765019609839148373508421985323089924202143318040596898592515025687488931068755834447810802457542772276091983901357394779983803058671248489281329561466331899834856747108557623439542617429498868799363451156770666887165299661683405363974605946483087679315491447462124512789841891688765682814544477862723996427328658717676045365241242440326861047049280772009199863293274478276323172057207969930557105757321510610426804718792372836912334371104681252079381643572509399422102060318663254499522515357956651342906184638683356317075229802695386653093660293182130177754181283491794892471057095951776508457347812527141076818294204423668057317145575704868388849645340906687640979253648785566406723717801127781307671690951898093360833461693481080599306732481216561603346205444444864030013828596497411609197288939848359738870469745408316303902949743446094726236393328540394605832990637661486105107951005156936631021617131230541729788159920337673903558390407363592146304916388685840202059802431706226096764591337158214144171606213179125421999778791601247110935333109054977668225897992368958127144137484544332609646309513860468035505686095761790449389918546475079821010351597620223678371462305513248154961360891940347393108402888141326855074850171211276195681043517063877804450846388713453830908129357157364914754954682145210490885585754390190079903068791234621991339523075924179629263753191696840358891143746476432977984823449939737478711421843729736411395686678164418122884284824451117890256111079731544228436682736829083143128777888268708399549610282955462522540239005988874301414284995312768869922965117650322412590721478687365105176902335404163715371576388272382648464773849264275655683849845661846649892380861378375915579349940849818556726384795126357429685654447094239501921382240324593302147818747636639386701363207543472432938008896389949006104290016745535502688226503273502768295476548097616166404664092569171357233518946452374260088531011779800571327991220751781381255713338101479806892290337431674975954206616184792351112179281177228022275816787423780681237773982257408408865065093613334040789166454265216643195169682159333881751111636361598762011899677834577553229419320309154585516365848461685782902244825535079679695764964558531150068120370140306486156480157867166015343316212608882760795112030876951739812725581798772081421519897608986375481343672995278104797402639139632449560064670367751029990078994564260567061230379942373682141557947146882155835329850974092042456437757605533902871363210061123215055533802976292016512848765235050535864304064604840718537849672302129515944881963231765389534965375180106896152716868747739775174725039952569416579721670358814919050644968495204174325697456683365067978265961937989173851804862912318893351534355016823215353998185046442723851232515857681035128303263919298521857871740628733598763376263937854029894017190337410314086367426247453193425821536536129252591566198829334813392593598546605674828070854298682826992549169658860218378499152773967970214518026944729876859580469368107040957389668020533528667554747470079219521610746899243174420400238668867233791611176524710888152219028151576018882519211357798386729512676086949311231565081782942661765318278939598438449525297066781522588173872686913412095476073106294691474597646704149442772478642071439692123230164278099467247329499788312519928681395894134073039911034600600693126735555557022767905794224966599792070002515546039126861937965726280705983746856272592379953451875524702341127385144152271938181966953912028091165962270647992645025869387893549099235493138654512989668276858332418357869819507831628069368633903846686834137279649250632153168101413027837630571639831351196832504114050962908137724502582656417254413668598992310961318479422314918578625046163557571978199020045928630631418640239124833976318981328438088599358819093171145326654230947938886206810705093690090878856821194862213027084036629936761113444226445733710185947004090328786411804805868682945566457458263387026438352651614514257582119905798398766102547066291960137704587799123173219536378673426626205901479369019689491165866592680480252172518269689776773108210811162625816608588942229547904196636446714789113805403018518949562158010520551514084306424033692672325770622723603537428531279353750234343508454486378883890885015396880788452835206219637725469372437336037100887598260663515753053786283115923968440522163373761491221110697563923767596532259359192588959025543114526668268439857287254248372785788246558567872560932800568706217151797700336580856903650483415310928762378714263302449592643845490087882138512201144471770498122727605919801894148217746389953261486700891297461446662156253920137211616134742660866709185298935997053998142787591777852462244513482250569815237180785868907383984234018357164186560082276651960010891196565736252864822851855893916618757739054171116184074903491540953459190065976991185300994777277759129222703245525606066636191601630020589694328725507959908794686181843616587730763895211930794323143197227716006463157863988517848502718363954736652517601068534003742154371783431191541907980328772460908929885215637797261280617379725486797679284670550460049099269631970096744276272158452823356036245156011074336547903024088415153798952221330943744348937725674988182678862242575282397906917951533022755800099154114001586832726250903155333395034365271964749527750118790238306084221734062070584834526335668299981435493560081824763209773464283847873287452810359465723966068590306937817954727868014063326553212290029936281845995870871475672872547009164599450554082291682507086338769883578052965985380059585167028811485108424053933574506392519263797866861365068816036316905665686853396498639531056908687174462798768011959661445734350128177024837214738261317355848976767252994866065925667396721127687082054622763497277225580663679273784143405516767985092252860350617917610943338991592722990997649311583324847274973081616689546869180874667542191452487119276231776978138041844506343641308125434117546619123350949606342372471754668718458734535287685778511408292725346976396014142175082129361118093273764616283369134990182638052522589417916056127031061226427848070298933150417971689831182499707310432936572148530599650918276459084157073986528880103076246932197302441970886038481542991071450871906320931457664913777445593137705618640417951256584230026248493144439201041042858629831698749604701225073217708249178577539623500012656781134456930054395412470931287176074267948950320583948016307214200949380693573385097180993600947221205009119012821679874666252934680079267813673916549133884590269763701491646481609726780570945116114941091464796672819259558270998611028843023300484214697041842214897658562396357775266357128137786076787378444564702926432865335575852656494893075177585478275814514093700090526440454364932354705231285863665175770498060990818214953106769445867657392707942390339824230918964674422417273015114297561678259751912122775466186433558222273436041712395897404419339408138898296739220489525937994297677597471439140702704612512055790463659342132038665236682317329125256710696329044988086150818119611692503411588050108223143784131957229223026868034664973619291689271145272374088946747879840779108170922952223098818191028147417147962546962588111352922712468880053661980885517825350014192705066265188098761907800120825710358773170279943686397660944924010346533131117978955018227900088398489337395773688302680033842247271004903132257460856917180097928837668113485337156691339351005879372710901205214075953237849905916559011738404138031101814462945975816368645924829313202332712165306066096662367054148690022441855980102918501469073930876207067893471227548072378669971727270366591186824637938315988172388308651139381205382542385317680972841358207309528376376728617486956418536224148373381644469685442500579606477649558356518417600831412240695856735184264639197435648581717532278707279997814273587335804332657309849532417298129091906032858095603928855599924828926656878594467272831874143208261756453753001535769312294824839723602457347394453753194698890309952430769884759362028296256046339289510549396710446631969925259552073476599595756098769258754225228597647986785587415025912242297145720000119820976079465432676231850928238694697691969258294146765101812384237189098513564189890677000702020998487496093877359403229553853179808373550336254229178280850968714409066235193341528065383074771261813365236711123206403830303367923573653397722852942804973915483737611673467671371531462356066436291881440622626676901078287102762692668786958550792214582195519034598703001733349844324400401918571151703152153996143162032663713096768048188852341974939581366372067775269964602406689782048789212448854152127824365524730082973141049417255147335346502436174408556664831270449042751054263103507892179512987675787281899967175114678730360009441625704795774863645425304197385686852672373760722184208044688939940242926732639429050595830131211908778369534610575543382034474680564922314626908550747303414668318575436330273979503404730304393309735803909997575590909574632937181486975266889898372865390772139898684143580358687378819061827582275487980397417196834686797943614603937936833779654003457481822040787252219641220972904472449495717387258223679263657231068405510013562563163736184186892063674871837299487999406676058681503380976565693203538709993220293060840116903215518978915738051915286313889535029064602206662640868983519188231175675376995795341900551549722130841733269097265438044407957470110799541925350592746538165114261215661112974626173300617163531921712804230330447200564002999028459676699416776899267885330305481680969331342260719584413408259574515336550299208772409039694655217083964519397213242547173653133190642787203294458022813432781974046253582841516719589803998085740400494504187365435884704011267043239216633522378364543917680145299721332672775844366349239194121796592870751983835048109869823819925509187090523036591875565945442502897498683634108969716827408952189975059818791760399904335108903416658723951448737128424749772380560120450683990735296048022462451653050203937933186925633918402970215004917643778781672097471193936998276925143698108298487649107436673171970226012003127092742553554401480177994064670575184948897300873636379311052569425454080143410553559042573587781164549578507118041314124970664646705397724973083287874762418024874868193062214907575569836450031675337934261784099278486075201463116362702767257441751342734380239762645040967218785147274266859051711882399508521814856226134528537656537187569220185599104943920067183153084985275596225946014021287307294763042503845302011237369525469849653063923107298747542097806940552700619637921902786962321074750313909099694712570143347539606118624445015565944574598187036847026748557902771711888848141534994853428452956416703727803845544240483159708860419914132130191201112378469547635566378123735950434806215227882894390668439801716902719155726025277074407842577630126898019581511878928609319919616872995886092585576422007819472174991386070447573951450987723318516480715749749540824259839820141252783243939103893202676121132115714516667909184256464597372908022248150359389651054358509519464602729526811809065053328764527059355406897269083019820906219985041572477500371396396319783271325431184767597499464820834064379614700142000909094888137133882821544170812033775099013765794444786066518496977194248204060210286504539106899409357521676290621292864609170665378497378213774515700701352699315657181549916685339863820528303051129401016317600567753486470466553169904247868726931038661564619087830099520682903609427131519215098846803651685794047109142979860201585074978526360176341450862405722036860935220218454546983944202820723903100382096010367893777868400700069509801440998652665077088275081831560736530225733369678635017156619586308604108896994555434858263150932330176512382168166212424755415868352612292208111621331139478699351508252056022237367684856971131641510044605687190763699182645757899779433432042976304041133944866756450227535762770739844231178066335276843754706050673572325318703065456986360536279290093019880859473041439344029595102942655344540185511094640637821775410794712801439860752133412478487820483007466383817736346804052410813193757770489586938183121889062662853709410734072874532170192025289143667218774869619520983186364451315034583360048205393772327809036601704044200601447477852190238372945567985311458060222707580482890313222525709408695195118687375372211403381131623704003033815827243877402210113258805245055522404071128149813146766048657027091042981912921951373622948300066642737199660468169564116899425228845771666655980297070397496193302099776482003909727675684202308589192372905691922201926467029849544345328062225470167469715399203586726758411963413527624853064202243115190080803639300815681809093867818642727069718613159161380587935000895189558693751931938363558195348109657324605427807173304850809246133991318380861511545443512604402407412793733492718077865313890357603141652329787708539296443523427376868109729028871798406060726864993839580189300470707520023371657009223705194966313008789684806409123867272343204347750620728259173544223489775396815368817833969340847563309733027983976790920886558433610852657447437459865527369747966472585427924424683482904686617427476859134273774765651103331776763178265022934949590549179303402432978611021706174100701556314795434813966750348325267808404123925225868052798612768619263196255292150259447841041547615795836213669194106545445971579922593049601280974546565631272556883353561339941036077041825846963090868446291888823266819224077506917760169660986288088703297516781139273210022891575511672092444283777249557554767204174695218514911960553044377777653326100926537279976688079822563398269345492663498949140365308568180492300783573908606891985619020161409599076254769341530745661097989696410424183582673171865452874884191582274281129993868478612418566359763857590591808584938636872571640961658676158221278126783349519082261734868262714990720539745453437303742922360197014792390317243272545908089773212928841791484562067455282385409069133703073009178546243767336074655293900855395847119871068836490559911061696424922349655401838976819122104788066068294315146754660787517525787330318736457241553913633192961534339677431387920825166180078160193997681841966158416088623173145069801183676385107156931743343722953723017288405899721762650610392529564184003418796007997155409622798312147827550095160057679199669638951897432336482939970039723296246340156748781872223166115204107722078744138165567884580005510220977642614941363022380570285672362947092343995526127599280655140715221925166490948595582328878583136503545185300488275669043149195940043830266501628455141899339200775448998411317959418916278564605061798258785982589754243559150634022408475929358248372749099801906068652749938982882474205451219051649686317575943377177848780066192335330093522147006813248693851082624669971557603235759701985813134209448239488838721944494656091348565907064150857609145871799844078123366042140272280578628650733094291055806347708999832091216329064084212391830892254973490989752892033265009721381528717007875105710582430873733697430790535764250501354215022129699613587088742130209155770598096279055869917610839756436644557230611076359372721178588951198464526482056567846739970179139235000270991889666520630654571826181744988137538679531214737659364733913337975068669167331613845554669175153658891752462059079403217501069406394680455193769028983643800537319025340226485840438949358438757147686310600913054726657572642252274054676320177895027871437995369271317193833559526673950663233547353131509847336330637614304567734409613990477210754064525421404813085907253413130479091549775906518232071381457643768366420069130391469812243186974190444030945708777784058277528977334690824725155620574909558277185807811705768571270513375273642179512930174565688545352220723259083420244653588289301106456978726496200878741162076618856808728445319475979406337923168462537788322086400248146566567681295032476451367226948091754269485666582236233798110689303882989173375929943495448725842516905191876559828040123409231926245271036424703699601689682866728442381713359585261014220888386506670363930778930663651097228272448340496403301555196649691411618566940532577049437916696283733130261947823983707762171427872901286401009217756060686741560337437016456726796661779030846302024325559496352160610382145023782026919692374459620489403196536822267906269083700407403244736692655460458031051738813698918631453159716409277606117891315301452235243232269006277858046718526528327864489798216000707093298173219010478959624935781715641782039260567659969822856747157240190802668798022226799013848279892892707116782757361660071935273097937858969303347913638889815457707739053917138936716025420247422571007800174520957832159534746797028112830811309880136413675942251336707146483200360728699853470965017750986489886414140254862627262102086358671333867301922990814595105092177606011181460198150809003218946461631986294927106519425858988246080389059423582533044647461279175761605239608456993671890004886260846779866525095037224740585892974107245831217484331715579135131653325276806362934142640162706063757527014375754852949486779815294683711149059055732718806119183461141517501833842385662985951080760495711943447093091157291406340841309429222676614229517376819350984907261741045850311574466604292380508783487287694300864737129838515915785721560051380791919021609023917373289340178782667691117206586257712386524506279803455691265499417436305832167713397169299591421315797233866626074563297251209503197459564673372464838164222647687961338195283345306946787098839915709771592733691114133743894351192112701245557233305692441945655840836753462704411756647136215403091160368654411235913712983807353175407827529906135402991985581382874316389372579817393069225369905659206448919259030209902422967457607744267654128605197253440294150356490080205739323199572336208500445811043132736632421268142387767428705818333443952884081009558767348434525963643816474559809209688367800017747920965079478417128575381235330397542787111918123441348759602602150051502244627742144379646951693155151936483326035001247387051079016599853380589461235217179667914435984774023787391460759400737828248016032837108598207597194364084622291126774388686845848108797903393714016379212171213795343414183630876549568243071963296876502266662247783545563746044382763581835997551034182211053946560399986611976895379038555271496206766823103145989851553731352045107850839137276725581446424255835656407974252146726279452349929488413747903337259672258223928641044776949450961992841677179653046860532416879155253964298848478308569451603122288944279520098781571277617536639508610894693636129600924617803141813720832217604481240990341222469444460281088845665810162545242957960104279625969157278198002530271636686832491612087691442979859952198025768045975193973594334919375086739807600777179854440647078485285778297432816424854753581304368012265360400901645727473090649926122542453635489370127021525392994068852200500549807774255946837410084477579092851937379532521387957611013115766333741495503808149826717463211705330741604212311101548987111093625854373765587638102918325768136760948340625590556111230757935542721442214365773897957017064872611358728542104345532301670009736987753458610641769788680131484794758634658403969447229753599802083888506791458335430848566870144648252385359712747228148570689335813612659194077475418291434770598763301657591608490584422713065057674645601392081114749394858325230299683638950239309060075493707606905237831183650388225504298157548724174043356782718668070506467003192721371055950747450666015476434999060698828901513977794844247812509179853922152127110127876202615521556504277042727805320619769648897708138695786404827657617876848737184505128922258209037479349440007818761055050289402720476554989123324016061001791882032211397180849088663560212162810799721263160446600159628233644764683310147749411871243112180910949982067039705166299438423055670936626055592882112108628557022578626255075877421813338094618561524505465828607847688551238261099935126171077881252812406126167476094357405543030819837640273919907560568391436376588187183442916236770176354219797737020812559400336854462731153053637612643903357701298508926265512337401892672203597088030626336855422374309368640216772494140361997004926250432735863759941180969174254632452062535563138185834140368348797564882804857111674733549936338848350038005902463217550991799517461214331755614552110742257126833753130173101743232500723256181030775033900975876086432057213149822597712272400065299023659614968796194931548850894524436468806398395927329182789599944671399144146035921648977622414652401473158275516670034497468718975023849203500280887126494211360976669145429879115879267015754805115097202288894307101638762054357442214516207183665691471817411274695697799621074438912454964702218876522479575533300783343721393651267554093135002947024461141272871062257125691490261789043675363313263723124622116344658368740662803398538215930127344333534122247503747938114231538373487132970453827394792389011397726607834192718166737123394330648557488824129308789179252886564372228842337925750925241326837437288153843560024742026710788514010085247704944038574569231496057230062127787926780698707123904481847718221487499500011769073604386671178040786452370853800619622913020261884110789922536880762143906877678373117535072823572288476043428660669902440853985963617560972195802269767958227624433107327113323879965391567146858123764146594232471659328860215374851224391081449564052534300479691376096106017434683714043195513165791135770196413803630760910952820580106092210986623834656153279581068175871898820723016034415653235127078208860165351387907731502360079198707724455429806732964244613461626778965407959941929451419268711598289089103139721626391015773693258390639304682089883435285377352739828728436187387097377460905918719155109206453322575393297308591725154685473200466606134499240799835773958088126362122266642095972300791958365979124064204417231679464499607738069767401157948164031401138132809740558445789391098199895770840628154410377389131608594248771989266564873490764882162943123901414945005937329906537963337419932662326310345043375662775253916579245520719336669869444936606266200773811134904452085627850868023418040305638399982624681048288838275849833885009412138331150732550301818287478042917080748754604683681314673379836147182848037919735720346822620614459674187473412678673726884659062866635508650140175448468089582350082480042675321064784539851828366198276520518765901752546221708789287442686437277351942413083358827533460902357558221547695573862735892637300642840807985135397396382622948545374890919766700038904895979384828650723374513231814498162285147740405940080979774021574430393643107417724964258537331678961728011780903693418604744988285159835348080796154871186600035799304322873390567919392489285096966650811202741160445760288119629601074756462771952200770240277902018309339991482850869641930643175726343823693072267252131165904312892629654760022003243460584453112376559827470932893172302383807757651477917162531580908470412163240286550143113646088377198763617476116256410779871108315053295559122403977657479882405266417401736219196951008709264879944554969736265366869733332592849578605008920047737884203843485377221621132101609374826538546715311562346412751816289765721201177348392854392203184833400684536458407764112601020228450831703939459933827588797468798888500218562871471155175149630159137742042696885392455118308146845158306687416662724492188598242767239993293813724924606668390030593827118788341115651998225730757650698745938958973959305343280070709816451568504145369011430852548342838555793175051533908469081361062281674542809201287732331046574661107051599000164957091825463182845944129207922932767175895361767095643248270086790191510185385300460797462221291398816762731435922334070816017997219181388279045025981451591896765712155699819265159423588054851160612439577331089842402320206355876258405868520874166991813315630321741323772137808109533882542697833155312604368622901446258566468264457335003505249855353654895588056066266035426444630827713312016756771688759023368433294443721138784565155688770417293029756439842196855274420473187474793862255435769039975443613700484790626052291898967487087926525150505109220591259648204169599177390794055653865709578797103104761563673783153027119459370346603568492670785407882707393411801627394196830989127686253188356724302722793301518960792231580946994072051240790541411893747843260763908327882202413056402747937641354477695325474473525223742271281982571581097912324490223331275713724257747482022666939358206261141086877894958470658044453086584135849535699120453991352256073439783684638870996868729627758606425434243550060592555587142085828337857372562351655433530341089316860815755022759773174109357618261230490209291698360481549999744302577521833345532340121758480235427711022108057335080413291861106434147324736517666389274546872054897545273841631636767624597822352190635090022008741380604721364945146151280012757478128265418706668358667489333446923537046092030222661123279240478839358480529726868146435684727018705428308772871674262204065414833071683303804886933517636894933831546129062813479322755824534310430576960510740634860773795803587317927313711558425676767431469040526851036797789110649803128469362175715655924324886428273605944672658648353886922644815841011883508596213636108315979238253141237500038157454588113001115665739933803662497992452478448697516896346824848781852407027468622133078148480093476452951166688946434054608364734564013574738431717482440703769655309463828414326667622393526381777657639573692759748252623861636703081322937794319007767348199398358894911371533437006978580134106440248608264745947373908817083958223099993234573877627890840438890127061544159397744784669574471681883194940608312885322381915827154350532389053081994822915135318862304925398895367723998154325195805230266717875593521287608848384179249498633117412087667835701833791688970278606657953719896088858338742496067115887330538786167037600349300075043408172590575018766203126497673777751872153255274895302274145169903369830597534857133502300127244726481157095414146215089552841378229501660678657337089291072607990385145890196638122822303004880450560137092258177561703109622183247346388406617184847708148973869452871137854992495975662579045659420894275082801116227396089585070640389632630509108056025328152120313433668812207301651722672528327626313783514947963490966787822164815577404266511267422511134658189241753718978953117352996566845467182502676669971041471008533765490212411175039931129959794176141417367844999182640137287637909185668333906562243639158419587881156962908836802778681730055918357363366480942944419147578865181632907866216721507481694711217682820490960824067589781017131172546477656266655522326334177574385890700865015389561245628881568086195630043482026720826412241836588128901666454189964239164398674834244116706419483668862100539485512082576614343758293100501743252285497486749393862388267015231768185718607172466281590593772640918459328210302060081908320160889577035842727039641729754310568776812914262587750803521624727941023882107989886286704899593264091940235467849596519575359817947463640941748189716275069508630448675171949972314881192876203524689850894468913406958415928419671114652886239651890438179076605934830019034086540479983161934238435641781007151859939992850011777242540501038437973715904412564008587151195429508583275740312157351535537881022143739489178985672959985362901678128172729381558852908701294797738685136222267579994584042948394299228833081616147007422953566876500657976288462906607524152938195751682954677839285346683121623430820996282612434034505734672600465908410058895627819413955617724364313751516225742873918071336041610954090414529154117862977848980066322361601734832771318214941382283219363991193118677444941740495900391204130983680456467273357601975340041271863433713431379092911264243185388499691152022602129063881871724383709799515962322408430636634629375417964724567769518672787488083939607985876612384965234669073786233131391470970151778226659810024839121044354229773884484373776096951092455346685590202237512073161007878000443204488855529034372391013413728212617640113090136073916616787113567400958229725130561373772207817348372048753611250820307454446407869181846051736370175923312076728214265106897551691851010310825073455226684153398187609516455904543675764083368396159186849791668915270405355118418462016486024470472526235002233232145298101836910222355585419180675820094756252187428964599276761449285104392369080677468201211548026137105098953597490329940481756043411381779870580317001318464956345657359649234622064075236080989792271433170174339188461365896969130877177415564949520077990769723910707276786428042191817595449400112980295393445904031210817822908636180577015273916820590002042432579721231176898809531892413479987369423991994041997556396326317312395645921259711293378074137975516216479318252904894280270348214383401802883997461322218001534381014062168468818685509602048405781923397788278724719335034252696881987364743202050032697080668723597221506362729805183875187166446699418943969726146360137899624037658880368298501223259627135750441280451393474057457163079050630313243959237885123448368318624721484934713986695956894007972448778850679691673289036421478009560270876786571111366874900482112356513860943886995753520984875069856898222419193668295426447834233730382790967150840664466266351855187246953389211248894758369708197529224424609826382783775890070809754051115906166587833823556959079308255195520777836407904707824123255944982452792230984717453154033291323802149278136292932578865082727153477728955211273475585122085212033433187161230903329941118841604812815369792281434975665132135436250942967115127576626012458601329492427945956324878643192953922195680572502639824699437149862282141066493250445419937567824124737684804494790860061120901271645421101026360428823134521743460750209999052459506469087482095645755701225248079794252600200537402996335618958342186927976531420704250158104199765262740365189429507501525289133767476910093862729392392657967172838662786850870570091095640653401158969294601065070729734002846321483535224897719386326226706159331441485801273890501686011834400133516067730837362453192179383338923546533634228724083078598642701697836955143741940541485855823116819057325433273084772294778999218069603054193425268266275164458027996759625763299569089103321477075910626590297943047609487083670382667719360414215402682401359535509019116520027854710235213472998575813973301067937525062873479709709530541442841215073781902631190608829591933413551961393481663432686635116896894671227908621947196657551240508259644015256297214495483178515025663142583294604864858050222062861521903993298625066209110758623071044888128453132834295610030386418297239747609392560958564651782701135218314296697723766588944826232589249436110280422245202962110940587390397481209485156588011538610263025765631051639080424681637567125402089456509922762812158541901828022098310642606360393948189623003742973616003529463118873134469921285294767260248738419158470743651929762667774721492973914503439554857979999366551260765230784620357150644330504866903721054153671773947303693005590913561533093995669236350429309602566098293886648754254042649196230475824281763939043910595484495030627729055430422119135296061461747250777306889811741889275776707024083202709252442609782600211636587956245476226831613954776746569473706178049199126845048651355705357279939292147516237886886061252023022521245393152689312014637834129712881771489860040471522003227767587075728853354146919312593344120794391984583462914476400741080936716924984552467349291493308154769633886725285290122828930885606716371394490836765416985198403301773615804999276159659193427097168617031036534455368515203858569039427635046597902721878559089144149390362896079695717159759583551920995986297416292268684743651399169856139864891940998758892411822921635350584739951088461937025541687768877914717390682926232156820618100051396711105314149992800129066694558210475601468782214119535117631679815443779448341651929152784504644375587838035576304291995095478879990884179889142542305528200053022154300759508830709685909145305067811627444724617904512921865752162301371529795739104806535171737211879943402624970090635097740701028858880163978011503619528271113872076619392019624909957463296817476753015697041282573178378441649257424889788049257557989892929186812205697126942338717957109263428584153749575342803069366635301140702020154639507278696461398172457608573854816232337001036793122305431107820833111306594267882858265006548874758581361470176262804011670363777243366428267309697575972187784278210823406637783242038858506813902115021996369577878070618811162925302629664539513434487655008519658775075198877111613695498095985722845383697399500964130007173908898877583888140152435828753192470856784683506755554687083338846208146883374615984786499670177608846897577243730378101726128951832036545210639827776549886746169890888583741660345808566816238228501404570600700889680926511285489241965116857868869430752056869268601194869414720491566446717334317870729094317710776180446701222027966250578995611452460163864371330339299120344301188597766054375006310273103123767135115917623916124041409936042689804326045203055827096481465703814435082902086880917877193609346567240566800827129152471925959210880900588982782894752099164191584893781963876746092687640670659841356737484526914165863124516638682510067810698868833852174916394301159127675619816044986259235923302269557413758912705619914419456722084517897628094234105252193621692282192540999693459105131548693674120413261431100810527143714502354925140615042616846739912761019139899735943536475334943659827362128128586064003519685509974379016754148383242332910968018435819553437907295425808853770317845309728389150985503736723752247840543820364277599918361978564764431942185722957124336796166681505056806538643619922411111294958132022686251654968121706676950970160329511633005756478950502198407957871834668092162304907095205189865473502109333713133229507860663320365304954122154980998883235117387581912472989425783978256089666397383921695254066409761294755228052759687273180996129591188016895264169164802162799837416995414113718896866678440113573107925947816916392611683038313593580855122755939746750789224127416101443965672291594435679959052890857147031982438326804892816554537216788281835875515578680830272172341853038475175515582773930522564975750863731714172374424539350901248597596915193293865503425957358151893946321095227231996018788366698426758206715800178381026644255822597271624001260095581754845577628916127129514597799777972253246479024366596357630190935016555385853832515186198813266098097121681919095499368439322103248810199234993775010139208236140495624737049702650085493004840847392198562829556959789735129052080563742151564676138915807301536187517842823593763021997480653016500847025789088714396851330197354043988375885155229936776010631408422936496536958018852890349908987324804515462249082550776714994861152704556926947986696413143826027629099265693129128986861470813698851221880567539921436337233548211494150587235246665727240044434787993190405994901250833708013314264325563070793296838600514415210485614611714255642782268831221246202972847797580048707657346240146020556400548004818064101611414253465321754031531553681454561095778025537762053537509680172265985771809257874408632946480607173572167821453022342202540817667176456527709172149686985950088735483039944257340617867477425141852273208377649781110306234146459932836822521346625846071306592457224604763607404501719391623395164312560968257373897267552970055896116206593913281052782436922948333110269706129311880707527033882374493307693291137311950049935388710839468983590061236100445622575248148310641517514198828028806140046080205566778515119185890078360711439813343666891995766292376357302807447312916817190771338591302538166824495653669263308842300860760668675087056182191056379321563281632224549084074631005943243305645063310560725338437365724584977142458039861005224107825437231045671733019312499914208516080133467383181451108915621113437962522712681807344063866931763273331964787654378352080894584715124591199959112249684123108204822644223396679806159953003727123169419520680288341583473039708506823244374249302256155960300242282775089129727116075532405139352517029445527043810138257539132239637287197311759060057659017034753311257251586680355017548515819163703525745591064340971423369129934000467876979734695434604018462975967208501040440859502439174118317526774011341278815860927280222528458985847779756084558161227414654590008050675747910195810555611943516451287873806551655326808432354465848665195406837021966599196818549833088479331942497765664611679137067467763737432397296675259838465180847651547457646102689181041608838953450942391815945528630706325814815342993171906628425981088146888301350221731445577283651046941884761978197334129046797726315988213541747425116675102023459824010532464967485327271511630351886161104631730338463086393671610580478602793535687275300771569781929061059610380327020842959665823185175304767285489900521438430870090840951620167289343477829320423923476871464938167398480431174032530181760769802243141528972194985391021772478046507907740580130274797384618671938438497604299981754192630454260570397398732840090026858725574752693919867373910683768821737370078102449129704365896834351588243711523246171298833544379386711570188255140434186146309744228160262445380667151157745496942544685433968444370096146616270639047696639125201869310747234144245200508231157298238728410437341212858570145492189475750435556327018627024871293290812518391259511991562118356948774708582443285796254746782656228440235825144862680182245636417881905287387451544831437797410813707495100531436781554298230166881741324104990663020782681107103724763105700011068099093379351543561581045127418411992568317159614865351352613580714042323593647206673944030497591599498376826317296451821539037858118229961520993967126555548298375962900558467324149810340715607263218696184544500713334750868995401918069597750080539208157069025899842427402290389777059017198079297828918430588840768197600198044074088239091896218299388052450208479363237820745078964787989753542852207981341160612783279997671476635664640969419863010031237584816993831801600951085869189586163397549153813776199791710120769334862715239291448638130879722783888392651722785121094959756806363052216743077999556352876015258497286356682163546294457133558050482649229902176177956910150503494975011146741672835288693565882470196024407176177907490398984317231804730485746706023460115369025477234432302175541180963876707914661815963184572279371370686453729816684735265355160362397832853658869955241908614751461125358227585148871032498887761336961919497864941985182129910701370214722780059826111211115953162654499230365864072412065486874246478061640871185705737095546544071523742922731405101176809265808292189105047177631147116778260114675630014765193218571729210480488151702077861628413988109623566642853492843123196762110322720707506095540834106776861629473821396972319398515364028887889211817795749494644352483475629496150665112191221298402893073538670861200532283251716453814003849675801030474480265639141446391288857448426326871711376460037221823852720184844770453524899543330718529721308047836898594996491221384197861188336248603968020287732538172708147142801938320284741760185540745273774694939828886669526971890324213861756443977716180087472562117741628697635254503789765452696579102663971765704491813086171484273773755115508278470977616723299619613188737616410221546175778417549868226166579570981447062513488155241354670738316449787155565915881318360514342626026356733276236302127416425267846945286663477663355675490738833736008053291895309207898980051600172839223093683050174880129094604962842219886350682090647412124492168349338732462137913383955016655929443216207589469592820939761472775910662528430654691149599513904582803744785089388181717668577263866407304334944555903548556373436721262807452006528527277842011645402443740963194213201511357802418473841834402155942942859783715854535065771486174462105312412839644195308346121563427506524877482802846067002812330620941889825523121745299156092653918563516551567667905839983141749950557495149763922999176487412802368105507355799766916388901488625930305180269733568870929619204984263180270090973746259801966266417881758945688837004546125481026312199080487804839733228651696543730866143361957003520232482227339361676747438171715866089247577789154701310131966064573199478985795120728125977975249368231969337602117895595881583730936511568197268954894525063298835785852489302252041510693225001051711435597438479346105619648530919544953963167534361279779543421042261330168574717537558664733121596151719187121637708825126248158891285941651341494668811183100542451879558365026748736960962979063871047487598033414935882515638910028953557663935316226771582489749951112324796719464354306622639285588699403593334116411281521345487232431534314250013273518316432132248430783786026918392923128136459429933309828942471697117876041072849478088111428334215241812386213585824535429722978874575231007964007913049659482894328090379255080174411865158955193426287868932127777815264615223732216728806228353098257773533463422771190106094114151547201399415550934736842627293496433766325667253734997850931414052844834004791725081737808800037507752524610313852021388359784167262459334648520600929164213445864172262946023645659787338458184178173462260447663860535189457593576552830248589954781177775533260796032567382230181636037178501823245825172104892118060002593251625702842566465421338609984793622931134415392594079331355616711480675513972278259533193309668319152126596456602658295080678038581060448387207083986480938853729129939036354360051419156879177740063592190433663272459340941954300889315847917123384686365226205643719565334366549742495728649415655879147126325434231095926215995557391334070142000827787382873151147965682138738817897838755230405344575792626546585992718273026931626352259839254743291046072642504870629045882556168316136780387502236864573547675073122816274405868428044515559292317902950540946246109495974081249748137729267796326666009281811583236926362583127326958574118197076694550512553891392972263407454138166442682209365344839108488385919900493322429781457357305957757181862639535559301600765489010727763100191243131517529974449079157582666644675033065152913501682811618963334936970704655243563377970779823583708191293689028937573757373570790885233351039441478776566063857616049951638028682803858833815546559632458215971944003416192873282471427421944306742471288456877960144277429595390445354680348762426103729674307567858770879378589550109004142990779733566699268847636323916647629988116613667554860804786104472477580973645815675176775334506068367259879865211151055210682688525030941077741873676600019065522408967495599721960267110856594624834998259781256108432559547397355384688945363163598887937715126693370749538042791690421724179183031200051994339228317395427010293488524396912864330707580086167221661501140269790838257114430350274085637694610219315745226494348699001993770496210598507687843504916455288770958859863277214563260045084348811790398129535266332525043616456300638524382671097056933619199859069228550086931460955840841028249862814208336156431596065044761554712466577150776091770248933105969270201151934225139219130355895521778932375961428309515490561532751621807566072970447812464612709470184614291965000526167973597898339865410329898909217370625768329025142305499359761461552617850107706526754427597647108341982093598151473428092576946963399383574079328429503319812289701159529461420122888947984635182353547286076014896460979053419014366792308660836736072288332026807159357907987105663010337682489559324738683858164029783042298057775413908643805646622963478146749670291054069987343894643667201536372247572115939706561642159564868647322375525433520445138363549235081911609006413617687479017585080177838481143674452835715078356977103639091757984974788793761635684837267709151708377218696507139137202555022600510870530430918240909810098569960793667426869178137851052775767535581749126265208366675396114227800403573107373403422468888266241129362625695836162237512204625417431536886366619842479702955763891638208294121527920327518022181905604640448084840942811099769636498371213314332929958664798478768171535302345501545147187370423785446190574738408252293013744647400158572130768314359324699915050873166828516550733019147150950392409641669648770626949056258880484762399744469044647209608793967818506628180953627374179325730400791032156773791026190238869134804952915580214541589267119879597494227419463417295173277866839209392983701419461011939991103767239590168470829494023166537167623799815225254664476062717574820223627911312491309544499363426330574359130026641013256351221288405084145447654979301392647286376640171185964671213097226119821998851110469405808953748222421349355494644846792300758091052756734839123689368952582668416272077997394136751778820640976080900600107259922828672190937089742027873314968937504858213379759953322885103660779722515520989069211039981599881985326470124928669889551078409882158891926881748250680936825606897431511312510748002222288633784942273996242679288918145044251890705312269201265373168418124759183520451488375916707707053810178230117735753687145541323928020419318329879715948390082116892058365149704771309989852054842176785030502913317855253978127295158231328284693297621408443777085007341103995184080759736839701096553860770038140818743815466609973348755203642338563163912664577094111199576677922019191705726161455144374656492790589579332614533795812957477335392291268547025813118473543094434567645774130799922620846580890842472176221127952364486858533169867237417112763807723156303341956341948327231124177143237669290494307583289608500334699841869244881776795470436406414418405124965342702055055452731980011605267922822456240135444532989269153394777381138203793415463317919564590564486147113246121598017210762035629865532486379713208483617060773883578717694606476793609896754369626950907974421445045937563671714512063658334795144376360213152362659591507038427451820460614124850178791142242278824614460945567015413315152103344471552663428341461976332508381799484008488217613270281058837028094789627664690934310359507458207158270271902038971934744228427327375592294871891510242912656453124696720210917566919670981923848953859374358129981026548809675660419920753546255182225775358154737671624448259457208431343810160729023472971286669082825722935782448334284596854876413049660774253188348300649976222692555703644419042294688574380819583628376401861978315081405740950766759889638358738591647136283344627148183211077966469549761727432429930759204419485009182437119724939633975615179834489738311420514529224133036498676722344209617295834439475075353441162650197301823885554155744883946080675674554588087501982016917068966992121832675809709688425867096311648499403717196440718186248848135206170047643448818000700112052764155904451532482983545294971919755680092129516879307557854005014589921476935128280912120565155411828443679342498831964119358210186770846612383805341777547326694302837182155074068761223992665872215682626103793720335004404644800043197905810748139613415344646325179682778105164414100705012333609606001071903556935485656312119306297785113901196074867788717317316241264401012184943646147221272408474600815182846851739806504521817804181705330054022668360410845358407969981106027527185918108183613117782147568236244664097579612629942555634107841242038391903925646405768554246604426921740045184313300312440368555990195649662095546651330529485731125798203096724321732061257825767382930505033382105620325559099477226440329692228962952655811786810893484882442568423390695209390642334337192709313143171022119187714916890171536786677453082893126459550759823889279189732216873637980994772902558786754705355394375847255800977940562923112492506890849712001657433624037773735328669667067961223013942521855450748097789581986387980827103253619275071842540412913176027623134359121866987699617909659600700337798008346591303554897291804870989178309327727038935628926809448924199499986232936557811695757090544034684391630816782340923028910917770537940182262497909411061187580862571081416902371151686993855511784328781790492831430964205544606452593222240147059938129432155574954832124957119095890630520432500040740195931469777247273393185269764812148345335838567796147693253058198183605682119675654360517898116163089348939251501835595239204523345670451658799021449303163322369590770306923161974815340342959869254410957351222926241783700823724720230687074976307747675184949717548361281641014213198597294987895648167640660049358714879987944316378442956507662098388698204526955557791945838604038652718736449448760706077964039073198544630689997627901581906042761039687008132660583961635414033876542951694357618702107749543601134730455276235064152503734630461042492815278117806477482206217468526879747869378231033221323094274443869706837795617604530734548088009910832521975013812460198953527355473917654547717401435322456388600962116275901478378828950619520401602405994194477923120661791829160132367025768284046896858983402841291158585820004911529849279073359769820108915971406093893169533587405736950842005497640788026547233448259578298394216961187683865757116213488655777237926886375730186709129881988888717006989463636423709393455597233479120166910531520589113584732919747535308888284608796777181565759621017682122987870249339204328465387137238726934488315235822929151169987851875180409626053016515845723754733570459954021533865180312864102311542599201727298790860018438495692691028066913036791678832639588995493856398957951480097991618920997396341661509766910198371451649994155144442344084785848692567418167791575616778760941705587245301078533002991829712633423240634830710579001862461936054351813013419071803745735512313119863266134432471607423902181278679308666185546011813591058326189932166838845325171788740152700987340926077299849744721902360761890268472710680590699581671910875591192328679253277583125907512992990544536580799278860922467230147867118450876446436086899930350036099839275240747946927669310756293949791878717495989442318270910288417219894642890164620295292230903473123579718729068952875893516070999628873346168207893603445335967142416273837600860476093769096490507545400453260587202773983686268890721187096851114463852615145376674620843073621151567050185554239126783070402483511884412177368801045177946179473097733104295548207397530696291507379052529007778811474189401932113196426026877991303382563876780691236751673384057819811014806989432839562408907133551893558814397951574573575560094516680354533822584681761362969267552285309442614126407342662735040175697481993873080104970135638706782176382226182656974237434552819755565734419970302392465987904938809401053752616173114373169106532561749488994028355791017906142761120110573331671794894783055448823567956475082643442771562071975685616917843585965157755613130369560168525804797252211594223510657494249829406887378558312398398123029175647563327526510310576612000967276532429223167386868113556443056600579867817889217584740415403187040718155552087094091545864857974032351050951650721821218247010100768555503578073278733092404127127220931020962068168713518754769611659956038324776174957038210501219096133813582339606838661274385855375527662215165398722840190631254280394847372687267614828590405160426156895546929480890155415246598677832464386800313845557235970740117522330019356602810894154632416397812603035047388102888971464102480969571310879542047503229959170476319870786544937187605485287097150826064893434109563584333324178840404327320646978405893396043385812400334476534456699912868429385345307337850566718643990202867877166797304217771568218097255847669351674669574476117540264196236514934497454591023160295188187533184608636384846818539153017514615894660027118541636149214336139350084789665076030419854863152979321076161050377993129599174644099848669557449407644012489532174662982405784329371680001361277560094936218761780512209114211709865518101021516719859059870115853692722418915250076397695031109280597212740217569692677095031773389493055341105365696332048157652570341055864593984793497117323937322822338002534554303587944683129646864819094897972831421211489095667689065147639076460609334999934497326687107283364654763793218340769723488899589783863832971135858883302395657724069417800728855019727705245780288405789821102248360243703352606749323856451677844020861728275035869896319915070842641583691461247354520756371320565252588135554676931005526233947043509915503158241070583635006229603512996640719079547921321458599001068275466872986461792470887033398229514545104103320018400781386321545022301669576354795877665529846448677736967469672546246980345228567050080211968227797935172369132059769048607478139568391730251434562601629831621501137455844689053939822765704878498118409376361177377866271863085303416716034469471267219179780286921358509916920136621098401812322344012746764557777828907617818773313306143891413400152305432670957734881382621885062216871574327908018151467198154333482568596817329388341336330587447421483592575782262933864012863046915998384356266661164511810645247032417670690921423194211393581098242229484941255317543405499752668800181699142621020775227194622487650337388778033009723948072901405404325171536206777532965568985161433581126669374640897495339852205145657352839608316436397386924349041920532378312823191583899461281611344692916777734389033508547421905597689006965254334211483841853502267158291290374274303537372032825544115886127454981940497707259660785791711712509963174015744337577955824654638408599547759187575716423333681617416082888019659773045796953526024200450492516016080127483026366933106641382806095803547653795114422441087320097096573522445787186162449184316289576543129097613504322119079184234998124344504458795010165725065427876113302010112751956537543784111322015038843021787391421054638546326757042307339337088527448707865015955603214238587998726434964571215805021618171275001749886234802391703393486454954356211275459921466149436326102550683317591595945402250473575368525339037791775348422607411094852924977884848000525840848124884664128097635051624161606220689805896910873748963087244258845522189930959675341362988807698021512992723565654968630117071558632355588724323281359762166891669783978325115293535260929061524526720506191157125147570456895065552462592052214639974671108769419746711657015124635351183044660482139407044211669356827415723860614664717901022098037578551166934273219099614076860687148745820568053855196936630573965644026522084300869772247378581488396314484666578341703001256848875017300538884059014720087574028662583087490537169256664366250996386716288073998638170310531516731993117124926860184357176478091119988064598325100014963835642390293453032504314907904636278901241700455687842378116777821709203975054554779583576343409569009357900939499386711461511138058889930462923522459889446369437895858856343007293535518599775251217600088989930814873537299828440324172690308137735761060593828479789134072525199924707883740472558818686177879764625788225296784243703624744576573185494427092450149121596681503817327041181135607836059129612483090072603493596678217735029991360776130811214387054474768776370743641441121838629791528796133878934076507251979855757013477267529661163561414143179555986341326579467024089346306103053631625350385785322987847986985170156484139864325534562269805385242250908489063906838984221857857233393823920687470538015505321369435390466074504807481439731844320345867496281011552868667482798608913521987856361128797808644875687299305288015384048702610162452868557600487239980943080527495560654105678358212176449975131157865722365537137974850108315338800138505242355441761717740969331353512777783357107936716533422180253266633243993258199035579657019193857182459048229981660045102891627150868186429193309936070239046305875662533701596342629225105153119288494688301130336622628559606351703016524224396589994591417733795109285746424490214184003194846375676916086638023545216594247393375847077661214115381000285515924038235784424495243081657734570119737512720211817630706069892788069535615350484648799409358065750164905155319998700565821700388163471223336767186579522533617672498729749524955561452148498694542038485455699334718841347712621728024208740979319677096955473271177175143618850181817088609739021254426649588078378148625245438061310020829686843343576647437732250269809606587437836548939579028643817283012477042772586535931287661776494487506228901980533048243033809825506138919242840555370801727122391822403463594782186136471772953854209385141342843273403812220923157289466995473917857331253793459149791222702695466226906186916641041763003969469339154419442947394866814660369403144690720843617908522480130082450074767230684021101406840702163494153213573600136691984975820562156146340032661844324610495761234292507477305706156674141424231416370224719020325885377764421758885184711518585335102198198235318677357390822911017370696374260683450283950613037926973533922499154240697714598992576244600852173343271625245413623326547641228096429255766823045807130615946020053314503837054198888817228652976820951982230043718241091806810790651200736026210289112336998441042970529357563866820829822888917620128762408029231340318956392815399800655558251209598262190857316710766306442247472217808369544071332269307689782816951535961804460280311143621913359058250036028590744509358058077550642248253679539964869920719199406236422298159875455370938493469968088015418714486872013636625261044416959061309871299381057588692545360856407973195150749121515968269664330478356400699920368940791632413659488113803070597299600410573901622474076185082042103299478840962743922110387523489039740817115852677460200619779232744044861163632786832290630722049047031197045667255251097966837555725794261536511917226100541169683105376482124719120253295359120680679895667269155231082820731151947023348662554370201210457954566805221500779845121252706591903530580130710361302403307329862864780135598041815110234985693367194585878366503129912328074310244113361143649638781031230829799369086568077892848871173232288659976893708910770377652790639719861974088509915636445850071366935105311120431046620657859083878830970531159191133824939556448354546115557371072565606171646663995970963674661652589258174699009191350841917115526518236569962920932734473699624396082824892180236705585367243088089839660560530363087571837280641436808076976981503603184423194193010400861170236385630999917605338097492257459010008551523721911948309345313336596444805660790242769542057102973493645676051052383103200296225306399007903611646575058012783829806033284819799189065031943173908694342981078925670637505634620451108930375366580202322036486664940341659721010546775899856798882544200222886796341818355502720992112450840289228333763222051444558593890444543274632036845559238779701834222148367314264925913895203917470730966434325908064862507614738791612997644756974169106134240069282012893464148623786832691945349011250260616321848652258201363275223470040676242014761025225903632756832036726037706500067580920474071382190696415641704098679992963974748636923022783521273679347874771330502974988672193021339852067581102584797594582763640723839596759102098174749128045681420854559880763066664946627093245105605210036635463325493269070958425172051007927886526293519061646054851409349821933511817100479393553554291031352927452700168871049275833901792569572603380732664373405632864807855190701935914858981507580886161185803845926147067533220635663183882571163178701942247138750908239481034167159385732384873561018461105377973834178124948820462055007732520168821569014374599696749559171440043687153198781273477015334297546023846873637483864759763556811090348947355621954275250066443535780813459935955489081959573626904060928724143204021751270429944992102343439801993081796275915321719462497843636992929745892954390253176715144952870762620567998900218065967757694979220323812223081224132472071188648879783880827291635153813973652704784724716530272081676961900117377858498849946040168418502573271399218836195728505584476143092469875380160075681143614471904146192745328172406144217892409957360713694389617024914927458274687508625659322304022285581541921742054338490908279157447927372642873540269065343172517887440539972491563608208705922949431514997267257396383142536634308726981415005885125555715672774942303826665122647772258242242633232697759253466731668046232590299634042135262157662963883840285798639431432619464606052013465640344331818283540325292250356449793743426783393080915591561795692732004917673572536259940756030262130963045955672659724036653599151227823869047881822628210446874017468131244197683420915699176776660711654146163057698657742399297635660408855687194962736981383010625358516433545508847013979350176750511397120186658594627021986448569346509694736074170975361702018810715535054704697310689801162219017481706860187074468556729703603310978966685661416644705810971376570062751985676851926787328236430940815880827680099780073566072308838786240708746182249733226007899028627030190776267436830806155477977504010585770338290782125407493027768496907562765442707090298174309853058332178083853923482186600488796297101206932122233675800357458408558660577091706445545401002484194207042256257354916703726640205547689817781454534294193096879791647819214793538416139230942567218871159259608107999560861155874167030490937824729562499256403495652402911207417560546032254151000141339338174095166942357885785306648741690730403403414402857692659672476280318556736190028078562832662843523630855063936438881176921698771846614526815752984382543851521667445393512432833833961396097715492833295293074397412496701295772427036120915279902153634084524148879825599447939231375577336439478987967325530468785971250095730417684156430288489670567420538939631092595154175370448265467337986481420496529421152074200326067955320911845143263405786879799175659674009108093077720071820459491839168023157890564947633410173970726474043045464234507287194792953533054811886880857819772987952900146696573181834435242746809724391762306517895172795790911787380100782499993882925534824194051658017475445449124694944570148638888030358007902871452239388936845207745726453545752180057970271198421960299993263284871902290825436150828446809004858425009033244492711612422137934080834213276657488239950977851126195560545070704740822110921320081083593983115535577388149539966709992804861564837643618745757525804622958429780855855447080818528987603630400648456576264910767788235230068802468368970916541617576864956745821773366423641633695446941362119348823155852349296486199634478790183234306368550137983816018896298031672778426427494004408614537131587703572787370002109544911743298524399975671248099978955141817012143174387150472596500172138146964546027912002069896855578210389532562359261174355641641410524196429249232481800829326016485195138229592324507465190865561973413156684244640551973787290564647041166412391550080043185353925850598337341910855907538999393062141981624266329511929184422399299954101515998496016949866717541145788699426279051533956347606217507745599255796251293024555552321994042274217562176677091367301051867631224281208783408362132412147935033642463106849017280266300168481072811173254449091084627936703599000376658524727701686265411476780125690704656236679578256907487764998152382143362679678469402493601955506813449948490397781918084331771859580115403657070755896150751346488230481402655659099139831528755837366044562132860913874230341160968379504706956479666625848449047452667590737710777894987712766016875315991057079064463846833158257559553920812964217664537330523138627563173078984262767189979884493214930625487094464869658101029862347728388584109089244920660937386727104052895661920816795653659485573749674441413417736548448424102245051516371572161969787125114687956541262799652692244348658927266376433736408786034151884111509569439249058349538525300589654991587253170187844710956079014008028356405593912583228066436494323258264039111983138119989745590873033661369062704933767285501799349731911752269268714863389342407906139747897204830737858344585600186112623356088717211552831487436667440430214109040652457109773413271339427290828899991257491995542287768692298441786099141492970109994943990044410171292209093203164122038420190199113176755531202109816339087772737089206264432438229329132353846181120135652516850892570391143590670393855482261081253585229126340488656182469139880811114524982516810567134547781498847546817366992315853538667113783572790179501199302818965793318888665538128147525384482895101133962602382215665653289044654000710108589211616946454301584039156182135868813191090792246183094054197493788823376636586018796935651519607148856390030865044413713481797224444897274339323067715968713424970693509366529127344375493946159203990342464244136652312140834140162357863951089107157029506651626852011595146785234255552037417405974157323127639639379605858553751984005890452985944601872965355093471387189866920978055704195810040459706463626170801243165082997450652482267115638866778001902533584122299642757505645304696593964446622041235290948196281873056336995331567313120933316156027967613829041846440283010741710019233747516819492639569845331579769757880563342076353516554733181686306651382904786162179531348197709840272649511427723442472432431532633973843349224771883933020603785585158569286693147910162144560002866505234305785220274390741693861724382581114988542776965561277291313659648629047694638180909029852619904927329625730242024986993837325905065462686088852690173702135122276303148298624913254479725436615816304384810473327630672626838479522102351030343523579958632291155229366486371857646359809927847941589345097062631766812054166449354418532179092023617202698294398426926483618764531051405999650180486846963526869604034961291225767447384229656726858040364537915334770797525170358923387433459498864926006661381419982108117848021005792673107936204876550370274195861829391753327452966797837117527947555667228098781813600578419713959336185773143261746542602882621403237989299874928186978015993284119777095467014265814284086642061457592780543076521953981627586339210430233377287166288363238707223397781366565084814465495943502947309629113040607103686199613279001281314850795742730326044816781021417786390758201346294133338709842054173465775676127205867388785968652372679607150077582726796084596678377389186959132849399528381814102393152755750532628002767347754731516737647345715242144640809521254028499717243661248838983682438252754093613240387940067499792344371243250443390040234627382034259665373602400098388320531009727497388617059961546713871120840082806332155126705753389375529389458898189048838409602195106923579269058144769785317264737478856554981373227048566287342739570304840483494207770383003165946454863848661981891663140002043102717173328559955056543638285850482311593192545108036237631719721827347012821655647664016505488841745825032750219714237474698965794460182151916016438922202623439728388955534872640368356057748326979917227425530804752144963373419699976237560009991884395318967041710807422285484061506579758956010567197309269332006166080291185709998567849656669430226136386954966099471413907792023775676286963935248514045997257512995255114988190885535199522378196537496602384277525119630238449448594826518762483730317247895589927552925199550461749023006937860817463300740843167402712498173947164254345365560939222678154048263949758283187554321364685251289000374632274889867206058844579436575039009130638990735420410195904230611911485014310478310224316143305421296159203166130094946964221304032157275743130200544709413978372809746427467045002256203489323857833131120303583690648426507883928593925515359776433865155262295749752540469033300222701116711132196900050100703615611039849910484966737656581857643263630023820199920489874800297088541816372342356418747550529887653683079983372091221635143391253438077360556207286389526557143763369049534341952073603785755773670563960098119356535853371572398736163287686513601039450168473483678026233142692710927077500505026316877721166413899577483593400246058346661050276723658802785586068871402183948067945115792003693784877695572669330191221642775156248309417861937848340982589502720094301145353466793324126494346413310162463911461081226768985830920958364497323387607547044360205387421367730992501949215341689055648540292866468801886799267666674111492696012036744199900396339962134622385245874424326725164341691073070151864455382426174047529443412634158044108986488368029680186774349484170033340787714225354383590256636219205550610370811218571272618209494917180737429771513444128362903742926375297023719000516033300512882410558912540046607487943961207342486711324029012797947785643067289186039713191513422747374439727312784109981231197894350762013762685169291845130446606872782646725388399681443474722995412165116720399140893107666031281174145746351075878675634302165095678993950394407659635049703783902444300899379390356733248573200783314481470599246275307370651444216919229037550231267359576468914728511634935723499277228773269697690143459178660076513714773875766529026421947468884173857910768806269095725165029198867628911860900671803280412805242989844772353811129799492600815890505549252788097769496189724855763559755191500620081458619985685652913397854078359408722474366355676402621684189133465903293960713203484912258658246074518646532722704083394415736698922698223152496377033951957008480295906154685197674684327782008022955611687175670453471849294326355529389358639570179194233162936954803553201773636705059640919935009883983438355273148858603996815274791615834128321860305069429252521188271349011932762717501557585732802870507025769371078204843620672721126595912626408846927749414081137655316534033300582065463726784726580901052691969578554281953370473600800305639400005712508028426079630267716833132659896281336843761278609864535571826209421110553859074034002022082012100834016713688956305370912347495089713373513597815630173682088896448854142126436188339753905505102769545104630069573703095929340000365024860789466475211079182543011008343549954107217148890321411499296374627951610368383789051307053256646287840550157900399191314250074133049392242665657286207000289488642364355104115237058667422824553353534230257907471559935498862965702863439600306627521591015841747792585716244587698046750721158372509523715704998145191629306320281138664261441620633707094092160683407584526033448646053653465888465859912843595962524745754280749386744338334698464240495509552648140507858814808418188103869448615537750139292322550960834033280078126549954151111731362802082908538605397567852392267921500851895088187081918548356558952259971013706677078295540551847664071677543116240200982904358425933453425246871437673117147583884705301486738542819522239880163971768884303215496658817263897625790393095979129347903141013035840256693602986315969322300445196843503312998214848125080802965947444816761273590931333178896100281307775193837221946998269059952988565606169907287438140816827657342992447262042168963666691683949127369107344803592348050151001266517456654873416075572375812722680059394471050122275525562916141209546148677903544794875313318339717042309959007453408870978534735499221587371684856815502168154360186056898696609569452433375464974483958372388366191644526887047447478293426563283824560408184244443198749047477160370669265532547397333328217475667160635573360169448825024420857393747565791842158661887018071988465073673048479039619067171002617179987905172647936516743837884611211754939609261998690309624378803147601413649194636721639774545882729705463209580395468466145464352963715920986657761200574594960361562581326688823304723002088440417166651582008213468884108109782277344644429090610695620366687440329845997740669854679793826506474036103039165101434317132866313847594750879394972214395051342182179184616413782620522448765749268427725062285682774213127546021244609733778815229285337085721886978948898517822070062437788141981051651006898095735740314528311074716282432907254199429135871174710014161222875557772441478004451835549871342000995335948568573254723535702156011001467089543051755877808958356661229470649428111688985150245686060140120190220490759428037510696769396357374407153692781419296543717517659977588283895138343943749461903977115407205364530300739104758490933787009999768837255420797223771332408156822337260126083717170465705354735074228770018224874004236266777171388874899977360088052516924684588145471034482567855013713378173414448358723496689120425724313704473802487553789761667063137504016046505572907295772376015920636841560888571624485467685552388286266127156614451531391252464578975843506805115283065591468580947672494315597144801754620031941367626938697114975797496674640064565646230952185721246673126789247689425454990793072061154804378626266169886311856644255068445996054509758957395430928149184905618642024166312007911806622957066656664318594725569758512456752950820491753861443316103475540104812681599666488568980653835628234865744513102742361666897872192151703094225000715472897203606943062436306876903343477738241708414354569869125177207847924385790540069342163740107006426330735632448480579742334950796526862234819549177647329791480865753493316264430487845236876357290819378273934768963472138707500120104999719274782041459402985311925157556055093834373857488713987145025431134783088292712636245602085127476389635595140865983903482999014486127182453975968267192890896355113537987964560218538442948155211195410600790230294940978985770559022488521274355106168966420469513924080077303265652703555284142798514488544437906216849691984442557610353697948717163373172549912018902810979219705383605238160560958721663324213291529483671400257914207503656160155657091059947179323620138837016784221447295266597316992001059960575256139079723892657522061820036053441901811209119173157656257150341589764739234732984266344838391671887873981212359454951899555095544779127952380726242631494745732716446896528483787282480930650597963605063237816328866976230289799690158148908236250329478664179303083082951133183048654180255735623121843131752399526167400681047530921307785592137482156896927656662194350429826099897200286565638691192391354296585326615303992910929179931118783829630037033828017372423518984156420626693586551255009647177496674428624431700816057866225326163810307617129869569479182071156104211842414504761790324613966621139020188734330301952341310580642605566767884049972721895533925171044629141200815144672541015025573524019352850042364091500513140352770172724816707977174024049419524717194687732605573935497179062645063157780670589588830273468814057177322573230497897956132569716644588745515635647202997915828507068866386942368953890681806391022171558015608107642946457713191347142377985938068056883499376553145162673581015061290243248816152454337569053272920909824482181617739727446419147926302183437383780991205168786238793621916290355112661935324942364958639777796486085283206877000773130457598493364952902080615146879634793866267314989546705708352179834360908862891438594905566835426392460062727134631540256150588934263247737459570818816883360306933869159095318081524853681178422082164285467931645905625447375180575355486888202126803713501146422115439884141339885531264101369787740270815774041140534419519816635935693846228139249184088714996204581866908559035083939602556802410228434743916380419465302670265854476769671877183988868307353700482496423525771654475271555499772240581551048162926795865772155707066341109289272208661727487042317475110790476491039675067172341485823186762823683250602957456388873671676497004718826375969395915463839266765852462473165503840320388818958891511193608933020486016380269870918815868376620123660392101256717198807758608071932738240981405440445325742807866887785961900092667727413313509641920982585063354350767473043713780238728332309008075451240457678989646167296952550716555179515677037127059076512855815439965135385822565769712346562115713578048687783771632530936128488861139760160108537852280862633675750090142165597629060542158900459755704599134342574462047054529553810072143895340702812286121717452046162380852503220430076084239630378537739677252042458845278308671760651738402914097797935280939415185149025763472335248017647892803677977120927022805311629741773183943360352091597919140399839393750714667982702246313207090734576920988679107713393093429986523994846002423378982676331828949719768180548501152317613407291348672945547405763831875084787067259975570165624656556603967899483614669407780657106772100750269482644518966344204618688277565688977889734281142590329622502298606633369356856820160030661904828466210800450654842095368356822782959342818757848901995316029801576654935193577345077530715996933770456171137917785698406258265630019569499997453813785435609871017089871040515584475357694520570966875946947373264748202248870491023845247244115748585366798018741780966077394105669086818478942083800299860470453966013847761498161107797692783284032005699719280046525391577265352360215387689822168818113597781753117879019236877089332451418956538976196458532673302510637559826663945432674921752911697252254827529902923062971804100191541403204337609233027237650186551661390838933641707097715269943931688654891890531149924313904852852735840611253251912358089495199215322699269578331840319861173310923196258236246254618733715575541953916821387537968908275672581854918991093437973869784756365236149585339926614934098740251031616057210560978910903848086531495107170056360121792970344058366256839747089182959700247252292869967689151236989814105752560150885002488689794162776303892061156664057996967158969182940781240542767330369679459305309255763932387816593396397915560431518228851646437771106535563570139758782282663094676105633120744932866745892738167099652935597212122217892211829445968401899301821004184699710982610085481576827679268079848119006214297206237626144808797886481729295948510777542841662563251414351867938547415195111363509858321454621083262259446168886890810019568312955676429250667726151318980920025498594117379067085920476288288722941629438044260473988310093084840529855814791875587606717531277880923965889762526255548759156732455181801576543933672622311710983626575620577563024215159619594066156636331609639286055861233039899675743082243013916808870591335488425767944759778873145981515615894589609423625418410120253333232988874235434208810041616433041107817805906865695614459794669472115313862874557359341923135566000416116566441441420041391939935127636355450553551350767179350832639024684941042294092071951708694557098524648017732457132324422389349540986548711524481468008000744226538276848769844114989740723214735447935135333446354829763701879245887142240246025833140122543402707231292463511708168599459765386635165265778300451645815583894333889615082686184707145312088338881566222857870653795381480914385044351787706787520974899280040995411101856215939160724983114444382304949469421258873682865753306359335142726751077520643145179749173435278034709676715458218956055341652284039563632117010260320615046801275698617445582490603347579493277199446432109219240855052132748638225339653102975055701732853499482851526996632095363322555742440466708433686865838965718709939887004738858829181831600044644610495127701174815476703337625591498838498262081346059249620889206841145296340939946111075308428934581235632318290320376489422359530010777455870833266796249917358472624227277826803738722103212567488685844539843191252928875834261364245142598378586867693121929288908008310545850608863291169884629684454797212910065945592944981823358311512392856877313481916192458602656251561356389617575091201825298369266969655288490414733620112550893938265285110514837100657112871031339492954492835649640043267764043806415749552972241502771199738711533550248718604916151328330657066256110948472646883767443718885481969843168250990310308279515437030179958892062481462412612455888136291959419086894260259919117455850477551308190401173099749405924033508715929172115261462125362941991451162325226497835953826996888824710972835675727697676151346497215318738960060048726092936450351315196248928879757030481008444704606769146950837531820169563568585638143386166454081722480050107866274306558507884524212302269269783125949928029104650259173100757177497245732908469839573905884867379046995486633921772879393533043697054743957653315885580121739101286240273666345960356456042086977049841198974694618147371849305072960639894071950863016551431791855934809498051448289071026041391309213260705610667789347553635585244170936049897571263669360223350016921701522867944662491542752210071943457297613548608511185169753052687090165173625959724252925821205614560721709236956940294835726543420116533960919828123568533068016742133243763041762525056753296808200706095952370891290938809319446550805272683292704328870871308013748441361663317116330962960062441328433636803426616572359803807129796600784059321865621402823822283732286095630162437378484540235232872509021799083820899609816253612511858944356673550841620833219460445263861730534245406568732565782429054633185627997372872291430189787793793562436932824855534619786431374451830941041352670188655630106020339615221527368221799170700935083010956802863502061174860978081812021420522381543017462270894390157353693969183686644754829805230475368499051002359947956631777168083223499778895879694878699464589229236029035946899530821555143206490847839739464854318464949244506672147171969463634697135853125081250586213346636978428241530636910829544849833935235420005921297314125184459017713833427696740663381353881931130207835964388778702947731417839588987710899513387926932621982626523845511876414118280826648113756269735239924171435520189183111217339983060730666086184055021593394733442605853886678923481626760355906339128270308481449689218338419241925245232071450077663174784292804957926327292377780390155105189641932362274769831866146511713555637716761989519433662815061180392876668479195400075392841157380866486661773840188820985701838378334032461127413563929408443793501880158471108488541079621022336316692443576919821291099490180852660063959020336367521856747823603408655483609821109125826169132146124376618988396435938363214129202163427994048309996170094027223632722300582105957322511629850687680253677674973136568330979354698882145557709271028662816150524093827270108345515556228922707523499732332679966528394028314162935869393194355112483735842624496130344840349668707375606385240026130091867236043743403442426530553355731968487748557334677757705958430420604794270085955274645093548788894144843567841391040951886896947659732731279040575212241981129042211928449174695637909542646120667003373503380915536620049152531298045950121053335821223267071283130936201027692260223049130294748512506231597054302229308413569235737215772480383375229138262580303199126754691361658999704576009492795073139974138610281786576385563870654968353395355729980551694930087675432562542126706219991379795946244562355762011347829051543820119612792983635675622390650342494518861687817557953252063328661181857804402794056871247914165278709434563919253511368189585202968507537003070166924034095980236088136924538272048053301208108948520735043389795067745296241729987905652377150760293164321423976127132108298494820980376067271578456899248701069808090360215426302370567671907462324709850860816134069998523384792248197842445534362272002184427759997675220901523423906214538144156479113748901051706362371705958716817201481359138297180220774014188991617254284767303175160378921977927310791637506079631524272673698148581573106489628441476035879492437115763821097847774953573315363534716778167066842209179290101170139939448363342260954383250611817748538207792951902872931526751687910713572218403843816820059215451492155305266962190486313642199324078159059730525728287420671597322888213162838503548696689775838040245306153464760466289454889786904676466408595105609710163429922551895592709826678900147088735938807704825302482869312453513001047677878879597332863392627582118391142245933713690585619317340905673784152873181746145509408564495753343250188322126541880483298680960552789267278637540376711083633259886192904022241372352097779458960459768500058744209851229243304508725127803021544138322603705527490623346718030185627301922574785185099358621055264503395426472530509901563526503855768755338344274079555232709256547403670343015572822691872338482485295160621794216976264330113365785558181988527442354162235837557607099609792679670825444181863010961912994100576514384176685948081976979222597353631952747638947609749806291652200788182440048449398828855628172327779727133125540461407096938469153037921852482108839458156232668864723577187530280198381571052211535617166398124219130924191742035420039257972609542474160344005441563653101525918082510115326427241536356631510755547185511287046061326548516308249014962573166260665646795643246446683834953513370631759678065348948881651580357973452589523162625623821219842348259561485940146854255535350253159136432645887920419283949122635140345849194059819226939277384858824830498218618352313293229757712452887301564042799569819369805133236733888740456063021417059559688188907024077386257849114435362469719268830249182059451858219081684398903870443974286475391188422861078351888068554043471698700983577512919664176406915354602896356267294016529447715772673779742600704376325940689506843433302807577786584230207965057700373596551563308482043753717875196863519667811967363530905356198460234194984183808788232863038432141318519208517936297199775291494838252773971065236631334228964055971424106432106540505998357366089699047521159114670970437510696936185247991831636141551663236840078470776020075170613216159622981274892782957882393766581746531612417220756758616697835810298763435361245274438792094540871841634930997109146025295492868550620748579765054084187711045312583774451822311596813779614992000928512139513181066917064380820345427133975451538778651212521868145610249149226683412572924787847076387822282776264401774572612081192725537708765115014984365208815230518153321495033420292071949432677219979672863932741531503161146334765263386170877466140932078581432905816271874518485133741151705155035325861172516960529138202138888169449001956384827175544514003847820122162320823967317243789674803131287052879525740206033070763183286419743706373860652505819013212822729444673771630637752892288044968404379416726302220610144203450493740949888236316204294135754601351624584262217785898182509102589242839040403150381635192562545549580158909442658035664591623377925382167912821512805318084953476507054035124680514013976796820342418720233487843939384265901656127817061213837460481042949736048258378517257453231086932856277420648942751212428913087827137965445236467102584003475302722287887941040872353730902765679943882865064897725114582017326667220583911613896556695944388576212461065480818666639261714687723799429866133465916663532979191065846669241639195745153424423303235559426076716708007002036479555928593714227268974287079006248045037891572286353617804314953975858404149164366118067415498935068989439403985977688951170028724091223482757445099207959179453813707560273670140447741308916435436883469433580089932213851492524866656832289114190804412463292437385578200328354235664647386648551742169679624456340216356694087524473362647204248346021113697365464961663370369596129654212287003482491767506226539923150773276007559685305436255346750291897032593918768835047137416971413234268121609243231516059675711932238080920580848633863249981699189966535462116337067975600687704656061058673593864403812979196385521233716783520677724168201967014633915571520544652700602709078716854041488273976256015017619205034071908589705131936151497837124179922205442648987767175976589372868541711138688902899733312717769510495895246911926319272468416106191507314190315617029666903149185455632641045422552567612820612154850734634957491269383594523125833669104596420965209677322831888589973796150448617333114900903979081291332502217352689945312602367282225492987598023521906454279924458465204947422653625767798446954610912796733762252642639108142814897280935401755776079963229352737033616321357525841080275405957016052613029319025193521558696390646382384946581662075778085557149478772130103471960992104795962858264851059503659615009134631162144363092435593761367454848964389032869111017342033951964675141400070425444846204296688894475892904450033756214902612440365524534475792333601826264844847791933306827427029279309772955691137515294288217441803106823347100018510437727618183943403884342217095380896545028003348957940114557792299763599965812666923417772982955671764401484911346464853450137261516150539294027958776655443000040874864187133542201520431122420412784728589269376161334265985616575215428677524479506925775736767993441318302620708895849395828036006612002980639097524716581136356485424041441624058410254162415211054060871538293964144439141622164853078035232693249631139645866519100203469425987900991606312302551049619843659226269262833098811662233702063415167780071315515292702032407105063244485045151182011851188668157890297548942622906519073390180815883201770107044968497918555464891810500585079646850063726730711363748237209962457408093844048769599114634398579453052787580048158725584176477799663281068722243000559432765672554238556477645476406406968229629908534777233431193587061061162305653798075852706368200728663805617642932387390414038320330928061917984523931970563516646495116225722154252231402959460085089818507722071720398723095626732758934397885738963773226662476755710177022908435817741468130932369993349863298992840951274528236101729396790487851089915958279586067211699659037162847644146210713723290958126086078245259639173460341120147620158728069032271513865151708843465278738314018933211815143478661644672199655827525656788612467233246490629055554629309089883822698054734548739652050576830530055929639580008094618314855327064036133828508717087954183938074404397387241610743131211762042061661300832016324578729218757483065443631563143687685277405162324474643735638920720708956648802953156070241127852180779923514066697994729501868080902188739024958087715380337493908374927669008534025491365146212904222745372547023724374709881043033812629492269216349152182203403391567228297215958170814497377418501904693383141123700470922337992489459645512379092076240564333375611029783325413431766278869396189177098490084374007242004902093150671186186372266270480415433582481528136698311453786501949255340795088292660473597807258467501170225117322116043154831759013310478127992334775718535599665200285555957245039374844974432111066032482791309914569669143506425780702389446888052806583578500763543399456195390454181507690886135706696206721012546360044579299771450365786562046913795419263999872847604795467200761982742310301009203585337067931541100405832780139748977484498110396096376466099406609394736151426047929864165370095633267738185701370474786171756544436416511250282491170032674653910813393360558336212871217804836785160237537627092853155205736723411957476318875021531358384842370093764024082024849464715577864891037184560042413571104877314025844182969461141150755877011143715331701715796800354892608669216448228686121698008446982879204726028017341835324793710043941055021950862137319117593286785591941716431191604395110866908391993749769398086847414827894203771044643722580728844983085991987790514453369916378831998354648006090062492596438328500089372650173443489691147876898596922798023562426607395596655793955186499380431145418263479724589869370357078361304404810530438882070492260579778439090723360929178330127532927022195295862425421163572168930446281953596657423714287135110152894737962805789327311551741502336013953604775699236589867838235860131165236263318499415387586716213291264939940862189740242975173463478793864405351504089184003923983833370094741595956146451568233675760616845046390460424624705901304701556882700293132895266277508854850656958758470438571428551983167627142595701092873313186909808242420406872644140501366288706766998587568812850523508115452081047231561207724344098590111351552867750352821148894560439021271190865769697831354826130861688772267701715377876868611356650777114798503433294134202443541372701430388878960506019807494124193944412982991159624934539971447822933142950882149166205529702209229683697935644480836902262061676674646276381045589670528101551094018541583073945054775869155285642291393538642346166771863871679525604108092258647495914102303081952974578660058247013193669108691966891146417401167656046582353504240878660247948229435728249699744758777461477995293319550095825329547590644842464352195595458594474026125141435256516311002693132225865750209359196219735778693254673295601589909445665333825546333746114240214558060682030449226572964861924028260827688682873101300428375210585858018178739324748058791676600809759302623120182874562529480280924909981399983861985344216295204782145612475370756861752840982248775305884111194666041011343141998796302921614906226947750195375644079527520952770187619977893947688066529036819110600532625325746472376624987889211060778813863548907230227888682976339421514990339897293448686447190322485518417342962240437456238403512951675546014384821337765632758284946142700271583003137026131142476338036606010312151028790813927254459051519050177957036183101081824865381305100230250131908255857626446459286204117790373327878003297803899323257231668866605210562974157413099144397764986744579578200447564377936854060490566248293364249244558146551225844552659985093234481511270610105328363605154108973066740840099895771331532665302967276499794215574482697511362999814539706621892671942091803020257504335553211189975390201756575451411901017621370185707653652582959223785445916634520128822006005319218362374004803751816417874052034563753525462264754856255056295678162800920331693616824684878487163981730852133518255189434936896515931617834054477339875553697043913478716329260645149219680591434904320618849637859836337210393420711977144530540645583132136532419143414712395177030256219762822447405072647029556164417345984832377585152527641908229889960084613175276920698590334564892979567338733741145834339105869137941469901702064247395455638963404879170601918416918554777767110087502602404320620929987647254587559709379211491322718470278771101356111508386407676153537048973901208816437462290085445662605621990624634740273807774650091704113085357912729397109874818458957390007286428667662434823732756100876089430236220619788947090763208676244984954543055709339372149185437952649415219215023822212887413716664864254640768707228702673393905051307341492317997730017912560735754394560509346123307362641810116386453007269410391435300986149914972296992033591064215761567661456234301182793696118570223912738719487979941052298830279804922841116521001207003646304651547146908162701478626730575335414195636554358626675744372104388667993651609627580447287696504933622436686722532475767074680937151941770777902386817806213689999175948156317328825890818678977257972102027678354694083771891975202745913659269982798264263379770173536777467993993494747241055665176286287083887367346910677400860211700452296359751647061069870539011027718075208210506360390309694558523143992584389706092811727003989896065086034311467149653780124833766472269659475185575055638459628650415329363496773357601025671915731316159622445913426827663202629484899602285563798093690537165991335367948011729079270309450042043923176142235201694254192383722096903587861601766450363870012116255749256280615901859138373282637768571683278911216788924195382209021493059432458242485740072408065747871226931728913367146473058181503023878014994876803235074515952655120093154433089380387073298937885392104238082538453181156158763720582121676454196452896906767699601333573211595068293342936638975087503216109953871145804788911415747997059306531592406836135328374763203436735812600148020306720498626327793940134037927461020455576605271068879818961284190642566665535849538764318700809597036755511571969689860466248440019038847311372983641196387088714281613143022814943287676409470020471093855251505052081965924168054380210001037891492113317253079025351740331781526721933875127304076834393407760919975330061577241415047607729606926016715440453107316743639457249227836512815056214501048399116910901068839520640756453266791113262497371297432505841745579443053224446495495655904548134257905577138091367215708808540185131875562224657914461237942681383334293913688307430299122505325996206373825499948036785921228899115878322347879197073343942369722773233135997019554826539103399278346874583617401823995381937218419344425232406354277861858428861821201827634568928794025773939508240266024825285348121397024470805047916019009038246004623691948285500962639899510315619820763566260228774339612191406808412257967766850428204302513704978992411276374598842328048484620131234428202533964827158386197288776057869819942910307585781646099618997315811995667900475046034513154513567592366240846280143294096703913430630081107720919328348291521779668934880939278088782078886929749508186996998807962197706411337775408700871935255996431547160224665966058161715953140869486327790383023919638792807375675498271009377891180320469128856275953404815067086609229459216632180779136650497098451970539971157428005114900751272001038191615729094587081847235458534785289899848384374795513918926164746169294510975597885472979455229716418310603627149203500940572663443708388380577173503867089046897308758537767590437989916209837253287102946315226858351104731334788779972509298241677087083849587379973686496173723283001041181921222695261249753196043549136378939543548011785219184883364114833183859928519255790642780260588992115095058068717217651372846656053807225586531474588763950163471694496828384885199204374858744600543537759585716114679343500501480620475520456386607348166667457060392153399737554355009461314793391645644626686613379940297505184079654270818386703657728511753218111660160062196031612289180948906149122498508609444524445200681421870670476393307214132790850165172626601505003908949632772092218684850936486476195322999052105298701134631745146242855682011294068832031588783750794552683561762727143575737110667635120049381168209503611999186891455794406646388343801246560004657914458663925012304115884198826689970662830913260301856392006448986913699859869630969903184570061868472369972567121428658368066182613171115296828641742291767752104431438059283295211410325895898916103422609830626824283218951216914748318394852640349629665882236475287574632791747701088843069748118818496951450810774993909230467299280148497362984697098923540700666319657091440602034597372189737573174299652043409222655588150348775353428089368022422301515448355190504688935425651685197375198089392365479408500740278795726206654056391805085463436472335933631457403040393141407785915760224003730605322131318896646799696038656734234720533685017536695799909889615428042360656593094101040710722069542914860256359478614034222028696682747789154939859720129464230937263891276008169125615891712801285421743899264954281097900155925686844619059360167570780575687827356808717161810714219687370048492895216847689421931682477926932810853542162287903494328300010363892665660627772796952271811008215268148352893385784677658834931320198197897329051913071803600774756978936443738232386978077402124384588363182400901719415269491674268063312781738185576404419862088049222436685483224056982401271853340326619877311228609915550519342147319734350455663032803055739242057428342738181006815216605097889791999314907687879653061803018079416394182929034011678570779419241672326535602165928684471062314478183361990002512913430679400256906275527772407874380931167285880528190950019174105845902284440391897042451280418969819252223746956370236790734472732546883259564168765827524877856814879220932539890402377925810514509452864508658977622258083587287689624781919853988898436247090429528975462939407761033322507705335869155960090749215097497383092868108830549736407080682760271972692676871181306727343801801773623900099476083183712422832966578927186308782353175128335756642884880890591698829222617189629954080915656762378954388974693570592239215505713453748753946466246298655983085192882640986624398529755095991613539332322183920056834767429095457628502141604515064875570803848342106253796725435534804920550347738062982609234340800731221631660958521947614732127940375329783158847158178144218013384334488787347430118542835485561366694463566176111612622784702746586178978597050627389430309830276825925268932261351746903485514419172928136786758397897899920387615381806231072356594264578446814046260930996235460445509371904518139356735313872100191062142305991828673335242265069139116255146700813420009443781216490479618826620775913413192084242733154645189670450884849906437108087155998177213307468266231446231074403919959330125490556656758914794597101513471003125602663471221975788369156024481605911473446175540784990927366691471105751693223527303063080304099899768787327245030261770812062096282070870876111010357952508284138405329771906404549830450470879432917130421544362839074622654334487741472555603010266107542770078244956847894431232728354288232009741585769069108242512683805704843801103194998772090949226830145604579608142830095196852771868794293440290930338733047195766251346490050613779614116220507853886656638587536627236196074632321721327953264273931198476074772423408683680759106994114250193123203433480198168248775942285353733516308521010789590990539159726272815820631428235554544711090088698264656989836421438174925531128757410999216808157506780847207208896525937231390156625040088558411160830257752397610894962067812934464429157209734303091536308012437272900211449955632371201589273932043240069012203422100007696805403124324423538844491637821258242108452405188445554581741868263306282640878261695900591526955757569719297936721968637059404165022498932430151871679157147098901041098079256176107342134159208904208911564769838047286191384643255997040185132200740039462942082258682952157921315131811048386391548652764682449702496633392419337888900134038812094195526466980926080983572423049426699261178025855693237565373924254867038489221097455224391237825081290506577913885222799364219406664955839385133113497209368069534952277751227074975272085581733127987588779336472909743082330893798621410533640757799641870197875025820883709594855792369792177547387911710837896283171768711526322914458040711122941322531984217089620220318548177721561627284623173773819417329347643566608742319876635725129101163913670085229609636427095701399402710517717755371764963198398484588883789134786861228595480809688049350680556223161743656425428216649392203404656617767262255246378527256298261560728481375137277627092364887975264362948242192510698552473104461639153632881001493095431090841350435530532708712679480845658084268075606853065838719487962951183527988197233400729391330745318869330274331726059936992865674275943087840211215798866067732454659493661676585915987424388799861675306633735056153805386665097155175142657839045581230326243564287402876383068515704158795404593889245891644473513334885616528318309304132206359663113577299349285719406884225011067891511428831187160142198369157888901985617740334412298958943522528737628140627354236701947661398399438144385444771739161180610205099304785125530427001237764635190876715460384830433645128461170833868640217350746829021318389334202331801435777894560579721700389612150018899243329321468866590065934583208884542863562981821892883344715707770413407190518448623935357148330774767383044275740426769387996343932777921967682344532117241859877116705613702680083535579018306979807856992743310549412244440639621622627189029857096523851769062633723282641640805844103942514268342577438379324757061272449448077476722246264085051409393967441816953081160746583375815907193156739425831064428130009907271047525622753363542363467971574289128462678993825027423994512148941071773166296185679715676663672574822630683829518745621407130891241353767699393029354774319489405748270395473847279842314949135915060243086593683162725565664403644356390571842108643300871406310279920213351285256716625835597165517288635549707070975975983325490626746157302358271975871154104741010522817572956969844449498854508612137755539382799262388700023560016864059265414102433739878290334433156694938420708838359080915076627679226816461643097928956001531939760181634344725290481220288952249906204307139637155311865399642077150613181265828933244462626994594208738441627615595572001052153932935867106285804431623902696627565839019850824911910813971334173480081838732539205787984923090344560354214664460573467184781921017237140864338560594299904418578031248339592496630002182934463550679373398173335830643878689626550496091322073197537098681018403146894774283371863585782211922399928643223585449966032259146697148147316873273552981792317026429919557253990556532811746758021308537639532029329963658944536542772522826727177483338557294637939414028072226807906634841665859952934437634010722519752910434952423981851854592349509056780103640568504597000683389303631319165505805648705324494365893573112806381220858281747303122659014859408793128039640566176062722006541170567462880898713382319294568224596328082014445319117502288063707223468068944823944844203503042598769440455625264958147482539525665548656991670465325015914729645300979956384120825701987712556424454802600331996553452556420485750029439711224739720370521961405582015619551125281046019690606076393732987385712550160254927379411574818369171021019647651344751224777413363607551634919375521698958387565303244803171207588690018978641093337034761570732641009444764133454188492149117664271183326446342655703124413407573260037808656811274913760759903061157779640234401509028196110365466305570623017093709241107141895544589825580438723435278849099829630293838770537383849720450677763744283712153171456569640110103240789571957466082067625843663394840531678046772092130291617844744215714496846809633178394111013862448084527984421961516709655771761060273214221890659144105340398631971020439010064458069304076793149052065721210233638376725167518730441962950276176258132571854031085201605576887436747266080708392745728806488650503996273008511216308528052185359312784235448673192406865858134609514473718446523947862274379405134022727647553511908464839384930463970791943977730610926901730230585215651959522198821548987753750123671649039746259086263025346403519189894939990551752322530331867797737879247967720752766370332282309366391510266405098485130075237035398578550202013764290760858814562417615433126792574236853123084637973244929516767654138667009358115083087632494806756933516471975593410188033732287991189749009667252625170025489174180376244824123897834887139952164195995728277772326412277634647970018298876821542956681472969338400495195157962690492170310565946321288320867825651405550513481489017348089578320829476688292870772069550783763325030500591911311160935262807180046915575212684428100994920975424169425856452742610485308999563374789754845843922003273355493337741337512674047808745332284024747771138133688813265869847983884368052692551872221063816366388740136958537720391554227020923496301387022374124886730756431449600029722153448194810939673859507898332752325742869811183686120072278974729301223017769417256949450598597101061017853807770778130958557068118891557428707397325052834125494437688968962177659310403825479236377400194437210559120845110247115525174800705715187902349278040079017108347191011929793872620360001423112475099242092197705473853203495865442888228732352319638714042735657889709597418001089249285618388800056276811274154385506204500891787231747500128769475840457199468657959680343154086492891659807701442946195200829717376243012859918361734471004159170765723364001357204431150191776003956179314506761212183724577632204842239833370937190194851942789378002067753956636049928182678838456789223997983610074406700601652499665009478864575481338624718049562262627729001530109264748583883999242412321350780516351486762782301299352058375962553267550742364236506166633266856066010132582037629697997798219776189600241939062548107923525402115060277363125677065560445434160894748832061996853517541481222870965747204036823712202382826182770682653583340150920906407063735330372779236967277340726039483346700273845749425837705981804292575739230580704134044907769638637489387701519232767589779414365532049627141923187097149334463127117264043136467637381476334943051241648737675735261453122735245137149218422992044501202938766524515068041251003593533384329743802124751235087605068565671868398545154081303181350220325269467362913718940715738986559723394650933030082050413379566588122878672747218582635941497423119529487803461366603939416599939918053864600836179639229449538476200445240375237343068177919002207457057009812943335951943222479464165008484738230276774743862268259674136979750733716835242797603521581574119644770036787877148380873565556295359946933440587527607671235994754509154271606939349324518277526470906077572928896354014704694415096708780900556899497106785316975035952391801682546644861100384974115649778020396299150417481923273968450590890176888993726273890519358953714823907569593852811932538908799481166334317746804333574081263276245935608428427851216846923229797005769764321862798258467665876931326176443182781140525434928631996827240708264177551718457460223837576039567216872919174484730623473835921911337678545513301904436570567346819399338477777657753511517114371374805077365282213111455434334919894866699527560690572487854821598972288921989439609304746670687655806518327105153815235782822327724242852713364077212917266867804252970669202099508864953513509191164214812359777308890937635988107423313513727513836561904352782507327631008702455226606635095737431319603815416258895873158862801806848439181217734728654703359479184659016954057041791083502810084103114448772464717604338309530468801934909547096186152072145438444398922813423539293450948473929819799215559105802814972308602454003617964186746762601583351922917648528811309156612230893553555424074241933307114090250739181686689254470491295872461336944644850516194646226396128977275455544086864547100068543948510635412774045156538775614819435592053993638378938419978076437449689820372706404998248295156402361993379094577406340904286825729647827302266266349840965413316854699037509958331747129182582401605858037354967974818205277845975977473024223374887171103991459198043985853675303934744354747103382234119040782785108399026401512540001025381976916919583447617539735247041097951444547606612567865507357025591543238452081970513542716238991736817622395795288647670971303384328158255262195059499676931424877426956415669472914019311814552873558916445191094072277948160205067660688079130408208925716271889306759415701472770268307720433395566398785291223888532334414087914489892935226228252468648113513383274708802197692165105707001970142639204861153772440579566360123639947061413852289498597021547408599407539739311343906435913969223891016988237661270720534476543271785130618265486827238525457329169571765464734052306828945530770997324027480119747813237837333393906829449952235545085699493416280694092524338295025634975725652398222524156676144687931466469251436064957304568604692818168178287036905616757710049549760267458686816242447363362495642334955652943766563899728920699604489434381350902227308492694527807820476956482982517963028847226188031699489874257493520478953596847088701048048890036931192380936156558215107747803530772725972819412017189100706379784850360738643908944407955568629965173147561717019506439981009199954776517799439537263594033123292690036283855727668378104754429472540231391815683092714055925067992077174722988224172120215140983821942827922021104022168427450939391503989482961746911203465035911483183605879216908763741868976431202853029606054140957882177838895578607320283527237960407063077641289795142202629792502549935898884985929934591533452735857510338767575776748975535542839231382847338792642486561499587097410284450603085940976057681894168698913620228582270130985744700181480103440945555804280198252446990643535855069220470098969833084083160540152540796715727900443764197702614950561465457270855483449517872435305670417566922487942649653180992194826184741217470553508453762075769642652293556507733004284421973751359322723085761424216044299760028846796010845609736645653855319796382886483618577295684396950848690311694670731777639265230580570086026069227628608871139774694875718094466731474858578665683409283961801543385706287737623508344497389395666649698498538875922833787548670794274473265103688247707272738024988180335031872685321543664255982224240239468467931171411897352218558063853812356393853385670983262444550543669622782892321199224810379028201200927149595449898497222361934300613480134244194146465876212736250034567428400114184519886832609108981795666363428470820991449549364353619786938330602017584927250714256235468631611899275644057206934743388010695971021256577021317089376665620094053168987296764915382436763296123358126537400184369956630017331580263195759521802740481052627455262340401914273116114006970913495519411487258719003355508885679873286610631296752100516444278339440870853636252510315211334308368460080727050602610587079570380381192901666076806814815606587082294267219665022222065050238573524644559172496688274674997233610499336084451324096824237506819008665719560676490111473883671449499403144551217601470117139179266221015556575715182410329735442653378065797099356948948590072296454444881379549722199284117479947410207303554100944273993319523194607476621641143260881698637312498587533829606915288130254246171375538380742919767896317420763178242999539375714939031620994000382544835972992259887484651476447553644458727816672954031484506781582097664429901903226039087060164338449853280015838734069101706499115814879908831975190432739437930015895724409621629399607048146661021027280165060685034026362070570871656299253150682634116573750061816498085978995459372305738840011578890059757387313656467387119521382361839366646927042902469018187332158462352916881051849655829138398134584320057110396523207958169538822271782036721148054160718496153311778788897271477920545416484693730812337176524723572212614728626901561020743558408892812745354506453811704733424469352818901788410938904668720233407458719876091236228714195990511398870143442472497653679994750088286154777466037019611045689201709422255661816582737755356679375621538001514725131793411889575474369976740176890449872217124599271485561579829992789857679927830190363639339461801119405863663488402590429952540791803318924311534954017301327097923370543917529595144708253285270213373876560964851275196283697127060088712792693658662732777186787939605046745812548690928360572218104943635521330798198074700170612485489422664410496791272814109645666695488909921222350929443126936239845923482808127622942215101757269209559646588965490409173221017425424098043809474938188691934162221720087042288007449545525574558918632501852894700696321219690477238762871767545971140934551532347352512606485022653949882464056429170535840277215273029686350243954874061114967424926850634146619291215683655923041784436985741947690723797857806000731643847044913154273514672324691912397911465699046224968091915296017855134539381293838233356597400034771671835798910145737867597397639503218652543286482684565332122120193071516327259986876451589114813775293361432499117270452066931524481071359959453688812355795809947497223272195518502269697620247780099794123695002798774560107521318063738731288203927413880097478946352622426273416930518840286363354935051029543603907588048914453183322032743869106524200987435200379786232331681190311823279008157726353236232617902187356090805234148531720783032976801704492504621289052942727006518744476119195341085304468791836207791237852017669477386277545774798262790281012390334556342650643697307120843840771773676770783691239630248512550151247178778809076095384036412552708681698852357707381829480735750882028018152460508067246269345019187139726421699262019057849267803343268527888880709084394387495955187229523535225981014869005792718800776436746588486504109537082137082871157510010793592858028756564815130210663379196600252785055310558650017578168196147860094168839784393031377988940853558306152939263105642857350251996217030801365704016629152870907727504652621297306732491306130848616432651550271924521964437366489259957849056786753131548047406502946354541265668826540221045540712624455117602480462233567568916145957367641163069702141548019408175608614906727545975819374928321886367145841992991266132102271217099101652885886794506476988257187014280170873064241246486210923390864438031982556687145504240083934089429176660866305692465079605353037520422037058723252239450969922246797907890762428531018399728009975436126486876142522002973883251028342944812966682825568697034434183950913232202872927535696248716209328131732261556548952080887893767976884976014438422151457175390020421730375253846565357114824607028620219594371915876993083242102274932693247164619312077731368148922649915842754425334983464778716493878004929491646936794860751299709550173919360059350654785091134944620118977632139030363318807378349601068494331531036433061489069322998193941913411809498381728087859320873001329533460247192160754969919189702494057364548133729463451587692742475915172309770254867687324179225806288695114468965841580038872983046875666522885995281716644803491198440874976375537815388924873768027408022191047580616307069540486869680400545976294402924319827500538192187841349715133569036854295407478509291195282129487412679790346192607063974431189422317629905021793506576428754864661842914853527627866493110451174023546068239650710349399053425229403349907227466420850718028839788030221400663086875650674883181735787689945073236890359878995880835455814012865908686499355280881593678629175979229315772491860354145317833566347824652083819512000115376161256484613517814626708544883913935041867548983083715539940250033626315139178186458545948553562357733685664468028499078545391105766908660047521925434914825032897573712793090128978756489828360270042934711766902726326666428577040146699815634548976397184961228915871937776708333040962346671408988238867376308634410217603005749622840555394813025507250376292736879355731204913368570758648494612461194349183186899712226460255963324951533691748832811401332240957120177653797187198778764938318384818771888286615827443264173541367176931024046609321237476221785883992347234442070466237365324171977337512724764536862920549607334593940152601360143826368365650301595932879641221847778626890921340225974363019685821113431477130286422000612433500163833719864504261081220594706178182903798579393004297492012759002716423332660653760143217575366963111969172279375407079037525126519161886034834239760151187335026142712488307601035631544886815372537522963839501130978628043720495442379312346108999676774693393280242707945775742659155670092389153346071977288175796083005041287889693004017261853006583719101614690977904769472663235212405153733646914037551613077971984855000092984826583873637052995098001604454826564187379648127418457324781239383384565832182869865489052850394975184943013071687421822955686345819804208046556674863703258917145670636917985067944509191644688379633102270648877587482099641241228241528768531264746975141042589550402812743444853988501644023011947084585001800214194632012104721913709304297462159300313169607072052235920195171613365000188842775963460138989734120176385100213758950624207102404317344033067162356192804051547242000367565394750416248202246717707370494510265871971232848770842408539744642433817870556138125172235100687345669179548641389346693834193549601300563460568428098556826828023620888095934335045740066484878505699604931653822724945259468971382156281992994816388577456304389164857141124877488212276789754937991273362879567099350879772828228980802677202348660852841867243055112888391460556089564429530580074202703096486613847478295036131077201591555958833753301599763248510852052028129007901977192986057966378992197707131297439521702534825056915145807503876944131363823925738565293866206278057799318286994052178414763729221261297573968646547670696834124726594920346479360789604024105516242320693419044433632838143863996482024282175677088025871657135777764967166153814657432699701805174041183765841243783322360582491383992467339907858230993877555600915999954721755806542177682274902576422964282213329428514070355048738913153581888901339317883016972063084223437776667132825883002443815017728289969309210596720160912627968953911689503524601083858085436473786126151397044270540896585477822536180090266721928672321806738327993361416856684998675977573276736179839187106072229256723046818613187366826287442448538090515484741220316259063454648778962652780957501364986491830960877235642691076155595242159314539117306059550401605099703607981512110631588332515194318212043090976675154139476146601516711462137400998114083247959282873810195591843676616146880281684685516761326059902160384230996429606038434260028063586589525828928830784012467218308836029707652541113785702137372195475903540864141428598641875168065036423949137542075074763861353913898808265781358422496970412962807487793792047033766503045228864361554601764006905574005861508735755651214192827044413183913049335917186130783640401671927117112296404738873432620111853319292773708456897070166066490943817792310997718743424402037422138601464725029682481902043524044703382289860389950677560529486183287454859861310271443528432619322625627424182910481280532315148035441301319476339058341842070550289528158229010498391998833892203982543067563732718990910979115536431307057363457532016256153544004210738238220708003486858644915923822407574723745410055275074724948085799943928484610530899874325174611150752339861782169042830302889966514341374359494965715599183475254626661639545721324940051973680128547855677863288695645114285505177922371648537746986150942737980100428724734558694271527729435098583434174946931835883436767564962221801595894063823434383623453565524978965199017767356081138688262415123373541523304598415663889266498151248606687044401686770862906066397902563815956484287889371201373603783271092715447295396102313655302720695531604130327139979715978451669755162626007699624595033636513656019945736790802380727347428657136996594819492657563540280434648396910877768721288846471570763357109067747049678914314186131722342621565392683633723015197976565887909969451130176416787625509616311897186083628834583354331828758137849601164745163955052551138847504003413332500437473008427504956412596485282931047093393444169893332639498747974328127271658696329779357154470276517714332405543784266250992304228701168779682093691592044940443071625894981849607989475040654008332480245306217016286289827800796290650302352558682129142579170394467252526046350196508904618394341785122432388286744674487593853675360631099689901066407738670003475609250433496537659860090676427581379785797067876692530110206589597634168316822230903174609444625200043478874262522558956221288589727563248189249057943363142020328832158413232175336777041625317958585017702543270537963338821486640396099469309204920740051417236953075854874523653015667011875551663817087133488771139373584997543348293152746617913436339944698197564650349314832048497239623595963293630075710259595249463317661400005510014255729639410860980719496539376553286930733568396435355600362328405343515749891616981728968470938063975135986755415534376484671611874276412361734684467771080207011168208896184427170922042844469978955366476979015979867302875786809120356668224909983865874571467347886171003089385885018609178960343814044680198851007542477687109283764278009160330946721332463961509543920244507555376490190246061413836830167114153478085382035120427824445023322351606414739083234544011676112143161358512411604651705617269186177704185106120002496994084362209089302537509013058447789967739814779701333143862411113972226421245590613217751570946793443431635902345684201046485067044512347835759826099964974071989892505814359489681801201239104140977027987793333418137589171793791022506775335792177140798825999821861799821697246668556021535632011872821136077789505508079690456977569849520315589749669568132843639791667877477221614301568552812066600710685579366639053036448596205831175335060760559784722839926163985808082395706065836756702692527638817519621003676442894579559449929019813949919761007458103062172544460870287024687884577369923385642462480514731053516334846333296732483671470672583957678461186211262413243319869561832506389938449654075129152642695230659932952916043530839014971888171983041861870261478325420550519605460342096940419934978763883415263182659850266973915841203382083346494114086540491487003372014735547240053092535695272076231670092664172427074276986867469874953484618210942271471047469080925741568079943722146429745795674221304415858440947428648515043420004295288001516735531982837907721554107664990985287662537097416350436437602520427499753234779873774067146065019588118900249385467112990702627949473532347983245136696488538827437847480165000280183995720657460831581862225851636073698316882420169651311819277503098358800122817532301738394926408923999961322551419815043661568185419309579580802947516790475475403116894597868480549890871025599062774568189943593144716650583134100436239643915176458962827601612701118444562738057952888229909666407929486882622231657500713819376364425729237680647726922644247115803356463431818874538649861771965498122966586273296132136210875607091001568125676695427760885835389987701390058013297801361242264620692666816670419378852383234449345715762433571157793712208303970040804506748238365878784360481830428583571783941642177419016085766304339468470090325542195988543494357447651606809668556457247827362116659176424502798713565996760065409073061133242899648128183815272976178179369082539845623066673416120056660505146390554537305538256530366061422777177088222226810224508873806230233206246616167624074787484344387357182637485904773974543880287690311574894854893366086241360711546300133650708137978292168790758086071274266902095745656116095641772255953872846383784160324964040307324309935901669231947187477178675466892261922145717248765604534849505190465583249441746890300171039796364008806569646065518475469202106495730136922868697646317844264415227145349821539928189383082532681568420726034791715731419211144652305593386667334538746474714337452349072181393767029485649728850697734811605771590764466553257897003585755286402143968544657840415217477255290380711566673371413658163856233330216274413444331771765150463895627675210523470922913510116045139772528313961699935525666966159651732406249538198346439897114142286225947473564838028385742242900300356589700398435054273825221991769140240109953013964521891448457829465191135809887071378218094410579584697510578172711318802958526959458795955498063288082751150464109201295428793870968927458811941021557530107500943279117890982285565456043391586411998796780308896323045986111928876563602870338593816316500695692165207305125433511564614095309694061331548803817348045198148371348325210450575883410433264928339683648763642191711761307602823037380204461837976298042896110610788265566597128718270522090403258971593921297500639421952275025238790348945083097898062193055245675224807433802364375911490094829762380075408098828469601362233633848725540293940041532346697036946625277862724881077559640339674638061828873958892064417576254088888134988739163897360306922341877210455284338386715232208732776199457267767183587087188544938201053509151645813989639882071031463390576001432127708304848761997352002028675293940196274502068375287156120505087080595605265711275662065887535456671741230889251687890667402749292405328211031780136423033824046539046692540646110821497590136100137541792191071634427012067915197639152955927757723188734150627419359781945301923986411026530511645585937341369742779104770804292705021710367065950098011621742355820616754405245775589266756773795153772404550240821518454742077801309024255747003565425790154248751123987854063878595426140057935131651457319479663967678617227941711051799375919140266409223914819981216737132337139898983137903392118131158997035603224264733441594008445279864172543893747055630631803150303370809681620720721305988090799852416009727213432118663293828993644787626566140457513193634448160126270253220482925217409392621779357733712826640180551283303302709960020667865235052764519533870537062218646615218348932658106111376391853382650269736531982519993375859329190722450483866549660826109657742240806815483857369075782844101200719161340475634078140869077464128186201521683851972859103046078191330605992022455581440959300519499927498315252046680879325150590130911145176427800876814667945333854690951824201505637730444415565121605849776669910739494573916392130878136803175676162443714580474994921949115543047053272313091775229832104092512239100845474564852269239910063835917123749437659870139983951608080780828086490869258938758583847339341899663180037266634373629245850836248492563110065262019452835713749095187618935574185857950586869951765104853044230530013633882049817151873478998498875782430942015453740108474690651283713681704640923231899609767444247422284755389775924105887473437815142712466067749165984623850603984733459538272865401977853721615030938093924956093508839256623629149956942402906219282363553276411379868126308355069983353787219599460584783506235041159331416266977864606271349609089157428546421978648458076477005807866085933115706422270110298988571135656399986020880291111678845502519368005502962241248724926975622466038759796512820012025616467610866695586894970232259297236907390856343562009134063330113929395556966551706804768886277737119684797116658628839535762615433645274088469738796712816261542490171735823042285677368211465853173845978152565657059239972391306088429754013161087381340364975904357336433968204475149243723349396414977617503460787207847556872183834629407798620460618311147062969947459966334112578786738501901841313876262644602327824017168062646911669102205541250583015211820225586560179436629484857195885862126311698594822844663041631944261714645270656998033012499300898290615582776890130640798579746912849945681416304155872025646680470286394226288846338354425291964126691491407712758448136184498332970162577737230937532798455670000957031203902881161890048734108823572274280900204860960630047852286696929743152117516816273270776943526058030085660268977929528806263702374157243987567192578895378581816763248570173859196711055720727169151891497958915422731874877197126911185313740164755027797901346376291081149662195670403057101887728433366432396784844222458083276931356876882310635219109634045664371048827880739085308352097993352194791967677443724103665511065127613226740693867034124689432444600379112062345821555517511659506296136656662799556747047911700852603884353941297436001045386508229244321872691034622832330186983472696808153085999970933210278219778571426908894501190203498573877263058997218167761183740867437397539602402129437362946999738699956536470532182290516317269319381341971941603892611373306875862321486693641250613647516571915105109391940844631390006146505765323966422512449953647999962073131955309907512821315640333990107579247152601116249876149169938429682611928129065584394629952417537534813795192099158046431064572947667293750480930609432499193575400332381937097795704625680062205101174063005452095151445813834809423814864902008640997721436790457579967356093672634721238521885806761555928933642886151738866412864805703800087807600988774370627441749541939560011705074321168667888104587769411060453199391566876176225506665114960224125959372070988452556658852462583562465561291278078565181294946942982354983998507185364189128307330653147250610826382455380723262764174507553094345092195491816175491826600335720314598540313859025350780600569246035918093201998483321772725783543973371579970102081393263479360640624575244320303181338322330488959146614885566801478385515514107776735339369659481556306208177795406257385651996014871542513999704894656768189319144403018902445593205592379601786437197435347676495264626547194037560091584188100381845017516189241293146085058503587976142155025777245615674368275105964755463734447808833453098214632090266883323177690873314910937835871044847121508807936627437781428053825280891908462481916808624872502509130470102929640144634660406699113856443629473442910638218651262569474186110739184901934450187311859121185025012301330376845563004142500654210916290604114508083041702362616133867323038986857494380142404789055133951866837725367697776847641861687108754168934348179106393157439866053092724241461207728515862393802626635204315864334831473633208741206124491832314980896284817332976567053921990388855632120213138541827061271011023906340540891733358489776888987783694122663168007381688660798684638427510542775180869705901776155678891666427426713466832778068460431347413883335559866492643382539158063355954477498222258128922460916056515772219583736349737659988988309365028966945530498861047080821086380187790925533472039680208123117243793217942136017979191077501717500434010540640751865889754460836682102582466307648037763722831927855280778044089170840059901369676080768426173869800425353631421686379432061478689633623933345089242022495205050215848950003447007705255553198039680765984248967268899734642796275402708554597652795211631968160163995790466909677219487455287814534082802426326543210018628158391244491174885165042361435953820747526493512306290261149512160526320710574165981764408401761439964559433491198954462042524388298429561851954710465191729842662116221051732039799568002414452603550702490897872252259579596616294152660752369405817807912995332279579992335009192080394803869063785423523980841996808069612489808499987234867024142755696865609641546851487250906345787860883621965804695098174545359609859699645649016570962213858618065339348444464144883729105251165194844341417109550302751127066072697414496628608198676100816492254622154262034148917054555704398622478032299990833506956765023936894731897728666006284471012421502785476560795882924238096062160711036330368174854374959574613727138753450993524348877568463977984194006703745555749952364721809805131308950537144252977995021253452441174349341576100572868136674900025675785730179263654812986400104233846015382159845585169643147621972219459000209328356269491425618975606141311249150447105978236480729051471503968775289013817273734239943107253634590078818255558760039479556231669113273290768656043890380886152829241722279599635369356454608680457374070423573943005419659889510236359247168644490574451923527657939410642962103009600125991654425870648719519190702628103461825995870056787356516209898531874409571826157535161545195766186139674606252589138934600971711064379198507326240841911537659294366984162183028474182304767690960767365581521884762846411706962823525416729877445190077247428101056839916551294149776256467902323302433878275259967177237423419642252643671240178539064766454906699342225648665283000556054247195106951661715191710713071122464926597894912076029925597706728635409627721654516456023921240051233241476968578022748901391950562627907856203532372659526461837808364069427114535167324714539448301281445520895601175743383752759831503314575897188853949717093380625739036285397614367570075790971733961344168354588194395268532148675629263621697363858789851481098758720649035144736202949508367096944205157690133262720902857131696751295582172320943323285079952464952427038215947367325166516549281457515266965111317456470276179205396532598563711368272760420317052281031846747309348002350612788758339712833308935280199497531170468181308952108002112600575247042219711475272995066083460647856514160461886793031932634003917179817548895662024574048033674697644369395290630218014358142930572301413011674670890376728863098311891283589757702967167156543174921973041583696557307174079278095792655361740525389716709024504757472157198129683292748875115876140015765996998149825160059135843060721675191333237692600010680183534526725968322877018780234846723587340108076929806076928602985804061210279038013466233106771278894093376032295815766079157550970028035467228392529469082656873788894403644082294725104906058089885886698495655818148825567142261284938693433369088068404329434938380094246594811533467214908513918720167910683387791774979662686984830817480386174280567329975744322224361701735501164891403826393698485493311056232938157833654348754641745026504218528092017954780635201734588187432569858085354960175904666429895829258993394379103411269159818870192159562370902975478306896668833370346886416169057560568991086320267557905098611527395354058041842527286197755068216324250688203024006650039464941001243806225594694749481910916037868150830267117436217871830930533575148465521012671058604534581850694228096748412959151523850973331072372317778088473906086852393383794221155533544128316237383413989911094549847339261568521831063130889912373823575306061955084335150449768585012933823872406249070192300561637373078605737408655809951482697775826552957862721976258051430072559531023380212171623793204935372240372423703719789840964284767886242919989915831927293707435244895775432225163912654367383550144315246130314612965228299714888694518958414501628149950443821263977820373316696675715448567130859586949516614192101167114628834175616161832818999942927389939265176338578584569209812538099017747343691255995706610701989461808822701655655308286345844500458309658009654075472393284150287592522586594873149957020666029854309855554243928651504462951018462732703059456729050678435728807087437964346910253345252410154594228307235413250221122850075289648182500872561802180993456160400782309652474606210909974254915644749388940764289433329517387835175505133697695370508725339639488576289086483207303340855289059728933511595997025717829442302165130426970065659512904444502502146841686273355488911269107070563799828025602368604921903931006072538205280381039107487378974062155181798584952064030549226379243281105981677814838122325294703974813204900404862504463103406935386091517685757042468888039363824760699862553366144262238158784756226074691618003920003800244084620606617749093765057116421435593276126020916024551605523770923046777624926444499711341641559402281088706738448089170376061052017202389480007923628098997610252969442555000206910793494776804674230676746153512587980018846308658062366826426944749580511490381806846327313155453117762461282734578136762309655439577669592428860785791027450975596670652142538846784898725238618918222798941471867136702649414988372804607785449259874369323977726871451879373682318238505810276110053931566506528167668798245358989722997896104641245173271224943414443532386364952506656511572866355730111300330190151840565533760345193406281086712607968935835179099915533206815897281022728170555283388655559058931419032950349564862293915976301482177256901063205721972177929515968875394735231493006786018523935927920975665116252477280384187638765039176769304033059730101594314993813740762810343433950530378611308693097233447595420431165537589271937605538387189822765672025174378759838646539239522267536927259498465277827793083873309446193888128062685460327704453927727543750623109394341642396274909085611880770159235465169265858308489305030313903259586483094660326173484321259869461869640840994310894273289031570255862017838809261921577723561288271200497917817087440251377437000540371259749471290145796157140136354436453434278996818630189713350511146310533187025997187750912105033454198352886192834890189174216085009428002406201035130732468567435221575810329153635543749389878712762573318241102419737501927548366927023238202119432569753832060269430873040557207652129829864262807841096161219111100944179975076725519114737757923225986501828990223081006496853348204275406912019034395006414588017361484410518195745270614574582340721997312529743608125792016836313318752852493959380227145318083115491231001603871544319394440015582040613634927865912662895006051242982202655765156962294787133417507676606320008551638194579329063148420587511242192632423782941607512595403595913231523671036400854640459369713564718645553572133801623718104436600463989764569918747698102475534701152817080011800135980436133502809970308492541815845797528625405348071057254281137055219425806721058145377721586627548359965426985389336324537819631720259629022864074376902676396498862321441272642632117212220822302919659389051985498622340579387401154046101801450608111438190078901363603146964994718800924286665825760681934039496774772054158479874747924544579965543115382769555175829596039730011622920419009715108219240581872565329659746161848189909676257301303273576321705028042301932782305341546781445855195594028863649364791682589444426329765239953157184328618113853675749704396960768077838582755367362007357001347203072931669842482244082853098009008151206328850524097412911521805196136461047801349555166186135421777092413646857023308785507899011609129684280405200865516576917794344859351324789436490975503555335652362712477323974474062634906244766448604756278715833134426686506455169723449557431983442587291796947206079278363618641716558628593896669060678571154637710795887350584615469557891017127018000439524151907186734746100011111257330278688591214692256433728875761178905941550407628594391298494876689463858364776412021459125471955418910235393295892641088942750221486065654692363231128530769837991746287912368007664565725379229939573468124065117988564382824796538347501263901415412340736798772769226903368882698798847005786792089836695484164408663179072497620275385426235027595297316627855674815059869578102643309864856644346133123634525675934063557743648128024001176143753887806392623549728528399528208537613964744243013270051401044027544972990864484620087900434684803444878662833262504763114046679036845958423661819160678995814540878527736473443192711103082491666193062779199387066271279835939024134283815041383458891576775236456249380351085069278000017416730223414249268844268855025135174911199739831327659018506609740763797792818448191800423641353796807517233298005617575523924187606275546306550765563182547369093660586910133775238190283951759017714198096082994030050625700655031427485746046341569622741549486806021440433970175963855736493748636305623861505149940138694968425437263371024279029112966503010164016021159693768478527404258020258634072635816771944268540974937511620755951062521659793896440203905526530276092696141315082226282074169566095424818839588272417630301003766741279753548791367941732690040842834175900454126074211780139995852731030073975265076372616388203100442821429190602752570990423382907056275163078150614926238075137679039980493709436556693261538543949541779068109269972524710910552424821830103100600980390473975944535304020140912586042236439454034354131108290909986182846540152967275163274756865566151962753638054095329636498883771216958641107436661888270028638080647300204444515196918847751434298955192196667883397894393200100321039980895214041355086043047534877752504119481029720654710443014488656456130096359125516694730741947180360196000706224059973928917979064013470379479503187093136779665395347002089349742199455463844099781940385998806409772794068803862638525797289600007848489649517110471415016006550539813335309241484682637006446754435932777067389506647425030063926084393986803336656938040095283518430576436396906913249107017094573787047561056553122362444125540110182317365302554702777712222582220275335682770460610897437655375448469039385703305781683263142493636428201770352526736078582036625572514338736832965325975613471068193581267155021643399795588139193308144384108090256502750498266916274245479983006684034049580895041502564474936166767883484251295359004370403499438341663791543431452805496999012577760084967839246562568490094445580920667883599333188900287258003382814518729224868064176182173044154921590540287719106972952393823024649154319440926723777570400861786637020785929619252002464135623912468259854702873983466444353808517043742995222139262958232618299808190518901322935371691308838213115820776755357305353248777879982756935004528803406495077490545492353468941497913079939515658762853017807473700112906928894667185634038489197370687507174933312014330258988616237031859431395697719245160487065140163565925555540466356557219276058349134073784382263059238393650820980037058126935325811044614612135462355955540615653996471975483830988847688202810507844245517196288707157401798491790567602440071949361306552143415217925804346422807710836759298399164033392744190604755689189237401644348785038214700892210688024503105984499288333346024588592265313865251858019475946153495622669895017341628445379884142749155993445595029727100028497608253479159014620142410251151596081515445185437504182565913987633340692518936725281432654090330415591049024171460959996288610910392681019151815125576364969876655215576612862777358076936252590787694346482964064755598989398258129298317035223709197209599876437762142546001004021175818198013799904810950440742983801248010085973091437914234597497442570334425431229579980711690116005085981881013739057680178525077736957479419938317383793572124915677367556479582405838926454046253697953759925612675671860324480998541309999265732254693670376224823623955623038779125049470465889232803924428897262228286483470872688402240822104950581622810424212028799818609483130065530808080420091340720113804193787351794957095300846457308159718419981361291111857935980908054951104433703430631820565907245053166059316332672181126033538909515481027262262659000479641872778019074779169501951921890133619639957971574985423090721512236547619525392518069955492662731827530446015292820799935551651913759375355212354502853394646466865784764983312431027956048902561323023046845423866135691842595604255675822864498088002876465597470375671929722313417738476600685123881862053444488161127101521305931822319868279351455658917554993252223879232581547191462229720637554821254614048205472367710206805585247781715716122721653465719004461582117281844353039262131819830000342845139944705619739704052732354917012081112306951573052676207496684529922788655822166180420975011778310127123991489505194679940777536597062981171427047523771982088360424766709205835033695883187386602592384716018883498476516748348596636467328595738497007730346143187813026721850454800565325077772087991701050368338873844920522571310635821870207768337506824860626415678797455668049476601198624365449554609173169300011827542226674181552209791388369374496818386956934653524438802867471224443794596515272460049300989191002768513679294277046740231265975620481582872831174044707529333153415403443708977398852822669220913523136805343891613845421065036502046007974369866470240175060499647427492140754965520725859760344811984944024269896674456381509903244228481372627740049598329953943955693140841492233019077969373943410492420172610562684721810726186891097822403210181991991017316692117064213727008290923744040639534154801003991545226992064392550192147036279733816305504733754992531612232806262167484365562450449774337993432353303520777496554624034086121585130100126208389769059330788564203728274678966939485343146645520364032468480316753895887316556769562002412848507601040030790607776884014777260371122127905671173209129693567917248608830213256670878219191355102846818557985026829058581570568552020410722826783310214657281674496467562492048418764761027118785506499564089537416656031774174529879816863697897728979033202620304596887886285204535454853283702390395034824181167190522618722687213251484473049330726924994719181701705548652284110315593198308844767951759748020987848155528991568330624840376818014300005512379621167004263940086023696783480880296615092396979352624598314257117247817832410431814203850315481515948892420934287024452639111766282759776311014563499002260305354497489023638139254820126735588361644336455037111337159358455850843349717918665444271376642445265393464731877678578186255248375693620595499170914538124154829735117138502426099695339478282156989342823711538965064030979997785304563755017757299065305372674390690976065615556183281598303216539316687679027490827262423014401406808258296008561422080181963693630585758381526372607953205366191797525580163124435329686515304121167294915977807362867204708402723127689352656815323651845367805798385801168179584184997631045413012695181481646747916531930123400614578390124028645647164100787925312677331789721521061718676146057248276000525620107796820755669341705020333002382515581444616466903196230255751542816476614520296254707556633429244041799511260092382844438045323154185904632553201320250559085531408271869028267595137179087696462375904857619452473109409751519841236133078759789119510160324215501841891117656879686142435226476587969624494763755333078690603384739123766979336990738440414561043818843972070505632691593354982127565046771534273585748516798430163035409729962512525395477151134968922861219103756756092217143899136208973461942232158383778733639435050391710387734442641737113334838917040373875923975134218062640444963604688414970869411937926076056768913677335311484740832088205672799090100296505755660713226590711641563288076385365975401877084325634113827431895649377506338035955161921451503949038068356752969028546059197956921183449515180059540553118810793372930881663478103942503565211063466395434004821973669000565072049926287755499799891309240157245197023744346840494673231898657011832670770617805121184008675792097103976616514280153195234095224787450414513547529652249221744452296380953790359495993788851551599445422392331231149291588149514961528182747526916557955675411546360475488538768659259098442874020678907333529842254729770984494951321758557253334824739231896952483319799479238139155424639898204000717384929030517413203109788565883132428509970383024713128712883699059446610328234981718152849591767323941223763180902166122111489910117857481326572101888871526453069484924219678388161547222130606288501812201708843575382088306595082173561837367912156953888444350462227963418422378485964622825742847443696842222635635602711179430258139406571365743987894894229233252961461001706460698303550013936393400736414812868063404432738400087412570078692683106972586019110444493129138857764606797895460530055080591846937410067108832211015172659296313154759007143084402647924454763683457589614355064279497283757737348538975892132105562143498996553567525453427650666728299015011891387743770903628940241986462034948433153960278509857779146982796244925286101257345155487867722431389075497992299536976841544014642461354048016330199223125465978505671019767935128987475449316770679701116253201149770184482065822017224431219937110215765481538298911856315883360597030652730452082434980013961329217250191428429056434053683970507335024840672355286257562377312763156721865207744049507458695699148283695568948193489219527110571619058721912821712696156281600139339277581636993946498237287361979337402759113544972119733611107536496256552657715882940362504134609200534031582853446800449415767878926381371482931040168410472426118641854251209848610030957633489883927301594198042524185871058837098942191493453534268632161211718926926235067167651931252579916438955253747305562696085294958615368618910424727723649633569408997232565764730918872937625908737586398457821925156051910101091070539884876633281871925016805457073089631601512272978655831462686666375087094997062060883609056608488856443077278392273144331294150481844393492137042929500099224766804253271636428590698712651657353840364323686807535186803326191692541612661636590865057730169614503562726293259442266417023755688402312621224466707146660435544271850225277286582630858479883047354228431303200278289966268849177875866967721100646898803968761595328765411720197688697595846544291641576036412516648971077321477550316446895481483868036865126221096549462206496673043420317094882251555062317456493009560253977250973106972553995828594509222615129699081500262691600887054321259436311099205499662773682188833274168847132525733136979816856684594050866699129711058030531147686643251842670014188852173656524680047453892335622720633216492480940722603384336902951461890488039095786592575334815588185155166132269512746866256891684339549748788185443364240376252173683189370629926397511134005024523134163293440485627445364766357772332495480174190666588115369283713727284079096529797909418018385963663417508210052948203387077609335171893911201206022725153726946309413264639657799150300697678169154864498943833782239441079872526386009618155384947989122727486958030756131776319392020435654771737546539287161210652796391993613327583648681089340427124538131604434003336166669214494152907817556832714539258724245947425562884357192124918474090264239699653837256843880019862487045610830621009792567508808839099004874286758104808832397196553650830720157684261715606664682075141647405071939044318809822070470288031094414882455725981866479963998062674813838103042941685083710687374655049049906872671652788581025663672974722721787157622268126063814552042699983596410796655661040931889850064877417340188922043128318764096683011971727882235937783539957815359434588137965118286928349432189754934062357393024332284364322217288613123981618982167435782702609970578901518737754219468277625490435676325134069124588433496267160508423031960004501384249476789655831099481765880047956347441652934593957734236449587504277287885938885947661134687828193033500383791586678239261722378310020631353123049595824844461218411779382808760631697311288238241209238533235264662099169217413203287955009669959186386362058833619240886873343854056260139182099050124745328740659036009562612994473796495983903946603576786429499731085539960314643112582855405951172495296891585336264000308313257906173107470384079555438905874845990150721325198108095612184194629523217477945527831097372735671075571374663991210866519292273342627313518170509690901375455776856022092775147722898181751971833335732245950528180698717787854768208573183702820894393970736898109009052324387707135868072251951120637885431622404780758003747373113307373498123396804773043124017877352238237658768087153487488903960774448973306735504214959422402742806674850135349382398478662923021595629742015573821276606383166492687735488788084166884065579330431662997723751285394663612195935708281172638501734096539677122634274139717057893567045454400089197916855847056949743640483219139208727727218616514957739376559353746504102731693083792474532609495280880208371753026550207219170142337322766654967794066002840485781296067231984087203915594422316029133658948360116891608438943431209927851939532304722523360937554939618668065439394521014738384331373635717786555526998618155089343919622113774321762843609369224364751295383425871773190372491878752614088449287200253550261181419487932194355996289401218188892187329193042202748171374136910427619514174859683498042048882639455893715779606672453520707556537092675570392224360102569072092342095129865247869761146746749082572714148733470734239040034925167917526678445454907277693081590554072907787437880593852726629765274484110173912645699362195880487391420131224118206761667979008735437238206668072256504551526872340691145978483122652114863993957172982873935710872769869742628880195847452451644319128465325766279781622463355862127881195001140532052010525694549068002199983520363754995298512466258480755067977924457801717713940989766286716120295360191856850972404807277711511806045699068638194321501533495925467892165798023706523635218851353336015617719916962667533672273760592948340164911248168316238541365615098220074592844596932263240217921434807867466943262488986573491020423247543751079018809117486940976809806928424565917705121547097087941385264817391592413901731433441782650120131793503691739853995925677192015915757441019318973734511765016552897810400472571622773034512477237166157604710769895239091684751633398658733515410041681716244728338647537273927929468834606824902006287038960359269201760876859701356886439378732189387665849734678315155368213738220697288847163616648756678578596549150027923980845116830017404447806574987521652531979478878312786355363135603969604717420050248004745845108972300004405261943749319710269298954293652063479939161932983435716673840847617742827337527679636266257140968761601831498785177277920592395721355057130161003134224927631442084378601448788398221502818014165427803212755313898521334371425135869683349397471513968860975377641545116275830671424695757981966531013690037874358969790029396369742573111344830457133169008819095372931427488857474115779494751746672244501375157036699612593217624466459568883520042061776019160004452151268269892525952651656596452221658708586177627797402268901512241860349487855835647817733639254157588022423853813577564292703096113376559710302478726438571261695445372861734610238158281788034001744869847879036598379803314795422121472959749443499525470982454403226558180535620350592726603010348768924015289691599337509856214226266097144362549826457431007799113721289712845658416751189426787028341882763431603384681052036661936941865761653464384582141854292616427405322632287125523768111888472455276185444790732813096565575439091643094976215602072196607978050265211172807770151007890302479958897778802239422885033905582547356738091025334702157702522848004003752155512200850302836914304473903271054216280231084525814906403250818064635159421994431653953421755838243675406031611146928797747018659057878854023043254309307677564395933331398782774278347277722288715448958402540808565212583527508977532882444670858357328515687566358465462770433199666280311593443448242707345367854827911210987480765201046125888195275343338635436602685792617337110410168267289360945512707793202902757739816772935482723325182878671857567117686998596253430915463203288857017742690840764848163609131081367691182440539376731544476897185032946809862456764988144521050734456327931338289691873796804816362037155217046350994912826068577789470694644241794513784047850501987619469482878128802635110492074025349340172998447640188443380704265202704605339362133610679045896246555217707887096119835297577966895394976100760037291137378516113750114857237575792212972564277282705651023774513768043733603666517301204249260809945366237625239153248224739657181926495924995565094000323088815614358207059942539888341128791795764307369588153108782767254615973539118460899585130861584811650487230028531816368811949390570391570548537518378872271566282417808907529769546768464600876383187474107134201577872505220855271068422144922459100096970465099135098148409029093210369024691800301458523184657767340305296936384614279577212657941261094635427668584951417005189936493104280183914826699753394271263743081841126221718023149015607162979992748449418967129477614931348280333449829538119141792727746262984959853442854707205386502293741932054237580739289021561319703271644036584627291778956186920431936395138148912230344417735892789581711995621013708476407053240655719736708596350173466534277121652770749166598303934952784744468453700812267816577438091042338782731612050423989272699895504078178152578996250582369988761118909614509518049975513412108927468622106061202423819741458000034685021313300199518915951835752246125301602720556950394839546165911513604642185209984368689876233165863691948265391666273989729726828918613901354059098276643623036979385608974843994684305135703593240314240540407747379935355513970900512803281424035645836844619257767274762999956724293980265439451920766956261284096150946641672045160640026104934442624647603828796420286561321945022128914860075509302089610191155827564590416423176625111309665403263677905431136323376000387568394239282060450457166214146789696424868869192909714141979241449686123532599067119723717143897833701604316327065486932860400878878998391811313895031784094559199710138672467007138405340652933762221906344901680063196717131861703857907515834171097724792452314109954098326769335561083248037587012397492147495474195476974292545935825941918290682830654368167378255178485309492386768530373662289831726879193929326524212089040131059363116684963678400477840000307428648867194160416252231021300261157154185633805945284843058598594184697325930865842283203240133460779844401203803684978989557003815104477058895061159638675827079175732303584841885155440227314295958895975670422240023932313752545208792690167782198483596463766081964057047044470365572416965911683082451282196744442918482226501736165030432992257180917192064063443016006585896028966848233760438707714920371857288662795682290498217424251182162707124276405091670406392190237203033597035459726860192337281600352451863733087253198695899027519921405341486329550611336885980871294187481407969758013317673773707362669069008513904836329511735735754816858105840589834037029449689186357888931478187322326947188461717269236449277843620564889702496493591772121545684045710253339477723041960721258769578944174346703483733702744897173015833369265867376054197769365790008340822571866484038534285789836046568504306277893298998115960904689371908218303183160938806555326152992503971318742335668962575405010319529257726451913514182345182103912784368474526040843042791464798396948523859676364306519094058443656866763800174305760030116403131042408666529400326397779432669628481148978493793552285243974086572832448435669320750255768427415504931100606919002578941350657591945967704293733983945787061054906135730931679309788325367212266539867153284222657443570975396302176478803353704732377207094771323695794251494840740552663032449221578029573176462837650179264937189793689464997142439548579086631449271609669937608063817796826620270007173193200242224783125952452341261266125776192795046847463126655814548934055173506954209371709250394679824488374183609571931468108759447322265920555694535789478546852486637360267360248596603082916963033384375505226040503440888272201920472734580185631625664113287229272852005138033476458592159238413941083097519657184507677796326379402888857560372197410458378597925944190628276609497671571126032388091914804902413022496896436807506351120643830381965576986972881970167612023487014530764985238951868931607140031776721340450651925433347457939304794203440583215754153211549006299877111617861447166601994197570767593446471439414780917501253956200564664596340372617731526171537456910312034383317952982004512594551458635514277628302561913928067823305342079329101299920040813322741094198257155276046791821278972131753629062969333390719833463119375998154411200983867185350050434178374153914011934554850984673359049699989905406437294153164977175071289778629116211612389894888373229355528700339721512708717769245703929176211353532631244948761992129381010133698176297399453312024284830547168619295221856066365815838651873103956627292147646976791994189443345762841921738511463279472403462094543809512953056467999718619690776012356005613857592784964524792901008280265655004293162786197714814860609077659202040597773401474162025313624573432868151028631394380336270262491907333746302184484120815566301642328304461768937999930376006977202771945426035967313671255324317366560395507857926099737176699312080467562268405256810040673306007817613856693531294143895184654935031646725569570579549134050992063252211795501266887065704221144319193526055567125748708490706341367621330188741732768094226094654288458073152111473732318098976904244286621433057198629329787181113625523975834811409148244981418109231707162487161869653948081399707353942006375808379658222895748513317015102998574299166888088059601789696308791561747433742652141931814024201537150694799183908645350708670885408902665319015459310802606195696812147848810389485569004207857815917877987428286999474196632376584514983229191420613248607737636201038834385293770053693091887088953670849597988311224612768151514531644549821724468394347519364549258655971393057943968753522523623798676018922774631942040680647882406288238707702158542493419371155026374541645725974917630545588427229190540482460653784821161982422696839514566512934049733426442005183641804178329705553996050572338781006052401805899252444648527919724603640288742076510595947814166931415519594223871926802939074000105398922701453581039359354343113718932873618949879828327785132150887611658539228598399556509088655927248482249203383716759069192754152776748313137275843182459847705843306776129260293765163525136288083391067718110075002131616238470735191524107337035506721877633963384468977851455176685565176667139188165420436753852233767553481832822350122557586366681773312665795840218879825809310630571930020129397630183070735402470386081770306970045745316409511335321974556389067828236519985861306654892313316398741281246923028717463157171251023052411163713248758434710456964290011295121592006354427412267477399390382999473798152331328870904386521925416177345389181524364497972367638251164471268225741026683200621364250446717956415370587212789788604733422477366411515274923407802822611650977058665518872849269292753670947709918634585044870652450119859831579266790477869904116041132813384476074581911444609059771229964157134256966909329918358368816448187825556155385793202058218772847196513666494259553154377946342445091634815992149164354943226628045499823166201157329212305757849154153040623189028861341182710647329328102388750263582172024760492190593102961898726361333417717098635053174864549430863819138473471047240731904307310773944772563347762473790347853363100981942272345939296637782058866104407724864571378555997109111836978703062396153481590876579076711070515255357793935128346516167574965924587793157463255414267288065981357471616741481211305509906711832830632036020290091508253401710692441733472595969031466200135709522627308608038564532715822223529590768256111240752780873973074382574047412941129600129495139545467439154025509418112177298505609949838733850198072342639020127466507820586158186829943631213963954254732260631964544677817554184416094264751430276576151558856565644266980683378513016794723486052280554427912944164992347135894703213465285482442374236063939952251352886675555055681820278945040163427064105071042330375656915421910600690445790605926913459078019982784469863012269575989331288666429200176142435038853080391220665228396415363301521876104743666819881570935380457717352113811783541426586866592591896671133028067053588595462042695734222020103422049728781533317253027172419237958469905116806122456208059801270169769856266875654565725025700439765761883154284995120997887507209894756785245822730249899044821944675241940407263710419924312103246911509155771775849481265440873222745831846546277677970375662971955666214794777121902392820124450431391390238164815682766304443628963860844251544424966235912418782953863345999851814517218920097320808082186558313839669868893690884639468837612818052199384890487099162378351158845870889870413238025261898707335259013772825384815471496703067524918940215514770044461084086518806061300422367304323639146311714056316018120392172291829188748169556721867929925786527069170851766071715069851668036110176689929747321497602044891406981909324361997571584699555367766336203109660664693965337392236455450507321137570612335065665949404888321543913678489824783831337679437659815649810419573269024770382227876606000415985123058649142483858451883689460034291694462257440532870767802806206248974841074549868265506208703707429387716277851428479337649866899198614497246138141922858088500296940871897515366219040953257610991467629203697706399638794200007252147758680022991060453151271834446410480831532451365579300583634018935966102643084963355793713163423255724112619823609206719080009916739443981956432888542823150575775081031388774706789935996353021825386581912401850630910089933866930645540653351744526315511869028838482064068396157166821933330437463422279869450462571970335706853470403220084812522480052751490024989755317480321325718831043695986077576455987418546878272384140133685404628168934248786309928771038684381907414736342318233332563950241937610623133653661280850723709879652297554227318368568658041750827047067155309875855691816755026226934970242457810397043357810801306769331372040279166465168482238437241810111163107184970569599848314173081486354480102685422837275943538654099863150565117330994752653441736255533333826183434227834221620601558051877760262947930479612938019110567690302374397889317946194720365010512646659379289484576807676586046433165455483821040239230428038275071140214589545048335890569716664292394065609834641099552476623198186453024296896238894465379073824739143581961723861310383124359897156828179335747186574763692756036482135349757139146639032668201712748362055914970186449312736527153784787769288790323588504330802874788172587188020432144553214427283060703153189151660051870578063573369591453552823551686940013044456805346648793058741864770204907726956135372187207399373325202472974430628832615735619175841149933537642328803756124202633266529452908720572732333937695111929362097851087448248209825932142614942095054255347750096281188681810142435534024020368287301705084963515350960960949069797736232863706667189302952734069764486756402527762999256320895234689698724864459725818913733937221754787810605750958886943773293059362211856781632865937140623973721034911594216032171299193467521583057109946084831447802177739722200742189774415450184043572837626752287183381146247501151716791008127084196870589080635111674243449538072286283399385931144518703452821242509019238352957173956604145006539516366289136653888292657190554087044293941536334453849692179657508064108385457241148632027391423877556550161898939489085418214618926067149937064942952596811719646204481176574371680587067217421280440464743824831017533448779510024623573045279088148813883519914252593661114760619900394704974471153149119487152904673402286514179588061366605308294963813558981287157878002513047411749879918469076500499350399675110785339319327417317373276632073041419867438870626693518521850645229934739535934323972673714419817962300271796250454095894003694182969560275957498828004850138320991865190650439788821751626473068033479202548979527512145342006519060058003368602660464317017112986995745223649459613003758913805175864695992620460776017837913363996980100324556658213633030326299245347476949328125690324250560899377440481533518089261394335450486040618483956538363337432322299815546855922369460551450940407159273248536895477465713370141183171463111878287239634575943580057559999294803734356155247860063714600606225935007433965210376017596007346814777752446305911359447350417685527572418477131439695363663940852978693017880587419093724028719767890002396131818375454722223616039475487795655747285067523064950642423007728159961725964518059867762697936327713080053066637430316867593683328505309819201219419329247957246349818746034537651818992366770052230663165433525799631433270357627943239051949853852361913021665532583095402040306146830743595631162374616656069716697577800187275230681474461049865694993008553819680190132636824321080204328998897745248945736476557258865586347809429714184953518802468138254626572134769054455247290863060911703434582012017132608407579041487476939904147418082484661680730372676883111718110404578420436325251207791196399693412320351026618476207756832702688295527352255070217317973778117390328543773108022365106375257230088662955233888305874897060347796071049188882265840384308129479854592806141910748522067782694513024883829219109887251377990074311169001709797618282284470596608635279262641086609007517643014875928140958486376683071797010316817476973917607240199635843924586447128518609010966331321866433269255768207737676952771313316376381901514008081872659574871674146348007582957573973481758967205099201408278072836550330033975234575825842221028369765420078141488074584027871767904973528528569766041593059740632482977886074907105032974093497626325824605402828210303870316796527761165217794671405988942828653026034069712604159461320819369558056315632209922189059969421556874532554297909185396521981663636149251500109682693760253302662230718755558324265616950647636149120468056239612689545517956322387200351162996984981920028768145888574862494332137211054815496075334754656293045807211898452026042806644604704489740679314282569273192944201918412184757065981807965898087909717766759863188424596678326051940160751719813045360178584452427440645446231426431985093030160450893566142455489898466068042902375625139230396274895300426614161158770067445418309592381440338101422477986059177337163732727113919699296133547798101566927125718177359424071667900509110782176599265495465710819430906392299641884189703545047513908290678479592314985321177801449845557193922833252435925205179132950359880068866773683222569706307764332856737607959288585787960792459312716021181862424379154508287903240599938802422751840750514723489488432775876678288557046632950829611880015370148178425749819877004636568795958798419894351371562157841778149908013383312192152901578207953861757395569524371424935414361531271236129865741417500878212708850790170182815035636666726946404836064132577031252445921174867606670598387991431104475458811467806452026936405068914744976062220402529656391233280832273776122553529878615225199289993909123526833496953427480024049907195132442609017703269882981643218753363049362924237083653497505368428503589207190829431429754089635489943745211198239186254403824789532303438617727397718423622443553216625097872267311387126251894874938425556153085603214612357624651253770181092448040287700644704833148244799535557053076477667683054572597283433268184682924899945154722520623353436064009567115549741452104361913396668649985416258992299058271775477174010044145066887509949318857062190198480949569468587183502157066225535234332882994096057227844296747434745736555238259117858039812477190260564189684498507533873972181094310270235951473295420299249258335394268056490603977954680094811291779070344012223577877567105388237906616861903349383497426335469242204479947626674788937763552927304420685202669079938777202186313604206582205316726517986665334432357314653533813414234025832901690396125576170227063291157808844068581382683466604071942287050398915188769359076625854427412004376707022564193343907449579884596330530282493865144773937282790201606706493038662982045923222298891732589165923396469527036974294274937096975497591722678747629064764254551930096572159590232797865404165780224821145464140409850214376611790936044944352534025277799135233106584161763386367378821761045552182475638189483801578818296945402300336666822740261828431306161405344197352176823004152854177981928448114368226415022513887289409741242681076313864935293424045396672655802945877968050251879916480544113354673814959903046315803106851828975466231151108190250800708383712631395943745854919946128417460072164016150779195311084916793807521312480480369497453525091398307836046116275195700381506089961656014867355137960294449337612215731254297026791971059968149359615177824473372708100645199109779256343611620479442340314810958261675852429143452732082371090370569472953767479878255132399499523849460318703214071789026271059653990163052483408730411485642769434758908882330045441005486775880402155315007895012574495803389567999382024722176903443232948464337349738349799282175387687191883692707537589172608657487221370268775867869866628093770329387558524361442839272663012235244762989325570472247596439487780729626961836196006842462948917477001862237496801845631851065026702805789865337294819726594463555351094992886851863095915099448784678923943457693001426235371685521928492367120876899905303329798309817015556501294867211296532156178788951971007321014751462624071257267699068570040397733969350408637761531590881999965072890641704212398729788739923753084737071130275087280330735542239769121436802018925863842356306950037639297772613465172932571894799718154852529570223132851080844820857233665045639673944339669973474833848094919426411485200838493223473291849131863966368999220259515478399538000506445776322251941337457665443953305399967647986686220089233870128167992323542457991158938072383116344312986835683505343258039699997737693655073448910082018584707857275623855878336275417992410891752900556144575795230533831404226469593790576446409748278574857984480416655892610376580275087358516411988103315486566246010340637710447083742782716531814240247573374541299257926385975682815972086897136359363077435145236035633528899731084282467830108672792462177095078333610815745782716188898209811801279081508902388838108714216363580144183914579661693093023466665341340889326046620823166027000634649508567022826464813023047518559883879837967242435787003668748347675915982766127602856212166927833179905961639249776547284327722616467234272545157547378221956230010792827181932420991973885459202918781751071081583581648444773442692405738591346108813933756459245149364289213625249847481928487665146902554538013100391786447930385113803310006674471766847174043725872498674740678441801369690429503952558586641862076545211532246530943803382441286842628298149751668029199674762942885246502838468224272718785517540728464381099345002915907828598691804882827258644078846751738229778608084240880195465591659009678071526347745421860200685052743491807987884336219317005679203788445887125258630519256710914952837908079587402137248028190001658427306654412720846752500110758781742754538819960864436279310659594140355297495527916148756999215344007450226395168852121863566793259088814333170981200714727945474476000959433329319103768518873557462888455586157926196952982638736025904746272161324069256611846672341040804426711486559158251919208535895967332390763036867302332674184400673301285250163144447628259876981427768896552761374020144092993195047159622924630381888859172312283597073911485225034089492570958551586178772659774185538585703798640398226840437656149670849334002821531784846044350943726835171657993314644052582336763495447232555001882181163526110119459977099586580338832186438023304954201183879765220524452920074610607127052903616146798560046458905238972813736910545837885059534703129246957790808615075574708713859953795233118775830626529134844712193229442746410804932419024846094355668061550626650603435766024666698100163973452105455557818215587718814170829119660739077759351439015838712254478345688914835039300067797084590734987076200826371584726916757738845661789096460718338729348152890277182853787698028313361841793972206767970312613148252646511371863614576910430746076636666991444234674354626238278786994384988921793023170860407147998353601496792679490160320982205787354536969077869573965043163704726457402807973434556901277941735400201159863575040773125836277805858233279092142922804778174820092015608806718360257003603866574248931478115139007759253922917543613766472601528097398553839824960715783971638067465272357608105822621374504972763600459525970467424883548462958119732103687324241270658297056322612936690841479809060527863985130194879343814249153387470677978514356823768663741119164046651406149448737707364568370656038189791993315255973265122176953923966932758172093320524449493072779558354556517018703034534909997182212180284698948203093257185692349227209426295890045792321051984813026244400234033053862532972895409562973210037998072605402760077492150628047277968441187937975413679385027280432856186222341402746309173455123493967377952084704781439510166503820355272145981571588724184382075128730630689289611910561668784828393353658668476970037201302132637785623149552129351498035284069499035407993849480192508918385056862066381007159534113722527014090915917424298711887909316723730156842162941058329570421637076921688616825740055788585154356914269957584691358056136631484460182085906417796311281474210767699141865630031270857688899146743088864980598223845785510646036836948014323621415935000593960158390738267148162066326366110058666501504748231775995254515908522354989617144183790664826137691487107792811152316704692356238230618486942823005560250855541580989838538479298149859701430434630825006682905687639926680122879165898355438792699436171419161809130106412741391517926935534552752934013244612646312085077520641591421247477692699232996862557228399728840209878203741611142687927167636246597247582167613081917194916182532065778121446484592145776288730670086083864462488474430278674878530434572039866583317737245455548581227705438719929527143093211757082777175004481481351478173999757413933679284317825649502833933715630661416595358645493778002186679965634070136924919128744251465450913769153163782775598557376855985505721442836127253113312095443934629172917536957991427305819972096665342407538023076103112909881502582740090893901229725228277472542809052554627403146792946265510511368003436028537291813895706445291973710170243067560591325542996521257542008568438722328758212926408214184336040465414610629567186910721148672174404215304118216993151824050212580419430940040852111967562196866529641921584647717151997016017020977049613608100868161901561697132685301400892146818357120814169974770885137484376683648023768664404596260459539003619385136691666622122790093490424427297718692042798942394049894721292165103151661171932755911437501206369701552338657686544453617338786891192078819232621579474989900363586288312636899390826125545535412824394397396698759270923202060541428850124302151401065352659457212343160786704519390612720113163868067656838791483854226520021317349963889132987147507002844883749286198652856991054113578551308834635430483700276906391368738592850876856497917219909692536773772810932265140191861999371792120697414390709424514584960531345024436818320269406907964627718879974923790788917873472801798293851772317434267662868567390639838085778555202110240448507829293037474713778656820472925598953385385920342028022785999180221087316132485474481984573381816069360986737370362805674399394167265824720483974015380725047813551020392898081138986774780325691303678287451588950140098008727520639856720735112161009702002982432347988463834422969036944534402235061430946981467597261196985654750286854262882245533216924885261162432736896617696332542219457773495722668842090977578905386078063333725299458725636354418248112186264862823035688313272656469791194965178951832527103396913168190700035554633298440342350762303494655627308519782332197135394288201378103217133135481486179603062829617263971229813211781893377981960529403246605141364697782054167655120454924360641851646398172391455978898597732055136141656423129592380661273832598932592593391472325467460397495805562800517491737420318942654766852757247394869937813783452852101066509455542468726598505653067959968550333340018736561018333239026251453860618737212025716001659645902207626614039242754929673246653126843928441794159581939003473210401798063654072891304150074543113808070195572386488635931865844376789924823047078142036278253651883451396789970114197327201856599842155477870916216881923359439649622923605857211091037223107841835350916381721782482998496263331187159282244506588195177786229768324541263704146868826954947353106261893226666477562892936376762738350111647085633376985184735539747953576118129663076292368123319098538453861670014377420788698936556300874544473745249393159590501503840582596282641448402822810122694304122941128520474296066098442086993704269556012613078529499526499022257765341385146210411796923070995564385717205839423111491791873266810573627970324285932867483992108204833096049189683131396635889904134243532322588357496164503676459999758361447296218210502126744690028902640130049078599512447585147988264429968033283929382204894551750406750789089970279811371412409102097745480463559287291761195016890824645276141359991320203561777778910849434648729702371076361690704507677345834767080059802969867871280805672266194554065367976738348319028598923381606643424083847089755385135987372441709844307623110802858436140965859759979491317102812386585731521849057348173835121563731746599376618659814400980809544421174138007019529646289390004772266945038835394459509024668074341062167379711953882530828182900517501137596770401530172914682273156028239857134476517222513432536165046545939114987537735363030686006486943020120222075765191129067869031581413342482906806762530964855716561127797960730981811166898293340593958048733143095927022875408587922417781240925970472604420199730571003523926106093546456559814480882295858021549756234697484158382755633471316968117146000729708410572314949053053477743319818499324333021241480676454776683659908261244857689253698053845910810593959210042646908736266568880552655818982128385400473612415728462055208766021854139766359127923435735811049835706947955322629518986237626495727086332999196776560834706618473397310393322536664229501572744463176384732665727172454077391830394370419890857733905208813943117918171031217869177157949843809206882012235982933685336144634935690697814076828384912638741435037620240969514737874253532615111522304994408920346103843494994047590981866608788182241115480139492410874098001047926612198962989913177499269608525289275743974607753762900688246174045560396298270314805040863501388077168969850420715429712215846270532232159881380002664561095905695602991141906696441849021528186440336124929819863916078696903602761896038916763484183026644629326347135342502233132668293765567815471585399571268563028561661627954837674357793176635533280074339879503344226546224641789009975602423681956068056308621406487454194051492915815536261947574437653560764431601001266322222457129714937997811049047997311663380718102510324309878048495592044795142521277668559806310806432489957081058088528662288599202664684588206140929809058939095007313006911540205606621147299730464618271358406748173991321029513002123752995284997423641295358704230171133307548767185931735478870846985372474439580118832805742642651777155014963637912632456052615226188466946133394431851439596473637262788187718711328827038936611320575941394162403749720001004219272127739768542710010043350345613082750140814174046360248913231189707805579683914174395007838222946076401443355025784226886361275179630563912862466333026915814557310092696588456499668962221311419620745731608030448590539499862838979396599076188827161000700756883622615211389623435820328588765551230530348163740011222350136196821741891696271752487935693272034450063340278559511165067285909274933409594084510109630406033115076867976104148995952167961069613645001110594939456278905710618530814491922088961970902503304380277527872102066287456273694634274643020720281927802312948405239252741484927411821890402236488912933014065355418344845911862358383937073385157777750791797903214033161233526423282643613017043328481594562209383350511735968881334371724332299849987558015659742615234887612169531449397430195725750853988330928288664792792805144898809491435210750130312811782503784975124006610088188036669820676082908769491487803635487583604412009460461177746349505509382458195006288118769243130516538310282215072302459399703509137386393026827442822183985491858530914343446681193710037974665365457931124708738912313227055645211531030393207934596379687934718189028870823679493772299919746357704848770631796488367055950962061420143203067456027487204470497093305251137298009553968869651614665353650599551874217149899426301174673432076390763574887922676537275537769594224595730133326139974977401204199009847395111892878717806085374205416864977741022002740023014394638050511502975046683081999320909591233147659563116006439691570172654598054584635313052459082154269786952855298991574344143226546153483053248700602778573176249031365667504696644016857917231845515348926533217687956616668485182081220444471231460682335432098770659884449649315428817851235215424218107297228820982827099415297727138542188162399698378599568048933532078485062797160568723071895410789933086883063075284395131205123560813755294106644461665749706620335022389051583239064216397007115923770473048341795704991578926406383980545572928579859313920757268355757330812018556829577140232381978495106304151649810571300797143420885902869243568915638852245083354133179015617945047714482638464607147779674922910002627297376768321186122601714102405098333910624193812494430553476271702406021103886752694631443489581218559401187089374026821209621999608374346394348775368729202420740924855325323851629379724470767565817139514363511129612972393652589285855000187320279152663143483632386078804363823041981459700428582824945330528567595748924760005381900954934563988648271042444254538364374456149199229392535095928255716287478552806257080104654416404295197293360405733124220926841581830017295966957120836305323742387032519098822966330060821088659866789115868898040523710648387451291896026678959931979536107391900627813346856109943650416603635034479567527478238619631567359624572990545192495810673694230000735528341124360194468489386660417139105866965072837002284569202303585437207291084264132572178995244068151664263140505251142780196628550567382635698931610057651148642086702323537423449254467716669868522193572042392594762313795130732670368313295142448506835424939447798930409761538429654595908713044322813661838181682977456239117773849948053380466002241317482331807411565187852466406784096801689199734218893443244406419443371870949023856010040188459834385496843068390352584505036522737620315714351846807398288594408453156630025354459802495676994071033246227664083184000257379230193236984647418197460679913892035808023139963256868416121720228399019908820053253285503942876448173533459229767557207552739798184105294108244170098000190415944101345966882630691004408865980819674356319706299743057284630018279101291518836963551485405767884613036451124225975529065848410677434373957136931000617318577113069696742415583748468117330310214652871650898462527673154744190892177167896473526106782712886063399562567790679117433875266742058807774787155482389647813849080979669433534216604307603324736828490452695062631110770312276306290821479599311102365187114217827511798443493546161734890521636443972088779791982694584388817075316103923568187000647252692876182112792392775725000832474698237124876523770892884843661522322575881059151598396165672085306541442054749733524598916797580646594463666629872755611001173368816097138205462865154930155215145004859100972367832874012635584018986823604845008350032192367586467996230667040553722390684119703016513068182515015433358198817669033157690049451495446629919177757621370539507528087734954886131453130096217915744378310031350974329894680952129469514653986352195794452341823313403277817871181557050645271940879649437887776760379746726324847480076547989652071213992862713961906174103706738966921785858659999062335348515107451021007233969915596287021524761701951892880133006464716380952138063973156880486691532371869106136058913023820011285902862123630990627969469804431042071435236535046997363155356800933955537364453200483393204805756564507392791675614234066490549347725769566250110438088016490604058911275931462463642685040277663721319290748766228161304772716343576867883636084635763104847797641019190457286420173345557500898392544292471132564948253407514187144331864777256054681770290448840365288846517410983279563567217784538036491772181838537095200037173706232588611868395014782677915303716543594999938203585163464552481613133849334414302103790659605458952299704847349847344527525451411542955813285403010102538502397382106686851261042144562286376989901508634373827229956841713712055289131157958117961374501412654035366078033339030037647744260928275990100040141563854537391475556353979995862516306069829814650430827347280305787024615591903024166125521887169930155474291614634117445130293463187272769900304068110333599320089832178165268969814024811051622316958148412063740078987408858565610965085683523253301942150385190495785708134325195753484508425428719831571810849966628026042645647949203463212194592529525592926642650614564347635643105523104477600766128348909264144240288336879631063848974211323704916833029424554640568097118216437942472093250764566513093396894863118058135843940161584924619678486109259285198253069799180846266927987360996829435816178611853147820841315226831672906264864155762851538970775610176692439930275979694879106947585942771659292699262729539765049289731332949714430977621468384513491021156137940620585638265379659298721301720186909486631280312578298495626170120289910927462174151425799572568303452117652510113824077880471997354039238558085744651700627324311444270507028329930254339657508427801963396946908247670418149220826901678390760906812539343172589266677409520638606924708573700733638114823753854791600630939928844148132800703617188735194290590572869093467235786803871158573164180716788758081487678374407245892091267872910846068133226780749359943735613846342614724210195617620218144045365271553938104047501936042670770260906751830517840982572594093640101188723035124755874010903016001575849753724955593680559416840878323500934037334917144398648287864687037186361003523883966687920731289423090018558610938798440979442224574950463414281230716370297602921729217998378755909536451565632039669781227216595388718707395134021162450771752681653084617407797579054093333133572189650161359372258919690302338133206395418598692614112841042949353459675266350347893702640597228709273422600876174238676263246920862941092235223626929954445541522504213086029181149305269247196684497647208030549505645967287444465419748822521395591687162317459372888891708602781034650539382626557449427640656979665078788850614107536485679589512276453737830156994791110398609296987988001727202914259772597678761683077533390176370772190111645850844638973460043468582332015270415075925326906763201505337466607433775989286118964610624203652173101494285135789263979709721236083952597432185961366742378413315464628917628705037637040170712792339645449906448092769835801113493448449657291912184558357885728304568407941560258834454970105262640246558132109389236831676557379411724785240642434036566960228916225749100617892997441792065284780391743448467654883816105746534875438093374745120307708864010239979418848743487617955466255379425778736444130968227488087349150691925507142786139444990962636750027120274021604298383511363501499123404570954567955541279967953465632484461680304050361755097307248054685935102674875880456290270035830385947405683069138958185896564072439016947271509876309427257662920048404139290733922377668507501875811037204733388138129758251640725921956576851046629274848330840278497375915708160629641630357683557923537010728639619855707915646444925846911057229672459437267088760136313942641753281947130744781562472067459360744704838657111043455446815141679508033372026395736128701210780462733170899615918965785624107552348460950956296649148434376831796399554787426519584799523423244118859492403951996578594387418771554094277133311148498041126896239239758580029931575615693181820466824847917589896115433798831263522717806618093032068434535886384132594789079710781238987871032669033275280388445114922092464243336244337230802316281737228616877285496865242882842415062919399004982739459387710228154554079897221278930581279561887698227020818068144775218396703073112232192069794627191223285379325951334193495011000281824631423324120019695924731513222127951989599602009685952140900600381539976130432550330118408914777520120291463660272071300977564272755295000081775562642924948667068906989683568155201994780842959315717645008679717757655332410123215941227210819313217658925645793007236551212208881657088070345514380152103475951291332095042963362687360773744807366879802278908320425451050789183410370588417440587186486362875582766569738734377618223084087536148531898703130978081468743944014230119465876679216908712241259353857536021414288874357838507706320469491949055593450714789256970021907325196931645225245437257800070457300092889059056370432459742916716800899044190609230670408090181158357668732160726660738907079200315399639722077504170053076687042561142849672426776881330578947727001012821880278492397092925556643251571277741562852787850777914470976787016704780654634165870952263255992144286862236848548691073353796667970596548395277640058808169954077776574580504340072483061590701425341840019031990632313541991333461428741260657400778292812529309149777163117963338075363716701510220551892922555686717989172957502427814955750731131685548496078732912352407808975970433854786368830675874230685237582737320563742610518087427111132343372908106838535397437504585259284099431905198581870449194062795277283954189053373688475554339298341983446214436469849240876617916064760781281762511634823405337064031355815882845092008647600703194278245063858359852064075813917838947382170812222107681373097248249072233162721927416043387365398180812784487286192580831101748520220602204512738883282258396318895881240933102758683555863933760716314262924516935509065764458843964232939249911625656550092002683480058277969473274291210888301455305274757779829196661636480474582195371493045444673707239732804272481979208919037798070478414229639928567560157587444064516152424361365854312857602497875409353744034400452424229033897088804468009055215397819683018520544835109854757622637180359769446148403153163345804507756412694341674046761843461127500646459855470926032675350748700523368235039044201321591629179356643028498643384430416472544239944757683807524674518117087714896763523655265095226465904084561926667824266823109720349750135112351338497895707130805659522875913267628073074009459847389225412046555834091660686108647530363866195014664231022038955422387486286170256107923662615819314466010570389077051545910987221066731170940506175992961370462848682689540902921477363500357689958914803161567637437837182309443640548977666414085005104903293040211213485346886723165574946936746305150325139489102271425811367742615766179314464802097510211634131878764469083797940586377994006185356135228559434167624132857522728836695002989325806458575289367999666166674980753687236810572148680917066428350490637645796715779716917774797141324422296812621511816221923358472967768686368995911527913732845267011230094388312587578328267364325148216269633846103323965096403808748709031180857039107179306540377133810680804846159832594062009479190671396585003128834622156494620761582661634003593733908993582076341270556940690172373877480968688369259851859405952082078221625165983013850485941516244694768445343193341963222529551548254180921753017042076491085339929411330432876133355350150025019123722305704744059016676139530500496051921097648254675197539934786782893029534996514931964108739180913172703347101671815038572091665760018136154104812985318083029235448418507204569576771452657145706350924349489250715285806805032133098870346294348854019736771797928514002020313764166805122081272864005380724073336651729209081994566860758049848120259250652485824379552422699646554470222040824680106075363849500612451040855920782750819220178358524170851663287163449855455936882925118750443173699389883692954985524958763316080290521196178337016291282886769672263672681332667040182375928764026730140879342942779648319703779427731337468486354372915690356338050752074151722534473479767467269058921258690986988701197164434939385295597974188575170036993293424786696746760732606702131220507833478318111380734727124507512204232248058817877556913514683075567963561680009425969537076854272477202494633523882276508547161062282115339988256527078602360596005489469051848555210563678073916296704818480119621725056969978160020961292982423145527225615802313219051962544398647114484423285117272768538385583076734670912259940703795314013317118661672426292089691501279419058190432142864268911549630576010749249392837005908439646846075745323005171337077329463007513970820685759920203997437335731160862674605722751740205527350881107927286087855298036406420248537700130030944756877374396551440713335307836535791346460902556795470670574463671826988203826592687931868971556465274668310343376213562276435934933240836014012822583345489323580759517300216030621501755194420661847318327177134492712488351167200252236655275627784646777855131842578477140597474045179072411104814546566789256495321025909340018676446973083043898154292400974849094412234043655908323782520555883620229220466618180107569697397684991972809831855122289029060381906915849915776227588446916773580300170763771453856448094389634558244895014425405128931682883361221575525178427745294401265657767943205944540416613332406731353442164390774083081504231803483200928176476296415285629637957178174302652582284765308194566870338427721331917348779278138069883040776795302292724196448751207680270038856834888513459890232087901394632942873171291089324214544209339722059032598721808258500252966313818685622988407989801845088005394828312246254364536634795087973519549133569425201751377223826518635915597854002490142500745611325672987904434035574023132133844990814472015279516071191029158662777179653562729306638714361298868778781710521022385374639773072467032335166899836399839183172246753587984385595525764724862788674237959297414126075386212147732579171014792174134434467314528880653794605970602386054159422339656586923920179305178414518637740659796564725794998576284115396099832309235831707777843474930803169345048380091845949805534424480579721558588009378475518192968675496104273998777764677265979156402705161889228662754964398418826275572917894998880424082405238483812323042433771432571023603800994722637966519346032977873414726766043550159910331449713526182046542419444766506638644017665609138728674601786424930938324346931823422303982609401663616230462952679791036358442698487892252473333175778410603357067932000979225125604883067098121912353167876697563393668249002819302420339219654032064189579146588225096738687883410123335443536492661763551925608721873798071557063892635105099855027622019926190218462962937805449579506249242698366798221218356243932171511956344799932733601768400012434271807740127627229881815880932972696639472370527456539687368038650742493103800396051358446778975021217685427746112971632385646066799567766588801858904551626266283838763309207079893292753085423918316152970846245520767066594806826457386694476085448469789797666484653440775769698992542384675851248208820404881927170387991321375866696808249533329341659171955521600100363945728243661266152183006799303488036939329676132937734672530154108705794417164585033522741030394300675747873001555546279201920017806171497993585177853121615569280146236358622266325355293714459158924024727537345759712605199937278667855547269279657284377007908975447272292591367941174875620753573301219732058656014129711469098949812793700959300811277332455760366161102487753438320643119357509375001456543980032734274053266698797018084580734757086296599352936006324666748397137814075229845703532680941278609851332899089795347886034081515028099896937813274871638457230579512608953542676750763754393564445159707790577880904122775041543291826054759155940940658085814836852556961810575039683850433211931140584374482462748732147423812997616138468793794342002855026024182614972980016179240527785108471781678388341073016498440335281745168245901134107628600075919764622263189925263755643496745910051481813441714969268013252607786662430390519277437451039994413104740583456708829797493091398612834495985234580908595032112778530362091649311916942957609195785581505659276657226397849206018511115040038122083529820339144985936871289400184134448287753539434698162015557226426390184510385572558340541865004661640749914857731272485277049317571886106939097604297210218870631095812463171954346640090455356441688364140368288382036791656230620812032542033798089302174491847066233123148265935151555140802737543782625812570320253652885748715164176468772343085061188501664176558005257071834054959889658619622465521200585746818027177041241318009583390898899424649130609272036482602185462455478142616869820796656135902514396351171524782259638783918356866108774806336441720008393143360845491620297214974051146110446353707776104264614556230209919453221216159516646927512285617396817159218554314033291542302334893349488829000059658038493813797715323892209386369147935083623138363415792297191047872739643711739719503096727747282429486360378999595243784993039729480765513043576163287578466926676604223213478256303697491366493712824162788020986275299807859110612929769992262183517327253435189120573330660517961923690352172275707111330679149781073506210587117084411122365822503172148807511248065877777668428321560010395926640931353560336758889757794119815235574527565611794358708593064216902445033123931787831576230165744399449116676141200882506864412025541302852419007202460169771697008315444267735878898136325563484622553373098503211291289798316781446640844299726001630972308434927741572160248628667296921546891127099667781976643562829896126611730225011973403641735903844876417692662357021373818486980736302827285276358235932557201516131028116084782904662727750477770777531567016330326748781756861193459180295748470332729609377873363807158009912601329475034651377467554932249079588220214797293381112511290267399103830756593735898206670489301788522654313720712576310529962694981804864881036697573570469163285452963862201579986072983766976279182851223263912907479330393817265202035712178636212934667935563491440233066694120543899953998156031935427633474483628597481961088558946558769423537470849726523547383480335663524098148031958334674181584227448561168765430950019979143481217092343582152067389301967815218540898952259710315561029808736237612171793215256605734671507031810283933016279153455120561576409458915945480284698697754236513643308842917170113257523788328493904543970932554291544397200624227954607447176438457461815129955608659745963906425810158718271640641180783737988128414975046015650144572971824791180303236992706354217413651908661912854737263187776708708639783920926014022257853956812846979797394952465110346922336098751166605641169544690221359968979840165462176343931722670610397839676425789632387116520796671986271393660286427379285959369291375000777328725525781521886810557065645760428359450812666451468538057938625367266396334395772658079526279086368867363539572315462086343136759150061866047380908239621095715110318807879796167553836415926757333155276123246374705506936341192335332776047663287914130953848079920970243176372517233460208133959396638558187636624550594022879437845655417443430263348520552148345267221674029643800393993333443335694044913207688195607680570139230881568874936061172838357036892811817277126199268371545851872393821160586964330790106778197296980164359807048602074850118319036218071205400011480418658700562444877526641090157843241138525173903602361234868360295307889706149158336038040411662460951425098795503074125008434550588780222537907088321974078541982013659260332752050404158693913507511857117288154756581429934961853029842421347728432069909252404321269030418354134867301783698795882336194135649487748323524037428377034147145080252700869407295522419095672269847148007182395181643908537155867115788416542612765769694327508232257298825716321825372130779039356574868802698225533301785367037685248241311833564934093577539117582874853477089845244243632533421625533968316818372350055564216302557337611458352077716504599109849105044472304885629412166569487981400960952511285918613284798228139698104861262090597468180825916368529624827190630539541516819753895006848102054876570065928525237475938184674565053872621976871276653309023041358945857806155472794430022422673600109068545483841789638389543586647645888728054183487129237087911032788124213743461692394976456871206070290871698413267688055113529977035640189814890415592669486961743289484735370764707756712806893203229468721664786965070613905350843242390622911129846314667113986946059766509914491256629469591098184499512336676787771070349289557094502267293608218482725985608950182994948188052875523486284172604438390179284136990568933340383798436018180399170363452107632210261775242354257055370872637102618355162710034637856138322263495821015922256692460069191819739021780568892536596974616078258549836662047586528845708402774027227261825713564169937533841162811796863888386194713896483774310747420477604069587974965866669986670837803478553239497983035750539321614808771946105123054464564618545190460056771514704685578349881912875190013586214286161874989394220477423489369816095788703906140103139196330998002645618724770050528165427772493030007390805946938539756500095041740840361351946153846234270650227125613107361646572465538565771453952079238751996318818842024625520126133168245826329304668416635819371802468996799795069663955149918209379388207306678887904230226629201961870419071090998756886782668631444115092877635675017058987605135481714403130106434540571612849611471354620451368225340222887108689884736562145174437014191580404136227712172436673523601347928253362741800227660468860580831176799555972488934477066158363705046091747901437741928193618273241738823235754621001613347400221644031057009666092486642156302119280609937780848758342290690640435422412863789502372990430974434744679291927041835008870436571601827535720154705683329442855648366047074428330254525510631936335797049313771874228656855654351793104260774129154431449638337145201935773828218104515936988576305576783841406199453352802916166603848485549549977744981988909519450529709745524700883546073188948257389069180751457937213537796530226253943495690633740525138979866800914308509523951388247563978002590631820368063456009117701869741716258358280698727054909623064057645747063199340806195154988457503323330522832568218768272635735642235271827617701838031669546037019432616808598594084754285165181100400629851732617058093721653472079439739498353190112833846001966890730598883182429438904959761259666862308618534419194442543208435230275348767726313877588013568690570617541149882861911159831520828468072116219371744299832397084969896835271847059059596945516644817931984931543113084998422771410895014943212237388498698815712066908832807546747648076622624381016633269700467240579065547809463018458176948597891915534378532544837264462019757900322377079034111672539415032258086687098054651428096869220161032752036660795843410553581158652411182633899202224679710097375603197826079635960042650742143132087037527167784593290982315711372719308593240906698383261497756216917889602576246487701664218380551066936245737686335500603907037554500494458450129279261019572502783709726410439383914340899960604089530753201768574108675453860498375184014047667445307807988116787862648196558600098290919899463659458677513363450824332472327878545421460234670436711704140103661106510551497382697304939683292548465942039134514674316666697907517191299692984909693388551557626101507090643994037392878440679141637422010669087469832625015413186666201403058199100757634015097043106008110648743808412888834340742407967973092199080925683180312100048598636251427126834623160500966096818931552529377303692112510352919870324390289176088893953117717846473734247042198702272713044568754497536719591905641068058394426739294432453754779142658549295384467773967508914882482065326605369905757250555241394332869757692241257341384695875950818035839526499373933758200891813571109541318113990741403703157425278644946459621076218718877146200335672393708805186850654731060307908536786622374307905322189252216170200113852850551086322092226500458571279692201037607874520650050073483316091980261225185687871377899654026102251514330330934163766741881772344596283304111447100738262501499622927180862909327635960016510552303975563899652519401165683521820306242720874493542174994340446127552266204288341680804994617246360936971412595483478918662713371170540387983079125304926477892036723431111189193337511289174913593718303156082508846901273807148424691744967886235497838385374895846789234784813337471947483023123736535640065295312684004415360397163645735560533316794309004772017876921313566441347902468943351805774953271888174365855393151005083735190909806708959053742793540563664848336827298009675302258937957603687874673715959944809830345379617075461988779563324966354955537302927280610667114331323970289625967055365360017929597636534005273451959684398689672207105221182690582171757233761449838196046556486465122750779144574189469057322346112946288859056116113766312461449501139662709976414631278812172880283518954634318128000265515086931700845517608141367664415186684977312901980891737379322053052892764045585199857866289090334570070883834715504112176645775618607430355005234294886866478780164755596521979225843842254174608688754601361666066821153756680813950135298355602579330081319312191186408544290632429651684562572144542083092488747011060596098825190866789251004510903988994082964470246669066004355397435922719053887971187794975744665157173191114103074464145030756365561510905746903400289351206267660297573174512863752269279170457202946426727182589115649975039215977699501056061598123022980877156255098709957776572846061781723852788348082127300410288005400308370746178460743309845771775201348812949909182497942103653551970942506804848898795321853694831888129593564083393587492354364526499810534906003230669515370686578246883215357462816072658078479777564036779619486464237468523565434301875079861139199620198737800267528582154474867906622887873610191257385030634488950052313238169853666275674837133376077152407856056791195989450957326848936280508861228560232204698544464964656248680480714410591664074146691889787882107786774290246238080730431155651848310110563938159667882963874711546684451394368678111214716433048218785660364436976795110263780393250890897196503313826892208424473469142550913132559520715149023464112292493845124871847832793283853347129598979607856278924602601286584928516044103992952824228027853743666067176280373302760852456334341666857387882303800935072775623552888614332300373989210267300420923379647406578325407719636194966986535386000327155386207695219983642400806140686925029734981552047040356773729669800757966408831038720245042027347368431244604015180468660361623390087931986852220938851801010443577415566162769549822117473016566780016949976863671489061045561924601652946183706862926859558416270175976926156205136052289455331770421677330504716014199307823995690717806349436271810404903825990304432204171863422090731640611185199018886432739610781746292320016102470468283873399991692785994994100833456433786773492198057336712152891790671260901400917708575557485848265302787771551060632917554551889008532840285915721189911298361915740793839950073333965677555510595825140136820309494839646030450182198901542068105387958712923900867516353498337007821370486571749632900394165558017172080333161284249667188889411529737943116853684021062824224630191535320751103600016693526194624210915462153957990721242122688045409726970242425432341865943222381600875395067772632091005254361538492655715832428007616401699108100680350278984931402975927665328080776598167827430282133178508794477227352930042180943621494228949974836755667032250571068493246968066121549497777897824028239306459689696442209841148403485405595865330633444340696643101232121738641110871341052488938526498457938812841260162998611468707601797665772164762913772059836837663898398530065896373298892824662316929589606387204583236669232018985570402398229607440413873004176782597636579855667329104585017412177334063843478244308944860230029341596664913696472317420887040446991913445447731120551910462250885692945858132416137640645547070223208253512678239018216068442892782878164474247631900541276593249476774722855562834981892154649269365689731793655848975823876758721678630325662295014552838887210423729643997937902534611124874631887234275293433312491303938814445668393714781126030224613813053974241503523672844342269201121514899307851266885206373184807695916184226577282017174993524938409540395872311324062917344668937376136121104287607290646844030005382754044660053606136015226210803293112932048823189339020255584579115510725090664633136867162378879180162073290811423960031282269735696606017511493810955270965220207079846869318760888976006948354255561464214028112651768731524797380105589546056262701018458741619256090743174460276025077000376541626853156880626421008877194494312053570655486727271074581663958681115456296623629173369788465735804694506501916066315433254200983943531474551853720398280027794617744007129055342149804877796770778949769265659974561159384861222164272494741575074907178512720602469544400165019681885050122612552844164859110619105437271734475609095162071374361557216903250279386908615424437345943060315365971853033515890644929520456235337483569749686556862752220295212484611930255578526756484179162844464191908602296311608036896135418972967952085768027879419972381459745132813928114396568938359244013223461119828984683760929137841179359735473496945413016914711505132420531366055489198308439499974111614838848464814007610443669503321908833512031610696044820659188409142945951038220355706404207714364587545588221127063841342591449282619376866058983708819680985564380421038107609195434787309967991856462858668143325899160244333819237720527703593117814476653003076110705300872548825395416255787923772719777234863795422750940841465609834227966451473865265249682348948691724749113462518089421559808980377668126632372540505932196124454341309619842645181672216533690968079119631835884851105567330197642819511169125478696282740091773765779936530605555020142678812048876144574760935952157416646420908771354175849069029585313966054603002841100578705010382418463781618777814768470608659668929624362228504101944818836241414149309409071279062065083760457116257913308548101556745260864776597095048897886937045589507165985097357973910182185893670780253827607142470387475527866814066387918097000063700937703163465495367834027738674118129639231390547591319298783166071255319961762944098760016844011841594757805583895145129491677298893496632867828362055200861366621716591150407133665379878223566754419197675025235372648760727925817333987215813559492938593096798834152174196951509445678464033603814543900371371212209624024246766135783689763463068552895325424715645614551522735881834252336635795506134394404668304927745790062787383133752275393918182088652749196029902242101001930681629582274958542899714236746970079992619511190071677387846969902291747332822071181110143592478364752019161952169163497298027112244063010583713609401342657519881200705934494753077240841150556619533870643531665576764010191302098455022265472762652593467496244476645002699917707701378784537446293649382117517917484431607623220359180341813887689785947841319647816829663840509704299632401030401322919414123675542333479764755130576212226503792926510159453484750519302936245871031283724752898648609327851665707158781564006448822574988085168836738345578001396190492558828789205522904068492275891645436552748817584461134794126662100047042665557616183664945323594736269720240438991448719257601128339479339180035433850753626097842449562593966878772904781376111816286141154249690703998345644670989911156183227182056582000645523379362388291990207970046254254309802900311667680368624167952756428294790593506761203719815295052010174783859236778301601554843019057092291934162842228623289005916310127150303941984069056819645632959453522675667873955941772264445285406863621042988249075772153470961552873096898656611647281591969731333371724127070055551721442251107335426935954658409909328792634496366279795370157171991880708640376877507282856574903067159000662753510180934791423980995794136610253840145511203091637439814020477298417518976806705614472163116245215444053471975253846186318979059560346359996425933338746618006067218804333438822720730178063852235803428146606332852823300359469421473660730795440984680250250961614408210936688640913066933601525850674893440903872817420276059935638536074126103156463654394192406477902282380424742237690774103478217842884840611125132599139938111514365992012365983446860216114476513465554806550657079026547266727356069811376230234381387019919187296728716416127374194401283257512383918602638898114236013126935820835372080817694169784531276614000428034634286537410651969470055365693620384057593157235315460690163839960577598834261837570979649890346346393509178008535602626333536759255926635821488370979870331508497547937056844570220007423456576275800991950289448196501230067788519872732772245673163382353558569963027248940850998559283926920863264277290730852787290079409636000608809851456081066773836768423552419663376143017159799052167555171540507631607689575271318051925015405425371565204914591246584704448375651825540910173635238615568688965230362368129324508264645429715207512244642970862314290863429323909168535729921917657940564295291733055215895000767622862307020582858324740582210947868497449441290666432891842038449569524362044416912628792061595864370491324123230990157604788384938453501976564199967607234564198901219918068561847558966003652896418282371544379853129793579823651765506799391047809036943698672227169568396227683806830192501543774334378052785336380178969780803927686824370890971358888306021205199792797827401445200167328395829473711756515074506495075879457417927429896998112536216783919907413625676139963808384208433229113118001591894005136733489785100955105124957320571521131152528333207679753199754584191922257063217049268923045109924879008802979105935416189673494789246778276926950044006969203021866969153246755252973039696825272091263097249481994900970885044136466144078128118450959091162945617243151420728374983079693510626918166918923245979527846148149559651859671654008787533333339429899297043152623158263011020100122949628943817231745075209992343647667822530745051944337961217478972994866472315208271394996352616702972232503429300589507264611834242932316353524779581622654835019073675197271340778246959272841641064189438140930184097460039141915238556374940299360178217587046268636738402062132444479298055368335799169308287890547128025516544063054954465548130838519382559761016655832392268932112597694957802443550937185216570385611097913582925222784432626115800234128393146705688558059212966621629129578379841173417656211770814420727984928979533384985058028717313655914536134471841451410187381973345949302201973671650223446385536829809334278794849121933877958884466245317624251807677629852285077276806934111765870091210866279108819321617758212651339869167239126839421751251342817874704383490622032181697796953280663738403013781574945383001631698462286445695861439241640854865579324491066528290380307589075998678640655174779073126267607525647324101023010939496257545679159333821056818896313273184701869212440082644594184968195140519169692358462363029553500518210027687105216122777304696377427146376544774078010058368636938916899321384338833573426899566728194502190061535556876525240924646116922904878515175773849261480721281189900718748481278984017215615320836364548043993428846066506929336573045757538630577808703328635187290265252372399865527734963125568253379978385870326094900238178024707808466801393824104127288340842802068304454015879542615089297201089906317174874196960534612676871921647539349808903962671572714527026897503179428228555570347042464851206415606038329892991411183514585998136260668146456362640896813192079188530032259196480673622223164371053518610707437171163664930315357886432129837758499859959287905034431655973210755618178256133041682894232952215462402467846803596921789688541678256175008605423657226527956764895993812208021053421676200552008327950837822374265578569833034221810917263983894181688829789909056078249116531462498003357898206714210093888922848734760451050728609823839661598120930808927136321818463062703478583319118935650898533920382798681376765663737266120265704033974683783487979238178824899112536331127054596439630361035517482865271858165744906413584196087332448024928578349355396274604545513840694913063344416855352422162479081736498110029444850980754622683624758570321161457908772017919382609793618053351168734105404633197678633148065402236746689980687193837434720964929397249028777511431413922514661316519464335235577694678273984054945876241608395711032849346265700359309018139834360284449080702925730819308944503289134776390430578688785378341660994803878906997054824468951941054184095725936852113694596578757990209074123925702259963712233859649430331250941555991518670419615823566796552338343502873518991412007752221914055750085988287884492559607618971066670919347295087765762851773272281103412347818825036055435339819221319628959832934925175251239045983658028705375502650860322574521607324719079448499183995566595135594786366354671276178619136527351979941139375319256833567293801581508044305825321980706427742039866986145183097179714525641960070569848129379495109714218887276288099528332998807231574937075390214901140622158430787411094864047157767792060367205199387302014776423904068180162170715649495813858635985083583720643506431488979785581771182465069993650323460432198610771033964580191832648028386925152059679381919483107944460541480090999304149679450630622884036362214477815180594471069388802346842175839527148763718971008727283672819265395957135011616740304997587488071700519026662814310090491699367131012337674659544185460931668776567005782180234163775702280189669829892284393973667598797286414219288344840593633022633250339724150912047005562436068315695185782123609042479676535016969505967919952932331649920921137563462580726367643787235680538307804302566628250359305953477428379492274584422888334674769992133709919860708585015678257128658623542915698355670561367696674777275718202570992980986611190953605447320616310948692646829951785917687617883068298366893034887489285390481003075487833250367425594258145507794198949790487830289641557240432292130594475767565617871849031026387310380919820908257008112201848350766050401144698221277680968280272149770657015452437054908140556044605298105822270127541481332501010197345330340400289673881224772569107993996742363648672074219310895714995192397441286448131124274276280483998855287247049391917492914036709611565984197724630064639911766893624234111282267599505383698721276885583397523031695820314049377546120434855664915643730364191826358041683919025388797834317689701188992856422650412583192823762382010248108452520810272757157442473473890428512372187069747029511077180382809771219117161019374476692602572085368732830757467601857738283639594418670387057126166800998014317109249133120972025848185815668051611973293228101144947241617731597525969618569739399035045593600926849065181572853559940037835667205269903797580834057980873024115695712414619701180708762834952750124707064196072648778438237830309011281825597988817968751242560332403689524199667894454342178344709649641949297499933415083701954461705830893668937049627185425825055011413364043869454751618612463576212615060691640628739152828221375139510858153367861413986198298942181867768176607435234701206172631071935188245554408577186942759314756449625996896646082405395728519454368684672860046950228365467003138540095709504682985512176235524749757416561433335682248507324422548404535506078006901687151643018945052996218851951763884776781539487096089762678666001332504842090537125712636289157636080988496967401088148148237467907322386861567772469641589522351783555659611736929273171547688823848251420988358511297939524541629274809792862238553132899740645432061533052181422046179571838389692049893651370709545119668093417742812109796242217016540733813213613963713294800993196787779188017243551440323420672375713226883241088761948881178009284384371569083741973652040959203027685553444492393365453138984085882724846104265606670079842258000193886464506520930203017855026833375959539877206321511332537040793083917257762065150775283640493353587480544819754419322834599255109947200697782750599697027034119220682085478626430378870344036532920373845612286221841991411796445742470301232547088165193332714460886604161671288929340779875917432217489178576200495732917332155129011121367073147085595909325854272441520593532605179141663203203541371565359928060007824147483607719778123209950821580953656517721746357476523935889895915698904542610154655878571827506150145691758133447687696026144960154827750550440929732484746626608957846346679459890741197545178010246696418242096360749688114056351416627027158085489702654767725854452773390820662505047110367914612985905992605729363962703237234271285961722335399359478660438584308174699172632998720855297945828378737946376936691964204499522132052377037978429959801840141858515555803710338123682628105849054714655271657316300005839652647241639227888136971720816892963424582849443248398029228357621209532171862704865937644486115497704886140399680552209520117556434645443330763239952086329277683009050199360670078045914785143289335340002200691454760927919090127034802273305926318172168673291610163652987766099350165043091052945381793272240773316089081520329847274504314674838021321128661427002659989912287049475982340455703998148657934703509204745412447872909667491285084635910140802118741664500784124199983672090116689377431848391937709404591052393816046035978943504846910454296430216680400142961515159515289166410048969705513143560552666208932841990130987660583575312546954130112005254776030325885510185435009087531722741242501599003996065627808553092572989830468901560565708103206404293425023469828186032681926796515519096262906352056678724759139506232961671404546778931585975816786016205563983608987908227581574449412353941046549462579602006285272309275845421248525044468499687562297515271619921759564927746469079928245833722746179869075300127688471782033413882485099089938328630868987512368862013437032395498243199454294415308151888157497162209512265663657754446638091384972915845556343775091359266878112414200176451708351766759630317214518553669528916195629658811242515732438075047047189032951519602671663285768810106391210669728152323825343027448485702782040642142031246217619350702486396388713280917039796934601639064975613958779917995621937933204340218834393177839672042702782582902948845590499552757056737986236874671979525417838841125465117925402716167091781703115917092325256611208160848921362779745284975691815098784320101627120473054681494752082851326312116984175555149107487787077630288937771772889640288729865821918845309550515964169285844250555502787198416969445395779926997801678087282949698564520961742427573896710153798665860025001972271595384595944326374336630635678316049090753376373252311897784010500429812074276686086752782037475542589265894054467772585801454268042118835356226665233583446855636528990523255911651315608461520517414849183381664661463536433052744296250938045730310137319634243062757956362412655552797648379372151521313170084809528597628200291441010936707811647144728767378053719111432562132791059090234113253178445459890035838603371388112723117785787635112801761993205613426192181966783397000752614472258474651257931163688220517483170436629673943928696966566250725139860119800754679854214751320331360976537246286402718731725203261438155104869674170371620048234161308398702029317224622050414338512784315403640109187920658203375550644345059239625950119070537971189090457916983289241852141408828970185754525095371178398305571955178423509296383890643595616012287031869908831658105119929147647900385932303586800865241103186268896253435702560972737431099118756833400018665679764744044809158707280188001550890178161142638969930311661402411985196232634688162173374863798537068036899195080295687731111135789535320192642603293792282368750168206666207069061021838089169424062404955312457066636552573677868721468007431176014146932509395125294117302151042257684198813636974742917223010783578067838320230904066040813887401423224318615132020483780223615217898984421430999258340528873402397394950824961594334532187299368189068869687847470156357536485268447572443289017537018108051085547996269686636005068393590926132305617407977172705267666503621390715859435384754383304655726361097311271321766194543058420411121033428359557709084268722869764601724706231930619953127782847537439256523733906165455017020628225324328169907506124402535225624337348995415298104521519286865397221863328440874374315161805254855904491010810368220817303578174613663666128147128909082901756920156738686375679225298104212732421466713976892027492964416367752613354643608864413721783171738740006936444997896140040745936398759292168758617693285270290219159137314004871837908859023777444780386375784242860233679441691998051746819772836212121884236110332684186002385436942532182596197390541000150839923231212784079341327615778138571975964478036193740089776610208438165981472930808553567705332200523740121679918725173110449881279882619916507713068101102525337317119573125126261838000578594343952533826438356882978765907715646972155700149803240448849572272092412953452119906475352777650674692469284370977682571871218666500051549201561345351297349698390571899080661900778630765122329015463934372008636270976294896267866511382024140873155723950669104780236157890735857610577271838522620161063736942403900968416573127507252721851654745756244589369793831824641998907317412375203080341146913707599505591575410747804061785064295724711930645236472674703791096533867484830171079457809203615549356430637307117071848976611243134323576610851451602184886008739474475011630160462846452498642911899664754219539570781063464779936955306772634290225699758517639015884720253037218892243593222997385235666008228500739325990800194812988500769336429184102133290363753204815177276870502447230253560176356200707865450758117878199102471643944173256144896457274972162724131074631486299229751902253343318060366951642377592583777449769736857196272152451140262869557740565829944896386419269165729572247216127601125411910321530117549085676648633617150842982937744030453105164872929298728231628685020491726125472379054758257490409031122090763524626318316936852249119505700699809453646671443321819259036198227369663652983370161231092955540593498358854299157495075067003551826032614685346637455257408769393953360482005962530108054024794237000073036472960869302888287475191923363430172310593878877796305246637452409292387244074664648760484554668443689277352568479140292766321851973143698524280145244892818048973627630266318141061894561396636536340046274136538998841909136383196678504847723413918251776530701426471283776014643092585300659212499073222172409314282116242729617587239587901217076809709498107944551093729032155926781953408652900831509358146236556368353082548822230243798341794172101302826722695174209915732085602868583509027504970931022657594543861324147710086340621793031491526990791076219767000190084051522480221237325274841519689533609235420183195702105287769250508502247023539731193660870750829808796836372905875840564580243676952576717173170930227782403843527674977793925635587691770211455457020125898795249001724810789305523190269381652121918229619340847016539361898017805936399209885750974287614982689008178419770159479640375842476891674835316235858499873343962694265399284942904851376309105638982905817399557375539126408091837753665038425933592187499632241675154794964441256744704897211646509072735856808290720901426090128049272832904405124819146579820975193850380802179288734650979021797389110100831533310460606926771060931895787993451820043112808910955164150557388854496767630632341882399518298932162562723054070002981990070161675012298479268178984573145614227856097266675348079951677474547921317875910674003095166029270551582458982504594792570048797433948849797139941180406244800370127904258732820424832558084357711614095859468155763858458558925312076536653870184800439765009846709922535874091434076625728094411160924895250174382433531951560987480682971755566146925790313236863211809171899194436578121502132255384055554792136835889503997656968286763334941120763904087204814716106028557635329968199515609260814589319504423784064707410126242832463580670691169493795645327645731213494847636849073839126742230774775590465526756556632337252629476715628816679460846097695840722845287044405524806791398434036919267413728815009805999186981542628198843023854575591507214516199681102690766336451058709882820077681994037801397403242426465531333103259757484583452272496238013785554615663151742954253957448461905023264063932282240725185594805082070178866311355557849191245895312759260044923897560929889033618798501870650917770599276188071105369121025129349200348919845658851406046085486522272839766230241842914812671857401315827085580482748892221025336547485908032416747577091940396021078867418706713145595852712419119030081258127849041865808276973270732682068797498809308327765451783342500571049701754335520579092111137648534364049586878116742711081052928022427441915170440919314532530475881008965529890029783980869404882842239598051843959514667265641223827313114394111955610055355529811114806655447267628549567121803884584765659582606699382135036327762433830264818419871618231311876157709393006207789207001529708342514776371189673630636226594091304762452413365988442404878929803293632835620538623169928823895597422954962837623653066951414525082795637098092869904788610139246983921033397124796797813323526416955610086045707997930757593696977159974667517507801895683407691185300164610571500565894456616505250346710917748837008547489407753900894423975435405280911441126718148234505435015151128431023452503250841282164062547846489173432147906205005995160207628379705371763769327471645511349796970870719422531329106842627904821281283840001451846168313966339021569448889927900120024682403607979637488780299411811950337033423569322045287779237492600966020419547519870932600732159930264453050029935705836405788189165728498073852650627016050818106402744911067463617357752093568130908386370876966034559740023570668813934798320906899069169380633357688069038982592625741872080170761373346786863290813896798081999213493089689098020315904894781885078897421964259868245501090000553994849764678231598993890211038689149157349897575252376782863531825980047621669922795959279440472982862972613243706320513793060083563812095256654411404052709061292054741366490482175078910151133728932217946908928419890754287614122122012396999874903750226191315334795125690639578794691176967691057517790364724496309916484416608871375460885321832639440628340171510126282941069473849040909616472678182162678545257066579712356229607965435911009135026878201226639360367048077645419192541989502339508776524587976173092809432297032650022481570318566282276536323807431195196084319996691484154320910382043323221406538675060975762823676914931124167300338235525159575182028651465091209100308962900003505412943706017959167151285388929928088481605910512207020618890334653711993587807854407258587093853180130155951887264430952207074233904603684196270801610615185786279301593350820784860530863913495492721843275170092744992588586757580791029248126067096272380799669481562693734010324113345321950530809273611971033138528017046780468286736079323101635520972238976300520139257597613562324076179260537090487537078028850861729951705837864227104273636146228410563912451874407669876284214391745584598646148975278124349154342911037119992113966372565714645528329454083348692631502665709682041468724729399619563197087161006803025025238316347787614195519673142186275481545536157233514797413140690120966986064132338604360216948471122028061112756151341479188918434236595803580537445191512896574683711569531697041390670773942734483923075991365796057144443821027141534584729780405154627341152937755356489031313323458790630213540054943061666440752098366284084630973725911215532799776316373577346905514286467976419446000394015816793147531466729104604608256421542640214834412768217913235989379441931253699888194889479047075360374773290044951733300902183988776806383194981743862977144869441623046659570061599921862897026000954145720680150885093303043528933169501181353603986297260626792837847356373927067578448166667088789372171328749528943037364445544290244287949391708661896412039097485994395106085890208212256026806960828310161839739317209822807252163318111439812115911432410011014864011537748477497597399651635647595867651831398260013666667400460951986322115649949278912861390682225485986003049828357698427976236441091786459807218309111545119747312033338638554750587665357973940613607938099513214935471467314105205548513480566012952746990998559049880845494139698190281775813450132219996217725776104476581923074998486417946385506753575931871949628425035618556259421754953962185195472668489060197665162120899163761195933135656993628599107781318430140780084994424502130691921659618250634048491217117494023270750413866376391119749586912585290256089215214913898200743780297543746475363118824252399152603812389059678069895604246198799063889124762601367085173959137204758919812772207837889092899804232256668028769038673549985885259067197925995809968129383648057349999033025935622365043350524558408033475791406960171606970779370785128969071766220374868911426471312717012993090519808484468069397386442673127672498450421259910831822084942379727231164196947077351407269075414613568731630162789559640532072740749085548966505329401534503491575274431952409836410337222016185531321925726281377504795973410327365340151495650903011196695804090772727392137259361193582201758045870132197686342478291477798185658707115639813957843828481169939678506049330468719319180250020514314617130530206595064557811338623649210839649402695735933508597581363342955700232311196770256518077736233572352974667175714925247481820596570105018766156351746954621335116391438398070902669814738967335727845740300308333019839180487661526446531727298280369806984957240308838951291034626245722295638905275522243648471342787168842231870356484072148535826739961704427330627930068467621186428389188507954944574277250725993770589671752716056827226024966666832766304883869677868889005578476161533417989039329177178257981135530800253215774297054241275797754827542028200731210232972989060332449052620497556169600130323600477289130944890922659076652140953602229042323253055001157970874587136830594041997644206519650624725829127632277989148078884683774165100598173207893437587854298353336147546951893866060360655170379285226004633589320001444118118305006020508141060411939333094951717413586366437262292970178458980817739975541440922392730242657084024437683271695677548584808412918221726132776332428745893056700889668193529703963865025559062628349057431882147229880411569002680770395715249953921905187104565047610887028851858886016976490637822026664499827521782930144308145785285314672155976026308281328332430159254830946524964678825777459436529079338263755896493914733295412614402682724845316160446824372738635953656732643292379156256251181243599435421547437169284771523521838792394949242546981414301594543855101402095008556108602723238002891420238048538546241508684127662425195621415885318333100957000885194598873730513594725714924606615163291358035177698025145706233372075339539512217936615227661110137918973871919893870483512652152023980425112613923217216890651120446701945190516155419556263687580520019889859485416933969187155267905622037732949592012747350455199914746351968142167142084649880788086706903119289786881213383503190218088012592294433063698592225836500307347349840650582367990649661275142495202758539125610042162236175856995766451721623306637785080085130301616530593985841215246365182319669809088208492555002673344851286425103416635726364543377548775729559808672833718652344707579002407450102647028286726761419119541487334739601010554003168636121575290873695010536192580303232582165314471070629378008970582204632724603889977643969095251003903212147522915324527623490925605127588719137791278055605108595737324075586946299737936748467451761827109276974729214473453129370975777048401758254276633941053794928416662718020466793900251392064492216323457026165950244614341880058361477780087622077690329023272723741452431997228767605700200188449982179242449630722080660034502115636700401238083872723870137277206084038385174984394185756501073901555689825419097406156330582927161436373653924197294447912502421160295020173152663002997715456564297721353530806364444415626657622071330205732604108020271086456680183230077616176208678748572616343902700264150768659083083430967386138816377439833454520326234292857606913438322777712593503260408866354310985048544252212765857054898579394411774559835638430403652197384234705599958143346267531206470799634613746148357425869105467895436893472956949304695107933512306563630690744053921331788345852928027073462270801138189493450177146027066407708102755040967806325904368988810464470474330178697354757970238795300630025697959015955804459993806454783726807353433994021038375092121135756686447069855119341138850001274539087085346933275898416437358275001513594961419512939103157838973569428008314667250618724104605994028546098438625837381915916773259130476084555726380555603007027319530518600920219146407315962214150358578111186166042221663759709643154706812985484208399168229700321670755490504861641152090406980021867262366593808369714368849401491926955634381753360410581982618617380711604283342280981799271455720874449343459729520182758554959396389296100104648677378429553388170820021128626102104642713581425507169705303330966462857719006941798840846876063121378281858366448168666385517602704999544674113858856622011465620290146505498141608938123866100996096811547505067909591476031755499328974761813071885397538457893814324733530910681427373085024835499555383384655644287758727196120066607129818418411640708406350529464572422530577418700185681678200084107018189147797718798602527618789967510210831598046975167370914691859598483984420892775793599199444104063934564672280532891752762893297298264018459200428653132300508299431202146308010707544350008363552080787361758902729366608999267440531373672637795488428187971977036044992281765501826898450046728969656607220884757887370780736103709358101952874094195102544190072054573163644456706526435740089649770096573551582224364269800258791202161830318046427048107565654700375629574979827535786612192826640656669821411387279557559468306190904674003327841221876301746239144528342911924377965260881843819056780105251349716903849637910307147256314292767905534094255272430826526572445283829794028926539567634701655038260688197295859292178064401199138236800186440580414086289203474967472738826377045263086310239410679097302543313116960423047933631407205215569059259335553704209452004912322040875327862820868929772977754942113929374601800873794264709221102785225666184718008409035022152674387023880866308080007006567680881265551649899843802554018784135035947641654475831032919029144900549217944847521942216790009885909196631065497086963143134032716321717642476141503051760235937564595667946332064114218961262285565732044723871401895820440039428594679511833669384019098427889408016956431832417356066291908486672212078818584331791112761773546785937944159680739017512158708464557706727953364447887159076738017148107994313051104224872953067809617859974284204141755688211353745878932223329889672389098613408770448890038874987611280139033397546646890179013056235128480714454293105592945768933579561278101463179972556358057385915342318572987655633011905950695001737060736216209512964391687562723382721026808135017703981427278396431136403352534088145980524311556927909178773482186677335418291931845869320111674742440559654067222580369080288842512779439238865930861518515442127680871415891137467001237998010587350048138319949823054905901453667915568538543639992016264660907529754810064749635221620553822128293396578205575958447728332141709423861451858259160910011649357399845243384074418041147916780255169483559206596838270572567905032269934517672104466186722835761551622320004790093273146167356722886875447118619196856176965387133683413639121585599103513063528703174580005039254021699265875769997241988441731125265151090978529407875199527416016111350568701842364364552260882950035102257032629326322607182725729981360988865224410605901907387990174634209294784143447713790944187021287829981797009473294482989875209005087580519287755900232433006382196379231132681643802358098321623194967201744470316421451548543027076195518456830987707153969016231271064883587082731670899538058642251193716597835727537514888840392486199969103178322815639483793548162757160128261257332777119368962152630777289871876694302211767164993895484128422984523699230949495754188918752014678965598095539919718933828071999027273731644680155826745770231028510046359690292018635025727670631977060240278424861468580163511646929935810297105209810787990580459268991971062286754922517389856474442554633479661397415248582806153064308512299070517325288144148825943454405728924776305600426229411953213810629311793888138866163745396895205923592109921064249180319058561295938717774708082813287458477204474289668007670848342126367231752625744454182677097236457874355866751210386525307620306247516786071486483723269237982005859128739953761492581949828972932956110881819695493324952215723229280036892391280551893520782352353165185920183664284318721535939968815698442181689406338974197950507035154471537440196399418289862467011623649459833442646847046604043666193521895011344514988341867991168573257029992932260011632458327543072871017664332532478499153693691139980605632445548915688086663993901702707979531129024879232285900925395088954868908881600839386899067805410907757647682147923869057942855639179989246806815444505133812724300889539618551613715307139651773483962716353145365082607831347364972143389569620377582410514170177395860532672972803229932741409010505240215784976088135834366753983606517868029781546202306799335884788544362338498476260589569135433627804370962695183513777556931564251959049193117843057193972854099270479009612953925517627105168377394062075982690243208591888993690959790422251165060536180399204034439120364715397503000111703775341221230287671283246411871403549578418201266552531811244771162534038392271979085361332407292020516308958045953808259148849444809328636696983712272818601975297408652904572445126030692595857505502526078576402577670515328151945470248795028823685753494634611371673913124155358792216699691926817850403623194250896030488761672878843893037793616453548566040344849713116606008228964857659545969334381102110839449980881188826480539031634139423503262560378568275152770926148234342800580363450382168500924461747434096629828360635377143682592167619041414195475230991720596634419902917885634310534630637424424217938804648666141714245555016820985417128087917793357405994583176110542676245101232577888472923626778401841968095648130809446042491338904104825496425721160786109458208796387309909161176078613374360399066269767513245682008729997531874497589006868333184650834183668123213673759718635517674064349137473619753904478863521423816218193599830850474949011559514023057346063566736377349815457009210787181335054875629638887791184378260044593846402898262211867651899534452246021656403052740493553992169010616959984208359327661196826083464501758939450743340019115968521456951522165529061616422723057452267489097877672542003244417505497561857059669259673051231109936912901638628806634221216562979366130527046574910326514228060750775842616583535367003149016309933302761356956307128055853697394559612571710314171358030239286328658701734616847501018252697897314193055194029970308283511768442540986715065286024992436221891880350624729965443588189702890970920001082350618594385701740082170647018655604685446521093363988443567665035062772538288430292937443961606813802526093016986463670994291449769248421863326415961400211242240124087561586987975938648992761901695578646179273322635134220617377036106996632106454167279068134812948151803515470998715514098655770928944501038104573036990638824087561376049221845749123045349184242328683811701564059294540258387391909436889401135195697583646559884463897877836126711444464509620699389277156428821919323183501043738197291367561717840052261433599679082217598642136695978073360999039602654444569425910668895463314336980488875322166493297401900945987232913030510073847559371511800697899952086563063392941769837245956173633804809437253319306498590188401495558862895252483259837394953660796596882603477636004898917969706891455314889310208583223510581301610448136190220992461056540584904972077616201237214293065380852158468391787998722281936609116931301642128967581850421314567320538224163824810923298726358918098602239386675504282859761013667481915008134257417106794379352858050972194459679109896350320040099152713142595395019666209362974026441630561188323282481417324393295042459617489038906348268326942235323847728600188301718057897926935498888997821342049415754997876919761064014682624363456830149963020049630367922225225478961143797018610284339604137300608318950044970090432896690698030199552452377374747792284207662170680123124377251213409350893929802821626509957675709594980425391400784293121293171171122721427833368303428394027448584763952838577635495637677382857330492527214549571738694422547203959042943721664399053775562120055851354364572793888913358635136576913242081846286159425844265870660742780520856986306550550816729171247326648395807595764434980640607720106316847154060357940712432248398502777361600536855675933664572367704371663471491240301803104452872926606727671542728688379365501253046194285541033150062426142332166374424193925308774369554288566778615215917058091100312884542233652611188331644298198930788593104472603627804017142768938794408732233246077983852439069147226004322622555422992303762981233996313526403685544419782042852283716832038457798525537305841310549653314044484330369255545451451373681434161935127056404885868558213797103110313501336971538467117873000780223872393689048589825466990634974355565334962457624866732453254950443315105656317941907214289308463374522746565149184709640244641976833116283329618268303148371447758016840973005799557767937145552603441905296012201022369499713752030200781668895221372262750281283201263237055657167783933532852008227999825158843907939477203462436136489927924287084688039555219459265592788659747198736946444197095567313204711857360242205608433390579663309719567013138633445819271425007673883213330752864491348156311103348718610639792187975429613561326279803844215317247216119608914157577419925076274092565002340215563476553347945466495210019845782926505784462350550990553126650729621451288680337851626894513541066078532384397986050445379108711034597602792017918543829725721247344851779382222833116175176306581579768101287359226895080235225085267711842179278366794999124282571622359448017974694123703510686547643686132296893059314916432609429580352773210690721278310139864823845269308837160763089636024129574172239597553189087164764700404203056322198698161208200879061301119560879632809683243794057952325716968067322203202390554306378444972769517571169259768714999341581154508935351947649694428348631354895557394440708031995774860741031335227698759081770971165037277723262378577055405573748750372710271438350727547467870114976785457881073130237586409219963360747329890216424777257705673488340417832713852430185970733005042868469572738281720478671940413823362572657925336103008609140342666919989172098172206981729246254541077853560310336769110759958877415274252292825060494170890925535362115067191806363066323626279358647603356535796739990263045960990668834021813693067106141815619810341702567319245560765558260038073821207328153549985213626314416400663688838654236086238656344529304217396509488010558376687815940156382035734780891339362690594566107492207804207833606620513261295576630332463686014165014015625101530961014835270412784649139664830811609146123634266086649983883976297656350647165399647114991549082780103386182017890820743256254045624731435639606253505718077538864588787460036008048949107705819414842615138747066339373340099723313031951311924672819695027837265110594993628669209766827188784286978627864502924859520955164337642653320396541428664639170114829827191864113256792382797652644194748685834035511784042921784773841210036710783536643544870104374162893178484731669440060046958796687734780944402662551596966596951718806496297292414474421995985555979792668771113592271632078779987813550901966428064623253458670929123737695950396970421646427742321002437861949505412433670069685781049027978281721824651355044707357949594647645121391944494760394243596396674601190694841627060165437157076364487163755761749995540009104109227494103714783936729265428614620330033201996201116066645389969003097472391761767981490194516312150484535875720080213938680571995556295025425834368652564257819189473252721214322283582889809592248332709822656288266791241957247773805623849826430677641079468541123615641345167155480408636525648232071133840016362896682206040404305843370297237230224968299928619513924149609737407617110113573458770052675075513022159431832135855897226046617349096454471464852142666792213443091916742148092132852024238138097248995478856799155513865601252736600698357844345337235733506160200530218429231405663864898296104947626447654775759890881910001104104284663695439430730207143901247287090810791912478115033627030368280860940502184368999649188381161853800077095835372947411686074371682893482137029809724953056069001960922580324051098692603244599783366157003291225150652457748730328117599264784143336120759082560952860080042949481986176430570115355515778222356134522975908456479142934176161545020838140365723375264565704893714801142201968803533495109834363881802048727322315301227291285472465935429637278378405056815865551916213777214303480227839902300418261335553530175312709967361529829980152605533217655071726079415532124093684239587815157145229122020606804939782094941226274281565260097880686465613910183446672934419114460041451596771551257626160577508606806075062901954971103980188547405076017080309875339726154884344846334426278402286686206682096671562419438208829667447502174641059939283313072921725974630314690353022042273839967631676585571703437180320391074175146878324272833339987716928199814324635346597715176161059225981660566459202846169693813241967278159634155112073621315396129955180440529853213027411918776018707773755936243597551766446095363531400557424350754074826152587962333011846837474912266646857995520990977630723320372851481017991704946059880573690540808419469388736358990370632862032073069076277326989867177877395903370853938620719853465145176018045499218403246341177638426663761526868505436462634800787069762086052114604393965570842004250154211787480265393096021117812573021481700533440369836387553231080244055278543166437439326530799727682222426848310406048770796472930130931762836842990743981682731422784838077573706264190845540800321847987116945304077448069032793976989165229731225984250860806048495442534526078503598406783214732991527791543216426563908371328327729739617142779717487277144096716262837007595300129024844810895768413944502632578078871257734081289348856733873030407140176112332463887148816086819481615559951144136234306211616637441131756389990834558267324623287538192893811248973426866494287886970664006486799636153611876932787345539967816649020533689572274811220585454625411943060079511533911688609509992887937693045036159877404231091879639066938440239161631425564519628768380470751771761914472663826587523554011780490683362288761176257226343229102709972352331318353250269585332473735941199611016119852347109578281928416519472717118909567636323885262656018828914187787611960355173734727825458453588271379389399118923657028036504962815452617429354314050022828558028829806897788066865712686507656851622660710786572820514971823214831728825194992663818301966857653362293473746492525173166403730047103926526601839169965204282847820049573354453440883314556954836496340337840693060968570347188297852894588292789115129706467311653231882567701586131636390660224661833225639255770981868840056106223653797618934439701598303345284540982325851102817679080454201393929791440155786544420227311459050532568484329074522485413884512259756039271323455224496122811003604019920371811957197129911623757336360118018922101003205284311337439528462118728980189772400196349852037710046736447396097238342617734776942839136687627167579370389994323786758920971103453537204145549003651749372786896212820779403246275305091538793739988195488749171626880894663646462212634139412909710502835902650335137136385482776093980168550225306787240211928942068094105821676953526953745927662636834067201703344695972221462520301165439038642190761117289971278202339344094072820097109658740682698311949975806644431971625743832887168801853268841458325080926111585735273526468834287969846022330250311798213189545988492289580948098768312891870538801057774129945297240226929815128763956093758243480038993171410617165528697618327862685716672374964786275939562821773364357948362195292304589791579404288741887882438777115301504127312515013523414658464993513563621102873205441036246670708601129562790787906756964829845912492398831946366492297781904986705422187041050029002796178660860823755446175399657416630139485091691958869783076899871897396119143476907637416690697535323668806285393421772905094711062565845939403771766974086753012860966010298551544267382176760261889676320255833838069820268723517517335782014949001529437849008020919542051399601783360034895322200854686877077250621986678823884675815249537555711506864224376023110907598706880955319880851348299236110710514955091713157377703653620150478178046505767772298987070068552810896436505817515465837894589808764500280276062782698698511266994316326062079718449820938441178579355212847989967884491895666469477947529147741753794716793005889531747501707594702463308255189437801524971868542136116615592718983917316616788792002279204107559735853052213838224477892768952486927687940052347200915687928306654550433742703502128052934272307096797099116689548574018851721034055945296179228948298250076831091841621481881205755540050934763169508345843706005622730278985966474258096538431483422296919121988714972590200619240905589289950002705831342477723776967865830011205425194291611022743927072926284273831283820386129118807618651389208984600663513029138369607405259408278397077808889795308917684077747448828010876351063402851126798599152546224619544066630371137916144855693936424136950819788156526094237256322230038652801803928778962491868880903277058126294209783899946585576966788775275908881688758888952378573107885513047157823552489812695620572076801822892035637403285237806434654781792403961604766399148271308524904857349234675787405957089578914012395384649786735009538687132421511052053438027705881856531387979763696649952221526174120196473029541866904763752877736500090629816440274258241573898597549985534966301301612894106724103021389836060039514762981803785495299217692117130306525287856526116296797776935339018782733565206747036759620624765199578857642000909303932855461760246148988521816601186522048452689934143464299905352250744085163097824757967167069579084489663096361751410716018761416195481334688792456747979997794666630299608963633807011314561301092853083823948651101660298648246921880914913750296489352413393037491020957694226936516505151555314829038273710357842334365666428753084746059243691081673652291561186088286313486464074789578867087074886021551334602845725133422295488013013588341739851917688622195828598942798788616537880939150526919431136827337848070857768233326605055197909148524267251782461048218285995691502877500765248052936378765912391207861311420096160153361524473050084273949562516395707288542814837190026136701193766113996170214666649885097163861780856254443441949902758756914401021462347964574517795498238548176614680473710709413718539470176767362871057008162505980799600918376386758392307115318411188565201298363286752024461844544220775582492399634195179143204891274754849075554012635632575483374542315492810350473337909119285252368168066151789408232227318301549276224717003596694061357784432411902491628540243615809932219923865860078803074396927566430917755309534977624694676321878484764521796771965047893763093053834126971544543856767094842468587200639049732091168294199460475566938714342527552745557201356906213800012220989516548868143621253989269794814947810360468806479548142802814055307303470809411376582489593655271126616072719579901034461897009182532719162421071705452915401046080467611439102345535053857428100822444578009927866521133970223670025656630147861958112648147964490501103683127200051069008920505916623328232277671200367501056419531499378914443864195470120978264310235158485805256847112774046146443746251328901983895288118254080724885593251104818156670013087320585648276153943967035763308226885746525001933485466107453745812890152627204333212043512003494805448587155879332326623558040428145640938860778561452778307609212655404558943758358565080484457312727728573463212148175575369924573780353237472355636965634874540303076651047983069092400077075749099356406548023765209311924386117622379450181008165625225685572391516287466949861119812866351010642161535765099984963725899419908344487837597781768581120138749284402117613395327503576647855788427712111202762442526076853624035299838491921663657935453697533491544990961972667795923634934627423574120584384152357455936943161001231102368924414448876844448188398255846837240216902735421790793516051329458103090755865721035586288083014141141950402910890887703766441519020690661749526276855791125810140579612602956806309783462882156435347594372484059213988989227820944337284894760245115767407468267699289084813177192602914233015396699271514240027602540965818487312898562076562355844848351278084960728909021700273616302147167779982418972398670032583217261447861333965781423853267073492037716895327845184403187437476669563927457726903055977180890040384840768589339816619537024311028083473399515454081892930770015771275926891350387981078613597196544308724446096579140756247714211586486875671477749953944493120893832026735211586187908721027775688824877853131428694846954859478977757064282087575820217720660139133175758373065710500316484348010212892612441967880955279829282189585312044235013284302518391401137089791523842437422582268606269335004267716359321131269958768187492791169543581360938700774659372301322221784842386327540934665528500757113775085086533601885856543712192623646530114891182734889270122693864507991260924340570100942625434413956134218012625753258675778489288848329050223860028633740947353747542736432136280954181226677043551252384229188123069286560905319536115010985294691215219769867461635206279970484319414459441630382778195323176074902768922090249421047436247864691278197254199972973476120524816194923223156195795808560529102638516076766250269943586067365708808520842266876270092003367914072199506033999708755985823412123387296183781795329083781006881210100830832926114700134793674188738806359085826710610438502144331389547242405915731093714479806155806456396894002614993442469329746541097523769545915989409395156060626643489106263057632209260319377966347695253784795741455964913145047361085030377744316625985263253967469932522171756164975544636570651644313395370199767349559549313301968152987562281204797936390583136655550448127109623220601164807918485835753667446130905450232489284190870819527493421026639412507796899914521834864583962404410989873166416923427671345897123926661732164908808914891941368924626520410223292058810850508258951081463637066961773378402311564597311055968015495324525469002843413771640090661469597052965125319617405680344510393239849507247823944729973301569903676300655777800829868607875835464921286265547408179717896520460174167624386484101763017776691378967018409578123522601557540510014194137875159877595281385769589792894391579438204461459364019274669265562835029221223715995862887642354334159337777052708600683334276672687573030640962147351655458732523644783208387506321355468811019736884355120811771146826268849942633841296417898878147661013859390259640018978672397660931068213456605731210809003520933767102974872211094727698588528377719871131440694818127089570876902312068031336700788087601292905244222613031023286662487962940014721105812067329276880269300829602333703278419978844952238546613307032243474999213008178230762528724861217625769018198848617393370305635882068268892249529844317057694374733780451413132176395801346357618533614069274388285645003677131883894185426067744923195919628930283454779906438829004017432113528705411120650260409256837282192841245643531954473417319885477899127594299184338029323450912300537109573225599547485132429803273073798116096958517362441820165571620983170019078868042836810769123874067649375203633575422817291259509286940707599435811510004265615023324323722305346085341401905653310326229395800196039603894490525989255110951953399016295031526951690414105490274419474124072704507958425103853933059860788354510958196930412301704114217357975686720055339058501473612491024599633404306644806414822629759295954137791133854080930677646261050612321619631630481045530843159419487549127501723421412673592094979202336705098488016771668723187473397665961062046708927124093775009802162883255584254874003088777606166430499131758023169142297715277711207941990052793754761953740795496451347566739428131823372570502642808007347351074460719418545603365651171705046054705051026330635917651327100666107309532575322694228847744151169210141860759391392888702916952241087902206993906240229684307765588597239450328130467965755996763051671444808564249447024567540673505005540235922595399814086175500663054443659094646308073182616394489424560084514725062417009197647545496099736221670760221250883466629929948168505185860204188831614397289609229904003267502884371186367497879379360094258095681252484146436464042609750147202906723102686238766109038127649987051921196181894897523457167036554577700563289108523902208433012624348843886122543083900306382278913778380502812758850647423942416243605026415626395078782418017729762518648656729509666838086719619885219980135233688074856611865858011839079667924638519581074643975646906857843958462076351876383835357161330233274276535070886720583576832957801925917012672410101584101149483653131347932273958933980648549459679781950429815729000586148897025734096041461366979368275984848765140134994191064805807938448456439636655016670332367204440973715794893375244158264481367997349444083392290659777201721315977607341478195868067034882221309973387311624714403011869046463251906383897362258112061844806753038280515587194110611982729860941921450774239529080973131747262125013749178537500341889490902681071322933807247656209581023312898330670668517948733148747305046008645142137924576163652125420785689063691679997123070958281903767928877309246767684812990806276668005620655852416905376633542589693829000064246502665861611356124272522972543915745785093616862697516897403025943019225815438651243643963190808977313737170639068297964220727487445436109957134288009081195576761030259396509159964365981606159180408625962832236476147866299611553856092077617211754826136120104624476256613194055976746503782957668696182971753937307887688203964375510975855161180409240713364128645751533991726190123323885326125520903436527066647927569986501502565594710737643949498994370851817721257841933956016863145722469884052858805891201572500948807391076125755548642252171512744227439108670769310800731333144242708830584622905565091334077818961608555556678436481149488520421162541889892978527467088781251584206792329218935157302251417423307671225910754191991681978713443022817462714362598238500367054398674642086662337374431213447256657745431905807462395444007563030411533344043830228954726445880638755865046419819514103269493886749323325315414739654737531359332136909423472073222424096743660798804862793171269150814242745827193370695306093445678666418882510441837111735548364321233018160872306800183330411139529774278476675685931779137940606755635915051759310420268005080164999439123912745631689158093801118861835053557382462545192293314823968044620417213299034124827074233296226894436359675969583493292163219679890232334735789799700842713033037412467097459531339263405897278133541896451095975173815562371389984147232720513556141881738043554086643552451799419227571222504900207745855065849625681765480775282900847731483613866453805717122404446449307171319961008470701300987602646613558037760358673903567394744977573637758421711068179554132071422060824401539528147572845193342243573965560926179126942673565863766325604077519570455421937578013119144730444875296762873135299909687246229802226123923259945321090599836245227330969665081412856539034556568559562856403251663630295656333856553703891960666662298860249348041081162923214527776932530870518399463944582954840652115828915294465176753048593043441757891605406945985252630640709112800372713955909547842611583031251463306342583704434889075433486212584801558146511283387778138019856595986354253295846069156985000212502869898280191066199950974916728873086511240808619321446466443821735047571488250798044243047304889964958080763155772948189321744393441998952616309691180357581604314557961312316092238679948810366251834948141788970798267436508318989350751208713818352470019543895574969594611547428529475944957746967090723162928060047247628371414235313086229957975965497416195207654663859328793283592449271982874813859784365560086543188999818871614674097854189569083313544950400609204484111817284280156179708165399468739646031853271761302629007532604940075693232730391086982666943377572891605262568742643169739752078059609123616011507335516836805306685399738866483548686360272740524044333447653083838820484066201672882148170770983326754771446643775075596318736049887293252770711656965304210010921246482897925482372734724686919865118065312881517742840536411244421959450625341886482401144139147129093536617109900546819953349334604562447080787631174351603634552710028469550478493351818940175446259476814714530014261975396280164300767655833011144205702541981090292069790459642165398053540521683893617546407041114564649548675448481258251260277634789495132085988175547608323572622647088243127293653153384751468281902620096305328069890589704403448120200947969612487316013895170805448196780226125779305397816181029184323198886719651185509671820478762015391016911147440341703278740211912038936192186104623881917021409123494521735828972877751844441634129056551055834859921231981665091500281278367432158437977039604119930227967523663260468953227059292731236221400218469671996686134965737135802981495263718723174662005030407871682997715656406246974944026183337655677603645003995613842816314556715671861420940973827258257014609779335289325235410534968511985649834726491661785555656066537002514461950197764029825637123446374095554956821700098100409775312105672640260333067766355444488143489608626761209797602914547754538878300394314511633897950239998795293639363649030551260663165232585393555354918143476403098101215279265681441613560677549307581051889695341447085546656297268187112515103355249592553405386084604457167164983053164827784793721442606400076196869715575392624432932867728114648985402843741969788494350287353018846114698738752698731946619078394277295101195062497465343350126267038094004399124529471572952067623168952034016513900177288081598173659912888181538768560206798373424407472828533964491169330369381714076880504554580021600707715698492875595773232911208904697580761330582100174526889109473347295112933889389633989326890712082062448813242053532082715873476356124847260722028648567807659070099373712254793469160901824624132965662311091209094817464771747329630058734449924512302645198999478067654266791787158430575234800488770173785624037442090404438440857286355306225341925622926415834315191221245416866902998704674983166363472842795441060422474769308914008218421817970056975849931079730737190329287866334731239467712541025623534520812010654811048557517324855867039416814758644646643370236876125364509910441918819961836774759334874673781585434698686422638719148813436747610959290733435379064435656115333897287876863396831666721487556993003501941870426394300472858256175086912099820465381508979640167042789038409798326711171434279799520951052996843259563505601421157555227269978769080389393336859243420364289605204355606055916522585697960917591325263130920537531549386265733957427618329661679660146490449712408453669706439908916340110778774127244946257509578463557328358624016602607633954561823677965256226872594725799148394200047562922885295217148126929836967740742449457367331580456275499860181903419090294440384120183281063862411795336861524259581385307015529621081950090911506934707244899773910553406615147253540025826366007312179983650918453327223704684199367018508962944917127927642422337461073799842452672641295930248789673031616674871340205279022180102848976027499040413040263668064897988719678315332295342087928900024813988168316005621606830578470959649356111834800701433327589435549463937168476985054045260705039415294245805557002424991185720783047628261272748552423104562744793351181688190276298945075584011776431986058093884705327020530757102208363983676855835622841648164739065809940703491318107422562523853599455614584624094524389758026217318207108112978566713228293376164880641426615792297242470801280375399274264386710246728327944824073513577980899449204936199483588259832763788028352311143323995667930042490628653019498200128462705708157848057769882094312040701678779780626969903670977856720965509360805187069816939884942940367382441123507923460521903250427778508946345787970068130413949392212289578799574587130781795624053877628330915853717515594202931408764107608045567369279029939275030824252610050455742964021587939412446351021769599558862132292849575222013520361639285366160872274322020104974599891090358758114930897337772017879297117106907530546605265765065543179912634729152614515981144100318257591824681706144890968536532598965451919097930293944414124291734432087646562604708309660254878802544907496338441718061326735303848851812972077042006076815772905262056737362931902757991960496113859452085312295402331612205951866358220159509783538672639353358804513037664896630144034210822416607457474106797703159945919567072062016437548564813172226690721485905088198537871269416417412810181432580521149258604753996239834273380077972666159410042487711267892905699938309747185085172204316309521307069453481944983268049006245041768331566709618543561805338077818572124896757080205831433422944065389204434634352038282235680900885275046860710780858997588185966626073170893174577190587456271186116691695588262190260552608789711555073202612742506533632807310260670255205658552476897688250087732540301771062585284362008170520226268767771293631574268140446144687801913617924849757556541806001430795250510268110006075849092343059510829735652196247287940128085190270891057667391785008555682185450360022000305950320289592643584060670790863846282699732941302232535883052400985564247376422427104630918703321041802669036418506489893710653241294408165182302163217571196434911921783685928232317892563765973032265472798193933016540732536326479264147196005709072825091410236185903342641792777926128176175555127802418151379190367545375212702021447538597610842257895184022735284964346156825547180348544727285857676747372776623610264705927787578508496211633003375524433519974111853344472757372617951251544917915114723099872168119735743029101313650679916761310887615108806694412324214995973390384821962777002791364071742632193784762079824365548434621812214454657456570091785925003605396344620784426236161910554776439042158329535643599228038251487834247591460195472433985581956850107727464441084363978570960014973146645876519176773104363440674377448309460079684062268713201424876888682092524423199802865046643245919307646926750399755397539900194632839643107489914451455495361809274907941374133638028450010442303100263761594718022234950443027497510501028526624563306354255507527581427492005199356183447463986825487994079608325569694490513017220764901992657566398910464950428647414353929131078621113089070401328050512632033089786104789155572688761535250576397792975716750157163554101983666819110273909819188963573926388428122668836055738012672883242617250734511816424393593070232506256033853162844601213759638596005374330855009213605885711277180250656643868259396495431251593635157669395940640684550878137944906403193269833819369611876274030830245947629818423087756183842956410925622031092671816159921913110487073244917472651393738288254048348806371020386739583529239431679772038507173679491711184112110040078270716425669309593684409411819938045775815094260177677595138371678515897689206183289694052993193164335161543708794251750746357686778871952275597677713298355563237024882415151252931407250032650151659827119620890680642038458016552244827013866568919728487554954285768340132138574395126187653970506817579599430773342244620209529415674452232387792697521013307618811902233938770727742600163088097329478642822694435974189315147680763150168490643553145603013486647165788678715844516825844531542832047571214084398714867395496864833283043169184899765001916064040039083468172491912321866978342982798997379562653389922649268870254428083445314045332954335098767415450939045757004890456620935212882868596779677007368602929153092497672777251774558853791397007492827495263496062641149235584175810155410430953195651651471530497802600093742172955328422361143807210304505655606796455586892982358279363408767496445519857577156628889557640016394585853542767629570174601667531024538502295795209845409019871977954298682235237820019085822335572974688846205395796244938669974990203007753788687262352080445399099770758695556174175193131905698992081541242691905923577668561290469073010136263014998272373152348603994030377924795227575976586758567263600360736302207964493687628804761539986485493317280317057161765936338579139315601499194393871825998611568642979164592196125595059817086899928685789252820631341718355473495860546830116458939020140884504731230112822849915813331570054485769620262624935413086700401043665062123981420975305305498578045212084856846928284701709161154067694403310244751654363008434506980055067301056953734681887348872410452541945512085163912053099946988407094867365482522671060201701870366389222309226284952098828574760776240309234361853300176711842859240744919150156299204981109472752417914002808862579433946143745570084996734822595645958511569051270478869227196934514147519170638724314982526049326920775297179442720868209483712874214743564852761521958645480984392306888931791916116471192411223783161642011987110241513152417589556185542855683376108938386128429387252664691577756506257417350078479020285659114347477709891690098286958512373863509757000827577607927053269533946768086170217250458602345405081360127591723798563175400400471684283961723658479951751129849100488713185593641574831427329568457099946126808750837448678536071194964958526711297460786923427128931458900808122774682220087405185269361699141471874270842329153327145552015237193478855693251462866815519941530997009950173984476586110309796083759177166301049965154176769024062479148941541166672570893264553381961859600862309915865335282659146786970217246584765094602685837168216308865673562421374934165057649264872231448004688434459953340185335362936213413202210267906140949671675496003069606944977726473141852340498124992051003529860046679061285401851368995273044753099761120668089742897584203179741642073307361697049000987945630504885081505916472904403544146317955456962921132082108905967664666098303902449803682808962977234375432164332401123708215503830856170805413588945656076337969232185343611918417341494088097339636074347040644431686972852228865247851138723062111491844829361474286402960224349713334683702145801551297240704946507592160963062754185845850289889669603172160036982355153959821954636338469888236985662883180021340454679291622145850632744257695526730777649063097476075715815464757963168530517186859560579005901440848344036993052342828625825974882031388693527384115466354518647277354594787048209676133745013448823071351874964330527027000845801371753490269958695165254788247643762288627494256429078319260857777969754914399314149524818191532374023802932645692203221058736863087224625349406453518462283817886457032704106685764276152802057275081052728490169557970291589037619759003044822784910830030996082830591860087928402935324790434643315862666543563967729365438973314501682564008877980071750817451798235980142894165107921843426797989789234903612903763379813741802988881715273099714009522648937042251078098728764678867326062011286333895246115239261709932154392714794175026750711332233794837873504079412300417655226878951105251889314148313419508648279511685156618917324138792130626538689964779857071482669061329817245850324967405610020974480910083894133084739597225166354944009580703663336959329686997435265005851107589278799375156514475033456036368842641500782010945603800334671279757191748818544861556603918556488865796695271270853759455255561584149136018138104898413743418921874372425060849610089390602976278477907084765300626377251439037678060026709088243976961693323476178622154285386719105966603154072644386360486799587679277689068279635733267490811470484043589495081335550996528393632717319939289422861017791457043426214089753676351160591807375607636886701805293411089326569544241021072266572545442201205652577129608434335203643724287952455535199020837649196007904447866333507379354744851584953594874042885364587172840223988247542575836149148116898624355360513852131467880197028832149499185528498971681062296055698828694085476557174506559214099627431843296914801060287406721761555824756709431327743077370944032156567523660222399777017552414712398744370818336545140895728107362531760722877362682119330517671606343589802859812047176635858588531142095822243874052553858363271861233693307658873251504547134664187479367479691698012861239560756726366297333545878115994498607615430114812730474123124285501396179762631737813062477263870371565243030579446709024681303297029304437259998161446128530335530919460087870645884587314748529078983093031099682544856868100394788994872243329144439494346432341827210830895405694319704464460011626790349467205630675770379735674656458442894679524184291291068737698539746312957104161007189480954419818291590968377789849530401232919971223018031668197044333934163016987990420392575688302215436840951336475480878490347412415225628127705533003293678311862559950436706892449085620800338305710723850456276700194025998339271046537071302583015305737379779287328184775123758236730806010903991395716320667460559630292771219398018234659241146829152620520166276059050702291929215185163325451469976701313532826746070890062529299458087558736649197605121847171957958371127022467957460174506279236443536345571715328208198475602353605732081066933531635594080400027171766281368239555447869224975118325655124551070858065935897539751033144659917365885847419009129848739050568814617168532190378050884804044592196892205456004369373201163856019848203026450129666085710459506979861573812093455822974072840282706943128363649948557385777356004217333188911970548567107329998713804722684451961928595692682999291159390017591890241907909667070467677344984966484661593522012588238757927656259335847263140528967300092829180876489897886254747007716529700527527813652663445237392279671231172452709785483087309661454074488608701084404949383109730251740743343606394160137942973599518170441858541369346203008981690825771205878025116555480290063046799722148236315391279622386602070744577982703093031897799441965460641824094500144515803151764197745488805259061429076099351056338122928916385109331085184640280969962420076328483048480305124085703839494837564062210625221299767338824621568784874338210190333367373159694640810846534290771935220541759159131248908081464817089595318413327740227378443841064080916117024525841810926132622648067966088104367681046129721624888714698243249727974431422882649468171379122142501230847211756546490792754854229648787730510779607275580729776707703064135985518599555313323601191575009175664950291796698569838999702201281608124279990736977613155737746594607768232080824434317208646496436340844155120553313464475767276157273542268444899324637824233860155036538477729400171794885327215477266309628218305988582337444636711343301831464736560637150207846635159749092816772154998987108524257660024411457302095157763484448278003464971002121887305934485600997839146746271733368763436210174068373203410939405379102499077978201942275264139200136691041877249531937089995189488238448213577922940737324855277929276930530520963990432293266505322851379314541681167182058474913959972726375441698270821025343184349526156072722620864914693719718916010958486817418465638908753799505721014969419331555068412088326965550587973239134978038964896434101244196662768334227389554912849394586910580263358645711212957577083733103101650780626277996450363095745092146440515821722704997443527282731728259562564015268627789214326084170423377976158747448351785235094931672492947253660874744430816395800869584139167880974225947837498373320824763333001703040935445787367719703961441730058598661473767885050651950603476527035694443022723409546194954864432048654959255135207561021406987667131405420386888899933804109860009967183926210674098164978590809667868543004779850675364522646264012512179388475909312227405023781582517389386451112381714511576312583489667149074535882640702577528140056515658331435724142258403221484250270172597536436327641867690513618682733405647508604392885790170605607980551543737983970442606584137764724162999215422697522657026455349465604564829174196462527142196294869308657280110748992555449242582591309553820562312495824579403929770942157649210569744633942530189248292423173253245183751529711321972441527945776015657924719973304117064829369362273749308784827339622391499605514492021328770461037934287858073554908317973937316777329314748033418149278758078186409747875524693960799424715666070148340215490361768395406024728909656509708207224706093256910513696648123988744398163903887946694306877829888488224983154216004506529732106170340213159254881452958569502450776135656749709800757245960125431762055824654086059450512865050400934346900888336452312381320188121758554336501205475809703039323372342373997611235677360527087831285472648360690385361325938513374288515727263671591444936926555104145001923957309640874749276032681425735640822649789667838839747506626714831935136271712054924396943176789597392720826780039081958291592282119268489663526078304112743012469215349508843345190489421822881730975685157201689197762921689414513562327831930854245352082739455896040023262331358228505701462497162067866048096465589801598059686191736163557921207660559408965750274234367353760706088233859475715769820644696102325306598639481283731665941662707073484809358007996261337432402488101706938373704576940979691034373698038376709973350786016462773110224509541645691409900926640705762130889229272991983155284857229373839063458601849116262878375566420570941906250315872948264022256264688313686702631484693759166915188731030354873268031199091001617642968657076414004712086377900218951004360867118493611277262067502117798503906626067947526371932501221234676279809134532934676385732239741043185500180670245590869866227973413332178295478657081615209550944105691847355269316312575471832490546314646316155577119802587575181639626259733814176212673614079706430960163590040370056776551740733535154905137127813606680125573217519662682888612556822537296355160133355627104983299180195797328689508730320093827716256334584300413335363523925624029462679937249124411485432082528508698752614549421474320814940773839757447994274439422539762530605414147805113146710629463933035422859538660850844346657496865581222474897393243651742508688589283994387883357274565308773615386215395296262215849691062288221351236891892168316791778084387028547505626910929551353627691038385015496794986240570685011086734658457888444290771939187199385366444536095168871823590213573496522485070084341697006855090111380569868387963894566405003944545347580119823778473295901618498047615738449844160223872294351217623214201204908424092767477583680922938663793309231380762686939911363318979976344536358344364176886482405723844797210014744602068240288749746905784245723729465258930138577208174800900494345307107186164138951349708770934670930124927721756157845275745634379867068262318471269874096566335306065444186577032724939418784354011568659571015256390755738406675469244572248895054819207262888852460517132051636912188244336854334352460063092736944973598018708970936080419536166002234089617159497271485291765487447365875794740858398652506411463705685815278964916371518608262615042797789108790591163606173866546879058986017561320755147679181417139298569100647080117430887814855423216645134287079513247161724625143780739799891452419173352521882483912785708497786349796480084372863627301593515587298866872924002865554151357148935074941435276015613869282910337816609009547801219573191128382066221528330666128689009633134941626285258460580990592035789162558076895099016994994720685419149075677801411836741616051974843393539003890059891745190571298287792352764703731052456717108849865257842169467947381466965411579981017031111490964443553080378347741050212065392625312130332012852214675085703804413552613028399661285189268326392764888523311196478003264956214552604675569818432275450883538237743131860276641992373031971092409414341989999110357204824572491762034040114834784800661923882109640497426563222574125868898219074206454702485703230609493545332351207537861516045161645441898085922851334702381889777502698519790494665516337701021560962859298974259518805563428381921494020940908292860585771964275161325832374676703919494980956803351917170675389536780276673103092576861903759198640895445649947947412514402253384386532412357296556517213843059004337739627184510615602042281542873660325793084891391883730264044702319918860850707330668379855495673198233586119179970496986931562036721172099691645296878380678295772223488429849346531582187845215656380156894743124206251597989622212509590177155410770916860144820813342028729085845735406364555977612019774045912358653860059901340945846047106663557786002329097058413361728272734348045160899918713726086726834357953922311509117976708019408582384604186642681151996693421226949930736183258594784630677914614370779794592405104780023411519743614874207683611195282507884632832925325795478038628557507328991689730342259656974108693697985026582613535272967626757642391795169472973310898751226188349061395987421750649236684829430188434521619118470271750633225837030555731376415051833291197551036539199293573341395257811269075979734457648272848072613486596895680303422233363703000551415150864771724399271853038361497355431760242709242170128527820934393610349264582608291543284913757892271173269803737887708508873500265133999464293374210679828198355316397473055446935567742256521804569179656401677382876113554721992955193068504995100464726176946018731161879602812970669114788376557620272605741973382953998562290769993268872562728045240633911135541515503612970521421088756933833056338119957402304022212305418144904531397624769198085931497753613910418706311247618800754205559907333047265369173078485394766296298466765843225327621421608122969188490915283741895264491242886505628212931290407554016766099925148773043461027299504415214688139590953670740633602410880894849351256214522927203321748639061502319645274210992475963050490599834167756310579852876090118778090243056202030767151763691330584635649061202494114790860290162916106775036089793224933101135569190172600091753051625889217488827595164061417391522744936584281351357382080007724400014810940693167714154499434484608521262259772746310203275539645384331096383141664218219956249625942405837763441467406301700974976724319316339744492826832899905105307024932655663571914012597929356004053950923484208587750325877666200419346886266127234680826168388731955217722681671655692248372995365101152533036643670914397127916514736115842773684981151731589527763024726508236404163604779277017774977180699058137768128900733595212065708711263331255152695704606872987754958861821582992498073104286806821368237777262196314492730301706763199697522262153964693875905567454992931240983077955365558879289472797082748809403739251919894923232226708205231203334816762629575042603187142271211977730503379309988280181737687174631236741378649846753788038685840321194712724993955347051588833675624282937209349950141677230420766691164989139054378970190182422027278139948677894441571665612782679857724860621365487257542478571864683189935999266006819999703687942675386307683116383243483074179326470998292793602806657638855310103273968687041176568466940086196081521215674542099883125118745449128292967649489332864979592370596015733741078452275762829241376877354729448630939837591496672906314126870369017188650494448002279645124464571631973243141067918485646659798412785888350338379716977683341863939614056333021844441960168168638179683801636216172541836204712172774581743096192562661235368485586808137657749895137873003238406132926498014139300191197814247727596277980526663519057424511341847096372732667919379980414895312511473944257269870119876477841024566494485723605409130718515330867924273561789574951932938897623194491873395577017115851475284460273458030429833509360519356624449878415621328038822940396598919132079478930618323627442893824203493945952646254942960192560360368067655848137162317664743925805839903058839765418637891692345544340846788224661060406063946519778967959224461932685058426978176002936624870888206166103044197159237713375259288897436602824489233658819420755067386783464260159389884530465825075221228830209045236760860584159198229652848943956493338581324068305662546919742404003495715042215777638424529064112336281257896795613621890390173601030817234536246672394159405795690206773801681770647110366469379700829522828103900348642091968551197984868566691349737561438643433239737865009157198012368621929412291016324620734053950171668881664682778928551375025886396296749515448168420883408364287057017002211155681320218967588918138914608913677993522602539905224257047011455090954249189119568803163155887315759857861799601869135894543960056938234397152115091125032947101914892504908099321132063169125592302498187716878444914718373461101253412341078604598490095010396658348188634123226332127773027423213853851935059470706274037131741280013062417959041994136155873447474609883290943367556494982092476773617227417547807579480467388744078926307320921393406893512403571194571651093857262288546289742685822728241537152531550170731460868712235043177788566733032664209708147910032088611468170354398259392227205500614537592790820121425962377148437225719170486561218313021630219875165120385904842625380514211643086920979656705808934176513448319047661420661162905345066933490304101955957062504294984474151672715545542371412344897292074343266914075799860604773909543851634420056017366878742963816936268980311479987777268961014071268110099771803913482548555074647980019297927472537700107353465052000475936993849982890937061377744098706515602729910892795341409783802611966750894546216934570416838282720176530167635901508648288010191309634680053052226843369286647964813101849899026646913885296705355824276941493876384494266672979075605119726151170742781273485538893264295227298276985096527554923431764939135532910647791997498855965334055059774742234945460034120097256789652256896894765596407846484769009479643896374030089762546251406138711896011081528839861807668536876019308064469189209911727138161929218984560030426554143440866133959673949696694311342142547707837176237018894952999273098470143603007689679029392542833322916258328782489456472716728900790611341818969143016391001163939649209542724601984253480728984036704314124572003649223505876539887847546163125899559059743641380651907513747886211264651805498657955782667287419049200098703878691509317376185955754973876833513852480604545507361337442673847528732602291464588677535433015097262524152536866552590347780395924597330332287918260931735873311124196584568918557752427365808501966880310367253558189357388566971137549286428062151443071978314515005496534767756443020398198056087409065926466080869473507476675282507817455367563259351030666633211552634772498341906549315917895778097028522145160887349087517268071293219254479444320435044140039561940244820868867909202220139433254553717036261196486332406885816093556626176005379207991770947898047775611132718543611045975931591160521262319190513269473723325443109223665326988065573927257628836898120705462870419676274134307736203549548460430327786557648812406643798542044654914271668603289954795646406677599151321101429755937376452850995647881744847837952829359346015233647453814621040783479462450864078715592362877981092688795768348024234862900804891144427407192488857660985155172170579418391878873168778995997251441132815735676676321727099611028656286656578690788673229129044635217002134020806195958431263555175290117694365089879602298204637950472758499198523789028015745882978369253741612843727474150981829893316552101252902256345953603870091315105414869137592177776283628287998739643582386234222883313912906172137171930523294500271255737361154168352100521324054193900694876672383408956169085386491975289071234177844318596625993610185864090635238932927480749094212233280216735268339808962751837877141784151690288290908488431863979053825255551564812523159145489201250368995598205903815843187232463218638531752605119586739255807011643057591871703067095981668581702367132788041837967209634421215180003459388353714019803097642904386775363973078823263391094426936298328038924159819103880049200043796229473804441477517304247321719726558840471953046367023385802462162757209323155397311710151511788473766595373597725512023764810414599741374400910430377228989980710340034065611016051821429365163731127838657781931772496342357147481773900810153733805191933968414568579115049659525801969698442919475316443646720995362569214335364195682213709757423082313483818340821691251824432920369190904527090723073641644599996335680738668028655336028326915095680527920754706819427138595398496623087797635006561559930818570964581969047652025135162803535732291556966536223374752093295519143280664645190356943065003552039712083639686036359453361896678623328078135702847954739524475093695455080983792353004720715505062523408806659782980141505788906964556601295001668837850355506572308797328112434392964078148828769877039046208203830225416340046419195286756934634388354643050783710243276613336776837864519576693800347665022944479945404683360483008501245450669085351566710762145890932714132932473681412103700955272283343290081148126200859107826020034593641994391458441389317911452492289208547708311765284905526366718797659173450066798765832803683017816957927151965964523726076100494238460910326485774902180200445737348813700888332114070072030260052838386857106323207187329448404710736826959172193946577514489172473724181277573767501656248219470863998008871983889209310444470301937062752987255982845012683117555562475635712355542893713411898458211452161364666032322648552308200300453317494731776242834634913508070040675593164302524558312980883664892157968007071470461021762954977238218806091515985261399132395519111463469295358116834047247566397697659927053436168548809424360363854773396548102238832981126822385526412918368494975236541220736130101846312217982519770579268015173981137608558496634661109995644313423217153504274800334336128673099445565974383759079220458639257545132169937912344078780892741833573665307000910748400571683996468906330605771509053448018242416349461628242621547875977507302883844265794879092621430868518177370003983379507632314779378862926399327437467627199757658469522647632696333686693311639975096013569997615278352566240689971611109180389467029716467984648518075119138094199181043661499515177231317406926089963286518609452162411214861911613558674161002588175297068377967460569043838616733124364623520990300462543659588725584720939212515940730668074283406571589622418411926213075586932301587139860546003058029881771139055755293000847114645886009734575833536064920347632229787626562852444254183014339263053510156323132563640131829228345480816294055372392947798489888988747099501348983335340043341751355110407641218068615462248225295656208976919638434424421417781189464429242660234898075701624898298834540663795368625443215132482297949770853576679330210196502928108575060097708681044232324253283466815863670860020673915552641887026777310541690481791284552980139824375209126623951376733916187949263182950040488340325086996027663052991579974357476714006308152759685839686340834453695158715128054369952192900473679939769505788084972676214647629398595626975986533067536158401816597279783048804014609260595972848954477940697379901292321651946783931226602681101898051371443890660930388180854760270233188023987381206337612759427328848810307707297608666550815401724317293300165427181700718727568032481096410086355803591855453260078969043390997521349874705398410394147527832314442153734804459636922897961150107509209781529210517758563866907125174148563063903788239530719662125688733708410563534085093731573243076153944385494582381634605259489111311447418661664461571278278722696879417263810698122245415851806180150279890629469019792037529731622266792127812412514584861160564835165711642508085204726290776663189240519059646793113498422577211401685971830661245761416278523510361984867588866183858068120911925080772485792895982006622379066386467712355388018621811564380880210302718767607810626660200111157224323023099510834487905420346701566608346415233801803994186607077662042950407010842879629111222099422674550660226886227698276269761901286784551231956356990601291858246591514890304389723795483728566793403548566459577250095107809186630230524997311462716844968711491313883251218479329632614378157165276474207446921732320773927663381675542867925138947995086821008101154128693038213815275514589817798527336325101477222450627528914226672055939466389161779803671650014258790035056891948307893319461135092226902805130475671508578016806683645062514377746053058629037853477779069943564327053793731016932683189155272587813741647137258047164502621381632328459193115217995531471937333195153448078413560182840890958648277475276952674951974073305843710015875052558794506970478967491937347095472899967332325529528507314581290424711707243455462784723013708492548343584264204644511537120827014562830846637425670789522506127305333689592911869194945175843071645874452743635239405583405512606736260289793318208489869063544884736623455302600896108715465189963632438018462983153483521823671554548453556448985048056277984721707187496478182628154693561777420790255246103758995539962443340433736401963782912933585611120191648986060937114319086354193246655236322822941304746660540169434474749420249938283293746305867018372045259998590678031790062084768217804166386070234810112513111334223252179825918266816900347178999662288651979883399323773709227106826870808131485890033461221723477695000659046170795167465652280073364759396446215392207905357886532004760906147626941545997153367279653883053835568372377836943788275448320902938546357282110886225668695282673623174033280196251597551094767981418328149531396514192947967925907734772034229098448162972368028501644485983045637280069304398189052021641042101786441162363898647088305574884241731650554576586458500583869993140006257472418451892980037339838786025900064158644616871047705753585448331434838550352634221770503015458219802931095819816731150636250061146652987498391724517651566038494023174061259063413739311270147436782801268621429545892934220012490594827395647121814715897774207734487055181893651408391376850304293736228700696342218396740935540105554036022467586489500286206626906637449276765743142253246189003478850157134554248736531875590666761445271058734042656465045201620450782018133602855181805474682934634240182797140870357860129300141324137735225425374065287415300061278176294268774535624603088523396553985921433150992181146717322795004279382209772320890349524527626732470691808142994188806698658634873067224125292122980636620511190646347819394474535304688698967385077300129052018247968873988753912818848740067438413356774293471352966959968065082906550068508347476003771643408252634165115158879716346534820197512056102011406353587988135980968069324170045357260602726953778605534458917494088305753788146342225031674672317195119836188193965877277134150928060904637782922804650971780328580995671291596596470507439766152222305205144738977634948892158587413378783174619990467102467860108206955529280848564443927385012668859688616102711966356643243739014506019481877967961473344964142371346966130653199958419868048286218728459163282371253231666976394280655093476867816124257807053956286953892170769632510229560481882028151688517738402443843302169743300549859355170156078448281468512777437106452881988419646768098490778072347985981872808733192472521819173264695318155211326172411279952312931740408667503268093028164009407325470296046193315739324900673542071115988269231109033571013146048499745204612884488316062148255580098604580200057955881786928222961984492019676826373609454995678090631906378756425681103186340643897947065659798250184648135673338596065749198793103010085821129487522807595554657146690955066165862581971220871408377438024771204289396771218102792723125279720695965188636434584164277554684942563983200939888214312867715335120082801587739327208588124109577949875752748316709443863727463622793610444684561307946621199697614738365870709849722039709168273401876968607016060930855806266385350836601603758137308217037254919910416631022554768410322665693392073987731030979626323489994228473552883267086910499466105569615464406154117375848722128569019064777662975992165630890685541405521845786323238135126862676176856843302452660014471926064827527658855969304829022363294228384096074072621124056068658905676525451267443285107049058207088212558301017307153101202619237032211992269051979803051344131347786115037122191378752013677888159115395898013914073438752594058225855267890242492816262671732322481460141304317657189714961199845300942153258320550681076700171670190180518052872481079327257902415596077572684958242598016630834334999184321142583508667695748844986566893777397307885301660677510077202136080418776791246338314293713562391379181350805795849658954756867379614160259256531635742155954430154793401654303058680862945742290646313597062726121060505046938716410994520671321937997084670987175138433327038449250588946785506260622066159747998313359201932282894336058191178620118605429770791143001902261193709307884691680942690092455145234326613195786403528472383963671862061584977745931535812329010113356014866403399522247613099023797300264889120679588233396701811022852450238480665013470647081753807206237517429763749173391272697741704387825373915255636853730622159359351193905818035630693655460664969044827561887828282347618545647102726128168008383749929680833291173936257333604661138210864168186091256764811120248307443442466918666810059464396957371585186758137761702897982733230844656610514137820348984273740469821869692348223066391688471827844395972526204758928567113642406885754906123958988993637380310617839428412116693471972378606096726680166820966004499412333494505759692982180352631804134952442372950360208573811840903530628875830854533057138681192698774068113979934920280663457463532371395149055253728826328095263723713790170820766921506478015733743504271819871284903921061685024398972815707925801545463871105643677580102439754856563298396452112532891604237356149582169644531856040530443776288586979908373207775639592028488739080509094452570861171725747819827653534701381313734285277108942379914152149294576388836713775148049481346239592962954885488265222968538069433269027669817270998743421724340858502046973417332755058465977241981716290658824611794945278102471462674051448756520050521944981636462248177841766841773552889992589855139717651957925088734572297251383727751698536512874741021082568829507444053492797930456969213220041085354192717246206149192754942430880549610452848314276552339978137600879530803291053275482835726923051088749250142394783188729662083620830291677771922497988529779566641813073918561302473611315586780780974903583630644028036616188334091979385644084752062933113684818341838003931809393162432468946248795882548923650337290869963666389285174431331323266551632707521253131923771586803951478575955358481327115579128306814561210455217472986083921435722613772228451902084687612094086782832262322852764981446804235442280286557483722343819940526982219588427058335345267091632310239925254125631728783782712135436359786080559616714647847557375454317129468438984356230819047013653542650003444623506157451915937755466821559589029232141066582163447581998367390011297551573901955552353003664987203571377316806166344389000111253609521883222934015670165481186082787909756511055761019130025067686224832250640269684260288879575109903149885419025862472313597111092872600681862746169672281149230375482345746941540322177791028465005565599315416647392788957715282323505861289406592577566156425671127875621070798372351103948600727944374159330375120300157019321401097327223429768291654082509991699700149267346231931305455986808007406571707184187719281048400614499872735128773731576435111955825641515214838100941420939906048327987247460601034481723571456404983761358396251754500864059552737415649920679680169140096402413778863159772080270141505570896004786370576738133445679723600978308282472846714879220342832228694013377125758893748725047719991549712369485239795625658094169239594248468863296517469694533549399443464025268972165010666756417535641648608840952393269905427301923487663546576262408085813031112672510201449271626255406304891405506440463430147158013125686703772369474985504204380141333030568162013771216791035437625271221642071631224202977978648067118901843843349994393804503751916755126516434315214907778310792835696007527572660177350407759700173676032330517535555922039450284129670230084854439521884892779359854914341966649078038084931348376870725635745431563333395874619216544003748520235841461424611313952810369596237628874676961757253262107359220289866225348072864898909084393755236887897110383037982902583813989873430688720436940114493372098217390099654721668381298641944076830396691116494529781280520553684313222684506368230253383300584197958587166130770175642170719290625708498853577928344822010564553568307895500080997188461817113723299829845750961394520754548202412265400756351267077521921731065535324276594447929387406591383504020173695811050968037739120609535841110014220498791587216388573520464458906152468859155551018315596745328416738915939549790130816898023410586117436348746547687305331931965348118187949749463448851216397645389695188690963041554865681470359481614932683045624549936003505320274554217175701707519931916758118612902680698626214255584346963243338958310195173179086209729586155809576429919886133156522035892977554375921028130381936891897934551649959527499048818314643930737214045614136184379420865175331552509803025721943084240333647229550117411997887990205019148162770140408136832101053119603016584338699784735663875697684989396497454602978076058096266424575025978690274940206557392961919679479885111062608798270376859681713044477351484636627862193781798670605814181838566561236816987631215922434305499691007598075051761639454833507251864390572686937902614905132021122247957590930238252113622735416659942815677580348123247929061813368551653872796435557985358763052135487376194114672287510314107648772561371909964017794317860755135449755603341463011570266636307988426591263413493371578060190810494046821555032935718279622209214264055806074739224631605754552271624640424011967471706315047726888897894935849602793057028089182631665771819071113220508050749592056108299288418295324292770282811655628432787169283977649330168102253955101119780170031623917574063778121315548342081122019772330760319902529533153584942289863965175348495751504167376716376256022003787434622861805279215574800158531570025475223019800782013904527929601588317456335838356836273837503467902214315572406103084981493072503022284163785343052868274083840527131894420521776512208144549642748267046855162566584561678864023433482410129563592382035642300942592960452180808805483213978805462681270994145116200118474360510624181891829829891877083703986167578361523114982629469431826553037405272365491532555157012545540613932177343880854502252765288644528704097767521380446557734093674234406966719303335721684871614839734854267332858899278706085717392528335234732959758256521367874668719992140193446916118727475780650889160810103753054553192905829210837825169580953485009398214503680793304538296106278645476551300729323210143531716021273703255992222231143017381799500233497735794483970224307538634088970347161509177529559374498159114175708055660773792609145280838787236043504069877742429136679077152860761585791093924603632224039439393340863106325349522672982380379269399301242945241069807742946981692978913789770193766009825868590426355565740877267884859015520583910466851477785979236325606362043329917486894608215715549472606424334876261156214695578742913330184536529147942775346953709885221522382725016869186558422487586427656218142515995100178338547781736645132978513835992302381246499444850126402187528044439316204453707279858282024739483710139790681406117528614030087262331242791327767623401439648373552177350507969027615927956281431966589005936462642888855223486946487278729647707844688226007070100149347447386030104474128421650833889301195637130902440214749598748673457345008238907250343006960161558008027415835544960450010797884212137040512017062699766624317935230804134121420250375589590306843319182627299248007150080163018907395223962172945343835946408068885822658967337549419179967001416937508089571325465580305285923509340109356177426218460393371603063512624771065435635338768543415698462058495686046819628426000286592237070036487755312493047268180656884766333257206206060426131520363190647924098950326897602667245099571819935915505261822250526896272619987115721897127103696817306718514202290655388983671716068913972071681263831092607816756915001577209582506346884067574591230830471376019560262131143551846993771849988298567119980156105779834560170657584562785132324088725735243421040878146794967923982638638872524422970329978868516788677607463717436035790000799588472439608994691474863821974612603811976200153560352752166963012036359668547777875560938966197399566636349458278330996117207075194631673243967159449741927300241629357072504633380000188493402076158680397904912494553820522548530926407509907443421610401042921157332487420863473770602575608228083929159338200513752664585446689711762521866305409951664105485187897161592517896277564712832005257716711304468247899644981439368370398978524710511436915778418887094038698487943615129057283186120121556909857888431395096047716080728826591159100624066528315785103625417770945228567218504283224905191670361928668899467217722187341154895556805242237179323657462374646632591285049637703721557290300931571643379839515067611595573707173104850344901717120885787590017722634900574570021337672186029394030256197082932158662408342787424548922541847183375586227625155968244029672743816589689259313418606000045101172345223739578676449136651093384079246084192033404660258081814673999559854295640752175951693667152190742183142476623262460678581123264602339241041098895161391564558225579709673762943891164113660179356915305501201064095961365936905281798321957108839013693227429785533349482318983127168425993800621954920537353050553503285874759408922128859787043590765773344147458953026081280066264799283117398947627165165464450909696381803922241752713453284418360561267701582829650113035430394451637100548778425041722592352217338581194782742092087226442280593378976489073185440929882432720925602913926077795569619514415798246414029059109413361437313457369252118780602400178759639364982969643465210541864866994359173907410588484965217977948715260586538598007676698066885782283018545638996276717311013912168229545109250771238248715206893943239835419322222671468944394943375364103211087845348982554079569583606268476216163642247801962625411045776148146470452906860369203524538837681064280541722342891697142855614824848600737897466876568388719108978792951401472517617589949346004997163830863414610579874052254112845056084946069391075415329056521310010507776971738255823820474182866229539575788464274226432321517650900811420403102908722799101609415239351469016371281933821987283447110250449881780394879880137184697065943213928076157938472597327909191479045462698797110273059253385151238095204857010429308744248921853731804768186097613359997962682620381973351799499059541341905033110690246405928624850407550802790258524546079900010166567527365411689837936663102007207755066369206008741003430214761261410125779434969527044799177008604797821722681952454075588204108542018303771510521096886240134344732023256893464652490707739252088113234346026252460941019213232841756553415725367257396034681563483226545328425098138900498757283786688370875124572002726510515996738236872269633751158428489702189845448039569810687162317433222669093520638056268142199720118471779243496410027262362799165270641883696648108506641644028744814639967437685515907476027686333460461522606386352879361698518426404075653267059921635938181156399083443382171551599632871328873242226133553529336741972014970730947870258118771700432654142588998844762492853835934459322429824629071743848278038655097760557033995913575588351793861437346164445318751160199026800214670369747863415577921203379913435217557791740439592785343585424506623648603247800960251618898679855928135689197929306833290625299890778257866135278269628772110114203423261759502164596693494585714676591225130508841089249786166329457858522750081291479008251083211780307295910583743161972590435118732780528800309272903796741326876753770308799844518406570745949521054290614207508007241812746259453467874835911585229425756061256387427629081952092389698004791822868634224084228779327363986108164879940581107782949559118809239776130884945456466663786355990586114080030553245099746882252737156447199305155274670844506696946880947610374095339323858773542728642522388848658536888283195403164218617066947551599320258016781930914655554285808829684121053046960480570318703386501696965839222936902810609789709466987740147206191919108121540164302748864418348732613287732639312003795827937407534765380236361558018281158096959579185642373889600200868755684749019963649670606421618027094194889749583836453402852530513339988325248265163881913923154865047309575674589309234867115937157578752362080575808733802522184308211257653770380657553163033469312493467339091931738658588491072091051587499279231914278130466766555024726414995823716691617253561711988313527192674195506021002104072663705774737581238495139763475215328781131181513545530453692262856586620988148592256910022991875008771873039809113038372725354873211297159466462238027040054262272140477629863589693892857449486400067718840551309333655254403830333862322736062602706608058131779764406031160570410981232922177806895659593009651988633802195750897473732970583488260567315760506364296913536851026010391387177829244004355572699395548654387390608849168572153413507994299253664707558622530153434072301218155903162804887445726625780029841003469705215362096964819333259662228720949557380420167453907027478927156962581698858497214510226241630364236473000343191693499798244837617803432734714486890449189379037296913948866419607577460107792777594565036131749960051910112627057382146830000014507246524413325133128945749279582735635824366046540912157233801752966035995923826369696864073368125147369944166134088558888691966274418807801171222305057238035868400317448314398044120705235224542805833337873946163752666674491015853490570894836475545011329648030194563839263946348213703226155025187258708302693860459905755880564669151057192332231581293652054736460440739393387962979122377886655784745650670112102216834883660596153270784190953176339865485869349709182151022673035689008011914677562805442643295565359385957346799120178385774588954070395036406286783564090865033392742788863787787300389885187596505486023582956477737006085114679955546408741363003056882690881208121120575989133442257993853716710938260219143274502248628204813084806752982782605004156715772272588914834867828392369238364094348367799746050180281501643423964290245908651129332032844027212390767902211777051004708582105138023592433096039995558559629223548448897601762751025129659398414811555842183389102697845019103397822080598577301129278925890772489945478594708783285953877377641515872045380767308648081599967754230861847545412075472182026852295347795509185098136353299178907491016492530031675225491664559551143412388341754010126838022903984993185918807487188655662700200940717402061145367540414679340088942294444115112738654921788640040409689527478789461576899846328127554705448125715654951852891762489071917201757335180858453926226699020148787131223937642090468844519633987524775437300402004015559932742355520963134500489649434903762487221113100953123312259851455985325778027525689406392234530667862196788206841308282206007340628409127949397436105416983828277031709602535702695886565656524307389716862582381717767338730213516942963617278167194552835432828241953202885596817914635528511198143521512912287175454233736478538326533304161247273666433632797680851140699301413973828741085643522662477089638318340014956667457173223598813649036422896205466582502075296478348619265518148844131500872576658628261521765214389637192380693662641897939317058344441757728822078362196864644260053183339725790817018420206100436338208462268865238198512002613945787634140520510128807846187873341996273169878444820102215322407844753508917571008710053019062940375331935335025735800933019153286475708427961500536891977016048462879942261962531088656052930991716332954292817478846077266130482508488293620729783970790206334567569828698443565157751817056726875178064471235006536132442158106240130623469264466371629717438544560170388029634956278250056700532155084090507203623226404004629169503099966830396557933428989885525323356497835759689654848688638021187368874682988275141795772435253475456631813671328752319592241163106569488558639055734724711443744168277532869374871111014007053714386072156359343860210607577615150194623466898182105150542968202475078243648050198809590621475223274654228859257468152544411545200261414843192621652974178543670383951281314230978422562072304494552320589787610827358175143594708348695003946074085885715746420138020229180353989235480833691953604136575229892888314196083449400789156383048870962585297493398913862287697710341841591732052810537350556503159659199459713718306673003136496547953115660973762349508176744771352992095704117296370831850271131725030832941287711479442566654549194331375024855228939577124236343946886984806982458551309357205662465270787420922525918179509313997643209224382559997153156039749753185089379550300807289119598156647046841234840667476506332931394841573439501260190476901273459250605416113172705611454919394397320343387955517214943931665728956977438866221003813444395092002037771808699263214662119710868625402434819627110153674960596255340768906287448185272773331834166116818142520408000976206520032168193115161592978183684344779715704887571130405037183863532180662851612210096269860292096411863742500925951012190340302261749244650533716258031508321708633619329360572546049335202026959838096905196552198861405547296065732684354551349030017950267865270827345863183973680737967908036437741547122061381463840995030682065869760918145877986321930074967567309069589470021381188267976316749604883264035297850890641919578848991639609578788693005617066865076605194655312565005087810146443203756486848381519903005922590609495305831296265692111996161605547489051805457934733728365910328216553747679973246151369448133664278816634385578716506316948778187092230674593660985254142579210358116331934567308238038489927984763537028990310661374257471639252405256146330065892264993446124670970525513174485111034308646840411331587051041828549062205175860821182384389417819749525973304457665548226444130243326743024095119816530487657857155587687196284593120122335461637856112177150312430869130657795507034379742800821404533686928721604150662856173440462475664695559573442386057472009476190051894388418963401318258645779329106160456134006706759246312118339655360768039793254803208700338762792409771985205795393961861951152556445042987438288850572968854070040866923111616995650370514413188504757984686664175492302795798869890168355994032584339774694557798755939854053951123596674998770439162529140485015724680870312821235514794264916780615975184481897452695308327936301203169434062429288478993933813650702676825694378173703475750218035380257210615572810174288590966698374760988300176959518662237302970695756174376733468559948234564898914463507433439443617587169363981915607371650291784807824744292325364545600529564398069010422128449166599550176772753104659504586503348969937624345679794462961072268609276260886369544668264942448412348610032793411753907565393014235777906018539274592341772574111385564200606717050470121125497389159362129909109661697920718667397006817685466258104029242448776954253084468831942578330608740829718468477153671134985466120474791913758689893796313803164797740973181650762439246178543284389686423488427494185711944190469480693381347776356939529125996469205359733673136209292537194488110046978328403812927601725438809658388874203381153251784341949640457293707945022727795311557891369417846651751812713657709114589281389132302661927933367042650992812758832130797802439230356120713673878517577533581676788328232190947880849404169897791559312176367161534888899072032973535223928649318223652890996380276768949065021432846004501869856452719509904813206215114849975372477141876991091922087524428034460537070463927652299872511162001387461563858515997205168208698998327894092907194037636878743269568717245745316967226353537039874367983114590096180243905399359693528251292271248606116880139291912263550427306282806198989785682441211978757762914174598341719653247218010600480057374151034258710788576910835937396474769845429513402073759500493511143090045567205272501222194139434221681559667985270590916614175493440580331400135452827833418130129346897640275624365101011762556737289418048579930864669025639089202929348873726653398696199571403225034044671062361087992619247526314391983876065194927403995656381011361033706841832688586558930991623331579683034426752483448329032016429916774856569335214396354119713757538732289448582032413522671667120883270272636877387671824425551729756394206141915627631222293878257056501041275159535409499626311621966084894431059556952566745975330903270739628308704494762219428886545806345986406560902920410326874988917433083969931633466790095614527679461732495734618530982498725618667679168139233080571525309001470310130507561241441278494799729268452400435789859382682678898220834846503578715129859663083358192011221471979223474039502882157834790611439783360623700417308819372050492833303446757513553050838383025509149456799513930122162657440062328255706123899301202218096127804722826072020112325058377163821137166769455894831676355827170105850668181019380867969291607941763451791852018223728653202364632583512934280283939987333968696407711667587709461497307820698762009386094883243789064277996295348013268835224056095731918350227378518434987121209013740999001625481063703632615583403723580701716404206580446314344776419362562962135156689416284306012604177155031711903955207291157951604666920543958270071726633439893907035067852458804530111343079487278102265892235023624919758397165552026306368882383191990883573252311930050217749766272522958794668791891860088421410587023438235080258776722149484200618108689261687695079039210053265825284665909958639756066281738459333797292017514295734044738230545155370088441392288188206212662948359100882081775321401834111619519544832463077987193735676768389387976265542043162226157150869175514564764654517790530306046213234283563964837869898110844895108532043682389603507542648306980478194670860918765117649108335832997368792443229603519768292680879842780549662403750478719967813667361140224218520984111085237816059647184452856956958217697639031663283402427232345405072119978963506188284296739529603002361242148217065389656951455888981101466462476403189679194362184363681665703776729923194556146670468011811708002793662238728728858781613431699473425978963017561194889914919302784015468438943127695679341068832165777464313791158893347532317203305932042138829264220291483217188679656131758804309420560527157604053301092083464925423241447784337576833309024783957382548704346163268740639889603251152224491831222637140524218755995440001537825195042963583542917955151929671842050849221146937144577275573746512845434867733174503402216132417640670700090919123420069673163083983673609586475320660353884697624297113716247298001189393116815439743733714527301963303514481499547291887793087336567435269348593020953511456104570165902436419487478969195194566491275909003677952716278820185771364010300389966155918251602068022482830155366604396501922624818132820188387225693085874673252884860844620161417644106819015558902692125718823240034583555499713769452285392330923635777477878659176799819459772642727188903493346265644269679951514435843834289590440381265302539747232325868940922548922531951643748907333711624309470166340351154315073831783269872636214045380434377147827835668454531042112632452158231650871162095108045595551661205989073205257356975834643584130183402302018932316617408794431845757753225419365825922217436385960080206895660041034512620464212890410665924401464802921711826635074283877417762339622960505294215167424039640144124353363493163126818138797154620390294698790644372714792961588650135219297635468381026766602373700679786505619915629230412575169315319311876690143200674031861974553315816303325747720764679587812497009356509281970696653488120937735703675241167376096150680226509222419401665708488991883671153239234949526103105875823825769231800916571181756831161109524250115512614204172406441087646180373826617841150859451861635405420417835164827148108838741539498450248915138645070679266766764033856404179739524018703501671319083955859411477775245308484331965362098916492286747610025261028413479091821137737111877764913955037500549897207338208521409510795979396488828964075940758662978602345909237296192897725737911461602978747479779212920297242645399088046187598798304289168523773069300117019703167286943358294319059257344393414152664422901091659667530208028904667340001749565995034771014249230971649349447583671970450174649658839690221170887138837019661795718116608731024112389777208250726572133632231941930199184996607896913368027659182520108441823974395485789044422773646173154717651270794395490885016362973773150613107671614802387434167592039987426705006228161837281297813402854808851181624387111997026298777549047384023429599594249211747271268176728418303547921814779763064290140413498424635653710240611030239940366871962836523953774177706569327130608396160864370653472700913916217831095345018641937563778087437660314387907834335580763758836753346444915802331826911556719398780222953983108333590506965151175969451420844450366448533354040310672476538923278089171036298095199662269814098562497241181420844652406878064527533547255146296809055720764350399439686698351786856615824138255108596061829126870016986020831504745915816146822708443921327949815514311017013780749555903664993940235556743702996144583708360151613933876364795028513435289945672637301550673962133407374446962385490794190617316194143571559240968218025585964505376846914032758180182081060209222004737410803364600774477451734483091351291437734422574376970755964696308447132793423983754051686601124561323117034289318222903079374917420719850629990892049793832493412056678329454145759473151277502378864237649922897033181845530112836911666436423831828643632730609140860135390099786510720513660540065464785676267073082613871498749628618092091543348429219449649833696771225135484649004200699462457320208190286628099104998052595476489509545251943256715165984578229621459179667732166547187688659752796092023342439978930198229344856182152669132170911136727681091113633866969583044450795474494231893713164676307905598158626438153377355042952653780769544063533734415894762536836493937472810320403623776310467122980781871875801370048303970317083702102941741203143440317091937132493492895290878286015113911350854529292775665112911651216224579639777856436685178919733234439298269152718299259645840320840646990850753049374909490680649133727779877647076096871906487694125162897713902769396042221579825591170667001384883263106392902539486178308567159010692691428302476387104359385493684082967337147014291720495679112440958064571933305751898717819566092379963531120474682421736185640871973486579220237219406432032109055657540277264635044502122983891822465123206714057766797591971669471504921209786629141985268689258045295310559991217002605234865851804353299851324529725432449543461702143902966413129102670451242902818363238307255860505301989444990027279553567046144256737905725026510902410111094789172859947480554455017401341628758032523949044909020239866442536200294357393255885768967943179715787642811391453096448274974439923897985064892619882963967086754816546924108664649910896862083564752439745118471391297947607717012283294454230275884174815386801363068984017715053991893137648213786915971758434042061962742679357859974855916407187652878454863646443648248034824606956548619997977997496427307326399924699581202148168852340412143095814595930071918210940646054775390537253908932813143166129441664614867221665032336187574149637606784682192503337517687344918339221650128064418308963520959108661728777556780856979225723757640450586785647707239242521351785525824223836484574208836064415814372799349962333112804759100944645864313336919796081529115577860462787962797598799923178568878537602295763639827315071272505754838046724103002203329790987125336237148287416108859164342158618863992865538013582339047937054202384712989194292415845391629652672029452196868446792771978995214866761689874878039936581869804186410553298193025402467813159510386146668312399367583109229913129217212730287533789647898339940460903738021725302796180927306383169588560859340095995944081609316502439867380885912510422704620972114376504212998683244056489766083884358760510857802812082907623072316078403846253807415259039689588326708322628660047083959937452501605934884314548681793618311155260104185449715630151452674922544943007872570119662185558574619077119960010742230998919185261263484300682173398829496748217288845889581044999761823094277724268540354872072835163500406043007657187130265165251977730159999554244736741816859551158179594677677987878983941814840024887634718835352438595436809724785599172158102015650874786437564142917190391596574587561805010278802862660743840067284734673213538868166247292935507607496800075003475345101494622945381642496483535854894021289877527159707869661807057354361929440571697087285414942243201340432285545988056473768691556783444483910931209073359591968196216567217925743396724307096918057456332767772825455908652761343843323772657677265851070041546440948386242864185537456929435467614044858532306639967648818487568941479042405435563563532128705953917955564511040559665090755989503551074818385919165097478781408408905660263246448416681982529252683931213547110521037132224799291242676126475128795314894164355602212791944784524945505608485508055631245436608889099459797165644704898063839205011416207983815345165639046585412003683995693861938890558170928583813541514175059567959179886542581058305826069227531045222421947386010340054689426322385524515023331302106416521377479811321586191110249690519413062728798102476232950129048261363237591001143963255594039475184825325422731563434439711097377380824155774018490641396345745412348142035545282072959115064061891026418890955665887771749913132880849595425128664655184901581418681381074419135502666676902364973276057741087504220948652283270810723264431584396985931324190840860136953600209006954330227929648533659961794320685001411525203172369804075521037472269120250792963644884256913198605965331105711955694268325446835781400825003687910557082102775619128562658438870109323886122264050848228374986986069717276570679537396834898594758512014988462834389237170754552722242336494567876563692660455138575022806339498143544695311240990069365943615453072767767127789659581541728295535382928193844459020530930210759696207284548012006638836163447344538087688269753519444201967563296619516325267987167678059996915704648013210601471358985763118348268290020925614335544837672657098296302602838892382278896805956493927165721275794988496035772375790287124924172680674222559783195785884516120754052001794896938754478921132834959847579871035698825455358047285485598019869527322413961348003764339116112608689307791900381968804283132547878396534592728730353530153298179774986374545676245573468042253516419683025759047963051272843753931668414713449316535807130395906180925423590590758874246167087009578715698467148092323125736748079601486347476707852234091118679807272274153718486607706011098937564512601868693014345274241411597536189265459187513301813731628612934738262778734943567431953088206351494417823209349870633382064367745780098374087505138360184593299128320333069632653270793072203612377227339870306778669302848309491296646437356633670579241809796969880653394528651756253660140756757525566682217799498817199429015747788298965159724100424328552113896095435909668900548736722448455754500584938600535461537146702071467902035772338311545377202816618524880099573336925987954952411274304561551918971477940393620391673518909573513174248584640879968152873593498067866161467069664010258732552559445315134170540823492680113501618533371575499271242942368824469034393908407085270879162956787375940730039869478075088203101034370961973616290028136484080191685047713124442284924354457731844403354723746035533737653276672424354470034950417399244537325253742085038331517065042376427078411308975352652432658089290281731844638629594082056966364066800395775516863032447743322786333239928794106616713995967035906619892380899442943254532420525905763484836158906297700993593340789413500116043283801322468301466481532727226052460306166371875511975140508218901614445654175401073511265654407857342453557642242338312517896952879357402022890865114182302011973252411625926030138537722275794375915854191527522474395008507113301848841980816401076043813700269020419300554786941713277647633292858510710104258126394686344117995414320020746156146161602290831797766563427273587311959747732771146307361636179152079163706148984178208503267943857706800135208860441526146407689754978948506109403959953517728661919527539203361155035192857678929399783807547492940452789195737204808218643198973806330042461350877627377438055779862124399912996786467352957352631789699593429138832837686023205929873919215070102540495219132226090466835114934380311761512272406458916813971163055428607367177974128528977890677219612409572981558613118284238530216252830114055740248316304545887539961941726788287981958573006527656317238364682856436842183909055441946878036985601201118511450202995440378609483653185037886201737513372236560143713760977199287998633168403229551126873009752869724243724885062295303874669615342045057097978013136458245196567341384185599795686050208346260437251609229628517988741752054855704515311521375335252123657222147577776072442325850034574026771612767258535127183193987575867158967657241559805453185459844363335245658034768634255903915934539867934147276978702249135393169919624392011884872380724446929334837676833675670883831156423677684377538446818438941388846602583728139586161975714288939286200798263399382240625951929443880116895955334661818259398363877140798104113179195946758859251751935614636041847290855103561406044433503088206499071277412537858618942350714649764661550457272908205172696649049395832232442619406928231913569672140747940310822906055644350330688641569461893853290221014495556000804048428416363176934627078353991055261627199748463840147688615899247880212107545189881419839282503802338270545579495100908920169901469559868140683192174450657343870587706233480814991444557685974295071535001120145000072638130418234566109187947726452523340810380510907340836708931824674111292388864384198957946387536995608382731135621699034867876801913976837421244086939137648563456971528695575694829797910145940484031904197539177545978104203186758268248696190999651721594345355006491190391524279441188703408584870931334946371581279898721578371208730529220393308084932008396350840653938462464805961814665912595444213426094033066183562972835358978057971807368873677729870220815873136860986182552119477520800179219214607252070931188409527323559373373925241494413395121507127261299824011051458800746444791559127102319176930744244148762454627719764242564597769209754005198484710986607591921174181493157944420449609231564786858246702796325445116852823312463277165244849350118634258048268306484877786004085190709871431655230059712953647895993508446400726017703752574161857341393925507646700732010508232266474628813926129030344541008777848759735125036081781737995740397493087730063511713624612191524652760562849597445587006967810685590261590199133268623810805366292696970145774864372745125260317374987077591070079604744589047345604081794350033192186487761943578998458438119630079369382529496838003035242476750522931870134120650407609877530071786498935228624732373921790508552117211559087107689304527453857187018696965551619996239209717095772301398723737013828679760765320835649066215196215083645275927151791642309771824170231213697655042508878963343555758655722430442818514249102890554218691995459641690938071072026594479949980432880056522433672335387259778116605365953553821216096295423824560563982063115751977915300707899732535622157433129735095374976158472310650456602827550879779902619306906759471654970392361980596041285863188857053058529820529587231128062237094053445279823875129231111359815141790464765327550051788340556332205543637548990657337698123721803053036899032580128071406921905064882715496204510878645270389094899763248641820443386770308009692615678562939277632155733031288416898852513903017766966381058929792745014497448589906842631785396177096333237551300582930398412608101062049553618633398219334527276703790410960907442242655927318838503277484250452497324623180057157585553607832169890626505732256876552106716542177052923872505720997298383179438314258629277727603502143252164275495454552851053387779256349470354252213339968077887855953990730168347765513718202420707927357622493746559882715088492875520034712850791940282346826085195418091314715014348316930270875562699191329663041310078475010961821629173073857137428254944788243962638914929742158735261827214879460512985626862019947243018194698278509164762657829550984714042227606158794122816996606463628430642065296176791221623660165107076944677270932578522920119842751903110552142642417971646017947777804522576763908686074974461671305629146892675369988609358409162662652346699303578502429892624843412541266976859681205290334291128823651896665174060162035211569512596663618185870012214623184161582031419098673230301699757320089174283210343456859435635668834398458272755636617024277511845290540517798724085069494531271500006985160737403461506237442171272637736070929815747372100335777665073443437508311187140921479146041043046855850094507467477645837736086085436066636661210988335600363082697702716774835435274390994979302288836504488957067100557819951594352983598922629151884776462252414214627659013015299063633607960766332747062450794491136860860873470281921215001222784414010647797853678097681513689345472363678981800011791160334795541607279641756316972631983748954212961911755382920293438131529988804308474251994126292403902961607726202538411083679358850257219611707538484893081582654825587227131205033697577218333082502337471499384259109982397544082830233222900606597377520446300819694662359473242217533401985616580317372012868218271215929637991538160818104649582932869227759360498784258220463578303849230582060148639630420045872743873293034536339954115479910803312407774540159579759011354680652961935960624007545496432038954921157757358981264704517108970421267942750743861013462597045609153506648423328853124750275885653163453515944781898094087738474161340901508850673900379315575529726627061105247069600140491170205527536551050885215359464848516268118860262361158820032397402310029970950676957509055412044637360512558348819632754271533281499909312701023501881468093656605192586100867794096204829007883661565374886355361858628897906136311087626273283759972553590249405977003718764627081792500625454212450980198669133492616055429457060963199096540140613662053977726780408683817043388737028150695386366362427273856520921903005052532799569274308497418621136532345628552555729954769705634595081827831820353750796374440751079506713233556470260652937738479635181895003822180195963973768014562387127287492921778343065889239747565608714930176027681418692955766238214156562101744844542668338000667865937896251805269085534068581278275934313757078303205298374799961638276981757934244052220016668007955054335935670152563957232530032455867747332601037049228510533526264760610343156475118502632490632650447832178962418940488118595492787982078814357032034007761054899051825456199677184469274202009949675021761899312467721246859598883220591444801064190223418429499065499750631909583769804869656296671609765140611941222100307889300413923360062228652439231959039930059702192884516690453999918732168104180289652722099998487170618571144459991646092716702710578782480392817056130727711326967027295357504126378189016307801669954789688606988125023890313086235723049499032038299333989971576849148515755171905194261215693922019062071057388396649422949627927488798381869617847363613667676520608002673571345150290494076685280421013356294899128905921492621478154541802095436100245603146959431220345878890120590097985779207066767195934952694391660827067193286729189875781542767059399348382728280006231998358723995892032511120943083726982875811355849706121185669415010025090643289072346895097519573316287886428541295520576983256730963410108460782032503960552038702395445359144922723564067219359023785798999380032820817547489610120959800252718873479318518680862194265260526749947623705295904653147025526886936820251995912080187289836969788319329203891059157457776108236893950362748440878564383144525253070436203476357859725280188422682966662067264551423775732888581665233324000048559602307203452114426680407760021448022044243270925845729031115357516434174906655831246667901782501338036521946346179809332982934976266594618828281667626750058555076501558695823456448810376847787494721811938568360927084646531090141233007622855675312885648157720339430762473677371391854238529375699536984653806239357275058518657241723500504365190076173872579550193285456837581877120997548850265130092199292771367548807838977186122146133776144457894308167391756923981378394499548284000522738182149225144616777836795137197907704774073469317493522560378024695622099798731864465808589170735539963733387372101113507214197267623788200565294602238123316075976161403042628538561065169572012044969485936200378631286582642177644641669858375855157911605801083741691352810616223580916314428945155478989198684716561802619125322458839042184930552245743778195861300752043507414896288593968003279893148759207903101072413935211756398232912562549235660447760760214752525699767285418182465822479847288158940746754124699971728866394907339851247972309196606879367257905056716634613093959165988591644639746013553195408352913621712961250393601626105603854083475019302882976781038193044813869233189679316569025510436739830965677965010971687313260798188685631912045711131898590292653872139527298908497887037369189220398952467436503273059215431194095926954763691705153254772361148870165099360290953017459131232647428927770484965035213573979174301538962589936600507281194871002163447938159973990902513752470334556633024490427792019702717970716621081379167037212947804969886393114463385708195865292747282908062534882252528283209704943348187414296291796045810229750874825594461539018418603408318724443218813595920474605644931432583739218418698232635040194905042969076008475357013914276042985701620552675317799997196257504645641991693960054566015165394349325395339611156283343949636651161001179187207107881363550551505672693462870114075529122299224248125618581808336435800412505977087671485859926135039572679715292545476750604767173661684758920959127423011079227649410035081323958972196647677260471556189419601325941104098117981511775979123278221087062248500826909486805959243864221187672628809009684320564701163177804189691920647993934141603468387744575339199839163921718801226193567394644959124021575209750140257707731277696204062390565339924941663115920458874709676236769804138511499023767631740532944884041094743483518161316777376401861957552929573643931483030255524998202832674736693016716348830362018540981626651631875455789626196342678552453802127484932276281646024796523842109985029861463107660764584327348078001176688217085115622686431241897066822251467259608808361656582412772853072608800107696320631889002097100170084380103175326994514885283829284574894587538229608836912032660783773818408816884276506193465532053553241387992781657168477249465228670077078392921881052284097271330163552811892029381816694470097783729687236759531407805256344345932984237812071851678340474532417955280415341508391203092320682768671895499838397946293112308592027331362656831439092885933375321637626411336985864427083597151636699377668717585098365368757709523762041549828395151740811641391099074075107568893868212722581116860934433326336274917836608581445114192708095505716970107754159311020151384749497945861250833321111845968611039237208340666671789353616815224368423987705859812453781480098820440562178855257484825160801108677631334158500428020696692061279544575120029600317020708321453699786030325187695305585049939475541156546224322715429941356188130803926736859473453667153744822474665892059110386363412462603041803628563253810303035923185099101601817204447715227161570445498300556728977982805388700420433842869098272418529784996666142973588106695418886613779363208759901625355415724221091189247757875784867203086004636518688414022268186956277180625040131725072377472924380282367552691461144338961527209692604472498212938090456073007693589376104815240421096971826336205015243056521982896706581323761022739125150602632055915101827084681044892224299690500659999783433031765377166556148144983949160210283798938374133544469676069694483005793836252651896585728501109106308984231145458970983043778528770392013509601606780067587978005310304063370776286786838834722601042840712883284151482667155146715118992137793542077120717151005948047024810039868281066673432898633189927696989847379239821103080741397746710850869837087365259956462005321818802220691772394726580885851269815900130792877088710170460157930111787007360713450081831243082385528315172915299409677533009648126086531617505950025834108264628147744764277532604887272838799735445637894692675676432194771066422562110305448725766588881566627636897092688486652450803301761174811014567464646427094556533590941214559613828741413966842484641703294024477543494562619647904158870416866965751536548315020144163144420065599931594710288835741772457729378466334293976981691718231215302874573963941258477071709110750321015560243983814966273759825754235689221854075572752600460592696161793621195024280861779787688941452179590150877820392185162437359009605653718059077869601678351501122638896386493531306691727036162699070385602058225236526040790930298792487866910754921155370985628084332526389830669172010324356003640342626624495195468613091567345384224942765023067564465908095547708559425983032413959693517795242626362338488607504716610228497267763806579890337934667208807757267910238064267737780621582056045162734564060234492539044675802771765467189930704842012698926841790614677743960763208496544946681855090475244576112960045200735694772802192015458978397547235402236691268667642935875560867115760886475685088535499226352985546688337236390612975321449115483561837155776657614005201215894235274286499601442756172365887076084105084612149723182781837031107278164720140635666468968925705038844896308978878233589791367912008450230489816294483543074614752356486468405587709653365150066850472662529383069091665051755715833261425826626400098678754831165260647890528524668488195333324668249418294614560367736937467003679949062535780388447058922700036095666548432033086955410072217270535421649655921139446714042668827189787677015457124724882982657459815137250034821850125772386529032379162368659454659822533564054302852292335568689794858208526799354085052121947981204462088052500319163275063546424150989966001432691583681176893123581122825067229881213659447578072640848909494323576012363851814465053140478135437864590032106970793719936072281267530763198012488065889393319420723986093575769959228448149630543369053131072809606363148456611605158400735894110032736691215427633067356775603354525053576425881982427196941852204722272090936692676614380623022899129844791809683871911232497873401403012770849012349193024505813287131454280674305590564090508342316614501928504415278315700496267264371224899223461787225148581559875358985913553283167767613886016196392207139579618762102101069752703495634097859805704127853565509265039281410628851364570154785243581560371380177515644772300168251362211840964991010959777452335825941234319182565155816319378021648980989483398287125667201679235340993830286871605745221117623453159472014275760570731464244732000064093913392095524523074205662554829547974714725297259456848250897837323993270914778672586043570877320103303164406830413837511174904407868908162995753621747648211237841322619909521930704013712980079455990464854772204777203829848977799259540618839724526738575384177737910154951675131964632495040349269437765098198726756248002784301193526808128471596725800109572783940663474414567384263338086175774174630593706678036855810827967124791436163744923897347530714166296161197716104301742050788668252237549249469820173222035010397781145849708001525572785686016040449074276386030336015848483720562639097342877000147448078325197953216947196298467153093814968677769022561863062981978421942612690408816643298743043084868369762558301119000321917327246932272558217403450056738037425722797835776654542561032837965749486220767344958463492869805095360081568738130249057546081423181744449093162196433770864219993320327879593046836797049845811462999006994288881789814644434450379844159214923124424855879977801744448278664672920739391416407609639971030322402245749687000198697723540114883422746392021508616886118453357554182070740132544466911976744628769236131479810229771053401480769755394313135414396765113772969586894576078142622651260103014519146284938591870863675224531919032638225044631795050035010133678672968498307270010526617626653551737190370028501865811159973385653508647443203710496670255070992287508258214804772311555505382508778289635728117618458434236270075482459947973694168266389045702573497521327703638727332867891798159200231701635959787064429532867569014051155936634394296400370363364212001125171103217024539562377899739472027563840559692004847398371038150390394350774142809469984958753327563589863834692435431797965892590739813729076482707264911122344739347016445460487302648539985902847374312032098008213725409429032379436384815067998349915539532400112707363973802750677079754699600054198540284346466046584556687835316448943598403653247233056249406852465516305320033479731563450472133374804166483113868865907176250443197482795701748781968928411047373705371347938991007695266545555113851091812120313674322022357958434148393746194834170622501841145775095199753923802108577012696397820841693125848957188016668742914232391536642180792730570884745877120199031995821920416341841671461649249037535972087655436347794361208567689320179484978276975855828820287756645493641926749746857939808711553506934437786921183781817372131128459819265596370158481327775466305520144855212237134500431748657000480789295818489612559685236930490790062259750666800040738495216017055206119354974848749911560413877211059012088581910917516043010187526343126998811791761491274986691501139549032622593492866301824723203409689656675779914789113294749520078615246382303110582347490764503817026701146707701152415670470441342774150358803144738024217940274282735761969956294150001637226631176483915024909077063197852280395908613295339934843376126800393276426155874438705359873905316346306342380658914895502914875999488486407997988008634502999733464538361976048578336342214900540513522033222329243422383660547898346106550598463566079713926031944722622511731836649107437605358767817361334590162241956498239880533285115272300434217300748776267673527659347250379672548101401010731702221348817464386958166774516757499658930665988571650497353085724951476507483112109615591469654846306059439924738791341916578622449808635864816315057137704375033060479692580813685888249569459565501839607525060913992606981032313458590021216089719078627200601127204812158505745608952258395853408201929905556666116151853850369640818877260040048862819576295674962592625799952254366774825925180800787086903363167247403085407711099647004997300101984856947458022497365273517542122617760594962539476596765467443235993903878431797837135443470558751331989502143143681019098549028755258799218211307060056641907242670071314995431297099341339005290212688447201814498579424395138831798039813838929670296728374125447346842474392311730701538759480887494381138725837927377649056345487237877049389423520610089851360230131722968292196687461258980204783979350093195356532641593847770343932180652895485291616541088014461869322588340657363826693181191521781977610442819204492610418538455773049205707190761816980602153454898252404741476308024155968965491864927102707057740699520555085006682754658500109611785511084992112935143187622801175814745312747491891672021106036377934419058290287914215360575022570389641562843042620114321784808515122425364009853539514775007841067779271779204856722862023836720287186495980289869072072804585021909915437850588325957494064372833664340410954397576569355996281056321726453159558245404600895230835322182332589605873048997617855062610399885656071780158076850753173591486690874020133706926519647934791852884000891917997079677564747683061326441523380450086675930439931326494834680133038337719540978336616484430034672814303841027542966439317350337776543623126229539936542017442187205280869997580612576942436721920244853758367147818283297189362362430961509862004937340928636437677429958787173189584474342434770926193686005941968074590203440078372566407209259913283059260229718739317599216399245850742480457498415964395258407548727282056903948102009509312103588289445776546677952007439876982549074522446788077453923983159355942402439631337646354052055024029353181508794908882364506657312042803039595522539850092181139020954520763258962990991719141348214816468698691973438035825855747247443057019267502750006656633753902630126193381760024577892401516203714656969883233197868260255065240638850886188130593633047172523290567940254619273981877225813641647921810920565223464422885378187164614032112462366632405680922216879257625880863855519526392357098476715199272438887800991045826487778014578313681603790060122134998305801138539323954121127001436894981011926976851293958128887078580989728870411700125068749594689176075659986156832283297295373752730725276441749220363006831091502808160806274130323253741582576347649813126599676215900562248785010756366555975240798717934545041843203127739360131523291091367473139323361757610239555706858012731552271434083261967035711120659551804970592435402225658435621075202267124038355931978985458052176319712374338227386045407743130735585957727521399666584969927728234257487769518081747331197029940814397399431019276929198353860173557087231798628518947817246714783434753123416777780094914816069407522389600970120624057656464436770695872106357086212575551401601967044835605485759786736218706792850234977359031586276747047384070352644658728775181051658920181250036238712781715886464580807582858557772816662606556997646824307210752958785580352807969325935256758039691654963346707691041161864291591691433646007487802410468483468556587198209101951602694319368181938377305041284789842865507662436228293817286000147714888006203603620508059042272282717080851313984321750633426877430352723793519131329088528498949268128633179480966138467284872561675368787737790151288311312785055726310376038581719658509242920227029945654309036741910496026084260624893364671736109102209718167757213942994085813683762449493520473053185270387128038733305817986257493316816536313632624727697223140797072904204047386864808271011628262382319375591444625460951823845308642098815770708121011944610724342663463458291516121797298147676194749831410250494997974826204365148899500630281743488195891494602130076863109771487300184210575346961351950577105938377349086187836594505765326560271912036830966568232249485712048934384613554454563688600036580185357486490066589739032453011830953131546117404735458125460038827960682661230703585933252648031744816526353845384953379761541006385585505102034127437880493909294211075731041777730392048072408983736974821977140318901112285247359325537853843609120135448036726406973469674707221477468171580668554337203538204589345972585739498921260059476953603353283979554672483648508302887042708061060956996026876751547149059425754681902881583789935507598046442766446532984922482226455317216928301175709140819638859471762241582018688445210139094000126669149753801953837792606552263953496558673813541303745259601019446174744852722588265358507527785987548387403166573951525579931513019625309865712462612799431923005374917417286499297409247554830036717244631280570410701215784819060670132057627849410020485776349223710460556960555001167172138621452410702607987330955293709824414931375105698959184304472575052017006305922422050501886199001210972919970668981574528252678779879827322230301918013632115394228988118243139188003833649165619014156563452663405506901535540552140587073412140604221309125421326517737442541823631084620837247581440791793542228864529055464614643896222311568929024539221008150911777175143166285694654191307950518109368957791489692512858291297932640100155500123211520138789041879572158748528888743707392318509024832798548237187139385342761890779007099176279490793030585245308662249170646976950448582227562118094199312100506800279304748041908058453629246352277281324332492683139107102226835015249090187816787836501747554447217784632203290984339436774704345359627036219997394741359425576935664255479108679152539588090976162745137695953874687428649325204089086788190317110697097550152112347749600855143898432224217657285444216916098158761924669421353377675398936937202770982495064074144344764869644297614565833540158675501297146238783699808408431856775420825202757628413447099120153058669897413555117179001670192771948646748836797992924215439081398010278301530772107446416115140764880971874920636663712508038440154629315153304113039665683002574458234062194191379300646784911280234501563316770718559661572737153276939887936738461670911388785300352535475040629641639502692548322149332933601931913459624622720541393275633810025179004875580610204208598102441392797328243127570504688969441948861462620058706071006378413343534738637194305354131152912424108992951830847403758689211942014259199793335330713368904079290838056315231427150437954603644353261131568073627932946831774817801362406874450437915328150392189532998220577011560939956754199967451202198761331251948466286263505665564605209905492570973234593868836293663306299851334393628785060274964104782112302027064068606674245269810770782409636838810918717869217766181916610764896461726216724903789137346369094435983499946951686069837169037287836614320692225971171484892115520891191465946043472715678359663350049309618971644978462666078691250825977606179692848245709534402531379012306020216409227970040232921620193739675119876593938057795481718715670226403477855038225861405969755074918377779865414174489119594690032625578583304628525691646400299127410212070011590204562467069989037884569906458405200342626444232185800853007962625958170848070382564506577255991245319953520539147639592935797113015351114979569751775417520248948676833064929662981929878014322007739490289117731578568554715832847331190486636956732376595936968949725171868769330282612247741740059811561764486761586894354804572807203205385267198653869603505140181040146757540630726926512386022537560568124682307402009938019293896963755669122396630577529379136324864069108024310646135740584365161483764328225752552045100501355580317196849668404340817705379375484073804584721993122597975712842044818456246191429090028460778656936146822132683701486805294876460536845786819763120981211273489709212015930495435934342182174749070408808920804558596719455961982055006286345488953995027411773674208856915164729589870776747357887833613977151242694568039943289123294345186347278706812876669232103542888537039982443556365622303322725164258838753779893514709183116959160772251497092171740747439577667971311661005357387985226781998683049764504645515161506189652884879751002891460713008848622467668622865575054207864134483273987293691775341497610749107140292256884016723597944083317827742780869238000948987353723050171446430658322592358440954458331380252248651810354662256219362355985434144142009565011486024781278775286485500470380074963985568385878736732838499748856897872207068934922281748599962526094612973358653016480977451320903573416149799219997910151496914840515692501269612935297594285893619005847516102815883580510459599556595964019525897052205339425687061287525721457213799310327591203505414088611395415122010925266916896992182924940470572399944772620609303231632389913077880752837791435165944051330097709769210605584916895907649662553925367196261335675961869405575019760069779158853381211331891795741056467844690549741099715990840225324373629572720486584330476229338199583721495312206732356635810739898505651870097686396437371975966863852140018530111997690539642355320067259331421564870764655977729447749588253121399143584716464174018589004758603716517684745711907989285802894955601362334929509557622379793205863476733296886881086683243269400843990582294244933323113988339222172885483838272991526446596694614185860816715627842036371364528651609550920557519343476910136615947216867829407897064490493953801525443003533062944424642875282321869189844728098763590575906330967891133064660321854984862323358654838087356825505663111634079326849626674255841932349102281236154442416669620127698852452118965695286970623151987053475170553008899835670320810410193659954037357153653628817229035908949342431726385771824904097252846491368567027563488333078571817619669126603205844666318165700144893737733059829545688233501595998738960640229248741918346355670098201872798656790127026085958023942917971154435267130273211831629414424146293304440497946441071589105116907687856752495598123090007433380637367579521523495627242744491545866558370981882385188642573947686367526299145389615599073843728355888628714155624166008162713076254103393881985231801426933673621384135247509707737149825370449835072871784813966916950621415817527151404321104521145889012999759636532466322356292302984208087963016154544555156259005789322674945363642607989065711769403204429057432205991023188428351271031060512717221349025761318574319809657940486410864122851172152296908242259987367018875404769182036211169292651261747732029353905969399563830472990283929393951739641644060529211352517386348003639188098310632174821192780920602495428330779445970341901626488821028200547004738942285823277992938794132375527667534988888340068986117516070496279374326234807222902954158005466367856494061485617013156029217923214156106768825751384117088803446348301310158697682346524664654773559932052801648078836337126411675660613269333007397042608426191079479206738640617551532138192819854723009236599559839068961480676262163954470501047708602650925958554354429309773331609343337830449810300603686286133110680472526569963397523615260006903190491491729425985312643937310042499650116271022665239105092443312736311387038202589261144426963186919718493511603335385072354986831578466402508852983391101903580721972951535334011414989486273023603357081845594962292551884190645108901255617708451551789602152306767549866324642202054914563875843856757228263628877639641670067851780620047030987273904502968895107460688027070921095798274519354423367768602938195436020821345527742339233795422892365714167265158443810240880076337778724673824699058262986419026318772767079238361574364397899681044783842374670960910437125922652912575351467465480838521996957455416726302354164359209464277460806080865485069179835105666868174194653510959810719441761960030656906987735779885017890046333648872236824094231232824980596001444683623508355591296979162735368021836756710968135994455757555532839792229162697718200321718432371203857909751087222899577842592125577721255568131246210816825415128500616969309789441346700032558947681971531200222897910626725562413373644109634277783351716967612728767329102075747714457399140730888307150462713153049418822085065597741766333117321035615365550141602156828128409166729434556253530639623454616470248760550130435748230259923819142776772322631864050996077096640893180350999810628562277406597551437068191345686009860648346080863787289478579526100353015909051181043815968955450610263131561450269679309729835694629024328537841795018422942601680873331284313852647698058337838809752542313316516621664504381035384322225668833596184256755160193695912593814780673560668389572269068236801518165727164163697294508314886864811530069051379672206094134802808837716507952380125172884811681563688279554718052859405131978633792371330087960122540981117721082959123479225538215886643773887285348087881096083204430661887778180073256883594372088108817432316016755450067948483928310905091044778482242562685087015686516115860587741196050941273249627466984070028862191253174033278643656727048482597313207228673208465622683325076424595555327978407291636267497765404991556529728580428686530731115044864985210829427778682787357586501620975067317251401741660628752590586806289277059518937521059617654472062710647887561936530874479135957431665422897673419585231622025253922112585112953845709954462667961456989852011035003828268419852666501175715997550578190194494440647463713196607942677608778637211405679849641271008823713309039453340993722043406098273528672444334623038644386349879372410489103045697911226259653962687703547684514562047214182154895926421453907320655193369366022094305005616000330902936661741845586971510436599052253941376993731215116267069361542143858870028491900211564512118292539396111261256918241409623310767140292418777306030325920409936617458535689190161605190030121748683377392210647889498314571161721553865940457534828238953938424749734992431989275726245433527848210224072887410343550883764501715172830707790199486424295734224458190479347879834474564164402129734133719509116666572254482767608756878155567130834134371337706810941417826335215036588254948349849350409550792384548538505106636634292924610719365559821183237014714607601895698577647888073918619112053839607456029448806548916550556597797654516401568867174249794885222330893199307757909055601324099026818905400337838226381107455446923526262601915420886729538090737779154296147399200530846062172533973119169807662053507856357040709779878587195958430461456693827748977663205699283702698125996581868225572509067845915598236510335395350613757833557372498521612172437474326199531384885269639818454227441824829444568896973643243369983317500071400949593129100820434177668477919118917946921748555027635589864212928446826808068319852631456020609887608712702807288834792877632873228468683172543442479193150725746318847912941605885149046195949992588757728855521344025476672138350340972353077170575207011897518805671851392657438806312063901876187254189431719386970941323785470994548729268240998629151689384775577856035615560130025825421567688315760153326378773793417943414262900945944651011317172794014721532899904882045912800265896220264220248200137018822857681394882623281336160821225206230653463317593935979391553851683612355767681452501587090023683466590166536674034622869006832677261576333834723049855224368678254899435995727698994151570558571680802506277179526494334690851439177215279994329587991517288323620834269767029334283969184711643378206933475784645611312243414984519494875653313954430159358317146647820293046791814389995520780961606384701571178254769662303787881610768645398020563191860103560352530130736917395748041442195195985175964926195945707606830344750873071703346440167232808424019159120381099360946565795754229789601589403767045147586969131974651141657229429233586907829896173407665727921638795556090833183623961604426497612001228744407932174356800762071894893113417357774041081511032528983698110714115602119645348407101907458008641856950509471036402054924341117784385186889883678957099175285780804537533893645669440279429017870208980580466919272596701184464842756016884362941154745635297527314575882034639179247687653924142784660530066721091877795913624247185870645805677728452023191987059427884781593151724499337856992059300385882455599967306171233409210704437994682200866399244338642631513005654125945805030657810618948396101974744265678966619769243773387244348904558882277938012798010397652487505780310611648257906103237330657360194517636870117807470407418848684976652788107321819915927366132406396517970580922668605791003543974108620289489421013016952704411069449927750427725578269336705415652451720734399030120545951014209168239918757612448650837138974167781581071461575218538738729856438126773098778503732992896929625922108751053380119898990126733696655658998635301155452332247430773633244250895332863977973177256584596002826792975796638803684919354941814676785198900820708576631019965476070638964232070794605767234455905948722918422605890347249043813248026113651939989473638310116478555994498302403992681801628235660942225864798039962546530558200429830075897288268389348816699027230466293074790893146892801896542385590900689948152733216475608468341354621866830517164382329765655889326985559607757443193207236829535295166053313886508697826455768165718080070023767599442738823324541407741490129074617609687429527039878369349767443096070786322905973961178299634373013153846528854715015040136455102549425111451624727271354971408232702408542944730248298978107518414140076020155817594597012960872962862650737219125549353859850438892990365522573367658202133870347936439341073194330635676806712897471123784722468162351553356021591537593562269451992290375758217344395143442450026981135117892140253736921989666296364049349803153632912982180033839711339713073170599116126240388306689793478507847615137607624008743008050159086969832732008060334720520895059999414614617018460472587243557089098425513189731360014299166606850825822882921188172514068745122661544866642402109318654338687095366270366816098070420954931048570269708858391442588820607244450300521823273014012186071042133347028983934447727030365080024106167277463559159253717235197736423121819251480532003671823288037546598509929220591727669293625043520682857541256838832909511884569245227426206826853035345622108241589708371406106719391499108405083250688000831722634099254586531918635195145645925106733857317776370686416798106310801873178810222809500832781377923752415889551189364774170634662006238664936561264097090050857166911978926875415116548975710906982083029573364200867965915242915088132748995403276953050387177553416827007630425808994789535864831697944654988823118558974418493241027595780229587051673416956913292524864231030449337360478751845523160906368280422141828575252150756420228287554192491126991514801827864695143054660247754708929146611225834435218715184055921409423483189586778219367861183095180358922356271309117332273827100826223699144786399428652129414581070174791709685916226806300078960937900161153010395898424273710464951398424832959007726336443093537422136794306590019076540999997229729128896489500209514988871426759648837108549965063628160082812555828228066240540593990484314839339620149773140025497193014598890410607759139764570063735941805318377559750872780045813023011605261960692698006602560470759167816583672114623687160781467241442273243032880890086827024359106395851136987562229325310241124066309998262319640966540716398590591317643780961704881060519558093516690419980635762016520551851431533418803563605879443097818399382540537016313782013788814719909591553992318617834876125650229363869835835603709442679399293931959584302011098806332271718789481931937687401450545963693088380269908317670840318462327659791098879959781251545493335516287258342674756056598295647996631729940765966467846395273713319881789210205183078304385270680216203553870702566835631685978447223276652640837538554296757952210334789179654033112159206011064310735487734346735741002641822467131680465719387750296174931120964407866176002249464173779525440872601263225811647081538034453424574704734533515290647062726361822569289515039856369797259793877236547167570811601230212727022521358051938420626398032048170766246272034484196123034769460105973432386457273997763826704167551094950092190497971034162564042507997107147662604834925811638218018949322793259231364270325696319292242571675643085988622860432021578831374219441253305267432921014870326307902759712985434284523834701524447828449385900576048960681584895700166522219329801514332322914960046170212377017379051367961053512334609680042402458323677005639892854494530728959847527587652363939613769878724757661945172782980550520186459417808913423950055156588817901962673764669182921963322898917424976147501053658415699879300047595076157476974624720052073603820525400839949264854978229735406932690316901481272021686669475996226152537641705942191794652631104697900646429121823046014390580309277415314712204941669410678479230415200029001560770559186613994898343584513818317669578286707282444437640791004670418791981126055545557564601709367358408719464935381432076856402534146476611356146049321599185643602728840313799862091344418858916914097901936782794361206446583712561811956955396444098795635501319438153848641118489874668531325269147561444625361361356438968032613459695846649623706751500809834095444358495040688383800840862984953568453541750215412945566650094963970264751444870010791462058594285335120897548372157364694401563780762610968642457146030932009693493862908734587679105580174542196819831635746666509417723001429517448543030523614225506841525173099092349183277636219743718059145140269708439791266835562203114145930048539619987491166689572315655095404854739779600496390943101886574253928200497650411923625525130346621187337002469499129871707393843370704024149938216267638343709008458841960186323388528674880058584010551230120869897545517056135385819548238593855676208605568538480071545394612559566185556974670384290247937541481452855091273896988084309043829620943310290480991222889921815755917552856751553053293809790872013182321198564702304513839369472225822131493953336852735195362630405565937207989707824222395368580259626458950110776528642424309511047645863265976992772601741161860433222084325220607705716232089446538207012846233850290966471679067834266469188297686657778621338236376023455901321283891088531954470628023178628277454935626275353899757531767202090385037362259959085700396782762829545401605556563915490651204528592038259592691436402270927076115303370637502853122160685588882535345799777679652251921492757326334385576944746936541525253933034625751480512097641903888370540775559747697232484176106010653066764876505716255012875450661701676205831653025968272627442024713863638124164501615301837332845419604916103370761023158402749560901064231984476998373821253478507924471845326946099138834640451933760429697880712051341844903064649043965986797115128180863717053997977675797704065839279233956175436012395012072586668135107774147416550493759084843845322320394743965463842454689016566733744532284089651921326021494167086141033459152289835414872880068306927893318566667619169040298077748104453766744817722038976174136091629274542018819977227135699400707029107275865743290512853075961762086571615426668333471334361776169222370483741767520506007189715799569933838033710791856946163131694162159119584103146377919800437313543078430697380273433153316294023057413056084752834203537492734305793394211090038074668942541036035644412104987778125425354490294138637307968493268380303448394172427354870388059329624633051765721254114812895160704306467696077657635941234014155235463193518380420568288087410968697456103505881579865778491455747983856917056712029620614348953083019201206716553170048594507690398122279684425524156305842880344423500490474354511354077046526099427966257712201090354644519059206130339091971662603271742706679969323135276718033004643523333970232497774910309915915145782119823109699706487284356538038557727314033094861299123996025541564731079114336173238243138296080520646197596011898426059752124108702151244558391802569920333442412636157453447182501244013249110730570868391443510104508013719401559122810389964784697759656337383791110299677882154933186565466054180470532603807422819682354033329398906551798515980617653976959548750477080205285709065342103302416379693250196642171897626385111970891032453375479088650299848010141658207006508536802892076257357926860947341635862877150409812140843921116251701465414356690120272892341263376846694809355123522613384167087461537744849704578537749617521637503841412558595924344564546222186502064152989976400198216823037339687068788964274706320239983115516072881011825703164195414371095295403671973129907813274367327855646018370858954001452448325831216771155046456379137847982957397839585862485351635067673632755926594851418113946858281446861256525411999174545734429794637129975919894443327619850171992971600239780513911957092183271718201161459176551437425956165738707767187393989742758282802889515016770172434217875920708666807374560446328999798879624722955757510191296731659506713661099104563264894814271020705040273141483668034892399832634244905334490918344963517803287180584249668538246060656593354715428327711084458450998274710729642839186557700975854783189561938579015803771459714937958086351252755983744991660463527269455440964908635396621637679428947426991687956969879825062763948280730969741219591751782056281374575025681298603592160730689941642467116014761359595990190911091709222276388848247441100479484320337796705028185023399562016313034958290264563824586064604340253972506574406023295893151727279374843105325495315627753279694107424823732992204986354329914821762006523179281521104804129373780337988348979271298239161714212642163567418848471116824476303312903398001295460950464714347731508438648951828875497681763118067867485944487584705512051398923049572094601148229627090167356467873355922387313599049817477983250373461848496010227334162132261228771249464246818939553399627505181074720914356920247238106367196232542090991384525581634964564215126905799415071496455298396887364125208404463611881109610534928677659746267600103436946613691909867111968919009445729438231209991282362725301336150502353478719176736378655786371897220541507052747373203519581225716436431506705959990767084795575416962158814376275565246082092986884678824847403191869916963004977925365471359769186904322656722756429110109281513107638323101487143795086647655886881076391359830312780251748550895166541150380047152967637836332976028544735034332065395049370355528909111893760964026194280903341114098263972769536685352113292804872031008692871540533961690247947281639313187115977086376339994446996999525503471438582543660064758145598570633879591639005251495059250767121625762509427316088010966314229947891032834015516002460693916963388117793067125512764131273622008274360072593311493440033770606582403351596211064663193390564550429068609503315507908935739755206067297171829443151943682628889423780179730875339943855772330743546439159812365041718945049865851362046821688657657433035117084977553628624538270008446686065269735120072170279548095661210716530274011715961529799657385889783457564734653998232559009684448491887691667364004124212882896782948861983485393329962351265878027817586224477551973278214657791291939995962866003927463452701624525775587654556588540956953829293477238710685131319594877612147361990394260417233657498305299480189025605094778998701335928033327382704247018199074420608621755288117960283899930573842090919158113208534549113979766312877235208114543771634156305684936646180169851159898347353280121791814786521151728290365748434553060621736297158934171441553304052832939966331503655904068177239503343232323852827934008887744090240477944081331558810119410188530591335037030093467059003020664942070839904238708116289399057639639813198194561516893226247594048655367145463458831694094748376765102940812596853808116295816164629569387366348994819825051683065293090905348627778929023914504932975613019191550759534626073017308665644081620319540714698392427325046691215530430841028717448756843201794035005772981353528983703013298224856295584486419417154534322714734986682498932972313333529301668695845600596739910234111241455114507608598338075312375314456650137425108508736767662194357711696016633777714315800347743260427453538520364697517520770736150105090552193825960395530196568912189738660810614572869635411626262326539591877907418497725213503200556787533831707553430778792269904874448047296013197559140967585145163540632978352965942041956193765314927622373024131125847335032250789425786528912253713733836975301207274945290392173561013732620099179416196654294799611220636447379058599732396557605118031118804624110220286298596830058510053941287300642874637671640870719875732600299506694811857618189867899473198978795064632440435863405422282428289346514872953151615359333716000786632892366490850928216837255505645462371861507005369656538457461244475255151634147318661535056991651024493870460751903411084864922426696419046333060331450163031537183666992827134242781293891565003857498417141115155787360612051884360189976936641671193824920173722022659017422799973464167404013316014149400927110960032300588014118979169710168420775032458904755504161109144105365512240768691354809023576371500444607483838410895108725769013044237758283506692674165919053668659145260786537883461443993499083306414151193398007823440072470844782043658649961134753661479305617314881663217684208434956388872508826457688955256757399793795725963955552255805314432857583015694171550594100248237204604050098559178754860654343731053366855580698347938588348844963660010289457031298906919831892198455566312363915906619437728265357789812567229940158867812779019417121504818123924080135266234101497999279334522832131708318762898415055288172444095425403859179712840970358871184549457000481317250371176336758011296964614043942464452775147368606708825580275778211219566506281964862042552086867284214527088177923501662463300290013376793101145730733254723946957375251158147575681658001277490613459891419726078272460758399071431550299458550040124204160945948686669839993886213310341725461194927064645652766625689027223844235185019627875487778195359610099690120114365763857771888695851537623830532710627454346378263246731880392471572132227753077989585821056983644676650528137470389557680034310505377733214250993795751402587506248669857946133226947697164560692978929758517612452449573106971427886703663586529882833469702425476304807152425738799945241633782267375370888651829847938342962731690241059105306801695134707915825767578632164124322254027309013558676719906898043300244026961942639076233498069581610233671921719294473988466238277164922042897954069031917664857145103202108237049787034732648333465723982144883627447924503419407440174672847494332807298359758231997624856877002452230042914697232939430664674212962064636013195652059272938242443679148121312730425788556595652456846434648718898848447129279064946002133381683271553314885477162911698175798701837097946524979424261206518522527534653304534487319225509378335200606896609576529326350740677199233374837838876002069897912907386119884063681623171813144827004751176944892146359877196931554558864047865154411911139324598693311191864586487791739292310354982432483262706366635621808833189126055193094748538097165179883594535831802736021565026299459900076259831525317803365722022528157067398415025887976097093881292755897753988489518782094302082395513693647259159538378551052832301649461846713823803954079008492879329703539398242728892119968439892229831707638589293645713991705140357012529242588119308006545253911147018800036322793903829700589464837598003023219258399325097026167155166885674581060160607419452633781582331902932508372123818880837650543077199108439031891339322121887847877880726371696877126967627286412006469437841601716813771777244976929772812318368886106022753975273685168322467829094842477438094639366144484566865242842466857145364751654630143020673851531683920291824511252401061365362882441541858316096000123083947811005138733189897305495218569432897867189601765786247450597561509992490591716838482284756866296459155362111532561407233573490505689095855135513821580817545984768046206387258212514644203505718381022284225430766743792093805355493898723653385589378738914959504156475399548572283146295547839144239676674831356740924590339645602310825508653499937582612484289176810287802250086497940659513595507693151160548665285951056741450412550600372464747716337025321789752496397309637365954984885594723450162823197837712003711205177336897296695659735516007453695471665623700163363589819231417019718091605477319031825169468115947337376142726530814585233553551520165095901904817795760099290943926650281531252754281057134740899701593285411918287982465898506106226798983513001052634088994223851025886139388223733151086062095739119896201834508099295192566686026458286456298613899260557353333602719569733029353813229474608635677863397669368666792745553268296055114516774870739584043331586496025775857240331607598021269814248174714771299182887951523187285807346917861899474142213258434702964170844350689538488177475684102767274603410135272773248663473236708579335336582065300771970140205705640362729447798903662500860678371270413828115357883361517877188136090208094180393611283486584599832759861219659133432972561997980407826403549437288315521177868771582773348018531093679254668886680682672157443012837844565663159372672598834387678852710295772781792531401939306409451387346498063633972803340560781772578741252115242305913581451542665189140760651878145714996796652655088704212655613295631213475650761031049515735743361359922213570959731499052954106190290213333602818519643559524426918928426585105032221945597247606677358897575781888518383530330119402874960823203266995729831666255609171395366631569718447317894774731009300132581625098057406529718912017748848798776481648649642674340977990566803103432568182240852472752185022207678461555610803275881063230819738555194826403333590837391919144917909283630945321497841658531896908215908277598213452850267989260172831454931517241989775907826759595604905470577971152574515328472593203137385531803523973346280280431180594509712968636273609433852962727015866785698670121352084790516046583545005416495221884740497119881237519389325361465148517894343399647806154622403531398845738141691812523592723670726003562007588375667373090728632969775992883227225726847210975759530557746709639627709164471551625284677434618343220449495310173332250508094220694088455005808817472568468556129258431553381145413826773271690775130881527844935777668174682895627101656056198592711924909809525778566808978759753438564886728107907472452094559652457860534769403964465112577895318963332173677974646472846264053268280832497513129464293619589199482578428391208968505554838667584876243552551576555709093004837969870675479172495354352967381479237070022525236907471372918860688169808827807024656107725022439051526227687819854870930772269535185311145761151883959302609482607712146510227928782056820394814903916329143262822915678083567207499459780593595550695250842438401013372359103747873685461573413546536988616298880939546286785049826103983761071264293748421931905046497210172823279857345028266122500613919188211583440476869392543104574921707764756495773670945747096921135976518315453999313323966743675751103360339503315519363856138651181411133362801442457593926836091893854796372641379878354165133163443113691999893026120668666910493772799582230819360980304725345149563410703987710805717085443808705457924912262929665614669312252981770490147433314678886120172845443198543331876544951475488037986131445738541465548408312959580057364053124059979785633149150026520343523052439709118643093739602233969329772585920683479741591213642144143311360552752468078773514162177882894987125227881300684341192693528450386093348726671595839666895163472027243965944312503741261293889836090716402310499062146824206642211038901517215022195951498513789497526598129548504836440499644425549487323875310411509535713155248431316075922676897390595453021630910396552237721837445533674205189215517412879817067991163120554794469469982023265404600169560061330146354000521680973068406411648943393760213276064591862839880733672400442303269875162771379280521326688989400080211967827314257720018856924235763340072454141665443668521769812316382304983028487511510510768539652337039157812415761508793412375436426449686803726338417892936297874232709969186650194274746178795099662067057734129180870396979272988242882574583944350884432247624622065446987490338416186586956506056970445722425993894592318591931927441496541288609446817583520176853759078239630746649849926488711708926375389917325101709589374140604246287205060663447237621875871629827990850993786000344154915339044068148450745133148012283162700838541487523950063303148625343676651259191056925225933324085597922292492705271920381505133242547234091550196392706390692798294116928808897486953155234157262343576616555604802484627986058884805434549317828076132005323079177470930533410003022429982642307414315248450782696794694872366996629740036015094983730628956312028851805796850158738910551976787556372144709315722868531122421752889681701451369401361880020507755151789449605172785852526784946183103630783711941607571548024770665317365904035768971016265920602451061370299164856170186623995391196077709606805247077094953920959506828271830738442181431019146306199718982002167298533346363217266307730251872620529542401755266270905461656053624358435150830366385052830361038585116086840141705039607954039638655737163688506931727150974067421686536325980453116492419691027137724750403115792809672639523212690452311878281795683448720510223434098916700278108656968744157093425590041424937293871750982611798188339721486204196744612334072133495209433315811497565930765070602071548163836819571153983199335393846747824657439031295374409366812566173419545308841581910648882764742452544400958421605603458683040112940064955717205524949336386446162266109344189138703577507826299164004463297780027970469628437260566882287123704776423649579202050667482582242950140553822929245910720907255759507202799375565435167825856221632968476190533170405527267031114106259919661272667189161304596045784359246205718022230808571752083820871013645140642133023367989654922676364841637205383697435774429861059259614014588478246517189479891165207780682160916540546509289366163220698816238335178206432603482516557802221478385303071598429585906949647441059637777529538820388398601781085837148592034635809810907508269123303585506425225809506331058320466707038332643072927099130168477799290214327395414896384276746510127735820294368225481487414200646355842922211778021049381927948464495432141514703091854856110108854356474842769935596770942138791519316103188189515931358225508724067864889631995375573514604833999380449901172062358669177524834539467967506955259952937342053070339441836012209130510228726721268986711735951157892395738161299674358803073577573624484457903206298174876399311510073710962703757500158279025686574645049190457558346798955623041961495831398306233508951494275279834701476699043033084483359677233476121213925727543709871632979234201719433107629987363264008660966184667803440594499758021523826100183167826653067612554558922501303457376074706358781537783158184179530746667616990458821619190123573813178803667299962518732952286301262708750581770852670657540814491399909635144441421914802090049867700321843805575811669773700589041590834147572257832238241417107624933976594283135603112063664552764886794971587461965306418410591476244646733444320543712232056530512013997842223619182464628701307212502221999661521530671163868478970419603818736998436745621417822638778810268388923115454545415491213759790759497295283596392240400956788095814612359149934874474466130683786864890304949659235245921001240150942601270339619730684923014695265717840107845036636215142284953382341327456076121778796235528545346016628369618974108347160151729774201142061580540318441076209475120092373054417535902624714269622160135125782996363398370537811856559999890239015554612839789274301924628471644369972819708371608535986134770085314973323526974925846271595099246838826021357244502815545523817889783613443580242297166983641032660729049137717910559081888678524400701951313112951233821311539304878170806837404264023385805448688113860108594523801112788652209363206413637826208932484810869008165620848258076694619553607079917006898344814116555171552523680125637906451563225438931947886754427693619890235007087182991127795686174306492573292991228454105945882857242712081113638705952687903233499903448481988346073558268431995175151520399251674310296717092962888286196788440619782715792980025491943265067023545433672110719378669210864322018167158438325138815982025260508630102145234330448862999911624235649273276467750518328233039442783174415782697435683879514288477453532941802268109359857582661895875377819044627854591116074152988533925045003309549183269964471757991465856696286928619801830398723043267628681391960197634907364623703443388213636879072476463942459452175877388601978996882451880972134845608181808620659045120351939283016831293705188826806495796271471682102104787132949694001829707477914529954858903995599467629998360244898854522942077118695474278000205313464815211738505667936424085136290341560172279804674810697173113279738968440447167162556890709547400478597591640307685852073000823041600812113137166821247596964685386741668619434862121454143474510205066866844750216404615425374774310212166224631790965784715023032952322466214596735541383953219800672655751845595930546900700116853122849346402959781928012951003850381097448799544417009091185264515532983475104397478110393259447459195570322668772220110438245157633808690452820546931059101558923552717530952587758408563752855138557440649651642888452716843636592674521412875427360831887013484566907024549638749061569021337046087833278362695599947186772843320205165541448174010497996072235026290966426634685064093142783027828614073389583312307443237107089882776536506338465505402062674017879843263205332020066632651553096343225903322300962488111049486662079935823121574713722464035021377403455082163875499177837898290389753417486485017788841972098624422311384075956716132778925290066144046040214247676113959413086014688790472784378851980996587102191190972238221878956817798653758277792668998971231895942595176645219001848457766866912470067816713879665895279470905634581404675769943235764483454573747100986963668310304919370259095434031774869267770388043763908314566667764947425800314146432938372340418114508167002496676428624486779137150945576410730477799979196684338702373040744468263354209341079220627635722437389803172648477995671189470048477751244283202648075511995116476486506040248552006352133068068368010416294057984600100340589052213466332683501110505536899898096285440370696389848111778617381492259031643967530048838749968408853315883878942107613221764564960973346270341385191967585046807460056856112203703211769650521707211286679697663578307006021658833209999602635868167722686312686564140894425641160946694950017390474106461003896608591121445842779687418377875187541939869012186227759301177979904200818279390053896001088531935042001316114454534796211365723301535774234979657546054686757146595776100584714304986672467606065703631440031402853977691058119220287075284653518669970315273254063781321024498768404052888942537385392458124616445468889175720523594720381254912586037097853395603492243281207795430298746559531350119934260436027414340158066623988626816566177059653458493815916557262954817586978813633636301731738513855334268520362477536853193819188162921195923394777968963667818654268693244930527908781749232219531736006877422196218462931439934578657883740553274662067848585857130624489008169836958890773724747332699869081215320545565178928641917599069633112825949846186023083531354208946398870751859998823363202645171104423839894993153588876913755805097206313558826429013751048020738534511292083792464487731761034756876239615122199555117179990610036156828156335428055402002650519760267666381402520223306126223731070926448668193690888973322890940210675688000649824659799806276571737616241190858237833765021763244312171426103840082506769054252245867622530905904037250764642721807056535398841928484722989782194710978117331832783922880899606358100642617318589512513636346852464960485668446129672078189238638196671569951609675557631610121559830664053312032702560142886069882873229577643208248505595278826920886751658443055099412681051204491595993226820200932513131055950172404836786886753770565424164502016261507700922630652387910156260576780310992555173570323195754793750368791567752159792254458358337469078922538620392133479475881811586594303816018307818311631952867203009286138547307416671461577559528110119391916264120991999514407327332944183599261883925885384210507092842813409110259751306895114434521320690470233680865559494436743440581163815789130910579073466373444327759189043159761071652679641267609444393460191964654440669641158813191309154435815381736711874786988876046580674415563413044974973166316272748300151448768730473984865426064747368454555225226392277529985730530110533469385479991924927198150745020973633462114159831821647587772823156620654204000651135508110100142994004261389680314630734666522791461833090687936416799088978364549969173181914516497658828698641420069568333834528890907425574896288974417235589575220310990492767137267425329856730654542904072251440020487133586319781301310327081014778030127308270238070965494056098837469922731285484317687263812366115437845070391771508332506818899417078443400099271165430045057881523756546280130704142021198722800393446440586293235830984026242399154056817815749364021613847015518635813245157338832078825338117645753695591327638889939171398749724169267527549120412193601746227593543942823858747702247598246640455889386990599768725742303149193615629129179810775902377211574124766119101245327353776268910914251858986561569099091068342351939235582721978666015657660300943836637104626386513132645412027854312554653786810304134157321884230704958730911620262814773547096858828909345465108312555626848115892218782719279933813706281416368239030099990695277385296293709708796575841202921659657581369427901650064986933476297710769881342032295651583016393130039555274480979605743383809933296374861879811459510921404336954205145691114434032393844065565283474742947723086399794672156572271210197207871593341252327669015596524402806598960165824983579033147161698132591927987042709972263886512304476163436286453600726136755925162413037551973768357607600973446941001978078922043180856725132215362072133439694872340223832899703891049490841542961589558003921469061453390761001976674691399357002662812452076233713323519840314941767657290028668594735668431242793282736549349078520123763422745004057474876609078736242706454746781277648261235434806051392220224047998664733363983156765970470156306060991469050478265293537996376061799162517548472610751355582946724039864180010583919403588810581742619769032734455857576637193992642086155394718488768224860052014564253561031345064259384812427365437756046988891328593552438996279570456259406053926412775868277133848831537202625006864624698618137624808158634901108323484098116375926497571611554599644894394215067029557906201495057350009523298713889874948370038402443208867218792175498360187591369703460431145436726990121647284716882335837841562082758772039774161586027682928900500880605475804418427141025629747112692652620485132928338851049694952928586355878477630756030097335363293542268534354845951104686525388914989919914006765168924069988016017463335497828499986663498403740138642375611793001770975245970794328133076008051370802609751758178196935903020790098224396758243303361155118838493625673673681049027269419170652354891972259671948033758619729193143556725164550946432687212718407042853548238785619500647240789992682603946225730982353489950778906788768978941566941747355753820136855893175445552395480974532049602524369922442298504911827755096545909829920824854934009535930252708415214644272182352021951290388690099929545286576919481399504554955934190158474179407456842530172129650273346053486216583562775663105856573126465229839109839730601408949583614808535561867987410815671736753862104380392119558208923430382192365890938575477503344899065049917736428727069815998143649804508449190506516306376983671103154160588075374996767027933793080530777075386053022616694386278249550344445926634325054832664482961877595308778221671328413296741994578970422582860837174356875807746694728013918091197034640786120655421746612988466422448859611820953710511960013960623018826581061654207442783061007671825620066279719211032633250287853082053825991706252690273054849986156390644508117958964370448626813830978182936173976636422443586161406223440021066076693214335522433846948817889640913936042128482674398159375363009385761534435749018068702658258102177029546507688094390280304633369099409578039227065002814265633833415712450991286287420894797092227460449014218825473513688243145511332576682622788236535184055776421796278214545039998226976425239738098264469388798008584428262251458213907833030962574038527016620281390037299923733653117809819700465344683091180457040187221129344670675795107150995320792252015359624094117957604008016739415381362741746690397147949928324033719103167684063149441351180385659784139991454466499655811194279350366180489802876445486204702032215202425555435755231587985424247406778492180990165647299498900931140679975542797060845613552164311377988575382299654758457338207832917554781430550298541323528452754452258122926872443804311360100220227517370674532032947000163477483258096294697059956932649580702167532622581891343858285807789164090052802507555929646232624270754758055111451405145930796492815412316754459726262683290425515899437389622773732913683533033940919531239507899904139992329923482269053503904306498192308439592325465497265877471847100969661052382699825057273713751306824985165959361082085815279840604584584261019349059844005046280501092041869710002477482039900790740996353402529770664228179886137364422341493295474721054469268105630646559958044068808018123041529309662560816762883983488887340258925365634795618103191651660798629359601161858960070540438893837463671843259639857672514831377778844312338158081202373121364213871547426169181411830890057467582115146773846267232170812025583055615754270572571496303802789132922324383245925273236983279360242244764242753794166936454770155210443988051489350732638148137619046701291337707808863192790384650463083645933369125026328960044642048962980749586394850247476545396144047851615289091627275451350863734083447044856992982492356804818920773492520877467746471710012502013830383479424963402804175624879460089826174328448874976869224205768938784508984119499359080549009395619039183071061241654552570955828222594140630674553437113096325327793980808409444725441895228225758238349921846343279950717475580634348726437040324062504376637127272689345198416287868027880306525727077121775143916901835176383237032927956123817940709846518699466357003814727619654992391008925539830871664783610590046019099916837631034114818296552285104779696087020997579097232426382820541775757709408568857572595245670764444850741384671592795152141530001844964369345868081340164931493848009539324162980482528155352080247506391733900034424537469827672489859729488790560117119286408130175007288732556050971428975991269688424572506166222826141636174726618267564784169453161709500494436460684151161414393919572899581804459817463317007988565035528974611058457490798085193337857140767526255120424915190404764697322572861301896250307957374703387614394781681468734084490902402316100514889819577770038673803987513017283205075507558386907254393911204599997903330700183880481966930541505127428912553199314338867739044396294092904807996691417637155203860712712581462716592015370496166367252505678274655752815039252324259077161001115689652679030320856216140593027383686307233550268095981223728253607139150489887207056445351116209894220905968994987499036693854925334034548081006337525177663417068355854625386310252316486800190985623834547922452416095844038262579320253345881503171373446313514409885127643431860946998724159715510629026722912096520739836082535149015650051919242195736181536653855989469668751439281832254317466133648731536254364378615778839687733161708679920344935578954935633283729173425313328755747798283227759582564622588638088943177703728983481428600930431732936868722577220176762343681276229471465089264375290468647818959754330165433986235009477692057548151950881151076846271530905459893838228347859559129643077962415701957083277272351327495591446882250405068930949550019506563216144374413933035443757509419192077283875809235815443693631570164083674291790391554720123622171684327800113841462040567776539596136419063769407063974872696686463690493663492030309123203031478638039709692644564967124171703762444136541170178319040001441213168975351290177147919093673456211416408219495994906492874685847740242855528201714957284433588768832049653818324304483305015006943347530044866024607602250613238448299977932391915550520304000057890068013271094674133890851301315817213749711727689891293721399693378383842291781515257514787931271388980975861305057544850625812194689403244322028074832080983165181864540705544718839558010167922636431727059584022508631426359522330060152709036029709063259662150963604676603397764419008400905767070576462683505954889504961330372207153103956198692638783128130750175644627548025305310720689837125705312525317762890769846114603052682274690825746610460673779132463760615455778114948029561420967770814898309038602508628864399170323515013484773577686166479759948047990189737105011253958314837674373032431643280281361560188165430395497508738328842889243984071618501768274039234931641600282124328104219033673686131628082472476993640178831901982063621493928185850957804909013611621427602623016424820440434482155192013899542190189911094916730231328271850119194347684319721066993773293254859459580849288395358598364861976723747760946546033272432824057132572937427560849381304598130311986529800229976953061989964542750367528816746978268633966681339373275152731171528481930598173107951785206284827626999137802411622757550127505946468077896461100064174271051314593140175003048278532140062352111292371804289597911231535667465929688683907764630778503614057007612011287082336899073548401145877236376144348046829011124009260878786522729484495462333420218262988712341922815645627641964577223599857591485761187009337471340760296923010355910048163283643547885450596149855416975790096627245650157963731529996340142567781757488417207690327308827156170442059042058812589884584766119146211726177777204765750558093560712766541223249992706302762768761623908328884428860442855640600031665576718197942316282493051466869695390455354452385270480718866080577247035340641980695338915403939466530881410982490649760410779246731695056079504761593758480945408518314699718269414483147457685230992933769726411101773785771428240785695726699109628901397637086731711269099608262691245562990928948456587488069181764485126288499455486315174081537512590126004651244405517527750126020828427737763105798507668006665677694258046079438732440010141453711564816654436205838068019264572755522529710962512964820247885998419587178229512158116146479411508029494749956690286670942487190804418911844019503350025227541683893019612191318751919866528090132581587709373251477183253182132654730619633495620682244227553187890148374532028654277163959184889651901760817563890535261114523374621396319837593603611406094546060796179918936943568315425847996451114811202993885028246544859244096260704301776048839247220598518519762515997174990212114585801357230206702148323178676511810482223416841521670780518768044412103409974436625795744505567224473211147539064779367907652637030211164114931025199355027275897445057505421657583742048298361137174915512146236715312841116971490590969043701730935846952758858014083225200503099090511845057184839289249028625825361797953786916482194016331691204091634528441302030831358900530779979586615441565833811563432059444599868464693705296033914906957405034814733953657432888542761239110801698956434943516756585660966577789413066381448753853513998557118681638068013239271258641610296011319693639391811782639459258318110175188972069076997298093727816837676551163655720653378340882724357500493764153894986568362319564492651957262734131238256492450235441139120213333334262687881909066471413644631440958964074802574650846501372619519994970127658062273901701115653885033450045465264656277415076529869124444833569292730527591409945732020773248340115394725330985292259102974163527881697994684664673928674309003637530760520348009035917905570644597336242838601049333940750925579891477477882445920183765327084133613037555277016264426292189016043446552970186762899774686439456689769855551783975958869157746814953667793442558436544789778303909731677092683781204480815438070641949423478760921817432844479087242540325720276938786712627108478997531478094317596351705264683560199927619729833009903679132385297334381424901645472312577041060062745573497497635708294245304479204287101272343605082473468336220884155562405375492459112616949824591241792844347928561677512225980789742143615903928078352731040567364701364472346794006068700453872327922436025389317572727111328896844278448305557521754734893916661791281321928357189032359704410386307544149665063668528967608381818220023626281480453933821100827529158597839686876310452359074917602710507043742241816362528084383475248352769838777222452360368996788293418748004269584109245347145825366721786923503097350941682851400188189553903680580472987018143862036339646784710795352462875190478905668426441056189211992377641409773560472766915365572473227931413413080886364592128089045710488772288983457237623721806433030219984243882105459920389397815454014256780721705009317356090513454455892139317339181976272908516404382900958792655489254908236395288845674195938246403547350133714342470957458045554585399256995965249418363651926199072061293277339870896878952516610916540690665468553310218262729846663422312199791904823991661655029012244208406317530983509077553591421324525357904227561180332429143224697715567463654559779315322272716999916287238088983300533477921404419151029529167659337181642325013775188436345388481560142277106810410842421332066184655327784822813524942113592817846736752310065447185646481404489961029492324761699633428783050555898115243597717989095801113072124029364276650362718197542943170620075786833700557881300275452418228301097129453115015125527382331917487142387975589364146170530496161050553589306800275294257276614971165363340100430828026471252822626536475572005278615037492003002873470412008634496855536131429010729176358986868572853623603446110091704427352605040973758274412371518197611654360009390714996038611080336744874440428198518954517921129184478117164664113586559520313164832112246604916069378556985451493235985177780065609683221948031247326355822969374105341676713796684175275493797067851242787916910537332986405579758003789692659222526935782860542078213170630524758418104502658450271046795024397025745874227193714941854257630811336738941258825320347205600062190790598143342389856577011106984533374863333327526856979298857832334412122802329755231145236363648311712066930966898489408153072312304910346073795134544871373742810978131345795512927876353107804545016999473251047744721877641706454619708934425085128226676486046809305949340076561975379045376984928424682821508314214025367159774841130778587972783840060913888645198762438445332834833458196620780338851008939591608500410463031663054744185862935100379743005977178903326919595752267822614278783201010695786193704221153332596643977918423409775245645089154502463136537702305195374359115317999414604872153144761064342220532906300532682440512742036054798164854617881566099274133343170021954031379887046281648444378166410763748049273280105844506709906472834396522898418314520305855633848995720617274745586629448251786629066688954197439005777053410787497272498033106446539802632799795350028334704301454531446541260296383806120290199868100616746014488245431096374399223747149102776585553397666170575752717781869371406096505228093615450900795464578783164893771758959181190071963856778289777298385143673548608758833817765275940767510619432865487119766313062416828429520783255580110428458314655709274158588092894097167874481476388979077183599652378843649872737442585142384326641081702170855303095639305244456594067383696669106698053391060951435562082646205661044009818887880097277147229145525032775198115241011570860450241677199179065273464797780259148356866207561698795999210814049582857169052167444043367238200202559642300159662481076669818419972693842260915309840497546610959457680314345685624347286800570011844146628097368578163088151609411340151141029439741843434979946000529047325293473214725270085556664781518025331874696523617124646954391300010096056184987036245941208590154251067875080968933023172189059090638774198031753499962521457441291956113447499260379295712798518260313583740382442226546139999873499569448021848357599888058991990986312872033812044162188000860359819749384700720605133503618423183409534714880703652947379991872528463982132629213834624228198612251713880092362594487494842174063088544214081348160131250943761461671824916022782864003229095357034275294669889024233317614465710884629965545983729197963570713013592128249292968696669391387056667118233414120401171025095597700756928360546785218180325830277069907747946358018501606841618319401191065356513720955445382956035830044340642756354193804469632825549252579794693327871693518678828033010981899237877027992712084170926045075507641521589499923945524234843874844107760952286090146675456018156137484310177219516337093775998287943971511917359605737374926397324662220398194763781659692152602319600469932755253728471608025926434419430422319508884177514451278246790043714887057069154648719846395856637759865660074228222175884230647076534753866763812975125698111750400532977772534308750767796837468924973675766433014642357625972677081938370998422735889194177207647726253115140765097230128227785132565067163594407052709667680478375799396121930846144055341137632157208789082510442314132412835264717733948363155739403505675056018954168781188599405350716133546713118741882186966129481133545686008164905928061133572435267344971525321609077805170888475919249746881468643658393334361048493493414907385761398250230542971452726720443093328538526868456410366379571291582885814224933851499489273672002692023025076623216293270402939664975700221616801645888842686191411811988437266653968287649630580551136092558250782619281469225110975774329602541669023863946385645426525608001908662160464610969442557314394840012106911697665264729814995617859347950003689663685825529930899915823583547002355723622913503530230189962986123810662631840871920677401256629699160253019581994006934733226878837444944197683955165363109661160565538692017334912030074499470336462594823086121571762466742387157828364774348136415342536246989077586160696901434940756076427878232389828246286681993518318982928132766509433638801365049619255701257659174057088262981344708671030301000338634161519033440280715732784711290554500645477381108611904590179983056474372917681401715960111359675793283930701752671401475015545260444504384556456125655950263803386258446241137760087898185481048709285959878918793611656607132037549226855162328210755042910088306288062898849132627683885137351000713053031997222565795609351363513170117104282642727055630595088185840557343056144446264021567131158804819802053368945142220271211576625418532381032469618087942326118109791988340775139576163363332303384504649870827709050169727506395701100721522195538957967939730024374892206867042274443222045378470617642336558790958541911947445879707386839402385841218430962338515701505190849787387407837450705559816716322402340233096551689507197532640869953061406256343047516563445716039672486967969287473760747204951322283110662193842859327562547205687617929293950581809904582469510658735048619401847389248480597332616304945636425175501663893498702537408751106501067040939844815560816130302245973326462833650993328879152779645355502665997095682674089520361786378495342167357716156984635588127536359069436349768834150559243352979455701567930578896880556519058841768227863051750680021990762410352541244459085329883026131561209326908218462302763732728420861193658072056449961985685844787849635919602119132268324096204526037883301627092854365338410676823018791207138384095147509710510651612058979191516228521563421986226862840773008694972726717838115988300270988126242527694356408464911451225166522115497418194700254846735481594195573866631901300977646021875904029262260505033482673938935265589326947150719947972376532569635258490677543163427001788267822221594833302023695668108531267409905867928558468363081580631796536581015162911058092267922283743133088540662866468589310776925531404205480889452742998036745421521871890479489510100924556663947091108228341961582605441515052460213991965981335422342667843549658382670043227570350057414297318219686053181798448421230051554906737991895964317603885799968910537295344782332272958935919363018656568633274557602779282964677637325079059855363421351673378148256641825480818258748873353221975715747701392350652857625257619811392794378482461734875417876107650535723604827277954958728428347250909400581889922644150301223499004225152023545342492457730975957545594134946332468375463703262442385676960658357949687516862964358097751303170640211534431435785881041224066248748685284551828565280859724035649899932294297198926065639498682648930840405874864452973770412371673597417718818504990115508139833151405044307910317814746279668439030733971793532158988670398569062559844810214992595776235141967120879851440047807204323867002163623222635582648641369461072330620775286697488751875229059288267126907589138518788751354085152418803548698416541824201787792579091378278497554646793345217538031299602822517583504871760207454560703779789776864926481115056270694582976726000081012797088607799386963189265865431324636239154735955010945272123601075476630238735522339994188237500806609661980477180153529275210712411508539315501933130045414614058700560068413827538397824814084843312587306572384438537146317058619073748695021493462603574504338422635878258728927875465203012766072401089171415814441983293353890965206761662065702685360360236142781100058817318395635146717778068362355075110199170872512341661301915614341822904741337634296561635612052155669965796686714936016760279142409779137896278040628675218574346762796205217576096726072484019155175105663935410779849830665638448184058830125265255221977324762982564755678396445368688651482401196594252952759350181274563676518016172522655618627843766770553244044916410670957665276339265399282307091520337356849950855801793844475599124888568524868182430181955417172316448972868112284031185444964850637637104496911555505891305434883879425344176000278733915915207014963434721079306260357681201974902469697084148446559930921279947919607902890644280846507633553488970569813304903925066477393577952833759483402405864297930079806215846704300383024942179809931478948100253151730205600789438312083687239054395353572822346307677835909374984035405979059742983558811733563736467689320492764395680264941430809607485407769251302121428851376361523490815030096385810457643471258763769796534939328896464626052550417011727856383982234175124793893308722942127857217069136321385027520774528871964069301607496150525898432161239093791151798288017366157480851527364812540045165330852584806081778518219240065513644477181604189860201930304910381258183649147036810649478247805896695396923789210325969896232048350493463036618308395340704271650304963457551960693610377148741058916199566802912221817602934186874480685074470367655135862672796942026523631384744696008526776482454040571693241094365506365133947155899298301495533433959651679847734605748408166871434262671957238102922674140468786010818663445235973464023618870268926897878139951499050266767007171219496439510823811064215883827340435262887800948252938764966216320072534703119655266262493409295948488799444524256775712601281585719734360586830303069751861935635255469803566154684079927652272617175194562020308034567553210325705530721401605173570838809568895951481449594200344469063046364381633293242653692346847061019421451557192290440024433771982969984396094466477865750688848321399341636159207311391521857959312791618970221959059141344326974261490693543520043154039131659470118695128281057023630725367118533839205312813657769857929821755205213933548458607388185835323206419903472927443518470359407805313825154949842432739899206409221841330773083066402741281403954624209694010787057310134344151138141259612985543981457698632354167060766777391121080439554585259212943589014033043757541362059826609921529775135887753575149295629974369284684050222778020965485447678481355683845979836363528990160263319350488576279078413923495012269646996028121595623336540185446651226023510293691278271169158317215434312220977248357366830046676456000477709766810790713289049457132821695034407903168543309486349853590954308992156751886590676180821224026605063405436440837129421346887563334030620661904873147774856919933602572275267045052310832865501052014335180730737474134392384708890826275436364639014496827161664240420192267318597488695812563789252033154407965868630158572530179722872074235341422392030843684076615217339492530938932251154609304375358529378970492530925694963110555218102257769587838395998190426478245423060991142409843685369972628806399931510698421779141758373448058315322169779465451941860383861367074471810351722724304467110542239670384818867457736248067952899085765166418528937306645849632698273741818035962996800709608797648059818493241354714461088538567696823049705902223080588252865467802852544528077324913894623707203929964179692032678247622938789222240405226674735980040122862964614425854145032641103494908093338268152083402385570083679539053541584718039197835072606140784147598105062653178608634996153772266245803540420159830348635266477800333813792336051028406675589022322092452151517601532664164077963581077661725691619785698394992133321632085138287503568517329850061133789829571641029715185447209435188299291163136991656366105479001668126370604143090068900084261180813001962659746675706160361023288950385507659842907033162487676220454263487675295485765024856500532804409803838368950006918274595783087905378176988039498027959261977106012595434672133488186384833729989821593751664731379621051462938805593899706375596333026674195053249196668552348909611606663139210263111668410087423834115787106587146286655301743218509559713243218848700796565717909741181360203051064592907849609176712005374618519684048158506381618584048001966834520263390071915735284171879718207443482897033174546403121600522734059382731177710508578544525171083389882839239721458142466551409340731467693241385814028349363215141606390723831122878614602588354435335003792281961201655150165156470644522638064088449366047577685877913185437460265211694113811850525923232389442386793045721643050340794834388584648150187981306762471573683627855530965359354641933976535510399488971635805175521502009827047817764632074626225388470804053679703404230831090360616170615434529795400923283144398880411829769749774655116494383396475054896170275989740105276512243707318885484937654779838793768149093378872911638292230975304371742159965622446875873990258937228761465733047144237609602930432415072153140243707881623260305145219476466836528369005390130825059236336505059852610390451308408590598222214191392805452879392540583534015898728401414826049226913610005872209726698360906905803575529349597267644006274556012396808197503313818842864648965647769853657980376018757052340269868791989752467818488220122755037919196669929222000219131626844821151094314800447590632248867404187055790113271879039003728154552489125767136357494078291766663687026638779392980753519530042335863997968726709134064903226603955123165395359085504127183238854870982016964388639507768361123660144590686951558580968706494820270131846062767504767758688605811212344337838677527871052091142081016764493509832621194281020691161624350341681072103308776469930643242408326952976080680340355810020308615561239859690925894639802222408698936243268688767144894560880681510653647367973116769536522300913331427959866482749542150384766981421206478844157515592467482895184969338490086932728914854517230761915517440129113891855146801501371259669233254458865432891968425254900608821773877636247488733884395525460385137729522451133743104128530948278771303615951632612153908106114182416041118636739935476536178838306620146677918059211625921417246929603774063292112641409756782525462230716563880094205587826300853956449063082290201199657015893541158489874452235141354859114553283728317352751722158159027569131491411617008667555038893475065557079042169651038070461432780022537875623133001575140225153676891270153293596656389471451507931102326728979817329324158673392549154253728329794002618253858370265103295974322112845950798756136928342892935241841552038073386938767087289745214197573080379677642111637929115257810269388607202970844677835056182883313014086574598487795803010330460447530101432479981228926552909216938619114325272999505344931815617173150943415551460984585884720756011688715244429698460821503536571695231513474093888514281860684177187116041092404677882030300674408255349768006168717553620860965601670003210761027754676245049650748312245993919261434038434578810471060808341990359269702110527869746396260215221601239510839152974528552943457558275658797443018654700238466731628311220891684936818041942227871622189816540506924639400957286388337652322783565315155846877652413457777323469284121711908105079807481450723863159194346806660231590235603100689694130889066700147877726957390230895147554858428441539178510522069186404555263600133284042029043322059383200481627189559435865173860281322588081222998101981225851946462349041913129366147966692876724455130468032594729242314471604788551246330112846531947966856191328423356076649586471152560329154463833661232801232810002986811486790656087952484352983175297709059110830597928685676351192413857503066278325405048882442344657048299621087003337493871738982711538972744327720081007674082604661145418563379805650158855715591077394298492548754358945348155431916012003103689743700851671113879022917394857190753308761425559129567325893270069058085622066431837798460118971840953934237596419871657760387571884310856612220996295879374121307131395403009279231827743074190092228338641922324285857451253688238509304066488421116666175603271005889534855887801337920585842291813444520062994568304784555778031959686290803586557804892590100081632446389746796324012256476359926196611720773617658160893057667875462146786328503931930294427251549892852970564350300053109895788903721993444727517292249867636906959261100276407267911512074066863747947806449966817740688412702924802904744973986059503899046641499175491067882597707692229198377148441330835883141863157146259987437110165978404131440539290821306148185409249390247189458513522228454414629200209337531796804027573857675511445138631655902756483345991763251924763337600440354265605164410027110934146951559223417224626575266121606399329001370928394740702648543548137336518125856694361538895734805027216568418649565793303570183700033111052453846587352659580383852941269084395148282239829846012030338774619932878895782861498484761452913038331022027892895275207881182169850816649074504176360540441824622846201070612071706695605368166992667765595050525527927904408714982999361332798232307774568343344311250394794745997342901509087311980989772599425845689173045211089396045679569414066000775347568630259212029336601071676656795490446485050444408941026279264652346059044242339475182163190701436453132768355487339014710583413563296211463095103380787057304136111266355502584014310467655815688364624104697021772235451376500398576354473582256695921899704980159689564658149913926816268787466230872091780927008699301711459954211118346263411144341820116276080792416992040227042335621307766081165526472316035324311645193424320263026810725348694752790396160543215433069632012909957117618096729064793849937977698167365042336934125194726584276338006135138399985232333407566434434586456092215365951843726890262315036375420137947187350922519117123487604261595992318225237870117152912765514608349796239035079388531313093859269875186011774510824113874994553665767059166999527575810086608181241568109048563314852646142770532999030247860140228173614745153411729489706461221300844159730226211583618036057457210107319944345979864872013523073016124832541756860873933321061013366607758414393742445079124576173162400956627715953616921487987451705808305249282346943669069962953630706473063096106593071635584741010024139028636336757147995904523406262561540437041605772722592091551850564536560480236607258391853592377583460036892415914455013067710486364293553877033434002890884882113802726054989557714259455845658815837882799879457340752395249275345663200868086311847180931377030032979308752115396789254114930751557120969000688702935301219333000294409658887762389022713595966244134381467485379479846369088697791786397064989478363882419563535236136182716935531515009089686968007023659551838548889218314798217472086289215636036250907117855656391266460260224643664897553517262118042290743130640902397436135695924660166784995888919121142741953416732353739154303229241579257665630945330054349141403662578200871357446068079285502103189662798986208395892040460381249514024904088240837507305928633467360930618565583079821372903162973946228750985898937238635699666286376677454827271707085895240169747384027063329225528954980708889943040148941654679555625084637224353735125440266512677950068397056462644858049808844292794318748414096951839755156642272097738237156864469980038723709713533121680058569483209717805912364719436562233922701180244504324020728200637008523100904252240689650274025591139507054628843230941434489850471259546500991584987202956927798829005026841116683778114418361159751320504567728010568876938437308284562753915519364758322966562918397232885472232124990513028266303023688389567392056468733492571545695267527871129873685029558938059473959728559147430583275894893279911285347927598277397198505156311804873247372061435799567763568399586052734041053473696533255318642886223448151562574247294157570243072660515765280101373399398626676789013367767428278845130205670243186639668381192770098554524204719111718751397510863003700769649677768556976108400885413877393317052292731300749169825306597493406024722293446387352613870562234338514163828710034816082361690153533684228051758494263375875878778634605077985721714310334345988903839720405133151545702734739279314956740603419140162768260732676575779648900586449663211412019165346348693876245934721104175504548293604098455658064567583909069371278511966317894362291867435124259003876322999771576708931179613061630660868992958232752402761091965142443855603752795764411279106740561634345036108653695101682944486476292264121697625817846204382836983485076277713538785592977765176043383532604096098842878191403024779850728576487435091982048830824828090451692297432010376278446580793554536298322457294756977423637109283138410269401215104892035713962470737821767457555580019420298023636138025372230719044040449125152211528566391342106813193149268138120351827804955452463323569002013786875797900230710213461767613528999015003352026589261258716151236007187079726198343788125059588727614611604587593783269342268120389306832982694615288041724534412983779481983969476820607572836850022668693995848272898790090631397289064176048699705565084961020604854552644908435395439306642744137533699935237068866052373641724454235269677113034382873216256327540868327804372530015640514697120863651000575670667808399484492071640396755891160501772577983207303849069856445794833778150615690550026503400840258270745298733008577401104616929035117121282928682632498967906702679297039476725541991603382416402947449596582036792816446899021554153559041854245458406975460789474586711840231053618165452778832381068460092299970427778358184155408957343684584901672298397285667246280755169839556737926508956218952150393143537654550789001407689129214236750016054833517774107924565173525870051270479105542134104960663582413230330706492768151700162222586461444030346808617429881576720018724735069789184212812205686615452985472315701407218171986367186956335941930705054930909107080871162035900415807366121539554558922446909188361452632125893588732158730838188250761115364920116493302496397620036474069615423706437841282689735765458064519880881745340227647528066667877947379281694480778687521927540802280697198772448694155993251515384702257588225233560365472516465746949649048999868366294984420067242138402951725876892078769070713287105702346320577017601602276412918057071119383581427412560472466398505953144622488558881487380244932149501358438355030424996899759581160612906018168164269053721508103571452314047363632243202927688401104176985014318884970940218066484997789960668222848634150004052283238449467290614045465639205092891090167558870237780807506730299372079034419151417775432543705075040129591406342511336557151874210250303538079353751991405878831704810435699306779086524846616970342248402690079647421483287293953373609919713560167476116180114731581032939364900044726275592130459592905565064510792499163112660731044703169149956659233576949482455309502336262484218010601179930256072670351989167758215398677802221246492156829526451065444517591492901906817818392811104592996167073451984539454099571597881957636757813406545224857595270665070795525446843711487736277591622780764651492220510438006311612784785848118638411996062833026350565710874679434092930215502016341524928891863317640672254235275828830627477165728794167389967871305498029834938537260157528851698177844191686352540033383619761370769001916773576665225198510251181846263556220779522527598221819827617180672700391854289355152149398263156266879001309685711082794278121549411559000870064967508091774769608740655597420598131638591544211975108251301433360022877686501919181347786790911062161396223854615194611545527991911894016672373133475899443060273793472756318724333844339580167390733436525164623393865457131642165889986587572652895314560568361026916225515667548886550056160480078128676871032550933130873094749908246733376510524205114864850653365014702551096608251633154141898427765257260473638939229660207189071841380240850370697127529399779144666748566927824344053261245628113871018747770701314180517968365893237175642168619536389280053307930276055346439815650191956752564147305631446350848512352374996397249191175182269712631256349624652487749288857368335964302797204935236582576658161749322607203658838717342014981970631731189171165150745052357805583612231720534571867484362483399231832324517162160217069301512896280251776978779729571647913721282148669423429369756751366096864184888237579028609018596617972743984553423560760771221046384479850344291350433153017981370921300953194248730738275337450638321277634657948587979306800341100230567225643411662289188651956088945085710699896976697298324000387151380128502736200512728758626139425824946258751630298433215985921017393785885714627425594204675317438611209854411233513221211238631261588709654310881112590655752687627855600414887821832809744792631529363233760477129998238628575666434448452953028138827506708126908891015562757873157102023166853967413531314976490156614745949735695104725615345682916327572790202319532177297782129134682851144911149703552641781269488342958089609724718590605160060966895045341797726827851653454466473196486138118097425789075751258927234356961151315694116063459978641105712391768391590876051977795080651649816748244861681081393436053614860048490521207303281353745095247009461571695835392641667268594981018682999911579407517479872040739581623741723205778976188540471254231512506377856581814157882985799674959698015402985544479829067381734452292412633889225027220549973795831600316074469303872797562914827343618447948860771247902393147822947733476445793263051151276168530973882261151205863345243407641971795070420082468593095951400362865894069629674303247809295396536766657659354409734221419622676255262658258106407263266797097603637100501781551133050097877294842103193796555418482471303380991980226635636349162923579642760175416407874520799572070823562986576542701130586453615777121083276864851777649677943108111316323444278271482790268869375112891182640723634479889434523237884815635230843970812213018892462624671856262377258155465198654242697554793638496796570960190538553657286672069633948631610392897333639823519753472521001606192362465839261615608305926178990272847927763100878047036459271576211393712378815474397386702875765302110883054532400111389959375814808487012283432073311107504536216722898567101809929248501321660996986598383045404002080785363815495955009192773790454037613041361049676741030708459531180345712753219981096300653120318154644499870382830141294399343252194197637480256640555048502178929356503939276594555251320577167425761654953446811247382477834184272823272963912893942184202726056271798979460470996974149630857463337129612749270915103184322111130255384339394405620527166678662801954147232910826485853801850533676628418859391685484106776717602986271960454578768761802750752712600673432929350444332657879216401238406707819707398924663036757840461376021889986649726619886389806139081677287981971002886317608409857199199914681788708284139666110138471385351676475476698005398711809976371557125490723523175029010713709830284763389267988619310137594968905860424028144092062601639290231497232449731490059970611554389758056679600263173708316674921457660553559365673486988232799596089939003729137644406889487975822006016955544120392284908247377735713242119811208860430436721971237794050267401994816963509178325951874323166098727294896717649529854516023616975732197704726607740764330666286571072991827950380123127368834421183813584967220528816705263616286729247898260177621765182390310439417626875609835831909746579315619585748398040456417421267538989811623160924253598744668819033264827673927376820065068200706269646887494278321062735644066741675222929019427080782577216121604542664093634836406777738713167350010568626986191817751267447627524990959932639410209282207500785042409214361450717592751604947681315442926485038937294988974204455716356480515259048238913817605396824178035912107967725060892045095112405877568365909714064169902329219084139058473475310331222493336851550802871322102463290596922892549458898116712691245239795580265117921276118739124156529541797545754233344993121785687101224277037621156149536720044387585926278473818616175898788528714885812865654742701901703540521575017469678578030840270171028549336195537439103416763690891351876146943105621485848399278715414696307732658685322249640289687817942112951969279355544355118167904726676664825020180211384288941689314099098851503186888636797349871330151365643702818508186410775522204052122127251523575927839131229581574016585476577101821077581107008778006021665064115856777292146605397325292668878170014471057875564543336893276059105402638597129176870855048150327809463997854953939641728987370379928261066675495722347264584803940566514944456894798622970383079294940808880536367317974843383052000661202314506917465164530029238705987592539754965849448763156573581037777863267871295280613326720795487745454095272587386298030866525618728879122653384930224152961352485368081051116452984021264830188624674636935595874553459739045931550395311794950432282182564477225621807732434404732788874418354451489207365301808845827278527447187675162374669220322230735021279386390840431732731365240274777413999733326277034379881374714995097917516926282373515513749503112208639184367648391390444129628379051520433350308227231748393359284337607838894765474218426285032969808451090937541892231475170833658947561608997839279589890428989672535070130317287504631698013773460253891311420541540228422132324564228663263962470339507209734221864878741750225774433147959093704531621678620730758120400019402029320584166880331749348003330624537256945175697573392182998817330291886683078847403860079651615304023634228474665885185530610105251582048152043350762288825412042546862098779247434101780165522581568848522200456829508859292518689509863564698506033199518893514277790632913210722301700883379510802045881935240591323400725008011555791683044589005264427435165795718063801596921311041027935011173923253301062631581060249190078606243081591068992672614726459166881483470853283923302842809727677589383478241314030624022422085378095744261613219570602437904439167958016708649436077596251718595925658760535173395593093733719709842023128886113850303881332197722782348770598879019970639841531156114879753987270505729325676748313103058532040168325818056592468321077038686943128818193659925215855664332701294689242819225965609076530427019627445627951744256811590372713857050640730316499125534744260487967741904978471719090505997349315527933949705020654939371848535118859452965557892158639585201322898448361936276158173175981784522366598227480436903902927239915154856324641310117173260962334879906458516115026539806493967085327262761432969296413494532318721555908193518269907365804389242193942319930257294791498259995431155704592659988071243815750721433124846029430463771861091578869381921459916940687001696583915216389644463304624718605926728122884371684488192770127821839057914836605913857570629181662899880161230373700590402764437332784814938952363006834749533771200353620576091723610998594447692895537177938132104675423401041724620463957716550750584852558143414399585137064917266849932605366699041243001528981692321178779058189133049221766758452580443200027200305495883363586247630288587253759828044036529666575269728950597168525689940060436550413688845186649174746361245417024980112285377128344437009389696991566970141553355286435252579550877273345284626816269501437348770947829673158167297631698113798950605457624288565847666764030082377843266265084443298337641526304597160919198987124093241569276045450303660367978301144057875010757116917383725889363648610815955463084183066837522330995719330562946698739445562866276065229817034787428542982394073815736275516967337087975987628376747593923577964981089601841417418488859584722045100118581430876451661480772751559688524994403956985760037396961406128216855640807772512559246752781432360830771516867398073722226483470478073655984421558695822548750297268394640920842231429469807565451044099566053057800115423253189627822184345470272035916240445164724093367200944059594347911560180970630897086112605989532971529752601619076829029241246664369976029310440662332419168302858701710083687930350780676585480984724043530100606334139596440819376576488661328759234631268835089309438132909350433420506642506765042094674683457646182414477968848263976561933614079869413745281059082778922507658382519170982309162744837795397063794990393889022191450575941689971068796562077202455967455634670715746619195435306491963305071904138742384292173887483821171195734188344446415280444415030337141313727274590188955181492384314605460728475273902738036746804893309488116595060702160103052120889050617472501234279063132627661732919680503123753232707863816372564858239420690370420358651378427565730607204014175665017408953305976899866875381642344264711638867916286078117012959786013682417700619674487905944693469369349703406121983658990281684782221084030959011838217328657371306762217266010158447887724120186482070290229524606870698980910102666353769555738324583714795414780026390391638302883564022231247158383894892902314291766276019957595271230995378169850705326016611031280998350418811202489400399618685196872938359028364331080915312062514827964579038205103789857894465456721654984146519210298804638302595801918710916305408688619197557459124952346084742314758669423226414209689922435799895239583925711305686146492793998394540303541424929627231710649768372641602140071160679908940587684897745366510238802502577313829793215574796904615407166763039034211979070637841649993106167530243194937360036526199543217357972851684600619270671536475158356010333616766862668127125731891464355794751656623861427988328161197026691303746776585827773295922153163279734101899388708956346882746669711859869058791696169797831157294050767609093345532125593564418094181757394844661463263061913110802703639136597597958224614934046933866259816247721678396365271317872516615364050801602070997729770314328143815953359789340925161578544862423094409241737613918866009113215971563788272222803599216748869726343539925171109773584802668127610036162831399312026303897885706703294192974217275290359932079194964861363256612087848107386522013956568520045634095620539845052219950938658909800533957977168376036231271776621003964967971617945185845490470255046592241901471185261240958247459368375928633608940046663535478442643611396136141316782576159706472906872482875733955091266802706559452289485650684041043177854530507603873392005037476439690837238542110698407707422300365091296093031427500809822791158181579011493118228036286276298026142875021459324399284808899164109942014245910327594271302758946934596694522964255612189082019248633577686295669742576643242629096259280040566966816667076499787989990038440150795841757582344479304918594930273584710636429727470241912770749787355093968704524669866436019559105101695334869068869481185584436619151542274187330287596937429654457657649673704701056732314427336464336764002019441787279905701365125264697496473642084003035785665862582377699914225405608910941248139644665925532796649193354688956388134923757654434126140138317711730034641151130262105330065051239145960065766687096181171901145835202408793167728998567071540802306157136791897779867794575704458522545117150541830490235166412256305907486580807365898250361783297829835379092726549208309445782492495952821105470249496159588484118701651241153208488622700552863421186035990399336270933013267210442407582334546395691346134829236594863797408856425187058695017299351555300875995830403297956493096889878382798300757549421086675599879473756484362935401056675763781773785070364778553264637636496632221389405367412786499000732229756492118007735285430669215789052218559253524230277761296970743488006311375234440290320482061403061253699723276730906619872733063271796699475961776811885560563783347960307739756752800075628697210383689834944868285328264810606716045323045256575926729245570007206176380405981774161439982859882937453989719954600338648108165158169604103068143722618267618541047841911814098302754665724270442118737617603955830473610480400416313853071909063550912668610863501949739595442143196237752576687560387487394452585921886523636185036625688161456548308522730570439080288595434966770007411094224776288180525732326287731425094134467243885883483067694766793921481349443438992336822277158617525129838662527580801044076763808067033173301166774005253746393618553003643857965063544487135401728213383272620538441030149628901302680387138755005437525057317166408341603252120092564246994129227623772136289551613099621665684474534061874267533449067377710334646517101219077518929986333991816900233363785357200992488691034063947912603817328553078231758336383367649925973095177002478242543528100045802130957894744698413147498602836206087506162458215608615212235369554987828807093007357207379673879499816628504353995212253083328716762307027539783902643994358339660429285851084764691671830505175185603525356745447760419095073951334485187218018291767476369506314625720781758374669924436633478057727454526850744906225213729956998185488317954215093047088921010531448378067491669910697855120839995583961284362333155859280403340077573503891472290336058570779178015581185424623001889114286388104756539896625437314043374069743309582914674688249554878434022677836640216444220253773121840278110211174595877521236736461458658644012887568996225381485608656650928573674952824929201873654000543365010386988504606963366527614465637635232529381103890162282000225648474572590434482386178553696070571474499891953428472933992781504932432535444275628354061391885399426185519488626060197269379777359704481765129954354733573029509686019235428002709560987633034720408521742363181273071620648241352022842142951726290268588183012630288619222213257390414694331206318477153479011307386522953987085320446636711772818831809873006281624834803826769309930699278961249802622456730914260753916956654796195259757978165634040774799767587324824321265131390400889868870532929120854445386450469084566800936595435147449827931711885307499320565389498283258273744939815257634780574266705400543357860042229970585847990126981515423206478089617945189387574898314109970722496484211123606573678905512798310135976201754292736145320254329885966784577383324877982630669587056051191296906191683854403895798433252433498523853295102111465907090318870328119324092596939819387693401975839052370796988206634647308382342354881669122542093249221392234098719779946511865151904863794418986279086486255664376516888038010288057409463403048916919442600419542758074296586121974366139519827941771187023073662080406225813992998588163213041613535131117667055225487234791881057320568071623648464004584770007778926676477009082170881802557206561798598591602940318684913594509598709992620096565560067977989161831070467766336900196614487402205784423982833374799077735297775027239572735992012977059843358036315120532430387279805888138312627920903796360526503466844442982449209941874950029912396766329424790102543799097710671345108594150140816347750573501869657148668336315548817791981364260750557632030160226517075177358477856704040499773766525675047376027343663509725996921118811523121957691877503600608156442651753124036408811387826380755895855708746988260233076044985721651859490129194453123080099039015124664879828449993846394105174132728927224165307535469126953243165222386064001279843708278428722876958717810775514317251901202316617767734118546933031415065789259088009296783899351934928352609615432115422803475257120071747503019602939861341003613868671292785411653238723754456237077729885341514648662812954846397013909469628266420177192198403045816594583628193883475174324384099874502912142658792904123195240255343334128563576925566000134959979752295990856360818859588141832954270882355673088121061311716072964017037737168853639888685390007751437900547633394804181059395691120492622815298476393885369500414556584562525508917393534626453398781518440978321826867589583350669216954299217544243493484109612322703927892383905687698583795338676775775240908165601967758264612845920528770666383576355262459715158277694775944420269740489784864144987121888795587086530233722876479139448454911488380144496303529748968798947863990759859203805467508417625606443618566731563811541480920940050176698304092256858223804310528879167182669632513447449594249213643245988088538359481675462149298298800366867600974663114434730867480778674671865737112919965906884819222535198717151095017004741694716071656468658987547409341061144927979756292411404358856221228870380728393749489901990500933199804950055384377227110796920884901578142992714800575676967449407874959562400019624208322685026628509976311130981891512300482805290261316018492380005892699201827386746014911499806104908992496518227032992204985489798854184676695588912337347900159066713802172701000029996527077354548944118156973309377013359949562021281693919962235634672139083109330419006635240262543189321993403796620336683818028454869949834438209325203124512694309241204679134269800213339562332570961863644057176981142543009324600197447157273045947953273254200176746377724286004251337158630960370132953559674930018885481027332168015692612732520661161446577695545147559136285790144166947796636089868387391198366819206882297099023925523769523312811882078600841493734259140694387962195873859743402815375602378983300046395526332522475046962850180471417847059880450077885369208863398400865507616060327888098494579217246466776000285922051622727679175043983939044117496244577194897712100833635497095307378885666621563150677477003188364088684308153446702712282730260302058432637994221878757526063617790566256445835450143499570155200293302064330830467422757945495570677332610586188493231722579554197390847805555574444612832073032284050025645232973632474647113512448794452472499427863663276843043374369309657084219705678730682496767933384608270436763847790587785191214189002466640735394563081947580030691114378410976842731870585749163388479380244239061681204324384028896407939637783636550359152310413404900764000565158095472219891473150936080089420962539128514365678137190553229314871838195169923253289240676834974746133492587744987023913503449945185122399013462704629658604164371478200273171376591166303647692975693104645397441066189501459401423601151199179500290076601185716743219247327500559852210409303545430983675155688447594184479283862482218448621427643675933216268227635515302140916013832763041543465176977280191148538486278413054306092525063236200820032044425678954728608577383558014017175033357043594032252418081610850311944101704986527409017988544119671209172296511006935387410755002172044808690815748037707966039724323280962642315830880451359924537962989392016294433261288010370067910666090926774662697381670437853770030612571357373286300777253964571602529305070339084608906527093613174122286971632011652266357354438260681921348616129041272987422130448409565997269188397903147311732540725266908902647169863142942385892357906302172550608061062862281020316862520885775194932730912984719013730090787042764033714348411865915693591796335031492567916223292671750371528420413968098934684845366021212588219301384785754801084739297413346289832448001752410175533033324378198710711196102303609676484549153016219176489636474432502560879851971471777859935899836059032994600181928114869774054202789239783508870514923433902617276820789068013921127735552532677029875469974998708547152568464558803625510766764857765965547720704776722570174093145008966506980671316853960985420806416023001320134004341300880595067042396166579666512745176146136845808562154551774080552440739496541937305858962577579707464967652973155006663644378547505184033374000094648854457559558413014833169497274353479493121229159358688602694171971204258786548163250103053090646887838406961099135396036776956147169211527951458608524424986915501267490806670072521913711412622868477906767850642118986744218720268120286897148175055688096310234070205321036637155480714239667384715732188406603297817292234183705473353984938151222267522427117513361603937787564288287045305334438094596735580522976972190861542022591520333613770254825632243595056830819037556213947048788751923123314898384266583069860004775320379129434343936021831433356449766053583239785247515402890452749166809820874032518081038605794216690002921486193377761248244134976020612443708883858851175974505192662491489458692277310380518807776505541831853496494540617529307339659328401785558132287267950100610768909313074370183588706810251977527427830053118358220308750708960200054394019034152556040329223622788170383975427582854803718518525056168494355343962631449706083129690603112855088845118436082795970408205275412432231155536851449741004191037344966049528238874828861263134342340086068915907524415944947044232865264738402457948576415063280200143433296564101914028420557162618904983022933533620737515147171908893748334513961352845599806143119968229571033615024649925317081955926427540244274993060087004899479117898954427867990045531079551740699338264982324455875483721949473552903690789914453616560178379508312085443469641809183760245668933568183919388657153656023762569251563936075500600463546011286292143554792937269325026373789510668582296079983120232130258335573373953739172166841117388946329593155595938816612857229948732426848308586076594329003799638614316624372392067999802048543682262865447179235556393805742190273419645671831296672830230239080045192237022187290005577034913815685697081709350899278346561974491100569478300869389360968082687621444613624508664470682597817627996874028064316448328361226850038341636589942277675391110027318955977242986545061595026463111791381485916103019673116684727838060738340800374134283707657887206087382405181189393931198027645100564956475080414276910053805796093880447371118264581459798561769569521786104588724462704181457986482296455634598445293087176243693154426036963389284102474229426859721149217791368479079852123622710448417647302148915677847939352852780872625616161067856181241108111585160314053553127961616489988521759582655109466837537660382229694522494226478068364695627480851280663840992483981738430432866220422251266219720266871202519032590276489470769193931265356151088297492304544660819711859265337712840961118430651395227543417148278240120005637339059770460931994609610762548986566417969952352258375172760698595269421661641119915648401583836135638995334124053155056213389217029580025937594833948381441211085347791544706876592991324239334023808376281748419418147792265937021425183507519110688926911469413395155843764068372900202421550965870462874121945987978910198061461709319953143974011682271756479120054880680329909193354370888053273018259386685999061735693723405397314091537800101542470189801957367083782675707107612362344302643620056226482507512684174170334749635672157985373996979924258220667382821751668454336925921776150935339441541664031925569657085597134617812341839410642285165877398668927373228580463264661830883975941857353993244549004166278168018810675000634028245590490043463457706735879480398807841405453170883097844962836865521681074799971509214361352415314734221175376979792757022977025861521939760895193566695232124499253790509154915549755810963144499305055800923021701643551915287615762641673379623773230419021909762059295809572685451205669312694255991795801401522220763716080261191426931636955631450898873327826241008858341869237094688601527422980419903638241959400680225584744195817618986280138280534404720465444771579598988125767933172807210330972440221053184378751857137868748452605210961882258570554823743449930568809418911001719917414958773515019848640913035135648497176653999270549744440619078655086001699013874425888601457458590100688271891121747709252732524615132344922480248465537337394489608018072136048752756334735926271347804144305805270536288137970401154437183500645742385816636789195660816953091655258816212366923240527240543180568063023632060566500114020249936993868935336352495130644852538223363855508769095337781952810420324329643176683808630616399135939968960458917270030513460840428112558804974804508807677835414186814351805867716016412755823250868502727664607479864293989321715258056882049628036890088764111643704684411657619389900272430647678033219885432636056896075482466591845754967939600283442069633073421368200292750752373103120195683550782696481591054212667131507595028045884959223401585206448904946634017886213623270757977839795506629362889152953213885371498426770376643945395221981073069690587358533246216177985560224224513891513008541070256730079788458101426057689452924376698197840212698542803806434038947482614976455789770690254733621004716256198096195275349719035064640951225860750103691574331244126701053679996397147500539128199342568331031959017912100057565042593175097303112830869294577436161559377293179483691614503202646438778502460676149071773481754089068367304675742457207578535159045493212506740805117112640724090594237986389947881851174586592781602582077642498001149492989842057935392262587292894838174918889860882813551144060075822198836511849897133242013156831364447490289834543680380219698330661457918827193232131223276062965526434539839212925713591340654738171019333018342978524094532635868312540222298576938155798353921375994078537181071315767880472193734335724595051882353005245582062586997408953309317415340354469347562346601958470106462384185472705017892888907334868964664744324052107276315364540804825868468124732794321510691638739359741171717188473072062754030520294491117925899197209803582442206398833087982115100823984966190329438764812739579434177307134749540421640781538091299731934915425806309937704302451448746071100388858935447179945061297342261992542901976016119546607132604412863684175724169850463624353968472862717723167268901675000203251774755543246851596977011225439271797572802571546353769963273688993317181667318609085969674258567941448191478929916133772294734783624238408580627770312558919439614299625767938579602516908436566291103559811680767474197896109556542213974190181235235472753048916596415771290359838747660774543864544234564551231497569097196300250845331978449247943816272301728497233364932145181950145126756866747592616511918395047386290827147900761599866044888047434485803851253223690770010120808502773077123344064860856784031395079419076685601830574891938805592772577250903406943670142904059090088852853423532290691378175432601271899958807924809155480872370624461728346569103715513919153689801498789629292177337927818859801915009476186217621515721793023986239971572503312479367222282098459284194251424644673217714784271832614990716021972425022075290141077809451990000114724425322932469330264126348215016872063258324774815862912110182392595321077930079094975161126282386750594149383577981420743131696518125776404958284963705643898933985204598688650158203098116352172399910606523291098098111524627034041512938448205238308731391395077653928896574612749009303626304051230710777221376285109302511417691543068466703664829485584816003701740977429042674346356273196360762457660754471792031200630870855103487064477026849847649063426238053880332671566032239456559125668824244218376444871897627354387743611557564482034212287178208268480514525772387936076231771442871406450503588999133368747382585089214746646078875190735132993382446075957542131234746382529324573874194779686029988004458985710662745762803705044574579220238865994830909587706597586067303883537043011739446095227699793675526726065598378391733716882023565189000537960076765824886429250002684110546019328622976002115660652534493307377055995835050227259502131768497046820897792098889173933396610280528805981602622252121160762658524186133480660529673398743796115849583541625956113924984654099533275840859555912010723508673138983927136415937441311138427360036702091812887211519816410940105967502741037801293506625423612127273884432555783867872509999571393230882742734872740198241147548229711702762738708434922026418232421331509789737201411456747685627364005362127164336639765312908176453731368429323098096074693822530479850652768928471870221713185246865267581458803664912272989364151018645054265576860121719713506257838511385710362131422462441581734069238514254135984761000269822835772591350237653115657343160275283365255446514202036553253447735437993499072221311606142148811872533931472381803948174203044620970061670897851714594639253599354350472122874189001385231763845758762995454425004077497752308408509048521202995359030025225480963143937179613292132765688359143431721869617203904829803388087269356069765524206176955060290389649961724046513227668868631637835425141950963192320573473746241368917964599114753757906709821934950722056304386200970231743581714285689616923980786606038313758647170765761721878988665170331099815056923164570399672020084868889034244705065741090937456656669667810198016157732143329042844950712657390086447631786406005217498205349662047777896529571700588300761069462901899067004083066935006042724650639252843273276713312572762712045069207772271383694149569868845279426695158706314098953550085471213639745411491406040665116544298570470635925630826779604588003523216269213043193865912919695168275992235192526954164279633202320211296885131502598651927616081140087208473317628837596109840545583616594461837444325865802011355935762866381738181226698051619721405321538250202049776564872341933062808696314760098018439275222135867205341742807613865574094629876305110458581262265027066875474863772233838392349189682500438380093601629407479904238558468151467759867149058378009377959251072278719346851978787032173362610877026870314296521126294547851976331216782282902234319502879036007137485822975882208768449647544202583891557180516626555115564273631407840944723419102758190626634603929253636484012389078837065884999042691636436556164639644660141596236244972955624769705079276321846396487512866150093335178944496109627572955932888050839164996677094263696561098080663511836288248459409059279727904606583771978401790595313740521676076440172591293386136423921810511265338135388468388346366080127769244849697108701350113520674306230943813622174529680435794312774088143068784030049164842649215385320517114465796833784990339182680079713013617671941618996217222613387630920835342866334311813891803373730253728703308455816747258686557337407598089361555143654688968677544624652761044716453552305187597183970177017420623335511634599747558638870651052945998862746976002061191507130853231077723240586082869194224019578170152237778546258219549300577395029664812121033737021297021384616905835777029225008379239339255977397212169132220722459484108390487254092130151069006469358101676931046820900710287174779349946139803150849628452407732620982854347420753361764647744257245192303801552845795997606920740134766273608471650856197852551182001543872765758278145008812114621444477005186183845973119529528739103414358245527946473472995633989392261553083125710246629549174582625792537011214761760373645002239447596010842811630931207893293843627981492705994640096866382746803767702955835801731730197698124505034101010911597725546942537110818303473810337906436784487696315376851256712233490749177915385479964241154708742812114804865902620595695590488935328548979009310628128847036211415782923463368455975985788108879407327065251171103366538547286747685499339957094014963537677683798170839260567136363785012440082835143629638698736992000016364568919585184458447669495584755575547377138278103353528897065634054535931153773199592324330738666289636510929850053892107352105267684075571457686275521913042780087700765548757558493508169667429502698954035956582348805357810833912462728589322606759824400620497719257595560357185507860250334812243107125359623890820289175429067007009866511016377854887452297253222037330745243281017269168027357424520511761512037334915795023025564637892680787240639187037999542403191016582841651586741955816948809845848069954147055180838391444185595395846878737629757815603237008439743672679892677952410544392509639321353813047038572545862247496110470056631080750062837973883074294803829025838268866776068619125230608130145414676457103274423167842064799698308482151567712469029366446276861838909409567590079546135571464222647912661484071473560044360379333448195186551238682351459896720187347781492314178458417153399448112145673547030731265716827380900392469774338053830415040927475488771877811218939636592785517582139532068184557177282666740126903441341254293944492915445053765062885523847822963294748108488846822420862379838004540389596499846524011926135229748933129273304794615649350887053014330062268059249362696533417846354638372121555828582841044947243117741452460170518227478129324617922988756881262227981977196205384874206661432568398682193114200405929538744539526140384960841489544411985081631557005642581468625291675362751514099759518120978412106541700575988639884893012005670356399802281130764891599788775490070221094448080845142295486153849352351748272797926233582555136405668568811501962466253179461671215221910338474694287882443168414090823680871100614826388516329042008248050044940793900973841444221904705513897596680312451938045792861405897345356673857727145168466059154727382216537191839019952848921331947872941963438641440782777956644887561534586919063894324449317330449986236394581701245408671720302158049605703628458046183780543476925977283654159497907554171096807815477045441755142148674408221353319755848921657312359683793770610099376295408752122340594715201732734755529489215323739799913779132083507852177903646283506826198521513442193850941095976198530143610416360674143387477173096086542632633130102918068944162158845316098215055964326580144587128707728017869472687137900809023313678063040974959472095631493525884241938188753535766110863097571875390099034765443994925331636031529783569959890696844020785485385495624639651507694712295160365090075357430696562483471829724971129854486863138948947075312976884731680746244039711302767138621848316529489945820020056093492697556694106035756038434034556878188268245092181453001618658479447029772514096912438053428413800986079400722913891465853485665176212662116925265702248839206896766185271823937873890906273613242453018668947943632554703448063953379529761483062920061688555522712000846451758009831995936110079929860017967641519765253108809096305457127475340793896107990750545471247604902147892806425086893746674203026817597381701938398812102519679387794010038838041207053040930064470329696941546006560402942081970289973494030277377133487899576546405636753771885922126871946009513141205807667062084175526286103751576111995272605420317395690542280165697713131874910803212221756494563832310191107197706216969056417974103401796709401152467046696317926895329932557706876151377363048827178484602804388753185476619778864933354564849374349772799194621730190786628667705778514972802600363818424012820000907117327670199479606078860952806491989459601955849960524081971582604029129994228914108127062848436980488702295570003412443320207721702756830220325476372106561179490677056586093147369816397676835960973261393578365945609113474041735299996349804957542519708618504710958589064471271171793528506930196899875515981174518610908309738060646196654133652116724374142667460643516438848890128048287727659394327896569018923067825295933544011239163333658872274939725136287549381683747645882691714497698334471550362384702949258431254390409207749336080770451729849559354832488824863295928485089591010734147362611667034250342026291237368165366926624386977532567717614700851388313917052076672959854131363100912107817018906318916054964344778176136566883228541510645185314780748332967543268530180688811380212075999285369636182301034012056589823099821116731172810295339384212584124485134170133443863835679618436707040236618174787268921843635594001297113328331334653280195368853449096657110414163633236868074659024215873786833253522002950224001381156344789282298815856913542981573836041184097000648080589166686681135166353904624088280268663057983420676676865132759562360087192578841375083144986044251897209143289892179062248217968349510641051273110421830732895184195164085144355914008476385852131348331790578983990275903748510450032705618904976034436094076655765912279121997036233259659094034927162476062273841699902250237991238640967344907505258743680688235077863806311199269723678314122161462185532365666647402908549153878179419720301435780977581347584132713446843135937890216458251120982023752423626125996454898431913366697805518329347883282567798699561599010378413360683035903014612330412843187982751524388068068707944823488073113369319812261078621551229027336549116417657228218988142759424351508622656582849577525682605659984018026967391216579957855378455198247898836283501760239426434269526925992907953297639664701283182735783732081134454425399564033651687718811392151712691648048450624180303190253599072332965163298501064822757713457769122213170608631744300700336949217535451326344056836385301880114856511500067715669496271105187239879328967983503992015441406475914619295841779664704083274691365996597236662808864173850582623498775866205587269902298287113894461484257487084484281577806246500670469469913500745218113183002756624781903296126021728548489477589381502072856150198898942903170971493276457010652096612388228765168796910973051959851948905262082770102555026229387035409536701638860975306496999437441256346597337926497873381197246833331694379433438084853873150472934654804983538714692908236463519082691129854943993210539766508015547905907213857209920342719968515243348887533146301462574585850068711001324447593567951133066066652650972206374204676193737497972565222032170252849272732545802854142992069710718199946336710782703656293146681237916058457011608964939180216808430233685792057712250994981935435122240857284389116108832291431349847582637089914222001167838563702412038835336748043444011109906886126403079891317011374873799418768737291851935215688956443897159297424980095079412828982470228368592653017914930074580747429014571485419270071901912317493936547947575168229733719390017771572200127123518241617786007585582121687667018927894604813656653654427990776017362868484564887788631900650624113794458595599091215257165906475191877937499669623150218235521512638031350644544493326956178408085816823466068995887253558726214807053136386266690851814525359040653689108799305445955111221885530283489920675688753004744439670858773399312063296365734926964801048269524762489350276082110524018820931273591451898855986773534984831050710892170507213432851640601278303786961051426959293969775032312994875033532051909480795891789349311694673586341443132458950226212854086251359570665612144841088910394089260747392010035257747595169208055543786756188116028578953360742045891745791616214021818698543790320187520541728065413160988576738813127701051130223041832988904552467859222868090437330849728360260960156418579339981150885398873651810353955770181303185707101052341173495869346827212932239472801754660091083939701244668483547042887335414527209999222893307644434477882302167301772270596177325688235474506586233298012136518924774233012973442777157114808980429474483275620090848139779760669848668988963630908393070608708538117055343372149856759530462266904170458882927366220403311550621880730799524437826692282431526445564795461286353984454016287400778360853418720521314750415830123946398013451073983626127161236671404077279916719110534152854739246971945440817354268051513210939077840875071816529848440076899659881509471686310740336971338513248399503739497355898583951206750385737717157526085480976755867934411624977924826601855080311260863210488315153177427981886145171455606309312293831133057784059741025726594555920669478748547323119313998924648928063620254666611507065249083436474270290518394137061967961612502222640222335719093875181881840048102334682470599902119066072832782872923679306391230536128882065726060341157358494504584651509242128913100338033502013059605954149295464304258809932201087704080045326577700475721713541570233259531733780425159027031043819712230307079192470369924817070382402667617424018069466675492259677607451740168417424584889995681089876515133870682698370625677067315527131030404925947432545149481627151789818100750556572230407447991837525196785358709443747490807906081159179631628913612646666644874349246732509426047954914556215965686115522663378955009098004820176757745081427600039697292271164623286539802951381640452844536727194027081823814210090277467393206168541189471568373766820369914025567874671123877902888736845471893994130771262557247617780277010384771181706098151905777757666052343931412981808026884341825230804152140825844142268675445224994583804250030967879631234530827961052519683182074034573817081260840866887902650593920344415008732802263333166459083470508229592308315252381850029144200828989278445079164803324747890195794246642536824146464746071282121631663227449200574381812146678445223245955865581922326981623043195292632748784387093528591695954701485902393537500387733585678169145425864955706157323825350270243956194030645683301820308610020246531994464342118862844906675941046355416445940465731598955370688463732744099345984146175409004206842218455908221687508217955342303770845607478781112573536471661894977720549706834920808775052383137017694383945966563123134358732105250681291889911392777516111765770944205653479132464999087742632986310998206468845142704200807395599829536710220550188811001561110249847349077494365477399169121869147477644389649652088062319679666815408731763876977452439251956791998788484325679209673609969999083502325350619025869105764337851615565197722062717592627848243001337690777093573703055876795939884103820988690154920407300576766794726101591749767070299944278428508610263997649113231299382234175078911486262567830225099979258219821248445674035299981204703238048138804982766050048255700219508536699746318022561004252019341924231560949844561248926926248746211945477032465912896640664890359495641565155302057653418573050311926977629288756890043972770686945592348298836827868378215072137266631430021875106341714578258074659647903117953875565425195667956916289127652939381605245485710186128690658157478662646272160157645426339607410513597499041996256785195259875881946031651831216116531431910758236277458196863315037275800803390497302414540708277367902287757034220852796709330360308027810331986015469946614638909115331431075831253799755450299404046847937446441070434783367373134460789513245240648958284609789273198394817579794368095448821494859776981946989196066484197814132186497764020520544723312712484095666542848413053835264771376160940636070875865995451086419754792448920816230500926118835807959788146207407664593543740152294676131989069323260680108930915311604921842823044173630308091532077704445540392764568536366553975559167103457874966912062594836392523234105936186515889322112117672573608420370583474212361194343855979941468655386064336670076849817747099102613551727184603113635448027420852150573975647668723178613140764350208319379060891877765573252786702095444665567059216269681009457724055765802430448764068367474078151919934755490079488725711658898292217297725552260836170123969234730064631529616890162273998289551323014041931490648665915353439984455345176967874311911921535148587954384798644247653927672044191992481694817171633446738620476343386274248121930558823601209936285841002100246015001748044883420847943414401646005240468542795516627289072315401955760859209030096599350341159502370756244026233517688672766379647099382725385596609427413086951451732656778786568131810742658938212146120092487983690990256556420976738085781032179323085270688041323817505624323566799947064171563454640008219631052051084589961782921381795005245712289170636923897298289393201547282537013531509076265518691960248949910231299003026930911541995203995734530993263349599533545493193066147903944912529308979340114977935810220866117949594283166225684610277593753294157720627319709300310064783805125272159705759576326801771963512769577642420971735052799445885322709967591779303394974122459009601603081457903924328917816348321476239577368158187641158797360211202672680399817070781045338637913413557935687714159082823358175551050316954528845222412769502061541844817774023735746522133232927136230770968659313800638336630269506930948819012200439492698710835274735055622752175073300273056756499705865261731890336954280080169608652126763901055676451364943210427456475248210588462599175274808678271890638153886630563660860988834183724567130164769750210764330855308227228829000131651323394346819445989500145231743201276692370743937008317582895518152648031356194861656886265122953351586390122076501210430790681930564771058802975184215746477943831180288141739526688483213446444432388325009838091860538161508060852395636916237290193121768456098223384433081512094990429943393075701865339349864885911539909439023921194776951594320497816266817532565101313337122849755530432614209645835196351219496330713898604094165671818617928555911837589630483436721504380099084115430411817091664942792141209455434009799836129063189815114634875412259640826529038339690502996439093159944569557088221187618412172676070156268166773992778319441500834306885608397486153534087045964930107203406281213411893058058050138267619794056187549592001068492374480446922688389573716762216131632775968726305198107108859663098119033063969716212450569114181423976543001837705434896956530429638732225570802074503028721763921763002557364863231994502857887299001816221130295591776523150444383566301194186003778749196806540409787772563377426597779424897285668385582944041916148518302432282887170664069186765194769516424883926135321008279354226555525503892156919098685557460934391474301706996017464014550746104393334940574000617762610520029818707968874273265318634520928450910846218106766652613504093846131400805284918217234219430091476702342736010701194273657062446595653182276170614562629118043401333444862076405927644255848694615615371335383399207993906527143280160731895678092989830181379228813968959065267973638652037764000265563898898468243222302713222247230658024379483783841379000596899672538870971234965802215786038479681495931467215479999326943434284876967316430300845719615744017191050394054189812294933094686183568338235822964954520040545573652264569958205348079447664159425138036650203797335053046839809122852990292166054963267651938609454184605073043500273195554562539147855411092702442607660394313361989049820173430035686425259712124380076006922484984699573880514283495742102799994068497991862638515199323755148742203801252616338018736977482396315755508453176194291033162545236721097522067436332736649246572627767856026539439657038600686173906960364193116240357197812019802462266554983584216527784850071559801562888300571989588631855997950570021027250549155304054618828226706682214597546192627114093802521355265102266069120450264217983741865723622275897334438316741591944071899724892677893838711289828607414929650862930953212649441750224733804214091741221075824820496015740404271089198242829006019486552990251006195237912378908569840246221202821922155987667563675579609011034787872109546667719690878082100412944392276324445024279812502362107407797653913940525445766792630381208821456768583752704349500379662600252423274390766432507804072458457516952350342290657567227497141499581639288286078179084980381449759649289735923632107539971252447558757808835047342276552139563050287425612490443903112450686837306049946259575036065471583052912722627480241683773631917541323793504526736902193564423988491255769877865076171954255875190438324230731664004233267481226081774207075548086995671270606730938190449508663367206295820327753747609795745114559474396347556828537693118600535748035045846112233570425871326058356924133572104975900395161356894897362335379017890875533282807412812063601453745651033620961422115742933813448684675008347082372739536698042403336103923175347050820088657594129666538802976223582315706444834338594840829180707998633573597603109084343454798107629343503413681347285478763984797948479022894363120755280095083307870074495517676102219756378354050646477807717617969533660538871331116696336517259747112627384304102704556100968980950810732404032089533956920691633852890247363904616519103512450521690072892741054720372192314783992868639118610160748774683697974366951368761368336755540658689697391753416613713225723740527025976691825170120894516097669832246656534197084093422773984985027137696829631533775998816035270688877709569337134122569416434827050391791168704507059439084369731701275272385992709034146659066239510536084615167884572430616069066947846571089716776249503873608868019187689795609294148756665512402291739849530166238112874181566319962880868797777347544473447092196242725633864056516359564799380647101659875928443225617588645087117898861461542318536049094875955862255485864532944001072769727225471879396812721519729185836649797039430277471701073043640156797490339274788868763457109776533664823826084371329759000122717598721184188640482800065496356585932398674046739127156678594013169571602764647755714103558013053114773156940951608518980412419368293428470965328053620139734810347016018037169074863257484762776646310773384135795485664970632427048983612267303552064678874974716291799853982346591549359635325794319632220720601621627735968985236903521082310027869115366459046240025860143377735150374286552361670004545341495059513163251081152868964403119641712731059763352691490919226889880966977405658986052591810059662337819396941594068408120840634947148578768594848482685948987135144389506065402206567621868178243382085472744024778946586110336296431880354626246559292508806925180581388762963372035359680050365601289737772083253379980714611305617258938741916204100232898669703581336845213700552924608540466019624951323627470648751760717391935407697323894256442033931317302700448135017988134628123054239717821249639917381004528045556356587935252069295446552297436655427557831433266399424966321993843036959915738109687483097701640405156163235481400968612176406433986670882027257706146541235271544722261640575282557822793546171587488643711607041168970338876027585125506732620756542505455275231457281484904361965191481633691112866034320191843926615029291286029592291694691056039774275922266985636901918644619067436601207043075041970083856692451197019455671936884974653111629160292029413525269294920047338293988725447456756037834770146268963075311851839402016713403132989827267497555508989428886869570429475660476132283208571374473609833145493461935174938596486891064597534208428261852616040559819145887814515860089025189554111551503961188421043612343435757399365776486934672432258219895627815546168669494570930195942699594037432267531499384732944674543410012977749813067437312335983984747141935753095925872261777618555024001037073195277287006130117402549483775719549836895987860141365371291337868153050384312771923987273265265825496565988060170924029313952207042986287217768724689139158535560769024111892987687196330422045165599363061926243138841529076947594289904391307993332592241099684668491322945409096379612016677622246529228713194404869630882966557558509928093708425229141465943225400337428293353695056492901531733079575081012816819197344304850323191688692137419037208710184314960729070182654107284838100121864633621422733579594974315518111769678714236624499103833994267761434981205526755210884041496744294363402860424460062338524938515606481920629215752050483499242460253169018082542449852197790149863951654880129493345600599711723396112087227886962641875834442086106770601574476595546068166784924361440514493509983361348538332303623257010810481540576208623917106839112637100707101118629166118778735597432799731568435712004498238431655802592989201182494950165994416548757690755507559330409976250211369820683755331626787670425983851864056565005565274860034903532726480422440402636767950326560970957641748539241953643425897238490474256839974752913716341784920238116961154941366789553326250956635948743132444753880384172087834051395375413555049694744826824997291576920644973012884515449138906909049433165302270623698696496732798449460504791470156714905635304936383477157488111226054072657722611533418859453765615884048860505680387818475957810622507478907457100152762327754280759677057535263074920005012934523525132076138657552542030431837436377402902520109313590995427211034090941919364067092883658319597958647675868886227379471020808754786516828587800818853204526272782268639516339674838428788876939095058885405290254261778826375546607569547290416139381572915465570185265862678086339636232012090448447523451930948360583165814422397416680149470396709085510878811525756215261246513121003141508460658790660209678812170228460279129993485959157411332488517257908797372581935447914999844345523183331145972937617885734799735859819806980819246773374205348083276664047510895832038503317045965094355178832917348604384524035390091357905295048036376792639190578418342414876561785023746907734469096015209243291844417103062607223478849759104127285407662058702005288436511163898946737901791302377576292321795415131446554603588026801876861936753721332467133281487928367621864912673914701049869121736554222962480229144460094992200270100751864728140033199751733341782890726294104281466888419020825788112707845466527600757349862631117848600169586961582808135175712952348774201230770974492586806292081073407533763927436903664528034789811867695739519890170150490177145692759309599055545633295405035828499419928292887196583483365830020794336151572761026760282108665709823728376788708813820292052562998923693714714062887631978394408524327457023370821137195057195046592800317578265702463163918010735861662381213724374959255694353927544031852385451256198072756469592552595702433785843745852622904319186244198295968926578644246961753138403301423180587044335803523157884969443641299817571082902966720852656550933662730731012599964752649203501951714932327242255422523451015277288762236081788101363256129217959134045227882000800926268344024811346055547591477031362033326461964051188945262613879582104226411449753017662613303370489275356567756426581972903074529064151358628434809356594795642783641015175830439165622395412482640719904317960677652644625996015868737893027767136362955074782237569550078192355056520845833371243442345724696239959286963460602914518770051039415046655574438555674285477085322795512779155746206692750610657116154746480966314943958870297244022512226565351996869438063526706086855683577879312378160591236024457483467557983540218625864951035747338939279901759771982030783408961449365554061850556895465865098629944636051537676859642057597575682230848806175968213083556246804677935007343140331988013498345447938768757906287329792067811244924526577776362457345683231114747647709115705531376981502333746811048107659245826811951641900346653075151134149051884498888481959572591166312990623004194567358699504283576087136492929380070466151429021072798296335458289803456384280257201742918424005062242234533213470942523671272935298175269115666877012898248242002982905071712190977808312911159042905282064736053995623251704544273309581634752608434114171309558937379037781473698395082835497013774611992876527342484599437756401057037182526182692590297396974526544916765226974160423517561714684704760870080683410202941757261538843787456154376366119088643470448527340562491107893191834724158286460123591137100428967738736600550621835573468732815645317585036499450268680581327789393092094158441833493804349027527928455960838601886412063484747995388325077117637048021251093414035686432197160199736850458909321667061536250105580579302708870869688755707168090694113813168264389502278734469909223195133666382326974633844455042637253679652922295163188590723443689636977447816242780005460138058619528929041064842673342078372672861055735979396487364029992836005175661154021541401275640233712659394884476047867069379558272966663003234807453266944214574095538770623181408532520492546892801528456696605572263933225238303904751591610030212519650672621163396126136318495016499293221411659090116796018964202756527171578241835008956083351724473899613406272394396582277280598662632707325016249823563600595572536423936661904470498239016291732773529822622119119982530113218119380292122101420118073866178882784026527423897983994357976929099286885694827518819551966714786788803167438725191996118747358920907347655274440841929577401057188184440789028356269436330113793958970815695055064386402932430503598590731594850403067200243453570872567922011423133025663696650529548408462384106412987301961460032083468081271687135366095053732963807869662264972571271431767436797258030445780026258228489469032570759798851647906460744283139208126093191649514526553807056347101513768158734056853368950037357919086117236680451977108209954360657924560683584667531927471952256215505876657402891420607330889289003034986740365182445669334945695632078931411339448092753417545850595595856959130634982203285913315705699894327272258551801895535764326272091198491851397436905225279745885746326066894755450296704527488907939730752128554112228033504721717302623662617869917357779161349092421861423139201726639119001236235155846887707013581880332308367298103155652346744581792485036876291924529303506609122564533111002492447950305846611904978960779301831257746851192628699968597287641735278054329198496144789114766823361463645180175411499117227766888328912736242566916740021146901354770794007972460777880969634994137021845084832002953813094956492121775553516920689966433041848942897569306841273669154376070506330297394050543027514997762948647182763922294361050286670941003937229070440811209203065592228425251403040265426351513095995116046786834957794823046515432277196963075464115615886545477711854074028752690725157307419743248985796032878336328365799663424472793909251813272879163835654525268171047965772591401640917949790678815902163541683523200532539599515911416451763246213546581465237128421812059846412516636379717977994958153064886487555893051925517496082057683169821670442723952298133563994958964802641688541224495010246744589202410419234154088776752174784895684409045428331557269668467716556217507975239328227727814224080724394091247178994544921970053494630531780649415044599931534882558307092728953544742463528208261400233817734780239203664470841077671406683674883098014163652188532827555792825290846424943572482477409698906870179476224646070324007580993980328266505167187338793129508966227698194842553494637487005331099207338067925533124665119716562787302641162155731353122860373384661972310878682587408038529577433462341254905993295459275215419934234866978103815255480990372505998030014781281243696524202483624739537343836282680303899710557829147936501323116828007095136851967528434055917837409670125482707253615813798927852511135686086800555226705436818744116575812971713185263187540904280535816881303051414714653945301023432410515121417817678238399413329261729215244375668448917240663950865512957311444248046054321564818342865819986143488135932290912958840910705013261254466534475394916120582784867624377337029340292502373889112781826512828407133774364207429684172816324748634074040670393509354031630441813936198697321513800973141610410595241634638467587296432845983879484638335558095087964605499410578711294984545941100816895801780428682943083275309052959860946866151471848210750226176374895742360336444121495112696567623607974685014054657883702079681108171581093675334021198520998820529236183973275280582116918666909153551385120089403049478628326945971907153439694068859776824724799989703391157208873715855302778593468335910286888427236499120351910448415315747130515469944977526548295605528160766721529528155193965828375397884611413729697340543890202765335073635624981706395515568415430294242568371178258071629856294885494644200036778523986965098041554954899357084658257618521868966888313724045812007365935551901353911704343024953439930924979657974386411860123260809907500926392728403204112905072769223721413874909135853834900243502016289488457847731529964223807653917645709090193555980736304638935315837790172898622916452501273192867857714543122003375804177606888483488078005826427031251105256126810707130380152255555107833651205921497402014329398249193593763762536267381048147475380447137511198320066939164407252689411426004009977294908056490928092743586564976573218342232474540448666319357291569109421859446932269616116236017379465852935673928581386586652406532559678766078642664861610811016447938123162066992771462034765960394665084913109769476021723341517422694917617692110940297934202950722352574599497912101955275482483407924767746196261263982891119952631073292621325046253271405456750990951123069296077914565977285596363813180742317429603956243162375726761087229334106944725423701640761839355477605325441293515635440667221848932197119296048526314157701772048594114363406505747550153239489806236623027791100378140061333821781676909377973841619606989748349329018805145364994381271177059789030824565834127571699620062251622397621291008453098158156041790979447693789115768347960373207579829295528100234527938125270456689262334793164702527802489780320245581776219441483792068651903573153930898444823485773570035789704801366912332539616314146763710490734706272417996801612258893523872529253401258761043416374781678615320326792955474857720037908314270357801794934382315717215900445102259468994707679003242756828091547372435177990222960183833168176539331395918449307908278813182826756286320741289365006074313360156798245839348235816044610882642372990756474987130461030653826596839515123435573456764117730841734679636289477694849229761631981921046764661177194856936796309685519223962993254752653942096752104370841310659102721837285941987775960175995634353130441838825698230189830001279798556925042562703258178834389672729170455629458526389207558681010532344205603181981525865971300246793413076855781499638732493111128046258976548183710740974562912090038787696940692135206596949202286690391439623538607528184869434993013007972814054680022270423777304885211462037653279731556422490477918414941494992486509143491097173656434165639064158256703686777348530757416388390955513671455190615046134381326578447436697061550204841338626175347008669583345726130338171517418702558973224843060564095771585931606891025712565949683757458256982304810624975557363540207231008161545072914705607819625749627783628927654515610884919276345635709348062554350732556685197391558837081222595718594191086193470824441148583270557765082312455712039998470600874107667826380869111767311987948300523989290084025771869195406376203472658484328189509989526561718730362135219996312473064519632661293308023087979108449280717582676775637129358896589664571561581979221804885612135106406726308455379344742161969389852257156724743945111275657798704520711898416809891535748994031425052139142977586680253246396311066342492334416040572810876749497337154485400478617804147398377414553325531107275713229972695528992378602630283236671897196784944562945165011968219705589881253056083923677906041896105489945703394721335490288466877446162701600908561615472409905259254186279892414372119732848409151502051799826968160597499155711135423725364078685049454472543359213315669613517576426496424478201358534475550355636359790915677868138289174511884460822626624131337007488085231400831742456125369164367287025829373914651223633753694469219027888749883454810263266342960321897706982643477510855225762194436841715729320581785568180387289516857404815783409707790573781744571380354002856204230422144726557818104107246847877566191345103485982389472671766449711226179581383012630221502150881548441307467755962344562457995126814763647541680410410036599455416970676859535805485752380628124278600232463319750313916559916736237199150436951487515480184837277195801151251174194951823340734789814108776736838896384581893910391752966029599858381012743586636993995158898555963814535291846416294141368549522293228749959738319761473830828763339006311162767509484012164831933890572168118777813220492122654433781418000343028581405171466692881703918261684591290879306048285969819466188240620652829821330623517258649487617750440317254982985639721966781116768955643250613950000060739821164007460496207198564115250887769875363154733237516903134078963294636904119273812196736929742607460511896756444361148459241552681179084997676466178078475714050808117646193444658067727853226183778057424972677076098966235719419925346458490153813124801593496885571623344554958736761245586020483246431011521108958686600998983782991204273947440221565406634926680780224763570578534595911592921797118252879265143885682989396638125127710045376921980339806160830142558216894472905530172774723716372142684500593574406448461980915367530827047160130403764794647797881457674529929674321632390125053350568472896643425412230822704144767288248531820478241121009515309882251485814434096971011690707837574496527170401480708253462068808198724443274851851621029835986720426753828963630345236685890467107444981141296043591686010764556789379835439577237148002598121494704607546380359887868824185426953184936023875819612712772284101491753523062206589244804365431654325066170465755560210747088792264641913358195678603585418321278958810695997823923013867289013164045172069106049897963027201667933852712869615617749086020293196979272148344537688459935906035431994299061673295233627074708640024890304908300264192501404223814345776516754766833723819195316626294231189731378673006335546168138446276393097206538564968046409861664363839251282903316022807668556746531995905671202093739276807850588207982121199063269212056992688315553293547926687850413940378385793778707279603521956599022968162282501046777344719366292777295203558776060612221239889262071624446548063824794562833424423714450751865733347493779709091047253761715331053701025540733118289839473838866949177921259971270715602874967696212218384635355429702801950981236387876172767786128225590234830654224545220032868663330610262623229343638281061841230126930135486500128218373997636686101616097569388298359129053609749792506226190805162578818057426027156139735967644341402529680666163775074824676746029533992366254637277790745162062828054341921078254233676821890745585842294951695102009897522950756387104022802924413693260578324019407209231495599564338358960017636324012075348302812205760857964214028331821492210093492286707582789181294339404369131190087422238516032414557124980095848760604989980052776976686339490095110161797112590160877169867655906967328479864675747748033594186360837500075562233641418866169187321534030636373374834708136828832680748629326832405472714756569355725268099865472159444019778350162597173476824332052504041494317089534660398597816805844612233335960721031088182003759120509372486688519071255492112761654711280588513028876283986856001218464413997544159774570819215644753495406637262264551104124729560432664381773540402528647128460922479818731522845235343788417388925224066720406629392479180203580113162943746965878882792954980227344127698424833032104505267753994998385731376169300617525282803645557763983729851935436566176451981547417736217162903775119280521564084623769255578069173039075056219959161883944620374035630615291096293517072092368738485206840469022877695019767585148328379194917541842551958982237820560241314585956434077928364729089340635726089749275196835812719640690825772297677585331099966769924970453368488249157637153976018127661090402414952008872235257626127149569810732291266743166536164524908558463873785206796919756947932137820704518073778591979213188773376406381633655659667441030551108280452677692273019878737441237724672603186566251095971371655809289773982768624391870937603966641268023702533541774002830839436718767725471774771074623486892924019941594162037170774874832627568700445858506958850132686079788698894291360723583347048014032125805054765769861728577176166129547917864267318173880730594823560019279861722914992639848640875528419368501792268910078396745826295777359443795712784588844603143508478957550847210324505194824221635775332765858493812706171256573698463306780380222142751114878968195621236987632718646668367971550035994964795385503500500397760914889501858838081554383716356621184580461459153231015680197549794890173022583971129995734249521984094875117278724874317873324043952600867187355953716555310510027840747041716217274154454634351243227677443360227914860899558337812689217401471048328098334083066942432986345243460847725038256895571465593178243698945112943971455048103576218592410130562210747451501103337463180719363283233226582203305144822531172386526917711966990840554357398252478244794737263990191430572072497565468018492542773909167473974567439732660422838724303451743118965931734664490334476986425446422147038443246604417141660669072688872280084387434735037959839819223082127049672064413599963648670421693095923016685050733440071137545580587147848585084365024320910734091232292169306516855319869553091767467868011585778107451801187062185637035248971799465619640752849901652528552144372000803862647220601351089668820389630185252642620982753968979746268082943862992185945833880898553705496394409611540419368029947465534378648507068084204467042944256366832777172609060109521822148821005997636709930871114245714939893597525251706911743537230345367035608596133138761767100837137837146774236599118560941577533947373320290284325873806148929024060710151471029246579339694437174442364850564723759834671908917443461675565459067616237689713296836506030698985456749239138494917950329158627625846911325497803941602022527810896249057521621044454714495654202552002600352274016552504000777906633011568956712529446868286855448443511929512611563054338153623257404215331219883273183013352883551566532078150310397488115346003818536773195089052552232859455059884158582991013245664551674870100762013120318856055106711127072040152984834352051297084231250271844466286965855808031231031659375574277732927852057952852971072055226186821066296797594542686928252806656095923201766099830299078575474498055499344396805078357168933326723755224062541757141380393545179194141574306587203832753443345713059767496078619439224415275428001629519857658674625835802517525977229101567046361697204278443977137270478268005620408754417071024219793017727993160180437581168320140406775240253450799875030605998376825534918796021398899586398632827433190149664533527489152263089476684108607930698714457144390517911179520662761092103217778811458311719895932530170976441239098995084087090334681848314846457096641512419277313324914327764033545862834471311573015813125763809624003859563884059008300978747383969218082448140432575599347539396520958250806104542950090319420076854594181132748772461824896008630495935112584305550496447429315874537509617758539765990271632222685428698874711831704298189048706557105186388286021835492464047405030471528025989233265867977685397389869976911539338533854377525873525700980717904295626250804883453687572462527192939839296614230833980159606642268316642195675491799219642111922460514678933661541252655199803438250024429043941077189979550752289321427513431986480552971307311936961731614530400372007355800840789703348079112094592845064242664209367532197087698883003086115955014173418902538207569014324541643805396776053001264814417027275510026680627271659215339493276481124172752031638214808172561079921235035910442180827296619846886750641640841660395175530659832435699337265980150769703426736604436454938480013571831188627618171125340760440521197778290287517311356987739126494054792470779488932540762463784313597561600859407347224120731911676065728295962370077236637189918787477549717105557409211811369718588718290162513465600511109111774891695358863508464161110586805156238946060819557623182095934546780681619019538805582905288766808122982740150902723855306457950778581661425297841191373392910852691353794749549871457890617661141617351797296866163729213748928979154945630961292024515946707840691151277384583597931033318058883428805975852187889082140257982493198021940045557628225087231504497772940826929278207084337446390239440946709765984004052166174018663167724176917806938385505367834225841960794186498064780617184036284980583687734646824772673442712259364556451931790909374238512611663346930762547770419460883704814936881443891781817603912239686380128390115142457447449105780301952936996991927073610961406367075710818804836236150409528626995130714917744429593685630113109284722388459186897274864304753566195928131892156573316178615443711046999157723677461906728765743397373387216466171811692591222490996844794493584513430282509448630033003165451626919543454163200760745966686950537781599098910411928224953746803115337913242027150177675539633646270733971553034711065249376096760325797933989445652838208940335500495794067207611844356909188851092139866496358074789318677439731101196486157776911349669750888616578624229438560142138903153495307749506850287927275212669724244495489882440210641393152646222466514478996441884037962838252314862429452651494083129888162354732338906503033619084909887317988177056793868096366865328610068368672573738587742583365003718626854332249853210439127471292695632226009922728458536170122179995423377683147739700091767723315583505735325820072586345573313135376820744448774539454089674808502971484012821152600360136721414056466741071570064693220113512489747018477677866518037893275800187272128798143715152700274717846373851900906972574329885283570296812035165452124876553925849042975961797432594080561717947744584000406548268179028394909116870097379388834264310057289160119837407013059230939385577421151048660785101246616424576552674920707189841048396225307865135161742495901872178933297023590965869896624012099110105876135680368017098753440582492476330451168489864019813485175325343395598357455462453155030763275887062225293333546850176706736019646248790499688451774825699732730776632175528254800460789720454188495406108288406449910286497907762395864645767678458373604463590951192335561729895546169578408001590388924032131120068592743429808556736246009015095947766007245929831109447981075193030231618253434542037403717373190706092716587881023799167796251093021042480471094452148688467912907727108366048696176393102517356682178517019046257459555316797717894620943045487455145132123121431191049801888578624672062257780709379517297954075448104679144318899171302318900742605730401583665372515085232111346234551864069300342673242661484035189178614521416824015576330049736853128585678941016339724408571470646252219830064839018678120471861228348275671674261332395977362199884064821750129633638643715077522771325648622239263036676965496242707351754030365975630379250747432844443808246795634901038466129590841840948353332556789563804076082295133193423231686143614467321903697986125509999088438907796591531579564321333655478840802525086680825243563431310438151866943792474028035827654008240018267268574679970797849252369991507380678115653124523741656750908915606369843896914575653438317143184811469006571630600176550257984270094603840776976444798382482712171405344304546990963385649819480472980315698857181248581857164653215911978575379475768027057972426040951046543321576981741631430977221884139130624664152727496719195404372713870088739016149591888248909334106426827217337584581037954406624944412125724460414576192531171244386746881219685100494258077118385231621019021712846009826238956816341774874482609045005532266305867735041235089917640121944738902760880349246502212817578289056540958658141562607264236194606154207625374823272376405042553478974943875662446970731836451161643321533330118069630566724653012480379886512326200294166568716144020790121332318322510649842428181865985157867595760448095212784900083820968221454719000333172744049594923081279495880718450922948271757146444313899427384777663985245444090805231742546211809957872871283067552946370301674977513960755655928695896352725993978812553953779119673200625662524534157192094645876638376341906070049180501906911204530531425982928522416085371597439036598308980819816694970799719958466985308921370440312838244248271527238699243672050137973092835894431141721413698608855048167200201103565519950633830646628372579501901838702495654463552244253578443243696330066113639741545033031716686763998104739580733362034825447097310039227025343172121088696082563927987304461218167395122679791333867932547125490730173578659142582503526148528013274649267332120698257677817923932282064531184807823822334464989872825972938343574929168704618109896827875220291843862614001095988009808835433405020800785663517820995762544956507687437840421721850518491414981907075855042467822183654644974778892493934543269637608109945483834104210159357256691969545719879969145214914463365576481315580449302335998140428447966783995498226727577056688777262056898631921684807439723592460831853250020445704116792882393278734986452745574486689384387044687268704363467913676688361525525735717410573785576920429758829530096906034617583424732573323221681950583260907578411095532316298865617467577184166550135338653728437585236488894194780009935886804812607939404297051794974524223433241492197586142654601688120292278531226370175449489915397951984406820080180382043626617178244605125514288924943365399099527281924401980210857599015515221277989155474171604924442947749142468397884959299534994686941858896036823030808640570439458572195631695831716829774502819436368804034697165609122730624780882566256509429626699580324200510265412209200394168412163702965004686449028419430849980066599550048318205400692115296923966604744931156697536629174785564780709031058237960447905929769236433790712414748979673579859474651181390372756455677534425756345105279426402921551985749226581747904564380522490678082068472967615119403537589847484827471579647103788281291045431356452430744306352111793318013360846384211183519749772948572624255210293413865131337969090366883664067103513342701819571610049815190408528302170780330418755776469010382738702982120138361801803033808729747289482121713853075727181510147119814156651372052116233576531542793289510394888621875014934877236778174573728260459089027541147489965650049248266520804976270779621229430233257718221256062266106828346198642286264633315149179835087740330338032988902713559911086197427383394641415963772380338389862714689852652487873182579274589954988767917898814703810197554580878899416270793207337659511875221291028898804263678652532657557862449494479048129792744031931421467521899982573962843302273267502686808112790855237787170555952328000098632431716286207082716355091309619438738826499508431056963033288320871904657889102318851183197927267951560889212861650592548412194022534636320787899735422308771510161142870263974470531472116869791554722053090609612086782166179317459923740235303700149519745339933523217796296180604246389430654519212314463321047006593930304033630512260466382191224317517533623378016021896208155834753707029562949888599086392543113427302124072458656617012488961478270880576307043127578111667739624656344662095270323599084351442724796542512751216528029318596568679566467127584665744173318115897253051256162383567286731567816356178198883739555166941214089265593998136248148019655758389226739482811864870184199686268537839632266127247571828355169246882461168950733758206081143335222627657479271620176565060240697998600345852787212918913743854078994222607252687298408755571815229442513427735056510437724173161439084965027021096074480859389129531917799082935158265159959886082832010208986985892586774886199714720538454261586982998209774035436324425581273997422186505033534622525959566587557416921578391078337282346317442980109937929797148912744755652538615281251845685033045848098640850653093386500612668296891448329508097236569287886476768052665981570336850495985391333150052529723872007433131420065864073151018075426159359765448828604562171351017617649416051167709476733683112607325283347002986976998987919910847739852468375714460046907948677286842493068250830663791565348419835126261695595769740605565387452608727835911445598578814309685524707136687203520586923925447473054071164329322473764607684110889910286323966179032589166878443808872024572904235512055978135190906689974189435852552777126378545998887804616286053150788713669492491439328842755749515084208624148031420908305162264968447527264517631317581141724545543170026856419662918485693096173631189020617757045363964672590241657675350307607337506644909291261417614345985049427181190711300210195878775418571401259445292326288340406635359877872767216251628969327886099001283220216556760642970379882721514256609976295712824922664607536311968723692312849730089011356203166873563007637542834545696391055771433503229665089953245706093457835885676803684111712004227092715757578892725704411113685406798957451792532331975721056081911626826062756487201668449067349819856575965156036649605263586103828244969580857772329337574085145047953828883793868201419865213587216877088781071122371201512905473266391761711068566915818101821098389882530601245516618605235521706311439741749410476754836131510431978758214291525484680775303708648615886914669860431202083441448249980903005995903356841758443903718318281797205367292297940100331978690951580980693351129208960124228464254388969059081051654665536500675984043376381808047494122536368803138905182494978442469417760426416728104657841998596630065329036863662834026511930732696996563551634799668650109393503402570099289964261994298523189311367052618993164723574379768325534653131998576962105077957500791225382956961989841756482737384470812113516944359854996121800113782438407176515110303460227051042923702398506231321628682589367081200339503663201274994095517697734936199694659165860670281899017910861290254552631677041306400149537714022880268159375130894259100035153948945950669337642186337046722059924711568998137359494153922642950572895653946811423011781086740534262404872034873089667256461285929613368129213590590770029267158191872010396939112820838831517838942334468125852248834071106549583666544100885340599019741934279484464101882249940684775774945620868851315627725304527925549012872354144655394053405140671389495553282433317505303338821742168502785431967053880873252364697104708306621912313066641306073913494786796062716169981595950067513633187317366178218374253998199738108031608698431387297714162763359812452109398952344327756281328790612794310113058809165375072259174211614616267433519749651936655557983266784133248727062301490244035468212463627857580534688225441916658654603190341996072480429194030646180452368273027730008934238957579668866359913672097805350360847027082213298980538936360196496153595526362826047180813247768527670728207033480920445790037569222679280160624055767400468911331759514064531495112845205959083537942047641829937580603806990115464948944561913920946371342378804245659596312084579894166293442867145154196045825685095195494519288958325923083656521394630102281417117309228570799117286977917670319396062334290216917884221852598731925232913254587622140432186213472923501404768634887696934524578573048860281244543957944795089316482840176439669434755846208153849567530380558163943713819590009749276663566565440526402663051759807078844673332989324921604676058181258728079805060213462986016210538540683985765500123512058454556296933697768025756620712854210983658764479377807237694107744358169341707447212874130337183771720136611213815173819307342666004573690324378588061237669060736317362068595836159207120704408509024817478176115507251073536352639007296415917258410464613051454274631830810844945085141267773577634987402704896866124078684687538993602205508113628682799792229025803657698090921808500146416223657252077939654366250983757430253799685198135774570134676006254453954106178384313056688819295550587996365808163988762387433180910476286453918285363500031539046561002536264256684144934166364893341107101246604783439903850275787816209419806575523509052080484037171540137921559363685941473401168025222224235104682994651793170431724270991193803430408722403099028983444660311873236850378809936665435627094888913654715014636658890551160718305719388550109781460372677526286822500938818613853458424069584466196019871418987806834106522987121495214503480921829938854671289166652386017428298785485516870270281197329839232310782512506685887893633077021082669016262051146510978697959449111320610422500735938377337329503879423631078569724539365207312113643605287630339625648435377141320624651775383175409956792778681749301590791261527128504051715579057940149455114263552766903754318047823194787690517672335818744706840730548372885100013909099986810559089390163164769998111501197266922485196401807324728018479837011560853348349085370783437106251241662489909316201498097991469585377746783733926688062847019270850780511596336806493633913868151654966447701198263782935250226960311512750298305055947544704115295664241490323309687369279575579563093242598552285973842939285333922414846710394211691912437396334655774152302165928629771624167177976769740594320132018123185477615643757010591501396879297781706902738043358335485853469641582596563720803518780693765088460285621746313381556038687484994793920388975796820667815138510076253296400178013062351785956880782786632469489858123825954992419783693223233474637111171115996139262021145395392000013866377201163666723853429104611076301597250119052853666668926890620798662549631219559535871542855001148589961397193397425374964882825292184635334532750023917876121964867184991519562201524303779986595609185136694740479602108968430328800830760778308253746296778899890572255152810837244428513358699307584829607072519020429516929997058009305054460917000455450678103277688214130555875885436738192554777141545603307956771839464641385877651767076610079070134249450121696125974501526834970336569531062693875157476665780956366789385486558599927138322855476101766667710700429084993527756521700400061668336711906516206974447865487718030095282867866877076842653617008998063280641336653674394873220003211252008460813734035639903124177574058184360218486155441648452249481675022060893279391452548443906208026237929091782993548550042520666770687576843966862985996035006123247371919269974828806694859891631161279750214991685424613172820805482762856305957173652563914870525494223752442601916730099063853936806661232242669738448084095068171635012399402934793233154017158622778144023996908345553749707551958644004749204518500315265065988684693666245324759862371604421641610092080854440723759404086800588095846729373742201224484970557922270722258931883761933902786806350562675674164305268511242555166362169448052957816369343212392759377369891151572553618566456103591972208225255505329250007615771382748753753636426020861609235060041786489680532227994297433253270032980519069242787028295319493751041359614695156875214350133838327103180747032731981697234083289468211065891770185662242391208493250843218409965572447749347292053765559407250274060066277903754678750771804645429320836502328841205414169486929865768190244338867671162142921086092380386257854701631271310980798248689682881633247281560524362140503870443401118047838921215648277827363182964523381158165961158540596828766005759778772497706856478803931998797517072076821802620669126779052501271184994960922021520677809486657421490020958891231401938182253534752007596246477697138208010579693959618749003016964421153485641259414593801682990588069393318483230734153906915919740938371393470981934281112511751308948206168589983001400895893807296949401642504994385726862713937313285058942433085358233263724501741227819110697842117676817051021641362547757230864934546570375714594829077161995949232251231424201940143779741873105132294683582788045284833945865329529578052459115154859358137596174871821977296044972417582979370842680313515786268780286096457737724848270927955166459936901680991192598945829909574830219285562833547637804129515019598326389921067476668154331405196674959075571455571147627709699573730271415112052007646513812978725944384669369097206000302566028410362432580252155420019990197319644071142375002958790564126973143871304288030632153695480252462836169938348422932582983629643789605969866348821932694190948291757811165556376895346573777080862157693516140254570797583434832034048514540192910150765010944814365164268319849029271187216867163008523785683593522111549577831100464210184589056006718101805451643849295848652503608921667687343687308769263909100949420179351089843737064419925268309165830323777664268198897087566958580818285595134579078054093107884030681459620365643514282326936596102153182654165303065430465330952171227079873412008111484637345436233598585079509105511484419250968243852416736130166698948761346501257551645487238034121481079334984429675530149709147794233111319374327035043986528583609391207378680427444500082602725896661077452295249448919819130145844338742075781184270402582975637018307190940891946817969624022474479168725770811439558189855621633065962619328606232795996025811314885519490421960441747147397777760962510972058645201690034773003458845734688073747489882765181339251103009772592483743946642951680654736386254693016106007009722042448680649851448384369982097392095287097725317083585532570147216166448975583204157369771957956364058722906000751681094703464724265441806519491461389930743757474749339162121278370613653191058438926116209486981120593620860173584896346807355440271136178297957780282590852194653301613265649921177487331105984415496440361019140080726272939732372942794083203393310819531964154060464237577308585399976960448894665208764675098908438631860405372915554252624723722056409669056903584127357592039611925543906611055781686987539839870240764069147914755747172248689149034402757831979556912516889036228284624980452928357327923986303885415627426093500463325275586379691125671625363267545296083353391391206120642896133664932221199003895806696982139103844764608533991065997852676141503425066019769975415301424256093687941135879027566283055944208599681837953746614458860485581037451243758935567331835099029266403038139971205893388078466444954164947896401859485570479203955749012674781272988034773300936317201676238762297564160801975100706812040515795184401239653590860757958694817346403789980792084255589808072096468596492316291379343347821972038497468809122743459976671203752000268331649970489717900216950871193942918245526690477118589514313834204812023019851910617504490344863209877005503516533462786327350367030678164509878393971307143716126341322916198920736842359334606921425680281724073274664449177083713214807530403813911340785836068812094126985575544449522112236101674568098742227350051646599182607698895258289409933791829063571716170449020945265384786745485791839358822362117752848624347454774354778334751252306111186302053948176335277814992792778653888199091454828059275677231278305865811619126784297676362776300137776229650846840468243670543070078125027863946687810665493650919345869664120369056029672573454978072273571824981070103492732394684188865419715830960330707006311313031227162125647702459945956917507839944282649881773719008517307887208715867236669132661892547497165960317882302531798697892033747246443644970464933481471778995475031771727555412922977927616143463287294390197360146061480112970298891152239018079781482916581751258736105775386622292477694911044685308650460836341705464829661617974314983350748275905251695949302761709365365045108230774569671396684094756240016940456538058796032495142085137634704050501069365885601296681829613856325037317346526226279279169640006998106854477770341054582852793263861120800954723322483422738124363360679578307694168590025054094901090358454031183221485133584941670873370509666574795679866054546770853817772514135404005272761475010757828597537576927684307497814679054329545419501694322484531009679441027716537032991124116075934165993375745610837116479436039335450048055322731704720964513818935191917445342837618338411159175671985102905009778326145719256982041363874564414235085097142671687188812863256380120732634705953347972913198791616545566445388008171373362277651912717862178929387699965321001236312753010457301208238159544314594218115305720759809037732261206500586190088091698817686725442042494171156422829133448320594086777918763061813874387360601162371245433560328578373078316115583509572938359108958079137260720458034711629231140837882043755923346617892189915585544492049536756436556139383108535977904260081014632102116761230885714743607181134735018394770631292647109654509670343558167789748738862150850555740201407757819761346038300872550993669175558307955875510539157361738917539035717170262639200257264812419661495165347387573738253243941440964901578489128913957976702133371767399288865284308899936271929076748827699194716198387144140653772206299537345955030571799482611488230897975676697361281962198594242471183380045926300747376095097455055479421114534391737038142611877786732183223878677801199498616485456499653819001651350776265451034022160316025028619990673884000978104998034421135595393033433734733666882542211902313765099968463296846834488158768154129010939654430907009629948317017620256436818828288591832102091966368452749227701690485397788055018544962631530014094927097094696858677652171990526434835091637776946392114142739932525350422364564894026430384115793592806499683976400078022482326678440572003470636243341853124103831742200971792453267733454420534583964283157924978165056549301276987284550749338475263465337178882431834329001935346135005741112815760474739040675469813340974990026687761138066258775553470734502002277394332569862805392220999739384696835848886882023427953094464157276935844151877721502216839399241340308238011982900259785013939743431811667729913151236020395726587355622356648697249291983389076362702645832644412219092565236969756038409870120893182581386423178437386445793912222725390806847662106005446444388199322307174455217115231471952939147832647544184899308642053016455678742644580929048661296332653646546355364931215045917580264956183658013940049751317843470130690942228298789927140899050717910004268571852913216160667477866253232068435830802154885768845443738108180833775473605104893187208671990947488047069072184310858017862046616019161953397763078210513448938011440565847093047050259899881678391039595562127750288991381457335572623123547995013672564751296995143206734735823351226434617642054699339496146424688100155335497000066714580107373776270853571582107476836082005980262377975662337040617571565883451580758881421263192113845821633446128996032487460929870581574531682810667198054837432033082824776202820148411277556462084669151969048671292298978473637740961451665555419850809687066479245657404899839701196993139173699723548549265996223443755485792231514983480384148459141346966756867356386077028615244235897389785465409058850643098739313550524411569904440053071469106529282925672617799857467124470007721254116854806099537500536933176734617484950876012768986499409637272004898777852193124106780917776972403380509389832174957401894246138623069964937365111094964308451972044386794204485019083862169595777139465069547756823017372059297720079017917867188600747105835403017843522287187888332854172340188988216590395869149508708572064224446293648635861430925571482556787001296019494110680383782748363577628900161077107744146760657158119287506341676508445646388618914349690018943301262346701685560157777432857264027295972115318039928043869870089767155880046639943988687718343209845063434646750758612458667479139803004543206546483748643773372025374006014407146512419030037756648570407887176119534087293942729038475256283904993174787966473968534618467485730238644133615625376853386159692069137836736556491611397490294699203993026268766954506877722049508398964687168934863574529064973807903352943801669801173913643004598802299498775904397802724755646218848959591008542686348372685660673641899374890676229469960222921256312513981058720803442819537520145462743771613428297600188231922692016563553649417115266509948960093373832930765946717435958839847636961745701953056852994185147070905626350864021754031969595618794367454460876769294932278618598891698854829297148069955907006093388386177977358176646216838134886790533835934450693243808475960532708144955687617665864558004771730427625020143514748942498029671186865883509537559585565513034945977457610447895230054196063870854290462931254359952679291379121556092242321040313835506336148490207496967983149361677034127316252774291237457794590947929564395701936809444643595199308056101781996803932288439624086450706153466816041601673134581447839433569169658809587607748146700113161119668708115324391152296163857155089572681026849850025530591488745095860227076749926442910844097951362415087423492295930308715410984801483313621260516347861973617834183151101559263711235441550659445868594678581751978743924851988257364517656814788889450013566518886015133406700203963218884739320164389710488979671781208942621456534553356295895021527219117478786544753955498277776647230815061029897634390387574335029211638977800769818719372350755171289289623351910789618038363446046770178374508481110157241915547369502795787778029012379466004340569385052797249757195905897261263258923077907488894478940388330788916450511558230185958592387954443950781540059224484568834494089237177880807977161619085063702640162850390445215079962267892732014846763322871361640489102293621690761259096486877200708576753832518273565681996194386443254409813869156587373747914553515604925612058426400398448363297809876735219139474435687442321879113598171310116301645493733765678734494900472659541607466053965628036810121770465492198060610587507744124184833186757034682238073382832239355177221932221720609864210642090773759428636081385266028243865739791053256050189341227107544140312757872059990518205180228504801492113934407131193179920403952074527489911835905001316920169257163288420536167291537649044829633778361777056241902248372639751869366982573047147609188955555676149851270536929671837675825208857412826855498623222985825821991512401222571163981974876159509536207900713302597082726174122089807912041306362618184554165943701498506476976922920437405840144831433353545017631948676212237522711351392668690786836519463311881166800290082234891667873628669591178144001140713131987650901034790135449975585080433948913815722956967416847860735622775337502234935298073520650324433761030757517854615252295238034454788371597922876446327326964651961391448182173839903640180138754456126859071155282280495327600278590806586376578518189101016204212419062151048509101530293326417079276412405897197536704076429927374272612790933174062122898459704066278735722789440988826235361794252278911837876089437441077390064292877831266604634165677669295611358905315518875580037553168196605592000429382876322852377418336998286999527019626789016173119998608002240459545918097620986780870934489303763633078814306503952591977737722762099374469704595315132868082815127073972673437475575961339205104129763510513683215849819250794074823616583175120120931061596605662588894388469540691291069421154380500670988884309103226501530213724482922539168147271508779333282039233008571130621991118737655931302504928128280895000524605887153732697162892083416454540859253615185525981926294628991681801987521313809638880533085572121820338494835780714582521878257284580466183295334957075640845961914149438227008970277220055774501245403970059593745435933782515094798721867143307896166452268114970786182636526942017828891445409016578221897169275512291049562339328643084117620573377173441652074453172446924757780694038157925902323565233126678183853901343602939451909025208988332378233200369285838129772480696628126753328261010888058413351012503409330396400326862998851796778244840252833770273661426107344443430152584051143408766772562109699021474353293569518516506563900356704912612805857932528795042873180979192915771419992033746710223955383244025124557011530866594003698490926262930354480289800575077860353804259155931631711135482876240836296155797837883386164647064903919710440844084412776555249874053338637495244304320709343909629176335718348581282094728318405994523698513925058640623173261339675265821743785291160184642019599257849905924935139151059400223140538484546801301179124439611663594301769595605448039261183760510567564341155859909220250172015503572953777456352263602739679252045647571141553148960616005668028790683377606506345227953889681867748598880194683100255997384448613441289334599444943931863441917910985460677085904671667899418803182523069069881808596340543216977389076722093433504856099030274827710645444497536912606436351164592353090527468913044146806261922526604354914448287658346632917838410871188221587566440503517972551339712766971458476992456730682252806387364372529963434467659002406722817467572447286635260276502829972192032956144774546415045208579584759183093776754866741661347321675588205212685448360946216340789322897827388678166341911834873732071952797918720351173233887524159116000883886090131347752939679698759451845393068649208524394788657952403984477982562618268902894580977942687380373217112519850841940718472449477452320049802008855750884043568527579357489735073454297889642722101270317832594908120235291050065514034374055831986204539412719611719479994065278051130774874003477748953983561857792570430181141662611954970552186489079317238043672749378848768054615674694113782782920250792602771869385936809157928585748489801273774600071137246786255342590728977627093783190295562858796842722753564739601135772716230670605308558762767206381400775718950665687365626454894879124799303019760007399500510215268235173685236016246592292389586486195694396928452699645467899294796853665080268981276879785894688104389357496828813468037596636478676294208989374649511871346234410896972665800552351015810568280134421504905649770830071126095210569988348255174364669708447186985348207415150849980754589645963565210627325439908332575863110480032739729983489984440573507032058699748367505740974124057065336898875990380492993403061468008882651735706279046595970566510110261313676290616042261596234314620745709618959877554711992847892530652582681210590258438885474582492058627322779448242253770207337375911274629883581458176703287946172607100991127000420131004575488688688324784916946929004082943792525369421067618198912978980131358189891496491338501972432560536970306645980124056109090382220294409929375328674014507189131336776314640903383955476292165912828855141411638181645368016034127130918124097359979054815708989549657774419125283235494624978131644263586977393429626356206481251616438924608535666427910191382645321498778920408855180763743796906807314626181437687826017807422887159123941410069110014009048509077523371115155612031715506430701785727484180191653440406613286039055207325912111741896757998282237929841537325766476461802023451525270490517909836292430419543471646906149277598861677077424816787455839807045564973612982771274930548374888550682620876028350174459162796492591539960726196641984754019643608119867250012500854328071919960017590116210967316256798156093389462466559443094085241004173919456055771020311341005477986639892635853484076142897304421917512936390455289144129511132541540929516519408135378082884873364305908619379498161726053673103897530706650932832552784339905051835462972606801462178248074687901803778214446399410581698686396540755267333668888304342293837888547075277392615425111730319375844704942997988444940190363099017654291319755207657765072639090164124162787654300273767904170057971828294277142256078098504226130862399276457567348579050333007224285233856345199801003140978831022405914160378818096279588628225301070556678384892493841848683491027588128565007223652944543766136026089741077983906922688325117623054232946277824175287103546608092245825032472948514205382421045418012865636725493157194093930672048219217262591282854585983987847219092036243676968518125250952031977371515949160130966950750909659254765621084565032248844054686992540284164953199897846365986254872378464020832094942457018879261530544657736214965882838964710768604973622789809583977828233626222103952481654131969824259568629594557674851471006100631843204575199117189140158628581555112544749866785610269936672235857536445066567664570654514785128131184584429386177455624547237330729895402099055681271023592896442285729386736918056262152703907400237194415043222336990924170810736691136231319941947744462101498969197103111610977657197009123768297628941619969695258260813399899332486033533052148727044207696205353772264871104363939094511691282430590897236836367482269901705965601460767048455420221327743084253760329887995541449609494057482600171638122369074264007760484192431833105533582294253293781048958672182080251288245103682883231497343743453973096425462847539671151711997404110500780692224495978043289674049956397810344256864010524929293886565880134319686824500900396467689826614276503205234977743685646842949058487022907454050115932993103554170391101394580220250045810606286776951425413451125097742593607958346028803126767808451109564524248730390236799005804271116906339190642055907214088451821952287997636445341484928491976427059707945553352415830835784657382309928762272464595535065209156686240493950826427524752164392491003675349557495632289839777408747261351556498344746085607764339249105551674409425364268362597979012383737536955937689236389550480712707048261334287901984202873695090862186726097496317709531337444396346255299270718864250110943953721051488364849672726268607003247625988370308234453487889389894070742126635828926020562468896098191928489482113975668731179867893697798114308707137525664016727721255691263721530691665070027745731385642643060185678825043706838556748059637538774209808096629814080868574091352662292987279740677630535425170304864275926869180480161650672382162375765611398047875773690499707122202240895037718677343064457139511559067021915769159767782546960892534924486036582815825932744341781469535005467148376096463442055214620901107154783872548244335454857823218407167671001199175146052695392035412704557214546616263948826590897908852045436585215993279525461201259448804667448436278975898683002325234802477996702023966046162182894457851919508188983183443158098348078591482527069509490267710317710323969832190387611236233048395292953681027276626414762155097869412723367382217729863340745550044048705576027007525432835820770318501509504145604893634472597934696733524309791207892925994713256272788091875938120853893934136190637136735044179587824042802527582488143554805669446238568148983650170178380598585850172438831770526784412929989187993755482910142873655019643140068216606661675554744687794877898665887911172884990483781081627731796249909095985644925491756123668796122446451228839079234801778660720115119953046100436662257794167522233696142677761746189418315096963898875093288188308758269659449620486987713507947776502572552639413153581308667257724735774948862501190749734084685075985403742483553186961328659371963526365642794527762410607643682312555493450895170286404603526291228073977546346774652640826850327799586669558132599986507596778244796337033606318990684522821140843806483340269077383468286453953809301111161831857950556215168416112190972594347880643743160232116136903099647319527789462250008982638906111105908620097737798110587210103208448389042076220592256718908045724340794046771935242721305690592548021510971120930145011474921837087303483128200692944779908603201522969146321341429327209957998473258930751935587064996152316934523185958576445874447078737448427843419711731917753813899301710209490955797722007720871921678595530230569314212763512015431793886970921928016813565662044633475839374724178693432194713778584819400751210069119303793093042607814972899791818918550242942471269537513256961341857331342949957309406882797814573236744848537156853596251183200708053234299521439714182138002676168879356713719923008281075519259515737153941353152587981586213049184428462218560240230232286927346979923582714361155420224188230248785170673392190308503344020770574127897865339180659421819252544802134920879837617806758040906743736357246949159925841592845442545865952383338317522476391160292362041188311014589562817093796441734720419729391752762541036970614943266327573935783031761232191037836109118583549485948891108238341894255591672429755923389346387093236892236157349793022238754775090704763374405708738589056630796885634089225559898659063674794643232204377886904306322469336927229517106341236807124759185020576845684500155133522156451238771983207918167584722290585546035354237373780855819553101506828895544032987035233806866184864105545890517400037285521944254176589078277834372005926668779502946845513213964577357559960838372065680609627404101600667489980099385556330315075226397457669530630230852099377224090549552683409772499185157972470544554203799253190111465407712770589716655196978707729618863945562847219148810811709173103434437116880466865142981149657488182327522353356377580749411139793931199551976098394813099826367472167327621969904323369401927439732699979310341578314071342882582917846107988136669746201469940898268813567888863449001718695444406180052752587617639409714667465220119051590754298181802151875136274471342398853229201844654523056715558431138215947718013812812185714541510058175537764902606722896628660368539587305989742157808427856330511094513447900484694688060321494265568714199258608769315415859793848732943143219137482488354530283175249039900228528100546460394695148785999509224812408523992869034353483114664773242470689545401123610147906617859058278168595074320644118100636682803260369986290596889028263760947462875190781262370891622929830801031759677576513141664155682978181200226549565709448518465347672127659896310734786736325403240901318253582063709108369576923880906866507462376655692202423652003507598792116166681478965973529865772258622798047895794441374297242503635789477631225237553138074102220443041291557510192708761939908628205438555528013331955427458554837934471848170140867787001105940964670564876260896149164145556294095600491923569773334155461146500444639051332549807293419120355842866438616090820073320810800254148534846944038256801229819105629971732939174057877658808046770306808550078875499900761586538369762528011919136677779667165260876840439224424355559734510648206892068301214667142100908507525959940023927667631820548452141681453729523284408148135291784523254480336276012391311688094166456085294052931992273797362205913597212209126655813507008260451315971165000570349010648993310961083880168724386716676628179122397473643713552002938107174129809366765302483158413483579841186131860642883315839981012486439151526557685328497379801536463665060663094184887720213931561413596227518423270627744864035440683591891846596015613540750672862123759150350021025593936616342214284336274874272394464939406356084518665231767199568590124320286755903445966621189396307664097699526280361634618115163336761816190361808414232364870274304414820115810768462877640025945498665501760280547112499105010641590588708701706068476533806916588044527677696060213892650729648891191655630775071821506677013487906811284828375407547058416860022367234794337397117377264822485321605722592249552421817913889287117797766083483319594170288309262020463088649928114074588575054579607849994415859274601761808914988179298376155091964089037156971999699049945374841794664628240269654433118265886020422599378788995606613584504724960009333036770879187388204889326539987244300762405810086973752433010486259651811556698716154702357974630400963682768688651265730069631276189140644763349826052009448928507987437886419343111543354786967293035368470253130604594005561471673438630204800568674975284800947519217276950571503792146554922261543696169302734886159235319121931595034548617570433700498285758806616870486391625786599427463452416501379023358424254691573344097227697933542819565884312313051355324530378572489634038909540552924645361745091102256491540466797357136529133548358628216469692465001676036596978838908011385845709409906544728967796458590958910271146165484777591023934467482026032796225859630374911602171528233420845214682866025454241899117293190350237474559353335702952735266941090399162649899396177261314448415729461116058886366212245652309062481529058633735053557814000549246471718909099521454581710545312776721354275926506173046247001014331305277331187900768816175013146836576969735864712990954239341108453980457105805599666659880508007473408604337266849740923439030224603742158598860063584954314652004299960624412333726749574526696891241852269155178509489620853858925086666108786544447101703924104574714457339105728855062812782430454094646079930763220994303011233247014613944858110317979637814249083150846300549373475773203518853546060965736103929482142130696594156677043475211787439020143074211401444773219495620491768723694000856171214231785521142101670518322696720790015178370750578891186625693173464182901812390235248586585728224847939515893756564923494549300268680971781049179890674454094419096891587957748277762985883088679578279557034069931294820393721644579159221138291600227726405403475149147557307013994991317486026129535841635369080490503727072032684027036720148682420002765110376584176153406925245680115921131517261738085352769482375035912029075426751458898177870155412318664642645505359217879780640101682557501005475872596480812682267213313433873332448793287190447875343969589750393870668641616698430858357782147767788318809239275229113095669332413116861043678019926548481334120991213709776117889507663726776804831513236522561468650305831349719312211289390038666076956373008462432639056801678653390244310656313132187906520622287376223931829127359752559508481096116442481393683175869392519496749186354411780110280093220374151614070624447996862936007925179657281270671983509813518124979565131518902249636531981216521050210491298514179636367882190352499123348531534186151108490090941950383458658390634679257884618495605698408499829059935667846818856792406562364215243845294866256765228498541541564598670708444103465541547007045691697142190549206671992262725234063153599119545466135875357333159503384218724135001584062644764291812871861185144762666411072387311678595059127841687901715869531945447182216456968690773684769902738150101456870353674930070640688425242525977273082248851859954242766309287769796983725111960601584030602031998384736833976408531958360294085105376616446013666980908008608616377697702927597668635976420739028704321133410348886667842119146318969235001512314311200741547529447626254984313306758531625004391959320908937479083463930022158373622533107963731855570822122676150363007629121839233949308440660782420313320656352778900654652088408977908671577050309600258062473049069275930332252548837187303427160734578251553806236048640482590422065235250710118161723601361533803151440360686989708515691226632331461657497558748894235530316493850328036500150893126494879220441046306205416697213708707342958982950219549773649635231163301028359614172454380469507118739429877244121899773118614237591232338153117897104735605667023495232412793841956786293360932276201880599872930673204065590991636641016007281235546322128026449347651610556356703316189051082965390594889781835001523258687095478747602309751714076373209574424747001600944423608673744614181775647938181214541920515312019509528689101276337338537709576705700493922242610982997707227815826091258305088027979429874984008099842397217923292421414388681280998656043734869641599388493295874548281116770813840373567852116514529027518230996925461503294636512261537137475292480651895779802757484330878075284268386629134534213440861877257740244706179221409293138956165709006986006882865877508905083693889670939344962312542529611021500386195211997565974170175144436589135544215602768456043454134806667534408321936181156861309967025978249499061445438592393385028759751574279673959898037447980284005093891605478079496058516380241327647003654309601306241360872897414651131972738186142730167884582580232047729279447853541181672838133207101402265375677465365139189008034229618274852076048989824689862178011471666723824222474669047045381896713676875940477765353474167400571214173463439687068996747301310414922091301789215439209691143080175109224255240306903091396065257352055083513791147819125246249336043495628648710737910203910258330052181315786713032908767501446487038793640360210635453154591481563100569516132520347409258052397964981483544765122371072666290536159958578918737452836117347186357289967025308299515549728256472337461006424566592873472767202087982167923385858038788852104810484825626811194164625091524405158209202693324623993669118012568223472817792608326309669938020068225506619420366620952433607866723563512695981402567649544146511971412458709920457925232935033653905531882867499318479014798194253605912921690071725440270456497294244610941003672243461593728089093779048211282929418113599247268897061014612641496201157372380787234616825109354805423368979817659835212514465213169496199548049796507977468533275083589269109429067280338964381726182397122693534642423298755192867790409586018983878102312346945681511422116873653963255413301195841347557142886534690607622954742651478931250334596853822110595082971339138536370163077024935367819224013887118160972060917881551542985774817444444069910458617460980908290964628264909753180931003905743806027782101324063673906637142744136557675660975773374581964342381442007348220374599555484899095481783106317742657436906105980127916941165764120043612504571822420026433299736942183757263789589122247346632901644697982573764935901735188025878369905929597522014414518773209903097075998338857238440237827439203265240164773177736590989662988863598220227915216112591399510640729833695773231685460516872501767048052144550029078105033182132304919471566963242890884119840609001227792508300617390601760677717296467217438887599073193080441342261720429876071729785555037380108374820197451319606228230683154025880432957818543324256440153838698209923042711544233155907939033430631627196600367275754843052924022185988501297930263571108179524282677359557189610258429216050309847107153893512785487877838842320716476913937780918770506729295396662706054160426846833484025879286826951693667344234893911464528650719493483243418012530319341478294821098821116994406697866176492898818283461314691985909282778119179773193414846539256058150573302538093104236204528761573334344302866430236366260392675146689627255773102875233430679784330555069377078830272654901833920166470182808998638182227732430775557669458777070365204402575278554664751930883988847190544520509578804923522132312304314348064977343227836057919614169268374029632563673624475721678363116290971983050045275376986921910127195832586260708323975596797451786725212279022326919491666843535701138107603715589661279665697638467117197823637052679210709523870213687321901289352879140957762925220928315686436932524514711071444110824877252689324736517148221041310569302104279349471963079800869794598211271323109732186748393922255027388445906264210749987478309240839115765298416373874421269393364415829851533834197407074311034383221265946468899458481477892219187860164907292992736595032259841081338860861786410049026709304648437358120495718158132053416962479011313408371916797498777986961792361904626493667573449868964091732205710201228051784708246482989108377960726178058131908105950770414399264292230088353966177881998499417712454459641597914502689902032049838603450988811827646659085089188507304655922543277394261108241609698165756164153341739130854474909209786751167059518441533342438324690117458735127650710781579052890826932912847991458573725625622414535870049451211276652334127218786527002624928755391077532358423662423389964231506044259223861145309829822968825234790804191358743986207767393501556246798199739628321627632260994248426649499769245066258139968885254008277748886596224145035033480233138376751737960970894024107954903168486956135321861901915465994881380415481873495589133657569934312396119905054966386605124337580912010536079196766650693169533072795131901816311597306200479933858964091070447093981522054780442199301791994440787117138714903539931726777609938328916193341504254911588305631047159663481463372882502906629553306790266228038871465238026766300391862043227066701617569931641022290536550207128617137311981471520256174134073065121197363975512631599708404339824135695115082813360880878897282979558681163026131612049046123641263709687911539640552306969786687055686035987635170677730197571564632676163286754890461714642010293779607823680581468607632527652758712177419884383116140221390268827738059076711677227881585771218904429107166313692247352314349166427806143368075202397811166507212931203167402393949100080087753540301756872347756898083242573955492550728181531541767287813105823959691565466004039925355769507894386828178268730982422273909165925851485706634301994930657198684824295727394203545294274362009912477764463888642112312148050696683755973457336883470834458705916370369420664847675099816421078832487203760930100006275715749754143828753046441902889066052446323449535410825015045958218719041657798205188426831462721017012879515451983243626206998257125166511074666443810816260109863685506054910831769067831758376100277842746791923779925401678516133129122419702244165428494009399874230323367491342456303130386554322798786561725525933446419448990156878056893921482087447127456837225149422418268668152983703118909111710679754027509593298922548816253715803460682285087065551763076396971715862107772064075401824670482665618358406053594886338392748847608949731596260551931142321059522648812056398924888065780913046941489973971623001769437435379746504624924922965100478542741474044393118918616218964057942105378897233443106030658858185591732685461559611451880479050351316896015517125866329711095842546692348745856367345108015111182352125595217599513663741160016200256716026997364965830923770423877924814554475250391559567824632159180195998658505858294097419297950626558011181711101321828190616673619386542532929881705733343286882060007414301081015023584560802054819733163656866462679709789680647100778284035862776614595396295633111799940649077983975142559536370956494774433131140911224639415159041855677472584536451461920079703040713456526870174759695141605932238042339378386703211808863063519019375568753106606752557594035834694914860543243627670501688912510959341926625367270165208510478372591057687744123762483805178757041131817058594733865841306267120333425286024739784885348127820755951207207155483939855908783467563670932540437460287037755070279244026055405684722041594163544217469506140212236364462317205845069678776604595792936569145327967901584688230543294778213986136820213549855676282736140412920709591581606860103448437640189016359473759688432913605854884743948189010172580775841763407894874692116511517680399974609088275419143311864709897137940292276421974475198208069453081898934197023875941234522381206643966302182856532866707040635218927389144447381450888066755835395893337783813986876740333741869215559351531594569225948981105916283544900496294895959249577076496749215032390234841072158139653442427660918701224409529481906742363696146827876837358121881860593806385300417736332322675082760179137927991107609016541273275249669201438638485937253445716355766482351407546031811675773080046405724741190761509278405698514024867870522366045433385764894969075150005805402150997691245055667262012679072484155414342372903266493616643853345415922500372092606474694411270541226933440361241508496921121490609649900014900880062865867498433391063623217873051532130324003799831451429267246472963706835553537935515775764909679744638706921109581170385917541111791626512276472422988846996750633228542102961658619640577176512103513707055058537892011913523725375868151267702521183760775712722490982964944621929687523885339314403144245525642749512235647890899876465312412165098887842599752786837271165023767455684607507822424353921505354869808544134673985391720640319308020421211340778832043128375963631202929348530934402494764658624879101027926569390149206055704672270788865916518034198005148155850028640880804812149983528902973126952649481449043927825331396350052545378425085816887529844847176466356053833284509846546766281282381756354696436123187371208417635329907615052605034895068949519364231936194285215084201046568973139458712105367887370267100515331025207821607199950737374014393523339113698002282964759281283862458882719595148519736459636416475567692522873528716533993034258670561345440251559205704538298126224287088878461931352694863142156775142457515534621581930826649582846609400357808470514302702203521971718632160319885461968731650569327078089443114904030774352865335912540748515380991237438474871966451633983095131787033172500248778263157714654838176938268392911101912222410725373610458373794941198490041669506644880725415242643582827400308536341234849417737713902382868056307636331448173806450425352280890865726307752115385420589741154811813075019647255804050428730138708124262069710013470774301763097453895635466735785581868736660591039446019483350182805816139790029220010144300863473057325082104821450364857026893219140800301252617195751056871629621234113064123830608597949486360715507848710509900676197058098777311992307232997270773199869601377178425189535734382881431532663923528864586729497071086597459597664903507803993411539652291172883497141687228584089338293106163407157244976614004195405892586289849099972200867595999745687208548882876221497105114665649669644159869446653703463513839271450843350885774553469113614016101732975146750420495965365949184825661941043155873123937752156053623643602489862494723237756935750715348615215099062224973263144704743675956052219003443916987847644020342761236227443791094493371543758136523573899904619970865587791112633979384956268880693439338093258326472191608230366978498024927763402992485690789430277934164409360935021330601986354365075203147322266702820560882591297991009586122093937660855875464986685382908310541530378610402824734336860311678869660738347186225407349071308028876045697964855852929082566589115325854202598093501480979006504651646186915802561645920475236798776673147422843930945850521712975643446360194838598464372645683893403995378490151980176606809592748805292988112884851680665606596925430149011255354908983383606807515654616647085802859876779886360461927040440783196383446483870881667297812620998771651779432125563830992714717984434130199776862598467628821935498926657208870534498220769148637833015721982141084976870436264521075806881424038018662593155247807225709242220738038151724799308232395086600104893842726483573790216535198141175014957558100676373395072662474707895370505938602427955842201252551316589089262425596015192256165845621513909273691677863580019516204349661932438118549900545071033476023423937140666213610830869397239742557133733609027126604679889819303465710686466716916535740520072642566739948839878003490325299444344101059921532938835065750679554527741883282819405856721370922401121366861475394229831025590749468530091683319184711034954262881561145960206647033546506868520456368920827510915653395779136176192440313827769612551557817275075993465919300400778652114049499238719122690522143251022366017011442784089053066711783315249577076741017002338442918332659723908202238605525139204350287423552836666730751378133093632916049106048801434256745573259608033749413540341487753845356388557911701327037618041061986712421450763259435172615668550173397860804659599447770036931554834825638913955499224945506633806701518445999691106391765521554992890166119207879577166225050539208374362264825784134774241929788107351081571148237114881860006427395222970782768720295212323311651249173698668362088184130357749949303021288732968893564742703316376862807792363566466934082498493490678809489764969510553880159541995100388036803350554731114155863390189464729638362819899451599544727913865138232163948083420999482332075647639227980689517723423030357086432290287538057470007868517500231042346690133655013979156872449523273143500616978417582471076722390080997051782397296361882899341597569620250484518114596176728669289778669533557645282798539912958114197458575836865735732934599692848250298286428611139182614424610090947132062968744213218416659629476209445873158508012634448699984407904277946848722769080828662354059105575318773161182601690319446194653305593785569472766151777366742557858526264684883448023324930317913332150351917937818120732876858278098208206353100606401987052484723461066907220858082976359991793518734812127439548694073467750124831487388429020150290760577007190945743655739112119953806075621141909995614905482784011747680656818927037971738364286650208382123824156839409418819013313888647343375890301658937149027645344553198742261037476148309584454898791327728716457097397495863045826699718016850843047254597685357381239329467891458910832974330138527683870530205144812847324349679010731272598051704542926027526718854786902281252112802038520351256302092340915773712328759398337259994629950492609742036838032110450769088215805123559418425048958717403019423618346772073321528889410325385108928989373772191403716158117425912630815208963540217426778603052785441337896631243919543569555354904076900283046917960011285561383178034240337755892011668211383233565809479437542876406272198846294760589948367831057240043100188796880587445435279758998257660630558440978000689800955663031418364062898157754952540970365875648365153716118583066293057234003141951317294818699155205811008488532591026871819012463804576463774483927711219320035841709389118087796152601232315267322688661640109986999367791182917114782418745853277844474895437342026463665887143870806632826927009373754284840801650576945080956275021600528109060601609825650325011561987650036791557154531496541615039452079487132782085687850197181380330760432468217849248145581933955500269937970953196551552146496667918294927075830430637144385788524598645747353506877285166700120145148534253879732013104044255478664663263545142476526099664088326873133388585402902698504614284698283936301791790586268062017928768759364790083701502024489010739835206847198631621864649245370096467290712437215085159517923767043091648761180118558777776111553096904701890947434259745383643698126540369917875716063086816066312551705563776374040112106683031265823578668828683143620269641889710015155367239791403607661434871819833116903336980371379569417762418452780261330775603620608512861058515065784899580643329941456533409604765285699615034648371397081895120732721417757479605119509878473421529809283321844820551744540292156079452990258321493631486673374545172012470802038263092563334347326031398711770453559535355587195782944602440814550711732571792850865631042479187942210973828546750715683657779495746048955335374017136126419171874750559121002158105070551574102122015877960250982743295002678960712235497655428815056571740562564778953377499228720571387400967526506154796329784722168034697557998985403799486708405214235875412402732734753430467415309167983553179263172024007061774571269604595168901215169532188406774271086846110658088925708811607517663710264970240552329669624407816051462115148674461159919517845974947690782181477554040968878011551336107448084695988915611371182486470802733074652873100616070861717341707077583504375103870392137508562040785214517540487596778795384045939347389091408722991910627598496590274426723367762718447589382037257583962123900671489704477778426343645595926121442656062645643870693731830283578699694168448298802858600794236424024313105181325650412917260416869193453073905536120533337864310963836011507105560262810072710965932620049179878255520647928269224971932095472731841113165281168202747474011817882141270241287883947985748966917366856440010125323793820697582908479141191768640243687074064835045916672258798318520922160248523150424907321804202454477738484789999752179915804309271972194978435969442913890497912538907078318328427721615445905992510791477144542625464399882461204364527548783754454399526721534275874070834095918409635871598317431153916461774647907363308635632430549151846911523832619722313424309549405465156716950499375916106902955778050280678038596335055232799940118839672294389114041221608900063319886996864273951158286369013050367755833227264311678543624191488510135077850048958232010257011805112834654848521049667567506759345118367207007870413262390304270928219572853786641669850084837613734189021129793465767245757205062177567893997845106604912411165180288631026948958014309172859665856873970816545177002103723631037247007683222723795924708664484457875560544805332910959382764439834873140641466929155631676982715293447058115918339803349021202634907924898265195916196933159422712331730221595967367168993293393451900983747518488700301546196709886197997968104233395638865501746960722571244434062449925807302115086860841732376278175479553200099611133330249298196572739851209901869412936118731136929164766611780618638995929888286911606943771024586016983040679401084977191629307458782780892778791094098324653886988660296796414217853446064303729915677329589614716270279938332456387518095685374885596317285013988148332554330268364960356851021771213539498620777033445396117576884159144359356982217863179341820820638764905082705593942935420745379951603184268884206987958983475554461781161723628985394947288576177774465752315868190850127151338777538504563468892374478065391999303002478901833043515843017230277159203294636678585566861684245504701829901715878505561177294215732516455736330898952776317371500405204165907255361794043668747598029496719478138684490926772873307840371363550420545789088826310152878530683095702378297965553764640881530763165276645850995757000375796630475780568350172083052759747186663066488548087187441406110475693190157205592842921290986325060778247374370161326025330782846743966350827708973882096563914634600557546446152837781395161923312506211373261949776060073509122531267712464390321824609292214871242753556484036801787796755943106319240222791350671371668408260149929930821816777751074945058102450415021175709812398605935978104082639039761325920779495617239679787283192522180265889688506390321086687824539330015309565310369409530592895484707922470301735212160552186242824395835991791091358739094375165119589109579451740242326470405158520058737125422200233807949791164527911641595029828178903110138748581594905477898496436069816042907238283591440901019127978945776353463956183787820146308589785768538748581887903046424011237387476370373548938978126168191979843387250519786763568396096597040950026584139936937314840557854643156932333432346618288562677836538960447977314853613453498959330092861520088856678404274137646163883973333563129958182695052135078488742448321210558883028333406055076658968979940004491661862658038899584570755128002411571887852511071840886339023728465178551180124784041393363737333503966596339675931420670449291290859579267121040067123694786085521045397873579300332782535378706904398447932552916417319532005104677865152490205843855059682274336885744705875054366954166590997790773025655644887618038473603665713242876383424888225878705740731522669497860025302615509559582026046633335433273882161565675854796087000937546339397739596096897548586905211412347177796441295511231765401206958882819179723250255690898754426690898376641201157369142032156988255936501300506175896615552652132685496124334935392180621127583439264998907701643160646955955177572914340094646843923861946015891345037067278880282755684229213529633385294654669837868041687680641382951120404473917841903265909658139127068850857309203983672171779426563677802012209307384477495967355257582871936590665074804175120618302809984571267647663980603274820277726553743392955568301975926549448006345080449393909230831876354012690191453254266949302010623671077125999311818874082149671987396677607879690997489704337588536510177219934668891521827110745305051081760390292794432299723344971352840448731438515488179396314238388369863359854941429813591485503834069342442247742965557855124640781241145533589373195499804680358152188400934005701706013864108447763054824871039811826855266886007663930010286667543910922180185729239543052141380720057318463564374526674676014615058069680123283606548511224726780627077196715064848257734856099996174880826297986586139221868393744828045416004652200709391204569773930156535489825950546490349167276726779400364192883175876533317734484699567886979476560107225969817187608142448967912806288423700419557914215993723621853400962140539244947232517198218078317179789407652302494053442518102876638599417545785483405929624661354817696150251278861720829860941760662325803482605917280597472824525403974156572444929291015706106389325020436905626242062277362056426792716773187721722888184266795446904279843714807769032388460462344708791732930232784480923965145833892302623274134253937567601943908940010519209630417751653173653959021967623901480405067599957626726681866295817447589137663710106292120766985572572174475143224063607503792111929975398290410460866428982689440818857765912152808157378114797324121212252566458844279513633518349468048039507298980527713867617872476915833109654440442065432068153782816143555447810836529798281673021759502768077220395580985232426937690739167855078711377989952643863546744909578310924047748553229580643251097152500729420322860085755568038526712816611612141543947327291290437963132745942837133262273177363527259301777214263632985153539504582873445319088145206847596154190985405156269855943517432751047172782360817679308710433278531626337579882171960716897511111205093244639252382016108935046909824384641708521972468314115422773552197326458260052200831018656752274320443222642774845087895137147432460456835610196310641585176431751803764885753294448116320481369042530907992618167495299015708793643554591875105937863115549263174404651879423815580775039739677935050945446521708432872541935485526071214001914541148610394620596890334673274721033518280570373939198679749886179435245169135074773646804524875767863374840523381775363480562412822355021015472093293240249504054432133100874205571685323945760331065524082531296652295837002827051711557431183976369789777752907199614070983873142548374621954247878205773132285680531039972736089647261769208965503021406782436178778829595557161292175809759471099922384383433993674666780051717570197967237965198891365701510218814673748367816367175490891574357049340032308327641960800181032679427640917961091307373900944338312084650608799727136830634676419916462908432779830927423205026769000491689840965144944411091646151391020551493573139390388804370584670953338764454740950935036758794679872607674226411851787036604708724827852285491956558189701261655655615955866420308606833507350834272735002819007787696708522448411593976157452377736894529481488963260602118822775004594859845018663664613100772016999244878453873277876305391514295391606017250278053096697678286543521931676224049726935514989731743329320612975795811324845891647510618196327652015444655630354805206562016793487337053490181664378574251561835145032992062677907852159935249509232405013701489112055775123084547813667495868198840991463009194171798474616166216311515422065202227449166016128396850994999161862449462266353064514360794758380950179710919459858406783669619994773860238537155203083793553934548352114076646986223410908349163641497421435321434116239937406757587851883027501789591054410370740088909012303029659547967837386203959247127643534986943361562757335410360304725279413931778566158344155880228419098473452526969291291306138810042224935260222618078150847847153500052095281607213827320539246577816246949963942819529029336191185266567535796567110345840952766824897442558351334663616748701023008253000124642081292563722879774758239881806439926010275533140156521379591471469983823113365427169495975070629416101123648423898262774930848189106883097777703245785002672584214794560187033341292365778118336124985037869662489411572816177608032244902011603960555452982540249400588724224662238901527454930469811527222550886941417889637149925977341865991613679019227957540847669207330033290573567519120295637953748046172392776415005655623061507110692260185719999583762806901910416800775323651107500050362508539588585008873004540623217228185855163083450560419944882662403027751793664417447282625937708167568530277300526128702508885569799992907078061444477351197314440028078084278955342058982587031373621159921821526152729521430363113925886488839762900501203965738591797929537935936339897156853727977903953233714385966234677947961344917965883040087532622765774811478998538445205721993590911962613423253781378143312851900444539784420472519286570876561688360746576546720413944850087969713027569807023720290820481606069730982666086544892518874248720973403669134210751190755185991339286539649192691753236353309023392300764236379818858633743683431043853089349679327966619845321373971896884209043609550017534678460561538715375341932431262150453716620348135909832602209304451146422315252700146085241197569140811294455735243619611317934978225285073641489453579842649433722027103681847329427680800199332541448296213259106680076514514963580329552389784463722271288603822110036028587614967216077701068089603027351748826658565361913196568782264319734945740211374631900882718558926586501111180695449404360677351463071625341272182434049605468136614699747093991980264631497284680694921859494962819865726487508623037304914640313513865608648760550087535771960516550889021656493655739098254484891266657814099305728936560262079196172127042885311156698910001128156623563079154173646923492011788110192733897406416698132324963476791552801529173820394678620094097846652512023719220956541849382135780203042146057781669996913579059201193729003287267160058778249446598805945772540594822119654615327372661828600393602285603399228780463747390963836621520355080069675611846766412451506395477051311475797454509984640450713187274580049244119418663734557300375600889385088506291160865956764337224453673962365910971357954927021770865515979952651606048654849541109591335975656177936818539290949853149800493121736632473722276758178936910617203497792331734158855251386770624437496057575321471615864004988185383623505607316236292320961282152218971722596236865522005650754884855452412725346702279857845082084328609753703178942300622319226083714480306302824550760249769576421086161483511572190014053554015997733893121492588218300071390338120361510395769302914935127295511277626631935075777697224643289896566053666229336345187007844285964479554062393130859555777442072856590412023294404725024885028456301927842397099678583459881855194074443728213483591022529796128704614491345088138654275484168948588480833639322872523258197284902381337298767205822026585635534253423122743945637859114711045793928852987682005355347172225991229990201745581986978063910854566512221603109208238665260269819895010814405020914631474475186830628329908528828620830340500749079816522585424525396068242015701450792098147606158432864460176738743275000087086754973621243297042464053935818448796390212888412147939386633647399304563211998070458862758772812575296550497123200877660141896513997503623731396739464487237031583272841123688851575803748429837020515627286563202664147732906225412678245592134029802131808211524711705763007880589727452266193822946019487818989950185380077220019598551805577543493148203882671982148600679492830981518365871257050070900665236727080505345387110326908261561143174056620028790351419631962052111057604861578039234671798820254880762747869965041853978574340543451372355173862350147714701416022689224311319843544664016057247325265092873800524237325384720440552034865625005673453079805710636204623004942322281440692306281880320011728981895369597025822879098191141714980023257911606498010949580506781080815141273347134707410188132311443537250579855197789356991306162738903030377161047240374435622052818416034355051603264133391962871320672962239170620950814886250279777585161621640859252839325894995953547464395503285860952435117727663139391940571302772452566260793113900345425428821372079695897436087378334736091505403619833715035693110861693504740984008434620199377841714848491445492024185281207808079891529746857990523803116166149113895842008239215062852490354417216720466682747504814587778705134240177429758213405073242626794548515524493790380480748751810555326936554451228574938456362262455207006229478068765045029772545401721108785354516080553187022044459546490704093793447221031998520618110193870406078658893436434921163207145395179949067285571894561016688525154516375107508874557168176959102107061100924517802981145383349324557214994428512444386527976930578581926967600922049470542964493952453897643038699044553234813539027207632989777774637637700737014003778238213510508298480784132765196527189830551436774995100894011510403987222938713107286560717848932512351018724434874591378617227862279931217558132838157592728243784974714618047641680708620970033731211227445009644102435392458117638306089275052564399043888181311646257974242711849909435993979648028670465148527545272738148797882429167287325226697719424283786923860528134532448443684535997078565245577654233014941523357486806463883880176503695641131569397053392290438654361023249124625658816196876754653273551591889552024023422995802934839276630360243941673597356798024051397989466833276044325783426010909594901905189312152664096955024442766486325506978083056356079132802260446751228480569294026829578548323710065122973408777534963783941239578101653973407816464080364927034324806808070935438008441003017476256384379461502284665559459548323917096283400233239906075322247322324207233804028068838908347608387841464196727626513765189688511783310068369123628445800018841285824657524108553523223259066913256725066666040648700517467237209188679294539272252249393552322679194373254417181672558133302683502084916257071173331429966003541938861201937796102476165637516487726243461726982519504748652786561005066707092546439461918350601740987162027684600894116705113000633913633515479576263936986698792913569640427710017779577341329431523348589835778920683543370844635506633471944269888251893654301105867172193509339046168684621566830510336290639263125000402571547063759321414210500953922952120595402834541438117717390246086490681759629266528158642005668500054830338101148936207222012110077319920999521667529393199107108129497125924898870378017701564575836736649295798732295395254053998324868118482312608564728880626253759203661111966267378348821269786500965464440255276830450065976198858509528557732620223553847988041319588996952038281616136704520973275484814429464215356512017174109712786012282636308450846488787723265086699595591387114073702924659690464569523470707538541265870928481272877875252229817767302093154456631287763377045710953132415514083666016287963365053019901171025275020425198716716612451332214629482089916515675523851018989475162512235878766680627343336228213485553064771792851074660939450475288816842979107506534608698930855777209130641278572032030846476806686216962364442355756532207898402902871008875625603946808349652380512991276714741559280720193313610485221236266605830477864049957079156691076751037318814474641227706820469117246932402514043817424106319572062521533773980984525907760456819910112201743127584139342087360025972564001352891809356133724928264971056786136827861576726741360988994579160220318457775964225402805431298302292269267818346975574086582326452743781614001708692327945698525801527084261261217984966497394699672179126390320655747698622330171776483601370262113644039002505464271150411678651047704253306772331666710087179118072775954782156859672729968522623303295532523537285038445491749100348694842263326326369358348921305857228231037000324643334370714952769573181765007299259019822244581503469529140307178010258268046892590270858206312997365386497882017313426055263707512461868319924115825296279094053873166150739717992483138684890079561594145349009302133713669448693945114414657863672646189395619893512317255925286485424916654457135208437015542590536890327347283397687728236327527200046037755552867928664791934575951054551770667388691624173127277155551650446663336028877703386289607350691642317827180818340941972526438808957067487319721234612922781501663078818664206014854027256219998786362214110111483241862948880319055050815727528096324386668288597303138462184966553072567507806340130597909446849715823693710483572929713892752826732371471263702396567084961529546352214900956797357874121496489175596645423797888753772458267230315120539917861386518639417310408127640076499798898780982744464190466453252015183930850688810218896753171058257816639848109636496558707284490811432746966426980057362552141656004441743387552837039451113630546935240130216554973358369236363535862213457678311467129646779225702055328733981791335452697349388649410206382065077708891673997628726401143484742901879796726972457726193840451743295904366664097841746762781113965220462207234181131860290472457686548912026692372615033755051261273421557388031832646615128153713988350935108349493108692841997862139527291908326236717679996509099265759403228112084997897919478438911121241278828461533050554952272451856768733001442801268602936728803590944366359863067210937349843571493395831822633589532682832869908803785882929047091002715098449886185024416733230762727863320778464088345927206501080604393489972294290780487209486032681980087805287956198699140120357546594816303119750523710084715785892605032607354467630118453367353282151483040337760103810411331095626453589675833816457327511788158039493488384227904393529165476992231458900537507015413387402344573993662689819433840516192179246298447849001187440335414807530684147201640556963856790951187769365337089954982896048786034879352846098979384299441215339498041371738234115125222605422457282058850997619234063861119271842632202279677064400823367371659526653447533494747499597579223125349497469142104646543605695363637145521051742077159132260717888560965298851367233069101240811679479405408066686784270559743139817840689622644461963621319449264923556974109387979635579727772391137037734769637257581120637059579766323992862185972637422356742566595053876938866673526722645097873719896270419531031784476200301272076078686416451529862896498888773700405044124928143677817387970829416760886071275788009443660939318118483551837529579497780852072750120745434471610970495593827517278744152882932908012526372027366274804525139066950802190408721438178269184629998873525429106242284621491835417882332880742388306333613798123835340936385633199056552959206247122318506854844413623674911655118867572300122713160364591933665616341537041240452480659674534949679503391222639034422133555320025179076168806585144265173037102926669195356007921349370457026631723799554258306542768071884114711233919259034381154892317257638990343208928234691354746237426308409336963057957176685564401643604382865753321257517778400839693641056502259270949138330540489710100185015277156667714786985668169072647659598768984019995456240429343707971401999138870067512786644751621864500416538597620871908147020731548907951262883211565780868051223275914913983192864298427799890097713132574828222884694096847691961069034535699545652419645730146038378542649827940510564722103412608689954265696101953008015994411538078010113608302797992581803635742434995219801916971922588888769959403638968948290377065636584599639170137609115023765239276025512052835560258942839200333495157025960561375447343535067053923019851147229432667976067023685757607462580192248077420370168160298914174644899417378628908463265933767388107931681165337017175938932307762912817066613344888485367602294652889945384699184403721648821419757719568123004933677588995224960753509291191042073618698128055889944152475713661537943694111470308422661685943942121036383862803096933863694437852705833509985007318553776495663400249298512617091480427179614611291764757262773201031962001352063007359236903135819216839544016065782007456654548946684172643959412064639292678867186253829260752560108963683992148751542764882097436819378787800272252140594047665827356480137547690031168348770239955551579757340733864196675143412051266739426398624434064424558104543744794264535250195253447380441087111229254234375323632245113782523164378137918574147173614117442814180624910223690728143480228782126611852851037396869702748458091536423587808424253744431820837812667678655020844749127455993833459280835433238212114990337121516597321925744951293082762292346805208194773485356003842212588322249314403207984876134113347050320834396870627475679428612915851248865807039076763093393809504136961326577484226182272667492748515330206836243916155770154197687951354531379221153660177408633212982777666127853395310792929727958875738714142910409601963058348639898472233537926014056041948686606872348252192169630633107431089744930026498427142577190363826855720132787943636743607796942585328301409770977997946766320545987852508947489301864435436384489474200272621213181017066180067732231590651026226314514937005034975129126562736571373532610828329195051757944369398104859653374638745154144124008642949937299315518760663396454632658972439481516265296093238339791970200071821166130042110085677538264750832982620677261138715023893059195640283775036253440505118514254111328843108386486529321910110205380433376850433551354851567258809573941867561016336930344179424500300452914359577866676712552149497402559029535232977565475461343092714416964747706755161287470430048644253124365154150233818514526244282852659206870660290042430619886068886367826125503976322836073329571124721679381550747058427898088755753697072483364556327375657327310823253939938212980197289181633910038409051783754553457309690753951091750504143850604590713877386553815449170929672786838972077431068427410847220352446453625088685940557937304084327685233538087047786024414451404074209733293683546504817716723862593754937935998519775642246624651891452299033745113671900993781467097043678288792343003515201716436602680888117296185239790958565404420704442202727833932571533492149126938859817586091833520535844276997542003888129136138320523144652663772588624537176613240799372734218419158569921175502465975205908903133116442653539374331895783585807531807355626202336628099508575201518264736645661590916074992449788374648903210066563933209112931602123588146445065870795874424018716780437703940969804943126334559299213660626860454078651747812370091601337029025855553418787638048599027201024364682306409917488835614808528457168853115652761858192083470169826977192657901646013096122225120080124215677508600896527637423090290952922219916162215757746573777725242888208542642656889055316672242324831208985128710946312640137610796422793580801236414824634240115122316388195893266563903889917634512139719699802550694665797486937280964255545883922087293409937263040482209099429773311123983450763847879968536374469933380155495533736663739579521864530359017926939950240655873424563835605711634165222434915148562688475635123585808068199675587504866116575676260065378700379196719967819282585022136191067959967994091686240779236966096039349080023349476042276279646982590532704356568098889069797002722460670909848998810485888811934839611694632332818359002674944695795069938529274333017350255230029258735576707061149353891848931013862030760564606160766653048662347333109505547849563222616272003620666345979683819023152567087182051609559302004057508338399435763043817227311215498360615658964623339962692072525565553059583819287652075172843300407472467226212671955870899556012981067765051950768401523027540739712511081801314355775721400212552519420955191310669639347510328693827021265848924820370645748729150074636289337489686051517662536352912486226852020486817099714422559568027737262955719417763272522231015871725775733265205387455863483583809995728892336438708998817652562588871261474200919431994467621748132658512935747662187145618221952772920674690604835742154757287796483500501575062605615351239157443073070891872288765380703789107157236679584551836834832073835545540859917715062675829367934631450704443128627347491826971936391198488468126847929239161962673208300464982806704676904070433024466411136004382569901703300052275472693909072975520773224130179833922963709882551889218649693577625325879620344277789709019659482098658510033383424847307179834600825549275874974764550764711084987392415229532646589169564077801497943385114871916793951186727608456958041857930237119304717575356473071763351072775895841167890394967742894501524387181668898848924157371420656267775113224906280144642130088415917796693528265078431378022693562119044483345810636637278176408624327266324068368096951326797370783637554002977515829189505900447835444699807465517396966694572472575637503199471233268533671757731875126327520513144433101268838652013011682447578154646338576032230600740833671497536318420258354201137521093918601851368693322491104581096493468727746129501795490444769343438899635638031121782773142701154145328783717534202230036034666925604973775529651043940004405591584792976384953869829170926293285010378827108257340296880701517639210750348128990184283035584318694610756528152392219727414308796716476282331039440099539646599265734585526215087624452331579727847546217451971178688896277656572001756367378339710053039825726751471766802256001050225159493339145866947948169284022127051182875433644541314916097566288076661631917436235857612630314434643289619824207804145157729574062267277177954811773880287437486941996169129778872248458634622188108253608383075223942648721468513763365037006100250781286793875450757449567451871154041331222395585176257553287107929353687585438904187331294856368563717502991867276317661563238067580773324740691921754450113115674416909467581281693388645035548842357265346414011769400456464799041142812738938605585281864627466616580680286168516498899736167395831168816106875498733939261227784101824520427338152716113330560726309127515018828466179429945461680659018241831210709366407599237671458293007081292744992607334952832437903082382246474764500333451378429939908856826962562858661800489998033567819201061908832055308108765939866665945640447776717573619913678808997307198821242882479667970652622739410256695169408067254373504963542483470722098237500716608995094931240521306420624953715159659274272768831538139674936712742559772834832631456158448051382368002930350541393515799144055799826990844341766901852836274066065046838607563578399162958582313616978083071400775451014175144065429167995031487333062371021819724665851852200720189057564942611082778376923831584849089901969982514336616267710390923655958561190330895940885138827996694510544099014140048308497885297395401008184775425079041584542744126279253962385097736205522089440077516172182903500162516641447001240413925884255972200773042533407189034922590003640720690565855947707974813954814897415780426931215575792271790245524431965958483626140698098381664518383805122099258652978622585690187279158274334297725253511630725964373190135722735993619819860509890755623494854706555671707047308774264852226837046245402977268155364893035711065143006505830435954009194700058144346467900725254358122932872166156124192148002999787932719675429480453587601131778599116677900973862125506158521068751802984248936428861533285434429876430169335721423515069452834140558211677734642194125152889140914135638573742903931625593992137838979361918104757871167169205656025029404956308090752024102086986631978530975014376072904201002633658191103467822866266039015824193203771561596888715014957469591007137108356856949988017056434904107640159275237426526043614973742864011905058812572539827910006838723341185610311086012503336810691363957399417317179203484175815726288470881386482410902220687569676679487902510348335997916181465343905659159702068817028944188301515831615033370352160813926206096577994866419232144573850233612264222738722217324656680291051148485364729697099476548542530226399084281621225463944142457423235198058579018499036477214133302936782435591738601403846746485373489328832638613521624325588950269185652960617207527735696428996030712892800433271532631335062231586986078802971301493090351284153246301819009164384462409464384665608224676334160579234957582924876902190788808616543031705981929949553233414515048881112885677455699155194151732995222341671814055155034645214822826740723576847098349285306987574569627326628724680866384961572536233971857903184858135052146386112661080849921954207172700396661951178190827846165519344740175980756319587006166747874094050287709976366946150482626721689689794983556128545372278123772927520000750183481533182247114683365227463274566708150582368679517233569895179229494935928047299280129914714423109198077159709215597508037927232451792889686129616638733320893365825863783853140123619386947076809189184631965924630917667746454459917988404115297687291106381122775093784049411848054577210820479112481945621181651806890321197522587626860986586338068900988574075937659607044209504612922710366188110191652919222871281601353798391525300442242035729711478504145594254876555766994124779820963871637549181751814011176576215431983476081010518418242335629171456130983570623183862507736407997743008374061999318449476216658714317023457071087180754727735694417533403771239906705822857070502138423118536322891950946037913132042818178871575779182039654102158851116532214995312580160465794437838046377351740736889593596791251070694477966897377854973084118900555832099251227895040406245041066155832077275719469906405570151320996070678827611955666590939175127617353692989248053473786099596839413974367128231157647034119610661933602949855885602479058673662408509597419803519358962915336620416251968813606115654313654276478917899238292612550761333679228264268580086945057519760770597866118830331629786013195104778737431466067274646722532318958981918073789009101247706069217183185672883195145261688952512783537665963740714184779812985193624490013779378499975182922464085565532022422206531955858953902477518628746693516309806962569099539821202758954768117592496253461194658189733721100046956655838913062410266386014117738977439685408279389523313100160438311170147556445053788821624153559179771824816585251573599737156568928101836877311757726697862848924876140776851772928670211524107484538724052022092521754143648289190057024064657991970995878892601346677449214939738604001283125978549800665693774667327212069326347891686046924071305050819861703205438122250961418832159772503068572542030264309856185654861515284731474162274662202888055861395738910383896011264213793545571064893715537214228650565317191287023929248844523835611780176317943303258587430912546375394377381237018855391791046723729927020849955046538555473558219179672181089434341913290212200771613648696033561783551770108946212595336419736143219219298692352178581657616517196532403040814358172055321184351185003168138390227786163609901361213817092631875912750947704789597753053450105823979232981994063617284702380903651914261047591897679410333962529514237968927024516009097425183443194763169273755164200893121828811715104786461028175218070368364240057249532676661034914268954479070728306271287449050485238608155312023032044077769408104057110043259405057575079721430398080002988309934988909762127179196829063392072329516834716182830694999713968008500785465992865610538826713043216316481668466714545329542755814432956028455179489468071894970579963234816090716940795484207880528386232625094860749990233393781474651065548727615090085744609985822838983912574662091152943819831291059882887988483664425708551567034237410344097666810072408012107420691433430107670417228180060393946707252991833864605599631416807584852350167140881492415237836886651591370850845063537857146143074043724437771989774185973622587806207326919477517300251134755145292351110848089429997926072566066547045001246043591952773922460274710769571363132700168042480211850918475226673604562388162077397621268977743371843722826775001020907760924241014911782401186599428174510945803138794125567123885235345247664571205479021221060101044464301915249757217607669919067528492112917215126775252795619816691072551196384585214648756836528988300873030771218962894855503518021761523235306154662310175358488420269647222165750499397339104011480297381824698414744115302194716809613665364529714723135354158814560223730972590477593282280316930997803889873336491509859354384152479299320170720859394744938721975282787839620901495128965751125904244597134498176719576138891255402609558524267181132518782491026063431089590428474409095228910037809428901716081807714907121603740362241130541318002106503229549656141274772222229286250761579996720870496267757804454440261825967657326349715984534027041996113740344672488046531521773047644314617341730463268990187364573176745336983941197562158983511869174014396273537330324428819700877022255315437073670463333637788887362180171787637411068410050808216700918097846509629250531017801666022191230547201718439762000147225293625428974601214067525640827930766087918862016801761486018485545440475003209558582611897321736554532111762422554050116773820797240927631148424317753859549251606088376349003551438768473858240194513810276345348829095919371957445852214501906532684223199340681052821689522695907610541372880566262734897520264822442453189209590118652916450953887667956637445128296108282475193577208215997520150111472587570023335132966650143437431270020217455705128060732785651215242381689662914618387389572855242452606214954783704652251218390493414451146999705024531759730108923946878464562941864286998581660796943196944183293745195744599952949777161352986596858840461894807819510372692906535117304939293664206541267016907198311458979009443878719292217459459728828981126349905065675835053385114156962219463304217258360297251550595215115322201408103394412424175503634551979410918924934762762861925186436399402563771136725703541406971993615502579661777702098020365099257066574053596117910663791764050641174173623898464372849597656275683303021649078852909250805052250144823053780781088802736790800401244549631234540756996114204775454449070020763487818550944747649724294583584604465308803253475862463479774846123750603113565620329382059802698310664167988046310153622101797906391716934314952557540134216827400768742472718598887124995019673044566952860381894349420748318371240200211374006049948887212477592688774201697361411487779547139872940910713132232340849668581778463283042040670583163646488517139519226220220133225383105821564908956669454562813147387031989786522093879235381009553220559384922719327629478313874041182327983870811848618223337629114638573576237991040995974252328576995585142605316401484591000477097750460509369840063383721808652849746971527014552553149320231751433604581234532162819890150602474683142037172890451445188796127412254200097991065514366162558062056926396254568029737299150822290747153571545578513287948224110571440618208517916037820464351374503479195393002313387861935809561810215292118517145584548959838585555979132158734616415097906325944507354061332030793831187902104331727976378958561436862629551535825025451041309501456158686061916334431143043076453608985480690248102363070902773648654525111514907555700240425014509729517214688694007666260036049754176429632124562578830762059475026025605114153252995973807240000898663421669676203577184977030764096461199371413477362114058574432824066638038758110687163870320142550819721696964250695915372289619719720944999250108229653773483206260083434553953007632884648463821038650706518130534520774539615511700896759351806563050016653427245524874894712722376045335630907251266461722875654936740910128978665315271847821537105686407554845956205944609376738896664704798421735686279299825391965203769808279595541055942308654010508978897941187233015802763872582997676051852962675581932300602757986799512324520810360242854143936979122104600112558431526001016493126340018595950811217847613328519654580064315042890164573815913584234194689764381590984342359316609706574954650802895011684873976863932440531089976960990383700784872869629015306672186711864606540230463698621561929957398896518119070487204052056476888696560857255357598550127380458850627602812318091329230150975659107678175844830702085578457357917372423226877386705508256519474240748265677214838739420786210588574068095188758606495073941046943603610127934306321337493196232380749989755534469305270676122837641077891242282921291802780815850849315656167303155067239330029905026922601583559917225570501764182941105978299237132762229377641609338400531519019275604610100833686842147394569080776155579290893304508122897120518316767883555522125697634852337184906262523869791522405505286108906530066044690312227680784376960735686949307677805546393990748010357000327927659046511910697663501148489675573738751448196973900280541418316645092475549996988146061303033193266453347259989608278575078155510548551480394273420033723518135918692856331976262236190459811201292874961831921328067157853683765462222945226520879505363389742881555609126902539956553131473581364902074307879400072113911062767398961454634707913750276416348884420214172371637509734331386081282468237261030300805661764005357044179506991462618629174802366372780716130742396416266859120141335725697982607194960338034433258547848060868366035830993342772638582752627483465871042587252743489186740616274428737854780799687952792617614678548332870545198702258748000385543215886988228762384621819408895258550153712588301649142000329193879553935633902050630066273210134224334856844057518941091981997671735296276834819389622316540387728059251455475080357009940319487840077790567070018167158299644799631053754352153267612038091987503719339251030191499734532805938827975366088194154334742454163116620294240159069866666910294952747288501579085047404075502554028687861064221087803895713771574749085098062164477606024640803144006834633702371749380880968520856256329219634394899217718999890840144278143969454615272458243076544290265632592218501531827374522146495685527588192836078637694135377959045351752205927151638642584837466539922453005319741745397324470498156972261486527897060334634094605948580505170895110050145091525315582018883496057638644394605266324418044505310843308450286658728898923499804846133862580584244975355573892239184319669241733465970815415043284014524941908823109532491732009486314779661928741483952415509719272988713117267788117188041778630207686510508180104969417321521721329331327505218147561041375115023283144747479254484851304271201066937151745544504461531683775019430066493630116945142915353685056675856116480261310533997045174534708516646910981091429105028673973912815733372359581698753023871723785552382266809228102537271781429648801546764773859753690950955791184348324122839980205327992740046831966230958057368384699313717033193614885005880641447743963917028224818287846585353373243709479377479416095235478351972260737290307118522437301200206105697102806999765555224280897871476952348861692945023164224151553210048663355162566341496100056279044662721125636322595789480949976169891442942625924248816403280771345135687606879018617795808507902856235350479854518554612127783273430615076337671941880815775409627207834027492597226423193640664735093847208024407006468360810718172695297247430381393437498406856410167793115409932950509515642483493547002271570193229938257973112513758648039193697850392704814020943651341842762204158984489786322989584779198327426214014177199745218879749415398744880916853694235238173558153409598376154448389111283561225529101456939008207356188969982645099910651721442587135373519799660355525061339677593926925176683927447953409128368170304539378641877920864201593104326527414790063240036109904540988056350635014785817772337264170110301618593970740549120211643793464258867907749914806319173499240729555712277949938330636951838511291727566701231078121789788232561372457642179827135046469760212678134394915425202657897315840664778347328342133066650266420311239659461009861447124408103196478228426689283198073200171392795753418190727202165824971236480055173041168507251667765854743090362898793332728960620156331147666604449453833386035937454612351398528974312731077580507341558289731220430521969919493531029253097410847533910583901492062874103278269573079858170644219450039186064540575059461369190002688614136318943163995760453719712712100759979853526553710081156488918039279146022554661169935953227641468360578093681800751425125978160815867670097602713660000420166088310826396437020784236519750862024328132498855947080460964353826295298792079230831428080900155974576798489974320430199845495298997255738094221654720056869777763398869878104054234154070059505945117424747486876368697810760752899916416771315468290326096754889745464704664205968792997117004821779016641423195917621312483015843464769901499969656547294841943672036632944908030947179406695198601145408014686930484737071690000176079657060628103654709653040153898826685782705602732544727363261125483839504656249426505544655636183207039869366370058075659936358753879596737625770535865755781362185043635813680071290070364197167760615066803006306457289786694530406857052283372717522510153175185044089097553976632221429007902528838506099780090864547544763683437028398473624882112807392039765324330619352272807591638325270868962717421955443385180014525436863737701297776649862165663924129827527589918641639663632738359762185580277093490169838620158859725896708097794880880205999641460460945976787448460728233203771399411902319466322015267619251000724642656043892349468560320765677756965961844819733251956664163321531261715763917778128077051406115678712365028321306961187672371489750371235780287047556505771366053526279722245887693907270024185337679815473243287654680945287038434701298324350758035367883575777820535940078566985725739380808129035301187622337450215017026134125757269644278177892966289467786209292643090392001039185414775463425429493064396998988980552808466546236745814998609761978763482263557800074783244096903112634926621398194449935400755954488817438893776969708724269733135736281394744395350287647556783118182673152989002885357393246250766181449920731978987126107488774573457762890163818215772984375832695236351560108846751765517371974986441977782182886794503557285471903419567823901736864838401531656419247996949503899741480980537096256859763788811346238619190809323679764058507633738995038142555325874246548755073703895406183336651014797531345913123182063129466857886311605590408168687220106583460609595385748240127004353710723355289658837576117487829774340756940797566718639924382063774793137958243667614148587102083296837977027351958174846937133420769563574851576214031953228127057806295214954356282002159920250784261394034816172776205074460487798669242015529807870607391878494592670524257920023509164043127958081553128571504545460718346561006493242198367188242401628451681534213094637738833672604387813561105536881362953067713120007285663061764037571572124834062010112917894533498023382610831027201568707699096689689553796479938590927181388735754458448058180977862365327555344154970866364256609698300537664203118538828796067166712202621554141536320739876159515668957757199765973071961616103202032754712541397775079852350272787469039268251395885764093143366270677097360268074534572758356989372985393518374878253339669361233538029918886449800807850017327892945864254187623839002287447800370316038451033608983832939751928895352007958067256424707092135880622047164199104632691281133351560557547053711622771454633875685510300070774432874469609456901122852785036347071068119249065604837502006100893562154179694094879470465486668687078084684168043089486410330784543301563913906794579904715665801600551805968771177707674024820845486416482343025654195143005736029528730034555968442273824696076434222756535988553905038703503260829142450617771660909251754492127010450074443707445743598175155931804301665510486240887735008553872460604860861986699053357514468717516472134995676664849390769952745561066547261825862747186033952542381858180384612801357309555631452281905500751163023163341035890821785701554308077199319782662728080916876874788994941778337469740283740270824853718706073386154471197749462152000148517613258705974321737928670017722080057329008089383633595558396426150985193659213016617551782465942584798052244740562094228348834808260357329617904649607038583344647231198937048338213610812044365821220055929433833483907488636479678456174174284297265242669140657495488667336567000744825605150304520494832956365500560066372155372153589656227194280428426617449486918663169586301448098697550675876125075850001486437553990269858834876269016459936601382234327110378406770816707017249870067931821383177244618316754559264555580878606504294928938406795818058929478146938530237797867498597837164633247662249915579057034711723211757902505922805748689456610331571103898274050364087321881565894374201758201887566644903695430185388071048227824922400221182949048460894420609847210362700645216527364763730968738092273093356119452375056285804656066994127819982342426055322111649897662888220578157740232861075052485736162799668029764292996780838790584435535544108432805431162223713262485310689969586915383579391254472541787485561019423443673995000554097225534771448470941683109907743768558367609573933224250736009450830527634116419962970821499535156426090151761566221053509801719644267062437476587485420410937832572515123104904323666051380349081461660345335462587100421845195172007020281593467771020107941138412509959210441204264813519196767744166171025535747683606212975710863376748374160706586138336883905208770104781718042336752778274827282351371126849024879926181436622837320696071026980674912353683127370389850686744215065769660438782249651887403753496301916336044044376662049001524876743853055021002472016886921246511763018419591653437704751229186634012106517234503519710238184595902647413707193500040656692215940779462803885869352906670552697914928707472516598146236055611243948017556137755649543650955284936467115065941796243395253761452569982666702536620380696867538761669139832721998049848125237291478927254405791942681313146935328667647724588650555283003574067444461879397841224123572594753714653734261280026208968549035252041057761894253741003481125793899870089034868760443585042342553046640450419146219538611040700336686640859457983115398731753449250573440469960052078803945249353297577420481468650157761324460801174860066128047762812623431349352878474127017198499855591682008121183806641087352815872366374621118783281951393187732656848338541215336846660927788813043282089877725205768060657201710851819321041438245530916772593747459766837097822218497251382366221631158406878602183679269472650846710791616097647269305925756716163670350934544552725955268511021115793267775550728339640181728371435938743284205558266697577777066379247141575001797310105509356447497970737245572653348544628077502577730711693333028567634849647224320976132739062227266798544073614071403058500921179650609468921314885489568028251939350934491627732356926868076003506752227213262111089577036547366266125992115473739187870524858149324914638634880885021176069259489125544884933121217379927322408894634723202092177446004293081653571451224649381872215223267727064794245107049148635329576480323192048843544305824154527963908576438063532128303572102760466996744443155937115482834179808483133536687806485088482120512528215838341100368357504725365950608278692631333986778288404750122177153458741430055680123429357641418936356445412732983922424289175526997974698352751723639987998543048937327737490514859217845286503620676223758911879897819236541024367303572007470403479502988273577326165577306601956171232302156884809522515294119373448915813078556074029785250573917019069060131432151832984666725491316894702181260509561223028582836656899940110965909167475753676775714841308788406571087690807766493416837560391143186309758493219683082645758843888373639238793154751158704938353715716087926756029242959729702925952291098592740671713619488704067522551747401143968600497033175119519730302695482928699950779230276929091005122753840494304362662207672238818172534437309345477884783637874499444392223574949801459765241784852474082003664449627045058677512063511531811689680688887466294649185391449000342704898976488208863834071362164335333662675976711794694486204790423227123296044591974319527733709807724064242968275027189459488726886585868699075205888185163670327250299920288661631502851684671684573803444380335361292313239289168340229543698811844146209432794336129992732047194104904982957625290433862000436862159166864063749255296825572722294187637056695376932319076443563294174755257892637061979480841533087555587401520332276814457860809110172699797560719171549119393329420610181989639468619265513477007671557554888838630705462679306841321504324277918777492098304296517792325197619938174723010244948158111664801033669794163904187211646592844185490726139968650437267430258052188914017441857695542950672962066119382994518508276231682329750762337487671326696985423735781331114849084640183296966925579850069883279682893619067871231987391863851299884249851273580290189140248506763133297813666251799756658643261255791778799163172659918020731410430352984011603066614636431255722348738776758402082961789280866670224258802383565219306441976980328628977695445498257972033084421576342305416639243154506192339369024597304888482135760520294573474466937039179520626333092444196830701880702945372094648397062541112092674555973349749523912932312846443348992818115148464082529306528360555068933938891526646094841160238883180295928387666046859355175236438421328817975308561792217504167493180776653680901403772494433970979568482102647942716662610590359654459577966912783818479223461659479952000474077342774876522753118881756396552320735855757657397122982373124641347566793638718463528041604267066538865698473071979313942363443911284043511028747771823279276911930497572496943489907926977394183903653778407698598073081214595167967394878169287897027917524878356721090966043213039299212034101414267100280406493609870952009940472479356020337339228825110425397749492910254835689192213688067085077436192828299755801302512497908911329982543606673237845769018488629013130633221802171649641258934577556892002205810653027275816188645984957758431303729142356024210032101613893869572864475928499902096126031759235782217349124559852915824315008321040617868979315173797290877967344510458699563736386620233194787766947367116527117099726855417318104684629583708952872007923535748522244891411203898205034769599044313438858671789641172557092122174478730614896656884355480861393612212093735781626153227176946709133432582738300545249242950370790285289624771657805587788889640567438625732898792798398303652299330507609003116004569874591162876701440735488471689689071679001218406231859203643356791513760493499124931039713822508841925357563373551796153966233616478606346384039797277968411546148315342760506332022618385333268063285828047435154050853965792966692643288277336367519321408109657245025782066257045130816889624556871865283041483347876557883726068571246004664686938906632107459107544263520585669821669513417188135805258574483035262179263447178358048503966185667117234788265054430391567213113507292458792026214724707004380738124975934149204905555130996704668438854321362303291923863472813876547929696950077901160316385166746870858395391899839127618868529251155535319840909115550832008433567160359092168471976725610468986760950475466948961699895433024402401215437904216947667367915870297275521190116377656585245927381770086700765978762862478358986356398066598333892392143153290389631565570912242290212621822873604734429444068166347502183078393791915855236134857011735898912190680118405577989360148163071285800213682375330966762719309968121216658915680179625621714449402425154709056765166592635072078609082250042765335863402257651768867735291210069907529350466374789819996121308092807546242591590618517764886658322601402289400813556756316407654411731394315627521648232431437857515103256195595165072791268446009424019210241539346232249696731434370696225898167251137152856855107712120328198652966752353823792529641132614800725677435253944992029961840798005248650406705151718250429967256520218334556824394432938546104065293249609037824474971083188897432618548685677254449423493247477146441013646116146958046002501596716745359247335791844301609694982291499197834625690369653316658854848120813674761829686035097098725229533542299163756012071569515267591182232035213949987879392996196757838022486776856227792696928275925797328626467500726909090064126065508524885839886606847806455853049136875455102933993584551914721359512504622103948908933093027737937575570167412358071248943031505047257844219589428206792703094076195455008585090016286167695214514539080208370006912732315201520505472753419146077902620428498939220540816159544632204009260998626339052913172319253610880760489482480090689161322250707034587907718149719165686097468311445893183167818807622041360200039275255245037144229924359435151418290110881797934149925503541260382196125670398952931675634358952208402697181403334076910072269635142027858680988771454817637983010058329645473888563131292823939506840715463210023821091049994845585042195342135297088674118292789665884201022470666546507701872845796580445305564303017360137757912740822494374818436434381072157846144414048178050183827191450092635902598668552505993715402594200859175618634863237117128410754613530743672342534967608950468559108830895523480058740916603148351894974420277799309301838926439936789910622509332298702986683147085525939940183392621969510192189470197259145588837946428739567218962663178598146513081703021062677760920779665754111044861412337600122997876096123778289154300370218426779188347915417359338416283906721046507706976416026616418938339107792427930821515444235476151997231644251761640920180957129280720279023858433877189845419736466288626750943712022272751187939545939416016185290217223193767289845504134792591868871273173897190101364359107931153681505158619042584797165378824415364689999294158022285258114037891808162757770617726620264686064422638994493176100505930323148426274414122897226884132848116565950502527506504966430370923970191124173216617581190013115620925387709267060088049262019048561070877808520000716811729174579893271905608357464680937539285693459014844856228107128595251611305038670557387545818601838501657595164755166480882305388200120867993778499696662277557787149090081459853756848341483220266311023099132982869455245076045745221520625667059258567829137983195572942089178473737342029889534988865822090319884126159985416515284457530451795840396761324221963237766118916043825738688694986818123508464125982918899899433074672703556925283497531960697839198404252192462034866944916310767557917187161211327297698035078995707948243738746194906831871763760400550975383353787233261115688384706296607436067892910206552657160576497507600858123988059400605490434878523415428845386922822798526504453120883747336306747917878290100207039611657855414035354675094406908791047667515073189184011889753034659284041849280179257798654205849131080402667705954348711754820837073065915022150562140654307964307076295289909937993541313135456179356318062047437953695448279130957253954487475125644444807077285296296754937397257063507327033046435940108890214900815367467626261814904200990710787793206633617981944536469740102629386723249490898450032679052388421346477217870702194554089597972042635822604262037570719124740027347375939053515494263150882886561645841475683718479112858759718576572794871358829093152460948331787313137849950348430384946932488925062210563358175943938705393830514192107813613083339988427160644114186005866630298595386881819186082133663181937039825690237555397307989838699223022990230088992218934253380159615946193622009949465118178727668666558119375155111229935811002291767363386826249503869243766854196654886994517751035147565328201956319447803514787789646617953762285898176305293541985796249157013290248127247339168107791331275452842480292552897708396445093934177656184874068628373469116389846329669303647242697174435422467697228041586986377525533397406549951616649861738614713599740529703343604629172381054760339022922382380153213197585205939947006170015395310263074837518384066038592859309298229134529124747946389862580376900910825018279742224156458694225706390305473335049127333902963479368818699785277458374804752123150068151344797730713100230867733625830951647253746453817562180611554157458044337892517433965000464637593805301596079292594773876520273374035831858221077012194509773881446423292804381022337360260963719070710395914583910868178228831556354951838890982411509415344426053579031580587349238347546976412750576654831385938454845816899356164155845611480655244387855404525443152995505028622017296743337817988411258605790485592620095503209114798687011914565444187272826449810241954239053597805787680397723085918489120060949971654510917079593443419849609312933009313550894623759633291112403708694065591607190780297079765588216370600017810427657949546615635116380141870048293095178860968153718964276324407900121993358299343714704643046297756856277125750533706253089030408412684186682247431734230909041671351930117621505395636886714131376569299714881490228621437755073654708041509493804720893531619596860821789312485214446960948314486700162257650498835311012372300061883816312467721462184350757286005788156905517477135434155030011143857221596862554498337394211592440960402508499854342371251574786354591004231930522847991636191837726290175596055723563749406496216539495478300350989391604345606359883423953361623680138089158411848041917384617249307230095514777458326028690930475976244221657405020248517609480593124867887479669445383585843960805897930847435222627625759706638770894082424551871799939091910042440340712660896059892287142054016208246325639866174404665461071025838769566772841095498238351681245128531776268093746823181286020209095025601893979008644520722028281389907556238792971738052281702974438338380574119035008215184844429391294098757322730195736957887112477415205616949604097802496632394475948108532344125015971770410099619142916428876738539868413810717623663772973880364160669210884972300701469989289016978240240979581109339187758649148258373829777693477546572925735831229728121676302201269446075197210412545855946077590567377826927871903327043914395089071489186269161545566004097975846066809790740091505116498973592532840231368092636809058520658771446921975689719823859392574607833185938447984701314900264951924036456745084645759535714001706599816774130374678338893377202476360117068085229335150349930466204301124578650601951887028284793067681585963368783018128999628180729281417206925691866601478598495374156909135532974180294367580317679568726516314915992400256756036623946288809754945461533129882706380486914402011531281807998669282642398371565787304077452936041702703419445958933134222132543582088296617801387826118624595460065926499355367201182883297763095625313473317259658431962289217071098370791503832339492828718324758751453234601845453275705432941437925791030038343300570739153028611046487081154497686451749605927442539689536969218114609243051796117351013012662214790377926648618889686526780753286457079229494684049832973652699171613006541659728860528347316737722412619009501789612294194568005874980524718486779996161880645519442455456319361684840334447102885762003490115447385806123163399352477683840892486799889357085508340878718562366659516066206349569342376007395180071369466541416885023836486973193631360719047191065030782249616475696881325710249618283271128408350167318613979379258238038521925958450266664419435547916974322915660182752857766388789470753702285072130756418377436977936237258629082435246852437660556339055407952502187589608439235612884746729609474073253817138344901227891421752382093028778782625291065956079329264329342845214743996355305878783101227673324839470470181053920902974010359081328018898173990306208713252268853481684090228610720290415924551109811563462029091565858518043468505067622974742238149630709596895764932991898312839706193284061715856882069199562951760756602522585219813626150992040767323620431720563811895351597939984089211868630671195571084224515536215940997262024699483093564493361799053899586774788641233177519252605182941615532491471487478806124615476383184990696007607901608933480528984923188693591976258953261764136895589664716659231109627483008329156871435418462545183653638064029488506604676977570368796086748156417867868273530944143144532029127518325271727726881388607235524869911452228407118259970888649927699067627076775156114286738433291607837207458217262455844416700240464695668584050206923543900863728466426378213414241645390163571691878637317968365817137570352307141106489999746742760982991575365142871005823169941977576245819303373336810412114420523012349880589507233806916881693354544636244688186254090843388391928124031836523450181184247045862103081303210753062753346632074884529899282997581577815868898741912862985854063748554736384211513104637347139001791725471057999428013520551349847062060268672124134628715022726489802437388224835545726383394793440509771587066314631783054404904678669021280587340629084202961994115042290503734924458978484217648982212317971155867517915112344316194883099908745138712582371340831523732015185235043505091663554993598087646801944907443762235395223400451288883928560386625082221695098052795965794350886358215653757284393670747974397089281837938688141375517470281690199008806677571581428594842392668022637308941716772230959200247676521773446504433505555994781162285423644339644096881473478182586418140627502690177305839214081289589161424826138809866096833763076103027353441346162092522660743866283646165311807592752824527186476584716880795818922644235067806960634481221836960656295192829739491891662124499945361834843940858103067653136325845797809433432495542851432561529726098740691230916202619757378195852745930977200897747412982165413755862671700515628652353645668374565139938972445385757972970639879364975141522756695420135358937111437000036781535199375508641418219280586823917050508867333033988708506492806280148590544778031897371690731995550868239207112667419756211514764326277888590362633713482787482311637686164978466326655381690220350567574477092958264584164605833314845512723762629409452722309076999179258017606002170276114023375583005620511849835225679537137186153886722081061159716247204643790415807983458624563049603820454875642501185991407338147905201925602525585556135608326940623520358049380987998515475497124040694640910995658399590603655502699256432541400074852141798927374046976673354558977700723272625544169055701942756697762151806751823223085962694753586242376443000587313292185556379077805593482405139190922407041790945105590604509038455725644150178373157274427823791570124111293373394981187866200929783626288557791194296672843654599370557895266712228334865101025061714906448279269802550694773574622065584845245528637138961181954074401547230846977845350544680835926122316234883561797158088314938216753514454792766969535663821224014184580351978903979081668993181404374172314347351791014319654727219501799826706111615270901973039438233302765563694544166473206778526813734708994131179483037217229127618624448652065574880501723342551801614042842300758416553021451204770268534775082909379844868038915039296368692968367484446381436934285727962366861725837480760349600059766342400998817320994669858551965885392971009038429723019538099341748796131897642091383555761499513462375546065866581376393541962778747135096529754089840354103040702253882572392855626072790184399260051457021468692607152723698205997908973101225090201217062502959998709586702802981298606945626155009613322298236950175406764871121952925307926383725173157624550947150094484593844296854048123107822087475622229101716691414447904727274982498016286903854939837526335603121240049424157547746508678684062023642111252885704215217708866327253344423655707441775315419390870574020133696851796308341518726437838906730586759789207197482971760023145103186100402874418130266197792551390249701146651656244496284229106412083130651862743013255808987429504681391487876769075233027528475949364099243283519337324847859813443212116373736370556270999187240756788609746468456080380370784040812099002807543964936050185354695955642164313683064000737408601088671869196302145322117341366458809771424199709664607464814719349293495777832903806376282593948361078318227640901986282315729126756647778121385186276244131961997109102113339849958197198768987289916059009887802542649551483216699218160802548903136669769781764564450366491644191359987024810396543758461560444343558937118623314333092718808158803609682029607691220174145520118442409068627720560682330116085520253340861038235556162643085105473477572863230541655320807587276843675645154197076340838438463146774041277241556056989202947753169938706703094437288635152654681728463495171204970185707754915420447114779119204235286748733684217621092791705138914662701350546546823424039971387221510388837503542497088924070095751109987498355429250924606517597844568261861429451862724664673294395584324637363677076189737143929738229970628701764339253854691844364922341026431793763903427409476689231792206076062434611856120019635529473850066797117210234338670429075183064094885762645984805476298930705071647243250940153617665296069412104775495183481775107549632841696473983825490602722597684970583430944336721466333295061494156147766645972255954488666066561084294251852424165836427138559610154903312078321979269427236593721334389912525423334779267097000025972260279101581676047167934591472645291763373354139770301257551347631781268241427946625595472633304851276385882508160295746680616728990823470832709323329548650376989788977993155969114366863201582565707723450129146567970818928278650490739720734931616016798258786792335117440638001851322656018330679787637286294231553005303030538281804025737328554662567007295442111429849965946660104879840840646024147600852503547021086095676221678753420598798983020114171613559814467794764507798847132832202701728497086810260560357107864717567752534882402757041713044790827399375676083378101943109211311207952641963024292662909891361826659731994030092466328546322308080406940348964433262322112347181227525602936836730791023594051346484504638459895813654239638534104660246390797473918399512459393784031528722111559718219843166935005054925204817877705671449815826713274254393217438487000439996457295449914530475342594515899882291326217005053053399140551111949752314304728282937779557044806348104421675297073128928690453633998784270374116544511899811297109743222636111671345713585956178460242138843502939285173596516140492911023240580281114430169452686940102927493644010465142740756683985227343575470506484017370396624462104186869766372431093770712220510256996934458480109182715647349836333755345453349335877348165288723160701251448715578962889988237461243057814931992086193707503895095543813827486949666125984314660739993771893930868995231577119528338244118316533709307052235384919545956257205029483773551005178642283393697096895404843318060634250728955793701910342488355526432611875861585919021701912024349305763065121257078508873267854227984890556810390111392797022371681947363057237382743620168372120032801921645110245780523087114046196306586458447449762405042276980273025689057853406787228813365341700547419671870413505079235449864828782002373096022204598231550760789755727337598132817313677223193529993584455941449990776192262460051082109412599421326547990433863856715722728993851639979473592859556988795617383176374206059219947755237286057885786170190280034279338282919666787941550682032487895397046568131166761061146977774217262135152729479774646518167666984810149306321061184477974893029245354588640249584484100431374894796884185150365152138507466158430988001789274939591608653125447729931714463979989291547413902894547820091520350190849221306624584223754980838582165710182399934965382054466121763482347274608283856942366077291083555901711606150577495765982243623617958388867364150412680206013383051196253523842084029832844326003505120889438728684008032377708774492306454764018471018589580140596951409151300331105967198472972499722324438049290422042079090664270793540374647240540583550513835383232862467398728909466795129581877949144539636577189458712373033532323158602692778054411215518710533920561415284849807637088846575808278669607161784942972044314784442824387815606647889237635036627581061999055045557238988869872708475802868609816711664430757231458526925788509973523119492134176526575279533447782858758926263722480466015476377645401522868598681915648820004930325924236903828755793601295752361070333371646976234908698522327316684572351619350436997863319879486712773787290267639570800740524731397907736375105293832786056890672670242361490493874438773365038368885181625396534113261831386100324363422185299452095924253281687802976274386458807470536150689854538762894753602948109356671068318773572225125108481498700772054705777290984775528867388702739329504441194683863849230159844653568495188218719608014353957024578576514968689523311980591742972074368366800805341225867319424220135929189727313787836885716485137240104093743701552138593995174323324831719067024523081215033765546921494789156000686308013164801082130524480439055439907336973372988849987357380357004169934461776604766064151876142757995468959610902664260751006916081165608529447478877734230082788002220437658173926360479923473729131244099929215258104612734311420477052143772796764574724557986102288965274533787192330299093368116780244462485690730282638573946505303248933265103079414292820958580999797986447983451959343745687667990579255263147869587418837503275590500819763982635204905941360033480723453890830054894017688842738534756185484328521817709070802438932029464466821051642743619269270554491366524620100726155644335895874125093552742226138754113252199172488825325454851908327417858156198001189405671860609850684624414120262873603719673877982910383774159886220709999491042565595665299426878711199529940418271159014959863575135890993791702350104877896440008099966318798769958726440682468289232645293630230827217956379040636952477348279272979972610986210690664591185395963722894105076110964129559277827401195421875291833667463870707607412279306283264901403050193785051006370351799969288235997298440478908884729124970815009533964573088832520209234117478252537745141680496918057925707626365026069473062665977711254030643591166031910918849978670649070516526501912722477359812578503142641421754842315911598405391841746659130645289344823752244203298284152315897535856218133052727775996951243449854848999194575841290849311383990862075828203264839467465600524289140930053310685591872463767676585091390046073711973180216960599128399904511842012610103809210917625845700094670562484554478200314947007269492259480103232691989269014081184209146977669665127237888409604483303798755637122759757180386580035723236318793789015353905070377471208580661971343775825077075359096459217962032335266041877593945420226155818334367787137251926623716035891329920187057215058420332975649858908803237105157915468540981506601716852300753195038360952258736470469427056364838283072285739108758650733670202425114403129020092503992959399407918861781838949813132851498769887533916218123135635743915745374062254539330202468956400758110825799031666672389483321261246030171229605473719871773224055777082781715265449290207321388021979868219377681222444990793240871480117498915695191383760869649880141196886018715211180329112365495841904031951677734174533098951050955613072147928928760767460426683998929265310849964616773635651831644874331125076465248857195227485913566034993833258719172201104747878832568258241093238161505002592796030578512541300679781328044127085460242284366922563012679230961923385097948944724512206991682912120581428305633876990422010907463451136069785597165685812942017761992323502614619076143941494823275394141562397828668970240956094294414249311065239765539868595881575712907845454502151352007152402889776559401923039982704490247614669076477792259893033191429397972594476049783440399140678731739640822673251746814087468903331480190233379150492543372965737510867557746086215747097521608056132706155007559580771258969869836806918804883699036781446309066711785734870291159164764374319930142840648776334251071282307404281267627690752974088727747081062820265546128476169423489223582184841428288345685589052431307934158391270552872240626304792743352963500027854831985278718669810493869008727504434087627687715755616845513020738515153261052999013550064338388323114939065575322155127822487272797085763227578192789249279048864384368913844307187145405149394399958342887891225917106039665090342531708393637779243831868364267215523762038138491887098636361578655301610442528396387739577625386216867885456797960759903840363005065314326024078731739318970455650001131938493005884214806198514952162748600483592926925225543998728630245085288614938664007958752841774182496321243464246728061203709454119618496723995168103415393466261413047116139766918372914511030617136708420112806370160126869745616465746081965055381388133766327337961859559682778852216243530488538851926608712950546128545660721533169385688856126575179618523939741797087016624806825160976310358145143368423750566558798247255670058570737673759368160517811079216210188749217882610347147964260227084170258810983269061764247353579817164054901237388543006650507843278733967176402762072792289090052382226621947602422471926798089579051902667456482862928113734137773519038749034223037395454442074226333809632427095159002676915034214108484401642865027181575009413594096483993647384013756036320938289722781012728408089552911503683684679729667786121335140531295809177626286468385836864452375234581292305172496726652467433716985725201695194704187206938740939782433887838665772658192910623937397852544927749044799636902467172424402652736740595007671071959424030345032875621792683940077127912633932677558208271378906245110117394630571377916431754881752029111932219117338790052319560669896275387457350931913414827409253649116054959618270192284694794911895492836665435624627974723713711640751382856339955195282731070432420814210893285374451527407161602587765772294258405179902002892786405161196979188028042524914281390809440388569488259132806510995458200957261051634660196945604542628960756928660238748123316532703883278568419825230040903270352410607065239500338608483347565314058633405114529874834380062937155290695513270973005931484062137765439039952392163867020864990996125054274802833140893639813248865964581125147201662858947003124246168668175185194025165042385601111555241417246157378674414608163194143726791760445406539651490722193489437221008317880224101954659188917579477726969084634394322523973138226596963405869611341956041154462576054342074187937420925252956896077455171306526347291602172677028016603539880027051314173180060219359758585766540168050905057154666607698833239604780447736376469679058440987338450573082841659930197468990654803298520470465543710642227480730720413765748524587676730751849381074410314698208885192500412215164778613268576395794496439203475381180714957105749504437550211559241675217592329736545239941575377856733554255222348015267763576371700723861165987276435726268561098491888647969113528257663588102540219348658526393745390110562697204564951472228655827725192739552893491323171156189108743084745930385725219981787355415360434857888958511917841811284802598091621125803225037282868136741162753565406529635791598218221739502341144392197636256626543611420776665891585402745076108192090318004525721738831843684342101874006486466926089161838945360367184641950995369248416888971323521805540320937069614060883738796535978786017984629594719335942925193931516051562671769419094913105568992359746769553187663440545522894722866549783895974569977597131435143369616152237572962365925103346183898014015794510847468489404243877112547616815841049324342612034299648826604473631438212512512233051480423363673241662906566636031754740151347239809876806578566600564917173661819884924983321330676024510159032647296268780651657380265216068977553376812585896591559322617661817071024668262093562627488532782012553221227181377925236721735773440125819088362007132639774545582792945789096964796103233782479360383063448902009757726835569620470937469816765003878626356873166997879259886976004533115771610656836367245540538819374909193313933326475098960735390503521409640126465641964266838497761113199070569180266183087867348507940325464016545424442914686547119491921536912518586399626948306655081748125984950674338617057714694706958866754737514671171648664940213623429581452960044658800366664515868873933483344501369586141396162228106358705297641942305943728347026379655016889497635480557529669226875526903245051838803669552734195255847237821053189893882451822556164822894323006467730765771122128391120930151050942381576889060766646278315034887029631890206674863849606857528568084081664408114182256161594384255011172621066980250955905865762224563491498020534190196118121111278978427041074431985535230469796801218005463429378416210383766167922524163423244405176218270207285397464829152432709330097950990278298721271476512031839930318585449489061400068664517783607079269156033838323034882388402387202020966837802439280545338964382865766493353223653997701099504327476791849992766537891232349194992031142741870570360329738466414225647107185104874606425555123006165822318933951172467759810659116817067821952007850480800585882229653797554044404245514186828575319596992356025595612899699956893267180602531515798106184540348320002010307067063731071778037295833870173788590970846908801001069131019706510274330165190709795671306775054712585616547347268542620128847467289378682008227757770995665973331927462540423614369609197638520131552005878876642336257970020524137132471418442668330316000579557828345929089846965009265296302685642546280475580108536539002508743664569538341180435846150106422703060946047051731709687737471016005541449415892603658793527492393416736424053105755891889462697197372674536960170701398657854399857266918266658440282113978066709065831790640144535303644927448446310656019437602020963445234484823264390211607583306296993645323493467277922021672276750352528008965036368353588248941208606596135210826015375413322813456297050327788385758844785455690180624291042921232274131492981755682901245655192708692319741397786740271486214753391470647730929899598536364714218465231203628449876092923866905776967440180967750774911233613796115344209175180729686092943818735301908402266531768840527446817356766742663842081063624160975488409890672856370009969236088623825301431680440489126722237641221681410755770618194991155077973351773469864194989312284709959669421809443906487042864836735920007230714715336850089437188617152615443148479942284335135851690996038377926012917138039922545587303887858683898306797837844931899974725903362727303247906899854829900509620527061170866297444424998761190762470428893312265662141736632836455288963775362985666833987158268644098621712586284272925329926718825621720489786615408622698120412464002849282783662670908719617795783704409743875299089404381080565951865195902231235208903931392444396220666674372989791554296761765533214627661610795414678696923610974944665943110556118966977818666726199276144384684846433767713732914840190159731693080247754499190927517567480499334897877791128282278408782858882201118664103357346983336874607485541484934464225307055231337943528159463589446295925108036440630825385632637022929834434462406157595401154748751590351103918092700256800664642329469937572280803067049197233176797758743843908719680621669499911966340636331407468205054532899333000213868140092187433607732478777485351529351417888624976878625739140409667339541720479376596951988278537474776439904889586556925721662298312736493231695684860702711813530758250798324402628598411276331724732622210751602367328248170301325046529671877753487808912759471496177300974332044029365548129491367952158931724876389846169674426353547612253683167521727081502693204528909657293247531250423627453454980064064759583959455107553906267453455072917293165790793824375411606642935033428576574209120393167192592248528469388212392867642336355512970566611289642868438594798882801528520041383530036374641742964841962988800723485647960248857322036801747146061314559598501028697286810952762710289565812527507377917340612006948026111268364821635013445186877912898627548168444150537453220650622570921806478063463523416959039330879137451622217285528243641210249046632073356975724153076178728212446438916653180323043569470692096277061195423168113840523445566798372654071608400712505550178279149779647630022730320218160602319287960177096737378131265990102767009717462251416895463692783521496704237543856131951373849062990916286384483503749204278734206337633801334855699693788347532583169384440554225235386259650918968817491359837718940252447263035152662218540794229375749268020213579893006146667431895706501486450263672000675173132911899227292393381483419021015419324004124537865443321152803011581319580113234251197115838878759554912092681832503371941255778353069784395630128345109484976662043352283266278424377467199075567455305928522459657432295341981268436959782798255511375850256884228619944119242711027951460230371025130686381713648411957358619786420752109799882674661454385576381190436811282736376990220250551610270985789980912223013526388642437131339469309413126961551477504631865622729595645225800860843646375873190087359746756183216285356048903794364500634746374648452393788643289668043012315649739336951490785114234363199503797501120091364877701958076208910787106212761832935319546189325211400843487177734457980794055084952462983833638202969068588542132921304291619879135173902642338947929271647403506780525485761215650028812549016287005126156498560645024115896811565071150875233378497809175188605173714558678881932835550315758932159140855503734751298307626910653011639213938665201868657496881218011028778230377635695336743845403745190222577869586951616251555796250587031631468581731465115461819306822446345213153288270609249654304610478767335809940141978151087481009667600587604622612470448502896950574389094296549524960387564675974530490186592632461545919103004510253057347757046616657491349736017177886659387272545079516901437205677001449545813107402646670932824096909313184645770417807669587585324732621922089995523397927742006172591970414026908987517384828821827189818769414414361140444471778829264260070979945388136844270724588996209329005992540239519610749505500752033488942354521225809684083003224945902152175685466036646076614397312211633350358561192967033723240842951825801253587574659743812121361433254502915215146715013124198064152216993186101120006578777838918358401823202969172922365049336793485579270264338735457655881461285749927305120364966812754759395807154554751353675025726933111095218330724005067064440887117659685775929101056226834783346197781703557461757727774447116055183398152702066057200479462629908316508395669617353346912818191239068518440177783241164547747542237208836865013672230196271243595386256398958567585655622499894606079783561946137919631870995696270787593281668170519470951363491046592091432856389268631608387602696547980933215567172259257147671858437304442609232024686361446219763154972356398361184413195425210466169136878224127769711032501704074381316525110170152211838586979064361501298142026414088474936556165769778976181232024736654932122518459083797740493808819675743989432606623959456440386259011228322875302741438613611934533461683501181374825066827471873957600657012541695855324762858092017317678716498329255216723243899167390185576585190968360664483276870091241576098627480815123687825155969050933401780964674598046583118016073037562467385185680728101091707147660994248143376975771862976804821553056823327715383798243747787812460750453883192117723354319374328424719091409621778091505432300037945527374016351897828008035032712480733669256493398453492339743060612919413835659453447029865450518980144309956169663018062445349111202072472834541638650524263686162073254200987639018028059777904342746318912325280763186473307741666089853480522003951548101845610323791701725861218241438142761011320605681051474292681829772836441328989705303616381066647547987507629436405087395907370368787976463758173860523781954037012988398793034491858837067824818636954398638659842478657963781883172441037861340011098582943542910483015305307399801783248092522431952079832548695419715721018962058360739410733284362706735437580455472119181516000253809364332674902478194993389658725633505272491492188150344523790243809801146503746910942425413334773706043133731916127833413729426575995794468738825050998914820241964620840491609667979224717937062012185324988481990186581218601737662630291903399822546107863424191554837153139283102138405726085684599827503035294806922587524131714468543548542113737134525922312632998503660548717765072047971567581450243339154347775160939609112312424925699537544016683134977205267345378994070047909792848704222991176059816053453783930949616663416221165818190324511840251198455084709733995420555739123366363435029174463642393592735222308313371497048631915980821702693737681234402105254220667919772509903235235367973239461507356687312557732624451754968683196165375351123786576466230730332831558336018176266174732907129611935771244111116347377249284057543898025106731883340571741846087418288932892985804116821892379846092682062033922438824314261011273905007311175628952022559590594182547232639985535426203695137853013360674423837276707782176941032420762006069196613368210198531410638738763388408212479345155144550284876635408175543605666211747890981795410131553436015426375015271605631027008449993920816318738267400962399802427483553669651001811665688913883697598401370807282882490550568681919001638664784446718193023754081362156642398044108422789673190092971273766754893314172615956776579368700668694184148655052769795966427821628335084188385171035365469510839542124848822346118817379670896224400853002523083396711961919081287408300833193650418297000514378481025576482499072376146595207543729685731628757234438483779765564828351760029330740810132990468756641928121422036706478920897618025484521352286641961770752424052006562783909815899968012821599568107536351015699135014821517865760716719539929312932689687680263422225167525379853563353650147371174903400562715250457076584830731610385591413235155255227223002089408224578489127244491311051425632453123702699610958151453788570140101305496517402337916517864942436328844205063938126108170139080973721974657782140157259405528019088714154548744214417668320223629643513256216053160924261901813515001763922714359202926316348952080487028874224063446367662694874625497612797080399963773552899253933493861099126883141566843212365896139705202603581964494912605338741993480694898709702332549682967052851746759784870657476709065679353186747019505791526251233916875863275364458671199368875278921727535623561822561057699913617301847472530282216455224591732051504291816239653271570406350506781103646255606952216609082700779288139956772918606056881869260561368785600034762822886140294498143756132198699558621559833972017326723305803436966054946111693207506671868853350287727228644241734220977080798513415871400186765760107980981239107773411348736890290410684170650595732874511548188622935514179055810185972393172453827047246597883163612616125026188831950861786846401322177340366716285579194982523662320976081161183237212860604113889089935380997497481263269719397310976841524951222515087341798860861921421149617751900152115239346888799149042758236476985828509735479802696071959789514017397169096337734676575551373419153967232565790610445495929759901011310493960901058015009230602266794385796661965979332394198018299568070376928103598647980582629339821705578963740044053175265948284884911840509147414987066336882781808942674668839129344295148221828137753906365706923951940486454846164812444971697768841663030684725604214740800907458550386229146654150490163985620851677766364193971663382999514314421101952376364402542254749103056486008644014017318898127640946506755998649126448989011194658736993795159814093977467086739648152924922583672556066008340467235785218491549687124974323156241412646484262438479068563844917958999919143355822994744725243281333262144571849070927405303386590000675405248258162823415018129745767783660396751698919907562158587036714741740211603716246988573253617153219389163465964493274200404714007056760854188619843704228175208146916765680341090221861536987544716826466267048960002144987808821371684551409754936329582954609025078969675278169061751410871100871089294845558727632493140701298923464207533792085390214646576714519554413767245846803181206953701714780095800663647706414241963839702739351107155662751637042558735235348921130015685896623592287438883861574042707993278545700393455880206986830285218957720362003854516130457788288356608500158908580625187459877879993290566078464318459941188552282667305035624218552835118475814783806104110475555542854660121747488918474134341058753817335872395704935672364452104950177058166656483356240591043506467011290734387819892794682659044103321052383748258071809694692369065398582018937879733022382420460313625437575932731103835161537934953988234424763847567597567693502952995208505023450645317137214919934440867700657762753242238512531038095034187580383055911553992935102051965837053150039494459343645111685891404144170890073588852662114668202966015972853673671401367881926332405632746591730137223874548054458702822582459901921097654809634927082229980620340552482824834901839250704443295686022178280092051036024182376319058781762117441944130338360988126242885305837594298497664608607140659624645030938610973223405358849279521795313623256517015361278649212189694208438578427673779711802744380104417766946946910455394036128921155993091757565933456944935055685031502897020680419389472751099602637173446078157957035972938855823656566075402261287070736580612236155939637675996962825391353062033126792623774086542028038750178286992835828132044524974181852809141565511132637969592777908605253733221123489897039137684928470086222463552610136083390106817919343476292337933986416294791756004463399611186333179520526306861792354196533502553373564129582973407644959815085602355431195593316031217664139052337137976726853041099688431033971737933556654592229196923125535638304416203927487964105825414913768348982294371632804095647280107917911926443371119581616836480996124895060354324305577303697503872306584442041697678223521392143205824187653851741196374316142885960906573767242011100831355631869668104193009381486657415490671810002838996913275136314395142079800153924362027773836292062406243375415933566289177155916925441744819622702132982417765750124906981003491538668667302836564301568648630371572791830446905568426913400506191881866752970229633858755878191484854962398923716384541576753727139295981835649534051059578895993930819548005507901959956017306097549310255533281337852924511065535812622414756500110317511008311738004136329080146660156738903639032457869013980596009385593708102425147779688572894619817827663594671736000945520066802358937297946585636507250142158685068641384500804568066902157729177496831747635437261823030245720000715746821783069932726339824564361921097560235798151681458123510441240452499683012625628667733747412997860358613552422730482640203696545066971568632122453647674357395793525913842472307221541266508314171751545351685513362527580299795401844914662274558725397549249476965950226816662901100408832086804078922929398658987491535177747859139377953371515986082640687871229580816019537225460883466736818062947736607071972148201658190297884434750149621743631599942978647491915496883162681647831771142737037173884200540594257495667832213098636681074922957367702346961627195281893679198019864986006479066379001291646326618771243108938782790333047365102388711986892715385748684386713431978239989654681652623556299610916192180138087630921937465833610371907447190531023157440653788509929294200410931850351591227918054883122211051702251361556733058750820904271649059813733411101779859051086331739390850196249423506539760199378668419646286993148297797468702140203968696016920131314688608343346854292341170078489026253737549735346048304269766250192461972702516900415685033430793540219294636043212623568886867240651582443970064173377532168459811353624072254937066775696943961178792757626476982789098203744375224010306897299013195090805535598274228873427950093680222521196048721400202737939872355764936223696200237555618635640200097672190347462405472067090012864950418979016200890453300930080437081718827416784446217175473010118353136871894156964399879251743822659642414845181313562226714004859021855619260993744204031339852263574898533348199136418970379610366645873044013471923791223915349280116437841534622498807896096283920895234141008296522722196795215518004998686602339676306382267113828804027104086312838015003671216318420407875116018322551201385646116687200413787109309111852024166127275781153033157757073496902180257662923336510363332806584296895655170407450702879232807645106152812396542474419450203493683932833603770426509434245531106051042836333907855985093340207882705694246496696356126686428861911606584733831305980097523538426180803159858417952696162885802727904616209541508660073821348670416677465662173569866360867058473580952184051017799069975770640727804854442445933249103948193772720207279027711144689669617568898281733259787840206817154617180218455043080419223102105277168537945470968726400868662717468179624001688196087356117220536765136023628636227373880359785389165970975310859443319302298353767422254828961861058626988178252303953502757223254841563624486478846734847792226156403215898273193368306648951337059669049471297217463585244587589695193002157322240709009853057578532000871542577912191013837007642780112141465569773989823797157121583387249283218946577025812036342942649181215999919889024626588845031753888199633821335412422499168809549780090978987565567081282202272393489715612145287877380526974004892808660414131095107642442904325009044631115740331738282784001401328484508420641735157459789289940291857291344233379909664841395127634283065185122538511416489258744434372753871801199801425382220885454870271118533072025141304452319134652740954255586375832816453604868306350827812556808013765973493151992374855297263479598743831166469218289207533198733292383255332819738266115964642546319541867178790835901432478502651394614786944256597485379854519356931968963378603791288369230652932799736838933560451835766148778919507397357438256922678430342566168077783461521801722502663504016016918344356131859524225429322002803133701743237351297934294114136197205902991815360587902789744833945476317859493798860541475972006424371810056423625245436829300671097124574092956436258324232853511206896805377456942351560305652802768204465891343124230921150669136614274634547286075980322920274602422622822448319599338900261050495119835398686218848363518216320742064331988768333450033239509435833208716439871658567647467965239682723582242451103724075058662770658450107085485589551397693362917220871443164801116375508704651910288855285244150259567717309055004019199102591495713927259199164069941635216834679093792052294852857410009041289570240564437704913194061030755814626431966646994175614894997240660233313815688284102029046359696899777778715971977352837834142587872146443243509324121904254271826996634162223659985482578791569165926299903269958322755072819660024423688366616091157181031461731947751162936274941265379352437406834412829872460908818020602326863909650933504718686944683921149807025180812354622975726720170348087552520836293884170888855056840071945157777063632246691145783050324077435022846047265697805559407804918432730785447713834233123558245911469363300155238224655305908672203296610694839162147539340940034391869149356701364662517187749322011907790737268023420243993123571290084144185302685463998453558111371480240010468197077855590989695045469286513562953339609152026491536720414750662799517167882576399862417363479921491747021472162878751818867742577234111144357686024813375200922445412296259780212915997983420778435711106502709326355674282299832292105568156135006465473417798128552352410505308461698334492303192467421082371007237502403351850822484555343175914195248858583113037905093156857637729130534895933505916648565990591655948474955131982499855989750070382507151140245585489026421181399919179705006097496526258052320929134934836865102960800107524652701110660830062120154737459455198810536295789694166445261339398658684144502097967983791607442009461095574421059463486921308119829775416695731983958563661943185203365601815582977080939720277550225948386100992513799997304108094422064051935965611339374269069911056596689302741422233842089843562590594294310667407557864427674460935392651286536633196221558588470774390269887435868689865805035839336362091195637295843114310760881974733047997623882722784468694470012207293436594953674834950356768022006051154406275262901495520006571990992358175449729339558456415254172080950265151648448577275482666255944911512710691415616472224845410235433722895595768765285883930721310017970593289140553027335012262041984899958905908479616423695794417499644416717345842901813134109083378118215221068025950780565687998965439915413350809002748640501462626977122653049061902103565774689824635972655059202063933284407429830588295931113904223106869652673143321357590874730693247110388007485743399513487236145188799419803667773722852014672375310723500334626417553599823576434906833008118739907009075998409264813114961121850891282999509567891800864251241085431697425211263016767582336599664283227906654515918793169388070908663817597010756045656307009972576169510959679448525695483612442864032428306189679585953428175937822254110650678596074576555992007040757356017074366660488385323535869282631234386375154152395489993333538024260738015652155758270566307988677806703324044732618976197626799188771643693195391229029869087699596632299467679255533892071346326797368293371413734343699667371396622347048186346202099856102487549113785771821654636985646390492495544520842067641781059254683121338617492992916418800251839016347772629434196686862377260536843169870713194427502287000432897752530329366180440474906947227317928423686328166900201513745496909796679408083674570837284671220541545273636784734906582084834582435703816990002435501980825935644764867805572850103580683713304595728577805444051410063795636478783393236160391557239476934594918104288551269976155214009192385826194511554608710311061651855433635871576548633214239696634169755570051069473565944499457964096687229651157729736417606908364206940290772271463000161189442076236662823151018031264671303535694309404798150035226963946317390440051828138259584760206228858612085696412751700737054937596404787052542036149781340073284099971319599377280027679622855325811793906497262540242924144468668600898171114913983497667311550973583459289287771733360582808505530570239798657252106187018875130822126185448914446424808592081234680433033919387004916780554310367602892534577619971215126582092919722515079137049492232279875906144612088351764551495703617047436767531261130491380190929475628427199078041306031792516896323982944714341006231307813152016976186075528657062480494193507963042351546464621054484494403445914443132706483695927770217610270700834523050876777764644336991325368548334178182043342824909650758222935932403634478877416852818269328336480387002760924292599667099520982911984227416743841348723224910118052686045000055964537773310606455371988423221017766386547679246228450841826126581211087882922040739486031487526130954820989555626487145599587389338097355291796489774741123501150955326503614022391095366958500172215155810262567357956689364195267657978688912080255938813783639696899730783602155324879341044338736078309640677914805690496422629346896866778451369526600081563569911899781520830431603940799655563442160341656942999529227988888716629162248762943990960220358635280041225459898314413128941286204952943536318381003953987326376956950493422960272142413121418542652263146135033231314880536751373668132398839706633359105873013252127228026572064024472051278587061272082366020311192533623433787402119547700075874629638143786517121866443767885419249189929284346648027013211181053937948281650184705235358548312807121647937545102603744220726443643790490707890426597358926259689636553773119239730606778273666176163688617286354396094415123242441425981791745273251377536678506728493075315103832007437677885060338943136718244105324024627817247439989571674366237165954281080109787275178289019838847991836077584670477592399817812830415197411871793545623354099953420578178414581296078561361537648246279455687038656140085875835526043028267572336540946857006219860997787754692615145300497470750091988939783899110348270077944898713753188131763438158123982280678220083097150708293586798851965002132053774677272575175666053381965610083890227372077576290321897043525427856869245748730607319453229610377839973841131636051069281102696272377342836472201046798210388514672908402987511361986591512310049257008342553457540541416623186479277963098152250134817927376642235127722849775801165537689880619673884243332233564606849254488846804630174662300879097754097535667888993531592556336760813257685792987821923459344656741602567958966886906044876992051615611587924451216504841203563071416394909006410802831729981806630896593095532544021356290494231461823712527094525534543792084083957363921973920713761932788486867228877450524621682120815748813768151917799045053118528939493119660810114710905021877104019049434228511288001066378115510155003727909986262708700919838135085222693719429662652084416033309833716233028472870815739344992943915173565984219549035652335078433548000093967381490007475179667839145822277986356863031726288496135268405476369297957669964031669519190456090363538338748384756236314746785406415705882055399224487263030867738562912196339480503197805034469574198235826267123551853320375840715069187588156570556821783844272669745964331554157334323297670757370334556604880027260213157855684587977306866233870526684559300725897114616701969168971501584240279770949948111342593969946121606022177926919396933419361304427581302868454010654517929544985491083666898008452420607954104448711862061601461342946448333961176471191362281404123383994177627436424903413972174401907179816108896479901151062013873936132554304306847142351194956429117876493927369145786160896198701122362754717074721367146524218455998457222304654008630749960177817785416723654290233232537125486963597456987575892004685435120236869969966709266274452919198475706439622006176086478622044576934219548024369354590873233081363373208498726428571044060891710747601853984532413966622879284893513061255562842673570595019589620782339620496897196040006609436757372032427125828384339270854366919878720568687471221883119540290132466708041170811238994707779433516668585873464704646362020489223771259495328051444652323383681718995465567139231795191402829437889481665814974270211710400537495724472598808106740451908898870263405807140639115593709528730971103041225789880379364361703598043525953058426823092643176392747095291094506306500767538472185399928211162449014017891841701164333901760564691740522288658250093356421348445036353388265281756045679853289184377115701220777511029238642091139281049597173312306719358678477697628954944363582300446604968348429574126804341429464246170759215869096067224136830937838262325156798293669956218325235269673178512972636212833330282558113732763777694427252279306261436429601153727573292597462922094881629175484906577318544775093867586989537463376650355972094157842991937139733866607804642367187268153526212117127042143496108532949194944004751915972840462170649827406343630535901981843828477614004893888501524769212663186347581492465573598822737427206322215004909523186579845536692655441197687155064880934242012312917128141482190770822345642975191523021966206313808905509145150573620756800814129395020775211462565281120947507329335476871220400623662585509852734095943016088367469892374405780392951724611499277486263189449711998825794657658533161478679449663901968498060004367514773577421880520170705208651522587394633741065423273103709264123665570665282230229400367050122494743251264774426391337559522713698756900718680579071888842294419172307793038712652398423909055445146600383844951453310919585581596482342005104359372049799436237743925944563540984777660923751788924746328488638025379457733630415624426431982278043738803382076830860826017206165220642466811713313899107659330929354445732434967488186085386263678381944631992100556097652827532769636028586410339307913141576050304702881516470148648017664273539119875342291424706177693274434253191901367752413192111063424242536517013554545997635091734105560737967889688046603686604552421364365471706602606464536020025910273769320934905871770582457963101998400481255137179116268061756147182343411779438718606324831773630058061443703846176258862480042603513418920186680945427465829528451356762697637795003310400458203765300308759782672831941350186289621530785894417257652671048262929924280323363947937334682777411228484863200686299163173462981347476963960151335643893522155839744739288904673724540862475499387925099970520712591745756205439624253882645159049642876316008061512958826965212968979360279710949350323392736687566245601310090734668975008389078428331176491483792767999882703964471015304412946539164821076626292222202600299454793369371222371027334529643395576742723214688437689257814915539802546494995184774798240404864589178962878147237762859247904366351055146510062957031639860248159882686858522792870884830065086643759897024312917414958884489940913025950184079545560979783273135609150749932745507831895343555742275960937395945259461211597382183953535100715607690776958002062372820178563255299188226253194460847205092279219205533040057864301711732717101320139447933183022518858299237225393359670918554490818416577734087359295221477661076081035012981245052589436640832625137262188436726798043351867034487019777794504562742413877209209896990318396662651544263491734739528046631264830411667934494436279812281920739375492877352615122190453628802661685363503783501025889072938520904006431887897478083083783986844792208722107815450059013546043601361961259330655555257532646867423126470709444810427498615131334796148556696749023361567607335053376468446642687143264742446082039234067203892686448157394003746634276742766438239425981513829978434972493726059730669533446062178972730145206896194028394429757677906537710225792801179838182829654554766289660500025364083143199571335763541701871290391938247970504267762487231266579159900677523288940530608676062571784658090954764188012582262645925975799946488772579245033076523358201994234437355892771133658814445414255477444757867270332800181951945928879540440873366585243210473456612216150521518629449234314982678724130181216839782677536643215325608538214470281059364646166054561163429514303935938159028528076400615739520191241909202185744377644114746624739460872330338819459521327959537828585053433099524769306869790384267848252774138725290929691816168103459601143704613280025995978886271890883331100003202306293771732247965627020184726053516406521236465112902498974892565520543998634122564562944610302747544669633314247656117528381855585709582152866837111283933100428825710160652838591623126395394289670891387758726868618908277285864036557963421239836679005214400624456117113917134582419427124383585768068039141417431158827560930405523802696865735568419602428416345272770967467409501844643266135725849348729042246324303184421442019301472402524780296772047682489656550280836299258404473002552705625263049225662906699082836954856781700431765279022087661794354740332004520328771267273016346276508716630753115591006362238914293386102318362020343062888678826250886663317241421747438532541748132532072629782976228551546206692882829023616220978151687021970429877103301383250539781444896733312066924168823550587987923016669982817786134340211102684888844957883714357259133037669165862507633557834610121890787531464991704466697450614189170067796334854974783143874124228294565783254348083394885911759895956809881041748830179498687212632348424566845373698453671481664117579465540621445168802005459637422829788123287765195360038703809353876273518398954526125209733717012509541149588013431916155090652682427180938140371115728145048046835043460595326654369419785750796522407109949519627914788011315742517619445543837469214684460879570280188339473431938122099929653117215032136612157544285421548841030006321712072234660791368297862476790108413598870767024582988301873506668159537839596049288542701410694465072519480980155829902257586883512779891029039185476635406252869411280697507348717176863985230864935511489418290749592893605975997199519909353349500957558367391761095150988550898759602061010288255899197916298633828174125446574534207867017379909020328543373729381496309144237746143861279003311938883538605533993225678638665800079390536193206985721214494285300444576260286017212947284558401813525315489444513776586383405296064339141355023360779997348217729690508843801713771281422754297342863059765051772830873344851785999683020161605675643634481458283262510393056723399688557461168215742835305199018547579442546272700290775416654109412220219074444571162118140824696588320501384445298587298737717489243264280413130287491688677377742023830950073355692310096405394593790956676459527175921460475640953953702449666890936658680439589271644751917406044125197270877192841346208523024772277759479010582257384630722395277836812981041830977748127239792300031771126181283300115354808579571679206961868727334600733576069964227634222446262586080806625146961486108948459081662512040517323518107508954221188254132559698112350371225329462047232737792723169388019093143712417829698177562119144509074847493192687785698761193734681887667524695803545436208963919960463338179852320649164403987156375260609735287452211365286095456444327905356095141594773742877373852304803371938263437599848005699347128848736123250636302798237624381160365981646650820577264466138094891018341146095105261124991044755889816105727325084462490664497944093664448183013648404683112531796132825265331746584854826666207796004482028379307520360561217030299732181576173053328438771016763985505108312329860631175881800537012320204506952328068657353746114174668073208347410280905704789569964850358995867026575511452788290844787978959720849267366384122686589357875776151314409109104724068741819920283840971376789303087176916768187131423175932475173720147963690830221707108526110652168067497644778491904055411576985367962890924313244930059879781796421228184301394429937526665897699925702874889547148234543059051025543648470573133091784714852051465129558163603261692443145182723467241473222199821602278213315175632918350934819963489816946533484682341605663461160400884380636543074925343174872540582774448481855173843205638753162888946389872495841375922121663788983155590899527105057113523616728211415885635827192673249787087854741763611589981984613146389618395805125228922771687890660032326185612902159163388575330500123658178438190303741561420191350867860372573898368035995729180163027313139573043614944137011205187319752128954423698416601839123488759849137606295518589925896256498493939983842083077607770371192734693145173074765677908499547536215364066798374542526122367630419716733418636859542725728003300552208495616417016911714612085125963541857504940664190803220471525312721770901512492188519747637126061483667272945793817013084859139417738855239093401163040489600944661828261204994877454546093632269380820043362977978152209528707143019320407652617976597742910922808705690235622381019525778991680742609253404182999539175731836006767958267857882736866237690934213604044341684977760861134451551419707971072322692506245980830637781568645290633109725061860808414178348279364625738738586220541835553537581579476309448052555153158658793622060361098844147725134095895098303033431826056638565470320171228775186558208508439130598538673511921181276928548769607294209776954305993507921810467987618055737900595627892299758957217970001658707452113651884315293994064502313805431362585167772699271537221575224823299743522982993629881229753416352777036134545935222261951256110967039324976992993546228748268856103965543172129799745233334987056353298814746221712956701152836637182319052553827564305187047412625895025131965431870738716123525597136018737592992213228755685715754246343311726307485004686556114448899887128416888835407210531370909877243802657886682534601798811627787204599464684795597416732060228375540663326754167678421549823154888135981396514625482082397400246325060632155494509761603657849083662967240543449619254008305336487678064459384608464418039302491723543443464205968101723311744884470052913757203687190868702209072896446897427332440673133779526626182012873036331629741513213726010893673111279665764389240789152173303363530451294115094867388983196731371925178372193738990437499161841591016415169315203250332388085422053217953235873067967584304922712614107403519286559429936386569140485560076287147630453959002999301276531575323584647305752168489326461011011408061554415752507336130335474364734171287326485297471382566677926713997980164201233151126086080253684267482028207513793129933146634601158688497370137415443344031358279734521359082735004886592156343033244453006268357534113387311059670115145535863110748568929675830447869666735641475305869282153051517608014717660468562165570458040140867121810959452959814181348586023420472210215426946406305548892427783561413147422064800390269269986394036514244298562201009682025577661948545473092600032049033525014255322999312413200570210216046231812982166186218504279729707208821398917005514866091148577539632035712470104187137548063811386650978418232568708763974547193925293367255293311085356627741922011162808286388635347398096548643308170507251784639684348626874982840643225555745461290842340122914408325260449410811142432435488965444028236719207469227444501518013788578220293233020303877297360715010857708067270776519755116618766329439908654908827536125027416488565462300570835719750420524587882331227417606462349241698024253387697355020573229665698912237746988955405099888551603517871029863288337614544369429319162180154989480611027324906009229874880495427326811403384010358282141557269125706016812380413728726606518005041793680440058170450132855267322258048410221519564715759996408560107729695194808948412427552370413580403150122770425082521634138255636866920097866483887797521846621725506133727402516404430046644903706352037204246617251014174988210108781356844886776130792049768325806626244633446739762710260363868730143112241535613637899510801039468494903877637117037973202598217540593497347576280199901621676173419753707861240447322136204696634990021064262138493332679303551460129026501722361021487679289140646281045087521759688657042959330554345358072615423912350929284933133364303476537154297155338006661254258529331807970298040629705600822009766747237460613390109025424241106924826300727368632594469235622514576913265965726782059785153957901338152384381022005155470803637736286743925702758225964735455215408187060784892330410736283715034029968384369879449367829251871441449939011628691584296295291916878634478974088903176722776108097399680766913347290331759782824178881248404750900027691261492432401266714316567637699522657044690556678876574154332881080675889325590532987797154684972787282461118706030454779991836310017331692238384848010695749387641868729584767179694613463569094654113143268793471006232332984244964816932565696503912787323151105796271240000173178067034736339310406416491113378963320039887335398115539116918300878893300847148731447098343625974847437084079263029825261524221818811082395504120568036519444403705295122307774518020661897328659280834697921702987080000619668936122372036881314536116084969240099419239666436760737071786507210767325575601696429172985192198972602985140348118895455675240795748052550901626021679377191341225915170183684644282775254966986438730691191123064403211452938480843514760464989928161640343564023920408404176366058305727750942868563592863222241094051332247007469891842233339861320941533033990017496688302992719480150385590092217674136321687907830944949990738931708396200570331631636256109853992327253259681575825690230687479064366899336650555964867002849035078712306785276322856030409625556936679233922876115008492058901794442629966195255533419830627659439922667308732062350341340570325674500742134430973609440848807978707107112242712276178763561761259354117897717395264493968746435574554437134436647611003083463547157791959979330685428589695964376846816750632357398231885644882094186816385908990903656225690288490285622146467214802678066530439651238379801076056415661166702795988016856261170511039214812520528914444409463030751256850951318304555276734329732435107046020010157930331406465710224706240316616988756395436559647769851960382088788994035281135529808856577429490029620006101751309117392773959511587952423704680827881590080837507227939660412151410158621610222383355995696442855851963937324089920433024634387360687104307609446577681825368852177151693135467214920854923867689482085288849557923655096673868447888561580496756080548095556664579322844209808116259963289770831225310003325016922567123500312492938409557062726563261591175464838970639958435128609087939904759433070996057611064205768916029377496424519010655950875437081013296368255205587947047325631366375114802528276488603485337678531820928674251222922547595049371362475527987937511940247516805368720145367666611996151972707887325921933598328404061301718831734381978458156551850649139551984130415618756284964831523289755379412593862863917562914084827361007266419241416679308577870488336347210001845673124862829304274834634011228945783246029267028288517700810699013547822027972650097831859289205832802738061675230361538393938511988358391025863068439041414956880847620184631842832512434545884391861320724650928389144581705029076701601644450689344514812516704714636942807479510555227822825113049254999391733269438095815901627078490070379778222157561488226470397286310818252096155481526300033786635574915362726874921991937165560876203462276033872598428153113313757992715334369608655784104081447774532610968973505178641051658794867197805276141611180906595508411689331963409524126291387921136959510204165464600428074061566132900228429452882786818013639824437191840740081518830988701063429887526327620305861751191141984931354899974667973856694950678219909358068855437701242949956053142447868259590763706723575356899475834551842189010765682153775115892395088802570371278498840311479312566197286494576736499416313859607249358338446376268719526784327076635267411686702065040192407945501577929804202635301895996130944213431136562782595772978309058088462185518109574523708509826999947085662055559333953637082722436022262594746264189826070806406648139399428444683993695944065200117204505593618153914153038121251257060307717001983619778632681759443226973592359973947965608806188672174011549866267823545206642807992320762845457525949797465837922390006430951892433712736794773546731715538582684519290583725257706881208036717517663562412894516888494151491293471381365065962058254229697941493218351249576275139393901150152074617834957244936519454803141898605620381973386539294024509631418006494276712587385111880764144565149075014634883820428069784894280778182042167863925958378000526042188726845102057814317013930468360662079041835773232512155210691295437445715099255073413359613168932959678800435316166585864424437976416036073766562765407461615263311076175564955974144823419782681758423508564472520264972282846558077191330906835909566601879629196246482054090805012703055872681803551331755263026580691938829480474206906831425588659351420317154740329258914615282856821832807376496405637933140163839487893595015263937448748216242916072377882574963017842878775347600364616038981384156926404779125786792714850573845664152800347527170959855056179692110870558605167986232497073605488346540509172851057437600686469885611821892000755513277832790290030616219957677861113251384841211122453346839935467350680382584066479829914981733561362912507685828854678020247131865927345676866017728002806885021268744589315924594691562238182411481201330331428603660086856876412462164443344379640999962867705753870819286929042358000998336321534702559707435869449061582781738510885946784757278686806527903360918005300659927098448899642593563722198104266203599977331288077891459287775692428038707846615031533609963642776202495081958427258852869975086756672811527979957252201156432445083717070006211039485844879620317476519548062213236284281431592827044671341991706797575055187557735997686552336951907622678601854264409191586886055469300324908143042540335184472100087075955565439899818911378479710387283935133896381185862088934933932717274356205134114096157621026661470981814246290492390044714992554025360156891890438416008696521485133821866550025772249827097973359464984577190699474140812028421053273673563991433806599881040882883608698135118530152499084262287220162932395624834596676249822977580505901020632690123650342143081525469159260472606248331012160510659575756290430540450294460925106341633963865922347609520032011115682371530780942002724348284889850466839736371937106558235911752228542899125180745433207815754422174865012509484821800029122478479416303206879725948876429560742774944708183844006908288457848868051588156291515597316954973138016161798839543964844458795825728898285173946969321710612578637032222680035733384967660453530431691685001518929886916707294540550415878021668599749785093571437580974998649561318222831847384115962579361863379694298061186096602341651666224743656173243357555418535622140841958702470010243634383849429230126467601084834523690324812387530894236305171616615665724629799250287537358735085590642698292093975909823131529976028904712807755668947053294713101259206397501174302587120813658100737799576559884262549882180786307648791016992874686687308331063623297318476040436820757837819254082268727565558608598593127855933040996090944360640805413630796265656753066258226116745489066395485323517651187844176278723837612081569670159865387856979283645119908203731982221041187282612881626148419779166898223097317992335346030971911884148571924488637194280219591163832700339651181590989105274712280750572047467309727604145991829475002350007991717212416598841309414236817619530859277180401182524128010626115726713111210059935389147280396958243143576678996604745998800422810697517773835988173341953672343401605934015589493369923381601420650180483903230581375573181302376729824807776487862317555519541917002424762005788116682516843203611267883410813161989225004827913494383206142213920887126277072023897457967172422741243559476343981983461458518154388938217822336787533272642146992323117706928728774111109894607783945830132414497353241161765340438370304918609716101491553654420604846890581163220336767971759507273618677946361942399216234617399133399496300031605169142803265866599137252810579710975547350439824275890650654604573834336716786017795765332028810232168092076623142680251075313561372011275213339195650722301374230367322483654505500268823109587137994908747021652577596374732485965966008710213781703956647282651434019458500344574463707548534442365209100525094386056093809916341843946804789406429088522178925965616402325189337029533063625367161185236083812909112360152102900756688837277373172943911029399075771541112691720691631596979591413617864067169144086200130452875857772841573538260882255629188723577036116501414182461816215079631422239574818203151289843484389299105985896444524621983468356721680812782012773058516787150044457152344167744297776361730830464320902315088500495430732694557130338173679410154550689656517931819066036541806111086219550507889168630891342217047186753313084373984002740778115441242857960067742630399746771478839859512704477755404470209202416228354906293143486725327344302289454923807347357209065375877395012798876882416450142205675606103542584324321032030484800742274838878543575239136432077919781960758902976776885731888049724991707066970838890128572113937756007573229168114683953434006936529509854193773528941048489518939795274493097739378823051483357101689696769248230879992752887128762224791283188881387228068054598086603242632982481500219325050709138315453542795339615554486857380616626583385217907765867767440611063818240053401240615139904870139813487263159254857071838973160023195155769362923555029666796141739438068649213391773891133797100800491269657516087993697241532553389030613421826548021808931576285800097289132036755770684100602542265741405880854034503553114863530834973032843972668254856706187274925917781965420809071494986385433278699022479704434125223178400103336283030258116749554363504190141922453703518202360220404648345106790394471980871476147592385964175319815261630981162589645336797099829482725395571842596079454483030708062512320901568198337320432026486513009045286986982553554160315711730750106972754815768568365289889951159070044091330213746785305857556682509933905653582326272889840070977200340081702697323349059822614488597005668777820760270542831461607059450601378153503962694691677484171126092231108602088785144314584868626990221025600699238686944989083197119447962198090085022555194346258305992537528371567693853255912710793341531363248164338885791584439186617862735786275523878189087609838696102600636989841674159489333676737315711073069049186931516634674485969083731618726248478053548183615884080051048442507692000334239259418657723138825877653999966333879634360712931591314966505998393737904613175516289397646639406716949581408978658254592715817594709792431977805517791503736976184367715209480467690635398999580399807850233620710181262829581586191610814952186718002910917186256538547599504326135031601550834611967475823423577809229587502519045110934527117045292836938624869044126174309843627401162712054570335759882712347802986918320322281900691169637536482431008666372176025041119562637005423011469494367635542954308161056654734381589350045572180987780999321889453522579935684078561428053261060649795644368465303404578879742539264454935984377906425470943920420122554149284477582382762697143712560105190619290439372652259701885717383160523824106967244960425804923086408278226448271712972937274854081249319049001011497822533340729929276139402455501312973475493478198511855227420043388349208095993177432668387242628188039326605912406621292733259641403954343246319993130102306730861543060466618052295671981535959954965256309986891649707573036176908603266269225930010794810243396480132153648149154043150932905365687928999014970292160128747061700252642102562481605818575319590624516691836914890546880067459225050460206316082212889703557845465392383865642308952792742871432507998229532196116797326801784735909555863961640886650009311172048561175938303479389878860185075305867771877943460863447985212181478468318287827226113176150537427372967375988632595573153326959330198262640004122462767146335916735177428994511915307547142231814340102978868615316812489330519418423886678944783243173114143311478586572937977906634828101935389336350678336305437106002611980767495039547401025570850277902080485108034003095857006651257283549155000484892885109980627604904137175630656068263268881195307049465617718278618761464818594782802488170195045243228772950502127704010698146409840835642763118128151329862770829572450226419670526543464973196512987215799086043126201850101624007049015717314054777390372342582305019977223348764313006233574818936669003263288287318481634254671197175727884581794864856145244932834968027489073291926681921566358095001291537669821242331114467054311237348632583161930784187451801059350025409194709549671020387805350275247384909773824144727143079607318058074015053579963133976912006146092039516804368513933912374374259478791672414385515573103307740009074832563326463125995074977757581950230591293223221193681487605872525415126280738341966036342263732699110445386297356354834324886633343262583257431133108533335324510224556448140905993193137348235687065848088907998815453692869561490750220717186555900874160404010988247130899403386761596247439788945683286883371259640129264598337835260541989006034120234561940076703755032451829889610944772331942302644466473888034386647277900587986945684542127638841537916510406061942019827490015658470148272566991951088036783949768939199687997613822221704929993223155907052195521487430660051013276748361167705430338964204690988299348795247538514680376561811754611867105281991842125810280818829352966425434604036881973402888839365559353565436369196838714636672688908231284761960714611615289403518182329994530062152313369053159197425513842329536433978441131517369889870514107663308952615445003218484813993429064379357009511124832250288884311046899388287884221088609221544913904217135084938687269219818559269043323955402972769780820664350734099975625068812721483134777947959045722119178601917296981055120920738514052700682089913645630486091304348106541753373873722791880795528944437056774448097897926988369462045192392096773188328142633540460609550298542740222587269638389895553365489053359778041232877557019978928611361155191811075548068517126598085840982043190611916786060064677873457216193150282559322473707532266782273715197347886604569437416920875599558671894281650485243055212655727852966181880426680242840875587639521476391104556100305876604637663637678662289021257772354559189117998792564375242399083530514826067634014767048426287280904410835400980976182913756073336035534529102551972401041725663974118726307523015072862626737835274384266956802641307548653220284716765334195322312652450186742756938994185465494412468474421431150244248863946485013598971501628605823360710883016190704686381512783395462633787069613598559260029251579193273147402956827438905890867259081442744654299511177189526264301976508068583496124335320655206568805807935894344311499089909002664571770967040475406212913595917572754659181791309204972214473925210213027672438070868379336567875547601777717434465924047493702205062148296386347599781154290055358853231227864471182980502773584090115432233782693946906833544537862089511917208720036752964039775781406389709200957590800525252419677037334483192905206359531058329683453812820658187137827124872230832646769877721267764184654844296735514119856605384416341697729380448891861109909043476974520652400561602514458884108471644996191621425283153214546040258986552629493282592933224531650570563855494712525928087805185680282200439372204913658408636245920035997037492229176366695713350254997393632826684538891151211582863321660946152206788045333141238823617987653167188165346388667817653522281210776804030374116955865815305801238069018751474958029065744512745359668845911557877914507712715022342230108391902841932674341298831888275153001186904590430356779922255698212539741460598664409150571728994539547253409119404684649088128799912941849270651136494783411857381201413719472947958557474641203956593173587141268427688332819333645703605121326708702246005937392910547168298204686523502269660145493154359772740468867913234406939913868030936891644741787052898240227590906373992747308707132684059198997135754240325193157295794146109703858654062375389264321717271924889270763336692698160628990520892835095074286152834260133602739947735092464239527823068188793872291308444095502884758743700748852728379541873285076508741362664566190780993779683969634147219237612413822928675911350384518496416339438265008508799801763642147036467201360369411999540941151318147720637554950886691347133158068290959566722432656509828429298510655823620400084922486309435280813608592033777324598390527950691728808579212495043042024594999563114105505228103374249337499073603370503128559640766635383542860771517480199096422255570392052251159047421060859996709699232896123368143951160261710068902640795024891896808188815508262435327551446270802593867907946298029950230225999373844577999499750332410801456363309279019557280073935384513680573898968204409176921420761266368221197242737272536267102487593624567894143627451896081331324707802134012572742571110868296323870559162838552069174250058167114371212378955895457400091922581220104809721645254152012576187524151730509900742117465921402478946566943035835426495297002751257754049814353518805453575737157989626875279167006740154868841833907704946500022126473354126341373711759542149027230930239632784261606486329464483608166443293771946814093516521692497819158714423273164112928235658580227526883707326165957576419439753298769120802468623615782840488762507279967437556247818313959368992659316926917411824798970548398162113923776316515179322465478336235603146327589340934861759986733026337168935340184066083157679182071795554037180986717696764020615134055608253091774428282765318843881707544356218591166002426351575208928932275761838469831743684188478459013030021130386264559104989370585892459547412996286732378854718453408157238343120913427340330763037076558808041302867589370163116057146094288473004290792178879181884696628451188400347311817566460767562105640886098928594257399182517563408718401668623769067885499762900610622430269879646861770549629753030203177974247542471092988049341770903293344209298877946522052530867149238484317344503660474332358043391665876947377047815589191181161381931961794896696283906026022749008789776275378024921354434735088745725991428459170251267814134363653095535565570620850861677457659651072680609616510312000548743770975763986979785739151227357793912163992611248257214860918922285738630675994130619661063679650559229531541182994646838401872442843224401322368843032178974093603343776464156827174864884399880327719667433960207958976694738413815420820135526523841735555883526369591681961673289195091136663825414821404452438459684883905364938062894871678047168462533973409341687950378113298680970270949977857924500434121038087793535736845976825617498465664753588453290902675001748098012118017061421165070967322479652041459768302579231773669218263445150794199789876565686294886923858871321417643431941270704828257482196848980645140550137146750047295046927968991819090633498884248169935754907535621985158916746693172894102742353986730764994339219848161100829071281794357340785223243419751193895823785461147557477429220015109925787466101893436644039422837257833451868294961426386417064127226657272487581649867711750288370282129255283814741293157460610943714445231529284867051550131904295029067465732485987558880776757983233381289793429913009925897375277075174967088827891776993122221945593025212885600446717493927125489082532734999958757993434922325648409918474720634701036684631288365215890460275380115243994203688194954138739589184235884513416866936086418186572852347449153624552328063543471093164513921657205195293446988315848994594054247720916289026251468622225400937731428450319644501356953684704631794689766858210968820031200807765525422700942821277949227892575116768956822296038425653494512014346088778729346126161778325755883086836554576694192628442113241963744519271893811032518194422345133841186436263087331837632365293692381999445047949911085326694588818450546471998645981872780433068099411827882728955160002744855832381900864305353816574019509956246441297664065646514649395923530423736154621030813895676509214161140973995984982317137116062555835562583345390534731284851992557649229104140305593810901027142231073494673232226930776248609336807508107749385095049731474782445017178255861086651819523707791087224448879489565514493866483885227218849983619364650574835898623573567049175097619917458716166537264609767620520047469448102668767543089739680444734333325676645397155490459134673211423851113451565285146631154359069343055531731866102007251439989872866765101258023075672270071026137744464018316575103984413947197797603195872577875523512957390500144542024006777392476292801708474573111407060217544337759243410184109765723740849504074396044772500682302286434396847640726145187251449422751685035905686785937586915769868631674951771987216167947638497002902214604188318690673054862825872968048315124962071639668036006680538644407224508789261848399500318845541337459891847471392159419470818810794636327784313881656422081190059913078277536924472805189715984384424345212889014671037231940993813217641006435571669360732274466749149263117461360895037929849483408511562833615044236663092573928812828283343362773906715702420240840240106935317370878874653230542045312264955067524608347152473083225051016733496271306008024975336129729607464942052280953148404865937879716367751206694895358508012774312343422907815829757058357590999676839473448238229760261340819636783150506883360082423643012626357579636473196368700296501050532900062451583187856918678523322763136608604723357635028216201493531150285234382369196935047563776964649686080244589291903772958789141040004461872459895151877174048483674131169328429391784694010473928962069000813464566949102087815325762611106308877258483801121323590963809808599687607890185739089766805393895475282861084975702363088729988919350772643024425320349234005768738880187252205455087781978809263757029191732410883297587626114572860732098618881964575480833977498644825803117416279129294910055794794624965169162550980150293320132949174684260411665798855638767931643409078758772448122225515211277172079519342979414344229433640185878786808998795742445422496323945962169453957205950757182659849028510941677820965336296828628510573950062247428202686040537797211530817683658294099655005231125352774954097731231413892521793931115063574051831460965275646864648196912843729192834276316226386505489666684097628049310365663180814613926631299779806542707647806601662120003912866118341215964699939127376613777362833395911180606740261162926044361234114169173922333755810030454821098270546343796238430476075316622612323738621170943861487034330406454374011944684429583908976461268584250847399866120599547432252398831905317024045347122075922843788552624688726516369858710787178067307624075443932460456317477209612429084749012291838213679544895843571200297283837052281583947989332362675323482575240438288298888286057736416375881107677799425197459163012192959671069598713667067036775350901596835489860637303338304560498579080883909998954124861240841701465392690733691869302652423217022612943298930555106592112153431684009348138430795418305003468398913616117170049911818839436812242769199815351465860889956927832875816867830798384832603622488940603292635153470954518227016504494919832391122554893696146644967877227341263149704963788013490267396506957925481092388482279792008993790286548204662872287122011060844523762816994831093914339684792544882663695674075423506021146630430301207440960619484338461581017834788308436080922003225487432407344476261388145587650991695503265990733110900505236263122773793756257961266258433771936125480891858224310089693950785566945007680835307905998892716904510285141010694568739973174316235803602532975954181153521283985533275616700548802100182112912494941901132869286576721759531090206731134692243079128483719038490520626226340993112960494431707171697653955008618406559827067010251052122364518047874562794222334534811080076136089627924132386239914371663735451971097537451594151123573922526531315414885093083973764156982450766412506008871345970761049117779206707953148577102252592316655640489170138213271383640364231991317543517144787864721980968869033643313713645715703839114126531844280332675703286624761513545803384186841183434637339668227481300122692704517252584758589842279477240794653802275651681911115963332270353758853347442026735920009181801244056879693263672850127883008936908588312189397227991255155460393351411018544831874509888113209718801700514053852927005599538913474241086712989982351261664555584131067221983996784049025077224999979867573939357550677407337780757158350232621848807374581869720518766113298961719985543689500171792480545449653748021359097456690832844263937699336833896187439136841965175187876532679105616967420511906127690456291882712400506741438545561144661204974782249517697623418684211277495135823614693663964813714269614569762193264130039124569368534589552074761715239894465822510969054817857952992130815308752703570688042651199597368751377660925271882529036091848913644619184423424167934646078005970584055981262980338099874521427588137602357975093687380544864427989306285378948813472720883071916692606690319350948302721880697194298056951799633658775024940351655382676469054439349963994463298647367367203878303643282148467105563005600594020941604955008528873159921726282625780888895066430425879273519632226550536519747969709196330216414274994728888475247003565309050626475240722779729735960847347148219189595253443684763911724901296504450431255588939571675276007537133329926100707357036063538621794011173971144296780605702033564974537034439967090859592016812790221485200846751075183979351729427639073188117607677894297914872628425244876790094658619937783540749837930000540143275457195298865231183593583805610418780813267930240205205504628660501044737072584528632313999810444997095093263987371698316366130166982516654775351334728934050725786383997116283253560476072166844565708924817016627968996443668034284565033186949643485099654613404656110194924683965160885593412039573769285257351894722866139334552140197636078927652550785477606703218088188992147790012029801281197138037916760637826272155621779443359704317183928787892593511337662230645466438303554607379782341051498699090485535932509302420168370311342497571734079103690026382711767366314766409212411702978382205767357804956884186201482647483206733116086777632143901835317790017921169262823958423097473267668999368534019268745556081258552840454169819951069795936324112373929315897203989654169518957935274950104417720979253514706902207399973454397745452190361440705905622472165034414579215458279246762723159718983052067971601449693229019335429175595866573377661410872110161832053368092406747556966614861863748554554298557790972475729159987301219365627505881442891823301257306394642651465445391105637896360920940157567924855695498225589207380929331219302388940162387502249939539983572842659592293494927147319007989517028898380346691779523867414918435488523702990639205384412423978864322504860022179447114937723508438898297158379888016340340995797781679747464261617440010196809747918549148812097448995750021149715213204613149413695072715911790417203722015314782243440250392064547585953269749311886992517102522348857937211097387409813936032582085250727933534431395518021741104794384045373177640445724883307569679947357449411222488682982528807582153801658737873242447220910059575563045744322144156920876397630257714957381328637905124547193662978562754533742976330823371422942864887860270052444426219192344861994197086639142421356006886795135694625404108419890799093247794936529724849212002212803173388387361631513462867958034069254583860078481268348252921004642772632554028425576683420104698214626542998669055418631660805979842564830795149277534889766120838343444269499636907339990887887072627057295942195524166975599904456171047507844696974001321981913793226101154815767884182742861070488859845545662532443881784433971901301955331147130663617923370750626333642383157441281318748204307702986605281041455356942673295662202887648708577504951631774223953579279015233761077339502131461729009083065248121951938576516860567105558302472904872808284674580870557536872661315087657336485237846689151355431376073515745213725962434587827618284192338945791424074025227694571901533583574715834453758882077278605303607437199163241610835044813419013919086934756065035339646670157870866614161389742483563259890024703698097994749442265195240426050120819473531654263106285432755330215817135001684360346665212686455150700309575414730668113680787029014840352968771372011063435921315524735609957037025358705587397977964257788269523419455000482685850564771712530305724140972418553507670028139957197749491985577917005794762441265095037960032230983819986776650388778459093278151162444137754863537216371996109260496640365273863610684579939511805435584089379554697282276520682420358280738043172551593491604543206623608526631002550906813590797667985828824899219430724013528638785309862974727196200507147951589503865119258588264134749142456178576054015225074144180971570380823782344021236753120107190592730216797555284933818978699686770550974386304506004166846117737831081987870523707839339138006767032149746891110299700734856503260750299276243470153518907166523535822960750460162711903170617639806904655263687801937164805315924925203263068850265919869129641726506638372924383193680689676034529933225157264175333224716965509870421623414161459171270144425723907763859017931668353451336513947576669236240068961320438119101565746725705919059846234464086925569532828227522292161671188173696934681241533342274965782646302487878727644893180821420872932968419510907891093672861684100777680786500897473637924455250749525720834274834305799807192558233929219480560035344363408092180349773939770311755101267050260054059871286588670446503769517364390925241406283068831021654256714467333651162106422768570793505551192375313796618888224906489179757388780488699996715339486114988014454254579841263501551542588297585091419388260659487521476648640722576495686999293699547445039110179390556190012709724540846141269398593453344212824465934679666126107976010834582924468019263173730270505427997339201781119190695190052926627659390347771076824119999945060833817538419282318577178720657848476027720820196427798377763852274766858222137961134306548980773892512159209902019338208214377302038798075718211696839328449475747084965616098119771725493867786384482667636069758532882083310074341305383072831871881180272069081833088402577321445960689622389225365366333570632224794281116185118660610093148809506388378959051972580415003374885859096460319845935044587580432298438718807072694157983398582964162599043504925877448107698037991658124148435768787114970545520613150155608611967351852488341455531106291935479543852052125837647256284787393695097943461007864511829717944446091014964037153274343195286011315785190221952472509933887680821004976513641043343093287510074807160059329536846774559419666396941111403079774307306267185985504614665254533886204358787692615953999629277910236395755515967507411740247687750382454844715131970342723694140599217433886552434254454830087681304359021571312140462407972507329614634231469297622740175000811995826274106930746696156886382426363141841278376287168789740074941746396155111045835989287547993182462644629705382739144097253867053066214364581946787612488753353623904934339283301298815176491537454409262937629834162496087364164458279987032329462790400949219310319724756763102891009252295878482772255049336304683921301466766106350747152982544492680894115038802767940114834093803060759667327954829338536363032175444419163624752945896277218832734759354346209617999282507467262518594573968144226877357609567035120387232007981560920331203245837438279871545226845601688140183150562025938310656545296174319506869787777175221617091011213297067610103772515415646144809784670650641015787621466315405449544576530748238043516651324350810815511233715117705015035001942647729912565933671391775461125707052195254612622569623174007545434206135672241089967226171149378997335223816785752378343852916785530903803482682258273091468146369757823382379095420046418437045832467353346585626474821956179571288745286610114318523019447648595556431650609664793825175892644909492586046734608089935397794767194964329857882534848122424380811979974754097568282352942047481816952541878636750948943952520353080583804259720746912536407423727874718481826263880130857232084027222411480419089965716111862966093775920551442112774411772146575346745186333450206291034717053788325581257708194137197719995759893588813236692756734143049260183577845209347750320779240675599305590527288798230334382984166319794026903166378875091068006135861074027871792507449546956827756006024723090386266383314737213995185046830256540667612591513732006953184184728078344965411653515359750288445187209665107505862215012097296242906521998260241129767488431623808278097286786083150476868289950399504045070585874465084283309915194227541153537596639884218380746870841776374284808664494093069073939919145825509983132670001406643622476683696917772394846408179609418875095409773032262007948945254395233755089528951963265426160664244592133877408429989561106119265789195010323165618197814812797104776193006532359702642344100825501302647381005897483587432145718775060057471515792350078329544305985956662994628032745207966221091854872093493443419850175033330372542259823053738757023629149573210089654646616691262073032579245071148842039425895189500643650795589802069014423389061952524836731494438691659059266928671668441872592820370660694104446508304305205615125655368428982922037300597524773149462900519535083547250097604907839163319487510494335708495392135976250788890560928771150541926019843695584414775743350174264325334613283739212426915982500570442152223855115939434726599066641753909040283563938543734107951278608284015672061748036619100344015012173413567906754143664384013734895417844192713582802534831601109353904043587219170091829504479023356028388353639310037203427044019928511931388522956694850382833234511120191408531616133768037279695470580600450088109626477284466020771881284080518920107616558753960062180278460709612243096824815881903341932673960376740349567104105898468188861290976097433073669954107518300078641170263172052969804267154705852151016970898583022099569453938511457976072712261085699893789823118114630751507178362744299381939275222996989282348917491766312310194601323408478997143065973557827532580866617035292421438308730953135685365405193899103505431213413898038142777666318401129038957344162948041800301293895845708310132087020527079920197011533034647950325870442477637185415413487366321092193194682074162763321435375595872234056226673740094014416445919495411106060553291635829221360182077085026737676299033209906467137193127746014796485345624230705526986635746186856135877988821572131774665443480788739649422851646839001376864755640268495566926683965265164543839673989621044361092672206318407247918029028620526371601852396860547156832713137008381904826785882667953120834126856338619176810736121044869268659493010013096789680787768643815939432567885976100119217727044164266036486951447118110980222135374027990268428607248062807834808381147916725104230564509910232557814427010668817143724037783876213609985885039389098892556045547474477463809471615566504563923257329239241731341654660173775642172130739375514889521873095331025165754772344050759555742276358503754146149992215267386574252149598443739569473720257994350794577471811894686753982144331460618430153377944444973747099002886092589983574743410593707895395879294078778866692740443581944820372213939068845073532261899233698068789137034107299765070092702639221585131862065694455328934744318834492320640485220258229230238103131895093794893790598990303428464388252887687016608921317111116497309653230762630695390283075203603147542277918612857486765505237064611693345264325038922139519292830112750069718800557422251310095786390808711936889233475957495030104476398252319724363840131121654653264288238927641909454312456349473297188781002276098977538152983202821251886642039760632114589526964841062005636987790953260563386028916527498611532456633231968152884165930073979288239697063273766020698391761969242935948362011598174624627897213465025269132484639612028002971900108606128882431136376274903493396159384517002723984471329182326246102301678963198387138857256478915072478419228498204463352002293825296423911682925005194026739809626226296448858305532123475832192645395138790573218178881705730854984197612459270318044789850147088646265716350871752241653308831709681522216479490376945037223344770986682927428100789226146053312999890925249278736924352024535002617840737450007116132427024636053204120406491034622643197007425236518525576247235274227808983266314261266722999035731179724536311158554472812252222527598264362828555525153560694181810438323437999285501278726256233072017756594983041789949950343634853697367805724951669220152449165386074861773700264305756673396519536457777432418940109843572964996595821997939042696333530449612454929382728734076396703881914131851339023547364590873107997606233131493528358947400359003681094774980863207860463537424409161978866484294317158226565629472360679527959865680381947700106941305163713686332254452545396078810733692275841719473853687529671551001012045578099072846631346505618086086021394811881710942899192197130814486151393610208930268355397212163419443940182187693418645461578348612751856346278848007507366074715129442007622607281868342442413410950928025956526805983899513232445883988307707966047729146005790972979584911127408190079181535714384270187312072640386636889222765713890264673942233264898435462925013478280081147264531497083944540560731942712754189870211006078242974374277139923716620855842889626300471180394922962926974274203321788867682808921886131000365091008872127055083797429554838512491751792844208489787645696338246051237587780126136932735812027355167820173207076471371131553363015216890325272541052345333030799235441585840357487693965123157210163264895431357935499699752469953877160498678826790469780422514686005945081681033489641015610544925893538914620183479089400608407249702642087172250155341965420554225764615562215059546780760091063956260543389968819550648289908864359767589495333684942909269084406717123478148052497944781566102543904086843068433091009402009516019462532372108765955375052750655149459081402625480164908127769486893727605657929873398415010966511214360763566570252222318787091965553392157297683292917395267422779269641043866161265412645514772445057851732223346131583500522672982744682316661428521797759456152316779540608072882273221853377434733928116653332858396444622856075003830869293802028350093589875113148380253764317336282487786929869185672332200137402900200956299945376638071828996342060215093285937883426238504300635708506556011990624351584644154237104084363494222989718760420750199014598230889859441778692189991915338891574676728847264277263792819666825251189244948483429321506464490271299276771491888370596769748322772702495841012410882664002559228353421859001915451547432954312787211090428105304677351786218115514920421375979164270115155649178825676030599302470163084370473320028024477654856944132405252318731715657016144611860165992765301216647294043534755396947155222050071329092989221768552772421196249494619300169731317654602796793414952195407320592906078775700135767965180471396778448605342679137299060428450313951977412826781756079041384148489309920719188545463406909873457809801187445821346247838284827068052998951639529080705058160083731351289704243850241404820635558553032754128158905270962081349310606735133581205219934339038409854494436146750830348931062871704339094520201289166247647150145579629770040813586275511044717314335814831372547554655956573863556119450509413799264388700931532603311779992721222073203834394387444168787014916111352094729667321142577517132671102687748398160570047192225287225422182644770088265900546019765848953657876781212601081262019600726772733470194122009881920145475866973883447260689976923558299581998275425661357990402535229513496257511235362789077264028968431567121387802905327918334830026878333729659522415949243996701243689419474569817468019361612853423171664129218799362921347354158257628017738443279671723209077089173236700547667719611461590860391837745063524445310186399035722946331663287294439188722596196380073469285256378282878343901833792811893542075114611757569309058196952414647057363001994901580091684732200741720627247637864692382297221757292771290398348013072446668997476023246160123502836610383386222348543479108314154523378327655277886830342462445172511553734104943267887025007064416696462316088200978388290235697290398565889407988679169823753361154408823236353510932880967606323779430492576439745861390268669592592709873726088999070026693947693096407627238227089655487712459247543081550185449023359959988191320764582037404881766408892655667223501078000982400191247703536355504759763445798995054479387599230687798990959195668765907053283809941364387907855114490923440131366155275838241213137293454588028733737488273051597592832640758588414323116697953772020280128391758649039535488858807963966460770433803950597316768512751433963296153035686223861631431434227364099007527163575922911605261131176324976453632396371140431591433566715197173701065406585954949865603541412138415893469029717664649456065363020503332856560201631144222550730404104645231091669190518410955497073194945768490560969771538101208442771058829536194740107086020869781641008325435762480751529694384225898324756414992562418400894202376421274128294370050349969783551125716225360521675123990922320790994952262619944500334759448409986030214198257413474644599904692384979740004453880769503208959173985443040047157315195426579896818684993768285476648153625167298709539429798785300508877327068487605273157708209033636383199732878123060221382843954816803707210980057173438630891114355237399570686218329251945643251392602765224434941722658741081604869338131322416923401816306176458719490503718516306519165082000341368833498615364262517597424306144316031613649316878213829842211826085568936757426720178728407141110572294892719358224425748625128517458178958424453074325096034411646517075519548712078136089825987661720721120449566324448769618648628180180312077010151810346918680656396219409510849769488809724310041977371854395993198571440863650936151417619461848618360773192744013728216952033958950195945144607820160281929345793723481720085083216548267854547947588046280694439616215215877985093417011354964849446734710084099568097902679992590033160750385745563249044521559029649971307659226940032038901375422578951506943428655053113662637313460199534582483107462842771208858335221919405532206681382505673970261987588742207365241157199143034822854255555612655384209745121769309294996372341736323371875616159123171128146910442465285854320781025754955169423311515693840467408110763544943216696403770966142492867099934082968384783234002453375870055038047942005112192433845458733861149606676408904160787879702826834220085942912606048945439445486083607049064442658780250024068583727179421065977489990286445119100223485171837761157686818426684035759376778658931400713964774239820394450212281792706782843953303764735488278735196094313349901905662692756742479946935157001170066061437128766954353807562491566406735638222266591071246865380595399751704206486529072864381955880878799799125229889339226664628675822788729735322706341311026574492837056409980242530226730915683449549030437554000573012856557941490035672020928252887203445284336209709177500102320640171007372231541182578248043222850368221169591301915708728315859160579705067531148482183896447446494079598715290794344569346586884057382760589071808347637967980597161467386570856991095132748970373566770747682764967760637364585752225634791411666814319807062294953572738698638171367675491435571970926033253677015247280904957597583964925680242381608478345421766489527954864606790636629708731784110623127996604161847721617644532873065712616213289517168688608988806536478741492593801068102450117999857585846573061803048786090715442960538021657750819393996305673473714671477824990888685099175635505597869181371444285680661024086368688400009080766766962174527577283513309979542879288128626082892831262511129596550031795231420524104506968832736528352829728229065860252185721802957853118295220442891577511409588015783306258046109546017291876376928782624591104046212184403089098089674701247545551967725034192431648665163834367833157510783037210202496786007519777105950806294317739563412103347883636619155520614527190361562786048283489900813001011190845237650276036047582450006414006623891897317230053085880287203208548278554196792571447007083366847255247103876555481820572827327674282857806594153951300358291387579588029104678352939325524669151597648864904725442429823766654563963738813254089953955712154645374655048872309491248418437767920229073761082756915370098895302757410972529940915706742693762161627292376425503122387584334757145679011178185951399233495473850342219009327508951984666641947776202824898703237513524422929890421848847491108219190134863379885559181579418720595944287774728984411039905521034220397310926763345578832385535418162655755569221409036443141854973768378995277757244450793023219165223052985568006361405552317853884304783935141606102542345403468814818108632652506939150268789089764663575066782964703667805303029670484686540254153566107961921122153436591374108086865142266138451846236182159842902239637916821019361264712446793527959523971852627496621714932060185955603047521492584980053308469642534348236490074796119718187521966433241769984006011063461835903377146569789978598989491606675845181327723374878581673576367247969211486838435555613480818735494788400617663771279632839986390124140093092767371399829052128168892218593859329982488792547967342087994914984771089417136538683290673169725397387814480250906533146817456666141567172616916798330394923794658738421753965091674618259122320077938128054295240506582164154616839599187938746104636861945425025230326810973810405003865796797618228066083111847385638180991270932867299150123468065509762102147544658988001198840958616747660437614074459471135851323282527342062467846903733471684063754480359092043366925832340678318704134948474721785753904071721768758581821450235651507789164648129858936095291338123552082517534874246557236166918065042402581672590937829458415017396754648773309405137726362951096227686588204298082372358377058032129317305752536630281717884628319803890098093547233058184918576945298296896323034117010060797946905643699384620970250220089208113425696655256299624732205754698678581622247229001971009663449287113823982566825519636342941929893629840994712592280324823888833770912980223017080045128766550920823690589490437811896513839680356975493775611798939850416174634631424314530885252771469455724181120850953445018453854220861006358171242807992380260418223964751037983292140935996248478255049271122806120123814422096774184956890645715343538737364725087821361109960369275373828335528636755669289594644544985086942944960706823347475583627344058084489190498181049939811414521980597669146282123420319183453449977620206544619688891788224897503560311293690310723733847139817181199538300312565037827148849709326426886419933706940989908381130046167195840398698682865683958995172448791581294972885914019466783165273307739428810142624497788506725430151583564249061980731337575968498446987294766162539320256131219233133073708287353108012864278969714546010898520116671302321688037139173231581436235837540373182641232027253924283967878195193736574809943039256895387075014904358831015736645417391203919578838113549826113092859849171712526282108676960899578343428016464240496205526670575216398859553873492278083890183192923699761572813575372991301190330021747475505324025045271542133081612898600378515143580243503685242469018461871242491672579197680490943609573296594441644933105690173668477590633924311472042691081577074548785222740565136285960420117016088006382819500422356599316027002381102120593318452934438703748176644886294314980505605979102213028743456212093048366374504293211542203263421036679429210146826264022969443642834892828807603027344934137573514871070788308358243794651141501203430252637229560931652073380658939989490451687915824096508485032829922160173452390874966161452066395282323734626345173375911038228805209291777499642960078820302436279027420880228156777630258214305223408018573308158580082715199770266038482569782988584360378532386669507462285209258776036381447469424554078187643676913529768207952497768981792750369047559010465185277910638250668153191702697543612304677353566029197140021391633227020323203804194410777523410367737871254369812464513223989709594471262995381248801106914853364041366961468563460830043939874875818324887891534941521592526613982767315115105115906850601739949944019495860462759383222452019616812390651049910113487746831819317328585725565078695433263959648560995399189871719345455929348946601539368945544904238169405676851550875591982836239626722429637804630573430717631575900169471206956203773227080020806988769480824367903687062035790814304392004503472880348915748833380984376145123418993195697543247745050635344875620131024363306802891128840457449873551990546075903439453863509621336640413029030626512998584404715809727608123775778178404827332799743436479241704126868586183889546688431176632304041001427490729580962329537405860225737274349983634420993222958006803140862612293221937423735866120533626387302597494392116232333959023292515921399022214690882554329680757882990782858558785276754974759387164305975105053184207365670882287248181514530489281725274377251920826138188762544291288108450784476256402366779152487903323492083635331307282723764803494752178707539647946136245997077561895361367326074356776302337460815171499747515008160580017987229049481227365000741157043228315539487469454265368314187112689936535056767568576967300766857372275929827607048681163935080273064218893064431598652146957086585210844024162372264512344346280678499968796689927606532731375947309425523054759924440832921702000046456972941004402429843204665287765181457930542872064578118004610446852441803288202126103888896430610156960400429316335654165477463753303104866974650872885248464842979147365495219976194609761244328893666359044055173931463452084599888483645899483410646911633828397899342000827077355647466544509223755436180293086911753542562070998453374854310436849431495854860947833739416472642418626419552471006429898080709232144789456385296577579207530145875332657450499711150295549591730900559494820310904117962829390637044353545105877148161563719609121753728668946682705208040843639076473464543559277682658973875765000556695891678601731413417254170813619556556103173943314380921681976553618466643127179270625931848677913801057749826329939090687167028755837630008258010520579613524590529995888531787357676059931802439862436101914764395730694461124398028035810867372987567791313540038747167517033660663177981778980857815505410835963139985725366090038882543042413815431732323277023117238243477673999490709273186796908812549499394307982442913899655748491990027377826422866692573315332825031476890572827548619380412368159733758891455091891191793220778854842955727914372417370800751879599410173209002044550008213574107023330226577304505072643335906845122420267539101891263363158021249364591519513270387473807580358679996389884044333148065000298493728029699262197268849069244099545159056868218984748174361542996579353001539066482826885538910084158825567429666451939779158507084622578297271864547105044986940821722720026094684560902588976396478713264490986848388653614949627279062508817844135733354989211966499053605140594526916199308525269452673375779149264492247346978158175348377843293661654710518525649311397475355377610508296564479707522900658932580384416454911946256041829456011640802624831872850937229813999124911784806930021203987045600684129128515610992182980718969259322083022017740647540217875879528330665238812574079806034897328877187548906782006676762981689453464873563578040891048761697494410264142930598391695624127764825146647898649798958680931278563151649555631959498514221027756476340092803041334014339479200427252422117948256797919061602821368643924833907755810720214911056596972464970683958652952966416267532221443302965880148115723714162496913529870734619294073155659181688727129003664508627766831450203174085137657052604920022417923121804559709797220273959543176509447040179178455337542533724079983171318617494845656716709151913860333121368695383234567846584817852969964793225082907975314493290074358132764579775995480690677345747956398481440350437164068625495457244063846618253405137114832771323080673488212648120292017334634924668107679725706229920922438287477358598119898392696819136738783713112788681689470073350478208328097027410264267882645319016100977949025184504646816475493387171521055880868471756463574615437185754441138634233927690045186140841817594871369977957068094131893517924800134104478646598007041529144876153060875524357528691216893893179567824869186405288614992720602109383857035616512029477115887692743759932543892943282844578193551077960139174190004904734305476160221050069926684607030728516079843478293087905716365262692740797724799934300580008077574972752613685902108678187805767604722432392844984857591900479962566722694871104016875134131463573236787856288142652217182750857876756422375777358989130640327615624146215130204170539335772303553832103033619445620200452622984009521009030885852129844753996131165792089382981532112592702037078853419664695790359816781816324747765465347253737183013646228417611988199111660449771545819299356221908057157918865862597015852371506149444381253409903440939389328747764143882870970875268398411018619226355399961284513752059359138877246571860738741459538309722838960252498404037039588624436251502114536237471831237676896133885834981884311698828198993490336692851814639173391107612989673575004646159188249816635118692738858602386269733169597044162682991960282918734225192409130093218420232821984330069537793132047052802484901202707104192837730409705691030113566205786241120543249395513213760674814100765805130263142118963788712529710569376097731509432003433792128014481643479140639885542339551068427410522255782570499997351792312542099840683520567361055275532491852968141277475479618048447366414923131506577819675686889744100284390260063010414373908410593237853893176709910242942064232383223882936429230328357854651985013050599488797920609724291247016239209135739453235414887947251461053070019363045735692692801177904955289118674439934588026063186382307908993260434040031275449022578830644852585022029106504931971985995697478407553708822053214388490836662938838936581066298016184498171078782659893282345941287303149413394275604643120196798329599358390585799762498162421200137261495427289763224719144431326771243111559366899313214143867317985760034651213197091190096760581161942896289224032855513421082556899907721933043473341864506936384074663141305043515136191725608529770362403541357074770910515470626787339513539787785593124944083551840642894437675528163541906160932472005600570707219768931884736528349275702345523573661231819902237109780837220913400375624845361397065003567300293692766246986919014762310346119356517577552610802756580478436015840065629344550060938177177337349502090642065494698512271261416471585624534752035758140440542339368758649811187014108778146020736250023543452149381447027399714343649267340591526503480472451902145220930782600073945809559507251875116313168629080676942202368272685944967834600664649234005259628376342373642846885942253290782629070688036788383372307993515881864414710691750172916029077730607892477533897249016994015395362549020528471804454506401016614391449624474849995363559365036761306756898451791904387147890378132160091156665834327792084014769695270777346318116707001538940395135316629836482731251516745853116594250424899972450154274379846962968387274662636546750719225134352278742256356019784450148920893883942607810456406337060834987272490489490955536972654623182360971529716767641136576139360495521021045256779329613506996781648264627262365479284344137537984857029993358606446399516725624313679354272022837647238452004105687312142458032498414973030296670647539162304557353234111025821455750706688085035272754905111866010107477439696370269258322736231312158093089647183012322462350145615947996296581786707180584114563781354538722588975531405490277385751402819712811361719740828888370719699379043480251013569968115281076912148322805482405341408569878204862441049102017571302373288117533290371674182955093461805240074325810821391992451269212724945463606547668569226662234591298214180856671683969377134865418281297262680112709732410429062975622519835671372550731987184398025852067360798698863878369516059196791989100355706260521844929052195517156594328321817041584201659206115936061883577336602983329873961411068018659067972441730168195999228269747917846698025154012663938378473160357707228397171657288985679896707167174890031472122383950622655868485164249994155945356329179657293920519506770740191370561284458570257983677238199124299655820749547950192921196326183518126214928385987669795966114106740228550140633329451632045566850811541637020001473079932971047030479193431251385839041929484338589987310347396877998943204983135811194946559457447589859266322322508876126436088246928657536897616667831133229257517472928151692102175476388889415181817401549141454702258927326372169873060151965809527829516049301545776542508608762304543223454384729760129008873689777886159367763694332754983289003892058163115840542025963203456256189915049006337813996962712313485657725520746865887567674999541256762900707867677742066093671447980723893907387016811282067722765729348461612227140350863846436607352301716939990790539395204715489328254340044870877896698192771252490528866632103778410241275026791820715339262753778105007772341537700862795314619116409460951869755221177390509216427932139192409643436922477993178806065576205924578389193198885722893470516503656940792082049533751488442507676747794502304041880341332398941355300215516850732737177170047395092037006627123550561510225206897027976238983470076520175802458307005967975313965628122725913226673580525040394450510463467154342644559531464683607311295699987278848050736107658421471799759522072503592803189084850699261158498809766695389412427935205746152658992787172649480085673825612384123691571002671201551125997901630300308024951246039216713765845937301327443440351977030319888666033753141467745581372968900268825551460942235889247011351688185270462687964086119510278749190696964723354745276431044138223904923672410809008570211725202010536954181389423044650806599673850995060764243587590330542383535387719423369997928265534209652988902033689565573725046413882558014715237373291676283656584525105929619656739436123540127390945041424174384708366151122616486692329359994821002579312331375231079764821801267604166266916957308491501704154399330045778670394769887370238728069066324692372565293926943995301500880448970742397763708838168374687223557691513553917047273407312786757060870959728546785221072984711879658610546980791094971545776249015714489616249707179353893152822900190027364119151774481757801126558358700866446025049240017887850663679956010311640512254710549578626126009645718205962616996189207918284226633773381781747022612086613137005269486583516429170390892954529231190266556505875772666500052871405840090605948869682757970412788480498270650748816595776305567598174523852443978675602149879677135257575335929493672106085681019144703805564038605968667348823358710796510000992838095989564836172898948365176344397855004036164902140220553067263251027900601304513312080318792273557627336354392881335461660282754397111905127300216445490123107915783738178688069277780102690832787059991434555289715536690466843424105129987163554655395978862274970077067851055400776357378517340387661435813119346261864036257867654584963896283443796992300816858050499498262748501834960596736678405003564593229721295577583360078468625751416875367979141898328954773876901367990234572525783131619546838444092871245056733138510962618644141453371469629735721206704281461990842646516704668104385126355403381884034669076173522416313080392099634733717045890113304507024579680084751003453724627329300199910357754335747702962324015444911409326625123573880034634322612336934660594338268021425330926514031552234162476448288574616452313236270857892892869169500893893032622411370185037089922787275472825198721111453975849648796871432318719934882910115988528810495444891323796794196628086312723751954849430941659415532778889929798434566669845952242937314635193860840092232129074750725194382241321753751633482080624172324251272210923133525883361556572602381082576499945180610887217142227503788297512914363501763114504727240484005366038798917505831415929219562017616320282711329712568511432730741186269081205643354619395060034000869806289163388884938457564710259318818023995422982225714296576143679205332229450444419073298921187183931108017898616592663281590279294241421251417024765230196690682800082373714063648479066826418317884498837631307163844601900872726176240451002229769680157405273463232756966618769424578199922560368210512414026024873791643916413074676371983524072309561646435860550254219263808278672776448205821157849357617568001391331630116363516785709186861233822169915979033594143538264355604381030741331115990570332933492211867309935010038716735051235550805462750707757995683565169470384554329259360420048338561545710543156731604758178042137336705899316662774573395826717562534105471962615045579813056486707405043758757603720056255096037529992664110380680235663203013921115479825525883641567379045270200399298563763112429828333796537553047166850914357247296378683713783032375944663212448749916755253759798307068064980405249465052418450999012803037884930255004368782369131970432719558858495096066045752355816164879412350207392437145369066165195644686249297386759717392601758536200104320806730253951411065506936131820937786025766685818106294515042653070143261796629038851005415912424650266361979579174993273691431981108789716791342300455917494188380115567449949474063681981196365218492477856412076744681112081207111543045801224078062268980291263347513413856503559627474400909790839010904975738832862194212228380478223035584869388870200723047974106303348584726872748486650748116586507228413578343271981445455245157568824410118182161403432118116696850726955348201475093978361072877338760155124691621875086993211789606451835932536242031051543259590042123416294215504801883535847003939259272884404104597176749699898301220342917399443402182944132774767351912398361544304077456685014399824931442073611118879201982344959634972740058361633326801842626351947933423500131334382875269420370528950886879943958416652924100855056016642444757101777343341544298965472232551482947115139116130519870147430172164460008848751654063036033312241291527988370311694403156867692803862476555880616534360747383030976808478669363034394784999190493271769159646145612567009331076757565056824037525038862499658735405825854710746574563420835707499245127281490269435758074142193987212127632579650516008025579931296767496382895953685925187260853685281078867857852914511708314509716453850864035401214281626855262721176922622911549114041295941555267436577592235564239970285540206284584632039294632689450456301205288229039816001799186881345716519157496382588360865779971434448075688386735860497699747897239879216542640761051513428058125587829686789610845172166026469570409178279602056601178682885459923303769742913703290334180029518504758677627416748338426783071628658856741284888584780708832417443501716302617711229018270748454932593632512461024130503753740048736998725374489249851442217710499796328363704611785764621986234528283331950942144387284383883997584784262018972322110772252678229699874758922162195943465036495306383474926895160755911245230358083607535830361788877219540962651320728109019626832955439293215135282876967872111095681213676546991565453168206264454645391806730401884998450769766208036736697916695706383510785265890259852066416379338709154715152639094525630668293027821727641797037095895616195233654381338091026790682929667873586768612849048347633021719786803169907840819393378636491806768998594775210971159081391265637920736024775172385110893702100621097462215040106836734459697795776161848986852779818212528511982476449629442441088672301166584359541361626634871676202836307685491986398229783138867908268837658394392004212972254894666694622339287581837326478603420999647693469480390604656338367303127127621181541972981203964705206012713002133356259182835266836047401517237037142781745804034029329233482033257198558513554523222248759883546261473838241050747677593028509141580836334515455355751017578359710123536075818553628726376667331887536618530013645974787627010865859308792410230061992576414696855156628277619086854303069980585156138951661856570911207969547904641701899909427655091908171982659744721098622290837887176229125778114973335307782842818917772386438194487278715320260472295977900001654421226789331431610650777240424150196610067917839480636284935463903794412595312954276576840561212990884592059984275765729867272249951256820388401261076615274454359687169882096195737922478620085119440173759687786756443627418378901186865755515389828688662470813500934916746238813667419078953796137583944502691912934523086877865756138457442157652693285528572176043604387691861553075617439879179028152365786149359424802979937570550688942834064431113344233440624234754421033498380986764362029921148980787186694831761066838089886162088019985018129939489756099268456637944465832908196132993551127470795950128817445928736860390522396162196836913031899871411148526658463372367428389508523961172874528605996034624499865228122243818755085448972986634035927901981795501973257553387934554381724077767319625453127903504691312446978942204019328812106859520937453227540246861256529840024349036738612128300531595479772924538094639340529605557420940550350126961530212922279062047313728984818231623622182683130916241098299545431604215130865073786253992432172177104464068779571681119364406566878720279739833091574273235000640867481657970942135629983139539816717130255523132149127461099941007860533586820988419864601191950504438872316645091486067943883344075513012489989323865747536652108564134930557324548140099983018038364006546132930334170276741525279615027623251489183105963372752652358718403687998127847011323536368725008843933738237283453610239685224515948740191233519410257343129103328708346998032466054534162992232084571275318539918617858158418532498046150758608927967834829229693852335759150778446946455523360062761403351987486905224948315327414426955943911724578639326210834607567197796859026565750446380894701501649531564870454251333198256829483056412704025621247455992087269263066516205656860948092442785162812281303923350975541621190478117974182306909318616303529889930638846319430908576494063408309609650626289950354195142681000478845877570229586032400226241590506433085320587260423383374239934411297785448634435518103292599294077895523066875408879943853117105155575983200024702933477387408567403963954086891433608703219970339958705888296686260100444734292181506643444119026788480573289235529694656562104242933606809873397441823273308656534349623563777251644567457169168477102486875051792080950580792897301060401271522974153358839535896134634761111651986504963913351427200382212766842305994459446143702599598678263358974504751582424532887125284191253547469051611746475342247350222429193022325871107229846148773570849149720931465184867313425095536239821030462762460415593237356380510012628679036762202969339832470953090338305445477736729926489576828345915363594322440906217399965773403334910286018132518262678002007830526178710833971896432980151401461120097449599640886515399866516065447758290060882545265475114553159666577533461884885478113041475635073779540786361812317285899277089185347380825079572568147915236499370415753006673316838380352825383159991871703309609587492353391441127073645848361956799861063470784162819656731708525078456873677520783522556147935948321455094101518046524730824099622627724707795849306736277952620554088411468661325123227593535092422549715839770855516112927993448520264255649824798787611252366593311729721648562509260665723222459466078643232516492418114239154242834341837559658795628668010754066718068989004282787402570670363176381137453829706447847848172455164999766732541492341592386385001736157871261542354818882727334743109822961631537069369769413427256643886790094950435628916127590449317086376431493044402094136946977020264954646516624489273559342015812503311497732575650433441060751316317408717006921489078794006279958284846007475213603288693923280301892456088076526882500934858193067811599354941924185392124064062784553758394417537297106360051159533047825569394693646242023943592066299852422530849859089749852481744132159289000639745070851035892714708969800471469863906639629347664972371012611161301287764801796633389138763702387182276494916923591543527444149415502441048796731079365375319665256871888150585355622293626730123338863855945147308480008896344094499753667576589848162356850925423260071581117683492498552355017536655058894073785880442997447435583614319339985565520607206045482415251578776665811355990788450165749467226094116339493684396087288356537892360756107484400670643235846055869355626900472518018818484005577717117465320490700612640700419396646035836769382296251317323688853302025472838718587669082315473834740119993085391724480700847662465132598821049984762997332275069077799874266953930064956185252482334026420137601730600061226681785276058495575874609796448487992539481775285390877233705964487868921690160328428370563148540937145984713616410481119760827092688749887554266435660881363799762448453489478256258159280614863824296980041213755856653124329860222388564483147326200880932857340832947081123266789395256878639176835085310612070917256111941190500088566595934939445451696992009815316015455121331817203082852777634775553543725553369684118156781250889516439477445596464113776062978461974520786250160500032387815681959003958861739144766257084171056511137820696606103524078345133279247100481931717741642066962558609992170233883876344549529527838020521371411662915494834300155010969889149650881052940039463222010065728746639359887112497913150532242823771295746584520742179261120888830834643114243434589805512032800368697677083689596244187609635674858724801434915245004780910839174323303761451262561719183815508834928194470084602388680475399738717744576463989151791762761532288935503830718252752890756628617190903894077956051263297829368230261806921956280125562568384264308574253535977718498465929437041067316928953770106910182697810120077216946750628854808423453162439387964225262308967225969606265684664437066801702747585468763021316733040386472621880790435909412588361281042215340759817938339253651715452028244550079950300298462434905115280509423747831306569622063842043706069095500735498227846275485542876831565663160654281532113591381492115077279069610330854200481163554373456615264588739364124403776334599913782482617394326684843068326399708497224251907856298533905543381038818347600838080479318971364711931268943535147379696316878760493193424355341812824774185504763352945079583156358310356370120605657451554557467571691899303756454142779292196170550477617552028933133267375946590428372580589440044436037156367565224737946697797043194163175934799638890576440656969560931108466667619324828947372045665384752781571646048196968914521036905894137067222189648258843505991328235093598956113437134113063563865643451313603870983891441878474605602132787207620757326590166235758693155473589844225689134672424454312603158018676000138471801286571883851018733605203243479605443354532889335683970347241672102189157303491153009409804824500973971927949543722445252654560389073692848407950682445157037864464907920496907240792377511296414064954196456252263094634995166395739247685789085165909078897575519587762674758855189363684082848711184327951591725800422575208325717647263127145205175874509958705048109751652045813604947464386747295903541188741402965332829370904190719532980867197481237295683815564931285435160798030770462354994081556925992168747630151556410001477957762549192398285566894881080294433729401369316602159849187966418915043040027251365400637697849876549002948686431755991865171909617546163480579870797752923926768288928629716097371495515635761857507247658131358923948594031109831341364121865660836098977103602477160026373345496470218718060816687797160695252110239862544782564752623225864139453454593706026383323819384417673919515002669127273536626404257345177259974223191590118764196210638967600165540253723313193338022623082022890932611959551853472816034312707859772137402028411700129741614644483043338182276350913713954431281278472300198260532533884358400759606557954833776294507727846837996108024640156881556479273044202133864543107955703101392984878760379572459152006031677993215526677664833123107911776124711919962962015261519415453632307712500657030119601705510839494452974646841588008665220912100949595134687960021552327161703301960967114359769396594921159491585128653249825591653120151204421328373425146716439509541774838195762859704491648130459797321471432579471994062678611682936698620009242128882810540183840616497767328722205052860235153393302186491426253521910020711274527607993003514517936133676663915750331437144014399259966302290088355569090387509115434470929888228393048547760223079930360978628976230304227424998031974454189140554598227738316389901228102664794897557230794568050465631641645719114062082644052330517036766086576737311565570337238425455125831687939574389554947726017857622866372530483427051153413562309367979792777387970903108299051742911552852953146286869423688667019031131173708118525290720943714507850562664705585483770216477965956604883826411095546751818227654232105992391567906976561163421961317568391107134659761385903696723757504848498954111264297035673566043620578217486162440964057481541467232534071759324283268785028172019844386248464869831501443065389071999384079585083032671961714315726224030342684528061724206677919971375605346767405468065075272810068385137711301861058795117036293442114747936577761811977471570395339506713497249545276433238331157397138883427856089015946536544307382306119956206063105395382235973226058892167131212130499950493514864281099947840950788742417449306961458115476659266651202447703959139291305809510010918443627713125200180701982386625394854259538379748414142627611707262779541015288235692172414254776841003415296027267247529189803032700309978721306906406123186880059222178426385987577086070019238514213708449000889536867578966935181340162134639376876026753196252495033024586482744498036732425106745750987794843649306225731986077503089597613570059403692302007049510235057817350641011737650453770435356515176698636253837892918994229161326728248488349087408254953827320409903240345595238036054907181949744828934356221852534456533560765857529499379964866800744016257060031493286701689484296622742538204184742601861363820121620585627975694722761226868873345721451815486879901889047486759503296811323368506553612712331798138101575094143031480749448088133548097061163343179600283188447835315503156363938840230157177382058526373611008186375633918922984091323562465914311959028201901573547653828884226465279823762869847377544467145055354682197614026757187578884401734873115252336352524592492425934580413158633069982059137590776072694729551995862781236019887531720850538732756243843467624550829759047265485922421289415765941049334745149701582143628361226231710471250213673809442504530257933907526693036934193164140863334117159047027979015431348660392059069125424334535827251872024871603247200158536268917770088285461272680837598865360364949294817490374498111010413926380776969550866919655388492523189078415333837345401438777833203382553234706778676301985466413018502118995803307368043337856936911480685175886684528140735039136044783336078283711698364260501810245729892005775566745334076483576471982969277501530727979557245448940565534168723739494767475204412538141372450651101420471349630705297456839516848783564385615087258803565780825060187510945375048459072734551868443602644253741833447971659086337310160933301927010365265887874180509137660197909003575961720803718280615740101464809590216551815544813051748434795001893963487385458833116021844268430116033068587330287381265008536863007121642752888928737358096927293171973923669623084694523856571882360932922216649908615046956716638576493352016398376842835930161355712779338536578335142267994299812261071934368591528740332148269398793708016233069056468167130216298801149522591127219451780546258774830664566656926784472837749756181354142041529736381193862094362270308814299304930351059973013513519825632901954306162544300565438881724224962968926272515305070771931217443419733549828361892525942078826523483528531352824933860463406692458864627953175515102080669896071335429204544584017407267853760224080938758355009559933013355429867221584436645267967653984323586199287237519129597761925213466039413427225902145881890699665348348315585480793856422335233463283954718390227205149438118599580850171417947595028041296767637581864137606349842485143957901036100199214535683664389657104336225444701278632437316204867511786039677597931827789408944219430028489443627809569974209968098374491473357227346990250169086806066508427366977065399647402373193398489838338932541890278268338605718271823151035831237738474559964249694936103419845831152844546558271392700183799759275179493791876715557056318583838740013946108122258045997177007008672101134234541762562909885026122798688322146876313771648426337362161915563094346702974985571466160351355744942653103138178612302154862474880122880430092064811489166871895079741506553230574787214878373246188786259333150982086865611648329961167586568207705588599752108709979826083790954719350910017757366430468445303038490358760323545032709753089890832678484663586247922768564883425082861322289188698945988965073472603501823982135647136379148215154420613040770257117795969344888460964145038597618564742641764480959334895793819431478268550983224933372182535165575369724518254521440343286837324522573330528512155460699431972567349563075208876124767913660669704344595243394555568804072144736443311730087040164474140925336281814644722516067198957331856478949782125017883714900667386679084469657423207624638189301560462080370202794337962332540745447954311839374129435703045106485868326989626482661413620486675071301743116982935767877848453027684340325172822176529961572857970573224149870685429313883549778173976468747435360873438063782959256258008588687494003757280040124851612055846970875734973595904427568758527784265095465354956372554798503220111384805480967608915931019872651657530557001674670443003396733212859098142902270443327984715549661243875363217233527034987602029272512476015709573387912968472040068739331902228866452124086005281096027286380502962781201201680893824675228573021632577046403363434480109376749693192455249579881657914266600354717640835861602761382123669682269603437124341023394344892198228297102672940317101510141236939622852550780400635248573985681082898882917639701161773190804706181589303371518401767204884875317195248254576887416157650024311231071182586399411812302441017256063460657623178179959609521213811565700934364548137338192583333044778587829988692584734484427858208365009926633201219329456156935106072773759713462808813764959070627610798698956489535023697748888243602823171542065307822522901742468910171150147181245236808023025747793309303073085468898677005060855113397288966190323277791240475617291232402947017739366522230462158791486555203498971523073037665516507772054585061044717320021094709188224526570098007199312958891815129867321313072252921215415962516682312459286660622388805624951695906295710380145299260498862071508142219054533167101621813370632350754491066775090798367920975498052098903199722057194666558971827775395565313632385650688501565701224202186738133416273171110606628620395712424276775105938400175878406224764256420584749019320343676343160010276871924811917959668159814374370922780241943132887299167382334879072769436977788248597673405785584826009383123924665337285401453281930075396182017717363265534860220254408888662830035275537170129006081678509725939992141199280406943616838382714557530969669308368484429967519617570466236982009150005257571187537549196390238579674551566562384331821219782005519430842121469268749203710804323059725286707927492079391672967084867646544657458463587922924926630443504632075921810954462395024637315819760621789725607514319529436826251033571299137076491414139946641190001503466698428510235128001976584872402232391700638237141211595198205404312101617642052136207889180899207002880317860469703416076198391959331142302515817685313257848122146459446936218828291996894677269536197729383325889960961977403341215508325555524145280627304497566366090558706036319193189404710931540237554302746647315907529464925625841626170500854832384433838681657994244695887662493273724175074949248561642127280057656319894989339832585627023499056307551567661160056265613126892263966001911383708407265934668767631680379713860468156907501944663196472046832227864894412264547245286420811687248079528212190031979860780699245875579855011593300670899822854211224202514866952488306373403648003225046440778712194250573547567624389566007234112351415772699332209572407711381252575803092752678247396168260058025327627994021183818968872364955069741649774536728806706261391627615637369769978823257708579312271328120045604195825536646720039771511611298832183440273590702512806439457445856355789200756205722515004199209564727687878698367977673421348562298936511581303963274381315071922396760514782483370083768733997262374772875901101933143125039793769304497505072877908246032691271452595596725379819241277086338061364190907207373888678788291546155890959045668409745830388326092306498435271676434110846702922247261944200861692361942159836034784622478972024814542032408298796938751560377485056928865707104718164767108480995357825019849554499077048316954495476137013438052414024432915330595717500282768676385034486606189239329170553383184849557569811429813909392914237736370761609652083128752247610596026960187834235282396927389454154939825866265262608531472408280665115682399202262764849632197779926133217445787951308305478922017851138234098181654799710475488655375216615614867871441775045373188432129194741386059149185198953273844297766114030467367289836175465127919675694434424197108807028142979374704601641150500984466688082366861259462933409876897837418467667978829624582730497223790599571156106131918534063333656462506879506999087188809791015804838173128872011556427544121769727384846219940295067088578607114304222699169681722706727455380360236217880990573173203958800848794708945954243757807556006737419681810031773778767128816075238399972121392707158324547939916755429220725294462374624044458599249942716661091415451510694585351461593097658434121203908328461334354607274388140203769075086670551977904999488145108312419887560434741410441766615868277683173474754612129705494878518942955042049435547789480257114149100474667490999281718797225617977212488543403086098334475863418687098220050567940667338378142551390148400239956940481969048778996002413657459197183306712590874372012618733718214033154218865521178128321452446263486412884217858372587864299964527353102469909272241045717194120727550113973335875699816440857778568122649414874212168743040036293020327789500683696810608655753228384183760713927659138473646435083402630355644296843694293409766355906959598604749651346616145309180279685734040501107049919892166025282993683386800190866147448182405289787408590968220966769176416587382745369533259045692175943926566684491310380530527508941413594622315494347342209582234724629207822306636901971124865452198769474215903513770520661862343462373410779933498494660119523853891274298804586428926942511818952106236312047588223679283700024592108081618305246932409873688865897601812978269174931827705868814659803144590698397148624866149523377607419218855391730108640528106851619956028793297407157488104676413475733316104639654758055108685839459788817860539724770760159233311325607077044837401099802012526160096163254522277267094065966723647819579089494275506807199103549744264161311310095020377084144909973753483324379824387819056155942446644743079552205177033085731883191605816131246264428422377030238851258675576396316204596327880522692516739557292053074773860002444926979166393749222057450477810256557072064902725823497333629578824539623094426501167041639607655769570664110308749629520269208728154002931184005635689954229222687634774212728664684439854620850299225485571443074532724082339428847810637023900496787834037921284287947287481365494473304254437130816403186905167055519130614538083597778188969368938428761080516975970755261538990723445292977620888491617355495761251236106079273390387512063175067507455079017643814706055489514532734800019901656062485711507609315539454872677928740052238026193527688873434916414989042780248505090564197839993904555418773688038012985349312313017138633783283498743677466562302386539328012792040382858591802543122107445469770520908054342725239572201863230683521770384062142689461176487143717159332924313071769208884139317904815570608006343668267803510925302341362247700007513352864674766145189090458028576565711910802887053838601414619482253106476691399912661905590250310624353623418745456959532523185143367053728234852819308111329493001362634565281073465868625859503612376798075861878757545699892714362913800913392450306530273443643379647610185892971019935435752137123707354078719600578666818410637746660054540849149405199133133855992710517826994708216265566401058343584523426176087747088215927936571359763080738021725047779847643283588982992383914255875740216987853466737166762151947442376960499038280135218884784343271828745434090770737589813197486416869052250457856118551665897932077880686832647703674181357968153389239021999549453689172072188359370339135291582252764744417853533760498653594988171390297990936428096300255820937846664026317681270377804483341416998504779458415786073962091039472587958705641275425658054112350383944259730533447185828939761161600780733607844253173123282534976094019361816330906198023561664166941513759270824082387616448774376681185623234282000373709129841758247340894876399690286402363082354959378155081841072758557098386469100427336230952985867063204564924942238172952560788650047952498977523667008357264728075234316709114810005886528656838373570721277730294484961654458169658112228423158327219470880100714706124973204879140519735379138556243557763001880060021994068743886798254153046499901150792771729692597707364064611575291351220978729541120377692100363326862180175675012391587125550934138178078621043579452385965562992683737802890316110707073910165645520479833603275978590719483864382953685601394107939579864634501102692999694362766869829087036225488652506954248381064395925725687145656046907024011582280969805739943760819750872337862697527468247747777083597713264148426622264502815383347294093720768358042618419620160966144598928822230539931104064171988154562661275608796659784863078378506063619296851314428822242555149611680903518956511513246068583437136582695983732780317603080541289403928445871751584876361261239895040648770907383773538507223499789556072100681426545988015015593202023371148568383959382663367227544417610771718742978049311942776906146774822037312848274140975896191817502895083812293037375909659323259354390541366071030226547258343834317141808272201630094592523828299029135246899636531265260595161417305079673465714762905948592023085360981855187446930103723056490422771440929969765347697938394498358115616350589707896474519391799474763341712615553641103228443562414981097836338769021787230461664113393163459245590554903413250961031123535167299977082502086924431748698305420004624150830211519114610735245442114571787085555947537322338255658895708096436081197403547287834725197036355636817762236727506553302942949113199839127932283876808833385537955731985202494531252919482968468086900955668585609517668830043134156339435308900326074928021081369475614025312331932196452608984520040083068087901848061707569056726464915353896538171754902109576103209486228341365756543154709221466242303579941099590344491362152935833825247047698007067239508322031982628103186975085815709437131333541986007200495030814763178579750557005140857731744715313275665402318054098396474177149266757232221909799285438480531044397986688352337670895663120634834993283592428733771694143127746167363729413603212193060253182580617019105945005924579489659587977295438780960805468608485826667777192859258056114693108600440801157250014271723362546816373443743847171303594040279788616935634254396952766210967205552443800420723768087914148763890545090743662489466249634652625633657723840800942009221408322365188213237795652454412577960209437374998776035034215655687723647459593281650950045992226065743348200339109349561790269055822805111606039663452706944712358478856299895727820193031638398919193963192924188293729090333161062597627354934931118368767701416107957396297081048798490299786525412818969490036554405806383732577689756841662476771986883796168236867074183869706819991830349324688790633669325814725465426825031047494108208500233607085566048977392940304444233066818497845559703360255757381962633342474897641713954361073292562838379111751632208618380504466519916128332530080479365757920419682398177085415181059383794043506136380195361735691220432799481297359502145849469299363700077917678343950683812182512824771339992218845032348364451258248511242015084963966740910213592145958822236787140894827252668280645738586167172337302793506676305445737204291317931740354734787398758845113269466274552112309752439520764591457862622314566102542016583820143145381153147432635888533366355558837950062992084138715821548991224377598030868477021718034531666170672228399955652574785049088382604373052386439005568315444524001639032856947919994452493373805144455439411261025251585176812273383192655642461329917113557643995443000068345630049200865443033318318171262234307319884277106086928130751092487331799108923250573456886865497654258644809177651026390863840545245256804083956501961662798841138853454467534559522302341556939077823492198305802641829696176250358784094851214726119028245687179334107170940611200352094475890218230901011639059039094166761526960214456011152012547482837806460104847160426646738861878778113539752923452361784560883417626677098101281460426379847437194460987174673047467376364074967430764296494873699899501478668702096663926661105417903516967973829373382557319208189460336750720143166804234560576076625793409806898171679051184762886377411223447130476721332147536081967914549297080015897793501045248514544441518881594710215066191892937168524723617232088886747777960859864696437175566898913713892442179537432357334656036208378482175558944677001019874447467706767166733008294953859677791029818048580028407582029609242165566619613461450767799131419512440485798290554724916768616385497853659571155762756489336793980976726804088633272525141060302566082277064404993945992728276334547675433357611477346514014579668154410648430238766401716261234271658665911807153433600785750123540575252870773477091483032648763316448618845534828499494642641277588794442428791797185411765973680144651335866157635251952291283781815509685102341035772971391488986386068950399834709913673285044492518238347415723883343129971336633878904805360055092014143265488324051049004835713724393770372047792129571642834397202397764446142618567561413031798419485578471265928978151095622087732305168629247318541919271376881849253390878133242659239026290907552398662878822705147909784304802174286732340149392825976708273016576013697896656742311953204828620419048958299421338166333189145034966446967998132533574526380097880852727605440235818323010923443735491054854911446169514218550983580975591614715024259733414095566728585493215610757487819197820628489224477809134192629123342132883164250810120017717617309798570652535908766581943876448041073325853762597363710232323139112189128831000919569909906148626220148257145575794779781718196564803240647968705215689654916942713393904531880136066255679501143678818742606257910185954001873665340722688875178305018235245643278449480847983949838050697741089669064811233191724986474973727679554112582522145575627109400704829170647524960452029695264607483871102743900428017723133947891911518904773486928003283272957140277523441948862073739703679860752386752809921401840693335168996719595382777489987072716763642335961288800223740846221883859077577139106584048666024113565570149146512484217729265624434211199762168467192227014435520587767937500120178104532948451908888086369870726991235278994145888736629679729970352038460574314361436677211739386391341930232164763319752263231716484648993934130636646890567939004432083673594835521838594211892129698532386536494585517461151584582628109014962152688580737904230453137992156136234570080796199447703383800270467799618272123594007176665832970742894006198062665571492282436760261243144693997235559271501098751870720895370736106236240550516900100907113435401937417513980996996402686154536737490501736578889532147999072185344517846345007758282525796974420300940716328535106540173723757257197983260997493398504638990568180115265329461069084617174200837622291640349506961876296469105478299334771215789628126148129994220565141449098959689702452361201592692632352901961388843110329210889755809343402116847721816898041440727577492301677530576853607731071208402164133591650924247758559592811665792700947487259686001677252874896103974694096646516125670274470311572710133553376666091413450234757594498055550706813520376517733635304803085842573201203896654037384985622972436758855641323550773182276635710232198754815837067433027901949988778131594773357100106859019818126192887380876142733083807894380901626756082322356860884917047766126550837637142749678384008080761447738639886726299440001134630965715231945245182966875867062402002512712626011673277481242859742179595520701262332592644050630755229008292780863647944104339678722650336275716277244608175043336587106566006472562892952016044946241745067939247330402887612466029200432354802501773686437571450883380617680775316096174821407303254426366447617535269899187447316671190713669058564360411929888918757285176791015861295787330815107154716465746639103016169163421333884883861779179288156583677802229894377726665400726487311875122426296583104453209226297699828089179030734583475152182481589259204740685814128674780528204195510899109801837078286865384668609070056722074533014100562720298766566096569674383802224822030822728817457513876400616880955612323833969129941342518481644905880182051187890002439415027202021625427007063417255548012929996275851773387384227468809598399488563733924934752819657572668590076439277386555102289123512142375314685212582383242885669434041467783321209938978222650621750409944467967614443563519588912974916377435948256653731400549672208168980262972434056102016972703783325220610439318120109513282385147543550254450605872440800732450365347993322249287083991926529137331317730377799745425254418002787073604589380883920285504949697836842848205767598947928607195178332187404002660700423825131623619596169121305834190139218885618540124430926241321532177528528752411363083394387625773658921809934485612501087002478559042258628242903319944921619094024322245119331923420883424298796937158974849530379598927447002168763107660354004114367549198907781862964471836716932037687144264465159758624506617128926143774580871167760076879092980988115387832580479615973377466917785075988530959643602863948573848072094728437500984937775005961054332265913355591518502233935870887493320890672072716420985176549776217709145398263654182623737966091960804560102742674220359390575240108172185823677412231201917933282717620740823396428594971203543915719472572043090754557385900175244662898090405150425579387815201605110322784898148979607946273936590085313674279302060738599115642435080294676742359181866272347254743305761417111813563010921989130604250586775356784591901558523893592145490850892593819013671530348304697800165109317003058646564054330893577884693723172934107430106443551417907196110760457137604150448028072825722624085312049887658380778717984529433867649251597353226623248168843786996388994563793942063835782682701119168376084639332643335596357494678623713917898461082517215145411791674022212892414787977256025151690224111806401536364012174119117219656096127670001051908005130942880680450239657656436473004158379387068346591072008304912958827141889177712316029184925537219182596792623909727052472418991954747612542464478046859063616340307406398314551111548272126006677052973324510290982234365109619002835434868225922211400256436979904592063327159638206229485578132979215869598860352668030921060242670221099672864120219425485453598818624312893060715865980378625328487141443101277353775837703188996708343619537108653856238181180071305375898409095897147757415002421607594533851027320396155070134010428434023369547247419285577910649906312598333548965229814341151524222722798812087814637594468118050345338893317504906240215060555751480076664410281481584165081164237296478371772794224234611647361476462299501204636439318178866730369377252060695372887332415492959944953346246561254909863557784557836854345979374464822881955529208652241316860211471311499736044266493156086214068527623889013571659820834369350152117161632088812545130792901626986942168464877248109495147730533949183629997372052876787011835800854117661308277856450789231146786288840304995711946480668037376036021640768298315444677751460607126702641914098162274786674029496300773952908641090585466311041267922243724838674916303905401666992625784092557778078372208773579575489716471826909268804963853428887348964075740960115128638761285808096582746105575434951992450822492400444767324735829870073487972876252759590684911665485493977400577771059221431591920752303415912005145997356275579636270507337074779874932860013391685737250768215058979698741924858906568300141492239269126270190341801638391277964726821482607290556099435159760536391395787771461531007873533367395011585049011450404421417785882180678267867447493647826002625992995999437868021704686263851475251810450062730544484099127277125659106246802193459019909141514002948243411785881827028567798691212363458624937875522929330623548073827212381541293549444254851093283832950514773965221525954888285292714801777272591559980807055472028483502345494532689863558274276382084936528297493028472780136491485070223593845875136859871027243126678083015736979012424523945153023872061272436539685627203713260010906346942959551298530926802288749620180902169193761631882890529036734059454374192955982901001798555089708028688044085203416511019682468308344275249543083837025692503633561696590142414737607154737240969732543201997265793767477937286672377223765219507511196056490196416902004246096953811994175024653459157978069834782690041306653245176421095820806075122384329721457400261396914285054259123899902646261687710859740514773442909631836593146222597265021777095028147195200432759289141020130253796313971563417056048263776474441914754540477482259181416945467880642290214367409726992918303767094036750919121625400120295771814139861517858959667834558914220452019822775757290941897271488983111247639691902062925372715104368426453349753561382180161052333685974942357348170112390522118495570912762000780137247756406362715972423812251943232065020526384329022692790408474633963541707404071931575305928702225129413191540568359329630700582827846385938291534009913308594541823515843421147126611225471073230015575344649541775282144768029483643863966731261014311391521625684711168931708494629445478117936597952286675240273733484483875077334888094787155803242881255803534357691153902702548544669909173731885203907308957279222740037734413189916216860578990852365509736401885538688694379743801669931651743043159863860980798529796674224688709135771494971883798821135172802126374437784263638468887238499099154198352327859605693266521277410854722589161713512249576579328322034155161911445260499320707434677523903515703997854296337173130290912790758276652366461373782116419182445229698958023621813173180004743389048334498179176465392080256303797242128539485287365269171387308481254749082743654689485148105404098970741169418473132564960318611484719179142866468991745961204834114919290901667285789644781026430987187105189813152075650619601430740167978362140712729537435514832154573551646096351857954341957793634946025447240018655638050894611658431583985923633324062058489772217254801043302036158849809969561785721348795620276058111682353226210196419593230323780934893124619777691194828137535491211500830060665355167029344047117888392363798523663032285168328760337059452256652587508510353653382761561001441099002780271415503093111497427194270346789663940812158936724931966517241264779905696484329483288623840450394146903132007074841945316451600183516472265168919745220895745481863577694136982074544343944517189558464605606257963531245796431361434034949466881306035033523874200152898160541751972967291520760981531102136404782317959584207386652417665931303659362071763767554390738440639696385802551469099979690618511622739367424030449185033737742850980531592786636736862370375745188359841220336738196469937116316045913957945218670524961984839528361968024391058147142659411403005213650450910898327557062488652481664941030193247690540625758420991358714404905253745163895396751471642602887935630656595091395469083501683592734590149330393685557367782287782308457988413878290706084342596105398625745233718750097929092919582027148242835897210830504870062303624762852892142493723089493410352349306796506509101991811972594143620208705861458092005714834601676061498220067770612055283441764785875584313663257291479941774363543551755821351135534029660681845052648851875209823699485988284896407375754951053157344264183863567070234729210211003728209574930787036353309536759765045775712830505315716282159129802598341746673247374393465549702156377634556589012016056915828297253424842968813601157357035809365624658775576488367035580993629112604496310138956854342982592618524151510549124454321391282285453005488861595917982245561967407819985241714947291658926566771941714964653984049588056854298187308372721027462461302097966062248112162289015719593963031227695011489233928636104801313752860009328139753129307820881651640134872506894992858676210449699381174535708321224987301833303676719085990337599350562961230686089937675643141776346085484788278829915990074717381806497240354035903777679711024582033758704333341365308615299520559507575506741628209681606729948709379881177594078127810912495912887771805118447827943949403871387366655453051802906576187416399376954310007779815562017004478775918122766248661097656628516668001634247221831112329218683020346560229641741375717578006433761770520891137964886465396603070917577740221272251915497392055637009938268028232185746457533693240632927022515870478521915950049396309716096385130582193258210644853839076013054675454536536221380434322807100214439592770048161781655524670661675659082768986311389394344820402661351316080593585031739259449440381193608452605482582625211833628328915265567031385834636493226776188864793269252964738429257572811932762107464372364904079411333103281773780797606513361659235604846409519725308272027310064510758256825739409404668889115692340164905202979777085755825078844015599426251268712800590051812172584128384442355514904486582388033198725450367816310960970753228717149143927230431624921682077675621271199442314453106103499142131079592101790016727940327723677964799288933015586151277690289845709155698594714368107252248980535554170296224337228714958735135143301230787106809270800992919042767894597555562449844245241150156025026206243096433002867130202377954178341169490489138990499438549361345158174921398132827942590312778588524803482153753619568053903290835022271880257134623178357348055962964339113921083995055991854379383963817270283878796203270714639775389090958823901562283830291155796493881016143137397238059958165103636678448478568989217066788087182752751775978221556542008310195731508326986926926382811208060529702862635320005144454634150181850220448160307110421369329925117587576178238483733540959005149670621493152740410786625388889629451305623280725789781198911694942370817117344718319356818395807931435353851946862289913579246112641494640800369972768069805238920928985703558766597656010251501841045045622196491756089530266056948876941922268078686366076271796197704533388999238143224590482136595154443602211844689528333978769690074745089431564520711239638778387261104489489238457117168584288692601301229758749742046795389776027227248244809651656258841770369320127254643744589424602403142144638322772827113502749972759962967512282346442299236437444272758874570670898354871439635300269052563460437927887240241205444273807275906954732407833965069963994716250974220361510040569262106620477104764845435231935663271828102655139937916790879536588329838346959163146206947712276440651159652378349207892434023762613932397680256660515329948481868046605108500185840564340785141142364232380210920767163816600390011706769632201241195817023214862219268929625657386852375446446813622189604490412094807581187979388457130808371974363776155505499731890846021391951485023569527485512475106769683492891371508149387111040083219044873071383420105481883387782333829877157836125885968640240050913639204972283071836091098355528866415122501942873136215964277994441782458407311248098748577088934565694308297315281351546746161320521543540493646959987035171031061001174071333249955297265355531820844570957779610445314916592956799962824814956576796784795860617492103412241007329487563095656330664994316650023181623004486462090114247775231024086195715551639969956082276730377355183438662980590104468629530556775213795787459733665292019375116326883921674141315113952272699565478746141317598698937048088483277193293491653714558883117221857121091988140712304906954383340455997820370548483082515200365745758319460880039493500363043782735914003590817261989160815081066363332233645780833676912139678633107090855961005586199489567086313681342872395449006980121804226538590651858009410207521822462977848050351578184092831297058350434986517600871185538872292286410866188954729988169538445678617033429820943914085530130079233803900105030736125377900325252711300805670171774397019791898857177486451485741917236756170820143549239217321186623387399674094343824811233463371242855293817814503277446445322663708182905070691071972827329281062156341056233101702941790924568524206440888357668777969942215649255411450743130181941961554528208395721462770062686846691101334615271095636781840691837111492712879531575951057106571374084471709117169905318353368430389603327220945061778401719513244857874263175832589923282445502128644726343155885423919883257043263402429810442469995064542475627366573474665442661871372434557031108854459198452799046219064364471947987589768211769696113227609050106220254020195646068307761888549753896051864352909385141345835148297156425490253315613378226491786902561641246057566638212910937862170833468022367375092064415812222868942640991133834983533355885913302918994620566019870998794875656923025822445358644833374880375017021228197835700383264686164855664343620645544159362467595421770928823719164238344213330003234781811289708889484944368521977437385661141331001120336200979435734179924411564905540933343215656109511945917175766240201376301340457423093654956580617855748884105425979869222218027162468401747509928349222222698662133952042287918325387733671352441043851624319163364517599640635083202279939065076226647908034759675302935109568747206886612530741569498901087426970040424080044704908370386432165190627380067223549061791250862549055041887905823760634413384545642417840721589862202383930267040383206003874009607914114174349690362214295151984685223779565075655803457689210323129633762857537578818238613221798087695814230986157358238772303563013946887615469232545921578086147272924773238401700852357078541681233226084603341226756334148616598214600728630475655599479913716078503098286696367112272390539499361317734186207936040547463995203108469675697317202022813680559968849866074950298991715808096350748020594479462234965490439254884152364095382138855055897943618815728828168121996963540544719337269824653455383745264240571490574476297503387616717155737645391872286020792484516746685484090807209868152129844860322375678824138501625276601087810866899047811229744173405580771578229586093484407222229270711307369479997745790234738289860984748702897873410165375739795790580824490389159731971815118774945228972108111966474099689369347320626364015390756978454422309878959396873843868911148704115063737591132454845176593109459501210340156025918868143253496617183485346997778558517161083493133839639584939532056134834819143896561210899723949499961669092229312684028833112536320148965459907164823266499064080680833496122092191958425781238791371737987788704116343561498661450320449424801547382499643371539440385475952187173434401414727011291644525622347079640536271183492274596604342727711151982408787077782771358869011690035499905163517956331364252899931652586539849924598373499130453789031015931213343788218760673317219007213378234715315178160490938117651904322811002336249141135887501623182716477894401112902256180637948446187991122930239383313625317383885323487436842605807222722984457483056867173415558242624617587660695482897418250639650347146653910571090355603751773414139572983772624032110187273314020455743929265765601423075294164495447321773719676333543479567833783184719828055050088427262150796609398945638599315012079755357230792486847215296442477885364319246353279027860382882531805371772154581954736271435731330709456362929676139735765454738293474583779632764253339500410371812918534684487322935430789449201024444689293841785990006298478406670588283652752579847714518698680700279691331532399045967555338293569899842191124698461674513216565020234559646597580133707516768141788307667317163814534806806315543361296914416893097144177884722675163069429149840350503177935067609363185006078188430433976885870255799038228347708228725967203429301684162959327201046723313599529107670217074039523692333426205340066711024695837187195662707938377291553582346248254309349401565830743033514524738932743592808263075507419971980816084137706279298752932606062555357095339552815852258643405381624573625981109702699117354699428096359162498050819744021993879490314204545625559704780766534796526737711120090012399302603561005341586236477145307831465873147931451736717167098720763669486125577119856556552229893023096695033684378326440696896564560397977831926186853434621892737490992501059704470970404403763071199811059462318822242173367631640420131421669252340866255742070905036036731498143196542667955331510573996196264834611357602915945805694428961751309159816469339435256553242950889854413161097243340767156039682258476866010967083159211932525592351462198158362700634940817530859886788148232596394818470908277701937724547920331938001846525139364726524824925305729019510902589602996946114623376522691929856743625473597049249811701457944985606158720837353979491464793248689303039681210695420034728959880978382011823381243276668268192786936543180148563296085286139612437008271538681165351983499299041939205869477108871225662414133334250582056391321114383041138101615465471229749242091492003260109492312072844894048362234637520675098889117518832591849388334975056061091817153198320799378628141201040703901954123756717489284686890564495020100522291433566340582649145933717426968310336548688100634058483587123326556198147266346492237168684538487586342503716434664416813301446329752377022743399142381455536842733440889378243011268197925086934278557036591284509586569198175028228717538722389856548692928436715931158786282169237290939030542508149623073905685575125274568489470970666946035734785128033276429131004695893993655035281852812084026611270160520859352008949807328617426496955822387673390568688117450825259151770175270412474095801131035230182334563033025046926690974646270873848503964919510018994964617075323101082497693284128152042849596756297656262866830393621103989932107746468621895178086841756969676556064521278259070301827095807318279795020112342555628347982278577492310401748248437592024958642957467154392635147613201272773693452475484628034713437811373646708372205026432691192006401009687644578525788645327956226937884054785435799667848776641037723044479120346771364813193423178306360475258630414686169626756038462213183847716039879619332570663710420036802292500941588197899198354916095895493037871417428954455985358160298329153102712572320513045558148603950503012179947807962487237211159224117673242620838983742332225625981546294977946698814831069024643361384625136663910794125757680488818674311773768451139629761152642488336118473099400310818215793463916248788944020922140054183860840459334424929991203987775083792341736250652621929751098864404997676606494516407719924458007905689997141323805767157328046291053197799951673251554676576480017786053222848703744116563180810003845361668448370277374132121928210753288809800726327166010672780406731744266921986865964236246861335148867065213191188037068758040478538825569868646414318695703812582758909136127623882215037230569600301235031595727006010260872262778763637151653508649422956703872065258800917290176446563447382410086530173726179908446636756012398753582446660845369178654446647637167136239090481650653689815923522067408516354606013999206172504152103281653383593583172120877185251116656389976996359761872468997135236097998660708468945395607351693499456104748219266613797337550442212710814183646342710458604961975274808143691405491049189195575825342949212651579091475087100256869428465516769560807967030369966848002189235141508581488998308854480964926961871142385482817416225965306549722605566546695403985881593678257794584783844525820500432408725145786658256408759581670116644444858379920731127282465208440479553829395040801303885803013707476896165589841391823090803941380183297637129286929496823521917077104507325952760311448595816265929756371845084354230369736389010784274655167046818482356773066298209782666298629163069450003929992137465127596814646174363198756314589400559193020870943088861129696540668181241150495423691922851103044820874484652343717347415522005932971416511797078070616942148816938487150417989772298784378071600560444774652849621985137121754660080619229917376963726425262449625740422600925356329003083774963199504051468862240696817977638948476477583658528752987865531428328449605162666403437558299954218797460719726573922554946493582645404256833855115974250914646212459444065631523025583043373126384590077584751338880389345132605180481267701306574146564130062752001725953089345677936231472873490754696619614264620477007234026363031170498671227734393515845722700097792293939709859400648267679470999801850577868174847791865118622294751410878096561733281739900518679544563169809770088899617594301170737306231257800177391131070494026228090792569521084997482966724624570892502244928529984830469771289239481301822555514485489981244441295456975960903829139174347202023884092755705624161724257000272478972379007144205207860958536984374897979664378126830258412044348976259593743497173422085431508036416595370779786130154095739782086308759241310281779498910526792814268545317786201684032600187971912621238527530726651575045893197554948838148785925267671370936757553940427562465819342413148557795803495643348357871099756805773831335359017414901518639705986973216170476607571203075814169285060644962033881428235145427339708900782587991026272570277041499026818143900669207784425981860134659751034312273628272442347544096133784696063113269181964072903554810101694572450578265736864468673131360297704597487587894154442062421517255066142353343646029465229506454147278772542229087701538955422140011155419511436145262006053386990189060347876676817875568461217122684431009493792106497296456955427528961394336219187184308850437129080625975772576473882571082365644538418777889836239835109100378405787218261146515009490950671433154606206149345514281867559953478289142979028366443352169330145440498584010184372246924661193437356831820145767541371475144857864779602529307532337763497601292157687176653522917640996282386378278121935333616287728351550566666928530099276065220100403962235114201822920374414655732839007825659604122410351150991606183483141396834519733474685999494802217438220351289848128533484331395500768835226554372098985964710215510016466398103582694125788397760463388875553517535866129071277157627326064790810194101784113210570826618414530499992894488791925681429198173709007107870599614889803624849596195191648703248697848446272745991778140713750316550045078602119669854346822187701755929391614778736769471212226712751662473963866512626973612741966826408681400653219405221394333267370290926148724275410188326533950382325764055211463155531481334154281412506922106913749703795611383251635224148891049514786177933561514596557269633679074172534438034325228415947308888862913826188500103898655453737677373987261476828254098819718477334459196298558897293700888698692489558498987808245206380877380647966486195538592648513905102922320770879131996725775518414072039692412067548732929319628581048707251593988677177090328873608618844840557810128592815790690605841950675542592199980310377852447151745473322245137248799977202982012113868970683116475714121574360312651330006614789791729346759693144557601038200651104859289826694847881728429085092917806554332227597896253061486947432272458097111244798113801791754195559852850352574651379619080576987002324589890400329389294874519781932419019526748334864602168696708553195425181524723237252247303421532259858165153764801913997793140551938236402082511077909494386115124929667510005015747773641264490028621143755466816102896791246557965797561688006873974406775861436944407728940437412250854580609126035405468689192898139388656547086416641767996520560415461860738125673549682025609008397785406947126686862739335145246904739503083695402585969451758224756453021934527035256514297132640909941510394423735120556889395700137388867607381351969971517914058312561959328990920208363403083315531882350854588365114023196591586834098915188919028118476240044965877630737557528971893036817342386407916143952937143434137541613172668752207215518338631113440356926885850908955852067228334099139309587759288964342906321690062096037047444074863080593063892832640399548394443918876627391158293100269715405379393959709481089334524489170766093734277314949136058867050708846909351241368055648566071605259167524809830988103706469030095007643457506904001029180655215351793454687363180874571920362647207207245829467022987150628420260185801828287428975055006110214036082826014956018212161016626260628293566546204017296735022009912525577986643138247721190265941653949661513179700957047871413399871555244027302720685714852519844510794578442603780800128017029456509163544347862047007244530414325137013105953308050326984333311747284329574236679557848625059538424071646942736825387729206215359602255188734057637240461064692716831058784523978111866031521587741076672073012668436572791949093272652609993418763177567900476703746094484776980775479490086914791744920410004170790822336194434950374369890509363325536864682171192770565944991015875398731962631050574566026795385655132395166402668200226122294486093914317181136507206873526072547560361288689560811349902233551580203206685273249139938508628981605351077428452820973271683925348140461056672144524080841346464574459113596479882454384300102100183138636478788025561171578670800869836720423326367641895459453483699031370406718782622606090045058467916879152815287775463493090426593939501089411370474321630167503394837209380848939332035058862192890327878486933313267099934252730649890816995659587420327115080413595200758771034544536317396045545924501817090444834732014040905922126525529179387286477675870416962619811439554852762177817154170003221410757761383030972215212792260039486596991809046966857443770337660714499054513135838551601993480810563138943082753994427022345971767461374372980202164787214504118938212295072292975319906074574229725413237925419449747469823152576872331986104887756842688489977181642843092239547640905059907122617992194482298912189456461607096297002596474454538675724314150439097334071882985928066513194346492079257386729295784874028156574052526964837964144517651109286273752488839705830007504074604406118272987048848979887755497708540407314254403628778839494441914880904579924542958979478454946952406715475945212088549734153491068830776182753451509571995854778980571846549260975428438729054118863537784426649621959027343901580304380553537376243315146400332285205689801193469484213986708624565175601300338051484766013326490302601835220906753787239960113006035955084474764864734076612403448181593574528410685259039349572037765401481524514465069410393313555647807991557405370713936347710816813978784260422485877404593688491963519273557631603402737759537350005702579062561798214999219386378513532195022046165703887767315553632150068321287465153562585990465693298004119019540091359130222848220923324959326994878711428805063111689792447221965523941510273018040096292157806039363762741251853923655416820855997412781560700746976058690698707690845443754247275693636376517161496582304075081975270165619865033859422711136614313458672522116978988615277411356315753348302912032278793396466067778042305258835378177858637424208600577372779196413559486118947342711287917662051595011653133201474049651537931511331776786794349161471366025794015631370449443336974866980015900836496705345663304240493054849332286552149120105693353185355291414770307306602472865174934680188783309771811475469598010190900955743960993373056372581010882429199437611191920770406722188582943949369277827567039466765562038651051542509448309702980122405241441364138857326619908450083377914563395452352988896795474036486342713505658635854763854479875763592775149841507062666628700285720871804658267842372030752182450956457916256747320870438855553684392863448451136898233156023463532459660094378692725295072611359550422486362405812682655325759099734576180247794209991464871690762669384174705576811225947291409673070036643039034354096414242325315099257549882577748151978180362238604363122257439907058750114907519122332330945273225438927270777284947888297974339147532324573372878207471015862120062227577623669288248923779593248373708975405955035185078492420371545367956625516837474110218537559937860123947899758551022324645924104610250591443248944992177508554387661134795223455522580230113435341674414060580191122768640788223935977357684826806490942584990713854129850480728945363052489136717056290170396150129696282999161521802320540850786599502575400984568523230940216213633370463532755974444205446462366195055878626987844194783102110384035437628002737606324229025030149659574025756042086134439129876858411240119120527033186052287086712201673980460244487642366494627546743247672814921200500963995766127693762592920079660062238079018542130789639859076878209434821438175816394917327730549932858732191131399420546421752434527438719122358765829152199367318645471391273430878474308127736698998486656052864199037426425622629986150558448131707898231807536911263053658470382317940486616906555495859959568825128772422707753159501400614951102287509648189833718654041761130959122544962784181291754466564123099691957291344116531288349411952754615800185414143971650943972379685959519016474017755001679198851505887281341649578435315022398395058364967738304731948295486289362185835282229137137229324573037413867972311828294645808372360831873373936470869031553639762085561599891130342998269102195381448820948869122731099070612948773505309168316473339360919200469066742106995135919688656928592806379115612243730941547380263491368132675858842063591339574689575221181691416951977429818660096562119790494858390823845835396133515903354699812156546876866262315959154632722878785129711699510860445285623110031534058765614650411030238286457611497557224068000838937136956681954939433844742862004288676253234369285264147971257978708570227351973753213921290402884519928344776372312075894191331829381058396876870581781625994676636887680850836429063202112791192884748840295222597178308627007843856332791347782413804389770801618602004361401633683853541821799051468873409537606196354393634663589995274309301006779882127377351875600379384534279299700282939329993006513847764051996787641015727863501141601629858378089580598529733944105124461820774641066652868515633865931260087648653535070475600954612489705175079324618324116575012303596339353222807131896267698938640652975165828997011754980787605930727040656149113187170996631272718986361208992896910586674192376028997695495190767547153367287284481490980510958853619758542500524996149538848695210334353382747120334146958863347680774786405472179149117261579639597500198754909310930546049376620980105407596480888876693907235608292838104587213930303841958117454483285510073424762404891302477695626034925435590191481473225143946734883835393915204210577746488241477314278964598242852956313132253427362385231380777932014352083574243396066757848542828057708469946078080020597262306725226023502582663048979682386349016690336321081096974226136095758697720964101068062649852745753560823182253570147046885954320919654497864043416077890448599869303373761905847264733099602859549342780245724418424294545066603448119485632657756734339451466726319495664158667630784623585749958147185566951976879590100810933659781306538807974275918302230327256954955500572959575862046318830203186834429619241909866402812956504926765691935500289688645612317551108957527004627355429598367908450118009993354805236448348538004051301720172772692830116288439233707380804606832185704569228569487268963877333289754045782033761855922731513240152448784558905299893358757799990300189745394329716402058463779090254439139756015080222136344640469478173413012466505233179960964074174591785615572624752739583236087660630838694850618770101526869935513594099217806177144015939023950719063951859073797872752719993162526705822160531159333962584758478374534905990604438889279174986246643586001457632459046391153902665701784402414014617174641503196076887869566413853211849307360666072507127590534742360447287399573221226358664715248756322007845367515787505360575038829894095670445613078673749467173883196039694555859089837175958755708721606342067676952735579791685934235357551042863444482837343860560088835068621503824315190410931905986129442988191579971034591544649970244660057238462951723663405348428067091155882118103614612183227479389640568188575478335072062099169256251064817132948851064591046610158614405652500095420163260104041894531805394335819231093378707389218471409889970448072830782390826025598109882557161224235430962235593119846625663950181845381135950359310523160804392228104207808837495220534512714655114384214907205000352185161397767537319779731650220010855625805611136999490277009164362417374254429928923133464980566690718372487282035604726383238308961570329129273494743967719278507614007720040194356491239316349228737777727194330906046704318242678217793561626056245465842493819175406857952373193613137292235307336835189300069774954965391662230144225890998722888265032673688358975650451822186361292372909353068434270927575429663075697908673543681330786515996817721499978822390535005541832216762219532686442733475032126515103900622559139071448801274317679848646125363820361745767416202524628767089529290540254087661745300789569275247903482551855794244253328567552284178115817860379849515239185317768829179446407279285526182778939504000283969812060924078146333203018459770422954421227880134447483619897581848803214047150154023640471498731677626021954493500791650931827393613552044491904954415915328089137762063371770276521695405647902066381561771925054841602868672210443311706588700510134804488351180852865267172252842539400937770747605099980151610138821548073431619969509149249666182343043361302352428158094438112968671801646808071206879135071137380459195298006076390891876356733086808702604615782790167458618576688429360514959771620329719180051967602189790682068127684749323661593123988680993561083242371121319935612912661691920735836419915093841723609640559397845738653039418693964719237587885628216081455223064380450125065425615182481708807751772968610772521021577171414354559903643293849947897704514948740167845106880492302146876184940193057712959654469831624087595680783894317826129386844482163158554094094952965570441433560403911000434015376630976906284080689067387472323250350045318205532489258279745541044771756777980487940764301146594168920149421721667864287997720083514079113265192564629131067882819414203649044821502505560956348709239744382323181449230197403442414254384618401712641011146775217880114855670608450856563188403304629524480263931047437916611369883379335225243198291214924476799776509064633299829443463296413935582572092875225004175628256136612836650224198295187921880886541407267217333143260606009521936597007094336196338321496383744637008890795018614580436478955974249563104298090754977487154965421049849099957981344338889270170501039684636727906977560578478385245947720599476071557184535244696902210334020215478959127971636649211782971818937808702333001920917303892789310391535774512117062930562120339223520424035789091508658120826506328406981909834698019539379305697144188372057229524132231907385613537128127775669221963191299063916733245609399889595968299178459887082339806779952457560548245108639370360665919650893779419976618506134782817940306812096470950763298848498758959052012475275179952933450451678242651585366600201203603890164776639710380571624396820296858589370723575995013883184716951757512515526797006489017105102164597958642446462965293653974371975696636597082297075261178037114113413639219180737604634000647808216175520451049061099916663766201354425768790037244414454227675459294816878794444063490284491644872526628776349847353347465628735865484374612206289532744458454047627781430049556279104139048072522960782557059955272213767594698379164469894534607353997594061137727605502806260055603768038142232424973600366826444014073727317444248465436008101380700095378075652989779382956019375674960853355833323490360388044990120408835329952583499966020155287944399228474184638756912735907351066217790344084600149711896417379255918578335513029411209243114489742566533779949941109275000551703713723445979767166621213540328521234375212752626571418793046236322741704427514006079852263610039977775431120267772918966826734572026939537142270890606637093359941355023169591858875813579345725395331663242062983116346937263704919409649922683847644850075549538404401601511046632846197468963588380152803235838264114678038300094593769892880612072573002892126172399572373703278575488407667308452169305243196145025776816002986511018062639872396449103905636291917541858580573257887537332087225831256308086948701611995149424622998768696601932557834595960357945776577898994839459480815073178259401007679868188802231189961655909068021495646343081556712753349073707586575648685036358275476447724880108441143120588961557891067060753246417275833925712840761565406787863547072729946327518207994122369376148816226843319637587159565418276371153006808090051069624765481222656298910512852191362643911661547791734814377291267537849790953976988893045159095824718569552689033921017120056867558887230308130551576771656965233803642166358240745101574976432005442850165963682674868536330427706665319787126380170050328840464739201868215788733413280313183572811198970584187019860696661761600748849650426889249614324196700829716878629719357430109817270694307963660274614401044857317265097294940829217665817060006174837311647664993976198275950837135136140313671773870752235120446286886097748957906245768276137643534640413043952676572362056070378437845704059454844976243814660811843282192200993744112259093540695346076802358083706458905941990808913936069353477111719455240821212137199706271971544885569970148822810103532305970774557340754285273688946328020533531454725686450856800250629064012632767277339610505295614636171983991483021368763856290137467441681639080070464798316941818191069621069177555248136083561354714508931084172334987319501759675457795690662605778214654131488707916702538542538647474353150953250379859367848488925496460079099960829597762049363923435882355099709136071682744949027314090957506049782532228253994566396669507556839097577167384256432972947613639207725006246943585358172311606958508073908937510613856294313270492851339963593432844344174276592580889864700568264976859722951653240496263700514024514329466594701741336366375973783315988337025471676507947383948667858223694658811280039326337855477607886072873609312846104898571879987104083822290078908883362228212139215570624241581250528617163454031968888480628487597048542459601706510512403153204165960027461031723799445685575155713728983432463708623318369963321486796139275453042191601740609766732682315552125286860251546906145123136654458070158972044739637614410250688182872559100783267797328558495724881340775774523462232039824599820428641089746373336127638195726544448178726345710456829418010087208586581148199387207010922830845290345700042190572067010881759314084281352653342961941972259217408301800400275967341525153606314149956320492403032726194909873380168255214176222480259025591500121558390844603724106136205376515939250664123718853868334500061082296289754279608881561931074479626329132738493193693171761453337895724915013114186937005784411434062586869780383335495016100480899088929826724682080044208542865502152450176393305624927749428366674733937665791741511783622926463032693998609094284523396145230411352741059501044619768828511667830386124235833562883000595470771588819928675190940441605906763783493200256770051206412204190059502405821215578129739797418402058323006156462201229207808891627359690549877675246406322976332732756696694222442908106902085812111195002121444687899547575199211697451890165061730321708440550521106100490849236657379019520553161716278816634983516033099034391752237596089526232772218174297116762706613241706159437759427206748986146611337353880855550086319381749998325481710387700621799363306566448284316837902308308588752315305185857463806059842931134897166288798190050155119927733871016860328747661785261885923424391431972744866404971714603865530463342133921297278086646299033567355518181763164207050062715371911041354987244235960756107200905512963505111613918625328678505392142388242093031100108501275176080933714657748585189388447524515307166242878949716368955143644476057458596966343297267740838094089331475478988244697073176655625816771415035536728599647452329818916024067980007271465146960916058306898976088182939226017661175404255282546512500356811512655626132869432150596334195452130778564220409883747071267652014666013645259962983045511024108786780515309270596258234853360807490842652945017067626240570473939120228450453611896464994030583843657899883723496713087573893487496312944700125926571868727285936423796177063964325521780551600474737060682635095241270514461097046538276338638088465536311128422213116148806065627733700563694535356750970800605961600070288541520462090388522340665634358546933090843178603632180767185305604425357257218527520791931354795211156724330782798911310553449444615965328888034799911814199881834337156846091001866161486057314578504691407448616835368203730682601010963229156772740241191799619885017099886039922201550351064844872041902699311629582648504419410077447924926348048372221647919748661122929124653761332654189342947018754565862857285486901493525264914827774994455901490247112700984094537802661384306108861713677533985958756003544911724617249117417782462937151396697122022971570414561865005590810623587811061735425225601620449766422566963204244802612597756294509081337351569937522286931840189403056195464440173416771214929757649653155853943489861510422275050669918724805703911045736064333589697953566022539304129007804483486125427247914596043381621699333526649474744875659390567619354834649912553465643178698903721315328087803174205086893672103864218359384420812514003774971199173733140587163272377688358766000549572346486552919460477430001004276264006185216834622586700513438554727690567947003264718680509832412221207249480589234283001800605242408579238720837063389562102007525949746100357168649192776676514120623323937365272176388386653414995993783547101338566800982396820064232948922444657132654582050336441671426140009932751918828242939623314626654857503414949592164761878997332687966100541859944369382002540936490747873591238155050256922284624854445257996963097604219002841512996714067147230956017682575575857934900541744729110700083846516341897015909975980482652840936384101200269748680666605267099682257793444871997796952558080976451709570757109375334938122614391333779032983404014066066113689967741906115925556035305680386161183898615076152308058372140436040695389162886767167123556189441219866342681744722058815346641763527658491442520640173074211352906499684141608718154351037156518386826157141963363407244424351864183381199811311450785433851519209562811201768249246721437058180833645939721216518995634684217169548513117107394670636655325666344707209306423695060485462806564250840517060034194248932243378455783427195941682081204961041600927625757577302619144662443365220908478395983542742729681091853316710144672936223731666813868856892070640886478738734604212774355863269208516852032085677671591772341830563732680984488287082558351601274879802747873182427973137703566132700161777607727460049914132447365154695628452577151783423076880068135008062739550655120701687733755962818701050822961444687320531399283711912826808020276121003439714927066299001778695717843190487803336594726749505025525476987241156463466354416061446211381881401745473722448093908873108640656771929221066833912248847963977228144436590989441871798843978348563748390059281492717563555510349966824264859754841024052282374055719028617777134725627910421250175898389905315733745466992592448328000316176903100149100906583442704278261410263085505294495271027992096338630280070504859216016285511654858483654420717546731457010745633174863643927784154261021232291596246917082400077652941524347124020705667154356637075574462401490727240967682686361143764495050989335474596988608150687245711308177470511946873871073016800801643640224888621429738581611729572846217527403813418755638908322914797671354092021742767187497601796511818074997807275989093912035286177139783017735269042109568939967380720018710084505361279199153493641704466119219434788311820619102789613038012502703315866852237309607295379820493586711599707570920342723468064797246558604493304949671560078665385235151910252076174285064927884172593034334235592435918256754207916799671327784300805117066721815090716518518391093765071281508022786178042715748464495354183874391592597722502876931004139817607398238600086960583534995655313464261410004765173301703070904662712636406296969961619694086825523710813479484527499413006296765088787208915477931833732416102214002470522654274469380589266137739855883121506582988155492265380049425734001763174832421797549731633015301234602171966539029931109694852047951694941535111257677481685193123350924329723230591306185956230154738395911944012118352423142825235445573717414249478140838238236769417559873407882251987291926334345515018803653842534111231122140920590021638614790534061405157304502364606078213188654530578511420817016407337826475581673560382257742602756443754038628773783094609641853856768275176238905461792149060663160942278265814242494629224892566359400597167663829790402962313658799477516168822147402811292123731204115168971219408893025401482167448989199157406603034364173514142701500107745594223176480819947262414713510035944307086712915821150966061028421853569162328787262461185064054124551453882041716753774768718384138923644443147929304075730296408013898120138366596348723207249828212742279786192859854156929922887906093309470082720369090382382017861471701498494190968501401275334602033159751226527044560116949976360648168840713809313394938203615438134237380199880979087264992305771459049386441526364328457566183921329094259891183642471307511214518013086243883018860790138519175860449424976390011451807801416571306180742961897830643206932469924768509546438547403200111682270410407039812235368334039485104995678191975703398348659126026720408507683379304606569380220651477866221654801990503957238800395494872140974207255119565338870270417674952354798398659833908822091359424774618658427134121455318080313497785280764048320295117891756591356505575954482452967661057330368317710622104156996492809842920805150620727654370859295967787375212289680311542895996201969518642511902199931776215436016560252883485094363637437255636419546979722365655006531253378988601112738582557838084364187697347990579081297569134658408985702257226479959059852908852986627182850409465008505438101997609214950469602935598294372669598738503274638865603531868891901188469197976270095350051110237318854891549686247999323792032806251423936079365860414041987401652954526954030074029776670964095644454848566963726518316946460304946307198567417656780080068648829561958756673835777326304078043976764896709968777520848331253009378235636300521297149947821088925460630196288769356742547178643004409846186736042247863834068516349368785416480426599786595737344565975922551090610554154016836113934961096055143358022910361897216957467106280631721494851172003389299859753917230217001458961426495395252556191888866152292107823271187905600804048757095260000267638751429268338566679585267237599655126585922324767138628378156117827081310205004946226640717713698078473239215791350347297291382233420914823375125496277292499721191794750126327503153473039979471888721267496429771445938660642646229506882295400282832055285337481828052957027259715241595106910378244007484843822045436002500426971160178422412352074560791893772436572976828165829046810774133272387985362036166940739909331661208064180768901098597671195263289615766221193698804494621313495416343709838508124227730176706838826708174268955730751238527151070353716604264596844873451873655418486459683021223313533362411194779082151862385195030869049303690879045061977758905986963501132813181476189511193785720961666183586871011834012716914760934317853419368192438866085200694861062375497623393639390614330246900911354836240721258209503291986970890507286151879591345932826855371295505581713367216776870787780472381930097390452114895314476438300216327379860134016136514782024458062669486399631046813100407300937192696157658715198621934572293260770734509599354589181120274073371246576976871828951632897731737501448796713574229370076462543816848372337072838938765474308072872344101692353554272676726719465829316436667721870381414656718352041313640733704135867182161491099061407464424263387034629368941057583987983367066159635748277161992092669594174292059043783292744465801919119655621797280840797190864487564871830961435661251869793592686436858128656716545907306958380597080696025194946285337233791170602838532258885673868003522787750081604177279974443811232524594476229921953697123732599182066852577563670147727066132732731723017910746662408412072118239767382297626502612593891661096724340681632581335618173392852495941431973924785662152435393229792085882602863810818012381540433018687060647256537914960988335429612592158977365885747961858381215680689771867987373905062382381052348828217714852670983303239922527359135280369453514259373765935013381958203449904781052636518686185102815700835308580221232338623685886359862499271949873046833190505716943326267311382892617952958015735631410084883114280533173210841899316283257224661149795817546523881983799883047620074847053386547985654966155898496470711640684249668627746698658869986391736846615965188547851820214693502201085649039929517460816385107548139581904277952778725009154620658083859790004893879507148935363372460556196334082241924061317077136171939445253485893201622729472177969954134458711849370760731246842253899625126235463122814781967925186367318315110342387350975708751720648992314466221221426229480273101067370622381129697860189677759833449071968303397524474681313768519845543474512316894727594352311511213488946416088037372287645031895465069189609518872652614981458614594144466883181931977310111996469776471726632565177050219495727315748381909757285688683919117738049565408205713171710564186393117495386192761318651055377357108191002388366454057030367384477203599835589696151983584506766402383330626246964796562217581926029774698828749390323288355006937593859804628288136207293350898925431602443172365756674303035027422122802295587683308687422903531454231129673360301504743351265513220806906239000774662748322119009504675320341784102578622445920572150595919468274676199801210947051546817194013945481893616585946278042305113509812930993648979501362513095910975076519894963581153988305017020854255885178742380177045712505654093798055513619566272193845308949667243139477235321159297381176296409249044669351501727178899973519844257350841256884274250058445700933276070371338671291476531833835661867561840612691164406795782072021819935980012307545793713562277270557191965804771554601231311147445518100853312351725582488529652703372954035220743016151296384709183474718522378324330470133567019665370496448451351273471801235842496130525888187007154028129808183978265845061972026526121222017058369091582937266766071287433385347594715754402821401940969124371361405707528596623027967643560634454538520859364433023362378306876745696637661656238560383920926720971742363639125007311078578595276539605257913985268726557460950013118342466689658573150689098155162421520677567562413652019859250326413104144366030697067555160593979393834919119861896203249297783940267256719763101928480669245130000030928219949518770241496751279520793463010390942116456377464691098450805566889691069727295995839319844374076757924903110427838460126092103181227224539268237841618531610967411518835523712356571068052787506407325611508609134475947688137050947029395647048566692615195445420763173653362567397378597252656228223015797030922870333399331071080257846018863283505782901117671377489834894325603096239918574075040012234736669198693923614076502220615140491049772451763487226689559027866773774345517802226614687175296857264108038097573563024167505386994446135703318382093600378744028197121588749469509232602134665551056243769982184963278996112162423435620438308910903007439622286835525823549279688094611974900606529334813292706650031668479237332692767439839338193157609543056290746974619734204163010998035281381609952566029080538250963407134756177882441351831448721109228785540707970777088221455707396926608379875774262717683238151979017368122917817339646917665092473157321450265467204159114211433131822388907644726228787785627397234896017371902971526587680852996412366825200547251608009048528135095204463911905004847210387017856810698803019283022970287980061286997671008287733386322482460485477717401599423556572911736003425365604876906523006839347802060918801990974858451701225512977380779467185813027138212310708001960156449226281700039878495877501436759669348552307261787732317813853478111170799178039686424328774769199322433154995094882454091623994146216837012080090988966088720901027912400481351767747851091507529748596681562458188617657736971133418392121451128219988179167946604097027339618288593596971371033848520919711901660880995953314971571136635091518995546790664400378322678081504098793452695221737925542117649323498905591015501589904608567817800162190680882281823441211805910340209113560332595970054700657629497583398410066158331165685717722868154977378626757299167009925565544283645531096774611870635504865296175846287842974586254563370073714163746145325098029628100469736302559677368410132228342353840997919885444183220408481001993497013963877014770583457717628742430361382384040368224351268302184043133103242060257234747316714661016455440705444752127000021221531202806712754448940062419855585440325290799241352737772515145232641582581912179425134949555504960535362079107084209181856362899122108045338187220321502099697585482979122314078350014798416263858662618602274614946559553209101217570197833305973637845289532082326543490464356714354752307108221176506657127091231007283656837730271453312068522200381764615673001028108234219528627524691330654362332226844165732782026215217976175876337124031462953019458471847918340514476318766519637894048518438235762189182183561492236446873745811282116777181339488144051119210360993342395414454575992614244260591578489930285797856790704143098568298582953034260283831357246207614848191204749030421475663656793234244286635575402938241480483441945443541601244490243341788191933647476035746985971777242175433834320683584880220400818074837483743352754592535981535554925918461583400808609326178127004395555279139824073972926137126650944390864420446312060317270235186355346683095580881969234784033932309481777996857241689733222169721450215436805375426889674704202972174673084449483467242912184246424753995558979533680129399465858085407412078512321656874464484559604478528256869140697317383081920907832031334012660408809863937868438818321090184009915053264201494336761930390170174326676941917287770079825906546314294781412827663742972690870351014829785584304597256400339401402072177394290264460822070634056721912384040203727669342518963774449994379561091838940051207264302365184369506861681827167254574382851566969685576612470683669059977918339778904321210674310811158062651426203406526523401289874702500308374416697147842675983190339617333171090017003240079028655556431195664108305053599053124085241012756415469702568036135797364954388673954908569687048880167861790720072581543905475576037325976352567613054970114000876555530714819112418878053267038789787964097269249775793883833987416188505819038195955860680908847124376457418673664980085874538333370689504134665143641099736499122154228702501347863540035224780020683452141746037627103586792272815560357874327258690834640157510504858274018122379963442645455646491541732073245556042241553594130981815199960520351864175801269771367421230980780632875530764935653953688940871186357904799512066145762145218292286578931472116698402837963136787419471929919274474375549778910184842906629643634224686296628346304589725276963507964566479538139615656666463356106504870643427767892777254506903290643192791603604346635199658804712701113852957870871048191937636084647613729432285826270713640777650557382982244216392387851000820920860918334040902588087708388178402118395274913583570610771725138141708506815210381149666109123884727293220878814550244229630922556466220611037439548493580506911312202324806424164543957806773178311988198060337639254460224790179250478779915306811115857952664408740917283222043604953111288724610637193415771146496084602908455633306921202713555852909726837222194596586161416080656176069493433217447845180473577013771086247089497732347409066241167756912298997648557650548070261136103444827655566719382697114557110940310614292757758217910395004452739122143813969998757723857040566571037101178596919610181610095170717693310964311004171515592385831586695111556568271369687950793946160765047933184655274638958054480071256454518845818314933131093821767514690928546631450087096583920864722306773347648395553256003841704690691371735298727743065732878296433396811967790173289695446669623027583769652816090616803065622826936681675236421568279081988327895618825615182698315391459150650623355649998740803714327850099049084280917120728694518021718591688113791605736348102861342233020069169728647949292904121057208805819326343783154576807520315853589216591494404693347393326163000755694593048975221080941976212751597226430682803172852735538996494994079762829681115445633819589417695617467369480682878328439405027360082627997339782974955226019850100648787223413512833816806885124886258383964828661354201496436881766251548434186295968136965480604933668832464936316872386317708741254222923340507656536445984446541133903940467739731827982142002523171181177153532311431953189131162862597644607317933957752261100643313498712998652484719820915940739659665253411631624578071475321824713909717543550725281522118633723201923254484235555995606883598977259490835535365718551878382956441543043865773435764050161687665742335488871830189425925959404103184763149208947627246707047157640858775814815687641167458865637534709496115964320203082679591458066644478938730321038501525964523713559315171675433064161438932780735063916601146911345824979254487738008472809627127258920517595985914510843937340782321718555506808279745259390371615618849166455399222713171695518377694110021282578160899830275576709794842154574027123066703798190180640138178660309182595651575208863579244331925735523708231311908609630721258750785698532156271429466592227074221167581756014169589607742925163521348561979100780809104721722292961918732327621184783820516341640761556983926597269181109215227726817254830374422299315344082954546938912445710157877430276147147607312721704024575254496579734045051228865575410536472497719308485202841924053350421697353823280425587092801965650298458714480283933465535850902767986603967860984952587860987932400090614860692708206998944962788428300922257432245520618959587644555069447068641852591019438238662816622551416308923285361294651243380803758044171633326644351073064837917968150237590107772659531810922806649935927753626834921493785168673560359947601223942941313310864929305119152440504146470952318588268504498361845689061929604298674565288775209357017771267120587043928887984148627197287516272775424832736944570341580474239052505524900903753035563213472102116259770890655926557405995513040578688779895456955881761467050669749859867746006063181516842334720907929115036953827960889589987169897789612312117532274809387100168847984248697560388450308635002295227846968798171352465411958059404187604460881063218584017823206011599957096816681740649124666936996793750861481830863436829297326856528334639259652395466605225159266469511593262523747587968542326518051888675597432207961625561394638364079965576798393423240440657410338036110233261336666710571596479021618682307750973694988945046680138941781655919667250416029290473422680813841641871020039738101726929443859617053885136533264755844782338374923500256765787805896659539837799280527396640462664377036383115260886225708801742903475688806318551943060188838558678507805022631940298363500764920564428828754316502573540707192243579376599177563703728280222038604432676468487629482343515474084650255609457309775608423719273110700637442809664370289524518680634981780276130769082638523057540621168620302828380396222488004113671551716543672728899050488053534407220476415825574061565313285133894551758213809404267551748841893499007052556076583848575781644556088425101306684949114254757552485638462354335214996310170882862638538956279334231639578622432202655879657500493410964676308529433957399274478864031930117976585939888469180235513693191031486602306881692051763106243361707512901334565325422735992913853435312254336902136990956784732101452766708533284748552799884785754608967413193413846570992721599541932933208267590407284368834781116303433183104329890908731350979470008556951043941050963698017569613582399830059050153334943367760423201755379380099598063379609160735247528451474627101971935763244422812851043029645997285298314312782612752128889495024952000813933909906052764319601988405724355977025596646649837605500385310543718608059796200624293987174391262787853849536706950565769914306744192345194279584943548325208151318549442326596034741065310505499591391821762673389098657249666818738626398557921947914761004831844888329147239572538471084813071217797959991350155854862146481278646034488070612447244877517555129083705527800238002642005381727501000841781006657938232825376964315643698246219723286435665282773957456371281531165995413434179083906255679293507976603166408231109255194011619720432302660306443684841062459937226677103635907060449274804819550750714080350618970059486337087011093704547605221773241981086201627539520653348310451340799009710951213987408814501080875698032637968026338848427988385025760735918182462755402607358751578002425853310091658508492058821621041221991011597217342449397068763638353329669449215569286174638394686690757863819964103274916755300394661388850114544262454549509663890191883669434124891760493887392658041754108235221488375112762036194570629624196339855713909152331152715264565976321659312231955462842730021436789270308538423537938296614757366788734106950658172974996472134520062274893230424725224854956228316069477914575663719922062322139790541150281379521492337699079589590320378811807879885767392419622555828878037074943928648915667078453162364941863622541522079008186034281082685429832919096142688411946700219317186207321035342244572852872613174385063124284166415711858223676728223350210180494732564075953598695821961186075737430498808944064735739904164516590825256961403551452057369683673838275095873615133242712928150218493668035395209342380617517928390628450530474501418306248175099588426168183977972222733379144373036742363871530770468011015770179483714991604660493685074148719803504714119543114717286112699322434918637176830679539551544724695318520268737990005354046198840644079805091558332838468761740416697817336289907558818558016266313286543169812869978413003314646346476751877233209566350005635393164334463143614705350991055925606886704898930384288034589029877457228383991661886386086029078714864116154470035159406035844977918532742620540298327497130837212580753857397338618034024926323513501325261127870746235664146618354541597109475024851141862941997645788973146500009541226629492266359757433538709276692954069385796701343520459891043827424011886273803578028765269729151262970575662275781266219358368187111853516843566354771428838887681380138971213022807239812849049163836499251407738522701662750890354120343067756214745801121263360643840083444634587067244558988077665091410363603712994764398552635277978933384936420996625074233932061887186231157670269535749925912420787278884533028452991901977897679913450929787214382860427694702577618610017367871241886108148443983752996356382608935819291872132036550619382274452514120326767373098349504235095177375154720634191909537285297140156559651898833099493983012520497393654199172469805233046789686822625819426638311192524058101748360853943570058973739492467923372727533512310413157771278223352674711445490558200896466679132921981566578720454304339219605524913423023463292582177727623813966391243417463636443927768601376508298880446423270888829163353170846868039262310127107015634621008177363368840344212031663357539324177870707693098869534155552596819462607895768901247132494774225107583839288458411485565888766518630033732236076833679211216004156699266492066973563541408537951496668628852287933278435381271278196648062742851507905939969126546982712460488093314449690002314056387964072148206607325850691201827920713563473049510900444060797768208401848555729913737891615622014008606804512513020087428320676424885492757329507699731103510629618458620418628233400567018926240633505731244115627726412555049536125023988133059265365468303274714449990382261609188753366931144149841368672738610895714251632435676489441707900640941153789563992011762025356049401268038954854715674084830557426512652926610742818663259863704987005856322768065148839732003933205153198779576275729971608313109013423190040363796937175900619173986970014444179701354619682714003888370374535407580560235907570351948350142816169665013561149616065392623698657129441661651052058196497225018430480204712468681695360683621873860994963622992519251006357301559745978433425158193394515409825516000558752838240480256794011780288072931788236458577221760221197670611626964680839881705612908857394154306967491874929304328060668968763124163856777311572694308304018618048995795720721136653134760395955848690094444178929839365440855979101993268408567272343662734856646479600737589942200595202390126003804530402293713115210669317500883307131631241187148579566307679121091804704902401839197428102578616241206486968926037161740014850553259491572801917241868556006957454377927594592723001998347794871207287359765699445820877846420936780906826269345703927475538748339734220441631564974318201190549063397567986470070713910318236094783145720254051727026983476155292786119203602422328206631752114736950757194290540034093863200969877173518667854567667624610762663601576065254981396554712095371502713859169793714200452848860490567293139113539777772442397938788318585554133346807297994276345128870626957219111209707102088096811037089686648138736319744361731737567050110340067770541455445922866119380086425313892908947944579064258287754126338512590868931106109561879891046561782503045148097967084725858461631815348476394845224659270778012296139226598700841545605607873987001402933652817601426341039300681472331534487360153489621540719645033966714016778578714414518798176931201483313622251107067747018087943004196203918993736601415348675186766204057228986208676129143817996127750036718419403249054919149459719203122155875385998759759477558625121801516493342353298237823998383640119351318898498949436001076100798739176082615584515672887176127953383973317484715692438900678103407000103296412857194338211823851174283024388479193903246800639369185410843512845482774231554525869128920680406670608282870027464180940008400331277745174166162398719533757900970472514306626370936337342475705642319786814706912470672831485887204510599412219398587148101155245270287552958328806207037293252341528446524142830596943437180002812401506237612130993552983462918184022285909197877525450177961618483975370854239031428982041283379728365753704246463187758519876480395231334295031352091016849043807890313005528691581143835917992121471007543671118779093043064778816319762550490761363217904528851461140768823205252596900691683361290323200409447393746892739821023979992055977253135380734535345961286351184582500755030434238974847777650028339230563605534932532734506396143036980517316395391706577643715424082856414992129637645383034921504761925804949132211619529851282556326997057930718667197358966058168488147158493347395329127930857390373803499713866796726047710847650619437171602892935637615898397798035506773947065807542452681078155425555902607399389790900986282099581105036540497042080064222910457055417175744670487903188911314927649966883600072703335768229764214229503131784991005356318086846165820000221784498137466261431749684483247618551455602030729122843946528762040475968090700701996761867960011979062004012223963577735776346461485318597762308495985993191060356078951620151240767741137996786082365951228685762286182088383238503798848249855528816290048219481460909822441065745233757293890604964034600601583973475871780501053152390019399893713763037371123086699223783414859446603628149884769791990362670378947910201358042850388421349088010725343589693568776330992975663006896167603009487071922674333227657249331242922461552367515359102050081981461487407730936338023414658842494234177794697085182970677814039084952061329945735033500258553586107864733415460643456680574039240254511502795619680392114598375799052530285911609430346266052395585695081698334187394518015492699972307672223991178163696776333838044639917962603489614232921048239036502853051601742055765249243238011807771733709369061387902837287371419242572771270121325110452627212099257598968921330466690565456399587412350253001176045223779462081116480243640163738539323297502340819260462286526221340003190664617954494608435510427849709116687977671458614768332793034952926612355998776723788666775346103625533851539415083230808119222268243013612638925424940828933255658012127305547978988295469152341411201151476474362505220337449578701591218043903176021837007121787850399782871741904163970356673053356401984118502475231086002636486910763401864066489218437528854418791663620507716422827248501739676655312959461756026129772939625923974356939214782675937604589220654527551011181621014219870455336979260201056223072453404417999976151315896129135946046339613386570572300835618325875160280135164073608326251250954518448253672902691799241462602119116281877166631827160869206456249866892354478770572225829480431416149354380858320685228328756931574107147323779139331268758817396334819063447458094700489376036306463311153728931006603926317918366718739362140331444568310717898409181515136651827903369545330749596650277253696257674630195096138453232890194372667814832038884901705729203168045608563772561217185544915327792226857624161271375552602289553627467038223603607987314484835730440955392171164710121751843786387914936830484347433040929610025262919479386065754909126750717425205230286052688628419184341371356566622264010894438885839199833051177368057266877432999858118512956494504280646878281283193609322088080888098590306495980996082663086287534137158456737543265217180175950114351637698342968506830569141923681933212921720574548039788027055614645035067275908408663036427467802194155514620620347195753048863023554647636776324779802192510248931297215186171548940749593828311933357935530185829119871680478923822707976533901965508330769698766750675802987195255127394410832007099230760223118435613650523103767505160367729058408630092422724334214652104826296216245553124920844556472212588523450806082548528109099960271691001201553110999969160806696751564974119871217051796077103728799270369533195228273507136859220736573717654521948294421518772140796887532882895493138919853133679421273788703221024426936923705979089358722019843449295908987361772462049836648700547364733501778331348480726109398057318995924930442810269690639710438309863623604563033196937473842368420768138799471173329859853201692016193298119029534238637531457382740964088405509730354098538188826107843317072984898921529272025572572221857329435198426180702198152837001399993514992728981860033430603585987557275794753455782962621704236661938943254927762190684003927347735421544302871245832918428679056800936237708956118402473923129278136937272010516189205194303985085509561037713914655273285745408370079075990991114871833139213940767639890552252332095496389254288093846636348933739629852140465554962802908935102663097410980141886133134910687292483083427366347459682773040723366306493187706533353757537872053364644374851776874219068881169565948384496580141465760618527941397571736214305863968376979380023170647260236084279641637438259777202020925862188456547423634501654475022924364255057488916041682327676871756765901901355176531744746353234250428031594873666227257756043251133707088824281789582280840502694927121705777770902656733374820665373437295854780927242996907641904142408843352162404639975253933599651698758756090392780545447879968292483870520186404892854727581260464196764769887856591607752064430151197309353548021416189562846053992689312353456725226394847260726712033902826435861859969740753522233386363218788148802454108299429569996419293834471184174504354261999379473303835271414490921004869606624011675562607786110152741748052283068210395232750957631551655202831895921227760559669035262137221703238531137972625870295796763721410546203603514003736912369713101466410159889261626406806813617772062693555303250268027078438484876067762280127845570934118954327838392538215093886997300260590132243376843211009462086240935991978027401079083176631711144271217954502586965404590061660790893451157809058311098155275247305355990417816329605232508527944775682925019286077336997681418502721211784445520193444074199023875763176563074928957836918425926048770883191054117361267482441144265408719006504578655321201972784469728979392244099920691131405231651263449823777359977159793093627142618527521315913067393911989107625206378633995527544815490086254352581062933189934371123934341375115332427149801054244297143825793292771407488348014023388090314072412071608493747017428117962609662882828676718451797730078756714986074396448693222726712667575403475801865828608311576658606231147351707036977969943923238701235334482840365040998710284023236031808137123422527858442763292582090578538108716190115885919638160730464805449512015306325600516211630192829045366209805577364609384036404736330425478363329552430285642709744025924660648150594519682582480971590971378025516934401199124134971896931690973950753257978704874852912514144004766270537904251323752515906819852505277318944716610060023038087400360419223082237569006357361629764188023738569812628255250290385547916531707585951515937801358959319044541677165746577571381974424141940113908072214676046553057095647520144873215498012108523711986482199855628927402439412194647954084177267146817231399001744111895321612847301668407255056496165812997149201876825132963649345416714950569312530638657153721560456107697804571250465086518462281733296584693766856027399044660608467164338443435402722742046587208164443507893679997645591961704721906045910298499515058969533970158009313229582334118116662880929496307842639593527701326794755502175877708787499062526157090682934532602432497592303165899256016844766545436025085967976317960592223939215201000123707354251808812156808853948104072671493266437768209647282756521016731872498849909772647056297125702806543678952869114917560448771945145574023693793765516547405376875239124885093977224715393778302979642912432842847013341502474888521470837552750225249543172356168150480582634998508336560745353365266263571767582190761364027852610999438149116314499583828693525408475162394418199007619843609507552805029727442806766546019191927837394774720407003241480864176389137006775667345245259184896098140987780809554378642775713300732656693827601902150928299069017990256048269252131448443712234400699058191438763783257990217369298278974595127892489227140746897593984676350814774343644326704177197084176995559001596482639306046645490533738849813041110545479308781254872190359271613907520472087006849479363729301452471924562942063417872058078290650835249955863138097451283657901994358412234258097439995889499856543925181836805301611225914252932818127448457204453401745139508465099308589497339243059610008756380383482689665899230152067213757419648228485410614618196290275191689040218904407938177686060294108276440407629086315290823568207026203784564710915307220561930374868458966066231926616069459615719848295607030837671680297665073280825516009064678368634192201574842043959573627350631167397256602514945740669082021216493659607092294296545705347793493787964654168609768749438276427364412179832841234735028396814226546485110240271459343230217703211341124182352587023877986326186432330427795389263756732413428403563547271259543843549307052556403626200885903192822015408510264048456701416213214324022519390238495042399583949408481805370773340748783755293208645873850665493528065230239988358582488679205835389135867376766988138024719162329915837934640729212211365591622486532273120530556909286288275375774957124766680787200240090958273354491416203668995395224642769562451405022698219354291879725687249938884724512792027190096468409958493971776948524334828615953903588890096348370305577038686522629109162979043635160931694401897251044138752012714428621249236533853307655294664303412607839273173487000432178978731526385307859418114737572813203637821148189673506346273396960467641376056534620837512763275571328046726292023575725474218341517583640923320271315759172462337207218851140134294828125528533657320098351296693379937134545987227537407130854153293771547233234151260430200097621654865878214082621957839918224428947357828776736289988264949997800879203758142175571113333143984535627264210562299317140541697414616272058501830899615104509798287288685568682157014287334966756436415382688175537765219642803922610339875879904418263171101749662725442206816645798522870284240468558987659663074560770687558420229652554089645579170008931202153307251732914535203437391664944197516277233270256811536905320602242550379705759214919984020972302726214783800416331452959260648341490503477121805613511856537021181925492672052085162112416524164202310641843401586994901506384096456562684239263646806467325835178646640495323470128299879116924640496353439825382818421495722141867310412544340655919569415794897644835061530444559501465837907639435244742393458517260636226802583810206987585735978416756450119646596002013687606591385270779270318167595753591855500033000057840650434344590498139010255955696135900710010466815891617001451361383501346844595991429384266238480194566429699998128522795021809107053051629769044756739484090187095372659537130440439738903598803166123078520064898035407389189101346926260784407401352442291946959747281617442492000668074614050254881536975314966265691900447124202359986337592428113529226082762315438296543616189848399528965869854075797881437910729266610350931588607203192758012656066671831706578696879105337069897811210031523041583969083974052592732237173279604069543338513300472658507670702258150924391893891763969302409496052484867379512593326791864924513655909591899714726020903535776697415492574327981878845273577314388771040568400228438925915646334713752479622514935673121618326335076797282001536890715157584670074310702445248708846743186038801081402878965156994024477309806967782669853767612056471734142850298215203485127207467749702448421946481832898554626939706810901003614387090125784191586107712232266038488810679522682826661095571014380850170334234939777578322971159001283457352155827867785689281760598740749889460124698050421587382793101681489839078237281189084030575360751816862707480825933781430114270350157399236909739764447500659555594103754168958573258193476322475366232078055931878213343198708901318811828568029115579637066217858382703675074490163554472022170054179230781725932209442026700418548761721486810533839037511830518639893900315273545174827636935415374380473639808706071204061510800040180577835967391665037734802204668305917246048609850760951617688545621804881430175870951796870219587232892888914029042932895293195806733480481748650783353401163466342621342195228961168179022364542882132797866865383342698214791977224017242592869523961112448720514468128353636073914509476796975681323271040009389451280291111348725916219787183329945538635012581141486245256498323992186974128014154238023301590118967593463068595542725491081476384046231466746916112250374138303175385544708484363770460975980321397016082148343603408457993559112242633056171972976269169215850641214964364795019452372146172992056082283240360277031317744753387366663379917015354430709818322135053058416476259281639129293945017744808096014549762719956152386510945345751952968711068340928002094653418452041198929592902299288950849027463233729951349017929672357294108974440933309234448150512558906876613586250367915136524716624783497426605082068247057852932289754901927646352686082670491581865331403227479611471393512195420549577768604330013765953301385366714495543193116192474717271597398999119399301514410795370772951437442405543859508069339824687657389773103587573961317785963575851397091621900814694357500994376487071080429918570853951866555251210422118480512585463545629879787136132030848721233232847274847672962459463688820778920063149275477244637463991773562908901552249205219058656368081674688730042764635649258156558729712452176394191720858313934173101858399270408281999149456279101028102754530544082851781324595139160662521854550017563661824393821849685727285696506719859355782809839694339363648591282492356335571308783291784129672278273318808969960638617923396667354404079109410751481041321956322486550544405887611935868293092977727857861429951676796716585260759607167806699618435768958370876887228338201792118283879990235362584590968743815714342513155329232922354644243291678953146003551020579687364234284726851177701608123328827466735752616705308220040266387674511119098402088314907887447144304456176890123070250222689712954282716908385994707441492132880917901547050384141925734728875317762271702019844576472160068035064760832593022793142296003926858178743709203050935136303561705515287661349120897656272925971441610609254574496286735194914103610757374894831927698796213976652636598574066296964845317620399265105550543112335533560192511112985135540996026201227889113401308162221205516016028424473239126384841273496693521324681774145661058220312321116364906375053053621581201754048631871729466071236521440456867687334200463974480406237908735007793717580136861281737655835087450717372946732834537622405354120699687372199842263811014781232703667710631110206082502412181114926478821708285597567553611247629135447496659792611342573685210171945661284483951457469339203725637067079790113762952725900474272558321587451512728078166089539256662677148995073077857045233218166676398361041157531116103333000857638904267500456704468021666274256847148380610587927635218870290759656039447624714893312279122104738092705793729008356539259403848320252855371617580193657082706354322752959842336937511673784296641839889308365029432151732764479563359877267896613628806729693857859353248469278816460600617423992316341580257759680211390246386731653756163578303441070474195333910980773071267006328674246302381635745034903916157955178809033890876249073171673763756564154403535402873622404232550907151811703550959369426824855344695078443154292229395059721554317183941933496419363433331140891030331496137312317521863547817356812268314070189124751987132116197978156772399729463836411088400477542138366019108466199188782104660036968200157421298864980586559141194932142833753346659800628596072947708151735483781903192046877361225612247653319220927350140036738236921008830827186643527626389470738648374552982188700635933611028680409525805740239912223522688845497337886321119365043056245805897515289975953181947983944051288444884021813554101597249091781815591476115683460011580381521408493289250496950874642426197756670130940373037882140853546996824246626904988342186637992307186278202311025108832807933458170216904356743440381452431807970473996194914777941378125388648681741946027578036738117849388398310043159304299213706998126437781357687329810248686155510327292982488961861850060018134781848813517068698668434947130107580341744439881322528756200679004544580140051468195064582634398698726743914645926568691197228526562041627427446578020110577864576391310957665462360311260988740887422230542702462873503181499918038201923497924899062067088389200286156499470607894415028499318381889589020722978813567558765769748639953295999508113819668480040121564104379296156333696469449048911049272600295359546397663949391881822125450184875564062500380752457581077890377713114622877804535030481067234615235449610651822988383334294633917367809469787720814964887097847157637272352139715563614688328169688981207774763721800825655896637320828549560074009930171488053877189157460291821177878531925016584504882427704586053646741469866001721993236608952121063461148381405431168040235185586836233886637264627884948955511114268002720465336196608927008751570477498574752961151078201990213434654700789819544132426852408004112140137858002214670688581256594807384644193241072432701422629315112026172189421290719977715138171476171119291240368661403890013497637386059888520458692803510084293320403853452974831346175896047213438735194960067270996075454376738552129033608288959563921785200034232626325678942060747698271952090164798304008442137666487775397598178082117552838085169337185207728526249290478736246933396571970911041834466871977107964207759974494415162273179494379941763619053314038185416132099547391901681436450837842689671810486485713466494282215358059628128108928556762707127163766384302430788674857657896422425610055970742969606614619841838485710088720711849419519519227879707020438570692486343517420984189688196068479248463597528373471279256665542816624734722509494031908599410683993022805087720665303782061077204203466418793256393749139164173404009749756855021896114869133839328369709418561162994834589459657432937554597169207105434754648953350011646860238904509228992941695093318256234105869970875674181736446428166520448461451978622044066290014092263434691825813437526448820653607892151243020636758601385317316333140689317474849960581337436055150394775985277303855348043363598700933368288499558081376265093743701664160924016998890670869933252206449900280205192415882103307022642706396270202614255728076122351895843837967782470853990446361730474741690221294063055737447332138116542662560175567010571894482395331303184799070874692235050038415732284622589827300682287483395035569969376405816427026142004090798405437064827437404652003557152557486204343481165586215255046953296773467714781905649215703376756335223480739364065008909204774490737917270325889679534620347964985431855731451210946644138285911951703782466318670252645648672588771481306951276252568181650322297484698852882580100625188295812305088674077734466128695144593986996405744160709330350935216008086518630414500014059174384257113980174447428946821597818127261904712803416343215340669497621062740817788349181479476539317646542754861227160315394648541478019027953579289510460906257400587983526218625853195930018741586658448921621721969315627334339212239708720990309576307006803290291510964254235849645390833399030250781458579483565827958732275462599612883439786732510275687430901013906793233445023729939342562688399933688230136087221927662527836914536759469758568585777056785612801653333188529596093759243898251240683795350164214519222644938244216406795124693857875530590057666599787262678443703956862424714800177989564149960589270958312030910102192489426985041668683562784854907610536000264762592261454029669665747006396348953783255383522368565921475113176255951189353307732991270738541742684919159776600530860083902902798951258575628081384606286016280574945341067155679168333804209811467532575703282294257721343852229056836023007208987656213768508912389507743609513935614932610605053479747912889020930110489009243790313002260186287244988799959102406472469541158789603911314686500580282193256602662567822262838032720592274998004549894662851372754967291106926511537982826782472560013846721033848747296869747107696864985156637889142440935233164317355316160095815626155527866101887696640189794888320596747427945406924780194656946950757127095915308441797708066093891729588038237091315798562774124503383397242330928719376772257672509398540237881120216744341443036163305948140500842086865735470086202394617975851570722537810056877089929984781896725901146763483970940953959485907821308540532805499970960746610015312725949558931676786777004713321263440558579948234134721035476127907664545663947329496677008900682931888381798799069907564749735061830281186574889625189024551317841467415692037167734012152509060214704551532259399156412874387860285023581857784158520730145792980542908183966981512532263040133750932457941795660297283962104249790812229206699070595493149565782984284805559829086477425631277019424605958609734004993041258582367960337210005518350726389074023635923803125914321664532948814528180924515623773192616872403511731247842390235684309008504388143372191994439508953518325923300556571447143020770964267382961862397722250757323768532141704783275224341568284262854999253063914300465035149735252274590995154754237239600195780324867591121800810206928531582156336535805360212048025819461980040263609472951797067435545633585889312927284194979494595366423791886793319238452146115056481790754969823257856500449478670976161738226264392127586966007972417574035168075383280551148958871335734306553854831133390352420678178384805816774825560999976081784435189215703584718165113770642676814304303969322786161149196819117163106608219487598170902199716123172964541172293015862515590223042419944343320385107766940203893339664518762108153037161372009419160466148117817898395303346328762688864994188049274669165977208796917618794033647373536196287952321664934861714797537267941408700019761145632472362247261458335677952914306578039071016098537773530422386826287842415084661848537209480210604055166178705853476394003685870047045907953683087792600552697664303451433151785396383333565176422537755070227563221733868696002771292590737928650471427595708433230955240961055805953874400321260533679109698601572238922051804197825122700589401927511289184490282638339942276294823929714476199779978615908813281745981362123253362225948609279451904105609134946435431870321904360523925699811101813418398084449976093123123446429446678228184150124614580981637449048783794773574546699041751774930193814483543476946563131416577094071381104468790988136339448886918894322214214332896480073396284963365875797028828763158586270100253425696011812329464529525510486359848612577774243410846482289291562912915993814322160611262687952819508433487249704030122829302076974412052527627870119427520017248664475303520933220571862932293359329419686641073827777958554065771060308949623623320749103698317346667303884241938153541204530286829513931495573634807106085307167749475101705696705466852218521428786558733238256399212617218561769924416148403273424947407228002501378458420759166939021980572798757497213323533611387383645226620490047581789279482243890170050205198640682717526821852251315134700649674191642849374997031760617632321693271393525216561762064434983619635373323235963191052111200110986013254234495963717825144565441131325573994888139509585600395804091350427447042967081106348998365469995908118372104252063699359680002182912949154330816687021147592744132050386901581810158853750205685695418937914651456288788479451474435344716260627751304661573690264590238421986475547928695711719398510291499987054728963966976078329968639857840325224499359098872748122942938838667524636072868217164815542706962662052797306358495533245437801150242935504793988066303456477050216849868865416004733698342571178756624073896493318843540537885640845760570168566383108288780307379533173108767445271645637391944438072102631903507620610368023577262017640124836154198074368490159224048097296518719269922444434181977770636217476003310886089960436656122744249507259080302559715776247887952997688939628896741996680058100953874897314372486507378847010502014752213804188918498939049542601856811526552900250613781942561521274957986491364384445197376498852289498695330832396409948876435309441198977878776907337789424744510145651085983138187206122219438311504233756288485012583968341023074788316382916912316737173297097880233264213577197222884782053043906446065826204794875615813381363012661118036370646600357522559355057226071292099725671876181867184719036871534027954104720804831934127974186764476572850777337769136066898407174228597874904532315224052004890498096148732399469829896093362550159242140429441735801755361586705790513670555820439032592547228170706011853732222293999797741079546942063713545383714270703552157096257253218213628089691268103784893885231726034945981441420298482871505191019232460843112541924147303074418754463870138868329494926663384281007565614975971194738139879143352757189570640151531916037242224606626778950388293046102388148748479476136597470785917313660572497783413605504476591600372096638970857307559683497445135389892528260254921714248088764065468884917697326852774292247817009769239468979065314551546901876902902436765301677259823854636238725479298934117582082200221663516873503777206312838889430083434838209359135284086398566325497289086679131042631185848712752513684140830119988220407925501849487237641942270214542566960390619133653641055037474325335543411492531483969268815346454991782019548246052489902552728219770684616374499217838054743487514790190590644395287213797520348968091078261913653023619319973534924458429722223485949410857333976275554935314290206901613189918016081037179050020518944195414754349797838722635274342613196633471990659065832596925800024549365909344269629584548436690413037228091062054634055798644400610214812861197072170693706352595377026312515028600144246276289447696671136522924541575505857244399176890431585763544872692795646929379189131102906462562784808290190571445137894148366498158321161716457804231593019258207953131041398898408966150658185477335908948105589775794470321671562607384662654978910898287739033927604434740029546166510346985507668605304749239747025075948752823318652347048913324767535939233062390812434109266488599995780267987821828030039441705620734629287999221850214091398831108986899732104019339918343631823172668020281776320516911458193624185771583209581484941197134914477184312712913788113729558468679612526549730534389563342692809508894394103336667589891897475433036518621866713463977270133079173140647863344541766549979452460642965577852929980248462122980551634567535312321884744057317153069630274860860277004071675140663044998265710716887660395507065347633372766799772006110648927185902487964984927538194016487012504500983081515171355638470936602629326261936739748247096930255239567834410440409256404743926134855989050648987752792091116645810077404493508667997087709936652815936387540185552839454743862624851348874698415802038018111063208749965522128019451025090345945387049491527878592669383577731129398906667653252308734301354214596680609753468429369579291030518581969852554186306093050221218971149786203347716681706844391459955462723238247345063616677847108685422266413052323592582355583065209857622012021706006836354196750926818084469083718982187416885891609890624766839929371748641256525062788982230178029273225040497905323990923623592708197820302241385785943061062135020254331394490095748299193567888376084859789689436673594935955872109349912097577621945944546571533779745300588883520496397240978608248915803801170787003707153419308625187254494520296366409823181270292091039183349600350239192324992448238770505633664253911261470689814776484715151865896425015425500888420930607796862458479097807323463479815682509609639251278221029288365979618667174721119023553537338262656184085086949201102923560002937489533444344308268875899877273624248400835478592057033583058444221889444291847650200479067047061831758503672260579459275970982563290245328125021779411247335118784574562694155478404013479612760553784949597506817201348557734814357545226016541344913277408426545128752903378258248694254946388246502843017339403303031525268729484520202823747074992369693871509463526080550654932358151135806315528943782200227748829645598704602198282234526967376319934126471482955901390519334596881997741552578382468326441130502983794615759304150446548705129404095234190695759678158873285240802023580564294962591195416344795573238012719117026576226962847744801777890823300047968292973427837973181122100684455035821925959930694115174741006218074215838554863375627522861626541571516096412252872754316387658898880874766163807809255766282215189231001128830881106700448028316687846811547241720959992440557065192282238722898906924147424341898551608075297096589286117261559942901180531245788834582281782324509829098997182356376663061984127342726481028299780173995006811076426615099877317827879378514927916456049591910577920897563583553951673371455394176838116490305347497384602636264786654658073124231288159744843502374282341364547114977622097286819916440695398745146741190955490597415408677298865167753623276130576978756985028875037578398778996372348877094580697375943609072623687259837026130875409257608673222308386972665858970486785925757587611182325816040081282317012988123912047835131252787807356952781093575362222572433140083327364828645287743369944774787342884388775902651421933828609501794102873991329014280570246066936744802737571597874988567079855746690214220910952302021306936547623139184372267855941106483639543534482235261987675714014165460003122029424620805433163454724254982465106484793331302173171637226291886849496274815764905036880345331504885191823747268665486166266656818966244652688431411591727174770578159423378439125999482186071278103290230700348628645329588750789444268098524193116767949882042183616357761400544545226586491867075409788804351798630474246778762581483501273177261204002514983675167432530817313339121605312002924104742483199429827863879977956310820541840915728226577755846598856958787857508919535299418469564960963193889142959590660428909471029528130996694905242678976941437561545069204078534705762458143051987790544204689845083772294204457833102665519108500591729647198140810140010688779497553259009661870093191005449681604637811219008448175025532207249163244838266982341498792240074317297132940742863524348502162765244581073901168750009740658424906738826317013734296278071854000585856939125963268189984994336334711177098576350908119064843873125777872020028233095972090077608710367769269024360191560929424749833404718337829678032880097906882481485913209886486048003936655849961397413325647562035313235784481554088849726108437389329954900712902860612786490735896064586182588401885539723581438090133333524453954272943211301972933504859037955027720223344197395626252338540304385539760727767694006906888916785903165035716446541639950029048471789490046061428634510134642216124285564441962566080856625467076902459077159909257065477629551761986058280668823647801991885478543055894296330256526086012921814236304601810347462682836582464304332819299203966055650229324223871181176103754155958131797885127607517711577926384390697065070783174167424783108892338576755897552307432262851958229393116110597652669383217644796566004377218924227752445972573921047612609216066621488584770491733770379403636851752438086698029246197161677641142249668695878682182159412543236345630468089556836590677905126012034840725700875269583542230414017674177748185641829812938256512171006670839050610335569348182240487046730215622962751654737869900023033899169680704526380893970677212697694749835261047201358116568227257641496163685617370410222611060602402744431406297504290345122596946014006609706367343217227991221562157810501331913122507031218036350672824219611021402950363377315772140885011134900954615860484995448164434675856546449669175573746316094780815652248773317990539176809996437881613572797623265855370422408759055966552797442413535101373586088150890262586912160580796005930422487566809254934470108361584334431877756834541560697694253124438893297144846851354724381330051633943387609267395040108998018877599096793726920277451964462043264571248320340082912624799389613350589160711769179260800888786309811709787978406862668759387609122914558810550457408414527989573518226038979415273016330418030812877556077499457010727581141565633218569489535756811807153742752171111429187929170512328068832513011320484445091748657810691894331638422747403429580098222426840077867285950925775132748365250763530442675668320892197335287088599842454335107749642468637301814208412451460526506280525702714551483923535435321109351459055760227404709929363666086063655198930680740258306380489879094299313558221387614802933187461086726079400819105570900383345129787416831678485786690096798465108688237823694625200568977508154018084230792052706715152662990867277077534535820055762808610001573342272306304004206432367081306036816467934284926297593061905150011574107210777109804693506232001769162014957778242289851476264203755331333262419970392796656436105378602204252942538523522478055859364900238240484196313661382780884316689084998544749013555125528463433782430280921722639314971015247280040903023375824627485376010431207355072283965932922670694509056174054547480860047085444576321920202594149160245473978312508048436531959099531608542604810109074794433328259317708520164990880608959886660975018378030102388112845611080192480267768064883149623274065102524421836946949442678348379078183279645306637336204028092383116988511842163536158904919531389890343044478988478882912938245676124707113196122356304929724074894913278311058188384679528762532638496251123244988203160430889750234428211141597613230747915760184446464745949165984441781288704074903922406853559085880736277494939656495626496424619147721256876032187304611619085289788588551283634314267908885237289442640180654571782154723703939044852449004116779088668206678121081507244708790616324681289073055856596033011857177550483035892688450138054826420957524862579551997959565389778005548347993204463112309031019890245315371472296081366845920889299617106672119650397083209834956658066797259296487686340171252271868085570224747361667003206570973310077874367538932090737194101481470981823611915210287856095788653072040326372409701930171525230255841512324133509417352235452157274996339447010602401892874264687302694398436482255224311406017730193440097278080169881040291744554885824188096064761402481114992043802824299926457228367983207070345900636454208553563759262447345708803610616000184976365109480866905529186553986656303391449093464816515815983951474900598268198838095397856558528248512101800938844156876193715496418362188204854993929211114597950804911601204665856923783935220594604991653485504501328024551113122170969258355112927119878344822559801947664641075155731261154048859538423140717167354500838846254681718357540607697304898240504402215203040901556417079484567763856287167488297188911881912589830756834669567639526785618017615705332953025550468879834450214563792245452823574793895349191308157461745776219638677220948379632821643628082847654613015900750806828234478978606284670308367561986930067925144928300460047774546616612252184282302821296185491988341042094851688375470994932437923469630823698702874763417207134216566052005507639185129184643857543514008601844344630844088742488892266711206710898157014199337637037670010415076213658417488942049569924619386866725089378222359949499945717794251826251026489912186218609701028783834062455672721690147448127575036462214264684351107763938584263793034560463350867303076574612431421109221205892442446479327725793212236056838716126485381382823004883854310487354079833180865067897159658367484190005042007778730014610980027898245596737166688001799409149309013173549600793973328144356685416456781021119290875910798353024793952812756701201676856512094676032580014018254657900217596907957090033766469555704563305700426481164276875799805230072092589814111935143554170780232844352552831479059093241168979214650890744755022829198806950286338057394283351978454557357028630225298437707503509214657254373605985053062179313211176133065506904909776175022588154229542694861264820973397375215717830540551486037433800588289919691854669412848223630051980891354979615079571311491744331901503134267468532685344837591226215514602580462490933834857686795139363656228470186330271740078246585827662145324196318771088269390906300360580188519419960188809402884479128067134146744759634510649004090308130944664587142472297505436211835428193554195579795725827690474332812473242813931924024884083867766368300430108603943749103969781453348792251035931199724453455522905302858475654307400637330891143589124732304394763597630978065828445892956971735157177392401570276330488296747625536124915986344850555195779504036627830993388297102452740179458196493252406198479179501930456965656761647022068959223348691692585316733687629245648948289086354908566213959934702118936214468770845983701087004103965639032321458263300933235480144688910691293385950776995849733307138460406100676975922049114498145070877795079504396243877565209203171080003309697053812773555984543646036326163768302904260891697777150440093420839711632865424527833713671515524684847131619904367249027611844490463346623851148968728563726214108986794736749765496816275605056964832459436381101831845530520782620509153686027892724546688456309784431780773496649336902607748773147378994513837638033653411472310923496866652527983798556051812852584910042880866246698723658400662041702457778121249875445202332476850686259852746330140468975971517717282004060022935163649597905313504129918023242246240291075112774634014751441174265002239008791832505195718724358811910815478549089273199409159818916592350373357168508196978788208076464817151942548862511298218890484540621184529668271002983367631761670017700878560376773812978893896730609830391358321626767187041296979022400248935192137344726318831299354050542854752537626513574793317256436491420077857322067921108237616752977414269250885865375144546078101036527774647282892820777140250749420881338921458340915008132847476142480566936931887531645310726332887294005597541219586372911222765094085471737221007776152041685213516441818891043509691401576428276963421949226508902165401944653716001566757577732810634951823253773715024523664410045045604171339213409087621572696024330059347585847987632075292592201552833525138380184955934206327830132395624098901150128328511733785854752481752194857318403232458805617999272038744546303615542079851992155790388297379785605508827375265166657952777815184177777315103754734584443820318863509851092676877629136753575588969317459972957389369826665988077475177015776805549229368552190034286035473725397350991117776085992772785448669500596566724455182650923872226761037070413365033633770274551034808206623264042164047705559071493169625194962959372371722017762495165084375669100942437678612532047577448479483916131729901530510299609561692407358773044878087880232571450429492869245450559785668461486748776164765853085266203382089544567276124684646507593840012431698743750207130254784599568120058534648215335145065854312757247657959358416715621001823820888813292479106091318761589310310336624372128408626175833445879096950145160115038352165242491675774822215969833002907242888275628644205042646892227988032630383124474201772053145173045328294783185604305792432283194637141535520377963900837977740377323904529246685456606022249889086499813981123652005019236289555311792922115533774605041888321214064743176076659448972976373723294676615497379863479262604540557005985290076202853096532865795965674554145812826482257952433410704358151506137317422006311412125800045922572149662110090464629256057585076527017097217925822724592153355513288524582327012689390938392790504554792958863361363890268068285013233907498439592850558448532605404963827197014776501004884717271016219756636910843647771059970327952758123470948113815782576072832238823342360078853311507810965203379391992175208505740894435549564281899998029814183908137900559226785671405450524966229372354762669799736368072662654995472067752671826113070615532078443446555671023301877532871093894303339486646586566405598008452545317234179520120989622353816521779512622050813525958832153588164542805086598794690430530159734580607976669914330530221809787995434380874933276452969491949347996626998184931393434559043514778244560960431358710285829843006350122948348650134724518052833407356128832587629016330280372302735014020158624007872264425716223162381549569724863965117475767952206458764503310332705062292981358947796121968767883748583091284590980199535755890264512894228509476633069637254257003214836091919650057124271922554310980732708811544949659073646530050500904467196086145098660829371069198773795700218350843845716412457029797599609971518015386772476479339064646437135872083595493989119743448276219092732599990253166205849064961698043093381242239108017326159489165752634798002798718459668420527130194290189075214666444661683731080615233322930099506681564591745203695041486456253244115736021068540214885146839301546841973051203517393413364462621944255149597655812746315785143742629738319585551933037643280059821801687899037652269528099681633794092432127176341948149897915381550575522532802117766383622864029552244933437265042619855809281726128158263810768235746972436365574335547590216494287027596496163886718760360795129495690297380466908386394200379950943620883530633369543305348035490942545456159442337085221392098897182190119598046247538005883992511857798593888544772778355403026997351664924424525802233694515259557417225803117762212696381175003841533133515333631365451654773618341061733356974415509884698286755858545874083108424427724421238334873074508743980624036527648692741107848017119123336054224802549132244055120769090391589922640435542155310341181722833923045150921946544471794449010811451818782465761719147762530436558409560353479734430094190577907863358312463233907912882960142182660209210965674787350339515163644066889836409143994250608750970035381045040597699973282805657870177951561841742472635239604913513264659000209061793397173803600748457908144812448338418558173142321001172917926572215443958784866030343743833735168654215877341347052323998882422073120240923955087612632948236807952509327730945424960709869348512618076134849322470487001583998431642843289298137145044692653631564777101995005129174341009187984528437043845238100855588062953310784698754309532899186576126150525597438878278801556974359251186547764965425341519864158263318330332647860555432184167336024466676192486360678286022188468460789781420238085738951307429275030183294470757140983838527232358940335978990824252836850584839875729214419234503293152336068905083830767190161243427525900532768532282256984055991912459692190401614474711186135612204936711829365086866287264615653125664747464939959936100238770289522584808141928045347256337536034026708296311719564945954929295839741830018240590823746170710512548699863947702483919728145911723096002468260133535659856043607329482753200745322924177447895092539169824470220116094441534653988427725426275644315343976985356104149904264210378055464957416784361762189708004446410733993226255764567284128569524795359701585176647866565353215926937556919236390893020360436900271502901340718567369204030229808247092351630727558219550755772827997391680433515685668343311600756640003966983427979995589130982339919535144768030572351797344068964437347723927382837239113801110321283268312901974038993747636147181920584913200004969177162545926703600580470685055423093332266199573201942063529521760005916609994658958316496711417819397378403077421158498051585048129291746395179658286551111078143038206556268780591359713691922544733154556281757664079302699491047601830658172559045529548535380659611963619759561195716149402785272992024392708590995904124561703086012211671807969566527559216167054597610250452072663566821516481119909732448831071347369586298577469397162307602791114667124314367468958435382822140695168281366377692550713872404088176935176447490824760334077077849748358487917890636835581751225230499761046248720531481481385246759644388770299725767125126081368998583389739318633402568095717531046450293343419900846726864629165287592723947839094144170930733802808219969510618241734190851816718531219036659963148070721553058264538004283090395879704195471219084048375691043353045104393974841237535996338687867991003980572384652897710596530934303189419559517536023172400398825861911959196515380341551401633056798374947232227861015788826864198434531769001817975384091229498363437834506397687946769234095432304568866435561738140304645744488017204619488008864382618544901093996978713905752588018101161391337653489544770436307591054098791132538862940373055452507096716672217175653143817976970706519951290006969102941021669046124781696276193157155516494624779372007005165035690433230390115575711709042387964681071344616844787514958360836786739186666860540946913805217710477573160627987175113599839602140490271141381701213667520987215967329223361672087506418891992592451864232302681949547644733634783241157573717044856745153008021135605544092436557762622179454006005965359856534625374319913303861539492963128632713895138859529018881697964556342119574203823330965834742024694495368818716270635136566948208002486516606988228029528072744650385179334288387901536968828961390946167490398728207166866489083069077634478951155023182286336914828668635438472718978304246810301421479839689758492546627847271589641820630571890265718002087613314172611461038140703620323899525715855023692497194219252284223497569477835580349140108253208738751181975325394465272456764606079055964611652287536834078580325798930219016094602442788830638084550660432942285327004315223613960850045400628165861912436656303654295306121764343499048053708212435170104528013981601841637446085881032791571572442296642697947930890911698056723449681887851034134701719824760921498095034220018380080124341102734537045952834692017158335719962934811610276911990217159751624821155121025861728871177061740572841033705694038422265073954741931349490584984935159669113852098676299795762179209025452109156020879714450686430015795541848576659521967666226415685706239917036616853098598523739764668224073650633122581672911718192512030889653281082959901876564114380167387203613384750604018410065321245222274174680130601269248143589625993346702530246331065196849133709848484252317511874462874916799080808937524043776990202887553243336163354358032918941689010195465410864159977043715036497830271045930181947412110392097717934439834370503756828362347869681958041901374684727699921335615592774837646075347304012584705174564052975834634903007154330089141175566298270512958547310548349061098772596506123595615947800989244105938718400510852461814700812862607912287429632775846630357624979346226429015100773717660247410433603227590783732486777259905082676028849100309395268131875407260019823591558705757404951192473762720394193623299516838238331805491954756713475782536421426951302190278446951403192682207492320549983562641461969996006018311292045924778989624574691654906277214945123710799124615838191378678996880006189245380283597390752787102200760111647916582969061094764546073226932618284697655757062723004654612053178115157088417971128799356175277717321447060173781659771964734004037619536397406009741124874014955107676585596470545711575042483158077330944179330966124821816031603094403195420694793582115312733046738338755549110119806625452462233824599401985093766238280532173536905661275065391640821289177105496393852945370336261080282525178910611654253896412701140082622915208962856042738987757357682876055259002118006068693533215809872769489335496707289623823961345487484221058076200323093857153653952228371030273128343257192222313513639770786364050647512665314839811652041306025650021196247980249365052850645052627343565091704627914400827841808649297900711398760525555483832540338149227449450963562071901863255691911001926062185430453502820847481966283090409694086244008815900735287949733987087896323766914559768212563705243642284580242595849233694972189290125159534897445787106735636699803481216493809941994820958711168664517231619323094832733171784059724185472046787256508254808151410095439430104360035934222346911335568972306178146391196624916994625237741533481289572567334323553802228053831918835439840097290868204378689765283254099007080697498238912016576643375854959651676480012318664826946933334155424796212374233175952468133084042295619544557159047298551347870792234199770019071911816503254137677953994891146963261189261078113595828740097307386245577548961625421350393355403626400835134514728676602829561263773594093575103986853807111148537761255242158474080129843623240321530916724152377632385802648457232736550901828066121694441026147282254492422663439726694799136412648155146997443063072309542503530428455834507086120550338968969372394787905733980722140336238776921230576752944131058263113887156676754027946822660038461020877613214401560135868416531490063021572565504571631739676017059097491886685347601910382647737985207396592476034419133302969800329600734403088214726053173896027672794801758583730993564859354697740703483663484173524510580273174785422709356684642093243284623351911613098637542003930138971738867605982733771359300267358364972634749459123209837479789546778045704271379563819533709990284749756224687104030747115059141328329214745701305022684351249079745081131141366603721006849202260610501092319645714034770092181877613991592133262817684187809522114626276255333469243304518799151470251919734782718884282782899406216687957860597695571764152255168926020129507163689388555988217326336849190367506607992080490490209093857509740985546604449634503533768251446052933664685609705383171207152703959727114182429130532255593228977298356377117821458503474471594741451529487547131582130069006410685663277718181017486916456201677024601939483577155992240072210101289791714816200430569025746765336222248220209720208011640518619224338856332717915735326823074523649004236591016195647506805236255945537718682496138767346248004504854507846913745090434505704849625946932596266997751407840068482358580218180584548996332119135911459146027745081612298675419895582439938872926414303583565949321606628292744089506095193590048836667401797704247367524543973073563735614761667167633075894014909058202581963217946718645552480604328375025153729712032423298586831342559368424486089617997552980427192035711546132708712652671076595264597512675779308451116884406992734856359057186841561957690266511394765218509762842782629532068761467635541745571144697820227881408554685845028394146553366407925042091744000553314664355623723987223545331876819853758949775764285261701411546072140418151548190642511868579313814291684976467134902117814229882555410822144476699166109931988704650355951773898932978279491906786452113053520589071397158030773889182068138486171386911837356215429758842240777009563709096753295166756052789783231497419318151427077404969049540273844220563166203589368848637544027029176154803376154846837470199805924900050833342148923560518709230910037767708193027390208242319884815834973406123553633620883212873147771767704612185372962835044987322216452273840340559779300162671072374512084711434487113049903661364239811595559707567758138203088813614514114510939034111462213327258180615391115519158472697385419095736442366127960731952389060591785855981264006468227825963616891459390434575180131989952196399659878232399547872417004955121409109909690426558884411617607331742708721848425930323699191596523866278089424257596360563570613148575685846572345112721298365537359608384136005337746943104654042251225480088656177914655927467505882364387684317783797854410725211964889943804937179532650815011008996768898575796398084253568252917928186936327609418192140192378623089960580042768574583263294866257642639620910664944986239779614466931206755486235172997915220129015931574865874967003928755390969501050844690688807530405774319941385768075525904424878597894611888023552904945369995652233819507374956527629790145327991798578855778379492127977824062258400976897380848680487317846439563374766472591694957564350343214574143264307471221488845385149719513669946833577686490279993041610802400108515991091078875839349793260710875325776657323959135078056678219808047524872911223280971867593066237330799144086019460156003278597863556696613336155752524147712244910389084493277023591859458174233256423654132376741671396176885761498650510075999911627178625368900749639285446419966950406071980928487193973987985370995943418653318593623680239628181581463027268405643465522261941740550019181181507663155483079747689773412475229647063810188535978289843879121009157615339049818333164895770098649907281193003792185169549300786195901209840269881482077820865091733050194958090631781746356832336010537944685185859782520105186255961027593639383622299551919381722981280462042917283315758112813510576272261264870345425657305558530711776347534716915889158283773438533694759677438308420799933967405444714432830027367435330210291908440433971141296724071892727106445861956156446476663416195910532036635648570300891053982095037730918219324725351528992811843171435572386876743866844341902894865250027700797253962594707110008669002811792177263742137656101712089307206676156253470073023976045895243755167765859176314676414470330249295051685382239408579269561765782912610867763384040538102674964399852102645410705176205052907348152810118895191462962260751170226828235075600448506805851445907316196916415512285620254578591993947183627306652217751946571456246394709052697745866043969081556233279923528632692447920090877814867285057097973886970558879182551357753533051444249034031312220999747428005078020259422061295404566056085452383556231315313306818032833291699924843206341645854106591356678877123051325840616079896315155533966593076587146213974638021863344666615352890399576074299059179871507703792273604850493927096297424325731778667122317175327553571723165492783198214615779805742825862196303067618508723983326344005017602566253657176562875102387235956785715745568476450509376776150857974999581919000180998073609282504805057544580547701072944945364767178408172776114129293330029844853043038447263299691942917902903893553348599451153717918459202270361449973629738743180869573924401985667192386801410473014310300269515877421739355828946279611591857116531949546481823351134217305936406440964526417579633396852977105329992947503513924407053593990916091409704606606927879672829173744842302128128658694176905463593521492366765553092544471393703143685283255277587979465920956848356225327537803054411895356403470262950617323239042397674279392388255192297987396550402665670258820747229123099721613385069455213385919479493985071240720502240353550990815555254607772754002602603211409235202972535222901635235203578812635379235420720896885402546204479646128942896921005746870711088704884526436548294119700690710113959309519642286457004825814603397895181164937698794483573986619600601493953341930160891642705757217780846166422890707516165634159056120180262932350105320705573889057987016944350252080472009116699565096703044542406363087315059520249552087970372455640144283560951442055098164179673752947023663917512116412180869472627257380816794735833797162893342608546214480343898455523173070250636306742275121512888619304113848401993123120344015511623508285674174788898161923429844765699636934126240624234085838158016120626563187904943370717662354909713330291363482213393791079977657153539995525199460678912255865656019057715543187701672233836372299277411565474620230356546921390007726236760347541368902764157052336285652942388721030761811142731447197257860986779934313783695958260952363366775220929520246403072254506650924635916630729706865327978702547105496094730882710480623327269685971078056994300172630646358509972564110745524097247806852975340300077839184326339303788355915291731142219249519263562718070768114655133814172747394602584717811499764538340584604614905724960399862989341287474105727415209449102565543439908246725163039895959621264218358067232844165976378565667570858502894901738739724892033975064631696937694485037288780540761093610994614041661517542405984840161661447067117197221473895674838087417451638659153551887267200458713760046635782778552964977131885297197133933927982753821309517879493861238039534940235944128392735821161888571196463032424220033355347494868296205190991660101775287947297751185623163082833211080291602048318476702560669163419433869957072986721336862930382525313220999374313664226236086968233629694477474229061590576017734883314872132716140461502460525342040761412471315841156902436018641869235955558998862967623519857580295695732435578891827169984411645377841130449148683616400614397601128742759499769508986377496411955700912284732350884588506617807328157366467584465872311854986657962961585418987086653043279705944574658582533903406353042460489653439543536895600659420827428737930674392022706564736769710608512904962926950884382659927088057283925098854186238087992864931599704392585898141494520890952930910403076967060125466838165745152952149578601167395840585037435115131438309455031987151330192419606325556517054632425827762111100331771481185893720940161029296096554394193498873945677446597389645331165790327608862398927841034981847493109894134924920492822219272812388864707389666346550920578896423981892490058699110838722177256648038585237997863531455272041676191485343442518792027943080786870092588411256387206281001860550480298729239423834554495193602709043730311748617408968670663363577058217996985746562140723042536569602387286712827871023339204066769589943881094081688183795988601079493029583568908839996055783117366246600797193848670475969704379285386897015744800175286926094797039319530193661027905628713716819041025384231202111491432200596798040053287721751037002373151561699751417074848003781101372636488547590685814683095638345822394887146687942550689323301962711481709575402914540910089983020987899622871802296642729013834811105723443468812259162920464024526354891295924808631514784017017471060741032970508419237212651273276341422031192085642427467942996504868936991431082973982732152916421331327025068149623901283378044705832553051680685885112262989321434785551156320551358993320342943226809661691815467510150829724166394416089851239933457812252907681241051580832771615277867562570167995603319167687264093274082968018217456047581432321570796102088389994160824137737927203973347698103444015098462234796646099267449096709546045150130951096410223575782967504920342298541188251105986515680250021764969969718102646650507716083961351470745119603565581338296333958860229368732491012172527324116181002512042626091841660612818505628982717913785048266921510871511224963590790422539490736789337149822704830666193862398309895443162191623998428364174478974419214316058483495103573836013985941938403176817055691733997802924501303695614659823900586051656702512683257194679004765450152002754844393254350895309979476738586618888445670228056654339470984571203149053477379694147949549474636402967566300199139414213079383133902853741372258748507765435955513267248168641770301946259627815265181426498223490806343192772376765935241770600239405372531183840024136199051133205747712623553970929819602447901319495767848858071738858647363856501373332644509793751593517780970300507208624360748470050639476825129185468225837146310759814168522540069274492026005549910670747790243430958306454105937119103532985208777540296375778729081022625029582504402305971146422860309948140034613869949119894965280031222766993966411906133769970836494789233162201270451906163019398558529419920505779616170253914104801782061562528719440456378314945023722952464775413338858517344443755766649906500428628723726542519330122957025402612246339334909733130737897958946715062213534904531152964673207173602564287878572852831486364243868308596836762263257367887132041989506591447436024676838101920279034275551577403386010036358901219504349345852476781723006795580653226314161382134584464472658528563161785585853639910161435917227540676293093952212801851941653328948375967083856806432910274117746109624538673243757931228566712235039632522825788541421935323738024116618855828142973399173349186840880341040039923938998545324676163107643443385134504305549982262165741724666927657893045866782224146506978794667815193922908868185964943507979048957380297180065605264927821039862490688363673318975700278541578353303478716024064255149717106455294700303110998237873089814904026515215185812773501938064910034327066824297200104827198680372597462515355888611899705735171040046819400006197671820475846970778727714298992747358859276558909710453021906167882860930323810918045976027034180958746002464055124458880733571806535227563108889807365397273686596235469472577023440747311941759924950048742059507036208805450102375872607007141819831723520869354067940206577181638263263292030365553333330853392903888364994953067970224569616616771785488475002512410247104702063849629266047317081653149309368877447970552313066808019265683547094338506956356147734778056350435926664575741144855178325223120679254292032640250836173608355336906048971266294649646382187470085402982121002003925700675103223964458364806610799135514574706374811941485528048160084393054693783739289375628671004547764415471058019181631816146418452098255948704865146267886130140664384851105922830549642811708679901049499348298288784949574371310871705884682269007675251299053160472751081796533617218914955865133422650905727437770257465141221865249211282580582955464578375729555628476209419346970861460232042615485286383200692889648612332694942074933384986220408477017508677183737399746730379905203129693282233400401749433411774850644472915419223119507788739155099230616207719353531557684007852798463843771190224897753227309941995876737907785686015840939006905802880891856012587368748240353772506805211934733336345057694798572807487059298014962837662464637228662420208885522397774570210263192242194821949228645384962613980238659015625113293908019819818584062773465733427575933556459617698636103829997751410328909643593004942896786051673833145309728672662195385098829553753123630527447928957772930170210336064399411302228706904864869686904558616782954618329357684140027465200061886240390927748565547577142039519331825244785034238992677676527873582075510411059152416460968590030431621890290201882940093902093477181078392531893802283075123924029570768546212800062332796612438511348099125054528605046793228268051172243433713564009732455241524188131971068997946453096661369260316668720471996164679415018989961123670114178473241831914011073166900752668972209969338946042812643404419608296117601286643731087674473694782167261067008245582921932580227714609011081672421610590684337749455103055195456937441669878840347950417764844188318086815664314344673473251129805011977080244066134095082504693828155636129005635406346334653716764004809119363792171145496438789480681579518189775186198313873543870376166404778803716524674892483662964468258723943161386980313162576184925996555045092447099551934326413639755006831203978000090737477054638793053636074481443679045674842248555086304164380169325657438152355243306070679601892723420798804253863979601392186607567601939485577071060546365931129608571398614677282771860243086754093555144783125022109582968729441136423644930959985209669834549634528309367382230668252602726581746798631704693618863613240065659941599234339633066225497561707455795703635700183669617220618568619149475185184520824473220635818796486669334966056159239032782086928351647454552387010247058244690112106952451777502142078141457215263594107096088679710086036392754085995502678904497361811988010946668512686616883578343172695623833380845377521530885359019809359969868054485297425430269063219882422734038754150581993694518005843691920553908725029317887048486789503582787956308971169782989086461523994586534398697210013404524284905854237222210375537108018171618305116394583507035479136663833935677965730091464183957264013670101525072753782693822682176191281853837046582106463313592851566815451631609951293909491269190695206658255342659403628221794532411309768783452977969188329343535300173590629658138162419877415745725849713874678366827492936515621278355669826370832996615888246349434182593005417671908300587485224601280103970177359805653544072009117279912140496082480741472976902175483162221260162836513290792118952773301288268934314399444429709141246637953817308866485831317046782646125361596566493774523079092377927428526437471263193425378456534415772587586506013787205318479035427523439462257725631158662635275759912863268022539457500277020179660511616432357420923963222419573149992528784595622948658086734423383323089847530555135282916386627062254407206897107252512657418768224167142769917145011163391778272127767317569315248441853052190378916993628622881384258204260113297088754379054358888510298040994366602522868909048906009352774144047125376290621085001243069053820300739470117457500315028835894485427575250451633075648099676349820923771350143299419864175321064477765544523197023211053590005404849135020934289976112864430537392849169752593928795986858594993035347452715974061851957901580095115025928915239657300348731182888898634984126680657125927692592586484279644695794638432237789635251778622840790654568019781837627086016804554976598281125388451650106565069621424605726664660924985337365127510324582595603372826931876978721277117664345687539355902443475023764886805716206915943744093588774038333120017990488263464874448495460533615599478263355038679174434682853057140762792062368988049918247253452430442183715015402287480726832697518778287320579380132828326783293470536726564742822890100862385222382373296236524661870433508361349732913222597451251313114910251527699108143176645704482323039517394988205426077352754533276809514336733158206320943002779048289691145193387734708216478367164514208655436135099902504848389030352385156246048821675229106984805424342108513309238823927602566800138100974652740746428134738565839300369930319124233243399452244711408048565225973941907318443660086490973489004643047179062244794094936633320137016786087272922649245957394128549621099420388877109623807020519784824969323796966925590864409115888638478401107933764564654019881297468045074507069187381348828004959767719878625086608411033693022421826870032419087843527662702573433382542540428773893759163962665216420740789534163394989251467394267218683746668337819226461195021071275997803897952128838679708696907682199467048236168688833734126191236451253668457130353745109841067050703989621660220240510944606761657396629301978288514735131591346940800915654716015597527861269394266956747640862886611611741092345973453092691902298086634880624504163634901033486205953253608752679668299740727553179965513627117505568809547820167797809592397888245177451468315956766389115367497087779544575683914880598018368151941456843982694210908834487703670791617537435597819214313095073279329666804954667996099875078599161365502000905057830355009800433247696349602494499350252793409299732133634340747130851105844311285731574346208480290678590608414504008909901741386860223836412549291467670198499276753339340637697478781034136864700268543554474755038807637153413038073856245556966505026509319035492636180220401250751968495901188274060019794323436549344853216933371851662221901317361753129528667769973062135988032662103924169310380404237170495052572088438928725858394508660583766341638429902423050679260838822980147951853922503364781222199685205666860449211155495470069991361082538681141684784486007349566353346167988806444029610522471652213491366020893383894867633356061298976412660472760740787440196611158745607809226053866997192481895161670123769384900009332664946992095059271943204444270060589640652585296704391253814804656813382727639481791642825335334442058565953849889722426786868035363828933706472536516780703686613040049777963015447830206228597311538160164908952299134604560481235311698430914099371717115853604459847942212114107564070517984039530538838252915114561135388081134919490384620037056282109027381799647418602138902545228544562705039095033324317403054967493579225543161254308470256756074496816249463408593270622163787859912580214103158515813351601916886618739451085367312850973393847100176564303942730972766603243578208099994674538768431084603804273618365627163473823068247404963206407949243557728173959957144992325757497596296367822679441950397119455983498741744606231713793314140176135266188090455058485510940359278153786051398152239995469891656066638069205338217135051456883752275441903516910628744050432864154184008145832321348802710338823490476576574772041212164565783348094894139325361669223707799327244114250362115573158023981456256734858608555719850299503399057907224651345393896822567365008444442608459547840353974426067162180134967864980729732053742456386592381998094469906365641105849066422488258725285466601630753104620175508640185783446605542697200367455411625562177599325392001125530539088843090574208801666585937316740043462355604931858212188549365812740674111214775411944606010624357092472993778228662547508354229965767612320591768828980560696309335291463510468506848602989385556044309436538902832147875760760699180076132570978095679736805961296371206210404514797012436408536342029265401024488845443450066251891096331553267559838053030623893189458541430266568160922107471404229380694782009323140938773638701614805189494978747893581460264822760681475914895143568863865248974229736695901095959693275644102415108045731590307789803828619356216609428678708408132283828437536647112679938521707342344020888920852910999329069077131049955390432309158760945226736581053911081427177050485026916686034290708259174218905784468225502928686240718205957298260379457398507962399692926009789181776680195675027296758401024492114322965767642757770612345674901029110800324931319479010115483762257153294460350217288527742283403098822607333796677476790060356496033102611303130417478943465091307456264615214866046353124786933404195620305544069520086553373221230945087186403713559977408441658773962622327016885929046605339672807973401015331825598967358321191823003165703285629233818146723189058722770878622799193262991265893094955375695947423629509880588056358025250591054861388489929006616826769489303395359393302669269692156868874361022568771597361999508276772697918603485189274202663525632422461164529864647925156355258908250958951155699191369106160112730243378279765071041974404574461952405947395473014378522944838438218239722989246193729421148823049360785789539335810267269641236169154627038808038369682886208625584674361992359424103342877229484242462147746881299032694157049800321661943115641501818202371691982392198879621202204720778379038012732985222908049873445600410749658616902538978904939293406690043757892714917114740440030649998765197099524855380152463640682246197654900773479191241555190702127626184792904830773568695966866145439271133087800211353129661684448277030963629151504934285560621748012676672939044415101863471152750299647824095551272877190314440309905577330028729457830068549489569564483081673541144046159960490417502189761607622310323218485843153043721246336953512762590731595212006763378620294389325805524289074095846492277134561623801227641107099476611647936196697119991124523913621799525716076268190875152107654872773697326478481510482742717890631052819356561609395796974695014186776805261240205815355065433589253250869587929201690066969990309231186489825801979438878694105814699092490088736461664828281045668298308060344362839641785504836851001631887137389121094911401117034294007391518928615271177785921885230752426697596380607947551820769424018418752084049412127821224012316665062389225592256706908477113007071885379791796540396983484994533285090060613112750708255527762387847792952274764061257491184199239742183002008449386463983425338173026335954290757689053728549497827438225487419189880374731311671085278691220287989863109861148062180354951238123105661188913441664000918839055346554158483313462651078805246860252239423623230459785492039788140284669791629551501350444425633238992724602917817529828259845186222414112914954236346339556496806354403980746389949607085215367797655727368317522198030963449937080325456343213102715839307628211085621423603541309187880593556729944833314403184502617398455612812257375151672070770311029029524242745694014365617170234768145698726902165675473722914631805095800295811941189039598441068870881038967367867491893493273044500977937974160394502656354074686585533965917724344612600226411508630818894489806065860712374742988028417030909115684491711780211176751376915324934813621067655813085558344151232301522746232708917750283728823822077115938389226846977507994063921221787614526829833251520260141455645569098917122978165638575050265305090725463288216242104834738901339584462673853218512461988385788956460183683464188450335305517238152032583965119563273236883266618081895705995690813349458427522888570160222574135630325380462280645001142053510744507789520087620103370092658522895452251335028253832644966543389396571342665911758509973612785029185918290756136731854857980667082246869100163159714225636286980931214628312388936292969976672823762612118108734527224174534356867922311871098538175240235987482870473319498391901356163472675971013876564417608662213371119716248364975489024896263287009423094812840335936431130596223971191287352319045474506351861580209748247358996272940626474855204503939041889413752130879920697066334361323029913722314432832834008342421112511901350891469674561864468756888505641414697452821652849050761030602708737081911325990653985094106292539461913591085187120443284396237512540075579998368371834601981597148614058959314076549083263517961524663179342585555924274049751832824492271077876082944210982885490557188009447239112899322479597609804816604129902081604517370582472006819493562932552293455444884740612381486488201346025213283837240185385275485304255596647348121302813756116026636633707107316117512866098948911737449914517481334551437935849556777095959836894690710916576094733598235838463048221412242640650443298500737114838839710876549994056343486034349285494801185433959223167267610480619085085004232448676139708261663959277927474805415749045837005485982456496737064713785457927331655286509282398220796768148729981267445767309616920281865372442709528312701208626846977817568989818595555667957364486060531733131424096787390243903730584348622796176908579832041962891609653140125887443766954192978813812383716201558582076843614416278723906434330397337174316285990066367199582356094198784125132251769519833618682938592519209541828500862480509183740447182588182370242784733019305544605891212844357712925623459015713138328032126083416527025185764424005763764691693178530383519293128224864266084385819486229275945673463691792946967360793283800995205031189174762931018258764633897354950808833783126410154914913728382187654207229516487952452757027785068380408858831864035206453775191962126795240966995816785472369612948720433624968439424798903713118036730236668008441252396764531886869019984818430632431956574554660272782853938550492459456858783345741370051950999815275942559850257481734948677389611862073168459808600995427478788173653833457558591201162239057178368395389788633137360638531469092351964256988232223628293953920306778311276920872645577638443968598016394643377870471257942932538738344347555416434864032009713592955204488287575999933072713533845296786834266013268195749706165786756047805038709130518046006371093277584265112368398803066205394450419675710363203278077685762668560235589984926663896612462948140767903931848185369717431575505663020363551774885892715110844990460397600021614119451703258701743995513819542878565567089083600541732889633275380786515144927825304433866819065803325647440519631399708295942374944714564929868226806097766557477415909004539461194352717880248757179034871872708084354669184410337632356628801614414653005354915963288638812288338547852930997537385213405583591466171550210378907664723558317578054026708561756249208772375778053820472511731491702438888908031262811920826718230712739708634147691618821876566438585214363212894070728371848289260801814215074292033669108308970119278189361335369498227052643769925977892037967085629586540735059783437384105218821904285866844704089982029125779942135640489724028535851425129241079383812754231999569705013905922910063268620177776045966889329015735504593946616697991388046281466699131228992618169451266924998831922295372149812651682896014397018010993682646162368033239035992871887500744370869716610875744357036996373517839293281167031106610965906815530727654677243016308085713664935719743411177832781168302874380995933144856709331276178267248202540615826346336617401933603422210904385742232405146894717496451625533172974647778249832303482141383686595889895452111660566831641385005053850763032540035084038588539347280183798496104374240757405617916084434873251772781257934791470746044906079356981797127251115784180072853404701857150555303072672891735303685692549415696028678999732619710574184587256808232810470698487727636239145184213103603781673283977392856161409293816960170393533300130926626478506509994760554973071423607296977663703920177122808812272889221882031205753572291462302937702074033531400278069795801408730238009827088640291028995882730716776357900773445394419589070451736080060861364845831483385322318203605517157667764534524354148912800332426070812232940734695503116890601057706913388147866606757853054931100372366988336429352194966328346149605006692041973470545982500945934051351887765165635828743346826660025449694415723445763805196740551304589503057976590103753454031532471000191050067595118759252892495153759446518237176818270145336136650839818000174929012591034985149679124519333146927701376764458829783519653436165259311982194782283475023831004567707525146855789288332290842995721835389985755255018298336955883556772333524887649658827256788546769571109509288962959888013736450853652168400295274163562245813561328193238540221105248536204152166756178719115973249538677753043721477993940966665167818913038062583935508341961633886814634313143849531653854826279496411241412649713991017646320769078873803298081003015121717373936567807936683251644620985049422182373559924990716703219284155169165133500488209180123870207323080873807787257159967971236116840886640089203856017241684939570020909676817811067853102840496944961080870628367757421123795846450091875788867838333192420200927279441719311965786753940646501377410208301013007682569558149878211707935577620325053773562712644426179106380535886062653887493070301398797197850436035419349075548349938466701095035338128762966911463810036814096666711963057564992184221604406953536423115977595839455864907985066411096081233884114052588293570587922808984952782091378083912381954938151882661332367496249203924405498280084158600067364394080110543719638032117318911516512784199202448711624913232029361802534288956166391291938689725382404344965382832821515917101766019195177070023510728615518195352866416650085603351936549872158640300853143404890420980753254394648307128594447841185085457808663525892162870219866278271999945855668129695598787009532363434517157204233249301451855694315531503642129652566940452455497929911242401362715941971707968138243688756476075380878512892392408299712183284408318226605610016983010188041073035438852829128793448425594708433155371929917365827095972112509918191795880526424549097027502258249245903607669882451235903899342338412343182696232755151865609872242005282514710695231840071952824632356547998053966462899478878356894981124220524928459911343551218511814067403865349709510587255350598256545133952914627238754328022834510763401462144067348896811387736480508739907646828197956926309257898602205707271542674965155298512050404801434710937376906241122171601024164169628505262141200837338685321836215661497001310185614244229991434114104374386408765173088500947890674101598891152491887362010646785324684607834817002032222690227525798177967225259836333330492417349885140366053089180323869558074481912745948984819871161297061449069799189075252353140800770531068305173943050114797539687140405310188469296984557740748144530578294452185836465563161867982935488498953199715720161300591243781523595140984099108799019801599256790411982932080792119705700427707304821330365219731435605595306720428165154720758993438518118162856136467487922139212686503077924916251787035018986512429886669914927156614673307118923517078295701467855429257872102412457725430558045136131466844582222311589966829927322242529839869015811737994478946077885803815348672152780108199023367646977883883840495635598554067443005055942506451571676404788906578831094488911283456305406273118544565320595574635619344626742842028376254563330099353939786127292418799319698785214504659618245305990613293176839050468600499280332695229939252201458325249004196532652086551959018601119640408772369256506946679114913426522636569311899947367873677415359958486768007427485567632417649482913703377035904214361405080035220583381519122174556684550332538978022738564987472176940653151294590919605330367331383954333793057771251517875889968199304444081647835119917146904295184669128339007869868451176370358695238788842627477285162712130347084470189926226868366212374265636041106216283458276269191935767945526864895090657965530786993752226489353634400078440463945544927260811716220972182949435713230585601027170866980223339701674249239673799366538725416130051656311099395781880545859164291939699725250974568813242029864242117161415164634007976042312523313134004511041737026869650093636160288533964577915978756257610925812671154920585723238083096496161978693144223690086276362330860300239720606496820374310781935865613600205965946705044893175892366173203080033147772385990595520476529843761691105134142522055550968432052733060934713420316664390994365567544726450795599809820664332462221253857707542273520167908966117735544550656114144505449195143946496700584334221180771109032832249043799746192704665360352962052984104286855872138903346658915384358311552379353165685612614306708860048854583430835237004513716328154907649442865407678815522641496390710963753751116449092424533700130609670936157826784810882305387795128261085354696572792616927253404199237399775178288736796712336276422647180112696291484009663392040729789664896411421883847545723534399836043557802459262480737925156875344928083474845045972822369452151227119915467730683403758803685532248553934763126128045346388081498159948459802603416751881068105462709307231188934602462514493611220989138241292988771515963912607695014681385242374195109539007249811960174898893571032671817167828924745411542431325611182808338381612016044288694253241405466849886774638473753275850878640759563067616786888813397656917637080402502944266066562058250535459975934363788225406618004912402599416657840570693192949222032490298661956470208934335327880951170051224725599532250936349362404053232204123972670227524130825824538925394018088822364664393360331278883629536968171888280044680783581620726636710401952033524501335394049733883511048482236752832560886643421951036684216196871013048317039002783975539009668681653604043476058529107050695758676692603818604958274256737846678511760292791508046563383358125336555467398660633656738536811712149974300676929650457331534870712262904760215458826884004732212248001025778097324341340214561363608938063150849124932753084325254010225607360272721348414264918489910822986627026669124193567305030294976412489625787575709301093757975727893806599435040951498601012471495688891186488857968421716057530503158936783647995708859756158125112278944214436446017141610896457165576037851750895956466951202708092754212269932215279827819949932613591622238516567442346088411776662491766610886962444297078335076306044428932059672745667162900249680212141100313448725608275117453503045867437423802398370267070432982948743820110777472031106783331161666565989156152028307782593104499327594812106836112282230177410307364037356273420377942281350824117653871484688017770018129737451291292772686391601495754226578574678517189213434100733878178670058848134555251514396739242992695430914648199826013399185977213432654375038313746759230212085847263553235900039014743840129589736569015016970120458956107101483212075386737125736064546738451779520980654201464150269121974192798378353299824443930329577127288669789541188841903461449130561911336092977813449238431445783383224560305321168572653885046850775443294997205708871173870583813598707626256449803677241032489059280038258534451488621699106151166656520670284997482838979659012171478824666031753975777559544318205294407932753987970889948087318980025441639784629184408834909357507950256155123037404019866931371428648183141460266168065127050971915946826702761788336149183187788561491421152442093192903496939213224635401801119920524696527293808378324955458542420604987104020300270485545987498866213055339871447436816980456109366737874996032830018945784288257117618270765592765418318122135497925879069468822384735972861167585305273752557871264997404373180344169005061712957022302271642352391273120516300564287155435435508193239728319232932810307294910979991357574437818223746065071090745925372348436129284045435493452283553778808616848434999678025766193926558396551093926737722629798210089540726206084650332257401210342177165020898607703221158144344402029866468705409633246664948625713925866818262608656407062341561934034487691547432042149620025437599199487764192068470665787386880736748643852449716837653524105755987955655831772373237739208231082192471965751845861054240947143315422888753308871064328452901048944515257906903574086078251728977297466534183034324608428280977267131225195750916312927240328257019486549427024391457349708974546376156371166084034319439083512352134042210894681693974648333349796367558072127624237005033566910507085330614702241128329225695826496406180902967098708510492672789790386795483521336012523607130101853361055191126150743403855276058536045801564450115166002643205260741826380738832671592148055068119476947677134185139795146465519066888616509221107727348301017952586338129428010824574533930256883576084463262838433031093557750421232442084587002710067674452922016159213302218394042161236003356965226136975446672077814759274679220990896372030098592602540559521362544344099429849235625895080048199546777506521940993626523502563608322395658792179264583215100132087561720179340680410426387474369429922305673754908339758433786161677498199390464178230684782059767880333591530243165275423043728967522070606123804461676479950545855747460269740177251990470736955643677140602745874249681175038068336393809504658548893806709596526861666075453454316802867139841006478464751041609607587711528249952590945568497934889438810895087359409971248270632700273285980393815967577248555282543540541531073722879727409285025888642855282610472425329191491622136851151401849560059575954917575910105013777540842915065018291691141201406089905934743308901165409908925050716796004508094352318619857769113786850741512522440997351332678441780594093055901617185601723074661181663050753359946167325054679571106609611709331778005980042785652068768887401974869899529204284487277284829734318766854521112857639850248702677345640118034054887636037086511934406520575252219803342164631441943434951353194461837621101053599160412964299721669269534728179423887730514022028559716340722718206923186439762213067179799864131806656859858688897312515956495088961474648254803858426562307161739773357397067723851069830869958950545641069162126144652619089931933654400309978575194128039189506552336687330383350537890664451511303405880350637904978230240739915140150918365905178353745108430734021171994048341048751785266110197679724685506382759776994325263455237530672373910896157979509025800800067977722201770451226067378948253487814705432300614157085688926853599054185975185131107826130720986596277957695732553233695058401012303746020568065068640649658747081668809674966874218647555848249068830665159127995330874754658205854022815478680179288224095796964445711855670478408081060070307793096179934010190315470550006190153938115579210856829418764724222114488798939214317491052881779820117840252769231909661179576517449207309612273792842350272500805079130659155524028033240531220132564873369652146249201770932080612534579687992883069977651206973773783950227223556707545222460987508873485596217550911615245372757672132774592966391772980478772439537579780056948813217837277550800919174015153352724544233273849739227792689645789775068369193019395356787775829153455910628267215224892756205448340663272513575965651927915814491987540292476304072468279148698424780452252446493305286679430730631331553370573765043052795842272037520266400675704353441703008310925998880368572780085518417311417194927345940445816894817334772662911748057265046755385475167269584241120223021145984357142118733271895066075324137331424653923590941403185127269853986230513420250598087981188447947878474084018988826504014914526892236461671355600978196736632874358640524239368320484142737462576818564745202981686461822246248946685146380783515400020310093582055546634380303903704202484027569825835541424312505381416456699728245903995035185351033825573815992352287670697854944871402679306854273404418473636561196764307520417676836735597369212116771921950433213852631387582799347431277873833520578086061741410275809331103914606957294319871169683285007914721537406210888217521092683443124437469407703820397786041675128386208766234591085996462008354716518248342116191398446989275217940994454343779196895467444924281157610707470120204830003056868732440079101070706613588119101504113416171783849944399186147540988717103302483636534100647039362646115952454291617962378321317929174776691507774017334978455571863483891251842670401217453406644083924008761208626439846887862046216136829779695555522381487208254676969946873659649736532843985061931024711481558689890655871247354597870057718070057189613990008874559456761911162960675548907548245877000062965652808717137567592457695884550791567286183100129575976615302046409288057505818614370589215670877060172808418342399088252011411543830191395925881870396535839531389210879068473499316370521722412846268336719655454945165350416723367953577208990790099627002628462967164969205881534309704440672865730324843977946752327536863687599269668138819748271467434507868066647061526907660673281923641851661302743507564016653133993965978188424141764338740653421602291196919983350604485934253111988580462390040939712156630527482523554707651249043135968181958303717027753608671765551714066808132176282291252069544754644713694332986530203510676023705599111093166820343486815532527501661070805447074218397384106655676009894109910975863929870545265432195879881615544383350498521469873472329155189160935119626925135989545276104296354433284489285557787250756562751425901337996782702427013202686361793633233905354317723178825058617284152490118705770767335892004875361524071487986120490572554099505147786377972252404936161085748833589583003320845786125924622333819595829081357870718367622401086079584042245177747529599400046892966025392972373599703284748756787846209761980848274056190377556165467749938527157605763623526789117494400639757243756379494668653683471945363916991803492624365966677164563455596745194845509422338197500266804530085562594166153787341054328021998718189689205635388242292219166227610735163344920955868728119963811664046059872294902043636730115021130152323447999767892433580101603883079133246396901806900149758877689398183440507960267865608016300007176271308793260998973743247207280318730530159001921784276869580097974202936215564112115891998672654838821047882535446910872248200335439785715204669418565158426173076912929618754016394242853328036218195558193967992614876911630022815770382478528641852293499024359894914637541303043483080616485574618259791036186983735651583855059208762772685410219384001712279124127164234287482910729902332531785020046353472838931121357900246406984619438467658078902862564609310241828801845215749004401456981287530389464542909087546361694240785562019721269575795927308823172150986539003929357115746821590742334770785421537290594378606029091527388623981451320813715613575070156648748479006975603687173159079818380276219691983992177743921428705721857164104953556563577266500118536407905217474292356410640030684965145529407415582501393691421250648664097459814978130314401842240672041182525728971798579387875038096220874235049179265002045627244724689696728812649072611897961786295150689415170610391782490249753581789402455712668322920232053859542819396956471518559249714595906669972665696097748778487113758676911268229256131000479725307942393495272925265804237720512630657745287605984176660094064858917223112297244242069260339972098402000184067772578296712555944406121748795422300863232758084692920952843133777658340092442326763955264726900469208955457182983616357945451152033558736780901991024222085873057844014619935275447989147308953735978456389731852197078599721187837239489784794790010755494617786525784898535832215500248561165220185512746101115025210968246611747566990385307274586885399492054662507268979757068964930712040955478837562901445154278413573218877324395542810338483581164647518625691687814416847288938038895433988844164992312692069740885765771221055417723097578953208743678477824806573057869509877131237626008970310847699212972213537818810533179074772041966205276875205334481033234630970806583833754074122722207136346977922371257976276318120363476552483373560415999809751075762504573698205922184471921156107203988898068562821018390744844922882480340484805629693927996520505864722310893832585439049757621182961995155860051221587924343732628313349496708940675283906581020657950832183760292712913443565310480647259584531331768433929677164726256634884853365544927308907802332096998664248366137415061457942154379386591533715330170086708681671610174941491298013415685561541603612474518600091351114442094952591759226420917862374968669997418603930936071244929125337072599634189746461404266488391625021780633714162831754368798072043787410532931134860424635642874235120338867506925828369417596951715114619006033773985688443535108589972556762626847953300805202635480932635998029292759035289131775465716766637255244437597292585612299110151209745204967882472332678242162573816815673188052574680901363194718215863692265284884082779708226004167832880248050738474541064552399741944634534630824962767816294833903428859318913073501162583938374323094624465204677804862478554489187401958783618636429490301003923828173218820719455240735970496891874724365714821773211474041284828880331132996736258421743593130099471161005978588634894209471901825495069463096257589045105349371416486280076841606930882646883530073896698424102197673668216068230457248214814004778781107561451820886279767052309610956121318252946040560902005437311661676079769995123630802435457636680483369479741478945309817476336171469995068236721963454565410629457316915792425231394907097962722205727671125615769562319152527228352587546460081876551806673135999833380372688268074530178977142477720922459994954306028345272150703010354032726182689698944915696472672377405631975986045526326737946573797892976494010801500856703821391379232834010752954467009820134427910871274415811613444973380866682296153299945965565313970454792589352829264376637393008520456936019896000630987121757870930889328543118043392420478149371844912882171029647196045028775137084377447210164800238603679470389797248566605153657764730175140106902805851102563262235891512095131275544227696252698337796129939712511243986205537521128009338803885004152514212714995590257015438660285055700735670569466564376562246664744323312821359246808852437072831661050572783073790213236906822132745819399304158842622881965524883140676240430697111159835156769593080262509034896187992620808118785304460901593295249630415188263593839344867786719922552740110621829876045278806293922297598401507723983974861837947741453472644322690819362157313683965343541309696154224941591607755073728489494781842418323685742818748142061478573175095850957129766358207371150481023613399826972472275826061858388985578265135708192919955606419220409456368149355191221754940918711716075365610595257955631391980784790273860102744181160233153872337771463682162021731601232913967820910425496019138714109936079744202858243653207326663478661392226705342583224236114883361691159829657000112923899261213069456375401195530898380068990935002140094568830269879561429269764447162633387414208729666862723207469254263597477540660399359925616862255898048830559204450223279362820035272788974255105318207529340542600020890587054441774893191938375564641025735494361890218508053815053301861817494042335950003383499084571445466705093011239115502401317156381554015795541076884407931285799110030464432043792312989066365613357616172385702693078005872928432280543855764191538385629816548818058878050007177313045095712073406805349229128768691635980550078249495075375603651986744298213625277528568385500526223367130127094268435039430983314813864159837235276231131336049144573425769573793947474504910160173875172969220646820509169727864011515312081377089614435825070640403347671718301087973297147963655231428887004922358141899572369153392007538654764623826537009819387882223907817176706624332666054209900599352242885198162478213321791161737363643077208235678524539281729038839321214622902277170051542179798942772477958170222445495685765558080721145130325322001497157701192135292829913163965513688512306331580035240509926088919838924316346611811330631717018133529063950961207896735685074848494152353978387427053133818360896430853762609043510388531916210165662583957525492002294540250142099414190477565507793510460002384447291804930047830352616446724050753619005730704593618428325997514287039272764098017789467204342435402090230984164234819785029122946822401705389822243561277320662273218562905235179982712113512055986276162619543495310013706527232962725414080637114806591471742523837203629891110837936698830543332967072788663008079766775597070904852172858221665791880761973031134626294804491896279871871425786883082743147273173670456698211508505832558108055224526873470964435906600303348842269132942706596002968433221268019625850759696295560373137013968905411961653412147472270547784272316400622964151964327822262001868907549456839411212811968929948852207962407234893778930638162851094333906570329971193583323693655970182101614407756448864790212484253105551556200794924919464371951557112285536787376664550199980025631438835930247022667272749195030942933081367568213609014729637815522976636620428931918409430721788154719567911360186379223182107691659286865455668162885732849607376363851526858239424278892977419173163218541228034994746444246086185908057581574309327476335590677789972389592130276760344192862900786120150315685539172410493412656516031042422976715131022193423872212518950099797840305766394912517104494127166660008717930220780600870755079178262981893494810397999519490870504296403531639160376158077657016749998279736305205376088112450878476228001847012464880684630594337077056675248938803217121197720884196186284879715676329309348170286623723199445752398441058353553930960294033138514605767694011819103727526801039869860051820743095816425603445587349453350923229990141448938116907717999584167158250507470551570873650920903919075972617585779368578446242461179503433160348521259999521315033502338699497228502837871967406338900945395622353344564676144043504903612337800106580571585932801510962356827270283478250144309900491307723491974135421442936535452316793783178290345149702877772076982659191456231064191809099593434323194674738378600482917951080069155451972760695595212144512826267133714507595854838303708838191585795023328609265015624938388956341541660071853973744768301910598289495682517923724648995187593705100278786330580569079868525931506861917417734827904684097108138899599851107890876746211561036466424091147556947006902819459399349480886265000880164375095465587556541881746063401131785305538333128636347093406777196084481151142615002972901161747756014786148349116629548783785145648495226369768687848171877967550702327715283755777287183156987165048206831720590617372286953234203668152756564134361927579121470203822214905295792580577047662874742874540980147250152800691631018324810472753529731059062061987635224804822128718603251551489774147661032971915902306703993056626104723327514313800402151374886199449115274876192290474745512583601121849163898137078233770794553533936914431445316514926229728674061682979557573849018659823691590323716231701579422915864959904730570886876432471934389087539753302502812929032771806809213622769142081760163939883655742818727226149582746619175166309497919457878647985719569423911957336631847907088267977194587077709927929720362764064423184846971967961988013020046418614300122405507201277671430945375869135722311294785381764095780958163334095539509086655953941282085203325325710271454175916050869291253651360447603147780931267338329369847073344519211542137320025270991370398742691270254869269791816039184960961207881081755714561770739923167259046814180046356638620344387206657070403614352716722615616067866040327252389901241379988189528983148588373916854755893371178063054179174192633459487057744530647643834361306676360361543586431592935274945901456072890477575671274686389312780029492501763004665380968932378887335329982537611403011908938434710706161682226331127359189307187451532737448838010963117183744023438485741475619966982411478409188656515487555829994352681919472445661107552911451147712126403729863773331605123484372959521198090808064027299808001330236925907829633697203257057445110353225877071686509147348481276830285696764420743167640690509944060290786924112020361769246278719459742371324024822947219877094689019109565860151395892697644330903501044542611777661587535252920837923622301506009817762278996314734172951419454130014151743530928672215995551559503277300859671152383562775946278100596049525193691869045641416594760457358353838932109131330523152261074900832642252669745885740025873441250133647351635524899365461869669471663909202179701129159857342255672114254360885583166976068094705726848571002142225003483199458393453452488511196250271056137982158849656044955428938214589952886466832259243711541353795409779001341514234267752895163723314931561075391166930464310036565619727213392890441579343325117990723518934317847563375483389061261525913948973805408302846632241881671937391124990133683758591463049288031816572871684575308824435277562619214149421187130721713132485379531925647281525551540488051943750760722111161148017210067787572957635473929045721784991448017432341878636115328043028092598000335543211113537531639640177147653540032661396658175597031790040670020128645618877654578237087319462557945129061254475322591185567954291361995879897981998416024783888858700327161452594773726755772497770845180086769833392940806494865761990982529876395136774960329475581779037261900782033027866121381310826473765243423395225029202352093754202568216264527817217438961481187329745678854639195698108179858931035994587309702631604018609126926755719694482022187744430692226881294578633897915075316644376306965166361597544687710609525478543699139461757579229030430083234149560239452436251440894691975457424032590410442419149923160794985087618696217035755217073358477344894272703271148246235099530094223254295855554434039386643999802810683949754831052064905056597790337277544768465652819113477238221404008793077704083385741895393351656386867767615014235889807049194095828238850176389939207926068628579862734648879268518221803240449490745959615674053908124525962868501693366754341070053765825070049171837910571161457745944076132497929777709840028800699140139442276520008154008705359520756135645704427551824883703258079127480414991220039745336069863412833675910674352888753368267695338149965094171477081148861421850987684502997775943522797097376179341731507532862030966036723968285583024390365213900728653777151872829484443205252348845973725014541412961710376675274593458120073466302659036313074119510975742514839573344414462623465561140978284360076334607778168809526801681078514836077146918541283840671182193057629606892243210249110143454223950730554966572961443597827417122616029058946413889980137836307875906240034449683852778209734729712265714248273005878043485856428610210799424743781242208736148589503991347938353320305172627687426396318604942439051515051314306369248321246885371706743216547282203848146463818635668464713157768525896269793705908143470713340956523619746851813093323931418456236829897773014490562938355601996285473114748859857381795542556855170979300038715090186255393757992874189771648116156018477035170176123933379521715834604037513549941806820886577483959672630405855538582702382124964007438047991777529885548831682131415358534934704074927767424897719682229694947316951041848331232368709836749717806155010025632219650271156316840119198396009787659460800354464534622385317723856689849290797632805978043668605298507757676256809669193162664195655996286942187716044986715498923746314263060864553545749926442986332209167685343124868649368735165518817680029605211128476764910087832402362588517017776061372235231628404886895777109223509771172165363860555479443348694752623610701928708470456171265842360814939131611175992541128409243739979693227190809583715060164736610262120382564592804215281813489337904596734753119376284492954956940654331849782418394358743897829737403943370827167433710841424915968432709423142351035571356436370036008261883810968072967538959129583604963729878162518047128365197746768783876674182738875828971877164264237462612431859372118667175640997662239778893586526286662197273204771795086062235898662860468773814342336476539129363471555137084542027227557328470781725524052477777339894359018419875095811916628780011121847264724202933582808466497119984564606861531022617892048764756889718949511692491284132148549142129635242934828964096332660136430339118390018286048837561836532443489934626777337094164171676857767956209139699220948219413284489798796768560438260957577036253242717025907727472427948017472713714795164660041192871462804129811712731087017719186803992192564719254710520709476304778191351479146602401530698584658588887936146655406803423680181369737742211283481325691986963704165566026136645435305581815298025613629830834034005515751234219973472136440275076058646902163131831916891748407377319127446917213793283630640805810272188537420249416281142160581311950338973993191257848457119343688043678350695631122131527948059662863310847162503294722304155524338346898047411313855596216751223170989833107739573772389889057618409797877709402631227688021113389420009140140039731551529094895493514339205192865879591197304591024093682606069876581994545749590803636844325268963430200384001877296850542409309341074275613999762562022580435411360498973602520406973270838906341605088171705659860637476345485539619898600045484147196007713948868209243724301772104540257933780204528715194598872934142135986037395870642117199957675730102720509985972044504884861067694631173498242374521681413343746460863986374301487105827491716946669495234647370483280041633425256743198071508722717195075971160915204833291846725461763732055922603749359650150775399618284110268451602819424735731123601586265525093975855810998224888355646127652157835529603045112328390431496503183727829613031634809474364441283079400246360553977458683117412071494324304078317105583129341238868152753699804030032169334525757830841870181925045854005891991603750728871733294582707904775387822327577448864077090964861080420537583511892781801825484198637265004090987913708850431494093796843061195674426825777524029138863687011319088593930453605748421953909284639731180877560197853126141000647218032724511678910672219983845584154878544612049675730988196134623084684183039849878467159024525847590891882817690528559043373240889571354571707276116397995504583769870284897424507709978002625636086398149349915703506597063262626876018226699538383579386919375323179968752804383670882556773924286043213751201404368628468672952650423095466003798397905847414631514401426911853910653196752847731959482173867228769514134568052446949142889963119963068292071451799993345952088763316712156118885885097588622166121318776147110347929918381544462506431878896347861052682242239272428408763296232112879329299419523648325484741423344205772766157756857820445704723443251929637478376276782796863188404980465711443628530021179142058336051383902922768188859192660948941032431353397574785427094838644569997504632639109953942647120521111938864625142266091456849502400687581127125716709971366850674323128106424762555638874704748711491565586776707940096151155030946198637018142122187144193460861832558603989259063214111784261711023779108777904628681510074616136331257452933394860804424382881100205547049221319498332619459705112897354762685349916643637589964977047988716911138926735526600777871633729599032917856508947963668614161317873911236408753189813687150071193148885520191517561604711352259986894748027959277819865073504941444392188524085950067646182921705341135416313185655817708835693924580528501026658135223054546149094301546815749975609960589319158706717120576879597385820162672926741916534137022124428906709012423602386521794681313597316081154506939710754228632313049659050037977952549063107876787592079100175798764738525427047879878309424436324145956902206876200342442944806506671343061435250777716220686110663188970006359467320701168876331468874262924883362296835245329650312578674758917066195154255274252599090144171710118652164498553323775244906458233537176868438287080575719382160130210926816813749491118670247498537781477643983026999822134729105113670268046200729622050127863567579648587939250990399348245562707677673400405148757304101320860339276970388229894881140557640348419960242585096225327724596851893186240107785585745848657658963358943360081458039160893001863679614762544540595710994683080753487438712403122500237095749818640827981924719387905854922603828395524846231755005896355506781360970568961378970699142068822355492457890362492714268948915465813376415929423373104529166204549818559460486972545167257623828810421561918162347869691234604817796200617003160648069420321731890751945247893392236744045317891850204639178129800180504364362970550150002906956094325233800892115700143878770858037615337316879869078375567713107223493329601490602296590601831277387203446328785554354999873720027714249320950247960025286977303706852106942769722170776543827299178588022936376117086498058702736726475729145611043132473640492128454289014475895590280853370626350326036908949502778518062766040776925949094362921992251275067293664625156082019575595844660630425116499200446792784119093441058631960063834151104944260848653567011976219687553687830897317033367207147369080249756188178469556192110231605312668448697107835655418681149131257116412211313687012705816653784259876105985401793986311177367476642106461975255009760093629698112561430869953933136654353281526081263623795998940927036122020945905571245064341907136607249925597522413970276528980160179737757376760966585430150392643466154483850555968122386619286701668492561832539864143559134326418755203136883466936367247265493623197171382462757303214308133662551333882488235898374650895054733136290025185627335075802477718396714656568133884614168670995872377719041794144847630325867877325444538144113131956068803372036743143369090025684535684609198453312284486680585459874394995212037506741662435449425748764539003268371074166908435418296647926027282336511847557257587737144996762485418283862042729158609927490568947360207883476869978961212953559078177000619084739827879996798188309678111012263140757989403588171974052790425376775406999785883015762897621557447184624922419434235978040759075053952136197702711212666212877295970313307912847044399017840138752556413264017403386999047739434659066638531343835347186404595163832371637148874277906020268462035290939555285497544748919148997481051857289867541372727107234482081575043135577077976569344394552290426034993743093105978406910187739943819361082210939784959682406193106192218652102592359229233911185580747101240080214099283474522275451850727850606452674657337705582590217789383402686177737896651695456799281858425281536604305631949456286144549876609419339499303111600601798929520306677332470321901901733398756419970064551838778951511720812692370375890925069445722390077291919016190871961081051861346458103329014738997427981641941436628556382506294716789358175376687921165545376650932425854981526499489856932994440924781881028221501141662676261586520008044357591067313102099041670905663213359604815535291282620530052587614726686174567639738126361773283181672895736627461291383312335591055275789896977234186523022020954325995656953656228441166953297703621213955353019498590437983262098579319772455614688782429227697239077880143290927425328296674942303539891406118297982295589251689363109790067472276894395722832518404166627300312393352528491639704122344054670657063027724194241300806041823094767303276812066478960134476111312264278821769443894600205070454028541175762477261656796736162517363971811923561259432615789328155669583985378346676032803377539914379215115027989458010699595739956418360989839633819832124454477166803629364745734507750481842014830634085165429385260212800289536415366980667312433191114970221871228391360587609730570587647854715090521682608554521207454326963589206570392170994732843608619402613307877652578444170123167635779046933892277781447235830452492225869129952390115128011688553747638467528625687920695388100234283132559520052147851469204131035901096543084168296897619363087467938061561766580374750561073282285668418795223577616246295841862844381547172910653016192166414646072173596734833987568924855727327747218148877382617115160050250800111562722392393861473632788308107347073997845192348460059755812508529798465387619953634360251141974062222805879840057149489898623093028380583866507373667970511298140126373215142979059288217018412591006313670647551587764917859650198487619869300005484199769238330228989443270806106343367003562932446919140781163083615609182284763362143667911090806778656704169177356770227784673770493788896223982002072945689514733890695782606891174337723116108643997930132820689962441028774409773207574467184892049345169797303938390768073359083663869254772089207672694006664652951966394129449620476537480329274639627780248641108553534872571220752781467785864017602334624718872384967906051985363664245871530359460251855886533813841074857769231158803853598474801557920591379137928972217690367614388071305517373812717268803930814232372061600155950534677398923443375738778908849554380508512001674884923149702160841210654994399335026557037006827393332037492192268578341892971129702225028734545603965201226870586375970498954825796694005016768297957706510279373680284038404347420578748757079421250923942077067987881023717147308853183353376482319516616622049131071263806267430784141201933658035065741534260835289779795383273838407129300291352918214666371310088988828531704378142305402594955601440770156970774818366693615729109835327776522056366367886977093139793459991700687313390471268310865397503827062259975167684156191450515182134609370967584171670292781092677037574804183085142118004024581753814301560798777111934767647913696652436478029228985482087588528097392308450181702038918365840135442625184407064994777490998838756778798695993502365570673426805214694828608304991184426614097271270770165883234657141545675452248680710880671259348035431927269105741193840782041038264860978532416368222314623031502055164889131312996193066773637047814579291844252976529256804158728176910500417981089767985871117006225302285332254589389430781511514848156298384648122955142605729720984010370350360602048653452822717584264750773528299157582581680940706590197806208616889924797769889520966492101970995018944296343495096001473254855758921703670412460842255614240563390816585792980205994637552436610943744682585076447255360983986550707756838965292457527729050039962507438552924930105606747893238585582347148216909616691677911146704182950134979221845855038332342551025847875449875020231230296508338672331859917332479586660090258850268520485081381712662205597597081117300719642605782942764428273754279077786077476069697447297165887797543319448764171627990068838681642586084016309243658359139439267832240949210978763229512813012771413566662409619643226208789366495783680438868354684224296079984142152647934885456155493166842408954339889525156749716186695310015452275310027017471579776981590690041862995209489938003735335000447707788470177416064623286291880491707245811360772048807773272085208492588028139318151945713974181605917130731141924305011821037152408579010947165557930896929628367502553285926338502973201891380762906683630334724321361913434553141432284739953856007813040834844217976947109166048059169261448542237303884747450736608345255922725296789732899198300867354224937778162359122249084282023568610477760870899357166084727461725038843256317882241158496095185983828782734118646237388312873178871877698864972210093344529189408224134032104648727140381713038895718926940759604585489489412727456897923073128504650520388028702259620001534460163708046878834018921851444980204064299881935073907799238996480463519535618611311203322701935536054818935670062126935755324635638342353217593754093255068014516735208486736400382352412891648349294139237473916803749299946257961379172705031716863473647059757985134009093386942446902588925154856994112165589445626270466919168688209699978191147627257352556692326733327894942775460251739433076362671648450211103592778347352653917453173956864576224490239097459197691447916972698753604153123504407056502541575900904284858496404742186451030582558132399093933721601050814828750864482108960903708520179187291977115107539757629519090364661460997667936858292398570012765468900142232068138414717799881214134568053204587526345864341170125126481650932115789045002832367028823915612186735661587873523028456011914274836474102309491694578571213437325349050287013798887133742402660271178651928887193707026428526485800319685907823349105545926685886479159292772255217154636660916578879830865808466446345857333844300155387559895244234391880121140969557707446958901039262316679561671297379887987512501326690894740993561277328647586245314921554773420447187291201134305080817508322497801808276508666145699539149290384466119173662922394102107495829525728749526642418413364507901157387556049806009860098384009571711113810877845507680292054816594324993275959086592788476715212386452827591721271529395961685107639265191880104855364321519688154423050813230456690844720095497773218107948653816549352114294846373807031391868367247599765795066903004504591008382901247806288782936240225445488732348034884243357564994392927327976410781419762328221442733846113335568218831521602768707313682086234594544917479803870345822678422146242675157230371524728845538498253101821839407076399404185779513153722003402874560339204420270227457658287141381361135424761857572668375618790848820269988122374257257300936083319104845973200582623561406375662776308639095915073334071682050566688485686933489224580766061377435470576039670139415878062678574088572004803326297336898659091179990447156465890762816239834090648853784141889373692394552074298473775509742315115777312880037862949740654523833723040466173521654317977606641483526803544367891351093843975424426682618224590244581243335447745870218831425585661789852728015656872793870187514791257834066196738069062121296979514702224988904278295060494461705044337437199821508677114048618465133936132274224330527115960133440069483606838860329817384086901115162291454779740073316867670434888491655069212702070375834013566954491095858955867402458173269247215416384677758675516047014210671340986166419430603641881948894785635047163667740148073707826862653879827173652517554012710292103664798298297397405017736036833755555874118645203021863789537854397987552011559094064635668415413779325066478564082074703894242129618485168256296674605663861191717642216601694566771453308107490339552597898509454671801905668714947220446829387285742648779536189457436507296120692508739177252640011902279988618767757765923496783917045437617560437109849790585706950118502454339868079858370907956320461577410075032524028517993432528081766363274009159108743126869473940970453393296309286978117543769912402080836317537037935895795899323041861846395930085117133844951154891160390836254437762320107756432277529308858078660635177123229271960339603864465638827602341865608423543287250800518672627721267357686132204019076168313051663636082270715212934963989652262278992430837946181654508161477344310834937264971514511297636355184650058421619095274056592738667827528051439006682059261636480537163893326062549324102938198142397337505781745880451359775266659208885976560222287595059272477715993691234871144827025732079230416448797630788350590060289052386971296874760537075466802639795672507644516736101527271555284168067821702546982345784112497671776338618205017999482565121118412321289480659220982275311838284583867363347054634591403545282308504147274821065934932134584679047532609724526996616144674308866552078995164538844191815551848984091955694304357670055185013086124724292926604491117602820802842913221838330600856038150343816755242505791449133424040743285148776808280942941934425911240165786098494921573145259815953746016625594004034046334773802439678772938121773180772514438239170598292428250952848903598065181161409572459231163436058303374063167140668042509233086754376409823894930994422164669884439512702602155548639064332305387815666042745813672459411599987277729199975225871616097047154661949768534120969526479159029271445239273454316968697140286244012543680855985249937263539867957044717086108125385291702291943081268765625527093343324704163977238433058993004102451220498369073992214557320547223615704378598255664162055005726787477486322712470503803724361936043375501469132574111322400473252739823077878058982164664333885819745417095258097278995919588024396414857012091999296383774521869728347728016268164972843347250091624410762703279592413679856679316973919953987162555069413283424649889231828607490116574264632616714301624167426983658568062542649000840910042068343246426530407492959516937281267258322416431596512724326587285349110499010727051077490150903851329835038736926053882764793242481445143476953689653154763720046564599759934371449063064615675506400278569872253157198416033591224035145764301351392824368211818560311036524442288582756704369248205846457603709885430921789673265726689791133737886791231344879336453895673163768091492110828821864594537301545868866268661914271203340567637708463455110541577444475895070413231716430809490898558522743037498685275678436605955144640187096401722019537356802098894279927229327768119952555595808409206020059874007311638003594979154943765986799703432600067752960177090756390062546027642160984435040752151850558271698476909566594287677985353100313683302426595015778457653680619434400773039336058993738896786852660934679529891387586701876950028855964111173244666972866259992573027392974108022631366906497911921278542100520147797244046841419104745201839033007127317073136893712996843870934776106845420375796096700876334883627782334886029721649615616879906574121806284893326261218743843600191333446748254406410225902768823924287713800657994685304111611720565430393856347967063923076959988328444230975598086026193884641415519167552645288527210915024399863660410093132461550973780541738410474883781067001331747476286339195151562346727952479088728165697446597937014629301243729705041326722527789604780956943328852884468098750358770773494303377695439768823077413721439129881863829546068908647771423585372939554469778296257437125886370008146365798675679314559450404439174684101543320215625214917497699640659978203539207230382702227520421088082901524247349942467301548714222899315799329360332872620615347239283964578646559227530819180282640280700961460293518971195456632667035240437344154966337641783823322821381915913932162842859407933196493388369324018803580940968622833013455940220108505815103654100402369071353541690474232160455307737373703197856530874859993242974897165748730375900480864049748246389475388446559190980248922001659155240476624987612285235783282601236346931410943481742961213143335129479998236975426246217164963801084627854099629139582421643747838446088263242725759916447113002684277639126951140418522113775574044790752719448584091847601951995568322439700804919020650224944580778591401410665502567635501057123965108326986041116471337341486610562011474673524256223264140929030426037229280441809458524324919218351566141718605051606010341839557650006123933225854411579067787924806063337565581554579532048474935765161144278899731785556036257677454196359685308108295132479286353439626210502642781987429425776106037372409661362169816909017120013239641391488695856313886484418931238135666945034921629962338871214054150137173481063786649010056331161157547998664331313605073100087107878790612076047534545789909092615329249753197041266336190327373805523488947344350229670297016200485781452229196590629375154550964269754135662686488942814630234733690342124103602518239379741354091621018927408400286688029001717192733972662880947663995522534753362423573708005288030161393514777590677518439544178362276001700157359505559461605209073513536107933392944780497599617342823676093004389134607460424432256084137613123778216536976782135286804131564829644705826990790250563708592230390186600857839238378674980202176729688433714477965331619160522607797746549222648203160171427113820412647839441527709501791721719794980171054493851808613473230911425112505025836938837903599603144258156310476805529521834808232362303188783505799442729914394418019596796909705072351075197604635683994591081592625971390325689797805700913583399039354549653470349786201488839540469587789674470275639305146652358647470053906932521182604969426557967500972386375163950834517554398232739729656626212035206375070918259923783460625755792611606998749764527828179844668413425089805594353854518318718255332316493164733313354486289406123187790117229656235977617086835674302318096967413349344168673040756037648749551263172124739241242093031867063116438664301161294524105273651544163835141413638212409769216347005852262995988928954588040919578706524719111751671761600827226150021203332608813070249048594208434646392284306937572690051326928602988163030843860214526060813605321093928275475266824184250483217912365309474058093087481957703177098487437049859343837846333188346443799106260487236229607064837432455185969231819854383330315747856727297804141755742361959899766347467350581409496957443556086059607061141118895966977873579768123589329169917185499352687912017081761306032735574548996136243636967843183013475064630046194453895096577796610480705150318963982217502616878069644657596072382564579927300220793391777162179615134895577432902175198300062837199421624269090859788630663017624246147290997844689009479771456605281088816387698746037335458018789707601822099386277515914099261994221033953338172094371204936846331995515232896350337319683757496687803533170461163289239504722498938020070375580208578268496137072090299810212998552720414782206988282436923278173429822660630820629059362699808917518767905481202432108740179799949074072966602715090370011844524367550540771487074760908746428867188828320674803738850279971039862520947872327270076785307095887416497702681714039852571408610324073453505741894949924079955417495986678769671751004123540813519434175503781824529266355018258282247777118250544237554132666056634286473543533454129811980807200060568236745452101460856364958969721791621795493926870906897500562364649751926844374715381164523640708306196405039999932576407494197911920754489490663124964169044100315740735276144039579390834409352808765239544115023707892979390622535404956329165656717374670682257823513562766546517830426614796891332759658255047018577386939323788735283641538411310923501904613841731247279917203052205062567408150203852193516004969982017160116262285012874860348227302142086268679236819951387080683056052800846172736177153473295802599410041958491934392104970141600210990171607014525889301543905462345660906686659053531394190002372744838841999558548254369551947019987072437111256531813902909514129187686182537881191058534329285015625215506949945565117840707437465735497817426384940623533011433942084304304434703141934094144350441306046155757732535141462664700721625464868909148236918166187544590697798422281319416801085429170813296548234381737862676062639933159284031298556868586991075728735251290360623331609793365036781241270914592763156941425587218897717310895839458551616268529659455533393215073824908240995435495071031924705531006147608624053947807849594334548449767345638881017517021753421572036044434534696285265890332555465029190114933370064123800878201456746150137078648749505085566827352278780576681023919397685730692354813854662094257531066243747194733137624409299311956008633682152326636056650205376764437521748945950344997573281746807446992611672405017636575177628146432541145665637794370486015645876432807323584960516207919177014408561203189999882534264695208015566042947233139480357299903868273493952381623116397679229349729891142902065311538353856007051202181609224255176028487265479347014259366602421160947980142693729427390115540637985030429218958542930605975838700226913664555911316259162378130814289029863076153349000954236167943603173663918745750769156169131618280498735709433336385694313449619061747502650098172116684083559203671920152068013173168811117315386319997001974838929977498600524690588157661998649479622046061810807852795752882136849117059313444276941470892799170406791197755997167044988147244174865035425070644578075719340047886800382858208756840060899265322503101869036400289654036341413832532857127012864765570314441855980173714171268821750833386250239555083095778726436223172462852162150362400261311721822434786725994476546938763120845872129800094364724197032244880211533950002278675349665792232857818692544573760078637948141689956505485637280949905574165314743612693383336095040745129183060647012198015837186083174697425451460589187929303334505543416509816991133879546715344945444188596290588256098101805073683171928353440327541226230793637393859379422673090788504439012513567280401749244049857461841001029643106162129088649513128532507170339380978644501086132788451248134408463354556201776084394434603802496341347792829809967335222905821382655782536831052691274226311468472730570217598095165460479698184117489092837400430891767437419386849402639981146400136038963375192426123904855799463474669227770124399246710396596375073284493503870305162957716348362835793784918409528784269069670563754235064440858440895313083597826430133650710580150929781747541802353839869311541426474704203263029475688594542439131421237212004969129707742989709133424190600992179126353737497566023331027858667248005934867794887219924287322198656474454935754598775901029895656583310689733462128306088074666719555232294490536132916709431950758943001788662394096667803460231686682273222070074270328742978831176566280288889170855704964868792594683019083206055927825011048003708525238283308690360255110989962023298454602625879181621551408090072097345000981344943247257266145839336196379995504420571053063963108815320914236391466164445544269748776034264749625218595348902710369004429237220682540875365673538695099192434762434058630005925726417396922038852535185322667646216117622911951834542750406365842626337334530579303393381209302562153012239747295075100243481704336423087203820803282367862932495156612089577966394755849243370621671346995142177313049227300236302184771584565711117973319396751954286476000831459963613636918217496600707325718128727252017497786426823234379195934514815063112759542835927273196645046687002340432208067729551782687416850830457509163769974126568335442007564543725976315284493218791355250126337941330767941580070078223190557133257081097966516504872977213700528243258695232394731629287912043897970576951854010911511498885179774819205580033192491397473750101311153632425855099574782323486357178954401577416221065596569750099152254134654444021119725476698484697768827206382527423414899281459319074870121664335962663197941952659614325661569286256960464682642690502666270146518005040852783946507988986838687092955242865722411507590905134148858099598437249070774444897975971798746358647795052395203393632207337082796538238474416121028994294516589927617071990886051648402900757325812349431527862912946902745136276278817904584729456445118518002094504756010641916178221461747529703835280835835542762931734630325204627890203219438923536443764364040247486592081517989120032147343978502313917546851914257769500152045153744440080051143887811115113984976119491600626755211480754038947405833067027930682986879102207753796910694959343606105454418985368040519469168249738677979184936910818521963787272880108278792731341641945076298299789120379417448542564825492681468168169215353890478563441302509365467059575407018086629993279433912433411791111005715778443986638302795256935218903675321985792165992362148650107061622325377876186856423658576977652638439769911192161329892743889807272094746352146015347002540285075331385932077878003008716301970596907175554297069553898288787879428588918885462414599570599102344072452816370042227369097175067505966389860410894316462221023403205442866934680432005314564903010258075941216119896027466157305205661682654482672398242051353025163681007881242861421788647094147605382479288401658062691229356769473777314996364904754246092794168735679759803980123666857433714647243198948233820839040931245565061265181266826331033667914401145595812940120831745870613324855891188084133414063354223256355608338014407012139995608651362314564397182944961289558122556918159313240251486712542523863101985413138801542692093143152187966873477618489475678468033069078081608852544383895816229378611932174204626060355622229298307457953816902604107685384297846682577385040162886959172571628378355514784394297063808058475020671141411250457803314249667294270681683566193511445343403496726977242625003604274518203568749985052567830063869059763208906768972173331940352427856153553240844043202678001239011614628794332817529951784490352680140446682926969940377380859666324341505337018895817499791005431432655142196461618602832190680635857355615570368818729111511125444057292789640017649777605227663438849741838972245683676735948828743621008669811279847275278018087526977735768238825014182530714703788136200320612609546832408990528721087300014730818396435468857226886660396814913886379796430291697989998578206646337297929540778301561968766889770159785117654574093441447180824302771291102874160270537130525797362655161249456868007539078341497643440110763425585334744136551390312029488830142945538922480888452742263422003654131401121596592871468917770528391505034106526620640568479623847007937565407686555871440462173667192251745031921559199556241393632835753445747818816211124740168701715542235538652902706906603796136238052554677348061583590654741239440918324392282005044653829287966546191275898068890499925010220524960058539775878344939912451275122133599344047658897077356103158366153571514179070525745752655556753509399473676234011482688554640728051795366786272722699700996543964084540928637474310691489438079636283628723081618332735182053644679521741153192447735534087024321038351920624784577194806323189160525273243780398162895575029375431341540172900162911153755581758172752396476206207952368998053798769462087264134933753895059393957182104598645362944217009778038562520596330901330949486835483774506073639424732925817035643536847151239201720332073488434549504819786227755938003609212682914549499309262682593351526568945053310239335180301811015287913996478925737718711346639481928236814853769561532768714327325091286437289614727942377653884897342240749931235130688752529071479731159560869705726861569279270105841078612700538889115553621740234018654400658513598273150822093004732707389180206016801578188890043188118148515439973818671368537560682814799414279973236598144302412577641740388099768183772680392360711089824706346794693041767520895519143097146836502229106957032378532695788927257791304458904291007195645107710098911949076380848846420147532864217001128444821512354663264378880721161716496265310727684479754838842308404907196186448407723733321932468857062931179378184594438026754675094947594943687864875869828200624612470211819162669294972331330680100056516705394380716312933749597234425020365503373759378794552109335845195022635424980699926779231232168575331609138164460975740650492669068484314540838379801551789371663941638624434926022169500814054533917314325125981427703068847999178330407921505143477283119501049838638936857508242769721731508081672607630468434377254168609865373535688332362992838318935450613588403106295049719587623836240072484344244211799746353633268713556689920608190400301652286696336261593480381490536504608504602584970393656866135947892042712204528127657453588973577921712071853263454890006200906135575153785835709632571724977720612780861723567674918463682371477905885837635456045108637855884721181274616275970263043448385200808469378575077158422925285796013892454667611325762772561377616029672787399196309218206645701667328300861721078649592585366020257174217766064950006814678774655634649202553191126928268056818435197722140204433291338221802261641283014810789211892179016299108678012727268517413482934021994306280743867826541694345597964500477259525697815453520833835331720391699457825688503648177407998630580245817032151640457345296853561582032839053485640731532622970448514165326879775074642324151190224934986486061481449913118403151114655969946680322709435875709971760572132297575683159580571491659338617815608981301459608975403221327270726074658823089473167318442154564947262844274731401789823836778033617814220142674602763851025880779652897330898705408698608890106024664475789130387171111750761394635826508564592365510921119735228990665004947632909232944902923184302230552689586096738170657662514731512343480275556982448851488548889206027383256167126086647130732848169787296526137251826566740310606069598378216689533976941659515951430541848656849871490722253897806560296383277004943610939482227952981024922058658868801223832871983602900289576119709872340283277156255890196095742435823465297256730840684625764234672985405960143511843778860055094582375892118514690175355299137807592025491695860366682600392423052667250542796347288647568691646059555512359679573891421928364725504563700009301865309248618443095122835590100649533914488688628521813685993144334927180896147071071032875389307306834176355154538658245137502742673183554004887693867593349051163965465516429246720922489529973241048041905654095120545862277239577922943148230147853282998620759129388361831337996523140906740399336846334913179607945260075123482609366527421188666313572901537672235920027828796458464145049432033944188567068475809515592224825119189714329897840589581858729378569903127970633438363751243406518785867753479194445387198199653891043937684131752292661428739301387989190772192974985703299573359816756022820483245415102180320043338965683147053970861798516628912036266535332202533152895913811962878894496828056291459435612362989828024402899705347326635282679978443349662725467700054818544301897674070759765192958002681953611132045514307712390173567988441938759853004066869147346005300199858435807008367275354203372077640460319993725832745928566374321234299679466095505312173093596064106106095046772953591155716061185969314565180884185113453834267035265635280447587469174390393000211423215600910070898205182776157985931456953036193674878199745438013725289640120031950086148684765526647174653033357431152847406391388721104471198287390241941882539070023029348952313034059068133961796215124917922121098980971644974350300738690025178800862884007472237457906551576391210906453095799274906274648354451956140203194411045846397065882417941051781178693151459667346520154065000858280380850663294619647475341170248658084579996244826680933641553566843937383281161763273142530180511212601300059671932230864092374587383913628562209017413570353893158840642526163685705694550913333881301454088361061312152074506758506331859180714418980045883527010363018555172229304227321812661239631192333596319264327985410807722222710516078624230780193881982135863548240064998433099793038063329426500805331426981741136481437179846798974885803911632536495051175313854179419771715658484447006805534265088861200641664638814311084837439760206316397495566449744445966591541135193022388808032340464397724717924303792950775331366603612621025553928617202430683564556149459844838646182467506022588577982319306397647138538751348652829133161402500503198474658109724565386772778863297279015650691229725519615337830678425553340483327642471438933954668951208527341204997909433601711830593387265542485485610314948539999658231178434149972188113468931393067427668265393137443578536028389786029598191646842418469920880914592940158493014030326892318297671344688464232261682723885686966504011013442225302468265839974697244266944727669713351881066571065438975024209164302995646276096990634599500382468115703872445188377866544339469674824646325891339383624725045484996157794199667907732562502074968797098393123043390769898945390010781547502796265689967779373669415089123910470520107442358678378458269128104729011690027656233231410213731364916829357784073321406864641242146651712854223193916411289347106061346601488909370691652609471400265818336018198750338688839453032576709425110148264034126370236039787093917617134632296493339634950702463772139571965384829455235413262375223961641291638083734932158259644044993345977361393943412095877492868813624248023431010573435308698877560966408753212226567693436023528859363614655160921722642303806757276092780174966959485609339074904035546916545590873210524010653419110462105232167591745534048040181990046957039353010613109827526024609269448801520918150659772933057971956911871524491397580320324823785702742202093825631949739640558326907245303071582301247882253866109011261573621076108911504696911878449939796441799814810155735875957190180773017620078863842444945117583242378790519784346647026609146600149416042354747446968456447993441057389894840165909038591395463229135952771606398306479785888235664493105515656200580279412045674666601743654765406733693826811719359260230364749199898984787542822192139932527537485402520176953239177837310986215585598023867708923465906409925750236438204974089565763792173005998405630410039952204337113603069514421348261295325146534000695925058764325246129711121224003023137902951214728863820787985843738420044713824903849027190878493529591488752723083060914607519264967737101531862412221655660459290382181240547122835211239154814154153017544490463292598732812604197344252286962859011121928637294850285213360616234884112302816809285911179951177080763502394177399955555635769803716757407276039469692182252260293960398225165806019845627307058697826221237193220119423200157583647535765470781844553208760587344019212871428425574432765731403256470166210388026519464449266855817522491535432635661431243978100191627708905674536248065663336816064379158988972506391079408017035766644769831338052230191521158993694479509734382772834425985920309610935593075589016704472657761275517872085823028359350669198677402974876944385586468499988313411769636857213765379186689426380283874679013442829250762417734487456608229176794419758042019884496591250800428066370874191123350442912048545629669749713567053549927763088006350354557585470689469620243301973947937241415600295471198535594431287734382729960244810019891290478980112085747773816451780322302508417052738916659169120613262501827667808620261914548647183426071206225642096957637459264953638056033351364525692066417826132361384075088725742948403681129979836460393887297857461209021038724915886241617915969400078283924839872808074543630789453082091843599759815125722328010369495763365440270654673369533087176775866919709097268538325695952337597542412537438307011655246951334903396922171494011941282663949766570056512100122654447638299060085395034113533229612828229674677740979949861532377432611131684812465837752142811861580892456923820579749056292395330220117200267902783711579730807184480118284138071876567673252821111007269445930385056367917097834388951339565441530082267208020191310766555939421622344963923497263990793339193894848531076105170028372210971497323909206112106909083110009945778530081254747498092627925515993785654870836437483696233489410301537665351105887433328043216536918990551392249042842467731984353219156178041122348864196590113037260930671754651147485508938207511048946634115435427206918806750713269313768453057749812552383694342876582643624760360173029276680373940471404557393571128328103148249169769261754743496580290004469226885139492083277250027252646146616361569974104427545732135626128416780059374696489428000169235812215547240667304526467854638714752374068844730287388520047076448906997597451743142993316244621869387724871360115537145925783628342069124389422696605234252918987995646096154062670379947849899236207373354428584874316381500524464864010926495340230471595866474428186187005828959748191410396484435472460911386809098599607855228543863655973234189976827972737383349393940309527138731491482338447650971015799174638321536860634466299466501630194367167300825843706167973161639049777183830091718969451227367272485928521964796392082359793824102856425725162587698792713856307200005717163424323393148744989719155362524186981437849625790738836942896729674546451607032117657774529800366947336928651974665670361749035825492801029707049762252268002687140137663722196433639645215800504643849509974503970184373477017698376293613597565913291114894805370991827868055820180077467758679407294648995495514603494834934735878519430390918285155990512083116535420241744556814054115292323904713771031095540625365463077129355556108400473954287921078208126428492897084616818545865580862379310121968832935505202330572151653164287051182405273154834715594668206083709330754234723476755310458259400443913934780051900452275155964072755317086972393178765106273885027619561680017260305119131045107849454360579793979816397695303237828210961850406834247651835384957482890708343832697136605880851166123124761216485988304557218922592726594222947172198464196140813964029617908063207747173952350554006874331183994627561022792909411188533465177690747015730480047928269918344503353498020400096712303039374552699212219834419376609176641673704208013780943883286275984372055548996112237770461223349233146927946208742967328817062552027938827045954362293522767831613972134922244171331983089889692453175868808183191910013252877702381861820483897434120677434927545002689481527406034961520375326533742001807572227314949391093838772039068055076483581839748980125189178849273338334375620106237257727957558729048012596249790223948745305465590696733664274815266699700954921724704678191493640778224249634761599506563447661018601827345666733826299968139347951422549366339339202157032967686768254549323986752123586667102190933994941839229533211144483072820530879694215259168489106071018067557872661422873062932445613793757152853249869984323946431518615686243818733341133241442008350561510063258550073086458906011814979034464952640146093617577875735442413165275724926565224316033404510956200809913843161904143216693955214734787992622293531217296603330963659188930973898824910859848393132310142512963447476524119285719850674309437861580656168803432651375059990418744918387732481960580389530964041434106701303656678155099556775706683915594033916829461873140606486010450822207415865500017072880728675652549130123144664660230835333384750737554567090236285416018204885658735957727809299296049428516686422435470942445852207425429585450724345108994047060082549059198242266893871459651627934163534502822956678876542902726693509204358478286961479387351738299797779803845551264106129228300957716988938493759975924536465151278326586234047654769400831712490142530289540966038891454745293056354133527477330248159195787147805263267876523568573406103186568124290938005507228691648926445304026152039415946803148792309561288135120410063328938636116147327665496459015850092670295446813445466692910213383975978941333273498817995487565253141697313409201353035507584642246463906966176261363969078668970170494581720325991426905777897894573040737192593017320618686119709031705868486266406272358365474258371664253049842721635961971992806282585102345128221149816887929635580184083917612654600348948001732993486708928620589136292559675835128537966318594941553771504303670671609276446809737769133115223602790783292763003037322042236684626515766658819147954158358365877591215128237351274934463598135558018499057530578929219541913631474743626594397560030768907432158520875562838701124730424620574467718692579573568970011490706449899580328585754706233304837122097255946393805108536753648845045536414737325684913466898675436805298388423846630163479512622144912164160955486420195125945838198112121561135090880370943373575560045091977738669691331341605352001579802569666544428708730096626338039088851754363794517200655566600251057997172586207953373177682309750543544035505592328277790063804442955966679764361987498894979004698240460254813379519088074527758843780571507839970564823769939651315493026138646930510941744211631603181789634200249351613514539858903432800215321771970800189531601599465303653049775161247220580554411710905883479731571763345327956059409894164737789029559053151614522093106793511891574572564006296050596350046132549848866976899677587353291788209815134657345161976914244070331880460874920843466950107360334436039262678770583225068649144807875330909456178198435115063251300341936379237331857585789277180211878938477503213855980461977019909411504318836595237567145175995535853713184546634696261566845456360174953151233235949881642705586967527588097522863064652290914390052946240746700156415652993577396562714688453884053370244744739591081669529022908503569904174925055325339149277662542713578327845612436710720350953557479305835852697313118197903013587609526402574044590300010948513839432990252128023224705658480525591295291066986330224226436920432907597303243589859406151765099048460096803704143606709162487533647327827637624910239201394856418852902913389849443106270491824565520890132502294384344346846996049900254446083457796019826419948960232824179601863445994319492597848231380480483399871300993020149910716730439715059237599434227838388268048012446506114882545453245033166518282676851544360094687862111610774837239668797970625758604263679115569529594878623073500078770335093579724697483904409116242811672053340433416760536704919709560791270248496353833620980398364199875590375215417768397223332887981528667327828363519803274252120563003800176551405211136589994836233080275313914198776554585939821834682533225469236636261187686593610383824866426848268827824713875408027886782055090735070902756330889077736855720851213435759444025934075649172225960022192840616472469149339274360301251812012990711050386104086283796580661299656654691317177662335978918434636262240102769986699108655765356281517047849382743237318683608510407615905201541261595085392948933596356401799366265663158444165242899172552761705109376413490133717948574282396046462681449093443391158565174163909190348799303532917220391808756203658774607663202252619816731147177087159580975071967783110230722121074513084544727206007786365158202187580837815424909781456011900159666488660894018051305570021958324500642475642141035209624934290658086108783864542668544795099067770016779142304202542349495416404931279134762281132823622997158735958471873048660666787184925798324975653295442814820482329405117429517318010218029685350468008151305136483970055638225887087223434389225898662700532227947138528938546600190211901904475990608409925771446780086961510490756609944657004968001034262396304633180262131830929893590136259096987013872639892092741558904504967629301521283006254942294387841518266653725002479338089540034455987283195928136948006604625280809777686241709675059831598659809353217403539187298058545317514425070520276922546407019829531724523758740060351195363963724189498699031708888092759025872319104406339922050336536004178395101050106436033198476566254606868549323138316690165636674449520475920234189673040655649418169673936415710670315263765499523176443523964319184503022391369938276579591852072758176305338911109040855711776994934918367346995460069465441206273942856666441152267979153917921247866782512494262286239044839423541995510317826413580098303991688086893249692401792456562952024805798620304645055913342516607725727294194724006706207604749254432183084634777897079023365677549885892478173409203640819047108536145961926538671813422120748989557249330724177649765606237187885757842399068211987464426280144666456149852248967101841478281903135634509018486112087622122672890312028504449074170559100166269353696639017742690155016542655683806069500714778979442532191852966992715751187630363129326593299995522740431524321955569144405632932089325482063712547350693851850478660241273456587921168699411189825664024710738314032881251530226483881656012866876508980111652827550889208651669396475101245125616623292066505914425032691427915385589793073920504020032367371297385249116644407766328178912645002083540999130936144280074923778593969756304791684025013089082069605505346277132852704710358159034255103710699333630652874012063268674003570225522554553805552193920696627005631863338149008288826913031616545850010573582245854264279054649399255860445695348870325686778748348941300600653395130747548393900521880991032504659251031160279330111689771470604421899390996255140301267724500177370451817131528217752430291725552582556319142983567989762110368717569857407713433357231265039486031999260903345338755910655133124071032127242808958810812537430537579376135003843776470709059168348394551742464543344412769005384017629505794682139269730582643629479533461066224445561614275809896883186241054755419891672616140656433281302936702816504140544890453281756752277523731151985321664107481468526027210550408060493314873706849540402133992850009542650662449081192089417126135141499438448010570202221307067871576460621022476636823963789522318493508840978756761632439885504202813135025670753718470618089998243809761883960017748656322164392471106425357338130077154152529414913444963742709363950776940208869913242034777051672052755691814546595931634007814727437832402190564693740169275627316895594487155188329709262770338061378550679099560855590360577709969072371176178582332135783607015730178808197628945640452118957714333638887204271724405845916274776883201241170943492113690633753260273078835971260846837300797713845412940441689527347639458317087503964633111469303910843868833205238831078947647782381492260883903747311152172045494915720773481841425845442673979860676466538765565649930073232334369496132279213447461157778798021139024728907032342560816150105035296223091392608736696159959541395510578294918956246750908829483097691105229643666834763751787729071423266516341072641858859892307493225571226673051853684788064101524927586152372673136719919069739208192044533225788968733288209427552914356101527034474026739063394396887896671104532485731048677544245477460740593790883473675452480127220467275237998131302019467784811364014398313135803675785045533612928472039021321169681741350673599191207769640713891602956296494072483265701067156883624128080297356946957935758801742926717105190462703879480706031946671138504642141681996611822942081370880366991522632767822194495636989696129636848142410334290891573857184684219776144515067177754790705914491691029568004754743892194109955532828092123722925470794432716923490686395120739055837066892050343802976737320652634063062001973717713393996381759559530668084432244984263085981970601425325376247566349415500420734437694441276887682028859551851833400826984146106040619156466048933237776366329630842041212871536597943596837350478350133916200681331450687655597381250365706703621693571979579916712942535194220345366001054696999832433124606515408440641549354924864175393339422229336380826762539238593033585724861601463257941568662691763782213996802465432777736624927816103888200252133039354573414302273374120380238206366828447256152986486500558828120351494031805067423951885523615760514156540132283603975746550898143339607159855499247783799140804484191299771667778859199871838811279039265573845899015484388914660460926047826841751817586895840953988244809743972264475133699373110984201560753376856030478453090314262393195523322881979447526147284291552484279518455509516830133109175143659340707696165034211737417240089333191524586072960975850009163281930036648113757356853872446401604934921377933010958588918563229670674546541608305316346021724888703860605066969621115474172017936807638477966064820878400488601558240533728607740634665151865181263756771354635318101500867587732779756568073381783326198646494159843944499052310792972277469067978823744681911068625090187347451639682773594139858852776906310730974457392081730467557774298314764396288259097872113816991805634262778202033776129646390702068222145244297561978401462684817259263281416200354534900151275648522676990122436701474253919710007904798970182686837821286119283616931585732515551828703743699639433716757913474172146291953027628673824098492982598066593617300176114413110121157511705839192601661633506156631182965452071333380526009037779681542013733445810474876236753003572294538139364536034191198859171893986190246230360355735253297511996036750023680235349796986481155833284989411263535512601207551222223596493079762372758038349116725816473564295751738401976887964401016287554354104744789236252656122591875267378265105151744945776768545059007266428499273974522338859969885005312747255549846804147585501720510235136557201456207711493622279349688531245831689079898541689994904862484470678056189876590983910074150866853217089788726943041337858634900525582873548924795049052966264662402539151188856085226198628598165781260352352176600450825898508679783646117427942180949093050229551919703773072965083664120187378151522461489566422885533082201190149134994502009144775741199967422073390856530722633686391827000329173781612558897264834305749682283315284467525748313074438434875979366133549497099702095100517741377082974232990120626023243115077117035275488696683451584339400948934932821428165364982362593102733283379160656320916879521967743605645519509022162327949210326760124221056298827323904249442903542985970003143653498073625774581419382848951079609760944696256802811105993182053231961180373014461157815461735733837399899189576354639461355664947513985717040060654544022743410190606688645483980174247442165180150365223723414767313495819495064540268622725080847661265797082719879393219356507093031820478547779945272024990019462828078356441782762219393843693916576468440288103252403897074013965517137960572311485431607394864975119946545075612777068154744578048634847057411633243350278835965510021947182648979990381075598755443424033493677006745053754273980558692812103930057191046044597551323343616760294977738767692349511267261309842153440646553643995167172365948947935543766458918612419831095425916170846666896575429090250361845289899141798317964998039411119848774845493523722916312126610202833121557243002664470157860587858057343765781740969613882479800961608306110159989775498854922270196720621947741680008829625080315130402768985509005288229905028840171410359594535842456042644393980837492331667432896352867779443549092559073237800865822232222445864623510855851009081474874940217478677478787639007577909436475568946396940779231656068894204267383232557590703113875594455144278136714650579117686568286355163203369780705453715555296926321834025627639537407105723000555956331568096640329410924595471178862412895137372782485441687628732270857517217493638766093868022633645427239190433610625072133985967513802053795750222228267188651025123222527327972253576702742067558214682761270297937178699502606400869612917338857516879252845495330772498405976197907711998571442802089026902249742317034543437915671670726828730579388490545197578161850128236362329717861430470694646419748913122555275665096158630851183865444606432291587845753510034219405300269563875922050393897956110521201889483968616180930457349213350275127558194598068515235259675005096982163537439151479062260534881710488386700433293210874175314099592028497436560163134034857530095999246439329394290691878078268888876425892630694362118037320945625308440416654205675845048658305915782363782617443460786312839818126262445147118799224002929788156160509938745960916246278890647342996644921638298547080396802813288237478436086068834174236433812417813254328838675018416619329756673477873076539778365665723680802600359522958299455745083183122558753261030118484908534419142205932708438658762908277740644175897764588442795652526105240617343126485093068397137722227727397723117161764084496015532909744358883595671190694543091235683480945702668085230372708424073008280979577734206463367043382076469914204250634408959302014127614553672664430375215074893735771978003731287423665504833132727572567595933008711642867788198670998399077091280623035879698367695537111022398280898936134324090709331991832679439969912591605731333947057603011165331200513848058312610707347102951392577540925222338634595317690397443537474492382962579778397798556590918194206014968048620601504871560482099250883142719366741549614434213691146436299002411308826002269219056028356561646406748212440438374210873460380516999755788287989981157672228199317122172883390175876922926271933234389921238516889168615058019078762727500124404857130248750980278451244108793604159415362063411923758426864077099755960688113361544451165490321632791202528109756571082964488564445005798251650674928510697649448097211587228598583599102635870610123057813331947781434909435775469129443019448333153757629004677165672179652541983851819807243752438072321583461875588125541172817133626058978275684469204750582156302038459025592408814301863124587800864251469929792391156485010553088511740419477406343304733562280049863229135055748551403944921953707344100311232254950746351525087711017547679098110330266770527158187231305213241622200009435653272868754021897939283694588225993559898561216953113909533577804573643748348514834144036660185819858974691822829279528842269689127342388832129279551426582157766581427426673104015711788701500340712377000145145307819430479401334647021371777325370984948224974852654096198682490782670380192545335323854140267007318494506782905005743776709168903639094500887100029992959868725726996831193836708433463860815937453310626561502155998658949137001772299525434675332574123019469732687511583432482217280041345470077818141380314814175651267339923271443304185045260780772049255717237247945580469839080582464410812187540721736147193009859658616047364668883671142063630520692356654461317797221119448064515468253734940441006647333717844652495191993424370910925278552982248519185426274856093152753916791173021942986028922184729808439563899679843136443042312031653055779260693938829669935845695181507038627824954430915263601972753490822100672367570783973870386951966074311875748124344831551547433013849802223651329886503776035634119229447343045284767997024761664332590144899176806561938660570798493507280706435128998973346986262278261223730067252118894118127903342831307205542198497732365623210681385994597543861476655773587435594139897354925848139666919234521236244066001567124462815689584522226551581076278964095567793745066080494351298626946569313448654953165629495461102770273105216489393269558824532489874483287135512709678717641291717040738090949739153892951838913574052697235171750863577890342776162077191230138258188084481376486975258728048476397957651867495481724829497216369267759481843910536921055304381047994491983704161901760407165587991807581251084993837044984001568966234865401145309057124837193037759502174394572506333590466880385322357786002182967052083419301792597902393028705702784356803371911184381954961764001323995179138575104353003159256818426624528861373778091650535343350030469755002438456656398356176710216542530712518704986377328222167628171807558986065417412493221142418705733330334202288702698008855488718657373388975486049725576036818850644886516174359255130985792434592674168095496805712747968082633060907868363250913726628100180519703095249167321720832410334192556084102848554665404793865214255790459008658395621127880888829667849654117258985860707341812099360311422330921469790149934137693007941256794040230379669312633110490881517805927187876898888375103611879020385041776224071121614263030485981337155149364194921384425775656110622016542980768601656084845668151671605458601463616860061075288455561015809680457483924044353276718505635186154511384710485176039340752226359896386998576047823978203266711286357368696257126362237214729984026765161760693926276407085534235322250243758931741755186903309629329910784178315748687507023145135712940402507657784447022549389745130707723534357106036110368234560204760533189320508849600706055511059512978848964028412287401549209484071324386644671587759181688632405564666990546636392482457681821248106602872543615103388797570733476593861843193712007410398585425285411707968032776003679706000560305189464742818938450338154105683931118248894712858248925288884318476068718544381011412857613672409336672287799272851418253831397475419329781706321476972955664860363453147265313537558402271942925504191005201972093357727224207714188248447893703075966383207392115586957526084609908259529552546031223274752527448820821403504482850766268017784277776001286635067120243356911166121472437485551960265870415279788375245973669762572940929419915565823777001429168426829980258597391941570484521942455215996893386749204525931047697338223283481986056741333215048822313747497209544891586487580595918388767958194048085693725989444480617769734764253061516016322022480673345118098555233464174685421673380392194305368330953135343448871417633301791781813976673509113798765576733800901539936005233831911026506264472409296154991063261945005093234506740005748166372715332426411374147216623446635549323773319220519621595948871515744116129013682939998106311942923234808274026912361873202311203934101084572261557862849899281584703223023423687059071642019747013924729763376109201627723415581407511869974561251779169173732583876376250466045846411180620857672871451292945446407373882774219951619322429181070277719351599118489775649863816562631152234323203244453255610962937285134149922451965940790144564317327139447089884973308894307689693007254677638160418208494037079416035080752206271094303090632429752569517646290961977520496631444243176504970506597218686189971020465203418878587841355374800500859306246608167223730769538327485524628135450997251469383142037107243517265132836382633615011501633402538291588522642874511642722644457402267241141103071543643373371220717362574242247816619450548021112541294779892282241468014082365668926194773489070529028659402087965621121030527638860537720279004636189938676605706784868020417400442534238156416012233927416185600793032521497638580994586790566054030821754376896871764250387584727586899669674002920103540242105759290583063653149591811521353492242599181015444457390663886612756730123692106279837963724006734050931184969511613793552054709778826553393652512206123400105682711348461158256532427651496737599344300999132949696542103865428256572377438190807159337393844161234709716069619997624357990673852808409604989745996807936343723754626127395695768483689375939460691510346833160302216767816808263417699614527414852305717509114559127058532115230483375278709202414526701794566650101017138612688833378886003928690887437042375179299449277507532641091188519723363443030386193335982868855435675517861652033806744880010212071848923693576734329270565504752738207736195054276855018001845181116196203949163341379541968582082273950603238138009057206492912765184088729621427643800768160046514555434412192388438772791902051392657732419076680305703831949116157185782490413047101245616185148661227670976918083096498963014979609703057273848079480136679759662552905706400905768299250782420636565601628665964399301096570594239493457177458869448484952147295007948899149634619652413026883575825241773648667351568349280889654750080276451043043773452475232860632014307725696599791442940120199682055004032590637578351171557982758013432338436549146623724820153346155861104518044812779578478578460424926315965865784332382565153634213542467464387653227670769261222817471170258233656093187220338177411461572882170044594727655669721247494406680795436593175658331951674374911277018770201837162765417209961569631670718139986727778189411354725157821098715217015706209580688551393638721024537714933399664073420820076919005518259588662288385637184264847816641210593598066574716373223464382852001695984397096745759615002034975776958249176742135257333751687108709934629310628349294476841586395497839290577203869370970822368819816013261834810183493419805090203446032375538805529041686569304943084126596313989217169221021220259968213155245849259266215069564854769425040963899822263885198574327771787584560395278707725372477049655117374203995956993496559270044938196324579909929462145787941125546829601074239027967092251979890020769101209865039726839677386790831582597877387677330375058573748379236766487055191449995479972622933772644995398964042581176246933857664049037804050057013707543655207984846984248322641812725072376951850470238610715635755738360799088094887898113580477622005651827395196776685673271374708426201731748843290801982574975112453310739606439639718071327648858996522378335622147396875166512801953106183612028654545581632701656484750474885865537083248911402812052825803593267650340067418508050891359772982072678101322103476687034049175987852112839690830392656253803210778903066833828519310914670484182082300806000974875178233569123708660783988423339527158837646368021038922716004836849860377254021658376784627678617242703665545735919036982886515745491097115352007728599931947720487360577196238709723501455400443101196548322963014924710752872537850111089479670060058131098951032188945559955189462844638697391450016621825767815816320889775851382375421343598174254257773236388355684969271439409858480000786514889359939906366654483841639633029985459253290500979780503710618118665195966956233742303583526859191177931011775352406499925459152965660079429191614807676159257485198891990806592821404748618197583366900546205431408604561579479139202105395774392859163916400025300370953905104407193416701854702007048808357235397080239088930909216221055930142061555720868019179505296169135654919373017256255470389493245888815897321647352379195909570061338218647950934201887120876516159715696132658056500443985255859469871989469472178173947961030749360450258576667927489706034113874395963317405406804303547202301836316172444195025014476055820955115766133448142100932330334908754326337632024749923498704796603253607608428643040974969939705126371275552384500994841661459198608345217693775963737075291257745262931613283436649013686113192853075415560648406956380017819142740635770009934385815165815457951165148397950886475737967697328662099374439351234586162895567589528210465860913579501828037907832608530774722086052908412881829982382315832691992930450537611883950293756539943397903381287160815920995339412094608630045226115914157026943759190890369189756311887018305719380595844483939480005567863564103260533375081616055060438676868371597793468553988791518629113503202865568654230785163009483691610426156703489814808699928985790168964451483673055584165286192694494822177077227541632616123080343134166641610435116309868518153238731999370338602903949826779412880116914167416423880633250381981405839353201710584934143844656242026737538713297502336482738911374334806693421467309401157329037435294965293065061842857166723394066063593218937601802334063753846578526566365020687030460717442416153957229648479048394805113710804648404728742549190093971106906528212856621283078049390575846011875597360497861823139998562643316314918551019202639388773762838729244694129401569085517228442021333039993531063993273037753682317275962167183159097705635212052934572739982006070034364748027137437531917932072364569530616410346783154151737437503066049335423935420710325955170332179751254636015619494692458535932093358771927632557262178379434997560583822864945526075646863071417884507842354558713217242694538915429300432465927468432289102448640701301552212537887589964112915103730521020413655236965602113014514189623121976006314084883509896125475649502025759845435088265528708004088559405992594746998508342031212512780375088678678577955916873053330553996006246142642154214363191745282355772583520624981237601559416012708460981912780503778812894077286328380536191365748220396854112603494009699593597702324237665719431357269974004940437636503171310851770282683286942994609620011158238148505715121162142418094130575103288595585694170866760923848132510293696508871965856792009358428097962405666620166949759039710035509322603974079579970325883830711753326691129014897404081538795450596378268583387092783650674961372578009203220012726592341700714242838980711205517255417186923859671707532966810078125160037448361648231608902555145399544529380405475336346256752210777461037230117626831088880092868783656899585469157525234156453460413193913360417666912981539631158126058599997523862942279021913308272923087429004396052935391171709200548762531457538267321686245542147915960197155333768583514178343036919797505872707428310278823717934267146774330914086518541210699257002023771303356579183522978692357431202232806011537626819793731525882590421479300132224130074375931319899649292723861009228396540803073229381357329158943887530892255999387625113983711874900972653943052395330628586930351851068748342692761261771192228775565786953686328129984233252648911715397062380508493298669759369014670030981609783358867118835524276128138789551847574464790566516427269258835314453867737078848848227624716000978422763676722848592989314532367568231982646001817824152760466738570852164583527861797011752022024218174962189203221411325512287636292244515791631307466896070805848313202892493846221938304750300602781220501114783532480865551314323510665598780552221887616040176943202167974017685981183016518788564264371705698262453301178368928547033808636283885430770528510749018504467124760712313922845501841855125433124898884837381913944971327944085174114278882962076061403368477747328414786912495168738257260307857477361514946794769125725058131114065087560364655090071880360608118732308411599354029678449803117490608468407237146349845522545105786784765103265539404089949450660790275005586102096778870220166553904424012946976002473214550443728805755659206342716223555191543136572981909145521715220679118565972316392961587994784015864131614254341380139356888513224793201720801687359648644699929521930882866059083278188678198333268479360320823574811935820354945843952310029148637330268414470994702601565533177531267942809565247874462242514148590120069677151516179107472048357265971616326133281438504303266233381937213432536619141415677013269706451032961168876351923321748940831986600486552819437550186149100131663138258163660461602359019704273861661556897563332150386318879494245306714475187289055472790341020650687513236795762303173847851732327700235015613127592506644155657854607785638134174868857200623028870100714193457839961494271957530956755996892512376711285448784223092653906002667499430858004640512659917548990068774783504373843934382722434923572866060106728666820330617155689586366316159458032943220251053468589855428985795729985587263299614496198469224723107377544808117546317796856082583670175665901842983367736552759663225116462347212258824011450231858917937194788020085187471471521835103215307119761345864378777402627753071420904878396496103962356448388614201762507244208308888690710580229537428952174733548219286903524005219385872151083318958959101187783968242168397678824531040196389873033394398743516375834069424423944161020424491123898746381449627620052692965061813723963222815898941873089295118856884529304323731324951484628587750873407575197935159413489668347766723544165163132473948464117491174483418271694458436272071250666762668591152011176168753350298299085941508109112225997572396733898752800957758515588330801225159912214708366907484520187144019530126982006717577029711961032627126868027685546363968463282404768934062962493753666093571272604096104001811628985302228821945166076701675704554955068820887215821955949907396685572482073413782902236653632231478952979013961924910725872264526681609044463657744113699532773711349564215817950545654685371065215528651683664169457069307015963055456483517098470718759338913616683354337328888431241120780974565941524465484102675928044049998002814771517323638946049005182135346960349431245451982984135064021916005876583428410767973065594673614412117094558782329289539564944716550030090305848992653919695252314184644099893206079755201416193112698350455926427991163238569384426887922199906420410563987882452949029848351069924201487316538747982790099353001088141950397434853140723432956657776621172921668047090415804622719229836674391991538203038940500768499149237074734620483752054776297893264395655683100849846321780477846129303783041724589206173366009405426213142947288553363208722219978260743009466039459410961240031078028306320164727543126865677732568663566257978407316454512208087957935052516350270713088115312535248363744327962456185776464684373783287497352058545516424120599750773170984540405353827914690353541625480333804970064594066261208520092175995744262427478944619042173667165634026246525478734195452211173243909845777750555138956846315791360259968118934636967852299989022841681324717163135870391000355479656844973450390021478885544839308423494242439013660030599403024965963859233800341988048663073584961364549004186605211836382768137399731195425355353661483913440229966284341970347456317023736518542054259410842081234633009636741372499194470637849762496581424784788103244481878959761618912998220181978217436531488114726297666626902416501952225032028882112878844367300085063927453018940139302958766248092303906393293532052598087902958934030632250582113305715815705267974401585847403913327347015995537917334639183185739751018367263089180100438578254469806663239897987262904773058177080027336072126153150304860703080404215804981237377263443747362319070302814480967476162690944742753979710103194131055947879155769916202730031536648442519031735854185581313594425488923434480902194850160475929365990891906045198492806082968794059791878125641047228475064020839524352372248657515642086044948411234913224783618954322761974305891188250105724548450432287755208219911523934879459612378917814207139926457538248661594865780633873104891897997155003524775257928545045135796256922852848011615603724852756697834537918338239935447447568197320606807235425576656254484610194197068405653413296849716409525266833651110546377710609838258231522964805799539210483524853094473685288857515107751341737030340123693744167207065603796129182571026063625805054239034783213473105593620375648618060461417788757150254632414356428356637781363533198845611356791172498425656333280185698098387247550015333549504307509882518120147333210915162245939145025597642883484433731028791587671235716216964114508440292636708941450416053273802066665697583623256680432455132563899728342173441603348000518555110534686036874409920729649797989787805139495712664430346150855366284849171406125360439138045921247797943027548290857060452193526066628316333954418379357831083068719224234168549620684761364001501521094162255857626186297015892780636982880293360951349965433034058745175189724030718721979743023217159207231925394196196782981168968209559641719569810074987394373420783560310783119670645491900039989110439465433476895456763402372752522200862401055867388385790998722436059497561487280218881101471609494995834641436464027188489409081743852810569889674626175588158865882436015708704700486648796543766105318741233021428147319182289365905553366523682372894036690060827714530492013641066147615438608547475318353960265964993798808581633665827263215573477390323540737569365043420209756496953106285587664097999693730227953678184362780929083079453624248816125630810970147418522745124272875157128790946554422831175924606166434044232997015626425397896955663640103187971063640633438393411152839409151401486912443913769619475785594066043114422916028896238057122715087528865931899718259665681561185912395659142280835860442760311438827828800439253343248703305521388429846872574668971657186214900691352517171234378436528043992688812969465219369822706773839009265984710041828889681874791324457390910056716756238822891758224339471873407833589221008677943177595789117424392552711833354236094178236052920134409637367904038062354999378495109177775154270481071197343443537320355822978541397946229491158300478729032787879039618484973107424185009934820124687338424574537523213832485058812787369137556527815903360093796428135479355857996296463740361680984368602285383287750621738157666977466233372331412792918048100068006023750361115845156959126682569412800502763864719729159984921413869172610950139755041087503422808400449261506078795041188273402764399637429171064207440989932201988166279070297576229411710189009987965786322411220130740875997128309120335364337225704054081053909794536518755420237717459516020224345162583648627857585015214657876511459667293953239484142298666655599518633010906368088129544083572569722924710785671836749494720737909479231512063435021128367988943822654587713024782797144176606188637818129509238005996918308448461016237156974714047718381281053294614595784692810588690001774410751785796059036889121217645479896571785635061014531650552302891582725318444402159771114584456388563694646777456781400980735878077123332628453009874194000968235053568729419187978561082759995716800344765008896564507331590254451903361702618076619675209050396654759276710880445264069934280258202853802993856756501405351855007768122414059351529805039155014186803637720633145586066208223231807718071294072485210276896147990012243792663811942388224253759499271081333592975425734833600799443140840090279699058212182927226296151731969649461756774727654776785460986163960158218701994471320151581483396183201846565444059194942043900280537343731467683484629014800706579826943152166809810112442925104872346780507047706395501788325966473112650357187319665963111421244936929750698818785121999133034211209671938084694293346861024445360853293540590874424646069832161019047680032928417536875320017494408205923280084252025912097126354365846096291385276262478508614117556163232083270969351993372806775272892813004433774603343623803990201154425100465724972293451560575123066625556003079522292492212092067745242406554371894335203013787072105027566912565088329060450436233925443203204804176600221604298380981354906209611965713226692046712817912364340251186083671837657639221091832775005320831800991294003060532617881862148567345983807618756171978410315208063636188807394852475204171783988637847299587087403028071900357955366492934714823378378527375322590807192821384404885293263359764810974093874990185618906885985315519364764992519699478407869337525416851571591117476316612049469329276462935645937119693200619382332386083122719823287413252068612571994380447796321484521745691542472109812016146318215972379752581940289710249742955678084133988656529885826205586653702699943966876141448936103762754417634492816050583786894280925947192009535118238127263930821386280608888399081551831884075797475098768111490790112624667804092529338250284747550087988456461261095604996633437144385380549915803504253198964135746106720518544770820647378119890164946828570663113607641234027218939363671433469505419456704797296154340485202383679270083943637252770497049412689900635080371328924236141815517615479578109725685367506854447546044131324339699480287313703280588700892782832640499849670267452873636931704711019738313219810450392834456689481312217542120482241839382923927913450699190700946627339016605741248546032725277018281499503131425743036937711372197926566234627528026344176958829945260792673528086145040547187478278266328819594350702800365723049183536893714053278612441154333691890077042506536891437063345799777700806183745282714266359568610060666086652319040312799449785880244005022843286464938774392684089581998171520755079314495582963753299562641208786503239830242083024512103457856396012628351176150974104559747287629887180859906884592297017961427824083166551394114743958001163952923792363115642616378102276856015197172894971594014806289432677958136468437137539229937897098514869325845151132113725871253336299770562050935794171942242746306311329754175443234583239780338759826485976026100815138667316166367600934613539846847888284798172131217894138309920673699395710602098336606349967531138473842213329234834850038732696559874644461745007892710713130804122487321498483489158196187424045664159263838612069334595833139697695890198398721991686337870340721511950747131353881587671824787155905330509246737276368760460896251961922087959412202330886610062119274085646662844484264735380448020541601233169648885379861897836912947638432366259609823731428735062364634447412271846245319077785979217086723889895819277637784104734670667569694391536951053445047907874742958248664834610031490330626287986331982105626717096794402396449917586250224305801981181010102786100792102823616674972020764182761152377361824891472497767796966167104265890200688656375122671378107632006859405618253845453495556716939628823486053718513587911570876553125596960414863630888077744584015586566384920180528428418075526076843914046480379575866102904943649806292970113472486975416347006203317015689405848739790767969362716684752466495833090085189593473760115685173795569770420864645301084914001779905118692851028277393773675227508201885797344076390388561137433789998470743511704234710819755386220736531315371691881565477187175893346888303191630610058294265237283517844689965164481447969318796517640383386456071209035990217095551580446058713365545764680278603021956730991814172938659536203466874540292475968391042129438304194563136289801976534429542530916808281157792539240701983245274568457170677104813134933897786595526870256384210557561948798318030877653745765198588590029932697598002867111701099009829060128411190543078508375467609188739768505378308256233039437230934080290031275914496221645792061452312227934903263578368851499768044564187628311665901171011679543798164368027424368301283990706074825548726388865997483172975637280121106530809623572715383680270796671039094138436073772393818200728801131267184402247146316043695676258980410681386752296474130512543743119346251787142977039847402403790815625903461024771503196659958935799561939506496273310641728416661006301275753729252355598035703888591413738993921520453031657638895922847603781020104814866771106176439518997085382072374346087369362204922978487929069386826770984212392096266704055639135043547731882266864999142488617449215851726784897223479024080891201272197758793860998100911069558824974989138264448372295427310180046901616849296108218384776889952233559221482610108236362141519908236053907292635384608310882808084257978993265081288992259450291765218901706850177059049393941899619425268437932686158796404329845871716635364510218618393331879726592223994877543462544952907536216806316835104323425081219607075070759364572662690492357509576734985675716923954834472680591122899361741125723886045439276239274789234994555904942458714621112123013635173474131295860081678664677548185689922371129751504715539660931140878391844584788227195805169422386486766634701085836105626298962697218523517680418200306552170991832621864380582247588715895478351791590858648430787849020961414195493167065728279610249208872225376186815241517577959313868774934691172816082026677103818573147422408135616762760514279058735671495249955243553243414378087814788984852192305998063933563387299694129730974692155613196036700723428189145053319916196332858071468746408722399859063818378224468173571997431793868402830580273590401208224300144425327609330827186242275065909095707217056696528370312352837812586120614075844298686742974818258739946677613524824274526700711894657037508617665274405214470488900853509958029721398017367747640227446847972301776221922706946609939751751774590877017410993539255568576748131002409049704407970099696012036350518981892368492945071754811752656505159757339008805744884640723936331299831930113875152952556660702321531403480103136555312024648954607186125547909317938929878965921016207890312930676471799240808445578331105675487892011794572585456131813688853247404924834605758606723078022091087868936187677444694394807737548735735924654944930772169281266442349066247345837148493964824006276828844967445731439854604686877178993686270005845975079267777091484729427875690121858632503747880940887719967326904043109965251034010478274235510705745121636453689106712928901056794752226307276933017153003720331367548427027206239640047019178787501803988470993208398773401882126226932626544374553018774249283052018653660091007787826803827400694277098512771817402611803342744399330014453544738997511516300901388622806337937465671495790184073995118736734948540125501117929617126796606959865163014303780766082219884214589838539286082385452795707428249697691074195858113480751471726801292000066723623105336773714758123437636358229468939602002689443985776410210291833598699547466613977733739041709644040777682015102248693565020686756549532125320644312737168615688427575105582581770609242072066967215870721486139643642999495084712299473068566127214380907129519224956866428573948569990049652357079689978574081370656781398854750150745083210638971174860467664132920689057765531819697506611012382160265290226297133877087660798960532298027226294297635231868199155094714658293423116100779481747040981400940347802792214957326026996834724134135494795045096364926619707818649568238461806482710360169783600858986290732886035724648920284214658039824228331186027596881822860565434175610627617888362041806230467348294199762788591486861778042790381814000946774261902557425601777852763819957198038493706758742966819462308235140380671170961832900371436183136010360865835087689992969399976828855604606598245195480776890435530228535997766964075703540703607932062773633703947355621684403160333080812458110503792672857099611400084392366729799408135983748023993303358676484499137437037007488319730264910752790255856454065185255993101237782557898179817481230598493368935053294349345982613668800446496132246561850690484472910002965579591914586721384354836578460297691279312534619447667399150413066924848029790045117747361031204575048897398855426091052903655492939107598408301703530083530614689632283775752741203328040167771292073671435009417526153758038443404627075283169014989205056573498335005118739976965939785710191935838709816644685088346644323269695086326604005502617637764462302335548992188437872957264795246775872999176985595138163714110466849111078649846363593222971291840397522965971810430220482536336082263407500172602959293973453703230895097686363914384338428383416351847759773846383578532284904916300840068377441072479164165687793008626645141277730089733163821327447692071872258402333313914575925286998357633545524449265746439281725956893160267451419135547145509365913491585510031377580770126259242301120246876538907974898926958602575875636526373799085254976787553921568691289356259783965561379729819448002660744256348238826969087530755494873880778345684247535346021393088124293079075121585680938960445666824591293844336902493463899313689377502100665019075694633490093013963042801375415674858397478634360720996166351478241399992434609666982461342416612782044386299837105907871967200609033259052930316239290445870057098344627236479587943722312615966542111127522047147818986938385271740617363076643441108561816760405342522606923522704878255979107710122247125008500847483900114997833159501383569046691705252416970819860399153027276271704045860638967304561948045302535494204153297266506229705499112924946784932373775606224286993485318323125099601809526082934512024066594716958131025619087537808508537251873852145517800879845878574690104126838785808594684323660741282469080977657322921110250307541558209657548354365200361985866331197934217639312909372584241647438912096878905179822836376828792392358938737199328830460462214168051595106158335110444267852239401274727495586526241568747317741884694361622002770988576699447628178695885894612617381018148348768065421760416340973255964927633291625041502565886989608503797867267625149992880031374566059960381741164754394636021167121308680107059062024809605723460518532490011441358415944539587235535498729425850031056849518214801416782259343409683994539267979197090555958864724670618177978718597105908368169702801635737155697767454752010517493537072152505768423600018184948351680069312852798076248044694154834897876931131972844104351127473823464817460224854863760174373397852160513166727875514677314912251252435509405216060375867635732259699974978099793986879348107782200495723142980505357611046396253041618726541753518140275824455608629891233298936199000796370396967525216097108217280058719467267497192575557816577517389331363562600707347867256958550129910926916924802299995899196165282991072872883467522053219476814296038413155908479772758879286182493712603537888609625605262201888831018154634383937802905834686796425409877289046388674395236453702318703819625455762322750728776313307325674339091016318233944263100958133325097194921938036727422105600226579857746006847828610239605945949150679185930969228651285621027327589313860185117716031470248672704439602684185433139128334596139157035466108614634941317404781071833575522955786390152528140123573202362808273056859265977224153431042624407061588929349649102142213639684801687058082148317478284734613652268642747847529211678170363076399849703620045207105626389553912814595828445821789345461412732876929051244868047706039767665617970830740181789895509818771013221485155647277748022736274488824402831391967649881930187453810367407587974117193737931492128158481600755983092296071852721128158254750069710863016817919100207293094632419828706913144608635851934037153755042340590155654440886010935025729256891742627284532827295723145713398948022617732556743409162195388644688351995338482897343858583788802352259839204962296665103560679873651019276061218812251945482928538833329181748276380980082851992574213859865738039501878688118973468008697571186184943954212540932920586831998947469683302843980665182582380158673587940403352341802230835961687600206608398969414598835639431293325216577710180855561481118002702519939537965712225378271382339493767689924667927429242778696232510983309458566193067595899613679959594815628773730376018982054155644907590923596604952096096455420175505972237567094818524735799570001869439670151557738498374744978700236524665333057558467573937801102174159562501393834042495344788452005450030014280334923790643032157514663631898896266720939516801356776319148029838979026791849002455222556818869730301123340447671901508350809544726453084235554087197622402343621812963165164963250298913165829817602559652966336096467820424377251968058553862140181947610926143129977725226842458105851889192406902866028282419590189232371275703205647084980756166822131328665478317027994588074719104564804366864558989071815965062544785809294112179016958267185760655100070604707266894255539211786730077358322417311268838988697015211241136196131070268324409190451179496490460316407316611521420181546475672399126109208444573589243353838044154455228508298534268781186981318465491767190346444912603699830741362303333986166096794583476465286991352103274956277994283603144532339583909630198084033028982760864155656567100058412609755414976125391636041314092521716133243491824192834499204311126065345166081914720447550748615546391426068001336599793131758236139820917042071188351270682755543777923509935158069761028207239025313589533811365793726450778123255182518138675096013297557926610887842162659417608637745273698516275532419111694055531747115531910753565073940863232456952103643586870538974658461274812297590061053095948643074560585953484441952870064164887109656858764492823339605998046607806799778329433527743579292704644619199275628990925187861513167167300963174037752761309403483762794521673069456026837707937285336880507730626879587998300965652974806104753986934103587865263310525445534282507140527782109730037409427920284454965920131442335304171229388770141469696802634858014273732169722128182140390254419081723333875910579567258446113878395517920861269100684558201915750829831838674067507129148347205633703090574418043431629933839146485837249320829954943176045308006873613632214040669677598685819907761745058760886606216409266379590737885759969576005847114886870406234491468827221536302260680551095474202621338844307056958258070514094253833688226256176030679771813110255658810927378433486421297896967989321035983009840651493170106944295228359314739683709355931011470857154452993484101932401198108982117384301266135437626035797041615733049506171130732539131870641357214711051516657029410469689048823208428539647590031521797002486988047597845802907670097372374325959050617897984889540324017614227704979900142241112184372407273405804371022587384334518968654013824496538800481227749384421606710701036809712695820320925740896787180653100468639930363888350281346597654935187815768402672304841926791126313402634352932578230148361213830862469499257669522227435263748546831008221551382828851124946563821104582561278123561467683804893879773060475509951511485971241570724421283282335895941280229457030340904972691489079422972611636888521577467649808900558612743714187343634773011922860476583468249917718031235249167863617848088909467528658885091793211952576627262619306802535292869881741499388726334526985449038831006429644187522832087201880635528409350110972511328147940589701017104137749527310464926288080633705672635391666444431046430279581640497771133798386776647091957544932599600075765183165288462681403361957309699041774715644632804147970935374270561142067297677589916234074344921060801553712303998548169591141295688659280122680497074710484660561915872575952878968286149503871593770452556328709536369593146598266344248427033712187258919454682608308300212684443080622558680104800358224538392748193632748532683149229926878293954954380316623325123382228589636636716006837338368702122354551705378458153073164205372172297004307611254587463495792916824839320596964522135523314673299862829371038118235331020252490100637794465901589240305511542555340253852404829087285172066848566366483537791585587967191249462389766148981009553809793850734746192893998669737806162761843091468076813138860966082723881387122858201133960313375342072998096351346816787477881631160218613661391970222736171738381360559671830473721076433049942689278776317448196908651904206069367771236783467798766166167374834312536287663149825596097304933255486449152965749272246669331881261586908395102881867815633049228479407612074997493380244780883075041428815156585793069414082107598830828587930293820838253279943964465353613433167304819145430693285802763320049066957500115203683746651396139898469850480797749736088702207125129597722024160700854802595782682675191599947528601157992859857392396981902682717628328930709118209320491988883915972591074946953186898711740607606224541939699337048293111843058992806448407366541616425392937031676014522302970411102156333127096554274801907595239865576463817522624521793112176329763061185259272639064630956537578576331814638414911000616721586642282623224858064679389336442809764073581143422554430211135772133826315248648399980870941236927178184276651637930569112316454995934852922325893677576711178408446472670934948279227013590092674509882992397678779711942543806483376459340084033334092290984680659164845077858299531668812348001515635001860538198764280916265296142601960341198301076842244631909345487673235743144552715639487498007451872233400537085034047165263620709675893136017307134384664219021371327768215004132762061334877997548759642289282135372555608505825559475885218481609807280059969340566104377478990923963362372805258742833453067246970298764435242883662359585729890906261327338814171921163658725703140558390807171434413554522167788990262248977330956323187793209959718540573257998305754564525008895603563229780166401147512036877241451911839849234187972655393122663277456181452276940344094669369777893405302811351466645282675807173265731143771695618015566109149872206872582291420744702798219998071304646554633089923522267814525850468678802422097497088584794907961397316622613796680529640984731549329787040907392538972377481842881549348273220697995452917296988438254576002114180144008258103409801120221896717671827786854409766767249387497524489656763486040956942235341922746999308803042759031148029419711510499174428408203161068076288555878423673726008324194443434088041408873586674508019085337973028216096496823818437422021442639124182001113889283093884598672465707884430339863906841298921945821533532671401018196775463484711820995073277194274914013218074242825177757592924933164497964140325587992093730097240130239163006306404155123073513283266607069729030201245006182472828344041600793323044893013717447987483912273501261876455946894980739381497908329841484962385511686976768404721304926362452304018081233547515697091582655841446542845155554161080718228972671032363634888649529159872979054529209039188326098635649550155829481992509532227557413332437301359775130163814179265724881105949231712814445981148297544688622374061628887572655778660077875129806423732891984842804881141291632315031059071305301781810397149130313679181383890005932077022584588036346313706634858313144633693342164078522541583610966067013559968369991747391579112602276948899750468964164897931115400937233073099761567351813495786629757651399834658545112356131253619214408081195876719176834441787378626302115366699718844508278193539175469112862264905193716606144973215139058787649095413273567880885826757146564293383887526044075748374657637737181900492368693643915171410749781695403858512494201706817755245772509586042309621645577599595034085757518978016041027754611694295746434517254910565163504812397082967644300806726320684441075652694343978529654103339515394770541287136699740736885368088173343955987201662273440124527495191770551512297450699643614289893550511515450371743547068912480666826107179534886681722638844511619613836366634263309409888683606846655620333390810578456421467622170542133574018751262015550368118684349328006861501171034459457364365273849157176432515227420344332816093876027599275831002855471322473979451132577556007573984421947999929925908558188618735810632071428606033210509028430041075097627315058768396813184006176479063944994054350619072615578497388716949687253277278791550483370414838630222922943426271986530866354125001689385936075461037017300019169779778214640729899383328904290989791768498897160812291406316115433816203374591998583176162853990962408779714920429159942856842108303717146706517073886136045250627923350945026491739624974207680066834428571785502050085321228325184988263857051023582349918401342954350765615024197990089008146943251215021902213125265121561431166321161824262822552977872506637973824504385677819856407303814846869277695727966971454222514053415785214944248138156287091374140619917874826904526092552177356261427833593079960830514805143527003466260576924257542562573987573172471346277454929808701172955704803136039322088642547647242547421578227211410430450110748651485267828530188646438792911059981814160178864915211321414103980229706785683012485074905216735904653153740752513694496904818552458521598771953310613829871643653690856894287099152035858534887711981002674666032513623009021589922103431514411010631376954063024088072137468158792020527396085630608311936011045905222966432341276980584011723322252641732738933126273416961964448789011909460266790935962633526115783474413516996129895292950997693553108359220783833681877050520970638435352246351771957419817378032595611612587852309984659364260085325991580367174007258634612572384685058368771985272488139388169016528195658875749504785904222011100337915709034461535177709605831496339222200837431593685665180268518148099068800206321911277001380665580719160162965357357359480551208746824942501977834449376220293280278246788466964230194358630033901818884107950422207946752495223340508138238902322164408170055019970757243307969880690619799724488761907166406928711619854751631645368427627240387118677158337157127109534256130020018175369234027931190656746996001053400879470539175785343737216275205379809962357195825246730828418893619589775937803434106551885893753913145760859071243566342141884491791531220692419844243069940166131876902547552275253021609611317546860269210399077761708822437793011910230957006197681647332568405816325770101725881579117274919730271164269068296157238054690723988009652569704348036193889084424825391318593931837297328837680377908086879454821872813268239558676566545208845186306823705162580455331419392430715135225058044275754517829202920941332474070242456036353604455870179485316213423972699242552968336456274736528534820538434290515381853714007588252683121028323337914327835034216052671448872001481587469761064574892067395654703493168797499204999374436419010862547706040382221565551986201204188769895754122746913670134910056022724415445440245899787668080309776764735027168096634794665213799595657873708150239237106250895232397009634016150555465486164603538203756318381246452274661122294941377063528850375491205696384668110553205040817669783721842102549204889518298504028064166605633004594710858509035090492311697598838473921035244188141710244708883565998610343643588926656089193965282698746524112544605083167093329981214780483042553321254652243925518607253009705800714486680277260542353557295897585094604199203775749632840899416844026819719075222376234528728721489650451135456530935894917384998974214220413791201011361018470569258678603421555667198238800001894785835557371167084502678261967319986197167664992836949973886591125670798964976132784056669897740508504478387366883294186272106745587973106641104964827776807463642054268929769803437764008719014964216751203796629418455317554750515896666978693356605155640823123758411440907911436589641703305065424801050389936213202919963594621693128965204716864315807690258363915292233707737399621656918712831774181148426790323437452439707247981438765438056970693005409913459795229806471807297403790560511699121985735937397697010078144810509063671852081530606832347466575390341619865808754505689848244146364196047714538053630469423485024129450272122785419335843268611403129160481527926809766902343551788808294023654349302327734401635537387275972975966797290021036019551440532624047177521082784308703176071932910968439408504656528723946662912515792428695951309066547285561719911365308310730381067443754120932836574039855526813293012303935034249931598505703898709568050907279276266690790576402313454137477300311065736270347853999695700686851911520072261485659100658630779683123103228108626978276880175078100729164887060914436902372328243744070890065234410462123225986759269270754378646350037659601628866668531346591949428536243722906622665300415680744711016229059793493422886818761811326851265344314053616675643539260553435528099124862583152812799702712399796637578047986066769017003216875661798704785111425734506637894732909706924770991967857637410396989322803132762857443712840643392754237222788440499802510191893776350902256563231609025818104736029190600506079635273265779777580186734978383358381573360897725780273874544388020285887955922139901871289229040562495695421432562548963948807063499017615996867954223076335924585496681962665535167936008282010473123047995371925544259957968040807705624152992231907288481402499161325828002823813191000657989910024889166438497076903451957946429256235462232158826673872330273863899056512608010446333651912651978443253518080610262879488391724260920287212973779195123940928889717510774716418998860980180634035111285639406348746060831712020768243042035989694718312675437515288406522967590835060862524325453390504814361894845517409830883522385238354414555949265038621141482079484384414267860192062706504455718120510000809916451687854908504772017747296238993998358908184899242245979080074613160266193241462585509029948948421869211286872978307836999426766803750039498952385553877994374290232327286517329377377574897988643015513231544335081456765701001604471912499604249602999666054230290304308614051303405666742415571224063814659915136640251712438437092614014891242417885556094073126577157289261155313961534891122997462793344722117285864978910767561324955048069421960293427678024138349535961611463804654076735584357082292544804437450267390048692005398738177284214813213686449228098084212082884545884551639468351638681424138529917961002392248062884074697161393487403528305365139024077564701150973511514018660551731403572266184812598070141443445232329439876735826448220214047282801973361587418293166940985456418313690940824471587000344817429113712332556534314196398059582246203669153502969719097181839702027995120864024814531635874316063059895786853939031535268821474516403777051154547970019466632169450357066496405169569507222650314840188422915336740309916463439524755397064446809874121215351353358508081669080561887417384063981329051665341599584176610631237678807941720860801514792192651224027165036587273023244821554341723214238903010693361027052638934454909414387150599904166342405426708411464303350760298051799048680460095858515754787169302613547824869478123238255833462977760126023813463033237556447491465075198893511153596441504949084016589568088265042447086492165781441178486746673275191936978184851605584595265378266973939160930246621574952387486678800057035694652224010042404931227705533589365039392926136053212256573224573715376673624391175880233196350741314745011035589415067754204445217689938582382970938177374933143548117390936690248599733063798831490247558190823632669359919878395818233264212358821115614194611694581525855594907108106991141664310377406099515658043244605014564983731458777730163724769583789119129479729380655832953818641584372632000572366360493522864686611748122460980477010164901548496001886611237831481526718182958014332060747937316725613347341140102157770490719302546140958477990277915567143898200616311147952107080244653083323899054673844107605168499251341875473955891569560315460304711787657970750927061436568289377828388758140728773944805873523660006777336074616457003609502217372128193053641543362489967747117116333040763234697280767133264335273654791118849848845807315337588583480923187178341132793675821380145389175478548270029394657078363831034107522029227729016135459233785814708719678120614726348411498656573570424082414354529665738441456065118311999423873628951020421453664938245055025819524721551269849075177673520123607783904263174574723549637770681547079111783230223728149909007639409387922589631206324644517599733706909304564384857317213588728988645225467048484392102598673811135760814481308415576491414922001207092953055289013975513743782312429017917813517548774146275242221764477102756476184763936178362932978362741288983550638197058334915111344090868737706040671560700436467981045575623745736427853697841597354304566842053082833718813376448169720767928963103174097546683692738301868982135936399228687923537352268767703942616178350844151152346331923988018137761404228219797866930635796120859195213521346935863799722389219660803512685657033784188368018307342386921508952297867076862547141307229495761906280493776180395246176313614740516349255288202774890877963909073645065640886518040167566871060226930960288706917462649401098691797277639617957959370715266506241384787810633542306388739630211106609384575356022527625768726388323550565570270481092900769020429319659297085518652950903434521946113012359152522755068087990207223443926824163475149627088209160602903301405777851540906342272980997535350029859507055925843667860637228815269619538901509694495449531899610854689439370810717163759967979932506739930863093385113051412558683371331294848114049842589839343639523764033114289821467973273372156621528473804054252979399330630862863296190424803748896677380295045476703102813479783693504773830085286947506677644282399791082653801241360118603157032390420762546359748973331964555375683371574067749713465434241540593587857264259853663785432430004510108287031132403943310757696960406782508146787372743264046511906226813453515757203890255611598090965045008411455547980352860855500314699779146729434408553233106570520676008199013231362311947829778129855085353502061663229661133836202353253317573854165533671891735680362623168406537799101206297793609454573273063062906712163934243980486013969959326182015626507345206775012851734083449478512370995145403951055783978545226145052974785147074294549443518679459153496675416841405301312509909313056564769897458797082278374518569381742730558024780951974601022065538795759749688313112759473815009929941031381792040646806528545989928431856639085221886612096271864903703121086790971179476370081950935964210287605826478975648885432529405865505342945128184012225983633316360062466894115309431676173657326634752807880678219619341053830268787290761166118267456435270237504222883148132060356126090277778288794586638006572602822124320430087167581798447509638115781511001156094712554363663913533412455955033584218017860111826187224407292151631075105176697429146614902672864164927145661012180733443089147730209084154184841418919828781353265795674409242347520251788672909255181469155788784604742661806710443853923932183264466625698991595117590528910573529099032185220950511293741424580426024592292417828064488741629451801664300737645440096617087530645396674875818124528310600287862579314375597622304320819558813610636583914875935143237532317334176134237734185746849441089818841571714165366276962402331037969589937302222239484600949205443348547613331169464719365673466135415574080553087610723571494240999785191530781426957212448212406847509236138487580501800433652768200661799442515075208456116648175471711409536939592297039467405765145397818454787234663931965075180293359452445409856682540570967573077246385906503539894470567463524388567656609219734211697993512922315613761957184654896763610737756257862598665469185415257414481457193226795818671358104755972973174907061237197023652057056372585404561510773287625720040025059253625935202807871549658582463678137982120535173962259109672132277862390100570945927989067970205513609189726071167993443812421964821527729942108389133394828723390367394303540896387902955652286381763735193729467333276097684000173996457052320456733058786244773449229895358376987275761912439384341924679619887797747757801283872765149221103335347275199332977611517822504028750508151290831034018308766212491210003759234292841841898394451991906637348183651099073796007484027111710832952169982530909206538375517883073300913885537334485859640957420311353050040377567481487939728494226489665606350384498396921027147320234990871523135328148191411444877842113420740117798042250079445147942130043539545086660864916111667089290503165351950098920597647782982583488284950401013086946440919543154643472802683851300789919787984333435588576918999021125083439361681207388009485569429982938164031117098783132480746235899858280489803484916084782382894282818757476783378541522994063294049560668944084667439159219984122221422223852106311294248068107150115499726227300146127283910384886280741192443344086251105468170403275271571294402849647035624784884786596540317713620672140328658319336373268978670229654310289993823778724018538953148202404250773675493238744363876154529352651570529199733224107190607438153803214714593564338196681487967403061380858677437492399367384281909246439787599993277401193007625090683806077602376600073315608973587322686114570665569835300462700687310081613919433601870729250317651635800475048554580438657906577147648035697255168067490611061178541910767044222273918041820532013246782741789872901389290071443483510530101040005396549100237364512509097750787522209854065438721365888188636702428990393498960053637236980555391575174684393623862963215940365455851779425007534493351935260629521602540592222064793581163588599602900774646404540935165243877363159662127816015173166983564802749943904351179562444623247239630364548065618796584049698523327561759641269942023135398166413829801512282963816296607124894782699694718484429437056157668002904901486427964136038966787212056456781917321951819462647748571149816580932282323142093654820372362416821196932625399972361073261633930758884058464413061718602132793510857229855504591329160600704502060561659088741465002510927475657791266579073888901362400209931351843522516676836753062333516272089042213325885506324954324510483539578212920978889944154692224726598934118662146597414735444238959714549839473809356567315348703761934049459357835798028950213595789799839881617033512723662261426161773249894432987025524100714817065555979131650221052461475253753632980413597972897655571072915009743993613221290235426174072216576007192510316508811633435845589442844796058837087016596500665927980247608281294808199728465236675592029169466196179607873355081348458154865487372773585429836434144205792859623804983611602585541255445417175778644898879693346376497032782846478125309256229850300779136100621166217962626760343847055913263531911508547565298191209560401002165695640999462390479399420759944744700917720715082177296770091753682973923696437275352269497198410395007210634418810332500665854593481948899944226708270023323608835521329850170774351344196843967983456110621529140626714100771054545633478541994185314809375629153487113987245149872730576871294097086367768933496664676785521454472660379365683188145849983851231455229455724137619400584656241613364714781800875258391836256744110628328842601670280809910900450417666775298938874574735024075820266680322216909832677103092378576261034214793238475394175435205498271835435026901104664807790487205185789264998683597874971150400325727392652954217021956548358654253015984022080952058825758075897263204172479750950572142835800364707422209673313710474412525838703381244638278038543614093017591596660792826011618323572850332457517193264984459067215677463191379785247384372659156344251080104922158235681416019095122026601189754587251804239712645320354729920719488476014313194192298377639590928051038251787966513302727291506885139912274040679272318938824270272894269986603814893688784812511639583522783895600524530769473595302712629924437903462299019198707811320454319358663259636551041955011708020049587663943399332694651083252714641504994615314328428649696384375845291134268035483800396639653787052719909728647073630183565210384853202006675216818156463498628606324105479166705957838612718467536174349610335459843889883709224580377756679925928514891475258034675855521233905373103280223415325247047965893169664910964287604500437192816117427272194015675956731092051588292041068875903971289105097457594166711215011307574940835080015648549234052542670750428109518770833933982185116963304072560256446076454925159422060107869638950615123386863593858947323603050894610681507501202571480112779854113124194182299853571031621113618515261668589071709816674433705240667102083857678462540349280819025329041354616771199858804412274862713579649521758640459534785330230900468502077970782886533276463596083838509227485713129633894256335707817681353090087129517961278512582649939349359945755512168488492828580661404004967541608123625720936715386712429125355602348036098689340819472347586063121565455278473748047560413488967632300611854855511629214501512536992694588981000624852294311499210600425659678692447131533577821044633542821256986129774521405840255828737214550773472534645585738547004535972600536090894413047100024684288745333426729980570277070824842141095151204386948840821246797869937228080328644634266217856203951923972207966431204515544868912652174941513267820129340526617367387561353686232788906184817390220370360586643752273962171077842315092080797715849216367897778038752651807526760604017265928755836834178289142447520025246316556841658918771498399076778057419971036997459231865632237718740643204962954145577945383587090756793126307112678177034517186719925325495115003488852561694382617198311341292515138583977009006805136964489351421131774641212741408611448753552357160997901029727208399068329457357542047782836337865063773033988230364824132862435117312347710328743663716352326620876785786517949764633095505069228102319350142522503317527206061965065647616340265141067494524649291165666282780949316012253480177220355050823126041602270280000494035582292230500800110465452698994130177650920566235165227825841008408028238966979826966455414703117698372335335503976313715251620120000042292359709271997257862526838704767539937836261794461415266056977834508681762120311450562462992643589445309808640486675351753370746593585563784016997935908116497510283617610540663003343707245634850262418456157946850022923777903053140090232312257157826338708918175539470995306492455763359053597459031613013171725856701388740697649928202964625850371426065909268086271820806963303873698702997877273196541512513090176888742868339475603370168661026256042509771049457346789810324131495995341714881061116116912421774122116258905461360421870728380782654772764911435221898777900755239256725015357040470233414033262545584988214256670469012866613902145157750022378546664740985991562009755590861994679851198239719289134938583711325271220309643553049466551112643363546764372432764636164415898307519197272952718257415095713300933735209468730842660326416832926549901902819955141740175271944812989742963903394579207818260685997133023870911970057037373557409398358339831991910291294352449600114172377077781061020038826780943293191592341026340897849812333790576962353025217003578083970776065344666547171868532512870659560555745784504840022394894146080480885681715532054182053095452612784897682613184123810492045548063648501945275714962758228060687528285906443960686707373715921307021697561476284578410267697103496348309939473941208109686319338058280743592441944597659291902544529071891809868167426292887512692985586609797649103601976596797064950370709891439285350310880383391647101230956404545834889380761658791409139302672619494054100049551821532029402757006673270047630091751299720941409697746907287530262931349111901859142069513593383570060569563344847625252750317409732153614081687052747503871836611442224105541492379657911947611104466555056861429219869002360274239229653049623727283092670927485044143385463897340330736492436458316800029066713788973038170752530240618821161515604382563064965076935476127878393181302006322977312041875033293779067025918080988352322184563842885976158818757667550097262308904539731004243898406303585731412551741418221197847648934297279986763286280471053267919180369155490673656646770805069990164353918213107565123429804729101596431779457446472786525305383578900547834131709516574628761006677696730386746706454434227830415519580032278611224775773329671897919611928370379494709714028076449961662512274694043974294159123830454903307542107344538415837022218926715848886562643941981989537116099788643863695000105184982557648093983038258685119331402207803170314635804230763191202812268029275336037169395360967755240650660754030174915332990781384064661643088203262255576884739404707944996962612739141216896204847509958908428040361200843594473444129980700539660927630097685296570118031652983452665643140210813561579480545018518622529795028348542719409740276190718574867855273192559892928973738455520723706055163959826867861237091469662917490091912848688720907688227619416103618338254529343278922580169273209766603464491164246745311078541573265467167410910419787191911880353496433096977507997373189273743895265624245027408738039914141522160390291888495137284376582567639561849956171737048177169817416505759399744708692405067368895466875511464194282584289773636174876593417826787782439883112593153489761410770291176351251598414316134890181466173312688835206037084186334109258467196966842284614291625488471776959006141080903980773523596888224195339837428049356703464875230188311201355777195519430584284928364099080313956870996815350366047449479481421877766924274509506309074539641689677545156392698585271662322963330182377496956068834197868629601822130734209917774332812683696528951249087737017853659418019163264635304710838283108778669154983671296468343216762667988831509472243333766022024663119518092172694046987030497227073889202847243830088722347705012690690314773069069415339996616508938772291565377453764570561825950209144997086284631330838388799592473656017414137176989638686416316161259464978793254179159552984994176539625118397128812396057377574529443095786511756841209583346052703215129837116451125080067133066386480926243478100430799205568284514881223915768010184030485936675823377117294044421748466452324901425067091123459706670489116291108153403869828451174077640662355076687978265491449742314315666427510583846829774127481882387414965548638253106279474884026761914033046734338416182462035960166092326853922776327869053331179403190975175969002052228264570200575528415369297810100153785155431151764743187290905634475308453183053883620657936972958423267007097496132816896425900426376782823420542720816459009460499290155085638560493076292222214471995004312064682525573401065345350981942459161695619431695944560749863699349309909978411464471158427414546321832838090291257848032267586805967608665025505616706373699566877616441688012848859529077888084241472276381454156079961800014169111925475129343364786161761479369257154203367290534520996750601083552121833429416386551611254032307774800885321794750540455773339201814121121200707101172992370565801141936235270675673595730565656611430457960217074115216179470277253912733661970596863052399556872682520577676062726447481360059601386746609196740459705247872395842596795095719473469354192044908857626549930623577126421516086559784394124075963214562064229499092356311425230784371033029161920718237446554334295583726054896266886865761422808111515126604378439037379136193449174091035812849962119248350433274240567855314087841370703455307181239859102091806476337948869709746447273287372667665801779550314870973692609099093205044671494346460514404429595291540584444266297595462635700088831576518501829919454061855819141965406635637193510021409238519231012793697743535814116240949478764249872099074826608098052006429707791828639985916421542734202627541461144029700904850551712601737611280484721135951006300770311154377279484398748270670741497482231466671366539988636421236508333938012747150786719594039609808461846553606036814322219186471817979475767644687969053665571885884177251006554707055643627713333020280628705451282314344030303231954630722836362655915410090851612751560958774892875108166605857636950926943085099522525508029048396958632702366027833536840851808802486372970784757574797537016677843588464389309500156654071143379124797597201302430158021669941200118948635756069281215829511814352227062774524317600279396260565641187155695843120705984078765936122067446263800253177204593678478427755880793230542331968597872416172904696946009611124568188801085965019409503862921129047535487534879364020863545363113700536029116048877612102569394337940298758991150845003164221102594234944683601958869390293791400493446787001934562807858810246703757685969581457767498298278948562732275699686474041512711812305360657861148563761367910627588550501519430465297727000608032661695694170369516670350654294895948144588873985160059949327837883664081490566361496797090113099343011115769678024963472350926624736166108484922387451297768441941237528665893225213338140143465050484131184215846174599476892539676556296836787877020536079887429319437431698435112344220683287330235286261247959734480242933492588304461841231290036459589271736139509268423432893103059374221084129322962718576829663286693902521776127133305884105652696621979312246912177471715151586412285670486048029894269577148121212639196251390712794669372444077613385065555223346945474831305442041734206378981818105753430987825508488730922067409976954866068996528748728170216971350576379108424650991388598100020396017228377477844295854098731687573269833884888742810728682071283853430724558429118403503602937614983177635746777909933042657678038562776339819423553215455667594486595705963708680865060904444094391940595876602389645091684194867685996153401375320457503707179288353157774293216463169554307706244290159991655802988494251763711957792825087753567624603637941282543240568180196842600152212208417028823583343295106018355974530799706359064926478731658415973127796767571984144054810128109939241156259065752192080068988789819522076120009582626542613771649657640385371199876593029723799803606169496846149189038298572236480597475437214661227760276963495488985609841999465087086480660308516074389786233585962431200517298256409445202445386123763049546462780548797039878203623478535759166606203007710963450937824796929531544307913937562482594853588575733957302089857854148895110772448965917766076507070789870538139796788966145426443640290999760538687229261018312595399161282660105439528361656912310362038378696579878629859509730627123858764625015646295271822706717134275940396280418653055505455433151540884780873579695283889318438608289008121960728476929583766037890278970467837576507307876720039730588236922890641829188541388850753450088001504490281671339811688031361635322512115237943710887244092082961523269797815229017398934051535473266973216898140078305304095710687025613970594198948592380442045186049049940652781589631311383203399541124470561777564085380916862421661116458073296912468952203598732180534061194340872114788519500853107207856260681211158562492381261437017225280824106327877550287485844826253214883291733192455233886279173198569763955074375240061212497883300555813893730805710011207368880071268253249713810154441261416814672059997876469735794299652305294527972567381931641894121241789073894510850325726170109242084229086215674584380821957562813990907698138159512357036794472636790156882292560061250830987629726954129890976722959019801620731695764415960236440832644884719175201987771521160599925554906772001511761227193013493681780640778661418943383806475345122645397375590886866437741964015908594698761862714320751067463596728693678017692679955472885524370038070374660514964143323074237731823656332594080938510465129214080394934583726200554503815775486070269971796259541545231028486373024223812630698172827123747693585473796633667817412866997373639929827926117782720866988775578257214009686087002842519578959634610986350226961715005462015791379340505884808044966265953812477782963025841482469837314846821500548141740782781395099772425992212748312163013559100702300249094596043365786585706782157314748398159989573839194312310399858547941209224335043872060674703737943770559701630410079326068431672051227275925904379939700621655378692956097317847894268785101124636536262894371978419496694234286118575126533287683388245667885086039419594601170167385881387727281764478019864808819616245970189781555449182591793657303038536256884381985469193278792328366896843894924834477886197370823741014726750946534411230294936451328489501845214847977029786208933129454042750902221835489882551651377085263590688674761206421583721337301579991483850854064178021169879545594852487677980005144053154877670111243858346438620113573518921222836955284433819411732425926229685337732541575919747210582732226082463700478436485759479779555342799609764670727724932261969081919256595784491929675930106463865184702518120737508185441039365220114184184592797405921314094130974542519387130861417033521988060442979629429479405946813826649826915078681319054498390644520145630156806553939407658879357903863657945028606180256957153456779464182647618168741749996303573024406081499760152902440915218799562688322840462447663782504301334618783244118935148129925476837774820034710503703789240134414523654280297384154831781829456285378732988797427264781102452603929339825136766538897537699360911995423083338502055441239422512022183699113318904695476030396136125342434442366375082190846461654392415710888308170998504926480371385613864929057050301109540633809740871289301641096121034988968534555888512157422168863349424247863792111018611931114398122211686495508747543544033725242340854925910614201954470098056575062222532356595063996416937274788956716621741369341457491330291273479750866404060713284796439836787147233116580691920227329294085557208935746107229970920243950902095706765710515713695313003966164730817180693776265567836223490577415053659659639616402214144262030787640632191927654379448750986074270840198757539763173569802151928860447455361971967861217811160732812478108573672135274558470254738002859615636294324256563767877572821496369541668421543965139753744703630577695006836375203585095019229477218566567176566030774366647403165543779824083518331221269571250237258980765455622261435073910964251655307905535010042919185704540684179289943632285184022153814688589551965688940649765301841039342675502616309035411952156402343740837513164667960755083523069999074853145877190463792221200300812693284411699791228389523303982776865091739590762804253449651675319926239918299602198628911055553772003030035985824852465896489731973464648340759244884516961238189997051072212836907995278866928133084077517902008977993859681609905712689282623404635869391011986611483054037345418194573433432060714026128060613682940373296986160312463103583552827209094173601281948227232954349228469571418479326592669124450898766248862649146570679198084729879676739609878871283650060396296814443717004484610917393493537755769241923078754705409295688382444450880699249353739846219928452246803955674824184012478730456613772404275775927052529083182120474279887855607937313839490163330812478356264869094976116769677199751891386378795597888152972766229196386904266299491989098458180649701419504044603108464451151693943877050504765654581626088824865739954917726367159393494208901303205023286172837486591307675441669473374763686255607399787112591852105475823206789689803868959104390995262206395158822025151466898261771185898826368642596468866360586791839697254135035355914169252381314109437285412776694650282109185108899368100833796069984918778933166259016213724849940535496796548132379411057049932004144669560363821561703660327388228435561372888198474179900260039214989831547864140107326171412151303877161669136243377287764420425775373285649661569798443092373038284647331435481299860480172390008262946203182650156550345551312571483856330673922109830886292735636994709937913441973732217360604447313967078974717435202673329301149903300507946106122890891104135680195199051981278160122693097593231209613666652899137046273395544578253619562309277323458860803914680699285724659841662522736800111052118489029382579826526322746384538011183278577968373556571849102380357682795303238988749988944179956269029087339692803469491839976850642035258749066582235340979448472566542113646769988666071327967905106822551367654203807843600089012100987370566941842308994449715868807876947719168390040670022052110761563786710730379691299317779414321967609478993669063885531879217849097695446573618835852356274409388796644357569813657773587648605858678557219140402015807606886197418090437352504428437878439067068198915785795546005518616790205886429075897983975737840668142705986132318570280551656619315266424016646867721233032608997083504740983547541820357751689702754030582915310895121306074851505789346894617664462895760286039768894366246174542551274103830986950646765809407553098338963901343648763083230820192873504894625546755708032849227710809916961116621648172946508863312319401656250620762224666883690002157485519869104155438660663609198235067280136155170909924752109138329006347951028986537379611774692797363449638021468611190153629351394613430042567655651569910276774255333814679115445704907441466465298917872662936940017705664129788476733991228975722456122022381599856232665177325184349838074801906237092684297938739963124755949070772304500101345349114346964206226616351773390582429685004881026824533729036357878427843633664973793430763190087658051446782564921772448992095903793271289422289400544668078329939981292212377696857617574812379945948290461093168194404360918586730074029152579360337118142356023709163536194044358292866645853833311381959308130891638785165175067207668314713914923896646482187268933869516133725035782878379494251311217988208944953411324163796974765921564633579855737894510571270883732005405891373451885290343107337405953990592977095592519928681429041901067950835662725762759993062844573871748369879990593573542136303828670577659245160406671809738832412276369055487537920516351721248358618565806767402106324122615512154882798016723151510217341633853205277427168149243900531950919511899319353823324423703337986899370665522032659016518515474979928720862309203921962304293114022255051488202694135771502578651946834191954473326630621106524391803124268590627325261114850033279714357143001939208445114967198475127430442183079414881513426971268081960840947232051114910525180446590717048927255942193854807676376375413561853805137700355390607773311475633075520577623581688969348301678061084025133489994282220532106560057453676434919334962339305686304671355090491134900505362469386072308018334577873967127396240455274702475514034253230777070791729014553734181703167783683056150601276577909969451140672752779007810165377532988101545911775286476764845326533330839196445789475912867553223726469968447703315264099288204359452229586872016697440349725882663127737166927203846085822694030682907790168020629557800296247705913055032157369466688118151117136089800310240123309649186835299832362150921352811476084275215364445555229411022969683966919486557102220282077930490132842111640001880273727627493484541903885257495420453440312425819203924984172071806818841624162885768724362118901183555224613370608040013854450698222934061048144482443994305810904046602487371998901532552358256506209341994458678866565581549693958903839783590154028231140790814739944364342586812812014880517599203961152943518274339831306976853743707663820746676118983600395396683437098855686344898180609023693591132267372373255940958726595582627844952111629438912631560050050836898639078578723979882565703709283268532080836602822102539973053839470966818294486297814201571009385029853214590707588174182745950761439492696885361501921691907054079835581944146430490511897262736231958190205190816970303344620263331512700030305740911584389847831713595482667893824620571746221900382073704313091577608472655634177622025853101079751170483742657809789272380284637088044376966402904334338015310448678293891494626328743922046667973560356058181431599328490224023656815195771370960008485019025192246566050785791766900079553056587019171304761356925602893673534930370261141604987945328822711699180073869062989384700027881048065994496712083867524398189108044294703581664111808955264628528076767600021933359543926376063574460421580817936850939239144216311592686529138638441048192112077766146713073990032857486585912409997079446417529111725333110809185086930255987634393060778423776217090295249716503851292522979584605652730564698567322124427534230080555620687660756929857246226749565361279506252490358167463589548882458643923937727516432974314876734307193794938923786780705259456279924222501686907285101955813248476818723718610482849927079023769156301146506909105466846254878049301608088760873722362001314275371909542457130857839746274043910620562991646391166446761782424947669583893226271917372972654004549669116014616141920064637082350123642930792360196607050283550720157400088071626094106422538092764199984484428196549882343303032797890131063557628551586722586033583299684393784917612431207436027958840244949345612282173136859778032480151491362445541919277863102719327025777594914058817449462976664326877436536791104646124798010687118649694375302985458083574898533998761198282373591946835190410013548023894179113176928299870534194082762876957372342500224961399532829025152490799423354400096284848844682041458123582429281511982127176049564751131234541469273763117515670689020589253261873977967316316124153895026084643888227212884137389553941445725734041481133627155849842406591544117879363573422308621129326201662283839026462903955561144809456438085051534494018995528481309994221769556758490468810179175902327699953755946329047410183506902772987861923661103314529463094234899027736585828122998486810815682935020916807558565053127392069644553706898507843869061500751650651852342114428945204792412267919937494098911061350087146977799267767786424650914355611293690165577265377065974623100819266276315648339516847283681043889033744404891475675126866315133414108653313994649791690941199399261974672457834865772813536903125608964790622610611872464190791135496750023395692837754517087337995607320172927449011628246577679291851490617216951000558970110842238753857074540044497408084186194382523658059412285634789807130983483250481797411690835880688295978776188083493185238297335884768183184262647129978499049449246626635737771041189621025535349808269751392071661284897958815520082516508372596180053989904947245494388197888822258330620841970696658073753318695736257230477143263213658212450791646345890093948973011368917900107317367505358957860492317771234098723470376607463544631103279672422757753941657684323045029450346497661874053504760023830629110041184050237361042398359521930419608532908712059136283712627477795250283505157701966440111090719668927361564995788058943446582255011777121854525550882816750442652483392125981731115133046941033712586979486098898930148508093016777123878140533393681759633101016453473366874785014885467942983216190617298596604248356055823369793616098304500029563560100911405102339289604470894519379581398029248047878941479266545732450327692198773352603175770895760608559431915490789028045767166662786789944262312617380542664215361979150322632612021200551854904967329269425555602055373311990710445167766919932341024648365176841369155672125114358562985045591778633538628140798517090071315927469017952168444811567578005579092051473169766808847052355418848713789016541397390835744953332965877140398625467856540988027706966583710047661036523948912797099636452508014719027870054756650633600959867599930917699575805912180749019539307598114587700546173683253008721510680758061897683448585202675800470366327266568023291290673064831273078392165302259121293685869692084130875969381276185761480611008620467129319640232229692654331921875891835969482355069847212193798477809832251377459668682171997286661194229916377921256195761096396457084953605903819026547975691819627004699508541193651568210180132036972259399667844418091176637022122340191928139828993167114363841079747231040428531155218321459936308378881319182958297130711316967817706676174919468735237609764770419140317141406680907526571508781263598866745415224077931405575623161620548892617964551259969392428434744493565760159496458993294076845381840623873221366350967819615181363990776968730829284714622468203438434567873327203224467116406980626434946938976144501706454054663697395064685722431391140248611422814902866410082207289577330264667950634722369353773736472476686837525572396392646530378210667525744518047834253384027864659009932903002782222913233602766414255518149150043627262333775498459672801941654911732952221543354919728358544034175024324095288563173378010313868730561939086672397029230092814917050320976972582225583218535520296810547186340404312293463061761913046846737237070499926301324366675810040906041254999815907912398546874133115511569963320958461731848204895592638184672168236845974487217545532913098859253162535417307410874732948317047425060742359802116987633335025700673118769211048649599613023745534427417907097388934979175742304032737124665246273411820146166666304642976924076073142734185643265500817563072010330716240380884464071409529296155572282806750494467013199234195724870049256309368914363965087681931735092277060387253519472580931599856278267145707884770453962827318969284616413701349796170884173534738936246146023287716942003958304501737427726425348137678107389845265763604183310958659168953404465409729796948193446170252260582943749721194828503343820568795259235836933246002460657543340384813895315012822377263509573185349899056889728453887614121518163881457241126678531948488052071206480147991155644239997226786671527728413410538744845631569838236695834787577180099045793385103864202324208383897783546774885653361503115421818244254733698766608112061136145106380044183670528158395654326538915507636781594743978961045665438370887658331896189869692786160707426398473002636146055653607989788161252566159275170281372010934769324942958110794066104736936521642667585040991455647906179527069507209486808276115703782327419035448000452041052657523957509039112232044270003736710561625112670734613499168438236204480129918634348283945864813296685837787062372246901289531735301645923590476805721624570193708320020453162332762804162554675218538280000505782385219976885213516325799587817954397784217170750806261950396672687841497173505200868068461679934266125939506035313672004563200616556393233115724231619262303548461310341110604617966313371006753493561692509575025584380957498641725346486181977183812906642177320220473588541101884158678060548957501533294945708559768406701496800634703817767737591878867055027598502642459421003189147162864321604436031877225747904462795470705405848588127002552614057151503035617876550080773496518473769643606950230082979024500652302098377919943724030363608340670322997380975859289576397574749747042270196393895595322531415937561074410837303282517190505182026285094904613723832135067537255564666888371623441856586369715281163441944026280908626071456786042467385155664453869447819158652924872788934601131151555780158804482529068259498234260322971489301802001127047326469785146898754708369197908396377875055863253762753113524946406778738853317054040559040571892327325589957511314498496104914051116664316602246027766178146220269440991999855242604298166303208931721883504720357633060402455477871536902042983459217144904647688584320595030511974584428132085889222804722209894353171331334946633178957270896198080632615343289551024573559982127312926482088803013724026763393005687016948940989218752980376593138613394216996474690870075856856418222807261431259805119821926188247678083571163132781336118176327164158380599189848894618716867519210707148237467827479870877073796249779083579390610792570865391783952967645583668110969360840091791405030908311521444607752732560514993889373127165566608058997572689070718402143474244062063919108302077358768538066470176691007899696775331759153637300547313301193478717791754848000609761207259180948375079324594627250955241909005043434395579564150438974792306144850553330606827019270474100621347722155181561454656169756960660407236301964238851069194111819921943827339055171988938501475688414055652516046925177072553639659216289479773789842346188124132019842628554751446899599628782268682863265693856644268781061975389858642292426861807280233523609250658239638503762893502116191403204587824422352003092383948191890994857048265707833536737884928156344349838604208832511643131469453801647726780761895103522288660918991407244940991576545201480006110545921140101833682699734753170467074520709220099199321391898060221883791938313765241439468531212676290740129410034641753792576898650198992260594310982884620867332320864198210080340419354594960501925716276542009333190223428071039759019396873372525334128661108280052812194084209322923485773981780526253712109612604416473885621008998774919923353161237305724553704256512407139275556121041599681418085388852967818196567925891528259093789945745141787102076625869140854383236298199247293964472660444637732882710454987147494508266891142384477518205984416292758664741782235369968501035276232271016188355105317484821866628543924943827236494206011744739784839759688704029170706471018954282057690550801677999811593654402391648622440809562953817213767676947929369126236651886369164459617474786729555736050546883682484790443642395987209082757465328316461118474500442270479477966510470404300623179330084519848897919524159433501383847922801759365233054070420121674985632528026118049265906544810855476274882398863423526608475226730597117568546641134722684846371951984055455840840308131582747973700255638877207661730285917404605958249867613822715749263047763291009341234689457923215395387840568313821850167904399570583314292304664443034736370647767082209096745761786336531000005021189123654814619998386855101364203064128631156453450731221789581278681183238711709524461076681919202694985707828717561468129620472423598135941684480730302628684999823537839644739241638660422098032820171867977172055266597944869072538738196508823080710515448656476962591389050061143830221978495087339745359570096123300329279673026272123433340877931846168656575923354695251462350707051485584400446300154932315453039906945984690732971736335993838168570354030034945489459252767506348628197580040245894244423607556945665615818755371034891126802706731107277465839859914345179386198817179818746078061660685351626703739795874917575252611004991452466089533970761412775907462887797387097179711062325881592056490170649365050674551132886046481361703302456387464559632194856839502350356006604145391894120880766207509638121678393575965398975268405675836368362822579150386219752186439633853543408541331444410675070599575957870030385062570879681827280799275943893557952765079922809103361217301509071117187975138815303515006769140443448826195918194771157568244607967634542998855145739260716911595770582321210238212846794764916740316377664112832029698909668849234959129138976899925973884123824470429731564517188370353567273604953430330883187012964907981205952765091267551791215961208051436440592145024034234311084749667055209328797644817343245927723169433173572759993727774889671396994485205802190257862704312840183496740165571811869850556166976762236380453536713482718215777496598020851647640461006235345243738086330390628395217771451310294473978300740090932485259304859601586212536574643653994531352552223624191294012140699160533607689023571130340034513226882164383126918543554126792589604604440644935598491487200451786876887690261509642388644578054468942337267547410742391385635081273705366628194175912010196809562439386881160310315729947306979102174966454219416073252434301026877513021086232032709665103779078236869914071326684863699199237017305301496091146441209776393725407407362227582732258207071772875298545090937933945716702707431639006000744283532935103453638252305588591998412016630358022004617067897298864076540753059284170815089848698749110753167984949495409007126681052228734867319184888638548721658149819447438312370256223982898871866997141867958380544746500794599014671551729022244661085924546440641165506348368684137954454426002265143422062619667197335462916144250128875528828157439397690069677527074258930904405248245398670378635462903807302212217353264731596146670946497581881358416400923747148163688704872849630121144712614060382346029247979840752880022313316090248104150580344024998762169434391290945140788613334497534010950101522189019476206377942927208787293298518001229977482189894061833561042034724543932054186637291843243428529398275195561509843762033644878582674280878343508215235558732398520341966861682077373976307541442111580641871791867543574379293321009214117229612799197681547311852995689047720544669350000603917936388698014891175058561328495756904609262823639853557818546473436582412366038097555025188157465734050201321004436226847143910205051732206531683008008442358260287358856758515000375395745986155642199819528404286892063394010160437866621681176604968969449155902760494083949036560656591818472749104574078565963302781234756417739384159575993722146770284206703532871063391867938846485000702918417697152359325741764346777646744445483760198679180989695450904339467193345511444482505290147568546203543255900475746636683760160998906115170846636525464222467768297723459092437709213035073067571147396637999457057724774803216609144188094661256093720294735702154373743642296416132719660483111628455315060421590869197177890464926069035789421943742290582723754929509195447616542427587341273778488855399212560478273541213554891032205088334413474434731550076294462041242864775403034961324200566014463280697930868338834031176935404599284347623429216907655761497085050660751428904777464173198813962721327611436762799567223501505400025286679722391109278687881499168963711101282129358168421728806124480913205351329165459310501730141300633751177146447213433790566859662280431988848888520945704760332418100699796227895380177603739599750960931572461676919855568163469663235285752426799443194986035682052687984005892561835682859636026743388084446561299190326355187870363849929835245867687193536385256758002593283262599146525234730188159041991611347002087321330032783160430792625488922946105933628833432914609012620244195596491716768015645445021766907183534678370385805636923972336470671818421784788136524673201411161783053183999313825899748169419630040910166030857583814321666099392565228165586506483050172412041426694311944629200895965279825290740154599359475680966173551746080733855349969059176206522560093315847090582596769766477123147891944955513710463974786488234330200202329608628062241721481161950707636370986271022011118866090309958117054411971771379929261213318813200470981676280496396417153215746011544233132043317634159736569691196830514544615345739354795758804147457588776634701933388806458049545066854538281459257299472856271374753113904533361736059084779922617455262893991790368778206848682197416131736420257894384283353255449707823381062137867907321666470229568972320586240921613607828374324003769712706659548132912008101281580887834214793626102548126781964057691795712310296464803640156949074580384842632396573393681305151267915511389728744290713845081729114506708175146189177080032072001570742782354473779462774235852078039766313386245336868733226978770338907101814918921426138610046461563727823712100614967686104520070985657670649517371532012172865276486374583155627328928108590481071758281807991143533403886890229282200810261030672673586940346805114888128153467123685836565342207477147327887257450010472313786870475105984688273327546810613671203808920778783537047389706259555963719074343683388230477055514622131032462415954984559258395494185557134656586907125926685047109665712477976152885932474086607080659088943949949934864405379883883994277572216998100609358062752961502740327586543690792317987226816363750796178213287606790946439051294092326912527076141038416707966206237485823358887107831968520505772407615053780486299705303336854621306400149340630387981028297277817816966952907465807755786773431827752508872307634561970121561646958147322007194237499892059085550079567326575642306741120044193226951599586640278973730107468876609317095835738666625558770807315053287085580307026020075280565099343889385167603282626477504248995065106093007806392926940618673220166589122290708805248620209419486297575008445373167924942965355607517838169421434738480257036248373769537097184860250998727244587622929388987614749723059063740895173296096315387968928796471335789820426142470324064997674716808025890442908964399961929045765647153834877990547599220679583052720188201982065456044463171359145275795431052990474133670854272697478086966934314558229010440082582716087763132064639989761737120083183583903724211245298210674512956544822559460793416150714281322771278095168214107269351039398177762806748331769914949279142743496916110871261405542472563712197747594948926744346050489957122961945659762450106278732538414936162296679195115455775892081926597057487970985845611007277457465575205940622149690801295879000806143061170328003956527864887892308115019232177154007019000388499243985083868088123416768540159392009435175659794024511676372099714360938142602867853947655410960614691304844033152450246616529274249280133791499239271695482428271785109037023142279731958000141336544658735661377063898449097034447415539205340304866552130781182539366304472492736737137341093149062595950307360114161274622225029811436598857275389029870040984060737116162686850761503174130608619249965574160000945620426460300172820925140439506653178587039352509926176505529502891954765403801952939915122792178414156746792982433168154307971223729798159788895109407186511551764922531149821892032171637219242526619626587549709253625592147616312330175211867079095623479280671216905951159723101923266940411568354148811754082997092156105725243830486579034925789513233014718409172107166203527224568438973169555043962247820228369833753663958282108309137004478520832832719833002493922536383592541823983878427194884636942409982451415465931855340366901397227133832514533194054398298823677140796213799188502150061329364780382970459407321187515599389384966821734372211369001701067223807392520798540753542689707652336002261698389077661756274057446456796143200814763223970677790743017078175035310936460165719910908507190419462174072769503665999244741920809034332426944007152984822821975135341481138440878778501264698328063016197586423951629618719689976198670537370846544227612133874834459969020900700910509849091030529617022629547249273489335881131511766095346859367681742383541640822011946503947009301732074900413560361880221227009492029921038153124378541548789864023595419186284935757162039921386667538338363658119495461068101377280770824708367129208974736769509836462314792742647168900041069842922417137972513896533571619389711184475385360625388222528732188590220378494460686175892649803888422096188633002690509963091419626342349162307755529899728011189343627638287030527389275022779591293331615012018233835057008864949721118847225036734349297949639944821546891547413340054309071359334111698692855599513031136994148698137783330930629722830401450265347732325224899483976609516630575657863163643343359099498641172306150969285381598106062604111963752345682371640024291448958514611430104185136903145096467096361827032676375335435119609166265254875191999827743394040342323382902177718230585931312188176293341626894087717972940620790256509784379542019539190743364469579342162769820269467970916233001586647088962672553042988323291714355855150213515171861114006175916041273051578361890962116677608880070169547302513301958942108130208616088874164031263195535969483902731405937855410363951508398376095908479224920027253608414951579614857862664385799440908136224658435837449605538995591221046377646341989435673691769387353974213646917563141659955795104752145512871856017649884346762833020631217450758800722751346672302559592530216733876161657691904908660216565787656130752690626996807996110042619008682128599510824315456247718061885009823854891784746574722733718403471762552774992580816956844814746364382295881134434571966898239798892739037321580729883521194173188403776777893735539849571601727901853717321936418073720243977319740600585857040438589890438428069798300275127013827874164919086293019764693782660725554905298062814293748833764957399588824542812199563583711886656008234538527991024165650656022438120479419743884102929593511002297263582744057867629155389317586930949062009067623037553393177881474153182556617773347916363744786302739953708143632552433756245345509349175483625384199821421636489625141408339649008986797561036579009346534898585611403133572814461891703112293416312037547167903513964117992560015930541322229718310292350400959261305456413951929979297142834807498562961376453443100641169544800031499520730790660327012740708662575445361713413192964096415659338372218144107706259093971640192803792882531028494771994775021101984925386944384947480110163306437027084112507316585173479097201338411389817311059346070981784517770352760514305226333223492540964072471243116020887246235501399541497864443858588442108787261605999824656606459475452990747273680094749256644495020525605434495433106121804387375277501531486558957092174558190107021729282627999711593779663773472712858199744606583569027086728133729671805733471684272561632936663121701152421504624069206902485564261567943164204338494976146754034342991679828926444687238511102757587971171961509683673656835195917450835487377452848046755882914414835985475127829325415717575755223547516535736459225217802312586813827839587901633352743483794359150200473863744859526432171484519948846589545872326569680105880327843152636981784363332841178038433966341452525021511183343320142017619660409167105581687056960839428809935324779064882834309207981818391220507135867852167716182839337576454104565422661775113039475117356322868297243524679725176893295500487633763372377025476497710662226585083294932364868145396930923005424279108006121166841340042875508379519278848977715593781041655857218387620197985258309122851130492646808062196973002208083298918955357837954128825329781754622138785087421210117296132123936567088099390762666209905699256148817058734273640516688958673597350500138063142154937095440104800363844585262904718021081933071459059088517820420370905720076207986186810467441744083004549117705582436614784418685276936446499097160628873845004907380889749032731351837787325274028951676971631880904316165991486689998363018695885514383380938337243087201975700453514697992797866133394538375763138234556508774036104401249977033836983712771183105128094399763896142999104573242405840204795097005657877494459061722058773688186784684377980530360364803590542689814482851935725800068627665859586625262331670316493568446748102549465413992351486521470479644827305390648208407264532145220777326657514255865079719728674520030674386525385315566942297911780498278431279807817494631226828827195023750816231065044571089069173267594772762666488368146435312531243880698416779428193643477945746731218192730603591780064417771198413286161698440838731698299374419108643633269619123854962830308110826186178981292813731685417490616797976944955187854205892743581551606780530737863667725816632723430492588066440834078843387907354549929158398973097308330429594311703482980208096883716967201713136385320607933324990139062738254724733060751799510035627189473166230156776157548698143318421028588827845644726538663590133096097562644936135096536065467481460871109256043586105300422345655127897986391151023718771591138596325521728898676708900929966905403973796655158846420103439410177014206770368940530015101475531399282192883878952944151580792341955304631860753549166432423900292075046360236912208329682468698566383964388420787588883765065183228348823770636570360238389902686528556513346071881967763748994132570038878396164978645176374006475323996884416500258519563352082160185678076757649119646412914065391430353589336790891673481360619845798738157660990222151203334662592149808976567657920321015595895861433936081771070327300716769701611486359899301804457468031017422609677044452384278731811639337836952317945196543237955545729319901615180308918562301324719135577558666135355291089871203371772512180153026970670495344181011744262413966527650089014158984127014170047687299732139925208037539374129937970769037069211010745148769595825936658179797271811062833935690139982545332078121448567373477809303628052460649775200206603484576412295363534449506730783091801167705726478157616915416217279817097477237498711574893423136668188844145299206430399050208419556484521595351573303193934584411694659080636328810870421908273687099360197292233502716719942872083737484666157052662237410497446199571237566444000052203720158901269639742976394223445674766221337229624655734445640181697847624939812364579445210741934155031542254495859732476060020497601798305102704060640298798885826049188797186365109444676290409381636368637089247310353090730373412977003809206422329808927734649304943564341117937238995519490232127130054161943363248979726373875708147608522862591206406029376477124146684017164483699184729839201041290645075535256448252254768164673716995086624713718233259733693649156091535402468908470152468956573063140361070236465422016326492805476160047204980479836791796505416889180122731557102537309646892854562107367814338037344735014006621030379814657942019876176796004352928738444649652870638187546954172290890156246806414441409761126079984360273390937438839617087952452137078001987945995341397379551241010649124285406366959660700440518412090825380206191468114043326725314220908970451943793160091693317513175750982876076007426670045424296567599006913996596835824439819359670223325078170319250560502932826711740773932517465940795572684392601050230915526568498515602172765466672031380803535512392788923044776293932984580927836653451701855900711266300181157481402089533118155786644631845069737539345249928166094773078704947483459844306689475295010396988650130044407928706247858602490959834439873616817395020760691526293068909293202729149911008481054399999330886433376515676466393327569185836311034961623206418371075503051157725743036553280828605704885409909059615607478837504605291159703033945251860804779503325308476679820676843843719035395224001071402150461359205219332984122776913591169610431542366786483844158120450699692819559240154979832018415651791887641138252374122865554282072463779229110569826192095734758883342425192023636046717340481680443676262390943033069610975853506022642249565896753899450391936774614213773987321554901908343178013024371782926111250756127265607164159537168229241821626053170767393251665934912259098554940390429858654552664927435075643520922549095931593373104319088172289619276451022660627156453584990021986255320771813132953646716854780475852287782395247246593416731000711433114322189790992417181247926744829792885642090901961580628195890689884108213739791654948466701915220441305790205990175691599775290055627095817781767574640343473156672161098131643356092500826018422308494739767188164660345592279947478958460985196192299003448436377978118691537729723320983119068635565643521070400335176003886411496846733292191450308662834369042085364740032944482329135430581419784777297337506510245430643869505771268666528857383411761867417521098605246087432221093480474065039896503533444769606690676900206371716199218142896457803754597301526719506770420293177617128368708391840218083304619323736852338042908916356212997337451178596058983808997453248301436391567962330670168335192236536165099895650283691746307632531368684530989467886465839833089836725057950699333920636432598903006296780997403766699466144540532436723559441172760552327389315974682690867013402980453643924512543727680702623111922308424933408317909879871431556594472377440189827430223957767726472942053066898062302383486995675095322396569223998376748518700732644287807820856766150848996718851514641651025221642847429702832066167124668043952147122187363702431447344989697450775655480697022504784811957353501451561515090653089561740932440634336572675180529091379124415861933986642166058497207765131119019378086003172971111447712977268070873217295682377735686796592879775766365705568420384899124497900332789157777402909679257684269481049843301010051931244805632481749712527436640392143337937418949527328543411938357494497385924755714102993917276174432524695818530107350703867291831509898562931330137710369927622840835717630433713266670240452922085254192180869717955007778702217894993944858112870381180989833562132513869567447664072421850644838118870278665874850030821685014405079346950894917035597810509499161776134706988165305979436081897932400452560820180836228038336953359026087056955092968256368947581343898357842977414353482116584870102997706514403833969940022730392274314821634548839094542313169768802917238218195932779376604794812976648723607175124033938118056656346796601942608232610376128993029594880731722609525377013765983944284066103982638940800658797854017298490198508755186486363539269619461346657791637475058879879219317850205763812428908445887844709208934337559083131472190750367555832775058242169199872784001444232759435406919207366336504097485416796262698917230294383253746380635874669895581299270864585109580327026493902844610064784090693889501601340118152590178079658355882470830559930817686570449189246657816081803401777607370254404175255557293724988431203615375611261139430446663472509105062946837836078369939039452814134594320669866346114127679747413901306699375561842332187358477469609952967378450943005740030352537641981996633507205612539763971577300385780003101025735324065951686465655451457976644412927684382240994185192091394217084079095271736648203802632239651397720968996593730322305479383742594886255369647403038300181752116558938368112489011351900775281670896141967349671135177288128768273114747028014840086504442916345374803146913724229268612058961465339829762377431596649707570031715578056852300731027579651915579985458846896819878296293180649816271970193302442101284983297795473651779099520789270524124524399963354353701722290015467191001599496094948557733874032221558304330790806915800395474073663936653657968930996754823495314383256627603842296929910103504278456412600546349625070053423003524748485632862953510227299907173972490559585528672724615700329262983421675526215018495431321590427930404511084416292169507661329540412165844677729558068920770678117465078811661491386184317697741884833331788998660316228655717599727152267381462557533668560707370282617794604446223546329399457899727768133102771133894173755138101800019881370565734531808212885048719692985661682487185540035462070710252794642562885910482739938297836707188019063255821623327099882027044442043644277293402401112750096981606744847787747360106020858117080178931198709792549020347578436732596519765112478729639433166529342429732282761983783087011104554760218100049262256856199174222908556851087349934945744478241129858847394602094023363307313701844163602038806107033481051209344459007731344250660864696351480140539288858401267676243155541029063434800011240498084524614942931254097509006922515542660383083647641730345314892955836109496033401806000401971360804099801095380769559551394065424852679180331846719799877689727705632814917791481972750577786832493524097483075661242604503834643026227143061283731227891582630570215120215220607247980187055402835515536264451475156778433595999945309342494520867299063814711369082017409592833773706459338772737980038250855254943460053065754940698652722902265151862034845506590742911313265483119001644334641340641266493739487089343585122026297664885425646710793778215889714450439497412292395991137524330422878388380171813557977110390907137318358723850959012373988387074131632595868548599189438200659891944450826985335712068531168197599942229760782648846959304769362355939316207491385249741195135957063975707858365757075452662157070197428435244716567729142908870570714450620432888730370298075915179432299839866925446115900269239146476710742451734829183299095078814861892726899418825156879758317493311252034937922894826822385545585786695298218501989718842439183489821213144108301020010689520618748111225206463595858769437010232830829397803971407187466008460421440917039361641442672991468978348328946474477234928034134555567126176985421873128128500772621035431031939166706360856571379808631170435068683355106011531046168395218640340324286114153154379856221747205409022461670366442157032686599285449661873839613482630643060400690121492175426591737035556012845886618796417402442968626985717416264080462900064897150759996383577499028795995987341501303326338782348648537387788148971294980248251874674975370657990627522957040280915473113890331407108954795662120583206989501257960575407396386771264913136569294045486769921351205420566512699828365416056400565830466657256971794146137610424228873303698258647934504268237913819241986858771656348427220284930409675592279938725936476946191683396724168813996094304723307575662471952409632211910451071788525708736412627461071825818510905520418377975232260438606704961267716082274750283141491229099723914117539959751306294003279823196606056282032056241916763252949835924341582416752998686802275126529309016259182087540760460517282267417336631984314335471872350515644066921092761941378463954572705586498567210984788788990974877072414186369715497770356067743407234981606181887060267835928202820291446666243298486891788163493072792038437899423189540195775321072002665508864855461378602818430991117177323433398178495329484282486932888219729096192620356086629472591044835888566739894832980616177813822861991458315340784282405560282648929376103601677558956844888544070304604083350506663166781979145988642499936825250737138242406077568697814573118220698297152659359493721909908802037788395543963528271515969407249723481025239803965503606273032491153565568376696226278794539793543129284479100370037423938089001374710923526173202285530999206415986522196130130898227995193373463964643632629442470760297106143000458563437773254791582792990299252162213183464687450903712422965680964971012745439780232342891114344571054475845626734249359563975892657205809588754048905600094017988441788460076312294621608503802959365981372751490182176420215362703984757597594451458199442704187441852326098832530834717121198943880074482463224740389576877730532015597472782025523726422556579140968727032701486707102704592154613446888174449658296754150006333870078622510891287594949773185864549305987583983481894061322794023047110611406412413404232090484868871915266501820869690659824300087941385995742898344647190552640168893974700457067480232080260535038007783773788534933319975862995216087911401652529034934151623176215346088006719343342160314211004261452324793802144093080703768390499044643766430213073344056287752109934713745052571659756083412193271643721997088047817644732523367563724266282273896009260878704708235738366267158004333371224785969928186184235695626192365358462789528823570098705237602602302527364948283625752676078373506604580261468699844021305315113841599631793712284149983232287088028602233562426916967772798283959470069426313415582214791363419882776967620637923912937613381094781700036479612795167668935640142907055275167429622910375460773761808446043385143129354176620686313010336991401535226275535188303885440666509130873547962473624395802565848262747527886010709279425362904904606618433681672782462725088753693875840106015390351948541909612623004738049610056856527194578425573941848081358774271335948466910526299904285270111419450805337156130374861559672829136308283915232193174616770137519209920278720064052838148144403044751157709652425689129843912206230019947603583965728232126823440884773604026205462671752974468648877825291584005770924381435217402590212230796407982263546057973687004094249313256776046364867331236484301146492053356316646151449927927735189518694947524652795798537511494221528029174079640162447090062622903896516070249629326518075260689093490224703582095264833268386862840277338505006915168684709652647292155518376377834329516923818811103046380032920909226511769004369347575608832272804061328407623419435065359105678364410779745741741005647134689542772846657359434642088867320801425420024363943093806094985195548577838729688754127127338386817036509311092054346331131580929845095660871765772984827824743364965313330508268860353774832630047242056686061384769181624530912551213943603393939206467861468389593533189216058198875474844671126994984004757733241662807815166061990105747742394220634331879141934598478205175036525017733736645282751804902822423526287622416789410350694164921792660686964752340006239318900581465107335996053264113455164923600444169223068567539975372562214969903902198047475601215541366441890017076614072250533190127062647658103229881302850379028683729279090034207029713666704017716723330222349615229516065127814049700964645187797731348157200665998623940759332524495331304884021559091577578583296078409984441386829248262797108847695182402780029998057259121321419156586209297058086459434868005060990976709880721608723407380326975099461925263997474473546553939173978749229975478755332541167964300906123342959330658382787630075406003819990557460492352567161317437645668272798327542404513803084801397034509641447198567316997042138543412185745800692079428035840996319590579760426561799087490377264304987844897847810992017541892595008582845326686824920689309773606480195914347268316311452175098767228980656911377819729527284716332676266878176568057929459864057314496360348962102689449075248470091754566141190282095588451669170681002222179785779141584660793366311499521578890855242105997544335712285777597417059099054574119974581870658469915998540587073018181045026400811712033589680537658986611451890637088691939691976492828245954486438063168145208389176129064856934495120917334975948134033109953329559270747868574177756237793871904118452578040719442611589058855665125028966628646215191476455385819170138349689915324129460150495257441277233646009083706355368500714241093757591161227221554054964959315427597047526112403094612814117050148733928488076630930819608771637370037318842727721198493998804667262672048124618852274937196253912031633956604992299804003888825441996184012276879619535900918928781738326838537147547853862877879003437264183240288719678467068656662126931766812510207522613735924892906396188685826321415505570036954003131214201891762957240996203841869384572350342627849380748577543216250936300110396798885333466905417537087804847606993079973648997746488810692968160965592809764501676603183808350790555786863172922739550470445713622147615984688164026312871833493048829367972863842373497830561134300446836976789229372021379343028067090345772989566864601464491052148969726797761620979485925246385602784330312582089413031397101250177214401049350437593812257726919524056313053043423301459477847681617128819877475246259257135572062180592093282591264658775602957559552547653994345755957837773970819517591907243740095133921503634613114079115258953159161866371365994183519799627525253608293830870435759500715302666580655657650238796994215445079379822699152049781803853089038898894307422054925317506153738621944581709005101288725844614657803956806498156671001968325079926999965758950864952781089319637752691822091215824066949413378878404712669603709895844196843355870850955606041341894870946243760981419618859407248826688488845100994858704686100629817830783006531380046953761972514962749078335672846616764404257170019078540262463172829667206789852258216824555537826923356376466111872018733560959632318798652704354178071131353982871019901610632028079938907488360694158231740540543410331808228129509944955714514181846977936302672852941464346747893312897949584280829448969655274635891851764842713132083434050334943274649880765178475306058902748610338827559865345558978406689615659982285563428991175975447599445319760148080626749744896525931713542851407174515024240984866709795291109606439882051617987552767966499934237676030458688437168075437882583243405187804728677779750718220061194403925901613488318535017391474156363812886625372713204845547781415636290273511068202119554751863018210367491989977441461179568998451137786893258825932368610607955365306292414909041697888492265805914149831800280784910908712896123794006734108746284043963455956566193031155185932777950585538168802605121064040837013203527527340546029446919233723314249712159194535834606311562818298545067571052465566766696180050838943183312729629693363439870105723774101790781949549250943093149261498698848900472957106044948531833834336657920820594777653279925291498938353591068446204199586965971249049978559799549995771104327649793976036975483547530247585143865295217798784400886503549637797000686187891166667544953350446541016055976094947174505864121324116035036531484957766084626258365240238925890755507908988776033699642711400555624698605234681602715413626636206710223035417597138685408951378503896266251500142630337178327975788032869552731354936277484261278586642620803770164917041557707471238710728610820301115038803886036275081693580367290951291040206598926884142450779996624940012434838174576734373820930566912236283064465089458114693159550181097274982223645507769829949552613769261552015074134164086320790743163859497219935799989768375931261018977190735508421558827646355183707414788307531041038864589401719265226877406657233195374647194315773565957643476458829982706435265222227389032122965187948610556586843988948153896070229646605332885150819819845030421379582871650359721811515071486057987115157559128737865582840020374666606033278369346483410444298829629041236387163379841718483762970943592651441865435499430223271909016510726498457888883427259863116202045558976316484048322072995349902779571901955646339971296998956621977642429683342806612102177665361948909581888796090743075795661192533245636942482340638817048536555129731188138900746439134478882251115244828098772846417106796821496632610022176473797461835769970709776775899506083451617464593723539360211913671452708813709669303387812538650538475429790005825759319079580207399297231291044360293037492412789663416875974914455565652867171317043293098890704966275334960699665338077924332207849483013789579596727099584811620345053775889207953571603819394606314318892263682629766488634584266361355823186464328710740756705234958609675744475879446598979614249560064030041069034957848504264338432914956715492626135459877314624518699917690464936729259616642337711630611768218391277039866571308950729963507240005619540030816366284235773756532235058116992382923370814736917912163829572587289129596594655123351155748286298610511438942498673234739080504461409486584951629817700374611429096647692028862335174214978225022656255943999468203389596302220051434681558750564458240176378355179856457993024370808486054293909829338536131703263235288235279725949655776735419721313713553003150491898070649925798472163170396591758039905948880228315008054486614010225785172740814399531713460281475332539323037587864978179392402146125262992940632733937883221035439664477495180846106327443119626578805733558744429364753752232316376100027175434484079026762623108450494159688285048976506646918635727808343321583314839685237109845696891992192288385899397701546372894071433823170453053860260719527053033802056977754851210246711154240678670672889334953647408711159155120842446742246074978729799045086635263304507059860274126204848301375357220085973356361388909289893493965338934247871140891623207246976742354422329005342239736601723633586049845660436632517079515614699679483684673836901742202193140595323024456494488423964984089120299858505222401599469069393944152912769975860092808327323850549725245511779730160952795733275334684998421901816933439904725730947068521828168088854885739490705443317163637480124673864723522593751733762738216824847409361521909883774816566192826010047211188082048172394780631657455702750273917245226709280552505041133769757395446491473949452822919465148477174767632477806117716858686122227700855826240387159151466626504891123789078954615108600654683728880651325830562891674708718726142969300005899681722636457915693905724355721456523367913164977841475872724099714967470582704877565331002265079658842931870046258191232104152442459514118670668760767792157729342108703806120950598909703718688043739158455194493325773956735781092061678059114705957687415127564217896848567675633338353182877727540247285269326335771835192534417818020628845754084358410902355176515125790663803876215362204470469473820945063105374087076297882749825739859674042007013546242266236769605045666375635219860782480969053240251461705512207920934770290569133040339060652115387726181845841518109725940171645474200502577548680634033287612217698188250483671942174532634735022542306950244177929646100284566241562437697430277772356406231310758792489195478242721825479167206646604927895180326187356889717929235043051182574296955193905106114738589804385482842781994298612308421501773801408754450803516877960002327344875191643264148191150978848960223206256466009435981024810694530865563485259570922113689182637907679020903965432010088537650494878416357965500463784487890380326831651311290957042588127449273615576419809271905814757293678123978998553267359387022104450289521278679393446891601805542773839991512436641782747863440219672465657780803865854666038238754531010136099253322642317287483215826134676705033059568750630421934638492799228774036337386923920387745006177443938602706310485062675578182078019645714659033240189092353176784131407524654992772540740442851615103970319510026283530457383669354145603525224743270864712439758061163313978569355335953847933776014062997478810245947384143837772092301016694644945436115882257108080038159130004001543226437095209106454875734176566029738091435156260224879225733055160777186991009809636681726280801519665014513073308589861185725183941961238314409228245057832771689173815173753719162369626178075274584392364414550242071299824371077670382980899016181937837903671565437175254973932399343910444605226274758998384913587116034464482542263951386157184896551935797374041333287418338160909251197023618724776823288057860563023578888592490419935173768837833999842964626950871220924116025331386369617562534177177848786544094364175711202250774815263013456496409315579139870689081996966426110810584487935277687180941069425614488125918277859478953347037664385515690406261055966142160563615520512125927844577802075432110008226687225327201124519685809892352561278698288864491516786277330151814294576235343558018186805922099002807034060114667658449850257951702172671423388024762162348107709165412051548738394864791771561970762606787152659100337101290196968672062625074838912456275272863677686182510494238227413368464146290533001513978423155402161479290333997767749864922378165174663299631193148966024553158279156923698925268385714464912624212671621584575853114242046056516791227787304790593444655943491365734078733706946535878049194467119020524738030118956636804216454810452705084131260527424016574536506456831245380049779947140248797989114755392297249340311579349452098289115996810689134050983478719406868504053787944116306401644521672538542307745709187738909392135181287207007936499368287982045242906445030413121389990415947265127540518933753236308286085474244862421040605398970548472623962697575513442860740655839899413879328183602508421541976397351379556652642404855608778563268018334345878466538195654149133714706353704830108383456928010231794647246090518435941175897450730991333040404282101107361892520942085762419861685427214414475678420587501786102202455483359657315398954095759483526772168209665146993829254696058177908173658923943122799828413904621750779795272355078757934361750906028350773183604802196351785411836215912301934481675791414090311347417396520775433355036977014637957764605936933680530526129095733568865106285710761005959827638565505332190098482280046707348812430563871528902775008771301642283046138558324969712410983616399643891174059980311170766672736320267340119034150434709933974269763914254476917969338373578767544779618418610241988696758911260723683592827051807514992765312015505145949730085399346303141723094622255762884403314186023747404200062441186722914650046978219635476271350874352878591366575273525377432899834886380158247780061076490420433897127945571361280952448973123096178382344749589798908701566867547677444392593414131444274906793530122967885650289192472025740710711469394650029204192692933398115118907371461746356390644817851223328291824655426390884741830090948740733614776194238184152870673866086438402635780250129972476044875159450103654948435687065539757081158738265698285891852774251848244390424797902427427575375323755958426498425975637301601892706639982450357362228349816421816348339429370159744062980453026853610501080012655674200441583466362084246276998900990702694852923607873922886225460332473464337795163004798963203308529062761052620374226361141636371505400791833803530068535752030965915810201834989836594619114141063207672565532064213998903392577115166291770190965398141904433196337945437664310621857431609819807041306479455314192458489559567845544006791449264760372379757552677092495098404208888462522332830172919432690007009910915811251152905354397955484279936468273357697231348135120337849083830924107750617159094644069457334248312904244905843845105919239332692133925391672643942380737958302980368792239391472555594375253841772544255816330318927774139464476759743529177979489901845463174260626969242811260330322484876746787473627350002436166493309000073234803837575025917254622284478082289442027710948826361018297232410692434858740472530475193961214756988304352548249744777338567398682819302607267399830295686466030388974272728119463561835045941183563299492191761332808012912162042340535931408154132246046184190531719669041431484852122061358396256020563266239184534742902830822005980925388187611489117086112217888387029730987552911306680871763808128309749676365378700507440828149518988474911778564187072428414486720578447360316455582587481748785826574877186612390613124833852093274827883762993072441037351861850923499337953971237408830910426706984392855283927753103766767794632128461431953951914584553415505452937701930583168978390490346987970248543679032043677808650235719583312155181541619313079472606606647493830826223050983569762605720591564538645996857259896035858708677870026108261274481654980164706567134717023071645539911834002495597750917864156691240169595242427608844192649627960896890247767440030839807130598236605208217255858935727685027808666761871071173420479427059657655912890890633391492718015937919680482760273966721789909202035289717479306500735448424691670308155984564405740918036880413421560337667117887135102796804019850932170712547950555032608399232949037749232789481756868292056166791884708021805579842265540782715219215672865294614792793071631510387034907155976053804374062035495451013484452982541594705917564517933766753617083274242252628972562968941619116269191450430865400740463716354724137098949083990608535804453958151164743794608796817810357028742113521169815869031996875208267939251676389133845073150744174120062228680865134550987870250130681812069020500808706889501316193155096185826856575500674392983205217702483337199403906817899202066419782505622129108389395440587095106329000924147578879323954533229065534181298650109421562783191755136229583290196934761473458124284623557973389040596200003335218528214874318579634881654950869754301178973968564051640996893048375729069909255035723933380960238122673022187603515331228588402237447339019034637948548232284210455124980294858764448834791338771873155222082064197170375537069671012681194249872420792597574207038384639628336690536502521844313627368884239327751527385306181209021222439070024128999344451463737300238318910956762247940399747164471242899803958357022130410636014320775622078823185951441595458802716475230679498984809176947099488754210227425939769372163549381599202679528967990170661840029157910683080516073404418992623056506342228658174074982711867300155776492025269415397091047916433130609308398053584416718020513005654875253749237400878812177614917287757691607980183445833640442956926828279642955175573661230275911250956992165198553764389261455536111344765263313553124342512522284239207832031023401729095573259032112751540728420277557316877000176391077492316880058938964877656096524085234536803477808546126916332238967914019982201858341344843344058472677389412154486762154245795658579870896598554425612848750655279747020077997529316479961174665187633698662276634040921997134882982579997612642588480973972318281882703938293682478955023259156222543978954656002895717879733003205145067455119114651657782521755911171996924437437904481268044843099573690959358063642943106166699960535411787274964505630510376234984660103939551468160062247880617124767500446963435176753505810203133536173051720757023095939344459050776519226901029950514410034940040885551317106777077873879601490444336706814946564381638894799741920052703732005704455054551601626434632483345565502853871419945908551433121266156884317529227131289120791417579278807958397461921296543011416841012314213900322131592029507861991376808447318857029599693967206377701615310169427646756595608171628025275983461778793964178151004592440438948070889371813174777486420967614684813841682391397999396483021376750466844850206107547002650990852453647785708043145175284072199198172537393632741779646030985126869123676365918681146672839042980205309233762755942809267188751261131341684691832689802810092312781051646507176271559590211083531050641344774865210940429643564413218123336318821721894545846609038079573821649683687371888671950772203880557607219034455065710895395278384515960186464814001459198357534124436300564438874068586194991099238762789352319191415065319903978540503852444482798871251267037918037478347517133078698771309764676330393346371743926255444023716600902434486829539185254632394843149745007055447580281609391528239641976900937852764471337811575942350368406088551958433421083621508000192587126405842073804804293677619667226012529217403200490210311792408785068605413594157971407134087490447016129086265712512044731267485450893679872900829426793223800892267049381650221195081570356019903219900499425334696376320377957832527546586431257960532293826203610370652014510161215800995028903992841265679341100174492843541962157279110302446624376994573758508801531910553657554658792022632746155434662876103013213538511136111637338958536505654703143192583450134587816947134013899994596558182312168177927886470155015043462221907787209001694383231362351997080515537228197429010500320506198153774544587444039342910586734626506102395784299088645243442249523329572754563154932803108384643321234983494038821013344295120737510774310435432332817249658717873475356064841860886880435256525625799514333877952951196230991576124105278935630425842012884249261088194297857267068855209196148716492602146047699743194581003192426860581806627765019396399898344068689752605466763722958677802609730645349542295133630932154729529206304287952291062638159328934559772503486521700557697836683867166458453647984622151089632119242997542645906628009422803135722101401475324136751587259106794922562930297264148511124604394704347668386971708940995486157664124969150652297243808037907314623949673091612397095696526420351503585685265204233115632281905469482500036764872504551507001523451135324158614791331554058642179947407513647277709999888855222702471381711510072383116588786034906144305702454128480763861330745845178967540128076507792649011202413931653005848679620480977331127690681378436502412560293588912969675241950909924550780453292889617569851666419236721877530639709777183679241700457457841341842904303577590156427409394116845721136722004910866669167992523486694521496944826610948418611754625475488489593119624001680235131649515630014117291514974822666707922661903125123216444511926564777273540654391602157819930209079964324047118805511370206790757810977715107404015946031919969067134810546767683776294034269842979099619984046722821712150796109913552082794163769342571703945278243472807510128169855313864251819257314165247207956322002560232333818488136921260398657801404486982378205563142985151476968151029680583507274773003211022642161966840329618784374777643995087959914529913844944986695518901893265021535390484178245498774416197840569052398698476382922968200083040470636783287213277806520947956533164949490389874910324392129096836212425845081613160283163300829711409604731705905497904518163760640260775313419281419648842988161310527435688485702835035391733214565623037213834262015566906585221734264423635834711815911187272913561756281855326089313659855250629011020739218517516705685627314559315316146720570916021915528694858049261322069787390461367143810173532409514934145261293367425167920646009411999552426568090371400186715763699716818648277844147779888678529487830439933464994467454769800889513551529819374286085689455576058238797160199111391711856556883048094734380862679134045864697228126449355540086936012232892180271185794750758169425114724814580679533104296649274482843891489833421254114295277154867041856036918862927834725031356375535394089151056279493371171649989974702476031638903069994662143596559317751849035345686913340974105286864948246104985867847716836361267416555122455305284449257262167386126295445279323379244293938407983103909450477655899492477895420464411792901230102886837313373784946001742667037135630407088156085693637106236903015647931433822928765185457516810993268149875527055992785323915588191434275326341990806687287242846378441006237777539298392621637841223374295819496396717020105836456552586510163592494217071638419810715827078939770894729310175640337278920297595664526616039339681958015858324538768386162275511338599945582336529402342518432733410006375811584045973210847394374581486376203234828272805048489702175109709035207926745121167410499711555953978396911986037913714777002555736618657865601518794523867243030417323183668822275960319314854058078282488206516417613023643511214536160538100289688873291961660021506440639096907144194794978840888633516354873501469939593083599247416675028615205711471515451482283106913913936348618824184306765584571201366596976712302958803639057174974937571804172681631239316777349508676332457408262741215143440010036569517053966354818058558201679742524989325266494679917640640411077529962199720601072165946282589809930900541722786325950573955796504600996845054485899566536099117613665494731951084945623942133228895182144996668735966460190888477158932934134317197112646546708327267471499844299179417443916738189250628054827998535286661092971473580318189678712947543565912114868137380260720434778678165677368691593015405193501428898211972327517778261275712177879451674174445899828699586738850722664009114623895108392308603905113128207253832047159482250897899888899254882459470206152032598327669566778687112030371683080180591051334811964515122065518252267781797035630068568175323612416133071915987223403750879791616707176233964512100697518910934367686359872804496403101599135005396904398594051781528200699694693318875868759423890208772384604156695663537405512369747492289957167925259002491774675238479146814529114096825951141403915213968743300299375907394106137354849996857014385507015252044109212880374230519395608596810172424235438974007835343352647232111013190940854573783778740766525407903946811558411498036405029965605248328006525614696180884955271731974634062210373700527158927610620626539667215501473410646926909703307440810574083301560507425607771999378814205790639509800062572596988568938262110652014254196275355121930006956499904403136057143746452618973995988481565894359745331203284699562487119237575100669978063238786546751747605313342227159726178159204106720434563212707825138177858575884514224189458156044499018156609537806371797543997257704362405398689446364246077605620926022092796007370183941255845402505843489419721882838613478251623385376707933108796728679592059848765126758728042377897694478962127612015290468499965047209071042692309534158228425155376555244771897060704618201810480867863090706330328498425621556347182823297220588400506473590222284954200337684650930693324039382384184241509214009968548105307861593408209550399948653289838535222095634058832751621463165218966032297432263232243508424840305004475020454214725056912741481693194072869508067494791139148108984501417023884826127545501714815391132443074813885512396360139160608945182846898825708129539884697904319310439106125642387252269871682920157074228207320652184610207210027155931546002880961932930219964152729627016935562725636304325914419149417453785806233291180862171867378936766015090204997374902217611821116856802791418710896355954701470499576694828998428584330016305716904376240341946736826442848643254079957887235048840294646326715353013823586618036607047953468319878458913987654881387778388218264840062474781297751136366110597345716861485255439621947954920726332111727954903134402112442147555728036001928820103467051465024722478067171114043687909440932143975685106309188215626844724709567154617874176283208512963184350112198396471498747135968994505900718040210769885619294923014333822664825507004223362214435200221064984854961119656941755443969018253267941120994966027225829898964365626854743310535308006134409984421868323655529438651698073705494663237656181154972128954006558436243518274315375871579051980218270716808167500081938322958199538217560572904288163559338673933985041572936137335089808120109774461816074114539479926634112332701590857663164155087790017031680924195243112358933756682310074155298139776787475192171082215641113724947241101694160290448245757147381616439581883521339152156081773778261453782716233586359084549713239908737393230218869581612633030467134133817494584003738436094518216387390926249050956619341802053414946531362947230748555596624540068269814252961211715681487378295507500633514962233634770005099352363933930672528144226247166430310272167192264983587411720526664551377082738957305402510957637198336534996978519025079896960302641235700780819203708159490728942117313561721712817259978790784500985939342248269811315661327379644425583478838257526649770395657136323699876220841263794244072867364903516358021942082833870083668026969897968732950164220483480173724694863190157970836809861131112653503065179275749844417393237757438280124525371393313897102160240730507595665023230036303872967804747882326707047059440269865428422990136845849087433210957917425474884925949861621040500510739438571916881518989665408630278925395015634625188366716591741176587339824250707738087796140064994438227995563519205893090780474598692867538306567157610664153384113902845245912614408712558975985579017883520909698161847820710555978308329376936090100144444032690697422119778833856362493077641388901780709884720450412901514576456258189023207917225006733008817693050090422972725100822611493054964190565184337378131397867790012766494354560500648736938310493323136594071823414710317674489791520781629173109529019838776191569314221899926105451384679043156520504553301453651446680337858834489262175808065263969765511448015933198702750195077238412426147050671523917200500772514698707786580218368359780417352233569248113876852364416308358071947030460392328845363943758946099106592625933472182665397531575656707517568630635914525001055509856806212594931952326181801648178952961678458353387391146777657899856429781443701468399623694244976599715009481598535660441140082946051368166781481972854302819349196460414360395157184185379077134302222926365635089920244019186417038576101152904713837583850307092264272962567334403789477669323902570438698121299837535288671619896820334689060325852179567881199622209335083314243633414229420743780795768054474645947664143710896240198180400383053087996347712732073895104969845854635917759030468719268574681180147221764007990174897947593864037368003476414403049210375702520740558832434001827501351734530559951508528805019988906918680910832764961372102297570473225437429847096773626976667754284308407261359001867942678869536048630031551535365191811216594813505447482650495708610440389330501114849128459399647596889022359089066238234433451914139008569188639732911883210677398513262485016763210351085367165439167979822635976963841075462803868936251957094490043555606632069583002476763366096323014298716820465181671745983441424378117113898827598068652214443888603889336664657972260025762606085319688676088295475496831839502061528839289654591176832288345553656691198912849683138546946157012989598606414427340225287587063317164425427565873758709263633056858443597340999215694905832068755470144472009733660212512783558654713614148651890014986655928706012700675054885960426930673848169484568927767144699641293166687292096066005241445869357137763240056109506340458497041723072159539214699759426732339257170174722694231489765027652223262069847611109014004852876036370488367441336529367876667344607187190939306432313644044341590898819894816605373709166758444137850555885598792712921721552480471848255614654728889191420784656998400384957716246029148625009146032185745667806783917799700125115744884355782246747234969225489731984136338258398918132189227151284171286161800808250050849534791774110190183918189058955403829057157281547407584736972568407583821212502329873959063276263136329784032935745388571695189097100903301494656423459042282677341215883613917254706466107411221121770202796799594756838379102323038255637947167611383673407496333516871606961726872990811374462731757949646994813257885957180310698984441463566739721109932376985136359017629835124206093831377503926746786205777836264176474663104330651759179068557736139622425513618726254615460265355760518269805087027003496666171174802055287243576203966101918546588606192778286806077158758772964089310268564993513820726563457120712419580324945656136028566116713536107666495072706441170934366792337220589338912749513810452571729192852133728313355513802809153002717680136243684075144026550116750482867712475848942393846683412587749106484715172051389320192411313150570205821082824633924062256588712340754318402843842488335148773142902461624332096700080087749966885037835276391897812750589573864910375557298103652469556295801791602002886337000171038518778806696950929838337137482845723983155294388028326210206133682318325071626834142801360930698264348114332478483115035397162389092045342475812572966520374303719473049467902812652740408270916256034825756175092722749645863625234750887234270208216637651378408448508582884067316761223638011933880094101966947558257773679651732760234049026011142762639112167194666410317149722855742197943409709045808514348646708517707154569054483267484482584158006474071533306635445430107939876873747841613967295768511898986398989257176390435477344471599969039225190249454023475123163766469708221897995172912618388601025775551285290653378222423367012605327140114058896074919934889851978632716568212420082572638369821173819443089020068937469949397826332698299967645875184981785194242431270768211704084496425302765518970943293236878438750595430620863471443193291523075636606438107073294425352150005413533566244685765162262906136389721767518779485610856798554767923333812501104935761292071600625234499377968906674665127660647505907539061159063994242506686391141872170641929867842816834274070772563882958101509938766112363566033430540243821631997064519410542825440418771011263913051058246146769569905232913540060942982311758898973918460827670790723565724799139183080710109112570138113778872590817992133966094993352100607893546216179640863528988819969689329965180562965745879684663839968703175324734552975693229134006289426341319666562317432801074610526953884620446815758064545583593759994825408031957097873146811080896562793018043555131518506125388763560248296606317070286646883398991450472054477276532504749492314336070321946497066108050251756389062136084004770492479579848933156496833624562705308489521275681705055778212329325438064890201419047976246739312391854527561198426950435633840052965739122385936911202616686253746515484985166563259979492128775504612835875188386138241053879740158865151841375021970249256674918504074637373251410200556509584162918228445987179944220649812427937213782462239152397687748656594869076734907083573250377057607217455392352986148027982586162184584471765585110447371088751921240186087940175980958722698685952374479162673198367851866856558123351352149921553191491358260747740714485293147821948157175419130712261631389731371881745170275275343588880385699156524775115298748052969694274399567842313493442426680217338486538517449754539539178266902708607363962986319334937245790515642882357366668194367046152437262086721837121799891887908903810404579839651906472919548298947829817516823495798579931806757162312596512869012953371704021641120227706464506587495757686750531928021379281948319930510325778812862742354681039707887506279266351382582669339429260404471961054955751501091173356700723861489396040622708144153709137548637381999690136056977579522665440897824784333613854431832259127576264373664945596933512440477103220202453126155127578140905504057584358030262839350168302279508923848030949620046031299604677659759083027238053156740153234774305495311003215799483693315559772717120587538354403339792621715226546543799216449478808598209496785791808274758587113643205429555967606633139364459382644327458907573891655867499230293079797417735375175213580142849067099032569808597108456575970756150291975777041319177509259329315235902202278752103650965319394019163328228591547977746891446568827055806746352369214617581687282175379926194754892149724077320401976696486963898170781557860218127923855291581498554409325248632224857351314643340124039181456964834605259766774827412375537989153431131428419811373602417504512141002469477298280370929138207455494525565917894868093799754943419719487044008359992629053475933445831289223514936707751677348088498222215987324775828876275613582898561651414400261612151075399938039862728602833236614346116534809128838205670831518879533947764728318310723399643588942504059918195978848096712533805545557609132331841872646419561902556529354010241002998016530832852012757691748904910377213793918661255626976991472369989250197821136054326736588291981644809906537572635142220532762079530327304301279547181905604044187976708518777397462615319705146815088589793078153981362319506916245111513901496665305677556986413996958129159056023365681501632550773406369810761165587627790043456754146799485504579177657652573255094463697032580107865793473626621787944660761727912437969800352144717942710767692850914598373651878483775335672926292083572727984172370686727007116824885322292950456522891681795689577193416248913818455484206537054756432747470490945134711671589812115958829344572642765266524813664659354797881816258368928851268249632819603076103312299563589908688747461322045137042559210815536517433577428466231933755108505323601951428121637132460928410692288029312236381577716048888121161046730569010703261582654117881825542956496359897987290389882003838865687038935698935951271169490543138283172370865231253657301535292269231564162332144368289289872679149135266990813278836924392774643812951945555739678170289406927596613368913401629894559895817267476321716197381252165715802609297463177928622932949310680612950796623706230538405408743403050558775766659750161378742366606298062575578146672239820634468098063715858278837887956359407115612945281278741885136202608205875620097884524473550379870004788024874517734302712438203245453136166112124877798056548849978036563094201018492393568925576001070359177122988611863858242454616807077708781406428550052063518813796751269163763256913394159641983133868594885689331033295612866185209480685590925603501440172297165920609622321834159078044516214978419850733218551984017443748023679267756072641967580340595820754112428307182760327487029725007312611454201888582043663640406397044030450947863192810215418500367040400809442398686148063549296774719064764644730284373543987776007128066316620873561405296981966818102141216884739197929617227986677173187004835872762434048672676261417378362252812250881805761352349688377872832364133186995628464381442781125567086790663268206469470200226661249790156883023310804052876216446370496874237478540299379061806798910685314182616064349332553121942043664782221190831808881491481822751973375031033526088831879337145693345048358691835552416472081963455587328371808908622053342230330864717172239639276512912143868486040282302224809054576206260805100769888991396068416320284733116288051170668491056769341527024794618224998216793369588104669158598886326436918869937824002495843166130682665346876220731253257546791755766026063362608299601633088204380830334412942522859885239843820506437149252369330171378289928230293852700433996623358513463669956643563432300820126860144288619233504534805033475428489832937217902925073110948005718334555305633030781463965322616620995009348725542978359278034622246850721979933122606579575876463397088697442596508880414438641861194721407378397325357066891130570110020063061309491906220221684686551764375212493572289750485404652254925643851927603320043592432077385372704708723777366144284790860198259624764552863991960596318404620604573977420918152429317494559502433761848704616321159634070921109774548314354916692952671919811232860226209491257183958915039369363981556144094125676003849492006753892419016041129955240957938474810931815023147628692325640811529635471483885755624307594194423605912802793030462202957534962761033997747512102372480809027592495457845162048637396320766123338594008446868013531015372163164422883897459195527475029453436609609713234673869278511819557776538796273173106745600370241195661907045109759109275075565541036817392997743966481250656675350243653861579750012673954058159717040526410061301829884403529048918138868901051296779078966028418135915885672041030602374398755397908350249535489946098558666737668987410256481146264034295378821197747041905711752312132041552878842910514800803230526415326294509128677003728418769246102262681538447464224479111617637984083587695603927317823524878494653632701451747047862287858692635582585606972362505832441841518706665524286786243463265800354614671649678989463044135242499298046023015908405108599683384955245570733197930845445029326985487327979249652769107873095752020006985060586090908557289117907125101048834122445288126111163350962961209101300369498682132558205912309199096103113184857197097292887662494173986985637397784635054352992833833117717793694349915312052974023910517546444201254451162595557850975842589198475417189849742169348875182524728256496785719948235896505796298526144334326323843783043708096169568314873669849270451390471391696950343310277769348592605716304660066938217968867364487148691234662002064530857642085786863418813027507206308879111387709684833135503712863430131720327364973727347325213571417595552688451561178951602696906555165310899948850866780213869785998637198326101809262045028859313198718255368127729931971337645248992824449483491914303999823551720717772302883767648054331015966414140503427565377908315060818586264656983943343411385527584128922380952037266494523479443795555903084708060419872564581637549722386531328892127658411312402046092923013315279797151119329146705766182985280584826595086184103418351786178225907321898615715955460974625621464843048049984111907557162547948510702820431018951086536770665046958161824068474478574247915741657965912975789958972760166667921481897626262957632095058798601835434556857008409880190664150628057605581791078167513676684604558966826135185431248707328764411280312545268478805769446897058316118752247151350706132540967805243772342452133518150245754686325651911645944075785690509187843297466546881190310464487890694347853906753833732020129515607984812002436706188059166212025253106896906490109810261912156461466266554982676890680396892823938205519108174027405734124463665197722038738418661993220218542518284174679162578375135617328814044106361082612107853751941399563447644562441942066809516550520886150511470644711992306021000309476832944407053834546258736619450995938888048893144584795394614489560987747596056103592128830447402946414971869536917555035602912978408996172536330858800482917453548403862376787755252401060446119966570485968245440532142014053254477907137075329347612295707347339307901363277632916837529008079841172157904400234614800799778539966162900614541228300855624627005511884007092511376082622049588924197843946920979015862069671564404855461007463612944776755044942752199495963229171249704860252606604340921269962910206668350923682495129871891686676074811111084683568947801508832527309489557028179102862880699566888147124183848799919826622758527553944790458896435971145772139411373575359947398571914699036128533043786121918064226768092052837631363621501390379323697718444496844637522460166293281705901656030726578096679165691016127356830858416889607383429545484329616815488642992990095582396781799516698043509550058540967068535418121563418198248959958329023089751371549093151109168276394347613574575122403359988393924173848331750516625242746853412857291958576380935628815512866672077846815345801258390592996785040045014239110293148203980597031795767074014110775403911162096944895937298135415243932414798715172483565825505627697999864592712642847979281244214681611540258684551042565985008998968636748713000938243756286010788611278413584096534605578220909342647229925264397800641195650548701163046357854891862242890672524294810598587431305488136298265930755985783786503587144616489954037701497725518671170385810087153410734212237586586176740662488795178555376733918790762079313963232238864453293869596258528771230443913205337041391326908173884188745363746688188460984720505720221028138040240927808611221943419886336126840523423853936981553362697218963208799630657335816559105428172783628801418987210517813050964603782659710477610381035037162118268576586791683727733177160768843471269966062468295677147701904017615172753021917468096832488742489789587060167873601167177551439658989613666620085176850206536219096274874824997801060176858769388578946410279106578432561494433172516006643574277551657000602624047675385305820160947474867037628748107479914181085949860022363136637124792567682572848190701397254322749814032914258025922941002237883587129474375847531988385799083334258546262388708968202242326837486925721503239966778321478187613554922036004608073718646575121301286012533234869077840095721010101312082744929563608138836782194335198407780004279845298353577935976072803324054040751905286489108459189451979405635560441968480835867102687973149718222594217374263470437358687682096648471687008955195020784749750316273005660811551228402031193501209013050689946235790582399313791080034092856738366634162470453479759227393880617678348972514659931737873134109741346262650520451901299273695004888372284003010658944149002415005251186360989236531857554834865358012350833996790549601617340990578413120180315821030687665323857191624993562285954675001201764561863513273132919691354619015060804937363639363826411759562599901393271948028921339257479510923671409609045539101729005894302619778384839867700726080113637811618006704306928140977965141147233629216420738789129289493070860117903908197598458818104771628025513628647513059292606240192334321867344916938342282056685648284471584943424716991719064290682349480619379857926434761788944848040028483252102755097202071579354517247942266858312549121127792927538463013913781431412580477560943057875795520491462613471696273664453689484984587381042292272940608285932178723494288471032295423953737750908532811621751488089267409371175857019670138429342512700417757050439186503655268555384996368030094123715268121335815057824872159529288653484488370426122188413118581310327143980576544105635894318394369371567323008464680192542270666811291502701851071337996218564445519892148083939022304253645981339855598605267640034448548550725576370111218229530024021074512054623623847493073626012456700457714915873271601264193806709959167931141868573737967611928032073643774075206374292287633937347868370274041823962285219490716319960080682331256593033810944937987768224295385795084300262749020055096607509778270611791374822818993787542793031073852936365894201285939976619244740273706368953798656268213453904092807909382763225346183228582194755056433923539112062051098052016623066048311756947650365352055310768503384299787946141519393162259979969998407893569208561452873528466403925356817596864087662302033512252729087820869217868582675832874131973829801665715200087006155586608299778560103789578650997868782195682503368013180790019042761989440548319505028686498754487732009093637745004398305128701466573513130129506193854139689170796824723549845928961409826837161038131252949770565833505040947549521200853481082432231771144918102183898079886148725755148126664855763318327538081329543169478952381005497495606279278125964730491341986058306137736795991653311540459002284306925890204650342070854952776314089759594385916479269497523717220189805759725563295211237932466580792211261420750416240696924144052304237088497785179531208945320790568282387687846971147369513454748014510658503320095181444129006611533403162357969983204145135963917051287880204923461595544229393758945498208321141074150520410581613675685097012036830290544384842391177032009298195851182478408440061961189582600404133311113421556732110920444817734084210453257833497189505247393376955762113973700787075936922187109502811129285410833111043222694240245198571940890874648173157047961179238593037911461490927275092566705797282317705025140828481805037418437949439050220947828673596187704757551961337316165661652515491132093972026532842630775132854171275266137508932802491375714963485257650449376002437226501642412370805757520011734755257759065948384528905660048274233574867330981560962966949746048252128196102413081366172992723892507599979809866759346895928547072319162624282356267333648727745599173263137884652172974878828470682389279400304172783933301999273807977145791785157791083885152819104587185299136389752907038156416065335908190447064454755171007710419322350767630843021703770697736610885829973893071352551343787681695032780899389220452391239041953332772943323938037000567603000357031006347302725797883256524348927515687377285761391982285133664186923605638757544792893855458040452961174516408117487546142811664475584153836987352013614686364612962961267075114244525654172415923624383802245028052345423181449283999254550825584106339959091230036650731456966429280630102180041183009751338174113644978897747221829868599674845762047898920872862832445230243121464845125206282063327542832837684078098639550873182844995808781880394146523160279054277874752283606664762101747148858129611633452035413339784895735518483533832629224020190047403132142825793477287908276072432562370118826866810031154332533203845411711456780690125678979016972019570272473525951724002177449143786243050936075344542024521763987182673161611583488659062035135423005577338784256211961348313125464713027222182318999833578064341853885174763197293558092652017730675726333434818229387109420470728876607016165507514017321429733371531529590563465003182126475816923702879102577493353665082446199628663659464724932722495899289716762417783483955578601627251863097848616858307687832167125674301289021029506792137166268466404894152745767752132277411700038870459192694867387553856882290525678385774306715412938305089217450370698666785494449018525690902837085872483800151260611625078647411546940989250091905580280749258710169000552020452237874947555429137021680692210982619286804369659860155041522190368830658732974718033204861677142486279266440401570168045634937928323724807141332860888847102711212591986289826875398604594575171497432690829184345228201562490851405898292092705487902640489748515510901509261358627969924793397952462701093129986869535328178249824090734193675758381898064570508824000886692529103830875466633282220222573017167038830908898582266443620067464773668923098027674620499556328096226248923932616013424251496714501043657487915000490012474590605465348880420241984078512090245225479613289149677770006759861836969878867915058882963059741646746700198918078751363644814888606811919494934668269016801800837339645665651564415529806223394331695408580271309233292957546089176601877187876578733412326373960140410871810392460932448629438989091935169119396186375035599642697886851210722988553332043047737497299430094545726651305469555698924437411149904610553206961053159557456176327253110716634569157022681040998028203638518219699297553577564977214953823199088267255863128397367515988610753338591245826603666484407855158037604281171420003061561293537537608172042251090955349976004876910985879889112433484263710933029858315116657150422882672071936432390241732224897433530873150237912110766006793938441443855359084172281706375917156373207813280627175157841902137737220626434992974591906200930713367184999534904628168826098432174745021816109183040257797729349287100659896333100109118262206180657934754108395468368475577617943875633240235975240483599702081350405182816756803708087446738141758536323907834080376633559540911818080578166300676734379570298748111016379300218828768605139061086144538343987097970921213910435207714161330757180747741858028218533294758944061536431322910024295596408858357014733228125959466469245729099709533037305345678787792504911574362376039604811567458571623266105907980963295543462518879992416145090407715582916025875920939488360165508238586124510864752642799021219442740058929413917057458908709170857117893820859034484662496996124724303538970702815258112315245415487693454801632867648480645573036570333491190118450016714999982188228374708677881143141212523630419843952004214791475751390916663331651158405374978107242499443678493597758681434970591034910350031549138928399073764899010700734459317015735645767571205710671335163656617224165873760715704485940168652977240534489886266954612466620855026164573537673070807343834096705563780782840498760235858004643728422382737120897383481309957947885519214633818804142234420060685490417292419671598439134940913769220188711876144001082274584677655049508407450294256947123132785914085341215194902618553782621517730982273197429656500533190963598210775367078149783218708601719423700083013556064207120310427008055052727006487823673534558503314677986801692277340854474035725166561954023902359266728236233277384990097213519334144252550542404065653092303638149910241480692194679017452300603302578505740060804141972535310486259806153747588918858458482891332510268072555377582263529091597600366576742400617297370066875794903687312084550556316384819752875516089003794519165805348153865803424779756876474081928261834536741954886016168635358740482687074948244751181687679130288382661927352222841815244249532914303935793263673018466642122721043789016964720253766774963798108751053535491979713036712648910306262718153545282377571442940987852814782988983520087444065675467478055053502430416846359203409090175856836521703448979578957542619033046536829228479487095160462038972009614374062835679820717264108005860515296941719911343595680756415054074760195749793258736656687914995242282279036530652598410610623161246841077301477051300521576282635893468029727511735500412308827581796825189897064087706205282349890777348219977949386775057094040391863843444052377222742770061892910541028627599912848826665112497598184036868551537339200323745253860150709625502791356090660465202971205118616688109338474002534568560997779554378192824631157931900168255109367481520311429594604029438575980608508016357130409564269146635061393823783779847396364718969183447042713925750271927381774869368885528435609609200812562785304904010192409175189218397246509847138006624752132314803465458457047327504050137464361226536876969556771426743089563649932273274980486823776342165264538907433402524933985534161705975073131649187616440369988284702170607377191590830268924065096643833256200325280328892792050286281462236208626649118018254821597197786833502951793375707596672724697606563384760631969958266589315012490138246475185201063555377167799059804245732193299342741027617267589725779136035998296660861908686342696358591351722592249877814683168886400333310127078443625932912800845141373262206654616905422909143656034350217051961490306326210243163793048992165031128116370846241072002919743142288527065450294546300378518516084308900702830628111545129826153370363612333894745902696520007094736923106977563472950489704138157140489521596717747766711873399261368758501314412224434379726226978165138566937673631311425977466787759683675724305811987726429187012806281818767410474447345302679383219055516712235248915518073927095071702815211782627966628879527841168152089383429219207686101803057033455860997055035900957456418843017909208551478320946135943174661431286432143143832231625923588241062078562256685298613716465851223299530049629054495385181923489884708354975961545107907420260341643173836399444850557103056188351325438446558107863434892189984505949341819276475148918982251899411588929927279789651272557667280912346818159243107315329512933386951062696404048915642608476633004929698642945527887793550410549249839149201831992016842732534852966743902416592645513073658788168757986334993574265833255740861586200607492839040029489131428030900055175059174719104338682298010290719256073938323617856199480927421987088574457133601286238598257115633554773203701881983240020401261923619155264759701734550972334729676103826058353371225992920830185660885936122858975023209519866971571324412538814158521000580241721957536538447386979726531298265757857208582160285115902904514216686518776096372277398331132137724934967722849105867370304369162370892650897609590109434369507835558610969829863213216754808579738248384741093294808049095717648159398249354283759380057284911879494039210174552061761117948166813517426800449670228292023515791063626245534250879455201662931103338296376769078307795850529436131476577217216228240311935997088648232102823992298857548035882031353036421812580447698916116373781765974497280507878840337953741228217998702854573062719986786829337383767506770142520663138329511827972916471014275346191808094824668269990589092550085233825083444656992318118716559947274094459265293554058056092212236771869296527807587173238732365202991312822874047043512073247144600628697519351414508796230718234738794567686971939304939152180540902367381825764343967516895989923118127504358731044547752170685749408143304885325483197836131236468241954713646942575181625688257999342876418526327284586994327066284600255905325263602794505172962971134206078769551840029340206645965531631083665541999936353256229162062016306001688818811127486598144930419431646483284897427430209669967497961173186448449807107305656073521666075935880294681980331116542659665634600293886564926856006221504022245658389205909860123107049862747098840439204397433528076023169837539323163696250314875205147967769758689951850852817349596583763733612453698539422741515264833452908089104979457230581125351117067413289111228994555507389396006343802377253263819693983298572184335009695287380556732483552798488271282391877850652818846758902790299549483352684602410630915938739062301973540985989569389031201195119076469234230030378075388391840311247746919149496065165577807596686186182126098195292329927309280782190668819751000646382738615542531075716821810807625283987168147018438769265520719535816962805971606067351440444266855151039217176103186000389156116625541917071287871074495506728728762017951203484784488632521474756283841652942580912515594476967337223675388053248565852872216726242045118415697781972405025582699612368059011672552689054831411669481121963598895741818287011315761465732823151505077016325383977764307871569007184143826534623305896755004860524492579219137091060947099410937318778292439024254282446910095839921817019687793907420380868820212661305619671110374440278067036563264984227515062086362762095351816293597652525119198061844049742537518567938697726844293046681128414208961466813622873997309314681049383031045009653509688225802753196142515534118902086457981787402937466082839436448847821901801605399081690233372824575279776681326733040625730754661043087887280260943534324378304644039889582075227476772428253068863485489162578322738082111728612317386996196965253769104968614110778782972405303354797759685596848228297918182479134331488175634849115946688107470801910286424975754430636940254416978800675350328200598672176368947908226868687970901094982489769218818032406231647527265945501893460655024845046782518152901462409230097517190138641056323857001815270489932408021221775655431117034707341888790051527305690811714611855504513095115220725625963565954829636767593393316709365655552350440787528923234712849470155955571807853774312847985306849473819888966851534800421710450415886189970351105540231919275390637931926349706913941654637249634054670552389361876251802527251429832132299529527866923110408043716914854392726145950368228769316415281053792808689798301110537942759627587460900588517337580181026139206162722593680108825736071193691036946513803364481573709107515034328808258874024561991406269312107875369338060860459090959270543895395082565357780272048018764374170856056463091814323569155540088900017136841443799220411144007204753458919281149105862219986312900521806164125589225068322655291228304093483064892620390382564369592043522347071995602170245144779568409878081333450459813299789620333314105212837118792537266182781400497916829142118617673699826455118541266412210082160497727701423573578532966073248103769436219739485857204186414573780934773584470566849008159792686208739196871914004379982497685086722341135090087993285869222067440857356743228130724187214153393485548345103814998317840352470320174219600370858970577086721307907354642226006728139444265110910455802771831909824670429748662883715174580900207808769808522189769977258514053416816708767043306823856091788155771947754219753301797339621922564642901128471028044183577211429468645486513201587963414723391540267384451838690862270512997140899997919934031022063108739094190339722085347332504024323719269132068032498470450289197215419636439900151129353802515300293748133151712733807629293855941877888984706788704133952363169933644256873899937165824472882885639680620825920871549685420912111110173734333365337294416109087304626707578073190484690489708859006721068393078204036324006511048743154977153633203789798132203214671588249479551552629488960040741179362091602293235709740850504123691188868205724392821711277674047048450585883799495049342408632528307693075829230903222004681792142414062810083220854007852576309805109899575432054780179676403853667419725352505344757666516014451711184026436487598083674809269170644013699700621543504369679867442903520887595904183932488914836456325268594138297820146455077384427679646161742285714595557063454414929139256318700655794656211929709318811958689528304514828366406527386205071810421581043534717073898371817844891564480773781593626102591865110762348170142466132392858220225134652326742153839137052358092877747698247828923604550729334243758296825503990999634949787564686836534080535737584421966416844954019989266592345838813309149488439199390703184302581461975348110097124950551063607880129480783033187800651982100954245019482580709542083908181246214260867589456382746794761548992516541008621310797213699334293411802254770104174820322693910305691598336640360943043055537502423264865669463078610589241720642187782255982438177545721501739828741736844502288118251694941874323970543052231533882889884228950110740651494377769502200299796692926969439864920676691531306175105235192605102613611834386120886957723361519235213982332207094563879612414874394497242211745116776591634802848596303949218371053311689182997814207587277388453425469558066154422106570139565002653253046742381388700468868263378430563272116914800547535538887727782212375694996281501046451939468081558075630715118302834109167275193319597998138790934385824826726544985081956214408618440964716089582943988120826484219460793901788109673769490442623847839047977016393730279795030369903357358933772689018173695602229461635694410910644090536754583355766009292265978179116641747926525775426610799475065987342162013412425825793578952000716664704461544205716553311290518618198935700109261457945158104277597265172050715594617705447637435780452310742133604867001351173046351323462069385777890098034712395121021391701433525046852595779949892463547609398629996867538167093193269900532878874287650579206461455270794395878528296271990218789565962382913729253148872887312130592904967382184900737650590500988156528363111481444455852999549550042355630974093803480733410200271163098109269550475145465912404188108417162552419052928486280098190574203304609402213647176896658599048998036087402835068433563548032409193726312813771543957868142219508928591317547585311680762525315318681483366419407408108727229048477319104993911674340390885272955249810726547255683857502304495420768021649708996834155104300870864663056115276852202261877866495679960921337068225449412517621522627517170233457406304472538420191858063780675275046037144849813453379363085898077005395988448200245856246072370423860960446253410289887069822510622386778560678411240914468112259293896348807595617535231286847668894905618793567218025730843012262909004184510630543785052733584877876972950079008021658058035268526372690251766765289604275674542030606191284565843631961161235350992581179717699265070300328746853916855730053161776365065248295298106317314330981056990073955874909819167196307918950406812496995764990375518639044534549049579026082836772892582453805338475592560579787367981794826460268554095493445932173636153442411567990344882648064653037093767026273753666563310307752140910976104433642914025703354030255894065257455145000730333848139176410036979313845113806512676952151545884495339044898322048169151960124735198342895226274707368132796577720400285150743079223324005835789736777485881586392056031382739935213389521795079267035527456703077491076735112863209546853515108302204389820836230061424997303751749558048249526734417588895393458339094355907783317471295432101639531922207596143977736233555850931967490882075220173211924265039715613802863076360123584922931776628577813554877561385987512878056929157145708639542283173518664554645632358705910045984498718429221092085385016289106534611721328856033007997400354147802735848214441151245203512043544323864931993012793267162342376826054872902649675824559297266757863335936000944565842658406310981928861093547939624340880451121143159525051380088488968286594350028463223278487238285133941130881211905732884102308676844944421319439591174887394893840903032030984397415911161179832096666806706955220754072921604737953750839775009716011117622808072842532538509248237651031089588023389533826460391110811858927630745259146747028551028069922704945898918929115375294871429768698215188491307178026174209373740930716096934547610162882519641985166958273132339397133105463263284717350926233198951475851792818163301987019986146361646314640426408932055152273615712682541752480933833091729894689616667676222770601303184649550827383486337334935202760894813445535100819000171151043411655940245517450795987780565646781499514435915747136038082032807681894394738741834223547906940368254799939848174183197600764653294177601239991241177669402651566625425240058207357212517947751908322762944702564329536457844174714824981032041573410297723660501379789596729534184778560044076377629234857234012523643291534958031558884358151687117597389285873867533233112726914892354131039273442356344870856639994297233946833145979668388281931424843946507602958802840228608700638760504110879221646166855154235690147549237234621932859637720996847595751457500947061344232129508715029694052631157858712158153162745371342632201118259044054072139927568093319654628521980380530187376473877160102957667149342270925818063262576845120277850384474540166919288657586370645685681919432606176015827702234226460153078925887935173421312328489640000314790931961194296862781099604504556851133829148159688272486433288368647483751778278600584514248368836950723442345601288003575601507094032014987284249996620885587031331883300089342878026050620492647561622531031986893566288354898094947211459666209500199452323659746931506044204335023423992668530537603774168148456997299289055753299825208973884649060069210260046101823776336831107435500350704939034909871705125047799342689168432598566412020539491143000800606108901809360600669240407725239097739679451175859889921229168894578607217060635515217895693953776051699580028859653566985828433725497540882294455200108731705568563732822426436720347932836363589422691269839897596565143703137177896623734535158528368162892806730176438168465399035648753698265185575005878001732242747047656962807368531154153874968614699726724215198939872507567909644719901496545309788905088121305609960485149035814473667715302229074365430765784441475111801928088249553064041742025651181423368320576779147140756941196510429738491773052165121670501356872501006795012273634126322223385751684310222041780206824605184963040776459146838569749963361795054061493336826074942076592232843575240994896159057051696146329169481618457630175363919728129981884195399114612341292795697704715737962543494468700953668162757371391806283510276480285624808103399030793446759304073624236784044665995168680321740991514053515526744454797596753628888438947800439017518295325482915754935390934613549043486913500903415557311132788693484365225686270001173963630324362015630462024962726021136665168117517836193989110150652242465253731362166422260477733606137479895601268952815521801169636054968417509660830579245393612559240124606410687620414532078625781978342850032488260271503583750386411868474185241378494094122797134484701849744111871767819023902125806203600435602293778233942102171203321361667335009984772981431234252454078021945616065388301921908654786897241471996502551657429332302755112456253468904350944871257526402758000009626779924210956792124061394067732278425010452320232565488047164093101334934254083810785125166588362732871531626512087665856572604156271517136093884281359896021544462840551744159100518475949944357503316527159600797670283420500492950959266109559705201187160407520742758449773893113208801837384008659780535041677808146583993416991746045823210189659737164161361356685305130317903682008540330472563206070477381144432103945638608700661597473567237910050680140761296795735359534608968489662999942838319583588812785725149849416612032374863249156965676191768174109312413751302657774520367353192026797244306031816723727713066097796579266934966308603048203339243808226425270271940433347687632434323394550473301748069365986695584480013672033070203584322873208870551996336671681951499234956988066130474197416461817891225567593398270496444733317679597102267466190739678847133614309846729192524397639537485523460477131893147562724032258935601415278142159720904158598323433508739300069789315436070407310160623695185778556881368306516849345496563007800456516449512457169111736330789821157168080714857299304098136393157162294015309058894327457530786708286043745538504663787521620692737070791438125148313079795161901672268489236416747327340276599176957607566762660523494712759279590578893178162984789335863410070966790837048837453061245857181634659265795439830256127027162014025071829462497896651644433519212234438989635333846386621040306701555706526830092986781706832097668821134856519155119755814362113439825506639884707792556100207596584949692905008044197125903631617045767846526713824458244805055634048873954017675560918209117044666227649725120466305160062836657015528529258787891835590881965320011762567411441262079724662377600994465795372748547111076589602148705126783144167084251300614608714909171731045198543971171905739899966806957955699078760047817299475166061574677515855403700510096154260785271997848406893924258914040169044505666528234958848549349677973595486832747598060335019018673709869655801444675087806550811451971107007152660711243402035378859468076928304720155349789806922502667800680783938532195491461075987450488855738937211980667564100132751039055190814078612674859476049042397240175248850714673086874879165454412861367690072686171515172640901734687137003124289611865019583027371100650305569746529262615282162021985809046865231874703862279923449973990790873022743470762083718674003576066797427520705538542247848235589148394862526385525748646291106614891261524485349502334483281626496952353700471027891449994636244342587513207958226855593844051923589136420093698668331452651372952596976445633337293177691135737091944491803961161836598337590290246704404838772039378060961396565249334384819978225877585072073953883030735986351344194749835336845540929733243745811230389612669374756449619764591982283937466819069308253128402446119936928699788837930868160175492289033167783906242134304199203502766462478388421367046626806894899388107018592314090103081599593806078798448364257591291567836689937540327002130110404544196557720287916127083789094951592546388078798185194848730357763780676265981654266603429461550931357497929095113630312085853475925461663017161475209789363215123978144435171579791027674817880387685201363072687507837980805765463741807997225065735533359797609060937361242732048239964489923656816746867486927844350455668082425944680991229060180606081946941824965265564048834936294042690260742027488148704866639181683211247843418536297543813305522280181350251310173689249231522349632397626811192073658735850598094446870660679485577166635847727418413734265337545924650702196125162866206178662305375314966766350156405859050820661503395699135179108053309931277563291517414947253114352754552486542487536339330604969336255258467178067237938304526969625456832829445728083843252971784066086619394526391460965287372679158749000622407070569677469790540319822674063602153718018724913985209416810191400867312740104235144820877110959282123604047317876806929528359550378032651160617804070851438685501030799407301704447931525586573471256217552886969228798114929155208634543168499581606218990667439484542215100207851343228337532788711935484818931630317713380176774655060492411152456440468304929693672143784779551858254671697125419703517397625355872625873056950876305984300264455052408008427441658743587068466158288089787523069131125223877350399689764427527849780250230705150749114685752094407356415497635294054332995768174758316107021759003933647688960884620693615765087347847471704510827553095109186463782000762644329208911725269866596445071691743982019440133943946410263313794599468445079705950291790807498791745552763776411848067130515029756149176543466040996107202604317538989236425525497244272093316845689890587643255151202088608424872956446703077524534032535160461402858570952786771004421019220839318873408959075609679976503431694976944006995205982270513619788467076229826007236959513141011856033229835762793102876468796554047784863968929217515957953877020750096966899984755245910179183491269281612646312107012574846210039439170541117632669052997021382972563666829700084570113080854681439290219773841549737359838686389976897963861371590933288202565441539779155773553401530416416095579354906101120552935869226189248709073907968383775218868939502521236593316374011882592135656702192763084921316785322172098580180634878707608670503604357411008478349286528583807605636907226215341631540298829523933109086180527424644472526845974447555938141382602729840964401223122226783312880938667475278395955419869947439533982519281722066749038266762850632450615367582734226105097018469131811448782095235382984178840372185551529964525999148728700803510691418129639714426555971914728272022369508761976525591073213083362526655054081198221147759510842402617532165589301078340303996242883062262384092917130866514588486470306232919900582582814043357887762591934901895077865774297783651052127196202545156111218937368770093711836469508184582596716543461072358660077902180685247707624691992800588394455959941287869196491856423935950357551610693196929072815070583382881560007403898951005417419981990720267407877270198014433837318987903145691175971587281630791978243260524481452453747238912690882258779785755781889344101017267366347157865344679455633562374344842242247535496358153922938974687084239089022410735441766838459770562675233025384418837715651645945999805569339119505149333550784255705046020815511995268562327037793050161504245532724532533079501895762341448395794440066421598219363607413352374876078467290297636085576979408952298849121240391983666408779398949494474712563281108899595092671238729679415110349118055717132830748521138865072618133840353820873388351025894402533772853738420093407806968636192071216466197429558393304598792114960805812033707807523948345997286241339266841626878669888801733129950245387381679700335407875064028588267943547343872381392637610602733871937606170575891905267601229487954249706054057603175990727033207848184201510701742311371785654073270433340587896881401387769165467962780548539484905527435340828537274797454592500467886646508071489289841175289236800254203933162071462436632809063350523016904104182641359428563714102767684401127028816792676355212379215077176874716317004821235602675985615824077678887963498141661842489016259463252252157252594715981703268190331518031789249386222168267514087870627126898700335540140394746399822940325574543168421768378250144887355850072518773182887530837764674652997893761529846762481893420392084283532182181091476477908196206665681169253190254334480057255266166672582579754760608882511499067474359837631133124422219529039938441389201438907707961320941305073076280855854616824774155994241674732066820373415656926818333868885345818630542106593891788691235942989015902681830695534712336006808224413869362612575729752489846381349221842066579800378458545551102461137063224340699546953461546110194989839446471045044110225761393260574145741661724583519020435536207421969754211975100991677640884562056262788402189276791630965241274473689736232557652762077739897518286486171065617111992219313350118750281355211987285226765569515956735599792314473124789053147056311429169776960956956783328102106633306000164716138536563297209688724089622018421266199620526200638042672721063824419560413945302107713313900528462401731093753216344187694209301206669943883618858216636064141546162670311136191846179806371594310537509465304858295181933474010336770212571793601587754055186954761967317911758877506637577081189511950467763876137188990316081083531732917777736674739381124984550331262934914600168292444686037365296318980478406497149804050418269047107397900158659373519550860652296627147286259023469923272075637340034030493375608121967557144652786462064210858707006353651806868759160968437175574938993163449195840566125513876824358969795044743343934395390649493708121624451625718256246940474160883100426674683856180723720883971370601567159140401412073390317465906118705388288216300408853278827430884230745982575776655186191572168236600132412316476827837653166039189881961205222063937520454339914622566325689119422121812589492116708144806529634063081157970131954895641765148883867762653927246968503224001579390020207439092637816724915738656794705407398241110663406443689241866070603502924034969637778734034383240849150843915350271521404297954473047076258371503101806920920486848782497226362752973849820580996961612114398252091336477771157905916656959172975982373408181733640778581188909820264792763984390675267336045312887689612231460034796660693231241844030829629313341140542890961632693792026747589564125925674451917684602365795973934075695797493543279653631343310470819798502957141252200307208890702071765344033880332760232814318455579784482079451188731316424301798378818557271557772505670982911696202564095255704759155539558870636544922862486920445041269002364385139982433231623520061985155619832972121583799919403126336226917742369415539550503827213943503416973205041697459152264455141588970734623737392350317405783911570824059611453720866686348113281276181458289107305091393386421176731676725036606560070293773008336265030591172573814985759417586549932784617037294626009795655084275965945398204271250367003353850802023764358680969788894535229555190984061087142784917005501667413098066144568420102356850090581674407911914709430394693776605428025828500490405875221553402178784528108135043511224893963379263074672676833905006747649011586902278885580813679994659921556722189086656605292991460515356171404943787222654205223416990382903097426615919359318485161901571779710622470286707166109489283070169353640484387843328736075056462627344369424567596015295126511041117809641666275326167848720805943336360243350951340747900529456537898710595630287189662768258340770867362249290825333195609922951585826753956236353676967908058811049742428192659220172172157049843464470167033445640886304209361054582101850506000789206435003132566871150986285056808216111314067270255353249904299847791029308578317380580997748549886028075754279596711239062266641359073011089758432831226182749171418376203463398096736407298461779595446666881547226243481146609592266093140540348083849248173629324038777049127444166658667012171265033024248869081695245554772588831653346677175623542308437304931921687243782086183455085653290065660753303111660997968755773393361931982178737029923836546140821739581254371066294609486172360352648821544253396564907012977967246086017949881599328429623234752302388799693013407662335100261921894356116452224047786766624201581094298571420644680985205796182115325303996175946392702161557734955896097750049482145252329209610248463297324526289761656915460578919017048279129625043729058363785653747004753074575320484391337056625925524830644391952746345905755608469081506598161295122470535009030430391284392145896591940851119859824937013836714537428533037623019657008814966013252704395865504809314708520815597885576903537280800574464476392150985548962582424769338850586263940340217023470211809572593315164214951548021020640982487458523593014038567350968495555634737780723843811756745387261567346519006713568710382515249924068447733453710640755276906675062891277542894275627548307072511873338312340300172253144681369111548374213503456731730971448250786584128554560746466139742401192648721309217417895843983552806080235148337977257757218937161330643752138630183728341894647916772606784389127930674348149337141692452596010764265719686680887493441814457646374605271475017212698049288397036360610429511508390659494827196076164515523160328426998682262534069694481778405689421338139184820378417711402752912356660371245536957901371191560044205513873659897904228539738985132973933357901020753973813001097560412701654922136953586167876156178188320208646473274542154501935270784095033601280629623732080898410129640657356030482465093819026576115773229133729537656989957491977802752879101971700367365717222175961814175534272019114961935697786942961395867381307731933768453465415880015507084202676608327483549460819827590339188881038954740660994109799248490767934569143567324156868365903310237649435445287336119986226763580678402520250070976548708402998833063161256763171935338751728647902330853116585775420104757883104348481546499705726511800080205579010337618601970342310421586960552989446440313298889270112587897643307383839691271625205837552617478634600023691199397797197182448091868841729169316341120513185055543067406875959704563062103860891654152791605281574945683168007443243654001129397774945502414041491007827158242500155041788994847866552730709738568958520385104066769017935625373604986667457597455979005152924423365784985459381557218194487850467835296249110768463122992223039239268560146560473871166544555911569277755293527397714041832103872052733089539697501984115055238304905227060775788289173969268324812989975542444887087186652935447228272530874471637602703286774732459549089725999440162984374663318582690349381944362388002077937035752619120372817424119689383279371744837325715344821910193689745019014840177308943699271887793129377137576499293688883883362604127364070414570163241591110229822447777446638847619885029313887410464570090054079821122908463130449699179296309838171662048637519241931036690716358764021725699923379930490350333485435405160809967492749424684087318632536506803355623492772024916792764594253810230825987754512207830246926197703678286448097282247477088527427290832103909546959754546187238380223621594162919586240135141019497304134199889062061119869254237636276131733281134779248881446177069167813396575633222413194995374559435970461456913102453732998933336176654538158500720027100991972157065645280001381126346358124806515193338853945360713127493158531736332712422379125403165379487001999613102747304025653990006360703492555629983613926898913781114676927156894544130862912063984378270806263444354244510697972128863265821208547444021526424547081228891074742365977662371496914488535361731638767174311503879267479642287404596152759821241790683380842890338592719207233305458163498736936650010655535802962691040949265106759025541213333621762218732752856994787169489273469437076762367634067689567571582020234762225166656245557542007312906428373306045822990351085571707942605207548344104105685673128213544184149472634185912885551478738072354334244876938603328650680497026660796970179734217218231991119684296892112557505923517710013965610420714841293034106287638779275685079301792647845475786524751050591987801921179930104484756992822017148929032263995238312470425437339220790159922482473388900232829179073790437658456286097609342730369292573598769410875269540724393040850988391760679784160482108760634824765600970170442010201147329092165414043354031428856240895964531073529042896274573408436486761982504800469158508794304774638826578633354483157784138000175921398353666727848351276924319630863874364165197734109837243847513766127703573526166084096252566411711076097541989564146281573931738421567308121198158324000516970612148723137299525303931736069859316274447549812095232052440295639806090808763081720474802947983091551697884439021010533556249931836153039778724435948995694006307051362265335034046845613566596530162471280637760037294880341403625366692612530914779994587842896206216640802596121434530808515999612789491229930059059869812966407044598579941843086903592279655426377936398478628076347720187891988815032510058513152018777956830888449124331986292967517245746182588349285561824765454197224290420388417547130752203955792534381496263527456750096423167311002646858739757593061583519292163928853140928956628172769480781633541124851677417244362775787324534764493326066107112597003053450383575212047595325383379128460654400105228851126521993882879905096915488631301636240842210571374896983197643415457835731159572443286029733092984951643291691665044739244368051515644024392489132456437049365159541318648216750446072310219915157269956386322384105514745403675995424246250724036638387343605637656692150961122647134592425443901517151348773274796112936846997504268686514634571199931729305549691324049384031364484004023949293967253357253778576032972809757921510172112300917741755319836141592569355936137748948234285217346116276373220718680937715691618564888038475783362273150502233125911313686213682120854850864882114459262583398456430407014210702296811468737171699541691035699819657110172467062953708703185232933289219626935373454106229636084867106132516188258284834785777768402414463160134247646741786912166869870793529664119894225291451653356143107667888297787639810411875117620735137119166616947714224389445188367572489177373230508524441596522352526119470160969202949755726607231117963635248612153820331421703404295672418746432579484233523084462596824078499485533696482343305808527479531557969865545199843168923343661313115644925134671511881838390869614835277223607962286032871968060308735794705136998165841902273127726611560644547421930727165360617501699327434036668615009365779935987295576783639464144729876732318241837749709849695006182735398357926217135422827972919471489691765298462565430943168004602146786177317824975155823693409375811387346602580278910170696220939999120606028171288127902366645004617240862540674721352346007190417202649332484374323723820177095971853070201889802384989980859059662363014227100709734070582295689920662852535939256750556704181050679710319294094240440134905995735830527207056680592262796926041176443348324829168298930196002492831626388875484149493808381896834100634858784620304549092962645431566999369844803401369082420543523738633509287977522098593574599921278139048086471300513234814569157925792654310690846490854472829707784068381273638514586165515379402449791526689495570434527050456903342655051100525492055963687216950355935346877716162936025961492960067927748100047418186063483732299262596396360632143717780620083624000410066785722439157069225339568229146675979330126030962420141081080095122271497888698230209068333959604332328949388627996741515575487163633665572700785289802196741129872170677348127734376701939653743384646252562822946955791987905478597143453688582039084678075378142107918708896822404058652706785559073150749622251821937307346516897913555615311698154887743165698515711780993408027511651017934494486915222622752131732731786609805229848733287588381715886996951045994697522448849832935972944672145251071592021920747176832208945870118743546861463548815800667152866594258918426019640431176415681758956408890976264977408034870071682002106619024608557385210451011732778303421742922578619655705377022370570780687734571444255877183862915531521904860483359547042878842622409583668463008783240875421395425372075978730501486106021683512738538271702231235558618901524216391908646075172339122144379586917290137439369943079062310907669455090238245507480666546122098057722529354933506635291842989954401660468211524222412369006375299491213043875275511664262064910367910184485982984502833916472545825397414944011842772914749365290465978974809901274939687680672901455723939493532983543212940991577744798857823150123142230982783226794306954628579586336774105626296818751987796037446479073556760292623989983993158669905336939866428870198538186135144785117532957154248986073984122295018145478990938239991310529874236863462880981325445489050491224220336617937791374302678279389171000603051205094267940037141019892026059124289086817470851940967990066555003147766607904587324215517505251950339407582703539255008347009755810542920430101166713835414855376826589885368514414607407710824354188523330236651582004055195794483286024719412869115696275044042857756746289240730911537618201386630325350179451859638060653209947276708861088867422688851210320228318839926622808905888556660125087698252433418929508808644912866492871360935824344748505669438243478289272211042042072810623304426752428528344217090559851140176161491648902191675195035796936177842982113271172176789290245311213955403022915075201158173059904385357521920355829997777465062812827166976413694418033913707464275029716902901005375094078720372964139076249867966247115640583349168876320540670990306283153778089385891700650906099267886141443982147145569370601126471951746359691216806239740294207993205389657695732973468852392406513770790046028764661062735367722693908173319316961577997537095708017648849724469742865522378553332833233027683552782185056626909192976590896718507975591169108301209550239570586383444520950906208933756775622285105546882050455064899593491388965248206768374757843561159509789603681671330335021681382640529119233517595032391797768024079678234259828912936610774565786676690678642682425063836331362013241764866490558336492021550108719580574172038800950868496611988559852571239059651757393954989234353062337417865610286700263388609885901226787870801128073367687072086454797675391592270662520182849178797538402223612276158127215251144726208541087263282998870678893058725119336521494681268395193353311411194232915068355920029338715728407320545787610076223319483007174182352167771052154261385934714295302085262886761286087655670505879014108272969199378075295929581637808615268397857969282690285718550703052753319957094246385631156903142267386875981762521439143557204080208989009386484389279428936887272916906561419505052637956831794568169705498176567614213275199500058854124388568673478943526193356013207830147065346416164727742941849341574130781239838997112298048439728005408049567671831720855554580608052224035511941944661765634881385492537723538888578885312878108534120397941927741892711434304254727820856726440593724033443017963776615157079481074865195426765494402203955615428523027281298994780436798427829627538886391621778592231414263712384702680596932626065277708700123276545892681844561049158348273966477435219795781682606353655204735265900026644591537709539771817031148143958110238976260591612049327109999191448867567133501958504789910396887062533774844836762095718447851815809351797612592084265197276784783457240571825927100897399326136683405294339359627995996039377508650593383165446102744595830218393845165551461108032019002962672123019212177453807703569615788326566746321722857259215923687457918993141608780835199108444204481467391092112245205412275852901432966307080294501408199001977096065395115516705702823836129503059758752530343493149946570928270671995189942839508867299432807171055131478499178841543264876156691681099342880994729525904996022790194606392354259184410251904047998002372308183690633182889301603848702743013618349359752518012802266637628466555233236986274614860471841303766753312771442877845903057051067803701492476953945854825170721345715106627123169614088468738348454680880521515269631680578193073320980425921821644613292917709698751180975880737904806040678062505864241134322368597934723467821268260774164705794901748351517246557769267848312826215605880336747825787781613773189010049823629121407871846926340479707551268279156595023634211782454968141284610869851970318110503875087053854876778013196165179567961767600079344492034413874670927491137685863137384615643959947642583750745638768919241577218069935207087134116462125543859233281823350527148773609620281389635694853503188406224500248853229818037848230498096577824166171062592524932938941244651606063702798568280383769455460732318234492597053593340070653155947881580142225469133184274845712784353429586602237299044419777872477001035464791945719300984735382597306363489358462728182798050742306483785736204372677932749931243648703017977035833423709210040481157533648881155492046592095389558866757171473903593515994891420013094049660962602295777304255041426804373844506351706438036035445196010955859227096552447207138715169165560013743142807133416887885258673332822963787087030231681126774314049245456277544590886609088680317879382363291300214082520057135049018065742697047002303116117457775546037337609990319029088545538333055057764091579001526051578242057179917592683901108247067882170295870809641547612630388527042455091577338274383246496324070024868476522352239067494300222284440709369581703788353216509564279239122742132330464321713885740882065273717486482068363533881074975828511843008550586350699288800118298925353958548654655689547686553760062035092551682092426907306585261899146594272651804820899334821811213851631828741128331611512612105063847183451725068791145698383463387232791851723927236199483927872913269261017342963628700622819130276898379188466936302783982978033841094337000902669800607595677217786378415338878417861586029473065012522699312990281255093782464883382851650300250728588379762108931470965958608126173734245783352230413198289876245915135225780266897620343876135214139076613715816006286673826859955847818663852817110841070814170232454593744473859092845815185310610523376290285643474514935957089221793308006841547555768344418302606330715616622794655854666483803015440632038377099225066071100851284377533274690967271978758325244987579348765302468907927701067621948008008294988732276524557362717355711198341696862957550889586665982535938058744170897490669080578852835403403121276168296973812556395971549332862544382278511179355283799213547346029952046243321258085701348102317149075125831847313997723472801629400179429031583434837717813661805254577495962727082675555783905529456040255468516023876352377307972097903991154539018585940491961674944886983995530602946153161682704601848257391692131570467717214265786109509320511171354740199132470979729792006466065694691947507152683731379348501519929923970576863241807663407320823761842318353017785132803495635357775283487764596026008283875319230180537036001343408628335261066363702156598101084818810553923501617029190021267004801015510829662421552059457217266183686585799230303048533498809135958856973491487333966603157445072527462411523956771026105326095532627015895351105155024476714999778305472687762426754329259249614832310962596216971344121444857607681310580539785056138223850863315213618811746311611768657659242093116080280049452684188477819415505597517231827441114171342968740717726778629174325210985960695562247511615806086334683740501735141104457175401327476554325098851484806234227971646289006851042156674654900572536704852128032280367709109456727719137297837444116514341438633283151864649481540524784346300154736145589865238452827571154806758146020529832431634333190006093951902182705777523972482778983645939384398720035469756072798542913348386880873397210353666652090656450043825071584937725573135594426490166897711377001614315848853635735733057346859892655576769593456915584321565438582623415246042832722817894631908401614035606772188780996924402042191290576663494385345692429186073329660867620022590979507713960479504561343594885832013694859339284858798758534347526865680667777521368804965879171513822113253923021755721777594548277866294927092325367383375614180566712531074851458646786385649410350681441710213774119492803786310768924324543079716945843174714329927974802863383281691170232785582323364261924749022571968968105160092503785730275739901997247005045218127552600860742203735798690701890075205851817938669569345495485729455910179952714647344878011592846378079948699466634235635194611829726889811714953647294575473505225259187434798752544632329531580248079172632448708934689959026632586286260489301592520231570448846034933784652444272295339075298009428960942997485589339861871599450743413908919060747752484881056356785997126232381619297014780829054221104764311008701700634348847104644579681579328767594700217745481881090426968918126964541820624891707059780105236793778604527263497768351509290513385829404346135379074922289907523273989742896586612612517087967727014293034566398063196483338394485581176392796694811424027613773653277801576658521056656932904889171492365115616770979951284602249517758318779623256105946246088936777418769309531393565559492263684106768317356739822741094353583388673447061869119179157837913677697664952165025982932076095702970624330782955971905508031662033447559889656099171080267279294515665173544039294987389309894378895411640455153745771876266317351493752936679198972041823311797105696453187122380644439112578518631401471123270825879784300224620946999367480352004704050321930140441440214091254313139805578791234619786451867100863300598596010084578833353180188471664277791967187806718779083330626180238812842657566434269386562966056649691262820121781708026590329441323190328019223511646843466357738062589972105589712128028978586267608451410183785727197433717818175606548402622505929673821539189622388519319943964232792934744873624579030809163817021968441910572504160034309437761716656234417770954012533227121042840106926292426821244248680545123149201669769828702892629648379874020051534688686344279776957081694535896638443075625239111960077202325979403364909175675301842947247493898148654064900230891662562128700465196007711416863863816435702397456125088433520758651429325500263183797215032465343553936087493472058707980777075153202508680538472030057116601028976735754615229248665070760205709980139224872670194810273164766973040494689118606838373488265695812071265767477593173861455603191365925453780469808836474790038693314816804232557530269143189204609762456159941135770977825223533556146379988317893982543595226643388172551666850711132796224315976839109606231433428190468830990140447224575580634968147576960913240813029835167814250868240093028769126675290470956022778017949138268290560573901175630948021911916421948273015225806668699036931343087972574221073867316472479333492918566518098661191284369777944663891446083582365286387297185193551942804662010523909216289694213210648998347109814411594594484753988717450433346341107946516343857673741651593015122228946642465141562800896596226363475615897746927996217163008336777656135559786016853890678993730743580615800495599667415138391009153452150540346218398098023814720257365974522889327306233513004495501990613013579816024806800763288792829414272404110126481916668837609800174099398207123716013672584301449143149527388499011160529874167756870205795260607109751478567742058682798171811596648286101360570843979411928270889299118941863642108402204736185942240670592873493750504547969760646442064515784096015437765394651788437493984181010787386446411041752941174904107128736236434336620947974238054740341758026856989114596328725985937763471643098767975398011313534191763706241561681976340164745086605863265919471325838531576507430369474598076951522590452107979233922741869738790249542824147622937457177729108738586433648870536791169213761330268356973793060805837267126060440781730575771100973638079634324715089622640841280970014006226920879488398405972423322898405732993572532622162092016634974742338285326645737185740525037852829597629629313157161084472426430056837044014600921648118091571428258068435499471351354725490753290588225721586918238414921595620009460257719364053274901033996187587583594277524298228962657602652288515086091780207683253097245938340625968503239807877640215333850932902896652856619037203815628741619151702200451182590362385703687448541105798938875900377827012650510010003567341048621280285232936683557143722070250069962259116786572679345873677689800578358048606566628307110983129647604645015106476740295422150338998718723655510081210068076156587027732660285959984658580253005465490182569163266378877950838279256160223122043158098958731507530091801855070943660456765015535591199981003166044065659015044094209945892189700684158001801450252396806010634235038813105417683463441460982500795185776591675185975946625187614255488836642526015908250558602367823782418713778815978523814408896925162897195087958442290289417633497621553813220192572390988573463918155731872711115579914486299556092019508668085074561970924483757805483086575149749295827454932339386988441003646452236157562373577455492727040390891546119583137548038242352262151103929545462515785220195250172857786823653647313083561689576130490044027789984000409470407013452003773315878233105971009670961154674591926369742753509092018004568158426371091336097986299295480692504677812748820337483240645864502854570957972797339079282514441582753343718839110843516386859140436353830169341400622040372471700198479442979646627508202229276514267732704044882336704544643144193759912009547683040285145314917556811827841866608348265622514854941898172275658723422991980742283533646852240373646671577583786165205860096981991428349033747877422734132708616990135777318554741655639289651813933464706437670153319312729200645343353277881432515425132306736467679363549812749595941205502314372061011230819868817792554472176236296825169005191112888762620241623908599042258256468130707307692117202638417779780901164747236553185614902425012133390197868856127913289919440415476116152572375639427897754215019076034650592433892907990440720050187966899946828342833572604375659168170985200581241511674190699645848795104145764948882248096614246900860476568424440286125104477320459291234082898891597792585602823976806780814460247470332104654124702632542899626370675790985132714617073161163394350534037583862646103687674622076692207213198377809971307709774999508691668754236771963533877227287259864813944597930992913765605878147897842980429208054420286796781104905781767569049616308585155469743820605501000114503917030679306870909119889808130532500665095537037671323998627469106964100865738512729037734661927810640030956902387727003702500002689811931881038277155575755490996705547180911204023350215474213262869630655268891674204311617865663916115157084936880304019066732524002648093008642816364565126599260003249075922976885335735171330705790886408081660193134496480912099420421003736259600275337770156199074344356605002887981027558546105495748733603004315593987459668035117156517017765838971305151420423280220293876224889033666663552412118364532688350811192177416791171042739478917951723558122329823201403796605352782315345808909061208584399304242802980717844331793204456189524781814924472192834637901428259482102781172923594040792993634094626255945442254134604743665211898215360728814709551340675225355334062732130772263781699493851454770936668409792888512188666775930654755089771434216385614071353874560012932305475477444949402935424518715941044532184949426946143526687034339813107556375633791255154116611130691343389169158174427328349615265404407289154005885809603395846568588570975728495315092082245118931229922125696770273399200209613855103228604056525067124858051385169122910014147869340556183140368983541189119194606403605912030074291248391776607999949031919851344740063234380530219487582843074382527021425058789953113470395291789035329847248920350151688901718991438993809269098322935536711202020234063275541138716619138597753898150538710141958814019706607332605505455596709550196089188988471949910735676143187817600739631895450531023951505809861712983531973125207374539834901337668588016969046642955453268252834750807142737873580079040791959925835652236130773280064138254976690198217451061169368928751603502932413783577267022350681533948239090640146248766861799780726616413649051188324755464832646511592746388424857383031498475415405972854855990355096655446250721010713915033242716053042545065305062481191022405968878321752243135848426144071317243065283091734488097569954825245377303586007026294034176554414129695228598264291536409816496575850655114128452919474088623117417277248838776892760419278249893495117260667728619842118924297425166894215574531149314683383015316479959013826129292832345447047238633498256931633473014255256832363046927828417443394160511207425803923267405685603350474172554310340074046664822437059849075891403462637663394335437419164542038828139140082327011497591633574610915758733023051448599531973203445750564572130971008502230202009243185545625906521572944241459018333504157133715518949803290755681242670113083361994472538524258940894942446374657335934463850439985411706313793784785277264091939337233100951796144951862843487305028066898123604609510172953212176833711979782548717909602494109434426880930978731469506600573693114639603509862948607082102131222719069256400535133745269898040963762300660035368253237409086801904754925545140416190667803411189178806735120678203716070374975666544437544548017879697674078748036396041575623126678180389148313001743024822761373246197469423673923219204318510216635116233151971535851188473075636767160061830970562486385513664505967072786125052145976067935514121943207709753899216534780914326418685172983395116275598693989933989703673258551475234604638663728612162303843913951932814477036360980888076891333692476171280575118295225186560138704237935456185724204651621569841574159054978707468853461279415420114108080464192203869274408210320063397525814607708450982412110297970109600889644123526332240699778824335733664872049254897999581302170063211145232564941359449134539284316443455525704682172381493824531075285565107504134757958702573279938228082014700101579063262829824052644338459863230687323666478285645546788306171344627483892448039874840803908821070865584273320643292457889273273565675296291318405712989351474485510784880991507137750491715538264444389421864573681387466898786270152548007469148988426923230070654267101423985175393205564218088857316636906655913923095432395869812824458096857347270496581538513938861685020137774037391104982995839541096831539229466952233380589976641533033710186531253440968577191110847457589738182928228389422113462735094199287779260829045923389375661411010002881694739989578283208556880159844951021055652704086597826430771538880412886902798253250124883778535085851563436715343615682029534218242429363730853349275222316448911260565497621598954519431531312905724762304078929715965988339212195765703157802069152047344640340986382286594384707972838951822818679182436478082402492962116756059877395250192567577609110053626121044125310247543524065345529413076078785360607963891355693347698181834604773561530568658828142539868264584585542165473407837319325403061179915234243337795139314922339544248462652952414881613436636950432352317039588987702062464497952807850745777443516792951021397473187842392365209666352148659741154458474044132797562646738298177366445009223202821123473028331868043198551064030920870309008931188272433705428921587526163477505629170886922525971875604912209939976576577738038473630643524690247545815798500782917898348211209418448382005141833082133771114532528947550867744662985374591249994267545375104963378805580293876006407811669437118742067267219932892420595440766696405953473768196818557625130753182688935747949206652638478445958529697026990094855077342366013379362827169707548067753988630581132237905537661524491261461228135761762403628803812199160354159047054321740912132882906492464638251612253242534007935888489678934216163723718292159452360737752900273283037849391321261777471875662587674797654916915295735865041878513659877320285657534492018180247325578632841731762022117782888095989203802052715737100730327574732421926552154159821170705544358572290006010244713940244518734684096988532888546763122771296281100935407193929513164689416206245184039639215413834571823453229548525978620303751759078705604499715273868843657924379369249491223343324799034501137607223413712690000851151081713107515483313804724667075497949154381900171895135818364410981493051433818342192100652876996092476657644851266078440814876806370003850767125636764634052205694267784291777487389519145405906012877479799402624702751726445855691330624699861598710420627927096677450183490308885484008801359443277750995628191970412352312134870315863560815708454863078075784666974983387457560511290466559678793190045282553075558264910621395608597965614921658651366251414886702390293595944735344397631036826570112040309462641403167379373884018163912233421903113982386249980328628910525773239749923119483055914480840812866945487972058953488188999454517061059305097632689805029960189546242804491352714526881128536814123928736366098415026213136066778450052205455780335870364360902712854538625831107019682494519830941266623865904900271388508841378215559791223941163409518384584079098008931235729017532265057212384913907381689698463385772561487223335843764558536055709189549327297400115377042212076531935179848368638446132682658851293970861438463900552747403023360650744255831704528398119195733403078434253331586929419991998561060653704574896421811852065282239684660633679266142030876461847336895764705896202220841457200001135481659661879601552835034149346208822706182064325586309132766826825155756767796733346061506399495614107087461078280054232404094771607825235421571426869185222118432533713613071022499652055106006891842937972479509160968643863816822438965680276337402531241969973784619784090496783984829559951895554741568173317560186006858765013762369731997923500960858703336070921320017955431663276293982843583157707231151503450517927848782609885745318107025640374276164527668499765732038395946096681289951975545743938708289222009172211456187605396126970395638450495720627514822043814263013852626225942838849477744998740645789911980218849772832985482322179325154316373150533352117289434070381600369966846565349116066397566744577011425813420754884645677200041231105661126769878148855011073980658294065035109413818516687569161741111848503090073540865897333749315904326216443417978050807635529618020743127312568161914277308567042839054421306862107637693425415852926016085443974834237374121191047988170846863730821210138134333383264500306872455754831949142050465853882669973215681611192699792287583644060121401753479761712993519953629418717308420073286626610191334311467123862463218135955933879862842132557848303523093238663261120040904857313120493048780628441163635857649038553846287467463984924141637017035475433988585719176802909100309834088208135931839891433668786904569987514657500306577946712959696583830799380105050182092895000234231232631827968650595881126953745194359007679900263997283715599438194076095053639259873390912428505691040568124391880797306119571233851367854972904243030010698317995362706647168574329603409255412982477137758455091304244379503035312140032147150640179561033450240401581188004234800687540603657752783442839600129169301783149069443326100948905137119056522969294783603438519988912907941125360813022309697026008940490434342135340142774030014635178916291121718438887621304907507534229486087533963874399090688578900710022950050792633491658508541269690534787331699649300994732093745135553661894860125887355059487635972042153184825566122961868398954292202872008740920760537185198718680251569118183020312348507943452579537225331322078392176358104115711406009779813265995685120240885827929674122712336963008172222152664631330102626562828454168505884889149060765565946582253226398342401245648877369039727206808374561053614144876776991396737907608922771956290861479508644064272956751570602226369184722267060186986054538516806391102223433823071515084828583868580344712164632635600922567767824456025097939635406491064186304571904238758732589637979419153976212065441167404243727178668961645680345738654167138858439878576407040783880536560215278350784471228014219404205060052552469121708765393408305946997149128108448954511653193505603262465696849720785411389632230134815848849720861204374151982997451967238693056559841242491342383885207671362342760305123448755251596972921447079922011757104548019288085957440007099266436610865908783252478617460265315921482801531038014856475018223506061745526684727689741594060095119075158128761945762646095161775149288799798408954253083325826772009050397607749837076752068655441940559291456340644161555382614560983072441596690360755232833936409212285675515346907302580293111036735076222779104146919552516597655756513784455520514914887002698936264493069111889103432503274990722551576943151687920572828554919334460220724723467550053997278597497992917541171259918332290063670809015700736865833038271102994466178692108459365264618383005840933545684603492711386456997854802592737061833061643920361183644877117578298193428892578963111476759649421774277442402941536297944912842039733547520093711710654322116457293545022914489082161195458625367070150179846931674540809636016936138126346324860268044502510761462089021985451104852158328955596874055423790893418308643615380011568118948849372034483960853161610705868678344410018229965255897939236146694428114114289886724772957647275172491427206765623734944141525047989559523522720523579633355080681939990839383573992509447538957798874596927189158367055866227823496392373644015292224509896430387631940380708691208050475337507491752161430482095321686466431869225335076788692799779490162301264233222535792133226929645080621555674990895793975009831712151368460722628916315506936941333146802080876662582115479584034315166062057324150279401148824917772501966618724133747687627145464998374345622512975024637514183663945497554839319340098463239895435428703457565796050459405586641816082858996236736365101914587260890116298542990073042766225645650710970347995250925696574011224728180150440378991005968011879883336037312111959942883629270632377970602647666042099557828466697486050846715295878552960464304932871276976925272625997792526091842455558882401037812358088216216221461062284137606288436126934695478055147107839596456860613996974284009002891207264206456594920967215391358819371318859556537184766724407129109988071416359672424148606254086841404866726438818036653000811665155189737685856024944673170567707584389661861216238381679603168040791698047463220904325928492399958022948332349608672060156897842616306819631482830781867386748539540974094271260060694271529622198800116614085768235856936069859674808997253221472601990768893434203175174644283253660211413132761210944088380482915699397344900013279859544320137076831258619071845727121667046419746991995949003818796287213862463657852555114316948738605460399282454859692517886538520239038747434324210962675996015962590301464712056240222892143442141966186566489273738049647438527613363411818911321821071134303172461761426497620255691495851646039068690771513956989723545237995236558312358451235342531325884696943851020347018989445382152980578301408401606973949451072552350332536932415292958650407587591698920839948987251074919863454718685362510883171888085674558545886021621663010656924744945201791862505723367847448966677888517276806391909581509093944258870439412679525204548883481674101109857208538061409379202980545543153886602233149461857926258585367789489173182691780690632795924654831062844750040163608093093480788262545209900419682225293452382711562836506873553942503085060517706048462452532889476118113470602646514677788851140441302593690307257262033297246772508043635386558178644557860195063185711538438467210273894823218271783212920715537020239628197502703506071207132023278792764105429374422686554041888784527900564772010046575989930784246646050055842155760979024478924419331162439875658341988369418608631452914282221470442250009382393959760068074875718243383287346268842233737334996610143663740158714235147912419717244970787944738192392120369110154133375533343761248145654860424139299447369504600407626115079413126109482827023818061974846641975509390308196282368102550095245029259685082088609350961778198855260775279048338414820957483055013402206970592941177676717087834422357623242970451032591633841644237575079010776922540630688369615602721167993722554814826536844533968428764747683930831139049930668923407761802856622880064208720348559204236714797700409632744676175339313687189954837243843172565490475011647045578104644380855483702960990889634277544661907652045387297391322661392706061430355292534086281278974855977722817540579666822151523020961608874543619948940467620034471351213639052351362061226190305785617732015400873600930367998516643954218995129929322910944830863338609151766762013999009048142802876477452460020742506824929808076319763431012193481741892670387307655419240537311096377691062741878249098881762502754220218323111461313050737086165256870254408565841879860844636090496570607110309426375637918957369785748596278256457886050805413932334767320000421544903178972511094258414143026451998096986567899722641743635690881076480253085871398847197532277362288661505761577754249984175323568380955263300910373633960619029854967485016849010872663235767704872902503777730606622286156899766440499237351913086762276382541517387254064067571483955712648520256361221828393026762025727229753958667051081419071624710703045040545352995108934249560711891537602860387133230361564441453883660166157607517211312423108747054138458078747607198324726992380858456158135778958329363286033094979778594920684484530618740581147162075250145808090337910313285527574641584783375094987126247248066150274891330382590710450363011328661425979674034457548632451070637586611931526710417640198341064336825033486864793077042715346399153243654451533859995401508460608313261737611918078942356264195281477085563157404160524917744307618445687856878110510849688760943852440862466448291273775593631261626888759788677107163773363061379724878072458766278115499580616420753493365124044310815572662313716958752803243194143730348353716940991016990134204406528234350505453063932329805051814904629942449892679288579944109536641849332944436056802669072746427734813126575656611926150555195404517764942685854887128053927444737331744415315331662187898221796419959224650890925477292881235154560907884262701261334060947649467876188225996048772326489711939174721061371364615509834255242264457930092753754605353038952521347142439343443283027934872595610177554384137603082609304779441359726345655563305497669005988143450818693469701833547092626546560720075014138101306287834641244974001741624350986514480497350608236783798358177615017969247641027298049019759039241320094682644851410603958022127960387439669480975334653945790234127857463262868122759225983412837951681349501284138434278082964050123340734642356367580139225856504184028330031135975114855385498191965832198185604832451179137686354109871619519899427155491748725932060528756580919679491075534155288313419439195699300093142061157097283674269800153388543283409060134156625423939463369857751570504680419932039275809074894723201952099307092586077240296966287904449026486962587686996813164967075908823482537404247806930362554033012544328563390729269614447269105703953791550512759253120926434849348678406912588113737422209316007408704635399894480615714623033715271870490772898471863302713879768235986688357134923915207563109211401927068780636912460216246314385698613517435060021455804437804876448385248741833910982952983223135075471070702361757962856419328795030644956034723742405435571896585932478002139367130312928244777947363137050632010389232748142978081187648310807083862978500333132332023984261792149218973904791439279626488788867459582700168583695474393618167981741831156109011532712155604021476473530390413141799430389141444270981208274983048580645161071866689843344114344712236542209707380051325608975091010330378994611112834556096094266998750823706051249368822319863556029474578782765267180596197139112032756560182581729125917362259662660404261955102289200902532573129489082114408757964784534476835291070021066044221208508240410894883063299967312246584225937123016979304310867794647113268426001469710726238897380900000167978507418110655946909109222287864999951221150258012268381444414770413842210945803270139665162591200490079478248007302477040107911766440082495868039022254896770677686081589627550021455252060202466873874675084371217045708097987864110044763381329450807589757459638893302032748416449172221075537692617387406206850421512440041563132794256080026476034271280464220789300074095725393892401965827436890916819102550489784706487847579246749960510071659923943963022772739532595523117916880652679494119645111221586416390796931292736324828321983024165342018166246408341330565503240158942183009249439413333438737046294055326545741371303243801281809721621538826342348989435805842257307693710660619431837435356795638223316595089806225497320999653200186996010506833447360546141349226238675772485578309237339936918154489043603724269494418596384926112225359606838025234745828617058689730970539138656632607858815342511411874329800763869397198365418404624278983201008746207166606158082836416844946914947694179695397200325502217513969509113768504783135097242092773031156287180756601001314290916658572434813865939967403100224141972655003488825776317929761554397861408320621177190272410133808008868097657663621728229083505463073673446019783493299978600931473966851371759070143070383946941129565284617123250559621017606147180777715037591471587775952543126858551561461745318253623720074772527547035786918838010593512201220189233628090763630378077621817913354675189279805674558242583526660117199671311513270445906488967353744554810710824978212200548257607199361746243150266294134077424008764655758106948048576683792310020209524369850946989301943420358876623725132837931194867695432072801561499978322947347242216031438869048971297336192115547361529551699072767324339904074210768084425138678337387431314779294183189708437481325908417671674747960747629881662061953871672018353130898328599125104786035160695873091419406183640427634277373223257815023470610779893080137919303441365958132963718457261073622860438761309070379011621911156162531893519348744753130156793840506200058828580453569674130395530513230153478259229736708677743194033943207345242877930198344288433078199732730293861651482368818950440747244490595389094821182647146373956192910441795871062632103608712766530511602521378427165717181357591363289466219595512651550699863971804754879132318454058687617998330024402655368639537915872516107188616400635365070074697818104604729136272422819579830572359835807624955259889278542315535816004077496818226645931118713964401539858858484493421886651099392614134379903156909706359321463488437211410473092884509288278474093899762558857695009522240512416037173479059231099509595168071884777488599013163245405389042693406727816862493066458245006948941752759793342539451765111736558385876493377186974930712944446126182699132212128076720459677871064165783430115602720192921682928460158739981735266790231146136854762590704471230140166809100462640113309307520572281269103970917225088092769632686215979729692425678661047460383764384216098268168166876909498238440497810385718297818363393731030973759352115265595112020989898777453727232966623581289846665468944009058395693549123711191403639012362966052979474002299942513304730050821533765378304832290031410152948969762965454579582704653037585900973264278205235518673395134772388023271687461658190655840561620262468646179372101057402679513505835335487896028442229536404689502778149838564544730488334117584479470653416449555293429934376897116380818511645286892707160845177995041012828243722411626802460368973330869602305237084280941042803662675880065611118954779160626713955843184468760781741504671341768615496665324566828327349123843783792506248334557055426994345986184525480952648334491102342987378759479406512502822117494762637303198180019555717422455729956566073109176011742184971521412724079865751342283001261813573449497817879470592454893391615324500432370553835680410714498581135894672139356547424056426289120702916909499492613201149624384649790611871903504977677241352326998049478862663386652074470496825866739759586875031501125027251967831257544350293145785994472509702661761702483185228921159777393482197484197275087842993296844141968247393589581938184801189930630266980166897169407508077445838300067582289587450021295104892793023042779882202569189445554407431184846433788427505925869506148644896707907096496888647357725049713101367152770153449348440475620934452950128562602356422438292773314733801128335119257028614260069283924785367591352044629841674540302432967916947871384360412974858537059235427086692426277189369066560723764278359031456872743038214904124617868925778249076851461285577568039274406882204447269179027812744208050020289457176685793555819584918460765731304931411094173886851872186805363284962848018530653421169181982694877256464346205618939147525511362053657169095683390873915661383714203125735206784189479317601818687123783782908750619359089873057597852727235646505276674209997608220155503694791461146910431619725108968617305551658401282015639126529268056114722004581515552719556711310686502268546440230429046276925105338463852713898068384582386147313262592095515654772169130155634415489066352315504620861256369372761122564304703243750833982677264331542657179413831541197404063000743606278645622594040511594439763835614600374762405204577277403430510099720134654534712682509427777634957163884558790405102833103234339387736039303239524616030095607395220223018476406692303201362129587576207263878753988488268441912126989709919536836183411376671250504321733879881906380599592092177417558095010578813962156898065868344741204829355951174944527182217009275314810315621627431479599047924146556168710441761038528479120543338255028694839463200017218978003116368326074854322206473283810772457325672087291210879027759693321310617602093563863270689728607359747212462408139410663547147251473407731638057623607636904297982296818229150346494509031460665012546139843268290714454782649992145228695335875802299581891285808941971310569962317245264558576741204868041572515845089512977471222741508667273696928481674956409918374114876789729254047596578081275438246159433751663619322138007309996526105528750770153330737885086156440825119853247659401569543810696902331186606773416548150300844414304268795150894420469111542803675664128704815159082452813152001980530178654328528114486470470190869283511659580441546849976843304578141594758036783442689887773800187517104278707960557439012199656710005035200437583427168573048447646238186921304232825080003671959112708880151709141779279645842220335174701540961753639965999159384560606079604011032769228574957777752543801394795987424189945813778345599626766001822121813035205455388592599626774240949660623240225385638491324571397727154992131058094256340896573481070393152481547157433811785326576660200624698178263620054871966530852992640220403367371232041896273099497422184182134695281378690982846070598833343689236627265394802919348201768554604916674537034821183431522620663220106765603882196162557470149218536614575534570337576596842285478431850367965657497198491472109037105271025145901160115824458888647940718696512767194288272748398327182849549673906768203387332886041705435853862561667487907537681800832188563318481644897470129041113704877513390002360911428790533078163875148305427540600205323554139662376660823843625104856245094697726275551771917195741843736327525203181866038829167001957472278303313026091468744986381467999125777262992026683184507257995728260554904426519252111733442464268956186829251990860206488739217259878812296952758093625371049734656141916093157244572528572536970956974287595948202127960766867775533744567563851819697998941080821658149186779293501352271869225730655479694929401252330522365433625167896824805121014127759590855402239485426918135977771961986109148043917276224563419330226393111522493405709430631011851010901822810717124641228325201374389494547089338174646349344609506695253613288572052380000959309873427888818534887058236049459598482347060007234412602792628142926003373463105280100544009559479094769403401522873488624150755666168617770455232250961740693263094616249054107199132993889287019795846274856619970906852291678885187284603479722982288857606168935722760213524821989346387869374978048634428907412669897129689972043331721363022150041761726733110774301295316911910349335827991276230457376875341251552527153420160242287012934321493600719234529406634860873026830939461745001332870679943625422359912177085214528159971549180774578311498339889251535302672930480583588908042594761221672260938488633381974184557210933567665960368597825636979249963518952328279668709371551825643749887396694235055760152659747207784960259241307884158112661132602705117063133653575703690235408171083129189088496386421438981315159313142908744759334581992757521096308583048707024999740847565455641968939620437290534270523358513975436913026110418480209677720366211025689270067253656936337156561745475199017744358922026440131375833228608929478397191253560307796704769993239325738025058656368107837997987779479834866078423479623284804488514474887096165984785163946908164658575905257848990101667545290073770531232896491274192643434841683725259456887858375360922426409880719851348291876036886999608479837280934381396007453028958223482074818472322893568404095060222040339636354436965769986716025917553350774871593139923856128549388125210325200598118861028356569160112964534519571319607099027036578191666852184434734821104635265852172658402092462014160468755022194380712771669996587687828404237433860870563207348757690882904702835524315087908893827747788862045914589016316132869888996642882574466748634606749673280938153075203157635929466165957101730402962102201050820613694258803979565504161935502985970875796542138614332973505562400647208705756801142576833996451364544492506997534416759490867640546653864328199858757188414221479038422443109900495503819382453176766785488691755002238583109754882888718998552675664291531075958982021098217270158761133966677257284110924302439225628198589783333831519241443041105739054180455758594099883650052408518664547310324515367725015727967580381145022629706726507157404246787215961374538705668312684517193143502262928705382439328281996208202789895944415467509572371216763219458858381511675852975199489950482864264363256221968486980230148016324983315690805057143651786777645852916718308681231423661468165246622799561040222835845005584172359138628674855156101031948847707479689515286712874025343031890828753153912061246480069781096883102627050317923031115148766063932535567267452984503831814365334488258534353520776176893193384646991604405222120578391711490005482092368494299461260278791311569957859327663831247162588052041167883171854400758237530220407211934406701136238368800025165576626171416849813119688638795501100772663443529488481601606211705222647195958153540505737800874376206425753295712080982425944834751378192842502979410274665626257425576997396748340470091538234358824129836800908089709859564067389897179185378776868308658604241809891404477992544405270183289584191808438157289718567016422725124078288821427093302519028495834942871251945394385178161023609094882709536952889842128365272549357016250330710227934506743047819531921825881212389717676576608836058904312927480889473708013411782007568559697630999021104315008089425771750904440576532448068860801326007401448035417527838372713992937500889898636871179670374533331571291715046717676884068447297106221284648045510005680798096171478631368507329769552023350762536899097659619827299926998653586116490393340034414374877281635245055091762281736602211984684782204351867813283363147849393062458552344462070017103681917518705957005677797279185140039540902878713268482534925096075022963371552528583541956547814392159434806886441642273077330062087149400556070365437589146006115331992726062646524306645218245963791745268608506815342937165374456294768895504193857968554793622758463730813183001633441833413470249508806091830428722554058093698379931589673744455995030187434125333146704941373583550959674201585145016153003006220834725781538907025935735520520938610792297372582795741238258497117253669042430550604345299791841784873747850856868930788904698182002642929065947206115103884927509087976654862913476789793554096496243351817790513591622624442879477222760796754819139885095791450298885198582756407474615078254565839641928603242512185054124847268116489799213501900916901458309346350046198650508342584816224701002845729704329527993736149030274895180022228317926414020186998221497188955642143078431326133173892250471149507756191140768559170861241894246642968627319644552927696836145772265163871946263313802294276629510428819385693865484555880263429542702380495603760642720125106432319817749963311904583969165519136023504751453705394389501487660941090633626101933102890801084301426361643643254913272216056503299890113124851944327150527969338364399614655850455985375362011982515654794078582152136049786851005209287906693671491810654892806151192364927428307312949542095424567205050185829120254293964762855683681197106011340283694289318714095662947406537224750017113745277076915936400902767712172268740861415758639609337537032878931400615368817216357217286554999129771165876789550492608426219715483417765045856368597991649580311223549314903407922043196727006367831736556007928635453804742212019715483594511861611393121240321124196254150220475141208745910532428057062763251974038084164327825833600976967577913779010665560053885619809632314188306659826448664656040785177761207076727171956389835768379249054702679407217387418093079501779835024279266422375496120948931220058115243610838922830404681562904648998119927029226755289515929239788663431008449188308784283470469856960237452913060185593942630011791091203025939426507290805593237862942031490026754242238222325594184004807681108942851997343150660386451316339061483379968757115343083622866334199682696238313450544978245667832120340686320670286855440320398085389369773871450607967612996485717442475745420599569509219742931635485973834326626361822606570051258444385546749972227244912462522666007242788144394198469393334964614108101945051979672720487306098476712783663511179129719051832488728716218761138331588923826380473525551732898999750385047058756082313339706963606482967980353407262233925539912054492397656673552631650304894698493772877617368668624899607031650736685717265667826802601162907133870174920408685698843169654984108583487097095677754823350632865267340047948594211114311290128538797916464402459768975774971495995474740026598262268764661343866514101453171739121306510522145294355713415169008838322461173109014061880556239208162665190519979295635358631306721419436044994444645629444139023154620968857307488751989243155648005552778305443467888008514913918547881534205670396107756382758464916523875820713457612407048784505022881873410230996289437216554953228820219613016474137180840124734923096648820109015026658122296978158586504336149198861482867494941006918801851409713354846606864340085500601981848292389426601234193243982491206221845015318507749394366459585337023217627166087180854586432171859083991565010507237089223114757391208479508942872661577053390596880306281900523802486382257868918670986855469498106742072732536934925669521231655032033772261887525947408582000803420483210375822222660590122452466302144271519366735247377605359515129289382321285310100054959197791773525164325901309521700291634101767779795191095133032620846842333577495035807581007419387525935325079365847655150562569510187711126412615131418936321825495667945492222921869207859431349936715989385817958755036977986034819896643309236978419865895181919575718743619762918092899205562620261991239250009927534094409563520483055700954512781159348276462429542347359239173060200773106507743421239898437319417364853997383416880077795808819084825244353738230183751922345924477524601795496881244668774043120060802506863698166554956673665125783546049555992464977899853905450341486659667816002800490939356862866791438346381660103589203043135644146692023648936124020183541812981824825382881670026203204230303039041162543353393335379114515216658264989019131006426721697595168577161960460524427500281703392660402240548644461651673330186284658444834447390903170119880211476272618316570705589388009994328864706563462662757453678427369991049257832912682872847735990621908970589987904160078404220980415857874537664971055887946816039275546409162324711321239457221284419046321173039037108302193824666917967062499113148217718718614933914799200506021469528677446987948315631651356951746941766740487127536636711994943671452842396010166787015367805548872179190288657224163776366077912253421408143551734202290291294940179458974055978628227890109890885528019542544067899024765108914440482245895360189001608245686586373818119965342840699943579571961304349714344506753567724655904190340550751249552638855427741443225356658541979153664395964901890879273770678611956021636420149593712835626247674607897364695472039202438672142778205506344636843621339564606877515497103736172504107190496914108972703895349920367948549882247070667532244997798400181301342373959682418928286600519896041043698041017702861580087419955480100366693437781243624200471099456603546948680015729352042104516156828953852020508583773658915684028713018028939970765601765365109412187785181405930403808235854202622142344172190154326019882456072953918451468669952917529442039269149056473844257181994193223847841615481030318248390469373380557010938232693895226887166409689900660485607708853093267732651982850106204435651197725783636141619604875441305043443306012560340934634774356279461426631801594756030039236288838956388931599374919540602743909557316764017910888048014662409747570846654283067039417094611600689816096922199065945511413387116844904425879454302090026030200863729303819933641837505648146802617782448502135084445839760842240430336089582931070186818124622000031014786421689813739142643241151721006986803734245370875403728478467720312424879120066712313284159597448796536435727217937029483861040356528969293276556491390784674547311421562077096042173855755549234296627004025954492379162338754918838583738579116801745371278150354475576932693086746351562843037441049825966913222876412062175424627705035437521239815261993254686903706750253688346930503792669987881237661409790554951967098221697118393391624532421543081275752390304677350370459119005813899674685727385626857856464864206500809657028721542723308644712444611614641140108440585234680266250619146953862755817031543687692576780200831598471610996931385128116078123362189790182940184233769697860308607173428727642562810875112496106576213168048398694491385134362633877001749325916042820014632292734556848798157474310671659773513633927764952995490224514669283667839519775960543700969219285546195967555187516225630440754029527901040924652052256002249111551929859885707931431070984122656561609070169404939363288026623472674192908847104594925238955796132151760493987253121648439946535056004906257238294918144056500417150356956901899098182819252438111886717802262087889688502075202339178931383204713653365726850634377221111958718678515777954413602654587818930344671268973474419310509267647387415200028709562106290435423152300469865634397391443352317554816704916487415850122680629082762169873498193030791211630429009993257496069407088295061146466465475885217270337654551336318847465697149782881069521493924407463183509830099050475368124589929969146312494775853528344050249099339852549461232604442003003818556473871421743699034072699230017699005384301618188067960607628876718070666177596042440820722451068129750158179554498922539643747077448531322967894079121469422119340087997403258662324417887896916411724754776838602146433525227603892060828185467275192040962314365273837424727026096117061564028950882215999603692280249821541855848602820858510564879028087666821150824075782370669355338516799164447649998027137861804216165256406036523500699642100324102460030085322836882263039825163718701504489718121086333867839142668954418448348960409529980746354258634388424601320952650788551626468639020408941330859385529463519211831261558997670036174973906888557004880952467430129904647930424591634322026788826655477179420144790861248532945401492658129334967321498916585196680882595511164379858332261332264940120850679021695533930470642578997671657648244529793830477795015981929064531376155176129215356005868948485372957227274638829644280566590176822178011352515953163546152073477097485848238570181296998902423089284463060666586876426740540982312504385918971005592247609454894146829548528021201781144201389037621987533840897167432082950301585618346440520382001135233992215607355588045298594104166393681689786230171947675046611288809066706337225322411758527124174046029329577851121996347433077430775353654274858894271936371122072477278351443269863441813462681582886615262605653253801196926485293495105816105722885028958977992000091902489233810228583626268197637902575133389026731292172652208328443651403812679992364928393194800516158381735185229224062897145698001382843548761149055366309816843036833237744163866621712703602581519195373056520948752969535358753111775770157115676967034154235659356620956471866260999822606379167440290887006555667823716715794220796148607652587397628856656578953014271265654948305112362826303181200847665816527597829693411971455238886660176877502489922339669300789499339182881707376499202604866207169920854701538287601396834796443993926192118575326737680369331238500171428089251936748550893370864092624311514565737491891217541649601067057754945408246969407018629829050952805511519583889306888148372549518036040873417414911212125539036043705034999347171032913229043442423959378438068053784226344196705987127571748968627583259736668818639885147467481990320884768753168173489198996784608117085285773844366328065903161703969634084729459351254933942392984893780597163787190581250520419985425985840899578771560398164618380811703435269713960907598225448042615848319484009452329378615995082830820666747230979164992657196816841988968950839917926992258702617118892417860194702289246941610273962055786068575180510132626605337077518357597645968044526001206013720226205589284038723364447763926525484895871660023532829989159017173764597865509346029281810196437988356171275882498588078207629112470786059953263488533404981846729732354273412815116091093102368540543266178596894495270737774760733683483178058059712477464097769798490416475192578904768263845706829754203473476455779226719609457455900085935073329059596270458217216108001648152450980213697211832314997951362014220036966897228300982047524083951699079182714714334971183105258709094343311052533076875936712709335117256233753796401709122088231856298826292388265953507538793114313066243889663082908226328108201097620541408655126006926938848457141010674242118058363853447605313023874939581385570594596351005472167807065672981926504228521021389527674419140445155993140243894469813999305107826650971154113280310338061496753371168790950638836376094099691119035431354279013968351995938303003058246773305839784316249691280895377830906738272635297194670598446905898707178689127703424127601761960116202218853497486298380553812237717776494747003005848272621274535846903464515691915306332401281453420388686606011040400607555290822029857186551675293967178601981349716051069033350440322750345383664510806761601435302837898346166279579649746223603511452114109335302671585642408202394613350388122702374662766365386532157927113229418941325144157051996245611781676877211150211330199972601063049606228560323037825977840243361828260356638342106088551165383161125536895042192786981667190607732368132293760242364242224638900162677407871115379092291996617630337932722931341404101691756667194137632111566663951927080607666516622901179072723184557083777369748276022345870057215685528974378172870260425482006183483395475540877553805405002278481711347784886316146320532664518856785566370288617604571247369994466209263838502620779360349446257084560839187363376420853737182981654612900185735696259598564040665357397474158390273308212718417039502762408621532156097967973112978040300268499239143102871248016523807870158134643342034515613338320341619999108653218204037833741070638275456588342954085638587161743181764274044730287798120970450544641275390632639612744020891409700294227480465576394053324265220624166962925925130890447752153840653195305811779817686514552516291978308810349855050079275247025410966690774014357440619758229550783026622927691521347924895855822028438247996763720878955676200471031526007594904235545678676557055537026536918548579692892927976715942978536461670100911661669950504541385512466955238441972011841116939950322788225095826765618260554656880526162853887601737932194275309755227064949841641342560169978180158492310472495823121383833148147410593673404455523037926632079977536676597191604046978275748859779418163161377300302139079931973945649371571859087744086588718179513943842441446017543896235461656202957899787928283696869362720760030343458759154642453305230991649658867327574202999969401163195732730127939771194511896564509081818234485506454177286042339415553533809142261972629679179587471323945253926311697030277337028832575328120470071768827834125807724560376105956632333107722745653961182003658402288295856016823139998470973305169652686900622081611963980860407896052523314999558995831833077627867110660712406373645449947021243599084390012379462445381465316088533315102913933599235455842594684262194423708296998847828320745348063381048210032959494085430620407936957748659018857053408388501486762420839580160275574980465778670029041489707413649741009037082825777838927383825029536220484087327176236377139679870847786400851182475311867382314506070720824248155640593813611189611466724640781819566813039952523581226530501632189056725327170644500437189378394630900005890474552738490597943125977639318254146164277809940678356295229579240764189318314682150515982279753073720627356946124726026602215978989371596239794424289254396346340292415450857564787095378704733637581904369581129608032240452963082042310572899779120226398355275522325079920238410983248068978048530813349133496013559914765925683384776458842600258834714529797408839170247332248756052183736940390011681710375220941979876717002059937720154133518724551520793026070538189321403924262484638010794031605276026622065462958247819975364645883962897566290570324041625662157274365235722561513668989551010022162258029763026740722011945286967031837002679570627816034981794426015574223222888802428789884863938076111603063656214044429700440988060624986547255963984016555772035837379472264545427987796268193013607319463257519700294653154428570758467798024250913275269227983737746864129172142939280480476722727624005375226294061828435640581951630679877351428415550301913587281429965670107525721010077870714425118178937644831518916316308135825731899785403024660431325513425020612920312313158054380191440068041213189960247671601554865065399851456830295925801683572783200039981233215033359883876688020678272489562314171143874863381296659954486963287110475359629421080181090393887665587791332610513810304456152224039620425608521465234951317444352531213732778382253892482701573639460928044759690893536469482448759678351152719580417661066446762254632976433051200904595442460707118136572744356559022014862726425012245253749827289379073912152307609734965582066561123913967116148199616684547111528277638724213747135411181103394643069903781682988993620677645533485981695819412173685238136340563071766736271030296594037941395631434179319471367315606490270647963470212518575309490201734132144579336867776181797991503791900391292311497415535721317705688437060303013362507872485859428871326172481404804641361292209981954785866482983833331049286693573661017889286189350712049698150177845567533907889575161636871831479073323221269768904139791556714664035492415687185274343718307152175815582286528135610702180670130332373377082194274235172536832860090948827071502651799857974099294153477207837472553099692022374330248007820437925610661510775575346671553814365541785969121110308427005496534430203621562320404852837631708355882682722535217436885262895878841298945884494254064903245965210418261977054654831992394253482983595360644999960055865749827208332255094612507843398681370657014204063323716658662625116066226260468827559479400557106539669951995074489783727781978775245406712043516876411351071085681266748695319823822236749789140105818417637936674699618192484936464106406506267439673801736807591401972252349208450328992194481451733136383021387938260946939327994625323441987488061964201908568567091222400460264479293763200996748000813275344017996245182975649668301087632792668974465889016104409652913998194828888819070391334991817497498765411992239682712816955076964814732572648421460536679859392375778018643150978650999799992716772438162600371797598883163102045863701987463305767058165284148085706300940009105525358564645072857794569824779346636539508661310775193403715652587966401327443157972364334755506147248955104282301775604859614430471337061708503835047264538297277221748626799519168471292624066087710503897196058644384608730189957706510508787721952007097577618046294947834028846660710179927868737702013292937087397639125566403854010342792977128795690224899714280733855626228098973442200194089281397555073415850588080046125837736169129867173416835350643643907637385469804035695107768003611178499464017089579999196671727028740203606062262191218808108370603626244849667925554155918169563681553764151412740002743072762300170924554488753855935776220860141058974196996173218372356182680653252422318265135254428742524791454072095503197757218588300723685880461696803845995411579813756006015013284414435352757480311502904134180914301277756791558614791815199678277242305391975413280004347873513469300630113868142108303957078954502184237124707929561062856465319484744876906313853612433761588789301306796483140451757698273859130983977338935173880945284905176188913256203971188088938699469108568048645964683095664674723316740239182003393928659701404160449054890524955496668030467778496210887181999028777331815777223811769232387831690536822265255022851608596887087236912094236840252270945532704160497072828003707468701059798854324708183949950783155575299923150635043385393522610830514263186393800218138673512885462220027278423400530587706966165248405432726087569552105238301384358841919182839247779416721599181461419890904252908234539904696781003088212585135036600739545531039696820039867605303204837332863015845884531956746459869710320891051911976875883705978003496458463489495173950885208053624708862937492536964230685441901660710186445181783910963502111724429012941630761911424694916079842676423979326505517103569559709717338606595757946884605752923028904675582197256210997829263753578633362150070384313047795789260414570746919148760964302482678668392747302040293176568150649527010679965317365307928678927372149642056396449712707597973194608570744332750959320357562737736804716847689390177699929573719565217778475402003451035713567371168992703801567589908519574943275918942139107898934167867546270691772000574381207133554855786701750869058437538189449593362767805443099842670282201558898784992990016939801041928969393139902248846966302679869451655057343027253297350546967312240951992158037411980335307660830402019727203693326718915711217410111338236567855240906460310781139309282611159961029670062569743246900070083056776124808243123851617943013594558879992475256922144433170074891168104163564091033686541114685907785857777314744919797915513017927610982686495830609457947665564009311600221370099959630709357948306508356078810748400428555436748372686114829334869988286660907381344274781533139082970292305067457507965707418059177074896841322515671678656979332523143481624602304536626243826788121514143392008518158831088983096576711584619341081320164992774795430842330073481299283945584591779028529348324006630457331965277834423728987019284398064326280586522055091715699425479618817209074874042587053078735850307004076617847811684366115901113430147936542276015831640929405430879832780514365814781090144379127570569841101834134078510254572883086912784583948796291363239090412918036755780251064616758929169066789176386068475467686418345669656076786975105185669207692757165893477965018326380555568544635554350709941130010503440356064071687765066439970629657338157334872124384057743402207631854312242341989027057802975684514762330960269674714521750182774615806401056661021160344274295070978517189611592073227055107398433228474369996903927880891021899776189472661308188226192651584756297712624965748488161050969124857401406498731012924040741906302933761599595474812541655242333607414908970133611207490958891084065185211529528925829588247085662798154513364316863639676560358354923428772083686242699921118857270653279272806617384331130054725789730423054712038830604104845008684382548520055267874975088573071917687642494282258187088043541960899095990161462878164730842970023361553768512597863377354900030859984671384679701005382588074713573898058105730250639700751028365306694402962518916448620081586240227417214555427437674381541105602584335661960436414669417644926620168245691916763013484708091144378725401750047675665225706528805958789704369621543750031743129798287872180193975155935343216541653002487227665442426607210580449666118583544023540001397357540411038207754505859842942161735138047171952058616612137532058316156824162024255821938334245938354640630918283617334154226945790573156183356272591720925733539233483486262242432680307828224042871125026629852839531625798860457291310460729541025042777576685256002037423940204587121865349788720159832797106533430165527621755699605329122183519953042545350587189664632025863248662485153227544081913481977546496882853648226523923349909309873843644470426531091352762307669690597729269854193477372182147267644174579436644155086210166272775908490225925641623264676585547965027295262799247683576127736922291660356744821668832475987223347836012662991942133848895035915412010620153304941108350924463179858665861287548414447208356290252155223980755366686927970560382615087496636148094530885261448127093450829217732045107677298076947684162456289400134158129519239060772338235622443060489821955496179215761370656954190661496559922056131270590720546003070246649479578016641912483818898557865079389312499559607280123569452554589799907337067931698546368887501990443266324139796912517340709536900211034839826530052056731223099275448591924192070182051414947170108154618777638748598374179822284190007586378957251965908722957717188709313191350774331300558922439989979083525042238844173183265122437730690539618092958083162253940006823842953613478404444148882747427318453797503270979168167806930869570831141945486603783436674294640879736905535757136992019356522626881397094241211599451676111622045031281284464430256416609642857792053078335721147731212491051133718608482750436471166788001084342524816476097363284582684614092533640457486111491084835822721792266659537220125562916967665369960271070427454922457181544780754667571123430513047613369902799040525353044171823249650853803339226203939807612871994802521127242260269899315913784652230215123922652098696095580381212519575318228468035311794626671148941987499806128128857408258822163896655904021751413710433265259025177404591445910037085045767388964116566671789159597411101731157396373346708547170592720822012383299391911643031633377378645678434562956216256014333556683607931777107108544261937299790433207441457786010952418119248139707445288492563347415037139393519112509464094212435358413832048257707967394974764009642681813357548541061023539409858045870785430696262283696642270600283675481194149209113189583690625676445812549036137981750828901745840042498996951165774892792826240139271106578502938903155204479721007814896600782902587075439655194952442308964970904215047582633249174433156160664351668653535194500587018217935373703456263604209519088693478682424521947703401886034823338688659203437852710953062385553098277487195597632106918446689857985952313818851917937279203910910488280479404263702628043403851632256410609087555724391337603541443709854922731915906287623677299979000280278292978983286358482831744097596590968857565345284989695899361699627466338990037977022794079087300230639633535079290227688644426808605635480814831043947478772265707984827469452923059692307926396151017421039503121711327129333244800399031003012321690334755865028994081925395324727878341790512016477823082718993310148954872668869187254936807309846564902773711548362264192190970030800648992454350430490567594992097998298469081869948014444107514160215545319658283072229159608149358688044825487242384296883107684616678635048914526321796886063207062901844326725685824569174200616193917181229540717502974679394237521676254777829402026398243257491705672858084068885318354481217825731912141221523948461925801401219511728078830233340012530631534196338125269537202749218540724540480826481152115468017298696590549235174607888196760329269200362590083256708347087561657818614347770272092899136560255392427270502705171653640284852918769608439325639845268676161560954282258164244187070919030539120411617344788557375343523607589779590060307769849776276804196862259000465246026222698369005045185651204583391459156751440976136514183324741844567620161491334590489648821554067768160715351383772240290693687526144217206837359956211291029864567229265215778044812564024499840061158281807916976577564726983465857356358420871145338451812400612769774987253967294797711903710450402790794095680107797569035925034032987197591039312903832981540854743828657203010757195424661485354311123603433707827917587428668237671466646159886965924260598651227462245484550815492998371725605031191121961784749474508067884540065774715998849268339905737136889390525134402814305826218989910377439683396957252733367672947462150073422146897347150460529096396653981552586035019044492335010992718316610988242293026646832818118943110963968094782844246471159388247718999174706191407454033272878314469778839987694126246520175646511057276663415140693290154752569755386331418034257799630296133314454446177243409437994955054837819386459912385797829147461120550450850962796418037009335759033358439710275599832636609931986206043326847367627784373968995138278186912543995451330273146864893464559174255859665865226873316541088965642191505409933705737948687384352704754429851042968554078630866488987919708000884250394439416921223727761336213256545013898659751554073550631955775974456693591865883582135275604473048106554606078621210988394698278932873588892606777478468647618415407112679997049819050731278610895470284847718408656134204217995705015500896120597910603680952689014657933195816935788004924978671852915770193520373983460028026653708507706139159158533502513304072993148810855796528664253580316253120636139540749301187165919919307729007558358044250987420802628819832711702644468019027041611111198826735776367446509642601736225001319937815005486133260639740935173066570531252287583062358997552841977295318649888085760000760448825349486083313521437841483265188664481061638247885545154173830017427375161048534883451719759333388721926104274512256335416537305327249902969908159568635983272754083675355091793292889638516602121388211076873268195600818829569230892329218146584048680429224669656702996784485870946968286173579384198874940194984222815925236210061160271319296958711570445840336500523181507301757997461110869986132186725230359932186079380223718655785365914567316861075583458244104694763775057585047969831495934284605941376160801113210044851425451000315194340694779593952267180792981843551555646337293868422268582173992550616870835966108216722025123763752256901189959512144175277071640147539387990574208526066210035130760298781850321987269748753931312116931288109784771647359381501912864719675773127817193171126612523375291355017732281304344388749272153460508911208003399461123310035530680517569854387899503786294514609588050256922128731513061662633569274860545872737881087425060058272455306615680960163771525506919162224755486850336380276459340066184568130504606655973104566730973476328631741129290695718642291865805452981859705356692133262266269716444755617792344337174353686747218764756379486155976572197564648134901311395677018333227334019117291792545127753474827045226664541629994642289597822122666423497216959409665477055277475392438363824141127920600477325860494963482571793372852907788834712606464301101543194262652372565327305738766883355295154025348189143048775649847816154160268881542589196747739300342291008400198182989033731448583628496256561440299163066777378204872765270173080940297542721680447680246476479265434050223953509286774384118993186186486519303253205583716162552288548876579427941704361289788661289048171530154163602586710510468666007847483919984148347105517718664574641409056093426630397080732305751067806621509943718804079663389709261015897125637583594458145717407532797079866332128620636594270271641749891722955170091901961506612874385268957122160127249093497992673795662659882754508503368387854897242394140941400371936546187995360954827830549090196467402167807216871777306527041095024123927022308361423024487525888182983443375073185429511315781280327720437841852651281537222038471090240994834524561626642078984908136998902787280342234480916572382230833808572922246765448190936601969179562201682118516032691427834554814960400963677542474640901000128192661716804082456897080513011779738770678133655110017020259764481920859867472841106961016800983089957193849864589999344437328926374199643438182353483946169364204616007030306703665505263626262201648651699812042131945759902948115542522395913915456887897200790716389702808968030304433293469602351537309311652836272790793069017131137000414651521255218996558629604362365317273547933739614637445070654305503725847880132254011486368178357573328205740997641794895217166960442532924863934485188769674257006530984730351907698129475736197638936613093319631221273519899151593860236514465608035453026649676588662940870724887933635572018811896912271838899898952242056829442503356973135865746890026638061369686951577678924830442385113518187947408505700518996355586189140820861644254462598729356527702469888816157088559769227628508892821923143924511870918098799818076701091667240010633891535739019790853102961641753939323652675654007416263580018145518362407856601344249088609447080161629979313674549629529583508810848293645223217419583707707312877936309589306762245746610683633165030980690897197562420554406204562491408615646643298286274037524516004651779389373497477893630191123713917506544298502906222161064647868639629002196016457792950951157726739445163702789016327018146453826853736381082757703948913410210452037148973136301139186790594301659501746053205371020104210039029080736053438010816125557613145207248030377525994058623306919532530497641913519882673704317908123933495576238413880566665734464254922421184293249009266501402915090875188970196860499108710525132026536358751637465570086776212338105823710211456295625511812444295715242095445062562205804550769461522915727824923969646011257101609938299453077917464158743745492395223611631845031043775166279310738096337728162724408998728119331719641262618129081098674521154803629402550554224948157028953039555550787170738203416073593336225070376358590819915003667255731813505885307595908140907220015171087944132177587430106837532613574091385685152406553602352972219987171522087384757873537802743398676209557852950150205401947609922397847197649210375545271823231159446531618559599336449063957498145627956827637545230476032328074510328035079402483157052238856561918486089443595913330047686450506229208147082312873703206427256982618453278952297623515884129354603318043128226988833977622351697345648358332069067857061572456363783016241944231993869684560808923166427226407992812032926513272285289521256170973413954983574294985828115413539404075021375422134270414816392911640434036480355950266563683114989602046916585533449476687974664123191689552441809731748764829517200403360954971213941986920481800849665675332335066915615741913150135951542747783806763261650762451983703036117305116948175775414025349439063487112377708178447057428097181515444376321531564382384267159429370077222081384532758779541758368652912687084483843572516570047396804301942018156860646350254172472497852002200830535969724705353048436626974756043136944807507528439971846192365250908754881945863718412412528145308048444537443983422026078078216422627204809802440994368981961716461095674477216065343684367678493637572940446341389747991030169525195213850772800463542320316633445306659919720786453838567243343426091429976831347581923663493042853347981350578581051640033084646569498319308577577441769552255772205850471537048718605555071393578169756922831711330802635926293331634561018920536191901739515757059125206946706881539350378760268173645358057505082960412588333533796300684084832537050108002203179620779431121832474074956121748852103634637599851188938391668102935471420697578267187525713227879826640122633172276350014273482354563854475608714047121719591232821098135842623403932118758828700818497998562286642865122112969434434619197287629883232428532458848762630800339140809759975527691817629699851913311007706621451416720032769865586841837230566165998963551416455308510881177997545197462986292272058935180136023243607784726519457147295172171088508429043112112273959129794838043542387108634684009710615164133792029998022242201135471593218523441552913593348708019137382900711950801647990553698381665689082440645410274608278393068358516139978280830189308485814777999396175700271909112854568676252997708439324775517343341265798208517736907201418691814127981865115461423789587167431832946855370259128450224657024642530590178627579924861284026951938483603825500761390640941004102900359330732168716909363518046742630536852713244037990000066492489299151866352634317219691314553398146911241603222448907435854161514305805938063237963331806278367009728398124829404258728811896117722918174043156488075589017628481068469007047529848871628762972469963349469110097625631618911104323401885556767655593531264353898195337990578392838900237401926584979355604217916768951094603972133464761131329928549350049392940740671398696599353972043398517750248284891721440838079661077506321705365667347445627051574950971350863924953509359549407423129218987852653210706191469741729534531914593491882109020973799114680380137933285080597672592127112276867103228032975547491804943682563913451894970604337447862693584988753363193938973425868183790199835827932636667683050021588990698686033109234665189881813761668156651647554156686015325036090830656018663552009979392119537227660552805637084233136797317392219156201629410927843521593423469314762009150655613224409112014455120157108103762932369416645686972720368676409455032478961137857022086571138890663137330101323366965167794895334159978010398115837882236618295320606786251630791020941702110370797068879627051224213672891302609121357523852573520101715532461922205325391905428536908656827897445860371615345143841418890816229376491921541169192839795348070787048545889539577442760925007179277119434507915634763261286918685153875894239838797361872627395534248850551634691863827564647442398764368146037097328695617633104117471648430985009817611106538914030080806932229226865100293743778456643802994426686000554822391597962267143300162844230849802051305337263018704671867080053810886251676358441827612386142376251002430911301346760494251434321301032128455703684815058302170079068032100947463283534289804336711201507508655781212111523758641246560214999349042085022563035835875242333693930538887531969746004359587323709395531549044406602381002351076537337511813997654010011318686428281251365009157471931905624573917704626748225337029924173706794195367976977790314916621053695153024637573965634245899716668091687122351077396260890218458626946862822810209241570563436084058114685761704682550700715638843670899138579504959969618618970853304045021520587372261979551051658675102220402468077159990118766509036679608911248499128606284656615954038368424155654838648804050102110801863389612336743166049435923014877444632142635588509614743173576962240902898954968738936786646763612312838550700072675785409053985536237830820829800125091926233691171307003808031806194960492791895831367342972362214543691481135153856611322600200953302254487839378120629635653424994226306254566617717149697419587210435474743969749939066095588181013752266530961710141190613734549054343797241216203828440921220635472033257027681284905841280793149098407249317136170331057009992017256880431470454455877069983112087666201187082623636731417325466911554907554082261659839444650280180096239283134461028432123667404590618000119417759545603090944412645051449494735860017428242042736463135475595157807273494965274182690980090744171586802984231701109570476435196038882116082819552506258072405857258773911463032894744659890691316787077104091161631391409463111573340732141513138072612502878871997545248656309569633511266068316826641017168982544031291280600432953696013478393220278567345114116463243993532284028491731430301881394486586529158420604123861633099452939451010419690476017862960646341780438100100762365416882572163237065086129795301499269389003962613896556502211064863407751659431078231769165967516600305624400790237881790505361912246538330877911329774750173095042517616149925551824819461447517183310495854925558507904943137799209206003723697371682533074261043132576413912240535321681244864193379807458935710777979882332876806825872109534877062638570051147179027592761303764514073813744373235788145510872172101572107546198841804466132995025211302134651551082824435027139518210390714064705983602517459962590921497781555194628431792829198693826088610249391863540402282296520600326895086757774449748825844979815310575293440656202746569984950001349820535627518132509334062910485185719601531364977441515233767928300345621977913376078872075018787507118432741780671661559936247833934576444201525491443379478065831462896636999284700324499704924941314504569476431773501872880783137554217195505756557372025053000128690999307121807345944580687525031575913477432131805601652035491160647280471826736503567331993103886155203778847894027533193385907466368466437035822500478465854424859127436083166775167807127613186188806365845412353483346008235435647524838083017285739528742318088220100705497129028043153628941617768250349696921682243611508039819445909650724085444860708747432668227288998186296479435048576093852164498161034312092466439681881968444031626918970364439824813886162495984210144679399556299369011975403859727599421689624695741853876445778891137306268334848638155769889006277043868398760945109768087359856498958973650612826675234120968029387991105478949772218050229831712088523508690727720793116400776851035421694951228103562127935019151827523756716170000664855645411094646283537211017577639559092566789184418239912050338446072679370424918715543018716213414394200947644704144819378824040589833904449078685982534584948811120421831594496408683852789020076607647960263221466434072091256294559647866155003054973094014288301038700154662124071669716539686310764445920903941772240300744114026470341122590023059887989988547323783331391655303369164786781105551918733526752801354744081481397546064198463636151289694157080934222695657005346539761823612031246894179216307921194398440846907102737284094321711982653168276110962480685570361484502651718832338755500893585706850594165434019701000294097893288260741948255805139539796491353418223128984215450195158747925738889884301451552314051834252743235825079899692671933726888320571045542030691389709584361869906409462317610918705447020816423575551673213947665780666285097322962390000796662188025311846297974318298249507274847428397260881119163883213236740840564711232928242749602071502109339759698170352751301792540313958342271057123821488935575657084080314562551911484575788202323919229011271067377221177817282139048790580858749689342063860892743366139192912901119389498592068643658219150074059662658496322359852927662038978506341929077377936291703929469053622869559717540909846536336106918766969927106524544919436079705288757348135188911611449360326571989292982693909440851747059967790762348730786556334868973573460057494750732307658967286303641265445533023143233696050988131701062417978762755007393304372918942896869703407729566007978358672721930525700346689422099900488487333833296872925614787787917364448289540936398434744937047165169475426878399980798982825535531809405873237080937541815569161950139836857900504056825023499879965635612438693451670042385833001978249669069615974922707326012462429831410117720830510981744211558915143888805364538554827952810317962754359930429300179070368366680835683602676754752135688962728796733856415110679290922264269614003324379402682602028306274260494858193697377536394931678527332595975441282150317476651893181014975659698703649954736381640518772589717796575043852338966313840371680193467073902549765731189623706738457504291520239624412981255681913202723383511836878622347174919899933435373127548067519931493526751170898018334737309714075852737380263485931911885022525153036342917418573025220166642278806688605650394719227415640095640831303685458068248053965961982077904324184101815256510566672283889917230975324169760870025950705142185417857018856376558004198963160695977382451449368993983026942249704724278836163259243466002386525254855178881778634587590706900239037771074306784004094548022281846037176085916267288969955853844791238823553958903998617356931604254481809605857412250513671381692213073894969512030292720350669419433814811644507700012636973055863651695620848539988535219977012910842443979664416714160513584795635292109349025027415094872099668742102093032830713271888946433310821526801171236356336726998456426541634913997556742747140124075830874992348575345968143585198388311254068340653608604983496103485373962989822738667675108686585250325862872911367977342460936087865420387082621854345956554408785935137309805002694500103917554444316002095127163851930064044094666393411300192117432410969461188520485455491013951326409783332722871947791936875147987611063271899777243740780946083091711867979007131140244943712135886736903027307953618486113659573129154952138319493812589609992181093922362366511035461653396290557103511928361549831849540639380120301098862734119705744307927685849401440797335243522624843321524610397014057368572254678757687496717955534971866967631394375986194150664958990666401725103079767313889226265384466976910240393681843195208289478520184779700170750936296502506424046885560228530712908580745838600606010829372208190482751936468626054943102744739610287912025110636542113878503452993559746386574603105884921013792727397534891340898811898732915191167475087947111023464461412128891965602362173982578960785588501784717112292080870058369364820434207044701460968304721817325458557242162553454866186550469106046306967916414287361908081122778195220934741287802811294562710929487927037110517916211450531459761225914480055085194166503534707355936122280761775250269086810706377728798242344283131514064893763025863222722920849703635967893455570553294066314750223440488205221593159403947510305332096972846493713513575118411380309123285140372276386364111645158296912912974444790697459209063907971221897981259876190410411043849529091909849427617189227852335933320954249617136590359408406473045235395270135463317096420856608093457845699495900072563048214020677807666709723388671608211119673467065988367088871162541125613952256596334816589806908381759949218106074673421101837528682599817458016281669428657180430064458195884861861137541939771016690472122132722255358299958514303180436892974691990196699346126782499758624635765210119231064223241727874098044270719001824127147049278763288869194166359188300657745847824559579597465436902092515972602877374427549651016495637965607607731331642006909004084698732220852585273245982042399377638247312618033708158726265167926780559303362484769546909815730367843875683146260085986546045684751220910322766772791124067924889971730425944834427944741605835804998968732756888281363651635390424406993414012859792774517341075728638558312303264985580948731460782177191490882841452021867691069440972321505670479265395867744961327972341825069591610996757055833714761704445904064482768810837637615161438970200873665128411098538171737711340598269834616720564917955148359754950549513034846045462314948366586580550632234106668437066170619022691388310067788396873792939490511525854006057591084696410286554566140478996424261923961049067594364811651234250362831233443170836287151492918867256687860198273250738877107960280037920358763009464653758784852026446077347970485297836504991776585479593599446674539447459464598425169561988077767968589121997967693829120340393076957167552817770496834471132933928203678006894019310153163819527313914416611665743386319793894456754481772310568224879586674137334228322655493558023638442755634599122721486317011269881406549057929524868752815023000254956163831910441856807655915337538965522701405105211094625278953021752092178381162398524770484883303572099678158800525438515237610335811685745103163949166181486153885313300545872801388767171179507523971916806719245995686799000905779863269663668864369729904155585057332048703141794451989645554097044931673939128505911994800183917974537394885617972848002655165294990735116686357372460516018625404362849263618155244931700419180373242658453270581868813310711282291103454170154930853795402765040864471298102855876241669366404397497592427120176572393331653796610883609170287614842595250969336878878742423150790874279160831676801008092189362172678659886712333420802914261943769127223420230323576810993006026428798437601659440062941340923795134809335005145454274550792771542801936576450170166111508187928317635986478305380587843799340862998077849512022253390887042671277450306684470577696313007250344436967191965100583214860159082697088209025892410504089069345659531664999996695379259885315166485631162844442853532374463704356994168222910598237199858323335476377431348367094948631163794312138858361787760013517363040267507620026440240400467886197813303971968377705426718615112749584928821059205459400167393148046037517579156019906803528077227367778846519060406369205067744568467223772798226528567784121075303849283899894841309318141295750499801419662530958143019266236739335953371437665587258308456041621901757295988516389613314401120483245865177080277549949132733161975400202245511908967398279920845065786884933790066120674002187672703659133186070088094392280118361070505135287467349940876261763913300397446896954796183064784552561046382148575197385388938914413191575833220302171146319409379520736896397611935423731091210235307114038771757691923183986580330919050394618874781370972946670967622407885461647439756710313232061173037884853134038890336281046774025654047928515048669102807303233221398086596766169830350448263446655081718599386788626106890461060156139150258473735992101193676092089651908718815851343881955500822799414387519938155527488714145491558180882016900586228072838446971314507592184950396894254014063781277249383387204378585206968075959571225227557587003173011191708339430739149859574366854227464393405420703773548149913169053356029814786527883544331792016180722255404328817306685082741421152128998693465852187484559921757699535639496587031193058478125712076277525247116361535525040054697720570164274653892534803690432761156258791154194071700875716697348402896323878263131185013657449430261297558847729126122441263488487188070809203174289378710970460774108609316902831310768009630248280200834183106276894811620005252988851463558907199402385154327919026744695071238590625718323423129406705582493766995528520471322087009334279829335768492365889368480261041389131576434559457667102314040949691071939340846701779406952552350239631293677056077299175226611044430678019398041434337706391201218996428255915432517448839444614521727386326787663029813007818431371126888328188482328229173409304865396834122716572013511890072527127483570302801572231548553842962144532423004467074646423218568684337080627274194839682396068783179656407504648029628811765756585204989664389693820918125481207451226685873025923093248269803185071185574498511083460359133328263453754969820451420927135438286546355695115686342274041759632656664060631485311326922988986626249663322669357409317989833764476925583079931391609794157628257516250690753682085452449075009013154481073749945441155081171316746182242520757044400761761628008188290474995616444766506731116717521262448979177081560752285957245526694056412363493900561498630802692378271251703901232357178636351754628191609286816321251044584178665248203646832171894686161680773828924011149450337798418179121782199667049844265466925619050422136312691197051183593116045546200454565007529970411321043031348593836343035700682485334903598334716822210186802195013112999654389295664790763124798358591848900835176727446532076437757007662670818181538208017658959509919586617396469095164398252593146688089624707389049045510361551055450161840563517584220112133515651416726735675006661808243226441142932523147415160035661584035307076674435870702685213578536081779537069121765205098677417201442702875443601653141495643208048519742647917349412911536965816883561752859266496397538381375573910887873519806021917640037272926197913040819450388100616529715168344010039683568865505142320059633091033985033682728180308020310769824589578671862955213201173445442519196716909458000909647571132771926875298990102867387297149684174230517783783991820893471980053797375359615741324173090089768421875961352186478661842668584201003336811147498698287440019275365676258892258143625957152118158096403418369304488742076868162069731854089875973239296748400728658780132203545823785520683735531473831733206320455795873499739132639841101577647997245423994487616750785058324740288548036291303972796709406535030931557377593996653114169939046457718902933750576829515949943040752671946218244572496694217032011749096306533240244653665338771067797297983523791227743824764476034009707680009011274615995322892136555884649183601143347977242259928892336378512195325526379333199320566271690299250252733100397756613104800981117881263350965139612507647432927450565600007096913481220281901586807973871160591337822194028285224368975758170607175137359530370013341872392619035855331407587975327793561521576751424854760248614543221156250269484272795751018340685125652534909644891688610704784454077545536600030400680881018461126874048211834015672089046926207933090658927750717245389646161029375888898121750900199325243548008819640397772277433834677238529567395889955511877302626378143431477664272597269556014423379978619556539601117038942453539857506642289644471867023791492815039242303825751196035827679133713019516450757917204920266890768233785660428616206341577052012757735703224247066492392579812389168521097901451341847793084570430648309468910581396420335680961655938029789401233006202573137431173108876952060397218275978497023503279425306872940765496706015471033640701546476515897240574543445685927948099880427308341448728791694490524058010261512021095122079269160144402762623131616510583440762014781021364318276861680217398964564370056389791966671345142373602271633648752595763101337855400667303854588778161551530044024867503689389252182537108506233464883179075036736308665688009361573373415793810605847015365199226605194594268945169567736742277413773942219240148067616781643824857320798062709126876496677716546684008648037041849400078584812789718407719246281080301397628873542791927149075094360622357543824313635856473560887213976972822677726855422746370051859435038333698410402344593599466155259851005019291166900372017132589811582349407194317022318233493122137415024693753308210377159474998810386048109063371078503071654287160304434404375559770324265830681412417651263939708541216551319987701435779807941699179175375454999719770046869259719537142425269868765959963917001094721421599610324839993002845274322698516545069871542432482027252824480107998796866372523459768978987796198660684151000851838006069566722578421830416930576523260128948005528760058096833196857417910960295644009159998493351381420565630165914732976875662284384095785554354056685692014039414109494471507329115888556715518840325463502675824008018322450699496694522974879741832882284941784803579801634751703904660712166012960519753564000201981972408524135829819793559997578506148252281620984112108413249906843012879379731272120449876555230956251032933209422148751475919948903716128736959267781796056421947731669885216558238172828442573566458327956033783382513610274263355959241308406254501837833766163296765022699021351626125665208885686977461230650582729239164672054257774059134659436921585476195750782679122640341574912805048268855865282681699702593003838794974670309018145245011229040620086221622926328184978812024714544759100775960733294085309751268765293284482193694694805923278989940718361367668777130134321604367445596656406299404639915899447057731810972546610732766391644521087806310063448224982059689108206827005359779351806794908215227887464645277950005691343679783767535909681240728520980216543176688765475834687454153639344910860559486473083301262885740611444161530363045257172425576058940987589992756712247384061703475444464848283390763381866043418414392019695061240787941707211365005712806630754869368039170367395944279164343032820219159024731833874757146059038482614813825840648345636263953391656007436583978065749733480636335192424025992584243212863153215034204233540041714610073736566524841472010389111871758663200221085113417908215381967769530939723896916448036992932027652298246904684220204906684676398227593456006991359293649778989772802806523785743412601458055504637154377942040452893508621983720764167910232696194790746585196574365275875346548911421196070639795174550720686987928982133285986443589986558373701332830589619234279453069769318048721913234234167830963741921147147733725541446663431865122356583578496593521055219315411290799490420166520615228504768178246777396040667686433348364778424708355902364341589326175150919132671714708907706929134230072356120713285823406457672920116226037834217450796139660309266276912055253727950845709157289187478170663436130501313624190318869484877022335660358359372608802825166475384375149271356807275481244108585427425194878989282372853161436552986621280689663583111810140052498872802574369084365172464219829618909663521528426957133681335563043573101883983336668430199080615061569709880431470779757411320940647549590503301482876320883218551560363534303612280427331378552392934030431145081674541209774538234367046942024547466892144609019274274569833805280592232522199962030768686626973523550035822070857852286532751031818021851215825775554613196428050079135026995150167301509950778675938197181227162728753574277085768466435666423585592101300054986404917028687417274779532963141398550281063311004674687941264847727836032860334072080276861391033670224175423172951510736157564600494833046509262347102109958550996444625452854477999294876104900112266233583837935581450048029465671122597862911159959787930754916308380559752098267305086042391353158744452140778536154351507306988466681483989252370269333949523364435591311288533099224247592090885234722536338920449196919544442473957293247925098323169777385991612497402738221911500071631150632406386043669910643715674968657564461690917050533497115473100250756329959331665951879229904211761191632553693917455022990043617091442114881033100212359766478117391732784795196137710459290362207283275273198739355420623887389481319738060283707601379965824761019488389391884538206005729714876886446212801398891439408329941128380575072422826629983664313328307565588728872380533753575911157523733345013201088750928488687922212219608303664793849195724999410227809274511082008610823082937157181475867221977228671667043390958774265404038736627462541172900098503373041618188095111777397558469635476156295606226275486070561620822823098535575791490513126313746483502032930259403446505688140617159932175271391360517628453581048977642989602824800052132455316084408755002201929452504370184631025116209049611443685024509408855936254418326686146590312961572856034179682816068853318760001627008959365615432445528205967087061867265605216485101549131915963464653326458856686946046216191062396513381990552996428297448367616106925061812536143632795128225631947309776474297008792944427220389823056261056109107589910590247002832450847826694466072783627246078765608833223602155321327714719003178127360285796514594555394583195492509049924208616459737318769691703452294377806618555344718352757962992213486325487138896953185764957099782535624489266896293705055319054179886716393530499832320265778816700227360762010777380653537294901655173274215085375711201486445892723543102022334823492636355595312390161049569010866094998010320430966195990856589911576135519545273154697032075811344652206403083000120264040525081794587364454967909324538693591249184293329960330593668003812754041444370260518536739762810946359478809499731540312858200488125456909755935565907167031399798777215355590933441468679950039899045914717205215248229823905730519767685127116713003465355785412704712438326734959249798631181459371742988512449017454280715683061202349368757024404069625176832607559884493878262800259128955244227476183097847798900023408468469341111322987071389008074053905096353739258736960153612857909190269278663564235238060152299100450880762770560784483422642799001617754636968228639678411388207669238665490294975970650611306188166270089489571124293199313751161318335171720952070593397150664702329718960671510896184880704955877035935391152736220942666811229362113849340379617327401806113761335244781759016400451355248214215578786898621258871933647615741793493896694976153486806441468472278659424282497218052871320627594111429724329878894272277843314941408411692750278058370861023910917225578062401613335296036543551626751730032818456349101939865910629016262215750443000962638481525989351652842209436319212915340623755033363360857831786055888899731030226135803888085204698054012603020956765876754207018769389923146342949536687825908270704179208009297869802665015308796587158357023600671954836751826051591513229723137443511900984239788101616098007372321231085964128031765870884199429768566909402941023047544149044009018224991873191342815629347498599478226627961022987717037168751189481611859633224633623954666405396362361651073583886002065282110053398119739450041549333010877423358582448309377202029883090598164118203675751761681508085264018477005766846114890225261034217694245505447929509914053204234671734951368040050821313573400475484844740108778202394604990088461288668072572309647751746285516561688530144944824757564826871180927573289813399699268771041294661595138091880765939020192380519184088163364848315321528433273498416024564029019009055245172826706839173219796074904269011520641148308615986036002853207292964031277346653361629210903170336747626228205591105696435546795211193913048359404316816007795316345191021280808710138694775827161171774918628307788172689642653013327709498177417027814504873678015908023254335321417199397359469075741330349487865557719275909926344633966149156120933312261385689202259498500274565923568840463458176426731049115161850438990846839950594344119470956267272422532468030673002410208789107234842655441616344466466189826308015522432844934099892272279566472556986023703811920634741264116879188361332133513380805090219123484744181570133945166776844584659553891359304965221741566083823190875352249988111213974069553686254228233057015551161531797047603070754598506482354672781780151479958228011307421404209503899160497291240859631661735066290216675997478588511243025947933378074288446247293870433595462646248496184506735409845281526927905526084104422068545146008864076805741376200609134941675825299181675730340364586264125016492791576131690654218420632164819747768148636472552948937610038041748077486199766454095882740679984112184719416799544806512411232421237697832598423364443702105152384372958189694955524962591286650146869743375571728861090175326263219222949454692642503945980805905146906500396998222549117272372740818478653087419816917425775352505763717184935242791722686645669551260584956329279124843878473546368566049066931219734548529870527379423056708419387332054251034847897632922778061998879637875425257702742548045730043399739057172222942346559492438818471427449723972294601633197733272394739272608396072895476847045322645712483867877966542668114550796548538013729175959263281424207732668702802275673339830695111102498141451908591311871780423515467428428490048208478255650665532514230450409734711755557968779875238562130876710028921933384191249492968970112489178477164996412681963900555542104379859188046355320317352599065880519212440943343544966975752618352440812261144791757514476609438895259350289717505184895111832476149420886549382774630352971212019719826739761797283289426858245841352577335050659820355847267986688036866062672230889791523399956852207087859373877495120427052287162122507432449198597757840935880752324445170705834665165292385567305809233725241547624484543751471942106128541424990850678806644206123048772137817922004947047398822618606642081290638938542252544248965997128330757903125196886799767321915678017397391747521282398269276680892593194260414040761673042259777297453980907520824407711023160473118519147109326692263997570612428048578755754597062818605002600270664584910093165545052461790561898859554812095867565869333211449053763016426275778322363021242617405869075769576917265589691001654890153062787670947622760514749956757215155116155926379770292522890997005891646529691763355489526623893828094386251367085300148862901553327751654206783469209930976976134854739683119490080608819294640455482213206910025644313540342792222051678804698675044123947239917551587803520952940579039115479647833827634336615644614750998878686963195061954198002905520367982629414011407298816780370280642490247280884273951969927676145164728737493850955006031373585230060073349298308491089862234458925201700756019895275957274667429927550490323086013013115452741515287823440022275030400310858198300420306811793802509011806631147244196126638147948641243885724279143243425575771504432695755615633596392550844199958723868488576512291855309497677497855910560748741503389408279861225122896275259580384180497921974598952857168005057792485680840482955289649870484539049183517879822303491984270537104593439498244962724096299347747016092766685212764447436357221362456178989097514722544188599848136307612595978161262898080129423773826273641196479327824634617599770000901333260460052759866900261858475992945559316276784127499074213273641184270851700676600571580018892741050769602472120292479645745374704102817241124266610237906954283133601098733906268131333017010324099266870861015374418198902859054704287659323243139058823260191605774624641654523153555062805832270940638454971939574231391170249823289543907526036071863457287826176711365688572135667548627520102054808560221090175243365927003426405402218246401829348968304997952488607978237602106993021983577321694782552809332925674953696811547216477033799968850818381767831567909463723545100434381133947989345019666802578564776065224881185658142528054265379995109893815677204093569999089359675856064295149829372569858427332483641872985379122682930721479794233358547453287901174260664154902072484948530735504153439669392671679580771228293014646123171421548914904680142532834501313331427821338519992586370549434486270934428835077233451473753030566330683261659921232007011885265255720367750182780415614556206747619623896690178741574977093529800275808121329704238717968080915652434311222412589157088169855298431731906008026225380416613173144100416615259054060377555142213417740223103725185577856527311960037354624966939309933442054298592042969491557581998972217791667126988151269314211293853981450027679399804067334427462076917681549076604446885571218045807973648246632263587115406227959345863238485382735134192261588367355252667484471568007916928188430917428016441084297120559280682253322875931750974042771649481439111666782475403063990583013888019326401264185472158016536820911241596494822931152240394232221708035371704408043014210388193273441364223974526529465994610464185299055934794554732026750916772395429870479788033826185610770591616097190818363164032050916541812603397270900175590633744483750385303606714278517186059856439188789850028957532116927655194248350920705762295540300042053441788354700988268160396268703950890851639720271844122760712473333418957904373091693081657745923372719068964812467973068084686131994905480448930523163489852566576015510501616268302858639028256506357584473290989063242016582128402291895440555032250329865657754049625990597777328570995897132256005393651651799712405453923689602095520702588013915354900400803627705742565801485383744533032306906891245581712655003208298059675953679889637644231197741083357858439600656763767943962959939041395718679386258949992339597194555864644747478253101530950461933675093669604163626263122927865680698667384147279008405270808330042541527001009113016623573272182942806492665329708387631122287829383235619515285620600286308021501148600938503319380939732749416104109615977540780933661099331212031253960195568481691497489240006310558228089029518110741277622731912167355295946300424387278462931375193975293661081630871815814447310459865997373863803681731948099025268319848166038253561704289983058268408094398108275516320803046125449195519384200232766911706266338218562992817547165959295832737831878543673476511429172384316195357785257620656384738154630984442791722679630815039703362752018299068116805247617376093535973934408187003520435967782274892384484707674737828923028860710410636372713869902892395335274100170880088653005993291144181421940102845124475759649518476592812114525598734160438770821997505363792364382535324648706247777295617906086418110636266886554094583794878016461704442331991394303498586709576630690892399577103434085222328236358390823318289553713599474392759409809740104938081072731181536838868571919906504329422697507911703355247534504436610732755921037393558383298701460552763434448960728768741703237632090644016556438354283768790173813088252473468264651695507766263941969156768064521709890961869567122433857839514961172082453003756217498313566229612262304904914274328132672025732742500885696099927036889531401926010171386714098473405053496690901295121665636454638761719630368974176328415396508605304212001553660585398344606769921957064344264670872392005434796741860874270525915392522061003236471269398510335279535006656656605105917876424390333301915622069054816392793721239284030378276813290139952986342515187812336129071692697773419179278905381812162751873187253392281540579838404228948117550747871647764872407189464028245385909271210325271825742787175649273206883875233292200697049449367626457891958260627133633183831329171261653024965592031274290954431819174745867428500711443452036254734377130099683558475447922178923141618560078810818062159923470302010163844387284011921970315604207749764976199095027230008021267535909037026370100944656736897795772749460880639910107196041547379282818194501310944713608337065104424117056569184248565831613334990093527138427903839101928711455188370577997734413122183872054444834750220707648776568938294148665922467828442880174994939846318156933882791339204045218143411677163796606724215283748030956944933043386417417094549928670505969514534626060009250403427580482423032534289247866840651950421662455106533731275943175888373785241472923064903174121216548588389823358584623258589176244338838783242992483582361035238952007576965991142664280710089150182486051729300940863318407372927412602744867642770676708015431371179056567529933621404486322413995762384255154704733935551050011721450699903991628940429488897250955526285411428993056818209511095201711509458661400412475998921331999992073972102260697243335885660137969394355583644094168804903025988062431140363047808427793884720812005104253811689112945645169857346061406995073129046457628950627138727345322470954876508183103344177605089077850610013044269720431070957053960856184373278523620334913302220827025352387924659985478344265618290010237533122618738925796080094036554375498308777888144795181751231925335909155985957850390137263332204222699769537385295670344734840927416976394538250020951327091619384459991466375135300237007819266332090144540464594629707054321980144529499411599667299959202738218136833822020082957105974956609860051113665642327193960444131347803530338668116874422751409046337820382387379800310393585929581218982305386042951465611675392806580657074102702007231552078206180967281460303706416841177513113174541277237706725739759216956238960808999676865544877248210145472924583339780963872604154544989738137807095255091066248467802278316627193240798281337401169903914130689404279111768462926900143349856039070967905121399295263452582092272918893792617957162156859086746283874840564051134648675704088877265241669034735033461027781917855062451515298347664185876930966291740550862208673636322257982362722686523509271912794079637187166839250353392028923395768246551721592310227551535504292741830982424723403987727097466756125589796347238876792425666877702545911800815888285794930137814007598496239007218890836734664977832275982917526573542520155583630177992887002468467872032080969183546235784798186044654519023988754141120897339725975376386203537175684792228738510075156227529592512532866845558990467485102281655066658145322206961464437879123757212409918948017388050565530512180868797445069294288023206128062804132004551179229291154591929576141866973244821639434297368064959039172303878938386759108866285923536452008721283495213284014109283145327466035378637088135587978663104494095493142225352210658250998404454806754753115959076580581150096557573847649237391676908222235522678248071857862856939417753911859823999358377046338386439921345856609785651958730569052550202546778603712394236966388319215884291802075971859516386596729706446320900430545994026706970443642339827341415073664743492239654421489604585001038626051016358707808765536713767404798870854492733372261060953889414300918622489338401690023899066636294956475122997021585563880471452500751446828229647203725083421014965043869622458613791081571161466697490017372175571741807127248892339460543485898749302322698837967193080090117993251403282545295094159921420930343810372990387323620454824685481173551018025973069013974648909843847461414015790606233546910695396376671971182006033796913356322743507408862982294571693828774509777545831434512933794836519663554376864324090094048414329299234639132639665433855194842011178460695482707552219657014364453427935493919459294468533878689503744695468968446726272786671100200552352234170946629031815320085068692209982909370193029554755436117356621987521367759373937954406919777953547816990146735827876851029655209463847183984872918729579420902949022322313924101922600508068324967180339633649630218317351556259560200509163369772037392841608751733871380724511370985972319778009311731614776406184609706976430170649449753947618078673239173221811097199642577434560691374112717216355075943587399660123931428692542941736832711966886430898403097150556239586302129920898898609138457962954294528799302095825839641700759225385614050889806909597943894220491727636803815773700704888348699759108401404671382594827919335097072200376710601644231577154278136546920935277627663746812394733319835297566192780615245061678528896049921591617654800856700347968266725270195200780535541763389157352603664174152833538959678849830599766379985578817185850928401223420332962543610871998749591673513939860517873489793777983749348258581502240831836088784476004497484595993421808489738462812218102250658780595604979812461296395521456030829826188791992193055994740390938156926465915664041502078944002742262793964353236372163193381519987633004805874574928080950226824287713011506028062233197863307492693211357672272060513371363477686643592105094464114066328682795199728450251351306498488316966792871786579644778603810822300313916208832403792528644201806434460380285437385318501835952584400568647193048785892925391268528323216086132602358334051693947660506283355951637834882256093022420263005446632477545460321330256836257123380310183708601914056703894889776748684598612809131649471250458273793623760472113806613977573203852778306165633127232604298802366162027085827402839660728374812458183887282170473403044973254634043897793262533031679110741854607182465660242718890431646951449124108003939463055764872528465854672571095934664445828457646814240664607652830159981727807938812757907392585809971030288603407930617403952752243423593977735055676294784543153817686905037513807108750995210193124515794277907875040017847094347866238390310355748568720237040692903861898495954884423986243681655836609957568270311188319280988632715592033766830296280981360292143785945604598601849000491968729293173630659774802962302423350060838109334978509606823223338400161923813562140040727761442569900982840647268997757850865897949160925851449652434655774640434344786803367527108138245844221674813229672854158815088521711389607163437069942076132109811395537515137259701158987231007405649157522786106825901291794855970794061454340253351686347367401783571935039710426058200611247898713437535188430521854291520119407256645490895924975343449600026036591434589677801998821579236503143133709953197985411354925963105350932050205494700589160067868924576379649230346195782397671502018604190716581882357928440665343965927153181148725603605413233989882373001854122375673092474584526303442572195490433371110222289828089710245037991200973870215014558615339870174471163768964690756385411618386076731529458906027830849079102454253525474543988705225086815509612092654900687667988626410631956268505923464484833775160015052894266723694332677496947653388732669006405822332615632464434974893058671444494228533230591448038725220007501884376082464310581507047947381904334167129357263874364759909794254097334238278024487252227532614164107492754638134232321095822167354033947589724254747402351997499025878579382901542983240638416359388565893069338805900500255116318262516459363542433742791186603763914273857853008568955196120054837091075022910017040562665108180698773859673373597954704489834620179397386225181279161293518430519570926773615793132790146006523359409560870944346106793312819261223441602639551595269477428566007953365502351728730161002528658239764761799023026329170514845886962527194374689767247642811802486346696201694014765174123989872667856308489516637984181081092598045106548753821230142730757589276136163370914962260902175629939481480899017480371172975652802873723689746526554087924491116900434142114845167821428389261082946245482062964339041749880255494785843930464986418522319166768192283698938954532017111445777377319749461538735739628063184469670131535844085017061026130902039278788334827937441450157766579614437750455270886897207390409704371546715080265403754690363321695891887715712198569332908882092837097281459589341713448419571510963779005052104833556676431524662250099270564525823853016754873592794182078966822710359397615165269210312085062224147584395664991499159716775808508061350094475459495054587772454081935021378829411485905654337545846330498669187364098754704278566261507881255595074094389972854898957780483406914059534399009110064037887385586930776982958442099837595486132048421225118425629842753337702858889999584949799671809267364277489043402875795488796263538969458821163411638760664933431029598905662720401841081160864108928210369127231471975849439657367479161306495524728670712324443731130859415240992823518149810475857892296174350266147682556756695230865470430899209734966829150347646176533789432157653539351521581035521066461156517350156180627665496324890928354291535677801604249691518711341896943009363376756695679070407714764782359280188855192605156871819796190601367860278238227888398449630459650247132993904493160267823898555436311804007241376400077411870357550087911808093791882783424455244138846639639158349647987778640443724745384423219886735322482127537041944006823346725501918565132408653577931883399522517595291947034259821848430178147384209999095726452055128761052142912966520793514600529823032981974087509263449402705152103268178954572752964679916035161525443684039105414206731524670541886654324657484763090177434065375471128836410021584898565771616239692730525435573848484007566747003118690777390341467185219945881963349105128690084673043220717836543295977109163724076085824130183283660069463129931300281899717113993465184760329884256891009068235354400577354355181333209784524893819838012836541220620492780579118750868833779224047888532899602470608298195722865362192151813346689221289119782191077501321159953919050733168659213388475324097862720457611560535901716568664755091018657306649791708849760471100356800108101323168889594323471055987306454417173507498639766447071929495481298351928558864820425027203711101958382760803249410632628317276602217228854846611973639339420347318896472506181729356583200937837155309142348611050329539532036814381049988937553116881428247782831578001336536414783581654661170343284565562606066726422173379256954864805448911524406772196969054766439850062246222247922859480599953632333786179834193603772067879826093724422200796665275453793421425070348028462729445227766907157409443521586826630102795693656831642419671567818631796822791050952107020667586073118988814514717709900086177791021863664185872958742310436187303803381170908924195374602360313045867191966201893977600404791314100171727895770420127539984031129264202696446746003039121274448339389647626297241073755236865221725712835291267289458406417665044391906888039753616541015831483698532165165904976689747420471842021595723255424736562089500489077633209358111998620834937243126984306427297279840653129607049890417882251218865804625932435704144393413444622770107694544095450014504567894520622937849501949389085532237954769955510382169586201167718081256251141001757405661552744546071651283639561955160404079605485893292718308701810552601458082767785690069168381397171721032738181819969329800369425931037137326740610301614070250323925619974918175391645831972085038684401506660066960816734376473891943208268654560754856194363877070007565656906168508141118108350279720673407284350730849109505080652255140483853636416845546587323239828537960738127589845277779028094627377274772938679503847085500458411835651456387971892513517888740248393357059052068036274758449527361773950545412113315889940870006328057974464120572704245042440499547673066362395597295459633521717132955367970414293890539097747421848382815877140878132368675513787546597431037735525865341388125488776290720316703419005113420883711403218252627147489737535788366821019718596813892583030816543496620964568508983297418101831746509551852444706841549007340017041954135996227910259327917278700662499911756433736105672814077601642176160533878044391617301483588740764117718209050576452895339319823283001577358404626539554901890070557386730470559132510926552901744994302906349278676859643333551203488124383560373119134718542182534337539089772055492092010075752177461565402515852000150440968500649222521525617872107077179460911343802275148072473402565264018176239048888509414212632991700257174555545556770746705587810077696394219163153918033395596428560281492800781082685127560881210774522398609169599547905316178807648395443295131045273091844354943206933708130431748633149950901155476605163107011744040706411003962985309466871708969235811962405035767268104696384574709740679791765154726101450137617479177889596275134724266069893293374091328153718287343958380023917352220535696096382507265781941372926334016212437457070655726487087833045791975485486119956400748905489102028174573749860859755490611252316230077487448403920468428430300317327756672826643688619732089997671556810908854406949647728756992772150827505952737663106373128886201146416512440921486951830340224799569136357735081857416627349190614667812238633410704896846119600959622956842348832087778799787569651793415216877770509963618005218273309833578458744567939404100453585530282053438685743748743252013037530159795444810584268838614111120214443071267354243067721972400025899388118251625345513108161226452902284838371662841611073815520905909153763009263087137205677872603370284251514683906868292568041795083712257391275126267520168902231938264331189527221437001340052315437321296469031290915581208539077709919012502399271846321090454896297336100307886696405874607189027349671247757313407579880488078906626956919922577464633383145191378894712663526783308921775046422171533522331025919563138175901155867760192290457847572510864520053327792872289621024185470114495283540897700089027920624302625687022663414101441553779732849278225143414145290484094343059386855258498938553134314441824209034646169175539221848544923434307228766701526839969379355385669578335185746945038789705603962494806569518531177526740723564700450659617517047809879050573767598829039812359028980229683589186482661871420777688966645628572177990914912948097337770975645073113190975789317457756338345018612084087887934408856620372003274628784440253123468670197579517977221904819672423652633409086780690585097914381674622441304982990232153973122155280817031932390157328912496241623885563798042453705793138430812431360018248932877515792399681563078164206744584914770295545912491192072033047176228676359961288796121673863224055418933150636352941117096810447110370841152808233562719183428400263748217749057338181517472936983244578077025081645921670758610968823008092206866889576737681208393664871084670913400919064486822231187649552582751498257581538767793839106994843923325370535763994622191536918234380641456998931676662550930152520674174780254786266402225788366445548373103866169978639796469985920010070351289901346710931240099964462627272329009608424469306301085776425196639762557941249084232938350797848779650404848651583424554629081257555230090892455521280352889502301157729412182706552196791129041348351174333885940421883243148420773912589456309437163044071457599605527309451036507923201627126344588405414540736545206785308344498709329606931172643889516490175609525417521239509046606386052143552038237768772787597948122373948994020215701823528877604641552330638722528388893768988359438536309144368897824271751782615556209163900065267287435045657294005728282731463061714537955496184135058050633259466394084285338531800226249232969313494807237006042564451467058543342955872537759094612763382086857324008480382203077542898267471596870883728363761269877945800556281704379164141529311873757701606897128761584097829103097340024802749796789767632547254101677044069747628245944302399644647481367008117296265406682138702359272890799584424712532814704491536618875679079889552354044282394675702697898298623476760608997989777030077348054250582360087934689221929257095802518823656542607013840681149434825752734793906341785294762391880547653831891297359656546608286460130220574331451123119888492271973051286311594104264530696913388320765145054206457512402820182273029498828855937904502258202462146084100073162145964262127612610720473480552829624689435168668631340534646788348329542070236329338610440089208089685552026625810360977509778887968606199455013446872785340247075132617407706172200240847578876829888532739986434749601014815157906065067558074340435611081166810168378103776196087210760334902481130131917259551449765522777473999961642372678275953906138383277922402734022671717346802442451249153675080805426333077087004493111367462477205488384698868770270148023803481312795782526036533832080681695444091023012222301685498205558413120432954132002667940972033393302830762954977607678556633040072626393774223195947790267733776229315228633000196567081684097679499592699059160592810352132565611829177293146247716367019285801535205768963254699167427591377279483080653994837448455966704575335600309544524125677683166898815795089860452001493790774993517716768963601848265698563451382682238620445511641269051145511738586980797932082222535671780920852323991418860106799647773524695088621419556512858020874011823428369079427841415261011438251788695242621438395906561804627468769260615883606702641480182365134246302803983327527306066752362251196743180832663282067046465938186187286445622681680851012050985315172365000666851871074034996292239719357337891136067950721561200995558998757527135667151813559702492920391120105090633277540889334118976368425412722790523251311900865747782204981962375295663970697433359851557032633983638053364353600111859399112407659563422237268795112699699401082352914800472597521012231840587428619203110317455507415526239109700594315518612173645000280469593890255141567852692901302013304191009097765088235489413202984987533284478101110855264085296993633740008211468321453780283254814978763458758234314446657838296840956869032738696385579639470533934818507662233123183365684067137351599901910690289094013946457621434903062256953850982049054539842335022098260670160735941656752069921478643653685589038147844942860785205849349169923255861141199224944806123674418994670588707099664648430254355659377977134105966983854764124416450313835575728881022044185652941759282604462418975240173708535696236531819355772219687621645603672832281028090941352349152672576478544521527680659026034485580651485401526947606056697424839453592391965924100584009449662108095353427417250740876517204957050810185591299233832155630835619504616752558816925771872742414738125799946447735499399595574358013324815762006474026545482125887350461314061685434954455633484628296787377107759006198912244371932230795377387355726005868099101839924540963029890695795217186155385505440593877457608125939878146774860561182355409663244695863696265715397844592823598233752799921252799200085848417167335697615402190982845952333399152311118084330590493628833325797367656576017891426966765438421128568678434460755973622699181183503836865544111641327079683095258820443273789444270811549052718566885836109505266761478803253147179722655840191927719419698433368887828828060177482960960376916047229047836915155120788837348681348187956972934647760684094058329008034326117602945825787962740715816613565346551881552860613477164662461163496909482306983669178560548703645138457989401583954520047922445576260017303585839448490318404522712766813097734990406123402327717267000062121434189130382693027387544359780988810851301146360793633501726181206627847723520098400539205761222856941282417882588818875206660062578701534381325338180226388649373214182426917645133891658103265674764145132260064833760988542747796930013106696957450762794871205431862576477002586178779504431293970582859768789495656593845042365697524509419589055959302275428881363901825444862488783330952006249639278809377210329746723165362278290864564902153467569372485624025951564212727639988872804055042436694253266674616368899314798518329641595757133241803626196739633840609657150932108776044910367052968874325309061651203588757671770447584792085295464742282463979125458409836898242511495331521719837797207823703407945005570259684547090307452985536238095578625201184519844069809633647520082911129628522930110023084497312900353124769736902189744364548744075983286704796646557002696711765622230640939419714684173893612141627289812446423609876250446287745143917000941381191476195770436699953076951798828779056446505359601313182898459304142741212974387306475467292457359278848836994425552413435717423453653398338415283552851813638459542991138322512735262503068787744135537736131552519344529403656921442230892652888070235703752362869638362133525359451259210039056817364551007119879319740876988233865418044379484248508192044247723543079561855118788878528134250398529849575058758494382928401010712487927125533070452445377974973034096212286804959378678440929856840332090850323756630361700173492933828153806621405976933071346079176488262289473583954691930730434183209881284922808736932431007599371275474308938492682076407006069236043874214915780050341166102485616580479073493854185026624936537810382332779963516888315990924075818180695573454231127264331519249468626143904353712071106380597616676481536220237395569362272103340113549071422864476325196826004779187586246981825038642560746605819855117713428034724368533630349038250234552099623070885818314196023565229268938569776143687947169239268853124635171629684898400116229220377645678030977966851711784432478978346256008326774638592830548488067083813242098327597771227516708414180883659752361411830741453332739213779643197735706691937800777705600954077281369579445035115716785072499759498624722358128112317401229599937442334666835156766179078131442328516128010603563032718622189804252763254672412163003117279430389425318730954156829581228285467286973206589887506725661230115354949016202756795172236295562347272297675526607621700968275369367996364086375902863288048770313639475836953417772842694337796577050822046486797186284270743591461338006318186594242287256972370839159824560849331487568715419176451353252160957372202860216028932637309636699252681861126004639406784963536021541595463966042859055680981370119519505346033811486176126095668148575447155556582609539128547505771213114820480618400237295951624809799584453947734349104391875473165042266288043173275469503629867442597322668529032709429729461888777257753275086778883106285070696188829256557906822858833635287558726029187177846465238049891268253912579818089771844040574079251117815603776491866239247631455330641818936355721958675534301747547372163504552056153107411932893374593902785286939208893175205683002414543453719103580764273179053699658531046853958450136527043354076085716290150183300644591746886621193227302153596952946429666563344279803796125689069200934690579069750454004099337208249678813722896118417439957578446432891257985927970696914808940834114232785691837848889625653871762353228105107671501140176565447014149507252835120187273662659122685115481681434667131228861133130139896518781960792296613409270219126545716026686916729240644199603477569983087756100547005321486015212526440162178880625163452461988864092205821772377096330859133969369220927979913687367653580241417793609013111449613762229013570758086841553206712809971672536836637885336941446789847377716299245127154337038086169303701482230524348105924191413978949734101295342169946549032381675563081549680080454215860211167999068707314193777858254935025965105911062945256174297978867264718783784827228037193256696030754037616818345975495911347192887287484642103762543073262253739743889257308046542049582914863152780995639762830682781567801092745373732211627637139261860362493703069411728529169887265897514797427615240229644273231457011730959377737583467610379280989804188139702435186665697818657395739944834438621572020228386499230056323992538481649131893737286817693975346028455657342262411274721825857032120125766673318477507514389966753565956209130556537330726266809335753959978939516080942341963132156090094289912778594902034265167330549716521712533327423810383744139646805936216211633785599200739703282763687024858727335035075218121765191793273924003444392437330074218859572964073150501534567446989586684271612530107057289729763632427026995648305416655341039883279853929525469550120676910331416001194731170596761354980719248990780934890614194174755491649520933760213444509957695080867557582108541622031738744585796593633122307405526929842679782597537177319335937896162558774237904468969815210165898439592260423943024146406905739974095667160745110160670351163398425515285403427638544254090283386944229904342062837244722823394132401872689593174580283128731534853581758341864219254787928839401376907881043742202414476466949620803013057175101477585820594729916248566162667400180087064434295793618450352239094224772258076706540088387553804973764331427993227024237623234399129905490272757580304240543667391802101571975512105043654285527706547083758933220101655122688080322084723336312512470257479299247544104585056543317928723515766821204666510343491797286567747666941333810594411949696575353641210476865846682510900752882975479381557669867453470723868565274352307861359043999918396846790263506328246850493252942520004819146581399674343845755298853681639930070733237145551851094153252308153123625278782809113149399102768487790721452849918112264655045530968924092548049810911669589516579276560799027197387257148615263021938938224130949696560753200199195995723095923003894922792399916104856908599365901078769601699801619737493256846587253347021207198879968550105492100862940510865004876401282542255271909386598352736514183816166206613812653341342619788580289847443666522483671271838418405739159905383795465304636577577548731584817417590749155764093531376731569134750967625940802717530993972767664175608597548047673609577497442576251224429068869258634726119694678287280487727679530266772342216457013481402074581660393341768771257600262902852730037178969506310361844780838651484621078321444741430498374819357040895619266464825707716357432289183993800965625807439984264196215980147608745921933012884993406855595429728242533614423718323273165678938305701417249275149040492311752022040662791723509927182650956339033341511554643777513746960648877282843029560901125629040068038542179318412287737005937749208261664972063174755204031556149108734650135902664228006648731620067987583582164150485050325845709085477138686718322116255900549699820327914774478694124310190375656062271322450027342529584396014314903074887849647300202231777544497306496686351712663599055923685421132242271642479656353658727068707814492676226591838263941452984715050797327808146022772437456561774638668310878381795716346695464551316204365923821805855174218223399011470033091382009843479503216844777070550861487730045797254765618411135127315570538093018757214469803104195277443585153178931032953719053967396124709789218480191534564554550892062338108721215279431992836900847491585239456364387635577867161883423316703282134598908287121422893977447870408136329719548814773890032509068025855739917247166811677125176660593585903930900349641706267182479218897816525378448238415667880357894805041752054063455852468256619695946565336410403006918369923726101376189055858710320057033427748201319217257500396202902734436374193919693031417039287961024142146178654683167122712040923199317268701832014854815975044422259699223737831440330030165841213764325424780795784208738726587145519264542536175583320055248876588098227924885702118731745502673203740493334078797822567295260826905324984437872047727498190680169779890429042295649066739855300387566436523313692539789828827139182326210564924981447469032723085479925298749505980398903139610027055065575112442809042252384403728184111404771276490850926040270807658357335593773944485171690236425754961554406931551022326546701578307192520003392182378664469469261984638099620733841996957749614360533981742943119350487482037464682814033563968162293012399668638309223856087036885722100136529214464290115450176571530834131994874490555264774031589598865189847876674209030026420534767900344793486147887497400758509755670177938775357463039517821823476077141968504078866581595107642568207671029125826544076567486156140360995490369203497988318972636708832498654299014474332559158424631771775074162912970606468705778201937074331380253690617701233438878334955592344101666272956989896380983507604068353432685967044199657916032561445553987068285183644528734979077222343909825046108459606040414090783570394098774456988219095615104192640144618066769754240603405101035457617871182813784275019462468794924785164884663201194628266849285347608095684600019289206361991812340148232000962850324314515773491125201041043273811995292882501229641716310851171535814525622160508898233052711506713846587766282943382801464831220598305391616138493045279907228330915038112902232235893746218019080811959344311720867871280525896266543882350747803325217095236209694168050224320152359543360340102544338071312227209688676712041720789976335544410845445232937254183543873790973100486967308897305280640380026179216539486290434624196934624280704072538165928875642045001985280163057275227949801372327648862007662783527252396724016125238099637002704462505797721446059486496252233376216822307449401075724982832662125933657432156573665223187446620646299483593878422925942030823709895149061264162354609756430489615459466583521409478599063641344958438410713096137067525204479640074028813638416265265003217572970916963811329849927616920131653217053159776159749884937077069164634935036015406206807671333280738099857955452815242423256292184705278531129738694724738657838895699494251577843026413463772843659724283926327139594756489850778501771926940690411335721886028665019852447868573565260949676908624013693084883615172974345354519386448672078082186806047888581064364831512806186350071583903088982769242571434246803322411006635684604936072046907405196286953096794032507291036289452860974475694129752937469659163487428558710449779578580698190293245763152820714751318383264422480594656809417940978347397861891125645511436686576669494492078448019176175137938483685471821513863035955451142961622063738316639494534358537815829394118160255751525207383258390823456345809612158315301436502935866226299372825243996671515175417402744590665546905994825063407036426851348097509959448183037177614074727782322589152215319961164403568831754449459273135039520209429382149871625033607284796831075797266802144845097387235639834414832847659733326748781483241107496360354415552882877154306496284842800808554234818928771397009614895476076195034051606328757112443987457241636316176050566696989180474557719563786516257357103806454216909763108475735324006650218831290667280317087211263885531789454408855843733910041716925379243408881330175035248345283971393330864958339587360017824319483886148470080381569110485452432793381575059686245675593896270037566076422249874646607299105593262243674829609390617685576300587846553560368253219721180836291542912182714095680759722672998634951131222730833256944980426472682566151582086770015244314721300757039536046980308627326449501312091565015839123641415839946583299349622399202930178261077843139612299896631744824322821924294732873195613539799275229983179650538812394381614966586689649701168398751836006695372036308060910053783258461171058146536956897644025553174637182935975352817565210162162079935953684642566256289552209010526751484457577894677599598365994772422535431827706208912720877335727508920842662091161232738730179624696297321016697479834345317655850697702988394128472364399894539692904018531256862438069855395551093838595613894567321126022690495301782663391518793437259879788450063463902299061301222579507796854767987091230592385460547449097189460640716819824322631087325969367905470716584263293373478620731476479602940653374419180691227471921712337257257858729712306860169398349717992101471342678972158714282999401225479223855634450644347556617455028694982002062458489123257452065168019328657173450265510439385604963318593011456096763026301001213322705022033460500403555318842914306715581869280211922849825552585222677133257076124472080975725063306186150318363755820204052268688575373859255800810297094423556251108393539741423425391599227679939792719708591559421029626479658039328373658757594441576285553986631543864630010818736124281410628212708087247691058073361355400717819497260315897624761171713540458641623408726283008570171716286193246595019903256849946853665394336848377610669308274679703881427698086762361397612929338500993376435550478458788850280720497846431271451576563339980303630403168958030514880801630948816238803111064819855875739414324915849059188443779705857420119478612316492038233904406629415996242642264613343831890809786115596029650127321585213797782026218947387323336389652346962572799438372470981082853418984751155914470581580379703630559553753450090019287311560629867480920506225673704196722416318266144986311674193928225409721068837723567226241609926866760372576664076974509635727586284691638623468558093215355474029860922335226359253235723876632415236212205442359418882022287496143597141864068707058786831372119112492523954776789554925451801222754817885719200610756211406123481350181512044454035201107156368511816940168194020193123009480352681285693685847866538242816027991866611293156394787237835757754806557383713173670459597548364013426540081228162673373014529292345799026841029968281313957921573484680763356699353007944527938710330845393694275619344346330016062674044739240544554616806418364789652058235819038931537978205843376108646436561501067582275430907473956697243686208868353398908495510055765892364619043667376490168955880253636368097081275990143236351378966074066011213287078040421769822875557765298543232590840615405940591638321269623463952479799403347049431950811919346070977447488422881783780449043999667503696031071013929849408227005479767063311137202372600866211385584816767318763763279281963360651363069466129846362498458007262788099643763299831308513107275430622654043026046992891935025653814773259896205757732743589833773178143207923987761164312270883280321203933069889258945349521012642851736502084378588969822440354049981393911484953242575852978268311310399394693573006376194700662127580909864659640192790080982351030573884604657667270668872145832964079057449515362120206667510899906680965906259284939881488944869522476344021272563679293181665338153649764906362356330162574250051834848889255014293394363635517220146102085681439211172586136529366978546996840124871458104433444054364015644002356445892372838734648834409932427170776611931144842009420984848922711414961043649764691379991193813205749048786424344969269745737797171104496711435974707299993695399697563161073371472806261932639099526993963757397844246100282233355243004227462453938815797805058952626992701294416407945920985786836084385264272653025944735446750340397537868535332772537884703428584846891552497665277486984975705662292764558515258957116260564835729322121630071240175192007374580557328530586127222832600906250652445048079607073780108399542908549524838206274366076418838593148363231597473891273089443545019964361234048759419983802376762712416314929073487200768984578957381559402352605313058568549712254060415533252498222507328632865942221180090896926803246348435869332882171373844156140329413266769403015219147409931144662316483984453409529460073951564654788410296891715221583435117133433231747509546814398417734812183048817551053827986784973578149911377674997388348639377669225304951898685380507658583166438595406910676989397222840187791891905816877284631318966017248867404602459392675026548392162851085635569945135795940170797937838709834402194412262396299489582425187389260894866457466459684384093783565580620811083923813201626172733994856778171031795802334392360813670523989985666524976429228502856468180250812034939296711914135306069549608265574931401734805345203474940829770312706145404740694596438601555629942568358881606286920864194895494297752550646144455073728896996564643739471150799224433685416898339102718563227025960291816617811010424056582444926772832921232557031974749692121809450121474240709708436874523733400575005925421475500791658213414985075060896777351002335503842375776160337657700077314489778347294414323805579536805820285333053423768707619081700446324721206891710580399973294542790829812689986466476269421503015628275665236971927518137401764423656072696471213010681301281125995610580535846720491380813993822189727473929764005694579540739449602227899069422431624127133300615373679453045411984362287574350255525671647476358388190225227027835034158475696784609492362499063846675141194508560962061060273038472063313298508706739423061764472043005914416388403303346183902477356473971179605905973750210278016962031330600260472586921419774807416492531395880468013983758484071398709859888275833243884060726658682587913445906162364707660053762600588238631703457119531656570938462440811954822804567526900295388385941050915828197456383583478956082310953274343994186554190213027226770258506929236598154469331453220504592130136986125724438006043092724070846196166133507263903361111666903339770391490446377931607324515007492389758554285254002228143914263707393115230703218698553107311251829644227663860724206506026094430955943771206068032378742089328109862641099146190561421936008652358334838573470063929672634553999146091886161135379373484643755331650971294172863737075671719298398777528755541759095980777485299846320857006553746700173452536106554538218485328299598950606104466711287948546160541571503561280681253661642818194727088678242491976572346365330418769239462357817085798725498607303357947726931296727268087192912492124372145073241007693086752557138120490882520752920074119486564709206404671417683868348568546087320258110492901487124205732268635162587877992577747278303398547351892899734285406126465217401632722220836642310747104166147638347630768708477626152150866403004077085924809587500752457583023391141886806211922602453894532323679759794932341441795247232490204157066936789803146752347138611377280008066795240975647047091354186542582967394299665749463713273257441335374911443799296939439835214837495904285437788461764757584722499636961103971916440511676937191298028309593143785125544443562012642779079614315751758377312230549908501048193392447455306222081707961663613324714132036925772700712558918898665018673745973946641253312570643881297871710383512102845376857676943196135140861543502491989078387823370681907995760299581236749571779133337872514199509440748236221701475233412572790710099028492457159448703366333103984645171689906640122322222865131455326805180621745434196909211060528003311165915978888009307766514738604033903579957451435000965836643699250878468757718170143715143341464982449346053921827405155489980982667240566609636976076214426663197780536806014000614126585183004607667902501310240887457544378528626070000143661186920872644079703313204653837355521869814678817683346550850885896987764938424878265094495560029903074336843892861106880757287004832577594979537589954209530945733506643625610015282314276935457993299205832060959197958071584762391808802608382236408370622648408326163937804230605945514850944369452777604799935113505911736473601814248702815633800129789608964388940367957162248543185222082463157194642200155626804386924799511657986741109471755665067877845299530445736865274102533383933245789820928227963725346354465178811623946845703830639536845475314342550996949675977761903670042451227432567316525715808275388539169001850675459303667506593970512646089153883378316747934706316510552004745081234689414555561118839690008997394772850929942237676845122254398412493063411928292071362163782382370704776217808509655554529168170808726701177862973387580910555395328528916992992010653710211319437106030008496735863667648867292372076119780942383230394989483674827215158656649183969520706633057834281801305653918757879676972155730888138542000460816081760847505643646203166643520481754984524772956887744891506878317154743618363763672131764933764841568583019406903191079881885222741307354094981666346807843241745156041081581909706815516012550860013168623754624050005301664593127167718364474522675334996277646085882784205843515136589120003477269222802906803922038273849072986756934332973796464377214972447979038909124243851803912885436685457481942807106256589210217039634222681029569404051997492537314331073748492273330737128238402402627958170250413788109220294166504919230275114779475631158824447815896331059014604282630604030136913403606035036920540348764452543842405997449823160002162574180418600580516540646378389657126292893594537089071024435729604125124709002764304947549372611917000616862587162246189030620662556679772511435473500235940560766962721242977506642647202229912620449966530683585640633598497534259983200964805118502516508052704651265692853708619971076617799237759793472507185877770884766498566996789440386657396867910352598839717196011756011647987006715121808391883536883797036994224948393017991388164852746052422967839735109655646603113523229626082766196787901892055747680380284546170340642591725557360671633685695754798288414776464151597984349330613694946246816495506158298939992154123057007590543877193019293192059909340357806063028950953839584636963477708538416287021260269512576539905645934293151928207441914164465460616591179622769088706558850250539544249729582131540831853147256832977679227811746343575956501906538482848057052404374302641023124617368860800443961611511400820377250590861899396487483323665315296738553609504802428320990779774610472999092404630255322890770979500948358760013318757677117646158693128255329419964941882867897596137478455173818762282577996576873883211216319643911420158337415550198105796160801438674085425927051991161526560848693113689635496454824141858958696375652360628942476833674177499427078588872718032116841756905279263316967881311882122745710545954025372434342785559753710252771500814701494867875341598338617848931284776488474018140650749960991950367693270908652053429327913467505671499816550165733817534952370989331927743660001444409941639662361235975704254605077099191689132565180635901503379656315225195156023753317546286260248068140325804974868735817604078586637079268059875566169948075332036138727868134007719001165363423996236619072293796339308345158748982806447430606279991134181956072870623495359090361974808244412297917742902558424025460746715835202584346147773319196955503260507014796066890383634801622462278024208931037338953358571396384809137596802274761061869545149730344160036012880791334737603625082458870531314050838986902490172286928276957520763481911226609466837344710072851692322672413229540458293894248371314649000992164550112417566328384087431585451540318885429233352540544804213677601427611629367932451678937381561143758399009798498146033707976074681114545359547482324264988395575569901467850195084617489069236992328243632776701490547335125563564717104280763647865093648146272513401442333027135465591055623495290131357276814945808686040398530111115356182047459210762915762415432524193755190027016829564939762901273333977386010684874240148486237712387015172554343982669271702214202310387644969698979121764851720842223847439389218312434757831002134309823967855880145614719994070306784380301266124268213089954167784039206079932590360005273682943950446267317379968710439702197300850037508869370370990321116958785954035552150127132948344671812251657226537611860688811249210711578978378942636137894222833092521245866530273440541820475514506872530446416518719438494392342955002705815855090875162187797481658819605362976994283379180206028953633920677756937844132888738419850583337537983127199810482680175965234950116263428729107922980731376059952116240584278081544237700132158988649176351855640737990265310093791487472267593743017542891452710965090596027896569324351386251127757122597463992276734292459821595634181217171910254948763663439516209549148328610205570305950037075347111267267113396981559231231552208884387303354517583699156262532225953953383454754807652868099189987328317027505947861041902643678194069920116724312411663542334032804495818601574362380446756810147431507049529827559364178787759092496507745547438929291565617467388855514343283455271458118263211196574759223135199416861809773728386278342560422418999311175367456677015901520795858937655396978393396828469180335637370698926450509985152888385968991883578503817384053839187524844030703588584871816827901743671770604874812165036021075522339691580193845310407174531430946133373127808376058799213975703739710746303923177739361352580998290413565377844232213913194888064176291751053292150500474369691155572293784693582425449965678298220140172881985250917686308112637490835622384768799101829647513017503923979306839957855859166629953894401164731640208602308827226911375630257411417090254328304967695078771386271161297617169827751548079408220269051876505403738999666938780640434236518599021335930436126892836139896846803125732771830889936657486197798841955064475397821675826594993971684119532407266454467125259661155233148784074460120296638261011050493570838021290451666219884336940597270249602756510269109541900574072141396938076223044807187032083933043518834160466301119478414887830497102577331917670522222030290450868805456319948361801626959122333109945957031072975219013875713737580107367617526609939477882583004650423795526263661999204219893901154032671279337236920673583752900216441696710600217949487452531807325927323589744478110567773559139549755126432626792555022179198437482822559660678984726412774346298750365236700577403069975835614542819890424673267116011985129853364713134315824262682455052922276335496278889499869044658241804539012284248191984474953524982730255146714748196696864939363208522754767560449651977302397281942265986152479639212149304862197874140609538292921766147368804317108870180659371834338554768487426316307096799872023433829829237899517810935948267572456444539932838978989819958034354600503068882165968802354287738707846660688472680847360072443481124319698694135408720356377195683102471511357273698233708831306071379212087467571370455310440300173091125473063172374261482743751409487030226152068291120910527350121336605306676246248752476986537574268126051565481310821242777409080462019619282345005620869741645453101676815197086994414266965399002128288477701632766292229601431170599945251050980629110987222156871586045495725061736464400347210191220768475958190912912537864685965928772990155836944186924782149994508096006145557841371757967941578103104772315948060736577275759888689899573807470156384475417023476934662376351915208063232703140806562152348236816989028412554895087104716378957666161150349003552671596218797770407551987760446750559115966958530451626969957956121071710129762629872790630994047978326440068756709126925161561928230768383310657950684830907450507547589750572173543133851665402431966668289026683759344356529559361503822322784166993771706238144504817942153219716898507279297537907884444258802058141927670236005788454337418590142854263475107866230789355623996177091865877201121253369455098489491131872335340611625150014665965121197015538226121900078835037865334573235392626555731773260776677275560762039085491442780946613449949495472258447347677604529543486512753276863103723335626061189650730027904603745468346518427508050219813035508330211413463499719241923862612624970378064633983746630743552899523288165827239995656958787223684893164688977154860286889614996495575220838027878882948934175121660599200258011077353151721362015103433781833173230565203495264666346089613432906448460053299951871407330799697190763979722513655432629535271287386962488737167384783305903457902783094856087814897454339035018776356497693989714401473894030631980437401963747194897696963182076553023455968534119970279853100460881055559303434925389597702950465722901326587763146491069348907191982124827073030542256036160083125273954098491371202178999440152832060563534000181832263309810163105594262508334063655032964273093693480525495802635698072520288208590071474450337749908830229258187878655112066761028488694667757744283178819371425608798110702828600363231634056719203401514930979906307533121913116099765974943920883557903574201025068720945551006708519895400390040165257597297996412790212030015538535690523448477558027731998450599767980199804806203417001581280808783332964064134510915824443167448510246358110299978295013588699134875256874104508652104685387967184251265135984437252120218709507476780132738872501487811838386760185999264784140496388094432051516639248186657128105392194853711091057028469328852343827705012617606509338410493695847075695899133217217904877326323896054764432277794907909902328383945159540648255280499281650574398633677900884147063762270427666616423850715986979303967565017328888985737405897432522583605367311293859905389451389787214178494706198454590705294445241993234418116992845203939870000474919661512244739207011800145423578848117185319125062934059054543592311927350739607917030543018930653069714595276027704488923463951451800200149375219127285665976576384551423241155468734505039686701089168521875346860783720831136074784076206253258054356341988225827274346665132244541590369385360313772861959800210291799700779180470342363790588592903560656819208151898658843184621038462929902006191717632660314457971983325471577654394201319753488519846596835835924261325414513003626642470070942767162499884589375426054488261240391158474627082386356873188187511858387639201558617598243895719567339477520894166078754250876485466621846264703435404891976153853116567730243883791767135172853145849362899677424913473264132532588534070491115396447935590165286409256563567398241422443726582749615732142075707762301468532217872669317184496371839067716124090783020464194829802087206368675403160495364758387174089543721837631548539238245935915982378747935729437774141571122937723401918320620146787149308841335875103224341750211304375701197716838459478526244205550472562518810752818957940673913998350357475033411887761247772821608910781183368089247514843634604901427157482513340358955995539316037857889384263434173397711247354597974617534469573866248681087222320244145964535023551521977668017888755851233466297102194583252545223109603762059218366710926863953328237991283380620804682267965582659744449351029686532910225605662963327324401440220008738984701789320874745799468375772163624000360329035876646985659516001371665268567584520231316826579103721208472820173950956923051219047324056055447372877870475857412749676165551889324932872314096102342279987620997524962862366107852472914807216059374469823106061955741964219339347213846210919259995535311011477420941383138902085073920683087645402717215368621314666594370993494632079092950665196979913904620866275440114078343830217759182856910794363550974073692184363581520515790156287832494007942819635747352428564527474306386892141285686063401104166449120581385358608290474812273065736898010488783223158235971738601026287236466162644752662063996148993887756267031480071542427308681095097268318188393639020754438126305761741831056961750690952153754861265934506005218501180431433849883545844426791401777428740040222246598851594290234079794265329340255170172914673124558436904956572413161098812378382679422300771598058801684150623297948310244207447404144800235490356918734118962369166002921848372968128900597054939792859704856537637360038693640878040620496999470741361678236646432878348236171537169179983246865357008470691670850755553124800675806395667615617159826635894153353011898340058994851438479378278588225615416092174707285309653660705936340451425467235849941661736281076355671251158329809015230734856706077258035313522283115501548643774051452294055780853979154274717943424496294084536007951953921050860927877047000674147415302866799376631038914813663304605987556049198218356623627548290647361663619576456370795950872853890372612019894082404960971618074744609247312104463038429894759744732276623351543540238138218879250386557742945270166878583123605383806789991387137139730788429176010133113277061738717595091676343351419156082273917326131381715607599428598622955810253495747836166353475505554654713743454785248151869425166660429233804371392505934132114839643195310962312138238387596293674983526645955798318898541642445142508675408530884297482713421346674809085845504748626044608617301714131863402547111835688531885213689950189902509881931457445327027482377418774001878326967177266682124687814867266930723328259647806206126739532672692417225221705934729167343314521328608296642082391769675617673189020781534868375204234150871605875041832251123883141594843206248000123030213438732128595841671060336686601547245646127719586209597918835846291515570141858242662297590705762526399822620921411362137951953202391728689481520423260166601642978289134302022791048275226663925264143048372674108071040124044220062736236000140112896810155396903886705985151366703710578511626774646999245932194360282573640087236605489635735180274536357345241185200652622375591091880858994179720762440860822437471602788618207955025631328600936938509284485278326833149667616948063600525541958939471924769954210103935357678565074386942607370225017070557027566898562556284548857337440818103464222104264365980728721002911505802337747478434800381604951500557413405717022017798096780950781468259402092368431057636913447323177453692629393434452404532793492288724732853274392407920958391229739939676288642538861662562822217025291078336469317022534698619056508008702073037564004967998998472155961407914029492157242744680937933068023465503139809191426456576849470153111724951971810791657826319193993953240806543636387701502723321694944056488835556409772069318478411552624975301603474163714725414495274324284108157775528923752135378955075347246355356115056018545237647576805165315469585851172994913255122083065872975030796466502634562920991845125291831682437553798980374445592911189221346491710450581294861910279393575731333313125119236580581946149113548846719097148717257526561369081684381534792709004144755343834493921668920136786010929238834679241572977086981320214963613183299584812679877183334442491053988749725485679999011410317392956083373362877126448941275317574038926310565814472252534742928767666932191643532717434579606874733276705806187011464463737492009825992186295368686726125825820115131659460904560009192613266661961675945490145799783486649818460260712868414833388087640300319743014109151831119794229429219847552630809180872123529660437029184108516603885818825922954810048234205251860716225459963056414977366748311638173945859719038515416191018716565484890901937625357698141727490481847544897952674543305116268339448121429954849187826213131560668521745140932766067055337105905207193005922891776369341453958681125977665376474932660663621838491747755050412592182963927226973260450649287971345720344807032920467282387359536989130719226426052053157711494501436033378896830608689513334710910064163245730460650644938401015106858245780800874618056597060651838166501118077112324000633940326501128769571043644283390502783423502946723471109499202786330106079838408609542026959896832795674196631268118461658446506107499774308636729731095507971745467859992786318147464433983793344960196811352387573764320427077303007653237410792923684490533448493670561649875210720090245927918037998528408344940587572869519996656352753190750867373286876269567484904633865208600154917621230169321209679832125356978396896332240772547834714476638172232847382467136951616692182665759304980771903943852124395082904962510599883766892230181936054226333820343765751888360918977162736262131093429167886395243504986207202797170567614333898854815681646125654229376317729052847975944216344422012654912302836207987918974078414440764299468129978912316146385081760861910256088458098648722088177478377428667181473977772750299521911892596455370477682106171383628169589413794596353698418037820323193035899494728846458747277891272122223393888696117537161733478733734002200419033251312461931825203105165030844994086559369995168831378242561272001451955971359646803644889606629075855005046838288024865040247718410326994797810006110495170531565854088521645558682143332778643970784516848742205553964804017428037588666974452943071251772951528857600131132191303865427357311207459150336315391585601786110290139806758450847139357719363219961154479105665706989967485169901453550935732565314550758767186743483852801298167819648863843225320914508267119025116588696838849635933287260331767750892235385462068473268885049830637029828890397337426405636180521245103043147397719070740441372125495907791264889117621106222498469523006130232444223914034829409052946123352857406710358158122303148822415173930612719599632355515530949582456450902211706482556614050360855853105313788070622303484971448028702497286132174376986596973225408476793745407471766451174489137868008632244881979229026344835201235356079412699828636737506376043452559121537041046716687029991957630880167839119850299940517312826162928639905926317803851578552095787081914637471897246540922891538879313759410861236356031940880885266088317433745407250517187626112103920271917522553635258967039371433709544337712648618274802118027725752435797242305089889561014442310551583968654998935138028501120624330016404571633761897866333351675270091743666463304408083296514165920602181228809004396526754110361844309896562210453459201984301695819320168646213561834890038229741922941036277653743064556794281966008509357567230281612247100285330569523768013098008194288799332604525407432159845631220538219875536891722198074230349433215509695886577107781735293023309683768276591995602129991322009884940649942141693521409014182405047639844324721731995823403990294879503680251187573255055088195657096349603220149540347044037144572597711376635134852644974583932350836965719315886817326573001898414583765331312529030237215642103951220630744159734724727834267117332884363233000004875545814499346542366193363942540079333800152480077048779245458046944043042791379821740969264953594544088552031565928733218796812990483413268177708430206294093631041772490773215600799593223495433249733837293017667841786684760496576346005378868595739429872043397210160592203478076425609792440656584153633984674977287043451067403727753926099923546454904183319444092057387603105149044173880370625650853942432733853295226746864440812542930057698781871686659301178691390182886433667852175074197962756624774522535126871741244985734203525148643539825870569885260910695236312058824875273009719091956619250695869525368279598059491748142048267425713099812192980995000105347537891850906819660100325347880087881618497585481255258408915550448799320225460097707252991611616546413239734356623780513188345133091664352818788959491761505519373503763428271862268071232324218558495449101279542481230853208670022517765277935648491854381408971747457628610640586366718120550111056000737306323367548160944920912049776039540132487277364865794451893172542825589541982580438961225646453391740970142287918213630242435242303545959362522440066132734467910720055255190435922628024878894591515594207116133125422147131154983162038163098093431208148270139229271480685791792638071640062873815284339537288440691231024021251563207423634824966916690074111685409139825839070077006723082111627584443450812269582096320633046078230501700778052098004459181433661307925040377749404355746488764125082174046063435036504249801080853544063305533878523813265801771033688941824770625892376454924218971336765359384467789333564339783774334851840810435652779032358099581011954529028358785042663681951163560956842130902431451307429432796671317113969623849723946209103680974444188226069450988450322882126848940557501668036570786524010142843383059707037852451898846120147369189769126423038860871531941661272511392338927566551421111264922417286934971912422352008408754533047753592353026436807685584384605902940869347263618259714151675122145576455897456416841101201022957688636998014597356119115569019288844950493957198937954126223950267595775642564914935177440730804742439139075480888078070786689484758303093219511399578224245376382375892445829900447705186154320861565132504929974525383508147541545696049340859280094074349095169780315933636493292495145463067570730488951276789695954261738297810224728007334280889900206572278987552902017671972704668053319313587770875133822954011609419386244822291678532872332457724860462765919119655161842096910278374101411509972542091431120238542989542444575664163304683608757032584128500592189322510111018639464185224787483587730032964650738520259513366511536504478628503893888547191523209713213733301375852461144339356210853228421546598913904595747655208251737791875968154604983494002587567849869835366442186705201253295161168569527036405193475173574710230464879160632780219331804670306734296448574379796816461327207046459311377713451544758239329749509652959185389799329285896659672575804719026182500058435421289879855586991688456179480966093654626171959836963812968955812929904057890809318421757458321434673339276785902923578362319063416157007934343150668033235430884108261021300675957503090402134203076612867999629175964958506046892777211040314422040369018545852055604774893327826347089713945657091141155580750647941510072411876549337608930869691374862728086697479719214606358284085139139747603376380709835249692585624435129412610679406684249803861480884345423443427632997438308934351198575222268433809102366686741442007538124941486945113505262621602482398000351629630076764796294125770753095939132007705885565506775576775667825427915796805514691240862480064249038721278658837792747321889315790142462009479560469029827817913329879714248326348575257134461407135817965077605468269886065225913593356489305138809712720173181227389832714636545246575083583799288264445441165218958364244019954647844959786966587451013118846650086062062086841258922266110070604329672403270969327001218410486680457638635274804429302243349311236011984893716795272747515612858718757939919687531266039188482654998003843928384082118137199671820388445648132521339221016581192000763752577086563694297527348738331832764303112358794435404177130033756742630726289162102959559490227033184016700333704361439561242027761992306596353940391750832085501494288364601990240933483848892817321624830957692069899808921725268601467756201412958693743385041750865674993818913972471301475287466249098132814359039533122821336943055173137679623312472524755035090551450426928172412053018328681575457909806494481203145393938763032113841303367170660736935750342711096461193210112366933278873096447673923817050671409908179587781323237940760315498390685727474874345436202491319670305510722161152904748648529791632609447253330917608356545826681856422085701526299720792419060429756317348757106379332686250607399952523839604151608594457673999658087079519063035114391886706714545366330977793738750931247637384413144743099804167266051233194640237304913098607601024944019106675097049738655981768102791739182722355248471791375148917724847367583266140558397088935817338938045106046822350807393118543507694915196747627356767420063047609168013775171032526279406644594165998400683719248569297232967192247133709415768493696651367497210215429226073135778900266280368736469405029238074980719558304103160045428478909086849553058387990022603979718780537347085639730660737761321689733885548311909330712985722166756538628037191620316404453661612581577458330449430410735740864604472919628461913178274681667637176201487461886375093472892923906798166402503673608220025023192875586858813396081268790398116824359546386896717693504924358078779140050126213852108348813336958719011474263709324142571653665079798235826475038964843415615449327801380090458606324125497599841349940788014150889852600787838292233719703548939473134831786127406735272340632436953206000368898478747722315793851307237670091316956893702680596773970513242557033789706451490394585599160158506021986161742819588427817841644889583762769464536192233761301998354563156342532387321806831858169631177861186237956701870010581109064705221117029198162620601150888470160933622411968127305517869801757149735397343920963633402387851018553082808094267702635659077737710130620680597126970022453731176233691467942926010787463838662320008386913019734529879081039296753667856435455123839988787528827910920543246485600314103510870911880363312731912053282869363512477195227897289792788275977854514789964438826858384701208063442381086660184209448898635385133028613051178719599765407817038628968039647859274087290207736786865618909446274840842361334079758334299728726128555509413757766354577431479898731772500018154157411948322394360055536130054915633417298706086820196002076004197493887351127784801909249456959085111934517403280717701843007931889664979473205625315411754123024274558678647450642431818994327189335252088513603191298422619381716741737301758797714894558134764902681338925678231023717535385371375559587375719099450043762063522857847522786292351681875310815777134529745574420008323913994661297093427581182044449477716628291424649330747882625498205917168613409507389379516867632431140458187364022992664149320126594034214442820555304308943675560391763164741111624193666464630643020255362881281349827975198113165953117647680822024903255030700782250589968681122803073926663856546881181404917732610387707800222436012493492585165622056403362762746651353958048225559638716569714267533716070228453762134994834109996954759568566596929985648822271752423488729479794547175235345344396290003301183240738554099197063450196031496360238346376119104336608056365789742521986796233985758758616106451625763728155829761475846865859959878754078702934606109265292025408477301288583753658155089726422238683415504830919996252015423235741703493977448893966783416227899843258049967255761799884582654704119595100570164185853257584889394660671599455956943182610814250391878984880346397291308130289320177299302359014170054630803583047702377210840969534976459330024201031104023810581353565256075370599194704539078284366744042695274986734829615539236365476449896588232769201575784874753272316491753588637540371242521871238470186972189181960747598597939327585792923116442028234069694331447174450296655005709320723419063894299943936832182879730420677912220052115820993105811332948135571693466540987708231380970484382261564484457319503724278227152830390828031136879330448196357058196238047760582319600429258584638513981001933333531499339856446775842171552530023268190376607711972666322934499314130456511647746419396503465651281443021915043578688751566225259303508808512813594147742771435411030606213988651388909720008080656262142555865846073191901608900027775663652542201788512064180590602563695649915320390434454060938875460716003790479498056209450163862049183874856396949973628419886949878138184462932168681536285180901342662400058565315712249083154324232047950778680541541260928098405653833890675136132532169451024240161685000711694678008248195035261435336965461914809039183381931062644365028368986798102984739345204340879715163626580142884976888667557551673946015858231988185854624340447471642144364722104347118685653788014616997742504274318466321518680237660281371798622287822840273953624427838227676313021702061255765813228138144937258663931824165830131398013049124952061999663872506654277423749547856637025064035626032772392785055624089801650890992628774185943589616429417986345468068717260849500518722203050866505064522038263428354934989735378934508331343053371561247539495679367928959631163865014854626365238442277501220190265344423834875702436958133351333067393747735162104237459762094150956041765746873486920970339785840172793979736457403195738944433297746462207108829218706199122258794873377300639860902866727213473727129223862188228410976314995637062988427903075647715374676143192017483091367705280120855864116596108166508327988824407773870419798368143854474954387644234977225133050110105244256129218789941217375930751125086883768472157564485211223917883193954676247069160439129611656232621465119159555569574090493871748779044265991524802020783292130049095461716794858727467301970823901650252335274095543297231943657399087312582799411022027502716859485148156293722277062411680800216482099924240653692326360901573901739607277309774106723154673742180952751057481102917216805580454098281834751722082050313259827003957983617638368504925012762569197835613543173345732339175951360017197790833668905592858988971472273416668842826991811776277483057364916051822456983195547747108325313455104006720745924533575940040240379842741963785408753544641562515865104745697904291063594513466784322750960853392743391145557108786231047862768222346181497878215871638738635930028471364839508948702915605123333133586573554852583281121980379470506265824875977025788733016300542764131961398388492133151614322730890843873431993880874814435393809434036202139416260629261723592292834117496851957463225021645999452452717390990513297268834607960571804672642362467951786856229790513583484005456569375636934539048999681374727926343070326315258709006780306167866651118870781746757699140175196617257613986245900631372259084458099581150985554264880501676171561349585794525367671305950909787629347794748073451108100767367304318234039424159156626957956858476982893026177468821289622860830894179920210331061432403951499213972512763321955442379634981907764655928858429651699221378995090775021155860998999087146029370153343412129141027581592458990751056111724586443663002077627696279069145439634633157132768545851327753727827566562131668484424245364475631486610976417785990834742894834712609740386943895012497309962528864914145333702678611956107633933799673064215826702428356134899738883712520224875870957128940525758936312640736118933179826376807833661034963747482633327502929371750647464898544611155836582211478872128190872493958454629285572960587555605002409718288273936115057191402300426753780252810907072467055899302324229445425304270458780808642183008051989074084507106523829664293712653866005684349508578424223329394563965746113128680375246162958798105946413655730656330610999991556750706998767361925286708065590989641239509026333466995544785704253567899187736649968488852228683401156978514048522639634443255665702472290048286359939142463316072850693457296355722812522356283218470162659524665191234595166613632734610757730730391031595836085178813892349713564665478140028681708198716864709293596291514536311294788024303375151762042790341371631314012486332327217591767610895494753685965268076929764993104749559352648688762213427283695957622214073417041238514194146806791067872766702825643989536290558240570298834680189153536424138141007392465639902070980966185676469292943601241666736119705338521799977960585691470353603218150944715413711842003800280491432166037386711056695403267452152774187930196343511459156370366746572254234549303176167082062273420997213850093760986760082275447661062631874598541280665349862948476146435269438484113591004938163154929657661239382303021556070406963523612911250550064039266419017054332561476248835729055348343808092209746880954356306431325748981119110429540540342823552993026270517714126684234593970968012034439328726621351224796202034478677240818662543467603226491053510637698267203251044751756123367000343066739479347607055659802110572248438569775853857563794635057271723764034254593808869452498137516866771733652851965192985032275050936065702950208759457886457844099233968062557848847536943540998790343980887248663143446788737023455923468414522742928083969885952143253049846564051389260978757944376708572694267928377598560413146096771804360009693177712243855209626932221570980163502726119727627526721620669213011324552070660017275737316225823101111210206058869973685486622583695612236053702725323201645282591062392425186501427853515321954075521501352457254399973763038758026687057922272321549773191578347261468568060228648445367143580712210775679094858323085099128970140402127551380490847606801446614053365883061947860854595944563002559571249376901789794725519467497772174810483855002643202908557627316289138512649230510443970395593312890064652351648485067677469260494680659888005090684752319393474618139071538107534518861896218927504542003467691173093663165677793536724342090003837181853524375871338664919049938652221423014105856637896162360771442769613362613141491289011369499638972695214415930487776539928680578720204203141807671787705668995669983784434839052129101640965347928181199711264027356631491029619886542921563895245374052047629548292051123682372088193304135454060983742859985164402426284831037561120102528708041014528760908386534198778483581206551366377732748664516964142975015050989148213600470654556816433344685939511988916942210412584009610454073985436398420193952040198590283999490551887200594096754018277981028783309920753006316536488830296229878079814068991136327848123488780804056489805641036809241939313580304735986162459660407744056994837147295408400047872885710537271570279391816016526731302729703439492089477123595918419905204993666592358472050418722556872222819060882258274045519929867351359333853159793878555803206335194016008474150000748877926521878969576438707789254778315965731613983602878824195594708639587327651478208471634956352920043714377823641228800405996624163632622235041156464961842952734499780811551657299809619169629328958466382450820018893525216139266996638518029666744045630273730963408899527202234325765415224279923110062090400359132688118488452512849283032095443874037551876896820371167053609799732821650761953712343534153048244528646566542107634398617341824740300203934522929664505128617656142584771084000215672467664612009627483011531517572045667807086475902420832916404714706981927695018405393270574144191923176695981270861294949826901186947289046073040070207186665284681626361063646120793587270085630270154539880322837716057579489095476238334124583356469196264428697795533098577713872801806724761010700970927087673226729042958780291121375714919303155978362829732792441176903566330108538032397831144365292547660851779959901605991314829641238453173474701417174236935802075453587233236417972753046436572728513513814796650914572617670604877182645475056127818732544055430017425715955214902564124679172630129560687779540071678284364225910520895947197276583143743729943016090123195608141892891010102458788301209741398669377236660449956692557720795292497187354312954774857026110647033470636802141372064005238349871541004117172719788026162317929593099967074335517390463078455642044500866254431112768757104185516075909074502396248379963995912329956161666644106039394691082847266454952139342536202253998464519473468849928198353571912354807724558120459463080752006538016756631020040953047967924658885586234741125425027714520488314918594898564041244761255757124423400047902863431636624501653172541663992267467041836956455635512780055273836997047530845344435953688520636559935203166530253557895828947052292703458870998734782628988718637459689411812614305225507954804925744846062242252191084174008949810638048183001703317832439766727480936939692061390460294067332367599868618562431050033702482299212910516249209438644946961574623740086976062133160826133676905433176144017508672345350788978113381055888627193617801859229312526844168646160191343772683877955216811147354433185661527812075439048138991460387402409096006316854395470488380278955939688579500792774601948468453548185356110472193361782009342024609462942352381417737431160889704612798059320372859882722900867392894623820291788400727200107138971296333016112456174754301094726473278076306371049938102953993851779788834977447152311755584377758484540096393135094566441491756924696310618993433554660715259199158600973740266484652684218232384966636895977394210795537973145928534786742088904547425553021078515595668579344297486338889686364157200374557431517671921469944873917135327770059312449768553016528359665139118268480252090005987444742531649044763089804669403517434495051437795443282117611894327427955755837254456768657389877122211741792357121525794509818792808009770665300826525575807584464915130880810331053702721316613273639999358366217852257295607324742683380013968837988923454993476211136316717466390018651348579185754706919053118803753825181973751201742458741140779729081221713768878942940293993074560558001163216210163769018353545924276901150899629405209910262286467371874417136962171235813609390061304341146426034034588011862185253724112391761199967738871754014102863052491664789430006918535584588385040301119511638362798959693151604772843420155993250764986231638545903855352769120469205017431655887558807669243768529439633820826896380416934466486563562157529278592154321612857296233865304401804086463177489643555125548266229225976855778150786141894420235649029422430964516788218290826273250829045897010210336702984626537226310981152482600255339441325904906463105220243096132850434890431209377064613847283547154897119914122839819567299708415704300786870883866772475109248563736064982599777573441898161164896272850175560182346302120214884062806520129968057322798168597105721613326185293969278469968530732381336824645469268058881057080615355951497748208120739012172015612438688327992670307679181109968377928636003205459498415956087191637112513913069996992855606270617744105607636828482914591149714818590832453868852373577388200475135087703804281883056489247608762610359113158731466882157313035471120685885471965065470491329960130767063174853698253044869473909695563165469375969502356173771972619137265429185758568312413505279679089709930583431108253217312484130119458404251976643676102615974764117778650494627271519683565377192055817631768844514077915583731702719389121777073659864494697651544774791261761004782970531622550499564431860405118207560095088482482029237601727909349546728236196303588933754968766105818365945704231408921660466099740265205584187800771371876238332429346455705188352465966610253082462422655490208428952245654221473151200289324943307897093538838264148899160785019954620695576255773628971338255114856101682270067342095266555374067581351793446550290481447461139612171820985442863029553117984864401173892810981592994977877086031871387717455130565832241986234898905409474459618381515610176754381391627040163530995518633451724577405985801410914635334743066893625806240698091667692527371637497863699690669352767929556816766013470915968662723035577306332315313691210314682574440170762850069209864818868718840052407937872628943347680009083796359562650522777233178024356002510210150662773938842160204128331594491331531653730721008324016696646361136617158044130196427488990843259293812739441342161799463357645640793305589092375766911783310930107909207166780397629998250452161849222150141319587621352058999402659190961309320061040132577923858951367786536049210842250013402983227097495738584325279224915308689545388734281582131754335906893052495517664670041471791974040840565691645310005460372492487862724638753767681895037994615443723175274078486997101649315581147222423062040336171960901545041698252839800977561662390131384828604455856315258539379750755282981246834767436665183089186196938175955025742764601550388364465831175495209648285854922426802300314317393976090105543618389821048781963911422928503701910096116823411313902299260043900774579492365369455687497253524297142192655210345850046348215486753831364589029198378714408703460869590409111536816877015419713328191536072080521258379809126305375297247776439366575719160010258303926169248446917575490841154287406505740486727032187301831998660693203676084379962920881891698597215580569496351505162788995284685975322013053698587255608323034373550390029829052573458325424328830248149088543314852355825151309149020500262851927596367496473399839468831710317380941131701351224506811365934402298375787305272931778930560748748019595746439852022062903108548571857410397007627831546628463437457337778084771737613936909346248974413050273584526343213372512384342576236899342833423009174979176432878360400272174052918923109922450532047859824098942705816288249469742210367443754551965362159882893254776054265128193868406197467029019574651491666906436183770784104806366366952620673626508559776993967674069339947960283331486947023358742337436144656374762134891509037781856999546675585480723023044050197101322512606835437198651370834365403940599762029087253441639883055565657522256662882425834033941714714142675909300922207249773741261700425875681438231578755252428498727069068130100744212076592956115532356627100774999122512605429310846618637830751120856225308025313892211996263485611174892778619128644436571422302693790231024908086139929121412140457489974361418444188980006245162313342558268348915671555817791687669803868126272918488253523565106701025462549091533024143246535886125870305990609874516198558425713780843092246284787300472578955811140965727452884547886877747720326363192418914116448274577680027610867309750471962093319123644533214909474376017112772571701755793564359646019734069781306374511975882374158631483752770302276437248861327972591658625970161685786391156293588974928478341710832893307608828921281348056622655238569977226554616537668066252199093676331145125180012621039078342220873358666397741455417356216332190580833286237520462032502748879218070886840594698231139862011177158363606110669412250294719046664594731291219630815323511679687117011549004018105560368742469655853929363173458286658207242716236327816389055905914988003104882291262043606977638525076275743706536563603528159203555098656192652465143937884665343172644345528044725444836707274334543591694201737758045081115897869801191669110691297170199519003027525043618405711230730381549399612924048900535039172182047953475827669894011146596818171753458589101289590703402060099115970057390857663134653623567751018425463429790513103963728394107063607127933189886991540058379900049967707615175976419737833018368974451241958977631203036270351939240789910576006116690875304414515914994024001320373915225229325404952784105239129380029859848356128184619525446834412679459973783377206384091172090129647231840632877440400443397664541887605782009911106104455144574126654100884964889418106266683763217072330502825420854729070721366240244385142169817433064772750985628305390054801626791818753978053681095967888972768228459458129589835218736429322339680069497775976863926490580539351186134492009633974343087939018123726384227840882881271122898268769167804131412935246944807769415936754026065835110374204453240288018169038408871540849720650836689061297484359304471385854779397671295249545822976404335845693245320865888237507023759978239980334885611863801941218444050795117576637474200746928309224744244988292203855797294035374919668935784418108824927418893166186299353438563621953135901157628485390429589487546075222493199740970250321558651870922986020885253032055095299433851932668204976890700361758742599138118784981113243426131646259627473307291096361460738822376384996429740643556996044529687942346866777758486369141572217633412364052235467304803644660120327688925325795975198654125594744508005136892040259967719603703997936556303644186461503721182544280639952521222561418119633846415034288727088749335770202234271984449317484619430349275021600591518295636807868480754253068933658808611035227729211442184230486636247928553101742919077493883819570560691892390688103426298641664403888228079113634011906964629900694410215871701629396948714661667240680518301069568102691270406185708299830002428808927040073160456809237338129676318672586693588019089415331380768670457251468228337520099271589376633082314781405744762066962965211223065180673932460406838604873961199071114302287360859474341643003478336176361018927223244229008158223830037782716982459076959053017983158109178313302937614982122911830999089733976283449754721534709524385687757391987854003801383257586440195266830761054195482163264362878153102420439795914477459717510138782202184231125279910891857694733972316343532122339431229423243768785071713145392621442619689463696336380889271722824697197911216726388584160938671771211743874415400787829754694302185341092002666169158629694311991383662673160336173528013959135611072989562033244093553912429302123837081369996088432091742389592658858217012180255236333864841796730612432440234167250810117891379849985233759052292124747849732416684051104557751550095689075284482361105508659196714050959999168107479206902320897615415732499676829958228454871657552711335781712610258175731639146204664829501887120924575324450748699820967567479723204644002290885993113365582535592283387059732348834319258541596469668417225463221101735782864719716478313921124895769868856411830164380824669939405843625096920006622612677760638850297909349771642366342865265439862804034196179340424678996318001515596941033434285383832542496490556489539848017801070959784578644340666725940224080865844906682492800462695733415622637011748739339406867409153116150412624205287304812113896154020787809635647130185821193393003659596717389082783351851311575851044195518979770423198841675372589090909637595512768993407964889972463560449064584405848661097001643855095707316979698053655553891454828992284794722509024917503136167580672727712548479382183464328602723575166603306175466050473149032150427483956191654747897383918290005365920957907433607434092906895332052250805404741012920778629761805892661145381202154199792115690730955456809575379415596275980877603966873023781214915695742020284160499855398256098553249592028082028385453555294068031982887955345782039946152419323636417839574946130916621251687658510953198230336406349436542343424431778315834035729105039416581527331924202663868200853626354199819141076965195253552766451371788019338800103032638181819632098604730209075537423788286123606930807132842470701044309524136224953285570179878528265159278040116549928032936306893945491382594222148096835077592883255780652890925140322905009396855739340466920089065803160071930987589057018682893202590974692216647375596688183524601357332627530156338164869288854670629751742866694316876871297842839232284872950656435348372311368071929962832915812815691587896159757367793149479251187055320139661620214535697180820847148025653335382092919446283545746044039684925151677960490715176356525745952690433498993008383861503097865487304913653421630983451699078968202456277699581913205155362112751933214924012727135853560549958899516664362277487862053344740147881461345785402863098161870445970213204349590228919486736621397278439612281765472018049805363349239910415901347790735084245069361434990912412174064576536870471723516109669604896214551643685207823036928030200640291559693701567287242973921630289213431552677432624006269517048253639473594613291524147732365345618387231904447236199740973490739996342345463188571061254391993848783689596274018466150174072838021573847444905955456570481263777006675661249145951169364878498365940636366924554825320630729678678363830228164579552975860260713197849579576356644399141553956213633462899943206378052636609426048382385090195397980377737247762584304052897681592704179765831495328817347077422730293942682298692468029399803860948722571695273083865764610551682517973833097628375135928020200552207594637156252005375400854967502924988907276482592131548746363713866666964028754946351270644978681208239552321315721116898089442876243170211010316865954791738011078715943082577201870813343909568411040713373787889979034527599558924137251480633897006309784886583719898188553226535316442105503158658144462146602241009092617243571785646274254982272199630148863590270690350459065911244810542670101051356535736369882630431826619604099722669193173084793918942788489566053365880759520051741662239340454382849383207568102387211819778425443331587195807633170689853186969629379213563659238280926962203593373997102830015481278224698898071287955149078239996647162966280338440499407120422101902301051011177433867856372078980617665454637982748065603195101247203726397736637072008721076343903636123123833936983588226016146102037939662536831396837828377979786792396939776255926366567731119220790309221314481277580785610120496284152196402094026952826593177193736300380938961524828434980203195574065914856079596484340649416925725821003191650230158865053365150616659920592423102602945916542200520570670215437918170946363988359604215094333665298539716394773370705945277051392493365838117068736828806067393687881165690909862571294756431746891352894863143678849583842320701417986770280443158917915901001648465312059228251489958514996372989569727212800608414024189995469575320471891533779684352647911969735474852060830602231904518912562029361759906481424372239219258441911270932099758935516954652405481731242810504433709462068247387376625821073476279573869777058279063986552377265360067642087236376383317704139987690363701943705059162957921392301752460574247624776293964160479322487596582354085208048214891790051022535210710763804011006187816063926761572863565370108468569500995115868466155537973579921738841063083581319447841480127975336739398199961512314438217338637202657016001497344558476786777881860594589366604056883058788955741171617865285869009523377725370437359832747428807804847363111621578586761388063990790440426891642118785439617942728184535788673362918730118736348045239985784939151968354762239566167408416904025328011800071380743646987651781848469160169219494852162928947828611514523180469967575135633096700726690356535480835548460134679891676883181908279413993383002277479805381152914036704328824419909315946970976896223524306776972238089783523474981321605534242770712241931071365725369316755508400844946787116072726612187987514719382751808305018824636162935355635685379252245948229817251059982575733580627345359910135547222279695639665086047474579144300606048260112018714143542263195965738265622234641684472646422105067925470789006422425953861718423073258141038197718090282816279738955527490125404516640110868944992047157925893502420287982284174524414124350619426638583230163861152187186315423596083853680388160154651524688055413250387843352416082320448971265188157211857467294151214813843356214520214026160839514953550870398863658943201770126074738189934095708725630786468671180709232392422178505115297657476252609020682037807509216579304288698615296005998904633020093500382248709893710400627598244761650651114835320542511163376179386087402598744379103422596027094692356516898404902600408939251648088985595975727969048727206626959908942455224676980277778162864299242975542408826674523187883335560510135262927797482848227919773818293768232936447950194671530406675806940765944688268453018662579205190257785388354577029430819118270566487849219629031700291437417643375896171746752702752567946433309622719393917877356859237849823441271278840084330471844412513198881363294670053542816314644612721310075269328828610281391608222226368282156384671900932425603503573566483437385976345833661636865438174864729743664083069169737181306104556992394863037171914745074257138856302350503931702765078834846573707416518094831292249462194745725023729905020296115790627783696313155657300728495088636682987753281649387890207301324693538066864783829720717800934189174467991813195769691122192551346031836370427618542324447292331129141539356841781887592280501462439659869987329336080693569941126708871612908464831591941595769100505961275390935570099996806935531335481031776545548293481592346142327111117143651540317355354133264984328687140986662245680644865133353861845742987754242542038833831617326456701240576876149932809121571682939501083086737366464266483167086826049946725438467739191749758854369474867161498509157587989503952554296403093457130864956766160119953667675028057189694376578872807278156243777387682465646728977772500506506997537572831024243870185459169047486123339340896913487598511072657588162420052181882110230871906339623861656395985906407160301678004125510661230218784229014234133544253964028753679235111156503269839675250672784523352419515365157918031466433484851304371119230778388080371653898153786029218115672402855498150537750530453469801721214396113497827516667183478798454651089209808439049960019601934367998000092799750488312831364052326455259767628451365640384164906255142499703949086817426912392963986181940073252394123448433037041940332541504252150711471960390325905513097704167575686815959657662518846561946221889089494422269540774759864495808117123000330480530991202330597892381203993279768150994826501533929476719376841618306276267454928166199676472876083081235469554278387057772458764742043660934043209056717088847542293423446056053777432878220161411623445108847014423365126821674231613111506386601539410715158586211735431140562487894381353463436677388760710963248983494926817118878939280965522488438231391263126879939896049534303671938900727244938580851943463202760698696203660354677456740920780781412200873353286776141030107343073074812839284611300173098677344041286316283998470359160332432437694586762191847152214516170991296808192709601592353476996538538502610353689716541403966366389971813676037055892101615307783044860385454889469185560317223054963841980768294957695678873825699653324929018592176020943263201975690707100405376943098726516497855009679958614742834428341577984373502290959408913255466246290741229469819211080538914151203091498987306316069870825620855932917780480482291982080908250128471212910995332687579683560599160438336510675346355930825663776729235567921336667630496064269451928949043375070410049442879491269589745728325556582550475385637785588646425456797786136686753461587328402658225567616276791115515013943080536302574371145864785621066248575980907432399238220893280597575831570852691321354136153593052209120546553313773844886327861832657441791446021901485340911158282557218300905013197228234788757898382120301761818513112630794843876099921014194224163114959070618769759011446542327405012284335143430707398998794614538158922329824227424257153977203183542252181719921034869309308356379101961225922344481883132150304020984476977934173087617560931226216182999156597720607315305241676411633965149688269555981882488679280616671586352705869252437626391391250503019992229956297862970958786151727279010260156259355327921482438973805182192310451559728153660385447742454914313117080200978808402822824639066150093074198323322666675960865860827455477431220670912797392927904710287000604963465778211707937068593666303841659727279154236182397551107197461925856045803383749848410602346010116576292325322998982080150176101847757209485365472238732169759871774291152242099445090411111000701073802673012002281767958066467840470477291743611883306126450722679054874405442070500797218637108958842933545770533468397308458219416565639877074576563257612020708844107905775888945834517863731331921380008644068330512854978683442118799969782234351307804650200743147953694529319571688071826548922587634520651837220901436290601519499629249141389351279614684736468864576048591683696003526656505058346215486921328493387418607775191849195517375640706890294383060599968675536470949147290724181357263168582443743136112566359754769456984790634783894999473171279709985073294809882701297186577409327924913075181685494337418174591670203849043187295402468503390508117852253895812285485409191785119611555389067767068491425328510564740412811796144102467930391229421720816419006627032593988332760861713153874130790280334084487500498727820175404319316987951644961400115847110666738412356887346341353993538320938385341750897962283417251424782679387097853166201099603444129106658623292656894440847458773241132995365603076925904387955162719076455059063888714695123816973487790933354304385049486087126909691403259606191092402111619072605450511143538760639785608072855132551350823631433409941872928473080069219082812826127272325163854623401663074013628875712040953833638067712650144644231273548931258505533718821277221749414937311470500119853631577089210650763344083399409770085815839841320508036425049568529064124878434289913556662344473187064779174106562336515665253470417305864182987243348382553037247909783047973904176211057226540665791407637187279610652533872629653204098359919382554968579058961263456940979685933162660304230237296944130276011172718938787221784030771033433689719190319659401901594158224918539476600065951086220449033392664686951305424462885342729581435258721941549445388568043710497629725214490947927179856991520931542513746893287701710272029874414134657624931575163844246033129911343321726898039424879734977689376667245312586761975632535839177101427638642415924041351650856646943603435629224683287069450099352476412921204082295547127211580537206753852649096847541875199707498548684441894670566098680079395679785363290576297608367373564390700179354305442952815975525621664402651608763713673087515492055620760214142493451109320202990823853753975471065818127134553166172116112943504221263267860643517425115405694671462688068825072774347768947921110044349943933916432982338871950850381549110129256914408074935834620191978046564939469106442181917957807899228843314023886530189650319914227608664655809112832587128965897239827224108600199771778428493721602331482147903995396881822608421924265140827833873706129739871974474937005067914502387937120704473066415702234495033885502102888059379835593930616301078989939357656614036880236075272934457841280945555115207377833603104365595199725222532386770899621028052785210576867213117003860557381896655197328067508567761199484520102384941698601282663532929077377162995485299151840147809205298680251818133794802884996857293351609386047415526974330098160509660530208573764435084929152943252239610512261841344104915877690825646204325028852502656887927634484020129999901865214152242927728423362334185953470198940560762784904665121493487733358168427201188698749406326988178485227754050637103950560588521964229889241066824480999460038480707276917974534114349558971990252630198120135871162235915773190544615505056762416585895134705630899506639710917145303988762763641906972790892029924699275620794474983669361839945336688307777366269659751911216159344488794350741161523781679209726451057552362060142821609803139548230243645799235381625813377056634686033734721309275249954952423517358421268972370855548847193234305567483307755589046685470608869735750753419514821569309635730821050514626667419854799262573451659875985276400194955824425446368851312099264794515057230506765151132830598269262528706888981598854881163209996447329615468921689902127504237410540811327374172828881014504931507097765057895126053452521837222427509237949153206642064990431367523225760313353394772009170888205418601824625733248759484796549509768830786316100797670146020183607441274831428469626234649003000632069884652625316161314309337215596933126515425898411710196913778108739278726041703099767006567413477094581016880433859285976881826054738470998317349454643011608217012763666294419340404366503667492003621945689283222759310904323039733559398992374756507011277938958494777001320175282495912751957311957337220141521650050901230686697302409961106744089810879513433329805752767905207332686486385667326976099301347244660758777032468143495219246422724005752796944352529892219605272968157521636520661399613156854649490662835053952863660883232259329289733292945843972112596035128544776696633595553917725737318577541390425983530861576838931844044638312019287397258175976937000827946340199039409919426626191500049762001060544156929662844451533045472870502864895027395196533418607082142159378145311595023501671649031092834196835565603610448923790426497076773165057189098986310356314268148203434947420709293821005707564428067108522480250995155042213552103254904368916718127849589869262299157606056459933337647120998401398567664334285167337194083930557121945712361576975536587331060048286405153677452695334531091634608581363857063223501388391694306069602486229812326500119203941129262853789399494567118050491279474052394149522568260359826730066935851630637316579856289985761038147469043717840928741308102478364478966685999306141347373394517332620868887789702360309279646180533701807738030456243721994327036918671122018023468604027620658978276551872785147506377315232477034808775341851599860632107982601708876346603036752305017612761311198230650442679355495701975223060655222809356733940808133241790448916679543036966751728846405437931544425740817093133542692491244924695759013996714096903548755104920259063458798216987991184887311949833063194363100573616782799291437449535973413780494231060583622638505521049489946755156312132947123665264938777802183828672909339156320712077534402712697678795609274655338403044354113773666264786301555343522852557798394646855540978929745922704790401913459011218305796351382961619313192006550629847026217709569671383537108004352094010574860766737656868992503285433834990108881478608721048188994923322011050476271992068975003673238933766498501508657178442738751917586598122234643686932410410259917277245995440375980294728036717908257951559670475096659708303500452199676779600201220755841749736348774308548506236161029825735216887355305254519034053909231243397405825694517551705409714185141992565489093424847049749743744758164024679559435381781344950439786627369850779019296629032810112628933516177026378648553161411964328219697244430802892170198157428085771542760113396823009097712526862827356776688198004763891500086878234635139418528688238181733559449649627529188517038348504015057183577075198223886028384205011365726527868300489627241647548131928987661207689905644330970300726077179398011517578980386638743916518248700276336789009665537157887524591984465310016584215304892410688057515253608745464870046292378342335484819717748293878396221205790537498726017326908502763259455147215986355777425848160744841776341643213670212937340230824708838641401834407161138530758154469000315961593764588325566839363740323216435238591175741093769301805913330164486699064429747727934568938502179954516203185756660296271405624961573323116979788334709055194560024622590230811524156296004804881730886223319936990844981798893345978469936652726836608312340317954049502617756537575106900475023318581372322149801272001960221878019263973110878052913822223657612892317014586552537343030771798596582814063086343674113966879664348023756200933087361350312645590826823251419197355860259739773762398728643011548043010408174095300647697727544019072019264073582711919107683486328899761275549108924616655371590690749561763013250191127981007016930877564038766258858079630542219466567972178491283533406963010761950153265136757048546231237781078808019922499859618585134451898198174880275657225162291663117623782556509247480875248788610128683611828295140856949907360733127589945058038670767179789230428779979268973614150339841240960600800170514802900134343507643783924580744556457401564695745353942760900241828115260845610467626289896749665330293057872357195289750624960840770871195007852491382062065887676937754893464111051590466580554107121209441800101822184377667037257332156876727834472343212857557740222054054054778742373473555992849263574237966010204846998415174861233288821259605053440423834415941478093533945214015296074553085603280371649702897476454271683219212312594171549962202735058352833627167062271739943400642744498163496028802492603585954161235831303487717671683237752506387745708205604071200631028447739950561327519126459861490788009976717140281573498879928815395427736486673304612683504481375068852918463655964930441520954529886913356598140834532629364963479560948767167070274323904911817617000292001301962947863651974442954682091619156801086041155869860657450182576923698968355662502544763361863582003345390675940782046564216248358545149222914369641416933179641605333249988765985405328741566137141100800945992625185209749790601389195490188320726282502787499560986273765261293098521143930974303100074502962822272346421420423329245710372439583637445143589360950132040631452962567833846721693501475219825401946327896714332211661467028386894441909901725937871157803090448633468285688328826128567201530216372271124203656358212857554964018611493034226309756988117286285919900593959715012935173572363682737687671952079806465535084441563556418841491203896507001834547354292820638286713459412217730543975468599878157199839004740862784164039820330218919934981435231214504691355844161215626481188580047006996878711709038237176943743259616684474944662502083661715945940774226175636437878038443721464719363693457390162818125970134229809538868991138189375427192525500151766319475467407696141467562974554787407252472465975589500989463372089608641485209505648252396277699621278909243137606679564388366384711681152682673366995426561013892380830902715804762752402034561334512477240209783235845901370095464677829873737595577999854695371161276278423063049629975219026863514892273547129657408078202501865873326296605748248518719249531593746896693600732381248683643814416011228151634803088146012582279919610307677213331436124898836376190707712293174540526301283771446423337505907704587701789234291314987342927213542954787659309981427220400004812157504584626544307736152535630859758665063544154074854348217321127431864972594368669958168836122112687592350193251331137915732978095889616840642911617621658254155056409366900306046362845116608005692716655842422603059082949946362428781860384873698000475407932575537929363892187310481665066040521554665863666382749017791831141963585008883383520960385198375243802683992428003902116043647985875824664533959523241487674506288321172720214505987536523835279883183033328699867533822628802917440607140882183961424427345340393166695066011965347466945795762771641818404568280645624056015448875692204310868532265647397292680546422856216630420184719491297318988701392015025674276046269659465610804863885772421997658301829290809600553124744604359922076158445342122283802938395241002485566850411940140846634257677709631891893276998292758010504270692447570470830807933467594227766811298796555030961511123456834818911340836115635047347814324681838978777514766125937802994319776252340612215668514823250610699199376322224982724391260196751130899412919212648581296349107324180249941194468807582605360946278536467975695063132667360334330067847717579538614118262287479249052497193935104718145500226612424321284897957201996483608545830947852701935235254404274968986453541193286568028089656677105868756813726931520406439020173378053010573769004682446228993227856864972023455671378296405037897164022003335181312204450044015116803595534588499229418696631686946070300007412758675262970088632693514975990693386746553048001130023367913777735694187766560263575157729938431815017079464763224441339746333460898578408845417486895722491378889413222222343088078960755999792803827726430971773744866917850966703824157953084088880941634086002897250579205223774698434447469822358427512384299571061468750046227163227434479121114098472483128021199235242870509607077355878376621555423606789048073761588371394602657100446531606118251568261762342448201190203012743282622194794877240773635667298886743800067032361498449202861834927024361334954731683275332406698285319274397755029892716230948191429669723117731550544240391488068211103922324095573024917334155878410287447876808198094965524922853103776593243140122351553181454399947200526017163215833792947821214527697698897143752561899754648261162275268211012478832639803153636821393377410143685794184242906570588983786740332310234574973082759558796979032196784971086843643851729103820798114082003077250563856548943290839988787126402815920647304989658825659508624411776859347275818959230582738954007613205820779194960468612911139898477382004059132983741094560721035341791949644301619460376730191343777300094226126073869199636497570417254561238769546223590170201242720472982114845237173202484441701661918192664693145687136689109263648141073212723151287354053866607741325978947878721531317116676289235970060314953302739745572853852021979424290827692486913921289412371802778883339099344263975689919144890803503412627671329748645525294381784926489905218212544906664148927841695025705158817176782572071973204166912787437917665614680477948701417827957185673351445920985682820891462152950882140443868138548677495994104464920111498248985101192265977502510694190333013841112501308550645985685005133560341122431015981723668598580925287052064285240154550872506176093559782783555968048280068237783933505994652578694348032573363886151386249778161991434472204645063182637879110650003963737504121660052933837189338773182867058789929992446149863315408272555838915725939634126041344756037897338109422124179510168555490271401588815236539387688586933578865677941750110353316194974280428223351060620806361022584707990952534949963191076220423665578984099326031574290993463508698788751059758443847472361013452852651548785097183027289982474270709126958936484791794485818859000633579206821846795101896347606663245248117997030615326632287517039282288270090209769384471877355596456599993531803216990354110126486859168832190216868852672082220896838247452838164892776886535069008688585202149733442180842222628916794675294970119606946671697968313364956190686988419746539198945696685398740522000922099733379185001382656514005957279468034300795263532858344150033414535707313109194946705624753064519325622156461671396051685020071855417752988158661602360151258873366806789578546663119272524077460338328094153162919716712669178708892628541572339186960792593229364321288394825246475110469906019200111170450730847581587489557633616888427339092958739301488800364743184368076137970749786330449919182771142711802956074264849663468094412566126367688725479700879085212959227758298320897220049578362674399719041758111342206753687871345849682922597263174609232295508664258831815727689729290223908053031960439625507597924585726705973688531641237189241632774853315397986879221912352507959332584162672508609222442581302039659816808422495453275488755859438629411071273358795851021031842576811404460449004878293681816703369629571584919667926080078369921636577887899192250485318482663972288018674840065443543555514475181245001096038669570948870991286781291719748754854400204937638037639614812446201817320104304334043088657469165179390072167769488709878269804789508461580008302768100100659768389920544960862845858362993325995727609846447085571840984103224010960833509209875564818913891908767392098832082199229714336708747851414569712543452891723042663413565937795624523469607312528229392640008978518093841272081568749268492205947489486513338815170229166856296218454009717041001383970333481752230566804142656487490186501078645543291452557912182964010652083537612664992628080047301833132047755737007161272055441777889088372134915496171650566107043487018503151931067462110093436255311263778247014756745188130987573507714718629969850596434122530700426973058220993641696700096558791072538119643286422869502081583608305470878720972555355988172982207844803424837231671062964842457939009707550154092961231275329879185274814689634836241790092642884594841385576915195160705494154105416173319828559072066001546350481684568307947542838370155661471773908804321436160255444799749193415638017842587936593109637830668157395041784334842543953053768463552673988673329795444593076833294328349300714048399148784277581877591510675366615549957513219377613560279103068792152017556886926051286219764931387300174504875394229268335348947841249310216312144899433481624537946719671398813769564822779116721963456315911265353130314099109595903433227810264148200779806145939609470330357347041289412697755950778064572684137920330438054836228923472119126001992026344536577797004315456704083824483618621869428725248781420106690764857230887344217609159943031836326236883766855747821002881116389851804268224119134417591429643398879734532830428268804447498119244438127993982924560577046750593395670880361209021454660884430469306236306357170655052908336502020234864450388303473085526435933924024617049690223893410613913645058593040346826560196807994164411190851520679120908729840092719954834420263626942426909641194350186738465158851789430087912322299815629330186039766886479254781431016391474851598711433624476129876806438243070844586978541363987728929686826987568634206894168745463553838975705689667454373918731412970101428420459932312377451766031350060481778660200709408622373511299768942954497197654743654575438256526866408859523336058626117862845359455795564910923610100999213840538471421989634455307677055316420881672396387328302373542695636270127123390742734293038822786587057826694240921764542033578469703545471968612595356507845892810525252881145201936092476862767826351291059058665740839928446271877345575102137438036854159871019432280109029944958316810976267607635847174541543940590470967938307488425050946134143160700580002770947707224322054570172069071656163583876284516739412011534934428838351477305264034805732443865454542358849433347768533427737353550515201339190823481936051254813743837938210355120672302876792261343349142230644319233983377423334591551773004500478984579863541084238801575132124575991077228331826791859989021768746363359508544871735017221462027590267908212089547063448616894299447580409295063222378469116934928010817730551936377154355466553352438628862075685598702796192480674808274191873384548610457851911668546011385545192512871999640907865830543921024511458233336401067161565175968848711835697401225392805415432620029836813831338944071672626407491174371332405252950060857950455338666700373419017645789273238926016293675288311588452535907900863248613977027740869911788417604383403230889803403567887591739458832011402454840119100308768598799380591305934637460224114106187947473923549800921659743080052002549480788218420064914278688608192967669205788831246180439274137808508626778186734782393353668574311978758181535222013856022547655563997667125198036379741687595218380275754362855860227374910557922737934374211698135919620548974995353029691549650939372442545032648582751998829324955134531005682105845866740381052923229247241093088049111111838283732454810231758778664753118607896608740236231021110464404910097246508972300527830883153111699266882291156881452718754953750743390745994078637404749923224359177626104488054352311393682177410836713172989371067232671664487417592431783651886470482976039952450968853817259433106100856439139897409809151593120086919499681292872220842142478697355998009256917994240162244663157570099065253362406291803177443114454144880021117210642763641128107642559064241715924454514502448243916066077458498515101607671028331199189573538074320910096411417002696637747253344833287852680626584158770090855676294490529729410976661093652354810309019654604799289583114296690672641710505491285176248274278119503480196543823674614231193912555525134392869956697595766907231385898275775630483942252070744828603880897345944686239717005279501857026536992278508634434473962040524402651869592175051063593047206809953837788161662762482760305061576647665530590447982518555507776328775994762667325559132780854947151943519997683515435392772025614082946075849762911669207130733307464781415106216331116230518195031520086677612671545109595047060274177118310744858105279077339025977356800399305951752846498138899347348114293479272032821822626096046071758100139615325500634229852812491732617869480492837902897512504942410176180689112176375830628921106267206413538513910812476359455975189608629157085617686550119674296015696514242986039235980305999500367520057361948020282093104550497455680361430600835991828155895822369010658239617414394067652147548708982547697748546914488688325807061778179537877087084675057020420807724800166440746463487222264288976982046967185978674164001503045018793176946131234736962586401717904908053283426106193702340968412628231140336835630907491675916271341088827908954861193436940065300549112535302270573670243085395235115796053552338460472378226428608242520583988978748424444333856856014669902820075462246461527347208229140530886990559896057685097498438857918094187219979409894121942046999233821142129708416984830866844934817843266261842478823398988811493432878811863701463192048322897527151451631750547745483386821982965460889359787448723281373762290943748055173591901819656787429219337826105151587958937970563721767259684442425602528250994590401736919339427030158469571670415623210860259600447620259296410149863116008855923007763406389781186353861347046292069945975752410038244070503113283342374655625269407992185854107986348925724203073833770487564969574358793552056990566164376872855200318593915724752503045825031253801060619488513844802774050240868384201292050537411197845260381672239566054467786093259076277236287307724522090720280525220445436384987826499352094578249475089568096931723947960672876201864935981721681872584259229827739460584262688527100511805208599644904791552518270545797584638234517293114903381811171220026853594007902572726203668820277758689784758953409358866568662865374565067148635898658904990790119661470073600919100200572156578852183755275136745947793478687793222991522177593584879941838561781258400694159227104167896147048168871205155688437321765748280786354535233120699110698080254018643133726283190416929205819972351945121857956245570522560402641599156601065036468261169156714844372698766521092986439755218486475311565368313372959923764567526848723613462702392354382587033888551235429897613493599187059537390573594333943965172288803700850092786102324615543970899111246114792319454317686452460892393620647748485500351872667138488501424092352289366590864893822453156331981710783211941159291245997538145491856738389469011574797950067289512345060207264089820180843654058421791133506825624787094763128550406870393090516467418129001224461466312434054559944348931855115637772946747325212960017970448698494681664501403534094142043538184793250590402001534439305594145800703426828739486835390714937439782287509462934633805768481749102548382246876551811209159510053886135820064007563618685074974409053340373980695138195730600640734035453169129128173931008882223686568037487285349367621399851386535782928549541526253243818945725820811016409811136007109817460866316196609742653856914256678514802787775975002697758152731468806388986425024026301053266533996577944149964777705608717458051528307709154921347579579682835203107031822514644115735816451932884001669293688424209933199211241343834634824816342172747862869254904021967745666147010238503451353098635051769720082771516350156718166559851860603731379198645947156572196677507883027983576637500622132354240713929733304295817380077908086185754569212200994842156856990270201550800751505385050913127498398804282994680505075296811669782734187286686104202740438728588048209995789027483828489977048214665790224192404714529342436482049332623604924658285453933907526527590783623919560297203165732474934414838400434889869327972757973866297715665174339945488764606964250272685085264855305114577873361331947791321114036210403343948303222101585761669531693710032381735924208113435123701005512005191497795449087686038125424408751190466733075929780536722943424554308138188286472871460597535697926671108183900473045165396092200997382460749597627913453031883446413755957988249134253746174185238872723674798984046541490685215344494627726455022811863610592900258597588169887397926327110336660847163214014519361802816944944992217276562773827173662269565730166019574283230276916122169254106299525722312256944920555113090410244557586740591539033812344160281197308764193382140958206625262910247860336388369588883562715522322172769070700879457005983297099842873074448441096685102801545025278106537338130970609813013178920058531359863819187598087806506043471617378825797701269944384589554272272301995713207892842157894941353423393928614228569358354493486121284193765896069306217912102921047558949219946264634419044733114552483794763375496038681711842549654318196368335021165286786136975852814114818988950389758243529483337994361457964851309312031713001898806261398964071197633651132298633875421312234595293301016303510727159733511790250212877690035485251799579342842761818887129876122048944067200345687613053076763303549552495135013212324611629529341999871651508641695504601265692998660490358421019645106690431532004945503713446682847576487354065123227939685068342181344039821244098603268844727391864058721516811368076582243572872710519415072979233633151623595811629908106728681906188978490188356493889678198238305586599745360643218149124464341101205656377271709035539733492785289082537501328073560606040725500201588578714984814538749638245906009132757049455155794125463883326863843662203050407073713342329141570359215330297874622003878943022592975335647633797963888742639538463646079904607810562794054260384731920896285169349789928200668510158043508560664027786603210394509318282330857757405243820608223838514514746133137774880073760878822338554274754726720376487147057539340126786716030312021941675473990965439690729287185722468872568395972328171198541014865248519654794049796513132543860263203056478280328879221287331435658741816428839895525779299963545066792131634035128966006719001884076393457726644087568429924724817249750395932490088614977981862510542100166642765255305530008689334827849679211645865104773284090445065856107059965413240520164677506387637949478443150054747519917976819434977450512663581583285969253124880421635662459229604627074311591906974874156622543313137287622984972158535498408161684628810597117685204734196030473396315744523257661923540764736021238864960808315524467938752251713215587883637099614699922437611019862089688373010413450350825412064696226977946210237681114504277818285521528559422856007933876588132483984732604811633539210208215349075227632625412582581670415391030594402410726693813965260323581685452510766790081768689725720072141747550376285304660280820905185046125186323409125259085462111537175232140901832197831237810158085046728148624843696039269752087735994495080317366644744900075401461874683943298854318196446842897416773108538398382009233408637914442878297673800953829744265610195252887446579309447020262162214540600727107564776048663705102717544379177104536293059863787954316116279786138975499393299918717192184438839748379766396239980812705221793598411180600792989916085010441326329421877754377119818636431535542120214233595340117142533541308472231632940940745075448881903728686443879581919196334304092022486105376625505919527846577658252484998918605019926910387975973811382465196182923984341088775000282813020323977323919358338202957838909038814653528325133078920975177893211336932834373998630054570638405015288749380002813787911160074239793435058746689253512970374515020370254060005125230310232187687537386475217988835485108706392079883874009568695755060926960745444821119124748327067625283091279477190819437423923828349609769207698677599665786011954086990459270430359483184658958995514204043157700688344522698325876124474831260572043980023098811522637300650624653256162825534716292551158391844235092145295115164881629035575187555712193880107902600464351861167414714810003423863017234990936615572628884199601693259552385929765673690479327373791814205760831459769064628317793282850464024422948776258475007152350127418666497416969835503249786599079709746539938425179842444139763068476725824907040123713743733938674545070553779661424386013139582160728719513658069515235003325207461819776651586664533010367497529368884397090377196349613956130018976166439726732416129585042636375901771542985108039588579036088130001503187738014106673382638760761856001153469590604430134893614604252320721440036718661578558087632061544956058789128253241399206459828677252558792311471472281675478559248284917233182961619697303188465486390160487170467740146507969151038021887120309466457190802807837487956070743666395400142980968130905773159049084510017455411040021012660398054923830728461995430959745282130490223261564950147978814549215829758861274434789996716695850568984352780112371206811614263826557394164660268443677939340405467479667448752468618004282621972843126282384943124453561088396733584383806426652291236790228608896771812056343001587849938580680905039159743307122408752777519255732603875068955909281868151085277560183465226085268130719827434900024798839247246128121006100725633220221902230907871728177054189658643969775256539619048014908102157723263037734288721359325394001801902474980289422601779253387836074903655342321197703217881945379040927033071562778820335716042830055994415190611829223944688087978598305499242068065558656610263399429427377464913542610470961510826968431533353341348789747803890814432020696033615265651886546676050094148372482096526552137846925533702685519702896104388430974006837938914210143108684904796651973144813657700539405399044778417010470214444405390159872101552586991952335701131129828736915382152479257343598526042641654797643633890869898101666876046378429844642473850927493568721448254856266440023324304148036070513207640474693507299485664749441559706414555783596496040437403228638353301851257669559837539010728256088489484797051612018800069514146109357326189137521393192042046901305105570655038911007576229819357496702016197421590168587813267497787455402012763180966295151379160303976854245452459492126880114010966663200264918186169952246670420885789683660865736055716048392117658597656814470834306242963768728444706373669963101891460872352427680908147131246343228960907432763319394944715700705197726533308076097686154550055679803672525623821597194869440721292085034664932383007374809559150509840708751066838174571035411234232184192860489275254065597276256002351038903024618069010150122384037265712566732784177984311277125897026147110743216939212398360869646282069526408389582074204323285831339445521388172699033293580982262298526152193939395094449419284191415838512652166430011590435433121525626138740899996595238437565294486551496006974303831621101778026469959656813100704305646036388892414564812914060114509538095952364954301480925726802645745412135979574357866150559605157947798138823128220505542581758004715032208780990288224677082262069952798134539345949648123108789041324608141562211841385599729644619023087981725082358021079102193768587096173802331229357468370867918018799233067085486768351838194193471852008769715657215141140760653975034975072091289390985646236349525167468620756673937513659445662605301671444631081932650323020525641167944309990965491828420889576127186784855579755762853424968831003101799920735897611483200239350101734909019486961140049641897629234849979078160925628730763379494978384778921688047863200677512981114731208093858570759045616934351538903493059442186495825298162440368578567221602888593889521465077598402831677330188632237372821341036923695698412872396792397915355321985924042627049542069940818486729826811819135247752737449485676070250563678094206321680943394588160744996596664232638630969043162045119702716195671826655546415979989962756104975189660289087113379799615612460459092456894413868302067172779311153288859191326774402404837885264762411729819388861360825458299986537960418439535922911783449479599951994803327668954639106665443622266655420224777689850336672214863042316351514127986622012514308496093965256868209470759085892752528888271532645234922101835967057596133145089010460950456618159771657999615055929644625662204739656682279483157414082314242319435988846658446853680954609258332402929828114183457139298689458978085974086383111083553687772070257442899236570353521058290767398719809538727071575110769694166446533626200899736340391327282124343202030889427464230601200077934276272629465898856440134362578882025461491035538385947181719718317677444191289856607252299933049356550267982748032204172110390053689178020222048937922507896978687702424777342904922433848471947458186647135894881071753573539202393758419009184649273467965099507351374893118047017441364166710802462210239151040884790663143277682990164664722217586576031382602120833445405947382245811479933255334775553021058700963993083152696252581958040253248169183388254697306930338994366389829779464900472772943649467044308342798912255995428300741910241074001275262957720937143659083530237973257580636514641820905754454003404261900900095806882257423985648581993010267271420117491295871596737824413454830234237826817242023982151841101088286116389913789343542987590637478808816767344428196291441916248656781396463377318294365814179453124799694253690558538580746651041613904120417447442055288471058209487598360455621102404149541764464765402401072177922588627592299711453213022217747928585706256821375643556730713870810768844922505288790635830422217499265335843245553113450071694447787540993922593709442568141933992382881084371450160175846500071742901186642541513271800504968463764881801908246580120929991346903413390484989676416895984410934887026648935951609520208009357071911467559773591365601886110440117105151401560941083327834888720311159832533188928547586548611160623608661243087732293514164965008809694072581177631622479424039660291237264261195453640983239739669265778464730698761607995352541357034933077999044500797230995717556926631021142610683780506735604540979052061367058583104067218817458472356064123489171024215717714935399941377818847060980753507877825512374402935310972297612054043462269964643978930628820696998925195786894664722352120396649124151142461094650369723596855175600287183711302312011954050768229232027699320925001059892237738744444500967803086499028501607016337697693998268406837461899070652705919241861456134209373579344605799143049142910913707598080462298104309541970601471365063194149798664428754532145015095899149472870690408296620292302663368333553963629771334854424723099803236479857100230613588895256940087729209727270444548828114948826346880896710106776300936971468550576718044310941918239579036738195489255987221661936796358186444912415620633015174692923292912593519893192314277328829753590953857196504245572100443449303335335588998631941887437527845976548923637033618726687285930052645057674714942859155354373649655936704701596982906048766114636065510375261218724362992780449119914215858861788796989411100866710268790199680785955239743441933515249343150338551870948647155676547816563027952031156277470976308846620726048966936387645910944846496236108362399694176776092799326691895110732734719585245365227721856841278371029342852353851275586715355372152169231150186666836839071265204402012532091217268333042122872549819522194367557756723562933864790438188720671007699976240615897938704832363948974720423499261154320303491547053295478098393590424256205223953816450412560407760387816971216115863303669172893947799931383031515661582420180587335124195389367255390044006678808754283414167511160459232473678113776630012612365269913845353859187553544568975674828097421158108214076343230476921126105036236646124039143926178394244255317344114093685415983361620511683304027024164530865029620065772079850829600162165556365865702263107577787393744702705835577767428813662541508993035891036404891941835760132205791831779839795959686076680368940079569923211864602079662144713632544022362941038935317940450872832402721012947357608008476948667092827146952559718958224155754696573503267629495335378568220724180715422427048316821622642068504002477863646648545197188875374825733036989791821895679164682129358539703330960977980631391421303580863845459974483520016387351216748503813147777886102771441773367583304210702033849887952322056106629906381521863130296472238337045187624969885507299808784234901146968567287884648698460999591916006365577650879583460486278653982913215506167763392953558858960117226713829824640852696573989294472466634636217184359843292635048534505912143103041047017831648159205673180454800758918418575878192751538861306847249318051696135225103849477884300678407069392948379362996468521144812447200861965289710849240707583328627425863543795762414945291065207130007896585212875887320838753011802754127989255521792379238972455263567157086529998385608676300754235003716109154486037813442777021975670291489235544054451811597350838748386802616678565655698368588254682559546982363785664584104443232218720928939058752037324091457783287691873640482427435945310696856582875010660454517579949108776249580815162482169110823896245611548754178038040185395529042183582059588246218958742589700734601940409225585825049874489459159511148376451508212364983222446072980733873912688365733832331479955431446685334836768024574966415735753608148320398417592110445777097439487377761412911899613010791374391416300430648017928452077546013281680912081452133110554442002929416495270714195744277733085850377040964819887396520030689934031617993573765946561885261761802823993333246164092219631192305274454853613415666410300042177685011859041046463133650980019757434979299033835278927715991012816884332780634262711940753430667156910686054979660418133748901546559982461771199874914697051979031202209139892092102361406509522732073958464597883411894183188685502691926317617743110322276374414761396500648502793112641364425009465990371185544918008418601046453830853081198614991650891529069734216932136548773977684151239460486797329154831970666405603379040755342529799711273420553895934536083341207334885209887230724573859528058160225941833251009345426054812212614201092855002114427873263068749441975185828960203440240030246675285266853114408044943534810748505450119666259677797979718876516549946989473250078802438661177293339677722018264569662801051715377373681491227594055161465423085650304408142325445957099984728831726928062083935573551415093554303597829819015323958436913659529082979691242966519978470745195248394396994569390939999315282259235210575307198529075619418062203522276985260009970555997351826425889053907226189734474363656436071599929089806253008421351572662454810469342692393472156637891000615531395369618076517552698055611749125245166948091372988798136786678157737655030779218077100094109334838222092013965435335516804168578862271009340305012595204119461808368740888507587405053054333753262682226161663552762399716424687827889082178384583283456641967481249380976326204543202596018488371452682137640013264203044260206895140168175298306806271259820409611397750092719946531684325561687350561288687660045958663921430056662737102515895189105111783998813253007287285414360138242170917079043162304772606075463009839740609000529646378996633739403915114053690934419417273305825799360091287088461743478377905700593734324642567816446487181781265050322011069849433536683322314427912327043137617338504958167987145787771594279626385560311305840631975396984892528487590606722588537498456303787803979728503108184087435289422672977963439255692327249305369259816138780404341896802271309758143565925052875075094408667019249269820280036275102794293272805937318733952521128554118877810406169697121109542989751308187481774498531591392405196918340607908835628792801241977159363313818418151407356443959848700976188177362435815420049822217746562200233339818689590533820793267775369884736746526982306925302541443452745024831333577625041307287767396352646433284851946535679797727016029150056833920159656464991998705966867963244479893235674504864487629308280916025771693703218626857545056020519915576441485324325580964054186516146690890961360504711622535097455220916890437195542536450404234483846371992813917682622890969015658749191042334959119085111591294614778358189637850977688460488887502288675424524608566688752238823843422052751853488047309152538479093071157901100522982153365170896390299089694893141434589148644394985134253015789964818197327845524558682961309898349566436875121057003454390866843732284583003474924013448719869992395448986138180520288698496943629070128488419065751254055760747648371133083516514132728981071022098090407126092899457312500039921975400913133387140707788446662441327449719365319794904002854746220610720224192630611644910807379980531963036171636912302825959803920511455970909008290943273879174383374369173531171438602858853501484042953333166759090936386606963302444357911331810044142673376561515249088957112985548281072955510461701339160170020282888059538855309523523764446193080680830883948991026873250704043165437380532191187443952396108551408652232078495676359354853537639203269623819412117958129660469244914761988577765044272838969228476027854644574919177566040072920024484165443758380298681543534999777513438444765186460813432280735478950982227402982412871251498864347940207764769409423209834760639220465538261239905555570059536310656624278331432425345532299247338819062095324088276592611402204341676214416509512520284478092813744365812438726727557411589043601482631897559653281074648083111633747684103230250193047325767929550966727468783600376428415946335904118706324643217109778862847978663492236773701254315769466443138659165771458742597360771840427727570420682004784646763893318270786234018322346141614970824607833801022861068215049453509506040719119242591289126908661536744292584783622222838935722021883168722317063977890556734062862102629762517310300515930300416598454988333963200376051142875416560344109381199704924067594481782145921013556641306168689288213866026925820309976715710498946939517388233169471899854358002615719660817272488390931994895444060984381831322805089439724407980204814345474779021400862068283586556909560861778066663010859299436005801023110020981756691249942183462016035915594521609679864884132826512147426560805276038311159896340939494458643594881138496990006717011208145264794893474730367712927653622997016452793438663279650894135296892293403858205286164425226301665311234367998580363660349954179413807595204076409209522941076446900633372692626026795102296892838486980777907264125328233123751085554732627104045065064955233156114802138792455404222123632840155338040490983010973968002331341402329228316244737242311685061779182997469917356534916300272758110714467606047468286066898565954925602236335588335958573258080755320165523253594483995290826222957461771191306895717727111306263257794814833858086380762493927966710226143554530343515843858061302825341030082776250020934799169298700419482001762751855715167233915298228355390846651599292489190354570895451713081018241700345410327232430422061608526275189612991180904470913536137456409134268732150686287700381957851599064547366005084317948596865765793883563712937187924463818026841685708882260107765009161337531607244548244387182253031606457493783253357696559927016782585200306161326878581250504733366295115482612007781798095889675620721902181484111150745271953792392591792370250583738566397593555151902808005143626183120731148124035071676956082282356761972430863400365381320103526823088127549916261122863890401413303310937426093458838930847096726685580185268191609842052971835747600074195563999834988240502854646157643759224291349417927263328443621479593595726872614119290019349794265166159895542684689647714360429049517224262768489490988646253765553376253596504007517509318569628564297812804097854977520002137917324236091119398985352240143960417069786850567142736571653525447877826365727488627038297521575855171671558535949954490315168398334005981656071987954993643224095362647304097867566068680171266747384724256189215721514041114741620032577417734741982837004928916062652710824528660120405744688677866489721148580949948215443061580594348393813248256062775823550366060229907043782995736550230096308790052227001978428077532335284941721387452617906736006408566479401715811723094918302113554635970212686976134632636932720384161527621780407146625501021964063114772662419306747677188576835833726622426070988882075023377235036717071190338589553152178119707714343757827308273987897347304919350455761172909216566037596023503746827962546124727804643070954393326636801383061440626032147896550691820386923803169130811069003426037862487138661074659711804894732122856540286864122052364554972182572881265739439102095985148854236396716159221044326410304527014467325427646900600388601169355490366220183480884702087276352009322800398683548078284134190871194320290218376048014970558034624796513508852800951378269197882354130583392205892547780381737277706562945404512167300387173379170795472024085556189329684969392223574453078591692026927654525881946315606821256303965989569519197027793994368786628360673969284293117134210799481444785384957444763515437040460022161741993671630081364407182692880851617165249102229878998438047900897078142798028707354873671423635327606571582588022703787633222410437567054024863338986886324852827536181390540861129993893685435618325068948869034430958350636938790108180123891465893546952138282910383401483522486113938960759721581309294565204803694069988307266202200767647993187935910055500368441647683988084857545706068787842298933039112659628215649256865028959338468886888957232870714943236609448602644332388658847248723906067389852834121079383062442998607890094975771956576931535590514301919106324582666266113153976704850047645421881652591935095213477197699169132394333816245940115957149773029893751609287246105694996171424036810161212357186034303504120464978711834955945920949752884034357561921050571918219892932496903408930091455605107344420904882223939934035529689059070741113539396006157406973146956385477217130422399613467802146051880809772932341353448347537930338455171471281570144063779460694857139826518012819712171255236839412881518732853646448522404668648805636098076166572913052461265805266918910830400424237108434660975182773801768826037518601522993980081381665125065506198392775996500980666325130058607781122086622383905696486664582565405605548420542879939307047536785140570965894762560657821082736426199884821973401550720281729394196814376449787127740557824377032836096767643072588859127614745915534775038177232330787448703917119576634359499144980224354422224009142508512607574480862410840539088879684636394485266755619370240283899363167317493863902034557241959549848321812374712053453715529266410764572359045536532889472351967039243926262397620797393539463524330833181085868953106911199412730614662417236918801311114632895343712790249992729318937824571995143620495896632124752118909877427342700999264094322091978951796349313710174203378663486311078414026514732292051810837556886735523272146453705417506748352403625959168500014189233707394951431148696538909859707773198927239816682349772498944176737302229661496611395698963586988598719525161798993043946358597181279811249417481806982020018728043969765218478906534625601877662671039598980094368456810399952573580220421968279385107208724365922757412482554674835352463591693364169257694892771594966705614318128103344204383127137608359563123617363428894794505676660348324487352850678022943450320880687793949997768115834971814063549165840951341933380941150613959969110552473053939504725586634580092406886505809780813013151997813668654282520785369537153506218661477536122429977810359367281799221413070494936252813006413447448322758753265514581253852891814080291746023474856383804693744148872343888802431094033828450644777148115664374275290187379278198107550604903336903030550370191362433461000655067843130047960610573966991041188590697592746297878696459973400820773251189780834794604964570430339272486034668309273024555173565993905636758907004927410872498197369395428241304536832222801121688000423273081795671391178410369675108463104254452195764741658274608483595555918653127895123350794082683241956771154495327463424194481250110173900986334289847048776255377096360247994950754178729654526085481721128533315088445455540524049748260513207417161390737450290436252300219146188319496601485090844017230364040646485586715146170260111211529664994397478634793960553886720471447266995187650895193866236063014272367391956320344409206049982021517442013722206676593204630164814741765701764541723555966530286540984930185265733016517756642391506066410067807628809733950245034879325578584718598960587590569054629271620486870989515301717555651722864429346697646256987044451511952124199158927712742401621636945618338526909460162378230397743312724305772130402367114956137198684438446213736973286519690853245605081353600887947034806105231734750904325901888257099829468775407228269819864683707741715791801520544885942921750161875749554457633981435960531609740329705552067720288279150328370584020129674380502911334102985291792162930838976142437686539895711345961247220971919892439125923981620399561394263403984577952782274647861524856135170909147680174399911819696887098195892423449419471498382862088875642140554843569519176506745254854081737860460646540586379907389369407620893861656799974315028023640191884146662945865210135622746923358629319027899157364524906062474988475469627021470554627717994885153987925231975792525142620544465156448390266082314782347786799174183691389463522300437081265608926435674773362813776531751580534896117491765934329155944048179720180018258230468678345205486352881218555874466555047342864460151930358073609556302398686020961665026459673271325228301781791888472764810973730497226598371297736394025224931828918082364418055584410244536143259478114441367877070473277465343500701510905789361544981285326441799120161428862418112606439830650191778371902513472084427565356115379984260055305589932678255460219588485698063656282807801969627504305857235056462167299026712946829366097905672234468474499889378080062243962982922860921816711697085980767572305781862671598175016806461951498810062434752681030925428947353433160158133646621636540619409504730982368912063463531952258243081228487210827255995108045136105477851192713400148217920110374227150483029160002384217255544146729598384208171058359868511147935745139175142553615823918919294476804533568709232738488989716521665388294907558888094206336520235109991474562271162099079236287604181341774992902400728421530364241237627998961606941986623658006017010788613786210225002804370518115906433809895213757292008490910879145511019072205350926152200512901734977029905947641430677284846767545810047430089733092517240732693898493094839193922492476593524817107064058231543334519332980020274221990514651066696739768471564832798601406028212744813355292860386651932171004842930908467158834916892272322189842158124806618658589522392740331154552902165146625155274717666695993938787238317153925995389002184233356287007414971550967138802730084191929446776543609086027140251338666750787187414141012307860509233498112116472448357651226759457590359039073104106127827547273943099036355344088192467140227387724366085822285157860052144517365661074979714633799612486190498638286584560467509011507946678641350125410792028025417236674795593019186375295687999125776191359265681994314790732615775779041181418823797302998684511718596332360068814276603976735458707090485620129442862979463065099499487418784943878995697467443341691034875052036927062470042889671537476530039064546592260423687562349672456101025304244653586577643487957813784477657844029881907515851379811164550677383276983485420434015370228390292388300960151470206422709665047546564115011915232768952010434891341694108274383791884941959428035237490498371216205803604022663787796569121251972628817620616168197846965086677413705405439055552923339007454479481592548462036753391919471121593829130685383149939014583567272356679617078989438556038213002869279335942501912481677412404377595133909153283694736521109389169291052091842925306722622428197077391652794035767665017278697186370279076226159803324220923818231118848494672126254725892944516830096890285962730895510715078137946191463539162610680111503923084928364521927158332161416594919586375419952178334235914447835032069748043683963701644358885566720021440284253225029184872711534196391365529767991935819480854454658790167219780613822593390108509883061038144932491430083224873286307057639485273834309739023645394459193610584338016441090531159448188404719704627773840068167734863645876944749264630437431311994189902550135132439257989838530111617093559755128971011047458167710122495377108014462729331440343801610184429528461194745528031770111454411813602191695573791345338919903169792314345209986774110590729778023933293612405761826107501435454615864733909818990052151649350762423050230767700606669431738392210057539599171588908756105092685750522041731277445201956376490166550373097857062398338224395812121110106673588964450794266695277142816171134916311452551907361224364111533438091457604607961049307564891052418625601491657545403410439073350274773185193771670185265896419948171837674425036874708359162737907745356754232615733821363373075233447887350238309209241837685383784170466720268328099862887594157446303296631098763471855801166644856915007024330340448406118737036828501252673141334602998238749303307130826942758643933847796943147853394945981697150093103179979978638370853566465763439592396109090313001955958161791197459905496534825373246010832321320210147992959729952914679158799600366768977010576643333881878358804920352557048633648770658174058404812254006170277565692079106332930742923085170218814061205865596912123004440775733510988270960229964187379531017717013752555996909110246885805436522096325368541353124176889348029066518942369770107592491123067511003414564929249322895607678703207715958439609891612181759361249496304561403306804019111860942591724038348078943148965566157775013706581627319451316930943672240078383204924743449886579874609228174699020070157452624415274361262664135956513833045458794595211535143109201549210341931528207288203911541850982573269847121976225110309719336060363899926025517133454961710393532729918762494165624668151922888112014958598132920582937161941689257324893927506409617340036322142323850253817588924962036542673188857037482788805539497064490747721245494284693245375787688182380509677499485943907443087844992534077903391060625832862223692552322893886330933193142080252357918032478846267725393047914923639250795640005901431744783049328555148664992354599481048107527727328198348975863246700682691691814579592662209656603553998160910478286531180324554885453638103085507786681868869686883734882277698167226914321673880135609677073403075669794656156340960197702026486759145062072119122855180118530372455812543643615545892872025815001864385771138628564476027914128798126587536908141724676844013646813839152930409879850252243799268750987242178886416944421694288094743478752498895698260760987490282286768385432273095685031839143673294114518492854891827823241212355381494587101265062180973818939136091649425934400922428649109551878664191396072910186387482401974907199328209276321489934047812907860331634585898055631945105874388784288376559772791860213999330211735495684270223040512698684782960387199322484578433935837271177695765330114674041719791000891412408703990679288853420790741697417872369990594272119514258632000404351081238778260272493582468466914285500950058660962757144583114844772201999004396476545845247075187961839181046864594857587975451267007497321919471485064035403850116853583964507563971027379005525150963278236557220009633090003055349704811113764761974452082820289447438797076935567850946624200489933525019732101642906693362057048132822410813178253579189739142923376758319451626532047999013424744911037263480267716870748730993816298148245365482053691672775443768662587791535636056259546238538484977047355461885877558687545725194821670375039413987930234068949303973282407746264708520257042523218493834367682901388621146319779331975336414486089481293055768716730799961914369485138377955984465265850223450892592454399568678740485060173948903779610087473507800695922770227780405640438457272394472349555671102489718145013664900465840388239008953611414277547263957223959696981125418987428417839915487814890063075954904391419689129317129494503634294140368168087961103512359938172458114143499043249626153383887086629617500707826995643750324827896763510254215771838445647847312980530304465127445294040519187742169165387353464338597546417461334304780146318456231518867823274911361149837902897794156822799025706184781913053078761770596156869365101599204486488114746440621405000195372436718011805178274575032861310076056697453507614619023017177689799192873160157019851767161130679062141114532925497444497451728440266368997224800552153985192183373288820349108774448141487678821527818991982245927509190685952759359572173802211686197541480260694393679552234432251120870571369980054097880270328371573979476503062566779664327334942791084199726281430182679841007747051271645927455238969925835744071857886409411907175919451550453625551625799559074462742206166083385488498399086956187544958504452564636981411075985136864754294291497325107314416413806269078974389697371074290208735014960055265500214194287608913568276426042024362208530642290365927492167244892337358653374861472576361503682193761790077789469343073932166142261335232592571745421766396620611567109942786760707921911908229678126773062067336369122888248920300005036584019156561367206447301302744782879591700317567035757807305042067264720603791389074183497966492193298154296864470240885017574955078675340322453341165537250105736491002937405123482223049155409880964622800140561557798368509457881816531161307760856115483716357192325455306947976976852714329516633352565088140158786023861840432731944649464470348961547107114942600108742650365879983004317528999463328116896921285898389854074435706047103447257221401095666796323199121443685133902967702732154452284768919632692070470091445965660773716576074667025276705749750215442359590058575241829887088749714008849832263591832882585915403695858714768360109443354983697688817400280736696404037654403181704797494252596833111106301786196514556488199008538029842856460475919733069163857540195787857987882499491630787699477243543180326875339310999434418319715856944926332634650203537397447992157239451743514404588149019064188447238170160379972338383981384926077270029983011281682089170663622113961312691838815103289295263513963352905615088813525521190499205948890537767935111951310507822922710409889920135212309948233121093080311180715848995149985393926348976007718086988874679446428079521707668812266174777907146669707836148244613980331981638440831804881687790726765468267697740662629382235657980566675516615549037584270086307336798890131610109685832635348802063626550495894041723713917564160757715027712084898756720280631106488850897154196524088650867270313811959541694814355093114585448648934633091914995417748997262922476198696274823900267114270280677605717340445222322150862048299937029407328990089207962451114532177813051032273937808653260033258053979822360155729322571170187826569128228044838528412135852372477695441740900233444992763700189975854939587812148815276808390851246763817646987989903761042070385354861708926089957753779741705792569434009573974017559139290946536449007126641559497432477826041933361157781258217586947767368172673303415544453561523665708870008320519963528933248049450503467824118856982046265928364831880747368161885729374262969466219015429598018336410603338068925485838718473069727616391549116820334227229264420967851204457529177081268830611191876837342455852475311292719333666782625268982100330276127665431485081355707639842623382451632085036601901778406572675212986720032067392066070068891906285487511154125246360235989722934906341424168632298396774185461048286519471344828234178386944976628543489793339174736982375740029362302958315661566015236844610584547829243613793802249371679014701033118873597766167230105218193710045069643128975503833557112885165835049056790071046819672110411267622089264951661728904255911243389696865016630814852105522949574543198460702464545812560424097503309417872284784386956211629327364442146815411107141831833170140149579313630968902968905017542403779668148623084725948521384897851976356781993925715883043447713347770655223260786295288112291233684061405612083498907393000630020939475589691299605297925950207466194947615068416306060685853139802504385899177327792583238936921123325284326464339409191049591093626250909226768573796936811071247128850163289372116909755191889890206588939371735348517291725596983824189555962787627656839342493797414680527092790772779770430542021166939502500651226189881598931644012683672544050476879758552743036277995486088969902370599584927908368681446666938921983362473948579542811115961585095148125034640653500205191068987323192164310719433779550947189950324021816786032129024050781793232589342791803987894967357256783810516971962500023236993964884522985133608117100263846566944177556549592323057825627764016784646485062446136849959847053489625255510665120463309744575632281084012576549851493302685760006385676767916071098143932842559372769959879031832356647346780289724416641849029092456024289574044080174451200902065331737678018870382816257285753337555007717270923102893663125037265178664682032956709723402220012228745573489820822724889134491070215788220080575383164889322998357267013336043563128185099804684172162452755761243037165962560301924004751438982002023484233455339615815765551526778976267365449501851869045809506452183802017471904269105284467518633634512446556052120174599192548450154994025211534798793932189708884633477923263875160857955306361848263192034525412317139417351825946116093552235057271419928024564686553468033146988896516720009557018849506746985093448087553864425767627499469505731480149048235316390422343623021923638320139899823444457712955579461863310578520507668134578276340807596691880638637973635249131150928391250911049998341932623756497947543934392282895763857771135571330286990481573331220343461786837474766793685510161716810595128700533865915758174249692209429025090591011858385195956609901221347320388880920313363255939661353180694921955802706236371650029107970520720719809133231826135448923145772397343078026799696076115051781902657694441645513342539352033476849254664117741031137500281924886245264047265621394710576537776477821980202663981243465209196089268457353789496321426118573579417732474017725373683809592621460624352322306309385463378424595447073571557394430390801720641596734065697620360279519982072851135194359891710678981812611602554755116557029399645600177663431147699830675057765136430682922733519758559945219450752551309259679768871451362546452875385390305184803848515012818916213698231502562281367455888247907398466537632240063223536624926336978299058680890202349212823098902010272098764826219577090888780476513991295509853291840949542385626582652805113950839453901476509227035714796466224346846719174179449324962060533427344532788620240459673526659271619508620089729036937543044093287591440746385751944276660242786773934292454184045859586608465237084821375536306703022405614363578805602939805507633798624272525097426459581140987978119816149163025282013649773810702115811981780378538665158313958199589397297838728837412806372207215509597775025845084000034994528931905504227804873597572374449624409836573707684541285089822217142994583087509857646482973377634788338855319393315431909240564220684326437815549425042144700642935401992174592021062232356665827667939161230323395262284958543616529453748798873033307839461300882834788744058276111971665554903428659859187537676764822642647672994451999869297187968416033921427000602587181392695318256717528651163951790961131305995582376928542225356362205312724348698451395072296836647516146026146156352164403952739398880336479437233213601841885592735194640878889440383184057030913424746255089340796686648868632261462016100722736957932056178596430075535657181762885704248249642184049929513996923602616431454921873012199571031584186809452076218408225815893079769751785647609742345642219454841797332167052548185238768100276820463678095366555521298797270452230863701421130750750245215025821252620140465908739449615206439207864757480939044379898996270445997437630656729085119706238322785230801405691094175090363302993843445648875435931951326313568751208691017937223030915601446162871601062355169024740754057719009702739146717757487865911874340763890512095082905343448529316664755488334196096011618808039854168819195880102547859644675998680581329387036459630600278104906777162460410905920984664299473270325972355983734573911016179867928831871428556778028828806816276981840465071540555943633835812381487658266436906067925164359771621220395919010317194275278971408975658436995965388457342763640249061161183321046306557057329516771645881064766035529480676489277833936921252376048210425162093589609882264771644537660746848831079741346715939803424087575689531258258855330217073395987287713367350982078193758909520972683854173032933866150018530275047043274933576000080297683688828979475002771488020880896777008409712816391223914540907397233878704790664439747885449478907565903767765059721329422666904916556680907071737279367700769759117818670864383766648523811577147543525709633736249088076410049967411861668279346139008999267675351393304977607865451881831992348720613009287289373937726240884357384159536027995314531743471053368473770956241455883375783647969270185517199486624534854797608918879941582972114856048480396557754517196124288416519102149766924226583463794862018294072787865796782835929211931934887019443919459446342586707146081478981390816040521140693875201502106374683540334717279286501158140073321266403053782232629393784174148166605228194801055169082535064703543231773971882907026397687244016102548515253945063781022093137418882957846752151910158380535059932654491217777752489207494746580495090474197560734494368807738450666139670503946942731030037056479745965046940610943742711327794560725657211907447906039887377685569568239336257934204902619689563848239536030304800617965195372025808412046329160482990010257060589720446830798230444999064911716858544685253459093611999263652010097169819559995275434670262688135001863146035262147679804963542000350483098956719739845525481240232873805800045534760138599480070312991460305451836079755792304784584773613159869961956941220518561629423613717444082732965027803719857778938334708533536954117501219344055374163412708376652297777482813104780490067915567096528578433734569109765724809458715896416856842462685681611115195652820480739525114313407565315995952404263603310006150910569480448417742769090416935134875489399317147031865002987241726452121340230244674241537739152559075737058474607042326067566357434721350429639506557707160576626774563846436957758889856702183955088542212711963429089427353312769282181475406373039727377407055670795401273470859345468667176387556974740770074051288592835850048496434201273335580301486083463406532883856853743473773269334680152459321128370701072048300160832448904831426619738221764733324499788564911334528778878971629151364966009942377262245820201902317233245121150439691324755747386545354131178533968923271005976685496138226842336785767794470476444749990597498450937735130271329431045468755352738336001175444682203380258451824102180989734174994880899647341340397589890894465339545462971213947342696615362450155651870659874759964855869426141440195822882346814234429255036109842831592717309349975153914701684988807423572682165993415375247092975747427863723170587718347104716161325630134717198307937002658565928629173614527357124954033794423662546259637327838687557480711051616777113750164985730456616665444782826678457143123250114913401737094085845583310695844953980442273233360856714523654126174394982114906554291928279990471338991256227429113829572693382968781981003051029891358415428461759731403159067785923362086900236026323632626935498250280328416469137182665497722552161025727305926635015890081498749624719310775044270540897230179806157828515077959346648223491400223297371914218279368685023534735929385524942381809222001504034648973434300648939176235449941140328497451875941907486497534179936971161690086450405557694010865750719762838393039269135057431924158510974810817790398607890726951005620734626320250382980848277854296200476090368049325621860336620977437031919233697154991690027184578170768840679676262899608185341731137710841667569322594133175907264887493491501168269251522284140328943007917455594709884753439579812191773156110252968776381118701474232465256489866679857330591135168024119836645999076266055337466582912661910071784430267767797443135072639382660705051402995280161538711353450952021481607020511981492643372126367154510823052958919105417829285717924290479591781168638542319588554571420145724441337945704441932868832120764375955055981460394319287275510605408048901582599253589624898705439027831292688997647271271650648953252771484645083701574570496314022099162706015005478300758741436997600567224940785157340298800807088516246855733877798366938205315121236239916153109220830309316033378523252428464081793275487084298068982366488715646410445698361919581198838000127992181465523752579291499633701083842411231460905938872828510597466977483019540503785116303073779609406166086881709233413433142598648972948710749907620693265081915252868698396676922887514995634167624531820160029098054648216571761697635472673330871497306927272990138495943627137914176079746354355514762050824392643675972288916179763936505752637589759587894428619588815272246410243946796658277202743546102073510295040327219794448889433106797528595664674798290662704273295584003804529449702696411750190501946436845644459173110141671769307545706410323575908094842881926686505928777272829504283182552135018409962983619852894323195348408357962646334013361038295189437194727818578304931638593453195445194306118884944443635449508302854149341635580488843505221565107089988122589410470306075647110068842287446468403634935992768974846206659564688115245741181663290374419610676244106543700321506317312765109977143370672784569659643587269382761360873535076176378215015483759714568559615670297936583113976109149738353314904540576174221375299319211556985436964184546985291738803025978492080154602865574471049741705785379236551634174945838784388020478463970245608759927227926802220168985167790100855934527891790051062505867663207774460355499364273847922054239378570467099165138061921984790568751089234661370274230168536663428845936133899035435704318305721050539308391478712290316611309192677585092778991523337294932141574525341962766664135393469776396563632106166451599380181641523524549509325038842903469386274037810142273322446675610543025138087978863836299267689380488070996291146454220248419737153326973368732077157808273225542002665749032458836550243584010448594648265218093942924905253300390194735437321688651946599603502273722426910490876444330257736114911874304261521652042300051886048512821086249928767952392542998561068764166578650857585312408139443852924993050440572754652344442580946699628439354301060081522365537671307818987261857347516826711363380792535469593856875242931005841410488677511108113482352372265700448836526678729839891318990975565623737200437389447037789282608452054789181605901134220871237089398264504364353319876635030423689257080320417622504336847562355249904064873647629727611984120789198485858196638942704433925598152068945927759273781314949193058503455348182758896564914155200508834034869817823844944937770880793092918626552026556817521103472374948443232338501562508817096842309159045020420985827330933746637909959780257454030322348342806129473832708490833754542545264731749858996632920548883461585965389720762624794552096680852979518608748745873058055035669072695687713855588502262879564434790975253710585893126564066091086400988524496554070336331010491622718802641324777446428679039719855613447131265739861568028436611620892170600618330829219358330822006060808166961476921439709410878157877748968027498551777802775539355324457120690729387149974080154374038185537391316959960863466792734423392220709209214612998393417785563030908337831899059416394640130851323313666755079738286894686403291335090346296287426616338832714512878698589839549271193655820670683486896215484676903854594067479646631541357456212203175770423318898063224409502145565036151577667890295841161146448793364546328704696325197693584297660051178798062353994942075279042825581049686568396059013426681931427156873386463981939243024106131165788341113072194729545441827114055766192734741706799693234108295502236798102879797209082010450652707231822947672895681376900357941195875577639711262799971734944705829336700525269634024071216866753348304990881092829320941341489585435987162552526988430377229529704768314804244319911759636063906970150005651306433835630463716588880070411178816090720358074012623325522926445780589430334108654863946644988094729915804124701418527189392286477022091174540858927037565547461222859797076584975151013516982085307357362425912650189511109568525596687022434774287873057394986108866155702219329930541291528470393920832883147104474527352949945305607961807340441141228823786478732915429567286531807453010616145846505175590624808434245979495664859886978543030407118467098225068309160042242652057769533174046029737359568757610387219915456631370202608308372057724819618438425036976760910095562765662322799260966796950226868046102040275937970974363572463773839764866576184567444660924581942426855799069725709907664864919071768132521098023189811904723893612135909724437925966327520235583078257378182314707647843922156827443166889696866732999873838186331433912783045022084186081001242728020433706266560919220172604912159206027175830010484966676815398029520315542617502053704164525683564748944809465119705398257695304616258533053084143700827160156165492465760952337036262372327901444115093920440111298377769152498684463054734755322819929555735762723959267942797323696472865847390824346495314937209744599193565345228183918000048255425255546871905886574261083241884723749819567315616504954550385881880659309857457608504152324651709331266189967950878870512500479505290094113875565498689288876432786037313490670262896617155332362566208091381169694804797251523256558841890272535274332475264885187907457476635983012926785419178845746594861739134867879572445908890877480386620912353516128134728939037603540543720130681072862620220902824910162995407519012696781099111369373229527085311176732612721057078434714156727104980231754684217876482881655085871470160344722553743419098025573691856696989944782211831165084791380790924812756875519581255135455716992405703791973552006192186972627730288106906586086833634861449939954883543540327408531862506990502954285465015477897996878955801223760631166178937177019063159881922920872739803602856309568279286928923177226087858967642388058343890924832162172756529291603789549497212633216424390812208631282826010851157773072925241466306688681230974364546940166741978969208736289973495084931182008449478379904020703154596253917428233021936476015908546016252933375527534796006180983638795537663619527346751815882204778582526858474783024947619220152555038077334045063734440374141800506928601875001804165071060188866402686542668173509957957208986674214887656076081049295700910308649310605291139953730702071634272730266642700604777197125379015881994760538129540719023455975289750989410812491558659799494728577956085385613559085915181649724834251937145776098467415130129915228441110396798266085806954980424464688436085584823208069650354186210158164840675858128564209258748713998778695312849485944655423102401603260772966858839998549673816788908587017492028608828160806372873353425143732699728442618193764216617395696690282961504788415369553056797890511024196626210556711419820427077302218173627071785574088940886137013821054731251285158568736682142924394174963711980793086228090591350384309875944827686480013805355619783666526871107111028823424039801994985850838036162028083774119814577739615822465443899278602578589584917886026133371558343638612994508550395247736265418905288137230014100831936483929953110953245245007403321433983346727477417015639388688921929125382647394583741170434834205985074425735478371201292760339777588624597122152465903566004676094620192674372359611053711880093857600282931338218144896251802634988049813777069196325409218536621136252270533167622292929281531650177880330729676280484698021880761256521425011492695533313332497810748691775795952678172826307757155249579366651766079343694006149982325579057103041366793101575486668739274037179666301522181675915805827974931870480423377440336793105436794041629112495924188400292602465981093985866589487722250809650067999789857952016013356402932449184778195476303937205638608426550079671293944688639402177540485474139526581075609615206591796287537499493983598921167382926328799084419928156902597741994652634598007080854870853837703519271870369627044587729249551824145211644808638430114307798316046044743198700008696807543533425985654303457326648149686150670395699975069285661076429191969876084893572493364109669897363199408499036163027986649769415044175510604653937862004226681694535475545638391365744680518511546189244398368331571075285898305084328828933078128067901587820019213588048187681904620394521853549137314733616338068677521270286734648448642922565086979008672908010644441508366532383310508945286537752090416948255988232547659536318066761418545053936091007400244947561648922408190110565306137098282043870996159624014204464052326288780334910703071854417060236655646945053850499880570737968503135796762388383501478939487635000860740562992028593094744868338030933573245697920132756245039749545980009118290025428277969413242167975378808910125816613655403175761352652721108910964625960417144185166533314864836074232317766314923131534432229288048071593928553042462672640011129498762506705293501440583804802888268496457992089387788400581177174005035664446726156906252467689955576700520910935643969659961476276548918580025243782400502316350603544824877337362706113476902511044513583240345693466149634634218812417855386252985726285611357076355199994295735882155515106360621228551211214688779305019434500372312474129078145284783764707266615931553964656597798870130714852766056927996387514773570896648543256386970290661983299703626354424199394868712591665811913475322049409616932530874477575920473807995742936701550731353126768571976357690982097958770082192003363757164786933506997583889538308090014705179340807722527329169987576228806163895299882677459394403813853187022830737192742315257580830466400656049723722349569192177243646276855950744624185910501264705058790489507827440499300391375043402670940624743876446869921884834292646656783848795660260102783251247449240166334934583014927051428630627561685678480965957543294911151496913688161968891833643175646525789647096522535951647270917257080132285624636280374144014213796496650904170836272117749595587943129046162415355811985445733696234480136206611953036140115729454173674877945546920332988380643339453092780309056882994080530753860564542669435831561140893922464944454273508200965469336292137951758901661015162852932403389171285943403470343829873419173382955283119469942777480979152508148511988708329412308586102515871588578195964169224686240436591837869127651111857350378158496134190885553069434740521711801427916398953066769868035760683934340804632429013432385571493897380379947029580260063866604659467256924415507100365976462261301525555721338213373937786455222428188995746936861049294873403290199425143596393396167056507297216643017288257832477326701698583580392365956589254422813112156026713395611392548298043961878710330844949357483467197781648830921848921305583569095824452413953805438959960127360679058054697179098071372459756473830434750017476202509960633423272807670659295763008079208431074493350164112312491411787738023659068893213200515937896801451565155526575140266885025258430852144837666080122548848964922107883285098375753580224407668339848443334729336658788041727769074483572104931569560349618483696327191801649979922482157202384882266879922185291879209404816604399880580846804163605700890723770863778704116924609764587100746460652325132647942666709249534617454538730236150615535314856721422958283223167794479780542096000811231224262930967390116615418040554561978552305661646664321013191573765823469353610529735009124668543621422811622507585537393508144798795694420268304481709588965524580970654482331197953433340758066800923403516899209975532293245394341237027844940331758530498389900936423865122423753706871221805534309058906557943282386319869694110377707263165443275193797123422163780671587768116030300949918977015452806085267941036139889536778155646345648170237722222226074017410505393064222311953502027891756946446323429567205274222967653038127677371046925567703561475808537214333754299168042851622639536666207544874285275288089667444857227279986453310960713886070997233830490397033143496035667797661504451736809207632323507645771873932870186049329953833978100787202429242183728461066568404214083661103515964080651596960278448525095308026985931741744535030084170122130651467566768803086487403497456589227330820543680864148384268727513619592810945613046888177092000952328324631818392362955339876969722897253880578609278854056091112686316153638500758915619342241632996139900962252438344185331316999084771504103581219921770992892429295171462072873268766080182768497839464106790304853246789921231579260457144031026420170422095588974459034687707866118551862326655409677209699620920635005767473118287216280219607137547852891122808283609785309293215677447166739669570213720512476985209887777920102149523608152746110160986133337898675840552299928635913823039704981861661635840116875912004414952780054769634984855845770897891016580254446087650540784221074182186684008542524193337541839749048610550900975839353763025035664296232633193012135726812176876430043953745996367457519636658439562166883081942379286355196017589934885042576226578341118913536259765008438248203833731164169281263304138659589811538476805079149316857376236764295049968263152463698724264334492608704583722618018127742013285342787681841080030802930032228766010386658402477433330945167962419590132048894847255229250059590261319462784213865977091714806764850159647164034514428736975426845360751266545769915555294676748054870979918983385731467072979576628846540088705100016733731310175344579952592711929748972707778499623434709018311997405647259421826953744281595845893153740772837854578712195375426064734772704097092494555824529054525042516719617689460591291803667225971612085578487129895711448676778627350285086424506686738254336831661161079553417752747350366460078739084452615107275485633433049562376632003168341509739428335011175205704270072593199376626183569397747467199198084836954516847990153207395711624924261277166148438335847570464249912207418094316199934266492195060806170002163986824403640030037935869633250199797298587727418811679489543245110183382076876336455632914184856901559945128727857114305998313408567959014382492839285541322896584997471584043893446279752502116433034604801326261000004599339425542466585907230070797519864018616595770883041545194612112062696586000357270846487179594601979315370113119176801844980340489057027786762119475065728078620585941271406535404862110723974522958232014397786662251941124567307757793131259801797038501468677733924252394799685712262592556826961442666531072111061386309360369259451278194812637624382617392040071558622567669397279281964903114801942592285292290875905361684861727610432734485294282701582750044385294190439741222539575784090745557943068020074073885655476504209882505296046842496217714569263811649609696649553889970602229560213874037191112758997600749089637321053767257591702091152053150622814675358628147519530857956364337414756218588523202751240318184774485974529123358866743115197518314747852730382553729080049310882532238119714304748089100145472387069884687473461677605388857700713416330667187963880385271898349673914511955957048338605655607447649632946855817732726406515550248723683367347668783823746907188281536489098020415565551935351101714638021102610001844819627578826464160371581928001090313564851274077677490734600135042396862268752885877096900112313228061182665906418331993567866207337309910316103282801551252893358151515398236460578886558994677935038173697095640013808779371183070802125623822622298957912997654844702806728752275773744660497754660834499892396561009317197431624373295621261712849705734148304785215724582177860834346124734744037834241592207825233810666824130256072646156301870085617795051742507615108858571345611212066718339074347638016588816210920378197909939408161567877261342766111140321443375519643236880250819255830105757127992817274595470262116685334570423397131377052703897750174653062630687700784375715194554037971290393129075121704614596981301897801552916588177437438613226620790663073200835550309287207863631212266094697038003865625166652471023475307992838611348667940619747345947504278225686798570419304305475176877461233403636749327349396962107198963892760940735270033910193546732996207223484764377428617848562665194215631007454554782337428829902878261551748902769942549853893021621926303021204218158203551819564095868051434016500051396545823677392016576386343932869122327821561594990019071285843433542389501117748806075971935654432440023235994479389067805577733439905421733650026544600830360932218901079572913403528508387415107489701175899689987902250827757470533885406476854821807749390263334016751373635589369037357386718796580087487311758716015159166625350726271442295959606461319506849833982205237861457316079243814949318920298072015915886971090364645364941616689431257819931680587328789060004984654129825675555563966923506724996922151098098003850587323470368928602015160250991517533350595867315782400999550447959646862792261891938821528675370437901987316900018787228259180392281042252006932463521924178827972710124958615485271017029255881966321890071379464306670811895669993025379747941767674319110668003067392315318863130311406196183002330372763191051524557962915488114523164076925486509035862425237851285549288023060742083477130873907055992725226889929255689138497478951797397169619836025618617783214930476949578978395289098513587340823585378576651508012914581834485997809227238137181743941572694931924729396883043814258675390567688757980782842356367130484814451580543160834181901380824634890729472824069614315077060097014960138030935441918254797452841032738676650111354637120876807497505934923145652438879333325985595858681446505731371591182488113160821650057626225628427582424040828099372128562238811176065092852587651831733447951241864132419667080316439535584499439281559934317850899193310341882397459909819988156364450858119679035300531818846506274829984412641067008852770890289836014529921971437819354733133241789845841182266523618763981826483805665656688634358040582843133089669485656374042393858182152722451468401826213860232973504662612115036286907716760886655422141470255665178057176609102590130120598783828718169314834899175601655623759331849895266175600400630870368700282773014043545079526883095665897026275138947050192291547741099686562677505034813191534137712701821582398272725155404265390255117984588844013843407094659441686945540067818767875155549185131551686048205579041819327091057146003969482585482919078423975434214353018146444702908362181851842283563288314886407994880064083170303539742071945326041842817720847222472173303698220425092752590144215630496755149499058999802548741160272156748263945387271142616126034562565489314989538349553562763903982893786408510912354872623175066188012033451719902501668058675874203633008991033805302129439760668483727413378974911571777627245655117126103901235655687180578126164577550845839445600451175727760211546302322937535312404691206406837537468395207879136305998658266217376762675770597170899542846453680652248048402735185030745430126544000150504253343372127422952342974221708143096480922937177879100784882630646006659878267982096725414314355058488672075012075148953246417978856537911186618685622069745937687755260951298865288049732433165139294626770720107815712654811832945633606896162381714866520039819776453744518904257356771829171411994431991022764936594369987138636568227453028181302348607912047519532716350276493993136221042992032383603079397629231120043190196875232393125831791124267280237341378796435865984370817022439243249205999146293072164355909783634207310446769541545010653212245806133432044784162456919722728417673808979633990011151159815313885920602335310382210765910244731218810122560283765661376179020494047785230472294125060984111519605661168570584404381859946299764985380559436906658193692098971837204035974758931099226193494671982577763934430496033070471970227214513408056290781854263646187377642740357617016705011347148874113705451073181336191120156489803580405713982327317195343566875964962133906272121554748286944791684257605866108159528664554113714046738898563436058636254334852000441233009728808066207530510917889848638258317663058053786384774017352173612758211152579377376245461478110398574125622338019890533003331694763619644178725050363019710261282105581227261335013863045726956470542729562611155500016127667111979282131589957576955324188689260250066641016780992799224268346116855894912349926258760157195486738906734316249148942304103534161138590458662702566554822397796271414159887762930285843204934980845896956454163424438221453112554553429862047306379294904828961551635390448347949648314971545930807466706569038041055440749218914308673239612885789027283540368088320434441952240137909241459690471635688069646946258679758158564014459535009503419230344251919747592283955938294137427327508067802741574164630971763486561207224336460132597960682222316837370444943148863959100486278335693092181108240236962868735614955181436938671094129486790840651684483704937480331730606125949054462680185947274162507088913915139569139981498623517406840954012136100732987522716530888249578699481514834143652477171319712284894753368672105586317003378030144333419798959006430107399981526142824540333562663712246348406047593755674253422981079613357290106434247665165939314244970070993632220767620817065169155560486170886677201401517692329301437563788007374361540330725912917253697381216918865153369258971459370130707316854716138564944019321301050183765107014826977615035064468077866863611676790224436178539478250713667159591733660359174425840877359655074311504487833472508667835306263366348337586400319412318223749435398606902236110495574177656722804031905484034684771725191272863914015298544133015710597586233668296993034180704408569558196900894394197235518357674341856537352529090337974149319740822390712700738019842747291344262233441372163082074813754875041139344953094538148854835847062694525018265595170018524489865762031443028456518247931513780825871115687847227282546158658305718499133173619381195912639478648856774501266290127594290126664659683891377208564042513679058452621829637298276111209444779688218284325699779399631878399799048878855992251771038910900099739764363784314108076016917049089084821159264675198351227881813842291801736442856266572224374617194653537425174612238443988664282592609457976367595554868937720946655477579570717502680019423823565712949855176045653295905420976309034837665262775403372217043612733965024011877150650414700069881466396746578106813259119162348649480401574814657472735407927077922145782118538608504446719726030654366265545524447425838679106108082006170508844320809458350373282568185597831776726454462405996694063400185246705692919697743191911731098408614557178430437778783993116990081297597841392872800899794559209256158382348982496545355651136402187812436084894541482289640987931935154922806048879956678874478475415819882974982798376626837806257880008599852736234147798078665940018696478691788609638612287689888533208648001783071749052191109148754050782540283236356342689095172692736827162856884522307586625094450692696068434184242894977709577649799540377838108558149348369867688084418752554643652714622222802289545973021716354283997266274707596687553631465540807459194329888139118383049276739113171708269781051080807203410019343709834529368402234177264915204802270078774762643849816273981622770736645288885620045671950888784622744203483894187822347391001203963636096036289130244321703856043043856972175157222703944770066854855204381403986849831227235933625660581575456650800166392651692605199181671431665020630765593172492553220970430934988305970933080188099672343564928313387691697966074584887786525971423670078657088573036972614343335714789269619576181612748580784324541467496432795817633003245388542898652201841708093517779901109700726808510431680776126602268451963598992493121617159581178054676882468747929003880569149916699283525260401005430428446269389841267361506398925206848317556955136995534843463597700717151933930970660717812407782742368848110686968131038080660890607547497785479604558285667252723202920194172986406041134071769217195954408096451067065711806337760391084935613675794457841603953551953776493194451099187952309783484691297506595486809464712056545285858202228383217666562302868112751061341936565699588376588812818125734024616878040243026626011942446225358293883620154861229059286272481593455253454262300624203478562473331803713660625028395235013744288825329915754471684535716950766478295162469690156836901760365169283824401248491835141483663362583019689718904868778631967854762435076337130947697708612272449798942448682012569914327416520426523920832063619239972252469206230048151174594570727545861685747832713017075604790407220990737543948730983583083933875386227495505341708941700554000034495735585966348381424293820476798994674248464201464974196059330603106052809977360981678686861927401584858404580766651894440108336698928218744008429240100639549817533530048902938867690684275028270346467002383072088554736172690115956113405651151519099116055668069560576398901789795035276265504175151542492038035601838989465375051408611622934756425827881165738891699922832229988429320085338029815938564255096942323118183862488391172128245661773003990877761318041017633505237581362208627896868684840139831226104857360011023690112023451105211652238415664237881329180903082372658607576368519844521211503536176377456761958818027704763195257113134854403496981608251441428304925763055900788461909656038478658369297361860231839907924344115251193225310521696194229561319520114710645115028425870360963406161929348680345756525257966265038632544937306958771216588805501191944870831498129849477546418947450288014172399180745162170376135232894714709347900407221017333451377831805786993766140881889112050580645326888460122641598142561391493016514670736914863894422238062749116449770210263885702160872054052192467229425196583229733523153915406754217650763723364083830434210087301619356948255202174320831634103182879840030954247513422757060933765368688363797734522236621605864810990780829951447137605048940206536341659271348747251739979615321977151750205642373165015096917400293645373877063074084180402822751481271129511341115054317487043604618804596204697946191951384272363585061690189625256632897589426521529680343282830749098394227549203887448283569300646083233724754014985480822140982135351083235496059080801154864425057382397520119304973844151426622499115382411689988213823660488103246293244113411588137906274261369889204190842689573229914435465612482876040190141606619473013261560533818757471657393254853386931385727722864080257995643619407156298549601351032792315784497250543219465417463701338166871488866049801839547978618662244960152473346318628417025982134185228407502962521918673283848013630168649778899775825185018784716735911335198486698710561155009284070477647720307696159459733820448464938235767498095610488816053961192452146140175790058154461244688486873958339558822428270668350746329904065373511338894558595419042751486978454077198321894700845026515080279891320365264263772007890129848162911208095838912942541877827364712007479549563474012207681394016403281973814376759711896766156704522805178706332484008858209844074525982238870744844564103267745861695659403238373377378099074517595933162795593291475746154056398828918014191452417163894118406578420314491889985687437117954255743417968708322442428365407137922910487083527210874386282801341814122451536958478178204986850236598435021386054861088977622325311875150379826037624783953142201664664200518933994961965348260710589120237744080134520239062649178606767781171851613285622348183307554583669927840527952583362281379086377038685875660173113775262026866144550387258300030962634257738071510947905866639142040464414189628406505974212575605817336700172540850725283460194287923395355407180501464187751080474737655859517571246013348656331707385554663021548880894468602050343280074705698201513193329822080450366569809045807183872672790677715145360911462847240108172955130116552104398743985852038110221686556397899567938018029105953959163972450055496982576981874856665711595944504962696521346384577458214545484283773879486599599814973414358040049556156035943871078101527273174814479260578708581699585854234799871397729557331858227320756600374685648671487668281327952015535276575282067008502555406267942076185058069248428725234530483247379302097078246636007249509369737547123196327364456452172080196166609837249556702116806673669891211656198400765130678246983069666784241357652125494599406714603525674358487151332506236085802012540663234599975106083334880107007698832839077359846006655377994095892966256478302056799520552069999392477021252581281905743606533729474377565668610914131823998335880382818575410877154364401644089903408456829973708231987878982095312220118027831940763833249514106644359037158411874421556621600162751840489670244524811383718091515440356213850997903806660640165674699906656691070219583263290712121441729763509273981020072869540477934057399719433458810402434892226923129755380124120247265818500031477760537334706840252831416622797279488615060839567765618904807078786740687845355673117661206498978864380241701219664931757020564075087571617507133671301781586613202089164562255512906098582465403611013390626529396099487881409965589470258921056500666345562956645338165710434700735871556203558459111321335676412833593623762151175453554661091240434982516970356933736250303940173096059880138224145348501374255301744257447676021833963991644766041249361835895030702684334586065609198414456100338582806486246318880733003988610996304401354707596211071218384342389751342894894675503978229688481572310622123419656917644296042007239701856545606869007366978109708860434536410298578689786274406404242825130584382741649520719282785463916711919497507534680679306228811187711406237295105490448199656313209154305314545403310280545489877180939141390116230712629617906849755782605371422880877488110218006700149962564783726396158841663106223189036179039003799981758649634200516466732879032747365740558887062102494348532705358376444121839212510378598883404255611819054240583992370514389936647436459337646443603880455072820383651072932049564858671204708404461829579105219902441044146919636968903814151405621198710047953802125510652423323267690262229664928956316846454076132801501304656110195650693627871588915721980794568714652934162551980956940728086665368772484735351878779317234654991809527951688429045164417175190560305267655268610415583657692470893267564646567388817981997211071538105973606204439196675346067675260311367262156475976048846995430727368760171031180388834129217335648383828519995420696789195031335307158438270222819981786364180092193265057521701321205252614480068833672741039492704550471731671198157663773565109798638725573366341394268037579311419496124775579591942478298575401076884370105931928112887587436271417409947131636137423040650367524193431477090819009818746045334351511542387100578608783054421482687856235128128045270481390982038607240743165513628058396505217635779972880555014288925734928918062894501208455982247700819742149509544338638144063221988981733283783644304732514603697542507599767634487801478127895478745839042908675511656153334324515197124201720942090856156593658882299879265163931179006902737861125974112140660750214756032716069125664615203444978129446332565462778074927146224269052158613184200131862221202376031893662344471976533248552097696861722374301018929794038070623078971813669634877368322553083075984013620361919073525840261544730766751680791821686160733748276884854791734981477029808569398470870089634496370023617513018377094479585132004284064241701224058080221967269716615240096612112245590774367027597124139107053086466178595458954255940293200328102326594932512916968871134488651103696916990808544311374278700426996317703191175244607441620469153513972648896124655241414927573272437417258968828358153802269732100992993865109966668750296752097766596938678876431222939589122284596547813188635533232548340983564479417765197339119083744835018056655445565211463014244219352935359684317989851478716840419979456599391693322938428242178730757531986400868047493014569838701146238082427996031489057459453442783347728277226391314084969527343181509270876364315073569018933838009901583611239193279769651837391947572343052622072331086574762668863887358455406561762309664351563059213199505487227877042732859543145541595130758566516842557271685542193327056213463769128252938518881086383038192066131461598956364209767212643505417315586947582053961310894118097794253994560627813086486443864038103840998882875119983850375422796721877132371152088877259294967380365969292127204969100311398453500743241566562615502761069896566844851787623516658278653046346035919206099621146372594071361578002896721114484254347928679316853953998410613383145608251841437606029410268343659760368787615670494319430600533834135615005348302623614513710114133733955580563416437211781314596513096263606107602470138859114003112746672068475197026264245154479970447409421741722263499153696419121202745664736742691253069905867229201968816710976358464111786389059799944324667447075522431308125419459849635151458653549697489143976011918373653472360065152694363806381200297975391871718057547223030681324215491287992848956977568224879347300839605266859885090068433357143150824399859492967409934708496096955140262472482419912982343221078696593782181526469083516968501504889587361039240571852138891242620543710013301820860182081510258513899108834703244445921393953171198637338398145942811272775371291170325812678719742947149425801438686100513303252188589364193902827587419762885764822811678074222114976423877742447816183567195881188619484494713941294467254737825864503803607159331349263035024338088648468055876290791994495544634745502873375894265556804594100094563143318849796007928701327842071484527923953872689156746227687438895853794685144304735724277676110133864711110701127328049953538717573108537375686340448491037382781038239062213002682312444657215280731795059461866279249427858290233049353194341985831321827146489980847796217059503411942416942191071106731741914706210311491099553553480738438680429271954691025176619751427309988294692791803629785448256548189816422503645522859765068016579793060391471853599665174825940959532961463625753108952615620458385478010333602964039346654517624458692068729479248462524715463364757846607462431049149012132845462910271652319576575938976868201746413187426610298046220779901463918062364924521095496899899626152038819998440104964972255767756117567714036804337903767170652842814503714697481359379050531712205374015945898554767952419373353397581078801856692729316193269784530600128293371943007225326116897876645588145620482107461054569427779234971336343172933654523169921648105333524984514163216940259004570354497915757065221070521969045095599193456618988036962211662250468852275584638046746096069606451556093390255643885281533559737677993749227842031334548921483173318498367346012249540084814511264751591898260962718868834317928068401777217233278828680955578943697132569833360348580354847298508074873500419991729945108176544289507916978704945725657098201809093072492045582851713355334153019317448083865246640971702486428096250363931363279209444222278204682987554724985742376734839838552131460105531762206652334921977469312637893626157324522907089496608989424660496909347788649425557879008967015728007529474037359700507763062030771081548326210426519192796277072296407693582599447252939156908292288653540582519968915922606029641781573050540185458419671748312124874297259484766577776544314530672294444652536726511286074784012431830745856386651040527483894688933778294307603939422854714355284876552631400819105996943645480124140711902009310873149307395060110777261125532211124317151750406086022603645790306830715843043858920043704175818561519313030266173683939972473906277148667698154685225698366571729319888459999668175720754399742000450466875812837739644785587554131490614702602537717174481161427161234634403595819955318518481413981392438054151774838005642036372159502831369482494143119950685906138108025457035085270330578930009430470490214888018629494955346521803270266937732721916892779989605587254652674998030534657812020848957796622491163153915261951357677148239140673980739664886016331048204380685485610804782552653247514777134361220653805855449775475142881014464102323918955171128096936038272979147458423958746444838074761519143828344932748677482956572776659682329061092605949808847150412795966971928184512687100441839184722424595901764670162872527149378805842466687192531623408274691788526993545698032193469822025522583634757874592788999014049473228755847508639257495124400638074049030574364949470076683830843215487465289386379415258857672571640767391174798267721464143847653860906787711658720731839620817565169453372640962050539271448705186224038283298687068635660196674364556859192610469014659538696699191872080003325000833447459016266429547851729154649476208507150308995115874640656223564713884507116667861735932083797554766285101531183069024312184060564120774736700044446208790445076528728845957868525289525116576096903744457204335104342396756171922057010356445184607803468085206089733992158269644765275758322299563778480286233189618038679056895035095988846221639971975842398063885802913434820717324015136413141177474036173342643259465868726483889502178003479414123326898887341143679355975711156858633731911439694095899504252594878596240130466539477569311589198656978204626557141250827436990639023197299728128639927391959611447409069811470250954259131684826817495228998206896998804110939413404719175873593694619625061693911371154581135549403173948769615534844794860924287979040394644763735288078070362841877228226067587082024997690786322960896403643062342223030391773339419390996374300560506186357916961103965887661964596680040692419471080666323011902674306476530319805143594793125665749185036265960387365101251365538456061228440718716283282567544762070575907634420891785131681276642057612881410958466915929790146476505379614001898623771900170184510297164513717436725111783971225654511717480396794491020157323181196227842369382702093313092340990724630998700788105227021069022934837521870269686880907555887607481827285774541456296920452023591415443347233685369966204827215209979417900246116840613575933394430620934743052617932150419973676870613816389761162406710623459512196232673465842639528737642736105512393923497479634610928666656064201813098637803178327783459401459214506215026914786106266975080501350831227413797041834681979527808026173225220246404170687099001019454880707744590879438856643219373143544623883675201839032564794511558480866737588813875335680449369782081580215458539064158596115652844487850940455819483420647362554185272183547753443840168301686504018767088270613990249934445332557501679182254270220541857573849063600760630645115807740080731015769424959357625040897397163120845277237145736568139864174903443511247861210631386108588266121666852838079226335301400070223851797966318165043130273357283679193902091191453404234152571017739391597985196671178128775583720815943646461855046009832257610215295132986265780306964981811278335814357767068824006732014705347135413292588611483519851559404316772759726870214365447994493267621344780228028557420767286617801180877532950790880381974749014245908340829045512562060058426026601115854027651721215201113342249147138937797056714214941843411214419909373698784328075139130117228628287201144569994072513933319825372979153364600822132691502057033470148500778697375608367183700975538517549113751784772906570005521192262939544162326211847248897354987269427512186319832403664952850294142924132711008028246690777175680227688602682057730567514795223380295401285266434616464992571760370578988708207947959733250517281782133588893991263843248075963414389718514531930518449703625725686602107891676178334335762443323756398214610635875033846469306291529389936440306778053147414280182088278069739686016303598018894660370519020987517526265045299532585372495916132442804841182979730858174122703162520540093505497175446633903071291855077439581280845038187982476998925913446862416244325332507768002633178064034389361510309541644225377494169977514367098813081638684747385829150799408686511053001787779049799287832469020318936001152817062015791145897319074126280521137229171516422447216392514981218027769205922962003582072936744365483290898896878773332992666489697225473086483504342833013155748861629466720286670245723896449860676589120640978276398920915113853345685740598875800031610666974368707998999993299628634802746849778857265319817572730971296480788330832660515023425780066185958787777571529856075469063747248112868086625765065144848996234509389439592141756922886747586062886694156211909413222359682762396455638002545775276936646695881440215495221252032502462378436332427837095769227751382181908761012756095962715945683604737793843857392637367131883161238915562713747677885422985575906755736554085952227485749007652782916637676756101717664689664240295528076786456510977750371364873692772713099784347291172680511464748058972413797177401928992217476368374141994085423330179307101059114721472166746511865948312888070259846708584012507725888965443323850536515236936800757855000107551887737441037722765151574465471675106383457260637192487542797295725870104167878191562235963158645470718390923786650342369284949541878233313683228236702832355478074008679528366401897856172746898273551068729260695090074961487788742126514221091827836323180290443884385390061031080890253320197188854517091101948449823790393631482360486911412635640471685702942807235474854191793983549796629531123624812888199111699846667920338612872755540906303729708114067890220831999332578544603041090476935962083244809439924244487970292639847273593032552368499617573511303852544367486757007246957868433350879973239166746802791390743392271484739724674788580660206873651608839861472419979596538843795865217518121066088397271193904687777327720353318866767880979108647320445845249510545977351909377253821094160719125133982768066410017678444078394239726772130645720859865453064670294261789376737138305877533830600929571947300122581017860861979510417214781881229415366922660224587558585690308539673707603570364113576497140273259094409709283804144326035570408676562424671921021341963018982427030488094004333590317606498747419015024879914512126411468582688074793895336382092050522404542914358711238572818796442807107107293409450320043502468561186693452993920466975850128728658578072029440783325925809117954289837906594390895762398849582379163739630793691015544035261514004099773222423696915543047221005031813706736760063917864641780721446383854669579959444534452803659342899478999695986830085552357095406301409049999508127829155001332973805312131041564278929097616917399398573845002873032797530211345333319520522110069430034690999199507040419259763837216922621844066630957313552416113061083674895650279878863442623086030588827418987469616444219421725842055291822169338633703423929288598761891379278684468502869851052828998287618326932440740309738983079040579419826567221590432498348637020316346864716612224025561272065339552304530653447908313240949990963803012083644938130223905885810804119818664595401154073660054805280035756807188130754112220039385736454387502263134703107725121230946066033668309012858989578632203639118672968234289449656657985879249379529735745229926653207616148667426228152485192790252542576223575066173223451378862190974519861249133321314432864701427792956036868210083928692011483659091757615294131154853302807254630091265369400864885729763577381387860348760780246288650417057523878110384728180924083987332863700330321748122057486803379800637736011325417070420815206610158868621192967838040566835716026726136948826651271017899701531312730886588916971144695755385434003982711544501800840426550915776491186784487970940899448788290712463589309219975028531260183038404221840439982202810005169964997080809225680859035766423594145401583075091524800414218599604537812309388637965075669831078051552859624407697767394130736619261906030194050687199731817676365624352896637765407225711088690620336514505251803677465671520396847682069644265757086336601622477936449857091657092269786890727770400893061039352907079804275534761873422318274890419654047424633890180455114128173557202973606667378674288733897883540877894218196427590274299539436089480626839081387506476237102112240169342464829668818618471547380830398773973894039608458696741354661822603889916869371562428914684940182966354995360929361761389296976812024656471539785036312594047000427926380854100653468474892115757949495065227223933101240417424720735226725356587704315530872523243827741101691832523522214641744154538266216711427757019935358663476717655414289532573992346047125529955908903831170512723410989773757969594016728482199476727685354484207632028611374408824403397792794068979877107022308818255240606387813373953200323221276152765261534420447769849644240932232447031666430426531638624994155691735200498682158828514157279524788090702867515292839581422357673256489533416170404862629082722509208892036099588269416702417163385525479996900828669975970118908211447885304316773364316479864940661835699350972671442838213580797002782782815828837147458408547092751698381888257381702069508188220418095468940727245350570934104028198449365390378718268552206203951387439229449537352931718962981977153636156139887330722762780806796920793827618636468056270276245305485294674313799290144381479888409945037364026674230573306854307443162172159934848408443942732913332316889788545847734773132653223532869336243491674127705529105164286921795864302837966486784266555389838259632680605525796896309048127525150134531977456872884315319031335119820377607258492406647704818507705094848254592907299054508578215817022106863052805876873352840080291813897895062475284663286294296167443712499792414090143040620092316732873236103091168038916092301588939487932700838750292559705977271197591183054575084273802882297823948525091757401822776376786019537105112122188181251511656327688314803053627100946462002534737196837843798163803900377025671551665412672583172995323528463870270339097999728228931870145941629416450947800688913432603782762382405704406497993809436092707511526117396550231730291991769218306860849320428224463946141201098066011893838302947225951950720467212444411051321237120346288900727640874268040977729781109352485878659933091435486553940421150074397060285228974508863220623669660315770852606265840245517040746927332251029860766421070616336007235147229003461115887595448388617328546685038816081622482996298683432241266270447910492644016895986003232073623818220551866818442445225107168259411188381198088704112432008373183370663429693626821151659374817308739254692142672950888491970007066920104407822757941214429431104909246103354907943560968632227948609452192853116505175598037618176634729277276911160993541048828704407026122052808883001121518989023118902479244984377826219748329133357886871589020062705388435057939328756263171334040209103065494564235399540254650760745690313596105364077558803674534706293265920877993813391120258015709333951401006847515639280180912905150376538608265230782283976725010458009974784892367134515524826208768679907917526751979648710083140620111105083777089255348147059307589603120337084191090819555581239923411867302955219709528264466141259844833996654903096789427928017896340676256387515917635137195888360323246248972199262761067546628270234576144291644190169944976544488160846002874907678108166202690577366604218922367320423386684038079586743919357392194709890369348874910087346433720796250836137932962067743276252624171759097509052032472667203162848139273130363839265692553791212952430375829220207626317310362263097217730467823907779665917101626851843738192791773080347534203482954247919754306259815908928015941648807436068698891271996744046721950789662843653061712723336128411839908253267262836655454399637980809096561055351852256143584355835186445321285838529699271974672652778192802307592283734286050739504124876431088809693528552638670976154057995192221799970366859103380563388477163577506749408813894688135469820417413234053722809953666236443802539375548920269698430492336728983496966163720325396590017276815643649099761852056550840794301543544743573733197117534287172365456907868452525111649180185910830450717579360600173116470525554961447328429228553760331400146018726049156139438440217977048508225818790486927248251753574235849376887829005561554956669795864166773845687103301368302575798821319056936849615615746162483813273668676329608285543936959125202827218853438758488549556938664318302711669355638582623000298448492893241826309065408045997466309077751754203184860491488548026627013819336944266165722430556442752345984631125158671765027266360697795402604493308612795398093214866688552540104005610294388928220676889603383265422277231866388595496846284320192315326920925602434296312457406588333099807755556196915269586149738186407235681282496444521945496492316545589398999840691255778377530687836859478135672067320417350161430779000042697367055631119750188128548485809828367835617075498880413182685948046701440992253909996006538627519124151277835387440756149670233113968865259272921236115749413255899629419034817143000086565379865025193897927834479768753886003258850044253789560541965813848349486073134690202898767848103143993288880774805715444905117734857405242698752815173530581950144517574152571783072525409507262448518488274075343831317219212395754074072942062254762205846332030143012143898854330417226657518230367936277993562873660134636180647897552972778669225600680566469524694078830345453690654876612246988101733925351577763789545780594955459074357566206552401234311573112395506637359935204070152467730211555358716839227649165629874697783656719197662101710211043185478758335437285067296176351254851620073788938447408924775872656917452537871996602146255075519221713149634126628826352625243278166769400391722829059202846169336819039694342577168579993345600952548835513112073136062709486206434686347520310019238226149135706203443354938139469958759909951351484251840933134403150136085054559723355724433601296398483090959983524644441313196914447495733358610342627056518859373123959806544387889879824577030469934997715022169730016405673506550094358080538187690998446848347746266617877686366218818999960324535318656363309417860289903866964854352100744963958381450518419292216654237661996674434048429129088426167387089893709100409077994258101639970485466657111708116021682675363390988391420038502972923958723886503739816492530897776232949654726902377594431546024198028683245642136615792552747103592358049715695812909312908242169370628022196267559246048996685011105735202863742832738449895851163597591891546186029232692587524800297994274277562777119780563316962461866683907533256450259548127497694839006612938722582528213527732209278741865971063143885568377517405852389815328609292788344607605598096508011359671537457214818341632996621103856847106782917276362734691078258438767745514462913353030511503496703585501195366761569719897244935993930849152421880837958879171057057078866061685619566695288486685354539190983594984837929746897848123747819412878400710665095081955264845714960544559253393590047742152501291767373913719125894882019484812128627318575925128402256310857989219106539644123077683848327493578638462124240048532783571373475520267583064845276457229788723696206899527144560586649014586000825651492349728447324117221518242949192280859182069834293606152841734569436319252895179611156453834389688833254234763978420256463572299786816412864828727902814250418961597808856710172140337451155703930083865098069277494472328169332482551519169799580496721030688797071346228603491626887782853227741950331039760075349678233402994335175597518139432136294838127102550889010092721275725281093793358003843951211871734606857408441393014652490035202807734608957979503980267939763251359006918520817330630475218700706697830733342674816447498545280497667292830210851448360560598585065927395078807959604932284659972185309652098277187467716934592563882021769719527882114501723958747313386852575468028995010791953403136986168229335655566355554339473128591302274817607689117734413046016455619717255813753805872864888493318152937253281008849187043321979284432877940725679215930380377187953128110524820791651284320207162596004999857943838471025636429343273710779036121687265728506102124246690574278426559853186326448160340655732093711734146986277043253301521316977432271955316386023864312616311506512918712707231170739602104196128038331528729203377333699705333800209028999080364978820070774334944346099470111038365216799632966538235373309273115019999695837555896281896895487105606193400244438472415472856596258502394573618838287898859669623954599501843456485619889290800908896148355134879368763327586754582629385094231691861179958641320434823670935967824159312215943368255495931476916051004574721773980760666683933686885176445633271838917835476980575858230823327995038576400076475543124867270513951748745322298223402233022866777274681036575123230757377282081532496979902908587627026485875527818202704265088594839130276481149756253513175814766390180340903245493372213219289786866612638796303825694606712285895529652571505345717685239587029813866496257318758893753398368314618814410087783952345091837867055805143732335477812502666307315285828774525684018277530690478331618557636483588518669677434025162036345211878174204671327305806043459350116241003777132110958079808222042521782282786312346107548914033534571480868317832489146860481008771966803972772731596640706845857646432249668168255846099764935395747383272477688782092426584622759063180840758296879285589909151913755918585602747867220218715819737560874707932000456835282023663639217562405839575267080902263074924371625865439788158634665406001149031918771735659637391004261289534984504875894303642246714211103559494443978450424850602928154888478409090121314950225044274300718985464028988563205367057333975891505921610889087670264162347673033184101093018579603599019854176243801277171667357631590554470714322732207386663436339851255713508183259235531327174164671932625068637403639871670784483079494137914478365396617208673754667456579297903299218984718697983992076255223333845502101161988514414127399128664235212306715887562593178760742468808793636825181294642196707553691572085947879023055142514027999387226534755190620882893978745238614000527899705522293009339252681118144540507855963752374537831983963125612130950592904075288895802207738000110268732686884757600474873326248204143663343124823794698589928129509222041368894246009747042156377272007123317428549674632768881235205817610920423792399251160086185054529531267804662480290410266801232442676473598263205329058181185900153415455593641927747947667851477868485688065032431702581986670702056815742851729864893452564176711902264869681790168393507106559217891201045561005274123481518811244358482335725391482255202370579120310740974875595635672087534278114738751674487521453739645904417200489465081304054502554507230860130529926424566011258125563000743877570302688023222962828038945207078108863233579280310600094320220280180476132750419359957106547699738285269509386254755919219190925783161548702074223064314982733465788485489827778668091087078377131681599388703162693691820553596450070784644662190212960632763607991600884704211145392837235653490468787896936247503868431106747905346005745466079554424722756568407973042062245701486110083737320095931047766040659387477533391122744467597852087036110429071465938107834263353858557084661863936274298964508441761909035348217702927699305216334043124038760071309375888271065661249498737795293952801254737437490501349065270901432170245442750934201933919551205422983880041027798663277016514830678382331844180579742133146519864506436425022218355305424960030087806566936788616154734715322112945048332868808900369014273694934638777236796594816041616909077839622156907620809967296637979551264415750217925938445677067670017418316014977510923618588189791621713279385190597876358074985952353448330287863168502885098181470943963396905656116449442271288990014758283255650954710782147027028773266290493143150719972232691397662900509273087216406817510359109783911045784609557399901289802094486786382462795407416241160160240755582505977921398149794110041014211279678329229313565568794969089415073325729364951411798563865319555389429580663964130001330110718732633275819066338962680104190127894022117195939275463985407546335169173078936458127658441332124595486548477679893526648386723294274525393768387241255466479815467275606495541321067706017744067475464866111461408097954930991080128511939028562790801099705081352965949822276320556097261871253891449262490379419785002876991654516292719481349194196598479671396160400897548196179872463013785350315594770969021615254492995157379882412632317295380248338249426481653240850758482489441862224534103929196271846876182466545422349555842871426887327212733858607268407312741776858302553378219231554619080394915677568971434347883996588097179322693462905885816211663366931783443359927998410805315317376672706181699579751559726927716344172131682910820071809471318423857383981369100268495669679115333605675630931767478536879600724467678346193155853498254812295560774324382105168348706740268000943301509709312299170382572223529792945038427954583367615376504252863315592755077392274990970539605961491182675294736147242581039526762296121522033307595489920746962619300864905926230726785680489424537716679448609731105010887267853476109839879738522006778625699665513950937550565141793883455003331801454554831325096049749551033324002259384834393978123674106533835522485894372654264321944025468689161856699221982079551152106130669692521668706301078347789952263323828803022076530937264527400276701400519445670799592968771692072014228761734342184064224216191543256850198023832892442414577149792550985792886190876890626126779384021926039000552546458394794947325996939902944564702495409671072831028517231656302932082293231792111992389153738069465890446286068691685147821215330660380995656288269232122588245725122848582732742684514954567818516176982415371363299561973551655303830668122034781295978484335455684993293968865390255296064992255595999619039504002208843654089561380759401526879105231774068437942732609290173099061913225319601174678412260809370403149401395148822889064328135903522730761218187653977497889645164280277581675755561975603187637656463177036170135818499798878565701943775452960946298102345524849089151801277427279174633523937650125050777624731445230214616253161113193411952852632409593526732718260933005718585372233116078610462797603790731539624831417314036255784838922316535518127169077972611032830716325053704354656397315169379810943420423285983519084887382168956968829270310660796405139314221173577225659867186942477439373629929355140027612923975531041220039679466179359948628840161078637653297422977898589617512328454112091221725534266045082071261488670725266509503588454414881265965508333735151825417872594576191756259723383710434306530727128890369002706558752469478249465462033087908949075284974828562503833868895957356939433909600171825691584487496217568623390072192639244426517322779502570522933249276009953064322220086783322168784869555342857544284412853144421934746863922298697138268001572742551508803153145435963129941701289036450243438056643884494405996449407569420627680487419951438251098629649569093797585393027505409569754296273183025730329870442766878221324405410030982451266787991033444818004948603685425406160245369599713715148452355700594383051297193025072275678531487210445271895540447394549252675023606947407864670715846170339003060072422473761870829958560168678412477823040997609700118984997940295278630740060607755001439862692840727324907951687027013958541171656143118030765825937155787032719075990168174955761612738629536924057158301857261793000471365082383897576669518790348121486901072798330040922195566727063149562828287579890206300139767352115612861147770814051656216268609723079273068066931985144568440664388238542926942002794199225390110265287072664134890251732731990667175238490161362862937474759536560077885126226216131145858872345979715225238256507374855995173780140958834697251531154567056283410653937440045043408315548968539758319766350716072303894145951920096128103936007305880635647680154816280091425557753468536526028560401670950218332892327686425507322258451399998627758277138810785875407437572425392582302856267414276085011631941885796570232365440053927217461026291823642580186901687914884307617076713048879842565990041042351738235965227033976330901733818318543963824388806476246220429548942760791231038379748692368674926900840523492398971418187830000573312740817431040718929645952871484797562368284102536294673327912913846017792650169769944099735194976451955183150433888273401948838214484487550841547291563973799417025876130915303430229027122545521103749340808301605298978628517509106107065841816653137109879068593147925411242862796273589863644275116874129026083676980857665874358436144776860174630694700954720633456991438803584640811593506096878743344561459713250339392106020753650292508057195383593377693553775218646568886890764005087221778487220059775057664601155720124719358175400799251475440595974576955170567072800900695586495261309521594715687249665011599238391632663080701125157065576035882184687431296953077032181010558637635803001292798253028392354097530047103301278587373988202189617878645031111389822165055259604810889883018211808380565235733009665538385172316587419778249481747460664954053416365608204618052722002955321780821779055496019494378904369663357393926182563146383189265689485210736973955066058162314580962324473229375327405545958984311834866698260830816325555131207132654895454480149206941164297254731275325215449199244928475938659882318517538860332447993126835821775013573275734505943256692344764057676031852479568594095868552559049236866703446510741470787937506806465599110456617120077321947650777509986601130780115426039804654251568524851954132981483532859601926359594840394709455337719469687007355920735585210832641964729693322115319742732981190691045439430653221198554575601880134967395013960467714565998724456408826131914148370232595503651751931344119306959370945570372636641257461082419474875755159508344206571935649214610194175513975225953619937159142317890522731510810557971895690337044229831901497930257320694529294691956295756197562549971159256156238902733937441450511316190250645252086522113062704958924082092903230864468452772842675391540629835020801751559539021884193774101312746361437784224956788348800392908933962463436278741030824480747031395672036195448070741245155762418949075343461945595572284919430936289391292855530846396554871876411048298801663061857663952747175257415843895698518003662701838239030785981719008121394988758764410345735488560852565915899662082138502209161297031378613602563141944231496103455386535389816709302536384507235916917037365574416502838889101878588131253410748447938708034589565478785589467829055114775525425911830619766507829588888251153213292538140162791640646581735681238994005473749680808603613438215047437524489242103452778624739328153248677844674831763166946264097289341298348719789120878002902505273231687183192019666413694583835662167448233887019200097168789898703383865582189467623632549446499100187723911818100580336373174905610401876138664363197874520419156597052513245061255198362820194801791863096742525784412811761156175492383389698886825603914184037111461522189795736256519584090957020188182198215105092844976038907906463437362973725063443915670659231951124488997696198279171739466652657115181067216561225698635477120062011248200357462496444066238159774286466738906784081286707255888285783650114412341684831157844322539293133925634472569257624805659415992462023709175086815473753002896323515024640354487552018909710701141941870456434448880588718638173905580446827252501043931388390869421746836094839979963399096178337963358017398010991991425996171655806080703380256377792744641306840258264081459943484395777633384675691869082159276292053869524290914549812302091049663451392334331412316219733178366443265824461946497044776437442960028403871170228553700479212459530573850730777518462358881897938517147879767624113198979436351235366345453080711469320155767443544079487235721664502620384443456856131366858902497766870449906074126877672209812720778013340293028891218603666704591511481112939881221157154700980033394989322728242502571467117390037520274619883527577460329878933839498703013784324668725480168399041126007767753195762396762851127347788137736674945973138520841885131893927825008207781881255811690248609049749761494856268497960829611143852463984027756416992463541908590774328726102480633019273408881693891133037618563375884951240787174073400077174993777954382634560090431077881164188466411556571312629017030256974897132996965809397616475545316736641444784131053811619780852698139264507808887520726211538081196497167042375519610806783872601765681790752819948337653091131185520570436768110521522302065791671743218871770310451191747830627302881794363809094934858894066274249909323050192886744494687655283232761640538189179385456774968079874211250083534950971632771084228523120520239241557449115534162263514129133845509448983089513101894228394884071122313761664619391237721968828750140413398191399304127714782997642945681371172200135483799486440507127556113350179047632079436095724029620993089060919604944826527794097618320510376904560304288773739525950897660254935577019435874755464546443130042889678164493469000968619723636910001864298389673882778714664798018259304609093743540357342218825979267479457495798071659988429409792846630003807995986256842813767731265656473678070027927838478075434201202704886256045392303450582265333071018334404459339937428545537282034313749867532823406901375250428634757882530937640471647137547583222399914052538166092435881526643316971126684561120656352579230849510630066271985760553623976188973918676996694622530222561308478407102715429626282441907433957162014634406048899798231926155728300343158627553992782440652510545640275816358645162173487030165391264973930945931590120139455265521680422423250302291483432182378951478563028848055396268922832473075802393407764453177300462274667866619063624726757219075281273206351438842109401782548571219997630938630240042831842864523366979485657143837558840527929458185316739290041157364615358973648742907930264708854689808980555754147017622566362594930023765904477548411344896234975634176323476958680865964167017122181801975322104513222501772374813095259286349311224230494227614934526229914581829902275866765074022034753346492327648306963868215382480670789247335918028438459948813137001952249321703147406918947874510444635704701605294392390252045771549230956367309536015505147521898868454030965532119735623773866401405359593490392665319408245778520763854262942735370957751858210178534661672997680844287425895364106437007645234930577917812185632700966004035169673352960255134825321068128576516116383850596489569374143560898292771826707968160174276633630234384124593177144520609013998458178523491153300963736675801269472550618121451241129013803778470988064339096631350198346097259960978037701397639273370230646467912934184375953891961157599092151833575690777519721581528432773918847015047769326039425824594774207312644492375823486704348273439102478905517448574263937200435971685839406192220862650021630298831084783361054452334190486518248480256413135712968453161287569103482472350846561910182989934665402587473712216578929253757405016119363110828651890738110628443879990932298015403416657366842583848026964465126490646994284565422043669434083822777696948142471784553324621387310701073114235991608324077458327510304097104952696101877255083675308811779015910202014549173319581341630135868305688207904058899583953295416008144410053621879038476372460551387843237984425632043055019268600015579898751138242869943920941045652892644139333811845289667782186867055570377792655742272085957058930811056471427676080466648232487934000132928981508856972749678609455164882362226321906891216674838531412042299088974643653802652766535592670677106859639353124492797575323680405042934029699787530490109334766280598744624710418511488413954829488830599729666317999630059187951565230702159120079066837227457323696035061592173000627870158659012109719095589519862589326520913973490661867943835949622780159423022331152744345102626641080482067300374212872944250786762892491274852884989843179686624975319081012713722640594045078646992373274896327951617625353869671586905648690914460333173194949566645909440369817209341405462496434690703909909419561375263553892109947207686299166593533125581484219637098259772446797252957474081000205766067153138494112861681852171620406568203058924981908537649380245544772595056358762910479351796825644317966974886908647370411146794587182972376458351712005805533138069159307568823768445068640837618405353755279580586168475588081910095038594124353907764240396228351357997187742032594587848351179920059310168292512002862501851207199905088365219840040280810736897521710922242287000188562256206142230607899129555633229880655756165562870655533013442084034811756636872460381437600658741395401356459506710839154365396026014673834320241094984723770896492981705564964950863865012518281290648315009577824123727107942407213484855719240566696425437643426159058021155944056168912778847601580442962538147020067682543806912429914718364048907728468149637774841375539984485110666787976072917276291873161597816806908991151231184223651364269211643822347919776745135591616739258054951752177086165639842963188155164126367714494615175259377802485211266181391957795299471268169662695347582121896094423393133851571755783801152045295949412045263512193473586304931714878057536252792599017002706264528245705914726032500373870818605804114018518760951789334179049743321060279094282911241131297205166685094005851804062705915697235049386582043881245886279697692602167367740410424938525205313459323512312305476349947459979280842728851683896713856698372664784703772534652002559538511419674691436834862434870870533235083824549214323832473357002182583540156141972886012172165610785867559123892451622435694948147385999143225180944848076665863709391709956923609882164008052617369364616343875527224253034594023354704279036028532395072305001210847785481649592366123262581006964300501464269160430462382770877078640622479933893892786749303529210065097420043401719305408514638339639542662359573010046493766864889209286958958570623151528223245729086796434866910953140703595388556779693795062982684048169089906399341908539820440936147639568915989893066571510293647328689123266012966817344409897258612967574804482577779557037604320200212304533905984414604251323135200181832639898462281368929686806465668424041636064021312720826070192611313162853847832362272754651394189377798036920182522041768701032326570914943908023819349911065256693840689611157712877997068192899249642930283590301174002107414651061482183068993587115631776470306406149512089636215421375991827783328359689654775248341837966202886127346625283452835059804798024999152305413744808241527097820673602924444955512784424112475495516142677167815157679893451788276746856262293100514362055987127028423358225022055137444037451342357206727863639901657862558531170480283278510204010781529544755477021225584239974717257109214665398520335079389144229336947552855010614140407674847168698090968438738679483230099475232789531200707898211462249069350782812451186216584705759213199623788104932638723487589939865889132677640803469467488288374466636450176618864603001112089174236756460979818509929684542134491635351317908198706420852051641665007342040159642427102581012855743264513190986688780045876881902097421879620526731145330544057891189573263826310545973041222757517909172233625526222039602206819153660105126064297383335130878050917554693472240949494608458628263334967347079943526085866674840349564014342526201044719992902551092767105301669979665478137294575873871268963295922883015184649518112338180032133381268149002697484209349347296394782664344543274730681945641949627500733523425096176308373859041356133848613415316268654136568728200022045292914523035900524384193767889443771197020884159339810027223090785516468116934895609561249270093678415627320244621751399105308239252969695881687751824735319732942805122044620828737580058110208501232745333645362915017651978372034626091075205822261901363748702777704319701880553908363320166266156322021601088145870329141604655411626073625682571834331271534880686359486705439437954442491696211857127743292343716031613177672124157178055730603560872016906837563105891815817063756748055883275950073782246299834071046211235849528675937542108634687253034814680525597961608361689598126897139259635807888596402343125264718100230013362319469696207090815224799432227902130327339250121188879632692001670230128882981263054223464418766999607304293133280274185602008766755818770026978163915037234181861007058396338169428169959821335980113914669269982025168669335708194268351254515111797700564065342111456054622935503310759022715213861086990998577120450186191455969265199269335902498361027394651647282406319581044446276140770690978967565165800256855710845218004857481422161902768767268957774687641377619308111096531113467633732037347399965830141944027097192926934520528231607681309969758126856711546904653338189532357267652514353940110672859403528473007943102741553064792365942560920796312226386785645527679097729807898147722989242681833357641678595803770824549286588690011097149111930038459158954097550321914283329783801361507457050726425151553754063519998984533632976119096114719237189196221804386876794238550250573204918280186901982697079652759628557766835170513881929779990770010076780562053682390894679922343512942974522852294488799523327101273334775966198371582871976374249192488931845328001775251578105843792241918713556566743696409509364237912311939094569856126122360167775672928584476587806086353469546006706963005455901921276730796904725832287113130102828054245460412531647411061165270681998607112048848365455362798907207663503583792724858855234702682855178300729216793671409050524559974713568818775341890704554837516126798239527872824552994091058951069604082650176446158408006887439594262969123364924843089336991598929898964789770435951006137166026008827018147612062348707407697296546185343572503310902397260771535164758823556616459127804960051664342947034921147361371236637807712109111390909670259814267178845205693554901392088939507974675671684337869028298983420970572557410134319492504184341821418092767000030237277516254496282692778943588860149942138209539878953985818136057481703989238283650391584296170431776501411226506284321032635565246080177569596243718518529346663414322922432644694401337547033068880508157851198907397597306277708529654624873241204782588547063510476207151152100270856458415450843209579442250037831930634754677108557195071186229844886727721985820289096537387993957663413278849734642902365272415802299264506764884073953957579414495356874908745647106823752193961190396753219163801031034969307423325004497805981773568635277313256874529770080692692088504100893722727455023463738777532105640899838621077108797266465643288048667059308715169918263847021910941032019752919710400523853276785821847540065156400758293879338855226731945903080139415082071118304506145415574964246203395056991447047084621728606506304681773821997773154735151023029915816099034495951402310102719677209293298082921537407618087013126750478224869483249967503285369761301858786707065643282138998992984439747652573156233424042374203103939096029280643044278148529339289831135162829588869532091920770234445658318119146398644497879129967548847947463631926470886545446090762705068305595704063027043746858699562537275677672164936250382394606222371370304126112628538674585172993317493638041980428002783867626514668481787923259176016393337772045975124319341778489568433794466632518425101186502227640665467250705519793295403167292634920885715802503704756680889659783440941721493805051043070887671447338293490698664092489387901975208172414823500061594214623879367746544391193948154935108074255497059453202364910813514099090743357270250646513321404646930167225236488173583305148702225310248426705182761259117949231082169919625609376673514436769180858376505245626890390848500649638330882741835073906348658182176827380963861250329163418840148064728113449240106049084427716470788171260862112654465763869264491528946089347092935113987403438914570070428864964986794376311488111157675749628074430846133907124768338187204823969805463346504499245802076615381471615044416019184493728085606232312611012821060381762698098095235476297748039471003159057343321489626567572169051244085155096937278291271138371643931391213786823975997459673947252199799756997886563488648871951154969146937691131592291110855399668962989986457934374724320295872987780499600290792346430899291760644116539146419011445625007297349120910446634656589720433232364148812358133749040250412831017781131006508022764554416767290599088605202811787700186096244936000330463458923895897917086448999606700505189351225580844125125452049959949998925891077108414809621032302006182341989661610074165818856706167676127199447450956334006705301677489186517274794573383521186443240186999576398877833391825208386883846598555249792703466016375032412626025248290038026156846375087261894813678721624330114967425937719218861315605118657975946648990685078195648556342000293964065992048949860115846623042835160683632370026317784675111667037552630198739334866808963023323106310855885434354411378594292995570458313464518837644648881319267659874545998777466432089490772719421359156150027490541895706178082161651494264044428081194020094947740080400595505031414076699716743625604499462287904506636961827951413493200434838139322468593803762285170531685473015439350902241975377960737577189383438355763157904768126508530715272862950774848012554091629358105974965123831047590485476402765494173441576647438846279482812259584128081252546377013410384260977077192354216630297483005727551559940828505419955038915833520831173015995966529146924456038619198645181505064176549761175434342435243898194289769328697164042718622672342686952818166303249315916372435462898861794010339544747921452004133200769797952802855755979961727891356194963382326239718421114566977256002271699107379503568767000975426644119409358510797833444172521275291499831269879814815516694352948819070467664281406128556638238385260659434379227263177418729751511069069182317213305575231692818031808134116910240768171341563143197645556419162795487060046294840060088672854404405246404810922171339177777517104744737259621495300588707964328063091592659666647998022883298654732976973317686823509796842105284882463010606658646098682657959308362883514858404007248667171162292231486210949954675077142263525032091666688395956917420551013706455664996187356738779037348007948905696847327707710789599699404115349503280218174158432772293583406246222132347586376334665999034046162208000527526037913406575929484314422293706289608824990535674623498524801246157882554601602011151720627099663595847754243909909212533000024207848291509082421933874868846206551837670403464234546661457105867690796996143834004466889219261697837652787103399618026400508624659949309469901043069361400856677961141292023882565879860130333470069364573625545130428492447046317122536006087442574576196270893838862828632738344664251507169071258161597438906249838653501136254121952006975993112494384004064133243615306143170266520369061000056602432385867338841486553520074419641081751560341701291232582905922070537668597674063949764125826118970202807090161264282734819655250639019550818049178859081083827453723773100286947225210476764513615954621611018470265050137884436741816033233719248538204018384273991731370258754879647672127829695190665209890130234418480449311365210584374798225398760059540532883128187260047751067126503461851276839585729042461247923347979743404660407804213318173476571609428952908804263564287257172767054987873081414633832397078832134152057133980057049704380706560054155818288856024820128451189667129849018445050106079282815427503941522864507107189837068342061618376514994840227378033695266038552582077403946998301344937414077929346512074917114256941225685290174258138072165131471337740598574774774822113664736505758672609917501932330461973807240353014693160467193607104126838424507946650360109858287195517858685842092633972435822295749251726688814532313251782604953112424512239763557463893102666362538118021090822608753976577878369652993095248014525898427856542664257457636792811756056663791834314320371557463170886066551028268719630609235085178122447301904006545986743960658303999022404506964848587275083345253908011620152057834263500727437588285947002752790081749675013944194229299594331041885363701567377693750030460947643268394763362567759998159161963171028030806654901287248594400890109370063368868995143644963306556297308509673180509074750315947125784077666546694868471865552001999901940992707714600854617477236430018891626503129128320047547590293798344135188007716799725308496404989530870714779767167020447590933551060819433005528375006771145649865983511086859737764421943599326626899000207388822880262656081807961280063446568811181883334260974382267271900808285605773336089061295691437576311155144078206892259303826404129447081511715342303997986021283550511303206028285656088331965565094262043497412667999186083089941520257589198181845574471510182928387066095352002251004762009415793995513309887548057229116230836081843241056124796841377739324442866892950805985400069882674337377485514689517976004999465202538196363021881750723598185776480238543632779854594125263827142819884704806513816590505763204336817895744639823951384348646352370063001243270667913631282921088722119054284113698128397627994021575203390562461746959858147369804572652123425714934407000355447076901484425963011998897793530145751017538770748090159355302396139492072563482165767243070823598129741499080772965809148311625109543932277850709359742536936284061650518795553006443134522463223473995692007110487212399352921202826637942942919850947984477285934968420093772918793443477472378699521888789861762733859692824245167327696365581941683848883339062438103492337510829894863936303579442891817019131033781780487553316103339811298039933295026272431490619653698132694277404921783702048614291564697488338467177348768821780938244248634434646706293393394324024883013416054845495605080132876509771943017541501179366201753997075497270833705280036617032411220941695209724723726153243064374510627951902327483984826496289473078529905084488004804375555988038683904845992299149851061778428476432575759127483224446104907242427517269736997516477882347433898422375959564059877956301682240389278164496270287349208941597574962568939269431456970389230661515266736105888345358915462404596971009351409185076292197056488382285797934714452186624849514289454145454368746529167358866097373633205406373889528902635600367659909976698789598350167425449522677777828484538088904321213295764089958987389638815106218886730808458320713491987204483131148015566985988224241684633867447042814089419516220850226588434199794169304019255393473751284149090752326763978193800452041723616186771819244786296832782439866423222719148405466456893050865846786949496051529450392967279231894737667342012559253307272975215339923306888654475763945832431539869872986115433942873648997206314225258145180116605972755970643736957824725539320128605149055209128606787179256720034225620541150637300771997207384129036770329751566049348630685274930786771448491773104233954143014593577475168921433161958727953144425476046946536336494583802562385595671126218498946561686190104225902693662031875366011995121849390516167428520360540034629894613472025052802326210515293566566713074029699784358660759960170226332503744061419518310624748289403990503876590815666082777625364767874802590018871517694819705066450901778094120430040266647917355371084887049334563944339629499615721083206505849189455901473834383041430452814742375236019102165247296491058884834794030240346095981953558023259802464134620117263976739454456010471986539462119002675395325290225296612057871541765407779361988209622558348248368496628352666154100252422054947537827210389687758325316362500575563114171942269409550717916752247364205623128193350555605090347662964551868707563880157469937978521736241261977141796486792556012638427471746074190174366080064305057767753478934692198039534919818089152554124482953013071638714729820217906603922796972151695931675178706983141139907177559251389654614064825583335230995123089150192150286805420514136603177460490776467841468548673225748106980714357952176459132217978286999797575057389287461228612578044317832982681422989758863012294179816127295371900582748752613336437375268500177620440217672035538042681966120502859903749174629405755617867553833767457281880875431365318902367836304976611729547005150924925440088024381267842281586185183491432375913902324508460513925424438939100286594347912740526868132040308532394550737383180262036348019613168763515307753965334688007677568736656935523223960132285644997168950322866644985583181942705994609295498786712153292385212898215237364430503526325219476429631177588757357053455514768925000141038778565295323311051757345147391441090385356264792880544882743130420506575645480564591388594124435849903134017701772805722219344160517781811816715092034866907256964505351646080493703600450354563668249989595101380451897752298869681846728926317080279188359494229045383423337588085776701972794970211743260444852966275376729994751172227756653343975517414690383774051616117405430301510929278758479013385624438405092854927639747189797984707127270836026778324217762571984181304411163551425794469283731365371624391747437831257793985241691324043437930098560550191406884797981064849122355465133358870487021108516595462151055191149035899883563635239556927458958390823182511848254752279010634431572766101457885443472130818953990183413684422151187733361000567327144569929117798331115162533217772188106627010488764360026530055039055930145699090422021864003476499768694944883505251164355589798830229744454023826103574702577038760063610699606226787121152979816980475322953165929534756051810549360228203694299840321504530315879309855757002798375851845090805409347214743418137972991611987576058290841350351697828033943253347511144382989537341721301023670998993015622410360450476184515725357710771302156545503962619839761751274659374005007553346512929234112221582368716837329218927202467365222580566658211024114514794195863151368785716107034185464361429424373755032388685153035623313089161515696364340832134151803591181279271311676856296819507259545384022359691733707822052217334175845130651638745876513212983132550564774335173266062649086519671213546741942946716037604033051656789598167377874170128292051883361034158112408806727130708684876719830088438619170439565898915971736377769469259637907142081062514781116654474274552497543612874750197042602462724351344437927351838823931578457513316446717081931076983500781195823580377148641644524383702920511952856232552941266076415846906150423380239059403160058170941873980146285837933004434655669143410401592969034938256633931497835145474443730085623094238330032401275241097373360988022728402572783584758506819723093230720781573342378053842084914893447510582078626949293637838231483132805800649000798681790016305724035800668446044959329658685165232355510239276874885212857348476921284092445202671692591330715563238964945811152837476624659636616524546619333396977735022256637127811436886577802955895035777518835377430309659396510724599864050867950435010296690397362317340252940948072031996433877281025554368296072654632650483378280415590861396201694282067648944959562192906611948579831045885237659446622229210231074911242665806457764391346106904152976313950309625315812125812009784936110694661634945532112821357044882721006963376823463485549537579890683428101895460833793942394051958108539416813475192321559020163158265555844678455913546143189369740769234691109701932392073907349334031655404307026249562612721357198608783126831485353078150176338720144065786799967124975485323762709317546007733532060246946964436010751740719636809881336516114447783654472212924161256755710065017230467641300699693280794258408606603321922659966591241500986169269438922069460126649292558020693483276421349009198525762707943377473112645426886654274818980307147783639083057688588093963224519075384383905740039505629777834829485652769227729211565313880349973110392478672169064428361726402642252382351365220117223401315966595124658313031209659337185318002655316834759826800725949409330407345537593961406050307938988084324477819102057539378807521143734156684292653479567201090963440520520429917096598298937408952712183310389813592606498380405858698906416526418008881954299316246452755676647450796143547249395341299299681841546305194479838540513159414702265398475670598169045162039672820621062515407504502501584678518713664573287386291194862636951780203289779108654118140057815477212098319346208307880394062651991465815803236524913800780068856557518736757977424913984343088893815326406522404439533047954377981985368715742115015472315192466211770356733447183380313217246303191162024431653470245545591860018407138816443050911774467593108104379407319703464232351904135038825644377419700814057859881944106230428688644622435871858013710189893720036649613834809853611538044212398087679634951896924645366153266214510676252928094895319668471680678026083648513693093505075285705211874686228820080041313890902504207394725121787477440492262337339434484226742349742338032762762552182472834529709600186820224614833924932957746300389191188383517225540741202021243946681488831754468370040889999332622435844233729110240176159915346829871538744238376710965682726516528967725471556631945536153947927031682490188881023341757848950346662515254034041258522335308691124071928332647816945641112933884902556465554590520776947321155090062528808409180485330241988374859980750077592271392114611925239905177815280154785989384453947775878001230124192770558806664724546389450343266708091933901899260976314251474797807447700169371025635484952158221679773668732225592232686989236759290889359127071756320032338340273998004263334050877647724025438282684713947432158879322859483552254719740343624676290090345725123602069912720847248466563648137598179794188932691015430613287906926866801153577126940456983810673829318584143583675198007334574533600948526031520414358308982691290405043389757838995930965184036778226532147590328351337922328258420453654632123374670957724893540333793690815238828006008148545110137154604497114854292089240939461455678080674393577941376176433791191787359215088397962662594147744174364540346214970133660301844153964231183265663480275437513578350717256771211980395824546496829933061069687316909970988784318617893283328571617399238473533334057926762801030667217752171500286302594701159120729985218265840066638181664244588339306978752111662323321131959919681251494538440523190756193120843546539600362572886495262187627906547745079197831395098773152851215076676554396643836639979953676419982405947074980812948558084580291365693983074663146547521744371760718885113160898547342823486258842976779146658301368530956801362530790598759496048810522212325731733036983950814611983665677345768962156853791064459655555534332026139072529850974406477430701206949497161332034906723577778075519689086033804795855280232767647995757006769237827727140338583856215077616422647214666925937766754462956289707444077387595907541200876707795377622907200701312944660460614315144138354948322070948450977391614692931572089596971166834447701043515419130791843921916847845292705610928148074767245552930218068636970860681378782640065996196536843523541946117629541591749703625202792479734391788812875176679044739467232553864809151026282499950767727147257223970255580199756408181032584875849000309539794125636776471381019113658912604702416753992665636222949743573636111442732239801439261776987943384602669567182992782829373520208013846754986374933604138861280336947069142464494614873846493786214951946407509344516035182238172970982899707139957874549207920832536131546299407509474466004195369862068464946269242542392599536253256475266312576782883247642814067982503486521379358554032516655311863455312328455939587516569313317497070486765083254181073571779926955218870625423641815472005410123412770086692056780261329768935244536611523612425509524973892251640590919654067827053784188503948680549449557235298386989087020867756831569983505265581197656472622299060283390110534685834947734913138997898036783077080181807648815581704190223145718280741305388660203232761346990355958943895854498116380403764524492183920470035101861262124215128806951235704515408143639409285105684186677849292413403101873647121435575918505560122786610742347638760938239680391922011357802013681536848944297162251185362923184139860609314209310727495268137645592452694654414699328482034236991396240992420907544530124199322737048063367308749681506019890369906612548696028924467904276137841336449880638357755834542951450358488224288250188262019135807929516326800029009129431155181902209731408450071377385584099141597094425030213630642350747565506346077999408594480094905652361942682048985894669448319889864415546357622098390675182919745568267066976457947452334506261354504876343705625409247827619145611468352045842608826700545914431535720229327988293292631481773088447348907683498921128943473896123747016520646540765183293391675223615688189396648868213378051174777280973568040041245851866144796577938734776741534033817196372210528445872823234849163238525792856498887549275432658241581762268804922700574115408268806431588390101665134114946230353253128151060045794160409327247960160619746067401390466274662375947217237113907072222457551427987926737015512145801218849155106992422202982059243654547326844226910238282110361213761166927413320448739877148205302746629688526028746328803751507118883105137440833838213160818181125561178210322894979341635612114976819946356380994079030976058633995697269896988070012587195421156295299536488315629995424786069326447306230432785227526186657891641134016634529499507335911190751102113074579641562606054009246151685845456194633058634305952863222900219809164937209245456941025721187156243169661274453451922078586137623526620922089123111657510981154395834531834700033777080723295426784856243871894585372535188316667565738970790470023541051946644582623642904459956596538733339674571731243085921962402192795406142947442796833705073487163778123691484259624379538734440997526747657006891940333745000615151407089419583101554141712767357365363272545345381204142041514681187984238118856407397184108020532641190699236270769983030086137054806378265214910858181285803738233808987965169517405805829735168429976706787776417163946894147762963519587009560213141459150621576931136419137323886680430812683821185266400953742441657150779168072025666466938058621202601284687504908165655769110859186183961352117830242020820638194604989282305214630884222858044383522907250593050984592267636917194434737091221280176981426859939057912270293633895499240890674761663202681909069930709909971935025867266111126589052377966931926073688893360809437340542873414987477770159482830182466155719822131725364476663432328783628087922599511777615628765519769181443244714223562187295867711914758927808012738003545845902462914244747335058275525666559896136016167502992892537859981506228643729536388454371090289554975039301349742337883853788464763525472912423137129368909515881467116415235710105751756152981957553907909373464013228970874115554008961835284011518282968315732211297879414375241513170295294491228434574061233969576306636723357677825172739226102953781708498741313846267447797441631979265131705445237283015292046972375047733474742609714161522424679681484612846821343997531859318940323333794532723157833382775270035247003544659218866691986646098342102433818008688282968471346558971489468563889031917897896791037584757408521986704391081922550534724985026833068216962839239946614147418324207812741173809965098242569980647189281984629911877128889449347355771374846438699656847939570064040370678247049360988383087718382642426377609599549928583937511739479786633394790848867436862273491425561282453082740402156473091851577871840358040161192753009890554317305764737930125655051552563468847357422172206378222849756458046056297605230543057427615745300501641357890770349762320773537886140226587846287930868173144613992406188183541773451742779303967479173384190696721865831085982915962754879622602359189434876712235869584891178551514390148643703275668902517167916487421180678908131365184421510922717057031933257368301379082708469457736485728273063950311890282331349907083962736918049612212825290962736066315940602214746801075106743741376025002432594959422667659767425874259541609854426581557523827804417025235188819161914204218239786479979579845749369456587049091610466430366040288025492368011728219909603651254578977237423340142969242276611646176413793227269092252527195997600791951780435172567408092017811001479791676751623583122173184632170671417134849958145523266782624470368536729217436029850081959731691351613387081238928615535622473919651395171278850214062366147513696910067614189487636675561749533031988473404021984185515912202794534265198202118133164879969641561890888367943820558897238500043700263756111336939036589436059923188489397126805698232888619438481478727404876572755498923884725385813627895666795501008249894504200579530427971083465746523645574468367008082000592227527927466992557459831456475981763731368313678138366560038469059945848500175900396666862918598417769226377579986813121062532249224445310407351362227890411534217739326876551026155666380262851534735515062805591745688950229720406320225444478113869281945522730701721636677493358124441006242339810893716210094634833289043138836100774788512322085340729087276918468734087526703217670673979813564277604969802352084641996527035223058724189897885520803712910459538432856551552312955486923784208670648317451295292368816045484223785584171586160966546695136806148072080202966458993981504164694751388102977053700399172075722077215067813470060705460192320024995351004156586919444310327687259258912717141441621309910447526461662196927465695295903775158305551213543582124115560518375869724384099265345764668619468613929368433581507337902583293220880959484757639459760385187622930683207471267752289726877493985522762519928751185555296021675016524335283939243208634270457683289728849017593737056677451548670893739688987103107451989238255585999540109123598039216951881994816205993987003794989024891759969215511039361764373423942092116092704131281081803046186925704380042578175065976999130151131916824748176109038066981014277047028260396870642251440697196231602665409651136528286273629176008140291865004165208468232384441777962040887062607123501834166639095873802129292652402077831882069856284206113772054705754691013121151649725734645256820311640138207394886715953002827429811648934470929290265572353190299231586023266420529615297202227309602235531066296058413419967153749492349089223175210350635407923900065102329829423906549676583861361466725568072567863842171878928538568530430537802119889661391142848198166798317011277520917049520399749754197275979819060597323525262664392585497552215609184061333321443574573419512085795473491065471608480374924426919510823552993934437732590145890163032386062429097800793773660157226918474385978589748867359141084346819570897778714953990480143495465753356995064048067324212341372624412947076713241702138107506731479002810268351346181795740369084507969939545954774851693193520784957432124351855118121124892519077209883235632083028464040011424481671647280313539358293107799929301887862784414375091913860388434586684016307061680013293562290042204475116665291455925006820979368131337346427645357785527758880056818047522961807024826601162189428590376956602338358450867838110498806320656739469802603517998609994664998496766259040213668035208539385770478115378560434046615413386733265900792545818704014988881224528664853562913214939261232463034709836052836402026805053452366850994253238898694695061503865385991536881664636384415207716419893745356533301368392194364112103498788519615801947518883623200892111044183244139335879029393319108450761899604474423899827297728190829041616327019838213645046405782593871946323338255769259451492159332993300324280273202679743299620485141955999366439878122485616530847146504723667113091221271130509229999769326024573817699230605693512757548582283212501173116431549815350224073566200949229663711437854682475344403835481900079942138211451301412835851150298209698018324330672258747511199686799191929045455257434135593619193918971262920913648933036922722847087187546440557557289269325081843067298083512746421773710403784092354908157257279113807908016816098854483230627442647337938364093450905308729413669511707568861113268233960554788340905666378401031237043125839441441510182450266402423463410469397184663351667742612554563988901305571563103968506912870471478334974317239501231091993333853752901884106403007634304559810132834772299285156077973916538770809974951725389797880108931975648433965630385617283408733637269582365657256325276222547136245127019112165823099963825614117030729116670943809689986610795857030868564836961137758412517650532728586475061811830110374470363113465308971542584221012536243732652315938951103897455339116426690878897973368400389092752614201719682592610259254468008225110993038401924924382023126061489218674829290237213195382547370585914857948949895793445333322348996817796856349060094610498658749526877682671920737063962193601646369764125851703912313072603569040867654609546904063136030739919133960477268074850817227848183180936384101602251956159490945526805492140494072042431061100917351279998782073601793140397546734601121531868194207921702401747505177591325426762251634653656098556414492623526071399740856310792392983099941693807690252509017655092210871501513324593283475127616102774252972498728438965712732756543705125501223240390464664752514006280516153620839362118694593432736198478349007278898118302324685188038078599989581769751609671904590928961172716718530071379977273514729738220637151227421034949685676317049851787326549256248256489933582227583590899531445499304030447122058922287833706607485546206482471541466859362489358876161181921297882675995803736478238986746018657068233772832695386756451601285647493270922452116518375143161136587551802148763187400466839476364424942218024790331197048262608843664963323027045241811234958160379090245754270522788525703053636190958585228319384985155746874908799392453846755764100627384844747530524582199622199071543712220341459933783640645070663842918011603707243633241542172244878540476743516975254626514157235373892163344760715624958278045037087413502671101194120305480264531758172248050514903601626599892784611756879037881253352928709139413851374522871429099912377640697514580604508087609014454046505350621415521948302111549633086674908289985825102978281974602831016471470917292039098593745539369501346073208267752493879067180722445579410677360660750936322591715024350657527460650503900451394399697522398238872926614133433903121803490668280382625436132977624934938432198147242756399890990790036675746078725446948361467329846169593986595007094084221484611674347726639890462492158940249704988782951005404980241592688466891682361590471357086312161171371407837511284967717082469990498811493550758839572215208104252639067188202077720831611442270953008823264031816049799398916290051617823300171929360370547063027696126600114654980670690213019066982545721332701153065276148256937130285439610528432597600161265376066143668826718158372769734317332311909021836016186155658345297224929768149357146220925698370250512599998736332631427052974441226920150895503521360603088305509856211276429609005737616707021732862432407589198523130737170974482034193140336317504622962704738722467638345500044959469174883782100257184867067288826178043271750766708588236680729301653123262747900359016561503485214905550662877542141589195107823393230550703491960966492800762963987034027612266525009039506304790522574600025251894471603817453481800351366324492651248208052438595972312876665110617761951734311934222041656126788329472810665858438911423932829340632509696309394117450018549958075034211992811396493375831483627712334967426738535521609137021389881656650362191503716227045754503092484354958559658869668019693811050590480314585870603195632066716518002574102123549604638443894591048815705751468973035322565653407553404628730757725233866778924755697898209382436680475398561126993587313782289385227536768459077543098349318807605509679727530709518107151616661829731794619735255627114991311345416222259707380210389435951684650925460819596271671257117839940830781376689336017960119788445659625731180318515476904263498696278085759083242391784933655797217800047924257954086765503780139179024994255672502726403991898079536099272301786020179880078558142471956709745762433406277484741605224807330454792185026196484527532074207633766763171904011159317170437568941991809549455867070796774740279314126542873437017545629423688358927925965967749102208942204915265978552560073906807383892353315228223859637860748360064183061860643316884544626075678213457128042947400436298192182438349180861484590406611372826274746148859595095575974337984975730246230878691949796517809059189955006384371494259561030580788413792902857703957111238086449426079721139505580466928897218625207207736307905752543368796533529207190417520175996614600974959373408341268084215363815797622834832123002938824384227378675600602405907109158984155638619076414260111051702274124327587481421896118993283611315108586623605376453818338802549377580424256453510662197228014523852647906500887684393573618550862735647324190011996420560607225245991953989979428699828456013838778063297617616189381372841193449305588612079199367639385801366787537467932222529224737091536877234489944669485190649518547572410407524205578704526450014530951243536028139816920876140322457352072415670785119717721805523882667712271508119238944413802322004675091256975873952244942438913571995378562531194714643730650871356132855146801251305227900316218016999828111523692063842042586150305800132123227192019601647350872368433758737160452383960893052143266301649875071213062644462329669692141460856307004807585929299377848940098515237710100906036115229116906795933468266474560065472355689039186128780880255771306106866906599000490035270309901159422408117901721105492989267802373939076207809074064718340231994677492082921669566815027498155342158193149559623004770340291454114757824046419094508500860464750954277387960253477817033473917492522387431746095243228931975091785954119799321699050325481973318241318545509451255026489338137757434587907909179368569663431091243231247378371883370145009694989724966436736944198961015974700700197778602176337108885987650041063230387860846307334126718500870288183990797243513962681751359355252826349737635422730508392032082105673869562423944505820254021094938078381901595310308044668555282139692823286769554242961635384154957557474045991389547050955856660187583763429426915102178375543282566636842962996514654562123167646811298350882508899201791134931221131163500654151822106354669807210997680707885004779279464393793433170040469632218085620504450302298054094219451516794861084036406181337372906344879442873645515044875371239449971039935860037796984063747100803409134492142201652322955893920000015506720810946463005175711356688932541556068390910644468810057594268589428124732288848641119403867884420287271463090827864104597347080757895594784862514495251320762772387275889042596272355433038547324311815305493230800476556299416503892683038699717619970216154731307291618587256362657565356114482968942559425109974182980226061820349472870564171358513016148215167993005412707050854679700853625664520573206469826947031738681096104255274123624604615115385636258214482227685164419390884867717003421316047679199164189810851036877871193113111912662167994867219103309692860280887202388106921708018885541273177939167934244565597828207729730170946545754460527558770788798741532516259756643205780855152311491943649437266727859524885638159200869239388805015564312497617114605516676368232657261242865790471521766458447519749678323864537877574044493736197484252137101347511777150233142204499860476121083234794033996575465481991046235438742947324234021155063782536419944379669216138840107947502209085326297585089975478127733204869193903701160567074347248008281890600438354621204146738523420667995627192838256318476442770992361570947235321487104285535991684645610561873440383605409974961997562028743488604095510298382744086585517604843585678989971959000059209445485951710200676994865647465605976738702509511611532744197422472532551557291097139951237930204146734060248896757662458512077248751920957930894973412186046772255910936253567581929126751151105386800447193450470585360477240844909082573134815367414681113634283797493903371617123779473954103661255527562980575108258280622984624704679499123353077331588763444438556290575828771182260684951221576782081447670279513742094404837443242172470726111007844321287750442139805244679424272340039646181846614889653941198855568575017032161828220684842896145746169931242589708871410372372361719806094814604409145298543010647369618498741055505455974290789076131317754956999645098140011037262807451697802565500942362186758797539384265653884684431831648902797235968805603461990160285040833741295786983325643386926013482052847943057805889518918674196275497704745625224814182262417679768516294299304644727223150360441262984584517226003417522720642617325259417556683958119832795958491137583838651221172351337365667081112504442904764957850690940108275420613294722633790211631375900877734412838076960615013437441162376890836603243437694544256420958696283036060537496633588084754360393403381426502841480941368969260529101672513701644474003243772371592804979082130156804693462428230261822115311593314799220228744375817598955413629924326940896510259363977723883868347772552947790818083527312205463370889712451476985633645919767322786562268270201110200156884947787589394817200341299898364212829166192613716358126553706300715534872525403130992169276623481484435732349820461182702731766371834516149700487510867507956546591130200026996342346910703439421299526172131081453262218603914266363850232237739104280974596456872084431483265465802004499342367922729235893591755492210121010742311163869606308790055551245532118902164475868416196304160387786987610679415955178699500145964680963265626064874497020249529136809495589277816173806924206123269581405914191330273943963680347555175537660954339584151719819731534727810054640340385245802169272093892166047670988007872297796517090174466384485737792543827780672550271056559484438909617095306647419846929126202946895549027726477178924165952921121908245852773791200072357367538186310620930659101756051275019722386091412662586128454308704319294480305481514969873197957355560335476819987094098447815376955481651856337182289953837595760272968283027813299658244336876365629994789133953651804816693143741665254965508829240560998428377714835040372109384923149393522633236146086843607930868614349426961235725763169674158656766549505774743839575541427249763285452900909573120802824998542598495566860365322370987101651114818360152820701187630933879943622286670793065278844939472820672789929584763371638119145158454032710895092229192004251799096662122113910825157475538040549499294833216169785511537928585651692909263417496625628141860624573840562502976996568065837321432626949148769091068586766857923275523864333508192196857634463543388978120969531098325823303121864741624782214535133542583394597953149007560724938282630297472298275912058439514691648268020825209947883179294286481990565003473989206558701759979038695648988449169380075137097810935271681229320896468070213557982945729862730595837080575291269642327902995868952591787281901159063802201926899989060328071571926674856819063701463212646339965972259428229017808726978137858157400704108101264928151443339168347330068083642352362886575104455480927562346203745641681256791069038253405507731892052610066660577781615902688766601747253197773392926999579996644547294054984979623113892600638931946095990488052767718859413234676471677260072290968617911336886971404178920259250687556696868493243960153066214323677537788772084709234189487209523879521434281126498277633316353814987822275812534375588361537419580342987198729924472726945200310931285468983604328373351569054030278870772901452042932441369939813405296671170722768235651480789719113060536895691913599714527986371402623016227442862975976250195893438181324108781499651611645188393336577681834167926492737128359799241936305870559472538592977185958392256777021720849017372177443887749658469697782472865046782379063203858212768929745806280813052925604650543077180604078296435728250606089903962041097493257025771358124979827384430633377932922755748767744064350884489428473626491202508005526454855785281848989005223105541432623238601160814491886418096398780071529680329597710976344247833333799133114339306205752649994643678702411148017222805717307789427181157537850191397815994748356773840073123922514852504957065087388727046962759417601602526735950584742006190995079741961069312370152095510778907974339492972100495473169543930343407870196902662044453219841562000589722910091354639164408434097620997162592875238885416051202949070807068341621664161595643609769901337499764228653383428358231259450967970240640386274070927640484635904817123421487297475240469984877489516921188390442883792044605192364394382031021689883267081964921453359795163488832847697177311655290150079123203908511513057134877006995031848573647397145062618578741606717525040305649764343420049318511707886385792833272436910427953490604154517650760298562628695852851253001619430733607705695305076457008484221883132940080014560598119741017615784629205477097632245711306651677653176108136845143595025805736748919137261132360223850079819223199027891009661011283227877838473964491783112806077073131175277244555995533243975232049626954019299086020193991838056978502770660941973441454678803878375855289490429028760555005859534574905327953946133323472259653024199572249486539619727749510826523945549362936925843503660718229529467832824419757501124650361623544633727301429381063886227070755438516575406582672141569379608683934286550852726173882334653420210782697433936847787963834272909900999414625706539830535542771627037609435574416325643002534906673473687240010160041006121658643120840242925326058342841849898755538404456105609956901712952727796679918666594503970086963136383609371656370389241560329972982194203165232433536230049178462178551984749245669884957932330866468839189467182267373226597421462961470299115938369645900639641633045495451572909741063464353176711072840438585666666532707474616234436917002187169857582908330305723478639226099162883554810837578785537884501571980399959327978979358195368600970696384047396972705203540539748503661667494311763991925155813743582454737651204291721960029847753852470735255621494407503183061802014711146006604547947837192952130314615676257297838586752866985585525603017859120710251958358319864270088279299518995961549389075567872778322884389687007582341070762563946804743514700373045148391065964744710814678797306895644256501979948382341897593266671935750682865022247386299118522539870642766392064327702955898950858933785103484815598064273122311769546110815007921007219529292973170379970939196742923154613580097987571597501394195289021350026578670692656535357664367620116296178551124513080542835472945631813565014480372087486859853168698555932025040136990604350295336215767341308765375376623711608957177349722783608411433751075374213503329692835575785181117316218884138821823973707115176274297966118570617098384271922165830034706379887217284102058517178170175858988857314891656506851914467410135116271126153679001410685616274838891830287526959233000066320602797834248024715633742621431019796676601356263422745356063963927188687886101741558035011492454153128073035058301440557299399960422624389386528302564882328140273515181615574742757324242284079337212895143068617506949611614896574002086354860487840599454294704961750774295635590662436797268202248345693473262144327647620587033685512768589597260213019289968580429087327797081569613200740422785041452083770834461647091214322795443248894516175939268933068933332429362443179463354378290580659799261184707516513546262994512565939669049334350284397662862485762676521813033589279160736411555259385775598018121533723518890425215558394153237305963808473405029223345321186570779293410357964518613551904178647367527870449729434056547624272365140265909332459052880413455891101836086084898889212093622707480260266962856030396257171007291406497946455894714840818629252943766923077492318965335705066196572436039948017485033812467466892810741176244328181075702000021550806797399104975797716047356865453898889478922909662425982279370163047073254616483310799225667176903023667592398826282980522093534519164373254194732585785533454569922827988402284095583739545598663177104669489302253768228419845611734108392966927311110488133760714433330926256308804006801267855899966843814857093411294480551475589582691233224449736885071207599904141881291879215938586512684263488779915677327590592893410196755911163770169011770256604267884081848649115210013281202945458312559966521425326589958782819404168744496226896479498357017444798339620409197319503574369004479157751033299456116268959751525114043297881529324114002870005813785063275793591969976900001940269930065886992351665360349716064993455486431715332880324545335584598369938202926002082006983252609713338785182375456949165658374809358121959441722195268626799361887486249807709633932628928800754503759808149586586697121350437009754735825383741632939648871864091826628278200733805042667418309132259409915793127371692056083002952097106021680369159199673664091277872080332758949077593392725499788550060200089467708425615764617225331187916656331730774303534046127017153500564732589940287818771963681367667746451900947568048401944670542112955270407180433706870949706153214830440339367617874313521971423377248239569161249514328871731142525301990787883151763953077556445247534316378096524419498712689158286225252335476783291922903624764951706861285874284188736287062904262421080687019953068228091618772409055643856606304914446721485676643206922380016452020153166655498974898088773007817720573787865017477454400577852467689990374732575306678903411460467005196707676071093446455299525013343435495201060444405339495289900642302732895377114370007345262807548465340660667344627638183853658868075227237314914415492336708954691934685489375829832287265583943055877673075690091062922173471753930595972650306788413292398890951527721809281447074389180575544908120909333846705061958291570464624965213478220013730676296724347953037845525232013595158100719915571986881047782795569530143611798341987395122836484842633153288232948674664330038549925946623689486605921991374574690594006730054704170676540352193114467577540747064250091489674772053237047384126857344263702537362381773142715488003368317391564581217093617715649515787471285007853711606736189960349628439550784949818038043766071839647672699196990528259241930777091769504304662499503566605899524255530295884752527988662420243730944818974571153025316877080358793609065597623515292822519303795073493237905839866845611536900699259368866210700312157537987672016179572401874358699112989919430114505571303535165937855296631227364849891170667264025638013907660827981059741453733452410867354289849964120535177397133245451523672362806988566419721861813297438539443573481867306064513900715966028464058550516489453206742069466944788250955726661343607584877208945462533790763002126461043368541370754551702225124827365845942872797874494858141147828487753315074524477416983579236417152397115819678820585157515806529521114609026723832845005760526214144994240335847721858743461547375717798889563584883000781656654015487968181924577055317838774530818705821637869189136178390221476961831586051364671320051954610869999789242760323159467761569876110670059019738337300085559843020616376842935052214761128210813976077701719573748628424954807875069428426892587486765322141457856633438630270318628552121240983435842558356310643056226381887502394803915103792620362343213881290436777767243628812505238079299383527970903898079399402651793275003887623713142627784877722440730059676908847430364866126454001596952834875777719698965958493620755316179861376575719027860809413792510885105846371445259246150662797039514063855868097288966006255994913030877395535062162945997698008434180976086806063889791111416252975365920949074539443971451282559799976185727150792623500808768540863652278778057656479848639690533758071397033746810253129548975300123086767378970891357309777167601095322318669281794801429892023001429810235498022994437551123982635867915958814062315793496342853749852076876670932719544556142866917241776608939116102904838269310457190746466150447014451772957970208985861798058101356033712850669118039581904274704979374554924708585692154284951478377241942710353485944149093506843854757584469615044477941386136637435993472500804715653436479915656500263381514996739931420481532627587371995740348316281193533690250935430222931721287100572540104969836933166321015860824087272170927522818685683361796435857197001306792223444087235216419594495680284532084516009378779986729801806196527773230162385200374040438848151270572159375361316687335171813834109111730688775394130712049234269625356298924349558877000170542484124166792249546195432431994434640522679277473153037468537791102316837044396311457981521530968306146690987986584381676416091766604084959394460714728872912938560645140755868195080036568711720351287416131281514009775398811223016573107942076227309508405227126526707492147647002862351194630791778998096998116261089375727583826301254559044280204027317764458178878579844444555486238471784740728889931674118850505152455139979204077799295168818607172736011806916183493678652098145036332150490556063922599963320244581178302423659525789224133879985110884179387761053426034207022896124521011144803241998862530006326654276029124011043984086209069539077237742065112521948069652849719574845368576430241458720730568827317813268354650868387556951940881957163892130207817926386270666772494701488713662011846781311032345462507520715259556183044406234710979503153774623832328066572211765812773484940868260536718323463767447063644655630574313776374621017018287413561749891531820361389303778027931400103439748754662782185593449069932141357095227829469420903948968257459440015834274079024213594912073487735040181206809716511003315930402141050263646030049368358599131132449925353195802980222707466801333340303427307534650801849532060987558439448261590019576588391136790435587833105735552660911184679611701640118756880428661191898771499657780945117306416143880081258617488341682362022051935609367620191522120514756561626951130865309796230462607216169323451738057313464811710512046584399288414422501585804360949610401699634099185706432394935701389411247281266116346301768334960536566825251057522265486331528623876402622515970374761529318580174069829753732923957648562736118777830185510120437955602239215074891769827980383713145507015126801269727334083391931508416534220536813446376274632467616241312540926300225028139289306405428461389699600596636975295733641907831298524962384119935493228896003240161306532551502903867650528617534557510270473223830394963423393656321763017211899003948133841304059351611474889392448955437132935195966926005835304238666972640609646788069953781679099133421732332544295864748517614186671623059042586504826803956063353372719077810396288348888036487790128816233366423841997448851400383047645763644669157220495566672451609288883888335248253201539063561892437614193149172421878442292697971661069266944205391115375797893070473131309645268757622101497183757362669096479891740667240738739598914589164651063401012969945026041561540401909983059650868983688785400839728315527468541536146876823191764482934134964081228962003101820610841762106556217973560819689074515188176536593717251532417666592662471641552812382564434541245036173048733102789587159743812084535510823758110559608888833015690368910883219406408476071722570316647893495511140863737357625147836756525071262392093375723453853882553207001357362074132569221213139267260841434077560361937821849804424183460537595572205487396261008498982514619536371660498302355157467191391211475648751945966451194637320692693885601524260837162131257870373588765809641391463578005534058041473457108454984490464375644590501271302964130726554239624804796139467786202758751734123597314870844999106995422850125086209211775940113722774507947125287941303205071329337885436675875643750352355064062572878077096567926173944485399646697564195372682091451228269744062668163325505463445304961175766521492968181304230756650159037398824067281389826873093175676765947680933172187088564417992283644020132385400350412413746162231351440851798412941153292433602469450103550995735916843767743594666035856752591188132037911457188140904266113307254426155010048080585197787553773122198968138404582246492631974211563846265607732972743059487309136704300278585135821448793759798362806860838232904967007522437843115917121879337749529285488007601358862479137284120701462485763243720682182351136724412534888207192409781427713493236429522016851639390114283983115913343779146282823905636731350777669484388532076502941274407592373668284146829043675995266410181679815837609183121788414923370928409225870885077127424449132110135143412676710968434424035596516744548073051556743787902774067952470943553507697088816167376327255635240350998723345374647900872321633981187985379639431960467678784042115856864736570272688251864905442921368653602277581051606488699716937368682492133668136218489988453770286801000752526153754401762324343445866415149091791868789742903834183333332509685769971397274927828268600125916583574623433321054110880852882407596099022742537763340887029125365415770658795503543618950041011045249346584917398420206738589288957898551182076651363303648612017710554981197174760779627494450947207953403804756050482216596694010761641044442371875731710852067659810241337349100268106508553554245711204423335684010400988954752562121985174684128998178501458181756440954090670964459752751829524138655896063491694532325603358656340589818423279331289940218333069400549414385358980119929480141266983703094719377227946520816489768009103851908711527724474398637685586265782933675499241955254530371025857889841362043094313654506043409894459340755830142170404435755678916471684169311260310382593099477154336098157256912725835127307682506738569365727193060458548442188525797691917547501843891125294839608773272487621010256172732254441043406588093259000154941782550628792529079715777784143379324320684381459904354252688312404572938567993020870114399021850485116954087927331347963824855126190463039536596514818184469305202428489396698406854866618828112844942338201621418796260364234265192590107474350910187678134620619733693843022461011669785461595230993412666769302599140087149786807341398924339658034513623172687358402522995857570296339282292589142095473003414704001644989476817169818820746776952044359387582828903933081233125283877497735528868795752819716831481413978037458149125181115113866973502442819646061320995589996983711560347892677314401175307226738213148803135844525786484267645968604321988702218979291483474303265350601381254885773852516106366997371255913825165668188962974123993701359423664510711319708781625493563654707314303903044480335416379484555089639944178262682093516820314066924540289357390715804973641748367071890625274128430862835538585291184500514025305101310454423152599450743983361409089662444958889338165589394213466827752347332871897911264329468203784098749993893193089533037983614711836665196168371255126637446838937684016719860125356919943125304697600433399164804813523613915415027867852538162796247964470714453891113638274806190982361538331031724918658247307941840303822975273274803648698160541495924564731660849424620289319721706816125962637503097673942307018512960075047545327833480350540618629077860543468785849052407659604216051773994717564528538454459810277479953395214992352866965266950289252452953239444027650298342195208787368689856108641975024640558531574757442257106493573349812117946518668329870641548340742015542567084605003329710221124601881788166417119988851290178632107792039994168529934669528117982243468428364949083410367439182518387540392583538732279659317145528667222855590973948278008600800032334122718348187921382057171689748688493948260956045694241971337160654524972968041773801635541110311235925161269749657498266858893336692692334730257099922798827330698127276087259138387720768897622943708341599594547787943469222424891224995607355921755044925270491993563876632723796114595090160962012375576852138521257252163572795388318779674172333443347281751114092587824109259128895063732782162720120774212748327478382198256760841802396528704832329490214298396029916288714187367709441589468187793318229471505828124835579496372157364699448683183147258218458228796630580440832638449501080661705246436794964879010671311636997183122244196140055287322957057950379667770154640619712822336126180913644169199730068267015137146537416022312299845277023630802517600340920399695792906419060927485667915916703597351364542895937612375377918579614894960060251046099213217358316845770453803947804981372154532261026955113687314618286417185662769012916625916774024316350495140227281472384065483040214067056486751932760753184286183991615586074852765836784058453670587053887811308963284554115004221954719084944834476140283427129038047759102927591927299752386896425240222981047870608189594228780966527853035171762526746495474087441973730345019160139234515657249795230624203733819780996661633270811032628478003736167426526862013850201190068131352226638110387308145698160741279536251685636001215345699229578072059806836662396680388443422751197806694092812894811078044792332617537699140076468455870403386486748516527647447686438128329025070689572619630085143320122975480689018891698451057286157735114229240858985462479669148004929212752582951727904087824281834656511341813686586437389456448559549714321311272923589057605366785797869395709039002939106160227907331477266362916864838236624598684261227263591438452351475901811532513758743774922001206494801765418382388066246825344414670739923317822158749977774744841460033612496148895787104282974026287613796751024256268099152771694303473849008414762971486787432021405283112387219899394957503757245805659331256801366224778503952127567864342057715222825317498195776343232673833092246895087630529546046491944537830780396377357808588252748882875296752392439754691126079477642862604828524511499032462311780831553011057302975771174369500819647869462159584266796854073463532328131800147738407770395143200697764913074320792297376502226614349562618245167090761650720162062330509998160955650662995642715713670069476034170522417954260376064553351271988293197267361240476649793934201087960498822716598648426625162435314933517438010578857203658507123239730041294239644525488093976249916093022821335558738097472045248666380302082779598706637620030404885202710163007339886218860217840182445506469829900689166256079197122000469451733625360625523332490855728211279825111359980154112484065163554412176533620506655028514918070595538644431236212203841031358824840220740431921595002755949937511483000030166163170559847521567604236885801395670354719015210083370154787112654738539156417493904694832505597609785687834535669667037342402247155518777192597651054313701740410058247014307043718034119108990181318909200008947596077776216425447284584686604924546775471840413902627948459590336957877807654595559249873478745700256778004625782047992311694967831972735043432835402770057040088549772470466671469236004638193909879000214586331788837795615560215560313607495499703474143957276255267881914247292177310990446991252588527844830917909483793977593546898146776579909750061018254695796547238658393292716379072362106146450928960367977522971192348192577283889856756038630128267199413472507673470612734736638243665412219219239777872100846870731720732528746213969577947107690553857079119679300504249376906461424489044375297044718007843649946803508744094972752180586117674720902414519828138764510987303545135278392491961595395159069969853849333289748564615810579485042392777847825144898446314367513941516208873430415124381934356695228971700812447362697097052747084228259209836991195565389081657561929895849138763733904313501234934400427525975366852886899231238706466405978044801015827109216721389802877428762194983565744641143458924515201710481421554271688465672544345271435301373186756442148608559640448581749731397138532766921601963841595308029638048413107802569373795641279426084795230025925616724920676775148226358627517309800323906689285355131241770433759912381826202934273506380158857684177043928548820924714569842259056625198051810288996941816914416477827238909557615666937127627083705803612148263972566463550222815176112350519236224039675338191858444556399833550200980344602900117387532323655425892465123951978708420586937837592023054445668550231900563305545325308741879875993519759366659685311142938674859281007162888203345438508137826546439799391457922548742331776373500102092100799032979937285040375731972663492721921765974150420253614240224922950467083459955462786518414962987268172764009189316791063398894531403239105413415437135723213550927216295709157834966702200463194597027732531729619141344537866337156838728328950187621397772299143161952748462856179669755777911291866326708967456492303781396180830442516753786104866755959253005438138927099295186443137040820656956109416606978428874683852976812167907433106583472920774748596531241776087961801350321275826391583610674906413642942613602051578536439727413575842681578757111474113263350423958937478096810573247961804173332481062907568577557778025220669293964221604254161637887592562730975305160997336050411012178541286790134907222247379043738439708884583730639597828440455535362247066913318816720149241098717485103785197393351796834443621462159376828292977894016933345999778065300170023483090649182274713912065155100530412595236617412281614245971193322523955987350922394246805446452311004690344046461559606104446388379639848633445486709222964874490470111241547976942918979890862131604781729452599295083201715799166038453749745915436845447546745220037639085779025361787114986538558855432184271151020511287451897280275129263250215263603341505232224256731638923578838346472843464221611268339527809404079296269176037980193963812786844492385200905062710406513419838141060756701960324676178670691311147719625609168832675300950615841174566144418166179936490039909702017993712302915111961217853492652880666697896532996871796938206488611368555885859241405197723592066554370607923059387762300774353193330353871690000571918662019157547689310977095226966067367863649650141832708027917232467357400268480062762952054429379126131794940268036997913236109894056495040062492051442589053686790873430614084089987460617518268334219385119479389253469170421220527030786839117400890223038713602068115453988669185173043456454510353982633027712245168273710094031258102036070142659153312179511201445502764365815552185509229104495088743757861145716785630276471803655226879155782822575646352902689928379865235530112455664490966834458640853066784705402283695428412440962080805903750532836020021852619899727607646311591916006528414503582966811134413908366609905014806087741628459530109755591102598522322971216851689949021557449167168823898864975293895332510846037252031086412589322264036818039947910022812551432064251921421736458728338426672018611302611369874595321946193093282305473207339213032360643073617931419848640679518912308278052878899959063390203108808731311001119479813110731114452043873299753522415337637551585344706415317845044966922577223799623478390037967995974629337247389286758053044658204425334131861305541082103388142340829002521263528071547275076984632349651873665950992091105152372662307099572476430653230076332607943984237823049164118897988154953070614729478466868280092821978396936509288297301081138180567334413139228751762659334454835912554143606984890438796299568610269165334958036801958945745220740410417339278389660505871390782110745802654612713591405585305368229480421376714653720128530449875863303872141354037590370310810916332823151461195536821969422742873574893019078418207040512563638060213600861718052869812656525790202548147753814895447927969637036247059407468687953767660170539253310739171579130006260376126158365977782916271427929206832768672626583160343297975895675936877619423435194772269924881989178542799403533395391459996515032798801863739172746717407848293601001777009462473796334107376332539570997907931887759169410230270581687230206428176754510161879648508624651761193768939539557510943096375934750604822817184113885172266670002417662822771275711531817096546520393085974503487432963468693928283892381465658842709183051506614318443510848916515667332452358861743971564829531285160027204586944259648386324784696479406958857115798387731675724201187966708597136780502768069239260678822697457499110829934341605784314032288918811026000430053767942721205714128513178269063264902325537240619711189756576563251522580048130879636350650731936034214561155501895694379075089782290432680162979955403922505845148895843905407662305680804968916286646295557378538581487342527511901370250928750555751724259836651138563816453664497559759167959833281819050994857487064653935194164084686237843364848372928367062990906647934782273298711628000040768846114371609698331622442855566141889605502368590609985546528677088522437952538910011222835214633361620771823115233802310508523424289268355343712335168747078027745554179067518378381649959336039191458945151708634174353260307540311190084952302480499622500974726514849582124889611661674915469135874411620447604756994824572786020606383208097130902070288532731168800778087784884934181658896806447005747129178342764206588777775350159947934810344698613606307396178669713948578522500360894767548743394749206094025613329887581914308600268866768236999356286093082676150532901125271195899696503939178937495914408345186584383292043978200835218586615247925879662016714896199566889665954070488341732723933446506040310876566018119227009098353117762850493123679424747899540515925462597884622075628150868128629431417889759217005333654026396864331413847527588793632270156610072259095784303592506239971772317394938082457265856896665702639810099415753169950931583166492837672028199058898788533394962503222985601147058089137738135007836915639573933038922418037437238028817246499308159408306412155417854617516638559484700320284891344199316040271743793060975389489260304919129132672907798980508109912016896221972293437560985908145477225804650496536443178749568434393255683976894277088956178393182472120516599458839432881756656899950811897799423413364991654224825106141501380448760688799804491986925474426001968295716402352006590269182300558400453542937551316830110844353849585971710572490506723931156181366354899899760689520676685970680262488749714471798574838406720245572103318772134529410278162484870666156764337170059389464820893113531088938879720893203021164660669668468280596066380275981998926525712553113307942214077681134967260313332108200880091757416942583363550420605463769820444421694948095882285077752055793032403699914950744443847070417359282075114319311335526600585701308094408851804011964625480666599431719891045919621879336234778273731914438469398592774869149918901901993476504884018804788997905196837823070097503716688077974433364834526991255454202576353136437135635855492695788702280095862719209645464422654706677204795731245282221141416599660195157016274254620212873463620544450553922740996326141972558822841274643481029158236424662975655538499159683277430632903356818815117168877377711664041949975106956562750441063092530852136507914998189407395571087526575294720381157802588123248335769730830581758422892966757154357076773546513651185953893524562580589345593066759326753989688841923271858599059971771166044936257940040664987108154178815410471064308415577472344327576476778496408605614621503020753879811866258012016720908537905826310556697167730164101440000087059854888539673724304534996386645627455979112239312883761224471702116265223948014117036520179263218012810682149222872904494509044645720551893980418016359876007983043149431950635719938933619380799462337808714468932715330365487933761453444212044550093415174048040768404113530754577135418696291331268345307791504487923675803864587017510783898822676486015814790768501714991536710019870313800940217178489296443238485627095329899340618837737946855899127708778747822326184084563131855735105040475714976613007351152809645314308988749204244624588039586248797071032929601060832688594742148033392708669287554127019639095275693042979551583817346228508726691248157172481107164411730775744890074355097354555516864588294863625337029847631294251479698491085287300208744465266216111216787981809527833337869392215592300316799844771624079214404216888496382576871330287160889917305834943937185459593527323591063737013179438767651424132596406333922577230492904235822451062854836920952952219865055237220668419985534622408002571870970200394036709916931911098705077151645231620486100954182825621649409125008032913003426423508220083225459984299451543557883831549816929850703033487346300251261076911056431988883430945472875780687746163164972912282517232403136969789896986527850417575351467631126807446560698303698027366627687539011565528584265381950975440793163788909668828396145231977179186002575258339218390673329550413070048707304502151766030309541601914091701975102540499439751691086916817974422171029715400720347851945395254745978934657885750762232275221950865186595842352663997238739778817343922144631381569592575337886064500585271686254535652646435510517403045034841985350272678267627915131028453121859032907993459576153910227742786184786536069200989507205322041507997168736438079148108793607095976004449810528861496467224000114176075826044641782819266851863227856579881279162365890051810925588212651560414062513774218455364982371867202969057612867324800922513567079538186952659692973512632723542885497114067434401039695123730925166641224272312699010874099450910617169187173921378001726546167512353138256342576644433634155442624320186748513323050346757461409923007194409884631727836783487865089184441233830475452561697062250309710007957876569520698488166878358057613843332680401678764517249959813786342398509762832326289003550576636565177582624244734152388308779061950421640583056105541180659966179159031965917859378645290303721277796494719059966464511485378076924148292315271160975390980556063870747734522759769560926372791416545842551934726247274553638386112247366289451087087454232128587299841741820571809482432585027557905067632501248356934178411259985386091871699945810567304675927175830726507317327501100619165903649936079065337490877190319967500395618659527548094075548387001625397649479087839546281263759762774394225634708094669314390746451628492306921663280807626478259602821877042175759124668909129944511202744218652077968737603372398386536569890394283076252884323856420472793712240741003087290783869672650483602320729816124650842473089978807409984690971318333488322583609277860639243742634103818545666090656202890794496842950984891665118061457309312815374391233009720618629959180681651550523922029572322574483050068762746241026964409750691240255446221971396237897104726193307388011444766919741060698787702775989682879291145307055292420837408938685787738477906022563040577910903786204122180481270393652392334918745759326954504538577544876543731511953080200869332245287806233919700853665685211301630376401113891041594962904133118308051807313142763105937100720730974131059147265989467680407467177951452989577056899367607402057525661540589582878762755165490458438900284587888373126508752440086055447597234369914632314183407243004239666818517845701011845513313672929388279229932846001443319571527977980537532567603055564854958335646095706546074260413787538641855497397071969831584170110021747384806360332130090282523764838860015383743501218639477450212646918018653755555271115829212825480418195597128741561661326254051471251871426256866586679096567708684662104990253842607061376904477027368630239460193825323100494316405516355867820801579854005278743244599275750595029746241093542578804759848637171208125621389888930016838510538807145528999520835520732011634358781858290052437625568995098949639855082009550864678990819815177168716779491086637863728315324892585773906796896785693781191329548953685298601963819358811995984027270794367778781846203925993165337767109285022384737133783741833290560832127595545840233683776741407854681389419749263707911108914224529982236271770381251758794741295809382894710708436189576452704842487660044387053993087568966472901722177624320624301734284680552246406471317747844006056214875342635136381240804361744651252732716969940055036567588930402753757079035234599098150697142203412409299549718591456435519257274721108997918115035915743859261396656374015808150370019089129163643222216674345848976867042420531350794746199412433790916875143425342367827129178291879007456035952710188943184992414769732203598894313808261168142992177320477350263291838920097319063819288628817101883867110405878085338963728963163007441525757392427916428677032506226648273753747530451553498757888160976755352985448484468738111666137287141914786542331627851585796217148901649909785763487855935975021211396384230297124037215901908467804773191938940320545668334359619283456038288038599150592465801680656088129582381346916250895471072028556084020372624850521928483841790822097923475489450633247219802546249584209921872441413555222162757110676838031636455080649690041248333376728198678993705523682468939269934344215469262168626323533599403458295681726934194908238495851772436525938013337992744926520943227882548589136087628359257599435858898826997938936278508860572429078493441548962436665861908224812754191464270333511740816688527326149420052138869329216707317122330631993825017903457112274310655277050872248697315667224525718943092443945605508400043087217604847703321655966029557855771201987764490453762434347815422043437752800967236508148002701523586946357775425238746309610958746900728690874447416418108671605971038631907389883561876249806531090121143013872574074399101301109904447505950876859541982148306340488787724450303657610862476045653941542499408099387055374464640252935206118859678424326488268105975581660310721488936489514828410328240678150882918290187900997209055613000450475180523478553460884975422809999709270668516668521511406901112921775373419614547283042030441069997602497355588446643108435965325684637287228227054842332863269334344347158872518583401596269029356794214145286936779526173746213422319673041943177772812924288680730969196785130744528469700117782802451910772264959273156753453442560495936337665465165338961558638747510903728923680438130777196223011051721902390051407387923635429438331050519529495772331245933172613546086688508402620499109235102655485300200771793081364162907311344315296402040618933771861052544260676291558557564175454337247362841098073049847587084326866847043525963342751715609481777058551516536396445009533571508852279268584360242928373516712161083467349030439440980100071266303409806837722574934691742489546403679521300830258150880259174949546963745829859500420459782942141165811204771460900791958593443169357392095859760640593756412001204626304470980353177208336893003479535700699956062018396619990901564613628786760644908144433722169202314679169082061993295399194028561083133377159336311327735182572638657756792278936796497627706972110083988505538778471070283123807529434492699299354140962024989197308090721198291191166245169700308610724257431236958818900254671941412151588103013529133959220816898887253852598728073394510422200219274279793590424360547996023370525597016224115760803138025308894056005716465874029399349256129639725920534357295248054204948785122818286944866649916086735989930334759489530045684346420168815815781766550615678533332731143886071261405755863144629668797650610075561464072128308622885474042461783343829207721125458752132498959705089615512308004218346401931736383406633479135210615452339294348068730412237668194202477641960074534368711384872415822756788246183083564207552742496676903972411383421614554693877739334709461610605100733144047277393466472204318587633393803253051147605745401038147326992229666179726422215056187405776632423035589793161810691427610072069712273294676686167264691221511882971765648459156238318098876761322780274765351810363267916346715044672499534447810921858873127459827703527501982034507797683670499023477041814368923607529033794422567646472187571334499637259359461054908183999836651659379923975190910262966324747199818666777233298561873894706375824603668490024216630216026908647185921879604721328074666267669519073341480787827943498149949477561231767713051919856973265957599742172819628761788725388499284498046417350695045614266040130041319743425062944083377092691343720640543833265939871040308633371474469472406434370833932178923896704802736471751651828363443364762902509467231790139942084396530115836118084245187566008080650440005524480315998667983320111832107203849239344143212262188142012509036566677636282554670475475486873187640309773329328905041746430388488258261676918366713240030204742580022352502475332267012913447193852015146074589409885134126717940779263040025899813675736872143835588408888668810437776161815850808705687501681368129042469257503353690989226735979383969627668606627581041932880637657313990028493945143129491974714721678174362915572134727182486044300998998075196142869041651883576944967304557926228699448572275924644525167240365785345172438121720687911889478024182081898302880971204620451129695183461967713850353080670136482350668547376425465546440949012433092914070213491218979927761713598885752617396845860838359986129979964937900129329452419899594762610039306426233543093956502767970817665194782550789329215303681845074470434642305561666394091343234354450891993360302638133512359884291868093001613166728756437951232456743256729249530141725305221838602764158175524558920155618998520136522862083863728103166406544118416142380308432888060242516295969990304333476900093996989249433877615694830248257351472320481281677950598372856303567341434184569428838940836707463651911116952804099470844932171194477218147954303285379491338083505411316648539766627853735885221619025046545911716559165280242094483457850374402714740647369337457255058199164043797829869483133179918841482044214903987774857351398940467220700313900512473877492346305329084289936951590341182181868660656728177324127276250485245109032087149727074003543825723239382543060374614042635103747387300046406197044749458621006119525571346846606529381414479302568294022924762935245912250302099592887564383291376086669964719806458653224659118930522289110139619718727152971571815107893507514476355417530779189370728289021379316648123252936317389933482129207547285241949873638295104395614370567660813931943311586635735166828487533326678791179908734254221649490610822124625025477699659422614502834571038407467937990666225636250053658096806552688868550103858232808904534052238385573515505179214790899441727200203667748186253829001959197806807024537640461281240476164653737831327877169783757835592054945112350314991845844339055547489976700186498834462045878274413176907053966169353693154213531311020979408780269867784468939807487746006680325404207989727812051660898045013686336711206583730376541884594463969382352279017467802100913748580336611338897962277855087891570928334401718363968460119623726680218529673553576331982061075881200060698976121912606207650664206709460194102724704484235674253673334291752868549039545448689969472333734025166319278820480059218903184879986770034019847752395110782112014999210348252218156233928220429841056125202790800197371400113968341070392579664622391446120926931789607707670770039271682817304150800343948752554755805038686417530829799873478218946504976088599964920708934806940462179950625641829402339706587634099112750218325081911204712496055307729426112956143072924198626437293201646459517311315434721824339556845493648178610141315158836172402123726674733097979172947315168701062394791577240967258503078612760316088808726600545069216277108624882790785314399375384384110066121292697977928768396049705792535778330876491080882383571828449966288616043939203854379583407187021201695515033511839277131914290132451568197913093953507211556960643511798710888541759695526385035113869404592746104428952180982403590118514602647608156223892605875657795304311855894909525750415928174602964828129849682488907953259761728495914657650509007343261694691078758929654709124011156467663778801792477298887675899734229494498976422112662134282767062944506285112862037141999732660506279347621105367407533139048391833566222482324537914075582506802386851682259919591068442265302538066249355124353795999682124428588743480114466858808129065034076019336366462857226901856848518951505405236006192157164123567259579303783226964914341505715678166601614749765059091943728740578524435285184721026920070667029991430052356901350716408627745940925853566681382912664585286450672173514770035414927692174623495818567452769960358583459354544427001935194373671716663884020520277671066485802955242443216365978556638578632539327366702373398727169725595348008245483769629323066819838331504849664954592102158607747966017841752917424578779802389665715892740049521840061305455241633720487780302345244694882694713717033275833363599313059797566996036624585578533719249558770394253503526152510967270535425619774880997164159085130339577411640840007070487152393816444353210905135048939891365473642451119341389660629900835615520900061825671804478309895941418181032865557527916139231073595851576975885488437096167526645826874220080617436558734826021529933064347303070671019067730469578715243830683934966600890795082415445384375481786797233482379531740987911529714727847788579924854471285996920992569706613524835623888656060814960590326686781281700800983994691142497954491527794660379932076055173169618467737971337244896154233560050127258867890309906110464738160018728317894924358585193432745104833384286955342702454696333036750266082142176007815760591397643376050069923729453643333649713875123930765739495983356295020502460877498690295829048557436891744416954774115797630853695074660992744050853173807191189900328217670115933741142967541410431967076435688341247188854053584822778819576995143219169536082520008990207441077098369027623818848112992936068751029392053871938004012396491262105719050741680823139252658921450508786846619552202115803268208773686346640527118232418453180754549767534177279187338700074154163049147767602735744373277383927166892813718769677355362940732277366444261756291564427921479433617030941871320464782538446771615516314113329170698632956329740191805418761706965019250501375626439170045450564552636098467664854122051290278112336722634734416723113721497920746909816021045397329289573100886466621289291119961237653726950935111477861431938333383750290169649868914091694313567336291393958044484528004738845092938674142226707186409719018494933583361105403143660616703693330990395347012550343161078887656491204979889350252676781335059558217248248297093361627683523062313560003283225938696174318583338244545544230485535955834371564136833501246164170258196925604954112560089422200247989173903891004879658181710335886870306174929170264563793964116767251772231343965202247846204674230373901261140960865771611292120651523530651080580159396148165692639586424350835583968244683333403763500338883667151139130643136656728160711760122449611077896017021339263156262682402886076824125491317203817268312695630034838726699398613195937394004174164467452774150170270314977114310753535134178136011686774399589206366167588863942472276877714298038093537822152249287360733853959784892130729793808622601456490078694270197383856709320758911117154175648087067179514968180038792454765398919968759629472418972710654092464215242416644185391947903198758839861237249280437484081528521294342684543242693838885074165192337781256922199615200614108645946278043506177281095047672123123572462300340528715097492107966542464237982947765156652799613410724051159993790616437022808102438326301854681091084562182133796903954353763592404444966895908625187407277311954724935269036465223043431172531823393125499981343485011082203741635672619433440911598450526638105544326461545187416531454300128265698979679806645118006598142367070966114163211276580337223407430454105157269528825426929872054474754185255373044271397830710024797471397886046170897404335454249462361287540232197671186400058636348385120736348941786596263544035017090943110157802445323238552766186872077119859010912204119254846430350719391944425902877718454946195543397342358622703918994511635622604205589595256146033584674627067983817295860772640229688780393120790666278165326745135032925702647678451024723482664732466088494789625627150332434771649798942921605914602697194148130127866291518984636995081827683137822059440939743750596058733527517227470915170836249498735084680348259898403932756214859197470878633201020719529728370974994523550676342225308128401414841190560395609636309670470755413642864495989393067936270084227775755889276462759060513058133875593604211783278533133687268298094448732385588683804415473080731700829061566087343212530443377690119383870350283133138036152087794900742541750659462697666067784264184912336564630475249951137999431948564021429450370630634710370979251442074706866595075070554052276557988664511332747825779144626025383927723977122296429919858815307196442441082603112305093344757177649532992504343147014517265821616910596322581966883901640135325030725834614026033803107234195310138176111130579525673826128414767055346462760083190828098644525788989958239271240881012398439767503182878114044826170985719041602876683962496210058443765146642436207521320284329169643516849947964527212729335365841889235489336359943308694418810080232278062992412622812028354717209102113006146390265585214095199575742466861955935899860432607073304331025861695729114377227595443548068544339638850541943571640418072026542822900736039566472100880999931864414393614538451147404142396599461127671136536093672161651613592276664734163329919469770174341466000432194448201114985665615663170659033970174296936119072839498368226839207189824984982513025717768265188297612682077153717403128975547020788561722413086679853280276528658792632674167029753903653365211142834273275936223434315217813667023628814374260512022705781388523677104125717312510344611088106537110203624554067719066999806801610962111549268851411097593273898958740820950568535531085866289800344285344781233685690065572503278158082888867859762290798264184417014393905559463863975835023222436754469813594008032131134085350305684260371188931976443310432744132415227192216477485034886893254936013766479818856228412157321444287477749636265813892526484984559522402786413355140402579305008665841595664881491566077225025462645428961264987773666601319081632527332342028727056870200443250026199046468943610245858408651793454610224095882695134159049552873118750093299302266103094060528332375887671171802210004251883505109413992229778782721190668680238210099291171294179546662718926675665574519819432167403333555551372418888151252236157838824438030719146082324633326193170813124937171265762323750324801230186088396817260850217883609210034707767622009697593402864826357681318258881133207223836749114768173637644657242933758564128757815772835022877354645679275617394648831580672702521398279168942336356561754238554470959626011483996541305031037014037021667574932190400920429646007966698496825585573874143238288751462649906739183997346123677450700386464771444792972111140975946613235351209646013524780835695093311609929389086781977293290269155781376415171517522231496214661430299966603310761208999035181319109852945810658597358630506722336654697482815505028464954929803913087606467417370996049758890113400589619613536089462511260535394181865047763402184606470814856658572598627099095663270829337800265655819854224306126089460640108675458347451961688674237289762250008310731360618208106125941160385693360129554107082685543674071412397922905846261257179598610411308075742705818064489388909331231755790683476708935850407301912242915944137430885163285254254906971251827032294441572118211382140381582780655869333137089200529016575187739580539650726154480665305001268298958627394904488966506961156358592774876753107235737777464580636160860145313866342917097886729030749401096664137058195285328062625063244928922506926764308224537470836302317375396329471122502363803464707602674439995239780210395576039135030721755753534557049579226337893483938503273899624339655504373336781648373854179086105949063505260234892524615514059668225004224979648596076264760019804499595218088174320274309166576702275120343003188675331356551335534107826448534739335886233415317641846256594383223326895799754390901019396987422308076953218300257396865626815041177303346375791487966229341840160545773002027212891331392420225411705714126655210704446605070721592478356539061324096372260314453556287712304901444677621467389131107400236909194427542063693057372448045813731192148336577878680146966626286425666898852475405072161062190243277520638588132527258102958596664066067862059797908981858392146510866444599754749503283233114332790248411420338020067801952984812412774579238318872964183151207962714084097057396362069915119271778455262705807273514797462051548464017786923605090403305018867084490138898743795268964080181641726795893337002381850970035457504371483590339834980596013197689864193980170916171569287281851690474712951843807832883076786128990513700235785633971993900753739225753325615758935235280573715052596610878914087957945427268964855491001740351024584987922252884456626635107162945408197247662101084535695222325051854191573907586399168035119371743010486080076104036661344572165802007342357099533439999335207388997380421861854590465178715248924151208265120221556455340027124917525413574885155318476711831780978282627230023587515814017168057041754941664617241011754078889458659433066253777218755485954232998681490690255292068097005415479287194595593513915321138163345830691223523839601423027517416336697780018769851859175123892926001515880685063183325836243493992237939403988528752713449303516524057295892681186715044188296895119522207678260861360065537063688959406370134320110422582239688594538361143115944068380067739612189864099832095389026669423130961116432045046843149605176919958537007161415262081068471094904251904905502253031371653671485407304506290947418917928863326362893953248213026721639044378230207584251778787706808685605098914530130447416947020388559237124559777570433394693577563434067419843453626581638243501032127970986986849873293390418788964867305867181169533540465432349397871256775340347836417663289539866944094492747084410169108309787251040916808701311178742579250747723702782438397838569788338431112360600193742054752439773374767166719647747505205292230204756270598987613366843078156460718605754011906285288817095867524319935466192961350947999820480462371436443289000302169973956104317720402431974864349223271309547237956143428448893760938402558731276700762574011928048030128331777526068890326197185433031027157387755388772337579714557302192619467922170713272883299645504003813263546037326238026590133374565760801653131622425461291826970399339913547303549119700735039251353184578606303657499308651518786681485790500942962223322804025934280035538957510967923199845366094244169649652974816011107083577970551989152268891841861566945025489583560251204439086572350142457899367447180788580384040435192225922821661089594543022866431277416759724711460349056489714469598055890589644109733512589003907742847175023012979026826207848014658736594681476064395893720048425059296780765510568631736775608093682465357424057126137716623873509050459923081197566090823369747969878015542623256090605697112848853327567583067238830331102808058232321016085791777999981143818078861911979048736088292953594373067777660143005449288759655941863785304640114422732555053857153361442224742597985507391582405924101645088216703710062328437355544112934415687252457482610279024958857749010244594247767612720948719305482805220922888346418114745105232302998955053724881678586914803501202428775881381767565202017234258014427054258461293819843651070509833508305230314606452554874878430903085591859614254323380394679289033646839597347254535908133240865858719578411045799986456601982504946234816142898834243326883773056226230518931004092369513308823075037366739997288317580744523772149879067507502432421900975507394137239265938068990324923138798725524253634179990932389472688428318179335015789168844960892775467821741575370532570717296674596640341060386402924315854133500124570646857167350929231399238733925038269705880775606707725510171441392166831190705037175651193012013477197049246552609535304170516294309035351451891228977816715353237662859241059444690362480312517361256157971114623467499617536056179913281684754203397863761752118927698240606896294645551988081822798689942220457639593362462582803893630440365015700548803295454990376845221333834796540420680338236620071884282804199501999710136365990114626597346605399427629564764728334233377434862815626567501622502361302864774871789062606065052050806175573542869882725593207742217665104416373367887183304021690118145973485794625327100592375881243448932066128708364943505380598297153574509157902520361562264308573928634247355316127086811087152550505757799897100586648931419646787674154123853056196366737418126213793527721480537319885354822924091483384940117088192512593770987621297423669762476910746269748063176743071299114313038516872239132081015228736750643823887029149931032941147785338030630621726300812554749489065818574709330399440947651009120533145806164059271580774509776212987979506562610278660043836701957821290821471269033326590853587952109039898125811548569172645297806569530930215068648961161602752947931965885772738958599967850210380409615726700259750100450721538206176741456453153898980931907035947131191526485663441337145537305942378177026067093785002952832579740763811338474998439328073430526081624008020510351526317689879821175499282447584839931095488646791999226838062779915493775930151278233547132384045674633152709339052030285678119741544470171127941828965224526683920609399285558837433781380530429932721701915076446792417371814241860782102259770039408291466324117979656742582990832286128973998355137858918428583912599592703917795592785010534661765564520202285927630612291377932075151602291791141344349823538191995740406530506442661834330457505293817823908008659680111126360007423977840366380020422161434166779125322234864116686291378027029576923876618659525141265502918520277810926074513192627056276623969165649289282167612595087243837223631995461369033995830607468307683972718519402207454541617890113938332736682327484543705985339214534551123388038443097943896764125682125753126664773550748302503186106724088435930325803344033914521594958245952292245825810505419107095663321334700606053860744343319603837261789391108728296661220047626723561211672876874935135467031661036067399907142273047079061302182720578404024294892023742773464076341569077165826863713753875922403858524955413065868193283534418896038917795234303498946330693927856746021100366017112515157361059922778319666735630662714930258709981568701919945103831228066783393050107539333435690045672426511599601018856836852695858418638088508274456326075468964511750462120233450430228120877802511572316877640393450027363339925859877139440611027511634762901744639884559087046049940900809703804904797560564309956756543734441250858135005902082005911679163764998859449330605261909037303764001489119003058361846675659935476530327906255253100475848557660719912986785526002237977336435350565801750892133706763991996942511915542637653524836507302450668985878140540520290850962263020324217126162400705548672084381754933102352758697651817586642700495281744819436371700352470543408590942781414787571213662735395479389342095504785958998846177316415411109605112216460954387804871702399327540232237361473107217773920893052174416135805073361647876293519302871029459068801506316672874174282134095193194788078350693077803048548055705486063228234912192592040973551535895308261225403677844671711012928882853444817839855805396347144767773603967289289869999553376226402960095091525997034851267476730874494691608763437812485275045081524340012756410253605058067343450440826389821781313926371298756235848006863711184462760009396814783859508742557923339359503993900470511373642360429007856065613316557246280739885476286286138588994523501751985466942078405131988666523792353429713339247399458597374348915490610913389381232173214406936385264538153318884912310301505159748713005874813929353121185909643962595416833142820081191443564245730634353790368682134198818259031770801361825041572564589352056225085153320591750755832660124268105410904365277362308570311206870436995830144679885494251486352766789620507349872529128999956335986558619033793513910130126015091960512286932339465435740213227449506355462402346169286964104417410765649354152926143176467659800918153323801314090289471137197498491901752920836545689582294297317075990012364177213058104181788804659140225715814338100180404432460378227112474799487600779181850312323965231628499287409420388343240118779938146763304993008442034435034325955168188726486971898417283865212433449460841935749390754727719677405345062190891261119522774968995479559926177586009772278114685325713417203215016788735885267239429901267808051979571150769269610866123062909780744167115421420380723306969091628376730534496355751967118026083379204211675499366064429832311465358168758570403906933213187252360879806004620375937500512208446325233971141170915380792736649906793658582345003767452608760410932967488834219628680691825890751800208102827485295302883235730248873521088382806097926466008513462067395033511919264863615319521273949722462093720865084947355441036509575322785158425587039916257462464923724234960889113917440244584045047939213191881669164510917684159237498007859651883140643144810799495123361591342911907091566735167082174381139610590187723083965072068806007374589050606166026092034083583796298483028667930760853565511319915158660235025675997783089709411201804869312900881376112329548562557187146135366600779347241228917517796103320729182888197805762395250356612744451137760028902900771265474316880901500627164342591712903360144822531401736052565281612785589004091707541086355540488335219660727914131381669488982851981281205769276918106633840267038372019667805868353062422493347070888280999205579671903892608908628379580695978479342713313500477272098997930170953735304054019216901762825291020025625519776540899535587611188486308907863451238120089945579597849159631462991654868418552974933115300436052540617741853502343252350612265695559144396995463270845652421707593904989844453913899760043799653396747214301065575890225505688871877282184907099787129431513027225446541751190199038892091023883634404226570390016994045305923322764629085031953210154497041576189263759719252818548895186366136698244771342422186662844382026526168998536615232705824016511398888019025544520364411709786437049460217925891925215785695311324697090236348027933004768218462232976508099822387969014059757668481838963448682321795579965571555672736663619185031343779643253794472090692430770025312631282620373606866952434163189279840571008736464439147546504348511752057143318582055718036072427535548381317946187428880077695882277149931466111293067253677280259986659163022029874283294815512346060205326014843304907785336314815859696578086217888570423080491903466237185550049493993985328730841390743220045057041661955499957900415951638142973895207214200184139288169209960677101009715223976443836322469925752153134141035444687164267335628494858602873007193744217172655175908932689737289370696086998611547165016374987149082945439475341034958122222386040061235556142488181555199216805565891268998297232019387756043263321142810374133468707123714218773823559658413088676890872012414837869744024045948778699976430684059671076907325804051328394578574091856548939957035012754201065955428480382897047114436400100509615672728596321437949544344115714743676092435122953336178922330417424251243639128829720699082157344794694280117646063000311911030171176925787652442792870035731927661105424713119297607188005963142085097631210662147166647743121500289946344014451819336671647491444253341529324260469309027420385709571671718368356301807746159330716580946565368684399071148957159183403517793240460965834324365878590858637804256346256584712167549633596444461688905373944458887040393843581112815925558004081104232079347626019704720027490225573400453112026598264985085140265977171018070338033646453384111641858512962445857438106032671798769937915393297153658284598413816713701047126440614493750417685871361121925099168898258800330508389953419967058818215435063652040412079566445374817118540296524093503230164081453214844172965255043231895866531195766158885857976356271890939753030844145419344752159453870430606160265839113556473882897180344192242005024129067951122470886910601239212748283966445688668670610424400666376975578419926700830041644581993007719233312691270085494825882612052036161545171566484608940376931720587791837561198360399084322194270993524770186490634049358380776142578040811679133910728300946785333806403743354917386514280556575743398776016869300507676885416538641064594897069924313585823856971745018205407429673979535673092271247926910444910110797029876675666744326854366505943154503234660833342940709008488059275533854644189869081691283577082373355446146521745951689696909807999788367822938590090034403800113718123924107748634634550513399808808634647974915253721728009243394995542193055071064342326102636214713033143011685834809098879971544214566512827901945024894475782534814640374648630037120918862620219127229426762823452600030513725266694327947072704444303304554210791576741625217734822497099065217690987570131796803979525424364150220275302271019789175687587654661617821506210045076275045459512319469171557581507368005650378031868629950560576936140408997143630462976515712915269680848172450705399987359110296349785319987024600330308845259582193699871538177104419737114113908339808735425400040511131858969121662429984767326424951082013578014089344008063436722731201277007540422570616470122641936022568734896355189866735273607565739954391175512490264800717404920581482052802974725809759966452820810205635656122540711840214756109672893922889180180978799853169686524790317661209010192789897818529519774542084892207530938613802563896590906430341062815475669665993287487113885196179471825718892143863656709519756403593406837936346597927061773607414475754631471163079207471516188983444946133080463672641554470319743828914009023959716981104284293744471988043549110716379360172660681599025958932888472079910188813422522061864341234165011119982449858403547490088525804179390274752910560761367242923689398850727289771954621833953208198036217213428081623098736695711215098570909477849284593371723079717082553016236882433340395077780650092523947309834556046729265296784538327922087216245447551804814524347718115084342800703640769645566573785438815280264295856236226947886111815423213152334448882064891309474799702249028650405161017380862067846376654683844993047170619638988953915712419557819152439456926757097546385537883161847485361546421046321799438409132715852032575325085858432722343095996200414397706663997220943318673883049959390588540876010525707030984152089373009987876565529501767479960686111924243786205005393099674396211978942243696025728428778234426203741137772663344361937346150406686445476220450555261513655908972945407948443890607590856683858046107346624117540509911054889650329841019629379023504975957639493443134287138823010903078123481677026807475483080917209070027155587963779725378049370785365966473659682024871445544472229662514171886012793799287159831583934054295836309320741788222217778131228498370299271461242268363498887201854373607389107276024616745871346752574724898834757477897124590418345079391033890359525174951539477538749419568452717917760023384840506291292131319374207788499081313666097340755472900449201981646451564120579826339735370435795672389015019706685915550973545205190073986102367637165822544762060236021012916316909207547815174871752364188639938980477213300941807352683583089183903229831510252626297310458617351034070848281668777225282872933288777313047248833373000669446048007204710868723167938807820812239040925168369272425186123953031805279684061401811756411606893335703202466084987590687593488736274259075653093573839051754055231622272265457878371080926591084952703033933846361383792352469059449164442698493459782659931211406486254897113897094874876934099419328352176690137969457902238169867379364323679596772952553864070651767308026767689840667500470040236795423482173133475885963177011517116246467054728252394071757658955065294368484641895117847857398250834681601353534717577242431224749396697154341239266709636021823905146140751407174199906708850042793813003429953351249335726382979503571007829050923745867402583436297409270763610550477492197623134605903119740022455308010056148436450687735320620917080504445175267871949941294071256428006237625415733376861227440290146513025681967461065625618818720057310011409803536517485603051031094516723778803867333016636217083252146951669044423521751025418538183637042782911501761709644411166360049762747249381760138789979473760104910286908177059887943417834791606795111982618702469672528125272708609820404936238745944867623147178442684262572073222137137333612310809229871580082799433829256251589573386277123156453927897023816806599906350826493019166844687671830880513848369522662878309393197465007401697508240032733370066700668093773836212159980485925907952169468789569093036236191584460545892173309805797370481397789256569445135726150410432561537590108553499013170800230468160856419030748814286690735743840395584720277894058252504334500968164236422480003660156386755331439885860709328982390848262893936290993247613680215782858926966435962312323549464343705388116242666134943601092610974094819252300463021640099036487784613354972332645208288577173222464629600015142012860768976317472392720149777554444489787771041328840210413942584358605336801595007636652948272870059975990460704652657434121948634421147657120551546790328199052223333976494094856080339877502743374613607620572229063914829187051064170336036215713754066519294883211884900745750329231248560782146516564648400634624605568399393996685112755060104365636984541455387337476697549444558455752967041048312200202841766626806345040341613977714019402738849749536304475474334485927035519744103779868386712488458633185275131416326064386563356859632519640188515375730916219000203517192285275813493610968363086725887095690975957845440850493296037314277963987836310148731532256893492958257889888439013864964995126212057181555025823985127151415266688676162695055529999607704707900729482835326388366367794001494291067734986050202978665154411832910413427560598760581149163223861426406087130496002725921849142251958204716754969438648599061370156019407643474173041856192775429529839748119472609590263960564869508786597623043524750034466024841206396748166369395033290285149451320871028690523221703113339568424737197570849569300173986128958207951711492421336446230780056503899856481117719552453917901047993066665133637694441502341925518815971706693904879846395123859556370914213915316171297363644782280640376049351952210128289539760127081108613930085505916754209348027466095387614008773344432982034829407031404863724277620867598612441959832851363924868895869708785681609084589518646138435374388388675482167288529881299818317041172343104932693877654744688574953188413692135686610881841313102732931540491733412346238236990398073087221306351990060067306478045770392786943195178947651424695839793682706297278392023547377673265804045885105287590782802139076389894697486199833178780961600399604465885047485182347526969013503865766299406984321049150080251502199413703541954388794030864795018355215012676764936895625731673057547453714830062912143077474565467502081903167430985691384005255054102464875339562411776267631073599524744301133741430581318582101470856318677113670009236562082543239390618575820971733850336151940263386371538251502442760287059465553648138830699217654080869206562798403113854341405731595881728009765748630234123616115143769435417356139469001841268953099806060010168527387144181814180385625158074410595338590637398997096870828334419485508467602629220250772641396843365348797184852070403215824951120117571303412560580598904571488844274633075515546439632419260378683091060308575766727736069427199864836141628056796651908922874050569920582777288170892185637292004646542356653977222568481822766496632528341929763302984589488909946143166437980147627404405269936999126264047911203672778701232832899900897500477526723046242789815855767378133980578916512947300135417839412706253981897817023682315241962661665245750547223001727314582541519671523301297414054737800858566278559049114588019169882645520522273021104147826732605524841821208648768216944781707493044074297015650433034680410570641080238600591313742790452974909593930329532455123592196712344886076400501516562180564975586778720100288191730135079368443399678660579830812085578044057012332930137216288787434398346716607847187328807112882752546824799441951202017395022820884034746823701933543671378957846932866091258174940185331850230490726809915811154384447150028445501445701056442016534417397187036410499098110631281514300456611962206131757808224148014783561149758288106265162642748703924141193639787847927343954636280018503551464619013630031723463707648649303974679417453709966006621538542446940496082444860854118138066952389801773650913202135127312594983594400953077107336899892446428843827819479704171189121811196313467002196424708072692015264092423434289422640741698956909266233912025105655221120476400997427332272121151633584700481863513142571889891999540281705116030821894603997863132060857672909708011528826683493077335574599659186986730062853529114779156472956670810490065284897070371698286853183064168026023224699824274473613982339170584059068064892895156964698191991165404087942163112552957314124617306097812223047791865718414080625012531954671453300085484480784930528377831725862980715153404390651424624961252026186573629578584917685108244503983642799818572297440117032787038602257648292372035416870908687723776805490610735007675691129057795794454100896606359793619994436562220507972731174551662494554178989045508041779927278855175804551680965085683810247394721240876436807333464971921251755277616858908663837014533408487347163327772882625936351873342331316889194326719945903315220343552167404555881584216731794302712790033748275692274370080683463451981435393526135093710138574369354658674696365524277638052227693954438260808971209139085759850505748511949925873165050953174509954994970128722995749693780493404435245421971572972042918307755928942040385549138701036411074393502328483599483039073386960884393256217794011939526791529714235827653480316699811068030403928183681429643783211025138246525386101049148819374256951143555017111926340139142955969459631279912546968974947373801544982151716529935010709027097257020353903606707038552304038180504177722039912019011931998158695686054316896059623208888051115852318513300974173310743427712614444471563070294381033851964922003929539303012755340175666528065772037248320774970636450227297341626433003081459434247673224294296869913627016407467955343217191148749803235657333994372543688739231757484822739369310698023063387640041088246044625114382909257460332031767483849388981576191007653378804432121053309635256070889387926918340667484383993863609412190197536251550212996512093894219981999854098598426919033221631779402035844263293853074217078865365575580830116251300066442578709784839629696846169091340688950443564698649154156375691495294695588804383179665578568831259152081573449967131086648953791158773779510739371706422404848863435761950848907756098913476784175708750609236560482558260157519183900244878662560927289184974011004818669758819362807470874858104963034557101447830205940021484400463963097498183650772172547273728740655378218937425736133537516970288699535190507045380413189243210863546926847498022996049916246174006590331644755884794203338095529594729658313406855130442281436510701834352547340894351765609684868588694734098194608293750187359910731375102220354021900511931447990419760334728138230113253860736673610678403096828854583940355268612204437092247451129909271549429674864507421083005251963230079794121437129548840811398759804193484117958282368504256546225393608232438593700563035530948036546561694032314317386031951183494616353914885540152263508363776857138656825617037474398831743402744644274913537726579449642112491110282173887226959024262449391255831659808868891922411130358970701676195404961665228571943992353074966931399137936435921907540468851474000955318341684508311674939999354203925069411063426922926914993155102402831077744692770288846636038254707932217016778703249492365037295207411611207126631731337907312226235544277078034999243566980855128753916208982333833078959611329076325699885688760506189754985367968704038614341468901258471171567724239237213054569444073445963184907533268787752384433525159286704862330421516933233880869536147530545393099318511582840447386837899408036274495138655591042437335368677402868508374173869807711618501515895055793476745244892314319388890336529487854875478407494941066670180280356069731585961346407418961449081516765918999544236829459712004315000914866435930409165750534329650932033539471520157538021770202031130573774417847361971284466564652466781300026359368314251565622260950352591221244813283688810426266305946435647888366096216662463017524866047981696212244984503465544157946224026333949548912544218449750252829111393925650392236115507644138515975823420964140953288828945689093593433322506308940837995611819713271679990528460000242469035040051048446679225965804707718361381947072423860693293858675860574152329310167060298127711725691892176563521049778930058359975489410364930501384404480014747028883771341918004074988307604403092970046100837570761406362690906852042245190784952431474490772486552897155020428144573392248515153498246928644941582410580803067586080867213099656457067477060734350538760627459752768482457376976308109403276354263502098424042030716884739305015888496037496162663575597338779329806387395599076969579237589249006007829066531897542867297130738780361795383360785319322829829630646995739061924628839316214349396735974477192665547893812320427389804891154419978381336999160969194210495734686342673614148470281013770683764390241312322894430981589108203614408671465509613347203035549774451162899426919238721209441752132370494101296430587735587932877073510054736179174247996544997193048138859147393217653071979034277733115886136760140604771998038491791433406276406687841876596474012683972770418258181980542647736234905174781742972502258313793797178348339941792147463770180389339569922829682500561647033638060384571347883979218860531550624717492420156957404259461157739204331753893327285584834243336431472436641480533740916967465767477636265652130457962340331422008093894186056639318283030264591633075051171851178933083340030279000613311294328286652514575393832260407419935044146753358675407034487114747875108281916832743007013350494914427783212287278182391930835278300801978079687511294614862632477427536299458375130987934546613895616511652215584490946592010849098464879507965923526802026715550854749980727322690038679291592507622124423410611021454752933865366704238297064709282947122269379454931585043334434128061177762850949340173779724688711975910796528413611510316396472923764506506499623070808915265775328141572207179981240192565410744119227953956540954913143828830140209926620799330513785677552807119260210580482139984786593177958615354714234749768142980636028689035720476051114553258238228161602491207641564477697352468319963071734380943361543430372574476973343674253456866689300417733921090091440681045199947543889283645213934757261346154540023027371318906275062026331197782432871711399938773149545525062592610507191040338166902369896156464944653110874127794068997784403286376782352391830023683315357024610015746133740655293678289814054677434738888652058588633348960552347240200753079408792952702164902297839205376885802438778620149027044154677909972049698113681434754158951081982037488001209585375046032375450692807841361776191078704717610123919052860909748925507785253329791407353131999299023898645750487560360466200283415446120857419890717527485470341008948820352528982843951216707459789255114050198078605757409987439685906946790823561428977017742090388422844147807244098977152316380188576759185891127678631421215199541042394368429403874117538663917802491711716150417689927020182366236702442473650992506863440297116978790695871233949209537037273668407066465658735408648698372664960201716359488325144418452136150994379783483712233140615468069076202453928153127002066469479640174077175610270474360342769507407330534235701552189524163093308083462698510981995217608144931336618717946905788771094903343659348396247987317283488756399883667925873924858093713670231464906137658824847667733371508476256416807147012163796684100435996099024163444905139977463759989848785383996649224043263090401989193059703276727917821510245113205591235843921953775238005670453135253446695792431954404242193496307396143250818716861205869620261032684829780146667181569785720892206990405523177501016143758545218098848561122977554808848231709147341560177063994548120365624384465088779930979361642726442871571729716035527497539682390236496387196587547982101789846684056606484816776672076775437443386918219236498971060347180743164634014591322258318596179799390899871700443746533676540755484908933833353758069068135179683612657174223833724700560328999910007639777465308234719457601063063828000701833198013488713643088166163934973349681390662392867181126769398454879472729369870028916151104276954691648228461225059513526824304110597527226328126484568422180787116924317149055581441815420149669306920112763339313537588637633729469599362334600092940464589673390038639620827112407586955560387699440630814384905961435485199816314949730279705094528271649286291985322426908260539881139753193720732005043295565139776820387009693350212126302950563288677418212886857454902862874888605674525677723351732091973472535853156065796947646325759261037650214617684897848569873841885692420780461310281913441720458927426840208257589300057455246903763378502448244050537364686172671491183565179900262718774736551896133210983637228248244597106140948507799127441671482049790782431222495589908517532349478817960953204373120097959244983316872768782940131908221316101010591667201275890611900248441344288100696792314571079267505934653041641109827514083387213901705111853640448324568156199527852295895927291271041262169504475782758365309886599470196770636317785653691547713693416409450280385593810114835743071968373781629511223630622230249268433979579042174683164891633595023099748476197768803527299536202957362234745461158617830828312876571240762695294692924737367603702839115665595200338694932780899587249379638057599841326380363055931015306521730119188969531882839105748431794470140706454915817075603756368184610308456223772650845243351083553585167134580959515796972046350403869958756927075073963817115609676707506903157839822528396239497988597586799797484182718733412162815395484485472164683289590729244265763584571993094063727090733504804141866268583840089438229203625370449843456346402594650310957210021574173405788617751841048325299077492189310264232609455710122830862997880706946742511849012610716179385077219259100935779234461592905316062079337760690315602030335736503255833182340076004195445768028113492968219089767725740478240915798944722787402218518884842754202428227809724635094063254056979011389774501431876946941630219939240607166787940770168190412719501678020366900331688897797946563398469274667230350140636965100604842186127064057842735927891966600862203500318078325009583407295028878893722680567126056538703758233783421631002567081701941018068869898650245376343626787620157071234176766344559222355411708214808453243118762431530606179039745383647215046085341607702400535855969162000815281097244362682005482821687448483596625313938498021105729296719507450166818915566931414501242022336139154607788677942702627700290045690849357893215720983121425721142548561141970037251337251598360131036256211266325402027138244569786415149367541541255567466367368682593332770405477317202521310363897557377112796818659963460048389855516737235938477724160031296166830092391198451432435381943355744731779007725432510324702125764770765110810208086852785466787071794293835448740862146250750733297096877467788836251534337231856578373324338718579772709880298177180562497677862664482735691286913276669611642965359656589814380236682273197457578972604989722416632328310816390612473012991565398749195580246603393378124072256044639233819088024186342313074226277433450317154958861416880859388447901802125138142246926890486149566629307918074589706013157685483674196580274634850231460379720317579393158114621774620195923551494613609094785166220774764007839781751317061353262985060904172708664498022167007693167373994788544623282345393090180796264787232927236105445626443747093725045753574435541809228325852962346394427623626666261898912332534937630661852651607278719415662252338932190163654533836213248587556200388978418582630676352637151193063473106131716694274225837431516505444642199134168800664254328929621942573566538941005262395418110496783259319394704410055133853131591691966626395517254346569942701016585852046567461896236526335696092790734689013755478638551368147361739329149429035466021591014821886435600651750564309733520115350735924484088780892735143446902917727814611699232540421974396480717160328051748473985745467718141105092042167780309146950240416198991675058262285537999775764135718785394527813759305219274653605603958257542196321628078246576981808320721952335607885556791056307176572047273404862741762829930488719777144307864392503129524138314688875888403738390372662966127094334178364601602621373680092909685491689292490994042838483305038085710019952916621807941608314014435859640018986571265643985492273806452718687375901139926523633995945372904551679267286069129133238492392857697456467686473193653745113779857115154771764843819969113187257344223784724338865976170737523248592229449226491964951811655432255140279543688418862196462101775429038515907336104702109484183347658271805775383069586830653479667349660567569287501254911408406727349325465800525264218574012779008133470336874474258502691034725341089086070477855545852497059038152563627616621128978647042656772773781272681361682457878281345214528796384165107945771786693808210785157943339038938068612887134345274704157981848851186865410959808346909940352474459912877840845183546435942306671608062360891530888378038567162600651366034857357998643603946320565872639771014313291109340079834878300853666023421753923990296366969249113607922293772627297660000906843053423994328697171208210496155550505719392028850154505231687678663820551559587109479573020481181231727208238000864734090419942694276321300890390710236954463970533942214391464468620411436379865081411261200233727579630189402740819942388371116499680111926865135963422219281210689165482467823228226528618231148522236876192739657817637751204801890684865419712615590947510251896620266288948343854231296941917193724848509322180783167117034659799536831884101722588289787010040599957998484688548824351546627405177027095579088299927385173620547868176500108002805210319745015214113911774473910416158126275069665782427552027921631287149498451022321456065409237732148596806112796023896233201684143612736734604951501382398739742755384679266187854099771802771131666826792321410691482599138409710982923325399210674835300023907271992606315875716135218681303403160968476935922012017802132048528760396352075168716771135181123276265903545363591942338248034944344195212399821249711038495149356758981936389607594523820285374011113790784395666069297868434113667283923201886993320656202118260697840511811202336687722612457862236119312755055132696441503549341635057931154384824682582086461553593905113033155158311382733052922803072830658102542846435411317538674140743017181454424650901826577389678438130613348867638988420729945808270301280283600430033902439343088631728113565724056114303788345800858982790169670709644954864044818520235572614638760811945690012275899101577007003641332363444508075109031748191859331549553033290877403205419027272914603310085428310943235864108451407120317366725262167806690248207425730217576664481619816267443934341662650680581167596022990663576474615996089181639170962130247428060919612586339025023848384921070164595858525291718416990814965495377818840635957801935225071224395082924348342047654558858715742681020342489982975324135638276184551855099331771615131585636582845217871586338138332738442405293124670302051812548768718762933727026877551070924037559643146938785931328482860460553544053131133834242575479491677882456783231697663345978323456996504881616475734159718280219454304050916878755241480136167995848447415206112713928423488826536818932965666554987843256028809940725862991027086552856192066834378909526397058283092920144631670269504402366725561421910364744446235238785016642884098276994731097769617753405193730908020582038271078120261389520437203479059553151178400594749309817268828809118978940095646662582448133030584441595950614668116188346720538313453743476873964710921278197503688994483404135256371971226502042768662942244938086987292961180798069338037027299109505715047920055418947876931226715418475122510525827186423556299947012545311108074850477913403015693626580799254812758113049920495709137632428175429995044125622417162982795412684661029498276269773406503284891191853340752007342369075822882229974633876766468622278979507755265497396845402996472075549165704839375381725673188422375367883526366874256534101723492615357246875174992012720560786761874061514393802562730503445991536969095690727169378743017970768212287424237609922689220639469914290338112710093909701187499465642171296194693286580952077286383198094595638282207583824644917217341241300152861591045926419969106806939708088971049080753997595231874866946297741038065076549138237171882591557594923057006506791971686281855865711909769860197181757233298093813223291598498276607113143259497659607181414392064285933412130598655198522987820088877250805012485871147514773245102132839527971313165248168186892273100404589423241503071618662064229621992547057523533405086840655135387906838379764066118696330818096017228057844534208019284129381987977044686364733366950415153841839867675736575380057959452875542576568968888092710915071276801489869252494397863623670082915396249977961010052203882544549463633129484074688151189304253010307389566443250435966117192787969831024642239956339801773837034765221580629274360955164012222588455233944109981691234014302085530066281156793353392190469655718694486033455652419340707926898444869668464455811518722001247964172918525198736921152619537693701719707744288439515134885166068987722210276611719558623666532095357344255206343343555325449470430662036178623040330271672912379090894524378669332464976174559148346158862329796411525922336944408217288232096158322884463916008725653292645677956362850229502340715995791288152879005520603679085299668975129608091482477648419265085620255602464790793083340041524450580381720916085835846744389512532359925971523193180637650096486563905740068545704034937937691710634535684339682444274120945445040366325630402149833419551717450208818249096084734641495495511878476930195848644153159891148865983631943133944049882101109013492788164640274113419153156162086748391587275879491787049585506033790152076248042638846698746225144554684473892267257537644084289574952415612177362989728575287907046513771579597993688624860141663863527698214946605205632755745264977742035830151887148578763582638336244994246006454286533047888438909646528716105831722206256216842441377763254668984570331945496900617869228619220842938644659910843911487249496893623467705497327003568612819489463597832272971349260273445645762326401918383222710229757878406018482162927533438498961902049468747306487478086720244757600442431016523459919937789648590004592096020914989896595411191622989068251134644107128895514508527900550746682462864172419024978395154595986750201443230949846441554818310700397099365442036110429336292319925098929869729658670687046414737774363966624546258868005827945841530296650004940587545292595999840373052442718144815861128987396896260971666925546039307084533018035318816489355042911146461399204587336584026634140007281340961313466084362985326282433288503865269562752309692588475612074085889536279492470391438036451193604266512863921324188168822327575135831178367472107336555120159668452195027453891196048798958549934018063004664274719622392826482570194880534490472384528375095041096941758849761993835014900932724394703935328590399914106314410445817533749617559115420874693604098064029019568020837502761073498418821453221739799705545274136619591171812236088911745384149411900536300371827395838571414119601676799203155471032330477324450672781872658058261917338683653700033830234476018605095210228922843082936799016000023372374565991235573199924784114675785827510114103108080978391849065463666075981483280867391059328686587400320007046534247272226851138820088138341035209056831169345922185248371833147973843702607765415329960098357147482756021485359997641498043746786406267257241628183364649407869753106955280043601109375499693049511339603474230875650758687452193933389646819319718164963589038637313327458254568751271709068245336335359943473134523098574284855292780593381718052076993517243027909443682919314472696892675823745013312048200207676636323267905243789844828823355696184744837163235389991708116873138409529179003882502353099447977995688815003383054309456226069051857488987810436663796137425804412389908262976920033819987815070593518325799348611675750148169515028589785833047937620257645462237768799573836552799724725216798850181462735091185559000310742353566525948449897828894176975534548801253433665021945363665055313947427193272852344550712210279622522697215335632858783381188199220117331031801455101541357021373758268945254146206674796511571181573223585840764434651320459840648826307483833515555881475780908158789574878163536322945746384043819631146420182029846579599636444316630973979954689066539953285899770334355783333527051338290716948177203900691783219903755474385359337649980382608266192453290068629463391617860410404172278883702523764216015812961026005849781066362699313776047924096135498123486744789981424165886135209381427277321233859064735859080521615400141565983748563119435060165338558859006189081739105587832747147471559228429194939147073691598114972873390295650723147899761921553353913370924328973081727814692503824432964211538056292948258909743879015849379540082960731563951692092240693182670591179613100276385671865589775965705649450309897082906068414888331318513854541517620690622983868271289679758135277123681886655086972439970679626206699941566428773197852360546487902161746195430810470454960301510789961278013389134374105472520644450101152794771690709338393779453583291286738650863264827626867118106887274220823301363293861624158179188037190734073296137377847872539340164283268133341524893700966909446797035408172622473381163130740933439366204589877726408573514528443261767757235291476617410806411789702124002024258651458920371845189678231107031884310045905585927595113255272503494246108379342420568721144871708401947388578370519859676740507593818859628738903945807717105363076699188166577234064503347160193838434178035768618448396097117108205520159265817657250867404148822252091161031809020060584439757263471238527337549873402332845899759179775778725588732040772271573169050628712512844513794986703594286869687720485375271002127417285281056630195425202304172654943359436707014133983256876048966275978038676994840125250319632509332155167231197777300944263862402208829620366976322941000553709457413271288361096360330969849414307957724267692321619176209136773154837834539817606312691599325060697767816824169469115597982337857767577658045309840904396673195840998296093844999685830299985128411409561030442975130158119843825326716985857784790920627481667496529826661820131253522714824421128957493571893695973582541399338550371507090883515065446991041418728352023426232652994107572109453859230981250484530047035934463833976416055495086968985342017382802883862468682495835772859327727806165665964352322915328632099224123996235035943403326862706806293825189331249690976571565253526275586336483458588855956704947797941198045453669826433383887587933292204402620275136330632167464925546427869745123034045316074686600624699061442795247516725560634441463047807916449082744048415302925971284670933993127581160274401447356003631830992376700884445295276911101262809461866013759811583278481644629781603251349813055325270385522177622174820945532958404433133813042318342079277559941749484683033846787655946934482938832014975541271144948639024586372678263678717687684514363912021169779241094247901225127272449032502903000798148470413945414963312473557381253607327922038446627192112170203801093213838869974870481833311385109000860458553931461598555207304982413347982462880980840179345833446292866458715142754879788441538793456103276719602150595047556007244357405166033799554335081853195860335582515242656428893158464407497033081844061862165247180132303728124862183518703545191508864473271862600908837914598428492997971805055208197902655719699395551331533015597490985770739925941336983677813911759307840764244315264753050702100658681553563175273243676074630595767265079254756896990211193659718722260557830019225374543376464975288756244873503801763349345475210783431243829571966135507491065691898830267984087949860114186657646604254255011973533639733395244759535097944617659486218524609139209271242120474681882011048969633727315898794514201521280099596328609071065604321146761952161233476911765520105975624612754536239123322775014870382924342171633171581431951106846703760697084869626077912406485189154622046277570416247989987871834847760324768922268508309840103773573272378993298986760799672474370964203233718604314675054161177222811306297164645827051074619669657392672425877092125485620202420998249732529862012714268982115853779990267730374853973200946203382243036747769764650795618368654360462964045622473674126608556961297019780252179494791978075907683651493472911196787605043183598078659800672599266926726043003756405695443178385936603429360087840521802915596789928701734656805671964375308143752525603601153431754572185479410908078781366584955043242087704182335777914699083920488958897148567764761798245737888993478627102912883240332692224353414290032799235028522683408830881759910034861502761213657040392263203216310661749559269053500764815847669099503677617258734490634468850839644322160951797848350757001418845299846792524034447954583895971463752783542233286950059821849119067686790166788835437436069531514178821645729397816725135727493698708369103522397489461534889290059443429718427776756685169995880133045186067772064404362628985210084008385705732976587751964876763571384280501157694305389145523297596866603264922613017117180337549805360747296404183151035056246196392857969347966053101585993950154964800521095418239427311382409566518912414771088267017404797531303134521183067711197488203370534154936168086492814741946921520520870382788314945809210747112225405163915899302756409493590354146140637129703660348529193389758159877744359531229371940250448644564747127696727534388857771137560150968464122043993969397404474732036971602506233207689051873000426010792541752562401782697149101787193360731791583700695354197801197147723496739301897229078318619894574182292932153802045733815239122231964043536150405571281785398155108329433776893911435435302497822540522967474662425244479471630119431351762173695992448315110921658159680876071951758163601829421217223661380007742955680667787285040323507092782254416196789294362802162857891733059471262718709233756856027851126490696615958999283910444154375441022630861927279666652107319933679103782284263395559765683829475433192033760038077467161734855900064117947261402329862354505766489539081409239905167830413779951771821844884037021662384539543519485968180132977102473550374993864487200192826785852463623946684065779132912322219352431819842217445034705669585927833377916834943025881258018517886717119936379797389945493467109219355478924985158830065268980047557255259737209906279502599493422513341775745481486965915838606989711045281049918353044223714435914077672419106455045933062753322591283550171072099232203371010872906266087253739328068844883452027707441961031343976059302054840477732923908131584332681691092920350258109412843915863609501417176481465544055693563569794385974215064922266528975364383570039815551261782077201424288654262928340979190605830354931869798113575202507584538789738493486428607584250634296633702276402050148715898194300926647404780206571771700789753110977043416563943468794781557639389370636990611867910489939785517886850430431441870414224066604955137106552958720403030782512251391204932179595580374483549870081205584346213878106635155047125692816330242532407313648489073470283526116690261016545602898313587446165569702905158111806839412456313063111136360640429763658441619260340917613801281256015790535178672985872155160236611098080238116589529523992014856479880816739482717864105852492272756700713794580719431004328106277615266134939105116260038585522619110498204553068420466652361593723015124241963488295495779991020359353300467272744944666731387494503546473587008278167710122932552670202922573187490601475423321469405780896825892794547113601995104570700149915235575516579802526079485428626364784472231957875552206035955216080659407215791596832695767426513903248243258856211179777560398699348084692280521659923279615009933626589061385311068046106180212160493626609622610414229502544431435964869232942343352285338812651611575233498481574843786749759544089824753373312418462049638759413037796147871246534846019802969673372829522934476422625129455346948729963562636633776351337861182128769170165450278955614985769598534723229439606556547355007741159446398104953192216587752495631063215348423811156586324446066017428461302235483962051281609842872742775842911234360243467748226505028132885160145285774400771314454905341293729420020426327842288808757033191858784279549538798471830058821242204436474307058261757444829109258015204550154137879492246100229470060901568346600132116947202262803649703714610147815613404902224721248510588669698694271344800332038633062302416371444625031538811244658116351500111565304821005586323605394042242792403292320022924604426702397975819661064362530274820780094702529519452705354995147461929851585935162407419680805845681517297068332855868226712409410989160397239897167169337722642562269387330099385950116381034375356410417127098566038902282213566254072918025815951534593214719758586906889831619945832907284663132318656780480854532077597096115744989751220029061424344066259013181814892052016158026025942902253706183610224513426459775592330424701501486870094883968508077116038498934093589677691677422827988594944467580650111336897509637103274024696366370689054336994227880082000632766062406575041120028026545654774544255924784873804073578590319867316047957104620660315382373748419488132168152139269420399165739165757927373862757326485738087325095929164824149884824847130753552695161987996873802841781490081484627457538842164533830559322471329527124056003013059967251387600457891433967639860569436354356434303599547423667736078239952267894875629095771232728846372012835381884569223146410604458669573132632509268609082885506116373606898055275999414118307195468728010038905183373909416418506492330178433537799623435939980943294135379683659141871546956277097801882514259750469933243621824804952170044634581805288423082863696220187394771753434306610725882255971105985909515115718050191073040852228712402453192295419583731291152385460148831676738704640767177821251908874043568231473853890760033570880492121413266965776688742797011073942297375631409917589788222751135500482946986979958916112353598141942601636747078908829176763589916927970296188471301960058723057598143413545068030120838357891887278284984360654393116463729137057565166961066902434183785214694290736333256529230766571832784941462360476004033793705084234301367109350085378225623027219518476067856328788469394378295125347659390283154846330873586642092775409668952826424606453109521552058888714483092904466823586998434448133900317505715054114284974650977339879417178065954217915885723700547092059226820926288105346549964437407744342904988235972393836090781432674348883390182594320149874958642948515579584414132291845085501760613625814141360270822218438341931133278832196723297787592535289693554105137446587814134803185666235676432567548442988879486108670662677467353529272987815872809621354855093775373291347166998228360419817412946794017031012701739034376664109648999834862113143635188092294112311100419073027428155116119741352984027897484144473275898876931288423819638653475243089477334913589078156106554437842296946424566272824913221512662342051462772014957372934537308514120094462796158649113479080837207493028451079335614369675370428316145830136452275995932875451801183279126341699999942246204622234849153144366486968319290677442941337800349136097909148724973232732689255177526394797211477492509109946991790962296800490070526904926954427671646731155262012692661461133789469864427748251455597136851963867170933903887214073472462976327883996454682968933767834627445682300143218700951497736323958342613184314839992096884944983652652762162121890572517545209246566451009503042142717840852230425348404317485528244610064856414044800114963594313325002675572874920461660094367572391922250149275694319302494257716078186569312912254596594088857693459674937262467376498712949420870012808925606797796536359456508165604764892290156121788886378969108116759658476095409552084893557999506762005694054741743739740502021958413558280923133179527768121346283815838515047639465714605661315992113046855589589751363803554227723009208088101549185894374845357382496143167437843812582629576973140530663868730289555541841666283520356353156732325642591750356839303518448172361090065212967978458028823292152288794548960386516045126119302681500374183170683456916836762339274325750726463281274531618018079247966023757683746155545532822656714947919438630704133639624440255273517453943116081982534177688523437579257893172888188138486039858216322781124885568129059363579186952556310382694994726268852868506530643670525637638663610822480511952854613654705282697453576372234113834525469332143328641978013267037816077139388250637073555871993432049890164310512779449891194701402429474670740933388639165929480598774227331075620697007299286342068278219617204682488768575249266984451721320979433622163337538734911275946440134988292417414664866329878329875033097148765428952093017342303408615199055579032984367228354476286461643391239901164648569497283334723720415182616496058478713115576306518402678337293962482976934348027503279970482888503602841801108092179148032520390029693535927702938883598292377493696240804969104817871828080190798926054329056877776218705689029283932059834892749001791051468465615377439387621340943538790382853039240754367406317742130573536171026914659124146528313621162073615380564509118267628800694676870316754632512828038549989503018185731814028763191211810748171195075807686799370205598454881349347797808031063032410590061778681075757292202206716115374353363671376365126970152577965752178261829684520554432273583249039243890756021764852864907734241901597288584499169432319045508845037165960938585063183902589831849820357953356042615180522099844841940559606586722066865597792340251876171764720631629294920870556992549982949500347220159523006049485439391071719884985540102952770128674096514968827670393058430469177625758202569379420825244234147651300863480171437727626615214323816309831331325433713253863354053671256349037681871747612160478383117344218285589278964247437796481803563487054897936602213280054506763936309219306954490635683235297358515823331957542507538084093799020897703548946483728860282413929841397795685057572764568452797062256980929697730012416670514667461212703828065538781771861330005252993437260541656535747929223147723002423301117414480664601591142225388812265130806169211187975598261561702422990232788270949582520728574050831380510074050045259724869223121313811229405512627057302061988908466300337939484571703794319126040873307543577450266991336576998914852326579903095025770767771467630209330848253295590784213858045510952529798001136063004906025380001282268798305977976300284749859371938162830511287131220122195030335337664069869356398579350712591773814348561652553710219363986371850145295302455020369491388171781232924606522399120620370364828381372466886814559766761956232113327082194509887829115077835160351419992579337828481596946179856214508393408118354692201843999046256670517502690456201244397307670472205632983608493530858365193235720624196871370881909780021093986079628278185530278843126638312846542690536863642807561053219659461076023478321951785583001033930517642622804325126525626774415817401688084924811150601241726725940699476994138187920440132441796146008016144912582399703347585737230340038047128911151059650768957009640644345654057814800746036567657399976937262803636648074623732716947675282437870909005139353452243460544306772703151275564535583980920270584994508914074339270109694945527315810717423852253064918798366566052750065503480954863911689005755821442996171103246584727701164873960227895313051754751559635714133576069133052148300323464550705222075620603412773191763796991314512101305248086438241743201072734052602679428379530131988758524786767707981374445154276740698260736062185360818680930126306403239850195913129387297977009840231569399958851459886370752875428400798261429060861607458624949596723353502089688537866113008856695269831269922018658440305693780020434548487014744158629717564587187099136505255492337970189192994099657958407271020257392366047376115515232723167297502801849722275293166655464890527897085460700240620395358737398178682134444835930881964279582035175495450965703672990249711318891927604179931854932311713751384311124066555515403992062329501204333162108638962320088527017111349603664402822068846530566102230785641351981940935494951364639280659595571453905820680545309162701908521211937156168584594062283747266752810060837735016499547890559844111353319264515940310290728806100747238434103343740496434475954388111267412521197659716106034740330571501461162353189417659220110648585340656288667812467932911079857448509733647983409674486433688056764813102716277217380025616805270018770848039408015550166841069649765052757761843500687931297982197558105284215556010216700478782943377096290655449771851983290605899503029867825041718272017700177444579350411487208080135731281119370219731209314821878726170401043479634726789782024204178576551347793551502838452090534732259032423985798645447314840278896896699772799645128933040120446723768441096695251399549403455045435964306210382365314893080643330155657496355064851380735501325359899872002429605697643493801286981213600800069870519625448794034338483965714252348246501242675916190423637284920131516601601350610153981757798890628415091881693091882570082585683573165850020167122550104319690601370771219455218284173101867995509997889166444479578716448751670026088623747646374421682948696094525182950630150566709954022251822282118644145087424583708870936608659371190472901719452420336910346489723114005543869271421406263788018596898256180603886839575842043170326830420766933873166474091576585594841275524283581430074024510887130076952214290354436760572477072900693009091732008228988704385693545246011224130721552953891517927647887520990712073607103499169029311681474629221362145128541031828953718704884250875784419261699434108022415373083653702375050880358556454956043760296026428269383461867139731191170031452256499105698039336856354397138047307393057606517976149320597275930916305517151150988507498088834542827172364737154603282228088039584608931449832180733971033161967011179067575372437278909913843775020085265490494102634904364974033335040456856865254576071767495313569682636074144797903152509226445900061178883407491004012826456996301432657451683776914625246390130773658726566379347627459402002621709835535847082857306203352028273253115891624814296727954975651391405122374123437439462321360353448996313947632931792136316160480133319749826732266157771988820755882719279928690325233450478644405791171463008327639304427193149993727141611648958991126960309827001074603485936737117662678275856816496102429601117041086157703744592724277254739448495554964821195531462455707438336545376021318543827925745009962644479414168034358997833672048306812294326303771618660394479573676403086170307764399207817069976623164192877049318339790803225251619726627030805509136612364951944007742412241449909247715130420585722176202234891786345963425511802803580304261824810886923574591800854656101672347340785857860295115844795956050345260640590967342429532169394599457188029490197228605252829153670044832550554033459962402584244578262466821033723846276581138390745286122032816388954928723634471368238080429881570022976623530020239995984475684738412341644393388285631864038005957060388859644360267360971685200094051729221284186591489564399844104937298279899905667954465811772905058894229654830416885597915175140936219900895128602623065065086653279010371989345065328468219600586385687105688671381737305935027615283773573111000165941733628926653572222030371801070756211971893268460896322677053165799150210080610754636177706801610748272573541417881702843473613958943217154891570258594622005413845134655939878735076362111401535609192077847055156884271905890345279368978039235669302534756650977788231567363304293591954639695315721771101029205313416912377946725712103907857856351968651858013512189634699235482690041170516000902600162532136841485388960052305769502225126186111219911284465475187548532175220015388350937694714294695366293422063051257874864321013540938291497634023926671314225134428704464322845701666812678893068286652900121216017493323870262316380138430889305215434219772272151573386010711773657088178877476678353095239277551820836294813747531151230187595925449992355613046982174327908264538865162761538978707733655574488260645632923120148376061080435650835430977242202941306277566281150063499623459682313234524429442647267798470080460588250749499542494557968733838298018532755090923783983686870972384988782975655961630371837527337686134467219894686761168026987635210284996984004811934632529641987739812746228752500746940560761240257979194137223560905444390315823695874007434940542162571642920540824176428618242056388883783381206382286402009627007012776883992579647544886053443769027638743620625699586433900988342985567652835148545784194501566014402639250484897760213994747237242602547149519994716418459156314408567957120489591864106672877074865328246771719425397660981890298322132483206651008099944586556675038316676202046190630931702603431387055775059931686164386417829610244944057205477118649950994724255300147833402706846787817011347877382826671170752758046363175232442756898737965666193737689929457793454338972292075798128838565135768083509872262384849855621064673474998982240489319953413103202667772933822551074293824334130358573621381232467090989012404367876451235054467361044892326830433052578039197395016447225340836650483970770962832727953976386282323158295071864634415051472695911902516204807362208299837635562628416498041763140719845401678779494054662803576961525232314428470099529544152608077888084174418954505035602066370962873098793530604434999790223030992740614634081149685962033699881980794800444525306258951229474207793167069164597799071413703618868340117829062528565354311280221919826103071602517193133523407803719813374051918050305984376429353439764404887892290535591423437647941439996580879313221829274429117666649595990770453478668542107392349622411637599855950992582993697274387244158884774757265771350864486433640380525539548960338939665516934002792719924332686073394309547218310877813596746896252641512722654893231746141095910905515263265917376346764231351743245745534858090109101352178072209654140367965405084130145492752031805530680726118710412251302055952897641037544657071731451978641826330074126240198364225127944804097681534089081148257145844455565169820139618785460727207896795560098607991383111616610816064733768514343844164595804591762243918383094241919614722905284866855222600396908950627979102182566927713582751328689266118296128133241214340244896564527777413709296896782464707681204565776806640858511818253373904426962454642539542789572664477283915824898574047334740241841751843518702794886997557834549121788178418503537343608845504393874891891255639555398949170512003643268998279963468069674950433579018825074557382611610395666474474387769726260239293500819148488110073473233550233064727995877141747317105515543722307212109054600212363823516664021748997425962047732634017379662061777525796230685767003339077164120775656103738417814481990640591116895969434239768010616183243509593191949659405008413334624277037701441120709444838539145385798053729520947143849051237001415304404132332159419347660780326473498202389404865504137869890493531628229927368575839801309402698522574162707404301393602412982342193492894899529704975474118046013396228576707506864142124787881806979471853648826561390388367411224984329122704745444431641542202601507299388946862657030022929579426236104885168460472238671931989192434035972296283836659415420913039826824910565610395858669108937883448284680499249309079852800106880194843803346419745401579512121593087125719963498729769530079728267457486597296792158462866223089213198812815499108398037457396039704526031274290308358083791708597707618220393496506080062544228268093063307295472329789036341665451981797759489629033005368185801991073656320677186190511928501522295708341549825311656897735347677177285559975884811071767372295839267117033896721949525542872984738540712995389559481504029421883125708775483960757278592139851395615450715663860881343036301184064060723467339410234724175345750134838576405036471510265857495687157365275279349166057508952178786729105293806951816007618845066719379018928472524968657231313123336583002568138286884306681086560452312549366303386790764689266323900701849829181548657702022506569551796975061944798918846654329449425958505992142130443217838513491196081258937085733106417885478997091662091196863850743459325821746482479443065979875711314402232735667311912602710875805940739031702269324962261335339401388717798418830341586243629489916495757919793911866863253044552951750444017562037009029332470592619205323089454014524941605690264631595138008816982004277414027564986574846333771568857666878527048402548424815001274733301041116026413411593656962957796030080498592317691199284318263695849802424989830964753809414862657083007932201140996130415668363046825391860139676253277981967947253918074270672314550065300189342410809893797659153097178958465891104322927340182926903783670285293553277563159247302474988829546386962326720580230995912152044455530151066693105173172370015552256822694974186285161895141074140753222479578530462454675774286968743926023575459497237343836676660148635192371354295364782311455333097353930609924114709952179125637451903844111264863202232482154362481860396391668118398854903434942953972016075610741790562454900059400349019795629081864455588185529354323065633909765896014347684882285288941798926204093896648686257812724251127369577148701774465486490506243303097846848570196458703933246651996195409590081906271764227164300402173413975920202034666428847994494160408153080249577137818641174874028450725707941064701030982486125397289049070069269127730164655361789087947937047568712522835034763105845997489689499838763715817465708403792275793012008476282121115272997171662084219347864772546674706449834048645297421305457904177397707848643147850008153166229757971610261621144292598201557138748597974635860011176691195112984702327049257064296682384714578698331027417335224885734440807054735777452174743319840985372300144327610030759474939638671944089766509203004754450078294100120897871737079809602006866174830134559330320549557181194402410873726666396629580727373488507142491883778581494261835376300896549335240028646593289425323198405935062282015383985724467799968620984571863150856981086328800567355496831330792531160694027064547503839929000192359436044521764542419425090410596569672385368225549038350326643876256672172476704602842044410378070739558630289197147961997036322381181977312187040848093210909183880398289690791507322050927408668320272064696974079726213487418830953193399054765488931482956984210800157385247528711461770239404870361175323142755594068501020794987376621762832847423990317433139752711263624820610156354045191864586072135914921594456559702824337691531100523241901266687612389187194026782537981183677019228844861558292389302535863503044912775140035837497938904771597618988181936916107428542717133870690558432133356847397352908370553789706217840589459161003355408100438815132249833168869426023929505546966566160504834033622973920612148412019590342103562537942126696977212089394746238777758052489219365417925920495145931267790970316135839910314077997815703491575165785372521469011290865550052356808156193379913587164502832949950603939671524992376204960481146295093179176339363256074102827896239256931372980575580679581551513767129612767217056961416705966730684961508607657990827098320003690539016997920319451688616559785366432115750129783890486714810620115062126786662879051112427727865775984065259794868919172345274898438541414818688776626153516345972481794016095976472089492657948062283070544888962851878686983601012303296167626209779077036486662171804638374562231273179345949163619699048013367591102211533470228339623211706661033808227185792414460234851443927193709749147166528055010432486662380177023447569846284942114383085086169869713140119922151046992520013772122290870912332767264433782632081150230435320325495596365183123831767032611827059848601210349250106275616337832730119734930135497451415102262615484248265458245264380560024081759343210665002345829323573117401266660676318602935382445426454134423218222204098711851428840176020902849908170156074605911490108195772651312390363375672755009873946201650950113073287745930083010325176165214082004384298361882590925331619321331563810102228586315511444248586521894758624239420962400342392906897949643527510107766654545720095573730524521809684261614379357904824402969287855798478172686650814501917486990623197540976765777039935097049985311899865358752284308074858094048423833384938502012984775617641736048939204420657852366901279931543567670663511628558564693980081595440679697857436916229129728565450851053586108758633144761182014529163777826441420365194580355108948904152343468886041978508882550196541156660664623542687844307940641709429426442180153502009674205566545147075123814511721234101424209999647593934132244191177238415163004953746823363531458349850580111428309758461728741813894796654720181950305610570295551393899823545420912263418260262278761603384145637048087564951603615790085509707887092850536584608915003025800919553038178885280568779414434490286480013735048257763320995131301254936135263910981529159564950700070501083357713914506653455240095631005768449821512345399033868370878238835594843141338616056722914405503565964680816250860087854612470079632335916871630325008876962934456999127242239865801869639124935560101734364162408967399690176295701180842259842290079856510924609124338565234571512763429693411429043966047176850811268626150337143622392017383690371366946834652805233924782181574310566515980284170631846953673302239802528858378486358377769133458484795860387474329115164441543424869995071127426744888714741191456806210400465320684705159420964221096359521641363193709882348790237140204619456766132366303435745972402454319407199946706659079115650639551495576983592744295148121602395733819540953406846715726234307466991411793844365777574456292720705346856970791344785416888075683319289439262155087289170234553153648775750737886015796810537056721164364829246133799015615334655748800375780934222238382073903496702386135507553015561979642076603835872286455626807993549377634640855983580892303023418178066486485032120793808025842886803661625665931977466821085961540685410366599812079925541239155788204614363847157961119813093721195656068770626065722486979600044348185749901305432237413453366111567529723073965938986366773114890399837868923700762210750085194463577442794962216835793399510208000822565320086559354526838411990084326401732219524745720805069668908666087563902269510066965125504138440488551802087342032735284755035022187209199561812643029432790083060007989181504976218781291772334429580754157617220631027689556507584684701103619149556451922788341479760176062002064083409545426220221211894766636030278845362207992031504863120900442754317330980576841024228190926572252399958378624519959452920099267791157263106649630188385434250957288440056287151657075925083358815223017226423158904924957625461783114476338425477050550910614681103416444510371345256889361637830065631763020834421886614698618454536364297879139078933829794442596756227289328619016425042863374065941388474933440906536945644765128708279149368379662570078361730752430482531217874191950575755601744728236443987607891410181247039476877601880006587419666222661157876304835086026257868355621605375938444954408873961711963600260840883534204168839308140830713985496614937656811725395122990919416235156747035069833142973702715976079957647292387536377668988342901735830876974972242394200624058968355893836587189306672926209271887622606735603011404462921214097642868140289441709965782720074608649668156335452311316032536081478360648980213699709518725116522137312040441315877681108703612960039755173840606520047134401323058618484704193673098948930778859446646657062523543239193876831154948271327018758515478389742983222965504823776006909767277207784619906918822080666530843722111479656515996883365855508015645571127979552895561045767989327665986328409888851193575215612396678750568136893651090360240982564502669578716241538236883931693974421660823235776014292317850557381124720853430677844924088437982451532490646975767108860538584094765437544242855605630055662367449081815911836014716910101722478057293272719556116414224276849373192201580512211120690266383164481599869226509710824514907062301156693932533921220690654288332407961195066796753983040394001523728270754710757135225572218667301389401310363296792480826889703163088626753305745935904049846219144838918933157497294863901655698146203229849918128874090225572281422420046614322495755980773878031325135166657386752842565781307063552117660142708867171871144588216750397542166180597237605159893220764642590451756383653236447555218632438950515498037746650641614572681941382144031412124777514152404277710604225538793294764494642534966688674204092396835662041616165392263246372032204216498895568462530892453853777326658659632818862057413284928652213129440299451457052152116255164801014273992929131004176574121696432488120650875899447213589529613662625472878970060357115382397768029197719816761013363034628415361967746119934878919722468159247767263969368438076015204943212159658049475879351300164342680370736808283772899445996774993096261179739538980323052962416658467265730326405042748516061114871131225891589720300632154593986994573367046986900170800093842465360273559537240275400375117551805540116885997154898085566132522555492926645874390354420755350147263245995953020403636922248084984118200866334686342883161758448661632255681064354509741687613805740292152242665038900943794100889644666611576548579055623635888674501573956658235689326210025223235945593040330547411046558202718563666588055398198933720021393628080425617592064011156867954927714341084218290565778123640042027016547041734116025015208400280181792598477112138066391079785390315463350245949802906148476790599374593768539787019398636696977069137018095256380308605975035040708364671575537216319204880261292583636285158100312339904757527291311033677628055356432552751546560484339298409538987639100395147389397449605068099020912292931882173178549600193033751628398264103798679373549405118301923751474790880481872529704531935819215294599802258849629323635907809959814571160459883735412314967163885301054872697671298881205243801059344828557769491544150186446174519867008402804519933769640538132629300458800147447334194291309181249375580095294098311717700610079606403620152241283346016580422820515652389564819614072286899080356989492920222076922042298893443652844183754255077475176172385410883676937682803201169381345647929377121824461716891849357795209518836199698238120064175721108650508849010426442269415646877991282006595936030604024909268951481012970020981982132542049482410418365627794969427761683993228962952082700962532914905090241476292941118595061523129043212711238288963212253718029770043526919825766015943018833392769572179966678877885386210195391532235731313807525308664451988169702568442417683957931311332727705994360943140012473664738703499678280424261736783697714288454033071686526254167446627581787906466813610769231893491521083256863135064011729769332165843943725828542647545282501078042686941463261641210105459187816850752973998073184858125157263815840941769040202717853868461821015432327429019180871160373988833390311595814437488420552372757837537922557861161426349019097652844580240811231952646565890555711561864427284672853355150087728887583287828274288942426405943496434116489469834375738247906772825411628321518701636941927492035517502289069815354465156773985314132744214092755536112527354856218680287306983478980692226332851434235838876332387659448672760142644013788482326259811642849524330331456509357437528702740880571854390198333576626519945328312094956804858670620959491202246115107737427793109772609828854901639381250355191310668501575385439537991402094063197874330634560612523425356411465548960520292238562371965513344460277215044015766330577889243898772525192708408570156122028153847017059285585552302828547854662444254668079879780777118327525452854207042975030527197848043731226321070421043075481717528314444834164057847326090742701160146851825983375168698571269999806644799291817035372277273692810614942037383256729902471288856507491807957682982823957082846254182717771536903746353947430648521653542482351990204163305577012830116224619039092778917716302823200551504156810479979496759922827901183165836998516075836540533327881481565750574057117629303214272381305948720663445908016896256421619086133285874465024710145002428462497690258083199758687688280147206954401477217993906863573224715558655687964482927074605547065216517148822008115479887626194449327991505956432380680986467041907937785937899728390855188229664380081693689052525423446693400015842369255295171173192270353240030382927144613973352051510101256796691239558346821727986531599865276413852317046912981448470985626825878227421972828185991038955219441546330077394681310967028883038393967099698930053877405175186249293001364515819438182369620423381833532762043066252484739280999567981921905162920629326052248837899011206251936719542252833425727304059086333389221496584218511623170183150633229878084300789911147977451518976929775535350103519835863401474174371158982037223886028097678298669688193173615513674883514968210852108649765729600633025225387258860899884386522495731150015055540783357616903379073013721683778680196603781488601103660639370624726559661201082970492084533952097421615100994251293752702664757774094763018108289429656673247725274509657920553753049048200960984517561508731167759361990537651481412366805438150128850853144371983421288397737010602346840436266239008341784380941919948722500903979011412295996554436278019387386554293629178074540980986370940631075528377425946152933609825377761599575388826822081220400457111597221604045276654314898613916435822503695221756836049401042798797682323852920933995030931007244218831328171087487169261240186226249950705104997838978248893892458113509524846472272287130040997345505742443203837775235645690191704905987647382184040341711171694646739683957323961912985258789749935404100925385627507283376599949957549277016106243127623839834020535150707309088389046629772010833034149629846058313604618284297690663491707750427539884912113461309916455282138222459054511983395635994902402584602120303501522086358601096672502247237943837078996724549118062780306648500791315288866698634344175019075219299260976355434693645994428115193252772944928328523035032664391596230124712713377875067006847604633731723446262980396644670089076650137920114356176313469495821565974591261866737284924561633073621924053292838680470482181139538262019130421498714767505307031593133738149686711826720719558961264267035249880148112837305787690722562490495424128600281629255710649085402688801463676900816801778599328806876163165988005451703048055123131536326390014799709956695653654372415921584550941389974106566512393729505880683793805382263868957515447137602144664412996394175362677014645053473509000229888614592868674303030545237795989549326917689237398815650465418069082545803663461122094082353084544789930240136280140251705638772496488680068108932573712781664931781103826828663941710284954959305838942122326568143246422378805906491471855893236675840975928928316769569291508968493478069018918733354011779202277624247603237687089239575653713662703364786583043218574842214787142664055083243542803569142452471792344263140362777466918367392962083389542226513691716674830120665841053757472891807663021810619749741462811709586337496996605822776919076670038583868203386496441898646023216142939170536726230416606754490114380387837573380381476456577906828039098815457758959198818039593798090456874412672986930522480076318477790102425097246488098865515336869936235627905090684012810135109429370333349430933712576695633114571790590089857893277597938955412312358200968636210771404603649716121729227304110105027644418086807485796264119939737098236926782629224869830520119611574886311660930651225933792583037941210103333478347333972234919285586551931752091408580618672694364513276184979483569067198528828712344431901756294990977208538404665896493561558614595291743985016842438636048533116524160085510221130095060221122326495585968526274393083287685128554099512974019874281676222606190468929290331978487859711399732054962787890173753227465820198841469973098743047796158956895067293074748979695459610830448757981451145188426307034165088543207513121867912459347529776859894363424628352329087698172703950653454165759733884746411356210044768894862384611063059069834628448476626201144900676425373802773703626655080913210835338804224649876811651703725481045441136124070436359022448289710973509671130658024855916992858511041791457077268136187408315433250758400163529237949132952705911920393682388331511730936160279713918440384330053153112458905048688403603899074978417750504375578211787559162445263437258035142146604043605421700366546090160421200092457177332639853859549784319616870140685413100835707155021696296632696274760456225867889238263369673152847940876888832846756946741568439855249039486531229820936803165547716604886576358127615188255733426567248581517438219117059712727428156043390468235859554750249028094873229222627227956944606460126044480064152992249051232501453115938090606287365253186065103612742385632046784764131595312662400888001372853655155920557910289654373213278685309495308798389022251680870562473839690795969734794221452457127875626233724408123371897566681393208471917737916041120803360864245409676343259136957926249499916990998625963693332519362410156707085681809595159868689335002467313799839754249844875970182690040777009219668897345817202929745236220103223743034914981389821996055198532073349299964976611771267471504465449410856056403236698549799162142115173644726422269254548066566903317374218403570544297192037304496187651676897672550946632268454340659631862647909088624672893206553475992788946730683655489908915150895396852103918026098061619912502558720740412582947672005712252764473829796829632632779703115478648958022888543921824523326294009199441525268998798949947797088232785291720945126810664440024475028980839530950203159655220502172493405296695742518428227831675385979713676820333420619242763857012607160436839342245855176590877651736136487576042475450236456776015686762321806469107920956909693810085204570520528070474938730480893955129317437664128314429072920024167601297830796376712275652489713972294307815926665281381176277524365346343400518485091682055748741180068192426657712282445003604508877489130414812636869201803576980546073539562676197601230755533520463086413870303396576862150304121848634702141089104158936873134948902792644809656048390874206060685558093262102946445760543167507352559384304863457758421954044694888332968322906302700173674030318283187731548067848657480954593710515061987732978814499688007421010421956982331491792456615783337468972868221095383103212185318238729969071851058117708685922794915241982742743181729021046612082468830387366847100430824187398001408237743764679000386179153916287128171626680349476967641667038236818362016409741553491562323634133857130721399344391786106373390280563424515443929974496705335728717277090065923780369872668496555270620732752888262859243242066439464824806806312289736886167193932037100942564451658884173812389418591382505087550189858268101021672812771995774280901347677814346316366854587862748291226205676549321129377395515026185929040300549242063975278075046536483427032269886110022973012155738657059666575756890205880763228205273955147888396559719797100753289557452929954758673394750779090845534937431938555230710984187284562052877872470121902267040285535505360151374522257871536015950196925586549090507649084588607005202241341415589045339156703276054558493327973105108949236869935654092551680197359316380988367833723072428651227685352615097017384101552472771228175847004733825268985355586683164444483849341442913435395922086180502833216144641434826438661278905571189573461417883365403304425866907367441090369596500130477111003324768979578732721756045516097929477930619297944995108320160800260770792182132542136643087614455212555464342141990850580340550614474648528022602958173498936742891668869413188366765194945773546906202604147535349785076505991911976907461128191093357491710604748936227357443408077008742859703160222448360498226889850516550234701984336861287918554731845127871314968160668261108603185278972926163859066282548283236035674129156569723530337865353919305661133553569024608353424570003388130987521963831202151327872322105576898520277367434274520679312177846566944370696017631780014533102901614753722678718955240437511511176400732391573455070553288792943125015394439663348339157377886706588761597479842594812126011002913058784253701459906126104720765878127638721675708112510309748521207557385472834954843208926525265172178225272543144650955432498622950144570115719345626244222996612587476217905800013955818463737748271720339732618259816890004385111440792583640978134452422367672883717690753116907744469834157299854513084200449427243731645073068190701454063906418906771623608452100013783843806610665541261026766029042400009618304684091452369887878892575841841132843633794876256870552916442637974668150084124731544865601030931360461456575344886131077472109775235546795939985602532322814994530056229282523938351481657791780914441224872924527114295067167187030807309615475018325166790138065226586029884105253093998703445553552032219865467020490003925812062931080141036196441813892918856417715360083667724445423864595373089781913622338597871425598322841632749827968626206668286999744712755791016100587987513970436747830002082544197526788471805652144971030603366265733399672612015727473450351185761351263315021656637455568524509534867726272245773615208574324358296612414697435423859849728323721316815740335468732477108821851197585924679978615966909572031437714090002756708542068159197175373732052401317198719253515464609831024487570790212512416733793252756561211201258077501234765770891575729896315565734314805395357822468396835078523718255689445975529791026274841823200503423001253493080640291224941285561527906411424849505716261693885256086633674611216596475465227672821971180242308653248315043328448606010292042754992979287409480324195942208833704272528112193969937549965967755726547281159933083492228095714236665149419867281875112781447160340715614341898514455435698812300641920296358604757015007484579137051964682467435673153302880531341133782052028389463016869700287894185774336600207116341210085035040869489406529420719916736903166090541261284546699210498024711435710262028070539175088615786818175378355482926781900472833905121690547794048362022954353999668544101881645223065532138142354378292977729490958930272752568748224694191030336537784642444594175393993951342593588473334180034017471634841542123051637278412423626695315216095599279538277627905328589958949204689792635483496993839498696377677932073682287331572397353883330998529157506353987220574056624884718897797635804842430118277872168588866939120647038922395601129460099352825117181702936029294276702872915041625031292873636578918558817791698493513007529774760862128676969630954663377480745256380074792237028480856256039289231200942602307554644665528414701675057910266280099834403573419437617824785419736383805222366637278046718833649966515245302666756759288918065539343297072009552016581194017272685639551903420695383525422370756768633204593526480683579363309071721952971736627609196469089482189388640899809876530132376098829284934250659243015519947986409337015713302442208315860777689116532793593588311576930550991058399667345000316186694201876765939603371061778886820214027851409602514967689885275808430467075282034965120026426191166359467584568458892974281681644519278105353026974354899827259023893206517495169372079887299530487457915887374868023414577796230676136081218267696665257019002407572276145141043747017927259684883658914463668618192240805121419420526365393725336583710372970688361478971724841871078841931714282961456338873739275153681757252834583441629227960672690030733877880569756964787737278448017048522511316949953201293724397177860584136838492214555807957204320464594280906912625008170616400670190169387469640661257683069317708495311268750659137904971576649274386601157009618328574856505309871309615609283212871010933808057071416666346973481235079266989070625736779987396771053801615407822919729110575816435821846469206903248069211759470979225714500800353711110290807289726861911216387113784504064259373653790722846584314318607975935286339662439233662444716684345421131742457732699472774603653035546141738789175528311926451776415916016457231810014853550082536347255864076763929791122713059760200947426904343474545152941311675005960327882200749141169671225840451262232281562117615821206724133959900659535789145406186059067830107242462447814497084524524719553344985156067527072629304450059283750902604335990986074841602031540534006546113589860773902678814334831282387773064389356052932568354875128644094054245561775486081894729590077627716433304184658679078577460160138815282873483491246080710339697197011155604147146746327810509560852906962610416441738002117851281767313314222662164652724594787599873686155234554192002590934833538515592441028862493746757172186182198678712718206640975050905640066174714218079491095279096601557823688389687117018024563474691633190667520277694241391707874912654470792336182553508382279650323778119601339398926536980138234478602781477228742142895401365685619624724075324016647124683661534550262749173220792557124820936094552244954461375082759957314762442554993917799347234783011472656237873752091993161952201756042762082853239668533607539728428298630141324785771809485556594129800470926402518248372968901344768871970011727125267002666498250286439375294016952353227955746744961448346814912963388525970138978036820793950487613188962316023823347653654257398376271559503986978073741813413936759683655726686868114346711652048819120603011743120656390506551627080245082127478697379615608834025524185897657847623867695201335807796829865872634159247453718878548447457660139696034747581998602114107579205763497623840884415904636693802260259891387487308059234415362885517625101315349954760418844725706308622734906355555849701621206720993941347869213896107572734801189858384833657978534227500803442335854585111822449763171889616177183244260099819167540853935986457693365838595964527639294101871100706448927960139728315090100581041975275415428157740952566137689776069105889164408979005811687927022366946428422788372091361749001961558109702303037800987750006599831595521583379961731361244504701606846541040606637217202361238194223816748082653568154369648031336236881812376642085062290093280637021104017986148263122206230233482019173419988839280362546504922469956169675609266240472738039046959013902857033084816197462351374650323666450096039269953197143185807453009402566157516388832992419649669127064280063186204971558495889442964378748827488167604692136173788139303601537107840992333895814736108793154401996464499417083483131813718668045661998751970801852516349528869087615231949697390850241459966017184210924991396720874062026929872189660110224932360350937522901942089342898539984011551070244021538445610562574126900973967329979659355575904080744687836284023688487195828341097998603629684750636743741743244484532089476345078113515182771408136771445532883355118003077292028124332652233535722848586452014372845239657457088183478360471571870832474266973377773789600483624378827715157155980674221750378366695187762369245286309505212765498686524851940805296317529963145793156998427010562198047828590713654898592520222343614144717798981927182623560330982092372730415049921668723615681406831406000374693657652618424257798490656336630655588369628380588278895696098843075177029592570293393840142006318358495276521053397071548634089918431700613164540210008311227829443029248816480598724943580923119265426132775972018180479331081754190274358755402822529154135071130531982333740034442587223461886510469117725562698926151091786575682548559582535874821925189861938692209596677777670426011481477570313806100220968016789223757839491088987860357665971564175260176314581638847048695070100824808659042867155736983171909020385185350606076757044444392217688836785645217822138524455834005629653261979785956587765167192659830485179151706915113756045086084675257524025139914224751058436142229712632472246973704358638173021774707529496165314761035538553437918866917523164173902218487348821487691904138054716149952672208080879381721645366743986243898134890603362542172681522054955554164511299862598973728019249145701660665098455408885474112036560982868286460613809931775854622484746366314327012816868743527045784817433906406436816433594262322863786943145890698517401932036582233808599314499293387260349215896850208518261793422874774879832391361690485737097463678087537106388880747753201872232319681244043783167355046975193674824517594946620722204669305907061169624843240421176378655100513773967729870367346020851864612919370392305957501420569213730883581536746423371383659757761583096642580902044814346256812047707929678700022511299016809694543637815531797096114019193880192221914381880325266882130904784594631051885325136007125639064769692161408721606581381944205068081552615370190786764096104485169327938675141676065236983440146214342431293168619424744141389236349019019467939885523004799996768630357625683258464419897622921698225556629492493458412743343889497416183731728314499473326241023201313169551512303243335807656675618837419618260575751874397687382277327504399771823827958124296519530331839198705327373647994185949985285469757035785850908549520072271486530227791081444034309807716165878457997000100984496267659676663035809313010012729974983473461204454792611195440234864685481114921115152116120671094984540884161714464982662092628590556434478614397456748964685983403878696926433647343181762059395610329939796862624948009873629534642810396963610659876245528992592667586295217067188961461408463372121192567294292211555843002254027637685381179643756324196646878600563926960536126675932127782495785889159200726183763951098383926564192477685516599132304510669024621305633303509625376988473981445489532290745336940284004040844312189621894891136029119281791816803611935275473838721884510142804405607898925947285113227702646344750687042696981270654819829265556379204759648797211280363956650551107103229896410204984145571509467236258498453414939305313759220642368963963178756786707686527933906052328911123445377736354014101384157034923244563492313909975164158328571709593767292878323692531691981790649998597269451048442207687880024281136324749516911968006978644355326305891600632909157970990577428969458519287889341327384244016239807985860529328369733141326995202631348220335762374615399938711688080554472425941089029900273815208635159747270976484578446366822519883119389025110584836049997896371620486755782543091477292993740489427900162471888529528119427019621235217783498695499014930776566265051431707179842492623479994224109908528420442326430272633292394719947329360288501293956471700517458390595697431676870423446498470277502509995963414502510050948929652157904565871353994939897381557610082300249943279886328125396177201571185420161624976221295564679313048243888954821753514638684264656504646079370182475479723313663810595380226771010360360551611705076134224968795152992635734410153964017762701775341544993746638550827955212309401623026818455141840970535646328016609631001382362327368650576734393987685885965019967414642958753875448533688790337468722630054626830430580883742938750637963858543868812414002948001260038196540166338793773331747725314992747686699456952033346377388001946038789035533338578548160880225255657241037175899299506732202666031148854212024299480736955406844386488032250960224397340485228415256618588398454743333470242998416374302968452643780747708506980839462669390950153457919903249883647005103821569308482919944272167744400368119499569081089347196593384712263640723387483177716114467667497985271151811554631948691498895540633722469357609161841336983409910912604038207451790451215720572519366806943467149200883394783868762834137102026188925635433519778594904126574571766123292252526164082392157164587171106089696362264338663026601995563870442738087122276625021436105636956309684385155358070518390534836376584563387307375180696547345147517856528557724745173809231617090753523761835681803363702369850577016893711100385997698939050252477445713167186558803226864817935057375894524807008947457475636728742244559721837157437971638311606130772539658030350823489987749977649945854837326009788833622311101481105674793679314718051536930446737552792693608776925991796797538384399215543635246313884957483677784457085840062881376477847465991530919429988797999828113522058915967107028850845085258447933887338179377776457290211105122414745194686291769113157494438117363291049004617312739400980951027858228586772243427696796220305133579182113766719916880945411664492740146108260558338325815804798324038244200885565513907403401343218103392648051205603417800012113716098322716073291659247835036821241580524857830762659617385045115033910591497537264544937445515426467232506383317076148901134704921307046468417916549331464447361164968919700008720971727608244652016715182705832711199326408421247379941474198277702576077525081572579816690739462158876524704648836741200276866086384280888445614449893859670819613079658056483605164271426813517140833161806465350380553227595152863824421200113475711931652254470379607695653174232062745276064153895837893554675793125545536777918912008735850139503975087646295205878883711555214817391876817061176922923846929758407336765334971244029710933933924550457987868552059466770935754802326195721213477787016438605975724376113250438193277054915300511400144499297869018148854991204012667909548908980041542994969907378444265956954337906875657609413787310147798159922445553845410109371578277400653771782020504183667482872682288234071037372344851781281085128411412861228784090119758487142225300717255696307119404820721472643695694156370945033320574295072923455639501667780563909433891802693109398015656255271358009290754920147228720794752367533029561853822008839763389776992002918210976706456034818411587501489216820613719925933612893762134703544634324784559371110159875849732065065046103036830398494901923069722575665083522093890068947516315185954832573687502544952788437001345874748098813281208440557447856216991818141036690115165145112532296126634033864121641110311477598729889895419421978518961270396417103645024088524147840379264234217419945443357151851401833647601505595342244043083859178105669759107841877492185124885230475494775234794267288893048546864927004879852237875817663467817913657380449961654194169898693550540879595370447734380372777869310441657442066872701132822219802729014929256527631058925549384752750484000394180291711412738251383942011008691308417800247786659738217818324468906471372156190075190938726729995285296222166259482462813349010372787273815610615652744266470094577172123406868470276984725289921500728591931443354560142942871655569613903500874933128937328283137012515362817283689969216770728789138260297029599341012303162173274905840451783839258283515142357580086899537325092025528369705518839483804197444818912462992734439289395028492055723910234991740222665838741949796975048396965120899220018121395429033343749095672464967871018049354864527755515646294075094790933260738215243645777426776494270323205506821480520122700665304561231757131172595999872075097933621848250236759582406173613020782315607698350603549950978870336259297960227171985272141172094713941599427946943836465616577365435725033957355718721885139353778327761145523811767820046391221516585001871176739718885320031397854513004370968694691232135051310449794136778107327448437435781803016373323945496097963127078239983701202253288321961094526067352763838563222850235074647015791209192904608055167097086886115356571393990135228879365522059338919134906409808457492797894630920117830002779818480522554504193235953168719701476313991782642432901141966680150466103732724346107005774717229576068452738442810624376000412458982567173680543351283094773748324480025330056550464520759246200823091502544026005869177937660261188613057143620365657064937744520536991827270741119588028136945550983003824376392517782451637928999622113247333132765755283347159732523688398094525500156901743791114584595403232426041190144944796315062247184743422534966534580599195428206394676539104833196473874317728322694162493628656289694268324275029034069688085070311080498716063267860558698855024740925914161604465661192443582495167851098750991581320443753816539147265473203189240607393190280137740423032658250554342555829094933068043511168544098682775853524858797057746626567346562850837571302745942376028237492599776377906381192704855730336499570502211668879414280079609914277641198331542858227250768912127054700228474205194600404788156907795011119290308000477089842189680735000872068205548304855917138215348080559350252216470340680888858429646419945055933963821114528426711058926220264799519062680846269746271596509340876947394085349695230715978484754558621377041638000966160276026669068869918235331772092064137871554230700285967403950350606862227910573814875081680422861907301703423122711036629808618477805458316203082109935559428549448779231310577075826010671994636644601128312985543621168370427637540632507809288576494673009675860112978685540267461912504301819840628359633686573575056657077760289213438419341678602657279843981606750893402790838969324817659776487790882163815444669443113956057469031442394299118479963599603813145424156987043009361350228421159737206110375699811199009830844931919009695613381728457768759511572223990462411554647741669702720118945956890804727519347942387358365900643291376603502192410594725111442428325530136838257609633476759631595241603745918535748074895441495085882444098423105012880022415251121777344619655863857396906399289195773503953678995434756850281577536324623630139623276343447498570120732854593328548520170842101075311701309378078471783909970836916794263861192187936215382512139754328707619667092558520875399010289950815359236942555278463450605454490711857580726082398116920366578526510923326031898323468484480045115076516565243010205289692453552245146968805870438997903538819633227066533098092982799735638423009748099118651482528713823959620523566652063416094250983742134251904529997394996475023780778751293302551436310434015041676619224777239639240107227468914582609303233864690744896016853334969590460025232605784949533699268884054006726639223565884973092669014756232955215153271911270454440342563882911021606301262906048796361258508779846683175133367031532698395877590299096850143763163226424790997583381317677133195043906416246291480607516706335706116668385288791417210171377831313146263656156626968211995648931089741909766921617902809806351194718333875194670630846686858746728502632143510568797617936782587752530597266510010157115150328899221697422431743365169503336769239517364837692505718162444053422218348513141878244427670003742219999154183771351980414152901338532372777465635708116641985311642319500547350139788688656353835123561942104932070283773698709781530074222904057630943911201330864051346701613815472908791623946879916020389100425853369621313670832498752888344107040605063357171177445086885177528773456967654225524893654109884824021453363008671117415404436968734361310315752810307613611252472190878608874582308293465032556589757156042705331501034092513017453062015700054802153370807565308919260974362802699439508049610501552369888117124568043231309322828763482741550373385105378111300695642379259915069963097989849133575353492036147673777388470881344178168988769477607308543682178373694632016946186427687103531037734805428895909998897684431981614003313296100379672226043096875348622117419804840397168142579878205742232681011408959317842305063338915266625589527295782898476122295490274364629919580946035015703185207261955265800332762369982421133077772137919571224132272656603334797997452419101133775935187590659131420271105370905284385845470187423178744389246642781545529059945272795919082510489785864235878352637439629876814096601171769381614867540091209370632560140485823598368313271646156851799992356101657736477260775629301028060397115631392305423284697140470573404949270545709348608448500942895375327877953812340581106213836843489670905926903143444679167049497165462915641629600172488167323635356178820074474648435192607935715025912914346123754196959032973349702546811015122437383064909913698297474399338511103373594141901753258621640594667084422175173883637352077949029217896519406751023795632702167495461582015228369157555645844714622521178148458566750102387444854404735973534315465984971482796571603501659370389358302943266595969425638687100281615416097827293028059047001997685602721900188611150559838293578073419130340362355249193170319305661709624410201231648358198070441623502024678307897615584270106067828220949086724168298652850874772823104528704708948728132939302961919587409397371596352033430780585748330585826311832960182521072117232420657830169955991291976296601182855510603936638526233478951163059322809415761699379986017750113051491968878535986266801558630174332693070989909374847609627205273068216731080674088164084527800436848168786526396324867440063252510585334201012721234530229226972055716549446294045973359723516273298054341254048485903091174501557233543133771703382862512064781406274508493874166467852169991191212632629835764319581997761157624467397704978206682782340937749288996151036808600567810115416397984319533856494895951527952009188612113566106266858075027501643111968103353717324640316477854752672884804696754814507356679270406360876098212245010841112754380084115688394687387475058951492034571600349806943616137065971495629873978678698999665377680453532960003178897690460897731140854362556469978002754877355451074387160574719148401925191182255731301210503287623176343066825169653006333523851576941244387159943689783015473355206269428655416534464436689039757907855299309082193427220456788858648999226873352150848174786757609637417705102785529147324913404890887095725461312102218683784223703223846523244308345796761434094186802787060365169424782237688724088138111891030221752757788025121186137922753665163223556836645486264078951789280786373400170477471489330484988711538625416787753238597135957343787315929849024565984689590010024213701609897377029787995413122777569194697549394616503344168897346401273160289766470548278438156134398438699522952885555289903017920685984916938713685308549228818559761208022914892886417219051952767220513694375421096340136717173434705800014993443655621653167524232882830817617983177181987409353393744850964699376328387313554305755121302302822017838948880089476360454535240482818909558944086838709551026788034645109787253242910665814418267573718148370380330582474915602913787093996025623977616557341811761367471993147868424170188762834546186759362206933365867738889360848352302210191483913288475040567856095599556799281568256687808399116152570583735513289957946619001405742947106868241943650601502024157036461624080765925318547069353327287406174251360672092446256762914380492494586092850326533232460209203695405108436292884386182606939928150776609325024067866040668053646561991362202856496716694652654781039944367156426206968133292788905536576704984282716058514997535968487231878988029187117489605391143539829582811574120736556657124700651848563172919210352365959471561192802795110042979440923097419531752152617521378498959325900379761648535093949761620001856558098767719568883089390520488570849692222325243505796655051296699987250079740317986044876792551873062128863352372134405361311998852206682307608856073077309702779320407327793454495223166887640236899349008651475456420081248526692361793435228373483143638758927381960412350448879070341885512851539966530181537984684445652230419457870319084007627728645409784733018750422486382693050787745168235514811040210105781677231646470122620292041402920354924743092128122199535650771835485965291567617512642885572307012117042092127590909689142144589651682140141452612159405876017502490770974507034143937541531251130756643713598217469609695160684443584249408120424751020218616524996859139423418523678778233079071748881502004002563130588821725546002414743830602087478888268338953532418389971492004727513791851615569964307900442783160801401233832223193700906184723418038595267644748571949880214164570796106627542482684941246183532607825462322199226372562643368842949056981312455685882905916378302795118770617642322306043180353983539140780583589097744597710123579037062734984915412703618042094812909599847906221607625439303879698992674043069641246569452660074335409974891320923528625589482094076813190688978291026952126542677735744923482986794447920696440389609081538945025959259167596166754969507113133477367215627867532550850109940701634065306021528679241786223941298578269930926823694056399760382016791595667911225750196796590886861235390929200602397477905530542284577846658692324792155845163356304449848500312942412943760037580312117563853616763715169308226335270453223339307639014544980377868426926397441083623178949479181542415515843615822721248680933873470868681391423810579038202448945299349047445830993970244584587490295378454159297918283550509305353535920168377494292413789879055576117301324639257630068109712761647755998222821529271747540178689067626157079645461326662858693651395585284271302922546641705668727017409854795108822135169548501375529127583049213802000321554775148673055245470332104799521783240659194678426235665728335404801887945371967220012603723376567024134768680504467986198535404059683232437303133149231137287315586968491303247028661275506314163772133432054131839476645388028908902626782846022384980874112777071727127853483577760228959595660273652936808175143101189565282056909341399254836985678437665288568179313318605912811726695298618198632274643687651677374293975029899999209120343905530532819930846119480245697031951968886884098562233391039356319760008839208109533444828005944710990434310010885052948218624926264463457494689205754235305677548556352424991842765927517128919745381736010116550042079975900921926094664856014309732098421620871835967827198076025883192890024707476843879620968336105404229603793143863987073466416195484720817402837012267275446581248767622401971715476882345618532477282808178198643822675699154664555747852513932907735716333913116971312750832536197637374075875209568554565919946657416146062365741315835756451207751696743209960390054677926687699162025987866157874416178123651964092325832558150638872290309048317175402191567285269612350639212223496740872540874924416723232322122530528605714500386639994585242931647485494066048823212939084982974305348862369019680508677763946361826598048470051750982683303987611621936446873915449069490809460468842437384397085157911719061565314951064923649803874153970357098649152103680592962749425038907066715467878699333526511747970601984524807225738356909295269402897164771396854934359143392530115265839188452854077743316918349459147415102658772182187066417555834458753105833182646384773924306435561662712005484711021003187350659775587507266787864939828496156655387664178109990316789563128467955677416663112216699266760670936349859518779430743794175991429252988977101815868458149672941655405557623607023741907385827200900529174391248098639607510213393326437257274668096849948554867139714277670516826761199769927633356075592989058295260378429498398100462430235138551905640760581389847484458960854460162172708670685186016740628253041323025545286492917065122868169028941032158125276141643811394969429095309387557801668686599556937601206515770727896837567971140874234412945696840245090412399261485837229231537031385566418979493924482669019657658941158644502099822840711942458641155889453160049848709162823573044019710809029638830405880885236578278553338126477451396371397067249160803681606193822919238428066929254709670451922882756706774265723280824476484435863638648742308149030612037972840337689219542043036926598857627071919172844548935274888683432565867522788659608865987930478159777992848677761878661810900380330555204582884536272271086897935774271326002706960146224691289454369561330655718734653596283491746313581314667643430682140797831225616336754422351966309819826727524982403920890602054660203674144662558509108504128939255555690723179150652814219583915433974865016075400093948742271390953676130723140518662687398581856355897533891218715095377226432957283422856987232472167658654813421780275865024486944422172205035552408055492793367060265730917346147048520826846616646096946962931890240261212497884534083726139755153614646393124863516249889670741223882538121720772759451571140220808852398858994551239173212923626156738092033603975733344151136393976535606563611082350978754330124236890533391157276900800222868255244051796641819919973143134363307723669800206125571868638764150970893045598755604648825685319312369420880284519626980708181686537060278732843702695672531000971765125251772228411531411744132728753893416998577864738266560562079985564259737506166413835973677511851417984082130226624542423414885583193430840946563174367840458731672879462267656264939101904769419398845013590185069009863957585141425769662730691831030528062744061336811730603321320254436859603177689868789800200099554102335161623829883209084468039414325550394649634991987124288400614152072775447413147360296306791971116841626663573304085765962551103804229933074628471750013695846918291140257650423201260110333433528603880964811770992861728054143824971504594272060666144178109759651410594319948052647740501785820611600996708480644389352648912503039793574000242168045392988438050452145189977463897876767579904552899413695113260310013500510603263783182829804646852139606778088984022151499861584465789345687681565474263576524899983795296535503903210831004190935401376419992228278719592908792208483304066724186171348859356715528329964981860815106123188019712795082127978106486610476988078021722642650943414446685611305312392677966427054909739642752331213948295960125526542051813453686870745682076651870991275987649438845012063508899276988969721679769701361816341005395710817218351655539932008148856766898810010857684301471522921615726978896873166956207288405083899476547832869701214229182279695759355965885852192987072067895877200478771292113101806809738711256950418571711757302213949729245967411198510778651494540197874931064668414844480703507946041740180147945557486657348429907444061933220856835327013602548962238747632333637785858780650736242354728590079586679509621956131282022282651170332662738194111079282406274509576097304742625784463643644600566207039088992499523807550237256688583528202851855594839486812365516975794279036373395761286209316415891588633270671082698465331378814768004801434732551258951692910553907078561210956737921866154255030837505342289676431756059951437833484748219657231816348203898846295333428059966465416418180698879060611055600745384894362865963412268115169877526033454996166931080066639580061572303520619247697136324863167350485647441484721325910254888757032019085239013361760197190337450770606620722624329570644252374713893769106473108900721390482567879446317325732061335664514209012282803690243171633995530697012133615585708714808106810230079629729088058256507896074318643786715609092217940325292868723367007333964454085083046595321257819686865222127685593541759028687287562157582948161783733830338718351615870864638026044814484462088930521291914813519850742544741161349542148942275971843553926570948018761752301511773828429932048313754664398196016830844718452416913589210786860022837784876385335410848716779174554463703900771528029147623219693362353614201696639017965265497432563678012433925044232683067709220384866970954563874389505150382992901640065378059019937267579632875859032108027891150248561613498747692410640206758364892319893520711397737127729658322648627645431515686142918737909696651387051128858875339903279699219876899595210133474047423315914417730397681470675083512420554678456455885484990901153122144450571503440996786968264978694961805657988391479297390077835608003354914101238625770709308882395923530414895231791508729240117285018096671150572848217220581645931366043029797175901354043337879418796075981378589097509633424758158724324464204660432245049359749646053818773694701273735584862150849258994214182573532976679450111462969846112118496084630747068541713679245848440498625101340157825079514515023691396657317194937285559051726666374777612557492662383795298648893841528875125469083113305852273262212665816079701512476722874238324566698555372740326720578264802261600560331394010332341842092297423207307357922319001449503282195091410942011686708523318147139736712996301280691593899646411860012918099369326722049422709169719426902783193541177366618707596375859914301139928472892063294300772789222845596431723797404851319852743110825747154474951608347818527377179931119507167635066034408404921510434773939589066754058381230167875550864146826625198905703823467867616818030034350128042088525169232411393642149216712880881405256038418484822109668200710626348369519066379753910767000968559277883559138232082455192904005851065127889583296043780748393900240050890346818282610613647937714810476145319067124934787889939515746194841718728161123472489158416495537978219785816293604704498632626831336811972531854921372164866705984844443030572157270698448737033229517544460522182493600668155648916729313349163370055807297906238429521388565365178559337092750195268141371723449165721739921401680014746574364439413644471092823381402526958353533682278890651834746370118521567053956600816763985837836181473254178652028400175836893005793338724119127894917235341589935356208204006861314295662165927901905997453359007703667392234740058320660362324475039030338714345261996534006745815821702525539302864363067768546407794839701632264783008829524669969510147385553359862790701114387436349966537650733574168313281474770890346877042514703073165417089206871363806679735930929293034181162903837001453741429814105397086790819663811391302727572421799975400816863230640235837049917250740476259250425089091772976320619210881687155242072499167757336097019550778366538953278342415495009119495836917093723161187403132865188049700515134296420727854207629612861442799863402832908547123608218095203297937355346080160887162838323437477285822163762483237550180813026681313327939941681995687608183366225239161427187502319162333525375308673931332113745439715923988373040136303713429094535654358319460380855637869689787326260474646383893425162656197682026094656450391825575704810364961681792422327289938752876243251742019375498720082496499332193709595036125238077782386862357860159368260130795423218836254419585894437557928552413306239203219838037350839949297198027002635680482760819058567788048932011797639954798294875757636615483974681833736564131842262879908009933285618526599856152687351044453873365647077833434245141919962991275723927605802148479069630879499317850763832712775942083804034129499084697617314897291887917799648894163378394812995895367803771333318624644817353937953939541493243841120174311299919367629408877693042318510120980182311439246920720504261591823685496220140085490752974468671104290276064395785190031429469756163141921730254880920138650873242916484536427061644512316144282378393255215878969494378559020702137021585257762763691364692228844486566720719975262958115555485218825011102229647126151669362906313881233980638697015605458812753521184647517611350595835399169042117090090129922649556948128490751702318298554205770091212550455655078633645389349965240799554899303831872474235417315959639064386371198012321128671315386185553256415657605589444413375765511332075555418035828089820597989250416909609774609576822808854142155097441958359907147921194831626676943392834244335024550747322477494102084553827757108067299604031374492685708570597401345308041297831343500442961679187665836253881612274648594702581414680889632203117277620762376436369986603078810414466321812518312818703388222144713846119528037903607394731483970975282255293723443678930897745954128226624685865946539965688596844538259104865144328701148455802260773858703286416183730944429974178171057491778652509906384869641751094130695426670581862315697551992523421632227677612454587299195323371150315392299516713156439982236511976197259318712114500154962891446585894113958649118019920551543820989878463523841099953798329565299305024410911677710811889501113710190028896834722913228469998748723604600927394324400053388097926023816531744691710416343233197059153089243287710900834140596131723654834392075181508060626820056905366670699502448062075129360919284075196211659564753490942737418503418372021103550356871166087925834636354420087500310685771938883231174632969699341166696736507745127034994600475912233389129633825012236204233289787069537583342709728180291655182362026837698143151426305203600809850728371581716904804641096988691225718896946417210355304940581545337046534926163662186032160458372120263532433153545422160420564738009165615273879536525977127477608222205319543993604491280447889575218837890299158585705583697219144711909687163770427762849345764793113197704821004955695316888899475663794462385163509965240085094437705913757583692120050989594654508744333460329338772558095225647813784627487973255122448557103518838977140408744620827097506313055118791670651130978801714517377345694228328672066535861386806468197192945221826716628026176350971447493721813392422871038528039800588904821967439885876250225761381462333588940872959683774600500891292370322867815557774937377507183967615556581776676161336199201646415116789466988459722410480038649397347481731850658466521319266319301475430142513725951949415432282075044101105401232176366593720590484937666825702811837933241605620288402413140846661211926542758777991361132678870147395286646667992645305694058285044448951112485006612430973045913534612299717213041905306429356684745499558290969026892839191238767425002108591503355779930863122489010874431157579376220104892721858177531531386158640575306889562803463942798219645809630963503562477425407349284296301344414784190568635947448878632794499270872242864833250309686581106002107459289693267730515431315007852586339231095964316430693507715056874637723824959783622963445462015341585464209045556433703725685366927308437530420734492562789659660698308691967186515436701226678224795137536006618398939665430120467307122875049572330542458894042075499844862189897411939861984332169797372573139998109856498144183994951972479117601194466219825501555984046348086858575454719237318480958314195300185165976486286871827611993318960030581822739319875585338817563655938993551622808402891205717867575096515819713229060016626248402249009196327026325042801794540256713158808629963669788130962288672384098090814513150388106150050470164141839500445992784466260442974730600274102005892977189410260575332986892161499543113368097700914118734112320642550641293002117977915008648065257760512000239769161349897751144380616461976887280695434746651400294466934085856175878980509244076538260153057633847443548924154854163079076530367123445692126554791783767916032805417259550915265980112326968438690922212302683147828638200312980235554149551712714132842164549284045576422733507311097929273546668580414308988802188138074248531040049149905353031538603338612124735916731797970189565941121221952861982647560003540787660413530131290893320435577400107938911112374462661387752837786002721210897752736788103657954207478244900834407837393467857960019364379556556410631186697451494202381411020608182172220578426697286823490221651512248274197827044485739181305599762088203273135707917470348352036081501733646847506472850051737680352668800098588884315271801380454799508346102457419332756442591420626693185941203289463776149371511789179157373959248550878683236326602782740921297478772760940332000328271715094126287597221365127221109706253517234337686555149244442134711249243474433794783708135416616604899614505022977355175696601023185784785383209615120130493558246783437520482762353611656776820796481678001154524605065574759529775940294598490955522897300592345466170856853702235124054196344377208574405487085974377841749948372106138210392952663025657664065045732052062592347573246978907701172164889920250347072855579233356634564576610983467739484269199505424119017820002351082836439853300751699380439590696008932997410080618171822943000137758367242442455450632280613176915330277248477913393110971591161061146191366230189943232115321555511582680096601124662536987133530000428690193066411436035847737682613320563606224567803547324190306134162424847552966758255362431589168387073255858351278370310085826272893902541917525733633447624327914310490408366242375383133481900285305080753293397238205485555866102564744828853349426021734606229792395860692660462949933686445015111880080634241865309927422757955141165600094034074792688552181892690575995450227111980839150297447234978031366666431414745605313960891730707842267420921494657926683822428218008007165207474366497924997443569365765365994074839757304090689024048587658321352445454925706181879272491318301642274666466747960930577733454062481022062161176388118379012031621667571965950929561037968717401814701213262162191669592276291665033065055869847540234238260416135496195887341111209839800837681488910444230773108199731729040183460289738167070602609389437963718318230239768121931764342572033410137924006669644265171287394266389381477981871623634812680139127213537157344861256623415615736518934884600682767424796134952237703915633964980479901152842197895922872527870337717973464436798278659475108574798946745344388472968248201631276450960567283400700918294895594820674074691608029311821720741564074416217547624470773203084415091224192132169966550737099846983097809287740057500006884495949532163892113431275969277367361151392240029444341407592933545450374660786873333961605657079811460113094700854690866478248644547922313773125290255304206690528492475791779129889962807119544600919036523636252846891716820824321582201747142983094073145789364539360184302872824777445276594423192971658401346433162109301604095920003102109351632092931450313897082145868769425958827057380472354563759670296245277552745809910644393699072717704791848962888488336413812246209178149847095093538906679571188154598817102437262027724528379633637816981660827306232608856292752313743887241892990187769495274983366140286525025116189821724386832509491337638466150858096891252520555626604897202836703929204966098741343720288198894783219156154583252712874623968254300094002106220180741419726548939655986195486662266007870983098347478379293453954732653201474632097561416052504724761474249374393143711516320035281839362437385497822108295021991211379816463248677446727581696364556934545329318526678763119533995044982992308136077838553439848241847211648175194059888091606481750763187761461620342818427241131383744702219193769514482489607962880126061980757097093753159221266770513855615466765791398450545902454123696491257567387224208931423719050843641521117355077343023528617130059864232671313009930724603820630170376473405796629261633042873499955648609234707055215470524287622313643971472089830587060657660966318478544102066551072992195677853955983547837816630792844040516058462056245392467381647678327081109180963701714034986378321043588090375182789282907845707181166525720383468214535871725020268985111387618129971692388690399234267665857732380685901336995450250786740779544596225119814709785986111633770608068596280338944911795190344680747971643510464927694184811627698212813960431568151857036054450886827914224224806472133450732382849308716073105379236147132729723796966235566075465345849706130712607475358680339970270834743268345266324358062807407022998634808450327394917128375333197467077763415748896257661603982297996058591305746946041765407660766599390354810799609287397587163997734311192522261417657818650479824508763317845405668040895262030160253330885385061168725272147094092663207727987208066876289200474708897962365689880296211175263403531729542465008153845068255612118839920814478660077981763835865777866003883257695213008865234418987666045903393595282946616831862880335868247500607066138824939916427462206402533258006262499273489218343671865355342158049443623251252089064948549056091877143153983609800716054393487158490667159042890627620488999643370834531810650025362275492460926121886163370328708806821500075613973858719100502827721220772526358725549358212662347920269437652784237184664057403897862030895884520189531931206578887316635549065930806047955456888577138631007925688068283134375481117879762249646493113039711065415778126842851252423809787842235477454934259280513601624174645111932966511863806592426896895829038794536771906506072797942900802194660606111832060206295257329216287877101731597985470731593918696032014544393189812644916212414151048237281846474949500025173937790796375847422920088044855279965127718286611422483952281317382037764654026321341973991315799742483344652727279265226194824720529886967135002419783462724802479875523690912496278670271734056007671859250960974481516709345291863292803436127971569266978233876638823807759782091720972887688218951781027496507053264853868541976644550505571136891399223735185487864131951918660179769036781553876307133008099289557739127332172136488588639576759495600243643404292757100357255324850649798863125098003638653135349041022163801826809525524223892540880439923136704080030896016276269503532155698587032010951761310847520784634254614837290364758092888332439743560057288794480099260328288507396668438179021101627652860312886902434324058895546623921128895352670354932956095921974573931932128326495579520250559238697285074463701368970675705568765564467525157837811096879014337521609561826861189965307590737478213679433553404550252407430276139944897439230834042553238750840021814207641501695603557746833921061628937751509683177331481170932228067807884790611429891429279087162497342723595476069197875413442749258578710379376727484343075693986378107675627890838861066470733456474043126546167931403526577589035610311772959556956520103178412691248002709602636388505954583309771528561227671374577266183101879272163809471458985175160622312847610335960041455079078054298133995436458017125731268563219283995010091757313275087712664355295532773264689164786927557999642035929130769561543186476727345864669288181867124971769943220502867551387377570871156809078576339429275928245713882038872745132554936451968947886713418780989108348769139693931958847748167423184822127093134974143225717881243897298242789771993391442811156157170109601799977973750383242310572540982275661747823056782243037228962715079251021490231704182025142686001714731184531817036695495648960601567490203138624531448741179699760911784962792769605719015715423380767901169418797864439516483124768025108817291064062796040284761272849910875656363846195943064953494283656964771110581779999004794407736842762846020246787155852475281420739819296774027825781445459028496130897884789337996922208174153126049382278207253875767740158436029895485024927921997082417390680506968017616167774946688967809844456240506444560718225127814982268876925893477143527603535730753320003000484746258839707919267777227214814155127376701083815148557826896715652660146291580706601692367516028834369977659683067187641094390887978013863646207201467254906496451194789180944935309336677241457024867621660803289656703750148129617090440958084136561666022578857645608405061817411839345054353227448926367957934567822755145519454998168534081361081102185764906037827328497338756173868112500409636669295135581111986772460616284328749330720327894541966455132441017203243756500066565810551191227702798071536064395676277073309241345299591580111093915068378351519971087990634830615719098736666308437416095862991283972573019319649958810838625358573032338149261601317549269337020938468439196431290511367977414375611369238568664267088419812839237801050992810853449505244775476471662672457158968823374480990344126027742003166015948880805615342110019541987098705476859347738056352539539319107976541617873972000967729815319652210458203440103553145473905690818821236250474481988381456214014885382764852881866312682857353875039691379317912218204249981190243297264527795765798422309004637415379492556647328953537478763087267655825030305288624471022345706078219764087458339411853456171892310228441851564088664136890488300227314818209458180158648814310860506460562174149908809367618324797786711039743323455631170602043879060431141112216702498029957473615196664078506333180834079792118656787322078295750985658138887828111701523505383497692198084036306698791154492160165823535272256907908785129615030123211473117499521307361777544840829077110036442861426270134324474605526138576197405967803451772198598813508211443609047630271905170248324841948013063250990239378813433285188579502508779894161519603936536348711072791051592802173564492221975373076292888053931120381897268144155777923669164547039744206848025275547699540621783415073803215185781524941346603479922509005827367534058378723519419551284719677292006425013935472207520533743967889439930790368770214263320888448903885719343142524602596558462380853540712491072878484443065441786169104656953389944507424364597652076911140159162930289468015291634060170991152496020576548376837308031377613208799543787936912163766519090821263195879074318262868023925996415453268761306846597857240215829007693105636922664198752072521440482621260545813313180370511404257724563970508455071229742656195243433180580463809251360694392242292269689821565453599375429182242550112865210859012150243916870167948595773108942209960322695086236958592921904600109684267518718606844970195136602070613009309402318249973918000817830253718594560252587615139931652446502913644313039957498949071234469939060689461087027090817587040469316273553225930846625376092858925163376323952244132035100783672187589978154308232860649839891791263161358035407327610436401810698262314034155257315711400290881288581987764553267895243031636650542635801055394193229516297428992403711379881096093040381882869775355177083001445808006399838592185897773408061578067137009300507596038593593765147514507157645201763609298736063942991776118425225789694608895559612476373647798757331110053375702651256443777663646079449980784800049746889204432190995398547433568567512016024665251415093447476188518369598336045759550567888354976043739798426389695692106642706719995892193081733116605705728354849368424612043282000412933693797352083974356313080625818903328581434607311971479924936883205128134619490418150812453694016386454948755513379279719601141970074433941044787021422328458698164389179192584542336012573826460243431861625233900866969254291775070807062187120047243321875112300170234945974113309375715546354120884012020747297714606035069043896480069029924467742514458084687564405056501246828942837358749646230848002355752588774756488877414066461187819232094940989796940531203284919554495798696419688011207021435234620926724632437087126751352555907681547753284266321844961798742091258260169845803134763501226710562280311889058183961993840017015474324269157247282376188277518189362966424141363165145329883798411737928083251355346127300627225563197416408798245537436615203586442108927110481895920749237307446737100589347576764509502838759262663976526060653861992478325057470383687582458057307259949751798586347384706088516964138513997600706072018178230153496963100271579877459037204644926709935439132967016689572784535752884832634516201105547854392286050561044927526861748541041048388470570207258968401732067166306151608791567785815286536282563790123479503069007340557002256316784778498812776172640857424266069871679916109966304064867162151683322838932035903727315955567709411896397649337794656493382349900969552208796868857421933226842597136054629641967879242815141700769969865104473696344204747926340845124924502215567992548603392644149282700817503464962527802406963582097227706306051976409403877630638750467447776346019979642338218138589940500841476250258603866421167128169321408663234080180378431277928607542980160704324773847534822906077768741681349680283125667300483182569070786993199698459392311254669962154951344353072407180192796014073618123041428048756993840384984386001560956114824518503034104455603412536593878304468738590571494686395447785955842725102593533859639025693862232725784558815532624879426118008013024816895792717218985013286891097967949325848291678946447686355708050332028539219227115009906135002092203259099060398052258579510861870361670084863508968395725971491396893007256996336322179171791643761090808317531944509247706011494427479738655823796869685314035374495153476465074647925978288056383923340967711427415442613192563470617110397504502001920127589436817718616409313133284524205279586073972894378375504732081110271631143641830015970576914863112226306940836734669780625673926916127356218888851074421054393808811427433459448404438412147945520290038064912695118369508078786734615364196713257531592460990018402563759016693991651812021684250276745237732435349759515101664441162869149281251014023308491132506344588650624884274400703371699409097486381870606188055115010382079047772259152508379081570517965106766768294235359255225748036148564855805293334194335132228038120382912838384668057254825504468467426922634876244225111429978519091462201131144712119761321889385973401728081286429062037479050225933908326340984608165480144934054476379880460996997403851486535001800577623282370190703590559352216460649302584176360095139843669505376785829198239433458890522227097367478524515531743355650251355020282462286975474657699564300412402418786267923113820734682552894066188343992300708276202452251280580072521502338909893315469126158665756685125906810897527340919120904056997494555970545733260711779437939555890316453340364441796448523819453214260986758910660281197514747046510715731534655879593706737998682614963399118721451933384617581505537745433576853248198411682005418781965256425812774649327196124594652578215591207140908771977236640014783502036020773779325636920314405151889486255468484859105710831422177776843665115368279951586264205541012193835011394191458235750439792619308092412632678323510644863419557759436629018800212307249148954550515692030902014232284277893620231507545407152868308802660289674993938329346888987348036229384368008193151668729670446114166732935884290924389530111598664507896146204504700593948020585566778157680616575736205560710030519571415358713997822909183838301913306958031252659392832192038972545201458666267518147223360432281860832770625397133091193084925116092299345613740731816272699877805046534984183867367705049844506715107325831992098221809356935523931460560399199974652172226326128367138415476346491045756786999861014537553010426265280103921651907478194602582581825185086245919451594477031905891280472469840160362549316144291010197750807847899673862707083645227555671137154647584574276956121536210239365415090357581348767222737855837935839876286878830632893442742056849667723957187263776792269548577044021890699173007795691486719100294045040803067146936260864175599746160349462943756173732165664668782600064967610328943402341102784714563011437236351781615366186754784369910069434096626501107102118713665642478625680280445489307058158990855615022557094561368971415679878155073994777205452451469816960641339091760681564368081722614258517667548011657004134218022775770133549151662725938965363144444393097760740328603548694386001257307309395555107677735578663471056263444190433101795585673378115923526963659605850441672698818436942913119723556815688482757998721147518392743523869156291614240155082779334401945710041807215464026957313412512618853949809047230377874555248427811035096647951054705004374998043541564843191857798211464434919742511706968808305913788152900892407282190712935420994849396188550948580057451658021061886328303905611939910237495312389969757471113860327526582652573962349049021387186098225174243283233676371491758254730174711533105488436137621438735994157825865548136948014488719761697911757816353006788283988816162301276610590470670402860547570108348355837514870531251762483921538520977184796324070680878260749798483856751078555770636116686779899499670459811648708415454139474704891258928632839930913876476320071672044549594254099109080668523547748802935629720095684391133145675487111353423672735645582249280758886097823536490035564623734411490254670898201646739566793583887417649634349648131500986164480823667836980963510534843696880246210077987591386433282526924873304101603504354777271624331796919463953922524909969875432276740071760019706660763854529020552419534965074562482935634018446524257181767404205846018109325109478368240967852946058796774268138207191579893496920677718401487211648406439452566217207579580648019645030712231403061622389162152360138010254473507849670902554664254361757739476519435625767355789782434058132868729306463407107315988391288440754574913532816289644806813873227088110881421307755284062638201427993684922234698887355959048602005593930122158877373371315950442202080575676955493585614284467232178849493328417840190597650013738265512141304483831658970253440148899843556231764975220252558336063829086263173184118827009364322068689981574366700021691852148813550514461609861631836112518991772439381820100730489872510139822010131329368492110748289335352907892741407978439793048968786215415015211989125485682819524490484900141573516212040514756212637320323524857083781219951677296418232463417637619201361625811896696339656270629329517590347874988383743980883665675346214515491266177534869983995595774404108872453482420448939254153984679440219833031043756010663555589360005022952791688394070365033562976185658558200940980443153298467506339477767010971692781324192640681965522159014974724977617385143527047652166761670137190432743244760784921256004304149646501589170682193139984093702625731642246451038957192579399357286149884522053971581342755192358195187411668328886508380044546396108384839413031876199064935955074319353887101783215141431487592397016734667005072394558650147921907870126803625631488063068594024932462809944811409364576108343110312948725820580988528782613700273845359916623912446204145251704223688757185957073538203494357837641937256113468685517583229599033751481822527292872088116797117595862747251643802802716364594407609220974692514523829938116261129837377292132932531434028532146851508846759750863563763028980831739261678490936666832900739555848936995976876926896768078847796783746761662242254775109449164298764912412670249231622181076484791792838953580178697701761163285879285343327937997330232501102019653509253612485321240923061639170538289576105061226860740811185969295173007442281590902401570855490121736118868791633913336759514954830470938215686596061581080967056507108938270983090656954600692374023198462315950805524114581520312531388569734519302299454075105066781815646815617834181717974681990782257766073980743707024441511602410936772080227265194556356302098337187271795972162654473257138210443761184122331924746626221943980178349679332549324561134490533301973839781393981659752842760703058773790013682686808334577200566309127743893278206641127121766735777150609411865588181738165609579337390751095250831821001933480338665514714268621458225621543733635096320573142320177124267697212071473528904390038958547351405976522960839638627549180304097739848504125167423553971195208307627242718947310003681314009915773765643903590342639345958693034021306851348384754199055604637489128718946895868188324924796439304531584066655266759877254822163087399561537243204169669931328899564419061767772072645881622981952564200896933124740854901010745395066242168726793972451182561472150417994392681487521892738216760370356197653121256584400575685446913641778007946835819455993134467351218508836561018466305469127218396681135504380552717635874516344263137229058412984275840344665819783678835842321903473811740127711113362222441475264320707199159067448137882301696763913847088270018055842230075234240004923020350832373718202659404585256307105788419337706632208453417665937714176139974515814176001274795529240613978536036703143784966859224519735033683029191782384238613400320308409161207893747002322571064534332553638975991556648367854615032918293655091153238997982012171636310793433999340345650497517840646311133733733237984181534718671347883375259378117146904791109693171210713031577237166294036835544648063382990320178107748539486857531628551998441322275881706052842281570304848142468243283287375305669706211706705601350801412073445018683221320927197364433624095613333403494593079000378351134376105614664063925593443948825279593019740543166081593962949374016898391751052577533267912552485042623322871808690906561473817392957127244995643195988680046435313999731015987636761991405222758559989983424422398768439221778424825498157562802035366316627023201470167863138468039646135586011949208346022796149198918051016365434162088584854975392083433528200182218069792657471323294034673646319048202964907821961654795620396787643474475779847189894633228606094638378346282246403509433767682238449612193161638866741048895962035064340373487263382364391040341109945086062670649471144522678036153093017233221875253953425925879881860474315521217526573995082763383369962765334782075132117192041476737928957545792900307360488246781763486429816529306892680319585813633277034476943114926889662095931529183497769316824817346554741724098937511697494860234261534862526218593102463253321161715713603211136766432543153739834450690279637544834457633367099401938567437344908535898340480331791177206854106077903310947332568983612563145738307580502385104363642112548043181903582834451898001615404939221817743688228191640589411099597465748852203855852052237202155173713580244904605857371817134546801708634115704071131033910540702093047258277174309144032196008006078334948092957455077226499079893405590382202345987832555602654847103972326759860383166348277775605473758383729665284925952349019168448722040603599496945922025326789875186140083508118132909185868379537202926699352664645461735242020516917530821433256069454543306058500457159301396587741796114146134517161313524655541679682662177644631575024826573917741006218283940040731163421728681547025212514556890514348295168905376672884470664220577148993331546405760074073526281529376230111916137325304958356807114455720722876788036929518858003158576967538790968567839477793366117545346542079978935546005842247158610720248763359570625350366916112401858013165112747249755567578927441952500312653677883641216411833118526935461861889518818863148926055463475523151898689296322326017683398550256317828262963364377146595830110223750045999129048886097489220897512489299976818202450007250280671943759493881310111305459629955753595411768224870291582650345265374998905901612212141523252996728002344240945641236230137650136617440868109455528601280422067063410620806113747660551485378566547800070282831219780021586186373686244948792153624094293401582183420659107151659439854348719211731114501330449598380388937121742643136246226185280467896373343353882027010416011052831803669907144518723087934260217352895979160643382289196800130366993639537510364149198831653427219229287430862277804780297094799322057400014018609248423726118032210684182846500778237741153911741455821270728289840361497986026584165052618959505959228444156268008061162162606632978072826163300499840454629584460152026128888322650176601292986188957310660643677689398634153950644453366180233723879227702385224709227164332196008375026711875169054836518680863213367007720231719432331470779767265988811822728462637284080790357465121271698546125245448372822305415538547029342283139717142657768509076312855333510454265059053372605060899459461098712262248267463095108347540417890896413043937910683309020555886831075304782732154004906276334620457223374655479662302785343855644753845908188383937073682101424010312042653653721374807048803286763256221572941095002254386278477333967111289200264097813459553566831182111809142973167196094010341710717704347768559050484058258107572674150265260840349339946433229967441712707474344205322176878087799897507728527646242992656559537119426152808097675995818917861916392528109762661327203898792277604357174301242569063284516487965425157728010928944772081415010546041277246665245152175510927050183024157754042732782930801517342508418189602979888843250487393822939367851883667306393298642408411939340198445060212510148639169527650351075550990661174223018195133798159588032528005384711791319793937005820478733808155764699643859233672818463841178631249766189990219332150564602243944517524608527261360277865123749019287552405285273173382613888522664024598075556095108793976184956694308710593635022132595122641874476960673853036605288905462661778496926822377316343787735811879058583901023450208652558364492307155295753314040135135388254222280101369969393872390016944649630190846457291782993318499969386066433789519844389711439862185169891135971210365918051632544951509585400144639356947927926739377065979247353315847844746406407805197717818298256541759753966281926561331281412032829963066225200379224792671286781045737052753686185940010269032273441783955570830477426683595253183044759364568975008416067235460234966465970692220225415669685449652200723855124497016857401225871082097564189483252543292083214617118122691122352956651423418922280422666642872021185515026101678874645760796901407909167831214779782331353030566312794260013078336663646763455208693851624363235403341031384340937132058841580764366873011472978340673952263155268057538027835858941895986855227886909633884112854056582699537814073312216139056196794788073577039574819515002372447455805587216906070890991723146101536384201752831987185922270231945458127688666428704934897974922875516277738155194354246772580115814269139484963291411656823325792874639457675390546571388290970511796780186338631277942018428730335086186187653923248837332499531385645566997292291578678396288997140965823406430034228318049106457497880358377341520231056203259358369574854658664381195885586964265345531196219433241607766738884768975105890175304053741052933415432024567383717058058319307705086402287450506759387280195449375698659956353181579146659677514279943258602597100803703526277596176242419869579902311149408093933306085776285777263091495671660845529209728485769887679881948857133904888459003261407894592863616783313002838887928626612877540454632558561359175697000737979933750284657826119192866274520924205621037650741649897936311406304610812731991231914440480268383849541552447320779914846488051864023688984096102013440913711700388602137748298288917511534731905294262444740058183896748775465256944445832054363446125033279826313606682572868487173311969601383451250680871279829699116248769334197348567214189302410728941430926756987543919873361113904289607238076774842969409247939520331855407115212066170802421027808795537353237698479853129142089550640951071386929498203812872547399621840574581202507327072784827897230431819150596107052977833993908600641811533014759784455342919546746409650824093009843794664998936190017572166018207054644679664442551091698128864070794989501045541621913557670182880146072816739995587409182083619614246092675087418795681423782476565186558432872021937751797543457779251087120517602992755209451834363442133545378590473789348302444856276931060531337057403844388826785926733454973781600656089927417771551531645946419176229177596944863266421722149537641297337806007285526448061965192633623933589265729183641248381812496540217350098103711918306993608745940122993333048463275120246354064819984149970868234721068947060707095988341285277368279358219116980833521869400497657975799383531128489230516962621438173211351148266133912184445358819745434643049044175076081957707775472539614524587151687231723671386352898010936715680543866213483461292121940364180573969452185890618946018574994437816786737093884273643457588700010823078208051808742173778562151956208389195284331564587905401101207798820246137951149042790360427417687927158016412966610703352355119063787512555594527375468115474419294498310293891486855448855641603732495137622021273691056184943709801108713141251931372186739919325423525551330836013269753524383407348269717501229465647290016446966572765954028539358819507524673775843082017334804729690373157081409691224624718636855070625761275677676955379790626224317410559515232452059740503301427581698517579589826244956677016704660778325539682608959800752836516444174851730535893682513819126086418543494998888972529233759956518057782834359907132991593171506911683416590487333376493827153555587801689264426572935976445337970710594361072298482512000993271659894425002260004398210869366666887589911120108921640447631519045084693439960108735144033165372702219609761295949717664322742264184774500919563666719609259122437217282518485379525441281688996530194346948717642901945306078328621583622671604990442409885538516977788234280626066066177710749377407371859434117151615880554449381063275502863041635915699308659964680142239917237905583229170583809909463493526266114493964603596874987960563473304714132917377145733792311719122313170868100683836090241694747155166721268531696197046277094639954009890677407448247952552517164493052440836299743694170668915224340815651356892589714917648308045108763033587169225162142777201233170014154117071343179595208626134928495374347267961682663286621571706864506663456361797717699101514289650947989394921042149712850366980917665410235297160020346325899029751306232217886418488458312546395482947588444189240826614676531997069580355441001801401074348694982657112075844510032062223192264820875035382352436128193901102924256472923102593930670371135890939874186133635533534946013671783800806836430735299363560861527071861486150975559874968827622109809397001090960591532482267221712926665685260335086785224533795563669277253895805704695648676834005271389435026466648787778631621969085393691516071685179283776771086763781295426993721991309925626350016346771008050591092662128455721438279393912415827299942171130002160473547126102948263860215598020933148226597004592241515425490739799753772222539398123768753988637229372970880210112333311990951189722790903602827296881473218210387037976875033010210146073327152185806636719186703788489767596304852971437740292476968605036433573842813415914487089621096922527533670233540188579657233937080026518650017006965882120084494961808995289135958823020436252870823619599960861371171180536072617744878576658068223308783505095096126441622567874248680180167222792624215578498111375226272029116732587435025556074221228571707469442407064173158682496988396874495550491073641334777186169419710752981168477144372083916956305380474022253788877000578700369225635547582715303397211158722750766121415504677642745266982429814343159551420740926602010828213744749548561083608773536625557551724531332854959203257958630738533637469029555229150673069710283495297362195749150156250821578063757141554050506145607102303332676356835980785173453767243990309165659163184379696954652418135532780378473639629963590536704511217963677251259003857089725088152884969402593453284206651484770554916535121164458206189896068807952647597858825899687145867805015751196509661030588830544508329943471107668105009470011377648325614193749756337895588911082940922114907697118874282862973292258764913724533244538755435239477898727892365789155238680940482380206874684003322113917573654969479182265165308820305862896717939060330511448883114209858387370351628602081709659793506016364362460708075300557981712670835218082960319112488042828654337197141697866848865314766660359970780001297230363801255010946008590790475372027713124214560816035708649086773921839059617863614728761524928575846856152870878352960606414483923191752408785647159599785008801460087598677685552097849830378463042481003692134615351202854572214729670786650272939761294487190149910366116499843581025300485922272130564246164970007731939019811957383648068914010827204128169812495544353394591026173693230688013536495682856295562213406120995418002929259470974505224666306150542531419465079052164115652379444577451518342713129774120946054066322745394499228698224729149004440637609546239953874203471592243697189101383177549330384777922722758805797571080689875207081337924526830655280880703638844234578304362884647697912927783870092702398017691157198751582071445123644977389208842326507473672885012119420009626613960178358652382151938876066591102691924093712806027405608509241252300664504933550238178758488135386366220943803660883160350322395775780282178682192486020170523617186367161411012433980223528753016267561939091272292235356201926020868657060720352012281726340972715610960704005655294758955065961214062709189424648145808052347485432278600561118494046034299763799355116416968885986801131361402472174141564207299705506442370272565818559008696585466301815641209355334481171270189053472860064838298272524046100416618444654996337075336778882944240153421058981744384562813866393935060316927528529465612727216360028906390598201030725407195211524078120597272948118601351707213861857109517037800861338532413806950762362154887073792410633102948949658191013931757183461341875891139784285267401336687719456782291213920024907021409684387974056824344595221355788755725963574805863765135419611661226777660584703222116732648223586128252724076161009151333552674310544441707870592840770797432978034926154187479054910242866361601832504882653520391736630422463499698219621201116249835053705327303135788043169952269464612662656710688267876740824729650000887212529265808798287873255435171418975009666333192653882911089544747270915748905085371977891687709233652351346492822923545826619329289317965936725090407256116510096465151517545856684573559554265769137234961688037935846864469451802897581338276562846698595209473153797890794987325598041738373187994365715257068492687608033960181339113717174981874708687868630974081578166121229091296071615949747231701132913285801284906195407088546618006750748197175520755049387136065941279168915509574819967132860488154676999793823981953823664473092123240168927010140447738567745346421206912875054914504673092670291231028617062357780476029168467063279303905405713536828144984357939964355904156449764561442505159350169393042263711395344279270224296056485592789663745614213898708773188334609771929644017394932740393468596220312173214440950889535035563906639290641114803391286182335532879927267806032907670521292622877473785893543926963449829708744379358331586502474080126755637823568030421211282701302433789816699699657788541559307468832817872733345826182373457005551967405942142928182020712816146243024625009637304190589232704074863512689914208191421044378156746308769770841093173475712163245147650525190634151195674384088931484174919750859927814264288648141987175620687359445533025042696636668658533858935434117576095463138753305624440228816887358660793080930373638799160685815962404119167887966620787668037634828609908683511794218467537175621369497550408377369858469980322115863051860863234260945687541839922311431367337328842803241525378840092408615203198914888544234207588123612034280895503780543409251589770185780426263910797431611868382477646157792900338018669622799485261479683404254429316782601369584330555591999110557771410083149567892917914281122460034700282419567487495198394994952385482692162347589053503684118217588300395272429294888128400287475172147672762038873257659218074400576822799681060185061150764409385209292046670551916877068204489739231971313744136628037200616753815150625396297989917537086026339736377340465033946954954465306286732348591788627453600915300591433331525285252363413277601880282090318870644519954480855749959279910633651571199405804674149289254053979606756772051607540927774881219698686644092672336437410402768128571580601564575559943750046286889055718174503052053185259778919779243830726080518245065563543884116531268989038979653754553928533728993188004378257227785745782893078616730656579754042136461852786215408436599794960171411726073353226822551358756480764928675375704213995586089140809604209061366601156007098592499204414083769462631409431731012758681339500395460771283658939365146009742842485037989362528555925044319948988331607462127295270751680543350789990322086558236084023860257887798891922457069606789776943840000400403496834103384806457732245208166634169226669502763958519856383796722261309188811634648754140116004313539722619861322228898957965460944345516758029857814175898905717890003307674166879840607597954459777782570888177789374629608100297838885255054356515116861381844627456704130628104897206673125429607180556166022070432947489607711082471340386089930392164048995110069241915546879467932273468723788667317205653236000863389218094046358925854677893347949903840309403407471214509750157056146230632638628050441247689164696879274434721120887202978320748505735992950169312288492035177906807514871720235412612699939329266663559636283107531234171288183959832946556549090599650148360836563334820503071454074359735353728581623272719118964623250557454277396807778466199757710836745198066038708927991253308840503149743560626987490022673436648259309843903069032053556128545108338111024060312384440980142963576433809978790912483324479760197628982738266139531038611950311833566446240607982919184976908590728088640403927731815187166982534774021458944886754801923292204710046374018205648529928919472059847850531266689968510991853060587398650298809958289434876062011456917134426368691871067370174700447775934462680931636538105715771775164352493875412557753777488553610222381357909096416428633794991364152642075064226430735880351575504061074015468312143039871231353029213914249743242659552988395726636124572259304643625318576147221390031373501047701476152113888525664890396308851765983621162221119044800215466325543061312993602044272065397635153140651860837899455311841559885955300572271279651681332748129634427238957089708558454357111274672298279186452536395996152463588530050331656938711290293087981751626015262443803176607399435756541954729567580245461589566928281137595864791153800178258629905641304689974909800478994923611093814633172356949153978438916066747873838876041188987367292951423611412692835459961146511116622727066954532512829006610692175859048933074010506392667516634386744908367627632149842399445290830603190787926202875759551526439755113803178285180950178704126875426738283966640753802323391323201099165168350673450421808658705559684549762920921498949540195087838412017291837468603341645559754193743655359915875576648057498373626126443934795535954092833688435256656727097923221203900725818781874842366966133984777577140191131334925319095173698249226517082186347350927124131130894435924835405370404554139393972753476546089309536463871798144907605574993674154382488442360495584641122227309016696655064243363779543155280097968514519690703737846003807688394123410305641824641093488074606867720204953278121908623936381935016744187467870900460203881089127757916264383514573809393231925131383274682104393706562758231315866137846642305693212561679377300350819407400991830213567675550541139145210110932078959959956944551837860133510532749744410893713263621584281358020474304160183494521594156926383218875058023852261400264739363427442301216504803560256297115518410192851802104217392932035361143918896558714355593524800099630187560069438300910122817663273637945161321466424177682641147955963466473134320949473935493093963359377174417702518681052043002647667877732766105935327800223074076857218174968905992161476834922277699788126577183694442039085825060917971599296733527482398054603863863684774290480042418603202766422152584155335502957083734252931324486809057997290385459243208872023645798538244817020106423441594521821029322741963885139815084535376361624157417000735365192369290991451273870594033663718168640165022384486116966502559710678275891854984731502084480982721121959529230800865256637798998454735493026917299386015533370973842768997536656263271716559708931516380038414271484824462124151663371697649829345410420695153854424438648610285701090659110045509146720994562929120290758538826533448150219305720208384535242634270190418522577694395859591617190779507807221526371469767810271597074996058600274040273360347084198239451504683866050462770509734482106140555206284220512064290441595115853167887239489442683627598193920067016638944794245528671002412078696205854035944970426446058420890982992546871316019702025553971113781817499421967083222128448886325127062228538661344435497252645174449228686749349580725313844321578312083506158701693574407361541209951345750455860291251126043080600281997585388991819873584699702134622460711655094374527796269123502857285448124417623281048508260763473061293475891368537127960923979012281967399062991449517732376745903858870948946386711895181969347452426727957370240121632760497946442433994590035744902946544314659498975983766789037418727832347671230854013083293942985811183040526134091667780593780058393442071391143099650887386156003101536707851562804757536416967433823275808175802192172249272187903580198110147067477589325162690750137919149342235431618882608113029034444603513155074910837899257071678234739716303236128218003476350630891974196270901534619441712852640170052935143248614599437493181822223703903920685829886321823221901125928496125330581076806430502876385997273024345045192551727504705286496656957642226756092780197774118436707771625356351257039763128994707322636678039955298033201104942330613533783748309479181405223585350666067746929808225098859829614763272631354412116001337905663678512574746768123722713812694757905885243338441586508767599145097217761961279502872025788018470857244398560194365875088383563005040288720304808111558237581250219057568921413381930508586511607083957938421812320144827554928136074993087070988320075978122802804668899896589997568435915752688365230249187772963289449895103174072131402065742150918019717235178624290250835065008487889301075167702073448647787199639489623386346984488879827235747561699821599727941799867083114756769416966524308690274763056490206699480289925253135373625177236338904044935008712778031895082154285895351667263680335487985620873592342804842247165979261674705084634775810874643115491668250045029631655612024222200219598447866848658316081071257349852267012004630571363024551633760550004816294208850818189332178657347687848451480017080027030900620062782214400163412288968224849103546041235644943766396235440257826437140162113737629637432256416776275983954780986383587518427217982080383161107612805313521592267403925625217266762805430661206551483847070936142957669775189208571776640591794737822283793599879844760948918890577546558195775629882873966591690693139941960943647743169408439601445397383811379499811707344063461678932058423539534649571581861332480236246307942112924603647903594957988633869137887585594183489114190393433840918940776566170589030561884253854166347742241302231543422305426579651816782749031230927283032730497255813887497036882688832812172909085086381353628067762868633273237917328563339392838975064677373548811671250192375701717702235480368597823360413453162420765754063203825522044950355204362836706271503575485261998621373304935226904702225900987934186050211393640240862013505802373351241332181706106132567273474477242792891605923482732250193930226751667522902675299610732116443570603653769414224814658591593697201863641993071911671657232515691389817130537725540072789565895402409176638090800701933008452377720596677949938703089949178427579203861772758526998998065225766550138685648065373155676112762475788513708728039609639410288120994147814578164981325440992810227844489806841188012010834330875145304487129310812896230268178809149671578874003466230791930428195218930354559060313528588875432512934029718998340299399472319848300244213306759874132811341224636994199025332882262974327495287433300836440704099203438224827090918335278824168778422126319312437225516215138967063486615544548821945329599760994257921449923173825309422345181622221169466180134248142166155169633540607817605113694150770626160757657262329730292514656435899949944667327093995019911087872899885541416718806859147019338184596314848255576421945551466988151282446388814102758964175697977122431105236381515123159030658794030628810577512943094778225615607559365529878199631045449263110642752717749318261784291486585406315729499354207049452145717950820046822179233946627566177935025758966966313034892522115164213770320737397798352707743935224352797064859928149178869145510014571906549440321825590945708686415473377632150969306458832752929890869581146146873322648528376841190988496849515457849417587921037275730693966596925468958299734585162975853806918116748038582404191349170060162593184487189148218292837861787252940299262163825679511651866949078545919711519493926876642253354070692487146960643633940786930892210139206375242912421232948062460564728868423458398679765073088582317079123580896615968243639646830100633535660371067675699802983310035829571945772287032786537564820369155116863678224051141546109581068854217948716670936158676945417573960396642323534725455065026722210385509651269413858214084330787895182894965895777216672960455477734688559372000640434909581414404770371932813225358103227753735124112688593565121926853010812395063233737776741460211045881248694825670120982555416413407162267437232815253284895451574907256411643400108002122353649655440549727271640826369791397788482550233155396150062129572980067177502458992265556076917565564021922814479996314911243165261513728230375903938913617352301596041486159352206436248339105704173634350749955649998581054213297584134439545379966105947151899155192801151304674856588952640213642586519055819647360881485554002620050516379506750146686489361752511679605061354204598376338784278233962886542767793386965863633441446443957158234903693774995500371460000803819615099173978412776937655675376356696154630716810567653895445259625435604776489829286434421724614349380459297238067595718820113909201665880580588356431842087870077338876027892257181664671254207215990414529827683492983248304867776550431713199292169307639802195407370753953768983536485051927272412637030948811907563743058724802671175126164914914879622491117276304887174044262449223816267737865440340223276941994550154480798966881382484722738005977855855660974199718100374355433474635786423967657519254885339647337048746924131962205400469432805805368690997876049190252764664087043744248524904886979720523072345638800374063664782271291502667391541677686565085256141901369080189391865095388626801964586068005433227782153925500501731333282040400903024425692149918200513084792803527320868658653274668569652709943531108818959081473522507726190133008930941122030490517024026809871126432187181529291988098298518759591093761082554561001856026214735313481665545178454368778041285175001591635435274137562177514240902604908259376893177103141353098439452874852235199917788876353746476087772937379843393475546546321395620222896032396847190685229283920749325479110757615350942945690008537069379307029988362690527662677386471627866721144746617550732823294107610401085500324884632993792366900048809879295060116846558777196755415686007568038293807955832797726332279035550519472863306566908479849700153764512054491510018353590686926928418437406367731667664100875677670241431010091808739757363506785070407631423207927987791098170309720079663344172026118130079962426867884125966983873909857467082034162306618381220056199847211755465954067951964093901556939427854763941521567198209494178409850965334820846455927561816242537331629464880244899338209344184696683359703302271255031938926548473067710818830568397660030880993713147302945591250197623421147577289489747190024391805514390492074773823910015237841402053997802602944691996694893662203143572476247797664534958307742056480921285333793739060219935684778727164164732220017241299832088316450113255762936437405890669822826300082100318881526014988886069743493665615190452082303595417592746104429753259948507647017105270699603400904799908028486273244719526952602835468537048441030057255973383207557290674725801963833757537146339181027413048521915636687547247278996096257442337187855481191901639393892828289720604409818035967998550586355003663534140543489588747421269524421280268837043591614758728966695236566517287236832887257164641922176556445146094569779138150000258747923115803165586524712343254582219606501745691280579933721557521240788373767245339996167911281191841149465266946504259146857068280876236974220053329049506754330273897574025359871919032079436211306565276909315282508156920314437943482463008248977054696059267038165121276737762219550887949695320180340875690149611419210871094925474169361308347104457570368903387007808806849999260126675044092755583662218777995187262338191400645533125344782753270930996807517270380316653983643987243121694184286382813458580838518888389971505110218955043273851515425896491645183621576352846690522711861068141732581481116256455009481674414232643490166284890282796135127841985364612110749066445993921168302863017395184974858241773368161984886942783141381855303415936219861336737211021449935135272457010841622532062895535125718306106305171102396525348513092319349434262657778629104816238128807916859860492725982796793725488130531690805310633789994137255723495631926259991698828033603529612740995785521824647714655351179787171718322265856654313977874190266418599653584340343026537184936521059789422259843532935824381955265287054525292166156789236143888807765074698448024577097851534019322177380521290430683863655109370163921843209277576443130780798773441023703577466478467013014283587734303586172837400648107915342790875596041614107345421472301268820372559972368078359726087426827526112793906085041820464281561012361718875481784009816971651062129871984970444389560967944254999434439999277116764354148703083864817724710782012311175568062110381895615877370581070145223527833444389652567230359303490183790302626746997645594164454744894408446989585936599972872437647400307340121668410851015937822446772276341888084119908180708245678361846591447033539755770198287209080130286051259345228539359611172356542908436279827796980638727107673417204292150354756373765028340986956286708903113321128733677524391292113458220867606462061842350444095627916215393836377039648220778348735359162104097579519412849123992816992494093180026590338818994822856616815670378953317147133668066722003661410786437267717023064408965919662850558464025487359199469607746883280493423710446409254700100521330349565215027146179439965219165048672185671147426097206820699629827528839146131875899558929730262394425864591531711573799623209058650995030604895603443034806290899902719630637833595311357284891783738018158480912090552769848629405719425143153302751581608463963065806860494180208745530921732475571942477669689525686394214863753757997640901201807713115725372105280913551941188025133513222895335600667058829449924465580296085169073351109291453774972094037007010591906015868645199996322393777078501015073094991033362760001712229400743310515295841796509445307885967150550878185232035189507716681525871550936670488822030799495311204031683226618413817334015691437536562116521139731168373434600536455011743613977327547254168034808448269607316143365593421753019895346668836567453869623423404115356977115713558484384693125377188210618464924639272043833252879008023313043607984129448124744359357223195970059722124460497594296981298381321851596044519957407788928258916330849792386393060151699548979209588204204770477570701438281906037834810636300949969402408458543064926669914202362701074418374260941480033410189437797144360450011247434024835652493094312396835169656567266179627124188914365279611184090068335102941834723391594080573717276261244304319838926133988949645982895572725774851963404251189616477361635582223973264874208822575839963100699048367949627948235788219158282393501540182784774571252288463769171640278646458299870385766547755944419527028444751776617665223720222231349059212878855694715263880645477371551725796169715602928573075768333911374904554709974426155811086595064018506918615930160710250384237468214464945738677810713909242230409831291248291753730326074664284173986600211782705162022937937615543819044615678578400227046686688534831344606876040902798006937077436749648516770487098977586692893089744108564913552758723779343398877959893634444444863792066642814885239151295192276596806350487274909929386494947162085103694224710024961110463238864392543920641565821775428745605134464107961094781810309082454980200684369647430873140462809089025362181073773469953219895133046842453695798957062437125005144149509279540632693772712323033853831341006107491109053281783132103664332286782575564276365415740855602818853743853958868900379801592178375873429647562950629728833859481539021335439334563882099011576928972487836405162809364694858873907398350701606636797349925368062723549807549677112078911395948797169711264686959967674768172779856154825241748261350733379534829490486549191123234982978029138650467587022406422675490958389503038279927521026279040878861873326956038122344016671880150229592400266230258580195210626424438665017147413454948596012093448396856500994402953940804196671537988425360455663407848512003264414213708600293065012184572560112908327464063204464722649516326982773164190235605242790635755627490132033929842932189483802937358037499272444100294278629558037149872297412334014969152210954832200670210668703208636856149998014453595041815460127959439092113828561740202906872084668048798629987040326278446747969481359852534307219378955239688294355582958061896809196211583681282486290602147229461707328960841014679574873171042971831373291040159587717794447662145113701144361647096183609283597043262127302511638303495151481322053349500715131007560473078398243826130662911840680780000946293856742031987089571728874730401713091569955503013783537937857983826065386463434517621885414824292334335531776428717281646677249823967804897987242123890961126980386507671819916998465875354342429579685807749145145417063994671968662888016236585505484306924529386799828149107776920338925544323494113827173856800671135830517689443815862010927004942912239440565081345116398496509837721298740274867348719736160617942866755675470480511074928285605100482936207010727182428454157910059922399779524383799258388724388681968253078833747496515265341669522952083690802429133102574315071628764121893025560661933914461335736253580498381459206804141045829468410666767519217375103130014459954971458982811741864037108215923627135232237548723403741100745833609045598952221078998240469966955767702747151354085665506377288585555122831132411968800559229150177485042913328524335814102099091790917108714952589603571937576621357333170907235754489682045800687098275196299322845207082853759628734017906879229085674760507294117177423180225602111568699471793941256854724697704089676472645101377897260349438781485046357123061769501972003852454640958189963089308841364926649243535042601825227118179556281871964707921575152950107126119866267729568075451931430477856002971449905362886612434149772631442012441371607704888649815129449771188107223253684294269648471173885498722189996298021887083652490186628879869717748430706101554516402311786471207565186196178007041143318721928898774540288824851149305815521896129611147105816158927491057240216246914310044034788240850651554049683732827828473873140341175896283693849746093799240674838375882303651963652971880596183835926432413102569302594139932302590274518721119076232041984172215765918265398042941255241359914018456041363214105819170697875082746383028576809851879097637999108770586905829247834034816811401280314518083782212206412788273362933667339221393230524667528653765355975995892017568243495556241700085564912057271824287828881766859826871907692696431117282076969522613400046526738645240535572462263682675787450971921343419469556460220596121603622015221765555020081214375850209418533804522182742585923566024509447188213041649519844134664868109195574763043624760983403584794940203533744414501695374085777310049523515314696034861199817535847240728324917921530594925809574062720332525326787251618772610369640627313827433266074192275430389271500471472381287627107817797354619056964013630651814859966890772294695221494720664288725925351338132866642316043109284326850730954370527764059782869333862989178559280812858741027646194475406416814964054033347735840485612217305263200030461290578155221228219718929160744982220273282907395028774587055764471109239367873247845002576125302426614649492230483300314988309817974488662789527991895061341422065355898161007504221001723376104212935904657059420691549974110238891969013787711299183979027106287324963119375941944616274196123593853822956496380404772736540662218533615677938192966098175362770545155461426105708775942543977304155318929679463390181376296726184351743597857070170819506775524933315893767831426304519056817047328530822285694874454268977472430136549476827005147983742115366792036372233688125506155945726600043647621224028029822653397138904762436486575503031619044328481055402351142334377733000601017816403748726082275133873271069616562451480896389480649425870613101232352168482303480626720903410009806537953272107467694829960056832444239424690261134369880755587008067340490700793843494590316555312008453175860589299381764467466362118651848024895761475159236575353050021979650919768187107183035147331478688849914698728536689541430294304390429661991836296702310388625884983804651608006588750176913175470932625760518850574143516016142928565794346899065904256392316175247940071444724160962216367546417772561923665639724882895566529193238034568058478500348570076938886994465729172945269101886326566318226707950291532572164329036262190850910909825990785293429238393707293300982770628028007375013768616121589237368623272885399920364809090830359460484880439363719793652389359137397932035869081485272381298367184309999792821043310234978997322636657918796672712059811873279626510629150665346569469978861205035905946436145691073971868594200049150690325186195725245810590919117625077669534580307576611661890182918311968700535902578080506353335075816433136702691378480744459193686134443514136850382959898080819958322018894157618288598928343185300483410087131529426934663222923529777194125764434377783157858014845826157277369497124079643311421228444488941486550363479357881332422140541039843477083963028012390818218700496497738073154461863574611367474666285944727591880390727902393595881886722769609533346687433119189741295723730370353100109518496357517964167513075335496055773671365217551854074185813546773644040077690978529567169768387968723878210862757568045684242488939731478144732096126159711686613956862280991286805331378109982551225795441303283880490427167278585330360814192142981454060323345587905188780630277473662539225296267843519304878472619827553624951353844541018093702487218729275553443430055007733989074722791270315433563718868795278737619141268963620680761244229386434321820557044728688390507054655908994679568610388713595145807919224590748936473499975861656037120972375018249368253343303739367871331719308816668593903377147382547562976688640050669121072839477068620907672600250984907489326462839988524740750369217336463608158786972817523321615688044896510807524191540355103993711804057128011167990837597325118470556253721626365314991393691381748844333686421176633852240784945012447213640799384320589353762840122593408379444644649017780280958093027987791584726571962754559965291214644624918156881439930882010899153282079800841125840533877024325137013916233106560002447522321326564710352396513191888381843370233933369107726207119047937469825545855353043569693722406133510979077438911511705724312715924020328542971461506591222923343421606791638913113169298981046533581646583340477907939306064082496014219406139899050097504887938177556726119186693299121169786146326991917059112106989418621222106148894334306444792724814993352557317866749339359115064181998140146222264857879085708252062295821572517542398332313734651605308516229328556581334682722733858727834262007385151730491886375718416089260871694848330595957408388253210180501165441382803745436959461589640989606630033590183917873251570713059022362397895796752861353113958541775221549639535241762371285393493790382909555399080567467509272297503756819385186810562094790826485007275185401250843682108506580472592196679582256852403821199931096830287350707562030866099203229173353309893586130812659965499871140077188939256648633966000934506803877888747473344894691736006873158622490612677462193026947201421125086300173005378284422521677041575280058653391744464115034311084206079325508936685743247848376879744583090287507642765229846609254872033225779664000723321354220599962974159755806718438993553627481973574733519551423516538014654382016644371600540207677084775934087095533032908123500290664134864094152484210632327974715386750375321647067947476161690555977992574594314628722486504283707491302500561916003909140187895793398038524192590526731606239786264742464277287973734349680561140398438895033564726173820408737981779785324414950713917500456872233588179210050000127461588522461856985898831191327935172470822564921749173843067642513184008907353992073714494318398589840688051153796938661732771151593403149235807079522801261113842989594245364244347014900883557018343661470916648522380306115948051726093710077164189420661791631494160446927864451218027719140692437733277109380174583305579989285917939963057640552749063151675942574514006932198112832504002969820930874184607280475149507854275421564468273112014908656479165664265316007696685810300706508480133101260966783721024911146835258666398398159953868918910035556571380273569397743991345225986774164309325285005142176482513709264740527096754928917381385073275804904591932311068415221604453028123654604662876087616607333773291721398288155567093352968915927871473770678248598987253878008226380128580435780562507431666574280650611082110416707515359986363603992686044035310892016846915985940946234345003624297218082345130506835342212537721146324115227396477457829075538448095244582363405933067041767930668663199189224505685930376305200391418720741571414162511111464364333165639830065029124406399417047855738626032097855307293217090971395438212325610979973456128635103591556976823675697594784879023949537020207776398108356082597505370522792671115928508066809446379003919056719809341862923904730275906591138733177588263944695803156777547294368553162904032971486227518855040734606486419924697065050316115943004925413853482488719216573403047136379020039252179133270629582342906937277615950541430246456970841001102187629199401272878332125104630529752521552410809957101367624934277786261119529371151946910227878943166064113787047877669348206756597429932947732857546623481664732878023255598377849016075623222715546073112224671651223828180033648763310784932997529354541847098308074348867679909732467583350858609105482054940635475589152451126358845295281631727248579339588909141232461108062776539716500478428149481673206274706838701023978588803551949333780654196282869998352972628608695776406902408052855369466798055729170943169827498566015602882355527146264918359419770160005458498414312806047909784801239605099343914970261644337636948800555006462461260401092586959008821016906115745767483432262783948059413169801341781466978878892034889666509019760402006387165477243706164041912694542803756946676366253115005984937996899363863392373851974751765214889382848644724262396912368527372606684055288691824936531705762733426111515246474921295320475535744710621347734643193773724124306817672925322110656326909361576505121889285793294118500670584050439910046205345793263199029428258720041141190058332601758930879713055542829830376417049214539205471446740009977680522137564558196808205154180375335804877856168242421455211474288792492044866536936312366745251492112782751692801118109299471993867857854375045833875595624490097542674449681876651766187103048883001986816602902787387728892588240092676501187405108456278396594997391094349362757474057191233981261737086698056922851868360741378587712962898358412964416048695482920363247428006004956010277515330087782243036329975887542092813253744027712894917291455372787180274239077531916689623952299211866127929733072509377910603563423481282435870824039507652388905868662256334360714912998492285580269738955249241393412441742698630856458604480571699050475053277564020225749310260094165971063341607784855169952705747607802768688198473734370255856830091643173580400225553585469325570447764867538452094535688852629712088154611643519777832102939387394332005614831570034932365917002513605619477236592042475993186617133416145158855413749367586167012596475324367791341410756059121841957522296323276663004906589295061408828349523796445330615885272464510722793601304688389088091387670014865548904414460189838730027884686635850840265499579138152453075540695651455345547343179635544738804898396152998821583601175957006577573129587083667481742439449815015182252083842166869794660117782064115846246621042056442514531142700231119213083944809985413746093567017828171475324653086180854652975501235056903536309844370056433975301007901559608500843733026378834159408850015589686344698496974586527668222796603232228798973635424446956666192708204800452309189207832086692751477317089750473765623403746297610156130202204018256367083316181462157236495950019111204133795971448172710402199628025282956805093569117760514224305342862804795706687435722767532752235463287933106627655246381667283780784611701688500355985224216762849918517198956716926980647212401542293705618353298356564572442964912026187150910656057923939011566099817598301487827901549279494025507090354307576194456710012606194883344053377630624368845405176586793153088873884696863954942479404790370107430562877550082376961588214323299916306547136127245167616196116931385801157576233575000780785425564185636729633672307703956709719903880521789306572773164648057688407899009726580554743527173826345298133415297051302201519241377268823674861275570654484342407292333992155457061035461304289533993063045954382027372312413118798899458792159940191109171033636380215102681909537361256063583794865968574035287489255783899177657386046173963121955498922212425510752142064253335168324482255680836273692798955645989072202385334502041551854403180374023545794794308734812287632676372526537816216478372838003699650625870785915479468269212855341364750852734599340425295450552368846792232410393574970763649703620509135726615201649389963203014451886872575282434104517591737236253285522441708374020352619074069066996088286669374169748276893355129530612224901283216616795060333515001126054743975962385597947104253546261574989953291791790533166799454560672185459117116942835124326226261551798164172927627409142934570779687036726757396423720719987984440601907146122620937386726546125273584818971987091570874637028372001919586405095316960128812388959252690328666290743360965722576150096463343701518189425632067541551690930195780108078322995026283029532248068285367783198063971934416762200777101985704701092476675438842834201493712095568007460045667587040346864246701905026803597434199646395075077116004554578123328099446654028899507500079251821470545909669500185854778322789588892595020360573011474000481337791980508716937613071811679925136394062762191236954300620898552206270582581333293359959944754018980040588187376727135031702936053556948164202716639463805958799598821496817321166340580622429093111423722793423077009519623384556462721276865211185958204127147291502291064420050412759077260290019126308813679963294871335292726418931995701574704786644707541539096073272555142814916132736401954541407946269018657183129175078029937682987432177247781304711859981865919292409544383292778429128704877647586072357708871188604574100385531087490058574883972892884351699380204899532583979420695900165401481845322885123688301207177507221939430823013653359693187992772893871697238433648911876812702933438907238579277003473710890732932877322276572414371596476887726887623545436046494468789755541997655976959273525389438958237837926576855042660811298926854589125979279863545031822310175354313151261891499371353616800393778923291434653634867514132367050699101318796926553430027406391192423006877410898081741206529650838683647386339725611872854576940871372984881468481116735351359139213472576358290929038254758901734206227994088250342617728303891268965259092866968472526408981359216360682578184457810741515108563805106941580165114595303560928594203807783496522536529767883361655563364042291928892917944163327913363426728892555537152708760606836278429319355816584588709638596394011941669999296965269654259811312027442805684901735829773409805032836568863816118442880062644330358210356657213368923033753303941543730882250063989888124599952509086490566672155654907067410960243773838048383637805356329228924387533386174912673928184616227817687732474766744333443177143225186315629235638850527279273318571712978174048746743548008886204985463297136033347316535881621149733499529414308068662402329434648089530148068466036568271906100775481222631338078725262933979025203697187988722829417060876603528633758948932062305770638784335877661526497345003718499024925650146836955266786164919953771371159164952829316965491882856790769461900158462428563877319687765917813660889852252432388768592100986849867408254520891598850008283120999673586298599739458938527899195875534597502128528823822240843425923564796074092460709756092191702981761801206063445425904344489542722441368520963367741921367302287253254138274775410025915682859925180358157488211292337076639267958037026258549280394510860541628123742587610129710488261425935729172240440095690726636325581971460258707933986170089885424884959133201161377211708295510246373903886948596745612549045439740078431932311265288262663413820460506931799130946314536909247889555418403201567765196476795808438879336145570222560590661089738149534378898046509706810227804153184120341180801756801804595951509756611398008105180238841848214278132835870579350034785831858216168906464762930614111400394434907003896927480689147413223935616538692297876534317533403142978852322715754860759955085982634619613133253251512437637863978448211654825163544046696973040671001569325043476395893940027562845076216965133704512054068712881031803616514798754513730581351176765240697130431060504159789488609696067192011448680603943333651143667920223158210478070447184997028588365020281406546004413089958037928759469213079631160894982290473744051111862388854745571947794683893893904662902263352634994949661399058011575597421846299410192034014515224216842763216154125811771215782019382863204014866032388208147112920981494897731556497506303350888274534161932593742587220929031273371611571807628669099200962923997688387556257545925459916631055358255970362033429643920733481350310020424898045308144900490971614131653199719783920742109683164158152904343634004046952323258941148370881136438783065665120568402063568980597641820365416141054554326811430738111193474036897336693615926497387366387639488897099133346112158239883544544365672407186558020851582438180469264331828548558021623555516677836302008452486652472591329747914324143958278248627565345040790112082270378494174056654580961580329662711505693641460660099632521803319708729494551446876263337082077276258391079509238220865463745273100072192976454189829517546764237263472910179909740356937020009228791733775696338337156446330413839706329993610943427682331190611213155318514774693203863341855868694882000464725699478010755407913631715822676369959090339152872028601121338317869274426493404160228713082371917602678381550014775423336757089208155589669440856972975932974873942300619564896033404580260232367966733027741141333906596124328438331877057226991380109655271594216451639084842104366139077293165793014203711052162057754416993536675318502785699823382797411349104542575742697368751976888528508561418227213805664884952117420173791145526290565566848898400479588746422778445210992061741026472445008738642069886725750524944945267750358878190880019280850741129940007201477981700243029857150791588277361737793289326559734569975214377800507577040250872701939134439498047274591489179501504049721468582120168241159243328473776362534287876495339780294435497313049007819580666965024303561990922698965981560269396470671287693932585592485842976439575133778627712830290039751689367072476275706689659885156169486557792518332656160897921943818682554748613136848212439160083953120795812392521430520496743890904832062962229229228442526163688732621776678382343767813220035035236148371765305051591443188982402981714041445737616584327618227404945109463525418527034825059358470504239921749277139913787115617752752913390914764415636013155592192395377379155628774636996817250747203487055748471052426139597225325717345350735741979215825543189311775844435312236267645142664494004538869665614692241069230432984876982863544449000970270566597512824419130287270190395910272536989083310993764579387795189661325749822406027159771487589645205964812601330575918314085110297598781332081756057065706289038083512127336852782356582011435365239562361756569815078204384068420775798492165351144504802877434269093637667700596430532835408911544974937024425398809502818612193901293084322774694045629737746317239853900440556300611785928066895386616338282070666223081311537431913124722362189701616376432932201645052608202238999904309937197233075956290662948916397722767580424101885329802958771070965134851010515448123729395308911170405476420446018049578121835949591051384974432697629518562696965434904961110348411144426745715033327851313126005857013699372575730410761785341832950561504658174777216196318336862358800085657227784846735549472224465246210635846200333527828392557635407851841723806976597079227920551538842466523523144958576322983305583097789418376799134002883147164015386649559210498486123646254646646413375759116776097515636380188800290253079337503706423060761210192593762552550090638271605518742371082659221831929221466278439046599197265326582751955010663454210659821534864170876983089270226186269662062259886582737428913133989472836083916111604135613627493216586888049705693658057826731351625845803135221176009167905063069313387768766030133499219989786841496423757573871071078038978430887680186397890810437006599417649441970092831751171686671651796358246373968154979505860941730477286367430557466808127556313021721904370507066378071708627894021710648215782702137483709306074471228584100323847451625421596127488576616197918449599761342550280276139769364732662441972158732315261098736660330723370023923525200015091530930686198764092791835683811610806421468940925506019696452630781838282727620363281188901265727575586471698026844316320982663548225755806406445481581845181031770882358085569992560304935131417301868916092419632669734725666605415910350184930841340067855014810498538148070595189745844600795515862908072026402435369745419386354667825428327533413948037186383158787443346549077326677052961243032145394737362677092456290934309009245404524862767791211448000507486476855873869465506957198531512195273968340181595137793469203626420533442754845654921213282285233825264150904891678363956238979715041240708823507388324279220675843748847180059830596195894920463588317768133735528535826800042441821851471173432836154035508269863827805999974431795332925415807467642680884967180751478472352225161031407203036267012778309545810189449666493066858307020185260258630060366521486128338111607931131950681470561560908135784061783734587747355765442967607626097741238259635646272148274995943423099522322828088960024498772830228675659083956978754322328612462347721460500121861699538636275967392847811384949088053045347556566626940865572064233114442015802547918759503239082526888601240618006108727552960548461236864162659636295445162426261052591531787086629212764622106512045066777024049505526512906922795102188291413096695756398624208916645019298460375229553955839790087513310624123043947892410847808010685603721500443125767897231991131691523049727628957466947851134301448578086539999216298312427560138835679855489566423363603756784378157205033355061396566445323450956884381933214823571401748966381974135062912243838726265117686557292586456977012026805387314924991146788195918028869711632437367724796000823324250665605093864034312212820272041571835373265705683884989490600437247447691029871762791783401788998065910538763926911410737972534038662152347442827010207761361470717755953086602517162691727435629170173884012491308618157203793001760617463830542623876948083519320289673743002573460049992966999640672176417871616102880736406763985587980959435684927164904951679913020866914702606340445908154353139290484113063455876060793827347103772008826146133047974615489229183190009905072927778041305083549570389379409747390294993568718365871918868861777265769289979267917300730747410245501623170664117400059053861600912474358771964604514907919717696818395849280456560028193662157596527864266873400908505356218590349764830094053637246035769807664469584909255029890542730575261628916016251254712759610721114241187694165278764808306767950552389464800542217503591594302247559117787962964906484136794623323143699805935875378547191966733507532284312346137353955336186138838835225915488860178806154357518084296502713680183742735189636805034245740552575736432559139060564424820320522880878411727254468076171993710996278316607909500200267455433265505193136953879034030335408347613350306363270474299384920782145944158409055578645862250955314749070619145771509935706959628578964842856980310352553452794556402686915554795014636391492207340339967304985549884959647239184186212189342746375989968603735657471941592983001415854134411138394789259404484726500971327703730139653345626198719308043650278338101873631207352409093464243758002695985282173579216554771154939262309261865085739026565397518184099874775812371187916285951128309923121788095707734191155427322275879498665943597474409155338120857789358448284952588861062027616654940632803279153750634097635689302234851520665541792996376741571649366486090145918257641936130898343004108272101737065089767417712499379221550650228665145691723670013721227107376267886269973185122345261478335975923276115824517937548743397668965369480434266386804689013613394978547026099904800598967389720257834578729912559179721451497905488871835317280467591365469479199119004462577772511271935887908714796300736728768373865643746514755465874471501387831976421284188152941433461447144722418915855956659401364559118096439145140703750393933169427754659099532995913521101350907925717242952655813597319050847513263837754205986083532644578108687901253442253157042417366668327242187155507459407583189177910088394514955763543339726959445391126572917760194161709333066882200789702580719524080942581462768415396439900184037831697617779084291739643284107006790306547887530474499927115847124693077490532349425459939418564773285719964529624091445481385491691725654221687028955538526541692498037153642112755059025285066419648964998558241250440198740389641313863959949760833746717892289266314895391566187411219040963349935587147545528631791406664122002090261848218894149871802363368891820285666329681558422902683332702638070961114943440752123200480808966240640152534321998024143472922658764474160462816557052056968241681864305797114327973987689341234791413958106417423565194366459522349347514984104087812552394557599234198952296425632843084399667000114546260898682853223360283355751050836612864574790206140881615554009763449661144917702881387288412713943361460569749065856505756452569273901502234200910003095000492252855356414020137044239738358856436534777944941631477519864855087663680309660559867679661065669501695460176483415503115694220093855002430291314555969065883681094591150555340885840760043293583530418723941921153569656467634202218442542708697170388450504933523730595897226609534397633990787815232141893730507736569652888329564413923121480654686865741376229285989129971787380386693938067687765338117675163432273575670196408125203793014228863493976207313563645376094947545398129798188710394314489932471749004622326414653259619392206319639967559584724552018947437955233015784154404124411693203622438132462758296045053864790182125635775558614345630216057565941385424286786248743212716902630442667561733851118558650782715434940161059152218713669972845718907591358147854885738038171749517698833321200991892277237036673560940681412799991708954637481004233174706730273267953147524359818591101534465940933010220963509524219726588478609591708904300869245426881150836241945682927998242436770395875975576024652705072257056665776695204735504078902781043747784837911783838796968319158387968578087057195813470407592987530652115173014325842458739625227902247572028630906426728872884934909373882208710120449234005758244151482145662892489518980671240523598819469045516956494334319206264701239976588079017326118140937760206784799781742614709189230985831109112616616407603408750490503619396736001797340357895129204505939854367364817685954675027117042702332675550865787945070967243327798559176337930093982321675151526155458804941491907406296183881315256029126774583535264247513499825709705325846283696099814774420781148495177848194458497590244715962243720310289091174534819826551615921271463530754507715836719123301304875655626794937331846819837596937207841193860199876049192457430221290679018152497198594374459807115745963336858737996235861877399880999921978014511397529140227221790473439971791030194333712995559806655895428838522655302717543389683460198156333236599913498523053652470754281918187470100607992279062165338358778900947917363479559652179074604313008735023706097880650427247999522383050760060697984468009430542214142297278800375137797544085839082979023755750967567963599819779322850293190195758949187990748215680289045926249752345720204539507427111336803734235803030434349178680759030663517476867698723964522395881877449208820812537378918566034639104787505744703562266977855085127623083935755540207792110059095020531884759115549280904241720193713525697878268608200267366893470051337405385677988247475623080965739747034608673875647368913778638858054171186364384357852390764616745384553245678128799924769869798891470396905641913586480559360011029582507758143065973505564079524183905831865048655239441541404104023635606051086814597524502554813951082877009829364067249906111375571946776133673301788036129184919100605531738985350315517104316748495116747122447979445634499825431930075907944967919636461350427068609306522251351265911264314860852981296495695906728249040939790387636592425769683654861112559080546374593525682531208058160992509311298880516560707729682265783422692557645167935004212355466678972903173699010431679131889621496435987089441820271857280040031304324729319695518497829801820873832851443164928188616387704200438292734196600971704006586877911421798857511690220429715075114161005000865362856956228444925589665004591203257678742755066094043805699092398961587035041981546992339426249683137229480435623837500313589680306778552954979949542566575041823202459144608896066198729617578720339299128975567411884316494735577845162741330363421225039537363412470170375941617320895417290012352591962220566801899810245281073772416267173830348673769393359235991805679691030898075022907219444242460142033210235057556222606344626983023405097371798289015846079703260264331818245443511993470430581628921289769465548113066988206147641214873890921837793713928333724363930107693305564478127321677860922961265756217849795966618730920125205622116203426271534105710204864546017640124512581982936569777214001249830535676642627293662815116647960683219278100148892162268610681734742917471802813485142679463132958673393894342021625387913904328762962058302449378294955233674843311859463207860319532574567074307483764694847047397578060178317471196070422173434309800508050577278101090998018272041865983449437072608330368921095777920384835049594841898899140155699567010352262640295167643635741151810905884606644023120077585084702840158697844566959977694581848209762570156821480816969097767051059532885903833999917150318264258427363570286404725149983983982928933050589742327160651230592040523110715309399700067970801561270184682429280576474932349695087941942421067260044194995241555612473642495694552307625530028612638208768238730025289899839167275173766795768822480193410013442381643403344516611041870161510500930657578829929630576025381875720443652019006890534372630428322629350895252624683975099608581638259073264649398265485819418639177360622289584187191384302311856036350378557568349723052705408142842134617379388242017461705129437852673721097474508053268144729476568542190608459824800133850624597577188913605002643338811487434537661668359680770854583773528839698580465487291561638060792044090377350167854222562836898121663562960892699309113057051029716167672506977775985412671999256422873440256289510330977094697645802535927848994180041048131360562321548400493335344462997058125435422207728260437766454978725660211980765090612932468538136952043561487301423597663065594038100045448301288600375347154739021550339083014505133112682769438011295930286851067212209217872363611916574301131185053619481345003953735249972578789738227176464122976499977699906266129632235469940001786709186881119638830116423901910042789287612838306146675931603298973314380488056230564927528754317063232275881097840011264505621723352375628463168599465357929814686935061155521922407630917322588796866868580256018581826799777563880972536162116460637174697388506323863875873609901134180518747324017871922385210886674111558188167256217318273216474182945278153677385351346377579593172759944225727043222270229110533345995288926085847421078978708814396338202343347345394873338229305800160564819865414592464238539676376242216858895969393741269342691884445176915329965303436859580173290185111655170812295631311078453227440858803854481898353891349843000316130169188388812673839995720578572704313522280041351810709877466910840043632671086899534168038503899194806446336994808878130726753117186879588198241917268770473400849270456537261883656532262555015151772722704267288111596565629384143779330326741186006701214490982734845899768140736705123930479409026478369836402962123680784087553853653577948862072149864994281858997498157272113122991369764338731877642369798356278357832365330581233221126414648696830520520923567724073488212602111823554674970480292958550668670016063930298547708360832283971457140558811562524272608166126684969166934656380189034510447231636627389071974098370930003605818552627021527969158382428283418395420786061265025524444797025403651947731549242370034231422781378962878123579100852900705871877491718081066565561633304069652612753199065020756326606026391132068251772208831550873757559786061227625075181402189144632819802129897412916371246582101370243400507027771413165309966662707301881814457968883923198665095318886967158734941002055661269959267166704432490743148960977563441798464071740744803238384095175842789280251698052829709703387523579018579446660068065573639709203959478232405077323936320374905999096474957153474037591114638797156777952925377846718506797589333136736346827833750982797248290672463901148144858397701639124588180696984733599427982656317016541126243088282778460542300108839126730525653346684143170989632026590702231564034563027224916382858142219156854310174402226606532194262990784951905768633420584792795531877899880622456474118926702339354743353442311520450491740402429775848282963201046536179794810247623437259846998145499214667789674874844121671226565528591697055311571675012811348683623667348625154622739489106515511913957437481316084938983767032525788792671779771885923523675772775595071333769249519095735528733231077863767106181837679087989726290188064138619314565999530458836039500225231778135314563888752981429177456513169574365548630064070830793408839547762119580708714708407092673277758842319582713594708339582049549508122708539352006028903853670283413562083852523214429509957178062253302155236888938913599691636819947645915391660991531951692460554528840036713245486216105725595381190961370930093379876326555857085989646638303221616299586774401348760148592918975829526188140559287742397858243415404386733049754126643843658865146028176695384970231134763297957597474922967566519017204458492376531851769528451538523787641166537150157318776216853436418220901728542956012925371808721834982201746194388572264151226421352435026034838143540209864233893613540259477970063009228871760961025497853606296280043446221445428009172080084458017181324151819675119827529930798008350229556990179478274006707721471338104635548393060033468348726067987870137917586981757455408269739835857664090552790461549520191883027110043592476806796475425277477307279583195288709473569745237517357243572770943904090704484910136547772517037302137718704895531689881674004531236471303428632950173867949401052058203073815016559016310268597305380945626272536185804570990510187256082338536871215784072952230957309965491721883644414678176285802902005036189726392102198630348733423207337593915025471372244208368062050010424825412897166204519166733484471315833480418813168395944902807688009552273823456275946585336184945360761762986604959407323707556957675516988798853645191083261290977397287464002333424796451731315596634837125337202952898440740786869709030377692117359605661658403752172071291446813853520183926994188999684611431504187531542927585375382908853633670071552671730879692781536221870745732432874104841653449350632580501244294695788947208460486242903400885261691173400431161196197390158643462800118290388258885518211082466046012264275310940012511236742555908687546389724745981138163395878225730115278671782550348272761806943330253434205909837279132660654470128276055830486666920130671623504770597647833374798572489326531601312969377382150831856328996389183806188065818449310775525392175996165589101859923742425320245719865564672478905138119595193976711272840462032123391696464845627766088289112254964675104826946967476341474460025335082998512726301780114933860468613835633303942322253053889576288800102773862113920740515874656476282349609749420014359478131027889672069312173580361922632810303803125998413437303669151716181118381056122134790254330216644880177807918587572288492165186732186211496521274242371827853460372785238605168041298577628867771424726349695112282400496322701623137464480727381338046502244402502727055789795051434057151447889561610955880548475557313915153751949262489040686973490184947615918798898017209774483565065032192625165103928642669488866436439480999026258752489209490891810152304764041183206305003418949143412074466828952601707681527635069955531677852549801592855243678058474347363611885858275179960186530375633469426863567496938838479845826674026471338100075054126672049727309687458453670099056203762887604634905883451082063001289904920690503263187060622327418927778505788116973179365461363591918632489602564285324064039738238437723539660469294324019515601883546472632140486794486848504363381142957311492519517132829024904185746252354743924053241410194439445739662411953323386512639622755824186355107888457334800022168743993070480021475827679406674698272934767520664002836904965823460127787023889615933966165885975326718590976343718969795160652345603564009532497692586867910517428334929573308890607835305046465117347243631236535532026471844955108008900158266343628899366427405655310388942705334401135485188427106111378651965937223003615900997208203149418936197038279739804326876716884789737685135043925149063077401320724882709752714518971865416367425788056439653326061963544446573925720410568086430945808013544263896286128442712263376702416819678332844860183897380684594967088022986400434288541076181786501279988229128270190322841321406888109806220399644059751831456689684689495916060061134027599362245241728917636809386674250647266054070489629785365424602270021353624055908406569931034599579034978895131804923585451236604397019242849128514067896623015795649115408294952015572848181068333127068753668113176412109366763137425503579744214079570082923001790759416357440983393907917456242237005169729325613765075434259057205317759258883489378998666028398004302634160605093002155092210276385729345500277137514807458960674496403130487643181531830417131104332569937575645596567429463506083617564496695232533877765944981169966763306929586870968628873529098922370129014275122183618685165770969861712463385321446387888278233320682876969658366756494530851567111907025901095665911535211406429403759574977706034344056818590446378424610201968644128906067345644407597824612857994722856161634451904646614885867466000768410060423396458623708563159222500697047355709617269504068269723046003972136761541679257734026343719469426677234232250249728928391599536373302869291042753604441705179050241068895685329249433475932563266106671097361230754790779919482847096536933037682849254517127377042506750911527662078673849908810084894037386092562907939829698581251646314889260965503919049585543198640209563991637545779403082145854234176646126466818392112300044599613621641271426689639583524113870788198563192120490145621083993974801545626374514615538214862780819942606888553426530797462246798428682015954729650887169915838088459425125656408687022789450752988156725429483643359055440787817754348294830901920475026114360751473302335039756293850442630989103741403999925500608794458593432582614364965774292663677653779366791944430302947676840565403855243317113070049113140395693342080567901142254971432456289007621613592102000957121541503227937396960849444361065538723238764833605517874797215483614126600790723651295166421642248348888529405948305117019994120304147064474887761660481070036485070771340729024547748113243113649558275602358204732531218644680321015765355593581668336795078340095775551856712444526370370857462026759130565138191081703358502876994548220274840552310860411753457743954989438755358739129176294588256021744735823761833258646078487680481987708756093828668273857846688166625285431139607921418774467879004649448585240916003881482808592817198691660280498954167716849994036471578912601271670016026761702473230979339374394800872194223309454418591161754667853684512895958104879398762789696212563539990579717253934070247196095283072971395350207932696599708277500709926495837306520947712280202068536298083785682955080996863706103572494372229252876072872397612775974817317204318109103029408788082597972825737521293268429105503498314484616469382437689699317236768422897451748275470522688840297512095032093322920988534952821596571058662618136365623474454335123183272473467174529680356938922881355851935797337846467593780668505028927285628481798499810194726108194108729973034984946691484402430911117580449480721404805186097420605716788939647774240911962564239089656178045849433093945639275286412221234289603736693962592638621805950973219148311507904447596235093562917321547306325296224611984261484671142943996201810588471636899811540021864893473520541899246645344944753294856157286710358271388640687017072133878682646991791992121086037735388391209155158427531117259882711081888659020690549550183432708426786898999685618344536748879531868073029755816177539911735063212787786699067887048691176173795803981615552957668216754259734366343533560223558877364770415927719548258690400259335358009082984457227330507626507661186521317314886415996251421251356934368246802888032517316496983861527563382143941152730664885938538992312906564117504754311235313534923312978245729383676855613185576230478135208257421447893767960940827130964917539199383039675971639742495152740079260902976386003178457728906001444012464727621031316445545866329854067398313472451821264713172816237125877609599132648790955271465704920929090847979447986893919864817058430092058623237723422015446711024295378543207337713272616128223940428155471257267478325499204498993994043910720939652085448629832435990242743222562169556602900368231287244358969061585384632686153757921929186241129242522482800429555088184030638395970656073422617961068526780023944894427918165989506713505423884171076511792249022585825824377803196552957759834834714605507989129297963631379615463335661894526880547346453051949714676797563303685078814293415968577086380919037951080621392527695645242388785433378102918324386617297222706339525065564918816775748879442349601499693205301341622625342543562003851076724380749880382052547417895108871761234684285265167783988791569086959510846839625658647711013532826489025445592583803053874564370138984371373256538739659835680766395287449670837549578816390480879067043323997170365299586511331237279578965238195882521364411786202429388300831437166081119133999276203182822975496335845601028340992603097793144647900293812224444419255246852646404956076998785896442396704834045634097601979985790702017113368775246886730246683211103404587286144665584540502709591684191100647079428372876967801279870974705001089214266351447880938576385375811499677654185197929980621201957228482898619210339868139119757533634798924796309423123289413925600856360034769343126962293922738090368552496689839274429107723674561345899846081064577530884881272285373930722795632867362671019510932318446797094175849123388548017747828976648574648611027023051594771356939351653441630995050155339630609548893238701433547007724034942571217968866024684337500130467797478164459671083383917954679234978430312050513147111910384768851074164711616086429834083082557064723517272500965734595346131851926455389255322592355416897807222424545441716010201489083306040687079093107300622204250114096541037288545659741711197049404151101209894594866723728478233137170622916179613604054604765592899202983510017017713506292002523654350720135517594029777805644842901757971585806249652106390732028523860725368887452063062211412184743644108511773144687772868902505656691166080647130854578527405092826816954123492432377988911656074995323745196201243559997348224579580866433407620843342871804189897173345494584140902975705695327653971386072207367025727642053992375493803583030609424137194141705627112580679040447500487032919878034497893034931952097696966442068709014219943567006566279739646377923407383597763866543749252230389094776002010611566158898332747272413184018170717642957428524757696435728059480149559676568153668243093675584589649293629229918855325077124773446901935768267570485018774932171605906557208342324588447788012389396872566041251885610489518332539811809185074333602936917510089949339120928516521052114967020286886200313253287860695634227528137608364260962843436738042319932965790407088555186901764740308122097605663111679507830787086375514694251144905597488742680077157008476792902466728551563459222703411082929057772360504018829997253281355374168362419051895503434047516281326166803150805772203369634022561657549749401170446879797497797282930137878712907348309709411204909419131790428327947039417810787885140542491880738042422791358086066882917897388280468019789497190653243458159712102717755752882913192318966724686920968330694205575457052543565452731247628084898109191913144988671256143913261458294811721737580191808894140577457358208628283234785330945609393474667967998850826669698322259244223802947673668471950518351245655563269536660135905653187263772530926008294046441928625720805870610693217750218511955191392770097196018076193768862308138883098281016564960799018963102485318592653855157649084284642999839315736037447046606438269300617724558102117845351835478813166624403549048911918740615479216499815260686970103837436029322369368728582289198629588256182955097743362150512952935495372707757403680879327322858658370136742421989343006322690655164115133203067745333663635481995614557462991462728365217388712291790161678146353906710660717843223309961037461979695311253655461456860763969920349984093228280174594310168200054091681387370991298971590528147224225445383112921142788226083664786804616091162737175241390281094983398635560349317773259592722209205217454363989220148582660225107152711138772415277198742755089919358322149907634073819810646442517701112284825255970749223198812267663948187181376170563481645558065207197107344081108395325350849620080470219413841359808002587269223031875759118964321896404217560078730457002227628511070719972380837431109254656133063989166711172812650484335698666465294150182355565260651343720808495525737810886517572216102407619780828863844777198554665039583470446384495963142080232153787838095508007873723283091928950924358286399464947416931959144996301469625481632052603089262019293162375242002454768876467045262820716885320138497347803547415930255495531996365912999411728953210052737752240777907309528221583185323761249947312541474753812617917177642956495722125311873487498866380697141933604142745579840601070832203343921364617963370446332706663316667686538077025372470434020194557950612530171296741190393978564642601368835848881589753550242336471439594055517038656243100227636403588749645172692039835260227171798910292664200327880959972369445290373930350717096897050680486078896336718790759537573715431153904395657977957249033658833159142673349534957601166931820436323927874236491530543556866832981694002381730930393810524710094535242519943063975599906504791448718109283036906104305750579546650375721969609947233988692666824567094345147392305266820632666263579521606101115581638782920228917688620243451802690852819336301232777249094621281003361525143461123445468256530403848039277112020478521157526433298966600663623860282285606249908578355639612554948659915553592738212638844491729236472916735258914096089208462795749143867777607038007498542017122741566051465291944280027688012391149662250791120561562750793114892580724012073889857854510800247162049598305610234729899770482846139060156430367127148929425987131242037733441642846788241874192015675364108973562811244355152345100261370992963906356732764007093041831780963848227548265893433142760870282804751125988341989937300667411346554623365292562973627290292993850663280732330363314036164461626672783688400358628815026885787318594101051397309118035675497066297278437588595845734397904525572340344662577456314934300857460178860768561567096393433520441371301257470582068269009517414801412447459802589486888759982293262236322362987212752519732819281801721649862856047709379422417612527030221094399236912098136222230004566070150690004522013258874638110616993762300035076192729177099038783803501546266701820485227974414072727180044971114137289477231429060800814925029532682574181804749034994742375682176603983762359209549956236759158556761923463671697820188085937299373397675785198947156005154643510297388040583717917070099554954958912930480257455004347758388736784247956505773087802900866071158231168884472134522066677225924818966033309288705805225553774607320584591106370398456175114213406156170447300298244163000682542418751767207712339264503668831265099312870023604835728181004831487376008859657153539761758129277660724447623747208223143265914103017576741165210244838930270109980173530819228001653205525845400114074852243171833161613497394602676921759817105488613823502114711972678101048819114292982485323847065562451049132798759501774155530948062816963792123997755131441907743477962139401539888359919523196594604670926320546857164597693016145321195605677776632461655195460958648786426991805003457869952584150004913966969274645953341387284296984728046224938915262817005463619856924356438043862266602186070413418119247875012812399977752653396633775392316627898302184845013599018351587089031777694960508206959276574707021378460226237938649016282388032926751293150989122153209356887626441086219869353281482042216572850365031045702649065075710711008920352481511539215058605586075651965914674632967461650808371706092589889843843365640929425079782771708479023803711674185341954444291296357543249999530088772894787432233577467433430898459834980976220549193129115022076922722989557981590774794328103777389596838915677173462906477402136525777467299196787136992208622877877859987166925478267046949622483995573028433185770280192245697742875218461259683340056820221378078246338722302301166905041027400166463428625325785678282392490953117998875792490376284843058415815927364147949412977430513490368037437302332915828018371966549410072709974969119783185712798140528261232389496842606499061797747036586546804103394616031270248829286919715703073139021696101379544099350215453163979669141939874354033438202317742671940241560392159495650890294500002131011681515409430484089364800606376664488921112393321214961195524586469654102599936533283055518283930756896007495968499301504311445588795966732843656117685399659919504941733804802064580321095103263401156359807336120381269506553897384527543692724986321328272940120031111050614339758730689364392457693814195195788489144263650681730113719959362912667962450566617832704199982134632234878195657368730621603889700271555430845383042325661399475192109667598381562437489632883412342797354958202533729258241051678520631891626413720957341218473389473651230354871013592926075394487239807497697652917616280021058279876980056953106062215859072883703345125710283982193409863121626485042705210192451285259000538469203228438812386176559448410319383516163502795207208980766728292447022643055332103901657886343676381980970199038232288507363206003313246530113013708617243413576587719344281731531609940855085545912381318660989856959433292478683344265905842719203386389929313935862176888028041263696734631076984768876969143739617054560478537531302689263159914168171168329363830765985526747968626311166928511297778050892115329295323730647643748765048317291670890398972141689908301480190414726249022175757704253338142799374945101647238708539442188239762193664976563410826136409638107277613732639296116061964804717508327004421750005110063298453485253810069041144248586849306149818078354004967793148444209383818922122174456983310330049849656797942077467092245356309232824130337583109257007829504439068614738463498929897450992049215086848429457474148056041859224446685201133778232248853569982839485239829858244453116649783716051961075176241688626302673371971673507381439693985572107824438485261748778073257128560950699715987303811205020632451755749633857093834566414455537074571761498133130210552730909456405110979789634365591695625517503688343360742412823413406996159066489969767979154072797533967971821158725005363534668045337339883437061813081254366186167761610165967556048955122040957132938444374935609353372921653813604006125960597025274769327491203474273870270879902401071736224305629766801892597878496809202384373106399879675998107527857861766775113476943454522684858823716995817353603631072459846402815564991416977266409531949907564236640878934015224119625607450551378010235960717211620413259598046420271370025335116635553966302725721267407480686424667337569715085492851508111452711149987889160357378177036632818040637419717898965886889015679055745280396732429077254336934041195283989792625369018457252458215279879408347253668044670988177429538210375159675656439312667280149330458537008609316709035322961648504381857611050842174417515628157111377408582321441721023785639776994733581373949824612013803632939151391953126014998915092267179508553389068359130632800520401667933726166839792897928740265171705828445048961072262976228356138959528976582262253391167220002698552865111439147326275464527556776021544468220121451335255331722708262994459625077398542096642315752513221972071882283100439850499699477303243188023025946429437617099746277000940543631324736463025056653338387161906505258430888393667589613806295592485820763548564532499244210622829883146374281161278022588367917350909458506688116832712256106530754105565854681310015147155010068800226952000258837469360025529660794451984988673475182674057236002233421436770964602791143912316655133595656318943539885000599895041032878242741320461938445284458123954561862734158115208572263552761018198580230837944537904423580569643798685443436896609000183612082687490049792086195154895644437359645079243153629207621667971050796770418061508269678165838490865460757338351038061690648291849260165046832150354619867591015340802261541864001272395533465033287474372698678473829668332825663123052181123006544716418448412562086997474025818417296472022514304570106308515273602874043781706320815973389728777520018804023899480684175300735383590371698852663180969224665242165118954741838729184970129893540799180001140682846003388747368024129554717327574876244284254363604402175615833599097095537845677548005547620643952422580627798925712687082329514678972498933092849907348916182095796716734555359871340326498043957944313411307385903929649652495575850833801307062179484580409035086727413743921572580483294569106504273998640151919061725490640936059877480470513157017925534090532635631010743305283739658306272953844223376187268495687661885056869630246364229757999737332657175948859462066484445262707358428129560064684488254205222496274679984226962029416976458938656372733506028645898966883470327240463692925175581957627865131722298000347810515080113697329707849513617385864992532796130237992394355277740052881010031166790366584572684563145818532506247035610492418938097247174760837412664937604574577378165508621136681170711200721895252345109795290033542714901178496570714374271977247096416055508012870318124139613182791729738455062392588484463411847473503589242038014442898132001217357687171500296819806561240503132923573799518885308577648086708594186969572714009717099088084659709290962375204405639173725499846677517996855036827999712772038342636370060390021988834496590539133337095605900959826569033110894841086189191135225849951159185474225043327308355287291545935336195971520074962256894565926323969271922484600545499026537200374211828121830406082156470639425242668759818967807395643015418690762141897645152734729673790965617442033075759998597353681088972747733809077463240466389412652265933788784143369884243265921551725831258670168603444553097134123140421904225651966298772240418332526491266920620335447213620177482895933504484355536436150256978411278996172562134809185414481448809547100564930573095520457450949426790083202912939893445122528463451603938575840118543178461126428136361433839593584143891468974104000670456036202544085723315472953514021005178810786752008184237774753853262666636936218588952131061574546048549331582657542052439049893523175007263564267372424336482209449363522657689947099125075042629360350388709703322354068278149830856277744842019294195367811425182164838179552704410815757804800655680723292592875769976334193026742128620801818691323764559527190704491700751094091771743290102314746299205162544710954476346529263289707677142948614334676797841020913855143449536608399677700524661436298131313976388057965248014802039483217074451470221699526216936333387940457630824555310115191102912940350071736671668534314901026187142837470877220701858290444236850148778584667155927416789537821700407392571258822354538718232077884600050131918189309884952716711213043426213608418040645403880679164864352263448580331628194282664550908960437058192424037695096386108795053651870119240510190665796443380074961135203794045326654293633772574462499312981102243296006761123038450505999866438485734501384524766537589009779356931016904771475775582999756844747555307333436892072349002744796646006604667342758321214413025535830949482002184348613291345512196334120675775165167373349843960413685619991041497125561871646160917007588455370919591504458012577875885477201940608817594738566629799262653569699539086250091358066263836133667285694374233322995067759216945465368242748827682555282928209255647297769395662255703415483201024790988916162676721393041932818533997730194640116073987275289956447453094411360804407577831612860705004941601203227930283365531654966377050156580450036834410712128890888955764974625247836999184886461328431999122652188405688727890117198357420395747192425392020487570478128635825233173318140273218257957488426905531709081969849095190977609212426970478825098190344453835656609872958321012722899017307627147739130255484194764169672269641682763543087031074194600308229249285110291240451303923542477015584668037620785293713209200598640238679003637827990339007392933194370866017820523069932752132591482135675458370302024100003416176137680710381838125378629695052087959038437392030175762312297440301552248926076671126432069654484578468333056232040988876889230487804078040435508567067653598279301484730010698402291393512473035434868235023948855734020675956393495209185747545989721681533463415126366414296363848103395728002660736156697395373669664529034208254975891790551258957147709110701377578093600509849651609343651969407452167722738188389497587977960848933396467495362142767867539263558849280298731898753366545407716508077845125491740554299894351519474450881973228836829899855740756425203787180307842606898703853764577723329403376198207781610205119856209866486640921487624475842170636304704046781750746397767775541390069221093415742134252105623166747174251174254750121692192959642681175542948382802090530132940890435857900209885206224316609292174017996411928784002079016264570199981336661102310466432863344041060997633015394508030217026501445241799759835225041145857480718990489823926023187660974360274265474452764446256052706152894217806011518871461783729812295803012104701003015465968929049076352960007048300081142445256000880151351289295304114681095331550340013811492127594040359264895033917863185855912006934237115881164333264054392648409461422759907718926494239532156102856095465627545760408856622316743256559131862143975378649471512890552944184085151828096336957712086459620192769029158733037340183230954448588800438778552006851881799918665533181958153716149315433638247401247712372250609218738445302064235278551146102215060703577837912927188140268836851065440616316646784583731197098811501214549874888707901490807511532568607613756407219413692224115423054441203741737335010609460879582552811897275753225219376962018986063431438848039803313741451697882537677605057088391110631622786318505190421489527581974077777468155658272993548063413941921755032184122870040391062036201442438047557169775552962062692323269016655529128292489478691139134036322071269744661469466558696980182376925591453219726551686471322815177027565912900959454534175193412391209050950483358452838339167782153673131601607295298864381524520996597099560499968126367725756011804960419742917931034786723503937219531836078052378779144773190364444844610308772708688036830009765007384918860802728351763173543622359274152262386642020353312074810259623700202736379286574351020112030458338488545288626874371026828766923114019675282861300497340669137070831623361067562345817815790465507753115242389147897645634084270366895572158546604355911022192937417532987320046711879304136246850888094047833037372982921362771407700377686789409733805392181358721774700958414753951712510393163135979213643918837153981095423485775104179203313228160023962549082163114936443034489241791863555800163278799249425941495977574528346918767408775923578107120915576478393049013026363099157015278109850247994992481351637081318369378638291354304439553738890598328883147345000050553293248081298711003219819620127122592120899570790267450978930967097533602065800022446995441899724226403651555326564599204939197657379116057465830631611054232420838394089857812579281881545288562520574422621391312051821245671582704262108531360294301773814522600168356838991746907249827906617537058843242249737793732807668742738608731132968424393077430976821753764070226163148987270324866660860421149396095622535809677251426627011705494826098548753411033829054914665147615258378756840397798941417135026093481556766670988623628556840071883856498455794546001979248833792331174320652915251831684104257237337876680835142319081677400666230482375675286939983771267139030598064886775920331678459670354822777676865489190229716678809286501275707313431638501081516411881478261383570644686700152087793582454307843676059074926886639699995155513529756772495291437555844636194709980495133962339111370334158329871591102787768198582617408597179058607595898621059760035930931196953339328447554364523360571214697248230646293218060456598810038469554028074445979281822619539633361626086966030168384953483101033201055575935588691519454070085238743606142809133874087369991761651531557712973080188041033508376013558778828573493714296119333571716504268709403250646755305733338628640619455860829369672053902067174231632283106904483978553013573134431738142253436092795852286629997579426106015186517306567039987475104300246570848870497565081279767502324294584076395998514197454128189707293178252182908884305538706306444625728256405957805398574561483456609521207160267272066467483235261618246034758927114508308275513704314923654618189291780092955371480997693788570553373831249211696840902012940533809288073229236292688525156122660426294806274759006662557001547733697588451713104149357029440934778049215974433806874637773542508233686763754086847669925006951734560849355977186485052732213145685373730491448762466293103368073318710470753979707935663468701019203513618015319102867968597913814676532757987726447954468307707632789583262422248222778282409002583451538792490860395018863063958003003307464748229165959407510290976920442035498249617039996300488149496789165159377159853984509602493780836955100145669527980958578585997420417999126723353626062227781658081153971954706920398111504453606310482162514384843981001375277549699778011529431019654216214796648220603356257344720978698456448724438437375689037460264682669807469898746322209791854179200246747638574294965514121940887029862906352245955207704789930671731269909841218481808911897702684232293149247059226629558142181441918702519777935427722975191328050768099076606380032136957459560555839547856430199627684211605876175021834972761896878409088115417734953306358293868921725726439456037596743015228176290333341413730290416676313888860100452444146345829735496104511189163855014230116105392231978278983209415227223855461793003210152041857458225038874062202802020197074338376805838319512468856643402215521902525714026722002889972752393484622888280904449690175542184674641081637313300256088297298924582462242586200687886992297419065678661999550045805203404600693640654413418927893389078282019243288908870588734446081614206691536508295131887671517141387849777171640182002811984002229903711019740207649781961896764052445537760204205269445245320751856085121148926750588416844348227830957257153299916613539783948561272219557175687716026423765116749918954954105892396064954860628840171141835921287871916004931650976239694723027451698049180887834852843500448615695291156167683672004828579734106860975592441156964802196003137672624658515876869085778737360992093983755521215234893432342275188673816425932574289284469216327608032415016768976055760078932591526000223145452371380800985775276189559735282261088336235577319971061083489033469061980989881227064766185795334923065764063540545578182181220292473558971436209218105450458775266573916707637283798070063666879554657246043411012027574277549229395458612826972322282057395177042302526135772369435953534432396613540088809228465799947791097835760843707196479152764414752737290838619356572483726650510265915965153288332670918176952160788112971360442665806402290945432391530332455322676077006970586865889873015839644147634377073757359530574175454605521204959682603969318142224779749058736175072619837202057598950737306714714197915144061686483820978881413269217836207848310252308456466628859965725011765440803677616852471099146894611728229572636691028211962447429756499053046105030771691396392041444427932728221971353879362020862675403051392669085874333137041866213570059297732915109695830894751166960246743086968932623102352129422732955368015984709726254521289158998180817754024260727357048509264113131390615613819658844161836263971764669564023719084019099643861556480406510788857963181418860408042198162273332023051439192683022920526196757066158394961869861117419406981785484574799631908659165872969840031212506461480489217174832388984261896700252659098054236537883184878698408099525349945054188347585869377023424345394496729596626127749901638085214324167665146918858103466899154646412203681117572782407989407220759227354668620771798578705470416360914748236384745349057427263599528113272412603696909068867462478143406672138732361696929716394634273278923561257401542062998759732401787644158414480525087520680322421260168373818349366447363332641969268599659919326515960565915699092839576592954557849175356049076890900227244946573741649232889396699316227907551648544646128472587619918761758869311591962916812015871150197141222271046583665326034795494976059933734977464818636712601094437466669422550699556068788830486041084496248681930123153477654154320589784378859902622292864068429991960927811920906160310279209471246901052361020449700785909653280482380928671917892714941960595724412801034211425368802471172340578660496001721440939606612559456259046127611781340281263579986284666872709490171009682572647144299549443745342098340368586826415806757982932985345931768529481062518896333527244726043093140442819741853077383612332010220239243466829438583494314605168857357473434098269672744958215207606217100947881717485086029950192284710082363458546319107544781474820033237093754868017673252757976010458105622474783060077264369722066152917455239107844709494008915808268202234494087863824659567094508200774956538881598591317810997302841964130311230773763887628109624544310018804839465182415900023031863112281703841669037147299680518107825376045965305208821010465277302976321900023669198943483477043615519570564326667846002067076935166775120210229524347978755912733774926237826485378614172930707945892049431220903741043432914404730600013887371871621281950335102009947341425980741351350622732146643397628639363042438917399704297537084507802408207669794508146025317920695636403999755297267810771024763061779971578373284501982600646753029284312453570656551258831856404286900081586594253360146796612064251227342942198476833364446153128577114737822527972476371727574332702731682901826919482240219141709664375310324592511112812670640890547527178933872053625578286612613134531214181158103250304928150735672726422271989063704817897634175185518942550084669818387260997010060545929548247039724296759679185230387851295370057226870664514274218005717861256676378727515547701922202122357289015765800755573508585238199336961348730410271179743605981475425857211847435456482972733099022454993519601969881507820235565411247593859125241985890796888265355613103864939573094687085507649569277443455354852886656315697082673391738648099189312592002368245193110542073030002316670836840974186678696935109673288844125953326667443511910641351833883523882032320531577839808807137636871906492084906538772791298402805954122834213570083294299749340285926435713588197182091073124793949173313747712601876687518334216441501951941706209248731572238670963595739888938074199727519734734522221511024436344306157748053992686712722438624369836548489031449815204405370336012704177312050403193351372607497918326360361221407234529938618184416616191027413117309409419207391518090036569430040814080007785260646757977489035689328017235742930223702293872370510006831474514371237228675661399024994959771436161332488232391506405821506316046506657117315522873046939750327948074323834125935548445263734351603834204336405998806968606930684529350036059301785550189622178328359240561948925674701798406132955344638857125064581397673077340025556640674083709548385706267280434969934214506754842430534953907288835465019286920073259824240085951959766159581929479680579782148926382074027516890755216854673812607006704677589178037813998940841468839048656398671072955493020055786160595735934480914309881172464987054491682122994734816721700327481977090410530455649228293295314450298072080880325610118598064245452394887079896223977492054074998033538743897492797566449347340466517183594098471168959466759180410911450740959590570069667071978299555489149470608189829059503619679391600591835439314950020696072930247575260650859964469094734020365659653655762678239813301870652825715153682482491846341929570639934874820206464768167804301178946412413463984036278932231198476454944308620979749907869722681330996031493250573831134758290517204195277289594003296660518133876441736431653688733738250231003970062361696965032230148848461636764776303077498185634618040389364472815838190294005986952199326488609886451604012412724428594815794838988836202457662375713434511511864337092066307259900465341894481172543486171300240851165305461667757174387424493509304976470899277669475186947893292318350506326760273920169574586229520313802407073104623582881050691503532237587621924421383705024602893720621689976426666327139116435089056794360430729478383957031989859802629049058770701807397528273908087472510737460204088893982435243879082323423012775122687078015306750995078947475370380188814374542106230162176964455010881021751895897768649674476319559299940886536782697473048686113580834495770656206435846517074549811246075256737435961434747550750722344365623124473452824865640296829888764522079775601526294596942329538623751872950940617655664732266514405142885295188757208533927786502588895683217369621537770757469128749726499992526126537658764058942759419986321019791141208043013486144581019638093373656214208961761207273625463407832602812565725447687382434162477810571183956295416445607767333190070248494056879853888902350454892450917804480759134656079688578788310479624003093491356887181489270073818885640681317784268562952244743616755199045252427867589640963223433847094353691846712920630722161636604016562595966139519402225222242128861777218182259382969321622477380908109493082506098695171693679557882887699866820160333436098851382660430840718571923165060364173430047627452989985485205104602650304245628715774063093718362581050151034662713211833985296905960739146910307013966410189609978070506900192198589659558230013949515915682370131337989613036601867063201107260026718395371832542546791372244829198947582749196857181603373248148463650953058224420448179475843339137033151404955353544338943304915111482248891669319149057681216512065548537298866371616676122084370299216526422365544680098683384828418760513981369385906256722558964353287085922418897266673979569559120776125594566862401919396094199546163887567061139529617737177403030891072037196200599507028766044217661362886760793345199805909470176153898927543920058613615048998341654565041507628617052489710275369266230157536571315528469556374878617610444792316462362622338573060312809402929581893318841546761557480257592218286077588349770081049047946574689988276308205387457961415952967244249663538877088898982714367366109183860150429009971214187791216486236202527829814473248184030519949715983482129184114215766507983666696820252317387628685156718418781390550164340097945937694478676248951324079641222728978733312271769868342232382310015931741480288367119346194296511261003044234347448573886678714093420354515136157094844452227205371790872955550960504973637626922547000159401832998648705244934655827912739353649479364070843863282778953111542913528257940025951463470440360380425683113628790465671689919151773623369930617694846032213321103951792840314443920885269887010071181306797599645783722931411663812252586955019063526602473117613147444464914965950250923118836602611974041600574650370310858091054449046503790353397066583218029880601039440547322868201255389515910747740534590474898630203776106738995315467047750780156725658491673339201061669777303114937199337860361714912023382274848899708073131137814403891165018211492794525955981096129905422998374437518915268311901251471421255323201433111196999847256479131539763912615084157272334672384600571609814177151414893816507051986984218391879424945320427741951663315494988714893012128565165659238035689680746890788726487817151019700002873905174914853605747296114356697816704905034295797604440295529583334899655393230506374555671492324210138291028987247617892660963917621118156423687438819943007344908225568385349593816663242181425719346484104507376129703876080983554519139733413218720797185141365878639297784504818041111077270611882230155910530939836749371211290513791459333145439194351538403673484376669064770602672883028200714548867718753138232342224517998441316796611088552524059328766336912195029862124020255965776668659988344472827626407694694623309342720356397257700778818141386730286580721485824459357881573040100651542151441047869825263975802939900881563122092730311934929279392769629802305684714764891006871037508090590159170384837105212799925725955720379915170351959076361036314444546054799637296454514919727754978892687727316556991276605694091625157068451841273071447054594730087670978000482443866077167163477888878381086670163405602370313704319345110694580015022929089275491260678698072548334471660564377045705196119998283159190229056156928906053460065362290573151916800094651495029945421501999666321592822572093587888341215455388000338884029744382007132732438972081436989142763367438257679588335126349728235586829789104652352833420695556399128177390659910026590811537110809813769313916856979563621360977425754951708783033345426379542145332051246090837446376368867646766658228189312198925555951051049113779613676148583519916640486796482509632085960932011414699644320946162614471118146325958694938958327354425402855129776668478811548448226017720236508456742540495794439201968223275723938879221250955937986715588918514556851962751362676129278885890395776096941475460918412112926353052020948999043847455888583596537048800481355294237121066093645257848537397844568190862024826634220702880226798308252416058502998387818722263233515995470765867235942304104829777713601064629770305257645890266613465235388435345906627383170196190492711541507336221165546144116319654827371177646456920144148973933785039305901219375938537497184442951196277506414202021349610892334436276074644997350062685187222078386059713931458631513868847242006676788507841895026676036258388032440012962801107979813331941625946461861063355426854682190697774021092043333895474144639762674098927689087533455273850806749142175915217783561210124731201104132152288634616822797120029682485423921139832757545759880445566127521231512754241120406428142090667310272966344673129694053658435958154954702034195294096820763351296302025115071619166387204007029826871212285155123746025934360916743349003019979333520910621339474583283184325153979436829974163667557259540803102483592262881402718309600452108770302168651451100727011129195719763405898840647121103364702868683326316653892181753489839273599224277967383578138417107553135834418226685256084498888468348680767262677706148481501515036631454557898706028392511246032248128345804585384151116217061983640083766279522073844272093501725698066641330813594733428684270925202854104710600758459761823084588900924235521328523247941703800390826154502783746664010300007977962424291799392846812664504801518432607090624443041797851055078922572531241111413835471905367654096942855122348715302454021772156654164267941865247940905047112522299596940067435449386788398109094467197106663831530788405398312671353689004322722790706164067136688548202549570800495609673338471114008088251156853054884125399869678124862849313299386035341106615205619197379773123832935099415320004336895180520922511859723519186752257049393077944530517959510154739532336257704478966361822176970902224151412557019744420287815982243734840104503139102486396960373741658090413988771655862572810696435089534022311562611600207690501242053464128138776099464354918254058986012744580090597813769019603018976464595254488743117396758055377465705659124985802764915472929262085176372537391215433763933930774127416971058482895588675809281749650734462139032551780355838769450660648562937513873867160437571214328315935247695338565010213306707789272513731817322225170441422527888572240838319796875342420697650603527862773635202351615146148905824818743143186766405001508904479892229160179021043584837942270762352992054510701734693779307880786412932566202072812388650933327918480125047685391826358931105825323524725161389305790023510988027964173433715516358941861822190845457911049769956412504768480463339456142184863807360991566933759767473391916705261536932487074084571380443636048148111100186453254090247589542894294493968407972960643408255963628905773268846653541472882813596660813730287774569069292717523929213321594324759760356982482774572245169151425421286749178785560120228859066165697606476559073311775551459888154397547356504172099011988687901238363360011039899933084984527265117827800648762522354885815898376497310973783978419869196090986505665592802173502302878815149774061868423317656859240278332936946866428367914780555795680985641711064194407864699607187072243380865723469930537540035143026462691978404737370883843612909662733141098482364972317123634838641630932887360019258254924896985748029180245969709614486372853635623901101996764897789257043992462955325554715658257099734298381449178993812775226419106657177549073482262329515582107753740510572435972678189027728278051810442802513734385065159931367498141150620197436510081202514902225723730439510903288440346143423858565890736010395007112343369584018806651804988812938906581472599877456659588533882065784609745163407143105179536228758221610527167565736090393907207652104109510396277740467918316045231045461640962745291871339402434229147346551083137609927142657287068611574196176650458478681106666892542564940601528574619877479566771564363809328096496337971182123898446856797329492061527358878786772530525472997653147635386765407178523484139538151947820556752768063730240020919104459622916216034249841164504796719306979203948636643753410551027633427277899248221903383239913623105546188903564316612745478246702876932464107214318065036221266480333288978723718288988955213847074517123153023488451153051037419998166259984205967786885505191753554660474125928217818658306305848238748232050625608560953049758624115489341676137637311140671092943628395467379269316743525905905855845013616034691943259884339903731808614802137279405155683501181456447923069712260530968933067317720540258982020552147082953946754646864689454560066758201348415506253865458527555918597662647851728831023220921158374779712435953674935301795309898734584899362913924536694355552619474952824245387725744436222482663817939477563802083901717438009834846379830546507480136634769163462639207015005844501508640147309377122079921287734267675648722574466123036575010742292366803988201006401815221295444467736794999660594986211993157835383559931415683402535299214373251474159234898773313668524540283015352990358872417287469237661678204440736356816000502058692857796192021452682509391031847134582994188820884616530641851168018715782447160393101625464484373990396633463784395215197417273712314326065274423655885485153337403533230393737187918167262475299479486427624551455930679198403059859167193562638062929335818892900510134391709997096315182921887144562559333490288080070230452296946331533731616309993403298141245324179915224484922875406570945588665291333505460330621962992833734266538593434648426325096858957829391718848622737881566090859627713793969246570122903409164088585426650896472805949869647785287362189497866473700488650200579859806206850648185547985628425961771400861029194080644837298805235349889030755577841435664149020383170768659752552870670135476536618467539839710542330799701683315937325404298825442152043218782684139011790445890584701651047400112435777152830718285253779199839128593076928194471770493027707217217449570674484723837753094502625083620022314922446685241267391088280589372790885518640948737501612598367819598542496900407551210911785411351821039343793647726058568475656487713818102087020163745086262453020938841989713557857376294152094384571445320624696779550815177182137671393581782852320737305722780317252516871640581064104162645973123998642113014084250754203176924561319827710288819585724933615674411308035406611341871283654537146875604403747301791239954189655652418527294551701817637654823716459027891235345989802207190686496126066335463805031045555257896588804989800216082149218238568062620074049670651226989507690085467703928454178334376924604189631921447384499386380930316951454182363417246220434033139046893286945151806644322242279888777830035054865808199813642027734219414917940411630566191095450498933189501071035491735480291240264132892599266365773761336287821553939131262992696295860708885553532976334747833192571093393263759585914037018793979314249054233640529408106546038771895194176026785026140141852070877967217499935370600022419678913110762598565217785119521470737169586593852574150545897829385918891429576626659819692305507693916590882337661372831875376542476999018515617109641884138994040394066765714420868459384303439597323731754110020235446923479953894594332501942543946662795052578580569222350162446223721118824725819066109426768826864101932679513710827340716440575790512791605396733551702281741690523726816980073841096640488626721982172134717057900280534744955792498628476117162807797138019689318375011651669967664845580495652021178639009657073353794752531579351223510192335096323910817968515406710113580694102643228470954207396599327633547082196817044853846072272226786852477607839115502052896462326058455225305058691641113756635908183028605886252656017618165367953882803056871994185900456052232408842052066230921821417366021350059741009044690573857822019999623053193101809289425201982227278424813303802158403426561664863767955244754139311073366999300163975540847994302510201724371494476840566428667645453909268879271450613517036556639938658133157943206103450231643256032338481741453570765318377812677749838295720770395940672247452450332123348079155755689204890287164752799833252326958955274975109009141318101212510807240629838553747229264856689593160568499198761744771435771054756857948126719747886778405431447206064316353769447099229219357826712928737805689131102155176446440023819062550086428967414066468906566549711135459950044000049989375226107225265020033878480345628524313185137795212050900499768102766229085778156278975208481140327855504745399865417543301532944964114378863574626183863183158929809616944317784207299414150025821067509971278800313659370616542453766421186936138803561326860176814127803127519508606292289691083178533328694867199073241868599816004604806404948201350241803919466507256149405486501600895195488087832545802023580220633708332105800072730455998590995096187420493157286508715572678929993225935659069928023391081895256733359071675761312137513319420145273848682511216364893530331012316288965865415819810259379165711506266151738969144704688380125001575651803778810611221904552748632371637045980055932690119439351340859850920651260832686256375683805931467240168259809900070557531862744209049457111503156208771109865265698663664378250673314124549430977830464511278550414866988577875306850607512896270522161005322813590619567719231238447272904111795217822431085548964622005853296077384536550182115590819972091300103461603833334137754882029350312619322908953429102118044094845702343205899123783417756719894511496898087077790637729349688857830321541335934066976446915532334028005688210149563961383544921625580465568843208145540978773938412293613827481457004759688928434523037882300636100043176891218980288490674168648811475948808722349862221489424738313265908738285926062377757451246982264566792850975457654325197609224333835826387737932537703114987739515771946211536800013760882021210178365216444162863076076696038082064891727018814382515361380494421139003378395038369563180624668220143142121125126383480227091219945844605907960048866494597693029416243237087938254936557229675763269303026603416502881733227175991719501760565383141736467094623814642354185081020264400996095348532863434731994537419069984738510362103778371362078345624701077545141571594043487726759877039314689489056922643158384203081713155480339746762958643273841526087740003950295050157579484898719263884035986588699807302606401281258242079942579252070228518290475251101819088912313660197899979469721938090318094316652618883490565225895149554698987289804951394299039139561676043492287609059655122666861848433264814735603274020837635403530334281238164291904908401311509277428107070858467171626598275693804504210504445996560513865450589409262475233457591464253045813745585565292043101359753188274338465362889915936495878916939716145367846157618458869203336671126060973045643020332152296841924240744287450868078765250662038132457071661267921413980607922682361922908546081722285756105713487346424152701037159668841660802803507323476555096945760452530803289577508426288048719476521348405944097203053388833696583605710985783298216547086800607184524831337309784650363649728545529581868242782797957647884439722723892795988516060523361083974668675556021924072146459150504483286864523614760901077624586010049065983554009538308606281714628320679007089077886999988996173346711288895974454770063505243347916989292519835434786383311493867621342485354054237655383137949336954090412395680659291787188600782432171602700238327145970769841198620695406934753687505853849013492738772889391861044871918232798019528840575070071087802832150587489140245309839896338383414736573146293460309348037987877502052254889757907312264079346977481000226643753608530339071185565119306553468320826057802819420643381034273553664078982584740322115505734993588189654108920365065740169284008370727565326479876543366686010544788227125338198365125784955943597160373707615188211156927780515985193682130723809210929813429764843917120863319280709940632736110536594649629156517009398662750283487990546736214017316390639220013666450237718265920429756333315617094553341722612341293210503165452200965917979364799297351264245968481066031337519757041345537739895129231441785047460546379255288685919915832241827760296353808827484440996709850072299655624798228764552106677127557109528972245841957296669753670450358693801434295809045148747650764101894554672460590404822243806742787075486260252750419206841307379170473081940239723684862641229886703494955966943993355340197753628265468482866302775049367118111749984615376988417548809791814467481062467752978288158994886849047476221437684379953356709364585839341691346242444109544976508111058703837087365890503522446250293326254503169129565448158683231677713685093859951292461569586653459237356552217632602092966691600598678703439676164252438803986458594405757509484293963555093043442956120444128008462045792010371528793553998228234203509861211962779309885944757266985134102451549693737797548625041643350125874065731152202871405176019484547414613416922753012697579644457788238984377375706800855103695367504274853908042490992426090704792451849485275085507030663859662896834229086892136842390762433212460884465924687983107372754390962455790330476036714887108192352887668090693031724924941766881684546492312747938603256862318324891142657864295640856529621100552395790875525822427226608554540032783696844855759630920377111127081444314142739106692337820540014708198884259408113111614621584927442737422197174250682522770681260234417870568094477092689847915527755826803792358747707621130270848338335049647512569905453684244839495899349733872339359762569534671147992355215920879896848488931093385918157251528276795324583970768699709275958008977073701860578477274962499083597531583813334215786350108956182660110557193635969393963892207541342612483490832190519244929669330424742343573309750442565615979262208759333495349128618023749802566784516421497599496245521894076346225095892554215744140362300095416758227741466892670313787629921814555469501477623711964784299875926748014522161508855603736830945057312096577388595166960709417460710173527480448817964567843409201177908805872796670288634901017051778671214900153025310218970222067441469606988797092187365237156788526989276762245423166240697015369628985662935335879919145132011558444653646021643612023689747958311336848329742674105297402830021472609699549978777758060370245571251446228581589395896024103049052559161493216666070773475055686785641696157521589560656849981490684688055731932429267217206702341957890891318255823100028241104092282527501021608295748337294483930878803721806025088215363766810601763951589666857036380399437003246683887353803023906814027669146516277847353998687924380166860659655778183551183259375502907959670557204980733689033190376192707103277536940618434593068980098173068630019490043441144748416487589168491802597706413263782312952269082961984244700675526194438296912086627557189784605128653653479406524152454908593468278586386226848899558765813957478791627113659873093134365189142276671901063509208131642112369247585138831779085480111447584715784130883552767643727443658521429315310330498126444876047131977273546781116552292098622928791757467701333480017958678688444779760929673843600283387948387474080004746307838086455049197482852735173097228170516475232413956991544160490640643710851264847416045314275136993190356795454594198126671092447765521213032828661602546249011569407931520178868895553320097350872537324253034682272234538609234726604332013069076262591141218022814677939729184166979163491390081361383811556596452078617499262094396018856463462865857332147463618625528837766594071431802387102254419235256515214055237203398408956245957207878994521450363712946227034320249244540887676514835072134369072788291024894672830834304233236372923706900500066934408279524480240192903315552200991372972099210096679505221009402998894913797628954669546063172597455612733706231692745616335370183102103264396629009893035087196003742999777094691685779957348110100505640547470290032155420972976606127022340858736752770253084673971777695165236972712844322139617784656493212234627857603982679204765538005441391913269292399861305613672066424469231018345454830014727668048454241844074599467427735255576344247625953958081345663158447185813774107275975560126371293597195195270328653799826090989941943888291546846781102528999029023099483652242320607895168162973646512348073865437842936276558855324635335615749051527198499401242307108196246048399199772673292196001092595811843797145702091507242283591639526579664632886064888405499049959887763095860404861643109540844132984432205427225532857947291106329819187584616883566902302551474861071078124322621987762659167052817506336487471534360225652460723999025854600155139830673210148080291133143496289491384757367241318227059038573303475221728086789456884531889726868828473033028952556924309882547135644689040767049214118537357393771560385775950717306013238363435097728731546751920860826211685690252167067208829849751769900909778143642343050904063429524132708216830505673186532514214371002982330205491023155456655900307856675584704727441246677690372813468890450997494377833056706658093606216638694045584985351015206677147395318959072753603002557070000483625418375091340626502321288789510671714204739577802903064996075504302179166252229536638110379484450021435447833469612022430472904171340979129206554022833896989030879020198712646264736562870086170660569864004934341829134463904235831550530446359625993304410826699652673395285468802871242154677205847759331539113365550201118622955000647573363826562358422281537775153934706068935594226237849448471440103568591542347452740557436164170857934681483891210893902486022383059809345121109990326546374998309242782216630622119820157815137896744769243281377732982058209100840776646478911703264006860066885714328102291887476206527306528592727800810095998740964370349951132622787926047196826785256315722635812509442495579548997089574944547399943504024890347250602162212812867695132901513318700097354105817145587529344723789788461005225884516148318181295646488350195405426868164167370875587054427541110111518383486005908588171452026690185030188804297577073302629583135283215986447467924883885263350748646279548356975774389546728415869730547466267530953132684927265847467530407788909029996882634343409205374069847340238022343637497623412304088090314940667418059234613305489640582099261411034907918842261989347570267741760595052241327927468606717909627138728264819915526887074900341569052346011463537474376765160428531906059028230127564986532674985177462476604947692723315333729310060740311722272942692618573096409424626331007607752832142049945761756961075439599322801424526609018192426443986669753015926490772769385598454146903585960707736960978530734071936066597566831910782786815791009907881164755748231238126336477302589179217629174949624423946845416021405642578206374158073850996759852744421843158573423161494011253405105014181636587125217992418179406503415022112086686667996890986995549476011566715676632770799459346396902945210446547608289999756548911271920835676053904055842890673500432715958995983316437370169676993035306733657436753653768913236839662436590873707976919790546323257911950279714542833099897005467133394302821024259654381738389494851732021400322036617651962148602781538229843619501311339366920623791192577300127929755074203919146656382806830044343401567034573354250432635273685593053397064694378841865839202750250506571145448826802484054881449536098428848713605686208598958665124349987469670259973575753467401136986104149866881783510352524350642063543634388090215747904697477176470738378993799130348677099939307301274067709419625911350722653292385444358283621556876981735816028134148706775019244159942313236141911094188493276885548419003979223710485327246975004347791090370158135993358450974637794588397766372666961178706750550778445406041910859834982166233766090499639554642750530450337344039791143155276374553762248381121175884557976311587240041789104187280654061517265723503070765126203633502738552600136276740051927903021166893623702779832014968032785943898217008728474623764846648958812455835093714264069661040974615864705554709209877207129532019154162745372108009406102387220523354762224189846291288978878052191248587008332914388619054598313127078459301458109960217185228821518137567798439523315388937346990866779831600682294885962671607892657079947443302422577235798467165595716427635276791814440415529014956115156443671696504403104059780748259936555671760489078835990171706006064534048169554124814346241834289076281802653717907132566144686663672670015901440925912549967317388730936385281921972981030903495727385475756607910973419412796382071831090364177060812970361490414898670344424291071029355579710623853730153933301450224806999364669068324987151296743017604475215140788578763465513204161028121918243652359498757750758273451007848240491022635917565434580169852167383500036856813047837736285156838337419139398789208992207701560783434435896097251415210446353250138061671221249655355202797804762125452488427225267768287346750520085861819288165655589577730664440601761745255501955395765738565441750187492392923541946151769539783944752562348764119043554726059737552476933262023179404233930644297159986912524635328251300275174008562613191213407492627565005280384935568978787433219594130393714677499072674598951435867646913758592243716722957690987452067082681169135736316260059002793822870300953991812687656642302354523224210308015987136074246039175825165897073806701147739694346079453165718368601048101203848701407258215122427170603289776352152988349282304404652566030686013668104550059290160027709820547811289722678547006211790087820640853197943507554964748450045564020351557373832714093015681765980372153360344808541150843742495278130701110315797311244751463954256085195369749320555789756359515341020624542163665382245756881936853045335545396378685555455849145742439743557584928758861013312145819295731784574485304177522810381432324715506941164642727358896977562821621943347845050147232663179623976367351436781279239545120331050636698569030157389017789568032003740907368581028856710073774355928825048665695040668635523398932116840289315114074870167796673656162744324887250725538293205831088564269058251034394958210455775514945701093933970110384122965119914086303581651767334439413252199252072351193099375782825809380692118894378537653837203014639302581699863189935812358645975284242451584774119830867053881500260038654845474090747691060937204066079614113453525457379985822956993080421198950585854708545709247230861848855223666135018858718011265652706620314346247150891145305895691235901270508665952024200785850367021861894427324832299483471645087007185595901028629834405081690808304476147672911814006568707658357915689806194849565766444268965980297605700624580135235178673787317836822482119577611086943489108975436749955006217575885614482712980111394494545638676033244394622515785507777469753094395725997197923630952275227989010940892336442254489313192324111634350546075896111822558357596495563948553577758376645491356293484414005549274588600555584088344943511424158807734669575371347044601752839953072257592688619404041838111722792596274416737863607128293595227569385204679985256895345487132735865068049324189130653761219044233836501917273282671989062048935231532819713731600579403654679071306270591047700412218954023376387899533231229252144367535155248947982347852685192542633568070767418804147975826060482675725786253232885613945993043894531168448867154144266899121792967765466913107379744103281442863421504283765548256401271917290739303528028298198283904953122377234472463969588214428878768511431631062341052176233527816481613816134037966938888977713348396494431424796557412881327179864000462002625904439274069776004734328970697048217389145381197385223485542521221953455029921455186077468885037206101905637499308427572428600310315567266186905708200664213167135523287130419703504997686683964094377926290555195214718247623072144458376044751640762094455535322955413783583859010595757192026496856177142694254260232650187444730140027901436738139835703311670113523620737488865000376207277553883447882505225946257238832687004073161803525167575531846038347934087908891432850904008112470229862247781549613959285414902509635292756441122840453225211577014089426930034192109551976149414287943434575088044540813730641213778316705392320668738397184851627845340392233132713771331702667506246612804341936929364324919545602339815758621048304542363969702594580897497904678150592345409072026324813264827642367982803820572732218441535700505495721237389152476444613619695815803753829538360453979135420652024377578619654779672562093200416089870237115670199436185251578540483862045244462557002324874916909208244580587118824949619503395165713379870965187628841880016917234200659179388828320864195880981813241748300209756243830438884090754885314771997215344887076190653164859650111211154981413155021055835296278368073345888014875333113063344885358028590652596936555596950204643127947772434918900539443632795733340529927570601366645160691031544441197364947936737802021598982953583140088109631081681501437766910695718231454289383990371346441672547971507163521043916158529412206040201732216713445932963760484348248678070073740313091163925952224369084547766610773436055864817404697917188781457276232684075736946768977153608084693221743970088382300763408541228068518303100035664956301992844226579155654183988114169573884257366974707435674777884590559452203548720743381770222451456685748171562217982472585831352646315515129309715907188818592418547749036495929860830098545193269522430771241162118990148802246257576628469157092204761026603545839454100919893636950764318531460238127574551357146631403043092626706972500589353155663037005895581272295934607611869159191815703838128438946298912298492884652817605391783517557704250775170645016119703690877242001666047728929549711034391472546511594924928882858072346878926560324200098737078404033421071760971180051011070858634358697663665075936248463119159194604418106840165811652954655799538255959078736676795520491547247366887320409998054727723885868623554590773443972982780153297611335743047965882607861031756215905994898040680964784351728002859606343935511830333810825343499142355785229457819173657698988647080550648086532151478591371074142306114830254468897869011671631845052424956312375027517711056320559049506304176681088267765881661443219907204810731162995498401723095351414493246860795113808722236773564438231535905417797971292364064093127064704285103706860427346364107963031571290239274262473727614187959842277172779394433082414893928019800827157916758702105014307328034195243548178148476593490892174234230671236099854375967830674079804018332804225407062902635861287708960734169788125285701538850358557526732165905576977082809650704275124052193655721420349076933180813613274007349593169173759143835568236544136813881052969201269033262642872295517811857449913967956037787443527861503032736307332063930229427165710268237827119253332244426235353270920684163695704525616801667160713905495319864124490502618165832782307872127148063181232864740407899112053848815440583006817655260768456589484952089001746908659978860186331211941426473961297597127092031389502542651406530424443419127148807149323780505634067596710501925580572472231153772710046863431439110649808011923339549528704367689262219764463755806362333944880942371070911677519330103168293458285487682299642942295555711336485812946555781433384244073750838872808413315865555115238567191812186480998904034360319446636806112416376413774271528638700570640566228378108553219776138709615183962830087281766581551197700535943716836494843343332908137958633540176384493403470403964011148522689937293034348310638479115034325244057329456809721935105446906748037311894213264343090096917537540932037027879822771088457073827844951733800942496825610446542316292297619478675216375652157244872768078134362827561797087754262820750568517340072312784167865565081408166192422225905157799406172423857232216183031094186167442667059866814986042418748555546242253866552577193906314242868773673677907472503854833873701223444986946178207616706949881223722818368339327297219537243264776975200556269072447602671427364369434711696841234075961629260095527781261211196190238746505657274755836174181903412177077195178013790707249948471659197083108647652253554008429455976778614869271490583768493075188887744855187106139282961391899949787022538435094882547640742504524327596425782642035417338425731374799879063805088999705408816991537142622111849824781612026645367123231659907924592822671588427448417974972967223055315963233002428670128148764732675228010902571393170449664228990021701875626435378700430076703700644259038730261175776018982815780335257046298988490149995664369336073542783446014647739678242343528054294099079656168069401760607226637999036012309120506969780614170078406373407531490075002376607296313357310000093769584195185547441078511080072465799136015851633795290319035989622686151905768944680785536093607924312862764924033204773455315543712713641565805462377766126766508339538501083963984258840363330009558550389039172426168232627162122607766291814193700492206641091246209188427219585148891986365265023370188461046107902859709238555442875615810038168886757170343005459301644768757532667598623376656386817153264451838826254697936982637486581393217504581266226984570777925799987205283927153478410002649866079889927773258890930898690720043975900926620168771117824732568129615991064281054594517202128920782781865052864275046946775689588326314928358127222340442792533837583563840123161520046811980218960852932629215307109405489170322627792391875113477361798778308413346203374244980607939780567263549802266372865525692882348811405043043434088003339355093612809916137660680813647734855792768037212840383537790631294501384846113998065799229051647631696006710484947156347983579398156906295105810821544606623601207259381308488606297774842068246114079613164153197533337377691685617678719926665542809514062169871483037632074725105368967334099030266062895042899452610868804257562111097079109572903168776688370530496847708222560643686645130468238862159507695956181962693907948559290717864413090844600755929537855247169344263045623445255422300125849512588913572625232689367114272726766479363852151970862274429069870305774932390615686359593727792842940409214609868152951541048373273164193223847655723726121657954872982561552320672617113301118861862808176150246825665087133167924664006485372953263468076242903086448533738844629568582886376780557850052065944194359168075363506227907275188017104273378667220155739572724833834193309524110838530076292035775364230434627142750206626786435728166943619815294453209439628241105964814141649138826984662961817391260294502092967202044083299460524521032116407904975417199908016543609614191075105676970636148388165114159587821451755064417372097300587199287852988566245720940480285867833903750300396328956324684590286496072926580214432202558864960454148072955819662505169370128059146226656634733695957123741286456827244186195176575775608949493765236730322531642924255094171734584472106575472368239252743190729731112562784978960480613908793406179921843122675358428098011367347743907036191394540426224957488567178283077429365340758922036273367118773412035539995408477963106024784070676760213549767781600215195943230050268519762157921753711590429533707420478678409069937492142111328711069643039902764951668214662764793918866116800512048754622203173213429945261796041144785906776540628384170462305568368152217840151034208078336283442006451124631460246104778540452809106679619702461250631361134475482244584972637531400377651784289301842478844613067059562545703523577270525610496671318571230401979395542913754648343949743226231509711279241652679980665929638234725614249477438969914343554088673457643527418424110557435649711592915925324915497625650471631276610662585911411636158655306788296627608268340725287624195451830209243432037970913220652825348317207516257367832351513142723273987247379487960644175917991514742848639254978232820305765182638847334753536178653165659903599395733072757363489964778496008860795865113482661548203638152570441010045638265768463153526908279277415288340412225965713513358766120905709103783117379401843776848370216974616783214627860278744907894694599408907327262140950261595568413815894081121308763169349030302951018700368475075875554529520616496259546019858790141093202433034684722351721492928066202086321248082180855436259686949412386069214640826365006248458866156276812677497139146375009264104143421899203280242011089638377423039958563352369808533753702018693109573862203143208455911080517840920444874075596154179422747540654424123605786018275897291977112357529556889400243919047248628359041435235299600259740994603397702039812747063605999287830118448463462703989608202231304623040116934033257432529868813054218133457580949682556783347414400010580104563985463504628109050803388297871530706147279771474712885435963161178382449013314911944965354380285110490123335641464998767371633753661832219885157148483072433247772662555378848631937327571568510850610549943123766271552845157400756899840112843903196452351079895864653084552095282981218030764581033186405302862982724184681918589313131148606693645795438578602951773333706622441259170757322877410254808797874685975936791905532107782970144684349033444157388269903950571724402065581017783835212600716196098961015236423272695913248866384363947510614045106948453939180267853882663045988573853230496015568576005332414922333660721187822994853573339917993931522365141781446833418291272199842925242636263974252492025072281035622833814798699949143859719944952978233196405685366064802362121411643146849627137658128890518484687485263666615894148072323934438615383726850351767996847965857438403380705868501646823865234095681192529855011934607823353084909043482647439626141877093657837158224994626676138768956953833639426056442272358745496916157426330733875469861598328046052508865272571862678327233803589688710332625046941526359346433760952702423827806923045491127168736029936185621487696865912271227143734981869887674426742401858981422313576925802408562380614716493138702538120854070144642804721612771209640715109557874990862638894070908383861854051490011400969623950576641596728699399540691113863409539041214049889239553582494098131656312820997804771726561384879073378006407166138976849055552646585529184905467015953739104047174927751891077729164526522691280381815843915317488567675824230967188562237048997767692959732935111921689841373621078632251028534343862850731045056711925942718455473620256446251466287258085869794485785916441283703390943401787829448156957637244130518540475140919926464706397413437130317286123293742390002218535999967426255358367798605801343340303180101279602771190799854649873218290513728007068361844251227274451533380276894207282452606152564122242539849646350431574401134006813064792820702137019246579179444033065227988741315137621486171020969115842464986390462298834631338590584020303967019965041845978820510175557875003954678713938434079672742226884691099170827708095896494456621424408636534648381463811349867760778712650618782106832746098663186668388780392554051328962801108206573365214202262344793928947693215531153333685863491524869094392569208057446335128479594236720143758060207548037953613487777731143218895080267604314607105393457394457101125398031377617630755294481099402038773126240634006696435606672811758083172334629362900426932667894560869948906338546092778673565028780994745237480103043447346198542137429898233995295126677791611900327645349456489047891982985856864151080573317844794821909080523481448368757066192345679811401891014943879171431074071400587025919257123612101313632683401561489212768022627355474097607538756805807056017577092125030010342651005665875179428449525171382751204352132136470704351763999929044268525841927064152687541299253414697248188860787094233570014445838881564780358422495274882711939788787881015863131216248825678111816149185865965518000538720652403075114565117906573248126956974813985785326419077936577375190769615073054778270647248758622200197023270243485730768454764673011002230587208054539594461558832090166729165012050679425233902333838061962852698959919398104629767003531944220200165326695283512602359553275038002623008849509248987504486153567138473630620061116363483567327285048952888623077066383735076569312033658714935127518849577620585743410873954796343490910342862916331266275806379074142336576063558670865805661454928394523153964960766290851993522901564167089156990877064295417074669047856609985626112957595191568502407827061680538891723806151366282411199568598434339964813444781201337653838490385901469766600818400126586815998005538465234882476397307460586035748458664983540880803261898744519425981096671991423083099284540168472543014457115486950338828947784585191710389405207784129047966944823880905039253156990065518319068985114575786206350795767081630148411613242464549561680382064853972684477955820385221564909865140901443356306252686988154141089234950446053599084899158497160757836691446268103234182879940148048075951993101933486869078761384032252819385685538685295905616976347453160900130029977727654082047661074499930255541023314205878290600647790242413456618316178908260378431323531292032271896794912187226996040313136212436583610074771044190494381123619764748390382298249361138019844877747430649130397480406669020644941499282518654785577360616783196963298998648119741443172459332983023360788247088772197912534263579553180505050262561324373018545832496681327411455241495368509124058519568780903970768226617112988474922094710551307455405185881576843513965511839271603686602378744041129397865427325926646229338664433074934719543961758648740576966271063903042956132892922763663166278189838293289744990347675690572815595206874760415881154944261396159561598563451748535924092892752802814584570984666017467862284081326165534121943179986807675429093183104913763762010091891992282668152783073942479223487938514404756287439588570353548121761632730903325240256325470762763320633600243899500479521241390934988931777647630196421141088518406836978101617358249612940536233473368341626845394288817746504430835487801322099961570569775541707370930301863280656561349136548746234052884905896476098945219614593455707509777661744785903584542836426092199753764332830692730254945319688243924081830546710478179981433785908183272419488580028082260497674779467569535899755347449623010115336526465742270239659608315380166471857192499181068702556005446856062091997279204783002934767851641719129640197556250270723452499109802190597142982893638877013234839215078949198242644683403868831759028281334103308311356748850839383025168772944544658778667189341716218869728066221075293810641250047909269433627117541834073740862706754028759371321848268494367442584942529218440396188733872765323882794133361796502932735291997792161446968940664044443071427134337599415668062368080078856652844847248364306569130722697130491426249855630023098001925495713826874413927293649094844912915324576356742845058747369003627770535324445975957557862794436494700756710784441699782017330650203417389758045763486361022367924995722334620654401595420774207136027776878369475399731579820027621920048263756621239695816777338066978112831362832812950754856780245314809416796799701776841722132846912667655540369953745883054315341634362214552387659113718861113084806819847808718125513197490458591370645848351780037321806001687974105764677185583891743379445204887987625678072555246294387384300232120405378271176205186585308635380551869630898415611085025905628216156877069733201899043435075148599163101559297509459090219782015459559054094698612676073548005059426213954280635784087976904707187328483948737285769339118404617296909793658083602526054301659566540286093422418889483422444630264580928666458135016151527620967622714054144879907680610558477821587264566188718002323716889244218179681688092265965153382401314912880544986289034499334513303734701478540024422988867261008563214027330871641942931509851733450847269024901013239907628425250458911624572914919315895842749380252406070311642192004520489124594706278342042226216430388405773837977272450566563582044470831652417443299123879607008096361396975917696928573747701251667200092558051534634377869432778484560593464028683235739479553187489663894776823007149371722662374410560913088291274198019967775832775527044689625060788267791282028455251487305388234359572739465538677474029521594965815490589072551628428554573367007542197127868173643112299521020626968931601647419919472017325628079393746406423703073377582733028236529695608517620014461113778154332619973163618105493672260167165915661117804395270286275259586638569832891492802172493828505099569582480779791076042347964423972309484329306651955063534729068275965746157399967015278541212740355590223020151720148322880799432571015444874688515017281304398084365747086355379048330861290054873529016404379281735105173688731809913504879301560957265976972388467964822913110460755608012168861591721643611609931545412327816419865707467266434315318487677184321860922789011182473747898191298524098164265800448746628067268927025743045299731980275934240950436327589339526711748448248314624855321720123978164201982846873169767375110561842240156484219496685794711753909539649366909448181464666895601194947318756374714048514869800342643821712312320603795621803433050441221930372126200897147103026694435787186862153455439354608337248026541041304328261930575594473901437572870238309377218562552650669504514407045956621035562628270661549383893190329335171802676552230928701804867397453307446997121810431221656680224144609775470929679106029630592387964964656066706237631105576453874670272005010348650456948454058390362034423461547542323590791060109157386536815265770285344416249209320272422241017727680150886176381996710696885069334665875005467994233466335525451649749561424471236760369781466738803980421478449340967090378960579624249306710496436467329782737376835948413502032035354859324579002749684133791927465149102881525031852962402136739018068152972974858644860985258144282563695756370403012642986254554535530650409642195405091961641078606483520068281800472786440121766777328599495725712493917116762325982201388594586650566267619774735295520806025051630706854970129649606079517999306356029571014557157387380234154244826186989035466615543363806822993351594055743073709646887828122011335155057939222901187566418577821958389625870684025832080496623786635162357958296837533260159040803396834798436148088213761662336979461349601443339814034084641305642948809541357996930375415685425847278188989291000086367333565780630652318073282699318620255861907298498069106363653461270681795443041949208475381404281448217310208050988288742943956065682212172647981340227053270255240423679702493987932795817092468016851339660385692769513327883039053853145712604709291819476926717990269876846460503126504526836499544975379264098952724032827799516655233286618676346267172716358425417448814669356908375894951318628726913702098743940519421905145999967699799722887457766588652187242401107740289327933125225546120933934929055110221973695522100152939715202436105725784865427765299601046911782021114457086085801911498889104058859472386053636519197898201626381033120697433010803693494127338016950881056053544107655316933451110292691473335015777483861801633734413970438798421840719887321859728286144831578287236501959861119744863779249967350090892902662112573939152017350226469769897759764017116026134687435214509710705505881268025119360501295737537090135533239834742494185006968708257543174867917022848122072686837771469469357648926269397847073554816094754685541734965139565290914324280680657264533204679893976161771159315036625603327553980355932104677177002448274199960535609784820052428068837245091963529254813916390910260789394194389165798961522782275516651787287546020640356071846132355939994195532456084473426501033855647227913562769005594370917088884479288645908689054585937419002223474203678838843417720368528473205572474634848136482749009530182185417168373018862104100742696737418062523767024451802051034415695377523680476365093077246101922634489538249319981573537671761135160964365414314664567082088570125904973880758540831981961344201615729082861742325953548978451435720470303414126780897742868885182114892344209187594650760797177375196757702754764105619196283217547316553125896873992701677257906186777876667903029375701354162104296529356707558746245554394278895888347981161209437681450562707169267113103978440268645200981870660998412070115446934985248314820716091831853829334645952784376531697143109375768898870001788031050389294504257010508542469897572817001338336298614576100303477844015329206086969842021926186800817209608199587595137473506643899600968535637906985467203171878545738552533225907473618573811660216488477183100675105845528451798618536590045214249624761271039397186918651211138004959630433744307408282481053066100073824434388079060071649020966007856195660654277121668803794427539249947624240177568431962070333393021143795375025091258656991187234716849513661289789872178297432412620690458515564090085075476978619084637500997747201419917089326690024272796243018023074262908649331898215720748375048019050535893948502065816341767761874076102903970960500738051745328938424922988054746316811211689773917287598751708879973350888014735522359989937950495598999696051605354818588924820253613442756483242888757281130537984528480959453499492608483374587735606839027800087334775871946272102418253387664480449216096768131836996726498018472834389875582494726358312836093590171694553463407322273573897856584304335853670203431956480214096335599572361346937726838930573745909618317611182510016869372197677128723148169737413893399772029172046601573696507337457196650184058661833870933956635103583183435741394565423034412495028663258957495303878866214118540204613999153321124851109226891696192164730329380823112190931611847403343096028015272836031999934327362704087692990944761017516436063401692436000058337747890271048494040329443671283698285045768470204216809958984911482739902847279736554919811941455327629212228322464317762795510115551869346231059991099497597671985740122805325044550054083256037416244847042473998748155070964656419804654591204360607577226425743960338690006317999739746986727384574763201815191237014542752599040909509252067663854788200116216197577064394673729485169515457305009965806076352947990084825731655358360224505315614527810762643156968200576521565464681308868896480306824763807100962744430099404385820187028814016946157138627613165862230493632305461202613363258998315013993529772237346331972928692135793325889895855289019608119483177385216885099762258829059370865589767004027788998071572658384638439869628162507664035254234042771406324827800417111071979815863126091510368246586229007226761143129908907743315248445318373253349603469644243050982229004976707242177773667378900969289776908600273199822901505078014824586014277897074517406634310910414749937778951418344801313734620210914619666622868508509822157358240329734886856525060276800649173655880385909980365627288053629467166278266785533759292688027458274660162351312043893527240386337606394590768985038712364130208768237090782761629703198664178984686756326590401613328452314774705526240900102908859086121573291207299890577384722712116743085797610960646866751425579594552490209625599483791403730183756561718820618814598532293731776934194046370397362928751100155164147956228001165228946281744810740871238973033876431101324662289701502498501063145285302873013967752528535519411116612994848823272379363521460163328177901449279680764038166186817449529700826641377168023572368933885626793928500128477014817032586409920296851258242901599004502306835260552775817089076718960424194970211924326190442144354187462980627488525397252733963579521215679985676209394764505458954431982675013749388247439302227158086417270583581062204662622185658394348231933723222359419103765100046196577006096582568706266695181263622951429053395203309673321917651831970788502602917392226063975007343429157885804640285049651823847336088160999019399203159687823774438162170616769653895206662491442813157415316507136559517155074570022917464278744221573817031656674591250888700680870172736619977920313889594999555906330096806804413106610287648757418749828903765707104689063243157158496395569535273973135764127712648541120937158418318774987774637706884464824342006412080587386301268442302073421147615281032015394267876548959851178576736944829916092061753915432887669020709647725020658376874022475742860743601225083001548999143922436783915428975181442082635978062415183798803829513348945251633542697430431272859733013065710065355219150656158578049646574289109474964936259015681103205830267716162337482298122422958714999562434886090563090351294180815462662396497940970985838859524863779632787049051032072608521183970558547435318361114504134286546503067677430510514059781930700843955765643625566290818264784739211710449267886875472627969310446957451362790632570336014983448940007123257852121223852354787505454395374333777306942746012981819312183715001240581786769703927511136385231683211654975456546112029343604149848565320818874523541991867107192494720905037274497707929162138153671524392709257840971482856114023865415632152756484073619093853756179767627024329606542052474532510603397632043138152002835080595787372453659208472161016024466616066018868255039938776799665682442653991268949059670791603266952626401798228079333165365940042175361795531190864228484173931828614970310480146383666562305608961492258151454383950509376954316695377833484568423731225725810667234782468526874638232099700610179796464152723853734536550490402825559869317821935905449545055757819796499903101714435759647541128698972585899195441608217883450580750187983855988383667811002397056925508920272363275353948184262494618582136874087738818099137313704157175852614286904616627276369904383914155107705398260460136155907383697009792168715491955473209965971168201954107046636898062107019058385171394148256317433889407596521833045851585233888747263728475841659396073285630325573182815878068282618255182915130380058990989321328205582115727653363798009576648753196251708214689848666357211045715573739622337227611900492802046450333433437712799995044769277630044986261468486407217065625611231090384783895075636219472058883392891456216666986090399641577831915873872258797451404775957485912898684504795432748695207481680042413568364036027149986866167984412164559267733055903860585645821374270951627965236823861131917921052456581299532800496031365780457960189804210936912218533865702566375145732813516745257459389859412160803112911095115853065596566609752139086609242355850630709241555483219123171595217104245738715927510808728295011760411945938734473266571917941902828777164756857790442502126836672749465619948300948745021722398134871096222407030986301729495099987267857677668699833649399190929464119097672140174994312592700989283773661584882693817294669954132459661410535974649887964401718525454344876603379636121600417541000132002417974463300323934329529612211366467092628147810359032186423913315119297193706281645784900619879760180934628620060983477328143968814195619748413832796230249145369485586719499413386231710810737558063884115819017767376647405225866225322380807688013567304969708420651876053176009074082983883481289497433509867886174216026139668204355499014087783297743920007702256197694985592761690207790569841055431428785805403828907589893979037311820018331580843886190221934069167048999948018686705118229072786464671299091451520866534460930149139122603035118646923578979320734847268591262023310117028297721590899728552656049034720247792177184370540132212970801449477058029102599427269379665926215111762174564486031613015721174492754490666168302897893832726900971853787786447495374024187681643166666855253735652177675233201020194526246954446919044570101772259312227680055356675919796262216583768744758704978061160983625177797484652492939101386291178565417544265990040179547372070625862171940707806056514619694398980510919829920099290601541886750282709494283368126428498089050534597090167422833970226251550725259315963742125069902971939854697488896402058579612944929993196819654662943662309129356646001176825338833577839088248084551667422622026300955050174671973622659604341567470418824111902454502472981353648832886688104576365695601094704555467662050788155499417561580709742864749354333446248373763300669743439014736123045777650162387278126191795046964221693261760000590283499214408061097744440747390575302707712907702807826572002808737553030952364182107214521274508670915791726649070443542623778675054808943180305689249493617466210906093300124361235560302668786116346717632284765598626325067350176118307037116239740208038297499206716489654819251597267162667551548548173464961243201836052579090314106377690874805229777783080023853116666561254494449087587954234074113433193614630181095083296024423632196226245225742504177067640683047699891176016494629378636133907612809598560936881226010829753217320796942479036569041726590140807372560248230145427849445603130093779595979663196458855588416727160535513222445833929786001504685762802636812799606930527118060706620589368179988019959376092882002157828634341513915390206381879046556206147706829532457278554921491697735372451523423882495135179328397220803352256953615025267212407613667568882194474478253384830865392947323951608703317006367009159569947177730571113823631422678447456595994589601279740558616409835504271066770665349394685426227824749172626740216286159611854799126369203887617465368327701841480109533900661192509219059926260011322388540938143437042199722553872452229652478230144402997902714790113491974858793911640320671655213239358333033441442473857059564401275209546354827461604989220239029540259894951702174995321664388466541275693523420239635370493175402713343635962905126591745105308119905942909911579881362856403982139114956934861422308224062052508799630588294461454100764575794533009771800177942774066934228286671693028275981158886624932969939680241525167375575226040881720714850678900156649832071962317109856574243044578810639749931830480402800299190621599557500402413737222350883050314952405716477318810148117576070678561516231715366173574934020978081121581665287253408124872220885602899708359428642076195309995080733057391723198759509125237231120387238193634475611184729482535600181532588772161942716440848198400398339453813104608777663961557651378120924301656197890734083272000471378057726421214586280369109309552179794101118584595490131816782678594970416995943507071395470910290350984660246110247679646654017900726015902707255788530290719736348334038020214705204940427662415394379324745796837190379430065190617728023767815189300113997216396625395548394165746997510040801892163803795619158777699595831610118954427487665029090333157642594892155064203892687265789740963254482520939677396337380348867342091283556207528409013846209421398325164633196239373497632671996422413471920987416513309719447327418134748714293878500076937702738617030819036818587102227911047875370979733851424680459352861016669665747824515057259394053970165535454839586977784905742198356805326089423809823566110832198131087590504510025600088918469869527707474120967150546971682283357353041264422096593807209429882050042069371675511245658387413975590771947665449077032425100138869502440144582498984924584701643483890414570295199894578404464172897551959900922096942591055953510011629413716955564546996748563194159040409676431326591554098043791466746223333568045853778810356132816143317203877464186118460621422005858363635433227853386053660710135427520367572865041487051828114312796183622885614439299227615389439306951273665387243368921374081989249965454274210410059414448627954464399991891509328850938179359614884108009088951025243890895908012440645463687700691977845381236084635826169346836049510394933409493832114836382880032027669502052547389453498502754725184111228343766066176463030804655148047879851431829484003414824240379230466815075022170623833555971296006647937816855373375796105903220513066312565380422565058674774428134099002001686032595870649938623218823627306636594098240022391079172555622587710537646297689596758567589688034469720358276000680583226952988732248163602153036998213567097965089575843838252260118684583515160342222037917991561989214376650921817286657563722224859233407846798301596212418786644648369278042680828498809037919915959737398143390672680566016975555373799528323006122503857958433361889310925571274917695367935858625448860770856616262717043239043460627099799361846083405972202839110459234533884751069004621067986667999739789758312962300211767577149851499131442839023740443063076419670545667666191271146291123141572794325344768680609922359554477715753382154367006232028466091152051513722920191232048942079349241700129757918619485469621381403857370962412487605674082863767938677753713382617305366186677440236951026943006081533082775437834407244191434144937621344260947099890470808821752958906325451774189000421126146195453551047507682331411452680318488992555812159041746670483374827332262040870722103339498312332429867621564025133306426568839733081095527426003873665583962949841556831303878065860220392070907642113510153519609963555179012234369197634229870589228088443204592799444898059955939562659128830620434992712354025005012104900493486839458900496873097770999315426036856800099852196225610058641051422674805344741759962614939689578719773694424208305082986616829423831426341046841666134867441688423969822258487727299122973619242354819392530504457724571546632804472262456778987336330717679745817015235222954375814806114244497775106629090274476432125983857738301293112343868032226081951585482843971922730543806445832433321615123910108411716681544522160312855186770764819015635099101373894035159010916438533419591982660469560649127143109500052361104621250316602082313874439118325040403393554237920436662547877825414925317018202977025676430319377439419848046229156465562655373787820558082828574674758533160604731313943422861943821217610059104951242345910897663909395028052161062573516312262210856451762664956832687364845742185025942084001196664160105418830924758311864416575989199351369283588029941509831084836802913290665926490121264211161129373509558189163647735598617369942902714664032948544584827311147183081686156075791479836717594987953249261534896466658808087291715316070546801136648682868285827431761464644123008967466027501608376497849397543836283144301517834467584707126159855077053022057420535573420323891933807052416244301584756220606879782237048969542891034179024337871258632058974824189759515720063090088515912677046088265349100194927162496163420207238107064441615649608224291564688956537809426795082658857087093128835276131454971554646698334035420332258628189159044698743563747671146753701211964150688798316094456522483576178918588860121778759666459046154556839086539735714391305633745840733946713013589764131401256678213559611250847434444562557829932129214549575228842408687956457364195200589969306385079113198034848207579674573368632345202401570520730128573446060555543824035679304669277661889771987750552366973005762858167301310117556776233745835546033929543371656073221672026271646827774763350468441275378269475212693237399741884004730886961919457547685779301022140293799027983171559096395803916923445763228144302452408485575761143281580233306176699425010405430937552607904509138126162918996518872214940391616717276671224308632310734740180464845232925525897383960106118686965181936167738036797306999305305719843534691718794785888545807670504701574191199947690459020631230441703054418244510483796671519198194303829473510393900021458452135479736827711402271575886472322846818115215155583251037953861329169077497961683776650769819048972423732763666216628207285559974878440481557841674260394958503397238999492540841841639569620722305370440638971217409804095435668172240632810926246512415741680300471175893379702299610507677343148793327769138206240197708300515636354203354781295170349044053497489640667576936646931541213112387939426289916386652102771317978870231457907002892176460122319405260745400808338346079835568504463704470296357106353500120195862859491561336047491943495524619985855916124580699830996308862573494996582348828931300457347665704532336912940734101605225977069611637714422631717982902477008280654730417618082188426793253303509643536904126978921549650044984442004176388468571030989876909354845690847412538114191420818517581788598303221744182129293521641370025415236454283164260787709094334392026824236571802576109556352184646396870126649896775991199406468182874471103780154569607268178380487453569792758082399785321748524629094195985792922711837879247658602250297332682195674308956345929037793717344298213108985072343512213404931924628201687096901165957287763712342947470041945724185784252486777023553953140856935654776937980211793353699227996480939666619961479879419462503772318196964177234955847564153496167646778341098276182139433675131948009018782307756539966567055464717732676363785854739686617731287965674634677083639788839538616158537671244761099660978053409296272125402756869256872815764165668417510236692491575603695302648298249013487654461017818216068182552638980217783938152942594272666599629840315926523493629804028107934027384585196161546218345370407487457319627006073453812610910931643924909692250104420536315208270543239260077110780124980739751919898062590279872715245993061799966301180242400446191771105324092529403076772065432113381797254004204886242161935040331705700185737451438589765045181970339524114014325339928179217905732130226599326835718647134270020537066323037593122198707557720351247481474625476346765173294425419919939833290520741229313388252968530503281333807085404420771290055244150285993098796199084022261048704567747181671387185064893463140797858265943576993218516122104217224999618896516901605446220030250336587157541380115885054991662269574619698393032409687405800766830539505383686431030600314535468210481386996370483129881984572886097578000543924292814392179745073054238318810684523134979416246523949286590291604518675539227923323013678887120066291684637152263253835365974352554288123391227169904985565667632375854432230977225956101724527500876349359388340554375248299720259938286216382782057167893161161927997161026207907769235836337056898930668593339905028396006589771272447191002831814724589364498802600124519115567506222232540326670373776624185833914764760941997377974827958057812900607951651044805096644002915965949449679365365580017891916631834115692905203606939758790336554382104885295149673877315855437375870088891297452420228825803724147414241334302764834800538899344547805405944745308011935783136215087853369181770385302257439252475268075563555433414531847687408911260007071424873314740750786152235727993821347465521523528117677701882557783743086208360264531446055713840876030521509135533043444232547277110862679795891368477416789981922591313039105417416854422000026410788467250261198140032478565723846907263236181290925144145985554121571726599109901294921595255891781806941485389667569687150077401120960534353064078357454398845398829050950478753535338541914244779689043887841033549419252911449701835932441983582968489280229553944972175319372561922786245685231105539657081520807750683692739190457000365185507394760223847117763158170097001462472804018834678643010054378632251940474775142570536142474889427834543720194721238137959770284306526397308599916362080615271790281453366514557367601100224515776624545258290467815628812570215874919590426694536028602642936018809763055887683648321873442330154481488330114665015613277795997721629662490241602482883726760830143541000024923429383365419250499102903813609142175435184661553883974263386476969783303648245776394331134851051438692072663881201953169907813401600285598488491872596634817971914617966403922159691442034169248030083109936331731621579048444447143030424329813921859631846892713872860347201322750519718177070066468159907994607321819620145640721003730805768991807959129763230752743167740149924548002556088867352123193315319402458361611701683185946480266945649351037111948436502201749778147492898719288718525663971330745888089486367611694469916451453234135241563426734915813063580644280715204526397490224219549641923721246619706047668134568427009206960629707622191045366389220743094275780764184621107841821371558868433983710767279314174849808565897752117468781150806309147160940727406591262229509434056557887367264735309561134852860988751196070707410496793973265397649401266178302989620629644525418219121215512558538749934420765054670149316613236625373081284843483737226808029020335255981705171867417751504125350617475340585282086497150030892172012484957299339217925117189889468191101384840871319769485172358044732460656240291851748397252440540127873885028365390366652021718484959467791348720543822887699307780120594683790065223184404478407745726470386750248201056869989234866240536405195179414286204550406874306880655957868167491829849384614894764041566427626321237611070127701524203791859301755383331075548125920726870332492623113689953540007984235010159745369249298796277348384272258359390657196355679461675601348466862444419210485281694104769753794082187763047469040530059984068268826344609767722540456650541897276273477141975501156125055039714171103685815388747830087396871742504065280430472835509409411066903239404523880228674672754982222149466643909801457238363810701585522952710575691080372182459109308925896849319506010537818019766074126112503749874221661289270676150505075466540739702667896011545131265365945136311257558298768452467802701743580220533688161597796419833098159989739859895534098139821483298957047236664254240395061684430351264433177368760167051068237193511950400971875205566227178470486651453700073823993214652439488790081568488801891179947474947600866581479301750976218037212421434234876251590570820279520429100436073202538246950182155800340805409131537242751065279488009846976554995963326994237180645874024710133823111876914251182297342928974572876120231261928006719475068586150458775640825112534243110604088301976717737585339347824603688457327404208421064165717883129331515068682258218335002196941217974257809811000665014043645501773274976838662858940293797275958939010581435675914039222144984007770089331130221296255332351909779354022942202769899443859177344709125166230401557854474895421733145109163687702782313654971556168275780700496721010103667752438413133776408066424937090330869653638147633352170223646991010023702714905557728453683142782298857456857538239609221020445414511085606167879360326535468059038506876537315899080823511758115210385383144736633016222433446625836754267276591123302967109115475813623511755260779550507402674706737156761845850425059284190350046991228728878480827746688788460107603286244249304308770216353446173280314713366188283883513964937319751950567430399744368450385706020408407758847274762887942371481780948956130160479672491785998370210477660832400611375648234551418754257991653140353686522993647677394571235579153923522829914971513418385922695781481808817105604472907103187118370521925654179735068960755143822912518778812465757681652674254358945012570933193831130349741302303392286269076900116937567903798208950132783484669567769572508267955348265023162591657302413867332910850005597951127336000134553535020102166751694335888040355129310353207455315651320673762960389973694010367376198658327961330137643521191256158068571400809008845588150542719369436878007383762368424583812388445403835152298683749714177409249385338868876234319324623412309086161566206821697206389036856360604246765627203389309349157262471004403915661935434145622778731970096168857344837923406579342738872753165814932868574623878237478249821764323325593368136334917294862446588927011897253612215055769468449786492102122730284060085538002821133414317836079490392024496608511324030633009193572004247216931875325208921604811763916089608238764274749111364290042483638506911383828215394527592225931193296286811541200447132558663689383820973602756027935751625770064928251463716755128671990201087778562140171320300594307471597967819230693736803957414907958814884137254454598151347418455857290828233507303379418849509854281046528501680638071286315645628649589235038047602990154321217565348005284717532900731375154655564038299268845994774704735216717089552249892792030958853517917974540106884158587321350170258831476618144671649768611457019894831160499016076991131476178455557327260102277843537187345982269158111375492240982851475543913029888132360053482457014931768636522999904684658255780259280509798560465387028724143283243555318746742409255316238162242355491407450944653238441473113153452294204684742701845508610029275260481804325521965669234558045486133076963253168086068604982209777797589714038438089045169847779232860339355675981276131854062151169328678372370088381988412697225566060609277069965072732593201845373573649654754781701090719672434470942260756407104279338453994727211713177848321609858440078085074360280840113882122024576408522670011351327298898896179137495103520175840474514076657195364381168799859048802527432029507373582303349362058533737353246609438418979911843419444732617124054720459471456755675413553600532431177646916159934792598921093167559630575759757149261155837643421346951618452641693051503244427744754655737650326558662486755045385298918123527604911688631322184548734593071384316908455585261832101895990472123142943984880786322076516220642488958960312343712661715506542614987139472590905032434850793598805292122806219600318292826128769918995391078731448397539068654255687262699420318426701157373683305552071131578393449017645726024869359080832407225222631760597689538350347357781900872965959875407302622168609041860665579543230183897744442789367522295563246193231172007776015724273082136606686920242477439835012207493413950947839607514878986548563720238812146558329376964448872302288712997564481839637644160186819483385945371463193438789763983916459056394252454775959162267897069015216442667443208714120084932677251040814261411227680376662871569159460461440455453278964735093982317888614011032048783025803952458786054423107510812179346722870797434992068450316221238719537229844751308089792480853622302600439083363443478981687107222420647153561115326298808886579695580068527533919085497854555506406817643646989491443201269273921673962219596194666958510405689614923861170813354680038863935231948093015714179615287235470874052194762438935237452861202453771044931692199379393392931806728846518596394343100146409063051463596992984322264666798669815303134572009127131693185631772308590181926644028245734618566920465232033419077259309055874860725654671728647685114656918631327040028060098415995675895703910588816647850201744197074140733782770847826580507675615395169840109962772952828835333273204143366836366525130463313703540727551559861386071229012564793190391042401274055268660075665712869884633575489962791734659065826410398673726298183099072544886636310927168717473550576054952400676541645237914391751351542608040879115054835825320165550421238080460658717549543113106856954652180527661516168187061276920473910820061046885999858628122792982760601998650688469281727265121072582648804101620546003379892729537631111290646734162118279731078300937124358447303498132329762837615562165946545819077654903497081611507432202374654546846444701998879882386832276506408133453077141379170397575293845541497806450112464881416264605979058884392699768115263720072250357893290614896545399534679769419967201372093467551736500447972354012576118314741777314671412661796325008698375927654437504853932805036593270278890689063228452219255967206860289717850151879468287827167772980919161389834923826475795863675606430257058062505795735375507374522163643906577839308776400391982511690608687709484608886179689100814372691800971766795419932858516898407059810884646025194783652883605898035610688723457627954102590148954051154875808484315830891159019065852483728328659394396823076916535266693672586925432934669182561076856504017889879407277649244570420231396204933561466852117554587041538288199873342066326558291539508231403144322750687610522909628709369333687140189339989731784011117466250127942264839783743079250796854600970361520608179691700634754651292692372653825761056356967044400075097075243643093922106245938745559362702711211631924383811290818044831437705929002923350518696724017459131993654711132201662260940534956036464952052581224596919828790804882579088481368326841503789347332792441728471806434584598613723864519817924755561767325298253544128404037844276554547580900959584608777812303444939504026774502007272793237793025738158166752805895998936006612702388499483289471894286098738734379522202831908664334879272871716737482135213234234407011123524282153035113679405514948656437517144951819762910505644141499460413114446943126118563172811197695095633450754986264437094355979415092938831656219805160934572577769846053558089661287462990620345631497937269352594534959403206767112563287562902779379166430688313067567435023157363959889402535200685984263713743016980549878286324442819364898068204244166985454269402883686543723806294525080031603420077448755145759698833798221142169567882397904365380440878233032624234988204727005115293323888447932830556747934885315472427114680781466577183458025681707514170965480748549941418193342739309094907347323788885602952468883514831544179818219078650392805931269675446899172529440959132913522639261374666857070739078077380299306953947888359768239479991848917909011342826308841545915428995847243612977893135972977360187552527332344141564951337903438063779021339978899519698684362468039117489500286669990162331666994459647317896665423762275480028087521720723193210929224203159667503363774836809818388862441957709993658463713920003698103095872226371539041114212340585456934723667575971049492031276091562850398427342671371055638498410583561369301009274146932542987218798484611659451757758822236505339624477178267010730841790250085697956641673351748703439764577931174958449848160964113505536144904886578707001409630839997021251840512207183967698462800996307532894095961504425753162900950059972780018042606262948999208874666257565001178460560348975184753754591830531186435094251814530744302267648602761807176332003681333642961587443311912302057451449107228797195405981260473677105118130947166207214108104335666021115157403024654118676412876214105023168334599512995120338723716502343034425464807404898988180859601044917673076354908000844457828769868074927219302882985436004311920701426167808904942683090446997834945037014780101705220721168986092611665734404679928308251292515304752100397493550823480551213530585453023662953534465179124361762576093049752285590692595579878501647090355769790552428812703110893094694241619047645869609568643044697701001089192778812753498865306647488933720691530179827612106931184643437794551699444995037509511709502509143094103831630775944197562417307283491915869900651191955187299287695649019571984542649267306896528695237937360383677698151729045103619385152651150420003887166647967128953390438047748127974326822266642380017330657402021332839713669726125738701165549150315378539183234846786944236004800272860330215610621824058128907306138947014834196571966808399226520431262427796203265004627382775749667626304243031743678002685577994691927574262579051798417449323948912264701778507117561068855196135841386716732118312343169437065084258706834877564100485070516194889072848571244858677850004477583742126758711239933514600144962827375050724201869209340891377414902082439662510278453789188437382546252920380424977297475815989679414316659264593049996841238132102914731115385151487314570171536568937443312101993746727484121459058426112474708750985993672400349012610476455080488466532806993794206758314032627702850299325169121617545530011670226806134499832737717282952504101843259497087083674402054211625416747982450624167369247300572521276579086675131623687901101674406443174071584924075704530312314168533154404666110334264529213010361350730745308074820032974054751749924822399690434718726130414852695094268382247119074905025458017587288955793250144545069117758730710820967211718551902550220240426615075830012950794767392631082186535941487673814701883029301498198175886865258214409967215119061425425904013592115157494397451702761173054245232793960063366266552656292393654768857254836128888936782705562374597749483410971394992472743754525727410650458174048934709061800764460669085148832265517958354306583010072742856727465628992329764652700847898661637487689951745054565563112686530013705943087961317401996910267981137678495021455481671443955323793070582987147561897829910096504509738247978150299169641094782780676742177478993589389931803774107693809244312492887651514590170231788866109828378910978966639280429189764687944873740584898405457029784775727271391886975113946264492819588993009950593381524711526270140973995484131498588850115987384657498350352550123372205086509680746808776821311518049358663532736618814015785257434594147555604628591860494464401066137312962820834024148406698234967479224735291982687396845214372163030332149712646471064129468229214308537579807762723565372608489681527940366951757450465288225008704575309977749601381490820432029557956487076331900974325586194378534548970035296542600024216272266287997244046022864957923671138758389995854431859104933650149208977147661464652343860957171782438949738218290944152436447777835417404758405207254332702124149818486042528197309376234068759752324147159175766802776162340991724755949879747708507622454254728431207918987390564071101678172992249805123699922565250028319026764740716833728950725845685389766785049809194205279635181986565593977779871812854739503781279547108614754507085462686610466461915267985254511483443793083956044503499947885022499352229469727125991471301398674059585284277305830357148295745555111453173288193959761072835361578083382642467556439600105169416165131195213947657447912220358731744192458019558957964570469733624982312498347231775898990580429748467870439717531506591908342680120232142672766465728030729791526047264176513400690800712331195553662338846001983151553006927756052119206169489487522046790384639519454541275503431975017923497925062954752778101155446391688671584255654011525594548956335997351711995610268119917929741716062103299929479789830054438746963083985585052468865646782241978501182345404873258584787597561303274218531615487452585037388441132209516566120992799073822653304620649765428536180521288229804603705610651757101207865231834515063138839113509244054289880976759815522554845595111239667861884829084601554289495507942867504108147502284209839903907179845948458751494745689859830681203971120541127247764800296552316894002216127482597908097956056094456297576394863865179709801785374898888286508395529577257835982690490933579533418850913588158916552174455806472997234428784079715059024082903249684045673706440670156711983226158234423826215623778697792960730406344947646980524602321253760606001171791003504108716373534691203532899663955414464157480101475933138172738757907456068287679312110489666372034758803636223243953710656138054554265351189971473292737365654256301602912574321398192063034328712158004614521702259891252565107589487404047371896943753802718738831793650151248535247869269501223867352505393522130483333856887677319318682110872808746953148574630515284702725382686898625549066925601968646981265983629150401591807154636687872732030630807375923766287327839971751529111305973259489422889553262021739612592876992776633993239267499773063721447868216612002494299281424147326497292047428913111400502933888049129228303455942600087720653749230886830442309893875726720686911912965347736845845099089031608924161710766183000762229368383236764424208208774001261228060203184976812658646055384471281879020293529714541163855116838955381581985183851326829968035283165156513254024497477166791985610437291704635340196157155540388730555964738666438809495121969166951693603523927090543206564645087219877662273810931441984189179648655391433263459705356395234476859265641706587456270316745007998877745593273869913693306840991360813455114467355072612045927110121119378365453031313878839835245142534470855077147710815627158591875659826102614080076262052314332342929968555504370010095741487927484444858910139665012807496713093774012531422381254357622238916601944852908809521971841944468539474042803638802087047153178310747964550247840580714894610215502837354742297821307949191053435087339299746218165999845023317407995446756480158068233164199494239188389289614459696710211475583477328916780421675459712907082868824308277356073445071591566192542999942334589528343437535403363143560435581256148874374777604578182066589042379905595648131655845346641195208700603384374380842841083382291647867433044264124209281966852853675365117894014408141577420417833420022671903298795211972218874095255948494826557157675962237817847218486577427034643194518990551719991967010349385533723929241791951922829878484463915919128269531531120366486138130026880087547359014585094112774106911235848285842002267798274705156490547670139722465293621295697899404640455260827595201771567720841972220901984519648804356459526016746720286315758017604661208866818880755691954354488860666066751963439609561690688662050891754663496979846795601257586320369934011107068631790072258409790563507694379521393833952796269032062570764028303494499167809818594938408768240532335224390116975974904600491335016643961939905932020275407177098144138190183067464860321356502220012776686605139225637029730028518031596725357925452726545208797284419147971500035752376729850658653022628818901512975256997538990627840538300263656830568815675830365917365950725698940952522049771406858534901341987784897973160358953566250074614895434682780439876508683209706595296421480856166259130436560953530406161961628744080698721322851896026408293124615547684720141272708275579567747798330292491506043834552927375757958941146088742495615782144635478282036013188048191425610652125612813325168136922545672239015128781762423409956523984025699483536573187557178465055337052391143071817149782534471718801920868230645202714035402541470965933787122973351374061652562819422692641481280497367401655850066717125625769155442174170564266448196218418094617565052023161612947899203883691631158177419073048116205277276503175034917594262695163468179479885382542343456033479353543522442030536387257137267437467374640026932552663822440468700753854827747901704562946692218728110519613094703921357129168467553687064449902052242079551095834482047723475808757860315077667583522016212822844247432150869481987168668144369186527000278016831766747078485450585595830326101156898850016077404280292121766145926990645053866471830830013853616038543492610844724580190513564321531378196228614231222528263871586054443407861069481469944702681242049704349349038743390592159349002038260340925620269160799172795837282199695870291546460557158853888056783817442231466562828795653004855688796165279166743317585406023473186689515812965157638252966452515710469083381430397678614890006705345527129963618475214342509500505986124523437497669728581110973381569080407424716348961156320720667397615297251133586670252393150583740397400604611067496075702259903021708742862009539184778853297175004579384131848787227215046172462099312298514112633052164561646726804653158091231019957057133739508119459840102933589035291020931542956519264591753006197225423888150893461651271188058873694110703479535295720500927938995318401269971479873173345451526685569814904566725396295265226138886915619335464770487236059236735988774948995545136782620105754331924425704154007180288103293468348928095095016425387615950275928787489034903323215485202899883654514362359458534972767693607808333450059696877310940216591559696308017793973786260535368410288204170335923872731188511750666264941167394821660400447410456073126370806771828346665224260151089716662635579568225268198996073288852164414992066051272603373398335975341099735952236753876860587705411602709785863830321046092502308698046341604686266680668810109604042679206193122260011173093133902271973213865633700957237199259150715368867133490706542917328955902500138048770368388379610936875715189847338248071260572526879128763064134667106031107409709456640741506669405832838969785495154295966869710061313101269002808505200644399088585047364065750982660626797561328550776886567456429229109232126798810154109649710744982218978291601171318987263998103266137610598483093926980798020648637619066953189991832670342092697726215625320743327831961132139386525128824710842568319832150147160618456220669900037579520579635756464144896224618908747329152263787713104178655845023468405842321804685170061189542559841706138044872378530129422173256466627620417326837272485041213478189432641511933361049940760508344223517927881568339184962962880484857667435005076662373381861651984193736284516858534952454734528168850922133818764257831821953203693453095839156821048971590905238918764373248265009899723260749789484604864615917110343488857687748564409457867408476921290471369460227709972697170671700096049153866240141948984935304669809284772288112817710975512351110809546978543455080080807647550856499646158890298966059967971104006008774284746830424592273087753719963119879688902919197237489676680058169807553595629514080167427266161223815954988015779761539508955524939491310086625691247882913074157354651736218841448403262698316428378689235383049828830677350133649210068498469474601409856122032450660126864396757336113249598081408374670414356151914506208660917723220952071471080959524943125811095277885688626523035105778859954377312466989442380875262497032798052660107491048012854801829767975534697579740784124347075491671466450318629470466503444019100601511490691116717048469459544617759048445067368881138103465685185969878295228630901575733560237617507995675526537782856602354017279730131913150992495121685131814225525438798027603574925901687440783194237614215394476672952791809222284257967240507021341927771889413224739742943516765296610133424562298448149049468697864504602621879350785553258875536841042877888408403221862078932348528980743700711691129428204463398926784734013068821395739753062137836442737509499157679071697882860663961247827542661179144576152464842639344409582020620526841365792886051218466311511864186865705500381274059892274466667243498712954152847359946273094028545230291915778294248566512137504714777864667124376399454354992452230954481884233382771281049183567624508075232840208219180231468866176683616391167879693562011578749335256173184838854889459184956831097824168019981342387006418801270023420368887978606276684953265033755776976856540221891053463958520086882595751364992336369752961593991758631943745320886802218154189573923042275522014997939826922881462804841641137677378649066653333937530341199388835910741434141985925155389275264215976822692891084299466062620107733134290015262234837264967680662116474401616716494847348300358064805128678254299575391538837072647974889891640037240927381948916206987631898622947512894278840859399903660078078959149140673698640212573985179304700410240156272815672631783948543432688817323431599034501659339134000655061013217771090209148203612726755928015628724539176820566221147530555803593521585734572537164867139491214111896516999649435531361909199712195116835563464159926168879873297064255225870176614247103556132807450622836135334952148574050063815368073269138207455995137052694704785898458510857719984248051302493490079344179519015855166224270341880589739444674820349151804294780125122724923591679870961973704333996649433652800910052966007907368030200018785088631823460623122880615215989362754340054206404306088206865114828797053802198647047091662949813127547134836119230298856587634236441341006811213477946617656591206257384966263051098147360285539036569040590877053750376246345384875470908173561048110460985336960719520567289715799482874852480350490749447309027544841178338135452693835930200374929665936806718745157765760838000069589938009412435824694971838454967293745031932448012122538504709731300012395283107251244534571903940470267036757762728601015802899253162466042807455930919377374026753883784960496061601785362627454915709512547528764057444669597100692654694273476512068795370444264692708044933568782727245109178963488339644279416699897916017662180969671962526183232175577589347870242131506914470668896737995971402560874346793892009280358129879010440728619632791071619702776723182973387892894118209452256351581860570024184902778119559313125378852073832944662478314109751233182500549765530535956908783438220123031414896459920922590908588495787267814794181472197833337285603466007513809975570524312177262745875922006328618354855315914118645465714839728836583559779371022014962237796199143824728389068282844381915171862998324196013303812851073096245314803921065124645799769662955612793722863945856130778166076675988210410043333132625298599608232993203219791796038660613741044287987248088985126902583930706438144945954709757004952764093238713728309184314352971774619924168899755030327889958341109880699404451062551404611960649592866674680936609392605703697811456460288425090099883350216486987197993822003717121835176327748106986078300955715750420584733205519248900088582964969390222280948131683640709693951896155971740796798787620392059566858349237569258011150946082791547475419600848662786534732823090201803628566442469337792311503781304813518283736288133636010332401500604104321750785196752786761689349743048586536459559386265533440181446503832659098317076106071248379179993564812744479210575500161634861792232031737086163637759761160783189491918670810085641070180617421671128089243861232061485229308692465136373480611577671278170988117207400010186586023697743605216536898473395843251604124253943960381021696349932726481972890282868289869028775959205871690663809838837456387998249386771320957364149756089744026224338451520453674175043807437071305980816731291945836255762852588687717884819947006139479555423410147704727874118712846356425173433009085647054725573951185224657843453049068795183488772165766357763758101537604518899731082959179398714544399641998265661319796253764042013298709951719789716454653105230351223408291594708129809750849580163817502814550884066352673928694954837453612435388379221533505653054171586522639535292661736904093080113177117647484210736993907490434136165657247280186536780398619862358152113200485975952116330553302479116854186285595806667364884603425550461591129804117884445799823174745500503180570091160248098423645144662403663315801808374808204565334704315385360048370695140847956506167751072124578804731991487818957245029366674106041505216661847053225464876544311764567513495598686279753344011947522161820915570703008128238854976472836836977920993035729082900781668113563623169904601994051686365822864521803675091706411761003612841689403653673463858584938446830090428037945785641412272434978653268532006777885371391231448585239099705081896531659148794985835220662325761079860472389643379102250336549466412446718542307297518956565405459550221643080969617194079021210354180584831332973096475200213771784246001849538983288179803780806485668096165516652402600028446639857827989455860282610723393167638373606055161726399993882043581382174223504667710836003115721524525437899291498772881338708114557343160689910599619219629851007747960750487269122490259932628998650187150980992662250576392280380491533236477780574206128220688917688712404267696226720277159833636130993261689568932666971123739711107572964908926670577952910767353031896114874670208866196854970848753794750285441657392399636771184653949203672429918986800759845395115528706682284559562887377538533307691475884037676471069725324384646350209880425790591549372879086077685527602488116931169980203718975060715796782504421535933733367945725856138604843967232819258156919975274551494658156722097980085790658148259401078013327944791964978057485265363636823090863929556096271488796676069522725469124014728554123543765104386556352569438202497146481208211181965989312585533560841335889980692061711687266954904697519952022231939824181865200456541852370336369186232573155042174750746599509581801860235648147819257403375667333823865213200644861938805122900119575744240604670639364584439293860241554027903130982592861499948423673043213468434350085711819318998720039671220475902384671185905747218495358229742589357600922548947241161677330279314490944310406141550352499895527605862467860596998054000995561450779936994275025489534184780033796469101915079346847291613207758255349724069963754441805121879588459491344644851664936208204959084644521468506561753278647086920193025659486312060987057676092309547323698179502529604530384541024839709110202373956579828634173027051623255664515149337562888762895356658061457584182025403408538069115442638919942602871167669473350033198099604231279515678623135123344869479956347849073802873519685749293133089772404485893562986329025538802377459246870322118918309212261247885685154453845630799710239934290200672667853073700506463538846354230011522764939430525283432098174019953835977956483191416322046762671879163894175791128543819623590990560553766030041105957394253189214099254945384175691754100985268126249177375515128523253439958420919140377314027776395787406702155062491626323375520080649456807539628437557598438726804073982038887948087112646485664134692279463973041041902370979050648524120033918179354794438456597651939342168590372137077904736227416031441888843441550687800834267875932892437130371270821055093304914962388644710183123629209454481463395456082609408754512652468533457069169384922544813332400823395730490571762693953755566642067835986419653203760127613733027139069627077668581027983540895424553449887470114242016177195750857236890058266126445913605308354622778769018584955780655135011831808755927422657950431066625308753905771926641323518837690243801609486950193726104279632507474716711895106027281426222396116672888648688971340898445491910481677421261193285799444194520479188649215850311627009855634971090221111285583656383145662070328453914408409229898560980797544349926230329691505469107174137161876471394011972890239306799011666751572654045120555231935657955237675409413623895122982341274439185109225663806618529497426582560708348451648201657518207584002539517905938970880499860416960272978775893911586685299714755740019300676506419878812308468135628784882692914076632878558006966392124537520665984633928391456015177374404674331102825556993605728291507041089743588342813458560686810052807979185544963729764088470875530404894858926036479270509281331256042253181363924843728459581497267211603722016221431483018182973481869054221946349918681308379110494771360782578305191149036710626309753323590895096086845940235420496923531383867059247376220615948357935642515639332860104768494755050320713356734577762267253368943339387420602325892635048203433780429445360606900827950201589346383699833018956184861786957841615053368692716534446142756398105197221604095549007997640306918339108608427726842927663215093035016206272090668530833499119305444410840162574628705828476726606427889151477922278311209527198106354765459542562623559457054983481685304884514712082005397697140631600279285102794720494395170387023962288236718732446466524776944280046017962556816028015217497076945322473843251335972751831494096631097147540716971733171419820317518262986437690920223349504249387967767400303141847163855808085628639071664921599574072087745272634713461580435983355401207069293756430544935977722860172924843011187624108945004230688404380116160013279250067860622653827473985700274911655303866337887509941665717060720503616172447658979134782425787301681200334808180971952804027182150412962812436169291983219334762387882674018287577965601655203793319955779656309507833761520187755387441999357314463408764342419046955552543228834433280417097396296929778371070218084834412391598626560597946071231648024276026718479996885761308157724592066346266891911021630987077967951485698122784817007075339456766303494210633345869460978955825293365335793180935667071818062516142459211530752195691952064845391133983187194278816616691956443660348247878878227147054404615989418231626488087975273761682884745563584056874296105469543080049846502960501699229234572859608443540566892173514322746356930043011867244823897269635618743053288423847346415283616873402959973840764787250314075769397418710629713040371518589122210435274091843993713034004269729394579990520846877925324162581080589272577958877544520206586402961387204556737563473538740425910169416960534535039447801634441582811103257607669700705303230364437513438969139663017830152342366323050046332248669303238514096343017518267757439090501524203009968021533156027750735943148421723155573690515429368947407638814069763588000736126955585555900599717340000453247216400434688813090056081258461281593576703443183786151230087704698098457920318684230491142011992604140081777628892782590170737092646939383495887934240094871771511645050528779008803249540754094695830604039058858665546955889922723629374490945758957787980642484910375361701295822234149591683404383435679507928300127720734424513772598116210703915768992862529598242060751943076285402862875476687718921966669698417321208086244506838429874802546369949133905070303063588412795865094634563238213518751085926526175120059646124694906925879671784901979516592182205883448670542216335348127521182237268922795642825623429373110893244057492214860961523798284175813082207713211664712483066749661144063352252508216630362021367831226994630692622101685384436610234020306659292376454440601121042392290807028441971295303114362358036612545374855411092759596009919944741745309622172823101274721032164926942006291659273630411283321171036004963344361610162707016264603795183196163773595954697183182711533177317265490233768086958900638798889673019705059795432732701185839342829505680161899949324335564012674864224535864201697381955354673056357330665394337781211981813603994635269743450483103634654019043403947392228453778663232653767846491275228318099059297526426173993842417004490593438063514979276271064962394294098942186481728654811412243061215593955849632211642788864500316561489277841787228483776258189494762783716101560935226404410411132926798216249314466447501375535649216975855349210956353060830008622667210628621108686862377180270873982181611476342521295861012922136469081621350325000298215349654139197780030084586626065785858546628744875248964774414480258185463814592509472812996557007953161861230679607234602466196967831043167192847607783699349758453250439868471862436139517921341318292404787858623789570506246166672570036371324842005259039615945969212205747179115405596283991039331767056679592968938446918473169782989693851101246677805069595562587289751586366506891513985690668838436948431570706280457592403572312424686305121786575039763606028528636164241833278280448472941417478189562643930408900891791482908475112660519625599251096373081478322550370863500443314084236862849117725508564341462461156787718901956388835084406902801691840122173260646446643883649748275180906978011689257781881621437398027847409343742546824607777876629961613238942561676116083425798101350250996665376460630241578340002418021526428070701210533971726647111003960101835537221577837459871782342207598620864659824493309752171709324061006068969608537270934854758723384355675692449782169286722173395607774756668893620582761723893448808059999464942890900707507820121838822959317680765279904392402938989704272491992426764478573907732750484509471278887484711007392761059266947539464808467704998648342459800665278470038762933589580959789649685059941181334970032210341616641973195840424210337835700162419282704101696758025173962840725413039187978713177035449863883136451049343821457728502057436256216958298304018122096472030238058900747086780360567596349340085233272290442214618295582308971100324146652477787982020607350479833001573262036507002314276879336297036899517924384087419832863757870868694776024873530406995968546129887291795848735908850207678199077431910305559199055557185973627762209344129758890075628934290471663416673771601613816961996736694130688406658154124304286956932110572188585246008307601842413683810403099361046069581462820937511418521937269871725164766540473979473675784217309583895795615050604874855588574560737267760327585715707985229875568266872501292930260764612619541020190820110530227633298875080147516161357145412675838608062822812381872958322524742950840707659449696066944167805069745635353630431418317149599388093875474198881891950379341037474695022926544298879175977213000852513288200226313894408154350457222128397534320086498040377429614787293590655472497984880157524165189005868167465895794253130564924633525214215623334804880619198451900375823458631919732200817542643848187560372401014253096887240891180760808324292416456790571111862482978701934536032459469418425086261815804860485077428439213335240541868737525401969416411195633227248393541431889546922226187046895711331108769761393904608349892075944610926116790191404438121599975203691675023134033454967124562616881087527991302854207515209113219790022946549459200109218536846820676741974942226597106131403634503716494208077789890899385188761437074326544626104501880539477787362631585301162372059467822129006358860846850886010783465204933288346265737679048382974658263202538905763454724099606710626472020043234533980098993689707550991151268390717493673717141169309576136680381972062626690811923632579486911979627632527656020679275596779770167547564195848185012409274591002563883220480095834814393559757425059653270280661979870781407182557054465106274634769288297996148877488550102512998124165717147181568129419588986883314686977776040643249931233669395369591235143340876149792014462080945055228047560954539482243929317220178281250687634947691191101513432833337305520938976427430443794860023715163134270317665919904116472884350444210476839160372433747577610611791074201332800054791297429852675015717591976372450147000038158726235019513269037160210656196813451747521499807373546333741045600582814823314560838171321942786652177687107864639484644719198561502781319861262522181227543676019991360878260861525799358510244910975547277881116776001134487742592446145416559052793718522381379682618543918914553351161463845097075520151524041676063545206861349732321947801962046975697235934450182735638521209182919792593116135256060267891403906485110579020345505640701451607022972802095765759909237063338566476324524361272301863412190860496298512553784444322421849486278535765058974349004036660899860092209457209852346656962897534081351408431688516131367878153371632792145271126501312770067366359008431720733698477795003190477060089856989952810590476081911771282948928521257383285363582882708025676304139681287667419703492726075577831469229130517004616982965567800286420906820803968022686905466799401656979121994121572102443889683543479800833211199613679211543714356271156674181681489375795210082771302628002213343082406112971306078247059586503186888481477549351857859256493677149399023251621042990181492521299157762374218547185348336805483186596719939214616706161273146426230791109604870485713230458501151733246378000343816896817438557521545267003339573176192640658442751385636403266882797983708221104102505561049049419913891288686552086344686104533021373956455173607588975226922946469508931748492660936544128859195956332876756439115770168941842306003448362315508191198695105994670193911429172067037949801824075947436381186741344508319127678846061542414623359420928592653044286390541152796629074771874850507913321039909085694727637075019181438793724796249813484222018104025170002764513841099027378096269590953009520103755819977914769616995634708505870110070452408413418659580206375587685235575252702417657830522893720152050950734744985699170344134207068152533896386039428464282446782808740042662535451140177868943264243772676667783469217702351100908864882427694867175350856137563481213302169847295691748989238513792423995385480264731421101196003234002440392349248134980014373623586647317136866513473406106657066577783904567226643520762000757925064935191688747643949609774627182594791722317339887715396624315206988862016839882712677306674372162258096548299648252878249385111962499819195260419832880663648505947113621339600244389284435427395879993542883796588222229501493218112277325948011123429706816687009213177659018164449144903532025854827038031284456383604517507933638590877767587907879923663701165795367206918446871157739220196487889573742920223202898251350230982161607821656195434879099620786210737793594709560035452375731455075443987028040771188240081684141168732205635914527924645214141847985539533429252084304439562001285296184614812920177757434989185149003191555425076213159500407874196072378986027050894525965822920575409230149306229702392708031588590665420667547250469035025844667356166590137104608257879609478366862952352830973678841580912525905536560438438534731928041678302556782987762450707536446085819098551630113144902423350592406711819953678233327933610262649940824923398310429351162819940894832483908831492199746626498611278738709308683673136581180681857083736265778775168158591851423842299277401554983907361966494825922733693876900615964435268288631390519851135104165495418846337786205334173100399615007687313728834676071483924181301303453605668008195022235803683135861402426713326566735583537291588141511767289727432445503249337685364067935729899037287892741359966025892865088145591393371062943063552722972052529601630712672125158886944222484830677100654527093637041329822392277148505693811540006564219647426014041931019275836834265839244357642130010208936358481052026248406509387185217143682748456991480506845567379750414903528352504868079547930729231177849154717790585561060353387247611776885059243211046045193123743530325507439743144787805108386360163059237728927246158595469711914227957148175663360830869920380866604601354451559670783532371126486462296400234261479502407510841072278742614424828709961935013058098712934355833809576126867230131976013502769458772761121881974742634837152090480482643238273147811641383623576402860784303992926017380089593533324336418392440589756511721708894501133450401611128096432240912048913724241648221725794208073895602523228969169335661037995401803572965271030702950698049651951890272144642194671340458371327239323623521950029477693661743896617449204975364486163828892491949308625126361290617523775716279578246218241778012348471887097545982524901748307118842488324780637410186806097049169829170861580637741083664427938451711198325972486951910604803523426582481910167430571891146141091442491532015011713344718735426466937122445592376829145999529479613503442496625490447626882421465748953956912168474621831790923070052423832098150293557802109445510662931734892758166317349445323406029812189776411427438207399880555111032609928361321488162626973396192133389480180138912155907470141242515045786572971242612527309673789620092783236567633044188632861975080148506137359925806903450891952512900653129471931404026178415261680009306516221832477188493712213859342712401294307094406089376437721655190169613752977961755516224685351246496423243506467997211149897721891634221203359621782086530650337425185166778300529372572980295605848569777101419756064985042650547641712615197958789021937829125573556012564477150423313590182546711787997221582869388199799649387432177267784371120344932879724646524045114965889146317628946008826669123374326487675266899652301535159047916864956649879411157374426316257125715585574393813714002022791023504026133082609606300246554186940820358504949717534318235978952084265588374427645874824578144702750133556867152323539634502539857305521523497116597289465037267694882380262379534277106006860680264118633534594026465727292085335776392495415870373302761379374967346102498678828997451194217356548510839145448282800250466111825434664697485634582876376480576559771978680551764938375775038798109261920872197950091770966546863073020092500631700280100665031596948736802580676588463069929859175878824891595503269515785845402817624714967846592655642778751758626617895243358828291821771878621032246255007273963644743723845355128718796877381383403261990214750334251284214390439494488420684247422931120677939196649512414393752836918110429631779491446675382894458851661269361422806728538763112170130973172760472229661405847376713400769400959556055374904025976748646130341045369931771191286553981690626516529297943018402135109552793136804503803483902234119813602579153981974104161370428380362507501126176494509216492434842199367863957702309759482383061889494936566204828832965476761139714913362540585097806903296517087625936512248758919243166944793753896524504290600526770608951466603752470624581447617680917886820147512613936531528625410547443400768042664579051222565010584577935272815855548619702137055301784006195717959171655838686757841381052736980258278926728782104039559560885321049148452059962411309191722162298529359699884265672179414247198771710758990584302374526522341754192593821046157889658388739755517496996818964444884390138012597668524439895535864434606038427626561701628263445133027241369134578875381420258624917385281338936539210642396702445755824032568587841645462498146899361049322911637434667633779787831485906704516707068672642906790001010915791098778998998435748192199359742999339184983603772513173676964004082102721684885886254462122732694576463655072603819104088389489777514800824225512017888556229623475830819331137561680109749455662291763320984248596122498263608736195625592923665700343117085335776483752026530589727107059444912476715396714928346951905520582015950911661813185552638176259436838857281138859634769723596573727297658373220182995979480340787601064592579989349006435742699473678688599438638995269755000185159032728772933098485104518308042914879597965521336569808942314829529824114321988371239772000712020151967509939596323475650934448561045596744351900811125176199645234600402486884923353213443788005998789020966918794887700854655146096511899818584528608985924657685143381754395399001340464324728900508809881185715637532677988513066530507291409894728963224781817111233001109897602411820865909307456551897864596606786072227711538804532998729046434923167674780316300098701129155494520461601912028904027032019566131567609225351709171455503535297735850088155146674842955112985937738593182779470114137585696495173841228302946629644095488987911849223108106749023197800975271506354704968459134943797554682218425514136826182000054804680262449362266064158858854904764750404916482153287570979871834164259373870972539220051869414874404195172144179306389147198629192873656189933391052556401205555574546671109199474855626930955362150614631223184399802068613038238965058582292300754545071605459133189043092834626016365973695610133339197318533935263574084209719949183785732336611475104437524788534086866824470359295320698511896575652063760572185897826068506483431299096404198073876591500989546562110803471799682175418264686372251721371615715799728194226152504054303049659623620303269052358061899928233063812830397532194573029416122761250152096129594129172286062050464500825635459464660774300526260950623442435826498554504675451871099381712262538430231178413060360540103099640101010442089147241017124307244387513027331904406509272623161596910510954616096605109316058491883702812663915443888951099897567824277769098464115219721754378284057838833482347616668347523635687171009196935236399867815464991364366732235304306915513597947242382476831163746211805469355193446810638546173470403820815546491358236051332034962331976221091758682343526338075164959236925730376564137355407349642322446267185519052064537072799409178565642013078549042758815837634353968059519360217754909884144009239375555084996530700436353048878980972187926292325594665999416479718704779001441411293085181451723515762259832643761253464653442410906842456303804869120489148724651149483491425802268089293706630982207811692219006574505354969958702738993611639238373931705261287505090493973058157176465481744363207047226165659412281508438158916983357671071744032520564680455423087151993950404903368591326001315817911159187538995618942440470796547326103738890034979064494812277226319293659261479743623228604864997814383850151996925230514844317552463783549327177146014745757831029676528261192911506511684597331976425192332570394674529665371001086207867161059882931900476279910296320435989570097822268523938859746993880953689807261337056417294913599714473449060890165249911112978248649843883020353692661521782315054353670083065253347004430072060427522775951613586785186193447606753400743760386638217760058959036315507362142368797200206261844110873687978441825072043142722946171086686345638527016183734897940857921161464842968739657686318827098361002541890190003630151308092472736948408600762501114078539450451895829291052031889547341458337779696904176936782037296656054334396911388524311577559130780182383703396197280621819944362558406761348742212545181124181804226999907597506731216874328706382401334978996676051035483706608020386755215177986609020125480960724364240417027085515554540717664838045395846346570354778028032406134334029328756054905393167614625711102883199908787775011326385717118754801243244570285530957768126589629864907910675157545286286399101242369334303431565513108901340508139947659343323778033318782299201561431558394857873320255893699430852030420328350498036808498008097753483516952804404652405976666406948946863151809734495841548462014419488562932996345329490513461192358343473214207941477403049736257883724430536051023025965224655004972908414322388315105387722199540445816784794687260709604118942424739334246237182675556616794034900219613635233893589434941875069144840213268632687826996049796792011050716513011205418935389034873706268785267709888328426472513241006582669703554630779598789641009369215862846937158966203244915398685164952071195024025111719719428673843764438471679138294227587713617549965908781982789275070056244638023621072535402005682188870025745038170320981906464984905546412860842821156931423727253465674637123615456623419969365971515756850630834693143927923365872133496656997479848751322546186677141999249020840682169477958633196090561880256451491699357142573677570412867707957892740994294819662681268076138706519911938786702530513065864055084271733550664295152914306561296635583146561066961970730337441053763188218895748047967733837739635757898801597793459347766317844562608171741557981393547627971519171309322465556617653609783702033287546088536081711841956501265131748155457880985380094507333871032568671556078926316389134412390530234998994619051099947332540202523451148905834678780486386446667202695013093289173473770491786586073538270560736221872489439191101662345567487401804836081844802844305908386615910879064510801985877516063051060139927470996393061887552437441753141738978769116231404515515844064052421036654372308655825458784174204532103544954513367762484321392521437542497426464278670086118286603608026298525096104970589385416831539064582585189068537383809591925886719494702537067236551903674154436365676507090457346609292320627798061040554165385194413160735686863641936588312281094828762145392445026972098530116439987803766918164500188189502007017119070695076597746467045910463104845876971240330513217659234620781937586585445313364217177342254873449050777570291328479516903654384682391587054362346394186829639889006692703896576277450849074783893629236844158909770245311718644449017766090745481534116838960134874545289211738447572547543734488948012757224686067089112364758507251643928683555474778049483643917025750301677777327212802559377884365624232150955613405442636922584775406185241872013377703695835478935683753897273897704329602293435272268435371980726729200193594146890531138372741472863980358862117179027000936647405423401922225358589264202764737045167655328630772697327045576236640430343779822070070510633849379898892160472921144882007049500851556962880200848062151991960546245263939080649631335488152780075688802642686540518281669052926407529749778031999146037642003158249394965743726660898452972477885278802108357439206685290924512343232509701468086970854585169078640350437679062242721112936144352617452954279206582293835141550292710730589840758485488433519404349790780816504310695610971134489928045880495993916560921405963899805068998819832231410973056906318619803324484086871707098238044914088675967402818793908893895718351844647966849294653772111732795202757432965262685685240800534347687076705648997566847023900789081145417814103518746106091547273578816600597063449230256127505817329276267026582659909074444352109317120845579199057894655081514424518499643544393057622415832091678991164902971695820411977923430551121043679832963230282060132258183870731743168809100218392267674188919810362060817903464984751584784805482981095227344504119425344907410570691150979599652942914506270981046451177752568639435965476953966680909862548200447557661637920669810839142412610896181771340311556464154376716974107819939208143315228803821453284481604596459853917912381119041393991479669905745434702279358195491490121904863273782633151710255815838272685247394956670559456544979228756639582137907150981357963560710376137790961834432135333417103236732867576605441446723110733754620171724355456546447538636655598280335481098442937106770760901379474926157816375365596240533630289670133857815591733937091725628361999600346724451889865538423177762594393191438230983578700209374456615530788100871622674991510319357908084009082394972736325582486625186646401546000558694559074283726602422759026134452814705258758645165572999777124061698724119380287689940401415243957193727212688540599617699866293482538224516092500534571099895807609058365822137089154234206698520606389964183941055412086988040859950568427596574251381794883336749503167515498517989093701333764711214519410658127670538812499749542900941367451827770254014528862694998091966550090633418366895121831722670911522328251788944540595309712995865038373407956611587357109277876867095236797697599052319379251534927015164320152668179802015634736207717415879766436819331987843943079327554932467302380985984534578497460277503519817549579465353454203453972050351124768199361662365114932048319812707085600362272394269213005729985481634628773449790212908015956885862489488479242735523016980177406922241294619459450539870404780090817423343183873308844816773018816111021367818527186514194177484511655200418984296428232807836105393789552316668918032657941273841563425813353830474410051648974498124158843030198255413026871530931963129605336188689855781714983631833248946267249662734660378164662321926665561554089845040453204482586447266958692183188133401052109838959073121688436783512753570592998786046129823246719848054022951528305790902999653109547559067486987843345759407773513076003193170690785109550040767382039197873101016999029626320909059322495539567738498532389397917152483034014811354197120343758417812652998869969418359998564495903858393623342477941075424367191458067203971587078784651095359509214729310538431180469928187326347782710495216451061891404372271410831972917206988608629417542081377409265526920563169046497197027033403252245308069980621784476457489492956396146589240125700730329817001464684594372614651235110201041439487522427368611455922622685258183889185167149147310857243399574240296198222863458075558508876189594269264346037552934195563811860527407240180724015095091377170137785547229981423641560934350935984636090976566758016789070636936607033486877109797874829689504440126061433283140943631561089290556009520321043953822374600025930823740551265087144839725610134422975727888993142504947463519407757117799708927576890891043389643394599975584143959510862022878026775150716589647567216932733258660580510828107950975579205893698923909656276312128254109532586218435432321080875587329719282932385489554189580788092635781116655644584671355108118470649101008199177572404179732920714001328114823200762483064153310881900271236561577959803003388259789764878857335435489941906127470529167959106374608860211979144092422515408579643790717328152596993737737152247221048106689980752540332010077911954117543240923498323995532210909123711211241321925394236674024027736267628971050940781732919644843644072482894535927366120547590009117958443275128704821631193532401679075887783759677977807012673853239787646062802990405342237256031251059738124795453022254662248728081067870089379201920294583733321442913790947560296892406661442950469815468355500491468421154503000782241650153592070403039222866677045719651519037554064989211513785414909394044828029760097923673914558826619149242409227714429873011319444731539224340358242170272412037465331109880309252743071698186469834615434188317687668360208790255775955779591514228754211712431672893111867462780665601732779623835910607544764894983916045181619708201769373093787397267350667008013955077703978503875750584463826994393351380545158137821242843901648594130566335426274817664877728853746976899072194425182668179301563766630522505795935750011147439727799824428466311375395544324341228757786033745716890172016497618678301256259671585696542498400396794586584265264835321694891523728868158343583491958870909855274221213405012221412877143795526473320791114335093091169537433518988504233639429143365403363917668831071396618471019087451369452899914512266260700374481439590768767840698780572258412866873445982200431361753300485514061339400555398527198884073805979028102390904900675715224740278114680450542490909054957895360505531747407619090202699738177802219820449586728176547240569655590813807923857223651380668959745327166168489039747768872532090949330183585651019184324862092562105581743044897844889198512031752995539042828137525610974109119390219836343257300929463685815895408707314323667886684915885516628146474033248704558278577361962665975722444800379355359313127232430915368834363007622007379656485610505122876511471284174657845718647185290495605152509793856218094104659765044388431400408125961874581717030895965422057967506168074700845599630078072667249381315567054288940096412730089668503593162312179326820806294241851370644691679172338139457557870858978352842235779317520293210455999000491517435376316215219301959864754469101505542529346548076301382877674715923585640564253687246366333793426732155787676888770527016404382315504743173144987042123287694913350302577927837508977155346259621136358875905213359524419922757801957553261899919725626542810492981639819654294313125372259222436165549949412828309704707507589117638565782397809408332468332599295887881969173157748198834956080764184612650518422494147889103192952471887514568725511138132923432338992100266730031448593937662562219734331715144059290327061809634190237583636519839745141959023690829374880859224067919638952787818047087532928040186133976427195311294489583504106728128470539713670660244282537635755172169586092784232381962681154835346994777799269351247380779702620860735773823020998481145585197758527013376762968431692923945033888450942023848713473532432860520475275069217529293544238712851501150956743148664096962548729604737145101582671591383811471091217203375175996564935116936991254176438013229369665350259336713058701717963951100805107729072925344425811905307711773535596657873677820512066584359016339371156360583986552193417752878421585140785512773144740003072491357338219468468137242200490715441196579143580861157291624638205854294144057296788341735713953937040405312533033048216165743730767791619047381162621723171643056566430142891797948374970713708544466492383475705838216648624843177176306880896026435944998068339372594567666786653370459696962515480663591491346843148770919409411137312859526965328297957235924559585535710238141813675470813864304095471298604216954873754070326989801525565899133830094078762929749370821818162257965355872924726885630432107049849036914649718122366098461658819880946622551825995056162108660154942732024604870779461410316766144501016320431138467058740696946772490679957184792504822636784157711222885645997143044261196101687823213405402950121657963101453084864744857440021088324851267657644906750535618406502293376194357988548071142274012458983608330912237411636779748288884531975579787461519976339678459049516723969965118630179353266829751671048123222373504822595948922638638035302615590500747275982805052206844288000371013654104125832222394467374727689258400071509710720304846837573877104153080113075747866637537040437813135797881680462387295830759304174940976751181946651416459847330411626558313171173720493944412042912619547801686989422283377589044541563575260446876979359214207643771814473967921511361084537727583277254763681871113277025706562759966147134261128621432914689541802962459318408645874283136042314241629785962449075730268926747431996608300209532217394144675368417055822914158682480013217964853783658729864727510369887591983766125756791954018809723188974110165431828804499981821948052952825221122700614202334372502081543181455333274823842731515654770246589528955393607741142439400275910261443373644012410767259304485168653059496529282233284663564993886424831663938563391016753417773060705268627031350723661717952991925048577802673306497838889034562148005705998609963529861539519548858930903113675027411651971872674625722754642702725103976002603446322475143370436236857411017916918770145359290128800753513919241061461460271624133666002273360631483709147246740433711608504003453891254783782184940165361280373307381640817753127797001028900609066085253692303953806656433626817687208780192384666760646372305425474073350454518915313126279886472592906941242208688153052863308921748542109008294540816574125783497059161665577284689398844422813469582598723328140064723976563616528057873792810528506672702678365428349418208501899783291916451386385245652329502672080060053759211121486575916607657403125780590556485404145819992519226227342395715470171167198805892871538118133221215711638322733643216598765174448488370353424374179405558637264412464028938261144307220497503756382621654273808597056517406184156807394040759927298472872007634349302623713907366544034630204143701425182326199342250980114961481642274795586267165246359764024051207179927178892470516248113039038214264180305235372049138170103585068409470167815480782671946411298455578257795001195520036776479556947631477721564938089897097875589827063197615687777404955097626261440684371364959200058102940654380242518076225498913728145974631102366810282468313015851078690143949114650748579377025530725960774576621451229926796253382125530576071602799664580424916866709319878847300214670468602014138375645904719463366150198237704251234947150460186934510962446181908678209330359086517918727344487446559621197512570285006424637852932220435681493056730648606864780547992255130955163664427110021989717093835765493093151567091698255804324287976719481123726708948048445678239244088070060890550053560349116253131040222768988249001501434697530985381153041946777143677983745402811184376036373940548173238033499132576871283918619135059728979918548895210218244709377316094412883853697842152181669745735931276762831208461531721030206291806091342238264535704165448426745890167354058269195962762190192473290908238548002052404603833386917388756539858676223460093618188082833037209716975903287276798003702404118807772366890336963527212372492493318593267711900118930527272764659348525154999137749850917968418360817036208608588760585409924688142572618996416829138126562959381225863324722100928826851854373348464566231440586231717644866430449099019372493908647173151221355211179631587184887306471193735785139736741006460123009658291001920100301858396267199459176035664752133126899472608916130345036460019066669527564351213599651686755994394351250737215969389676436660362200108213861668177141191517780115158313092493610666359427824813142547451784446610018901343995444564436396083201725109225090113799082765928962296647647888618782598029643425602349574945130359704457872497801386723609629411898655848398815922759637657547037665138969364099378437231851353592805211921256343218024649552429770360096984393956868726704785582138859832161650659324710828536666845211158069871477885715729919692912289949021883557371666711611130937381889284358476167181018045176807972802803760168191242081660479363297238686915083655735601511904873177032554125612833786690221119273170588533116304455384296653980155815913389256485185164854918331919155869278394513462135860394416611431545771708133333606291376845666517918747129215500817832153695249257064206669901752846673664297295981385438426783065298191476088565036637276994939552491918533571437482594743561159113931436267232989596879574951236043317723010835453576354977032029243944635439404258246877461070812055346521084985586958410991780703246683134869691777938988256765947859466904402825854685568233538687429898014087319686229137375160971540296797285118469151576302066392421116087580452784972210540643566931429049857638699951508793069214252371314534978659347943283682913477967774504704866011772436568029143351653995996430586702440510296827013220906784412579433336936798588398374646124853498318894789659197291873604211305840845168512376318866198152544099135803916261132699044525768582903057501196374726046156905882792520423378501416052907791457537671915255006621935898148438625377659476309697003785880697699156597624087122457394776363556849383051116542877218686858257488707231397089340318973002188969648178095306303750307018215474313943407526959150402080307348414658473871385051377591195914426879841203640024625500708652330512360069882372115210383449349423802850197516507658933287996857360091228397823016490688551735756274516686807222056143220726864907972020262302149070537650000037518387597838514443938612079412184187088977302811439936461402232225566765267909772409849112101366191186102784016126371186478974460245750961636384820510183290606719599272813805000092284347264152022200973978704650466243786676289898819134639460970182458269943994261233079088200156246072696529326335297532913724602870169384285181441429793833683343047841549615395287720217156899616889247486517919674892962825292850860147340566704606041985329080371587495272048211339831486420305468726971966927388182470268782174690595166751084564514685656757937757904858445209636065261558769530884820496837385633589613782710174873592606069253259097378768686452671498514264278727569542627395221371098434880553489235121804163613947444741142473516211207989020946618806992217955026872124842135356526784744511129890398788898185399395026415870918831999025097055132154772524910196795669722378639912773027898623356006538115394576086870876003271229497860251998330314123213356908572241671840345170157808384324393492210956341048091984641970005664298545600690223581285935339182258731757215829051306419213133193069421523037090358320394747794546275727059473747351854248519609476645115442499235258329358649288634379513052164490649682315577344750151321617020488307840724761554243451799463830086447186080783916754133751588426224736518293272967416531743014223997192812208841913441781108061226097724566449140504373176531384427900728905613729337753973417668803459802524099633554142477530573228550549744748512028819502955707271219095412173238440959399592193218129374771098090228158450810993942961795662548102600775857419214917441139902898756053352771289661788123056717302830831325405147531964449066361675094112803469093980417486151811742443461910023941016238960473188539406105882864109959089011607776140063453650428394080224973057800803322450569828662542867886931427073726925491429447719466468929534380270186184066301575141381920128622585001037037827956184584502618262338900392959649636923702287279942469739164328535531106742102443035266350341877124391069112441288039222753205886905602150974241036429393926295339166950969433778735220834184497094079912080033171802023132491842676666132111199342544503969795896564793418322135350058080094832334366610043022710764567436378912629494740463771627672337341666115653756149637103674499494221168892721846200048841818459963932656445836610597523812392934274806723884842326079324477536181685794007177271275152091495568549998350847133722982835114996447722230847503368772142335072528049044466546830190862110555224510651208143295305246190950822605479541988287360052897022464280259570286519807695722255109385365843712282308812004955885006861206703805442293785099454513741499696952103620815901488607388965738262266013769774148638900682897590968147577860999228437741549311657533900917639197448414336584587381976289599478303672672590940781168203839332290534158760668489739333341646457359148562489719965018372277961592840687911748711840014628409568627177402596691265329676501504907510142556604117979480365411353824203850392863101976159778456062674989931959804682427520810465628185762466857590903433647594122382703094139369399950950663012590741003632790568497007085179665179824921152336851389792457890289416996644902959138210139819345594737366032131231468688679729652908110082006553161357499693201691665797726384300783921521660496159923809924408540127811621936200015131389845007557621246874796577749209104564939384829588905840607977093288142114718487586398351117370815389354263172442892472515850747026230114833790151177945847946102923911118395359322582505624263947843364342392939855194817837638682986723258838720399240689725092302262167957212032383180335367266166003065667901011893273751424805026371830267588506028404730956349679588895978578265671225310251439612074879653445754056395056863452150626154715590627771178419774190466363639049491953260218040132719997559457290379240240018410415687758935835189387743087557339263975555024208277541760672725890375829610850236029882766660398079877085828993465433706900373799407954603881923823124219245853859281784817287063023360709055028307337045990000366291110127779421855836836308431175315935814399146370584978923212657805988774595981081462387920925223668411389715027991658356707907868551087479685288128932456513852099743652295420665423562729935429958049538830193841817856474065699597051852836847374354843838435877228976744233857043095364266638024605380751640682224268265893428911335325582602599856264028011242651691963785151475632537344974717424262264667157251211753440314517062194470060483739844656368081259265010370384071804206812264479239435408929513319470391230096368329764211067803157954711668363783720182871462493676693954115981797597988456577681993532710366575575207553993265595885817249179427188868366506177634817340679075904557298641843395696517623267774244089921276342827061337729650416263426503116708989268280334684856281080790002718713984393429791979610213792301084877760091815930582616983137512775415700895323593047712756790697696832385117058180445322347364932561573676515859556866985451277866646872450637951002408043795216586609352312983305468608057279524740471180238143739580808012637033638067050389351402910382959969091041665985669879365673127734859600920140082686477877110936264764551467857501161778025261912145568280893696524938935762774078022917001678351455744929191756543604317021660778723222777709322092883935495429752136104356479185071178602985231438867841111800377338586215461675379778755511175540816423007012564032514167166566678892480493645874308964995581123289240937727448181764059539642186961946772004469850502473998066673695135748357928625937462506987495016335749943625210288497461400328185758674816800609299732453266742130877989662362938154044811748302057780968559612394245402035891785185171649999369667876759417556197225663737500826671984405174933129165787340473852168250547889814460103340207170639836802725401134143810081962577203521350393110036845656633836871153850909730209237039055652230661477914543080809770420974459975521158982379062793073769586276028479945788103169490909363405424576144186713075014184728425137985906225511764221355010253934221472352240379002520989196869756227766918095125662812642811877781483417414531303192851514483276480534113061719116825575588613930455959275671263636092177145133502500258698196014170234822024784645380313960210220301510174230533481977588561916072356004435912739724822610072202837081213943577099427999917636821249310179193509695947741656575269807597744503482935684525198215538990167065592669734689176083076183402842330849491403122135601246839832887580818048343501013987082123906097307074320728268432795484245925535986069511911824561751456881415703672854717079729909482907704119894956247477988256840948960826093496230863010397427915340641171489012848858463898834464916123921293521517456929466900766785670313636906305497100366469897566440124817243545281357598362580377090763597759012749486572834306182181257668009028770588011431613331044017896654945742884977944686961297438863842378437453303372060072013607171301637728031372338036489834229179846057931940120192252285368936475209452645444574053517054071226211129165616977859582783418242047208060249170141691436813104560162966661907205545493860793162232947361594969161802000376674993360449736957013983533159806616928086024184617716774155080576761395646527321187437098189530798358027134397024458101410926005911052748960475962990447929784002120232177083051902256237947900626319839841005482737581614243320525297351599803326297521793345482418548553756549569221437401509113252311878767741225449200276062400770165437322928956753821573667723775505821315474259259027786804611238817319663498773458853270618458901307080068985219137256294409537536799380659410001873275178468886157487344738424774366309815183902198862170806218583170241342166206563510596309727674219816983427109415726715407193478071385837867630539964813912796538574286972480121185615497805438290866447464812083421041780121867235871789385510825025581328141388328303010211263168020573631289334717035740552521612819008918024753915422954127397427769634784085689292427577029711288909049911484125998944654156603360164718876306482648880566407223819197823801634685366692025368764846720158442875788632848933809927681558297892577144957549557932045894501192617345585859645884003286427319604848728435222234503740391843431428707134763445110229570353746766390721670592371238945501370024418796057226311392965528982830769004027069845682738109957293940270627937492707006282682759830805908911704523117926316067761046569253480697979450475030721685064826229015639941149560878841243940750285749244373710776166667213298567613734705208434691570052968201816165698400660277196180731979465125823023622230299006257166814103878831125021362853950645547288121729914090293288145364264338941488479526014113090105142631839673927381045765060865227765391535829722596199390968219732427312855746597532596924216916072372147628278576652215734313039527165677725183918800691048496133253788363210079567794490299447562362704507067205521943978422317833657706352094313569786257598643536459149415025306540381587865637053381642886061143422617047808487000070294558386828425911830713232225793693183424882611942823468977067299114305051857138986822731153651824874759590777759071503217111255323290484118650841125070927974905334593397928695918960115867069908783029508354258259462273060292886053123394176743431526745176114985789173538512276351017638038380441513515886201347755813975085035492109246216968619832394640863175341386399131151566221065245285013734106460361925439972575120820479547215499090214382294050492233914179702046825014650857466751473519271637638351699848909533790580216673161666617082453387568160046864819112949514187806223215776952384889714212317059782367339539303838246298681436284781795682353163931233498011217100860457449811674722786259188958161088846409256964345377855375337715514784263651986144801030725227405865064168318662808231986257251008573213574988316913386824193011746750494669307579023844590678889014773948618394140693898526825304027680117878684255108132519874640958046824451455621866501720392120739443110511439058213165014844370123349388996696004359639905913013706454480047020825374109097652765742060469601984510623835925162866907635743002091111230112197793884110885703965506966905051096869531216555711650158297888520349506128848528764357508125013991513960002800078985558573104485252708227320727567772234616288902612625940197777458309303287263158241175984962585793651770728366196142385013972411453970269393426110129565534519137189613794724683861336568097276627610105293533472266136865893606534612891119438255340314425137739115087037539172909688841900818056485084701429399296603568405158722636821114996422049222338979069312409627586935208529580585588093880573904324346745482467928722772535026584263428549359497060733866850594028252220073462590883435441593587583578003925409763981876289328563462889473978970617314692215441458418347879773758255414454836981133195296147018618247291233918963400187533196280114527334483253221041032111058514254311568007398046392130186848075297014721353561488634494871413756058906284760708499900726761708168926185065722332710357984687151889241460854517136228678862722760444108770285498016440761848943827181226443966780495228408782008201545720792407171394466354431520122436911048599780131784448498146104149419586853061303382265466245767805482755445889582036808762475379206550158304607679433336293658574348132927937812462477834639108577142332443031577372188604474406564035030848143673314423644004714865247310266553517477823597507443983867162462123568278828669851147206316217877026055365417752289253984225248117271998635549282788839027699428245078558328251020772417729703893854866594260848056681477432665818893175796040697700718421314008838564084689766021880431159494017866610710579783261081491984803826238985357128714476943685149082209587018233210225094434415361898568539530377836815312616602270010231405099619038944514644830283999674127646561501941996111279607070747902358807363527007367088020043887922119091629827402254396761198000426669742779946618359128413544492794907677797592821954969238108854809046237205190968844204583043151493694269658102326630438306603756403075371356932217225013891823112334817860937716879115525246654468208605045442922376106066621312876016056785224190561759362702289983279998586723956565360261505234659734291642744642247033048294606824931663532446961072113914303831892375563808707691625758130337677800756728251681069639142700751959866480798778613447996293072577108243732767153547445330608814736159537974065619428807856145650780286233965851990219712088218689759899804371112489803244502193312971042734557917089197800424384658882002658655701919644623668150233044260163039410285860538309280192438976759512693649151399437512421052245331552861598847485695526304742396913168626223527016340991814849684161393230465772288969205044166116755825004685994015184251703722590992493771560933463562650286591268252088958848355111264905520569490795059011734036876248823625730575249980780002156357609517737210850944018427867779400487440114688692366799700748478292773536029411175733085960697339199861381295603192228708089868342779483961591314291154809198011977601272396603264235149696571377563059703636453046609784171622145905379603794484507945084996844700882322354228463500755038940860683087362781305747195646272107045061665491696044144741844842198588648377236513018775552539375653590288492426760197301261729505496391923617334071104318061158382785136147850295217767237877188518031162932120287381508423939747703237449525514326172819823373388748154869672321919835962762562905351033991623878207448766090784096612264305885270076750571381732938530080383638234858739587017732970901036082238108174354360577160688585242801407052050833251457514395097117556586170247262479929639659895625633067063552120392933798478753768686416473721891739837716500916999412987532043376422045274202823270345867698482794071349632891182974012704956905744553271903897018300389987340369338060335585803870107315625483873137524458976230202189104482141346177943081238878085876787536472180098905252645738600783203587576034271632465490454351200709106862813028849175707969356549901114750231599042156287002111345147361390453859317688072664617666141061599495792369559079910641579238303441188470420038980144396091027821560036519744713249748706606773002913982311726543678417080991726474742414166903546816159228234909274386470596671317173839710342766198297103674634595511016849058365621175692206574734097380435315178290975024074781502345991695005889517841416748005117210904359437593727968358442969552581551196283777839018267014641745385745048865117149456538608329890587276994282273132784892977869783890314351274322088162387925812280763024886905441769499770072097374917022028412796875272909412623605950007763091209393962900250021563847408094454795622676369761325433243058883366636491843143529911751982926155509490518692310331474256706026181432184580771738902208262705152271676414807879442495143418182668190716245597677431644314171632186408396921002547197781985545281623012504158112935483494238706071956015240746423640574466562735098910931530677677359926676627670709648517035139832677847896550031594007878049766752645331404569634526489364212362945937368717915926104963150280473264927795623709122724473590149275280132177320989433805112994461218091255391378931364100577243579524082767167473363351208979428524970087607246086304571486643880178440651652947810772436045853109614444583259160559319166018727211991432820266987023767071857391428411674818241757145319189872254339117388735779920639157455851301998099362902112318722532185337439273390312929772250022074781767186317078255414135077860979863049568351568807687054347385113386571073460578797146294673997348700798068453939763430811262584478660852783237216368435274230842247348689942183867248571136255758048999681172528405091281214076766888858705840768510043757198407307571519757020550904182863480274730866428799500019431774156878311672719871729314149283074482622175762119289200458551100485806102482507538353088011962596125265673146655102332431939333961808052153592624243858927675797286969052942263919579560152059698022335886780834638906307105765793159091024389937261177045900708745017516163306951111696520960693978742011285133540444715734397052785338130244009166085038554837368879132926178146677417718747995133490062667878612122909342432872602358444179044513963103571806154223899097017684636102250664574710006748234400099430760833753065949818289001812636232548000575939198114058672187461463239177227413656007244880413992023973366185834322390807692027708144983070856253701984266638888710787202855327286359282312022717852561062377878547978666322478790400800080499213118557821269719068643295709342070938301277562937808145099813412292735675999708680477937421508700451043010746548147317769706288167938242819287263937127843416886413316589890228316051739141315330505954945148084259693376125668368824026486300633190335652289443721282833511750864421341113946788063536200421175544983367730344310798011559258291842852819783058528881712548416451891909127468586832677655368364221352980504444588452304959041817304154632044134838877014446370297639163253591727088141308039263345201121299116279657777939185327914991995614629026281027313832177261390786587484184695396160042584419324468216145342063182836423285809048964650577199003568112312049836228218698556506767854626723931530579040378019047404184467381403702560224647568579885565458955991891169110699007356898505052833376849732975402541857487129509971646180999227426503928181921270764556356316000735014429900897352398802873393057988801136105372370706640951031159419587863836080514483417164035591862901133020653366531591484669240954878516178377336608899414349336152699903679726002550928877832496008406510393180096200080837764172200127842261357997462407864081495227668624169494385718622416850660995548509916995897134675751780237750771453808845060715005945693781065896387695810186107917502877436522055334872776433194788730684088614234144241962658765263767292446946046901699713919296447138369658700007307119795610684497976209121215409628023608947831241858325020022762203118944933956582060927629271472077326610329222507863735515840104155343150192404193448918256986953806435959295310597899169880296318830689291521308643461187998127129095554126510808110043041821109570721516114178275439556652754058254916170554836085827993391496954981168706758494219397066661582383578187239401151853275610423814893547520261731690297906574467922312087035649149141060682017434358429737595596144148441170242922674702359788683822799610604833198418727772111007857027162777354885533834137173723273635307389525683895246273356286537873184038315725190177354004755217252131335341197565976358865894226913374543346137297886994533877903544979591881812051812777053671532634458660155848737182490304588638075149404959556943851318666855953060298602245298913720599385352976445510202560149962747198444326545615441174384207870345518755474364985321714603527616149918352325679225903168024453476806885161648471866161361923543917754693454863105915857072392799885311200745783533724182448628109334946312045223910995872978056836257658205732066285847855936490038361587793941891684041424915376493043647314266610173168160610001881765295522979297808377671397717897065969436418216978685159979602077662348973864347196201715709889300353110326977359466076793413199627478997050406680179776830958188040921885764741916481705500661182150155561112950015535829727883503820421411440914501933249385188198960079040313212895766951643673401293158497564616695472067357603715901722164124238473784639808416036389666050952891378744142119654762130320533373530617097213889088908081188096642244806004076175011535108035116137696465642211153463535931936777797376732832023917631331455102370744987908567415387828791224710479621839956805794705976351973080808814550809492549229865339533991084731946101985946044097993223933666580856254072951740739830153660647092072368186686639726579531767023751519531572832060249000693285659634376753207323969344272146930325971571450519112401300903008905686633259281574547960263601117376623414908899198518728376643232781515732423815619687358501491205181552397652315841935523656521146030262520381590143340507738088400645883109316114319142724176361732546659407298139690410219436681038135906660420907877007347704452364305802490670437491445390945965876467390588300914818643214295146369573863480188826859123237891980308936911750239809908496574870893735526241099707160653348245455255136423395349210732832308330996564365058974657334914251048696112187381302219240576269080428271571163179344653318988187959344674939326937577948193325106593489169101298825129154912346642702958515542592325007719047845179296551385118926488077640235354110656438427538548344654392162170236487671900102157508669085571646523869839754597081227120300956965461855557344484228653756257101743749076256030000040361790149557012076068462371107355111831913367681456141416772126514567928108174220272831160517581266467180915807213326291723721807399769930344302937778922541103562146516795374710824289260003945708605318827743998034110881078134991113796479523007345296820738714533601489312155109121844330120715235236924941108140520504337684894973300985709743431402759304845780024586282622925516532259151606032488867165884787105888051873295360319115104512044941066854991674109028667909358597126612001953690672572816522244944552234909686561129819832132289113387263575406286181184306768830811451040261459671279187146548617435467977408061992927880188092915840553228377255674834658758336491471544865353341245761512349780001854490410089384933264377308360186935442147324597911539932724388741703366848392904951356193111418545703865521971803403170263641981359353657664693980105204366285919222409118757512263435085324167248796367585394942259418610749382737881738444620921558321551166087970489404427004201717858602640807510223598429533656857586370030876510594405251310448382067620372742877987778652183693992231117168193086646342416441552410389181676235229038606535781872395566772090170908884942785668572644751660337576538305385314743647688943324989050341335714935424990198850611193407358431415976026474324213547393027048634472635736307812018652149467789326739528999584903254450252525889264084240753122005068347191153296923083032815644707780546134295016799709117386029847341795431466867859390389405527589949652871430427070856945101674793161793417125854350092504715227927953741532700561518516556806752494527538366177910619585529270339606755750696481528513717993660525540908478911429116862955514389370848368305523175388128144281171203721758624880178167107305567189853175578993662786497481469582119115565410326210503769000145431572610238076587578107718260683814609589263254955220929980937071515451808009217727807344721719053641191943822770895548263323794667570282818205291266286872098685392000103944364167582166952645584492027873904095533405035314166934292222282129850728290117428368456749032488673581895193769633865012845254345161755353537619692065951411799330626419781911766192337560682767807596071397178763156586838377077671045897908253229088081426307389125983864635330794730321080294605309618299858552461893491411157308710158041217372940389341748540029180476121947533498807843738846551005947653428326625135600405483900130466198821057643783235885730749697293916138668061936341968111061339628135249568104040887404138053609518643456260854023605739428450590042344769642356008972104528939624014514059610276720744029698174125434198400573011122098322862764353584495878236966082557302422821100883865409693307037656706677809788736942447860384851046495649779246405417587405315599974536873261800555499973204916130713808906589376084216717420303137348730150107840872149445635797470361669143576377289828120949293404765238982167682728547140526168806735593153109537661356971686223938701901159581717349988906692998707921297242147427907821314465665534260479990904820508387717058150010247123743851388513807464230494435431174346041478877606965233052544831195577544864171583109973063267106959573863588296678349842283469768588361618341505290049490555432283001035785038935413691586055458338161989784140110375811105733579191253739077542369122130584191883911209886761864689771750694672092678356714163943655150920375205341015428169367235652046169536774402454147743098235852682201465511375386135324507344506027287743768909085774530056562093049107346853437848728038171391864194622967754904543158406062330477725280359776830603590129717578548332357828116880634548067684198384803194050931857358079139504927321918407968854080048297547842991315285298599184141842629558649235841385600866441410134338353224252500959293620224846152764961426643409234277630242018101294931519639563212235595858251568306283263782976336016281965570447334477135982666817461991536495920542314941881672210250760465163589202863398052669886647898798192694926524516238956926654901550268399283043958748640617671806723041437721684896665212137761202142388906757768292605830779402078625499701197146197288751965654032890616780267954886064724015476988518876430888349387793505584354299134162131702943848399337679167175238207961928091716569982855006099206956172672983748852371794520728526486095398291953492457857129253159649840642804685998033817570016349892332170346231026823021729315521404184169722600526948261190696500470596557245323170503851947751682723238925663609305399982149567476522733725767010625334791667502990405689505124365179541870461850923179987725631241319231735146784782055792976437838895104155746878999021569618213485651683883502889335384891115784299140567941583048359066791335015728157726435210356417815612212781585963663168443821033212623493748317143887975827857209988890387746911844914630632128099309987947563255425673199279720600837106470934369564420266114971058185350142801166877899881267184417731069321790500328037217474147645570231886118340626607371291310233232444477731243006025572725284535733249116212280255868550289070698318542401517088213588679069331166899567475784141447590801593445805327000629406722373734859054525706842645770647887153024305055756884194123727863577757271855541675656815755011840195668717570210944833296743735814361472807876053840367044609958850644288047677971155859601755740458128161235652921075673166742701402806609753689776008471847745368921385966698111737642533220513565587610044456115573664347456247238033147030720036058739438259305928948774396501571060256444998007173510481215435908594033792740979287857237960644694678164488147352136706873210166599978455981970403996434552093832097682752338309200530111365986415599599093800520961354049480002767639730836104367650629519274422641382783015458935828457063368474684271237669652260454652376653537236748639767545031780456863303354069948814837679146257345551979619792780516568912162341741838278529104853783430570637589200605040545230453401100428812475004554051658816152143770721486144449132712162511867818035708463509639133795403024298612948630728746563616503954370708439455227911024279240973185718709914049071576591270477006498273168480942423224622076103561434999645015588180513166087988491787980871303685677278107883749684871123286554172145180058073298041074150274666953904764820205851002077641950180670701970945097525740349138027733552241014475743027053509901103136333563504311792643655848486975685540380634596610032965046718914192136296669518382115524244028854435695829314913568327221077106212544260077168916795729885068920604699051248215751624297211000415093904295898909969918981707202231126822744857603263257156369058032788603213033677997172015772745817558915501022708928374774041091339173187975754859479159378274288614879324420984096613872725550746415115530386389390439787723909152437583357136943559177979028181797728712675502766964226084302716961425767340129065719937206740391639083650044281006806095789588119265977154354287296093288577761787169974403281200375983333445253450499644377253792112528272188908756402088983023435903589306963684361844699127298400107738260134010078837965667631556623299891320489631668623582477269576332828076655355324011682117617523539819090945833613783645027634342111331909248958267957518941393657434217428201809040729815894519528622675549028608820958696648544370729027476650524775106355953225228550656898256704635533109715812390882018834700903516739157189775562233047646370598619774105864532229233057865546271104628985405352399214758634543444648182609030304015004602911732874181937870801663110697873225422141338985131386656382902303258242427340268337600670891403748021020923870893850841266782530298486453643288534244261472487230024436677179323579998859306280976344273376824744634913685148620162673289097880583213196880534096702288178094991527062207999325780222534122818787489039477708042667175954116702571794720417970478565476703587357857980920555279184074215626507779853952839542652211098478963131488910934181506303125869931309060262283207421131925532141250306018338492028212080581092920590970917300117149889981685322313807871308410914036382630379525127852679320096176219819752904667973739501232027360014590115854675479524171053321248792717813812686115282334932999262388509089748178479893609976613962989768617443429159623935492745591838096532170297363973076090171721042227714014800584560112938542487773718538363447138661776745619367526870057303630077527949474926938745782976577118449318141424864684430526436719432224064720403432847049162499859507573817118966716169102973240923777319872513554166200136155328013985762380041688251859578842508005965927660039051287156020751754671140329391328791774834367254015053257651871217658115411434105326417917119928865602879682080877917002245543245789873634810624051883252347119972626860928331557548995758189867883619460446025904236850619362739725131001818439009400709784261760584426967905255226933453980120793561266588998443373571284429868299843910038043570819446115072751772246373715493771160968589456920496089168544863869501170003274092719830719740971794424906177094418998844671056635773463579031232591241971381763898222119855006189269642073722030843191798574344054367187343071327370074563039958303738849186402105751294255461535646383930191874418661229114554330980650225239876393209954203846200244931833552033405710890711662552850357797082093352034885673448827735017902771839488997071956821072940877615048214068982202712723878266343154757445394917196711885604607373343185152029910585635461309364230740900037680439792515647644737084878907320886009835647460160961119815452764151726464183899992622320107624615430830151132271221486745910841479547317218442729343394664449327710464154782336336996823164782463920956368739715457811810037625374230152914875729989140788982108744851389685451555856493886824349737876356299988258598975900575279219859196734581530658724904784682202866019147638349700762932380515163924068245176593624531655523375626994043762591827272007240782323203727699912684430291823631706232161260267902528245451275492094157224906973135765193578766406962370433464593942326942586444893086999225978548126046645184945563915621935039358314719793226785156147436295274844391952815026898822535964130918518450338959973272350511618675082320409136782345284547421446092361301637984939701024195664686471397210619037291086776702475475240030796478843244995048343407030871199102133763482823357940754359986533245500881448300237207301300998594878652972336313079648070964339802280763295878471046549030049247576428394960836639618718416839574564713569308596760291778109311149796667791335737291294837593904103928082997406834067303293894011095939208119909696378842909598404836497647178446642414980314306684616965419367194905529668668060305130456484770770409163790448388615066808581310529247717305753596437409704814348758095123916964987013611717094371685535716637275846609023025075014383430812681349776426955075966957459131906508542354936590045019755522853495139582673750419765934347885299140648448514203876054934704274807861505001832891558589521550689020345321776815558156772668797996918789029216964208181551676434340366631768404711127138351941426523169400959664249757591727964148382879375304892311723216737883060691415266819546636700208348257782655666707395374965425145021524696761794218759232971443015373120189559340237589587649106971612966392165283044086920082779758252765639078220888697451358326490206302708107606579821343660346626139053339702236408293283951089250452777717560355323506885041419671575204159981993559683263320802802112256962871341348825895363245011894376118879704927248447194145785047975723972242375891892072741262845413563987667688740728660990607643112092189296687426713307316941852276699459402221260705743288265628893564716263499720791344276025195962652426660958798633424080655618685762472883563577924229531781027374252935670404614125349637247338625400653656345422600845602298514761280067713985516588150111343883502428021714413896228966322991808229650101381603586545750940654062445866673602606833672468240394204660831740406883239773827386294200893060191335341963464196262517461880258677746252402746758366482695577728818364253225467322241732566977071646891966021984767272754499006212680904567054025411577458562928497187874514260515663201639244261620604306952801355497979508374864156477657730108478336696104364368211869127406273989913765112418759304332646309716277126702728962349230272319532592723973518277439626468783414674687764968611270120870761666172206352178922577903755319276773766135690563879942402002741013098793862204630790881311872428179166062319977489620016275977810117358550964298427882066099866027985797687288182834615280376712943970014493378554676318255156231352664435893568717285243717126653133683554523065123707185294378647285099510787301165617530647721949620192798249409380001170198112323978988227837054350051629984116744562574994888893429095671166306202779366239463457700385907823062674159221919147913846430765663586953451463054206693401389184827835900997083550708439359687140625770725600402447375539137763496639222470016951371879795721275886352115514807701534388549652804818658966176073981614843838696498355855362797116732037511821944560264418141188950287729065340313826794906825596984885777853867302190052939113488001706469415235901437860095243060133615393408867355135136349374340836504512920696052565371221038771028497733107541098570047116371837117404444963991712873914483500757621348578178293089636551282100265201992837242059397257952812433963917020040208710742242169474040266502895455693586161264909632327300064869550128096455605090421271687144884607024260119271169107809216426135395571441374732898148412617445290721160969004025663946229592719859140172635206130367766155307738640830678099886350919420545719308626548966439260164139960519182249531775137479832765874492285590771269080723438939264630745256944054943206790513166546774517695507796898822570447171457154891011238756781581847477089257298291086451439908142309019676214368436235920658081759574314658431135743660133925221153537336346332569366466654669880680753381080495673437722844022282959819559625802317703199859846810659708990122341479125287563756926617634998785836101495242772239057286476845268256564941967337518864797319397237213748427484081336859089224547714913550952217906462270087010320727784873435406569346492837069334516322693237006645788243828807011569017810390272934628574723340199896570459665858007523550656841584472546476411148742022070090528828391065217770921380902442895244284553804404698296186733665565539294016392080320818310671622477710580372250022070679047872442664187233407034955742827245718907149030177997061720887256741151755219419693316733179464760263127666963875654891564411004538905876703757957431539374504597296294841882082405848970058823626597218023366702750002703651095585460728617223062893669811667977961116554613395523707464269264561459452099176043113299187373113092980372332230538942424570777869728271319928352890204656833217168059986929531372264551439930395138433626850151938305647039732484714778902604781591195613178211017028261182741589048127995273974328875072471064758435560258212364293621873695382824898111936779778836283172097861869672213430273049781832092981715857500508305137181893951736897161059484873112354577988513450040667622019546942286064715671313888781711851471668195139482710250362202221466785725277418219930765240034651345579024185215624507379876134949150001606649184632469098007971447929396196140352370627237571886439650500836386415157602542588036257872072737030152033024155959489672713310451067088677890103125725302133457413904747254342461487398262843620642087417880370664125824488172684181231634389461006102831610590196947216401341186646912632348243401395820996653692405988852757328396898518321530587107244716261943897336802084246018419651123866391144690672988844298635342497428177253017343716691325877216735716878814914195150912459573904651896592161448733954306417675492281583361894337865481946263252803902490128797574648674394757152177115872127408995871337260013391154685573553651345690932460113210745976272275754652381654526816119296771785445240490107470769038508648010549120651949394238266900837192848522951120610511380969356088425881802791957700934499915738429545309124110577891991390570677840373443884066856258341607741674262004500253335250983755008350344707705432718383807810375761567496970271653209393226032650687608863543792622244671865891777547449350328115670518264130593778946511898419740521986384547981827286772114521871128084161315161574006260877633700867226003555820249063322829194745765985564897437523934908270388417691072181985640005745639567864584452598295547944012016017815442745344143620432121595781093475077594123429160101909595443279444535155248822359337238744298281095186002999432151632537703293059525075874281343203892031401764947726103404887881701989791410529917846958254973620570493412014780869974343198625180707748919916440309763994049848470929776713080493905235094676801514759061741682384337002573044457956188146407183916143533607292924979496041959667915153175865118228873734747450865274830321203655950068476576448816692670601856320545978561507830733029690811730926160776227358476582512971200867349624922474855771857697304387401176148261804864606345356009424496406065830312649067998664725712402727829223522571858909956969793999679787536451049191168392246719402905476818642867483238591037450709282397938999814346944257446201049022551559080694661666791813695614513579976636455812550357941025294438321681578008142923071360059057066509216098557284860479053475543777169856805412014329744653445009177874836635337909941444381258558327271493091583660872758311035460923981656997735617081507899240777270033567341833421158710840857062044498251758686467308663883341710766234563525636632910569649504900285063158497506371730332792501441498295390902426473980620439090110120374420587031910182854974260895988451932628332432350203870295382664784761819238930781502741868285740987719354381459575773968038275999377125679324643737148717314746968180187118034929945233909336156278664178577233384983410740826704881365260462325371566710747106930403847686522721478017013546734534811421927906800926394761937507970401957958551276663361774085969523602709418266600720809113846125173104196663801320669873634808861011261654191239280701556729840368054623475951093961614189780781162842084624006439133294155480616449867874971820794549395660367154359870955137129501655960322930935723873715659217267577679107640764364488898010473162227550722513569492505549461983377144578335077153454338632129419215888190630622620564924102775518232885340775978223642375631496044635613868826671247501140330118345212482253321462830680221497391512203945071219960218535641971454828842595660776184592880695380256994350092958270502016150236700318180352364706356876602349781380123898482765686895592986096603222434359911963251469717613771003121435227722203519897338480823156283377126320045200517423075903652351200836046109245939540395796557717704951171430686393825010773718052054748773257536635835411728249672051946300761420463292495239636238381916140173326357801263403253886657958905740733123819692108310958713825635548865039771188792883501578135076086498957815197757347631103862053447330933425523282578063593839759669388928457816102616968475086165372153455778048829006175227458191974756069811542895562515610392144392843499947522023815238828696689733813373427768721417409084021974385412974395206112171177733171341893354500312101940121410686042957280634535181749888510371921004880771675716983452414603692866112846634223165618947442293483777561663943909016157522180830051674063512532975678444573342966578363137526085925243718554327974597170680222856399188826251926876050999370906764222953700782672951965088375287739844707544258955092164730678841924056859068264479531656367421735110389342107844095663295040699484086905137311628689692609733564130489902572983789839436088356609508603253139887506330368717022803410234325208414407644953893007275905440760420430333570984548777655464639867227068242564107008200258626853574110274739268371753311038648849743956714187335209143815435223527968676222797008774415721945685325136281985958729592882304290871412254124947143336056029673469216908947693181238795389985531108265716692984373727590328050138939625280233942320018771311820801095480931484898485772016174048330770474777186762582899350039094807716378647901159896741282921704714820371905416274209170758038456739623013585132274226780725383868438678770119737187631378710344542005696977789532556476908669606576284791245931276927638978290440626477891149613236009805525701198186816809123317488284536443680785453036887213054002250180699257874376169852606800004766728344263571828982702305136324837093887893489353878643410818939604154828916772473403094850118071595108617141951162561693648743675879759851525903411505142194409415434045185369855544881187964099293669174967704663043056410265510705860807564355330766052785409912607322011273243667788552187146323437021552267276542912189099433463128292069507965961261730072055199679265601269549328527565693147010736257578294395192002848270846903602106375008855211248458483007758891959989740623998006436650450366012635738724882779071706835949288276289104886025021501782834500679371763095156094005009486105828337634066012880745891616538106027584630672316978308491641475657631946075405063870134629356458561522975026108948203988349899790600391251433804177095795577493380088676042955449644856001733615318739404977469958793394271708855917785200658455763844870120740095980729628588911202515375591442861612662915761214468846683919171901172356884761395679501334260598355748786764273636580737803621593069684074075394107695782780764322546269678731123272681137002822133468400328153917415831278417323892336356785802877869924543359050432863472925455700739711102424705493800773766066836275914230917065071809824647181131480659272760659013828078473165675749197834170715750748906600844850238246834688796589279167637033929544527987655824263753905393946647981854278607099129966334839785664788182167676119247618858444293191460937717488254149848964008028117284627675128104885798922052736439038594871228675701652793807701445666428192260863791193257135526965915693179706358876540827068118900771868997084376908297540554729410546410059133202374956990638796289647418646418366749236552213413962379442219933709650989074186573862960989894332302609308916244809004360531837601661105071313409190145301513350026034711532894796548327478954860205049095473014246240441971295662990748441142961085106829302206571603377988779360239506842757279523128569866573842853800880092651722924819941538172572966929746165252076633336523804272039495640132590287362283669336611033636983250821070601732593186946568176681172197721873036620119883362703024248068207001180510771242332530075315664359290005545454916952617915113003925741216759889864551174053612022783240143245863642565637756181965715468289656498166250624025317657184669900724132436853152645811352192803186275330823827213423933461692045086956778794175518947584398758826702473086346851077209002276109455193506715769546478642733688244039296719502653669093898181923435480347935918621139982844724989229338234112830504779662751754332851399386673922973144321698530473380281578940732795435383827752003152303199011914780378719459760673963742246099417535294849882836548468172521749194298576024446305775313302189375005443095988790989692111014459464631977775106966729405659686890512028633723021441960480480349689194746209599332214131310888553258572229828645650036966715980911519082504160158768306708071488329865722653502108595182993198246369207057924316874713456221692511948007557572913334731116687631708642217601703877666936471734899549264271569469316642673940605497955394474317481800420799828686715000388395452291582262510557469122429278365295690139493161505326036983421174179450952851526343669036229117464677513912733553881427614965357533726518346902271271167786458333246634846966992330131872359838584726229934348340265434454069745899422404692731116665724418757227884840840665205618809019012538048017728338771354999393707760542791113361108778251189798096624707881075811350180832661481888742717249692895268812692744865423914966905312452969043069403512698028068905564870563720520777349942908604683938099092365887589508632317774790579797426258234366181624495170778816934446772681896585893540006191955717686221696952781126074879965853455921397306223183911843527256686438131225985224552728613376418318069086533182643749424030101399250369784341644155391715378678576545829904791353749334351662241840049671021423473161604000851300739788455008714369952856161188083754213331207522309458784072606351390603494011061132624037471624586988442109456090730613033288814401924020564659319015936243849359009180464919749858062920907129558543842880460752476757063852134553126439681442867169183493072245040165172815431433702806268330112191223747353856327176983932772466293048572285501912523924329278058470227510648128688913574780448448653131917672503805992487076080423900497866083469550950319089697166618350745820406902918780115557086896640793233441384622538758371284587104556752453444557999304185653918249988667592437848553452187463951101059670037649127813711907510385965583732475433512506618160194798126609476397008249816135425513132741319744789572017046596371394726656596114663881969748253531032352594017174444708593710372738143319854078993196422265046312443921166406395258620755971374131204207317948607623806056415097375827862573082272420927250154252480885600454025145441122624917866785558067223129430787856126713153062107764002365218738816795500120399998332734149899248903936684032044714918409172565878646907027602934378768224667624847390871382337060603408061714060097540971660025685445643431836778549287611207491194089000788302394812906289777381002611161982121588280017944134229271152642877583936530487115822500724788320905353617560275975591643040023592309341822438151352718536822825739074377783493328478990992613401919157969807432594808321283898209399646287190886934479177843267442828264857973702254223928736259814660151121501424850540061291105633725118377024748350089219581135382355486233342737798483215407235841420956982333444028028525588548658965808107982307051128150851201035525792102857217001530856508744528357428279196318362764527358531894891817518408833116461856703000102929383680253790314558159467164419324055897841079358253504017279975168166288361067555415059674816748231890448106188353376867262490929565349238746957256332148882817070339095493498949772969986888118813438153751331811030737880521351292341921152811022722658736826492641514951969282367354031121167678994430078941891844534191523342639755713264715242950505137124977666103058883098881877841289676260175750955432763801262591507437987009451597519301033453356678169686198152848350950394632256928034384314507434470100307973209398474890736813412190305094965551357323439018308336480222557894924989130438170600641133511267551289804332547835825417055924610285157965051361723023905797900843686906830204413796564226521904933003976777568737094087169483407195064790500723036617287482779141082941935959121830166884966808138712167652879085346877211617548078230724403823365104393979553566556859102858916910403588190401959125931907185870192082812376104327105477955033069587181780515652197121124852100993721299199517303595748227193656997823004072975487838283521492739475414016824155391759013470425344109641730173634818185784313261240341870244352422995466606007307765498294377352270873997071018891686129238032989983283856836626897973715637527151915710818433195401737806725577141222601465532639264730092507437772421230288115603050350043593478045237144362879286383994752047606586521160880759197733899863885879436977353171903214636131387945621449018813390496508675201043506014742453760174920003542656640634298683345328489790503981395349830531183901241243648614817581535829399627337047773683253469252198067977456453733934247788330724505546615622916941174779708220219656093037343320935111405374164987264756749386448492335419807333670894817734505648623615009323921960021927874767555024407075184968404010227316533904665978628738655912464489552942146952398420058255996090596825502863779032624498650276467392677034981511473137319689237443377419974322017729386098593235494697733611819040363844993221019749146813528414642910215730776635151119310830154670070877726947069646270859072045699504077378702250589074484977676601951157155995609081539631712613647480896595869542532377130779740969650009842102869016182784452194265015615808771879549762852583750430063164232584499550970722270347247312722173022260405792517184759041230729087469754568766071050611716917710843289963461333116011786595051548332907913363378172195152112223708078388271345986270660465995883104972902048920564825620969638587785164798633469789685644790438008614311472460756781060635117089755118073937418787731512488476745635485973501459982730486567145296508959657430791580651099942583308573822159974186158587683494686596623978536213141929596120088833517609287130436144781803244883327531662000283288962059688159889524864567252252713829963253113123278100730611303235338346000972209249088316399628849725506610663886328757133938861884845103742484111828386042567761801895453768820290557062585469868256803621544273801340700400743288976030794579896274404836444215154221575201385458929493338577474500042266936284915364507639865423971653774718177127051096232518238909888668535809408454819497934503849868447178965701520358747489023352513250316538732697454314184788858009633947017832694166094981507224415561973253070648485919622744894878201489763566901076578669898054725281430138614496605249872030516469694778413736607477092822929197865960988484943350892398619328869340642234826621212957834865295676292556193400608361195015608024231129644947717280507368242237761978442269510425045344272679362624686123266335067686852188259808526987551491052599853414620129826143298041761347158059267308171243525221020890990514170267791520535574910235431269179675342538361508804385375392576667341381426266853335927134895750518775743502931764849215677475683447126465958231247495523245301564477128910663896701731990002733421609795606882115154310090398175871234117570425601293493845265178122950876854896138710806236921679660636900268826157349926893489636474214328094393087782582057530726269842941102635690423111360081320890284438101526977470827265320411503985187076295219350871656627276537258219314530040271619590711002481107600373662780425338109552645752573888385740774299173045843313771463394232983970433511470812771537084568394053916026469655569161745295102594134734300607480699613007922687954815607358135756941422738430578719449259564795206302416850943857938511209409073754538077402351236881750161424012476654808552093764464572597430253266909459711363437409464794750612256996679063795935904749757349931458066811753933982352969008938951911504019836028227656033059903926723869113982893336611462537675700600934832944005063950547909076257769040636406719798296951686502014808032938810333685436982714427128016446514645629492711491761807776881781344616565635597376819155806088880457149489696384097094108438400176186585712176257319453932352556198770192236824048486829518510894212746548426142894300149322595597082080196743999435711566906375583404808010706277797585800339123883670670746486359094558945394835209521900664922045580406127698289355172691070311923307860961786157026094627314505668388363984476041119144278429300380423516143766426620113954970984261366376391405891513827331325821171869983090604127073042947236533993939777490762438891370264121965077263036322264934955456587083608708119922354668516736255264049605695930053751604338825323580760856851731733730155642086248688465640171314417367581286735966963897253797577520164490415362157698368443660995284493267825683481699202580020738191698825066492453876351215312623277652413884970858159142955193154783186067132214857894413786463325213706015564217616184032250459665183799868959294436420872897022978490735856998204014540298810859533713645739554908393531006883450971997589045757360626737880165028787462232418246331601100275236277316090678235099585644175001636503817989880306629742864578809934768408889981193155097174925555837145409039968328522997732889158500937571276966313815386473042654508347789325199213393591693105088892684553756691068934214159822207143687575671125848722477420819246725544620140071359264801637924900604271673137822448834489927432644138701794132146393365260508211065537083032417578051228849977607080160417275197784189807371945880673839172423660420319816016079907923824268586195041814080063323792098410668272591170074957552772538465341536062292919162807526840848382079434063954807497622819913817736244415160937145287520296509215867099762403186980014052425209911373879830881915316647507417087470936816749174339745621035032460686319195324853561561044049782521484274148972089943253167913053224415121447705985574469219825521833744294298020776929153520907527362672029463301057609899730008774610631916958322971963165828540139599427709459553835073818621341247033258433687917396721501568380604685431649695545672538801093439313183427735973371537745318515057429986797709572711330179315731493179809628338854123742759487897851422871664054742669115832733917764736633905853593851347980324099664928055052225762021943675606611962469062123768476441337454501356977126677689085019678828635623966691999883255639413073945135531572064655183404116157028267772986887166007593016202215735287954340222427000519795013978124206815002475592876732419055786695500926973250998714994584892740194338687707999168280476180272646865018704138269811832008209942052066795285453452729174270795951653549928438831911851393799457978285397743614129535515296899750494159690959656488097711454659706688288863573177692658678072585493208200716718472535634532397880399607830847919262909676728525326168801359950286057732490069804902147759999358750106080485736606313729606021603723387031005684075963135907867730675154668361048301604583369973287047996826003643335391470802150414156944653816672107707227398141097716882312549213126084407120480518808034417739820084017558938065521616427293461162456108811961233693176478142392869319065578571902205062292383987804594206320085727839022409646946803883968590656014336714654571306181731779240496001568940734418356842312585579332636730033578292025276895742115407514509876736886866234168371970946651582287134659432307334791915501416655995115185305530593310886849124723384638789315041980827461378766218589603773306251407193075155918331392057851957318948018662366138671940194224318575434138048633970265612424665807385993376421129490863454626675325716062172738329433832231873061503337317271968391958768750100343881709197772271574402455408816696190711258107027099141900883070757208401667878633359440547571008456184571186280630127526822109122503265638433669893311872835090709713495007923776862851911382265494996940069741473368045466647328489238501708593758561781716304871095925904798708477061024221459095771130662702906101102364450347192090007582579186321132317072653614780991821154296726870399136525180658698817079473139916200166542724807417970238249629666755208447672388677254885693762028343324136520348912798696747323773388008601291364192080316283198025659057039772326667032559791845258391635197456051760793097316821962822947705738014714807243926848666005095928751579417890024396215167282670131742338297317471247776925727956145233556949901278426318914720213989276960855357087168973568374363669002281173860212733654804430817805544169711569619626022293769570955074374792966142308138481319806167732662773477250820129188434481978099791794620228969201603244275765191117741974067889330934847262324581875584673082120323234127339222475679001523279157625582554192422314565579430421359871373573536535662552199296771989925497099733695899932958008239795252992667586794012376300620735019434821888505827423573300230016605217531996163269645743844648321137656921245749334766337122065663927188024345156149430182919718607539715946632294730501314395435471728749185720122797928609491494180981871757846215076227547184781171480474762769932258408792432642266663223635604191594161254245626640646791340412124464807049280320880394149256167435033018577920004662135199692482413982913119788075846335151432478605433682999754839388239214845283142958900516936233975199135245706367258016628060782632421407199093729101351888579550128526262720531412736323933698392471866537925233686279613188150312577521393741874039282134000804844187061035367095712868255218874031488491234459372549325007636307436729451828043396812808402614955739255483918996525621887065356682516620830839183716358127507765717242768997280901925768654216063003110695359041484656140154139772042250086611620510922546289475469871327130647597288345309255750498579228928556489245546934894876390839582577606535827685542226975443938692562401798248649454731155515496151477591494407632080826170642105595322364725657119553983537010480094091771906308505040594768509807330427864526718687094566916157705079986884993125221704739255352836581771562967508612578116409204487249435775333875870958393593055078685430923253298546595087015952562131744934252881668373705743556332583821415556296291941497694531586932071795159034040645335008566503779793832789509570617306367016614957147990971636638331864119059235045955911001151502974378557876249370184351398366186349840297841241662830396185643038200137462293483966310563601659129306157653713812880040605158308615556501304171078287955454285061991411335104745993859545096669725327696660559344279284585998295223687288050705104518075296170618602812343020999730272466576707307658828336341678552331896242857080342606051438410862534430130792568110733808474636721537519394582606450708605611425733241891593014263410288479690079005905450435835890479082088455212330584575984037903470868417544667548521699648568726750969711347985045249549114854568289282465275234728998047633721113836954115679531222671158558624209186021490280259798236550555667969433198258924389989265166476536862650698726665785306424770928082948192348306137988928350238443139614999650696583226868542115884132743770314562727367320362333073761600903695597360508330655086062357019182824967718278609646537106675358223691009859220043483131843435685048291244313694716546522205220579510079529377272135662476370438851610404061706998830858471969431655459669032066953086573917404601185656980828590295972871126480029544273315133062110589434503867338360544764800622005116382894288442634606299324955797712472907125107716336975299006033461155611362334556945269617039902722107927099975150704327584930949013402038590046001461965149134823825732586077540641533922956612687976537634584947001830750495565154198123640216809562820371159888817217447143375159188567437591924636390617434800987447533414763129143752074482899381113537251768145263473245414676724329559820670940384328735699667233513922895218746085971537966694874738456356225692020397452867034756527244063673276040546380269517316150860586481245464396609700918573457817482274982537238597422890749351895713936725190225685048165954515540305401766510586728858565830955695541842917203640838167169040597390477632409916374337180291614230456643271290202492600535730904311940021681536471441094309701067652150181931874471269015298375733668999614437976090970728249048525327385231025988377208738959239323478144565620965728360154490819248728739900796804198341605571528659853224567370636713776523926049132828667729903448096752723499187590397764309695811099933121444711771161382965298365399681315489936313389813477151060874053126489295553085986496648306809852210275629961123744884211251521205296978677732825235068998624235533319400156091330979592210782261872938759433488106697806440591115940385586763691877831036753475885769527074391261121391932698901791978890013270278371702682435314924120248499416035293492197859160355825209537357818022971754492864942997003694859578654603610847966027052347245345126342621420899489499816519570410807432615661672782410175952703176398961667521323177745557901292477292094297438346603898020835109387188671162472835844942108453608648543437451527389953047706518502050282542723350308359708861535788654764799004872170296256019401152407960907941029521902938228770884885927030711509820801483465476904859795670766648383340131567997560850252351130087468111153942677065256397426355522985915418879529537469442406374795666804614313656031509055807424690796951118834533463711311031294732031302063170425525894474266845009998157272414818582211817822338335169239806658494426500552448955671087766281484620252521264629248436219868109891352474284553139442303903819607173395601179506871874004042008646321565529268100877248445945479211958357241922722111424557437554549473458734625465225958136666567431461250690527754536248234221309684988316411056068695710871867876565776127993991067899325511546799283636377937848857576084512154069114781576471900103507859473627000535411289928564673677621649381664376928078858431552962076274942156049677899050633558863379801556152569984079238329116634307452302222508073669558313972577011101528714352015382562993571075082558822656789332961725207606123609257568719760163803047876423618857562958787798203684447363281256990099896619490896218078389277729899147246440340874104315586773582953005082933503292209027319369285225844298428614827257560465757123431823135706722432302232262231989397905548602654229795750354311602261348659766208797694721005640530542734873926068770441603787032970981780736072711944769282544114606024781299713464061755200176984012422949633508659103198667199166640042207066884638201543535131489989695288902658241510025550976123031693071396961308504077600098668240209482905567028640702327189876953779502492973049643207851078306893059963272966786248504918523044956186387161614939224822609525168552594819473355093007920845680500677448174430596954394630874146783656719235157367977009438115104382126089895042996346997635178227817436825191133254243159316288301830241079543504270991072804925798135830511840740654916068408583825229416476960055505453877591453990179945031199010896278296669125752059704691443525863501564200632792409445809047034884636400050903350843190642946233460251722983607493342754246347170105073296276542293251385887528612890302086300060891433294293520279752425568585315185871953125520226664761472894083223461126808681330724854098445459679967889510562714560023185970799812648946596435595644714234458863626142925346600944052002402403932553110465294981717254858824961164740768381395175879694236902193511879654789027840400461791721065391213582513964335446353859082458070001976088929260500583129303792272159228907329844364321011478364983438795816857298306475615017196806398180732403669512814348772953482548957907878034143230837131373132728661206169499664858974379503311793318337075609844283772391707966308247614137641036088858201405643178222484372303426556252998279506531637455114452788222187286060703501281878386900033676223789706033206842059830033503935901470840720992018747570945544505482503321972388076441908240805912616801929614991497559610230422999003706539452501549717204203975627078312671169048173233097636474145721252003938644891302022655619100977280571753766476225340466820753312443561425104510821836640784530913164904854678404764062567568174018519182956606532872130347259566600251677102564244070249131742381723678809174476991340126484398881462630160750327726093124629567366308281818778540992289021362078320632395654081968809327477088072613650089678976197878318014335766631915557778080151423070854867589500453044058652148262413745319212379186621543495716157021100465812632799921047146145201987324819848804471123679144914818777423335033038926630655460883414690660545159323550127297571919153988076102062484973511446221986354273310718987898499343850565203241282482301769665084922120868096299710671727713431469541288321821301820276988755903706629192123206543448633225941376034865032499137916558685106623950746766752913371088314197563144806635171790617289634996907239284336718663924800678628899993511495897348733176463248289171021018708929894447730123641545826825256219296771860928707936917267800781631119558563172502536601540020558101843559125335648302568444665521240972822415047502764056196253636775344042250885978948613742800627069568919886346797394201582242393651365459004300496943914827217425477072318377424148986867410182687043584134820455356077352795307763702771422112761866450755407448190354693902774834842044809479475203015675211584748148037585805744116377298077206164970587641737311872735218472112273025184489268740741259971091088736048540120863841710057139451328985739883644561163157362345174479903217498950963988117825460663631865937091167310268057794737745555558350161707039474821039854825957765176966594319085312722302116857186204004573785484327465369891581839274332614369728108187254660028932265175841670294671372860326082758629589967220601742254450338078805854999801245279816395319734944700870930537278969119238783506206213064475321829634696553074674433722711410923085892437465654795748744149432108820078131932091183059736706773259697336769655903634184177094343894439715206426764342594269098852034155644085228336540199236131442699524886921661869716427369544676578312792659815838030771080038299100477322324552264833568689619629034116552102574692087745290743066678964122497374790712867916581655801025920964005157913962731290992166887652793687182920175592392360013218611529032441776264224008639106860242494646543681425867854166029767765197145202430496595659256066136404338755886682019460458355412891227559722456882612317412092741918002545398085274815852450163424034319998845413375599090312744081623246319543892452795297560755829337510319617619034334459423698308604063581235005274894853209666409710568701611814681475949528683114337525507779296574862278407827740178578565199873873494761210083213482295094746570541180744172925608714254009387621370941445367301203751972548001531937500371085232657002561028610175404472687195354646689905741690457103967118016652046135708498203886018034491027774199648667681866749810835764628464768856236986854791224944215606611461750805271757862623146006963207462397303977045942716696705409942503096285925339101737171648210129586963282043935321944455868189175264549450642267694025478828084502912058060418681981675750822988511940552693885865210856909728633143842888072805839215357636079674782029591753672726793645606647137213599390359176392093934409163760586866530095887943419947368466188505170928802290472755395303778108089710722659451375279660271991762288405031331787517496075937334528599753058278793908537069852566283528352317722234103365070362383736304235931936619352911438963942479902227536635970988977686923217011889849652920387830768866516868024850779382181612946131605108169365503415350481881193742662041330655359474834314657511098208759664215512058858333340864141630549111311389543071141999378059328839435281571289798715982673168919040951870408515757574444355939762402231505398823819662841862599698102509699785899133166074373645276428468781801579204971915732849424704951897640086648324613321970088274353522473130210324726602138234903843413034942435664156709748311112287781833298167902643263661999468309062188625570361573252422040640031540762815434696723303015075707473742574302158056836976716151451631567992867295489023773043130234446260322110623698921442093741335161051229759129218248510087862205253906945469970547711075321265069329863037674220475570234105788940856396428210406201587187808952570966432120759242412513750222110205760958208398219702903284345018768027190942292072654265266954483927671184769699994531464749066836800889258496433003723395870474015911779015951875746624961209797367043777039362021948902549431976068324108667110136556299639889361638043489506597678174781807511056630032252769590140789351543250761483385756369889478360938162793718152754207630978295105296438821995774679869862830565598313309924235398922686797264794558584270455458607051702957581807782092459835802180644811975022666315853194428405956771955804376435212681223634572556087740602595685657027851677809062013804892175211965411884061440784095984817279532406290115904545154085725278454048791764583046710289973750721085575579370010698670480686366939495831373018939969547217972116249276054784569470262876527821523842849696470809450716293824051602950375908771566375949270560665385800611072042550344062639975957466974367142648271090797611243718466959009938085511958915766405624844069135560976734147635027619383848492330684752764398038387126336007729613946317140154186064969850357942218479526046889771354130333022472881475517495848663185482532503841007628472629858825020058470080821998822873138741295894873126812713870545746390213026403028438076623982528583181842859672454867710747391572145557607326416398063268172996612471023476730274157829392895188408476358222865973404543054741129930425452780153052279039150319991191998842585902980674994749403824477126993989688591771860702855177395932455072417926135341790328426254856548571742271867748855635955184880223255530727331500379292957924924601098917424584321980222096446611803117869619247613357670615210378918454223619929654222946320585227167797972628345605041347095964545557739461891407304958503554100500806641242072024651889698589721654662516877720184242106787220539128742716521984568894563306472328557471206478276453474781549552758587219001235221512374742658754234035998309368775896691308022936075867954872455836067799584201911752438604906816568905867967790014570560188073070208799991095571526942126782892491655239807728527444254221872618566243085524252557406692656330138916716865902536088703950167213662904231919619536067790899074732919674963740896913264266148008242536154172625675692229831428460110545494914614064767807237563424629192464302220873678240860434038665811094167273229883232411899016516185972248345700594229761248904682183310189335393904779779973274416358891764885751996134315744268819828806431246772941334604560541204907150803655103935764892310728164808429321124356024391271663287411757886766858045981964365299392081110817691641995641219144368199728178236083430650537028622581117691003751596648893457758082820465797900296756143809227945926553162271593339082791444928047893004719402562863964475971859408721024800717183813986999986415370754999506834558276747562164146878444655566779449521563015665639727778538403851299681076281836185956595274442892764727679210537543198711961654768304132606279835049646763077828011512121956058217219441004096370476415584875457192670480793209425976834345869285948580239924765080575319057829494494289435749116465946502608393756990259831272857684814792181220415031014273524765416261135409327524487288235960238352856431970564254675974630558747221292441658548654351870611748992571479480278578319458381355113562804605628818415682797256684444740901328897314124950938499879127364207151300843671507474754881611390740202147932414908066858919215797196954156297900270607181084107542984267098640054229899959314364596325788614655988990716635614706264543052374753651769591333601090804729285132205938648150352916909131791666450331904428333498097532685709206910986157272300750076684068852160570418536551072336486157511855144966190888437802962906812822188911116670954917489668595308772674335079467051220041587322933801933450212732797736104163098955147190592535400294792179614338490437767962618448594240012068834841336309189512779522541960979685623166576572930373972255757449130315382559186249773256046319674502374532865494038666794975569193372620768778701567110205989574269109149229282653531582661589628627622229028384141610109578534029496175747138820562857584203970995895647197018430782935611671696131738747709667920293263275663466774844492125642160739455513740182652025660575997247760235334291699311021913873011368968029961509617343910810877549840651349719355951430178648154107254422081575145356486916245138484934065171824242287162049931085925273220015464154454845450862177087859913035113706700802300166744924009633329644583296767264880694270033885339076991309768999215378972328632133187946917730559903342914926337218553693860533508842539887355977262168758991252821982242005127170523024829048833717889826305706280905728195844327009465125208260738248830911846357640791467714183950666203177758921540060779691829437597426849378897112066673681983963939039234332199628508181239226807984749319973279315738913941149492583492804947493596371036603306495252242854607164523681475923319321097989838508100059732979827138092583865852539474430431862092391806412631361071882811373390226995947850006619698157691914972532354985410816451536006945081001521418196540967357093716091256276293428380407825224879213607354956618145618674232678219193500429256110922392492950326076119809054739539647666822511519846614094726398579517806484409872062542906843001171439591114841507078120484505845130418279157446078717018671658064693785132384709377067920284526152560906280953207910621724884254757845312611945117228673192573296681558847724396034813939173001248550068250744570524285012377234002976216387785267948366328904718909582358393015369258485758734661496634954117392682220578770921065751275397225436945481008716510758812527470176415235983085921975097016063987647724266260928574759544050255020771312301717009029605771362112821751466285149192203971079917638836387301094433563476627446008509264393868118388583691146751657200437176655694669418711195905194469552028979041150514085687122484233104604088039806604864393979527004042709961164436321375355850613959527913611946343274219320729691773375510161776612852285293194195245382865309843976587155047764988283954427577217860140511712016234681841665643057908057608614945282108772621737912111890087480370379665309213405933349897651485703249645987433138570553255399234531873689441556468896069868504293398235901819360584088604060009283636517878608587701705139749231344316888319228231709007836564192613205789459119523495939472541981032793303131499432271185329203589592662412026823994545281964452278463071936595332890492129172091088043039972636486870940705762073034090472934609127577907349221815849272294017714473230907839485233417645797056395369365790631475912273487882841079617287842400985075905403124073379632983166240968333288220500586493196141038223019921674490507146279220920100901299412413065896140110177981312961108795872134894943271343932105651842100223505343592597391781205426805826788434976598556832972731630242537449365761624258754554797452514964991538474214195771765836579409431554826273807527930206937565944949269141427198596941154628168449890838223403403781324294322808291636779625929476297704842510737197722758667808645266553931303536827558542477033114385193343053005002070703080540196802101465309773376390251950009838358729688225287096131901208258520832763682108918632296556623119481485349321621121618335628000619321779772582240273971579980833331181571803214073094496061275410494056896889695524989887565129349928018830530516020052602871351703049864424058008662198088416679679201744466303127217285897356834226704127535893526176571760966744160724036845738182622277544399484155716599938032375638904486458242085299045926647737623254922333122671887346012639348073267254906290721182396987168986444538333806274201535381393238507440780679277321758415945134551011643674256323264745990376657004007348093572064470568331909668829357101036540813820166447394991789373706116118891393349025859265109316311832235070258247448270385183454225169676671499226081288189017000176831084193551339565022287410380410840183216492254826868689666138013524060923686193612914835195661275463468540489718451594106043525221331662398338108294476415663271459598426739715199385968935621752395319202389542687493212265176392964544491028669452371495594771668338301717125188033545390467653666884349572853111031859031490346085975394977057438106740533213755867756771320386679158907179266440266449184920638669889235844234892799899835229279841737101452104547652298772929509494872751790568842381135251348990862184826771312538555593938584436441824162673727909493144591121483299731443318086863773678800419667715158582726780508311430085174642233141497624618887064924206136696548985234524478178980743052687793045360047617010249206229473119048558023372577532959003991220390060228047379343585437118184322512037027528525276761170687123399189927480677749219961284824569573286412260051722071333651833730310942653024570368674947956793038795500184988079325772623245189138866919019324345416238486181762801759100030128675059324858804751253246457768783622634126935609098561705124844356914155765012887559178471902357450994214204420334347926894573653508315790644770768542564356677562284407595959823203851601851590969369608415362427803729655432391486354555743310195698529269887175601260442141298589695852761235696395649193868288510726702750483102810261060032191777015042613422963569753499696280573924792071289573099182562043439074260081743884164849730624522437575382609154345447087803371018624315068454921584657759365145563824426403698961117278317039500492151857172719059614805903524488430677143161046779389584138848400431800197800487142599165733288270040424804260764817840811945586387614431350558497240658030268126342151005880107152608296481716331407649846485163707155536576751826003557861335314270247444931046179905771606955275439064868953708616483921226481957646916380041223222376832554741792242594613831514807162415972135400673907690171118472228317759185810176670237797081828410882105188460799848094130601514849255880919487988351923184190583764374908034245752989862144853010824554956774855536441523287557567410401944490332509731660932118129952121074632087964668584706925646185771891774788030058672553109957148498739376716797601348975155631047459557282487318247186543593047535628423704199351458486698300450711330855229227161634641196804398877491668842264129058358667624901039850511735336452873618934994417751432248934634557909319623048063989779020752258359914352522228019908621023626191518505513799542079438279083357395243093496692667549027620404403571715460860838134219111054961195215595088327337579924146061128692022343811644985853732811227407163034456297115594033122544547914396003773694221481829962754577317385015359192767153638137831104092916818798925167848452005411777662558471949421783818492719621081909830809325112195450543744979501737904389599483984092448907339110685092768364210619964505334655428207345333075875082535879459606937424551286604235002477137174415346304286142257420921687845373252375802542225432292100971082405142267560669030327688310551300610272461451491850081162164616533517664203086698027932353228088948651740967812710695903851938241440997312349988246262333102023364439229946973210739097588536119390257417801757726024251496081326275695673405330297588359296409954314143964859078273014285189910487458517109939827663139333334572772558571977757192264117314527404766378225877489325554956926092839067002696207048641959753126901835679315751781519092986130501902173776095437163861873716328659404581488955210427149904969767682827745685225183053915621856131085670574740208473678157850609658261199057535171448575432890323753237771609422167285828581406281970107820628470758098395071417090904637091581779006982493853155799653804860705378179989063866952288569228382855529510690496056230603927079900332763213918060974509766900476526693353318725980614161837303159574125443761313972977677532839820718106114717941465760383446977278197353406913125231758983506775952671970119010419928089679044825424240519150184748512960047164185638948024930070509997624065191360413217690619589040036118787711083749862211872064768244354892107436523919541694941993093658355913982041498564589537275264496136621449001052909154648779794148429716335036437367392058678362877915993542634390307812781463388542512974045974183402080674506072891718916470052562365665946031043741647385712878064189053491793013133547697637397630924570044451816082762904857768553982958130839825132637382448688826413369753590853798654056052888337886165442199949518898277212727146006805742598204484095799720198563054858485124300914182975675994490117562431407933117791352132460002338892788544330882384762657074326481025354079892628316152753371618715802629757144982450197931998497203067369076612155281919929512461494272965698799344958877374778609950713426061188248898808186602488989972526553264930011248666918967144642932757595954298222719319976939834022433224272726170734050622387379828087777736652688150330184851079036549147763510636443216605646517658941235614039415888408992401392056042523839666936905604101198151868874709523462341180732114434081291221807530185956491870910586673075684830754248329325070588801791168191667554001192308970619363540322882828841371410529957028848085368532959660268431529681511248339034100779714099300359903915443421729675170365862344806223609656364241237785601208873324220188948152198759457357052111694421753585183112911892440841801246685037933095618180142516264050772560522216639307960408948207463664660077954690228286225747267202260363368108244108151339772050899443541886959010192139213278262460815637963183264802245702305060736674031259771525768540715092514207752505848624636622191743604637643536753846715261684030469076908839980219137342611754037768266045219682001722115539338314868847273538317284736715204413578197625475276000876737514604922554372878484531204161476718966399991196548106732407096263919462344272228660841262053551262059468139433096655953817357609593284243482910388271386711204884012027944100965758707895655740217510799737134298355357741369243671677373970947381742673731698924539141907432187474552864762515270818536504310702390335502720205228698084618333137090942915191579409352069516759639013226188537651937508758865293145110739466145172554937851509296674574044110910135333384976111096107694027834696942800989192822670391168392348275366116955912463298281884993920390530853378497352878233624587233055144365410721423376725293788918000115016817722549327639802004465829019220146813313504766947689860909492477537183280871275025059446408750415807850500851759271520961016403879385834419372041003580867606901734159678283722598364595883016922385709548709270686922448417954831823235852711379753738400792288045073033869496190394437898923248123077447946878721893358695019489906914433732246168054771468841214720882887654016077303115493016818646412378432536515843148727349049316768518570928817348296774553969572502536235890657322843324206322109967188345856603133824837691279349531642430036069316910399643225485374890411661458948249706065814588580728742662572738553337424374863467433160972770659671711312643979224171242938214664753963563691526785749330194376925541715146210923581643183264288682044277947210747430640952295134148423515112580877522808926657113393023872660423114204190432459970601091623903743849085542992181765830630478952047608189487746374629757542944712654536028168004093361969820449025428473458356969345673861656849479021463749452861378436250183665415417534165944697935272398390649383690866107869368242530878816989732417833109716928639476543291162460272567446562908090978795809062165745330503746613551078364156414366490393267114993763089171843383895868876613028629368752134697922113047502128058330636867073325533538270900819512915101614206235712605457533969783951647684197104671129042972245513297462771549255009769379367739564258792789737557563674526019290872680352240307521691597834076237975432355673870653786548704009810126449957327658672054116115796322366090709547060949517845409508316171489179918188538529984270922277227933515508120089614323404102495370023585855774194788832081985364035792447904209658444856072553712219001102248600757971701014431278093215231348724874706593848975315224479758899064287195997030704847422735600669848362813295358418826045362687758382133089314541539490104212780645893202157351836574306802662105407748083328697679342248246336301503342009661705636263462720996877231561749470680321663128028231623168927232906539811215249697296523636866111125034113745779098400984869318686701327501081563046112033344373713693386307593087913970290757559402284202325838589933900507337188953507128836476732714251542070273199645302186498230734828493534251846493543825009385347433382199946364304566437092377982074534673617769294767033366606213095981717379533945685709213541632388425755611025629849653626711049953547515187779311323128007081951502272089723211978746914490669146238256449448668162171106793286848824957363312079714672547443675609431067309417631969482767157872235073910064904779570327923149075327942123390973939084410669581578253252192604448758728136030864219915764212267422672908987381539508406585462316066402817291868258229074827832005802941794392567353850089882922119367746290422280912312890933515027438567095149414501653070486160184582306343107805111672779444189512490707370328248806032792081404089496137576359203967903981460797468020727098374444352923143653816036608862947889548973377383908611519069022558800657959613368948399166424310667963451252168646967778177751250899632587368236547506481199405521424867277518799075560116140588681763676055850116978091833295212480585795878598547827178170527456099208053523429548103838699592405962274151707046976604969636946542271040429703755970088121933473623607635894021869140603110469976138314006064872745960988087965457408316041943901641848073027277359570337695776576917305466539935403977044432650418060803885554243975434436389124692917008442402653426013030543126962171383525721804915338717890025574082880228011839001488249011055898806809978373651091491462631972175775669540076062715436301479896393938998746359483673564667564758170770528040796150750055379615358264551614083130004452389979201224521290266802082978949892876750913423668075890734354421550753540978627429611986096913695805202623614514608044642533442387883694437896803874718284255645668260880288459481442358555658320753482888128436222003191984791963400200794646854886520351075651362535117699788917948244061336767002907399481775603505333012094567049037232305963639658977615668801821355650585728288392893697333679291542627874390934927343342208918885462334587315443948833709286450328502947139884304191660969565239139528707398326348445589733006481032655442052313854067997379929956016186506887966751607972941835165592605744317905772894247835257148006985745744977306591067177907040042548667926498532769508469482280481938055426778689023844635443021386021996234209800150919636461165953208265952595013534762355423236428163846464597899980843499723004392634634735894007548644416183727106857194139230393602362532782331680476967231766892704767501275314613681996227288286641990708604398730370149166487074572350375210302668198565962066621425923587260421148363373582976920288688005897747644571001032980550566690648214113299984023701738164246773863245560819159468121575463415835446743728397811507265271761428161728308306885290813057763809884277639009700895600828835721231259909689350357669077417332700187466876539913507453958733732492223637014545102825503596796877270072277802941397451385906367234332450747698073700501712224444677236286501257217096558049070057714727223942538346980801861880945450544131665085780695775507849425391368178311224460951644610531760450224594375102284480357972697620616568985593875485913575592779250343244943672426359205636119339205898230037241945908012356009417747253245038670811516683488642403122564319345439207020905992335927931982421802133103821435034038657643428863994848649402079242597197982550133773091101922484671284230763259879797136064823693676024925310824849709568337414057570001517047542196020822811917049238542305026390878571898209677629705968842038184433532793125979098002970380659339647574832581195066226126976195296003047432542972346545062758003345645054049153384846715831229246385032748701876674269357565530269382764884374640686496546097808920676958826188455210045731004784688178615979056663522958670603475166406000006798011637338027836952944732244801784743013656032127415603460775193658265323661979289517463500660219825438391956443808233529445206637659457154898131572265987261194358598668693223020859240780518742638742334698514893031287428367762056177295850107237462837731292572411341871484396242751912917301421888415679235292850870421331649723371427901966524859756271250954776087412652869616985706377168382616272838773682446808515975914539565923954033079420625932536953073647133340368719754749137228842599650668751845561271574509051810566450592265528004064498184841639277808506858632127596677547880109568937123325467955434080485660979876878420085755375813246153402331264609135209118066889297667784625299840215582682515050470451872161454979666784105519262994350687769408311158908761298672044376039927171941056115071041896490654869665471305152387346841038042409214037774777185530508438987451154678577768898307345708768188778950304338123017763631720306991133810429409708452641326831028263430666210976540588291446739958643417778823348090113276588374349714459468822737253920956478487408894300283179286243477850889295235035524696827943972194492583217839078914085271620438764391455162312376610210219531974274907692308349884649380971288759836801193000815909289749495885520060416479127275778343938220444636854789197056112728314900724457436609649161890823687238761263242293988620101205889018459188721129234497364115556177725418418059350613301493993456521955341864086134345800050603664778996532994148437241690846138627114194140089198630312635722800653348264704310039269063022313032467274892587183465670631543862969315568928672735936653165632988661457825847006030220965649229308460210046636912309393472429396771801332752755633217828301061661218936232116012175868843836416050621739428505886104584621417710697845515319951138115778548057853973449270130273009755126977563750601591021228873868746310911284488344512270471711232495126477950799091281951873973651552154238110232753492133514595309092299155464977253147928463782399965794194420426482545624086415140662958020446964597060166523191543896573593272838882392620934993216066813197456780842655957136982241700875502031946025289126427048087200415469840518353065886123645327371045253608402513315431554598964132618050436161389836800147759764994377146279375782102907744001645673556694671043218835785119130264951579498035205052994428098825793668818752019992001707047326703355730700218993257781579361018926864318159475467145231031937046822978401958844453461576728232680549445568106013990539059734440232508023792741191399253224296253067699166975910731005936293351816845157658058404060737665364361461817452409217204628668886058712200846097079594463914333661138330233945791025437926663523932621329859536446685153900497642868157444372477199559249825636852005938188119981728491086711309774330639632209531352951762135756648976088801485450753995108325457965664573311666351949216440065343743627475886053971516811504014762047707632541517296443917307782703948258647716211563865072806863814811748971419058037741747519970875828973541479714800775055261144794977069710694676052441507007976423343869430105278239438501099481234788124635086369599147058785106716292637951441841778329921101321093994651707081052802698694718201319302932837324680583545127753179837901479155490906456758511591133091271088175425328058314252712682876646013582611391582555511290778915835613536217366887558211842382743687454552030102210722564138108614736999430591375344585538866537101526974706623812057395312456642326935613412081502290446440983979616057069651830034765272446393953784273493823426844307483873583895887005375741787059109414754389850578494983884794064307968298335478350884640925882482751676623905986828109126075740260598707872663935104188578180043738706757268220173152557017145021056279735452325375507970375896756376918816896162230213369741384685538351251546281925971546850287667431344117065599878722596537394138141726598470082622897037002484944394453025551050419140293350258796247156612410955970372243898229700908419918520747253372411200822588156276228939780681398866260991769537443592814197578313995918072775471861671777138659698389479404694579857605706793576242939581470179793073900143754292222100178280810082564861534460521490372034921330837453230606577602442690505464363039435399498999559785764818294582080239931550092663151430076977781643908950781182274429531991838244546274901762173242336234482966854949265807183790715353450802189474053003669503931846287704261739155323797980359847988805849647525699853882055035674663457974114436430879397322488788368606809913233600156906354692471322628521117753146991630319240347931166695903521012711873766275026282217869639116809699304317703322707665532833249372189745872782574146553880568071708282263034615660471675419332758298665203126689483551659746180400389242935560363935031627268853670522699260233660735631154810426187132304182200475146501070518650124114480389489617876715516637507587393051329481118907415819778116489335984606647317159199206219789433208361588067005908282721699687809656955659959088579728165763262390670641166550181869487651889267361258400105901078771136923524830474006808272719200270939044749066355729298897704385926874498640495833308941813430217861257103261916909648945638559386153069332042757334240502531343596575806381158939793338531969085112197042041166419177412077032847905024108881484772301449649923343790411888478516983723557294643785487457460174097874824938082108113044432162578978196617631306105791545477514157986835450728841801155120790858562537013245494118451826871605053560129746240386335962277195471114356359585731184990551195577590325244682669126205123263153394438666959953228885827940187406228175527262807708854499548286281335576086813415300233029829377057562707930827251096589366882867689899416380280800695311619363177557013301467259699386693535039967311907444594830879508336803517359236496009063313518568379646860579270834560453836333957244922913698334469668346188851423759025958966640758020805654018460730613543637951468824310021125310497004690018367858440547478504793564381713948783849534320211752461996531615045072427517465094533785793524338924708971953833893696627977406861250538250275865832901636977478043546479468435430050995155938102226844073745101640285706333712816398032439867677036965760971369005044932508798747224451124963222882728522214154187976603136014696896689309245180562041357582905526280007313477358650789261365310492255810114460221267372182856760548975550175544697555318920970497522980416669290718585188074048912236261084205215735054088340414156586623333868915616673138501895780485010308230068042234694149915213487446167665645464601424698613460364396163089086728833431871785348866717817282164698050605288150330741327217465492060413814573753226373274139411295949550839733287033709562984846047583262778753248282859957858567126602875317637402144754514254874643208558904741618115292477870419567331315234951001089360032196837816951353209375915138468139200764490002880065371612639529874262922471339823943305527910844540024502536650626550892659269699173553388271044919254618481863581520480125908585940984701975380065818863369420710333574457937359020812703162919315281888110990003525310366388338757945755576367026495313348496849715409341154299204125968869710891979242531437081031786040233611789178627049797855226910213519858000277026271311868284825563742920298959751169748448041433190129999454617577857263694372845884259605437343159117685972691486737067218830562032764761289468487477074048468586322102589626664851610472925986070494634693754914644385761251939677576751853282834441283089664727769724008972621642393666952663098078071283815944496052612912052381494382783043449644106908252504683282847294329970820987322703712078634433821930229777846716727782116656023875337622045809928189445060287917879311199706438714058033381408763434572367437822024716188852153650488115166155681554067710779382368487798999237848610968280770646123486111545215987543701572423920878560449783090862089671840821550255519522267835188745440121508034242118647862249451349147006275663669702789354794022879250719022119216060876023086642829023165688032408194056638572439977308008773597842708060133304950861296197977086783348114769183046795655417735501403240165228480830235442471697253356862576187976919234622640754138957120410501429039550639012618391193813361313286309210484452449127263221215614694991068449119824267795614836922922968026214107752804755815227781760712140920754876628050585698243250956657953340090152233414120440090241962766608496856531269952581210006979037367625237194433396961552796388269002136157073367012589977926509354781825224648011624811208326502977399708701587928731278297073465515894037807586053605604637584964188870390661033541893724853005065875856354343143241880545639416310787180078357282986318353350850950725791176831985943055218418956548933059779687358633322744428145300818214453003253947430598237399231015876921403570162409605449017141627262545373752818676063856681180820141898178875277145007057093991615868049841842439815224412646624991091809626746379847591723721191889592829047488860374913875554118700046374703498399594982489675069574516360170715422965041957923670372115334794254765842251406753023885893351389886950755957628502364753992010019701012747360437183308067421201728786560629969883436741458837026046147346794359407168460099888971112761980896694129747663481060346392572999750052878207993790799417052666288319173031287079859147238336539141444011515096400600508408210852401512356440955774633443570701441200100693733647429317716163510196574948701709510082289479645536338680606766348712752642256399098554693776649970721051484787185535077748114234885267073690248684202496436939860349863476361160531069525880393459885083464153955745197316809404249197968402592217161894424691470883427951218224259401145274680876644612827917773826926321716875684289131918750210057933236932627095032194507278610919881998956227110939943351363181330965885686194248948071874080040967584181364103187885786018315948491040276212300451249058939909557728947478161812326789995280429690876953556327774292124645428169716846779190842060221397246292435109091460962710932198906087311296498113369280330676586162728246753896387848470650430598544300995887861040558227274276971200108941815589124894505263724650815750561970220937324671607958151681453253251593180214894895131142681018096638935959560006930390920521085251977310650614287626702256771393267870603698770844779582202125136939152908342441485109009399389757659757526602259651142014484925257796369592995045020766992686405357192160230953639899468245368778339684311060021435932702813361175583676747285340116653797302195609128710176241890824463335362609883079269290088912998969090721233194282876605467700028078577274767522471157564937114290369522239340626272455245526917487669150134618718732248094911802822045927067907165816093033432432623457047190307550419292458394166951242388138350139649561527354717789285616273044660642271465890196332545104043239263909098182163148732964554370704345033095781655098837099215283391246777144930128154926577720053356045397414296491759705382746825945896817992480177666970060343501779354239543607952980029063130721615250713866383593434346464268594282204726688604604662334038573261248327473574942006427115789419126538748138649330370297799019992429264414060585717523176419256281832047155272100972376248682213111071470086598199174930172837017772142861669460048331147687476684436652907894718382346759040828828669395570094178781877914975208714455484880937748914092978406090134063439935336743566573264837128406460254637868258608241222578796430361192550153888736150719637001910232401340818996023012163412232535109988180261937995326384694672239680427191354135882074955815937109038439822055781016429775027702590821964794213961778503215285937613285826107745837993339230908351071890018849060256410124338583278294823057830938265233720745867759889317180000077272082742674679155598091130829967735406758518062443889732387107663874597232087124778932735853052560523073360491571054565313612659628351369587917675742450333197547047906755865154142416702912436812053848049665523880324198328373315241589232879175320938750208554227789065725112578600789089707901609228574225441625882650548066231819514186412002018378357766605732744772322192774826592530883254599161365316113236011225695149319933973377935453889181906754706869776818122537199453840124598455999712497214064427189832646407566449822271607295911914532716986154660094384204591177105494630289171990396690515389465209186023501534639440923949576940339448438946808191022843262195361916967592798774984077678261147878692198004388624175422901138797287665363938387396812390582468293808980972176750855621750913350478207156701597666090370788824207908594693746650300131230078752425010155301172247944329551239117903211746457033928097076800987811858827665399199624232644251396948474819761741842108452510692616947129840767283884507376963055628087218120458040270071009798806596638592228645485667178329194154659173342248327221674316536606829114611293873741588367732270736649269432848522162292451823243435273068505971771238689963028236782671074859862516865094966227309347471447068445164704555337046429458502188120069332287806266469065013096441050442194952328360679005534878211136333263097938886102436266227978470924035427994637846511940428487837509863915194405756378672886137837481612881167256560091687943172507209288286071067900867484791034442972922241166023237718114351291220751840431245224651578401009982272832210618307566626451408937866488713577302068764345179628621305568685117483445667409556695939385843664556531962582121147132805184495145333824645236274727854971283816454968286421547132352689973513474736428140161790507466027386689863691182598753388167555566612001125939142370422557914115038755141051360215374857284886371394841348444227176956950792453128251267664397934880411877860190696215877035200408137698353369461871784075959577019919158037134834779431201190409632386405653344277692973412884482802347734914739501998745016358270979755530808087050367568658806042874377309181101103195840571124529579198436918430404192557017931204245025231249615831778212088845789147185810471709700071186954586079125097847979513293847977172379098950323253599749148596952178204120291143649390013765434613882859098253078011167238668799516454134489709820983561497316647804229432130364175274480046329897260531674889165279809414090526239689824344750014415688341854647056895145709748306757486537346415752951920759366487527967294543437691491520376083413316559291718441485158239143035638962517823524834025039536590709579862561038751393236496878349426308784388678879537477877947820812848335391031389243795179407058276214594273317249157712121833041894880874489558003835074425516658551810070941270241360251850823950395399883759449161933778195126975155526567634525674809592360543815096516327306114093771881228291979379967113504662980348217663136485752206476387498210844283049968382517365980926838631452012546598125299749664610161184536472030453564710343547430000490622388577906421984949166363762353544276945713322934515061386907566151839803475492121314989519097743517396061313471854557024556776606795794010159335968325743250830747676993967016403883548151845613977136107429522426868420686640130545004524397993694561614699136844669147040621150347155659627177816976393655436341071537657977990219616190583549760508243207707787148740756098488155889111345593183194650847016128249979713546417916814248195311930627492267593002739248465877905063242950027962246180957159327311744345197279556114504659324722259270871022047806621845262157701271233377155484524009666747605434317126368652700017637033271643471440915433876193036131993915966724574919808732993538051479802604202206245430524560080113236676228458743237754166513105052507550413274284585690198304313972853654569702957790699025437179138021798430699898388257455153514608769258377042173978811068892585649061230671961178554767250376411736247451687561200272800976419915610261647410671273593883057931117963828102668164888050642934039120117050912392593926767567538879386993324401286318894606380177960135025051516389753897594309888867033612970502918007010143865665788908991197395106927188806371074555517805528725118556411845106939180637285288267114216831724460028917623410563361126823564594452472176017238105280611548438932806855900812433869029605559412047759547480319843842398248666997946882326960249222672358155644500480392127759899612287277306352182950591368096780041296465958049895669769806943819335078737103823302776416477613140324681291545067252088823633983141579348357263828199369299549137265722329081270768082199304056393495559936185426118290759051870718468280606297980119464212005273295369190264942585172154777461454059350800577699492099055459046432034108236807922002012061713530882329544926069049181983574204162838149916165692622233605803562859790654589513766220861191743567910832562121133014958332040916863180579734836056726899060364697078015088623490446807917586630180982210770991870498346849023444869329510392000007996564369998735298523727265049381581638353112817919197298216070413423654633702315396652455356821628889573301873592203019481308548598847630964026105212496936647714307674435087791071495825255869439397723918953896631620385496417563220695094518501108401792910098987536954707668093659367893478886273533969953823135213432558313995929623260015867991487694198908152605094951884947731982749410433539523151306699896271865962480876069356018789060762105175213088273989085512738969968264946536075887162340782798390210858885091222254656797228676310322235929901661302899938761659420134927081265730152451812667420229995340898250819612122121927012251081524660239860593132799292237575708655793399006414449880443493164078419978689962663991538361159060294425572572333366852551969700450145904272062588189075908769184330662095209507498228369369465868412093629571577881625821114570961378891512291634615799243772066825627390630319165774777007542272038334700452995858887201479903417956203503008813030394677214037659750860579455500830091666444918545561611499685504635450933772015098720803986180645450157289440291510252109662770806726130471615588107431761328540408333249157524891860986893605834469553408494351271896367632831966471610662385747053806382907934416428353698590797547788651872439817529567844190127538966586125403981940372854769089076657696008150280758744449989832676816729745084568897070436103215522213390518174279090034632301499063226853259542480630641161530047410698959692140183553354633543971912301471886912920790293891406977114464295989034502924070404659088835358541726319779995315852732513731309823475751763331779443015342927850950027908918444218765820543119900071201891063769824898676819888079506004882901224343315305927590804707389080082687846831170605687423224512471364613961775245514216643371225513069801324363894536855372412203610748602284705186435541398677594257814702281733416499401614942804752601847859464572860276453515792368867381925511083263161109429220876437533911345685463334552134857379343721329092994536709713546804665464960844675914566201583220526491175338259573273836684894602776257387784306074393683541611660736882596937634144990396107685411418826690946980142410239865743736672838396703589700682388194809946947212768095613115605468991408356549232616008586529016376661867083010368602315226261558229620108347570134440506568521582322839905248007970058491173821205768842485344399204691554678702824722851727719392678055890466591837255658801601708284456401146954038448133108192529662506760861822222549910261663456081185425134211550740674076632832787019875244830088000545477214485471563829062868837719031444546579169986540764731132242864582802247185027238415560272770588610645624359524424026073940678020866278248020259194766963139419107861915931764052425471255384916364410190761185757431645896542182152106265930473733503197526711814008092542053856066786618263186737775894007096291018526660180967591667868110798239754475241637753518354061909965198863690717866891434751533835597836770766384170124617495981576871666509904623551650329977137598630847265610238313532016838312229339497248980423010853222504113841423132729356182507040054343732727281638937351453575143520770891245151840249402588898193149522834960140252439148255498731167482600221817022722594552554008239800065154655296216272776870271515213116867345516309433008513994116147859081747577082752125458270657573875658115711493428876747678039214582023347000818183392275270112848400685369381186370603742978940365639641777143387235474397945173266614927808684465478511209972028617000702118716132401821843159101928657589026855256490366047369433040480726210630652710896683654723989377646532573435277089889552234326457052902355977113190465557628231621557948998479339899724058629230142108855211689418987037507859358178167179970980701666539726517064915341418624338813532732599093321843748303730188547364943739558935966529369364941246623435431317942400479926127875278816136839878649343598080605796169343932135326450987855551708123352846094775245563261986210059157826170719752226326333557870811073764500552445218809228795429454263981781218098194275566678524845140244794927975434841443193334331401393980581938514181483629570748032776020738720144830038193215131026340370094430578269595004964959941820342688558199237890595050529151107830325018923224302218100341333250873114328824728228455543595563364178363880900248492969521725059378757591569451247478777139832409515768600709206964208522157883165781235111731286846334755056559838220314072391748237056382753996107834457763318655339044628650793129438503961047469144255885501991077539978783411915423036377498108672644025087658946424950217290042594750467226601343074030295745403410005329558981117679866086740207635039388270135905951353389284646339000063814813289646007769962812001349883168179880350196379865116286418280660477484123151043723475988888247154656925466968024711828929293145942512460153428080555210784587290468801558215541374945543403339630566044889460415609832445898298885088434098372507166216239961787363501213953657013114270703096434945557758434792094926584773243319676864542430775767853312950201100961847122412514092437426488393180766754996923815356947049674202223270359015188839737567014531202516378646070745030298745814891420865979421804763083287253010355944388482855106612985024249904014032149154922862547822384250529021362631222695409809644804267578446096097651704042654503075310390928302398652464553306682796937626639446513838594349174254879802641213977254413350932017902257392743750264079915067672098068644210205791786785397203807154281011255658447639330777249805145942599260966607874887372585328199323991932722895786777954341521298715942125814147246269290546178837777221187112671418865168973768517855509531889428519073951060353312712841677379599651598558077714037339993540134890296854127033777591755570791438622036122626277427234284209199876390489602542679036287102895336141691632470711137464011714795096389012562755625772596003414249268054088428006235124252809749986053797382736065347540268343991027152151980092388359059026064403198265790523604870745297838493133970298899610669173120559360112422154763917570906549205882448476839207348670069570010427181975290565735214003062500268952893487220241600638044310194190392422456659069019855164968341809979614146502294184845358903949476953630758529928683250164509715617851309541619635675569176031057579910219987381995575666487155393092710966313066384059860238533139065666992390760217830612729713044204101764582460688032830466608527536775318849051924753756083754534674365361064829157851405917539198926956405810081246342156756621011139770421842161033445718272185662592451576037058163546757885387235809430990263375163483878091900092079140540044278067761389392762371968229350842027277612316219964186137945839576503545754411767577390897564368709302552655119486796736967462987018246881467184560347424584436978694709777938065376221710744673249101099323337490562167073763161319203795320123633165073096225863568187638238530964043721277454945892898723684561365508161919812298880807845534511376454545382781117497867848301159796480732080813545569522307282251727683602747719385297393350565372485665075878230708209519348660891670206172341780584533273296517888784449819840294055173141720833087562232809434504923394376764787631456260304166303816824276691881691072903702027993772435031103543981227884267532756725547501766575973293130752364663599108103753831049194269704808196676937420107308734146722433505670837665325623546938255621574040778658827050491120114707937371234931013810084851529751394044486246432448163194005405015837372108449424315901561210020316943072225463411090030574690273849433054430201469318517448455329853361142060768629796447499149644576155477837480415859161237954870866776354841627754957072703513754988605605804461139454476264096987669725125832575296927796636112766799261217170603739704147646773019344576873203569879175082862345027370153346381108124369006728468098213609482338110128867776628645749034140641034445633589890313295902186491455867727854326709541255464447545612826054386657317531946285422541751595792941599646267572329077680708388463825899418993322879949158373392875441537867015091186134969188467981685744502289932162340649941929773617532996932006664384528460867573458486095018071596440107949667099910322034761975165660753842503510744191969738450441198886884754730718660028211250961872422548312093249747536302486878925103341209678131465722626431316414638832159694357744703151738290320048995287816116046043309247665112083143424160043508280605025454233155200358602245341665690331190728961640677706144967498316542659480984906289804232186460614149703117543728596232103949972506645774633175356412308422395551485955555241228545809889455245365067406636396962684134675725083806031812804575535393085328184877978061380644666490280079205514548554149934338288649586812443087613658931682054403938116252461037244659882053668596457963617382961425904318335416813230950069740145450924326994797989753733622220143927203921238651865515716051599202256380241682781727491174076106867862146135183394135645765380102786086549855803648396975202489394790866981968755703442876775343425948844950155923223397715521519806394999277235312123539783629541421820495762141920452480995808331798835387621009493994973920506202575396210499145253577233804534731879649105139435391539908757171384632719949239821342117602591925381207216443790310535355212044792723272812358560351955900279779083320719905634818794631672200818958815363907048366259088591477238088449692202481988416241231667261367290665071589642670661153642338596128258936851940045965552490656189009555221029399255622902550712761674660154883949627632544919753352322193516751514693345295773529453630031453287578070375893566510383636691782010805940800694815406305799327736965334305388311485943951241436488577876374856099718607490339486390876248404268882338317314099403548124907645188588858274068151703519630509818200312507983864184007952918306995109741053203426650575356925781341823506568186310248587163215833018044118468409128677987424278865747174350620420990712645312645320491009891195760566682563535629732479182285314561088718986574807569801451169283553182268238896664369536409314865994008199248647276276509975310061994757462483705705167757173458417059972844680706645518520532563684256780681617584354338477009124620116363241746335812937701792912987233315139004114565587432003738146559073740667380302525855999446516583187765482102963605321456030806372224858926616328421943979944318773087376766323916258602373941261106446725904069571327731171701608602740683984645391490846444282454331977806162524505163521049546199323892202653681832438571456934888458465469927034613900812379385309466130163535469838716019467042970427362005359103685374906529943996228407001781897419672349644423999355540673021236310026394150176134494120633391167544430250533278969017119382833511089948844746860013344542520764923128270764566854809383446959137905352193940146227124225035808796569086469192674824066683255982146502102344140802919012262265425970021366097069415562749125589260212103847747797692380776425161265667934527083952247647800029441190265893743521196614191771272151683500687070627248932474789518940103396512133723264285047625714700468701173310279696947835889241253850967874058385850267070094751770780908777897011428270448525411392227815338085144892233877485906342653301892710965634146679543222040528134244801161662447417509999041965269589355824484694167104780853887536417908418660451826539443289533414159032000861896704042860277317604372214396260181784735581492026428217986662695778446439991175474943920176937002812051832832206129507698214567464594415977639599491005656600383846406798370434283288641786352474097401336833045848058097300640852426212958623439985302353340576442077829448205569478757218539190409297058881849067482935998470658259868847228534511867520287954372928699730522528906646776713168111625814461775486598777012080732877073613029445279338662002531585420351721222637618270900952414703345556750060672867576478996624166760103844757848696270449894092495603349126913255611368337127681758525319863566615116262003313818281370257632874058235582904556666486686603185222601234474071325046363065918763714436730805276310030397814328444524530145742224952189336035299407807962475160543112709446673820885074669055347963329652884336392682695893656425190631865370834122664309813308839151766913408716363034833387987928107122912368161845679065280530911841159561508339519946439775211261023193020543939222033197433134782215176728287040937803304273821560770661042832102595563901239997254503994002061564461681409180236825074185668130429128735802454253921573974724806695206180321675211378933819227836017406452170790649361504903175814391050764792132367507332375409472846819002595037565324479170863226926788754775534260467801338930183352877278177206375315441434832581188107311107709474583325697703571736703642464126723460361413286936254773928200194286890362638020954334643654760595022123400913788485445768406742801914975302009577952276394098034017143950798183943950270393294819982778233524026279999214561750309444190924731856801569028112166082355705933368337146627721666314498599398546015772447855613887104923091692645940079442755329246708720849081127903076520425195131751096596369426547002035921329128009315048520912972655145978991921430675918325826396813377035940220326223603730472043125306653905689253360445266140720567173339885227647443533322629163867472289256081664649546853443335423771393152347012319977117614190332618903260738325634646215836038382844170925633863589280178369127955476800534129902195619715992671626468295367129171441457332608938509741290461829673911581382384571292381749586210264152618238376399600513946875887233667246368367457794672533212558567356039441110819490732799026184478805254924836713880058899720002490575352064891866720097006935898303622913497440131412090384506908865258591082377493534521797831074912814685931106214448817421137114533530374511611414974237989502675147275575948656005651045199961973847466916126768087165262817262515977509944392515614141483478764968692753317980793499288593961104514635859329667552455865843204901427359085985336100560447000361179491137914221732752483834636682788855906020131141182960709015132322885964619362208593570506335637365036382602770953602365699113042682464049703064033766696751039172030325599323748723244246068830729509954349423673141932474410087900675675612616703189542735300646576404140386141746156329427040566481350121606430592857032018821457280834820934582364269996673283562444962162869935273017798229872493636325358895236715675875751022529105341707440267798580378024559774652076486699140168987069880618411613145618057881136691418730023547208144108095442002917236622161197960710749545933369581992826850601662212820678397231809974610220944685917018759826008262430616114087539757212563794817448533943974388753141123532956934265056324410498418488309742365632141292037979863908004271231819623759191239469446400714611604653650365101792015883716476649215405711148047620040540605219749766879823449748704210610219491586658911328554524861731236563452812902917303704652749150358175372790340253503301606043035894981004954149732460583064026157491950861056461430920231661744409871304169443548953607856203065607509131915952597515393956741354487617809314943040906629225318675492128447534003980659572558140542731970512090343025743029612959794560587431140748263124264720206872614150333339285443940079641999981776801495107425989939766438128894546437957490924199208376193368339960953409973417312568585781906363616028129901252723064225729618027619346469128697657564943401904458466752169164827454000058322054433723468487577455019196920101054243652813449642233296320639574352788863121940896492741923033926715949403388886442544396916259360535339088844260911282455225226142651666372531097137562485553804275523917344931907291201073409072792852450133025556304949892902656889060107787589102487864677507090656563987927492801273647326150412555329055778338598826020577253896624085794170796954775631710354160484319718453446966377205452407295633915264459474070328048689757978554810391724455920166977059415532363807186676933795054648647499851604883400555202025725516798672640448191416238497815351389048603571794157135786587120138864265150670372728582068882565294613758891693115085371786392134778369778230027252808336913523250939994886269732249899400408691661717653345526011190525997346530391962383452652786863364993844568955300054844293472379140078659283293995612871702502224736162345599875761906305018857359828042831071001565797140721444569336283344751487650371840605208240482861333676035143581998468223020662474725639494182942228275269620128198095516473016891709980616211358065072439616652003141368739379929912320401348603065471547283969137206078976251756273637936557741176895304369953637571527263515960523140793231137550196523726008640330074181044087788154132858995709200107832637881168538018611647301241446189742447566778767962415958478678841591968664502856035183501045753341440281368611737011562835920312474415942248598256447679321097420706034070327519139101781949085583370610106784312145948577997654085417438524942687749733410349568768067957584195370262015896613860022855043736327092070903898872769014448529293922946876940944060284840588249772140955423835645214983934168981366377060578962343201612708634921258613938047922106462505189023314460180865344339395841718024325200536930001429320392608949454826575019017421576943395232344159634982275980713082343190519076879897454737787558137226499306241293296172379623634687150452241503450068940632244237507165024321487918651170624134209391902097382398985306970328441124029444837054430935828409336810408537542048850178966925032059291031233068022369924437210451069745910379390283074858838237375821405437096605973530717893046211362482551444032673829361043326719178766963350687211756616206542346409060816511285993580659855281691400900252461266764344370275108871193728692403853713342978169983989877692732777255586164618211265270560579107345844878602827376120705165678669900838026083634103393181640592797051161027842402509375886968344499563173962173354916895062096141358096273408312846729667418837146009035508846445422595580596426674217461637532450784021824994532974157939500066867040587503873414104177344124877803653522574302818895420219929626545904117279064453047513009553699382264271192312022324841719832459290465693071647980552766661850049193325020178155806115138896063375297090185962225674065866592116859388226681192814708563819980411576762297417576333176757521814226197824902672302257976705840195653995083266628429127667560736649554796314892949479895836468466424213699028956066769720890489514137329564831837309041744342554733047896967646504648160367419615458032349438245242652090367545920543101264422691964548040677458019681101199861748987723487497209447692631250821965892932925485486696318265613438970194978958680420162508967530516185069414183645910786511336995838060468580437302120146515536097702387360764962366761654176286695211355307554198399982447764857117341029298409859001594932000632390522036908267269051963726773145769979593492175920845850930087312405150792035356330991596553549215944091830618535334948549731225361404397954876560720931886977460687891090306373073774596711234292125980328400617318788546468652978540854646863866386786218199001003990806949062978897847267937587394221897795674227647318613841554807087236699869687613747052656711324255181141058061389819236794234488652105972347125603563372627718878727791488502206053420237754132508970832688548440587394410907339230498989749377152883756045449252326795142186315079713579628204656162726260624679258640014475016140426448090482302779024389708481788645513063217252001767793765582159784421689896923966819021484236526009929079889394826472408391488809542456552435293086212769377201245080510968734315431692868004344628453474290636891289649812488294584342903986560352033378563591609744638795318542053785679871686887119200355638973028511817062113037157983449200882973853747239636840042859880160583359976169031361510091083667176379257894387198532063275269481916441631920497053854442332341294625805621058526112959724007894504875648074869605988421022773688437626987501612050800590208083760478064416894994072953856629553985931307337712515163899396688376378352514912536191200261139245183229734941735751031606345019264786100515615794801746278520477657336940643042594011115250927303517267455520437670837556866700539322163014947564676410651134837867552053952374363374486353881090504929917124726367293897920090983093303282975916398491772734419788754364741032385405285038696476941902107806144273856715537927321271175831997550430944376241643691738331351308431379348095095015794957414750327075634085040743209775215783336471228320135004196905829121169239116234361957409077913205247637388911097451256963716620507686997393338021373936248887508211806162345298144847432944991235769037635337449960542298962241223956903709403774065394876460789425612893284253477991535175747598771764438453442771288233106563807954622096221615256381242415624126317073808074991642272982519243785927217672585910252476260627174634105850067386952988279498772684132013098509007803001959789203545003552689017286613501208305279399144125770455545015246474808812763458301676842932273667303963902192898340100377988555788318129395133594806792867147774477639879186453213871447768433266366457095538366248475311018373690036627511994279296073353401626453501107963321596874956830997593002554960573039394896326568274249903102920754395480953597751117313129507079936587644656268068506006530019191614189728782124928840207605263808959178682139045474074469168938350614905822775602131728362707665109279179589668243582049829325706943904314336591271690603017540458813746507217806246026722205916504568930672302347743322807326001654385778264996320045362286615135666987345505678515729761382471649169888870134290229820680546985289141084825352256675428053349909235653720634091618829001617373192085494687371551799523243255747915976116879318400149713007441665564140772227500527759996480572382374041027715146676342953558458586218628783727400508023548243075123643313113592528258824217933871302131519904859061334039603328313730239967576511764063268318794838270892619206156348317609559105313292991054200142551184531616209431816571907607369027259639643159888589185096899620233502689030686486246561728965893604931676824543383562424738741161905707066025231008465694069416066519340197970971928399126142623675116211025572746662421345391333226306622381908519493746660729791975437004147417569558529179555750352043767433581542565848373792372548524272879455302068916096183083910979279310438280694512489313300024400704588222254523741051430267133131827851547105900181460416462425792418527177891865843532895567593328582577807389943391855397644538957969876534924103610973257524900001662224366707489780203582489450150377901096787239098530506136339506930667738320021884547340324140771710237541030721647556892876539631450106126087591222363478333222185041311862636206321543281886588749098351809725163254462544314226933422391763662104657943524115962116567560977556423555302724988520953576516982789679627171561885886931950155692725537631209706325235894551218283331166271774405257476690059964011525637303739077595250904964530747014027306471539696352330453263471626837259952767884635967000972492353171518131224328688431279953732390948183239985214661428992858955469591518480856589244686163598887966112984521630613398772252778115309636676250944689038188337097776452753739350432602444049024228313276152877498241284207666741737054688773642410512810551266880873721698980037818573905506178020076779505112297579919117971789844465238011260062519187069556853705421644840566136298603354444410098716902371738499582907889131418208469469361288675252059444787770727608578475367510518317613773525021870409464326038600816253115253350568976956675156304719286627644408569840907943880394272221078621042718248471663253941091750044041657818102189415908140414247635948415452558893852635933216717568953027001851133979495472816992406478179779532171533862354809733671233085867538984436596915987127420047700102319361285657678700897431457087123766676560184918637407618933147684398591115366261924126627931403268012341235433941991356811607334563751761348227121185923348830390616003594865398645717730196379229496105653310606726224208851728886899683546361414920061541090563276084134552476015697401546257797960742459613128802794449226142624415123004855136303648387896761156757235238615318735515042554430368475392677121624356741157952992703319540054261624588165875178282641004313977408596066668985027319189003923808033774153490005082425608589011797489084137764134504379063319168480245964333268006547696628319870599516750149904193156037839159826991025311938823081602730242571016395429656602820114158870692746887472584434885745326477597422206888034297413408462648404428309431076154135307168168411198659434982516115792175444301964855722167440710455194032212592721563997790623802140364101096748015340055239619138152333047442265628631537126280464584180107456654725059860793367397471139906974907569104399488389332166367266866446381591772034912967256527109198049853379837321456186894114075086529594510218271891897924947143640068893069871170525183999078273734707391650888730897603007994581643842897633212822372842831872998075701822953273761189058497500090824452631366114630462236130904081132890364743156582835070784505066172495349292856299639471661791607401950299584360604982642816412496304807964416340785292455202076207023388709600664258026002700983765090580513820018202721818849410037010489978257592239049346372619355594197959969081246399776749410555138058241372204677570444036833647715960001580441856593140380301406363304084095614824318833767027156417020271732091894484524664950715301696299279183163940452070460589948605315067077330362287909627011061595912343955396576400078167210045265602450990062395673467001146771967628638031325749138972200091780019392776106220499161539754003441577928818737555713453725003900515450817383245230613823068576379856537648059913595345384770040416996008010528710404047737273305398429296590111095750907257264757345797201521375015594592357712876046628905323008364750009015466439812253341036280263621709717149776539594075523793290125679081545663791073235067595943572068155322450859381573580350167298671645350545050053513859793106194293585784925726482242429642876802036833177008380881801500525349581728452059682599723100059076328094443294248974030729099666071246301978312956946701430048129303128109613469733575048833253663253959931243491508877805094102178916286358832709617067483147657076286411851909792578511820408176713212969658318813042946288127918047004845762086516241536791724911096914439071509150284341570860403816208939853837530817635936990570706686825058313481032337693113663185276567781919184039542633446982259844097227631787023957859069151568445607730136309071754600503824584580576327267695325155997454108799195576113268189025125539481678815862368767825305501158322528097235184370024717562955285480233049357515258746810429710195642892732338192592969859043429556410004530356236094920612560878545862388196072452629783275445372421344543914095579539375647936387509179605498986714300613316340342068440557052252297204549400004602193434427367897954583594076612435915762335143132939886053885694614713454509305902782559219626513575707119573400207632252325922243058012934111878879988662658738418514121233504374613291656332679990593004005463030664344956002990068673342011601776091691343510060491815404637199791750411123891519414752660401304766180779250651002401296118733335273962021439595634688445193800923706755560534985247332327602163356472000739269450477547871370416388027662710986134392827321960375433588202940243949813098919366070840194265642838783423330276580250746845640685448768404221866390678217912303065751415495869628650439327360691176031446774146376066851567754894589752920544306929919769301431948511610205547503492088776082934653654225223798395358725711071780796951909003925513588141890387937020299680456067976535752192921210576393719236141771755162689299822557371360860127019592505626901427361195701020278903478592153070063964875778871687481532433405676283483185769596465711404711677216741487057639763043729423592149769343267496144138807872134670214697837866884343660778293127860988918815332009238993242267849347133619854898665205010031597114541017025425726031781627922289649362141526730725182153593137125587240191952005579979514560124307001179100257767105041455976098496997207660746485889734864975648498257479652515868716210346661268074566519129679887315662345951311085340330033457869635875113626554302131835491560860573066464285230269516645640744890284195748102207765824235471919891726772022295626207532823150193795971621456097807104318806557228580606446097894634620141019520753508791089349024370532151440326219224472797246256450721439390999928978132603272126980496142239688113920443375330233289945442182156908022813888526045927763820128728336243566781156352025372065442417175491794327176520405226640145927448322015542896199473420787154535912515487963489358511911529443717629979069705622358908562379846357794640987139839626292995196776814554495534671130221104935172433172180151664626133880198490747089281973148293016927767682785122393951023216840856035820505812537157804508742445008909382271166622180443188045752444993160729099994930748276556565600300172650140223649516130999837598270265845098635796081223289990113806819640226404153475344848328238604984630082406614212361856764722541436302250910107385213798063491415290232056102807391798763934174120455125569092387029553888502686692010752882077872236093574665274794291269427890947629017599208932986301793237222645388563427132505942917115757486414062290302112885740367116310588050231479866155902349182693184217870586354020693756816185432582112501378543124111085852166937336318680472294513036072462817198573896007944023546950327699727958436141986064443309180070719440610807329257218138995961021085914700152475217839353061206899926309258645393147165477166334309467394759012898416328509575871864320567712977520009797022102082924568250263156783600193858824062776281190272546218333793401485521258905239736907961300800847975647639801741007552307614017938386039119779206831559032720108197486286021343097435205181918972460308877467484676346607504916461573123887630212102110822654709033328901105305714945630811133570063372956652627280851088657630213400922409928736938721227242821442575685862405553712791872419854558302795200262275451988122971412755492406978590329245278213086795270941640042364785845706594973381077696074323499189529093329631951277926616382740234796416897924085452244053671725948566416170913066462836839117226087739319878005337226306225863133011883617558408818919873140015760340329847485925531804910213765121868045510901025297750560084657550877883961367912853851893374078053288309426041310326403509773685304112911639030313442055806096979759330348760900133359692553984883261369338717197493043707106983608741979328041093999180115082035388334833139365681490650139189526584656633358381786656427334906550959982371318716019108547190277195766770213397975510728495334688750469257567851772660565406982170938952763186624034900895038551983698547240224085562816339711369281172529626649812014581679122661259732539846382723099860167956914133389015890729743536961892396254785510648006978264248509620047482288522646324450434081873005889530610298080896152620755276049772419425738760187611386588344938982596529600309268984932098390025320324966796304733947376079073061182088172594830129915992508513756029411136596415194894664592292572599126348907979618453423754314657182622931400327891532341794270259886581565341054839756027710060319799406427511961764004293689002270019777201785586377639400132327720306416464872217500294367591305977610093680472721087607664688040081108095091472172403226488806438285366630327755449829486669214196712727512794702807557590634995658780308891960711729850405621720517389589491409884587029308078071133906470512924471978023376653674013181282159417356988810111956928630089091467719010856532679773235177135446238760545671975459081313203085473198789785191972725159060783932738711173403938850260731297813277709865250664499886863212856778786455646199937725857110470311089788354153033292406213519856979928133273492397776601145673639327557040238364441389251764134662015365756951368969219696602538423053013549654280488998334150650978567621279321130514936935924516539346673841459587720025350776148596564255269501688312507344160359932099648683828704933748603079354451670290765481156724685411627561023957625064687136809464567242626167760988774628316181231050248173137386585182986072364392923899291292085636255203882409557058373655160366181927341217580430538879352171306228393588841350147359725598898671723756629472183579141307494892373050770899098934626645200420987271312085009293381195068155031824649616773131856960334687305721619206493284237462431896412860486543404037430859602709543816276714962833678594102974137792474822811074624557504417270790596096894532554300346388667552048539564753028083449226711060292118147076904700235756181936046491425391911005452951728866861563249131594719999370218903417972242326376325329313494157160722691609986681229591389445909021874736866796958011226459539238691447391650576940857565825634092698562756889754092517647028910773704503681391239544862624827690894578168188766758254833279187446638526044273047329023875530962220476457787462139239921351567679863148282505123777357051349340069633461973261020167120186324868250377873779942701341600581746299869594782601801583509733758854219220281439201199997084313948530792249496862044562319903183456960622224894577732670253050579008907274871105315558713101776594046910122529657040548918233519853835468875860726522548508976254347769736969156309051351864964001304629461221101427445050625779276794515177031984529075068583501940136361386437878060311849025186974632479650864956611638773446798599342619386159752100325599903613743740742469419037459368876495925682871435902173433577253277406056826446922459231626159768486947660693177803539031989944989401277833038277014349435087553871294079616877230514761935811003884588016450780357087008238391269869778904409768126975112684327054459625213588016364367446068821133488710259849710535729703987386292494208063347119247541927372691358293424821978368717770860198398790569244024342633392729691294449893689318783006092517801876902378713007052196859305269034148396548053252824444395844950271552655812643214798889498700113727356161058142504728022309666144446498695509969027055014312532849188469585526384955613681414349229466559460902903979754759969941281907009193559774813619826680927388479619473584389919019503864304902199485432060629475313745559171381987943395479954884945154687665850097278853809994011283293440866246733176160192036485009176546543442784705141782341883504842776795164857386460106348250898650360981908550524428101776632279544686866440131751063753990533399949500828284987734905389191988774943444492918742669881565994923615233397917188095848218736061645553647950797885889800981167650823761196034722862661122412546259472608727470959574939022837066367627393805890820134844921459858693295506633911818992772077382195712692785931585030922400635224095461148849953057912334238741664571549534751013270871518502889737446405360006767386911507565948995826404685417749549861675993743059038949491420346763727290543215964290127559819758839964454570940143016966240753068170340679787536883757697529430798595027202366776992823626442118428547782720250477104058228932887238826200839596260786963917512910891803015672068306974059134980370541370788304757539532255177597092139710548441788183277944176105300667559555147050527059625575585910479708229627456845542708023214041180053155747979195422068082445306607040515078900710819058630876726173285777237586178156441509424123125776227701208764267950603480353703314875777188718146516677292054281651962808195029842136958695763980878971715222091697270799208298578159748271418397056448604105020244090775964512042777056373850427801115864875681898963414471669561643152306078447454081725228060300812365623924524177992156188332944782705984064280858850291334111952719356318863997526363398315531784863421475988838580489457370055152689093853290130242444049082755004225494309236849103918312869912173065701805436609279689851014186126675642457573360517908971110449980221084906324613687599923729643952974630901004396536321714522209812325903171510636169920895682223693451251639185447468047624325485694290369034100587599083227625111990799669334650570157082194268521305555147212344812111024513098433672172896178644488079918286585613303535723246788672808037156100045812986580688209915389755106595015566188134061128808052378203868789091198516103253599707655414406747586527553144621500485742062992862760193272548962797463300773166446193816477022473267010145090749050193808483074334074005040564628207679428105556670700838712077829054085892090261464863422708069865462400596376868747372546201462465704415763893739942962515934828552516254897845303182443496612724103462994547837235377696918624749533528288252501263341931285453261242719858421072562445805936667285314372867496781234366688112454761678337655781756607452329893013188216457928721059065152064070769645062845431903629491795983323040261423707302129653351307095720171219491487546758315263388807558924773760676613035358477455242835962766124021111908797368333670057756533437294246735985745531481103255603158079656845305317884587481292913443790009156544799312771063231524110809633926564205196228385050224142141269375864482341544322790031116405441120416020624770861129273460362900979598673137044508912660191951738204903462521177475827106740738129043971602411588748325044229468062560345784658465503335574886400535285067442186430407178200705149984138136803275135535831907009057475581264405464059805563313012435656047658297364744081180520371877586398985132526598612404831308448506444597338857338116656714506551790172924753675363056770740237461340745233215676796129734018928753747495596712435661556324900736895036072085475114055609904871867017316117681015817125740728643339534369374558209991202525413648785180219579985338938273544923423324649168399899613593687794831010266065020450282327570387044044702387268619215123059997274460857566680405426228500157405151610524507516971534955742181550152663980602939562613500595818317147066720957404964772875247030433758467256089433528467834490154730098917852763844979509922917435217042908584369054208984551753151032701779734228502063424867165630284905480796144307262910555000355181637722331200410072393926813317198103565158065354645580023627518557968633985582331466994126831653507708591316948345923133658233417184801267704308185516495303262042189887316299916695463637129058770950196510260451162553051083025136019456235393297027214642182166514439880751692076208057522878017492442678861378727715819317319098444167169863842776132127024991077463379387291789461134337265791040121538538764367230391889135897280084640507446268069825746835025663672175054512449113840732482145394427240219314027895706163712095405702736988071057123118599741695172375839600701656783261104440257136129236728357835723637780227189756875922986631979052805448685094030949809889492165549480271928791912824659099139502571423412519734994406562583987900668114917904289417567811142604423182196275722372143938300272413709711524761977866747359248542843813664479037181215013988482561709498477657115602410284425004389876958889682316751869448560261919686148403546750434281203819432384414346319816580739307671536750687031903222139523285466235920578787439246247070167359158889782148323437859461531804183401784492867587313212809552952088407484217773447217663103896906561204296142715428657430149644133262312409517242072057252076094771971126353041959628067841834486593754728094860567682931455164016635095558651358490923378482538092793160379625403597975160894021203888179474430567713481285384430663745021841170233503878445359303719258165896268906531952406616269501644296776096783464250705301793659973330665706665567072865439085575382088459857911455937215016443824023782397937394032678704616549939799879814346285577611388121374411780841847931619362529902676548567671437690228192467935743381546583149124154248174005213626812937238901986886691775057569724781508296359271716313673977663466176938147651297804750324950225047742162964909474333932399001661317999630808227406793640104324574952268139585710907707483524033800563361862471058284308411160725338938195148240401099530189903482275325966372376823976870574801038796162936477918159048581040274802960209858206704980840595270318513651148050062850745160175795818355870546306073218091918030425190697889742177905933005851195055354982923172376066370729134637523445967093031828479332310059938880350474593747940730309027691518953048798285609549075345830788463130855065813542909842742608139391211418984255928919258087737778435803241939322645838042560698403267788080874296409580958803360333319913363673523846959602429450182021909981220989670366250284998511753865356174310337113605846461403869827416742602815431468453745035002173911349863755826019812240220213033533991071591016205274929910703427631106607239275883287689031627534991573715988523219742765957770863189541746964050938558661649302183252274987479594643832041634168324031715207318896401199356908182169968884279092158965290653138002672676083781067678517700099458175302876869326883535354938702939232454039931109644775446182032892607678489543637412583638431826062323048110571877019303822874161291836841162261885460960915355682509164547943741948139122144963364067951336404105654245955592671498149565579781117772152152995524867511478929354695099297105998005748228662401435429116597918347048666098329610085020280930133974158006118350420535519409054844567949271906831128566107806277105703317071350421416066436123314139653173952003031560880241571527705621095306477274301638019234568367874115600947393309895772083420325116366827360507305356589151800754703749709928811857463356486529842631805130921980211524390155349530286988184345400750043684906982309982553792053244745720326837397211738923441756638809878621109047009613949281320083283236602006897296382919272568995934203007148882454913188681488349067792558452322427927568914971462537762916279663959737761169048485765028816118885440956419451912301441638065730684438371271191610807428294754910473316104212810731223306309022937157951591100369074095594271034967047855106531736473521941964474278470717594310602185823740006426354180559723189501805532095130761857140500443012803629624874546423989412062211175339495850159846133033713321949410069223252884700575503644403593028722304633154569207236344341082509548023421052262619574166668385486822403027512876574439358924567041196730928429894376845381710299190532578946403513335962121925550950692632636046973498207603388884994791376331521836735591189645097849931893709431571028150564980660893460660111137193772082987362549384812194414500558762314490597939936435272918576063965727119628390051672805223036964120183480061161988292439227923504436184252890073713981409173334111802520027122055021281004976413150635020751593632230253962653391352990071642003544261825401751526941892391426558390547318577212636833018532068772776478765653985625477924708536196147651663504218768941637785950276446371864798883644861803545634148104527318638245524979419373736694291612047925180533436562789421763202227041125164554597091380750610297466096541611471069109067137802261283921166132177999052756046578249198290965253180924140577268987555861099344327811990736627590123027700305537348416688622058139468525386644916993565324308000382937918824554505413521425383205110095589293754642728051719590794353116136881225859619827582005863652497872184864265304071484811809184277225622455468324454218164207825915046323757051398168077591102759692152612349400059766080144406557196482471743494755558967165754091150596824327744233906647854355009564656407924604868494606808672993316352899786144252414846579430427367575505659542160594373003971451808986051899427875837856868703947638361991111713117638304659609307676971596622278668032631942678567802907753078505565947692089830928847402877932860533549592816287915763558200560752162965908848219072267684856487846573454404450979032919239269412175669870872217883315585405773918136016623770936431305658018615643909544173163146796206595823823255938855624643669866970243297916866700034029072074418028735714696237949036933447629502258264963525383612070642412968106689055572713388929676124611660081263704526575132499259569288075090027962249700688691968644897718788802065372819459212436804902386562346125342328884265271997496813441521645272143124044571293191418147856141430511006137765115012965946142197161546619658026817868848035994509757114519283845317359903792614035164006958954403473265852937378952606424531767168343729586438633644934015610866070668495521835498438905885025366674436771871223482179423407889535563932629329058188736458560723199356379396400441943599153472820160272184646181413692848126970774921407112374249815119807153748234828542317182189127474296478432433196974601448034763020497718068503466104785128061565721137671796766239511762772983552368979222138301595637893831725876881094671024889967672516491023957952549443085549339380693779718793376151359952975977581240817632201467085212555674776191157426083798619922533464687025314310687128345600865149078562436062665132322135188501530818468916894071966721280692180348116071658373859884723295554291166480008150703471495635335892057614287487263656025169373140758888729831027839378137993971515252900424384467550832315223145924150660267713842883605727902725735101758224507387801838283534936197248355577543709619048484859882642739684854811091388646264837332857684841707647278596105529055841578961647588982707727834597169736045769207355082464497146747330890029143404234600667565433748387182839656434328916515472555561950492835609068164267095529208390202789970757212971477368921238033680697726474685418086300151019225994036106790322531381311148773084739959541138047238279149145435387899090025294737727707920372582697226625856789563441554046048630884914781133565810198118879884286603596495858201389646983309120643242298700540940117161960174910168545431065459592715001691929101342148131096916476299147076812800825106404801435730981542708762008938563319182648161169604337017357665946043693232700231186286410876307070977050184969806025468418041764024450782173460862325431843476110888808281973108324684454175841543374053749492772902546275625065759874377121315890037713242481057443880319432504924792949765472462358220868047406411252893818201011090340522582746357143291475363939258460252908108751889756540804828923122842644174555354986128073548224701841128388354112358317997447965490021741719102995062814895490610058227800691935807412116845171674347037387311754947073717204464389674024677638383756238639431200521218265585773754921942030956456558111930738312834107691725683382052216868775312182044902033604426813835366807410571299280843171903166504611305545762972384847305839363495172142632039184869626024744029422687084333088954335797327622889100286391098134440889408320544537109533694725178467002440015521088453560844711677648263024181296684112461155140092456349860362591723281594480831109016089727318825682692246082637121987311621073085517430530450254412219331001249587691763072901492575376291428720361202556759180676760335419008264387178155147651881479955320639585926326818464902198646832471303589051828442006942064837755509939989349435290495807977640380522104185908509290115071600491686757152357260718673526564361795201584940254627884161040703018511109584768861498845761587824237814745931353541976724799119282357793536350849646674850892062415784669204368471158941885640022118215260273331481989207397673594919817355519475929430485194777435422911427193856409937075412432743661862367847241146095726730320459958484203989795876838059090408026874803601528988185573081561396191723296685125903341797385938997025715788734349906108519601356368708270111248766496690883041701894055446938768388485287020402202694667346776136642394812427600020946693404501701757874993506215019623389089435309250402066725884567251794763120348867555955534669200951941770370998310063053763564174546869446708398151543667102085297050912163728432259308105101637108320888353474760634519894746880547532944499244950337200115939133625507762729447499464515561440897471397080402560074951456216680545789829520642107531271467321988152171432677987715171131714091893160661428096191584551178006170662050578695436228939419665496182769027918442239876632974781011734978310147772851564577185723602478257450225271638697983011699036280637817111116731335319590041825460088992312921525905393912229439364353948070702269324157419649352694490010458104175023233437152353336232918844232920370797130764301328736385296700905188418094522532053778444865801695704872772841055667105203896347573407810181470663716756308818441277213157584048965875238229495924048470418391984316365643958848727868485300728214618859398585257247826560684531569522779981919825642164278018430395283060482086112671225078089375728217289431834195333611269972257174608433480854811324666821637141746447844019540803594457648094287363555594054359483019364102678745256741700342530561331884061102970910570317562076464983063178652886123244396999440266200477358925563956583971052102347794742351640591183238946605079258669323596269315594892045677966960648676681264158364255941161075125571083191745540537864327367470813125226849070533040262670284203245707499283606394420734965543279260610947760418815381424195474030954922441370589079126922764010422623808797941812521689145238531100680319241459879099306141758097616688919802132667436325860273031850331347806066467183274059988166226832473101284868405702228158409067762411321028261578147666189466420359529280065475802781654476292444619124912436118601482502986594780628409501015988316310728409758225784806867753478679706255739346530387723537068339599832729552764293891556551983404855226406156904144499085426980445654598952497768387263696065613819320881682381840180623753374563789811847057662269755146321634919326839229178073741317191562837705038514054464012330844148678579225531183696227561474213504357781188228944241485039302059945609939972223835143214186703571067702097594254388876661573085900153570015393746375060279684707920907129209462639452555867970707953768853484199152545989994236552781429440553405365268027426461911715010886461709511478000376235497998142161582197073913501681766916578946864446085653419817690739682261535809799646075082267665090441594345274302345644738807077149906664950006039904552929066460205237733748250287977472989631162235718676797630497568833396796191678818585774432834200952942298141563295275785850530718056436442354621560309122593034991208777341213982105516501641270274366048057306079868263616009283218725377937030095418860300404856705836103836286210101755786729171989546383909693097008944938373758021932495918552150543360092857709079171288085412927003384088547272350832832890505594194301211500411595694217989061780724523605561604706682318175163378578381249836710289490188213928081286005078341625461790966071798132221201974205859561629378654921987469264728831832211204729646361807812384782378270347696165279434746494393924754059284524015677638846142488310023293238224299395071598852675593588718973439404668507585692305601739723396751763972338095885660700104445235431892772987737945259141745711907783699540921188136687615626483538428842542430289579033502485087434699454667290438298518596425258923541772565852777732146117747805594741902300893128294515061713733819326817935718999998563153821768870419980869480286153866678831695329571264092671224521517599197692513183064497526137295976933357302294106319064489401212927168991597599344628991666480170271251176347974937381231112148274623658529050923886836324057464261173406387664634725770577750563383964354208449789778677653343862719420267521235121492976213340303778582488230584041462965947502321506503681606756157082802179201723890979589417323394057185758646584763436276384834349659455678637593626495338297269857584442010045025651403164128813414752833171991301161116164105424953554806650419321911525214681223798894670658481313926525998510824482085877828236039169695822492618062655093890453936224241732801407911637863826518316772311768803002933221265509990642807528036348536413844536965800940359862638088877124184355665061348264135946738980566368526159910715041558282070709522948422516369767688118010801174076262707498207820195202655965073562251429477740350113354560867360835622421771014883870309386275471512447398801663192953606953887840295687222834420395192955926399183470155964191718351665466637696592261183589090137996161030055158981317154135137684977955935657724340114295561517457070402340045421607554683715986851606712742506895987897542467470774967643718675562493440922792380555643137416108958369904772914460526745514675439530487816585467911920563150722265011211156060664239800751259003854850691492799029394878845159059672915598144554402725509613796464884746328549936177593501002879713417650858695619527162683650707293050311575562558358039631028006138194348698137193436258047709696532833042545312260781485031584017262701175407524192394933526699697212426806007538871694926735035257676437739824651825481648038138629498390741016917067756311475647419093480395840374832284659490689029641671721100255799076307545549743707298827854703558468242337289368367213365573311433081640501122958776821169115921743809867490850907158715882280491262266213119844497098245907865706621413058662267517461502071447588058387105854555110819967708680339912539158325871992257594762689457580743018373632550528226522904813762107408763241781825415393514192478120253417219054711792486429262899878370492079232138622245039744431645937445609988713151052894302105903700562963899753558871944963247215133301070168072575824193245538611259852206538458061715427949414777039178719113962223036758486621966658050310956290573987740596209123076294853865813484219999541974023133765750916579459056736973031623056696955599697886048008699754796516370568263575020456774384929740889189770154819645735400059758118325088483638660545966961738458509905671427274106705821488321866889955996591481649339282432815582204794669148425602749277444030980719169814212535789672814328825029484302369121560791007458562531606882372410502537701549313055797366053865400970393919847060463807366232468007448264889484202295915163537782819708915900174940717607960863161501381648390057727028736128410523666256120885706098996353742715063539089958151302522080559978400733413760488005372008821556867879103373622338892413672674085180430022632681303534932442865788075379390679466870058112850926279456870567428858677855223116310194086082766767956660475407545066713452447326480554054567300787692371717402869833859519510306779346218576874506225950961557623629475953710119587824226620297424423267944427535180401468687269054205273147867915147035030397310071672224141153415914170609716537102469049736791662755225381470207066719496164927798380923870563461303805198175877155558191678077394446151437125888884283880910683316523416435620346959898704401238961062579595597992075834293273069195154131869216760078370185014084193930708828767939431857831948567273921541673812339600321690414278525621227621616050931424543896662580421218396923517677075000359436352250672668685352916248689223714255767926594920031031019370912985911686170923343789052351810160627760838638592010636056420818418922631956546159839526958992371293667100321855609500851686871439257884863112150683823645323710272721060646140051119384318639240618413882488186856510247851647138781325219016226172842291694188525360110328503899948296651377143267323927318500473953425508420766103096606681511987195528174040676973340862177852181529556804038809320312888050644095098413796507416065633731696824437403905422550907703318495505024551544238645695959375691187735124605133868385311041924187137962216916135296672102583479656374807759011178525048013717780612213354362137878786845630223754939887983677927176412013234794278862774269787059112705868290050099909689719660785733433763305014635116329562873920715021124493849630989257834649070664255165647755991008498442161407432461132615739400659321279725046708782677724123413006071614417197271100242607589531656795456281786774374310736501546405047946405213329002161154018585528328389830366814663665312778450624458212006791551792813539350487287542175541642595447537825783293350299374167569287546070228841485478963114579141834405797051055083024696800747291098683386275797589276422842261398898342310449521246140686988412800212876027313379690124941625805747484080345973382024930997166642955243074359470848696963709005343971990879419560307069019354511906755793528645810693739425537345012106985986653173791839831727659623185270833396299374267173870193501315533493066292974299921177072226165385655570151309633610466065850900637965373868396786826937083759125414734272333475488340552570395952123195049914178956688254258754698162269676469388646958179894497550643251999390869440241697582903467315874990737668195688806991709703337928112225574733348036174841899153078888903242283301680328442693575338870748189670135828785743313381594116242217633853840077195660248437894313486676332897586819473080869837860696227326136461466247544028637294432463885782444349769557273889459687852098775318880031941011262501816960868598804008062619710633885863933187976608558595130486069390879937901811224673713966599641451652360183965272106758614324938002191842629022310777262837768594593109362021557787183596477524976904497522747130622418349732173143880577751130258853077027471711635855946560188252803027545278806081281105861745527419851331988735492125956366068738980183616905892396385380055703498371386330019519617682813764884135502991424687417022431985811785851015242945642536907469042168696648816355888037498990764559730887289872442543935216754122710810004755780426977350425431131374474923495903097044573222908648089124172610927040676253162411497857804126954766954974823179123346086593422419237412747170931712356083436290095824486343211243908511847678066333094746504142518865294150849975433042023109504214743714411479375682254195723079164861866276712104957427440195729107419859478585503592841220499154809712234562442205725904588064134875890297503893391901630000156253753001916210289837925273338174873301740064955752847919156908466976191987407548894331220025532208648972808357898483640599364000108470243339679649135579476197959190030664331394517597077460769183180425401510459736644027525406531415161556048545402444272456032536453089247638635055342678630275786474802925337701666520293223869995354830095576364957378365081417939822253057759512407072247333126813532719649299749940254714519851376250228550376124812869672962923231315044198292367530808295832759161550739020203684599300862558505618962423436253183929606737032315376104877748240182292496451865533901145443871374165556919615434638040663117444310014896954690112855671845321297051957879406099505852188790825860516860202451251930413445798827681209617955668015635067631272812837464552914225125256209555921373477957077978030201141163385677145859927135737943657732904606497453729170901837051417358206672267643361193534143007342795063572408175295160557963371022093061456390930054350833051555167231454883456608275268857887717849300725241403404244648310265994179092699290794407045003753541356793781627916658548560595498346836560335935597519896762385513706238068631689080588621474191378509237651045175547770733525576198739924381696464275786077029868603940724092326456066657305612165366733447969343325803486483887062366527199884544107685473333468693707048117160396481748335221440458007373409255261245353540717011890974664992382269374231731483830215936463172594688577818652800074583705669906953219748340512086086510884266386037008334153353697898028191116070386570982737604949527241963144149642752847850811390937891412194553978088452897833852574980450203682111408449521291625304914845476387071573941363064950351482792269076520072050613675078889982847683600689691095546533043787169352546475610475610260094234522352759178395742921237868512267182005101110591811641300813413221699698433945958898210038003401614014292905513491124922867539094777002917819520550610737954721958080479082808158573888610821462858663823022337743143180946445665127705626798903937377148676995141947297973932461264236865259681564999915328242577814224743804416127146880734145114351728705691479175692057157597077874548815140741383889773676868938759387501628910731873955878371556283960524573029256681756399990552060337149892119000853372913839088721236312249473935966640540892327736323842073761402161837641616136066259039789317262269735270121842897139399535222606957715523854221873659369683434826868734639255521755608838488667882641454721754392424053340403241799809560930176257294479912610275312242634784829375124603843166880436003384493937021903570430223531462800885744931798850517838645740067540453297573358172923972100707411714220075797876257847368035847993459084319229884104840075662140511580174735434338768767953214584459134911379797861837576797211813597992037014301025391393227989496910877082642942624700848101151603814180780430495009012196301696413422347520395949955864291513595744644371457288359124287337671415256855773336873803886809741888040085966720595037994739563820173075965094505483323703057154459522867112376789000844538819160989458813480403046020865502890457038284383957738336613823964405533846251528229858933365938372251976480046369215984742022778837519889812321703394546052643051458093510393468937968059654997672122820415816642318410915975821521463973085460096718403168971310101910761253745675835751832705874486850908748937445554627304340223886929942796592498918638359938789349074721761058713466141338242746561351080634218001972750064133914454490243569398962500681189853257476357418784844825179588884962061124073917223984477688644135689580380699765679971990563820732787791147066678084234762886200767371572939186374964977170146929769509229226828559022755109318431430978255740489086048037751782525883779707599553835603090719193721197266908534356062904493389361831197670461283730728473987205671183998611887808154410867520796728458291479224328954662746218903569819187091078370115068731152269437432219180207397483807489839100666548684365075859590891147205153728901636712669959312187138704980245681437113710567219912959976084526282167117782372776868446701208190518487302244009013170706117934831365826358080145722296240066558994761304822779556338731819259440134331022594763768106189852632508862985587961425273784853198796109420169075653097908037853318910895472890447175011458240049596726369009508847224182385324501987006616454312377326613449673346666804777908696202401279771041402509834069331193083780294267866420994564218583476115410285193425470596702741748210590978388654132437451940469974161133187111665765620008536661751285681193811758207713380506475550496337681097836815016859549359840469642576490944878290275592354983687415185467231953720733413660210116847951921392329908280234058277336514428445189911667255234801427497235472873388116760543254605092535917031922665922952923923376051465955339146258987350088382139919435699999575958963849664752046308891755406056385463946576031752590209551164458601517486536852391785502278530483747499429833983777961656986763661907919800631067115881054262293572547172481341083404159748086059082242778654248808730346080906064179867787658295490966922091877616053317300413728874797028373551587190147868258589193949541860557526327887126137337226408734880918129985414300144383082493217664547409034432824446075147284028106063355869859759454918921163147345101078584226357987182825183013704378157038040196518521470719275677591501060357431144428594556934872676849171984275270488662650797625347305756742008609956942357064326095089635109312398896809754200976109674721027623015786848178893633837651229816315384642685541719035403953950845545607953994035095109993531381982758639194718702767658007107228493457107389866057396659883354903223587624509694975600174883792224445089027997724750664020628214494761658888785422004764078782148028359010541168874641988376542953700888392188669411399733281323976957460480958368386830174503739538681026478330523393427393984649705762055827746961262813114879721211500567041421290915016703991407746618632567386114052057233632499579457159365577469568689534996730743969018798407302262797069502409554542488504944809542987632807935245140197532075742122983709641200446416817376151492415240429780810863650749985302507872621843027869921883016157839021988476831529963244139771632132318461138123425143943890571133118292371324043317314430546332328637450130909907051653459237691320083459081479866698078438463004851138327209603630369109791809274496183283757284873379117888429103814617124711472689164074188677497799580682144335759229499057549033083077941116677228858425526097694251789614258467796802790829084344953383909831863463485572749545634725169531618118350474687772016696275092214821965693954629871624116859818866198119715329168014405458393776509275452273916939039096979853636639567830215358735956009163343105221824267345753056496158134786457988362521239481998115655874942031477949158981788638590066320034057287887386186433487420397113826664555982038297404965562136575391599231510395299346749101589499735342126864737962416218482496713202301888002552839379729263263571219694990841727940676684008660564686383742990154959605191226566189738898344132037814381121172595622620400906662204344618905449518416917277401026500017122334585898193804608670056647771979898103011333353687250053251962728995475724862818040366547749383651675033964731070074891128979848879707083964247876699923607105387214300241359860856264213959805689506322828087163122966446784070287842992954981488613634098649751908225623055740843392239484208588045163774651651969247894286198799276211387163191332328819151882899456043705004261952495323849977784005134739875471518526728557707388929712979113178706800930697486453062901907705238977009570076279216859227649915714512465657418777110362104105626136075187916780077224773216847030004276864237721051344466677313359583230250834706519042413862115907326145790338261152314923338618733587051867920712863014778285937615971283388226599249805988576607813330233042559635346287834553111521640242177353307351341062614972921996672783066676834426665883868452551940210528114757543594681480654173865499288625936817437601663730953970767827615747761438978935722235351313223900344548178854196299625650249927799308313996974492091751711700007885890653278688259735768604064104762162526590345181166237747515266556447899756699048903682954735160914352683553868034267051471928994061537395570879827929354703802567079489650860404490695101564244039289183089652113114757144580397478554430723790888832596069183219402940891281932484979499593619300380104598767796368179628818336891218150713602762620689060846324950331656225441138309165285436452257152406097815015910667902463086198673981955994248771249451954275283356542334065696769351326989614654713994211836775327750893536062426952184853280597854412319809818787368640791939281005703458125064055985323160865593754043944684100734756384849101815925596722484358834173539233722492236233663850108858258239153333597398671281453705512116061974801743224616771581401923456552730776701321436436094654651688151611939273626993805869538549911645790560997217228342019393421375446530371610112814265154339692170885975105342542525771380363096395995489697298612577435887957340676029241256746607402244991306476330839872754073659094064780745336466289011604869710197246259170934988104412010645490857037442190368715780976530525241271290136826832507018412288804842525045874403418867755305278618527162433641907503008693896088626327554607794417521911926309465336994244341707606879736304076875849547554961366715144303883872931885930849568948347911945782710812696176717972129596035642089491039302864985728840235381281446974481915219768718252954607862843791864322315703090114131640502557628878363719065622346233644470642242760123262486569789525000660345432553021233304256077495406963560254333071441099468472370714318690051099312526877480072840712099781076186155972363873603870064019604315671803452340079055119321152162342134816012930944173085740030611563513630001856098522337135956501686619088018021350859174595652829294222701376244554379746092998914631708454234722378441701996395313240111864847484742003963810289861135768635609578809407757275166280206222909872180413038312806849186519109874179725059899417346592788445931370354340909627028042355629543265516672531682322310581624128629778936479914299431958273721719407525239779901779182410187515183577067695223891629693369327572375803827597857854579147912517970673689274926970367906687059885738226828573828650327206020616612372441031791634486036798174063770348256900671002994055331197799920676612813465302943723386181647538873705230706046849008081816169304431490458872603722166351236318129614506536579629457810567894968834807730927170283163876070010936723904925218513593947743141447334148432073135608383411411285926148433941192151880139020021208557053151973236684686142776812926208380908407958498069846498697206480194854817376638417922774501127618413559036142346683879574173238989865130885815714301651505396785176257080099952784032945790382732198523349537438259211697942043453090395323174953228679614236206807525054607553034229997291700292302254590803551127441373396578876185281939191790585399337293940053151157710067102141786916087136457857500057741956363376631073195114825869937013500160008810275780947867347664234839729568815937288392628947462102538682810454909999001862614728572667510223936157064741550855546329800432125888172404208182204326667671414966173314616735831080489718385481464988253231290561346804008939748452331372123661668895208146132950488449091899350213170135313938828913841217236632584456130000862667142016171732992872533782485917460908527689724427088621241432885296801220232935237415439268152563207509190676479302448951181872821149449271655822462331015960296146707549779999295567039492329563342697740751290060451172425762567472711813072975452695759759101479225815451592452651051346505645494852817695520543290553725486120955464534433763824292532003314618122299446215802683334660972857759938839178661169653603751049056336472508096332122669841022039031765794335123008677950367559518647282340711624803885906041223100164869748601175108105204546379720089076900376654517613056067746068401463016163174417657560271987541408200849533241457434218041258248926278811263714918117263131906762481671618385508318867701632542786573917626482679510631385152788931251583692246078636927733971679062266010916166583375845067177987758137859815149875531671604266496537338581653751411363368743038942532999045393634275501329047039840268742690113306743015471974007409634084233414818532071382149860642384812540896523747262478932938966497487969078081868664084025000338663039808188358994775783860887578139944753773873250892492247214650352053199960589887837249799306564597336834300931091173266167864942414738713478678657657508554016940578059176299610801343302918729592356761896079639438578684623159719863302974549074297514853741875634891896416951295851262474553909569528544566886276181725292625948969246626816607180512164827152057182232821128874110298495460691600474055005853934007496308063418713884920758962817532953712308602497783612679950601909962596553957763632351749199937841937393725262256451837133222964126409685269683484614321565195591706930297819840156983249201969800528306856166802055467758360293919791677438649304776449943227029880825975960569742254634707710370657610401317884826208009881965238635528037142099684851421740133136068526232176245923662833321291254074271414556528488029324283396869868478773399343690377432907169764406196997314175483485717489707881620114272228910057110803052890046359735349358144609686700785259324161200310101989918345866005766585119222265476121096721288037247419995819864665582676348444824427039668503790940996090694472428668527924952826317678306025380169845531902569073154809582833777338928481919159041222291709954014887755278291627023990341218568552669881154276842446464396563292037204986385759866157436277749050159023286012301324696373956422922646343729891577401907714767902774243106799408885401591639128116777036385681165100417454398279878070349392355081019417502969491378279538142432811060223733809385937931000491075480469940248411050500501739793294541144777572689638444147494496656685792748669903723290011533382315477762264136788776557444277792774672631486673080708453981468974651789372341174926006527630887409449721721657874673722057903592881072685659485669798609990385753542851779435829492091420191575455386419323058978582437412353327596426518614095865276193497805886772983473174284091627624476474529497308219726001623998652406466840415506366157632726142839242767480350872699591593665736587497951214721256048220885895918548139673413084823998542934760183784805652549646426401355621201149762887123909773762774786116010036475805787974774541895218582486133424215723417166028786050839626268788266334057039654906341017195918570605688455633937149779985127892713027042770356755505465538250204517417016329673360968164837638580557905516754834597928200332592535652333546999265484208414579895383551756089008282685970568796947618325970304713682397605365510969471482340527280515316326282894163773973282636835036262137335710030666542073049295643521649565927933636780442305662045565398316295768671537486650990016762794409367382825821252110729244809135391714876590468087379197444844095348341893619467325270817356773804369779920051053045745217747141161104735648177732163115891710903202602877644786485602562616820345159612723885237281332697755247055751482938145400757157516156731568416107049569148753905581376155807397085837226429733662699781500056229402580381237264913267645533590223733094321031342527089379809089420704406360657185958060536272743471387114662347126783439221429797097189169232458872552711462100242549587190067697437948822133581654442064288336979625343464377669615633227491739657326857814049686075815115533784418634540311783641295466478982452346629313777017572295751832893914961210324476034331917896467172306859873369946262131339330316902255389592388429226113346749665491419727466108812444689833008634258930882863149302085508358018413832449551175166228683402079755959601377785376471469476573176700384781178203930224332301955799979979816782925688777399040003875574377471858078855948635871737105519638441287284994890695966201991698949830954158821494374107535340857519743518979834787003471769512598962101229874155968674363709545889619938421415588474689903147921378194064934378835795605885709370139013264996681076040479273319976498441255137166742440056109103692645995675833712070897371909800500531463472191376413137922963887435582364395669455434383329485206407254020030575139814457193714609182142778881119682425219778119884647555655530216009789754782872682964842740503779404357671795718940125443260148640080991743477635747035344907032563895769412699590773395325308886853966646502830787889680682909956317815487865602305228614409235610004417463906967892754683435831218580861932423532925815048034429315694765106554146949392707607568783179483634026097658765110914613763854524551563853905370757103499557209259672370120277665139164092320966116552594107486471279776349530289872461783701867991783833523232703367589677484357102164050164359672930137686261101317602417647746140626860406835646697731001541838169143784894697783542839244223657923283940826195800401311375423364223045885632798142237168609666895868721271925708320876240391545141293629172355320344173516377771691163067387711211695797209186503547424508196475230861996850537620600792543609168973245953385530869478816881630485189435246095919219662040428623857262063703233786907772118196667430436781576212546828763404007653334177230981251808649971989260356830638781006806836700768375720549351562952590348300431142103017200474288187699728288019801711724164581500835924590322417181696071445441034571602419363655859498334760656367153303053477081213465472801511231493110379235754472627936057584649509723515671524979765662049822179499091799258621362199770198507198460526308758932066421902971944255483163961942999258481200629040879046977915773690498887753701798020178626966075583939728638903017895148450229705977173246358551776978337522195844804641311994413270582733752812951504222835143466492825057385209646890201213781421869477430217500990988496988992607796235111941095448785074973174700877265463951703070447670865908276629623627237100901147884174149701380160503337005270693749849289080923894313186097069524520328777705244145982776506689913773183052167234663880192321389768894094523216535920846784728181115561622348087830667396330479599342610095619885389648778491233445618241157998598838204619568043362372996694063645702265235555273360557722757070521174848440989060839484232278408824307378754026688111058399001887392937978961499831977037522407008559473160250820972213416533835581046846279987569040985024184106608712764489600407958127979441397405439116458716806666897867265193701120130229591944317722003688791534013007243392890017182076087372937103035254388262089700245279154196939906710152860338070119129064304023631899339320666499163274168163849887418924454415380673344216259073850200596010923019621651000559735939751038381235944373829661000176993080579198918630390081572554308832946637145581209853126999932931195154883487000966642445198760642944229140992770548679999712155330000082418902821170298373083029729025132840948313773539817150412800968621753485501567629290671460611708977541200827926572164087871072021233357340557101053528411546349483321711863704532290140960962200202122294167031023642284694398738784199144952370479458270068098955614635248469773107705920089971261819253115474883104364194181419733360745843700587096025860358069268223212919850753709518976567347938855181180243823834261351778793282454448649655062035699950862586338941724332673047052149148091988923184381219611343163744693392597568152680759137023627728022629516067984316427653851722540153629856605371367128311267388910801553210001708947266753321397565031854743413468376046997207820328512997377619275071432547477089827937060826073584072573694632153561933900679235901242130702683805746704752617570565162955869737604652724108616087654304726593846249264160136848502470244817424931727341509189495889580995223920857974605514967302867345114187498635357562307251874563594124681131761982935686456680926730471527751419300119086064547885784627916214004465154465615455596639606865639437066423551519975000839146315087298159351970408318439621194505425332614440340342416118534971749719651600074440703685000990985302388166035574983849986425746741727255863041590235431195809679114266279574566087909779067960592863640090813033695948759163983373039682914889322033488602514572817360552229626964239100566313177282611041891526248679149898172120714596577205763576017258396701595774707407931747585095411983255176899627192952346837875458988540172281436657621662432842855634720621715821901277101007056236480341593946451445070618211248472409601613258999180593412986581891016817452971594122155284444381470939312140130925950375251348282077481283193815545639302227333999970964810647022543282645660192903816904370208044401639584910971041787599160220928986518558536515160300257426725560333458292438242156567996763764388149902552699284301129564180047013050017860298413102888265213419475092173412698364126821592494808084632975191219644634124424695736211979890723723004550895809888590287301721940563032066678883035636132110960083766681713759863732843322537099867073933178228065730588036710751264731405307579772930600536772369574539131315296461635969555886761038767080828261293709467577706488195837706722798683159352702069901211863243372666988977056980629110008430606443181788572093082989571341314280917281935920678707842970056878909827271949531446521399957202082577632626308959679902687047484008210822436721494412978607933264779005336346568377805204107919703145343184760583736789476589647970806835606723556818206078995392947215590995773381294819930725789898401008227614743071153040225878767887131442010794587112796782019058742855059680813978448118069939626816096033596016366123037732101759201032854421586927059191497575514253091494182736982684937776191403833811687431108858938546204130961951429601645811767489694990062345623905385210862140577239709682760378154413641490188198928802170667486480706710119662766884524175781490145170618141576833632874712611755479049932886375643747370589103968837603322227617607285299726201866147093287489064305313830337116177209944984625981667044299765151888344939846239447151234047118133768990098403732965566840534728047315278410363129547480756993545653389300525927253317069359385720157964061796039358630551405582185377359787733363408292082767940677345247745248133577452208512980299157735610274490966044083345290975046284731535782620634960420898209705780210398503048599015592741897386698422551174398440117562732511533777147347338289320737501595138280778424289024570904191194027822986686027226361229035221866093337030472556615136285750748330040459410859877808784318622938937013037303277237939167999637681982022965944291173965575821762623002190218846521554356859984955621889285101951073728503888688383870358931652723000059621682906317272071261219889759729442688406628971076385579361463076436235236706434261642680143079995710438886108444240644912502711919608027064529493927308846717779866896098204845626089442127131598710931803187510347949306539867719075957000559132409580573129695749251397467632611039417761954741003279180239525097861892538324969966253146552385918477741370876402481092471231984144784190277467479827101864452052927735892162350302169211544209629022810088777443428387450125981548475181527025598118415945716941974011775789076526145622447531936918312670457837769250246350116827940900023878054287904696963670624745401352162825409350098354302448409397205079962906740183187252796224061484342487485363623334256744917745965276579668993024416927938822488711608279202248205050961103169407139025908698308495814754503314287339415807135540680039800506513447501154705015081361229389564400796181182028825056539596886163886808030106188125260714738655656520081566595823477628458284424517622349695354999465315362123028332565159062889438037618616222427616159111301174010464126475048379250142975802889389451174461928836294979300276394396891887799176685558577400965031829095739443588652688061251268172404522272526889202434176119543797285450892571637375117363449056374741841430981518644484683265402120351659321810275616345514871585076906158002608747265498766350350629350637590514778821040946643224767136083194080958773791732771348571137467007154471970602107484082975547580881880153366408718696437168231161560458920155251555920513060576985138344149592905426072506129901196564227759984541258286899510850132776407969841758077549754225237015087201681419049227622592623869022438992953858493905258213545957125178686287110875294493631139130553435118033586251789857847494452630267103896955609044660233259277787638134545164203800670665476496137036812627673683360785559734007915021745365140099199366132046262218330566945691957640741057938553235319805077858326574248246920769625703154589884119854032498734050183716141339689319804030583088527504001994047713749596650295590689833586876639874842320803206158384538342168202799571339052409880182049666672141160225560849717195274666373151963186063382988132145680465286271026508270060659528950167760662154519970556292287435744870308136940286526059772521204953736080670344239263630845013030661684622023509647230888292842209002388360875791121208863074462811943482979754123810842410704927080405874982495913423296243571790527220126595575948937023723842516605384759098801068210861285817524611119808517808429333253821604057900048677788738044651476870084198529465955344768029653644968967332365036985293108858939724892258661132190364498029017568872568650422406189233872733495247039816289604546305955505789833996711978844898043450711938694635971673022785971873288292916322096667557532218162993794674056588291336695193156945229450769346060891244759255220700306524481264214132475802101206644669094502685346319251383065371004412191425889813145880641576437998694718340758878711844734068413632650288870088290286074222874047699485557432058203178330063196600482872778865915318831033693382186394158603266591756526459755769435782211812056068147770021934188527073710469769192329920443776371625118003372741629823988688905876532376413194942401253044142672441542805245541552284368980510056514410246148660094141026727592440495658041424800396458784335515341214682678488432581519917833300207977016474095136910106705925460549533438881593984717952680436233632072222802274722895333251236138251892017468063720931671582025229295462213579388136535448770379680513233639076317479365353878349360584881413871575257038890612104254498801899744844644409000482621880512302838781645149575668704376799849292620791165558985837844281854086849216536814042635166021854493052919767605560364420695526124282801309388100793007682804585141778322397094701398365345041456147931003883103284717324116162275235980562006550941167006225477806906186954556728944084424217089501580527467949120225616480174027368919207984456144520540611315237173434619332215807881815083677376019318881400996832923861622025901347727581407881735643573770449712146000879172525369200077326522406070404462360522929368078978101499677232099133583499491812375537458490402793737432554616440983787452962790205506288168932918835508571651415400430857940457669734200062244061002936450703687998522596939915702203281568662541121325108157548787507124879423658774582208466633542100315714571728973381081926796177243434807216524463528750252763259583800332439296819401646031679644557525645700108693962053385670614922207857358543009184686686846146046905051336108857943394520192502727349537065914398443601490250003419574700681810159983114179154476423256799384497000067703596032912475905622570377694408978481862535007446632652107627317253777498686730543408704197293634285697414893022161549996460193363130825174702090419718268039377839561078057453353542659631864332911416669203330454265766722278073588523798270925321135833208766199845455879994493234193608789536888378617105463122799680635596719375719865409687674724354565168233098106260000400298862750658653865113885695063554379469963438242320105938726926170020456225379919214776647652880647769134289707783178508885048932058476002358578494512059305633287085339245647499960256728201182460494161038349919307971070479952537725856475493062910469244796678353146325461146810935751603691198880053462787213887691838733457335618951660163241167430923130020021571261165856565870881486380791753672669218355893832139509612909457476579895153757058314280424936868691381667006797818583792260046532041959271798298621485375311456223387845376770219960213837517235844465358514362052625935072366605127125012366671814439120797077706951881401118289147990448998289408471950823136496031017059213318190436581367603955561673058146566237286744487337485921209776233252928582170832033503299465445628038774140999200208036878389975660075420064057655626859594929622046648860974481590571392790492178678117557412734083942236661224153113582930062207386961761798555818748050198670631613209403882271500764297733888864233065453768243174602681523472427068866521737552464553890345538325151891506425050419959254399874828091705595290314092236039759123464429812961433203021956535022747843886619286689339166844526895951363074882126208899407224097051998336279446540749220137200808357438678854618155304983072937246926572566589791933502193970236301369722206272444900304773071353458985644401259166914734552069437909759247135576466353901676183176589338864071407959080365031936472763837815543289859783475246190824035765912130116998015818228960521852520119827219851317436897218229835552115141129709082159106526323545251513609081583192540489837184735936917431176309710138363134432277224184366987286229838916615213737778713690786920755982526614817512130769583127238010453164931872194646432337969531001686880094593647817577913924641343997971987524627926612266300774118671380188155535869327492273969539352670301133825403697081906166291039227473425586114033938480055320734994032595834855172831003856102155083064343867262583746041460137408898917096840562019670476789992441593282527079022815037984393583148266548215735231027708319825834265520958793599338719112565533666172219538749072273845994711833710976277583084181706876103279402302444834683194198822259936485905869950363974388706824421988477309918057166156240508379275347804239115855058166883025798077322898682770781549850216885017608366027736828887855613098325102163765943993449880018713844662264460449206865016049231602192833444916721679517441052870281976112558070587236846641504865710659691817739636035113433389479617980140790762833561760076486521432115304380989706836801383255389188077787954555266560351188462977441136388647043999768931279006743630527203188329365863354330312342279620637576791154689491122536762164919928183509456753407284095680501936809805167071675893672632061780017246709055874061126992431255961817302152730260768941780537945757453280916660155268186185479407197077867477178812049571907942908690776479716155777255830941750212446600366188073269567630080256154755611061060139885358876020041952374774142193501514919125102668418394924928900120389295992204696849021111110435967210124965239256574949056399394631353038605541824960126645455203728988280371922736965837669454770381369908822917837150529947052644429231261748856005684010189746010271427070787730734405515781294850064241322587100401165346682786000382565282703853576897404083444867196550451409676532119949933587609558906851367874199006123317634825154564685594456335370729383616263872035292631955474588172004473564499205040114506403149217492147477161582140725435839002365597379177524416776264871433183223523889131942855095444773250731468876473971699203566887855398535108863855936663742687378870672734283125417595563481024148553483190681068853821346491723381715022416961707779125548745761252613864033054221702135170765266550118119260296315446168305818969079942357298854878642888388303609971244821018589607374936581186789293477645144731465596728920490185442345981747540807142481955194222010724186736360534296282974436002122538899262518484290620088114503088003992345844049206353585447927364473027962653171408512789508510447447689411257035697419534224609256908182928544170146185685687917210289185602384580185040122071558740772565370620841964437478258230560660786526183845769892990974278568321039292766152644252095882475073709086844826512454625028797743864789861824167486813041295047887720563740685805356127868062461298293515512242376156479370586685114451315007681594516836067856983923724999654110431049252037783543962746979598993512980235801194280677678054054387853420270083601698646235977968081133848162286541827867388716959103303510702874007052549119594669820799303613419202886944105483666238651196708664624064930812983236785267080392674801408278326917933318972471231037068285033023300949524365482371567757252296635325467523784022960826270502308294133169140015008379038771836681944552309728340306088812030831968344726491635754063124988741612502573188471474836426550527506308832005523783712073438344120148632452995442441901521332354839948788293696908632215948197610956759155701000996188964255249948886515117083359027734212181069519699849435068439243058673145263525342648995808000730373927107597900039453691307779169326794214009768626593530237114253112216242042227134370606225928055473869228251343671426801071150454709559567479415365604801189954617104149403596484862212412583546674175968670861948393725568417543391155402766405621469928574202633587344413684564365591731116628665776188031972825763388011119820116083322018927608924833918767216638233163167308683936544816823770470649524867058145601493738287519378335816411886291335635091122516309420202747028465783973054177433477277324818104171496764694146229949297834571220677718683856295402703164157496461347843804202681203972579963085024738172371356781681535416002024960031637704119293537752270394336763257423039306005990379317500764347927563096666867559276479322544608145266445794339212856998483609012716822461752126550233698639161264020305420024587330659560135941813393660151132749386036797035909226303028631953629428662557687897357048167563018652287372737044081849459329467436811182046941518461171402602824658686974178393871930943444909673122889308874823357593129032532338295719432547762917524112312084019399689117640406692190559332913124826989413581624610216193962933434217254878829343721390090178267104361070704307811256659800264275169632997982415094962104540091177794069288386977016842790242393456456990272507877668258775443734805501951280766199002527603734541280687252571997552064071091809804403134957150743478740206143827059264578912721933886377153091456761034518002258646794359293198753608571606554725937433739044598820791685292284335372351680673751225457504093525522925433270196508835876052170863680166632699462426621834935709466186314986274035409767972622528675793582154087796881562544896870672807059857916153113594873600136686780304321812815822653499805528523276504947482796264922342012551482946612896446943326232032888990127629694192498632462746093091856873900503732135628154725814432214323196016651253534883416998544397748595602831165218259983841178134761037492184344511691184921132764194245515028352993203030200067822157251489765938482221526263333403634905114145166219729103259165323506406801798975569391109739956404835259000916131750626963567525651875983948387669734403148860105323463171145141423348521414039085726497300637241663433156352391437429995212731666939187184056787574855433960671444439851640483505557576637322791775441254685006339295660395793623100745839942434995633482941069066078795680544151773757675373679297928684461228750751061113614667798728918756116090875574267105768114039324420200904373346760058175433821297268009146267469017462700218863639193771596123649757874507775871946040339110449887879105325206122351155838812067939417529619277988087130654482025680319683129243352251802600528453229114510474503107926724354542398682085000848731136337861901995947767181483138670502045612211701566175472148646162801344483893826380582406682384508643079386839111859877087765540965722381568341055856345214178974644260446246059438476577213210177098705108012321613349668240753770664621506208532441027825873950618029578361463948687753469703253095366381029875242012600903914291351528375070941997890692888504873923246952242279627681865946184914876442363750595855025552907875245223765086880960732149300292215265281491320411258964081913572940395665336292134507198285974193578300203049510302368791800750597627329884289755452454835950409098486708453191755482687664352398789874692256827168660706620115562108772422060913263997529297146109893958117359301573799300454201338112339359698994951893381049122297162315519010577863907333521653565065622911000679864727821179246377517558255853523936047413585955228972119376905669836700452449804298147603441056583071698005060396434737284095215514718722907839944038679807670158316906463629553932808230851190325909206084301670082031710622637728657935072685028697725846442853268604985331567320551538294749133191284471923909468947562045797016026209445414866581805403579890180864910423270895709343019260709952171643124898078518741700349249743709412592667518917598532328288767715878280280974862741543199915248891340273351434821524539865447544495791267780052314796100484668757395706151796362041016144830786139373062889479415813968606498718486340237518684421316398457655558392546978777100877822606324278625946076721851071939294580136753313310277325374770231994183149829309398485531466275293288092513562098251964389139032940330789101976376297857034696253496664150088465510548240359155140911739431905291437067383336455796791120602058274150253869725869173102900161761349058243548747086476987524579130884533313352137637180559313064029556373167609066588444009894045724382450051395195265571698778596881713438160309272719918471831814894207688203696407190952107807121900508439709524335394303745370064807294342509672733842234012568707644382023446841194161461117204285950429584432964548100717479321927576518335063499874324794891993585871873633437289843049421807623055757176719563774743070182293566773514733850963177920339922567196794100719049175882322664897270493069937484073264996758928770766139313031338918541894495871817586465349796600533832250224042654087686073595532501286820025434765064564871820550930803738208785102723003818779521083920231340991555525411292425267274811306325743044979670769809601114392737726273344595479618971704152593969546535617616088888289059720718293210001148817864965351448551938678025903034201587352885374655570839696989326757404000161562659262644798326613387224815969872055145353529546249218927976872644438731028103473665765884702990164759750472953008748378976556331056085778976729825111445196641438923801330209795795687023609909269195470099090557785340706689967217453582609588264696044443043538070204669784685328874699131986290426844405158310954497676901232176085017305645029579421030855686774023698102065947522675677071049278084881746208384728547930403820085318342823695915388026390018375084351618428366673376139482116816645909960800431355837766283313559322560222076603810299363673313947294968179821327935081441429809103584707399614667457457544621034611291378579467184966511068256422830047810159984935522445827804916096539137889524932482245648532970930017715787711009719855412557828607302014231146466588570576292546020008569829886384441354408345769996549324032097561550416737359538466863722335413056422930109696450026810212016457270660858460468217079917276787492820363570453079666683275656496352303699261984228082201407654944505385308148993312032256819680199198815626144085774872982496675384277058693552201425031278194874934682215536277050951797348442451830926238975289540768211320381080823846888196574438546710405740647468625856185579034901202821936802233309703874768562696141745186561116485145676588409813923294599750221839934932521578258110445084083089884561193257398692444027914909166285429519625540543093228799504567023855334343041742826831144824727043264717768121597339454534567760466323883743371083189989924663012495374114097178793398156525909593141007599583024141379242256089004069241678065758049245974624393224491997572117878381559003855902980855600887417137328673307697171844565638757126741674575333749832782207557224791882625260395464790673106625700024928196736781119278300222764584296401787295509604005128144788162896093941242139238146236382816186274521990754322418330241684981860498167793413884060375149746997512793392434142983220149130633444813782826084671791366654704369673774112798513057030366441068037186881745531250159164686196479973030020509135394473642742187770283187644496145421833690538977606983532756656589328030080290331284787428166121901105861482702700086141488029501767730840091528392436486174715744413563196369541336369321416261762559193278698682274546288493898108896654444683464702651849013544000297383029323520120991430418898581268934370776001091060955777442649842508798447460558202258877526180138033326117104653354225427201089625933128030170133221502945259970952831650482413177150643736673473699456223880361581695172683669862473405507305001554131845614287208074538526372953658308864208389489899195002461571160527320041847614822909576413075207315871221484272303861864067792003597342154127774183407897586636508862733562249277103787509315051475710785998291808038481354323615601497532625503567128516773354399043622151160731437897096628828439231597264054237892052148442123957813809626785806571491556043272433142382015054034020111898836445540073689334152803933574900382997735661095626617782440238950060880952814205242192628984529152792930019068485620225558586756684694760579473231584868375590059015651265228899385121945999456916469802883218367425256791043129526585090891043969296428135749871455484273888238025518620966683469348884227127056994005053649646122825906721532059856211248618792574646604962081525617638635654701437521870434814296409776135452832623350477781543292304277574231360590418218802276941617073396890688948153557400698503760466898656413218279645573268298191352737443230051250348673949239703634460003444593978400945975959692778132346101554985893941836979120712165768772687980036477581898461972591146326390305620815786970450622521054608104194395156950372804928884103852665295393870915333145437603011882911041930586458770133043936043306262253345523732107051329555800906701584925627949546526083346888543592057774875976121489307040843609225992976613226652783469571337884359455300807832897949021707053438747489731865299826661406555960064903256187358828077854358050191158029566973067317223235031812020851098321213887559887425566407730253778507039089225924925815768676703667970601399571740520620779228256790670576645221041674416047635989128811120686106036440333005471273069897225437968728604158985253950049580278145702500007303317173969858318861245445121108079002949032779711803590470666710037627896223101555355685711934636749920022481365976549217492855514527419829967850975315768354347760426352991539214040962050419145567884982617367307051959777795218734854248260425336730360119420154971298868736114707636942054459607821707337980701702579608482642922815288017506373344061562779357639396031664529553112963826097798232817059124460373927049989097344151240256371784915959129273743965155667042156873675962039337396955622241413340041796773121560101105825149064767093165575124780249340100572828097353012794963877987051475236084970988192914302651009108362274463634606020917586848851634844347443494478161661182809174492073471899460424942168946382567610484300818902142995029710001715273732290003513263784914031339784827033075938850894813260950429497992985366471916917697898268066650163473388635695016722020731278534243866055679674354184625613962407640040299967676583631929630549066020062241490040714227550183645694850760898770293872361983163560827783446507470528320657869401871652141735505668566317679740148758950854064251936098323301246395552732351308192609204956033081265697190231502713291273055533119014984106028709544981881119818316233487219293370528347352581957910264932283557222162423335865172674514367243537077747623093955965965827693878123472776083051181550784920040094274938439564027556526942331906875179103831338906620007205096018134954137905157655602697772382099012355178773667629205110639933199355506860555915930837411402874481463563151812316148037627873879026131072696718476385956768907738683717812570991465764139236702699771520651457509357333806854828491313971757631621486410244001331661697126199991918126408516281872780221944009770124081836610247650005214703100132718130599960135464354386941397297650180501524783400683489876808271954696318720765709999973777886949138224996328335156125667903975776839824448104777976246902898488863117368307886614193828131828294948390016461228649244902748317273571206868999347097527892888835013096762628129511642090612722403506173390201085876779671134086653207385769012526448214589426577017569655220935906823621362267480347493985503606076950341228915160138906284580286527793389422690447103880067748515736696526462991785168005366456001461270559280636191051990459293223784611315792795183214752643162225163135639583399703658052914933893967143319936619928294103462639137988681701836954475565517614580422450475036395299239249571678201082441801205698921512302082921995133515499378375993829833842178530603550710463948452422768556147637710845425699561933440202582876810279867184814217849359876248241342476375184490277250017658878058857231010232789159559790225163068039629478215685850510366473828616144798442169924293639336900386965080162705129206158620459984786454700803612477321008257113559635289979971456419699500149605903782659786371395106460001835525147534860406797366936548646079821408664241202336615887728524256657222693243204343531844125968705710808298169766914802008166766130903005515226956413324755972252089228639386283326641366051687688442080390107356817663523290638401724483700446395338384312278135241205035390003170492545310712634350424342812302675908493720643546043865808187134458738326966540973530310590440384966567751347581818942052874708398132242775146988366407439022934476231351825925717569139547238863468421856995137289773286269679928364303478094665215467834026723651815713207101053638861433921753294830257109539092169639410837344730714167235708050711295449377116817577759121829652225385382485824380491728513475575688450416856148530015841505109828650082935621447212441247341052538014230065300342495669604504921802357840103034261892618120238163795375798902123472748729483844731522473790314070525737727338774974199209078986132807130861979094597004124276025721378940282544887313711329037737491195707534676861691625650466301924064707768688228015773791084261839810541608179790237358102750186093983250675647870989495246074658701674883367878247694402534838979657541852371794104351144043745554088101370049083381379006866823942298691047071556302467187092011668914578279233859499334546708030067720218888638981178653491730750607315855307946945145645919920073009703097122663901156639236631986957821280731509149342979772119186465812861894944579071472920141445706612541380718424181636027210254814465788953043127146685982630076955894326408936791683933544386446271548622579671926830041549584447130961926481425030952390489677046893063026682128424014346895619332224615864177238018972378242361504218035055551750522646179009418077684626718298761916412821230063763281430228912502184838598107501100959792551922264139315844410526504937141956445258431929621621628650995372474192296828875403591033029310209377884014830425524931139079798413755895399206692188793968809247436973241575281353906235212430608197180914665279093382666156167149818945822325170622022070297112112107241820804325753092835299562831050049578035821439072836522350584316828075839280557668528140119889193029609179536488275919939963257230433530438375355728843188215168419580721782354649016947109162335154264277854354210498178365879174938227920674666125056699204634872519477537219184286357373612107620213850110792796335438254946425678872038374059003774951339193460217270149690876665097191686932379736607326757036703292062418603958497285240667963271965915553881522667980534763675341256605193136377848144846578769467416132774838584613930528391736319308073567070734783984097275125041240276633931505918708584188318194329703785496028471479354714377546350710850692108106774011548260012419593312029692161469141012023772205425535815006876123203921951150278433234656251004315835417647807752752606847267251483999449850501165211421616223535695892575472397362086979220249552584634308577478878426623150180207203133078149942353854339354362274997159466323958174648004173740408475832841859159530770089438647976101368416288605895022439442892764583773325776446561013984312040667546625360647320051099278735904011972647510225274089315727602919670226923268087452800971587637872003037026818428651197725148990222477996454839338163301939890001229869760671410148942037156345985867886570272809909588135951982680123718913701202302773807855905945810885878223601675853404885862889553466735641108736197388486241478002998825581113438125677736409013764552760126176872756727450685118900542263643373809205431120589848167994379574708731757517145276820103721725670514284066696156733470010823434537267749224011072652370470702072061359660260811101646611844593673131465093436536582432727148679100430582429250277057231320820602814545686164118376333665965895820347264487792844510873998805180268729422866186054558307831818199705150651875011851431161498754585954379153262469764396437700732156616144818178480613834746460022977093759639479830477620732060945617276410239940644484451389124389655037508169988086684236777163623675109689830878213641408735584722227222059849251753556472514903587437512549035777451527143191746390253266805579693234798046965234274875564205001853252791169957418051780135009998006657266736253151390790088981405831336663211848640044149928724844215697362712889192475490484394294361200255717845822162883065727470783530416211416058683204255719317381358328258837608314976844788026782601867976261468323588733569415144136083976353482893583428680460209520971091582880207556711170074363325653604605660375944303992065912651216060022631585633776472459208445065680894281052478044165157708514585096816795542365133395721046460331323330526872193844155230975489820953533892911134735179805827355693226843239490875955414027376361713219359378927096615812717603389815031661370010208708186905980094061159038705819808710353529545248682401994054136819937221049147888408924085104015234651803097752779986025755106824129061869170541984088860819065644130157459680970046951055004784047244495315560554689290113084704908424537108668804499614652426085390339296259311731794475958160255940447639083733770194557640356809241543393625745935132524104930224137854891868097738438177032175302105169897852656070758269987362471985447106503804758726363966671025673362403099966952459761665765778489041746185547380430686363532695252812791203676672277787015383438573842513121538021983464736636320168003512731940805308262192844053088867390097455766651364908280178684545588704717024660636728069968036422808505132580706314023347125199265850771338224100468969166356399127922799170885392970536364883706205002111078872843013822773261719394888779500362393986232508175723375361423802974306203279179957709571480015305358353246419760296742239554751190861534612172168064765230105651291820450805322663011630590874680922262214772777832953887352515794171421470139782684326230644514800183789698558960005364295782225244171314641978095970563911329942068257482432510515794658022838285044466952981333884837609525247148310071372119586002705503392053745237357966374898062989097901595616660498585440215182659259818677161160416249511154190780056689708838672335431882577207853015786619196254667847131177669872971722025314781035966711872903698000947060701588119059856338504282235615206981272307348859779156963224580449093056642290207153935368970914005276849874244519869682938790185648064480209604336712365519882039929229338747369356249258600517232970999796837521225305239804333292195640439266171135743852104806245889227892060432029508294823390787289492485778296689235347303587042269583326770448443923465737316208276942191549066098721988216122971074827919933964957681232279850047401188018032794973592779638359276165258240941278275456021342589026371058614841884964137430622680627228695488008135042566058956432041311587982878330857724905825033185643849767744121480203267767240880501041725296533450490158085637199776195427221708542500432815507512538043833095104353521315159952031097303418315454940808315020415400444207367247529090869066061569435274141375948751069523694540805265337936548598540862941787444192752594427318329697270882332201566582587196871190746881422233096289624400428928907339163178679748964825574885892955895017652223986445606411282152962774468343854915826106619036532154247407631633597349240165203154369532267757661308060706254427380784320066875066739552613606123669642129936501597689770963576661281425684485120145850374219549345201156957070426109784406546706399566826164482169421450542930435467991154872141440362859663175927879230522750641302909989633234419442094442854543168303403403876682381670774431548550927601312901734648834239222529598474887542938324798884749515491131724042956693950834178267458422995689814098635619660723264136643539650009353023545494932376605914398886385338924902927029587640167743042813677862587926513609196245449261494794658130650005288501588763607933503915344250683345527511937719932781279927638791030857666565542348949204324156734479766079464954022429425078933608237608144152409375272173906629025513445720826481495567928471217991461303887297681011490225341490933265066448563594781661889614216766406199509490978828607854358149994399434012061642851829509182523150250271406781604742837646882511317758769891999750849264914887424258933065204698474344026261366145482007698243779163758578884205841500468029759145219117155351359527234618285461382674877460928902573223894390480515700646686398731598929990974343754156970814160444456060394188172204097938072036382107786315800347904406928157430099508495030862443889375986523040201819080579873474814143109339722622709307738693951360686906760214619120655396970347846968094000749267094464113187727458468494785622314080034476903623820726613618623443185066143882820594870204519399112030241904809311968655216424727963117462517057450856710586243685518332313335375181107937816642324411303349371840959444251389560042670015802716156358128892114092025245809970050247438040384879277978606943094063503155269508986169022729319258510986015902352782161381633556131534509443776812011023193631607534207929344990708540343956501584998773754714150053575324203839646795249896425078424100489417792406502323604217608695765051100919144406578524078633840087705988637380283185998746643196003985347659112843832263943627263163888421051540589177220728717492094331784869675827421644261277032203368366333447359979925147715193904640039675168201676547626840239329811700218310465147074428962734586906017977015902886029141171310028189886438659399679818022974634582010310384900523467885049604982866532810165515385224505245218166821266272273928558878184143887375653794986300869829586149786184252437819254005522852900375531613804842784339471134762137391348673624881044794922349676909202378612700008598378467577216293699789951459386872911953560867841601577007401578612638886172817344004485333043731633179081777697891506457767198129881039703694048194266882795579705763507293338072034067003786941138370366127255035633682020839902691351581600277859247181018735775713439622708148245649029354963064459250911733624452565154691957379756662601588776464415986645167360341026894942548368783150636058806811262945427469971365283949356424597251974030391256261832389598280038006254529058121417940249402595458651594424794848616540438797271194935496313579332505671999227555027975718208031726045715267587079381360423959218997371295367821496497441733451356921676498977626094600466488531533926570551568782098316442617401880008526468551396429056808472446011893322382832624549726340177043208650290816688214175457388637936975865751111092490886086761068337603572769344897809316626946353870912764245514512982934334310131418921001746627445722110810380279932495678818867176115167973316426343938432819155888093506209706283723740096679606379409796830676862683225761080982718685579026658067384891105574222115218829754914062788182939933133768167273840895367958400211648696669399664730811730846436584229287751299483524746591529235755189514245119605489944660101402270115268979362087159485511808891985888988660995839830459490178964224902672688765319010642093018380342069661930249736676993874476988098776333966169506771042106640634672246839833660243409648389782836668281205437241218423742875327387838899029660500859509998302920293532026303141625736146802726241609013991942713348153060238102796384931945284185722071377182691957632474890512068466227393936461365778507113501037555973581572912868101096437909915491250056971387115770384570461839472778867163067866826754352159303268851020749714124051749189105492277857562604634429123097190806381579764457242262076922423429278109301889029025275303897248095695536770813477738858590295505742332337867827513077252165777337165839908430187075416622187293686280354762826611766847149545735073182463961519269190886759348584512697891206764802956059831931627023016370313517741467943532211337093718908250713614323153285031102203118497027138155539918639253012985940869807283159906421824917205259894282042982696657247272382075463353339046933323376886107744881838074247757994787664696559422817417708446949201560277264678407531932019490557396193408934726710574175597994626636672328885235636947200603635377763460916989055273320407404802077525056858532580532898774484319980887858296896048345679828676112176242354636112490005309159092815698578065694162172741250905568898654412604828366268283127230360413562576164390427563587252050185938440010570997515228050221728971191689871998749562097847238292319540461385097846095891983508560355408509450476840628654912881722536698596944747092165617783733123943586296735729062488045317044304794461075649401489803546142695227347719144739341211395596189240129684076993649121496379311494025121642508815004688954435885982854289015285096099077157475534135996651479720544547479384953822845840765095685401731932185356797513708354816970574415851377925514488026240883881761273522610753666203678698737356473132429802885744275164506532263129849075169519147790890710833478383088755698672789522727908433444169276127764272079408632382738502216785283280505355588404542357698151249667886295022741962011650717756283220920476684432467662554018813016179753634612149923606074715139915272650392614684637404389520268087148015484100730026066108955948659701592414109278052004557482656535669720929759009975599120208011708968576230739404732465354072195012660859257194981892289936926939039371598331392998919138921084878084514577213283771772252251729242089485076709832444666597034956742401911033124172007885690489301725106792383978836864300130682589251250157450918071872831181263196700763316583647837714130251176443997157911034265439212854750908414407178913605123304999823531467454608875183934294739049340398556585743106996045061966634412086740717418441761760960074467473880291469289993500762560824978788454068738117354743438407628293007019189766474037337354174241926163544597827352486750983718312643796511555729333883165872135529201949972565657864330503799509039686753353236666486220555025233921789829041645796066826990073443152036304811790554544641337359771784114128769723766094591540323645748332013416545397847266184289126621541506593955994291564144063314943603264255313799319141903396029545074618128690582686895461709668920617318475512164667837674696759130018448523806448867298386019072103536005955731095892752624366204168079766389215428878436752132434781584957197005827476024125133653456484289220570185216975253184318958075218116717971329841646804903417861719315386532345323232470786007515462018825964974164333880093744038698182462258060042854415818125057322276810137572780827460418088038622308748894080326370674401283749925011217032873871451932572929075029693577781479887797516898496583278508483185961336867157183281278999239658718033784198212030359542010053092230916061817700467644208139001032535926297898041332575261715001311961652530687070607081285040331519024430135355860866372456318250975978805115039333305426481443310694573377391258096087353786965552733580146723338780239500519453829441825899442965561014560571099565533606850756527619525997073906359633269333887550976598415117713934981428341148279966294078885656101116988977359414053353673526079783448015734773129649465974696593838247983686264698471326071543755750170025116738594097955510399367914094171311587805458088491045623916553475586600170877577759323966060745546289219335979796573162775192693057359047536227984575431566713652924479690412116495947974185845286927577586246021997785867063958706647105350836890552966016597395414934167959169710022766338002255481559934055689532744685070735663534944547613352439734865828314333830164031267936524459893062988555873710849673099544309897888848673803306958114952440082031572679212190757330900133197462609258714575887063214823851816969828439542622338188627536247445481159436083885054099418117672921611978483112572528184481365926246477908103025833979243311936807526655823227945497239057333067284175975828822575932212876219041474336702109867591526640733043050632906115812138823852831085293757068234361379263764753159695175862961756419863780352518033853816788972236999408686016618744153288721807644768454282537260264296247361793558835478801984345265635935728240344726608774974674800744527725447106936878492127220238054505628017852676282475715332112958527108221941752041016249238118443031117619453786892303894700236378883264658137930098385798206152581235315531940434121520235716537618695791792767855278194903288119163721963037093502472758494273061024438344513613039091387779335653662358395707182391341233251242601127518683550735844488090800749985018922588920838914151707143525468416057965211367630772155007925347563560743786158669043681953081873446108177633393271939530745712914678977345010527755347341133626803157535014089834249751193296053813187588914048045951409625710424685605181531814492818461516652982639659575314716314573845851069375178275904951163491585483639331089974062519923872598532578097952096551348143902920782505110710971940137649753149390425641469707972861552635928503749593724230034941325440231373941544063976408079660952075474339019119613759152527318026461759828541482929323106362994223857342785442257598731594013157224311941265925060798122842188019972411607997571312738621766417886011159536076384539667763619759216275931366879439716513109198453986013781132606936549151411403563962771489005804106964494251117362838138936435279614122167940650715443409699257328934659192482432875271856296237495285855849254674209722788127445691312665489050601509923476875043608441172281653773079610385318512753708204177318094280908403363682071365673205048421214885166482529696185810102159635960686083974458646790734606456667529719296486913998895551790298088308022872151328440091379205181420759672081535722312484244794097603239144287713574343212463403137301879819210590239196995221129841480969299934186260647651907755742447795538443298289059738190790306814927767725093015929622824734334941071212313525859107100112440747810149637432961201560186218436228497725279036669707767601623242758301342075596207060744902209151658216520643153654510809461083671870748723525827899781995302803446925269822979285350635639169394223580241329875305809787363755615378881405424284587171101316112082858680554630222754731138078975145072490600091358825134561788340354915504082317957984498519020386407564583356268665843589090080316230364081462134948570454579875905901771703919661901169132690502627512123263394539164907591477103360441494002498736651163425024697934635593311482509197775873898060970963815941396572937316415752656355310692334664122587137312279127880905125090686258648349527940692641253166899561636774927670918461053126261305686333007501232798014310083055942840245279339053537452310457671237510543757063669704708962194289274827403746605890099934238372787825171520652988424190551082628241543970203398087216778414375310656609035145624960721509499781408980007730499591175587413777328466251296931290801425413815646658599146630714970535599226554838926726563059677596533106853939613340552089981910801526394704982699742992336502700143359162173855980955175853739715940415124690818628939781709441392105530001368646284843502153514401929270294918018450692338919166460096766351282993018296045792532460061843418566773311045285295802119389789822803906368510441406601069620266744721659296788473433860837277225520564938776088759150358141568435218795386010811072194023562961141913460657810052374576134459817611698668687315484738957601038177429398220347119149957882657679553441961441559686564714985352907237804539230739010059782232957986723149507706840521591479982650958568259795390479060387865802958773243399073340561959992889161370763473632047142156024741948333838700160213255163201830509642490776119340250330209060745594334470593624608852194563929006149334281079100717601958651387198791403447776168609851351136229997063357842090897735537751017778234182499691690634833643356301051298555991116324123611633364810886085606017762305828369711631124982195833772710471370231522920875943077598167780026603293138134691851086612574039480301768784070862628732257682488361030650568606847913231921595188325808864938017293248155780168728275430839432357351652072336567575137920580020171103659724859734879249525866133043942774255129733982698567094721266433977456013648733279163419833389460882385965558643687390825648648266548254990271196623227198764865109223717782632355621902733170464162759716976321076808014366122857437729152811282716319166410154468216377615787824257032917784948471225589088191796296208950973698846732151451966759077170228373234357135959035792601282709419848893751881311879710176539304299580146406507430837246650185151532487345597823892618250112066612482010988366922080626182975524800003098941497433613306879019378935379529684348586355267117921191114443350880011552580734844759853093986433638720621850045284400262029853360882799210017842417878935307282620349550117862294690419595402106956290630109768647221038628803341272050971881079417587455272226685269190394524453806441608755531990453899064860352817438097255832891688416805635388042260795417764322689036268117460862657609557656375553883154158832173572565103762704206549584965350836119333689093689052899639620423527267276074100462397823249152373557908963514516157804911077930064821492910263118644504870576471039719571704628977582301944363446351020685458161419937248005667828684289465874227209365127410826095102652552409840678866204263102927655649678692470628513149579499694632053757219374858718389941621107965933273513509358218333267375857907716800882197464194847782337594497142921856515031271690849102128470647548191136060076230442907954614460877118911585714458117362100089310906164721786651553311326173016156219534011523006989089101730622473529679336235677383806877844560310798921027891269299039590085281556208713359276152421249071364376022484482799936776861713289780427027765630658737269570060922684125076744083141765731669814659383743128083422433152542800168192966267532020261353409311535675836719645769835508577595820014609926507356612083413621244532118603488203791125361309331646967999893034271791660795521175060378648585618861099929639925231964005005267651165591608401258928771889700916253165036775602415163124606432415112711627791827201707257737293778311933974122537943536955509877851032116492792603936210813036165948854756465505274257433593480495225724801100328110206529529455098452558853204334188848841326604413789622952992269226435281042946229046821346362411595768522776245391581960581303876550733636620495595085395611595575611213401284722530118295331289450162282873873463288187285616215442090621156125464739175946409291410865179194541014653010004147982519900117334148017977970799923538546845217477389989082528783167543849360192402299442400723099402983498381959202145072828139314945569354713576316005408824301927932049025032420696985673823435548961864491197157406249284736648522328054637332887146579409876783957159132033572556504297489226628657740669816222783716649257398221700417456028902116203012684944206642503766578230366878184761470096982427474395844026838847204726604736948117462423613867713399718907588156049173576365411276211773197817202787770178116066833382349934252079656099970394041972860683702702157074051901628044915415205119150958146701066042013478021825688023653327094778384936861893083630579815779469925004710599350504257064238616198021743916703398821061948726118436954755852243889226699939648042973473173906985387479764441124366014459396827789870985819547622039518388801662528565971194342146793086075720599898504588844622817615829348310497209584393656662169922819200827934322520520772809812462992202804553393221481273561079516073555912228669663547955165986874480998175933721146558211316382693423615150664395148441148184568752819561232268546382986734115119503831974567266930018350300912582249759000257214169325428450106984487071487777823085173592839516643557429453054541700519556101030009911982520205662750402392890858848323898905623919661532831558148933233450528650357853932428814361302801733625471418609917488058049784687418542033171461890924158152060022228502158208995382932200876776251876465420424962663541386294808289005064645683840181018760977308974680933490152724071880105561104542187375244420987350952468452871291179597463227969671088525363755915629294552590045343500471739185424536253553358206371359592227096611550986544886700445369212402708396593724019451371035933701761213604671317964375076445967302185344105874130412634443829391319912556343878913828827997148716733462818118722222615333044006269071456401261210475262631612011646364314369261200794625868435760559116951924465898452238233301079697286975231000263697712811799915881810885764894886119207609773091815911275132114276093553369757305359698377499121686703514663207926922674567580351457618090859066237265189908638292430808117108273655933119876926957625273131117875543764984486601398143076906847590393103054734441738855499540999231150899987895240415634193594774886291922101647420870455437391282872965173979686409813853521826440727572275585546264294462215067049231019074300223478679665767664528999069587762028943410255838571446959382417501133957778922925927203387134261690306370231362397889902021242860898649997637753723728823579788734973623148175783177184343938392990192453867870146297503995853562119777776380038246407867427468788339160927334160369592164144420948494868875105108695645286837992789670518829360513417317003330220697242053029985945657315281707980746634511044666316741627033675318379139435149390865772598319730637594255017746229888330546865451609467895263642752607780716199055480394760055770400656837928429776798035876701287797122799252240089962561861389704615150253715558470957954125092037442298198250284251267888491998307740890880435089182359936840578007727740772804060326779208637775229706269951869905590346675235397873251013982816814907896946670019139650804635714603830708166690947890340596308699274983221155987544757328357750769085653637465990890883792350111334775591484434016109244304472755191081930323311170049815492873960759834917081357457459292232179438102899795396322497961844414552482791719533569051402612638069363471161513024205409637433217169635532432880998034781222911901100270208643376074052141647480318914668768820020657261149670483034613113219755204605991185776411019981031697340259922607876742652996549522556637098407133315357520830086308939458395706274339129380318507832093492455905176658473009247204003897672203594195123421894039490000002270564517479316899729554208013776369784454642770159339720211623992017163135254195386908984442498802319388878313638623378890035893555722079153970894187770510783766295639940765088135573908973483780791401649413896784495163375085056922986406718667172056896972429513973013436409001225321725144204723379015060707407144209140602021886305212036461560467848742643562367640853453835610744631256543316883260341905324261776312214301784084199413998966184266439050500191220894157706122989388931649690013550664740301279788422002776950898987317682308972530957010387996746148600059391488296402280550047912403706974572607668541414159414141987038023907655514768010786002201220107510864922952328446131272045825941377279034689780502140880279631758629137284437483483914380081711222931101028435734586384361612295435968283263413008754824961074257150300300188973382139987458455628919381705750172669252968544962804536941432174541509315959352614856495542927440487117139602453523768506683295976557591604512103161560516634849429759122540360117159293032881971935132899575905473143855638911796875039875000738035102054645541266653267084576863465722462016471689437819999343324350802696296984049842931222306784340750995569716210585638350100017895335432313032992864430975275062329082283789228398669792143848382716507155977901770457743928671929902039620128668711252093107398450968251337978196243061403531326516334304674761061789438225909637277515443052651320337430459565124492590086624427594384141618764415973398613686182564343859258566578345642481922659693035261809528661289239119945275882183755652910506506397653957771156629601490207604252342512736247055077729429098189321709891515047408082192708460135578985644968612972556292932277551081021141467127306068463113209553532856925414562743868620415215111329744500196737260974200965695743814878498895536673808672418794238666497936075789818605496117513763910407608667739616298638670075856402208438579963722340706764606110200993876375872963073471328218591015243730205057340913935297087760092441756150032072824424670514005784336781490756097305428322874516835345611623756167540225175281717862714536403858380737938793403753141624221097837678446853575874773082106329819041241651301808189046091729214043270228315551459417382208976254328911744719662591547616297262969848917345430518754865605189659294023750450283144726544047852303583293755329640027881979726738819700252204346662969895063483127632696777627174999001564665278058491973549922484523035704563159709853527320489343109389419966828321906330850149163801896921002025899493230886794317613671999010772876294829244782653967615942502989704414346327625667705237985279647493516507874979716033663464130848198008996080836460296167733460995525436043870192334622900040491031050926951128672762898944255617688609620891008746185980379950997690464663785440923973795709702760941159464959484305749294847062097679674750043106474879548877318780285925227432238388199187602495886824768568208831263503188594718266197177588308861145985169051817464475599197730419393117918003365160659908584592045656114557718321525792249700008324111649365536513276696345989736627356534060978944882930051047384590275841238416968948261932598103109369766382135349742651930035166038241851531793249367364490832711111041942950586009558304113948327414353729574989627974144363571690072271825987362921084920937844484474441864241524043712521566634645956716468231087762230508497078446803693241421584560237616145796083221326084579455064312217734919111235746790299766429208886765378624337804053758660664384783691447310591562462750209912437580788002640104816345052899146611250778762933525797868752391646553245516248811628137283364057287014553776579105650684148062206215659567199067763212567682750950930263402807626053374788802186149144862265271353650796325792338831363634634149556409782114101165247050302508125938607719483390456392667761258923242481484606039231351067133538664423985698713770095967146216369738066559422374479438676964434561572977895706478510386076939560837789723805765388912118775483069681123623030645294067948505226469464305935087830023486640665655332208204558525183153391782568302942158338719069910570167482278080149719713268314741791222335680163015911883227133105020868578309771737032547548593622630770794375812969225670343234177973538422223802310028585431416673225399566405821898357950811374558975478602117530926692927122304462809094543082848379071846711601362492757189583974513617776178536464862597823985045090010349594276563061305548471124216377597857289236319444348782597819796668423781311074239532354375757874971775304543806467410991477931711957760506948477616961200136146822827682635311139481452572910681097828048064768554218302475015313884194893358096643378310369844982601778696277712020498278842400312817890525295857103025360029893322283504387492226545516927624914213173289219307450620494038450852650049144880285325020592286893569579000605471101765514044299724524447938100922450894083513113812468213985203657661518073509786453013602276189071667881046413346812535869755526741998507462728895622163163685655976562352821999720088296454970876150177812519538861487305083690609825451553696089851901622654128817900988961861383539056945544098195847558099809135430238637143393108944786870213536361429325264132056466767606260592314842250704426332392554480945487876349760090801882053539155351140719881008969284922685170482721338988141917312841710881935813862716485730783287852787959595982709651336301375262455291255398910865982552652880314569242026468292538660254018998042965728951867619226143450363323000090322820753713851514426494540465727665461148408707755645086688104905458316149444834598896841154202815675419056406414501030755982510720138893526610935066943118391928644874760293041083599090946959249340981454224527373227867198186571790614083003613131019212902331313710928323287833860633606955193319705925355918158944037582956298554718810420210515047830073281223926347315152782182625872696926086097933021333005290140365753685150132941114049325605453757177044386651447230722953413328112732913986854837315292452123481575627674943101268744595381781358105481773153036584026166575380489302434965921743914785808786936178010497512095511894863939059198099650774871005750313359252537335688567389231843812972200232045854696519846781857522695928339314173283421752401959051196554090545208068313725390167781310765336408713942850957101959138640969703352990150330753869987293000746129532444808652640518565887436658481831861513964507076366295727630862435147815191517903729135358855026330073421899846596157384198425866501291520633223721988226591152014615086327037249155035972455976217918137961241704151262032985720665275053928702235270759758844282937939764981782620854431491223511132087622487850156046468302362192572140933528678631660321441538246453378592625578341855844061725735535556147750083914560764167401412365172254212444796525926137064053991084858553043798053865405582301385551653965611539910220376554747062710255093444285757860632444276585707564624223164463842310507769103675685384589830067989359028324268467646074028766715399823160720946392043239393769119632666077457291622656539446553354038510412011162145575898104501585421803450633672626551687490555435130032038055161522568971861382997223735821836120460054196814054174988839371221380708176663552154841904041130047494780505347449939760727277346158886774669378696294109117650250253009763394631630650767035110833773296951321393136924679808055724139879126094927366190434440325564450768152827068248129769807409721890798528076624249144223173259671638598675604688716849024229337700184237243611269902785934661946218491074190766976898606905199986273015804777830091532305161459527178621196516228394679825027315253911107523204123577764558622078356158652096046398978541130766261600171187146246704517731471034875238056281532740235683125134337396666324227748588652153701342008953173200578175711265178313284516205256244604885571851680907516871123224915681532249433395773755868547010411683463567652524860144055334113762772144193225850918326215119630598539521827818372247486486190228213593546438321142072962551113564526762382414668977364607541169411344709738114109231100969608825717776971965581401422253133050873469443382198990150950449492261958855152585535329840736586703165178808409557654229029943096881572867491037328167565147580816837830974463138071572215482341867427102961131300387897201326241042488836695806341583921822478649161067433137424835566568403018286680957848671931875526751910226712333364831168422990434364959086294867549644901011436554915354401283524946188817009978653548529329631914096431707594003275838484721596381826216957173852120527568231429580231576387196103036004194856984253279179293816891307116677419040578539105494630001495133913182641368244956229249933259465257675645997471405647755997304522292999149471006576702143112808575395634519157773614124854304295076274241491311212320040539561951733179256326585425969433007180344149993537866811739962466532822100038418550930060058358680794792608742994840330354696014469951821127625838479463416040210106619025049812246900651048352928228717530746397881382533971675702808216564679984399835058145461170198098865652738953090432928118637850595548911296010415892697449240484732580036276936591604440753482204394182002190507675255464302698599184219296846872925865070234635207576927539952172140343963099743453229124825310639881555557071736525602633615664155670084618046713936558113187492274363990954419141140218860960795608468988386312440531451065365519906234418239563506799956234687482400964572870403393370689652147616085341077412572899307374408185820468009710117205547090156564078782458955538855890872514552733069370387405976880249019446154517352051650236532029605657208403034230034099438311117441184317908272935364936158989792883456884792322307088218372072051486086660503923801734335350257764644357676800742339597456329233579754064047042198082270907156162598596676195912132996431100125661408720788853231354518895716025012753673965410858614964589997398307531436002180046823424926848800453729444255734023625872755327821289040051517383504693730772533129031211792178283604297963893322232350492391995786743796817066461741164788570057599838022472067029625114633824475047054613141840068836159373649487517781984005586094500307106942947319460136471901522153319880772498505235830914338498627702163079103471527537577031219711551462355495792692838917842136923222033821483009660290874740488184824987648542070811412346958646567696915525546140348515361989234458731833957516929887764634532338243865524384744793571521833442307514892717993841057314918702488140511728302676068612497446593745325549153201711020522194273595109124023272579941512770884024645540922017550640945177339847197580032106916717180046701120994681289126784022663730186178704934403236170481855244306071496706952784829876397146176708655551398872930466617815172424086776667609205106958551897778481148115615210464162014058380559556532989857710308730611524070973436273002167288662294955105654847835515061079764890339771619697524951606489033207719851886612928448534315886374483963811802985099625071205696738643541885973820728618404338687039918046073024969263631226845964696273899518976054148649001626514083523490795373440941582620469174043110449652433771618912119442114666362935324304388319481952752820454775522352632923569637242242569918960170391677781374802851794261701323736973708427581001304510140133379451875469389277019659565830231089723050000928227898148877595335638898914187805166225949412061557357804297157226223879700828874136156584469535218259682644434225518120318692423745482370618829295896971537321618832102527163842524564264057201024213671948258148332484896112252619612117504750120735844446874134248487234460017572383266629923831080226592763646150470955823538632275377511312253779935730701196796137182676234888237176522997364284778942172138584999045109665429159968410053169950677659323347529312804030253055277550563803056505310641629722380285847042831277988827113879593023401749331572509208388524352256229999764694022865861281526443988622462126405536700044881348462152485815121642727501360361995933861047768563823836798640298649167556455653353771639248929567602465237094647876047247837170055214520234800727527076675333114874767925880868322932239239700203198074741164205030778430912468562098441833450734380671661067261252542958213575338557156662677445539914946078304534776583057023929390890794621120869685896634010742534995014949419667642928566663593038141963700592439576836826018891505322432881606278944817946579632314134921743980404168815673699377618215880834594328983822575914944415009975472374579874965990854176937359533917692573680289714946768232664334203215623385430197138015970968433579023394141417043375154652118047763060138682360260852414242261529473691903250676379364477438796601816068608034338796212789126722685789714729701266331032145391233330318695831395142264751228775186594533096908419626557928988084899333275840680274553325184611040439868270216885105656342200071600614674190103862311304051276857541603194553894526313602073624871630741083951869296247230022772717172453973510942120916782002347271853155968977301130665326296957384440014304515701968144657413484783284925820954612504724244669294215778909236592285543985933821672046000764288320078195100160861114889588673442177649448299030044830556246647086463952203253812219311257273493711635770406563473067745002468076219192286283537529125093274916945915195710935065582324552455437692102974348538180256370074707566727244739821051021972043386918109808918360365145487133866137128884611941034394768294171736150004460400354656936921594190288887178542407715455567794555414113065482294042558536920015727414288718562360085621051245996361229273885553908472035109726168477637418914951477893710514710393538452992387310464241271233933692813720054202303802763932592025320838732491857943202354637447417915485686245918325535854622872475720882159645309400200080694161261208282919594258655655140646228185721200017314200791759194857246344118265143385808797090383911589319350502979427468366265164272841783501856991827231381813313720514170568807859918972930298317349260546300797195732497370453132664490886580092669606449386148513296883757636619778995254092777871135885254673363835927970382142101486657148363007392605488409059344760462538729139122710314746312805416088344122843445662897026020187852536018044881173671202194744139229882705932455204933713507278529347117617328462638325658142825997655469799074564117866005888896596169005146766603481320787023361293227461122200995650812814364759715723724759862935818186216205428301184373729489831900352505539783206171481748349156488418101672240630284961632387768493946158675609727148454808482269092849393715115273466843165913837162062916734001763621717919316990445240275288500669124598309764229993965369360093801862459424831798678283852335247167534558482696862306337711247206621029943762829722434564475540699053276190295946013534498180435886439200398062826550849109661056686051323513868595807740124724823666727356790391540691063206199294103016926140437519407120571601133077598899787004810219010252524316968385324335294291870801678565906304737736924201118644372721578463982836833954298872402600936480193616226487925788514327513179963779363156054515165470014191103532820628547623747135439703825967624944320059556048165891288797375049177403792058631566099164112671804920338290388845433792430910923470859694605140903989106485982842247436468326775264918968779223806259713240156325314219548561615610862488265327245515114418130484397004545115587588766031313001602051663882239181659367599675964406418397999750473105282782805844282324950968210289098418323981455303866508690166712587439427413140764143832028672183596734769555461297229436275898162914977812177105984399028527320588885006345347705524114947949183043490050431229091361480531519446110895078714065994317097232386144339270623617593003432185446369076151879902431504731192067121858994898817005713870901937370272434630878557281631815004426418280947476990532317139740080249406927063444501251891693434453917145565971788623007641069076826379412021906871279721719546620268254885704472247232861556439614829208133167797463977279389779114235113854557943830957034910523381138746231774619668254219493794185249062369453789543091488772227156181589805174918293406012359980174189976352052085992330706164801201543517018992708933050051073808691142306076225908457391356058718050957255046280537127524472041795846335313220063962565574268290559782115739857913777179566131290118049533235441593856845421699810919035731973912774928017359391984026916138694179207848449321204490578644094546432031939331936043696147178546046477097755750413088291179255063360139247986650439186342317792471662704842976808754535079961713340074564541138692707209737321398895750954769687889774085970565417915870528294053797108025339424755938640567233107069622900384073137414458301387887960008264753496626378264923949220953659788289481517222019982221601863611296164665567463025206519789370823602690706829746593012944617755761115512000928352105631022765364576390690430417814540125459963456701389631813598222477389380559200084110102719900043993722020198717526746767063607625820953413232425041581637129646441622035082057147897117055036651111892323740567995931191705203707347820733327502631274563058424049276273715518939876544376533079062081157329817815404905323325362379284833833247592905345793305255191919429714469459731417097876871271148864254455954043541405617956551241280149180205584237555840788075038634820295731896826382787013945090714914644731464565333828095651658315159751232207671712284779986503030729175292655167221165757914865813744611750073800137498490807235790326740500975586166842015956656133639132605852362309867267690081157761392776952454110949878632985240968842132753135679885065762807920201465798615296857121862432871944806492483553790856944244625135922587151115426209145827873216164871446593937165809236610956822095096068401053048438385291401569553667714284855315501261899240866719669577180770970904467374452667536067352523962541866454106673416153743393485200472175567277461797304370118837259782345162136431851484625571187560051396154149349717021389999773503868367363309062446128789759969973343478114262490040464269058883713286481465927736628621938396351852398790396064384707599216540575818076058628289057576545002058867054821756486060347793334779155082857026788389902393715253878124445759987849010766450331953412811339832589645668940242660939034680839743218617336957270921171699324087084851774427397741185788448410017340315648565439586879079722474675565326697014736887641715383124340591939124200545424430871912820617085468820155973812426151968654162567244367913101293988833672231493220257637630489984515349893686079913311555123086894364757549498591576594766892649308152333828533535833379189623066348868626109681305837750332910514770087847366494502181453545249106140640460587678541318075072407042201809277688149564257524178869076062833521368186328310201212249670420724798878126700607876612004821656606647258433977323826916336730006423548717192108480169410786834945664317191328523306814570503520092694320364054769275501594554237983227974490835659171082137848495755462362936886977114880868325981012983765970313638154375158116375896751536742060194648379482004242742304013935771785670600896453671221833817420363108510419506477297284465665596619098296171455231388483707020237271586290518082491464116583519743290954611048044306175118513822586451954482316643759865604156654127743741203160089025980104039001685513827683976323791363855941947852985215284169188493664839200330214666896921174334000832918316522180778343857682776119248168917192333823926921732148944618663296035198390505780041068585514279676162813243044806292334243240789218104314939265067470294013859856684232903083034947995607229595910067447008344520218530808432961419468855699135319208375705309486358631214353252858037064483702557106327751268809724306803214029820169105478170514047205044884462416013532780226862283668929899440206971147937239237707247136861363018150287321517296132811086459269437528363638149381218636031691232703313927535530068436819021375152630471566588262637225774085878044197731930718777260937859474762354242373226506937211543505598313300622815438534659671474749553077919232115484118802548323132527738875616218995711230216960516031174515939888354573194887712447864594913631339976642471517453338921548678367661541353571716181637577101637733864479579987627199191098732958828694399039665373565241412715743166884869415736067559024171340207466843563873602297044515716497932962419939375867871690266874263772034584462963571491321987413889849054689069600797674724549941042676474225858148611073045818426491966903465247023240436208361050586001988633535708484740376011480068038648884018650874049499966921849636837410594217101939947585450575162154742819854882824425395376297125919762039140675499805325386613151061898104872678404293351717575400816197150963955546065944238375813650054547901249829799806139143179571824129213317943103557683900407883245622635451339832469313271460027997532419129960599245577947434969582115788496324457203698037413502636690768178179703818009216512164462949779518021962328298705382820077871569431150265780473029835964587316537397995983355680069521792104041632365719133120113080004993368205719905754285755958848550661405954325059172316061628683856047055602308055577076824773249898960390276947760339971435172457311938386611246524175382891951589617213567022446451372797624423098825388184911138267466663092780222442381384634368866207856127643080859389890592975211997097347496645236275968682444919718485388020725150573433936126669242651195761975886949863774771348641754174359255922554559981450574117062658048589845902653447096321538657610404272384485153596814940193148996848602553395652002212802672182198940536875297598738849791880436649874248167682311818894767416615627241988380562989683931673092751538038829975120531732195558115915730746865604023537179825450950526467258762460786995932673427762234073857953345195590504491738174237005433110445677259560053270198832197229964586693409109692119786863394873372383813342389826783057535255047726603692896539734979941885670109834388079727148022570649504831479270523510695427085270296647373229062062373244237168266136857757980862718073419797075565489580429561212082775820260324188546531164597327727900172400500787547106193863967714141424121711761907760178327467526396895287555430242745809027980655837297999895623266385092170143787284311315137967275131862220488646018362311096836390531516826199782115377745354931084348919980144481060178991082453358879261579153038354176261425533650310614897616489809264475538816277853235549670019333381629327076729748935617543073359375889014686407508480266681421351721499355669274332977893147489829008193464463923508621286285843350009493072751305662628034313601039210269460058180869950562824518725828579680517287413251920752943844197822363850074291850754206124993252803177481116748873083988133749624824383843122298388212571064269365366713360007521317861553768012515677065490074607304571807136260372343416444490050826996627127514759145289162124328878108859378112462153810978281915980008735399493926865079168783371334154592020015109516905685277871062524110778074282720057111092604993358181795593841093276787988312110063939667608203168876467241980088237533120697046439755768158357671452215188359243119634197896918385740947620939859803306827281551837083063221448902367546056897824362512572438678975659291148031899625679534736005301993094381768252051930909432784189854509696805131708373280890831971438310078192640435713206726857297607213804393862578990219288964991483718678454559999772073538801884322852044645067473943079565531825968261270561044792521285971068117156559001536614228850574728427163805041401023934965604710027555103075002268215773091541251169880109488986720488867321370415140147771759148506757800830172624467856513510972138931938650166207606948886533147347047737717557753774283789844510765007130023205924441411863385765233868073699150858847799517649578314764131031342596371989422695565594696719643880370844803111728284501607168583805533281577602338459297536138182623379871991858463567016339271698985574674757903247031428351428199909423497421197215986728149504273124689552078529788771786443037894013414828474847727070727658142430942852710574291086240540801853013868493147086592780994399880413459258551678862160221976950865316431910535372836330894066086274344640227555381771925082619483324760220891031593792129382724895424648385833327448209884474050013169085488188102939718841096103066476795764508892314933606527449920362139561226022959512543080098742991154133511378592707894659060487678680439730117479279269299275458467699925793594350953602136230571081386584180645694635985602054719925353318367847447526726428726210125421613125824334771655140946322485780891878894387743072660691354282639744596116293539394045313584797659155091080767871995755114856898942738680768269640008133512728664729139398605454149868590980035094074454639963335732738131698971889487379823169478190927895375617190046583850708850031215554660372658319259282592226402784671424615850719480341999112897223564154332858691631870095552464669062197519495284279164104643390184053915914149100305965218875664374189121576308272168427285581315245748266273192651629379186415541996704812314363543036008821918615998877595098206754551052296565841327027246711343425470770126022640323527340029435395554675559578442492830977990929202175196067167042750986591256092318481449083252612527249174311000884363900208510611430866740749399718300802120024339208021898125797491455364097231005713975836653949693406022073782961001563885935017645415050378075910342167407235376391626256413886556828959458265060826194749360499247817529733466707241039235945888242328329723683585295558223092344590844484492811363000277249501905346398100844475062589565924552735127326093429786397425133368264406117863308030310697905067233819591030093851943045521069632706453952273980156923159425941622112588689567103526246849999297331041290685434144820087968046370392751181776754193641650795207353880626207168216266381674181161732421302280294925119422426129297458936870014004350828156904761665236805485516542712832232137448572293894932854418145828856147981040151365224155340186840753696766390630535568480604131956079312343506964538579085013137660510652733808486699742736101823766909362329033495950945425241175686025218738050939809439921549132919667751831054952649806267247119663492387232288242657101141013508741714508193303623783362808762194032211424016488706586296543337056211599206051296004527800302351858235841603275838863390678550658601391196942000272748575654585992748202208202556013167743695609008237943552196762095913475165327506551105183357751294374946001037477116837698275140243082337550746128768686072665883026064373867594082404904088639455035994686948462844840880915121946802529668435437719224367546859846235867656120063647707480806321732713052752581857972469936267673239020736688490043193898329483600734857935972424018379900501837960425353329390208288532452364175374948962024761978406551302050606737462529240462334629888020760092444188537090919877526635754412466630097028795163767976532766658214116522234122266816593946158181783204684319566135289533518560679455748347274699617082481087612409579871322816352906825413854670871674295215988514590007110577946622166747767150199411554287142671765385515363240573463331916987789417167710654128252176461975092439362705574083554444577998832995266164551024852149805576411607897917592365063538462474924778048933461884330394593247910362521489978772146849694247143587062246443418321732712294557286180726632862444142818547904750673205723767182468192089634476033373072128736244711011308800916675122301489142606756259711593428800439630520778082059320000445984355533735466833749560406505786550775716401250249777707234623631101724298154220992290254713916095367159918120913264882325934167751426429027613694161228068309773472752531147349654061654575238347773923774944525940518295333136230582998653546161373924768615040358621032060979297640219146593293099102283712958100027272161537750811375657044785129080582981029007468212203010158174566580368128174342324266010982666865202725134448557146043775889970773504595957577095646317615919867675463823066953952680566677245530199043221336797451181918553970946360425589531391303882046556916312179255891736351910175962744351408904005579175156538057257139024517833157560048799391978687404454124424628848842830704286084372114196234433897510927676641228817440605098330756739932357433822530224002226803842364521441669681545889043505553767921481389686351258761742175548928991298104448568422392012656322500884844666139096652835515490513206579578032368126336254864723437329683685947246279328768236443438697205365264117280202558447529430300553674966590640001705290103564622860616198429995130964881550603674572501248343483635235550458030673870365795528169475916136108670638582529372329331937709146194857000160633442801777082604701410748363066706330464446759024900065935153363135644902425951786570603016530673404345339180629982917310382306206768096858964645890550877460983262081091801088886610229116449326406521877495420765096699294788725542481053899269412197045799494207819281666789244279669339326305742241264899364648324431757976383244422831069460881222513736475152458661872504084486505466689611456956752543376830197517373968327990482186175019950162628350871598444738133099149846505417327970360755914426118386820762422006194482713863354692888499744378666469684504020488797640676298394187204027491184647576787062666607588657279649682414907503420186266883725609924316184457720561916299576134931183288624992980479497288446613283902069269102594684025048043083378049810521051045017165387987427153789192437271345231064031878648310435187635848512581571091858118480570107799505031503129048015168384326466905849435457076524389253761186630605041104614410783572560112739634469836939777874023448504336793081008021827746932643384361519931630885316663950314602950695525660595218849481762598126581211689343528754831211632898679945667364833984449795176825886781037560020406650167318955614027325342770377895304682906278261902890461158149582527834971793044060721735639923184166706496187637159683592683081534429292856995040174491669812453134311852496884304385756211479183875897383025804377416313211325016750631477016169155546578499908529085395418983108889061306955755206624501780059571587945364005053258977721509575711297387559645392023158986733251340819803802292702571646959494721662085409960283413167034435176677064622236796197383899291017373660033192719762480472987421101657518833655882281333685127417643195951433925632600257463046535086737473441592273739784332336573849484073860147819383214551011687361664306425763104870154556301612445968464398102547759705837931550727407298776150386682038772780857683388086813278577023407244889432608283144248138762495410295700827036217707226763060011242853279014486928078179257365690707320294039160014786136506774967647451213420205359407055325703311677180987065629339926988021997166184084745772325464921566150975789230697410296950978639773371844498617141057624261325178686768648432616770166079343731241504044266909443630883790024259085903907531218056805491257350580202162201630468527862336078143556088397076235241342503394480952679722739830592052831103114171753303019434202837168159567693002816368804420195280515240956390080271288215192964316892245526075194823804174307425874942012982517261871901415651319368847534538221577095062709235188280754551470814811286878454044025606802670982261580980189752776766529587806394807843313682236381339417145708378965024926382632442747040151873719137760943531346789084959877678597302028689367040512580639368167480060223109967950707717645934054120552631453877008704277289136097201731266627465304873646291387827739417970370955427342730789338998861534066606093968138057416956911055413175276279692464650514419871228802937344121841407968116153823755974493318928827155037049156255076445452880631078284936050008986541486463552007430140140897260404402017934151893695437640842752956231487052040667300403778365666424308796322558956753510315261285199364509504461744544070779654665341170562208842411100242023401343327939480358547288636258157501496345139258242614087338537332140952074575714632324868574679703831049598689313692662343137188568115789940051130255854081057193411776962341407447695182118255174296464484518425419022336809199399868281106107136099080363645670287441978307896164691774408681488822703423830061905953437768637129541827202249171713962454764519954051364731558696765893999442646078680966303920364141577721708521928347305807753687058582120534616715948619752210603033149519043611860186611581325724756566302379009158695495399749428561837260837601748830753675654622976953477074014378452333478091738185116438827526295496183292874530410276853510369022841890051973867593460328664699276315613473500231140382820498167282989356330175462163826936849184329145221408343635492081859892387855331789351041909503570645781717638535893401764091452638767259321023205674856641889308694449683860700743401775496849022894440124092086583914467509281249744509242760269773804582527191609594947965978793353913094632346842762933387963774112313091642365289648424407832688525358879439124806707744455798281781053762971481596658546414684432063446723703396560160110995306178572675981100254986271508440611114966906066582590145998953200142835921739612235501703797671199601190164809432318395555726141366117830849864829104638643337621304251334392919268061496305705731481882087401920645801141584103579643516498791174548510762473863430538541765012384562908696658329249097904914650878158714659660331838864373111926768819504781713170753717819692486472174406721994864078342483106452421853491093959026250302319981682783558587397543042579749021813601217876942619397836937134314619055046136788049284735333539292789942183879037131428871988982618808244040197583910682134648291662457738351250443407614127887139062730787340053504718842256788963770137210845467364368086828638961639219990074623590970147825481828622981530163906066713282838987098243998785889732090420273794182197589000617489628412350824647289984999255848273817635033879358282440152762846555885778263656968500696795531515530191593075340750015770536591172296007924309391765594237937773889946427435246841447762271693218991734710792109941421846151287481134407419020009160552357882430999861898769986235884470991684653704469329258795191986978611030430586536693828595903898778421942411355268094489141003095182686834415296291159573822712727731951066414963810943641993633227535989698443333194771449178468472573346774619047660164402390389315180927491156136705606902184110495073200923549822488307171996980699840756587985941175651417714486482858272202368040435122197853811100044209081651990596190061519293913772750555052041343739031153468347198553658422960245412823013125800244429229960942507874546874070476349978674475350614121956776970160637257800383758548775432847723452884630203495497870423208107131040250335895522903876264926742454012040404514422230990853490672302617150824509327421426200476627402239425635497089611315317786540352908606272046350631890738133583865006349537609339273907871063337198475808328238294726323321522541418608365289179224419542788319680017924343532491642442483701168775768192436049554385334473816838100915464466637274280720527927082955225589879720617838157340155470136440387393100487297699901981011871140743107553652520980505736759790641555349266933256538240725575189013762842208093847596447624243878673546425093706325646695672667404240680003449160126882851735103712682666556017610030721109805950860378160024496226989851626521249442769943029806748133590516679376507653292552409230402585916121072875016466989740964846495779871649909058286561350880453278803667027421727248123546054837277512311209332272774620230118869353630774677101024235312771981301348769065740482812831012129151778460294920110983113697912049913558140285137219467463949338316031441827021229532862493341295031533262840315673523153699013785262244258878669571149068629808968910871646276858593836250884090111278718999369755320213551908552224405621283267671723510454315532694145456435244975669775035751878724266098208099045577357133946535626824896637867245373744425657119789825464252895073960673324978147330784577418618120187221025841049451138651719238601479973375216522880096446524138209294458482958584523233592463950329246490956441265072921969982594338158902151344398213094199399952074083101296651043958433872503374537643446722585328517874903046822656029988660831758475686108263298148774260557883092427598471112611632572359263253569072987647487900181031998088899249952235073000528221593625422848333038557302254061726012361630961797149433258194396398380359196923797351013250141924742061406207413286951012950984252880791097429469131803988930117955404668154870307219407877322820649636515830495422189887171258958560176379763437247579930502998543585501512411976434931222772209973053589480496655584922777922878863593867440233432521362638024428799809772567609543695792916551734333079919184919675672643560938938455951945003774122068731223393556264354387567509184187820776469226394933664945698222558539881610418632594690747088371084474781429629036839754211159515294580555075194709570942265721122984188916926846399003926118113055717959920329995502711457987410028772076024231840471261250224982483342272009567279338235135340678325168820374175112287481644856241462357510217421077827378098162348983262919102086543966586057462126386161921966289596454646847970263748632823946964613449299928687449809495034772110788537919946635986665113019101226192400100502501832263347792953385675898800364331492671770552624145364450303526833275191591231114144993785828948722569313286479399136931725242491643888988528433888830931364332114286454993726830997215429427118932961958912875823014945271071151241516130591682396708845649282459338451114440292007732797274515846964766124119935814812709711903673166018583135065116679196600209119340862205046796103815775711881632680545648375498628309311073149521420885094450093846539564124105310975085654427290394471885088978683392195987499522780615123964497983468634577925837677593240472567232256292058544072196943843486072534744042064436123036709031950186969436929631717507544653198429514296580170640113518763856070723071049580009821498790163097965271726188139291143849090318260338269464615429524658692664814401284544190503959925635497918118211702978572091512043891239800399477864729206985549638782813778093818227807729564592719614258771308461486644997534313188367067252614739475642108928188308936738026416967960268303370185532358300761048801960728026188156675061375170579878565287519013644275634456282742397856709540800634359488838902248055561889134863254583247804337799795766803087211932671306966588072503820022190278675631508033455532771599574565113882130277194673346350769701567826188481399908165202975422014082279628193679587050368528475912463807405142206803211101349180163498658231929727830965288469771913656917119987264294110219914105437587810475878142702274086598055386753015520614600279322782815976883955928164659867932650187774582806747981890604687487989180281927598680216670802826634869464233602375004446610304664098393498004059991778655276510506669519899529480432252326822655408582908680034760328271806685520564859788031343577400155007714034817135889173622801383300450230675198143484657069104541740120195133066581698428121600325174898865296423924175432400018458968648005818128510105766446183891799059063840040819846105832654434715113743168016131716518205603390828900143533988212005801481255442351381321772181446837158020898114706990703663054845521451921946279231309388886481499380700152435811057084373248588654200492462040355242563932508152464010498333281713216143263974855862162801030451524705997746674542035639543113191633593988988211351098015865964149687586025270883360754971395140487875018459250778901846862866073562833834545196038849774112047298280357224669582918199853860979470757576379365897457737137542432753115972603329455102688221967739072871559353176193332864706839077776135447021162405022972614413007318993624871847138314565928943926793049563131107018395277608752680109942386948822359082620587752959146133114567072760978286190779037814530503998610660913680165636702547997898179890890536961421693080193601309076274512640871677748393347044636433047124124793458650856906994316184278775218137302484303745479322735532826642064155338010234709581461744812360649511460628978284733075226776033506953452446840525156796114492030232253070002852617244383606334016233811482227875954275743423512357386602294572812934139324007430480346346774702935963629997140552447008552203982633185786925213724707826784497129820397184151407186303582207573557601074601603406097407237894081777951067069865469682299548284152882001834634276158701037587332110229964283813910128044392115548260626872405108249898999100840580428810778754197047780803052238793673754334527956579227435887097549495682416554222932039025845650870166919700234774557464440248305649664609441257086544396129674717791901368092548341762256721253475823309972145354337900659503898958221346709317954901162393431023732417619446470657297572720354824399563090312261334405082817607378305604563198925587205020255603056563870604695362414809146987693932492768167834558430531939947409427549095939738131109607809268946798949112629479406385003598889961927918805115078336662357517415121068487609695682349023307975062504615631217424329835016227333832697667289001887367762701300248746764873875416550978317653595641872923107661553483178387431782638085354087693817519238360055195543010152252607764111131483314535331951417694994698919946816492158446086890181107672541569315276613186632658940602010345698157393934315113030690425985642349390328206599745788475577415769927804849555595101820402665144177686056094743724109237792770074625070462256672941827220710243788038902062035185663876238133745522737953893404809240564724648744686083341153174542932176710515134396663189478738538963831691727472804128380234207827966368135161392397432229571164308561342305237266966903321682615764646854565863527696768382898282016799867839369830404974665663038412309892612560324438823311785947917801290831410148272236826703347913847173799569699405250791017879706420780829981387181417852119696918167946550737121908041514432922594460129223084974349080593542722038301757333554841928322004589145849962125892266060935252052971517299117969438460677024746695321488219621788991662581910541468257685270312726004047795618390760615755514722217452687466839038267871146284032528545762632946339973942203456560445682135334124870258869232283825203127862421790988615534658129043155961314968019424231407201376256571803060488375930795812599209846533684649732474550372515674485863230805944066311178816324491329059462977286887987984922521704707841461760616946415493797910467992090389458012875445893970478897923728568698642098575673873061585446501355666976443887250707118791367552799607180544523579552039120732278298051735855149409641535548113167480391892846680917027247171269712641345295362922502122179244328444165146724930763162282292051887031479609408793814172510693590738167894222271570288176074948627779950850754282683557722557874519573292775866895929398482825972136523600292664683015965225352558043333614611068882904490566720870613087295020883155668712600372437982293128214545005705430177067714470755784439175165896469141294323226204526911784212412962491400533650055576241225458210863706444364788213461407575621192255136455028003877263790590891597148720297801922889392381219862449703050372380611302560445883594121104923159696757777279793479600901316143009965418910788749612051398347454913746962157289567753036308814208372536691423786044224858538876885933792151453955509550898884203336760629831194069611071053354790944233528894946591960247625869602295760623454076479484913174685818337423072335734223622026917676724744507151399430411718622215797999093177060068697615837966093116628253950203301158877195574194319947634055236462377606568078112426850503952938865463329125940271532691857049623989599634634421904999636801251656508358711167043861758764249213961349446968679685682817065711404208085759141694959204126553448096770125700863234880453600952915971329317717850553624745865988913045526429446375252068134863910664064579411879353547037276316769366355724255052527670319401251289959255862868243159235301841052629015864830554754887750080510241686868131364896560624176138227079735913033789308294502858196896261407989046022372277832621535354290865417563530663289540829657908745261979850063068021503678370555017226358136685453277222186407988233821372000713769360123632880862105763325101397706544922241851260229765208026651366661249340894897370096064779037566167448872936852444500057088457076722516631323172293712738780164371891634880773453520569125753986503754558652248972739532216126168690679499575279328805578609652893904896498587789439124689437706588103461459639527461774659713571712269764615114339679481771181096297749148744110579750304797365378880973409816162578021516654436966317780801310690661687252099197206786161506717337872999074399976144908499076341477422516386154271391836992735592602157511727614609571757627261874923843112045992248787701337006331259904954887992585006931860763511018865549156151017204768331841982817063294711714003566071391114227799944601396218620559444158704484901141962547851985802743023053535719248694613717465073575411166271594488218063857689983292514645315943426269274475080363878206301587506550792831863577658389861636075886467214496693595313471521182196261655070456912943210858990825484946743797506461160066423493514635986810350140711849131731880400748907798772880923060780609308274530436010915863290346969536813174819109482429052994120693963660086588014802691340997786798942289845383384768427062292916958154816549714264824978906633213279255340406533404170339577604613003563514722822016727466232420668318934368280600011909810360306690933692631366840507053120813612772863999071832999208720886103150939531523953641024166528176232668354095854242995528967955123151064969937541783648649950483057222807064147590814948258213584368231857062412583891265862442015582092377193660691175766214145993264164566500210778589013953346473144437562781535861369899900971898086864379341956496659924997233395153104603437729595438929325474343297341326387419277666750282302425463761343744525258805266147895744986296094433066608802414404028361688705032501664597572434664413430992619289473509236334372656407982289194920362780812588646210097001397045666340738718400499135082625470791086734479847968794388388394098743298234497940663107788172128473603314979258145105097393318555237888501379756849689642549732453209843944941255373381096575346050641844621844178995688041140937222792500094163387559112358666107537313545526980626551240481614597428065174422046718283779450537889364956566252498259592877011128015881011400731754954057183445462347251531800270766743121946272462047669607125469392263062367500271220993686784319335438630333771753859455383208289063845577960458240096710286376851256901008094460666932638791228972737757450869023627543830822895255475213793900723975943665308320363031341081262341287444857324868312992521336834807889257405368621131972697456506330503295382510157190777693823411176947708310911655290002415967652572132669610900331746089826558592692599148003869412690993705390203156590913027477430018304615241507852875406335670045597604205813737741677869526291083213605124284670038571852671448885567037736957248898624217619051701501351302526381974894661690455331315229038963214564956367937211384702911402573679769443036395510936996595215417215844740557309051780616981434073787617854353900546693179833132746188589465707156120635352735908497243786682096549994252428187876869548591358080456520749001974813490656638111873741934900854003251033419464327937473113558873602918254183127352815175443778471950578550775566093428532101669476124758644414807365559609449625107112534801831197579626182248653955125210635632384542732240551706386726433926374451057095686320918123639662702445222227564229320934458849211423653803141319146823574530927875437758133629946662488469316408460549614593110134125702425757344782108356782270784564111880376152457980877409987985458799185245664666893816726062506190055448835027392832428356885509344462670676562522441910363078088436488195668780807033402880133226605026524412971537561528250281722399989625297055812751508189490824657932934501767754629653775249866121185218478639219842539511956442498465793444775102564125362572290153059766643254358530321478138542131862269075951117164054782248769188130619594048234536536553065431018203763416428639168743117859491369633010645818769442897169655634969088396287163923668589211563875005948719669596309499649871237080774135963353488469490821693870704344935631408090029767107311981494056732382263792476871744137850896678871165705081719363147182428167859563270893399040129700694112324979345241881066472237372640361390419470044275768756653182145355039619312703633872276415568821899562926326799958055709081200497480923094714746793351757549063132804322160851537703502394134385845869998727148352471091196025185688946480658670956081512722680701600997204161769400385312429768413687185915414892311117544845601551741250733540907380700887976572608426979227243172281824486992401521625895475231522329246706018220661126019987735011780295267034305364178398028730585218743531884999264473828177582011359149143164088592019794542412128511260905370978003814322450217729907249796242708857227902161085258602053862077372052732613277727843195972120949818221787134623568180263486846644399365917271409998250727735431239261746352217071185406582527228559996018830409339686601979953307976561513609661902046217121614475736777093152903582988884214395674415476385475380295635330786509894639565964609698717138597857769256289794779781077182405063514290074871407119396208010687148648846207524967464799848966245877483603993034490501293621469306594385286644925293897536596125789908636761548956761691999811293998266511285923420847686810707408085644687655942968547832075508508089011916401303036137215690038140936612565807685096024159459494597708897905530642522655329552979597023347867866155540649611964908968936873821263705046840126366972662165501130978584677344964994924630190804418876822036794949325213047794849339362541596827835788303864516041914793768797138066598629612576381531942602674222253371634834214616293944189580139254381255172255171047017418913939157221669179765131171514275529430313838919366554581485902226251849996328590965150249244759633450159748504400536521869647136709014786460968325523795684508075255356901923024406998940792182241322082591197629352088569416654948167051701533342534027435159570194170504048662638021584747493644499816798877862873971433926818040526900916808430684699278844271959378539794574044611589505573609661586692177092268364305522889802046252514891272429199542208949216366026941128069797416042233384426123289533241150563578089813801528680181770495425687480901995855549411465471017699500336188991229448782256678510961957123923264343350506814519184062168425972753255579983207949372177870700249074585737336023960591103137126758326805330201158149645135485947362632681171906392843526413214944530246083525463844766112232328306620036791915979378545258711413822210236359576994814854627815464838330620582224417478437442780757307478487277215134136462085791577065423615727402044204724559381678708662025136556520933742178233924999906305235945495193824591691188476926953760376163651220851084290074528495230310565836341465346010726426845612994845074503422394601925200177311300873666935397949226431681650865213676720179531590542803551714965054376310685879906544451668461590797677477291470805496481358428440775078998911420709061056883194473887686582720392366702329678012598707355251290805698839939473540466872560210330417368009886965602622431655036402469907086882968566946300459861773498015233378379702585523209536227976309913464356929628742692878775851716301623753650157287316700122048296785453456733983296228989602315604990146452468531734864226078576022936849956750156309811763911507882227640000203180807904559166288878533403704361264402741206491014314922789595151920440476093920435140338313101245708916926774925715524053643265518940435839860110898377459757652405331419692884820320998650186927086766048114565935745950537871299551110648159649277267290448034246140657449321328983263102534391932885878178724438310048461556416242533163940974127276340042330296024596220430821180285979790593680304847491644423382939769757844548189223004362009238655548712212763486919049374028045399378061905586801372106010344773300386408353687505837617412347170173437502159798958439134252862660787883738267281608576727460978470294594470687557301380754313818357159910868829867761267917762775169185802715551902566491914258040675660509135977382004741112222108917127005431715112969230506525840645780057119358735329788792363954334439598449433829199094171754455229377914246153370855885568042990064296514705152918506486447966756133470931441258376591831646025896793032394567347463803987556408318914777925912176286691316921638470964577918176198345890735527683875896313013495649495373746045893613824284944963272147205372522851096735955856763471667461088290381318192200868400393837540935806058014810925906331302168699627355335248182152397244550482732018816570632683853816387004230173338391508474585662612320591138043645841906901518101684414535605050444461774414640957800670078288097417560434152099843177835073975686618648026424278247312504047932591347843123307010434612517253687446393814785798005794732488947476267541768759239973528237172982421743693668079004370381369020942054089523104348243228679729484240250644845156976208318144786387241195643958882517203297229460555912391554232592656545740688306115800267729177830199832855467667541866004792317297234024617416508958790855922321670722237900480733468980221476392498569354821958977660225203769701626225993378693904750034353808165093214077884037946304869439474123355207312842245233363324234773029108968874092149077814793024455353588334725390881255323066024426024189343043739773577162231974021047260722363016244623092550481354912841177023814908001245833313793602712089701241948045031594033420191236977913656360022678978205101264715281441545754813985261458385097142292558739397363706470266699527535659508651336578249175443978319054070714773132393543921106688516614463620237090572918510166077077535882617760266728317361971999275421713568431091598731045908246858953358060702772483781686703653410548504670352346136152814253039696758224191046259260900341233367365542865920002742536358743359813917414977565625707111476773824743672326677999086483221310776983155026957409543750061199750651553654647649725186689906009392101646420298326727806919405522845284716738909123021552250426184436351510776304790206206015745867306424930738326888445748517155668944911158912281226537189482670842215903682681791619456366457948667383629081901236915365613749163031667384431886930807464674289277102880590232087569478400371054618027619330411201488067989962879039190499865460839478313480705598886442800634458062902042248229335949068367211062223834403130547393918901879944848358535746267150312372659604894323079097905427132991601983534366822574095858046791256383568851293404932432203120628166903147015363444292876207243033062478972120811430747652424611789764995135414910963407663821035571004163929691580623135646988989096260107033263942304791610073100455166202835375993220330002799642656010800926334248564219153773965331081908763456274062801487274430117603854792677893706147208837905745398526022929517755175717941328483691017545803674566233380455014951789424112321514158395900143613898730884648205768428255221755161712479838108497610510635909173540366112542896313993123858591201424277150450210236451592003216406189732104619733128542429119257637797520911851728408729487763421368702087922328523105947870202282295601306870061625187829794105505438464844689164888513576723062173320760629801141796152283649515267205186490106732709520745009985891983494991617438383550096093015886243792857313059554722811465707489563914971180884806284687030539160004119446281735263140929718634432832520907086111907022666993000464969271604384227706016273193123483588031719227080580279379069536964670025323085347160961776598744150150772724666779192162589869539763452056620114567827288335726770283372892703259732470587109293114122844010047209043688978682572542609678438518582784513068144087293568080836317830502300508873590381012570749140532088640368215839930330336164665731755100928964417080616489527358465069848940815862300075146623765926672489265457490677373206240688754851793160954178309456365769100800414441404495128547796028377661047057240424901703822607728018229550640996439274904869235357877557272605549698218748024692710697047021349523725326613334678829248031388545352086582660601141095308756762482296725148755121600813484252290150904973040900140719284518029279693800780436901909188498139384529670628260663587661954633207026941616824337433306296685360467121537105753216150128431847116043481186124364855457608932441749806232649358584624915125265406669738382982201566390729379930143919616472236542584028457927857397936235892686891109578094946067005628475675194774229080763132827717594122144175147026528135335687222220688677959159690534419739506928680373508810544073271105939914451931796273380009348278772357895424857936413101284454836958327090533533658760043954695071626188009452201980492697690440891046580806677220321781643543033004814692212360573659494106995387525166002014951520645439855191907631883280466731162200493246417043527338029586017082363967232551221528206249208241519661541702431296586016792351350408776761747756827131614649668505473317539336260077663108295339028414397708843299188651252318408169578044908074797313862340340985930139423752148701424684007053186819432023691907325678599758022310412541012528289157023308769974343741274255977770122064263009310289163960621853128855406722897678711178701560331926820475844040711908833149863055987242067765791437819862822970601070860693154214883244290572162937504615322734433789033467435115854540344196787913055917713250820714617312392264554628074321139116443984682491328539519639060603253579097937690139350213613160443725032937474759414600298032946571154931755702892881618120403990896094149327943141439441712492267803521136548137655656180400255901130243761342674448413998890389392506637232295974125767329845688243525344420971297109098880490463449313308043370369185142905448878535941211915812393596404390413022545828207429017983949091627782148705765308392021686234752772389674938117301172979018794135342594984195054084764244092567656947224359386375368877913740807706038989358100197950194204845800966659349007177392267545696217430319351257805971786468467048576767117227182398853718016506261646053881816760560478899562935647510561630811224491889090459280057423583379244724134740464037399893520161591503895177684161702505198162149642268075081680296975302670323101655868858174513938334628694598499911250245578343517603295183370093699224825855738035934333842847872620200475367975980994686301233199297155325824629743795439171347376637518111480457010957127254033531809001801175387259618013301619914348423214717947801011458843105621880275980250296685773657802902953424297620382420299303949441524746308540340511135028419548122708454465681408017076535855932308941598178043094147159609258680945160607778349168424852352044837453058181677430279253130129962310629256908871858623973966006478583108641745464352569163391381140427197756685848269415337231165472175240134524791195691852299401058486690084816975275358539401313207633106197139594997503757116582953874088102005045518828467485322651756520431268890402371786827541834328536820408883318138528377951080112774580513306785850978264051526521649186372059920543821058574297537354625149656015109413950176012219185012484466510485601775346094009119096044947889440558542309671139970221739364838217611190972292717600809257145675227674230476187610369052737153798648207889506021526132269867573848275267396553730851579445738792798841049797240362817075107238134057952056292750051966859719904682523404736706022130184165971973918564978413324638225068111998986639076857037474108859028172426760942871465894190988824083083951224488505891967889927127005476687359911685549811478490517887065021379118981454528814709030580411067408985531328640301680991150769643421757028013748012291667848044689576553503070671719793229688140310416174690122237931109185109945668548555118291460514457922035805321772279330166741387318017417280577623586270130631949416347554475753990384871786190278837054576622803980362866106338675080974222242650054335913461467009166356934163719451876484284144343944174940447301083286824807182883759798621176213778741947903250351852553133390350312250913023764938707717116077225277490881436854758691333166665801159023378276483562298875377731289205741347209617509616626246875425314475000832119635256634733461475648743724127106053278494395312066064684226444294789263169584255275459874434974232235340037604404739300540398350669838629862705264374754836302335586697932289714399045910322014136071673217068562221439857530222300743942391012300025627753733303565959591834265221278479198755498102485550934717237366309329215696441364132786547999278531951963318658699898963195867028935953248772451034456103421829732745734968889334360993565820185900349432039058774816871053803446960468252811842136300475737697539031098366913912932295519250535117198667242738547857886949962965572062198341475597406580362216223166586065125574168931071952166561131651660409248762065181032866876703363343373193987953226910041331397111124545345813275600523555653891805025091697122046654173164722787988257682312943442159810507731464220891249408793903558231312399949428607161734058480205601436203073269002505057979669778472810046852620643174642403828647932271903656768913460031615012999467966466237146033026224519389476836033247876715862137614490422878312120108502595234234215814513541518017196522481985928588997683039844769336948272436654710760523964251276301022784704049899548273428270131415563383160210895127836715405110488646203468098797097618829620993247505115240421092860506072000482615950628876459013885039725953447962722621383937996459626409402847580820848043050707761824087874088626796995566245264852107000965930457149477702078723494552344340933002961755725867942943721083597342186929997011835489327543700023269323993470283565856010346815566711108259886275167457963169498350602486921115928288578612371302507212458014675933294906240001589898852107425378685498069764741564879382315549993143974151025112235592088886002006755904400512311148971034122434714201614699027328001217145239599294756330594354756759977320851306109022915669115234094667889216162887223641905055984269756458319052931066039816801042624460717480758450931247285001695959688857581695153781935672019661303547776990417374414165928243932085771134615005085294689974400926890113492155039069102832227576639915648175693578518441334857920274678003883867672301797031090491228915084241068262171181275700768561745544929981502099261032426104431771674688073301199233080773265948732498164261121821101581038152393199325282591064057003288163257257113884155881503514688127017329945224754389696966716518399645571412389105098287990868166271721644582602577646891269507856598931787111551065877589272506734262270297048699161786207391497060478257143983888553968474216311682357807333697781041099455628906601161021807155897358870431790314938976582286661549953403819620024138672482136390081256837270441721506215520772955245256557825442613931218655871485046153730048093039087009831648266049981433731354492031905614529637193610015258101354864071486887149247881422586585936102969732418805969587382388575241148135025801825620815336193445787650266574275445136013881838087363729675066699511447518717881999471281836185452541286815285932082626847490150542192279298109170517977420376929662616425552513672776478172947960034337036732009539690485931699300117266808656415337091308576764208393394399908143154544286156568048295564977008918163328752409247263579636505415558008175502347591159224393691202507947457627131541715023938974814726795357130999619157131687385547472210443059661548086401268296738044945871742740964250631211806592763411222844004426662154647391439984579859535448542940624710883749683095578568247049546793946794545210239409445693011853585886575812150796435484630715984510718460740983067896272213356816161502027874704448315849242822635788968234500872442554208101791218103216111846615911288825841484403452987968736879698705383355572732684718957839063089646249758506224095388507498360740448339488806501807662639964847567392164963731583355786617127272516288965695005473299977423663338894998642225370515075936134467556283565366100939744402796060055755412929632460509002921946149094696337070140542043400593853162634652080298501300829674471480365992650852229051153414723357201622769172830455145696056833327342305641797797753599901548613089518109128510377395048408586252965883729301333669718981545230236234843488583199998069163352319077606546648687093409600580735474686945495389882292612572848695235952797958393671812552368656992519998230405201029046470260138388643099605449090231683284749678246345824836915582716156294101725214816441746990618342205980282361292126926120867326354596322729542414172193750610113379422751598332541285954357093156694059843315946833628058799793098232681778741761713118225502316607799354629858753965141009948100674369031326045667153221948623636674865740524042316623808663651672335036783416304797670746603377553459376069746157432475619898976155967427597771950189818251737339927542862156350532225088825438102664219531695490615224471899242244840728074072265714944288059648621829659333026752410156614736609086854463774897676631518545028483230732036566024788645186804273056573114523286206341461561431875237753498173093010242389209556466368617792346520543301919524357876146044754554880765668401825222171369666106381352041050114959610734251929410292716817134249865386292544753735707747518957359991297064516013203310954994895309878491772307086179414359532385167344079837457457518041020209482264585994956564710085268828335885542866207335197863604426231453180577277182688227632433289147748617458547684208366951338766305154547130533779622959909761712675861122288395807101381836501199135116736672823166482659108938191546880628046124909796135590389834637486610782789697945870487455635733729544218677615345873801843588989693626473560663647515635734419889342492787480322894080583696222030899222489235505470974616172347679027412889256683750385305743042914741393296877384580207632706315654405823277547801573744176415933566584203333850163273220502851582103001323991162258212661863579005243446511720488978661010529517485525669647251040841369299888709788911880270380288875790423983141596549437169135138024193540014353549958770603493834416538081921997114464830890917699943910274192362250097501297543936978921391363343437542212993566629325974466052661087536509056107519287189650086509596072692143829036925674814883743833118229176983496730807445801212549692887594075397807311366882541280272768783624870945403428520718051783104695738602083659489061857568164441147218262332734018062525972152838169031339611942598720357203903307247599358992107834672869576150340970571970118890811397485651782942919459894768403733927236972219939788743965060559260019688136864436856704333954308274422122033336581018463952443523691837968837151279984044242480433325339918865222552654238465211054118914447978585853455815810511762767610067590354389683105525165057798560429006045250395099734451580475234357273774527315674959153969324124574143294369435904997723943439197076627461536588983817853014985646661864331723997211061358588307262409423648868184240623704939952016482272788308139232792944053086099288594868245711797973106965150739683512136305227184887463293492608571093634442921600189781360795843495741329405514335811034632201523915160248237742223545805072063117562896786620637997020849524864936484446087467429237936452111878013451649819775444210355847187128155181252414529274351658975811803519850444678804956124008793355343339841994998759982651083072856848334643971010535148390995630036014505996309673152125496699870553324940102130023611283288089561463041858394943431800396869144325127540428353111912240390832628056608249449057041502620869785090006112591529167880594986576964064197035918427958668319153112258856893237544405948898495848115928182749411897407426070689210805001582366744167828514521774865030184453925869394828569953636753966403187503599420735014647064724152629143160472816701921067271598445529543434517640606797080321288018706613095315085099635492867056184575809174878126984265282229762591034603187909009193954035884490179758160854904957712889024523190062871091899823894011544942154500362592605558277159234110327125648279731275708857224735571542518497419010385797005191048005381528265619312741651870462781780400982145249508468045117277879645937906448382507470604162055636171334778266892679833418902440805118305264264151042751037635707554660255524249656576564113447962976692642258488154341225414116503856669091130472311398643537932016307424884732437697027172551132033083238318514061755228857734677906413791346188419419980882759625547952773778356185934493130110953822488657096502319454315277795829217806673803676909287154701500426499178875789785916994211829791050963116121562446382756789049187949387218145791742252106149313721472163062736557214885602363421802316614619701796678971247070849428185266714602793474362740995350637392388122130132345785078369075490837126240853472665162647006064566958894231732820397391638902604432675694699974491045051763620973221436745866762260181407220631947802737376422447607808390751081299819177768095449606800357688632192819358604730858579469336585325138159470463796284804659546111162706794753582883128369065139717970566792217697877605100500419129966708720218907233047175734711297945620078266516690760505938286688940089714170287176527874395425384109077406117097364104859924893774202364584287601520971925102739329145915211470214754310357807276780080570955757404081744129426173494509053903224906068370412109245222328258676318784928496829308049612250589281770790052749553089165776004886679806584808962424002605276967862916110524630929472555241331379707891497453762144818306249797191481776075499062710171650847908469026637660713670631617677794109891743227498113158888089707040666035227561277174353515274012277800402280366316393184018411199020484849811612473067727129463368269417704778563792594298503195234072467216213052316108083419625701556537245982609709119349644507468960530728180623945018120018384503572890495719526637995528333576811422688264188649124154421966465755546475200710392719732776607752063260212146210598576041819021691343732658049246557542990375834863761863434929917403745008787961834386134157375782958203302055966695024357438631624448613115708364556535683698009429216687049365925069316513616561173098539819190781006830955197096772564401011474935545386600112598511874671485695627001359011487040317247077998968095336512116480685632747303449955767370796830606506978101284597557138066655497882333021240768240722304649632870939464433146170890992948421603786165807757637340284208854428926752137998549444826190265266984494357221967853858702446706289703661781947403512635105217391718461864453444445580628511916714260877591554974031199381752500970087493932994914334736517354576961269814079671188494612155288959519981422713489284548658316176762479703891692704411330123968546052591681457108215275043225554566064480360381878583651819931046705217901507244449895972434839282615734745113231836862040409523605978487653184701124865778957158606702755514489917376329706347065711601665804710416457290191821374605813960993881354439589100352473566603740363726233384235129452096566476328072824416649916445437292498772301651236852229463066082973364501879189206784220406631229981192169052171545082845820624007992503768689848803710374566772445467740829503716350595433180407176041109303840193811466709813652161484117065049813307423757939265791063390701061048264569250215248107974666547307316415132332945673975031522212228111540037050597936489032018349274258748918672660442797789974472130610208595038978824143521308831256026832065850654608964761613315138001864966521715887555242759838784692317445907282795759707485502720439750022454513806674851968308754072750300045632082212478430924953805746049916003227060644245515751168710811089705808026316575685525557542272719396050623574072032387588941565415387897537798241530627658870338848975348844151920089599623365660719250876950615637792435568938129260025031163981377441197708191672269628249235901674069593896578847209936974609718953455506115889050482162170469384433034620910411129538719463755993762027864008941826798184713925136703878178377049602537490486237073541281305788644510421441391218442649441631752909465445985268874937754312976585276232426200372900337609451498623761871081178371356773790429319853976468098696880752087936136327748067747625268377344216118223111685764201530531057065780854240069301174398602704432849627935750695754093450212689589580571430208620699497607062987501481778888396641343554592072583927715219972159973895219190898581165740703447250987595761740765124599551854604837184930817186494585623736138883397321977591993451928324821448257413005274862550405831040556894527573016292969049309900556938401073860488777645498123046866210127581717670991728167268436591793496272478412631763299594105600936539630660009811278822258914284249156125901116459896601393342120341894431878158413051895941873434009170289273010095435647118901315588467234230786964568261087784839786151725683386335313794378144615609688033472163357313524045501576378252454108545778733846666456110442758287421333910977266812562107866051280394991328025382377204449709492243628998614214847000559666770300821328668168220527637122619555877949222618896108006846569984647008819394876023530637901303612652500416754722562796736097892997915439830808336009244223614504358490227494548152904276937454440779149403614225950455758414772345890451357624545968543540782817360345215356348040326395788968251274323805833199459045746822688887691113460351652663408739860596352159259768005000546061272781926089664900430787303364140696933733670162963935828491122657808735762230526995216959365200610266463077768147868652194970914990108131034289245216623190056079405393133755534251889258399771398568416576060167753145829978132667144421676242075106688175489221919618143973015237777399165425378983440982220194175981122620472147800284009463433972211429052110960081321869486239645248151318287905332077023000396803970840265620652549369599049509686376212809942189582890441061962222110951270607080402115832288788045386517925939600008762862620551026985773931719181212461417678316692702882536498169582762132296346658586979210589931841615886864089764641118690820277110338931267291102397274844685165029278348968275182504002736814098731546795860587732384260985771509872400637431845038282460873921923426134686352480129128944536584802233494408565838185239003600854658240295680721050563118502680660751704673424544770930283789574567948323292489374733160427242154616974106432052013239869897128358487423137777609739848860103340377485782578184006711375733337751727759933831639754966947569451502622850062829659612892181180080260228225616953155912733836859613393022303470661048661872875791319185422961398696922137327855719760065454695615897417278918060689137460444464749461287380725980898497783484727470160603713360077748282006441645556447465427573371386154787048800950731793295806469257059630937589097127913414790966642862310065069674988491040643198201539810203356739699686573129342517636607661032219936301302784206571001649621304260858111976367414456494050448314330260906138821010451243870950491477331239110843577622482434159978929032858601230794672800864848400790321516586013238848895053490205490212429773192542779110300494756287244427788014347047408134971729804802681421132107648831350117268211351109896044697496669979775851570328063965427482957733627572362407621529093554716276797883020730112137083753341880916038063491769111640795208340982919887595423620876647960782214670059598290803328779851675195350566552889346649759960517054030552985402644288386367552452093603314792219940604002907539409412870508280258936960973851012093174540575108552765835036709693505938511894345992491254606567659111622897353905886537262116508468595729968208999061773149235942195407262612150835911326298588427497085900744191600253696825640519669187868138249298773727974949027144810356503244780884495195914895734341532498288436554037748090241204457244360643088335728716084104081530286094713820671905659836285409376290522037017095372574437664704853034300264944516672581627886397760445448253148655455015949822528339600598803667549410704904397223964679648197891702812993415947069507124292206745804462655320070931575765279439254035932048654254958699691798140312677648484837137433902262417666742304911354841627465181813884736383890781019650589969201599537382871364782578205260116659929557223678206087385403027030844775787348016937500122376101669678682817389518703667504560425523179557449025145424597311564513766536080799725407368660010249777981838347692776291145897418560654073406198510165316045200128441136915919932779846192362319511389569221975910564430295796953785516292993782590970005929185226447233413415436895481307586680634462929862719252519517875414912842583560882874348411976730237125187882149430031028283574198690315942116658774566938104373700119592731603314806670373721552759641609155412897890594792338398973561177226233239308179254846801543188740302038129890340997043127357574576859788837217381746442457042382820132246211614313683113845924516045198497098703722366739617146490354885683643978807330452112818767493452995048986104217879535365167238693189807011121265122666834837847050985220732398694117868585676158068188411444570513497637587925600346459372315250480785107072840395744660533317713746013827215584410079887259428784465116552208815511168978178822202524305266345326104554233599741269437879557893815746086271581635602987611545912009223477586749347476348504203707831074409215669981640701144900244118328623846412029401001634195832301144183656431492926681464474760864404286179354317984008293838439144468959014391999736942593334817731919948564570754980080649843973845595790549537548697345728753791483207128862273047472556692522222059997897587741031569127148033704915549107887610343967668890018364716836310092410597462779410845524760574648072288366328312469141551457209659436037948295760970069150770850043799163275723237901684061294853410072486601078003467843407751008097567813103352747315624201944466169077206496128155782495995627238404103744989355601235392371277189400591710588229461682108284340420822371683292314133512285849110573642126158417489192627299309299180058030579833128216499952879910116885339644729681016097855692745413345419594662360229591810829045511428369166462239752516168997567717800817819594518071154036049254657313193008237404846957886615604452494000518508738861491017098029354023068105541018657577452809209270849462856630795782695936120668924468417956046473789187966522774043341765624192208454704164048574215546060385811314634311780778402455175903742668065821539425863187727866506957406099774030256170713461942281192866562797219283151814840306661740873903664790998297886818112254459287384567899595113942884803956066844370252169864233586174141040782075552979736764787561042920445944749658962590075041302095897237503257977653492444859540365989008590313177617442793613703594353942217085539823867334356525282433349639778988607440840700235568016337046886529366903415927452530782776277520877876028898062021077759829479625468394857571586093185820737853473342139635616851022453443584845046558477788555072107614607885740160117230002934465290385398862411514903158583289916390646661578285978818214198789241114506055924734031511093058416918206121124380306054173008930143915954989230564268463006356277567672160118573381438274551313937856682320471198257159052814447855848386658914066748565655865143054552586601117762296806938807756564675180625757018355760612656151937197921562400596779302180007359802593569736702859473152370028111062984880601073175242968423724095357531696334987780156613890824187914947006705163112642568019505414668585068463067682908803592286336066632191418049697983532476766695929376303878105755586523128515496807930217485018576050511573100721895940214121348766640177520541358857799377292996303765732751730877426707892095838847542510017452961682277582886219939761564502538610224768023948748498515533051901982060267976929529902079159368896253724535945094776158212112381437068822026633865483028165673873623387072894653332995784834712264437949415993885678036913563165273001491737905077244265817264229746956950445083713609520702585039123259608792346056458942689908376813389448136831148799915964852108261790627193802266084941305578715707664510685836729604457969657764533314927814015691886016554232093958808136129341273201307704819586836671108705275556556010287256628104088285063374955945091883677212102958353761795998633251022256662598527020572487125325533941564349785311073815289353228365212947816694023662752740565307073988536402823017023879302053695494836641327016633435900071020807106227745670337019568667549148551248182126885252846679645899016849698148583075534127754738353265905842603684936465038221615102729248030655755864893974315618174164497328977436648584433571998790933475251249123478597608894555082466202344913858575326108265138367558855522198839170908933383091756382757168151272478430491094576720926747638843409239893818900467332460742048257302523464759382676060867174704494013362770926566333961874688596133426035535881464395165620256070997480530811287419686017522350382564084769205505683031419903068680820762737204149779760438960464406856988864609119055691027216140928251784614581789150308776160977932136739782402728856356206934620531401346217604152552059601979446550867157360798534103670179869438147271059414254817109519668042372047724587311746819442781589238891121325456911780359156506102241070767550672435492973518287931319818732115678451428832952482193183930621912047883303571951393921006038688713327307473773697454740841081186652107697623112302929246467345429847848758097748648767666659031315430990279180707259862887211652129731689748386294096628292409954449549449997736419290711626187445343361180536105352536377569020905276322971411489551970744826377833800190325353665783407953274454434291098612016250654795147550337193187864833156987287940152087692930680138368611994747291643973732391646986188370238017814579294904747970714334791900112026193559250053334535118282965294406431281462683524523415380850346657896295052548284854088656467270639611055913585498932386290277683428742244840226942470393184816319347607505879973725965599943356681361072979166242505388157882645526282264006019232317430742781157666043295860438908555969847540178908718160875987195169652600708907694103300481109369404944912746851107066377236842558949031429022535147990378502904926407664036720251243787134294354935899259566512245742071889471287381237799212543701362795450023717768405512844484681675024676043865730635505287527927933587233001051371765557364539129045201742422305972460043278973808904023202028948469852041491338610825001114185847027303670034186856826799012680921887500929820928147219421176813698461351096140816095505833498672849841326331173041956350604440627569465149986779414821537321445859961257906617864664070347882668408274315868368875474097095676152898811971647554896810073259566570955074297315144904764885046932606172862516686943321945033176903047330397752677302732512772204069368171283154727801495894420914758239975217660413660929492674794571788043452392313889036696244609260698140365944918734751956382256125817360659033653845374743818076304110320709351020699483564553369083781243056565780151945393693441020873995069596483320321077625967185607118095590045733061745072291886461464195312377041060848832093412061996415455886897287162109702812223985400160814947263499456649160255584746465649168458283340865515244929436324112537783878969087224574874043023790145430564055681303528352827701031205328963395256722890140790437173751848512352844305075094420275415744933634863025912221871110253869895783214709447225646478900034601389314939234651689340179118945520705158781884017851853844150210620165194696618771736731212578797164503797750869776158385052516485582525806529064018069278674281800092077724242499860684379554918393099212492975134792465996463715437465712775497246896586464487359692754034370212064946642742568652051096428016262870423958480694199068925196053079731495520253254307109716183961758077435975961582304121526816172903260444843174832620372870060487916460697957039695990270571969574561564054061654326957541789740111377133503067406533085505281705458377505926398732811782517754277553268476919622928766491303050515614358488537506026596651656035647910818973248515119467030588693456581400414649963521249487084309099989686140034951503653403076554335695190603917567787513238007023979388027801343777158923523529147491260547089964294952590216269572192061890360733319457688711311764903499418706377543770599423094291280331701933816192430012026730493641548253326678490671252932644654162224257257506748170772612252407583373171863958383762115712399545754776377239645890322309391428095059651683981641930866905576727339123921159326956647272443356268989074634202687313104695899879196573054812168574069132595176012673470127330195585690671165830210299581562879793848039718782686868156718656960672792221291301439328075468492474254094255544792162468948792878020630822351951778794236723151840842366351425110264001407147734205517693070980931655929697080408458652810989337860939031036718184702911233010265562961793383079601987913521992309078962819086393996048551170950076533979946864095941700282632021638005280881777797031893749714493520292394323209033988523128852985883644270588474602379086562515932354020296821919181851036149967728150975333933299502120774722080099015012819490960325366665070927488377260883386454699688487121412386354371559187939349240446823022174011102374836583285918716539207763126915992690028125363591292997150421295326760466604292669382182972459672166634983191441012682074436291104054858902617768136190760602226543021593185934939813740345067691435242108897551606237869286637029525761461749197058966732085398541821491844809320517607103060403439435233420909803426672947722866994224063032903409735417932218706333787893040841919623133519367888585799221103186902178699574962201626289516699952009279375721204382732644809646828413188363588237783682632568464299518107099179871404443504124759430982682890612628951445719654795387312575179606164031785855316212834509109771800735515327884122458857511865337962964196455771174621379520709982762355891368186889824145295778518045809627409839452334255608773993471914163157537626954733482480015942066837500163174731612572588961717536310527543120216449224650201715445562003148755686134096772479572927956111496625456425675215174686161867665901458208524986721078420850936618084396108136914801341666112331368057196926295423920472272139861069291940960027550693895123316821054896223199181428200607025181866538243027051645123096743769495373533914205292236671666904696893296789077686996048172493056767285430402192039772883566775309904093962299044876175809486088726066104233483802108154141029128455747960420912006376122859148076033190086719197799251264180122861575683481784618553639747225267892535131553278435101720673174864733129793888904233255219011655140752899055792243845399344260257243993960377423809694150741409503675168038227492313171099089525788980554852400363401479747158245072638626889967979712763371327390514312981977343242469371561841621095367790441533901249465400478324215093423543461250601995628191458967197432432808162824318666028371167268557689077023841749849350492302310848987558060844665653106025522229486604382457056007291577649288597190316649337481753541324178594726908345110695842086357349289289776973784012174326853020288320244663445683090423192875937684842400877988283698478137394239521583245248672325603612497037097451005773571866867920993791464869183055334105594468778993140955051882681573792694699784010309585367168097203643066235923849232245298181887921729413489881952190831249883453688671775749466526870408996946473112207330097435698938547662608479774487542693968664125671198345241140738301121271344139094356696381884395382931431456218656296178097018434293102737867031336373366478262331164332262912046984999468246994818626374872020216026903717022585620702515749568559206325293615580286846599629753701839048787315578729283506381664497054118899065558691368134078942320141433748535662202119155210212579584020445393587913428758904576128039047820625464415449240194515624669036284171504396723977715993418121961011993305029256422075750457408646373531223534443941377626602556832635779778357727181376502857745282718802241033521665727991680958221225575747186288462401192618666233133624904728344035695157323793793760328981831881891588950265448965276266870547654525089135749743891870895794952474270932538172330221412327703132050955966634278758365554681151946086498110237764125049093859267338849484512751734081443179543554693141521861931688214454269620340213267384386747722168933459313485116786515111164468051459356429052715722854292037967764388813818981085723909830675251738841597440674479504504160851864723696869640391874176778964249613760794112386508157051034263000967049469777380225310195846669579217776810103978182899068133714316765718998197500171457795684221118364530831018874385912606137699471883130351022826608940121393783265050519538168931176764757701002978921058055973788247184372938812720761820424199610727082817781469083919492081230857922622537201058263207146131517264933103283780548167049035483274198497074140947239755431787796911626592548549937017836192953264240777113080150865777815203562084752538615392229408764193660663565613355570136394866369543515310305424866324876494348939523763702038638925340807704391143662129948706108263717215662371633020086479953656172960302901869298536986893703988752270530396254091764676072888254805224037047831987075330894772950230496975133209675750015493893332350019978746564546722162868868033580600837759832781912616249694711149486315061109360018078776039717268026027357498411530129158618352459794252398926100631216773833216135984731968463312726857667889311815987410074969196075989732852152745848510466774583760810752089850876852342487418154924014257780106256863968751010937097682107664908529088281479686692990362500286632247480141561430259546026567112229968300393530397090164144454274328048721559900564358774518886511819841665023472035691862677348240544563298157979001044020986263455304080808275511636755390360395563147091505446867477661942549971636238983025730081822930763466746121895706722059039229481709891179282455869693806058130003038056393090221423464210521526161987944031247427255832694403199163534226441201981594457849347971733927168504928298465647830448704985551094019856290388159815080345671284379524353189914554725633242102311225536375942205013515225597581285177942948254130064690318806854463104639918060747126746736517900421556392306485062792311936091950910079853457253463814021553307804562372460359328465120582324512035937839764698303080498938819190962022103899211602983986964474497605283549751737804968013328457923063950034827282432678427067999293598947911862453213517308402810856174894116638625396401907643391152591850440974173243413937093510912503764084413109961490930542936813281522507840997487348603086173316628209510750963390180459128940192814383997539647404835186012569802704386050350838005852556651166309492384769550659925572323431210458023710721634360722281517636550117121098601028972568556407369448946764695012937273711144713224381413592908683468993626330166129161887714988048936623094560099295977601690030312824096931473476763147021339051087766515078146275143903994501869722418622150236241136192403431768893895050444115566146003502176987825760246401549392908084208466729175380226017167221698981182251474066663591276988051866567425283696615471602754661150026752941747758332306392493004128275809130372847845244775497507736882785438300368272457237993926851387810946042871847034953618513312186817082038528201281161228280538243966447608341649007997875842890262559823653869080426790339453352784117727838998350709752959006017841701323339314638331234865842630869128623097312777010254880719588119360877708625907028199072404633944383198935367936423753159103407767143698958391932962013952700349925177142672071712430667392937953006838462730736520708550082199391595248580118220610911398701226184139451960643444120909766372443831694006752762115917249593279595663926528210656273249710505273354860260979142889837144236617126298270734282495840864245148700084704896134274350955089685067460991802438659733427834559634854492443264088804051539778684145433894768627949009902866025710058303329754671254699974630878394687887792232625519995968134404078611746763618567874057947467719682611240537342498830923600460548787138645636765518645206488880419843021461887237891964528320213107393242852119045624428287726596014505869676391326786774204367357493901672418426526069403243026317055910515553949757846790614985553948643130121337247308993210333229799012975470338310829278074431268678652052517862444919484644734692622156371415524049124360713065329469613710580206017125166631732796188691444495380986237483724504459525501357897599877787288697027257375542565033236473637336643582217407471359235302956149954455175818882088517258718516571378575641232369103792139336203349986942799258132305821877036836222439943526894509622256741253806588229239267095730392233899053634688011487155876002119184850665096689854138912275190871212478850613036571084783349568405875611027855625548204185744532914076395477861409148062701493189852037546192795442178919504300559061717844196278293282757651301374667874749059784544375565345989766658358178197050890709963665582573696836437240501496502485814938921152618399569583511476100325200942715560470047317029392987667624063494805902733973217904856444764772848222569537270703334580904140954313777361146130490332103548012313513257880599319707755734824786787700569718024309988880716695188359004996261544265723684802067738513606417399455271534562143612628822938851877397228534602629635391819429900186249949746308611903354772150810171888755819374915602665663623498869146685378254078140398106664930850102563864473418407712872951552009063214590759007556989948547529974378357161747725290902934395696578832394781079258771635098162775493331353054877734332910991242802942294775433962851992779049332687261638216982013701550151434063529008088226813136447662358700141532292698148412407832398307438677827105877254761887203160251722089014214349410286267395526456351110857783768928657409149463775646026596470433229134225851088792289453065230186309370858867316577312199062307053711451447991926005955081160868687424372685567928491415567613148956663847266770265330054598798475552288352321619633858551997204880009156952000545044050138394162000691385018108811058952864742468717376410496665827833683271506169588543755964832836329566050899314742396904269112970077722936633897141077755515784866131456242571174266518905125538539863819227249692475149617031977557452341242053999070813874269675801158903465031063529321496234422650231630204637025462912984920871371572890193515314049054310477875448599753056588972953541105286637819680636169109057720878964788515297881294335080459862120221833633495704724672944316536721021356918095464414238775907020027688248020794688271006609034801975570819396899587161176815476837873918711837278238610166027350882643664795155314489135393766421655462489365340883396080195091739438016907741824497462553466096910147734242193018646338422842897222131678454347081757166171602873808831552039423833631820900534764022098772623495327232213154211227971286663188358009469597608965440221229996762153945832013477382313289852554629654759410917160132218844603148802952988688991092801316378939537138940585286839719705845611738094391427487618460998351726972581773746006852980364197599489686236731916928915741453118782204562896451633309688244363784495699637172067140105607874578620140857748851839424797487307424006907392169070359913364487776744736542028322361190495327293381083628683111993495437772570936239496167125762474226760370030681246426591124170744994943024851087837242074704357541512205598714753538976900352414217357647215816997191213824895989049711234612856726555760625102013003925222624602480449855333461159267241614215742264275179837692191150473528265557912958222011099214667522956641562343829214990129687123807689711342809703598293363866872385613232778811960987407608799471042543088340203369753839344980544527202111303686515014298397246014391504845426400277927393077097986757803404962801901266448903071709154053694654627679277590317401950657460980791995834946462864217692040810630126958778311882813537291882704128641644831249957175330136893107721731350887020341120684830733338675600754303926668290881781388117133987522727858558901155314705680229819046547324718048766238677860780999227547211078848627417089230357302460207823612030501765238034058217256682084550164341227816526539646302450221664241016911409074913386571141476493410181037904058824523489453279769423673770817740051113252375948919700648389915921478182879817004107623673415308451156928896030940804084921379721014094354385218638395220824007115279553832372134139468278964512551736814583850097212923899597734867517038747793805981705596818862993150615665503341494744997850073476942854495294929766014844989346494309105143166494995469684065815884533581437243332373174510167598317729472935748865751638557867494714663638296280032805119711997858975602874868103493422381382582242704565959565970355355467036471351495776092624073249399586461165035135857666807888395118030815349995582231107004326072975510904639804859208244345840816267358657522007789288021814070748947261957728213467404662015075050820792364027806647723395068296275847678174952039416613134845160900725219609296609837426938431255082450313721447877460694712713220382026006999848196498618192444894456474789527304297896788752145680355205772239351982813992991359986195403063483679572309051224928312451453889326159160278848165869060566781661024908191503234357767472515926274080959076010780019251942283366113622347487821195107574478131316062092098770887495795956264875327456266593719196914974323740801918089459734083551208386490316658039678830052584723716566759189393854131215765238931345284150876577778761870573226936668765683677495207835565688227177374769373562800579974788783881982417777531406149579610310654997712140137104517220082100806591503855177577027894696112903874781197587099314769610997717142611383525883341119502462516182062578360789853309707978301003401304102986201086592054096255041148074131093903889349628733709315853005029423254458237381413464003723250214837824864076821957776611062773261346265462424423354099743529852558296016663179687962403487377979739043200597962173335216457241637029014361779178631209168021112190075064961269220579052195712822072113152416620058878850632215034061615203155694363199475159426692813590545740485797187176915020466369932320300812240179342775034093508364504307211098756028841987389514297254331780420339315795499608403184888833361672165462641546384343089018077083368241857266642539490512637120305368758497743325597450684987674068216454318012674809240793433276771423645930203495625277485314759206713828556824315655352643974454554176606319156317048992870526360245239891949744525215507617544250306174652831926756187854773242422191710330276120509659234232782607561378627398001281126234426229273846076754314715908374781666645480648885773812031491733469557154237562919487781185026283377945734040974800734483238849312200027423309333519934505460255083058997606659000157455632970815958866037975050755408753974247998273944906333878106239892150744333946247199738542476897212798475019020555550679781737358414818719303041029374957060282338001071069328100230824204989568993502490115698402327946751296488231681957208206841187045523962310670147698957723286941875908782734869724341539699759940552189089777514009552507163255944197244780185036704280202142970239107142045773963614528732469464801160233216140746487832217666057873250385909863559284406743262407851944007103517822617848796703231829640796088402045095945059369707597748308048317930819592836103452696380288721157207550791048134274109489514409918785935853989009166100138338521248148242666783214299842826472348588165726719436520665352656307170908865793895594261072229618181325763100403004737448314822567666536439728182615615258590307498950171792100749200079374149900585185688810188281308743945167911957768868802143779803968437747056525690645258391012128626445898389158617744609057031475466091275712872515869627786976581496109887049361301702826006812093131712509907405103000067349208822882699326457823582947177287871845297212325810734690527898675138020157888992270777520779228371562550509265227292163180448284760881955316232262129689102265110336189289863452313317829960828167885087444372858846305383415912122500813809585719471840498782905075759603061256378429853713555401251417624591180770768971612572021922997729346160815847535243099961599043172385050938895200943963198052540912909748664170738920181630583997799501464418642494663271117425978897456245304742855053793242842515775899273703308048969036486507326016185657669605610792166080977818918962497678837000530746235543143918778369117782425695441197570683977987293681217458201514085734693173420471888401220941955813004291417205420651756083772674371511612006567007558466753300357675717856348119067363290251726725164698541962319922689431396692368707301445913389653085034185564267749225228595741047937330002424005628324583403828052300510072063115542506762610892808331032797811967602045591681487179458848088419665287777544732446327388144400951014902562333181849016469497646116734178420025325395668045614601809424967800473755395262821356441976301212217243233575759028008154445810438364091327685583590682270890017572655590178187379972897816907655436217003890734370032426642144079519449051501150020065872726939550699365964634832035116799115850082182668312889324594698152182318633728009648390210883993167380834582071124835647292200858400173946538640224933100219067237664473674167539059488207084226096486371276249984949381180447710276570856678703477025950597211024943174882567473953089763881918024636913409292755738333287458787336703560947463577459819574099590801435131032740514944265691114083417767431285677205682123023148621121445768917059994422637214357036105997142280810666210599606338602730500560943256239069305509499212254633410641330438492824962608544018296315865510876015606231718541362653143408485033110248741985296413002252100600578957498538625891927883521810685256908156609024505058951738511335948744112227113555038975621900540170289788507554539593573494799839209509864610144252499143138217197633351500448012791215638157691829404714669496952784513724150879099403997371855662419252866112797062308753715005388346923456868800081837005312189038641412973546734170519474284379775992595143230076532237979740137577521872109063115056033001710576859328444767642179447565281299974538476826229958581930774713281318667414520523464178158700239031135335105420971074266194880916223663190495306205824390619213854990009215583892877136528187660423305209971188576026420778632619936057470376465062972475023157223497865107385711156709466204762929824809578280552435229660941231380969428362288767583071617331608574208410407206055261779395923548754282174395056684675998113204189292752176466310204301383997267213039385068182388114168831304419128136104604922531007918354798058368340095755678264096084517832814791435808855962189120525340663959478252500959978433842523385490759676975747686054032458806526688476023044470310912299269734170499008072970915873229934894810478225062614644050177806411364804605713193814191474317451661531384502730540431644758232313504352158476992032831605792577248382348570946613627842429604533122728636402229519670364127068684460235698624252687585036174106491318253857482340914620101532040362663714133008494421761346235758438619311095044863859107230821979096680727349263858865336154033674564523690964426819656787632384087599183274046254786421808086506319162605949332721532371757958729438364508548378033966036670707728694379140710131568069913442369252703846696257184283924420701501247393635468732544972420938068347081158591027811592677301089952356389413358464551178405557977957301378148158702161921973835177075368306994617894016330735015410471121968670333597586555543378798588207334964939322380870471729635631482333504080569422349132095237817780904672182092183575789998941771140665577074769857688976968354001153372259553024440771756630104008226876471189771611312106375823334782824011505286793737805075866626063471944268827720285403508657699430188623939889878361379010658575942489874327144831167393364507773751302942812186536416346482756544465210706957855830194490599739096868438608460655744482282116277832857264297624659317143114389026019776550661683611281608858348626254504425269668064571358343155328311644795946825186345149027672386919908271412974854455987576550639533929086741240064698486180413641094350098001752849757558791225596853302560871088418437763379728295794252233173103914318267881485823564114191837697863976055282910190179528159534163302952430223627941503581366291444898125412856524140755017228057029981062800794051966225176705017315460153690083099820802183319119790114814136548234487167157286188906695830724686712129377675883697496698282024423354125968044824211727935545468969602059195913233347721977537880639675216203397781576717634266535241124584262429431985667646426078029374889124324434750392754056110679318077751639833258269617880574461713009996419756780240449941412417800063353904234323917159032701432518037357167700987782147054998313648044888383154520222691800960843833448628488500936029553463284736792066548617289242843857589989852518877869831535424380863780036721193846874259121377812367691082146158141897038461448269167676848388481885622999607719084810031160433502970267278869734729619408381446271284159937464927524441702370967209319787763476701174730461895282118407394332261786331879677235247694400521283755329277413279053990202805002542335745268916664327606767889998322061608903576158419311553085627948041945006580089902069156024857909948994140827545914471899584833918754002032050211818912596935753896704075259100545949461337876441295438242464456236378708156963871895419713672485560091606995972040310879317426816037350413559363382175743971987334428220562118416866853950189702800584857773279250261706200828702755851652237540488222472378744694970251387630623635439801367867460199699077194173470582927276818230491195613925314641271992161273032878541128132507921016228040911228917535719529895099766301062724965247256287053362376217278315082077194912220496062295925975917965621175847023308371572300725249133669965308547289996400275712258852695131061471248649641416460317044995654333793858773806993538282657801510015784673644794437071356121898866263513849228563941691611130784330029658294695913136503056148330550200111542288953760080404466781544974259505871763706558395143328861067063074622148339260372595461985921030894209688756065122392468954272049526780333495853095425016974509495652157937792760862706048676226790517986942561854173966565179913575768926362895111236811789063836744242153604173714632860905536237057766706682609101261854502746350720334813918656864065299835139638111093962887187719483407612055328788121245988902564243607476399487611511269597201599566137695315103452061752896364693904884899246108780519563775760572751299260299470665045314077837636979644095796283953538521066719216503992956938208010527892528222944316795644715271824325930170236320006207620243626750723258897384602834410894486387095656127966424689764110376962720582480985857886093543302305353412541991377488642431072835577052518078839881809773423559935411453821031368937876719895984508796226390090261849192737805865207524920296690874705846941214965046246338790151500752967041871661890319782473502015097297595970584526786350443781976380778930276342772086016973176697589254575047141190416072291544050268655108263750630601672306623131484508759607145822179382529697783293387624796269236906335323133698949965240241038195334686365051475679277623059797083009996510668435771641284788905584269558741407937483075019459701747899413703703449395611294372341251654821667211363470440471510091181695337678711994915731622722709618864754619756844891735740427478579909538023995409406368793858893273187410721827611713109498100167647298978228054789388971137991243627118573937847390016924602311669385390883750424994195678354698824561459429538045388523910792193702314842704874263904922975029137369511013474601266509041093185672993519473562720681486727046017739426182486419086473453839238563993447932852296999608268530723871859454136713491641507825990009507259282096397231967981573684824761453362000414307524512375545127496842850726917272528601011639168014727534521509670756217067961905175125243700268462677353698403557952649689839298159401420783959132493353952958944222758240810796181373140703213497122560575742579468781945510213280393142924067385120099309076146115760792366441591409810360151889042072919313911176097102487560388520396790477930714172471790796045503722341475889116359397774020870394302880035758410681821844826122404662622241248901155280395709310860398191421899830673616909808824755322558694220356887272389015642580838062119594343390667217281130491654814671250442768532290937227332062673656485418114923686415636517768813316027942960481327323207312204287399385308997910199200323872524835740394366882016089266967248411937672024760687537966932710287568258459300583183205815338533855340923269353376663947930577431463130731104577567959882728677727416029184082832274537169779027112844094819860490978211101512222840365406364100855754929358809505129204912455817770875097471411317141295228603438929507944323266158604536352172817864559645664894325960335444940404110791213155942424961860585839400296735913100215179863487935166490881398714903981259444791249513693561708052886728870204614750948705701232759289715878605054792286013456842199635297777467848208975873904197825180703896098673031872246097587046705582812543645321637031068046619623098934530181999910454551664509664857614581072546678511646547321491223166028750605639335767802940317031571174663314055485120665903635970452391286038066850476387185091681221343260985249828086628412524471239843448522538237093649839692419694792201941439686497661562109476009929643908225591781638982059831414957464456495090705593666465708030551039595630860339218912479249427353943976734350789413365355024571676994979431340632228801154975355196029043027977089247185881632847989109880764404183944597315442950091939138403218480693316997162531888681757744680424101016372752878798154859590153567059005654324350359907641858918508379078536941868425000319914446461323861227050593954748277097367896942133435381274050336287110363924966931149741193534935407180446929864884675611303768413374704459433450837508949370670866377974105491602208688950037565802262587242021261078346838516721620998505833383235274556965220094140810410911842393744741881594750190105225161435328622974638696809110451001640191185508361001715425958504868278508933553960553154126565028446743773700822610476262440778220556485708897984677382941027377054213847638378334948680408628371593833440251325228902995782257139360847261010826754470082887933480872007483554499913856502717543332421552616805404759484959107538995500172220335084878889898280853671167971978532403803971257261924618362702433783203094839271232504947626229226901372474013297674002556936348612640420097410583719896773608559042443097289763528196113708774737477103219812177241521369117505535091040233209212281198928173764363107162999277279186388977490709777005777348139504714414546428183018772009247523160769287190969298539686462733453640781158024485437433773027138190148202932176503244996157371215179522004874036571087282644531887599664199365989537879665314016097709264997414214286749864187336001501212539967216913526960169117819695905501626745622584210684283045215527933043081793105881611584607400701160352644796518073626179970865368753067739903442780841803570399302516962212861269583014166704116454126697034247840364041828074900016234125698270513672533180337212303379318950430722158371482868084690118696046167193138037666302293867184475653283768413547995577078016691838327310208977417958376122929097875169822820974992134959649120193274386835857652471701977448250175341212398092447062247488617678224443759035990284547233513204185488767350911140301355604759226644809128154823486727974658384418673017613103354630805614617190442334864462607057461344589748890097097092454936113193933054448545432960906005605877090801247177163354566617939875868306239002742962010583168555220656209295669254730175027023969478736047553135316113130458340390942678405783275907325826888623016540672924313465523642489553491588149264599458456786874749428432701761237793847531374807637751403228717863034752732472686322967585853858812696520888099732071054707414480121021640369966291221226208661790790467253000048366855231048208040753306995294971310484113398590958418235105284616291052662560078577874497784421793293451162044019062908250483252710702494984618154151940009261055652733770990071288056156330894982861811020721858153425649374600315025612103359339344544236900152342628166350568677748548906009513961255609955606070430024059778342387413364391230865540346196002937256146146287308913860676558917841979129429571686636523641336399033988025129566321620214781170507779402554248350935027086712766228697090835182275122861107829741215683782381263865988414229560535577802915552082181360753491508174269704595657017787947295113315185993471845306463003173442667633004738466190311905389614939003547316930180730944871713208657988333992995126825485556471568650847059055189966596061522899010009607147256240184376436910855592526581308430951561726902850442714955123487823729634546948652314854137822349793860442154111519918234301407406992277329897637532506914684409735201755139890114258852342102106220644337208032632759187096589265711810612342859986090278488884541268466312947056088620004773015301282125093488245452063228086782264786326649651599666050147823501752759928705669131134070586209344283480289737528454862117980317008207565673040552681728836589584370103407113497839125525040855343697723508087804914837894154310594606399657333105486349860188491823590541900551548691520532137536092756244527066806550353480894458664039653461791880547637838210805493255792206456822249387423302258658853002406724831111751957510211597769597222727720995591820264781662778917658574284500506483466764489130002121049576196758959672254035348596140397054492901035790312996145049393787619044500025462418199982203557116636913835952590928826051804300871319536174098340264868516747945369476323457693137207224603492834429549291265119577450537975243319722565639224978541210463396846304016558645168570006328417990885202665998727706325097124535664886551967986081812509984964765874837297314734399935167072074422083897446195713246324196868571339144430621724515627230426833228726928418433874723902711129551605766471934104794215530831188099922791583994943885325159793458104790443131791546262895100919504353194455107421120236079622961418365005887689447447662963196790154229130764752602400917472198487617635124103739767879273812799448641425521888677663905290714530359655079279641506222487466088698382072516009994703251333967534550006686773838527850570109893877190848982962944362566215539464674820090194323466757696078571456489610800376526611780674159612926463902862612280415041318096211722617255124068739975985199722410495985721310889747221137704726686671550277013732216952126296575502930785003088545875117322906204532121329290239913380928024327233839264339731607068738569033159445630858018788750527233908960481358167837831606427071051662370419489997674907309103859380628931468474633504179414832060446724459556849023003146675677473555451462552887288399128864933505852514894056705729284134745910482150970461401841888592078362805545018060223972617649483652541245002565708687297555355480632343059622522246063601061297823348026206565445741583673081310318916880260056731736735777775107378432891662588181939848263133140854954687473789934662895852700769547317468653776549195107347365457677476428501344634281491093970842684413795370877436702764015437586861613650413879313223023185474554761952574991543911129170128316113429236282968855462348787274886811019489276160625856401909798811590213932444678494327263238134743850476369924164355386976155570823652027924717599856379333779296939970256854802973761275645250530940044357161146443579364441179793582609888662622364333324322607170920013088742533343608966211077091188764610676946731744519896510361600610184926508866022552650672270430999919901033570332047063096303249765716640530746554996966186169073010519469867491987757804143904653003765545182607886163910707778339574950524158916930189821477073721694369258959044849839076626641369468738081732524624418029947613233460266989059813847582437669433597006150486819024534797238958757710440374470444651587096847982820181418768138937651195566843261434242544325356186874471244797249581469974804580798166605789711759109784869788610633760624363927521526784017702795474338332808529839114519958769139845301126054125094449727834253432060491837869747019781925614681082622042300295504984373000691872982634133068633982222702048141490916972238668590197442781149342492306323824775401486016128817641354310299748203028687479797001521277506641959903116355942815457539209323952165735001134420954339552238150053183062822022409690280569841128736163662942105996940127992905753535670525544928122824893293005057253308852332740796762979802353219042550735488595245119950748287279505381318168088384111699618395106615224184136522414817730896089579676084724287032036688197690206581292515973060521185072303557143710200422486995631204728902202103526680171850501635809534109856315950697917518368332489662636048497014006253540610316964620051591086816679361810788256538574874584716532281188435268717978163172055808517241981994030950414478797551010236839819599733914957133584442732354250431840503274476952997337715756331717415177945772783273424478278068132827199090325415081029620814323411346522488354834497026146045107146142956694057039775285716493334842901070370077107757924782283918714724327520029191227351662526203891969774248452458194237551348454712322676963431299281098623485567642000456967051236189834484951860703114342220654555972783884936584798475259102148707704836610022214303747347399570494517797157251188168101080799138388676540425148377059060596498328290542903197201203252810950823894791900038350424404518063188564543009270508263787266480363335606402798763838094668242970348587652103271224986409425936094967187055079068161509622833266077723824765219524747403770328611019028475560263436970536083718687813905533866906301680893896260707435894265492647148242863642006201219268511340533869664259147967391414615373328931892874685669245968753241806560011499454513200829345516483620828253768724538741433522360796480932547285715549875104226508190245884374108828061868234129890473847257763899317316629140199951037159032249725950226859366507951932662417610515317563491362566984802365928772069356608250575380807375222584975654169956992764389495770653169813273921719845996419251054315154900617235355581786891751022848647261017097769896416718542010394133194159628494951427332593851482493677463626009924879085313178721296860133951474817511273440154620127575687928572660065649056907998652970741378191575812680427927431080021829507325579951966967449606417053731891935133745365462451382307524218618647654814674152724396077937471498428780865634993143446777937691172927751624654634079118397985750657430061099010667074614902353357836940676905180706288559888764590911350593678960466170152716859519939696038421751734614708778561825658371991257134903781178955618077580117384895196482450448856212424077545924473245889188644507052183617577207596016493565050916313330443786690364909865328371005481757524582200176936845888249671567586108542120602004033543305599861587873086446666285970068287046309579103212622585184984209182635011369450804199514032163786360763624844277808892121024042982023287246823468760862192267923456532204523863926470677038150803978568822506247772213009617051765680584313520780719891769194338209969519847937226248316591834170866177179641827895915759990693305524274304547548096762440802297339276658985350469627906935520235311129706561856914561541584820531611610012070244623656943045269766443054436014611434850442731791012508663817188338925968259632994681244237892850406651810892453642253719637496825626491561435654854621703732589960961478611776863147149837673313247766980761745893780261081739738028358164774550440239093511904798517960132416572325189464766293237016703318594856527189230321621971024017264478006263591513931215379460492010693950417636637322454397592462008034489466528509150701575462703972713149967841105383991317125600906043024945372907850607898402111563619577327684657247067300589530690679293106784396041224943214808618436604293566697504707374892423403029157838408533108633665145439693983099235655797036509676277471038687015593771963637490793281136611197529001624981296844939163688975835978801304295130358245960899915574647147636097806274688678184983486839967739732205054817559342251281580043622236285556755438525826364600473056958007004310486984380799179667422352534676883019631596080155588778683779089167850609074195077977842593296400989315653214059732140218777497556799627501474015664875197383891996426146498469607177616447832085774320954885495935238008949518085121844578745507963244914465679055121552579753864883054249814382398373226599284761598107905770370067265607362131515802512542681273898074461504198036806050699713398036048511687361372226029372790240548503734449304277149180140580554517705446272104080626560544008172504288413308561838668016225773879426396847027854457746502730678191208085538084835234242480300207897470993466641308636677756142525302579343754573473437526609256772503372479978907779564546178233250111999684769442936498583621159604492012986023631421315456118725806539096908080475477218222350568920095249151520978859634186775476949566051589303831899684815735019843738354869118360348685156592736315550437613445256426985991744353327597401095178739801373780714999945877675130989269524384814836096284879207327837442794637489634956836498164598130749905904074364773992303044923612250855680239418763212370653921746057104750865088432257261213787876004809630898477517784428419955312745005095782751659909641361832781863586210031626528846872675892327441252805684848804666212344747224488351917100651813498006275107140031453648623207538085419640031565187281390533006215455337824294517290150883813472127172873361042498846099752176277130668391621504042944445210225824728000033480285000060908225325736096763084481070455776965912114827307187193197964096677873805129278372209530960534423463371553143481727164787751688817634917407905014246024521270431913693417881791045801373352007628242053484145206211386830395441005080786168578778268080198195050503847406256743010169313719130163549554416168363034994045490021733032335214647036729290190566939080345302864145064914922129157760093678687685154151361303010138079253612660569419065415391303833981465228036950527295669963085156613049165934148183674470333847313887301982136859516625820376681246750624029784470080920367239355890507761716963881131331533532775582680223271970120775376709252849744093970605960732656451130131619106139284039705875509327735112241692428329091628877586397548713125127573478157495690002649721702332709887808505823878137139031232188064731412460323142662214563962341058503235568585978878414240356157733614173773003928755076854910988434465894374521819261869057611451925600518847511306137678212261227900159414069084502409888798182899210243810332397383660459159019477634152510286975896269352107560365633758064265666210224068976850317527725733469083125384650846786228700709185200033753268168605082109625272789716469755211885378660631194323510630635446731857792434688974118823602595970957163354344780523427739194163633370551365214152903209863964517606904662021270081652963359650304818518426530186733177527951109819801356706380388407139109458324767950721827169623662050409779173310716791022772414041146940068131749544591322967998005898086301853579332167510415004272729700514425432275886561028991205514325881080598179132647947024782139061929058471111053784522979637277803737919402816709192896746750674131605693397886600795101525168078105148413672608878850079717010902160966786451254635566578595880964779400809858049552579634977319835029337029555469263865486012398028416598998099655821160595304747866298869662597569643533415949071272353584497732004508258810746966504484092731618062320675808268027996831112347503749287789199912117081231178984674639332603489345403959147081555079362239755516745714116972012378986999364509923403229580640508749465404614358543861109364796727166473103055065379653053172737261084260145444272283045064657902425840057085131758627517423282826728620331833977732797623317469310966957513867386065832057722100147003756171829146296975908914675143457298199872528506224426942734939324357872379288509138702231592699598956095926160706007747922118900948474314027034352193720768171568885591590564597028345047220838026387637336705074848617594426123661359417090444234925321391209048399100482017830481511349453004725710505261167742170206326605106122140849912369146955549914460679407204135224915054125838316069977840002348869679740801186683577645434044493470983543058146091185303023094563532423277468100121258788598772860807272811134882615699311819806116834041704538236423996521216711742203593600629915044036824599198214118848789224571810204711722140565304922474411114275764996620058168474538712146429872186375097025177685654440367954340598235274438979011573180681759550873822088003993249075737940548067965670295067096548764782164469216184652449349235538076546952900514554601452799226287260829094210735091535493233822433076711635609544271746083116834709218424852878526044994902358681019153079793697222953149630766500874632067139784797930115958498492727047540446932860638009512939751263746200312462036831685242563729845804851402873681606090495877647291516888555530902879707993307434280571308960324389500686698637518360032963680773239593623063961621002503314862590866872581949003768282164572036615278071527331537391165575807492277130040914526567392528648090154335847390069500261531780588748761046168622344474707955234252409601129937978245584590201879095583185695988989012650601627744368639469947898940024340854140813649945213408557275718706394152858911404195843302740683770781019887663524308754612871020466329693958596442664197428650665946954135429557782376711634213332182066221457982701938305352727893706021508118752194272421735676688520380162793528182026131879985985808752236946859365747544935120694832898809045879308416501545671023981634090209341631261379166259945951090080920298968690992588130660538555507510884301652076595612848647996704257808898578232635522170759723448279765017784171986768237953262765231208389513383932504896890998910314246647702396558393205622044151471883590413606530377413825021084246899863598113095254983776396983404000011025233963529273107662193799743230189541835649060987221645083743714920717938630623088370471002503247199781547806177455449608263888050535651090267718281238179859533331589853471106276092749594630673908262307031263385481480805419156335690935743036517513225186831804465266174424473172914451254700006208777599882911929166893451338493840611720807876959832897506644031308366160389301538123650843978701488250075997595903945164601777638965035864632690398513982770227545383840816690178639523776438026245937292244305631417472188789946378994440339366107622652710220506394354883364864371218626607357394086305149661957390618243620960135030569809514977569813370118060177569067757815058379656432460570469954114768347818132544627840654332368925476626514064552167485667163499889189933270661182937687502484684508805322216103184228439631886398253154642530087709911472930682834762671304911601621792495318688989241846795900227996709197342732402652713784651226860919905657175827460911968871074885931703832356134701895226918282391305995865619233345772404640805788230524004455551072101711222190738170266060172283433394386420212052634719271739335619178588914368485934956698797995376665264865437900976219123996940900177509351000408299893194572787861089615054848036366710923105980653057475902053017350609794531674054979781249557503242702863875497658188608010324867878305038472857501968546130583827995747903970628114785050655050285910675720128982899572037102544807264522920665784996811906653285922341616355984559540843299678833636538376260186815059183642533005853247833448905914069810626730180436850152045135757553064050664409018912412938253395107006589212580526336566010586806964403000936851779710760691977204048571917445207941795326484917757496793132315103754966880179555906929648829248588655571833521353928470361793002023557492924887754667239000347328213252516284625305840794893420630774579568296454051388775590759565981383149195890427199203093672434338562716999657269005510179256935835409087288207753555026222172800757943574586466499263401171681743937513089782332890589149229384884038497876899941782488793338555048782696417646806815006741562362219209357091644720923114534765460042753652129789421767842722256404433424162176403943356302832516836779226710975161054230814729988523573081309215720505342031588629111400307168725076112590765150674971904535101552531900665337365015113517896363995444448591319511165939739795173781999803153968550962454926732438894640552718705299752988005282763412014473487741109387396235720040592779891004602674469348906627712781027397237819843801040778777785789326050389602915557490704541195957000148410860755545993261015413662660780364600402750114202617053174390371439986477224478668061803721499198203435657669610716417760472819922945227089249081703206397754963985141701118004887010089982444140645491397458420478447816976379279471360983150304643352689354939873079967654539443833179187289132348918770727427975586191149504178586246247866100329523483185276954671867687163881171780392515030818985371708113967541617602256093582219538943079968072256154881700947238331052450496605160458468892729861312448651380025192349564441835033485510957146983308470378691720248283463942242698050621692705581808704998763508230511272488064382168666760706719885669515269763393377812682904549644118506359500919346065303554434139966918906194409955449307205126057789825693518122505005035677439760611600629746541326401529624793638645490558933812925427688561330242452948874077757257776946601988559717685323000195277333187682006954601525355473909297687921254702880253215415639240873073741185534759832190611625977038116571765323024650970529414329089190520106511128927209710408739278931119463861575175176637024975315817336927765834727011367770061246854318966026649220166613447198473507840462127705136528249625751363666954827431660805896866065453264312620858203403274558744652104883702651726134308656488647330278661621092426941038243328634150926692546712741213872007461737397768822284411402341724962510712791419657534830982881329430557471385499836471621898579150409889733050877448438872502748334179298360003922974545738639368373682096494708758718048822240457505750976826885595000925997235131803657183855743566548415379499890805082533188593876776516950201945733342279587769633463628734845210389504637188563818096760917486375527851892819175166023188540065023766426743978030436423666776344690387338402188475567203457588575619100042292293205791066639289768007639889575838383705458953977339564995549477076451608455662969526658286854308773260083884786224759003535353070316433125788297181119196486760408197115951011087298730852498455135740749760874877270667077704705636044660901756108556864778823155492638935479106829564996954961448142229281693114699057457675083123270423260562765878236043300815486252116977427945937826377405003747808151646516128344341179375198531177843383106552551243649145592322950553130417679562403425341757727333652295665566799800560923502575083884111417210719384620689061146072771457564254289551369321415380419025704944019281381544390052754414054453193153115836267542328741848260716313441974205468373551648550515529892398998825300555521546719718020220563327069497162775257791276390367647883319165484514286379127871547338716895945837890378943858660789386153237489535976707831426004245324822425764426073755715200958582916255219614901192100404945188954787006178258764602188188757984256334933706688078298554852960991118484667589240577266094130979636540418761027323933663627855774079074759750390662624605420672837785851381425848872451737891006521204062818849545110602733818350129027787889139891947303488971972267700676022344191512512235300816239323847856933203391372084333019191550216595556441765078430104974163587556831890488644134459609562627663654083218805922604549130665203898898959766083894930946018196350128298191578019334984334915929523997125085046985524985362865423191940522845729752098330544805974855119982516018542939699924764808920217892777349833476757064061919593902250943477137489845205063365365941951044973189874214083546489017055433000988100432576715321875240906785691836586782772298251861614670576744460326760027922302342861337757944569336854440442661768927938491642684480044735659421960160262347567724936954182007468929979947863614769415655987015740659189237444021631738263100360637631183347179133609714722149429561888690403154908693978569290207087811473678653190908159481485727641820669336955226809482991907621404009032739022482858694617151937653304912999700426056535343382230254709329182016640264909383030534894368061622768135951148409342811952446973494968669243210847769932090962258782034054545051825258043467513688160651450071106447656201896612278745679383594015580825327635353728473295576408944472026828376437390568197107784174588461241318715010997386279077711610596887384834468230720425103327189321698255034119474089719140265294283204212032743752751271807284250419533581629795529443625400852066113070237593051291468398629905264765025840280759649174596835358926199426297295545760477831745334829866381175825723960556543211482018872310695630650456912431332517813524492140341323935269357157586540652209622830008793055918702727910519155703121649770845910968646274593153092129170933220374556316297093024965682821910149456142836582384903874885306294577740448268463013399491778333124519850854587012747003618544432918775686380532691016204411703908107521161625360270197054110034317729644036301174480285248329739461740726198952660725640142208582623595840063495885564273469270721469584643462052488981138877260658651393714739086374324603872904678553633247639109782086576972355427456076737560344835501995601883494663570635413179294283256633081458918791699025997026103466797307074476388468110966378686837914664015010834674734216816391845463553522292811905433767459833315809688096456725141349435995597948003151584504585292500955810112628464951574858422389872823416586677179861856424522655140159336466464970779176237056960161253186224308485240944197018943482819681767495797711063016926800100994853942355739422319257440105803815133440031557677116146889838642141158869963028257160605751469414369757816447150552148089692644381957100751872401975394349354549416365476264038943650814108545753045003138622893278526866767902373332071615832314480343811306791631197840097374912393126274448102211810420262419425343796614946913156974215537001874088346083956654998437854193041964305545193013284294265515242827580381656136247257435359469110233197159304020671351065524709883065415843774397041534857077481133724920951592039061878421142567898944420385701485961596231267460584697609030561940324803259209631811595641559439199320150740811898957990094863985440028263371827457634591226116567693646021590357622084904282040362156167441758378153435977933389372572564735506563500687812729879479844085016589127039395499349939338255660108677388164524685896486907065136490905088357077074894348550268115885180123509815331741959539844942984028325095313729273633532746877651683139550983129655646990625606038320420608617039542924181986565620238023839728498171763867899572563684248749053670831247977328600766006799413724349278296701476010442647508679112372893746547362634154308154882368904546139828175593339497153744625106902728578956538962984844026222259016850812029458415388094386916442174608540713108813501706199690629680428938095665268614604224451231074895684370417399795182024614556568469175325742213777856011139415515458789407797790031075258285156696755855281891763141133363840054691757657101555107750410644715816573915906933358517653378677801722104249884251839180028050378383321907634792719150197280004106981780093023129216684171342420710600197631166259978415958223146578466172749824280805394047959729741687942166341458322589258119859051561685449307454606740124709142916715817360527373913911545677582490951526322311609427240559503812960040075243549475394386144411540601471194716137790271247059548476424287295948311741262414113985803542207624302548664574495232753922873756836398499772290834779587941461202005628241681058186918447103175804293820845989045923056915786736877639291785427853935518193766767425068030957200015481506928214052342987589320423692238870087358088679894189931496697515691279239662702997145271931052786063930548695619862999026868236792108688483485381158052118653261227792520747034264646797424977726653636256676829595257401033372743973314261063579922701435694055081718616273124712467674459731241610181891367756753432552376767925662771165863483331825682327987894489116218680218850415877605016130464965233743183847864107550604694189653887208516906484337178552568720670170540585370347463540403914137685807395976437973932234574992789809395375349851454045780181709579724667565718070649375824035876295561716266477908275311566416733933363709748974073030666445585371119208286419545457382059278582939922043225651777482072017405719700775137499691081073938646675891115724743410699128570382703817857617900545854170800016723216515057311599679930566901965900491743358151677556748646428437693577639185440351976448011793424453326807762314249407095321153697236325902248560349769565485932308885999324055190938998276608102305546134019746241211065031543555181368472648050887104763588049123389618665771419665394859267766239155847736016508436711244413802282364591624606490389487676804861286344508958587798434602108363071136953995322361228139039882837355599686559346086771909442367339714239984435938879401817272060598729858398525233608302386712565877091334149132288815234339945253530339036128770783145433381017599273275531218889576691752525631027814118001297826391154079275960413665039027597397387699953815382933930164679784654044778025384235972423254105236121107527862375947241697894449823018545561315403361196555308050854962794480356060782799366064009622344941241268663965572629797465308746154895188774017388487908436382225046127923170417934835927236825336493091770018908415496302014110368085854554680799965607885140591405720185713488019187589692779863466174096931402786614632470243284381071698203910015408045630022853710578474866666921096903714954989546242141983417453832704511085091436012056763829963284962374375588416176590029065421940845726026638192302919818026833995519587872623986716260604789673699884747512475523847067702971559809309653551620469948233210752785955593570336053052295701373209356135848632663236026192913948968539463411162004513700565539362149271148836546562718708494530290609546073726901226563656925686973349510569345081545195515984477877292548171775079146688480292525618529858726302303269686407286922224107263925724871773095095882598069869647542988484848329141567855135213963032757234828777120704414901189269385060966961913754662561452496936265011870046235056540686377087781266470689095223544748708690594616644640067879853084705279622009205133574094936160705039634811099941193672166053944128883632677968697156545453979684098372756919588140694749824609968753227567676199929311911892400215221045434343164857597688967827029753481452613786170397771418243536753848725223335080024525178051163064602815930446687149069216728925178845744991070244144269870564911286934039638994428524702854848295517360116509474045356998166739098066933156341510562439653287123383256901924840824164167069738812607925072964587676108110164478906899742394638366689747580454899533792046478684442225389750776626097954810207594369406858169613284302335646843597144113360852907350063126352831403289360811872635171750091182047494074561847376741605365583783867420248364323030954842240140840607301962206259422113885270073158077874749413894084071975229912213058294533827564275000919665393128419050439831996612072903983401987641406043845928337859769460236740667111790400854936151387367976981739675153722050635928182544206186574964557816719864209995097166960185781010304933299994182618963907924436404092307486247838751417339026723114846329894565117055043698746402857318151571282902190738332774379044391925696445385629195059594678875232722411299486527207819689483170960641408597832373487813385990153648531415868561891840909245697098395081529839734879449393038200911123135816134101019776250686036055293819022505722603157491114979152594533225067478636176358641061895938467154035444684831592861649349671683608336236731759973618506182328243520493544169831099246391348727744002586897009055980700617512501286811812954686418538239161185576953987083044157704062381900008049513518443689271151060075744188956394448234636960887504105933688034518779739021956178039517679152587879428127887149015869274951955737820176137111993212012536243442851573610987162422549866519319682557627667992941328312195811261615157730868476819577976051243688887849445781720216425216742525974572352222014078640001273107302772368407081149576738543818544432764837210455371322454054184020940148523707837447636627343081825816300444139101243757685736643247695543888939231786270260018319121190236347308499516627242422754791336119575537679110102922658078458481043972724575045242712385248916246210454301154903889260092052072612627848162331942296409606186426851037459530932593540880951346715161248985378342273891955691426082371726742616572854076834252065936970673256654068411058500052213863073215496710835792958859526665260926052502775174440843810023954808231086413669201004097970740984188663122530959463539802597739249587614967433707566838172989301585583216379794991305982439002391574393371312238464613596839904656393084474809330906726085326495225648549632469279132282783493407713422849869693823169176706032912747867013053571643355799536580432408713043230548130500072154651543764518239259387488871870454276864341525660091337710942772643485104589413629644412406741364674083884586885071951164756032694293013031474901422036287952687905620774721227932772501486559868282381494776670051494194699681156108468424829594225319948903220632023593133842812966608220187817899154271998301701644087334627682152910694511716859154037156819647317189395506340080816212401164160567296130179763785671671401434515692828499235785697120986430053014707651093215726610869058106744055419204918079466567706067243296132691659647574989037035643848218531610436867520579615924489731584774642332425854445725259317236392723617554058511255090140510693400597848840515833298098190097638346399788654014115182187078720258604885943806208988802791851671232906180193433463302671243501614945544757698994895160738124920207237547246957848000656720341558729449850000977209978338266373473040003615144575129427878423402951700995157636109237166955772862979560674915344965298757317173237170666978777163866710928906736013555024420131424003614531417614366851111879593097958368808422773511206836621932964548871942257504058952887126717763424813375871548347973366662055956306558403887469501336823633710000106377765508257748284084355302645589193980720984609815600314155793384434216349260432115135292844214953409223900694830397329144182866844097315318267673405047603049239185769727604324935919537318946042215553560269065840917611579275419146868377072278638255391545280725966083613978932528911922374963307808036125180997474754153118613224757009838866531207403635477546738918995521364161708675733215620451657219515294753603266181840993129324058099089610836455789514316704391542878360461501639311463622906647864758398785730332928996867214161777287828411721407206784598526125826090725588774908207980647506328659163120757049153806664328739767302226229212230130495748350800566070047440513817864742424596135702196369132681209721209684124497721765551550097601872911712749095061761943454722596251255326184084745548679615347118533536807349987041700978992782236667968745079268919618046980464136410626494707684281889163482976124886032298003391431118711520804990101119413129583760499983844458118838066586861659440949037435284669787009203246465703760506257944586181370851805612170059985280552209895098661478370683813227705073869672328992514940110896876085838095562601127791009671359856976194502194329821104425939947850732645121246828035288890808784899193134752980371761276307531762665641932656118207402149509005498283405857698429267026097663419354236646861339323688924796625473872831528591418938263684399226690079188501661989065682165262361418936225415827757390060905910300580406350752043984212955817983072344491653302103376165479006984439489937866233484502645955198862651832213937682302290882224309408569674032347139418837111684991717972106135038683098121273565340392377031370175323585298343513921730746575718578660183819406241459014843905814305449295927230820644865540838652055447828067840349726315018069148699343246080893777885527804616011852827093978679817389470503541572483733146059223271956728526854856139381547816707372647887720209116557889648343512151139775238499725959307651539752316020917199084913900579944432092344900320320440341185069646652032594799469756881962078224785065948469155614208084086737439296977858858351018412634849981956587794797945005296924305268796038116485482453709160620134475650091924866935298651517298529074645153926091470425812761566066965001308492652330909445630310266144951786470076886305175874566629509350202910822688129118030122234381518537924483194138220512304123169547840549824114982525389696367633012880609137184548906947346161404989321354719671838134445810593034896843977633379676650709199126106269857421407704983642174944314234847722139236160388352451745236919997759327705098417984231088021979504226552647179445404538594785705614082738500488394095877217228627455784756836423014515885586851642723188372310748521052321468403322496048357302473386792551759630933095282313625468262285838193420777361924809587194023439688508183537524362464229335446725418166976353478408144959307389825140878470215020288610448826361652140832976218440291143506783412139533238710387611958203959221365832817258600687746686886895807143109200155809103931708580739047208275346691790369971921595552350036797596571540493525398768402395103970711249718544870433544762695836149840002381188103060196643072053965425246249942340384631602575220781696377886526124073657493420272178470981635239632458424487880984692524147039882894471196740256752923021574784010571010241225767152379062964616549112720029193349742532342484242948294594225787378775126406201194928624470986173428512960733092052824465263533632033830253408702210515821852434723766787049771407166033634472853802496681364608098194976885600295084217973298218879074389026932447788155024924351393937269487224198267818404115084030405036440676136583637313625050845687803182301719277783529035413411076794918264035175877626033356419441470637569816031868803024836266018539215946807212296224467370732817868254230584779816903172324375011894061137087426566038810327954301351524684594559379898672841481236679100889818645244446865284615420133566890418196296489510233795812899442854940406945640742094391794789496936248256714542157702006589879076236293023573245269141955292641750601259951090247826382726275780677539049859338188333222499424643134357958781350627969999886902478361425242324319773400779156474509270839870746716074936922718823932868430636684964410740881506141493891131395610424075320997329937559854739470299917520653841052637252166853602059133246010807655198414950163081580437152439070647304085358971973797617222667770076923629798696939904672205859200930345812800375178279592360896541449299408357080705445874136413919963214896219673864717717480380875377136795750865348540260817018603120949807380225814464411699969423693800944450792321983377758941179717498146218177256448495246179198243411618805702328621181067946143880182342538269800005281933264450790673955454881304248919344443949137668367173662053779133804134265304634549673805115764831100680296525174722077269549677236804866452742907251542121491909113160357373467881957564122422192626227079438458179416696766615798196020266115555732882221193151459554675549036697888296771790525023221020311938713614477666560902536621380158700794397118903116080825398395744356424977853698227232215794785860667943834776481179961786424422033600903426349387071428736767332277023064183169340534306685096226946177174900975689882519486403982187317055122771483546962718752401239512453523631847926471670604015963845333017339846375497327049744245314779567979800890439401625108388886445264748339562510821758184983271977333565001630946039622846623144804902865700724927406216239222556646168224368919941300518174210598935172417496192384253785177449207782901771585429771169836847822179819307521069518480171942520772334789501538921888956634191215583164917699130805882660828522391173505349347024110302370797313256171451068799541399510231652277326566543460168588948800384139499156039447886849339488619227663863704115566803162064042119180032277675140546591114071946492734127467156212813978715973506647028949636979923494231237418983249569798409604638831903489152260162855883249429120860234182313120893953712697066449715113265115037786302107041208871838893741474108062641307532966510596707980053045752545313025935941397139335655998586327418064464161964734542933368114892416426990462463169983010398509208751815152184025634092844510889086482858180575625474184746669045365112187300301741046859914306327310293279862047363149539056516274045294279661623862687375599386047575889842569244598632605947305912278946807579866931917508787968070688794694412534218909611938584628683703919675527098221919779499023908372645914230175795632189182968463454371896151578255691073597623546304847545524265091241676006878448598384113899407871212878611001029266462935124740987483650246141501416535554522521080826885829653949260695140041368690986381246949081456695161748404073882360912094305573209273105912018607307955525922270888292772566483160787167424894596519976450425827787287997529242953342809110977265618153416129662340609226349377860726049446951845934764664178861203311454641702128211708469148411482635738899442391483596432806907608660952576128456135236185367568410274582826342273354704947248915144452818929931657878912069950768421436546878765960167134075335176750469093820080325077379749512248268954682487036740102062951459789314900525069973329602455992259628911461696960714797880107795199416682709855050208669183559800894595985412816611355905664007654837175663696046135450561272745125350127527249525745780386755894337604473854727195555404246827314278045511803937006127138964102767162350850104443905443758701420782517414813410735960537695792505450536713504229344553102215008454269433993677599885967737829292325476788221102031661931325895626308582876204906687862641573322646362693131367838259176900316215541458675871901373508708787784568473376898780397845248881659934381762226938614370052323263725994910756326769437991600132544585131055802168385623149904787272992860686734715972346216109168655012911987977899284540917095061942767415996730195274652824683368231248940567796509022561515726859947071911485204671190730351029174327301670553273046465622348423501187000180232445194901288248737140550762810388213019178238310078501127836502737566865423750093561363867687011021139548884269528514244766742099626555109544644356157170262749449668967379297025232976313096818620420734959559541952657781620918249354747694479643884120234228079368136060378664079526601026152157323751255956727435737848686070094970195559245932951331802566273924881457904655443335742327682322421530283477003028981119922782598657445437111575594219651825429996291451331800569482329746522609257962650635126724820899952361169865891846103266083229221497174412623433185637225024023798800450768283907399695319163691128260226461102487356970098730820150473560752347465667278306381838802286956486514177403258716029861894728717731090046051050517653261976205786694415796469273925085128588264371899473050498554135434938356716234676237208522151745098873446642745191118645171837698533484217359997910393742065037749385956476875751937180489433304060418810624085760229442859823486382122692438547579469144807595954639399554195623722565068199098198429323392089078029142351450913853408560566846807944739341657714980823940207791010119769017982596847577408210077182753267037808903028081876011949007752923126019415645486310561972990364407093193355244381847060612251898416485565969679323209248957062384842029687168517668606402320951785297256180164074413905999956860625871552414929058037998406323418782278534030398572729282874837417833413595560116550151386847658890115579030768004539939170732357976108544285787717018574397589763770498638501709646396792318556738030368897997486222482789914802438844321966086723597183314625679650350193135663140275972078243531870426634761276181789148290924261689204286729005021102871734252134860010230907853542859869842433226851852866603548641359057710672570548540864510767398244588127972340111302416428632608889881201887178191509658069447549374989663536684119855427705011624101193441956098068876373505297243039092233870376996754932961102804763183697752547423598756671027137009163205965773725762751827817658200065891217699454524742225255695035853790911970396534796896733779529953551435920248395523840635702849888159133589792574479786167344324194996857133817846972699655873401018310889979609309594232606539906938474028724519985934674181016070057610692405767143503714952896930170572550396908412323817548747295436832004947823469319371486244384765291395616612484257128097279633785052234793823395346138220980374554239612526087210046501896682585115365712136394439816452060538513983833222221279327920826317803335754761616365030355340384560779624693442696424629111585762195987497855305757836727950045215553221246730952867834147057070048547174610317573957745956765685165073634759872091868192455068241672367710975645025801143804228589901292529360500537968746956123513909008629664523837474987480896484213811907135516992123825945567290080560557780469104640412405166067164678674881850294509881481130257757645830289551349341268872974459273942481865245310405506976376328905507590022461848757462982400528240062157692265639750768048258890693376291999494755769083846480527198034098303769828414529032994251503689095574791486853800872307328184399987216917106172741065583864135018094661878225503047861294037866291544573756958161060112399146587976382791778360170337552182380492275916526205504959286161976990411676452209315839887853334166914282411005941986437143539762870150513854785273897018452220287690923593361475337814100903079645285309122294901788794117671806642511049432173140609148842110993316188437212299732966961383507039679864452746748018140669554987614073901890814145956411925304038770681860585747978721285726734136521201878784785596983120126703174913967101845774481287046925259602477704074385214160705443090928159081793103431934117122584739818594470871117492517516497506604252790942903512711312717611120726062782716943552723332203661574331549535379738838359175458761055733417799860688967626035044658797507104251311227568365327642744623082818051230781274610333384529706762502034174408788038570748367003071262251225546346121363312540816170634411307369163211764796597988929761171985680717327228275833571116819788985311621511417859533719209838723141365737935854096178349535652049883489665576287612861210034453052216239810267370760996817440591484558620601464701390048203594288512740104178983657127279045168580388171988453544388162428949406500428450691882555327340686275231595903368171980175565985804052016329356781280016683327036320463127633724198736356254358346892738427760041358821688406812192530262825578593976882967742646439435239222762915991425755073040699195056744225772997874901158167483598748164474897443269889603989410201384969622321963070475634493380252629206663048415559297269966391611723051579710500067432899237198790964168505160139504760277446761923835768847809549429587964712920247939944539925634841749489032848649451628026876566215222803835336131170988635979497750610864523726506739790888053359373793287791671555117758777511312534883594995868271666150858424878189849268155184560843822629937944434258562900015908239104452141301165650374834415694593593052420595301516222024074863461676110572684991139042970104585339355025651315876852267553414035287483113727680260093786368240015138121677952418804223957422330734010215663013564765989835766116568192297307710244281679501392195368081867250036854310633920036060330053660668589205877278099479152925895710092571779854299836626924705221721334807954906272038990277404838045434190791687593187517066422243932399599471348626450309565747202889180024168932424591683962449335071064802037617527658816270708289258804868585607380961825370474736740185819202543735930209350953081689707527807554704445903206939741922651961513590899093030604939062392356234565232745046090035228876393617611992387514907090512065492764421897219871816771716449748798519164311093521265314797987485899993286784940781941494473492240713041239242791503328876491408462753006739313723061489472051305581055658725940449639923570019229419641708377622569117814184225421014158807503458658822813916910573369484693759854923778217007588879299458971694580903361485490901748895071705423777645241096371782861068998488122619499700738498276901795625706142507373487614645899425594252296700026055355937434283124012865452787208287634975563849078879422822960518612450335215472243380816820408797917621200130391935376766551591536364770463082869962580025356400111523010493667717436660405094892133218643144087004123874082585033324683009673982989963417319938578603810173578547869126254155508388847888260762194373512468920997394693163970297267138389670604219650728785547117323642102356968303114274435619531929495499535313748494988569415663168308109836361730791542560015674441185371876485652798149612830138838214408668643761104572604854260027298266136154349597633950536551592607705948590743902168923003332537811602038109349910793719527889454112340877900842058578080620162633892414905282130998760441470266443066303718103547062251087345168820865108030334817100289240263241399193222204708488969062722733984242849876238517602108958214219533154495959919282431197370403756552844670236990182175470165255563941427403278950134011811367622191915060487895806221199178027270468433812835305021931811955633568197865038721605568636014384356180080660664035348335362341283481588843190602437652498420934909075583108081656451526579522983814141723713383253849389837650083705172571239667489549468341602884341203676081970709096444639052111511491833873674227093043690330204955738172792772346227771530148171200513690969386342918738588561835810788471931546624884839958631720157379248370766487085846986554314724979079722287554470391157725741486623379947900428143362261213135126714328565878995136652569325465597855724752730531167522865498288479822790988177105234700864045230873280473041200955823539183155658316631057514169223010798573944920409195906257407681716152881976119541774445167711491511819996022928862600989629846549043636721700486959738009583872056554737823124802045361629129989151994567080690640442766872090916549832196980272448240841993725977089086460216945626043541494225758434315779217970878555487850142918659472311600919285229482502604718480469030341396380795240516597679519471711173709803928529386159276966279063109060105716459017283445840234379937498970374682383156854315496450168164501046939940524138283964635736898276544901602980203019827021730025634513687111866477990619497215556812921095322511420079023352504481040512743913136778346184660259487214034754144401685276418027207643099534376562726158554143975049444844166579058274028158267648242131173874921424094014179571382522058957950277305273231638199887814975366317618518779173138748826037851531558481832922686495265695413241072392871579274854905300286557495987559791490597997919805014552747022415415959365633294040121737902134637499137552237528073592482463819383267081461650215337195699418012409550888548042536301864085410857832737935258990054207943141599149991899159773362447124680851708176409578167170869228227675746166601744978187259944970970556231875065318226494314680015705515434301901721592991021833296626446098088758165813785253891250094499225829716005774172955558669839532891386730138575706978294344529754905756340206961572377547996015954220372497878969784273442070686014368553462161419929907429794133810335853779922961430992418843037858875426010851824100927006378416191662070983413815900530028038759418485978373443837561608810784977823133668648747421758406425259135860678777581017985459214238691765741615698614606441861864307286862166072612915224053031084600588133763055161487918817747091253195189936067583945175903944456176038131508649051674849330195923703598456163111215531499699712742218069075665545299841110429951575798011530446293256154509883423629514565568425655913172458808288455983488443001533752197261448172987773709164870006447482610061658664913477005823139605589217665939516094049235239104393148298536067901739407993569746191297364286611036575147619405767967530082877887118502819471454031760871928870784880152600373728491298141155624138311845017776106598436348634344005643857313123510538968792713686492327689825159221086583917287424180829921829281986307589902535548582191981141882683091594980640842119068669394619257948794493273305195983815211584191991924452805912147330297835943629603574783730896624158155571225389158823390871428063270510886741023581907703150449452172538923237356672323674804382418284241599965629887034181076322672224601167315199310347418360748780717357754884205250049714933015877750995442853907890096286769150379362751056695109278520160970808153119710114929988496384118504596557806002948837017024078620290180850807093986217107611682686817954387920165503726135615485077154505416290143097214000788317131589126424895983304808931500114437018923428511876650442355056377674363323693827863955476927010503661327091021918210358960033608068035249708280973442474011355786334399209481039046692577336679385810289522742393517405803764401868888101870324431280836227519021122047392241824098825247234990178865051582206218686745783780408058282064277507792457566934123429809193443270394611862739396082443942212896844026220000166825402538978947273255837788895660650236578361251365722976671488595638550288173221649685112976050973715904826198358176038449248932312879101520416464566930081058503543137746871114817254707814931200545059674334293269661431724043913670898327786035325264081024461116431582616468554034887049692625332495824467019036468518124945744360162244035347233346163731082208275214260704597757028213033868153555838375567538316644398216550281427594771226053368162180344291566432276101990145727562710883738797163475009554968982324285624666086473617263076432266289289831904390245417713360364733433246444582161512168194855040897783182437685034974851369842974603249855602186105091327355788815387565208994890876732096640461009649350458827457652727360768231653278387637340405613581411616917364791843198430958263677919304499237344286601157925874818733970094764901327396209656517510988768926997049911194021456675187090555566264926627714450414105011836951198318493366831028520445767434345538680900653542294576044059334679707669627036960240160148616035880325300502857425109231149283175945473632512533146890505696244582217163517875302869528535647071398298504716213383083240740230540262939743326075198433235958358361633415790483007794440277153645419004474403609165863912146777947856855427898286453295781653530676187684597854183611325938974123020347892740002072009514727745623829117644466494532444696775753237595729824729579545024626251771220378570385321777353873748960912929393996668866132974481448469505881633517098936516577363724708990416349898501700944879386636829862655579521088523799751930586567184059298525209341237401586018771491008165203744255992972882669401259005277292770956118112450522465269752288140625810680946835012238118531149890507941646922777941086919806717796711656971415843506989134935228601314744552470167642589934814401094199772057931905135936471093932375426797480138926741769423211995728193115200869449437862904782146551357378403672702471476998378471849315166394909692122551605188110925477993492017221006941403140524239718302555605464279094031200384305318658833933638421457177024696093658003897574344879362180474503650276017240458341132607627705674628304585571314353237172456867796654480103166253888253070083133289430093997556004955082032308253160208576160010647723251106763109949742060587774238901625381616009906297237382707102923159218453365593435548472417402144511243855473535560067839321941300345987308854233588524996178214203107009021454036491025459330933840850707211081704171511241331932553649236019676261437083442738932553452827942460280490171862734162297594402430381877847170686367953043080228411213871352205760384125903049023675196639734037230056375270790194481506181475726941652662132104103399621168874046013518030515754246412259898953480165591007733202792457366239898850419065037251520369650509119231472603582231275893083569748085640700219852019390729568322049158189878554163201214698548212074023645758353928226105109205557048808620445312672767563750644328417330737989219232112762600708908006768346092521196318696219726364317496996979396548751799072944374979202964124111629700545919493655305164321565896125660574875487858547662225844193893808947929422549048601493737720420952614600491885225818553478122420012156965796745418907729467049821831636808477848035860756592187391249262228901279070380292484495816526942536131360942516130254886161235723530248151181477617735198081704803619471115404543260898453967343581247956163865249455706252721779605104408297394945912058993812810505664344554213561846463213205061968168887893850175705129645511476464400079872572715419685807060228170220987551111786561262043849179308074692172549306252913263045668991252334214648058421675264916739231304715603891876041617934414196785582512700131200832981075673897015244148679416063024468879610969239374783696650377209696844437939341065220916445764295917012490955120131249417955198122096521335089089595051679495531646446922676248503738050437438039299590994691669306541421294366098083984645874415606228609332227269099739852186704067923252897522662341470235181954576436363408615006939130620190414541230371980975430778028836343982665832575381270605211691787944916024329728155086020142291317070522637526313407818280518428025875984337200208778421268204997414364272106651801117543375732042425647661498365236059297473877504104011347752842761086449014089769317605086866200727283302305469598045900094070711287355994791414156895484888803781127764686548302306092206894041818598772313531021564536661726402801300006725364363275326584931234449297399893913908351938563999857369007287602506366795815133110570235989476048576145063124010806148028914613377215368489885773799331204060445140050152524608336953563388972226573541649652542784377554430967932070453172078211259802488701317751417610744557954918829262473878850730506588921986415405075520166471523103219298061139382388932930115089466152007007636255008210821742821954868253655842359036957833759142471669270689405423963213878993529108136000270294065635194670221081929724119214912481200424951508540883827063820067714019011774211369180209641289501785460988450927520234171270951175846774446182940706014740798541075354690772712874771681154899423461822011559609411130528083652650726210964617855353670964481822495347640096808144322718333868253586014383351587447068335327243264779827962002697553492388458507966055845434089774959151973981625634800782620525060757650968489660659394905888396110541769215356856745396437811946722798741754336297388569409439448692875196804617028574556779019060172990638276247823387092836386145086965133479330116374032178221421995547857816759239750640898442917383221373836781797359114519816872617455926487309297381238316899694328122046618779796316510457746205187408669332745753981778320151419030372073470165955440639847740157649351155995060887958205233656166446075629871713869033026895124512163173405747124335113467705910039418430477979852086410725216300617685182040727835597910910126576399739332254620290889606706048622063940783361602133787625319067941882942511711081880935737974335083225066963014085584370609877766604179299334070085248033683591889715648493138064591209265586491454730487110055350716432283014309368132113059812903574730558001493237055910151082167668735226911721963197594740965612735190186745273281287461848796896593784713092230979962775518710785427121495075292020961690434367290623032357709093612171714426865110716142619812484974718570973094449149952544978481110723115589586514130373997312246945706495184275455974922706764719691973448975169493034135164135017155396135329199808320131613428909155518401002842565737462829885517129988177173290304364156465309812871537642846864641043923283342136721984395202707130130949218382538362592660021685212239392178954453264565485050234656064287493872037154435068087094874702784337317826203930034535851186754723664461062228669752993507988962735795119328310285606753585169307893058769986835254970497707295086045301692877045326038507334462905446873058547066321033050189293708094832907726555961853548927848109787895448167512178116759725372388190815340332218723595279499381585905261745622687427150673519031077971752741202421833462817513301976827371773064536321553935207707114979874510865944291324021589365754252581904910581077373541585931117059105592737849066462193176664374898426695343795829864381918357388126846252361427863547320602211838426956618144192482881511427984456356875093008148237205136987902490794789969431869091949827020642782153611565931679661320462870791200301828818187120560157473519617219896524501808160918927907788512317305775322008978686390591469454423275551998429536648382817610147277342062516145429426596125990628289643797925892533300861489980576968755669941006100619411321740403042613427071950598782737020598397159853796108137012714388221240276102758922016731964939641727676948319459510544510050410096049840504022568446681005753241893467411832211378497688326154236871595583573885545200475803313929357291639361537919540033782038100754767609899117548536501886564180050776118133370387480056036046548434082067995164885966444524032731680595284228827863893472610082344144790625474072066398963140401099581066760630231214493277234485744947812206273657297390442997512278277184948911761753027617164942285227662964792512186074300061183762852307958903764542485447628160003622544359258000264649420150864021871136198771635490264950639042934689719751941167861180575787816202551701482575340552542063622080003953677352785295918132490744535140208366858668892066652627587184416580933045029395091712931390517038621287092971010609642201713946492239192670964980552312877791256964923670018992855329768637233967841534542810835345608363114000102861676012661199994180432462376918454168189626795688620608182560042353867108872505369040710430627949809485311596413192627575625754740147686340236800455025780913911472111230529882490201258194371188030558154721859942974205525349418471939217893673737393074630464517721346760388945168697985086711684253516378268067659224681314682887935153838883074534111912007326344295664976251386740146536349249621303826295317664273441517562994648041604809578589129510751275878920665786575496496030465651478389639229147570259959620680511224507890036659376198208803753381515448991796574647827099167195804107293975835665580762582264357935117915142389366486920271877906145878483335132269360710640720310201694126791366567700690496820612769628294587561529694998530138977439885586183009681871397577454560529986913379182483160266171421528373019956692027458665385150494712059675099044448374078096878706645820473468312695397283058358348670487638898307505677112391574669727622198733437718588248673024435829913560128677444349935757475629128791840301581883540549684683274928861345615243516625693739479451786806082910310286575803132621483143934246848710391833681193296255647915585125874992462303085581965805250764021353627334378066446435376873539026880738944946445460118387247338377806545893124184828041811309912813769790432760265961629923859235989169906569302347247721263984374513154192739654250627188913430172059202816721456973633829800646251044799912744537484149210848863611778147574764395036624659588163798476398949455968876954678223382301050136049117654855601792634155702108522105089289124066693640156856399550654265844366332689096156950021637089774697600856431600880450848144091189180998700743607594124837803036407956075155407320180790516277840967115267773896582563124408738317299568011419633486971497865435766144917060747339690430713189008862232422564394669882426259601627423004429823643569488143931398628056708577970957427560059462712767790575620938332763585602339536627357306482311057288185198798943941417315742761652799914158166688104058872126864614511507019871314504565755369457881024877070710758783042710870887817748509905888790533822278517817998920477854011066788359853060432365669270881721184434450284054909739009179945677416598335993841865407135036820379330899428103961559520351683062704680546606412023807588092761353643885252483476166238060698147155103990985631479435057604868291096930743939588552220261016164901561046713294543473643915727667166740069389279516562090487361947819532925329122550858626325063752666211754479167606611547159756433627954014524087429901904004653711208831689051232727790598530069520356559343734079662683409833190036571925909461574365571308376910195917498869900926592198510984893251138934206384636438121626619165451373679477023960165021058573856924520827179628640130067152416664114692156927730785611406208601569026225928964023472825433620552777941962194342769187854992697006192577812651356648633203835004352696585918471359112185959464270172150621558399178954766594020529532480935593850687439862411222568809189896881585663379476931258795595641318244862888756858559245612899269916061789301013579572682412892802259547648814291737692122323183868617864024216879427734586793007884488238176062291761536625665888406857176853675550601745188475754412118888825948896794408473272729239086567844172129940608473230797032303978565109708488611081967074810282234447530294602687556373402830047079468039492982513409626330460124540616969107738707072851100384237181175167427292341897452705076508540420649522960809968313041043726542443043470016337817345099427705124535896239969592591845826759625529921973748701759686255003627818425421439135225543504691219683381007043506237099733602286313698392042664613348140883417421580984136310524976633646918615436195274002472525472570828235110010132963529069538470554202695110611587016314983004500868571344105244121127334018288215038732075842195956915488873717342812289666368796587700451758767178570062094164448681903595013797363322070305780300902027967426789402464036160855374207360875717995351794064951091486547389607193068682059619371188615890027342879703723390379851468170039830625525452146121975457449760401669939584007650197257429450128845486818178297343372826814720190738707599631922165414072289394093596900522740847955321453175452589579778950704284226431003828407240019603376627528623157107265092738504453046517343259600038782107876431033809299294323040783310893471053867698302325093087238311442163575725171121434609570258018697901373182792013476977926057580578834265013454084787577157730410176845736059308112093190715339863836967155426496654931858939934357561969059993477505701812530838071077727495408353120956159438237664746234335007830563750330049053278729935165914694945028280919763137066729891214130414393794389692781928270913984090294877949611079852459474500640913167143498324512417912320829668115429214778125870250952622811134488050095813872725090311431092132976470321102170639440978324574195526422248505767369443189433944244627882974756507685253577021693882034886329217158526557909240402812580998257449381774702496190081011424826852796426040255253326904958630811475636632914632719783636731709082910534826769286533564716399214970502941462030402490980967263734961942806658831829345326918301058481372962849955835386471571761625390284850064884290110776444236502332962756865742788347178775884576705520412128176132447287668438698376799765636427392207288826435572734691149134456575077950986504485513321614420699630895043226007895991935995516568082069183875971761759569422714835211875099721841052860103762601466400313093675202715151938815393024065068724295958315249512942504718686857684273851789639085810140697892297152161382511975014808415147443250298526922438648439626550370762433385510568489793065432031956838739966035942252191653323314473367492534913242806867514997544072394116123673849350856758424542626575026068322914921673589001486659925949403973414472412593938408583399364788994525878924762587520618656969177095792892728404366678385912563588454273609292577495295478222773113633378544630612720501614227965727646458709941595110802140468843665852925870906071779047644920844438930835508432793662737529115686245811080206067668072825346485696924273994961278805241028748442376896710869885452194640172524947152136647678982235527131761221927107556477630536089595186093036922537306657821367661034792628671086600110696974641297848277031241512702988658326112803373162329683861843933921320720176435024219266883030133986453040204967531621704306691327046344969042362382069902812472808828519964016788779815641699423180274051385890535427693814599287672242585279296011051707985188196697268787963006912315209007238944396353803236009684370183714112828037674875626061243037973018355692963535319668195536713265151786129903637214257623300175993318130341548578608807535836513305753180728281581696406146290479725975752900301887173927624895769303249878645523823106698652121458816516575454180064796890075567327673769258057867335891166902207394743230053245060994845854419736678364518793228745409785931760266690471837417958586532481167550378505799408314869625448331785834699411601342451070078344286849066968524058565910408020620256711103705237016563904293094314298464871778729079763801614011517965217138627819701925253820144508045216282336264535478718537860768299563545948611390573562765458092829167316642713131581117428599581295916870110025171166895781187429335568229518159206759631605845876292944034678518471441316042582557150686243561877843012754366180475539229197963380733044890291445947236690226314658303234997138131181110433562985368261776478840709364466032356966360317413700714215316093904287792327118134051478639787871105400046681923068693543687903835968868183767666268473665155501162844407691753051287769341045873042808531673610009740794431829014751554595425759802443335797131814544028912597308784882542272940992732485986606831043550941786105748204313644538400549231269223694114905476732588333411613768831438766183911814612758707268515900621547704210437488939295164416319886849706999167136818700999802482946210690875977976852085665327794099225662088492397718027984550293940094720208855593372300912439926409642983910636830291107507650737527677702040329578244658346490917717799274124066720564433163908662572977598001208760017121027442677049654395788397253442926282316185882632123855853969078985233352638958975020852984774910518464016848189935318469352693693603767742836639472991163977496587099445559772835400673149938625010371764961768520094017764669600129266755620337926934462322411265723212821184562014116750087338634989833429945524688634579794192782609702574616391348895735077411665879625844948256317263065585811666932492599574614117178857281205582060113856993916560861493192693129072592341524993878411645073569592198545824310166348218348913055876402789699222287359627477678296081195948283023666520780512130242341931510687770222988508910787930433960048534540227841464313418029885121290119235568843546160152741618812316479661214746231666834636794483632615244369680474781061647680931019629512771170051969203053101617509561133690062677005163342584948919118830982723494191790469839028291638010360993208939573765125967862193409965034458832679217660975656632609916042304658619435601765441489188540552688841071434208565545994195096221269615053342285358776130993974184557023591069960120598122518396889869166738576627159030189616434800915279060423230798684431935189375501216411454721343929315472535758617088667784965898614540561445859005369023368285112166737505997888754615509811003773230487347496182754929993132525929782407836322367618339951599489429900994449121436077398496827944038163023333521218566743556930509850092615927514372005501488306244582701894815435169987261315871306018501289575215684331735159323969095257094144821309096663740626772416735518610077937931527394093020994514307476589320114366690919464858432239712006937810468254652836957278683280091986475434889587558809681094406892292683249573516100679414788651600757892438741834450376398745900569663271122444295204342910267911695689446499670602195777221461959882748646147406116148724139250979346725422348719351921964748966550251995222251148847036745732763088788429439209207972849016636030616354898855308547229303856341380086506493553169727285281648042211144933067005397313843015800814378796846500217420816800563594154400934432430621726383172840129295129908609002970018485309216124253063691021593293226201258534827624186678787311400387868637805344807842303412177264416410779304606803720827721897462261319555916685136331348241905478137141769654878875108050477419405352837908411266606080185844716262772629569748316614326726461639658380540890707080602792284272436266542949139148780887879937947799456451718877839247792417430234165637980468607339397348066753261571851815244692699386862198184782457938411204211655790683390073300143335379776598811623350996522970523013751369461666105807346791767680989781278156969799675219624510827490216190920088945319924420220561934452780191501973144537860175145725686375450117618703108768750500018317052680744012919077746666225795963034549450733702504223270842321558655423256933368206959037577409213030799443807296173485160739468567232833835598406039523198881717322890260656219716680666651116887617072776500576966473018392746906897880906465110823475983930631825637470462119626660189447976360070392665703920640150194268283406930174778921928346114803489586784603591930616094093681020281828071938031657106302600975455911380293276830371949247829686277581454812175660488041333172134228410795873629690244377256575477830119684106886961959097419957577673677591841065374972800212416993984489967716760462397792867588567387922439420727887834356937055181715382166130385445805318936547289702455018507555504651947466859651653012837786513978570027786934434487321784282353392261454669019012297920033645960677733022358666467917659128923058566228061830371572397208255375296307503172976415626199721580567146717676042002136542844338311929346351631460118437870729273382570411996428262899503214818731194859267488546241886697651706583074425345094944859214168402828534386097890751215404377147897731402070084414027890516841667073390790846123897428362155988888570974435284836502408870279693216925047896386956166217247664193884830118955396258801751506646622868602882112750432734736211529623098625174065678292040355003686588032609569603444277461655355902200902199156737064919221802836172680469493939121118937580063803844299037569756797950307249692203932465797779215065087390028063868907326360253679362329821357352253292090417219123758022327637304293836681256948250919594839907911010971770452249264396529855715236765120572122118778641252441457608428193517416053856334670007887768617783109320066247840157253806334995186509116652698848297174315031330767208472551371950182056379548584498746126931957557337606747187896831313140018328696908785800580153471788603518477694722565176616348411774180249335759857510355901317332595265144239770173892824747456585223143230592855668578346576645771547524662462041371985823340810185881984543694974559308863192086748967047650592574106416607057845800454837344248196897967476235676090217090676393558663356833990521985705361799222490767207793397029948929779161660513322321415491395204555625835180601769398383138102304199810492021800715486491997856504949667846179559285025897133463260125425676511991343326729201055679891675974091567576894635777686318008074826731387070440668907882416554535797507296730842875879587464689521052455379232994741576084597222131885545792542074210105540950408012325112534730937441551856425668782502219741118113698624402810868968519236325255365514727224061242518030925722827160893341982891663221270600140166309733827645006538141950063519986349238325280369876481960487411094213253487838640408081260306301349890970430706645683256640282708736202966948312569178018902701265660434471825745979923160520080385776407077484390103764184220728660442585987623617230035356375908913054756596623041645417687054983899597968777103860659333873674493470373368181046801839418538910146238536881979779709205282848181366100603839484064550022861438404148984492625892942545188044574788190838890394658907388373219907304075159149852580056209157742370580891193689236147331301925624511669347038942814249016659363900472160086959645731905398474914495145257210002765966857623960699584000286772166986586788851348069965727371631486687282987232435272132420230422687206912973601828794688380439265497136043698777962533697741313595639530287591369542672520162821810625447149511075235555223498015330332955429560976897898106024210173187450359055815799527694400817509108227501237965784732762325951601771038599279472580421922624523053537123298757479200754474431158594648377283047076444699306815246347431284590786973359778180344822484161485167169251913118892716226733104969273850199696381561531330188039287522233967013553256186946794323855209365674125016951153802032755945430016118257494159701842233077866899208336275080384947518030679634539200138468541372181102057358446260967386541705881238141024548555503278708285442093237339093848322932435180771522368584374461178387305228037640240099141144944139906988680134241500978558527339926405591906189860547780718569599007020388299077327716843447214027999491799492462199340392316357195541333237447111909907563832528357939298791412701011024882739099519540666915564451161138588031437246240374852681955604330807471873200532449626291229502322893235217647400062617155385303638128995792666888559589565801072074370168823387370956380854168162503717201888962226023068491702649387005966075982715500582797740625021588358917251120878225881759565981236362070975881266449780214992528731650323808903652112767326570207696204305994377022309693240445444254826124533633396033781123660672282961252538682283760990705528432525247274830195662541831603512038304956888497621554327710294160258962208296423692537142313476040385725613208030100483236975011661596238875744089875120281529733169579098078288229481149342030976020489215422353976617546864787033350543818224974674668976597602646078355371905702357947538352513218762806664612388920904861652696949267050483367308275962579864610391747951737351764784744581760843045184632217559457273631084662469132179941788252089201005837111045900629485794395286623185927755196525902036315441671675901751473396400089044740600907522535533683095193183128457491588062371302577674758846046858605649387747030228749930282433531450187291662262722051404860343273915686353013136856276992372369608895411314515898130193120364775577572532709757181124578400253056880712809596399860212499781564599982158212532953478106560871238554180123545634794737287258627996929213268475330371560996487837440110044503136489124883040140139010153640391514620655443925877806183884043530986446276097084329823359272979893957583239253604837348777745985462503466744672978624827871944455872461220520711111407063155699265574854679544402729598682379703821043300490277943601108009748938172926430536627432847513991423594758742238377412311215100864168292802046674737345968358226000663929268963565671538481610325706845866997184388766985711053751500273461769622426562543705243772945231691828352583747554361253456836593454450563347997719285833272982764256829484291843243781882087763650089528509688904942901543076724269696453801999216175477155218802969956664898046563456156451763383394241469536610633594050733969753611110246770927333696742169651095170417011230329496600010215456525205459279884349576391274506068268927461365746178777149684900698668548275527418512191010501075244553502196119354617471685327882471183100434087375493906906577912779313515474935755732929302451455370794545198995174814294752209996434953754545718740550458184240002671535643558512221759525206324947674384002814735061726877449452163304387758857227829336693820109931088922150486388787178254336567780047592013292038571378856669381336883149513695214640360307779787685907337230306078147942677531597025959069205509871312218867989420720460393066375336831371082186897263363871426657652052057595616520492501883728023438864284298732440012632501368797098290303164686629502627837350691142051809950244376016182666852821303841386718697639938134020134276205851883838797063218015800326586112581657379028052191998398120071667225442739598245307805023627985754294683152257696146810841723103410699872267324989030905281995240960353466481141323105308656247411950574685979857930310017616327953578628683588180146494577724917033060077227618002046624956486325646791645552052998057724760697382544081701676304180286827580300106619764744440504134485181349488571093715122747791728957037689575170068905970199416425760179563372567922240938816379519719579162728918054417206786293167633644430733639934840445341471990638164110637273568703529723214630131788509050400701152701747384891364010862027973627212427860040752172231747888714109593549271468709712963250469105409999271106664205802537161534120789532141005436195510236425505821067088318514751803087979481840924714463958479629977585128010495469454747728223815119545310355048413733220416254779452499758098658023212994317504974374305127621971517647017502453551180765820565262548125068217310043234125341229966758116438449684213757316575340403106363835719503503318532349466985860633758302050041210285759037127950165953146545328497634580702666180626822935872920495649171645426797376357422503601601456729987277991485212913036419462576113921432845009058016442826440079437601470129433567333267565829688068367559167375248790881703174744772762795061582180978676151958995505613624526002712906544702347832157598167002909290121623655193081187087575242975995681059166429914762843182022371094463117038106152397051919028870862990557744023359885850751764427826044801773941002553213866960501392339466572321060279693263975177258898249926738509696194775233459422842132325934496998955378237786551956320067096562168712420873468804121091588211760931583787548704221689552926445976634935146329712294613584694100782051768391104619570191395012708798775570202338882658593327024177252156985938774659314497423581827473265778041561055048214583573318176274525620162726979164254227716746413121314108135174684962504026676487785533537724593365921184748472056345628710677189975348353542650345964810661767326221470388840884832197411691479022547225651467061001954429866487212276278754617318103313167229227872685632380058927171062961595800594784641889785521863780330954343314262891958164555169836108100168385880663790362932714356513762680036434231285956124911051730390939963340673334587327257235213551590534984686620464564916253786297011422863868945769163605607455193711551315335634175186229839009194915136658945492339080186286106318790754011018778599317658340443031341872574932754513308777859745191001652404095603552853923223032022919182681598277407665204471595120973343032767829423058705979044246234810276581729314133936758907512145946725474886452345302838846062658559636189629369192662849569924387080394958180895048762533563476071078683183843719853766270424593047486414153671946018443976361762732246185474174067167571986553793859348422424535214095209320718756674731719372647260273266711955602628293005268730596399062679181156966995381092023155123578177026581993186420442020606871822188792820856866547496946688749103617003944997419075327747016574516593921333693426957272813184925250917762145328430372652897896203842447630135689678914710250894706355636852511096075926798868159658082549478529486020401945096615093253421832832033872108526120843524387615879117149064878965435282417234127189114356814034447305582087692125248596716175582076664955852285131481115245124768495539296382285301451315412294625380519417316865798635588971929415576900046472781168472235387387687005348531473997794130221009414702008158056473239423009954320437456228324153370948764084936035555974935399804113476927892798440891266624675214602546231923458268701138720775621145939495979785639978335892198088004959274545527356813575823718889512443904033011311990708590790786007667616877222018681700456526654470363168372160531022150081868571934122045336462481118788856421355446374044318150236631800608127124567541722950483385461978342961511445102477323866594176950610414300103956536393297232838196295579402456241900030609833736095274945793476860944817891630807729526603081911657301922097429319329716972583224500764337987330907314250421730038004706765520370281957929417008854705701948835107137410810712457391696373127801914387617071068208574513765696884710530297720568411274523313723342756874713315591427261339773323868002716840748647863043642231425041882982527821133509332783193877528515994861264457998364492788441161652517233361881086535040013025233413761192663532655032570380119528636040978444883902211642790167252382281261480700715154881480527136857657849429426688764665080330640993306076392480521054860950075919351502938740610737385872222556358689406319332347877431450058286546098287423624337707791134743348751584475694727372033804372141052118327638563770923803022135361921167414119761807377751891793365147742777087022172676998535779596664855888584079769958574358812215743375287370311460028595385460417296150562584456551558583223499711724072320170595035651486509343217031729455677287221972733506134002716221070849349414949186580859122043590741023016530844176961596179364952804406820011026750072426321268409493471761238257919008660536899206519868109843327936100557377250448430230926558336349569869966340015530518535052912605499681263342752415918577974278291754613615434554958413527152164108985876787364855671071845712068473728832237072922064503381294819126684096278891166979861855013411668662379170262834923798376073614935847165358441446094177753359618841316854470237352026383085303539585048928048505237831926301967985438351149820918189424959681577282101938989410449618810497144611272237012358514261902388058761041747964704081771842261299820901702098201188687053353310450594368836976790199307234720933018585178359329053415783784317062676124129734368838396396390409691128493925403308817390260681218864076156675111961161612422203800539694311752813156160569242101899388617956399533596658876569248857475944842422288133421696546055755192003398793836912481750104390281351538589767437335886619226765703247066856652832663317688348912592808199810419224303703146858293169645878502080525325244134314979433150938347355892395427094187848859320732517197505207321842765207443748660362837352380748752929853784147088457644789799437847440694351775763808435164908398915339995679403604660380363348667769585212466060668876967740696664872522581289657159826728876939964019325141560246538024027931094715602576962987343651207800871892212797661382353979169455576179381173519904244318434438406673571365020506221868300113008368516869822121180781058452509086532044995839226547567619858053646806801554688365783972372258133730792532193089126559417864702438425901896210709625127907372145980940738824244946664934996312067924158346921681654003814242513546076833614541034880467127799484966939560833123663273153828336959266498251864081779830263905830647052095363416679026499070732839387829873881319154048887316634017299953633238215675995719564792757759110970649935199195384228067283930567082031627390726851930571938607901675930269843276488394311912259074361025757929100196312832258689557593616931661400777200107108425804736143745129156559578205102631147999877131896932172615874174919539137750838743167911481303064132347857138501008902765499556363449053628137269627072437352896867811985710822655976538411278410144144418063657800954996151609370182909922226411345211822564770505411928176164250862666207463041017450368748735938917492400738609589345060729581388884852594402534253255589526639766213988495818047449494344648086844356214332167129694303155691284543158718013876711603272537775287272662954428136546791990077398188395069372124448280596113686256716651326759451349204418887531642351530831032988754956299989171482446993453651254939984136829444098299341888442926476392747599926441663399189610108587986348178122672491193626911049478563780177337237622458847742014476156845685680095589830489222419351187550445742447326032730567598656722061643383725836947320581994388199681519228428064587674945503141034313358109338133722860287722941636606233805164799417104968906319034183221978944379442497433365748798597934985194015511908859780965899177874838868398885882513261569244822571812274031022508776925959126580156689213536554756434627685418761382676543134708528464339776033014217212282037201182320242494277652759271116740316551111610368268864965056253346261965548691516582450770837604402870708703483805726587835327540222220936549382384437565613296378782007883096899095062469579005505881531809769982570856093497618024348628898348110202048415727496856570700236263028863547432756124110250491765339001084088918440133680764860736676644828057311352326808667698754469063590916022199409044250859614163446782910169494765922075565439319112459943173887307297661130615198980036270088494126721963035411307080787039885245814801272385277634067959049407034485939941500719210307519742370411710994783688232329728836825694707589954056286696862706604930453042690116712431971985877336621281841552874358017702870610389961171189508720405615602089183875849894308133018018283613933599169835658113877089602255644342216299693097199581476238714067197272054919227863485715003414999095891358311940478111701698879123714044010169311171203239345207133189016090969442576230600588844515287245339039527685682877570322004523672082764978193787785622682604410505083997413480470679263748293815459371838425866219525045037964310585133878365629226028857075878481608110109189791426359280158975448558080162265892246611469629019614624029314211698917621152592081509756094483597692410356771434465439154477381888374150544730523675917470912821011590039971379932200609069316657169411919093583234895482059232584059530916955941880125342772930502089611040917145594105977743200156450411276744489736424739116924694131400388579762564276451974763487209060873628136706896322357136414213349240495235842469127133511797530963411854582439280784830160882295422128446426831571682223527818015294192967769664570942620871331924227029539837605146104729145419683003301924214617357277613522103054321832916786746772540906169780528657288536054310583635627014184166880045019632328496658569663260823935184885426741856144262119646866081225529274352770710880267934258493418720890811166707258410567340934742329774443585521589680946728760471263835517353593403256342591527735183539574168162107076718169088077248639372742457092027183413724505664175034771062607344809246512817839015699807756158782096220283602082140953282145451099624918581873099411547097985838222523075615726221307870867998080643418041509248533684097350002702801310174590295076829963099496588424816424108723765679345358261345896619149794155343803166552147152402890089441628104938636060697569237081541238845347163393355899885557808477741460874470789958658604343179043099282795792350978450054233077432843988141322126394380380731624367923456713703427696506414596062757664710514355715376912748309974950725354468561807634165491676302757961550346290392897129837613440886903419929056682051811552473759488528214203310954572276351018452248493344346815831476153634427285446253841796473943150397716298550234788686444282496507703952754926423484479998804119845355457645804476226244838296731382521020711616189474199270493820404444665372785807269121125157391161347180147707520101992330652110335014550296181859223961867874949992166070391896078358363630844024358730815818923239795227789324911061685570163959563122392061161586109529165530505620613476877941353732741982395160995848399034874765047593798319739238994156205223161627226113741494329438102122830255140177477942349714393082640336037651305759377621123946771645698227402007804356228263152741303486126814317780351194642568673159612362969709325645794633792822563875201250733104145090642888969260323176897467597676725352236165364618407074122855776486595658217746639262673040106929505073766492810755820588251698420879464524645312773721733732773854372214983853556595608507682219950794661572287666843290237478832638554325882629220202604978452569780959307087548660208864774988784340967097754280894525823753572764765517812796204354388507662021698540193802903705875481482735364511977016207507739844818077219595285641867715588136313453502715129429367939537320375255704432709600835744820974727606059353697458892885312385233656471890447666012612970974920702046475136414486367424230392705128090157468626611702986609146587452059279479561475293480398815938968851391349079665555492290246736815040437775099600451550101465075244993765127585910784852393243719702312625188625799172133838362904651890308584805812500201933164477741505484413664749090772183507125209242198272855331909632223157718768581419376212655467538005879145101526528372897654099584600371613087997287331408934290880245288122297932948837901489988278673070438593416168703022489145881054470587166659198183620017477484925978476021772537030632867896915465185562311792429844337431707379329994609992409885461835245009077230002346704933696639070241026518021014933717535385214334620396453237457676460102914607478110214566969799882340947862062613785814832180919244461399156469633648016605769237459869189283705368256540036626825682915632937403256109861982198954985885847359675808449048315647283536634862354896670403615106044360483105121471415715827685834455836468021832758431471350706815251801909781622048665518858855353272739750755780886599380738026318148997096401350910167802910479179772389936024953106764485455334093974463490206138796523977171858696009637809061806526924515120667818356754682812565720616810093942484749480461242486788553260745170840401429758089297145631185522765113874842158271916414934835494907844480708962086350016223005609607798015615187404301748753786662014845374114128075745862964305186284756909843908830099539919061416363306887312400211492012245280329741283712588073667585240025184256019098969175835784644960667089878452595792229838305062706884677160078298897058645617975335461756581289879383029145785655587370244250932451670613862900356096859737627877563334510908224899434514275198069489198196154276848856753196704601284660405113776916781813388457361668683646509279884399405316138924152291563869506423552189563627400784869900057243267082615750972665067191756500675728364183765384535585676098618915808470026748210358744453074889891477627463756549535109506716936539382048909565278865847507959380055798028180901473319345198510780961328870759110305105142052535372110353908159379294087545487559314282792719757429871067653136697745999667715902501399445800607055302214746819836481920429279663691226202307422579608207664363693374387870905951899857549214012531014631640142799821973885820811557539446171640873763029004786698365705205394344221204380180829509494940841167721253685052657993244201419984393168790935348571919199460557254303433684924473642158991448427531208069112688423002645055782065707909322225174133656632524691986936301612904920738706580690219448093672684698581583515621438962933043692281995083025218188927645066195758632227363493501634810327841691942556455989846686957668913748283441667103870304323244089157822553044315430090760049929682065781631110445182911620117400531602614379839784734896334164017603832798399282127302142998314989003828002956782558545540336523028284043684214688674423342240883809766193258454726151689725642048671965266668969499745811278858054589567414344105639665872515782690248356196926549336233975737754945782667037098020803111253719927861758138894847513491019607620017882306580875825772809793660452764842226012599442064485361560513995389403597670077303175352414782743102732181865211832998569373264913120042403123842234108992236859592127213110626971223522697402884999636136185234285705601270173824167194483906816561271623501010277992013702162852969449992229702393902847539927801738161370128510186719651845428760740566064638169043864872573980836432984830418359916851900350616454406031547655752773795419510265383093633589735924942510015697990060600411707795526701551534565039475122674776147669345113594066879123268334523920429103562556858260037050847438612428681478636949551225731429348177848257090932040125362012862980693133074623932054731677505348335983736550842420289839577472991965489208804957552857879088819173850502535676269669479106571031040110404703030828417885960762957260842575501455875309027419037196937848129041360705237336876582578897911118262640820674962612457170591318299482386907676759200659494535372701517376323299424845163994923826677045980353210168431806623139514060328256121402953846096769712650165214203753829637418314533698829490975408075009397438548254261692868497780518480195015869063813577848186346990914175344697136608279435420422898244886724201370251519543082363534910191564156587973308872913539291398996616025352442005305101485749632727188120572016714903648745029383524244346522440258175664812815691610665214080434480240913278877083993922523505943665727960869816205205362721588161627171812229921617691657971103966110069102603762165237011434973142221974402553453129714963934640234189312389746644730477804334147093946349173295694318020612238387201323059800169614863180612706278291728743860207788053564513088164331026927900826418730699517732081670167090818980192850804898635094959698452786381727367702508736050194191458764537934623307114181100304173277151020720987147969576709945922733478632945480168501822003464525587455029524017913634549245509588137960818858173149690388386557843935699901775270484079419075109652284934906988978112801629915348913675781338241568787460772543097687359904072469175536598810559963025873215592684985538502065560448079934683163156294669917472331825403840298814102663167369228397239108089433978058460584334163466331343448985762063556478426629208846208941820519474373412178823876322134727985878864208005747076039027538593704742562827542785887712938394663209009663218316819941762084569990509416639063557245156625838515619306506159403085176623286691426588859651680263558095742118434648843260293564799117900566413105964632973175095035705217160246670286761205708696052888758446234886766327305206647270459897759890736489016540082048749536575617356487650910574980723375410466017676262278841871482090743315431118956219477698502283699743362469802038481323015848787068337283201871801920232523442986235470603974502599087864160304242440368745566031499066555175753340635657776331945325975229469427314771157371766863324502573439583873636674616227475546701189255828221215731856448354757015767875071058289580044840594046595902799209882949972747032574215071766329812574981927249737311966378807841302031256264801929758389867516718899987259345168946037532739357445336116591117698562635791167666273000045271264383195734477099165382305785896009355935076307868051371019895252238613647755908231438624167101008801184867128759218968031181947042643455432737607604794855045410757022042758966787259466053283689759276678439475348250128971497316657569898293019352849260666000625210008334998779822451325310221539769078608055272815861329611382923393629716623786520015085998706137143311575212817582365886948055271421291105613531368502317561227290652195216873073119313420328113211664764150839833792492125868566913316057987132445791497450536754107050597761766574792566151393058459879971941469073246903646013219677292285389028975605335585500365172834274310684539477334527857344853025858853256082738113662131956280507818798715704652158939013008717594330258065728571648333671980636594300646923661267933161854016574238710668339719665511168652152753939754197247360630341885046750770694435580735990886960785038542727426849386462567873833968349961552794734302520742475588149302774844501322840327972858324839230573290051809640621708334620651102762889460947870755138180146578674043938010024056850295821341191733130192011744387481945823749481979465245035710290360140393971251120426542244966442605635741690716176085689817298346873900371823450822486209304161549882380438113265019614693688924955698000985976002926346112485281734348695142678405760485981645834758246250739267738043421078992367548483221173378245042216214412670297769042495285345390098989786993217709613383131339688920715933926236682706492442437701519953394404352275344722669399396668166211064002069746246101541036147632957387969424245548562065612300188887551358949232189115545383201383953857927440811063099906172050144341716719415870927406763237487915011410495735162973048561638677550754515479939333708756727640556212899439723150923491222843095410453070419685588995897659303047039074100944394079197362100917328629026540508756230149704686979553821136257184159843127079339701794270626624638622941787346975890768260444396646170654766626709793902759248191864459641254530462106933263553200593718566746797355167280019713377370725621372814044137276816276415507130613846596565835322368427872859885093824393781028239234159748752134848076141036951947848637129354755736906224015118493549083695887534270764373461356333948930737192649622685766798650590090398810052783637823014116848819669287828105003506548915929542946639533135276722296049432452613221192258695312443770032606178825655720187962832356156798707632781456837533698614011427355213446566894253490963717498637063204719207216262243770301316099679476138372658718735786823273409436244383286295956599825035307939827713644695737550295727639727660520293031826775010916733922765558011220943958474228061271367376871043347087255302156951834251818811287597342660604582386183327421302543481870439084139211231479837114944041611141289833598164693221943879557379134967244944484138728506068061077478036666356932959752154484585222287308134455461880058644353234933952710593428232867839850915159377256959821231341232619945663868796908879909803201364051217182046651100794780462040202528319743280657839075425670285096221295690274338728846687808172640965628660439106011666436003708013655368999460441493594169035930771370234979350799203349805423802193519334001432343925774177717018599652326329581395739290275333272851387168894832326751586287999558138902197634034772283014905879279812039654766688284531550740302935086644872735434391786943770657004923250635738789943007312659835416543518192736316201169859130950980441840113126689231613771524506573399309919942316225868490048777940347099762012106952159012419628393590395278798953522558980624185115342965438279688993347912493780425750328978019292342963738733272667843753713505434115238790499065330833382893810027651238311189534850495081378579757796889008863932241777938364382622634414201975964496116123843424502386735886566485346080206934545515686404251732511732168183179960590131248572821677595032382382432238802718726972747595349621653469099515980980276512216153044920781058606812364755307780757335074201383383046570505852404192402067363139592473927720595782013274609128233667622372225059173362813389046478817811312468812814572859787062677580514717653425453909741732759899523930533308885699395151908767350667314993652956429186270641004118343418274168941558381099018672873073863249028643766495133868660373261258664022119855542133313455320211593775257615849743002194464717585789180700765199510591672211467073406705060724152326757652683697729478999174833551475337985638904802729906999184245805379108927985059551547791732772087742373356633709506862417079504453678271677458849407580962930640755995155927677873995838656107634390835591866662796824377865210854361599699968465639337715661080666379936470629123418659850112962675858452945927702963706414534514509241884695585776063156651815534473195378823721227726205046868025117723914678108026440872436081424748907284345102751337063372025253795142248449938312942185036453215407574877127783816181828582883407408614048906583116397159444443396728491261522666890940668251766576393524566705201954024622715374025137554263489875579159584833014771460548915349756628138180890789579440988772802181280749495747964859078745921627451935245149314510311283763094387770063056894388453037332632217842160020491331672087205726163889773334071342328864109778345828758247564227268781722336284485149137567141881626127113764889830688573979585877057169983782541206742073232142902224553694534891315292333888027527319866729350907095212554479063046698099615974156408938502600484336620775561063364276967424042734088785317724059834329995013914907463488239224586567911906772995346910588684886983972586361700951334254331386778688636009469146533488034672132674448247160381685120479286157731464973274683365957997809460400596064361844180391978146071271585187644007310279330092960746551337528189860665710400387733897421220588254888606822462841498189929827443752989765376136480833961884934331506617756292907920088685058257556085592346190943744180007115362106753973995951118869273755049466690715267012449416856227154072553153102835741695772616387999590825335434262170008644024787489121963024082331463727149291489638421224427562645631223214386958158946388785416073792647857073083240913531697798308609047100047387332669476821559296118310312401518218429955491737856008951632181844612544969438968897640751188224225161803589208644350699060303403626825265370699991234727686472186250921141300144206736669050325518486380046691641991530061962148288233157751668684174883675914803430608578173451119608908910233512671346103616617524552419912413495668176919580709511284310683862592533079681646791745995591431603704195823721697222184009988190287566837065024999366881388028000867029235579564604889945125496655942357980510463317385864230231033553352681200679337141735322762724046358682541283898440185347750875538642439194328003265846036061947974428991292042496130939863294748781884998659607965862624624111133243016311076538534493725937615832783423493234072477778881926389140581111793495640018247100483126223951031247052835256626061453956082245645759221802356060347622246703204127403157634255798595382110444051480782380809692349289438399344710546248533910398985277394942258217622097489243539773981189378604892753704592337544426332780638649119890269742729954579724627026189320153490773578052049174677813760668717895734902542356775060338706107974504049831398365923114254360406607943859614037594490165887472138968078691964770862661505887549835569635750844455884413286366138245646708421087097607434004427822186242051522485755833392838776219208313560219492450755348895037927168502886739894656770809335270196536896781886059409651537093208131021109446347435931604147202795844161510748555226171728144498420503584482046491415833998453503027831435327086682919164491069760748743784918796034566325245574257098985559596984788262512533869294939148247884665229174052338190030495586115584920818640416850993057351375467610225395164589423037453908708565332587298956516988835814015051713414017135916528753240439244196248517914009536639471128710518124133865582505193898971864385147160278827366769749018313365428712761968695051440710012673826120683329261946527742400827109714641591279364790636195667754049964456720225897981792280970861875565213604697154718268521797294366430827537868379992252134542845952575502816775903647801824171251792170482918633734933184972837339119586443524510811396591774758435457331722416350368318898906592892629591725584578936463547610353568155687146905564200125418316926490581645421971947603286669738317125882669320642880753414971175830545855169424371558429567445765773815745706462950256664384566093920436119904632782220684928460313171666762646091664474567677106300251499572503737041683051859153923570550900265236962847748347605183054148453893434594093851191876044330915465084414698083016517423262721969942777563933249500165169652177211978674624338475968836421950113913348328928439549674238470596144342935060322028342106257568463886328396270029279293476896030144570206694534319771699296602392092216264830631987216613499150857489434976601582427281415965130292574648200821303821994407996503747702217227048782127703408235016509870277665946998279704484335533576275306603929855873471208167678189208840208881373332055815162047675069520123908844296923998058699004550088302339217455873532473758666481856551700933369426663410783816560418826530277669908814233288540914420023589638524995367076819451021976561418667250583873968590339994276940272684191108705184998187938616556550666740504310261744130491222837639144532808343221823084410889118975401035160576591605336156207449731129615152008622521951923323252180550811940957907400586827794643469278999142787836240834800008887145115761923883746834807178174863114563788678495464598271277957886113054205801368416521296111158500400218985297531081067678241061740165557347986468403120140369099998558681000473020454241919360101175764807253420478178379565636419535118245129634935067830568867359485535842143120408663090283996850154166184981166693550016706660908773105197651769168125276957894662498415225852855989366925716413166821435739962174740823306002662672758918057909683285817240891092549800745848335161965384510157070254295254218662623695735223220380668846419417376428178706052049161768699491486595431735277759645160499994710799556878916341758760653838930419636065464030752905339012490354781868133030006339794076115439501249658655045833730030960530177872192140732413600061506296635259624148862537005735070935283728930637652495433480349428723751683714976865769643252716103841866924356791785390714392538101095298735251835725199085710902563845670829122865597674095261283713191106126476867946091633532553517767753388255051968154392875904204467521152945322385763148442912900607236362183305440372051783368792630713412336938944552164636079168924302734775200890846923736012986230902540258187685417101170261388197113516591919001351650628466899552839475195089168504124643361221386730448855094422837635140182783617340284978928695814373389420414828396123899214258324167373402067834585611564465372578654086111225693556636900732410556563321226488047272083074235682317283792513606423723887881919168512748587432312912536948172269993034823368965870984252192406688644753907426890459739486268641785274703201243594869854093641749632232952315245386378846667493342255725355652894561066041684478426710808000695611601593826745585654647407794123756723617512358559717850590593104620766012251342241658014334300502678862977032990263134693628843495936067448110620409255789663893370879821306067285050834422500557572504418317871543641757931432770858891411946856964522150389074162577034847514621085287418431040798298606248587481006291806607502475178517466431466004055482348670713427950062332806549859470381171723850305301661056028824381590346215413717227267761647736167550763676176276798958313548672674809118937929230631447230580554486213200789365961589028013770198669429488673758933589018053014403029001269149062799250307730288526861308448707136882493483299475846808900051198849916041153011004966205095482101418004658453563448876496566546107739906432882278607841955395099159922949045059471677330732633944546820016876660597590528272564359088111176486938239846145000565092402944683565407107137583440595819618196054404200147476905537608339105318421446839625859308711432336218532089962435242123921720459019482616138835938022490616992440774217661431527232102800405746347930980048462551405392029844505991986283662772993543416950783165979671125988818816500990264932169082343710246852262915670247771765639788615970271956491545984370626037314065587518218692499479808399388318250684429771703009393507917048911210302303293239878903472105720011643065713213475301225975630597169634691421805596696797387904112303436738693946128588205445126354312417639629487197438264700239508904772960144407212060098547126677469983755375907129927893335680192904570136474089542158040408205404545472613219242745960625118656934185982457919234782636552269144270216900961377691855579400014156470258708674343334463969590086439961427398409218417833894118198318562919292335772288401375309465654612253509582304968712783094439818874972431071046577393810828024740045497237822528245365465943720345378692319096502912449441399864489987081329985658743085605121777944803704046552643189559998294998148479714901198884369604387312082389942686854576447589980824578468819738566829010587150273784802139171071232797146253658917688442818850724938967012427439956425266512066268493985113621694295551037566189643112776136606783227804562641804566986061079196172506533748977854703532685664026437013708485307086061109378567751846787533448072127957501578252346624005093021349906406202614115502621689158040517002655645092788100532455823693577662823730103956657230467239174691894803509153012273306781140483581528216309792957881506274132339482368154929212848460199275798323788362103634791690570568109687637915805866281428902305532282363552371239970834464925891716561140450808047889084541705543934710372740066877510026498249547442413557622866050911337918836649475127680987194041682218902726317529014259709413656114200350048922273173851913917523429664743407866896589271301804365504844272797711476970390248117625079249350791671285130842900636360776789365408288355421464426346304353293239048936797919818862644466390277063816243021451500508252840300185520986372916003058323143482769364079877365502583374837574185539107067312877573400509561949481932482734077815024959413950664716625705122724051836645693568809080666735846687473731869331993421135498373743729015264743077004880457770550628002090877130401606919666293987617647206235699359215432498366310239245570338940241754719026729742752271970816215698795746699760182428479797681731963616631478522275802122647801566447857724358068196981784559537763495140504753352679341867397212717185701162908818419897329993517543056557317748573359244943352915781454521291645522653968241824269141390779522841259087088249419741176893811420960439923395872227912081578622897639503133302815571365713044077981374770920962834224581140209518021429237490010360435237513915616858715990658886578596938498713096741552711501738107422070820256531208978028709468106457574237123769030294970946729049359665715586920678608902624745547255012212421332543147250515426006793702832915199600873304949135593936551375532013039746609393670996392531697174704149517290348008077899680155127995475087924210540645610934235810528748204045849994948906078570853032644847841084103975056996982834038223773714023124776816038892398534426058309120242565962583239305825106510422223259954984578098484058544102574665960341557327849821409306539014205395475926063089803242143248976216920733441255313734289412291939320274017792098202398108579605918923217939064069483199886693642469196898842162068583246466673675288945793673493551132249655787525511685370170373921715652905749317869644593216479076903658175480978109276490190033310887690726601654603016162427823073551968806136596348681856956967752561311411678653084461150375558634629254045844486656972196467074375658680434099951379912199732603835035817398135491805331101732402288984354503296948525433366479690042519583633917703770709479679008513144297310815586842909114687419721072762707455552132288999254257989226635258719274902507547766761299060530886637069017632621930671388508531101466962897862121217376038421211836720514049132136990254275171704449036420190115496432578839796988675904841765452420038970902495287340109402730394996828048147204108788694983052056337724242903327010881518046871058499897348483800245070237307067110306298363632320879128927435380473044562186917746026818849036862892875075460400304212740833795060528796786739446916856930476320116975113118604131626526663236347052716971872595855686719921111069804001728734081361646510713259732645967056329223683274655266925549993352570882308322028123615091800413742874728503593617814850530330347609437320278474582355048509657523271413258214770911239268016679298901416676026615624858584171881579827023474889586595401436019062294511233371700620835031518406396948832077073574916339759863099175379682442209407361232843190376802846869423783209509528952399037798066777655802920420960525112497399631739258205872866302489469352462880798067938352552444293747356755758452745052185445479868404768400738923068483374385255009157418025284494808235584588839000568547594267496696558045773451083258160543979369104679527696068338439163292020581175931556247193425985440245166591390333750751893488612960862704105783634722539722017611236731942109982782110630136382320541764413747307391423593611666667387161109454212048817668609385748487451410527664558777745654587031655603508673712171211754350556767852650466752586993970463139879334535264410227492248574735253200920768820608992247304041635980556218587696022539769387063989892303810401556549051548867376947159379323151375013232731061842950344839301106062012817586496801398372310945470869347567137822441029640007460072921756175086915298241022056983424907138838959314428925199574160077246856938638637110768517908827561887656056089061784774145319176143329419866276496881147669996783684566546815251567012331234735831912637734043225535676939648534774059611052143543666437519817061339470084036404967218222088606277231402059506106480927904918107015349164248743770724781506015164211283712583546187068435615722020846315720309504430441448400567470905057234758699797362711149732367585232039874884720103258039928348196501271348394923482181847676650971340026155674953099272465318347851950560075604006137943570327513419565858807279139317031417752665391574770056386390232036826130392808592210415433593130302649278511632306691106666071525776518125365883951370832601460575148775099122356031011845116779363307126164926136951247285181096257606686463933282825005230637474498058129051924110167133127965203438687486316170012621147238942902953857781536454969091062707546526096826028638726236796876867311063316895575656241197339668019813507387786225519353315548254425341357780052593381478440927690502911379270644748629270240057322030514197473282467513287577805685769802868833593451132559974988868937848315515128802027391428377761014318636909169409937854051794091776845248440866812221573850939331952395148060500659487564292366623699527602810944120027594020989620041832969332809151768081899702254124404027307530176493760726827371023853462946220455876202564352076327089388139163898699054858099021041723209889242263123936490811416031476959649013311175737945171824091912706829704129271586087195170401415690476490703317210028463937233321900709836008152151900609596562413149905150020488496084256840017870541528906293029533144668338578266935727222411676095144341541732045457641817444887600425370478771352173406322624574627733779905939758289182279019237331267802435309058040452246090969723397389543154910469740072344480388584637705992156659327157593943535740139160165342517691023093777884201723542438159049213329601170590131551489260300445715590453349643034173129023719077104723897131775472957490078458249771701502684277164700185431249773121581111691797731175460258283416635188508784877783793038828130786565200975312592298098433068123289740844464588088969962709137498426919005726013666301397329773202170662164248272964441065001336664427773863900975634936897563151001322727318944276836630019007889161193651798348071559321107297595282282749366422751522438076829698884786259963971806810078548203224496538050528458390391562739342810135395837695005806861397118952763951889004312591133271521910685106061223986657079606813167133157935905777415844362625335292238975315969910723631561437995361618739782410689816241842235168282659017112172609333468044729691724712650699842629968025980394613341578025561518545153039572436616380701044167277625772834146911435750455952338046070789853253476195784052617252038579683339612793228923476991476382204581125059340863154546913259933695546958117584683763255377802956095384954347617475491869633418038675417723634580942294695450296117429967107291379837731835001913007605445479848283101653389808796515664145999300474221246406763672302264659908487466915797022227986939146399818518696198406433038125609822677840722770714679840901311517995167969260665875663379559427396828703655090210798786803991960812665456221928862030396461113445332823544273999508000687083978305991161318118102852515597927313313325045988928832530235321802491763148172367633888633401359202193015462204622825260482990468678692944444987181173347461705892476860468855631840539493428573290317332412273916913749161904478597168345233650680433114204058434630200787124770710937582173072165649742692680259440828670500507592392202593774696489276890719133893312353589036752819182420217532683700678247394152257721636266422978824650578790157626200537682482557088927715209055044358724917809444042121725105080853543699898948112668614235624492372093206065273592378099355608354471936610162710847883553505933564830338482093089088860856530634257002745553941157305972658746011939888548175310566898001650273772041091383848221548461420441324472875005693254209624691331950192958294527083468340000543854647610016089677542891785214699862512668573876758850028866557919466511749257215471728373023100150041789054918140734430646726575203612745132776030146420114121074011096489611084901327426200135562159235035760607144368008891045354807897991159150824448227284641519154623263892120923569657075210858564540817114771854483732386957257051192584736049849398313382393465216690098580404305431738059384578768064701290968733431836997286130097371525546549580068177931596833471618139731104846407313551527549117770908738705527555940523031725474553002918120633389533706854583201733319659712434879339637479720091837345963758604869444894073912079861581323582020954134745577294301517602968011606680288561973940687859893341815429465642516864151303104688880702133473117305887360534291118588823183043655432199387533111987540199342370460329129138297222694113137040822296351316094235582873546040626353647594401525339601899744406611642207609474652123409549545829848966266470834746629782733930457697303012003434100158033910705366690732578893553514794229883327090666454480906305882630947827363931821034827597133879375607697426947399077118286907395766086319421186908090660429917721179834067535113866856465112551922213996558909456306323248090785932562584576357554655241526084011533790102815323314696715769398352536732940083649689786120460203531797837078806519489283235953365110531876875938148711395303219881632606082959624962811928493492991872641619303536115910949779404388436086544383204783926764117804206091601749578369349791769503127549568158675924393613326748029544476990221206784404564020939466333051314365674218949451610646989108119502545791635890868509328612208434025361769728105777053813730497759418632214160505159428661239435451742301537638133371330839286579832861415081594262472171954793944223897344660844417428381371839057519993135889446170064052164524264853277386627433415188433160554866296248981364688741579666657695667485065996220639518673682486017984552300524127497835385715028327156753527740759275363713118742474750664609986382693070966941967429161340263436422432306011107683503123381706351241385266507489764247969837462281482921727413842829357259867442246059364744779803934085230139119849308579666438609331191757483012432552546172738394634834578045777688085764565288891351792312912532870971960156578036895174110397986065748332769753009382717813968707959606337289159777682425046403255333986514699034434597432703212578877049864880699160947229195814962308660095679317847552848317573487844971277045626308600430901261320168516791291745494078362018006735807337273069963921182205559234032673433294009628361648671050052303757924438476884489210156437493874866038766864538780936608870095048837742908981336451138188287040139916350110171450638227027034901272660671606274540270573156035850597882410827112070021085779863352648696620045947622524808678245824019133124531578985572323797057120309473874780807390345100587807074421037836946171086642019378853434524948742628578759668026568141260266486990782025541493625311428639117446375754197238213502491570285704663790451464294964022744370198776807871718486881679015848394905385991753518120474915098382830278344925872235026852418879620894978110520567136844056286801965094727998655580944449168589213006721355411472560893809019323805213291625471027139308646863886419403815269188351595896660904552584725164971054148825228245402667138694149780914283711765409556582647646210509872722645769247298158957221139786614535934287625982921720546449709925691258503969734349568432719597670377334173296975476066773974715291233538142586224465308792530762170337206231026662362066981800068687654225535270719064311083367749253075950823391220903531618377798941491649843497062344428357432459519818598859868244546086492297633771242342643582801835397044360877263885835260885642935383395198570028683471772852269193910703160913928217197037153055036596183995225629870724312659311129249768897760542884553285823986648780806008509448127221633596725510314858971543379921086991659678599451387283551277831991949146956362572804741916667818190815090609329413446205046059952701083770237484680322255511069032547718037474425951803734589613295680511568863485952076659012172149056603609991000679044031212014325199148571297142685442698216178978154987496017989497916711482238461158208991039112826209537222628167438536748057344639795459680037134188674230942898589105822039716763542087349586473138942572870599984402128642568934841785520771594330055761783812262734831636509236788326605561164816866144847191404865467755472776421019001781634869765979119113530222583116302528438557173774706244973602214542126170719787034785692787622721912969995412702761009008403171866734337499607048767028790973600394708938315789651224711711295174982252515800661308200796108358384612474955630006350430742122756763086799848054315270661797558904601883458280373029227523021370872955101123677148867878655974311105554374326864526204205438780207647678102543360543645405635317683813515134371481227833849449660619721026032011022325240385374099814414076498762944747748558651164434157884082768327718428372502225579371902019083267711832758956558039556620887352252828429752486518509437738744518782827007002306508655186836885962578442614473918312667045476205575575096965909319124419446403679992788062040967949991903702539092873598624303213376517064268561991889125005380567957611433635332559531109609753846746730605643194896052540917076044078081349144561478279814979666583613189277753625246473441996228171738168889186633706735895629467173036619777452550199126721631903696454476389375651232562106583981616160629731093276967684133503984000307065440449984144953531134685694343395421479530855243235038762595145126336055672651896747447963085036070774087961535855116396488207571833696469161682618847063053046906040568638010500139804084371020749958172023093080281695076507085883294816014557643376900174220887886507614555876655402076189414008960315722541046463030953776233472596803329542290963014326750753795831487485553638118395503960717933816485915730506577912194951905529751232368631696886037213338015065868332568702290901012733090418925588418373433449037812627606390997932407403509217851459842487821591434183298892601996375993925946412595873171680161623424272878654091433872034384792398939387064329280889239903593486794248367171050085771129957432474175386270630112466618562328072225153623493915389282033951733068676107328944173517058899829202149133137642232141953939104566612163690002818317504798133930982383800802611773752905976386349215518469323458397186051154013120198381115203209557061022624331126265905544468249030641045147659184674108641266756985891209795955425960644457860671689033323147479274386306745312038505887785583320619029815398365222775317384649308204410058548170281919392656378538219644609289510334484789636443485992584672414728134540459866830679913084179056732485030607729286557846322363194339303510066016437648164514628820151311998355051269358831196504225523381393890063604060438284167128517151210629794917763545501497898342345671181869247008070287869603029331273834149355293162601811320469344418546461471719876249659501597255236735950628986351713993974523852449202103111870110027296072486911749274693479354711453473301034831353077734332730466352441398991349635781573882011447969046853977649586690540807255360550345045552341374381265359646646837025853647121545144183119256568173108064732775672570947302905080791557253788979247468104727959715258077607260951440239865359039213264956617016579204406124487398822004099836533473930849812403695572202758643773470062297986691047038536019241443962428131483904919967262147225287660263436072241979110628489521955922562271272006788076526120309381039988155537931837201476042702050797922161656687840746332285213171171086208358535178329754846639181103498030878051935021527386980157745786812199621188778784498798257344189514908988742719507984063875228855035798469606289534364583784141801211225996749245370248495723956080320717202149408536312474979044054680694459644405182324419634775413776623777955225867134898611855940023325185129668838770773803590049743122455759155176222314435361540059148858433877792124444442284859750391912940572963729767459488355825611225838152094463143270542274701088153314458007142220735926052507522530112569371664228982668566881174460717840440619645108188376828932028197030728842502487065549489121034070049060922156135645248458110608042740549648688965514801853650348923992756586957173465600340278044616942014995653917349954676847586682001988723372702017569697020265700861629953483150573856792839101051409510637694943212292769575773556805540948610859986016909906462900175495135341173207763818697151474689448600870422270410234705189752092937569592944709646568388078301940672139513838880715784978437535482451899985345401065015917817735630440227130376085307144742968124344129762515103157939927295876706549905983153300263695073111306437950221509418951676390398555180384094512201806892406337153818211019896662691040149686767403722995559601557786725052966922849835421433933825244369075369808841918598725018095901595936261181084697906715644358790999838763331418486695686375249247801656220102716841443736407574431595269908566209748825120965235858518208651368796123444368916905259479555695002511553769372209767655934737674116067639354919986040960140387885572241125977153582027130249038754618552611962649622582055183774467813397806384201272573586717296980905180282506023985152664889383843264099495622328553934996280214730285885728861130571291130984315772015325575442510776552526765788100557068045033313072634573516936807561666223878900593731669050411787395073129967042813813178935701937463212289967335341268377663640262425611995156839292004252444643886213417365085415759877418862062647087500722484317597434830935632252395387748425748490824804589840482884316458177442057895357418835542641267119131500849416548267868854117838689981540531063866763669287020914491677624092761390288316477366641397115242247406523317684528401276113610000517133574665355229572505552982956359540868941698272078850034150612028270888891635375281504192039522608301431572211349839246975833187505044457400534683882873020581188826110667898602163050320482140840514628907604208096366047359319832592267373528305114354911072692863466580801879290481516242261424125427388119423629393532392441602947774834472120867611902225120279822686960087756709173140445329443665967537363721174604455822622167655115598230781088193751526888442284847200842950186826563190779702260882846933088415290863579625989905683964798956921678105560925705111888552055148353474232750528369619806382678661727238815936496583268959715662902257121149352884064529713671777842605371470300142002124032036708323356250390527006690896842140476919108069031763417179354553391770349619218570557558311677955032439894216750887708350590247629256663874156212803931979442186162445463934433081918620195494492481900316300866262754568420205066000688157007525602753337455866258542580973341567056671301023773295651966850162182488966901106331435491835741416733782920978076139109418039296396535613596307955866085158853142546111289713197267041438814691219656001282717798000918797617623434527251408996284900927608469629269661186697228745708101669574643689690182951364460718098343120284126338420873943740399016827707791056524016288566822385464364210818810421308388587815251262689958616408575227198692362917589768658899725356239152305569476687542952912789867167352017257607584527266333940660483625447106990326852391150366840426902619967004907464251443814091543980105158738527492342085020910943130914387731366413038389585221014126852500848381107146191389662978133125716786351641416294487751937869450346461549401188611136941213902054033241412174511533452083172902805915094780531611297372886175854070019738839732742610408816747645507467199751411914676793012166988249608949259136767405027959498098730606908020447967125324534538995397845677046793786735566795345886899941074695076924381359296260678709885344849585873499119193150595222083602946507565123880109697490223570196441805974172526645022825079896220064184442803867490149592357658433034955741862218655412589043156691036609716014681285994811766287775843258191813664481082605643205341114034022773326540674352821346958065665991705871335689036340105218317880812470020182689836832470870085830736569501040883902535390870811200047293755718246625082500324500263372956880212949194970265249649318423984220016769824398045073556887967624164354316425485781952043849424537831986160403339948748409913791518808894242612766745579880470126139872586615445810820117407216674428414175848471040685435842116430696547220336426177784308498794836311623847391332819571809214580422417288872118236037819497356760783991483954942644191528188104030130141367050512027284235259792832364228244918935072175830437383138559143419689704096926996234540324466895208202485078502507263414540906541915943588809902138737203821441037674353733160661770036141612546371912151035183808737152811748183676560760519290691033829650975187559071031555797065521256892168157779695147584564068513199250602080942657135742803405837561803337879027524317565538238290056592006481750613259437324653843050614735932980242985025929207935637152654591778359973169449532555555331925986414890676155514413537008969395334756612020142250032554493139838731019123868953846152361786008072505231719642687045346045126605795885518690166786883691589601558160890852769834786967193374020585062564376873925711531285207647781562653893558006618640974175092067957896016798183068113360074902492689586962983518698165403646914842384611308697968848043448287157372733921591958052530200581982308879182512275920751619491889382564494158549654992702369326307417414991643504301095459425999872961571739367278654185040938463763594495336379905164354465678942825875248455297553842449197271104843956588903966618455127447154406747512071670591795866774633956191286301793000363801902871700525281325039330847123152569961179240273386727560040153993542982719764147766785897123063409763472114886805868268891384806368454049365806213299156496713161711384894175179514228566760711714060852076019016704848080280748229855099444078450840562928240186573001065899201575507426365827271367508590140212607733872640710308590775831512467953044144874520943071342065179175764649269404378934879264085803252569247624539362618700748381336510808790923256969999208910007075719445185208396395665595830810694717280381593722928796796153471941083016085726604731028347415699951133611805845322375217349652346183490426392905658523763977652927927434389552848734970815208779988575086687124783456690177359427628549884565451232356608031880639881176493556720455299690089425671182804522059284006393956879499715318653225479869789829727231373714485591562442649791998682915993183157136595634753355963597557896280114450282481684522143326274926537961705438286702574402362585076498821304560988077028734730339272528670932825605442882213936356601683635980840633733152919717303327061928885292136774716081916567649780837128147064545678133564825819153182413466346501456531411268555081916308411095578363213212180345544050802967030052670489768129900940217541619535991381655845274150559841767084196578768248134106700536357924977848495817622820780756060062445339705397680040886303820630913806620235947202544697054843634056390487736141413194046003514679162006761827970176393872627965805108247850092993960205881164136914314514234068101130223498592298853631536866432141205516677583557176271423148889272042410516842759788113220387446210982498635193323239945738557432832404549536990927407623610610216522264981593538406009373919480232828969572624260672556249382108194192328456112360471890666566957223565702875129538699095012288629002589577758975219434999908074296663401616248190563636474129231610092089596354387466578203390040658208096599053352558283862266084400268578030728630634089364677036113919667098704612426179199366830861594682733611894243298473767596641727966245463747639642694078657505701240708793177800881814811057592942456221872135348281608434324028127575867873990650781678233155593146286166132022606049640456422169689919105303328258264629939507160858144811132255418190448996321921403396251618582965710219574392386356000968146977270297103089431282007361875923275993598018859209880752183864513643919101646112385205321930262173039403866749239366183719904772926174543200308523802382121048226586201975398171700842444292612541527563073963268738005297607869703133034573358416486792554850386711699050513548890107106267672273670303172246872180874302777765204976626394903632324167283720051116098854897609834846179054446532038596423227073500941024998464249996913831979059619579796991676685919327000203064637863979108066003745395249256799976822605452134967260004766325585919750882304224038917529070809094144804301029768883524974096208919830026832653659701422304721188945976151522193206076564419065451754617539244409527741606726229018336437427302477579737263723455567176129489497654890203369220027102097333803793197933062591001731137483802097076975293170965086787661238895230231124248963373701161904504679987282541962551854069092657519886701725241601627935840686115295568956723155917624618621794929059539793656564333501671081590331668899996170753886517849835552418106830110496473565473479556027363751193673011595199624332813841248345445739993190477779192740444286548812377908150914491985046780420933389856566455408866618554410756430037211049872137962025582800889268090983815298897623394099686335656194724454467925588196655399425744028242689944199459883039693595114164036005756060745413277168490197721128131677884971042250996572660514828137300548148953164352837815564064318070095186967689162016046140791259800100231997532942375561319445152545777201911075714799276373162200982192539170047602308271189520502206698355573318361987350019827128723101232541817222771482561465895764337436179093816560296626828627346096544346328869807496825333507994747226917361377980637527729325776253980534629858086023608457523848442999982367810613709999427952257549612403933927064418592194870851914306410312673225801914390126826896079919248634378986500409079267979979301987613328833547828014668157069926542325164940357911057912219781550116440615348355576371871110213732255773042541575061799042256477380748498220070752822386416331770123534478576789421212429510112793381501208075887688776640468853786297985880389158568855737820625271770059479402562224419055340997915516230191349732643706733473037825873827179392113616483839505862878284106479441703484053771488367175048120768603734674644711062377281879185389525802759047654579036400562625520945694674520649166176281404324476469784536376553198573588336994833043270526722737225938265329993031095211438630189235090308108839507912660438286579278776511232355376465878383507997594921975706059772335605006635780933258868656451113956204403694027395783450057031490736847924366426371613028932099853368331770976725116386603823588658988877435851104327688598917297107088557184655074052454999909988953040719182851655836965292727453240810573383732774116631621290069149040392804085593362828896950066837253480295246813727906815035095522969768171212833606158830704946644872316019446018943323954225895470849039919665381097217486051117005616344419646500282677297609425893178270865308564099150130016482169545148918490152878842514641915414585559067496917775010583349031769775301239864368805140157394181471685614064694335744360399357682145117570582116607345240831421849364431170334214178229519603069864468981104597585930318921429793936565928314534482992630611755855347089583641731031444961903878384851816930407000219173953927690584634061422911476305216258747195207834283350746903754802597665213575300837143055868400143353038834553096571908651128238851354464571982405753041205605779461226674335284911935375881811180419861704782341450607174784288814419330637538766257151461570026928796292309630587210396687749340819907571797994284597544758015502734106033415306201789180183512552383692437976488217673776719384309004486637268555719374605488126495372695145677682371308852401272458505943988748170992281548006743360627734888725099597229134515048507348868672652030370316244257059199859719044395095757983079737574298370043694465650430008877412956058637175437246453308034679594967675668473154571611445415238183480215498793771487814956627079566466680414900278240063672671561791183026983996751725304955339477339776251033989450223646716979093572827722853905489164103926897593270939742307473210602041510073645710266216250483610022545402258972817922395684457296646105384028525871496233524129078802104270549958011143490475766801532482757285466316383174393515052902195279628724153102579253321596006161395911740349164717718280023446356957300727415847071678061566866690916328516490383606215945266100531361204260498610928221394355136445828239915174689729371057541599109894789175171488145080127231093045575947050837298157270842866368622111723938183503731125930920857372463222531986991788059443392316458252027775927903568732032671908736288040695807776643679680012805949640629129608398034932758419640195756868001031845027338417764180575177029642782124682303653600439289339945805467331234794774231882662814886000340168223302286904113217691917928914267221765891001016510903610420723195879363424452615239937360512913347015687871984755394320505805609815356539823069655420404679871864892844273575578472556831623801095128976249834800549684956676209117775539732233785033518131407323616594743300084298400776816362256989170748675645920992976499462320327579462792166518163925381495704880348013920392059774821579935321471126470123865552973251007807811087070895951469815351381524477337309408505116814082973426953408384280373240470811743255822439114505238886644126931465220210819233984633543128562439173648184986989582783765146949439996504374282441006530410697123970890311908953255060966271982587932009369406243588440018299008820335004540155869748462629691951531770454449838841795207939407815442370008465496904392852935490643407992876052847477841936987235511093436298084065130220993244836701399230324337830475851534830533138074813788821668334108299728101769336379727765688600159402013797586459784448601335126110439295280770123284022576421366802293453857495007718465676690046821305424912965458660368238455444716668566703222441483462774341232790903068262337846611372790852557818806014174737250494624062581688514701483414800854596785638315109775588630419112855191798045884900466445008197924427050363102436222950198716317914870647268780593420241274274613307275698393808345962362450016729249988076447046618707586094538105296140764032597642845261055347404745019277927527687591124936863823620306199207056781055377002388543039168644699685775041364266298019748991700780872823836934912007470295154316549682369826660915339901403930249282019248775878066855672590399942835857168067662460699137060834042902735764680903895731942999176203130703148555464683566144765572290508218556272668961460110447833650472613821189480769158823499440775858385052296143920543847601557228813091571187731648609895434144429972003920424550078882744227152102192169612373882234354795838234964737986716350431354023573158512905752087623556110880031745525355168492808856900620882534956941581107202123080245691132578858386285594745992543924366623075054770338705136805624186454688012375786055940284397562826674143663932152804990594165962839321747591717526328173450671147832884131225362313967358458003755853384277853970416339102931764596803304568759152261827384394966951115695397559037545791023743951451848426729238233292391318091037121468876911669053745018885308097329358541516919136664639750155501830680465897783558933158546448195011588347233432060933123732167960032706545524205640422452934753130963652953566394342592419521873099236706505625097929181221322170644684253225749714461087684878981944425372852752406676893225466305244758957435462907496748977321210920447399276169444979371908185451577414590654779651375128044522076215798756148358128178841441610242056406468363683827952962617406123935258967741548975324337585551708859321161152938188518688679543349648460098328279403365137677586858642658571637851527987038994322393040485561280288123002849279806548037751185799915389063636661074511159774831264347937888817902804075312720212332868526365321432847314737774769380377772228756425693063798584108662639504984128048730734388934352862083650859108493540005378054618433804050035304096248090828831073636101822440310772888930479474305595550013984462945988636083262677451390613226197768010269792641079990998969429674331510177691709910150799273246456448934380795354595778202477948827588232790925413116581405239063199075455727928533959440047360068561739657705791187864055611092551736522032354345010651769405392165933352407998192622814974037586528184953877775469034626565802777385774328754988387407276929310662696406723265683234547463608493046949612110743102782787569507853859213082608974973671291880448230810460307171807830533787871868380596925702090832339029104502701531811323687159364186440209551223629731825937787969472126720525385405776010928542401000415191291207762896726128047803753955716706113605263595578093728204420504812162662892408035415716943495802105310947067985398160149810345929992606821133309893256403428091471880148353570956509880969561013989199713952599333883307213106966114020620192152772035892839694463383104529975964760272399044937939798469248544318427883849494847146789218451059263350088286951355706432427740320485570073632679464679430323897805283556335138139027909257833252947254231218472579094037487874934156823380568254218133523819771231613446828153510033318119380345778999823550226719992026322410757621174014789951522086359319200074083093550392155657310394257478604437026498178698277884505104875953037749736866147625308851893341837935129504629963382433481047510017949665263266034555166879538780140089317915057812794630553800232326440533414588193591833080886368406494621408632973372808930279244232058079312188679738047083575699967034004004931026755479507989265770393999648973474674564738006368420432826197562221948488910137492881808898336919432127768875419500462871445280299939540795587367259588866774765212059414575495414339009255741471867867780009316914998717282560568312278720775893779879354981225804638254035387893430747888462009344247988619043701925760845583736200655082110910717025211765148935225666931911343159301372986629037531122688795457678501360899990189647317730251341834121288507742896251790256910999458327951092179746661240660367303588885085463504319248104711377855997160625026254836267808392735133473979508951778140610545922034266369432450071638549101648901268636361343437864545470023748994351040956323512164097753498858911484772030949044256344581297700847504283826818918062988446503814740688970818180388307726438744586937590562972214314489091248867588611020223811192856041016624351850880790510695227611178102748119829792711283894758716988741029514039079603401694545188533755339343718297225885780590249991307631093909528193204671188407585733644112268792886822077176297394478469853681155949378909923706893439164365239404387494186909515985783844161692577315402772960534712788570923510907697912456942792957719971328994016960220864738419679253379414896049814744163720484433007167983509766214150396449993253031098065695742119980506525378923273524265186590047550115529734483733785061540699857258567711093517472221560822907205603101898229965553070742799642426523768291567710519286026575669301212229306656365948292711632790382478541412937398348341586177303641355875345447284839440781797229519008621616684595438704018970631149315889790692708680145433819085844627130178488945003269635228369720020012249793967180171424899113531339750421618013491381759363837831214079477510175612233691240708610525656788788383830058996730023832949568276724113405850361809882360174521953416729754381302965488398104978188629073758291898009139004737200869451550185015896581317960585869869472377537938949010501056707660600127312961985818788059348703049200607461183534080826640466959749041577300058752361473629161654141460505639705169282781641988131493435722620184668483973901675094984116299030448568269752574350268479835710426289236252565209981060330990889245420921724235482071453165616710265034345595047890793941456035180670325204843209509091495729101351153321969519577801998674005486391842538278022273855035511721303024030973405994408472327144622416914284985439902982090132338464782404940895513795534449252314123663379690727699925324903818596496520582861768032313897165291339318871679120262135334720071463478897117049331382161016001006462808203006926645913771452590450542249909412651332358240279878911818619117458819307990689214070363931126522639172073688695998552324250023343142077044895516774813735382669109408820448568787188013233005562105225415373186746274475946608633417161216832362920913751076755085932147828415764189640120170568963448428916126881948143022449978301504679256097698829646762939114719621409163977858918384235503374539814537315785304654460863493093038287924649872260370250308647185928141410808197650035585541589773128097128503720115253091987496598735635656505994452789689249200251094946508555235499076483489704181764267385542684455416869316267171933167065784615067865809698625096505318444805864926010573585092856893180027336930371385362791250785007050154323820772240190997889478146143159233143351754862831052975829190817540164226833800782801882215008928806584803177222963901642446101436302891403504420659319989604812556569880708648586075362627417594469361699774136690256853723274742237554594396440839343919316179782703317743588528967609609674925454561792270438200517709464869006749653420196481631030261437592852113001100239222613261545338553431063771095099027205464507398636754095472525415715006640945744636420463628893932562559101341934558987381703806431865952645548551310378426502607167960303583906382710848012593867746185609874947838851222435302902952309595022956892709826578317203214389432688353194454050042763138103924954850558420246726532084930810273936094528391402567951127364657926638313499263486578381989456638836361487699538545374709501565637596993124345866779115935696579760333928522098952281570044291238133675480984553922418262248021715971645966614920677772915920113729531577109819594251157964716273909443985196115776757740993433361168754234688950644451269302002870420178046094646525921351942420123521627963484352036165450441061177154740138597822324670937535442499764412364027019016708681358240473843973622737348428701072214228915723149271757998054845833647208554950743409590097046910271648384942463522180524046330696962687883634788138226991404221496334545711867305823251412492095972559333058107232576466226077699568058191246073315487054686254746740893315277969044275221205989126725553944138614555096770313952129930559264408385155891859917223444380749504872991729941919525384495528161366918687685742522259633617056245125048425284276375783229814691736611151779205705639522454322878770987360696556956364642155918248793696670822975332563876306339165275348613532776384624144725404044013887513517504040617717400093373715407356214446009303211727442454204121504942623497130236456433040685160534103350899327057551943615887298690750660894943442421956521185024600789822709405139363991198013443080214315087643109717373426783440310781602303866597734065225830205512703336330672237354281839379800610465930925661337480325438558431224837631524442398377471629733566137245867180595928006468018155383735426978909818985792864025078124216387243256663226842991462455790963977339943695085452058252344488451732422320575311987998026539354742857319841341161705905608598918632857748844594773113927739786776448925007926906511313972179267364747754982992626167743438711548701673201048175268331103439965898413345749429977937571451447795742906693160264695671868567500344657212276848766387425402828372155197859398268525253210807547343900512587730371662734217107130338948142914965761981417577101068916270112690876149614009377582183607792551465456950203734352046533609458822040125515931057102597628473022267758556188176756107226367297491845933489338045123767417069964908289868214911196103752310839687670538375238699441089704810354739664535889517711223337222845110796770966986336315753607189921586238861160899736073787045870484877106531458705186251834842404298052852872957723872458194614413631449287490458038170243068374747326122753994415708774982530541541946868729547997304095006999471913695914875806073422433658433132080055085286871416267951014175373092843123804619741373865018924473226926705450297384170476400226303187278997520556801169081793012410642496920716325107195565651983090078234365022147195109129561137184724445101166309206992167467621011796776767403870887011122404731401723981401882165125105915475431008495454709385715860890566099417211268123443998078337277298097260020703710017407405575411314602031895403473273512903592545057025726534077267511686114783042004130717623421136431197903521829060159211964922779984708518617167868590456422737271871954207842152648241440511578324213210350652998116137819472320889300875142161445332734491757881938927760457606239089738836122354009422508852714067830651493789411758575537527993277019183970397156195281300005073484774292203795572623437944322756473333416324503560094510166543588226193003576188256899056273383258060933616321880018250724882380857487283981670328018077399445862116875015995583114760860392803081071246660171952694414440199936862714087044346500108889789131645634249357744647651627289325609121696918107425635703486806385730436576726690634261477829730551783061233429090113098811388474837731153179522443345740807560154722993035768502671229606493140081707509114524703530799525624783471884978476927549769691774612847238185274571755920697798890352826973143993323102409059797111259221218926288959197267629675690320295750541374468844712181340036966249031256533359366300579602508783334142441727885000321099334720850485675631702172816213241111894018239305565750307985484359039656762982763083626358990458674625333327750431511705928978309075778774262932120596114230102135019705822046612208965829921274974784030037286466677392372370196594429818298365236567629516812551466899651759691539400655672186503465361026954374308036284763417785189910928427789303349219758473249785925482446469032295742476288983861744685283145829510920013160213410105621466847149486708057419964057127236636660429907332011238925187704721438878736782323555112738058336363452842042397886082009514414058080432956869270759050750820407835374213625021268455765633433426811345255756513060149834465657355979370569515346195843800640035685250934034183405290857652617267765203903107920991709944467120641646657090435732634504699584052119340681816458878296116409379660688560511553894912902688277535046983417933287794885981193235280274687085191206724441101542255481275731559235780369725866477990371286741863570806887120720905333529573350332936592658847633470495212212145157582859492790142625842675720528361004785197880470908005273983510443518427376952851183602420528688887989401367658071973505485621307582799769305333896674121547108181765417360384697208736749236560662168688349858280749335647091106284470603658404717754138589863562039052065215018158777448291591760446902427991232046878700966657726354309274190417291172173246915620726757132266269084529326210584330544444356506178837935631631625117956453627087092438899280197505484837705804635419897844295051843479669366148286931134729561528427176232606019235145929188860075601769398559837471609850115810893756076248630113277422060580277538891041552535949347973330426945679696852067628950328689040503047761909435245893937656415330378765897505865985373506136583382907309361657629759847500898187075844031022846081718508839719924301140009181547101605340560541265041740699828867801530958201020729486066222255888869258662014650357930878983597636457042875121028248104282152685025596748711943557116401286881838951072544951737060859802035582597841829410990279793751331346740633393643947463615400855000008856120436417641646710682509660639487039660482880350223735372157806952717027039652207037930707661584468012661824389662048337809915063650821404193524814041665981080280451110450067592042007779633998491032385024013473197345492255494150596938971507352580068586485445121615672247023168732242006817660023643363414055882096401884489494396553476788185151011520046484069125232294293394956860294049570792946914831904544336974702037201652854126854569628216410868225251390950659722921529340343643362048052324867423188342010650233872225158718448813095536090539717173041617695831338450120109618447459001440624911497578046592462309827755341042706140168752145159224014112401980138119106085304201631277776178817735037868012976404530555493591791959185402172344525786516772140575145163733433231394642149739187644126977505765215562757554215670174568323664814231220464558637010525778702459447561873226420561905202568942294389455231223906557888937391563987497109991086527909363692168396894557017324326505079740488863365731220083020908797243693730455525920243022148336445165577557320541328651686049977267604986812067038182818991445777153558226072749730911299036193276480512939118351849344047655246883182102400542813857228407012695253118989497700452631132007030303689330767911339258804864908007914467370007723572924633895341531941398205741835605093478392718146495188470265946157090445304991041325864484627241430449471405373390997484561122596629847228614378360677845893187201744554682213146832203611193213781074655222461704858911224842111642991403762540490611294487016322231941639674107568909750091954405594002005425367668247831671594133887552968769944368001957622600542959696078059588747968856689357448573476679652947385972316256182267315402030523756849678346468533120155165034651466497265867593912534466221111466406896676942260159699434250325991410230339843024735669205267616181623272492740904251180830493285029228426294478441001178103744017925580814742018621136011271910024339885662437214134716782303391551338493219510993312762305243716266569915343308943464699583231529394956405531335908182798379228789149188417480346171578553851039602501513437531596032824858525996673311677068338805067802818029808310971989093989104481903001797660586176920049406849827018874347598640650588028929006389702691120936987996583067599636043179596308210539679190844626867304453264847769098461120876991758818359377509643241263465267919804037286048401568226141785644996474625354896144411548160180364430990652302966417002033764898671220949645075005519892286006378834214051579810743027563395584353580707210918385880340866428495284136152039416825998188793166223239218142475316277414727486113169049900687654589052450066934234472245581631692467291668661137349598669404451642010823951703658892006008574424784878500497216142379463041589643141008902874039931078548593197854099676756415223539999692738010099939611129343841432599910119895040733901041101040348852412233958612973854891212853889041678707704109944346033202952962035998661039931813455791102120839246241001761018255557928185759244076745889720093496291346840743092360193191827253807994436956344483040732410320132669933121280046381126767462931021055891520078261994276317716616485229831704955234224326656624794245345854336470129163954520713973003189044773192266013744011477838294958362448417127786464911925745476609969817559402416980794318523596432284600359089282908630840964690669296332727118144642460411826514855684889254742393828229360962756277624148986053040381812367871123066243676616219330240044272291861827289312254735452740843843135217529960416170865647504736659830448749843479808839843111190817370424360928699608096216551149345293888505265041861305416082150634374710855615921451263874820535336896660270674390838443540001852328262188729067799869793041899332804669154759309820671028621837299493405344259385785582743632887056799888693323324512273389868883564666399225891785864723205716232728643794368499206499743799876353488773958165866911640768309463356787414947634565644092003597232006746805742152923166110534199359544444646919366797385919825134008034954433233233693331412432689047186928276759324318754199498524516199590808119018665758493801524847678798497054008316577225224199488954424953814978095968971324287538399080073147159248294489703960846486788885678504175926309311817623207792370581786794371707483584132630092357079094877319709579346509521284878373557423237455125911109215758945336710596556578663456004641834582251482108964342670338417204153632310585385712400888476877966802718921651985666724968160907662680399247619202446128523932995772554744188276052143981241838097141854218885627521373433750507179332248306085165237933393777099652281768736772118610046319456840863689303799303867838780726114082806926802107468442329877621467677056052932385533555530914927746879434970950786874112503112394146622585776105056770862599664349077377633945238847938792771977542937178426179980809405377377632561497024994959319731037059167637683960503962659041905596883394533679989959359618193987674446709691939052240862524357144014135544215083226869107536819824424745255871086893950141421145728292413404910720916826219844152222280853439756782659754201288751535299934494834984057370609063386167170831094706373343199256474210998295160005199165279937851684227037645172362688422714793657304933981583437567689706688859936754209010012923071580017381912788784131317503004141770634313954372378010908380543126367553921692812772276055271706425927424362219917687384319739607609873825073175066859210932027207441315930458247014369502368376002173137672335967079440844593040865717079290480488776909068050894758475810091204114275127770394459472580995484575416492372994388070518933923931199133215536388360522853812394889066094320111489939850983210560995865988155367126057430319072449930366682779505008736133217000009178958020120777726255403557175948887824240099455251528590708502356109688827210452405276861647642511526298338042855504685523246847616714398949638967496857348213273593649267230770618188639739443720744152955798953799627975080871810137605728536489893257655769514132407112998965597714797842821074835090801383019105710959665294078715659569665211040916377875506369691692338823536991887213655382644521884810902354649269848456664579704723986517274716000669890704206031099634153201940852054062098984089083528485721046117025046431171822075384109900402928779919641183676928140905101700105032325459337978721613800402066164724603586118224016468585331919892364144756854383374573750561700197721231315309576110973637174496844794815841028611108671422416914512313641979859162443332437118726222578522037245392486560131085756173270840766673347495553143019145650939361314240923350617125129788019883668185529290559094053660225334261988534567169719125654757471130318971410741934673414852736332326920435282190261814732140961210724952839690534093396427199587323121045850716891386969285286832616896485419380723590973483204189608028693437293250085507858574308775093598141412017039169520548812589461478283496661173381444672906667750575969480787222589631669422386576594900094924609756411919369461211503045751760419380405044698928431212613728677250773475911162141116265580293073198902682380499841604301893759609742681430154500693304952459751392745288212011603045356929482777954144709424042784185262009163267484975213114601097687122646196409123773766463377402102636801043006702904421005123914501846783574435170985598048701081883694408947840516767770271692919335856776890581480197784668112671963790461238881541582988089461754029239546890288530914759775036392007252260650964305548651067660183422171541079302706062969370152799767138933491102348055576217228549287766468935871935488918185341533506798588910578017818629298351424730240939532073065599938970200198317643714896720884620189857529773405849838450259900521064780166301834578602690887411595122988083133294553731456031714038531044147362677806687224491981335581416468098630151403258183058451657746070673482518148717635668371538568055404707548596727782349114228514499814834650488211804604197886035394140465632471594348587226000946821854241200474590563248037942128727920804828936557703480276039851442870012443003590162902984398676437494796556881242888287844057440522812331127278781497521003290553924841102730158274752305360820320023585185619480803814084391245325551970015956887817002878796125255010216313970780600445817475164066202925916618258388381294551335143068023424836209054698006787905641208029391587999867356355612579277545651079789044568468800100718251715121678229881103083662169645289245938317687326053260749502522602984248332700250864752040356354381603178962873622755266690381223286251274540966449477208891551180046512086523360894347256464228168479060540416972198883114768584055497463760210386970771302614453851196193276038572086800624881134531132009146904978217521243342883896773966289449889667293003515044547964251379785992541643110522870054077418985824890193482589144121217006164137360639631382539793356652491339371432919610365779337586090172422159181376140334383933404212430085855578879473382588672539469331940339843765638804134064600562217467891814444883711448322445165690056109878401850876161483231619505833408538590156764687474160862334444646989982800941100049664645116049086106313690235752865462109088285462533963803588825280235477803853514466307019060348012652209071169224652700726688270361228481141532503026911797377844316697762602629635621661793894050041448933142416982282158424574296652591960452824257455490284402504637235294204375564766496596405026897537381649185544063905590843379598414073365856830739806377022786941977550359398964478808529556092806147542332699268633220070071359081419943272831857668148971695855604965102008881854835221143158608737651576130292186697497099785090041024576817079135417219695362314429050185137047624228828113007238568655411436337967524478688805559641409187306293766663733080063020498902032828720718843402057365075986473284146893915562054614852643414869354505578760229868793304324069101841256882089134091467300479576728953115138941720172894513430941069819892630879701052261988809156690527101552985942368700441594657048816185563907121931876932742337705839415240543362516094352191498857079302013933453503180634665766425414723690927410475476577588714164437889596151632041756603196904516077003470130333503959781681075292664626820321872711931395561184940552255362135910839284067076842672481352423703874137242183448539407627800850885947516363066351664905566996848820363335571505079663769886835651983433219626007372854348750950191409027124676997471849808451628588160272376845953906562807730083715800529243342201638333352145905898841721181943450255136259708979111044819882045838209555827465458516195714870545729905459964183907110327502074609102794898841762173451876989353728465878854484352718690397851130305388839418004450338685427236891249746697931242902580147952167300034849392482606363401940545024749171314189821860459543278411142964789411242228693007889706133415811682383020071307947692542828011024871586658197430484060170517157283371265146347305295910614748591371915173410344583370245716042601050702263154165265365673246768278846919121064977760966718156704029281505261217424472847030371401399391777050054626947531564331843439687426172519977935284131143811947578301868024601914498184951091422338147262927824255176835323482468219230698578814989887066973390452279748603079151332275071556283059911265314330743693258452516790584077814129285532331725262440355608425797446783259603193097129065045253585074252001980422870175281818876152962320274288003889838291694621456403807620872816232550677234324008839362668963215930824304759891232494832548471778704542330932109900775231456622772585605036373989412913362660830023762134097819688228955837577194951856905618045369485535766338679360412197736837841811743484399327199328185463938132255267839380264072279950023777543060697513104721886527549831285889644506247683231908654934898370687784782147428304066149772975368901878466260126865564309291350594096741886932594364856893647903326170490597763817119993650582563210729175319623290421196250515762400530031535939963230029787053407254543083341332087284003698476685659718577175148736163486518768797855728325157214251380988398999605937194602508258831390014998839382522576262248077298200241145912317535532766472476002592380587470669103812088277857911150430200150218347378395803218056482123003593744870781655010780428545535284789248439524794761615207416018005404304073274611166137393863724745764654510701562398965452992953567043070135131271766471042640550878914767595970983223920724664793722353606095391454996971698325281926183921657761187525904074625806180726190234023823406159199736947562454793265071257228619837240480130213825229225968100910958797750289278526507954763924489780605019726251586591525053584555267099019797946039107862236408106458547265048472480199448820122409441198478277219709843962908368004433631766935307792541418400110420122313862830117765524010449743253414927983197402234080078956673431640071024522266632383333048862159170876038668941870072245533711082749288422769051430336709455297692541867273061815808738839354063977126045442645625896478995959003184924562018523632127210584507387279610333294735534818629777179836902561080367049482326586791457667565422969660831453563384736652581594618760717194108728107421171946441532322189860868081193165337798698203377527287126695025173039243228521294024370640235110310597304861212812630251646755287396396693904426374594794115681210802274248409638605234206418706942878808369019326222822233356213798584397726281223815420302068116441037712904112991037517753024828387573103258866511580552467747723305754282910792785880450084186493124614640596600169455269274767662844404286721401864181033220765868658807590053116125675646732926487980857992692143375453696259632669353217668426818384383980989864111600224807671620243821124088056811498944237096795849147157744893106628579212387286376229154717636677181963042616743874425065666200368266880173885728850335337411060043349475871302270958481730973398228997606182743966630697131885552813458995953898390381151846810254462468557104635226725232089917401768310696166873879867876199097433705926993974299133204423330373543251062023660623521658856698535069888146147486884220578929146249004541257860686160014157793802471490032124689591006226215823031474012113230236228463376252809471169137018119844234210409067004229004315418262545301015366844064971769327314761091564313355431145790195429018925958241710400359674483806239715628285547295261521365080239865314766165523063948266231417632146029639741716928865661540457531409438315053833252839318233236275075960966479892903035475900947913080348561068995358250361240312968401613886091630075699366842772658817103049758305188618030748362217387041670011096805755299145407299290541034083801431489466501032371615516692051559561485390808298108490733005089461256724657142816735660930180426367530490974909296279378390487853651754223530528143674321107532484042100310038748931714028597296986566102608037462124578865944995714233740456508804873978966067739714665030320380830909689596437640366262337826680494511484494564795308994537548725135030455545738139772234854234166516190425478832471990093316596178130819108503429985819863334547826385946706331598732882035793568083497928812466224169297290872324736207146331149183604742285884460305705598139597230824127149989875483815385508231837439783122499292687398822494867021853118452550360956174871128545547048293079940334431157914023543486566117891563341079920553839514460069758384393068211209623670638088016375266068026112680267474520728356622902151963001202340173346665447634466751522993293807899070419891027117372944743153894898515589355815449462646066558611119237709512974709102500365366125167996870574619492981044505962760230886186419815696316692881308669334269318354966526426233956585879732280095910878694881583289048639334447500363855461298514837644137770311372353162933467059765571425600733517335185065264110498752137434152152285249396120898156437070254882224220804075153460522202851149566881507394136828902008258628195858721495436340128851686906472641616763603989476727378539671632159895294931823616689652286861505471997260792094445141885511892928749998920569813015674277723596530410566139104453870318150542682897902128771578449828753954373424346692780797988248102087171535315287080409536843288562489414984250225989364479804834654509501217755076169310515912680977088647092527236154082396964837670649376586364881634527169504949617085377722983807777423661974358657723230991121621838308507726265553990213198304444883297977514057288715057347162923402263914875785689747228228151024879325668596045372346215112643868557040634909528973298205981565140576717863877574292927357683466094052035266808089070557841270674579652865187209126986557743073414035960262123764308989324951286412541265498919265584135131812403237970477053996131226346096091975130493401413525581352230986438372023740822097409850348661155599717000605654094567078524625024240990300642375830738274277938586772403118540972181583824584058991679566027975741480792797649291155515390983565243158163978048802253372188524260618820642310873808718706848488678105033527932314370241611934681955604302619689846801527917130604814175078680316743744565851299429782686478884580292130353210035452686933138983612650910778715956153149790448793852052130733566185100361891977693951871032257312843106754532770133226214236275141721420640523010491788454980177545318234900505773942959684596598399175020874948714423820273942228265686211835285391572603473687495772988760198601931256394618842546023005419713122345866580695023111108214638869563617148694573841614742915155429054435005311150480834485705648228239971379582807841331130266205525941870405879471267667755404365315954246282911229567769251803288474545065607518252127849640614678284716704850072623748789502393900031686168463465276981327655030815858019970576535944730810032588229353786593034604763309015266804242327882131613118472376659863548550935476229113890917890427915923293893856672123675692702577413035399676333459084580006130326362923122514315281883961917771562179550050962812231530757007703908388965367253716939260268624752817254318251728359873805670870427802301550642338302601336095810874599137225082301234018689699682972644900343463932488952225949285678632918539814914242625645982941249095974000885618136069260707526739003874539698489724017384976079975872099522916171393034334513437519080966689415016024066442979113246403409569195816637151632184100627638495031312084275975823130859878030982544178277949363874117431477100014975643446972346146085914819984498697307376865113193437970472816761245920373704792555467599660499512641089283753508467218452829443516827477189218847575427218786290971448588965085036463566655790687137908374624959525102448813647259809564469797609035659638142346041542659994960231771465628629515544245885060457986191751158837142838380768689648619239882484071242433897262153088040121529388360346138807996388820872315700236854802888675101666193609281239971125602227501127696666249927407390417862246264892932395250166352209629829611176642245117015889558472474870093011610634750789359470050383718809631784390515086633162672714981287385241025326575536883992838510702195180652153561698526206552924689020830239407937733170646466802109383672495848102299172415861019955831633686720702776600867901530872773390823353035472579949786479757211027254785987318742314451765415245374664301515423406043595852943968242376824366569792716883144626477958685988423016035518900499375180758766400876793322999346800694367229015519878930166706351813151167986358302714459922186609992798442906779445738819867706828629240675499847911628671350148045670698190330057208318004487574849197917570639627926201633563813610506796539494260794532498362233494563824100990255379073285334692066702124928547322211726891853271376115766873898249106586174828783276827864717422860676604861242101395529728755231004284994466018919631006940424466826796242774729835529915147630265782525591076001030204060955653224373588461746669974453180850140967232355423276925987203937806094916833124509883680364035782106955214805530344321239760856947996737007308733804937395064292172009852039258435017465186178252658814209332761413254347358847921484763912657739042390996866270459837977010752385631686498817586379633323426700138554668343100322537431137222997949085079979630019633387799270933337754689125711393211020222625121383502744754047875729657599808274322797490156572811630537857167737783071834673999656381530639531055043372998260745742122206780342054819746764097456205572692944532400046177330995072980700049606620938868278926475498879238604107563297141748158643449119879692250322207957979067621777011293933230859743841061542983699592041876831531138730882237142572990825281956977603440348588542625439562509355053327637380480461088719674123847879047888876340556504305714711612926702894623073476605437824974147511546077179102882902589686761374211021842567880542495658028821929510804030027425035471952151236286146062547955712183086730663022740496029448767853648135643751018706706928082312238941873334293321125840366023925089041957072034566613680121492323402920884866606309777699386273786397940024882175206469225225977720703957246850464351037230282917579647895573186152586944217613438830257667329944627528051623361300407104008530066921566813305700147459552145320696920058465058197326900045211247845598858927067859491324241561389534397827552999382695964854032462893251083894344549740387828480208834256302131504031819289581951466441837452621188000381570012719320773631914047459282196844859535507691903372339999986366431257222290481391355257752732849520260992189831424390004892566235739707593700342245127685300528365020290427620107241577012473908062852568302341951564859799920298721242807496283489266827212325378618302337603761048494979630371845367225075062604691516331785059778087060455152561193685462082588974161151822214127818670894213628111887152352291848104479035155900354958094105583727543558652121712050874615952804000153136404361977882408666081373889411735907778939912524655107451590365802758015211427643948831454998857633262443282744175731008071396814151441782915016279849839980636093896713617375796751026918574927422460693032153070093235362453006767333437919734550804323651394532498953660742004867779548723537971042360032480773731529971980814618504279347711465748916781342957658769143404218553070619345722532262899302544310456895502712466781594277077250540768156215575411162922361133935779933345685164684727290602020018543819425831687163797012457152852750989668252886852816874676466558617860864136801569314864544469138930932500827382899899038118394330153290385286160109200596171037110083398858966231961794626717014122686708727316822390319153434109605821216068089548975847072227069655232959826879184781104123250897696623524494432900680034226801653618158864708460689588873368395283237896639010970182103372132574458849168687448834688892422372774475706511908007551038420197620621797146891071777029450069908707173678527901227381053464581881959769871790965879019670386399661145914736028327842581245695217736792769289416287514855270921418921142110410053606970935711821964260031282545091545306784278814037062549167873784303117262394753543554570869294313600736068013227503398311660694534521695815835995844667022927143030034087957385595419089684501787481273115797744475819892363421014761064701902150860960522703444149363797401965160729901731373473222589734128969765231377417103269894954214525226579632381205722459633897552996750348161159947021900618446894837635698001613592135284690680921454109727023772137518053835695463178611176959847792439998939350424315661521933767582345328350548496358627456677547873179127376491068250619578704117419917797859925457832568719013597164729214037799590916885856507034297758586699315990647444171850767706645396281421189224694682226424433413234986008927278429470242210814564890041236458943840317434910302357159702368499381502309861885326254971798406622503720623067091183055476449904820525088032165152029146489128835343288666354543543255853204833730805208685343967536193211255168125860709918055791323767830830709395017004215937170916989943193382718712790225730524030726448495824132075876468788352704712748400614607477326433378883354268260162053995641532122353310953723531288534205209992057993922598724903802567940982954012248129499640619546207148049018601211108598231001628344786868338749749252088174261583757137829087454798020840124446810156249225320830372026444917306011470231451798448934807798753511805358206372585879708154497189229440864821373022212395916863504350380164355053100112837224554481755219198009440957078901578244379694638106745459842058325692715970439860385896305550928716869134321649788967730695934107509240501886688368856600786347112928488922150900767275645509299719115947348187014095580641531081108732878185336498185992832142658848331371645318981221283300941825675710148085490639723901902732279712360714254185614535647780010525223702928819854695967618688969173865372392329902711931744469588766783346793124181307877814884821186161324992997347035751249505147810798062336479596359678241460658174756545681141560813275115115508081695619320990635630875068142203404267799424284829990658591253072530935795671239933815042931864116879422528209895750331737054935715092796127636010975498449885314780275298357885420158124651046844005802302108634554040160992116562236440499331047195949708664399041978131560402978867340488478062489782813613093070583895706327241721988189250223222143126512902660373266886448885788617855139464743329284427372117178064328414498254618474165831273961031655779839608430494342985491360633129461672157653392020910252267728817266364523084616059998163274728297401731684201345440310738202150684620718549922428693273870324928159810326959428448832280736194157192041719588403625875583759872039436351835632904023337086189188446097767532025892340561170407738045202369876754110161108117776153920299927724717504425688162345662295756641964402622067608443902443548872564928590803899295372335282873014532061780401047053354577290028029348687742841793579313956655495046888241061420987466724443675638407531544491400319390482091083612917033802289235538834263851182771471416118145296780020977708271264785839574795097408520445391798802820665291283693056745931014238581183880350498018965064830618215968428180937566251694235254558384037651964691998737022576632762118775217818173813095354996213159955150140130942010374157778775400573864413643254823450151514731491634354545588609558736630831138046172373922567002901789247424570580659411784395797867081288890064287775920210420633830683970782794544975885231249026500976834652081254227119031117032244407746103337333511980995047038731350500260586325840809054100063688077016021213960599282757117764841962624944738161696405527227643393654436272527947800038016490391695405534147928465884479911294953597149909854850449638555726701968550560015714941367050939734888991416829784762418059543805428223609736365127751564360244814549782079346511271787830523974007102280182403435501814805042300637295345633656284088381385906547923774494532106006760954520532603154651824307338489311713964941154293404492069083521147755074151733811704844852281722767575912672324830485462677455851419792494866310046875831399601457547147987756907520868397011861689927081982819834435203470407839698897653420828809587935177497541695916328657733865194434885597538860185364394703913883442040250183673401068198389091647554433479277788157110221401598487692237990433491013036950537945458020775456693736769369045466580594542485549242087196504642800826968785129806785836028841248412955854361038460707813367578108284132827622641927567075044491564909233755996411368484601842664205243421629898277662386545346428571898867828029044519071808122813792595858261974231362067287043333502250228538257997681821838847830996958587551665800234989027063115207068765634117723077221629911804055323154601408603888304849754838252250788892430165626420429726451650913426328236260414900225945845042645205956525801743419485882927778075484774158569479621386583620575218578796707233213994885891316176076263617781071178344232868949727951917779456056761238812682904436869684885979403865377376837426443148443698876844847239769134008434154086240378722325436426960613656580704412834905479886599674783826848872253657247114798729037732914078783503856654556841842444816336645471677383209423033318721562529705452770792640744151010595555960438396960930060279232401750968885278349850322675695565286831034840493923489194423440285272583392669213923361424102990176596015372139888735426074898734536264408837886699470837597881441391000221186203863326083981448566053865721053702753403979806081782028303884273030136643078510503050764936308506953749396716193607783361433039370940255166245105628547526209394388948812410371094732603759692229635171170843016441649655614794737335278786155507734423788652484070215817857891451097669842981218416932304833395720364162226406999843159478899827440975673213865436436758851387174014069441451826857628027118694501556042845896353139584321360265075499396617713419599714180027814539701912590109141514409887063344467115594375565213334788370102800085925718480597435066528179200030269519160911519241029826091234092442891979875138202680953373870823143156089912887232043686760677973521402600601794363270742499554567075495615774185000085834982550837504072664842506303728708132324020302235544270463538757960542314075905693270018976314116898572128768321946222674570247166772461168681377639794415426670563355123167620673571963818153295841380236250482798199095192640780854743837906417929894551044368853457543195575139882824468277993908707893473454977544821278178647742441388354113117556753124296064437447530143387061920763457564501350988310994143081541170273452434810577693161523568741135644040090742831085778672486930270345048512713963189174791459096134461642565801221213324241286693833013288988581860312183417349555353669189567359539083583639810069288039457939957970218680022312623356735640521584008214840534299408762928812322585521891453895896866661271091746882728472046282115915450930184326944429941825421703439337634015429665061648790682100754993531636558807072366872737828598424184252090704088703961122084375901345022544802282005933969989638592721813490285831813144037752971991035155236389472690661859031096937494248716450267206251283342778001105252645091779488026262261772436855946895361070343734839939746621279003233668873035939065192280893580319993238294925921588529461724788287811874946524353672220693472123107309873943323268711227340394590751427801557798898989427288123635025384231528211038215748230185254758185096408397004833707076590040593651101853336987135472541232560040914341015689972790601932050848063563771232856208985836978255778316537504440552297677219975832782135402144201865733452266698785916227820065563819006668485078403040175239459815006492838429665192544107974427241632462617670954155898291180021973724219109273725247321174207716652132915588626135927233111160864940810912968597923050929193268088332223810288515332388395320412833549883368870937716263122132179255500541872803026034203561690922044172114618936785770968266324068247903839938015019865555307451209827446182609671912231412786837754983634874141172898024035245654660383648905883814213794119454219352304454424258066167523830247880232625277505280978129688281924840014894149972642233882867606160405267575371628561885409364845804515470209856666534800406282540927436115954662902090576510732361582780072364005409664288703569261814146524160042259821252558056428795884787892914872337340701915069602236985058340338989887548179770699270622327918072444890147743972188136437487601336735554405460549298822649599898075102015127175038338180456620634271090643344128878113184159689128420334269529787340405334745501107046501133610663691747549804575888308657162315884757765611177039539520383550763622126724058215264262374009400097965003239094916109632867045627166591009039554768861006723899627130677138158338272295767136021428097374945709119277935585591817119185746555105610074097712476071197661549587287693573999765717142127336233072549646864844347592796941826876280068568048639439634616415456864027859446380717664578108004996327032137961507488001110333802453371132686319184064618005499008963015366982095824098668584078190442310227090077944768429736839124236810860551809318143993056137711324630047586441184345016642786757779470384544262324444419863964125525975713065099308314891153060292867268005461317036288459423605599087581292201093748454989511990544080469796913593573040737915504671481669958815229303605036655403272535559868094690044308282723417412188850173824243271686357578909733713446174037865951298874686343687982750668454346697429995842481357107362089827520377394178760127092701598973558139732463801039596294188167440196827127078977984473596651817345419666013534960313789187321572925065073536765409346388978450669618906970016140982806937049945755188399532494200476852467738940615240341157754646168698130471877351817642645791621531748603550467066752158421625460342076876312250570445245990959046080998953161789131165429048753813843194580552140722548570870895075656712665038444241001351874882831124043468571969382192099366812500018888532839727056297716087629033136104245983625408628525324400979360936799146942547832719781096570024384470053079133589918274037810339163025378158495497805889995264988331653868626079910336122431187665351677754397122813725355609352327182098638088515824500679749080644711874809362890665768302361134499346336223598879791884652260394599607192638595379644031193784907584638484450399794184648964017247543116672977968254571477141127076658066479938856072974708445212134377727394285844445025602224491688410698834042615986025771487670120049967199951264911647547299813254686508727582147617564882173345933373541455627825599488149481282695097240729790747538953504747294822737208336162740938215465212030310289180372329351183743391856993273226749088049740724103033636179652903671606225472706095076098062001357875352588881222154841264649081915124971841541516640075953794264702853504878119814451309753502756275734216073904142613058249491324843904679174335289216282128544055384376860177453794048687294989369556312614886958775184081591422042820627356093412446233024681336524411590019504795502558553007875367685145072692919372403010926503356592619611605126927672930431345983336738187249467576461491363039731575839726965208732918985580754252655567901192957354552359435137849290768378991869908542446636688063946976867288374588166719499580527151261326390854422445504138820533219603029518441818432495556932606790437139526272140691160576109934751292461948523959086789989230510206109998909527283750731313022611690657382819130865472663553538634850252572282220156062937068711452249910482441239373194118581435746087954456489531947620616425729260700982152258124704289632832129234703575250031677952933943249758525327255291126549258305092896538198728787239479183058943314425585254174944278643944074525363634116944351153715835413365376187298677403515369524207489672836844667555233418171520058509934844085003891391446214288322877759728724458411058048352442970382469019368303032348693382174904575930280243825025952705302357311130689458714004652011680527437334803583601367461114700418476633224275380438109788226520896163630599652173964620156770267263158526561593620173495730575502267782185720040225578115586597563951926705712350877044365047601291089529751976921867711719615973361720382864477111897830823113443211183713773343903438161891650457928497678080857903197901219066106639469316495750173347274644997044638379727472297585752298395343019825731726649404965552474267484113126210255351416387437863555765438086805859963878279650001121748634802329653982531677823800169017730821969339066228973126193409986760373849829492248828664164172749135664669024361551042555610372125488520038307948178499293421872901240036753876274763517051906494559858770413868911970031056285169786654021055631351302070098925486720731312778457284009981040984172506657954489808652596983407952447888060980253819899339075347099692306703101286479209065185137750076700800343129899816217557291747143355714875140204229064190395387966329747347351226784516280468073923006296393732993533939758021933736514418840611280168115638117943577052870860299864842674791511001638943503966691739575006384192564095213378458969646827661653599915467312306201774092123339366049362748691159905921289056924230752401674097326005212419377729210480635175389984858375645865571295996450145112581081077251934506805046902161999489180553874273046705935603589078409276207168692481081617367454479911385107500183822632159378364001511418490491315984957180885424092822699957397394710805610426208611304932159261732384678694679032943041705331783569722956305437014155248624474984011816948684438885052453011388959798883133076790527922448519037780223546458386670471060854645770951951729683587158571599898618870966186239359382727334910830317930477490481101913823210321348322607852623609281240986561689492643717065643412813628763525007117111024404299246812133212290003784108247502085380136619350805801019417036680529344070878993514884242437026161019614711070816933544014038266097167816012562870347843362557089012023519614228671736444402069209446420214613288229662719441105375688153142675444313653913147600356207716957467656391304158103343323160398025002794932203981918552633381887446135656363672489439217431966073392313275113500467081611424897610306368437643968974054906720434886008429615245708481205487875072921642269663628758597411266456160516765345100428501468788727841243546085663612814261917022542014746815067103759614585398149975927837093961099609781871504690289779214520791854323193933470879061519139002246787047312840398976506984747606578288357624200932239751419517469865545455269431824574877693744310203122977770303256722683476361910125108401002730648318582103635670231002603346132216024619466545138939814206236807389198452373841186300531491889502247030139710407525002660962512814278314074216058871198062344147386508182172939454836462086782713260952775542356481839008621774823192300972741223199574505044222564037756917485659887884164420758146109410699846291170946345367364376341459778956951170262722393767443443487563637416113762307656243707914452512134149083765713058277748588044950375291940817476315867775133523965574740309850096615071327551641918598242253966521794587659685222483119782396953192059922685682202755472328171213450892817568007555435262540918297508141207263458545042545797086638163729732346860529828098375824045703067775672710423325097878963398071648856997310240368292068518845192388299775091251161402269955180182970581112096712991949262608619743469169692015140008343684501784779871144035018314087412910795294613600508128979123017168964472760148686120696533632249423856492571371245647785145133027479725281687225887933255452310814970184623197191024881972610132258453428344553372174960576578657635000504253967074079020171649726790478080940224101533059269663781656907648273599116134927998457053601594941449927654143222280693550160592330164360450379420448166319623139794528228814578764133606865244286215425880557217876518276674466717679069524471945142400632853897900476212023416099813276331226629072052032859062402808624638123030590437738397953129021939720186483811552252389261876810243400197918353745570563134452850478604957070775213906670503005624111330005876138685819537969564590584924209842065486612353885183137031755115902423263751299654798833984492633834940205118273242172266303221249752059912128038309059812802232941740822801363203330683438580143077458322587921606817879004873160874130507044601220366094318626497438066895138590208039620240136900430515980154556264348163539697652073383246975837221394440299379957917461194960809405892165843132125831130481847037199497600461359676899489687118252578275778161097825724328227773353876429761560836642615875519975633702050824843945662640159477588375208840399276006490605827938958195166213257109416195980149143575604316967315450655749922882697594367745573333987379879228726019942753447887755117225150179881587713287698391583282056508194846065301993343287836389799228262121313769325660631843569993717665578304256686331106885399241876938686532015630668112566162215258371184613539663775361315937958029419117685979705875124805456654821235372602745278729722540450452989356074458128728778554821351026717112186469676270457270476275681321204454059524759785475591140276023907843259949282408666477776151465576326980558628741740194596863775406806308246949238386759926631649491798675711338484575312101959504612916237236431849469302660350108609216075480009966855971872449616600215486865018387810013033553892037687557806898799859647293007538188845243879311339614878615425666366309381746113988205612812107119108597183564868400360747861917793056492905903380921201565583482709437621890419508281203966438692212395055126955596335334096323741781917674292916209510930577620213937540915357653633665638732408034993221275707750054035178033256742829751246004242266658318920006608516850965835017981708329157405274107480559099017953937600019491450819335275001422262918989664345679145986300368485231596966316054706929691668453971943095197784637041924051173844468573509017222940637540316768112150243058665177292853808216441991343066432351156404223544804129329035699585570789838254790350645361569077790910141216862395829912453864300842498251246883460405764363959116151347631217641868394374044801057254445178910553364530638009243717329278752520221740533722309642356769868792288093956610505954160044529182064071741317495034766914830447206444330000420105230207348053903519527706088084327257691476547053484145066198648991670503286760615172712537698904990938453530426005606716473100674463855031704147946044429098985954552722085765705328344232706023751755802720073346355023279148093264549885144830741735377731634156369908476586361440307520200141998570906785217072581749984233514026816930018598452544054817871798717583161657297722130297060513557270523334259979133234553611223624812253516029413456180047912376884855998269350442481257561608157392679393624502588682232678368768739327354622900345416121183130392474863636093717263032740705962067595807144704495104527015141411489725851914407292993687758738699291937385382067113265469499525832470325199617305392678999704858575998171876780832116396721923718894918032430584982576520960966821468089671373989382380235662815488544994723551139983495358229940226261614309024841220917380289770692453103200384410754011582544013065807874743813784033875268382321627242214797857930561434350830740783219182574679550410976265657025092506442191196628346414228906357886186325133733332987724804547009797036203268720962193833904523924374217284362471073083252559694347090328255763052596860105482012969671891775733225102891296075388883095288413541476398672567427226121731659379915627794942300016659489011918525925239104839321700924195810987774538173255783148559838517766913308754985575158092193064471625934392274566059441065053177443603778648040254615298744976736841097037623216133290882382105190186039262878940788304585539926909609811947192463589441526810763266354207605104836273088223419496445578680629014312546168941543650454132988077190824911845501575931870956812255027986161231825098627888700525568378867192091836829577128994019908012285865874587915697322312899764942983561454252014666953255712674799438321533061071808820329128035238539205062674367694258259605140109183137815958040845643278611147474287420034526300607771751816764601826879140526172999904660439225061973647207502898249175101579583485708259696911165824840707829610600796637192670408684067109562969469655691596768951564232445245345447003089275403003176785397944593484334546904125111845721205373091274900194664443888179933137347805023749131854462969101311532840284050869942602104698945896788992179329364847587299772572523732628405122730513040967379136413906622256772560509825388320386634671230788362444385417792416983031587805357281550373932219509418504135956690022989392912172323618738464114062079441281945208729509167166576605866625990201093117588429079700988716919284947330397266349727172601890220215732049173404351740863526868503298687935016885954271330798827147109177421483183877775276330441402312268890265290519915640349277704780450369974001253060962263361210488080363835812808294769713458389012135468889915289485351649919537755977571932144117712458335068403994378065352972587527356612253760794036386331876895583947266584630989281594417635574698382782779748073197594973465608439444969204291317550064793531177851720264889403693008700933160666686500738332482209814153616008243638427436370277569998407934376827979764117174469574736889685599041520666585886025863062364811691900134594590434294128590722877693408473995011099121319607501434765709952207841983969778491127077849817653046859267861895229384779117544626660940033578815093321874463032487803466609169079738246106944387173492866741344665932263853298024352521901180821014598377309495027903023582112117450612861411873268020603865886998677460334938346905589274326897320867959273724590474435742306016637626079401043915878613016607079140706856423733348232337143683897810263086123292971767426858863299023694897370119020483398570182717738112047626754643004049000812377745136009482097153134305321588462899396387859055843145270086902436002445386152719857447777712837535528542452871204709441790867549337411615969525106652994575644161874204128996942606213150448378400469985233479050402573216408582871637101804662745062811757085640233943064822822600157201327792539562392328581480261650630209692997302610531309513778070165478880913143089551732033024802084329945550295341210342872668325576942825996626579554573553763044198893676971028671139416547764849833285582810307457395719015535415967732933980570187385562913301785484555417277754054980155790275724487241360435224145448487834533280457954665629981946740439535584647437766634798553559835527564826515105885916481492268021319561492364060895073180163904860072814861914410775715883562720918859638044479605128195190108800389202125605313469328318404923629937297584279312307213370258274148351787777215255651051161019044684259313245793023951031109205373416971293902614566933813097368037133072051112767905504156533503884623630412478154652300403229189638857733793688695414585019027781011373961654121577372259822671508385953172840755294652337972852499613648441960818283859091721342541358679584979582419838112067707087871355716825583794847452581152747698084489619318598356066634613445419766719614020023200685651733553444340205043898873734008188468994676020271406660736072353040205552423760412402899382286973704990770897416692037983263547401012046048879852231883402014833423143806567543010508739838968647050092093274304293604087076463370848928123031137687187841696505985636777101482168308971144927328445248141973894351420008896209564570368238419111883594712999141262869033935887232033185139386627468516646609800085013251518208412392251637340403529667074433466283963918616821168323118874664931385896554027180393886033660447348338481705565801966197681707500249532383601932123058123019422103087164158524623680805335291363864184901074364314324616461448766802526314848068142692231231900125407257650412782396702758609935136474939916543730661085860813591983417864854021135798067836800065031447752457068382454660437275929769586588845965735685572030176208278922336561085062891327226896490075461645219064730198015520639471865382979174766017570863098463069099017997428755481305083349830114665855479473714379749595331763493274069743430734904351443948167457161824403779957695250227048468194112233143114905953119758257989240511848857484769671350375399644944814170879183829618917643491616497553294765804092407564209431952611254516810377253212945478744799187231035543675788139560741855071012682566865747982641476868394437946080223136157223242715212825597590651888228826866851806775789222072850838235390022251847786595149505765455519138991701263491625694463496671931579868949431139093483772829372667121676279354821879766828217782606839306145958617868427143765270111799666729913034437525919619407672421069537392274447252549585135102396546128978499470159410206597698949855919103660038989007236453317006836862834156359256156664756432823273758256560179865143376645007296393196646281926696329654467268817789834682042231994276242011154122408899356068922181813146627110255479504919753217384362513001691474113774425303959875192338695718509165940198912800931168497156791642006887993330026688629454406476326362231676791335799596861527506079640868687907274852746440613190792212288544680082924874453195461580230286980175760359320390364524278091098955176166191197874199205038820737012980182428231861190550796950740985693625203967466438093920162619545091450613393950081679495512081818570051554571491148245303361255112396758562078376467149281742679187207302012549406348690278557257651855676901821225433538235191285324020727312989166497313248603929101231046269730539846206054429776976524954197526413423762939435872211573687737100922228891675394472177206036134796476530404424632817982855670510565953962856633212706616648805086759224209163735443377143101822712559365822028502507251435049134710204456576919322421012999437039524029530789429141917797185071841331364138057045671554438160277596312895814763008287869937602982400943840902049121181512703535746437003001763744194600836460410725316975084662274573962011742176720637580965072773085261143097039551302201518958036213068082615080071561552584411741118291228844768287773915421797197022886410448288459805653862478893701897667948052087720821477419557536765957689697009552654827066705691808866527459057480234556535326893439386517163539159636718998535726791657647786060401581234248897368691397414961462866008311856280284480200759703068394500979627746927684923504357752891130016633176038323451835920734640010052313445308933013939595903659142774408652220609609216427360269239602108055636397620004083354439200281360739730509976352270165974006930415838609527489455263788300038671217534595778613072976058397518529082911370075206839041595783941329293269782378597007057606551789259490135176186518226826078660142237456178299914124356458874983510638482728579657109859762269357287652249894875271239032739365234972086119883262926424943406113272265833336991525571139271598562793114274069570312090501461904177732707529970392349919530052501631197847927068239427074423249505655428075473426049007385540524605081248768342848347420779865534325609234174765887122734320595537980414864196913166335087069028571690376070646751644857754622827427391050854113701479565025045970713953597980010697126915510299225251537952219525404183111290199389449260464375983278624069991830144402252967159902456732183792217291059091736887609592020800504170586420874942432780038769038098179916842478071163314684519558469671939473446042546577443244953327217701848075771588957910724338726597175723426473832614929494547538389726215554262262040247330454928253444308903222313150360778963004117754405185491369348813981308900286380978643870222218281638030977601034847486929144913804307973582970019614413021847671872762075128960415584926363234654839704765773172532767805699593211035464214333494520390267025895016554212709749896093093928574391474258216520571077784751765598959781012767526750335964717797123877354242877204894472690347763056238334651630850311035015872762585763359237517396450190732182753665860436498557599241704369262243455387643790150982841854551069618017864116836009923691879260308608666833168577928499444951356261220389027543549641112999991035521314328818561770192035699866337124553914222060217296068204118651065530356933563385668472662440869990763522240343693391539713435510886315118447454599984642226879219565854116664531913673371485858023600529865770126718815089273985491638499475102343891700379591906095240375140054473336532442137609530042374210327711398003189169225350616699724020761064016770168600476743046941503674620453597821292955003785129249350736066235151646857325111353624836928903539753506322954731540089109181371070836873446010310840012636407407629256125934038219479565647831249684245438692848233129484200697387437117124033005673742770953070761363645556681058833894763478520536736071987228910458859680265826241848694814691713237690059942005170605007733322201509927641545166682826656327434401713880876140825559850759359547800216020022230128707233978870995424368025729118265658408830365503520743211239188111785198199291182837919275665191026930521812035043625836727917259172824806605938462980376937268798027508263875024032262892743148073373124964815844325695467068964090172449122307807541688535642031337147937913939306740498291568254178478241321678356847875443660341253067307941432405610744079643299037146761139576907218104427193660062005349540306690430974110303519524186406834635479101411840252799666353668909908854480823621604077635579747467836600633828485334950153063671101589495788455080182487261330467751895962243260507469241660840010947146775158697621084419980160012540173494410941374788173898551191126948723194850001179595681082994019950023945492272799148090675886036873526464261074083960454585212775972254523279996081614077122621207263221791296530084581820171164625605445492075342641691898266687861542704687205292125584902764592551654427866731788222199070049469624310095194966898726905314886941693029673585405755471565358458375574707766762649787315090539372997012156374697247187377034121798650244812757269921165121868854967338049749944467114841240377041375659498574979930087603196045276209068982539110419018416596505878186186484084445186231991266674842238711279420087306062688634677213151539137835090437994708895267565158917935088288011867267912996389624807578313313741457351026800089537534410606635462770754154760491836560888639425395782522939845670267962297683123603640094707804471779206945110337397427358532821163978667159532398299660293505659387420508087011545570925671147367601985153324734315226422986082819696273807562088131005495452860715886974918532372455245580995951899154393351723339562218873360132726583870616018360468235700493855180578577881656043677833689115159371883086985394802648082749139901864181511797750474330607567138597402377611025177895036636592822383916617883514376683818470282177382778821538094330979771894537733144394131847180713143573276572623418697627254660162151633604060292151619858283909727808090982834302229101274131295790742339007969803930765793683085610502783323663792561136585622306151923307357197709756058247048157275312545517907876704802993544120470149862225419143467918914513566504247643805129234782832269162649221832532262494220256713445344375023588761805573564747414382391593936958067901364065643219564219871989946369895978256681785199088726890263624420239751650432600284272628705357161158118133826888225019313895075650116171991670078965439019407136200542155889626768247912026008352093755320086094759417336748021769271276702350889319449204577034318074890743624262280684986557166448571156497702655329322664996183653562817480891438687111539755970436078557587743470737703300063199754458857177540589795892455967127902009898299760259352379887755146833546102066283647499264930519211544303502165950636320252332717428640810347950229256534124418499225818354013700893474045243291885482927922461882110287557226247257030382941764029874533858747523324720018426614998312631922234939568003289372228705899375670644392722250896789830951037148177039602038713099926227671232506093468567833643801046590010477788754543319423123638337004507661457186733577844199414002725266558457866057638210326945665041068939324607161572006186507887095362062755520990008252953336003977652375234757501467122448207054291318050711276899718725863911663425275023376158946848835904765086141080378091469654506665768582293870624303645935065535609839532695308542637246829397958676420465017675865923631701801396892153724021520196396011179961408124988821242666779738872749981519388740352367666358706692259630320123235178648697666787263356525648211414539430730226992777112966348574831016263077865539487622002341220581174876991647901460835983307429510084544416310586330592344267294713837086735715155059614809297272218611262166955573240433863148168615553387504879347876941644654787236046849905716389465180010143354075418056294429530526873546399095867266178095383969845547387704240890759498992950160845932327234452359858420527205455319639176848053859853933865089745233835363635934343442679576914995501079158282501312853244899504219320346461468159763409631314073984321457560744987907534943207135794646215956892688748432908340277714852238614827728435783306971757249746474649888255787404718280551409507936769156430064777047717813696635041098433393468259850568870318285817221026626732639301157978528345901255353938918517597936246802560456419667638781758414360483633844999928101264877431400846575006542550954030705625644011365240498127224692502386798319788152211257017576606745141126952517413638792049950260219851273975994780330738942233072868417312245625261798643633569228378804899940862586286606627949170660706045168551987209943644792876993743158148754571107765035130488754146712624618058653696380378849123238486474832585259044240046034944919997635790350422942023541997490093175155075480224722620620533891296475338520175590454015653151455915554027724532757859876730471352927820497631101721871074674302151292358076194717182841547119349301592768718272543049361153711280491251368646808172756160441810728756533629068321974692755442132315854308602383857200920551528487683018521410254373699790741521801064752032338327599357590750436879462103621557349245347274721992877319921639348262556297980983711889214040775351619246554038979989081702718297679674545778142501426989024831639357046789896784754277153284577625233352763146275993046118525505514963225217204856388498805715907316489570968525023112584072964685237514351257684819247864647910484266787687613492066146583955749406423694652500532522060483891808922745349956363204403568072109055651617003600194739801196837733634285100117116125720260727758360571665384243049373492686805924055771628371826518139182232040579355238396885191648518607824546128273756717463512971665785984000193345758874800330676848430747438051263607839008085772662791227537331206608284695111062211503433454609886521246974279818112360990208566101750680098546647041005215046411075857063887380969105163472137897693007534388276242827205745437489701958176515764046607625897523566900431799362816786186375609130588864403410458584607410670358384914881073804288598404679466772205569414264357577525557405978627487563497269351168321784322880753159889433433266072525711705879229788904613246545154235779472186096237129153893393206534470562217708747309822355637329826549777978141043337643345820903429822135161034438961328322196281182363721331901453828721032374165911225405794817128624828385918604096638405068107864540095792155245585104788882343167047108717558595546731108377965619295018060343088700716691887316917235691449620296505079883508711590591355256892965372851672818915971989050331379688866916477913396530756984803829829753336504838219291505212688413361834428401993574159067621309758389130124490604028286066040917732456284406499335667081394611155348451805405027842934869680036725652241980923217458322043675075443689108664681638063614931612702049987075076234352220466432555722109471397717718912105655194671815135373895973860957661772022710940858892659929284935459333276096328311504452628115370987954389361955018191807041751584391053108979000832478094772937148168898314442165202213516215220751705969791719088510044344949644258705932513950535694831923927205074663983739309462724065692231367926691197227416807868065710000044297248417285383804369257332407291536898420264012348452876063032189621154981144069217761184859004967137929474312925335022312628435425261139933632008074136550880245871702293350241690533741518076798791242231492443706674212867112025567535293091910259337398414252434910797315583988334108203233070785814899946658690023220149752457755626219591139716508733816981200271737440240710197563471193266766521953517819625610397960171179466682615593622386890112071898327900396123435252846957979440076293317626186889296895825715535957212385937049887418254319576997618705064233477069294271849973968611902651411087198383095234112726520614783983155672213229592969372112238344137409112495166620770215519309739943510553692433342585497975523243815702103456536602293700816617138622721093875711574603623920564261230724026119556802112406845151444909180022469620221990870300468840529820623323231129633344214422444576545117655963278401906541777249555268774237209321618991294222263992876979083153910144221446631870356178705129547989543304039823315921970098329145847919641837840299460852918259490586596474551010999249770043134788488236022139558799903391464560756620430973322294831085835916326288903295279442552264823797007939574464169060441596354140425139706173977837667854358484292640140359018944916562877835301545158512884511885166976081011672779135990144128583813135820675695341371677510269956532681600258612377416558492284298534622386385872323218147105433220960252490882423997375147452278620102074609077946334234082485637888432803617692042341754478925086341292161704557535184470209297711615610098549001832452565032092696962558097462830952883161476798271676097156143997067587425418455836823228298427803613140701650216478606576733001332839710000518186637254914829734113885028243459854019308114325851833969117745589063252971329656164266100761086223023088715799235380750285037601187518553861090723808128385241994882374782836453790841607131155957567664793264971902224125091007860408777628401637429477614868945801642739618413671266382185147486024170487682192986875777560202607884256651165959685698985596337018911725168473688836691491512010498756562934813533472443643722109108330989823774547788329836080630612217430665863732672068581542824026237534743882716314991085759038600119035034215817971975113996924544439176656060773542622376440506694427333545739047392688627316075357197588439099274089610640682614848396604443321826580966674835533431456126175051615462269639678321458477373477468201257775682041125782646215202221484455550067658158222718478821029716823390905225736788900365439870846072947693611906972026286336819598661937526678641173358339117432145222515428904216735813592163121876734034826850325888543814197903855213188403391625165845495149108431415128091452926128327135423131794038659041582606280551269706291475360651204180303875483368215406394361138863872712428681485740952398279622129151266900353485618565000614092297752642722528994294475220602567245666087250829359712841244081568262295111873350268720334353782196840163692411399192761359170099046404818879184880033833026803745630746917922662240318919685831171968579488218863601802118024682260772166388631797928905036731007389258517995868833619570287358525371242461036127935500907970488409392509241017700752643471052409822768303309238630929975637431248657916594786906310473186772315985670020402889732231919621814011726635864053578445218166152824581462154563254305963651205247711935662543947949487540145070178689251901876722759010512997164348559728874858623985314652864411648949869758995897275995628468810567198086149925807661023891970019873794087107719888231256877433345121982155927149247761867048596292104781683808461909275242732427877363408566090115286708814723520777941928593644462320677735431237685403517056173256843377085740748056991728993993286398196142436575844018363206966320747447363656933036152308408177764338637565818949322439772837117580963384323044101977722719343851871405869036422468193089071943127520407027335111927690400624516934255267066656215960764675402319980920698675641031254166617846368473691474915022788918315660455760039346880076844049698176941826676943321604671189128008422022131287405175544084866896337881542246389731246796448601472185337840530529863922828201431228920718782160014185628329734973653036675439086294146032820512366522704596829591295310881024433060927679948991380401725903482779671893085525569315762543338740770510097232250511805904189601068257278782739798408850763983230707988088987419714283286587559469570037689986000898238058201279090016656424172161447733527530645192830079261210416267369053524239728469185187293533429305051234810816467780597976711600419651724215746034279547858881953186514856095950165663067607583156469913056178770134350583633214427270120354094982720586433300960977923786766951890751785714632356419751044259694113554349007489989515001863383395269727034946324394239237985967664354760832762923293284256009910194436930966802810928692182282507119266786159457575267599545293355907100458643527528452974765941988178404934346013692402341996450953230294816942046424754537400057536589369606444954488582343794226304676593367641257939582143744872354809607740230298662941882701146248915681119868924133875714015121897263349477706821444616743319760368785678298297891034492496734028818484899734287563025561617633622696588735791181448657043517293493500443676422383619691124755686049547791518261380933160916481271320030043985379934750008081437930914177414459423059320833327332563250749623598638020890325388604032551108362795297069539988539519729961239340495386168965411517609211230410181605761373368631036842514857864574035504372930626954956861086179931721514108439566111511895419037317395507691845394189388168443027376284371288463396617156340415121285176357219036410757113990107854828124113513934494237894776437759514296440786848661541242769648992405770735335990417320817110649660055401443629176153379181816246567873298345190687278245206745791678551535084453499535416415678076604576181734393627092318379890184505904876165923450814388493039737309162688525663154864353310512448556849500531360259812608685040480852930871594021847049369946367664322189716049861268321804656304657826538814875191290075441458130259468234501560468970697487275357712792229404643016345531812312487845247496379724549504560309894560803529350863657591884647837712327682734053422249367112312942061782809369566516906918689679851195548608668629191156739417953479414553906439807969241511151384900803426287796971698700164975468264236556209525309238725861658622376918717231302975666235202322569956201493012630034491168624085877562968207051914783566067757986918022752474507903284887264091549121515764172699221174584191761753520177762599086625380410396200131652481188638823434666512681685508238264313843671775589697270191725549863088012191150275013394933508758801671453569025650951043385401475219017370259592360139344448174194209979340753231509628609537486648072984582390948066740840284851047836878690953266874288788239352297325628986323594579426510988364890092211889553695628271410313186532904807147734287087064148134376811949125882413842277637383025486520534203932643756275810127030589216491977697357728129235314303844321442332272101052459177026507869726989420451417318494888510553184689088468529461060644196766808374616519293491382913645016143961886660266021236678717408227488412389960611307060539095166374277971812956627642639835140341317440401992829896194719886484800751045280939616473927940063975455008447093593154474191314288161425637308083155824820474884186799233398634533824796811362668113766514270257264620239335969644139712448029457860863255721140313041202612167324607078019714277915042578481245831610696865799293726681358633358678363267803444025546852455896680163022151259989189912119046692937245344889069036892165559252016096146759881784821890717359204216915426451623905136236054227430396388698945053682885863853944896913449830843269721350183913351804467473471646624546233524956329351546085602025945188946250175999158243821130643786558961653112284726302646606795273362040122704382632392834380127308236167152155461778950100938093345279128494907335609035836439739509057056742787145305671160127673981019187253268545698537866821913702547177008834140267068672678564512882405269516455377474517523520231639352032791247190692549709543424469262851119574929816577202720631740540705006651640646784531512015040967697209860378618146931455052755655213501391325501597189097086214914620362652502472787857782441120455331088664406014418254271950768501990376730607203613591210402916162352226900385149058200576997820488170777778551204853197269646813385893112346862692103982945309587174564340535094985982156178276368116537515379730170739396119163226003979178739421412555995510936680358744356740214305669612142409811274432883468519633937041287661662770361993386997930994693970580557968439007275600190672657165391026551544030707496895896328989286934280263074748995941951289883163828434278713097599894499952963713071199794558633693541678264404655206264021800455837485974887754566359193542964810914679160106166065879330663392597178062366981354411178900283029135384780738650362726406773272518532041697284176714539609849426749881266284938498940997715116822587784979424634923329704766308153435017650741928517065125951959770715157227709970072755962484835993318612657665388137611227164482669065342309752298744414378582850900668437580458351698031975846208912010711329847235090334314531086526342632215904851424327971220797347464048487849042410681332902711643215641966164593593343474716920942338516266611252213702266006633458719716792314891582054794322628210027970133986756853916403898253660185929889082842722944636926178530847694365991174763221504337985089387178025765789853286672626537211550712392646196402753023910188938522515845662598191348527615024227265580284298605054358664202818088734028736364378164193299833800634892724589482607559021160630425106836547042754870710045678230850423598563212425057955996683048135409943663136117235680892710020552736112967702811913663558064543641812950136014764424050959741578893564561569998572620578468459375019737723857055481240396142640754494823373367921287491221601142046934833527413558410499965482237633312708615288971573129328459487232122539733673871296275613512988801244722019734326451061053828123961182409304413671166773936859410396838686964149517597379461839503951439255857281094713591084879603695139700049752969326099036818865820347658338198085519220018602423230054983956634622661777702066408522040104613912723608172768431772744076972360036187400261817408987723885561293327912841278379270807149837207290455336488770532100239111759636782043728471668971675844208467158808943781587063450164831272558624770995578827945678234049358625068665945826976859897686117246421389002172095307990651055305714652523651006089078681880353686955365611537899515541536731462464161077959355695604432566859058339354676827783303411640345990874098200253098492671340944290193590302554128498441199289290344039885760172103152358828741981184603522784125161695480633641283319255537663813567105401251949177412879846427829727711964387933453253627803063603581469605198848678427677315764746334540835129356927541855828333924556275052031333207701194410586537166221289487932505266363114434674199138003502305158976414365161270799794994379245937349084845024832831670460040883774903428307046622956146944663373342841905749555928591034993693183206665589523385223307893521213728919290617111936111420540480744603091776587308397779007405017664977287945818433344027061163854604417525300173398825889464692113312757775848759133349295873093139383420775479745421044815921499575503147508099226674904285079577518320749192514908936142111730646644737896122138705723342571768144271896657761986134032976016657359182593900913201633964948654366111042819563909735415748581205098731046598660580645303522616593071501277744657456829115867294416936530146424175804433954311981992151596526270856128084621476072347999405728382299194605409442765285747850159927307790029022946513837444616260997555450262311570975618709535183588857821463887135075456369169425655774878759874493999447890746214090628293300720353540241442729458125949793255537607669977109775761262989210310353986633210338050061115739447438894166104931139611645622749946724045691141576772545551223448678687746342662052074731932051680528662690405481885470386056896465063400643068868163985301762006912311916538907141893620449882933176477889392337358107753951592760329627505268797713141258492431220277863380519717719910700192920977305629685405133686321131982733887449831718897141730514073159083382722127378105273552057413054420509405700155944393964159775404021142635477996229643528781221404685557560439173186311727619586806429032158195443053340628797917677059043583599482454191010476923293433717200896546437621950126325221351749332310622125946349638814479085754987394485897600869606210885409530746311945703763695261490997780359913902280512163285631387061398724205894840114471141530822470836733642669934084077182236241639008655413616305811456687386213053962582026773995604071733176035060528986162848595075958502505626052813519614127716690435135939139940021910482759166816802810727662831402203313377260775163086083255386973864359826692929201632457396036246536602234366628514108765172799110813694664951492712825901385214012209712682541869652581972860170890191311220396158924888554211988185128274592450563434818309979492967461352110630721355833817780414372207201246635629757279513503783583503417648409181512208803050178449518476347537245679942248400048098185220477560058056392150086339673652282988704570453842785422401673166680092724695640637882769575233375986141628141001205404442071710439382782855152119614082339398006867539824254195899738427338325797444395631978757512478517604520571616142255426180870314310488220006604149783766067719436213762892112992920838032510093787830408978774105509878650107227256997625142966768520861442378769113455103659351025731393845219495991533916501095575522619649424386318067494496754608823768127599201476684146037179916444992821089282498964475017887773875227844025579557216557243563906649773620407460841477497866567578535751353692831009666959079575720832858903072939979460286074146045484186151825006084142838593335602390333887461369684697334612022999051856177761047614975375241137593415379387913624521561495207185749749153267352573117578461900549928453794034072075173833363729651903372742669650062649529936110848223494974347205174489218196416096572004417515430607319204247086093541142597004793061773280161284239385998371795326611142038569963088596288089263716651101036162272608896457388152529655203449513322170708246167122782585408988972631301284475954129964920221168993200486758013437250622707921891760041788839849354689056423445880641213596526931871099990494933380912553604491530154160869764896978535612513566435897329098612417291954040896044096726079150360724747010530065913949788798914906547681245112582923752347731116488070767013154874172172009236351380015522807312056238151612996128087255218621090368841116235501317946556704213032107390452182276559625496741140566754469422646759305879153552226697312437414310471876560322146535176723430883496685770890287419174498382823452386632247313649207389050827814870218903141591142214608217368403008327172426008060169162720848345590074423347417604542166582716270474979914059880551046047976607976246309537976177366036454380741859405274127291977990023062434374559583935301563685877082411159606897704687699845485581970680152623585956188105926179298969457809222139686679367015624879066962285693510377475450816707930197126547904073263340024883705278193615293599530721873482647714268488078841585666991618159369613204815475385514847644503840437237261543315903529085849030987823056098847612322627876678807714391704781247242557067835999926198090741278796757147582977601880369963975366488225615467401693811970288126584441780204439419275250356025866167137557266804893090434700978434826071754431349770207105918267717119438200407188542948419693309802601394245653956890908041241511275846233447244548053524128377558380866073808776045250176011632837732842151356087326919381574204124997205957951966648336339009745751358019107515343931195257509736138691225063883875384642992546523235994847855445784582031238153878987923534550351452972339076223121469957232834055249954870509966175420075201847991945081519189071748367009209310701535515022231943058495659953434431453726928985341257309788143888638644786535965791054911695869129729796369985114104162558350667923793042270677440531204512941433099747900223742281372691543393408504620321654963070659898349754027050472750808096565319372595360190692872394187740261714695940256762021628270988660527015788586155032851378037590861360328865984740528887055249948235071759726273567547938623646398070490267583703179180034599148654954587146715606851978871825058654089923740473571599155354164962729811566531359667991602355828227904150618216302348566030773776041516802701646827070346298054863951951774303056936364794111848540291090862562461926639231804132169938567890143661069541205586359471447178300655518713524427892261140100776965385611033059630986928790854305240397025119940642653278810219824822286368823727808492546071810535527872942610458762119164403108441679324801559531189192491286770077860541382200832621403154358256771017048111056812897327023412762162552740285616065827580466179729785247914474311350244472138916902418115913125047961576805763357176885201519246271572837037293376708145339818927542876955653239323085157489850542156876029017907207402256764226273268089405453786291933444049371062499575249110990450817445178950692735208948758309779837110558598630152480272892150199123470275355979366768290286036934244558728251273054613319132636860741973398448838361780919384183856428715529375416300930892078454804887942460578979103554181002524104508507911607961927109943740878565847954668121754888255687667455442634333154060542041047516534107080960012564293091967097364575750294883941511931694053120913111177859281233970425911688991076059280544006853104958645716435940574081860929772418641555393818291073122916757584554253646768163069643460593175364653000823263013128925334072945190524227512790414489715658600259648900252188378057962961703495876004695418639769159047437689318847931989121755049947225331948159718897691621103374301475875627759171603519673475431007848964764738875140909228041731096641652346000334217689323877266950562587849154644674785011606638513896496116756688250777825103556729790575976968938431092404392420242087428460610387471975653191182922004638048676324147771534564381015897571712080464932378680600595174167662128226801700178498270605568008585571638550981954353561181046433277076749644073967685780714687869771728167497838307089508123172208933103884039207638947423141661617340101161319485110035466043892688282292431005683378583525431050052667734445747355070120054328487221595147046117881292494162943078144684385423317175367036771439139443294958049895617533976610286189304631351090160535332255433474308992115667268371013012555918414594019049046452622306903519186105499035034694426731167885272515465913225746802462901653480733709285491536620608370796232579640475775728294107749171192528087523652025417240374298622834283322469984753644595414112756108600121038094871644487320447840556677947072906078212182794692919041625528023019303842988967400392443779088168861495777748148523322800483082506742328166751460117474815679316020454644659817531392912850543118985527096580350870489943967257355864773277926077842499820495863724905932424985492468812865939690705354953155972884418100814307003187674117983795827462828011531089204864947952103734884150072116171010704316614164059040905908562242832475641160149596824958713092133072217740135007056402963408840807972662074396191712437351132186431002272375214409265036315762366456672980637208715189655612221771616017560790160100919000078574239655806538118997043330975981399410816520864606532658480069868152650966201382200098970778747085422817982530050521320106602810852928880064151998477901310760422732929784867799241186975449825736925631668502375041147980046753355677883267657103403251320556406446123537222863359188945951724780094430595976228105700288614763254074151129807731824125153742293668198970364934294500234161325201489719974219636158267742931116281057361454035136117293993274125335759054095614377095429278184366947772389861648958132920747785537368667297345588205640875118304584304598735160462490551094988343189001057858070270183219391860125262179504251498021681505502139473704676150624167922937250792453326104993217533984941123032002259737297110446149053682442794569555223693876328963257740582045719329490138673839295166466788772978909573510322189967747172787693138691131285861193170475842378384254236142299681848573036090821105322065382861936191230890099453060347127411301847911487798925229168998658326914293311623283690667015457318851221075874511223369294940363084287846945990299280065804414859194593935132228442731030496871194266176387507048060212947862655818815084533249966258347061667133127728278225763148340161730108016523917618663805534044947727287554312764005767430583836163038249042024746992007952758223828051844632671684341824332919848136410246306446656368600793322053112066699336453887545753123805651003874794933336802706293668026403832413084685286002278533972116685087642497732069655843096050194575521797646302056985487786993413638907198466741692878561558702187551176350707204421200793988126483491834101622371197378874903428591060551911519533838920358995901907547119247199675578750255802107658660156634899332962520959293079557222690826293180942889880814547244760916854870956129469161530458003365744996948145940245561730681451349823606882487084955929849553553938858771240372600234466864132247194666718499521710646546561239326541173072535152682989541079836884034264540729820373295936019360944374360150421167441663980240437230843376562693248631852923373903728837476681313662985530033353149161283958330463567620387701649691101691361589063661220157466019001732027594063139475748182078330615060105381272266844834594067813696331880929296703052955217527677763014396476531793955381616941410464451083410848475940849606845287719230453689203092620662941008178328738417376841120798375829226151722180006385295984976753831364623158906621046706217059388564017022886661919392004195927827892460127783691964142242303245689472704270823164375004129980854230080807681825963068290201405952884729305216244932455223879622160613033725335190007106507123068140609445861740324234611214949768876412072432875784651307671778991957066482992651758079211453566346861615078429794775270438219286158177250040070510086674336347332255562728069383291681072359808993030047902215694159302045442968339308425762143316154840191399875203499267217668954601588195944050934382666662462421240902979721686585973724598600730664430983189962256860562796221407683138984237982256886250784482677719314214688103834429641357641907090033808976324000487240541550129448013901418574466103453799078279401972830206974485941250546646977724548039339853235061537561637905310136608947873707936329701078057135910105277366491385621563364207590026332724920223294175261968296567904433194558905079827258534541935913372021941621138776201789680166544951266666249852721841001999899443470597317235538813341059181574866030662762247339594508311872392203452465575680256732996359626472373749899188466573626749436465454127170835370823993157404867983267146860895030419777317945458199259031075921157855922391250160174667719189039583275400965728324487494017906940476200008945410475902073542460738798336087603238780697493797393553610753523105338633470795112735580504548002320715561129709776795207363728665393572496582844146726477714834493945527302329711283347170338965714550011031072408772705112890949464980722152886907359894786305898358205207518762027313256488518190018796001521838727937968019931549997017269940991857831092789851982551144417417013212315695933284982440037465891345277385784168435757077863900111374562241657968038089259331623338764605087771674014042652975137001198696761776929419541544059279334631591503333155400689410896429009103829230861252117040935016784589169212808005876126025164322050263611298921804321556249858504839728606953087791991618672846075431316206024883497332385657303347866534288285434570591723796697008702205352860709224793230267950797480360264689100975249868694851470386818244924490935571037751437795520442272228745743230079557271578502801094672478785002671226531606596131596916326730141589091449845993200699993473741778298493732530613633556805773965936918224452966430037896156761547586464289747364890039728562666279223941023291138768195639394548617697668889598585618274477918584837453063155710408875758284794166822497460050136857290511419348205568870287315815723980870810591411726495286323371488797643623474628856544226300803060100611886953525803968505127039472351563429907486923742178465828925042998323196838310649357655121568008270108335444349979386695691740115369730832240387034319496433785420874088538323035287249638308740857430474037461740161167896532934005826927126638280649368680986714363452819979801787988340649213901903434688591358708344418877591289703754514601160770718987469077245774383458456455419014472165318289635502488556112276124733546103588683321464454837167663289348609158876916494746044929344682353755768137987385932441062506896892262705315729875829507304193074661662371281762642166296436060287014531156360014817459137110068833981508321942795198079526533989382122068232159522640416688675068534342197283845806972435192081548217547563998461995281970177365843791366844413809766842727933446481624889780689332875152716793544036813534624138489808872127254204656069214835088524955701318705275382271596851738653492911387953055887298390867867278166713124633451364213178841698220957778056484524050249955374143075975893139313773421179168334609060383779732049734923889966054206492614387845263804473407720197435850665147452711058560462071449255616093856587249845977187466463893715439991568497833562886210405617798604456576115437001830277898708639464373869952249306464550621012247005256403881850269319594225449526169701230317521886801473331401803905830219731102960338263662826942050183503143357893249063667091520387095935241085351289185168928650590307394451950345529756339663157719742761574859493548011329432970232465623001463420804679804982809235988933076929362928521429586579204907165435226864613880348866172476473728508062484544005865508192679548125116326907275729829123139642229757818972286833866357925567480982914894931861846292301005970287571758794787609926137381093137962767478262539466249944068875398673968180529767960705635140172338958761424822176465955838835255413667741841524529162562903490478271615273481049108620158294397081012532378986265896072449872559253786705859625323194521388407322088968235172941232408500516864846940448247061902840523352279994872188174595581491622453134442296250279968951769990434706184045933743998451857025326172605206051889014555636252603820589448327757095957149653421561816239740409501269576907299185280675346961161732392352548132022351196056985609322445437805575217722967363370427224792642932872097530183562123657041092492538512818176992872487033063684472542342419148728606633767545139346793901620278279730057911930943266275560024608021902161938561384012843577321335553847098042469628512157785366167522878214488878222225201761695035149348117256162733043137616918389573086672071324234073590609622630160695270756854647632240509004725366097858982944204636614254947833252222367774539725884616823415851827574537155865656160984983469606603292103380033925025462658841407937756634305460239893620432174919818114606373282273691799593331685658656179211437428837754614561440450893970414941570637527467493019954408871288728360939940859186029636089219143277426150347350882775768917611987488141766453184840169984871294108859955949730616094239533986934531685995512001632881326758383146366775007359245289369200245065801245372826136124239227340171676811380207422382856055681782032501946611968742588784668014352532657031172702321797708039971684002750426968839701943689160832614426551723992342266276580273244594159668565878528438197462860615658594359762394510765491229890715583344264187788157375198138602917574347896770682887591669338356723674463433157174824753370533869399021379090463955995500963521193433066747677343166192503051523894081644834850152706534403886045897993033620365076486984030022234031946119985670450264865987662656665400496414293436910747419583706545545652275009248332849761493730662378813264921821062504486196606310198873910180289382120285949198141277456990278557392255003316580146754496667240486378601506807542725954116452142206925131318551725012776762015595135455040625827610690107072582339078860877775423085846544954240822347748343895857731332226282617747401010596837644017123776732112305813810971485365741176608694817362830179535150745764318419557402283515176309149600790046228738467114546690587431057516094546813363404134580291371878143716738327445794957523634624500710034448493383530321202558020438380134183632428193648579312067409228002829327749742160258828411999744447566878832394176187564465570417367937560426339157131812112853295666551695474714159752748121689809302062151269728309823102783710087586618602463604888586695877563781819089266445895781575972738832512812248747207274303768601737412484838387150482917823591364470678728879793280994656772165300060479292021944676766579581916338031048162691138713504748656219269656386790523424445253338552112044810513765668539779074813397582105574566688027651409675209319024537930114238530749327415179818339205385877120864390897707302008215906640226134526272125888423056809916109665832367860480218871956408840603239135328887946159230987487500831872772477217284061861811326049407182004979566531709129869892039601864350955689239597074262766368345219421527657220031856052213775174005605459309439886858375409096947561018286164510841590832870049226307604341985091360865938553660191015506948727340678621966153733622859937064112016644514730799314796139438846295596696448776655597180306346440579004014208001292302892891502902913199816147928741048892207260890063461340386686065494944103753980936720981741699645286611261806345554193614892259013889726381255598035013405016449683554016478093374118992339091865336565742836549714134273186213616486174605026102521244557313752655875527012936939427183690637090064509469152991723614117381577458061124097463020159537261523987735121701286584984371828958064080653966985273536905750766636466401261357863787119543503570255000648611228491447301589763228766623665499239096035421624281886600515622102072319198345067173375607389806651277872507244813857041457682552698106876604491718779265874656707661216656024676011021701893103456102765833713909858248585934249240273181737583868250781571174476209702832189845701429177191151579636989489636847246889743941472630558766110337428784692954837103679670615282737028656574330834759172857719437822527401104446580969808651680402830509597430164106054535634149052504237809226841540631007132963892400848341790502962632846601966377005930018767574369436706386655573218471025598624842198037890846127432698269606994980183595426530057662172273475453878136334727931633406812890565678721816827062198320425921733390122494250182641442470671228304791119200879623741398706561127951464488616438505610175647122945141208469197737549685046357180874404080433807500435587520434301521482131642200663084892645516328496314903238457773513436223639322554149912394716414586284355288672417396460694542527160619511844702731349579110999595148229077492520940701469439086850128694477838617338873144837198259751410399563508498929271277714236455945696669615935108640665643149230121104371184350310644058232195977194113584845013910386600008804394680742694202119201976058077925540464591596561288952195021670359800796091532069384902235132097614351604062399790053168892077362778558101885348433445498782849831333530052810310878482877711271015145588546210970143260579688299519817215028960253593094318855439653250738375250661847114446307830303739250741873415890149384160954982179025518549133864088230670676934575805987067088080967455779863933040978124074574573135213022890491821878271018856191270806904241859175558049670750338101930343257511453337406367298691095567406790501514339710045665209481288554639580817322194314120280182335956422399567232138002967012851821135256264356471785957227442966911932285065176069166221895535642710061435105689289396346343674300547632708012581835817454227767008335710474947134237835305699448079864801329330202393913058903136260059659777231708926350004363311031161634826730499422636564763444777837486938163609839656170008920081632346771904914740518989041288640116183918224706328730916632064678210241351631438262890467680439316750070679282291750961051183058153045564945917477356455520900913816261930506516622739405200090083413609178274155988058957317742177029919507366291715572168024539964274669656756544909272504040548865129028724665733086981309067885828458742896614011280932636917953334203983541423124627609246078756761945439733140426859833046472731643839272454478378252795346586218194413316310334419978299968556911428568030710036938182853570232359200718068402097974586015958582254352701682794243978693322962427257297746443115851658606430676285836112610160007438739525183616344223517217163551477576349593848419156564762645661265527853275915989140639502126412049245053874615679026613798803858900152072053499972861967743953423613120918226071967071941964748971421887794396163566373059999493309826218178394131266762270882919743492363271451540119555753736073103806155759696594838216242803028514363277656515818615409809673689557620463854852775680358952956518542108563321567495923193793953160291529541030716418292951588721737811319208993737613668016525159190924848716360091506411539824439658458967525228441905703931650417683336994283235134019343824728250591847101899145935118055522096733574324891639094179272801136067899940067647904928356994287226831243327674670115818432131369030358624389375096666970426037155691819521042336968521089096818885989798333200935325893597828913761754062567309776108075998846260027788799934298176997461295006966175589820846724912991994134329264016802291403294154024861354791276843618201651200368656855422261464617302330966973282409391208346526282268286729906755329029492563358418168607737910443459291549474680610468255983977124389214394594046446897354183518934213801667136719333190035556614872635827086353191851870984163298477645480886371904123498253298065894060692871747110201800311070563025311841755554769443815361005225830275588334324629401731893990454940226515896881188582009115199313600093541876954433754641978385158298924695231847994418449397713072649441827927250469830294722423759404608937867134665405954745111160451287033492306399502906333481203524876231643829360233345292813212485760590407942541200687868384443618731134732504233558791626105271878636964841967990091067451485138469098480850776521814860470144162065875148712791171787174383180384977619965963765552322257914467223998310757913215026869480133073373951086213225350080250260101695040150072354159773446823877374667779344464633972430105521346236523033642015157002666015701270086339343257619410038522170126979425964903651414995842970520439849824684833986938398229784794097899231372022636949274756838589574213199664100843961089179564951005386779275380322364231974178699398139578404830547314919390765436722596466044277283544145699510170247705840349127619612714210550975303220102365510454504762292381779845331876156343169865217429566918472538661097830764190680043698535057074680867973888382707986939997908354237476546933676002739290497737518067359774875437629230345228193722741243833266844286004867633322959393853044661169872214480592263007343322090671492506303090628789114467370772736932150101072609758201782200447583545421331859058205022980963659759360504946311636221984753489997585810079549776183762057545226661300814508052431210880131631638735630157385949998868601961223898149159875603635755103730506483006279393999104308118041665705264185934734194970644292575868382917471468742035737700261971315981319467483277315573889360514743825743585528182471707809673096677354248447663878591063845640440897528707149124747895600857607814399375106397258593034283437244670238890266617859849441227907898654950095426720391278952396499014106446949046215069676110134663106550068044769694664775527615793647074015449257183458508978710417894611058443486797422308693278695685960599680622521072344954853935938388042439329003552819703216845768111713975811842058981775118380189747488163643251569412973533393147246052162959486147204147423258955894458544957353574682791165109477839404103091471728892647660964470567200965750623048655351190197952768913384416736938144861282193613942218306954522993518002934593008451724324294873311013005136434564254959531090617041352859997932985096062903895968735869537792502614202439034764562075019800579993139239750108096030242240828359947216400758017534233949508106909149054790905603132278528221200306751953311123752454451113316449912799115668810427896228925054992113592323012900921497107834351778472171521311149761696735172035779560555141303801866561877801949570267753153754906428148764265443334378123677509424875385543507641294541329105755100236693906467929832287236873293581126543251178592610847688833256540638708957949751468273516668523925276307275439959209410294001459291437547443085015469231770032266611975426316285258047805962771068693681683695175444669722504770923851230571247808832566513564898649967699815643682635065606030589781117945722151706153240123247090466465890244441288165444404497954065998605175142337108707188525478555886477016278910900148262852209759949058349144114038456045115640411121272884508429136013349582283774948385731445624971282315220739339063994490195092858941162566607579687450644866336043422522478464985333178627935311377934658346160135691917026331975046004612557644602815551954940183332561677411404065085532132135040258219884084272493741326433490152790702601007728990680757918945184442592723007916402383241156301439211771404362504358098790424832586335880316142663779950850488004825725030888631084355416323105400887865048038695246608665768571731902064067663961019565115299534890935766595462062760775583180011676165955232153989799770150407832923112135587707663799048901189008073079359328896146366326983923138461321369216144346651368453489363445877916530725499282859555717857930229722804367642139139026148800219686304349865287277386972859819601680381547706506308445882131837065303966497800962371235187790278255510340286526940510716728627287678277796868043502362406717560444926810457755315296834779440134427295576348894928007259989396623440688572084922403809031486985451068252985072116142304426074144895186233379437478740511928965948866032760661138858389735597414615323777694561434287688502675393183049309718356299853971172468086221894396666457844785977020180885593206289606899779586351792894447778588084563755107254669895262873306732275185722273325019639908740313702375328419224529060944659122567215434948499513158503954963875010014211961956103526461309149667377302023314531028600847646130386566285729751437924300844267235433504262337882248095257135572362510454399401800143357757626229198326770616571661446301115017940712863628647440567900745602011578304737007237171793580744885770298274081896972142225893342965436820888646754870673211868547132501280035346441530560367753104750308356570368899571992320181636420225459682551879650753376969971064142424943049057411135245607171832639033252896531619718213160825512430531335647171480916995770677454038542224883769423415067292795060586315177441358525983226950743279268948827261712584904042388711842422010649170183933801530101484628555407837036751593458551171556807301275104140576349248447388043624917898444559594427168481027095216829406804284594454083676409191935940343871212347467167229952827574410860826087015479615850708326421260313137728218929146870882027193217346529604100040583488643553112941223670562046397480020494234527870056150688805420403029419288128184435005840658619252881505069447348480515474591532619932074463257330271825088207890103435091096813750984756073872896735693794041654590389419599028468864967861466507581607266310387201038541449512239383001961057133147277190143583177419665581960523756637072282294006409330330260137086664920687547892028227605715596856880081582889531501535541072492399014955022954344393619670146650501787460816567275756933824383500663906521324158931302143644461713209078447939236137179696001299048476815053610911503900096770680633216988525985601787033323196878259944662753946509642008191118193345618663525063512492468701206441256855847465754279683936709684440634126094825466381330127548270622148298440058148621599431799184878027265028611135076154255295808942926258109061582181708226421335617030072700430514534278558406006690156481181011821240182647934657130284187318147356913221869908028259685119005182875163608516108925421396501280476070600643767089107844447845073475966147511395838206160206532470969164754803182701765844507673093185438706477046399561300706830923052156965669132462225537496674976681786393585294496206863778076391637783184411941043737296182355007141931575988887990756671533931311147169465192090237527841113980857935744052413926358900362019283946775007550042959710114566036008263099520352363775972952946840438302713220808311584214259487649985972024851601011323093688309061576230855625415793137871815562696398337584202066815255238271264603227469509986246426168416422066594730487158376586101000164134021743774155705952956116803919870762492576315660009216691522535674773952253065445081729953564173835057540607360365917482117542748685439904044643039759197288026623464274690761694149563609929162293751739965295900748221657658826524739102280424851845326116749582695496538743232116958234630226292883620926929094365950049980986899521725817678053770485126026576093765626331033202149080355026638951782763496924018406095236239300102505535738348704505460351331983421179367486888034404792200147941573938139462474091470274966243656803350173612130026683609768718074236834992712124997779721880905261118126859934417664722557014256725363220096836409019738114794745690793483438859009575842993056765597289054195344627051741509637927499730939815445268900919367824947326914352031649649642521423797136641726825374013619561395462263733640580641419926446127547556620299997161680470587023533928689565007315546287891019614292831953015558342731222399712625586135271187149579526173305947943304174569360461602002034765258256945571987355171901743564191426858245089343379593565439742445096052190051520343835524815293149746718373964999135338401623599555092895509903499285134593746458388680853638424070272051290335805378989747842798989093427217807433398219718694770571422888189419989475978035115256028196617585998901113800680504579976920899093306602758593907127782331213965736663273424530987094496178783446939137438602019979167408376626415790327389549164177758157368706298845552098548935258782297616227519801264955566949035193685392578307702246593159025547529936857811768793397643241087885445655803813746450567642066949262563167993420597821199317409419898184686333383779239007945283802820584353042972869018104879966167345080219301754728371247819310966722704524650010821791184375686638195287727839661931767880083359096977942909804020902968590461580583368710668789774807723169802163405352173327610717067374199441050044644820578190470591012107009773846846484867185381726647241098877483130977794196371466156841439109662071200685908147132390349506896439702126813660194753906147017351551437143429240043600263754463913997401752187951803666879514251289330647625639717854889788357934932143475952988197998522039165786532236735733324206509309886368024580323415583905987547740654264271905652473498351065959228344437491774869457539781677298064342141978335718058837162232137206458148734945499083066239019909547153860916970527969920363056103531761454539554443615152027957538232078505761094752338439807455848943953867201535628508011745989083098728574146733018558470800155254819557937085688119928998011120460650462024135220791588535843465554181513750889221753232128756758723434288085333487829345186314888938555071872404064746641350009855465868539599856737395149876694751411676995751822277427985463271952012400774848453993757613341732396752332911094445209753402064474447894416352440492992187191238749455528527174483571676110153614855052484706153590011843658512412146332893378494020505611526997444736324324379437797421498990089891358797637307353038952060518372377651186678808848836647628819809604151691813380186743333976589173208302324673508748715455975549236444197394931568982349247596046951645584295785106709166453446651969036602415279958341334059877745353019503785533901850409854515355222599083736053469406212518063152219978396493146502749840925241305264433099623866144423374786888533731837155371474014211514268538086187007654850886277475188852649962942924494272864028694154941597822941672738749833240721266373090110877024744430958402842471198859651772272130812532107624003382364517322162523235446549912885027571582401125394846152676024436789361094879999885979334524831867500863644005640898053481270534407110179323690776809321041994918756830984452962974103823244706734429933358400155261707431944025057237808450789515722329103309114548553696536885722946361737581343312360707211038971086768120048029049707567463791972380412664776496962491856350944720067322581969785943328804289152550702870484683142577688516840498903889971028812877150674613046826671880088292558287224100423786102417274939257388700348459610141289668692561409351407301755730626046262238216159051372826050662167234687347995114533261370658119197664962594012850973543169886567612419735778406290597645175358724944444006685864955496289395537084336304153052326905658790589419300451568531736559966999367730610097802608570743153753903659379653549325223924049172610274380692979099698067594115809295245318257990078333735429421965672765840966511019608191964975876221201861731855006868178356602994879535955924559880344894858498818733466632419066364563964627129769760516789725851823652014056502091911205425828487696757149492800772480274480948773635393537429817325322295206001544941597247312377048310334067070026119519941802025766483037724811171402683645607608491252614495283314911045654711678448109672238742081846736275061470796119834866483826713628429816749933545125503804036065635071725438536187072414020734681295529956362167233892775598801052320288549263019262435033798105484847040727078664206177738943321356826097207864466789459443883110403017001671153963359367137828736112448387746051174280593373508776224725820481511447054750700774645265200866867049032772492829488506974832382411014765173492371812824472916634498376451304954441350598708184618501538102784996962864782461980673569058517437753791842835346830485543910222093408468896740303659581510467673839330507653057705227077226202569760252974120255805159688951818860519661569860309353146230974559173583572927064073583288234997546142854848280204977680522175789915595845356803696727708451219465321647088519436918861523767796389329092195991538956046433452306317761635773563716889994155165382167449439866655540228676660133619758526859428132407921290072398205270979079412069212670471308187861709934843187179067957777975247303561369221675922636772313218310334267013892776341180918859685645781356567343744364162723953123264876079645644211621222506278661647387387453533460570444192126344407381136256566380574792215544424496791693715578459062833339782172129340412116405258434953458157580374121560144640981322943691026430263728841265388313658706244287754511390322956567399839095796759133084304322669546306009971969698975943349209412319271593726189409158292083217574877507670233112920893311195316625142632287521829763268616639061779778060530415699292707846321617478995582366381055443847079965434518343529079304181116774441518135021307658542868532190208823701335673673607807606578510129437509717391543065330298666848268086498437192857242672155715257775495763603324642190330149718982775345462181299974327225533662960038504864129655809261846967428616566929656442448509914674654986301410284972275326369632646862547068180689931105290387751467317550014883940170362136917970951931579124663129953576367183269030511676377370461257350552398517676174903116619306227383833346524742047262773483189001552391478565061547945036193529274677287463902310564587013511460598737332140833787621848895761946564342989062421502383394837752127570170811829122168817320988304963757064722427611465303146895378788693559482075454528579570345599685742994626500859577643741654354871117558572783790445409308520805894281136650142444630921631483419477318321890795818571372322968502066282946833209019527853311812707610117735325316614508489317791476581433159361871333837542407837069929675170194036609236428235010327030582931199085953036651992790383727964475187471535513129409415913469168953762056937505171910935348800471387364951870896214084103468252105594191106411308015976599074897144144477644759352205746117220489886017085970875058612322059141798682163953758161226872375445150711181462824535309865259130707054270291980913753981036424471096227845511701519874623174271828881398934090786146089585869432025075025652009093499318176518690870529172464429462734924029602029796672509651086687623859223744565067097286814520528570876375314391552394359977773047589112602186254692926086072770278234916422334029294834123343334507933627954947536111635577502059274705679507525937017195815256873173662486757070924166609849155277346821408215198228306363825996538259944056708214359302181145616138108715560201760907587701953962280121913864428633475830237106193578577202573210071018580729426745932458488912716170025918556847595418456540821880483260165451177366210587433597909150014544270483439634353605727554828587209461959337655754636478401093769070520640046191602851219729785183266097382240908615942645328294961234901394719056651002550417715935988757713933420898083761520689505771063121465670631120031905113083644018941856645506711297843573847115064262950755818388984231057321035408561011249474588091215269256108992243376946480976948702145388862045614099132742437019425606607569198041228583482495969485439170601867975569780688901342191549573685285459210699415023465282153111109733501179606416339289433350583624360747692760937394501864719600260885299240774486614368029847411220569791534450876053128953054993069917040538598367150368671980879559625555447185412524551029848885616460557229562651137424454744367147301295704402268638325808434737826161878466389158932210822053875894753116280285148078666100755537239784914148007550275023209232181136644698737550736437234262924511736165733823780944648612589884264456869426346497634632009944701909287908215868705709814035952666432637062701103478198445939770709975243895437125020763770682574911505081461324242569710809628781363829844571153334473174053169289301790232155714350558605546759464428491820805750036230098788268374075561623249590877765559393883681940442487103764094658818815718394513465852342819050411155851117233063190837639431006897745127302461451469212474266173855107183337189080496665622401359772612607595692366509415582137984030653175929571717011488254794131179182328314924902938962326800543298065726942399009017798546768179886666573582235647189876831308338763354589536730484809574780548342417393623858675853757701440318879089284576706091809011541890220146482805089898197713802730523242762053449595890773711113458736110863744164868625583430707258566230996862513700345294183124468864445968433946924366760577455194608053651078502695657051703626600418474595306469251611521545259144149579215064437706217388316938171396609553168195236711223514613414262109801767434080408677776388418787666529788856892292152203392637405044906143505522071098393968046165086120768832235339152060325921712452243551082586412092416682345030828358199449627448581453061630215114326763237670246379806238831040349941121080739896807235990652479730763069102366468380671744149813897199907761220920098081806425109565678239788243239184740170549928259287549502453859345046188610134726881540629535510947072874894478786639715957870072138160829475414592820315630381651145963167945993663771482858276542897859598204951159229450873445933141968767717444260788975720505826226696562447040396540463617177386828781894168683580123295529573774607949440122541624442344494972403661854796321311124877372232622840068101544105268445776766598931041989273044822866280704921462620102132867952956609929627339250473822869654164432780416240156437066477794312137035651134910521052555964453454291406488702103909641735165237207957904542547322123084401245380974058891547539104816375201227968555388253958557702244390727516984287957788977757868865305487636231142356796162373551600394101342738508439714269542373663305685881683605586564037401211755062395081419120515317610712514606677503612677870180596058725494398943326835532414568091447000610487224406513547976176995811351103588939878240743361107086375665085953722473772978701955333243952605674316388030445010000303794051602983612577659050614252097660734484924409498003093933956151734796240935588719585902301826002251100656203815454270135350291218644886499299007647619075020363092103921185590778464113790597174800060086214985231673051540079638398008829774805094141495412629486276790454376004297137534170290586792449041683340283706955342431721396510280621731747525286346156286275728620333975419300942322413660747104635760325159838645413737999442925210082179969571078076839909317408123255446559339022265755760338568011330371616918458737746397763980725773838961995939519090406071741205968158702396674496608598644434104339177020444545459075545753254588180760967682046414930366571280165869335956218372789018871356251556853547442405410780611147169538179159668998267729030937451965235770260899172188531623783724014298946350752587049688898052268163439477114240382444213354651085680730716093216391514147182891176138970078601157587810401451492841021162420933649974383859194698799579845966883908127453413871380665109301305446440159056784932515987874535809557379363407250594257050624746952794635112782207600389881959455899644598232010374176161298828621056240284826779801836731756913443768566375002041329196579508631167948063293998131942738569517719916333696301550415783910073009719842216933155930533000668624673810461899161541525100388273278144497562060953709500260203856095662492703271939332560321678315274028780622108484470203394543968799929206049687729642676443834637524032357642211623847878472246108229128142606126255930106922060811123701602786144981070271607354257155233107790444862169542507714382460133977042253272050875866810055717696313421015851814801425920631095669829845119090290340850091878766416647226977356752343861194593121479426041948397169625556525523304620752975906259246036487766882421322071647660206526396606905796182686838248466355470470746882831624321115447133720646841367493885286013923200698434666582438455036894004448849565143379195527135386823953042125583961944892657594105263938190863074725247663049946954056150367183434081940815874730782596438856607978944659833743018549774294644629535204878237924582575070293578686578574545327809540724644161732654158950690154829148876063433274520829969292676442304227559400429420740896882773852158861554012326444264591550685352254217883627043710519485347560988042572290931624718299359283915967885895222880458255933871781457422883886283729111112323202146581614441796231575094871739326993131407757585572208894271022727262441287781364848651666714104404901652664842857911826545567593636371780594984719207681905515250629227475381441970547122362800099530720435480481487659935111702056496578919021657505272481911846835217509807486247282930100619916931773526324117778660141086076458738146436827317461839306997589970095481235230809373650736434028726799460492699721431989433898549357867784757531260105484273935312405540484248989871124805479671601122596881610751127214443341571713379123398816528493564711129156314304106951658574951195431592099775164036894727709551386007795999432241243431330268940098387395952664709197383942679854498507526398065645528414599126296794763457292564358883682032335298646328012357604513583478718633038864458917870450779082236042591358424628234773099312372137470802592451957557219747962736227190950922254023206461736308767058109792499927395429897083296899107763337025856147458782300285165366131097023922177152498173537683779382162765392034573705999931676343888634637108998398810956212304096442927220071222945727024003275131180514665915101568647300464072482699379757566568075087594198991633338332275662863281042686582266515712354224685503085031963042893371449155396857621965171815828744872651777588280038160896021169760282426779644823569429615537395718732719801059930854087121932405914252468409311734656108867881842400820674704543605649698954814599766699862954081524064494134422028720963342878305501650955239728563831900865902606941934021146385211806812033982156711642098859746914829465885334425939393882408865748642976114294052478050839308581789445762429456331784762671691231537245771832075181029488061041705445978252454790970595436574868755513999892541928745668340425073130333452358869645848066218684928309438077099788253723607461417450220683930934850093622805250169211455038542418425632535294857556041438973821990238208748814487226861458560745400021019562622680165951848098700449394545237125208280281411029116491417551013014107393613948599527240866856091713382675924306946710126695017838602051115182024229047624953987849752868532901273331278912770764517643077868770139752107376769906927077008436072668533467345558807032450919618844629988821283010597237403870818009825026488273344995189827699994953200015239897323551538316498006961180669346892813186037051480039067482911281209222304008802600109045463651461934678000859879270507463296419225582417920016702393722961789873815642324179725150448777576218691681409048849141743722425977790874065856248268076519828496222713429392464703876765307987683471975226001489680147492860136970097395591393505166719748263253934349488398156095143800973155981910881547539970144303800850770290348502391913628621151708197229165013173817781511754316350611834513947158625887782205181643090507900166527741543737623362725673829329732623985907337531451412398590678170068425187706648560252613406693827881317794900141436758234223910276556098566555008768035292496323395131404481991103066425596712794260146124357709253818895243091593195175004159109389411202498780377455463653744502319529444982628360000384838359399209505058133882350719022722355994935270889509162891001833705245476836370440734782202843468097313631117079182294556912689394003470895146006861311759852082301954996800733445328737277806561679255120677137579046443412688239020993335529527696149913824956021198797412464967182900626105420403170264932617251541337915335949897291178523008713344862330144598990283345327964979894101868588765943958626567553003404808610777837205036028120884173564096270575197625214153306561489239786088183864099210191225389674763634662240694750444342872143770880737104626876867355530287219386271219362872660910606429521577885527755441295086851137417162801858969853694295655214652845198863735198600348658734003210245182431491758997230647619941665843444205677432515332262694220183297175599740947797573894530006429021563406907487847308847426445053195970600115575397330900670366723713996013106308108660797102539949227854796749609038773911433159409834132499944458232409413835729246955514326114368913072655138632441535936226618701036671914186705773646463729703917664165989009542739794829812009577380664245319946611735774119966526728604379151592549555137034204111180967889052608004829869475726387673972633789676336738759452872011275270243937036299876588929973814501900419687337033736433677694904449973533563259151325438634041246221698403947588713657095119519467721962132739900514114529412249621774291275641734425886858755863992222688725483078102775178616267606620543226828980959031850308736299262878279856406552616302091624664396597714838876967770814922831718140876827306751940741318709767314042966637458608303893384914543459378444410186592563906681807965148230870807858717613126651945937738588449953105779291337887144831267010580246139557541899041620477259878461651676073487185716607456949562569459055232657094815174200190193321166656844187574412285780952432931788864176813047641470659132840033535833770930252890142685278696349591525449329176403461694864074924182712453866068980541086528406424364620830652004747741546391661269181641370184952883661667170028684262368815245679742075344154680058284951264515233483947210780689990438463171313819654655217247149870010634033137605712074994378769935113524888727652090857806085581560956779386069989997141491083384214588037138322135050925542001703066320179955700762509886507222089029572996826120794203692820827647430436867597451767071855031984835394363327009184040582148425833778111875556049195710980057662501932967129791100640453479881189326102695172634045970758785077392591743614760463832058782309988529429400213010541161046695183789172704402979363180623438731316860277305690743685991758709649611533977010839821719769179363546037053433969563825846414947833605973967064938484281021638148809106161611701668049230714412097269908773864094287011383630306650043282134144541187404490464168083419407130997644400699707513648915182664012645701636622341491398970698999573443565186212877949168412616446367686373283712760431993314381366959744956216741923111286897912247518293959877647058336723539186413861892983878718572196863147974611258890749179676696538604886403588810117207965487940962254128801940819049172894906178334857372444709015490025866633631188930194534445491494956373450568626005342303387959901667617755748297814785502813974771735974565039324682715279295817693188181064229124119306043489202380531520817164549366913923894480913069936720704221643805756638009466945841836167180362631670845649769240631247051206950093117553568307445426311686489324815714178827823386687014514702968095485149350912972084025498133511904330410998797574386590124898510902515902745574463914960079850264918855096484119042173181536496548883545925211491186340645603203263626984338209497215303358230658254941259156018332414603959515927495380931840210669581172431079484633047176690553968179764015098998802385935308593067078490396367240231233662634339329406588340428314135049220976014784386659045596447264901297284461787807982922472857657599828566194878286802562304442996095357526943396154535628809308469050322047261350496580735698562081630585411030701645812172222069009861125476162964888384703847453114790463536794531749812616291264709743939600580135333444691696890629596307179943715531124855875121224028264588080469427095551534851095056591325438117296787345498777712327991676585650692600424076014046502776615632431977375422935674697616217060608962923800096846389261329389965142237543875399219173540913949840240836949833118869085872576427717196925212779769237679004931787809385433320407867889236467306853064034957145331484050993342043123073071135942650137678853314034688166330084612344694430731522475129725948308332037192312016981599054984582047663511798744959777913551461249643271809671117621907316257855495754643820967968851579788367380325502228244088294584034142479649657561991474085684827895283479049084067601223432444557601779271338632390009566757897534577224400602079222786201898834301589179967805470070443088566723529397797321550637200383297845521427388254668413385108116958194460537781293176328924725814400601246967820026126596183647025651269076046285911782347615696623330257465773114340323092831524467328644824664421809831626709805489749710435144905537270228649652138634253420228679628381314163692168773249179936629038210814255004038179801904526721929822741457562511412547802318965679202001041022094709397493750145482539792027740424787396920041018813555279883156505534674877514925995094732286337452671566175550866767433803394680194607929737912558136509346760618501668262447603304762715323663664348236464782706089682801485314133207652874805220904573152228216133600751770912499074364254877264764373308111980383120449854053117821699853194169754287713916181213826878281148308170491614092593715325159018810942524593840660673420547298431387255340769375701486582812508138842116054513035070024428723051573253736805259938257119544599630467558156629809482576369894640775065196733023376224103659063431688738297132948353755850330664051135603766811730677224104079886475518979179573580423687562565535000150919623000370175880599887507745290802045285614388747636170298390755267757113525022670265374419017779647631343522187354469801463781674656064859570296283639505049500423306770678935738076167838043847519026865869452054570107431556426074233795912335894131050698727455731146850119892973945965270369771281087880275926961724443838830193141820091710629530061059936545965245832344342798630223138838135809266542846214198894293826655060702790876482052708663496454005352537678785311324503359855505864650874336888702158086427102564792081826480411980481966603083276043027290171943516455350212131948407402140743280952161206328786628155976022753654226203795219876741817031028999745160458824678932833231812434781105071790095431677932375754439625733661965328422108625337007063485115714698805890318771302461411986493992068111175070392119016841631730555495662663543451918492999588244521992688428657256505625359067458131300227433895266608858590502322581754799517692769599188738053946994790302578082785093622522763967513266333151931149060926962899023460980687698838626163341159116499996305515963348074175882958637586288455780938283604710942589194549855574984788788022900769187503872370618364376059780377571336560857700286572421676203476906742608176349959319752198187795791794808063938189285580534771737145976527027806406476075375909606621478544079686111468901480580328462528449347512022766321330906253369289403426510190132033628256716820350473235587366247169941840806619036202778898693164601338266238189013361303028343501517345591743375538166253163084028624978015858079170120508367636448725768574392901517647237748047033235714590304117151665099009545113762192182578938711162867568157803050698081498283810654319223268063130781955546551641588989615624135379155315743097697551874441038324534412361064291460384710514101254226937325898527443964407190580434483442140286514155700659511579742915717209461437190149706285188163092227964064865747529233058687776505653452922445642929113077064056822409618407099672340575267171459693279509923564573231752409293827317355394948144649517997815683240882578409877439294115139474110560823790510632940704563642639347788337751901580097376217715427506331626565445477408762012564744482570623855250465130261572434303145498562119488105144098704402804422629463832564115055119291042013059887863432221774768614936428462609030006774559078083577245600654916212358315807272734925383787920031336965846384153139545544911324537158590778649694387230941657283205022038814716321157431235854455178443718628565069487925670774346585265082766711282594092051750466191730454157530555734481045920289435731305783107024963964249840324893780011550976288130280816523209516219038449225688472616287523104934089159888388105360660744769671485791185210598039065741985461600163380868846765115962468900958781062278380407452981943540202635988026303489446115286098491284270882989745903822487574433694035347083530604680492155855809785921063698765637960783125858110374675157705145746645298828029174314556145937852052722898092320517829157433580008180677485079018903204750081049329692690001779359199660132041774514052638118847254460923049648522950576835935601875644372504986114060468445972640023537170300180892036691167750057720917898108017761121352824338113233038927541917512152119444515499071543759057995379393344441842987495132896677729906325861591317749179066219877227528399178786175957704669752025669174649532884199198738836748666144783462316751528914670897566239836723565519579364263871515511800205029735880135141599211189393424606480150862840504321734643302075675206887159441014223477025094180468658130494604626750304836878823296922924872697493452144997020633861926505655179790486958820809279601256896025095284649844179997536191663783330995909781198347226051031595689034635064421623564107637585715203651021566656229217543184914584365765970469472643954760510907154399695096057382420445786000763914786003373770746827652973753134467611636848071849831983740088672223498967319845182971332699810978114305945742118758729593360303289272956915129930448853364697924613900958258978993711478539146748214974219948896962927823445345067340107483399354286673540113125874046147714244572879450231165511515573685339428510336659481727919340560074289164926875775762935134492148266169299623086605886258896981291405229072436657107926247027200449037062963824035058074539968806636428223153294591722503644211834096724683313020051218060849797841776312718928833717221011660574751557685215265805715375356994930242286210431485050459152146694598517929535345643486667130973282236337114112319057370587055726094142305959330637003957673651582106155145983885100299175824752982730702400045511755704321643845482138013780314087693598317169677584213278033839400366544038251890949381126466837346745426794369450988331577161313946873105827437184031629656537379723521303654644582423261273144143367229933278959937256003907377012747481756634328810521244389151372227755270054008763484764588427532760787839706709778782437474885692180343831824204144893122721134197540819019819583422429538144721988634419754105237007685797105231707130952186321400385321122329231023136159283323187556669950530241130707139192360253465515980665467211880940710590545009172761465743084261881779236220084156585288636893551421445267021958776471388220322611517985547395476183953330236595757149612907865535246931808228914039834814757177602739347871932419015025084525512655959657244518735397157201675465339601970513571990341517636038634474265618066700370291521178227967132153453721387624717676990719037350368995624331526963731278616619230425543011657939002376852472788258728654398070155624264525163198088294688990961961327142097276001312235789926080418242916735135609674675354679800360899943287706494036677424998474266267375336213262224187732580202405828816411412333062802676977411191096882600820885461966576195434676199069998106627673144394180432792320914684743949893884487409863434603797843937201954275029651505656817498171833191703779960659203750816974324411580495090504631798693103259132103505069638590295060222781590137142847797238340095022541228367437092171375701134377689883907374098809115817303215139915451596574908537815175389517379371591550408310315448424698168208065532398891641807463019674787576657257843049281820561744870361935861949665101014763715467955171635839107570368790325999703583205613079512083938912925583294640753060984332559074301929024675911379073351557053715085938278382708870001169236824899240030412234477224091702225874011309023259769314273325232663787681377677810962016550145131373138051767550723187906676594268219059834743337806123247946910907820262372110767786848113906510061614395683505325891501199409540571653693384833006166168504941928139595877018231258251297595025813971437238923912363879104613003820272488094912800254687496101151803233560914292861922140322039434735053918198956455869238485104246492377252612715878294101549053545559293388566638933457244732732122672159534718163033224960728475019557069653360839904724550749277009591222996896170753687676342680325866959227067516147970601891111625274111703629543933264070459542936490319722824664012805657788090835047020800987665786799796788054617565495148471556681332233738737887416565370804460580487173717377189716245695645052157129919681563040889707249492403032294838940944858822209157650771415360723383935066580467425852084866365005526472680229806673131434662947870719116462096158626896176766635933773454074707375670863143553401942221629975415595123439554978750263563806617858184922133838281333091491593930144420429229800099797710888714342056643813440259234982679147873602196909750791156460465659871791516775294666605269838165526328899957688786921315046724107272779460015628922834879200395521186996856105003526025050913359119277145902087187925931941341882241536116115051516594166293478383119603411452882592000874896366502506113872415107922657061456454268180632790243170322249949995861503397692844766196781118324781679020566452859681240609119262407030699301897315178849882518693095169393412077661029281124064334521408486053003395716928496399325792935437205424360159756687747041367615997845520785240630421734977560742292488756959041324998059376694783412434033590760817257859689655236636624098675257589132791103818464184263187126842639659873300788381257416369475374357042898979711747936012506640405030649521031026298108352783372012092672722125376008890520092984999228226201706814876100654199242296614773295859129696718940732265076999332457151705055700005232770676162288136435411428762196281793884320520725085099708889411549083636184558258679513939600430456781460958465684676127706815568519991963446994520229194042807800762128941521205694959717478761542400303238237298235012982304880589470298430132059874640898619546633849331391650796066901324034971543975205152892030814903924893128562178994464367728979099556793151067380183758284396958886114406105006213141167288664406194930582170779626942176856497461033624070129548726410292547236213490736416625025921813880530932897162683393588447823361942697013019140397416002155073431361853092265576555283563167574900746052658051853643392242913645209073420279112804764008183220657930241099443417609321376658840134879634157731740970634097272202008344720200578073200736060933267641181575718627435078061720632496785000889490509251855573899073662711402786007039640156995400402173680715169000603215650578621277198326505640051754782679814838653926432098082308865481342377815127827801623066664040456906234735360607817061272471649488548816270317167351778594140010173536385441141636082393125487693001386511975245844836886065876092426619188773912507541077874233601912656004227561573222064942577143521057131919556545998125498124191932542325832344322318866667572363124802602730419368265353118045967720129987694858993049343130185509670941168566037426809116874924376290148768082900316365613393477716476802326263607473747674691978059992146498134545148186003173686229659903362182090223860032738496021762487398714979532412474996866233568699572906338820544443572294539553377927363691974281499257350426602897435382639554366726563958360440018278918725679548284840611841198820452129718121636543033699666483315872781296344461109325543766576883583068668864228490984003912713953298695279105047972218168448171489856818167131920305901638005441527557536462667049510883144420770200272240282775140783124834900028910970934157133398036402223503106137996582490999153422561563506058328727704290645967111936388756846947044756726825567196822084858161278735053810890442097035317697540817298389896609858127570609143426667801568673572987552721370416105581462725338046158629263072080920144760502747341238030064390582857991398110714138574808719614967120155159220531393850696682584156446650693790736968395126512927013923961489961015239648025153669792203924127309466466122589681153515822667083816312861693993795739286116290000797402529176967236090082807924972315402966724949865479474012748678748976215014711421957823177973767074042529698445743681865047615819919481827778206914673718231494471256784184917883269565382086882021342325917465415528741429081653288486984608690476189395565366302154533028725532512451282499398501324663786868815961708268599876726994982871646669607886149581652233695874552467435269954699115114634499257485655267270156021089980486618860772179111606779287735548447629401324026270282270396236710033050048811774365836077349314847541201656464851577163172504659719784908803995101074640514879473442687814563792016758285041888773353436752735625554529621514580767982038448047077200909191547424809043683687712889410812493305640103957611022576556988606131991646027760579538549961735558408754332228504917729344354074945526786678775563653694356158879754407723010199900131364848190638449130448787009760489083666235989937195844071122042018497825271289455921334346078115854992012975209581975114359334345746241522565254388882838613333501112152466015155578323343347516433210095798624865574306924938734841865486707937598597690200020840102465776656949666132067005584223768495133110662964445480809061976122940657357888902995268427120775418505763319365584758149558646702918538656926300691764771046380891278684525916845303205729186815053428082811205013276882086386558938941303019316385247507301199654758122797019407887222050619575478911231161777857778165675949909612087752140846732182939723419622162112047788537874680041271772468774743712545776159405471115265025426099674952697738412874749431071024513815141205890973074812548992335837280314613624110616369443436948523203089651952340229027051680994774676769490306159520489260110162165079828066068873942724705978162171817056303411306825180239520815599622149043060015811351858661810683213736019941474912387698617617076873989602287112259747961695713818285201633586127772526106831556817928530147151455259152490748352043928449298749108314544492435997968391849153009630333598465816089332695888493543676593128025645381430277940627997244952524813745578230674805286087899083658101196057800974623990331696531831291535924458322173181612337724045531960890593794792793919114323670221582136029618650783916567988177493532810450561960053565762517486077510385517131981362662983433683290889697351395002989740814226532262721304990404996396009929889089619845135460582274777266836963911609738835569123250027400881285267472315435480121714047390279897293680194849825567583689422881593069495448616991739607695375851905082578443318228902601913565679632693598484120155889763718050210226331020909303366531563625664397043962509449796377721169402029412000295481844526421654161991598338993762379395007874927927887960281695692205010863631716477478445554705340557573984945508032034892636783629648088836380357685732961285011001904527489549682593114035383597629179268754246944252105812364467727023654056265176395674392530056867895669551237326770936141482584703258314391933021194101851503030199279315904878789215556641825652684418002521335158351282353261424686860659730639937449568861062576792306156054219053908587080845847359909143746715332930452371674023523536944723878609929754124589244366233907699594492004530075789394322764686340723919582386666648329873415926790188967115623607929822502826507480706822511224720706425951576028121249754608687775131372312576842968216710961441027243231701480544539720942518051725367604892546259295114709810830394141256927798458368377539188103175816595216127270942678820718258982528958435170090423891348418407294596451255454119581871856136175076382313337696193136388106012115836777005551281109022189151055243553629166447653926352349709388732547717802301758336297680210343203531312300305422729730317196015617446658832306908599185330240239842515697786612304702614931657562324202699664665319345258520452293050780988615347679856366519389194248476599736335062474162347066056903620179317221248452054082226641850468183883909416169501419490732507177126510532323184474746259529411489611803814606265037462637284089509873164205797830170017206228406258490815459635003140343222079033822763822919752051880079609370860883409475198389441720214729988800218462069343109011768870511698970337413359916896895214159895338960795697700222965668143763245716752450203148460180966363592390603747520714073718125748734597560673286917447967013658283171129283814812808300546151349017383765905067906559265210949400354906605814763737972324090404092207057583686348970964284089557488033635377359640157354341052529195682075356624533034959072554503919404020203019129531719745140106607260368042249313252749769760701453794599328394276543440860031697532871157312067540969047411696304118079147449075625495568735446845256924907821644374373307584478519091229048336092188295353913074046974477502347327418853283378942097121564561907832659973911738681843570195883715758195756601955300105160138187026277280508577771259496892997306393646262123372001664864143110441174749454935571870888001691293415585698922166860786937149599186361663893330449099468002533645839194314499412104484137708847337580211010260632219998498304341634052817149701678938722408006795245121046313485100895891109845546529277307874665526972323224292194332380123566053816973068309047875213853070171071715493974474309670944438538815061149066549064832509086759019429821226469261987017526118668883855335989293002191113211764451265148466360461173394240832425531574016599128746184172406477031748231595690678548798119374844455714743946626469846443448035498923931901903998367579413440355055183686903128210127361335626075414569206254261351374053126207617357661773603948662334232610967607731761042748877252178274274535451032645901169535533787431895356768436948751194036757029725170557280741600517696387671678483167716480661225971395653360067716225562292658048969543404484326360632110571613436454238546881563652052868358003778697995350767048287919575982287769285767379155729854014653320955650036978732463439555264014537710975164390595183650170149442951337362540390489373750127162366675246414984210310224882999711273113308705688942451917949328582503949578347644872529940888078016038317788674300103029820289431156926817570310114909823381672161602433250647997693416681282508441932051448422146572935026262392160363958245229330869680999545967549202819976844790941731792932070102791285816160672696148863172792878823168558230315340257833481069073907410977894998036072271200255067352684206261491833621972105752369022126886910358092717122891913156428338985197131912133043877522495060237926744927092376421412089156287438398284304953145381911323561974660330973375678875971333121852905971972132625806432830201129255861622344006147946397477038198176147948080999504456202237548679042478553175605667271329758601879445281212143265561156413629510612892977295512968370727871348911978988497534996355048320439470131996187742579603545922556224748980200730839722910888380447668496248412587332914723082817131601829877843057771101051896740658010842808936823222305578767679819960290893710642223893436835365663479043785150242027222024866199828787883019307837869988157970858272157303881989709383247483354698698215078793100139465665739035485799230635280166940600732657127333083237053520220101933292190776649325485498282732886243856743914769024020665652085795431198941640854211848090816133843092843079997053547241944280139566826656500853938733084058996692943155516637753690873288177576976639986517229460372690559607059493210499219028115265305180774338568554320258049280604977232825914355463688405091339142226160032740756420452083337111569031067716658515811433077592391705339550142922418319788369870499723051406332120705059330031648853658673767686609450403609946279895040200446218122908766896740980258365957937385998538771462043972255000766855118413561766237699397104936636978519052076262350943779481122277499308785433317950319083259681445148878771943429441491582545713955665100712744775527330812869730962264484764596818417710094044875783618346767521013689682658244331023627639568966331701657103738459548590099704439497455050989098778785658222633917677421915585020748208537914698298144631606472919884676915722813135121289728969665390371938063753820704892487582646805395452630518146889635759284890857322869665378640810627262052105554333437785055932992659058953801084387752873867930925410323533658470791666833138039301275823872104925977806600243912573978516108459101511443697017960757189176392201591304039588131601904425953597822205900728112669662968552011122893873969934815237250277260288893766590644826115894180563558052929418448353121939607388174228068213911868877974881468403288063200786827979269035976074718054081457158433731567165039889027136275862898493093284062330633030472538694133562190507260864494906832464786902606003766039052362692000299015996542196983426434616157164055203320797111675806801735150087777642160848307405365081303879357941151932428923896145662951471342493105115864349775792949202563586754985027934366252999937101446593709747519579152249458496443068845444809050123959663521447868437318660105728743570792729635656198175178188963287072453678400472110734373357250527269466008802740174595551383309400794973151693119300175334059855197716160207691958326296415923286952026071549303223737661981028790662712140885488960528712017188225554771818056604946432237985093718869836434245554213380179268845521467884071912301914196939810625972912179346892952536069675717344921477356123967538481197424128717003686314182418614658460659834485629569102168341894893516636049739230105996134543657339598907523221646890556219065599268203353234330757670579811189457869386783310663873379004801997149981109342721406259243707973389396466159041048608166219600854579270033729518132927301400434963361445451141719050615558565089763924253656983789730764709636457850350184364458711593573519380479240316163207243895797356563822192910123714487549687120089938288563838197522858992121088739047730375872920167332871039935128246455022535502985946865314296886610563669482987822820222956030126313068986129012736991665711569954174092267019591611993639101364440412316901203433831116707461685836503523465347906822868735457410778877228589356428914971844319860473149687662317583707499864000065854768616755038130286152176233713853011727491753790673133342615069805535945230636392487871228821203371908471587958211251573884352296449779178214047289023771576492188245850881506754885612530391721526787042964438403009663270584770316624141817662148839204671849198500957469653783909687370123335944625805498870191165720605611129730041349687603753309765430431458532099465543858244280117880138024688621366439243959225591491060095586825002131765357608374133742253486956894945410141174233830787186889436617250570128548860058155498508017348227611337141079010066916367368916581770253322218633327245665052112319648126407267712185161949292656115300413546331376012777937458488693616464230074316811374420119551739676430377964069635443247898884502824496177221249590514043370753196217893874375757075061002869284722470231478255213335528908330223773819026633214783248937757865461161533597581222853906663347194581483665898053726946255484639207162862211423931354739042320206080480119300661611135403383601294476353635686270072133179178511308110520706024313970583126507397282829055099667985536097204955844852011843013838837819827637838911103648840925033046044464752781540271402846530258620885467344102027268605265432423109214305704608810920708246944449872302745147213491447692188102881573869448680512782022478049983943564313980299388256665089378070558356808252294516942325672280546696687457995277575223088357649880057964729704444620450905005494239215530124052973460858323015352451231864288166956151257389729164191926435637529828762541727624224105717572110088770773580810948057525242840127483735556536204878366141592955799774223977047409202538968587803304419857807216444060338616256626559753337109576468566052717292955564510047636856454034805684669373264780047838114374222727681121414958035638822035497807639689924357102470948728945797838488832806489470704245199735513868413805785910172588765596188606916442443446644940471233025688252434841527771333322603775209554966042132016723022112553074867868776833580952144512298841446908568042346992738409106751362648278266179962404254363338072122118612972011403797226844990160382433111692497294623573251090019757000963146644541165025903144181064490784699915860009856862884129875601367644077687976289820463706411873774080467732871514042022360673141815279677227933551682589886190172965053524023302349691028308052398631603675348353812507710275788637112337858884513330847011195709825922119877628442971897544776246241522466580551774255679498607056075419876349651889711020506619403923287640341445877484138192676278081698555981350452574494434345406066708936667169242582290785924280440889643765047885801490069508382734256395640447123160991159025593808854405406448040712140382629597642958517724839286200453884255473167799115458057923611125811644615655650020343118319529617649486547888266029080076372373807087465307415337456411568833658294135821606391336985550499610803900378879248576484964755172033573918583874690942946348868159194149174099111572067854346211035887293517668806697200589290253131227776124386106810140552241452613799182150304938423061397833913549056851575756421938316173042955477375156368963184539769605598180817955745873783504775067888741219560393576860031031295827966612488024219799919869772074601552369411577671245986845090689870334724549431060187741172070983755197969741549621738536223943401241683055997578675255812876813414942251849596127406060374248954585364556101493893628270651661899534290863999994973841193947678802509847567353119647427247524883659404042584712285319287457339484885636473019743386832461429867467580654273663687123582645010846057129214763644260835936290146020431223811662791915122308888820409171793006346624906994950956066101819807909548482674775980334623079860537093867338217030570972111581191309833090193572152200142663858419570380271606864154124143086527181779698203466385768517508760386270193640744622545567026222976807144026277016206943462536521002761005197025567117526471959616845883465975258217604713442185792625829655342812009906374604863405751156441705709989613302015937915194291679324317283109285443963930020556834652419980499563612075805823091831571876667995814139595904491433573624098785822318829518369841404468038238270047811776170933841915670251465054979118926856861588184477277055791534857686744208875038425543975246745311335705411555290681117159803447706126123471784176246775217219709181613434947635460905025575285517628973431087414348210326985290650880604522832041374428498864212455525292361305898086196405205520358850443205882187678834275198297021049628149974973417645154367372243922809861267687485650814169405233449058149139738491614307272034146100161560334077126239264764207867557390464834824345789160419894179654310371095113258388570926504252326225090345038876534167652206224586175076612012505809010478113373891616786458131635624191964057221175017181357113617619878246635165702683993096407209954537151151399288038234002832139224375851546994477478630657405671338546323858649254776747807427717520494505643280735456551141716811551965846562394395865713242222231816608824979890132469195256793035200408088540508718918027996729335515139663348568573286550317833603971760812793699354350252338980987142440120955549660776035328255160317003507997946874059914432300225706737883618360036919042418809697788818630405051458885177617224595199672948489650580412184466274333002107030052176309147248879416508559863330647026199642437509856852054322821582783803383302899647001779337584253389853069109882948101806915611132443833366650981028310989894905745297523129240465774842334636742693109776327598837912826129807116202905877875601912418239061662808959467431206320840989561804026934027583820167512879563547921166772047952787037968168695584028868957004668035688740468164169360830621423297098618021366215387792241964481256051800045364245153867541443237665431374878676746916031388879774579547209292511026290431482511163014622842338025034587951932383418973395101518989083422035967765106274191795926320627400441911017532465564458045052420662137116644436792010424340014288760684825785506162011860641788009243517343138508667733633315183434349198557083235093989882652922614367413297783708431733967010714463855718570111566519018594099405608320963705935067215552038706273222972247210927201023585460300514158087379811542021295867817443169632554778581537808005803750471072958274220923792087953528966667085032583928109397253628048026252721251140864447512524255582755748290285756401238251970741531514773501653304048192616834561095805947576889039289776757213477037463948876647092683073325463022300606919112310821566879509302118495215008365364866528193543316413403206196846512211539349617141859389550887389425513070166099506014279306244389262585593108465974718275732996414328086991802081683720091668797555971952450823863916830679592473435412091747649357517548288912587467698249308341976016899756175656562099378604723748833103122101104567242276969666861594585723090703080177279121881979447544716013139796941461271490996752733525068441123999266909477156870366626138816982641761146708119120852631825509164844093059398311075799362062381511538181703250119932522583669725436704003001620497967120576316556212744201225069394444327850329137174134042697543884962822277722230569523359145874761642921102472875333932336654142100737758077919043401569920778040109965263083115438219034868462028858824976913631648692646623698141565354318348499437445088833929292618042777865891169304081514696780633325940530429241684139345119463869537684745665514069073513061740693602724695233900827991649010547557550664069369975697302549175512538507796387660108330664160591076335141308428966762271687601899021954926972317862227935294188373896791890987617712966740752515400989807905122674619964539147659740859064753334232771776001929410178661754477054675874691281360016733818242924036720012801146482544788172089668815135875005308099795476730341867041137567827547688281217967945666036928171626463475464854949628805802506296016224081082022731588125662501150440574496209998760948345009033379081601053553559203233202676299688928249799830269382673104969771794648421327615879767180145037036376442785690376845273145603454396799935916299483292367979072534865393765996997682153194513902143221013117385223820437632498348735239834785638152079283169181779169225002748544553580252121802545728565877385528193867094691753216024531356028000001212217570498392909682499958272385379841216345937753648151191390394410843608056415401607391170437559315549480948705841268206809161766152165251458780423661077481923486910405125048927418214801151488315256523148924108329941664326245509081948193908855714737774583360084319455765356490832230263102520936164763575548917510606683065777634811726097548597283196473028944644548557734968699265567276792201664798509214930027874150046455054994025067254017390873383939764914395347476109098919376562930747202114020635275196465990526512241760025193912555345674959274420180556981158673948918329233845944585074200757331528524951203162644694148978055384179728952617880476997440548618420475846912657395205468952738716476201212422268953278612011198338399383892487204289557095807765860528595173527834706954534573406030399474139352506839131669506917068550426748441109667766200944682386062481138154979858606738883586613615232853593052598101051556520385782049666700304688525505620696532137982029406436906253838012933799189096080067020223225929285669733338002949995955354224621138216239310544135867658825905999240363023398332972205326437243495648556201467082136437085577396759494660797280752143833378482936897648833340278000137548457410204422430467766045961590967543534956787226598032925300002515290424861067709929646028600008324023235422523883239379974598809789559518853550846501235611693197794718745434122569491198220675530475708111875766435099132479738502279663417558553611286620672673149413412522263686790283692296073894695973121928148052467413583499883653390167776361322373879274852048869417972436000045990872117416941233896742498538055881932216223190075411569017225296511863438822944413460389398237691014580819927041952329999859601383272291037158293743172287671400172547282621177893259182576215189091224564448125229084967533934393968934530620979244408710665831371046605212108780970663105340235509101014620357090930093968853482315179532978051915491100618135760226069895271992977584781248601806916848727315342308223088074316409028906970410023124769612389201681591536531488827678076768947384593023214183674540038739305231969228546431506799423773491152819886642396309813076867332275181729041637275623477701540157643944200251532376855980390559106544580389402754042425126459571274718360356696856496238333751813417886092039995105065842265169760582150965698038786218715813237581607103609302486914218136517647437775978955392475207415053457790430379587768719454241204326171009308288893650684428804757779752494112728559758689684101607488179169813386328845748266693224755609119286204982752487623226699191978429057554492548825821895112287484039206784702025692226062742340275903938452205759954076327567645625263964436931017153559778101375302850603736852252270384581632953094996390286326296935818462288821114848345096203474310455345642441247895426739885518754175427855600218636379982828177437949404838263526725967472364376021592140091810600391946585550913688713051937698936970121498138696743612131561992811416131235400356058756629718594812372428596224638867556220050645285814207585016180615589065555269325545107923767021146596565397595041207210049011451073088187069636753653377743810252058104779748209140230073133938101653235645267806664248092150420132496330740009821489294591190435591102568871981155892341022460835778745376829698984127875906913723011060593949314361249329893599498439018465412880151640735250738762749414944386637039585541480846613581316554952543353332591695276339626667484461626253421625794786130161752960864019795636167584307152418658654054895228747212579957459329924418019762313261186457072218917088753976906611450708622099492003110014072940409784519417579816178679979903436158670808358060906430601670681564673265693963557219766493286522585558289624694138226105085806564268378892764203166417236765946034322151259433635777754528271847335787215606056826248815621419062611439277747322550372582917231540426769232807436428220034699766020051420554812860779406919881085980388065103967357942018962734953385689800733813152491388468806876480606634075127711382003686161872437024504217251385290840374839657545065906785317157822137201035223757699611564259817142553859332816347258730601914013435288811617327993343720977619335211476592243648622234213342000278866258111445591017213826000742721573288846985614624003532924821902755379584666227113925963653325715156401364010811642401120026188568724122895437404331389838078349438743878989068648934560406961597247127197373913323155937430533322241882527842860852299474907074452562484872419071594516065444686623660778246150733027310778489824316379975057883109721604228436606102393719778004273967867370427007282392424637011737218654600929490183746034076883092439914032821086426494956184210732356091304081823543088484881400481197566275683239397028970682444845236347024601734414950998772392387972681627469204328569205457827961234395732777393075457771907307699562151684583160287036343233693089310441525943391885722747052329578386036408738544619672489893881726821792223146454864713276382070273573959162959992191929469214990239988782498620150057456802052435407793835713464950948140320630071308786318542151754311232198753659018509424091817426674858679462723781960943478095234422567808990566815359693835739182289099775620440267206419769772929308249568860899085982962041326302948681841806992821078829944837691823805630671817532345052479860362585562652131386382023604923419192868155940149254906134361044356434284910086310855238359849845112665061408319739841039075606520334131825303795382751105075200866878402891075031904400472253910483157916522314497550538267684950079866595174979853063961915886843685112610975818941099614772477054596542255587396755372643092984137613276580315945884163698140394933350874188541824983293237342771613211434927696289704349709703485723389503289659932603026948051622914668177519977890136418509848411668193484030304197157915076403164383606289349790581517756775625246733851505040700532011127797718619327423615711136720760253965947833780202550300989718349497801138253616926322848511178724432845049140177445464896256237978840590904346643898432728935821753483257916708612574201934621082916634802992153612694468254240719122260970459640472743074286132792437463959859425218758174657340236408111931010776335786122346306054303160486075588285084874636790125095068948476800283728467146918573024435646368000283411342136689235364526605168647365802204066382117526023078922878156303576542661133983445354235881362866532386194680178383190699403125948815618066409133856595310282608886359518090081708060106730716074889952707972707649467622658882936740274850456026860041868341985035433391848614660385312100319919176452018348725825422053336339523611464372717319090031092194948564306662272854511011378745680150435396311740655006043794842039158281753989523041631565393044950350104624310789322893896059581120843001140633144633421272379055578824490822974476269145656041459821664444949963999860677147567976665980952561833990711329774515222244172171410905244220944556850187486337552258736488823183039104944048475262286565520353306539486394337424852704573176232800795802231624229204646528688166032238813269169463271630869719527622776256038963418121684383636054260944680497722182917598244445972783237259742423354752095081281741121392264475157531859769104731616180559972162575145158495667362236241331118243501266210349439053436731206706789021337346988429175266128618401915003101437422593711744558465274474993378178993050307586583822352938424024013065528347029928021072772979196768857031513922403593174204000782528800347174757308980247577221551560603657810637535975502199465994797654185677575375561739226909623200087655481609645844019481649284376050933363878841051233571093205965747467019120966455089024881714964210522308909649428936709658597926178017305040266537455261704252355344518572211747684460056633404630765255247581835933476807081140921427570412078270257069301797322724929862333979670417112056514821612582464956794057700149577140034849028936046175402242649162538152013835809032293859633583887988099919445172346575123396088673954358177013836493816485608076284502004704364509302013651384150946421449730413308313011328396673308861559447097752275649807906850489727880151454698576770656698397837045897393486451562136988703639517094857669496824256158682852171594853902473963442926311102946657235876972636632779364256832195741565929547610808952517780149362197346691735491584910874762882076133260606672041631153819940260112973955696267819777050285667999070195258721671595095321117714924108262753235089978423318488843330083901127716155493348766130074498456879352789054294934519227278311380005248712367751429749813459538874801089263757269839033620728573839785914443671484993117924834641512420987778307152562942559803743212099688854043031533405132127392972303303746663525634638687206453059327109807445627589520068878580687184696718344085022980155322806349790328178994319047433279694228832296364044789821730643461378339631018018732791486588220844548642579927554776952398596527856930556113609297320105222538419890401447771603647731329391407350250770688052947868085593154113469826495951291383830925366326309951077696000213680355934901015116514336192047514686016370156019115565067808332361900171347467362739350995622475001429078066125345091383794209085970287310904601968487267376424938206453772946575810336570012192601203036185472301316626837709234997833432298915150194644470677466708250782302097736468673705868830185847213648482559646149313700389352719211052119523530894368962082493247281176781080360454647822798786173477139136663288255451410611857745209234350387401464222815142518100951648080884599531572501254309839333406109398163200508414251521132369285961962491577994356920555361010659689994137913674772522024660533290540001083764785696137876911245072030332379744516666448595938812469998192424693193484948678514012286731482525469824582595111525363614665482651372163674404831412885383434565636921773885183869432762887708173113223440647062450625211925137055983983705301135095214808538948851408050766255786671583445061767781810852131404180439811251907810615095473232217515105656599195049968452943064378921178967826575694494690479329587518375837553284561270963847734884494833689771341562405263604946690991267350651214461748582566962234946716909644013678959258761219892069662067679524315494677820339445585348678926203682936110282310488862627300090029488839125047398065887047571757303314256240777930066756211004350920472109294279645228206569093530074784972355260103804542105793423627286013144738792258880555205651167309459310265589938455950557331006894333332078463508410902777671672341670840266960177595656478853830230004660372035618991508279862998248370731323130261545265099646199895294326127308189535800736316708956024635410105911068322585628672760086403788330127819017318554184577557109933241849738952538778270668261491369615210055872431852138079850034150284117247669065317364669394945792197104013948289034346161957818177426982577554024295666486711260298615159823718803517816077510907608031570475483742938535953437083193033807198262289179587833129366123443093919137920508938150557051814342462580532699203115448243213419784134447245860654068206189022344820586901879804082048233405534496678232187883682870753523097692326502732702853337772144987423338155708595284754804981739995818552336684527689731943866235086352033931701091335196129869451543104808342991913435308024411661599323169000688981681870431122800631156405450099301450376213945776559868215744847416647332676372695963505295705868192020380939811049329751606977331066023724965701444155734244049116705928072967630101014443082364598551604304264356366131206390426478331173303895839615884851952747378380648570925758869467692283831401101644426334427912920619466899657315078916467611737704014841100099626466304058213826132871928653375189466310983305738480996978817058180515152479274122747854027059312050983429919071580292453152014524228256191415588384357669498186678301410900665727638836197765670452805214728869396553401413507012287080709740679136563112212090786735527066636246841119121128391894823390311075821380711509472075879380570481786998065631677578755000287512904580933741960125256313106336008445186552439403878128224109328082358552901021706658083742646239517585514644538839502630578610438651897538670572834640398730948444853021371998326696120518679711352564735107422813344972794900203981942551326631867167958878489313746870018780188757950766413028888843599847450337816647444722173307785850434001337946976323493838891967481759458983996119100668438918938869833493038253478021978496312367351754530624329518038514098079708642683636352342011132719511611396772612130956899887478797985571005579042813970792947168122033091651596458615058657437099522926999945978977094396476068099626848979798562688494186730049867979427009779479737711278275371081839503613515321578304089646902988908732008426297812890860543555451185355562694129189917315692617643110402472968532689012035783744890973608874506272771210115884219564980850264616594699235011043994670149741620355632557682547161862338047643603526325178519063761820675245187348485778808894316427030230525346602164435940595533300588689773041296984494407634479747242918096208561072919199529489494453393391961952989228851129657420566121918024863313442319494271895810535886518150805675713289688637312925226065773620134549825915540333368230708013256346374701312320257428675442262584547139516910241956240127156338472477322166960959173901895976434585168109753756227768842290783788556171690745989422284706364626367266269396428743457355064002931061591899000799920478549647340330994468073414825236640463295082415593738787130617614092286201135411605224045845281398341589399829298806768165309878057158419812575716270352904602584281326894905431348541199888873020452708047814904526837858161625610033239587312946274962681991219299302695007152803453084230467785338003788743434991627973897704303236971886113701366047893660063472930477933346436747937272493596024034344222870599287475178803597682906853749502890196627054445756887713324282997459008253940349519973115678501371228873972813154192281362223963453683372086114925705471288951967048599885374159010888538001161614182650419024323320705485893990717588625955201415085044491438952057943288104555785551035276925846934622765616452181874153102572866693429740864574261142477908079660138240657299446335410203265546739283232238939744116351852420063260168467553773749366285020237498532728117063581116187711442078946134150470534411321500768305399704663979437104887742408319312425340210229026489164088792659425243675132816094775509936057966461231593385677010907984347161390661245178187818544680509706256319616641389468607155392453475474546135644998939048205542376947665916094964898470506079390936667131772688305860687751371528308385816801956000461884081739011124609537993176186376687337747579734239341374112865072426870769611966431837275945121303981974104340930566188674239782810072456976242951866732169267633325969202481068677382245368766418080387916294525537237750879933256972647032828720234858304740523579670842367198379370603238485301888665387335703703075023523298330540473647906823629168875895841829787028770663882752418956169978873783442305615560676592591299388483769146677143011956373807937362526912864372160087696687656626251706746058975658023691431291968823917441171007378304409095565080881712112243626481138640061487908690994795021404695573838876249005453058982493489546548793643417115337132348848614167961094543350306983786989235946925954303863058384196170998366469740994151704047449824851522503306864507959682066487634212841082609778611139984690527828818444389957837976178758327962638803189653070454720999112253839223905272798800628793519077434553944110991833044079725922236730864655967340514244229916661748228660467542840001755719624665121124990449463151660372406464518086503014873256589852407427231472046391790384072347137654823555675733327975577735006489623805794019737613569615049207447033072158879583864569835684538551883431459597289808805572031516628368437468456746955973380909270074155479877178365427238280146274520081271931528757700966308228246462293646004617788456584231230912928822808454454485094937561185362198132892162087028231737564778956439823944079515202181440459917170697551998708774895336646250622748905742368298453062827709408786347581010845746236094654694391290686140417594655157311852712375164201755516420781496274560600990089563304578758852723384866522794589422819682712327352505937760044055885930587927150940659632958685202179213853465161668692440065420783525329010401513710774236832888461564603031234940577865534652565911537517682103931135359550616303920435172950238991684689052996766724015636647537258826025639768683742101357007017609842992463298555680331973910708788800385648620354612733538061152487346062485641182082210580524754533088027500919122487256597873845659744482175036628321797661589183328311286892562550768393950106156403276244690427822438031568005823573384752401442202101957735708027294399182643579453150565084274463042327329509489677320281688458108487833965800287926521510852602336345436700063162715986078486218380212724515695815771796968032758706214253413286605228136931277075862693592673455731352966437189841441714270303033557685015958140662536662694135917651909357617381811855185284508790949323846745054984814532547519995487601199526768326054762511734044180788500344869942727915139539535905744735022019148583408505911311771255996158282155777093531433139718482747180203373540989150033319266222564623720032732409425609448537912595737148653321161214060016893869380375908194161093726826567841259220617551774754151548123442320668269814390921879255177941545462512784811807231981061324324842944094854974198448097193472746334863936305399794343537584714879617120297254633022142058283872599024906572393468053312876187961434629294372558600049274496953787152008847411211180466530064239853858969394482442661622986638504468312948750425308910043690699501447280481115048065423017862941227159959581014588669837460595235227086440647378843502449107506339977104977179409580206960534335588707183615174127929640979465120095688549638108145613752755832320871637467295402158061663294532204025194665881266652574123426994179744173246640626566846986622263356293091818789590777964805908143645725991754027062946334091180888905876577930415324251316693579041351284361538971123498996516437006671476105122416782828814097642534519107727730658358607377232449480310259961534598324159011180733390609525446856034070897927303913724052961294380891017806537928270647692323428214879819496907971237153411205146884899829545901613696786703377138766274547694840429354674326304390315973268775529537401090317846989543244861649301672394215574025902469095454335522302027172697824581959893216810543363939513938731953000141989849700501388000566277304250155053278903230864087254703787295645331762981666001964449724993162580986060616028867575249035168243854058285657403471897356562228338917943541160380116434260502532034798870508527806739602871070213278108373234934425189702703166832372219327061595335773554334662227504699857618728783537340479660576540161158502871786875123456561356445123963734930876037189399854563586308918994718239236912849347026194550403395443556934202258378107119157800491172451866447314130688431801868096749965257720481406267158524581697184875754912806881554610061171435584066340479464577960786291134697277758109263046995079118796403000259841717543103250147967151350227790399154727816412825792085808267991439170146827899987267506739461258525030867282343016595116144801958236434971452842594483135159672413270108839040897029669083500947199256384845049749868602481583975937949899829769006002157885725998351058176617944123463519455563095299716474720718123503591367207886052770932080143057400679518711767694328653310467268112202250765923599042533626792081523628753894077893900583148563465980464453973343805315689989642262536520581007651103504935026111433693603186184587904430726526491596756078266226065449066003631820059436129143010521680443478370649500675956296844555402131711902739425861307303767347459478525316847627191226384529139723124528883187300223591693652618339973273065212386576054476662466463164755712522100451066349031490936379638673937115168260162889973444820481611213896556701588082731327969844475229389388576503409298297581645712817403599758514122762394279199630901727790275184739794125140349885647152650680787694693849121531366161108115796047461600978016169585713437320947087343793667431924417947945778366534989389919910412595607948313348346132953954055886230856162735940589655319394359134702250098500039071683864955262071455868502740021079505829510187328653015592862041255746155132406879110085640876538267689584902575016978530171469837345274654651048126472576212945929577814943606399560947870687495437312291042229541188868028549061443760008437024055820055436007143976754338528302553258588701775590833173880220983425081566551217392176263659075241022372542853027185023364220904525367682712036011365838851893357064138780216940207995341785448593248386853821647084606895382937514252601672024742058199002704905240694765809689907336995489026469175264243570328177249037655611545623857782712715705544769810435791250710109162489106902880733586193703627150408837771086402054601176258641184899410287846674317033826575458343517795916436683200126108688276984414669994595329982202482317720985968273226919359778994419782326020023955844051809404049147464209281104437996479026509617803082962030926247886929231710071901710763823446260019252361497998057781087894400478413735641487259753271694819211480414976919337205682781017391408049482573820173804527535679242005085831197735614647346708463701185161133159061660538644589473062372962469593247682421482957068918662000018695630116966200453193249418692289179866148804828431954397393802337743158738565983086148924673465821186607850953395208597719533375501362045981774232399006104840360825750072466547241776177053252494636704706774812296358721809165964910950252669650786968983819543273257244624271054713450687474029889973904576467861679632687287200998909392417856103200339438428997409359006591642349869326157325057306373025857644848713721693906364935637422252682397859635028153796593243010389672895760447280444151845114879669624969046965115694124731414607274639657253191145858268835706032765640239951050325050336331143145144812398011063878986072199417285544693997210764611609976439207790559203002348500618598247231728263208194597153697377578263783865138216780028726302029295494737745205432683190323742994920375048316119405624782221399208952880719790641670745962369212157583625782629675635126187116145740479368995642147333208329727915259314727667838223073205722126372703453729017458452723678792627562777129595035814736543733512488896101420163990529233958045247951074227041196040135268870079956394025857889304326462404530881916876059279642266759935999714552256201540213367529354532804300231630167484510460798521464426552737251664818502586532835694279556659628821975911852404102292013854263997047036956443160985935377676767425479077131348301082455342732585471414710829323777601641158883482140719317078687694089222781215303487790407312745255034123235555947374458236034363326702150728595583330856207715020218352552256240443111596108752709376872361846869634414883591629656817482593004890560886428074053407634275775486503201677075759241391694154018545275869705344988228760409342601714597901972810424393170754698423968306477749125710403941052913775273683410529619509431325261104725414729557493925208237764245011622124148101572971174212374435978157968941167618972081172875765481654272566414722053978374283776784841662437763313424816046065212478605766184702669522110858591705334530661750487178382717497274113550543771224393384563700491351174819359317203490829564995206196213106779238742715681968114645844075757653049079045727203466702798497960637691164134624193273186082618153639417169298790973676500132979870836045082442094745117578891147217799042381802127522414370052832033935412070500871120305548760362518545729127276704804764995852805755990108662045818113833023082217054400329779009060497711425370312994822766583472746861393684893452655846604291294950180133135152481993611534380985630878564770996202160595794935645625897314189676343397278279045513502429629228788961481319547501568721614182370944847008061767899090628469092329448704213888886429673456335631867298283720479187549826977240024129968280744614546342275399828162102427846359010034626126128759321072341571185386422533080083502437308346383659545528547474585074418460736809457428410950962434445134683732915512760427814966252851459995747683939517028187604570018095672291578498733548801571370660755473615709519368270474677919849094381228639276353933611986710862369246098024807542626951450920261383337867877350138773368961800634017041787062126717740801872155161336794253602065732588992860205918770521270242874366046268369730776608089909341609904028870626611618553798816757712788625383730925861259858249955610443113281569144741349490910607046059164276752383841786471066165359110825389938672590538939724389139437638953946065737561116735297442084253179629086653751681528279336935725875922880251028006650625571623214172937050695992136906482573470470439441055967298468108008940511050298569077131555740108719875886370375289433072050290538018425426449555125629520714641838146950772184065169487777001199746775695041641714563571912110648730324834451012609468353731561622567483235810687005864468471742359140607076115999324415696173139850586331225733438777966578646566187285695032667938506400199552509914970766342920820290041677808781964450206091335783106537945564943566528812464735753768451204317187333413259121833165257035453909288221611475996642635733624288792814791534259920480898115721847964054157561345712300754471279756666830000098407583589964606546365300752019088070369588851190228075604800541995987104587273873541337711494606352990411548461545180247152441494645274988117752374577390134763235391485068099833708029988905046281728347165288642239855175250402336983733847986170214711273859330746898542435150855113992592394371139925856924904687135146000787699751927672503595478378399637258038385103028969382257869276340142265780462478554770476151025302477233427650549637331308264910617387031676976054664456497647367784332676999785803155198883589946996062315959005847587525207810461291116165266562779327973908509239477222330225493805476684123121453019375765558779348740934492552383467348348285181649077959938479430200779945917414357745763750685739257949438363093545788478375287099449561352749261624043437641992055821327495597246955401189465817039826440659982906145799497559871125483205089365731961205291568487869785866329656769206294050316755803310004815662229139116472465535542458423325787835574776422148814967555363811393741552069886593934175704204136446007789328690758902506997450816399722243510551594989048845231384192409071595599284744985272391020286122153627082681949379792612614808234058489108452785259154430314747268747220668812354015516986936091213988407874503480227616058411413947036759145077348623883126142794836446650344569285198947389239633300377969540801858263159409381215795816552361567509389135307124362040529287693979047206919723212581038242286466048384250352804406091102933115230029159812912134673642631533822036665284561879402352541864100817436728013448781888798871280479072944425948786701381375417671482350605193689422453110096172201708639812383724679169256245894576260297934095901113888606406261534536861220390580762905810832462622103850909710614918606683729359485106459119026874061004973317272944804352138105131026777849026795594164892750557780831511739195596304716886585788751188301345680903430397536211281681129516744785059066441196161871257587724916077554639456154969299322344894631941262629741213002770528896442322182120576864590857379116352292459619148899030097488659001632149841737269245594936951193937292575431996485900911558117968079822525614874210894477569630238570176249072992549828533321029150457550768489506211303710586334872627705690229024945624172873076317728251446121625151645564278604901260789196108222283236973237474457578090452236533693815367696222786689614998083945988353081197381471612775645880994703807237708138693522175857881408798533432827857785338626969584786732982146196250449568124798593574789819635923146253422328621704421820504451171990188529030526986828604039671460392269550872305377648911802643249063733767576062346983100477485918347054787552622970333196519900551746073270408083093349038931221403861639531313120452376079821972865634915531968250354631649863302391702169061277566158456279175556366972382714852971236298450646799266986695381744605144480519998463479677255659165517495686364341058035571884737943520435650513627620175798046927643200378927610631649431369390127297459987370408660560499248041312604468367609546292847218501691307187455051442268639365867086426711114352837478058375947728152434047740429314956254531279616076619233322840741306668459579105449797447555524337480340163794503875990290956389236425535814630597708243204890492680488857585990128026479118312882765682595025845275433332800666986359503245229785314426844756811432172544501087637018835384127933198979336344267038293536776672360217387577674266620369102618076101372131493977333255700649775136837234104153877280472219750329574085325831085342957758643884270094499689824473834706936364000312928365574765871521243622583426376654837229157516383479705470846379265164538716791331400015002787145992906294178678101251417002782237440566120994631026763011029684946380003876360341919237918671439633965380802261459415503001543151611905392507977956072868783696398129798948249318955041370666359245434510909580761785874932211759948578031935438351895929597379332173286879472185496568114232412435964667196868944248770400839227204350140872028179873660338453629174209297787859300843167798596796478146990877126868008693798730836090487692766376882275428720022478162304661388135558037329835748248176241916942548903465685634586769114303575745595256943732685357535601204538374697188123816376717444478092946693467268710480153153950450181423265861856273007691891436640453212051278942872229440346551493351493214752524383648087876582821231122475589005373064937022395823738914622816811787582897870412876258405983876565095661993946384740185064288043110824422088854970087404549996968371755316207783442527963781582894467373259623396879099767760058506711350830653545494031904566809502524526176539031851175704752221674569526198354652973396611581274865677554274894498668591491402846602429520494411161638221476387509892905856852900470413753027864684409005041079549079831453951831165601787666209234295189379296585020797607514362099573511817944748628576600392846330687530727853690573107006825545405521796931038549534575819631667016684618976625718037498004007217329939010230591300126803884010691565464770847762011728565587862245845314966125499635637392566403694669619826619657265458414760438389543007637390221899491712347124257524786419496612707384998860243820683561551272920224417653338112979648503099602070849195175326623151476224866625999177888404286048719658941360569840990109826152277127383121784385311094493493089709829450572587106061366339865798634843419763313677095512194516575017665831400365752683952046660982674895563816805476235731162582442286745279605246059828816124501362328908403131732645522328317898861846142591415627862068580629207384864576920685434551957346876536951963977640117522145246980218015979524892206659575992760520972736038027867697086836298177710785102998305959857032260864417124321699712191212495534533471441116864217411850147384874791172541262356792334997201319864734904751876920542835646368075301966222602232353306720922286795863130200978008254594022280282982143095248579753781852439926822605617725878401410334958301608004722205096442792185012184593596668886063972203223722042236732577693157610410555041263484235417114071679073212278858090005428408956228285739422635179716188629379530059029895282398013094190493459583519899200996031367014098113807748212390205355066057747122462055588942241121348664689566876795007004759275209478477814615142355802128807993808720058490489566624976946254493496208055488599348707840751561293912513702127214872684437923338525112391981440450866828361828526252016563027429888899328134813426571983520838169957358078175733737440704676293003430600786528461270840981807212641183842630708589858606184396623856987403985643240689790637907352308362726268917755942243916749378630550811523832506511162372718255082332272365075961342482896916510661945093453318629750110653756487925837742438225969918131768149381916505592456562259143356988999137439202382710033379359121521611280547715625946262369798876445550627021538555774409226684137411750111481255619125238253820003501227575961200860730823429860179581616787757586341728370706912089637113103384653497549447112529220766579388093898393454988878521204945580039903872214128912697502216802536854809516142237478342454674672423728459365028906952420029572857203416570828537530132217950533222938009471520184323850576873203259752628998683030175332974337494534945848464255030707997327196873865192079354368432849606517520860504549872322284383723910633577077585164428795861147830737529493311555045923138670146761379370212745016818552632844226103706548811428202826160088487319879739033319965625042706066362590011129298533610097323693194828146203492848780412144775547055794184207005012241856630944321708266022981898769136814295694269639611483334711264308584568328382309762965703522122399924840469464878580935685861545904965208618024813438330419621195200818790698369186302368100579528833018477063977678335338042663509645461281831910609319988544616745669108658432546905785205010848806128759691138797523032601384915106465880373539036616779086223880413101712712449594725321849370268160669237673331310538960223643701307863769153260616863808634204119604755708254934798621120594794079914889530210626006453655228183394389392077186023578070765021617870070198049962535988663414511051760912698017738610380630831221517489664339724352803674677576118539203125830796441627252775892190625678504069998035345288527830444692754215912968561577232422937060927620836297996587710465212904234721458676064201652437980316262786405481041739814189571976303350683166330180844912852219874324275531970041724340205020720781308752253249315314079647904303067692569312063864102718372397747009348181989467600544093510422313219290277117884949306951911372822205950694578659684411734976729146169064527612945446316534701469639562442954016207494849927765620798489018819091341029920831648803188519984674094624878655452561512273352699466569439767507555973246301447972979186264183958378770600012308333249153835180183244277995813165491302461147719752058325867306445170993688578892311035459149218460387795783169261221676595973154066399064910090267531928526721431252879793601515301619285754916551789209143352316155307278743313045339490298267516412710780154836073666283350745063894843057990809503913264783151925848794070868348855215768720970528988935319896602712445813835853833499686420384349577040307846966591603631413470707535749780766853925274308066326008511776316923570126409921970851004206130399291749660861252034024861668642139850448465190125220739521419406418045539625774465889472597507994757949918271098878636821177303539097405256323060787049749796264532908604318548047274772238885433528183880967446386759514440008638827857757691001889177959846697586172124968281637209506662643221138629069930431378913683380530373293366779205836622375449417173585086455898537127840504801597794877822847285028489980705064027638821035449212831631230796348928909515562319363424237412541534701403729427043897183078886551829601138477299692759398084167008322743580908273719436227970678113077924567209202238012724080846869204348955082556629223834514800067646160234924597218567450724826395055546715966119381200666929040232076366536925791034485154823272639945988478424599173304874056400259298448947059292164211400024477436599446561793379892989774692697438949116986401958931374727567181329163905000289005153839301182916600800531351118045047131332936931890707705012506794306361724393705345190299903260391507585356459111032703613977501051093994966237448818740904980664095232274573063663159635743411050722250195357974770717220892664363335065221383326560430998231713352563305093906816772538411161871426019087610029386572975751222148059067153998657631198667040542578242536173828387326439713227100501468936337996206021310537457419247808330563033514085882107170946650520204089235068979021637934679009633681169582228810790582306821346824424253083818174637396200505545755371287070602345315281019968397787725562400985180790454000311619477873295612868520053870120685661756771642262580156460029103887950210918369407830078042322144573666536587202350032500851683281265243260472853099112627978596582802856866450485378598539698966502421891716509219418795180659108258766888570229317818775904376194181321725505850542376089858202483569748033726512090181469544550776785158854492903096590191419101884052504292933475667472323550959297330166915519433068622381001927172339865035810856729375141711494730709841156394092067289299391652242348184505661804154829047384176316352610497768294272247711268091479402748435511966538858816066073684693069418498171015192953066215490008483921900620670561152834815742456998028049399915144343328724022502026643356059946012321890876243011820973822070694744423702249782447360134625713567741762504391170901921773701028082624877241691012955467509410713094935721395671995640795150258273096418982234331000669161366947331242632739982852256173677010848042283790696147442257617109474087459174527010446627599309716246595384406291424266759535822238896014710794317620022991037525646624030705361114763042733544612598840376209913143275867229330675394582424280981794587272093620673508378009492266139484408649599340032043280491090707620716808650388419079342094393484814797393118341686804992267512176553430283459249196040852175008162242191752141895629114346810102151271464636542962139474073631810371676157857914794995729676972360673624327797791001203807521502880621890947548598654548014804394211881214308879774597663090978636642439327605471729735922594953961365152582022157120294651863414100940231123633181328579558112134352947064035290777387131970144315776296779116822367823153581032760180347481764237121060630861011474591662063177994885804302136246678085198812635156526374350679303272965212350579299885391628174366371430433005734832791796158512526453046204612838868495401705187500264942700947428425824105819875378345825142909847202923699414736149692634313859899090925174646534136374445848774669454162628352660286363786102285193508057592270957642721933866700145332659790216428029002347342005868933146835061587769793483322011067249672782393057465063233401327189042924026607901210497872905594201286735683621723965967259016801898489093812221053856989445079631272111870202928355366263513278269772578465511509092378862954675915678664164760313847528530970991744427432758452207852994667564988872236434719204073139576615463117218392969593775152527936827225694387669837161837131981891058584134954403032054810894674466002386142441906690406053660787654283208842570444848289711383334520666062809275940938080019030809655649650817414368381826878894970470337827517486870045246997379847308948670494541491529969572396932089071693334437949718339976949121305213924668760567848159250531813746336078254295148026788085490127036478533990774023133933361732280976932682646535483516890794571686054880811383405395428634985360460441615669218432402425979180242796344451392210432111330657840829193882103969892348054096774040796588176801405626683051574210604994438367180376074275554001255245179763799012262112054743740883143852922531431884763056728211667887043542415954332807968433233968566305538823954448306858620643741707866296248151746695433401021008686043009162204710651185074744773755445972804955899148428848626591021563815022980028180834152703922096810413516435022232292115338235279165720563583884163532707461264430834151140176819658665169048783361424451604031744938644872998691443183509045754329857000346565033052495622375402750375621723428101785489158547837153670858811829888137175172498188430603467983828935448461200167187916349601488943705693529850666355935803820485544305696072593984670177723685460988332132355800808771577832812629519824824480479561577445775181136865129225142258249493323922644133116620920579613997481095341041243813265129723650162926396794291009554533842270680180587582282783497807951028096129692445020363497188130803777566246935477918901473415604349628155494056476678597322822484212351758071221451251135708900151115506181316819813649898734910606536637445431129410123046423458853840094254862489615252283200468935641319807483528492548109656804223368975435552260810838593591565146956292754441337540732384011903572890754975529448162678925695018068973557703393898116178198144923011780454982751176151153851303701517040475011173568020376089411881525051273024956119419065768436952587739415411893818272842870764801153479731263515657769085388851520704957518075862403156918207700438507098516465543743801583290701841128939830096106188515269273569851748899985304552391512070752556244252405763530921122863015199768693732401555157397751391246696229090879551835432072990263838295049664040952717116252138895383392443706842162131866276394656550623323398539764091080530065391933232341214796667682419040815046985367337060118258317348787418190667054600233676388405424430303186886183290813355877601129869394100219594309920770217339193214711163968893446800843081130192772016388623552556205359712196657256124630979974153895497120978367752936869038000510206344482440828693109779530727954496394673495374157375428638054417438174163327042105834621118431474459671069667992055985656428543563060412586417169977026400253840738378372789768646417129188963808997430141198527446524998420259215960220812995057330014161238485622339899833874951400613778112195349607165625565828750662193692005607916646746019271709278410208801357355857660115517239746586807226303521569933187607413795488101782597474133258238987343074997127810910932128116972683794082720960668637047366725060266056467567214370185319634604284366139607989350368754271754085169965826135049735121218763541430448178751976106487188408630256093054224508521904435147616123981648577719594511730049229100587984431679342529630108186220189183852034532635354776186375598931315836078149877701344747797566115435553344799439327784724588752154247318211528512080035415605653399052930608923587712105118635589801050910871715572301390761113571312724755470158227315563729171276565347228889299671803742884869655463991702251720533755194521518805047201411029656508173784199144444391910594679542256323596697077668318591180382362484241596024548373931914825719638033575733285500723238328318063895302890052705245446992621156573447670848310374321523462071820276618689298442644457416134850950773390730379310650553945977702443799551780594743880267055806710942556700242917205283655147295978731806653427231056745982407544225008652159162787833705894331294254633217732635798942337632470940031507804066844892909008643530211891015985014491324961610883177290793243029307676789197573737515820201938502332927574768898920663429826951962890465740421343141218431731706961373051976231812994904635903194933245215807367906342422915963860523045067009523815620558420677778386020836993321853295783433245570285527885148912031449493898887363841609434908196601104365023305775636418101564627185531881305862110764037343998982078819029319614064691699329809191401877205673005824559898044231221577410411657312277936152063181189578361233694614137333242317985480862015592162834013806809269732505437226023852269777760452012550593718288582326604848657517529491310026384291591474070610119314316883969163467308795404368180390013323264823951633055396959451224897796558136303933630633625245950790033412165878920258734431863247064161005610561040945666553598117290096514181835276875412663403631475102867575133287507168952708860994833494793927840574614097996781206315958434853922911874086759061256568419300770655394399963531026295339025419938558804005789221633729349600978256929530289663509619649423731707843321980979763645198282941324110089526110814078021815032152981187681078620818865272480801159111106266006641715699141521662566843322657436045659737822433740793017018851602177966248670891415570415701012491540298612734148792185242131620668870462715068809654731590312749872492662404302951171655678768742539628567570596468807649506611052607320177454077783209930096853684248516700489009075539394293270980775934126012155392887989564185498709423150294922664717996214640978911315958335713016123441759290168904156954083202716140015652717116481614353608621994715567815063691914036502045474413711843433083428540607007169400960467915852654626969170447239425531739928872261797734014972321714747731568292657198110708933722675411203969987645760096138187377625675257851828210664974638512448220108043702243047815468582152206018096685789689070052041901947108388772489534402785846488172990873294038034176525546656511648390338417345102551603715329477768612186053924857556260281124414025465322699651186404476529009238857213469789590546513850816844999861614573476919486414631959602357153663060011610245941511160080031346868594034137720087661377351229953628562700004007531278649954088999940546215938071303508555307376648672673170277489725495209126714111022115725523137176720994744263691583168728107454820402840328582705785327227461830697424837060872289716877054452239238026747136833508169629028605450963860427149604661000847930425942106580139431156639315729249366658981458178320696683419326418853502936793265187090253024587842878746903927406753656540058787093641715919162589708537529804490628652504641481147177148706282053782435411176328648287052459024369080519016607162119815007960729764858691526856452902851993715464204354980334429556646869661151939040547466811914901888229566122368872284686398418939700396693503158457057306142218748429886024063887703318704133536411473436218648131083845504270077511716232810117286826767771913227071796118956598993756510100401236261115143725948639014798908581027061966743362406951450977471599783726551859434989990239427139763207140646610312708216442204478451019548238664409600269342357786486007722200181135787622708984927506121449471680526789046723232221196976042509128886355245880446347338247986739162057442720020171327335518334626209126214639077606299666613063942409717771935993654933381664949001334122372481590898508808703459984560074330728168406474322514870346185909840031479911935039616332891678326704614286329914569515137887050674735707230803257925758244783605544348600230663334720411797862741418777953505768825235396933165462877116801704095447765447765122134332047377505568691215868902545144017411017553743275967276771173900908382557593754478389042702595006329477778054130816594850821136811771572543469168544608964019315804174037510180859662917948961109279285703360820429482474796126447354720236975116238778643466818315448115902983064648667173507692947623327505752121152178846895866779672258699919273327535338023416420557408297114796324017939404752932695901020844229986283056252747964677600023890933848209491154406768323389380148868941857968903245759454092345413944797223383365870845392257289073062456016186793649924910065701706741279146598088130989424779996210624329975636708619540554819797698200067063334233013587644756349377289509764957663103668744795820784452659219054271310515437326081040473643359941445973626708324819976341436023105585142375714299592376371805004355010201635371763953435591266955435886190657240347466404841724479619166128179621978880007754683232700841462593928138748436089932529618524607763085241321058089851897397462488534159439905501138753851016318221914278742456039158555834762347243414755303348023911888208230095376555937719623583507696864661820247571907051311783110613449854502409033905931508533680194727527959528684857948423708142819557576367279625679707043057834826231440052890065077638334184864209230840120925596781334372879541899723290507976665263366045021956894166312086761730018523712817499589127372447458729872447985243123923322484402798361667775989015008883622747302391899713158582851424689039620479410098207408767274700897456906084778996530758692757316367248896145606698373645985771311346034013781887282936880861831203127171115663233832706781370420682574552025965330442578482651300650196997231374043222376364881074105510829168411924988487100205713309517511732768541626896719800184646952285540810098491358660379496640272995001415323917605652462643637554471104753797052218492194234116208255493276771917827539984214538254235207950204733937619788988557096003790193293050869213185487894037744982929823780489395161786592433861503876660322996682209148037974287797154714344628559075234898952518263817966971629679286639181019005275751108561806997927982327974545329658509973607627639350029315997781521744508015803293938853280669107547203296145538870277299728049272142181883875767808023975325810003632939515661691232664518058749457880780719254651282485385856441357223843145772580701178785490601918813677829143803713446659262631399651645742903624077017978812790495992030122405745975374264254389567700853984555162625667670284350012043127068534201097047051312079542890765062112002006516981376509393797195220435412850087085164496832438884797676408963524648654776729973018009283422041067188069165374618345283342511304859546756144019401605612499290710310981010580093169765910912607409548449119141740679729877977946492226373407278491330909210235593772789589485591775029421600300713367814495084944551617360376805243968992019772440835194897000992519843071357549195204403861658254077244523945935428249977701148268790375475905124698387347707736384511703476958607852351908164199168420274928698141236604160667576268882607144541269548499152891551236948297499361836877727540643316266874769198438706671452200795406738912311867445731869225408602793214533780954011854987583610787835688126782148308512840163511216828159592955073982169898409582011321471653261135420791352755271654901243813982670254989848154181325942779242983397754211793721463553392682292342515429915600861180415060208706340010959397087225723249423591228997132881577931597826353816447269106318591020715243730673711286578016067306037785064965113541754513846704838963822436985810673483814529279687538961537561315489227943251509459559301993923234801497390131785477411951269396604134927735736309040330700552232306132577611695680885452937098684218278572725862784426529396967643596052758740455418063207536327083842083570978222700584666764573107269802952558024232032683364014166433033002621764753727954425706288482089327794407309215739601739701043840391674478935418013303251407570663892539100134496441069702021961934221008992562808460363834240089799517256982905108804720759944472478214645919459760632653740499054643875055318197229351571089718489894399690655167236606051371995362572673629985562096123445719262704063367665288111604553149913987809879968696913777511260093340158788629956009016775696056991446664494883327584351508476283558343455265829126333177467057266966841760799006479069273410869192745201327280259893249627853044851115551257989175732719250647490494813183903428202232985453072890526122191902689097366157886308995380476893264150875101099829298444476830592078165134503915875755572794157062316718962599121698255184107073017701712829960044862955369206839679326910641532243198605419185229560658503391783725198074497736205796677039977904377005165977328290825847207120115593944357692540446975227187147476757289037930352238252262264020476965196728345895390673331355065088995072812914099654419789019299510935419700386723285612631881473026048205130047297744354656803586284543621421585375411883576229416026386015675453409429183222461950374682756623439163366595503140057581809143482159151380758533424130704494002048148022808749979263541598906535314767872474886588472001036367011952547033492632066340566229420271538376516023729147559117491874560136895744591396510299700167700069958186923931452024809603342328026718603200901035180905352511127278456735468616233761048867732354537335945700174859769949556896093706666288321782373769552821771928013454096265452129008903023372079547750871109507963608054037225819612046465197310070032788640654200313655015552361119239809615346130576555957464289916574056173795250290694091749138554482208345517277247360866130644584656943198038683461644222963750015229777752745803458649764156312455986713506892215725959217554648794988837880461980131348257606400039493452325467229144283096443638160787463775401244266998762087393251891566678063927279167190387414471587619742893948843240231770304574411118716880646213811190541940733997260024091451098551787478762830555250115013411726655138239065770164172857412866333690530428172230305315356432042630446924218175602574796234493358244901352959016258091538695002649218005934801294464065104539041140858225151137968158146527146438206980567039299341538500259053092513151618254495005392852431668694333880197773274889999813790732850179620145694448773955895996239966070138036290615453701004059166833080451705881918987901523164395534600163074307501272806927554405439296610719916618688802233210516653374627144175187794495409249656240165014661726264443427351715118740165981003959804729964043881730915547807725842433541329199717620713354300075548499715238285854352063670630490893449471374383443362491180256692884619610253804801098436882378393807204602633100023888320397324528234844733570388181970678869007061240148796983370400805497942727521659730981803839841476258887940204963223827496982349535275178802854341962194897339499771681359988149628559841217351139653872217983800491360268149289744324603859747515000862383965521911585014170096629004414557394614112893525752018823556787642064313231280145472432963111295809599154441899223841502158466921243833821284983542785780359735998597456289702219173349411264884758444804008376643578550152368227498906635481025518050697907296585921650825945393747154384908711867778747897128763096696164149814258417357780853062907024486202058946740069714158093062084779732999721470580637495758440302949802777219286121198148788079450084791777022599127614278162953002528204826663706082690489491026288875769364713570649850756083284156438492776489074604269469749766124785045677767401310741843717870718144338984842726475478813248675327264853343375765180309862534012422250110757029068838950032937674633527946074518177646366093242049972177468035062510153142132299583577924485142217031759982448942730688832772966632710598754565668790035891423156736883680028875125555433665287436233373667285210415472698110631651208675681889280741859204257014671092742710301413269075152011786126694680868912882907174598295194497180518280969985013831860273907967697225098108761766261860395454478206736290226418502981452651477324819586914723914552844639164274452317693561345260349072813481551083652531509649427709346404701496814911409965599987745959717716672265063054918556826434319598642511552470828575431708893659510571991875691210015016476780869707550742710988305734543173579644750601574000263445547342682669057583776167187208754719087198735799394962272482861864205749226525647093084869916604431510843952047638591798007285195941356777830416333407510753776173167592969961138833054488329364939854917998195634887002683653667189647538175036220878586383429349006900935351717777092387009695205496850345164506493254110591445807124573393008578098567020692022088792797865490824108776760042817103427455701229926557465300635410914141218332117311175731038413494931092710245046805816627148015100286379030894519696475962123610323190976860065114193351472953578481369476492292796412886152011243422779794933593594584335554319249954847801182332503760108236921138177566888996390893935204239309197428158497093294794503852636053410054329547225420071170314705028353772002781567098191386571940800090399303809426557295954394210140411287429121686164065816066115934835232450382582497190656985005436390821306397657673381203010744343575316405842760319071882225126286332874670185407107188857665954066676384815391442673846901464865871293876933477548951526662651448739042995278686607996809271825839078977752626500131516504937760134441117998746039687077997528747262351089762037296068688259042582551919298460492476848280431635417907307989449194694024729564205719303936555615226114976695130976965070544801739656460641073049418584687323311263305890467693585937227416791434311583172699305218861006980022136288716541715935557938596324139237211309429509525067485335228738197912492752212631482492301641175920420034899331565095145500037223145770451190811242746943098965343090221391489668840947475862023798872158321467048908873268697589518188689803164356827579017040535763914996210988034581787610434279705464995677475352302637652451267827102082200955420665341496578952589470085326210908251455863097773954558516286043432090351945408480452188372920658493106808743821287052308958904471997577868490890958869722094993716335705563671227623629304550589161104822261315218798368401378381969327704980681894664751893864400790811623889838704729012960569970174157497034152264224199060609699506396054586524610580889267603300111888255533594659974164064398982175644417853341538002453916961416801607461892819575178964316769668346966306688496547381499048335109787718217054831477566012936339584857387322699119042822847781780783096801360292881491407055945254026952600477303384545237489483812922514187310839278080758947868251952054821023146464451674788508258893837540750315449607463606374448070781476944287625521364570593282915349811407855389114426939982784173896687326678233207173168296815273043295848086755144829968208192059636105416316785236090119045531689684699188451160578840040223818663649851482518498751265671997578903725859567458293277081861578204328746008413791101078461666565217040734157842350304351848163163703405256877000833519103896576721514839979361945997918369589801740351947201552491879792337457874402296918045364185509489942807751950197636683119431765536884159716472327480546068441098595352597436127540131769513194036680472340368330029242922135268649371554731875526523267069048218310428743143429173981847200521930523116125409204875575783386537950563176004575607789783747815325083238302001634614938909659309803178547796759168620607201030827957570693027450070625688683068931117818991209358781324132424048359444915889715928994559826186278409732828433157226042910165405478154318654824976944744826134461910153094973545730031472574478102536385708308078115622506112178885266878197967128315846403367833323793606581052822616065722231526316095631444300654561194334336977328712473400385828282325095539319834853095973016617720131828535334876294210621330761791040841848932241282871661342501162862828371294661273644086531211996946299158304297981632663082985245679713549143793659423555484953845677304735570759539835789131909746736531697509424036466011026269104293177829170570441203163239671726217947463455331110168481182362896654920321216907129016847510095395173996215090507636916698223421061555486378291463636852731866136900845309387667180234894394948473907465704751106630471479966043384246807437479316568415349464293430178351571735554189101363632765390517541281929003292000699168459307758998748524281927004703233534042082397983247948416966500640613053105253502855586445293738687797919754065137416899200443408830551476264996676515468655530048995298037114305749132513792993683535208563312202229937536106501657087121466988443280289594935441953548860855233289019722564262549136698811029883314285276301102982552925424180787835171997769609103117361973337142447358634438533231552095895929450433620530924622469247093132268036209393694863654476969302733874365511468532213124889109109436615417867206398700655218791566514994570603016322199459187091346660818851770583086228319880826915260285078527247515362581070737373457322834944472670196702558472807489546971424736579318487301494418912139225364448384493065860202956904083388377823924241797053519216048502282256736434419452795162968592312086495979711907320069316806313002166648152741989102011573247048492494476415721073068933839493335507704443774902635252706240354763777314921778330835808482053674159419064872460270984763158300530998677590991546867111712820116963139296538524671333583760568683948557648853348363775645426279923215093869745570816419800144777227022112604401603439514770883165154924000338630302231124957838153898596958817908615103850578456936788668533191018085931176817907131406083184301602547236517605935599508183545190611667106879309624759333878795485629394869763953715216826589997370835300699229321500473872158807345089339265185161294447641504381350176018821745536546604698852368156039204985955568385738368265100914827201119366923109476604669265781061564015659189063632379798031083061198259214916526868795631325984302339421152916347212266060956025214045883837040739217446797457706696904036271237702762596475499998278211909480504529458223547445643736512082689185772690512227363608300924086600319345301685748637162094425467555404881211905226652306717195045289648275349339734126860887793016077160057041287511570478107143017927139286004856197554659263945268158943268817294890838164383147521519379187653137404348341607790352310009522182680431323733461335441868522006483273990628040110631907844730696077662405205261912746840426236875360906601106263733820966523561037055981780743276951619556898248603052602275608311724954572881212462362190054589888267524650798964814299304243912557427352375121484514844025963190343139368477593947415658416953289875174148150271547586559541262081494523904168616241390646614780709807775510262755853567316349687027469755033155945114829572834531950472797644773107922910662480356913717223259931481944545769029030162389498011172837249120787610678528169387938326195151159810723624006557735828535094861860141621530894193935984789844032821235974407326375029032107420471345851004920016816361643565329094591192754532545842772657565699266679407462672389122913420911500230634964413273518315672559484836551840726732233719810497094495414976820565495164029100464222163854343907385993092209934563798341420414852232431486681781778419726912130993707870818607123645403365056680748848443312087573667522822039478837579147522570881102524295957988449577059510834114088448890437016685532227634163350527710409055078342505190057496249145971860298213459899865160676282283008618923392144969130662566644454423454199881815986838952407616253851027472730910219142406850683362422248621398820784307832376520812329692338209907747197603167208236592347393108469992351435081242960666375349378022193353063775892540436025857885089227573716381941723631469840774491511329952462022654598853194683266958213793142194085987207830073190755480114298366860661106106472188825817597658308982323140865083075977756154666417201607477297038198452060735035175398084448402311597002902485614554831414769234986618785515099506389811820762342066765999130630591114626579510493977490658468100137240535623634861180803016810144332924435090288622996624313867609958159831899118916030324160218972546125280026006919871047203569232669193501216055989985724628806866313914602790174540126971113152907055552444844989352385665751934133196857745588992642073546060746503019383738816628268766926344573840129110124103197611563513323645462547381889293488630632479021527592687807513277809511563098354417652206887445235906279587676898351487902377710764568937436478861027058299289295162934195400339245683652808776464463182926632662867165395835742571560313827542915205160837351609770363805798614618113131364037932158710799329271219049626865814178612599458851086193334786440860322224589941066647008788491078078219012006576375920680241287298350454423795697537041859175168880058355222507963319360858730851557746485955777226764695179707902077426027850922140558268359414395480440949958344112175231421666110656301190519955092897101624693817382948073060516931584814936523960028130852008845772821813071027032683303392076031788469953107692838274039320019228923351455154423281891395527695269287580477185985602529013067746015668570218203019316890548736693266196925650482087313368048478494580087134793601279851533216639226478441073231242692972234011076209924493467699365549861853515285874652400655674273931549724048941985913497895014552389582761869412717496334411757330713441905609689601961421414273466578014895479945732269546746419442985343257883176718223789470776303817054118361528747658291052247950579254335399912751937702941330931604301675732712362491026896260861865444820599115901154824088903195302024635229113184760533064463720986196795038667036428855779197737089569236234335731483136286643153597389463183870197951517326935777933165098355199173444902535409194207633934502146467293165067608547453923102495893451503391344555508321630993060479770992699896057603739981075503330134287580134228501402270757219138816908818746060288963671930220995544980981424272159041055548449258012340606088331357263501436420343254838826496806637478326995006874149099118983111118683219774408759253933773623611833158035640213816963489620384198154495720776496856329854582072280546469190223231969363631523252620885729011304979648270245960664704781023114860343646217678564093550178222651232853004635140357088620257971304307003293426319285936097371165942854057142726251787029682372617926765981761790931657322135718527898678596324767325381739733172934059682577567455430223285648060053271495231129524263785611068011685596519000851699638627891350474824706404207236710772873134906363414592587931803400610962126513424808546273926127817983874849104844817922052275763830609177356120476471408444662950604709611272684414527811799001822196163999086466978231397925731296127378140571033255664182537571553169590245932839304563409747017348463111335242632306643167417311137641126844968884166284713777376237294131463099300782599004211932575083395512903582072108653515513349946774342222253574074305840707044975407470897813067013469145470590009920692343030275276932390627663705800455871460507367414314990968838004929104279200268667049681945874399979484047475198657145942608008704441256071147734760350695945583744441411662130985977073120468342829956208669889901960455914237377008093066138843723718037164635946716426679623091714908214599914993294218127278954573771565657953809594470357744925416569228758728914113704902053607262337192707977506202734472851454399376165025242560488440076034102960171144396214551513871683778579933216184977709153005474219750867128739160323729289838058027594992195728722988430855647951667410381306694586510667019335458238046580815174284489919268159552873951703520418358027186047652998634394394038976392702084238736625100279066505442815357840794646147210907169150054162464108816949355831333542283635986481702611430900010544077092386750346023530407079869092827323033533749146195998999688349859171202644181726925488891548330492039051821479105096556574123244252267984107335221347270454468416920469928845111679621459681049112039617659773426600178275095254166469119154891819565650433604110115483717007591935022447677742183613990728297171771948928213311652120739607704190223673969339077112713987723246224658159467472588095272514149717088401075158179997012199555364908041632838098737819595945034262097646826621136483875993496683392599694662246913191308526251906457984356826464834368541044905330702476419228496088703928217168226415027635918888343183171917113058277135687842542663724756285275549981776078451322008495405043021740009717409484344546515064603917063331372672644866858958367194644886180185906822923571601772177557267553421938581297235313189736268329332774393488876966911653047956852255831397291506917178544635681676776358581603724014342335466405786191399884061962431300289275693677544074079583364597849845968404794393281212896106831711820280302623120897619028622703403653621824704770437959721211543503656268773683691356917563709119297153908017811761975416367220463093947861083539876961631560813692975099358570325393736593034996041101311419373368483361732837090079025470529876027659139101304202787245220297960656900553699124087571318888527061954739318058069639178382065686135887914437121909607925859820243855723374356465140242317855916457173042474013181819847304922374405520266926572528362699433591946659358971418132506623986117844215872731298779273282563576470779051432728116772755685667490296125571910443436166440105653262851510063898018621730344015403906701192586577676679050323160038814962094861475585931007991751974789655609215280470652932636373982949021687327646160176725057177854071955008791794197707768804658280209654924678579943164528985528394616451321552250430173758608887635667811344709848710107577948327554131085692326439964810861607747466142055397225612810264608065988422628107275758517798176327556397956586421596634211522055434547609307751808680685638271692536871888253091798059788768556107985663023510341430501312997477759074496346507911706019737249731004079165015318675586728973031945471425072425867473626744994535716012419290138964633725714963949042288358479881490686818743922122827469043402034449626983332207699805273341246520745353719770514590691146681092682388543950222539885981285605188538919178523859742188780419207454724841446623499806856006534442062556473200027793095249194733585982901159326402234957990640358849990288901938420502048898842657248887873991534662079327780930012627355411218861039743968852488520835684455437379608273139576945201513469815772079854249361665440389121532390585726559491238117635292745521137597422984931787557487140478912046074940236981928741965708075899238132364773907050426464974631559726509687668519060073781925092754768491955309014776572039221749653316758152425094585879074213654249925128637156075359859200770844043366535996208140446038263218453918395260380730789203064880923222306590909645819690506051505949687020349749646171768734831920255387204648609323202146901966444985386596537235561916455062190849501151124515469205572542071238332848823314046020729580432946845077614957254075974446969337768084403061920266470203871347583401714744303226648040203488337142368527496527516444759239328865447825960855942042809871661277208057969458107352890190615925669351879965171937318884628335647981306391000317743415273960029734145479775313415356056701668065093714382783647772132660736717056552004108760451043697135092091158205735523485923774031837824941584056804275072848871866075862331753500014555338884334071738941224401458401091491375125187345937981132824229549515365628608623182341619298657794696960074207081981277876408516460844703920963254958855646829964023358683262040054720148898135333353653424319347324390791216708088582685664292270536438231854425796718292659137163759848009028079344501438547802185172557245754583689772824418375382512269640315729195881724418449910335592919289813857778658960706340555733029470584839324316075515147933382349100924065347838889472268180049587220729539516487871981232599115655701340432147971090046631151830888729159518914797115367270004676209692226571602238844917247513774534296411287270251715272717461112268571687981680941936116994135701502789049985316536564114004305025962375409327867162844628803115725957949399083014213283323142648345728472803978538103302403721960089587326308017881099948891079487552392320956218368663954054004812539277245694961530182063137831416400908134541623487468831867602677982581993727295196720249430494604703835579108207785387689141066518248838241596313764484125398208549626181087418168072162025466355759486241660844971421882267682390279145128117927516102634007555677330081937446335004763177662130202832898822846347122076026281830330031267202734003182631779004201334036954320715399056262553235599628738647563633777785063381007166625487954633676366066816838915817492220692065317338796989645189970720748560647691020009095786850157487291919776174625556039509638933616272412150971524915057121231495844184850286533783356643370833978189055502512298194795631793822100176373000928239927329725127414939322095387992325476530012181781593030205453562369378298045422787983998252728753063202476308475762091450758993439660023459979342426812565014137582962861233081157076952889196473978719989463015707551602382224301528503836243140436351920196447379090379119392548574472987624904152995807074506031424624007587767907637310694809776865574613974418673670225296228016629864521157184034570647517184623162376160753563645632557512239644202381709863158943961206329100491250363772803110675424037746060246174741457015611218482359232494538478064758881191588782965217839499762072355317146329709256475177156893904116827246263657078792517507592646327266799955094170314117622140254903055307558017823541832499814730769066665205984624795403345140677705808956477633236830134845385613775906235545914656784489054231643701297951425903009063743063077199749372870909657193207789488797053720624041795226687128978479551128575681991859347568360944502402821489958538201752022808741482164107253407682267511101579747008517688960047704378325543998150287189254371925155638689369420189358925218786552681167797274299963082048293959339371976795701529570050994707859577664941724744783312886964763453449808057846583008115158385382347146946885671438691122882396697239433802574814458759403188447565305708362865112340364847619678146482440422513686216330099756772171143671943414510595373790673470147064353321701479284991767873272045386228170851634786168851774920185427951064777448147458813811340321091519836931502388323492993587929607467767545134607514835676505379397390324925478797796196358143938185534347443391508613471811091877909288478246649024289730585164772515826143439871153297958817545374112443309816909603053009206364544478763468038661260294849217396154488218238482449837529329235598913034514069280706335045330229090993869073800119572500212566112223234342390428997374089065668933399949108781643204722074923582155057771022999638167408377003316418913718420885285697829880635686811962329636995777630290359036319546434339249420159314724555739958376770372065932875667842036402500630547794986136063575843552253876080259253445022460571902612913344857568945000638694587975619655560174509151204855492364811559195390375780106176900986327617318669698080659658077303279488732621810851564100038625052956911718009485916453891594626309965793740157465853451543990999642750696411466907452725921705341391203590826782505785284096157359582457778504745671900023654259402345525073889801379607409559046317804757933325204843793892194869422175968116204096746304182104178752215374248201206044347196468018343041674246345417316323857817827197254172659154558758207579717079909284680837235274040263283878858869511166571815187769129329958690017914183916337553139166621377388711566912893055921223488517324364394463691603052443857667173794407327097820173370161849691549106274011796208176489819759614408016299169852593907872284011816288043381066870345004829561061040580317843269300681037143340791359920010814876702685142973535381206789300660511032322848155213433344492199714427798133215496631442946069768951237273611126399490017982395724586348691336851305475088060526773327835038621424011790623634035668593383834451824061662674036929431160555727038436478036838286843366346745276200051918878524025710533663079319852090679956936807772587076725634071958041640448167529939777113411467292724970989988289352337328364219751891465709932212960164051323945326014973553623785346259115784364084876983310267152839412506867129029701855374996291871050397720047197724146361649408991113149407736406607224760489851570026208899423583621366655306068369522991686039512605447889882711515578555337310535720236305785542535823454637315787738636499957448220420691476565000811990301024357398360121104629971048404433520347515187308104093459405200601316080848873428749020449154800109181829064993136577134941500344961321694492276014348842280395526123936251272987013692464225571638195242560327282965133559331521973616404926336844347702205278357020336490211800922162355675148903407448713424890507921171525537647218936409626575836301955352912204042879684085730076555964626372797585345895807361716481522306238248670388411250912240535296024198187085997701880184896508920784108520558400189268372309108932087201444275244616288539294619521940002131654977568468191682333802885722682830205949613223884981109054250016846861382217456843589995603967874975620783015930082454926511916248994129661059825261971438864240379759803258136025096157792626569669074106041497381699221962028853580326253010172786356905883529895722129257768175441689609519677558278827519170688211231075431181912190242618169322148774810033254112453826531820657922372336618100319210969095226360691385307529076193587807247686804103392732916771521748530334144434396814565736107527297220580265215636007746927244736103472288734664114833746139334299016345636510401114324782647734117751155912467501496788918328610640666636804336304302778165293769238235259477163050551018080464258680389874842228951859488850312677220834843711518549714708061504207787911709740637522700105523951667307776736386388379264721739707361911106706891225454393396594758786600041662145665797492657397969588963146120578962280978414155308953627224806740579781414077236022695138348207601796737201874568791673120696609441411598703266849234088761977704622464917246797258528536596326070063740397189570025114175707725623387707369770235975946360118094208530404616987625127722839954607442710393225769478313357553664798639142851289708293790436387116791498030889606922873136148550143562703013365006621302505455683725447013906001387402557368960625515576705468056299509032982948858759410706562729642186356879992608600665159260420531476338046273266956592663827708291599832560490319448438761398608108476993708456214301588371569350623757157431512730679467917583028771020561814909181015868497123679154862708644995274885828717709254696261235242154063608732182534860338002894453591113115224460832898481992368472885028108950528005629536466083172275646637763729308615511800991357559336041010549459599396473470968525586339858361588427007440821711173711820462467592473138812212422945612680274908469105237345759625195330984147894409346911661281269579684444322027127096140976154568448507195336859546151874818742273373909909414677043552557243872091187428178708436348387737752629299320758762496402928773295251898674363608676972374561802315416656790162854058023766254754026200476748350153204614743414087643032937429396873839153163331595652883418236735075482652508140951209311955415955826256638094909610439260123268409480238690096756211313543007912179725243371654706134863522915249547671982670463394319285498253894250001782030774250487888448633228424433413304887247625467106216072797289893898294193956317012939370555831471933303194577389799853066040978364223949611743546493386108964742130877490288205835639905479311550116059937981733239948311309697189175244855091303551157688719093779682883713152159489775728825987743877330660760535216598786745207491429373300005246506064109038439948849711226081959568253825156419919510643834672448097861014606116851027006741190811075477430148687323381017322860738632686033393750152880909823599709643648912403222858750858865499988854155292554247979677350397341888198167510470071628635870348351179244726217616134566123468857853088464449202688590283609005616464521483644983252587212215103201802597497897392895419159002238043558699312528544144671853048471544326055265049980485737749986189447847248823018099758028564238519518059640268514435268921832664162809670222656983356391393749474915073469769292788564449332246962782363872703485967665101391018779854761212161874941402713809919330678103608147161373946246819236804981340205218185580087124960460512062458115812604280071437481344609718427768633929004845122812194766556692196317345824155010457493865088986814867774456855135701619343267175700290196922304132421916765392149096820635718116440197507127012132848433257555168639955619368083714976888500565883811340977444837177589996444975038850026967025037309844279898469019674985661807011797818853625619100234112248562917259705039340369034277448195811705008347123559369656490379262760261109437482691147789255149885777358071575577859667832546844488634773230735887398476502717397125619065738265517971032201586376568901394508157775006705405215077860179251103547016171998414946771622963596991771553615278625420343517259385395871371899368812816413980112478191355300501250026870651898428478783807831436474753070297912493742747481826719013552551502113334842604774712261745661457571766270793925159980415673875439270976898303348981469127336883082298564202937787667610549539845113325088418456822995339499101071364493266396522679072890979479938648526862759831205916093520672018359160467034911200742429350909809488151812785603837127578897885702565447560460054087345376767395528903189977668110760841932354016989164454448623010285481730567101469710142790544371535243861811805395836816452045386736013016770893654832135535951387707751896520389444416100469958688943963519323629481730207524917802648290389939738811589816689308950495068633980478469227809170195760754609893260007911079587753062959370582452739877848673552697214905304421118947146810102686190950068854419053859795364094063206151165784393408104120663385644773581777824214097223107318848552879193259030104200647160235486364686963015036378127211713273468524417358279898903920561332335989258433960327949872494423762381577557678446446127895297901378105349845957698882940895704190761234986612092622755398493288986277877303662889141763354216109759416844908841794493720542616632383734564676921049785442732535409114065867606679305255507516773814356312318147712136811439428537217471891648302198387504227997866099338183341487120729350550822400368139879022109694518033889719983982047367651439858714655576067695136057829159537686785449734244897132393547445573338378449207220716127104381878793020707551017116266373851916814846588688300396074275227335178069891919990653863981905944440374627300183780712458261127909979575822458082450090330348388760112827662844196131116745996101726125059999955437609703879650983747972172207190591862283627397017450811625933458759343375524318399035242269140458919614675631565541755417831066613164024100826444450374698914672121624446722248019690152851889124179781633134912752766373189555133401585881776579724871966462877983285451941672642137705824817482194579058198220255613423412555819248188352452559729676869619021110893220198427588482944451267715267482803036021385513429930663714491544349956767532073080915465152876379785272152575599099316424679044576707484746299920897912966362404064888825406781768141399006135699691280397653602855544522701098068625254227609834284611694408093908606074118393689970836047133629425230246558262167450904696335514004105009855369172542715798510460834407707173078869969008509709867592919641564735869383313514346859664305480520209711820833951420973405734978875328526171259685529315004234399042120986005119813483563410715159276238432581422095700023337954603077361615592083317069264377651766532654190206558166614847212871619229287260250919997883964328432984295953455590995106845601659043000838651754100988834765646329296570189874373186300825290265489422703957028672287841314233696307791486220811145135039814247117570844532427692267046493089731095375272631962090342970594767735159207206440050780019553287492107243140872619864072964563075460145774557782157294018329403359661878308290319201480925192341989443366388214372341789078482888201026919331828231397463728825118918516238433755836298519700153317891836406193492556660420663235502337898423965302167552680225457168967519091486040235879330130377031553189027507873020932252705040630487573966894429816791338059164607000818996714608917288636478218734045285430164180288913039229971248164869282749005797828068237981174731221766172089580721796215741975871851752937652995493363354670663130382908620597276429502686798634438516617187097014217620487481727218825420020691061380334934508028097150175592097416547459103339688152769459148790799140026275325926822252065280157136325612460070585370674034046261000678000033051817535604193023463711220801903260390713766488114670399353870871267843293629498220335099603094436066252464633069334603601915631103339213837936645351133846625678263086167636680332340302813538455654443653263029646224306116349384577583909136536240013298708076926389064640438876155531515003861105455126830880376501748168419013709560626239429155393524406230530760135194106847999109946130061513097239422254076918428791837022434263962197639173876506936890447963475794060830393542690348551881809384121220073155671996809031715306781868442028637891805669077470902563381350962484994936572308989339793190095731495192795532121994696282326863425393095433039640300727957177173264758069598348564311464700512026045221912757584442793140488330420659202758687164376813197069173026742146462424655742826573165153411326227737448871224016315579544542592261925109608987931282346520062323305216036299643559195103474940164531553580046466755441055147273144734490185521525010053414150924877723205171749797227329624088517549224183460512513977444822736468399048858166938648200231800008915435689746861993071477422399118646181039547876627930549996388350537319400134447276268335292264053364438824120512325089005554575882073505872007717145847507455935437437475604018267613123742537985456702043586787419280199584850551141259597105006838564017954965775142184601988323681406454078493152993544697707057004794618550370961761049666779611698244258101590564718779247622050922820474517638963776106003552287016088385541228430161736112263443626706276550015320371312053539240681200935134187228105578030804576108755623191854695278468572080788164056720444828859162414008554423643249448375732515322063258999295622032000590205892003515460919389791612309431024088838224731755155429174287388662575923314529001089674438155157841968274220677084200020259316286351215862317802452496505922349798507472426437747008562546441960365053998520371230799338243055011313113193244321900322963285862144368911905344222596872348139918948628730954668747960621861616285129596727643686768470934215817116252911423252744869567162589724887943818164836762818026048849778338796764391757118143681368336202043196785062098130502946387034773409380049520029112489240612341612350796574737062273079897847817699528200684062945350492651330332063837167008277254248334764777526210675624038022561399285056767084885328894693071131947671508053241583240173000541217286900957671576914053181305900648364497353652452066852266404400027933503084265346475889993313536045538244375269239537111290635982438279625360158157264551369661396463648454760916690651059490143791990273332641316654444568753140422527653886942161304683641291264182092801790708164985671190068761621231984053208449011051615729382742625391709597598752220650909799822658916157073229334071658640281265182253068155085209716145347265635766317728413854736590865076481440405482127576889589613249380078905831184991644760064703724377229883150827532001580681851817186568867269235537945787074533470341570918568201771321434730532676888842906082727766139875928084180022468778857553027691810911509874007319042627990174177998958830654785762493403815430423177492757422767824154428666581458739076140223527036753860736196231180865312998634919688050990290449471419228716658766396279735299585757345867193174656339081420422258351817915895016433915991878684445293019799228685912807361400119544882625968510486354233874831644973506590510660551086572461966737154809616802603760808453349883587524108533358398231043870216631524376199793229499669542991281158468718514470640475808282309846330501654291693477357252678884482882011086056894582814445283789444191844937842240496454559650073324488333312158700505231963199751657575260167053789175340113835054972754225909893423497324286959722475462832670819070997727384321653077992836677984910760623071426198133503532988532931832210507889998096580522631994315660384899349538338856160645974666376324946438384967121477067693441814130461173497051387267180049330123772578024320012090505833513880804766697423842536021165322034848292380262735117214128299996540955682247064725417091734507057225816623307887910252041065103183594907466563634205915240197722383294969640203547914896720847123976198323489572329961301809486947744843403851518688724238742719541027431077113185861238982435620478882998675650144774248904792853951443241277873830622762441447741049445236116250859748373263184857962969246133151189109892675341313519149074109667278061948742684374369787534733597307626791838223428623895487309095976414279113118837519414445395170945828711411999124760829522958474525042462735447629342223388606402783978756472315455853931987404009364075196203842115883181460116119573623907662701938110953506952498355816454602957650799917961062151956114608979403372838678427396966654751251829353629303083807391164020265451802532922838930736410204021799371383742945260182790268360969743400084671618064444972636945458079164923843067060644604212836111387146413740852397567700208621300309180476033873625678318847461038081303779793766580840832761489460341664892876965174477659024970812006639318826335449781130368894951210141727954777208488668130403133098653068558349274891683632032188323164663692729210324964006231287566128051795816770785154665242093267329225554804351069920657352520336327503698801813747126488640248351604958460219476353597084302432584528299619441701372029925221692994815891245634869544235088623067597199618490391767847664520171707532729320507372114728403536666684092113204275538659921190782951869319146977217239065059955814896241451059527888207881505836291580888194908325479356213509799529714101201137315535891295953364030073073773161183854336592342221950753195173154696420288312669111185171667942191750527029761405013686259867140217898333102384982292650685504219549207008234839597691265401134513407528371624435897250017090043084798450931231494133424324661479192360578393200486427183967474286557335424599519951572770290589194034917662454359706397943016745928052174115467832548864577023448983169211863907355646722384382775083274464379507552052492913279786282500576434717142471336513073988502318633111220367646889200334659430763645397077465007270777919745896249857006954875217660762227151300864530883978305895892952992473925699103954446585609717001224788760946774824747884975584820964656758212722841176053549990103857839588646572975536437988685138974771223617120122908064212890281999123198260339750645519564419016304740681895349909082422201102759657672793020597459611987636502617508698979191371735919024316262943373185044450097539157167944782834024085686504016130366726878815529734793405643769482539466066181255775420218568596629300388036666510795474080503750283904236496345126226072938598617503625662642076305890829919309150350860259080396975353240508914109154710958201905642717521041252788761922177259819664118807342259740074190943580607005662515454975275016300509413631700712035602902663239269596848110190033999206208512872008702899904575024296683164183071256148582633063490509706273640516728728006347806692100987558231635032364082323504086027199286997428759359337642218002679217088282101506346904465977049851098725454323465438292770531892150934973487816442681141530449589329191516945508542451182736534787615147045140800197810181465670042689935342416126394942031754057172847046526657713991151947770418006255516071777182123245789560637465127817319619377034988876919152470946811515720392034736469842030143106098305128292007710244236460800637022629333992349194313124297414783743876870628862153863287882492815378770571824695159623122360031048069954824920651357781687674235431267293260927755812055070834874347389709068261890986431188944468717288711572290899567162565342925710454280022709760550068353548938238347944253206296994967463390885890250498778982020594876512914469147285850123172271070505166420537327175812482452660492458426201813492917611660529082961830981206043153797832711993726210372194571388241574187887741714072068452693272253804604176619121606896031663099083652960247045229317087683651727052519035903307904279534261492401084127569142300772161559396413224471994136201499446761083570736170999784087299125078589103686969579705773415705208436795040045985607034843156270075457321591911796668660681318938370974923254312925814844892238297305454730412176832422850370146025759881461150227496680290784662408945543317168513249931713321724824874961978153246902478220572894310163587565298908510407188814516372869674856359075194204827176822417796678779389736416892403414644275491662774414611919530779456321573908450568725031450310558539154805957527782581572509739296099566493152300412273859580088205690891324090079020205350411508199794652246026328670835602450618131231782527319370390015333656912657099189365733842320619864110647669339064821751864333434367481394544446202727391076183301123107942728006740701788681626241205080816703546468864156036479042306931661899309839568590878930617235948308092055879265765863306926701621944415323977957817008721563880138751032066862841880975707776255938402382158876636779996366843299822033378691259114754494116017751760216321430669463149639569920658038946879868320712121493950734656458575219742279632330115195724839632358316335866773238720067429507910517164483874730285433071161105799887303998656082662944078437580292322269551190887629292844613073543583130668188576399178302407418405810439946605223965905080039772338129795298752796872579594204498304170247010432625988705792747466501127312135680303439375445120072396262778983427346161628866463808225524908417498526631025103683434391637181384277834743939279999266923644900863328704667136743564894004617744442818803611784709347006559176294985454915733598781518622410543695884705552328354163373817190386955192145975509247174992306396345131733150031066414850444777846861310425509228192846430458844293749282974782967574729797010591870552289156086988355978856782377608973300368997682454414885772638818953564373417878138731044982562230310133648374289593641338676896101288839081598795862647214176767247215923597473618830894579490519166524496620701357419254120871813861156456072829817713283885149533026802102609953168263423131404832702339364873413294538163310825451457900315855960316023886153639384458387931345930194880045922633940456443994798793755980395872844265421378501117582120513895489321299253791275898442581497831677913023634627491346411511185841650809024921623837823840666459150280255800379364306721781650134476510051423427556782094866200373442343433691030095798130266862770723869928256606581981185824187006178066222993770191613705470465948853696221494384487971704078221954501738724033188894365561187889718436868463283645549608310673208298872757735986438850572408318784577061019784159032202964173178488797370612942483845277743659431369123307862716723922603022431248540001196408304994197255865404000097215236512724344176123784447670857973767499820247485210439078697532346281356559006246181481417359331996889011348087711623152116867195525317935125804435173417469744045174062666058782775904209583046889910214211222214035486296802101098120151073877872451682130070256038619235349362744344962487331345520230980636070098247371408101316742997504274479217059205726716897397290325853673867209215253609586485023266063960941479575884874360476287726106687911340716222603851605610423440757854051038002325109458102357226758915624411263969000596053211475381450411379113838700855244510368243781818563405164792694207134212360206390417233340192244766069209361588314297217063882382965100378798119980851930123820711793988172064715688110515066154714231251550418634514015685393751678495525261136613053234870465689239273821822457558791512131976910095323996267818995256414230337389257455871228924632371545419244327633484868031393267084243660942331344255048723924884078370450855297438748587650501218097809531418268455739539626211044635057038542019792601210142237539018982597831545263798674473244937610926808788459899632794444392629852486134449304853049260761287157316528323927205572879914290627524858455820391650437668536783572104211264649421631964546146452672587050806985800738697698206127032832392694799725989477841229244817026179984377291402520876207680292418390939566367295269225517684277264167620294795894839664755753371199450989403258423612923750187364355341536473943079822696610678249670479263693087050590862435823449588110291127125514324253900716777303069788050977340005237527074464462001753446561136988521211870543305298799365128580998515687534681133847025375738508973195034696173851243626565627211459591580759958321446099429272269274411434413334769116457922596674666734472785358902143371827732133001953039391155415199681257053292493319314554687769525646025582111992077043596620946409621997082008854471752853343192202520553238367856949846988551973671453556711629352683588180645725719884142276815947873267548471532712588231260478643009901365461123064428371444839297651825124486548040008391946740420193134381200724874641118503073683119057495032072758622355460637550370095378942141462696585373311769906288613014423461150327990272522641110027896400620572735355973093571251667221205765256345634346555922405342907853808637399024479877991692888134270173945252705085796174151363776160102157953864951775276197650081074452244234037796680569810404249351794977287291412523224445452880477785394340406013406758273579601741125213412447961665967595047855775910315328084318494002827553965754208067308247508391757455464188811716173249021267564069642357352791978017162412112035691556065454531846436484732319575331003049903529193861442146123572933102715796406032517455109511410022340709960495236278423705719207642194730406666869959848730360250133791691164567035066425350132824797055038537033390197740949316626553629074668683728994410008134436850075518628414786783101217504834880329603040006614251933196047813674125764140088697635559394498073412822541066875562110354677753403292995541479339496542373968084457855030674266157881311259549936356716873869833113003211603482429543170814104609294019821012070004815574954548840090326844391486058770734971370007310117479244153190453994113721547957145005067561496181628208699344313362221024384101303413972237570859482283961566570103571200342323578894202014417718750166234289134566059624746849510261454541678527965560739931873401917525360479552661416036105679649854865645442568748653198874024853332192888494979069104207157112825903307416355043887175140018442149707757315528803306008127705890601009403480024980967889560784304766902184990074524583597291230041735641879977285452576550156333631655106780142811589431988339915421442677239839623493783643049493660364614371196795299991788646924332491612578623562730887080932211223435251272025325492404441829686749519051223087335766915504541703743960319642901046260652897525415737604886935301118754715982403038731114985925432346805371789115935445756181222937210324000351691021809804466413434073548446216823952401745351607599194015313132176840284045941769691794363185725447936534719798451982168564059441983041563939601660776676996096818408658433195592943099233162770510088121092194840351655464470479223209742934579209693603836109620504668000624184710135006043302875416241855346146842892988758746068321873708117634773639983741177704973964488942916782931856547466705425378548524201152958648543330933843222558807093888139130085994176246288046265654776153697644025714065092821862222836091617824183710636267870312877125761787648838523644411170519790113525276947700810396141438806580038083248104337760506662697112452957831279741696363906248348169820630189558247703073604817293509453963705178771104806601286945948111060754203518572208433412085092612120113837190368616739783379119810877337383002942634953868679835207514961895928623374563771045579954127557251755884118876132279461397853699082367584855597386671749755196831346357073588051183560914813123353250759135401876706943557734440590251098754325664135232734697606057584614684957079613258043460325697225307909980926995199083955649903167242817995698455993030396117245202723948088487880958395107820279790197722717473588697328710834721250550498377189140059617145802067975116571551105509860986524993332673647531090067036241360891657790268003639032492875383791217922446363801057977289043312307554468446112254611972083749273442803235575069679794316947813681101439488625188172123398037706518634818976616536408172508221772637092402682821563721996367095086704832016281001373693657568645403300255921137511200612903753493254853300680484860949463002607802213762394904724827321879553234966640101276296146431099964530881086607803910850385977371615143810829195021202079063417700999805233474677602751661434057107068708404941529938213189785023072321908280994231695823398447553878741643817809425448901988357199745043354488846888456104459690284715749701062485088424073024764504486865751551587012458260798883049286736630390083312924360694450160998967356754424223113368978691769138622401703847719103914894535260917729200221735904263039187298952788298401593368664263231880077242841795955173276150645575977551710901339183918981741303868546224296756152676500653941087401273295626392959538048299887798358693299365211675085589243470744075453857327412379142514955402508415485351649022773419697674991591428375815646724221152770851325586164573101846291170748469788298554389992032780326601822256910176508425482081579983749082461688585804196428329814089845082489843829737404644628974719250845942553384319929997816013015598679652934373375414417844361285815886660057179020094468150946173780376384749130518870510217495410415490726530388736849657654863733447037291289049217007646647725762421274476238274963420144022609373625789497553655683205579976195145315695597228624495247202584574574829473079037898387102999978459717222450544884087544514853597072252498397778315119404987224983015749916283277500938546073154461677974831645939322302004678323154694623982797235359774087468287337484164751354231274417973744929777093268581611993934691659235604156506667540346923011595390952307275761832248314403729483892940753716612887137889512999077106720653993428207102431736694480983862383395720251568995898424666077019603104640718208318904712879941163064289971632065990392637743887384521200088599585012332685897132529430662729274191235609623494630082739250535540919784784309469742990180900184567117164039910250780575786999567298057584053555313367158579884563448827479860152987663989743650206470020146029552740012447254643742673700274788430003004782144363706223492742269497767174073684746543686304324314074613075229542952988499594850453706154165071114671190344295032267414690836613153964477389480934070262517237395110904212560190946284017820870740659556169640338263211901465239564173533806800256928708124026596740755937119473529441346348458629682686103861758823467940758844241721097518695088380590340688791358314475398033235615291171108087164651476218996798944191756392536562626617073218958708172325222539003592080773465533286113108603422885919107553293043132043933138110918655468894963246685487728794719374654872955419095221985103488455847346416760969323402569980084058522348792677970991775071053214069436244275282365214977996968359333481563610832458859489965171353310851100988031445484264566564025643920289262790540763580941050888529895823700204038927511651963837883374988902853131574201904265951710686293089714279798467660799710292270253979416279973700499445318478614781587046788552179852655894872217284237696783995782133782079223865760759889116032523463033721092620709269729987141660840125137945351758369206040551431631935281684609874734716056842225315318904818234168247873033898202470238645280058596464753809519784445596237080711408573710331871125722369160059737199446320588517343002833122850680844177059036256197781374942985704965368867614398300482801476501648998446900184855199832315152075784368007635337590323116983288169090604011044415217753853385325445065671199208101341119588150676402062305680143116866940427013115473877124286930001580012371828322687926140773470280617317199714661611419692303244358784516658424942767498740760040646030834703701545499266713308147864446092381440031459403151252918091307336456331097183550425944122191929025432296420992505064210271295572873422173694530161323020598222450030831433179655044112847104314040124223512584708171286962712333465601525618168252983437758369185341118861713904715163523935757494062182125134802675763012267703823871861390722063677806662266336961761372855274857384231323982143360170299811932616038113218502575966443225540680606257133326619505297230800130863576117606127805934158013378157600833336767807234032119422654830095637656630439377636375762394212519978388378998888565408803203574972391764640194091980382726565009423079957490404616445684963119186956287947827154401240583705759357236093969771879925635923144502294560330252157457348476858546534498670474472594994618583505158980929899314768937427559893526863572118709263879124582898517115373661799723036653847467183484057323334897868048879134516045248205917352825579276424960201674019846071751672832782664868032687657830704959416155764528597336933350524134857869916951386588018550782798685489143004175455277202501215638457697967716281774207251826518302858192943055280952202041808917104132693422920045778639294782262908155929924679503735617750493249936234496325665735424347457930195572372672238324807967731878511291667638554188091734650654917604577063257762549699465269572516028252077237531144851561693070995838868854551889114401870609718496354745465592431100316460541159732174022968174060146474440009629682331575572036993721807347470372285172509170565748582028981643858005025822026377004322111397917856464527776606007997886313135866742485466809181232691438995461823806004848963207376538203116813115708968830781288277100454073299029868674177811210003979190726767172589466305845240856651923862991370792959963730381457888463057951091401385795234836613664609032873214646121234671784610551439717202485583700522862265913005579718557329483302137724305850827983101536681165531447076084566680516941916111367287482404465446700297546288453538114291565113737266872489273993112136069961279857870366991102820847457538973058348588305734897180673723875996144784033868994635556381315834330400804382421802535007576200323943574779773850454135469970115771849978823437589084627307371274062666377843298596064642631656297878849147696807503946694487869828674458911486161959145281193909636249933875900400465105496698055355020424223361099262363239781723243281131829754941259250944202054445152153782083187257605527156662104120298808658032585398796019830729074045332474566161611240391345716505738003266622831367055532472869086590074802895984611689269998539284799862805896261820746221309728493402720772460759018110642671933549136052746504942183199641907176839566667064190482169811962260606487006432442576464740883407410303184947586148860394669909154223649532933850236053997624054949950111407700438759601901876532393128084075090831096210083214726412907341543190943683960431696645657119013130005213930922111021854510215103511885458375132372860092323028064525721463051694621117787344124795691141902072734302712310173649890811542649450348727714531533036572896123632520389050061019233855216979134932394376419231156549896192852501598948352632295751866259303004770298586436289172722857411348295483266557525324232921377876182764994676944152902774007253109565959181843768030125715522818785135752698826879643534510225483595373273163757535885799091020297439521329702457894295024820005621566012217465951879354837280336767833411525143689968985343396641945052398404761997109021908793523031583862071166801101108569254288123804061208696176853329873584185034987262738993166725906274231099735901266010276209459934824602354352003250399440052982159591539212983555314856844202483011873419809073370847308737536378006149069796337653006535182372739508043138705988014040565669771712318355035856188189957487281965000617979553465878898622370558211764272446097999900683021467654400070512419910844236109282990000432762177149721925341307531919503095507100350124260593975839219601026905975170151580130510800363496683638028593820423838734899616421325437836097192926562557723657972130475027236013712254961352813656147970822241185095835329412854523723028857144262179231734484556156108818342817566136727391081571537647312287398729632229728707121336342632837460118708373525606837169634176642771718159257686834664355475770477446220441652214573245273750276230699350664930336331419103876404593750209375357501612400812268713719156449474347243886116519159941481116914864067046469575537854016248662569298948748131876661427979039050226326323826006464659061915156143391343601148019525956378567260254371766529331007778463618451363304275674993585769077869817812468232806535708242046382116589691769997116026762015062159363620716083046197888738626945081908661403922599371679069461071187414041609986482659812951024503056781046141742643347450891579296798833922925752673480194211213547173220642800201427560197695364334256097952416457258283467300434035690289878571527714215058130799044931875915136129122113276618092642471376152157539972448723318566395117855042613686631008444775787519192660975968970979244955980228441307086072486710681536173942856044153721235983011399734401998057189658811205449812161279009044782635410289216938603710676177404709768949884188373466161065121233631864623888555767060050936270380602219674129773088467301002425491366251816405956062602473325514370279390695649790036249664794540238330113312542549754266997683307523397612551596186023461211354623761307858516872663303244321983278185549328083591278994792500737804289407872428782182148673380702417049528302388676786038905266137296054092641852839499949916686998044753185092333379180082050798131902635012028832077700305317784348900704248434608561305331451566592329631393009144305822932414272219471804456308929995343038523133136980222648784748190217894362027357096612687914942439924649586757014886208848779211387352599646186765537583261435370224096358497219536867389073101430333038697921472666967850368152825255263564125586217196257105185672195961581570442299932476498558760028653554503836128043158432552535441129119962364763956348592998725787657112751715555787385752501987323163827846626040857715254652386532545641510151350776953813553086063715337805046594572025578087707920556229654400034203986563825745734773040254765461123571793755347146895895243018470473628083039249472873224859211627090772490197296362317858145789892748895916886809218546593963325144172294939691690127944964956491190298387941863631650504202382688132705306001142243013326191309778512033014836899164322090555565272088588356085640852802123308154984658877481778442062235309559946460706364518683306783918141952464074652484316553744630883556710495007272294756584832223434369302169174287575181896237015381740822029584384798389432240874020137286264091050987749201929556971514469166307799293203054064507699404861249210526490175283445936406720935698158113408519885987601893924555484821119742535826306918722285425671846964691692698502642489715986361971581961354583976946266973999783121802216697607494987059275945332770412626908703992822710808494377242304344371601176062500085935617205905599141852608645392527278895953109906941213434828109020666729584366225555863756729843949864728496934017967247451497171489066660901192100693441293164445946119220484061711589860129641795575128697912988782226759931529133477106714147313281701590593737690226064904635460397634323527868103894534294829616889115067227748013994365139043977473090814240406257068523002358980672027315658843752630852378489616518554858349314188900858286950537030107670297658912914236804117557691299053404320515866562732159050728048266190606097831560520657154307136204935589745953987910631897241464003984450050886507838213698448254839728387148556101465160788841636391476402325699225800369818701784210430057807277401405717535797974413409315527777940933881808855226015336650271707941119729052137496102836679238770924407245183504599167275908727707583785252376027901569516145338414523740621518263223503473328082216241529955778616283522262876466051025957994470327217460633430133899019911276192532563211146355403960735820470825997013910175747591479715492130009866377338490688765021007002707145103866437664006009166157448438947923926172993266231196692298720032327640442258519174698957225811214454971201773598933778436381394881733562962104219967148904053866110978010183749212043071174494992666733522200815412102779789843839647787149443843890907254392919139105852667933220614547817764605993484047851594516971711553085200692746127441502324068450303417234127319744879376069281610221994025294321182964821478416784852682622123720838479878256786039696573702535366790685573407119300072845007295261882457425328162223023754848096184239270282039021831776470190686807978295766797763178066000153961408469547390206753073640755346353425962900711997721988553812641031289216458517883408711388755266677288568823993536916992421998687977953899385706003452623694384102271967926453969230473825968145219658248393857230790730650420228932962582577943067929974280155621907629501482885814557516470968848348761506455461597401423210823709489518848152767850370122787057779739672106325842074270214201639050586200770981097569550984511257198913227366599074146968183064866559897802366990127337768254708620631899092215355368688763809590531081150631244158181576315236153467740678115462076620029964460695970338797079861520619500644397084562610632352850942230486933280126196984477527535902341100273073685750087305877191854336197567301157680411591861069178823556041420176517303869248139510076322891554662610116606000430819509528805072886197076009634074121805210623391104412853631402983370591438229980960385987316055687437822587913233567689237235533637541689019884692952242145381876933764181254046546648242453934517551352874417501332040330298820004589478023845812447011384103974744282441543324651764261433558545094746458629401094379487796249210097513062711494382941951097911985589032425145906779040674324446635014574228720992072693092364815798334661086227412522580993213889133579654111209062618367546323860801151908827507252022153790477363601687226906453612829628425907609300589026954897275314958544781846673168986846489191750846254060683354522950467205619104650360551904163967201972947070069521560214814573144885449585058617473230748078265653995454127994302744945064213785599004312284528050419910465738607394639176860078772014951365567884923994019136493369941217123888348316990928044488293602272557653111430181174108748990918346775068792981043135390931465227861599290699937932608393858816927006734341050430334363632586712867000843059725566581439056398016126209969348962021189286368622045530129849127395083446354772675523678363470729483027915789269127853414704058144429860424339142690156033739741447973928436398068509808926103183243998267780118960905855426870876107357139490739112785544233959115426990151002322520927666110071778526382154618099069609233891088222162822869759832092347615028886700751452729854655294154182763737990796894564578550920183160168500032006329700357358058207589439356274825510472418835560866435891745332359841516222042732462148226811483025712027744534783956386499111641449190994288851549310103636632694275951679803644153023903453739020134013712648894954982821861921501432077392608440015935763206729369247506125023967735822965190750658753306764510273201020939059886489593616041763918485682165192346110547121756845451343496628699704773233156533745334243762886445927485976929442473923637516557159604517772558507007780951898849906123990799564438415533499217299329276608457404228070243508799191776927056593980343224391657264847533194400699161166396479853690594750982189958221805100266533186143670619958299761949033943039309499165915936838331075417672392804008663517223046205827908953723977011853825069884736507242082036148153355069778433666442256117727570011420847468890061510602185058020583275923597137462410463337920860863649914712206776169508341659608887252764905564118699027301069884220894292926622331965383726005891331611480751725373886361317661916836074227073603377286373399947564028576422625563943060196286769920432837557543950429901192024780917461634788494277616542332477774659036005875322179251672711277426718126308091064578868997041766512954546935714743923208355638693421887698161363283180487572196439268662537274756543772092194002948510266905327688733098371428627111300753193628513381675808772842196811967366214437583443041388572005192066039398332971344541974664269197691262464313370884923773742141946077463825079020868815783071854771327491074029776056629244494583545091799057162282883630016522594724188921605254158705511655972565764909071827605450849031759214380376070421999806203062052570276054707283792599517215313771076148612429847492815996383710389076508788021671285991182610194152589977593879888607077090382668047331672901467236972546294307841252817989692391650883200879154617404235718237045107099346698657380609387956501367460180197936184886016449427415277046586097597098227265433676327474557393953779716173525576998880411510774563095257964837629731020209103506846550925295136413083805918232964763068366571676813207329502525784911307140369863550819783051996535930147306833362994652566565046956619042219779908323998944875965432846355585605588696036595245871726120686843974512968901951252044643268263352400804846540077793560243140000002568302537625554640328782272831797668720817579918033227692305804970485792409834345468578499145113101331905128200015105409220843062464375612665828792487561057787671556868039526536690688702574338749683714264875178121487716703795871434689909286698132352431874005365574501343421003911164527868653515790723551001390392831418436101245936254993219783428419353165357160247224603469489761044104095723069786804130304568711144232619572614506317620070175254708114551882000532486500582136950791788939403844253730480789543603408724960541201834071890199941011202425430501759791185428339072395594654415457407465708125429184026398478178991225823423980351426620850640758216929554076622168366457635902047949158668581629351101208829458827353689921427125568839225485225689900079155828735716545145549335174409737936521329199797294934133195203333967074689716594062331328000726493831655179323139683809018316490401550093937989270712912547251651651639964356286530328424854377578619222908062427887365492480010246351552753399768111826282209972075060144726651249655920728186267363099099602054216154961777587988553043506026071839739618009740864484424198508792583590103152971894728071431579666924032886227141063080083725847821613660945752762796742128828004245594752974067189097342647680098484623440340531172333713656246867249230949660390372269944085735093130396420414737481501204417979762049200445976996758070255564252764463725187110140390976615773414174614196351609007270465161182956971396958987855686489640811412834627812252106253070088410468304711522724344925699705753782101556949285301124506179786617511424693101881188850386212501504827664852695492793064757950136441572244202546511537981203063312664051392863941605290312199895245408403707100101558201625380528417380084171883633484624071901619610617298899232619007554396573082858859777272354307383507264502920156692458480530607593245521726365744692998120873259951675513492273416945864983688446219865573523659479503532972538987311882936705623310000003205455932583170417012079435177055951515734884524104256395722718571932822799029932865974648706878515184878951247040402617691410745815332704592753365526759726708231313079069825010517051638253699791061855200923081963620072686002944817583831619950010406029680438907388229262106486365074431367093857549201205722460990106047687915456724085817681792965331691721541819646590515796037611186936908664334164966867317910239340973921789905038618545982814833492446316157214733866577121006019457274429195930792762519010081329010495409526649776662047977958082153980902668045334185794713534212606431477496750341327225480775109691845329786708366223374958150647914462472859200494102693649000955338516987045344134329931452570851916935972198643522420206117678853169932862274142264141645814323004357504212403232153645746233062613820300100601999627079811337075340607232657156827791258424295393039062234475526192074341935569243259780334272113441506678559574649929459608906086467939260790082682317197781046654252817093746645022354496543570128774222963870011263775627470015456525614324019389819383329428768423500727029978874799417245409902603483119052997331919849542743041399517850030213675423406524800089989131305915106307030442631845815717017783251058426077252176355138575213849523260798175047236807283560326405583041959109316531400604071275587930095824773087323018247489182169267738175047154518009073038638023246940310508984521842939474367582850085390885063367198823894457748013752815056713028219527166340449611973728455069951221042739299607421417616727188548750396765675588650687767813529943769410715733158744244451571980652814794428508832057766468457783327306479946463074249395076375387816018669770396003196344042493631656847752972638078627377670944341886101431765421288973209175124969238227978369718580226527375627868356347436683222685115040260360012080406648396818120764739212228808367864075261651877353622970012340908428267712226113578627653167649452132427515796976366692503505250830484312437125772373211181757428413826241148386741255988146075029204879167571113626200506244464560965907599192343256007857527300602999227254462351416277107781826159461088337921808290578342452514424983721925969122501000325671590679135065844559561015841514334310839876431692124665190084037499881433851928452249225815522767946524149455059041421292729240478462879774597455869719111338781339402621409236406309426771070695996603706491199230731662090747771121470804232738062929775160008776815562837226403526656029331827087977843750620782599856487091376351840174522716953619963591445130513583289107082814949512926989128825843892696585986519268735217046340377086352799948510153194339009616470298535398845927945088398025416465189529741461308727763162777991498522300206443261026018316849869040818209555335094283545680701375907742562401099505950355675149642496911239077295431680130700511094746383872542839758737884499213787119614362504754197238988972655727608758063583167472828516872229222356654134805258636458893882643542583638333028162261851533730081977746735777637450349973685043699171955938029865015768873881999653543909647437904753445018397924455733508486922430899232274085640700666587791075648708094454133827089287799400050097788614394870702996326787132698125095754025831290130259823402309513659499842310301282708511790734169565559591956475464448432405875143934188418198718221931859112019480212983031373777124511986433436689225486616341682419551653957000903438581447098735488417144650047657452497180911176746589888637955115868565760476243259143642378741682888166478881662284663424381488171529719787979264492637897552808658570967156704366166555256944873382638914030378055238344776163374661400254125331523350107281406133334836218385042338918615008572636622485479308319547108648005994422157634983776498869562521758514586793890732332730876173032088126868842003742295179534457266182814539608122873577285038045508246751414321982169151485263863988775809122668087479400690554891769236822013699845216791660550693694362887586089485726650350271534972837027465705440157987586527865501561926647661255338681429017609580251008066015104966526982810698128785006368059817262397843868207811801310919274801599386614288076417013962154911899556869849746159829629232603934123747734891685451414049128407730669636983803742852759253647884706282230048938336372112330799419901682407844630283739641837388929636828987222691469456602740991799996407140785215344362541829370294280581690858242324934891737469876750100504467706922999782629894693073681612686975067732517404565014103253891498162469148639818549376589961403448872909293450885974563067340170614192098340019818898990918247513419648650847282625949886577079133552816317218690136543531452190644442757147331249228117248385337403934244589924367837475410770636023448512635649674204136020182281058984624178101350247821333078724289188365620393978927538042910847987212634783397739225321833329655336795440873212998540410458776148247115222446202464289094911970142756336548134649431598943092538257327155541080697932064998588303090505882718174598110333130943945018333509352373561902650202487275283008354053205478004234831165712202015055784380235609443144518889273604260640361504686474273392472073568749916461567911654246767036236178456084944212609913535316279395715763212860409812417552994223539263172294650594612207684452546216803229031707395264604091150314732869454491884923010922269893270785920171657014205740245546624941064233295232357399067107140523509758565640395017377424983246032927566562443545045726014499651588180809259475716499093563104460335226899859867455541598058494009535295072122000002472048674367399389776870310550928000035104650169855431071286481127845625942159512184522371451076400372382627174539898831644964881911457860469093673080142849217471399741641528528075118629854144486336061543395222982455908517347669506144617345469972162997835587245625777998097038159474252007840783921347263694861657401604262887772108997061638703161815897796743855715896930209187005495107734529386214662456700930931621596909214479536201110727658959404469749234210168363225345893224026046325435623016632448181943567526326666325779176973136960567171823346689022123951687258205354780421733989476205409495768540309108095722660382545002805442325136768486515773039439190960395551320104336819663579681533422489097417311105550925269064469966225695688371090755249749259008094053669039701158304595747563219421375495858084467651336615140524279651261318946726618991188190691792831883463138312157555559924769487373970025574461993905652469467997701520763971296753095308684861213087085760493095364883487248215308539488530925523036789868998934683667767231385365312784553501090550890355528919752134228501801662531220436719081890534309064203375753882535968936661937137626431332309618020450517505464280960609978992660477865252296894615897268363089307338871709052396145498856124333925150243986805456238522748586090926413400308616975717745035709056176834983344671352015075046524948074955947221800844018684322287582938139363419160649217465946855296016802427675764623422553316415310584642396802762324936136183081193117460830427498132061546694850014885555932927226097481999255131269426491003497490746441686786758296043923167528748586912527918205474900623564928096438550862133104926258923893127368587163725218882321015997712054900091386892678047315070809382197588868711283736339631353318162214161212514112788179455369500741997139714316399984948354502119643123708244622341735293539916196906727311099983571640574366584797733044513398627386785524322972442719119247347710060864517556028452975917582298667304698000166017074097872220038890716429614589748416567920714893701225174487661250436288068905618414585976974377132997592377715091043930014551007868968638881427562292103274077203963589132342217256947022507333353312720544919042576799236852298479313359779358120562085208738452032263936283919761619254732444473748340033526975461978933666366631241092132236777445955881880107348574001018104626356102440201467410182897566647083891562694946728029660136638426521136818188508746077929855414133710252841293526749395582780918837211327377908363543755538267475279789518941234909217267595488215980108797013940365615972314349018502943353807202450972638026474512701666234269556240716243305800173995349980970132591027974933775609460691739204059792088297665320001981064549537702662411777635076129452781632576327027878897227754413286097899457278482975739397018441339980488306256948398454151004773676393421752427316108782717745190225870299025258925382027467543028580094762224195339111369038512043839682387307089224745316590633295811646165340577816478159233639636054057149983202791542471265159109646028515719679261897275678104510444482215307970441194371927273725642310713312516624978215317835961883611058375680671238593460040810477908382302851048729667555699997871733461929376768040865099276844276796009617104049614650523288202230136540437572688326065820460547259009582332744248682328301850488563838770754947677982391004877967262847387145333199242290925724726465834874908867154026298157154332049399895215792835569969986423551856478746912562326353767697723668486544441042523704323528378998219160148009411511526877664411498948171883115881555301928819365500739459443654583305789479657681177706046379722402932214414879595200296217891915629480762234471238418213120002611787353242298398147599955552650861859053677738666639075235989735332616369506592213233394806928564566290191158175565508047550266454809381322058611900356169224658880057037892921956958645744811286776827582320160948566035082594068816802165007871735480968384051207324009500584619196680142896880784685372111102531532448036557870723416440831090360651068332690350686481924362072868027875215455988395325585256434443166390743831300100555000277889655993602846108392682790220496866263145345677257609793809940450519401280994039460540548916873695883540178836719905911548396547922291479182383694994539094155917802253674984653987957794013483319883032390026777764158525231147834272361011051495232656072459769622280823384537316541646929607492630377080090570540663595923098234424363090991344303237694413722145572755341258652427944783916294892014595360124900011418405095264490564473887894915535282912668695648324230562948368728911428145184086700789961164999524053794377080092347828189712774230919544515325840018579848738912287693880622413144372512947586540558192435605272953882506156404977878196786626102240473429313342251075856672861233189350784125200837899060002876216906251226620306607885695233739777328647140919528997461067534835110332274839029032929810426644166941647566905244116937426044035450077847475650206970456859744605461935498126766131423114525973627833265067707075420316242411215082123909399241538723065754884843206177985029122221700894447020216586849722603804564512345448873026490182087120973368414747067210974403765421242181358956836398738404961042465110140543184398326800379397233090845754365411915470716214173697189369316371273335754661320853127313163151271078810657888925305173735480795534548577765054891845931025262549919199731387362641390479355723769742803356074684043316582781014115519610684331250088522558542057437544956687815020134939866116392579936986557161277496840169867531709899662047051160485713836226922570956267283232854562237346465237374266642632762888559876149637402773178742632109856125299796592201254142391488434541701197756509079592722202202185947115016943194810895704150428253325907906571295072007099791565983640899986217850199585211902729386040306196060880750348035190382346358753706122002300281700719370823650861175531708685977974470341695331869707218202795238733885295197257704911658033804898074074925504774854087030975766763755475351322903735110839468319912228415224092022924781199648140307013324256688755539267499361330638338157002298167078589312748258861062463022689833883560829495664050566960209378960750999421075048221131397197252723523360993212655331518745267158295052982520621139221735778664229618882967985185700326119720874288025209778710703626036127281358766493663305124539800355525067776723611683423358863136593761451352760321023971392550396765705793454066942443489920374040178809749324219439243681727881271743799866476761910713221706990764871456141821405457104280831768796760857418945167151089680625303455208674356715734065507160804052460540714757763286007385346309289428747283318494343909994833677724193127967682813534062134251758751348878169514354795694646441769786854269301165214380535795710223449849944203031108492609085862173928340186871533837723257477228967221316645539565490943736847628239466359790420992968324671912003409946410440791775179680682291428119038077449359288675549727473394086646945684688616467047785978941486969757373142571056537007770647510309389371575917637816638790095004176567741181021792266925719966490933233327080375326006754858605812726127735480615154367381367960194423972601683140418516127558886726541872601406235615457651628004436948186494584246139346471799106367774815472433874783767737719360808046512067445577005807621412435813024517033247058612269342298502216194456288342036075213281517660382380137940579822886997284446648512054529751186811696133468811537902271244479428318981686987497421656801047642843128623484320794801628080264786175579198543942588291157471192260982911422323128872807269383926936022078793574463001195319512809236013213911886068819026209598391105411715278214881369753674493560585201090734201110243854507880616697997036623854075168695365571208037036992589844392795216497215011392209009491729425747159507908148528956861411552744726350803451820408530235366639457023286049958380898696332281437294592781710725614303465432738686601186616754355725859873514857497456110688300491524981824328262387033403123234741725653664692776526937990013658676221727093821317501152322870540470874693050451909369934027002844540086330021053279131649217307510941718291496890695816836476202982596820234618194131213656107634441755158355414510649036225488110855040081050179433204170972691145079407315391200843372669826372703015751930278581436825025766139708239599066815773336918650573231308774723485469876709264736657235638656162771676734870534941047457934141006671299011027415691767284404510953376481088528276633560074448462274123498358958170845478457681707795021608531503190354008651455344615535879136734494898480225100519151178054580163136257734368211297681778006742488616944495621349661208725690653931867563943052348200722713862795766672834018834074310070926649290923630476288766867855868128405889518935685705929129037585406863706573205778353113914331210982562375173360824927522138734640925709540411713871139037057570754318455655240730796636108838693270499986225245310229334528257312811166519885839430201052815372768521738408035760103747343437114065028481118564489296838094615165393034859599002084520301496220630386387408153498186893775439459930436277277519022588767053987637687351945706149478295698887434719649761927663870889965770621722560983676130062734728112465724521771221239831998761439912953880978763507774305899330625857048712132532980975948368025119323323820221095299710306322413848025718162093413560026763033363449713696352948562817004419311509289871218499579085443512328413887206175643354048591693011631461683380150624343398080917694262989539524555519938003386238200572608011040962124102038186121825975896203487535257957957539338710369924090927789033432546946584972456580134966813556277030891461740257424217860099488834377843940586318493191352364558178886657265192506086344238192056007116634414772253842674235428473394477790946632135663400134250244227653505597102028928830566855045690423601286173861333087320930746160434849191908032479027333433784354975083616352576576677470117938873560720367882907684745479175642056635686881374682733070095735911573679277826552186557236159401937898683266166550933883905679413147084979225846709661885269619928234208696553871886660378567478785188750235424110923062466391057601995370008827657086553499073328921635189267084866375241897102154496078545744739157621605642802154902627508642274732729001436380306952146474351248560888241738800390162250873230034864619268559196659086894397997572052245741482746781703532483865182137726195454480989689768068200740626348500445078592218864950189460727475685150616031362222364467249341975694899238908067121906352074749164576411914727675024245697635337655652227425867824922205455802781522735063754168747297460097866266705329418339988360143068419934775950046124172266145272138777170224563912759306941447744974188939151326163057515429834614627812861755454450755780762134930525593876055821386075908712785380272967865784044365964164094242540688657445069767507290229021344219396712255434076123874416954125299917862429311365715567818464613288839724167552833645162854632037569372191609184315765707022551787944836128398832505061011868815571703458492058983834498339042467555114890386741365138407257771182983555791837185887528976697866702243852663750204824898149660756093214315249657695172797518724382267925222764843929980884904858255634751950295700804020370646382400833859807932248886191884278513824835211962694429796132723746533156144268389766310277756247998026935947460317941056926117877137884620388415948620851207730202910628587793968295164050594055133179586946882867471239438503832811456069993493712020068864761933178163052749642988203934586179942193783463512044962417999990624450926452198618193531157902645146491700005798529486296850455451956403428644163191201739695245241733360782034585480259914453874289159807850109141456958416112202341394928731292925113291295500792238577408218280876235053641087066987130191150976682181875223663284023964623580399469814452854687599073405509449910107100545900720943054454921889784654381518075489718932990255665727685815115589339734483948072013352750447161385412433896904972406304323049314309690813083444358420039138213777551828289132637294469100593642016830202761801009502345934749270211057678457646376352444338545926322491529773917624891703779521631702316907796147828777261975007836608433693110550838476940488445974538418030078363117477400972740907331779517819536947066241516956784025518299242026546196970667572712851691563926335633492645027687936110171412016087455906371901010766059407229309079573403569774912745584631855786451843070408609945655830589487761460368822243836865773435168442110731164132546867174863534449936546058907765489820867304144060049538477138793397411031534457537501529836600399360848119339977287985835209079711958744807842523342781316497885403711952270678855844454005819606829291746298110541434198523640963672732301170295170991463321570720267654408922008264028863668535904102267340973768903653882451930007158963494179874886887909600436433984748000271855272197763625096001893342364405248932369149688331716617652296793524823285795245281946388751128513548702432751784596863166433640257885376268894275226147624393263978034520090183274041523162789854568924270519987328415071424829459556711998046526573031245724127790554823431702522114288550434487853643855214260146987812473937673233390040183950864650655410080312649824603879128659497310199564507245636439462712615925376593615980159495331634433285735941588763361908810465933657343422631920496743436702406881091401742834338176827460298757844203238348666311479093835269982506338070317595687575653955324561914303769135599558819394783507653996247532316028933696932797038234626626171258815898310924853688897941893412970863387230334949139040503401612506552644529270259333136282181401933238465213897833550903815684060584023187112678729468074611211309089215825805035728113755977715769946094626047117481426708128815697951450382518569474352159246430058582683825022459018630782156210407514314959451142195933838672647979748014487663691059152049575192496744076835577903123251845846650461093448252574067141025380573016111971486782693942153928479987707118679148210897401428622173909201032425413834526700167562721301857994599621950864331097115004180084432207570435025068053061588603314080354293564623439929503705450295038538067009284556116518635023121870207939336485704865665464034228675999937517944507520455854524384962323563413163841187744850748715133231237991088958342974684406019571237920445562950315412703395846093473445394970420173286530303780709528024331439629006607654492685525120313528640020513852287841093263165717912506074818378248904775000680172389362998071273175659441105820402723740694676235216245436966367509575527082982610875470374225588230895616899339762239551573107959077607049302375380713359840924246713153430001469803730228468033397587187631086021904057301654335880286523905818671887177564917561651879367909041274873117255672025349365376629866951430639155821734026605305250439927926005646741292670121587104542107255752715407608607428458683985037810292679267961570632911609062563090518346379008115793007766374044797720001071030799165290971192222384922768139789646747996426973366389086315868938769295379697249312532223573838848502663409195169221664786254790316124573772716089242785784496014083521644679231446800688011735577565349274209636148929764390259413017217398123548467915174093901776557214088254059704759205356830622240252232177265100050012421783042732868316581540379083829299689841950745108330920669893034875124166726708982077766474249830819942762897170367906941191106181462457831730841344736321238610906028310235159900854137990275040398105560420487853401802106643683333302551976384058883031618744733606026600601710749418856108146364240632578413261647623531341124549554031144754785041952196831710005092188888199383493899641622582605795648110163099430179389129350873668614380191104428318566712740517186670992141607565338568622672517780374146295654289051626935705879895662518302498693369598606474699953727507716847669819045572558928441536066388256430508370884019522014908669394019146696959750931415512289757774193741188263200567152364315104846724950191180860117031997416301085695562592326203608662903072175545328861497115995604139415804720966822189400923933202978075796291257161151638833168807166805095207949559439614255334436468039571256584728301607454988379596615049507184113966140099321208355638062206107911243387512435232919974864984527444322368764447714020812395426104399515175306140633987397914729078907974865483085862502091740081363856101567300687133916232676994153140250820691194888984373305414524901859033732224067021454876894627868243912041415552669203347192699359499351332254873804778852101215730661811735705758340273153520619350019900736891612851058229799087696366748529175930381530551966417432524334216787408213875266622257828469054618860738078931196960787443557880795813671330990636082474950493530676073003459723957025260044827708025668558516841229784996415977360991697735992565773317838695153187938991449149594686486133385317887421671226952939298636241196461561155482086129612446333233526385747103795336145208762261791385103677347637665054127667113410224795961571281734377300585912599088221658297936887909155953803553272175456941067240645825818157215757634231539340274728163495492596432403570190621833341595311439416967617805749271596048147993802303260363456555898912732161843769031558712979723954696978346533504360309709581648360123454764443063858320306521456706249070935584175640999918687946893654172220070068102090598190100126357978344479003277831216160867918300611938839270587121997497947853383031726859244279780227442129264785838749053099446305754464242647375516232718340098157146979081933995262303267579641346789276475443330316554678804714685382868064533707092975501892100302793691812349655701955648704053038588362760914009082642905676273132645229595673831925553881762118750022930979940352256249546165503360061463293865793830162909866563992816438172666915139363669756906865824883336271788656316160089793819574849382348202346444757003650093056741257211254023847795661268778048968962131235655449980141755205904031479565122810807296089892039499469534352991187981391712251418580176539473085548495231728245073893739368513546292888166042513737230016897552173844780166710478336749208548862924699651880669919313447650885431007852127022822124039923669866574239964960991679394776098017884889557022866211184278881459374813998057082601122347168260336771496026163824923352046204539728737658540792749588840216658997030448000490088526303521910826806156619338792496731442361451628987906572965971091398960788320275689420886085366333308795732887821399335485034931968688853657112507338743006835722674394447461268951767762179130952476763482799268168205379252520119930077234268740387351820624757623622256397596563025180443571348326319340595100396921166175533206023140269226218176896624069994296727887594543385851102805836909273959654093209746170547073709031163658941155952942578830735819961555461715655775485189103279786625212107869075467892482099794412321906982878510865080511296601375207136527035455346054108637997301205442914412500087049792925549431288717155374295191076372799779051071432045773902547811889524745753705076872791654566005051061858063812412573793633073617897111434240659151667305387885045022296958947019437692512802144979342362399654710949068150778329772924121069611103757811444472226136524882328340622949173555602842379077994482924908051652145689026105234076729693284778903676957632050415061651742298692645738439785039535285829109607091745447807305039959910221211310833727902963745943124207515592327306308410324718641986722818981379124149467115995538172295225221602430338997135914554822094958098059205735517441789157870430973972825718004334360542655852243011005865781746878398575554114974027191721723998112331034399095166961575522299501744296120615355824516014509393778037396996663227001699937697074942729069718515218611241317314310439420162950703008408320424801711535863858987217358959051704479802385761983124759736931329275856855186575454930498395592985435574019161078410837803036361339080173612387873968521861724189416287039651551071697917713892589765110499698123241189987562608233898498556462285977092332899659460077825018013958915830373374422448449650410496098719321339437128204052864524086895647695671462684749368169262981627158272900552992645860955745969070972496257675703097489019338129617249565764374406399041422682804621548998254419600790924634325700344786303581678548819215079613125720726117805579000722847142176765977078162949075907939587357791748841683080950724404609344398876693808389011924510641643097348808457530671007639479246558884983595547275346138781619807499586291481436057673418620292917764112183580427332202403693642633962170750507549722270643355188756421723215396146312125458497581994621137480057451227701397221168024034769025263458397556580233652472837586391231857615579891008277127871473293533893585464838904764256530304251765731071961509883326041401444574126676195365062160280514205241309436846051216852620872992054672096898592556287432555821829160790032037332259869708875604013969298706290407668026402642104719521020030231326443301167142000106046020839547681375346454623692683732173869369282923030148522265229570198249974810284371938732371097526978009830245302635590888636964226542454125170023831970073986133525804070869033072535293794119001576523750190440080871256119323800916574845100633549780402062580301494200059593919734826302633590467957510977245750541543487099016960103201935193332987296398497761547417010911048214096180497241011304942562446318875238719398423621428899215091431541995839110956922723668004475060323843503640570848295071675505299807201738827873634186031248908872920077079109746662663273823833435715481751165029185733028951392075252471326620522909013208347801443762248737401498795637978605100534096413168603373812302322318301506675350079373682917971857687506554343808224363445732997511664779778973546909980963897606506863892021220915917385539792702556904992276104132114075232255749687152703677425188033662551350654508473905427281238725861943117855244379219079205552660699550169494031952016625120573407353255730715514253230895609726813413567422728549543705181201090920730628493732029056789581933051116627480423238133798919328390844453638562225245734612690093618630179896299696489688944113067670089532406120200650641060241154381920301012909772664927200182145351439715977031930816300077320087978040304442671576047718128707885650657508186196162542662201097636211154936673076973445927199751217893567267391247440230420714833292478801706985439047583108178836855184174178927499465765021748797545919569124627830174318317748767169672225640829602173259714394735051968399589469180854922543417163091653525719934408551245424315214527870367705843597369185162033104021544352106170807191746823274418986458191012726189929145375397914530405103151789291284159161605784954269071819806378043397741955040708273602337953736969465290147709831430589195566703454768747930394521059611342377760823542284122149579156058136222257963981806587721917866419909121803282030406328791757638921281523735751765326332454067105573278387733287873544031614308270962095419161151809490578986319760102607691394438280120665799797869561416444752733998003087948987386071634105006164136048076146355896595874294412673557751756936698100535871889964632462404231429618244338464546034163174191925008094215592324351278047934362352278474018852507289270303435184364372728280627476503629242103975999515760627054986234094645454427034810999681672728005208626666863477386672129069018384212329733359791202463408740994590878891652495916584271112776293598287348089431842010005336583497739471868213166876301285658444292871641346662646126261842894840548493807553070737481759429101145670939470443595236947834823406196099537987632426664142474438362550469253870475256040870773125935754684178859839679821513771025328568558288775049424142018826817025591816859130021096194356122815945640336296725473806092918969843025323388797393623369958050501229003468212203201913464357595905395019280314382778429364797513518797915248449632246063733538950168505819755328395748817375972396778988861688262983353713643853962098453731675459869824272790178849052916982167204522104792501734975865885347452938074784437496016455806969931777643306535824722300757755603928620859803892294514922012265353859306946206769797205195403905292314662531093320192535641923319337087999807693797503572564287766911279074748620207616927883384506369424664565422468212040531615352355106812402189127916141149718626716912223662222867553484551354612629829147841916458089612613286107093045663948432479472820973173667704356178599844265357826695807613304792505105010758413159759722478129163484650176235424054637639820029999410322639188629491765614914016439610985529908991410934244757221276175860749695961798415442592471682961357085659444536611925831048508099397814177269518873293187971627948192515449923577606700115760636577879835030355439769473685047298657880250294065261739168150249850865008957803945900863269881062827278272347624716898848551233525348168406239892181549822761112022654085572487876993672596064818083120023905020409426382176980270478150904259159845816370940280150159955295401768021936637375992549486022222667090158492731075287668070399961595131095476160677332548621517569514961258282639442603980700820934440179288888436983905888917711466074461824766296033812666905868035639997593606665855577638490897646998243378379248110134879515538899116339552350906144136540230457518109021099074128743426356722240985857391889675062006783665845423874271475085212110772365730579333275328938035062905541605449745164874554427887132414747151356833996585694757862695287661045864150506772849606029738397228730250587850365484140150307936119247638055609685952515693486388095056826675810671017571060504017859648023703699230903362449306036738819787038916048045105006444783351785434794836095099854844426346309485437604119029695803554655337986137636912563190862973213703765917030036072057494372092352884775900307700767209617584466081847942567640366837995608064453233587118693766168981909698337024591204705183195996527913712936240362424787563988887057945351105140476677951233294881773060723559520027018109211366088424463373696538087227266072584860351357940878226209225729064253128282192613553785017498461208592494575001736557576859890148398695077147607177934863174288989786244535310435408863987471499257816562862390226370566179792698333634823033164668976644714093554429301268497346567721440699716384056686194215657812869778726191279737514993050200326669085628223730682630889470432830797511499891164877089252708817773997741192134304668300134176507960348333523390922102420451636037765224176197450018971659180748713073162229545172934335338665435656939250923307050337658655766377842546225335624227362784512286997171084506492735097928009719748033162585818829802029995447254436475375394414877547955873321122174278183226657948900204369374921725663398855044527885270980524230581681603441378075603133812762301262941390282063077266496440740005648717294636955783110575308474096644479421540711638621026415469201033048291145453508008682710314085364820363811869678385647894624994272088932233145355975772759182484642747723740726236410290450784153277113607167813712172749078311725296268110745943268113251197203382616754730228838537864126325560567276130853193262975485109367045929518966579009573451919467081778193465788610491879932573800905368142430613518695621716343477730916324008946574274173957933794548103879888966615411514869486437119369198656309132284016157746671410744152784836732784366586093400690580169068483503552995653563836377419160804789132819893540106870900184198476885704086817371659905965579465074988432777810979562398718111920283270754416425575440541180479793169028473849036906607058398416876623680215177100608905914383386898659286380401150807339973560416990392059026085473311716822060242403066534140699373648707582384902647864703571316602144386782419520271790915385179588920339278789989363401531366847305702240374847950819262161358932657717143753929807640196682176815225453188786989743670697129746133675226640316939074348735449996077381835177288150222941671772811006413331142568583027869606870241338013929769584364255902311162051666591135924738315519332119850665878752037658548923910292359624112760875578549448872700155275028354617268379228691616926497483577059151915187344042849492921344874244602179115789752192157848843578649787192915899967629404395478381080226597455745754442229998193935783253835636044666404075466532543488011464268991601014553160999568676437913778172961101113796215643036181890815231816255151538786380334516699553621307933861609984930363570544468857075928336822827903799531059435185824361240595091853976674184781287746542596416640639068647039293683851015440966391604623029356219855653568100963160780571000040366147359619247721708309687342915415412369754165000940580369230465245889022135824691042541214469739924934526322810762888013232403138150446884267039368406262340715737418097040037231463025403893708814379401217853022884370931742569142271183579568397855415088079292772339615937967319451856706694425617516531133437201337563850646524720273435270161960736647314143992030134202797323110266864176165774479757827887317625398596702583748180824815147081375712661030875619908620883806997423654370344659173626151651500260557373804825764106868243824889027765568193243347520753026604053516421175236172836606078640002513899328972909449578580832782593871133276148576402200354316973237887198538805427719748273133810922812580290451054986285140653036337095885367214572500480506380823387258892827517861150861158180501089900492492981235022759273575164547071596179333214442931984084859152829722223022680987156464003759062164267383178359704355786108368806664639276457802373091697009086998640370414655227994578654564447367216765345765582445017445169317053636444926858556625597135778144996807032827911331511987088190886643257053551638264329605321697901319987904293041043844399813201143295944046688577052498707923177924452556022730722303533334127481521557651034618289851788867637828891737032221243261293870673757837807786439616602247748488261997863788274812784543753716222592395160911094144017543046412651292701907611319059499381573377488611834046886031863780096508602845362174110977251227455177468735097505929238209249570328140098116882081827838517468302622222125907466058518547676497374456353092243696703527064187919485236106914108251988945371214743928066384188169776780265862667367626223413856675006929526333271230424956466046765328632922188888450811001864472338347375048476378294583131536435263751016753122805743963357871214253271910929021976235872990616125857781298868538649716527890571857749244815304261717417625028121464992788789316746135153626567299838669053510688188979042080365947286698123703388805317780124092622072274425260449097396911051602378481781499891972034377439780128699758183010656705333387287705337595625406769091510424777598919976259555403902104114467860837610436600918694637406504557691648864435250978894327359742628048672053490444271370181202810118027127307029800947190326367017147204425444966085799464485867547014837776661002368033128443976613253140354983015819682707267254005002599567570359694463994200096030171069516657903962051320320692068226103125128382749899311602591184497204858593970002339861919101625721188091793491817463117321905138266762419798907204757814042950708111365351015999848318434611512522721423120483216596454819850321600412823935833325743355342341470420591458922870104763697662861241149844569862785325577613265378950210806401749806507174898557215340351112918628689820332034104978755716946811734408706815391116927017918392121556168129055987331098005326732449246360645689044935446535985087750949137091414747280156708141475253277996654427432528065940896238004624691916253592468664185971346572049485110935626562278674450722138389913213794920773418229221476528539308749987006661613528840699655210719649573408177322770715405675171742792127992062095423023631982345307292100667949970900455222833705380739514376445836113567582788038525265381545363882619622531238547320831168088357660517233063464117082204855669671482732588383201483887584242400482119481550722718784632261861878537297728369322456212189497775854736437246508308436955236158637971630104212324989995117528037076205607984953679938587026306687334684901127037950702620920965602709515949236538547640111412201461965414073965179718638661773686973127245524859034228041952271877591094630339863089845311925020381795272500679560535524589714813409923613772926527901125514298660495290464785983177250470211452383320500919789583333911635007920550252613227909858759332127595550821943003427418292372957799931965436219662336427780384220592316766441544362178577731787136480087445846817256767885305506961009179188920779307541662048898459542214991888856715210407366663166000058296333733983709215414821254009802958338123847755034256293616334214637925522776650167396837535239078634897042305565590180936339607806474876192876214444828371818940786940420281789045307979221872948874812871091860758851922018354354226502956194318869703557525660194979509591812148926744509034258455201286851373713859284101804720096526542939217740147915535597518033489706329172654803828912618689986626293235973247515981388252692979490942311600285662294809701367832689833573338514581713967848680217327264697416550790217536188702330427269893293911398257577530738381050231619886622426544839673093055886075704329940495713284939383840358228513517773776960108163295931626517565593135549954375730503908145698617491313550648524028089593807143861623079951007405637813591078599854939858577214660033763905814745536346702650016369722363947124258072904891211826559346206517410030354498873593378790278552200213935080913805785876142870410747413906813197204594166925710851276810853524989351708060578224599355570860139052216858701651116711494321270516784889367861448558227121419820274693667803278128532045995147258613415399403975350618054722128760987760538656200786523911792651443230137519593458177937704883625609216848366011181736789375769828462871019588076617296717324150930803145809922756415514352252167616229220084834277608311065589847793002608150552555522227232814227726030156914336491213151450845663338740460566462864930555662228340748364132187319912522266133892267200628200105937585351298335974673777070088046348297546313595611581025719203029867329234545857902651544789147504593584209715479668592843747034912625726363051104766854646226160566169950891787125831263334416233292051545310696537478296266459022161472458731096057526014764504154534949507819228710082318455405578468447704136934699990255641748591640803156751499020683556890993062614485033427024365144199140809741237683373314257022105046820697567227663481218913658289509815963360929764632842673311253654764699839453242940422191717343818383654780699034626202823796668703947720882190392715959988857702568363415513395091591764702596761729387511572078712210413296751523297853759869451221642835397477645732941253728946491592247182281135037698534678210432916665866811426573409847131351311344664167236708458954703518502661329767941884116815834778952311316711749161573810023056976859320184419402849464239665733813545383315082016147927259826016574694231117221058108552483028805243886423473048387391335635279672148972074917146346346902794685414528456410408984629532782213362477242703426611045354176499712421683184791686636355482473431525414338743935482756685339147741271442032063697350550092482789269578214279047706573627090016326775189606184166612944709505766830859296220041385152162397019230328856219395357295676603889392578680223918492617802667890742276097978155499415443063169643863399910876358824441339028616310228098879365365292367124466176117762002019022029963300713548638641317725279909083125432749528242864974962931195953660213852663746751724754114632237879102281430232388599084376288113053224550349699785070677945252186543004143977459492471547802679198215169732239409256780759543078179638313078175368672708265573489254151390369339997134571882662158301519432566361113220739065982767742728370839391226684298857280726726313132455203263213882696711090489761698203570559828420281947731143212282657468232188471666012838933732789847851318985716153516042208948744255948903987537985383619312138038081438845714344036115893350525923496111282435655365519222448305953976075611730076776804552768807210339729704750033706050371472024411651075194325309562526636047153894112940762718445967156305034409240943682600312251508543154526194918426401110711570005602305462999112085342329733930620150134743280772630610344647955422325049348897086060288618479506675741669320494986075369652926583632611270297852775852104261350971509029936312773224305085982347805457637827114805102329198256046788559311859692335483060205261170397077446103586319160111593281927273538139793380547234375853612316265162120800973666868089328437396156671135642313646104147307585435368322119934584423735174927902528810585157076954121279766943032637227693625469289806360100979450018000950619283318782588884213289678052516606247826278959543354635940980168501929687187486749539441479629218631510794809623113297161210603889057708900595257190709470782683854648507392799396309328654769376476732688047944205806850218766767066518902614248276759969311378157259613613023653173338768470001777332622735783197782658733714878377438070273371596416004582087767328452170246085599173874140931685940764788223401800176821885580146369815357904817686490517019582242666678998315108553241778883075552504554886021769907010372155482835266833236872746494012447387433057265013551008681430363273677337757218460530465820481481689179737978733525092326137990438941920783999234012709938249483899800867376830725663158779944521808116505388020175508212866034059435170534570348052080395326423202958216052204598915689626071313034044288068287494050572559962651947469853268533778547257756295983052623899483390652074196960358894184192113461314791563110484549675381157995844810127819984724367776444472062444454392224308666752258765643582027119447363086019869472308792962396396196416957507492530584626553733137203093112161984477451437556396593243702964980732662468245355901600997028440727435860278688900642841367629069564940593502362241038926404815476230212209449888228937001358811987208023034860871755620292356774409347624394925078795831104661886762491562220889630659949091240534053588512825610208454175487887384036590880959670485817379727959682104227998468666223498802157108935792133828716228969934489551339666353498468969593374761436813327975278780178298820265742936801786796476605452584995649696600783366236981372494401796119508648920611957207427538823883596395262502973878350625592642725809489824356634939362680681433983819565613580995330355371997364421559841068043881589869046296321467736075642843689045708855186972508422625857803406911106532375808645403905057867668312215746943043320881305728891634575812164958959119467067993967925269433888542107703151355428963912368001285875503445402983319557207030288407782663264408915937011200656998332138196475407111669040989271616713319632193889696984505037166468269155773484548353740309524848973907349776004026388656227041194647412218851884997251464405893394850365776331155216750539888469550817266157026088829712368363559314129488848767574855694367961060708646727438947823160341381643957998678291731259504789541816928025708528509384203441638556167272559028912227273656836904628357226157314069369535665033931942929542332341714720704560471705105322067723895667815034301887102436398027909372714501721166560004050445743389847367615214264687229669830053345278593006052977239518194692372263845579435256622525177005909511708987799818318087727098542439316666458501334592576692708945509463926328238227832743430178176543852633873707600466914104418213755432554447463442298100137983711887116628820986439464235206074119960966732363442557705855834913238147447319809073384024922402894593681227237847098120514462277357530092678579322831778489791177773630461680721020065350246839431948844866895078590551863459223805983866300791538500406510010447769856996415211438827675101066579078087413769253885513933145443491707524939881134714386060015139813022595207225303222614860665148110937296994665443511859351384843568621827158481661706271548516083419981640185191502735934799946792898877032199243516507660202352579329752418953950259032342681625391479826189372780051247282043920978688164733363490056517726492393742104423489788943738074604336665776155637788865818037836791367368967625207654545498845515106494380164203454570692691456841793685610180772299712987389321492890848065645809556041187908365327590870472471666372689588067392738387569668148034711897818975673003679226318969914907253877164542108546363545730511019690562485487985011435588412738845304543398452473055492759618263922759840090347122533892479918198270368695899420537312906022714345453637029990410334386211219059398460811455890153755800083718047977494127616601669526594556178785328759339013212629300318537091267101680598319681664315843341408671155911248250940774107494406969438816141822745389917181109373896389015397768853787597709023022756761316698332226920718807111856413214922488528380648094424471159892747142964776938416419745153732140096343950237276896632154931355680041943690532162872826238000530448973693613724218958819089269382966191233310167443009148799411927997878060957063787659512816597680060210920157800322884345021702740582428909864216257511501967830061777523673606803712182439444392254800672554659217195127792081695815876164074165433170740709170770621172895850703060733202462879612012968156938173625941973134171472012845170383090994270100401523301669872093882690394155060002472852960790427765552824363626122515744587369723273548969800362780694025931160323623827722478721186946890344636566225041300883336027115123075132706022535589626594208249706045873068341037110594338740235425298728813716848352135575395069717722730478578835659983522271796988554932552905233911423756877617797208816491885096924471030971044410170960115742485366469857549905693390753657745047611178003861296198068804256427020108085187810303099726211325248617232740827118942908217494199841304811026712352331255929916376559483318764549249817680144794402450722427525017411952266256979089913594607027689586456198725122538667135957071066580037504358047638001793918877704453544704606383727798206983337985934750208658672589843575216725297833786742322738922560039359371882203465026983556806931467710122995876875946006251766675198430135789637817191155386878153280816536452288724853608121253093636510862448184777177465556677399915644775955001383377211446724916679725696845982068608129451734353630415486651614301403307114213281020872715905213993297441512600893005955079065730664295551326125924267217713018270179558760913516496198661837810552636966266038094603960999375799964880594800883601247732856879209748814819013086403533056546820210919997069697750304649250370420074100391792004703545994225327550777840747446606878144755187973950936410228710613735714175550572305664566416290946327248804781770717567023578557336823943760095710564021977073336353331526124692130158790387712918031721328234415461570619900150828258927145265332415996383185048789786245721280208569875404778171632731833692756350042997874940061626670340981612209034646798934163243843505134798703608151796375540176854585478451478579633428918403786344251770705856310221917846980072238636295705757790367890035964605982033220157805824904890210435040270695521117240041110651353591047359782602842207589741429334024865018075430006001033047881155742962588120512899407342975237966846291520627012592806297722297978873258688509203271739993106399168454088723609640379218186454593080355429880290639640426985479540093821283256509169393179227905369720493099447641023263902181316260389591070407580645197824273921386848004758103860684163948420463555950710106063200593344139195354670851285616249501002132558296853790512820640008620308580496854895057556900378425672419898869012035349964233306998882462988768144195063531069099583055212082232463159582662098301645128354515551935083815832419319814008765645536568719562112660148075922098528410942266570444883035490320265445792096699899972903350522919912264510342955630204783447447393392264845750562110554592072489084465865898010690195024046273301212675801757148889543180130441045318014348551980100376573113416732063600076406941748792346173658924054604995157778344652328006210089430718523906247931365938596921934393876726281927932919303546416577145622762561512752425750554196514606187156374585587677996991931437420650000927018885850183149217084042434988614926711610686521249946885085960955201576933955395574512167634269502291347402196378313396979460964666728309873207630461747366429962862616556897564618583289686792353983233424779986528542904050748719426559408157694520733939971674026739173690688712938922149191703408220488053454468904269975409695784793249008058529977004082383334227069289441651321166851191895005303072688159790283362525961289214103787351079595368612120259681004589649151554062140938587575683939878585125621279139509249259104775940985221970952572045954845427846199724772596341335079544225736180641668326753620584312175166147611703194174851718037200434959272139687629826033075684458428494609341713429665257726010052253617332766136491200289104904644938088135064321550547336309735118781997987319929982767780485716562291903202572739874028407427653279896144175752748923182057086769381436074744444864575866511528342249650111208259756491143245580797118491370894290512198967386643521962161147061549079200245040803769297308160126632975359655727274971964712110090255849304806566115374740734650350504687805684850596358328674409691281424091528184061975731182527305097224849517180771878058814664625787530463631517768575931974423977285861291961569721945492142177006925546334384661537725022762126461241760844858436278455966547176078384920735377073047100193733188115718796819930843014395233399292048097873694523205891940637291025030964414179117533649669732075508394377630662870145317136301033495841080862456608861395879157542424889942403017071935644806088609391496848158864699795199446724029386290744070650466275334419564529707374297993107036384153973279247391690104480228625861776935716909531888402942620636278645753573005942768480620883197367517609806738215756137873027751577633882971056973015742186046537336850464043737483761184902168534382571622102091404852015541653395732816781548931595440333441427227498844813140501063088227174026809254140511918660738359944153829782049312244843961367811382346217572495393347916435883377460308948556931513083638746843431333373770621633897550852328899163093521639262715217027017730776425510301841939949596069806303266079923150310085821047890931172387816191116330636730179548736658205957579485592113900551919297614257660611091017612660415609359946593101083175038065186271547196449153350100270936212201503370996020441096436712250952422300888619566046928619407598007948482708360381840126265702385862094423153693825375679556290137861923590284774188482190065776498439275153410546362132226371390981654583034699567910480446081363585806282388084164203024640450552985282518535954506339384148167282835207901174847778933821170761256249109762481771214972120057127271466373314969612092256660497955478871321718511075652282665957383472906375300854116235499581821974802348338367909084706148244314025375261963927208010591583506277009696181506533934183629466344494698886481222055616777493379134895675796072282691643363517853839075834839895239693580774300679404684248630940073605502467564157118786954487437889255415150707494437350716775218492659329104372532298119225480655480481246473950771470503911158294097153302291612874701372490453179162570615758467921865021728504179640484680457532299884540245465167741722288891224104211557674346431343704564730635647097263034171476664691704013946287780325795878409654925837187724932613108189261815746847382255475821709422123553326593275055322034353327227746100051985677184228416342894876051535316824233297892606371135295125270320143487029388000925813469303753263002368438889525570792050900671231281610290713481855934506358624013567672922120616018712376942862352557569136654571607326705559215158814054005826925664308296743375338607946793317480766617538146949510473978783927833436941657846988185062891191058879960210235789885233815453064680826583552054179680089966624553729511461328664316185496236631310127899322838280038320941789263319600539573230372503802307453696458284599356764852209780553486337119850286674698078071676185583589366964204919490275705069285354680185899866921824641768290909662139264635462158442586252430185369522079253384486714281409385839407387405448844840504218393508414289062274251854946374692429053927014855586790545290275285765828358521644795647334293751510341523108103145128119371230798718445077622565076796777258173045205320597343606056675552493976427607340207279296886194468435554078477983028879701949158761855728557042506743485980010031578233560950099970282674636516792639619956591493869744811535518123070684705562041317388328272000001268512713767141895087422451366475318536009625660801236686032172915754319943684835218274633563695145084960241220349140703012479563048944864153091403614672526154805137758406219077822179046377527308590813556148048441124568179295418800032356692549859342962355846309973917881785150845378721237398168833340125479671759638988484909429614530432262151561353495807650659642149108555315807524872987521390126543546015692464598564416428079888508114917955896660356794567907924487766569513271655592943834470219914841996192215494573927430364026083829364325405368002780433461174830751937215383920322209889159671825268201282110221472290128317497445930889181000840517026032311471168841148158019220145385098255242654162108381909643448082752073436807670476664174850341138716425113289013595704901202482193218049833213776706093795609675734773611548721303912410831189706554147847758620355272989204530014744392865776251468493852178138166745563089316721909230538115614089585756606359583766125657573557364785274250356578948419777752026412510016828323774755901584572591569642331924437975821402207358337656419445004058421297832207986413858702510904125556902885255829453175924324546276487379387567690260721626693771442361527315746136373537479388982916356508675292111282222836849232179156543700786265134268069753045297025986876076857143514914973836864120815326908104581506398980547683146613110947497033256605333300286551088440420545284746158807551417450342552125557987979412718455181055328500880257814153049110540186621731231354350131372165536091162216098931535325870540699147929775437510401914435829338580087580302860330985344319721819012428939519636381134312816917249508369305661778143748053372587469074760564462704225500780291303991457172535833596113924570253570674556875156096885461369929439719219868031474494516783067268781548956274587022985410697708441307063786174535573147509039184319398635541640767897695331159752713923681926507631722048950155308515695398689903272762510587797336295959677085727732766412388922415363158791823164608402383974171628598871261545039821433814405105583351612299086901147673597241666854180604183139105164140602615514723307099985967014990006518761977328604558307345350290150491042176654717832326292135609095060536664550224181705532484999377100984418253669084586041835150664444585283769598044684615058425432083493605240324940575303344025419311408048743433151080432243789666073250971894066603745077215348101490885668409882903385280150795896478041647211014883548741119460322390824174839464974052819830790919545439721733436499369736161449727009763270656775059602380539783135854701923606783905641126134215775221478774497125670174853544055249856871733530149123371878287714552738509609150754754285845819703950493887833078142871204557163894591542642880996149575502838282717764618269062262926627596928767530722751068989268204229233335275044490552797648978262632972837452066161478808538037344145499181735337170254099551198820704014145202296211597827142432152488571653073631805143490044470827420724870391286385800111622610538306361146967112916510359830095033603453759791932532145849920113981183490778830517736877818674459627800505750015268043671541484833007846886772031783414604833326061488453177459163247590976413933753767910026443176948604195459253169236279760776925441527324926305581269512518923580308566356971224279697049022158352643753407367615796058277744332593722881789992165439083344344930430368491440892107240366305154678295041883066721929619504974123988564874806143925108629675923899821079074308957915166728782700792734648453091666053377827405741073681814769967622119221040845766078277978810410375030545567207885540286477311687407385671559340692538640916232899379173697301803982127337054909751695822269790504733953360246875915952450635032454716751827188898413994652398641262675764306101648542667500371066074803370207467772689086043531798637686644374694992807861294826429130013133643382386479662404522352041689989890523226579053821392463055528986689617648499484902577937000456544032805293577382137600755138002034671915734127478270220654454583868462254605128267672500575954952234413054811476938684828305193156479677687420245992760296162338687751829048985905676820406704939145655462793650327955241787502623808948632586797200361861639882881568410193894541698966052193064857709697362805692698956675965981223322320983440665765973777459939330984695426073042826206529189987365864222266977561332444812248375993922874727684925908595042464325918983127438917807056339687141807729562170844653182601354464158234858611725109999598690800767305970403059572803554412092043544244484884899387327477205774481943789152094149249414903291693359326266068656566384399723180075629699094113392172289144651250474127223473946268340529400533410939196249861874415362641748612984150944936752548433481235413387894065388566125050065786255081513843052869077014611654945540208567483390034618932011493690539236238140299093764707835042559144702569149162207663632659801048248071155417985948332296559842422740766247505200534571528246018968558841873031738790285276610004265356961640358818626737669235257720405332109369223701564914170828708422538041045294078017058777410386952266571546112261085941720621812758284598510334214792987937031121214080080147367396997433034242232865638640791352625466013894488589976651298798641052854886681948206790719688530489898459486440991972131950373379950453310896008609826670813581575723938888015270601718795130470098333420184732468532052651264505029514590685410962977834490334011822485192699091564786324533837230158870445516504621356310117206613302186874826904219807040146108387222646783406570664024997875987573599498659820450975544108226109202851591295281687966408775514578215220449668545806994257496580456135008367452539893134691076599939206513982779234532185771572335164214338249177824636013829442168940227860732501882608562466407851324640300291156613394350095800202110175336924391377452513456037043623583671371483285373430499386310546946405676262728713562712410788720099563590830439867555508273195850216898504970340048922238788274898970303338836266025198079161106400547188630047567414663356571879475621992386224066937035766938561984027754545272558406920282795531514010765734338802446599007845229122345287753961655225501889578107781455951497461834390009124047805705018769609024580201818514404718608272883958285813609218856121978106510238640318322146237654503823110974706017922799497657863940085755529529967724889425443507048059759826678409374913640474204812964838665407149780540906215560184784040001919883481594366002581191515932789461227390289071998732267591240720324713068602505042536399720690896810840611654388304772622098548418491312428209360292753407013289350989938144728835863845372246229661831710683259253504881745836040575100403177688756885191620028093281076332921148331794146735073254395887639819531910335892753708844658351851492733981200380271531541829247222417199095758761051722449163690755881457796489184999840595940551516518829099686936129445319603714192396400462543090109414857848682052811951432588359314767478933971646379298439431850363031345316917034778701024566533448814781972827049056610147442969397747276878671450043700188470228679495785782845760611473866701932414229023222671543969016778589516490217383960884412667099263550162821110690706963471182428466690045804470655283430830464005293087234863821261850761501307981574442885909757431918910079154992355202147477712075405531123906715083775983642766392111500101829213736579929473858285791015590876525413040681636875331108464067932617442620499278061556929684853059323120744568519723733191218790646724945040518411497988270534775963943709836238439497606588738353117392605195165599053751237934659762260807847971078808783998157419454963456708182206102807927770333935922197372268319223345102816725301743058788252673953357469368216487847219243172647308204327085080456284393642787214359134931270861200435392868416923904830809188296448113029911215679519443495290524249904039964667026355638824878110426377361810776774813788229064383100083180666821966595096120623194032083766627075349332173470733133164591713597380219957246183600696431334691095637877790344866471717886909874654273760608636732547785767121184569635511532604703824765259104756481483462383948217248675933768834158480199007122264941018197667736689611624481740899044034550222727749174262002755125866437116765648893412293343589667568957764853766483465754673820733939205969871806200459622587462342303734501770311147816969176587338475387431984387851710630534203481630931025001210470433815217707380880097220369077321225296785439083943964592328689080799826967733409626286375384933815201261913572015679988990729196779141106661544626191006629427002470386243061099241672545297055937903950566310195254814725983379926577722491364694851308933817949069470975877484526754541518623677269866572040010182724088416951134099590459124542204979682955020541708455780723763799281332274167664900676767182010638809895359592490841454778561292574284499111201007293787618505268973252943987264815499123889584220569690166359239468078698978761997796006132522976092389034752890109983557252999472550575519844447156273468226047979183237830606136163720773151985851994129470473560230991864955775110499732188904553468868445954780368376943378589679995656136949669620016750375497956845304448172904863246433779475272503753486280455664513598584863273950915164308741808144098541555954108215985682747881093396123805637881082168854907330917433566916542386995367917148719086859178926381949735804470309740253652916916190181035889547193042736889022608086299339783832654807389821106972340535053813370159558809918767199987309807201632440601429389585238690067028881073588420055395634034504555755913476533180760413663052759143324561957787027450453150748112220464754135431600414800436129613385304640571567045353676086546337407324585465615838749348522537638678044019246548670688469310215236041361298169473809471503361389303574291111112001603082133969438550820323631436227992277304018751852150059129644098493058153796348836952490840314727558107589565441278503641034483571172589063408702627437004416268937962356410252618836996830242906893577369985437233213667946871984607049864831587982220060977384489148238597015257016680545428812090372924625137054610187359366527962146995831702868965531980808489360789241798272541092180300972209561632493648715432378645265708863586175255886363426097517507211478727770084643534742296985434146587406250472649502470813701757640892779864457925645714723933177853624508137482105071374650659493483096978663240692622369690546208381923086336663732911989378585236437736545804665600792651800647040432293940615303431689094325250964037704024537634654764834928872382895867869003153191444373320778485254532213858018493102397877814459342897298074714188006170087351709388721410404839647915699263179659518415988238238606537364700686945803517918497151662726134235064495586354913159798098607056075014123885876372781225071104545837112666537463017568165989682044754995850629223462057370429692544392915458293306681616849977192275683897240111608350210652507656299858021336466508922586535178517953680096989692760149107513916216711175101089847784860159006322851037014959201233821979416415879253183993443031977161493747916161432916561879407520195541447981978002700675487624704322543138364061499097684181773621259269660849874633910279517433147785312613447891738065168496583694154968657029163332831961628879065396794265977562751568578914054530175965272078494505065756625465941679397215820042806689133534541194008089527695876015947288452508353911359024741873825610572991373968042487254467177343262406883066679093422318382321601109802733611406419849100763416509896240261754954824370979787278010051224477223203504747879431976731028085631918171435435612174691010894514741815914091059483627111044053666193587450001340125496539842210381195951629864194300913914737375565729167203547049098169758697588757851375105172689352229943867930015662204527736233915551701658833658558563447232773063830664675460175656228576779561452231297484654282797393853568564080291009717251795194130053008008297082389348824994540918127920897187522001977477981108335889401818044928014103267105143405936999655141888364084494157156246644385413886176369867985800261174132601937809559625181519166277384748581690156605195537842269229620142108169823423268955093861061714007028637172662476723548521248059743154950325065013287522104297625630225038250749419931006344594631094622874825272354363480977013135773362946371975000392974080645720326321207655850490784010710212692060467685686009514719851340914002635735220613891231423020756066820105132312414473073840080760846964186963730407352824789290696599227451186489824628417490912631863992549146957470965024139283712374415131864594483783509967064119443201488592432496262526837308476364196060933669811888875796241411693956070361237239768645345102189921509882332279138819360039438413550829203218115320708645389546879938438934328712150598924174973414962390229563932885967421297903863403200390741668782718417909174753568473604773639751450914558154338370378360860323936624848224964777798926442892047666224121101259829128362163822407421622570923981538344233696590734344349304051402931239854880044555468777838355546024891491942470015599543460553697509293811206345540731585471897869788158013888941035518643235362623186009655367018003942076226575972082578888794430793679581999947048288312429760942260741561779853932516372207355840257160485552548151126982775361823686088549806668774450226258195960469109473045784625973944868868375741355292636542355076149451251739993127268337305013139786406767067797831606220963692337876954176589468682588369057206023816471011740754568126663024449853027990307734881468156351744442932963127140200522731409425862615205686724190722668962484164394899228620102495669392205982637020357472269694018048453002101829287172446252237053492074664422795029646084271716765411003953842437583820852269955817500409098896853017529501064856133486975981103950989200848882454478416616061793731815898884609716564678231331232443574117761308739337600120938752028180192091556304521863774530972874431464497867755243660432245152113162462874262301915738715562607735752266551019253315391864091423162961531142909107153289171182091295590060126833262242316677188458309671366024122954596765007865605538641436333771919457357376951532454930345034279763443995651621997410542049023931380133868031968383565742399798166521724811009263216195355473111308927209488772125233214952834960499343662615603358141334247903829813616093860250407154270750823528715771284164796978914193195528715507495616450288633226956563726039034750593982911765540195661688113925434379947710966791459241643430738802352627757368703737746545178468525289907486909877863699053279618561405669830213478367533365039497728446515378251191665466513772100118741327245177893814268578395123682636955110365497354583375807894188060488426395532184911082661204703359165103994666532004952294784806782531620204265938835862162889311187676665962477272295451252235127395249767250673245341203055675576007375777797465794302817007734380580629257202336874009820709524676887387200648610101210620457903386962466605144796104017174092938939365648666042488865718000415030063035475720459895786275515501258887296200601038056471481009722194943710531416395281961983621253710662613930252033064110678529377072494932022404173658590224578668378862574615238224788372273715644951063031554062187560423625061736745956644086722116270801952664773103974514270890120451519792210924120454834232940218353388489866565472371669756054119071593900472486051454567677053281338913241759365276877267588986689051216842817656757941230788170076634722105986127140976128925903277510823396446903470651380125735825830195043597800646912890294109195310908046801628559883085480567320101287861332906368269033637611256988407915147377526295643140466226221236308315505362138555384234883156095945439891198524416458892049431728664382895721262150099707056813801724540093477307420030026403793332066790871287336784589874312317370937620574574821012404538343272694240594132537300664362711610693948997202503181818968815660156127946049802255832139899782971082808952404567312053754867595292137549707043464442901026441989409541502901848242521252556330170276626516377048460318899483624551760253265280700072060290028538001168407306009848029346346400114316766889067539071000813937063884518008217401833645480711857498190991411276572562203335148239918848999574791596441999353385855311769304453539537227364222787885730396925738812977988892078178361677837321129516898631734804527119957337972540298715237864050969330186565354825761849729748012205091751530530789944718799187871176489683600817978412640272778297545865149050194210008856759840154761877998094821565722834947526490840198351717606404021554663700177134827766722878306293953248060356577831165120800203029016941681833076800730960692175549557448619072708706183154586690478670541805071504535146997600459449412824646670589455852086221732157902460350287298779892898973337782967321010890210171065197572438622076104255122596378875277560522787162590188861691611054916243760936856793973445114773042943441881180819353651487242023941582619682539218364767418026216201427238237793305578179809592566091516641605053735833292387707022191050554436839544883949332648610753202967258439445301991858843744307327187184622001410514282082622028181988634769257959328611208027357842955625074026144570590502812731897173920108009289380245098736542051437994248709215852301997044509408084612647816652939057049728161889102413428852046859945908722732592013222513700812228530123101977633583354397990073615906466491792611370969076246888242896933916593568234807179639878505892785693213212467306668737763218281776031603875076194049075412025854974690181233587316500842941643248221705748693938409675672958917224118246795440280201549332789088578459446908942541786530855252939365895401341471000820861753747587635062327977446834933074534513446288638366975324425786854845296686155116671429570336207796688077268684644071241229781721446518308588272723828446026894700137339020135039404332077490859450520819696765835307833004748830955836092370711868126565572114117501157516036539733251024041351119428166584499322259744752068145690841142386316609897271930158160346455512894784045898762921577588005249169003552738912065956541331779926853455428983780224801414338209318485026257985412721172707189747205510908674187254542635209610732511661479393225121956859720752792383921730022810347382462288923034778542304080461925664246703051732849027615343054976800485098705477517270275774269517958953072866452756677608266327311059715741607631340638742279318783317373221119567585546797008095984738074394036435312995741454538724569085950083834837538036055713455302773961569610108803902795256624844217737155943443517500448459317120845748178172914852037827602657130352841017915928041804598356236861407121103101656580976508779780752083512284510465150440626206789089751800871143896564232747196802466608976423552635765910516225197514357606716826576939516857540790181473638750327067528286270037120867068455257303087212337305305574872599482011060416851385012989873767398507302201080312061280333370292103891147013142613709760161348637942916481692862178068393511528673157366783143945438500939574223562244721938311064793670357863608760057304452714636361052173098310297428912818680617619342231469959682032909391599811944676239433038222504096105495699467458236203165705479229321697017628888338240944130478057101368352343799272837772037035864422905383478969644109374656770527020195836214135275336369852971125987291919543263166081263572929164930824045737466104712393394385072628847978517970633130306142102749925703350120696519079111527607278127494321919002945614291174186534830952745032142546209294626203533630563965180943493506475315094096354003426584479161947489376809674817182839559954072920772019377226208472819954226194734237915949249781844113279587702367471348018739827984129989579388614893047179895393939183674579573179155683021368110035962535258452443072917266895576035590159775664097296753314029682772615912237098131287858404431986071686181054650603530721918656560053997779701698119630141015261594737865097427907606088424245048986794504937175325866032952405342160912881600058798834556402377952705245111627139883954436291862139550434188599376258290842580942247038837836506036466263959195541151882562412978939876976819781777715702556549260189983913539060167363828828471223332844302756583386492651001202465760115246111057792278146435020437194065369911536700305530921424302058097239426980584486114886360192297904978320709458336347423845189936319048222845145029009684586316091540459376686904770801288464442709805347029798014162683995074141281781365542390882584127249875897453846603183104941118846154186370628260145369183008849441811929392944777189706385533154038205036608858392401978294486787497815405924167507124496142348127406488861052058643086590449877443135997043558476444731338379921794176040888435204984462111572465030743280295274718766797775756014539518639254128078960671289758947918734505711127347441928536430625022549981847857868759068741839572146071543675219476356974897077604526751857436188982660546448433538678054568286171308829368052628756688552739714176568955659102167901655714962962517455946530437972414073099122843914663229796725481197227634213220252037936103180036191424568161754805038895922364324491262761480995560866996765678319804920553037852280095643240347539891436948642611694329045175240934179472782127951880988872516974068841869905346654685576420366821871042173891887503531304211387427404913968843266324087404903124766723479626962995985976191730377003471033001093482385469409673645541858862245688741142828346054793912751289551107847563255966647425862136501014328121238831588115285615860931068827219896663927324037560185156942711562532759631385547012385052765225431671475054599303263151658455189833003823522040859356484408981282619271422748630520549867811856542307829993511780218939660766857069684629890704278202190293408253933464571380704236184055598834822344098697794230491852250978479321387112179782161095165277796035246151161420534625577655810742962073413071537701947125947740250255324936941236813697869478226026796958058245510385821060845080069031634221162662476397990436364451887298453826164886504096607953251663038076905895590541693063236631954730971072323342359627903640311413034354174853515911204486213974450457268144811177185436130263743659469238411430668399055520112947759973616818463258345006346953882097373705869652405309959504158737210994030211292107688714479308719301341717653986059804310716569425710624414334304324346587440462490986928060478577663843143748061101814854730999176308826610393339186114961587186133723624358554812761674108049067272808892740860670875572393857642765863108843645678548670293368108515748921828065835187653496428480114872235917833366749886093615685647282055307322299787624969315551239627372652438449148326101496373830474618188935110662576731083750539598078854317392328017657655679629977095104474399288477521220174075425757781587500844212193517621882940841097079550569036688308860039433031299349965816508486571447008946958428547760461139691113174173501973682672321550534873510424310266468094017101052088322825300161058386580852591522648286073931674923235225420454051419350295729218591612067467965515651049184199093102606303227982353085899041543878020855243632674391732571896424485215346497160280271471594005228683034485932525045652437575584406789276480112768738839178171776824959482397316953478574444975224152333680394480508099967423083164367330858354849483318137601748173167121522414016443980119619628333517261340842809999618127684796801427927265874783394253987327254927660128705422015416874619532884691605904809070592318181986064476987126366974131549218429553079498667465690802633348374018535557045848109532511932924895116265882161995917499355804727290056129302752033826150993496281350718942048009132490443004885023283123797495209173430741611650073754077178080983455991965016361299302614180638919097428236118306428233214624373099866645031152591053034226605546291527670458855491126995117357051808679488582016616267455981370506931260733896945881539755400285011698215419187963387034627495321121459755388740124937908273151723075061320497003710715024313874677986165594488698197697258001711480802784246786149256621046780823383665875498581395319218147615528550094796679450940215898339903590743135611498094217871905095687182895818280600847538485508889126311836788583249086721488310370775208019360554246097959634946775998070200751115242937365545555924064494893586770012463359477207408693322335605573200864128292822005976720483304016513360437355065853944254293606861396964722578489847705220820415651331618139490321703079930096775071569393339628229700064406784068717325469785729526897420790110128718138379758424025818103499322942642138475307666272117449785866166708027303754226784371131701175591883381482784263323923720520860642335647364589780554681836276828796916650845305770790893984402844475169128754615784978583613579534989554654589995063396955953273959514879036852941047896982905381863544472383204532733987899378625169210428777312645218695989358696024325096841906993161138098623150482054487941926944531691465411833311746334824470514758747384032412814349208920398312466614789255978021564620705636826885175828923855959380866432059331430502964395490475183439750499740216484796411174013573815366386113126132848087316281806332794961377069847749725366053481928962462842161429132473692382552200584409285962470629406265410341562248385459915578184153983114823628475080569842327564201526521092648578172018096456643332085212938983055468637625454967097281636382637420381238756974986501130194979419099439928010212757960446850051020497011608438368097771821397879103068295345310577604920105501995299175773973936210479542741014721877289304071949406941765737708221071719587535589820618145706208991447415801813514847093085397921878398958296023655733593698826837215854086163198461181505551566507841524043370721285621388247119615253136093084275431455437068535799574130979223160953171674952613614664054907344861977412973462444029320203970492888052193987918577040840401591313642672610101566231929412132149734194491380882142313689802634257251095155406712387737021039666270193843053340289111394506339346806983672833348363633117926784781520941734209107542923474891058589371962777734148172695045067505022978255683412934874748173762784724540518805374032076282234663643847280742302875524294916577724037958375544821723873298905991708351981452196199482673382504523812128282000294691569007626874017381919490140582174515855415462739860428008154263265963271931437734163454979716502410004840210746239199526880423994093104024515740632370197073612787996762147107102157647850524725356250019400141798290652822665783766286965738997906344670024191022518590117017328472872351108403387140100248615215642611264599781933865826145867233728484733461163900705663525106852736763354592345575894238966239045118586151566195696668092129209466681029335486543908336971533126116993290165335152515036343167370991675753874754516632904804478415556579993332335562900078870036871857258102642494027190001723819451220822542466463635851435119462283535659629349062764768484704579995337315358408397492829447704465693953072702627684334860031770853016467656244927319609981809119846574855427007185129730915973231934065861142658408907142978228600168503993444517973580168222585929805656593882285922465419692221618458660813696920401245695051053865507221561606903778195421844625976592307316200618673357949811369350362845191152833990415777310165832898505460425742940529925209318670614450718484921467323083591842761821359047927924956477135641427363549382047149993317094809411061954199807171214877721118381902920236687235984901649417647780617868325700033793159122525276576307570695801920960145805020667541395069957003723560178659584389014550966561469744595912450778303895885249307442314107795704766233331456164167512055940294987127466034768654919653946225736546247725787070904279446634570035848977886212976088224776038666849463517935591121329963119733062156971248043673635987595457228999715873314212895591151255753937236996566948542404108392168443381614599123647859330845661548508738072981639242619046768356856941341316574028783990760308804316626375344228870200243011226508853413770322601353507523967297570240255047836725037138372442082743127315230127539566488708805735064604917413463001560174437808523717504400948530817492174168595347405608367476509068996667426355477938061699575174698316396534686129558596914126228534620782712676639292800396472888671949414710459951895686784762520116650391216191855069854962394125296026438554027469889281590796617507231086837114528419699864205552530188356124677626440574048072711519271287449713191967580414046898837340435815469395709798720774564658345066984936823305532698037009130540063782222012822693833171400968454339629007467595802904008060852356843852698168862674290011349143138879602325843379130960286404928182417811922891636123187555864278250611454710003444653822017011819924294524930292655659988059614751018717747316087932790018216340461987006385136529664498612683038079725347594541709976126445495739450690140252389458875279494819117118105539662386189700357533480423415209414259071505675610849534442976096255504874730382251699193573729881660929931539995914948807443079435654478507668351826002237713146816544005425537060020170956068673446004272269843707530052278471027203516898466386220619321519322208084420641288904567986258795366837630878093804925504974009022262838392961806192170701476256272879168933646557380089599046766179083368325763872098661015412714735217071935286816529198775813697905634360095313577335668710736389694907118670915598366499161167713580128720298922768526159800748040997425196148718767240651301389548658716669526418219239050231550179496844344541722218482932104866733618092481100550218384800050485451492527051117788668628726400030208849786384230449490551659853613372909053487248326705539904059661881130202392042612345888582743299191595061144330204585372357706419267108675930986786537719914575225758536703122931686819434560309496848088476787407710009237728842218571656021148708428302175324577379513697999813219090654036846038663716655070702850843895909312816738609348614090881008746108615075175182120922821491218907463095923470148962201846267616245832847352074382368321023685943788815044016919683954142901627905410927259965025803492805722660380683831872990916829483475545707556158719890057442729377235584237969922482607741716238548620438223628289787243903100194442402489415319811004557141715821635742667063231560463873520353023383807032638422223714707704454523751136975376925263128015144988777406573046154004478710146858700880539033951145582287005490052335481048562669994474902973723328493372041719117968684625347840205001967402968615137553151860929901560860417751828005026848323883820891212209973599168073648066318597229189338735956055499409706897373810117610221569767329338885760262906338569237475420090632859110414237808988476098903285777717997949153784569598950743009246658000036430166355327905827866071591063804361944840958549921397641034005720781179156681580489368756704835554102468306494682895916087762326885657526825358534315091734266667322965573199793380078711769598026567354229555745209772407312253711983776094162909808110487348202085586866851088549733431837763309281970127583892550514772634787579433052747061080863225217837797449334632743273723021822409780884482319738688725282539256793784262041162578908643488164763310327910651738953423273384890923450936207919799695339611955471514710563474810946299533262055312521122399428848658102636683878829362361663368022918157952541608216760349554084171057517784351070333576321323666496741095358137280435172780837739596277797832422748334272660068586986720651560200989403611179626182695128252717914108008619934073214044828674641723960969229636936318280263265426353133850096432157559592493703167136614166816155955628532588317626904955079553078446369524945001368187666012820665159439626466597557489959059961413673054599918861011909220696046687708811639224646078174738755165695106837210677221264274371658719894570668684914689367598536696538601960474073284217070297047871672863795299410340165073061814504376413427817519407759031201668957346970513777456725334918501342251384761096916007710017816561026278389939342298655005745953062812168353358834531752035104173492797919996106372533794383076006535484055370074912466124831973139556043075451438411936908961934464983371634205049790833913422259176196945141456794724081927964901004715659737522622069906671028662639034393797755443206260754002992816431447651080227497469374773815044224071773448345405523462397432491735225561453329478473051582343647243307103180439494913150988070638796652576914645320824229684357209444653565655767780825985103056043331060250394760575185381484792449819486572271180965309843312357341733482690627543988311981376393556166559709551841409474191393793599495209426797631460964596543884125174705603049372078399809923283391408965449386098115695643213880896182500741488584267567461672262026092051779844311550594266340397513187907549893647027919221377785111483237149485948682625761775732723608998955852759672534081953154013918108743925900432009676387147325333353477613339353282626924656213964430593644785057340129453333171998394307474289981290015598694259230552369223810188984430415142654649793987023450011717737363855378625205206128623569393598993781001596170030841793459941869743284656216123091631469683295824339195592802478066777483643182723112673346935429641354874898921166664581989116671732191848344830704329485036934584388309874415796951248093088768896233176003364414336845792364715919857423443353955853094923396414699347631033762253473715690620888798515710054728370921066000719087288633650078894958244791648003608085679685625319105694164055078657470699119865056796768049027814343809156086145883281852798452829097689456793547949170518448141346822741805355703210579525127073516359107365661745643656097342558922972528728089226111858463654493069146938191065206454738785399697344308715006488315517063920348538829305989219246329451208375069094457968872471464497912009933079178380459046587872181289612285008511291647799651087010786369643879649959998391996327388227385249432200598937101494636135896732580293855314549696402069059583476664707112914922518402414257760945952161926321635158251743778919017839423934633910700162241460235371926595724053872393101457040179303934436321140998228282482606481121105879378780137537194468765885883376261780495975935167568643575000659900695556562550900883373609585860199058571574690510519051051886392713949042840889925041964975012589566251045900483497511099083424223111389211335022974071315600883754226643278121696753217754738810908829248575969543113656293861530487631886270293121711724890104141005081472686219509194308089810071528318217653909134747114284081134390453435491831322273979767290713364678479537483079297255908143382085166603783310762336653504747234400853501677981446426484261358718601216316795397402315596816758775453432809295341922988689919270594282805695293157723559555469888746398549224907885344970152440524087689101990071361854601596684974616694213123573273864503249383921095601037253094082970797427234389750503772664196794153003685696168610213374791974433858764508930870868317334803059165481873382927007589832371525702176352437846677331889614134345935335256752741731951454223974168810333642386305974167591834608963540459825136647811695535319502804300158948830852268760512696946719085442176466159382824026153950393534466750145218181412426764288628616619069645634178532805848409495748375354969092824418334615806899910374968038470486977925738745636202918927720244490231853319035609143726569621601658895709253613087191540929459087066878095569862518698963148041551770564330768172870327282024764123190842597902017252829812873675626865232438549115431945336234845515439113967519695804543584223169631165788224678989181728767649494389507532383705418898055994952940829617045923886012484303329122158700224147046435620369527366238712028787191279813505538577108521940239169677489674907553811926492832553731753292179692624394495794793560865448287899200778638576187938962381056012490956077529730110912725215563210256970720037493323190342598979097990470623464100275716397268275928132863401842962523900279241027572454303011166772321308763135553937164301097068354270428117397007265710988213763459356226823773467543144843847075402292760931027847324443495204622891664980760128028397420169688381229032364217117682866685392461781754229350950221256078768522385183171951066798260275742097876287555275496587335193984178444891607110963418220739303601042506941388757272394596982366233181753013812545924700818470184103569858793494498362005738301627585424228738234405622772545929076420733355131660980055997969571123850521100496718568126818964752476317021545173454848121460985791382968317320572994800372679745389818851057616536428757315593024608039060327306389872131531593268750358746038323581408616592734730838535986283212983248663732377902175264997270573826837421339857099458552653682381846660305829691546595001758648568379862783590072383765310816053677071814384053505860970050680665532765333132810217246237052733350095842656556700495936357288042581574108785284370319742181817853469989186460527741117987539626727147263060396686695149668357746319431824689604656148977957545737145764334147809703177573350612986616919904528950478039210446358676860034994787732852292887534619873931653260371984584581219745291594195553463660445574940643403655563045888034494280670492383525404416734980243741119509623866720491277454044897093012947023966526063328387542775977654303537851753217699278388455207768498915367431140192894390193048836944243668346005224041251349127542283452690321192066795243887643490347784857534159897645341188483401084594071359109225046794885492457635901685059731917396057746464902382956040228319062463126454922066446570934554758666835705014495119648216740117371847972794228119196025461350507909207786936415278799111206969175732338741358038356301714725011272946070558277085024164522285454598804317701133174874175423766497245241032492822879518211196175688999203743629920455886183204160310860523745239010789274675015331090431315522565382000414476598505238771029056197508183545234967294823360134743978760586202108497813764105528081990404776263364190567171541921907410766852970011239605977812931218101331291677284170989580288031260561553391847438740550319264008456513102512854381845238361877029464807839893354650537366449254979178102326979586964294915175511740237276322065303931070915102885461374766585762810447909628072959110521416033057133335111673013893620191940732975806843566015681498640250021785436245376626474801230611256468619886430323596107714867568560184102270883259097023621727491035046867841304091650574981656527988802581216057640036978985424677621677787473956357471067530049982599013529268393707702319346477777830245081742460816632870095517096376231771991418733880023450592421496314139114785629987614652401847037742740501778942938814408023840328090172828092790905682306760973387702963457012844772222900470120105217645237048429458047449648869136054004918391135590222516030083580227883836754516340944908669809586693283276714661439997165898725427423920306458994529334048743150855346404622282831313320172152835700037815273310558804348435076019096729547774523903451034687150043324467665103304217337380780659988568861543833710124955453043310205960970459495566892914573506880915898327864894522053697800573430883035601510715462804634233393082690745828197757124971380422676939476540560982736768891135604111256467544856224446726118920292463347900791136649264849364231527374503483607725013799529808893769327410436947686209319649430549216093345640005687674781181560013787497763235563530687723708929785782108707564325992348186500809612546935347042844453870135041985457066465763222675711016737203822855082505677977607520493377538239707453312860943689542650547344899866315177820177306046445539930928267380250120793101610307905181874060340554885908613955384463986741526597270882849432465484327282253019467553088447583429469812663450261134981955096731559182433832598230206129076999426250166545453994292490458380949146160341357376837553812376376087924549476639805143966965950553226747608241089131007872893048879055014760706864089267101863779921124734017592824094394794310428006911571488857734361363620339416350418133980506473637242323209261058204216864237714781711249282248889924272026696176026843730423884164286752809290179069366751155508530157360364889710285368471202183900849609840418345175630373325023568280774774748330569087915116632732671994882483103657488897265171643008063854760220205346414262067073236749019265760395605624360996553179400766544817697726830926680607755828034691812668790818476527548769421142056623482787331448106044165186651561758841318987190419232016571516656253375956675742970041799558877265516089940401212477622875298950046190112003098658027833802034510543454035446361035858569008125143583881242045579980313454336452103527791103505075199871173583835611056801781714830650178164942940382125692857839607089099580311551416719590022428818190203869239936789501985097075757942326857716462110643641268948931108039348887841106501359529418322492391000344296347954243153103704609877132975800312829281001793426909222476997573672883480247351603526971654415409826861300971183649048728466226087725714996139046369526415303140939169185575783380971797954390616186344844687303759953600351388551447669164190720165964968014783641606507748560338216475461433608999788565401865388163685636623741471949828958031739082093996428004604134913625788381642929445103256877024533747803585874548838697709040495379948999409380676703105100410051228947075703871238519235319395068724063851047756900788342942701648101170256559936114566559567344352305107972766662117984355574593439787161157291753760957603637329421347097348406372157254693026204073103874740048342590518632998163982303467636666285604103821195572242654534786587633740283399919778172248648547563405725536916692917186662055450146939256107253750166589170965555684446328222525589886736991818385679097548431900632232467535772516231767705479306112093423300912492647162063086543038164155875682522692342366416751999783701478528769243347852210365607199125416336328613916174980105674897033588304184536186556414247915349820284881484527671096687541068024934564112894841841044466506088704191337997420159818769471060462216692079230202500908684520021477018353188980525195814697790597326992346736647974807263850155517308087892543118725630202976250511399949353762226818156373233921182936897662818708018490196058008190150930002922394798229334682290085845072785211997307852149125535002300250612795656298519832727285934169434932865493326258253455550631055168694269641165466149824772950005442371150374967063208904982742477255322245530652911805239213323035791306489339365673304683674696760974474139279286781219803886420612469519883584660599266276730211482736283649475105334458007057570282556770831462946279273480349968386703560766424056600079075334451269204265659043371272172861406927675022310646703229224164626626746679978884885356024101517150980512464245969144191601931708038695719863564752593486734745790434101143678387607755139859946507513765280718122136298437478458963569244819425857453459792863597215304804224856638569816977069073362231891973265428939272486943406629559734022494955885574156381595800635941112426833110786028343770648981958427325505934470678034021989962586145941718129921015620785681887338823778262185189379013172207969995311506574665517721813108999956296279196970883285599503996564868816712036356531635527094633006276370832444403087097709982609375805868102956752334103358547334669348446784575629831874851590351036349845325421117259222575973422723011055278534667753810843869607211997808786566954366650238432123951527346344507316085293966335997204031532365185471729354206585869788386235114927907337467638823836129023656267921652572471325686592468516210876496009744830078606434448807081973051232035760416497703195987987241020442242228267666337609847889281324477902222726994302550789609125833376783955571150951655824721415865138664616249553558205699974686612785760012575063001933044408787071921453197772558743750264499301526705658959000706429991193637936605279965645482478654851563719163216845726951434731570603552497682380252129575905289246516498326881441558113576982230160025303600684081541640119480482619504127786410550496336179452911612167450998111672222657756764529491466259734928966453954242691892776920448100858716701297228465448738044473771398712545918282630788041818905288038972428220915904758760616403234198982626003036317956933049815456787578242261850202966492864117193043009097688878322366232623063869130920755130892756207568693367833905293088266726664699386728105301529261836234394933828435703339553190335409541736876412568128592686996240175568542586936338296573978116325063006871926297616587707600558765692266753082084937647328691700258321056082629424962654713470980000700797445050660124827487333080576564454779248480744447653501803946648308877361028696640572625148996001056390683166382071865189198913206739188588279909327669775465619124755782951517009217970116038530518308382931206458290690541961090880843846933223021135026394727825228689670199900951303209005043978545411658541521938398588087030906053867222257894918393358660957324248982518559447973336409476534391753719781530455442457694745283969044936333581147204531259738850539042664190431423733644531845484922066876547444123757236459001167442963198659135748976631356929608972695652124752326086088780429394596001220984912938070457700939169489864176454823256911754854765800871621417688758784054303389022327101053429670016059594529445445649171719108340151908479229468262415262366364507830409982122088645864311915168653341404091395758674981118183528499705686708020430559090612149642261577672258413637544259981743791131006188641756563220184193484404049231216653432016866404704953719978034880157093253243219569108281664771057973777767751229386666426091824612312959565657308384901632038812447183500346390672938027703424791244133566621526103067571948980428951945742787139387645471700370524838770799379966400716331263224197288299351892331269208638010078735649158780059570469972821111794325596572279703473181824925888642699594281360191184362281383514605242613257264687823909958396879030202488767662394392120652574019386121963688897344994107212203572968397805482067540869660538502183742597687739060701923721605284870002092085552477651273085505654287306458318173526935364753108234559206474577208021956995017991100511667262047768153945827846343235518246452415189327268053854453200404808944400953362174732627118725978119851430457116866182466349604967698057918360295367803814307793229989758643789080119697902451146125543854173765749001643194763830850387904829363798668987675315156920118784655997197245132036209622054606810884988247916057972967235387311206561196921222565157603622018072293537328211616832348855024953845333147702149889921666151935102949936252961172098052515509769817374839044174677494018762122769802070001646144142680104568096387624580218433999659157704343659817799494111732208490257577682545262885963422655641568281618702353108617927855244592925366774536283635948762152589132624226456658917593583190729116665303562288225350262898957593178799528399703720343951261248441941485632750193309303437105625293084888027145300293205987287929218202981658818074657433086958131719380013571948761054312329981788174953299992423988705623532501267859182945359754993534838123499102973762789896989429838075866262856504666231669012406033636420505391773933266446238759390830936622744945955730886577853882113609518281418091484413497751930256220351408979489943136604728517650593289430042542830276715182691901099330572500451969637521726648060572554598314139296657905433334020964363524354042255448783476475449322502537571276833207631191106293394141666873915348923207813153002241437599031877638194502355537993756403893062943536959618982662062853828935775312305049029458551553228712272267727557796287477122836634186174566722086452467451280315575020780762046612721246922985145084816557716329711365875081670147540604694694411964978042208312435161432651498678234270769202444531691881473615230705274932372038338751052453102698116889587505839301607750394944924943560361138886597814843202536603848972501664999391414775804385009111570500196940453989348994545303467035954078822258436642854438525124166933841807412070018790100212858436925254387039637727094532557611771463685392317270192364917227652248994169284913376600442224241955529092958381195971994856451402866094868378162818510498183048939608560501559592255172532514383142357692542670993672638375942981222737237028461675270982571406379956044701305296268284504359604396816573223765495634662401436915622271650742162870302179647470585096116066950416847332921198616790725787343782889599209090000959748779101523521550352576751357558900254984712408297071600616648078904711912250649064805814259789815572477960377655504613162065542187467001148165066968791237327902795093319869536225105988883219280909408952329634266872783191963850051368868982161272991076524726192071361864723947274476836299049360326970522906037234677531176904585445319840389116491925358032491217627760419610842250444204744564334057056542739272249953216883498525853609055258831875812468819091490494057008301842740186802984337190030736169363053023759674328758272574944060163862895828049589648552063379185509278249181374468525122224267709775642563998334621082136391932368912027105701523179162715659839511934971480826806579660793508310614298022202411188021462268047006475824275220814486132368284366378953913984706562463638250806122569097658173417068016529730659719560348757361510149384478267630766482842117240939026869226398074420479559965556023904366237846723396759339764312469345437911981656518252455201531531679975601498853025719628507043883064447309863668521753295596842934547921311497600149712533622901143915840741762296951896085153609190660383330849075349774832570670478816899702333090111742817736847236753569658823007257552779552412984270405859562514162595825227918651472230481779961710992433334293644412693178490532351428370768678891282836449308183978700363969014587366280651881949869243925260778935071606631950037188985649689698763966711655896193112057154731663399447709953016829485513810698973481743533583644054892198661735458070526797826078081294141755257739049218840326773616085287037347138306074352848915984355124455211379673699186957814511518704145890460330871296139023154804689070889186898989750919574361945222398584812747486374980548360616153520620300229257320026756696173162267359465442215540924096055493800680781491635885020936546569161006859788639410333785749715372632536307418959653313184438315070022402446568920733048579310457604575875798796225026233648351419516441154273175091715613582321341813726046762726659525249629559364484014465846598679278651238337166001434740929036578808468594482674991439456297939484419169006479363086732141858939289470316548976246976791931727370269595378254567190355683564693592669546486406549530641499195376844753797824324924817000475411606963020247737816109148131592942151210560841645309854570438506793251947885301691078122103776392279155542141859076988084034994180876434193334994018213527048775205879125588690063145968461888892190377819869719791414497023825343412495160049445814851168626310503743123456998593723059196661256378928486061800241569751072962947815729605697266043428074779306568833270513177093758132724445947987018787955974228999676236938882321380669448657488217015149126958639337788634666265333628290889067294274263712253541388972578248128389028547524822381030940764227325510830572144853087301312773428025193257898469123693455489527741494639605535552227784948554908054169661916106610984752919944453118138586280385253953463847896927093488733091464856344534748397543999445486102540653679951984420794047398872013170969501548462000254756351681007024827911190739039537574378407352779812729769541755017419808814051299925186567319282229117270523355898372625651121125313232712805018856390949093051798580632610945166471984100123656072781650704709151451961149048038258694310482705984516187078162309511994945229846651289039008421694406769209538495792193632717646765891904022312528488639225003254501374108904090701814640109295260416905751119617743776532037951520535110067120713485013749084704396142932192237604397457905545489383602360262636771293964167483358149921833343715499610756245613385122984013266486994369526874718533850548468423173202659007462204539782634620851799757263490647335139185667771372353341791227117365995487795585085805128107086194395580456492681246084584430791748880685047308187318280971149740713981589281786538982761093118215936690910910505741561817131311658319490959028482654770986871658599101690913966492504082624531567973610367022816206669433368816484523652845948235539196663634249908862207244571479233431819718453872609885642297148106857428283312457624554462575305877941710290766450923829389712881769473870185442858643781240783105957168540281567281490216672502898830500833507841054661575556366019665022298403570623064242469502389407130829557466671384626334293411141330471633577015363578337350994052974702477268454773064679090558274287764594647059294395606639778437465310615787797240056625694257446775969671639531421567898472198575260616710787451453101004767594530452947538453342733467283040783603686595433122403041726173827552655265661041455712484578994321101232123825939937704892620555801490779064775179940247412443973239818834657846316801948822158737997658391865283669211009808046130076902909951482297145215363526582019490998852757215129070297439026458837707119201748224908312422532363192315316458622706913404442758310050177114920359567746868039127831256073118556738974593996811119511011635417762223782213298741034935132309379853473357844471173150425661316248754817183148662407540464923436766174269942229963785790703955541557979085566915891100274385067364136938312303321430938654766398801198387289330681408890667127427968992104567815428435229388931038088902469992742056761001220208589685535838583549899392018578096397496701421560932318353290045302928157039696557773035314559992989682747622258240429829317729328959683115973795793615757926152076536437319381279021043434021856089376790489531131270972795919159282017273998758915766456270283025895632147173511556433691122490745553215573021057323217374561953166834359029400236669399180012815428273165233773613759798972283839797955751056720577828092072600017576959979017455952212402889355756999715949462268900557562033771152078648711692927063218579806012829864643190950164288083206334127273080345100761202699875605842464200264895496177691249818197607536608222208448443676002012532775696385475559409021542608367619176211438492419325390451989244837760083708575376539550824513475797022277391237458400308841490003580216924736391939912627796796831783906611856321852500100908828536790624866273818415847930656307980181281230646678032601446055922652477339585586582767729341392556601782218056599152523944553860547341888186718696300388445665581230795220571858188822696688556082430639498912624522001001037678809138941972259525193017800319996850040150962206641576496441406838959538601899595881332247612844449201736006454268913335513091056441050779984640772572523089927408847614381383306632370673990249663803789726482810627419045419658986441239451276286763821149851351038406548756231829806881768223067567874717234353796458148425560885516217587563118575365904764627126527454506843893933291819059488930430465995516583373891104563963767901528362970705051649857565428715751668911475551886906472165524109592148039141903597789568223190686636414807505356879020999483484216123629007459942903676265402849896837840795879911869163220201607076371672240250200044045250203666144953335881735498737991515871648577658739546280795180878239058549603900902546264420556160735242995421812572077107614126217732042211315778139149141965174002809181522535426796935957595033782533620689560987243251439578531512321480422413436699778228975182039488062777780757635369489476247939483982793464443117828717464393043639780308816984294265599393072836297178731889169090456113896781351383619944046075250416416636438805852640041708578253032791983668603719645287263043699206644298160545714394962856606643402520047228478981465381234611944891384571688858183586526644918532760603476472208372863691920203651974727280749159922603059890219990429167128763477931870360191116664834324528955237907527142291704782211651014945220333655996125889995198358998277130116574678862034679275291217227562737807338035559003451009625625528773114621099496039592956654124346105161802425457605943410336244775691621416392622458001186141325092574469470244274081501957235843766659200259528148124184072227233247651845559553159144013471261941039307089704592041291463807425971339485072728036146066724390643894877805952350726660856167654755102318019777909936301186472442803765893997593422067723918416307910548016307357376613915898078880956391401455208498525206520529540215072151040628565398239337270030342737133814987373094148864699321370201773521099040231469660931149295132533189391855074806167709763002354323006267568390369756368148171355548777895408837032743367195874886931533869243464589218151131933176457336062510014111237710664878985038813179731996774199284471390912119806661638176419932391659168962047627010533600453402464413451108597478865217022424122706574186597707106584675432217010329512849795272249734653484624527252573135142139985720285959726785977712376667321466843222449033103645929508647191149547539070837102241417207551617692267132479464727437014628068381373967049660530381321362539930371587873850299535216105899330059124311468401964335680352464721620110530838799619197469848618832916360633880711244218286156235225544072597191850764965479349149422125383801667235236713604344689342609907922440456815848094541557393833503547513754462676941434358198063028159087246022363458531539210437946819593291535258597724939842255409652261624719342057482417112843376532976582962833571578760509435071937696571100596188361928558367472239712408368763899052377278998417357523948127730324888025629703455711326251987310232494308957702901290048159774432741045143803771546178731128045631295236953291112038551513679389465277241027516837042874146912295711273977341266560602406601265296120009518525675838642811614406843774674592941809978467282837384238731486256725629667852237929537042913344356178838793411292254903563078907189971114635355271070839971450932230323913927650754728798139315989313117163291829232431567668324343818330493123651987210424972690311001885696666040631952677583703048434959554797964691647752428129840309424144115246111699725150721104460608219554366542647772475762437295639538298773368607214680594185776290779491720214165072705146068003129605016488826301304167160076541829879638847741023500819904987656708058803215192248609262812969013444899583325658393234058151074983465157560668831596812085681378350182343080061571199849419389385579868967571254091156755902488307230072279602441281189618308262580525319458667996058735797802689116305014753869574749122838725525767828180229569152199884404583715904090610656826255014338318593225153145296133022333137588981632579914284706289898981227080678797540739463818346633407046057233632534690370272902788045063691020555571300440833436813218223473352287066588170422751787461644925428773422622422494497612971532106104097440492602373478051104337438010419873742949310588438467409452806299021831092315884643644589226398001616792270360848956478108888252747154331498483012461620011103919113228762201342567575508707841961253928803598482448889219559211146492187235347670473968050872324245693213599532055601950828303060324645254959201487518923006257510989669060512578818044977577616422339389287042543336915431666475568733123979692331917870407602844509654050839823010889617703788410282492346906256518530548420407017021919000694434628858694229454684153839595096461116887934162418303656814636656069256368858131945367945375093503234504007865109027026866477975431167451939078791279123788001656247878117680960694776720635675483194822288400351343540327556224002074459325446285280867956080535040199526050493543894858932734227484210881685679863265390548851939128635263290271584872414894063674262160906115116207612592280800182819393426899861748337531129050231273108164979953594135092382292463304722054310140371586097025659353464987111594782616609682928907049688814532477500678354382448515493985872896151230803565850424803975723855753032217865107911231772419353121453439606990219059419111143404982766746887737743583243668751336480381009301528633612827295705474099291704439394724870366709523774829361671021289701278949076462188327811583258187048371138147246724874398090214973320191509748587826180926868295317828832016929601003800773607539816613620316922376262599194708306795819971808496333064370310760513039635025277194705889187733486738184254666887640242885616941797105612355795485738252559129070685259485134451620186323517089110763402111585884926322032656144372997302594787783445890985471407156457361664900301330217676056542154396984304240141038651516629255838286165109547120747080383121927005271060571486955247050577259180988501667668848254953511721818344708904818408847278673349454524724118481838204440358166935358647074407797324151481741422638886121586156411939046987418960836361428038900187675925615764921784085360023256687144587238756771728277964756366023320557812237419535180881960062773373383235764826079521869829070305512241175848625581059723362560849402827169114349303690674508452924186188269105010497523593273283279270755134137855679164583401588948184407614688724301058009159406457329135205563087640097844269923218850309770709438938239578598968402125538797225683357160789115145939052972521093736552744620223265965644046915054744226450243872843795814375380291970164576647186880365312057312231069289075880805113880436685471485709470712160036976309390015887021418781770120542505761481145880488482990720873117558240133960433713764841416346131371015085914956001602370614749425173574863227481953851059440991869125442729480253183980458085249634298828721600589891642132484030367787293081984916648157268375036291795119664637992825032298387840350239059026577699570884118279061463145574890967067379786966377674627656958722454935679746936230334996805089785256599746737111923028460738872894784500115751755611898391374367013306390913864639705760954233548484016614150415986390145615585926914145993645938698393690851762599714480713626555953269780997500595944056565206661275610732139698613050198406783843316843011683846930691722231514582977683440928422489659407848045882680903065134057282350906594224356027284449491626318483416363711622518212619362914771365666636634859957896113208876124472800880945991769805757200467412829029672205792665380697069697010859603583153556419863098289247580884126196616153493081952399317360897209828061802004623579295139030794938341443971379920042859448697324885535804004038905644616447866095982994680251974337113441539077740696948245931614283056556134521785531042063691037277199901424949852917734664565169838021627947942938553001997151327139178844616004643848851670579990453832465751015748275997139946585230446403818570636393194489858453713673624042640367460417606734265307085945635765917849105337549594354983616506651206377614581879152462352798631124107954047121954400864017270139221088898595112325241389331654693410021500087463021105011729528146593488163632920867804418812795165701501766996686343607881610968708781344062124589455927190168901740157403640280194114266496145718710929313000696060457978029657795425934821448869415747811493182619941131535275919880084662754346412953577987212069425246451853764922971400259612678554002319732212706173987058881758514982266629950017674522423066809876962619604099874249959478344348663208846571962255195602069656431983109833277894090605012384255785113887467673406666945718050383371110428826715252067228179241286244671116264108758363221566938835492666600317431881725433224583600534342415929469298880759325193269880124082045064930964258141438626589222847286551955275201747103286017890310439214199561710056759674710773398828112801601302033371955855926019456607619031216909670253908119727406494414672361655201368047974724849711395185518757276339893948936798472897929601040706958695195395894962606139510577424797340707884921301548555403778483777452472523920061347028617535453818288619297266489839387230591994959261175724413369856968282566993517178426366484512498338245626264112764841277330974037757666316133815207185866701537507024884719579741940106268130130747649948171808788150526856547178529176465917219034285228034181672226959430363084631721185500503064475811563031947399068967769104893644797770217096285389910462383838325896331409813556456794546297564235670893669683434186201364692138011952741956587361334225023190865952336047794361226538949931029940783096750959018869006110233901850930156780946182673924031836507983550371453993190610999842052716911325089547713953511282924923402764800812802383889920121392837130941551233573811105426136391962787509728893567955009635525152265160177382231536755416991516715265931473296692261790100910226116224682815207996172776372910730297531885029465523828893387347381197029046414300639427468611750181577026977046219332080084401244502565772841655979153935646913241037902220678417851069478513922534049212994922006364335644839807801118357730661247046644685558857741132709309702013260869870337339728703630733935188813204494716555894189847696570748444034859470849046659861513519797395187051321727301983666117924552945424322988262346254736594328019892131683464745363648830269034586275687211586536176843816655499254272833555008071111402525204363150837011489240918859232036287167709247234815850016184703588403701463431818688089014657559197066384221226421574173819431459811349344184879794117214857218151457789777738758679557955113855512985117384395055176354792436211541161292642211315804109820740051673467673091387434321167510457000250757770315732412771944955183885736812564708062730140283154438732626977789514255913632163063441181146781039676212403954406546352811769865414146963915678625136341936203103499103333683038912925207117366378767876316122528037313122101343376727832395605583745706576434086431192073424832672128361151425304735338667914222410493139950403934031033844089554568729988253928063754572812051982236109942935638806168473991133264779805105715888822678939685495701370285765629047512557275886398253544235434312474892530527020957719882124628826186416055061483756716611069641774380699815278791722618020640604084065457780107203603006118471595641198992853819439655424697154181381230108619525245608979816157728748975232061833589825671866827402132222106464304599040540972024647100097153840492442113131763662438038801879262787341888773400302683798610172026823793430578844128971411221961883579779942339908548622092648213691738428740355432165236908617203850213188459761605609956215884744653803970754648526569884398170888567702316945185618017962427597048740544700176953358987987860358789791918236228830323346787772930247632713169629075094582474643840212542513040699044095720698380440044342126805072282500958841842064263872519091819571710729123725289682012110311646589945047654929730874050469005566395415200255406757675392522997224458321981497006028462371580897925656640440197501130890876953797951822405144752410419459780239436438122264861709854059554458350534629401896181755008755312932251285621925793880262641616757325808045151703294427387496104108646219340114443394905641649699895143562414113676157801332323255555352091365653754020987193138047550487560117125562382959577947649883921820679073489418509012906715764616885693268109440169697186296574313104120908197407043875862341973736655782887878089160540329796608321901266677061035844283677885545122764309744104801578042228919995609139335698680383846763371902868054076209061943374967612941957217556674450076888935836620181646798821786571336425845670581496169216271898954163756580414388211013367644824008032462548825552703379665412813351702049832149743077692775198339429475411822791291422465562357807166600608380259043197071861236864815591376854184319389920174985129959443101083807867299641455898687361862514108058291603582589437691746154263289510802471469581103773885784918255740415089675485227402655441897526159058615006967206405851740511043762530910496423381557891251582344372339813577547752042595900219259878991839582404856369540974370225591851351993088774608204695088172470017810901239080921388516469866022033957693596432631486890477721842243442626634599828168100632638421103183464779871070740453470070372323564608240869294027061478473474890204986645689679214618593577020705434993555728491055075300009889132333675938652926687617786404618410936069494105024666141545223067674033790716582814726234234537426934912139228589158021054372885881680720620417917709792579325810397662301742269576656800785939072902067719855056218783643635493747151006593254873873413725593369707686114868060114205709972831170551655064167366417918841932459615461221810066489352019576106319848161907340625890972030561394798512485291260802446305220954308545779723179271261553285777096107459845962616824907281482592003687135123412634673572852226819373574011179281030411907648407385724645133253586288650188147751213232263787550442384090495449329138534305724121691268182776324214085204021839967608070722274152676302218916334172168270008956914961816334082391923024174532435457344243140409801415941811055494603296964992556179160184224660564482456019578328805572088666711817288348567449111681401425023951034853053300190790902088292806271016552505383479327277589801116038099907215273834369308715454685964951747343549111855356820516365418282523098291959700497725088379604945671789891317053107262810275560860499854982777518736088678818093616148758651526681192075982640911822799740457609655819455434996725149584637583937793463590124318856377655595020176060381707631999296620042993700603694743680803961909099170277957782017866784118393963761367894299519987412186713049622917250328581553400094063483255082194318146285237132544241931904717434708650872612438755085014831390854884243761232465212272617731395628048075525177803979035674951871049482608042795478456081266608366862542600183424051273101767510216252077366676817883440873164119393235857580324392163254328820173203513730447451783066632219260395792058808894905352760557537870774310640583991399146194713989581449528078286331456124739533131350300105506815021663018825952671179125743437305812201993575757534524640767253064243434024270690819525991232756364732587904002706722993999831254908975235661360905957211829536545535193381988973248608458051662373608122575639333641969659962963294757245568129107195737041700049976768137405186634632035192818228167384707587605931006719114659019375900377481929074530311504240504663517987639312857394059478999289667199435303260347152849568191206630407552579190884288241359299605103070367245934793939186928042363804232047275401981230175107875364650198081144794141672689725024499637540452233153045576077946179594649735250135141882612670243924029199244245489705344677335502515334935717650095296502079900804244869513344901432474221039808380593517561502885091356271223888152802900999322086438175841823084099221715692145460513924790523076288266100369512609070534131834604672887002582644046927881236704787230387814458910865177767367233297403528697713766708969259169699565891018656715619933306782660182115193284181168409733030593465564225914642340813799343032443072681602116457871237781502208530459907453065641039877755941457952586883288606835815471964974816161702992580926688805527484081149432914864787096286373877790362333580051048092749136800695013208902462180203284324624742195187837771974672940798107922321586382577041834626728303076382266330611079968521037382623913670735073812781429146193624343187392472686717320907554658693331590852116017137800699521243421112299188867529295006996918762167584777410483555260811945431267755148780417943844568320969529045674438996873157135332876394135578887713085024518195657638719334363356940351205288760818267523373272600591867421599846457607610736994260704862355622423390952041320745325275896101940441883890522796658317412151774179640614644374545001023512259065735572749364890569037960733526879111529875983055804267597339798657273677348373628670935787301970944696396352229445940957647809693313671611750119430819405415490729890232560777131346152225244144100104861136567160326346847777885801446038139499608951832613897157679907553084653638801946528068301130555533613480095199762083950360281388135959102252065102007653370246187311236754192566713539742450921604295179357714955254530098915507777175331018008784985081680118854536125940264947300102135378963334964259090437036417660069166115839817340166110686404169828191548220144111115405583983521441944882424628474991006581890922602705697973920478452129000582475330204240298002886123725492403005260450900688000544462083729121972300331487743526947727306364430101744647500352128443578014495878323717186506720470435276952861572234946910656341170265783518455806339227747143460058789132474751755991847058244408871308880620069256643902507807323288167791794757277339060392568834096247200381623058405842966039361823162440249703459073438350808545348763322317230360643453803892115494690765381183795673215268116045877981820948950495133251707121256147664486439140710094200470133982298664193410181758506858991029026539602738601960024872177406159748934705173363019959957715308488423182170374961926939273360260915543505769770143590975510582333926003809591895044429885810556077380150870416772376983588834481329587218277592759343231216816911535143589007338005381130941118559200522385739586509435177549572840409388920096470018871811785122924045372712146999588846317039125264736311237830298710788113170947897585990637547134011651746209729959426395812285681949599053692216651659128248406235325807800267392376275034457406290559929282045359478402317911070923133281998887647611746440852213852386055621125434598424261049773655857226013449143999036871200972409807544344687883355172540556301654028516179262599775348746666795968173746925341109565883330818663134622127126442449029639692602342735247814083752120350291160916907114437774400271771923972398049114632682979441912155953795805465132835953920486265187373548066552263888254467502646226679955635204427184168080439230688395705717415524601863674202047357888872902391172530881924409750689071370955033435358697434743885292429503390895215943893678237587577826348422815176288529381608405214308972721647581533191777955544320283216677683061959876456614974754565751002848665630479636070233928432239506345818385337724683013707456149482508657963078943164918823432612464378853811205365132554074860583965179451441874588685942012246352632023888477141588438618285381615968602946198973334082660528285512116167292740754222888965056779395383609588025665070057669735917631787485544035481681224265422811632326384356263480820971032596114050188142178232916552225259863463339459370849621044088681141416599456313327848815541330743667879898314268364387813300010887052370183729498249580536442282193059409191419923648225968523835969004402199960191499856756047791347283621071131696880309995564168258164043968565847264182061473143270208726385472330991454275328132349409041613617683470166872755192594442520131305519471335531039119969484276093537885780705008416534815434528786475814034104012418818911763464203803278605710387609119086755329069178584802096689256174346218760576213768231346234179024585389629240488643190216774214577092664890288917621429619061104994807666084175317937526661133613230392760705223530416239237255494756593612666134400282355465211765744823004200612126159654717394998548268730559413607409691914898536640580914793414354782032254225033301562899790380567620714530472742502738911361902957025684072229763119808015044190015437649777412944990820112027396381276026244042041262243624244156211403307701510675363726251436309850886785322761547931859483349457946698677022970843855064230590945467949583286331060860736917935917355755690860169453550243926774169899594752146557501050916550280323608382453496210648387514816504346552871212124578093140680736004260389602391192144519430202238243212369664924604986988699759108732656324098725386749782082209814289168184082450858689896266312912993900798860908152509370942238156292216824752045942810966247558540618665318989799208554893054668378542894918996809226747611787820669941130140303018553344835070993951103846524689434725604744879142359594015081949355285530009064085204241948952934302866659256887113032220606408303606317730938138502060716016616568749200537910185060396639863013784280201559236108042446340179839684078338575061451639173378916987367882897809451435879890620270319143032962665670689232331354709630931029775861933234072624780071967923547083913517955706138870620559128211077430609600054859290897764945412880436466476863435436464641389355266816438654609422180027924425978150231605478989561017492925674522473373810725776564275669556748911819725721460448962034738351729687250214396993663175834659738212434324280684750639653007343203628722696472790076108037436893694449751975594877416048865155843556532144560245547114392402720717543312882490101606806695093219986477094791580457730749546349950458362919286623004197845172690109249525459745552954219489135378325043011491508910772375463484861436702799528894226806757633675437162079503685020788980672247877998037458453964432608224985333098661046585618390984948624191958400324204036946797192303980602890913796933892677757389684073626200877008568304311588616273616027945390451005842531970031657463188882527051900440489390075030860932091311617861848925238858033015861211802358027814971040324910458711254931959062082331750124788267752799737773979374123265135470251357271082219163026493098661852369885439520947147398211062574754623455186386997194526775872727682940427956277800193677179593983004084717840123619877861992338544149281946307570270111117278677436096578475610205626284736258969463096576781287573915506098148821005629820259050330895381492104682965681758280675056006662205674861592153767102132982543215728114696785205146378871593187172118693858066005007503023260697730010214491091944011881331358609738609167678607418202873897073221797102457618595905303659551500523094171612868443513017433402885903186875051226985229593785092452110726860834443278426345095191624582487121915108927063651141575908456477038203141091458370435653937542207252448054701767124007496674004097516464266212587130691248589448630498206381689628013115936583549514399700794829685865686306147834489878942570753756559137495532570090185123246594168806381881345862518148225137636141709926533550941493288894614817585919779557876641129645632024800119910461351303718117235301608971937092901161318973751983096976176571655330502166263785673636331542997629859052343872951893664999833198169782466889067891266971611599562161438422338772398880697565430350518719912678959197141461667897080617042066316276809775151822069829415843940285540505306570260635875704256379043096296496752890156511480100463340300833137697296541613213727594573964184954696683462456153219176709723639722545581877024061680641040739647301134465284555947839527092309422704467631860623663355801722846108342028763928688649989125905158495903002578739851111584639637231282890938007981598978764982859671729450831666144942609989926038784499590283478927984400412130768289831384609262384062938544593020430619866278358556193159191047927967779137801626392196862668921850154998451117641753258258720420145413771215328148866468382704435400082570290039307853865736733867944110844499484930145356040106195924206801716004621437769552927072400626790018399857645255019787100522453678047439473333961369095214076241249886851524750225631514122804704627712331339424675650014549132145932036814340834833912552277204183962373950417322942406344594907605604969989588243231902107485398554589955257914889127401049961053943563037822904358725966145122364843005522830432514773270988069149862102930315869671440680701518469278661118772613322436348457186812437070554673920223480873246648553077920773470408006890593771273715652153487321005392818710064010536241808016196243468427445357623087645465222062833952624268586777298957241908237941065894109128457648635271244556440383701722755545463472998102458182068336987279894572560004408488551451393665667141762206158226946781134924700924614657174659472228905760289259144265107751598610712704292786834416104409165684761593020897249566938871388102734650052586588752511178394819268076763318446184247210057921527884207832612457780895038508654333351487163529698236532441784164775953153289123021161646156520481880738709753559124534361198124444750662036581362868744676842591419276746371353105693067910593561943408560406116573356758378613551362124145265277702855585684957648325742272577205391421597976630143307782611914893772807225760196678551299887339623940668332226610540215497481934226523784856232010703149877602924431533118307588799766697859739680975143504082701041426029802366378727839455551125145088037840449039470201314773600699602448301586996862817136314296701617442423094209950112663856035437673253944133714474929022966437117246868036126172048359947223647536447899020094980870676987130784892952490802714965410234761840697948883320870388322476274745217828444895323423043876153286561282438676931753080928698331481265696636294045120196166948245206734873315318608126425943910367012156567148184002422460896924872570283751210914845316423218019412497836942919835786828009580586549585331319670635014747702039701391876937475965616004417417010980062807474316066108350879363710380869273931902304306416501178227651137246001129032925088327961987823209518351949748530180681480827294644406818230691146102137863548151696223280019680391462699504762023275301130156623792210904316644109881491037320858741912788536951307764080356701030138019364765023524342993247353615239773901187151838316742255720571290240444723374031447142516486476269623037283696857666664444550469907116028507143141727959717980335096804608597385922683423822258400950866753937355555588670386744737418883297411530691765696730499907938286898802252139993621118282896946060204878079272176176458797789710902737118932960602514018903691620007511515773002726143326604986606924403376648643601149413415391772719548875385877175685116869643236255556094361884799023433860618159690343013852938897012665114664206826374547140997841473002687023746849523232720770366125612939877135176610690219096243873227084233765661287334725166702420691797567297434617397166844445227584367967775686394895747324065171526943387675675994639052200666583418914158803478662274497995472179578792866411941796088585409991168834348478204003900947054861890794226112954303906523618109368391019254980276270223351573060122839008921833726259643464281368250211302133319339408209021904144623650557929221605984438387938526045987573183874330154608509725687025586671659215052696975613684306956574085514828039913036160211785051167560549602349662090845200898987136202153040298549946820692949350413924192525757046718470604446579070258795604620304435856800820684762206268751318654506724233817267413013679197886087039474883590466326918861527347135572841854608774369413147118767832857689121978954128279329673027731783309630677699062662490039994601447690629256033374725839231772660359962170447940029482484997202663242464868424296030384675836319329067278865321983796820753831164008559008645391583899469018533878293864127116329492537914332011294203500872359696149312431249006937251874647993894834725932375398204641069689200489442556119508401354946798666313207314602497153824697877641792362632277755820080702390537372255405604992570397209990078463306476208329251546097705219623415235069596565490829310890434722448722897940671168075598744990528012002832076052924578893480593817774116303062576808130909764301053723968477846157119987252041310146180157641595833574212593372748465285429465510933807396935814596145678851052021726209333351917093284561085715862410913111374051014473727822217364197350692395047701914203664427203339391390931948750670116331488770125577321451224176444480215241936234613062170640352786877251901863588104301574433965300107033468536175105605024316605686721878600141750048783912646056881374973824651798205621893625443248014392587301233540092392868054388060120411301730428976382873754198026520633572290218787788336911602040309218034299104109920348577625659643573112204215913270842915960781741456424079123936621657557293596733565339703552083844009913257915041556383336339898799504290658495296631698633087798948761612955110843657195892600371870338695114322650939307514002912466988969415979107832116563325698334605327448917827192117208580231728283398584018866684444769135292954883954795948080318976107311766312989610350540678402299622940362294307322387951501117428287316734325825011160574775931668392110348554576818316599136647482159430912157965403794148152067590979339555417078442907694243897361119592970971966533856945692327171165496099796846733391109146212546424093552485951282742686200934706021299562096157407329249012048135505421563424588128742914924416777851769886218848511300286125301009917985879030377514407349055239847746625548799065545288899031109345323068408926239153465790893567622804965995739389054725954022271043526444273264919161140651230680791363319521325697524742902146700513868116218966045963043769532533447009856268758210738139872591784564300536310618264883546969911191646532724461311408247658682408813056673541607904949294050451492650163408703872602922811676220213704570126296695264495879201960110976215963989984431797913856762752572924245362491456698608696434118980750924342563091043959995328827436147479593354171885739559639684177762122450869617609593258508241304803166640863585487892894885079246860256319868044331348264484963497242925011391706526369838982908235152184552357081650645314388906220982528985776259850434877628973257171358090787110903688108355797219201120893979304037729422629751260876329698666130871823499312056099420966957516288006782301702457010660088471483981677052461555781364702290343523814388582727604855709119101394735312527996362355109030910575313375430679892432921799717827121440387856353596586139281386342229938121855501467613895207423101414548721880875716205282605772192768014471974166563769332293909853097660524796682128619054050746045658988086641601698734707553880483378505414185449150240584452008802029709703515964260783919633105367936384045703720213987919728244720535741116602178264756571274551507881519505209050800665211435822118034958812877025032181924662041996397766004317377965713169392431956312331020829114895876057745719343795811010862079260887624441013114938104714636238437417602460125946682301222597727454303632199268169259509576644992727388572598955607047305241693668759565026736430700001505729183880077919360018441468757008455487339925297631609822881490569154874489021918798753883689297691219405919171717783572918992707194223220250682301011484085676576772087990397886858529775392354697478323737296348313160647906049859119393995867095923137692404927997151180986402679048099357587532936088610743449112824389886206278620889271485982330649580388099244900111278059803433923584585789485987254571824268799711666885412782236084920652907865417971501529267782432190634526339818165449970059562770172928042279979102336697420334846986631672920760971387781073469627726428512426213456900876455856203513497777365017657696073054917744044686501662014735981756269661803336204181525898867140227354686308993455390360759874301753883304429522624944381548789379360742722671988734024801481490397250119813376084853355328955598058832368605700276371454820359618239610510015953888043154044927238083075070374497405001764787675229908069068160254608122397095569275981850349159258641827422493163118308169609603558665689997659990766177978391107122891337466245840492676339544462781885421599499895625075966768082421250405106423474591589997015703657253916573187882932858813105415277971597017705932476872389270838417166461857086341125388107056828511591880873005110593697626248945822316462388098227693319446334945293862019561347074482810214324201474795735580067726108104606430154425880525039640165061417915053925645745771342886816133598015608447363869371533374988632552141852669895532684999763564843156496901078658070337655421332710370403175090624772550447030979757083301165125150726206488574136258341063682464876954525027497992302413663956789947475132888684880966952888579256402830437347984240675563310351052303839886021832285928948800897778213461815089941038943650506720752448989466987610071951650229611057726605244715253188459313117015647030592458887971167626424154775703237315485742236480224004624710379157667381942453323622063056906316701044396002294508236188195005992085356276660358400558704443563016057182909805480805399130427663170647192126720611993164881091243292737382008162175031256329353220301762040693910079284406533174744542882906203762586278285735511427709267210392749519563502534149768017155001763283723547261620310785910092714433467374468184685585437752336396203420856442743008367075727963327418906207425804896211174332882329303965276678628735390173447940433873115545236759497768681766046338667219208861500724954792959886446225525567021940886964572511163747966692185588994402021917646814206496561419181171571095636709678141241698167946899201903519554793200086245137849843779413697294940232167345552109541188183565199941028340350543396310640153140495798246733932398256321438351502955416910113493097449687891031209028966427060328440391571614594644619128574313012838597454362990074210081958810973798836907810181705523974134712101593612521444314189397429960141342980435356949337226262612709671525484607466501446981190062971766420065198399528996913357277826070264428869682176864451771108230715877284756847621730423521904083990338378119809893115012859908948628488270330858901024375862810802515021783052968682051942140326838162161559132402552947734541503820319107277552608880419194086463616518791482285878313380876209633819076808232291486729262154627644109670996402708269408168676226274704698443769293258330382995863822795954890530953340520924066276738977440686680186928396672317006458355352659030413683735469383171248809878126986153413001769133244631805177032623900609554891998085271553318327181271471286911627221645509251515585714664161439746311373302674796471820965305860750520358242162327691189182468565739757667038369320828316951933895351901980578197103110398883535159210314774442028989203109021497305167573721650876890488107468202948924781994591274205545198444910710301216419099356838563864491708059994633119512047938430961224784617209152044665068564531795196211755850501003375555531334946057053182740955864501270811558189554880737127564019198672846800256448783542399384459138397275853476519934956315631836094420881915847932240008444992680753056012052116593705891244688749025273417131213743425285707977272380666039245838736685062794213797690178380624053754984305522895739944950358228584786029169261118466654265234469288086304294221743970313405846224190675733934620671146355154014536203280940367436692568529584079975074192804790003294464977367081365115852875202679965334494275890850035217857578622784217495280254396424376663573047852053056322301553225745684372542574234149154516810542687626352769409190293697329096357028005390303470084814515372575319770207217240280527685189532234443383839791904794672849628225753611427471790242832897126237310140996639377245099946646167361113983124786035099564514018199081268083367705793127020889729819805927374096802562105794122573163545914859076444318357258012762249279097598207693901932919096387007630257081103108387386084300890935970828293369644249967083050111818326511612588592992491722130519592249361202691547205027570669971010323520405937684696181739871688145411543472933966357120686513795085168965154933240621730834284903029803421342154337671634597826990683134772839563964844630547116911005708223431934633595223503017978268481866697078290951061267101719422047288379841752268760567292907833965395143936893091384004324028533083176336655567016547437587247692399577465832579000146358395658799490878532084729312630066544820192175647731434248258062243760628840683391476706129668647656866627234143145218623756880367997099719730619631273418099073633939267133038583778950535715117180725573539524961167538319905494270872836786546676133345999174565687394033257464931955379175057624802072025225707040703278105743202273357692797874246462352338978527896144011682772383270974757732868482264375224913449309921865731283675874929797057763550088240585723399614798448337343391480441401998934233269109542399428645751359288779022837086376412594857272879807957989898280325258350859036639718896300279752049954845761101238257415238469675086852537189720370482395825020813019417882119423769154456292601652050030905405722162583984065491087810656733594653320601997005307884467781918557339831586284184405706558172539836401157554129319774956417839155147500194373451562247488257924884111519520046618213060199398800040137458182187473457108837693542266914253996504358577189965214623334183707511358531678314245095893119629952279201723716069327481024165571424427015941928544512555841413922679535195540702433737382455043727360697370132709583790301773460930843126451431236404926654440478955489071781027005356508965317961659917337576695096565717811919271011881792295921194315785739766299314166991319885755376337239322092473007128292475060483138537428972551436624056596083177536955021607944094801316204696966549050189798721980544143979082013934264646385339108637983631220465584592060652909584430060638639863734173004662679826573262003445169580868403523271122340625441200583909127083435943483038204171730581075376532254321211703561956195731067486026110084269456682766641192359634194321801081136246666306098734641207339259319309003020407069229910658981685875978082170977900097735240749024529684821956152751743807909483328274200648436909101224005608423091329289470842422851867878270523253890752739825189556802847119698853255075548762827366791108692923165173146528165808075574651682215197549006481448042947673966370607024883243799830769023200010108051370468713720317177853354548898855909297038015093448054639332307203036544539058543509853585834817600619983902597089335068780782253521244478236948016243091530870774662011963934793825856203294492070255692625098074463631191582848296918343195315556083727256416604173301877310784650792886041441084490038861572362361240654116476036486806301507619408769529131337041218361169718574646218325358589957069793184936972247901909624772565712025623639708501402456931130070764455153248983422701308489470541268514328207267476329695465014462331409942645429638610642250401355533290245793240361037870945237342780608168211277431447460176502611456177748983247861564065171216691961921412006151561058708279217614426447126391582849638673297923189126712787584603473238327505059676242928649565189195917736352148032790550455432509545801391274877749402139567647961616574533783651999374289337553830020992040499303587460714564178711049178196347187951248998358997290290478067976530672137715637748474684753648188874852227739905478167228692274093276805394358156073964648548713207769272360416270690241891699850961081956725461586238087570872531848365044558722822687411412435371145156324518340842899429108469588468124410920808310688333716207887121253384574138906685682719772744879111373737810793869848060334431183278308442229971751431842498356922910502035349916147295542196893186329293943554112715273497060126341043057626852060753043239191501234407249823647741317823234770806542417968361705343069202126662263063859350520924287152429942473886251034165154031850490307532571030468844831134847836250556975401188429344902507047124117511329944846119829981916964972017599761031028602496332742485848537282491387327795339328270182107806128430296956884138684083261503388059596477615645686045415327772918231323742665320724129115987861266020146842873961917021528307852790284191302792302166175555623241474080974214193987701645925804380448280216770444006486528163259094430080907261622688734572494937081442500220096658920641334907915855649675229990379067207247046589023399822782973912243848013341953835826194793283633256688152181994103645395122982851111456039636215464765717871601801133080098671382939600688151283257430189310006602738099542587051860857773907382752548623395853964515609767410609604944503173326557067456835632081814319228632599775682366195677491136282929069525212226194875442934545394065355795326830005583677981448565849353889158650425581955223016036289060607888864567669124822958394620857653144492339219937693323505951173934548913214273250288967805746612352826646673992192975057051780017577920442303668133607673630985650449602324600491626062949581637115514523127327356560363421795949387310772017619601374999609010495155296495912987590058218102000542130971828198120672252690251189555518317630942492301431845616480694539741787667126277674551156898417209364311181714395016455841903699353492376584547856719243963993300497229077307283929664688012011429555135456603356799904646274887515906640457984580567740989190922356796057712448823237462463150934574057598467371591622480091905211206436072709533543453059016864578027840918669957773330684910458864512487660277685689577063019324621039264599701810982275527687381850971924907597392401080151926898084278902552358908343789670886588273833332706401529103183618322759410301268684362715724337875757558884533037032856007524281287041024759310286137424778457565702579070142868084187839238252269431909527742840418660142827757727812804414331725936992876483344737135688291877115227553384186533630435424377362614375354663857678305322878067860134722787035890426805680422568925830635460137359271408524818009408906384498412981518750995694623677336740026155590551779227250903304516332884843165430267660970728942065049620922346304318535199118496675299875013482340371548884721683376146239445198433873884424217011811040407670944930191121568513067045464570533394031727601626725974748863952593266359566863636361058041539596531927525016178433369711124845222943624073196018737866946897517267163296111134449675126725124444700150851993237845512585140420586120649083533115678113514629825595883465886501375516736757896496814297973221080318917335311638932145556253202425545143888704193722899117303944593941617796506984573374058697519946051399280038749063351693817632298629934376614105689264139173490731290627610227894580920425879367804811034920048092527412352404238819137189007804474496630043913960994122749747106758564215277840836702247598699356451182521517486623055664116211767408749349388675638100153330852206572332769585248314869552729374197141822321074078079967504289934467999187417034944644643266762493848262054870082217190265699441929744431905848345158549058925953110499513884749874113400378667932405284489479669630464371026248997277325538293779991776775665546877004428540510015213661705955873874433928047382353874380477169058921302617839679728110994784607027099122798040199042868778703796448375858515604689970649719645862940057048531886550809645685779611630541005388257714505323132289212404348727202559945551814117521080755747803437067245582817238471158051604764409335373111305834908453475268699473685055327733621569498620397144651364747920780488820259111199375406962116734003488781653988163979163226961712950473099103572979862067643428481823016476367340086862797998874815789687255112536991046142615347000963881383403429393090533351252465687334941843055136077811671877695035148551923868980011233971744226020087075609526156991983153098062013031415897633598353294296067879459428839698119210519564697531024089843637214018560932615310703136916291245289680938091811655536127832985558790982125764928886037091812782361869378729994661196622106692952516859056830085656605267822799780869765006119430519485710727864356926505795525207641138498949768621107541337796600998998590459002414142199569984959327508253425769818981018235252216040922246502364387048473090338845086154776045476246304143266177870840582799236710682922340815418515011333645011907577346783810141035792072621663791576619598046552705492321808621069327359391862233723081274185374701775845692997030342988617790603536330857598536809702663355362784050104555590284841317367014306910317993343035618635684448800832409585435463686325602326150938646538128719931236666913267390757686103096951688918840462460902774763956869795046774067963813074832142346072571275862715842660202524890018205836236431870309776532389921158685161071408889872353130634050080718723810118443328992173523050072130515355032926268202177685394765479445678542266961510317768383239757804183640571605358603532293661677559781359188690664152975031500317257352100163318511945517993551596924312807983658494783777928611566645304982573081636467608450663871396189056551887802828645394231561297874986742557476198672147497071966493863292909173467606633844423441729566883816308480924317927419340699201792349944416797764710638132375884746628530379407621634246773934166850440824544317985619249698156650018412668919706759583959626545801634284534207084622921539965540372361695673427917453505977044567271974748250519523631487068286297540299863294349180989745215846784766233591117905126613913990340095913477726354922335334701074822797366977232240317289371041926108745463985431846031229942365693887273790308093673645025236145591844537003718230177348824446608510145020127596715755970987807805303520612233768978086739367334078516619791399173610471474406612122716955440127989954637520415670397475132984658410979710576419605444524607362544788275036424273601617308695215337691702718620359541782167147295655800134397199298381013881084433220884332981429548261695088648362705808504199906552986011579322693862586257616454892101091845199535929156041410025498004164981364620458723396645120098563064939492693905358073345092857620084476115930568932095243471769658973745857247762157275577907096424668220331013109061104886226682354707771636071042296664198439007592810514339754765604100149939157647414367470160027268411130239692021273047717304066163047654634328608460926116964787826810421698989894200639332031192455007409127008564039438357167066889309316300827252335608450951530765441634998665395412616631927928822920868365809453183839612652022089094611398204854804431873754857443721704491374119675294611274734434597320071940584431544540050406744107264633199026737289546715545880339619580485593812241535787303393547393676204370892479818434750599203328454832438729024416453143758741613308284986376096152769920420314623904008784774183236789033309533501231492920030974986238877350628578050302381824835615428266083005562109366819300698061713118261280620262429363721512348954085669706515272307550858323545949515914248343741644721329133406031916703215914938331658044443638251249925231491417022409476414988090739813729442850333650635412967370086723429967593303697941211556906145649622989765465978930558711360535309263084351753574975142618570237846649703279100982720013862620619259961785336910085298221099535500632416070069291554743907389783114244071651581882795786548752154972212454463490183253993737831206397271517459970347745846856921114604197647084723817195554393611232487890503463386731925427957205776600251379231430658317597308834085577817735484994021362862121876917698320896011716832614979712152174823492632017092613098336817375046844400451328276649790885962317796372320283651961093382195417806816638049334055156523726955617731938465373400811351093016673226168400703832985724344272750322690149904406391246521348834447401086391560750521069860332437595690042675385659240564402692096467079085157553757753862447386142393488903627231103544751616602314683446845157988382269276098196158497087979111275356287930298974355126004097975999797401055734864131251631543031274952786910116027594410705243186733371660598174250886104147740201677981578509487787588742980965549489049121736135320392379603207541456502869925485101358193798199066649155126324625286287621063557698108045905876790215002916429190979988450406284015884567257821581453884454745784957602450044688873807015518163442964329868320331864338551978654458762146040985572783378420281451894179113001332637806171946275827084324311997250161729953094031610594656559867030017806254167912831575824235656416254827987375173725261834570536959812312841058330662072609063460780342006688753662546250466258735805588693515341052475883524572298229045039012506190765853615985140749974320702120596327282016608842491236169567926005580958706611343373451435912477961438197961803974746844864804748234235624354136455176080247994006731527221775395332244839859525134207128645433040542578455803760273892715044961285483051197913160191683758012166902116402489797332957775085764869959851912946287988408377147093440843846042888379644111476952880589857388638551927166852022602882972866357898051562974198587799796305604209473285026041339937150257219058250893030302232845117394876790525353743189952083935964747705708566974950285731331773474189594522842705124675456447951345003719432496672650573288394234220521280506494507714937781488765271249297650611800114514746378343851265334614239153206029303206807857417573215569245348216952198591433502582697688879628378952877787010387252175681085019375974786229507643388934871486330468482582314063861725728973023452273800362452945003752525564546426219706193409765446698610499419317205570523823923975530021486458690433687025219679736790945103481597691159789829620846899716630091226239735470568795996019354199535928761445921302519987617505584758628717785108221098314272045103307879509863787387325176383559318630974953695414669535613217789864213389229083561622332916440314473333017887713135161948991297040595940396053537375513255556847500654138161381164686356642123799384393274946415758876467955291490333638361836258940669220502863117551531080647532290130167156434454518013377890399491217537589561912110537826777392748514005808447313413587483560517738311890233233898137922622857393727726783838416953229140971076259273285849943855784159591734125110136532133066665682268308115418933832035754261288064731609538385083966150928822505706775138792687374635969864429154676539498874801720875664264685063437299652848597443086452866352421572273360272482391246120731601113074778882969400309046104021296794846600827237046484417075613280933766407863100961721496094380773587133414883312618868312134422353108855344170535494458717662403299398493522655737389319476586457132288664226311188109260495882946660899567018374148434401470620566637556761395963778386004101153088985452920655684192330464587412580255001490031508711664933501025583356409120541228654494848358383785461146728408287988051624272056881431125657779288148044295374130892565336640994242494430386382039488826789334479596918518140758418315957297086226592471935028469194240820605103760972394070902349843933622083520357690174303191291286444616826560337131291838525170040839987851386704185092715089428234870727628556854666513481030283192861120520797431656060065929138762447079972881327617750664118348277176185104199293161628606921045351982916265711949876986028234638285586713629944085844108832354577249161998309135370787666335985698413737334279090381793241356153224536189294582123329023388600780315352783102706721170995891223738506534899075249143348170761224286950014847048940234256529051596377088542324781899682955918050223984557539055166520230784433391863362947319251086547789776330856263455545981364947786602103412171309911551500348711240634448879501546473590059386041701549880699682412913282774237570326347624173275760715212711699526964071266747770319635989890843363139093772859528435417002276179662316080994488622031807808845113108036235960310153595662669210108374837285161714187354657781162603861430151220862201963300577193447279836058344725785702266234795400544950263518461358029165338216209206378694695866859293845118866069468802699506783067527812430182083205086925776325510999941584454793067173491462600946831490475391769644012257113307512523647997900335399979980351780883882458361556878297775586667690233543377939342807893478595115971068224441369363539548652568592421482924793938713112339157982267860894386727701426802695110546848051216897606824161319212199137849443538230925346052731987128400765155705218801944565782418298216310808934620265919117680990398092076618911471430962951215682345580029653606504912420223252526009683778418374674258993181576139054596143290220254977780346708155557465662030268592795958294789247348196723180541126717437716122132924601142771625846006075540325698905566036685758137554741464108816860680854115785254031746524256629635205403426152215038408388194564044578155157950588926214990210114322343957163456657752185278927980769644424067874586267002397181641583568739630766355027810037922850975150069842365170688275311641256388915359850419114057747938067146212292503273410991223745044126937529133517307927600573281780309160963324496879624540675389565640296234481744230764963551608449340361543681582530512437182422967673067462709317208017778614681353522800210200846691380556952083139659998368197472036253050762971314614730973113777289029879560863118703072324507849455200127872511117294262473283275759029583399195510753662540848209223645433397939814234316268518557128512319770921721174606703049216005676430432004165469993679379898074922593199670553619073006672651468059785217834552428907288632770526521999654459899146801063463076321440054793768494643328563981058332418857044225011366770839122838283464629987054110759056932448126648302536138350243692562769831200441915811723286723033258070736407493963464438050077113101163188672602430213063252061483290447074430117241080992731068167918149560967986776545514230953707613357802239718916806386196213536455348559369154393810958835570008575011102174902882883494410344028565494753126495432764479668957273854370410198671668512721902785238099866118832694269673741167550407455630519657723689448972628610599876642308059418675015084466309558501392521796021391906923513066120979149507648825820100709928211481290199912471632457395303001064339620092935346329509699665427033743318613625708163991141219409345074147383803309594139566340181046010767339778069858719230636002546868881419346139093661151759067210698517903458077038473087103158159467153798461406544151548803023161581838741021057011853929956821428220340245220089256852785328957539426156466044721924306358770120113455588291807186367602745686258875942631219937601895817737913142525402863102228574145009167733896513127484036609713487416247100383510408835912139835971508551719344804122126095540220922541074340298695032641983550676874891527730566003343966920704857959102054049371671506238646939245515105523276972023846189965320793318229987720331640619065676887845531414884643842915022412148162210830600220222203964126107378818787609803727202372518890952772183523282885979316300398844424895088287316123274731280629010213830695215546581555921231293738780028419576970223240296299174468185518858762721030629883269836676169056980741686297601205579274543591255227200399230543719219539374018470827278570163658445769053556993603448599151659636585779812298471017895399327438547875506737209455060598139878932386341017238666767935117873230438458108117103995524303668110008171002310863227613364003812827213104507272125793824887338501885640098392438013194476290925873039632342054092094646707102882334677824351660216139192066121958257192320241398191866690947828795582424538372806763628949388276242178312851697049959426869879477235565436367978439676373505191654868397745303901055515650535819357494359849923270277254234821024471412475427836714773534332586797525641946203095866413621647224164614794216775022192332952373563374392637142148925131665349408103575218187205657953918695661947777649070537431248910459855656098412501540188018933747253640414887622474609046321331929818225194364555914818604872714124303503068318824201547871003955481349939647891214925831832772020777486702369077318332238283534115781120759406709766768977392452663263290931225334562238239473493460208840005583563265248213857208052316291924726474346606000792591618522026416294546042780138982776702872979528260805884623419151725963837333297521708037938710434362700006745904808297062115641945966438282503889912704398810332787249921353061274052408798934172086875968176317355594742273602148126050018944519115309328075151646935656697792711706503001159740468104461525338005702196778280557274544354132225982027120900902209289623335292593101255345696462226271662157614549664133240830698902096448057717243579653203339326355750290168907604487434109254572639091314972260754325423873985025773660632754616183621832006767367963599539257765413945908881494256596490748463841263419400307688131914662839844066747659489464834285434409773948757158453833572932452025938198429600335417005326664163902552885543282034279575387731233487700500853902772628023393309298281636507182062868351121527156186953844893859542432172052366170405344501814986431833115484840147757032899537077453176629765435456162472102058554060640060731340217150091972877646606247651600220800620260262119472863159249904064442794102762158246467223448684742563332588297336176382712985311074982407391091440977680749573705750521432666137811361036393409645627642970301472479182364146988113590153310900436581370691472030537138033198448679396937566971734302610025425161946618316905187490270603074398518977213023967901620525201194880847060164419831281096607757531148569844206069642516785109660362327759430340920467136206600766377547569529422425164080893830080654275506138335593889211356218083168942906237850524750427160519861695715221622581723260872803211989626350740537604555178080215167288793585195858777070148954069271745542909224474157233984719254848452846847420224118334486666052880079238062726494820155348646413620182187292651827861519629412938175682917704252372776683159154334283300728903972980153378698424267480833181420710087651483463687898624021862382475636144475285923393143050137614106969979659124695947930634228793615844158644994660106057836902097688417308806325314606929103491107528340981176621271145998055604013776756026440306437357920070302188406690948268966120055239894824372419548343432019728171031117948836972280359704670257812319720666724786118970150713869575558571519303020702018295949612200219947268750837399150651528923756967970047296065644412294147335113991867591239124042261145226878037478173878165748237212917435171515288290475990804271984961710722979970719768779283240453528666173075862178664992435473332675787249397411674786376253220824128725839546502452375515435546719010924373597348782941344235613962504422174488296821829631211145414308501094661207303779634226472854239976644655618148909994911473718865655408757658464845962598532001660235940848684454489431798004915656459946633199496392106846291823725919941652619364531144017380792168367068408733951050440376053744954438509913456708719687382681850245449030818640448599622003564163967815656169225850810091466442449866092213378830825507825648361290050472340831030026822418541069072112242725138492956995682245692285116043599733361802251556268222173577531487231229676128206034870333574831494583772547434696352470298031987741004295113899499933372771531573134768393298400405605994360145868384084066318939646085659075926143242867512814606914386458707889718809252681834549884693790464496784309381778431127735044213372076961946751706176841334359154459026369191793891642512522328605545480888066585859735459307526961687631046549943390595138131187033977197405778519200206779919354027142329071806426168998709012435287918831112877625667589849085039085286661709869569390240008808308806209336797906292859609889337171690713612775961778082047904060709718906283954132571429773510433750408279296962541619190966364921300663190973934075223808745623174314970205961130771752991696476612896540626686944448954920470000643994587701235305336381117420547985501330246710847652769327870741439664521945517404999581424833950034358011848648986164577416674631833990470039415507338957184473317927344558703401034397119533729094574090134724549690903241538833668928275374627825634732511010710578626745411598218539995991062543917077304701437411947489630613508913350863328952672040218322478360708554567774379867659563080146996133182961373742151605824889795116709713300833992289769488653043785667512815848225715089955616646667211649533786894177962868296386435366882383064732765988968073251797582543004001608708561596954065400183314990265795655101026424525310510502427470632922819911050331064907989394491278958087894359242086440401654650155926600432539327958126848844609433387385695515373428039705432305721459488958694828635095137701918045083289101660251631021869094161713196252899342846938392302423985629389602762051773671636768229476719705803818135484470808322303728279208653277749144402028942853988832447149472954147640318826826111425805983781960396539223345690169480166624362551651247961905912736288065666654865300841470074399587903899760505104331144772695159638740214195596944504511675916078008393454193418680548040016860484082274458422605867515316552297715680249166791505167314700196406990100576327027659226362089954512771229501825041990801766037777041638537021315424612500452300460190648200303580299457211471944860224841508334808775573568417252053525878397774038609558778629451942785711020161873912323160583633066725880626760476611885863508405726763817163669302922597384484604232638243220054401159408874813270828464868136676293643458580082276430441816510073875520203551401074088282485545644955773374202109812858842267847221054006832871223532031748968965753080457991952268872054265931839642405441563987074760652787952259266266612685790292878429367412816606353216746572803363024218033621433965372327830358161554372632540091513347180424179174615173315791937334063218618172448586978444908980842556525433222899094881668357598989460387319488299787176028313559771792313185568736573638203653591481820479919529078849861882952223850858103001282445604079452221763073215456273353324489582147428242398364606916477161344899252131176761847266031506929364218007200297267071393323942477388147985119024769914445573557488663654953306383580003811503611308097261330632948552943671463790109969872226522868375291849710928410518970858953437192794786870680376273016419356333280121266637938381550013112830635470715216779269720661060847223191860778251258004879511452799869214322595739645010959916285668572790192550849678100953690192088043522086056533020316439321838581680732280401963734950116495450068478528556334220028310700243429775975694974424522849176254039175110875140042017300099401212662785745929992776023766428433638651009238166421407959374092629602127443364415966172928553621144018505376317817662208939474271927313590565275684533904532066285045645506096029906242312635489192686300702676096181254368840167987945952154497505865069546125217909060562936805060929280592368958195741181436823705637396699809174882666351883276033069705446643719671231483551505061894078327739646987989222685008883738958566901161999414873342074238509530801828286887578638846087477285884042658050939656488049150560252100161545754616510624701918590513627688405872430208250785755760992856441800259087966772835129552776455231156257901191725053318799489018942876664996752850170690417078869343015457385576240982797719540374555353612797484514570392324012241912535578147928027805098296528822635312899111569253647273493502363482939450842003174295220236601188831541990812841065480058170364176802571672386939399929272857648248656440550253242246132776124695349957874603195742483724585759702739278748883468916912603624873614517516470869495530407258815609851755526766340307556385256280148230349599236082038087919086785055812526136688085930351933632215345590410043245484903318711478607908616530098562038829879490395808884404308020372492455145639009768918400810781426591484625839370403717002462101624429371902546260790534482957780773079127692729853550933997130871115366311506066814990930791963630244032181538263100747217727369450681165044820632620139282472807362310072964677567178291788314090006170843391844628997092390012971812500594491264303384710861359100563718859845752692689898923708132489970570319100278473384148561200801261619299864821352059331815141188655083808509491023868276141282745281189414771347110313243888069485309922060946752568667617569034972780452510907123510372626139175102527069319118342712246296564794045829258447149504897557353516982762639256703634161140266645592765986801140824157508016657256929664911091835171242346807914199300108606704302029761039253141817919775061090546751962828687234383028214899294966195121165225905781216637426260090623813953822958768806902726626381580319902628340138871622514545450132015095824760151474984725564601157459313433695637466428379131364757920449008744593535547849965126927984352896536357129934694840267688720383490554548335156186669929883444659641052946113399814285434131199634946740647601351053050532528411831903158520888802882004804133512227510244985228025640118103273024722083929994106558033399846620169106415357979618286864253695861301986841003995102870591316492018535511180903142612927148326610583875302538029040866368208400386887739586080273972905156300196837274875983624554146324568351344482270585697059104214280143688974686525017479895129479351818674635876337755248816747647168678635895204786502715225329885313988708102588836859214705717490651549710564029797077629453211920900829706779551097453620340273573661833096496436409987089254893740683677420116864839855174124582519192214068934462933118854989825293896408293924992786996084327446291845535893637516537305521279919728568773150764746086642023870413815149112830919865641814305541260215147224200853082262092855410855148676815401362288798142857877372125182098030119014659207952564724152563905603910693423315277134060502122135644381447257075597375585700005316607742783556532273881615693170716763955145250777873388106943417348275417692642064745830292989664066845808080200928965438289110826514624571113886952449786161075781360883636973539123295947817011080989419996800745904823422324907902244122245413458571974606927192784321831322754777942474469818652587168681109839312787341283068088738480665401916301837084077891190287826554722887375089188697003177919312273272141741183766139855536730290656601657025216741970896477929249044471073884061459911349438120028173206889083160448286541780294733087590863769060862882491949040376591791675763229427879354788163405162633598639273857717053023398239453794828684295065701118559378076941378038469137436200419729484576392081935455112312716047073235621680020529791238374097615451417640794705398252331064755006524148616317362708839811066335445456247646673403569989637176440420887159114483661717566446113095606100434935542642529629586198255538005051528874963802756079981476704820202852990245985572503840828728522942654375163026712887678666128654870548238093561353653946535329506524755920985215368347135624917785673032223731409334453138842496683781549335506617097843796800694405032388986081337599537682877464729528778230128547881022763149246095360700421573895467515840612251077081970928320981003422967187110460746053019528453111500135971455176322830475875968400702154711182531109996180654790202954918447028011438227252273827195521590319938194464028030279198631673878652041616255464113049163947444776067845575471914279218405749031979923845295533732573617325114851346456558784690140775315674306592751436893136831581826469858729740909156782654922114945991270075100639290295376102512912763127550877892858542508663121090776151561089063724707375190515367464907220017253017349629727280474342516967223053151168235349026387220869770162047620985818194354960238880442374092617739216465116085019884850572916521451201534890838513608696368572228666144848733813674956196796385255414683234596419162983999766498463158484152804550775478561365644023688374186576681110445337031442931498548215807308752193066847724206387221369115229026846394040636866898311054171481835221780715061319948008425255250157096729193640719143728064458539627491742628508124722069530094179070860443681514712776471021707945744217903490589120677121224908067695874061902313538864424126289073072704579151784596589642168181031182854861625047896277600246266858735696521175165283001928480061845928981987190366163922633097162465162309306124674763732203811483921007031306474344223096764118069663408444071629812594010527731247703317583664926907454073342444356513881432055923704680216708283928248877653233093290224639559924175329463611765114652201852213311213704462550187993936224320184690397684295580905934209360982847668757996443827578956040360581773536216968693152233576082796319354546228755952544134282929962642445068054203661371368495828749769702717459708031145766916595420089817339909147040926408869425848000931510001521352841523379784305579515910077947348751210862591159166808743449015742576695530827331784262554219912076170084214666112208909549648010442986650784653811414956558385112069967681815150713191836999263742870018975691080406230787671481990240907346242883955223129554695561339354551760860692887059257388414643068112402575738595907626729769117807239734429260121079566912721483666364074478620776556074733738123987413481078139261257643148485050097566972851409787910813928046576676625786703111401506769445497714805800048602511808807608267039322901460755063351552982920906198251385362658732958256554389000906816974264978872407973035250464723928742218366935980917028078968337733988506371453930371917379211997753302682787890119592413458879841953490487972051270343456902030822853013517703852780482130638340334098072971728645970978957780494619719277403992755692198753051793269124452251373005055506347325230073182130852883106518069419605309843150751928584422602537908601218953630197565188904144839487518163592763591408785947261540118549081102351440156282555652614006126363932193358233624335664564304439941194996489126203139004041776186424382472625408202317924779406822436090136499301193764420495026978774458933292905018206525846358248160767885488573373470374685322498500174776072946230246238702887760635620380647165258806238488730158956305471166773158831287661122861110212171528217770757085890944788264702874672051730854209547473424007039793921077991749614097069827913456972757122311314800677450479534144156020848269542778484245164846945424240070779297971508389941113445585292138136246813650641956725774506823198871082854408091305272583526510757214916927759378174645429280536288573720731581045785565315257705174667848928629238901115622349690017196017333691863480824257179039914989860875745110966013218001382584345118267411965322679831174056784357834655969030273003231585260263290406205608971219922829561663155457801640909570417373978932210884717943802614445257576235529218932101550098335194099533693723071912449454722521894722264326592289518300711280446813438020580396904369685578789098370985981600508095392085656560215576013644655408452051001382538732176934997052768201446063878305428079578787383826641550339228639569001518354047012191982214709674705629487200165542912554806307868792648693758082231928789057015819760240790799360321214396882591986479369349216279046205070122207892260618514432218720046078904643532877934023352138762243973641201975000311178949611486658364346989366532728711368825541438018975255445768276588074057436877195325104383050515718925920271768540127155604469358220027971920264255654431496947876450749471240049030210350524664833831964176543756273432457153412713578711816753901837090279038174387667302040842306249686112074944174705323686884214000107929091423030204657002862686776713396547633733412201097949972751986120400525330053086485456294289009871593535276292893327999704082411199803832064955181517838252482899991780921006447093043466638819114927631487237518746539168684070718512637468865064827016021341767123796115865890264369061958878073861331812434406802539181448628947037544224750229009296308033836111128099760882706014337410745424131576920126371856818000261853845066185758168782601735001816874154034982605273140639650466050342599580008159125057925666024414778401716191998603215060575906567521292084950394042093332368597591867022011800300290099875724454052363160804490131293263670401645779406939858886010660446647627751214384078482433275904991786335414580920869389166057298567349261345062787250374161228308705777535122377677857409246890610237914271642353394823821594709294728839656908428830702248953401936021350236992989066714244147496568665467843065877524801281516903558985988911185547495177963168125430415498552751884079073782860579207780187876932856224429015909380604638277236602236800403116130343290774693970282805273612074888660796224409447511027881408807070579519452127118265323850110886552206222236194087807762308827954705695544012620155071540113636534529274456321722313492117873012675236641632927421387453991172917163456024302696654948666689634932341320528304085469824873371930418870124991003031120507477867146791162482779404583929296424679395624314074417762635582039255859000191875182090558826298775269307239226458864426997190782897195551920570487855097334439772514552172455446152937746217105473983249529873286954787883912820304570141164884120018244179012724947329662578893501599930762923466259963328201213021546054282943322295116600107525986220806907559914857497346251017501916847315076323485316177126629582577303402700114919728146849527571618491606864539643720168565788464002081728229378631699791152909175101766701083321419913679650006947893529333092447894623617686708160407232184943993500777970498551159293317970641876373873240852709700255740368284196096601538531428766979030380646528752595376141645685399197925889033438086903814005368222213156056315492539887850016505305455942561313773663830173888945759385022500919474450780058942616047577416200173190838069684676932991552253318723924781949127789297974495842338443389324401629330932069207543048550668945755858481018966658702851772231607414223258939794097061166307386053416643216360689334185365142305425895924778736702591439650172348146203669147741459929226164602537834183298228826926796717387195011720143463268100682602065046387111147177105820871281821607438193664308768332680943738418434872768705544880467708200201534897103240156686747304162894756248478245956374310130068160472071338365666527182794783675993169493331652768190892438216000268180691664130060980680167123498930686349737187521293413945767160938534839578870646054914236313942712851062373206167499789451253986545013435651700802775518094750006493833929075281549172016436923975661566824670806226229950555790971453383590814000444280752808705678163476272489472170404920644114924903054913061430083665890950711817172674648984770919135571933346269876356616153417452487714400555063273996536395041712782895211520700479200166304702560778430154280712501809303973624922549965563870547709383436349780996327081113589677359635232135984598463100430102267823216784976203703373150213320930407517483754946484593604349973283291972513035620706383705255638265236002139455558572997560380619613108178115175891472079850667493811521393488872152229299816436005210662092956313284209989110209572465422113593162647887408720576335989618629368832501808909563554999639069759053307837699053247644508074194720589968126040202120204157264435851782392685215972321313825327815766326246058180260424980890226185072841289121840047242765925920833856070460930139247770036640737847983337939650142917326250779659677294798966426122630355806973948000754048259705127628703266356524684418461171498626677427347970453496673753997437593530541639964221850033951057491713218381600992667053707095202540524232812346224069139796016896124038087234180420899962329270140402085507153672276782152537418232191372578589180342785457343112882482506461889011996582773532911345242922839832021733594416584792509212121598776116728700337264713402602263661813317078679273095980738539433520333583801922779126517246441867213633938456708462130986951891760069417065800558441878685999304768936015170727839411413957113228618051166788913162822599215800124556337567087792559227790542199492386748895131734524891798625241165255697916296207473612511246507754993197617542736225472270479352877049653408748313001778046297859252124791151944054996136378189281012331414975983445839701572433994490422592661508077619579197379554024034670686004330253502313990240994399739252102263904715929366964972147621979700529848343772335748137365771008306367475343817474992934486844038210659664455208588276088432705060278756489198686584092314121347258771365302966853167479685718509766820607603664720481291723011658779060082068742693370881544372081022822468639908241017670769394672691656303085108637033092258199389792134101026527396110776483951911189521204252422436473057703111996432803505033156991329919195483877460059882550152106965332954524419191424207313499420501700109458277910167580735393613178459500378013370249271998866808000535963351312002019570499008663218673548579375235173774868228754952581386115047330311675976057933689418045210608661499737620126556896768642856634658336276701395896564054387060571117341278003663801256562935182886944223075442365661391671230306876839434368028089805933489064147521015760058322075890333697201094818166639198085759521942286101496527178013872086433307916186109670981594751110086118659755922904301044140233976662716965087396142442565845033444656779346430158130267820875302364347876130284368996997123284175930745152616606602766168121682732520951428280584141876374087253644017177287691581866655093014025600205621360790299137338113562259354844796638663750753034129341862383430259957783459534777730968247024335661934891309678383686717933454607650264275758666094931317054275700414090337655408241944413789370056347544216078026746047653607377696540846824433442906576948884876808373881988932094043489803651812044539775569488547169693520576512170950072047828142381849841650180721490118714096237576854147464260007194731050832731570552229621211372496511537908965782027591401638658166577016399814832199344346534995808905343186763126663118873529821306164393021548726395807438066215603366172537789391276533665636168058707082041398742165097794083818000231881578210621882126746239193669398125602461853878732998556550151014375816010263030135490693647699553375663242477167205692220564368124473479554572664320398073297373615604091815936341871008602918584583532849010756476289033286312427516508384644255177534100605048298427077305079239705155734492774923962716362293292218016006128984649661035800584536684666635219290281517857237402731573734805125855992223969366768229449478344811463101360986400598150989873991507641374406794840503600727469539652122684581341338035836685383360514622129005185115370874816970253741762704034223993611666590072533396342859492040441049525248700159155924378818281993081096222970948424508456619581698033943887415673281345770515479596788262337960515248937195106925909616805483751611028449678947282803113136383187350369594285796091896920093168256243592700157575774709120859812528662933810383641217756070445617125690993539644192902504222909162628679877631651277417123945550091440524169276639819526343743132362803986091817916038558254119167280267493616426369619276642078905059420800423075327261645261206487535500154202831925448543010152538560218973412939795301667735853501978458872260953907176960878668712555580027280445354129151094398975425930304761256028523471641709832801933256809130830843781519794347418966870472941645956889369353308009827105845170328225765078179272487708835084447772467163335834451853780326356056403674718792364197901463579837796595928178531049689793655813412355093351093690260693981620719456795129918301049366316397395316498806624145991321691309235560641658879961264447252760786496880933023934878677680177932779951560501408700913494709345894403584204962971651541040690397684757705406969839453056528146504661022170009741793059242642699759579274831365460920939101320339780798111450086248952520647249412250320161197546506688075824307744667388548026482724614725501861563253367403544792578261334577423661641997115672122254053803873415223724197735777945590510812167097430092992808485769964267488204860175262039868578924491664110832526098253652755052160246989097168597819895170339557916096953193545039581638749794360501605738313918333894507410431502504689268739971055119093552227971548950189104450218133621533928200052036392788711276152282186346790313082808660301446221653585220116924812911446378415144244390982063864311573948809894913671757402044033991267018764922984708404833586217627641365164070268926159442439301381048193156736719886327812020368851352040875044945448531418033979517192779923169719472027073605625043560024768885331789112575177082362217073550475625026866750046088728273862334000629388483028083677434093004676707449045180066135844149566118171146188374539220126570051317174075113081469309410919496316820096822697061020242777954765703214786846496013827806380329807345587085593526626186193440629259299267817773201716258672705788947055033425219850569793234304223229571846042952117306937082807284014500501709301626542777540551611077423636278064095497280815588977975685084068656098147294213586307890403121456943665410493279080489447600222363701402663678138949391372521696054191769012730016586037050887821667100508142184772891228062265891821315525950371323325059937072254979675767264246055524307942114775624610125801160845441625410122844717032552082263275922730487751489129367353780062234029584926022414895862212480880313991765774293502291608341917427300701309549217965693462696662547008547536385144481034568782493440649745819728516102408996966444901798541680320916902899164761068754174344866642771971573956717809476293029022987592621579907491826531490315366927267334996699771275632087092895900551579201757128061779868374739861795884142977186987375367259241216387127440202075163269904937324399527291353211252006595021738726824153608395473111312532357287999230385376216925908202668156240849995827739874729640518749066054034191269380303001729355869693601334679402570725610583732610161945749955907772895932815974479153926617999273825044836952698248396086679011113895684853562832247229309859377303430730791216577075218976833273812810279700516545004492368983286017554858429625568063488035364832126391025770810461766455637755385874571302936851688091615951182558746030292493083286619754928692143809356171205211048243250351262502340824178120495707215253489641133242728147170290953970071844684164034987820755707963305531744498828211999915635633680428464915425864807818275325109713411066316320290637278036493013079758599110578029966803878814445454442144296823950633772073437657858788181730351777952209479245750703944509396179548940812198634297926938144917814057209647329282760186681651360055597304701448420520776875904172654596585423896274806768563689907621890282569693212625230509649319417555726923695420522465665862020485342429488081404841148030903000682438719498227176842178708692929527106562690730875928882149403981753645688068652738956531129847257261980464176831516258145005114429319794923923457618572747264109137170665869195998090359106310040084003295579243811971950147427511520617808889611873397189030004938488894583972818120709871465978345761035144970472922180563079198560951571395898005159688744549640328545043047359878751255431784384692945038264014495601937929281777186289875914385930103394313736556362736629458164628850170220570610260216013448053152405833375670059089175495854469325480370300051780449895673922070228229273905034896282988436466301883880852295020852586935305388451310855854376834102967424244149271794443380781989850544857147109663503562950307979865873204559741894978861832961345373046781593327395383428209386735766505447449716956659026420540728123510560611519835269910914143009520494807102759738478498585186146629168118736314057842011602662210702030074386746306784102909288620947072300653968345732249045778615660412637463096605226375074039882658001561901716182399180348348007658893921351248857855751068716582358943027711299769279932756998734970461062930137433160112271927057901022871388337054136826088455208739344909860112312610368663547275000793416273046194480712002366169604050360907485868127912246618727134621964114756900629716492099872170385731595365283288382335980365085871644100726113098183262260505850001008215095110369416105425112173305520373231359793600256896265626855378854907710977274211305956585949745511710981380327378047647362628859297199256963911946575938658681915021968927806570172336867860685021710017290385745861630004316569298550418300777938484066960135283473128726624643646069261384207352201068936781247001197285717630462332297859187802605129593471281423625296834465837302622160750382352419840527745067255258222062145959433769444531634578900550699417183678734448476619946345262300667030201113256249933256413353399857508584828612235380280870621216470838491620826524480390922688952769049078968104076192818640205695512526490922059287013082709498316698635077359090754910311548070042105381749417113318589939310039636921034978013556024534745714400526031119993587657573647696660263019776852700958438502621818214641682095982473475573033287422298787300677758571967121152381063961546297023903259953447998695228162252082096196080336221650863589940897810325492283913983936523509839553957423767375573976352312940757102341519496060444210635854194873653142832029254263321657360973803728014456040435638418207612077622091543188841524257763453073536709579308857268846606414419040981680574914596957826125658411745670527356663396391738880320342569437263595805903285452684725068918735540090072272601678433896440279565518946385085049880007077472807314807985993129687174875583553484189023334028718644751038312735867943682031888051067472962811047962248742947672005832971862373967268485441393294481867558083221636144571200090595801240063520045272495386355222673127284578681850855447396897079621682171723933681093913921689433158276173571730436411624495863974128407337678413070787216954601980109636808196946999366753808536186833739942665912526592945763889328424246395081150847001725896252306975230196280153481936741447050167483399154681316940577968106004073030514291765388071114979396219011967706771441440593632526150783086637315546619374858373230623604237610330997319445289033885724634451338610637042810280306086898044570010775951891374940182005344352671071304426126610758393098289209376136127711500458985365790266705733914992004440402671922249626511198442294998308506295159228000920152882094825879352205948010947678139009228791765263539717194588487462494165758170112097989795211625938722212162562517750113439909800546591495469484123740133657427374765722520868895586184375509507563770011421212987794212916822558131981737854555708053877520860544526322282376063885825312271409200898352636364599336977715645305251633574030106093900746722079541223256655485529220227688794135491538985310500318339230729266830183897174802600563215049998412196423832040708305797030856910834813273694371215535994433688737425899119846270177418081339630746346054108198781926203475718627751247010194290608621229361862604602971987225425159250178353511168332733997796081765618713817413826079513207903284529861165411455773298781675803154008036673403501448031038064137436776065348994433501126386370131902381168219602223614368147699185827677816009862031891762298687060577508056204648146202458145525397291513479081754913493649724182470505849901824961057106504826011681247625530267576147562166276909138825922349217410965589083786345690510666846185985311295385073401980430303366097983057352478001894914423802169607330988365631582256484311343287713741296108554016862707018351095407245511507173668332724975774746840846304287782765602526576236861733354802629834393710510500014410869307881338462219104727440358062605651940506106694800067859614002351189274651137917909706489285586446995486812039365805653702200356204886569254507219243673684134361797134327462712662424956938465731609869490584684678494689248025707890945721374272626029840540955262382854714862673911540957451807453373048714553851147331315375714113777281443948156148253769305303605358511476739611423520018100144884699369966077445068175499243233509028676048944655818216710662260532089826439235660001089803763222825562545785693081609782349993380307211357036459068335497866119037171723921080190118788975929200168964812151608652202947451124637541007177490866572252179923472223476148422215877522031487971832318724531981131690690976278369743781709529311474361871378741631221133230422576759333364656938127853343782711472817130332526127281294208100575597793300981117058833781690239426017528982212244697413046108134326516902628493767966998537610203161446135112459358659528822869248584926554660355113607130516020047769212047885698969714521695873554155803376712241610700704563249742444211424181639903847236332345271785381027232622036613189415280123676659805498973416664601821521208538315994915248431805488465387603130464037793953058284426087231474314724981278698273161283407380678828875211156707521526172130224061710158450934299134768219678904863765891142219776838659167070661309208774270916956884084440093728782965490401844074523450858535871470002516671025674186470651926190462865106698213368769695862832641142338369633436921238659600351316357608339571452752402958401115980911518247855711868167631379908510930647594198533610610464678184512277258296129212914386265724751376604435989799963511139183735529646431091874737765606028799312797337998437670281886793571749262828039541859366184289638578908746317140201177330143723655679183854879266238626593798157569805452467517682551124264432690404004882757851261838878982535777776869032001536460440067797924227518816062597936274365112067278783786934794263624394169222230127659841069390056244677338148351599083446201723243367731760167530456331886119309389112460122205070232755765580624187810625359962170954220904131568509722252775982280605168707608743524945133486853789955193396532151228001005705117906705990302215865706588247972116477202996616407225862695655407345361542647465066237713722932571931600251911046216194177381697003153316144534104099861992945219565488520388173441162359531145554945763594619939104042007829759024108616228245009123723449599834960980998341045420546782203767999168525314409503462467383030541568916866228147265611945412901502353502919193730913278530109790979817787301915511765313727748945771785274431002128417384253121283235623017193540898001760371137666027353411541234148469918092462187667624671489175053789412645497618988035138888460405610098092980433058078306185471352811898782302936271173193987815374089658768664798776117853458258634831663574373281400408941952247157537903187011008798194904372032894743423680930704371736858136057055855322000705107608776179413890369307888232001938725770061284372065097586519780451318723285527497826912938377500219952141119029517014841265168195271784258448216432120052440103298008276194759485156187558388470598563665036646096684698373115314744202157096235999084764266402335028199351445036385536389141414607168018182571536589522138114628529559745810230810302166596994980987117429997412892749102740647462034257390031316379653990883995239789707979573224962196623470272372687170961938264117835707799745201251080661177745630437474983426231354801363096690177312738719967321329425784672278276467026065504504786372780473666898804727624352472533346352600559919483219251824018716935446358213782534135082234038262394370442030114937751039128241702442392533243186060981881560300830726251593421438380840484994237933238609881829100603096995904442206813153077453903206293665168967838024123193291125892871436545228192909933240149594251737730409106656138453317929600198590701488155954203698083916035643141800817164828844163548597561534050931501237238025339255048615956153878037100378490331052026244374767362055417407556931089209243662624143442800859054572847462828059907583285263442222492931154006181395089124071486447206999828184221745599251788285726693507094323798841099244946923419336972110341264941970505952917156129265621357032585420401301618677713557256520830487490629445090308131080615354819699861018693016720026709292705801685665261029374677954081913041822854338521205973471881482641047452311586439760450552176045075931487920407370193030134954538959643887446903293838150651141094863565668008735787622377537105322156274645708284930518644931398822861955122703275865360769798942310163890407628126717050060665882322145836693680853177311590007640322285708871028581252359967178867288157627157969274383944791507013312882440980195237917613471358084561803351715751267629734117438622634378106323177483904160333185676630072090304162829460161189802963253243156102261573283664905801989685234038139823891785082314525782640218899439395685986983092417814008706672770198107424582366188673114979773372067032218510676006832577843758728515975939677501084490936616941976613830836273664402531178586067086149063283195877216225455952907703819938800369896680885168991845788300113846468452222735714009696037486804850643965517786219319650384399436496714730327228261052758586942084420879048301311584480173763805842466806748466491446635135171204033359183505843270371668145916153271593093319843520197869724823702942970689933346986231762635570391534717498779333077514109870065463094873678797765757324304077527028590200119430177810472018992779580086284723944131630469890161922183475089867590177214235207376070378178958616182206069716613817507660051916762462723908945618946303160580667899351828373444263764695343750653471726281460539520178914875497771068064974779422132612571473680347575865247375954987613049880554351469586649172604506391051445644943558796421443390442758807034915288089407969931757332429236137632663358707013903975967125622917124011751517381399539990947123675672522606588597956871669167477531925221356724879746120604904721301103824223901673514846029219754824449114204527007322724299837123225720912418438182177584962731504301864126653826418510724030968180403766972752433279397493565872770437635197011875831917254543681629396803641014806210911011715963489715201341473506435750845346152977625152632895201789541546547091833104784018516615477660684984826007082615384367223739199344986290038931481841969289576249502820378274504396608043072240426947236663515640762069755556947788062388898977749289920329490462320494483803459564732084912128382845968247406851615917848494353004968072026524775454837503203011976635315857692447592790487111646949891430188208786424001438029033112268564946827201010094752308451249413285550733316464436474450882420035168341864402951053029078298692303803157328125224125000891915942671119814310455814740584329810666960042769975308822857166162946650204847272743283158515046427202311760268646318226495011037010224651222910080255122966264306350544742801330810101938143241186278625708581004769606976669206305231313680191804439182088685085201929859192673476236094661760874707752170199150856320478210773463839509239727738545759034575373495666870231375978228210598881581761421936485430483167007087416564494611191035600312460165084118169466017845451663137898821249352974283506121512814359903225718158852393456014505378163885315612671293939849049268093489175054780461137908490633344531639736552984264565679582595470002553121889108549405820197759374540835326792841871191754728021763257835469420069085968675231780906492960809110638179865462731566256748126344444853640299900564379866163621556616848665872618949846257396122084861824199647669505985801655149516567585214250726673094447365132779910240956377822161335794997966196092366684377841657681037862094266264610819695124583104913551601439257210774363108795516917431453301395270660477645072975891926673751640725041069555372948123410650107415370113626344466178061804182105600417311954521114074485657510897540940528826191460387017172504421922329214915177277813438160487599381172203317011353801389100132474107431320512808602169835210991156413485923603278607845209071884357378053572636897012487696074573684408556445744560824462833004785316417132500777227938307019726142770944212638143446245600339701859691258810682996608599947749071157479070376692870157814544034173767202319210191322566227304916808466798868697161255109429908840815540549676929673273587466806592961354618926450524578445302958420577094583288368189218457730225496918728849537346062619297463179156633533999064453378252428726382764057889844512683251914371762740661232932207838736435059182883416095066205750876090798389308380200941263894141156133909173748736969103398308397663587239436549688050151653099386762792284201982674134093872247566813394384028233420715918175324695841588406061539843641511456791087813277621954930147881503868877313432146719452628152421005333500690558427708440179951908842550488920971236558473825081787024544358627447964248557063453861479171640735949829902749264255308099195540065990360852535028744839815775085320886543261859003687381244940283455841789208832842078729124821104342071308331179928721300034428724774828568627502439452151008879557796570345933076563195563493573272502625591524076629996268823575134828691580841987347734347850697406313287217668322995721205628550341896140343755484469831160720621361632898058365171748699220342056423385897322791437891008720445491489591915758448448676322851667504260116409202850715805155170546960404048925417220856892795459867495784203103999868040586627254077798512226130721367996359854716599567036235243166788736643567433525619597765816765147885097453649129401778050097878333798485622236804214030937887257504877067692092605047615963974379784021317096142386900400384781152395462113787566157799035320216521368188851873442359666784792166830547157457522945326128015350755318879630848414514071631902476009798784170570032339798910255692535048994939104870289314529483490528479029164905806326887100089635311169091986383053341632890225172468047730649002816345498199172314182056989070471650063042461770940536134121617907850455554209099144449900950922272208082978519594623147989766712697907870587377777084548468492888460184249441520514704715470715143694383367448156691742294512940898326945276985395528672673648883306151118079815050775322902368942884435484553674603810277157796281387310501322735513553714822985194153601430231673634505159008172561095339590706788601691144797251812407529522197917730173699509985634949178676075899010145666513491908212799863897330424072568112389405916767823551680757082842944323831824366935646138028657614474100795953789999801522654278818763709065172125414993404607456800188279547978399180941988086472199460285685283985645013410997970191862670993736350894275048349592859926377517057134837260672332805376875039585171538163467078252802951238386254004896762365839331177903062608470195827634462410603953325850853860070451217339895907792622615651460104961757355972777621397315619173119895468927209664188935676190089731366362752696294700952141368668145744559946583800019528824043008265737781424890096384922932291889098782543333766997019480740547197712992607455829560294119076916751493128449862871922635027482873413287666547476059769919282758708335085868358181444291857048249850285371829103066648804717595437091363665000031247375431651080217326849233161827688168377880439453637957422470841200957453381041279278341586658862968399853775913287364251313228456910771041128129926044379681890468726757028633455866649535500549358861087035526534645799411745943933663355644962270930324691847105359266845119844141898724270893397146115521096682107481562014729641213726215971474197843577182098708229705188947260050729376292203689317393400111233885580787154362805951258159120287401158088504886048747643327721207030866319451524742525405780929233564840178688065275302861352789288595455438123394668590832713164507222338362922554159836449778531941655697985480228757534326775478078102999434762259515946317667296317160427924321358377237776697335020679072565015615396266268092342811533762800005657247193005740982729841159639054363793279502519302000475549129272936722920334231174726729358497015241446882654070452705657525984329731169452825327109301279914413717125049606998314590454768897991766544819521203143997504050970771009372369845796843111433085451684716239125829805724096863138528806533760399273591381454836231171846422455532449259628482842697928393196083690149676389401722096183391760208260523467555242554647902075538488617436399494862053310507299018743358741244510320311097703200643540226155842957651235845160886509852871840735264208658641264516376121400394311248784380615231961830549915252227983595731844690656593010665548940016659445659519009588990849385207447324259325224920408338456323642682288835973430920750114111428940912294489120407948510184620588970888916455214349167618020312808237471964615249335935839548430940599001645779685253730210185187448826312035750922503120654968741283443596884827822565810510923327849703926020127286119742787888244983181488623084694272135923169490945659091520532961315909626656734442537458619237525172328489606967383734212662801608605465505217381833211043317460485401555456126591520540376065339589781157942098161850737506495001024622510494079224239902837314512550299287487989628342655275140504800868842018980526496306461947180783179175937710797674375852737708345903560414916735068673608534013100309505948565327500311351109110926607220005566072120758297093903142787829973433564073310691279588948358399246640986213359943196871746935633365466705271940235557960210636439263796132456835644209488675190147220110526579125664409816093064774327738579989338062359393762744791322118860027247529383554902861991287914697648766279941969894511141252373410805486112855662908181639549483853177234891502318055800608979619207899248096752598128604339398370152725505856517205104019858044755687572619769575777364773976062857253975308291014330942822740339560920684829857318219934095661398391022897447265448876867739901542982441319803650157557446425624718186517076131332726335334655415781392403547390199970472524418751035953317842677925973140121237091391217736782796162033785312597671207702567296877962736202530836300685732700717173857470550826556504464570330029724128459222692543888798448457862743163105475660826584260099091264428760617485266369382925507355364233893205787570730541641146787995951516595663813630585357350729508097048365214521298971694691042144156363952135408606153100657687026334046689333116262763629960895243280479981338580904034275630215909566992143483656847821513626879474790254445493558248171203114610970896362756968216673695327315481067061766208213299785376044918046287131548964097619269199551904715623719294971919894441519827459105532689086720984433451867221773164610923036657035019818070435237597519604598653877449878153619803399997998901387629986010562991480602749630836971993044864870064311000654471074449784402569974669794736226470598923417042489120435188290996079575149403193815291255393759392320974897891804421681468677666245929423425441145997248476170493541430677408063299026904969848164512872683003276732637476968984826056803896385992931248006070793437787176067344986941691668580784599332823993080774664920623038851250178934410138616596701825553097187601333190336276269266172228770856020343207058605672587698288378297239053511808780668922055130374369507828223376851027371336843630557964570756602291783537923068563023410697745049688496049396516209887738657157756481656443692101799468651593273130255624387829529954718014197383597779359680792031207354675312727299235356361264282334810230503415065004440522293421741359970675143682596152089849039590189762608872716255971157230139555622811505336871269951262086286503537180897207924164134468641848678431957823054505443118888765574140437845616481546192179978971337360057079431307204091993844611300551822487639107194650845012689108110323234177365585803241530799698004440086879031404270973608833539140872128327296580251096904518700697312066065214055031375182676180499412210515926455756519226424134430601753042061148538565254843402199241742134119723416996025801170706377101942613560482504888662780352893693497817123673766910114850468261496404831500689039055241065837588650555734522499294848130430905394638625749594039440007706955118089895785210033705733957162381769592110196910142235610756620327257783498543782685252800462163162854095044537069815257141018463169653922707459214827864406150465161931616703443579493605703393064691061208696376332333143171687711942085189698235729607667190369900965126505262197721057759504428654845908359857223355780516245675551858980507649711430561018466407340248336849543177325217714987057375018264560759570060686765760795254302249705107076698865241801572733561497064846393212551712932962214030982750076371076124528277432948066314639509813355871853717764901496160674851423621958432542122916816709829621519943974804371438771688234333011439436879560927306336206177676332124143945552287329933590611689293345593542672996007020848232271583019899028140963039571952128027066715111757003001405528428558563838907934985739066513207199139505378724843638722049728623151133994794641154918823341898135640689497605964282996421137282225842964942970430436530921867427815633812304941538922316060950984739207457452611747176984082262356511954676459458890686026045664208365541211356018095557476871479344823538493065759513223746238060588342301648447180892719575312681658485082653908744584595579995643471736214999135279488728462589639710470662316595583531564520958495372757585823240423815143100670108842074136158499228025297667081265847182773148494021079602691870962377014156731094910505933862267957428314942958577821854392400026518041295337363788106614283796643944649861033746946428093784457348645004567801857430441464896273515406702382983402203126243442201898937625499519110625155366974750169187701525205178911674993934687178230171375607853668615900877219431647157156039896898891016600268318070600177655526082205303386535307656246394173201524297616601876567731292925945077703494749958608173372081166925822373673924134238025196902428545021282591982599343778691249262086330094248099859871161849457212799912866240120669057226646168075431680336514168450023804706235125098626607664373282228353315422812124246196137601302069142029358681481054558847132685131004253215450338529333344869771409735386453451070187367074549474970528940850103415123881179778358597928517245869089768583634851770868749895180356236352702356168941320159118070317750095574295786762211176773683947061168349230166590215109170184811390653406257167186377073409449065446927224802151057151189473472885074716206983021078095456791737420807635890294596337678402515728986461502540266781695160520931722070426894730875531626571527261531363482681182427260950802134828644102109025444934847917403393386035710429486299104271110107772597897233891810015481157664804029441611946198039325775417395967023957234252479046877812467987936947932459172544189991833123206089366476225748125433009343208910215951413311405375362045388249479487988715182603791108659227401463450529106761392736598954033387944209966211921243754191518574464582545190655164787392816497878500766546837708296031780257495122710631621787666352508571595400994930027748594321482045975802776289505983248889823857420176344970882777234804130320594363100414271834522875963634060793850996665824796773776438443353991853833346222167851228015510755360063294831137378409272921596864939679755057335512968762447025844808041787203901751890843619044321278289831878979169679336134805973067208771221243970936465838725179660009214878556947723908545405704599067461876381708250607966048120499828248101965350583334533687626901885325099481737562161101808505770360245887779720584407876333807843526110262204859096648503844337302669631115120972300843851673540126593831926674952438041168835785180119918622409417504398932294650021920667852329371964226883195821226304540246433805225944505941388875191099774248101588598941539555937901331277197991480633461024766754546380683276510909093670339651186657342249045568384140100776694876998054486884480389077814966887728424822571402759332078729243729180422398028008540067467200127929591156915240229001105377450432858320315407760126011095618568708475324312479607211981404517700807489863174549925996747386317564437610005560979941824575607452767303807838349577344222967488772919472339658060645342238266098586954463414123033096323970387867315523536397351518367255240430013805893584450220236543307205458640741812321694939034306845108122435634853416434939208626909061433143391145090065707789194904854674244758628895414293561357085317198833294862991526614985350162225697611265948332145300510907003879699662352748566163963719830895841972972058333741394068691101896145490263321698875794462586356816335521712989700237765292472399630277749996482533424621183254071889413139585523705206969725149552169320155558719628709444623938992899310701914099561402688930539910152198190954283661215331858569167464335108420012168263307265361358175927443094042394074645262092240104034479768295593213076963778173520321975237591888513294901797006284282004511333978693594292272083357682971845561818309247087065092016450000433354121249257083698377373028797098846519644551041978583861118741072098348147805194507093212389521366745722618126392491393631685159416743400962568667674384071702466214752712907658693383955901533610381002492694958520124364901984102226915421747707154017160898349443367772696347685583670620492372499870933580727499282286236605569325505222526064127645372231986545779954372571714954235874526842216161606534378885580584721927918872242213624249739043225488491103457141209390348008909837303221539315402243823817258494885103990771164787789539962881565025240033698458821162614674043433158961185842514583975185153393119823238000501422523876491417879004632726586214277715832935793535422743531965819380381721572097348232639971547737237838922665178059973757927003522883127457663387794929989859852529080471614211806123555624032007837151972955874682949216680168597803376824807673132318679106611934628960499276138450702969099958124855674429065265119895143531927286433340829805358201933179390896726399756772309070932195710385299259010019298109546211697675121802660006787132618502350818744790561960225430052159164402526866199815968371855817814566968949699809057016198448290575293047891307414961455604221480366288697416184014226810010669753523685806329918891446654592754471357882356769868004147341380596582960279819318763737051171384295588795093380851946391855895088085801897297783114772537342912664430597601364070116023191031140492014383095044382953920937066374462549517734712528065764588977458522693044463758886582139968803640976442930699124601687606557121539467650473710026509606262270496385288378475303253912561438904913194428044445230437767190542918961129734096987507500712806612758379396332557612420281872123974757055531563166939521572139721819318512195732962150123614045035644911160760932555433559937854307824824076126618160452659677003706322242863881912227318273836535526988828664610922671325383138809453379813772209434918807781341983442747544009380223820351638898116138388626711117846030002051325137406859167360594338992171118160835049683306790609182454300402336262843427256934286295907715416838439652137199816790482303658284093038704036283704136910647495988251251055432043216601494595612014987400189364004419854733172390419500948691145827439281256308121226650839099316661238573281463155011660749657597242608925228101319382549265143168408382623405444713681013023455593852647612111385249520660318799391587082561900262317081364769881416550372448635320991143757066315996106418451047528840447640225624162858032944239039068405939286133920640985084284146385353841456026382220540169726005605862346731480073978438778161027351713861922318614516391448816295140047836221778707273114624658870518869624350108993908720761970153793402654421685281063586166704041096377117934792876979867144438130793631173959631074210424261428918691738895601753205707030998258516582732827164981812363698406246630769637201850718910832535368181965272936917857481134623625970736429864101406618325179747867476030750475669611641925856684684658775897624910169525207042608175893618195514604634260963239613950902600240065813751616921240452569493794998963932736704614664613216822293650883246408531045781474851046758957671714015433246272157870279640457927288872975076887013656865788803597496201674725008466655082268102382566003065988796430544818784270435663727331057170007256245540653186754992698979333333056537742023094368586345310922350903456344501196816244289667997199919266125949675869342475640340252326209975239321152893610928860885899389446929544409264327149725089314765198474019723712974826085579451925009128524762817984386546820535008869034273574510433896975591243038893754902884036506646440180948630830742893885000350387065181922035586020702266277054667378135574436228989350271924329283619883761620933491156423193919841777025540794485023323974622651085311718475932606695712008072402340765106334013855362021787442783702391555649355281038920634106228288396650546743903357426133863042488087300620146649605790482329152647278493309439584918376232561733040222670950472438444682390198233322131682961622570241447755219584261277924067409812861002332980055513112444747904844177921291086234729631332199972061313723017937959160973444388185950793346595678163964426672994417291167900292063167363929714418025746381723171454172457572303290860929758766227787196358159173640050063686454408351783842768473962912951385362403867637673092593565537313720359287646479113835079418945654428409356317265835226630332039802489101052631873349249042647700321798708187743201275042254972371297276506726963500101707629409884759438817719156621574363315526671626694321693187163368398016828151753064358892207531223924810511237911855379712320306958483709976766664243145393799573796006037851996848493738509452308798049781887085095960278395556233737732859644961799829116619240563910855316591163898905482086126030846087424372458292421449895332856629529458788532355198669631842486785328135531529173363104722558563874722488208935232627647440489231519346796146380142101933579764081802817951805337969515612054392436212853367437570231582019902175881664996770994972585532295715229079069192325386490280250951589702437053204681969647639461548991622737744833859885921816441757768718337603666417157343841162755948694150065150104750481640605170643107767236585060926197837848603413169198024979818012158155586931547347025813955079215549341526306219323158366820125941420388920556922753498918018457698573574467774775400856507052615162398125684275102109779273815826456196221293509751171306134679076749450111141347944677988873404628011080911225474439183858215071051550001917056390882141291576229827710817403685205208495847918147075616377474879347987599740443387891615973130269265905286863253534397890656828828797804446092535154674367322568606367905644841875156914628710903442992174192192812215064050307337369164918449014448510478661118648025717061331992783870249450052052761623402021731830909324161496418675266524124213046339726445678387887678703640255282476256603256198655074966157226577782007176397629723377175485107276061921626888897059011573697300083444000634852627584507450491353235493951706071520092015507197660339591480735284914554528720443463850821277093251296803271536328743031689865177343100855858843013695470946497345965392640411660087860617223115232749354953193728660803957813227504396559346112792774217588320216152926393381349503625247488459310056323120795333243518674699519227476262799298397456737658043366961479271798222803525824762258275834569510564468898030022104176326438530644516512749090135718666446708677251805937050521270008933689298608359777899834466785177877694056392839468334020397269348384590110405013144644024908353525522368998262188185494652816321124478184834820741006350782052748786171182679661044406967765430560077264658480433907026143646241057342417119085059001021533780435447079368393593330193210295578111705771482700554851013612015580439253076071202196617228122793501444182775557667933069728643325940677441598280912295989072830108273114299360919074370514429410463249200425589360708382860388530282638937960530732898730909615226916868246622519036335044615202140414871643288523089140352841190295655949795529085749666447837264420407739167254218937309003622450543818113414747552809247924722485696643672911233728070187929723001579996489495773473070641370877414820621381938012579874894671528587226623821633127401177247296742568729413150774562627521515216089129144294535176891346459316599889592830089058402511337316730237578560582828378649264581058333264083150931997428272181128196023414705835353517178243379770098267822855529986873416993607592461322456937270026807354369711023020416990540036049560533005994006029114986040483471451267983017596430149324483250550517342614820425533621685712945192222562951942330319935852824678643530225455527937285809678582707601468585051654890937639643791150205560672381893169229255214042518742467031584363302433183122245426648315361947238387542182635083159814390995520819165389616778940948146909066257941520874116315413561943537581207680122833306772725285342755293076300681813688498332417502115629918484477817778787989263475619043068210110037903181841081214708220383274598788415277364119572577537573818714268442528537694849807252743261246917181014859123822505696376677841880750262876270381977391440467007693459321183913233058731579957239746375774050347360979813690498353595177269545632358348744819898163030366797211539371904087223955438788405110417429474882626499023841519197175345235105275535135602900209088649446651065817213741596869403421748069646782689435846443304432156263528601043394687550143035047525278887231577105169759560271739991107020373438333543332917626062800666713987415754596994603012896633242421328053875071204660761823152139316988858985059995764269083911014090539008877165319625531984726797783753178280205333715871550194879853613406671493186299036183493700630422478127918433563022604565457857755660720032149857670581901291422061066469762750496139812699748020318520136017353121022911986793501036489285349473627453138039914889015756304468993044875058606926914549250564671477965898512320704922274311240636978907325762919808539306253300559106645652578302788781131937554056456527088363476226976160813813778116141310740847339508061165986568416845614889242267685209836573081161112059412620656404553825545528717757149042404511129275692871527652422558942934414927350186107755392682248492501520488535041374777454550905849051403720996708962107724704175885971810572012475038704949756917922970111263018144750676101670576349324650927443867168834371455449401301045816514638963798217257319738801327526597063511337572486152822949745333463563833112952781434720185215000368161775764073765930156984608647867245103272692529897963086084842890936950567986571620238059955643550972036775294275347077315989072337718503638147018088719894626296412357403251580820639694851404629033991303950767980752445292798201039987234597715179416001501693332505746190778172191027716445659827609030753673730579451477251414743763368525282036401727757969168398758063838069099664452158175723727876337159393799054637862748217241169245193952420141113959904944232252486552974631254734582475957949048627165601029192435357183889009140154584711965578805683377611568575596656391349662065636677659877537799260565332883587906533898028283982221326950324542881184780642748428341588748582823723391289341092688480017660151536650679853652525641241241192096242219736401776095047027092931110363587725835476204798794379665327930555836392020857800509482720096919147981716125877089256516812731294776025909660405227764981350421572532676476971893843190787184049426547509407443145573156812230242084865004057122092800953799718538750005656560835168349737496533698192925925716461315678507961987645607321950423451751613149632956026959790779325859345946148141405678272804323854300123130365368270542871193406367686286518675548872032512210329527156457534521947375068014144185054306840908652118651008824874246009735418216103989693229818809502760828021722231213876451764031193854045529313448460137632821454378724777355866759348469248240999717431209491065537921872422305673604374782176501897718263031061968004777742177229088227017609438273418287158985094176077243817830960768306433238949284497522793457025035912123570920480721914983091629922571997832596070863307707141970487151231680660441809209443526682455886792066352401965334314249241196876514307249353445331404248455740157494040422377087116287420257499553248453294378061888271131375158290412622826700830596853873815408918261003741696731275581608719165785526567587768235234682437216632466910878266455896794356926409424707086737501456389541594603314761881788081364382616200728310181051786559990950849521378370207507839509086944881009303837359108394271574088401392999516866767815752534442152877820776292543264117348328796283211167195411076858551196066002193627849463878792641211012300409872533610297266269606094963334465226099826082354299316965488150297492220729614615721019207596538834802948179442400567218189714255153896078236784420432056170983007656101598223133888301096223658304659102017417414038288253063466840513818746828683325433734010102769611682045936797161038074587751400502242571905185097139409275665735945526890267916166879766994569365378605414426600753793262894938222649642007883073313257894964339326553651607476819079885201468069720828057950423897094783309731289211868590260195506747080289458277427256379238015070409699758472338780462013850903438834588673234442502741252990458307786887236349553037598724812394905911138798919883446956280136107592627305598734828876131913271050900475645696555529442057105291617970431293246120177014039370966428735880371931323873776043143558575777433333086493650699568354456534248605725831321999580618813422844273013533542232278814435462697411438506177258156515740397810432211235275309178834057779751116381609550848578367476543740904656200059490681630932226916927230774550393008362249036606758546031046551165020624414659021889354947909698837447513569251130905035392476575946191305324312675512410338641147979999492167195047176953349691530684742633949618857201606494439001638622377390980526426789278484826669393235305726895942890516385463263087258381160552332038172190267924549173021721101947189316219094416177025554476561734697174013530685923972513254869841317923048412441392598999119993451397685297319814796669715461351700974679405158444614252076216697850381368320754607080185227932812552136511678341538711728410090552852350869887771327608924821681653255592172052400682512142273354420684267880745198825089761791569140230053666712437579277956994359878190194590106735086189892048395688334885963008160190281076303242305238561498346875043259563577914388060334637379024090646819364347243630181721600912173696342309296428040189698360645849828056397089473954436215687146459477317075060284131841987156795254021036105126223003907862430995275385666781712282175962534725036890334097104328405968251410024120127446331110081782221344766012538849185379744692465136185317709714962128786104997406744347111512245517807140249451189405310934196473814396143134983153895293178703447401070428297142027494729601548977021313845842773364888591527713231630925284055530858502475798812278324496120428097847578459680778188293912287808830854428157921683625732598333991898240163363698775935817938718122287861823191581639505535611969065923269526672166376113896002655878955158525267055215149871283050550188786284361879929149597210219768632565965682893933700535662911129206192679325893701679712820677315633533385419690333064346393097832688013498856551097140493736108700481457442116834064875547166599236989179741711852870594318156642284062331522589723942307742363827821433929404648464611784597201362428633457296808554782220326058837641949714986031713910839866708178744147675876471480781100548862852663571703507473313636670156870757465694602124179698056534467885587784514871952837751201240473488690771003759350894053167958536756485446446738293778738897477063737275791445141104900309338134512984891484546703544297340636154828486356779906336934462108636873180659349001407981766465345190237284869996337713169765594064508152519176138894526405527808919854563437459920806530504821524751256466146781596631668044545142014917334087174286610658966248284880114298095808148148803753948592370195781641678879896712559103232849814922434692947895217185222952372642734986987007309927689164011912960602768364484001373855170331192212110019538530051478153585699915175686732485286041767037518639577564373598754551106815898208311208535060365697288327166344777376641399540922677609789979397965237769348734354176669154303637596940776132544461031262743370404567623937109916126192350735469284826458034955426581518859269349114090419532364734299730876233208426181035582300044307108860810989222475031866774459316006842370322306640661263767893612877015847185580499896924644569735403611047152643602917668739695728856951738191744190403095302145632407438461030152262883708270578341689978620153278661683230259447419666299503831547016262215685881558441466889603812035286829502302518262701318951526221662490897863001161835686822611560207403094411812055037291371748225127473784735180874010406258472070868769174196141510600733630598281140814857741350839662517118361674416667110398950393713717105735311203104986179799356729298237361646191885617679096278679267418829679528915820458433575814186677414558374626721807555184142834167129382641153556627020394224570069777080525970537036658836780695514376583018869007422195459924462296801491449275448567894678194556139970071450412380300993358050831056622763385914193394598703780683436186398024519055581748701298671164342164320437358663898678913705090799003497380802746004977955912616601267517579038776591160521914494815069145008191357097260313217156146808903912361974769085336309996077115534288005753070922520346915786879771698803392007797655456547164594887346648693358674520479266619456367917949030992500603030726014406115432409500128525362476021844402354690221552755520800099006744898274710039396399769009370575577253223164554804283051012702541496105335999389729376922538464420726578879084765973894900317484212021404618584519595672038674920024168885334152880611296776384246567616698629168887888363977680549843649557855387864815049912639456557241525781321042795763588917939091898842145168575355212352462421133833751578536405542646000777548446553685707876319383314933161054355990289921946159961176480854997739568375573087724160774937076971718263032320531901887711514879497872177580394329182995378219068802391643953007531677876565368898293122906310706130152833974846800188688304628083554555843888813741306021110338624821209216329800494971165098924211588658701226688938968214260091104160854293531595554606336796282193593571215766491043487015282494646933516718664246550310112734360555059050780850239469807666851057985068677262890449276879554391723998453775746877126875374192161994251784430450712827610571729984834801368450153356991716246397469797364359292070657006090691936476081514829319673033628486123995634315322131555204950873356543237385721176251888006000878961350814456855475253365147303675757314447556117637260688739581685231863592731270500029031605461431093158616162582715507998093759671020200187712291721267522991591152796513325506894585878535287104809485527312397548152267623151137547164407569881666620852774770341127927683868421879377987084884858723395545950302033776379214066230589827686997881305657777686168359250904343206418590639314617100620180424825777931118678906182733091043836380513306788041320045020063328246392247856524701162978218490674620316524455825959597217911899209355690138513364526014481248926933657828393453122285430175180175552711674255378731151821033643751024639740004226765932030297787907513045681806172547066790938459573566740358128100744529021831848757828696965761868545620645014706507381470290657266746683460972697471777592220057067496866523555060581667004403086917915534366725312064020952613312950870832468021979288115152668981594820569438709424347252756766827482614344399870898057476691232173935744693784565127216846563878480472457905482815716934720112837858105242467739400906128757394531946491888101384211644864805235451178890919872104170956175878288223162630224539713723818592167456265112051790200127642324276166351907888821515796893939860573687673120204713465859012888079884850130393223474076008970864731070092124370991461967559011983057672428463137666679876581480181799758007878932510040947217626629638485359200131365773920568344989271290445976451020676861268837725858371530393426682620211213597425968930358493942568596360358995253128687347042672768475685511750514862734991228534054825599721227827444376382676038135895422082588183583191256766636483223478924163291814662162884456059556813072726937146778175486456335996314932985904908965853783511590095736986388329169786538077717265479884956977320740089514336791905993523827927263249173316523378360772943506542874206275851244258114362478356607556437374499105972257694040028676820636936574936197597596878853489675827570021397200577834863881345780759947910897975779013013336579933906777745584134362182233084405882396364487020879299317736622481890191188249709407152522959739043220148775536071920317485775253199086077247929352761079644638426507152600508516879387434941292008845553942061778150247005987585321860503811614332429421298719562131509508791561807325133640706489369063708084882434648791229023172942002191148486802522553757848725612228128317384885855483867376657192974562313098015246431660346761012652075897541678968448310612305660888922697711969514796503328905152159230184050201337168264242973345206601264917525962601633454583446152336670252102974085755113885015865404979247206468495357928212687122114574540477142548246574396088231722221259324983253969690246531702386543272402605408283630200439886228424288067398406373233238445458070054930807748519149938077384093499055691189119910665421026745261557095594183613788533551683627616701869203438665709861132008357938692779184520851677680179864395600485724726554236976329470534793555313399508026272612628608223001013590096537732312291681186538476927300002059251546744178712516707697929071905811483429070601625204673125124854537113202975835827922998447085564654362195988935171778505851094731149019224195005798447241421633391343756396678735301690927835109572973722985655485034669221307213044024168885119315211919544816153621484781659548984614614190167714985519083485506148375532109430606184631893986404935989125127568124770036899688972112011653622648163912563788439173294235047346943982496528468747509336508145552697523773922116638023296792613774178810469606665525452665713867183286118594437001142450059319784333387543891344534268007298780318996312541585734747587140075108759538266716835888318045173229211224835633183848234722580368082228502630362971347462929378785794126127157018644089377005234001731989035208918225296756895943611330876137217766880184716160854724998152377312253103549306640037461442667819695767698461532119347455668069284651159009442157918709420796430856152708787621048178718220683233155589726724485891185062205007166021429265222297763787759283534259138228782375463338901444368261431492298210550125072696142225052732853430693083199953053904666083151303214124162230710625948452222772742605998024551466312129741214918440680790577652334601616065263729586205903118793562459883907466687133751196198033581300849676714676171144649891853025701977225344178254653238153895220087938113798163867785461058396687550218559357395327295123325827614069423061832636754942897336580916915320718766206546976816774926864391399716697933578873382725276326557032680594710455311897746894006726628855550809757990772251710326039185506780861830885942944614347132816488267818918832455238237617672269987578030237150837547442303654217074351004960617466091015381935137575183468167577071031602538913900379634801614161451624568084112660309990243634286793221971721270312124836536846820665341021233258967643590870656557471859349335444441589303012820622198031688155825819410770098634811399265365306024716179054761655626447784494699043079618599528803769447204669455500914794090469505103744012629728934371658837464949114273500059932714632143336284929363190759022466481874185391661119286597050927479203827420205260146953876073457795106730716476493393936740953275703784896645710076765853188555842574021843861486236801301073758038350533396964421167109357519627346013934086080028725761831946946498759655812147320122551916606734435765125828563742708767395506349460377577936527686023591757877273294036427612735813647527301313110073268683312555305550607667783231673358137321615634682655563076342164176178856187540378435776664145601109788964502944046848114973124587952138071789192411194878336860850004204234016857921812331165762212214551106275245390536157331714374152661006228250348259461973742211949552143685593123570046451370258508162211225385471632362780754457724259798652107995333565333813896575150784496185225461356786175676100575185018283171077480686532351212159541526342790934681216147933405220817902292088184614394432603451100235990127226981891449112589271165746226494357467058431977480652436787905883592459071308999715178411085099506205839665821712218464186860851879197966251492176944660391035547916981876097315047002533715280907066483183215932681162982071906673874619319133689702700423520284964870333981646632282428655942679088688842001863808657643907997188973489532009805558510701431641901287432243897670183586210447295087434773917096072594087701533984588644190730060078242545601848282680633832025110876536581098289982876244474933943600502714287462768753621806748096522936126575950693767797112273190410406656435339674361718519857800718937295866174147861058082447337752526517324370363503925446909584167597004812078670253754399632832360517556704412485368721908182357740518055013421995617372222277784839444155683442243982587838416455655055584872899042323083625511516819838008867387439929850765326874667423788215491942201477898052449610655743043086940141276708017421827505069457506682091408101876097439229258928494353413590606798431320083790107479998301882909955440149669445917104246041462397425833422564062314633373327262756922216369548881637574847985217096087250947667476945027029326069133837502195689218946597017092352865271548999002464320528269929423037113679097672085555532342637056968672722038850432724708736797362983428278533979847203966905172822736962717229870269518802151834650842570397651161439727638302821550333513668008371298803164116359333980977439455945671965168221105213453133700863955533812356393353407077787237983323191295935446166099023083252505868105706754427177919864718213299141217751260342945537862492542750533203095573411834808583651524549153569342362941512080442784407545458159998530107831959849713393612476612572674743145827598654005269849301265868863515030454864831020743301470568943394962959093714614642057436451832417842155490553893742241122396777035235859085166283380782908336254528069658375513409169197549925894067663102829842237085822420500781937815049880708965372188250716765385716790376096554571883046044079137805211140281097989957366501741432814781448744978939276066988190653474044622938937259610272717729657226591317623776171466890907145753629585311741571229373175316684090361484257607127277819323690403291778713922192629950181242228920609296641615033897201066702094255778954892720935267292117501137733527965176246751372351705779991147424433119848661120896501169562750856794393151137300065947390677395998097721510496683154284966816197277755434490298463807681213257236972787470949923255946877301043301667737526765738328042040329773915996525817901060676671760721689687651174274328985636739558163856484481244912847691966713709330149265123830859853004536342993874996058752492090344188955181096633894249990265077932196354266509504426991811754682340690473972258381526317793419338751431930220113705885554095567085894599702447787162501685052001404062785590263729349144046947831640929670434903410996716567927520447363058348610417911320342512172124744586634585307933607555001920477211114042422407111903932523896657253775223460885019117279573164081753400202830277333954497217813077291937943460454496517147419184829726018171566160211852638298329237949562411684441881589560053458437896494206292460187094012339023416877486501406483403513377403467196983963641317077384634367686953421340143587311826575313211170079381985066957899688211890909516296523622471772613530938105631836935964577832772705540433021593002759210992469651102900911995278461179318731753209804069863698188510901720687625162527466070502915711022675015921979321442568306446210187005561559852622682612425804223651038230586650117080512754570066354380231285444530294370344912702517323897486571882884044720992307779678444779375973054713578335217579585254683733666141367736037698662512897599795236306529080822606124722465302276467250021373523402121332225569631276234988596793001449932535899344922860509239576163098700659415867853634369685065395027675972099333667661051776914242897823633086777898957272823745038449129070149982620393007211284553115455101426532328048996499025710840528889554426090027416047930967021316337900796753979723598231650249090856032552132409436701961707708859230983985960773101760491659646016149855470415706939378246791999121272241738629059083998016255905351758631103766406387770806813760886106844912498052165661288889019562033115213210105914868801687570374835590727738722826034568104019209105080475284459593618789820536098420505546361021005125319608970608375867681602843991976189984182102199181035493159542532175325542957608933477817081328876471777877627489642310349401730958696861683379936585136228949825672304532234975761092766293890880891474587893776150703516092134609625736213319432349944263678313480841295117342657091926314447211050230626364575421285055614183998270228050759494298587222995697661435064727470600082041013988394682225686613478698320904923798601055116594645231812400186567072662951333415057115697844381994013915897379345227258861664366312179945573913271451982608162820542512276263073574040511185089771046742542337630985343603278994930321914773302921869232214038523225321633947462837756611374405859205874457343396449149530235361347208586894923603914273931848942583050139370094155110463738567924062914253255804222273002085171532020808699360701676982861716670355789668509405511611215972831208993337222649823034489206558607920473066097146304204144431961249211790979277065478837801627809083356888743500423680622169983516597857368726949905842310425242411081874045940187620021333198235356612195451850475128435033686959196278691401938348044573925418399281827500277733386227832218384798781796684587064393712243132949620348336187960395719965514655363518640119232242041754431071756875858965840079785882283746356657787605260975807522470475388175616298837631186240041625368009037585729818333563878748162300305995403108720619200848294907574541919160574488650210793053613584238349712047902984336510825060497188414590300160181667359410458253427033512198621566514107780070867921530635850350581814610119687721053125657367818279192286858914070355596648779950721119768811028011912765880953055116548129306495456188626388455616510834395784843002145293124412871972901010478617544055605701667987761339991899209088907208119243958007066385241469872168832654949210787322939314138134882023737835670226746564673650560228992049405000111551410258854605232793664698849017053016730274679838812323301051312904563258294320268068912489876373931774633784830201183141327040414859123258298940305052560961271966673541480056677087696163864331788285122027471007183699679063328618779648573171456838420394879096383937397511044578436949262098512811452153344412563681934828279892384273079966416217220365663642549346909464981653375789619143379201556991974716117290943732135391523836824165224884003781155529957475101269766900358663739905262062951028902874517382585408445351536121299012472940797065609898804786735196566375372926941452617673271516412657448045500209863451688545920554711701936632788017299708678477405495986434537117615382757887012296330059286900155075471273268306829769149312119682986062658617264022769534401625023449316917750715223310206727951654950997892255911431099674443974221041057360719071576563673149138672472583075659183658440049399274192285360622172646089469410020852673988217919174302618454970244287147898237017042010471173224483998965804277168325370147114598959142389872629415181908074991509272885225516649848340943622489451121883598762026438526265235403173064740819159069446184452742832634977550012497700127468008452525267442730172955398140845979012957441572009170474016537761921706397736729798116139897487017076436822015826190206609814018363537046162298243124942564474707449762131285663189141873263962689331350754523407349127344470717113139645800705456018587676514166749741967137075590363925765658312750266632554147421929329108954657445407355283627599042265900616597597669190655686220510882902583997203397253397686679597802510296742193241375017949712086554879824652905623828610825678027100780900168627285551865499652943473477938921318677285882142690592260486242101079137917971845029531090457381481876467882111412897017212986009556765443275621804170125600353615771972631507387622303985033167217796840751336718988009647279479101168073779848384081926637129422773439383602408605206263295060719212676434739755686549413490894941636271741443157454427212934294871184860482723038288910712204490604868646664400808751751726985416638262785374968603530096404432279193863361262006091105397250011272110575096901030645468532355351228963639061063640307031988221869885971861929054756903809109564789226627630494433415790358615379843694144288900592212302158817257514015219918163509308536334014351834113137981857870566796484091358882209964767328790754232080964105154653106275002609086550749547509194937639541714194246074713525574825983529142794840310727089337138083343464836632901367124509440325702437041054845487111208493855376497493073930398870094760870202211894440937831808867883273171698023392704014883738245736553807222876535217465572550194859236216444450289835365249307417800379322457593294584172909943580906262108317792782282593782802685096873318861880598651054311841707278280821908027344608791389143283408821787083476320019230723795951131091102535717086355267653901755698989645741618572224869500642239952954137746162626390376694103863637564167258712055365786568688301740719084618696125501173075835199326999912084559331037028827477986093561922692263944625928208428501405425518402161636119996313483527641862801329130441424394674703636163397270091676745524082870943541308779346654273433123487965532342554555025184027758488546701789717540151139282873516026535623353653726444175340074902845215169343390486268062560307851918086023464825170899298558275959333484365572556964219425497090669474871691971351943471997235184349502296672466479719373981988237588187231944034143478020506636905415087673231924249113735047213608491004775060773511273876136246846299698926728640889037329666698980844228650055947103542177973456522065022997052311718210378576410277933684298051936601776330277465443746290828645938252360638992540291842005250891482663917591181385135726748989806236748917793469967979943136995788465463060448163336763368192491820481118280208928611761438994476497996986761544887774748091249481180172094851225337164262486006202876463718224461118748497613954183977222533805256953134147879982854110860968702270419028014058843655342428363865793373711238020460869361954405357497740842408685039879614486196134400598239393313452996776279136245286433973323217040630016113162042767452526869969917980170179134556133816905641497720709025396571471064522063565914105076115280487830376836821103521503159373157058753219305111470575298839104679538249285291972604359226225213753061488138854691181251583856307885883465026690855205415755366655622622206240941573923794925097647798963250903863568603207855685139605014027860508926564761269418295405835449407483602966619289029492280594154282354450068415386976968046313514530130039469618288421000092714237760798826174309229729866824172641869849108674516343517569764802794375688946724200044438698403649337424233025295785689189290824596215872809331001118409833241021292905267225571458406394101267814140477051990453078198076381547112519770775481347954408193847761311959341645689441090124719665489623530606832721589057779133846028189908882075039304157321922404333754487421845192864407069634804320896011609754782249837082240616466316734964772449765461257394896738447952456816812171674206785932145064161684167293689658218472281699751133419256905046672530715523272903442739720172539529691297837572204312595119323084013645590402069289082814680442319443222321638324376809904763231963139993487406974185543669663152750112155088516666274571949812630567191057464670186961845526464464377466248795690182252388785191690289391336531722524622088261669577552691631310451368791178500537891238474873275469218965514902596808547494689645880579408891207610580388536273853536676427586271588203129011511456541342471503245543778913098460952993035567211088790746522929748581799363905669793242600637263198956121104223517922415967783757202751665655488497922983603339194120011164878668208258952532561834827842110049853678131646482535315802354189188125461730343642699402297861029981584886569429533541555491836644304230545163417303222625751149536301252063299246809340870739700730281056319281477534866626016458090470984107573987436042682163202241327206379115988353651856472410408233001127427110483651239173828117359494786818842976579915075944042277950881579723213911491534790722891600135595164461910850346054828636415805770152296576510929359280646737755543861963118570695085727158471524484945103683145084003999045755666177323581625953261047286377173630197971339335098512042111369504821302823609984872249958085997662125943088726461213700575273625853193411749924465140825965501432038486333585422442386750490997629543403887802268253941221276927208712530417812723267814825011962754650983023507192766601226698358852436459218602898952844857653327250010793992650642612896780309422142819774487982444779908144897080972136750342631387998578122829115271103189416516228308912262977462402477566560919799362569363273297024049202674237527684218391687606655267983685667423731682253397073017621302437773661793717581013494152370897905559890396623808785703919536232431042604775501249202931316042482908004597276607857268851093758461820276005733862813639397357545524026137551995979373722458564019682503660254359026647508262172057562672769161742153370643671538383592414214900265962416411438121772372041626477688351354701080945270701772477866719077056578860162793934488251668288624323418806255743363461563017543114604817879760260045480487039977001627503723670355261401639907816477129443277933704154623891620822266584814419155023502729976966327237263629571039460669359958457152470548785015725773606810906843568263194838526629889999248441917977773697514730198803600440056129187137656433220470938518433094618556314477739096737052598798826927981260768236412778691098546535830002480992475640862062519519290675891240791395560564537301456204934290347024602522151110937294959428774099279220182428503504638452879344827911471989109343498430042860905010376434147973783687271815501539783740862036221041709107347681078453805390144634809915388638251358548148086588963987781400403699152557820010411829157660558227180060644783452039391646283253686970568789238952557819811863511729026347284440406933827822552182202463499543539824679076538274463882715607084295643917519564804160474250966300659165994406257355870561674158677857362926541773388028769136247856517844912752789636203832961638687827022527633363069527594679719107222924935393869225520974926999872196967927714600999839756212492540279659633877483660175242898909927802223493543471985065302297400140499307059157561400501677843412086862584508426086381192165105518818305516084774437995746527646655615884955647589958707498775464571697659931575632205140117013024178612109120598215875770611134960588308281390798234523919338930714138421405402724308750191233829519397973867034930834938512906303692746184664262418621244854003705055949756174509457306728009319871069660523416338585034568529544561020363855052543308170710560140498691813104695214605455424730803598562199574047756144941935202345728809606772684075987490341782977222040993900666217371067450386271515906544294210627635628573225824467268314282778165986675002242326324701093141283954074414040444567274609451732788675250248208006769938225278444253219209003601020841215819055356434816766043820762806638604140690009912513042327541043505791863206201647073140135196409256227470176223002677953312365415929880785611673244657124053665384784137038630311912001993807471128208524178290935676787518053539573919899865021459750578793619985588861121376381054799569264072790449317675897681208233189542605270620081217630078964466180208280860618165935367286901508714456843979199355706780399472686559982114775480754143671687162959304872373403460850773565689202605799077184124453177871684867772088084661039704697103261064271270162532742083967599187082109010794532168300909634665881836102129301898887107159097595664694293424800337241486105536444810280884230168267980197479971903517647532192850178711202460625439567242150235054845280958264912786321953149896834647827978299427047381432355418787157049872935896791905114813613464016927616788586569113027513446127835563052150343129867416665380710413977082703218597594129831897847240833603498164116484111964899201880417938079203468800029280272196781681842093427629337243980782228107432669385979009785592946206492207595712549144921437222191038283711416028974454099842932751807247417724370297034688894487541626454826128093337578266637834528468575974558567084549253149585644654076596534281716605734515851056250150045842771356235084372916813116162702731222335272675456625274124808533825924679802488917291937314368868359178481203945612192606738241505750650825970901641146458170502981951582820734185126514128421050158382424222489056723156172880413598440152752921234030842571009712740997583675148788074223461055242372712709497416072574849293448236393912701382480861084194521354035994797382013921891154137075416705163712789083099551388104455451267386766178298600315057910076876080795584691245474925689003423559932825156805666615197184368216432888085899315442528190738128571544383370347379755313032183001308250085076975296044176486561801609182943383124680231309946122085841674408891810046325968565591156186510684110220258469860828365553468818278741975002982905834759560673643590930381608142696657973445891012769997021064331324650081435248413936840034602852390993195184176348777086787282256106200557934464939764865789045110790243568428547513470403966426928611650020540761341584900850707446833118526512898433559239658796578755829113932393987052922216371283733344650048094273359434481357361712103894562154914405194592083298181851629433002989033899457310307652350340828981326859187197932110844308824142662487269302134538332755738377448971391467122145060285859635625970833430045848541325858746337690452419987165853061184339085306833556180074025671424917162392403174139874091583197023523928837219065208018549385063239657321930727170517839199424142883182882580862743104489783731662909885547751475940088991190647840918292089373391094836223130398932937337978572885509729213241792112284364506254734254379279595545325920472012091325045448786775091031541251089223768804735187832398170765417951244375972861705780757894870912136332336813223976311536295836030946710793650513207907677241790205316337111026116285809847537696981715739798024858354356823391728213086493379737664877896800780855859734250033068608799953378182347921579258998406787777803547436907776064768238486773508060909500397874489927173831520280174742734006007711865315380922729535115990315389647473161728468398702226854972163096057788729503312974000770851455688137043104758260951356730368619856513451483411493460700492725009142995687675861412177166074667141745307463002763652476783107502110610461211996335857059363738094372774099869447679557621966565526568891429912421135226748085947363850443233769779172021886840214557331246634124203723525539536043907820161110332957097788500665303698581993094683809049765730767886823875264479958761015144801275017597319798192473482285617877499911474718464494670024628753964496193002126296733038469055665346692098042511056815440005356940307442391006370315588189612307936672069756821585236810949213019406795403214061755801254846587390247529604419018772754387797437671811061387954436043978341432880555598387524785619979572979014632769262169509630586349607636023494825997353964416826568400823283634223644357724044170155840813603095557562896568867766009015603039944630872207648847727733061399065705772179224499305027545930823599101598648150187344540371729411914426902858405487694281430730409266454891970932617540724808171597606469607048233613993919846739435326064922465428434432580787323663339186325200232241558132841877591143954639580433359803477860506144320739385961920237654171641660099626831100168457274543153766038894710312662238350609810728941412224442167100688704043853742525099053576282880242970228222858235332871396710302710001040577515428498953907451599726522592430838019099874208770284430432840315032833530668152647715437427291422884039749035195910793887327366229497927897338716062627290691582520639946065222339945482549869086678024159542503612138385024804201443481848496387590393147060877581442545559205532575379383583149996492059149640007881257321237115505703204612939799758500185682938279314924888706102853962065657076036591040779691297893845731651810628186793868351219922248811779555770024639294816607546435770356543150609560086319962857078186596181704581879461020078887242918637392690244982848251866281581028272229249367768776672017307467343393955086837383214572810486609521061172631897029116163717255593661374255777402175157564428462860128610541218496453349896931241556331738721418996649769731560652583471627300691706999014780262683177456613358122411412959655989934334944083801786044499365477543456414182007469978943220308754573539943231959590039105936670501679892988804070557315558474642247420856969397414642012078484323192071738049457891087359344393156877578614679123896261112595093180038177479106448908245439596887120942467621602262504115444386951365611041484774855450883783308631883572062546258230811039993521582319650368117996265567088414330550733704717954382228191648415687748004084030752921863300076125370660836647871943398885052167752621427253480917338962061338047162635917165496331114328048223863968400699764067440313350366338294511403338585129104589396573313040618359909104665499832855040242163934926444319711703828643300767905957793594649488504585696125757204622787140101714223340681080935747522873159910331122718919197304064450049158876437915515068660363168896072047335044785414804967726782634345881515066713853761411701951348699768870133295510058670756875085266061834064191636712394148399661507947322681514465614698298896195923540996019161397088246512000272861162615983413679886521817446354693212150250306910513903383798772477559145761326453853633454240221751444287540737316709946694481655971979886411025029597274902759496238643675979095922488499102308235505702201030563119048891791801076342212775493510642496102755500165456369457060982259015531579689288826918203771774712371719900071965861766501983032845032719104653918043151060770789038425158298587673546696583575128154161135644536808071761115360553201153526170779708787004521813672594825893093736809549558863988788723407391412669138993312871786604853116801483650010826322795056456030992791116264539298090120333125150917199719887001379867016726628974273074979975530555395003371652591030003029170787031850507901601239719289150931190038274157458331000733149642116069056473221048039421477672635976070818533861330925313807662840602035319275915900560367045100116225279574464243287411392732839200359287778051019646490806936150659354605270802129700826982835527335849391287500051174591720843909894299629620810970415949945364510978365799770737255939300462190549448855640338977563757613018491382923404563741771134760206231895265169146032226260043817632329899112797943277194876752504946546831186546444686279044530499701586389717274880118361434863561023135684909555484181398071997636215206296535641606113151174240514448464086203070744991540029119664001391754214659895487281360089759352562790759783771552774665415222185569442240780600280970566775078999387574086760000159267441675448772058665587255315668178697548461637250584914583604310280078296797373510388748398809295967829011884802180923322311285491776476579896133644394443414402911728447886986260712805642014602210333733236395137996134846948525074822667983086063374741160658562187136146698304291113875219621653009957214785525166590533372041196240406225427210054972683959027274759947124513627121763620753314824199030582637544431012350150600015260975401469953940226468067983739198797132432521985161966846248386531375222669728773033737297287228957468472059050759448249168990078709755952219390219298811564694645260550842847930463017147847021119724049376025089550330931510829653677534850970551544793489188779991933928150095697493653333403713226297851166022428030242922951693935569304312821708218973429733245658455649632856183749989071061658366668880537105269060393259535925343959242552563929993471799233563783809415475058164968672309892587876850011197070155416461081357872010333040477451962919635133395085937342821118234471056522403781623448997609492337717657906342787964090237111477292456147522535723428356399207599990202933660507524970187650289738256289018252759861484941435924334537150600592752346496336640825564894134317512078975255749003543749240413699358126506374634066359259525966022585754288064371478136018443046596249554612659217549037678445713567191060351255143526420574288526523265935458492765049843024399695428242393613575579435606625928924309217397883241657065510605534219071744647195622226738492373766054279220797280959964885397204942202389355375577642000495225364289543648087586497586024436693690225740124964508377677835317276924682880855983395670877511648681276883167649711170434227432734415989492893596785750799794037530359888983673516078174433409173446590455577929296654788067046516235780844553054479388620649674023579426291942805759495859171529007332107811741274859333063453917527511705148184921658192701262358427875584103971547991899981459525079177793920840861647793274675177788224240625438816085860176592478529368628241138342308437794594107518110190626127394337616069388475441306639792622606832482771933304684514376187529203206157648459959764606915216939795957448115940984252331542154394772683468512609522607880299880957594346967008533628198218554519930136025269759548255463629199233462915564682792160039031476369452574193353873353858507358874863485746507253422958013309799907936285984069778122367223229917480815624667339561153572609984076350747216540668321648366409773156898527135316771325604092624361296617799686232183510531030542435904585940020932580805076786698404053731143670878932634684939456572770515112831334033370571900880399660995247038801417441277319521926552030727632701756983783382901228865969180577677608961471277599652035965762310437247430742948058019135840792164384360797103896929371106929255402437508109964848549724458512169058374270929639476565469813596349519493860916221576787079569170170479986462366119082899880203284726317258548317451258282202618807798792513721666864841250397724320139480418283434988197263422839022526109011822414514312727935895602192115859855740685692351419179470687775964158951723094964607411719124563738290156788529435070757925879243799432302755191174336228181335395666995562120440318348633844029290463137301982705908236506805714795512765393699133037438318250033481058528873093399782127282987770614019377953556959321636043349060956168772434451234546030734841906258231025093099013056657116878226493668372681910360519006534618191593073774852642397010666214625773136349731520267707897985207336169235278551592384861627370992478427467381350991473293177863704383947537105128965342886486467610465623012527523679522704243625931380577598954828093389435838883737147614729500032750903174924558184375517187218949330720323801498116114951915376280682731096932116319044655568726193381322786976138184153896211986494997556980976751149521418823653446654771654239938593053219798458453148556250404389186581207563608826691447448373213485569054141101642174977674456984116581860271573698553000052244946606692211610716943107007727925064689040932874490338999783562695657747534278055509179797429808034650545608001852380105692516581807280388725387136735649645639222321551507837169696012683211932881103086889878381748564163675961741924444906543839498527739558196426698024865233854787337688886922014312721440390228847828770965479734541883494939797519974562732186547415701434559477092603240368260487587345660277191724828321103352807845503709989178793341207005202968094174786262379456291598064103981226497690754669435398526566457220944988714994239407505820075881342176412846654157846546951957512523251470835790191543982268927971467212128480302931971282209322997824412418626048407481387224910449769448014892358636510503618191940513701255334926866263807929079655980143560163415530123125036059224993020946333604166042231861166436698004365142533436899228087836462501290132178660807270711471757048663919129993535199511712706762486733310993384231193380835780769155697732396956452113905713391828179946647777259294801253782903281855172871836805891363350920390537824040822367091746176594133619383730020351988632602167345032155621776933625143728336160639885550658773483988945707929139054365248228273407222571375466004094617242569685202798144276881029007068801862744814182171401772542306088866086685843493590762122721976397919853165065132050359522680375812648774176788871244872352560034283123042948677096697733352916797321618973209894150670998831657446189382286794818743295148781727173551888747384216971594012007111384049805650112346486694993644697684880073628579415134806933508420301357384797218584656147043770154526779606657598333930294243616310903820382762959354608245974633295517409070820106508929279619023635713937631491044583235548141932261403139202702846986616091278705251989274890606277685880710458760626520340188609371206358871578801322515522325713394173030119555321713993632870835203814352442135588792141305710856862015876233348657646530697948656634703875190476497979721792416317130714775256326093913901423595375540741648400058467917631082828247644696844581490148142111281133264047286394704398703325194595230240245862918529904134868731189831400263205739347695657042149916473991465484497036903983121828005189011415360545084808694357657148058590720132765992637550407089675247651547635260224006520936772562985274933117415149351223200210727818639880524926442149464887816543932330005450906228333241301739822506630855305177086891828330964397071986258676047620862436470860973095261803235425634611539460732821887853157327517813989118246191469650552117175741107033537861506093082595558775421550188601268540907859753014309377169631758528605463249106290097767233817322312808561581614883872626482362785514206762942124969404327103155639130484837744668674132800272994338126353630279148057349418924043316732616330228899923740056557511955679828902198192593087512137724574338601737194902690355954154958623605902118471164550045002458016601708275447095725714184711064123927437151128046327516583968212209473078255053604316508025720034455150290951728717469925805829057214266759058311023441046583286309736871462783203856327760332377372844428846634913052867378525224448384840033921445160055974966593384711807445024608931217063450737172236979961248455944411243157776422635304482027105171076304855456453237522619511238039854814308846744154230011109119368850051306252608700418920971334928219157415953318729642070870215590776384194392219171367166040542270521726427038378731574949004018988601022023263608510620697270193776610485142655337740502587241433001020522040514765901545057912544760299736989187464488868209389668028530635909010059485004188633466768652163035172049877763337083223547673368494976823544970214462763941266654379337396760068802868092126064145153303205558705688935221910837521616925785080848490965080543514042610904692163718740713981743066212717787167613348542058632459377127554458282688629665351313004318251672031049100885587874812319994488564937669399718560097525264465478663145938494300415322703429991449497980883610265624914411300139080928283363297273316844612639959173888966534376675295860072422352514001805366506066462858131841252106119722934265579131684696908534623680826564701717310758328770715603899985917164423832332085872594751705040767735586376454926460012187535144264530617252251387457582813894314412706767271067612300826821560402067034799184423515290647127750354901997750181307444284273999715059388327354283270221143156256069317008806641405724665617140822273056435234053564352749422020853329278800017223513280753268077951666830461573726113688889412712129082604574447368635654349917488108836399482539965487582434720750120355025666613742988978181660124081753258653180560281531672885533152279839679453816478834072407808594917007410271637384974997559916174850102987722094720691608775088897994248556889782303535282144175072401317716570962101086673989207821468084181613837123189350278996536062665787335645233021492408455750719321095455627924719970350346699397732210379924160967434949475726565130412260400017720271922298017207350998997101671699730732673433065193260335619389593564217601899682723703733888480077876425264458454874829812001964567738989751606038317594052516086605375690203483885208109474105344379481505589823589831536184179648035407089543347856516331357446475571370101571314720142015786202523585308176104932817274167457572020796299217745657662230015484106055761599138838914260699448495200097115763777248162007792702311462196735379874026555045389225353471738949460282397905776331711016154622254783864342023055172703536482326741441072025244230255391331544409387924153739148168801497105646024132709800652289991359870305793897794511916928205482661020080570409990012131222723094196605359989997544047245712288322858140554503279424712164208334263633705171436327077415834244090628750569371571077565132666740850600906863765294038289095261938124061683180889446731508155057065838441412733491615563609768843346667915714281385408954683331773168023597528189791745813402962588475352708979046003846552211450097603477155616200812892124766734606754167792954711272703571592396336413948245240939233788880977154417692527924290352630642289154848853522463948236824745958070400828528824703388390470229214435919429498772354102639932125735408755185365546201826711876804227261120640145008190292260622057882089064171005874302745728783315623511482211234469905104941891917044488824234700195116848176310725934118198063897179770134531744117590651887982874955942674765946096951481755838480660997311388809081294274740331083847650397884316699494054930171595458116157774078255249771855573571146903843543492304344631884382398205247185175823677550314975083807833582592116813538827274077855221668132165167367421988318924557934945153655177238164901229925276889385229078902702881108325579586438722291532420970219320459578752546010477654262644932971899317857467748683858608353145145616119252304407987844293471302456193446585868400112257514443511896406372949907896442927823671198911220916409440779582929993290723658476878518837263441301951795235592340349588490292287510657779061118613892705351843531170647562676732675228286550789268565196867674054072339310393078200695169837850609899428180604720041427616601818092582879146271140857175248404999334171898089252666880308607966828437330323217181151949313414518648406603197330432306668039171419402502271776313126598826363931414504645343146592853559695278194737326918260900331964415810218691515112086268309289416092756164061836544117753813354882288053424775067886603060134898755687179771865500460479906055208969936315550373788144577451596955880675384600484911444840436540529450353450761633295635169881739387134797365567706585030548428123472712041288070197294004395330753130112495360895589822548730649376392618484620315527354439423359176669280615478913155766261272320024365866648834004889435120243068052396616966180538691797564903659780101310239902905223318659540445744474439008003785768968295778011825686213991762478079394966529512887450369127195730675677498773057623700939942624418862647587917226309553043682450328340491896770248991323737272271657799237483535259288479580438492788747153058285460525005084982476269724998896471774674506399942523082285202776574534691854743429920086668700907484759057663577492250496456824778992803279236761226870758053108294952060134854961599874958615866500837943234803403569269777333328519392918928175464349354838582752013864049054458995023377043215767035600780366783981067156152929544902645554890353013413847159377732393685722460574940492014839822755248382350803875435133927555367285732314792078087899763271398804799649719101794311762046534272053131898338355827171621484546064108837953206474123361846974982140546827823717363502590004468510865693583683312289335838277917639604594335607890214581004977763511153021289692323129672427625193038432088343774021473228308133844556181317183179800988659133354719652001675612417867890219626380637146207539829370211078592348435578576133703679176757148913955170868216707075064036846473428630740947035117082321146154336316232516118054052967315804462955414681246274695975454021692658136392546859712383104359543811264690068389773465177422333575698335549919571537939219666962118936346860745342898479169410607263148862015945533630582289219682642741132280430587303190433412365028115266882963627152720486357218204217688349282221766080357007041835002193584692729637544626127496091583226642651797795345287399950038862253737177329082437461910920165205161167772947089041981217644228909449209600974299020535555507384953778387334449404879291326878653469987077602828712169407029587929547029633883998931225343250303579434567382370166107540488103756989734981697973636620328281613711844890466081990803544133567954354466464164378974272181984816769449751929757806753373900943981661836844304055709215669800483246457277436970683444034924054676321209320246470669556832576710576907434021522883470506198404794534258772666857383138065135176866834984424940638552426395025781128537784458819354653524434590322011257777565409058636870413339972398640245640652358089428496194107155086320430053968529207755299453995091692603990764576090430592232463654905516815894165669356784389967040842764644608222987644112004480161454832636740228482756633309274417648005805248426663423149347748051652285227252147867319201978906203329861490633695972666600429342108819014412553596285936917626112245617664245944120362774184186482707991117019626273104898078958659607021746644855557688572996581765762840256000210156404585107808405565100562974414825800762567337908748800447563918352072709460005505901951876270145129728417503264426101852828041337341560559838172808893264616237315647539062652620928828117052515798626693532099721975002225477117152511629770190346953516694300648224460131482300125661566248801710624045898513141660020780655168918590817237599432772142428651967241581625393584566945938805495286652176499530099596007928097216247818261738617466017557797115325658210735645224022004155941370074455214922305253662941820558479921748324994834262214263151628692256500415746891819697331138404008653674429799374161305898064063639451730689548102048695270235117636831255267230744656546601952843949153147178418710912238349376429072778275806124811148478021146676974792690838865553759661463663790295031767115279571078426561680720584134966269596406817024547997808574420716906051413508135867540474572070472854127906595158863268614719414184864663918996866483522551584495216257435570120189894394085497993349801175097751040055923226600314275769167836996865326207568828213615433093680596799171258821207414956587950975348226171720770390192573636061056282585837184376601109508751609864375134703281919032011240680971653624758658187225876315465572046162410970735154099727745016000081641542651152059557045106449472139570060376548197312353815177427042168681445297198110934605522159533065708638827639872329116584997707528293705772903054780605995605587186506904649893291409126948031690416098771192654988958553204611158275890940744625318576431755727005442585947613950338873068652090547039896174720522524108031970686227040884475967099163662447294049458089106334174987020307543877045040217998624036348810574563837599138195332489410796810968494694875344829579456075979722832279773354963786025469968928149304261100674286625908075339557507098485088742494089761143028514748786542781631911486271390159527068175858740764589791670935784470769351785839589388024604255340414143949784466261068423295019133802109200164226487593792521032889230922424709921363347332774564555452300902636085167920386039566197997141993084280285298817053330023674608347460396871412931992481268762473908171438661790798086184260459915805810867175021859279226709293733473895143472492740828619491322120444840949783983016752300713744847311675764264352995561145358815613266632361766924407072270951172645628630081335657344830712320168157962668586785048066809403185072985872659744836307582913832859262096681757691267776268895950663586645645530175866029927478187862237557722842638127336190634376525171775664528697580291852980251531575886449484238642940165126054020987116786708158851405670317119575017885298366427022491236792500690000456889384582791328876434768051960569191110766632509276397600582262488566505806601756275081243421215196316304546214146815971049831147330325656362653828577211802327073469139672944047329377430988148254718811689545661283103868463230224744036072589181364094063213592327008882471847839821845113124359644963462956243303724424288112261988287048422436320195513720274762805554477355136286198026753705186430151809668542793903197826169091254316019395184941450259879775617150210198064617617541757955585832784079197712247298011041659325538853098344841842819563483169291568493314186568348832856392755318528884861238318711372933121165856377304147538301774616570726164070801776841299885321785089891743161990014221668290837815107378335236121336698898824410677258831028869412681676981325249550792528148447112879904186543617702574573851728354546208552778179344217471696451017982877181137184994129994857889989724805354949966102801256304164605667907863920110803726206702022779994344705602602654758977111423054796226462422254366860402566093164960181985438365081554396856773469242030872831736128406348189800307117253988984279663770101548593807343416129776394316429899875056761899843052318985351995140330867258732881843107818095269513937396878010482776487119591245617761703976716530137586353863961743557734898508627004874376411812800534399345031306782106288038848890820623378042864621779355199268067881421610452019309345655086976311493571290350096330802301647350805421936783890448077198802104249621895977882205598035025622559237325632312627139848316954553935112630153548733034942061562451452779925662656968056934197688914273028286618566051336922337948570382147605739259265004529933066238116933448386819110897421839496405935906356194899020274857103476311300113534991849364858010419006856392515891128715575352239232144028439112912580141561102398456525954646195164755998277950995104793861881660241965518964193332717303269734539297440706307823800204059355334380549078826084777533306734106357307208298702978007253469089943649394514095442813632012139219883193997694771373380386762512625814567741364027188088082542053382448010216577769959624032819148166753922726228315840350154043023604301354234252587503795945292620004126101248726411248360962113787467845997450836959938339747306971670421976652353326901488488441131907229386342525225043792923689183333935790265692405993794514950663499951280235699086079203624231250339425283454620647675767961737874281569000362010044982499751721171441488348723858696505067015819079637330681138233201250420699064683336194377929285837331216253643210523197238417189919247854279785858241578542944299208726610367888373158242431446028794094773856430530041659133814720724598004779305670849442214045114587478675156454440710713131188328119510671649574205427389373193001978369805105499383630333427001607786028284312464843290749807196158668879317093978861098412238091775537889441361164461592090585626284047704942447550741735067159163933520903680188360615013120813696112111910055299683687895682615509609697877210647390053308141175740779653080910481452701326050957300186625207950024145540957210166466493242318903559705278576408411565738171561923366363585694225734852159335907880469796606955537811707946529205541976385563425888501474103991122829978561749276308444910516514513538833696304186216731647448948228348524291543440802884230740967276739080187786796650087691036102902247138049655848058922905444698382754824959292327995292683956630619461631047068730699556881967202804642092344332648971833540249733250362204958658027412048590971609175763672212467308251934809331346979798268568179433136572162191239025976194329781698298662636266469228135808594158721161085066907562452426700566132632476582614669094364405001781931770112428582837228513971153856899777164478702314289132736135216786296175709770147008658081879015657659906290206288440784284625610147878056511758146359337919329129777892440417454468685353583214729428254313029455228597681030889216603135785506896486910880930100179235152704610711325126249081633161384561958294495815834054533910637382627197241998177369086433855140336878693933159978504613983153871388439843543245787769426231280727611704479307402679896685581769056513518091698381762007574084370493204903632905361676632417125080419232223995046481008518770696653606089796802391638726553801507644134744366299607323665346643696428806466474563833610929834567017777462222523202278641900685004378974725608498833097448910008212096998379696916965125343515801357351296960768133995567211866357068058497502752091655271601967071483301600282784960108475408740126928767595421832887547169130596923908029960239687821398761700670591228312595700681470868654808789083989145891864723214817824790962036131406845017872140972826479388134980201744164383707050450303346771378515920542593990647183498339218256768390924017584066322076080891192835960165295841565396380954587131685681225618423917188919775684225784232313955728747586470621936315375623446974096068426897239475906654613230514159143265297752437515520344231521498915889680023095983300641507809554483478852005638322894565072632339978570525243352038634337500843637761086135790737349054431425627001547624494169423300147463521274469002022945216538996090398250085980658708053138935938798514806408237437832502005035919376569762664287697655932068494127104540881328315081878623846503131932266852753799049635523693718651856824859581787199482786813936382629288630175491933492880517417230627206223230847941794901274059442859758818196337958712861571289811587302377452726636446970703946040052496432499786349268180620104245398417957724639506803797782341759150262793503194053422671187012198061582739608869984101386392660450603148161876095605080707828652711032728355229147430947146688134109183156405437529980953953458661316152940693713243985231325683303403821208632811307350516524179894886910213383440326308805685679207897162435063041241837910398331441724644408345695571778072224137502381916584799671290245996655124817363148291668699113749747786502002759349765726366861545710402014377641649208811378291523484984910171075589713049491554813942957679595127335865145201166974527762703214219268463014736497129774775987037406764431517049575070376194500695607327216571317666745148204573595613741834791592573118933937786103343359922855287315463219488794414304387884715367548077590003571005900007479762500619244489998571879338654238070341306537351212064446825604907193709595849820359967409342237271095741771777565157769416586882068540999261398996147159196604326616436210832117057976135494835015856527250975667642778223700449815497929618059200265105935522668728415278784531312106878526815778535884315856461188356108009915260063821010583257005551637907926641895513287521351920713307946504710968522828777067794615124137736501387277389782733401439222084124404020462067885736799222965391464702704347396192032652241102438097751582300696201622767769544251381293352508144303767527689647099660492842774966157345872773448383191244827038723025559099702673475782994664245298034142115709312910135368595532592360408466303006267944806556980052117471260861496837675721336153725430618897883684082698552752223502217157131322762207303702013701604316153372480877468130386303631008279178233583965662551823111900339316341729301418898368492725558725044765618377314887189953083749979044058398175757793230343952336116651104976220605838468458397804951926640077747304220217312632253409043835991739900291036794837933583916644832300483442305675358533856961478152156674563939931759211763581232897755009680003201733268121059372427954132288417907615437722302689727385570295855216115070397086283449970038454549735318924878896111268263084700669746489687717337653342004839070439867668121069761756308854621745302233450463881854202306634631170380732988458015640029961570333239071092261542082627552997358199413572321343886959396487525691121585756958795344870973779727652385842120677749358748547711082206133101968915689788165899748057703018608038098846438180155919620347213876098419453482086892872756348146507542836832204465629802450445070904236463107384935268258947750128644576460543871870536294402500415126237544854958719848149062409442300818628503586095999807009780490174984391687803231844040748546909700236802921272664017631097611148427404019400895421708868745219422372453760586197291312912893624876123651273923866352802439469133794675254407607607497247836047868772805382838323513613391543106510856287255395203534413632191266611109405823708668427469987066726702191857065271964839001367408064871889648531771868434719923524102394775690923671335196911846412556936526432037351269826066639079584476902260347031916198502022370576732167556440073380645861002310310157896611973949063395695829822693430969469689995713185786304152979386586718401685790724751007947957736681428169986582418889187195300462804750669921708113620148377319222993352479417199009219257038075903042942910400141885864883148325036195445153328771388123255504258679306473717170286967624883613986288433264822867876803991128580598708281941652819268540264827119656034316991084030097441847839387624899985640987295585083268078017972015103167446567411288634451908396511044113199908889835293262571264580694805938289432718162909309185361375231078419544302177409756816215011278151454181030253773029173442876217200913649368836546662999155003501290101627102638980914349511736623289527078677495753230362255634045736426949868125674652612359454674186155601211448099434274398237442093496344715867824233267902383886205081502521632200372336856278994461637994437547634881827432667929445407105343253669357707538061542800170958441925191400578268499494101540591800155360672653414858863787448578612978353023827345057971821176620681600588591586530144689525324376810690684884678039937344874127373531750695392481077027733403372948977829602383132469368388233169616218497816372739405006707150071699698006188226755911603915982185357413939425350673868339950781683718130169007306700707036770077094191872370138874501379173454112250333836947619925314283083941798209682952640071361132385244929857365482431556633848552549919823779414106764186121251180307266486694459134256365707273955765221859457913848664118605375009024755025312066887431462438854348297456087132409829370687200343974984374693485588191349751681875920886505109803803682707649172745309517160893075883200428771527650812712394399587216050313876018119986574484869862283756985938504323980443702859391685179649652343108879550087177386982082360975697889863170150771253334236920659540318497699430118885840251270423661897229741557162577223619671288797346766243606634341015530600157523314596269613335634235785170074871563038772373099687730777385608756198231415007700048116437945125425578465249864186947117295937172145134573826874466101646245095588427128027014509641481616987188947221506905512645670556280985132109143715699036057939012157395686481395895386744075339755313143638962505760556215714325117186707587195095206504114196502339723449894472974695008709986069059431025491565262746867931974624069330837711223623950488580723470926026759140681560348058579048339801671867662996209875459404607335286217707213084742694711559343749079045893447211628116233977597151749128963613123923818475110110166295393739873881956588561966702440588863121044512814779592274415849238319543108194764287520250044403036221463972436689626370371669954702092818484472747892034105485397661802920723984361221962733995101079571297237100381742882564759437011034348065483187806863012981055768436024299581714574689983337364064129012707746772138851731714652240051899378418477023765348602048810837246257552661632267888665606654433234152797492793907187079543468612394451123671349562842935768550770311007076074660257189538662330800888702594781336897779514329321357579027393435621302404963312563612678668458951494557490718506443001840378813528480745698790694640532605299502660236257341804974868405917129881238820334023279981934443476561996633620738806445629297261366084789939999157388705039182927818681985988853720465089587137377401152318483948466031146802005023689747858372390000331631953226538763332560170249357217320070750708338423226211129787952886476162683224223018508884189929238182159145942109300206078495966372523668174192450956375597198677096537176849100280670633117775209134802682407543003412150306945796524985553466248344231918133721227701566522084307728598564973331618549062711089846447017654397833042875844241060987760305077215970969813272891994152475290731270245607043647411977677774047346946349013286406864340289026376416337583970163159824712646659327303494328417877999814852244706453941181387300936847687688467115951684783696817309165774667661142891579041568552302706681336361184093926476197602043885448835269728525621331645390966218555205217012506477762163262138953877973645799309904557600855870707538102842078398409534462533925468310658130319444911807023959842451032691449101805555074438830295481705301405740758425232754252445596944519860865670253917626469438616503932613263283636431473532445787809146625854709948017345546774174481078526484292775531366910761576822241526226115162080538693897589189698075943424762971070115857366035643820844428450687904001935460938181921475233164070356546155100871170117830237353233721071014987911723447398793653158514105654387278806109994534591255435002524116903535689286879934269607236793319836991711009763357904583167173715860475946787186597925942661666921601276220222636028683372427767124471343894499615606002852304499632147573399011425668265907427103024655564746237616073761139051534801705283462500591824028855327984683644833935441949130921030575404677233166483508822814198761241571578017760025074427789133233458159954622618848304822333903321889751321637993207050822409885588079048411521151672402271648003423197351283153073275736482509022107321454987484962159978635791820970823168273173871074767314815742308131231899092442907541876740998481237677522901526602879181400655814386597305427223397160354670318463094747120692888352333733511091969429444025054849895774162700852432232682641424765685556091964022618451629806366930475893320406667577933604771514923662706522378358876038324875788272542432553084285451425134133999085492835209268786415159948948176933096700899463281992314168251997849573365036934474177818652721763275521642535651955840145844254034090224598237700444344545100841539113767164973470244006809440940619728139180865326330629779128805200211631111596334270407358478481920744555825465829828511621953671828073855870354278270689625311703524577722325181387820303929199915785761746055379782227506562463279157731966545982213441574704291411538849863706833987336232065175021793567091796882453848696445804147423691141751412506124281781316527675095196264524163639756398575256351549810483477353929820552554406451322944264397754479641676662685973119154413063101608964893950210447638150401719844007307264343419355032125568265578818074567642646562282390184504060047935499135805329594041371990564568779319928672995721597275253754652598432363113500742051111211904292141101003715934469515294255444349716420325861387118560306829782375768050238735626460839001738397657756543129716051480169667921883997186699711516554407191877179336366004863911345182521124218580130727617558189671197005097647044047479409160659638117249929486740639852302490375344813614210562523731740326191883938340935793843806368567537693307319249132696954357123435637367710706012172344655061705914631973967169557014056933453263977568806970958487405139334156412950158148646391493812694975814801112220961147784419026805684751453632896035821075535583123273434224611576943669485977188835080133676343440373095082387869314452821761479109839810671580672896389452657932941747772603073517181898277460749918301688993476695458608741084230838693647885877557656036372389897520361393165272238950618080340179912545686161419645635583958040242354256551658914383517684359909497512917288137421007130071614610970797867018998725676536979847010153670043558287522637204111969397232782619307590418059835761904528687548042539872590196358374054055310162557279996090109252958731717397594434522762278776037860368128579858953788509376409491025238843159763118580232247801846593423761670959241976612981215756016450554658644396197924375754920065857147253110289290203022674722283399326017045358263402470202281645308462044958730717904751924156966936303659930573233688710160545857174302140788003644756007638124139381981982801378916096775107712377847058435948471482822078993300708083176716374334873035807526426147706752210353182488505142449448728709676546650030069356715999510851983296692034546269689033007111016110826262442743485420534989381994264174721516062643606048779943312134127352044611166873351880676582990170269639290841512767968052825414864315194741991488788995847293025465888905897428391128608851676762712013083779870865517495635565749305125474882837438419543716260101526426766324543418750073002485061398851598144444232983715271924801976746422954663641471668804931010228996701027600236948958342221677998719675700462436868260870560720698396307590531200285708829677538867195065345937064293006429609787669220059273167617841716311447290808500827414261134787956892089037318276175859431471936864814160232261392460306935521117562315623390523312598137884288240835180695652496042562175455432982150629461205524004222642275325140927327345143949967768702578726156318050157634096821547211869126314930079934244450410362888735831722053655479031002904535511532881353307437997828196811426126293321428798684618333772333715035389033505153803163564672861994191155372238126369333337792351274570641292023511488308674704099819789722563219186511752245645393448883931793166847600258830672168788156308142775723953261247367791658988997355404308478732228682257945208791158243108208022979683642410129646916878709163518217204553583544162828778776729847487811372433640135789327446787945794589667213669161737277999507847279155939316133947381660513750107954161530289418981018436086358185838198837314425703362245678975612940377839705439074259861099727913082623462608818701039336195381256558658762918708002540091492160596322546831666731298892652015500178738370930731952287780866928291684624592009484116314655143248376878752979050985213712834046386989658551768106295034879396814580234013462412057452721935813881268417599382439280911245305407865342033970450661744093809327525970423257589304377332156854066608570118308180683513954943874488908404243371446807666507410444989141565719151473664453684887390603611491138468911245482622719368942817086945343252052810112538115622383307049521418923339320046423842439407319416818215858284823340909605607044670640876435915845604740914213329366175056585326895613352457845853805955628102512574694555305614198264582724239939589178017283428806595499933510684822484323932027467288253661768209139427037177306597151646595145439810888410748146860980356488027193201820744990515486924798248493121147663542069065563435037796377479760162751912469488116825821517138471294586487710014136609202043866673453383589932141538832284638753684331390619297243693690823744368441334363401042422379762372020801333140748346605373006093341639248196230311401173439713809813361028922791661499573549069523571018134722716729656456879887632674697335344969124042883575273903684047107216929507482564864340015616576520137595629707623468022514476369987565520770408900712028666684067261224833407736303153356450800044419592982186795178926535295068317003976506637894750078761720343706799928717808879369197319826555412138645420595391155251614250718353453497836815219550800896840019962650558553415653355340145678516529674763209989012408006815249767746217276335436613485836080496156392421800209594605152632067401595257583090403628539167356611082943730859480950570218387506772800911607657148748885360208504810132007010183071648183577023816546859880281059243733028149374295840981838200698910639836330754284763890073514549327999633664983064844387828763617521572997924527409371714324510032393774752624007349378920003392425521402309830964215355134559299688692811513011904188357842147596092106512226139500349399036751845146437593131321643425323749950140383187195426177158193132693700257951851498978399667154244902815309587335096658868266259221809975918992950440539980749366089465866058268548099048074607209844041646939341481147597387557547215193041818846110940350333125876281752012598497493637450090854307253833689675411403880519894981235938913674146843839814003384536943918234290313474748774671646956346596758051408737571069711318105528670577326144328403217725696804695816531515813066453832998840021384713460152122125380968400616601334549455888189920274511142212082489245148913429428540599891951392272940739991681666706575993151840371660135744264537071289947779585042234197887520746705452663168425316491915023404387795284445927987652824368878748185343915139215922704897735874634619064242055588781058374748036986489889136154968884834295807173306538411940534044701519066565449861772216726497611663186470708347418690093450239728564797452887860646165493524173646772791241034726593713737780333708394361021970114396370981440574447591828840042693814321002574662947672551891565869056753836146226665877858858427236676420157415455019214164532513077378475574283656866528885496051456188561338658909743810569646156093947532454222613093616834898929427750398659003692302848354859965990456216640448445134306806803702487408385347272510069952685719603035038436017057813083299240475179842050168425060723914329335811641454673702734425526347342958732573980168761180522557263149164698025347611819343520384776156403157380915504194896481186445711760834672000542080969961573271687830993503225248122314145786060761165436146806775726375116782490004691868404548029437366777331854547641782137224412979419696535365239825667385629913680992794971677699079345217209356541498893170930262694469213601559923174163912348218176232203842939928917596669658812214804101105294526516177497646731331961096686891163093833189584042763964926477452549510573939057090226872372425765650155914401850545825641505984415123837993560656649038627161075629128010703559674340277357535927722706805602449500520246106938738734355484383541470746854137596301783574284771331008502546067721039812049091497098892485522194920390319988962957490823933795977898519463002016093524181366060056389823140181352066775498671052880700156215714416710630703157737600978864265213639035601654373133417134061291749355224865460629143784340295705903444735160793893092850821024453594031057922923337528885271927847637795446653976664748753678621756051315610532727900776735133215364758349677200959206844253699100979855016597727075276784675276976787209335005979605827776203084109307265000984977893904206160982045141445162498489633135104577330789482723594942590823884296184517450155958534031556152722617460308325707822291954984387740266504221654631607440472670024368241121196499380605602936047585264919031875274370522373105113230913206133220338199455258576752587515395906066643193347174028881355225605779706854713202607617885280987614266764896258460926107958741137410545080057382878671873595470901267846908576850591618509119932280853016835928839979613442638153136828620397924421654839785037954890483813695313580575158038850629230500351683285009946787149562833102579626533420205507446657624294841136054511939647394744982517328318796886144882863989484255707295123188344748383332936315337387330688198075887419497811956234470332569262998384312925553921395052447274479839323190397965536269128716448996409396359384479333856179756609749579175985943460082330089052050098331223067300027123222024674523218317636251774604130340622048290695451518817414197051410009447080545402263223480593685628823484309103354984835823318948267637712600693572736720597607289870572359933632225318556517871814862243570729291707911527264197184993814475110505473638943412136534250854508747750831817609332454066564924604618714318999386013224979677712834947394601717208496923432418463279310461906910023662577672039591758070479615114563640826891530998144958768617326633462979988790425349583431144616889861677080489603064766650967027600913087084267181394647343878019550665000832234753593163689394964512224531012781054748367266389950465221270503834401745613646915693605356095700122119111788615988094637186236333378953513779750571062549334123697481315045284604105895779357064031973365221672844185946810992440194383177008680589997960882918444445338148612076605760104750109785027523112936631170039669094824203672045569985875714340299159257687623299648701862459661134965334830206486080062624531207640502689745349919491103997649250723517640548440834568667151242831994329764092847726850332557602810748229004227598137908781691307968328278795183675519781652429974879959187002631074585229176265787069333364633040638447054588535153838727796069806994043472763091938897047741451446270653290381229064445771442502030764432878220993506361956293415532690596435086644911944707618697790764669931659332969101016941418366971336792168204054390228833768254335926054768530046901264553163743420644884470760878173642370774780538425950949942491835687977743501143595876229008456091789933270698567142941430409623653049195314602310797261428278100995151897509171801679165553539513606130881749543168705833156838463978221035770269022760125366926949302619592110658657569079625278025089303228203139686807301801372307366968552114886319054680251437910077959658426969981090466998520584124682577844207899857774238601719964055762078842648355957559597095261532900031452560544311979332131792832098653389466639907829764921259280306906405166601778891838839382314950144142142728848614501217631958256233991929572489017582004982835086814143672339156212400104305681795946907919911025134597877908821352272693143416277418329078192084891653041708149926426174121963750490504087262533547842918876284123008858751375557363449927064679801947146715202605903945396837494166765444392848815728414513118806154118923181590261294267480651012320714949029887644545681663831737309363159426132071982637400395223950293449503655889555405409674086833436622990756149048715601387224917152924669407643412180706605714532972088348328580313691779558319335141891326142504433830018507779192103140332510433022874299519027106533790258136382899791140430256496830382494652436446997902156237062241998405407368083543223660631341397548266329931808363891630678949291059127740578010216692883880697845255997978380972385897881469962042543272448255502426951989893934794594327574151158202550624680672440013535746893136376316923737468572607712233221415569867824606048236454561428876735140380589196742359471478741849353632596677113376524315107399501693612990493142964428266898198702058253255829067229048512115238928331394297275828768838942397857622566216918402456689062322084559846354905749973405719599373971523011516208831848013576401561796825737829726740665477176566634419457829626893709911733008797916123578141789324980009745871562530741219335207536539088917830268198070353810769851583866639672391513240831060510439697067148887378227546207878031011800795771940748324183694796897727176435640509508998946147308636516653515876826205474678428373696538909186088729689125986196421180569636257561736584438222762842664992675889483668596323750266292120910052238304839601892058965369867609495406817441254904330352921077958413083988742126671229956562215201027572521489068270142551460538354619705244347506588307870167975993389043880736035202817686454691406052503412985491657376339182456672869381971868260985490745565685986544567183983250777985005209727160469606232294906041358307542518893768779566060238658045479787936206346155130822200193652414198239613421168504506022580657456944656144098218673932767372014953273781871894620517651354207105761013340362480182129460564362592527557297759736689939673136859544476034217350756391011776990172062481969618818372559035512365499666882044333867984106228544282787745121750560495242907806372794701705585875286037232303314897598618244563885100608854980008137659872782433282434544915279629401807677312166819368005934159386676790852539545247009868948640700496729897645115184935368161269621587594490785138628035161747743539507486489802893525423791219425532786947283245245222342193379990572998464512125726537873227194948075178959374701572780560093042502106831263384761880921892697628991058246484526772845712587131039898633134387397142812968136684918427584342531096436864437193208524229871197702223664094728099702105358891632332478781090018584469416093182324794857165790277062170857178006241358234624248206936913749536554120550561659503676631543589347410422873811947448721497705380321922551956793589559957144395913805375331742012387293584540877099854623127834235199496618173142566056310389878172645911707864289571834100885160043729655334949075327548352275277747803951406951754969419187335605642072101794826034992388012779428778630387819829402922978813462324838284720105532914812429804264206044968999194493808914028268066339190636371473952939187587995554764074560332202443584409634886862124438077347499991898617496910350890539377339560949282140426520453607659411098841275089438948298664313066578318040805277903509053174509039074920970905675795791314416971293162865154114826304199550622352115125259316478670546038716899385238143977908786524559525538815242388545311593230623323562595674693649283928499598200502272913161049499620784577921778008322822807119305767738536809870635467915884991864922917191900091048472637167661661913336676353291123118059993478003345128643469496493688273689282676428026271247001481982595166876281935184642494329534484990060402379748189952819079923881988118393357240789244786289377111319215887058669199988460837598159787470897219365995894166474136904590059630126076042856056700131138332807957576125293119858035871580669034998935038748413719661287930210088667121289891118108887165444109233236502534474375923193395888581088741989285283420643431336243310986596819548007479943595366915648044135591645283526912261098503607468398113366048351221808242094694165617699574332026202723915718263306886018990104957885049168589152110854416269266569486618571163349157665542848859910055626108653838405073911386608671854969652966004372924175035382604592200913345167228210442063554826191401237511261707721403113455315792758333790848261060511037837366446381110607724817739776787895892080355276394130162802279052540377825199991793393576827432893292431258234611383345768391861415386211464698774077689121479376190524579916652602581435583331394810211939126570935351176336282153542844795776279747950166618309484104317166338480934169636965235614971632946358195033113871698875512330426027121280315010140264053653125708850318176570798250320842367012374148256618217852323379107181520819575716913973655734073653871773453997227422819663952545337888327978748155488081866971933864211313608581758112449444006342355644633255497118992853476009939365855792186371206774249866194824804172902934529800844176370637759926247504756584144672535130680564255361597656543436769563107442632246129159266564603393491847187037202970975661627709947437849919343171423955349278612229054089924752662853129419644166525579595114855861565012646067832168538680964870855717038091200390040271473508907766839122720547609373054515958981549135141695469701504225518027676405368843140767389600917564156509760139771924711116384717654700335540638485476721301945062774261100381916540912103087981875176676554391136346126009412379150690741917999923423649639816336664207894100035900273620923976990370973011401891353876593416886434458990094530044614328633822086610316722010603159955681211644908353324454148474287333092462056638102890309915021246678530446282183240818091459834627069201644161970386007869333145341875876016642315181231689952744652077471965133645229764248200441445375594751566458174986356595123109916151670597486692798542352845467289506295827862146916074751425226658356441183230325996294188965963450856781161479114988160622962237006571201699630321564678124721764406117430817600136151486655164857613073919105320488180435559172500867026253725216375713471457092986457493423165912565579263208007115293509467448035495513163284965622331450216999466701378179911559142511537248450022893138860508835516316938623954264449339034342194654086128873321660964879591800535493602216025711813321681401190355547673189272019327673290195081871538876401958657046934887704773832931896035187007783217616350500173093310659458151382770110340242072685660313427528311623809265410073975638637217596992232080323976488017884069158249931578502455957174338361218117898244656518219428774867096403669750788423742477172205535043118436153589056411786329948856630471092954596795170145929748980698952901659348988605570679979959176024173694835326932235218171509880894462365395665434639322387407871653078513512006336490968640090591703406908769313255202529553291712455210044035036880250781782095454463155717766670315438295871592296970790155919762004235158845034049596974612068105071910140117377280344074846759149215454813262910632185703131249682040577173518047738656167018939671109235757665255509733338987709886708458341313336741212206717977154075266703573511284135508690950426295302981249266934900619496541236484454875515178888817166981633870436003266602006966317863556581922656523647215142168126042467794797105364874099089419102229392280580405155072597802554764874995100252235453383403465359996892497040359880581579636637305066718622319061895111283227661298282324196157330454736498931320248412211251482920596842114835803379230323486930565414695715275386369487102143888429033051315616714670284264849401507142555232578481137613647435770600600366942548016837912374084531339089154694102935676779481808522735201737351012500066123938317470360132084718636002137512105685547808564339436128476380444552769058153782393808254425004552976414337529583308840353412517802889009599124223263288229126917171783599587195839636665221600411528306421432014054083859973266316162336575812769800681644497073780089863150379920347177713749868887183143043623948284693150863725948233110987126402108725293558661417703458706263954185876622721769476853594932934925353350682731970086641190237213950932368538548604970853632369626827540532009516799571230392728843618001573759684196703886000889232391970574856267665097071589882748071440654070550465797215164896582344559069774719467873341505944797719186649548261253263055769438463606362749117286468222847420876330965411508849824872992592340301310301398973026828795620938681857301960661069106426251569690142951743357622099546673625508776988671458439526725344797373699118319599661508786917767742386475521107993159099795379618387122935527876986830633102549573455980298955988667405052766600330146708312795906004744856471350719848716302370462294366636999306170129430151612728003415137555102214776644894826448660342753491575702785052811419830739236807952657889759430730908292813609955246233956126633091527297555200538420297266884311083051557122263283106451757371174035046482096623515930954140262164688064966807873161951211298417683444973479297866520772409183785502873483627470749852269307668661467847349995387848921087683565373318205802755627344307176697790633606565601458405738264969048211478642615370850724476620014636989060061760693387974609716126180590712037765063781087056900928086452903848583424824264898211998829265480157795110755912272664638507322480173589490649245234220647428052833294609129254232796577804608564652092420682042890152283970308376873690316226192211825651358231933889654069649857191040884342683606389824961661733045119839229273838656003568803860059658791952724378659388845746842007753926434914969069396847894423997926362230416679300486466757447762982999834596707273991639700463998435352122035854573344373669116254228242415813173184359981828123743374263037631957001428909226052756545835135830060767606897948315268466077243740818566557091524295178435227338878002430436204351832591564148610905922658864396385738143385732771061090463652767643643197569698676625959968946096233526043424761762976581426528213195959118562112341345707231614585989369904157975816290653406616150289109984955509692469958501963246282900684779119365878800103825117835028346805564595309301351538270285679356547531993393553478893850498793465506593964562087043106493262796280036466949688176509509431546043449037920994235747191901339852962078982566732954853772282360100330548631442469346086518937182296765472921422717398970172804561817813573364248781523016219267641637615849657652603942362269795931299616567737349797731698292320331825871069083763610507141767093991866609471844711603407833193754270222957583801558757972401838843157978757483652393558516793079974041404227955606605671524583512914246577111191596937280982936361820756948172821929728603628099075658418678787093400903092770281436312884792580514494436607730381848156170362969190509289707008381272162274599501011205576556683919677245170240868121795023035228723038308134955391556902871235738045702541240851053981541349971606838991471079114962953265405646152922985429615287535513169083913318160500914181701376105596174787302732196836546302189615044462060134307483883504621676111994500939808838840650423281788688604606131212403950773022227256429813007483857086577331254902026837255815518149186175075425412043361409846068879601122011620088003585797318402507002062002633804264479908753308968486538323813860250259957411666934475828837461952584557579430903892714390693801416869000980391855681836050168574533896204853502204761126757229331528821753210683951036529927506890993047598779761543931635014745925601396357207796504308477560308526518557746212342467053125972532382430534076455603216180693708768726086964892245956369779753910809850745528562108039641557395051748138996736256455607713643841715231149239999667644986977986691345504824463037279638231092127945822955679016451503363232459819111491521664816389541807128935608949939498512180409989136910452334208340489258772870436947418465570522005223306636203516028415129182817436652305658898277281690881463236723232013361861685321161079048101939057051215702222767261168631924600655981203768197253542645110138449639986552674205710309558504797567209692735168096108184240765972661724606619629291296441994678942106719765617661441417975709364879046878287776137626995340099001107466212503040785239988328452133098735520309372186380877238811603497919204564597712269771976628831264488700177178433755977614087303669948040355848082072778649146145188577783519069992894595212076506765308801887583438060778787597979438901975506186553072855907628961050737952340459968864678041633912760020296736653624992655169424375233606157136676904687863834026509400616301555715331748291974172214406978910336755567071145554563467764258592189664800028387492349406080564253461954113276673513803691122310728378995426953450362452444830462177644612074767713575566572442238901418176890784442524962611096647326647051473203579964350440890971047301307378046664258284197604800803691746465869017424359399069505707502843107520769270541167661839671942103964247515074526862625131042768213986051539858664538232845393800526494995272991610882370669039399411705313884446337906857270712852956781314507851343314340625226707150456612122474858772922832976203803910186098928152188038260854094060353470147660987280760372438415571642251601833943231995271141418874178787581075266587976835439262665991791312033522998440603326477937920361452433140663509457450443009377763592127018265646149456742006684672680072320521226114526806242406578995220825658589556312055518074222868792055706221565301942421277004815776646625622615829757386157935774408858406557906853928365419646874415974140899628819266183980475110466498504559589363747786689389073264676072465902014495334960663596133080117952231206328326632399608155220392261863498113919242213324511301518314949019328936257838023991289688345910486071831284931404585614197220962000002027392473171620398962313248182800404766799875045167309233994802105914336147005830671328525637214983362667265953276973261665418144169085653269391414904713253900647924447955883498044181952111887487169153104540079866183648931234581458343966175600396785527024819381588907055649521157488483750786418596520631679772189327657576736855739347648868305451551410840691006259288341357438232710319479272923233052337241028814821216491211242991329674418201118119213091359854052214456848452345662835345862459715483934061883986436688333607473027834817928419473853547604304080903520570098476529277444067703641642141215222606703804362711392962655677788016923092386801662213998485134847324421334332472373252108882936330880737900738467006510850862473802383775174023864416709666546285169528795593892473972490357561370781237186147970354166224565846745850456397672738415017806108153622162077185840147425234804490349210176953913845160699625896933980676255093117357390956347789468540327123509582852034984244793706483262081310393383151327160628849516811149017974582137780687650801077576685538434910446576130572530008287519401156022536581505259797421593599057830290768025878585781664600584074115244547227735922247312085605801383968862540874656060648012250677944588030571878254492096951033365725989456134142865405106212395718697637332465664530352528998609638013988301407563772273538919815033773109683320660334109157455954205624417473859111434014829881852252533184909356441017481818483636471159171908725063479318864184609777110615121797538450210972394235912645716077160845977646890766337166057940642316200168801049917345748897546948854532508719754653743365393729591155703327287056268455456288191066792776740414910330769319891461909398831007270660256523866445071482360012660036787381070601534278863183908378240947190503297877046312476078326526744948395475271228498297690558061710142439139029749222618012714977843729444299384886070090904805048684437180703313409183892500526652547411575842372474590977027625375022434111185647849418686125872111077614118650972633572040814952435474374078970583594322954096336332899665874304931191915692375786938565933586082264820883369348932602787712955622365391506735800293934340714138862233342416714587177853521638200472298675274037352434916085858961931645410393134582625902545927963005914087035314426210960178124080982166863244423740744667181487853231986618567293604130775881890691464907557980612542834513593455580144734457759348256729412506885847336925942497702821215925059247270083485767606061873493978122518481118006646644373770000287596323580850296052070940087979860728470700537997330920544341913763492799982172504485789526209180388811711280272009473669639534458791661634189447732133307097465946950584346046096424996091043282079466571910444791666465201440794953583859996778590152295467333719709457518870929396850127079024752170339718044622423451996327080349243200371896739692097713789043832221795387604352803144704004679265431711385773296712716345278366667259758817597809760433397117485824447867723339503193579639947457738772698527022089358566260406046742874921142538468601671736107121460945207182980126159800198705453352899862786750920178207625282433756939863938923740881218007775332896030111261542732740269682963310670912557446131308954065580671127159671466899338432474679999274504799241049193065886750478584892905629786113358099148929639964996307128450750475169145037183410846065309794484813258397620346376526689877276527832403567558171909735782749311160261666351177540744380566183705358245962253747633519904870784951967436594440166774364531507101353820177562280303977521412817577005414614864394810743673044511305271626452883027904462884652903422398373454575733600589419725815359269200212135688181711276732266169504437308895519715341725692349687322294937279648276801082220096269123940998100083042382499747866678894334119498914111637328844634773778489895166815622732675602845313400390720814739316535189597805576766183905544377427772141723668401803525354524077136518840862133164404274641408780340961100217585251993173803304175363001363384967642146505617932935731031946999976004584651331237504795601108440913609403945804768829144928968788790758483143087562228932248985468500577013315755983606835007717197488517421542866352636341422847919480141300476173164966734310094254366317349368553131940489072477873307514848537258308146401254711760427340208730502220627659423421074609487030185159033707897195586402074771901188569631773941227984417786775829093729560522085578417028151186406687698326655791421992580371903623867551758335997817031108272114077770502410107285700315441579187108701272162765528512382544176140009735856511010219585376583630344977359361191419166057253933072417401767423718087763256513597702720048658603012580181830441743671804736280715367987108820127820243537864720583642619347549177294663113117194497629031865321396191333563253619745439633316985584093971066442687619620607504192857071975104156193907462589908471683300279422048488154219857452413242098851096105547130778951109237208318777028676212390298547479142773216030462297925973495211212364104910698928895814932949360505787936699986131576975260614769893375257292867475171347070280280427215428308925783949300325479618404357137437343347995500316034073757811507427673873635858978964927761442956882584492984816840198302501016697443187661511923197657836154938091480429987840325809180051801704515787679260509023803468977566162089505181560355035709202934745372076419717898469306828723472316733178257960347289353901102037514431797860906728944854482450364968769610452723727805824681305101250096152900043442607161690246728773961488197224638549443004489429591597201596529469456586088376192904855395631765075135182423424454503495132219945092161820862926877437704338875538303456114218292063060089790333890240355154515632688166531582647554618856782410783349197636259896424561997893039029742624624500675784006938558247676244928146442016597351762634066726319899119028111246149757245940239373258378583479468837569234948160629916158253099822703271303245667136623593581642545421904928471016975093297336517252250933063830036551322767077344333097038374112036957232947030599481826928402155425731492844077221385151636148413039928196980355543551105401149247606717848158272118342221055360913731278350974575233960353315309781749066029872350546261773021459345952238829251705188309995250341945384902154791962133979145413534491795785119178386870753024328620811661375896171759101853941836790594038209097348826388274155859386100239595755143950202947080880970498414904516358165256051426896945961541711643668738472387921758793824980570779924779063610776529216944786168200106420277026884965854083676664733107351317913050918875375961580588419830578693128356404201639132654014450645981438387026186127012249481559342120871814289445725046226772341302694546986488111063823784615895223107899573542575219416679334712625705584351528850239502990540334866532965736912470028466092891131602964924126473061005331568355069437716562672862867620745850834604809795950554743970598588218083695164349598960901214448947636667852284526487142795310400553743139090368275087384270466264929531375225816292662260994201325266919081841621993977284285901311218354190602741014218824358236935446334825982273244325679614451925134434748439621031683921483917092085541139534917634659112989548061035065031144039643636433675355523708149732667508505389578006060428767567982996024252549254242756663775555209976928465462184134971129333922295027466986663112149222034026714481807981096162441924387405628039202610912615732914976936030741752401539890801251372479098648389256560275992531049104438187453334704878902789611346045750109996514656025355351271080522449563348083350147948488598236087649465141438658180218044163300325346274484320902260296546537067760249813808952184414275824638317090710534985761203891520684283862509323997931946494659006985979715516776214219881425198504557862724249456657302863804583877029374850157589735553053916284513585691191607496468541468898973901305742415894906347776605620480230258209023328582919659727763501502362594564410830883062072580385629604348145759832225806786716636804673182853954261440750930886328413536480940240574767482434634381208659919108718213120841494397669698196755089553787716831202020069097574205034794236143214529903944461327425226074926072393093014245653279995671260621536273201424706402758568004731380500626661588886887683494275019585585447557500191517633145106011197102878815315657510147507116928207119579470088009088714738844362761937149657567720363704787087853853744442261144957749300548904294128623455055623278174793784565611401772621753255547339534798540993222101750742046457166994008091247428634269002519508988007779695695889700220681874641748449238694735648366177429897202135991437757806284330383039549832956176769311171388653546819841260205039786442294739283961686860061307163589099025626772249876766972448301697795543266793571111108030604285650369249201994312466412874360663848429212229204539275419874018006069775636471661030445828869455033573976372217359720319305817096093121215116890075777973093813217556232826039912794145363911406095390610723883341015116720368519952815353743740343634607716818654743074441268985554933046666820328857369739383847369106960681352146526470483011829872059659453358501339047685911241962168335641175013712273241740486104633088367622315794294339166382417159092559467399357897168981082976433271536613430543157950950486659690656213567475315373144739682784853333635040768659730084982883065110415511403671945501643230967211435996753175047193963500999795312596593785665827162742664785481944150684373303433525344624506832156219302504502794044540979232896230391686768637009363781725921845290507352983188127730044742359547125190977570526000769629002463664927163205229776574643824406563387176226819473433877287227421569695990031110662835501029695027256083770052584771888673241235723800075373161261007820814084241487991844068475603875467840983399325117976359404511467544464075605283319399414958500897753463810871505786339313796535583411733208542329172776037417787247511346291384763590968287694588391181471265205143244577450579677937796865282177788585612743554135904596499914201539430160220968762205341740675498299947279882349982259528532800527258684228583147107292106292484361483006085810323922127544299023927602331070721949807422837304392094607870182467941701652226648472818399480123483307898291899408474924470502742177485323187620402926816117568134345093198621596141429267625183248935589841710494008379475889878113790226645729712972407855071568383732561696500275114529618383871044689785175552288813618716400987894765952241976906344708990629007583495040442486871079005481410739126211975248240180484574327830531570735195638537152088766241278942142913434799808992422299068987226624050077624072187495500759703631260288727548690629265451182497657234656800667948474446972023019854226294351895352158612321868264955326211357017680502651019994270905174239060328527347067559934618754007656278479649737742781495724137090638113911342152008231006233487503393155389349594337162918399804721002772702949476655697804888822039359625640789960112580278080184972342648919944283513534204055603862689685641669035267611865390403340210015361509168290457308885882171696872636343485257694387137219798889833404871672747841605490639285597717950827072572304402424966104164785867152034969577303350426385352230707637955247178445169944825088062061425472370412578264229347015272653447391111040253063694999990832939773099923908409163995740213388517583659989548526932247263433191300603870356946820565297864194894098480632828813272037137179296909843121637458388377174916772880162257144000957842016717238075065268130542534190352152582298292028566955595541663130576861690678817776910521866403860012233856731613305912040448790561753585381775512927460511157852893817144095496990051788789496499353075073921048120368859396810463359280092232463175380019158756044465393410365505793880267659992886879893393777910789539740829336569772506849094566297535530384754203295427423232808712291781530058581780220106063443006928321203809762625077427057781098330694500963784202837575822135440569787700226629522735227629030486737102274327890502043589939657299020923479549776002022888580673240777603693223140461296910918765359797684623416060580383816863573578354140013421119308812703107264526788479797431129697721600710274914328897130672313135669713463193338714509485641957186693583548405142932954411842956733284245352247404879161189324083975458728206261879125001139608251311970539693779547828840146485237525985483410049270185784159147834602577235708149839225253988616289504365647066193960928146314094291539228885839161666984686069637924008527417515488955769317446476043420510038271818143964901757313342667831060137378445672928350065736993260802389376089522793245470752151925773998205743765453601419168437863182668364883267060086339140321329973300501529720557996656436964413484527843405326006158276078699998000940832607003991783562955114690469461769628094325244622293757770023504798952065251220526043877485904255019932107754219912960205842178848832534944106909183177648174477299827629839153495035826835723246972420284912564278004703626696653036995252718450547643947236091829588152970072702172511484552903585747409503039352783840335028404292834996139635127928239307307512301747184217435308665220924959546427894774222404997646787308654277629236239408611272478649698392677927324210717509706282097420758046844350473815584996049671456972953712657149765516209513663352622608117130174582914469657125876387862822103778131520230619206256756931221076440321274542241443820842614487305531321659324864027743050373300169168361863780344364939053234829167135748061897475911320973105415945245276874950918481503648649742113551667393553413769431675595813610278033884089611548466480898280957815074699853518283839710284856102956253277010383633825398906172036028237451675965889130674641631474078762990139769844705762928779622785613848026010729369686701033821491109832138570443200312500664799003212335334155078088490751853399794210236955239183154271384892571303409571267226509295774370945242955782401341137517887459277701491075925122595344523476693245512522495756266016403428102342202717268676822427128386697874650629438337878661184983547151224124351540542428327452865620436939399566743926809552502494805175747931691270560686568211031249200964880672642937766720566066771861665507172684812501086772950141144290654994719926120592575454205246660714540863520868977037466972390854477526532918998767956752730584453410599003538805353739902068255681945566606738519446104616355843527136766302591163253790596567168030865995165417537406761598239030295532141016723679764678156554874097188683233022343845852277572367262729719833483130448998480360141802639481390327622227529642959891217546280445439745000380827398731529518954069649624696895067739586922956373322580362544416388769101704687054739068429512424443871484460474987704893669191763664065012865670592416091963236411212394844043167658111030733682198901377923558390964739079814819506370504902623527144745895524708530016736304744600775145978503356577061512799677799068703080568983900895778250193757605283886461096356169063770217788487209689484490382939799912269756456363890842550844841899771888464525210613451580831166187774087445414347085521588818416543273417535541645044392715424502736892231554796368212487861103137900503610675801611919329373568968974569699631767247031455940114707424133229539109471373751093413162719521238299407455956990037908258591094272412707999756974376549721178074198768906812674719965072635734597420435303560299687900534702211018778435698298788900785291720706978680891527121755414271791828768475275511647871048726224750777575345324595699770018042475767425302638705177321471779027834839304196914991290868346302922836025742482228406262593117338665959198630493730592694348814688125146303389416082286503999433790035706110776583458213055919168948657083372287782252534141945825295157303069806883115456564920395081089304386120445516093378624512119375235851008825527594491037862934565104362841078293064158709241588331396695284057407414606360219242294908667809862467446913224225664595424507002283004691196004917203017863074841372491146885200587857469606269753280727133020908045323595076221823423509039075522498278647616229676644774500765587876772393832230316736987285451984395157651858503050063824337640755638098086423287457681282282279400530649415968514642267878317859697864011653360501584966288865661822332678831433616629762876154004683048270174068097177391590173789701444210401862083669727890667502988808671515016245002129408730873767118797116229955507380701780564149075244156572592463104922254020907464436991982318111729993801712467449963673770409844899282956415410330324479561812518644055699187868988568336090629866900076607770472405561462201579371048784173751121945026281011643692717818127131478423108913047426706388982768931363746759990764950004889099301774545570993366192897005508522427943169506995500074650678495481206329103661216711873076912247734730239661648953031948688299193294743750246767230880428420896467454588796226484251286205154587827367174046257944861568931234642574047813577514173281266589404804302617357117553056307061789037956296762853713820971082367962208073664852107822127559874608197033691612904852975000591864256692696341678947392090380361334387427440281733041974715749063572502513575087711013086866831336408594758117424883883877534038203707021465269723773754516194420574647462594907767762397770166376905457779569955177143784126210518231581952622722360309602285648847569029441949424333536043433022584662788738534783177928968907052233255905785829865479166961146978892609861458982479221486663818639627624207075863698117535123912001813201700551743849852889186559973026451324029962597875252681061643980184524151433178647049224830936368202947058489383655031499663955212953767045236880913941765782674904660584028009412756182929989451335307603685111458580012110480024891761122944837044808585111279688632353472936101357441682738436635105417464438474889450249961792351018145374891990013402703630166112722472248559116050616195227452613238421118803468603986116483296282431970429035647591189283854589837135674807284097766568622091747166300133504572154967765286224891537389805120125348736278175457220931683763722978645665485332275778848639307767059785955976528029083945973455275539505692510576684909889445259103823708970196454173582970483821604818774901570847302588797013807609884922830019904871795502719417122199739185821299861713640081379425014692142326806137209690245009755533036518579944775582428116507836276736576948587557379720987961494318748058702507136478036260230624003385760814834316149394310869783006821401746863369395484175119558376778739947531431164383677322147612620661010810806694677153504995402026144663203510546738533932849099533929947135280192242003021477467584255257446493054974215713046467901696768778963128370377765943921990283164586757296673857593556911619313443874744378570669416671801484877808884178925941932185316772360723414429786331613783088071538357729265986880679459936813885593278399159422803602011782776417415117772021880288928704916751165473702660297367257446980822098011612526636766929646978903613119674962107134069086579618950816479378980229770178700166582992704010880326925929193760344286769846380233182428508172502956098630777233542589341977949875707393688253173051054522301839960904939718208233317978635422253088333905685831753721606636948744703014705091146294861532743065743735172953484685724923807112886807551917893889008022994788207418563096256160021703347210281742206168505387305171356054770437760904901062444022075155118348375370081248980129582953404923276226592325058963345918176247281327561259690315770980364880857081412136346789352414516326641668781358077303933377672626075156652868762458275021954115636117310598508867296971618869047828675633471567489041901372101466853001760105803381710689283681868963992333664829895812220907425890252403738764171577869600181677345316958046317013283861082619514399658854776131428248975329235774275062810169425875299523881933273463640846130406022489425066293634608560780468972623455146120251133263298718399426547534234353852415628949293635024828989758568265100033105813543276239981405575388352188900560179927924506730529043655227879199457510629391046921085285433856083503831575534524133561789032316643145331760152466834686400263784694948372337141797609620359258956900493525497623769646266174326571179993869111267273753639235465599428137377709620149252625957528941046151672258590882415405905263406083023391274448294889423293426487134229643887020361770648313631653845503772181521809840724130489147632879728273662743548380661129194403923493392104231188527813626537559929857081487134022216700753785641348124056638565934088806166567325428193297700525601643346180641379193300883656932421882278678712793297207687969462056336592249395550140749879762247066978513640922839191943621256544292557818187968586585088451336937465958662378927756811973753817801355682079942608734540184138659331925649972854432245721926823230301731899569265110200639785339711450746977294081357977473658808776880366181614317875908578019552576128689604877453032970601921677066699618969991585280616172743292352474591419219411961302287310414265254295042628289187984144478356378710559169587679237592195218604341677605715615514522632466646107911941950964485277852968979372160721952876036258746555611591364108196077763212743320094606821082905459352152765881518932001046431308546285957285817608944055798920884042575309119907715249044177683605205472243397246720275459418341056624676353923981535816598845687189010877443384224329184515572176043843337013918353909515960692599920650032618408756101333874037942588153622536141297612334437125491197381249930010551014339538744706178241945116531742065768920210383894924453141762478633448689499641604838086944699456866982480559872941672723770721769669325013759354052726986198391222189684956836027895793198584567384668258836917149797987244624288851385248855233090343360499057571264140488644348352018721661415732338044089393006392485061001336433782148684677322422431553132386480196608353832770306374168095764318869183550946938334718904072884615370270084654252284529864142403327176957935311664139772712572737379300073171767942609970837290676533036702764873125170592038836035190148981086981712509070774184890951137284214273854439962780160035466585858006853120892926744174176333401824069645613909500028793301463980210704513953719535414718613970947550326306314067202031427698630964042371096024033286869139553617285401973735619550276619959874306424917314553724484013874487442649370854701844544957449760771285354829743169252102568369554193818721087010391313580740316535450701778368497207348566078000322023237542693031233271447115373547629725870000110730123584667780302737945276455439605301969929461893363523717115972843837562735044519168559472685491853249383349164368604735979996999658165505553154797014624413210781079555874829939323299742529271198483377285765060875727469653610905176976718805127551411886227902613369891166658836947486425345561151607494465611655088925064979726100298627726219044255459229481866527155245319831808801520377840903971292266031931251974715488796877214555738455665988004691237293642302254925087120062524267912256673660855628185943210768515773174369666260721880860614100228560338512912439198727178759193110098854195193972162101687826146793419898729280465655524735971642423642659380478386985325786730354338529943870496256485999411692067753441287774269579580855138212486498381046469221413688485462003761372494880630502328333358946973853941067015982577601894734027494391380313139903068001321649846487506349139964165165179315826955930066603848106215283707218671161615765673834677267651398870460332714583655919937847456979235214904486576513961177100045721443395662053406313196509955458298701453418410610507717264456062186818445101248482331112998896079007411842062025140929530488620927823545710113881577501109156535314763193402495712408734968872716749211967637457877792171593130089213710200633586436410811597688944667624186384707162828837321864470051685235888921555825623260387707971351739978798019587678866484827229845853786785195924205329053707165707062169795646081007513571654157968869524954049482447174417646343169539644963206961090918055926246938952356559621991408888616207236656581601410269550769749385855786565429193611681201529206361359817001416582902012037991514111869144022391216249005544547505858523694099231546970504467933700209500409696534223028281617676629605065050028759028241783012310631620900813818358756749384510497263893290133309713124859716653714564661286888696245087572271602387819207880683901819970338352727023665924087357855996114830174425254066027508996156132041341153774046398252969861629778279341402041785368196511941098802043700262974803039309703968849465601904913657242107288192549003050875157043552014687519199863983292034039754020848953651078524833049234606233474456707094737499233217698528527218179728153381290110963000343098755589133678249170329023962703971411770802381481335740877717153541410650477502896305496677884650797483146146400876871060279909085839053497309334913666950771951280624443551155706078368166061465221681851535087115611751908581926147597176767321931351146414497955228878694705774198452615799163375310997401166296574245809579560338097966752052247749872923501840186544778757027025380596984492970095390122790514999387801985334867409502514168952441418616223233455513424941829421648005059366073783734718751063543640421293954042951227648960737520756583010071282923370087726023260328374213938010091652054782227596306420357462358408899798512613378120803396309408933048655565802031868046182755918955147718887219373321696359633746466080871973722516763087066147662940121794126149775959185541868116387156099617681991635987813706371302549162854813983477962694183722745977291480164388876785187051772481520927354698407049182471016089663016550781111420674164841814568602585700617510763211198848467394504487896881818231810289593550554801927767239803162637775175383130286779082599496120326069831764103126329184048812796526508204127111091956980913415276809123265046189742146627335610092098223742148083297606505271407469002512014477282395248881563873465838870826354456170776504570932581394373665155725180821303277514189951078078498454736199942259066255006069184261994279116384969651328891579784110424426814318646711772106157678596859935159250052883941353100541717936321602115448792243436014613747924843605290794872899804248906446458259452262029106810069550579160664687675133543807955597233731383782360764068647921788830220596763514200662968414212743246638723896902795304925094121643647968221087916193978604463219092858360850999327342729855345890615052268409306805656498705110779136221837024680760137908866550325423575949970056554571503361736793877386741572657030341339783442602490566483498980343903435640960618513318070779169216322647594276454380557172031806427188046911473340391844655817492333373024278027746400447559085223603746857098154071392586716656556590203203609342787181728822877399690450003684355488436190848937910023826430145027958421959540346653211975958574034880627092452039923714964976650784301328646786207005103861705867129463748833880428659555755420731216303360499292063727782757820020016601631046969692311312420967765209796620642763105013457671923801103881474874113848755152975676617894590358155297175890115002621689193792911432533989609102643838678741098101553258753850700915837250260373155013357252846993833443602448796520490236822556457596694130291685560099528265093694027961957092554866115520210370950563298525996250718901469249863067116798902408929511972692703602661982709076808834793365132461152328454298553311293010758111533476826833042355896293715537676420753851128567407517607924093610314560278622667422735391034732346699539768923309770029527384831523619907048762340055600805039740847542767605275261775798802016979322438428715889672068326121288503547011874925889775439483876872897304227020881748988785362626824206378259571142512306848485329185877714241403824242333203911276089758429891793777907634075613661981071046780763910135175094970676803135237428980806164772715900071678469815334935790656497220429340835927331498687957590132519579872814791994004527582198309464782841999910090791526915874650389074631362444217384687746112772131291156526448021526755966078230181836812328774048325765046671974737597408521100650101042165140221332363201980852914999036719956948903783716378476930551837090337842022304714202778286194547481780066625274744714193066297428390992770271041723490850470685914954981391152876254688360000590498037265023092639203606391096916479065209835312605177782610681093661553975760426249910561074720312326684906012570669983091233769048314557366972124743002676927751888035719738698829010158061614039074577975991749129836775408536362109364933662278438212081024302141571407820273435132255161111807427521346951746955554615030679043473355118633369680370206921691244186588035713991512620248809063679614582405044658867740067372040251083523283767221590810385071767011946197328375157464797458885770377668627983962464087683259238440181866288797207685309785940153629942983296342913907849579003955742928386836257657867950737887316782312627479841651777679459824821430551775149941868411575703477991372777667688990331839041823205992380702529966752743719080125126015693987050298359923431786269590648681971082674444590246181126018006930821811295597152043335468450461687371610444073074359461248123552597006645053064093107212996118350219018970070423226485130373359466808574090818587913278284620058639955659516873895114089005411529565323219790433396434744903101687058162967783637356126401951215145078157427413385575165576569052272381060421545698661830811511270032454163306875623167523063850292149273273469542776125945594621279937582930416280762762489758093595219195822149861964838649429060180431577761330626491520071979960767211838994878822320296914693145417436287300656294843193408092864457007852196452249754969768846552458895428315267473407934265407209541588322170938153298474017666775807781712485868468967482322142614401736402990746969322858069780659466447519599446815926625400710911818878356696842879069125080160972130122241667899459804252093036658389787058784865409154339767437331469884354406355253142423838026758911396985416851697264980170190510748083295536955875987299821389881714827288651234637665247138268090124318347197403993528888724043677778742557285858434759807340659726610815870000117785868812907529426922534450437371217308585186578360572838570101369344352236316190099751580571805992819174845881443002116665670479692979155761571102175887822680589554699371388616285202250251259675753239432801038384162096949500150102431749527753791381744409563634637273616181981446847135479481173130001894961461146473648624765286938287947488174752117222831551029975913659141196701231917703819318099381189510066749662587251550939813970270270757779398953878449311821495005076675851877522222090241278822025220821423448517778281093529245768728711294778592182986151155207523058805478160839873733061623206262763521189492672771647330971442118461168898924044668687023451318396570049069620787778691595302270149336654262691420870438051348833238501601580831654435108885839288282935695629411014794421099765610576751381610409989240668364836720813117695580356537386230095896689215598223811155770937646380118567704075378004921506042612045329905852675876666760823745769787262991299924637106541315497530945634943643097473587900630256261786937370727507263814007389930138624940829205463105246855636770618841925196330791727656143666731095248374043022898911613722283266848981364713100834194808067379264716683754950960288128532992359232023626858036974414066818785231228325497843425622536238143624933002211791859196655425188988947983980395431112395260924987488259994278693027239982789431421891762155271463653050837518560911867321794062912452178848590514148355190681259325661728645898543506413101791085725041740080744012477693002076783219452683017775076622599418401989802123687559312998725995275937058789414968875116744799672934049035100678952249282872965370353834863284542212701131017636732293271445798744525758022076725902312844449698650374766741771957400506902411351947966183435690405441789384910987510121048439853019045542944082738597418094301227000671731155922230548876820481393779899529843910622112275401169108036434098498944381981120013081586368932071537483179829677778923082331252648242665544445524146691344771956118583472109642938010453990996275628418522069188657702713424554531374094780469448089445637133972686329608495982768946484344143709275521943689584124409696215857013244704235068389552559980731383060159909281226531499519757594853022436094519301996176474657718693874122126192801199520772085861947563447206172494096504533082676191082075404674715149285981203003575263976299908783739713377803070239267139524002263105926044012467834615992812745612534838830761482130938841188612544786853412354613619276149031145850650033633072021797757338791347381796981634585293789582068147544739019527536964054850887883303578660820257174553746296245728903461683221217248980924767942154547378149614380096437724710989651228152671571916798592731084372943374442783494753269395942192950435883635709448989487547509550223791801195402360487601462401090870512428470664961165627954903397601757534222047012164953574403057504903766128414120562591031558133160594678515946411268422356207550845956306697952319444426234458520169124329056860424912389178585080578218951711389101280285817049704578579691711675483485978545617735742919763745994941563689684077853804614517965104298654332349824275653763531485037808492604751247761130903430443162748229112592091355380182619471542371028056619292377092215647921528580658980252060672178745059014920888747395560840918695392783962241485654937800264426242921494027967707433702365553210125123179691285172930258725826499858650061493461606622549103241617921817803836380915624261613942567059649105250070758535946267493636746845105084504696921139263507113008629522114799889533954022752082628755498928119128212525318591647248354989196639014281721770126297087436153569892400318085363431224421127524071766583223665326042300341108050570407084285098709817158306567032506687890310609747881459281804005887655008446250905324538569235868814020629637240571500195074223626926525953007591358940967912673076710947755841184299402739722732255088934941797520492193774570398756389704538075910154494710426462736716344680034059811055553439768247958399754238560830217659751830495451989445886871169050073761655934361087116953798341532991138161441787978191502891899714893913285638963236222901162536229992299719853053224339701708003920591895850843074864801663462026308801344589019296888637714642170573932014934904205292189283778158268483574230350470646109130357630339018812071520470805711569179849409722207657960230866745034865062510042959560587752936908530647891027872275167057891663582208598345819019466069835547469986463503544800667469353187505951683518976546328561289421723657810716730859779550939641510092199364386608960772373256053664467337381107448777919484870425049435134804174614991055929183259415360736650643194984683382886888782441304390973171908170307657970943349233839372547667756460845482467278271234287667421728631819163780756648379964757236646886892548263970139069027731528480950877876977873197175560103624877000703805718786286115024290167853337637706872625202122556179843619340875537247286598429556180348549956921898140458204567300621422367320350020654913795456071801207616934472416210298186790285158136258542555028688998236465532466114542389165605780750040149934282132034564206050512689612651964175013334450539063618914595775743270814127031934625904671457241731474248481635881151106207424848351955782793392196452277607016334146298223495027499731514085051854273653593598939882979460860796431546426471958267483791626989029407044729087687827503275421131738121744810227117240591429122083085925063453570856562893150610948968764319613152912608717795691772285866408398353176150658003624437769908222812011040537313744183289602392414006005012178199867423617389355017649914681964239579677943919342750753877592562768570829423126845449649044059082418717572914477506877521174085129754721349115998598822184527411764479698570563187592092492057198077211484463404777463214986573430141418930191206600591858114526755114332747657110097961008272058036135781513276522610816211726962292579699999151842747569963894557737296912597242918567463385268529126267424311165201117096579568624213404309913813317575280580800461531464762663631422111199068915248375917791649921488705738110164042355746089639157320707431424816764303760497842575763395693803761639005595326570934060805772960924639732005927172314165643014476660921684104734626933962225195568413198808989133622274554968279216930310031481967691158800274007379193760670372855776522814368477041172822770083213931857594533306230792968824259254021374444109440299667494935095354745977700379939553068534598532811149069173857934709183017586621715969414597848827506821470800331435173922043028765552813673718004252776255095161888937179309052530153775375190642933195631660260463470235086425331737354924511757789371658496594400006894112873484884679250407190336443970382838603780914435696250098408191715615010080991800885152031303684184310129589209927797058763557329279699414989318615796200277805748799223356468932184988148572745020654727334199891245440076504306228790164955997905099962700730180572907819809746397575798575462539165169286646289196095277501800272656865132326008818441364527720688174909204186379149129838851368970038499454720403805600185805113842703451347025360472799663410439352091807219847344008221541524135412361348485203711890358415058454708330386274105950407644136275138590268464547252281701803808182714615509174065003576839698283175949884042803687715848668661776667097345954764547871172720679264687420471385980087816621825515651981896585712077690989741029377725791219786118396726142052371335312502447453597146677215497832621787242781750043216997869358417789992707158248609946888779016528666687807504691484792524762281960744871840248073334176637515011384107703097619164807309204758638751191568988002886291430883873114750588016163651917206170416970671014135272106912597943674024302130912211132121101802603457345290926871882651097581390076988019505432908394500314209545682055962475186034683305284568341085547537578333663572863676448623682150726923336321868988629588730013104727615728361194320082372933943587593224545561397297210178144792446703540507452600292629583134973010982902617400657889357315329670600328987203948194004066709553770888204346256883203806647695618254961302209744660286882387115245645173248371772725117164448142714781674725913631538789333906213254921843576964858748894480460051156586237226643529340317072766941920751749658536293222763510315627360911780600486228891949965114218009677173434978027994885475470243220208934641135311985641838986416654799499606733594084033006958710329563798443471208853884021790575181109336971869128978776022372015318216052115127309102793446173874237595497186167261045290078387791998796652341512794309857365102438313506373613140771240449568002080298404577617619752264406175978396488814327258625976681989561165688454731687696849568564809316622117668416079669793124113716151345762091825324259703035220420056588606190545399831072735478321499437165139266732345072656900880070795097796327935850316736597212598014246952662062058303183109672507594199187410445952392286579680476946023940250731412374782207883891379251806969669550333779735128250266727402200540539981617673009849929999636060885421814628273732766621362005767935718215322044980712770575526665087680518752881468087481265244978912496645546860693545455946322061367013977727061903842886934868368198719177019063038232104331571250135449632924551554612729632291078994516884921443641422439975783372777456527566487445764629380238612293933990241961515223309815947393307083161351874674758756725558067494492741938407437282136939230514351928792812306322868967979544777664692951712285601499556951465210290318180184631706395624297688464081741246511361124223782502617172550448105312017966274249866279566629020507598701404832350377605274135963792735715821131696533019797076578919671710351719648883230465694483662341181218000818888963360716603091667486922077080523183126884171945728185510267324823270437704067285284275637885229493984132372923971597359086312630783440795029779693309889000108554081171850237818100481548213259963584700352245644772451965887830522940356833007986762958275014371985743959133015447722267579748775582981042969988962370967841298418340588696223799689638976823016792930218780617205187461292047527325401898637312821285305510990475557240764676266109560516397849453132684782229691606936284428458720713268290204165459456436420007689268986590213069816325515123853933739697417748492672846761612235749059210109678639486636900615202408452919935113514797203759219717220921070111078480305258153462924455361640009547578414398116110060151227403692361614150914339633987725968155286308546212985414365479159127805788368879319147684304566990776905950091122330166216657067096406982805507779797205681407045513282310073658780281287742349685650979484090746888883848708068915000956335888035793327527282259555379671169880001391202869953638484652016340546817260583262770213674900796643736748380712447157201555753386037707274999191748558658315741557690597791689368210717371686068504701842580260342942993479150482997821781811030552314144981545730986678897748168022307536699450321967756794311763285116313701611939148112052742881780359145640022127940682920008165844065372191006718164792790658925497768576355701018228073213907587035537330510012877569286923768029109376405432397924918628474726988690020419591204065957508933618995094857826046607507050132039718673305445759414407893080335952709398588185387851934522646525572394457311399365234316073861165625612498319161706205961226928332998634207562866839022108255972060770747550762384930624545706244934939533426757780127918923291645413849143492992775354348236701583360843220425359885464914784241734016887385193113046691044181528207369055508639707600102923089802993394444369715247363121846227754677041896007862126387362780434755455783781631594770546352991334748891547463340115075670770523365059814501870738594054307861274252622760191350906765019997789278735942247606001030658804603308879924583691376360989974765715241886272377820520075470969590973122304156495944866338794499284051214430099631778148339800647698143570644049335753041383020993625625140229450326991639490738686094933980137665456829245224020845616653084377105284286610647447858407132442671366453765249607097914561066547709149148162864555969246851857616367139458176984152045231213650566983229876561400136564264752537667616448431913841579548920970714165645564457415140282432095046646183227721711213174978810570395283493745349338784051636543261332993505883428391607776234924692493321358296126437864445357832842294550125900299936453705322890577771418649594476153767795578132613470320682075011281969769800189632687920739139326930165110057793137678788825936343573093578911255792118869201208719271595898557502273445612590851113756980691647669855079973179819997195877818500793713207368966092920700517671953285265497813755268289937761953843083989325214936701985872101405630872585904384060695735851437068165006871966192667658915807525701679458864292905411529286737234174735759620539383250653671294295557968352670261895622383271958275191728542709156062802359157651580111608746037388910308763512289709286213268398002387441300310415279856940253083747319359190969835653492197030042576909581940724107644900546073762855000306306672418211137444388055929827750952138649890353990292366328675127297547589993049133579106177851009505412691112935884073860292934742235018926502600944772684620545570581010681018993731821447538144476050044984078291155706651284934627093676823568207994558303828768277409006828827969643917329560086966247571042096066342591733981490622987506059226950080185735218887360877198820991140727334269918268180747646862423434755564500778071463779802811934116485010197535161565805990650766127424602355218642514840953935466166094526387862299778765870270793917262506431665662260895908099156025564884055990365296392501589099858254172425903023700728181281896252817694764555996686486941836419337682025711682248628970261629853422116297602753682394265451905634729776208615886619917986521148486081692070477827082389669583265073485806093673396172732400161162283455461930770858806628912404575181085132561836109362012767684846222859725794686147671724844296846006805427575138573275564366360873033560699826246623022136398758024833877772253560773072863600501613105998068793275919258395567473132704569213852984820594915116947303608189269086408543043872588791871837240427565367940879486511788561137712848812161884678300639507580877935396632433189387049506329121727704912456360189335865460862152046163149172710712125221511643625569728109676122949333683640114322763613382439416456816969974018048212001138758389213906502317778954399533952237263040884155140059063472120558124248049908055721509982210758377532037853328308234102604107870992182032760826041026809497877395492861778346073902550565553774591811263636053158450989620203117070529427293241204695468510701907559722928671538574310246938033139388001418730084925116851936180121899338754626944135185056108400794592262651270604770550888707742432833199082454323593665617372799095406706192284230778332193176841730479767832805783836693289715698888593458798572705414796378301252261204621331596129962792094309883158712642283543281040239460307182867920551871129327947487721066747707037855059111214730717899314673654462662882243987829724903994503685413651548165175111247779682148901612259295927790998484978786337240677730730193397223098570533398008747089569392069345038431385541731853122271199788794290274440038687766601836480500377120798397185742566404247009927929300214725052907972833049202468414188189843623508706211952865908289041021712587099983724066212874713002086425238673538226864386092558943724133699788958078353327662763465369330430711605274757348765206187254646591052635514398396185679484173563945007872159195050870427940589468203989472427733759587412496401983819559730430342544543680495624765741573170161982820358472285246444256343972096540629566793782788016706694817069713167999640746059635216655037033474625070704468744081323839962539141804393185259662802825586315252419949177936458925862488882150763569394024757710808012330827320631967768632469430766237019474891855625474182600860640208800607348176263920641612649719612239394962369563705005141846212838024485295728089357710235974529512088409484092792884157133230664889377139263055521244745958536645541227001512601902036024623311157786127853700078059641962438396342267112588538900792373151758154705080450736922549761820050079280077166241709064463709276909927013735550341298744048013936961573883676078701618542164493466071765628790419811609046552311875173443681571213359940475160593421817328335641528223045055580678412259233627636347713280770930546015707629524440547052117846861767425376094286130635191341345738632260884935118307278663786571137569983897804946673443797395416055551966245746451688563458703204343294912851148614502395960401883444427856313223847410371506720179375220477014692509123605180395665133475821674770836916883830140683599504614265979634156890356704437093787247600332890485767933624268617375691669953837448758749567006016058753484990822471542506878390017708161412032624488060266962996607149416880255740801744397236941450876242406698795475418807927722838510424589819646987737029547636306302024806142589308200980453986289799750973067186251576753837960373586769780011535848030864003706764128261014306003602652448559178336624795620022931065939192185069963711581043461086557296220510061894116881156542098402869062327793550896598981953902353964135720094258349516338679943882628547512884612078206366902967049204982630839708773085814319989039724597788989100344317822929810721734937283569272887823474191483298724138829597787729523699116670490261946228330716091709477562900772061436745753284610096142742200087313994865271334897016750446287793100617226781009759676526819820786914283268047695550429856756202620050111081864793992490723002168276909561712398732916081318594599650709637283946957763073734615535448237523884400151593402385774517181821694052591806019110253658320201998943121912243235643534715376467834376766955190091636350149532991338203294227407775468536145823575906254552019132743136635417525117621377320784711411714175041137028453016743625682450100974513349644187573884953917241416231870951784764875531855033913940993382438109826633322265694640539070449130499677230050447286034028498436155272353708632894161355930511487145934645429632913841875660413876469781630494992631532411588208157062830431637991096076120971286151944279108109139184691401132905023833642702842588707899202148176563551960121716302903044151763482383340717996968130741795424386344338349170739994583004489909129479661418019507698549464658467699514632395033457418102086973396501218216916580591822326640008112466108363490125798519731421131282887669697894061090010475056058301356234706744270907488072424361731857831941618373842490026001380213102483637012507218575254035796038990565970073773696346659665184052292452586377101190404463142623445053866924397371965603523087111134888902003013754541436964288202428018318565873620690567909990029823254699686258794957347303923856585520664561010433550337611453863751252781580672177040590467151748688936370673411584752296292078301827292461385158777900906446220356011235735996899021220195408981653552331837544734584633566493355871824127264363157658953576309402485764149885843053767599223753284299783078177878434231233294176943333739534836813877979796465508827404520699846751035059699684399719181965096423222753813763168911620175721787130016705412242458020944851327176500227811181184954973830124144426103092245525432123462429360351037392217403309597913057767318119827187363000985308878308680391122298429581301728517988631223167324028166079445989746630688968478733557189699573613050136003298704342138395926893453446097999692407061075685928868692020366601926982844889767825093057591645802608933494784260458608666426852647148691947947611499772640628676463935690281746789430454855866124482280543824807340231179672415545563048098268518666065354889423072733091212054949050245146908425167412461976391650464791123313182900641048451922173971513581393510477425173103799312998118076304361196127084691713266011018907413621243235501132629955685790629385775563574930070544088503415744929693229689777146446209404439310857231038634778454210743466481378839305953751733019039378475081374395588280815645206786487731197696655516586423898434296349458441300720155116914054891129880607953603508949278996867185072930329166072320464783355082308192220393733730437160789389356535129312489269781885989109172309735880544070575427599118472883724095247042309545652318573181503073716611545738897709655888331697283642199404864955548300546002930849891986488402347954165423331445704941587081404921961188435261163849418980149436768262676607057795376714388429724048723497663099648530145396882483393206751644935737339996823220937038939455592373353811350439301928375098790578807580987771430933926847045728420085095780224447381318403375654196287166942068137507402471500639832975808491139537113044574357403711551475243962822843670907770726034384697450104016285624085110371154086227085790220221831511873030206813912748088836362722474515908278273317679602978443597390264191058894207219268809116398228678535620776011338483223050079824960923231561151967129251166281318526726737315986021423934815073226839614976225527362291240917695127532878240847484371101551153882282116584912288777046527667731332432050629271738553281082815854617931920745733754005986651418617386347751594120231182179763950175051104192283150489265393496017127519248932982764932556501081887741589975218354519859723589133830816289034995936182830119973404120093262081988022605341339837150875601035800377072061162629735219444401153268776747706951509930759548326584562173353790432065750651406910446979822445560081486391107752147441220239637674013571620309318284322573566225569296510304937602848132945996416074332194833732373985952343237640903470674320712774585999482506217416969620723916165067455538729627694321029649822069136909982609611937465659196105460484576961307903015285446157265810404376922486250840987985152090154508241587774882644186336805302454879128222616441484218650198726417608011552368829725645101930651501326388581857695914936578087626898252594590701355829546553739993843024390584431591406528190657829511173968495880083728064565149010819870085800303199180532534881629026723767469283626479893131012198974235717658791497843746112913599955629887928228781045150746453467828914520768368047110291110562773170353124188518762581437615463238431037217383111399498055212108202524068134169423551324472232954965880216228702769254541739532250533064874159634947788718448714318160118740846489481136715259860944583167853938505863881997596566917205803916609966057747496086505487585254611329425716766606950559688474410080919056494450190137722594751731485970547311280226259197655645215398946091610464688788781900705897854050993126561581847761066867150818657364662859187057573043237808756012349083529455268082657151346706558559821901151055834330813883716945366429097471839028106701273437991119152458180412787724692273500777009916640714202327472999093123860055100306027763770514715755509645749658767847482028456041076829336451867284270618848420945433835534820353040395068398384023361780795041409943743476849921668033159804568374900352528518827181258201377786723158591940723283871968676742050895574437341245059314076710641003081657044783037712517003206733840642496412920551412119270155504358901266133332307041631015670124241381022906850692663705470138150994133725866851884390817130602128175071677101961164344618097865912404875187753809296398219156470884198676845769630260004873161886808396998557492736574430350487421918555008173798338120646986423983601350683573314390853096973383703069759588732100567395132718278556528869022077726715968840802579669142535809640025144454259217699422829640461313173280183633125353217225776490218624397268069846244117461666857518054010274600968994241120896730057303613244581150602713216650934986686245976193507133902045822688993897034994282220017091364573532655053251601814762187029891456097310895128485007207101009142259919661651695743196968044494835383515846649476158337368486953726386734731609790841537769439489471621720020265828160689062473905604740972941535194013068264900223374477754736843617900631234957415308309533152608223051939403777585979022053963013401812475926916727371109528747146662760050485066749400876835519678531285728390952770746090260537590581517147882701714447265022176764919057109009178736888382772654930014297354145396481429594653279633497898099244499414428142839603547628231442027712020471741260332838825521537877730757290377847305930209470988475018397277472917770312933478803076630739927843176993682963046142001192273700444402410539101815215053704895862931838556791205585845487542894426251562303446081241582062130231884304177537820709613917391345225292524932986746060077472243726782796319951231417234017248893017942993566695224910371191298251519125738103488710795201790477571931014353401522078130095780932983044282137976589791326970294364802399645069226563359721776428275415327745928538061474704298645225888121880383147047175909601512884940565159666344280073498253070488161738531684757301897466345839749840696837506846674394669278198359895043159805267555099230812734300058472948957643927375980718614972651145410764578253878089755454910382437345594253605454514844841706158700322761438164160909488142475990055244069210373010748157467168356044952330411778342277492074155036405065788175135925076486424619234432209187199131380895309796482179370114627336542776376322096318273914070824130081684855877916788069929605955953838318412997590476283077929270852662209994619536416417237064937698671218347761228681305867751329386184857179203247301693897142890852037894280681552984764705593887398961018743791388750936592579869676104121037583942658935826328762355560089929092296264548541592120773256779154656435951708669673283711012669218834406098321138969000864945256033071473059932705656932534105751276127449299047569752598892979577184005821668324949369939974848954436428520316487980574177886086230083615789713548725655823248560978307604680720492661194405434375404280970812584855369153534967552304339428726946573558210018497025554878200703782248195351922383126304736728043950033862685699053731144785698443344015576310754856197456745931032039154024319886552804616590179668768743550171736986660878841764868442514051404771813096087942537254956351794373927003656345999092380273902065495708990564627235442531143986695833876881292775617910216471099907144415222253326268688060225381085318995363656820760381099840522026080530038921092590821572027746980054322221285521085233721628695915518369974729073461620527616454216785711190280930696316084577922975752501037411882615621187113610242762940457739378741007546098378436011717294049870027237098070815700950469755195979595272748639893463600413503824403944194458085656615855382768933461749384043127715025857703990681120651066319506513706692706872326853302637672576009672095751248756437291755345492130082994448447032878195424000957188412266850130610748353187099171305210331097631360491883526404891673434324390848791288067745375852441685863669506245333247583762024314287708781014870086635545490069777496376785786868549960728530451692787980926844203776586414494352126285559674012167994412807093064164830657812572311133042224473502644836983848796376691385229739170195582507041622448947325380982417135990132934842678496379097025245976035214375939688281001467902784406557180916540459845130539472455663411618729963524491332255456631444968289138977024200076874052596991403329302150587465788164123079799547958305021911798921613128305389472798861208950648282298476892881954629564399980439391493980320655753964699311620025848577444743872582086994321859083829721994098462080177079209384378444285822184614666473353871718904467167019082026459227402452116237009768988153630942602387318599428059421105307867986845922413905371781989400996009671382895375299065873454621209037330613481413626230149493524004513094931176986396751057677964154229973688037666453126543813633039989154097309339161015923855372655473134776233683812506083559684478890143699996676983320547017698569919355809840267934360538332760287449652225007638729305860684484581628531564618000899302870547696102480343165614098756175773635768941613762364748599313921947164971348221235661557314228094488747635343297475593688977529210789558404851037716543618041939496401582625139595969930644543108561528743360194793542577598557166105720787499364972365238839122890661055407551425173139895399115932931543403584721521905669064678081345859474882027149110446042994234439495958180480884146525710223629071664133637217693625085788560134745918701742571612732651335417270883257577656878926587505502179798158606744618163079011561711177362775105875636621392010021808078563473301208581970486888549040296187488734898504382547144506021446042556687583912957205884676468089221787113520783820197655022248137935201495564787566095134247879112554361825508811453291293881615035365498249049781620957825689812298218178033980613613151749627418141962575810787570407809722790854520186554460237697392177660262506029863707964723651245908114921519472873276382796475301178540725765579856253521562953964139967816735809923079145527052557011332302366686167688812706724734054034940388118440602053260870876338851011781044430821286969940361693257050207111636206814847541993240412732328768383770785221312906753856800898082488549228632082144997939894496953763180791826565265958440793369902856596469996818390263115712472722292815274230062483749575126127983732295162490801934366467770011137805525450335303790838525762912147135984393716144157198806172469781845209954500443078322000193983222972273632138666879147276207260392077106049241366045443703625208562896132859819557835384745441948982338830064334890922300541365476441579081968168730415513572603634305977857476301892464245169086375729307862002118427098639235152326930447520437230439445339195611699965944281320780056697025074482157812188070665176279952711227644310340586139318193016362857035842210951754929643134791726280212949938651632977744903774136333335014002265402129765607638582575709313845207587913658420059623991131859487772431793852536914944492469417864711132860988214079574590998185989138265515304781759571733379485757750794721314407880418941135283775670138812113566061631622794352736863463439523246062928472738827679567112423696722372388397295337171062326773497616189505081200189320507718549650474989649491653789112915530249443209105695350304656997774691472886827120744924739777244245722187453534194062678130782304041800499014869642423988623199196979864883579462979445123622442017148990686721613346978343391391395083229644387906232432336268019746355121247743415596815111182500125310963603801245551393307870609326303418821566674617530897042585220527965478896369509762177592712701369498917775082536736528061935353357900046894235526371608603831081363964182789031433224924886499862653215425476937191102864029335864742015790458357362554394057221672273943427592441170988862553740229218885774422947300215309346579030175591194152605657160078515716752016477396853147219488002442123313721862803114634402461620209180123115573471374691148405256880558361077170213869709107707524221264229707605082870600839769165090725537458812850686473381318616824336162664999132787275425589389153789902972486503693626894022426597992531796451983915667903015529208763330768388794639224667641723966584271942926108598462717702573172526292415336346559519840906727569608223167611278828999084861280694431369252927802737276620061967356252796425705535926872933756372556103334589947953893476833627443142489831202355800508522457698583559055502143443889258023875523163576944316746187127860145052568140762813726349188761109115764014503745636971631771225218351324671849201728875687851482389907744160196741921366957140495115309441695753801350291549887951198341781575417308861027797394688139784002202273892667841342815004661265109963032274002464639595313860951160714720395353547706927608500610775660739865731277006389091217140556898278819974752158581421021519457767015989596266454518405753848472009617429687957884498654935547621440789125778186123281708727052060706873124466454752965115121445624547880511215658414933053183992261300862984206598211859287789354623105932260953319529220856138557260922245114257799410630791604138751115804807244984919527809538269555742416515061668683764835896288116744289756727043552061532202243653931678103080407284144420436190039810575700384507758388743236393237501036128994179867953793898064905828743045849428332176247710094279650353510201680238305244924168049817380622866693454532853686992766064285495298770900024169641981022442353959189350401936739938814041204352701412064625664070404608246780885615770648675483375458543286133241516182777147415604261883271755523020386844673289076559602734559346786397714724428887473919828103664640096347960540381952413804959009311025251488949467188134632322713556974167666675872251893734258470845886789800386900694025136803049247597922003640878127700156947527440913713549569819260663814348886819416608824332289040496304916141729265948576852312544411344556143121050737571022197249650757522566103580130290894117791171810779887527647981569015289907187400350582064761395193148388814905678482535509028762471302742149446108843868488063721314118500142631019751534490412113349783741541616479167616388626264991377559079709017590170968359534373428296174609557428561759146064899960117296468046336374239158529023113164036204833155899947154152956529039107526667098173654970616340183748383115623967435968010903300719170533069500090077464993263767847791006918716401888539694577394893600671383457711361185700036529271425332411220889380523035830337976215596950349518532261645479007129767474259055849694649322474217969981473268115249472430808608980885393935061784499057548246140709317964087601398529004639945923581216245680609096797945013386744764918120434300472013557905997052109811569012377188069300503986411988586570130673175128745134168810448921483521059321614882843137116705521836249107255426347783799260589518000400172204482569065561679397300797814751346595074508055269679305741264504668812894874207100908166251190170977560644666608531225572483950219698020265451931998663188256574393414030150319724975331895076565712947689982922030541942793898408422910452829302094880393872955715734015333864429448222936553758680195540982679588011641726246519147270540406156209658230313350444357799039437572925075490863986398378468794527326959646342432052517717971573090030125742602082667402346532294424062711589513301118094478041531356576487466832208758711296162854074059177619170322614345079719763083470145716787100425055333818788757521608453365704599446864299135668816349368221797993850107982999364389300648372732001919065982027005196447583632517348870204953888775614832851511299276807341784488295626676866022366257310255285294511982639585461262096453268721221847389255071877518912204624467860120805858708956111332250147044149234864794006976904861187833353959253512114582121381561789272854904111212215836582197700043612459555783296436787066426762780186786815419864729133501618767658450811852407539156148485466479344930781447136775126698124967604293961983830970166846499544357492752691066411257016567243425077790258705458958267780689907557847805867932965952437465388295145098713791217923097190374927130565417893116790239037625104377859755712246588599580573738150102338547608279771101743445081572481415064893732561890508048760936144430841154643863481328086850249936316631896161144579898874340887161947679117768050070449968445691111732609280399082060224769888772960653150225953039308705285000766133082519296365962077126363576748039092122283040929564469336002762608103923215648972939189710070260425533924661961416688170822567355891067835949163903276730907860657206325369277506067424390312779670941668849085755918162305707281549582151789089668546023914025405975193310786368274317945183617549592426718428441624811071879742969606662497371131264638234847842470935333316682247820595591810716702580779597997212090150473821089636557386685109816222027768381942595178337956778768843289362628348856366702307929060488238451132013462811192619408996450369683278626922379409855059400124742804811323346783747792545123203300566754582942387865518198671809742715866167960917980353960448973801846056601386138570941894015407492343297077133171247977119720201205830540321141692205860777985976555182003854487904371173871879706264077197301519717162795660524036151789595801040928276624249112734154512254929817133551141708234592202138744473464453127180037348581712915034157825575493659957417840652673608646829921071946282782983567919346228559645840161993663792857525933751984416580161884187349862945789683015696382005823287193978550138491397019525276298694246958138136195033326186685945440424143065599307491274106976726582014026817575671372058653878492271219430922280448338282822168133481369637031639281330014230541851132895599466727070946134159619229254921617071875168417194930319901493245723074689069546305393720617626937691219679990601108003843262664687735136616282018594519047555256304237453481807819558459955762453917269729232760128630986916918843043151760473289315332807552011137754478236836872245606141081689519820238791685464703212825960259645582794094272392268081793021001963525244004729390324326197871890167452709173600008266394971126531030646853933388916868139859131197421943481001996968061844379858713393136376414885974367698080658344698365395766688264036694600888962304039940343620979385544508332259243317868984425051519317817639974065565411485101591729464588281853662581119603943560229042060213784301476173111216836488285506484612136526482478233720046812878513212804402314106695450410309386002001331655876900881195313511747466213602082051092393975971642791988893285835301892040061197984324989666841885321570130239555681321544528643459269136947049741890908047654039495330878650458071300819277347980937956502418349392518335207762396190507949439836348629460499505208671313070602989335744410319072540622494658970208094240533463520137161894214368154890993311790227369437493314184744987848596521970189424592746954089915797717482194365117632502560734935054626659511335534659181491488451517882532583764274877392504311744283336826377291087242076948118567618968373585949837220710341500670957103226130073001164407707305320538818916110051392389078218381177190970571148879965999333355233431065640806854007895424532556653074493457565139117748948900344914639170300528361807601973748978433805043349158986684656658376975776858170665346208107534367947152501900955246388564732737219370895441001744941150914216016607836488448185457626285792331252629988098755363529484432532805918505450631786443188756113210022059225140950133231024843261674389732700741521283432017920576458398132267714351857538807143124468059926161256665838089919523068283022642784203744133955916554822062456496127889228792294230555243518785722380592820667538392682721546284827520295617473519366622769364475693493105639822613440766797942426544967243817651661542746034449600921351678432571349647618230273411615212043164679748495238989966543037348323844100132968068090864926568968671612102138625342921339961567120037106601688533254750599383098391325308119091752565395558320896308243833086304363053178367132849997411150044037017894508257599768199247619586327726180808424819906286531731702519597212479477247480534241991588951955498743533137190975138530635707306945515160996635606250388590294922882643461302723211492434108980388609580044453142491186136243203238021307409064470091455760498500770466476697545413405083065189922164338198440231270909109700474317046440716991831250857466726559926891062911902687283465934988108765811514058888254564149922242377039675786303109017785462272745599388750343380046958505167432713255428592326098514230006672985690386707452462630986310195296021594675870170542502581440649787318602744996909280474928441445495388856461440055711219655190549152457528454626253007747311093434327698371605723066072070868761931952148984717298557639212478209911386953905739309761486446012583038551258963847958279318327645145801952900029141219646931438440333301987317456220023559321140907452715044918463750399193842503450926750317922267939290033617830070024920236357895324465172931760474708530248647994057071214623147659456111285562341208891325631505263553087159940991425815559929166919188457360456202355062025057764038437470298397274748188413540845866193233893833806370660018357543070754922486773807371784611421243423268314107938286541745886630288078315637472906522499842028430290626264274424038897906225022097048650998638134845402941203465380277790350537045768930218854088267377461586227221715365185596422521650621674587090752191316338046794276210387779744945994810563732614443118946976649649807133911781845019062331756526283306503709807604416899660575817021646017309671114009527251942302391060107251090895779078185005333994429750735656835660846646173713704091944050091269348401584207001791331974466914635205934902983582218252488470394765196580726351549104629442679868584805075031703826323972604218838751636724664317091688213138715652280183773876846964673073257379846803017354022889013787803929790939535761158265407550138826671444175764367978904313043959823867418332640048590175205147130169129455032236749421365382209814402404551343541363265252135818152212102704141834094077177728863539352675764971465094161047193620865465390548633503625696167777346840961071859536148946924239103948703787219660782917556105628652543379194102798500941187037782766233128937145600247138346601671364314873257138991715684322568917388996239239924248711726699266452670423531215029852517751120711689349713757283870004347692655734318659869431293925399037863184500406879350775935863404593182153199289646179284592881501260739681216987700209692355689150493475771462177387717249698611486680880503118791230619721537897301933806794068797054388884562958642594692980473255565180962844228004764545867300336059782046917577498187177871541383167004352919027707022556625993831619919132439283605210393029694641389946166096351335794814923211827912476416287222982170309514900736796611763201459427669202608531233207098582145015330780941069822956917987663880229042819119294207358190780703238828977435977259780117827827283190840309840068131485253017673204986716434253264327488841970523705047267521355281686776360750149153867800665250590556797614298153518175373989687883140119294873688073646119994651864561256768133903187411112154220979986904312590953341849548981625735400155506992042224684467339149587160913852951436809385780816427576858703971787432092284308354537050808050837136084364190514228859732115435743869090630154770823659218163130529096029888360355519483313182425110506760827244037961274645393797085194179673283069402392922759406475434124794228856146449848522199662200525299250888839061182113561910552840680903277518352962500083135408380758865610341403945588732743995688070990793405174354838764160240789851250186817174493639868114243199712561882646439506739794405883583883121654454884492261463450156605253603670770647142399722302756335184425357818113581967103667260501134916299929291200067149905922660013900881950319505283759180557595077834122097438315682473278147186073277853615035265598623261377785466063516100057821154213902242703676177609757304027783686321042737620011010431611412764800024355165531808595451271555778920677197020391268359313896676522559124037478356122052307792590168650245264528082938529771666535955843984263100783266036241572108378288904610760705584270833529109779867759032362075512117578037021031555843523026096665100350339468933208875539629991979734498322379623511694418949138281704795602997246099304555349967371418692351701943362913084972876068887725995605340964927657361409972333179224300725848230019581195973813215880797143613784251459022258282822153926798783078922232736868218381760584124050629812049477023761627163155297988295037792677385400690076324332826833913669365061051712493672525158687206937437026841045164291739761679649386765593125723955870542796050818682929287471811081717597934559592557407215219165678430620614452518472202261000677104459793819663679849899989710484420318207134050614890922000607739314244760189323322877938623212595867921287082845324268021727355612064781092626516816469062908404687210404100920150914982912879088231153364921676614562529310347472791918549160269946191996542288495641561853900702889682434225039933755593909413226894226107272656798144566672776332322407226100641821981224314752656432653197047842884678857265504754326179388731932683837579276088892915160266995192686431976350169130548456190407507181333946632194783988716167586930378415784525889131378571793396553625176457654808666419357069190972322106895513146171529447577343424147613224763815962316803669332504396101331489665444691813247950340198210079661518524878831125247683969039267802753336633485084259171788472437477822365546202072009034630553386438106427292163017407156929773324681501110177126661077283709481729771873471575789626217352104592271872634708912153336205441687745948592995518054399151510663885352995243639019690728457142139432292241369941379207717656347804008362751997669930275825712998331701455476954027886193592754969999981286415244380824498174383199502200222169494428516815159684425481027936765374503905407938542001117598360559122604253390523092104466585311369973175782315214077991032011945708528866450120457010693448997103411819277718299438280215506546716143452520804074479595766780148375536960965283338049324041266580457792097841219029356803198250316720102830550551181735398382066009094780062773176878779817871173814494520302330954939778322461814591302132014732251345843959327842280222052590514901885293788676525406607151997339665516690292962307586791793395511949720262829612732608207260841949403068117145559916382155340216450196685936003138224035980083743030271447905087911306418222722134738515185442200257420938233219231520089067811047363014925550331044782803377777659537586932466244332977054382463188182092244100162596971638167872226918082307897656040679413933696015037670722544893249647629874132949716200351821482844041424124570529489147489249842957892077273298783823440277157831256277591355325578651959116403169751601492730057870943439303029258652264023718393993004339407179908196155805695786456365107275704208704122460573849918613394394401276349772723578669345996907776004192725048587101334626093729455201653747382072770721590349751802222835015413257967839450988221704206620696252271549021381148056797537018604050742360981863125369940267759075406815756478620689699937205506967003358090378547834436929207055853925443375558999052357539475755630347736637392073645982612047794690855273941179614837462424649071184070469123270160156567842126115214298175586098318432962352186837675856710332638391789757353514809526676087392751152918946337186662317030740324657182007335987995323867852972020686173559728342129188689373880039266409462770801065857647696649583363177800036148934501150971248391451662331412068262216772523415796885111996695702279847523305095524533168245503328402970433793805859111881382474946330882179919691263263714167359195390524887050759993886335464299905454226025956841076215227640054840832691208222102767976679287080206566493334950594828946583805663975898659863290755101886470189713815163911444740100298462281414072128792742143155270745508723869319605421120283108430222071315860638134567030529367883626790835862241886704072493511033399723153265224138514322117855803762457999311128537280165251748594351962077214762126097913065573558806636397870571609443401161881830882602220553165710436937593723372792881730147101338892522610984667480156172529811915661770896301544499088633111733305076205384691336732515680373163567552033717796088344554297460742094014032459187811917821549242619031283654451605600193782090951914807365318136690826635148463169179781637509376108494830126720712603826411164932913139944200309324245297429085378044839151738453849416936299479727005369998540600513732168282690542888386393943879084577899257316372304288837541976788968164026187052902510420694652991641782787328424068568123511555862986954310262387773757593794934367122618090745244878134632122463779716303892941661706028632699354774879433276228408395554136751137439316422214569514282263669902825648825172754427213643603612737274936956538837127499663055796671172425179599485266728419169521903662164756755635946644465775573045891540596918645197320378733294800056331024126842295154097578640917768355113745351611307354457274618785133922045891198981038663406908616823489179125925426415187376872978150404651976627470951954520692372837020678564490767821942349681652029380647831519888911123322065510554372080276096031572523759951042326603717522391424936627515975525315853007498387833845994165682993767153841656401472983413314875838750458034340839060542561195441226662528211971700877871811118457043768297072828424431484649395104336567791374286567173963780710144552249949420512316183506192961248618727831261788685167876789957578844831829512799698799542543398944456238383659513454545245540565951894389661809026777236398955114128362726376596702937038945636511897922528733290998175243608772792283615928746424504844373961983632853807726277213574715146866475358390045784245084851695044138899577377060376195454737980213348235810873816807749329708240395747315421368710667175966611998083689859195175221678893037945508414967401123824826802723963499260656146523048286254002550312477650332058625067513104465494590299468532181857748491258090910501401563503408879683543925241412918772222816008212591468064672301983772843131845728803583974073985052515186320861336428087243472410926755934634632598420589088688215603820515576248151009355523055806704084971645545278266010405507144795137980647845221554113682271643552244242837672783076820367494662155345891889996898661821646069218484629080344224807243645921639577453390769411896221952032687028499980417611678698607615543244483080133078014834759536553560110500058878763258727400660088029017552414914202046048046670772712981635182027000343300453401792887056919066011934737989037165745063250871432327484193695501245409984314872874360849206762679561301097789527991256465116802368937521233873370887883947587682566963702839775662847464364624691572100016065058209500139225090373759983566378150004343509236799274217400989917723633945051222164366147791560057530201018249793613150893179974564689116521290743891016662285224589648946563470407403896488634315386171049479952502729550379556487885322834812949819864007545254917393335779264239248364424907879951930537337813042525375183854815218573374844433083898725215628192415086048435525174733811922688910631535258868060090856944762289931251662598732557683236614812687657991972949789246040669784388234919614446989665299787501138272915123994609038380366503918052743595085680298251961036426472372341533962522055542828160940399838067240660357023954493187131171938803718606385672713381342815268842909009134520463389559206777347944806845667603169796693242738766621604304674805153988569226272545458194980009207265856309207288372506906974713965405862612419560004305266617513165948069933978954337317941870782532205436212924063435388224667882880740631668957774128610803867235260915763762879364309445258150222624893292519624228540925057845502103821783033360922689054432773402814487316441572163465965685872638092255566650386765855800108221364509109219841741557636195390675271619112748084375829011060015648255210271550504769827167531850544223000729427394028309695572566789835835904555397099043482354258392794986383391968816514004199833985147825270588392321782130705900238745747001936472415950660022579348225081584861130349113511854407357037793150761615453925433343681061741445879047452337357871370003188767828022648190488316118046935723860187060187337151997226154003575773722129318961255260058044234855058585203084480854568017560945570030605877199072948929904893660233556369305900223929585228263799450945252202043636874374700201967204455973167333774719808187337944796886879922206680702683090200106164293648553604541988324783113131536984573496287333846403396779559044511754879104554835997116185857488314939640407044892810715743976311260683010020282382547906235882220585154786692418273752467130640545260823390574581739799282248078556080717109018658487542708824248269201560053746435688799194911290635872346179858851584084291820609830364905651173789517185425911161582122521642754865305990078057133693238023712339952651390580691931948244632114906887549302972996592368033912340602561251156388998306102744863941124859027910073255492792058515205404800691794371359755578866558594747698123641235404534409591172030335341157860061469551552610950840592781736187294707732527604670147427019832998014193392411452540011173032683471182615162786558412667582606924159937113476424551305424706764265695537478920118953878582969966173557829540212914365185209785457687390629222338682330699756805131513017849216293756918324745063707361799252466655199343579417314051158343587854543170567270766307620994476882101613635545079528736652961097892330506364844230275147210935928237804882137907635368329608168260813547419992340268837039046090720057184216589725800115451317367840368398793377311492205195421444065450562672743220149317358863449886802925606424607903460902045399848372172144461965878588103774145441831083396420478594978075094274038536278443580401141534113867878495045460722933413866474645913772163372775356195281813464358398025096647402447645920798266683757506391472516572835468433459538730488136200262132297890926535324844326099738037207076316905689667442871338736391243700703374761335622870987986207170214806219077235071924065873916801036395104500303712496129808980466777122296477468727715743187138805580253994950201492977762386129857138741794238335242141586414568375943215794212038836082878915653148243272477962016416788878860448457044833124934324898476601082098563299357591599606753003269827008713412332310163285777991030644723552308565271071898127952650820838408575136557998212048553533717811173353491978705720569505732560585612495292115506158562413836089212860988826285187330736172687866464549407138761885589442083755142081269994523842041395567340389451279673906524948886784269452841957413665350041046216070849727906290067348142476681942359301843566487429409551959851103521284516545404535489891905207957901709837731220258655024315493065973675278963512717824324266322306326943829647042284737691252120663543864090798010606202087228055215902042255217585836857374964762847726732628356721625620296336419676349079428406515024214969880509985900076907340145634481279623133027172687534321155878037087099409672546416171179848737335977844150754267243352235031608974962162924224130326133588227200842464649698341681180092176493566945964855242613230066976171149588533343969162748754396484903078093888752223304465374309155742808839229113077213910885657267808949242004729184277592788322548871510628309326898276978278221315173706711128400511639510199676223569016471489726272076025517038330122603720844861254218594761795951970354401453951225547919572336771172708331184521512462184353596538529147170984946059756108717301899823505627674979879432101445953400001615455280039585689325668278995093754096959673166532544792567192506130272216294247419674930639172336562700741771749612392325352170946068635713389077092220303432683113204746159899143190608507869139233424794159058359140589834763466544790778474086861287218436137624271346702796900932054647865024458825880883471790862696938791277970991693670416275955786416557148965431545269088226756365845346596062005142219111539276882278365671305034804283091937723701741593920040483957046536102169257467019077979913051752723842970803665363040558746498189680869374282022330758989536607520633355243445387519255094396544727846758538292018540202909447631880379008261143847677246385552545665437181599274476897010681296321068871089061158227612397976942037983932398586410085723582469562812872390931463542540437283245879370235793760835620678888441165932180023922586288994758803990798333346899774963548471417374324055458773661995326019455725167055192178378482387879449829576175063091678058242865647288402017955334090920909592270096749222520456298765540096239471420337999683083775223009680207473601097900854509136911500267102685766828534628848699641812807108958009745178641746792818205124504818742940962742566944593755782131059523923273487696900470394403913775207580886158830182020683954044819039550684348089253144927211933274527204734054997685483618009778246109587077818111907227871818555531475709019502720879224652333090626053446467541979917823770191981888280454670412656617549692296808655006208706664063392421086819801822976023185723509166944296729804688017395716538692365912936170818178581735907001361121193533352641217131436128731945019661943520293655299810235446247238650861852156211784233480085631713488366999138615247624938971304595110084200273295562300689662623577399844785236868808529484275385769744158729540130596598712781488587710610060337905223835126986909980214612158954973464587322690446114893369719694315955739015632518863105299413346704169982561593271479223218239891554275481745915833561372532630441358064557982537224650737776692087650663717502671706512680774104719545392582996133680021483551993882861145840755444242505479562938857851606012598435361538882108954746283572626551605820436248486546669506437395971383103700244455246703035486413410904803045911803679661988386589955777358122466299649947551076221159552573733291016643510799425691094456259983815304498261282974056710244701740262182172945363664757423971628374352851271142854259560639686442067589480988851373400087580166918776875754293205748511868953646127746271310553086155793041608366159536053323745809942940517315488199206382540081901963475011878891216401956763143315906304269244521873744475390953774587037062230257283772207359532197098311996953425575551786121568748332550043813949915848979284150781444249654575806840998363676596142715233348848847454358330873806131623574741868975468282884537052405419249460786140173423783563042932978949435868640408648612707962499749452624234353621106386449381649497513734016780351232602339505877115161707531750048154632006548295818339997456060773921080174675538158075449561358899979159433199900310370984356272539443234062152249936457231490044091672444767328103881551179017593762850015741984160234255716212574390420336302420839615129289118067917813988204994288922657189243828531495984700140754595676755971282324107878686999233606896320196124925112317722393271055500864337057223881603229780403835169528760506316837911351718501725322466332940457153482720451046544390626875223270907851521554075071572686529829145433128582523544418459338905898041917504628592277772242470067154867143567143555130403028159881670410739492586587193082219917280138518617924510466754538467895178883804219685571224553765688824927369826519054175739636995445006904739787679674466039012234166282438910533815916627902050469073539126897826705068862485147754455839837144265929162656802729897953550855280738841344967512026193183934933080222649413585452287822314875009932607710046133092491366422070082442988616489709386737768909318255868377610021708966608865040093563718913353041254115239133538497988905805580069724317621678812240104797824733753534258501024884631236017907937912629801188312151724559072712879685954912463357214854874034375563725484834987191301643013237770429481592390856047523632739749085045281297084235448961249263089557568142431483473326840490074679339972516347301986590789799524264884551714604365830590632286497742085654233924814662342932238297806458107646245504089179344097306257670339309339370266217234766096407800211393838322100833987345538458112194132796656426421390107586873801904851295457744841555524494135067068564414421278628290661660280161492290535704929645849187764417329698335126682235383737483082248624602672102599321324567636642415525863427008339346357979882766267798632902572162432643075164856630612412598287768355581423413628629744961818919878871095229997065959253401983389959925157125603806160758226547179720130736088052590290405377564200019376044321675930679717328441421262885430523502529707621721629761875980581805338382091444140779186013276712632270623637430731032970647003909318004487370816436863691561211079169602795092752748595957837633103765543866195763291305256660015928855489758408677641670882202481679013143708811192445533260609480595335871698744538962838171789071966490200509900524077863487619486676112031927890788492765604740364693055926504353196308565172800523484991583353415690763196730340055240380217533134546112964444474835992216715356352119694704134126092817124953283313699212084451446942998222080462414073411234194339053904221774046689322777451617461520731861447510574068982556281833179630373705755392563520271147879977794847591750619336870806169803238704811507455667704800851123412476421531317543511109168843704154991736401285151056172379080096640923070128801356445118863088441447287298028285240477947183402751820839934632905233154467639465040592715176513879561865439019971203702055287955589883015790237238431069446314705296048904889647619528034832025470260470155966498678080458221343920359614711758331788871499129820207528788063054287887445223442863294805236939092229686158051943911174740910804895907106918853484433424110719813122067302510746962584716100867430288411009500084096366211472299185879619031699479619568278700856211633642453770098463260237160429613820712830207297344239163546276014611227221511003925149286802262153159493715988459529907707504450401143111885547538047714381178111548627854478228363209655317922870571021322716846878120375985468546341834104203878787697456301667730281540598213952447503855117087085685319277832937363054390969877383240820888029674421106874850550153498629541080436140470251836468429047069700952662542053044044635954844949870841022089030797217303275506105016147437293749595287163988211621601073501432874825132609657606208887829413258319554741246268938582902826486915830767788651139560675779605657526247402254124301385618617881935063018877754104443947798602296135360893285374884114060660376072374782054871634488402627323442903696298031389945126245742413575640834016159533553800986621638380624698909672809791042578157455034260321889024668816192316062044406979085176564364191684361339327312649265198186513316892918093139203856907663884500241822917695555652006948213114442180601280043900483388432650015660151996660548148413651333850700770167937046529466067033221834523743595875690504279275832765100975186539707351875818371701503240920379528532230451767827051473579708788011613873743632733439979357922764000387954529857611277792767977409663946459780514948218800784019991098987091980989846350508279516710720188044301924512191406523450370843986948763272114758051495126509653477350622002710603385961478509204986053749654506175419628805520956215193111448818276975938479947135981638121084466547413801491126087736542461720092195131701834679434492520869020032099145542179015270910119734200868178212819574999053216516417548794221353216217405483952417856016988041422048159626243471563118203419847519818000948653055559200872796692539282994575641884205905700886335741060610731698795085986798290973395156776193397620516773384098191383289252760980830367383057031089292356815478467875017407713641681218465010332017432636963458735832397069888808450655813499017148770061517354679651937368752157976470699330869215909223311727617345487421625139144890868002736964937622161303662571893708366732238639768118281636743041715388221773477737985927526905003186991355410100846940675315061513781214482701758355305363636695933824047927498823451778977994934289319391252623642420371912600534175018312293291221221690592053736255142716732498177981638491279299450001506910026888639185609732553784407743835115905605733836210193735042616895821212505556742573885232020287502912968159060860312387911640728858873393950685687823960614639721918987063881726667659030546398173996962357414943775380254586301966524780338827608805284672313292429147109105805950153117690269362941052395776020474764971707274254909516268323157265561976144478043490554548883441195782562961341703183608850456928012726870918367123283017979405793990453880043847561689014072568304706776906339302580156311606210351914825264475937546911364952626414870422731534766271647580073468581360724525034408640143558961735537085313003924149967468558895736691763073675447551453200541875765823074331492581178383406995553555676407221117447341621987166781713148965279544391540517882368552155270746027108904046758864716664195616781321030217998020789039376156871768851009280889698453449044870454850582203859101925714637897902101285574176934076285414500509712766186681104305099738360941059440306977357447473954936037066027812197048965635813557492891546758929587878980681538691266396300975868143265313532373855895044355546951202778293978618689082648137813963081656829486943059440137586267185743968961774240216325550884155785871027705484887234337231964289360728298077562698008444243892694557629154497825051956924014087888582243813029944139094252589272798831335380694197017468904926449686960049684800803354687834487810614015579672104023186687134496474645282905682743157601357182679261338994143284861661689975714980996679407313925495593876606160252230922408380328215438601229638793617735301560453525910380295194695031179947347221763538817136357903372387978059544112011349093009263920628461976526530814985894291725209975206079548084184578717062477998303005699355408309056193617942903084776099237568847667135354624538373891616428594111871249321834877690717125755385268646101731561479723046983549089633451113808403070824957619834414411838319881277452219910572670268222039718876604122776980794467739971375445338875116742243154074367189830411834807545127695097241606693916149670777980365839900957055967338624923151942130551581251782461398070213176073772922868648354005116930308707690045017773730649321526643760010083746234221575940128299573386351324437770537355443213518976359063041572515142552767084016412419066127682591150792066295592318352728312006072065974991682639452527655778439057205423404010766018189315865975155075067057209502007070761414856285455307948960045262116063160082716814464352305821962037739808730909371651078703781064565753802646400554137589644489224503828433211852119758964826564790020117161487927387632260336519391112284682460068916069406235191929410574972632921670398713476930527841456895037151415787861086947691743594999089731322678589715743964265379020539590308332511016549845737307717029088724478223955550196497114778141627384830915584620011772330750885102763588995741612081411724471441504995376691895560423599549082895711117171400746849206957783485940799729969700657931023654249065094487293768904311987280093818906596666860067315706543809584019123950421198221432430634602883814490548643169532479748869730430027455601274603461808481097143950819588449800323405943903055774853293270266336591639471505326633632539336325743797754427661037482980146338517229516065272754324779225002215680692342050628658388856227043178252546098841992040724368837484312434161331362192277859654580124127776696680105843980362587718905491474619788776115051851043179337408137534383288702890908421766772110406865141303108343607850446137894209843994463190022094084994744638190137305971860517036229943629575641149880631835091574548304651181357891004899603423157464795341268100903973823090451649232667046684399362661185109317509205862305083113076702295388340586725525581013502960983175002506052634957115873168313675222215098802724785616328164900698373725084249679198745185154824532633116041426901877960850509798756895869099852870991268593348003915729163384820046259649460398066908330874731513697767454531204282264901591620823925519271395629028050270973690394932922343041058440786405438835685155369687886902458921427781618672477154817200632849519919266560472399941057430876483981133336214449698335496088174672995781281100071908194983357945761978157217784722926603312495475468478192912622071980204562196519481396740733912573610608890391440458997397816356613382868904206168212901478566675525425003613703754373083740612757337085030663991528278598671513857083966414431369339089469836077654092678682486683196492664988187514898220638836458016282839483330286499878434239160265634942066056626133634341507329512310977064474753607407965834364246533252986338043589335938513712101079404345363203116178896615921132187162084263155526840776113891288658219369386311625015517082281984809854558366965950823564673154001526061860848081933583761016397084260269285689214457318008813300222374530209990424609214838816445443916066747840382436374683782547331803552206450934544588236278702810953532473022432156710592051947652955908982012931495330662894111305445013337298164732171075372201468865190305171860175876835162968916130525264472366115478054286290506391735246343242497143474297493036979416446804070922709949429361624095643016914954067879333339672903121478224251620024863840162995733523163096000272970160243618420470133570081214023930969480059784271399067173625848379768523504911655801175757642251237541293438948636228118039840623215916527864098535433839273193356015116107031181405205791159936145855717809909827636395087228123218246030026693946214462720370804833077664234372592230361915981231426402578378891326899846124619070135138544684620938089268885305335615134046052367860723466470230417035645339251850326457523430769811747544796759152885832919268412625898921978021564439419187860672573472905104056059403513289227466331832895450184023590194771130642474812016831302435162753906298773498662202083927144575965592450027972323098868969844995127898519315112265182256147818185300689564615689465023563789786312777053535579350215309992783327018102235250291889014413483127540523761644340188007399519180525481853549014393863163856899121098709477411259368752574923578320262706461030377280322088879445929990966537638045281541991078069016549103301162738427837824503301605362616178931739149302329341844911778605697216207027478806109772741212876044147198372605609319657460134975436086018658223635257417981675447470929066103793748473794637310380936120543327706843071059713826987320448006247054748292002576912581849806180346788304643879546196260256919500436837466743593773631772214888299569088537795652390643458438259737772481967451162890017994366456377779067621595422237695755793671427346361442533157023590413278624997560961005363099707795627218514988835049487908662798481010048495053957664122960040291929106788879539462823780950411975590822610002605208295490565313621764854967113510975446328018017265466425384374350339898856484720080825042905516215744588520345794917322970116654149601858272978207415265350416727380187549786233495196432496203108048474143071565532452929375399665903614494514208902687361538053616276062744796401795167827659675063789815531725987980458537996643246285113710708932603335075924956290836158880920275016240139546656962725796823093481479872379081188896772645881533622772931690325957023835353267747518822090795134108848341255939025834197428021584725785964634337388098554068371097379042983694617716150590085067260382976162630403489563419749501926835385462962638176420629939157563599225434590713117418179177610797035914535527836042152212396655058525631379333697109319928607665958849906441663948565300521206340193446252909231490757308638870779763653890468145850670673178346761438997563816430693567170524781597485652259991669604041412735210513329598845780537642276756333917607042223726370447394277321865011085827017543670903469412047939699706495142412515540415547002283460792380429445600584949946880443388241781556310022538049481545698897826703587885160147016485112147325948748259316321636317340826749609635605472767994891069354954565356232015703237903025464174384381658006521264404602023526963999854580427464566260983712761290189020505133435548369896782697957407797266703277658339344688630412846979138222626400402304307895435644018329743757400380429974830313232682540409177840185946978911276356181142780235552998001718311899484802313614334738564453565252631893803508025076284526652487154458205600907948054399198607324136558690795401015353061330707799508305202759738825146311964693920738533660352742689243656068924506774536741444279321695591769613123385082641917035470936398682335969150852539962868362759909717772887902832572131097527654018425056383140282606630016338787477238985595963296179131644431626077040404774422312335784482051135078746052079910966527267137363571556789716547419080930032115389831207536322695116770600209943187928466626116060233491001862069982257126804344902653241804996918254081238248100293270943214446369746152345768230825845502980536587443492311274476139778884603064776968490426592584876666332639990456627332217037643970064677450945890179115115255232473126152347462825015188599727353208968173024177017126212482107608037885625083696930311792340841008207558772707357247554443440670541513689666911509930691602794147313593499836814388206143725004793737122111277417266826628817238580081599485329939955760042202953454268383368488174859407755055540103232996662211643526739701815112229678879055011510968380847922652051081606284425810120018541111345863902800199400294288211101544687799851818170023939706950151191194742335424688089631062203573448236170773082338439766457616252913816953302550671999360079580325305106151046624935549022626441766011658000020228548469938693212246674992368546352778796429810298376100582654204065385590256061765193948985441053467404909122142881284471085689676499298638182097098455704095511838501517452601202817297560926221134343715930244061940793996690131663467888353603954976300452595115425849698681674857532954435232213739601887318345979598673808667311243083765295440641889914329867727564326023773080113329994022635473974013910533969530185481572549708029994943901542880555845692198189678620334921179943645160415225991870864052632603198835771568359173332209234769085903534762918732355599223886220408990795075111664679717570661627740147416534730344901291236984462816845594882408502644231426596147223216863426063419514285928067504368892865215098157682704521584059347491360678074334130850517273946325972345974873308313783772804718348032133515178776339150305603376369756205024177635861780522165548600783583149089317119737643339802090830859395195926455436856416686461077843107398796988158217644920712577893813932278925088756293547256129833350165103961668170871841490577382636731128692900273529636188544614658173332244971489815788514861000658160022139993339902950159315986256158750357747083688084248006157234897551242022404950712879592457775517961716964744254057456385552909042455180159918676996853989966063761518399408538897229633067686144072873802989982072195194802474782319653258191126616321693145052834709419831049163231755771288500406298108965017373505306949887288329702874636908496341584705079274881158148547180189897584729692737721536682376275995112955241703746174760012847768472847780455218995683090209187996271585909352911577629807714908809512230897476969250922863892199845498637089235520000669388280889499841862977125759007694359960118670352155436080797451463120650483464970027043961523793968412873575566044010147252770380978640612735734470158693835987947748395442604438412226570282587519280290702526575453712486039834186064093674167458865955622822267819412623647773327369621179436057262098697633799756665334773389983240702271135578620439747139234478350354935329267560563506751526083346405980724783924193492162380390111915528465222946212101811044937684807799726149676695419421800349371165076579172661571240282475645970326296688592110880647449654077615912525880158349071288224109012751091247851337632918351313711600280517160930399042810793256205105468677215206951506491218070561828984290498875348116132947373369322776488543232472532687664191132831808811278192499577348824985199628096913452522013730790700647517479582427380608555855767404896030775128923828084167632918666330459123679748090289776952799172568007158486667602317247972451667987142617134138742226230710246453597229588372477594727888557473007026407752796823732488015712665101442968231334893600076459102169547946142755423980304038251705861679314138481178579360510511091493891698405951225175032763237964472355275211816196979769324524260040805796647702648511844256521380569270177436086092820308112633122915743689255134532950806623490071865194570077976780684608110711835405340254209475276469365393939745895395826915502726483455827423761806382998392309745846742952030206413548934118035171701980385944115980679113053964939055808055199980396369333120989070289089793582588804833594187763931977007412555700010760020146185045999547913340307034234266924783345911387649034101105976452930928001709845690492301161544688120282682166863045893707824074067275519030517114961607631704436117884233770935677625752987491353537312098600972735556812784596508895642912394231376624419076831791811551589992785885783025410603819921189259897329059720317774289922096296765892876346395340192310060079588413337339570876788593056760271652563501073694143605570436733482013122016020878768967172510003963984086831520979834343450769267341226951509552570631342206755079809909314079786667183345474504264051842534062572018188483951606596670552841819984101341745289786055668512867762014963742899130140505458282719084705223961736051286938388574138695299500410553899278415842779625360427474239154035734230977988123604215461822889252157511490829284749303247984341444977393180143339301298969976112740773962600819167561937257772840375064169879534173532210976077089086756871583731676086552005242206032684711108504730615269417432901601644974019707648507908571405137295346161367487980894673824813751640525200234080975249083271395554466748216905797508829182079763093674370983498143692120317537468116057538218234282029085909527225128165355752288489770395957090405161940885545671354362590319124865839055486640094558776034218322379138295810294575451886933522100293402266668631277640033974852227761635838193645679903470856156518996923211449096289862015691184433875137271651574061030817983127221478304043847521841526113926345339429061827473007838397723657294697337969194863320087350292893034434423428533368846972487559209343775953553539772266849772280912577289355281440362329109520018965697503562676783148435436414490444179435365911844072776621208548875269875803863371774478230476339916990282384854446181195946182201338298269803559644807398507093407236689537971076063838876536479551958823634526522311201646845218491442390881137190997388143273600799732095292998605666645620332565144197972752359039541688345660044567730153312403829816756909799117471311954061804485211371067345636945689045601329360817345364200791112916038979534554920989978169881801986961157486439794485062264845701112325951455430451963749851412309670396851139565318970738177324953119824483486150923938545387045223154232195537254244219836186538499247508406979052454124221183260740272274488168495340075626049642422422316468580248425320760467078159090623425108549706059605985295177172746539526466840738558016026213817799023148191386795243358594837824275945292947943643029970167135729349108613986985165822062629826197112938538608158389266717335428795141183351844231984405961081125915410537369064742450055164838990360517401490849609940317295117691541633315156645660841356421063056184621887406168221327146310594054768897385150209942876559788782305120931151400550658445097352138493821658300317165957051082207931663638653736849398898412615751742042648399634396049124457728310955135613537689932899567761285639873226631801160972491147523704069259070029009606071948499358750445554509569295420715189316879217092888552903604524857038560195104651599642496297128633643030259491213281223531392967786775710021069364962039385574154175213926784540699760591576708005121563371899658085268413184545983689634842261851649039878775114982897258104807285320915554389718471927459501365935712967284245200069222593026906645082925677077545162915594212886889531282115530323471637995553989514095122272173251622326080217286620817359588317488540338325991336776933085379907554887364817261601903424922154455603156122960964235415731680526161564650006482695497791462122938976605097476901755319975447774740722032124666771678256715459035705378474900640576457634447977885931397441650541087815821600274378270318454490054360130471512001045215416793150373838169023522830405600996907302167458529554694905256050958040905038369892667736323847084917932435469164318299431724325967736182818231559019866836623079595027896140285844955795767009394203480638571444114259667252091851458979608485100007151130449931856245908312378951288103974015253163142539553282753554980816085442003158101601835836956898043302399480032808624211758756282979077006954583914860519697968872023278858300734661073346237716798219660099312662465673665901235111700844524718498147022755259587486979642537893933118065835816570151052395124208726041389324280373509286318329496935229180443794575664517768162155597610082570629868658872063407054006431263373533411326188185845467992514419366901641292774977550162781150876027005994170147444342459540916690294717220057203876759849804428610192909039361672115799631765798151534265988720914717065765121562862274949412025476800689285351115399476611423494524210509871287099414927874243748013576409880318965682143913417562373395172068625438361800479869352899313493829744655330075969037865897633492088960808988306151989774379274170133767361828028312626941990090890377124304354646423635641047536583459165061934577134595286784914549414882689335483929837890635997852944572600143046207268466936599237959869674439378891348028324293335228235055671581675553781815234168882022876143086743907833362036406994919969304409447283988021634304770711424989359021451526824660095875473401670223056015520507291886195021792725206561473589698564397315649744320254574073678921551002399843125511267452964862675363332605237748863288456595939601774980060069191198819474480657212012870832315425560111642425914088726283064221902266150858754707049008890124835245075520920986278064277778560813282300952283923817166580563701994083090747541492722659086191555718288051369642253179845355740899998620657824532169679848395744758799180893069621985077286194630604586577541643634455661395631285786096634799140590393050157613866968053969316099453089952503363349623894316555302538730420377544670406586667158780878759466844110019313966413741775229087246614834514729270845106128355873882951405657749712259480773639775570626739642941230912185585741984284447822515504967007366668915247260500162251199262848221607685884147987788265575076677717675395976986235934093327969401833305526565687881643434455588758592900204679549232367180650610520663887584414853446949620993198264873600533824423333498421888326137661438371592087056024902238253834229188865618411853939995608556639627520142872784548646408809458468874081851702935464527900467617956032594328983394035191920211565777485319298370566142155521519756901337906943863735634096684757928158013952436449275480965171097806245137020758230158192647250136224552946175703085109656101080060563746318716974365129365132676193125000110118628574615575978133161044302420260419880607574884409770288058374249725684080146689745553323195764788073240911006733342750860401981088858874092978386243368317531592004474748612039698636775558385729104874964699542476533893111763614548047337887264356255720285142106372919979283033109030528958220639592945984171152320911020218200021926234746194854790953693515801325545000108911086360834936852049946122443575171680227443800874505130523048496509646258952871819911023640950781998013900466322397201867850363729058041062640292857278804654130821984216876027686328819227422379679177957892480044947656764164876268435289818535864524566526158277342939261266447281091361361443654390077849679387733637678310964292638416905185964106603898923716188020787864803210810497179998238607347777316488057698787512184195468729015598309957166086558709622957954698017249072590313612750858687572114560460392280214774703253454538646605365768438791012589786322277340268427923762490630921977843745149411072631840331133702606064543761685901350900745688344850484463213752661751385925817868068849186865419462695148936089287837040660330745151149486507383884564259823405415745603773992120009339960638073143867961956422558021630156159691181376530995018177410168943584559993737073226535176112747089582950904711217839669038419673464104320982064928888374281909317247689395201026471466887034322383452212780424868500020398373434237799552919612343548342370882609241618633791545704247018396284156316334488893873795408845797287141138678252733382141494060736062129770765945467317268485589586224120182748804238653080130735702607545450554493286036166192586674196264120984459883604970129532245698566961153124846133632761023326242074791835699690839251998912053859223493081282755499901576167444457882123515214331506392980317786037632574127834940071613299624835002754815189232465721431630903319692727159823795254943758194462276396015580892598567501687189188516667051475673704226022809714357054678778280625594641050777544291314272228792594201179497203161350858923158718879170314004060361166489777552690480517416653939060502300100171710731864280057226493238004972005384674682892649230217516654425763539460514024175470752815027556104406284132355354120211252026517699248417546932677955856979754299545583736289591530464580224381200195559411222550341248459843711181333782562533358948830430292020616865162823715984089736885412496712737870831890978308407749378998346864937774558625260512390720981755516931259077511346578058156009859748386221221385753588274722489732151387005177638315307945190735075121135186483530627845335926776354615134334913213174115010626130442913130314187315271832901023548176825454916249867580670157351833277230256777839248237819473956154796917749662994157570361417356306299280573082724268480090624289462500739421582355408180153917150127159136814150328308519082437296519381771063976875509824684418328291623000488059426129874975120798177933887690384012346527524913522817128355127963666190885173853616916146162777656339422059049907345351144225055644501483279873864989301142290918947967130330157076800556216013287423866142271012497266938342762943233484373868378313103306202362875793105722413003731851591913421047460320563355324001092290891100989825571372548220988685727231323046277478588850512095179933300728556921656336274091307158335671661381256432248805400975809024448144245702212267115865397669782200363954539817033790064895321466356309803475290162912634290448484883087972515124248568196136858689990107215472982667943436403859827062753005126721533386507862237423096201684385285874527717508246884715650785253834093919301385836373654822485123073605560257329847376053895042583186138760246204173986602849610710487873312133845770879135658903842416308692559126636083254764900485832938027191523817706516569065025647424022581206855853070175768851473439499719254311669311625939973930060592696149798271033366023249836112974202129710614791622116077379446423126423882654783948788781123539425829259248454108231994961970228599296480724726678956702890015007790598623716718263554293223982781920941537031438435667103498566256879823327403294788377373205528293277384826626263427327462062760979052000643223477362075472444628061492040931164840200385053648259376945816181487273653999012114967314853912277188650425538932704331667867116118173203748035018227297766967221932647444711986880035658214472110620043844440144828366571689204346793959616142442763075421084525082565321387053207439692067052192285338227783016749898348853317996347691722889254381672669876622635527789723712848853095659292800331699057334910497566426500135892116525314220300735588405930298473129825772638764408468705761387018760518207170769714070936281325441406585300833879847649078433300252437178018596298580536877775364936204921276480898009938359034826228682068762147201247051880835349265850787117237205277126336822178183085898217124958916078497199330227680152658926412899917302240856357152097835959400860548699994457298543587263243449364146459849395952739606126544873248619006264098749134049911488526316701383263727661193441321103458393177189096452372593879924726705494770451109819769481118309493571636092254272634150746957738849719288730418709470212343559030677628917247061020610245367027113608184871838609008683785684085469578693845994130201101823446513653041815428773413611290677218602859154120206843604613253020848633357850826704862137067707684969706405751846799182512788869330892689339882744389435804906474950713984615598648890447248782005292353298763736602502494646831783631274772592420774076072048000307520497402217094906111703407847371232364150696680238159009900965876605789128331302054730861346677289009695165786119573948358093288938009530501708304600309552516411554851404006417918037002436501120705064872902063823811580856271760508907718450952763692224802528980155034184886814621724082947488441459756379981895122793782628874340184183453668274675402962105556130969977375200516461983970502742157908170162143096217102077421268471511581568742370632390425098227771869664090749824085546359520729280819258006011064582888942992339847268165606698823178625171385666099896141751598413832471653666530058046751917396139850085895022848458484836019001964744144481175181718258749932534593586881851097697927915826898597598157870514910218144746663361110247445036740637788422418345276805854809491710007905046723952004634136202765355873209774092247138467910269101656708884635499684750050960113777944605177604230036529691770434447035517439334379007405528159029030450242352476718121136934406774942307908035575684395536835597439069566212766318298027878902561323865438308143271234097826687067198719315663518815373745132689521011704820670565942002219973219028728150829071395167845542212084314933408417970939170076662666834978992618689552490301421073347884436597482335821649931294779215464096056504413926311048187911666009622720051112125074479945952390091801101469866812386348007745221696584322567355330659098944189583335615825868658730006957152340050904534574788158162735284615601629115898782623877681000841160523143971998100961798092798394271222221303553424764612400370488323411960647414562945660340655659921390497098992291659291681000572061683190735950842861376259346423437384215917723203941533586806175741188699125692111795017747591192835935991558855742672777708664355137507888901979291736688750996709675201335924303255783658071150813466757475028909921366761853197711098651186099586054811175079275409797874254499398168882486400690056600771776989263562381690488515230593632693446644287589465458618380466777411007276992928720325330016553236106386979472307008152465416649977861153750069858101084440409926383755780002666074766772941957295102931011834776861475215889005223361826352445076257194572284188042999589541725837540063321503473805037784074065576915372999177909079989785842916416144464644278938939627775807985854912741079036398180007343864972525128482584677040398210100927183055509315971214335829814214261689212403494916643694457207930435638269726100767591226519401121639224234864849190767674029909997493658724900015297470024767951501839843089360232376704471526146224472955455968067006966082857990299692944097965999556191235092601393242567997034354936730249441322702072396200694084663937215393179087488258163356121312979788437833645232307339339686736640857105800039436477660636970339552165203150900528335116488418023071654234262236778959962573072018038817254302830365989484137864047245763271385278981181140317057315420874418225611662602054670853639907893355448975768453794842836431434149938465342997326242881815888654544435635649954751790065910832009673400081770459541943044804852214919890169712073753025114943575015323430724418456556854303586617887672408871602542466131694779099489874873853085903516801277185252478402930611021967241536956588876825119899458201585473560505392682541477268528013606771766834983797790084283385138188200794916019683616564311710745797218610849496664558976405168094499053503375957116796835533944729058646403978634147808681689257192344955928092940931634086194347431352383060250913445019669837359645567472363067000109576204231113476708484587758622957776417088022126006004848700434006951809772594376020616770759337367149287071245200434852298847343694262884699690871376675438359835009658814774544488479045838180141369352167005242566207818133611723375385287486347288227097727855693777418895467482910954962080732099387774913669287898357781069030699287718460387679635915101180537546738930809928748549255335762126866079916854509388248993195179521516860834237034522994675073643393485299280093498868286568318876919905385030732173608206823689868117831436599588335147591425747565828557352040572581649319664793681715968766860701313731074931913507399982122296541440840857926165168280738988155374641231770038843545982712850438049585527625251782237722835427918620354605632134080497241022241697206639552829201894937233926658460757997421623573959027276909357123789415137594703267101796208298285765340458437005627186081805198181498420911095080776493997733441415504568227064997253196025959407694748261027105896132136233389515937673776942201455108129860499542459041000425261918710962382212329418196237168409017345945615243811767737202226739414081233969861729826194043980095636704587259762054550403059526723689845656446379730110697066434414129853611831199057319841446528217763521337663191764790346602507945367778527887371518347013758540268727904976174810635856993784011072977443574190673826171476773780413759166973948420665926807061855047048852759481748843871880906608590237618028250392315419326465871048752242183517212684764857383796421570388088271457517148089393879652204933806981492952792312261109812360638755418065462405006896923649555133108474328634196843391613031669908453121535424671063886075382131370634092547928327220677960149632715882631113094476657812163537703320143024964724696638948655090377213741098776849654897895548279548906497242460347509642149788819660932289063584514048930015731575059437930470130440765632616326428284293890625580464476497061318998670656425926407830356611300081256210123049787718717761082375984918884748212641846547096994706878257486966857810406517312736827944681090669837634510837233864657466091345129493227284892949612117802957246544027081818398990304491950947158237982560395816967944545230617826699477020081068830358844329518524056985954252794995819493767472918355570528166213320979410827124744585908224614697330864121020914458493311909762098744449808892182741459261862203444675903982164796394295317213612448432281261033257911581955941037172942387256912796386789974077500563499162447872872594086617595451945417551412112483284523689116377430823604061461660980238152234187785614217114832886196474354135185678148046564690753516803578526044079505938832258533616822684492773173767308087361658737869188283263971264935452516904542513623242182749142278956718058993542032428734884775753913037885757709781594034445604891250053532376389740713683966032343387130893079523303589205794282315475199963312432259679126186047667999242143007075661722350169728245842432186174095145547380786806014042584018601980426737759278078751346841471836162422757535922779254401346093262256495361658976125408924255691695749921083275108200775012031291684866563976847059911522358247913338191615374310412019432923089426480947149247273092811678238556875572309183812702188503813464062938993328330588221896106179771981982737804836165485016894120763505370937472483755706433137476558877237718645940545818601458833707397711091538950999200464108704235277409846445003481366612968465020156444312221075983059337762861049565925625764165872471191452814821539979961302158472943832577613938619133072285064913269457224892642740377412769519660234076784908317829386200622788904261383538644319841031356214427871746613199626790088200979612431848905991459670060017391163115648479680446872492005609264560278265522008067771775536899759673015855349676988397108516398087074778019573304729618488649141607079678661000358749027350763069502094211347803497578687859090086411613793142752226916616508228251571576474442947472374373862675883670188691860110974548444884981041582489689338332066928206255763146990432485775404205349355373554929197582815470081376790467769256630036525538554254806530176961661844014281796574548206825244816953182057617965969360932154979285843674719859382958531918018307047206953297863587050018208223911876270627423097007157983809438993408884356905129869213279096182222112140897154512645456041152314606997691613257161844118592702113773490856463870971749868621801585820319377180376271384952071690974632832983104385078567185069679610346005913423193845801815429269561557258552785527420922720138860729244693534387751228739301268605425674129361554890046254900652109799396836305389153505295881232471642227156007900517968327586733783040346216415100985311994035264060004344728699162283168921777412124248062337530878833859535147653293323715872579378046893408746703164123174489848469615809497054462053573924145855231812502204144965615774052563733248840908080154104470569318509117605723443977582812156049970200152011253348928157481870711681625309372161882344279034601705122537321449638136696350215437632186787982206157973434565012359684812434465405474422933842106202552838361594909156015309568445550980777921514669456518954211411369336299159128473091756395284042614431413164199655152293566793843981355956227899194453879958167675367473898940558232861099675074410645279157642272040219622896632492964609084684563277044781005201840063390811653058135452761984907356628058947974907624100597092222322570933635305755353996712526041655001032711064838733633585591173032295540282587213492756128875339185747865163525509392164897090464702863734164204214990502460952672301389731117263080996644648254165585797103412844264387170295599266154841248054400079396253079163011175869404765370613830495441311251284501072833004104241245005103815065305918056550477223970424060223502167115328029529687216638648458884670194532638558606196508827461968802891624673958470788856404458630770761681898609603388160602837390334211573251844269988363327132158068713222669066768065793446009405266137114005136455580494901129018833168732976186781557013348593787937633746484933438430705955265021156741455458974934805728828728203417125239074939301056731540595304876630745322378430395160196568916160645902104885640757593115330409750498444130764783183375115590635089867951293846708514419473227982569156289306635014885033845083770528390593791946416869320084900594280924300767854133945561189824519235473122659526038825829667611193964268742518377271582165946949243159210541051748921438463893701041836816787265343926696429120653584511686461300561221383850805200565785939422720055592316325447491211419756849921986535543779630252482803879737384250825065138042931381142390696556225596334958643215963352671265313750427984551799297859759367418653569954320866893611046305841684545436341817589897942930122279493394890569785640270214451541340835987655237019027622805824981385002444369118688030273067269874630117137561791515319099226233905097166255179020898295633880281130577725093026630947302372135065395481451591544104373126378621543899162223744646139776766637106030335469066461327249450251568470968549073256783672157653117983787360805509048208390865390014968287394590832078638125162749991038151809713169768999281846021721169873927332125778146703750369543147494290345374660619676534491732252953428662200511334168521083297553233902005851124757038791815106977878039952080096313457574688061093678950969470342340183469959193321389270553663660819799396905859655559823309775664112943728115583717905170996057043156996523239089897795248028553315435451156715905027859527794577297052120924406121921288181044456019616883743300872147954590612636002579609363588613019974596656402088065381566627504416692780340555289951697477944284771064061375078585585225663357343125250089860819595314387395662675205279663525759968199771340223559871491617213054935937205446259974309437836748451198581821777235496513807452794469067631595381990816257816725670384148842487483943452492952793413464400990148034278497254864285006961438811704353609023712742007675793087110177536881100555887914487211729784538658078177787377202774311260393312999561029415660595462008981983684419650090123417385752041739367198682888653549096026062793599841047062533145254244894576829104286665135757130735713420644757846500967578334114614851793757478007384079216130702398508933244036312184619264513691880334687411496897330134817644198417829413742784034582577026766891186759162001605458939123208436055198427698864791059229107646830645871232816687820598407292798530500975270083281147550809362478626199522072335324627858667269055880723145818385651879645985376973151677901510168126912158018618271518339324011533456949628487601682848965067919369084767649239122686171862293670659242737393185239513291420620179813501762859735341927544115146036091107976933195851761664434330220801626630949998047874111977665732626926705437520068020272295763224514868639417943030502753986436945680061536942754224520113286817044376110607958317982710894729207571212239128214496776709198485017499721659094371629499290350824660610150738973016101912157424827330000754600486004284424928078209127175391377376710321295353344134598233112281332585350066577713856250331619368750595810286674303102249473070959669927823023009735917406728622771970101362910736132121672577495951340512840702581888599311347102318246924672421038615127381046635332464329905547366442305776750121215039133707411264436916915995061906729632875229994486964200571584631813482844613868881694478505223633871264425812666259166213485974472331816742476737303821060235068929403566339264702175059384635006868504482924725450674858581282640688972109672559374322565091854729578352663299232979999749725971688020492396510018554439624249126800513852388616531572358147529010517965086443710968905247624142084348454513496940785328297309853302499680067106886625766972021588607608734684695280215378152261744993778350559810857519783358666571538082137343695831767011105104600600714021345193185234446468573450418684913341711850521602730357452017617500485834774010436655597852814026746306480456209813858083377817376806129881838661275072756469622102005013291655829045244955013935476812653254664360407565140289702489657461567678376549178613903285573134109730569592094788893915811038445672728648840408152379411718693121544505393732230634047676576483557787304639646956102222459161944487978223013307117711502823762355632865533993912137862248333970916511379109612090549174516194536342975570850528842404447193280597376213118741618079568670553820204468578742416969053031894015005463333589561039713517240832794374769976790608940828304842991627104442052993443533681631555538378053699659599075902394508085414330043940095266738714548949786966403647683771681746628040937162197410146627704346817138951627431034484541380287635331858584248744612243096728744069869445849777271987737499474846787553058211578538146840538120214595638217162805162154585317896146484339751615770247665739732263384746941708261849672985993297087383595889732345485539972156655532141274584100182416738757233340602810988931662586286474251465887177416516188111807445727222324637660450975182919569377157824293384072207305255080754364468947095850156953548690142476626991374865525192846154765452319240539330484302145171256901031021849520800895811904975451679717291354717414810390361789144882863383371950126081320329025030390819601578005342184278975585037684675746438433139156203430285783784989545367936482258083785269853848417569087126011658159458357864644477907788667664674696188316423803635528824409757632546322014888000226303069918411432176727139831178888301995909669350222106275929010667559737826338004010846795736325993987202456144489903710310180035339155766965952049446093140156875448702067546989449071197505097541290638013405320996958954493755946291854806613314387257750046016756593340281005234657264085565076138448301446554736597904014354105232350397852961872091755362541929884051986147796020153811640404397109792030011063231131638428743470880725061830898366654101107504486327843793553139953091892710602668663215849757338839170641103930707669881426204787866396992424567660693041507491902721426118981446374509307940287987072356059291695728863923791771665394021066056963238019694030880609511330417132941461562606699930095434117712804380860817752103320244936947899042471828771672277540275098395772596983611298294992146103690342788426053801474484075755457380455270141473009399919043434901317662029369001512290156244474100738796836531563916361734404569441765108831283538558606208559581318203582407052094174865619994196633727999743030008097348088554914966638126676803936710521578816654556947897319285827896493874549870231796462412623065330939177285347953843653812529202413957724570679800646458318050271578197948618563695476465461184765705944553026602375623916252121447681149350116947865293129862337034822976772659359020678053167449329085785533945805259059993898989881213073995667695170760977326790334536749427986846722365391062611967324203039676404109973510156993534109564858325135640682807861246092885279757765948458017360302775169160874118286034704105373479449675709372001548784562533493006922025001706514515098509112442945331759177674460865331567755204850711718179695725536965602215443653646660226160265006209434080604290346312071616479386412062678948694928583600675553340890771171900986543846860671335364261274633692978068329566431663698241092960911598907792400419694283090450594338900996804489135303202564547673138190097865457585942570900322075815395422712529486009118532720711113318457203483581361295230299004236496971023497763008589000171443535969526600165460106571269555220769841546852910855926488307374436460005000877573228145945279623422065618880448894731648516323426861747472595164219769815557173075016942127954578152828004282560129242363968752534338745298150843024746590512245928022838480142550520950934878028572040526328950670054313083586850332331956173830841030538507045806869836237402137579836843921688872402254520030194278537309539616332505513293901447250534608621910203019698826567443137416542298789759086138775328377905401296410197815814202676184104530795557844928286034439267583740610202246911205894976527118108510927064309642696728569892237454541707731979063980448513928914860013403942275133556456336489917183220178611241335068632766967575674718344039839212992510769214648145843320034816207785056347490142962217941343508810220477920007799314559935101477507159674628419240815455382343656901536779924344485032829019832955768504191426174147128280029746322879144805483062751640596294878315109326031871940810721383695374555042214489509881655397060117777052399263243760603851033217124825248305097657127113546563985481877274539296027022654269120418091587777736709037994517776788467061913868593135756768899444242872915684669600759455686550836976119750142352173506627253311652549613102106398524646267999349312195237117405777828028150623917496760056009514497332194871919440590587474205277279031857773396556073864110562978916958070038631539162396514448060063300932616605068830710650338334049489793776163129771245771264026138111051282918093967106542921793873747574103222327114814365610665712113276533766172905207805891802574879251978988096295571279663838808768112926671583271582403774170174367798831673748445457404744640574772881526206336344606514245380074619776133841196931989109195436755876585254011340691465884647384160735658687070931927168951356566705168729033344007899039153946408876829987259045627921996462497291349046509736806202732803192406066781516231519921569543787816042486618106855956216875575315682229223307636285540346641497707755351701097880135999212608554678162661224327991361364301049129933041645770098818343628191935015961847394726875513260219825941254592051307807209580115330146472294529927711749237153833892326504750108941778132719941712734296987055157461724317163060486467531907130373075609463536756071311060483670957655866916768339768165365143041294844369990844616447373640371281488867343471924469244032498990460352677999553727165862915434876590881914479583148859384907325969952598759292470794969928115055505866655539002089118453148686655527344684796953734098533632438448730076979409753769541745027877176079632793224971374126345579948880851415858005452701102432615552359746035774993098327970019188636535985074912832635119342006750474378559686339430748760695284478400523607367503672553899661529963938286442878757538492272609863907685893180020336296870486247747343390522404377464747872109757848460390615913892552048377220368901723997384729613439219844964270902177334433877274253306436385489847132160856600479788238457893163937727615251934354195889864204969462589477809667278529814663586960181297389784463373169576604908944793926821737384461561118415904852461432950676658370689234137705733965819785314249666972787718928833363951962140853777107729664130945053128114362543899491784759035821358985489126554359131927654064382207096810140638068439524289331081154392625154943387721612096515578812866469794809620707037754402879947252387253038404937085536508546704504702851237734105724764796996115592341200217602947731745999302726924913273841031670628810793309753659135236387546644592876395948239227000135991645872114181569556959761518859708955710301710102465166976667259215964005798852315239521571514472028814330124860757817190764161015811164662005754666858967880238136513048955979742657168721114306676435583902988083325408668245904931173000591192350431942934320413230431801785299085084445953466781778748553058204258468329023768035676881519623926373561979573901322167829390204072183365113311408987172105606401868379698868258692912299538017587872729674023826215359261429438614585197334463695962792528027768544212110921574402665393329172600265478777415349885950546094031516299125206704079914914251560288902889579043970605399058966407801499974386705030228831551684893382807216313417646793200693684424092240228637019180667087248315624456109935345936832788239766030835432082017768280333194040909444045479904187677798592937832143460402618502961225451367789374942784726556781014805188133760527205744132308984576416008975466812741949967202555715647325150236016574403733788213576677455094371655715015876212366350909716024117587694493167324708922133593905182501651605747065358548659600652263022631370341429491880469272194639541878600625391432172533192533747260280773289948067110039549516031489223935261488311855839867712343560850511207619063138132531719980775485046052505058132748179729549455714496996966670664794724872115135101124121354095514542355777257204206920622905471656588516341843459638524634962936996237073989379672446768365676785111395467197435902665351487292205597566304579205242315313687668326527673485289847227405271514428271337596954074865120708539028074161931542041542834169561017745956563289189362064613713903020979247830508780531117865080987834788439411091493134420688240750698119534399656622645634037055316605552979958822503694087818519832748395653954657289003896072163365395464260766946079678143103136586887896072429024752217077054435796581889991460804908935057904115208039648898874985564386294078591309607620610757822625061108873252055185592051012158247643646295901733833495263063920622368612455633493511550208213252247427417747764623273105608933184419742801265156353839492592350801242837950000734762695976644045251103989900299811428826381704263587052952428070472097916207174805186509155436339552687771188675332751325183626924609580397313299577500709941074748455922068696698898765424557926791589556233641891519940929168926975294690532146654380927657931504210703999467166014634681256607848909396732769428043678799704138426578912070119923263529759425007231975877361585297091499672588482506026197325840411592017760728852596266872168917932349726095480085334040966174785545041159221336082297273614765953224612417365047313943465435426272563075387444130854928410402965193750404285256300717650811767285199833398142924040480104542593819438720145558964267741586180523563099124019468648013985312346150058393316672515738735417307610644626314729669504312165767684971360160022061196859423672663296288899777409830674245756480821396644026916037322094018781890177407917250913557096619000971960425763766716591518841127033325324054769941821621705184757678347858381169939651065898911557350246080865579777308465672824844120972675934357605914070220066392597167437032433752499365653936809093313107783452432083226289617678719660485229546295369820755077370423040182202724999891413888393446077572545448872789538809730137779103231333261827169909450664429341699855117110733931965559890104670650441565994491381000162786412690632651464762001800992950442385928041702684860593013113486217861651431010277031121022432774063321816159868741852597080412560965427605523484911107800725029990399686895676363534239651131180205631668187581014138212657843600070928786472025105446490708269040721583621853555971839203223891269454846147873659344757696151725926193653746785216250454473559447809850149213033962952063558167984670694589504275304871093216851737736265579736189494730078205545558177288847985866920048730564908621960121391308158032439530089278522670074271883181424934418063625207417411618822483180413699438375406247958483003397377467442483586866710082887518834324604011239143452196548889670619799720066058637420825001536447764774990763495411591879153744111294584216251282045516997359176984629085886005788040303634764815228043278548955978013496742332222123471213111062250219263461364892715052580591442837829548672274552005831580658680670033851103145231971904119005429424035452270418810897299941699366419881102613719356593145845757126830889254349181313997766918062197793886216384318043762199019372126742301368593512644093346115837782409804516858270751616035215287342189351398100863952502631662559029396692315810645118871471058727719150062445925147619199008668946047371293598767788411711733974931260553747061186248295844735917395086369536126912403124119313329566238171062859591574042623565577266852693496188010226480726678086165062582549753261846286054279646137607297359441872198968299963445876694430191923506962226573298090900880307378068222705681422016515747502354540789481544501087326161702168598339512976523554094213629895978068914318510042084234706289155622704735122800549663156477525004981907697947052163657265693207160960168658853967038997154570751327865074083712339086757728337127047615560452416709148912905100143946963747236694898001351243547736139702694179319211559715889052512164077378702691711014425536370298046204899699669757990370995466347466036565643663179392957716410986378993903231805095647524716604836887218238394390970837768453283621212114499795212726201152129501817736079147790677940470008742822112561647010422271674768028714065840839374096261752714662968270986230973745315816946680765596402955672714351751053852072249499462245010011348450496161994070663650942899782254461413454024151654415543575792699517662822909328480566028118430679610725629717198009061152421252976249499249612832153704241922140730637918186478940543571489663312204932628330072849886480573095334665093618662734533124181230334383695118776037880935184604610847011425960898669093713876845152916542120170755774098343447233024403445321742190170593432258753150357183588012025986937707309538850092479912545769316749463789282588316590500457927761178675556614277788367798286141355267640169010437197177422838821898942313079535266871490107089135339567884094981631523807689752445969351031066111146096054569036357211837038685505576193551054192831772584978648695716851181220575049910995416749836951747716529660587433195343019837342356505586791905816380070977516183026633371465092957977197012100532327232586779331359859810278384492106483534466011172812254697116741305135447681096322217729502162559844143341577092336366379695835789717597920236834290513472301387165186650312541410871011128326914838544803300640263259914264173795652833775135988570693229823123700108869154504280197171798162391088679331888495892177802779932050711768024618339716505146318065280509471812210642871531815342229688736617214503529769328107191797425954799776343520308719121740722326254033050505212702777656061124158380175774851381636288944855552858671464601002929356441221091348848015175755532239537766172912430228603832370886532827404021947661787504847286369205646644926213836255327229858658953149980357143489958116553508622699232060988050839853652542683874171258215711591207543026214477442606309446474835670171474953623094992208088397001006820282349109653317538124756043323217894640303429395948780631955426221634389533441198180199867239616927766273518109942209286622707489124290405843995324128716951130020167879643113046677115722332410458132132241669010385094507673846055281917193011962251214628747745232636217982398750724897261484708006928979256099374239345692630037702952254542115471185686467352288879831844996168139621615961260837436651061004722195338604024495801755534398779251338907259663830621807260306514095500417067342604551653634329590705963915970276601655783924458280543770465611356536304068492275288870173493561650139082539543489788084453199102748782078115791381370731475454789176957204671565000548863096034191295854999926118251476670383981528111416601358803469180076431868366715977183383759501653588870623891040526574885005986345957268561458431554742778902736600657184623193840929133323257054177356252133758571107437529295596858551924367837716452576252894938008897108652058465731504784129480562886837558148310099433622904942235990598318136825243004518823091063098556829519492559197668654682860084997138566902667024227161698588667202309581640310252076583559264147236883216379493283703043031884844352918500006004354312192190522704539671151143551412025243885515807759833967880544138962552122441970313398805795518300040167562253977341897387316135283468997618269236404041576693030412816410656488209675471118774741784477570992992775304025383530916973462610255891768648654814654717433214382835396023436979591017761246955890474910865606179565629804245544023553628237955929949461912114135679314809731126402340941582766628764019779420146964857117465308841340741162721250417988850014418968478288296008095692655441353562942309256902610012903051475805817066304006677693097026229852589714816430304210595229369628323079875331779566619171676244783462976519523601907457214072765757292968247059782079067731149117413929490844882526565300497999810785029835681770873282938542302087691627743727797520187908170512030317029525272673284343486701471381015432696947305397865327390124578472540440261585920059978694008326848928884041520213543336726537656247388752742376873590301589444219179357278180215992582472749550805450473788447496693072980935384566862977276948571069023790459902492220472715855395975197830961943160881260695459034721580690401864442833439728009104917456730764890328105941983090961949587699696643912687895468379861591406751441730758817236593373396996962775720460168177607443228523670849184059512272053900708430201539296215702928060743562599395709794516567201809399288025238399616736623918451527321528650689324275098434611972038369991662068945461027228549099521019434769443863927555771069483777852675010069374106046204631754717784476424696136092046650907030493193029522136969507369005606743640969681101304964430700159661867357693763027837101769434071090313598293851532753354913652886367505035905225655879161102760138217975875654828588194742061664450903280825616038092222186087219945981896411391109051288465544018798288749493315408419142999806787938372494405180150462094520535404298494414297782671845764551270977872563787780200782807273013993702687457814535134064977545336296756473071400641938295099852363646668550517383811565807250493817267180824030255040341289825983498018485506031782151120799722935118537960519731750223027527196524896358868972913780578831916010639420029228645447774891163379769562211271257870779678118111046164854272023658215595296382262717903290366624664434182100927921839035395314940856893405813421938990287758162565917572324897553526489458109361819657832146798125809082858362946589027885589085989482171268537664986797858036575579521480181693202629823794373640082327780997138753511713002209483769469062603205594372689324117006270402730489419606185416229348398023404955454265508980685367061107161180575392351377173441327796910503919420553937435290795448618668871578336636768588363817919247345200858956530457885443570021927529698068146044329085757955166293576733711677800531752693126663602179493030531286919990988210922150436235371906046969252420946951471223461484313925833022190764017576661405250716818566500833991898291289337464248242735916224756911835688619361127313230458181075459937071759043326813558439911290287594215875331359139848209070586886399664901952854894646172014963036843487803852608711640533563107603520571562278295467335206107163074002806214597202617523819174847437696446423838920280654617939567699125973392019143476953587487682010491823955545674982039391434778436179306728260155838214883863511580787962178680861068768937293981655665728223364338037479781528958249003894475603892089385829340249331584858355373428469116346159022802510293721251085785920650331392603919576098376319049139590509848939123708954400485866599235931844555860232172804453581576631793645687435682639265752720612202688380784158684763072743759380207027546410824260743310866316814195039257814995766177017049135662540386307016092856522194184916633927530272776003560088719681500781535106069385471726370669751876384033500477539463148159221370927511923243668155183203074976347258968402298632601118011690628519688720861499875899985593495058597883822168993066326440890462049330406626781557921092282138549444031165844019669582731613647804744903421698068300458701324145091100756922481159577004733857667885161224367103718893042833626281330509855421116483647432371689381951316115792550530038660681836454814568285483589773205768091688800080318033383586211190812426535931212656315713560651751735773555769011545897952626023371047446482562809295373590881988495546121682357284651520289179142439191051055377883285811432538776387017218522609428877815373464235776300548138154970871153039128967646323279035916037150756767183526080870562188459771506531479139507432968506176855247404272673285200525090863240539552268633064978099584945209384682224612665167986107051027774685861826947590458714397279445379619471090274271597116984444473311163344159229881486117916948045260009026670159017251780837619770702156442853576879920537158654099853121209015175467183955671801699123518608338867261952087951493596004859879747516446132574072268240214188662493291693226736670960260907170234424349115746499119499190732159072467836324492263780489504721393075916986493319263386911683350371219091143915589347596737152183306496018968508510830610004718790023385369002785494244026750825014993547332576307771172436521213635012684343575499007275573267528293547870280422701571359301522551237988851036778930925280369570428169742911157493930537322387405691617850562368543465779476029782164875857918650082702098722728011593125401524371568916215563635097386172790453868923009116025279348921867470657975084661265442826076096453698915747848998382343932636219964524527183873318275402572272374286485125706051888504366488611805082448515131871004522438039942186604430143386425476717795510583359563261205676939233616885200546976723115092164115807874091792474668002637929554405818621410717660054639181595456586064248257488348332780763068273992383627952752619576203999012065338824795245629132649247942417166138039913075652519115374420014010643285201398664127738418495825842329778979522528828307086761395210590346617002282745253186193585305440528668123207130333349377471647611098195049962898778923704483589814480838954199402526277755296026073031237210249443741554938788646626661263875322576804220637346404425117315725409395971621523241761973488685825241553121917980318947716149425937699203257726393740087841057732711529583538735452516066064651648046673782009856480318895450540535520543149344824977288296034300214987759088352259083756389604676052797783216569805068054598309807468616035582843305804964908687641136147666119509239286233030055603054243497727743100299698069140932197546197350398543294575714151126084559508091979080555405633344756445376921986619115337378395337116040296996652791354914224676267239380529258796514288763254350926447331151350921077831237287479679258248266518091922263635155893647551143812409221340768077503338100975857327785828208569054684676812918463468165991220269531299804602723665142240167226765502611615715807458156620035363705325175907139462705577912935488712947054094887103291528377488373998270980998956372848260884898182077074453874336199776763761278062408557425106826619984762135535885687414722268304772403914705957389955171682669962907079149506858054204807637271554985134261312659229756599975944351083546870151918356386733567595632990993892889076591155425398706562684141552288744936734800081815414866942183669378752035076837378617845150245805695555063888462038280355988109332525689423890384634831246068529787839615995069476568503827007304396934786634852966044252948950725636927297332777025717498039925463104827718456052731830477028771446665052125947351063666166757935573635956325542771785451058144792125558936703006322936817074069160201177504434892125894983235371337496955038695093712219523816697825758255866481400891480647198329287354670895123043125075382988248575026252531975770130795546210271756060376119458952966219639040957079002921761801597162857144417589581648115400110290033226601958657792401227788713531245336790626272546404306138996665023979864204049158357984141996529876317121272034656050565174368948483518168027895029526873497489470607586706593969561375239727344539388006737712152878951341149563407700625227068676459552180457983534796847199851410674281656657577222026333475242448070394082085114310369465197787948323622640941949229236962013462808078242789991129128608969492391333000579305950233268688152391328462102123924204253021994937091775930308727631658508459606182512939780642771591671724246779504276342618908516017366831493173786357188543685946310572312746511297345814177105935841803662097804634353932302945670775096392853804051811671278291439994763856625484796742062937435074864724553603459316894820346766785057967974593956412687470421028314427621152120374079982427620334418770411640424760406304363960254562592270514965036159806412396971530922583807489393915206645657397850348819545039362029458396203603757742755239320867283814894044249444412292470557107913793598039487846602985910708261698219487713465399885146232965480495634536275694417304191619743032148809153249136798251583554931768961817531387270957919507417240606265156648970819593172337655950677139403423621973930412991166831615305641886398544269884799101947718419401849941188163843791573203104381302300004311195382295889053004629063736600477486950605155879155659357419497087085105811425263328063731606795630321915574082007092434187603418257795309198025607917643180172639707798232994462052610604658979101523105387096462865545753110048867776856173013358732647659263982915069369704829694970548342858430124646349769704946745482030947869209212740654502124923600199590411064610082996027648680701274201614932803409255421168689719151772980750189805529133552765624799778511507763179962438860850917434450863317305176785796943259345635377855604923897643444811970534582069713160099149258257459603576548235505655258027801507019685355069922596651286056955423146155172701858396612907818126336064759570695453024243370038216566991874110986112071045766449398235033441062955782581416479062599283660143991954766751568134202501311177731370764886513841693370464320280530347376001783295092564177832852423662830820889691730061194571983959587533414456374378694900770884305024886377087676615024928947521279033809223513857266861298878675110069373184227659316216511315983752261879005812138101467107251013127990913810016705359354054207543868531901749246166064819396630629130430785361062197187060073820342890654758214042592154329721134317041201646284902637087448289611197431538347271364607261689540488538815066130222121211958889597223205250558826067524319723547817545633494890655718119867476268979751418054096376685010052189301710655754818200283861720298503119291885886450325949899460773237341961570033275654409424183757402189994871716554999005326511148733482444320523991059361113162357443152790547807971398552521277005201800429614109296236390503260974385398474236861961197656247498371245475975293964471575190653360317833601938922753409258286376230386339352360820654871358267181252437482311350443291668943479644577265062407729997323805339293100894428054453903785993920016273277042778862618292727773362899786717005080633523457673261017181778773104960933450671992085812289981081081590567500959308752759823967599472355402186462327581209043816881591008789037915807237188429990127803439244798432896362324094786842036860843651871400793866375797858466834866180357427292523771651718342521012916364974160738092331966900743678025678467585599137949474576274536443685374158558435853024881800076277216218233991055376718982437511806584509977141823833381997205859646935571207944152017979715807605426878527073666127440984103381835675112199555873900482543082166748655606477629200994394256466726541663012357001560691808482191429734036862354410559637131447673935700398602372788360397608659365943237500651927345371913897346167549184328949721594771172855286123225683137830279681061267205745084035718366084167930638061170932672721326125159621296285146342738179223484211790815642918876048384778183167730860211093540596902494159533113292857502281668200629492260369219779532742207913835298655898987583935190290876311208203300331814706029571389578765577187912784980729448107523346713984951760673236720895066455806751886047625500421616098246265605308733236714854856038386174529556807525065195071990004580684957024823314761234712237440268002600961378324304190556525983116141623129358731500418754803750681451964835844136085267035897921370632949331497307305555690311159085177863775366032397078695413100604647671548577678684914269437929690266041952005990106824339009849695126641695649750909762515527052894659616692169627120490832161732835551774219484066935042961592546645713204692318523956739736422606600501814440255307750177434488073883242143495478730766706652546444782291265447571266984418155161489109741158448931540214121288161013498048561700955503328831376218659310455934202974842524018994325422995534956870091379532207399989888768475549532672011499844512210726624431196418600388526470226660473891978334419874074689757265708726919345400801089289761412723949961726808394751783480594663233484350672129710729153415545431368181004425501015691450600901176008813262392999879582360543565136582905686346939038571966116284370337486431644566174959782510001240262551723639096744562095529775894675744623380105529035842910804878728982587922662279545139742834718049527722376518148901147791797036634995149525437365515372664916545588796414703540327094442843195692760197509652963878204611836745527578429271031258552741429265762201368332121185677780797602143425896683628972395226869595648053150754757042531313650466139786824124400629580859945601376916980938969067282450545841995963865728739954936531668853601970213025709491696755222831700575972265255195119778407292580632173054164212749230353296748483888997934332916498297692272421997915477281615829476448210903397526232195175308785461880486321325711270454487169971681255935777281871522533650783877460230306827110369768204454839361130348598896136642677158202320899832805484407445475322424910579918478916035946092250880344304607543174720694580962849473523506373384237546245516422812105865969143628201628958138012505736662648355947509243347984815965345308234453122151228387157417377051023830568751964402094315283571625472630289719009703238698789146067424163564033055189176633731531459112809542465895615693254695086806410131287029753970755781525588647919257364286080469561031323093012658343416291585606927524543795216251725968063818897771125751540515448458742686674071649269387329031528757198398710231180190354829868208271919255642918887060339266275442921489342166916710942386216547448913319102257999709698257259665162720007315236069176906604628810235734248075978082962187209744314346356563805156735207053468761057577667084020507169557719244107757817949028143704410319773424230711597705860132879097629748882855274541589253665485622792229186167118442444213421832837554976878440595356662896138248354198681762385410998069533335218293425647476443567973922068160218805506729728824456540624627148435995198241389955979935208691100389114249191528867295539773565600066939597087566890039991528106090411806412500743144480907959474973346217196317879654737464722675112481994449870348353460103830869072351643424588299000051695157117624400780675046955733149179439511651315547404871581105081219738845046927145932906563882020892704513227524887648863850563674529717979879445071869856507516366962441443307567924455178699602996126305559311149306986111128412242200835347361104898177923456547490749880721584576840684543991732144939836689699221408990256822525673022312700150421346081756429560978479708990461551680541608015809653444479688180795649928211381979014821345517196985944213989287409206496230873374457749568733096066799860638117525303691218491758261703786456774154973515712717520842268239230719137195817546702343187779912802156486732788488080104347714615841711643421132500261414927554098270213065176923158400631234827598222767738193790870186713995128578574810142807563618305113263035964919548335469937571591074881569857565765332379879526032397503250459700900626263268230331896165946570232606891626108027969137227041385026820508221347861459939058385047201122659715468929670600909738060530778082203463121761537384755421958958595249434181972939747501223819911345559102128842595146241096173643569062585216783287327103080838567175625291415697628678707937541288986222514932079085654387896398673465137493980113530808232781083352616588776013456920809157057028795820179392542384490009857688643890298365309339544610577717782433594544915835831859285945088933578611411538904713880559078360072849416659643136022338390419577210590833295564412841817031899953590539009457973396761707175833364051802092070578803423478149173027849513262989834477972959776381225006098108126348992961614482444393482860936204834373655124265230949693528049827601648449544410668058374810122030377123933341577189467504377961473969547996866687919117234565180422584574296347010605956974979792099526311643443801004218114069275910127915804579714430837148022425533380045705040470328995036944017178473683397520632911712435000593802934415106915001386072163423462495334358282623393449148124719429072859017297606465494180324601881611724279402650512893833639458216785181983408063674568470608012628265350320221002812271606123300083931444291389867493985910803673348780487324476959119603123276847757702734886051307507929246818219297858467516359493759529241926424508318584319057009899954513997756342310986785654475697345815487364834050841440785236253209189281280373136720849505884533006762542101289261081589521269003005263760491402746690134511831338752734836381052527161117976366065177870926277039380334929391164042025109236915558780739912620207540193223201620513789280932816723748875415468988731925477783898039558533624035622558175671975627605569033379094800824188296823016566477927450041665199664811642002624133100961653923020568736942661901234445840121731860012203037723589466723475663392736473201479319824327598139182105963624943830318195834617832767337962727602919294849483018641585144246517859642728558039767508551122590548597490760775337346796467767600103526502115855666957665054327017590904797127824319281746245363511384074426916809111943100936865768890356903107978800000522476706564142684102609294368546016235999414682061932542681237509847646958842377024670393319618713500069492498899414891468812955928233581201001735191405403866370015371799691314843450813865831628601311309305750298204418246548994849329667069120837339863548096318690870462067504533488404688295764300738026650635767808786190096929267068893465502782691311816292351980713288855412547885657476031634152001775937722368402998735227616438241092028808901739957374046825852328215682971120763194056890452456256099605137426761303319095008887470785695660632487772794607294325432761218173030696757130864123198730435003157092202663256102338071247762618337724742983948443857931882657832394191556454503224127966982176527306418762875278268646678617296176964029520969189790710566077788263706310958039586144163730465745260963395257320526901921711004017820383599585279786318978241073670356126409704552481240086908849050018518417883080326066998664852641589590989494963983502649847904829648199996633722736513726310304597678213399581678569621593702809293586436618598183026444818500530792944719991426541761383674266544032168303697530880750111340297773595460795882081230950160735357989016236977564221079105901152924484012497100113576763956853352086903205421633394363872474032499848514871663995520875031045750629465216209150773158231900798555582518867913176647070147464021170137577606338452841149046274618959936716798498361572007542362468761342085449334720776634274888979354935981801081825553556092681336458656440544328449038461436296753732830468742412567562619971111823731811062646869588004032108551110066920064730515058508841380987176263240161858481921852176317348038590997352471733578357813186374935805056094424061488493464958464772729127127225892725155095475047437609858985096820719449961324648639814251311446922945878648787540659741712307233514329625649849104675468638341463054252724409948959943793933796840467616947293148120578819234348304527677055760321681058867317599526330642040978514363746251253774045878867581901899864896988462440751643229972834732380685565625760197149286213781283120208525087124407998065137086928886649118411056515424360919048598743197878452613284235590143736424785254333337611240253187500672519885156718749456578748202810338182370849429251600998426637511301017500409462308238291670868412882713007221203762734251505296341160790925883644266020018411365144401325751333121769418720749621537237190019317368274017652517784807389745678971668686347727239858164574498669128887905956025152855902230214446085006621930141416583355219244088721209441598362141004930321987333142498947945713115039298309094218832521972088621764345551639261699807699816685333151210924843190696794998650901635649855134048096715029360666699161874334596179164173595632721213771991353383292420765575503335095093771657368528436948115211888732045096762489579779056438610579164025738289130238725874924647856295235697600053223054682821440016989956585067259718216044818968947089236530225825584001225995381961998578978003585447013083519293423513114843421354730390702820750514909058009651517492932242654249003232869200896719897160806571436883365117372670366355062552112246381377116673819875763502319418497211176260893576508933764545303929808362768991630203249567144265718131054508903855411749711786664562036140393189098579159109097566981015979037589945436237188479504168412482859737317401935840291612422697720617158020238296458996607020154416197692325450609434413312630482672555346139163768695166604949015391940691160605263906250197759175115924035011992111283177031178332826151926476258346171563043897744074825281329662495547920590393110126005782994586436155049879746269644076047750794855253682098073947671138757211432254972643263086986037351538882384165769412447708418226215870993378611774077222061698810951288597006457401482674327355415664365980936548946618463002533896912060033330490225018545221237190496102097147505778077694689097693114657623766912187174641231502011473610471351837984343779862755048815886298374198073379627671016862101677543812607740637695773179199375533390648995887871842846274965043473704341110708496421824261770320002977371506611757920679328845864865673248343369771573328759648366498274908458048576527110469418178045889550230176163117240223638191688645216602724552741964655240041029561677013721615244511501690733604036685822914302055447262784613965236643370930318826457980449892269879510260736325267250970453350652131683842918426861196105608218737305509888338912130459204081670405051665529403388935024037891228984320317675761300773903206854941823394367550071401147671441002201175776050422001488311927525423655334468709387939517747976159594746054571315831345495368862556863866764114406478553356821515835246656523591831892279100269920615987410506527568648145772423132982200308916010152884116806629872487371961143324557748990784844482221828633545412942016530846187504162634133650997375321695491342194794325300619937692123620964798561302309068118178968726143878290196444251266215713735636123520449677758074385106127474947607601799986416865810253573268674233853377789711871820102690832242417301361551855475116288749076990892928998220450377470188378409604463785107645999887056697128882185970194202159411296520261329250092173598023898153323530187501167342567951151281457397517312742550878635593577175067319353535883608061897588382027699688043686448689561551125716291868444430904653220178367601346977429993646672512112875193502376531154291806142042476415911021502770102889484168306514612625955372970878288310372170775614185545040714100343406962571421236600656923914100289880989562372906076769917319031047006927044207123724190130318457435615461926375649771698124460529051077036364655912274946431048198285497400413039754962900433038096873560633147219491298197842323672912868321916603735806872546381050507491008019899158737575109508095071143696108659623059157914884110236328380590391926071899498628762987356934806933428503959236108291538158936142711750184425806568080048625923716761603447516427040003755228320378833198890359478254073147856778456311997385672046368230790536888240525115860351604088709830028115035626393287281972943970907185132328661125062670487337525908312293530446313685866972863351210112230885438564907080072026842987797407740880951177100696235266383987341478538093200525477032369491029228987470634046530176632470783979790126552115397542155795158034995165871690742734593177005452350683628867835979196139510734907105378318110968210813766071221560492498774504173657523680640496708528697218326327343850223418902062316785570523236484716545974442026609390038896806719514318531416072396491054466529737816123629457286530818751595064238328576830828455828155805063470543624219627347248516158055305242473314531754820752647431654111152275849958454523155736771440193760419732889670955028954465151998893213216061513889806114481069844817441247015528573197684675492846517181410541631854470477591118919120650493887842366657029673526767029516616799658655690984989006563573415861602980767961329082555047152769734675299036272221036823479918567688424108336456867750460698351469596101484894625261613971894847154363583845458744323606551335207201364726075277808344109189528232698490981402513165348765145256083020975513419392059069464118777563830795518657446744792212238694634148803182422926490460050411765672386097743768136429657141108670310749902998340507795603684320924886501094496545382355638289666036840889799057187333067853767859557353152256868689753480361569495068291759905142053408812160612727440558490568703041205315365747038022861126223223147423083364172062475232640579726497339058342760741830547594900920780518042324533101940034458602270695654529432922223304848611458737207648390954198957648264215993960412868249694158259416367313407577170157013572670127604253371491898195047627382614562284480058168607764091398635411786010569922715610984885791603130543210434061242636410604162773149782369090250611983360490810800557825442032711798914713352116951175258415426848432814682153405195781174019043035753972163996770930228408897446773404920194790586981084143117015849008234993178757564469856024123404318932725627663101394392178658205629663945827253401018558131266154797330937132266742104363412247290577225104821009500923017972630157495209661019518148193783620178095403793753290920661575521371698461296274992596814295251770823891065550905040599879140938695173610022815520580899194772731984045280018224732149703356403911119301647512427346512282666552023314315685192840468677033857969509886125050958822542393523041506756465506961499418581944257378545550450651770208903046256430730938275870919298396354284371242349977571472254969220756587611155524566176045324025949966578008381898003968947333431821084154547967792259696298312463480378797313182741631973780589674121284785933437902865142245119044389008068188350399619357211604472549574209398081573284849347152342031987519942206856575337073533505070155825066392120952352447462772913808503007029498171832056694884727265640511368500280739206182225741039853503025196322487782857331740340921558459207926079400965543638034845846980945852025319454655380836229115178133210644590749948477476807640370387265279354674951959487658431332348701691013741717944051730304516821217996516824526036045584335421306051959761360852626461325678029372293348166635554312356047108126485703765842976661619645132599525777807730921561363475885779766249401722413728969581587398344650628238105686078284581296371364481554433940852473356131213042000202677991827058082057291915827588141947576918799248374774604784693294499118102792028028279382437978682972337287395731578107878029004595344970120667998603317719766459348663008652847754116907629586365578356711648233096535421093584356414087488484625261348754058459305622016806574933525811936432045871168900627129506930229419348309938165840307408427782107681492764932960643503489280366080542669373488888356045395207371524413416872921031978486657809188530207597500597575524645518750779325291058928753974013096664987356258079194343419294156807928444532773908358409298258368399376194688931577969224813041736245373872311467457441743879600314608753589310788976535562009517048791900471500856908467624885221550884245052148778297533678205354397221842999271782377476713795335472674052041607049676598980906449503108886219333697308896834954668665831813438914782286535203880075246900041209171651783517739958792206686463090012798348858257561175539139292886569469907007111669543187530819524263935487129925670669111812113639818485141946924733761174030718952720791850030278923134649667610146030548027859045348782978332742223425929898826346184462536124177213856377126702757213137140336064027678168792106243329922693363543201301611254921895238368468966451650953175491292840081594005524822209106579487060776450546994227327496996402316018367413193717699212040311902296700622283167174212965389554600321178423526543182464028694399499031109012927437891784995754705713295331411149013777321714377050182907631968812693270792207675035397316269309164120307897478082833995772402156708632201360503221196087946359611823432581496463503078290771529449567212000801773276134674355105933741867009777711047516790421095129543729706274106606600645310489678177700378761720275292253697827935426107070274943036108646242907857422233844712050736346109461220323689592411878827747883222312599587984190414774280826788699433603447603441181326319848703326663242888064641087118391176309521450176758058229396390974068560236962346814565203762389350809028181643902407246870320101452152481380245540736180484305682663953858913886193216101237814572202148920301738647878568023092645990771797699288758646581588151028641371052666916533476554075661901783320937144298782967229648509771049245927151406438181323293077602812828532716698584046762897210457644316138519150969257036676091162757622193005284962778092510506098202147494105203353967713973268261560268561843614216673105528057280787199672572327045310775379496105293657472789657752893664935005879258817496735683365309055929773521756707370953899101959582438726031387721778352781589271978597834600295881950176560630839711944319495857360440245623718336021975501367628173466329683310245667582826983716910101654702921285833596382841583338376233772627258727092119826545792952841437036054425434952308082673104686859326121781215003435145392710559609931627117771416831149648062422143184387599311877136104323852097084959746320650693216868686019056633979528853355040592926844094690406998959768426125586652605063106156308079772354151409626054978918733041299747855436911998895422187793278317390044747234242268107420874203638242905469458501092428482991591714687012153981145769685146786693547949721266776408123755201158638681347910913786209112599860251429013957685695067551949373972962058501208684798126499163399383836204254508510753080122113948808919614048009705834347318790434945450067356825605652826521163649973864642115778439379657251158761046214911644426808056525135255418539299634868428258274252298988180810293001616449062837207800942622095369559615902853747342200844303792929937766849277234068517669919893894224563028910854414848426313639281244934184642845479269884520683360445076099273130295490593074143458481352030763046415235342588422295709248333598866531508733049373486185213090702448598153757735307903014389560438254110974994238633920057927721609654899398283536153377010208921376495629364905536013796353605918171145005942799974006286665007096650205708099267418653742570986987911421563977452006487767043087326019255671327104808083754712713145688880722388557693491131089062995188266100791581430139737701644973167224594780397957516857944385188470543334100600124137460318125561684352133923056029254434887655732752821608917791404603040999247046026935957158983288430728300599625030620534929775697711749243023507332434326648028460908690911744033793719802539113540243244359647358938561343148864429917869793955054802990856293627837538495475906154883640059986895017606146312201039054736468939877052032476608579868123821058200741074415640974984741373976031077397846230263096232264069924165961383677435527400989066197682349586605649056524077515901606384676718539312394888324853555678246666087863418204941236670865794618960720812725102247771032203703430914848235211532021687165322977933279914998663249494244597418520160058453409140922670747829888814900244281206424791360778427646228095315657530834075814130743901023628812958287118178102379261088162431595590188988766729485646743591966237307159131385205333321774710770729140672962234902106236819377796900809045268390038558132672569517049902798879094569365820678429860952791427115645315341554910053022823702979847425225575183817335668245322103423153153156836496219628120422017885669356804875013545559948862430103382560609423554277451901624969081270345241314295411587693186615257779069643249965022769212254852267479966334199845029841575832264221916652217420495792362056697282069635028024446736319652310816404044871815124454126918326783334371213749145127975107591857212524500154042413611778501766647950075100788693637212593722336414477821909289591060604429244246042608894899165369198406886110430128773152219466388276422257064867889364193351397382279591651496504689141959813312506755911381518353359854023085403334221116293321112521684473373870443004490581034591345657918213738211389416787955329026706460149941875050082745221525163066544898356226138639008065641825020571546352955129529646790889541148025605311090771995238701768024009720124751060338320101522646153596507165331433484058866237956417868245815919605472888742718697743834538108712029966608002190138213097180455039994484466569834368231594637637898998811441469612213662810986613035204588136659477553964279495101767793993789071779718739132769166753324020760477089900191472825498294247330082132915127615170047252194710379699283134678924566552857575337165982396131063226294311698748659511591036665846965791778325895614017000135472659063575914631140769232928534309432646546544219526557960966576094627008898827258043426488322374550577865037994115972304548713297267428978487714478588840565559043635274434412037065632210152598434856340380550507970961131637449935955992808754064730612124155899223102801108758502780730230101430265067049269194544826714334982443045598567073556690853380816736404658298096548074789212460369120048950104764989180702290853750352146622975079772153866624222190077766888785447098853594058577677883267922360840044540647095365715647563211962191259500830804486189022933934720485354901985894265513100824231230276064758777363273497028831466193930431520889231280204744514693135281897576403054597468967035759049914992616556939779515135407850214240401691858595691720899220897900310384359953124062896510665736266992253311858782095279948195464785155662820727758092989928121927371178793556595038032313752054055105700826640795940318564063986013045013397216448665222881170706422679400420510286611014582606517549140520487390015541245849785104570559459057079687948036454795948345793001881024256520616832159160721310779536167190070838091348118016903036499166430365038486590652750893909978836484212504303226319065004071610933110292994809284499607732520281853059221596150866126097852596431302045382668426011875974581085388361892903425924301589835844433873296173822004210776930283823420687627549513720403710465677254901360960235347219293221901073711915463119280832656563168769505430462151915019605795517315140078621600428430012340883404852325690978536824674918715526540104251012240647214094922743417049290244089768870892761270437280703139368735191338872854510071781380535186224830409889566156990753124831399269115302920743690701661553822257672465108452384896154883575714381182681181493636469948252403953645795387079876374554942649764708634575771098969356522120749812505015917514625207845341365089322227594301428928923033003406455271045738429582246627099048456503721073245738822855521144504798264384792410120509172631696129899662431778551738454238574854523460986873472998947611731916805637017181081467005460864502688868257534248119475524830724913003903197081142191196733668730446525051458945169146236582651758734465557133401790124191944491409555012772562840809227495813657150139211762714636556664316555549339085302541640755297950722591175938282170249219843654354808886522656823344672367046102376899652667708014888819904587616581689860676249744493398880006051833571795720843494737471705162000589847348681242396245451767902289487162314155353313415525211948408151970244168576963636839232549392470269769445195745410861099373037848520101759574649821285210273544527402832209401749937414401610550496891795498338496782392433680047920042077002299254647413204500709142534461092035970405328344521225946669291916388768833266995967881975300168317359188218629784286075046635135105776493214534301771300419825084727715318841470734833936795528432206254957666358343886466701764094496673857180681833592183454892124697762564058627184936544427885011612192996966597004338241707968495712681084968817583791934301215763014550577865444148751342864121576634798808201465740717220875101289510420946689242997690992820962138699782292764091186939837980912807431397620513972244506689792599030899306557724555128682522225788714934308438255606142550482875627131666728031269209565090934520066985722919485589650921562014183803164919776267078028653769903534690819325604134906083776836463951417873554614734497982367954362501818297987300543356434800905892448290472219057250737813717029063205215472296175106550191525174083053979569859666138597593674584465926691958900436468627435540068592926337543288871639696602301224228746243814405526756494812383313157007590827832675892354837314296855956057449121319237560888125886539932889893457439493661367587118050747914667254442361890064051022306547544824562205887211927050117649556293177705186815677407908762725824108722123720466006949690252245775056125094631022171900671141039086078516139307128549233888344989885744388780938610354123407577394641388227988621339774480917245514356442684678123300047279550050876407425110293558902679950835741505721301981960335318118530291217419092090991802897422346472619091654794261134881376209719207759626495565374035881101383964119300318501136903815025815687571041454635009185928411505818156869860845913110995609981718356783581743401104227331190456890570641132718304430479679135924480361201381442182199726989743754204320369627209788245163746270997364458049709106700228337732751809794727533296107256620522027851637481802110181688728253830779526118870932088327815702413749324943006344836854573863638964313511824558250278654347122425634089526295359925752454888427710819964151225843236430342925271739963312456179635522660758159037935685966705843783920159407609641689172754717681786035816816368716550528595392250859183191385555785946637397706330815435706397807212355160885325076250755625237494895585669591792243725794429168885738725852849904087955532810189620262255085600184507031915960791707426967022119800716822143391890623517064393655148735616030139559746779963973113123789665836383400637626770932796765101315818781804737683753527753586778999035978203632495613598452880170752784823456200107102508475977369471514428426957476250253246059512493404960622493924389893635400289334355831273916031784658795134915542079857070027362598628514626555096668080758945014371725536682507128410300609379760473357672108742219203395019976793097944859978616735013409914610610681472102459918863943847359548092083581937809365275610949902128576145300575716225357882113210801793835392917679608642404212488653076550369703142441216325146419833758914834424394268857919260099714623793012635321373831791018358467474926925414240257668754774015538895586281251096378902334072484638949004888283747859964497302551773959502950947204788210584387626406002082963779914266387780076691233626396480566795127163722949025757477123510182435831576281541552260034600141072002003463974424347165733771561756233538059016396489235382082370160624496538677893012287139418937833583434884727616245134457220001884370512576725363101702919167355207757521325975915581265735592075913048181398080482723388004097273112716372891292781967170887483373232242127259143054067199053884933211764188164021809851780623552380458049592151421092874793018630062417008655815328436918083117880553748802060955001944181489311519932171500933961682943363297782981464092474270589908939886835935135409416986917523293257790274664812116812986911717475044715091318959519603989036843789272980858757594563977475411278903332521226736710290581842024564802411870076763187734320389113991220671911390205420611709092036442306781109625371208060132505602009797173397050052146184715907025067191171623523914147659512403092851126599308034955159423468982989468328099796069165369256481442833518065708905499351973928758283571608747203231621268818782400571135845022665899552538124950314083939541245659365762195316863149510653019085522734119943821199022961792676606839104226302458743467356229109142972893085566287639757810989968173517896493108107628284777072335494158647116094869876302522290450951277614992408813561388302372680198713380480365789478145826657486073504264263275067986721354804515867577727361625332693361749542140211043939589015160862699769269725593735233607768086373264278449665831031250317458623279772971990780972345735515828996140810183109591514372830347264100595250124845005095085712048888201175218510630172572271889913737516347265884803975555528491389199157588266045787393636364129498178610442747418950877225518331841537059527617892975540599334953851213625322950005712754365429810776876986634831480587698925207673382378501145909352513205973749235039414408198668378906855501475652083093395208466166636841724244234535914461753697989503624068540497448380240977524647959417428535609856055993343994299136393884502219102677680137160425704333913550272248024226041995314450964509898679738369771052563774373176878987469264049269596715344312907404647219835134146845081324195768361867865313574115441274052244996601058424938730653094311897609042393941527322269923087837674206703805987193508004107873032853238716275876512544135188287196192559752669664769592527431708100916879792661491662054608478142216985998839848299056524195704909033421284390063636836365076394430497845154017776949479281843841093353323515696306009742891243279893264880421539677082529983439416255628350169863555153344821777129776787631687169313148947494698669044466741611449179814414045921097330374409703830537753311474314546635449711002477907638851391260708253956436344480832638550016878210967194998324102019950437294590401271054228389707893850578400585253023456950747816301540227063598674555693089259156732668514325340235851103984284980955753670885890500059053030199334356237660961641644526797149727229904214748163163965755534754301193928925983332385685797444215885154102511608211597375995824501930075174500963686142726321028783662641504818622846512560768188298284919080694222962228064129896139866317209565817445139057693835633333076330006122892354265949326351208553728810233065251083803928576103665533932861122641982616645723495775869583450609087884809085423298440313533394577251963333273596330328286174884309627903758512841060173168593621126868119547174197383469917629918644630068221525240325566477996061892494498634520244875748758891011346055655325171895173717909751260131709082749962645068067829395359649194982027647528853263316319721031791601824404221751083604192039074925318831946990221423886384217190402859732118146403288345819040429249370666212412442781228604470339020839659760120854967021379254409461679488438124917409397109266206989837355907239769167396852469524178636457968004381239208401140527327400118543478308542718081853838740272266855784820756312598768454689652204551122815113286196520375432987274738467584326873916551372154274395043256966347799442143795553514015288228634066199045567326559155028450164893409898632375013324702212365216800452178489832397777497786224578828208704301014764954078372970052810362952491519564213772107942289946268088734184449814367200007275591116678853925248364778246205774825563962590411745437160732898320913559695505837031306552889226453502956023191207704453218339178174887862249135671226860296583913637312307859205245724945751015427699519840107779195388919999288432009222237862097415125028793512011286861463402936460111914845163099736476889638252865688976258083535227676165981187337953319521148648391516234182931827369906469559959913442576609129509019147011151293975293899571168942724928192517111941014894715576920879770966623928708922848653099524049746783577589876899067165918029943516122604298903079753514896723175094867120131124025776455253008830619881397774209356080072586804733656118031396915097264386949201682078275572415193748096017945177767505035680229325687771045737146875470571878178802885680442502363613301980843591352425360615268221025885772468086049730635091272479384469948791546106632215522139729977738893420691108540874078144229251265995557570959951202805156859324587305375176442101284587453678407502914273183847937075645762121013458827634992010086487200073847794032622663476577915714747685103274065413385220949594184728119371931163243346413450312422560639480150517026892462237511784607494113409902836036828571669564891068392439101635401209785823903829495431402182572630252900415599663186128128480248395219675978078444663155692633586622498425466166447747973360420871311932003704536597276533509502191815053075912378243737752823448267932239737751468348266444924912212005089107665313669118764195026335463773470922532758182459033842471940917325032716144891630703581853374386037430569488638836690131970116775786337142293418110391161701527212872433874379284074850809521185346589188355151921945408396092238176226030423448898699697230687314526498738356032339150799648544308234914186823396341468559650469189522042501400887076139102509580318105230918471132266679968809037892365149050592419089968540677612864330514297937685438314959858213751551462838445049795038573593399674127484465260247219588352810873632514594241605805268024074654377170652776319836444730677643650959449427103754590081914254388830601416405028814893659188465972408751206126874479171139199535327589123668087155467916276491716023344677344688718655432780961336823337435926102360516035063229615056161662949610102114506726140725614465651085589176643056233573323113795875752857557165032228486291724213646905990785947310098522617116386619892396721386354663078137993059636918689516637440349030712176408319931372962116030020415995885362391229620966691967521740741786501436265759878320143017253699900054900392535672936646008766532570591468983111260430240291489147648994371765029440871061882338052278865504715264803781697438489691098115764052318390621742508958444135473776886290101282258582044943069905617005747510773976940661870010727667602052456405676635582096291937010726232375564869240737278980244457008020314376887387852849945106535123529979174770686123720751001640856502956466408900218632362507015669577748519831548629207998687029696592446620337168825291700920160435364696098784156864376111735143359841636652009905156668715246827358048343034488901628377928257519858273463034034786330070729129177363669571866961623853261206582979386845215345726422331796059191210449363819044505165860246774472785769895124970691374461199349780252473192067114117703042077308232991808709467560867851317162043984770339573636687291043214815494119212754773116010293968491399812961079150315496370319559232785887272584075922512868373574322674539989790654682662597213450676481722357469026967090131002070575096728867104725836933770489745982238756148275009519053678278593499159645685498473102604601539417372837460903796230583977346299278890858493102949536479144655429889446898712486013035450847948338136655216882709046415867082524337526770913686797876100238193192571792618681855223866916665967507447087913264143150421999457478381832308609676961249297958178648992025991403157713176081826508390363420819984824031841784063618024389368500511961832979355390576798450161238070334803949143203187461361155659964195861845236561641741807646739716465885099408861312343895934864620521171000197133901282876727441281557214096970807434132023659081067473082874889242846442982114735665816355008720506390421580654641853439909527202034293735409420206011207825626842171975264686269259204335530448573360676547642736350629343231058023222414314666635502952910237649295750438010622729151377618289310605292675919974196656598773380966754805231252675229792601139369865094998421653130849694096591007895373884447654691653004696052541256329123916015382658559804786820915127167498648289925935957229848124130448343229376505962862542049008675400754459127679770906101859345929742122012325632430420738536477628550659682599344079376085274365693635155505246156044747773177739673162032719344828455559013794111351602998062746326191997622654839921335009212528437774901877015366165451992481815452716085128054389211442207336270746863384792553371120144202207022766516310559400483254431107312425333540277765580181051327251704877520567040035779800873211342611650664948273598162679811199461462515401641356121717902710948330196256686414876130033441312109697235465653579813096559260485904553457683144185339234402011319822637275094702234340934585727540162255239760594322931296414953978048315245775994958315551155954975267076371686629986031102963391394355236272191846920979558873290353245071935066242751562513416549672460280268344972803345802243866501806883667871558309987645159391162483229261745565585383767765966575348104500345760928041674422919493680019786052004120530551114501789891764671948547073234677460822590957912937167508992376912640953725551332589233765897921335349727748631925786141600713401231756952730963253664410654136857602659547852224584302377899974218731635885953127141088054587644222745550280730737366716853911485045443012601963425364558120157301735061976185945052085880992176321870707478200764187673644268088554347967683356291037810781643141836304390458950050512811432542577197277898796086867221729323161973471104692853624650306013845096774607516128876423589638387733440142571928718302722800656244699735817724190232559941624584431938981441748292049861146814122715686302181695695581248189740641459866918116689435154469587773457985493550595054369126986216053252758895090729796675664706812432058352314118932297027904562142846928268429259000290523440762881814230731004864722234022891137986872139917690979808496814737381745449720717446594272246820392854585637542493415261979956969587117880739867147991877223348176177367151909656793500215010943335996876839569653497148634511923981018351335383222686412674808113919553416598423033467455498366968655428491073878754549299248408762734867408381256057016443872254917979470744668531805245762062697287347886849761090403083950814779808168949710487513854670953066489395953651734363368487917020026949982431344026605644515437734560161594004565031290995151185694944006078568695077365497238428693333233957713341319259219974819143690389454771187436766611125395364088921380769920027715650228801443303763926055633449543510422296482381969545052573490836754111197473725768547147181032253676985688695188003768533906298556899997816070967847513244577397436325336881831862229737866348995864479195538303502011853288059377738891524101396544685267931892685080753341880021543167686672781390623206616019577479257593001322085341809248618025240391000395994012254165470156241010237239226238195936666234207675693979009392721024488593444434048469227925867704901122357464418016681387606678498228208218879143941334011124465391888991691127282370198178913182506752771220977508780852899450053594332882403277602823108990883886233116527106872779211643965207416219825184947724129442184124457443554130236085917327398722745433633088959057372243333516978016151491051052626877464013194580917901044878271364868137040206525965597861550455478741095381300506643971372841081026177514838137040369601079268314065403915067886181968635872759864010384737738192645681463447272159139374617721000775823049149934959904126474131904131753737415131081223765960406939229167098747017668554418217740761123731549021890411390365603849823345810844928031429421784624612350905459897446877938593286123387683546257752100904827752332220607581741645457509212205358848727996115800900847853961852941126760171378214618330443848079161891851411458724124283853822540000492589269730123510935176746796322153890674162737771904644370979406049780496565232891489178945910605522117999117541209370496556620209952069547081901959327353703712740881804726147494315891397946701477591323074682073045319477104460878075227816833639434417087304777047405160145908398011754637099404426379111232422511362740122270268564100976708462200547391422522497583401423583955398309519330583075647764558462563808034272095013803042802680250919422684116906143302718057686264457445410328968875466834520436817425520832691827848726059027255654952353460833726743813905451422911251662529181147854816177009984160305809066042816923223776953572562551334175097460665773481226678592144773762107395882540680639201277078888238176730161555797335749622579440751193088419586008891214361736252064693274662527532171273003327091013510006089520472191327012680137954862371506073052995034359808725583004774774858368762243823952569260421872300584982590838150061492607933011299135315615786287121995491901641992549944767289796944749583422077842795003373003002838659326627927822021293918847402917526286310058316383328528451581045260338789489005205060618305438859919257973894205916028852307738166165152169393594571596996373396626598015569286418252613903993559157583996171744431684324716057879971800658275023408622585867004128325903557209732037484438471561105809430424979326072147473637667105119737108668920121240502918056255608489325564042444365064005508557081464478534670636714217255401810775506388596144011908801928954185431544749306694060001799462561287056531146275506405529636162276732440875606224606074111478819463657932311851169598894513627362526918641510895365421797090489393494105038364394944902316720256423331332471315510652929247577880889965534505438144630553641925242399528428139646827159044056424476065907081916346583049641332281354251431311228136102001986109412160024630491943876056932059165867765262248281383590922833570188383529978663234841996260079057921524472887455119171800242460317003446831127394898677277954294878851679532251284594741743538738860681378592527907227562254560481960499930077319946384862048659216230190123011397340528913937591598789487038269920765671458852405536986602927884673042174225693741682356107776084703403681738966917645928759847995474163507550735500293124435042059771420085445100582055361582013280079051749502345326508953691722602333006805907979398826390127123074928622380037902807106682315678734670073377725539591541209090476914673869449842842652989653146908615355423687241910274282679761764708578242359039428439796199284424109713363857650473576858411198072576602358920802241719508071999645534343872529663763713530824535901427061145928139679315068220098179588411686740467942246203538403290918195829582844271705686199851937641287328339182193304545651468663683229897085982609078536809923678293993704185384632420464779835043228244176042145846118849534970527379847063695022036052188757921517288472673030622502710558566687585351043662065959064129865551448650846827577940842924907624568274568039511964093579462176984127695299963484684251937070195610703305886352678962898902205572612867186555603207770789715865109414132799945069087516430383066372578271350047050936039287833788626813877520829720657380966540224477114586487147041112957638730536634189990820461738596476990797219698200126971469955629466354349428168199617354281256771641839766142454358846442929607578041363609257123094920882689505395806129020657501760150231772161399268435481277452793741618366980558993312487652996801477466808725348621649005733120731107235459703312752298984580276823555035442751907079523467386768823883819127668538879099896174242515844095476363376419938108556109965432887666180999302243623375968063599793822897013748973056781556917619405724346109180122325742685372256291640039185668423040119487550294570071842643949573697093214567747659525404827783199951899041270972074574334412485792522262203399880837648242322661591636066049535973053906182152403332109436155822631635023618324445674685194965616355621529291873469723643135657698400848886807525927640872252406983632333283747236946848239955017198419069736332762570820085222537852795927825424048189290990656211870731867232223230765832022009349806780524462019494488868658460091202137661340789301114557276896867655051787972742133221828173632907632957657608767126085913426606562526338597978566089680188864018672555339749713544126781173651227378637810946248643084124121818034289898891126481877014255749287884372254192556674718391901262661822675183305858864376980827078387650353390063181114872730103582520029891887788763661538148531154260845579358359770840035120556362913719495313402710044460991812416307799501450436807817519344615624262126367879053534757466868347995246021457014061222168572906850351670790272263817501922627850237356145122594504718292688411085327482970594206473185665033080584550652667858815907786143334880715869500189753584329834551460591950276162863054654077422793519192311672145762348938158399756577607394371015792584122059129485698290012850885398401326834632170480220271800493763041998956426538855440704858284862235454202774858138884032142728424447437740520386319031346920655032607389161575445518512932669569472115014073338151147180358210243846579904189200175890531425977149297748722596487992070869293051261323886685821743844740301744559966762592183745226814596525331748066227019993370646118731968416474409708725158952195926945328677930180759405864837534109664576378072141479481249628783039176388196563026120058668877354402062154912109870881273456299136522747468403378350189899447755461956666806752284147139438612497934719997034288512008782369474835496891240097494420862288246237293031775926381014475250644246826431894882725645441900597329068701864930090365792036982328562476700745319165404462900077084874747677331746019924176770694323827640713947575180630562556583626625522894125024548147339888880960378577839188623489475493329045741179865676067352736879108303769982728875735289233264828126409427838548057647317328106522726266295032187247903136956563048596916717015863656172708924157161930891532107235108384832068956304011018680989730184607865463923239187152135522708856507040597265286634427996750333067597399822691743679483046915268211150688986925843997081582646819437309752719475448968469101544232339201253625691049825831081641133996344789999610176004003273029847918381374779204833685933884621541138341095060944372754784130851098615101747474335200567371470721478877842828356262344318899813015449629421071901137564030365811990188114781290693090745140805766848208155922933503333734802580763070297516080049415968604849311704997228988045407586086286047804156242864507161673710254648782356431483648257352676955936781331486611451531210614484905540566663379438802224753212929619521191170029083501253768168817914011536179490472795585075696399227887753541738537385293438245477678759778103523241843785574127580996913405322521481560673495001544353527755059344868705178352496135418014760469573749839638718444445791879874622073280736443276668050358308979635668086196063318475427864275454227355015799508616413165613941891921263673171502879064881011654152821593632196479895169480292063635951705863950255579454835782519714498426075425272074284604443707184731788576971231202746536251663595926993904436718049971328230916465860029437118810632063252947775003838433021439425533970009775932838047060576644841908827611152943792559554803979161812369071334546343116782623648892003425445094358536588104236031888352130622951160075861508470994975616370039759913380451705537081885512559929067888518667148593314221786600863268616299250210198050841295934312453287234963023631507653951881034864123180926597303041773614100608727099911543109935351468677207445926619331417024392678188562294577152924667402897721655907602806547631904719146627406522910216400962471542718555983253461445662131230608358999510479657082901555824893642806955986796887295198904450966845438320876679406865897394054420727572268260874546863954675134173072264507596108634451701326831003746744513791148506649422830122670475620651227345005398667130843114682940160735014007696727163818984478547117862505498222240163246686170690646452954914385784808617934882681195753331891081771426824154797857646639185547038941106839909961637500495943048037479348504823703475816468089122026309823087789006753981608251420628768605231337995057801564016645426543987809224087410085368374558441724056547183318346753945399463215320539944348186500218786924006730131493334975026440486088904888318808746536634605062845656688523974294477144050217840749920747526108321662144310468199882019519080047057360812114712374162222000163946075480746037657046051178203806377116408282813713647209253858366659154337233869199918332960985727848493190234583896868395068831082018178490482425586718687975218236601219079354029279927583689733548955868728735195804769535684103316131496495965603299031698651278934699240849454244338365331980730906703419060081162508267707828307279510147172966157620274823244085641166364832679796072552199005758791607807295616757472168361397306832100937405081733994714415483300344402588443568920702685885119390278117690368214831939516547359567220103465197320953080364830954191628042416408814176725032238721464494692510323844248742105743916515135920147138217073411369678648600670206961439104172923467338504470343154344111535529721074685117780316070543929758851154146701272843140444383814163613808923437521114547329033636091402677597338058500799363862853074823799557900997618228554546073522836952155485808867227041731189220912029996680583952078438181199332945945244522844374387769857599269869151071978917930239862945031782281043702406586082965059610412018775742047419746207874261092760148648618164290698097978955810817492898343180153262723108517832708202847037403735227489813195404153599374233797519520005869702180046316589362388855466494017447166171321878545457513053851864344065879435437731425529091158381671230340708717763220634190562657747626626488934763204489509440191374572870083955760823725276896160262707460075950865120122729276407498935451885979431208926095396427243215859267638363319947990413676270107684916294640590199899297344095255338598723746477524663432356598882042399575831746326469674271408068934164384714081129728155383149023823407577491790758176263424842431592279615767629868382938849352634720742565378345209559029543151112736865708694378400085071158684745823645297110607333257243195879220279520442623579100362282655595995670644800454333104198602041201910917260938077744487110802637637986919874887555979800820165353594984194391079834628004736267642344852294309373985319707762829595678838935815005720673895423860824359169416423408852841824951104901566408047373321713638143551817485345875377268877834912631464539489492886288668838142085196920731236384422968972537600953878839526601313687253452769925392268647937223201168541360736710595359813644003811034669082993579326955707759267875442215189726730169531199742084264697265661150481181195813733871085915839635592907565526620438221538312517046550180962779956535121157631077697040270835479881557374780839378474979729214509578819492251707215491201640586804780325990486854723872311451171058082385434324233732125355825833114891464048675399213590585881767063763683883765970882557506430576454298083170828565823886011306036236530804429376743830874731247653252364037478978888024616004940893954311186579471148615470639031449918722278718013761052341393643235412429653585493656021370097048550185368286074378879947987396694360846816335322116927605667677406457469203473480005232154498556059427878772219308777048107400429359943511018444095065919562977100047254703653618634444941216086535869625852773642500555571643218863675305547279542626029543499055177992940884712585675451897289081129250646530470461280527449095322619032568978858956923623783905493315856572665042642543922216108330962147939006395988238531068143607155998089408369702998492588654708071623324417741939962621105576811377702380650201123373080457605012105055109998005446107457773547128615563756152751796900489055870244704256946708033863807750030119927846245588722440041625748712856400889631588898452301697443446649773882665152485903318768899447887048376463911843674849966490090266712209918613086395822416195173181009947441358235968728857257348559134900924538026562498276246244037236175633858028076373955915584183229197639857006539198219603640737911864307597547325605632495034141653484232196679307698180257070570987139150710246219342943498758930310312172601636677570823760472386161305232952662272152423465892877905747990670038185163329050620909847132265459950787858836387239549107178683823809313293770678291215846108526407566226498186907447789658568180028125503022164861006674268833226077576280688545633344855641524567546684489914748486570541439705983992833302452892854091612162818326206311052928120566091919064533373174944450934029361941716804240950753706284334742797385224221468990651141490397461914313702640340417690553355952070998489453818188552386270256345751649507707144129111901209764340533333689284000790503566142768978187568926421669279845296250049970221961895558339577605754104054202340739477115110557583377679823736441568262323283889209605041085124035250517304286489521056398798104879023507439454960330673738117358788450724214794775544925893743387796579425100099261645750767485526484456354437784075503334971031302509748104398951480461035631331980755767613413145444446401144150277653629441202524743939000387125539972600363077020090662442500693579377040716349940834636708732846935672998817280800237264693443985146523799809882824009265799433885116294930149957625266903369960162786539300176661744167074640415330531852510835696509204331135985814934709183452747243621065445431459490276155213644684730148450352358524537872994085739277480166422041894350933981376914675153760749527301962074220837553216940808270839775124393953763266902530096769558985833842996067179043466865094458102090211455633136151257039377337810176767116807379313712126621387625295756986902566881254577162713311324279940878348467725935362441254235646076376786278851628256580388734149948764196977131267335564598285537177930549308921045363723166945423171453828602882862130942738512387307802738203351730520327670259223882561062262242677182680116764751107112703383105514329634378820758292304202762309751762204344237567278650141608862363319662901140134598325340219507059052147520296246589819326919391286773280067286645426172640527026868689279619209120498163366905112433911652457827372509520127019284631563611055956790618704702362661549323956837268783608221365418888374947169400436152830522941392838165820493994432898858680358440351598269718458181023558348750485927410321404887863868650115009417857005799297382938597407674789644524187567273038671259549063954408857802697178725376145571229692363101331996972187810076271279274686839060870077703429311662576266192642017650175748013527196250121446044249759106368789562656451498115415161271710662116900679483374334881598172501034535235301882458696803570448059889094414435198508899980833905196231717731940777142796125751932747204900647271130896066636624821301837969891088589621534274547208382318394548108006476634026683893059466514606424741095787925800181591545314008116292654302558141589214704948762831984148780187865367371085280897598814224357872985752618511938182759679025809838261022411099301728277115728700866494199379466865855948608269288345966539821729086834653635059634156276741669770468467309528081061172387372079091697746794200603566256964249695514495010948135438862943521419131595551472508499149494354819530864355768951342875985740058796844278550255520794340335482673224152797790741684274754608768901908553713142651738859723861286262190073751514962711727208463333383642767822067231447913707335749315305716380609904996117646577887021270893478649674594472561959610547209050845738691688837270862223472788087621655996149685367142365724438190818224396270602988854779140247523002361348826330878664752685010135817459130039594147154092909141046576620502380284172883696696665660472998554589611200411574030153995520537084538287120539165238875495187893764900157554182751230095445159371272184606263356052420477557892675745751871436560472473843304917299124737840379879437831045331785406071952332049342560127520110209435450366534864536150428420498750625216227038347125661418781286476559293815403362527677124900072778523360924391221550256019488222411024776127105574724480008251273828575003816150513247243970447464559435051579589024818805641167683202162999167457517273469287472137381653819022569299064474355860508242769300736654716954062467448350529017198993832495021399517330962039380368798905545066263993169782310892771738762262093516181510615424501464709350994909707226068658167785533857860007337891991832042539210220512258184423622780045661440388040054313419342198293880217255585715357894247778459991790156142459478046102457898125681939903539153215867503868787310350738433974426060448521897619505631037389032663722295128990462855326830443283909443868455402031843427939631516168366753119169178777274661579056179083426448406156858925254364843901377793758856154096261607689841228585561930606997750923396996336083559654479047308054664711656906221636417792603041021856699457397447453204868798060707539937298004214707418437654615240364569572886755691846547570378389682860557951892003308455948780312365329242579680895077131071110874069822583663283706696100333921567052764878545435491673271956585798021975153893570493585442928530561759350001403109935153604939750750002447931129940171425728442063365592519231572454165118918250380456601280952373787846957044723640608904453640862449471082546699822617464396880056985248310567345524969500177310158082462056470859937685281830449643833895311274410223078183248395665464555752203647830550609903926087209184080337312111636885784980475873493916523151529121429318354011267670474807977272631094402853408943981019984527937458252950122234121309246291404784112550216197117153432534808806550771996828241035647950399571558645233546720067286013943617500044013875551723765768481636106778956141309276803047796619589044001512242586735471151471956626510923083483560866717514604756768425668760872280172439139090707068503100458757850002522880804172686934420309760639450571188762374783007019751319787627493870521658273769098605274750018032293678924463058930666193143379098296084720089360792671984655795952417634416212516291849404462444550179981391108994403008953730936768242315319197831225471610730937965445972724385282126692946147521634228556606393320647789686525098388771070849662234675517017284650226786888524314959728718708406185361368800750288417807888575436133698194960723081282520466497941763212234042005299014840508055539386256387157737911984711154697771193597048019049229284476618719817940150812117229440671678681909878014999775192587881431390059206657997846799352986477237814002067822963772521217907874629517169854684439027817137491868432085605071163352586331373057047267716391449435480989087515564125429059282863922655871209697890526568478236968238811865545833942618052929923479899308441145138485145605456904413879005879985282007562799129154416753948459054786191870670533769247312407485268698759305889167221609548236790851782509280419845843507338628098551425052687217595810122757843044293377914107167581610939882917504549321474386904178482430692459545408144609494591580865427823158828337284548270218865007013277377370046775018601949840902755777160407952944226555322023182309353378754512246802692603417805072401514981916982134001843572128914930867491129964056241667949570757553651772720441072359013423062054323445136310670594213379035641064654634345265050498487179206756499593900738213095785873923000020417327764168841640670625418067943924292283404876883743251621677907660073780632593932383643930918378184251766887647459476859729596809759523879971657780390218252272766601352711639776865485557580705109090450049097545294220692358552796178374843314167163495075031606765005694103285336242772512663853015852895040116590900718562745015049444061809428453149678088061575829419100979522898572004219724194397441823886118043628267092532101762160470450312460240966032374302536813102807766318107181661785796192060844263339489464245681638816709753714035369561630588229416098047961620806150811391324601071559309025203712378689169718508981079344819329368594985097050795180069257346298530206742835403656598681757331708232915714561043562690552787118470764664235742068371036551968746510660819416472126054529220118781294123782775353052918948786653010290356371577749183138844362652995502536064629954615608066999959910783568565119180180110523115344319784331998082798338957401960410932990361746546575614331703700997698212052708464896211923781142587849609664835850808651760223117462064053263522856814311548158188400060436758074596080250003347540730564606101494165958944625229385370637146860029934522740665297634941233514388960819464513973098285467764221939234016442206325477270627933883675244595883685416009585374713647935497807824574953011641919669937514648800174465595289020602724345563853110287000178482572152162742817114640700091719196151800597169000295256726913325997205302218720726501711726596576525681811840894056782315854502261381419113143319738380659158477668178194232412931134341608379199684987177247361957429758541361522681039771967869385794909573395789897707880948981641351942921479869871461816083842119253549618550581296648852670114449818481964242333393095595360474129336869174862387745297992551232547208202453793289825993195140124552840600206319343803838808006350177927234355995544899056591662754927840225543940050944840084025196844785283432968900979455710269224677097442661637384272578297144458727935297426958474011207269447625190181306488726295752681418304620121886104496167249338020257520381159550474800196012807232575095860719989946298067435315652780659798170253217271734140243279029537875429242047317551584576956051749639921274073527713312614118958977620331725220059861513396412290436651208101782767458073299305621736998371810468179330795815982716814089309788108865551187959979108223739808700250969773826884238889231801729910856850464240271029718334440882914910021152104340422463939077140053036436187255810295656794014238442273083735175271646754398088621377620277321565012577039972794841142117240430594945608315991213817914247955419714698123540233260411361207779826975832176437650452826651493115204649360988541760985714712500113282637046491512898782394607190659276762283357230176754762109973723433449766641890888812523275991610117432596436215272840098748245725624396549785092910360206454585495934555801174478919900703318986974863399121031485838125823858423416047610379859334396020418625351853962533434420294859107061518817887519089733014252363736588614765304679594476128594808693936572096974766108675626679850538516149161065684503960758897812494720129032542881901264301409610296573580837182838206813827166464985493332517234781187145347151951959438194686513885614791565757035226471564153746503436306867792432185795618451639344913082804624622053427722347678164492596530008955590217782122549041867145904527318414693663139562232452591276374306417853389238728129232830693328381597979136496847398176816051353926663438082697367235112918910493429526515389989593000585521847993439825672819269739246271773954588242080026130428739521846228939570190517905988435352086821020561764867198191914322255670437985557381524437571969619077128156391707231732751130894908215916444779746604928852061422371223702517423535512259440726332366558251293403808732755423989813001665559094975098560973937856611252949410832250462802478477659370604969352068289082222871357632237117972902357728814261050692945157077377947223352005855900920916382091606854695128099977198399156733835766717650655028970693253318937760750452332358131527337310725679977239262280322242505931914109222269606751318324175411257770373120812384225405481621567507196806187528328257213677460871270121714544580649231112166249355321545103798775484832400345881869633066030556738338026490742071023872750967048728494798075562061825423525919268786002993682869399839950063509555806668311838299963578904053903962871252061672060651715338551312139565153120883913008520783791117405204201996937002843399598329898777075252337115830506087447565721605317206988718012464842129431959881463375692070346789896968990987031259291274400418141163348954610114116978085814224149847772142662541521932135425399964148609883459773084868509083629747780909958346968781008195729732033656132717804618641070926323821410592522755827003363515608834531448926443557309821292166762893119191251471052358197959278549258285144225987231313931217533004488099064761830365148665194337625545820764739465401710303443991595717177313744373088124627514268929969843364184033046962907583315123009522582121862191665717106332724219754513695488243067240966729625789753312002179467544121042185747260449824817288670557759306367629074564960529948338231861371958150379979937662576964981560186839571772233955640705878535571321176543778090164026501303136572658272802546102023173803051323548485820837172906372525506614206883392972982951265919051412162836878398504326954825406780802555509627324514698529985422534444516189169909938421810166540474580555575421874815265124489288644651182706779527569996521325073273378576034363814684906522403526385876606175395873352430453662384693928510745115671518426908601155207735515998176454354719319262601662192231047112316686944809189943346211910103902352676321195122367174664667590054325919931309771040164574745101364946731362993884359793813615872518520846255507308436076244221537145964395272967959095646882303421082085602033506152847470841092251266213465268521154562465304201381529432393894229414581873432515503277562402530029157090617509074399338253728069989977657626143467514589317541422058469602248002400591264050703494087180818719701019554812810147840756327104481899999856446554152810352283021931593102201151535838523729267209476411159774277874102054174787088033337301080324446317347174560739280112803741840852828417744349436616206058928543550222048232755175463532695128340879424585279016015798471530530916029179381449003748945957563497746159155091287870673926686844362167187414230124705855199107344691566971979529324013190233750865666776420885246338753771823116308132867568115471555724580372304538721651648963484983803797872921841986170102327984129404206934417569275202049050334254679050906775478725945958959663919454519756035424852650086411238188621099537704485865283984834797360686533740833873630699174312245161598547116007638048312248998663138581060268551291170680678223448632792754418312214857239367819073864370352249702335897944632594150942175284087783489566800415663970389139612405616452798883921832420062147445331105271487633935549989328406688878033614018548905766280470295784297819970043265048967035295438963985656298739012482213296935362449745768761002285474914333364807857247928667060132251934350011503940794009940624368680722112767744946284794355147868949169784380712956553492629115552017255831637209887990596616645839436643202284249026154307566745513125844725950145343571773253997739334718106848749823190412717510804658324629199907774685934331903510890780904507377263233076897266008316469313276752378215620084308802534410060166529936316233196635358721041515253528213090312350281494553526063753305565994668502769797798806102324324884708783317615149064172303582882484180525472364016310455957281378504368443664857473305158229321262459129887555638253269006283594538666982845854061565363179519837909188377818045789229050002925166945596191488971561692972558849065505144264697202485587430487390068405285017292940798643235253239457895182683905486871823939709120283648177772753025734007489900625161445393984654412004709611123351799396586096518147970030908553920212361291717113805240313430959546123733512536936798402861301255517913045948300780088965599472016604358293320269877683830252052573393430221851616781027110241836916685909903578711089463867448870454576953449405885165925422675651093580048101141316271231571269688444476042084569181915921751428631503644770538329947924371927781772984332666524988364848859812435206754195811796304820168494399133213124950901250499321454097003018131803794682800936635220804332897090554664096848336179116184780403641666880769419302668101181429843052178461829985251429866238272629506366647522054668579377919931718685691439870315239285191296189026626692432110982868062022694186115562538647646048563440651697217356511525371785822437334209398803536973406700817954099238236036007291247964881633166646202464210462858474735212629326789181054862813255058629103823756603856444610230407887011096222576646535155825120825455705465621046491897787464794041674897146157563076562917348845454910195045411828208585507438584773538573150878754415274157662618691271982885145901117843392512315275378348371771269864182130666856345782511871416833377384944332288005811062520833214607754246795061322187609677866677229736177779035363257834078164670962877962053475776084158474793825175032752013404080260803538223661467619831153289692360745208365381863711519763211268138172791516063255904148451328553341704352981089205733750051428260126751139858531333439889207736721384175909164982523073085520197096072442356264972175374248332975241708518664238547631744452110381257405262890023988502854423165039601724344274533772196393532534688863827863893437260382718008571650859718610265621208607365791108733219182983450612578586280903977692292047703092935769766798320837610517906130127937005965984823928937855561313644678565625681774591703032305946143749772990276920798953092612660866406092913847692010683127406894566261058447148691036127291681366202517449380391090704545410998626410946209841560113066144183043385605247348221141326080917690579924887990909620220602781567597272562019485555954958131336913405340205086443608877262371994570347288566791661368388082172447243089700527554670555133743633880774363438362921593577739675868826881520686928178297674407439341144373262835772594221380470933837029556584319289568965186548867494271915721985931163399397803915751640839753539425620441712047470582839265541941316148702142746787947345729435455409963246344202322093901888031112835642629520821698657439932637037996667294904435133284526841404432673676723481824987552174131509352393222870483371964539678180232298596996350136919178412390072229119215186370220818650936876361784059939418999350647024811881785855803285041575781342405228080300279862623950336887497614751593607471220434792920437369386099079948482656994919810594633184035645900942815068155701006855548410909711441615302777704221031689384693324722165023406484003351160746744575468603733451588074111085137692587899485476481319323242491989756633929324438185673372625464217535977924443447968448160811536239740702556729063778256086220108591998606890873619905504847983998119107781795611963390718185073416249466021280424790155543231967242256391184856754294659010891579395992844966093586904662498393614046454907179490926351146717782934364009126945328076250034209320755942102618325521843528752912636838144787355836255471689486882775446052605730823275492702200296507584359225752233788186556141918962788364574954124278650718818891470368693329330676614300723286874448713336935456338725610918383372769317057227569675468186491621183427289174853239003139897470796357437773527783441693578576493363882283447099747608666169837041612456241770270325790282825358614842862877345711072279831316720590468399507867080304410660689419700541534334227333205928376502222029145220972004021911756786770227362321935352692610891290110908035754402569465889250269780576285175009128783270406188721476792352574401793860122415255023250129903286011134066086736942815882366355862013965906995316185985164848392976687198481037863756572994514982785468798058231899246294163031593441850180035255064666033505525773091423321900889561205770480265479143011549496764475637929923217329918329481744734737159626250927606833089156774678517765252881037208002654797510221179701396588017616831546911921827471887773689252889214671099539420561513353224361176060552214400659083153488509193533970344343947729644129933067595398235015814765346662286650976545420142749114989198578651787982206236814730244426066861248559890884775229650286897592512155958686964400296427832267598312023863192024579522518461308739407126725232209836641221727766078824504430205559492642008261051191614706297737088347750755858520463815696180953602803462860077462517766326902335722473688343135517812137797186865567936180847508656489254567201633003202390787257879790870735046179076523400253769614257910134970509641462026884974257471238080114359896028250863989391964711569014361252844279578956741136613577658562543682407580470061476724784661046948122292870252374167191388806623791369486245331101226145703819974411948486301224672135381281244806095352511407086462475690953423646575383467326267520185672247323194244102678245923364416319894441972007096848469496452383391366150451528926187248053680626730027499318600037182697882265272565930040685593275516849604131737276262954716989474849414043735472976620925137902138049361968599082944925870673066562177035971296043510997858469899317001428530930014808087475163673362576767505843260454633239708062027156543235814432902345602144144438276532595880734712705476321456501737289274824924147432731699508587459318299050151105619520250434261664897280705012183262749043471464966735439823395346239195957881642113749857201732896582328706072420600011071659573215097277310041053323203703199784912821693218702168229855061903474651913640310071286401636819007322738784644308578499150114298943949979827080797603431534914131831550073761922023984955867271648794702843790931475601937050946747952912689438192215679323118666238024308468295810161915738174205795483144020245198416427856606547185362469211965403018076945202810167332737681034069736682561630189219960967549888151001290126168362366568506829631559759005268691458031642060212950472773007626974713495440947048103634605429196659757324670780296704423934202641275712626155718869926438582830256367055673816039624447199993685561930398198475402612183291827087690308410732613953121542667216294030306373892754900859649852756461841928459412043514265742757256050692660819055702057145430176717719548360005939001694995881859512597269560848530210257215036687362397913966378965294661625115050293987257536675680289984124466759091538004127612114836433639780018649958016777845244032844387401838158232409445909099718582984275806632076731764496038843899056931892826787100621596839069000712283535298586729412828216208308159667363426645624414262219953110573872508263705563848080865069093813211227986868190162425765319076295503290249191219886650472242390588999845945421539961122667490562222279339844568236868361128648607434315024779478031665521564381658379021997605542358519323898409433119035021185478086738094093286128256479684184034890484888627623016634376183027340960939391144850188426697481078995430017973056182881883238781919353600686087062046706045166427111147456272068042894021712843561146074152254576234067450310900656086113242150551412761847107438251985422966443795635617840844746601764735229133910163298206266322657767605535708021341902890980053694039247147961965215655342615982362091767307293250503486252764747181252434608896787816817377244389470319197955998497849793950268795449101797245734710762611254952861811272062637329652599703514909060375384740980228420867182994186581586353048273732706035278754444006307317396824798294579323805998140773436038718176268944756028582314309727822746660711728631720996513048060852293429818028412482408200660190842452316440331811175088689633862676982370561385486449814994770832360055944493088994470033758779632414908794536900181060895794472872590374679497743811400863747325436527146272487547148395408799285651604200386469187801959554574833434370755355963092180148943467237579404077379774863088216725172349704508057866255461237266981276577421657400998463519360142775350502153456120515843976816384029477947654229307201642722948777922215888733052576302266295536270806575257282705571568731499210590293175326949744997703164297405734590016145152944040159897997263841959929876615509367952261989669105375941015100458860711992591306831289932857020902389891199214580349344529777686084989591416918698918675591008345661526492721186302317784569995448920573687368423779282567835064171099602808187872158505456453877972664541404101850275539226404937154797565950849097209657580195648937803521915821920067122880634533371434914062878307413529674875922025270203015119671015673749696894039609216231854900390456783166507248099793018643133889080695679733047100092700253740206138718175211417471558881210082765244979257693528160760225467433110353471068780523313601686387147504488490847558404893786625823387386966307210626516280536252528004701496758037359943131282225023007539261536131717700909815805297658075433643057784956143550051737723377714345961161374229506421096933957353586290474689004185417023369717684487089842816000388538544980457952043425161037972805684858167101135151904382160087840839032738690049756311054909168913301819340437863096286143701998254340250074188575424951391667937457031147645741025266281247443127382186460460734018690875931899555786861703920988590106156428595920344948301970873877513117410274665075613759074153851531777446751590419348988205475290742300820926938671619967438782900447166732658442434921373791836390882250804097302386405830198186673093271307682163006761623610136080163967174630849794781846539378808806832783113779384772810214975549376240630736268478130521200754856236823727013081464654971160722295820521877909630970746669470383212024532579989410722627944506938528639751270280026006423100115742798508259680546957038995192808039175753432610799359272409746100084256869804636864374162356235476293750498014844153026008932248033409400887180504912741692404717999381673496938260960744638952325581481714209067533135473029625892259059157135153642694841438281797825416341756721510070474743448829764495052536298974733194136331625478602228726976652393611415668643067746461302035982970166360578770035300166257138454346640868734399677056905284201541633016786718952879194182526955831575946381678818856527719699673047520371214483596009431232745497774767632263032775263164027900472779733438743993410039913017386756077882670393973624308805386022808377478812805758865291951416631671006199608780508822810417614988878195083779389372558278884696884349699379863019679159458387425580632579423947870813908244739373532495546341699630934864112844403910641468133798165661082206425334599652217208317241775155099859949097116287955737060318563657968970766373791766005231801850237480301619859385225380208447276925530010792669600419194775109794636608153133850447028848543790171082487703262488766761102368345366971754466428925353543323102240811725047269060938951596911208551119228049071959696040114801144529601577810633047935416347385837055073434925985100350992088271767537311619040309399269527869406847334765651061778249121766641773640206267920469695661563858631661023566794451331638226652212545484158112603885251137013634085817410743431954068138413998162464992083901628250225253535711612629200886256482026263148578664300171618414562873712971836731089962243633726057446204167048467661229025744883110541115432252245651739184270320964691749117073095545880228833537723114198151966693042587278955424358009028663491094320753833657551864063554562566572161081294739815819383341186908936380297920648235484113583158305035851808500420249626564793631649650622183030106290043871675754409547675216748627175612479829532659334117882493132549769943301726409686945493213058861701484503253612778809517140140960527172369640000074345538478079652396460938581830399729168260463085744857285776921281167238123165649493672280057034888761963121209400412504461283476919355263755509992869322392996868191441083755648981487675796994874541002616440011173076712526701506159043960990953587745295689117458298900097579920896974315495992394499330533549762597897691489237443780793208895361978039640701674407211974441536374455220845748803661318328894673834915088442147236817699575773086711326089264873607087534339668651638708336495448789334418162183937176258515375649281702707668561995258086367006236594996255552227772997168525171743903624868494808463152894569660614687170289609438686794331091421848668170565865542631784045707456607196945287637694309106338167266421448786837651061771513940568871688658520748311884759831409420866328607015872215669840351371197255042402387691303222634666669533189025493689542059240322192860279783060672424510443417866388328478317969392894319900744413772112327256759841200304527112240195842178863635034787066430133447597005294195734492274884285126310278631638387782172557830913343841794602659027616981802456480612131052944077007530306465345857319368078308975739006527071899572380380085874203143384786062338694445118474007018789356323524255170075918216691136623858238714622289680316289608573114433122386886568590874198692666744418597024357151508404447268120277866152818752214872820702240852735182946798736690345945906723573910053582529447748118646623733373151558365571766728399622720518288855496471723810201171736643260080421141750184175663037764793299917561436953673265209141445071421952368827029531044702133473643369218259777934708533711931546618083627680917166900511645421113818743611078104049266510006607677242887477056089922790619494681505697923223673445814011166079074972274210895935623700852337431757941860433574729070770580205513438304817502723839588262987987368404964399767599383500913598261640443600141664318787966212102105888519591131641033510741548681666056562035418723429510293415347331626410019754550265948191881774244227982498309925933733653141422641033318935580392844654296520731974205154340961138866400340101904505772202761136745064041588451123195617736470246628036275797181305709434788560010327921235643077688089563688415041274828589247157343664656312294333918125738196708102963491192767054793777223132152274680252439010916267390011734951534452786307982332267284703218974558418009132290661890528617361773637860689053088691356662640266171065731138730184125917605588830955668532128304272636259993744612944605737675056097191461371731983461805588002891099550245353089338427426646043637708514409303147963473452072258904309294330256008815388768690362616345435181148794136965796650456128192292444355552614281169384244700480743500916405414275050398374796530733905177872632538918669288521689160023732915417857441048372346098368188437916044578713057010833457131515057425801010898535107747188378417110080073329556623617999591212449685198524533156261661548353730691076489440558755287677979675042299637345926740871923899735000008152168620786889623730218861057427520060072295205544330069929793043812972796595423008844132067900256152762391833531897145115241721463540502847604707251052925007825225894463671595408426781573731793022772898500090427382783530297796761751045925443428848706018531443011133434523427237508419427070290556059288763926260851991601319761048419302216503308132097514258102865707243450516282719759598022086668670899876038569124701770987757685684511505694854749496050423177177573813878430551758625463525866207960680682609362136449145335796700105319819585611486131141014746973179062481847441644134307784020386629319988899162654402588176688072326747402016546670178736657694190354908897652278525717055513257821810579506458721728879219417154119595189686712900820003992658247311473904245315000835849928443436745671056412272990154886215340885713038510279738452957213000912662459137085889863114198073516969252955054064616046995955871560161055270914896821960763867514901967490885735713932828779027225883675469842501719401939736403200588558567345821400299316655831603109713076649383420121981918241787222893964608409836286482875936860534175095726506749639567017733788164275794228232685880541093495903286760444924767945173919945555223011745489984414691891667051342682916239541191462628699395698020116128048607363323126347555275453961602700074646512767316129327058551235708007871051309966512664364693375271588330782768242507296490020328617850082574174612228415843224615223512007115595712971595288592156075337803578371422889823170582237588473685908405272964059978135851998026986247260062537037200886656999459849182485706434093567933582131959222841024614361808873341339012302339654181640903728369994862570454963447364865824535095287002756073445959292332338944920336496895864011618570945920247267436385734758103208178466905252251486928320815046016618126353171225086567849279746777834477607606682789425954038320979822749086848558369969160647990066225116069776234058202918027673843621400978281124579934073403318732722515812289589290845973309147362514565067853330539023575412688741114131572994406509734658038280518340635540886221463976549178281441715166017061473815379079205187624094335259597470246507498000373178582115869866760020559797771728130040437262279420371187678847701333216961496531747110592942765041478505539193521621079474771464688604870333585061446875194973010333339846639955802408172811483671516425378926625734968414302076603252460489310377496404149636111850379393651908162325681340090177469814659684578943365952859575445831560204509476639916379438268818858459296868652619112370081537976320075632671448931242277301577747546307525416638860522522058243281520957088961220116744952575467277016899178577336527292130298789571198493909562170238526188798237530472152196804758951058596628223352582022638525219701973591762483086821498009065749395448728984761133383582613942050600417326139123191307274996356593617375578914177619401138398148995059480152720175109984723893321469226473388236289778735469686667026997372289670828985107122838456475602146823380060995607406870320264400500259660024601363063329857603049756456762689448589669267358423440768834237400105378331463960858350457085650844135028934709740936945231024441810134524576497681195454841357427459372738322871694572008061274699238991304208468993430207738311762651640898641383055075852941462500958983011238935065757314181632609743223214371327538315442735054704176312563996236664327496732346410099969628650708774519917278579299207718195976411731269548628117430978684670671701479553341857669046731923565862991529144226632245142999381932116465463977031979476528240555991424590968596403785642879801570342245608807487322678366930128163315756460344522537999937261617725075923983716825736948689451177814702367356880487374794619431424918717407452670881524910080297561401882287257430250986764925148297229732313947623194501874690612648521775443542816594523462716918359067004370318849944578698390141913861732301260430412160380235769077278949800564398985088179271436192533163438688196133571171467463783810851928508803041588428163217552299935117257505488449879703689958853318249689004285613980680957841117420116101784214986328083061143012353484095103678468995738344124737848183305051992883960103488386604771495143368033466832050651466529209433848233090980708937066262506747535484905995619948277913847573267497758959786440047851340268646950350513872109038789990470326425078494743438455462531522209871341205428115848595160698141395412734798836439486921135826777790374230584048352036935182731185735239626397485224300073408265686133523369652391751126087964796907524660098289556230472590969650433214597151439489225281976037839637161431898455595096999873142057030912973679570215237116740164707069303072420464784199970058804716362508369224164341184846180502731839776246663218469400846912305221192680310952644919323252923227653069262565785729561218243589117891804707365520561329548222156629508977815835720995744972696859925402923588889979335538851589052110134707785080875643325858452858231321186320025127790262109450936871072057475574030690024911942643507415916870606188749025512260672286113790812694125477681819965587956950390433782116141908168068724470792839235964627738887869245657382741381831940582992261321069597507947044673997846827742125522407433366443879939469052015313291622702621369357567254579734431248273165829256574399331543805320572846853097710121212852707657613223374462718483947012122963456711221508818827405139103571405079671935442475709736746786836734796451333724176025595209693161361049746207275561864538553652293542675211610828500573320765451419742726372358676714642678893850735482544951531222131162504215546588548883991266589651442426132407465144684928724896439582549568993841574999645247634438362383031373586241752155173540725569251171230014566391945927224662852613135342395489635767881965827437549598328479197933325383511241769495198578627553069529590828485852906701816899633407315315849557702189064299278969196245820245374745980162874911786844946073190003471194134544415320479317301311612575827805766392290004595327317603454964671025608495300504505591400797370011334532753162592695332936178875962857229078742936534825364255586831116682295825612344529271658254265475212986141382370923524289528884932355775900394977880781347565168531483019771347271236648414125715298550287735897333793626778037423748300781536075911176743146623116558952142098171469750644092583093508105567896752686324978712885044917886028443567335610496283168550384947060765604075542973470672287441722908130289965619402145365738350754594953701520499692698166544955152235709074776516677518980238683191769698918147302704100680049868352599227346774889893517003426059431245548799137058322460636040453728570141111399427924620673328983618702234341300107936075844036969741374348908583493720379008225748057469729655436856541800265025049296797807495750641857845106033124758612117087540707514930195420056247290750989778106454632548791582766868586901657804022304422867964791915617195482948157796518233466883953796700032806386575578303796663372545072823316832523435217348448017263286417909033760448265929627690202672935132866674998375752077723850272629110676749855375656630463852505563562471059970169254091136419304602172543819225147398481788170179778446556184706527842324059548520849057276089893258371169482177581755236966968952740070034074474654021425388716538715123175015614844474337328905993693886380397094281943625589098659880515860186618389355709116353590243831602089107086667265134312927199686098538304151742351597830350941383001188848356745238727069208799879077053452204884782021223695744107683533692774289944175427787514920000338452070172205132263946286053766461743129190754852421483745586641213850703295218561887968189454174133502493623599843481315165701733173052519078774123334540347057782517604149605571068514296980415116751583419926971303788942476396045314653293479691659629451433610134869038984437594731929796575469065790316872644268964835849594632340031085207842660736599498132552674056201197022646639171797424676599411096070464645930025896077565625282542421525561017084642196037123388604621533742730257626112688605976041129160980233631773529707195082524816920638791479715726585696265215598022459696424727425238153563548789079431738934240439844601549508198617933596118107460127472828323937737901527174177927189441265111676505681437125574586353331816126191777712415502979480545637556301433359754676908449780310485308138900410138635565496808409270919402312986248086148723597516468197774952714554513445716660640500349054220094568153196715427616161536618737674705032351401069812880666305978463179661683523599106156185556887062596057661469328835740453548697888939757438303210772675111588330800197268132622976992939352046948477297255747638844759429794494950332235613270889303770287403874548880334457263348441798836615433050613355184368048008125378270163479421387369024583194076819508338893366687773188376045920776023264329311610257053379081459369950818287714774678027835314846118140539771131156220454244183486355384617312185797159668813914722457147191894935101969878120763506711766060093877213886588168199956591896462417015989702851922037857780691737780263980862161702764504834932773556533120842507471100850423936223000687943426066169493419032361928302612159557264273772959074936315391430918423998360148639403061404358730609742761715055648946901590822840676609087245909483291871885380487156702021849108749548528014834540795480049921854477075152478452231658275203716053719312544532304427511829121006302385922711621683904548609573470071379967918325669435891382177572043359051525587710673743784230657537762366515207942613789402134743866461924868089204179565884366291647352225220223945586723223330080596462331000025566244675742813407079227548050167369072035452875306366293135805768443916567165110511411462259887407148306580859714482038458028392757613509336550777647098219638171382120208055994096605639229550232092668095103710191881226166597166223305710670863086761465434188265066929527076754446837129822187088881737340363852920402252873821935590528045052444160703039193751874980810978305100897629343094394640822871057312184758541749737012464248430191012048712618592659416865826293856242836400022007557641025003653610936914443608949066898455093000265928593876953996170460944978574557974987966514407917054270440482420718586693097574321668809160969352183735788622709170374314760557372192810632245525631195659723530227513474010091861677794419799090768863358203101134734724947687716988146020537664516156608363435481474624717578627159736071874658511463489627558237207607641688787829117098235134397541376397291450037723637267118070396623595568494086511229792829433697815268420989669412764884577031915770481617997003094079688902203493011504299790485059788705895531761077379722064935431240983350554273388429714059125209676459412123594628773804265816743685467424622852748649992425815266397879902365720505153438141975422110174305743715840484365806603225997006999165486614328816761286159847532817813639746308629554105274500619233428177266787007867699414171021536535748373088098360835286091701521613789204682243803332403327967821413032570270154359439410924737813635368228405458898809096760446919267741972080460824871150927054433050051414569067877184452405183051878929442416055459351208919015814054748727265572053511581172164704107958136026719119690303150374480784407923097573385141841780331851597895212024166196728266726468367234126941182624534577397137484823263236843392278052105157330475339425901167134894659531064537790991885607223947625849646332732673738696735980030721622687496939324877284645324083690177514952560965343543959556232266020457801702117917264120387767327210310982709403587594356012573898886533381017365239536376420665888062186725664137272559837642452172976093372208013492659820177454369202687933041776763725757617821148662914072962157836758892693988988736300260783708005878828403349239623588269336604667747754660302834852123708423298414454067388520064118609581740539108796345060519324903975243794510621691940058568138776645565723382999657319550976073438788007004730565770131969991734870838841202829928189511898151117960700235634785393189262374883088469993536267366965748109483837236247521185128689336127846364278812516337578726829386066825255192144314265260006739014257971181275317680369905342204903123100735301379416253284759938528047264004063299730780656032860041190010308379976999596382114828324116437403445061715948425772143438757878272062517018155431483105514805273283385098097393110081783816608852964443677732602406539541245664995519326672280772618859611682697216300790835572146731271977689760743109877364717044113563426564051375090407961322225593019099857388985580605119017871129999089273824095109577673551630348417014632689617066454426159109497432503940032704693856069682428705379376152197584294619684152203883847464246289415092658270297449935557359817533427967052544052125296693934617878012585066634341010009506951924664723561369276433717552868280885190473309940863113175573804062208550945842219113430909655859383516507266219282153879562920882251522318695938372704307729973855038087914950366989457550786775963207240535561013073247113917278471830707019078176805919771014978922295108600541116960501344534012594745156520909331430062306023059260330892314519738553579042612314539620710888426528240917151793611302011577482898206960644152685666794732378851390125086856572511128628878689613354702077021511998358658812409945045848994052043331732940361255171540893749287210727174551818754867569761276313217786906031323383381877743982731867365745395952569522096614671258786326172674178281785406219702273304186130193376734693965641400617356816578223176208530297957842919970068306869739332721414437077476822191779807051019645353527658149689145091373193306014599226937200430635810461427494787259371079498925660287502792762926354159693690864651107663146101930521806458850990116427302741376492984356168568847985389163913238571344310839448019490536515522623713290757581135322957503623906399792530514160649901913092252820711246149735297321296381117066002748182626557429336065306995619744299318440828364113139806487454244772541148898640834280720048079061006934058340806753336023789640449822338642162133512084528170935968006792116134691242027780947835653193359464134377430761387475151228613037101376212142718967424354937848373491043866441695435408605869555351522559690087796291011110678956842663825372469224815664038675195614508459971271708702176999166756439794560724385715303892681676914267992233539598064239223598597686903128571142172167565201730669464616963653190947380717805701955232591184410173725439587026354948052286707527234006475800300319035149083641076988825398897450572516965908720468439619375764680543988109546742480760992435478184619285515705844727641523672405834633768672215998534014412945951400340442775386586157520033165573980485887784034109075389763111492375334473574160811551160402204405864518122440586565631835482581861549327632448229926204644290049989385641141984829659118649573410835836908243555380632177288818434099635889375951321125747090942099334660895679283317882391623704858616572969085337666995784632160853531063728077739009243039905383901631574077040373210236515424838406131172816123360107579675928136490168516885723942773265976793140967692582904880019988617434666177183219680810869274417144404425044226573693516866684700413373797806078890439903413762291107262387051908228032078278057972804322134394469990993265748400233885501001337166315348628380736203894029087046028290429746000382101358854404260363092099630618127066489741504730287747913269579171811996776968294549520803293203507941943115514563129542710953552048489238389181990631675046647981377593775378139777877940240950223612559939924438938450667548468892763500655756663268846256036584390392488941976564695679005836173335039636431137539050291910889037123673236227559804058721848897864495548123424595585365086000373996945886411717804787598765261883861900031359837432171117649111104810108748680554879584954286650420532093223533008585563871208305720078977585475749292169153925923316582710260571331071903450794956999535094445695776667662095205990376578730382864060166158583479022995335195707974926429530894075201338000683811475661410621434799812617454057485950278829629107672530828042874126607387792509059670881480664718775715440982404907635188114232852746640069415529046832197218712764605579122540513533920851426006876989982349563982293515613738634323095938033816793868220431746225975494683897162587770007297919999152867002281792271856111790075547847944233058505066464704453332825378623936902808048840551460722113014847575767686874595411689272387322075334396046834683063036025391763800533912811796764420778646298714049072758357641906065455790006407136796504739331810538364839142321105766674428335871175109931911723385383593301752010993416723995285187030942824308351520343642781308615368332384523902658427099817827105201764265673801806414302916594215194867692272378404122267678004940990618673254867330929577167737090134088129167845244785964317163012682421859662123203750224105909755790240966729689993920612718234757679200219347106012746018779170841746278607184032765406306652600910969892322752614962665980049209166126034318359096693793489562495701020950251826489967761998348775384999472989307925077407498401194963392841061883026935280063320051319913569185030546674348593309244376469888367791682052154192925861419090963794042146692309049330547192003373316741269333943228337916403321540628517833584151043178243542745639514755629298427077653392312129219123615775624309938201427356694124020785298948043191993692891937623207534471669564575560155613530366254364529535991371392637833258362765087485290559147036143798485236630930658161059032288068266302251584739003360878328177176808481548127995035062158174672538445780054010424704561585937437653001073061324302372325935110324974036106862146490123992299462896154178940921441916444157445343314029817126645342573101076769834841797709285319262598741482791904789508808277649791918433501645040824387040879188726040822553043418788107326805888894330685426749642022508217847702012826563710292327377628914162470388630262236684448445867336041145085734710097787993149071228468705785956725351846425024734045987379165836429701489928402508486894762959968787482218155173573079718426712241752183374481749653851211394262721890064837097625843386119976730318362046171442019034281180365495112779519221971084887856892884360653854624358848202956741326854341940762428623576131290195837179926719239523103663545864592015005630402027695470459479845182524794145565254775100002965426035280967550231902417707745288039305424881540536373764553800733041300001736653981076948812584227544252465078767469213455112385688381306774050115249033818209263724989681858475949648262105502256088437923883153261620427757195081420983928719281506037646922807103207779101453093053611164505310525624221384293036484582445735476449880339609670044483809687041816063478014122467567356704180273680889543324176884879754118567565801300649182127845963789307351175163304914400680849080583578024690171318796396519682190621726590505830826814028742518813071437861059594527936806874650526977553249950814148981528074278086981297858217109928342002009708623471320832501492225516079547087684073745385592820401397535787253571943204381810702433944459140269793966813824871580160767151094450004251171647330694068737523969373382978712159396587484450895295980959155370872858783840133780463439179963225996144248249569886321672919159536133258535408936670450958722113145665849217342871014539339008917602944150943135763081457740437762417586462549913928913051193339986704149098653428739315877549658931500296864123429788921991480122040229604958525485757660724704046345441232278512997277751190515785693796795958515245649345627815473859944458752995635318556818828332179325658145015950464603952088511772007695325481132775295872990183196289945350298108078975761091873031204521914887784062521511822947685951747460786396541312277788245684704281210379133362821388709434206884076086422249316806203721051627765579509151790777259286098982563226419280054966861926326789661810036847170231484163534094338134084236550116830480790529516505408656763218391625319718158233618431504383786087339780197182258571369481593066708183481296456275235973430523519822771844755448107734624716610103089901344726737366429624890364214743540122479793662498169465839271210869533627795486990868555240145319974944941813946878080396630704819085737648529051759933361711349541057046600175758785144202093461797411207759671099708465538568418727629445853675526336358997201410914071003509876194091370782107411709017798531038774985253723110178863462992459880887796537475006298893807257671484358768187687253744405650494517082344823245043215157433065593701254536793814145987050470642957417090413189018829975305487749479021771662113310238927724474450154025001146721465691842200618571876001277868470595118364124213491565837122319952274489008427725437652712859289303241755894089234684565289211331696616574766475380978571727257181189082074829405358012076279342200588420954104546633309531649495266001370891607590527347328285225666375007203279895906895027534563302943852270520768102122698253397130614942752034275435034940741677949645479157257644037622994422745369641921012626746300085272826426873719617923169572616180455238020326927840259519223569499065241936710626276617084490396441607135928459821851478482691257672078078661816997572879207830204032030725983995940311140516052753919567113570042392653704149508386512905328383861993545101305268363759237875165453148016165876774556002068992402549275479817153135551665647422392217647221108884451705556699102688351232166772234726295554514695372876813131599866077933667749288892563585839727582656242036121567979357964146582594332370877241021097560695980801797550946314203601582340227791916365125393385578211381351464247977701257629201891474045331607419309716186755497356801375890236782892389109816509400990057469414810076018712167838735174003411388445237054539308051740768850453983905043846182719226113763658459352966654461637358881359135915913389315015436686632786761302911747882874659014645100049198705945033861560537302041546830832205196279762111884730817173906050109588059837349355612239501382063092459212065185705374682111130738289596551730990132856227138334450492865019004719870241214654842325034052203798461742546887382786312618624460447083077761459870838857049831409452048975513537976277285311867149436910994395509575425428022351042495116138250724558572699870200431071065690289450061481631776071089459014167719044073567196460142531426506924491988463434918077470377120213955779139595137138326176548356856029172968134113940324571453001656614152671115904531258785375938114469222729902575770814303811860996026375537208684586552459447927072300681603923805154970447108984123076236258822113146166342244168388868247299658157984075639760655120030659523089548371292474058926326353930398415665209390256416237501365999673670227311812149001754155456175840080787676349740685795152981694268139777689171238698885727631992472709841348125526642822407873678059948473459574389415094304177362203079602100085028572697063581423890801640834452407916922365265007294423026377048355732225658244573194886662499886466909255521119519981066196825307485423507672713333186212099753466506926422893708139415685462782869707644255700032690123127944583605238089519704915362364434665888887724756004239349518596448880355233258432711662609577076373008263635314788605660338926186011469552081632877185754219034147419586373949542776284160204147215278591175605660868298923578795577583049661354391116663768090633327286966151803459886045810395618647855110163519848324166012456284359023925424933592354420463329348331825174813256438989668755728242708035315619604735304984958224290466174308578357212123450485719926786415016893640747327971269552731705452111785645633713027722268950801921704817755669701193060330787689370193036787052370130539813889687367746701193669087456833873054229145973884586325668966824725812029361499903231510563795501792951087457319864334394378758539176195453427112103463856610787240720233653303193467634855263110443266604821783521157267677294911352120930625511683828398425584827485244481057781145710131603267382688929810162703859500179430540782254250291141932518816182078875982502807929992036383258713690160203328683354454208254422070384362781868436142430056560611139268069979738030005444729883987319135339343010280839516360622915196444377665876772189696851601231953995821885516155605397987863468335284942208498456384240666953841219350109073069630090608235588176950002603787413849101339082579533185541555075980189461816732649351298188737161734460651571661575289614939645151553591849685298205624504615155482163617913127654024839390959896394382388447667454317745739690043101303919395488474235866913358412365005696121623043403856487311261961536379932211312859433375444714131998125109804252345692630131439664632078441592816094003766783235072464483163529136045327867951197506233952038326700459467426110473353055502961617272137635437015702454519267810821313772212772237993148342183927562525531511594125052420451101637108128379261609085720293575287728825753900867521020189071551217804172241884985383566719656555562360077024966452019115415377937346803879321703217959635411928213045148216083413980794028704656730975706194122146598625693123486930824376222407362007814738892173685368312171458878025706414932657584730612216786956288908584270273591162042965880388536716533327061135065649812532679237823469680868029506184467304538636469439038270818374943162060146151331472042809406304068632413147184358006030449116490363483381358480369055753852036794381252095310222984281162417450728565067984893388626540856820493426107526083067696904401686770119167957935932404157044111440072448637659343712570798711493619547402993826223679064075042274128310710183936053630955423831847447537728237388137772608782732066972890181721629731362380815565870016358098206347614335357199454258006138476070097898528065784115002087731681083805966221681239630048813282162649626613828241275938965453984359335122912811731482940918521313152958757944780735312136770035205991578456041238186048280999924689675177159990261216142638554565743878910124696920919537056005038901587443437811253862210296779602653281348260573788064230053453086314992019733017704773864367892263002048990954290548220902953220659186970210762951087649472828244821702659583971060994152127444502849803694470373286933020696960647305117916210691515084545451268769156603961960368671720820102613330734760477214202915651764757551264263963959031773211187609791849688748504816903075193644828831544849756475433529954586310300013839399016766352298226551032414432664191665545369050275017161965725870938366333774517043813263573962639364292047167286550521847152745860380401416612329302515574080155007346913391117876634415475944825669707159851326578937195264812758475772130658679349877603435284255580363291722125330245783750801757133313823220230491556808819697858172498031210511814825860961517687585098222813620608592206066941366311834422738094251292024717187918346338945508001734824976706848802330240354378400887275648929782880686042066064223871984107712628562183875047720200091320873516301765583224996468817172542011270974800467361149802036263396641960198018833230087760345023394519483703613174733178030433109229135234179171717804173271835882939330186813589757301153819338370042455904873650212220709717508402353348210555335362356749452871681730009877259136882826230101095794432358506334356452579741731892145843363882942470890210186015290440020941254163052391182945073321742200148661749628259811033746720802977844647755187914977312054021672154805502310323796313581721758854837436865181380864114020431277463972164885467022784153379455822509516168532596958988331626581147956382640261870851163395133929783031998343086390152445092781958987051101548089908490188141395889127292770098747319096993295401519354022628688323159335472766693507463490383319999297578170372399674391137040391016367457690521223927471019560176374904195409907711365764020996133107315258644278672533215573838899556535900075718795808439617437556678133152711807987179815720105167251503023729433207449370289895315682044427804789949133265867493311905668597026309555224428204604802279775063727053829576402503182136635756515866743548390470609862419478326098076661463428861411948416426924709847974672746136154437709772319564775985351192702243514519070850479800870283584447880470019667027514215930168652142102756049339733943086496292577264295827706355864652719673550696444621416121953380168467882236550389591910497378018887014966748645705284983915425852737497341095756874520907996546459042150720855198004502091846329559601801403689281918763097131910349977396376147669521008409531343613158890246470415514189583115280178894616501289659105671718285746055187208370298055167496931676290590885109646535772770240882793915911423468182459825730432753507934075263829412043254967098770347170485419624898079604552816577316270742698709149244218993354891590179676053456126265361982113030671773351492919271273045506033845144211325525817358580008360391629713884302215359882059338522341462418774777834489570773295581633911136387914101373143885285815058182638985977416473743583650309328920998575294928631853050670705393480730314668875183170960046487558515782534848928392542588272803517450679247553286595076109999450245538153504523406393145071854772393125691706216020842364140852685378484548652082692063799131624311140516844092810827450811789247334976249629970707996930379543196213933356947639800551207601532202799532082654778052022322983654133115048240568990278933369236531177898172731920415912011695567804652266773837297504148096246946971720217030554893617815408871804455549966630698701631086773955477426684170429766551853730133964587207436673759941503608118900227626705702506520793584718108511506149408725188499599229580439462557685593490584482953174785318038136035308769057767251800874896462911766571592329478823250930094328045720901049504266813188785913846496733323129763033579267724077754493969954175241915647295764108286927945844070341325611060386513294714750032542988324567942376576297010170379820647293242736944218510372580787427279170950901155322151386494080097535242939730325351809943441482742282953316781489499092330082501924809934167649868948912929317181986200857026371880423238227587639231893377140330257471035043337457013053994032971018126459930924054483605867239434893048054870550829130515256784136531507291039318404325186106862540552909717184081483282213400712806166515666822372090951563535007265952065187294875554678843142878738923433445211902853286859873871204982193911947814639983243402865982550967232979476002091861892031290142284449592800745472678115675807398411611922929637628754262873939181166893458011082532960945634028416666239655624452259280007413262334301184135616810531860941789865614030174396142062886592741167297264437710673715445117612421782390425635298231833922525421873151440998682130588380693145905645844034009165373824356255406614581174473337809741508049943801485538400907948923758851819876658710057926807390062160769417109767144041849391562218411208104429666969667502836312429026442764580643275412063481028451614636080121602246537757418083576176295477434256937766177165694031712918609130038410431436026669274329182131627206912358274177572751116297251320845840041031891011308839435100310319321970071870813294420730015630368016821945179331784508703717097202840946650762330814725949324032399485642761597128609359148681351908555268730429378796266570119184177542702450414462275171577683589233959878284496655616387175438174067301445637450729173230312653867403969851371701355939548421697621586660285402752909197170712747822211615416340340561740589841524013837488866038892816695035866501073028793493467586065283417028666635104041284840061090250426446608161764206285568926308980488576090774633480884999714730008277126890596344100610430182564567661512071282383998292028553168559690319462319508696616574555312840942616734846215333811961204475619639693658598814199756436238163736038597715748572343185645834057955484884864990010606065400912044430635419772982259712021853276391312566704106546885975908572823858778505318839430750123423748714979474180324202276383375498715617599611789544407513773097936666598051238056626021737009492849047177333385340208484288782554405485178972002890422531620929280443866167235695695352222670238362570044902586447640102046069277431609593037159483121349675233048460230451596193595756479313634230174031823773910422306549362288613853354846759834772199409352342413316285427437655397937243039368837653794115780845097038017209394843428702536146182706938513422912575474632995607838952850020933912328720807953616825698600229447761765399488804731725204635352294826518234588107164462736840635641804380951942717076452000066219833023262048781867754246159437201379094208270502650436296917999475554715297556317392394986324344109160803841437432136735654068884845943660832193304817668196422294712159766620907499708666149405945099453049214610715956371233361907325166089704763393267741666616643088754225431695117192506421192644264342452741244320015844458368612270353124435545552872093282990818273223376585500301724754875758215233258368867970454374699933119236449255461074756177521865375302794207477301114929427642750005638850404579353433260476828638162129612786749164495180154396316083137865293097792759747454090933941876413917153210635096492872487221492376117961754846958961174960463008013941586325159083049487348094115810122026911146132536554754965782261366615047209264676917368646802465235584852498588320015675103985456225672019503506220695891009137757281048305626492401937954706405619203939119472123932103280521618172741095264962554366834855465877919646296334193052307033703063100278066240028668891777288317687528279861479810476306306160740936350374079868822630046915703336053046589653817177932171411576748690323015940056423254513527426846392445672158055157237133785440844838067480225711468909807366955813282148073259481667428245706645510772993708967738001279086802977191359495356271529171446572237767335557031466910686896266944134242394307175432042899223312606191757615894792537310687070222276600156337046859949572309278686176820086702467590988116141639631485351155872826197324978259011636638106657039488317658732959417446493738174462047045524789478821711296762054503192449291365160209218516924808795746569338103017695056137580833776201333021699114864675155823455304358730331338790109366774075037404108645326284585722303804843958396788972041631855456370554960419709962278810231377372903878607584571401211881214886088344427557655804532602578469863805613998281644389563943917936159784088035332832883394482899064777873703065678040620607963009610755462614460672468392846626129443301790824139701039540086491627056165688813545337598877024933077469599011195647594555545993524744753880829104045166083689071591972899091558664180212525956182276365207188454298549691012192451474367970458511984767193673931924052747703738467659662130091583536343365231111689049806210038177715827297367079224204627186433469201978435042926556920115260674407724020834126364911885641000195018505363137783813045833852268005130874670483504844796290828552347447859154139834107831508357930283647117003529309931886741083150919336904361144897909502853593752595609676729109734744262100430826269854133588241173964986785526417863749202594870821836788297905103826037172439395799907163014821815845666471425402994503749263629779177291129953198858280717278162013481612782880456381080590035853943304883300504196103416403081684292035892798437606782559860917335388459669372418641115425823513213797838984127318123609864206221574289704720918410718134478053446027062700774323910598245031397333390133030676513807999640218034747914036509068423979602845793519530606979780698301225989016717901270499819235530667176942003218270713420667227522025589491050106292942211187459671363456581068714754157224927030523500082892481816204792325063362823396918571148289279341465540850958077843376817579220494438918479760236072883770047886501410864061031987565059458200876747212393942365750203717387063949813167975845810913095901552645528369354185088792201637220552770304757368470385087604501510178877873658411649537088985196579313912595417561420252768470150641425375629998994558445054082750261206357458591498437501775486442170190350886801834236048117385666778650234996896492813759383205785316813603163558162301932243108422959947267230252505065865274222651477504082665204828034397199239962835601587018209324424206318669709582980414359674946852981634509899562620902074199890166061691170115156135637488733504933541257692978447998369358487892443357992441344191727454676156992146828304797469625573450779245591267509094750755816871409771450221920159712519422068641337379877909985437348456680771949963939457621770339080387608974583667610873986424908700953778563421525519099585725475725469177533759554269671969093167639406418218251756554016333311545343158887581373224946409987838279059032268407038798951831476131173003742044294675695056812196164733515275170882854388964874127678819340668526103477245909494705153108864584539573690617932068060541488684033127007409381560893521977825216823731686387277375887117975388783829944952533091007907556452278343126668601369422035970494126073241519903329660344137317635741926711041572610435408109272973562376853628596916854924508412239498829310925915732524471204981448737241151715924363932160537893009700588250472783277020101887114685388668545940602742206136616750324670544295152659507798277711595462237730524924902182619696426572502758193777107195540022165202684541022642668408140382932292211396233503380792015058769773033272914014117340210903128782093296234100237692475829598850030633489525683696833351488889258335014716694119545389255053378251258078156148960268760419150315253014000381366151774021518590592462292593990745313968706799561691992564582424027844077049300013878277543060110405191623520138915338891230984901459117804265971629630567356005242134883840616084367612093366004747409619675541890674424212316039556720156303093113857937492953738210508221074012552949627607512113827957568006107164230005426500120881864942303655561597004710572368801360060090433645139462136766881663779520282709699986110804935878781743952944913984952612876088771016890033378776032857970314684065542741549514873192930647987437822429321975946660277502884617452808733092830932209375005587877091471942072482119010355399208897711797858666040244206032847963793705211336107713302228851391589469303563712514981718074333107063312972326176676154704213182366006994916573317706512417276505658709451575032067097526865112859750991905830372272067870086912222458366258332872836424495581493021578846077684609921132137942036811491152009819600089004759884025616815389734887684407167838365028088493687984445402802445577071359162288452514101664526595081832048348037733998031623999179446707635270451228906088664548477777090456063637166502773411842559169465302100789967261055406600733489813126421141154069268048867645632852234264710004271909249317955912831954424570076226402109035708635350137702931265448454107278342020766234468317635088034375680069285573150201194552028053982220375532140659771070645209767018142506549691912427767754315940914924568948786227004836326562924642563730640623856145938642329585013169734359193570448081209746001348941076952735550733273942688628170938147253774550648841974528091472853816747215944341838541716040492611359269509916184931193125826539023918503403756048465278864221522063013276083296464369677303238537262082506736598728332120285270188363467559116699461415917498588455368178507867250841940676949507087457949239417215671439153701908977503558935085907961630453366379355020217176500774781414166437142511782932240657235662033608108791087206013757624986105122036032557529652740388359749824519903252982909448228522964931895599983613375089799740969698907396907806510875478183538571820611733818923921932384683632866992657392414201063655378709573802075866074190509809543691214925821648842779663155226952930521433776122630367801678160564602771795783457036648440261440971375126430896184117990649803645873783955688071839792776293003315959337984303961557286004611042483471259022671139311797032296351898489848597817889958002093822271052714393154467942656542048676413607803247127034331670723016744115253349313051022052054942867926338223436133802225223221460561686598225008163133810819712227908916981057542213127511865912833667193000333132099154546669729658034537410607277067936769801480266400061396829197802562832666476850586177591542538733472654993048411919761152218293085108502144573271470678000717836081112518012658841676319342392303192613388574334225418592175077847698653725635545018372268625221736548545461985543011001651463576985463836669084722270423477422712901112841823661531098894384176493239665365388530972867310602173116136652921590332501373657691213710274810351472895946584432362728288504412071816083297224178172861479670051842524534145068423570882381252958258886833175860114847330431651124733415012175245752004299888457508809389987354762308361483468434856436332972370820418311387095418901804380265825213478382757541056119916255134712026924908371102554953971427654072644209631380715762293963836841801734125240191002139765247838556698415433341580622113726601568881461217647257032964966917366991878543182412200751201912242203677866069818947934699436333431219354170275552959817788226432412639626312905566671465478517288719892278549941180223334982382814436377011987711103203242454236373124286484358913174337604447504812747326411206531450614571754494674047673935128431965275314514983926010859449579637112923778940264951628161417651612496376598784182465094129677649307543907709027721703866306479689118436486271371748560033404620703944444934670524462801982751231549276533309803767267652898731675826488865812726741628748368403658996028879281709446593850576177259897028392498826472323102741441678046023109170467635904400292054991606812062976792745082598667287333804562651144570168188203409279044671646947141410502622244962978919066159419545925063793747771913895490737649960167646806867415377908696910298624074779283230395811056612515217255975719404417172246685490907827595489043980585139539861289645177347685806594763001794187441075308791224948840398927605319288224495473110003052932853400323641968286209564608907288864180133340133941318537789090495400922489047400134703308453239214313500129016639195749503293907846431163046731961903850338247636396741366724585505130937955297312677079513950598472431611409283311183607664406897600114676178989455349094188020520926814831152553715476121389620738118772543668634308209218561233378479620657836184165389392571507511546778501937107876378698219571872403380305501121121267627169196073001079343211494401565351351361601291359392166071153987465957791313044264182426235203606613450239855282945934853145031665367207764473500209650340180867995941105623010588675159625494894344722328822060499178866764713605613190469457039155452109353475625280462851013789206609580019677012528724170051015657957178065586653994006467046093399418127309288370834744531173414094090967554606794920057361978991347963149272126864442467539496694600821681764472352181990746740781265168490395218029439311484288699751482953846494310335225552860495767890387781870564651932808202974134083522537468417838381347196880856622362566592471128625275686309142944708701708468090614060065004489198990162828417069292189924527634550844380452604718833433002394108980835360764304153097519008193565417194312612920836342186396062638335389859555788939594087447852654682936265292656136298272186844978614203390361335929541606861122115958285057816462775282979379339819318095807362062878014047419926127931123711903130388921086952658430605613789221407585843335698071028071434653817802343857639955612427487337909161591257696819933140885406359564311022987612691879878849370000013114977142801872688819825258848900913370909404233989658782363294243077673240013932686391524167672499988287081644240174113215508929865755958858170160800130229014867749625563839228815246621915316326880518988832654658627666953208915777848796349581240032903596586162099438308629589644398004476898175512086082074549693022524097396617304415011638934793447807203736931887603560978547018624522120111205102282978410940812220955920448281786208904163271044966069726895571833598056549527249669556627925700101016427411691919446915397643514328245731977860530718636621327118838255278440931420204434448344848582787346092327090015451025554729403523254135442845899295093793050451112924676860569864094655167512323082698376973475911909976171520067997047473150406866964122605041669545924598840113730636490345834616876629766885822345617316810214508675556835196981811778997432346603445547129805944263284338269675336554008592514798414196666620910318820868690984413284883421622718069088946679725396905776532687251120723683265260247980178479864597582292857249344811027307910062581279278446503604240224740646517909786363050259508480802915146324050750094233391358327202643447636870115069424292203786891539749354295133884904754634142009820140901981673635783972947716679337920454121330404907946075536176823859158489640593453754627256450727674229620517724916996935507160681959767727401821073999763787414532139479324410752681011668581584755918572199858282879809754165506535370025585823499739748739546833082273377443616112459907664787482354215126710038910326537278430461130839867666358623763272360254106784611104340703881237653569132619875248314605868158755183005721828617127821326866368800982760038050482444183604302461315774935054304877938657939142018874671310159850589092983291261700894893170240174227536532513697431348291030114577824480496058896712456176614819751357634110206675058747516335630510741235902634822699014262077302503961389837742134969240666494577754752939811232317659942640052246211165541798743018622353395738912859024790662608799691635296166826037112462131556242950217686141334619372889739336804608068659320951107231119775877256139389146085293167060753246133926662098403454463128883092570767015493619010556296971298324974160165136982012928146783107734946389398851799627761336918745257769771474226562689909307112923505463708324149177695280678999467788911565248408046140001389315725875224030266472436223604685982789990001411564824145097929815513866726851375456830199427650306468699019770208023763142537365609197901637326372024597380195268796661005320708279418508768137229450547445138818905023574330425142866801345950487262649591270725513048707690880450440152976273042399008208959692350204109750937059463886189597861269799665941325377733422062704149514298220524930154447281054340198160009414300887120929638813156451638596796707464289541122149976060738268916161564778734384437122869411150572937616499749902438327140828179106528776793804251488538250316130925245113325908604813722947780648151208405614116067923687408590909248679901518212036902424329084339575164853833150368374973266257501425703434795180541543052522367742356805742828684506701141374270446978334881292953548467214531264201160704909858376264361592143008115974177206980806436359681819490188891422635316000920254689860986323848829582161842110597788008469148634534957420434211056478218525560478062709034105290226246045511566360267590239935417805300329693485710361183388948538622938564930839486201877620195569880920193061922092630834312305538680437119737577156123023917953926199817130995834129398894443432103331149950128851540750900606363074593081374142175980038285849623095037691472890647106597226170762925865514622681722279470122899400846553448380788314203547760715387612935685206516200514709441998178315772597133940641481141986365157601455420355460883401580774549274380369642727738714349834846317686606376069643928249637631151350559945548029506276360269570044021114227721166205307874346538700773352248178362576028704903188793057155274498178889470226190518615047051757849382257484397175277905877984389313662327681194691230223427621548388338101868262599556182252244685866764103644891657490334766437795194309890019550332021155312324431814698425140624591686959558404809218796945261582710775524283890159702102531019415518469844761402011093403799429814408626409917271201812066217126022406339080880424010362860048663982977273018641879816364120447518503214244803010070826025871473392537246376068253902970099259863719910295456199175670784300241905912200462827356877788042282617598916130235338508217309621656713699945677081287395709200820254262542737791174626178738489308145522598965962617209566112023193564274923632514081629921874815911192545075567249658964170909177814624499054154515449210313152320504843216442731707642830047714516368066152502326141411623245793277073502736594986656918365092288114515987778336560449872850601957120851280746469062727600290331024317010734854442643496170521225548484865843314204254044650016818044742198660283451263042624858862073482319753877470898550075406885358547970316336958048372373900111601851934632653846564462971850620726890567257866617820320389877518405414093714426242928240132976669878772379020857879218581115544248460874576004681214921921233859655964382775230745810412547329821508965001619277750841373158885825915791654680862656873130372452321747048207609538983237546755338948860012775013412289309183052518041695567402275344956145634303271658815121553010031128467426590738882481440959779307244661969272602054556901026403823858086490022821768459291295213443683503222615989034383135717126326758453696832269385560351360992636603295154370852407915511259417862783063042330321822375730909354546159846020136374408415794499480434787410868587876558146815068716682239729463783046196984545077226020803293040521154620483366597627886542702948734444459799380266650002187889968885314789362728924168507410690256087911462531041684872417477235108472758530904493590560473871191991326596958488851292959088157281406437843958326188940185497183578524924345789277633251254823241140752141325817231155556533122756290581047197392952644970622889408655069987961246053738627106808474487778272941981598357038887082122188959415813420766747381746783003928859968817133064631913293651221641879832420145493028991177412352777951984577890119922656645360497117657857258127875176685585190036165752224245383613363164907408473024561924508243818702754130437152125433464050373352298781810065954946900000529045847989108250978813207862843633657397452372879151544965622794582440172866964031485654049912961116441657345199737060217731440673935520582989273082147262440654827721676212917686414584785126424790651732793173548871483597838696018096106554980351464305774993586414220214299496539110730811021610206404049464107575881235849330360705291631864067098547578314334407155021664893123424242482803092039864819513439151917451954760093293610775822984570161940156149886023921164489397814578810787176027265563242353437152373094917147396481752228307532120684886278109026645593675381203971728134133322388646704175514779832362476639619719022529090540950246397525838904693070275526224579000742399664562929098354346031645638375221561650112924096050432364854163846444696251849674055698013980691547714531840791958755827045107706170749542678111153606008222218805848865645998386653541967854907045600272664842082746331281531985810225603496913956616047488636799076896895093638070416499062878383732012564598380476199221788665658968776486844351893693861944175918184231204053848549197697552383095060805524357398170533127050265103370076404999590643511366599639127975511025602154618508600451835277673948238235202391559379561922280095033490003588023752279436854229371586893902865555196408810570741105301182394529726972069649219032269904437131093968403179757508801757981716051192343505644879005166862933979295297467962617269579891470650862597918833605134013759056188210972842084749913943769359809430483208740094966721540545149183236590842286346256546123295233269713449772335522661516274993065481756604089263809978498382479296707753855890474934421400183989037561863779075717748039194333613721329497218921824405175116482728010159585459410738062534706047158324614850574620317788537028592429288582498977406004610363949388188014706325507231946950183725640375939592729132062940606108677155197766711617192485489883273674076715046115712742481438909741978871618521426243686875245981186974964392518038651397708589021733785997480802495328842878715481088500796431924363444004928071350410857918672730657412469745712776778842811848957455233224715997371712653233961688854967503535048208198764984517634501090433346033723426778232393137031682152131555551500699070577382159555447374217454758873645783797807510325317556455006088618504106591844205594972102404035026678825072333850236850280487415440976354225961937782080241713139496132051480175019069718712531645294817322252168100609320717233416521431013751994476959608093644682129775269060683124472197614275165411496864569572157865398053997647614400063515422304244927419355378022465702015485711816761376895286746233506220403643023701775458954583704027578411042863028159525451466877731379626498104502413322584030965980793464793631907574349444292456204680697279479253494739981607482147766715709543416915793383707619138292397274296107131466846944012827188229929989916202282406504215470907045478953936423693230375803007437009761586007355039419072961204731805825169326848975792974310137313688610555048051903064803798085417648525349572051168146906363392531602068756796238019188244651748882456947498294922487614855726552148226529325690744009692401356109530877361829262517731847970461632013817884124186647498891343966976559127182587439048928971984780411353452636475204067646282696060152600255265025226508297991724084313201386600964913758232181449921877650859252064480322775959057539730981231992799606391705488567645603421478756844959238618010459211051870849326237714890323920932885840858125378715625109753966985906982009581841825986192269331078474576301359219067420030806059389938996925442011001028274521883479383572534803626306135172973355303881235988261169221060312154327428977907615501827441479533265482616518858827746320792451337077702315108016368967796422685962938830666540379089187882770847919082330725705071244745028929913830149680929088097799231274205241271397566687954529052918290614661403847767951375278443531106284868759405635730970072261498710021332744626513160994868526475479633772074840046549860048541890683629270634375708428168669844091435025798448375002119305025261895606190522413800406942929969251944947497395975697122326793757311978881784000491321601129074984925527322145115259298716576990387612160957887635308902793607858066437972317017376298323089237440839438585414169039416693198773354659468084264562499515168180863014463603060119172970861981250687760976642033874426058852954579720894051106973314131050711362460623835221006569807423962305371783784015108068098364407939612856031419285424950419073712034894387170710458331800627779540006787207381017838509578273933902152112185892818879226667411610311025573073800885989279407020387302405947694657833869687714296756596292457745952424442562189039021426059556696570851586830664828494685483487158217498883708343563091917557256381538050539310784556097239792851210207924033741046164059165095433769607783600122840859242458192091333519996833631605480832194320965852142506280978081691346087562331170733703760934785507075108984558711744876699711238066046897484438817293974567394039322749857584994981535734224363075636490558519332911738538011467192542760803371480031552092987927642758621887253955312012817325907504288180998734731297881228161984020527499925451805990890428477942014200420967354328757233393041173151442447333085313288164977737644887133223582911831111267272268770450207551156753112436015600152463703536478815446238024137357096104975595751268260937106913018193006867084389319967050413717123021319246655838941887917842425872085394467775555131863667550166390528380894850366113566785128922181510881791613174679589437332169654159165566765531788301175170118883207514661434224780154086834119834630145003291992078316377169358173803952912635305316792762578090186396358122838631948027941478333118954904579466137566759883455081306459217824759575026735486775346595507630860364147092036934642496284672574092868484503803281083016730831308354714692450277863012542345311814266179756240291674834572892352993748989848082956234351771073612172683374243324343688058341454816579608920750483976364243690935245360562551658046988983824022842773466213340582406712600725345462119351674994780212359897706311227795999333175972513452384195200433028325435214212676612613476014078555399093100901424701682865958489289093546012018502431620913339015356606086673511565129708433975493721070917742393614794867347010649606307025813697630719198228317746886407022593337292501475334138772488756702410393724941132830309038712855413229465784420079218635587797835871018467591488501305855299662145507467905989818401255393960696473582970481912704275484495960317475969608165662750221936721528718605721463038248084203324737406910612733248927940338941916677947770239313217278627458464886410058717215036524677751490422405463536428990119262354101597795533698064923835173476598197110363708808426912445057959711508990658150025266258471880193828441306286756421997095580219813350509371988840868945297860347725366286004401469845235388882489171427682484983516518678269751367624522951714069836534573306454653981967035035888048525051455912280580556704998876198525073307739476350271956099619638552028809924810915847282279408079818817113942208789347928010685130182393650375637649163046554921778484985007346979312053070113869937078077557050628494106981550828665224692283050862166660461562982664601736425282945771932980726197444856256771506860332961480904235620905259143557119954566517535720912531789816358304658396142473107677422415352656206836146219007786935095507697056848084662060744977400856352991674950655950658978704704777861348828413312543692455577473464773085172824746151365957777547877509175341740422521314246378326298481926052660132038847486848530253807596871906840152913085587735256540964190700829422976202181039668216454139642422881747792180765972280994089206085601529652883138233211511851587061208636740363326897035821225488480909467940191568545108210222826746097041798549147434801818456449330378597688238916631155187277661142857000181848202430797149431941891545547612084613980155245342714588567331519675284563161299299843999761141811849188451728374270678807831243483817121871539889023814102062481130220317240860271003747765771466727198594694556292844895128470850414312620765072304607876287733887327859719792971309922096399714963890109989853802657126185497723669968007992159158757354201756240220485921067839621076592476913724320260265253039569171738222086119502784810434578076577012089359801110192214929165856141829256871463500033284762337444648697799065222421846414338090552180003228444469345227834891425364269453493382109500146855513430949380615102347815564083311293778940076241693051290282560434093588438606013241518849577113001924904903593106825121098461473130378749947867587584527268770338223921897925744169822815842088222893643670114027376206106249794224099395052889960955814177908362514656431341892819185083067786872080646099266355008256135559897648921711253307163776723299720184352371719426614919146430490345608020969380447988486325709292731768243174161246800037598682658649927892672038279069210476747004450829373836379916653160074291778644194670311310675417808015721404689878045434149227988616796971949894672620289182809024344986842730837489585141299470458555531363213135136690042775333126468744721372020710241710731164902802726388705220957637293641813955096398940055892443259389756495261784870130469079296654750381765802467527710424190931973311036687721301589094078855294362052866354701276306299879214681319061293842835840678229533384049628627065898963981920694164793224756822179442081454455856711576159016408510584925082384696070818574928710317674782204935997569879791228834964195505210572688706448240030587248284276038711554197156806437586235765519454981067219532670379431154610097201563950006128343412863190646299637336772700131921947013960532551854955754548534628011088499362617653244402212060811789669890750095420720561141324727711325447034482961674017444750619388385736483680946572224937150585120319274762463254527223907766187906217039051774377726398308717234416780719173937152302685083595837721306544694905174021406216372585718105844234665821384021312571373913195927686818285210110998103258236323924414461095225615234895600924293347189657075519949796877120029763664186301891222470242724614030853900030280053298803138420934104772932259139087289643832158591439009012292095924136659013737393270893424169358110433289152683904830005937715649088018619209630913465209562796560066566391087471927514192294477965505245256027469107452339760993029968989174816386752498243828790879648667838326264980639985705113333893567461508397048293175544599875051288753042909271114372420884889753682926849150227534577554159901070637647461977712438331961375502973789648153870377278643320585855214776106804773569407335890709567452414341000944731911215120279411397578472973351251855948474217859216078494422518958339511562196414387944041503126818987979478803498484762603019080167188443747398072142329366273488333452148282923140230757717637044338184189354362987565783545385202812106388617887496389970948321362624460967333301872501519044957749115116819596692941049358245634259297071201450290221486295090399680312185700859209623919638543288501149461995782613621910779344580743520284770030795686716866255112674452396644443552767932532600189274725753257008250398941768743717639918831068582018541453477681532253172804025482506650998630297032346557262047088903081488146406227450499270124968401196969083952182329945388458592577917075133979765637782800400532893723117089682601577868248214966002552712899817589350517293325453972212144518335189462446271732166453429374206451885518480573763431990861548829457208817871812249000551645074123335461543572938912350833871072664358693683241739038263766540462693561505485698312355956574605214069429594147057989435208105702704159207356801195281054804832596099963220543621681447919802026781378034686449227681860364439491383399417143667032094476009378491369032725887547991133093021150593538507404773102414473060587623279575755275565598849443037229252221788117855487031851330696240714716665487083059416595287051782546192661987834967626811449936423541814027734759572615748336928265579243837743673876750650079971760747183854521548233583502673957610446827094956451326688741758909577757407098300912151770016137452295658237402000319709526627814297966534029222789045471225702153908531946511919474291927764932522652070583237388746074323980285562450124514492090197589966499003421507201644897809861544594362844426856323567744371540165558415295707372115565618713695279862487199564619480888112069139027726566060155517446057452630988893459768404429253009076834018486613120961185759992699395596390727042460750814482238202813568906412291419192965898210638068068339017235348426521170300960275691177511817489112404065819336519009819288670843888257015755404561804439814484056940364281162474716678949212842041700292369791907775852051421718073203006465867341709851614882614113153163679788414537823554550547718782767978568419146067964385200390681472036732376018677906478971517604504616700434590097261237570778792768193339225842206857205601504921037731011236164252331343525569030772886002055134849748945288527174988520040387014870541734029056564358202462481542611388705303212239004425410484581053087235358634302147438321293493906995968066091984977930482356416382254044228468661594655470887532734314509240605990168546920503271817081735412078812393015125109893390313756840197226493526105164904361188989145821391488106793182558001369027824824815159459275328439648060526341777829768689806586732849283327063573486974454226372122838250684043837434421363879081525893694422406264662827554677434227785197840381469433548380890301805156525763431566865647584248519483148679478534685186458694842750214295193728398551025715409832340405631379493784272328507487421228302640889319219687797896904088999392504835187257346482038815162128901312762386741599194800755197534669555032007063349283960559533992489547052961066236172078637477545054830047518847609367511923217600046077451063989479774241564011717587806729372538357167470159649572821243027272260440669628131463228005562825221656203535814352116090148880134025014533359662415285838045074478679840488862280932637575205274800719653383838044170309087452952876196309274790180320417456345891747459407478376898260318005066727403703263660415747259712775643526117870840069795422289556965951949190874993789077851089447999833727310587836878003456047810844169871544431009055290451631676025197975874539025738280799589047456568327344971364723358573951509204787383222339610872481231334165044852406927938142044551197133842035304567243511965628380383378144813550440096259577361984793278699941102096266467355082051015089320229185868840680225185572558907350477903756894044428159415920832247080299182262604551488403154842790919550094712781127992574092825648115731994111724389305412240056322802341278460322977505129379527950284506155133587065459678138243084713455447385867676642164609560286283979212954706019699163799095560836706853344570337714467227114582771621159439065864118650660182827678253434809525670566031636103792724534221305508292281979804075878343679253747482211502193754670874374679773953913009074177380712409694558527042956179058485357904648604966835511853253559812764403590691342025472077393021771541396367770235770235049140605271492438782955031772451489508320072004263598176569384836517750552777894181035052021095923143202474243998019659184419161130941186929355242523594170253672108861989997702240546730089865606025281293110853312899455217652221334226886101919044989864906123265165268039182906944852634251010131949886761917445670462881183508196981579624219751906605111597119355618676192530164412799088610041548927879747340351343557576103442370708254334124077859749643018522942672404771133104608147653558004589450153609451878230497984256882591464675869657682657808142453193608450399960370176821221893956006066416145931359732106211299333727849112311719457183584907108961648527346902956941894623062562283910991369781485879692744298598459948593388485660742636283901272279097453363435948804377703027266890189646435118314325474979473465453047469001408338114371067261228626162790316114277794088472505773395823884383270676914803581307579310424945360261771993086203501834809254363575985267385138688480992079725640543433257308324730423234842391053153608072859485969456825123431916690136289607576659121160009736826593498160035161315384647011192951225375341320683606269125697544725028519705865784833015461169732127604710493046043648454278242824121156328980374381951542841790285168116966687579438346801626624464195704399423728843795844011702860517509039658680000955361982043688699164279622233264828711928135387754308034345576516729820990008946072898842305512855517134523397282922549955514340209964407754789430133202529143232916868574665766551161977794565569423157665477924763498416202639203281672828364590223625868180271821079366956291491273063734006066180201166809925411940857495429571111747774765290050431675293880417550940014960533151746378126656725555515218184908688107392386506277641640824280829177657267465568599633155213732705554830871275843242685183929555441048507901453573593427666767854233904034080073366885107910539642518457806459713781800783119660851872283210249672706899956895845626604547282235470256206483058877061755059703184777597884434615913862729886513763377687034084292477910090118644379074802472515490907010420088059278039500389417749331574270334698502161492503633748232860965761348648108351805598504968181318486208624166207122836401170498731124348928514713740541361932203578105442686094095617629532872675540668312386556414929731379655549609401260464161635193947287450668503758392661192426820068833057100620587054885073486840269508922177251652676934136374330016811387694133091034453676967232431113104129943604782290679590807138964622542491685635777216772009320593619947143440347541231981733688763248763584817147372730143137048583519152756308887210317135806609136845868721720687110375706564075543192239620539644013797656192626460815678243157963023616279345975837002045747406328893026219321163894187394969489338577178846761877569163950345838257898379257951661530199366440486305078241286636484533664725365518832030091949285194386987958263324429709627811840479662079815719805139354555709901045765647318556718010811119110242677094229226285399516439292400599143470030709175921804976407806739997313941417480579821845496055500607748413906826304652680068206668690523489524193382576895692551059838655621665314486810376833087827175626008642357489782918925116294230389087289629541320826502076995145750192775965736501273652501161990266565037687009162126277883734280558702814207875909092945656461329093680223465763144755313672702228403523427613827620674465630884219788853623192608774873078162486832231780067209565752438868631320543223000983942873323404338558789187369218624375923668259510603653230430432590860190438704525794407623796559708420125821820286111032648607499040378118396823492243897825571764110142666293174456394631412746985561937435857529172959646201466211060623386081049949471215718243302007921450797697090959926316168939672453226293244813986981857527358551607016168166959902237647096340475254648434052945379195936335841219167987749216220747947230316292827183291891379553713426145830072275403992118898264212204836280814191820814378293806141885560453487142483436401145013513836822947660333699517750956146357132372072427978543488344569647213133094555463995330512814991144269950365129595437809997806975161314829184203573671557292691767495771403868027937397709092706505653312410982194012130205602494083101575785690690767809323408460360538442194628065009138029420520243174405137793055348144228789423318069226906769661750543291840067410823985471671368794064117993970170469722932558822295987579358230002234615682868110615227103375622159602119662248186436031364189730221382582880673610923581446159144223348018522496819435857917901632268974474974002716264552612660963981782036281878748065421408670926744106496633696666182392279217389607917534907305363437855431390644481992407141747479326900860388296183541807488988738063476836171265551926985737497846485734011640937895138431734243721624326860452271037844760335451874785626650691054509644999924068824645087186629758724683034924379533691308757952491758200490696743878830562982924854420121829313476881832096682910106289784040831618220348096224449334013229139354730583467672001010203886898192211891282056547916912515333235521717785855124968410741264473769227100516681386243416576171354455131980846669005280953610918017195414371726041768733637625277902987472987132212123041292810003317202495489569539203270385151272853457103517997798716684727092474605558421081918477725010806956979325954769561210726328511553583736809729670042496552158986932958838666509463434046294469432732497262511621219887369078929452451701756656485879417330538683224272820446106179028171945330613022673675722710226442612140789965140231985159825663549084848816217589566197835114981217620519454007336700075402461673504212763133578795293959111415714523185809578027327217328738765129431707910844770946737804973470457724140400804958101015976253869336993574164622858348391314745683393159667877648567720136945486823133734464154184393297033343927722370547146069556144793226005368556993501037046376729899391597729359708671651055340900394272453984634249747599858150193748837786593560824835487586445999465466290927326959773249384729136803278884265903087320410957155837770435701493258893912827282483202475691291142298175907071086824352883507011139364504343125033941313535279195722652902601781646037498760020350717003950746611209984937605193400606255942149990158904627379708316618674595975971220895326822394156238896003822836904042604756746537469457779137267121399990042692461891308953372954294938296995482600461410965918306783486164644576953789450222908347021811422565520401003024711917342804688212280680379528004192967799120322170575681753576884568278826338655528001492799524367870546853916154349067754577830029485359876961796398625927963218825332143559386089230168665489388964269993225461812393003761851581427448417362162912817559031493748865984119886334316173472914878857351868082280965535167461532922931422813153620739289165874115180783244565409088725874131587694200599679578067705933340196352011984422553318256530177318153119796658717656654130236462973655508640882549030161519443254785453043482758278822135989391863887213086286046669923674308077894911351556242887967999480927181354431896587123020918018072818941652740912638981184044382544631708016211557256746932487932341004429114347860080470661493298982087466037044420184710509139561646987381184325677004993313721185287078158835756854578083550090277732922044788961876770992756419386732957115417193747584142257452692972126911658846434134609033373894110375887713750491346334104135774048766517142889501727251956418733141015912895839470036536678985772083451152413342092326877087117986110601845072597019699949281669856903032766164794006041584278459420311476024289129417832661384408073475259037125053455388159708449180292927201652642349835304657676709771357346038461413197718978747332601809637626672972285597699064317602765351734811835111108141152744485170215945953377946106096194647584323917051471401128206517537248054060066973804917667940760405559056017594216809425317024686603217608066480329340847929803054361093867488592017984890775772797867322435265376858767557535299522905883062575412739454979519845356890212898036336892082532268475619383174467064984221347552042068006448656797019285863546712303685505485779234977663773977059965570350919875346348103013435877166636950912257838430031308857410872341644873517319368291392595639977457028123655056754797501439411338907083653523875483668923535608911545363866961591594336368411295699853840659930734903832721190422304282182353593154179960225797090212198201190953167394227552181931724467121931307619488191174755466135788824044614399362237504719070128494114196528187752939543729734328655471949395058111980609307732636878202018256249183932584266030389461477998596442139203006516568756862506840933907121470932882183146733380842667206351556266676064669250804510955281646716485685915332764175194787262073842153276477328286541654123858137249316583786056466785940407187607743288354772363542542889184292425822854528787913435893554560792462119959593377819245367184295785741692563110135638074231010689741587285219425785858924545417368062989967699127255750647668949030848361655723653914406906234475794227739835112601718111068080810428028615581297909383298453869362838310120445451781658771376507614151331999010819651221242759279863141432794945620350333902154695642799180309298783475437480684351730110731954661560076389303325640668533698223628665679089423445002909725860406995393947042448407265295771099500694244330390455263098536465521446847661088539498281447706149158296194551090803088081825767647011658791842849289401410474951960037955836233881655371788448837746648077972216486438554265906470291805242725034054529747438246777182648570368024013801249672594458483235192658737479583085728006541651490207277077161916235513087034989626989530885136308527862849455537523290035147319132707165256014946696545286996271510663077183585121051300396382234122674485149692189474544082381831651129435563580740563818818451446188103697100101216503636745843502081582268927165591415035168469888799629118059170816911263362360831863228729091623778321670304916950055729301265026145275983855489589115442837676639362584559540798492465329290412944397239582908036969170467864004561558054121897815158094801945600047726141336901584862223224838246143581366584392402498806969159865800584907861251803557162708426850165506299501408005910458409528612771515646710315881056476290545703432480333609413623345623156704692739579705157549303145624917500422121379895290063920297855297125101833249037457681433904923978688213969246529848463600403567141873232557099357362481195717899307869387065195311552213126728949864518469625376728013499383781334996099961359652678089148953658331425275580955781702127016203398185176673275292533798361927832212933741259802915328972120344396668009366836670678218322730803283903819619725693602110983331579855913424949105534316913200797157697118296309016742721963947940267885369531559655021740886394023257875190555022125969690958284419104693868945736928221874826388110773041023813432147570201027945871961686094418160370589761355029419099112536199223617627080741688106194402510713835142628606682810190947661280749655862772020101565020945837304411612380551908096040401026868846177945558182840609518166403130447502832429636850970881195761304791215422257584609330686881953987026678778509324997540135606839029902726116178748502901841932315702004488395002885440788296594109586717426159653938291760999405316989916630035381522739689116047480454992584200536078669510326378960427002397577260641336486534179390304924821082464273067184284818569807880933940478607866396059462524715407522077081150620246801400178591528465818802896133136627977592115686234957465176496081739443291714571393588173452020432664698447303876266357599669097839536720343607237243385433186403115611242692580821605436753030038974132759620081738721969711819534798222688058096041905433006512010021670709217467512666565784392059342286596002516022905086490034506357975429442409241880948471582660372297392953728186334339483556849416528711362711909194050517295840987801147301235650857667670974684489668293059789832609081907678076561148170635765798358404253076779790460924467739018223876792246580765254877932459035883997886509712168364100791571696733793433690739558280726293070123469087942341111011102162481395882408309319943138491304220208406250195743991045123846278392671443948775530546042170690080683345000906458946676258879783573078698863410466939987473901554933114689753406066863405640656434462553568633015263345921100580697034539494825699108027231558015609643199284294765051229862964624266022163776153961853265346338108417213338395237867929587966078024477640394593717505090412412408266048917397263540506341403241729824466957972244492753292323908698516354760706218184133930404706384671375403202062179972420743089139930905773693527668551670897814915514703945633185792995119297793466362401763691329063307989835397526959637420338358796145942296248599301723437112554607554514745727648352695844272871501926253513400069615692610441473380398406935872804507196639080936053023047653873383721536521403711809887048526769622901363065070595658754529069503855649155049454706827016714643820857627310121235444376522970275642886110710383602533297216161762182335017335014632928204957181432217303981422757421355303308299611155900757360796331978536938858973119115162009146473956634528496624271936007443589206280359717799478136962673098542752737486893372821627297508941471491495729776831121690120696874960276830806511266518802014338126394807476472668110551675617251316599042933230624756917130060841578062388960551768324383777316774106440790159021525047442234285547175261925481405851694472750128442985020181538122416773212980885937116793580242495516577989322132453337753277028627213655522385921930066535527612765085537964067925771986906886670439937403503436233501940655816686085778665090832157486821045417009611836082361666160746023868400886932399413103083030024002534508519226515947505883112071582826522883106265290194033844997935667044853372693568961154454906285052990643861737570686684597220317225972626321998423157061489755809524393079171235945249573318539979393436194415767980183074304817123861029551662013228347903378483473193095963998479732828993180838609153927929360166461643413081823281925585348182678870157731244184664635568853097923861373951798124224828265229464588114514644301465014595930996799344704740007975686667816297962173155081051012012220089755595630998868868856878599709805366261696479050250671753472825533672314769479318642238029780418620511608060563261223717097180727199309469642278962432935080874719851858488443186436033610339945248074976393664790259889321466211855178253544857578664445310575499927605951419153943622320036344485943527459772816649514043876611045892443373108654558992275667527358825148773781123155918439796689266876865231125144844680931582867657613385153650780876032445709210551818912644509308520793210268988811357684696557523482493515263961393654846251765282202857793803586619925278983243513406092567460274922505857455246745328092111376635298570785101543489289524027616045000481647669531655906938899963503496296223997661359343931616010902929140316140547812155037485234383314473097686318551576347953239523079673439995165954484535452391697381613159132552694452623156480510913003163100897234428132957102469171882074257322981810709958207176764099183829169669199086903490474353508410427807073285434598808653986669761665888224410066431682868998541225504102230584001984455390132662764217281215003266903523475518095935963856555507866784236422642763471891593441092491861698190713881296553195503804998694829627682826679123433338547025253259637006924717728090633119066876281167958850479065072809771932185729220471394933419981808611438541089800288163232173209513747983304072823383693778530903807513888860888510936710766617620156821027716078114637477406000578911724694610105211165279042083475573955200718708303119430875975721986159899089985572215649935507708957651044051416168594807004085873685856561815342001852771282958236743175746231269448890134055037709375055192468324432405411813440808315202038872891691714401562990582629599052505354119677971597130897911298233289051166103368331064604602771581532713780511006192839064843689602014754085197545535950665817854227061548051031317435781281057982868182424234282615917088070687193965025337891557473574262313198678126686695944578896424983626470907198786345604315528256488771192438178112604662015279631831155659072268496994005862969309618442673193507946801111254691849603984080070652402600988069849693643475350588904597367790580552016139210218810005411633053558875587885954198137734025200611912299126876612407526507680609311332459758385595592305847336321432248388744290899187063783354112792316705439001512125918814373377084622838186232590503003190556956281695234457280126117977903097091119034883834414381260214227397271499630404586105985296466274502060736901226691729865728098463226338666452644705534753044295946257722877094922120425513110074591838363934691426620062216702083762844485996214065310533862033617769618913051268861838582323632807001985694968671948539073250149715455255906332293264405533376990529385369595671604177644702360829500282084152242446965646501389168830572274754965894649016190117507144286305036754075038022470606268966407508244022605036936977707101897777713792098920136141501851343771641959289808393280646892793945946998471189320354380476248865017555266221536743832201067025562513050613954509726638781778334337898685730708410597569610820287770620736729313895295455346127189633430891609778954084905182773328591598487200119723684232104679474861041811609783646118533208273521816376448487877589498948624790228993837924992969122774221205889271541954358988650204675732615249737117359254900462646746386283276637650708456915439031570923783353608320081181839006658586755861921726869575763088672591670321552436313147211676489844951252837157237700449202988526717197740178192958663171943952343626708602577055269993187545368886088671012695944203420660990060491392977031479587520311615528296178777056643710924412377183976281203946359637995600189854248874416817109531637900681337834219727193514635365735765394738314601561167247951598245022453931830819237263349024866946650178746868765885122177136082830691658463585226132805566486184584377492454802643462144801294533536826627122943999473982307064258389698458889762443288400879473849332457110842694708131919784730284809245789410922496339073240788367101780110644207595695461778871822701211879745817854051645721844833943484076258401303391718057409996071670436616863040485734457875699415744493927121333886261183225027280006673235839123512472241407944669912189541239464853768645643295257121211017972435222790332264545363539974144404598352198915388367046357025798178529036138604240761349081387373698168040871509941879931046721361894546038167803721506754151183037809333279774723589165859755491970131671974393814622204315121666639488816842472386823683742542395709160018078124187735947138949915506565585173057280327010869985044236021741928955188676971581272011992466337197846635492068534742335434734443650959833478237057556718052284338358253557624407798968807088820650062533575776439162365491521591222978417603826740834189468784492532551038325954023693376936248602045439629612844677457323118444097508991698838898962434277765938085273353717248389768836098684131134404765369862222945208465661539952948161829546037894972957270440940005199464605573183493839439126011020630923774473367892090964315189422497061385791163896038794198472679747264134702077801070967238163699884345447003024532368080949398355669291022815582840811848127437733407013233939888254953272813040210263882585931591499119249493424543034739286097742554757041300799546518695084779423057635702220182006198371354152352341456120568154960948192722565890225884385281586566308048946661605472688603474598130991488505760076714538312039755144663768979083436714702033222443645851262244326072713000737367993766536965804017172748252129318384104984094865969566248235927917116529973929440530302710793216146220167849698310043373506285416137626878671195930937619453955855964516684686998829833611143634040424869312535655481052050223493316890148930331061779771473612386149934025810481313206114251425224012890962091402868695069413827015705358833124936224657509779558468049352006329249916790481645590279271946940373430688206409860870211079951214983923322993570999657804739120343746625181039084744128098955436635579257751710793790839843996677584939211968379781156400972531657217095902088243504128932864211364442874420009393634955937322236321949902726945439967834828508074037399383614923007764124743171168657832456852637768124829376540630244725311039476749387966193481087208042900051371267064084923454511751049823525941506506775623721071042978894205019575687332330041542008784995807397896946110901344020765704081907518834323461202713995290504384838806295203801696478639492946505545130134570130122757234949679403532178394670082305406111571377670071349495193051123284414913518219683853760672783771779498386882744087713263424991605771052298318999090695997472549090589408561500836654935573719163239132766875620304908843377197945908455301105988852933267100570130196569251674490190264384527241255535744345825556856017675478424086124025404917861669060380456295610314207029191447900925471742207854558833374975166303854327123665161098500607105673223820021804263983031831116194039722740825726112060838325044716290354163809164995373043322108699409769448544015216187246516613253519894854082436647027921753652086676554764220302045566211936806291438592722165088478362192797884293485798531786475983247539143559953691623757142115747741881216349906952978617482102525493282250043894647134155125203058243827062000133791498456062159524838538806934910445515278094193170565780823113772954962957995878982278669770016929465364489020319906536412463288525951273578606584114331903620529142532175622057655628078538274416339176212510714272690794140933438868030729758187503546760040123691729241737456662064967685604804034247347855275039266385616128487410016757047970529015344070762033809650102090990418824261225612866143114672396260427970083742248522602208818440044380007154701828036693603851253622022839341477638049775307274980778132643609039060577648875078244106586908509838984583062020029394428263708234445805321800092450789360998811892807625254507651410628611761122746590261289995982179694883317356254816334417399668634505876505246647133000746874792584916993198920624160092000001924368284308132433225104762048764088984375279706765955900641470864118111189537455776053958307335948151298352472524637201056551114133451788820227057252215102201762148178866873418901885659583159316669130413517801143082787426939799357394614356673021459241910363028715384673188641855085095921277878783325565250296420762170455571527923696164622834104627051289219110402969625309398459652290227796019011385865211509565800917171820959425738786969097510458594932639193598276709608762856332820011931216695910080117548969357378582676682681546682801311486708259656079820099642831086791397408515956991029220393210326853485659835599234597591001934962476450209528666828666559083715499777054292370899591050991241376047731996286115406042358225714382962886645241922855789866788743461218224626682870009554700283568573067390556154178997436615440706011576039666888100685168936861468733379371825176246732765727608661451623164774219721208501943778338945223175989922598955097256496983917763179811395986900166983017838221661545915759388421810201210576953940752840544698179701824825982251186485087274401311102125120524675582560308412988009899907473211065322789496706054468565410645253082690805005248263326456616071730717951657205399918200284728726185796288928469696941824139031751543975713412771515154000877893282969066439602304677576640241223679294957126176608425781196279391593483808661400047109944195109415407071684014587907847024585137780576150426222367552854929822558386866695750250291323540005589868460381917334734531789354300262547779683206160195710782540981357795753990585753650426604015864997800074340359191670249323070831641802436023987178797570841815683500557615530066856214725690949536893115127671148783304958947602388920348473315527125048086545740736138378582421455334573549380703663321291779963574539108599315490590898148295615177469250300679788344556445733324458023090609933192397515234102523346598750348307804589340135663814690987059976802722893093566272351638994001665329046693514480026235537475093854008162716465814642611492419059096984121629347090300064977723733543821796636406851148607807014182181328759484079452391251703380045531530080022309068370163178215987991566318264457655212214046942388309500661615903241772261528054621368341947640575233074276851826106104838259406510112441308062792608581941100917444317741386593854687811871778870530902984168565164435210976902030452321243224894598421915062276059595002679162185703918201407252291275274247800659205514798435832743018676122620918843500558783256031425198965248558546086203038850433175444948019077048867369434711710927212871938111335278285717152064966272538177344339648540765204403486854571460288269121269783974107456850081412612762006560841850641599006162994080733180848731938342843855661900886633198638348198628099905484081794462688878923104417956464488671040834455602941223683009618942654096969603112150159790325968767247604357449686055319825963317530053997954278136949512087277134047462611543853871382983571104819091301519770531768579590833507475207181538764178314289763963767051555258845343453504180565882270608205362526816913449915244407920273534951276818762262235677415928488414250736567318443334764508234698430077155100690656644364562023630202370077083401373625298261377358078689453203141297954630298211233647965825441892620123721325763262644413028058450509684106682515682979480331750954342866323059393932477484016159000871406882303374438959140087199542132076726787131999789769810359987870714172656634369555094479293986956852430483875227736036212110733577865213477530315254874310512786320126176952555179401304279718220183683316225233082304356967348183911869963037551098358062994441973434160692580234638510694874696285164586040687921960041556720846555973384055023459043013472027952273879830321260062057176257558261007252864583896713840648281624851275324585224499133357246681773299946782972314850891293290364329235676922000358788269211397477953423617737972060191858055310050615191545613054644564704144970483548154395361437370511368954866597387085784027229663469743194883858133131973756122496936361574945192567058507907912907312591788506027477441492462547077110688977040589533253841575117349922495198209301359512982395911969362768971000910913981715022829691029145611692309364102299128044797215938238301245523653745371459156957302104441867183919598375715714993225799973752699083437861899701495507916752467585523773355473073673908510995553495354504759964611030736975849577345238701734817208678665453165224877188151460334753008927007835372475599753256643900358035652081290015079257484079263363965028524277575725899539673265159618718243978718203419785391338500502587805949358848137190539011361678208633615500297564087363536860854550654732992168255762154184914845046913778358434439257490153277165231337746493804535453318561000094260314829034511420428017551944972116564005988241999488538908723217030961007386814280109349971317770913647808080764380204103124043206341881665596575881448150705209510818948898312630299695502649592846785452700548855085008973791269750519133791599251705404073732699710354208658000693752297370944259745860677133486416763853712346523550633416421381346684044043829794274853393110453368584879517586091520067064008288730452802133709381847545361615363430037017479637174091255756024858883195959213779132075197066403599251722436849715390791201888120192660301657423056783017215940796754311758156214280278222568316492246785317467527750616565109080468494748284397393704788789333061883758545775996157632577386908873445966787516637190225481227583726061709043002699016241201179101933171506946262597655844334850208270962987541302276875025747915309014702563372544615638613488802576793736157395725078051296125498476358251478969550400450498068519526351047067754635171036889062457717630849514052619182766659939446302010295455065870276503603756445868154595950874528295381401328126581763078691369538646594621471214116847891445445698810797872632503784323935863631406209463931607939791459352754885734020238343908530460011702987363607458909168474299916163563901059370745559012440009973270229009368816654807413958664825994634954202245414630588517892917192254216134919392969036806236263744579715213557885361608582537749057437138041616223074023900472318277948669181341762872565447103317831205990794566089119159653887788552732859067045846581440590566666160488156371003846940914441502768288977489056970389292381050544660520361742378484981571413249875539512745775183423724483565499415376132715923561675608668877563695224413476117372342909579597904395602258392579725934106913827366601547252411309484279054488720184986073975428519811855949995166221662409964327583819759540627047076032320087232429747503790293438761198295097257721258422387119162389778691210639598179428044975754637578255842634912106742105008756857833470179826103756104289709051147357487258993640785578838983928559377395077221442926293607846619940213268703749420742481737356362751784226033239728344671674472708252230102058388506366779631354129572497270274792738109001696032408286640929197153243740883299360595565421341040933823110904023985404419096297580444363411295718516585454301220413207498900082496583702851504958291896480826697928501733325306270381693847079909840033947512987076432080384893425416873769920724423647999938067801501836503262950406019844016789361040484773014334934926765945371736404122834070819420492411254881723815662759426077475270517903030274262901530826213753960297550133688158308096496806753440495249579749898068941590255912033303107667538895790755612527815937583893387133351644665775322564910184845213723363317798214607551015090129128622597892265563180154706566126807670561075863469729353521008235601110257655702811656430104273784722715747613103792194591070231136723959336567386114536491247042608226728097418045538183047209036823329959081407727898917640975024403319426697832990350282355453225686628942586665533342604746146986492284901604515538328005915426658991019390054330153096313537858405167310472227197079349029757598899439428782714648602053539225683493412450131768419349748572365200256437911266643826031121005839050702624112954309931817174879774621823543845116564266234119747389377046077561630008591835865091206650334779024825691220030656597490791571580544684148712160454780271606067158125535739640087454222352793517991366665177973502786139782259344049769704427704219964035043092370438690802374607240357544023574157509420148042753875933885369083369784100816909467840798533133822542821489666340425326311632288221044865473374042791367733255639638991906297118143870188515505338760027675361796933983335276558945458024759567908134535616605011830510587354737642257275824879538401017414978841217240842112656729382291207747234816854157864528097308340488441557173030696385609736960144288458345230778313682980848067013828830127518885345089669460542057587990322166379831109940467507927147285132462081961804088577047527783331287147813242697458412439558904354386596886592392063609358748704996331266383805529614936249336187698129355089616616564959803161867017710896265560916290881911467970520823072450318947291471911970199790143798925133552187165438976716740750337193219507855333155545435094799573244243428233159171294206251729669774306109605470638223880546481303575594764127597852514582647291226711797599604619420766945105373738177797103470120043697873625593637066193399136383385712564559056239578763575395633300145609014500669581262419841788524181486976743992382889878004495073525835318661711268671563995249510863634474103180370930937080113594173954514691719215109165002712649727181586519213834595225933618195902768025944930931074766310138823784792029808591970300903701931072049911591411896547164600291388446344366467268029565531913771434519598947657961324642809408971975682474555465977294262027183586293491869509314302940143530947179355296494488615179645350980449607856646924176431342361058007344566258873700020164938452516574363184745895911999720674949101091150529962691720596480024302952542647397190906250155020562698475082041280473330580713481380836563368393262224259968164095557894319387985442487821781739668497298449239684425583142252879771829838434971194296600094039993375770749380756627063703922152535569989109050119710465849326344212062508675066095901188426980940219219903364116053624486963248771041033157264149397439956751242093042500828460086732148792230911908997342043547981638232706934986581860401466961591989546108929525140599773295132873914473665428108306338267658202328785022673173176090591820338304713352385101740237875105362206261413933243327628540784258036700694161840821236965832355818238901915032650003103519291427114442222368341017343811163985619333721685496366877640337563066149334494276148410778331722418539253148295446177538603311038705004825302106458661609223610840632799591452877774047605939553555904519283989433477002423363140321775759944562530929481778176581380514913762908941423243917849741116625800771627590780592876932264637896522949771359632696504198207268674353936673329774575372785766718956593054179990379033982394033399571876476356140386266203787395887309314605105088051168075031186840293848190717804648815694517839408853753553935902097404687447693043438732441903064553463335937018046054782546004287803735185477634997829001015100312022750793165034587546224858751744224980845885691114609296349485305704202869010719247214597613792264610852078213219312257892785598548996889241090752181115266964183856434949306716467115370167347374008132566083259078128662125076658085517023332498297635561366476209171115137707555263044607239595701654142006616226240321885374207508940225036947539768333403480586014839275054581039558208921140373728411389948029061855873994676979904942805800822980902400852844003033666148435585895340387498885023574825457750576005491306206420635961432895754305058510033174492377920761044233482534097154458848257950304824953757415173820343584214642162165840669365359605932426102125489956511893339430487362443541581397294213566061478225682376613908850821420113655561772247614835526527488500582155878623997098488353808264985049035263392609242785117409716019326438943624416507653175883660218944402127546863800193813202922195999994509446844506274618788662824307508704026735451951408017730223246883985272357866523165472049283779849880527832219869849052286436027400423218729621324106018826021787588095301638672164255002616198064548927676045848668820700848209386233908784804811941072914765607292846606713197084265518947183930820448997605504480830111207231202425297958227187788654792390037014824948626043151765029254782620227458410424621418826725813897767511091267823212270451494922041371202301943695031709560287916588638013391652104848539427307067549797730888064249681074764941895600232379430054622886335753981749423629863727764931473167745168365132216884372089397606362841189693705951359225667194750879845749062466929497176865747020584190403185887780315684397154644984230294209373804147683234421738978989628129383197111266420893852363624341264694688575130320133278147160838543085087390296633989196833354002086529592244641806405080421799088475407359725180458359526883384399135584440171956170475810295668205498615073700202215549134658369906265573764633212697158872754863546210868711051140345134875268380160939532643316060867280636577246159712375752390254281123925842315168959842392438461564914119994655624909872948399751748082726742590388735644963982659332082176625479427771537423688465086133232485880927238346243211734288516534174136500601469823322563193605598893251587843074949972836463639316096854864745341232993160010978474435556039419748756511829723385786822556515652053291704921801481222792008078986524371575850289317998823136208316676236420541184334101218827188700728577015131457062534107409480627252320184034517368590836292323381201628373035431759941092542001012989480913262738505453961672982549008329665100304036714436164817359584562421889253770937095086994416812688179997101565239735939648353306713413151864887866087064058421216193232545598899485164917390632060333341728376899168627189277887055642997212475191179771187893397702181979769259402723345047378467605031574940261178646219440420140852139467649850141848798339960410096348703830948946362151187677590733474586702876910313731309770780372513317373480134840518334328006639022328518284901264645514614615875060276224281575159411963148167446680808530659334938625982943488875909760196445499327814440643955896493005659031977638939326359978989317547921101392648118481859435405981444811121042308688100186922420333456954331067220817113059523269393875817095150340072123242896818066104560149639958622299952784078684350953649400215971362641169980875733894584622844482804128469771043936477797963816567219498978345881662561684680122533395602047442474250942690276179921733084189977364121399343069940534391391033481969300814045655389444675338324491517628434355490835477082340161266835379466228814760285814484257933493353066210734492866789407135979274560184730228137173325572102804040369313298953514207160548249401449359149827834563466935223692992568536916476708799992564762022534764563062084852261067452248356432781418924655224261527568260584286237007665453955980311657676676410855300603480336296693041364319191345926162590671693741885574373481456147649116278919101914614214123491854472139435313309275104867545966424535930154994285969048258208483445088549760853816554443731746987365278633065428222840865890621732239015151367661330181087787669793617981064292950215716985865144271290819541709151551356873060920770565758531059336071413689481623738484152526151266572469006279104918520034263038515909919023387447852254125857378154216856158895261039406116220129536609816711049459074771222371923482080130307445437945436788245759609304785950813864168045182784199024944627051546972429514277790556062606248090258408188294460498772567670298551740335228907916708136375619585031552162809914671937993295303759883009550179275549597029097129895191476702688999916610436321542601353619886905954464669581394465167339242685930997383440127097669911408709252781982209910542293994643488692593869918067503686189029162275557504888104436880065153616105290130523373336004257753942334326567401405989121133196160006699305332193146624171009635467417333896814604302196942956510969999590220589383473333377457348842129172771660744189139235533106732226224044886141411067237856603265666983174153135674304350360072331399538174714144006007987048026728817291585069381892057344306155802587755234185108058635003238747583311512742704302789634567306348689623598214068714138552626336281390385514140546200801334749044142888558516215256144413333992346612427537570995458819736209608885320368536032681549380509622735652682672981438880057924015541551778922857063079540477452146258101202372172437209588152640665491949933170263878274657503182949412131188009441810032361795019440247208051353042519894837678719666384749898009184156298058026601186845393677500167379638712650529746875176540761295137251382872532848535345934501564574519654554458830767568958028740932213496914860787161675768496489793651364878158082194857432631687336667100860693548804979984989042878443793108581020210448087027317330238458721541085843058362727872349878541197218042742925052560350789068989162090186095603105717976397283371709494086720957513541998830928387634449747672363115773823376123085496069638520172797452738426550038419907868468832578544322433811177936794190803394762604591037741204801479883658750224186040750272279232052830733778102029137873497044288587797038438632122569755245641570504475435841245970280131230292591725877417199607315497018233834186483571211742463917774682352746670411995336819625458047194948431625731021187993728321611546445200014843610365251508056681822921396428084636578997900995840054831451607954521335977546410037711830806120562303149523879705906286751407296888774132404755164487112788882868544377213576753841933282910822732639867745729182935114416807029790775688374849256159556921874861425592819894536106963877798078277831237440704335296083663361364251072162817281341719340340970263136626679214298978569288687886356796229063451620540626130949680770241250040541359328200995575743084353186984035578736497668914414437801759739254104932460030110401808810154958529855495598384803283011614529613452212830950333184747955918458735575165480682941953697711259383109417264879777956877027458473757261358526492302307406051883772095849151842406927885216493761536994217525001726052513371805465587843204925267573321419616122782346296064919786332961540595862337689052724123983164188419113809776113177272012254095791648753916554117197914657245334737992880356374749853546757070969165875469807876716359777234627348485073871376071946112075833716604013269349773125443315075344867840029717556274546575370137961040842685892228054632007561883533743339681435187068848473274751111340862213939633373749357414778549357328287709398392971171917540126801816938597688339291263276200083469267457545555665053270705614667063362538219404692302300237972042328881087607482069844102532222076933586027887860320344187036127474766612132233053970857684073994930667238534912471704744494480925395298207064002981463234690819994462792438652997145568179415128546582864284435226239768484056489352423325763249690763634726123706228326165838710982899444085629725407854845286647093604704264703861460523517871028235118163087069625645201412074879059772893847743916457723981446222596427312035611297088354273873808257961612840667444910828012879205893341203069897440823476979329539550072670679893035635840155198754421527399737729782074552037687993236412171129672579416471456194463712330267756432981559619646180764604816590975807390200441401988969625370398727033230050535937026453400999383606294194700844763431513920284613788400859864830697956130667910637701808454758358733570502399989327430372289497919299951002360715702022325780841616825874517150620690581091980716131691946565323269047574714696516792722845951763416051054019651148538531110357582441800910821221526206799875933385333126447118347939794225277958895446087853643139470812292081719721312184571808331995225389113633616732889888416850719858034404891449420878036579979885613231141127173703954316558678723200365496602570741729675267388362275224224190628819188340962739180416299885938251059107150699144474965694823701707856862287506198376323406992487250128012271678564861117144268375812320358204353852666931231139401259030593570613338089020744554649198517280302069218961373406663929940037983387008722339235568663140547309862705249576900593308476498113083385627853779703942545431385853983946459586541892861984913598566321073329445045772743841762220136711697999008915018859912400288272005384714776352590911313644036653544259851968892586523800290928103970717965650854064857020237743832526188481295055215473616613313211725021915290957375635279627149656200063161443721858640357226542174931394997554204892038830576303879822071097347154986363393136768954721363302244081088101455915703333342869669816247156004169153421438791428439550235085955210865856694036220076635034114106797671132958067955959789604309400938659187015717907851870434348875068763983769116305333192574301347110929425247685301862619153775804031095981940613320436305418346626854557311496156135122597922002586904626155508079719997580972339863105426736334591680352455400103507739949825378717178719892626360727043030809754325771847761092728178168897292239887310865630870246731603147873820230660668657410878942777920142348067220479365328460572318372941266848641089780105683671093666420281660076167378385351156859550842254153960604078529532827482330747852098084132737920080769652411565400729818764339991633736605174710216012605527496633287212347167464123988558488209229562019617335559895985375049880160309459062617046063731452993979064043019477743488629540410716587993969330339449030783468342309236809781858596855342912610941020109502510962812709263618115338538636105738165392954431407599389056303164245654005340688219496015083439375622285202876554609717837817112013145895171939613004930639276923336332847326870969512391499363740878685536740666636985939966799104143692414996308495009707579950488064966005596555624437459372790378898703705964253453928706491154358686180320609757027558148227844852238596461918396522920277722493122271481606302351077550271558522369890080799314807115754923802531865672207284408603100661881753745816807940318121545843447338356147133956681422801495549376835048162497671993473344197661420649264535527043754228621776878625533415593971824046644821440063395233078768386185612881991163438465884876799001338216353326664262858914872311655975313834384464705263266347730853984765661930003384787614451087422148240564855696891706461926311404817909910534722819117642356764185452217302436914974222171456151778583115327982982996807685967608064331567724658311753280912155280115261018530180488379506786363334832309762320937323214035340742714363658099100547335085574432239231472449934342062989991081275164715519872672553337673184291564889486072233314443159944921819675063946120824826309136804834551086359572775490931133145577450250940760196720225852764172212239427107682990438653290317952500600344543301989431203991620753805533086412015502776409596848037773762196779367134218580119539540750621988336474197971969186104197779867835430595753187969269418033831171088642832555292872005213808165122650959691461788976194617095888945639722596927719179353527285480292385365998417132211637385128738976603964144311703859328416408080885589808539220648056894523766708561339542644531865578311939289702669746251548266829859594036505507304489985528183242915942058135386794569047002569758947605673919829415027883254533108145184515064060953096408141718379641734795279076636541500803319423239792409787535719594196363865171558666634585634936280744494791481598640077757977775023999127979765216785290093085805034250688966850988485200213956105861077310426830778955922892498939251896396856069797840876454346494245628522846775518160362248204415034843940395478930328044164010189165164599096832170876563632602310983312282370914717804199840360260180474658770579307900369650740834900377844683185397566855139234510659057691421985709778768652377264950437676848230858680294947726105621389631769246044949056377711913673830341377919590880862446348655139200924251889021798469416133626231799193555853490349732581424042608789705167557296650895097681942642620581916000773825552787881504714525286215987335584443287149880775615714459575035309447229744039969321971655178892875567281305758931968429713328591088188651071200395113908770923410993303208891405246006670115311299633392375348219810811092312498981151851093781586675174158518051370439526688820203024982329072850972875939276793125947506532017120819571040167404238700072620944065717606752386326794596498296545334633988573387666256118634933021064904606142872279351761894202764263447118290607917446019487891485691158249169122996510853104663124792142653486265765641279610381567926906587268937839277047511304735332719687292842168308875179247344011847290300496757893712315200770662688157036797786141177991030524117765326693817368792495195907150777003950328172012504083878318322061479012344235526344653427502285026636161141000488089912569028866905530784379358256287726353576348914763776724080372518160758826713671130044502990272561997988105487549115210409747397632065303469906082970250925117435527123761746286099278024849114717481287023335309483739854900264088261773607259941996362567291397072157784978287458123186997957143735453079764631155847380025491968035592870622044511756413638471565779272263965025553685338942897518304583925496357866921662591291382498714628645757906684593209637976622196559211244936460738151488384155955929760146028485125849007765186876666060048780749361941583593502195092215696767923250244923010944341460864994837856286839569764530067967828866299523337633911555234865222350950200071014955436457037470686513581491298159266072547443861039401558356781155911505405578133423231519970815019104551062753219295619180972525287880937758502603803513867751662126933217919258278682056949384185583409167244586389738108583870774609983304404909553955143843527022887174434468158545619878358396824413936173471534705539137411119356155548362568531322095094635488907808219323613014959075112618363411912292962567976874317643312171669536391866801433140206116858954760588019273213513700017044485080198144302393214069297932639476869745716248451904891324222629038035571468463808353936788902311645868318072823422364972039300756800582018710390700465598006372914370290486022954931256375411011516915339260865295447841586209849871422266602515864731997402363942615916357457883585015884187529134421816512555255295280541584534126357250010230675969612214228916185959426987711924985344375158138589239906052774840775466375576973655826411254533603563954571935694106140630580505841738576808955709339722674991491703566190416039668267455053315552851733540453449371290693742791692948364403381552970772327241130280666129496197280987954047220735376225292419804836101565607606089322348319750153384691009128896066764392622809906420598164003170890203473615683178733012287991536079967136433192009498638122786616232797080307726584298069906311747196076568210747975975066481801495467935204332846502092362509715253547774063620273747426390168542355566169625797107808698837654234207885150209182146644128828588587179058479101399760166476692795160903993632412473860232184780244575077155661520403417194100767380245309140286168207125485597324023167622115209026032828307434443455286903420298146528198245877865644656433108569985085815453139022137379386293388228541618026496848462646154529900243542242300777594940565332892881189097405567378840189693790835732284122789828078610988511429025710655389061476931919659223263076247137980686121023705084260005700970477072436617433392680830301486551070492399790131880342994639935542271777048498024708430829433849074139315901764026160341176593098148492138521839668145086530588720388239814049082914572224531040930298523903036935696576758798977678811216485899533407160489258987765485057354529025874533613742195843392534386074154033654214549860088278235920301997803838163166214850050230964537535950991808794813806481198311548224094256944746334221968857179438683258623967960227027439723348930809214294866715546385873577655745516438790368719071724636209708804105540818006059005156622223974182919133819478560094205296152721104701570353390380018658814143961859747950019249106142831322568862354466864319168749644199157617142589569624491208658914216134649077516042622730424237902208603748063997715946565926423414307599080375429185779186836711847014507087410917703039916212563669138931795202199546741830273184508485198263250316675852856402975207703132961054402857108039383516579127732040445752354582561601926634917622486916312682131281339093545069087132910322313874916986582447186093719417209572180634486545726164676479874518273126662632835359185159476765464225359715716855475150443815366663390520437414986100295719162470903752925796857336143503650581478912146494718552340897699872650701826798152625533722416123889607845574177538570907819245115906295492057019161077364789570972537258107160713641282127473831637918964337292331971994875795707980567198374007559840240044329929950913029280366850396723656433433428752744249003805061940267135937601708813769914319899346445842737243591527288097290321661302550524622679309488527345482950912724861097157792361627874731488706790554850157193022404529221777254385651900075295284110486696238040188549577963697932452807435396866719421685289072894573983496398868154162365717553731926128876838904879157197040244799622167282428923074531841194367598114126945727011477415323433390459019219898747085029895515375927231467662800951032683095318442914375870093309979668761417749146846797298748736961365365769346177548188200101213712850633654917170465077906949428165617615695253775162105263479433913246216857566272507327687960907113090498469986830878583737615418526326084442669280743108723019299656258043909694040290244114585267165785939769231540076293024468641101107043944861648794088767643007270297914248530468363729501214475239219021258281088628482983216939624169235779670370525968742277608436946139798583778248037517762895055475008434438519837495999049546029841246294505241951023375589745419955559863698942562733390495313630954032465537105899817163710788446427269787440912865565977082688079715566966571518900971911703860594653360813568558583722009429629189616523661486057428804943976250856434677832344874642756642104020083594269464428046555442479879453309946186846262661512721722295717160586488356892984208619712189037709809370916662385213432667798513166378248701996181359857179440311711613048053986936245238913111217595538537208589800058633875665645266062610050207439216196277572043803648312214125003287377567471079387201318039745712246443864694145814111808240551133938560006360541788459159503167598943134124779046308722331583830460686130562434036417212346122103079917130694099506231808890984849621824790379488209021813333974623384271801466174071237189784519191166730863271644492462773203746650710530507340682224430153324033799212859418853575375977365735435308767583548804416857224328641100745224169687698684666886098744911476235370790225587869095394184801094525295546911948455332148996695744158322410494136972214124279401654091275741945682180259299755117999646780723496901054091433532553862950191533284098011168672592575206159379538346660687215178178036685030910564385349785681057870011252965630153811056487482214605466455007353810005865976845888230823599697927154237892219700608584082919842995850327241490598066070378157535909201534628740047835397485232768464377797290940955957682961644016793561532696963390405632166241296866347063113229252076102867403131565382089385085459017632600350165489255853319161113839095564080963017230497600920560355448850818774488146414418941003668678623759723932836446548502842840876939909825184553485770048832528031051560345530269615088897665313880279364098504399477562810997451528796860328645595663443047301798015869538194066906123124614142308347846712259848562233234062758590733013022997704036413249379461367886719616703869323825735451194250340106071531360311595332942163837410943228857234820044023742377436109959030938753200624206767937141601926248299666204141172666202749169266038267197120957303058621775775145661224773642341422504757751023743053643042539773765984922374763683176139716608593527768505940175047200150750637542618190637022997045814879151573706918463196400187737335444493433312773600525615734359431182871681557722529982273241572437811305084485679162382412415591762206909441184782184015543763692078180782919883809263698812847028316250209739585866979078119549228541263376686689337999889311290011713788726938846100567361213177740921227028993711510347908964516278658267048405512263542034497480307978361560254878168894937523165773833155272307079821453806558636363229764568781579655088328026606727956481267629367670679265910441406177465431288841914908638642035245399521846010829691334017471823964002716094341265791396662824017065657173778827954188516786355836279691074368599411960685449468270727041672080387976705599668403487644250186052524563369191152182558227538066126349578181712888878782339462906199503264246745124463009179943229014580198224799957937231759748391658606593125926106470613546131480408433610988080720148088321772167600491571507226112524213185830122802485622670903738008060435209886440916014435962224339728931362495425145016594843080109693720295223341960939003735372144741184181248679401945785605839725316534965660964323413277828418156818945291961506299168045975609013019147782498382629335968965508160871163602634118329309060081225127182819763401332149826532141179734974460729954834302135300610307785436011783255204528231041900872954995664574718326917181922455027138079827482842725350634305566721675745964983899121743593557131201042490870331881812332680273593701170042591894066785338294732423220207160440001340975351597861342178986205438285175578685955679244978518414568925676185662689212560787952801601881789771655874870052336080817718473818441102136710205110931257083170488393899183716552072838931938493661241322158475329260360246801664779443769948375894193925410945698247253759425237489475376936613968338858168965778971678923858821035172298891231819518117994416564760570445010608984771568106379449505798979440248492587239166715717884890434837385758893708691379202925330233013853682074038754081349831332644569256514282623824819434823535017888606932416941790196016785818331844042175079394856474640716656303489200615950282889937528147853235584497799613725101511002339903904812246354258240192680785904743937815151237598181211279825877489591568792825333577121998506453999119024590878726074738899642940022108193924004938428828070528047090153064156077507155239706253534192937627909387064383505703032944121884479461890082511396303694699430570168441889801319526859674705280175909790350182318928368881824053974566299222491416949955138250747130710499415207107636171539281236191931691956236074000249718216408884689729742677019516602855697717217435384283150446859167118484361057451630417446629698630019011418625851700551097875899145358880524605439468006836481073617726156179226043750036157202078977912040658991000679561013158547247337582187400650484265386205785108866087982852196939615110294149227150432202992255170882504984835260968980948381078300285124575835333472450064622264627416023752073309477470547623084243185124289005779095400102263031976581524862227374115940429078934865066849909526524534348672197882113939987864840769951776159305411999118008556317373749175827061427673716434724299929134794253826716775497718572592748924833779606425630131852514918966873514522491845522317444875741534651541377418831671045583788945003317756827103706630768356003843458615364749295664296140795521118735404406682050066176728264036813421674311274563035387884512076103032663896743839843430712899411956804773162631572420556914543864070885556039279280974255427281258460375912688933992019828749531064321665220059990726802832093342558477700185173934754862877833398703818362258966113190541523249520775156609929371269284857599852294178682553133089696581126753913474362502126591964085526960075100776498008371182459871661660524757021290584766236444308603712691101651567868458252234276221746013014579072896690772244778978155186774221174176549549612335932444717609167669661550934998242829504378302055982702799033616841726788825364848135596930745589719257245894458054615721991142543258287700072336238233359639903969308892526697456400387377037977800446179163338539532072958125579557263934771773691369863472447042119363799238908555499888031789784336807268618117339273046779046175833437845771314800310514911180446753434146733569207334415338559797262835691252750184217653549484927923051101931859988683132645957691200771597319324724064215821673663225896517652465268320801967632608299586204642050198319289883495005498140987665715415750672058602952781126731267914291037052707004844802711454022702162641931458409662183611423273526827170883909311168136442820948152579889290036894652736830933115991352561879364621188360130523002855037153468712459775836225834556104482133337303161950407499687810758855754236519663831323938055898139988009603255991937908242773031580990848935864673947613610117075556120211494658702275096753007133257952705721619276739007149117518475862550595977909648848098160175305370508965528949612024388301875448069278775557597256355850859439386709689242064317049865540095261798049454681349542817289565217188419814816156781288403860131240884630935127659314847346996564776003491157543952538384046338934194795046357525168815326697386701073763121014841703164525035755389730489680145506356652137093923942352461228418569090519474597075975253051713931885129800048629570175726468991057786126191157895793850077568139220989302140962044911242214565304193508944669748793981780304519204281277249197889983229525004956367525739409764365237090762223025727013108671037346414942392259637417914800935898008637496178647113831113327004830815837526352981454995303216658153227571166623597244170237531550265538798203586261952123594579322952025316782268521954501687763156567970900092790086167571303299988576416873339277305669843841617896583047286539559772772261025886305352681754150881126509620011642061824922491353900592224328151244352792796283151240036463429429140345624249156748200147954594863429322136214718258425099261891185281485677855534897023718193124847867508549441700405619343483601004108035967968215313174198511684723878078967421857535298283647934064392507984327475542146641498699080395896464662064345816324942393926846614445474158233615500489090221705762770410705601642737904026315375056963519408681127929241245557158399624790614543109106810972248061770933195148426370796506618693374841805496398765715781733031631609297806902735568156159533102825413356235279203990725973720841012098854942400979778617622923603342580342495621648045980086796908347499992890464747053670162372694330992969316942116944259233981691065350053501781960920176678221809707136763267031209215481825088863391758140730089296716954365533939718867497194954325324053175687846756358382590566485321352047426278154705705013508122331278803016888264176393772403608487033744870847134500698485372348060400828061381423906040722283418686504020850949482333856413336689760046939653111462745137823647698044356260264771828388754880662068936598102984370961095934230441495909245780739415598746251373306686503285010929847967344454802694640821233052224712806640249816043385737250161988901829149548788406618185811085936943135389749441930276557577407967113422527480214383382188215175864622525848791659228067521565857229719491123210239966665431035319905064860007483618177492121841252676205736840591992540229095695269230881232542721013199367441612111783091443273686074204477476394317629062311909512598737331161771999535638449520651670793936784680644104823617044699990236078460556786127322274191727317603338410253122598608325924119919612461964166635918577640070118505948828536709497074727117826446674623951847096454074091928630675900891116840453234422163886623229987111752899308939284765257227065474481027410013035780125606226442744441483060643759264956601824815322163465009503913168528845480999997539572262762787448236962413274487625518818032999764008644663447205812002465567467254589350155425497511047681681928947322718439288780142458764047320838810421927952776953258421143391543126733450083309768705637502149486702913209907004215691906207244586116804491318131953718178928287803306220275999556424054148205212757159039431370828909629340729862959705848998442917772383246816818077026641395494020807247844112331909848000637499634653082408097989401068350026142869443302823188824341582520545661425188329749061701736315549037110538287823463901268939896628418544869251229110541130957784778632653186660421020053159403281926136253683335355235874027359793576645786123058743566960192531929167072543645848827567775931719922826378658609384396366604695875938275881535321175892231362591285717380054615448588004628894381803174242161635854649663713238082023515203543328008649862422119581964749602196340409886281521039803481825961528691149838255351458398704449455930557011792159968902830023901358435393047174977419208214030264072296021832732002067579344692892453499677640514742151672153482663236724460015283725921396589359834331052689838560132446950610630791353968784615437992523634850863490530098069336313519227672510721541351536387256117151615822303870761830415363859626049315315579156008241628945705484890713531203375741215964467972535291658646614642141622919960071205701844222557774057380774155284399524764230916523671797798926410020298093392001964543614481428997291748892560516626015279716130441691475682145060760848539517678291261153983600628182296849441711047335516566877099701084494562617907425228874053967642309130948847042041205200285805636368692826246590745541981200521570523445278960101921013257360403480856636764417164768923039923622736898520607345020004993308688714320278698136709772806275256399253728274207458382295907062057178912645260858408314239882466874461220609429603044034894291931653190077822579694419443260977818133862806573402620310747258344924741332944367910604981948913411933346759416885869860558339167072778092399985331271658735254677726410490919566253809095574595542196468096906872765939589517010495917071190505884471245103716315287108126638569596820603700456679408813321129056785300606569799298509624501708247766489277475613630339872327389708060225090451270277470540990713709048777319237778958397495612114249473633331589091987673967366849013283268936564671309345920258405943135636919413490549587804614744620202071584348551559951004700225749541574899867855878429814601664675355082892514820803550299372193337081455605575413773964449973427859713553253941918655372591088374567253088840226257819841812354656619210846833533938064227612864735737491397969575348587956020837023983956803633272819060803403742619891907208153014228468308873389068425172085640818668768733660795464053927198234886394050095383852353888295627944641054977509041000144472788100051996324469413140575958608607384128018708178377165076687581362241199320641494593276977891527101419526847699550911170692286571723718162338253007784776856762098869681961110271296436543161557741131449839997566454843040555986760034483693717118990280015945632278973426984698857209607397134418558261332991942366292412016858059449645382876083518605075119104040060543772170108299019441260363735338944243473402220296575423358848408615384896925889165076646048189448515992058424177456128689570906964830896312902355118077621373251027146088959154025081370019352690278064324092170006891889038061610551112649130761738147925371165010475160876119408145057165579026405829684287785119961626398035625469979279997857574577222015172312510204588059831194721373820977230883259785058698148114269039120725090915111981454095976400274797338313079892489079756281908664102128185950037558764761015032767840583504798519139848703192730198224193226943290415224787813954287146961954225445190480366520178692326147779109270099184386179618148228566216178931010802442471508061553745594303466944355849413416112376060308153967549495586902952438336379065245569680496232740545095136907194411914743171837065813241252877815299475602243743717032772428518456689034346363424173396914403791359981636824688428655980428216349775148096481765908895147561367376088698272865818158328271736613120971766836301020247132161852792887204708708764326917290892429006931976552932840519821068081468139089451578477736605079255151433214294430197211552321791663825240866428627458686053904113487789173051792959690214353059892404553604457718295741655435061067349436172606662314104092435116266931792096511516137037960279781573625158270833227796495086698525403516420139567186763296018933674138738562757089435368350465105034568599041446251206189636103122362060032744825812251270367908175250561214342409702034957190101375817562932192942202970363452602718951237153870028978833272628652627697259022800603423030003249625057691629059415045080457101159630703964269878718126714434924454700593055756529412022697908978232658984329590548693343371231578398195904040354902200015567863456588049972045176024329508758807484914691207155307504899893562071070815639709229200179085035233796664124783562593832761430764323041538559780535659733485014453291003440164621888281663229394077042626588932793899607551482757166686137473933204771142860973928622826984933496688058404469704277540281103929213242635413712488881973905644060267259344691585989595401163111796483043154743057265302656115485680961941084015732612642621171750135149266742582230797643758123508335001074455961198867270961973808603484184012243965688867839545753901049823413137862638001391480332974514165985982640115914701443803281326391248395050788931272733121434651190446672296604462484766791768417025031385976784088686819067614668436378882946375752615309000402518435267298855261293631748328146462088577788998044395979490428926089213255584550824142182606936120950449010218903820526493832027786558107102376702953402053160223646455675986219100645904918919112838630455173723365230737234332920272731841563287069292157799198517843893415940101985187759148155863295845674543840441934129061793283267891932548518226520639349549859068140827369963217880188720065315857424685743895452975024605108789847512882155337937677743286916258874057098830996770030751538998845404982516938247812742003139053294006248931404665826050639009371157008427410286615060450308656332366022346280452452096986714551480250693029585638024891176607334370138162908603527034220832861033515176302917305571022650298328352910257917308014740575332138887484360549058163987257799925771589463002602442087079161780248043804487261652786094146317748102219701869471712771984915266412765918729494059407473277972107501366756657035760035451081356893067336364175691957139943098627803746441038073923120443965519256293864502577356526693230977902339907794156108916998208078644013563462850738762401293589213489763918711944963877926309942532131299054424031998765593128039686492725319909355466376753042160656005542164357110702053223746605791908782187088647406668458388507834835799631917262304087376099334700358863246345111259372474494440508399015154095894765800957316615245139707113337078731304478111515804704201215602115072350349744214787154557960521431709976629074875670502554312241025308808927323076571793261865910449745565431255759790883880030437459348500245715241387443156460044041217159567656111618635479246995414586492413122530244042248658302859732465101764287905942401465590599962256636314180849981634519612875416607730915815758084446202094776392900416936853632014058321889663318276642230640114310915810329358414487312096860388561433873983611430759774767927173894758165621264813995983300433293506826473984709511797873688570298530450936785082128796429933931955270558004957041985268786564970273199988922900999812356363296019964333634381636261639546026880395770731420870894601531383237507110071436750627583430205133055441570214315908886515975940777741754273735767793677308399053754440132469364463289626153320039533407105789474396725238492287864526333395647966558736477492820237783314312982971794356363580091071416026278736901710200107976003271558224882022599016457950921540268851677592311145848303303065562225565837474412763339663278451514932253505239770578914299943631120447373469106282858693937897246145019355395531122600881229839514740148347055177670394941419162670452479010587147609851338528328896738106205112572921257323479646578684699328626781019565248603365522791743246340733589043804546327559652666161897888109333360895025375594914908013884911084701451626259418735254750937475778469402720205571147965499567637595416740727101505432985226587931712036641722334897855060550505188509195767588055799246639861643766700988908576474942970881408475497832876842959468601548586250034421076437456767800903160817146193883787356660468363389430718501992729988839600484521927685555362238599434184248595529004162224361795128998738649010821385554363929726424896106609475171582381910081071415926668487047346107984675565695536346405426473786307046118587767153431095947444040803694046836390795024995142838078763118844349590996923114972343244854281494188587774625465477318771105042470198960059354192531211675996572023971293412763711431877977330090185882974205051126859250529608508905645766720769146219086459469858286756792434099906045905572390317725875448447809025132024716687921782269299042170844079937353921048169526209899275521867036705183788063409983280398785816670626297751835196947474017244300505366326811807613397523820526075960981262529859834455343835967126092105535058154963160080698726296191808615134366350390156941259400057704695455769861860565046948113488953326412244191981278786332205051157354772447042341086092864320514665081254229856410374841534329041010285805342977310677798423426422059882137151974564177401715458229095555930907469385942754170648014028731176034639881007635195551715014806811017042964434608454397568307290406510431626951274225861897700386515693682805071994151441619988628403304580832929171991278495683734400433542084018312184601501870121788114762981446158713905301359493751967183877763677749117544762796058322542604123796936769734571057436199363903484541942364844167062241566032256396625404636123571248868243335618047219433390661703435672024408449188248670411932244764096183642615215292386032961493835258082983629428008017843849805225382938487451280615814896620394014128557670725531256437868083281881450813662229929510997658429518202058660760234832935987420551687962974651807152446946568525529161693150279584591132370119420622420611667965899935141232514924336739963035966380289862120008308878790410920165590747919697575585894139314486276535438913228805220258358405786988962402237498431371153491136981182647368860668336062065770316611346809489734440111959359279255073500826323274770788931317377152099113296180341753737670033076157653857894941142224402665951260206807658227419642261859715338344825176333773742261373785908936090158547507886887160590222077686756032467890939367688140555216303399962701940454059211710870001220883727935353669342834965709854818761553242101386169880557355497665583906376495054482893596890488061291488393590401420146050496421477089991816999847601137159935336119837414155125873758148126399341297823078134243388361837112325339312589048440511978411057512933246776449133199340609144851064473720977181425918505501626957632302990395127830876112218528729190420790350866782197899828438001906968440998746332553850323013606583740293220037500847719985258143927207747806683935825043794558501200553562203250744253466612670390955089305751058777525863477718339301040740714533744473817428873809980747733966525505884897817359637467918550715091356563371883266938665293520630794578018880738677964031017059596846346554455700860524917487996950133508865479163940297949171910735643853426918279431072263460725354035738834086195464251984487562624070455811304705367010535317905000030709922219957991119065390475588139243718364553623355975686418883431712397235698889609661584665697677893398736283704618307373620157453800921460598368567948084981368356465728635414694362395169059531717104700090519663032772797428157255362772371718552465663784696480134785352937538645563025788555843417588058970639614710492868780996722787255351807308118046817299518644271902366264204810523680481143213946985123714644379943672807505336599262159097593256716135855148939805442728700373096759905507730374793810240332988845048174051418077800750518646303120183164227771556943432727986674591287260035739236293539678505173827920733750457201936189297212903811874773389040105008004940446283332736560322461907209382842971592209571823622789913441474750601547827561291097147163970672842810291649452769908309292958966573848778941648476044488775079616902095616989068448274058044438842808419804809426389523330907195794949768898571619137143320993041470735126995638577599067283373258388317574535498451992244471212007482767686843006142165929861567220313486799825759947045916741290048869410719024138513044548900942635731948501374730415764950207211486669588765723247538882789231562552224315336948720210378034057870244009970447647325698032176321967032906587479696987364651374242073261185645971049086321172940104515935886859043086806805371669860547000979429001501502258675226166778416015215504269693001004677917169142881818585514908641214752048256721919399627587930491653881477031457946445251621481418974085658998934457253172461508973842013606883688063883401106478604536026473667087909299964688626680831679778159157380642122478240006800793536435627122306021412194065463381100862776750063329447401043281144919888102273509182056434821774874984200206559449803766326576036475159051493666198492535080715237461290743834943402564382865477243501808551106304863118998465318866993886455630454772213053288355660342381988505269149205273155345072346332435342767780596713476026324708941883002058211051755965695419155066325287196479555219317486072353410691252027113512140128464126005030237792828974829196215694542960475920089923507701412450491435883118008403409888471823070773177030517643245640724462254437749079505402158685706660715089368281050707435236168510621310826196938169779063363029792907656706639067698381018578693844037277620715621110586259452905168590938755099596702491698881072628327839196017146728830674440311559740779816319557046575930964649128590790830721956631941151484224744070304559360056334223772326918272652297719791839142917686281467946661147875817202996909151460548696806570515056221658738176788572342723179895400988714611667324643813974995854663908616015080527204072013330703984635140049529677489997385204271118198881564576146290547358108743957672178594860408121077447846197926495639878640711892782230119412936721625435522040455839681316544501295557273918052167758792925083970771728838068554807033045730275216165607574628434582110751800646451278754409547488904305469642741202203705520892833588897896742290509539304204660794264368410603470725177202063625506542433777817415043937537534121067084563662600766110806629661809536191143734837464918793458960877827307096048568051475295291404483770140304333267154671756603688938892083985985504365803284371866209424406545730652635462777742408968163283916286091478420946184201184735971023820640147351588931775231610729058955518802694508882419643250574517943022152971983904845943264142236866462938720767524827946141140423445528751873028304118676289730064187505806524740666944462730673737956224881558746161100358118231947981324037027182743743213309701352145378947043177438362623465461071337595366008635985848208792475243645284836149251230144261811960397640829261335573985449154648059790729957427848428507621973186597493770798037298783512286855911506750329399237092803150278954760899339089510270932588332278904289356784477466112314118541774027686980928087747668386434746085924611936919256152231258896018825475156702546907829745303351327293566712633783890418215627673974240200190406599633894363831165907010768891606946624989271585429668762589033275665771157002554490391495800671409341818632138954866355468763954798135596503235356492031053017702383264764729941468242420629321409439817184732948452310573272530046499611360594963705661701135034768317597482189888245719088486424366956928079311637929944626042246354712079395243274064397280731775163949306428235114373121132836423534144664013876390098651116307337029867628753913137243759985113681576662900467065465964403958027172180587989344526753404569501838135276447242432483757756194637647811126266942299668336327202042815564962448329399022330252245155328693855116210054295208475280385172730847809892893204439229317465941964662541908422525492094802900744562260486880765604313072639892541416958529443694433699115074286597195479878793354432125611487772904038878311521967197220645966811484527623040808573069530163320771235600511827911621234676414078565518837672760953279785416212360313989869039655892677832295655166656015301606877744920239818028559113066746852458552693050128459601651655087422954831909735752447368776223197417117930593771461496365032205653889373065344674428642446905285179418043985640071809864706091226991774601601975323506197057673130215286870735357981375293663030303943175562974793496401644591921830601301257778665850954794469403976556672749131585322779800840049617163135740033488595659593676936877922307199981643878471114519069577696324776615424197736968316253388499085338325661523597000708696149843118020597293601707648165564404449818528474385251247228969331439081411712389357123320271636531325428996300588289364049172341643748036443229581355726837802825786569881578206288394720286296766311974777335930121654647850980512927048727843812882973444490268792208303968449730759731477286302584420786785828873575846082190118170614910784429823080042192886001992971893306988186756257422510557827727020768957092187323842697393269105792881810150600795764781256499641607866182106273523578535846013194496705411175941946270578382766344378641135947119766427378432655256039458049164042084253892384072651283595982796196288038518463911497119475428077336321992060477446307043034845321865525690981053263242448901577785422332505173738462412201626801399143744753675791953902285096406303790872261033811130870797688335977770866068012493870027837984258951809469120104027337003394213590354821600794870897719452839810440748128114071719675486247098247886260636627151153281105123909693372919673106005351660672064381181978230347195014572310681692625266847360036455941834921378586046226425640483714953620653308603249540612414184460970833739454940907780360890475023864862858052198660185561133069169603642141462919556069948558261456414248227986589640223679468038321046777913483988921259860273411855997482734591786742770804676887370135037430632954550747667375191135869140777708440492443070058903850783353713487774555120303198796122834464499833261420511602012530955122647185990275651322398822232891795140370239433750617832516640288958126550390941915484603786041322001161005413665036400740586983525780405194573700245404206737751470327342184871407054914053028195547118682561780263338915852494467390926796720584562828681609716875221652193732552461979291481842926161052033609888178577033365531202347381697691560835191380873528379627257420829666510274255704284919228630928490577280551285969328513054407813926414320083856279769291436520949454102489776149841593327293806301299800852357332751971879115671498436790758653717002202938165005682533740610338323662662356272775468309537014778160775814706240132549736869504485327332914696163454700343602939579106298102922119053572823720960990029095217803488729112176625115261129639580321304375773332300135512406055402982535623686479503624432806813519073193078386093383115841551435552283007726384466625921585789486292777600922545316650475560466756267717434324199117989366481754400703258201545369679757341490219928928146381184976221095734911286368339499893512037436609063063960023700992550484376795447462728508119351010255222450272617347102367932549554657372009604221759624802741667690839427697567243063131677644195145519402157568699754366778759941829591196855580352923105158884225262483349054094914305200521583591799202082504704181083473918693001056844972526315717614116857070040277206873181513911580536434275064108489417322876385483987611870228874643319890772951615281697096319422608603877524284405963316081656554897551353623969477657886938615999649702335748502677948809153404031807776708647253013884976501309566206083297908537818487903509051471328277386495120823057078808755348180523642789267840314968528180019962921617659087330134897436918674823082432882994508272500829403648099525107592637673454252237862056265508581370469795998733722345891138415172446445490389190016709269311385636847955153810680239114950132046083499295876017178332452858544030824383994070030274109409665855352386958458612928918121428825380729655672100925979189565653978615182889698140195801173031680680373758832161267888517571292455120712877697936484447189317966347570187939849095016926990305923202187173573881146428674942163096561791828124115199604107662376488929559016286703539602653012954743489747546137286676696820559864468844173992810871878778316345103807899385696823049643479333289696248240291797380847422832037798584636512608014499519782201081465064135123199635186052842368052376729788041722323983357413905159466826971127180969325401452456133783013289082134374704279789865276884356125680604018835997462160587942155176625237897414816286591945970340550335761944572963957791919087844555446310457185972808770356475432589078096002160702380009870212671691548747709444079793650019524329014744094483111020791573232826810930074872753447955298309646465349700208831186099477626678184047401444596805804821131167216219830466374124007865409710637705138891104072963395501133475767167614922339750358664872440439952975857096981720212527269605555391781834533881204342884545252216073711708079853442132992497848888896945659435498281649969500004900439242461321794803804741937534155412522328267989075911104982431876479024327374612521626912433352517344376088984159612518448462135609026163131638624644133912886093464011336751132103487902356218975577058100984161007247808447139935181522942229193953432749836796550097803292342405231011871247922649603675346806048784183725439534419495541666314919288693511951167759477435362286101033335448710496752481188285418489027116251890268068011771289722844302951555565205937065253329021412976049176036541945686842775020461297138236920681338170219849697584436088320204262451987793824814964960550902258408003381982152798138768185993897797768847773494168439417140433658856163070005677745374236092503377069141944166964706497247024118374009759640173261518482952258155785567074951730748912173830892685034422188155956066521840184737479496085085632011481410183649694859291579082186024357346771095794478079260305157352324794047189128942614893480334883158515415465795220210138269562123965161901354769336964343763294840676754235620840094490699842778286584385709260081604894063085176303215385780270103975298621891856113682507503473648882671717693359234265944413897217503597813690756426855245248695986996111133506815694892960490595091129432870772050998321244897408779579891054968020752075991410541595482938869664773371319593946014908735607852840025256336232451703211189607907309181338050415811345508152944021074761562984444170447460485267136251057721897789500261984669134186286201679726363590010591873470587291381533733254525251697042933860279850822496137517325181118968281360269605401073650768051605843786984307846986158358338410374264455730695824694484655365677048823920816038613891363599143232633611586453175494358093476903438628829347943467460409544186716325479999286289428083692218347524104471577313569165666399055168598603561845489404658710923683328961404072052162950289696241801977980294523724946684140345430459856331469542049215478783109210172635861917159908663065421157222744529176001029992905135463248764098531356590484357559171112401284766003885208934184397742236763455550023611999010732032909698195751436026090331138840551474670579618506764070231878923359684337296898779904519824575967722163762129062973112098436538333414696822716506983956965945589719775804557614010641770947163166897272693300877280956398823396409124184942890416295959487492927821240376476764793685850790391915213675252399920301724706450638060981244803181947045774791160786065763648576593594673660990426128591253118709053875317687469319928451380546061065949879779662220778858520226138246949640433571216954519138633389546257253977734215226360485715579718134134854064722242664480396168895038464058103048001080053486866888397332726755372524256423059703764784745238934205859774683953472895899708886947441454929249866225627998380968301615786483195936695629458500846473611042276928691143166326616368395488576052246505500717561184010361830439308169956568879276731925519689853672614697202074771692238476688554421656978767121122896961166134935358726031849068830990602186948232579981022720264772191398103468335083107598131291764774851781143380306170103988212791392315641697292180580464372479712373277306627063957192804876639002428811636039765641042035864346547102377990696040377644040621294166586214696543335263439417745006940839197258325243264330449479239320220333907110252797948767042212856288899828604708032645527374216328907259405495523792245315616045318753485454283093900734658589886933408651650089818233862145236155989458317126241671989469154330069749782348573804707232248416583201394238756915281854033606146995354593370861044622544867944938214711384479964221845685980174437886418672969176374102982812919105470373955456399281711492443534879435987527005196190661864372011414362814578265107890790066453294963210090364213915187173942152825269800544908291390693188973835665315259498959858834269903331563014842143528931764930981181833191466772911199727335736325974402678285322061548773144587278717761336837739677449806103453696880290560460734767615626713049109734825446777772293134110701051518980588252932619736931945315916581419704597695355091949546634988509297260805319646251728486640977069704925941461790716798355058780126619573783825958080015285524873548440428362365802529216907389258476506180148111352415421540407075031117760545062242309698534038142447069144591732678288417270868271356757054250904779289000297326071330365277111335526883134777773105363472225060574812240747385451385531723153370574726058033758454789804978702157026978323801136472126350264673839788293599361553204555038676085195410351110041021117758417690794646384932853660861392641343242278058870439515500800458901814646562893462638449654411467117636492574751465620444077976695612432112085961028426206339943089474111854632154789987528594104828698393500234849788702970318835900884468330340852694923208071858012630137379047384336306113165121109702464562774953553040374507051158161992494814585396415756183944520291481038440389686349777521432320152622809403644213714541094581243097512607731856192402597921386450746314424280628627502034434668592382961398722860917505079830047774787965176212597116469586221267959362192365473884494478636640114542351511765327319439211836955184083249087785088236013994688146314388033262870474561143357620929359422244896068085195250608616530350459631313567862373277679973291637176408050618033883423175209469416344040154185116630585873150562262320252135422614087548775782199029676499514021812253295060422187873035414288752328614676069386547454945723316575292603602961468618853875089368926551350151231079690024519041908631016049805218826933965634042349893694292848787058710451629718363198988790867106779652569636928622939304581784393298866758199939099609094673022149294129121777658744102877127786718618139611702659891790332766886841725960962389180251476052011468430342807194889373539100633989201281538765020466658666732917106779987021492619828031172886037024357350637423846040097029943032590063377685473715660910093893802246683953998707853282819761638684208545503631491613336239437330310273353678603580027054353685171514586705296971358959306100532885749346387343681904444336214089830404989885377495631350662229728994625459104885273779703674461943622191358226119848482333282820371018296771339317742249985601452222988449165160929034431489370193561628774221613596075916771513872247525203601231719590670180915533264554979731982893586092993484667466273892608948204043092153954782084553895557184978033978830706283566201723342138609216109329750619083385749528385086516782707863814525267804753347114956417528801800996872434169198605826610379516116582360826033245107375014741120076528462106949649007793269336263666776181573025620399919484718118170554132981015135397277740473345777671749953955485140850816481885957821335343005043104759560922634119634518846939830896111121884276886596170099657867325323035428389317450082146351417948316180223360828419427687592756228040043690310135501512496899640898660577232494352553287667272218343697533957141625995638456329772371103442261962170395639187322241088127617191978020493057792449761918144642423949927875952043966449135964388072661263398006612105514261653650909572543506452729312322682357067771717308546324404596232359142255505441207993685868438318285913969187874881364090074358212220949598475758633634381025765687292278390407520479469775214907650025828551085767044874302391155702689911185269296074367910123526230145481663208093396520489744345483138513563601384587689729210954103182892919322718921973403134909947060321505566790055357154524691394644935052265703038140802402341751552834511404572237165555593412749343119824797306988513373456693475141312221411078642838977477245032205567321572682644717299261502267603825014117941628906448444147801866688045110983728391258319682464094344975378069976277830371001499482447862179407109023098266800688249269584767021043872242875286382722872097627207957458261511600692117282289041286560489012542958496138959638918070885298538290861863448411656385541174609821017736586701918323589035258965396337360360676063118387972415639025097596762077713926818337901087167881608042640180931295614845438856644252660650784717597548266098041539362204782807419062003472587811641113755076584004832310266685348038614236289025461557875258683731336798450325114177309880005889046069902387009181009932106986547780419254696108833727532049894918319271230129642496625236428010412533594555541475198750328492344843857901441173797804512337919130215910942739874494930432867721872570791920022466975599832792038156456598068935133208065894082459409769876806418611036219524711446112254081932570156175551611172064111430789340478823221394928837314532199389058086428489827602407591174185949421086136212226854753010869870236393767560963258375108646078670211394748859858359269691783208630814529257071971182314743983425728936939884072738002068575627588288336901524521463056854714308092185453371610075316334560244542480339917526021565359316861016617043365380612320630996092290237323747943102022005846959362022541080613006541084305613487910549792539477479582024463917396971553479661908588469597021517357146399062482444279654635355311494761203168959831545234310915780086956655873180172715011012167087565666125884712745647392064304266481624417602290931796586809994315391006241989794455153913483506879087023369598016032143899628941587821840770723680193935188939022227380511069642912634222340891073946871463407548173871984437158095299401146839591326942277603918866550992366492503005818676527836454520070305983527942123919850475310740058585393693806974087467142700869181486864699778633266241897545388124651322030425315299626043685820031861354110163090295434854685633496382366324415937636551848150348610661294321503981874552506714722953694523861530602093463758465184442738716695832036225767876796810108677808387712046749634286954033905171213078824258269994221733955830743381915676663555688209808384545898965351841012842700374774598271196894522973240425985262190021455324723005029207980367869758063001334528562589894562222514060658449356068573690400253898530423679332279063897124580837147960513313894059167341444391115720430459247410054039942071751239615022060478998977708827366421597603926380340893973962568471274823245912958162072546239615479589806420253175079807952311207588752311034807545290090413447276713046469955007393655342482076419653681940149744514974567950569412125747004021717043584325476229347555179544534562438003189034354965771544490579889523364435099680019571766747147548523344051458502742800059830792673117859340174293434367585338540980014449459697537070853688690938987255304835060446435485493506773598316645595884191595500729134575615169739193256112632891137767871590584750052548521714303533219321399791023343806034156243306933017776427599870383721076215554799431519172078064282258513740610540934735835687275421022635406001020774763534804682400871959806499358538906170522601161821510384335267043411080679311477787237314367280114649352982664330026224237542369397493593106949693966672587648226361456931940748703865840128041590387400517175639296812458656050821697440289519783156029813156530061333387435087469868757944337934397715490145182177600350534431911802553864714775096916351418816849432941210894171353254427430988782407870017987891720063388286695589802942704059563232454760370061441723828053459512672985693132934267444389067426373369677298342977692064940303008002596024251419633177253746813448746383712045863870576556475480723357671719783945133695417690912167354867693902295067446573158188020338053589439262220391748632615045458426662563882650068650503171972757092944388124227486807262750219994865338504386873099035125848591341063021903344500511721777314853655322415851992449288629270237187813019295435337681097245407395778342582714097736983932404593106608344487855962197477492615209857772929685296352408495632470946799127756583343768847238850942155152360945063168130798461728176366135049430968341626671905469735271519942319247162844470026628658779417592034912770874214634682687913796825666012151352912549563686631059925995358425128960192993595516384852793672127122106378655594895191928978475884928798587676084667404958961552906264296277566707517531661000115179707959499928504683017250056528137637282736687454197774990155992317012991375256827517943078183353367994797244359363738040497446493398500369700067087044456101671915136463840282880272984746439287268301065822466348900222484331771957118850059787821597053645450262454015121438260139153297875439030787047662627034132531552878744919674214658196764432409247305770652886858670626597667231210769677056846051620370098500609659726214395937204577609202684355384595248778467608011734537180552579820029509165475887825300769733523727387538801798672185932409851124460907771260557576271135192771297555802691615520624550328420551740363256346270734195982165703644414006195974951255182428012952692649731645737055002160643235511975716739233735061683766459892716875300960386048619272832842333097763284256318509103721237040153440374154536909398193269828284864386071094256603144505477736134685765750811852937637169421481439724189651464660700158060019501025107513846112624423486557339584922264296911923810560729429543009870007617941370505737770435090350569110886023051462004295096443574815737843167513326378109215829046651320719044665505997476450418392154989941099804462918216269271821346632825996257835319748981656656065724367291818188988598461124506708730612693354377835098175011165384010534141456173145874342203047002458738835135210333060631671606460761751585644054654061717817169539948227347978223347588172582430427836508437960828766349761146250564594864369952308988325966484482651543405652665959048418891964203576856006267269707270871827796299298274750379943016704078131276505282377833013109649246756992938991267063910162302307773575669839242311882881889113218891250474857382005506315245434923379171004923918205491758184587358473237584519733193572070602373233280908525065444812327326677918073979514644349371650162598346551035200606904817960068393816623873365501079089985175739758171662826780947106284679430315769655064031275848191033515288528241034022738243087958272917995256966184339051350292401527605493056920861982630090257064562379778090336971438091962150752028656139674137093242634267380225892939887348854833394870962557185898710992068894329225285637079349087370439761427525797006773502397254695834731507480431717832422687490749069891936862327703098849323436560094546790683111686366264154132884214626556495623474528690429594981240596646383739985491269605691020125640696218334777995845063735458821116378983233014250135343016918937167545363772918474309945544591163803579652770235457612318181592095974542381945300861437750472360646365245438616055764976145837402882731470706786846205160441358525920889570856767150808007953282847351349738525652540760309140467377395461422451882143138531695717343559508842317477191339035818823145980534311922398461834132796142613895601177797897807176511350046286363534799048987737968790164886122568232649003643347486884986892081893081753090842172099712866706785378575587381861631906773185861970468792612380269896017395601238575763529587066532457845851275860154691031500943339819223690205982566823836723109149244311501104874677482398091875236711502826429435636054215368251164343612518245204196974630875220203505591976758245293451347935790529794173973375344324644165241861397621164946640307824836232194029872378292882467029474583928413673774750426776060245141684551390725854219606960135311874498926301922116595493501988649235498272635055100452840475789197998246142632992675322502085099051252125680384642142100181755902174466108359391655009564633473151877311399019988125676730585034773071319643639270753656642018418112730326458907388351520523325004382596569825495987383267484692600874551528365471124620283744439279399361702699763509387572500801227077124893361458606915036964592738616159612909247290222276212424934279884652533732435925465272824388084372537262679523131965285675950677581821026367896127046295229826731554214498116304164202650837266684579083884795011309608123665485899915200387602352466094160548620059549346954087858999390386432949410904559180193747738631991997367568565061709290358672539062467364177225208183412444969031413482032983528712012939289428367676074768033036257248433691772429806094974110676407098683988951536449293240937262299321532626942621203511986333515973492525156264899465199426447765281716750340022644059020475544993541041070013033744276309456720001040695407055091667937243544665452195745995090132591947256455505911736916935961848597585422856532016031212438714759137952224597770955777993596671805474836075401550647475157754368725477392914188228176672658220919011598981931836754416692752743388132680093050103257261705515943705875038394166993508231958426350145562614966666218467017383727371768410167474869363527863505340755754832874891920203584722184525067801566334436368005940233590910332345407330878155230860362966648091715247302025955258377274284350300117367229955748379789202756477914816974805765714385601274519942194641181102418097318774528721606508036134886149782536595809820804623942960970785678768770905109711904830347642247522874689010011816701286880985387644325656931248734053521689875777611186860427740839673643782892868631523813838828293764246397943068014995176172528544309351843076348768171707681103606760666947817582249117182689649559166244191326085111825491297710604538890894659007131187634767343177618662296152780163082317955923948137587331598704309987232920612516779114980187811065638002300940952008660819817304673599416283520272635960690794323836627870733426170236902322907803742145617490336019791729350300027649216612809396412507513563879600415481238721137584836335582353289494327992823081398302103806059284840296747667034114670221351086508059536719767140441487032781683164372946022398489176704124882557408702402187503424754197696267327375746879782034061158615063614934291141542008069695354044136226735347040994121674234117295559129376037129952427993143774540417520466295024656407672997057360036680396542766891554590919366541646342999140170854195183181411466351634449376174351629193278264768939618228098460153263559681710611003934796312690114754037485111404655411942134292605632675465149591034249380163154183634146723166400824780535388262203325000554810615716216998740060443663386584660310895948677041025334051272093004817649344674416314152142172772228827028442688310738986636089742749535666124164581334999396159118616806934950261174731331402817832342176664935060564379599705235534203925319165909773376380701861064447631295194614336867910820040844650337966514765231303637834420078944062799350252638776477090021933951059652696025287366537614728911542870322042745835622038407236649566441405983748049792953472562596357841763863233439224464476783894877537646890682460313625081824416960889786089448193318934082436274605692509160340344453288161107823973447194820968999793028752536589791605778275816811628636707273180802705910196389786700115506180479604901929163637001832665182569348679157364315727023198331982709558512501945773057027233109753301297670269397898912732326555677704635247779200333222842978229462115967145016637476420224782043848557214102536621858692185790233927803067359708193180695606034616368734214314682822726953815607200489645631796846259852117394901777928753775832080889703913815788706197060090396388664311408446064113202679422602819684432913647809542094605278352079036093228170748994822225404563140420146573913161437580017134836986253147634669896508006469805007323267226006893581255703542002288818023181665950094517692681812320749675617159911701417467748700535272227761582340407989155690198369954158249656565189990122082367627463687655696613003349191467491361963183747702109148665460614323399774244204213596839686775745050544288519606983326700664052855135551387783058339750200374740514399298031709603934052287115333453259082205927005732335362648374851529738571192172939985955301648938390917778794534990368665744664143073682402089866024135200015469612280987011609411504626373258502178163316592358519978817988382857258509926050146407291236414503327875789844141525449955243131033558341229359409767181869750071838771223050825568022770306797329019447613984588279550988520440480499313908814220717752344880798108395404963417453075295614439412671470976098778010705424806040371419258826026842777078092442919266063190453446377067922541732889816976021542796404111615239352626082955918777885527632279821163415412879222139624641891327398791844167610981344485149685627459987013629553219124755168053196828036989949489557625215131991170421577671652927260432978120266078834895095379393945934994875251885977731313917407560858372773903221912532749662077822579495089793850997858075512341894045202086139981646358669319598366080339778652671187186948644351751659987135436414564571249804748323632896775552906204121458747337375732848394037540219861805864953893740826974826244632914930946357817245697778599818864933981597731402617987590101456078187275487242194689713102648914063641037417286079154020365863210554714490378222768627110651356205685254123956287240816646836073838833850795415543101935026811390973572717540188741671859101149668377045297430836143901982176291497281338905040539403654718515778325758883567870008351628660448978492299964264790268234049336437843625472782018865609568596257031010802998992795892640559186204988206631695520615160681413221129273271886235238657681011918510724766802054401752845100860365299518174906718719345652958187976824273189120072686783757731313460030640272101709099066357516406585751392248248815601122923721130616227226669392079358119084502980201924267574163129610450801386334857992252861567532299234425346581232013808702419415410162913834331662738026476686570336860753296781748003482437604938520209723044677055582723536768468601421517090883755527799974891915052168366333753142153445179866009183136292178390723588254196120074878799778770489502041481486889154545872895389517666262472942596546738053464818956746890064816030443902461675964046055614497015229655297840453387323596895812262225833774293387421498993404857932560291480775911670100377462881774486275720769237774360379435963773187709867740316734559991486140979678366214876941866083591407400742883414379989937066668337878679603882495708787465028202926130731842381690007039858370897475315781270373802643806159323726895378278503618800179091669973486004118339380911407813208209162886836337258103398425504476841940236249956569150515185966418135473284293343509890586752376181749951717669024264366644122395260213803132821818878561466933931464182354811939080998588797978259562765904885379115610291703251846716599035840716850775234539400284873574920571436209256390535925800771172359381683696570284923898918323969555278055459825450965250356795132003430838540686413787154464619852267471276349967814404632647057872598566187118447923743649117218551603620690695442117580447578667589594896472011906840299750198557185453892632884997620605217720259525846880473313530323963536271320072311380284825036825020122510025634461737126636793480604589333764128301052961792976007230718967851178572138670746369020932787497559731353089519238172364491973175086865370911341157559317657177917109157877831413054022452526125940734139255693199442572860406425133247546159831768315901907827317076489098508278087129816170663605816252888241422676116278224788202855535146448374608373268592940747891028800877404245946727912652539612842901793368168982300986074388776992559360358322749641106975871175883760687910487074663808707713928679081319378746203311962890509264446828361117962319533983894962327816326527037697334906159028219307222149869893861748589177144891235596504852191374494229110350770867395434126281869071679107682295603161785955223332569055818370534581998987363963524976466320332565463295400054629219534658380274958539894187838736588410203916245229941890740127859664451266786723309208481608803176631063039219801597903777181008805278760489209088042561978157533680676772820649729724758632840172110419174588761255208094870933649455295596677249612928144924653665644379736537078913975244319954699975658914725862624219865151242117863834647410877380462508347357792374252558302837846331576524904766981304029571262051277302687872265306049355560547949887851323247300973612400224144784147270563073512181105089995910193756111398970649317052731105256201411591115802820253961668673238115805761858223774020100203265069872412985838472642161621667068173345713663806189188094236569020727291798138499754382954920887034056658902176308539409404391290536111056365491673009847336200592875986651994291491209393497974749924724916906193284061125291907177030209124585795004767073059110689817765085578273558410115724270398694127658065638900821432953034348546078827711552309550659266920389433024804391874881551581329703475298755403778863084254066310608628013311629616978692527257468272693868235617886604649871626271488057215627129216782479299463967029859866251392531182406366580059899336247886414052328936398482323241830287122027135208826058555697420623630892889656562250661241835527383511379960150230056976982291426823531035576280329752777415238286092386916419201521215130063487756144057210032921760476763587685411473719627295964802818951404013934137849213432029975991739613935023943186219217607109921450683892425402028578901557302985624514428044820303986533241705385708594500412319104712911481692455862555767527496645914172158138236216893488586768428371980639294393303848707893742130817057426191755251843886377748629665345046658524723868251117520968158416569637957335351385436824947426944420298941432159043310418819790995758177839702338714587987757965196893922533839525627102326311047976628167018428154352953031318308895432485118069613610628714081029956919435332990969337748552174594256807647447831315346127721445215909764166559460092488360450611010693079954045567081643653938298279059964727237037902046324997030358378743132009638617918299588958350966745330187843432976599619587575290292214788348012804713399165427486298922184629944674056690513452754859836882854716639779927781603313822628502713269465287981747641767784680958059158766589150804806798048262749293557235351198022230565604374615843915993566631452024785998111928247121437724374653007173129971800986497043351068681637760702484180778471071982971777637262300038724067004584634023591621413867861474684327433679990754435331331662188060760442816468339034843345053700354174490399522344950860783788466324941960578999465867567570863015534128801815847417970042426507846749068644971521973248832141636685518814284740313909748163207430739321644769152348316691177265612547143513410227685624725358265749028203214066615708605436005265453401676348141013622716448978966286049610803288229275908196134571605712204283012488255788225093602709282892169507219209622066641174746434675178105079767881939450546028477878906064447095013483597011369142395622340502473546824729098626498557030920632424822894248532193266673885072762757071889395040646435589693877449464071074027141526674772088253809918894757613264762946063901664619996601113463983863160180598219957405489901789984395724707520382605502437979118637522403667966679022871120941699123650444442379973407034459159501389875537738695825298566847336564280813050630919077707392770012160651604424331619870926384327750674351686057104774299727369168674382122504396837639235591872169441596474812722942519879341881289076188825933708932323513439729447330248992517531403087731067851137963340055066329802211617419785492095562589876917090586583029286804484934431084330672983701976440022913316972147849130254603299883631475297862824823604065959288155928005753006300509036401091648254807073405231657236332052533135660773481854537968810686810926409514802317976706076623531498117142025200032895229523045710504433833443010872679110973108857105163784551169400974189741910644942095884892645128262868008115166755989691072413035013843121232518954040507613541020542901754272347527756293806314729602850579076387104648531079504635046330656569623023434836905282589732269452072082725393805764936041505207485738567376852594345958566849701507658571343426367562801145761164871463634748795581514969176559793801236513769417872254858767881029910985510308664886292165297110157716866773217934477207110795701902795791176784055672422883151245399758250633102794601692244548442411239531330345955126769490167499872397934188324015157074425473580360111429538175717565168835042758383229947598435528936290191288881068872421262830155993576050762072480705675247548720267711432978044354217943111792907456743485178741884922693749308263713778206608659814870051234666403200817375356603376433305997893438259823878593508405843632693977861185233352486478204673471094208857023757543072003945484751467444776562299590126244811741472241000558743817991524982539016032717269646709944169971725319734477782363812062958327982598549228525298203962254708710525602996447067424409757207280206949891386126438844892901974612330665523848075194087140974049293422374413978764826748439375364830726287959834537083494983964545544533760041161415255292824175089180954284967565653246432171872453384322411649386684849764068162489428919211720338829666460557094363767446036979791766097666226888449490344313976568207162219495290353894619548360637128341966574438282051550931315507577148163946428923031252204649319051512632342011735585039047475653850599403201634999147950466159151109111470069506656333027944854830426190443706659448574940325647121933518861726712791280349120914937488522626762402536809107157977681811153460138531445015434089677685779988723314521138004539599107141700288676512985355069164688425288762919463168414555706390921179419326168218945173468153918225905576374999787832006213389339251098812659857590071602931856053443361754841209215669913620444348901081171973968208437374369504545272353470823165492371959059004701322361327168839775414265814649346736241515557269790432723786190454813411497579540970528536614796701150792938633475327206533827252542918452243331942126796296100651447415530559911989091558207185376703437469528142217053325985322217610981361360454625171601125706473169682717791424144735712411543057567563350786426722090832644600913379039148426545045993896854282054778140303014964068289249338568515827536061272456864268648209088952427762340213685374549398769827392435641596495216566810611705076836456335600573824182523106926567430145118795941458312164249705124538672880440890657732051315988805146222465582808422114358414538405918467928265547506242729445260022451712647402805413742706364299516404870780858285840097952792836424898142247833770737592050727883639626023706445949055418336018539160708409057730009821740213128909261625368780370649885909115615612132071376494900875329784523822991055772625494021197694998373284518874080021239859742263686596988541238254234801766766801866327771711252008121891866809595273562511626155035024449598785850125978133680760842233196406425413998411834828869342200360756409232053186422960335197303267288836367017921781843991506545625710514402311730313160650434394024496484598152246413471940849149747868091338933346177580348243211260084518951086864539591559341777450642306302130059513675265869316290501657675278443297995726022231860273676723887149950206864912085196982130562104245032337188203460162057564480325782355176656283389307056220431371330219862667499330854843476079516425006656318668254332915701857119134694356897811687849143773670602972001895743338265299725953782108488937897528359325831927307328058772220214538548763608503766637782228635474675086923774529652900097210637810667370967677170281384249922527636312289029848547223258287515675585606138244109920888780959309436556653546511776346317920819815263411203644777754916706614867532529935376121575222869111544527153337246332490609575068114291063115919552983335693079105397355459644255367208665790024949458575634445504524668526640402319512702810036267794837979621764081636620206183824090044977407373313325480000881922836471400622294087216713168648972889179049789383478687901690909960455607803564120656980881526926362183979800132203308714044920741327101792711139028090901385427760315027700568798911418796448209900450713066672671350042136885970375521271450422816083513733954914683422836380345376054283586705167905903674891312966410297386610871357244096927754909987386387524789749465611755374666919559052572157401769518372389540750871516249143981380119376631311111142860550466578170621006723798464997362989868638537677897331729264408340394540074537596798371239718835079768562894896681493172587647349106791906711966711584657981538883313195277085904439858204900204041620478311260541127843200073496779847926294447963029806833016855446680290767214106598374600475257568208408452978173075114031502968571062283894569269557553815870215652398852646266715454664181551605164418903737856578348928891037127686292536966613919561760514013033701263109378942999626013764133824048359512534343985687845722486225091732480721197860818010590905786299079817824381839731634813959734994945563041818187411078481546575416365068414680762652978557884300117568893132051280722641919182315988098456929236594395110103983087899699977367227400694918269976216537232434404408286092043321939566666791084644585142532880990961970969957178620163231200838176546243271990042479532625070864859673316441663523435285271022161663760579172712160676918524344112024952633099839774640700309768143564006956307375402974741928415039040872023049516759828681027600945256779579715146210307305091895153805405190454278501027418760690656745957801468169173292021946304807580340389098723058312651872121675049627939397372406765275305227419901385080053384909442964845624227845814554108029721917867226869711705909625069220239286977995811190071594737914259050873471033853401444181945520405986571897405867814986943644106089162585236930563577607637757220912737746387485170514395697849491734023746234185279253006545877125512828660559751161156577140042538618256726612271977996003733838315467972023033255810551438771137074097112605360351516895600417756563865187522812978228066633011946666629262688905736558819144888983671399961912420833471514375041253762463105524633368480316871750382745940760536590280564065441873082610871360990813247741188416151092438657178939987974135699486855471912890194238354430692312495559625887085313681752392755221222179816142970102305220297866303100177542085785393254040795223044034770312120966123795066126041606333132035300328527302200032097190914986419701098138067159958416818981141259907910044832904395261227763594789083171244283725435955704143509537118791155160578475634691270152813270798180220921073123105718108387261097143322338166314174463076647007459520450436228977340782287647862141498866891440729150453548402130151702162205025310575181288597483466801450360432235642675014252012487329670825419736267329373970047363314166635296316053468601012520453649514143708426272033933001832741345127332282254338978255909985487845774039175313538627271716370420714697124677896101390327198302352147243583777350337537013430573590404139399216435314492377595644969349533616141577949784257773680186997091316006871967849302125800596229959685437442958957903016546700151792149480484179779149994629124661782273002358323822232831589418390291388187044894759841752261410235757884660752819080530878075473788975209932329637144233254147213399259002005891144249924388395500209969572488313622196046193181150237518378225580445643922458543774620924386775657124026938535203252799671060259007185404628803093487970631572455790236173378550472248740282891586663418521430272976453411993902797866396023600333741959456108453493841238634259711294376219616933664767815231317147774980782280316238117352896116641011940740384655477175594841275596565049712291112632431219887446070335673779928207740877610207731483803953846545931975485784641721456683544285926764685856583900099543921656782836833834307515557919793245841963457115841522825353247731148021155624644767426008638896573621745101117673122155796995281867614616205691906875587045941115857769943026235224431898448480800924705636819746315346522047117892565942172690506207555859166336593888282257296785442795018538902371524529024217658825078750282820417960558213817288544435004404645654116178339643057735445831779959168429979295441351653501685918182556865272993474395309365919023055468153606918180436514407124044661547455927038597106384134687719099164932456009545543484673845994337395428372749761782914594926193983354671388595286146910370109323868856236910856743129041117686601918512356318416552796208133257802525901884688343262039588386758301175542664680512084732069962373034703950062670229118474700505694382271022613049286135600349463851384138222035885398401090062356079365920794787122375327882699573212882732244012201709011483492869902817957476532987588860280360920068101078539088725322565671386480011201044169599234056925746739781042421649890347830137744809115903516501500937736874923383227477357484554823514430864145681188757116887142780042890201654017378126562031049791191801275029876771183914809446504526233536050670066257442123755637642353552270978864818178813132756311110109214924370015284195456045042970093547999012106723943426040900866579498945501688332047150811312530674684880235784114362257920229448129720277051043765575798543008868753907467553453687753731952210523342255703676750155711737373590135236871753896948824969339375546164392532915738871468003026968291534811633847029297521741089294976991638508355913720114945690956916069941000130869274050044193554246585536131200651323293474221503077936965589583569047808702791852911249376837735575983601167272171210720861955922421238208706133874436256054770608869066697428227579014921269344064682559340749346756881688389167329917272141259308254113305976454546796996848950637278768873775219609079017085274284911322402634412218002695712941628100164518167277801832626717628531682525561071748685548682824354593828248204106660598149056510177427596657386200940431952911248865600003318113441381786067051325376717442393219554734618690508802801363892465198718812103789032212504945510754053671147655294334374066758992006504278817851976281597635981963588910516075682992846995729373087947273514038825583611965065116085525991066562566483852542943444368934357540965352865732682549826084505747440638906796995411989676326626052124808956011376850630206467160745873673746818665723554514776551090957017158705337774509500739494610010467942894228780093385780363613875874536850335421690731225250837935643035401377356205420132505364105302890223658200113578886814391748730823181586747166336659301571449776276227352352382531790891154224718685955872198835228454810366428481114191719120590986245334905515743539025750134450995645835487235865259785968520954090877217932222976801688611259833742908391452304671900514858784686585107845861649481248183011680067691836726732740915018882827131840290701759827646314947334701502974788779152593832909829175987655761066261311646313963658641007703937403750857129801789867066627990307921000726065175951772839093122423210096412144861940874435918672726540777877841693095063648775043368544048418578264245609811627638449539039156231760937322795152218665293326137637532817017031749852139908170706271516624213307755264580260010918422789235715823480500081781653798441973588833702635392187959811326527831269753095642345934754794463225969751241042737724011184361089222656022868319421435548367686295237952648292381911825686146556461050720711811411893757922466829288213900498154396435857652501605203670717664526383173702038047786570179940723295842817702433730888995006722949725964476760089324043130198835684708810314160166134833547678941483965119374483601840846236849648275649995406829645813767270046853458308646564101219442971505570105092208518610869308916786315585258296848794945661406453963079478365329831777033080183464132082856471659069619405206252442778272726590630521716836927187470878687894297439015884227923733496373587254517866866902983741999750914353940718472459122980175118530229989754881359082211359663323310340965398133777252265565688896510735415349628931326984522208052989733398159803098068139999105798961150297039231724260362965158831188978509870284284934842139205914227169582846564439587563177630909889330354266092961353750669636670930163509194806087751026623473029142387605636409359323938931947691725079711178372524584455349199877096160559824415120706782458300844297025124407843948609806645446202531407589915466757520178464182336591500205113906386788831866748428828651708674025483639438670232799148558180718509658005050912595357662811100126869765372082562583776125759723661959260014838527585185740786571231275269155705381107576227966691147613170244070824719129545579868283765280537565998190757995645339821083803474568958145762359052752395035138180024103678775044104842191888502460598461431069305260836851734267946547206778460907899472227269732091408571840559257916327173524644096393791832082888215871944255664223830108853804143487562289642978283873379957791632634806964498812295936203735435253768671049665789565708075079113639172331807523646829754321715885195643208403303029063648131525014232860334652056043668026359087982789860905237502597021668003577642326587876613978418086009368035566320001777531661281774272941388493173652452284382916186237723425840628127814763227920068651793814230055835607349248555052043239765007427086769759103872834477280733945420007656707728853173326207412740970839085283893195245812413354041831193637476008768727615452602225565295856780148489530028686731915616884448830180452791501087882444809941531897233499023066996020943848081403945745766852416443675877562084190347319994110911901293555145763087379566858726178968654318893163058917363581384298785541791627267799486941762841268254576055215279104962949137650159237678995422988669659590230679429148597247377786414476733182320801590654169218879877574526887497149589316323390650364130859886659820690190785690359512880830521035159982456943358363221451574101648770128220208236278460430751324280839188575391985007353295624954966072584608125240737288197881125616806596709179713966230142679052636638016827772905248482385713808584474621529169618245700441251785823659069477675546105472813223899439966301552159424400857896413782000545228193200972514017963407367825919257378642288518201343056135509567383288540404519612577279311713311150295804843746385009408732155063023325865470654417723305089871421638203203537433084193859492627313102689648745358447262790232636376215250216279522503784902293663118577618607051939446065889798303496169424067229792394776796277782397104030357086176843822968844689268692245929480832030642857303460153839979978803533811808792417356303312478424343844633156325308706843661798674654728081176053502195839103276015733629830566262723141342917389256835922758674097568022637940495172303631359974849212348060681294789498586142515241627202703566024497013514646362553330031570239938508359536603049339298323762853885552958266878829994604979969053806945043111847739503006291323344485939261060400794547452339046515416989429938353845666208178817553477633211272390184803301915425705402702682946761162496724305184125227379391053229349167108615650105531087530446296968668081505351529992258173515303202875125601753126301015942120307391676604184998902206263822367323764460764430580886020206454116225075563696765493415124695791828721854730327853387114141414538248778721824397144900324317457294236168616255919234710056520016302444878745518894165212862057916642192110262667333580194173703294848099041864607745780891693191823235899891640769130745701311034185590001531609878284965452176986930842100802360604747784536939135910545749383319198673712446572655394445003784443150885653448595861105501450696840955968048139008270222277047331959964857386456290578791080220076752064198912008541824947430709531538174295497291565389234553730266560768276665636643090318082417422869480053894350505647427988053768291426007082347048465656953317027418168611622310218553753695554435162392793043462013884703399665202261483638969357173517569829317105405681534094378998784937932082072332606369009427432623662644738255742674948858938657317489918911345924205628596756210433391538576300480599103666370483317832173097152957277073467176191835908925808177113126839342088719677300892157251590380211088003201963487159221213719757715496764543691955458201127196373053215138798382110931111913253649084342112197451810390361284690566050356540031066238084708625371466874487132235217151286748414000499224284180887662344557751815281907773527194781328466813817410083512064703952352311532537672444425476939719928081488230350375902385413586524425302966789572625994319687647535014875715219111937655367365096724857560238669382030373073933118239081557783072926752686041182929860320510699563982493198084599826075728111454578254459144336857513985881568075230867422162347633312252525394300920986789971477339517839258123387614139351259474030992972849959875388798792795189409237067184537082317217995802101009183040054488245459555957819220890793889274796980742562537254361390701243664231956036000056580523556589600784513756208974117167557421427397248975134445053588812383896348139294140142449646656597393882502806462811156203415649083172583441669668924299726687320954892330264401414051286720385273327522104764475921303191808824917196288620191493782260238723226360796177972568941894593716958865652464445257764139931406028703874060516992711355995531991032344703222466840364800486311204495345858221483512837334820314822207964305729992657038847774215049572105726853571595594482273614556728513874734229963804600784781280616318377518257306538564040727875253606761891447488291743715693370229407822880236810725778467585965688324136433103972589338238391349041086150842439666423133391050599271013809447906914890660081850534799503630451218138091438368115538745779729034727438901729953460361416690177067612153728260709080630093065488970766169037211297295587111625645343214716722207292347485557660214156600291429006570067493705217838166954224744493314852815977676742371541013276358611352428001401366116010477499926502141054225784323601576543027957159874660763490738860998542908882938018449016054829540805892820848656321004398199454732308803792892622753965318873179335976912288783778508730172094377721897092639733360263390713312584787522241438059842660843081711561262113583119946286548619003430489122363298425303452576206886866095310529525468286814150365763332075969217889546926927523437451130944306086131807019650104814180426984019080573338306437506572795213466912245372016884725723502730571792425903305624655983785902541367380194262635466159013633862406539439912781648597055591315958794483038042910707635312946439946059296875093690410519695934147178657359365091619648968081039019159604724144475353756640488651291541140261121880213697176612996585246674908611130772535766982945754334726688148699702172347559475156796855352632001971903778508134009532284986099152391772473162779315786741483741042108551089201084715338933269985751384991593516634047706290285024278390405836463204543566822395364177308142939448593930941335703760975412476002195591974159303202825271234662730486690287161409175341791937025171039054669730402015337348551600796297438418806679914227228997896483823402536304047199188652667137488151420607655899949373501832666969576561456119816379952775775678203881315429443403780860066493567572532987057632045095108168530530656289123752083554696384388693715597151879208877046213729558780424412157368224575568330939337778109997445876650804755740061254583090332225793294014295136685679443983613156932702530721156977265451880222630125519358666241229081437956252735551728966838744843020988579492719102141729187194804729525307082810558562011439493008642112487839418552669509221771607960621790775596315553760729667247495547340956442274773420334548567364599772748563080496330241417190040368093239065548070856933528989467215463537464429932314017079544173108450281653740418125511791251060054268626672820387063879365466162112093047628688074233939999544178065254544115924639419538560293219569889187871918142533279364723917028632350064735996903282799283582753484025326586785391148447132448453111861237184876280545452389504312941297457382322742364674869351297135006082587426982568759894744021608663477660080658658917027158591948851575336572170712081759852333245415169545336599110210587241812514999449305042454902010865815000471348098270715874577483642357719872390815578012524433272102649170020784441870697442827657676540800166821766016918261386979542884153461047009599657755539723148710057316591861315477156665735974976171021925962198147753048266864074964720668683779706505601498282704316276180695097677415384217878301661556436080179855033500021089663242481596832371180839131303400127527169768648245261107823294374335291278100550116357682528955115097383225669273364890404728070703088700661653231059309284310419309868501813913353552495220083297637998264612010998612629981102016584702692015127521661114349991788648742021792107430067621383216798210628052098097489444261562940116667448781081867559156221267983941139759938620023766232664641161933919804652192287154687891652667723029277444410247852618373760347715761078405875874283691911010498978025601782985357191517170037612298313804185125181728931394576185535101495120459900301793866052084967059248088771896870031363436892123828088599810570002462019781598395662436235951419244496549985626712860173362896826308999040337964357512806019806840286603088012858883972728992629158854542479691265335449841977876396788002739294970512559722116567869008055233342562323449076582305152696473171412707849943334010568911881978825167133766502101299714731328309238867514430793170511951973701148799118888493028750402593556635010984563818195335539495503901355157530081316673059088568809688834752227470087480574545777579117693016006347725659813558393412255256476544316058061493311763816546006146494430214458834836261847184443060689057566530236609420931039587691201916245866734864544610720818079111152262812124680943072444662414456742021627203445074292462523477264152871041676045872322037113311853827511678658206218303066288236766354800604225554991282661335892699596591071124652295967336371590313990983092269321863981681785545272895547900077698765344508672868437343414805445116721915629182182310255029193740304023860958347115574379086114755042760908955957181051995902282408679277725341853965323075229308879958442952961528932788199552289307556299822105045918984493280872640494964252037981969663884802690936389595031910175760167912420735828740487683689106331831070232650356587030927111535991340817130280619678384853575954815565535827656330138263239407190155417193965229265096342219382690929065542955965071485736758630464153901111270278370647327141281924877120428176470171300346091034915707093248923760626535892340137396933629123125495025801555647111605976086234047837631517735586860488558135337646965675534310890968317965938539974230861291944930388193452711235640796976150511646337288138644920705052500960649472325338779960571481958984641253826447566590004492353960097865069023402838740959053213243098761613525657286914466096903434704232766898436456149075885670152102450893977149284089693591296812326120313755369523373976939182372510509694819779689297752940320108040788172347428720622386815648512240562149513641612585370557994669039032900828509446885152880297323656766689285735708881309134866108622570865109444468315305203105087695871681963772471959240405107578159054135258301535966071587185629225434514832815351850915287782476552275619698658253044256896316962959714854559210037290576776792183757346427381035414150420284388615570293359304781044568826638643678487036660473638773181847905420073422607585596949898612419183923589296132159766256566642040354762700247621823187255088770737970280499461384518904466813506986293367789424111515991053868232016849908611027819909118110951138944225362321897858283669967180074152873452695454530882406522910239015443994152236081088070019315726516322239747875320615418136586772583147740908442167231871543185292291733102242344293463951428326519198490971571206065114191208630226828110478793804851305201895735564790686309654121182361239133203418832568479698317321308484249804816872345180643132976620193189946302758226689006867681797983835165917903026718667858341649907757164618290679175409492672763425620426648953506593629694429621028263478434353073402212513686872816052800602847421377533559175579521367986183521510442153442399940273683879824368859187542300083033090488838147794784819066709314615663357074438886695757566092247564847958714542481700991796516028046308648965464243075481429838018548362927700241793578517448098043727807066123062163348017413834296658653768133872867838341690451336075397138105480357693703846423909816221326872923573932148867706146141582983409975177720550117362154364332460310718340199346725602105871270347953811295434174806980774469512413740365861882963985100490222900220372279909137584916775725930190243111984846653326856158117081156436374047696919896758359993649701903000159452272929559433268697096189096977124688381354168334884036451920071499080657432657284798190983891934578189058873102418310861991353355927493062031319836194304988259158642928127194395839674405269327742730747870838334085431825614296233256674676773248291131208674628930789980036659542799048254133015865869695731685482114607354420699097529392839699750116774359299649823401126483448733810969221740303518845271096312751650517729457490348037366073406154490791929344489109176635733263718447863351468872501039011073830339187304660087305584872106849789909853638276456109316627436950548421830108978120528017850266875373133470218699097592642889873795394430709848739369471133075536819709138076096943860278796526546297463257073268733860100730953585213290680712276287429257611788961211310295585910494716188545608293060860195656595276860472053954369102832576084432961006659908380809621489179159291235682326318073794691927265026308203903317556838807937256562304739274162373050936749826385883081951703224138956078051139799401295432492053378757682442038467452580612681625973207252387565669931515555788150514794232014033581735416037286311442976262369619410904073532458503027173583232546251028880454769462005341088557811698288638258321896884568336014517350983337697151705401725636396563460212271151834754063422746096452179745024018128533268160579710635185809804718763049334320868000552072816475608450121174819887552774693029736178563544903954734518089423281552351001940176707894002128757581295603665390269026577774369655387317812432722108404287320901300779571646080153418835258657174784053210315042390773305325361276634502510483128095647821934736533248247758159754995632002348388244915575120982606032489562895542819547476007925235464409699738337826206077674352295050768387818119351908821903569259187634912329136159844302075817164892531545085677949342645235539631732425496988111240412428265992102193379955418096086759832167494874727581588195622623602594829289495793605410447899208725224227943500439964827397747622672219839232920162535337014707131251020380995962555960468405576553577545461801180831563943326771092281152433145899275097734205536769965307907252940189318423226030870061219304000147194335786951029994583768985038565520380664663364507551058787117300861366787980431444588274471309543465866049258976387181628476200090218536941405532618784709624483068314733335746328450581080727230227227927674750131734034152349640071120894148957484609007934707973018571500895408945815981079603131286013081096096839431354940874169685265242848381301251179864764983985024689110743355343272716142522153730869823355727548369927650963612777694817885283729814026982854112968300651708476183743961796628447585537913424408316796530526393576426691205508882302791871083430183015367098526094833702559011073087264766838195495208280351460938027756845195092397828071195045629295637640202747586263498206956219007487571661111500293101143527346935735235440784725035011277904739152667923365604582144028336237732732973091573190542771901741100419384147806785011642019148755552314305185045554789042778133117686724561630919555730208439682582760497492674150931803702084304640872652977158645591083562631419432160622967328359432041981880513149370968336490963948764341916318609329549052998796466241660085788408263334556461269170711520171530322856219816208588785820250855530194152830404998514516340269319581757921960431029413913628243086713285167413691669009133777363979379046603496220831806878179410149211979342915927847675211225983419910579342881110428108839257325105996161731858789342683900471073532904184846723687895476632203469420212193232755679005400555586371827495203288469098131372060176697010100884164692982169732915397370432533928742301754265502477179754046851513241310228583407938777515623916637736747753619468219768546972205945337464460988270590627200797860547271881962437542663751785279977349782783889403413157354287720147146140585108491585381114309738366053278908651305784557277437473601856951151761632741241689602456483072272930179060208671107064723680242392633307189813478862088018199926674840296586303969099083962786661012772963903874039252936290523022681861342983991264893386256942794021906249347203718390757479403554811560170464638312668555082093179143452766793127615401235540558488807898970024053121741240050854493286991451746064167081803472262354796351414924165528433975142805904898661766520693498064035097961492596739194594259873338141153647751441123810311987113014102855645847560966385431542488721762659063419013234990054232743266755598497606801539503193811028885383490053363572304405446105772704054156721366784474468606949091902027433407642380370009386934948559648013645971654276663844421223735345821254183773988004806536293007319367688468146136977858355392351616886419648013521020445370136045691659035410662460451002072986575600328046473194833024951855243948327646424667216978415824435318174981036185994228168958821380608219040114972488396221035099338373824827677372940860597925813026611007485794719981261484496672220628357758696560717266057674737899299567339066056711374639580366050915006450902239539902816207188068300474337831710350225662927627139135615916004084961760831318947017000986266302739323086175657618492497269367733540187228623800036548643641395070556561865191418877081946459505991060032726646318924138943433414328140265123015050273131955749912466405656924607626560313508363481907327667640507260631752737451474732956542166048013728726213387670364711868932662120158523178569683353902022518474806783752866851937379537312946340819122245426425146643635984738517817393838983210827142903644282552404674011613443796022378942717920326614511894732507906938361843760717416876323498241641690443802711733000441636233831668630108398605651068755039765377471219066000952953343192216370080029694514184799110573304832790042443706850633131509809689245381563964799139806080411145810481335309345252809432777830305980955195239438622073947089179642415098080735046567879269742898203493587706364059441550517883039103966180356322363450575918229180267564353688098742197289578297000848198102054201501268933709579437152361372600570090568554573786028901389252731549382968611032549705643543848317825893685779266639221400372077831346523260583282094416113689978499548728846434648749707068778077005033189981774079510531085359027104978353883271109774492845131385483080465448441268646203575813465326508335222798909377423267933396478309199649150192771945910027359549282294793419629158073582419348169086340295637852740743267435422188061655217369196536432602623337618325611853481285246253709870565479419876867594888677362959987766687190746164643102486764478022492245328111067053491693374385266293039417456203696625887125334984806613195147247885911864535701240930260470719804975420805435794785925570800567856908141488415914062467382383969551866375726053123851234132958952956006279230866054229518422243347435834204945842356465059501728585339598729340430891251131901829814443156756121565377068005597494736043718477427954321012962160017831188764659500679509430545737075681951395917791782765013333993804340357310829790520257156727269266316860872600198077903233858850672771469398358805430984479585898067154615405778343678076656664115848121381771237320727148330740114994341756462371512780121180198939516278205332525410205185456629048142223445666751403625466590392688651467873152203591399134961606135296696480917491984125387511230032927960850875094141287302903077953442514370394317427656773674113453145001999415274658650451489553930085614845228890719799446098092287047905538765074010715667062164126647609067384018302811799278882039303974845377289519050365976624235809352349411159441218436618879805149894469816547763516603606626402697914323571165224387883049272213886225641182852609044988632628364677936848812811076991149201004399806605969960121700865095095525219518837119707398585612722302984083872887932209117220962667658665489659562181091646996068257723107510943546555485297912256870837487116114196212977589384083779078950448097707303257018434411941534778996811287903163224562705321558870428817151103500915623769686127654043474462277495919999662721832570494456089009692591771818947513532020372380575132201063261553547692831298266245624309458968550000739510690086542386394139227235129093829710761390697603235616917691255622887492678325878668541643614808884778818893775240677805501051518436631336704837487620118259482866942169683427075761167965710140237967626509508880229638320443382741657365782103700675492538146129701052955384439830767218167532978127963977654732353329303831795095586907575854846223995007849636365199092709345444821651311048624616197553253400206631517241299290144014123241288507130599099450602110599736617197919498711982220194188713465045753610126984819395756872014483465743326386555057967886273468422858587708314633758789580069660675883421703300084795422154582012526078212202435439925395316046138948648858549132245621878135303922139211178484600532557194935263668495539741709676271543212257192696158501430988340317503517391147404093985958897326399432294676767954283175371408010329641437768038406903544353728885382284307765623436479144300312835536594835793097314711512351962650303419502112667598873107435335766427365962201517236298568643131234513461171338002696085702120736697594607034609645884928377023034498935554581128445425965184954476708825823886903375871448165133119968552497236103510766240365099044453711691857590801010090292200638261101588577069000976310746784263442239791619351418721188671355565399124254889738302259607430826824296273156605786480286165569637042300115836059640005605169342242980454352686493898488918385139670968500160903295029336332325702685577785725722918973429412899775301443973136350373896120516920101308127374885115875072686282504259545006310770559653890562681106572045848993935514536257061682527591247124252321923012021565305337417972345061520871143124206633657127813764028300685199076146738550314958246860389466286453114268419862680642631205250328715619502315944737273417568476651549398412028291600849668748986369432785741494942634935337999869341300510376192952416996941035545137781807822850141815417991573135003897698859817766363811825646477889192162742547834075429098355430510322905183303091845602002834838390623604916424087895130798207713262078461907415968030312180214868675358912256993116206170765749614838853330224872185201417332395590316111304714488976269360139777481959879077930861276014148349358924591492739570480517213652477653428508925672298136376197963476586106805067007597993595771246241668384702719394935015480738238823062901098910873745582101675341359510397269237049612889597161219278627188826744519119690310477082623514474882929972237336655257948535798164457127706214038518194560987691586374794377051320008089819081727774124305514820735199010107692761380327763021575736894589188566031323119275826964236491720673485999955858895320007864105113795165544263493258675079284823283264100604062099811333978335749229010756941107684147265387708041971398955600406925817172045358099013005634651351259012854724778417238276656912780997024378908818486521785075444188701489711786111219508038019401203860899210403389881712333709535908835171383568912388561032592169733995311893016012557815290532928536820845448206632427482373564460724177735224712722145514360211775850807370873252553972329540667106709837079457651875956997238266250463102415890617309070190425089495803580870353057992141694531876311198578237380693924889598308623117608347118121912265937536651880367391391438735439866736731989818932309541516146240650508464277255251186966115690331880837232676366840147426150271438089712626687048313189616951605034661821044217262048466406409543949413589575937041687858155938077177829055045162356404397676169719657777409165276756859078081041568564419084530979853899914221429029974218617159976240534498685465883004980340241526730804358211036435519501919647292188627886497346725202447317555779405940109692917866056937425958639784861620701130698769141194851362718136226815278552526639498706238542446839971146397174125902029914816064096749838050929804793056974975725702336117828796443764782862543787501720115508495943176403056975188785645748521796812113502137605663084254898764601504657731592035377994044644520281783174061429833593826921385780623330154706049282773363566352404869905773693619858375077343721641200388987137212016332481929137239299698125653707878693255182584990247968921514693048616617823283920036410907871043027934352317387237378374111124793309370242691673975955404325214305912206300034068805564746646871279815175941495922195356283244851519111588625696276964239499160456504390952728260559126347988060478789532021639029474631279398116040066396364282831330837373159599436516393408001695268144501963802533873258558650815546559059826048015700851535009551679810544974147941233068224363640855186362377421253465060531563886089010841360001290093399083405459674518498019139065265305873104681277096216810362994103281222935370025541082546533857602875303641988140415882742537057900642581604893369827880459073735611818578044425853760848313109261834223903034085644680383055844745168196308615956000251061697612324165569873602305342932952528321313735488077309527303366191978766691622203057786153356416298832894664273585820392318521748065631536193939766047004329449593997534344248935363774838928803353606266774841853229012681227053459852595851771143053382174058022174244310803950184280001367352923661966869305366830411990302919646448110521137886655266293286157228146453539668569048423492016993034801916048280690772949547333942769129072939901089016918046279926665091878370545251084473447568054645446523247581574654914955146881956652056417580250234954316066307518707348457002199545164048156402628745963582288447949904137359178054023426396821794401128525983137524522406128061994437469578177180329917690256461953218590005328316833469997813009096584044971490311783901783525027822003764866117365134060937136016111711202160279788781456159944494267910687206695817941825593683045019650703194342773136454159349671305541613726392560241337178728509246091605229038776629574298045813532838593448289925345683205057982593724851458230228473025276727342914247207898528418326480031372792831104255287118658166456212858344258234639262462866271108025781064176031956081598486332379103161600652365328899363769912072123245194364771909822855462341556007706847997959900153318651478037935407881962744716315540860786460205459108389580928574504961138212970173053173251418354303910933971199645145971433639540832324388766209848429848833695077443464390203677455148450898820993625038805948777043369075952383102836144611266305807313443415414695202502583247285776116684438942406945131328448694683014507089927506452352289260565447580482191683373231715464516398306267500501505187393702541018845784927936715708993362090260935761298428008736851346495639234118191769411415029068173887114518995081280712055188005160197342141241019609841793443433961010409994040063501413383194666838075813856508165590451552430727432785106558054283731402008696470897100769174987497262928889367404776431917815611439269799234943527173707852632962098260835867450693776972307340437600785944206745000918103653132176874529332362617937306959774800453163845666720027697193293549523326253331679215641417038793787184786525911017496505835000157295746415866968278187235448525366921837791546180107049460189542582459987790748259874162538828617554257549469418305947054963113742357207525774329604937747037416405947831509068462396536823714656186632827168910959659066203998767951993399505198422976021869799209072219494054392367579674651888455453656060483685950213296150495418225087451887243551778152798537046064387668320949281413007105896369925470847594663019146980948637818433745384182652425981919242982931676069885114324605450517958563269161655513859683039309239980030632053106745768768414235293373993336650247380840972234606124314171138165266688581305096558599138554202977059113735143874915845686075505045931264531988341517080788669911401412389603718682376614907322790831051091819085676730811828109187297423562279601411215112843090053540008838244107273882207485026709917551927256587341139962421050743345111827908813012300446434377671018194813523722189585892134995552433918452252221922673629064495221175082909130359312744680233978883866157087306340092207329568203777908651381594038452995924318519876456212074723110129974158493373859065513313469427624932806400921906690788756668742880316236996172329782981622756898028227727495925188780762885421746642939927914735518872776181941521511072973479444159277601825895394148882966920706591966820208817498122821939084311553988548454127709367561088236585561295604124479211417454547314523805312741914349049167137057243352421000271491732747544750980169893015369995167578379925043168506127166683963992285515640571292722523000987021120078025862599758081075476983302500983448409748909037855629548991317214966354898191793706527689003260485474025396599806618143739992711654850965198495633544421651285203923820534933881076100312449605440117396280247767923092316785724548271086351811504498472205531436053679230727724010161075990401031253041974194171643258388512303083561299338888944811966889109591646777369664536404694870556004115677689068677316263305528894391298944041173891606738763904337050515112567250119422486618154136944173915114619792824676578253061188256575571863493795324579916499607869662809258738756534426166540083496266887623850005489930590423750290052095809691048819048794881234932983796203841709303550779819255032734083706327431730784588391001519887033198412788312544855242670251455992710442916111267295804454744567426609811282025302046528114123805924942794974247007379491861033697526598748995147787346597516090258486966823371268556089218602723827466058181168992587989540449891285682701158533050099281146625073397049947426982905655127158592403111425430254872547235986070792227022528442413910231294441650654128917513785490500332622926661418797995970937187094857597843853430982142112014194211639341159198420501853229028606081566606316930308452442058330872499449307453957710845280152970983677176064171130273765587013689023389179276709826733357162603156290558192987710507375019160155010094694386743519211759713836600832714235177300382706638854524341005568730561100461132168598425482218483023827410407284884295651159030614755871346004530370668221236947712354087422808411908739589126156711809955991648988050475758322196178874566501391710584086198956882851448836763864741807277378034892520353669157267450188108754585336239296708142769601538695020635328118766980674169744719670977194649302782085829426868307969160049523924782018046023046885275232072595665913471688344522736716543879586251438132052281435281716676320473588380026888269679986432714165660149356596050815626613664175310692892349584682982605508453375418528449984514446299832995632867535818900125786182604156440968883417722571191062757943628323736192632558219135758533067922566112391522175006346658172695745709958855045289759093749175616366584168002692060569902363048625509446121542500150128910839325404055273228146533234289676338436366297686684178931592641850870069414093154020866626514387872887910710446817290535500183875067466392708431260362923418165657943945453038487341314910542653389963452216743310106823429834066997192292710720182594057682824749857533175608403474427945997702861860346216607310340411041593426894564073429749723794187783596542583839050197126505671215758886041002535310662939698694299542992833157318461314363443768429801153912243129924468471942232377486338448407680498591272273499522262792256815057796765391662339887193898968660507808328148464447580960545392127013687311984831651088743322787758868817406649415543878937421970105942320408414719172827076376669735133693593124983407878990609606800960769305794185753260944828899674261965571868577162069169900098633011056033342745449632953663579762161978551958202983235416612993833910424035029875944345595695619195414531405320431942379702604199481215913793606497202184777563827127221393378921424002322555461966947772626906167525652903467787834840570860405096768826414512628880690151790199734642686096961685883530255878181270637015149387744889863768199718685511006355456411260855477623004293400044215931797107453128158983898048827993343857463912402858834631476128627076556916444583973531956713117625234951748959597886387591500004751668968178333895513187067157190748177053186173011292157129627829128367573447830110036000289047649561035740032555917293163891979960774774538582732246908322533709201561127359146230222773555427500003624153865107663236744973804596673601837164968741971690235264574351112244853679371778136498977203827839322592509539249800787519559500938342764524014211333116397503147881003742416677565344890627096788796945904922937296715127482443461154795935732723702622599513954277642863807720733567650884757110212059966778103582365846604144202203486686083571034043901160875155406415746575400331743653295245939175518466422895794462893657780802501906629061403095067221048760019931739690756264626647477541598264345322926116645901871548482872386568455408915606306425070525522176518851010328897649126209938505196295679763204991813416936423182643459479129624511521222232275091629766459255749035199150161409317879118827821042830434579900755468969478652312032844992860150962766527330485610092339763683103469102716285287341003681702358996619711578901552870179142423934018204707356544031110855062428703489624828793847244924128824529189104086076605223260706275622979959818721351909713704815396965784622395609311337267791630559524432914494834653803144484299362793626681083742607895469243605604690802875595172439598156293072178323141822624948013582981604199255333766240273750076598777330806763834837868055814386188113209261631256540812694033097745327203917694242806365698909974874267808603120421743884868313778540173439710345785743481333762463906474698433458580079142891682867444256645103245454525974123914007827716650106889366179448098343834286256457055532324601132934712061196449317086138543325953942708209815703746690649562819703641329307090721700696329173394018294818869967767517826898636984937941027737596422073083261624227687165392751655305734923415006546771869170967193801267540513271413232880606916934618924824592923694687031205333221632210223177425175106445081519306968234888788451243097940431589903883341973968709792608408145187814659565366828611344922607122064085289660221452210560443631085102964504826311241936055995090644729386205365529630281829947891265324052923332388619856482242336658393300049982996711432680802846783285057541654387191256167897108540280151349592981692587862467631737516168108485292515487738347815865090845073558873127960697154684580038996400351670123361711446044360343970293749064726267606275493020767334027029456586227108057748039624162992016294064938821349930695387835294107266759690700301007228669177215155747205562711392409424587533049835014195281759586408446301660360524297974751909746688637222860444231167136736522717028107746826494654596009531331457890271876294846913653367472493371209887629501897440979261664706347096291407474467866482954634898124737083491797487452434914677365440838807134219937482810561645671425276174062230078723454829865621405937418523237974273142627736872125176630402240956950010276586864977966088216634384296947515931676201296197287135088088454302813044265942993012835882324862344298049463337172729432031756084839925700696261737197964342263981178888292319096173700014234432969599207913681689055681445047971534297835607927435776281392732698879945565066730112982995396698344460297893645143078969900570379531848297589516438565417938681133407941976338252466808519043656337418882147850057141060442959531613141382785351735762901801233099294812233307665082227375846895244903000259449697838918752758294954408703229680613554686851450715852843639770215346607736925747828982709336885526894592993712628912420999841385817108262270362998388860175273965009179566193206208269457180243877087373517914497762225720119226939813789760954513763889215487344477096834950403796716315441245941155283939423333040118791096304981229277269033765528504221501818764403595742425810567130914716430797584635072483987722635584370459343107007611156224716241655216637060760900678993219783493350816441397684019362539922184356277409528999879746793762347573338413703269388190025682544705113075038284542822164322921281065982981296886301759667824239021376122353942542279458822051721158575732022291297934195006082051819880927940849466268868583460721975893848862414021467489801520153533103581635464434896390466004024458821087319221467044393266320225199662308646492996287965120673634644637057452887224683955904627397579787909734547300656772689454347139634546176700800681332863381600374433324903995151529683135672721619866582857182552792517207543740128597673375539182160946326354981351018325458070242371597476646330443298479040674985039629804958132095308767937540920755824305464481332879329077195864231456883279704306774131529186673775554308391697382870614237298773037257491592397734174889390062744672760044078110458292299973005688517721426066112147087911355970619544384314624070596522354457891661464260896282491848547589198236575398452301041335213239371403861183948919358339684182296983065042742852848921442631830463784009872486738957708736250610764220188726129036617421640841652635652996443605285293759574886942332395293402762597748807317158371992509834192437305677591549911662959796125048176587596822300376200760217465120202785273676090932526140237161619598836371340427797386476502659681822737783168596846460552437789346733508141866228559178993413010479190199077312645735759787441854046701869646622579702533398726831070106711275599053828501208871827212099751707237627764694042570990378159491372398618680547335945726017172769381831426496218022041949704518245904309505583165936901863607436456410819101472505515202367045526777999897571653727543395536430005781007796926381112907927140139056171492914149331034086865515701324637343804748263865963843022801341145335328301509781278951722699781979217222106307327561510952560005346904259895380987672997790436080727955278089437654704242964177782470495982395978820758150099238905205212206067607349846424877737233212493285284213371550766824271574289532548373566182370968713096766992689171479982179485366934933867485539562813350483519697417314454240821210659075760553838222968010686406371107357816926393654825574651863889863576251108209575808778529060017111803163729370976987424697940331150707522990657491234645848884770603902216524840733056161917744890562728049061496226528790362269009666557227610902442648343440231318679873611695968286751890785201462300584578937009821936535403843352036064216128404599403999112378197348094094197190737925623644219715255358614388279443023742669543016822363064251011683941451105869722077930739160546643472535008176407289850530185077923327474970275860709305049405327486049054768503370815813270036189111108481892738562798835766896689414997914487571827528857077772353066197741104675365367924088240114563902974330494890810058749625399037543188262004059409861840011817217313922799153390737203194715846885965614236396755875255619493379668108270817008982841238422476379157005092548156346564941720232871607386684509252198190594535174963043154191258687279521827461828043084094804097917646601777985260621865216716524079130636093059683211339509029310602948263375355158259272264051049498256335256379048912466579411679105682589952881734179099969062477362651496993825851062610378755075552641909127981348959905383675791105235649735021616287628287343726978354539826280697100118874921735571130415639206209497080070433743253900660113102163722339829523616329459307151129277866268506408306072769547546269866960441904234872757283977545236208161816913354503171510199007665865907559268923819199723061095896112680427740581728843832386070452423350272305300973575432637842664002697790687202478453736011858681444778997570244519654035132978774469609802006198728442162914141154779999395315151182132081488304549206618251976611887689467621798787920320388155999803257340408730851359900901964634445482144906739331926869187245442254786963100178908531888092919094573328073232080475635289853866208964455192015560538359037258112083909609764364687236058697019652602578286285682400342697256789424414477133999612395044922882385657597494525246373070448221636020389892712439341853867808255647563828842978049543503671053794313696756053789080940711436673354115758500098247755250925811226075183836255153587702568522235817794202756569200977968659305538287370210390234455545708771961389753169441554638545070335113876852185410522237527730101669438313430421594182281146086721437732964382412804158945990192101385282505996968399177824487007648096008373396248063372080366797980686537300542282519989105173068780687533667162052412398192594013612605268937343547334921257916492429093943750733616240500429560649473063781650559429222196969285354677470200656710539078288576330603140516537379170608309988184604592021684377987943026612698578156874020681575180734300785253522090803783785510910133123386453021224487956120024110077935737874996753944575554185886199869189774400004455414009521268868563437547002845541185045285394865978647819023854072796014163209041363090284754955973696314199933224959748896555667553347552020511429269802452001693831988475640981009481119415539565169815210263326912113497837689562650446842164962563582118653092822588318514434034880237680874225540248953856676560323371117090041051188530770427314740967323580530663350822589691178955554943569788757132697721553665291780787295503888936905647237215307535851165772274154285268218047962008346513259421590759435205117504761326530974916194166680734321663196027789033931862393497087122825888523099982979501852005368585939198113803172916902403105577266855989229970605224482126600865537962789221894282340311933097136256414800646060050313705021652331501586421879160717750902310147481248976328783145883740332352474340305615001093499059510785500416881893523999143379115713324732942768369082404635414206432685961084332556798948824625317427810635965130601738668425475494272361033264621727953953333184657585501746033297320796503189556051760103017902625014809596863807592034386387248661474200425244267659324815678861740029571787935384522621260468404640030204872441499494776983134463217686085119910044132728690276607707677732214046924127276437629317681224414021029911021153496068578726209980412321263260455662725848839104355745151298725393751804227996069269152307543070964834084210053248051812335102477606815170161414793246034364421512598515953430491591932060135499631227036273742261947087794664341993854115445766326686747776523448772803808638699276746792102926807118654372972242584231801110000074505369700867038781402962456414807570869636203680353741695367473714614014993542362652338872402350595806117110704281063178287169306155826991419527730470247290317168662569061183294808222050838511152105522739246060090514123548246105972375439941674027671019536920311680336452998168168145981504517290038795003055861167448802552109801354232124537460058587383010425548124027469645134320324855421072152351125668235799557723931004999241782367544938417394365917120500180719571321600865625922918177441579659598165693427172550168204269042371567501936125154855643194694094079245562773082144551602940929664986865782123733264968018435203567388762977262388906170028211024881232724905758986210661533133720706468186174732599764232044242407648151051427999840568755962539130575135085968938160010100639312231239600116749981115840435786091334022564454490066114127409647965861157711927518642291364665922877188388166937099311185163167311075414733039587352194605471364655814993361955030158764276143367677750755143087032477078374617932763263059686210738150162059893871924583824871293847301666879115842234253196945498694628328827696113163168628953151439690388891955819241500209676190441216725098838217126697156417484883466180327859093181951635086514736758554061585710251129968778395087738157446435328369641194291743328346762697021139297550566939609979764118197494316750285585515874567590502050376153045599924751306942663707928415897485171256224728904149353595419299976244041593645299813223542488518727473968466876049116538866233958866370563120240137332134999935180368122510423270665971943215652288022311809845466074135668537332849971264681518888012569042931623241284591006218545990712511175754880564042392330035908116194162447642171883736003241489662879668134058213542670640579559899718026349786177703474990720384844560291877634444043217484720436341597744797013108301173336367740356845792977942395953116575251144621804665977705198306739687918644982193083018885031811922459416820893308701277977094954465636520594026579322133238520579395290892481213097064315372721031627451895882050935400580677138120682409646119632195159096674034600011608627994138685349298386913096039912601826482940346766524615813164332075702474702817188605701965942661580568645465552884209907288634445601087412976068388582000076358799857336761440382732960361994865737613811447787617775941898048065161526478783972059367768890285625139840074421943519570757625832533144625755826647208090042857752279957059527787361829473849228620975992864460670815567000751265311612358928100637499586951274034663763974260314091614353790428117903500614211612784401489120079247830600300289317083094928910016986865586498472577921239659619749394079964380873917900618824333992049850936051353673530529876541128291512305572560219409875366602849729499663944213257648922507947989512212010115541388056487524987820351371171157598113549394206791289126538458570137245941760349892997292701552494863230532334521296348942836186751686690119824278172388816927281490347207099825547045206588685822603186456547263766126879453572688727441889073373691836949017897017761196227700048744919716246256252807936379249395679005813603320806718911812106522427192203280624180694601793252249392249457660879974694284475035871469912402412733432831606220027302211949452619050482032512768563910735685261246425268845961591684941863627243573632772006925688714063674833202532204110190049846440509127533116964942251467793764522025799641387507781998322276314320956602974407745615641095189428723655723033370343417960415851399429296103915842012698508610184104786320913141575209435741070331989480828759802213645455420108465671990492813762818251336211849486224499862724493091803077218908184821027423301353989406295056777530542457579960105381139958417814273882970856395894302394318124457881031710767290963076939436229180102623449409260054323154666120443281016490744699311920783799994211346816498494587940497818359380053715280609270173110591089222710313240453123435799064858587761086108401709482502081741513538555903978680437247218488552976283901058209668724900538143045575258205222568890505645215835149778585555527217215797834206904557623054268250261397033456593736288721303944807393651743522639495884982010619879610071015531928774364907820112773581525812850007701972403248935445855824398031925708304782400376063308200675612807291439336125911256654376289294785340365918230525480913783303870139632694088341762748033014596929799877263814240611347568816171160824948397912764042164025416691502004854082229243434644416710380282641481573486925508696184118724180048315783953585121560370093893848602089935963940225744804461477942159429052073859535224633052001729134040030315521641610550029664771865881350811496448889986844942037391549519970319383527116250061715043959625780469382431629512743551865387673599679333259016501333141336366560057703917786706142625022440857617648035522393691041475283426595003300784762841884765701376154678008954572988649407925120989835316894329182514564112779350486045782602636234158175077648826036340987056741536037907982559458592424404250382580989580652857607471983122159833547839679442185047351906945188611773593005130058550057536471392207193753144674199889738762399204027349165870716468915217742347939607927990827710747854038555392425282716889016048089237931886490735046667889354021410637957354311815902797826660862065412704192768997370543042800631251285611829809601847302125459867920750140954706639259644547355466634501472269675119631940129214348198808515387130037377495090553222913123462060558768357161001476217270821386528730719164994733928084567569592744515245346936794588196239871601619446527362367590810211078571935447156516751347231635802844596420259227702317247016388969420442540278896619898591442247068166076958305422030759743470631571304688326482164053632153239780525071112087849689852914466735925905531538388331881145752025922406479107006319783670052725126017614697667208835772576026673587902892694138732683762308204650977922770715580391310080890037967391845578325946812528804923129513679407197498394672940785829584843932609814849972781401236645085229131108620949569971107380136882081958365600914759134659892347763106500801395607837829711446436262750891872230031290925458117227055660820957020326708003119544976700912384176011629159739366875262835112008241206094698906382219240285310023483259213802527935779900462461421493386446895942020678848494705031689976598646990170368831324515460304586927384958674372963674431524807313312516696639768540800694506981319220051793833975019947006812075088305555236737706411728879106731985268242329271997899746570595064329463732782189393541390421588189477126208878696925936470117344791809800024867777692184547546776044033495801559541191628796304490919516538263802011849825078628907917656700054267374507952552578716383399412208467855553442475079775469218845270577168830878747281844050705732692847234519753699158182225141730860930631276474509969459172723067796895644767019538129319656753863586056083037958815129237039418483647865724540378178606525682333250626261930445745449043713817034680528405855110163850439709618451514215246490879352827564718476926162029532522162819635240995337514154822845813215797918664303292758443757304429951080902468465052843804960943953424871082863646993867835387978290373688892028286054993662349463536544868424567555071679728699009968564914560062123775364302180239790502129289381362224274490338182001803876695966599776772135294430987676010633941710851740755679986816775346271835911973517678004713711955736087899480805953444909997000756149775204972129876987950401748280200382054684417103954919590334963843393636509871804530342027292958217224126925534781801976409167081394022206391451932139950258258926203864866306769985219585745273825413972378699344143098675167751026916160547165496724185056604299805093217766376171576498760321378492553849812745702263279394892402403667787200679809590457797903052042480724667894765010297853632304750582875011930262075379687486573553047648017414036149368691050367166432022779966371028307359424412760073737535877140612478448659288432381050506900536541473615552841671751622721747497526276824775851799649547658994636298334946584914558770078036522964088433788121525558516444516617075146304442847809379934844593995866212763916368277375159235893851241480165425144381270873665191234788944747257097026366471594908430515712945849661141615929436289305712449664399710638225310303549145825892886152994956709951387973116291632487101797925362775311776856099670252031070556417671156285646137297700059819570347521975815146651505724852122763687452798695979480736487830915549982112526644230760817548746650644756691264855842919601611837727348320264795043898176779429054453130407431076948626382804776388282585648278870984886491527535563042463780230878428290629409823353646851738404281475474836947468499094357535099692948805791088485771919044592731101789986446123825806138556308979163679889530399285166595640660473893317841460746825638052093509628105186824977549123271321103694607555565384446512197104257578906674403440810107229240341746121653754107976392299424587082065973369506022596977343769435988836575411835913168348489356634893675959745391132042361250914843599932264249631208352056999353656708962633279381684773397094468249202186696032316413371276951071577903819742406016198224355990501781401664624657798566736801165262603760808713297698457599381280674967076345900830036601938363118117179025341697678855482136362306910319532717417245028887900599033693667798173962531436577399435643119009610980262432940142038567938180399032418522646034352005355396639556827983677807050886703080957889030285105638754404872278965018437933109748661861958149008538542335262400368134013995576665282771172369859619269702249813488055141613290300020982538685735498748118076439471286639939741888601100306879026067185405448261875864463929325001190373753254998788630761329337143645359164881474768199762533103209167494930613186587134342808376198330518607315187695168467984742745175924803041288894840670107793876790335115845121747046557535465315812263982512783534467890496339314689250770603761806457678178854883880006974940366632366382888810050881990644360137197860627152547009203762388137557509738954494260103945932523301515404026202913984552395370736764782709534025383393177040874518324802692333665929006093402058246472417393335728299938483213187772988075874749751993428105400300784477502113106548091100013502912513301308023427392120813869810429609281767326299890789543863167691332645541988101843450257887806560933776083096516624159518469371884803156015059019740428745162252827757514238680866842730018696154927891419024903428116260617162616957251152727930850423564899294893481060891455586162027433725360064245478141540231436403961103202969311219320164747369037904942951115720197206632748245632663130790388069638955724824205567947006844575664502351160213920231246037173596862882782407544288033326156805322219696300505610475887028448744339564134377532748283492321839213105360845484845885896619074102821187288719630870678600258959768710102787368757835330374933833558127620988581081723120337530473256176389816530665681624136175260613688452231732971534171373383175954400610248136615650186815534814877840410311026395728481719913997979766550091147194966085775103501184865886038433302955053558474006153083302613097577269879965428674682750408883259627984661976892751355570618994251018267658486709581858737102281688009405108926726033286419555409902418991899026103989455764982589009020301298168546623343642715048572495849306657393655796806211757354362965985159702478675173297660899656776699496896329364490214046280836925244313388225639731741137940444660340093955083449469890431544465762637351949949477365683426873876594946191703151870935838472233737228123868655183514838933697947737362327119289000803243157640613768146961380401732228891426931818001034862817991542096652381962222110280972227016761789627251827400299675195803312476139808572092871396652915587952746376766576117252451159073421402978492270287814937540782710935875336337225578496499823010030955588845005780818837080523708723055439680993428956941878082615806032266494428701509525646500454426963675052185710760354910641164106273687657259811908439368418905543679963972376067113331068134762060989832125390920206310316964642039034724413321866428461284586786839799694126956598824422331018694376594945422321276073645492562835362628607135656103114177200628138523569235784307220363264926192030249726038266283966795365588490352156781764384070177294480576698691920362207437839306803170100021941341098351308677102658816771417217906492508713450048674429441555461932341205232262388074820911984347878790041963912041442559373344847141670114906360728952613883675834518532560562020938352993779251091623092040839229027578892696161217096654316934013501895789210315360149445328587199428148264078718960163864763148861064554280215282048545285520309764498170940979659194343149684712128856018807417901802170687621365569507213887948801697259998603490998074126975236609770597191954705079984139308023117983301553065840871342479931227585225632427619823793056762639813318143792551608246351035150427034100477459363842261949884230828228388631318719416016350692562007937800715479324109916403466094149373703637823506321490713747605869868534489046095650337404299920817019831338039332904338296530671299527286051262039105855949447013741838867194399933207925904404184826626456736896658231501601328559310540744957861156634717733993221959229588899277033362120861667822994942224626019927946599616909465375257978280959949270067297736582550621417983275306110686048720317537013662663343244955907093925895473056474033543038773220912015764521373013445697826882868356823335098661173991426279053250096410095383217715078334462019415593226355283260065323219604918211240520689449909013734358373648177510147937349370223304961156549573224168916936867675993334421949187913237285819671383919409372603860120196456006187144329738463874178864656535582655234541969425900015112846880369214672814919991896562343984405760277835219077226059511640560864022290632506918462195446271958671324676132480585393952058696495153159271108559858237989351359845214665158236313971394368352881221491419182118279302701501739511115345136463086287017651225351134726695704980834004053789237724125812191924488766047089544535704064769860763658784101641024973706413248775907714347214949505618318740829393121343394468515065329333978138144331385867658925029058762008702749310596058412148095278377185664655494953249087252617676731786892747299314184718240567667135673775882402655077077842314216471413923562186966379825399246476052036851943576949524539914012595487999607886697938076974593838008811125410165813921417021155325358228067623680521848778244686645369055133656955274395938417890199223178645980545806700338867568080489108030259648377555235657731136948122943247873455186806989403162036924543885554132129860279792437193049875422503210729075696807185861902216753185789745742820310043076707031981223520554204498487374552390814444804402483295492021614418673652778681305992977132031062973927255152221295497443283039964555328704368112399624848883071905821153031080353273413910867792667432165853682169656563713745096023588922075611589930597842435871014382367040662430959001270054720798449043953859814759215255701215824161888077174226853352056452114768921554741357883811786322615930479113390564804582167037962850807061540945438005938369355545033823402315871703121081243082388992494027508093125315128649123565103525380019931963947916135622891713811252374490617096478924955637485190153095732547177615850662191432488905727652861127197466874006227130191157369815067795830550833315465880000378842117941809102713777586125728853307943735982338032006900977313346470160036330369775088790594454969134828703752891101846668740742220987899313938632642038660033227878900247300195082055170157787128922170402585401220830129261495833088038789448726648039827323293360925227418410946952024580682843075551551300481881754509286107708729568157832242638460659277524764112512556164496916485692313198777949704648513907633612818774870030483560163139386161860539452796987947353294671894758392597356653806167293892619173344359854429075259101076982312332910850791127447676253767255266376321071936409568472279471875392097686714261196510302582009965380051230726489466920662343275373739900783637115438415445094227307676280549177468236250174411277767455452392150777571196685019830705094214903115629026988272915378143519263130127436303727132351902330331979595284959558207365829586370565384741042538075566107657302560316716476095578517933853046904548706419459932073199699430980636647593768687527926832034271131176050270193307966138000960177422647809047371710533944900649142191447026049340322331832980058081091004475914174186102294925385965106399492547114977551628297980602076925875286019745009900672532304229638461984697103820234715290298871137365921654327546139582730142053408926174936836627774795659133241868931934864283095286549302429906157175419679503023075928972189109317490737072839386359670992810467869481146410403764161822362911231065390666286766828121125081608902702112779273906354653903546894388146995103171494517589243788082742538137637013560685482854228579757435167513781080875026102098854421306673619648216506732557416197871624786346611321520424324584921466879626758891088298571528097598891122471411460265720884150939335658625657165718066458192439710143512338534574016600405973155840980945535589119478500799653722296048164672143932163770179846367618239384073271765911686757043703040494432536870039717686966167319173467365556877339263333616186317120356487543369422317555764520881695601055066150301320807536042059492058652106470850778416609599360863230148862894629077014692453895982783863419309367912812298655238489193810059831404121240936373196039453906390647711840276088079492709143480916884526724285080530092213559796040036725751266341691231823722505126167634819370942582690219265933015120646126147815871994937796494972775071393356093577498979723654498643628413702213515043294195926765076264505684410625801256422912521809365781357637513044383575336535161888164687008706191493863736708585795434850893617434979724529011221027821604709835222572994787268046448344727373576408547524693810749264931146548226745294106604791789125746732765222083057538048609265497557839335788172033539481090738743852702900995711842021995545648094609477885074168217104359711862897795916606412465181733766969106012647039450441053051065607051781331742340487922959683378520370866549565602634688974775434448567481941008906025729922790003113530219962899660960552974364130229591060132874731702570940812964780288767154431270372102108062348146617301024238500368110696193863386263933118897636534361406837356018154287546759257829085920890297061791746457841745771731573421520501283621330461920397747641147871252631304317137503534469187836846376412153874761105133115604517222476930497919420148471569384712956882733604737045634586994144896097632724403710345769788683133208834133522250588935036525133066499892992947446629336348666476627616585698049306931830811154492896803262410460212765021695278322238282939771008759638832180463981083501641696345476394880890603887443756777371038759657217775013381295641360263577016940089002250572360783652920843056823653241316448156038326121323688378414727916632347784365439489221442368255408207927926514306538160246200041984253625213650897921227876360595190848454068161842107363548871906766015605487733495443003799865216183436130551332924302124529851232671544009992417489239738351848669821264229996326526939660244106116917131952112504228470743451053523423532394271394109837258354286331382375640815569764084840483418342655724255318018535361057870320211719965237598397437565843124931131640246200540181492587168486538775822988939472190519357360154510424148313598880686295031950131584303454506003994370401803700231437698262736692556558995026835125606153801368009684427491098105305569012641288582541655773148751297327487935649514451989815153737105736313923936296096875908641597371849505485752952544708964352770470225231753018665634086691725100673576630898455883528800946938418524233948203682151336105287831382634813076373853248464965085929686206889048365409004647140310678116553355067554355691812232617765853916609390584154646715198273757437763694419059657572820500206367174269161871580852012667211862436617587497294495439965547286864704626768299122606438157735772049495529806372240996335107623276071561435120731108276972162726070055543428945745118712869864521976099914659770018105830779754579840456444422539911697636472534273670844461482297607281570050573510693401130351124611009970139482044596135535263033557778520063344163686978471561586593395343195394071001966582392335992597181114832429850897396030723870955960831721986426383094694437363598667832428266017905102766065739692838384657324387590953877747210983089194040847548603136222117798516942051792111866911503817425945473380520229843719789885647101569165619635686088426439004545468640393360583414034540544682873468311183227069229217119785282923248842475507913044491321256319436821945267440722739039629694795426598216364299388925347211025011965199477477016584211046538135015106965256304778899648835740525274958105020964400048773874395853185822399371017770368971213311031266760121684262592322483336312435238984724753854307316344986564519737214341509382528294159370318020453947797835131074594629075560117142268663004890126650699856899801682068174642854745130556695296005849417239874223978409795066816984594338696038025012773192236514474796116713825254727454307011095817930999596311043506260324650688597021018467405071067314163621695213070384172224224687436988746839103799892334851172592324595557275735291013808989013662923611205738774970216500789247564747628673883192743187227582840617358172063069567585507422333621633040284819675682755888393698622303410086248173259061924272173254163456712758005843626788081714530495546962174423609915334322086344655491642597274535432228042687333356879966698735661529459140136221172285148633394939658485425281750014225304085682778880673191647744189523115185854342929467761829051880355615413452105101060351348870155098177149786495076056410925895574514392891013649432573111824908513285147326285309687629784219155909709456634475444750408116973765517983600348349833082799833358175590065951279001633250706627550980388940222733943976469478312897382419635121550690685880260877872515079682997859042093843613130485231974944623491227828062531023450842201479494255972930335100954453828669739842478295113537144663187953212798279201236217270025585300656752618638738907007116350987939295648749512332987509591529498216910097440423485517801511364773884741939828873360050264126242393074792223344473851208429862217354162390600197986854686262138681078746149625627269655227606289742736802002763631103354489951029364697902137882699391053072777024923525034250986459818158798950583592043691204703494542904036744453334652870395720090049438812621661631886059834556911840834462747319081685405613197560361009778711628392017329195551513795384414680965088910941757780404016380345413224471024188986865218002658120827770785480906825961345964805676646926022095239745394676734727730354221669624944383732209111092864643877197861684221901271209232326767609307111017923132413862741632089624385531379762616861590545457810515032854079753525354836216016846716116229783898150718670716812367102159644261413657855623948810580619592054660282980675745308639776846564599620134002783312778357612178466814157084883297312561385862730717377579193390052649876320544928828877578520907589216887348212312441142044688538940711341262171478216930906602817017932852254091666245114229722891316866052238224462866961061432306441701035332755637022455817009195676085216232239589977359392973488191026495276179702655485857866388538639279507449995297813315710590998917577838002957501326718232480919021382290245649881155271004945803628853419487482110211430821700170164210951969414646189747192522799061517080664045290998842860172264706173640828864463966614062528987335176593365350772942548668234903840164360942068564746276460135753306077919836671676785510172317036333077485587563656921884824599047351994022489722468715035168057775499295119740753393644330256551362067050480005295096491246698321298488857363017134920210613575975161736599710400693278209983589465975754232462163144443940664264175826454257292963166109124352959640765580582327008684660887843671894094233178928737193353415266411994648072348796859610478323743284233826229314433093899392104150322840155956618011047187870373574642015035555767819739918624097752654553777371008919630530058993477664304664612622518011893513343933675640740383031014653083340389122865253851326349880256520480694184829258612972957296012506478221783658310267295334158792523163927304780956908175193665532413985214118808605794803907961647628501684465663616725580827050661661336548948638880944498490004152982660895737530160442259642801229447783519161102978534901317466555415211194706970693867233556999764467665191046310016157526897928436376711616699753714277431164892540582870044187375100924251501026583614521520645790826162640231049830415067666374809361958634038477711894530886248360422917557192160525424384242351761767994300638632839270170802385834406604714467026318369627540685672537733944130994640507471794193052853562645784221527458155624839504724987624083254349664412362595210220774229658297686034241754659538566021749929040342948645353691496031527795417714363681157790028000211826161076963927593206679361343632895212241984315274329490911887362096619465689809634408882615453593636168090287694976398309262008103275264569669083378630172996296380111533376028496966714170314744600562799755427799237518006073649252316295346072158013270946929777448414545175051499063253154360768430717219141261432112598467297796932972546479395463860145281525489318703251545045539847514409686549951774048131668002563973418886393520591633487737987408514381621466572202883708808429489868584191839008283558954657092889017720776697528535423160640782303899246497809535546371788246379285570945757782189042029841663008441895455537728309079767300469747854844788884428163410708284831191053782584679946661991405216195249248262572749806314412521762245382996285345595381626685085339778463604762991069614931286920788527724795506415554569936872792887133841742786978645850372447006248863919412540222835064525331931535585908346620699535260633596967537791706760522880985417260728408304319332770335509984838858481173343752176875878497246239853779040242494092599167916730061730156290673242783325730561079107978947334756458764817057171125202590366354509567485791785299729531967492890283490332558735935735768654741621690149452214495565166702121196241450109758224031911444095752029582931168439252075073096239669897501185459330360851812997474380973677384273522534105549345525777433362805463459303620151584521449369564818112104780022547678709397292298942639767867380874368917116054993125089881006245736778972059571162254200397214834182989249062628524774037367184896229760193173318921656851588568436976984034412480191517997830265855529407277661751562363426760109892611079846572336099531486289086207532498650157664506502452464883969433355637965216404505176979026046726401561579128490844042956786014513188573755570052320277567121368851135939080731133126040802470345213684868604967667642306178838879595034509885114300249331215156682738311719114215979758006851235604145810894829054495535127621040673594744306485680219539903704845450343120562273483223358871805843753457196855962786549530327077832684966769151475349054189507179357201661945783339729879125555238027131510061150579680590434944871563951317158527336864323737744350197718817562923304131636018382708408012715335997930269976834125883107475442858298548064788060710415552428180110447877572149156335442910671091197845110685028827369347356164478782774780734936745748374525358948240594312958650332696941664011475318892900194222713877603606158676465107156954144160877903405492620080538005841018013491942651633025096977375141197455986952316494096375539835233308059187649246516239502307519322778144787944487167230353811005981986634875727100139433042506542454618864297326588644323483877671376895677384574279866138784748106259950629646298787914879007025090372994968311539569130994609820814411530703898317178390291263122499680521574602793921132108859088476685561736836803602521169002875030717381473575344636304055892485982264614490934382043293282531786933990994511229019949594605414428530647910560162056314607581885560940602294733588785666978648786679657216747786566985020574240154136631765072858782136175781752662532650976073655063906731972241122329853864852920366408151241134401784891128751366724966694174539338291002129030546938266732691037306994024859063659889030882955678450957104747088031067148941758815788449347912863275145353406658263656880846549725263007477729235089151423846292531323461994830680853938000736175670376790729137532224972170378830295222897956093530318601793388920469662476144948340275436259603662916833030179209341644122919943781744171976826105733087509887409044495379054119273755052150657773410276364274509529879690296912556204553562664488095086015069047108138792246923519159662973794856255688115874983279618069752987192784019614036374476369926034289781594504219132285735413174203370175692553158011765504759545564116422433966934115809840649018586635670559849521837921855700539375871163208404503988521378178088366224987151075782072347063724400636613690164334659302831163546346264092741061479318246260166742184689731520766225761721794949142562750046352834417190534498429358667061684115237872112956327393672301736520352499260835748151225294836549438313842102011821661634688671858991335349306727882273142386943976727597516297737755525576284329214970037685248326989995915481192453474724327825854657668011208151089599346602615616784083345911094482463403881540476571974606626595554495210205324798743277585094533879813309510710488851380590429954340727188698687134368838427777439521312649974041101487271786318163023772577462807424183560706184841489252463555655237346729885324289081835598735800923282623355073357800967529288497835864902100395777250993799798592942323036375449936919714345354035611877652571258025402138306076061294989203595630927135616705268264967681423147230603843409631925224527737699491954068150309426994009600080080657337867414382776051367859052629336280953089652599425051026068820738799242576538117993511057454572561714395124310655635599412469172474468218180423112200631521558598788809319377872836318825301339853091751115755137774512581511505131458661017635068625504461116752353601551047931243047127964750950260353390174035092954627733214046093253825733382874392533272942168718733396425340937616764711230921248960812675831391944108054735909097417628143273464578538960202373462155466415948158626639320852167668634255913523494194003279523408317301493040555266637023694873727856299223413788647416488934911489471825223243740412203381013607169075624088075107790453798916221592976196254826607035428585046607758055131259180528031506800825199595695507511801149222087968338253715143712713229102231650213334122178542469939515831302423062307536645709415649083652081712714583123348914308425257681899417479454091817055472926672767393931807088363261124353052019799464305456697950739817074464362541570294517250904287517815233914241687559540291674128293250341986647352966997066091081752768830512062128490857285557159464269361617097690857923455002577514479649829746013229544482662503960808184311600514593919789020558228557924475264345548123608588796752677121683554686436944471959603629930981450028841860858882778485454512914956259848449399152119169438327162817912611770736475527701278541668009970452116442933298001796021032489634738991591014948695102004892100387092291605520422112431325776522981718237397845751436586265694075080286163908263230210677589546943766390061392025852093257938863166109434822623560267586830632997397530114183426612411041203105166041452956085292141632139267297343010142855404065185970663086447124276532767381416250447009274752357691801977275043910900635781252024859460655036359260384214147797497376590677999784969441291903537061852489627839964838051940589352693179445079602170162964614511120036578853810160909029114814056637956644592281077778452298174697729786217790978666129472928237175033020742692458454168611938791787616716058321182576246621600232594895605587213201947052538501475884632572392365616622985245947003615943879481551592964796915430069902929612090130829440502234041146076433978005421463039681618805491897221134149008941551560071360187903726397287064113904280445980834489987990656949608898919891996822351590474324395141996810375908417700030920143731432111815185541333603624958174016821595636891290200534656892886961648930290708010283963144896755158946979788819143480829699455899557879136320747461460716229207299153010194185921882941174729449966133866103151090210993361576124804084247957686204659574883833181620901181402638281046819833633226488458045912415102594064494538672081272551248688755616155657749960752801329379767607259009908933444924780461588659305343460059418615853014088664899759719086976580864373470682583115900388477329872971526633158007204038467725400533236354738760391280097574339543565429718738851692901850593183617413488136190813711319872333415903234254526445894151632429088492601861765281318126025885600438712789705890931508305131299550632158549834212703195542497764689377400865038492247202175372506115285650710752045761391958996568732166149790897315343990220724458615537678960341761915755061393641468945901216911081438047306232154644646410771851039164169357550305094689086913705499644342704631655105249166730073145588426027472208806544045341964794249600297880830310598076729417465801821708921313094654832697923337748740935869322995461884589371993370559710741214081925124226632159978277260207789247159576500415832792354335087490927128465246296167778421586775075535624614688412961006570313203454297183512732708716260469431464307466715389569386681615095782728619811576756356276734820001733513580883375052006060557064286258523991583560832803240635138463311165344658640133814861277761634721715706925136991819027625843179028556135571713392067346218136583243865819137567429180171300217087600083517441712323131791255798454809733394665126517162064666241809788501781503906812176536090891366566683748816159336100162599363732374524124337306420985893351983741338743311128714171823528387664881863381577949177409416964377834588671545381523264794604976776968989955151916611384023120761671228954198390886449667859961857646478642761514904283170457193371909528594931275569700721443430117790865238114275292424738520634824299339122143680576948117866460532253644754639319046824155432036675235417813230901267554660079033028269150419694176362884592642365800267500091805357998134205794704783339234102456861788525196356190320371981530445695564540376243019494189583414824387213219079913431543280341568921630051330157769209166099362750341308344673451810796264284710241324834700532699862910512595833483264280804232721492714431452523015924787769231700780266432893649119738664058697982922732139452482294381218021072466684160449821664927413756147636972011191016983895955997764125517835760893663039939988276545860443906838699019315284507409470715507278915476974979087097013801787462188803194821932669351889398182065971955206957557333234065574411974837241846881636661458045790578587060916025416225613241588624025066692327451817392283671736402018086807497886159005030305603886683287483072395906468305005265904164284028496693767186734061708499546356152463623882914539263794996830679821493869760571398673537100029813253211369050058941500939331725160604642322720599694212988454970057605497850996846599783323172263469564907528105324805888302616182898244372381237522875453028771055889958079747829645934340256465582390228812755441419478777001314629020119455474429464530197201830954088782921526582723434537039747626598911788046182139572095001792605832702612680403653660673806103393474388493813985025212569683332803770560311373735738111738851118995031656444474546782985591596779696280418940167820012844282047297241475540591682893062479834114217737261728563803970127005608724686391232837225186027196229480986084001838206915778593785016219460291783976720925053246663768745702273079545625979406040677423986791535467179293026831334617089051737763024339294752991532209466838602909730764006938645587318791557050190169828459113531271305570516753128567691627007218390015520772333004108359491087659533596860511418385021779304451912837905753882682544882312322141397487695755543786543344047402304413902101881916145743696582003429507196667471239608219423321440184678303044231620674246564665730129463985754665410929834511139342285562128376358617702787876997260402691514195100566153610113855919221268928012893805676597928087687573322100591530460447948621661907797650469392249308506053485394212454173260102940706558747018706363181796252182850411503866966436995611432107521077881218962833704618240401060173802741833338130137305134323734861589357237033682630884745763944534356404394261435905531510051006385976787136963709757065456233470163870658160333274772430850164178698336410430682960715184282131418037413343443063920746303962875626251485919084818239342684693872079084655776263445712374043317444407497580603554085872722174978054447074486935483615177821865091747958866000597769064019199324347244419222701815995937738021793952116327990479331232924298061898737663681693392432073617183496200508070522704739464310900159049817454742662497261440874568311558544278668076558583910443600120255659682923693173680427567398089457482797797243854130257783912001669728860803674712862570654173079085160305677211588528477685899312468701131786313038514579637626960846250135880091073534869324152746725697537849706520575681383137493049396478325462766621867624734691647463687870201233130371078022946216961475067453670728609843349101643433347981060206442401183692362284702046826896284093275738575143522830567896674914843790966824172204467240186347969481567560776294969988216274675191839626910472065524024887514702033241876848367581509530496197873710214224774871486208966280168382163448621175790413872404422844780941856776964910102804092089783632921893701482784765166757097215115705195106551579431652769415371122825212684207823794691704802516381007791468083540940515756946968456553468363138963923021695568121989077892879786940445598966422356609482129628543338927830362010845872888283385792883550951541050223064079472646772668796809515352906442118533061785609975369879423664572233160136093229566303668922233158792707706248517666518366253084623765991308202279392684815023813036676745873705612797849247360396405624010916694212716273320403900539672616932150463270040583568764847603201859253818697532522463664780768437606325598618002924865171512089238408085941540843770938944750041726828100634389036670974323390832443577875801545045878555842785392451174307113308420610577485043986355924539214554598722918502128627272643158461482983890010963866114660284788926997210707234197029527262125805363957294098865925744719333931000762039276671525154652254585027323390577233218511047830265139001566975013178269288043551997385421031918108510498368222891696630514261191423100275613778784379620879121246157085074431241460101948122521215079147661756224762139778365632610065076564210574422174586517986101951136828405309240660568146390829368180909713140911386733641730287741985874480829661676152429185704143647680540322731325939509175917998554127200236885414863015032449722881212108122061934160007836768679139558733207225512800989924610582378898847941118865905486622882435841101099775055258996852661447496474194069094664134430449588963853502737140161239400467450824551847078228709535198895339534054846641588419059014567295491271705871658172310439918322026507710528433043944672755053835049607181444115816159924749730412598482825872209613223794128959471620707817159495996991978478065243335022092611271375931945956303697988760837626013398066761681112216256645063307403718468555601734350790846396030509993144015208497961264359297266630497269555565297487853238182885647829115099683842854719523012788872365491550694991087320923322371494656807516996771214898270290464611708778493334143931490914557977630353322480344717206568275865687865103483689331144625249266042704723893393716391919995837506895123388226122473903508149846889874744145188540631629307151889273195245491630990230633377056757683687163152875130537201285849529912875819115730595076329409736540855774959821074845841028094701716568588128400473930303674327238364027414621974836691885513397496917334794864083930890767445069696877908350691071924658104732626557166297041430628695616113725844950949238570348167083683450906769006223378120832002836453662779970540663790064703593541721213610743383230972163719715200672467250504266774606113284380661857710881234033075032984961671682492353746627382980159413139867186301033021205239087686352013580733396670289101233942737000958641916602058776341486153939524310035796413100216560560890034734563658176190162598213707741258390315291400763858088518074807202186960993684786963853160459711452867187303611393976908492988188299742002995078762244999279220443187802147505598151623892820115903173937678972201436682644607774007455990607976521466813827302451737543985694285892071328037350631291670732629199785736166856048890081996292463164907211009591866698677952829942612966565464660072791110096874996685104316510576781764848970941769044525974962498596169472143095336652901264119955590255670047716553347992550519644960543259494146996181174048927407837092374947953058493573486520332228535943173114540354018250062141492776028981528261001032456801176975039421793310120630557408360415908249379777655052986376831211550097513713404677763259794827555518179830763284590713997443667062223902812969049757419333323126927049972377522276770183808434803625428076841608651950113924090350402237587092079769746339896966745365740268602321748552296559598888572132709110952751774065141056340890524649767215555212211363694656700734838538510977059271970065978739950265453689766240750704679303344070014673385165368945201516125399081942510909803169755736719044375110249778309002042472322681235757165582962235108064665897431092516558651291076424829387008053049335950283888131130610891102432589071097156131445191818894248576158141549183246731606087766763708126235963258627900639477367725682783601426458273910824276890815823486889064833433069043159638592557044051681559454584469424925241193582616534679868276768414105960818504362706211579523232578210309950021804787214477564720963051254419547891834184043675610787795428559127987045575822834468374670252306697569330065326529725807741804482502930846325160003347570575244061971775467664996095287629171442681119089615940911058110142922268192643601460173445553444855554995822157909089604846559045311743454344738069951311533702913200234121820960474695307143761791566051904833844118149241602246241229207745313624982255833538162797036588963845828644255345449383713092590964436602767445898406821409384990657026881346902283825040875049509494556500528769520689398369168015171828321925451469927922112826587931767262180352675961662724693031369258615487553322171568764227600618015592448222076885043883523820942949627721948117544992257865114702371080533523350264178967244086805480932380670368624086519024534357050344482738225465197374819833783422209477565111923050673982991224537951800154352497195340254974616448091665242639700681149551206514533426202930701822885600369462004623801510154248948916282104171155067297171449255053190131334720813297264491235195504115700030118359048832876162186986213612068265710211203819016633400414939496785573274989443781154380760081482079294024529695788342468024270444668338435299767576655216020964896633201944887326441947651028995880204630198892155535298731267449146255657090525431590595489178994573911379878503591018193238813696596571223212601581116001961400043910110149906882295858331292449631851589184731682051265347151815535387350180381751741457403430489493408652213078975791751862544072893553403808539696321946578780512384571903707840279796593914653227249738760180539188117171384387785050507235205503965946070749004861141769968008713786828093676066294667022740294846057556428511139283178246965617923881148800280017099743889744086933782028665164789564895320965707202874884206174553218439874028577729032390892857514122895061292004524671880876481636948399134429040680598014757268529556894316111305429634051475420392834220526317644406989097133418701520180776080933322673286369456252207240555612192125275100954654909498000114143292415033543689583433764533016440893809475534149237693008894346104541438886412324208042968771009114005164319090629036478849579052954868305720462556037264970648198618988525063584413972386002507325049028498207882537951555657478343319182137448037351472320857993353131585590625617385134976587343878958512591986861493971849058725203182900991115426680063965534133908309226206493903772117815216041096752779197988968150713797276366297656948925321309410495672215517505656748727377393350736208252856149512769932182012740477885380135268495651040757580063280365673533636530909939157341801796164949629532395643703826017441662977501356334455759481609638766137090050688617879347346500139108774320330408031652521497976784668302855636626968327632186410555873492536277179164707461682040311762821817013345416102369590664348871054094556035607367995025393214526521699944070813711490225075138286139251433831896233535697523719086680899202468909002729122534056501894379209635006748803303383154951106918032518440476836016909959108909615522097057349847090617582533470978527121366752860003330810901215765965140614362640542731014657252296108653964944214135187390276865984000850036981400294402921696558916796339801010206413353302555690124644736133684249561447596745407892193529793401983221434231092228500998435907117480707777647197098643536923335744627925041527727594358139390710349338394859957060761677186460864471867551824262698611464855634065326851397404598388695000249624408708900909200234028569606965221874030035720286563434793011216099303572904904786248091261912649504894687491138891100309232037925893936728525597161372069391983790771597885134847544959557070341532893934462163251580303451669792844022460758318265374968659601032560305063259249598801165857031500180033787381389675784183330530913171227958726024303279337815834984662247375307707863232393368498647662682700682274917640547616909597790744532180086702190719988238153383665495456636908343761948720398910887896606497506824235657265616103536229622551071663305193613495880042766969583464567119387244695288656370075968141961862895644285110197885736310170780738117899021783216571550716275233106244503038222081827888941004513269951435813528193780684414389831692411615356439550617768725763243557021950941900684389991969341255105831984212218296853353884812935698166473306159095211719684266603747663379359874577256470911012610227679726250162295607686029645224727458901343026330421354372683728557204561715441945955525376237502346995290885314955682047457806998637325728115166039315893542587442026534043575742748945434428677916982496732503749702223487641491621812904148609657987625636800116706811786938813627307717872386357191238470677221474502620833113560944612951069517937393189338769334336778015995953200334258036454070963902311675590061470402685035862490286804089150938213105633734638002094942472832885896611286502353427147884927419510609237797010780806414529546354621174578414443232829206636331181492633528063025157554914198135249769514432872651684566285935749214164753806222389507749428883984319802111933213715631776864844509086772628580140502557826406619305217545946485433966602883988909294015939886417754046734669891842415012556084565904071900508486467734686586451720301555324071328740391511300197849909961247887715416787218663708611924490505908789805257867544637958993745928797578306310123094418610221392164241496399438077620183834256318260910915476216720848306598638386370660674881889618386686169390967747320368729946651043945056897897854313183135060503581644929924408192845892464961932773458501566640868399235264304794016072393080996578832677729640462937441509176777223502916069487084149516294211566053890221927099972227313206079335911007547926382237685756456995110155229726664063002371393390885264015450836148241294544198607691016742334562491644825649615246065186320778419156826944726406581640239502360397181982034216523386843145550814872253340531271415027574629439118825636023837649855746766709993175306554003917029575315879728147506363006780492082202486119979524424312504517936676837039551868544033988884094127288606586679713851634476764860736697254474449615535139985775161993304545006145512912949345595784029903249795801505341968917681007807146326108897829162345905116851578580684328993987493181729054828211670652271510535910282052592653457387493240611463544677656087366271051545443518745836491314077643617351521312116843071685506656131699331885468497606772173155109072619899215201986657332869152661658335736195293246776055498340475455752800898835548655435537089489227153251259851701151479464062625246437902773069977235241982489430908861429316340085237130219017032345365153565495199621488923769191823309058311095886538312134279705791091113810452740394422037550927240517462608278162665438874827659019511649243819012839360247331817532859703621949663988335671836775499364070955335381370542766244475762227537893289549676085115211394673807052475650438320033148453912586294896853986063648399379999089677046076190669785906656479745417791058783982845327088602440989132504971170547577388105415870491119991226211781137953060854901450099105248693732934263185381293015153637016544664772458272106747557206131415246001926513704690061770530925268688478902968223063768095814672491170709345264097368401164700297783764510496898578785801221566943300766784274828054948674767828379817326122202853180364356828489256182180748466516674970375296281792631550666458351882986843001643402135948494842717065299383136293708585197058939718347768267624761485800989202241310317267628489530719969610940711268721269224448713560209622593875859947065616442297423503907114944077474754716582636168597203932910643011952863574950387707198025233728188964726550693756843526027115442931648384939496869644615146516568675116813554094483113909935962896022380239538275054147279986669744764993876611074581933486239662427607125797896586029710154763016421177838007332732263565597009578970087381552118684524435597665787916494404905156668855000315007154832541412459871242759906541006161360203320230006120500348933480911233864114271722267134264182163783374783852865930468714446392851078972435461201290337250522997137830279482926397197027387172238503235671921118677633528986106220941640340624544617022461188275952088683037078635222447165503454510213351452098626061018053205085326461587093130263173832948752911461007892164309786231829340695472448352878143341756729857868809175413200485620055214520594850530574469043718055021622192935000285630524677325552515662695645855725586673556989473044615517253136363397767625525426995589148450069754302547285614268553837597920014423622159620870642081866590676000759567570371538234609663747922968697557015659111328453894432083708395529470104794213814959435795870728894751946489153702619495730291344293421980724430170336522108878309303423427170953519366401932289422430392779163838134203162150235133994669768145603548520219283657708750158900681804319419253653744965117955066226543652072013054686262323482378640465991192358598401348885682521473598293118075547378374235700482971327138924223786883030326073029625117184581246065959321493414959569748015660048143172398482773508126296594553875337824580183237083561980282657205630626563739111435248607276800252269655148350441358878138032412435697251962829574936034445960992125223859800651146053867406177188898318340898276795383619510329134388576970556167402615302847036722117212956908371479945828540850620407457341883180209002391542804975495762148022281930882795775726525032619377065186984221255561728782916250478678245555501103869916000196706147792863258483664305274186016973540376767102647551039457511551508085059070123430737101133757794110551650555010923281226039205701740298753756117363591149897300530850325211422646758463680975961913357865000399301856423829571983775103482987608582036979694531595525717578280487568506895548544392556243165699043988894762767271000228144674350783362948348499895467195424815516823321848207187459798937068959648536933026024649388361884143309196765017112467394674316865066355989685504721673076691572769601552007496614416434864420065550154273913831649543333937324830802773637208043894489993738471940329387845343539368383935161801575929304152628060289056833765092348325162020648139075153112270459580285723188787994987349714552445405991639308457648437336265976864054040079185230579504405286258764522475259642856807487773429743342515347365683062231361048853923320417845904619196121078199482834514137389124550434936698171600063224479186904144398651699820048741097883477208806554498521948274331299518108692288607485830853691573168862520771311635888641892124760754124171477503089324326575671037868417301045927148658249106371658537246799034067965238159105739759624458383337210908482747294980560330140254231351029319902612223394150266375419170522302949214299680249999333945910135620072816845651446847836524263705557837845155384728826101138765595202990891787076924979616689678923275035072184035886173392589426352590666236450118485028089273756740840274696362400298365117356418480780465183381581071023054300561208229858417318963321450595429469454064151848644992981141048259608584506558491904530462520415977996469929549701862334920760780758765349423930080529292046108440989327855176457210645684094484037447848695102291300802432717496937407353812041648259636708373163906489237392637631100872259680989905372941943199073957856406060027041578754429012646792633859600775041184089968807183122915851931824050782315956230301858124980312404634850520671759779531133744834052473272072729659883088369041928413960623678829078592268766621025019477588784284313324665100151280025889110881500238451986222243158960840398219683268837052353112029108519147611910675133392983702735933837546116523396177478258447230350307914791098230102798262755754486222599321390803948614026258340002378704976833663502543304855676482589476735978675348779899469704499214060091796420693358433786627857773282983402303664058814557660462842076534634144386687560221898663113132895158226227712899062687261068156961716875214305127385403711304078257211655666715121351695564440231282610210857477331977711211873732138767399709366557664700581423709815511073369530817790172679113604831763915705256862461434692314991366204487381595622762464075722834535898383763732478405654329158543774819236799449378185483817680673315303738114435846445094764779442710612350688984781905285518408303059295358876628662717000190302340784417738934372745239183668918535259605041168175265997928383130428224580578454490035143236444348869091963726974598050648874213830402531129364278762484506377081393302058431501437595622361211028812521023530446839398905040772825764076748097450279202115242884681407293929128195963727428168908645792094395121811949862418021006536448196051471709951482699984315360767155135556940772435620529776382653054191050518871147264601146604024492920631244485987527080644466810386405688736763007567018073642146405092482979094561913213905244794537559765744462102936073285378299497866917307808734877363098449978558025745515131470733227084626456270915581446268323187944822488639755893112572978089688791446472087663196103533232826596193498223242508612150387052101149616294299730601698659112547753239565984507917539987940040371761709776592630897517781164727978790575891479334955445281842116128968950433988680821324679863011230831769551507202943662490217989372853552071426687554189574994273266655819898587240956841338721310591884148426141757565957556751077357984926011070907790438417587966045914855882580294982960925832523941810838008139822064346181633846630365997322523996494059372663879844128031534816419827872079085841863018552715226981862286220385644175574965603142552267468406971073336613447847875391542162004360097552322160317916641593981738727066612980935605206328471215121286572255834597853985222109864973246786665233021485322776537132399385468987088508889478750036955087872396962125012600740730176978855740641389206304443564202194642149188139027274861374630165997022777175353123797906558246929542840989942111320427751052648138579107255366181238063627758271287622856850816149776617997731781847275428117790203680444425385536475700461089394241441717566639855266027326769344622361953748813585417406612053644501805177004708688437075131833372252943324921645288483614982461530999503762137420312307248473502275711480567649774087247084647919096120314068336326724546117855691895358825599108355660191790872224825098143146350681399757588831813126111633094354173817729026855582381277725310035153000211826937545206657111073416352817834950662014020858830129756375694899096692291928577983368738740246354686012778223494359068457921087241123945975642969596919101248079640564226097044114215784540253491973097370574158795369757425859952707309517753836618527206830342737483241265529624173385270780905638651672523097562777902899070827605842187800069459605196305844435824938848018976878451093605739824244263132221467136108602598041284058435083779486300953610915718568604958004360217139835891799199376977678204788333524826304375527587939526590066050316255054482956512147367185040292362141581316825889249445747931178557213803169772469095468216458569963979148725968904450676373600310942009019617066052125894955652900438978265003108446135382528447106078845310532448711903556468299783967493598096138643497385874078105533396511232774326466337875985351994228410090506922086963162354356550674480875944364998057731360003189958594719438784365397086200893134870713473693744214496018487005468710738402437056252880760793676570963257730586976177183035094274639223967197425043655093079339093859431408433201374112862377437662689046778555784700166274177431369387525659698171174560606895046986246889047136289739637629902687987812649316028640193908801013712337146130250608633158994824691696582983807904099266454229175344573255570585251224551391761831222082422034837938603642015037428601843714451165635362000287781198118677369334081411553076321850800895271845087436275808818613785467434443741251501549090272577219024632970371488767193422628867765022399445928944481128525144842966067906492717110910547042462680629324188208145825708000220893042722590128863799368008279748603436290191363486506727674945725839870023764912708031867514209599807352824768741489051882042431353492055499231232323965885778956129284177001536451000219291020546277332322796330964548302104506651140784725020954897342867533482527149485523044367908831135853875086625306262653225923354787713960092272508555031499050654688752307173853580366946108605142294942316669024944997887790397680081019604247102948376730267120107223198938608917955532347557897989069070769041814565557447116093521755842255792673323406486364850998400422921421740473846414567767092391324069715366542954921104091761407942950611963300442358345953814584186050440383639586138593083123979140779866568762409501829179739776551370851383937208161780709057020134984005316129609140405927052653004029590422630849035028648265083046979971607252036020784090474094769498531485104887400027213940896830457280423540744616082004496129575008850743121766386881643259773296001817970492070932117967492135756817134898586695584602744473917257791892222794130875256819987219132156630625721654803470754153112447705886528512634360265290971794602977853565313186855689771709797432674851717134300017627843071608311015412740678835105066288370277926191881749232924916864833084505631328083440459636595901637914817868184584286205751216602249877917121040662378760015625241223481195220860021364696557437019739513928035751240713709053647786898285929997324558987966472189243546617315483134921720573935921294568308789009343860788104741556239629739587990006671545470308628900837812534966791130392545869803072513977046891600645100413763729673925770685796991555845871785675163761475177320338368093425198530321683242952347256432679189418279601614568325471993576554515200413678514213681413117798932506532088242352756434785844476893754488541202313484453857049534096771091517764982656494438525398044814804006411995724763176658034018193973669439263876131071129977291566667178840836071367833165564740209775690320126345706403525832269801386134311577335239101861887546725463375728211489909034531328578692532536055457547076147409862698555348224631823930290308392626315369850631531350237195080167192501933515099756094359102606411811098727325428949214061560751338694398949691967974858039605937920772575804831283247954258470517346458767216708481861810142357968790813763520723125306496460916709957633364726111237645899758062739925338293544671733060502053266193698086613004250504398629679216554632044734013413656610829876347740082690683695492351100780587612815670403695929259891415962293815582961750931599020936405743913422274760356047764616099429403877050599079325664394723365044359183433550690635574991714413476150191017431089528436240084684506514522049029967891237099114100656565934961619438389883718477789519472652516242512854067243844226817670434113748190289311556765818543965530244773607917209107655765468623915095749435787078128052748175864257965552704796467531818120001338454726857585459690254690158994475739740122636814970233420009078012413401123463071505568995236248647191172884794745143477863844473348056823166966073322137656227908173919463442877475121496319994724965985972172025673810274397905949380375865599933733291831843476360781245140008828681270076364463242028653804489045114363442065795163638822543735355717070763275266054090167866657967997929251627434301529067434622881540087747567932446574891917766880823777731299535659673483582152623474752263018627918651285432489230646088842445804743565003747246664754878303987210857139113940396144415841831624901363766241970098846915572442393882863335440335004802817407786959117672302964650523256394492011199435724949687018438729708633643238742790121717460482727866150295832737068543416398769657594297370402240761119781938772450186932212988219687289915445491645646237609592040647654915921254631570613082279136380890283681916761482255133849494693767594582880233401418317787717137160497018078160893775217951419692614213799176120920142547010702221295537076195555869419871621077377908294372290730835192878902419110678414773923697162301668374531235790497290502212928176932980714539470129789492002060602431305394250734619358487558912055409572046878091806790987468842914933523860591531101405038181965960564213282072483217179475966617602928051456114021273225994842591446790053760510614288688620162644257150615838828355747175814589346756453908823782189289675779444933299691265596087031027271026345869724437932652715004487871464500910644094110106664105131266967913069411699400838263269715583587190613099869419894750823272270340990508254685748303209606693558621332151047281282182046224376302867726642969440136371522787684014158441420808463709009146549560752771105314311217159165417343149908601710676220598879866999385492564987926288827121390530267741114189439214385895812344334409201766651528012518962530418919681193456653122562270506275614232823498678169603328593155691571731707143245155046071624247553039384306008989862020283315102382573000830618723084817676610514869596613342442594681570398705331502134612514572009447516658970812086717500995726884535260610950712828693786369853350412869412031801249265237624020919607738378223892102532552999571111759514897992324149971815394735943192853175759369688312876365699243727046128968089237408156166136596368132767763462544953466724245694250024757095344895706470626098425012921421530321282034200134057269804399348346947235111937933832261715144270076734428156871676307812831051470860788741289888595868192331570863638375080715519913776013937838909093878398797475391161540984609236407992581798059432501569980413605389267228792064116076499748981885109178925298427431646949091881875465061564334259806844967370976626904225359906976169045513856075263718543871522335582909078516774235334666662411993625205291607144694753890670756891093280126298698388791771046850872115927797993385013840747173612137202341928405800492182435618081174887127875401887684418567831719538487661026563876716247471897133247958195759178531182447319985534362332523953662888065534286932477950231265256012070847226854103872471290435551128476796050350528982042234323413362842876189772021021603932829138707309793285868038917558785532106664631000670734871093604544037855493610893046587100844321717355171699316835148898087832514795538805350193507757844949555341918598070694911872990840273800562055629552780223553785751417113799195943456453704933230807940196022595164985646919545227481779697816727777775646299334837557518187797659431393296401254739341280498399730718780037984051403556952784764664377557040490565835970404631911355362041179107515359961554980536508686543593720731091256663678535691848603627647775727140531402074999173226329900927831442401593211442201784290149852692479071002137647274330771909288352803734409790883897397619825513232749018346019795669817291055921679156259614899305902245478781267069972655349323044307790575535709352459296068787740944469567705696093041421695636786493856838992234073546334921164248855621517076837314765337049368169766133689770718482426047542595271115397359272454691008828857250450472285247882099989825299572235542330895272832579936145902595312672867694813487423319907880803279867198986037493198569710387777024198488295913120256251249777544503326693990648821996407897773020448724562097282015865682429711907672636334824630950892164346072372222848298903074405754961708042707828531799072560919329660516915918408413486295830037573459621477548700706772570571760673294325535715051206766025724081134491798678212004881975901468662267660782921310916130935483275747119256290650387453136645698943211608544323935705280431025946035975269940335063394271575794114658709076293559081999332320424576340935559117506169929007705167021429397398223959565238842707030445639514072110094360272114555331141819694654830994063702473201411981258971972754725314805730325905359385219314728039937580935096082407319862159342447241279648378586274635198295746738468421418466415380435090835990433236165892983309852648685476337032288094240411862683789077512981648408723227465544990327607649782034930112740452545463107289827614121529032508174171477328499950830540115682179749620294678161634903725266057960579969722872472645725309218389955960517140634051510711703708580980210340259764018253811652100443808849707575523999749913608962734529520048433720402841403743960344302915632700608840006693146697970347553807018300514762404377713249993818463093349619165420290963037538241477460181652667991872465012449843570369417188040076691151069184637281182525761885233048356306550515549428233802889267742000996512850291101426990056221598120161820989573606126181624574630597525879161590423486787591561090687239935506657815175137671842237248322944591224203661745358429245030673193732759056715223889777691637019322200882574827558237110325281577389407659570141691580735329949802862774131544819876848239088138907266099244908535432560508631618708234833720512979714993406470214991628268012886336596936480533290379876835648888122349834326349756228767364147233687433770908401884160558870360959391053665114302926198588683864362829787716445364208526967958330971727665604406827610673940615188893351922877878155623160178002678764578115662724142639268584127987082897198318778063461089293155582428857980993973598947147732647437551180096630397434733043955845606042908534234916455956918826507473013630132747481231317953068807429561443448724141263253862970902065688754242194766375044525801138652545563980375350777268871854134127360554156472891681778615788242479147568976079578759000521492009391851669064574418004425517167870423730191914900635729775845781507501365574891548136202998969786038649549121609372494781027839919683349762836131151856584012485048540963541053775520766264975843023829942377931010751185630317186700069841422356049958455102365709622510791062789204312803331445210551054551642170177924950722599953147536881521512181904033999652018524596746502269791004015742200708595071688934585944449755144517297022084818220664397523663381714985230505529654583032689210965827297790917265698859700068693619543342187786209726130662110144602684575821489104042186963436187039177133171927356836200324923717072730486542872337990275521062737184633039516453077174788270645166108614227925392314970540279279357740323959404192459758864164256460350635357505056731885773124223730136853116875602133090523223907688385750977996907932116936626618338445163326612250371305457882246643279795719309404375571700701077553052059876452027321952226711434284117300095892973460135654394095226879644827388625576996615416363823413346476387112752718827316450677538311488129910906246469876496097011628120869924392193445287896107021733549682752154375041177117965289899618487568583128909906024450429530099883849919988224965193548204069351015806949427250207476903401673572741290727360350072310383798475228866257257199952956189854139784014862832564952126341870202961153325178833582078393344382189528443683055064242881218570549487807392843694854561379475363212910434079511294697907427033014493085243889694236096175203432415988987824945616578771072632055443028358375855241949864300305008731692726769647144556292441401912305338545120609915111233729007015255406801349465521334133829776705498466410864737864704183563294683633429346025174719052025774266962693085540062953042426753083372066426520681520929312442484889193409057745436442185284125583458966919306790351379581583253124681355806206326219650962464359646345407062719641095092234462592246897660436260803095150055807884482817689729018322114892280188296217504840044681054944973971834979854587013218725691288339593700297759463777356648248690137919673655626129973877988361069134049204009539728824981467938311669147497713336214426929037110497674074593038736916460709624031800736016377752259358515760643702322580029651306707543713466935941258464124992622557949572822725177334271198723539471154195771663295716304150579303106062701852658361912354008578820953641325686310161718911086366499745666671908611460076807972448068792061084034499740843711248396171897432679834888194434767706608469252535342292068916860336106543137237890279428567344922742644539403391729932137172850854409533568864925089935882056743581199430258819944321693613711628216748883616385557921523192659968929053777165932796228094695147144522959989285071318189357802214717373829478967339121031984942480009763402387490352486074052886551035805146607160206693370840445854761626963328048851567885675783571002867860775226973328848414277660791120387035136602773264176564633181789625671000724835054302547327824932895739879912757033386767395363135315812071429256111356529589477711692227814545290592715448305911423907700977864800852023906259018313133542711318268568978070698571053811171799325202943444317878383877259849266026123291499411689490126058016316211139534414190775353465751137662336967609644482627666709632373446951705616955912387489768006500365812572203901540647339891247348782979522407335090818770148205847542888744274824561807739228890143357137074757248042856798406269012716272153682142475186854298714900319565244961358960667117839718429986590855078719586493009586069258301455821936437833518688725299706667823336468054798783471395883966200768053230806753346898733374802877624119725667157280470074535157841956857422376462757137494194499737474027460978320763028394223249934666710311883180076393826821830525651994573231414212467519345472975972510877040381648899749511837743281909021195663902437694314948002412018687834205627074477077402300848766511983533232709586924919364658597024519669405023971684967045616229122743573630346714311407612025071058523697833060404852819763277186933825230394809088663688406929942282067842809603478830471912413350498825186145530877853217244330852881891225811666028802377612361620523269450470842594052410557111893940785941861059001300841676315126961222819336731566221246295992586866751371633197254694990773296560231707611929730121191314695499597640136850784708469175832114106580656890417249858801387695125768504637891763895707670792373450782200998865636463324364134762782445916817047570354161914969347268299622205232393256856084483725677340751275509668979162046341553208889949114671127567718922781434272551357985739582661368608193003630789368230505240082471927680870350317783555024575899135820549340940507877952686937437055178298925908548225079352656370274437846289333087036530063801065402405523176866013773565272733844091713409918669742369039664730173885843283677706459294447941529680709724845851932427595715787272547793169548402903678346113948132166743285071342792795958735579653426391864878324453751637568361403364568105962493275189718468384303731386262129617097802803651204204994795284730460571102322979187362518206538367485679979839875392490427836675885338782974891656306416259936527027921622123481948376701630997558020323765511998208396536990465307444689441714335475864316291477773666733890285496612498060012039284794666629981862055433549716938198265928273277982065180523689691012796044303877587167174893761531214748559915266856848736197982373100089298295813630235813465169550720051059353442002775991356883777046067884974855299648920101361083179664613005277095011882357052330797795868543867407683270724298705541317527633972920146479336326327480329557194965963592952999050560113452302892808387023143789166899254994187533615731668846539005497574781044707771590965401161162404011581303358017821318539652581407758450555031786299691347798474195169768813012033957539629550074979612169355471457750459643462718777777151620057238582449140607092077223284105065178377044578393679578773870262819257276747004023730133965316005831060433185331884168182283855197212929726255065149619868179198135140357552660689027614390289835393147251407953744834028228182281412776345283754492031792999862080364842488558737807637457191488182785304348586143129218975989726624174021632331414950827040746076757626061846915214445238640804422059829966679426576761385783365067469846257318250109578496737888471546506117536829664346673851864750984800049402349296535103219838867086936781033808861031776136049983369052073496232328337539761934767523105909543361892427370199658555112711644888531234837276579166608465391551553603377956578332324618371616077831804322351061521620183945684730752952256666780451118022160504344572462402674370458337814907324845302946523578901549004053082507470272514061978463653787307531969087702984752193445277109531562066495434998429767621478940337096359494298419468185474329034517377924462809529421270787898565881755106747000161584326553575447931667945200335823892628922228193149269891841162392809823426238959086114347888270175885188520999509238343976977184441165718653796261337015938809259539743852074174020009207677277223055839935321529451852791274201726041917063194150671630717175012190789916362169894477628533652034876213036939677094670945027375996379122125312672984635053431040475799113032250673092681414434427263174368915442992358562837088289228588470136761851888094316983767637768590058212321298099832650764906548860682351302174925672581128169208547151190525712921697163437103049862137181080012517942373437774983505260553454861095610809728097382791547752984383651563936046691667587541587655590342743363861122290150387583137797928277917633735231748072638824288782069884800933740015205070268605398594336553304550234632837169223429731753507408895834100421507254407477841921412290232684673633630667459472263451738648217521209843664248551932376143168060711541513876871180773065349386907893022326175243205415616851415279502849653143913601222254164763854151298734082874645703095166235972895964430336742358955836782153247352600023261529579228501885210280624234809733917613964781039700611831543577733476108920204624438216166007695832376436293959221916521482235764212379972785955936213068136582463527500033225918354959106073854118553158364730889656668371170472566646715062655126477225610239113746579256556233235432861498392816772554896136901883074332269577264703720540133596398554938930690678731037871817055135026350279880434255567094187118233449082150570964573773561089045312718903829733167870714148645046753941953474176085950153419360190132269147852068506741011368172856809864412264664217767032912243508282049588799708505471106133761622078526463802953169749946401350234846052016941835756711076173820930428979386103172980571719735703689760191723549133452715631385058590181008371251025988456849134711433038638974590801217753912114358116003698810988464469456397599082121711012529541973774103110162450885542607099222889825608144821693208739499312339302586749242914665050193620723055802338608283579300554355439798018844140600805261591261940900246903403448395702931281023776607112688537605238589471680396017178246111731080956879671854796221326353825768363614043695031584500791973006674824285027257580322941526787252759935752850429137326743969269478301479488533421645102493644298481350163856405626750201124054965175642264288709935552090165786351683911235287427398050316985015824744781201966369026755412530877923418278984274317723142598526927273582438857584364993148109339318476104387918620748907918362423036681292777524305242636190077949213955633319900893651697611381777068981357256055881857821348318565922047521939354178655316836864494604620602292961717807149301315478963266964046980164265129786045985162426232746216225431278707609221736167416370311452848312504889649596737953511926497799886103490099590326138572237627969438237910536428402994304603892480740916946489592625770325585832786299115873080154786843157120983827970069223374031163774109647994859278577291820998518355852293190370643565865704499960402372698432209397774002234620076046444177142758250626547548130116983818884760037297622495181330924448597297401284864083204437884453570542267732106049161027592581234284294484472952864222038897421826697202524976942602912113788358211347901843914986815981708524349279796099606967272255493465670152922350355113290700464639586166125288652692624853135617098092535750683544975684001813303506635238685916722834700786424378672122844185332441260079020599401128613310825146532532251009304611470858711383297514857718909303554136251335056211884018012326704438651133776764267857772402043058144823637525594480341527018003048598437053895685288785336907476925866446863246129210932050391116120384617952382182581168268678465937457676899450631511633656691320205487215044453125349278919024475677240951580385668574468821778040077974405895721752695078013276531217707781943081878678394206279423815827074449134424673452535523310528018459405687496378557450394140348037145143147206481975561226152768013194961143383941326450529185453574713282960109626037501591409871194043489253916787269317970268727114201218656897389895841065112099383186382554246465905905031845492802152226654855608029685348289418900517661258911418572738763581467175378852255683401662973921899751726240607453245042624316937356904974349021168662139603418744268146248938367908314374263865761374428696312564497603492641442016146205463243311877317234018161617882700700210661798132206374863939684365094785920583227139123856618385175674565054882656906608518362149543790238586977290553791477519603621435596494097989835941557980209081560658886855547703661284717443664475529755579727565428933643055265028617288405319272970317411094021147044734708725914025572083218492803480845240476093497825714623106945017923165872643954197289290612039324956563069018868499025709216295674979375864056374706092717730825748961790673400809135536344298613899041232270117525402893646444742951386854692937059991767174766379574311062694764423717712296607603199180640097828284698655900607509320424340644281658778560449443998734666097580348136640864383582906186262138553393140235955849336890721296824061782960851854641740754148812901532750863791557611446524158509629022528346320777625208279029175558409756810077944979854956397591270770665144194686445396414062031515462117118069207231000688367284843062475739978447610207883627551081191535339515226473764672810781024755160342316714593402917860158069296407281233043466925358494803961637160528314094574368964658575459910580055537101281535989950485689578012043516654149271843356537311424164683192889887895299608981461294648504800255006059534929161245471033956855006318501878155680107493324408128387779607150295617836787117748223548218161283851780959329878599056786729038096262271811005976389016454831644395246575331191866258576948372940948474697899596064086160042637355105560783574745689744230032097509311713560390351088244661382213858259698778308429136137055418573503673335632325273802699751188478559157470836787670677559399893310560377531683588616311203362293354368180103624026688626181533411863683204715264260203565250479567238587204943878601798676065879807074382854745697966762035908884611863512316711462575414864320552653072470536060602942145408026530611143413620353183375537590357166149972495266199287920649446145741710785215188830151448076383555977190423158780014101972040060399315817750313845537777130832306564418866111487433805739692137526422439377053580925163314164329654820885252275759064689550088597569197640478706054314177385775107799888005843661361643662032877873275533976374436614789425264186690062675149196226909555154878565701984744297411918182616445185244213248167274937925488011696223425700651031378304403291643498486416128511663666055222447846251900322270231087789974437349151582091200565638324745817846839457039228274421698836273115292121372898467711988040735343182661654561602562585168490096370165264378624098774923292097326693559365674879184809165020916285422868338462260924656596693291272096709249275738185125791062536043147085217599397002328363081171872352342975605417007096395551519969459831697553949139223870794250411429011783522385435707509209050141778865812351296346604763061060765946078430383737683038278258665228098524727915098942611150238065729148253380935458584747805868423824380054899090547614570442887996817111930927541664697023497911684543242281697760601651724043530896840134352455310794974302421585056910710011676791547077717614816190767105874720710693971348092431463642547420199530396059481251290256692079999977063181505249350902860421444277446164725944981101197401561543157049353064817301013084417086406415758155043035428602560357681014017941571175131161199456290122276114983638966602356232612917268918105438861358831991878797932233491734975211690080804923559531423511035538376401002317859443794469345346450722192211490568924935084221121816001237957814394765071148619334019673101095730481422002057507466487150685686568172027616015676040750602221526627102244337222093577068611488487119079585454789619125664559041208141594067033959574885871265826880878364072821131994228067678187102264266393992331611426078495993829347145434972699806725801715199489826722465147561563214900890001366994502324380646344353384230016794251880049367136604888647936517919066953074396209868279910480900742437662539409111945360361329766000504578242090741817851812812355057600783211048269881142644137826992324364675851914938619480636129671029996639811941555911772681229401216333963327031668048774342978564637016545027235385828096726645434063628067144438216501516814478866526277541075512690540193217913194632079021474831561752374644959039912310006994348429036287723016104947032193465471047686546614141701152719279396830564331923108090993061682733112659759536320604287117930112958973052082363611512932868399509463967004208682341693657213319053557971639769727202670925716844979259916313507193558935876663871570653955772795657044283901147392735406055903210693813049425527710393387004854409504114838904863611225599471439699302455017330397843275482156106266654198712136513910728703264816457344795357185786492025019089487834564267205403241364015947860528251572579328452337483738314118987284773888733737097323152807481651072270190964802490002286019334946950865058806721683547384789691206347576754606740370980804516283057217708358707185914418811853692237886475577159059566118933919629920248964880813028222025064547823551564210596544873204839949398167624431196586516211141853167358477514557129598206635221240326539490109269297439148783089807972188010650465344127975071420931148519512096691277977720479141078874332966604483168592831396493038030184284815354382666811111688997587380697758653118549288990404568850691649882060233945419618903323653079429607040272472363526762885115251781552069950768644625654113159588226043724655400469021786534678484819458191166259167936193850430317752368944703933631912453961211240171711552633128207911598978694639266464840197197510508773117264035387694271528491688298718636503391480128411880644444641607549343610583295265161948366538712460585828505376811847054146540395159664592261096428855950088401154511709276641413203172914028409296092556980671459511527008620976947682490217002033022227000087590390611656591207504265418017633617910532580554631579425979286730373409465296925164806435710335769585732949301691044629624224101474807412024513503395521970030279839258363510400325358335150093776380714068224181436028367529494259311273507868310261084403835660598881508978061214496885101878723304371688728970567067501980641073228630211796375233702712545255121241434268951065238600178341037962661994319620306536187436222520710783052785825265091005533004470796535355890491161492692890864775417497796965921015064953361368538443599854672014099383962105498228037742040596311826429674198196381839637681852434310101277295832953214511110383339318909286620492239295014890891030246717337929549634998936072394548834484610572580350718013063622913470799766853100394000636072732133010075576919375451237536046011075519578447905946739283893528421430690081488894871169491326821873149054239893975362527021847683824766715831947466256091156663031064130297046471876263692972315281497005913668573609471515307404052506409603811822296790177630208180303238159428663720653499202214694900801321984097365826880591090419278646770745618705584653844846131198958562237255731708898650149819477464665541187314998156500329324196468798337450593984371192956207422273649941528149798071267877297614269455113228451978577332877755852151601368817277654617670132057576511572337939578933884001875772328377980930011933240099490326726440676951833826250517721948470501204555442097801456302096689901576404565947378601694935228436500659043206842974055253720479743274882765626743798575652870487188120966008005468454432090384401117558372356549211378057455591010391013334595740978250631731782251672841276316682783268663783512748267083863707899262418346081094406323268869906011400631548680636439774958883794098643648184520283686031035774256851800100641254285290780220736648243674202136851413746078231091367855829299660505843198891098433789244602535933024768638041520407016837173812012646316594402539461910497801923855255169819152905555017964936835180858610090778388903498987019395634351795520392883795309734305228008353241115351442845228967425958676488437130577656256387597845411796936606197418792837682177980957017573655708913886826532740861727830088272756568707530305577272401604315515578468812165793972346056861193488629290674456285240837335355417958921000484350529620045461667708270817058074618422783050307137259976533716913386618533391165468271120226101517608053338206887322414851988207980008484522924366935670393378555121744211051888510502437136869819020485581466113354781428526963959372667337482913707932295599864858070174862416519905725249745233420543117846605666652290970634160493310677863064125408473545816279496021018279511047101442041345455093750440841129985761237940703639090574292743758963161585094464728320995514706688379605952704815499868116608452477882542055422320598195142260859337078736202084473019288324351223380860985810388390772760020629071785882212647669733692313750053163181191355151958459144102657860374055940933201046749648091343396225554265055565747840606623031125831959340542182880648493210058829930240732226494624134005552175498426587638501519160336661967256773412871747649011707147822500517427032796236132394743876737512099887085051818637316808035506118754929092809925673225824696883745646216757810078422833177631866293782568113377764649002396100378574100181356662376043213245761541271636544694114798837245394445386669561905042108435340688590210763800759115676143868332843449369097816959314114380854588975392030060962570783318504946288457143213196972468704915162196351215532542888385526037844447543941211970601779320201244398027336553389098689030487177542482306172729751778314298770779163230556933509116687312303457203432775599803349679146255734336087436050027635247483025756305530645868098162222160581333775869324825394623778910461064008274086978685835611626102041451150904737323645613972402254511745846550777681947116804256718359793498673220864245317398523900232203229068249033380275452520928256630068205597731798376213870595813428440760251547859963778191170155287340859153946422620816793762032104160483418821213499985925743946240282002363096703309689123046644237515365065586672377428457446985455329765912703592018812070722428696011040749137499543283544755262523764653653264963023968281536924178819462322347886449414040734312229657205072436921223801029601089268233447711132257517939327527607147599183153021764636821067171680088276790221065798219625179934916408995609486956806284044914039060960573384931794629679161623967939527286896880337876737733171303834050940403010971740044007662371500113756845746490446713479545642992335384542368309302340406042318254982491189930559979180557760344051085690542162052273932440858744926270602658668994317531216144889423650642518255622497013627556751333672161045283984581106747647018277681257525946302528884081206861667234651762407951127672614573135558730760113636357024503581543397899563269714690118365450659796088579833097881937399939971494829665069171309983835289378991940873779916597397017662497880412783089710323796047590552548808912957077395154631471818227621537209810496088567570890557452382869027946642447090242116352964138783163895404538432354424352880006791700289493106137389420862170785500076756189063678653965730496135019692128130672901682152572932334531834219530953993141424167712904496098425623301232230793634678635071212906009462864679263092063848404033669791763509291457972041339873749858985635163957289588162577192243380655658424869510031542501059891645730529736155636030838509969217457689386813549209259525861800177423648600353595354762828129702643909048768933877919873148340639915180072344412691661678830795435282771193740175752413164347640506379177162590554564747622401579364578389184739655094755693313507688961111317529846848491219346291586770418948562021795438497251679466635764492615986187422859413946305549263964510896882233106318822798457594516261248638272522297251646958171032039090652282223266261397598722435026577516473594580909365755579169781192757684055097732263901291017944459810106483607400250922708875338782773353664886156476674614952356174710107471805032726705106445815505324155609218000469913418922263113937539780182603259732016179254411974642484999939794271179495405415102195586884320041551181476175687784575372720761915493027938677812657506628937620634844671799443350952518586505789118328665172532095207938368389286380929890646630152170733266064182914265677037625871035993419446152300456598425250754396910840080137406322091415253030957015572346307285693023202701504153096148359288785368924331537469923485016374243849800416972570106863995625919325054239380896457903020136567176226038325129295813276214662265429884934864350591242459311937873831093209860240009222818398139011217034701923882219546057086317688122135365339933359318154680042681241403005751933099087956326415555945626411990404319705456136130431218959089517113002405279619746104518482593451563762769478132663017126359633568129025784545964899325880828137767158685708847317452281424619042766543319117894888846426759746453280233926651414219012309033655932540610695729544692656086475303312430786001168736427422630878371244450830981593734176992416875260185908703295229440013458236302668683353085837227081314228629410771373624444168884082115028663838752743681633081972800013592145518134188954262697555223265508125888927580007682000740316648239744990143279881078063328182559111162223735181159157373446699223001838811173180676489639478432231324158283295771619563614653052993329785815272144244317504869664105549514216542123500047605701592205329863101474754541180431384337859933775540537507019379410274962286354984141930189859636369034604450177835427074626996776326241832024646933993696683854580770501150799061594527087695053183503499185276364429468497462829307474349753698980031585157407627862233931422740937528976224055103908288081619486593199148358456545021753029881758302710506265975733933108259025005898644310623606858507313397512913414463036583253169312985748124706985422456679316210365599258835071132015647504733392594746589777581185100468010068394713011776618835124396009680286762887993590515770155722178007522430300582546078314325616990834312632269183296507833180737960539794608199628197012410094834509378634276269197442388807815357657703667448442015874974207226682287731293187636020825968412170861562507463617672771076220648041482373314596858807371221212582553274635851448551643548107460454686554087740772040066505323735080712470116480442688913255948051018344297521235074622823768422445526026989275149396403953215908056417593678145076262192906274397503586422838035070030545897300298067993111422779533264915004274868388847518626654475170150299248394717864105552428004649535083090261365664514351495431439298623383027672140374896072220337805226463037170704180822778981323676324764940438603336366708411560354332293328152294311171357866271443327541851055682815539446937455630415127404278952855552970337158018739350347785169535986629496942695392980110509428617829165665118310790365690723373669138965066895002574814709114327340795705789773038408723988054196901356253070895688180979353217000150966612482478589197222325784526493431263747327163345818432091925331681072308889000863751994295742864775561944655894011650528452877431616375757970257155339232463555492750554902990281394234862861036447537851634356068320800836203559447029555286745881661730145675533578636549376477162475416272894960848195927943082228785753967442178814156241649736033937478121844784041357833469572084954545221170502958286338992844953473013843570185144862524303338023484211396966704637103894211364902398584014347171672311139189914934645777689018190268208582281155694930139486435900717077017620921703848164490360103768087578915544508059852966913546633834453653870964635091566874730474270106646110198915226113036128220411552831660672230778154119155728927987093604099111823776899170026841793111756779121859961213828334449027125238190706954890690792599075489511554177426991011514131252674376416787877284401323158778617711441181216305573359777749723977820599591325383159066785280681054448077529451447821313775113875012999751526180486259741239194543812654715247358023410925118877394420578890299672762281092522980606064974573236728884297114776445765637000712171134897962762777359071536014283310000178246901407781856388666989959995951667271196429679992773931857646257736736733753466467414761959012169080678711918241656727046982280728121408729323821871332280675032827386980006603614533882235032528683925839218459439578885444357417950575598122332370839805945892076335029331789197037547016195122228372357179132022147568786145546991757976304322353299272018709105643827633820429129366206340409576685643679393484490451821701321819922347833837142574947822010492621021481391189429951660991162580771684153060256397423892956839410610932713412893579804991543075228466837510435482563256977740251658848999235002482705812075061312771049563395809083135374561009596389508272495337406755239757230784524972216691429316715890744967527185335055010734104934627688006571841476191178925257074754116209384343538596304820496104122399828307160561795814870260727819847551802386081356840366841139758764087507981227554087228061447999396738464168040459072945074221882457876738090511903259693505241896430387773683551583707902644475832332621869660924719113515878683975151745539444685345092633524568822136050767825147628898796474073511945613079250270573707449345296980474839825368092724172852750891672304420748498618266959233411606637861810114885602217929734091915240864160839100008537429452365957475335424097015440067831540707405748493126160149615642329346126599889985056077556893987337557297204483784594193295927245579315746221953348616881700904620964506914234028484985565575129015684967193314757002597853528458388892091781300132792776221187741139889623462964514804287524656603896021239035520751653911236328969748501035237088406500650457889970547168209484711708027472559486481961688444571152085217437298173187003397196906062834304956127482318873411184286487739477520871698111484111446250989833264569138280615812114295597082367665043740304602798494274845832519855976318697762512979551430926128843587153802452001149583238834323973587761996156769045387085952364328711445014017136904706457022257483096249448835391771723884204218077748011465074115427883287873702580651891836342389051325397755210051981186177029521037178437695885990609138483108693406986682673131275842155572586982285165749396864229231167207292020326423145863836481631233625951277025167467305044675072672322555683724737840782641037671359597108969228231983832176862846054690160442430247790570322242313568491037516597853043434496689587241451671332509714951589408330885407198586378458390294062594584226837616910376452831420915366279550083414918359615877368519334442861651422838462222920056223791097718759743195044062909765166499946821832177594598871147195177204847504353336424933645901682279376648547963054093043943005475003980912484866928304574558833929398005839351096400186046795425362746228666447837003037206036496125634170544863856587733021612934418798628469118085210984739020187845901500061004563111799216325634415775518222314410062043786842769015920698798422551110256411905265667241918055784678689910207299469260915412133262262830418384425451052683831763949506555397442579819326362920062948881469068195141507639506440257470136075265582530299605875899172460356923389802737506989802552233704437538896181885056838620316218790594825980242477132822664374995179691513323552432004681634972636673540586745176935804609130650250971507182408061590258317768446046501956127129562290011547056805516205539219745152241690948998356536593776291374617193976723238742170882018255779505558441445792417969905989113690233076919392919207008862158950294109410748065146702852454203555978315367592848533751782161528984494754583443108231750354818577099865414288010431835524885863269991966423206134337646724974347136867999929617667207954895682305606943668355516496594588622692718164234226612638798001220498866369239293601086341730866632729811353973296187987775947217427957723180913829515089189470683948104693503082664011266049097764638477857378283472610495987547950965455064409894969347166386524543893048081068514106752789528454306799136798223864070683578805867860214371412416479892065935096804961439693959596693026101421004174937076468722850191451416472574785690206123305255816647093757328534861556108674694854089182370940947083641788697742463327425935370556103802091998595242442083501626257053120657111605233048154664612930794284785124129774938796919851355728666105025303670752722076414832737556900658448497922912620907276925836869278561249282695322504002602360739663837934906812166827864208539191588107348170267987959312207472043749715688589514568923829554264767731000448236630658391910809568243151194453615199409971936724525651037786330591537156195054188074624523049292432641647971972609326530514567147189235550356197147919811217031222136348707764734587758297751025605731393841711667972708440128317356346649083309268613457515331117131271445954604843993130743188776504201055192045432980045167568198864080057985657041788286573317427281579835452185249595786364412088898355873958526400273005454422943288854424251046166308666793551644600971689095915523996898972106247024069203587390113290161121598039953336246101697829374227411106346824862770941259763825968216655945421009362674076906572467400298394454099776313980676866459385459277783741210581181426003853718009315661968051056303296225601107296915231488539660121691026473072712435056507323093424279941492563653451335248342157726015021577405373730791628767469015958270105832260556700280200884063083164236952470336838482045312462573521980404016768739411530717721762402636951527447213715322771247078110993794861977087117437406433516970221578763238120193754099208467361416322623662888961899616794127943028927830740050175175374332010313269213334362809370751003592873855758213380811282532280265363685181358661099956788805542959503819104714350014875743089376692214865943300465667402655439052479679033740641438042905377236272288265953735935051228664569202073985372633708391690176641825010621322318796433513229949593938609705725281752477100781954450933087865613304093332981531995046184379732465674722617882435912996664205400784751518969364603771498643384303100957959373215236428916854731942494682206228998765162519472598465636992248981383850167182483206516881069817300534000819183702395557626665892258316147893410798396755857690845163779113227228545998577624652674402791774164553413193058216938704413875816349429857515085897922748533448406064958635919043159355396406176558833668829604119552162874482773979804300970289796548228686213987870647836723591807186171202798114463088262232383862621290271442817209284050591738650410948770067868377743872874529229671160930799218209585859249536747240076578900262573442878694776393382907254248505179767838033755636972390878600220747701257739336625150106061934930039436973077831269260025735509665420046348902696592422603507548961997970660487793778007243022847140947970411587142935840243184377141461013999002657995730746124339917690626921116698563207959088149409946428402318867102418245657202632111160483932094399683540242288965217351001029808273723898790510726679047490598647591078873238618278953643970641391326857825413475172626335170428154290191228976791840201536761022625065346675329752407075140949323766481361644033904206037783410672506705430249723285878172520718449731615957170122038748702668803464321415901862027320947196171140312130002277965332713000001366711478370991186510760956379814451801480777233338836225095429387467169867937396450040652966360576702736196131286620414664030273242718338861060936106980804247604973539620685360250391974387056786230286040399602838126980805692670316245537072558899583596039855700304237342866298099627684704988440068918618537028798180489140731747516218842067901207629803277391347425412992087060080005439121165999814696936893682070733308264299710770054803270036870577130728807510412960645640591139235356506509503233632655997679054293380834007358201232870933773531686628036067522637112042633735815643647003868228704375898069318462227309570546826639906426737978039235722464781935404770513749942616099011012280537171165452776566918501662214115476211982851674239853108351005520215936338419360624247670182018083970696248936553932401715024067192629913412110571816337969360916154268287327741401053110125090643282274038282038751487207475641333229234405241384564501875113845680849103805662680071098995180901990504552663419114350349886538907362662730751076431772756032012704848032109328344208824250242963819512604603000518339416049645252988267616247842860947949050381670736265126728590418991728744579056570458435192467264676311622701653241651478009180309990203512007744176804653765801705450142920646254135902660020958135267484361040332432702367906110703322070505217830122633725818247837513403326646765720018289241057891296884876581897630849266671511162878884280541271673009397489726457999030994141425331799973046288294322952509347618994137364526394513462520767078428777916425722406277298051372194621285467773060751457136774733495867548801025718112378378584949165340655188415005146407273129758969876015711711822642218413731651123789939331173465845782465078045812676870280334332149303621125936896829117143055050032380457172803312116407689593304158852947939347935526616937572557002479735759247355087824401535959957503881369858276141308345829293436358034411527875972692215322379129717087127564216455635404178041687178514397963701195551238492973718252966228357229222992546030697475859024248150672130768231020454792300437301320901054316200689933969845505261011004783077615160627175031811230535967189984291345161215260153873578795927080276132725573035858892660210774456963684140761963597591164242034090688006981167680658579029337144381313915210534353014995998747812720889179928986717586170653789716131840654095105683831928946420735626311876284963036268528573621124830535461387299145777183010797019356100355677795792759470998286712076855514876055100659705653959524858444289481470873282951513291494213641535968196652746087698482327244164110186826425646736466623386548235904044883586805993808784947493111292996150384135846352904291219491887573969994195469197559793824578033667044847487941139387360256996895243543094396579018296348118210005047507643366943672864599550627703299947041803732797506674754834820139876755174508132353460032596032148027206257801080175733527394352648572700525345117291865162601560402763233203346620400505802853817288389391476565997442667834851684357025279510045216281383928513565504560570810385419133905335153402443982047670459842294539429396692859426881685277712711331342098989521861316456135793005861200487016079216894614993342986296978192671281436342824756075937078021412788252478363544751813245895130544622640756967879105177270103421214684844117375176186168442988953964484548366404258565875165437457323997149004285376121424610484735864273971780907209405046441094682693659205220367537791318754332428165784136083245042363907278051201163416379062046993949391780232150333139010851862832991712331212898896966594132548223655130780220365372190292267893679235184475587247445083169796790626434249384780270272302222669130363982276394131397399633643746925077565419734758666925925825359523796564389593635083146186120615153690643300359600667391384921294704067321586325772778385124801207135094774716105906293289660118633954615477579521203954258417374076699466262928167078752765022939802421679534472118941870960702634936538161422613881059211250431111593778439069588530215441309907292031550719256741660234945826488046879280408275961552094260504909107043306383327084030650243324861512377776218177970537319805834425846039688395467049841368489378291088079876326838320324588877391520636958199018737723524924104970919179814542665119918980469523178950821773892580756792665032005763383534372969387917964659094217927079931594264321227267766404973138904105181035788480488184931620889201936118785310332551409825924728885378249181560603127045355026009368671271001584963647387011177953288181725948302942086550704999072753591035717813627429153995573938514409947652792340216231428390982694255930702195793280548052968272872981699381356345817553519516875399260289658468024048702633504198235093247151801566773434529530148390277000786989141181356881346727657411698840684199424800545936370510110947204970001787247530758498061273527323314316006008511345603987186940616647346789121131232130358501480682263118501617754464463281997533366208142785922933453046657377489800219826433694568869129178890760381078108191657512125799137639425786151823074027768030434749424848553269343485517205749189480192082072626688860564633789226075877595533360768618049188832135623134845387569434653454610435338382844130529379372664775564178103380710135835232714923009394814927477532194506816885880067700514379576970339469398382588806837155964204814467056757138193303923196299222988607149045386466125178049044666426484657732100099215990552692788233042005468290283425571604934267648734752664861036899707095811095709188194898210980635270634562248044718937824254440459314215342980567476704170086123213632777135143705792662963773082930085467936848056809332178450754017843634659368456024755217545339959149623035572355428968493033526919701698100863964798395866101459957480500465091440704268746026460420678937864310074570520853007880746592897283954366614974093715869830797781452006103885808792016714402670541879009868933806273649252696305783087687199763120105909837654319563082627884349944635759855880744466261067015310873816790693619561013981519182601399931762290366032332734408365600785672543924368867436457491188708257830969217297389688620270395177328862796835953896796490549743721498626411800832312149908771192187388802148481707135149585767626714586013999638195413565335075063219065711982365009857553120844363371229785746320216774181788232202610403540773939129703035918213450332224647126181951030544343264435454546747607933690569206904203938406045950025410170228417440215419126828134927778221030931184961103373333233450242034770933069343080129270525932164411866551149036300754379560354545189695471142626476934004089297002902732241308065336778717050620697912852601191137103303678769049239157922047389684146715085373092109993975829156117224737745403618162327973816832427933819389884215358754121988242040945945184179455559476322231903320983478809064157504490965061514481178392394569301090769584204405316893598683104100129381090105083444829796302513037573267838022747843042458472858982788643030584378118911245782752236091852034280438866547294955274327710994277287966226352202951534599169132057999350774907327025772523743852780636020874019536104092594928205642273106957310613785481327830071098637071616224409821574780854654180963132372808974332676299195266219118080738706069663985998181199431539312922419922197087458170254221290597807610193407505880900575502998245111804115113217974999382553312311257197447355394704968201345967847817704697245091833510049049573831004530088847914382179451716177098212661119699924274079709256779700338125656892118639057186555263118160036595442890459353084000245531997769915202771091267070068320829741951053429311023217883341689928430176212907080430818295240236736992116749917315079773953096752568619741470163036014576030331075524456730787322408867082517296826069341827456865534820468933962368306051853085666314260497823495525909164788546610051013490523763113301702472485229174672741972112315367971154671772188251403628646992866559368469345731152306766674628143631009638188746171416852662931078984943781496905850686925367653140742616388179977521306884603819953215448414395987077036628846155392876806811502933683131904224655832776264517873839836465806592352616932532145261258641013339724937965218739018364519500640559416750255293004963605804355535937067128817159728476144271315872511104186447472627236892258900625085937319149304434603694855950537431738498927150847761031161960132645567565654183126392008991567124702568336825978859991499997118821387318864459241725457864983512431149575518704998376839792609639481057494175267614269172535362700117617554360572594653023671703530889378518173767819347054113131229322146192967879932302337614338741283347281063784666175000416803876408290487865591527138079567924795385804701218767388924931609710291714791691851879780619865720508341765167536717930247706890022577526315361111332512650230987015894365790530410512411801727313604945562245829452708524890658580805356114295722702156951820756284042198482824212685269265392875856676733188551574713138648447952687165333696863171589578387900717076818833699696275199524591130743364933713812506186506705062097096194667050880806292770224926835422544480418240598988816961422329279134054106467851940286282102140018777614438396605996477508488475604340525498899699790855763667386710966638361476102910007214604090585672541992318746604670345537317705482267903567789561028425045862347269166051258762119298909750217856530467618977311842319806430990653964904905553904639565086106128547879840822765255425268612811176048196360821725359985774981752568419419376708793053872003864183532211065323134795679510648242472795486704455197900588028501290605692445692585314433365446403466323556086501716157907707727961285368397251090472047573366839068798489773598162544502530937352236617940272235936207829446162705735176958791905652310234684921269703753501074499951575063421347268581273471786796158155281235526412390786132434160695562772103090378294785143274209228355653434127026801549241524528339886157962320001321692092435992961933998828312316493557007943629311046117950704643246281358958226444884222709267892212558466135242802297350155112884863364530419817790921062938167645126054110274090800486342109872120647806256042295750391827222201488242705718632534110040875286351615341485824131748647746550653104929330765374815106518328486137695807793351010746987452693892066632868630103592799520607762569500086176102666886690666750598220022851431643862268704602757380560581935085350962958927141931362136832672632942207130813685619569231498289718371575081231909789712224185497701944310219000579302430723248301021594573985553895583026171595779330159965845366635426307079386871394903282421198010200644271828240410407954086595914830218445485974475364381882487628076914852614991695031383253075830072015616680858790790240922742319641091566914049400957210971169337163733409152019317486910226889685062076184685706090661869451181047908282890155573512312617182802128234293588787856868171854347595226261566214708138779992638063738212892654926478812765537584181805800595685289444472521082102088087520858304329513657849225194665617551542088976971413789068387959825786101034524602875907044335717113284702336866151285554466304941115897025088931106871733332656587282987029453808260262842057817059567847381512232992657679670476671662201525256414556927905901553660496014422511946576263874210185692459245488127889996990025389746551536214774450098055818690902777766286530568538359491292644512479748851500690192782202251039200214362511205922864876749612374225286644540399804892723013883077149868991320876605207100989167636779287851589656081721081066159099363161864984228754611579605715904540096534184916528495974854892302137491954510657889150034047861712109393186372271407057002547207198648260116624441819846440140395892993337235811727728171541218489210712355387868666135383560527515025847891866879519344981604606230763211130867837526611632183993058179945726762818660901699185244276600109419007372466844662347775932024688749701898470889172564283840794692280751907567595380753025897656006628359197147032186104905194067424749139477803023564182636131194286372435119166949846749397026905492459901080511348631143363258576390928306054927117444575798657240388214415254559695521849216902772060251521474234044505637253646345903409964660553328029159334575909968540274364409481469170300813093059429940473497971306045780577192757939029815589297890133061660053599979149889507128067743060826908952068756261981997966855446696692082795808009362722075920996697513187225698105633080646204081634769769635613287092299032499641405967370437943113362050065124635979123668637517661465797484737387855345606853658210300113497539956283443167977348118349097364733267710879900338793853733126028667855457294364923836972379437062332352866517538402293607416407888226262634996517193145564961851191181983567317586054385741855369815062543594691010295951205397125916223365554875502824965755542755449498316769214449864670787507707893650811953063034544758100713596812078703291976770842836430324284793065239345351368401006304274644750485498338017438133146588919878722705879723489234731228725776202972497470601889097151092820974888847023662806491228895947076351290415822759373982192445957153903448339276801571746518316070878561796848776308956661837493986551041958406137466917906527982236602877210143571984206736142996361258332703911565024984921813422440336530928814057123232518408009638721635369065222767654051264630649793925179940174087930261800612145278423575490419662484925205795304820435824301775454484673652052327216648124837136419151908247560075742920528180127160098525053195506603615222629173582564709672662633691696517546369761154945715644628066925631751348964399662591726328872015333501868067557733486458193684901830698346930708983335134137379007816184546016982990546059129182941593838248653475657318879429802112668841105536631837637960373792234787746498693358372318811043143115574768087016932836567286666457531548761730425732579687960395323530448708315920240555889497456904831051362988486646748403173900934334258560490891864990748513327307676496518447105561595749701919166707899835594818893413690388528568002694354793910571103963899515405867170745254809019224015127775899517967762640984422838657583631111397786994759945755996743952424090160109262260428336774368755560606329098407052252585488188423282467824071663945346436696239601593020257936624816712987762089885278403248620275955361532297999676567648734057134460195312289209240822304239495988292298881256114983266239605839519832231063923135291345658379367355610629621932689372628742522754903506323795560082982297475365681466630785627587376758102926948941454300282816045885519169303416799661219513006121253312466492051913551725048640068568012942642332701462576857451429754531269762749838799004641284076374574861855410335433387573434167459917710304824985144719280925690570740340997280096223291208413310430385973933926073153037420284395204121943953266902364992700584144123790819047251503846648372571678765555856570038832617888317106267879271753866328463368701154197179251247871594836795897177690891262633670085206805223423105671765581027296204756790259428203154892330146079555242119553476426024283846402330329196848477280256029123624628059334689631920713567074994792781376445935928380123122120493992921927465322128996894986395949608491657978775998502008869471321630606854281627950977077347224558179610998029794840063586456548125820655745215123872913532586369769555626978458150829288261471559154167536827406579944505737307262927574956329876316978240226921831476291077799376387434197742797601527502106105594167234575252656670095734771939343242860934161858095484984899550538798549311882590143361519798010754026456555846411961834724805404558249405225454395493367053429464534255933725445776365235464578303081801265955593973675048604012592484929754744588755518832637955501598379815930258061343801543189792170334641744620047124177870487012974391066743194558679957341908071085602998660825930315087629366628593684226647393542266350608308820175372489345726064490755028288809407422033095598706282038933294557555531781745893790309711236136006717152581897905072351283363977707825899647521790318657551487330454332166195224152118468753888969902787765520908888490917369137964418147794798622591356214058244857279444185754334851375251047323905725368917009030557454836707115256400394707892899150639222564038020367085229838389304368755615553573694063725891506063379913699060680725040713251649404837226359484265145573266582051287027720513926927105374372441768480392534419899651479023267527836521152647423188229353874409988699372714828974266260280292845552781795922854012923634894650195779361504892301212526850530653431147492463381638658020072015115064705398716932216545746464904535902994134431376954914439788951951834799794595304600592149339312511897437380056678690574240347953569368599416560130752214168490437813868420656664194258844206358446391119981965524819664130915278846816130908136214897534640807586787821680266590275925447397111274976147146674385523871206573638026077993362557933141517477821112680896007818685403383954647832210492562404885193124032869677816148576015246691227149669333808400345690198358049998667187559959842734877658713689394482404689556369790725984504784650550264795696870623341694266909919570828799062054343624363492980168717175613524815020720319145827892604373685164963936011582333216834769831543423748350801924991652633269454960581158479657409019126011798778077725395632835360574466070198614809592721058356795126118724162273907874786041913697009478033554744548837876816590031434882701931269164177142142699397218038115577300700805624418183069274088011912892170928812281468075392825007095365921814865910775582076638348768662993291096659003105322630437291658324385233976073037682799405593775933194052717101436236083842220652547174072804577325814545122433864166177254908958899896054043095316033168227674538589816076281953981795874906237508585381275931173606503728080759907981482778985430870337008110221579329314057840065601750842616434949678438897397479466731039936048534382696473849802601478389809592761195579191108361180497801090574942226385263914061349363961403810711374233199219834089027665482887935301566961033366666122647290938007333509298488556196651775502141186036190163397154400042272347245806605670264228103431417510061514107828379611928478306692928864193417232036707135020047017125501747487740794331433240876808104850765582921283856848576020163154847281827272225229125965364892504486791910215174995305637447687582311913426009255096977792235712851719059019123082917376354023675667306514316688595019540298364899427027068298219306393020430481359156060188042796955639555221653894387807891464886127380984800143487296129992620069382624928301756063854941125858455867947148485501542605804886567500004240912105668323787522442941125832453502675846250475010236658351149713252531448560364805833639857442248851420287429107280441296907039807152023264131218490454980367570594223026554534525867652887123263681544512816571919462005379297526111539054356962818779556496719261585022244229555162770997113685761799840981258018797455463822228948976234953512911156278688058727534309690188151077713848932896266016966099699143498905177138479025605888235269148942450278481369986792449937519331316731879973030604952696183853302462845744713203667239415308475392345913414978789681213343537476124105254129056684095368778116224550728345883268002186986892433710772018960031791157069767341501454938918464745135922608919796556976976843777411703219195582059952445698839244169377866581726415102509344455619785760049992681289340447717785478750036653778269854962020874367749240800650754197984713843833861941072106665171957933387659966870765185741563406134220063268363449687575684314057158236699320823180777401064503782384407862033411176334548877581569121434983110638405641253801423769359942110297216943590477230715839999878155331202815340836826480191464047627585401103167659525020444407100203253108590855235196465496085725578572498507120784586036157562738535394939095728609731328549119868524336019267517827521443055285157229747387808006621688648024361283069625332834382460599270986816662281887354576709024075113758884057099970081169393656483178502472113006548712020539079993023616013142165090350319303596055451175013972408491763647255476889579323887888588373756884352240503161209559375025641498857867141872276752424055195480848516157786922374296794395592410178279342208503130275573360018974686817656802374351031155500243282351189480600966902754129427299725505832731901719578698073556615126492797862315992082472824642133248281069317866457282420259897783114594497454770589244054187412375710540730421937575021212682454336748242037804036368540785499918569340463172810435217998586540780423100630425153675783437326744207133288913457901285855556443768031032061986360998647612845284687988343823934942401682228135540009557832120175428185010229188375514561270137810383919315913208570840849519081854639130644177407229787914701757683139584302702100703013833180555125644532293644561329830310612870587187146813894526720791688905510260721058931740011725456202947747702167631181808496574364491720691736193269525803051619800336483184981048316166935745123045708137967943746721156468483048866176384281610506968580143508856288681190330766496632279555363500721741265694500709397631342536956376874873791363863073424962009375947783433600897478208435639689846534784053854234189646183096618153450383878975176521670889525241719866485434610018202284559087640041256541395171225273370875860827003246385266162474097094757134510875993105312857193910558422285026296493320216920664889195526283671833891089572264506114553762075223152569429397583739246281534190953226894367330346908417502696440046083941241751040836828102242136257271640104404976717961594706220632623036849510213815277976320048578492560361796965744042868818265064821758301801171235433206087053690968178909505520063617329267688991879620403722385423349451000151185571500317386497166713033811354168869514332379929715684949478891457395060906116762368257660866303123209189823748324358259588047238493299245987461510123359642148951759521338639858613451002550713060136376788527811520557461024479016447633583253010286960946398915662757218900401384668488080144740447962380959004898507265333784652473921973470347362054129320082508741927932906817260565981957660120007405430171510911154958817386264949034658658067662502117947935965271909940385608325161034122309851751586338844071532249699925957330579475507877270273592623719500887854949088070647154599750386213738002436412852428887042947184473796256926066481143663788538965180960411509133268820522722940782311319879873346260250941183684384341550935110572245045475608222650510080126600319557233236070653963685163114756798570939556383187182687856574344147498610224916781481856171253896458084363982493509825940957440094114954485886257423490683267349347511774819471810429675451886942587700162831463711533764921212721491991907377125108577343435464453363545581720299203227909995943772312616036307619172728125694602380344197372387086473256927763212013688049750389431173157046386597317279606996989760989212399097398533828022572784676306668265359758516176284773917275387527491836409489274451579207802836091754168814696828559558693863620160933958213688097035663322594375146520428091539941559409966234839342695414946242908292106659140763275961703995408429930926405247946750051899748968707920199353678566527114716312677422975072439640027788903455690362823939305482951215685354251966038609664521308521333984103803712913619348934681961997784894941456988246077118041326181671865982195655857326113736539422040860024466928515752243178475452886680657983314345236717219932532622673070412634215763209634346913283493059991580578773190316278153442073355867624496251688951587986819085096711876117151887775453108766340021509166932488989113672415149525624920194097655947394294452022855978323229092039229397790227685429141108799925048751025312477583782739425166241000417731291917067530903642273797528870078083944535584148230546797035488957572163769118172491423683875808975420139652170019436601859086423454992496050962435965322034261322988350614692643290310942181696157805717086560591209295798982630189171900467820287087520330358659118118179573634349663102597802893541956850109607783244834014102332297678774753861113345611877327820255743992780366809851180342860279412131291740606254918984330874267561571474798608673229147409131198357794284663411507620923576619467756089531140920967596590970411197363306092399735512671682034222733003431431864738329358692381230908660038611884391150523145865749713978354693701729302014493400268739338963178242888191092927213972521744853815880831585813846671735622636262639087398566420242103841133326438727458822820328722949278386822014273037487023634956032408364794214602441013773378467239578345782861602269542340758830749153075245678064624683768449547874951963380332993072633812448727588551534613290720383300188045574918436064363375377107522239975722496981843357866542314131791397975004764003616471062155938223172482488076778829892266696720174527637570247094118677037391118287254660934589576011686434505633858124432078447204043902929896578089204761759114331669451596768323377181085363383025318013514827302310835334401063547618297106786201603777138249485943215291501518525284639724346001028451476697574867212970772783206599452391157404877135848091990178846824404514959283593874112229275258469736983982289154380488503754313356929216510312156665611794852561115768954465886803583491527552427272924447770339899072564033554673783808063695938337169377672651902115223629655321140028590294949153749805044165980221681179475822279813624373007504825755858018586311404870328630674385770825488391401786754431521811233375019375690180435172050000455346746285291523481165719263518939438818311638561330136743559308868386882382857196059217958969789831312009540463105592091233750677302133703885561500358219401756759672459176351219003413748471633840938789082003062677555038263427082691026542778046332242155859710431682168218639034395965310000749920064589275512106687030569563257681386761855304830686769667090897018164757561246418118897710038275715990429178146749673964089492604500517759133451885259130464612692261608236459599958693072144158621863830993460453264640101880085523436688855075771433567641111859252742173277923865120554162021902066468926206415169849777330609660445385985493414993654030606723024677818694877924341206124902199830226448054552334870961039629242569668573346528454004937855054957537614492907323081493874405066501996678177920120545446893335627449327483303826108068904986112519335964681310371626355269116559574394498848310108220119097168615695794071927939934517334274441510269117094561088323173489245892400214203074648257719387877912946418521216699406126174625930563055284828822281555635222056297304006214447513530726303667897495829105259248073615198749450413016570346526310284898013725394832707243545914264980661974373839526049935389910079725809323504627413995598278178027829846533096957213786395828752004778287781657980295163747963437902362927720577518018312078117714376648079687519783657307994931209448088565938596153404657679246493774925486821103812888388335639447817489441249137181092739469388336654507193429077155224269931889021871610666004058702818471111422868702257487102504994461825549301741934868045969813005706234600700416779112926172670263238680510595084071616492239554021427653066955128640566003111399195438590136501167277426593659091484079341200856527944156882891340706420051228001427799267741248842885618786895829498826539110417504920297493498141155582029606022026986319095100197141985385199835203090071047548279764963652364538030982166600017962720427339377219634646311940133461684896036196622985676693062229705777751574586354079056849635746952711256962200304226684667386710493686998039076646619081027705072304344750050017741535826436917555667364561796803142147793194742054054713695438318881644873016019909919073434090938060771008311691413440816443769739792590908699207460950648476387807857389023356308971777156561452056927828527237866658274870898170882307640605598014536741927975386060007014116218513030680311143483774672614782052653459879417853164441980600143597007363156534522104389775825048144152916950256762798513224947602465937198643020232460147792841368663199148034517750144793114332500977565262173628140467751757764705688793924164087672179583376168308325224967538655057358917488540409468182717560358008869237705404569841232000102190723197745603265409692954729123381200735793489649207631808124494127456749630929595257394437010739071959891007769828275140575041754128529639935232753128948967233764407966988164213527555937012279675439764487110866584972644483005239274085583633860989191302981259128061861562943304912071384539376859568805973757975043899043709809711622631919380662634463346834163499991500819741024783874790221762756817278804682119905503894801843855078876249726649241449638049530621595127256522043910811132275151526558459539604661916133753088067747410193557181991466193199329234388706778846595268839397042812780975245325453615698029592888601427746486681424337802285957328176010550628543528118382549578768469178363094271883243838057074647852680021648953845568517839608054958981050633317293833331812164538201534955102168811491148335054736674879460145301730489631444277649962662515379401746688564151665034015020934262399023252584217063744739093911866812326752359140729078089934564591669183163422846326233859041635483078403965768661272954250669421665829132174077012407997948192274819958976348964617033912306765033584460815676944454517032464001426708418489542614541284247229112324469961355362176428094115545158250735869562976006778890844734799098387132027901154534598895591112634230366341163988955333735744996637317053905539267690777593386075735443008619396730806830278189457397179379817899038759479538859258921899941097372292730056296329453687441460370094408687889172390669443451953792118498762595642140569556804337463487791733633826710967101173974130462355910423817194577946260124134479730853397464025204971712187892540515395206433574378486366909508473913477243599187086533736554823344764740384265644343382837862191073492920764014112841975551501265796927653561124473764342862357608701058043755752189754885480536526653092733255223554500154332249877339513324404488841304313678846821277385482850434104853422999486366186851182338186043555821462874260370517575479595234124954762247499707447093098823115287750560183120872616447759349462684171599216727795562669844094512133081176824492577822207995890756590836393543541971598991229001116109192365340351589112659046649645662518854475584055941349336848182538011743480047638831156186399237181479041530239744520934728766119415513682331806921087410616997159296536518993410550940477950697318985235524100944106848300562306605918014851526827606412342600722630714821669207214651482954094602371171264286416227871152873777517326486545706862175314943465599034645683107007495052871500916679063261146739442622009331756589209291590884621112535195949552540076610812723054918709702174861955615965336244959971004720012739152232832302716780278257270765385895674822100032629455751886235294429920020894617954715512904244684465859602624343931007384011512387250945843842011371145097243650481209568834679202923709769096263621585569207077877226778490859324143119696053959519519109045083516431226905564341895919260944570839631048778470956295432311601017996779579275449811087574081050044620317590503514881675054997405644428453969843295952578643701796634946957000065111506037856528745404908234526867435304759638615256631706963370099895158694805424169549408073236589164304647245099992022340287882458461203205153054568784457275166661071783681074294721161576250693795163197078858204274924362974035476408583985413551956474599149345882330649850000849654222797701188707649245040386752010089823721837190434879651391700761822528423706429693331821883570747534583083755953341240542287143956160499094399967757552880158732170867322413733598514167000187117313912046720063115429632377697038150192342495037645580780786300660605568576970644485110313330086299884643192070787975313329714292940027161739001238823560625257437132171943343117874475556909601787806961113969331646595808016763152896297864494065520371580811150774006956158883387042210981615030643932191790110472751658100473662337658978726517451297246234815495434410676690117874486168907016088623682931300392942252864509609555393786591893014679676660913375012517147487169170328268453914096722172820552113036151481566438563501985384530067732493478522526591473998018611402153912212129295815449449304012110011216478480329210034022554470286167901472076908807053613160830871846250740349967598560381265441778787245645999499907887527639537170048504172581480480733839710322063044397915479640641882851606267619040656727136852283506564317311924251456004405110647972959272569980585945230208224028298942208226362973964186475349000398008136455178905515721423051915161817816911858238313253419003759139908190306139454006016150706719646996253282926984565812086412040513823351008866142978185286577912163595359571738534531817811376808087286688586453602414214463610020704789904456720790081375477725885570503603427831610920113046688292529384229751686999805948296395097656100227291764812766171894166777462787247708957731885900307266286263176975207059184221473421702083074152111580293204355975599009690127127915371624888945235836500390320398341100516285922438291210168850987152014979248030548081662409683862015551906641457964730165275172032745858553167560512408736589833193911351112782792335986799576456320015371629127236338057873819324255150207824469105224809671144185007695493391491335366508228307442461346866753573515903917577176852653240146025031249540306872046004336809813805705576482946832727339410567045682522604153832961670636092863017498185922238354241177983286303367049346187585458992144458981139007791054258194141660315221298591350802135631502118598432660542652626285242362890559362072078186449689610571274547601284410778517469816173460978913971151457235909170818785599461147238585037574244186471331838779327218827507015217283670357324183874069679705296469463340268544798312145316618252738788204711195296080964013981922111309719932057875778966587819511120231455588821977437061647005979376140025415619320586563436743117900502449813083559511537655126901680937379579930361103657610365319273259629531472499937483560379031245068650279301375589442521546540068767649312496066321857658734336960967671054322786442207327317659160160273325259295474222187762717443557601902196070194792871857446969188836364460098270427581896409562684952136744311892052606450999012333069772640230342358818370262507223489737430059162320971781499049412059014081002939085262607043028742508018148165643271533682322732019382687284676426452968657606376526411394680132709868383899364431549556057171867136341571456063503225758891273093578256588993184906135271297077799440142495913462993844193234159840117929122474484156283526288220205898680925733045783932871126408092317289475202807098179333282488024670960948765364127684047415727694274086663514965801894933940008518815740208442546310430458723451331347458743056612316899519527270288722982325164983862237115887257095086769803165539694975197862307955378876712161922586672504767462851295515302771335099966348351510939401777015653793214425754775529956597038126567721460383188476767593670452726350619720708115669829047979918800432424519132155240775705418198607965339780115051724616501210777851427329620562321211788237449441463988972100865288665153784715903568952970718989622758352079514182639626164319727789669191579162564732850147757428937718003170916282330631907920566785379332470016211817484059931281486172292358872210262221324743318230127853749239321857591851972499774090818044856628482442215223415380247873679926415922012563867855650311636188866926926318048259942657612068655957401708524090384704207417672633783605738185760710287948821581646483498565165701474667935678508871477986711504204558883266926724513533444557950905266017643267436032943104057776673594026082325636531667365304678504133136054750427637231852698315331727928288283615303340095640158808241588128703087105554754244430991096969024056542465757933121939038521672470846727653142717508297137142666019001313640785689414709422217454531349417954697896541913039202773878984035926153836447904902960827549114750127385421238497101000946188715852395143427387278527334867720491002595884352925579324273795031917458167391155741101423667752334633785614398968970758283680945979283362305442819692496766322602374025444761151735338319082355779895915898517436090034339593297414666502150192372575653753706828867082522184718802912549788025623747622818217141019413587751986844742123981661324751068792459990576420620613835664395141480298163505771804811475312655872351421117321233135374825285471618032157578446936827735503127152860752614914458557330023931573537052057219690898643589121974463899268787332994475858598996329543464755350098181999548700096254080197940727563227702027987815676710912274469327004448588279946673738575231729077768096973186338227954555067331645977380260825623682293331064026157674735238849285514071890368669768750852146730406459988006914926704741216212816339568437050932608366150203339126110962756459406372643434165637289711727985519028606128564715692107586758163311652784948545314966942146827777612515225272778942108266904695589194158893603855804579736857022174338487624165620619510218185968455894035358240905090323690396821602892822969991403595385945440905341326613466837071781193918936043195588810520471980921470649133538950832366685133138139046962683950712398474670375912175071363019566622790974518993876213476116237446637618223483448508208483853568625516305976004905478700092819159844223015584633289113021859101592529217824824221615469824822375504491599110788183393577707499991994857528698431960411109541586817938224679920346263153670451101885858382252507532636376733439606077835592711981294190257329625333024214778192244920237218555503885925475338981046906517707884000237630178563592759763556754621439011106203157115936586044099546672939861770804126609248738618222259352094277289676378263607647915945203820965114958186270538843956542711548443413731356502773682887480563138825002305581544472336523680272452780570514887713992794791920516333426387653736223919236010407255003600854830244243356610931083748030731209764439919689847461656368640594022699082988943503612297451953429832014587114877010783858043710318199910140284404652139742978176840293726311909182552729588347708990046034446482278613709325503509854443796694985747832660111886121465566627085918810093254152357153098389139162348175765254771195238800112188076520429769673802937189562375628507936887408432335007352574813799794888040168222080400070104670121949384390229669431173249163552774317861165128402642186651735277442723826003485190987701449848406576417167803567182600503347664017549037360336016164034356302427598827478942856867538939954792909725793618373059350843203715638141658384504270883824148558663322958094882884392620268815277529884785434179907355171089207473014791595535875360104020531889635933352821988118331972546544218515256983327356198517481301146821082417987963934234668590726643447671473614403698198237841756170769184748841652281688865577903996821187247463940349912952011270033406892174829851638749966134931397652730231786971944047685157487759395517192335804010642981641380206092601496102198900366165772537177564246641697353186069731384778516338656598867924668320319771106406302575560012203316127774362081720007239359282803262517949392436592873367156860579389337988568662282361830403900524552662885667690681695008887471043165764109037186148377814070404564016477511289055289331063147749722987790176252346806069315890200734039240705397491126861606252278461866956475026155572156911164234893679509660289458040927676548182605685495764634769077113842032574461230921872969774366633292057029826350452969422014491955838285753455806579456821650806425471705513178747068094301979228457972094427750626234625387450163702535403650989254388386922108513669829128096114195741848585097010909882362416400868954379824628682131496805805180016027557789565388837576977899040438494460901928414995899897793822545777397262038163989005986448493719342023148797854034400481358547404033830676270230878295818102674880263434427593906922663541167769025073533364322856496192628490190234802346878299145081645467448736473298221707292256589711718471676245899847414033327089126359253885546192667190749066966197472152290713667573686415682111844543252140092987326625938377347928077281051606173929748430879806490450740819701399050279150088675093657131574552108034003599843841690955597899113335622766763478196776660628636053817957027103271012715535738035179036268227271209908787519996164356639433745116689093705125065505752777242252934970220095250907737136755366335724455107861880592784789548181972747621293091691998642147072800314343228222888533806087604319106831612442777213424420466053471165831951293412093925639867190252188622464231933317441712828210251172508429598831957905989736365110398439638669709617694888199475489052611860653814149987900471781397620896464228348419114255841031984373322705899259437632507935995449524782716044862336079215458810412136622264397283306698233810753886582969745635873457639838289841896292570687324698835880356347222907665824155594563465298993128507539990917776534030670966062499042711653912668990981976684852310251194530524921143746917397868745084880375729814188529357174015903831258350312064514154215284596040973178734079273802557030196662145546639105871924983545723773038034925986139763831220921377408132729332879781314135383508150645389724042956443345428917838472103136311134661442189324217074633840693242838125836870527456844991347288464323759499998657543979979419648166791067761071203669734558522200968320330565105946361854208912617259437400276560001322874207075931841156361727999412147686584592319419376782570661403847593656638507003514312840501432085195614265446247447435426745199370093026287385364004637573812990207642225963075035726370533618537926909276180988193046859731907581720397504522925772913581372878289449011743488298246310731216468191095464324887759360303245476474180842203260545293518431469332653992232975872172966974214009590832197959609790723735274221376860779566716400212132811438763219309448525282940085344232883199728725906669292883127346726181650678322265714708873337311881960046056354897882848665305836077979109950826293575423988386828235357083476628940103006179504898865228777947983305525832282352511721546832989291391107150720895321879932731691803108709306573158729319927921328882303509566885486690375356156521842569683630484597760523585473980611014134995102812316629548041974562745144273536649481695195904222976071528990592249530746747475113046087072967799254219659599867381612362476175090209389751915064669706116299528007111807845540944316915986080124864263855528057349270386649036838160108376661157956645670839004260328959244278738635701841946080765717330793918549964367758368743348562401369649029380988349254316898849713474258032171414045728723618943599841556777810604145294592491352090203369053073891489327694710166040990484698439337113447963352514051526048209322957248367003897804372982246460459633226884555400260031125554887275908389968072861421827301292299859234214058752085835225438191388526662127451136608544887117439405266015706311046119318139572842614510790842374480870619079651781544707125243828521382425456945288248040789235804796104207755865369213618624084162447736381534735217034380092896610298844554813071438803644734104161786197945204462790136623240698914970346478384237658022804718488203811088307418103004400773883207941503641883298143473011484943774393235565596991879771547090020123588248042710142594446358891989142293653461310722692312968256964205351470892496276262855169778970168593694854157436089460573276476545540147236496986034735788506453310495472626700869934801161884989462432300298551611399590334165185331065936819732477641137198552877164439049115406061653712461334768455768969589597932950265453668238736793182688977590615427765807204362024171739936413384562623331184954731774347631933614556603495875860006673850525397382277607044502595317405311857450198487112232899846206160285247121162545307846674167427566824463796209882962106248137386475573333560664982314456343913845140537396444599940715366196199415480194013274174103496137746763491094889897190292688115587586043079298662648328901384801986078154834651242601477941496882821228758312726296157050549020455272238921737620290222693419543668341132171439708149122044723630001062277866759587323319822400074099064253800016531383807399615263618965583372021318814865985411793232935885498882059651505344428620919884990200516982968604002953234337045585106511840163186320953282053887309479167521620545454686896313671880986384283066112192049768895094495224347216962920848814695219767890735799179464156210084511969622408425866711613223394895211559922006726295278591524232961037531259519212684275484351211820797539073630127489684093717496080582915788522794830412553749936257630232555673889472974454363595786277473168289291963507106869670102231127546919349213554843483037289085630085534702423658435635486330735412903956420916161988288020873444044102601719616046980212084130924304217858042550699705660306142663502801937877224804505636125879631367512743378389016055589041049671656573495833654355360561735671750950960998204067489318772390726877813655424747214866022212569289001639749016992684352001948781389814958300775499487955168965443021466804306337336468005353864896244012199311360258444284848109291222516311176191745018816804300408476281296010697651193676014000285305795745578972898080514773225491401309814625596566946032081169295574576892912501768653567305910935718817830941589514302582831929871894268575819813411827660457556601955869349899251781465675731999662542876603119368078961069784782078969162137090989073859613036379152278332570611128874697769450151504156843556104147415547645650599740735882153405904599192382239122620491202066430776108991896232637745552849791677833888896111439174333021748426213982858644049498082085316285152759393994117202390652590917902822169242487337394876580928176091521304964490332305000866713163582590186783245917277748983889240780360949503469197181645298033702532538411920164721272210543629548200628660216730738749426472564978884739230868837936704961885238462528984329548473714208159385309957804674976044155504552858257276558248224488012792066584649631224638853163797414752511717005605424391515200466182671923710348014289175408339102602148868123381754081194197919346004697567715221934216950002166342890634476935329025168730415588596025093997007275395091868967348344218423493303253682934610247343463624564281234053284126060365355198802176187533573715493301953919838014741847960101655651071868780268906114374625033968828467709495892917009945952354948791429401445728775446344736284547740501760169796687944387236769983724175973902449942956724207672200885091350240061595429566717516513871065212342783418567629688253540111718493020318076360025831587131315353746768248641358627188627470233850883324195218555099766098786654484182625235372280520715786050029015951236470915183237616905195718915676288188928053813443065939658637798103356391668923527076791264272199114009803525877261600157550407348898372652954808664606279696335617631321553229298236876692171810310882508504370845526928655403585784067021097149293698281592673870771767371436579934532533468192010953046847991813766131064780935748836257568599500398193623566363228010950140985080748398635259044764776942390849422058324305151694611258474903251607157767741456417257858535394912538691922798436744262697098619461797090479209573783103615434786852102751728419141847634626048752120493093086916749439135345234416648793185402647293379054996476503553923598887483094164820491046428272784485400964803306618925156102494508765420730909187602764921775588475046136664493064588794973461513469210023588055121806611987006398918374275892845272508398567819287560036699770061261166129146946305058743142998055981254319000371118187831031100369782810063106901101723065065669261455432543004342366583970705739693916261282251450938084850694019960747630687844872627995781991316503094628218498316496685714454285929432479928132974450565970480376594647889342783611578581758535405760026196300791426933955826529038224265266868723476269392881490189785533383905829010483163369291008458285027398649355132718279462839058380213582327928723815891042709316386127745474142625031774678057984902515213425796514484668345346001020996890994421059572622081553922877672029857720962949896930961728067919194673484536786642748313086465141035579339095928527058038977655376011626211435300484175154222634783579434246641765217457333141982289001152037369719801996051153771733026606571683116972142781718789960180662576173727213738691218033632022690467748838164139095269735918875783614093380239309705177044372052358176699586901061263575910526582982456195146344768065728132128227009323797275730647342277463504950740037845896281342744176666098872365151993549466216683577122617639096931584164513648458496043703434329093737661922911389865313488456930560218897461876831406717648004433543636863488356605777133035870577807227333710981092158205232163451712186371649185422227847585913611218810681430794348858301667667903243827120377164863612224442304899526521817968817269983269249517651044171565847778404863380238041663902627906043896585211910438528709120598913958867468629748755090833571783493379288505196650108423769334353456239167438864295518973401383678870938794962563504760698569980569110871371175424053139114358507515677877948854579935311071594411945396155673708460957747165604841507543277909100751629425240496318016500181328544618574475348540105314002515967595988947963009399055396724199100616728865435110723612741193904606203957401496413035870600876605551858502377079475564099072242147320088057863292569476595147594769454320305617410580878886303183210388268336541636209397775694790329393870533891507919759961225011277767276252770849999500076894288692896872506866639739382899284926492924556955036954213466459559976641495671702381148999008996943676619484950772291651921246727928906339195688102232281532193292758843205674855803018962999876254019595047396665192288861897036607629335805407340499130418572694469346773350513891530720051881554785318083272135482017760343145853457639995623113527084099757934916518349167196845157117049834148627543099270930412740807089006838243958544394752243685019715597049498640515752536162397724182742198520810993988285644814128849909344786969177654680547929487467184240470788039404585114531624643382349078877728806845042640058616157383575658815583642010735141386736962231084023418734079391125009865857092891884416432367275254100551928431676645156844881376975935100360255802689972942466726115453921365144384577625204632652186747037005121389434886139161925513857921919432919038531276225057864588607563537198370452733105257029705590358646752926368930972251624229189400353795844841627806557497599522498542820363852450787532817628505307481172215068568246796089973580340778959177744733183805013660182005122595323260644025866443536617052328994411911558146058000640310912971649020773504692997634393167576356761263480618986674264118980267403958470451989075727865729483698181993375407502488615280772342257289082939267368792636148003195829102067788618847482745002669850914566441732386425688449514849835481020739331373629975685117168016300693412643119562388680727949774872509342066794795796210616509207952476919775810259210155099605854008353009371085564818503674881770247812443078775126292223276756847252534103077257945641451631662716105113131834192350684780879001580605895514100761418992158818056101629076904164756149230944524886112010097503203214129011509509750909471638552888218511883316734882992579335207650130035006908721924064339894182758068848528221131640405799708233751636343219861488440763458341867455120549217342252366046119818798206184721566274276802143648564250597265765523020580008739375559615713181306180071796943211707158180375653598796089612141754948860201456193032105696859292223929600313367497277864452270531833078597670851015007432342608989443754767180142384215716514281636568345615002033614542795711965454034271480147342958725136910804922880856740800169267546236746128162970330365582877350739040476752997258008422935493102544533570074382727083376094368875028582890268541912195486741544681459274087606417007223792326225811229278079118354841456367795207479216037527913439141087911308495915207116379878805634039145676645784364061430964640871448441823800882351194834284605218193529554270121603726422932492726020553762331867267325833706395908982920216196739459779676310093995164588368937597805816284592987118898871426324663721142634653378775940747725169758345222710812772032681102610762936013106200904461814692529565086129096347516750884816522618964242764859336522315820898116513611300447977424278749634905733474576121844767735201667477357932136640156348026903423128313548948692867902922383110488175263491254255122479980681813905491013448389399559840905143378043852195465508334698985195853817910228299522314085577265321370779315149581882311295066729361836820716820134189817042364495148881060548829376240067657211762223397287128978606650688962528981896276847991429415443270581779289307407573826685659563480008865731985378265243837465622206481057486671560209621744466748607072263243373835020252992936194463564937092104123858562814342759388149913006569607355964093880261067674762078737653202657034494164087315215905688014088251598628496069038678955538102667368280750731237662481954065449852220150158503166638763175464186751067247525479115865923175853068319062096665193905941794767600322032255246903502565697243597679398473967027575869330568559723395213493788031220893246225918364462037023893599489277062829285579994148086234995693892272666848195242774525034939334930759705659460926599606923858203810687627416910067699116208688300666530249902233138255269041031841034552919731066041147690045074943239431127344873605213375451256243921552920527714622243141929549022327971406702426462769176570747102941883786029847229601335044127514372086677764036843071525686329469020552439110237542911979818776456789642670602302649012513146239489195583034758528494268153384771029768138928228333056498637245584322297933752071122142869937077046416687824135141994906197427193203951705404942875990403990221609389759930030297322357413202940118826718241700838116560558063485634599187001661624597273611646459996710078511684147394323174901075818757259070566529669199639830901941816017482005929939930178394384818476345655631839772247227902861829599873265762412441264646838402991160993312121883436077457417460884082635848929667520149099092377081840705534100990623369116757463282175060570375574037881195596370980379710356716301764916384665634574422108222161329177641857178345860776240801447950151529738958468114413237945594605250672016260359016429281526622445423957736108295635986937802196504953222051556084794681117623562005294442190217792368653827963195276277467216549227388010796891518611683523235431648437609647602334957822704646116022501237019418450756293502506286670196911477238223078301655225242753301269633125094724414130948690125044427085085207160826090695659745865673925233937099129633846713977622102682454574410383290322051168763833725159207522137614154841804864693262417135605627062324609034468796577125428415666472064679159126174444785555209820291481088357446730126892057603704568318595422242097312188227643306128694197252965682689280147794941480038656207787624374270916202399773734697437856766398928342307966264544910745963202269409120877388021293652896494911740002156959026794820632694828018447722374787216410312597765975993816543610146469593412431288288006310799446593918350127445536202576786210460729160110107330531408749957348602949982848093316593045860780397458084134334114406334402438970111513499695859291393679191512016541047109017037637996057320313683714341895701280051817428031314325368422450091612346913297609088010196166713331859631586973094988112162122510971731652606152275349300582963446324355795354490268853598783199458153159747337276313544217974419474220791205109204683407064467618138165989240495263791053458473430749859375856450545346948265211738787774477260959374448855795234995914096994388037203190577187211904160085014649080064886243572118460480574831886267196730225974459416984351025351245341953837478301800734517138560342361359974387524159441572012175437068420229855565352618628338793986265053970410356679183043733658072612852836989669487070702410975580515669127252580462080441300191335294201283918189881616547193191316902814531729159901940704854831865165973483220752641829075272363148536590277043763915855902996394156823903047462151441915288653179306845438044624027055498102448074855596731093379399360674994194121917599407878822474214949093547945130044886640925146256951366053363062921822198980566866837035322499345541047850725358561575658693407473024998194325833640374193897236697578033908487159064797678808381128877788945975016623495195385048759745495155255022321890165947452941232604325929712165737806946033536615857897775560280704842137318156214401481289398261468182180460498960078318704776154790438620412632834493408238416684733210518195493955919837608581869520015529681168364464732958437495866205881802968782938637947769434226037840118052905687729940011151675462036403308580509567443137857800021445929218823806301916786772469819554585920725613787677431495029358284647254983912555819693569256466508117407451308318544792836851509402921057851926818280624229979069101704367853484128214537787198969016647639585029428772287046069353376260765756895394048895735986207030129372855128710380964438886599869783624649088401220717330175168108523995927929911056129067599953790364157973975465103463946496414804793486990996972812291550368884583650808211802291186456793330381379639686980154366982474687239839728610357615332896031578971203621603659998804323251608454852331738101258149870178211437071678782863813240352461975085572446154702915802943240942331945829636315828319106407030249691118996828800556341707566397952189996101310280265429609847016021317597118325349913181316540333147576082818933112408323465458742372644846858063992685899169000726551125772793055041232583146389840610058455223439893917944204247252467477343472216001315918981722595349209733652586613289714429629434218138364833802800312026020277010465382591727748600899475371001281015591855876449784112865099400322458155016106160841782651640621307555477830702465320689910708645961825089523053838653768386946340704943581303498754011607047538648739064700543508415519129272149442209209914204633884681441866706852115347522996826391123459591440098263682856554318445030048833052909947128470744938073857750054193731722846433048421139686089056378777181269472352804828387050827782249371592505210695834324793967929549743923305930850699302170635558867557429761941216254536026209012841146162878886354331113021303207450658341343155996992888695634421094118239291994087296727202939390418803061820421968708132967517899490694229548737253368867290291485350293590424784945437646660678394938373034935286038305653000744961959061990090388795849236327858726381566931440037331980542446153894202646179269860653242638954573988401737433067042104411893176967236158690754214851569822217232013714404770512373240425476077778841103147950047828041437985099662370097416475189326669349027983666795190043124492231634381620439840148900757444909361216782983111957403037465864848484281329858807278357129215596834970666718749522322140099210122377810846766491761775102037207811813566805426005551874010566709046300643788464295397556316754012570234267226443779461468039349750758228192003028409782961838245225228330203076118103104559307139978713627243993462040884881855081557584636582189294271906535362804427390269610505049842938172415307882814264387934251918447754381964207051725884461016263819138931854679113931165278675502704682629832581682633807639945844498449484472167357621107841199474022065984340644591561225944829812984517670833831852833416553633016082088000251167592204345616303560341895770413729761521248151123179091911077087362931642843989300039039315842504708681049857039570862109002425590688539692433010714398203767253380692905042120031476195865314666861894837578773598404814287196632110282348849779911748716519880034072981060779461559685967943974242572325605934089095949992983495875006430033259313435617761676447489341491152444046627741618689350252622686919190685942394045164297307169404277985069926816126370280763882875528543022174860707768227176660984149569335013565113043913548808174424595867469122716894298949455677065585357247129280440392176613178136255543575158278807629810404664822208444483931403583697692714395367750165194146549470503278145033249881800196845278411489578583207068586890229352871708346894302653392715617113380133087499813399121348552022204947743132267261944249028847156118021447320852582383089626100426100155410864615581786038395633935877514082344372568807013588322079959713371219970266109116720713003318835764935171613517327542357234945947660820812572865322376276134169282839098798689298218744920923525863667035629584471634210697115356413405473463726442144208849754767098882533912237726900880140147760880768372672529001751814670537407692916724054986368890975543961978851525054390476798593555268332320508500852977668873803332931648624250556364808239482131490288653355194645100666257470868795878937241769393259112280406802968834527232561857301186253686041046007633495178718488767349232227871602531399872912993562625249757954293408786278278017141834414153640380736813080499612663474123730383597491636973212894317486060820803438192602134580849941140163928360191818673949202925333919902579761238263662179240200796942223565270889577523103934836501793288604564186965573148287212621647311071552436415184517063277861266236773770851408933590833344883623044440355226894166304498736429847536473943394118645623018340215356766877038650207466200944001751776085409646500427507844744983148917794532708413482701830333585809801916999133336916722112669965436511688554931886333861711644725068362810960182065366693827777074139022067621762284828906015714277334011506620833309283841305871853567844404166250996160994982574723948913387687079026227376154402269408777514977751117200582282297121908263785411560452844239081758064015190430382010391379597869065505086232494953572469966330223050474629213761748160305572367552057648685985660652623643665106906878375307720383197029799743300933749941305753536945716105335181472570634096781125226663376978196259168322407830658785699634513137114427970306860009388258998213140408886926314529415714515499318846537840363363099761449852449464032916718684190195395203948542201094433246220702650784188623521667787702285781145877323049555766291363625305022486408979100454925816015866684677150943372649076872536847280313870613003024571173059570593693118672622612367522477720882190732220184177840596762315471727203242436446695404087041428559383261070420467517979811065924085348490920358819160246053458513017301252840865420666221768578642531501056552401294713064775672940316779519276290238822386036687910636442385721812009388683012831287467015919312741209061667923440938939887864691454440434638585194815291230504440390414671940178708979994874068424695177835185534833015442269371290385515151450377100920642778936243011343046737919529526445986250012777422318952340410369395847276194892856991492880553748059671009788107781146350751788303007354106959625765599239193369118859035329941877758490720584534358307695060466999910549823426417164683741473921559268595727860255111916440999729670000944331906083184235821982189976778390786932836133012361840291724554904895002999436241597785682979075827417095774501475219021541029363479794940342385032416599981041710379243176190495497232643334082546074326442679079823859668617642560608550283834518696597402655045815474751596717763081547420142183882492199958123548458364847060001172083122481155456756368341025617017196220760955116033612914095385394875976887137279246552333477499118431787777978879841544114095544859122722542324109897797251885037723931282175139045802370737482793219847922883014355813570006814235004754206593529927645529311834798321363488468216729264522955130854495805659317622451228703447265802844549972992658535622985677622038621102001202290323479940075452446644977196122366899172841324392072031934803316651930853279410440881490370804877954560253966248086081008016806839555193003473535555468206859510265268068168618888942010927719421466547459056285887845800645602259758547440145881580877352223645697425161444497151141722230477942935087742168072015430734433249212291330918443356349754725753966425806217467031911187959493850968024895254911793100688377152397666026655747382728706058890112805200359055892300412774609932494759577689881600301190611456425288172034323497730353655166022887575718239307851829761064261859390926511734943420986913097761336709767530743154739901998521435871445447984519698801045815809739292203299498199974028265355034140404361665642118512600740291499772459971696354737391344643261556772963346378149214972306605165477917313077128735281189640536110127356245024391529621476529586470025603761246973135015908997654737442405167479373518929660528499767212306975240553381381436159439399602828278449487378958377552402083208863109358470759619305884641830082484263906646084492104125008166735287032908001167641615912944248899847200989342479037831330064448161138369640730999583010363218420383538958974555818989103981115389973678828731433286536738903242319704066927579704922225186535806221905153940985267549334524771617931443091816813880343804006185946301761722613089343575183723019644554606692358260953965262187400400192915418996421396595067113590387613108084316292552336212476283967842377933176540747528759587318271659348185984574872754554951602527269624864672118875057328982873892497980113299983709538893588014715911327078046051291052968482475918242541420924169321547718049884908790074236804123039525657506950350557647873513576673948972403480018860747793388525984868444335309510098581408699433006911621382028904538344875684415474699829180438135325647532295104432926291904600605305995111635554470188519672169507774795770144058467407610361738394362252746012961644182427667630754747339077332472128030109520126958042938597976027805578055220086706742952560220582568572524477175602018793023993660058522472004509913731941957331584371836244369980053748546428101309588897824601028400507559948843595613320423539640616907741981190251409264310398893984295521472028631846147325795738884412633918465524805406296398829365814476847381511689533023419657611661858505197422190480877781126332309330978579143390375895003475735584074449408685491953129613989007709764862771278822478693468826816304695488600471695278186582591635042335882498769673795945110797192528372155219646238581009034414495613724093412380815292788094089423424085718921032576925625221622937979270746029080837570279704391558781622710004059841047321982187381308993138343500175574757137232393948558629981812396742049631461888130186371661700401572486688994676185327748192863293685255708011294872119968367804449223421541143572487201739711128346845221692906684298345145961530055503866911681879456049737715305712042883146616548715169182835568007544681040264624899368713283430380948964235493012688178417859892067907651636225487247420334967038649325400297037243417441760519827631060216310620045555859426695993309305974102810355941164523646758686685805766836060477968084492328064051176278087563746757610434636703406360952972727627040255648216604009077189875352748970495420186045547853281690598399251937503070344327756742218815059374627955311564142985319195618607635823573949274107392065837252940442209465810239858951419780605662447838272643860434544711454828983430604061470972094144983071988946913879350344704551877575681473163107454290536106431804199536673838644349604522654176305628555173823279861161706756751801089904656909550928971151783233549279724458796898535080570070012605265094834264754591907965163445910976683633282049769150304439852485897700258298791323114912189370513276528250144734179806165468676677029735083619544270970050547764268638390723452639173238929399045615914066959857032220464208715610881679585732727556165819316755988051407924537407830854839869001871795771816151872042514214569981547532590289831958149523424004365898382230485613430563729698700668935668692281076081308742483127955255246832126491903749356650597341682985517665479769767935342565324480137213915344898913273326099409197520735803763443443610100020877242602945986438627430241820961382103698208776159200874659037362186151801673505694768933309593967807826640341140213412208496722685062665791090129181302167143427988615181683445366151453866231569784616153965214358521294510278159669763949754232186913216387404104158065414997208652578527844123176869364528359972760834825579928452249283401388101049775532079655503866061474263985772218684420215883410257833712684188293316356373851836409051159968434343093000468561857150306534695793036974385209251826601706486543859015822913974664621795068584620673230450340795651614633278333332511606898541640049006167292314035050693019151456370888693655651530516987341130233637181592624694843198063406763221513847722534746900434253444211740269679844602108915638842236644316806714811575597298891331812904989974561252289706643349881065328423839552986044149985114737421916220018444604920855136669811304270333906665559251450913666428243398788661080321465223201330037559547072805020480661323085768792320731661761489120203011408143971984513552795302315699075384593593403381441166720444851280756770688365822564024397773613768999853717542235123161894617973185270204087121556323256206678495249846423584056622575076759124624988802097966814051440142283176187050638791966534465155986197089750752237338433707090015578063004496007917553609456754372178057131687768460184885685483305009567902695366434154065181773757722772285927152694409496261816008068277468387598409402258827845337205745631004254434458173962963275056298010927563567027353169438766235933881575446689944391298477891898125707688346883574790292249699093872428613110549687466509764258235379800494137447009861230848712440513031137108413030880147015154950237039071647975347177869822166003920103193285039684651005852156230960480905297072380422218481907277331867499566379311500013610208155069502974531030434384048323685186717550503671459730323204905550879458762619574393728208258235212842325998949243270834546170796366339547052659626945034853101156161404986886973313107494165050395219708654331894395415744385826701299177095362574013100322366691291473115897134609126920089449603995842296383197844709535239614371188666926199707700856515276344072925839903739338146312643088576035688848242242629342724639012251063254233144516934130258363393711697377469843843375649966533086478121622510045099444395738209482208467099222925393017950750563315087222984043225595561103582735316725223447301205334719885254254010264457146427899183451581506711415973625045791905982543991983655670987724542655558592480918602740867166429879124173368737789256088062328705556253814794861923674299236694000282572574985263061567871295342408151086682431249793252962198289297932006256048907890644310745054222496888194701791534032887278411672823092929738769703365965919007814600896405449938555792810136662649190846445827195349730328943481065037530549849614638882776188463410854305558004660782191279714029943383732404947568517819277331373287437231383783535340985589355348271070200081095469577007710763490154818880544679290128720281708183901445877815060834665291795151408652618292978989666605948909868741588305082048449166843177229036863207023044064783833781795294799690948830945515208617755073873122470594099015902720355394687340191066846615345444119394846013640138379743168230474926234572645324328299791990526467340248549561150058872484613740125511507182853932210881654383454783701256692112393076372245284564469815211996859723021906451635674616957741494171920309413402482050690009264847643098435160853790416208284374896359482043545949433848481063755576571860598059979236016148982367173997971094758038092316850652272631375283984742904627398333126030923603427045993467922499958835321617973542183640033778501778559941576244507041879162924371921067488652438188145294782473365905380063675992361310361770397522795022298725924736774818630626840334918580070109985981500422562578725270263174541729242359536927819044332240191721593977365579992673583384159389883963272560406387635739659122473410326421303463633277864344793185443853594102866739031421320295049009966945989885096191304584092742535604571787906196952418644809395847722929371620410579656894460374011930805511152878194654394163479504477859387172137375687353522332259944452898598526580379214640687642043259637822330826230222258921031462640836111944638441024676316638891879770515070248271861741212617791788385628309867604710886146135775844101905551552550444638902736733836876880191157172687696493780933218348050435753958519360039747124920660714442991055062700190986689661080467730982139106453394003565931892822641822520528626835378153313628974506019853702827689570120266041421369757459261785858943896130751918250267695820247739740527181870951890411129011134403942618823390413517977080923020451656350532956350249822025223803292339041605131247446753598423260111787580369604462974291202351663044427771877047277539621166184512134180870747132637126253897803007722631638563017116482051550911004626809425533017014494337593944582898970665898712651293761070741060580577584972935382040079100331629187461778458010165777853631367050030846164991747053576094240897938622100595497008324281351687161775697264899646410411481431502113804006785431831694392704237872528091670111501543732349560772279776018126287610589511280649836741068972371896757056079594098993495172641009534991523964856624040237470784745913151329017937055626450577012456727974432198266073713300948391968342011619424896941409977616142745470918357525738623556958173625531763153263675736685800288189309618945789325785702442431081349886681316923752381130063811476248685172545883291173310332282495390487023978244127314985380013591819601700485674081515145831239400156678875600696474370192737853791067365325146791986859375055793103196798778221875447346127595595587505017095641213437624166607875814889318269809907641737549157379818057728210896213973349241824061585593030637565357771602141649300778211825496469951937822599136743075835409318982955647483273438685190447715500611104277719119702876054972850091751468346152287825229225554072834656547110533837983302778174577667345953373889116932153921764111269991479019664137711886818465163684308072472240705830947238930836436237348682618206642680725223848527286037109575537043208967244911001434733044853699265406395699594191019661691896125408968309362096400529724923204123948695047309206147014620366373773873198096907151895828097510795647797041705556009437675739899893887521201080779886722290902678902182040490828106128655909592331913424873445403105362523064767714276478949478472523932825102863493855118672890726378987603696144337050325838350684661712990611959599251437601155762715159716334177655205263623564043892708768914510638442588562072112598870005004867587212538262826880872775496231969952428782938749079714260182112173880397049069376081193049955332361385877583801946844834271389967170355681189064974868512827046549091609991593551816516147904709883074173752479348502906134048255485241264542029068406303438069957308041577214811742183179243119740385414379439335492503813748522216424014897902016483616468583263680029061030809719818015194638822590653061844853634740366363436927898073370371327702017121378118537838870225002238122137073577895251847475318770454450411652050882983639617749901966691804138116345902415473812629038342142233779322536912635151034943527936515175098529858301580909600860590066408755641071682873041373904507275445290836104198873112867686883697869767403274020863073266412614582824648036924553381642842066845571601182275195201091239572076568300134177859971214106240699106627138925586535766999711491316714368975321042451044345671961191881471337044341180819213984255380344267282935156618042393452460063842484214060400401219387401705700234373066826534555812560802396725443801803763206451422990119659055724028672571454583615568834240876138055306340218710896176712827539594385975120129873986193166192019516844885006108087536804817814296559475731898145040613687404018428285465218436302080261095030603522866914975636853871885553626628549955599249953293752511739954534556658139579448617515853824711579037366675358611257455099580655884439483561357532204965153672983544108816930806567025665511281102483923404442295175780443786665099795589129828555396294677329984523432834828681359660833989858239226665860175745471377691128864290750142249769066002712157975331018374250643051182425461961881379718717065540434491994593251717621257363633259797256125828894018410060965257820144049918242601369158870101507439503694910498956182131290403450734718114571255763235143587357268291361810092013850755095983620462389369068734208014540430956406734651204557006994248105830131429994233460101782316637828837075452015707335165138934948611041620539720341322930408218169850267646968157536047416914151684753655556013214132596437057774954779474990008053598311849699449047061822188886268318906271688308917328823520795288929219717380753643302579778119610030650288409405698132345503488542818467595652548356448295766274388251111257279198041395858025547369594584748678675891284969060585251072539451899143275403423328263007890858580271843392984227143458246121393718231316739346226581966564382817622554821958213937038625734847560406564802908195458032786281872594502643042023637909523170723765846433279620679866447350494262939481114299298304436926046524269559267380227867765133412262166495496801342805657727883603850168580331708077163957259908254449932791257611540589150699454205349122027384252804280853079395576014551081672192802097580313628794864225783928121915344322582547366398555826273239643511683425348386073018773539151667870832955223980571654426806937712300161603329617677520443342065310351533459405214668778366716085854087910973207554819442935105085463479113096141288595016413308304266374373659600814229718642567167930528954051595704789597139411537467684773221311573594994715101530031447388004321523546122488643743876258406461812312676463262195244505620425276313106658051568946089773567524721483862127900094489561979628275981788958993183258156330029298112190542503855065743851015804282355178656320437600424079529437803097065280000082655360048923628577832903189442268543398925010750597892794356780663839419712854592959271096028493960197613851894347013772399447767139556032531758139849096990353984471604783259103606776541622292385526653862199483102596641055830462596464930601691631517377830085845292599079481105012854851681907841419941528767040104917974083149188845505034568156359405315389754174653798770832472532311284250571225813791357597742114507151340261247258102796806471145279339159362313653629440148913419575298987070540257847627425423295887534746399929910152362460500285743210166371124196047550736036190003426628492619317768790713806727891802071199889269297930964398801904924936775961386431688667731060074497517469093512849563560948230880544612926180057913808314354256575965245233141262742921292201424826649442747763165663849886046613355546073509716282222501911628000326551411260261876339186489969548985869488055604809687991467715193686224197206303735246225898066943899054718523980228974959264100146966300912193406064324705443912787551518248136342307381199545002307527196257411634923195369128958472595350450466869100410773640992625187122524183708483070189994356205447066019562396731811671474739667287112143808891847765547339600084636716946819673074601932771290903975741956303649645699251821160359212356514180684989430510615748258672884193674176024262375281429054059128428054018873889782906694471083225804375661728804167826420355271164303035293765099431590166171224108400291837931822731150714818719736776179462774907823154861636183651149858548464762047249760819693718521961243531657518744699527868803543311828952102364873437278448317906075530404505478487089908474462927428155848064466642783633026625962011593255300409957856241719480354647863096381434102926167370025663059228861087430502791416195871989638325044112694367053069293058256623238593407112525415158895542795522184186477913432233393775426924739707292582680504240512147928255299509773154091303132097286760937253645348262157163942015786631075983916748872079791418390602226080373429650137618128096334393538401166944923474022358405346931246045239082325547796425641839504612634094623812867004273858268147199664845822633584860398965471360347189478677731965879576550850357807505602163146636135000162475322102076444610938188892580459150793644014351625879869219809433276192538788267195676735714350086575042439565706988090267108467131687573602071659054625564450094657170067980909261635670841873281078864934060771099524597415171955582120705026232741590811992248268479372079744616334355819861375052698953064206602705890605079210322323640642379691632906762258270002446245809239938608976068852642987097783342498311839419362774298222116634716962459563509877949042419737397400763435081301645543330164373890424304412633923066995748250179233295761217156410134131559731001237010588774261557277523772271528620373901249096793551622695325073002316832219755895652042136933931338917861625749590637932092675381486090426776109149325143989075966827379720535628942691660175536896681369352016882268249889971999093388271021599488442796636888463780093135234835947948142895414006812326991627552357012560705898638669978748536982835819221226891127568863513459751287602697548954146572665288534206158442394670251487168292512957744302720528621703048543416884526092264852618085355385344401154920478548635397030149609247395747116029582476436470449585896429617927550143294012775494823836636657226001462861831561483669519734779866061327723378743530466539894369121586066707734279651439546312841196613979570938627382833248986512545400959425449516699075761811676107879996773863370772617247666529296574392067781907647395420903819891219003488246185188030542773851344097136397643375638398893919748978694868292043280546570600599908807899569241486262592225464283100026679608692559685205835836424365743454054778335138762748125191482501169231570967492279815627264554729889850525544613510036606504500553814033645395883967972763610399808800036173171719024808962461725793194297075868527618044687039672788570919647011775049816430530383331059163887288141958513559338316512045413183373488509287805641757484693298442551056624944195245795488895703919102922772114534901614795116218274817414775773984251141074871398183932840040952080122525401398241829795334091607110333849661197847235606045196227848455085466439532151837636000981348289993545701842651530884657582494480653678543661851316810470114409293114288214987450886756725947413081474364032301827855224292560325890619321564442895943083846502252614873462114812338978300036646170233901168952139183770936102128147597165419585947445180335634222461696919263118404981993635898324883103382255936805218058429764210620178158133156107960840128599850042367547024741804560968456216036429354568780270133109000063828769168656539751424328511636453490162149089239642110110135423694517847422524575715501624716344566641422620945244208041328541286948372085720269185993981414329207456802486102775254175904689460052501470138896347100172085206396769284046516178806776071789161858577036904945406930196880389654450259284312098857824360444739906748604501172264419069430822915448924374520352306433499204186966783103892272262091379688603303996000191561924010118073194770790576401756066706904140622522170748714800482955009535530777644517006981302117438811194356669696858440624430580041126550419958744413839792231274905648856298918889898853653063449935698821795007625739403578165223672004592183399856456717688803515402282826337236362109206360878050683290971176714467440863641872414071423750262337751661136496408049093118202326736904608187626674164776386762779985472845258048764039553682144387374909479318851890582938429410676935751437215698591677177888443865263856183344297922625950825545400581115120851375282904885537572828742993787733857794526588606256884861181889057088347402877995671658098057694105249814846461882667538045439662694800994799795481839083880850661115755071113216791271370425721679050301924808772229716503913235863866014447827634098059207448764202532932222558356911372715063854612941796339217402096980546715884243137862041976691734133554979981644676295394875265514121317688644740596684419834846359681354819725128503513405918402981375302018247096596976797609733914745379158092285516475752604210318969844679717606818725487161658084536082922247400883743946564324201234345667688619469860111586152217697869294043750340693221880174142583599051361981747393260585759974924463404556380683495891595283833165472574191956899053068724052865805594361999991552729136985145739330193506425967393722070764731643384510001566692392667838687456188577677969010422336877155709337343200676114310959595090434637818548689210815379472287656450469707082884996270325783239729474779275308936283152549369255207091368752319490798468191779934306207965929213283106321206700451013995833099074802611125835290698093243969092600163904464583366516722385313807726668673259925800279394977979859690818095545805233157945455198173809069738801582795051577683789640089244558476257593673035436690591986268000863697942312661827879271344663970257121994182872510651883174214788842790099171761557772946540333846414139873428511517226031621423791192879753873898626509381806702708974163463652231238229395183921619217338618638271162010053411489386492546306827326884876259681093785121602939046020775209165518479786020852282424140720861226102221583395709773836373259109243482697613736745650764558213124651977066562139927130955485716705774031016329925679375062682313893861643594293334398049815211734578776456270333014509155193757786997122246561479009705344070104641347165046517225110605530394617182293189345518819317936966096144335371750900368708268301589971800130479400232034607164959738473608587219669755108343940469710137442570842690101191041793339299324373029615889897504357143504272873060342367531986714950003576415930644476961528109656656477788895297270018395116032902344996729831054234216671908207895497291442148368167668737174594872364502113434999865273354755656593025106227312569197530410528453009784290567875945509019380558656284645801748004293664628163015223849636087322127156415726521781950227137013004790043448583554336111354421091720540235291330516944367723972855767366681925756280596222550646135481425490780455015036582772856930070932009723884934352574761874434224709181752129817002838822252913612557923445245972450523927749208356884761829508871788372394069396951417793536975627614256847534821646012713407680229320385835934985498955308845396040243725940496892751697058623148989086976764824074246837220178010757237222483665109274011854045300331475190414189893753405659650115195362434496441484362402700635664295165418215101555951518748016417016344995228970065856945612123538897146151990291840677873150225424422568592289012321079837894081574208197729400163529762779715436087186919293736390679367262065793228892199812986781162141040028389827717314855019141997982034172027327235642386279369526419366552463095685283144344316418601567052151581070159985553409476708659478060071043246639730613845948977785081910629846907833435391328281123226402434352032601969496663220051536832079238725636481214472677875054763002532958094419089766238776800029908338429860302226640518583033438426441179081190834439289340237731925045713979865741195929354770368218853762480517602765856602854583835268546445056508278319675943182812561885267886994291994482908982208024665536803421747386057746797045370891443393417149779584829985312196411722722993050964335979620850449547817157311123520738884763277877206660336844914280333568949172632156285846915770705630838896536764162964651304632049508101521624168913859448128150079981501669393090074272409948772353282826886029832823233055842960614533017411417738574106532791788565772080043252683124280233308387593282290642308633853995656366911393554592934558706998870424407208854362849143603306167458301344879510847238650452890980932345702036734032294173023625479896507522825480937774135526269979130389668976648553541657229483781607932127551280726021242811767226171446374089665751713539597807722735659203877077882118598292013308361129637903708065397989198620860599343853004679535168957513559674640555520254785537158998705219052372669082973115939120180636220760756170044773134262076049328420697246498572638965704090860786917451242945437068226661150322951094208909657272745090226508709476022693034481880418368735671626635278532775163100126778811554761031663565440640379590401727508283334061598018831808604543847530053326542265676713666692611656568628339938336071112450309823557428622601185677381082921264600719789081975263393584009011289298603428441929699027180247565851656160323852808345703669140987771887469072613794305588191540852561542521923695868385534073972887532084520999298884318053105979242612723132625363614116942902151944193781531687332577514021858553089541503711712744457068172154202247202469409439607021278004019985954480839308786818816410114930016596012102048152839845609418332840127990512567680846507372438906609001790100272730410158150434762569478497318869299461481888564565978926649169456483430579499500059497666658776357170184692619689558361069852727903527966744399509062335075025451845517006889164571416840372451020296365014585883497470973655380136033678936114251764734535768081407472564264486636883905982400309883225186885874720995307970551790197075644544919126248239853211187357077038024228715505841079545257888965961800376769602198392319061762196969947056829184821918316825953887802594826847393768354621317731418078508954635889389840790746441674644719310892417806863001798657900175425786525548991025613488789016074596475796265529631461575220618395711530458106985602830113748745364000784353346536560312726575311653491811222420485125243493726086108064013757221012145298542094038667091666026288089866757423222731630758676991412763565327361267314042309597181128869327306531263845168243595991056072068656482240531034134552774895631054975525321115420845325981093793039106822857520457157068263082703913817725254230741771900346507131601542013401977503621469865054764723625010997055367756089351288891498058294051390369947321685366541485179006937795778897870244117106789107986592334746029297593006183379067798301440972062880241883478798880623342685308245167363043548857269044081829470505196468702941831021943601236562794321013763128484611420060396784960877973463606404371137476877142294953542975916034130520321267083082407607971948891045696366692655655821702907459897210609317510854948121922377200568757053114506837673418353043398781794265466949116982441237860784891078233236368639662422576942444878487921990744855633258865981209756226977575693289954525865100024319521465527558331577062284549552915334661766967317996879766056767403895883652959758236918235563510508962436400417036112173741888730023968306433967365011748556231648663023777344671619789607717499365233162486387591585299683014435472702644626679002219443139492013133605436833319998197048657556691326688806757189611576588413375409581922742320457458900226437482037918794203551464316089792278241200311455965437956196645428309369492846533212038738305332181153208547680000725363318039202757097109225254040824525357896280107323253873114648673913811364577827652801504089537438647870538826164408298166495109173490147424272636587972569705736871934632678892627132976084409298242470138886579339174588578323455899529088358489594364055935871411769085641294734631984563620572156726649605134020333764315346559410909522223110613544602472474394784083311219595039712085107885757837205471446819842983616619184080214268788544217363363640683515706491050077454583550296740397649877392899639345851569840813604777086873620580259456400948356719427052635753809488265710469623969603318882497099282333343046779711903821056412691292548230011458043126399351684069846657568778941662467387449351397558989865998288664820239537290525738197738685860412377221417597546962553429051678900561689117688242886998233525203899410620202996368469162984891980941287762210401628758943210300239247498420820530426476950520293633641593225741379744722802089704470962790085272651053892304066491260713102686398343842600920454132550394621428704459317830726996518589639009295805535178561903117361747964530148918149129422989055161918884301351946214108006026545816234160013930119730072611240215028910556062614235812375460907072553626381586181613110870547912294820773933776769914026611324911984185732442580560727601933060856584150045047397060129325114489075558487658160497615624825258244456159897150001473838917970595937843787928907687854417530710787518988705189509558129939932840277838049969656261615354298115672419927722107181535138574477309942201562599431342083662386785298322543925896209499735547425943455245246595071643574121973024390465991732552049119495638596916043552706420896642529690605891184370313420973942402889021092616364549784564652790119382705231005917091976020994417146101321003818194841506273206462803519282011490665817011902970309757731935707934447078481482803860622102248882752602368936340454411726498464414876575542980532916277480188557825641699099468839940875519853100386549538049088483452009347911538381119459175778798434906910653862725324929828606465516258329124703544915109400541958712942220153962543319892223823667816775335209287799438699125759339414748425214995090975881004158420236033202381251193651547210348350338783956625258762789645384156854543246800552140286992681635478502886941007765728060662597743614816087924866773462287521435117695678430717553313083976835313859801210180871707344580896551248724047228541410906503626554596693441255333343194292151108560360966887070305705909572659823394643079946805593210406175521735289922702089733781447821715528682434933160244179070793901819539997550020444173783232710194048555876105302602886557242893182409222679101426050761392473305584555168258003314781033689536092140148344444260776728605545408137522520055917961181127401171160703523288471067024249987104576331819024413617995152941474264814873465269211650184004731070036757297720691632762097225056695864963721576983894251130112086726631977171031596922689733527993745079094761311101656594331730829556313973941289813068030046696933317651256894053430030954034833299100228215561317282879899286538314221943002570489340849497295976892414103769705482665967313314967985742867693283626992425032119280493547805863279377078100094220518642155752090545111001254846840949029943063656590897366342798848129794975315639784770042638189347819466904071485396512743536668494295748349576475906557084129768590881932447761429769427806658735573162357498979531641845195822997366204380165795470990386250832166327238779655139578985808926836220686546301204611100690530181990965422361828476632983968053017234357295771436333751331065537217924892589568126984071178889208073234502738008815785349633714705136164639668421859440806504703552312149001435994353782008274661932237647739506414607217777764305588444198742253897837098634951494209610660090026787921114569881276927562275242976889925510471687198814166843593195402344089811746895994463215854128839181916474405108650493381157516145919279676694145202899166306916238704031022134384866353424075013320117863942132851831148485721426180790190712612574992860098574746407800018188031559871859128877692570177616117849630237179770466522543133959482045652528695182513486886281332624349527864291385845601358942227363454672090520223635131482369364583269747580480974312286216523770594894617605926740700581765839274173510178449025279743380567435987098965702008044554973359202674489654372874088262706473917755919384513071987626890912059173714992905474453977598061172818292199068667229486637427498705768538953013817608168955418478191164972876746067515515437337919518279992063650433410267489473642122461015952259698099320433878404694821561578369483163487525239718147203575310821255740097202526330734237204475315126402636728182458492128585183206758793170152176836539976623305017709534030697637612333691870756804318377493313992363685278980806181873094074846860391589023611728727425808339271116757395402129759830199400958217067177730223564521363059904635439810572262661669823571487991178115113060940020487285589032889579890138026658456890062646685618279687788045249476010350584254056781167370573857504141354888442077115022975824615533657873618354483189769368597196716647367932909284609930009412868335385859625448622182849977894698020678121665837403658070852875617659787203626797325252859133279387092537621816662926445742105011430679214649054390109972068444115127043602738385298027476693725844342437741034200589610789073684813819800217264061819370320904110713956324330433945204623425859834558962846152642158412673157413103493555915148983224575004155765954350065219944781302576601680650940870588294483202383835692793982385740936596381300259347374103132400654769099128651346270506073568191725223178798047038484968848895816430677434424612425112658581995872621029503270144225379849077192386758726936195697302033964115099958289759260570755001344114051292571824999564786011668710441890637965108495965218617017129810815512374633816711528815232421513352992000696484885194133949862603515662911223912446620944708797466880217500236969506579683749697905855609657126368590811839588472631005039531790030510009119990344672472860865462906243340658787356526092545707884999371174342381739216779806075084587440024359144397708858935806853577730084515916545664180759372338317216918936899300121793501394112741207029111198639894487667773247730354350772816764632579198241785823901474883728271805281402805358743061276138112713068892053144570246667230000824301307257697048111390032631045105347141672315686363432619763461568805188429692112699767328643570158695569979417271609114121382652014869381939829040142554808647900520774538167574070153199596177270011574912152838103559512145134708184246895141774856516971418917456905882581730042770636310382622308990937192736077982660347920725694731957633357185864015126923339072280381690296323813225325897279594256564978896377863190538499164694416765797342757853985586413162990624901734291967930942884590070599540386332750085202892634284188394268049421504015640568396864708508106173250667633477387131068667803264310937447753646432984118710220026857732455523054193586396865001920361550959011052580333868763401223206659440931509911598765977058733482160450922906536545205684469721398714398378564622796467957230497595926744330662547435560624568242970662904779506953867835943596068962096363083197267461660550978180652323147998122417081689505307087444031230974758332583086413012625165161497457841948909912069591901103498979288175481671596630957233910303088882778655818648942195635602920196552557025433049829112949180867015146840576844645818249224083522044525963940946662160439028571774386361588242504884485210638303212427496231214617514121409066947159348193853941489240645955642388998026445119502349577171150290014914958962737631326705843168802944967168749233053671879089581247527618930066897186401977953586590302614176625194525593017338079344919373891394245769934968966448956430963286055096001205877209847168252358958988048717351994598629508247115568879724026273187665728593243881206924184633923877491994104244541214440772386835862345842506092356497029272739240039121361533982404244285889457158376847754498535477074290539184543701362324270223670062197842442458611609734101065934477971852671542928375513542095613386956781791449297612370185082678293798041035065640746808737960325344936904319563669990865762872483395199075502405771149224566458809328415116784017485915974321570027357072092378429490892575682366623911956913813647463854803994405194481164854165265777161636779262340834976606827570890110963488524648258247810320736527042097329758780389758501497481923929363070168347545810482377654048306319256757836398496504641073013279522753007596838868017064626530319741535397817400545658776597339790951140311195019435050863633217633957755884649155388253003789399928894398132938125249170832712872888681016806889104156639182535593894869713112667036971442638777770997884806510354479991772968658603330300526854707911448407315538780277333127305484140823666214485910942691442723700648886663268836107339322986148179926223106694123399012901003619664828664008027580491661517250315842513354452285317938204079868091439165178901433209745876165937213999818922775035645173023427445220496158566269719026076911103942421036979757755812050224600618529455104373975586890888790062595369760732394874873499886958874108769312178732646805296366366852219874240832437235884896378091030889975656890171601076838335671412513773392834069504805432147025132949597605198378462393274577086856178079890920230971863617333660238294353999853839426997365676284016314586095775458859061261447825350639052490138994947956985243397285895427650413543316386447967153380138293090730055161795921161791875818711725676705974949456144078377843173978820277560638881579733859758901387209733178140859287167498123637760020143407164095676231824424528967843901749789683292138083055234849297609662178435699699571623924110027101773499974573889644092732528337827506243107039979863155201424867496128750782237883594815009564081448386310682710232831511101077307757000665155760182996360328217239587397418758882667461066881181233097292047200302972427505848146998751726465111893251622209688206407649409664641022640081862909885295905567348257846416019277816074605257362405537335380809186512586739695216231830882397118157025234191743993614930600102834327509983117806624916712327415409979567955208430188924181324837950953921336420404702418140376198490314784055662526796169620749111532525066726554502488054715532758202078592040348734321120970223324639905376106960724140988516548151188218294510318916702298259422477126202529276545363732877826927679645695065967360990392399159423831887756667432962967332523595221112225748099187083590729548443584284547776141437833889317968599904250876135694240118715765632105639877940454802006421385563589880498349400078412573612092911151597973387189287840856038751275754223864271636001058145385189266833124995909456945869725691714001632620993467462567257336410078794804288659277194145779844531303960488202490371834782939141100147502453581165835046368971939648290824269192120517971539413413990917439426787738801754442848738889319359439791924269707274454892348549277639643176374791335488287946147105019408690379818453759527152634763294689255262785840508819007860745847293823381779255369987406370801529839470500634578820583110232907156064995158231478730191378557631433596372278911153452084797229740259230243532489387170732267167694821330865399380321846493100187864967002347811331802416052517285275577712666702285895100967667755261970725453117029050940690098945821580396477406827781523310874252759854955762085023026454378206219180457821548166315695330560156618215964637584611061176404879138025890976216368827548847306052317253520908533631218093649718824377966423501543640120409406378682436907959034098244032724516391345255696821871951126446969067568915634012100146150650284107736061929564185261950766992758927913734559935126380092449003585909170865296143603889523000099519737450908251184997152706318228595309252639000157294463209451031227801103565103351475539652959000343459946249403642669743545612397793162657499892837701227046907380200857929870389546415887021135097698681288978624643440064542558258593762356662142804230149530608812237508416031432107470006564244918581324792270072975560059847413830270137518085538169830176926886113534455960324196858167705802337095074678709593504987329519013214087222234380497510096624947252378907468778221903577998536659668904978745631682071514709361432564618235933096196331972563699361074186878003263782845529842555723935855562141761494795151743687937828608916809010896017467128144235955000266255846986090528006193450772246700662465575477574877026889349834931468881805601738101403909624927553980559584139186888829536273955383114220698961037806830949369565246758531302424724350969733597510157828160898280232556755205318443575630364352047868526515493907874720994722635548420894074144319769626803695410590185118703497477295855975474245201989185459110305736178139136027373242188741319639469190948805743577034401405284405159258117234070070649739096888684787684184944963341743249112735341811170432752511466300284161233375603597234246032691990405234009572831773202234589123541579768773483093445452675034654339672895642581429867822441321704162184320760046220579377901456937364242266492606852367207919309466872951087737542042827776539168789641087183930519938547985809601284118859624618092772805808229452611390709873743258047499909283851409581278358869702063263923687528797872087919254092036816598670303513904485733563316425810152108188544822323040749620468918175664017828097898651963062739783109488003905948688271462704591509567095215791596302367826722330953063267860432576322846758432321690080851747802366897033556002783828970695522099738755356034036462993753503093281486682117000287873515496224099866540731539258901771070267788693627665102731437057693025424291028851000884240232170866026031315413684879963021633433621357893799765077685468097552433964426389504589296078643633938833026685759911388040173566907564590663537996074086226087360177696993161800727864703991388011370967779589723535215289768436174980392103756204190468284061910235538042608645588807170316141899453572092618398157223920349406278814605277433355846655302470661243922848929505025672971966604847803403916125276741545692633430435042697466736838030228122009642589817407124256851798484093024137910579999081854311978518511505037742525179308394031668945320396626185247035466789000116537550508492597385247642549399608745949231235305322982013789640696207542139130174416637805876101172549630996851151870435104297635798861866654618959882261945968842037334808229784566060050001872180169946809696421368522218495826157000965909129911507386922864080111979405531439532007172555330462962552867804975671505994911717485441087092552392644916790149929684488145732822642426443850158487238741175057810965701593628726591883143700506624560056101805596043858146767860562405214277454321312639011805918125401418431360775530963420551292048391539301841567985950786670264823565457929843440780223818435550300385774877084938897789846085865890331362048405554534647681956019384309812338621167752188381755005202301607979697108828351445563405431838222998008422325519309970211602830562445832455307261188448884362163675477015709729907417751754678613936817489567723497775256467532117139496780401942430814214425451283825450036916762968372138625876336969823707408933658467577479528898694759440872742900623519057407184202183715745767470540168668217385419913661868632695089269361196817573859490502799500982509841578431495462764829716559467461351774524972468145148640671223511879840607104111052550457658122050073967095366345185215479494397054194007268588493514488463807503334852553257792726033839371922354360197374777779516902621457363871951381633014365013511349389017621795602796869686764186479107528276879435739869260762948494246665223973799218337355539223192331544166531422528625749231803687151627669555329834250306353393904232302657910053232791424618968287256568150723111045904479410237456701226787772246053664830734676979913068411374747874840332274981047950422921152645913200706562389734174804910795012688869544007129101468280945662166473490144961088485912500634219552233097536445621561092910377731489329456894871914224125299271109451618851020935090707745440755550396653970513252830020651065034015010917495672326628445371126913927710128181935158014481117956581639665975413726556965484004678916424639063435712555551750978598782947984174647549191664989920059224925852263278011358357785707682244820524926357005683173288159287766869216721077377371155070586451530480866868692363957595377785247263662483624478226952872366091542876758116604758576701679003490442218225450286046913913144288243686486481823410790817438405492045126416070242467716816589526848401513897534627884640462010316975308380433427232618973289845285979721622930296517788383334715316573180201877608705184757769905404836335437880973689427158296372554291522834626582714124044051026547040007706352596764767410495465553036855257842778559345917689177684588124946347742371811462253650441792557074311777957628102457957086204820119070292293257642555487340856311209979457405911816519952587982182044082793119195541999931908050126482598077701678041506468413307534737325747797564032183433238150977268179808512993251849393389712544638642379409761769006178256951867615793188856620273585488092313802938855563066434579904570502961261533116760259890411107445219637573068290861227508340812086024463456610585381897346490872098910623404194734681195685123320308981630090107320436442499381837265827255615300035550095790161194952853035841659275793371629832490302831216383385590328743284768865246248040036310366829526858429998182201944725487515808666479584833748580623011252662812948138618984166452896263363690952805595453532388951815371414230337969743151846491257911697742060299411400642466932639041559747902293670699887645015469141291449667368720482455326846222364889619889378462072069330332179128194690939754087795694112603022324296812702718605686211688112172604016318644481051191762762214403550062211480088852949148944504920132682298421277618907019907582059559347459131818716266077821088069859901737873149491219533063260057234416528193812407668342887257993239854612880186846860397963287121912309146555315454769234987380706459395040445260525804200468728581774168224015733815434152169771173900312424194598371856611935757065211234460604240934926145146690718991250260053596344824807173498545704556325084764787803132163980257331078849008048500355772970138796809891336540941812858326674820189154859683895423963599457860674304171135098452621981450073481333568351747374989340065013829713502740274580297920959074381736823182701868493434237908729422192881209295686399474727849187914605617170664788191457503169190766051917550189747468843826793919730916853231350440976824260511875172780538337678782218903149126761333059812713131442436723181763184969555581103371590377443165334737330237006607439651360584708631617734190687224127669065364653073487591720157991854943123540960569235180392140973752497098980752470264190144555953020320821118013079143137356561181453160434907808204523551975525630661643802176463956269611590307756460140513893510819275624485053163687715954396826638378794305990924647298125804304575249797979242736211394388496285513017634402364290774173015037685914448805806028019266133515472449122671131222701307621237881278691303514134382127258093926598302590879954812160913762988061089479378471840576242265924604356951006508347577301959797593794988787734538243408140012857804264914612899352718382470840184610829684504948451385530898271947676087980014327383821156675588269775649374875463270717692989297522145036060764789158644640405968908047299869358410066984301566547037307123540229810935916087910837781881955025126783035811576652868545881314260584262048615576995016873779811844793233125845715643377895335203657884330903058155618444234223769832316685588078827156367178997310012541664611508098869965954668936766224893449491359658747906848756076858972511836101956907783426790757367981959567470526118071859476430937415233284021056916838251700237442663918819614425408918099911891668769748718975797026888199154050845409172263349487625687851378501914097230077970777788456872115948165449561710945353748072628143942807306124178035084902739685252962357538806063139064305132909080186133888425254723139562136910632152661927970269670688809605982756409069084100955296912987122777390747759459789597971241306943583981389940302088681429008073498722978992468856333219893827702847820274700390347701978023028668632806031077653533588585174553393155907681461330161485824308502251858825100083340915066100972778217010818026573139043878232583407629706688440852698040141635401712283158794249849914001221551816586618691950130073693623104587120418688537242551155897942167927374751692452088714442662435675868821500662916858565783164071827580751348218012878478117577212740058349758650161066980881795324770454093401889100397288373549134761521632957444134358037014892071860778224896203969242545235021249306115800526520030022132515632894556987814018061880742868944795348057472102849961142641215247747049861809774526003181223222328870481113423729541473246177594426974127567048125221410554133678067386211068387326041214632544436779779060552860088524542768355533101754441665315778304782372955876894915692998586730889921821702608230627953935551644499290431754934561275753636985615997015807488102070711214722116799042676640116842872005738298198274143058861674883347997288115498050327422357926668135721862763349610808404683416507606308975395824370801409037424253356393068860053278890502437048435440583281294782579547612888215733829890880312978461248277830595293868743497588787211144134987324077024014804710142648371119674336147045692574670195188922664699309408441404148405760257646150216408050509723527542529975821170788854515358965897262847104930437774507012987741979880669237045560970685281141739430911298175667482584244976509689219351734751847520176200579775720005923052850994207160217518857352253997860333282956579290395925236440159676326535462992331379883064003201355429655553573875801036863020804797910458833507774739763771855365142271084597690246523926487126395950955595021508482972898364834523789529112146377175534941854255881899698889579566964875256250156232163876413111845386612835143819619121795031421681676031495251067341398002432102959231395235478389275623739398552211082722050647758582831727981664680594137983286787454976579976910783014539345670520905176104380846353902267778515417268393094336351222477003440501660686306371720294214085014119818621486646710601739013995875388454193965926982896482665407933471201725719977193922697454607728021857259125631867270007860532885353244774152363109121145777685378481801999266755755539405073082736203999668058000199076075660453072142339016002816310000915220011417000184815706636659554629151444696335989939305013686316254112460544822901114242841082800645498242478700161060031267262863311246012898965531398840692602204097137902539840718537723465851274241965746565737521529855638742024099457474100927372530745582831336713760175822150677079246847128057854547679967004297831191801094091049442176506326127272344313084484713593177853969819594815912254013409766928440856777694795330644569479989200380376173526885499128297381513210680915300538731390580012389778378978659048824973788725682348494354687328790664460805312780615610618240808202949855646118911876077490778018751293716785906967616588908781522068930837876336457610612456871540231766208532564193344216801526162640380744714830511192489222918933151795322288682784984765631992621612179378165638068704126263802260650028642694902764188366963870500527309958894098551795016058454224138941929750376274887730971808193787105906937406435574291967222493815367596564727766483542333122549495007715461448862050539934559867336844816223423473721122443695189632038551349827599073126874804188162663771455081146657882157275636135789870848352486672102508758953060203605010888711387337187543571739404316568661235710852742369861819364386263532988949170270616400414716051273205954651318491932636696349705621528033471521713097170564044700597005106540505737232802173211329237353295334886979308298683379597943043379766658560872536091526635220139528061134741020958811219867844606715481683572602647326848990840668581658486488986751665054444698818243960706314577163340799428823833037257829426962518668294705562530615079103639391667275458942505193927793106470513295323484920037357308793836877680022432974857996541697997304939017683768149898287795334862861789333416679691206354041470210920275109373577044298798035149380116593099873843475857153897013626943148616044212728469088150155250544728498420584175995357181329623602037832822638148028021483705780692251778919390925202355284193960715207268333557240611494875925554796334814043069626241986924525051847911153351454147903101471997084126637153963239380609130214960116937193694108611427615246253967771409082284661851531177427186879130316416200608659319029696985019013457984158860699957591424437461933187972973155938734837196263110676343143181475507904649946293228702619051424399935305666399442696472274496064148304163114566973838075822766423249970312985601013242455700085169036285996867547699774931443238869061360396206016170659592190359685077870074441835394460835352014091780465004227438009584263720254206278703169704334393351349340105120766921688412192280007727275994707383080844472017970071907742155514283070706447767071620161355394080341468593180138144295994962233583847131882042393613948520888925841296003419274773053808574574979135074335217698030321370209874209319438706575065317602646263412472848748685408810423084879741896170290551667958128924411930094612598696184802213387171260177854931465800218550367205585117807492281690820330598234493023362111935104640560061197338061992102901933976434987522771299092101813527796361983941723376105803852172575430688562967028060560879785308860612013722874400960215058299630461686398955020581672962858163546914801445326543174865590784548739517451656719578870801737657758862655911712444069785559415994213219194188441601683287479987926018540795536206073342592884423778762140661762801620915178343134830771065372800897384516254713095766348004841161908294335857262241542026428741616864830653739766839836874154697136776948908749956922791759006695923361887217943914502196657713090872361315439311067745551631369804377897752450865751989981961786651111940637806230893165314125685220306367024942548951895717621877805781537298856840977741411696335678005858359238628802056228409402826984001540832332657513423172328116905795649488701479479151553405987828520948954063964249038843885915536776110095044520157086154132230731566747981483444921649602804545936930007286658587929667242187231925036210246594259421295518585645486704835032857386983698947561904078336221576904691697838292554261021849076716817341306992348894160475117924757198862750821817146345025672258959286427418327108954303050756072355858744108081602797158016834234676540819774132085865873870359731965422530058005538542056809440803438633462714343840844734415044955899700146932490168141365195581799924535746528130419326392015011274338366908485900741729726802766339818157403092391819690985440967831354754248716522981433630018115146713068572439565889217996529215191804942727257682473363628607798516739870212435388898682438011524916119772788672503617459051008083229708926403415437988144956347809156686486422710670642438069943432566125266649833005815307219769452292375971839605016232064917704683491771350436287398837854902534835164357242051848132446963663545515816617489059144171648813469350810844034459264926114674372858783817746873175025539036060693160246785523527523667131113678594912316244825239718861064227226095866899259265600541653804636082589762971072174176156029094581265008195376358050516317439981401478435095369854442702140979003529913445435414135856998947592918654761261576979324923405070157088217059913877697040795774181840732261482776385774676942788341345973043469678580682829097774027942872535001563982029267428957627144774551513377594565263962084588348855417515143210098614269684996477242159824416474377959640968392365687600362801856277957471193131773850273229139698743603719181683512350926438267709041708184349381832281393573878660786498793072309599571601082089562411474157361121165946465959451258570014363886629019459876578898299968802716130008350907127591328846484774183784445865729688211240913186714359379460615777678112966323912668244385218777775747994469069030263611446658807458321964488046191247719882438110112597730394714145726685120447076428983368751695444837810047597351465011200605806632433603990837042964010360494116512997379074461623914410874984816200893745813359694275975704953464437800608505112014140895921739153004865260786988922340302846436235357307179875706671428448833696249382833891663753304761457862375920489690963607579733619454524675300347756532752337863540977175189138964768099202692328360635203902191434391158947742838458221021287032412470687022262496771120336765070588855682128061473486086029470698050615182518544205429402067982255510987779019231203274128580779468071322723544878894379461934368384697423299519594699346217547863877400014936584159445319919351494300879004399685031992173775666516853321402157119676229465377590651750259282030675082349819984254889821290988021255183342178548212442612721853446433811799928821466767719089015307007992849272531846638039681078388984755535400651027827260326389418024436599581304473159419883655763729764908643215771217188162392094251280398432058416911150461913942360605071180527230982248221668968764186936213464226114744772458498077784509139871602621694255843409986716213594501134048156309394161292197604050566937971319948606272096098143052651033031081224650234028703179620924355004810420878052304509084550928824894034126950886571250035539760497305550821337817806802281020515956523125820829312467861856804746846908736784820168834692840865742784247340512102369207186655080314192207919509890669292290644058981197728509760423061557634192094228045797352452608858831295452518312952728108249908334881258245348844717419437693780661719951309361588915241414813287637471259653869577125712889615405084048049367395876438246539120222032733171404813837262240114808691496029740256086220821756828627693469176283293974351184841457363940112782466242341148501848342286867321330589025329873485039584125139739861636956219707365900433657118103165311258564458203485982347641211805523013353804235452361427928688053980580918215336472081387495240769138066042254034201674750261575751542011275343802166360036057640453062446727205900044135874253363324914809456735574410574563881710228788575227353268350604790349867248649641092938661270098825461788631567669571976123398102805299303656488469359552459547779588536521823018857714808582833157903636944876946097880916087301970590179053814612981450805646534426976654821262873484535065137826585509904987023258938229111489699299757431285800793749123362143547902634433968345108305755027958778758515125589573808096784502942739103926445166808502991040823660087699553084119080159753845802408743231533803523512991370848392616461038994586207484539028181641660612681320618672872339596260747775836383065400399535815246956638108807831114949171666211959036284284908217972656345659304922014665256525970801241129870783150453373457201545520460259051471415950922091253982895555537008646163602885597588985869060072571942422555270121614760283666853182042713536609437053271854927031962874670902463140123470234019840431432077643386586040755997350390211655712996842396557217296786294778271833222807490118872565675108921029089912977613203840049643264039898710557113024065030646831789025661315484096835281030204167786791553971304744173312958778894895411588396664558070429049376992374013299445650521352279122478479868746727962652019365903195102520784670389705919198988653553582918316833648029876970682121108982407134383372252326277567445312186556404422888206725535755544524816236340773169981018187082894089502045842138492580709018505981768070953877321136472656128612314579405943200051888149339389917175732350485156434114794897657873551115781591503462266588924197636916353330224965935596912543299228935056904178090865787224308165925432367881597942235292978817659924132204173591959551112882550298408399626275099083803846438980865584141003560151947619749553343150033848025630034123406153546803297521752056340684931931711418357514109145269820820842855048401496244237863973110760044824397185419153040437678072476645273250245367287370933264053860750001259616852509609072054338432833184304793626621719704025668723823011986935348487506201061334279059925539930809311283498318194398340477280974904939381625762045083375879958902834880836503438094463804801395794151542028022020794940687856055110889815493496373526803674077215876787695325445280327536710797933370019528440130920102245659803636878952416157075386794465954473233106342174006757223839639102264511962968407511556202586696711725389038839707018986237977309942884949618791685228712029386821495025291240810882439217856130025238937567280854740661321071303145407012802173655017374862431093952481061351661368332239051136543519025079354060175142663240525722350431509083988850197715537591538434463288624669413238503281571297496697787211124084334365151621763671189639496248184104796664358336182396040333774702702658205415299900446612735798694975835666056108771341880897486790422133905908876618234649562888489338150875156389323652670013304817818618001195680558168435576642295839591093384134388203659384843128158763084578239230216114254557207716924437154904968369260259165707850597708725459111993541964520860376395025293554312062149648219515144025309448630919388783187119018791822747746168184570435490400385215735832529470289851860079940198653527855477693009910476635579897865544249119314388989493037775430252617824793088470410005463381617162079890041953111075119042834223010793603439852417456269517755912472112170263171748030491351947210784757275034467931087456863958850925076990866060678966978121237006897465027724344587815843841869021550294041106444157041423690382550044129567473011503346079139329081945135709980434384096129696832604400061707583778655759578913215553653845031982621980737221312664885241336880016975825093901848400261453478325704435987236519889117623112011906711850713838906855797980475315565037454149758333868952960563493189277213674655795224760547469115280939347292960635529167602854495972889030634789633906532533828477217077768550157129250927354547222593638478751754947342002879466199955011462815146159280953569173223279060839532351664633376914494101405181185752561351061852744310519394530912833824154654601647472055560863128264078826763872324191855879060790137718673933941746415517494093973223030015822158424727215293414515590556883569383498616996860270248438751094702901926098430443856207042414480285015090696628853789199829027346757984519320237125511748984311711491995818759290943491769720729286192673744994335831707500096463743135429657734748803078197290861795543584825695100838276549394613848319028307408186549726644548992519682117181658357255650240579953427764150658972828219030532427815289293010428016401745659896145275203836975883035522063904142844730579204740148255372450748835504862544586015638142565344296887392829800699222407310528059065271350392933408839420607363588908350370444061247590036637243689971682692125020170956597760612084966848490494292044087674471791494320626017257384514863168250705882050465794903221825715562255997780248113499347984195703349192514527516522452857148689052925848429461555468233281093934787680699682536807479930629562587710574742850240166031388873822567228531810156597750397828431882067242020355208780659731620035362701526303761555975590877329187915534770014096907893379441531235528253134288027105649921506808282950540386364447654521837285218133111555811294605777571317533199264054220490919986232922961687650857528555455891142539910033928983325418625413106861649994862472177855243241285184091196583734081629083115169789060163506594330057738333189156157272248825311346711435209890445144436373337053651910944167722043775076298080563004831797085538217941133320044552051585925773025338893698675529253510646196985627322067449037891365134759184900512619744346050419454422643588426636160120033029567457608478497600008215653367965944711945569275696552803157339247325965887022820637958298870786122792045065804438963792042677064601387884546144192569108469823192790526814321188339845011516185021776484015048244757044226817682370743856937712359033355630605369302766344670085382253906871003232755785579290550080656243657922709269991603232248883341874566346976740383590682689318534863408614489925027361201749973425079002212431465590923895638794513250501798658077276205260762433671369678372894269088020810547042043770821491593139226976918015048071279592735952599674974051175114049024127280553528171060023882436464841793914181243443326562478188052139179138392978520784447415405418401813345084656554536848539793910491781870491835020456988713859378300361169926606759285240963894650265095881057114531635275931511714429956839566781606074253248648484927933009100341695514959306263260437415638069387802778061759558403699877757097875953349931451869947027126535917506458835883881861672585891258139070201413023224959974955526578032975277093888344619501127187930326484685274966657167671245578546363147072872707556483943182776755269318669591364864329988997949155631148267445969621800840802367252179059898797852760804589978639056330670367009767056029675704091317897924846154720948740313272233477528031158221092259232212392377005022582139217562905348971284069389817520274205114875865498327810975995150400048940380103401721649855765196325089075017838314799052910357550785601947776126654815210534021914863673150032536525499745830109162816694272524999643690208788399085551913840199756992252711116194679117769959565725361991754621016288652258528493109301307629991019199300026062398787184651244133495589776871938585247902202820524262515463202643318480860179546474623047061770844393472790299403192337227433613696360835970833876657714294156205850912125309503103637688376189094934067234160314778004101805198497948009693223208905305918835060011923991430534818576232513622865540302358235589142395653927963267596316130945635172709276082309600007698365584915573101914913004441226721539680261330067624919865016162496543405546170651723297210241587223666553425732149479739617125955893420110311202800523774168865969954237217707922678518968626940116365025700747329282280843668353455996099831604407548452632902046684464595334539960228789552902227446195284119670954384612714552298480431548026636748125869571895865915893912718829337798569097000866697571884275076726897242871610024188828933367598512353092361101546288480767884860349540137713106380101595682575928737614894193507954627039444089040953460359923994184257020963668619829543235457373370467059410840008187621338275958756945682563362713455552776010330497300125208956110690562238597192499253080859037935421242098673443931341330422058059923651959019082912774965590430234185501717320798568470189412027177227785997430130114499410915141873503410941111384954155914980523405067219837614914768597792721885222282240070321870216323212331386660477119678820767992013240144235869404368350848141518437296941411612600175131972722600063396284945860098155805250469084921281433515586659589922272254660376199042920737703878453554227726378810059672524616913842187650228834854336361965687197602652184112166616222740640344759979881689713879288076074570564473555237029852895306120176516276321554206833973315789132110004376145710116112294262667051869892523348556577843988110607380236095168060187591948658289113431324802334514841703993926926551707130964317792563825795925564376476778498326063793919829717112794491087217067359774886506171858722133775752639756141769619370485338575723470134459628401904859500539526485443382666252585778724487156551804063911190930925380806089102200625892415023606551731286666603979278684275154083603262504423117221789840010277562979033018359061380384663045233977463075387895655262675779893329110061662908426760571434709266711985477430669887263691919695846044392224551407217010762990967307347542894633868268072941368364866494207754146107886043315068540682239635994897892097189472100023904352005923302735700055025442082457056127684691405634247324130690676977337129688945185247770191499533164983708599329794117590929673583981074534430479584589343864227478144491708537187669799940524743468033210073868783203292527928927606893514251231831367378741359620824690175481537777969750851485556655272699698301645919167240362739781964134510500944660928708777066931394956706083945533946551955363454579602957724221353457213625024645537000144278831943179437327018421071771155294485624219260893142387237977394935474870168280811468808658093646624368390423845200262604112243645930558624987120943528899286090470171714781167356131730566284117530497929352838714139776242571555526390016121328285987097801453272742998915337582732089209677305246308438674930066199161257025189758188528304115611069166197502384068991674140737065573520432910218875443275737256851920617012826793671589896455670608845103661367401888157950678799978610270373044745289159701976647283505485077089215914361729485597364873798123784269787335182326774419875532105775517819868621768584643924039192901178064460522563182799968799976556975241426259518352487337110154578316889953989891106230160066756467990110485414364046391887577534344610438539083652115991550844695179430707051366542457156803183301500002324443494689004034958180812075294510699291438509412683326459099314595221227838047663294188299852858845399782211089851179458021845999322460957181379658949256212048399742721913507005165789020560539124321590577712383004543262556962623251434798038810571306870411924895637647424387004645046654140304786624755602163563119365474226801166705811984971644013409229750258014587358031240873491675956406004549454205363702047817926761049586444678559861664099962685681035040236402607515942968408618004257628823889311090343938287563247298402768086581354246678312243092794129380720201284959274961253813675280082811712376971011729816780154922936883811815528798036116678630875015786879698383908693246311928465054033900885774147480882473774123143895402435674221510664463778027409702178161800937972341219277822091753911768457460649781807408014017397117166700656076966235590793701864804811126817945882754612470696078092337680002227118700428872309729607412397505050144508274429021025534620470179104154277523318248975234566425289507382487846652489263879128797651184219028788212681992315705891115574674672231967899942680947491306349830815445042551177439187172889932372689954733918771926406127806980838766169129908259140225764265872534349366611525472211411977011351211812268542009202660566456280939339663903449309750518967135742875295195209505357962931116055479165712110827636951064270550711397415148107336910843413426542530807603310424039435450900706686031093774597003382847940627612345413981063144442556220014964196845928920241047861668056586621447778535478471449604192054368100215421477049886697043107361859608992970090366795966995319165309063306889064593926865905595624085058535031244971585143165345446923499151510136506275673216567313558108768328232935002498455644316256020302484248837090897459490361195795398270119842878357399419860786334418086309356078188322174469014437169692688451437360250522329800294954487422089917012548043681780445382933563339376323670068743029844385715702466789522736572012969913951338261892402545775672124226400987986439518589013387081812043412228072617123864841825201413242415021215236392420963951099215364953256887131605337214209816766764502389599771571822607604103783003639429427281300453548055359368957909527950256745438013037987749226926719034143041551574931663149334657176886511988357143930074751838681189182606164959647762641434125711576211693373118717821591320021696638843244790952790073904727912828126778306540586168013614317260708003574069124083244084783668741472844998181006784639931286492399500126593115383189971787802242732994573756599087009953277177527716358764103069513620998014628233860171522768710040438983301832217163358221307341428232062492677972631638101569284491929281131649853269968374688161057200562207343425363850082930070552295669971922637872221011728516536851727799501586679626777478208108638562037484652224464609080186893182950735002877838951563602122833012693943579820501021803656008702928715357703174743283795975195219201063297929733415299714994698683521675032813827536621735359721524752726117415411171152329638776399867397456204931544721368174961557153914984112290982101736105370404410856547742697228394424555194027133780054089193182469873333127195964907134410615978932065234768764458968897189495540116202184572344304604108514200831405780933440447890361662441417263606364115234826761486035319517813080836676644009073153904853717216841349429035531693962799076592608382096994076396068879047519124703202335670551197474984930760540005991375479895437217293086850829360469418633612691962217726192926040043526603495720099599588767759569926094561156581785117457649316752003458240543316184579795159489047348474575020051792785573778090345805931758598814345045834492698035415171250801894704054220863230236586813142078234150797388666979921261919221274133730325821462110313585775849908883405855164298226658950862181094926706896971363864475629167361357094865770159221761069576551058980974164232841539867163903715414958977904963497564264985571998380207256920126580499806931231714857872291952816653754419049091220033749827616326206618718139159345152297677271095429407681210850709804454967327754833747641665461886196255446535816453085997757260590491390053376865268623321944239006285336876120336761514963763011152749660035492526864970865164070716273633042851848240382740438458667807475135727410989563918878663748055694657908541671344624073640366780409579896084686201401275129882848457834094079381645788958118583348702075199034989718999052422256257940478947318340687556340027650752674905594947932141900118732547616875389055647673678755481013295139276311420194965707795941988326734014951865769003204171708080085194096512513176587458161470236412929286253966200806293424742050272348381455403477557368607628030822173260483146036971598929084018761864671061463469637730858039587252348849028744180071001085902425721278119411886348882950951085952229782325305844786877795290075598242024126111399454528500738101148536672257902560004662720011513630489855709238759391451822601706773256892023390761765124112870981616938253461640201569004909008968256619654780545012485220230295350950716834152101546366836155304646372513620448600899062254642646188332062361181261460609548041914611772632204573528245706619809103553863883284656693430025562605549634896507041698201617046078037853059181570939205492074235418114164530408126719528836924907325140768364358930370694496050916296447184583343626924225730952150988280803249407862443622115987401641644321094556623277678207242371724155406115448220922214465305939579922124526787134235181874977973353470358065747253929469917056322344515073722689377406655832203264945988747364856784735282665716135002757875985639607114804055725944356041698526502355780881013096562915668223140336345475880294367954079656248849317851744502425253643992449311401180509582877610218106210502105214436179096742290489892831252512479700401794114374079243860163809440657034061886604611147177656521297276986559773028412777124342355429583721697638764674974990710695627100692844803822722126474749052181164111436033577600508208125007053177182461825471639368792891502430660491739982700738636886557430741768436561064105321011853351218516991437214131357866135776562777342871192748357479797000134622110366806750997610935214422392076317257662888012402982952705738817640339619236863529891451878374785726892915017838975984956547639934744525297947166785285182987365859682773798142488759698477010474341640358853895007762274347575570204984912104995736562825889938585761356135009949651874896824456176221037111175083853692471280687604361224768143205402256981452913242905842190197546193609308557170177954574841573838622632989969871925918548693910915293863914916478796916183808921403368595013215026544675868449982048689575331607826965638652656321005220216649882931116564475196472452653353094140689523258501674185737104865092606360220275122863176314168101109053662620537717709394172368999190507640232065703883503343769722593718183644328309928255196053335952192420426903328484199795428576058817924358962780235634453162854271698963720368557202304386796097206851817421630684602158951550316268695951245246945133106339743324248772932164506080269619348142527074285515228327465489760556142376137457119224028684008512390111541448599166486311225185355980925039018402347804876589635553188024867713673871183618946713577543510787616666898101770852066844248267096665447362799691204605799180115859501734797454440014711460680638958964050750822924126762597266834624079448608759189454541091604191164418518282104005533323758833470857895895912926614114143059422284308331897193116289576789610325191606376041053556553768748353577097398419235812540767838421120053001861300685313223917919919199731470332989453364383074722903564628267041079350173109487699681520968124015535430363491871708516506891086403006805968691777854879091750062934623384326730561727244592454930003409929128110249628231022415205279378305518196584246156722607143811990084025381062534615654135498082764293964994697770454879127601560101170135346432986776164866842953127438574433872551806158085001444614607708057874719270068169827038353604365743967625684712390979567231363385202578201238518418147150059327460262399920427181965026674453644162367970135028766099071147539901272278850668379164525364399268909010310580044563041775471984047312390756476991672752873598240021800934545592242919671280867532309699531422327971202165606164308181835110477803738010276364038392533689805406621685709132036804618177033969125388660543896301680408987442694073795551028176737632062083284530675047574071758835608249241754708955673370083528411420790178242457599281318317925623073912212649021466375499647529685477282225983286298983953670236198910810117285657745692660397961177832775118623881810598102439489165645997091804640752314983157608073739553077902842202055844947616316172500511021392358527356669892346764579205431306135753281872187428004033590856591723544898640948411096160635634140380585915119680159701495062045927374762276923945625604261977663011156573528705941078315569924077492337796618049698084311088144331839141817639546850958516223968877401448639317834310421945201255086467730454962201591733879182559082724296726857822076070166637143913702002423975802465639847120042343236365053074439473983311902968609409358428367177447144669312485646604227217057392678743076633881150091179339504049193665549882427080482027435035614135345453132604629984544555444269878248851800876511555806866284121911659035563221182332712036560796377559512567033525240253361020758991382776800006479343584789908269234319304532609400206920528947346520435691566294554596720545255811883305472886262379216261982942518165170210393620204917160021521468682841873672834889743180075585006373949776996182798478696863283895335374658877965560638914117707878833529318984564538365795279918331742278303466126862668338482582240619484981935018152927751126359729565505891168478135660496343234125392312948061860071279950089455257844899116667310310924262725803356612658388447782655049832271589147968753788893419903513673126652306884256893275834183600001637980293831301673239837870292361639352873565529898513440133688295727722785326327377707210971229368984273402038335243957396290918685827009599111113503564117014239815500606527057987124366573508699395001286454771452677876098723974869292889282039879128026100377131880317395636186062866116425620616043062963390132095107140349298818787360744304695236155313013901965351981800365022839118787653342021756978145446659782709488060065363107036663665777214799140719844151372585501285376246696577491816440289584233434763282402255241690264726199857133663504535127937800704089180953579376683938938126237737209819802248007422679073169154398518375452911994558838393687587360725031312288321062301034665995921067657276609466465929785247653617686185804260773039571801724163723187487415213716952609836001582549334614158254667681942419950172539223180172673317439344740166829847155552685853792399661110989641830250841333033656657810482318548995749997385831112342231547119787498379852239957618331507116200907816962747255383554560151198401963644498194081021960925038271946456543487285352066323798535642819039061293497519397887987016260819314777800583227653266728211445005076522239281140019512309282638942768610032986633384805448769465292838500257264937323485590844169420900517098224550918479176499416178149028116344698892100220047339383843784027352625642206119907148219930659741514933841181904592818150448214149724635467085303445390135544715550275389893299731421090237419683631390982017160978158421986031148296128714646242312246161308441739943653777315068645579399215504242201950533658505716938285688978392234807195155257970432397570952768030177615882717260758989034598866762539104359511847982726237850385133409656219065254092377549821226428915661505441270634653415676951519695726053594254163545027017722922588747797218760495714377860085622422415685700456335826374714760184854602983385768799464602710092837360526356297671855828750057562708628946890650556454303445788220160618899266070207548946594840413367298653986043985192132739749817614629937998050445082312550393589667970443829605084784680254570943950989758101825447516157978835496436434643371935834725096516496650755788311097182816615480252874946672417200409780504348864615593828614014672508623082952485447704376800115715495517052782289544389200819129825371146383508228070271508212763423950144936506804705760840938825706417067962409425635075460730208037225087082199172160069652956912692470135155883928253994112302076649619884056116870323678150340225040807723236020953339910357299345253982441023613287662122697180572983366630555379483399781740007229010731536849229295314131530279234398132501043594637902554259707166325390555522672220675088843742989707218618673373621349378622607029764477278019149983403918355633979665040311495017742522433190219207885588815051724438565965446637866880556609305376865168621093006349268907492849341537680883820106059582292194627786622564894549835651497474782465488764225682486909182742596072871702507823790827562796116715712811983499692919803098769104885236848532284187361141206040140309825687633842007768763355285612965682298791170150477943058905617703846276114833832013507875503603823855618468084845286796833481013216399559554092463576504719162085054569613441381007555942224403306082668154344033551837198152809024143884951756628621815525013714237429841303982005312273639475026413705225162117739206092399428199317862371364291346153101775401343259807453984952942744085109545903250130145853896467434882839233612130228758473491736181214438415636589430517402568046183531489453972080093378099911927584665498953283972908949207629907985707294282013334874035789677529869531884815961131837729938404469799197161259899808255482610776076310583005167143006843554902954960193377619722821772005640725896269073912481254953478547763712310342777885539658565199050332279154090151271004370504304658109496003675519579856840427113882421546780658042136944589870148706947824387898175684172497458729118652144842625533406410590465138122482940421442342268258053647130549616689986859548119583408008340813634451053329143093904241159871780636932630427710864109813617628427960011793589261759001947278256074547893561893920116152492538503390161696278387320628244847431911552048535393590934479744507851301431769531075424997547979186985360303445128232865067446493931206999771440522349075205466998619456803335863795658095860358903585996241736329862804316463217019640685904886043798244160843937393676900386631454777002531932663456641496142601799326338036843138548675646661552113763962989013761791962592821738580932242330829421915699129630131657924380626160310722728364402690366911662842370452541626020870353700748297441701345038987641375606436280870370607292235884345389654811926214186918216411189958372749214379484269406909770313771330182454581186401608450795446806023040117445155455647678283099081805787292054047491308378229924265459818908425723067746721563600822583713210683901126206970955459909979097450646287136424619282031757726153989333734143111032565019195983422374793682479936593005115351946935096081351523339873325939287006411191910252203455038066296757226894131272197993613294732905196647521581667115239106466069402829615985389085237626561970346362058512221568564952609424039610560653121931751458817496767588249535280748962650162344325286020834744440364754153133299402208456767005979449833164648995928516478328791003901935900544517576839698836613783524730062078552714010043147572540148328958308575856463672622032621466620417078567370765502150779533965130006103364313002604366135603521517188901468678109023388298585146213253204124836547545362619915580734360012717323049004645645434669610994795622870991653394135660413926973637702901908548178981074270576240408910216144885591320767751479503197811770621018387219412294343970256674212961713982936748295375961366415965844442941242365379604636410809937926788192012564603602542534015159975170106691876065702644313261033051354859331103085770682382055223873868031598946111262168038568660879770414359941069186684728965115072700982693533125956127285673844482768253165387511438492279200814221779491924230593455221897994887535431669707113463353174138564632534559112742916360837695393508709572690594237158892384518765591565863068279878985191050697306153847015810288361221582531306176135107582420884797844487645421129258042287298192449090585226758647915103837675858191933660864325235487123790399775419411322203022976057741639457802099269314523605311483865345359853149523471911751173955868479542259855494848956282080909118061291587858625081532143586405932823112819292640371727083508954530072425007410040617497340935884426222045156186827312598089326052852076670416571941728047425086230433850349878564655779751829025579299371576853160328022117687950325973745099958421466108945995862248596047415427667776827326107792547185980194694199330269768836613704246353907517832981766786766049232010685433363804502824668089062160755557823887052973433110659412485832160129026349294065826222466232228897350135270752273543374718284199062037007201662662430826737186718294194156583987875070292212058179992681562460383486059051768482672690667468254307523417202470796392102196253588532635598542232036403331715782761384948709078167286559926716274092429757421731142017910977217841534982461185746201396216771192344715696787057262120862702396565849223484313053676928295676648008389729696153302108634206627458236430839224781027167580584447436031529779478245533025726332932493990122089489881557527451099641184550422883048975132942681306643558213777682018163957168077220252803461650791287283206210157706930518297962923463490669410158385266648843954947311009034395778815019986707907884788416720500753959119628767971291221632666182625478497042169415771299313833686390882258619103995137765106547506159491267667651872805472202714145286701693816449704122265279938029391809229946453230276849808262635770664760343089363637876439908099461734082323557658352830408572233023459268286778413197492831002742594501357823071432319854172099200515453947042853208596162904085361919699346029420929536351011112822878641200553217780874307610351876870656086724989906409014576207406408246916648986836091509882470591110601223854722924802539201158592439839762457551977518716334006346051078234121460303356455723080351717094831598552924263638384214088159487749720590826190963637355054368118978015093992849760043653218984579216371118965206355385144504546040088657254455550031470580633243865751548068488929654980300527425806966684268739216899298620381513229494643526976719517627465539175090530873080482074554176426626526892638699183212784939037005622064205798394920747143317892885416522810818907570823896438831261294236830395116660612493298450795512428333525822987824885572005051540416376126821257201706934226643507736175234014855578703488278813532008317318897847767130069547486566977500705436060461568212866243961595293089033860838326832858826244576004950715101809290757170732111465318966046427277448611578355728939228825042495960491847616799716604681609860103039630843064963945379100248446573329159207143055417972346302019528195591378258081285222516422257770011885380951706580080570013513513281200740959761220038409157965315940713629265357755278976804600081982697116819365876986795217727895001984944902901562861152015494253528198659722097534849958285665879839539868056344260326264503842357517099152535185220748943865011634193819887666251779320697122818559205478472074002497144402555941235401917849907186603422433355923210382454040853061537463089894193202969629976515067079170896967570930426204781086936800897797181402267654324171174454184592463823913167741245654108723938813814127469005245575888876735773021843951656221161680685428729323090894828067431405549086557017272676554715212754165873233701422493954937297544039760784354364007710545816585312860190031940678700790305077951333275232833271832312034357819386867504840238837456250858880442695493149018765067237896362743004274292141177822570521006992910203419973518559571170226836239405554757171421001037871460382579837029187454381466501776534564619056708908805221788875409813397889247107072053067277707977551680909916403285836649349407221706125576099607163507193244806102334071754171404137214754402666466427644663615527892083316217051578260594294814321691487747143918518330742939515338819764227262419433540300192273439362357285454394093440414670404556629765138220974233498164538696378377726704670880917888103141181291712008373242132417778334829851109378283939757677782982044003396734778126711208861654874934735093757919352830575904040450639101885486866026838639623870136745038293052616371942417163530945412773929238934961988550539772277901617474074087069483599270668495967853577975998268184827793421299498328800027111539994055702669991759516972407911132651506014129615164374097980831465618921592000256712678717071937098676272635988069457528184653113745836832351295612469071159332815799859202638729602501071434929907230404732550520067657228671965817154488676251089004250437380195261466338949054834312304804555411691029905167735542446378107636711406689707578090677779936001407448968703054939633380095679073294447514989018912240792881034408204598951201396086724524928521883215648710372559220490741817796680899109962089033165206594403882069526744685765650820695795418768577714134949377399860438881515608089680466036153197096376634146083243721538657536138543041784275395970002354532941985720852791586364042787710408435639733776547145397701052029758116473929227291031272119284416860953648908573945894706635216170963943432855716169675216104328521222269759207565781336839390021361537354350300311738955969024754799283630259680976424128676507513830429074473262053508238416515070671271254073639961781073682496315983500769834526779085381215505670085121419142408342874303632965349584411790251956012775322806397093753809319574954698918790554046738839211592697449761140672962228253992574672031997717568301159362909306517709157593515350463554898050199089339141224862305573702951821791463510878827657755547354068471206842825668571000161996426851067365115789591142473781414070286848368463190096015948998445297736142185057688740156448071825123394213100213044549437780127605304960944463616900761743686068643914962290736581298209730159925328095203102060441118881286905643022077850880898532293499434571836385073999621156571096195735517207282448920050786923176268079315856554587087676865869174181343988280747378694833751207295895539205585404761762780290587425207276659915317592442124690673276152022683412084960338760591084524329863724953360208160649332199996451359792236197001929413031508544022488871411015040399776386122006974642134139609836007290552166971891813342816388581790253823723068030905878456228051241853738228225564619293485163551426342950246032416134238009948695682045762096136393056859221294738736577251778001497173928502783398911256012602241973208063218416426993936964276323001871826306975751194659421159476944455277528604196639961267580630487154611164224700384576086095215186228833727523699284935811776074977217363219044843322722618941683826679560327143253678881622696962892735661088258991694443810168579523423601874029511134412424470410335015841641161504157453526382045889284970614508529789156708999180530467186643894200638599172183385507027084279339485279179271133958330197189572625614920405432136573465193271645124743503223806546084442529322304740251340336174430233284130886819470964818666492063968567328291128657349192569551468612061704066019247480747647168090184260694367938485827235397389325301254295247826047930256831500164867307998225467064017991926237052353624735502323230949450677247958251605049801303321445563637687660968664318680798459820904112901106468593356542072457749787185859150078166589445480416807938719569108884864097890971769189707962735344225413256764774048567045864392402172757874088290400024952950078596407125882147307249097519573064491844968204706017243804488828544630963683330986073256793281220945852080393225083439479900251282973575410831990281924658620398174184329681130737149401513655680741679423762552518912254137509426416661048903390691316623720489370265349077438374604882575116755512278040102266360333349999345029192061373975586966548010097266163652981263570481465899877972389022118967826118823209319521640363559536852032076316219109044845802804769594461918747410699613631498785617042432969884444454301431942494671961958104898748489691300553365642791991628098399801711312916231039364360902432561705505092760930321202252299044821146376991747537590093661085671169012103230520068930448110018122087975285474585121923343290640887124591202194813837794136928579960978808824394479467172234612886275670013805533862117827040871777610608406559167850845114906651937679047960226751782353324017473368162896041494537037935334321413983626176908412241928749549245343577589324372151526102312582614545303686564067925891760631814021474634807991427068328538366890612064340627116714448600046340561915207192447227598216342432181061153853428758930480419231311190390825511150813105463893120093143909339756723950374463631261697416601374851703529745171950487836935482792033125511658034763856410901160736358626266886992485098121992980547983507605960518002603134056561447363898432427726982524386142049511930027918063475809273181620807980173230962678988666975661904117191416798962562697285005902078467737542813446712729755807468834893871912006645183829760021439876423062918163458728780811511471142407847368314281678036058297944368511646790863477947287413697022730786983538327737898441081336183066853087964821438000757062438329225846272430688718250223668997400063787910892286129873886056972714156224225685328616801518035290920835439951175984302518541322839172673408007845382444017563850081550544683152727054058512498147174477264109095516664098263591096785224817758993971521496048952035888263024373246600529522651766278734357011063688678741971457579242019444599403751144054662380458814283195893743741622533888270922825557676140555393314925625932918453950857461995367415897194782028513454822341556849095870863068442529634293738909012953384295717079439670217173853650140100890587806189372883346268741024377036706687598923475725831383892553064263297765039166445967113717332627151882543183351545098094511290497277333703535766599310616302566331424334700372202006838559390223452940441161672425315000854450083790763070233706723625524997911265406233267115581375042965995852440679853737488121706123965389050159913767715571517239904076042654996415881387284459556943743128645754065522991766342702786011201262101220581226560232689172959375228960752735568808582422476617876822213262239685505474577747982681167513768808538763385852301149967926751934613125829974309509315995156819905642627264376719227189976803275087800726867145465051572460132533019653893185278865626967917694107100292811390761107838547849398541985307007389728559220944723418158950252499298901576998754196942867821063212351915818030920395575446722966883935256108748680785341418485383464515973289533841080667104198398467453581214315917774217526823557976615335516965161336526194050977585867291298056287983095009973466322747141352189721854453202250149690948906864293270046658530910343314215769146382755443529668519081085531273172496313364793348156515756475984296545413492940241961667448164885612776089545712708646304944048372524046597756205285818286067122146268307197015938780815551955542387834543766545297201134486602948705139664206216636366720817026840347223358986747418151344888013606359425778100196164448033540172743699675847197010000453499208501419962929678718798714672804262962504060395187794740340735989765069621235899633452470120319555046165638503119789394881016210215803500393131207217045193451035909225445930250536742194840950633481357874742316033119300127707450522309897913074448577016203623976421788470055551478420835956991996423500787117164518011361737750261576300947965422433071768759757769355807511395637570228290550460757903128618136835282383053860515856319979391684876202558061113152813542941760942440417441485397375442192106776999923766886434639152967089520653688344421858892245626840576102486335924013632790111480554143330761987888702304932400174869189728141007527839384604260790692432560700358732077056614369591499114531640326709349305971290183144833275375528400612081274457088618140812643422907850291136011368891544335936560146253386664691795889935961830353124500798291703856538710789013780350326853670756016401388039362656068449509828253055676956542650878880711297232965766953240535615058665363976884404609580076840073984666174763740660879817214235494482459869101172105212804170449779918257565968046905247659320683984602628539592602987362118979977152155015209485914558230455907483981491035948491523867137747659252946282549705223959319249150318577147783508625631933098807316293683355033995516168350178870856240932565232431153431562292763411407359890415844655500821515660016825316735094479403173599301414153160107174749211379991262370127937509421899978170677084730174479350050447974309619224349762824229622931935420824834549249395445265081987992244794546849916379761472036385279788546723248372286217927471551700299002641127452305398307922620298412162354173114696782036260566085746507080705160203311555626436119866853693852952325380258871706807313094753659744771917993003204176042765463904086067211327294744019238734485639874769167510760975077768264819651498463134161112421990296547371490392324778932375821548125482724862374317281004579725514743179869658037348805429797915915251456617208068051813743861474493406703754311666652698208143877720149645329681448792740305557893524634349819375437794930387346151917205714678940422763776090834704684640881525902763590721782905447471365159254714087572790381522475983684079624684363895172167463698853175799380325465942849004000468734441639479352068038249306915871398211465757115914921771096428935345669547252670820061541370303197193152421955981229874060068917770449669846523439201385143622932471238606410172926113721590040225146405247173540703121100552600457961287079911929993807956324379077426884634103046561313220090261947545011987745276719514508605764888275068940458747196248053847612447026637631826360181545501805505620814682203364805316474851628352830442674427548255263736462129257308917297787552949042415565496282540081864431488770173028756665880862285970932335106107173176540146773554494131508203003661998672967276483537005176222352807829864612935336716218881452248738897494578024717987271653297094742047614504520088093813512609339422211610119073578963366877988027116311908517060106211587372446846942321026463152070377778503286734873912583108360844058162977085915569590871279958997697829816698465820680298387798309110571186062230909872900295450664007474397552134062231732725674588734039610039013170126694753718016638435320681085757050801872584542320986130262096003531504565198720579546769002031243738859875492646393340686831791320113364209982186257683719387727193731711935493204909381635106485396947489081030240829570632309461067678090500752328074066896600557697157789803240097804871562908333956987615815240019166699503199613116907970674834654919893383899590952084322164780551957409860874787025745119680299816166291399307972868937238397725457408715611469713224732090391304120065955476987329660552513612288908367826520206925992550265521289962855634706341738972203045363883858843769042907589082341378604616957005058911838743137022183766293013085776464446629994726943041305558730307843291994862895546066460314486653534396416306064979824170908293680954780408992855172869544832914169516238074802426257099160246057756410241522475928166812598554540331562136522641459368886420689265684875194922313395748079275835675381154947088039934186068562123745935607100199256163918488688744946954832314313012839132583865190385616935178931623818468566380024101012649817227624093651734052180823360890300167484902129510113695230675063892640255098195272516486140454717389153346028809146031063857039712701420727734430637732872022068374788361833963583371504937980542397801971684126471963884464563945808296691844042338449052845149985632965841492678367943920376830365331219730844912730565611631866612462901014282908652092048120892006789217301778875474524815735383656793264721142202691031413127240747773856251724861956909469333039961794055116759551703642614095794166166075056955473978256333275511359407504239604331903160578618872819856060863784639744260220988509565348359879395650340303425505167758331383221815887011116010561035798715440209726651019687501777245918890283906191781718736849449713774404097212976780822919638393137990397103073041836885041381437824531109510433017181191524560841589872996153791531300806142657528419473914159978083982696027996130974061114535829046247306813393156116509881397553326199786409140379402364191097510715003567407583662391517452328658363486396905811086574998478669394753362946551951401483023429980199578907371802947434777648312676204604026721678119572542759506232502073261408545957020433941607116580823991225272889499662786983733160749307400692546730588595519230334724121039220718626213268717414882021681029985847385432339167224538922712953093210299650270205494750167017331622369923682300831407329084849568277370995317035968188192543935541188371655215565472543868656639693908361150399781928073633925302046861637021111421410779645084100359753461289623013113699091617368699663686913995944380035055388210921487540941290521497190076762803892441530070210582671615889123722139465231831102858176548142550717378602232408100925410876049698041260929242151684531181420760208753428507513766418607151771210436722682754227933205797698264024586167936106560927602972925241836181137072503959058411634396490234882590578183447452959922554180940999300517419327742144891146036286876308417271267782266955098777337029799204903962427359968673034236464304641993684411644218118977720348159140488452117419088029139790027839932041140686874227714472828281544583410523163894620219339559156360375274901641088861731131293413392875497510122435557919069729861357427843577254350227019437508182681973387424091060852565561721639964419693389816672872176104984548543392726123954519423751138047089231181023205898380991051766640860286807803697779233315642041306555807970712691999629307378691834812338124167360497066761199019691806945047251876804162611823842260261426235094681160372020361537550446513726813902804868227828015909931263321541202959971426355044196676188855393664312827427000318103916559477379668747841926018270000629113233814435139218177737891492657709088425487417848455946428067623381870907590192125628544547441841213852827551996859101315543573404542663843236068612742255897453143345926098570354467760113858694743631400203337312109808317059025007353188121925008606431985834383361001876339703457360410961431587594387875149904153041946349314579849381565658708090430889190071980888794436649417200738573999539214731602288526348813992521441064791918919522843611410075699899826304785665036641858359374200160058058471392533732943903254610643504615403896124790246430906748362084644699343231780675575125227750182841641636168416263440767178833350527395270082162128201299829997808395172853969120629677214560030430869089757211281194187603269430679023699791919895136175872664750029740960252597663710102270056629488778975774795408841346478971351946289544621245237763278460642532618041884906713785441035427412318863958478005275732453513590593041358129659345510021648001698736057700638105657464551069586797230388204587360332133737030983370761573703019786502575373676314303172921944309390160385890554789417274827484340811406758575780244581421974041485946109491119537946354267493644744271068069997999913500060334842866172617927728511651391475669390767682366444138650992301944766177069071689165486587292185370452071122315173432662255682115875467366841607086346411029085605838636988253242977506227643837306853907535332778354822104175423098019259205353911120340652053557005287298081978814588801555998927239226762838712517743568467540801923233690785851240365212900713298986538973576918920331481448104069334638033221480159934202120653672812143372413175982217371707813369527355529408831219074419997668212863135923627376423884349684341319957882215212434401522863764680636238077889704465368018783194196267808554973250226285070733373813333085545562257728901601341695277909455360157923204284952576228284984631933390492861638477974160197419956589575003734653998733332572575704377490631907325748136926962907564908573224104134401444230512419210875371597310071649128928008781382858468891757189669104776295762538682105437004006339458790158359127383058426485021963960931055879748652765225603373857463949730115123027429371522809377157275463616886742496506317361114316773004132089639441952161995548831286935568622283260772591785601529282934070516452507645528140190807179177962295843306656059253078242983919260832231173788234610391696367747490244174702234265722390419074853555124509441606869168105697676821493444890111656027481408969903848489464228363623161096755633519273057510863440339261546774582538254791827481005059055133948823354942087747623428557116268420673787171679913234898638504884325152405361362450773540293734912438149932001958085435110417996663363249750851181004671764348590967869899893010037510857604560049750627811071145434453317875422301997065934623593858308623490980447687524878715093987255994196088347102582719441811605034390739131438587088146615555137142978847367861234937875841851780781522104917518152727355308229729081133315922923904522145115091349449202038077048999106488649578377726771138686214800026015931537349665506573588074594543867629853456822645272568892775681804994293559798490562795397235219578250265639478498484510201071955902469611320510337295809654224117732211626227183016236770641303705322999086209781732120109303243929635226510867406197829030458955406628011675539654707003403545382658590667138012140459387604099452308294924618412749523515748843059103074619473420207711609173257393147756375939464947575956953329079195497798175266384750535260761128956807514629208183048460321797827352902002775725175541873106141966671589514287827818734754346560156061144401723708685867847026619696481297184963279418531941420734033136414401575894374095904409875809166055141784122590669187261299785486244704945878620448435021429064328754525433683657215845908774588458886688307501237698822298179690136134928501210157002505240855239807705189054582238084804672444166717985800292438810477472403594787849068910299323756049137079766275663121463780256056121724175352272343056578415956585242137278564487517158792307763708131734568651063369531099855832512698573285118801632618584980171045503457820286504080913737985432004208560643068316231419309601836232762989537758394659752841569894571034017295919015435585882243865610943912647283566912038473910738789075948919708940944587404601872530096187583720487573519330388842100825368187828703792562583830623697920191566169625516960778077583732709918852610363513346082063652395485427061232210148595425238233144290775329362721467203704012366864287697521033491193175661424290144179487287652667318898350821850983869476754646426597274906195861858746650053349797274358614821182915206075743011925221758383229884305774811175263163040831775297553454487728197031759854940957937911478962174216690150488777113879549000915567844014819128711863533439209716093772279572968714621415598984291955809114531684460072176239088595211186790979395570525088520588703523964869127316680273602060905338947014133146828279547595986134297046523166846567648398987648858472398821434802772214434493916574889608895514137152068296085527897232677986051956636218746936420974732655399129626873305081331820570506055250507637955596049687328788757026161578920929422826934928482851527621990695631975845952345933521095835208155484848542032492323279681859409424938934119259888846747142107557301839676623219635434997384977446746392514705762307095251730674537014877395527633477488800640943697006517255016334531868421292297840290050600929586883012953164268268510954589598067066046342325956985305331105482430969747499614185750965750595345235434373663661866524329577059310838573492074517983527831374551166501339601983608685743923664072217238509643208692279188564342596297632933188139887701572520391113461944024006051069626301560402840238392781695199822450479522230455942157785687340723149920370482256298591339124770573577208955125182576239783945699283675431203063632213769107494913999575621087881261967505952807420194153103553116394038522114815511943636649452073809767606338697388154599831650647622058497113131862389337109657889987360378627257173129725946013580241083606551291306930686788028913209901122558582320865376787577088293624134429812529162332593639347788636382340872264933468903094874318172279075309276041609863643444550059111034618674838799705560749063810621708008195737985821112484469175702380376708865527843553179527681396083286159867700223771190020320079168459365460175027662752015014468110179568518711652968654470795949766747131136405459716071946771688595917475903631336106794023629392189510080646840719247876628325644303499269847382583903286691271379479285300097637748573915912614677188277773805719542530398864153458858789792593227909722287202760502212472855708025860740360706456993645572390170064598669348920019978305852480799439524163588571744290742723584867973154352139120911824404211362057645758971369672388292432741587356572476097375357389017342299335616815061071853971238993849499768193833487504285846712121463163701952749446756832045048502656079015736632813331907272183022459898186645960476112569020815093504007732997867384303127834061986742332238638634686716409847484516663038976330438577380850778878283173257879358046266576962743141141129121092285362823526582084175170118667856541418515065156418777987743658698617195082925227011402217608538824891743572141829795937530124137074126172297612374795111113824527775299516700291694067422958714703254914761737307478358459186453790286399185157368439306373437433846584211543327808061528598120684094116826334597963544363094884999524870962946171831908420904442074126362512440839741198624061746841033839138668514868090259587301399139177793158887489237399373322837040907346062293687399696956767936267515395671989510081528243677856954972465161653937433432839756056241880308104374878286734184364642720668320363117360315668731942677701912235610217417709449056376938446462250360840109546852550366743214043310111236803121182109527553368014784972408502798123775271103216481548495926639825979773761081805828809362218751057213383663698296097481666889487239953993333479116943771128879636128213693826471627340863352987129253304026992106567499168388705936261910181500538284262432988399648071967268180537614493472012868289063097534955127942233727047884961041598180828312256990556273380974101429412724690961323261978438125617585942883629984849631419082801407359553336449116959882888620448856623059110371658387207909614593044788660411565879952233458725495874606565477195146612631379810035083271514209004674727900373519362840988607801090718072578435334253979697632785742422466095170956731483976608150484697698443292152832393850567045742910457499271080615378030519507072248789891875110305096537300233987827311534983673963504504394596906353923030955404697700676030836168746802469428213238859293937499470189411761452495267989753191283882451682847202896669672187760572905121688937178544981705595201804239145656049028134942819296345141741847357919942970837665638001513950733902196650354774900473875365317089159991096199900002224853733962610732027037028846991077590738018776043174673877732743102346851597694907694227063404171870458663257630440028629873406600547425138375592766545406594749943757095359758463520038423322861268229059303282700479865337271086248441014712534974607199515697287873336210836967276281628694395991599710897595527606134916400296495440047662301347825845061428200654114401120787359447637045314755550882848993891507646772234342300320115511488097566080344939757914973774618095977340407356486341897587944023569275398346438262767220642082615347496147622991389981744169985859392047768402642712905094474648313762884043752511554776332493032193387380371808065551432703802632999236473641721735229521107625332967478071421625602648549214790455931943772137044973031688369830082454363452914878024324419681922950080105485961365389936501642688296953052690607506363175811568994567794908683501536511290879296134809981387707932146117351013641716293285809087034446116665702955360228194322107982317670270612611111329044452456334786138435375679680101264754421394040169307390534002476235714263908747949779313106621745838958892490461554802017277735211436963629903964122414967278781077081806134122062612244899598829107809797150606496396081240748104471762900507327866859666765727221847571531687457727719214104328359787597827613945554101163785173353005689091422550291059004461499550227001856298737299079086762266348838419571530532125119797727165241820213381273800487568528082766915880223090061645950938147001294187339440974312575679039553455351775501726707111684729691930972078132494955390049776145426477154503154253310221013925187277022438464927191736437111059938132400128041697327671615744332231549753912615899968478613649016518393879241992763293350832791219324792374350783363529037367391882940588386539760274224574449060886183924074247410417314510984761379484485230870784523274461208900548766306728292506894093201741105096355511813886487265529586149186253700947622934526027219807783895616940845528205408178402869808821494896971945858013371361665159395410111872835056384645850663928773195214809314575474469080753693013179234330690978889322313446925227163890833261313166325364506769164134223742946200672281652029625824213959798310562878697975513406925282574240338963474522299817894343252616325016349233527019333883858517837504434528219980367886871001192338622488678172823127346272398031848317590572627656333937012403777517275142425671247199441909555222789053804685498904802879285271298804980693034072724925416919265457191706370632746783176891538611747692084409440050489988713108634900659796978332703056275514764934993137224107471627311366631673253188816411324105925384559582506336676245001308353809052951940000675951416274119398204632200311006454006860768862998287606625204017833895456683720359241584982295172345625293969923172974783220377616036563307925815555785635064506401813720251489556848450239514984370839697431784142404063719075973685425071182876604710007893447188176060426886968888166873906369249259340157943163745254681984174071674712190297957254608291289375134449393212226568955171274721542314677835799546811173980490158488381947197225820571397128741493805448312705781760991217000256614305237483850625072009924212839408115829964922347270171056066757313905818403338223799600050444051680578228936040584164774336389352882766462079501979770631339103867625823171192898381544244199925619443765438528890207847397345597589169121426222309156175513019742435708992766655379042719954583612064772429595093203749546124054858383495785521002655762980335448220292143102495821204352284331925602489482683555363228350880417333675287122504301407606455900933796171709878281384825993591334704617355827846785882031585857702005948397963000194606256677899925532657766381741526618302113912070893215222738100314581799939618519181916425369366189291775049295525765255935103366707599274150431023305939843358374249742989948588991225272559121775436571975617486209338764646764693962437198910277157588589865474374653882976158263350661414768686292290956295935817109978282546261057524361795885164918165009423017471713672449729931702891499029815825913541290047693924172051325023461125340821576584953877330445846248832614006595099654693867062753042001524098686120977624414979803501104203114561777107979613715002461346236349732004859586707375487786525441769224250412486796473253315173505616124298251922179706289237009710144162614544503020717288582926916794122950384714814569850555142339646680510805706211815253260993934517137196188955737926211487289953448720514552907780388125876506579459605739589816782728024488539095230905162398744805992375124213686157075971275316402106553987760431965412169066886883721239424075242972207495349030854039208331379663676699547425011616142725695420523506688406767343022643832154716148383916553012115724459337840516875241285412361247734706951211096687019746410637152167043061352563800008494081609157644206882120750248068144819015488552798638005330298576043178461279337120715209990930320430964857271790036250182629437235992134728556017625003867339951596607532924492387731333069990574837175825787101230379373699499657356332804293656284557053098667100579150358978968559583092393305860671341151172716220314247000106801963035128236805146941787705780292751188778910993506431695147680381357007501230252113896691484716859112260193484709043174609199109480933789346700637689913823692040183987759688610339649226676642619850142975095575792406556206264418641281280884269002710822527503096948297307127832612816687251748458505098167934272509659998286385578631175082694374131527182338222816604348122550757701768121705453179031545633889574348259160643385700009253909875536855028684744911746080720216328877071487883541237966629997445044267833899318016697135563044740741719568013521212711718685541711002379308903248035853856524142754704702077115671453613261612295483535018529187038911410507839917152384683991304134859438210393613754360984015216149993126996776258295914447030288259572175405718100000077669413282354197987997553622124960583656855920049339500378692430245996437664840194077101770879150118256790685746796656690454022985355866961881797299924190382186394038358481449045394994509542562929907768357389232266060530196078651717292960204449199467674420785826843007595575124989775314194030474764729368446450589444825084958998591217133054900181053320983511402036417462967522204885237890670728873537034012043780100976487380021386146606868060043873321539806126500498151007253313922888921437604558179785264699544083508664968603279285891051857170188996470477759225070693957526489678384518318023787601161056028835632856700654300917023821872867224532635764342976864051449396360756008258503960536760525430963059369466259953164820767581217227429469349811288553780620753937914345428768072845803478355544379907155740378419993207306816176008593743562753685929679094906719105847189327404448649432085878119030538073185539888396890241133959452750960586614625497160725991685811568793664374845376330563483421942399436141705392049785617489187993283232222136989244512509917373073964902111384512256117733516480878574727408646814050722235536100126272566219058574827587481710918785176413710654143048626885396019751402581976327342632774512493792969225630905022962066796391999981827142668017621730772577443999209288781836343682016850339850540112064889263276686839128561183191790551312495940195732402808682733889886484272157547991876167742155453756768564388070562427145413078145235616455323713744583706411825751744003207850257301198501664814352785541066195095095012557910151405525501565793780738618531353065439047586283943145270093076689520430732563174905901536596323276623211037619084674904463855743528499871442396117629625031814571213339298534186551216187357559058789423923240312344008403800337140833972226764857171471923512523195914185723505586869325339543293747659792180142408263815492782988214005283700247153379032630578317420057361782001656930893906026194516811125216387007864914784675868586069437477605269847598027097332370318680723603284945780038424466412997371393372695810507592171821376123796351332152008027105416900534790879063986720742675208448439160727406715133875815409346410240745064837095547446972574702653904077607945881706005351771161430908265722224292909581433711394770941929132869047693648343198442266406447714906884263693898728310868090351916801204725616796980152575181034868353346571151261468577476822912023719772023321485713238218456187946115283318011611453504380126241464251501179462987825291238298172238912584327805909280720189349949809414674112389094344671724979402407002126030075086737552702692928835227329027918346589215558234482738536740158037937257875576758689158576209606741633443636543034273589828412184783647404770298748334014157409460353449700982696709614817107025598620117696947870791273081535701213653521552662659693430661310659785651473466737614034236279782651251655725707753881398789969681966861305258079872203889635949150264220299010438375592950420227364406229187533723645886916812087612983274744437837107445805739529088675422582563135480320349206139041176253809902460998477648824907024111160702048567451968563249551198813150137792144996497368115691143607163079612855360838210513929563913510741096022747625179619790987876391642416487892680086829568288269662769714796970354573333209661163697490079554284072707819838293632448266826416975682376327819436985240636521595771713900398662516906892116247553303058846779555812533570958664445028608138832338646916112256326794369166092281842626154192422663971883575624639529271728626637113645083065439879873077355321200367568245890550912031990136487001137613362624744818087721846145840186013420364956272208744048620055485249180633125002468306590439636206390621409193762554725191979248171489381047129221906954717338265375907000521118598465843907286884315447677082403820786851018617129956363845812582705477053579178772966254661022344800737267170727484496736804377137483549309048395264858235661055077140193422623003371031347513218428602487656480665328806332422509932254242253763823582995546711805153805970316640470412059202958375598761028930235587323218566902312917335968392274694371915137439355344447854609149321750609951339438656115652397371073145477824632252910913052524611411382748791285105186533232849894269944560363645038219235263080966765106845028969888487699661675214215932331007499740945661527659461504875522084439320981066666381774777726552979184801952266452724764432784425529512253175595301084800133192976060390916474745312540452523290359183457886547634137592537992779222119805010689675047810788538075077560426572033466251222328140354309368260449189051174396264925283332688697341942437484267737637158974651353446609381725035893301983973051209730624452443535846476853563929485055381313492363868039899490171533503777685605402391612209280709428792034132865634946028870500305986232092926260920019708173694230949042075883289856754369997914210843615102035900784130666868513537676446898669883111576580377367961561139543651545826544455086477073657050306155929126171908648900604957464289324261172127579049813139497862134050395689952262434613892589673333000567939056005355365037032023209180374748961037928403928846184285349297610593729008931276237920758684392783176329084488351047799245032550921497028001843414788627231120588811579894607382248992602821660000255605891317895204314401164704380128223592865520907598311956345398177835978952669867120953755807180606260590288456126713928845203450204980798170128760080126673647100112258033553713915912385712300816569621017739551603515295040235295829020208469687386875591337274154490970143217707029616432296561743425068258833600726234652206287002139578287724116878495285214600270612254420154800132714868722286176828742996235672583252713830614134261510538615221349635574901778610165540651152435659402976257460900187504005137617886221253431000569162280989309329945955058582302114973695024289712457057749600909009839215551364943748098233214871550989823333477200926493978271974784583330218905664077686409400048152768638841818001440367254998477437757511244638536038439622327249295895103813246457626911909302345472665855082634611288957490004678504843837319790187056637395216532200280603269095814305845310202901304883390448183993609137653274420418172919873144810414043595551619520222742071459072886700339635035532197124761617228504535904309192827115828653537437651161177635696754387978686203068492656301586719413507587365824609934621234658109070324721112359239560924726780696710691300931660610968754871217947716211650030748997111433115615473308871650146566270464550911118059615562990097702167809298610321251940811876228836754440608492236940312382664052063412848526328798980868456699977803937849667525462193098130162773118279812516996082210868454040627953555029402930842478063849587636839800943435904255220752301455979056723289751491019593151888476994867439575616018579410213819816916535304745098698052612962085895415784876407591954061958454484847378327624089755469125702101377575797294911625824885308497862140789219580772009272433961055678791318028612415061705408206537745249229507470159939385739960239942223937775221144814924618296092793180529995016516820708643032881495660512238558324977154609679900168042193837999342784217275803673345421748850501560085645007324339886732562028050450786879254841851167496861547328264915060760727571197426939938457156661672443217478505045192835407607599331008957026512722109537693150561056421519341811411566575447389922916072854257746959634023582363923292479303381754915408376354850696341093679983123917194562385263474002076881635855012653165278412650959654411583431231180873494137096762412237649947516839589990762745113518908991581514227344238555788715367149940950456218274605749988500380931615984628380418162099044800964196697241000857059999190729075559866693054936337246438543611048942823196609479729679632360096134131251481007911822027131462611729430625283696645648321472417393819238457565472321507497982871429588755379500261659813795131545884275978594390032786871450803495102612987998996662601345279164549801087603836949609275312887509281084171363111102646451714215238125525124380598429860408152541912632877600477559341972319445706584129900980323020657380824110893539972191035483182668480290596128335701494588161085705100245274174834780497186335786651527289643568806252681260670737148179930869985260138978527960991127120701572014940726971982582559961743601775924592770945323641343172752773773650162219833754965481850108134943594529557756791878595526919217608428040021221637106980828542442980952587524113684175294639741035845805263392536973151053065972357605008780141686323686870932453167844235215836796026294634158056491121077639846364919435490775137447418597640715577689420071627027360048432381026195489477447136302889452252171413500807778729556440851881754786904070106403767354271928587767080487757515110416348175627160255409257359997401417462258580581309121335146178075277648997985263137366173846798573037874339975731991985260375013088972904445084653112961106214047592401603583003924135237393663315673006630909144609346418804750415040197150649343028246662720587287667553464411223347378788984345760084043640613945128649558502743901832349113823723426678967387718960555307465700816757164733572861741046145195001123004778622826823393783331490537253733616004552652950108735720634044779493277427083248809572766230315210698010295901604435032153709504338773400503757529275655369984822221465410370243805272440725451829202039898760508996766309449267170243700002268845925026491124784192580843228345909449046461823493668835903636477348215207119185796861226097812761371424309417853112477844941160630441909924384774260791075944730697922413918049278528675330842217426749551362390557304148197961758839558872942087613281647260569298671311414485937209680341574426624600077661524476548151679823681464427261526651116326288883891363037592266033298700438617980567413417295752851912356774842577054478177838937087406061787941190424758698247583579288075137663102129144438579742370342175352779272743372511601708030711483505757483481643442944822540849683833786469480094296938516236322958442397061285315987786351107971803053518083386963193426729284579033985550631464969615126091459423015811101235627520804208193095434031219593779681890708663927791133237736585516235134485350229986867773272775791877321569030907383683748561686967240163286740676280517677327667188624481698920479548215184449503940962178505370357982389839048302046159095992208332388090198373119248175448962557858081864545468049298117590677074285992808740901771889654328708352567663606305124537204981522593936171433233681964336341572427562728258943191544009892136289657836585394823166953274472196046327081734997723740832933597010878496567142524115196019403509120839914707658795195170209068626419705735417961668463982776212818288204227534199649122143935143411498793214001718094623048092932808244059199933185903615998287601475100510435807509347381087552822181373011809312467418917365663572601679901514380336292010481265709349858575368510271937878556636160705961192572429903637637371741865443069530568994298759850147136598889214946689994107332224538380345448710445865372996089467856264374742138642273544940046963811908911422525792615479291315231336191224674235690899231418178596031396867120663243200186640136150494620877366750018170791688194631500067033871708865323788345663963652607014193357893444844407817932745667435702746654707313284931069198605815922047530749855899114762173496976194560466849427720901928707834170011044246681828648921083248992529123058861387100499922593998712306560211531930485174834732369500917083187937274570698707085734824098013059814671513233193927151509117121035224274844595669330998372377465448140739310268437483962731434718986186615190283473871890672236709038827870448882673139886662618016793850746997901029718766432856733482235645713033220183761887451211771509856101947321026680026746670519114081543803519054497257038373945692769042928623033186175913135138414872174832582445433175647364950289592284057834970331167069473888648337514501614195425881683990905966244088903397791742496441996070935803787942179245625159194848994305273980901821989094249799215419355114404932109925606509408376835879769181129948502194922932511783275357104163711250276502478800562935673382177187971965726299728474636025188951930311594902861590641768118615227564055419488784744744502901754141666678552847952479773842081343918000049468506584210895766055900117253264946693640416090732901715708114117905651017880713085286151507882527931113648612630843719503443125013321694544863687055897358651226119077924216593635261177137708039742087170258966638244539309263897439200301221526670945639381457806968148118861294478456288436858385101974831176958438483538613786755079619766818218554234916596641185174641018449905350815625955379805023511399873077446115680412119009957530379512477622443036415062388403279257702706589833201020721085797951498545426466883449203891059646345080036209264119655695101167718254840829539210850579337972100946618557640251490635064182801342754702786498786455175624651751187279921181662380034172578893320426684676922477835036183683709955750884292414995024790719771039533721681717381344835425024726993164355891468196862472058835775309894739255648826881316636174772060758524645060216669923183795780301152946048660774807423139356081185198659630660853283159419719071279111380164854759173917687804652770889895005426119307242942270295742091304739473478084348668685225396960035191587075939382528687744359373345176097660090994092131044105883869919177140789996105431102228391882702724660270143616524860787708934499057690769491780410197400131894509256179744390981528809242357360346554603808086293372298428065107431994347211732155053991222207639892549789674576609420429258505306283439070759650255628488149138296546018184073864865540871219413743620661450948091628366520468480624224352882771279560321585061375878267319009220511898610173051291662621855025372162251886012193891270348160521149385369815853597754384685274394759625447580268561195216876393762676502052621555906639260105664300224036491039340190414972112499815168594158551295999233480796249142394434999158392742653115615244676610389098066347984197092299601787851035805594105149528441700106567338245214255702219401962444625860417196973968908210533728124601328446713424588643155574424038131073056797223096911980878020306073184134315393815636249694142781135509805431434573364163208319975895358444706190006523833677363726676919942544816022727643768115037835021569510886617885309785738010721422573552184772474930296451497325124178182982463316859586799397486270091738899155136948660906405433068752151617790632688588171803009393292051959171411590785673953043750364082192998295000317573882612426989490413903167397165530746162332590568158908608517839598623988862157838544699670321861320940425820516387932177456848977337580841700216470982501122472780572853438312948602209455246850654834045343662885947745365449068569466799857541816164662492525640614866225305090954352763459526187247360763800241431077646728403388896646746162113907994254429610342565753957514418530926597145362327476821402127405381378196921663703860630540891438779036948728515335575976669874098194125247578541005018582908900230683155597196793170658434962091998298222152723265364020876104908861885505110646677306153935734664339238078219018830122652003613338426776537755938405917808079184488037982040059378132583928206726100741744875868243048364376669764537480601558942560916172093131274663251247156612471368140850100390227775401896043828497775135279238093266837542906501646694756997611261535263270892013663127465524203988726065376002304651493862791887125912601335536950666560787836161720146297486083215705666520584130805138256598888570574820090050611542197693271626954482864221977657329476479355002983482744067681079330601217588145284712739722930566020442161396513464787058563501726159828259537657331503080670066252769565170646288680358111340667607241707566011629130864598250783519774229011563054559466941120911310075338418919691832471407408504807353937033994819116323724812953666056148550188748318455952350588825999961408241954956582867611106343968154954150958741785056292044429465292796890920267313650305239823497143715277669418741415375911680801837681036938071628969422504904610388608995067361862754541560454522072346909990699496516861134957166762196553374404446608378360837685582134423668202187825614445651824030418268056663006857256307919902992669934198455454564200166415693361696567113908413075517774400389351469054467526127019186361080162963220066436421176852771846340372903817923127939111322963253639400143183178330131224236843153995911455066447281404549171064751809241262959511046731639775206153863693127626576016911047651370549790639198379855275047877248171520379513975084987427141939281471338253480827129778476000292973513032700603622658380852090688585113050478686345922621951158275624490519705907215595983541227442974038944018088280644820375179717672306263211971791830511120039759641460865617065838439368500293996352503078765835112593411529869594312317375109908901513943298573126082648635239651579205068159894673364614803033577168228625204048035204537984219501674585317551388061477827069815359134941352765933629911893563723466150961351597567967590075006557024462480957136452231694890296907130138240117328935516812886042912268814894740124273983936508113984769881047158129542057737365242122176001220782098327020365980576998782378131702825536864345614055771749266479999679642928894220021413775509629825322290513630640181717450495325194130392514592203146835914494601478002087047588796331878597661353838116372032646824496342160311612793081776174899559066069177370025386657069870556691810490090454014694569850442546083878336894101684718209886977820401689847665769858519562377237200233480207939678492149245185129541213935965384062628298621675416246594536169087918087225162163128230600976397000681830165387167216108918638568681287171795395637532998764061026214124051688520952118242545372937210877471352176988142054162797121593652686651630469086354175084605412651458829276074582959908626493012780562955133145626121822139990643343411846427318983204507960787834389533178728555368696086007115451551960702054631615196202119987940626156791854956145773229888024009847003776196031989867834983658037282376764314860218233219011699235218192680677694953125875763379646564232549891587980462135464396467313302582080345122220973318352403839432423216487099941566403441673894560609757036642496569647793498484442365635486726524886218045452205453544336742442658796710657684028183320472847094663668970889006488344220261973573628230985515939561078931127127737598274418495395282997546707996234869139951199544094719766212816989010835041662799186642230304981715599105536555616862273278097952982294086995905801922199627691284144573370967276775819473966214915687599445662287392033754901497709117149093306044139466680593486977723370596283088065375283383422414330857473224221095930070655065246921213640114210501135593980750925179488118119912715334382133100954934424733253289083043969375853517412652503848890829871517608810266070973564845077240416385577967888273070217272681993636560186896459093850133023681449753753629310947337795008645765117910640208945290390632432425605002718334414343909042846620634681922753202907339502595726901472356325649304245723058813704810979676368977162844258200929314676042212105151267643880316512708163195387975584332399306442997882906068246565120266794401576574981361755943658933411873346160675003651303084671724857360215645938344167288734974533347807878523145726044012183458733395316510188033318494482745221900250293716712171574536358743193882386437203492730376581628111385465357577653796985701091633887701762667290952867801578932386273984062653636929889959643446430240184249893018756256806960883414473426557522656786510369515390556398171545814609793822531917846187160474677132289457092032922971761194560220507041590745206957249533928019515375569451003616408195659349494668441366648903221256702606697167470544704669340819329671810334852078096970690809986686419018408945215577469384890955863877437955188978128804383742346180111357126487895659273012607721758846057377188847053282818663297739245001930718131670297253447282730476294949241150300983556660877233845521094834738112614981980798065985164553763594627809122800309966723079988587234165955801048850227587356874361882535265172848720073814970758946213001706601513680484061815748658813160655783750349381522095928789204253993688600320129683603013785939900373836963580369364832774174339482267252246488304995113010510857213513983819006018553630763456906292977422687799464675492552349019813048767961833288918900485835739414792330541224410592117881176076933919407807293385726588262478831522241408707918573600543710352815906611959439544094972572475763934220591881458836015152526449231668484237079308915157157997241709254870568309472810382854972847536313844995850014359395154921571119064745408534393247268569135838999975353832439424152756662952704678149759284097873515636528961501865528051834795911200079853802800143068053098515844987805218259061467977379647031256036070815788724761939819249583188698525326828150471961158504713125267854363705610167962582872367829734116474517778764300844098353788130227312262285795519294820700975812646271726126436831909516721805882895940580184392931290040342926108335494244295474747920391587974666084563830028912055958060723209120446562953429178407630437270960252938821202465504689737952847150336081149632718125055184760267581986912305942723700508327395527092739674444880576456236833758697544767073575921484899506280061303876090201188779794778113379686425974292379677130013800282474210623277132269618358948877576312123360880839797192657922398366172525353787888660895357565726674269994387650039685097780181662289143094352674420595899115909095906624738635179548288313576929293391624171189045384158583320267856613740191389467106915990598202954118512163367242480377708714323789678572669850692004561228773935753126141947338664307889510551575301829207663992633870517708168437206022637916465045646073578911441306596959098009531162813522507221657600984127392061998805551869188904939952679397436643389727061358205356429067036793887523216922052052646931674167399742593340369382472285597436865888619195620336361838910651802125409185790765692050828837180971604465964706989875438957948605424612488227756373095365723443223074404147683945173055863278929598607898335779006757775849845811022588682894656369010867697835466044849991994345175083862547024422296996053394670442476577821950288696635568328787897573118658345203509892128933020023834581082854332905393050406009394195046721618025285103739886012299023356620485977707778403828236247276443987529585895303149927745222277246004363048753561181085821018615766773200933602582776388288979046639869830915533907230328778428678946573938637721075276137494432351846528027646503319394885734169119161194619328865707306017957634496352179944933510523864468525879093055248511396352965602503660787381272515088701609742643818058177918212458749164819719577934582011399050864725956504681925792168738412790112096829279250886948712849554353652123641000394865495599066909414202207028502042947743982864249919006631908970324447350594057829903839239562811952814313016093799697021509579789302158284532023234074984378034319980669567663082388469306452932399065062298440474196058538991202290729699227722748333553856550082626838382517787776571863196761453230025249626955996620708315850100465876698627846820378098260670961391294701109382559161563636092287937017191985141122528649117210472178564387673577851452846963950546844276406671080185847443300983600683737181313819142398772236513815770038430168278373604482300417619210970536844790343496700207553031911882780420660536994481845135968462907311385806088553311115000685144269908654696949668463134359336465594009531316059531133028152792093754718313760429432018325946758344704583395222923618514566971015064187125208640662914323258464545164078509812795307906605537047519174819220040462039829383613404270573695822207575904682763186872748868093212755947072800821073383544853262099264847102393975722362309863471908501817274362730743937954340225565516385203843832298746315170863059848885544279427583642744092210190380149339468131284096654220440956999797396951891880999579803933641913115538797713149262029537721769082272403541357790809981205937772036291296044321693138153885123967709591884570817163327616489383329875770703531369850134346186358474575053961213606975698586072105979489951702086242583024831832457450313540465633569149799720344533488746110445184971825886746387117216404147995044031262530750891135399140202045203155094543339377518532725358654400814326352324123293399752284304211490855380934556775830197590487428763432513024794593977248301190738219458665000108229518794884746186605904175468206283983587536371285010070930804329293573306741258954097589239235477112300252827649536968445467563877000988138097943557388121610796276123728376326375017617986185315811250668660649800969618903740222567569290513702333850429350277030752962434157773022141836701600559709462280401680159723938934527316229716592473319737558504515474015981697001877263964851418754518612824330997718470643245811317504604049231547824280236759494947728825846088320298387656928858842581437680565267435104705623788914218202207827815419141638989792649705338859137384848886021287113358380243141158389892693696278751290737960646769270174804782099819454744516812777891316223301509077412011350110971396710405247466746343727864948272996652999096482325694824768701730313655315813700280281381103068815068854069239498535349602919611752688301656093130532143003337451727361866992814460174267238180881159582769604696677182164218411965725251996552600454493549559222113099807667152781102260088123977362124978509003917223051153541733747686651657882003410765047316181414575401795550189214429228822178660908402476833349122737561742871303413438975915675191023596987190109134613034120608884466722643953227162261948260298810746030215341631115680166605394686517234518969821910366282460108481470513605739772195210836952563520223731260954622411322139832312793779422355694214945692725969725485107058581680686856060771646017347592520296490523056529004342239409192341355642800936710793569605734336989842585908387350318966974302139778324356266158438085067731405342435081877035889468407313221650836928493563697851651448985865029546642899618219005045023240339022440807983068970274657393270344516646229829139793816216152866059334536796325359243869800451711139477775985762246307138769207008788479164336706734282143595654317822343414527135325324247218880406390139559745810017292765365529305802443590944432008987028369696902049074167700363902386381857645734172040933115748166006196373909511568333011517274106370659600808239707186834909488614564115517979221720821078549662282393075218272619270443256800495444539060545459456868497052612032478064419462781813704710531766758651834050009323582240674211325701502910629673247718749001171487241202279353488834279771861802406839925701120276260922693394157871484143920752526709839377051165974656169138926870419028856529163739049861810379540010382108496568488918971646693366870336990236174162243636145669366227225454661788536346628495341584350715281905201875516708226272982682769917885512970512689002829683431360153676478876229861647721419128506410548421558253062519221179739333755254283062611374690956492775442331149145089910981604913911971944478421602666383260695785785988452261829446935333219612349784803557845594211906547484911319328236812724452529700134383778546222790671543356582779399505231447184929341763576043726832177009440229291315284976197704540032432592915713134228821504725671988548567671323952073109866728493714828811505247411781574644494871915206420338946681473025857101817036030943453515695192963042738564675998015801508896985459600575603115708883298124088308498058436404391470400470804808075578408937227542421360021730083203233375226934955115434283522478255050110656186851066646690990623521775111189922634438140435863960741692736736458068400443392997647615672926669832363565910367186120791100728993876987641738622178209222432634596288959228665200082375480983151631812723019063488459603633380644579933070704341505538281253620768128311030160055876922140779500433562263991444968569814702919294661118209710628898183121354822276507594427281834427029581368645839504392051773112654616613901534056546565312274285260349145241659176090172012759787686822707562662511313229269655876537458942867794028298499403119154105517392519346122223013143574938947954949969385631436405630323489056543976059772395928238001687873833239057661760398354306557575651674660954593142584165022624668366797050717281970373443220303805096352661694914589490563601961871056643069133601720143310971834619393754888263116428010314159562258822837307999887918140465290662614397522193305977450588586963713173393470154658937402535290597474346456029728285116437116360763038072527156192215008495254715114235670839574676098457272536770032461768704128712985431392924662005652200153427549805704503334073483987318512427167342122292820862021676184039490329508503470912113209891651148564587999252956792821223895364024769103900655143944602973383020961817167611160731835110485569708603323720712202834902824417963941575054187596003207824002370836144067692688685639514219704869721986947753550501401352805691685943517189210526887249493075172436473393914825840833860328836782865235149539101084746368878953575837485400523148291599951566259550576178152310268218309381861854911730926747582457351571869911681945054041614240167281207916033365902096120542573009760366886815171605447839841899668166721637304611049653754896268685879948892445401273191604318130896448596788228903154947270094194312091623397072072270427784623469560023044644415347187845609962268204532583858282365929952898787020594349146871748134214220261743836094658350570165418602193291893184646613900972143826617684621185281414545099419166396429393681766801775006334119117664491700447276686216256622985442354213981779550462668982304994095896090502053675049776259713269008489173284737993374443191992165229238571992729906940655173360052674458258100284001067656408292232884557753452545808838778324167635037610157070087865660185025335402592633920888595492337129168897711314542253622087528343422691714966680376686874517451417527741526706239512517374765187597761997823135747714207229087794372722552294235285549321515354960800689341762844102259029044692027677703875661566593324143379433403733248698207772553591459041324094807998669696360811572595234862763598619596959508062174840830737798346920021059384374079024955603576698660654633048001893746779231852043669702139438029570405941077499259472040322874455025400866121292480723334093685414236968074019875165075490179722630510350363419733821745026445463229661219944175844410917124453261743953934859927007568940832172539366303790259594446501114881724587018176409689011408940930567272402624376372612526110466249350753415504769408816407754373054017598232978707524431539520299901024761541842918232351145320519958340821215563607533126921550477921644400800903302009138814908083481633127922747145936559808793497205778830953191466788384446919758463670394129743555142439067768930909009471119614151232352041094838464166300090059371672235072741007195326261886939980803058535610567189947359983774728169957587957936823204027390884952823324841211140963863656118678990439215050777720691635056053283643522529122565436409235885911774235054053854620532771075028981033243381150549303539688221838048156210422095412227472394685556178490777550315545281798003392685419724703695987533513723911834058544687962342177569266574328968887627747023685358656247834642490991395720585750210472296562194277764373679452421670282868803467410228460167918697459126772898673359608424831608856398599534450209406959804595924024706225803148142783616758233543351151336702532525928964988401164529114224023900300433319540916142824707465884252879439878884144256231206358403452647800521682953871587502444752481296922633311837155582454038313548200795158871104683975279615932862546820467073744871417207656685937678915454034685599862511372127820645877661056136477237209710586756237583946969387625239685919550675527792490471865440353458202290548334215330053074766080032698048665903499076804663398033346884358385374674226632806246364898422697870646995731565867520367132347893904567549572198770578440001607766694869314520547619723034879820869257301462246369218828594788826438626368517865262760530794773725243574932377572667172972503231907318508509647635727999699651236970501204475247566115155716819672774443292631836402266486062390844897349674073505596850684497828223707419956963077701229274630271260665910034302446073473435228459797397441526606512456176936032775050875236725826040547413385666482074466215099422181960951155551335434806048774339561030833999598695150342309018531008899141752953104851941934395786670337673425243649817402668293658027309615263006522090214296109711148985063735696484485119331704991256506029773749902086671803120139741262000292557142024175128845887870974621627822528437244895646178293900447127132646429799901997180829878552843970629466930594314264023757750263054537482884940126064907731425178994200136624445657988302975436324939382950095220015158602654575006057321153636154715893850244753934197279858990741098784037032538529312516047389873243366668980150389985214398595426228174617176667177998240032150318659678134972445406833773490992647487167440850283352900523099910081714650057066078428346795742260528334579020884516368937963056722409795039316345507137841224978697919386435093312118370591238041388262081340309472010096678296449573913983752927322318811000227953586477480829454833624086178437066828908465233677101965578158113678299158561063846866470833419847011621978695560729909389600364027055423583116368939191770178323284760991924260873080147651852111802070571333516049692693826110634053827845335503261022563392858667447831964658427465289113392989310549577172974823077808766019207048096861023593677564204720009027052139813884800918845704311381341312137218932784849366613535560841625565245118425201180610967567293619060053856793309592383614297301293741541404885052143538318672107092402414772848953939766976395835286308352605631411480029337879942529064151156273158196454681955207294098555463515558448305987747959087055650099794480657378134516451056799781599064427451177456149399300517696453272233310109283156364859336325582222588817980387191312000979690154610914380464676394687468351713640799071302636508826442935731705447652594218615331688052025963728491762099707831602793270337922569430717355403788646795073067485501730369896259659815105660519938972109547713047890768299664614541162504347307916339324943790711810706631739391585452725309746366549167391778225807899827935845236208445718654466869196396146642797152933571529997400343248923811948279030556923009663875759892059232111014835366249269524935716535494227755222818688191893575229195426010717852373303878196045267357405453153259267022857981161980013225786474377719805711955315558507751655533608931856901255938889594648053808432794298063869284544371000333208735270601378586345543079252561204423360028036560278505437572060234094865829083512290527931488538397286525518626150231049008159721994551812248156234097879561053824206901496623023171748234537757584145446521984882368110703568676878788851973600529622367628982231197026596796677925801917578074587105461634415507302044350553225857772054682267320705521092203035571659642687486640688962293094852312877591274676069869672130560350116460791995464074985960589647500759496580502889005119474132387736857929625017548460969268068944180825846831777277373632773446114465937069823893908419606342021546479762237501083861792817328342213601458099133373506133755599039226093145832436381567430669019103149239941157998120774806681026523642482793393414495800296529395669728879377095546610182205812800802956931132942415724240650216259549200636536917777248101601355837111006063847016928316141938970063058374852489174611697119111420874809914052655522261209389206390578675003568050793343355659904775868882826374587362345474317661936481905984224095196253397847752205383410059719490039822660729275993139284344278869559632297191975638285452277551058195453387061443387474705166984705309061985057562904489657770866818055558051754788192956019045375614558790168995630272027256434112578293448970161838886813404020168215866951943794357709999240359695056723910734851439925189793368709288707082652515242340925274014351654165911532026956047867643102973882690703499513527920503115323212241819355115507928950714495545961066713084741211654909956121015323533546538106953811345971792888647511234404245987829675161939132619057914734858407160484676417117946006178747586479619926975254680876710244585604526452981322154634592725596802855522097754159003996889943592696839359341419450429890793978517870254397742635858560572556509950188536085223439394110396920148384465221530309727025917800876079232842804456477337275539654921515171358910489415655949303255265963732548891461276537569782250685935627051128782219951903484487448679953882381610809364919019775584723456125983682677126239963329283761358127961542566448547766008453013699179002006845631328650453609972623280426893073097379915653187151505914770724397723226087984677005368709093889570738388731851970752430010533430582636515964651486676378344870292606435792589115399508506621684091173682781834553216958605705943759971201353182586260188958568591841683844602971375373733831608055357322890180526383221818556540262414701771755477363327076943427426925264289838854494696311836165156236132877905475028348823336726093801162061404843089050137478202697885137771081794825726503483845355119595855242964310913860011675543673704738172812573474299642544946530869267079072555627997955333051171863353256849092749326596851943258234801796450657521828178397479278643928020610711117937232846478524494749355854896488022058102066656433845828469917243353616881714067835183159316289566721182994377089376808659909919258299215682421110421938776195978505788801531123001890735149289532782366737236503568364485676225748706276849122620974859660759932264276970162008980670881265837055925306119943553878632589691031245405280520794123434707770700036836545230505301202341357565118160699980734277152031063474180504818293942919206403709745821910577861552134867042243409084648726270337036988657840461920976104459539096529109206156447868853781066816602648706970874753012762898481444432442002694072934678149115805640805316586908544092925872146556569736559693570158065636464272524012908776873472547384475948743932516305408358591619113788841652671340932407321686734114191055515919323813166135254212665633599198843675111004608453043711883309847864812919313272992668848271301154703069560394019557986542239021789984577515925556588277888873013336178156792255434347462230419843384327672302079035904451102646536501445489540598199590425760976422691176424982658921149214150223356537199177768304034255246616801427026961410401921423061822932048028061199271728016653541557886172060489865416562993640947044194808831417509159531181645801024174481975218855056817744275532966734010454867340373686092156560086179060116505110275093206037742946189951258285698843469565810985402998759210086422044851158668253961723033786406390677997380369322252350173205787480572153859799102882160202521238303397928037959779020469874760151712832101208045363376694193275805969555267139942678634923692683438565363535395747542219756821194691084639848963677408366356250968359146148993781151314002032122828910117210099311701384135156597425793162306827378700314372225295510956769613377912058931658866465201240180237199105188592266749166803611504746508128468440201685816791786215001817695319312265216846731256471383468772007416151303085773176503854179887653663847415826210016934682745854551211304551111032481204289340404918461003909115790850680643946396495668172349374744298016589605546335411447111236820513825950569024004260689229005670393079421066030762792955193640368237668808800783930649027524642775674655804349212847156323368464770335049654022277067173812162036192282418806019672067381519897296148263717156792217232462075709498801570766920750161649969306150075287113077840004189351311975237952966295557403688895381778237017210431785209086915370517927973452040736556497465370093735386683001275875261283124549817839158961253893532180491146284497225752307645071916262273435230744690519829419026487796626129681488504956358731756715135035046358743517667290860968353224106482568321633441690959783609429041680789985534905489320932572352216651052645843945724936881373021490510432402939229425654655894563292221598034621557790778817875694803417663386487035580347318574780053213969312913882006684492637206315729304322419772415619598275406999542281012908600666418985503569570080433629138663794512780436446884842577068850716125697041967877486877497733464093371530557349728880201531679457651078956479323985814826676621377534188282280072058926891838659689934547885336805833715321972008849124757513935523047250633135550267091328001899089156986016347151237071482969785396493683031055071446702697346050920016393825223471113562982391769108450633123859887192297197838696118385822466092149395646803923190090328490527124277098957422850427878226714862785619537811305353330143899970827747833947475625644502044095844067612932298902090787192578828974479516139104071711043177042699622461390704528739363782067701423602133046063402579321194772568226658716189159118532053102034129271970826573846113313893097853583287836212087610245728950596956775038432721919056653150764070767567017809828688668147371274682249565098913779686576152453602395898292603942301569427929565435244775090287387751369820246042071406880051333150855604373796890106115427287347354247830540282502785760785759953052213337939179200190910127991916691078308473528921314187906345535470790073892571200282891867743019605221242121690626267943559919468897444768007044451059609032489543218051455003393854202860387381677902598198472532806553488048725108582275256082056279656275028545897597464623070493257528516973303000890670929542876928986575544707986137573782232233473523986090952903914377679338700560273743110188783476048848358420071282946637142207708314443555325139562901962656678249168998158238120025578172873828685647494105359936548549463375792210216471618625516833483562992973453276829680723466662882102509969250421659660836370831927467781595512788431490230060480406648261721157622706439826009894261467707319321019628517781129482796000625679804775501885708044716455505767797253983981188012783267252988273411135764363217421926130743289692788845635800184613400842895212969880518113209164809203731002073386198258271120194295180550555379175663521975492640728942210739462378890639255498041564845537350575967821312932214044912820047252125037079092620409274003649655219251492346707062855579445927289081436111455817367548712062271819544809425441936414606621809544234182446984685923375543941571487785089669394488367059889284615534413301652002592361761058663231984805630763153061162072461898580228342962024322246164647049364352697169376381831414770323780341830789359794131338041927575298077008599902782503164999490379668751556944700830416509607293169870704633754012775901996135701546774527252190281146972643537884085858798702101690716430594700779504429553795698012869632315329873730130447320854238837394507593901062728120333634572513046834515233631255486943757142702261971749114406969726199615380263047606997686082314312868465046040926134736956484990686210863032397414260559260059756535660743512092473806983093968506408318369579208552831925171686508034542040667589383558964618242907539859202139561316478653282344154217115462542177737633836105972153629002470077100692527035234097941160274821965373960755653399668595220024013544249929473599883113126749873230135995655828956870338679864819287114262303457874850233903271456606488918954047213584410172696888403252257834727575895107804676621596005922823617014405981964935067571074346501936076811819197999258523417693422982286727687875317612192570434551237098895512635536743470515711558259225699638848004357525790647728369259780350718592167278695519075008675214659054427609824961045820456567222208675736182542534977218821134265518015687731430195420287458366815854388098822348705976301836835410083816503091516253603904645345620425530027826245244224354183258839441056792553976575325453596329675923385679259561204311824555281520358275135067179479583547778914969922411407014005269067527915714344493612391632852999325238223783707613675222584683514407345140135018847990207366210018681394318196498182691200932063412510170829201340775333854923511208240347013154299125034302422294469777826997901384036767177027650741209047888715043575803888099518278833385759365519853444875334491896641067447682703998910333748734336166723704183148643143766616200751080972498048869567021695986765742541000146845732464623265807160629735373794914565220973293734733350677313362478662817100222359117073678098452817795418124959698535787777602274145437803678063372430033437310809104149935770499190605960421306507778394774856244711460560601300747631211673397910580210860067855301778801621609412089073430050958481392739115163601481126470771698067815713249646457295952516933771062854601896017444386580059054221434076186014433118006871731425075678459924070895134543785508711172485818297012873990472287944568374083183282178327310024572469073048248210775200302266519023496211634306183647518306333865130820523647863708689800691992876305515564539071407100987390605262610133995240804997729271982743524086522305112902009707016905602989080863407669048041922159019088270475666940854700219571288358137151367758705438749068363881827406870688795713160214443337293183726046021226522194134861874763592933018509216811288222662564924199402097368132723617879919728466476901622985524402597833332911715985074293176454249826319645263287732444589048949524187554687317558126405874057277671378360084824046922235059076741778361639763862591272768642744527430773962146181457479170121353676796695075980124069183371045527711255529063000800280136016258507559416949842416868424394381469391063510323701050026520697763361313622456671087006051657644653959065900867597370097553605941504168459022788424364123765851178846039271072573131664790931223454603310654873664698846930355176261104809123316816395467587939901050608605870522872548409699130849512807186733567139554078420985318601629990814029479912547077517500777611040793815609220704186402204112734211592989590193455379552504998896063975127025840545184388865979706910646929468947079654574409283616858124578694757184501668969909000077154695583279859275557139783416095027527982535634689873150493689981560013700563632385097198694597756796296836735602052365264131928519768009291977991095822002709651501943884915526528350493919366253707794515358585564067904541550760339342645876564878411346089941720265950357021709565584636785609977680902215537923882809134297881660746111767001546727021747132076594288983851490951074997918057000228492689443811454699716143348618720166084760812725626910939559363978506407425597123684509590505510837777388855692326628116017282417912288357219414180677918668122502402012343184320881758439227914202725192802540101611532508220281512363900496550250676082934601343496162784004710256870476667087159837303259427304600260909499413263197758920659527453457199736226265633202268408146486207623966455222779217653738379959286100534691823511847682734828506764850796294659300659701026960588824354135379231018243128119386447329122999709603270977536487593497069923422688374425417276095129008514935841412795045667086813781830191155933461330688875451234409883017155457728050508587639362796479337115311504308430701442411725213142535184541025361669089705153995840719478817726565430272056122205758882500537818673387409283863341361111287992089107344861440719125779127545305301953396819389600641628831695898034726577352260406794469896493670884186835111716108441292579374184711310894952483522221460338138823225724274321614774583559779811209318879378774999212977191470957173802942232419233333739421121928219602444451196138449977691811004697395977975278661564009000464741664174041568067843768522229623934587747822346160048302798245006094067541915942902994445417859945415774335034963626571428868115152032329858014178662614209801626721876502828253789976545467084232399358494090045195619613888290565069896023812304444221292800306907554477542723842030638323959966519145769857357000543085925684916098692661425576679843247131919631239824802616337841860683920716808762290907269721805829041286963702911397821226932753877849144687185627402915402553365170799009925783504772280049138812394847361645718785590543626249108641332476080411968659001734256111550207611058696327055128220509151640191092317601212835508650515042597578886261701313741821289259885942571928515259835326649245105129985066051507007821332165836763909493570365723860908545225031733101447939345986424739184250170530952484418223056251844065417892319601751788909363085816110647073754901990064720227506428903760630809627069569091264170162505413711598090762697312926239994205030265019851769177200515166882528731899131154883389782364922884026773869472531047199410901485397314164186899909117552189159194542495852957864931561374416669944222702946401635293828974762655635968773571482075391740647759557778704717748254785939732333486112898635379887131392243958762919340852684389916171260646011317806880997912461138527973053089209801200812370649877065131303508641748127226279667413330155597161257402709614193821631210123193746080638082868663197439078015580189699309667085451339926797331068167965945583725276127120146559635004584185374843739536419229882648620847305584889612242209862846028121719122964321629197033004723538418021899974956644672670076465417441247616097638273959814184005675679017867565947128888587409754565265487144927272273984983230239734906076246998984230931857745830446576238395959302600750442212157327743967213535241195247581119413467246172401852333167269754712124606496407927348453879554600106259374138859450375897267320845124294851735534466034170291470231336671366230033098525259720534142973287088619488671448157486899910143904402535594997793696576719927168462633248471601245132401178691444191115577649679576031116734312790245552517428780573379488442469560385271609550067434661034213702472944235537532734463260827899602906927875300437316393496135146102369059308254446636231327182102272751720216482013446926190777885742056156709605519122323908540202468021229410133308839232154108491191250992047650172870793135436537108918572948205166325071350744642502246529937479757965518533702336977306193533411091103531248502358933500986039926155046729047627481915374275747787055862980860624413717366888897854861588983913332064138708091667623869969850432050251641704487373840652214442667106541606678628096242443046918103732121500634128336267707832337973883613060372722806460723504560630322593001554639871255472180141504651708504357832808026344230476649968487608093567117445005202175784010532849386908339383100586479983002025523475707405344667834930786999118737041825622133220582717035047884843682701601936418388343800452274882039681481678624290579738965006398258929849961454624616527358694437040823090646025409461173485883884280069161730618758686531801582184609922792979970260101630186929540558082401860619789266655126705347056246357003975951094323199992621259430181453400620779353202707866066460566790650827934009160761061629984720092995645082987253333450338098645134182054466968356162171240307452771593539709945086349454709317964709550002093542520062153353062184435147275009279413479441275143685831942852752529059208386494541187355911885157495257822306170417731079107288443877720760795903302691400198019762320114634278867270442751156820357805874303547120503425712726845510285848275324168138692201113640215522220379899193889307961496152453734519733042597805390662081638771279967548778923515409735446602708644758971515448133434916169799340155845046048122041465549305656938800636478356008181049946219612808419751203086707080213965614728544785466250368459196123622259745653302160247471547335080096543669288068927510478710520758460967497353765033816523692169371178113553837411082345729026778112568667874716145637104633977458688523381651580059443579078088476256645566928753029092529397679633712618700340188311329694693598648400867185154128011559670087063847469223279466398495736780500238911113315314299808281493702375934848026711721125522149675290904529289027272262114445667498355630748115556864814616193215079811627423289433618165495096785499433064742935389649872550693426902292339073600052747976300293707011645937627129675180270425516783235971846642731212417106719289722378811024962894849238715267745320564468648250047942707889078844696440630549051133844479560218125421448232863224932071047616509521649301908139706785164934554684576546231815004453956155599646586193552296928417609876693457502499312801817969513013188245713229685605369709203008702678085513187074676001242448122240473307771769171383654553001058329693086560285214857006873328678286447536047816018759246365185429247773937875125834509700505221893502453693276106778689741757618065005519553811103608420040574875508115466250916941906275263222529572191129181602831645609083603063528490192896615392741109352164870699721170616305720439305569602001103502483438185949541496793447878239648887009878624377320782910452287358333994148106226674788167058530988897508859818380943127541327518161610329194868755112566949404862538200456028250230643619425107709658447140485016035269344486986705246050202430000593315997564665088753448286661234702401027802576032568249467561399724491528983982452392699565069511723470792664813212401906420723979564231232041230291008138777696701868851206274669797596639317770140963919478171546605947674893000096595461180677015050747755502328276492935313046582447829157607497163802881264503211940854454116400878445530059925403731031187253267515492085047327591888962024518365060426642724007068239379497182045369953829054440442658201630350526763645143055808699554875933119534660423418838201685569906555075755961986653302795645031855660868804366603687750467450685254085565768048352171787101666945705499957191447617856847009782092687920741721857392763654959286414114722524663828669323453387483447537853404367227046289205538174101963573336832699105114954167207004643439467848798758775991013812605726846197400303828609292915670178729604322146708602874977001565326242266081797410230082245980697819135011392808378135189087757418234969392266195111939257410874275509979539745712042348051582434007819290238348617566006398262189404866711120462429763296974577830414581807570232068451245082748296434870576608540622780663220204019084057608703177501907505544505349621954487516275898734598879688325866473360132661018751969007199162556700334814087027739935377479823127322531496862633869081418601031634303266743648611945901849894863478154067663413262630191238123714613816660071077671938402223208314649980015430263800139069213921150366918493271460682683642956087383793586775163769639376776320300468963152121953144998802070237840895972543872940599529278073289877767477254844994364874776662150201146009286317024397966450548120742177234560175522882700442923698638380720350779903922589701097160455103917016033427752703149038909649161631804216813039912607489208994120264080068605507207451898309281808473122110712208773665973522869440872083142725772257386138617207010329385258224404143967463041869036596561432663687213257975979654575572668314118227368714321109021771456324737396548625493271485318504517561594944864762391876608606949509646436627669410827071342594612883678751800552562835800827111446531339818948266120790884448837768371719450819123650956756874798233958557471422726239861676989916353946488016697818686356085062122680057954957734993493316416435826985605576562261603857390815419848984084519675325780323422274794862320625776972015946399999732696014369605364061263538537460139860349454024382370664931005068198564191115585120537827637671547726433783193946150376875976561347086404853481744735050420187722896412214208433804132086982252806201427692275750224351535480023956761895435493452852054050661037762398861869187773654814441088737404224283661273386362825236527104034666056059556330974458934584001294096351958093973427253923943062843064100608712814489853256785307189369706642763349899375225316127433661386210454366455669063396040537104397383083962259294193884048045067826139764532366465518339238097948699540687164631645609588184441152809178886571597964159676431333326496580695742134558548023146913613394699200930063711215510982657229308074703748676872671514823647250106506554996993765764862114582979770164762187941098483357197891701582591931309980251965753778628688445336618599331476692985277234183701978479649288983451888274544421691940643514412048713616367476431855985819911479627662237963288249256048308387016566006339420796762021193970229961656463181515358157525969923924605424415746178804728288110757172352531622863132386673614525172792130069228755586723574739587807969606836931380483514915372246245963989368239235180577849564612664269210314818325694334855779458287262423565335999248678612109334961133209465545873805785942472337612874661215801857731715317481711412462115818927133679684100899904792687003781503738356436513253038801724370565385978662240526152764530283377529901037110532197976654538665933004102443635595081689960261034811956897205173831871277820026798151919857064151590293445222060369927890869496319059014598402949078839807258266451923366592265300483594909728485130585222498582600064381615755337401182325410737637748861653069536267353856597943998578156946751291977988476608305472869318802631726761115605637746821727514719598136253516060363582599612714408909532587483828581640334284642146956540307837733447289012982147026262937874119780040603876356172815181445563922377169657697898729631902626933724421125261192315872479897290951082878325235027004025648244784251622395621624110878379091240620587168380135242353610969356836612026990483456076513463203902852086020953348969195780587642060551335305617411660605286155839379804010654230054333414717788742282548778748723191738233964061690866885633735326720856387895609197173179563175614686056282869179209856076186479609490252492383877534587695296851312205660309699451163865798578797077814966906500377876815095683132712877768415278178435377687484177257747731632061955409279426300128892981849569900758909533477874924044090811964025497815432121305627218316362543604346510083118525884733608188381296564779899201807373700385091623978290310849200115392397846162326579188743417827431532616606632823429323188220822586696895433402591184798250629036111912585389908440018807187819756352549970199145207782466932102214064072104512276624816437018894920077832077688758651897883914326034128175316477587572653696887489840308227899518441095871956717051575314630212440781559996127970086509069471817974444057664485470259786872938202691964050128099907043049479455301723567257895343224148214895521902319984318298634536772635834926633852974499938272358138702519037858857624200798966068532502769179293799187655182055305387354161074627314936310003099227654999469577174506363641649831944549181082456074248442954418802447752486410953279254713823176538762669906520283770219745050215285892747325963947716113719537962017977234053936330690125501371649499331950274264640054567768185392434385758461862746177640867446401700516119316498038398657654282484226766513944194188761231384190012633074158024305351685020162497694311480600531371218865714208191483541899232058953385579774146611125488394117640766426443208049926199901791676694325109806483280371289161223873351789414856642472297162468786230443017555707875430993500503017939579724370582906423415217535261353195477216880419658414285137385119623359639101509569042438509264377635326184673213759769411974231291994011727907895969217068211395767104642110065173466891291756226012055137980646950337342941640963017417504660835398560166532268711589932401475678896815059756339129781832364600422486306558750045955781540591182199441056826803053485002496940491435847668846558471021967516258778880722720189476058923625466696058671213672874702295392726771063440938708292817159130824961247204250336750414946850344331177757466140908300017447229745275721349653204002102185695362211958722179340443138130672802175067224195665712146954872377259983315719863706375812889120682328454500369554364806948720189092515777982456014400615372006244504438675919300254560630851813326806109686278832884953632058924390220575555890110260815448151164112051772656157493338432418098550301967285635547088799791872099683475135154525428780094847747146560793714065769397892331047051814293011830762675386892266300159376270692647093529051646728391396836646669483261377820219393097265343995708466304391971014410274689276062777079090547120975308705345513407239337180028366191270313836031299013028196520457416355197067321322577676815967018168536966601217385324064903248935407298910793733826071174407682627859330485415668352971554706917843438603920273156955478682081496296702690535723285476211976659988863104809385270025342802379333259543754153233806472250384851660389620904699430458001456587658393238065902658690122257958679412414089525372795525890751626632911587326701940252042308288821006733154684495232577946512112765994944891001993726026750253991551975305674094267267106370094992730034136710000289810420390832614751437624407716510589690051812172531511572889313073074783640201110925893291219767034166678996743135967619841722090917289569759311876035340112018462591171397476713309447252750935358889279843761519183347372557587177698311082938949503508905715989327676672660960727898110924182432241981081570625496243289496113665454008974568557080457753987998210557578383842325738951776329468262716541045239833617708412582925532817401498206323870586170877049160895165772014305799297882998770315043933298221085610441429127015631622754956187816051600036166701052362373495750172947075886138542472460132482987804930339395429385780013599111055391343685188140432336682851343477414230714961133573564262046850601286121609822298515972005089290739348938607914575349653127903378847263550967249891440496758996442182765161964360715925902961680693191743194509223830454766374170130004456922127545424287947165324851121514311722686917228002242727093474549926309007175117763469537509105632897654619666863135995697087310026671599578832525858605690807984436409257270299822464962774458004813211673539525431791257868424876973878877368454157649250883096078509833778340145102633856295731913693102041726442677419639496388014313692752364801027781036675194534477028395826948280469758100652244653994160645544562177896222044664387602588146623491446930479698447041964276785087250038925587015372113738591782035356609995543949651631951125816798303352504926675864768263670671678682082922219170772925362513961950055479926009583106473192595730692418302246954506480022837555626799122021173586658575514605562667399646613236256569492249475958103606575641101804401938065033709069222664429120263660537933183383131852732902765953912462656792542759331498106773521968435514043398176247481244782607391299654685506874168314464515978079424403800984146828296691898221225190457621179808599605710289170144520137047506480815384316954058303274378210833025013408389481896371407018885280940177307277096944764359170986274335698579759418514210968661142154014307639768351502026472199058748929854472319874033041494725041816155777429877780001160414490032669978195662052253047994488086970717310453983156987282555965878977692264744345776669318168194569317264829044746176418735554412401060307064683086012444190773513365746395683522966967134004204737441466982994192450805353141189658457922963758645204002676622810190813594042454692895661757328580120235024282429825030058608739387929822972250275132892744786640716186922553213626466439781125760493155551065403253439610270738355473894874533606484543809113515048397665954966598416576668139226141847829832815325626829533061413465629908001070492307466562129152433679858667406088697193112282635093264596447076960797866933068670372954053302937863284079929524369492505496604998095505598311525435264761370476956388270687626253024138181808635963707333458488023915674486541908734739051992243057373460092697767656800800072501003428585176319751803579999444149439596652626760992013293183684408494023863164713759070254049292581923365722291834502590868794001047757946865141460170325592380235591874947653349029691700690210964921621082059750689543125502397920688116812131262169694682859763962476761618463738161892182077428943108370517622005019687898877701970313426217391730764631473379320195837609985699585716056546875655196092624749910217746959919375933509471866303640801270110332824536474313976103643485450737258645128013711811129037119870622973995774834315270420434080821555359755517118575993073947735004192477459927421706578643103346359795855932621017263740873451254356002624558371378734559781190011667427853558710216916960756208416871854842367997908810190777019840150017412481314335284627688947662156848944623035365368277006622659211203647767417935703114109925622308197181254640052412367421575000725356399218288195526173071492944765359065280129445961060887966825751787976819424198616199570517688553695040869188929011116923231551189266323902193211534263264539950136597345871754923439282386768755114474660079098864269755931368971588371589628176451740985135096404850378141973301538707266955530560864701197923563295399862356335654433955590938752184365553191090076442861215281871667740034375000852299795655816657451752913968862409552698987141975588758760642852858695479614984185519175221380541037476966143934956149736619750726849995395445908869040074984706642812139516176889110495859991395009963273391308537680717642740112281196808827131802698125508087272667228620788201143780176330528684060540314518143985310283610786571585307207753070970530302809127200046288405225282232660536919448023185471157628566435405948940591598290908029468445240506687276560914285286475597656717494084884901909873414744623039729113712489936755771234721172558369371987821422625919975749404640779302309446067476016088369638059402779979059729873312046102312735249901594340382846464229099413813748668177155437022339520243111266982115712660099808930521866054693937689851316300195502774954862205472716189082909111559264827337836080811076901696547923679492461050074395443650402700131137575190899431471486319278282900739978895683737494844054855631692230072569332591498027671542115591364772477895104621848948207881332714499515603957103521399745595915427369097977163723828112468614471127310148843720409511962302451104527855726171928013240051393899657400571222164708146314511615819945059203898684477634316806310141800348491956084398523692898262399431281546629021410433400121111506922944126712191825580800645843285560606814829573309851308671823633625050661055026575548554671742732525484513979343359392292107784915778602007296970485260294290777772669745448335746265827385558216223572067786946390723021001736735825674931395365862511475747968305662541530115226470999012749617919535880511402363898938553040151205798109093489529193786110751203843255207388074179774681808260445536756660169439039043985509282010132711952643105983175389831543730663117204071825578020672605265665968453411992461671598664683318928018564237886730859192378521614979273640695303806093993930504258366501156422934508123847786022261577019770561374990876376081972574367871772082648958068561939360825340491652528405736756678586382207800384032545164796026867875078503081456760622473594421547764216719379346396258118600438494922855092421402401471237364539862116141925422047806013394265528528174571485652835429196905993120378617842468863137443757754859125449069589553875584492411216736328615908329697558133184172057524748574822963112115422295299134468291249115247764542649037318182511575606209508414116877102904370763138933856743370320053119613089570281771430536937205611199240909896878141469149157963322706848162229461490497888914159256303178192438472364021225269482296858515305170304123538467884213834980847619207816249156952207548135974909542100003579009573794142031297476583212645934312488731605593082972808304914928977745634287012604254919721427447810251201465229000674662891923631314612174866237360203072581615352904933644930781698158901102732826314232034488405865083824558254408038020644801069327562916663340233963218760938834297738103444138803122229146399163404792331068746379975730014905816047587292014342096134857704162781468906746732375859516155025181799560795326804385796803988867523062453487593324567163327889081258871458911604146662947025924303233098839495449960032612409939974299705236567606594594516146494001620489685679777208478426769462536741472709798371297665027785781462879246513467415929315304020398728539321303077770222984955644125561001751370139996516806591574988178255946646831610884524997930228904425385456765192417528709950653716041476641945606524553342431600809489900252883951644160999994330181112414037701942529413904648283916062315436294926436426127442482022833006109471833577038196728558185863576607574179384668921094435897170534883722439393131385099505075790199332336772702020589788541916105324521467527534679183027998196457796758648645962555690969054299535641943604991910868438580872800905289182401026066821985452091976791285537029682410620391225052299648106716982483131651948355624398354843165230694227450464583137124173184835815585374373024002694333066807179305254185888210015456918805532039698616145864546796418933744010257756571964217062586437797301043744756775141360651612803360576769169078919127506233159532400976854437935536602672162234407190200156378956200841121055490234663615212188110588249379261449918741399643590688878614466937599618440722184815307540132154989384197266159691631627711497327410537085571362980550154551243763848475055417657255326088885792701387079113884424619945789246852353698040270031402571769800247179762270858218098427901446505744087798275607277413726139319590247397980509888512923978106088827699871061191458098291973766911410102496187815612056110861856722896366515600217919096096653078012652698331729919815064942482830357856885353369106804472988418137234557588027007195570015671447720542404076314121107539550417086608537627315475337030128563806595684442069551431063493289814294949670103137682485777662472660321048813541143320099647575263514605274419945445802068924515488216319971350052373490789027297786972980081314179851820012594581440049028978138672574576947778690042970181657101371278255714720605801073797072879566092191027545077274853129995565570112870386420554413320026434344426852912877795636720422270562900185374132815555382098193680479876263633783652417843499296177237569464244313060846733586299377037725177881864006057639556124601543390964847704521205950901921645792863306002754607046121728023700369258353581486112067029467117114774483255775934466756348996370336189408485831502692890382526691533596633874726239200664055810765517925129376705595446018308561330724551426815718624212028490530854847650373486046123290951624995663119807894886451852755569725004514230591213753514470971364084379281699248315545236837949660890059496999702151014980903977595898368604518908760148434713460086892567627211559882435266760177304342144177112528728795332438627859261305690293108313965032961128790289946365733129853574340114980038835950610590351045723417602160003784205518975833502361987197327624752248771175035588308559471593702325255242241642219294094177905352556188877041607737605416307773347054884554160017790589710740623634554364137280276212467267305584845230153320017329487319243324909162788427070786027134194698852227136266198915036388398151843155226373701019886435670235622523133467537339524743984019226720652540134709999043415600661417122335080332878729949264767856136519222319976647240930219111616592985322595840047199647885125182350084519528021712919374492771148766929823021043020275165487282775649344021334125557473647567051941358137426644238944441834244048631065045032097946614932275862256034172773712036703971165463033934860793843005070150574622152196441825629206636996317802746312869433507675552920268793746997935474524292034574617579535972648030931980438820090675182355464276715420066165410829988379503586385362542687190096779713546500226685241390892791448792623245767218459031752125681195706205087702191526932176357794508298829552411774953253932368616099563583101494104693781571378157882640129669013850783591625641153875503450149298369698044514696660236064659233544684472141127406390495407917625542975479260315337108733876041211093720000006481974052626113334144401619707270078159522899996532250820475143803333081094358611150097383165210820401753565415983105670457186137913809495991949596778750470117196729375121788244898128601038875478710921271184984265736135031689119104740546905723939204736371694839720787341573494147827546555991060915653124869855467588521406311716441156163926389068506486995412128452064917657705665064510527506879196118838126971572330619991560717449443665506812530282829619004003212899424652614366936084889116523022742357522940310471984089057964768628875794457006014864626325877659662165214050169484063243803444889782162177881883662876119373233158146042189125763690652425793742140672182787457441787515402071396402791050563403799143090013204232662319824612001555876575790298549047357555903808876511285269849063598296013574873937441505974610584920421412822688529315689414509474082320354157232142337104849412672380511806550175715978465239011764035499772141600313852276263500310827299344330878749240839881953202881321450051243635085739327302544415567017064435006918003633898915487842811719399090892455349068394980755937362223746328843446024812870625043644735209372616324879374739779425920796822530327940179349457183007750621200760799378230466347499045595806776109383530070724131516403384310889722290474928969983691544417821757659991123119374310257594876599547594473933439066765418578984874111486405711933208395621395768123642363917518386698248425952869394994553627309033549438196225220834240816954509239710743088703001992548136587421587282587269722023937203620491333300489671634483159796848890356951587683042820695600666713435092557855462142421735401331538011433697084827475635366613248514421584468697548418328447441040472552636927397255000615458881807565928335022249333547803848188397123204949973457251911566788903951167988951343710072021243698169394952938938963444316505620719871482805117623012310020904489736946555265526922810930626652673453941870727031608351603518871299426078596242332803999554237850562035642519232581672187591048928746333972514526157236737361631453931341259114428749599819328586653766856148820941433027804037780723258638670775634617561300429402416147830367276497030675615756279250681446488072171279848899580283797642710800801953109245969274016571555872077460419089764100721142050483141870679277739035173700030560293004131569347703367361610820804259653921277076954296514323328412347353711230382765335282278569282797037728115704342151346520531577368357549041514988700568801183512564205197080555446630735320974094472080215464991685933392065765076740980413702610256468490781041591431098880151811748461693973797694242586014377405679748182671121884450913111005819807486764481747686302939465855307589020389638059696835882637851674935897031252535096981820240403158374925024186035336272910448678807559596397007657952250050098066398068961677424498063818176971414675495898677684877558837565380811895196169756858980054928679830406137987976715487657089159226713594596293874842871554147885466679013517147840414542376592131363213349983436264448111122100177126476566540254941229020800405705866238663669500226734501259547427497600299222763895823814055722898932710982570104384273907017172783523107651459345154008212970398528821232822315096656315380133283169326887746553437052174462700859565029058685268857841307780283424884665535337068635007212339644988585456538196452779193710041221325310730117715762006684333208215873736659261813815361410247878080996335171354642710809641011745304140657584111701741866961089604791924215467917702964202179750519523404273196844531668269497219476903225244782061336889299473441329678678778329764079255061954255432482628054735648618784004772279677876699595590158671894625932036057953195815277065928082395679107437692449007936605762292268782822448097602678474937456945647765864367316377972664386023519916630639081603667931621094523544551466931620746280416420157846231567272507945155446347245142358054490029123695226408035860999354236230478694933454744933080659952818204592476935129244601267239937142336190886826392688685350779171428131042551223952720974581909238401370265617431392254383087156508584697791772469816611243550366073473323955073907550498429132195900520155670540779133231574057336767599369531805464055744002703751637285875348949293580153912443566951843332348524728690549020345269276053670729360855008920113063036380779534257763952132214581261255699871992597260149505428164773546738599623045956876116646637706433408880804959729349415193689036363173494676379418372042505668022440054858017499636292409768433524439645594763064866904301370306883958197302925919403888404383432190839792648085110984737633880654158618501210459737049112873295556109566494261576377595523775140002575884594267625005099868267897548130632050656132210308144730320511044788408717720336914375810071334353910720282732574687600381232051809630612540643137499453953220803367983922250918157239642857305227706141764579196034676023931880352247825734668868783554893287851991418009308620400697690611304423095453558195840553226318067145881076974736969026866878647917357371468038089770891996234995925342615183342433118390112659049521926101611868819462267798091558120535052964389501692003603448134004017937442553938457409897783662665244663995539204432287644785025664607572397880105088875350213879755156075413226873588730320228971396368886332394243099595900553651458987331560611758093317132846274734395740535318697667042326678876046925481892756743170239348000244114109648799740667555844163087721994604857600043074830138396338907851681696417619519308869897473927517516625092878353993406258428106811426134917605452410366325756843203701081581721541854989038832525751495348483621100076204880659022901408786694765242758455974814146931307844899519535164783389733151925830977327170788684017104970439170182907196697317956740470640087913472824249945959563771313360604289547527126750229787102727171426596483987137223848587182277072800030428791398694894408788336055077637750755252739224421020479185239433084755670776046309774864674642323118817195266475283532878595167175015488239076600310044919485404388727634767898542633427597049699162804931637753246158541828104908366882025300088042059089794311693279711967695730795977467176213699291140503659478377423016240298328488767007570445664856652995381126970628950419120455802160998465937688608992140683531879003643478457041705420952625719407653590669206911627453309605412486535067964492742922648320039391910174408000032109613628987829664776614559053221747459241602448756593994682453964062228601409160151854908867398861161609160830566493931772310267979237334982869315857233084104641910338415246102357050257080237111142627739656421105227505676524609014851993378957001426784478763880383452979881867335886384359926630161996867076047521939259498381618359273254637597118590407761033398493978523890264355505235446373672981610391872696327371249509379504617659541501866661717974415381130680057432976824316995935636512782350517672709568999173749064848772444054882028690594348080474148875488259804321309220868903272158196591701485585506919828363567626117115131346708098896159460165526573633969640369299063899252201730563586855108867460650607341706154216120703149158564373318370198474455975600084384563937246273460495789042150564671559941914679485775994216034581866196574122205025575075488510914998559351552111195236874156090139133728070871828202209473985993098354212495400198422986232561220285397442037420131691380051829829714002772781984279194813229133148506213669223088743917855842991300995738653987048611760082603921202614203054615972036612156483143408157591753156450633417031095086443789127987380870234392774352618857063271143767995901837973486215120788403570913480162799036034605288074399684073865264733333423873361812007575862895533105468986041739081521518067601428879679662430146143311219510296489294687198586658107367493202444978522558545632215548440638566954241009519823398771373231136066876948455655578217566667590209377624577873656118972521421275974737978417460341344530119994914462772001928140017632697791064215127760506452990566876061067868610569579481923100389949485825694004812657784485350531578447471182842035426686668797501239268576098339222704335952362361160010764862148349586442799667210850904224309216180950257964114280566808991683760570445920501102606774688172983756981552457977517318360629674966804097799093119600031200849547076836617929560560918840085811316550000393446536366918328017611126830298569269321889668413666903645902577972690922371902129162279734644011027950732519508429573590050118026727435655433735953882804339973911025192961088921691472446533293228924545910950759705884116060879004570112436223258583091844316638838228904208518056755695437729657368698157614014137272605436508552076747649074517214260431656624159065619028200148194609784810227377598123845093945462616447160254143547192213673895369420767121366932472851418672669462114382865569693357970633021855430969451366425562636682448142278862326445977600371128362380867652576022517897945265940150456718458796910527924514673714349768072338069643791633663594163214191326568999397705445709365001884837978105731760667247361756723389447833733054105946503026145297919935162699472591227848279500221188161340664068357159568626559203393991594829505937959941179383777631384632900474001051203167216609414933660562263464195734842684686649648843699229785063025950528581959510882879684379941598031593151616305662939072633756415811074753950886918253719185343659109112641382934510982120049290275647664801369150796194996935384977501771082246560402323059601299277552612622687116656528041573554946014951643731544428921894825957114097897399194531892207701351918122321097445222365222996271105955169393622750794119213174512677310805240581592624257649272620048027534587039326673825490857480829008935233005572208847323117759530755052652680682551657602127521466843417422672285977300493629462172075802963827104623630586254767976831128462269472087224980152077600001530153354439229771014108037472108380608732551804835162688828983998700746608160864962459336860526906644347833008456881900233270989724847931444310900580336254211318292694568777633893327837385014969718219052109623834625813555957168605487775878184965333984736637721910616878411941120472686390821634870575431788048468884151388325056118778254355377008635875783577854470718440594777843470141594181821176195235200710724179553579441524018705635983610771847645051663307600580426479894868929994546289520337658539402277937540928204637768495685640988721280173300758908191597808310552673874834130141952858821273996642597573007784533395068694944858726800585269038117500161728636885017731098271168672392354871050309072536299530411542740675332591624906008173896644975447950311668927987148008766388479311088686264669150996278655295157165206674788200361045778572907690361598532117910486866889921298198715379202979668922305585926632996215624291778404461993725435504788979176297859418789442429733004419107880507192695768907141438357225917463499805078475462387416072923024123271053610709422367639787604978376217406144454139249378781788744492212983227973846826523307322008096674859808520118024588994212580500715033480953570754731335848083507385627475673340380176558606695844003890943919495288105351844905273730421817116751976687828909531034590995683234450887332386442689888589997960520956725067065276246325571144782899683992109945702163639498526182092101916693088540911212609957444862471473841038128930042022525201072405102169246680129334617988302039638506730228559349411505722540928682481013112710212100920276383792782784057459639970899270052357537541444197093248332858033039105997914502699099828865140868804567302839018493710057361655373190673854507254028015847328615963486750682982764624212301867973955329022835972148879769664883343386046961935462593319007083868642911146021605208099229959210442415318520000643921490077588598188340335793981218107302804832564232941013724370837517359614512837991099522093459018758093393935752700329346178419682875987461664771994869508633160412611392260687356737582508582656209695652434828530637786001370081462308572582107794323921313148955552824837914033164979956526992609690393825170466533983898442254614133320893224952935324050189217187770192157131209746766645726218987989203859588106129686629004690299505631500362295556423854711820573815124737590532869303244608443916444444127804139218791620290706099903471275849943133326307113866336605522646792638708232222250807943335377441232629600054496465831601917714486294513211387939678879459478439825283324971566074329422136713963532209002504499640894227814430845129330528474776656742868726426185124477000599661049554731839298784505353109105092843865104957751397472642081763861138082050246800408671060933502444111551922044103829299434379678313363155544446622803154583055872947812289961927002220577453072115704680342354834331243241994201835476402981921857295680656396026706481957891919633280188029321658001767102691714421300665627179432954229352092406950882650827902388863024835509356549876580720783259074765665095004914390808572955124156209915092593868809491301046463059193561992269133831822074362978337499340316824259344315945118320934076142122783675647195111955632093200198768474611812235065558276691252662968698833295106775692712764965059745117038865289891298042774051545427418389047468461139079008740479990627279866887908360587583866840075383730106485755596890834956333749986750248098390411759656437685086824390748383985391019784294855957039157751593323357345778216418258815302188948011326355357677707434041213415776953622811370497006793723570897802070944016972975974759070033330642547245219410788178189190129368645608120521618302558608376766678317548335001184001840862759659396760565255839917227614324281944756476253710741280798430685986942761365682845416991454993486552629914829717106442801236743410022896139003581233527884911107191218382293122060354909398514770430898649181514309841352995778554451072272003008390721706802212346684253802965468751714770672029600913471457656975089409523226318022216474545369826488211400903340480186444211227882961728373571092542202588728694359327234573867481589591172476077412349429822933906981404033958596442844957515967933708262974813675550093219268368396755109236046589794890280754895112416285898064590514977331808214620427589764098200384658605703977628102074025427222261979343821617883224441954165342538950291653562934017723274636291660221693085791821594759199570246328953907728420103283488478321238185506604794870453329616582391263123315530254345207324781019228243945202349843144180926518206913220945465010433372108811847428503261601705736472511210445199963535166651358494587070269402375761992031252108881792394610438124890926065937279816485755263389336704491642729251619016534170934663035485099231428662505127779622402116775492751306088599495037608625048392654798949711297364951530810845617811164339965064759261770834653179705433619710470833436485776225483887042663993652387945720430197494433058247437780009400166996669500899167131781899150421199720522907890418586242214621714542229405676365336511857211083756057990449157413380710276731718666355452505836064864285959482545599802464127493500284445744640671140195418723080643532185516092948507373081668599480606057765687027609894448928580881066758397954751139055689953355039810268217657746245442162849381112956662352659268058746713521816331106530719143584455593205602635539374242176618417759639867008150773285360581866038889796986229340666675940325880416724949081015948259842745468335128788790001059061352386713797599401689089779660533709948940595744313005719914878218701136877143417152845089420799179467667468441003770995149883468024967889561667592666007888774818727862125265681315885338234397084414972023365328386507429124792645597642537010632556181315907837016651834374543368449688412137452683764533249764078832601561319740470999882674123236929352866939894439432349241423960958701534300841216535403327017085584846502436234294097728372833132455906201076833309032764593743290678614915176180747864112047788185797182765675316113268534244640142532505977498373656255063699644047734919879111569895562819918588574877818375837745024096385963072619505419467804079152942696777224104234385775854934960446096943601657957756893255116518460034475701274590398355812000703894240559502083027211453974158659681895286189588718314167588785113113483044258874999907119485420852198334460285707310938776289057656672182453419544650889197945387977106329961323176150537319791853754142976823986700967878514620278324739681995085455955912263656762170879343737131636465735602794722747327609664750591958987275176546893887395460366865453939885086991374445025013306675139324764798810283872102121785210369348829781902439757716646862684226718668050448355561433379339111244361867107277268254246049251881367710456480355402408923605971832871850655725777702208333768498073556398931390683540151428127940545027507288441361008667792810943993294551431754298877827195250202533970963217243753075488488465500407003156044420166492544225061540200331649862487220449766609473467445314198382463766282305284067315033165937660532559526991300300976481725333745201351605667365605878754692005947754738665569409635060155781124747645008880042026054244236046782150834229376062189212488639273277885127648382533095764661806782235531811388011753257476724868005845844255337204527190877014189002224538946842108261396648682225888966652365001716572548860767104111019369847763897797373129283451209165910980322911313841043003474314313103634053737792110041515956525670425086907238741409032311052494748162760846720933608744132164030546588272983068384268111613083060551595748846017205544143204774166786005814026408015236793732362442266403330528416096039928041536298969092365651221649203816048051662383039174702031678125737713799038240744355809983870077426331112836116938874629259659463651852600716480934587321040396783822125623561904160651890398755475887055639093560879050083900867623716161799964283594165292961763034859281721888860240615580705684284341044939371780603538199753436100637089243204546073812587876383189185801398876136115550637511572479760959453629227311656708948503278054915581460645343915658576126421126616065997117588656179290080547256243019326632507299179506298236767706995758355162779014628531864048610550679940513807523855960651141575867070747426903559765800628162260638629350649368940869326419290668620052687480593793356226863400716397505511462328251187822545119456163203029358579112074057612321303649612458743816762478013326401931930346301926257812095226903421180409056334676625189180083428977668770698583030126408753238466940199030128665828333145750192229415631324292128865292782868092957319217191199931780861452564390299349939716253345552524020127736500566865074898030330690844525279080366750149448907936966794610566185580606110192330110002417909250360771605423705729590539175514862803026291490817976067684001033002669019109966369056341175696109902899850935043762639078294218157910603558562448410387560766394128693963506417203559367329354727263276696067371890028406011249959696234237047310579186513633057089733552605922745843026192627918318947155757287256781494378873851371635649025646269986980444574665779158183360064694216606375640652470420240623155684424820176620383934721686434173715743692668661373436332971276543803079618747542488181333149263426619920271701625317261627379372360588373554869286834842036049906563231101240617824659298038055170861604402918719951176264936900343914899367261471375979470904446523016142492837069180993971866437670402577688017336230207753309115521280670752480259704088486894810869078034210021314403568859651361155207670832188709692624935228376495723994092169975000117185381708782388695706106417007007399237042662790867011404503331101101031911449129007199394217859663264484899074762801015854990418650185743114563179176852929984512778306852355914760455608558671314091524842698458255608906765746722923935199580592198666741624466729277626588270640324841787462709052810892211058894142772747287161068553308523212483980895959940609170691019606935349151520948981544740379596179415967855791782958204228293094634261916947002419072137249336580758261158914261380111975600527757391007206339782309823190249496050474032974235946545661690591246840962897953789767336758641478182362031832563250296681280591128911735767879897351020845419618342395022195024835234326131232597414045707065700280115123065244969723673686155902615322229416823276479609293459059623892251488752802470590644909825250848149468659059339154965876726268226317471663237305775305198149645313972311309008674562204507985367436886251040641291314987806825806872052166312848275814150402346654832630311551030682468331848537920331615685362977139925216407156981835883557033080394887610298610741142620995884033285011141177337949606225861504490257347851974430965781575570853600263182643790558750457016115005305824987587860206504198671641048772244370096452998962674389335026419695955441430250531113247205820668316042634433043449654994297586937722871292268225794608302644317705487037381484253613775330102955600460274530521284626378892174403761256682039018421482771223635747406048404896623385277780071957125568944248975434503945172711892139464313524613003620048492495455424985135828744779344678760938163060057167571897473629750727211170194711566582868975535715550611814446265811148344083459799034936106044853103411187921403267085364315763316660822415853691061541395913256957498834130828793015859658738200766808731313997877145686182293299635071358537760357094906585080420793860179398815090600628207417631792534673004290153952326849940313901289131340470666596537405120059242273757920969221652059858714464886822129941142002304355739099318561447737221930771054795996039043352414321221884696215751155331248660413670383303106814618440366942582663220937182364119750031065345630720099299827040085956389260851122523542151198860956556835502806039792056208017028490589643736459146563714134874546157556449511545269845333033279719018885321633341354061934864892302271034369131822488833258379952372571595454828043335850091420895538442586946032765737102859503322540660549757048163871606652314472503740373534834504118623254020719061673718013591929193529077413842524088925634816118975634424413141848451568741233294955641589541817708720966215060697738077161292404066632030808033604129653780041896460589856009926452697939749615864971298831908909240457743363754638160351151785241432486681370394819934633981543511156690445698699150018563524310763457057851894534295484241233505125250905880761762266207177150238984962052253308770774925659256380043722373179815735077608563249896957367937976154642142966894534820545207760889914149074005424309805684946953080703040506211104546728626452335299699564257320185211153453586077702624891062465365744665634373302801130502894464138722692445088864795983657424750561304582316532910348759982871958512864889424434582084761151058601370518429105937936647071684476964476909982051825288513665458003486212575417655747393627377517224597401295428909679173195994177136584380716957886389962555327578903571505912341735382454831394926966507338244803406108102198956177780414532448076793764675551063794903006514872226992821595432993953981846515020920865368672367637782461529081968304635247777097269911532551086514864185539762159397432396388760383496999612491474933754373839780180982046414806872595661324211014134082004119753872908842709477319483401821790891594098081935424256012056424732384480383794543627488494795836114309652736854672933225329980138501264381965304084201152242357837560278126341491708045562480485578223122859041003728400473904716432624745812235506531981955632345837211942494409127694202686707935164010624496570843021596796332131648445730921635437336805006462879993768007902000310334602743108460494673656214842895922283557329524234724694932793707883515655972244602181474558383170454882043566634244563202238572892367221715876705222145258853215940745867765679080773343402904326532276449880241735082721052664619268615323231049873995890596408556097186616128254035041560495990180637022082199585406529848184334887108874891332543429614352196031478848006027889666993765593353634704718245215800230168761492015385092491574326169464960650590454385032871448907788213954174835384097843630204597572309065081441965797822539668029621222868676500302147111354020666989393823475810166067564174963393557633295394182307200078380427854855094610998933920617022546512261719553214205113964492912398661529336290638079005303436469573570095985436035823533699627346232252185954973022718686523931618680564317484336082522394244993902576890968150866589760405269291658589690205244788193205946933012400632562302845573798532331124040612781505592032809535290301136761354677421598387327858016855800053010531820852030682028317098212130570027955930591383586632219696512385494083780435994771151002855254672685395860146535187549571314276907437833674334857152178456999953297130369782237305151694340124416725340243150901129306799764639815927794358047198675120014038754245811429327843675979473471795505568851041696165718146270592196821544555942315026614827130840605672056115689280047201274198129148030098726533374451901222825311159774696461386284016084619798487875203734672895373095345505191535215672072767126791733295605687890494169362978859138032219836415564148857886449003319715001548341542870252484669714345060213561310105442203822102526292810555510389921951803382972232508860504034084957685307702612701110806191113829962470940624077266405033918038804120994265234452878269751794084891804224242364439750179544132099996055017761828359928721216907071467137111596894882295602109579104635262760255445692680685689700433822414274947370317989810414906756165681163056459293469907907252721702131408286986071910588150516891630272015937272022331598267351552839168193871904527638745566198290741174928122554044065011680711884212415608223430940597932609221822887568456615688476594146942169648738015016261399729918023567118703471507471044368112309680497642111715643029123832227992849783439037926672681449252936336599401127762072643749164032664337760363215234142687675509426635238891694592796119933323978559808955811318205864345345890328204198788958785329104314651841312067539670324897602010043850590073879882600992973771874117906496980675251910894596740252845082038875361450264231650542093332721341309891491709633045926461471022241796351399005700611959824234276822627722639643614580100651418548860616041009940213643598407042542764823237157093441363727166402927693397422436725081080965342961933332891063433278530804429228863248687734465808090799265258129529554450793457178500408935024524447786933915125624172003840459128724504995287747694735817096317809927453178879138736396427673730909588772388542141645843489736283235547553765981451256976436961377845572923817921099234869829525726646102790707639353095875595721523344343401644746091144603478514367777162462790348855192673026167469939977409410247900754419368960556544671678014623137992282037709721418900793278054191989245473273277163206956222828093688883168104908422224897977797648227220510532412444006441629183171653626729935984047012620255235917031561573614272092303519157502954406259443167707460638171051053988702510380524817026552631739369121906427935692182981160616686279570843505248294944942403292526425725530834189157916022623148951534948305211970277392531878785976033373728101666126115658419866304885550888971655674499632324698776746811706304900698650841201992279122880026450776170013803183439836069058842067803372400724063758591279696843150637554171406434283696512859380178951744680923790149140417928301546564585899259355812391616689041512555622876198414579913366343128717931254702309242483631868449345340605222976508650286176473703099658704961816043451985375348391305327258350888738627661857891954096802068950857097850124421614399716464025051294079499852577496243572796050499930726377353683809631353939437370388140163115229119259610602438932402979706928798546516160484197196451529331405341177186177767722300529718799298678976092284174239267427208126157230992806719564234438759116844986114890051865695042619147972704548677118391338346628767628174907267503307674463817374282733045077491392484282942657512236676421811496241870053283614312233150335448817753816914265855129538608259262581989417221313118118810553763350809014023958853789137570066460485324917905235869836804098762000477648130626700106751677527562049411051023897120950771242213951620495184491262163589251200097027919103422635838769384438800758711593336830081452321199819137859646868715180423107649094208768226502985074687079052776226945167435304993569910066768877066315020797653710656612510409679253365512821101771159726341603318650917676936514974943650283326186155116387405080419021506589489726190712630203580605432938086822845697744138454148922791249562010153972721874238213127707327319685110282383463528746855940871847225719114803653782026049726113471831384812825858221913791758792111809638918645985325491396403327841415051186989319736645629485556607901227383484093417691108495730122922532469463391900067708640410793832634274193213394979651219681215315240483901788768458358470016476741764609458780960797173476334857702226797554807531129634711466881168017505356034997384883219032224096993434630423985976554374280019327461200159757821524235695842821213759519785598149101690180706316197594136437195683604746838516023427163076359459750945990134196578619490133471323177752939204611374017149292137479112689659335414699926866208100888633259395203169529995384048790629391862974410906698969675898887306873573828915104080617935475391861838320199429786358618243889564717807643928514230244959645819809852691394366015763686669582544650992172687699970357022473300499929250000469012000564899259140975998637360847253058264670026202920990888769493392645229403528624713791685375296579587195763036483134669204137980948342778929703294605878964562631543763617638384246637319703686631081235955718511349183068493786651668929450100176803570095509391562088341006839300022346998601261497704788856364897217909699949784976563382523214631454714560463174306200541275460118911820827145960406952015460696464120476029131646245518753784288984747643998706803183344583086127140989847234826969419487728512309528049358254323027865641676026820925027820089054496828028735656241865442736813487801722698563771676217347960916345532394105927568923281292199077030050286850888456831029536010834287385553523511114574226359905273873057476014367125362383436409302866561235744044244248954927689028356226948536534650073906691067596502479062218401210136106826363823289209205078862994239871402320591403637411942580862945984354093299441715462181180131328032958494377275200805376076723202449199065144787831388713985462964707504057918947083663215792644853787310321574112187654614247786641976239214933974782250884167738208937489073228878144243513945268179463163438795515158973918368009540132131749173362181417919835024410052503570715172123935771624096522008868131758230329940107169366647064433693965982232439712456269647518358564317120940431031767256566152505684088328509993282315594266274009867415443974911644338813407338110835285713686591855466527161171764840435660675172982832933976145612050950628883574290136452123758438397198704202442365963347563611521270661664204043569926334974473886876873323378759973071420723597969360216110397619388355255417779172433148331907048217530382127047957698691904064550555361554001050394434114159789755283140260182940441382339146163155050867949798553723408307837732218763367906723624526774730956476349268106374464831682149334466578977572607598840738905933138587120692168366612780332802968728464483944525582537091174145566394486261532939946029929692839175570743752943921199966890220131929691032364519665131534722053824579470017861545135640169662052972239661843760534931282579445794533083270495589732485188210626430328689055874648260518565759968133399218971153185709029245501772715307746102898117836108729915199483294639006932195703417697811522551801462810330001076344155343223368395687586604007011572562765778249956347442740453066205990294368196813601546510363663671521308430479267870733713626596988912460794002988110046988674380451468013212590682044075620761524613753981859252143042273146278392769779479329017830150996835724615547095849635314919525631278718867672802785321463513360005740743027295692120555415282677086996361694029394566393436819704061880889900886140259100239251808606245521774224722805167234497140903260211622485253105872970957366306161290430447911722785630351086335632438517326013825855926775797058745286596204648240525555091974678005606082203732887555189886319282260427857755622912921074680207217737436402220169534660825737906261576088176846251164984894665645209808397406111956691310964097364900297860361042679557566262985746031938643837158079307951030977471706412625100745513072941347242562966088886513772732124867934067170323112614772490573315720300820063440455610947233082188845247779971753163155226545212251460177426000331090622031223180771859154404404039607399170538351228205871494563061065553399299969037695993384875476091710997233111101025387394939617155508250654369215184248965856427620274594139226510311885626722771913189194703536232160523432753134728388577480549770448739598559318814134829831136201004207419612079966820310803746620145565107323069635909820793621281263513060903188066956396258553302951166505818382290174111443698742350558720160590383210598220346617972975502179654342151788920840612059491738101002023784387978001386626625128750826913708845803231838906505422319596683731387121950765097570640381086573144431380986634785627340590927239262943887993142423019674399871369221750029890005139315815052485334493574784026944840316088765045476462022069214920386873981695169060803597800474466628907823391978747955986328296026099598132372766403552325106109272057138885643003060484639105468563398845232722819419505901209179069700560975426284684304598456367845648921359846768032070184797631046920378398011866411098164459197614155234048254885819486265623256966874421519756486938412329422387437115928960166031381644010159945924363403356965751031583749839352957227205107307529578992863044914783738712154930567751682819274253487164816213977989754461360613472047671817436133098777053028581140057004140089464623263851880800984547584046829901916294125957036323199806015733273434464666551573112975924166931215101855520400299452854332379009447158670401528964405747038277545315681586502223515355393704174929188143937393618550330927951880356098793903690418733600133997728905038808367145980059666287358626072955931282394373542899351891069446448075750337360519616325987850732863479154815583311892453873519830519709763606057592668076491783373148968851997474781258715338055121350521461461985961316011903283283581414594316852921329813813992520758939178645326020728129437320270890681663260344406894234102686835283133962653060064712633437749012140454896533919484687614412366956395608484521244458837662320988011338543566054075520653744942612825838434714216144281950242049607006314816329810938163005690831494688234875926994236135305487252539520103605884006940890388702366452761982545120581859853973496413823410170938257293363321894856516275128418236017626498041468575407025230915805964423440815366498445939271211729600731302993254055480112946094133772575858934983231812886273706291559016666767328288419560014701443153940823514391881569897513206350938438002965152535673040379647672238702731616490543139228394298830915040278175284429564386931550923492674791615396348542886847067793112293104337048236943717922015256482808580760934203670623215142215929544490357400545636867647820188819188825285584495228785302265415424993795544877225216731151791255521316543524888029028953916142147566040749422081575726385997340659025014195089211730226017980461884877947343677317884085698945155347059958492033822650933312951456259729073908912022350703893070003656784160888177420618637994291288078679645338458757464937208288693471633168405222591847563958326672683676503383929771088849918948275583620052486754909507600955579911322432005412832295903698142822348322265543898836686212324283050164116668273728235751632769900100117563505365045849003317524181554703590710095844385336828855035363440075134902769966932649400836815375771770069655799511282794690499570360938151388058192896376271935428490076653750226326640502738796731603717321974813689461879277612718164798468888998882945686824047874181987979701732963339480992230236314658103957645056851691982144514496616527950226401151224910200677927677765492477594320172634398508801309636742840246826356013089965248589203438803253708866099029077787656648441033591865635622014894923823046076851128067245545252208264916030472806983592783430112209322924209850588114463221128142599260039366294504426852677693175152889062656398764173641821400971760357960288651776508837182863846957111222237903731089317862534502001751602473470979163343439917853095699660462985234518478323822101608628628909721466745992565591649719798209766080912785582772641740073026331977256576107456984032765576883227503357912861966224143725086222368820162713480941680082872925757681273698485185738837479205851222605573409472167611257069532887686796086209172221905331763222111922965486594730412400668158815161316430232589429993162970253056494431146524652266698718616721586590013837631616855054223469659559054735392094264044722609592613034024145023802627380204726156933441218834972322398720275603300236190045405520766902165548822031206861322823199917957306934078896251751938197237069359196484198792909600131853078873761227318882692554130514482638531958139694702815695482876044939142422970138203969464370436097833133766636440773696808723023339675259941914668065145674137215409120824665357257601408752657876024997004593373650138125139914078350068295345980587565727235720162781346637288436906037433402330709844123705359448726619657606909329725617074350168484695176162798668854140356471119094634598403572046124433360760360415492514902986250109716994475049883426533616277356040114350836210844433865313360593230621411826419011443006002328199414130962621108689153754886402667081663671639434828294282052198820961804746964482147203614013918202771453515413790080034473099570841123169162292676677472315624126488407945989664426076944475660724881262894197690669660697004008236687412494512961402495333652848497606807489749225572702158379655619307228395128595953016130788371035345924205381223919679838488851979826821925870241974613973973794682129481673965071811610554401455956511101270263720563176291954018077143093219765669065461903618272649183499067067339733555778017320182694444191105011014832645011269515977232675465954987827509339245764861119868039774171061420542229260248116777519860028541241295073255889493128241805746621930398486828981594822618092348071952644073119493766593176708858989060799806714499475977099595558265017430687392562753645049423359752538136065088851336610708246465660158331292094248510551518686663152915064227157563612305945737595312513797921094747134693021414017379449271764761742211819850128068822267826739770791527563308321878898451040245101716172318440193312966022365936707469198778043660468249523504799226121193044063420815155854128321693573674898728689389804412255018968203092174021524136229516856472961216207873690559551517936556701975890994026470157793304602400078122286698038371751459305583233884865308827483696025614215475328893617329394440367626871332023485306009472823887078277227605388253082906613011866613616614582169746824207533730096093508214972265825514356125159139929828349574683176367461586678810069144277740526823388888064730522359550665693170803557641619790715331237315540547785893803180334516470781445602311150373470266034114482359171411737907849295901910203640747380822264069650056756851873057077696909467794768805750330143222761166627389949482859790623132057666712871794729559992700693822959998763719365678754456219186380709393815755880356602264579746767781871960402364765170033290613253852873634739692323453723964584349621548910078000579230085032006757020964123936422031817449544764795122424539798746175128451174191207834497471781736498491282379308695256674483619892418211735452057641932287831302026710630431306598639762851135203314420722679324022110345477055645775795855459411831000788406442387706065055810102691855286083555145352577036427297795585362282432102356269383673097156525146440306735590655678571987238266310932545043185543149855637418867537740039882937833452081900364013712109854195806120222740369567982591571423886002789488955708301205014903049387573006152056369999818409339845154319459797021792538639656723838125670834103822799467553019023780007917466720934719516064226930152783916373625170317605917130771270478471808883537122910651139583295470438065754947842382822219930073630067964564558906978016966189973338752603352190022090029874699988230350065105727225421061181486900622421829261730446834454986920470838078396565198510581996183781655907694850395594047003040766353644076668883130176812704321563425921529483620965695654777222917594919719532790291296060275665411688099429424186993890048040114780942600440241480143885321170707299613003385865756841264708628646342638683511576584962795733765036824560274650260960915249376420810206538003217188432401827090818805272206246113005015433435024956524649267800110553087464621373012754962971494097025407647131464309430931005296527482964185236529982745451724527728528887527608904728130437994372918637746785590691743170481509409980108998123825058319631448512445744339514012845008822463944533415941391246120151787451234305279115707627085652510245101886753786083480189670035233958573605802006665964987803043530204274340198221211566679921860264324376379563784516021328084500209454318853906334865454986368459802406755347388950972877595019919062251672809898389506887846763860620818007183983899385606829202394953179096112739277433902545950529766560095849789037115303919239098535084103582591968540711104737298343440732954861874819325503249123240236412537400453517206875167894085130635995563902757609106291508213522284360063224078818275546371690311090315250157264198753135235780725878845431337529085265744662431527584018843961331343062791462342550829862449280304262863578897093352137358405165987421291927385613080407297208335460415942347054678438657918345287077230156066627720405658680911690987717214333312644203806159324705490353595146510170688586676564554595516683981155177330848336359592898450810843398257640873623273238312711199086500857662151787301809227161007729970804656527378140000667765761742659551518067295077853847826298488637104310041298772881466709965023076422787242041025654100595510519583428421232020427175940196033326174145879781739165355010273800657635871791736802872740673605726557419431947930539317440634951881262759762178792068641250621127244935265563947448159067103079516277280727298486529581172810883343773022791051910901845705416578428562879552083248667357114295837208796662129318221031515431605542819709444150175469123117001355075578924346821408973111809516133131363622592889398319522851795130930537670245084336271252582423338277648531445555396883321141494457343235318264703477914558930569157146653418691104438817564219195667711599707806348720042918968763349368622808057638801101703995516997196353512794065221836605462500723278209920229861760308719051294132263828164085627930391612138361897347438536370176022476405058769014690315174777862055323160036470510833177854053690782104491084190603323681580434023137990816576235959358000517795682574535426144583519237627903380066657382053056619699176016755444380980177911955206944438360486556252477122538285700856038976203946682709967944975019671403796537202695032283680261715040588187069621037326319235355266077205534694284083974387269215002259281967347711263558099198967918251165066577225729568900865981526552379303646421343801082689851935728797184971532264792368377695878820543812388042840335657181710070836285743672681153520206853100885683107557852362496643136934899441670308711737983160073311099955522198699990993479420725759488064617521683475553710745358092987601266482024765015334591093403683304826494347717691682626495683386484188894204000670274436313195125846553971311398175084458541074229413578831381621516231191817537045274558055318036745163705941618616445886898833983421524248024664702273729691035988485284612342086383124859695194923050286558880579464896446930640480274920488883060660210336377669150600628331377499872366697150134699240996896404458429597664890389818222806862857479945701286647471182656218034542641299308371350157285762772540289946705510722534156883097433212727278454933629546267153749316440446536121175820265016918211179586744223361878572125008590104854519286890514139641909299057530881294836043172214334789376801557864619533077805868699609950570041609390668902867912551347238236800366639151962555563745615077751279648480450285720448618817584068738369347663285769688266227389105830357984111205423277334014904351065742955263297492583961950974855131024598475201883280733388325051407115865421217356949186940940162368145260649664347832845490247904783039356650990817846924697775958543292453458339103993268709533168347388187916191939784072838751585458168861251345409472327335306028697948620332279975241906453136090718198022539012918068512798761001752088762562237309376355342671932860143295616377073453532960290554274716889138329932155419488864579481418671096438803837053692796852336510405423296870503885947251712840428538543333742060778597874554828809837759160195154422627699229815835144995815634884345417913671227651582583495595180482504401579699602217220184561872588234033329741627422375877313956965149877030623997008827022325418341066292848334280264287224907841206945338971970842618573532130855064264987872588438083775182546464176563757802221536801303086486282163449670765198379706284461017464720185949405976927430070276649059459500458338866086866814991943717727378547582800906447598083490482621166699087437646522733649218474768103082168408845509405027772493394095823870826774170006851829613479639459277819551642803824910206707294505859015274218155964746676165279943355063762614763755196039558911815840341742088251154154604613133038673802967892376388842595293989639837685566551869712045244474303639979333464572697097899221741148747052516209120153530731341695609937862851279281277303887052792229518629108549244433304757615180559229949355993390595346717719758824796038536862304178822428124071549451431886842001014020347469101279218690078002125349300238336459649855684630697374436106926342347924995439541613544736014977931084088572437194992867624986530383349439129570336563354651515486678114893708833163318483538247424032687963058555377090376463743154790075773714439405771725289812414657117119847836939497695998563911140222559931351542655067694658044111244908435697162421144115371454034767814276715133712444501355492770034902435221639775619702910440392933598469798829659451083350215006928281707314261075533982108517304690298949395630466831266835150308053059971943861561242224038824290571868114938473372449633107393211189501801183368781071916176293128139567464939319477483145956986179564363991116634171297395125583883998900888388845102125254457659344673098271625151772994046916957478107804140626225871901300123794548556099645318981849027634906637081510211000190221522640794088539523523051539068406539910832680543289501917863990535009985675523488944971646663014998408146874825331828339991848710859813677054317044918178886541056330395591495972004523491620908799626175998037533749940068293116860065880201991177065503992869824842415917751722454982021342355348634371120356061785932901704192643746927186558123422665471900291565542936584433414048997873875940331295806699286049053632922488733117967125266274104209389863908338529511336171413436516068265824180002459365681777175472907476839694045165030295166782362668199512701128459486127023921864720784421470682319082856092431749995648539802922756066405564556490766184759477683533335644494672806748893688330955256116896537731418065810486545416608846155734023650404950486145797378088552290553182539161584738692925148923451484127029777403297911977113603157898349577481444730076570947230638492448875057581251329988605804311765297228296602305587331522764354709602193696154771322184698711208921314099314809222079629512214558932681816140212036821217467979735088697914589924841812669179858349161705011403128389631559893610541259775393923872957469778347333327438230647739807603188342977497955805819388399362887847352011100275698209937309010032388393004104187210591515698640789856833696991464269221195716379801532657343398361633129174705961334178168906304418287856721205423081352485982667795173397171224243634281038701990875657682022274281083059240736968866227437881273378813622930690009843303204125941245887698307121614853626589753817631531064877747521903531683165727294663983492624268284405717233145710462528214760309089776921549842883499914567614676708119175720343739053540236180644529444124130871682096299827114293509412320808784735832748245582040549583936592009977711502381626810713416224166544581757903508080275652000618603897429164466301192619987406869615368409831876909412267741995500865271639202344302140332758181498227239037367487904411112268478723765132736133888674754105169237887808083008807693765958431775868743151250681875358469217437688811163296088660981241941502958118403759921546585031763248458085317146668522384845104379122169071532040537497132316398726354101206112739761148718993599694623032643929750375511228497609456991242023395699385630854299326202789935653863701456144071180346028888399514200382314543160280963860141780996205670510760385262615051980994243687506438289060772910000990319846695776884492433299215102594539403363813074777512970039233814241922951043324499448386338142187664995960598363546974841599287683744255011618816139860432322098690336278971916708715955617051681207384593491601576278701954338757335593895324629276759520717722636717581632724092868005297180972147123489888999683614068470197951540145553218495549149920069631372805222333450577462682899564406412196285810516484433032852213012090286917352883713444173187173509746503811830223163893521127674783181563215779988431713851967966757034981990905017829606847610686520708860609033202007108464102237409070305405099741192052597143272629388200616269408039091036553421361708182409019091940082198525461752712445134499210233456053266091169931868176929025807069395250046739428487033391253838666298728995443469645399310571844691649758355668908612936273643139810593209994430172906194628241192680099518918005391645952180669369805265211768614390813803899707858148474810432854195274601485822371975773141496816421693345108409989924362198992278815989422480903248434023770990671693955503999655582492718496872744352328341402610765310307783449440969858569565070596616904562071942794083873025101290883301845145745512956116285312432795270147423278340689070246384584550539012171302297651702060373058345076672921066630513033750507651749486542943993968164003253363062864252539371853425752378516044349622416761761415367199621992413668238352681471179812235560239679568466713991617702518309203584313914572205033717758443153792070421894097020343018288122182976191960298292745959608274982674057786492630653241845038771629907299450159061887253886828072260233038502416252393338177324728622484741494598232710665240601295240459347773181539909600530518084721941808594465567496746948671346490866746065752677178719315623103948043609002417566331964739048611237891478082730876677498171719520557414989474238956677970914854174472606682446490902492873379661712948176007772052128499885347670331221901364406561033759832531227086855563806430697945432597500468434756753990099756269714652185413618735130535631433081473604069263853433653258860765932652874922245867182505825230078503843864329373927886137901806405453178178641446599887365907160110418182868598531993182888552244919283845059509096821313506109784737317265499053450734114135456640823646511501261944746676614261789656378369426293181833839747568386059802975726806320702498688404966942960724905919884577182629297107288691464637667636520370147550834071527958313769724528642761112476852392947608713335315158989684206144983855840494414383438821767899668255275346002382263713534622656256264425466223530807255442811999147231292401272268083730831042257052014132564474014711008860560878784041022069626287835922848749067324833425834298498449568404338676562493004711039011571672711043671415117212031726886100213832311300786080530003030549004670174881044108474508337436629701902537651580580583027352272264838024604567259254678722900527267603687520082626088901470730726362998318952582702289257246205797936792417999500685276884196831578888136022281388610216512449820372580101869667660478026176326890308549569798359499936798295560341403666156876194288697829750317828361014456760543940067038681028450370813585182901673197219690997915211167809589829850678124665195159391185774481375008752638603717352830431060184547569207157204892313720048680295281219038802677903598969935994987493013980491529573291316910453013620813473921062525163152433269281583365124702490523733245761129794779698301108576771998865950640404297632766018006282353944738812710609020534569170657439499203125548487173845280011916919804787716556135707576874740977364478227877282156332711939356576543335759941517334138687098269204131765277085561729656567555484232698630171032196638572947364394410844863173055137150956839689717460391852515392508142525596962990655413275655306957675999996439526285653888556193374106919806023241261559782943132124303915537925926353608378837324794149041649447036811287616152765272261075050820654751249445790034591568043960506493995663147743500087400325106718998225554652149583235581011610582950167157640178876645443590173527582063706644285532934243919103847012032597602031829726600511299546065149479255821367257714075178831935147486515768007116497542770564069394524814886977813997975944272542576190407496843039017581357904450248593037073278415193324763106533075677328987437898374738420431600636861685821024073995757685169402917448405560858918156911733339285824867778372710645928494239128436536823604065527360089990330740603888522416987287927556271068470163410315389181367981307717443191230329834152629052232691886712955714116292895806292217102626853959182094488227942206162910299871073434879814762062514135451669821631257882391783808113101905044186167360034657136825400377212309470529382750975287731624451261816393734810217473419981396769494740373215966268415930894046650413841694074635560887802863710995541424411608312636037846804479035119379943805561418960895514698775346235931332183914782996567891891318821790365843583639013617659445495163576982042708569580757953589244161224867043765533815598776537260903120805191561417489866219124447446443593047431737177873444756276159228610418729114734423340608007746414850710602455648331330338728600946801262599184588784444067709053012383775771568259150349386312807794095180323971835864808835013011070189131963961814266646707215641350653400682983025762794818483679530620345542833905946684796657404815936317356234917153395714191192780177908343940625451355844337537517727770267085714904725097799434931322117475134089800656937289098947601942435256725770734608751524368040993818347171156997364687770258181270364105468549170458575461258489031896981466168800911436890625493495728041210925729517394157774831520924090633870757556711254873481792574669166775945355392120716670450271810614511010723264792301813745364756316983414448381988623826035311288215386020364953259277832125907582571128924257290865932084060154640258652496099420665877170350641951937159380200830167753461686444707623824249867643741905163103859660762720000927904286473617647607751397691619068429930232671349057824528375045468716938773686739380033865088502086328224192123731577193388308138515910325832305987334982091424133283004316057174049930038747577979243666348338495971161502667331551434150838906122741944695716365666043340718411775935645796995319482361909609325603347148184411234181372809169616035032961125385290045743484318441139222388707477089513790420501757261210678137816831353760918049731148179444178112535511594462128692624906518498306464310266849801745906424953727629709940317799706087538224015804586012193195697680325938894884732657691208004851015064820773977431125407624890685799635627067698643274622566069321167975428481815405135719975276665844975512729409757444565921435330480348254244129407816612375738580574006156794712520405950656323660873476396016118923176964477283470397179570095405675526822062121011157981173449573781406471111018831061495435749662865484944631520273223960326740161185846462069952188394737071416555854061254034302368466571117937893815984650572410001848845557980287749389681301765979449308902222279364212534420340731925346765165142629136453236019106030698608328466019974745246741559820551400272385271094699022213647234177471976986600508438933065074102775366355886038307554893710411270516841756218156359420799293300668241135292301966079556658617486449873646294666332491553946163552918023088060831635230513220385343629068068299064722128732619626922440825088367733882181476312607099603889729344777971220066712356381089859728271987515682167075307694917193079063112794381660623380717497158233699536639748586699754552770837845665661002949909013566637032926006426500844593173807509066226316072257811049013949158998148817453138094836151974621013938165221182862980008518083755170501232645524550248562487284517293212333039285547489896504205875817132769062829283449486048724570285263448904874005134584668076026831690194632037333599097216406965825530496846991548543984942135306358568141376951894634113842901283514337764372566904272364345452449589332918260421852366121427959119716510384106833705478215469415973923467907743381328633848513269217124342933559020660032093160658910986280188630839290758586352573794699850390170773662732373410071098864005205280266124385996311576923177053141130260856078841076429992698286960119548636999550254443292740912239730192258217337954415194700486067386607260405636175921698376235608413371381042375543436170813268962574562100988647896299841975561909612001273415229173290818802925355512083022948923656974941485560770218825783608031798705858100786381100595848726545975432681721000950785551096346157548202119012195072189672189781279532558669630919503090110781876695014309864126214087272515757119229670385317989598323119562598443330185136725788749677477760544969500571403220442668010464251358285612765136579196006413380581660994791197521541953698710373336138330720305100591693946291358073344468048484966218763078378667454394491541217909424482912144143252746230384786193834668940387971183900846953153891148494388041592356115050653104933016344675399171462577910364406987474779002422583083428446501998981263475073023744215206487192543321880666658376628829271161568028751773713028414979789022609247518104940662512621900445697476507783214947737993545137285185477483948596249050576782162823853568299444085854938923623418921201915946698032794590273073761372002199799244317382281624628380191382506896366542808963096575287551824193756049368941108888157771522270125025260780586417364875887056010091333110679326240374785593736623227092136849514222540615125876110624570834742247351178311809952894526564027866845754384106792115058333577084561264163665528142276282837078360851830814808159362209571503718195779013857853239147228629270578889211601603186581363818592430278661094884617588223257753988447662609850041271116626557313548798642535020526803621703974728731600192477837423874208729947615010022052277319920687639317393088474341564274613991651415907039996208592770128108939066044286263157627542954524145057541871983693368392891063293399267477857773207323006660053215870191168920755591090967919946434255114457608964236581073727123344868282668055235427774196224671517210503282334027869552328950377665652706544855703344551289675947640797650900422327623215970824120338329752164775790828343664611379960251416588631776587328281992496155193770578803687541701981774032865014219097082843683850325771927308747406736758738618376846521241508765436204565038083434685484063000617136464673091654972684263929696893975251858235058182083579996202257368839922948805927548785266734951785436572978648889500859401462443965533689789755467190345351825359281378779465238966911686874503787596452812596479763358430176235522300970530140880501626941263205602397381911683796286080954593436272052153076683565836401513222928725442167874422088076943539241237476500807829285844458364655390295502477645500464523380687275232882411355907808648545763249778795908384704095850606553504651320407655385104929539723442799194859121808305008083390141321571704162491534255039928416654139089022759400486444065020985343637955637206631002665885674400207837882674719934564452192254889816165758864405531586503816646422764258830928083847178217233721848201703724680566899826306757373243606979353196925581247903113070443018301980087656066041012051279302303853041972494524577569249786192536367677155043396692473648249303815801424274442395124087585665750373216593825461098250347306480126733554680461679395590779613476624228516829452215594824158013746178323625416036878772051557588065177040315344403359061671808137580176962647138416832855765601363674496442709527406416247524072221592553191709617252096417405792026524174129730995672720498184954691472731237472321200324963700094812953394301839989187157636194892995734184562547956071269583738769987735700196907884154422024134869419525449145283673120374003096316155178330815397753058582050656908233167044498671356910525169665369530071017803498423099481420512980647452803009558668681152457361562350652286344780104130891099080783486213299796698462549458893402892419343845971798261243538023139200565314818309598485597413087554292895826251621020052928363746268973173300169528409967727434148986078476292751166128644609102040835226126380816042746719905928065879208181344380680394233924339943469730494586996033285822287985894359074703366104331322181923593896298948395533752926648997659340459570904316699229705208432964485830273715594897554104841572330726872112708213495410768436480130614807820623081601587356110139541910257268792054010812400289554336893735971604586420285860289523499527652282429446432559816431647684192327233930945984486534938342210320284570867680912448746319366256595316388345331156277909747260779004932533311587298356725667571820047202815244048346200392809743788700152710710736614224660978549005224146342451805690985475065610051940643962450970406754765364426281403453261275675035803728927526338371148763237845486813814285268137509689099548124113551126914836666651324983368969631439855359231722504362352992960560898554329921383248322346085716082605164077264612000762561214055166288926837462556551919141925860727740510568651339116003404802566320086819712950003511906526546504199095208401686760911591867896665904899032068571364746308354336434236850113669245281899582895314384387118944542156199791762319423844877725916884634087356379932626897124355563012020182108372453681210549311439952944379592280719925831779763892659891300371502217939530372557254790616832949035144294375864929891384902798523590955258479102758610448920898455657362712677277552120028402084534597413521210490464494301909359067382450090615805859718623646009615034970780108370791176223466758959333362709707241979789015116871380173806370812767896079675138252173357802134980250521527406019424324003561452574847054062124945255671501357220961180771192430009359196696101719376532917083290200250629366367849943207477219543799455697865041318942644982958946204680561091205741225841859311045811684292249646442833867372031217558771478908752893895569851267326039508616020988216214855331841989257818870660652511787831166548555212634416094440953004724293005290341163163644787080690257163070084866394682230661510738954311142818760750174295123639810784578766388079864618479245513012605038957225858019099227369419610595972154921319568909953989727148149440621885130265492855140981640478747769376789919149986434620213089993004178760772635804122968667971311736085533232250384029364923365782204764556897317808570242245359790352064028353103948739308765656338720373538510737095878543750770463820349512992635043541560225662136594200482770727975827313452416659998075345510347309335711137889930721876406936520495374093444967918482381610345513466537539878668491177209547735425053188063357809120868173673174480198634376462651455975238112999107221112439686534487445953243229833348346956279804466687276469346038663189251646301008165861293033995030134984316560106498452883578157433559182967267055602128318405112049185115198687048578285106343772561825279297256516176437456546844686272097584262581336882653078636387682987744597955800769132361717328510235729463222893010589894758278753476535929180763036615041471083155364364938120764128504688903776517134710970476973926650481102482226456541971296370716721917471014881201364246131043206584439901911028435231444489425765093021845522577893627155661762344050258803655226444933116173181719695478613515201542762413837708982717988319485257436356458081828501833985540628196701153168926478981242181844125596450066589146154157593414238404896222136465915827562661124039898730052504477236522212939792283066184486023146033889930096642461565114786749793211504588178868898158220704214739243494197954353322556681396627903444914129302560762010742999093040618524626308481782212023633849586661278783882787540745779210393302763411067281130246606437370921858271860447853983442248269829286786522505839451746566034729738328855074205669000637991743659194335939827929219201382695153516551860548722149288169405238928067558959600512340323372378958298971257723170260149524388145772555753752824683304268751642002915174978682073505895012969872321321607452021925204327633229823468386846364949097560455499020942595333962837145717414497136154598300929131728145923120498386586664868656848012984914252208130393630953178108129366487192670247921176549989925239202344943446616071357424440622668708232240970312047591822892021998403981925008348797797719339435491177719742034698786574164207749765365532714305133608159156903656245920736901246107911839637286489960983040443405243067887762301338755878414837302250437007681419168184045619105177961940252909739333295824542604791349288019374476121313825619154044181528658215948283245838893848690848876740421964509551819575314427450675196930905826634842041794622553892372164866857569684319027698909077771914289848485583022167613837860638671362947779983830236182591138152973106951818618161592003753154681872058329365607452887923565975912032146342634612892313528406327831271340385123388357254021168450907012864843133492208981714892504334668101322281724323850536185041709244661360247139945446017556492571753890405749379737488294351916516781929206069917687825200389102265066496964102070997197806267167646153435247903674439059729933033568354237139807939560926451039331471354721988758814651017099342024006579627197528176378259465491142007068370708084899132890236052698591316342254697769167514124809119869844077398568627944092386321077453316526671399443699850011345338449753177497607863716023548414269352988671410852922149972818218423725022038852789666703622558522841956445009503012919034806521371885473281008793079258875572655545675060448444094715417890499465627633758468060388947972144244330744009606239159619075768069014824853324381247728598709497700054570091731076432114031837120639057834679597242407640395509464343491879604227526317852553040923708257844364720808731738672528682775992166105317880422615076020184615062119380417893664385003825420094567240333932745625519350768664787374345262805147004952406627409254443209655066788803963254147593831475601259725272515731958576367236795921455975738417719338376479614279286601917859198128058397600355652558883193916414680858302845634553366449129897240238816725906296960857770047164290904280642757966735089086590477949088230548956469212110223072663435890924542992281055472934632575330524440783968113771673910296513514720557442193777001181853850642981130065416804774135281329089028834083465483993568703296663752979676761664109726917435232667563231626157487662967601567996419845223240600687099603195787493013483260473306824921821026374026498245225237258101382424747651108347868601029374397168679755139832642034769927887285161112227035605539376146509882426363892938233517014209449964102356898268056692780202146901781360850838921710109090153694488156631726184759650991566462436991365274933534836993214727246217660352921986665403221100877830565362454121479386891337981624962478092029653503280652738035969750183527859045423261264515901946956758197482192595985583418430191746049200420534509597239708570613943320290252995896468094168581127684114891862186224077742609991028973917949167731773050325346694762545690641436934733088251264288762090523566679419113349422250577070870282597101528557156724244347651086283953217550951739488108448363818561429975901031564517913482066713901634395171936395396540520539511711159470471048831306641533973108575345878707246750180315463970384337097909636347390060930891146957793242485093518380729151037769505059593844322260345478660302961672276734440923441901872228875406419069946495841560136843618021441804442818356352924871296183953213202832458678551148585571605001246377587714282592393991569986872463918215007375507409214807696538860205792211718689235480678861367884860293037724629229716886766549148988685180473858139568899386839963651722734067573303989550846249974292057794590419949632425308591744336254951900302156409412038511352002053369304756745995218827430172442657502062956237677680180368413447655961629856489717737749124539684697029425778164716061859124115059891754454918621022565564945520422427203114217896299861713042814705904737078476405442213492032998343571499324240965373482422433155872639559363195381978164080887218227006335588045062569797009181919006330174498878370978007387162793728940524279103842621801927406534520500084582881648123683599734675224394287682242055670025386397251175237430506618797071885685936345109392392976029646644376410456566528960227835860877696956461640919214886400326653751081022663829191159642389170336896290379035058618737088952686547827160923046976398489031359312540698918921003551105462895934821433360141462333763273530281694606574937531917670502725235382549124973652811767991567730619360207543128976545715771421343411833559107398404476573625389359032899674194947341013968440855320982827122754854857348486584853434454116943685350514744276650937315676466989716299675977162098535025624152011341299223199933938195704291331136549027216295974999746755411663242728648179973004073761844542942542824242902863897158950987099900027130330527542852099078669862359205824212606810099915482611123057824552614624401115311547312856781351197276921742177902562765889245568741812081072276617755717796926283634577734743053046734451940623072035149776280487579442210197958114731738508042763372084305563736431230251862571919886567403432404676849754853499467428962926812824661660260738901395975393667561354975030086081630691124567597974179465770763635720310019199879421127899282576488623858345577187165745250861711708791004636309071735519398543587295406090549074542271906579319766118608167710726785815878033310647973556680382074544016724086254153767715325122573502242037639844200256795398928769118078085555299482232055378375609959065476340817837030979381152428572684630095177315477819648180559282518454987962736843569146255394566092395690562447992093190381074708744071562402578546309084459910446911344462674325803456572495495457849741464842732377969717448385680387754433517009577311053577115858437607195020904693067746217596896675666800410492244851517829073308895524429696098082417514577518796252633596187398812983876261372165514849023445526846239278796088248020080280612713366510760322074165142500255162228662611103991984212353523971220508866806879382161955474943739214893101338627238808081043155349233000301568318301989773034150222289445390317032613414247031689731185933590349482859320517345065775042650964136870811057228297743339498571268106937851061231396560896588171463524924011342321393940638109044952762968810729331451415964546372994450957178018148389725374338440895015683487102570938446764560024071991865889650838824059614536118100686712936090039710779479485724781950256875712281528120585227887464083543447085914592563882755099128607568078853185698624463935021291645617257775899902885147603290019341123827729310014285965358177003489567011649468013042693048100053931307299402359017050975857968017831666626134823050165621281507180810016755020086009847618379474559101312229527334919176699311863793867555528843270144326483430037374409483881068232286441034169684287786234637908179553118870397371264357410407828868840120809835801228732289060351667432866498472634372503807573398383964172284368555545928746891227014394359001115521534191337996847803551596907803141981111547133512278726004326619588566796826493818987097632307723088035497978256656066070765161895663099680560786449489402280987791568288409474781561088986765452482641466247859533943101950628714456301896206238528703934466364996357513523654366729771469714651414060588457710505334265679524119413570263943508758808694027348909918838090641760611066879440371547550378213174207490663790535821915267194024922206221748109195384905920014278428994308211690765917036453141041481254061842234786502953402568824961830802818615153334169347674926232906825807821190598700692116464780516534210407403628890239056956438290538501319167248097607364324845946951288150607131518741036281294432959491654350328107142501144816977391356806754448853699501427483336998998154114712994462800704871138175591023224331767099687201812983887887924433268443396026978764798085107129735196717224260247700949023015423457504787823352523895231072588974121641089712381705035762344540370931421880297267377997142252954771518915905203934768271806410270022257241295902645885368966821460291693826659288341747866828811160446751964420844198145862977478749285772578823896167266624640795729724686860942931780863633831195713663965687421458013855069086982802351687423465313088818335597270391878907334690911788281980246131855656295245952811090382739495124833996603956048268265482210770036432068606479404840884226557380756963682862575667714918214802767235413572331444616528210170212025743260838197963567926941107517724989463442014053130381000200360079426492767052325198930407956107179049677672735108197419401370167652138643610708570051139485784309280145922865984625306215747760988873227312147574672594707526880524891928570419872443493362881972522121824692332803358146683802865101604765030675116290400428207825544360695908350059124156083953960556696503540815007803981686376698795825706829226676601652740800651105871685106022217234033575571557548365075947360578427551521076510054068177520710214385569591511570059266785579070404314546147232171884202419388375113824361993016132554550829071351568673510142816880178541779279923798264936718512742779262589836260960120156680473980208887671844086482349845073159015486636845170577086129707144136762147896833856184385499598616691632686364370329828551867768587065331413170949669198257234255737143844269962111092348436046871022571484576205172139029059115181151844260370851064266348400519441402954520371908653133212345983789199503626208801883516550468723460193564957365322004168322663183745717656599167331200348809359410163310104775958307086803705018542810989774454757335138248405250624329080466330899273378891136699790562391727064997557805245971000381923506454160610011330942596254613102052365873854239617836580738404038560214678392139630367409306539101751572735254729064129346149446045368095887460602154175456504277907897359877483550489813596843015218903009559328659356384692844916127748849455961442401132836082550107073561168151260640519658439334932992768126088355440679435714282375985356603335604342235876987688768661191584510527028140336233772297558316339702085368010831147453855708250876583842198960499668643020964710516765724470599652038140230412647552361675455547198277906922729020530057202038710533359526271052524901172077797765975488636174080760901557794524142265105285184428586104160986366125674406217546587997690240655193150814027410600698961824805345907449557383768997336778249514406221256511401999434599421844349531098727192489763984484234012325843261166273254633528584439046895001321324659411648788017223303919498225027087360089019184415254494040391231927723781403360293169321990518037437009754130512646837537270823490483461981614295422367158957580272855972279458826100660612064639793082322760860251223951902697265789379397053609133455570193216801638653348497300223522882559861114548832456120837902110301347649231893956342529055403022139139517909939857059870458947489169596419742538296468782057056178655208955290745953366749972947017384031483145191842496834295395551300129366396301205380683879974636466361012228027190786220195865945937826502000988079595915430147818016971053145968725057753681499110451355229683403632072021272671911717625788907739541671851706284963715882806344042759375570459988333316332436879174966809787666138930579986635588683010444487109371521965758986409020590571229522893227148336947745721731937729719033200973820664557325074049624140369152342002409831122749074509003913172562572801937107330210615143708847802768143966553076419403194957014749327128242057765659949415516927612855002935024988339817441573193919367608738883894717486543537551711280796277072296350670797968296225335234370861034204937749957734413328748347001579175614928518905048404577332384356462341154062084687878322216040767486538920007208365836646031271069617800773695602409965317065939592027894068237174016023003292124755481985475884476186701347244276659029162989405672049560700142336446677518510748380733238132812260374751870700789368639758635979326293697721171836352472809457946509286361964018295244026215732951248567430171585731730601008562186843668607246002354561696361871247740474378722811323690772330352785976899864474964774900504615471341178777493012576793258160941218043187612481679753481520265721004217688565404652407495245040297943915931212418051754918367948918197757577777159258961805541076004447699109263782946804492090736607967017965196823513346463162909698650086840026108844900398140447354427237826619799767237838986699114450250269569100113959382110296494969586211754825159205585143273321992348192542649123909455030808323182462784926421083468474538982344667045433006538467719812572358686749459264523637057766392259316519003102279888558861079311521591993361205244159711549245092056624326120240368351961985542979662534611057261848908833868444769946332308781365255857855436667629492957634466822543283300721680502135234786617768033672887050830598108665300968568142856435458370145100742006475234920752022443001762101614866229276548134729847129699226973043054368235361782257654482441261155523383645251087791526786797911513161719711155578226033772264426024982294168702474852510219817204122972098809501186880346945471189107806021394769738851121017056872905610321364804816117511664841208201347171707772567701914542549120313708251515858641032437000231146700020059155816111667824788099267486580368475007568538763956343085038970475413501764054815949445569908862231035316144915846435722155411815882351436696106185908725885692285599830859223885391845101184633189425285677214268087362623806895625417883420047611560362315794441194573930103052458269645442342869784069273524884689101638670795761626533210399574807377570836488278651179362588328128276125505861803264858694563549348376458348778950269203887904103443802186595171167698813406718217479009710272896500705250720687465028841841533725257323148261021071549568039316491093289060445921951269914426927716554032347861652633904998923715826194068468164110836203641130885303887582394002408986871494386064921432396506633446522205537387972262480683609750914157336072341714382874748194475158273708971589454638281615649412783439176850001776993053849555776502690486771006208757435832677077984746007216855523404960241911803188823151417757030987594059723727086468983822750084327104790893933787622785335458957756295395707380009312553311045006066240195384039178328410368217402762027855015830209364971801076406048120594076635477902243906224202150176636201358904471812349943760131976161261919373744113380141028656688367869289293953397883679373138509169864793107938380535512746809116641336782018551003302320925854636307158325914627057809960120682671341052821491262091543149199250555853386238462231259859994292788633980053210517114133140543052316083411425972085446304249737583359826677328249891544186033206366363619355636724120776916444131273711428812541699685051865775291678493185654573877191369328765554381510326715812763225422698731723873236242141749202174305769957202881321080565523435149195186891999102648618239599936617307475407346902526453490652925668773699898155881207073957807986887994916179174736917896749435178121689247256799067074610021811503670440338267104705042746102717925702737387155233337736224381790897275788280532817984551663479251291565003580182701238098811249532409503264314928121911319134329895253130108380492862173291140955388325961279656397413740305019681254833290083840434148873577728729415856019239814517119143923050294870576472972247067495065299557357802298445086685867130037961560570947713858050491482677955786008272782871287522375751903601564070376267018369556162728572921432450078322554956699176083331104814194097969905714780616803736372731023602217098665755159890059061659631943881905215010135103587542644986107333591379594868879665730754517931671647056546557624184171583968182532221253743821866889867458177746979758768781583009655107694999076517180530050621333254407175451257563966314371581529632911115689747092580283312693369836486163796800032140343520218688967466776380559207838648599348267979775110588141237367129787424347710458856998704546972485056429043382233286721448412937481120036889354387812385369424766527151367818327148686345763551754955637525187425843370436573383620140828166705084527608845129114185671441498410307592995063556040949385215566419845663907562821915840756790926769063443333106922199944862615299147011656685421662233046703910254145369085527041923569605252821315144642983257884910703562110828482621750308278044522913233884608776480508747665084920638228544483780640034124023506056818125831520120383198495998174497269598585393055214389536477564357467068765676838476592119007752790093003315859724906042660284451553875711945956847890388100962421237426185885329717120155107351537457705729418317813081990833764774791438790918918790332530609893415064407688262618441951993344559262379276442412951774027125416574017229041803698705536623896109415802299731284656923099076555172771110245949640054548142330138075680657554081291395106141867559216023039467687795195081089589197709082032561261171892549099854675413500813717641932242780376460250749433114868323270612507106367726505979355859575182257469989038148695442546219179838148050721791920959250624622837557503572578981151180319310362176036449501006485759240745361170016507864488767397581516765481405041572263054091240035493839219739488160535998711750569945495009672210987312117437418665330376259010054694281083843330125116069966689025683848098501492626791280925994852910123743966589518235571535876137919113110080178353934997733098068179724301410352708847173525418850922955545421900169615154030707043588675720450433672719528016926473537460029003219130554805585977064185142526484241791399979067499401230511903389146913794127638771670653476101640042656721517406316967669315491871340583964850558031431726604208863775234598030226929909168330202522240033979754514782688132387909154822226091906878982249688131172991979219672712822719499448349653676380672183868755775293419040198702135355671493786084288321841698767910179613255431608460058931910457670441116644569762274044621159365522998395742752709335492985531808312268387129080032539014179045848721672739558425238031736277667529238349362551309008646863071206316431600688742903804042798227048642879563714988700441700426067106392738276829110681022873765256699614136335185470012018913305377234605146456323132759463704223697551990825850415996564606690161514013533079051415725967233820193458464833429912424898126293895306935452521518215907446045193362662586635604157137314982852923249357894470167767647641917951607673853161789990947443091312581916616764347694210513483765033102160945082715832106818269108553406771751954340056707101182800807518563900037267711582563165570959654812056297519418688832378644506430800339985154499401376557734271569349802271969418865584483446455681074013696992059575593520587269943528946642877381448444631215898052027710563732769987313269394148472825012130547721026878934674721798809077859038378527378917205714281250583801800575075228259707120643915105564189912386445641523465240055281416041754286595128505974926972150763999879901835056095478353573162128235605732449996204809405198049977067025599690694193045065079239555425084995866910830242926349282513145363639585434446270151551145694662214277775045248056391657824726001017725238048642872008468148179968024475210561089694959102570186034340718335760905109346098277996174682989295352290563420523803731049582059160982287834565781408339173772041087279567106818159649303038788763181003037751448964534957604503895769945295284297633916385074464269923986218427212781861445929508016081455124129614969940039500535557795203935496954974596361824382258798160865390634616741119207300259813526026236738621158459371035032980791495407951027758975711986492537129731124186889356977038647707774444331297123375189498299296056084505847991504896014853667794089971885291799085920321178976041420909130185693927866551289380077067480479688218331842541188171594976924402113174254907974034544821070136921841363100723595569815266113908321044254771618248464847757520279511262805253329082976562001155093802536459265214139863248079615736875185449497340570063799568032653992354013119084389823149117262115451019235314658718045127047973548816399007729078064558119592043771752598390081252898532197040915892970520904577321602993650698916464974289690410923600954854918603924347207835822491013171511011523332883313243263220660258054702752490841574475753471008554830856499138115579993390128303566294883454979996431564278668470326047312260165667109943870932203180335524970769781029278614190020258018243704848040724659483173372255399913580511490026910454955199564581917566307724045272956938425104182446241317460561032135285181994837304153172321868698342649534038882429660990505989337115395853573738250894960623260748512109614728128460196364246801139368562603866365413954725867026575583898319856748320321656809973499569358918373658937885824225170319861065106005785205304993248800137174744276812159126825641361459250069079435821204677915720818572229344253307412579422680488161034213305966882023583370264508534326835608969843442115663884048592511005295824111950378899901079898948754377133271973349978477368764954515374680401121136292925202068885779007174794750509841722841123763548077975563920613636276130383979242399028180070380380007769685301314432022782622691297859641209359054736458246000285523032718977180319010823953318374173973244596768350008991053532186362440137184754040768691189451363899431083922635442735474285046034439870566736786995708457975668141942715515684619879918112140215239093763831064768588108332272264416570828616867121062985745239836645678518530304994384879709727717805354467280498964461870764494238325041566846068985478336327552045750586195541115865456518365110386856741407821364027356639115708971153035336862178206091264851693410702334294987343678495916538281781794542609017014139309259860920859826443227823754881666430298391828545302702014979886062951544953168451220222505917739576296403692838576086185351214940517891458992689822671827988026261486102833096604144853146091706269193361192302526790344851321618603769759691838709439127018326621242137562290433367187354751544028679410569473596484256086764662668561941040284838745027706198374453990725465103894067386114822974850293616811116484286262955844904170813814624109318292603700175151187687128327116195654952738060761435371260339958285164041775399729687571132534889358040442286410385676853098992018996874798614972058864594656282323782524148795507294882835968433913272306767453491358380579281354735249845413025665304666668522875036159316068483340355863814121925434851559667318571994969110862693244550539245668015108675288264955892418845389654277891227803659212253692603662286902487639187123553249927711012138099717494930881478771917939223088895852068818502140878405989071062021902740819434811517395747703382196462336633038333522393005937189330208517076231813095912585133402535595739368992416107546440750127271794123727129922111774363802287832577774128541866427933031222357070793902064628990686272032941333242229307454843882852856787229048757899780883067149236761511187165597876630422653434067831022602144402007639515340172091478844157654973790871197037080827724947545057520644331998364839214771323119711624924364685831024980062363613348005071258586181955832701003146704364738558336287587719755854789312450693038797890589644930777647246384543570037708342026771440144629153333475340239033841463153778505599542045353197568488577183819134202396619441052927444107452238948476447789514901202919733025116612194955868080380302886869355712319415004635053036920469227604696477699811028757279997538259931786006905038408783608963332673651198481183061487330320629970583301187791949003650551349816029644166032499621659670829173457512805668912720120142852012824129818293196824733878308954431608618096119641959476519710895548071316324763718787997138858119980433664874450731608652794869360812075794150740566095421870336122198686862353016628206680784117242051288779873683346521049696657105759743602248306846069651657691855608034973426030954996016761952417777418269550802149246933005753893764554081128678901715515674009548031379438666209894470906532926214983971813129533546450509850146028180550948649525662275095057447703220082201506905559583105521741863731494924508005823101626241805236018441557983929079739130287921351552920454710647986183616605918793951723033761531968633640942342083447927564836062234139038484833210814901262768545154564194717979394715254803624677692837960812902851558418456079378677152639898899178508615745811907668926533571691756940172273425250851717679226151862056079471981548303997097148721388837015648744066898707686579738954121168108339201226417138708486765681338079576879951787929478218113196647495753579894165992097523142885558529967366419778385336719562887225895637163553532026265281569143998791064452344738371128638471776356819967221462899041377072019211329661672732522609936279381071751135405421995250016082792821341364331281103357666888784830684359962350510387649524909287747830507173103265619818250049756265680844014225694320514884697654971907436121517680529776217980872933077853559732531829763582758594051841514548069887260073161843948841725455073033409000288952185348186377944047405066574526950196798030230831237734312889572135422785950288593185829680654958267896182328251948027973452453300778325541987119949976779582653027281444924027085434863599371932426300582163194973403682103037944590690936260600477759292407026087965970971296239166823222132224303415384954112037074235708900609337967647979241755238742816216688093897714150398532907489353749133593013000100879465577243087017064171448927541754352204934772357364646753822642389543462042172044516828198610049855842198326210967711915039242138449706966200171417254850731978042641069679541738567742931042721942271536018992191871067037852594724363610613010316247784518486233915628370331021138995521941127148511324744737332864527577312857488861039784943617537516700296019278767012805526408438857385163455355637848175275603596603950873394626790342185293912691765363045027523403850839806439176443622810703829357971637294088586687779042061707058508248981028991176850979107301219867730502850930671886835279933834015455436251889964258227917299947072676033402033050288078680397037778147167950013549746135488324783862294622575954780739354788999699045281191834518599039870328368393606739265415221751977499573822433366346188944459440512919692247048743638025102686309405506459217375546653328033959110929538707863599161230250214827622442719210298247314891556193307961817069223325283532191893617525220949752982501690773860243864936261465682669226935851401169856889275039789050547117142984471659920914859154680537770653058037687586556609503642148902222142554377870997453516447767614753325676832628254499301011376100720541667734325942078978663336264989237081524603578974285875791772359837715355057816325079822369716900182913672734590110072810447115427438189368264388467388175084039590920988616189203179104016946631380624725555468368603625862945058829586449807582227919549954024211037919946241517758575008365113838148448702252289722170172902526986451691013577995316808403506614859694728457205651530485479327130857194934009524689131673905761648328193702310908884246012160608367958411703638697651664217423936367139930166518500477881045038634966408098890481753549150508548957236874085707483216138342599978264326927971820618581326822547131742478227187865914972491891966274202522439013946946735738910695006395914379509236169924670113351482141625380728462695110559495069469533733939266994360958757710895046689230395221096406218309489970919014515350815128028141069598927709058123419825554682479735110830203423501078584002752824121905146520815796652507935402808594704495794150728450855671950891874487679495383526653321271514057071474456587691139420817973154933209620749317717429638709514016058663213514064897048584056815691084686544548865991555025754361185831457733243295362019247978566457474816142007137424187585176913164758424499710192202509497970880390706174441450461312637099376179194521441516360806380525618235847665521063427137072993700893462550827009879683852465885179101633671605281391290975274631595786951825885096705404710462180494752272978621532602696112671928450255642221162750742014029400086447863545178918780924317672188659150257683478750917186116842407943800322867732498880291273137878139127437586519235634930492117525726184380849302662584579098558536583199931176339073394677667668876325787531106056843398015918797393076402646981431696184002657389794089153728555425217951307136957417770871481528531797847056512411588365948177486726624967112384092570720624403236482702439814882155779898806626184269623747766503774897857314285571250378562602884863756961474297412332099053713693597807991124929084320053002727025786870589620111680946458018020364426224384648432468953505767867792021608911397349197903684982161322095383326399367977351538808127662804930999458217405908317200422036333885043687055152893635688818723239439043098311742802611558429138370572717895618492078301252950912106909532777932243563654922912478589606779886570867072533099851497462468015199525598304902576300949232875894820036243574979646639278941863301051377437494714413806706813993963958503259593234353699980913885572812645312157826091941624815143650789041875093255594506138896305165314126830868225134717738805059174325215845761710231835638140576802819076950848621695269974689559477399732658043641076885190975735417280708277875079921069863485519975347649061095455610404397942241338336403807551307342005200358119138206506835450340153203605961280144199582168030507301143470705307485051949049420478305392894314617241191432141438408538375723374697765876164837916717549927007275929083236701036854047939287609391383407586325640211483944058553231681146304155104318378067238851615352343119902371874137909516799019648587867464729132722495045188801529750788446095292396586409944873813435487825860891774606211764821977924083329775075049531005364597976799961717273049219086132782695117245312545584415478358034512228187774655881590500928035059176882822554391511470350443659784057480090881359999545744751545670190002689452685239794534963317708938889854553747129819060010383382268288594257947158918578042727439697590309234220519561413033090140184231804666077123294780477627779604410739955313272726167081833204859677210087322259922649370531208216906350761130559842554732721297077155812547943640905217014924230654122628599870475353548653888789058742207870240444230016224400793586060429655445001717754897675339606905898616913152836074185062110708232200767166382152548850835208267853048317530809436183708180173778469786535198303215138976444584759900512165618067757319959843498153669554658404124577767653576830283367206511592609448595265388995918930000405359031365199152509443307905532883732757242435488361242494859757364287449890245690285189271638075948825771113381247905793428626616516187960696813648117308575321927826185975710783915870192615196236000494244856574324629703188115484440251964387894016493950110897602227719589497602351012522525218241268267093233032614667519056427840765858466212645143584042540099716639109382842873179842367148997013225078885027678657830391562800952216922318572197920278366898628539190423483900381627214455213589405849099107554578260000318248051584475997448205222356321169632160143833394683271476289013634259585303004412504789355674595806344115989586564898819539699820793017233245049537258784410674012867724467251135488908223635340419936645185260875825046491473837492066250480979877481773895214577216968244545914305165296657757027510693282689894456670138653689095975169252607370634665654756228868703686501493343813477366383809896430043225214688016298001807868281201180032733111733797259334313540619751838397502454347279047425399590933936891385908753190341838943331195883326728975252770732883265745890245386360464993527492613180834159983014910984527177110291328561761840974401791399994864625566451419009597044128495761303324605042624997591836318267216005097198594145993415918072738196885955114921198621208304471883883840280315531960383465789947811707218787103478358459030464589945136029375430831607821001722557064922473257074174318907801796976157090046310177912581412356673804348821545916187245010163631104490674270170178037301940383007650063941581279619373435539925882934400391794948255723668314030895553675640182659697611316349265782682933327141845638767129449536815958943744002031609811717612000634993291370274562100352162310034602893493558181836825298340752117305051430288653420469855580208954886569264042205500192920922268107890245355926226150091788809124033210368894144424883955742228637644510810570326076944722127640411459867713802809467862440280396208963179984799016702562934326604850706019036325974038858093938186142318341203949165911671009011424666710964963542953635917283433184198707193710236705268951454451403620779594569225605885596269363816294440548234292690982073913749645729286769930412167710625457811420689443878861660663598286990814337781130106490749622067252640913404975560588577025522753380004452389685641378072793222637465853078167558246295927126590163770427959395161545923393535631139851021612089672998251789714196028876459343313892515321208444525540512055149281907764239158266698851823574336417984470066177186582113312265054353956827183363567647589821730268636319986919803005968249721917219811694664800963957047523761529691768551856012547347807059639884316248554040388194510554626884194492638715365085745354882493080380522101785130910316278305968519086585294505484856003813807343093571100486648126715583948659999082956973436234487752879122693798596346486130633117752687609070249008886129964385880156125761668367548483158649159963030993123772698685223691455232768508846390274981834681001414564678667692653880733368031620325594860406445846535917988047878615241703456881332504521490208830318514992261426741198854358176220265406581091138688358220628852600911495314774463770302137430526347063735115992868557782797175999530355050505949241977985645458714274136710223544819089790719497445250076152388171004775852840716151672428968036872976122694080596202173951188998689900833148992940214523073670585581536542559547905821379067444234570292578260479808070082822225045548693396231597990525044599119754262541793438888832518064300281329168726270152538310744091925121348359105626492287451755458805818134539280326326726063087834693090288042091941408270026803300032289745364531983647834415306877277466854082855942607135540711374297681766606366727123963168225554108678168623056807247593336419850609037095368521212324571802124516839451314326892241126493876387626772550981893686111219243996404385435138029308064431742938738556311076354033933941956095303947901011850769333869773534840855273276485091168648316470094409386141967808434766062382798736390891389632192876833259881041755338966296403749815501954075447007306683824005722964958837880328299269639002783714845963979681805391329775875057660531453000679221384427388868391287379366217017377230698106341497882140006671662238135290345694529094746110197076501285672409663988942532164507074287638461592518345890837913563566251840505939962868705610563881031834477790920681629853790258888833289598845568452114250463196656154805361297368921829238256540130834506448206690345228748036383152807751185293261502931717260398945820299151481381909464469319484286727170233318099816700635310750167881593040137640031675810533126905765132835722288240879475988730302839303832664828038919766561886275183587934078704341324024492539228309837665871050130866927789461467040508035139692081907596559726257569551927272019828870849269837319546274414758127991989875071360630679689102762495357612967110085267226805489685970073619744482893690458164420293787730955319149579521064746775858249107862387919873412866232856898366294597924325919872668226144700917464886257525962799509736159854907491175550850808603715309005590545264570446943457782605156615364068610152157892927064047377428800503139700108831258862400097369107630711923460433805609177574240426310432865391766021878894679745163450566753344969792242776487955367780378071965196976143412314361586999561954229300999629973038513631437346213720870724499161304218335934009453085519089787629144712586430137290450005443136769955587992434415469922061425393382440757486196830147852430042460323940832255285964362225156132653988969129908181763767797194739448162440249606961993078558410982892535488998038685833730981753765597884307436933876416504732613934261601404486350888593541647704198484703275765898365998981810685237457862743548097576233081578511640545874789968020673738915295528276850600910939477637267919085217468296508840126848861110780240739555684089253512241545499045022501115031290350059651722595893083306862400677729478224416151053609144939505373104773025299473580783275053499597843597825589016684187347266319959529134438251447612601540308652529537277715687637598369556384274597909609755134378077054644992304269539828545297818411009025826266304858124083268156776440491047472216314288974790224479368769653692329611078435403044911464591041605826192220738808852048225033503216980790259364877885497387309850089525089454809353399662691946137469756437089963757552848100148174698203206344972387199231061942371946065397355200442268960616677658911083780515145774514862525826791388724546361260618030132956756148592311264685531272468062387314156570732967564330062410731894744528203330130270693735565122997284010922838804220684674674325993686389552143590022952098194197877827677739810658544180830991164091883719858962524290057732657019274164800788202818968735547010641360752917068604218751482263499578692051227950887242549176513648865366281252444428431986763105443080255747878211775967590174666624445175701251306796682557497639001085016525020537697682186702720699594561424906639238528363497806173465649830816600070550826434640987411419235140388105899737147236404709988446557356497815085927512158042179317491070700458379576860492402868575147013840090601023443361771792686641887014598524628705632440229091473990072257315489757042031694958937104447106713782111200112879193264098840627001960569374624885032381472132343782356345303234368857831634997185524499566155652128326074067548123619213138774277169604143567462138357816011212309659655643416359310801098753948110183301706446771379100972390089580252551483010162971428729028532761791126018488031740151446813856170652450946681581857241714720808349150943961429998686372197682811318833612699708024382043523310499314814565735085706571810820311303693049060580667234952420364236431120998485626349650139470557368938950434478488887220471746017814181477820250162211612725121718916996361897573144585402741640522880885341462167847787146851459846406457203539880214884023311045868983025935466859769064695057930550796332805502973993323069830163291422111393967323413735464852239741144048288945239981809269925728914979940099960634766326682744012392268234585709828982051451164825906562644706447067788509526327806272564574368541371941967929957742064965841550105226158133799681395613537544125535985466209481078856006177619796457442744194448586704237117935759929443410526125276519542229685610669170626247945336992380968254428979921998886733332083811196455000957509303008834536002437947990264348843173300963499197349037306635836163797625008307272048697654928598948639537092335125947934472829888909443535859885755819534561624794825621090074633419866495280685030376333746806554757144407639004334689572542058758912345552283901201957476349788821904600871079813905042872559051469346798512329338705247519120639717929253711980985293405961195289855510442109109298537782743350780109842477967298404525695142695093699290020846270601709312960303410920591378820226512037830433977933812754219013758775695210783081561425221031589946412925734762500106139939039743240229008552872944297050163600436381183637548867132742347971801548114422117350582178952104778967934161162063542877135023913853876687514268393261464465980845367287008085817773051098748582868326394465839322552296908523554807152734240914305640149089000979910578628608276932509180647995970914401126438189178227004576491946477985418977723931840128731929718296317428441579968572760752485433467189097131749275033372100757178227783454648386323766117347255688313729066529327283204541007752117989287740906958029625582245845829847058459638998380776742488655746587278506816619927066406894102689383185191788410195596724269761471466484204957526436132524462521545166382170664977038200198419785319886281074038267395989380806085702682209039505471851476996233208359589995669754223439795840317003170484599812748495945847188629683492039948707844731235252191624413500437039540754689651871157095900985762756213961974343357702435129137863039852497706976052921520590635335064320897252475162876567871839346706911187089378691746017205937961315191502170382114086906649770437241538682186372118681374701256641736390366429429159532164589544752440191678790964021674477129002491165584270828714482632732327680015144534778262231713429898575541063788722147399079302144613686200671834743458259148109606328467498337399551401012443583494154673739967267670938825936440364416033605973853929142459881579774027936200709690277199284239571304953189750514912197686143324703915882619165705604666289982665945336540838896963148026690306766132206904831161850786364133014647793360354641562752275026926307884664454445906596646722415051632545822425178622416285634048138857402802315451580852033738850537323106842801672025718354062063474368340520679299110746641365215803065125045346210811998305646623380275505004308126154699435279894289459141820847949821423195529736110835859057616379208136465399464314494141408927573186449296752193504259207955148277045846613136701657372639496470594670775641819353534215855007679499772868576220248835980599495706999533676424048660022900190352273828819589282273102603933423736228564322366011145286084504971115443084699498328598263312101209096730783275222326169994280420265664406692241157309173780074243170957095436543549583620272867657263036419363458585405259067059749898561970941545520900747066572107110634596431215288682763743898178329334788935755159748430099705829003644170247648736659870410477668268209981790971048436524314892055652651790868565919694550636596163508132764729724128059880164789007238261040952379824002309835002862137427541044815236576822486411361593010022315028104609620553512822368857773338701498890336551522314161900397742897291453003937856617033076733895430705357576408851597767072566012748132672350563116430366890400900613704843587923579777994894668076279913529538298562502874806991026589920730914738549643735656437606506999968657654617415991939269104862090242994917911880243793543433246295022007419932490303803270594155808721027111659672825836418648425316680420973457796114267385719591309161985997343138338368764308894401907930168333291492499909598292037240446878739593577267239065305913556037422553001031246223690094843924304936286989332051740229211608564822258573600020945439607145535568203925876892063647605815850534027466548973706478576330116360237492617081864812066632401206806708123771410033145474333369640272911712320124341420636476067556139002598369794092471406485718163863710664924576715722663454027043866792507157210201345728491896588869813621164223533460440486896126293597772093045746893642227542919540393860596403553952992076435042986180694622967874483390238350532693324668879103467097890424087850411503103764794708089105316977273007827951689079595957375682703007722440422733826174237785035125638547127371808841925777107260233280179459849344064108575237866905906526947185803262796226438077020426177003157263946452250265453115742545508049500713536114777529802263733524389677582316080283449110400265682997755054836550445703206124821283800933945790587925003801000825273422454563906921967713017410673226725209321686232449366078839164039330284531466940548262498506243497102969736347132030969419712457891413199248373116837108422019620486520938815143382119002380267290254319565150399106598966388534012474871043680767636434619374913952081168714934817900742280497099503752391039539303350652536497327855031745079257930192092523253801636110553387406742758828406176008472677506788143543218882557471913283136708952552794293280941083902929748250246685974456249159471508003887617790622968787182717928070148830108943014499356584073957877200138556551751796536792426495511594828321018607807528205466445075454163758006612985824488945728102465479101215597132578137381934020902681797607030044142523880255390024417709892106520747236976114831479244804545860074867624989977433440690845900823086456753905159582974261494027373886851199395263619684348000106164541456685102979108692940475331153289762857191300894666030333730127702773240086035126061680917560269370504140282959052669764257291960713048464338979359088673331876841799555597914011526656268348321698701507119138361952028417724610271826824261517984520984691287315894426504440433406526203933692386230629241748253393098436564395585334803573199736507465418804636855178332873956674510830223466162625105034253348293766036520441702042669405735678030280930033444050547497467878899129619036587396459638361185677588641072354486429477304160005790963794886184868322602983195424749095258910544894502656033949396531485503847661135034943545201569277093982848797959381619096798879611018402664100468886955884542351556642825949502835059161512651907081696381383695283337550823226516997650599859298092906598618484907338329312682393579390552991101310189052061498296937404844920103012346889389391935298202682974885600065889832650574667680556233571544959075490458623015159547789490780417182996203725457658575912844807134935896685796293578347160486744529322619228049145848752246605806814226957683757639565585099922702361493939002422207602439981850750264529862241816908237269352530499073175470113081698488954521238398406129432192156291752808798408521392319027590914202058455103216886598155228821556290532849068275021112508206203333078976198529359664181945755294326870977838183551178550065232541206281108112200038068492730414813176140889304876919784540014553735573882968598954624349164564329740241402516170591527629715282694500139141465995922478920778857819277475910400327672539612565778294273347861610255539028135533753061952529941420151740561285079471088174465393724633272441987557432675532243115086128917673439368826068939034696268020544285616232807787742254441959221519045940395238279029082320175735475714262487258395599054413796725088331370344315162394385910269345941414359678654168164645016853134816448501217233740644062448974926616661648438479379959392677846425855870899723311521663964988291279435275689283134147411762867637404167106980264504473224074494570758021760769291586076150619254327550069879286589470295657093134003502014835821242621634053316045784576914223111954733028115298285087976614393945334857727868865454875096927881726125630771828059664391733096583417737790594743455743857825436001880340115857523866934457798829385890870644982911042388350973535856289963633208178717293465937510706777311199152098855301310785502874643825768088570776356920207882339488559753696337944479783913152907051338647639059355623348980836051367843014611397460177543826134955900953966327798783562124416334932988690268921852408271809092882142594809583039502786013422146689378043886045386654734540746036198530975346713382788105139372689554820376414731632809270457610725450190975870848634483163059752002908587158054256991697009057033749068207442030939671057730329179305309587366401034186157819149004035805877083182985239320855472349489847017555740107980939572668801789373370258015526629542056436299713677185516908899218858060903726668574556893444557934435444478138978923907499697727057099835333065184309480581413797713241511182302287799027794944898367849512774051017445011428887291245843268488716705553167229355365425589320647178161057822811625095540582000675759638031757451228793589795824322283740637441820224628263932521497192276528308341830830995648449739340276213162929184900180054566737769309301683222272868352614292679788246967502060477051895062065210610005983292264035967997152733777754551495666139506228770660633424040043270779212541959167415544757084706796853474634788863615428973995595247122939023802090105331204469516468070673952534557299662441685992950018107142897922387794610369178850521752236944433659049846709436498150012310739953449226114933587856543987476189370245021590574018784649063865467440434097219314207947738727427234466974461213651520721809005649924890085244680189042807852249092479195425929718981221993342893124804497505511499190273971677929405413236589791992769207657449999226865157104163785691977840566317875199948851829539085911370451871581029757852265845076458853710488477948631868434844263880849233195253609509683933680042980039859002441468707264029236219151844107911062213956542922350657501240468128304992241333188455259902150093556602813253137556099581755414218079759438697805343056755112564980327420550077705857589678414804598550180001569115296086372088738795254622756188834632699137742375925178985453467937870550867063612914444130397013834181408066535033468964797478136523569914999897434180461543495125493233058886734471412236031752185835784471488936746488219498684199035238031023898329823783816252712888486849944869203958931765022524916233473475382998285913405560984728568190871359306342398759663139317702202612252213037766786221180083573683833323507232663024615100563057458089112078419473745533445487939348453416318288915757178340119042384614232887244029301783440703934820959220617660406357906983916455034964708619800742476055479867140435320093361964366596396556462042128246742576957773797302463603732999913662376772061458716426152593779301269393654769893039802139038407237988215073998148154015842496331521231670696844144311150049664781944179955325925753463823992275925512572794069448237094789583567135218946670567808476063571589335802217858549251637270697114490213176365347861068804483436685222155734710860066045819023202086114683208880647797542034506579817882113112659939240728251594753455681294955980818634810112487876682190114591655238037727642824543779526498771037931198479920275092492357809900953305602144904405912955111441913631718109816715775065759532262052389220876209175082994340316742242529340506129440004652539996289466770576511908807373340109274151176632145283973167380195116987467384038577831893057928925352472663028874333262736022043229332328309543288287362545917650355383382170674888595278085549032245029599317219504911012830502187114429743807326604596991512785160040842623345750632966359394558985145795244566344573308713833783823481046128264174337533459837997827384806430309239305392602110264016144972662430652257360605363734600151556678089676983586158049923984196078065134890075692007592931781694101105308482268644709494957886541211648282049664005252839078849254595981038890924074158511800529983950738065440036893500494744887935086285350960800638389990291317018334465373539358782296680515670213015487856155343021007623543735011847062156160018577040733534734977636835657468492256776737733095608326896028380612764787733368752177724398465546743725331074910577769117042544082147034608607430871151464736347948124381124623272051218374678349243891114693268579306343408747997820938962381623694278780639025886267020513936569903584231994807825019786036773851540551422050145203849145951163826858224422413672310108689926435903809830636597270236524457440814365906249957533896902894032172994440072052636247885282684570460876817459878557619207525587875117236909940467183343437227838081739461312772380652633136004722507474975200856439442135502176689074463083116759270082971386052218792973124505267532314931775609898899167068929890079959332403992016910593862443731499759131423384352888321797114991834048875469655528318116651687394717733035939326889495713002137526860906524475508075465179757981884440946756828334658823295027067853958694390276656950724915234311823591459214098001392398764624402214060360604385382734915312595306762136382180339941951029174108274903273511215230861193502355038597911219128336630037628427042952792873433621272981400786541233995453857583668526776189813289088048985080670948753881670081877221370122124602456284557401558951299238022297505940414273299365628281844278834349611813087525373576584458793533002918403532066662254151587990599273891133840675391296136666971392836067818197933290907532334619430343619093546895479608117533817880273386007847201491919410965256673160505212011245644948561091296131655053384987981914020672877486289115165111011236651603347245352340179151935098766285562118995817513993309217425192596910298854390159242494682312690148475233363605692764011980008122576242360784634401921322893412128382875169568775840779927422144393064102756306262230955748931671644710096556060013506040833779323111860017046547558086604648612541625635727122491273868794009792299662064301370737256105597526966007446278664264832433999995044750487143071012930400606798798303100739562692329362675716005763006223555507996154686200219201814703826393029646515173659928774538924041143177232039712070306602912660974844566478545950707089345098559191375488960392504332863317728664779420177780955030542499705540034581959962239988433005599897118147295521243018557974753579183819121270053719393505016974027655316403082267484453601818203104932063348509000889543747456998096644138868842154640248415957500788626410066917445395217052384427963982060774982754371294507888590118638097714737359952311461839444331861970489229483308366750533510650686249875625570622885345059790575846565433489401930123269356696933659797662669613935924133250069275415689032459572773211757702540260950543412343010295568984454523272058625391753206950367045200848376888418180561129468487988126086648255726721231421007490427820961532785368289898071568427358061374612023814823614963050791237967787642690221345697868780508662227057343601332194585865644366224933749254805236859960890754779857772425381031989229126434160576534129787354066397825707830063688889950695198605179924390933897849144731800433295928495661979159316926035488686879854064197267848114618681106780853424362234255969806066427151342254912691324379588425947460232577325516449786044005569231944380732012814337645324616333820721725724725963660577200495742479912179310168054835226992895703617316150375945616717179935603614881124016455465777520943795481468136352387981151053911101473092518461822592039752552850405129824444187085000307435060323327844182546341249275854813106329808478717549674633007677197390572877642456316633774947197615959759096955355272439889121495456925556320292447383504679670396853911981502142944775453108156244490195609773679711778051033915242981744024202741281593576246784766057867581313819143070806668829788790117638816936298861883261903916482719875266594698320656047377189489006299236833656012089376805476834543694171973951397437829863881190312592280203405005692878161143887330480233879230020690579453240749682685347496057275745731458980068239564350157489931792314122325325296127390563437282665657618869870038852936236785300566856752818165329553622024415670861767391593646053133017411744288534899840218051195476609698388227035701969000066871289274026399783954192710125877363968507707229358474159052391931345644302780627592317226945109087874364448735092065337820598720432219741180818608361750318319860889572589278309590317853916894290601779210627536478445925365175629625074223234429249509571534052358241165598663570174336319921866977523587005071219944157940045820549401343076796762071171352662093918094212284419402311143656411537179232153989532335442776786686362010937585262581929328460045711245140516749915062183080593926916729621761292067774485550445276930738571487361537717376115810548551151593424515848481302172298191686527092136072399722859505905839380226804847243045177435291632745322195491840197919116775331688023970303559096514475107340631146433127932435573390222164985979184532138970770490815545556168141527334778091465290937299466303114543726194096933301543553738023879588463901135311807003877527131845409274830118571483235040622810556167794722311393007720710530986477597144294555053197314842455693444435155853540627274751226997719371032501095404929627670013237586020776239031108459871180943329787203816751647966975640617286780485078790314642340377316541463385207355862617568922897136435531293173872842464644764657834717542228437469943781032070159528423200674546500988035096502181668445526463086331093973359725484664796086167442635353398645293353190111978159055377768204311400052935571033955703029340037249553179302655070689086363266338376368698737737037805612203577295325933058627769790747683016649127868277995189494159302231963458662549091683842054916803870015846398312063935046718622761376581386840947600784189305474276627141979555595272040290401695816895447950004514343503773006209196643774308197377376126833735267117548801854313240690587280206098050494979689217018239102362474918199399636533706929412728216016055517482806757735711237027391331241764973956029545267666293658572545589734862466516768655945038672507371341160161799635390359894293376123257765324079963671802143663528258552515062694927603442223006365857324632204858177727806994456185495769598595904814250985923299434505793370694233793299575115693657234254442516448654499392977704403707046942240382886723525178910697380892962577600022866396722857191951323395873310315372196592212283766449728366401711808684263612245643951035512482993500824565412128551724055696619650783305030726960677613861168747887032622910687403409897615419644329687586853944341875908541554990171455992401753395789390260089361560964404031068247305811746780748386856120734179105192887750278348868167557285571355013230509293638782155220111451332219146986867847406260832050262835955427161052044287165593279884517757229747025177606601697599858184474933152891255412717975558464463875325916976038646307798922802055612254958027856914878626706507464143390135640792529591096179142124791606995890286110437868980665531814600891451386196797515565704764509785614063401083068505492921388830956266687041876866344336555241404089174022380947460651630982292693072520912730550520725314782771705174762686930058536113310212370471568555838228564675388934520037603597859005675375146251969649163560773619380914629817166330243781312277330682683232169333917866728543523948500700614165502800503886308170576987500207349048517808738044441663607368111774048701660518902740113696507014599861164196895527147057590632371458669224739042690908329766424072606019639165787621472315033481217909671155507192874950508141651242331164188121865351452960140459700367837737231313492400821810851958862600026037122001629749758661248003873532731207317242636320101940759802776754162915709206939411081964875580857740081922245604674820234105811620461894365476775160309790954183877857738099708070989800142533129297869632203390015252096855591593870009935432335427841171444401008568834779291382032420207900967168894602231922049839024135780662649956837542797236655017680048953199543630122931463751315096034288801781790726137797731201119274632205589115761454771549169659531481396629737859646727444383119959866989013148883251091533732753355982733971600278512304511637020744733541199499018924149115130820187288000334397810266719327356633337865220314102414961992030972376964668254436082631155856502521637430398782199289815124447065065282711015810930986756909424404510233750411497116369010830977249523492517909732610065737965158488258959043220883237389622787505438862426924555596313016309411936748771900161825526242899885031736957517279471623243975850011110623321260262391301115925280976953043061314703019138765964824569997040200318893761632653310173017383541370639640289374423942604278848529641956204547760523326607439042816584112559411068131377987033968417177296825104871122758753693982865775196658707355797576863475217805226708086503922897101899316860124896377890699580061026720445024387348087643638566142052330873210853195573684411414115110202310714277070325050044152723256536051423537308740468210999759508850090274513431596266505404111522284688659966936959133223612533897002437346387221222387266551421900913333777231863265762248208004312899720449086666649065320634500579837224301924761857319194163452595733078300973600634384465512202308258523633834723186082991605482038053454089996597214637288584904725097644190763284070192579500128094979856847538266074492854140288824645349884554348084720147009286279103631824512511376011491566912881091692276206484511445346115027547272213675084464481149624824280551579877543513371508666663907742103976655753892676234234889648773155618790727223026961913848722179888328169667855573298275024228408982290756468612931428971134157184213321018556783064990337839004003126823073416233788470913058167255427083310323220315870090123408812839926697028719860522242153012294881032011026728115806914685407316812549713734055404054699532550940770128045206238472232683420317240326977821162806358834958130019888076532025173458138256156816813908520959994673439099590807553075431837901830080183363695568420594470258797461640053855198646149869328040972673966176911469295124619076512222057775275223366110434269214047206282529263064633175162951964546257839393514509095702133582103740856143243971493392894099952209983098844883990099861079810163291169062567785561557666430649345831322011747309349475761071670007705863828745519898160136984716916210249335501371909368104818078123821725813566084070676428366761354611192199232674265006330743211182704863111116073869565353910858373031965239961438794188488832897039382962682529041856771321392943484278999140281330913032834708951143187936182550165698376845354184013212221465831502211910559591408894696037223491255787067778793187882512511368098293657810778870022431005221818522494282468760873676330140925530861246848131891490879164717443649414855185169645777698771300664377390462819168437717427308362800017175856043512831610662913227808811548094012176911791354726568606400824541169634114768727276221609744944595403497345277225596344753282514064775219060078244803961778963141158809246447437764096784691878649665013541229048592621297402198009265520072188355927083734673663316158131334784985674324587436577335101328572616713243401178264746906466657090761451492574588164003724790782454449191638583239002739917790736442672282555213197977871910655924039841470255750088306252279606681855437793604218060896319044320346015355405213462140078083626389476605239896530517245333906775784845916185658426924568664712664812408447213595247629899703750907870739059953739981160007948024611816639863857538631840458075100559563409981795701154054926552775670142537077342435055490377940192017289824905101875945697091967167972005776467760129301989823283529949903892617877815103190890532412999722484547670456448983126043682381326937933092886823329039382296953084707648349937579482785521812954065289032715606376029529060698634223678517816942319030671627688484518697870302403384540341470258842136707832637411939675628549674210565177301102104718883830674416874365372414779130821802613769372062849585556075889647634776138649621567348975969479947398944477542656200533483658523999046369174486724167613806755335291909130962235513231159545240644311212982573830390344168321916846701097991572321960574806204513179305403737416690391476775611446479205869184527603083819637861448022801705339197094169017789808087504984930204067221474822594937384654555092681260757051756814900017190467870183082704958615558792852390108791546321890498489805459344269489669245023670058156286875079688762931680510405052054410991221185970913086857421565956168549141736728398129070889628057956623302688177361459695638980162440239653279076368358057341802997616031663734685327465670316321735187043113804616041088622745649290998319373133099879660032138460898597828830925673549788405447989111059534203642617981301227019074394477285249009894415267450603464364340765006612698342997400712630928645742290332313186687706084581817784361441642589279717318637922371037576365943182592603633395662714028689327977862758755023489529261978057940638199048398680314562595773321255035034056178766799762454342775415789942056556000236198287205757408809117973611093243930669434866119776594732284155843387030370219129476076636838314257182828821923073025153529287853135284689932537045381814913512360258432176619819760872272801503970670238096898338559853258176753433783017632507731674483005157253368641100072093137780101304629721972967290596583994025476295184803599092434285373542894622070183087075385166878811226037443026620052459123823654329828476473596046460374953445622449978696631364788362673291268618601025262288211751595439981961701441554107123844862018825581940959746042515663147201365365134733131702260162503773093778007564177162555538137883785438862202657393407985627154842231984262374728801800813811143105037490109688506541014694046841483783042175774829235088761446441700875176662080096975753899603958760007449000148185145161265172285688718301025665851191109938699492911199761566966351383604132593367715841393703090143728991111543464481561518202329023378927995597893169845717653475928330588266492986217416753680616320690845944586374613901002263697865212379427922081736918252894568812836018471173326147675416417430772710265664154487607656855188552782143644034615129820363327028848298747985126423640347488346620365882730384222856649286633055125584034725024642130058502691020864373584489071103180534966889623871429981548116489415041899043353994397684332914285396222499827263166456892914453192939186126407011812337846440967435905983626233706218699980439923290662699446134456953122590179130983402902049885383334954592231981668751317292811648286729022362384557565596312720010469839968875206607962460161478858820420314448503666102795136756891133834158369629327853610393944408044016488267810201022507563278740910826413689007433377275541823864273568400925528898718817996290670428644732626561079067676084528551993916436354277739727845313654102284731881720515349601583571502961025353100081097530812219607751244499628256266430634861604611959690782847978471832708073327077815848400679959610961153671420436107552449158967883946543323407937108350530363417358574003395829154102070714551496933022380667903840743820747598398364643790752226431675467368410162654540682855401946467318464791776513475152196327087079199599110724597538298292901092330970736032525079780810357139967367448386097544080974198889679818476932128080097002704298965805339815961995171784099313703049556706346710434056499087642750020306843269062511752299316004809830285496115407499523898206027266951526761501605094516499983033383096162948685936398779248655327431377752140901652634283624549396760687048171946263391589043589908697465468597274724657562053745301275234579298199566718662109013568922617608794737588239297848322676855589892137260668237854423200906266363758951319218417520050964359191954095239221826845945537053538250521259946755893004185557961572053585065113101494581440534329039420602922181092903037881589524793788208488521923200256502626860544670449416024943599003330309826586795922366986093944942754520937835118388666730193315724449580470996343642387691392280410056517410332695759619233665039565580019433656174109455546900871281315972022415239560182929200959914532123333754832729810260936004225273558916094801768438683028944845060051423994014582418623314510214027262446478079395946505013115074091724260951395560151584003774403115227425123221272020611189239634678300734986472866717969586315267426993907688232306914191838519001913828500390275394959768062060442890616562062135532577460040472815487621843601965227737134429048968623608244208400250549045676372750544120818833553787654941922408012606143150520809870808258449855761178133011703256946859595398954668855815974129493030411954093037358191213295615488872446389288230675121637810236937311943629317351562363321899573255770445188968553493420569573465973873186812307314251208605888782473183150336965806616524899572372810413602835254379719202955784976802277807569044727781236199709190929262189167313560192486544516737241043730641360139702043451359946935984738552140613041296366892152085754521530320021299524056127183433341903593144270822648119800799754496979071932070003693903444677864450833347267433951540031076381790699951330926708025807180601824135802004248232774249986288545822039877295500153122800289333253699454288923042359932642608606615629490687706375418915343135583061179571221884591498042948536546387444998041077294251001507465993230877559395054126764932306402044672995839834262412954938017346963946750299735968819757243536378434777710129541372878879087268646686399722568405999207817679694373468062698297207276963518333508213812554750068164385345125308810580474706562448925551653172982897153548881627641058744647260667829291551052240486565267066721722023991434248806720308364099338936546638620976084137769432049413139652807976914103095051641865863053174428802824027884463981747340148439785901915794677325768298560065156436484604922250871017472008668131366364650791992456884726125764806244731726940961730880399142380072198430087281017310760195941864030268281913487947101315663145676300886570963901653678838732912586346859630588726163490596980895108376451351578326431756714462459931545163313032991410678044739450194433264789248340504738376076773631926558736482227877896483421225653121774567996106752777192447457414946680014937444182100944287284614419877951919702306902715780634381374017878938247411801947496713822108249466003373438667087611452951622087986950238133809435464578414768779716274040071435785594054090172625768941203120900644991840911650246173228279143534256562948618538626339680621505818947323099651092970088676439011592733598987613557058522741740889082389100246016236762875813955809669069161495738104831068532439994584805589540343279370918739669485659341215612119658171514549962675979035033253389842651378482783141065582332144546510017398020982941188634788157708889618681411577010583773229912167986534594127692788620597612162446394097032913226453322085625455454245959958451726870751327215056088179594180160352447538030063389919213444750958650143701020497285253482136397835488796086476324328875375298172957191737984004807230779328167455394957716172959520773495836081382332219609589432234738179116730700837855561160720437372797504487993599394743038914548394064650337981625584334356350780409092484120122606542854205988363450285173833912619047409210640861660142410757148269186243168703689760816438522058674773289044407161678032730778770002223438496494250677779001258774716082216196310551861014344775766090824236972061288419736240317458842897280672093777274306996433354606364200576510624075460973383910157644242033270235477404301636927936104291591101644602159874408786467803232957628894797524085605013585794040625164166365069726255268183189178562527540681488052043816066304153200368636129407669963457619353511726214728669045314107523605337864781571258414735267416641938556951117525779636567803539700820159126202081559136205084385722301129804538419665095265155156491338755487910954425710732771300306572396264660357815203836719327300940063022328494048837800809067000251727041204737897839001034427065099602392165966354266863535777799863639066266436913782406376810291973953043020706525432791626970591906826622458627987394337565084779360816910714308845204768158751955561054551220394405719614164557492854327633250145327725509173465234619173338213623220873093536985965922294935612389555972872116719196331831814433889881744171877720006376264814843288957213171380941441742390596933354490573255507248665809991675460087780720352841721526977975724661046700651747196570444834962675596979320368842370691133882543071763995105821779558299005650092443350308770640960909613131180668941168389673539704484983472407604666782812534181249229143669656544802728646734192666125658938318758454550517857847591957972906505392019925596674269488307591166157716881911810597846833447076959725495125169342527772970760436012267933398881883213255865044520944376506185845422606711406783489892253320674493510456758071497838874353675736939951979669213264490453850639916444066761697458789746287557266853286252279524624039657702550530213908819740662410373328743065238704326419359929628767342543432720266076249641467755008726199946455456361717571160674774992129766881749704665974182741900741251645792198086626336165230765963491301922751623615920001200852491309393558965853291211362717196721302692062162340476942275245651786266881163282125999037080994347204962120410302452704035256170095652983889387081312108054362002084039670330269836061278124628065467545106860672350821319249724167024640885816423373282581275403408227320267917935600882120724248209781071955594827450957458963706032826408085690940045426362860059724442988895221214027879582823320315565301270413423856266517059369130975501295755329036743621103705730564784906074045601926809586912246110135406549555234294632284367385636037108433528314191310084593949146764715815438196160663990131998776040535272252818919337014971378730999038681079788708116984632791778545739721085561742960827443243829074265111110880395698130832218491810535896155362197469297355152364914643445692800395386145292957217414704554568164929416703559662079447294788388538278623660021971110442614568071936894474265606495230572806131804824982443794612852431281979049499540335720749447448467984189919628382139464220817176645739117474515510431380039605145930701855459727559467289099501616951914178443528015931210123966237252827318342009491244802439097668497092145997977972966469990207144003064714515255729526257547025742740568514518693186180982294784216683527671956254565754846219664370327696817451160410543491372263529690096252855981354696592330874180545064219849186310848910798065459161651440280673222625122970578887629361907000359174182337707622362376095963396082714810164399609084272003604017193111088979103432178266143444194165166863402630649066301781664095241848789829243600037980468429853262842486715343110796720446996634424208313324935576983725072137750780707545322192849336683443006191780162631326139643557936947612936519978176619753719422119716947905555351843301511917551945480886462043648859140935052459233088023437300878854920672220718606489425352698763555688662042092909563458558671586311728635025778891170386116248460246426381510026277375577067497531094162945408349356722310672214380451737484131356262606998303429949416134763989783821542363213477062856675068529817876197602740399316401650504573571995190160787553979662604820757280349966240671091468250052333698290781815022110600090493306484310702307654296697379592728901524163099494968832268556323315486530383127885207965198842501359665237972154605943513327617881609349058943279149083940694618811978694747844340640217576344755198259638853364723331843012286252287769577190583469006910123253578406954894114711555877298304700528154823483279567074949769713524417000527362897757126525729575194836665869635739011050615147524732989956740626590858776554512108771483525818686935771063365373551717634291068409743576702711760005889362713518937225278842600721547509287588032009751343222762414326430685721481015003424903437360075337102145568231285136474272327091574450277523097810829650205141471537110794910665106091603036255183543846978279050925494090849016758010119517508412164576750008394754642989194059986747793667190957731282158164259828584324776589228417363995429627792765602506255800447136186091176351216597150558650646939138383702813664568882213098379640581269026518834762866031263058036684414061913751667007842286165401056431654554156951507313257923776744979646101832353609073045615241543693742953443245069623145811323855521284646433354362622949322196717025093591277216910116922991781197676964990361885932514705219484737914600625326016059525945591128204217631005659470844921136367048970949381161103848428330036630805347911467927405680525039055626273048356279911670553849040240934546570231230958624945582275289787623007701749037059926051925352639347679134658779291775446791477795147820982221025129558343960733691767971541347899435366061982482911455892495838978221098900019640953485433663139000591807907419051238750737546739117300850426665011269457206959954833873446963098716658258023175101920259198753911455409642642398674880039545277611509592598289314290634482777896199520131516137289425545916254957210431487371040383711269138599289525621480389475892760052347511832613846142130663876550161592109681164329889629337494373110289780146677260395434502067935850671227953544787084831166113569422067273365669429847382602390823095526162886863184605202597014415925478179514114824213126966862386377868455135727073195996855526289984227122055648924937487990945083178964919607563892954125081848610848101997433804472096125860857501287901556411886071498433284527235897409621500905763621390010075160649999882616285218501273231032297332972656956473683765756161597449725559305510071860816849213968628857733011677664893234163104080477659812030820572964686677931708174354132698809485169758174968850429039000804119339200392252163706157448717098534048771397391185544320531936545544797885124247068749373535338603761586276489366496870301915271667723177660599968435089545653825326803150423302291453611011402147819654667304266615734133995893826231144587697213285545225036941319921757381270637791066682841716238003580775657683408052556355373118345836032481986166838247937690025351164070340087703934944194226022600832908696615368377126117798849043653756508624324332470399279380385239400037656322874699887167290639454815490805991728884802039149407420250016249252480820612373282432917708565940744832218119534932963297710306547822341018569685241665331449550461420234456108434977268711741647943913290175089640420194390096047250827703836347096887897567731183022982465882013332944942343473938961724479012221843792473900407998379156870036938048279839529357893535575440446094183948497994089536882566706355228111200542149367650122874903525703797783224840553457254158525839727247358554574021453477673819686400393842949823022258003163074767485340503721542832819320427570861371311219133515114908979694967362698890254267480053653075271546328211013223435775381767521681194518711170360444266715458105666103965052362375848941308354936036987908871777135999645652862022897650446880111446565788923541188408080365638555883315141833652123591075845393036698135736042581182174961216097583449752186351562114095532678758522665097497456767152551600492442642740251323830270850233512937213444292444081486196757564592031480631883565077988750667872135130802990157682083636926540756492466105762319554537090042376238671287693392964249314416809741905677258331344936011563051501693965910350333703509383786129182257846834028786444607856427566643616455425373969965306922636864018365869932196240663280670170095019562640708303272188693454226985078384458885965226818770128989947712658849471702295116498043075588440158381887136980999834684341298228857649390473524486727334674262170532438527099952793728541669906144379415262979948189775020973678633820582980692075356681385256528602402327428493788644660969367335407506315834324254798542030734215883677739908693680133112371313563820221875464964843333726165065448531751947144564432839579754836631298292162305515191449456439639345966406786880141639038840317853496255424666565455156901481865238412234070991951361364231447919793180430596639429097817913396958850031525895946165959486026582948622689748117743840841162172240468709811142765652256071198499083751212670663673462498234034178959430705558090217914026189725869091275229243919125109158630484099526718320958901473123660150351078737768425160040172078511060807913097222107144824626063657406413039901783366711200625239660819393665152774647860878669854382596591987219590023864867215917830986734404022455622111950881994097029808793884956974784220548100408302519440636097767959923166926892032588101329717631797733195217760894858596135400809525796961988270861697564582553898476379388171267226883937758399340953332528198886556259928708889763296752260013677074373698436746283053078133992218549837140895172588094426514559187883508681819853244614295784727839409395657720773050094900623779599889196686582666268547274748106001736926739468927450141243685760531483099670072029161789922744895561232604951236905030422951049752402145361549546627790885019209906755171306866870368439559039988550112745455246414389787967055424120999649406743137609733485240187993723560675792582449514014430087399893020127040454632955751510535284007666860414639943038153508825364617260555314444199005094230459001426509246897544220226241707046620832706666841462369189582177179080829922377490622118141210227161242431645869530128136232572664835807769708419685982625160046744250797431795783007939292273918115196787227937301182187093452510547925971592089398699401790422388142806547990927801246609902160367377127314607565043940914352365135798474337226757091767032732649179884406138902844987140784848384508358511774846645750874865017462140842113176628762313583073126086614632411126504028644369029824513469707305613222995400555326827132857882583404727231806919365935840070635833748311978479887181465733786153460762277290625010702632453248277653982160725641059990085525386680825578952160437844751855968812636530164438671576119220078011414610373178304140960246966691549708266331831866988997516798205060239636198031842262672101342516356501571867200132526126461282580989071542953501627459684022131608755293471421880114976875232210164108823232469521709892485728724947105657618431192544291484749745615909544457795091756637953271310985848680960312530741776832252774942506400545053867451615450046393450582892819683338997938944809658776143279204053318640406937768285665050184985346171916754606165113094962949473228285791379118705271134574641166010489308600998679547070481851037376149768093931073332676050441541314111094493153635831890884398393759174398947642824178216383854411223798469157753333313281457152609340785515474857046238347294514308896117385255320283433670638135747391531019459134392326807177831157856533104737030550283965438353211694707335854007596380552118535220944245187794767878751302934879837304949903164667941229346563024758010761090493290884842983103898421159157381498524691332580058317493321347454728849721769069848221524181613212557007038199875777795775696470848385066254172519776521022996938898278006300210914185778757777367770677570948540548952922575472219712207960329551675039502405066489683692464923415284039268147889879359042852631130821319313185116716220307776492912582987417517495683117273727092813652631029816295236627621356360232425326560034668866524640777624807983621921042624417432277757839331963545871487815344777408464072465636743447972401536677510486276928310422740022559937888525660241650693380209337965102226157145975302748957203597236896532365616084858578678354405769175353371235649935757788990809779502959857059960428504076292119415290929862435548982989673761263341618578165608360250670312739163299210794497390149535491792829181224417428995601064195718365657603174208716327457734172953765938554880185372152008323455344384170670037808638955396560426103463609718135295669024621167519333999009341706824103778528373489545061060280501287666305647241004030569342926443550304971400395959524562861435900269443322108788597412539208442443370321761239642692315477605649175256619713514018670285335058684144979962698680150633969675259884536258597047619364012634626285919284201221399666284875202315178376017616334237402053388735424527563267258217299042791115701528724814705510134347753446274878329573420718191315815539932198007423895332171938013343333549746770477913903959495183609314618748711340746797664866507119012285858319540379439032469921006056576940787799188103337757359883823800598669848864866492767577820121736998788016799005740289246623190918564812098061898621736483302397492521125767779706554156409160057566719445576090844236132863262277688342092173172333126202845482820522069524319277270619342092556414683020875412891646890589898566966424358739027506578309493340528178282969188811891786839332506030202089956589492611662884828188904988476102881278143414243495630297240189587401875863216666751459039743474094620945598146810459649782004440318179209138276846615566514294686156863443698645498274107623300814992955175553367004937345492706261897571461452429097323738154164050490140245607080568527909006576709931216585842831226994737753741010846558525441147550841816497888986755222217118762801871845855640310680377143883817781483154652135654599318178685692766143542112436259213447405328129036175605957345509106197732047179442369042731333321235596122664662733670647852268976037708133259937511025075145892242832789178602246628409687045524985318096828348444123824164278903290961803792692460571839728099946456802825885663843802454052524069499120847202009611653811903923315018698102252057075327827488219626647853347376688487087952968085666961584614944869203730526617434825071859991127665190967972373918265681286684136599868199024625073284118835935739653183862604581415276575100180259348172932029962249284964084181251183620346283738332735028553275333454609540571759041889881399271176189612490329292512648838503951986785277853930063177950047462343784398462939822519032447832970692280041596483375737571834521660644381135881342065031940169741217356392950316976716941037056022311948862048831888313772021793790318452624482511689272852645943572239356496057223854456034978265976296688694231832413055546284445969465664917538190563441458267849600104650436883015139681877710097835091931274168175988983282877879178096842805924544665921778636032591289127322936476644571190037865370450646961456523222865510303212126556688841050500831826591741589839903222232064254956390181782325240816484195569511809031813823029798651816003255834793300414300275009455473225067041016430500718546262894838976780742655271681614884427949960162410523902399313008362401367793310738430336969916971174924003479415945998323872919978799551319044350948239807613788871365376611876684842824455059495106807764735320454017255793342413637006271944822227577625762321876797653686466329200055585595942144558370183241677627625062729119336874772219474197549062922218102874271804007403772978708520850154988505827118837364236515377176708091222461248433969692207699080556154697124499609497181746968202315970513800600215876314683646543848135909777773398782770995243334727419241379489066254526275729579059471292724785415459574891250418090695791063842380259759760133394655167337314896954829720364801682768066597040085535087904066168049420473428747043157834173359835610838182388527534496648956408439993729478917821326672450676218570011527818617945724862479026910132507525862390726262873726694781957882621407864251675780575416106455671498621528318797508869714128629739996947215438115749852458130838502037012804599687401164432412091877822346469727152214395550920271918996592304193075572935273474674042869171669285824449548185735015294736693565129579003668358996691823213257580954069620542184781794014030174152079692845525826512605838026542528097339581640569549934008680870994512507187438525951492580058089067903725829553076105394699567719016946050434056658563409644209915855795623034928461818630136013910894013486523714594632823021349638407834185896162306541555751454514771805494474640569955843125712755023311680130959369476618997502639626788094861536747211432682311968590048092195151669347603793715748763157281758011469485414209041642569897887897109894937683359398048599275185315262161643289083791200894851097477671961638486381182562088947701456479543268051701313966211320927881631446065139076885229561132384362726077349580350342354514258564468277242757365191824316941280364009431353027472205947678488937465903638912746902622211079033846530499154625848413977629003545166309347852866176371533619372361755228491224453832512644552761357359731766417902721876924951931854175767707984693398267344829719016019320748766156343524335671720836392919040412349802145509854336284151868883644670345062644081512892413345131083173154045513794489719333485509946327151755157308221670751422136945466149315997633708762486770358419052078102293524522643701539297766821225435489856099913521196894553807988983271108736920967419725495288062761144446530213614700511166549855275318761862620300017606283772885564656610682334134003956907517286728113793261525290538726844733016265838996738605211279012132777570682783175167618249103073346134360659272345681734408658417894705164087303132168631209683170514608405913077366703925939508811231198268648237607453699059279707773523672376199463857787535466356317903079967785577052615822516601051904159974970101490315538133985793826589498054199978541141330503360010064042714647984658792630861416898684345103763256543722271434542184305591368278768396463703898880712553025962196605752467205582431247086384499571080827316643563077106373657881323876278061140913816277214924024540197017994937334676076447887145615581249022853928754825007483067862946694593321510138467395331477318091521527539545594573458759424751403147281514372839302130549277026946010624690091196820014817999042650731485109231957812244359551697395896965814070841579646333426562842998156411983665487832260637653745394012760203710690185737092804180713384649941659611681719337913528429397190965076788427167519530511260800422405113784725615460716016118045083753438076715592926887752288553769899324565879816012721904104996824962844131709168034854394472458905504099489721065915298151024106566698401388467790474296043699688755733243849915969917084222984406955610834512310961580047507949646825468850394452877767628951942653593430033072412314176460249950253067176016320135954110171032085034871030718607585969671558276969914935922895921437637339621839536331859557603293022474196499933450551190420455346503663359340882444261824302760835732846501836252820824005453861319636383069726033339039815625485568866312547767780571284744346923880983622802824060478138910702649020276911081219266064969899204529539911491316309339069957262535093404030332142174730870778398771537893606388132812168474933820748035292992539823697000055481635411804472806566102036444051142444672752053804052830413318901721930734515896500796407239953142736127943996548731220411182887252510469705389531911329252222170088592491656136537603039365202979289518502549129612112044961762938635913105310589726014475639826032495758516577995323033502822484418329834826809220140638693241876985524775084766893186372364970675847916969083043705201053541140410681528899000410043526790445844665792125463016779413326700553793943086103735653080824744138022043955623266712787752656312274757725238527805153348675009780849451694934355449309954614346431181593291190128358012740167696964337852649209588415737650883899580035145064643223357219541659128501212711371534269244368629864311777371076558207317611631300248827010421782356861503398441858277895468991401977646988468360531120861753735490136745748173649716688214933464526521918407302465511268138518793170331805347463117718959553114604107746310280911409212325943208215735795193156203374548002349945117261857737771660399147863070905412755032474067652165842078691439166322230252567014059643150700225796068866724299598643378024614328596838189312745116523075391350477097697831379593495224944968763851214547088516475230817081069765310009330073700077360858630141463576727179964822839417705809502377568592317505373203467354643935323566304717124711873897264532830134947959991177950025848808404219379639551914519299666980782892936439214325215531025717233094994328968193607550922672381642160926898689396758385874925749835555993343233901831315476149428086451412885706852049515274601543880653676545259853101904553029529149952106237717193196424319336804026206215804579063790614659145729557025482909437010996381215894199092992237936427770212170596019556633925968207610450036257684692820113928548996894946862044151930722998089090291884764848776305138833812139191305128622324658134287221616031292739111672526278478013112566844575093304401741149079777725830143369526195701626814179460117145623921994043933833368208829603671622276169642606096551605793955622347274000820453708504851494857048810080006507158205535178473651071810326147636110199338457689556045121813846450363199652972257074016958168905599860861967358144050786004916884379203085005141712368518175137215719207615767518639185061631812827152784900944126080539082871167105141963915387111497734582254208991528299177179323441768898806600842496405691576559734017547197712454286411409776769288162199113057791813183667695188078041721978044097182102988424016139521068395544192296470747134448072873826230187880245037240498410701801865642702400660053558498770276592121423534768914086033467634705566873243163922970704233450947892141325297081285873913977429556745838756851074117456395236639678192964127933598702992982626145278173567600771598159642546349990455176824509521187092846446857551589706549858190257873014607512519572577744529161263275825308957385602686681520038792609445023303000520283816354715739833443957706960599330200242976407047359468768859449950595356354331374601888776882945477373602928240343841655974097118629496409503898124514674998451716619631884850701976730400577516899708903636452384627229251852726205799896877258533741557595783849208814255767322915524471961368401884527671651200801449550914178122676561346422337241771345845524157987005102463302712413591669673567947122795230768591538951085933517755379769591929977382934925483022568215616829929461490520512559993780264725337054365675710949732830899064191798465022483522876116098968649380848229487787664189625692396888096652490602937993604622499724132238307490601669702785623045440016200180676347178146778009446417318266537282599799521210414520607250563591699335309678587631831601155114592764195991624059687659973296652553786430429699707820971308759576951946682119393506566998941340990937512389108366988378351951288524390387569353991881077539453967561273078703598745089277412314094200030709751126507641688314046410839349046867670525064769402684558652118748223065672120936007018045798256350429422171169711221285214384291907695681187403026834038650818128556905426678464873453028302258995466739981927583869288836348574154113737928310450577321356256335808433302087258571390484746037959755612949305799047385113155032853658617442446220321484217510095942887320831815891586090528947705958422282142082902363068257035738823711293454182780155283507619320944105337771614582716288409559632161046460664970684766449127313946722563113155539974074153857417314210767338402999586255374984464951241448981488085736863396324776228390625880682685350741980671063696327167639288692136399641372029747051986224710026123954993190328887345047133949914194437006529931341261101141038109295903155900840864603581002426011100167336745825457905956283871051300724764519056010494439282279907343392971962783028221128432755672727142826847900892237761309946516231861460847846345711647407565619970339975857716921113658753805777780459263420780546034531851945746446314683317189770433216725566831978790891860246161878771705033345923936259773908827075215563470539132133822167769730810823539623203671059205228547671927599520290736551133927744903862347070313176296939798790840236591140259935699468489270902336442194576777086696185238756213963541857474874522946061447744783663008847371426757847355311977558417103402037751308729810305570601652244336836881363431857087556044493045741355125795170268994332264664077854192971909160475706170912278706265095253948333478406057127267495416424805124011817393377040341518880301955844120449639459712267541757115287561326649058099508075053721653397992370497346788776696002789694457878546974418771993454737769394381879441878319845710665144155811310264928041908156492491280622963563418911208745826176264425675232680155119724739203937729947274587345788739224654411650995516188730069332866114508430957135985362132458976193531675733393029020324938566051079345928253412093133670880186039658622503332741787108888456864341523437041342346336278517699819048425276647586796297509416141733425876646484965887460991926469018681864046821519874535612818690665740291413438109163853529480211404136506013885298944887561393731019261303963099240321077831992307607144501842163630356358016468346213629154417188735741349507277078289052687768389510634524439893177901117690726888251645594062235883057479831243993947516140285833013515910422428981680205270474875792157129137464868963902344671939462620029948603011412190719158529425487402152262405741489491469676114083192539794694218845385644095308560917352167232537712594572000753144002193757608118087346139749969880321949609107277835875732097816348858476729371729600061575780243338835515411718901265876071552025711185065710146058060029046648624159560369960370574614935610775113816070564210376913423470254676418271134773913173248288092889291528664435406399751918288043203114952137789037581811347467777076603515512348266756427947234556914448544118587335055345771911697801134341638076582245197521048253788156271933348175228081369714912645432672912065291096688266744001246256486529370652370238215020766557348998413360307949275658193931804920662833935149064468051340221569336281133373024771685066942458214465967492913891031099172740515081724115604268336536865224582155639496224694531601784428182148294521501829136113847419837062651206366528307872522502964177161948290684702785635747470236799847153527295091437849175101765078276851598308978628524323126506963272024181957122190053058900098582790317230839020759668378228575284266194107101128549741956493949034711238155481005100060334373458478553739594373684935009275629789659260699380906193841205105026758099545512598161501297812284579537572048408541472164265278111784691596884020771737977051223717202722376556108795902595162509297350515277689132128918569763877376118670701671048111650329341610329605409493388074280037847451288232435217521786938716357455920188756742903807010969469005362509403123403562993109904551149569412033189006757250923196738547930754368247490334468458469540074554486154290958712683600152414578816660695718737268126140863377375647390832533412475147336086242878940853428748131288503239961026121535354353901974204816551768876675689953920800550214488890507775118668434651444980756731753788375105400565104134381155839078023174329027552046713473025064794196226939386142051281620710374717175285598373095692550889992216611838741972913452231160329552201384963651917129196569124306907635447929478800948680418795941672243568212132812640313033868576878471858366279855684325566487530744271969598164058260760266477588175797576240861016213647536089968621807559459083362603146933020232741913118550277200372187559610653887979762818740042117313357250004087513267403009843842004653192508809932555369618373162926106859713058147468406478337201269667719385707467942137252289601931315688103706334823307410716644849411097646444526898092169645447304272005129451374557800675456898828922142070840087892143721553220342324873848842216025349287057620461526315895970130588252493545916087139170472315708474880341566629688564942455164882283327600317803869887687216810901614715224874258358354589573891023357911873014273534833530416730934745534415381264691381442853586764851888928043370807377457037156038193321999880402104266857820375024210976490059182733092436116785671622005493081622701421893931577009621707831595396821909495053321398361570781286846300682532700967521278881053729640799541787738085640279857481518313184731669324363426332616285728349149440114501347184409977925182507517035572596041821717639416678270924570952125816030254592766117577048191974813288298506825458443693004257710705244935642456829896879431934170447650155653243594810602743804690122087090310032529719443138376758227271726569071100247116021242390814533507995913319730361483050662997050864904325329424269061098507249415948843744026506609149238970121079230096162364725594728100006496172824778500376343476791099348493750133100185885868161701581601158123979902448828942066946107643596021518510431299695501984141698076688238669246757168871417354571980980741057588623940231929039291566403215094318878779488452745307451676270980228723215288290385907409927177064249506839696746347008416124848775688398726354930682840109220073505877330213000196481169166485764709447917222336078522743907446784139119902388712460945624324891884106102202749149081194186438292384987467990594742874140585933290482713189435550033676821886084239688478110398360304374451724150833434558348846050454982160580809866551885740195825505063597944490567348545041094567907069098799457612828996128502428574668806812517307859466240205266281980807341085602155261779492130567193475392013236485847966597345473943117659649840748713270878606728870902333288738596392467733001614115072000434276228385057303958173808798974194339310030272008115430001356102112179455247031271356560217587460892117632769013156741038272176504903961824983664270201234079335678465849596031044723903765734178491951130651024108707545510827080222350581908252632166460383509437912331935680034252700029213366899150204220722670281651176073395757306305243646119308986976691408882354590008345601211294374703002642899638905668475701506313417594907033750085007140242533462198183933734504269447042430269207869388601432694897061953725745070322027715475885705333339005309153730946657393085982955408378865756419156304329180418869701341962225008441732397560078201418363476473047565508825759444245594202767258160586201690158019250483666677228536161523043370866910453761436617397770279670677923655214873845644677522951357484667306966070472944169024403105220760847377088550228269547616759832108850103013067495598759081197927674918095472724478069730242319999380037511154476357300995648517324335143540012271735957645437816297040205255659955480376337183100985829521339238548940138985666630057738663071072273692322149899097694565074296285006291203024894825363010748426787537662826513254034923589074108745304749080355041138589384107784376678063869004193597644447771260056250996790842172171060024535693168509685696745043957200761953894553399141272482404090146601370724816175288464823120185367489121413707554437854966509749906229670893385598219543721794975294128085442484462820454333497919010027243795090536500878356672645989895551596732210434805413408143931477463314126064068696000973657454423788873646203605100637009455275525529725311731097579964767196561469453776447741666717378367486868823199400604197319315387018062436893227933742063150523536986147503684103646952977475012554654112594574320968369687533464889139487345901561795983733833476628089512288332378747012014981873222793918120243120437636399106682288841351763546989894304390082032389962832496171807584505488820625156280342824081471660850363444402823963372842237337780939985616818480340329325352005408999052392908972802769210577150559791100480386609780121713497261772338050798092399127672487165595726473236195370525261856746870406742844383539637046966111660156900844743557485511739512426704312315948506089990278937938457894740187393397674801732530903950145231436835447748826774341693048796504523139739853455115693738478925043271679243443407322251331111522381942012670641568944839760603627900251022270082503973639883290019261249306270293576999466246078932084559308514253004272052566543473965813296223198645255173040161512942809859486256729488787849780057596016465772491305051297869690228919706996927387011247900258378126239606844243385534534684031024272800285301968608734152984438778363606348275465324485053009197403538640485923910470316629294934261086082074739294749973555836946853239454558268835004116442074482878394375826707586733798164261320803445766652871261281782983149708103979448175383076636759746977387314181812172617987015999782450849002506459073050655060373172515776922591825394073199692939450129131501006339046255106235506737380913663448739560066303581986320771479889899969379218639159461818071896752960325428432347900406922870260988274527096549220059714296421008607370436012289783209759432259992237753284236810787047412340158112510371199889460568540534834982134108916449674193344365534375399646344482347961013774878628119170420973960245787302975464627774420987002985665378132574804715537850206344725069163299446413978271353827801023689046218679343713686706067995255111811247647060276008558521121167593812782488917447789382387791096115615231439730581988690879606271863321386333916694752192668997670954756279792173316870700825995960814328258707212225241735173374401510506361107499245797540685932889898256012595674288595006377949524628569288537660604168447340628544615278203677206447866129880673427741680347129928035458495184449426951980657603939467017262480465498885138187566154539420197876164840000270508850028138007732331570075095598806196484386677660677999909453991005680301405915810615662034965692652671264715643069250735516685966247681868602337422253728570013148925661825481886438009761751307175294272986207260080065841540915303380819928061574607650134297936674805934536632598507814327586950854547656786657997340678698578054075561007224090091403132604065053500996458352061272038404775126034803465664429491811221010353897074215052301426089349293213444593810841231293140868580758193793173290674166195154671357090329252704076877644985117462975267933127234571990450094346023453447377844051324528576255347779669895382631126061167934516484298897791877333126209187088196809745524264083544006715669515441006022690834162476332700521168739567729084412078611226471969967043177942022905736593643076315650542101438137892095844157026648617526779085331030155848810487226518957713966326438478671756841337254328784728872488169785688296222191948921607452152118985198458127410794114508491642226595205651057567368228142696314752870158157213506082932957014412029319491074884299969329310736254574438807182784870779194600507461957477399108611108190088778564055244880456498419447483672748345646429420754046214593729899841026168720511334640625609035257668516038544906198333470097855254847513298844517570123201582813443147828793709353987647468606118016580676899954176133486770677312971297683505388326968172859873046707348498491060056006049621053979521140851779609351309564945826567344498966885260206804600515839586669198136084211034628569070447118601893348944619301567065288081550580721991184998368600060195064015218430403140003293246015787633969956178618368361557742277747544683464591686751732300121667332406404638588899033670658179036313806905734466530077121010760373571826564745369749729734741518864620989157982453342528662126016538177493638744259837201750700155520279803515978649948110979589432123457883685969034886618404121204011990604681180936553005508288399854911255960161693678183884230509658607302728295259371187756647216837116737757566317714773982538143464374290285964600139610615705751036034050166679595231686737055763745127301998568150025636638712633351657598396572732066088988689951188975583931899487679291702190350411512282250605815290152756668721439852481558962424353562774253434156316968413975672694595462929494808818971896071144869315796507544762363780526277335096224062913962798444549207434797700336594464578537792922988702052199653712996095401705848000842429380496120556021302619411453495938222342808590193438942542208054345636473987148499224351730063407332607765178828089302419782906229027782584321719625823112448405711196308833737596129417017361226270602527587202632354532025683324886954019731125886511286790855856196186413933777191053496476313757648789346144719946149854176032126757946111410171007737159270450364409060087962457316112976314607994663612154688641184569587201812519708460685211114687158342843976645511158318519594299005987882447247247492727366731991059567496441281202692387642114592680263420877714300393349262345626638859877352472614488400545920772131124698568526172725104552603959291226654265748996398663335612862279186165684834202092296736764664362423184598397651312491555039355518145712173561602456908227410782877714628725277848001890633160042310051660504122756027431132258167644930759042252537601156005663165718692357056121989446492527770787997938055595261953023549750341686573303841605858075427591540829104356309783858653829387369476321675765072853086482802070486340061179070376043120621590522038532880336929596853066480236048542621871948808498642987782117421956040270199369561741806471300867432363761437509990988609288967434547725900363886194805586918451919250122816725094896806643728764223347438476233350308053354307932937939830419547115552686739165059176334660639297673050737666761746644452459069660616917042165906029457595600627607176529724521309971531722349684731702680709762454773283879898226535977143423017292515975391725752735012557365844878457910597389816586748093983118479896262678878119824881739664714131062512511742597400269063617295243042809664345977605480087337118685846410281061251404473577425949163692508951599307144828135853705443485552757633821576393076121895798803632713789698671237913316016802658971495361669491829578429812684426815674510477077864989754792798971760897252056194777033328089069571895423013949090418526527242858380066263721836148101488345526828508907621712386727663508095121345194831725452543093541892481135967547673703729719521999081976769102752455492969701020093446417781243496454592003579094889938328924560051882059159142830357536538531448369987197707813541635716366339935689510766649494626428616026558722375168531070997791810717069393043793339861097259621910040192428168710845993744313800100466553774386851477489538797524621948204819236037050114136855925506257029893877895508622620850142353990044780773100063322970075076009284439340784181882099724123589273394407342587121231295074131778317702907698130645743306928318725118443283062537803681748891324239294425908304426215455075947704707953319933676353320888213924123406469593561815577282551396427361793203388770589222846327936427893035234229880522979200477286468537365109894716618697556666928670423481896906185064755988038902650927523944403540646640451789551664176000023581889198531065277387102725141339827664660340449292977795310630425875224005933507648980089569665819837400095340969882384364821285598112592992894129645025654720684097503345933897759545194183264598442697785317295642004625847321661640631742351122588582186744593257638812364674831992701543326026542573412749240605402022983706915440994412621870413243708883266330587642949438611317711118594335048935770664010381354422148531724296487590915430008712653137781221097838168085417279030831178792564129700905208018788379154359787321339750179968342068753885841468069606284343213364493819632837229420334359200700773961478000529428580856159478451928725840305021054497273050652775291658065229422577460313776631357086372307055817366456571793597395679867030518761203486770784840871849422117102408753547630935675393988149220479259716296398437233455679560886181786860623743776404293869156386130482776742026506967534623771596053286036483735575945865261020124946755660223975781218847292990340498165644887368996840439394857227098364794846345845634385920024452731648496386492766406075625445473375484518870665911836783313651929096679528835099749535599946425459257675812485906859727908060295901639591943553586981863556464309339155496481853808167447366856101304025767371352852725320357481531121664698239169605294771191373394561933125885696166047548603736898567209480590598141605349028687789467380262415577024836959670843327592598680605537303614880210202938670004630668183994579517613461078580666239729703556956918468485220990487731955158346775651198219126946675006078938406558817424798536970230522547723736543591096475458957981427915933495533341364928157075493465628009741448355782724663055752032220926921133924628965712310906395095049483682194187131015285462345694971021598857787430917408825253697521573893769561732551301283102157127052074360712864395679958937299575598407552814437703541667871651519444087852150003350926757911400471514557565928367454486058831115219851922540595101209572835247612623255514647501187236639403049429667002009310009238603094117621173290289503235103195908888023677964612093916619695494252245647945260141205351997001313438144519861978843815509777041094431809336063965336361306037250182394768505305413241721298828507980200818270630714868017694977204131172530134023598138693632103421923707336140313124369623207957861124016312585738086417790838349323861312821621293068300697245424041975101902396709889792718503111655680852268638085282162178103125860839051002261294349375998777952686207634222820055363781936132371373010385206891478150308800446845603137232855758545146518275463722391985699506686020145317315849481075009991389618064838741422163691624678342974671147555178099610888125788838071599757661258787641091214203376228448475564707103720996695701639740833478251921456942140075212937968871033996362943684621860623119466522888329138901763370845321815977531236209838279498892722500771488004965869694170380697036708533708418578910110256005300251418892803981816967413551941927066877010140552334354205439840285651419678884877303201497232923069116599590056271027374483623701018674884012395105587511010481151105049030759277650840612979547455586463029040041473407025048404512552197289740409760845990800983396081742437201337331867930660540027515712007368197903637448284198659413676137549165740746089624763748704125792484871790513920391349792261556727632474564082205576906938676977273207515138785637668855223647748991646793492490414195535688056595436865459023651491513303654377120637459496190906167783336445920290738121253082665634723474227675590860330631853565410900868799337840460240309387908474787016389343816624299402583919009383674004121157796517441451149966880295429899743923267705880885427769471797879201269644631268545176289707716865837987224046637775035061573355277889900395563819034566293413798690297650641996053272786516804416707900983236086133266656789799756125074692720765700943649207412885332850362650107514067392146320002653619704409136570575790288212030187534127582736352994819310211348655540662956923864521249184143384808112622131166937688136429050642062462351581985523528528535481281513679695257964337912741153962489686099156290881805033224430608357507841635814021709944044404144958847471412114440883780390197524022412492581844934046302052878236616917512302097337673543438115293113596788538229981578299135438052080840272605292296860491639462457843879053970590369429711135696718762412246615309585849082525703378191362598937550111865009363912606483573366096804956121053466961930449081459325473360801064365989722851916979435437740363565952377971133991644101881131955392468212069593183198620438764489947475982428837305449801929862241284138170415901283740383522991303123097868987837742473641521387766945979888772232001657846775807584908600521145070864542298578364282349501476510630642593710386947465479596256742680670372951444222947787514383511096297860467649622898552265920955545321181854159669698235811357566964851353216765998097629754241205132830680769594669347273968861422348469561232025586071453427942451956440977374336065725215857872736911548215639917909888119989134407711272424636808207326095432198108944229375360544569147489451235575049336294683068253262768796440369268360347862867669237820304094180257558787699513379627558945526388069157102941600202594031524095395156317156753413163946629002365398168781889418994127757523697756551217091233856020586086591147755840848675706148090978861127499642649877056501911623032067000101431626344192814370325504235094030596580361638997769933482794192871435528821094339932643302554198251445159088161407220087430914805284761105530835792570163632566494503862299679107962567966087512599312120035807046958575240393372171120899985038315132882060398901944790093783464115749981103301086535898967094429177571163362399966440597961323800644578648095376910413059573516460297838031741858103823691192348836135211801350237913990618819228860658879487748083278784108829092337177877000955041989020755452968333537926743868464334203444468799777489333072757254561862978136447359938680473241856145577841071919332612949345689951585035168333380880371562558487244573180793536707589826391512608842649106349868067992935065661948650081560605582552558701884237064208412166291588921928010127836320634484573152978062637640066985601804850157172315815268419617530405468818197319696148487374224275930472936132528578045567518534680673825909231295811418763462303031187276475470808413365128791821452625637937065163556439491242408482619027468600655734969503752749917575033342864320972764830778392640887091299495870623560466550544491648140293104560152365758052063049637363679487091941322519812712006241143596298092174325702701955446525283128921546469018175953909438432219000527547525987526164629209388331628780789108172342877503940229050060407414094556135236526041875884364655969432605196036938308789958268905166299337225602319362852305277598904994788222021487056296659932121916447529345517163769085236257810665147894057872055774423210327076808395187017180957213828230892385454406979468551173550926115374019005289265091350385009899733595849700625785983487678684158187212148119521093714611649959806555736763397003178382731651225804694663883412057943929132526508014627606343924175233847437335357626622268351106115982990446911444346481617806237499553420251998810594598649868850898055843854327626428583345575999984735277502391613594494275124518240648626880258370966374806824205220143351870778934515786888015277315574180904942585973345385358303358402699738393953750551857725455092659747061578279070405157216087590430173637192197114258289658469698936384681221991580580280866820931073454470482353076779541334345229719475324308773317441191267926224812503193411193997623247805225933260409107386306768129084060862822344638080225914414036963832989182243692240765548703435000449050479361271109776797530951940237948793340157158133990326032701531377644255193567246372518402259497521161099248976710682518628759150612885673641169179159725404442360944715525668052605308895909821762581975642021890659838228188578626167491300116390173564221234221766557112623423348759993875406231541520411598483793981740161796021777599668152400138763222220272219941628508436398747137644689243947978557301478675346252674246161735509413642853868116787746364617483852024030485653997804538418703489221340167943011428173177297197202419661032766233617983915214179709492485414951185753518158807653808144030948117974083741790977529366278668783943916643370530517077885011498447617970588678150791970095114079303387874419347483061785916347185631403783523815821239415783093927629171643038293519979353420719731464128726305305589078949649124260440330700780753892189855751611597890742687481702954438805834266197211322443473379924839535308891082515184868691542729935513400997869224640294461400080536522871302849914075071210626504234380448380651131004074730611506721961460685552199658095726192497713707732588938343299399974281920596886085018610502388170478579670209266123925698010423112784547535418159750182775399139869203968998576190831548721135974260138927646067684427487191804885162798314123072831038733333957290744252500549447082026791605386061946531543210030661558012621711944447990274426578684559604371829260455322351400832249292332267944900419366736542468219939803082644910566413341292366850595851007137335851334152216998950609197140595438084698706430320107494914263812195064673705173078192363552273642080475211229856827085261600324511878447766741373472198364561464121283913834922843965666531519425355246677330003588041861149312888275651374451947268721972928994408308493106195657651028710662821324817064804567319964313970456605378980542704611742252524028044447855031278825155870334109001504699361508354045721873065559739101207197205407968085690419310209941809590317546402569899560132127858338020992687027035251355024317673430580918274327310414680713516491597093496964198022204222195425041861185135508145861440881272023922569082438995777878714255432065414770601317957343491641871973218662433392310404454826347535787683532880544021240437352590115906123060896642253432242560343705534711646255291680983072334203537952947418966368707593426878336158478356721981639146220294858250276596590048687019317374556349227295938173547811557505431316414136020861668011220202674988081971961091078152235216201835704522866819741915383596602984821718062379390180642046578795421359877821943908344685696037276282976257465490136180894490580336455541020878460523157965561081952603703102018201936574370533106615947513244527522100176118183961974324247145230187088007235432327045704866287263934212202151882847559253482307019749707116012796077111684303564602552671102883302521482527967698436019709060550270342228829139624870249535006688616497731070694211955749109404063073379410247728783680191467927495099321134049759940347342988667478687618331347732021602512262434940819533362592206180953490430883052929831207678589175187035744406382027741909856958579993588281768334154094375674538938723790442751054794717690766425055736063625524071216418064836139495336927620906980758739724466596116589352996522595165388787054296715633749251547693305009858607789242346684392066566514044334495886883796579859345945852330536438744629808217378643161064426488285612839198748787899709633290086307986020089137455414210728787037079059409195295967825274535908051014125786882719122778555396593864327113279005889104614229025500720280089099925341128423669803988628788080117823684156447401417150994969284777185920802855211335187385720212731725144918276859683232756929012278254468595215689513942076604519086515409736466852142388815587046684432468251704504969527524643165833625192419015204516716711033610374155175716689629702561005890058557777076732621297113868304285635904005266465103483543446462486296688800911321438700751583345409450865315058804181154053995065915397829479054037358086066480196262485272395888591705991755248164859222967026881904940454143418751647396922087866834350397857511093501946566517627901158896823091276371635472332426409763373733006964430040497452873863355927948227446168701509431784990193501560998229719294441514353625988792113123476231842522745124798911511183064636010564272703445059895293188723569888925803315529254153686656279541712380028412439578321576371898856588334412537849259068771154799541932835633479168160100299678601291801799154558194899678718282138078778325105852081061555785397008686780753839789044403922470170019277685037841077946625706751209590337771898171880832935171376014809293164606228202611626453675166015173353407270239739596705429182352868031118018390705225616183032291963764935254760019417975877244130529217973905250335655770661142923089499774694500394543392508758167236348822947304664487709409212553727478113164458113595882184231662251746328513702225235167498845309564360693836643663535364929275404222828285844929264594118290626541472996979139510031407006866861390046615546429258591136044498909830705722330836146019684528844570098977728164997926575652802397974351416296102176643250546934960133574415579549777906711047543302330459186223439504075872293054147169280545075831163583722124365954835878973394640599151648817536823568644445961269212848522051162003789810044936744732679470622033009083232073420157814905402360952512739976061541830070681781357821150818884442104618286620291322989455194169331069453830421035381915959230532118700850953124283242436838865588627340053447150072137980103801034017486568830853171894206665778857699566659659279421060874881435774131071337374463049549912804279442083794360614939907045856646967787807745393174805065253212470630510042650213987563396556551456707313208309649814501858159355003601926551371093830767794056148929936387851542220672606144359850862151270286956769813702940238367643700572447353162952608648413231041413213346374863879156360234200887318100343174653508127458053175547081903478824831340169738460056875449675647022125363693892768739578072204249687674958625062559405693503318647079783244812742434162475230390729854463112355406047995016474968618579331230427331056021397168146417779994938880026836393258205000119767763862803236151027874598372399639352494252424015116324951898694515469873648390785998129558880142251242616651554691000004099811829174206673801395457694099338370429817291948635531961347626073600467772505125743608340690638384095153367009094224134410221428989589368404319047189231498963475134730516543457985363982525640138345319802652294042271139946962261571289404800011007112567299008348095918256019722560814928218633832981233603986661984932733778508081792543479590211016994589320414002897310957118400300798639162702595302497903454037658970594080075799414318789635724788629138927808768611589568421750159490851952829427740841451261396709980851798260291115493235517716717595744902202431996633219158433304239774848882948600158839804900895985938937761464086810211611422325915940103670135488387238108036169756891310286086491678581479839691829399585722034229664427365874706533747920808345648953113339190494151465686021466947025069373377036432472364623359852336990319434272132825573784095693217163751971331115816901046261634339183761288913011199679447811260831098106673174986558877620206837355251008404303918848820076171307033854392624297555447342784140588852455850355690062849518937468282610494149068303274158361327152497284283393039937052344166855530907302157578434940546806005728312598182259150999752764765645323251316781325091035810338458161676775387106998011393075862747331898675284495921070539859150503834265608231744837627951434170931544821222640689378310856330339197166579295056614986721125789261314892549885511200957670353013502614539452005460721916258454398819473096360549471980158547793043477197392266359785161497505645037135979495991950256235919661130981790120940903084825828600818205983522376425447801461078374345087834709767883607057188242509788590666746873407864741109840500812694756831010625323955873355089597850627269904239133549881959141677998244339019643250362736316067571562508626555058137736355319680294024257331170674069326085988444333386944113925364546763428051424007249518637317257326036228877516884945936481514408048375521033793851417621996510956377404166097554812584979946059027316741209144778280827670870947167551131389664232341882009679250341663482358810298009525377035791071907607225198235886051972919339449223795947249913504608727403852818494480528360834884498014846900048643036111882987099239430120028198704837304895907774627387316714139899471776738163164064908184884931591609151134177025881225770053873020963464979903028753605564686658036184387709974577868931908082825111300637865025239005979251511029990177924270286020903684019357183110794944158756552468882061282088682514684572947162922182128888237100775069942207266701934417587182396424035828935374423167860631141456073114065997094121798925976057753760300975110462275521206952381502379550030776466203694340966209934692220665492472694102324699811339068482304743133389218442186561407339419592488725898260017170631020670198745164903073489554203132708791475539946226592715507570711370980202941550920213410429575699407800518157372276287114090949009096555860505853607379888227926653175057522962333682024875619393805000433818088730505945189884142601734006495719616782210143541663790996760112177513405891682335622831159667652762997046808160688552560194891283382921753722767840565108780690055269410317336709602542139700207256623333715757490899831954749351594071071169837522005071525447467365659448888996470663969644072265176867160035426462201620167510797431513446211022566655111566151895324839848813314393012679116055633941390733120202601353821920919014284197497494036182120283418365694000804475685456308309158545616580639923676447545205739450015209125265886918202178219053508125156640131497145094771447899287575828924766039024389269286316695871247597078726982804930353969617951767925437446680046765632869932424658766360072577843317445822438000214824377406297690276154997245327831541741623595931031858293925509542032606572391560416969766496479899443126652960159444302001127574954626229666251464347918703326000715776028415102663830995521285115854270612384877810415445576128582267201489942412432315243919699952139441100553172998499627161853424879239108681861465333376283127010552740551558309155939009485007064299169360169469326271604124160466001474911183012552344020427507239335545810332033300758152553917434559899598589215024460954506863851169436745931863300329103165323672798342565886069559940886947246684457480035547714368049993027118423102681640495859457214914526316190956022525424558192723174709212532996301217364274719200245706704013985038687490908291200139420183929529819669787741670868207245668134693183969680277133901133584710700668426033959471908043296743200295734043465818402244267244697557132820392231403345481404673019575362975354938473246214886325601605373228377824269602194800875386982907942898221945542269660443982347739291661418204492984958243768098438138198026626774552633946545268651242893945608132557410748914214745858778155951153232912385422542956171146525696156528858191885262760841485288047989108945592711779166464247854488143564572459052233535343821344609276539546814870346487490181440934090392940505743135122035422869655984107725082091899670023364527617776035948028811472669961797438128513632034401950141308372337312137069491002472634248935237910936729641007164048499054027759801420256015412245869270220676363398609249632023769597482226851311636442436804053388198087892246429460819853364953437369868247233124489485107503593859268037508087987768245015562076368395767510314242724897082264075155635091063279275274685737895505292781010212395079641632931805748424803279412292256041984583687870426504998135218971723544910226321198532394227948467004168590363056507444223361987170708060079701598344318414021705061665949976629981332557228056442626130478894983940980079116323475646292295190033379768673782954169514805871949029887874225939111716087697367233497822239419351672304869736135225002319846855138745257800532336594418682185879809625316883159734561445415056006729833184310593673525742492756881793955804902524100889196635339427328083706690190747921008133290837785956170675072258255307513861763370492829592919132584757630948004387248943950532774296921393303867622368098131287843746419552978475546448434968761956460929319868165112184152491578021329392949844373461300750884768374331717241765698795830027194953337774598068711234337458167837120258363411911421513955991152907318838356457153148851840413482492251063504012404941854911377156995367143454012450994181948357144299783144154187301461564236869787972682473497077760637323575370579946235692267694845588893206991278477209872453789732188063746642019888215834689094461621147209666180860578539781134200997822178552906109399946859038247186728904061132654922575668850880281032414633440598134562162323150650099367873587018314886353657862436511363938648055088527515250861778605352749675225631724028735891099354850513576443734128818904862506704883746005247664128095310008271410975921849473403199810967276348346221953748263412675296765593897065440734367832583041608438556147592406318364493984424243132838222121265220758866964529657767892506074519128120393449021185948419145382851876134000835369737744880245089473308598289438202077466314124684154701265312467405123910380179613828231074867809187658841046125069008882773135368598159555148607103549226442425895578834300796510745589435591917408782102907422118975271668074980764782698889711480137943515383139255911385391048165026818454741795800795002233219500286114885718278636950844310771679536055247225967440927580129441581546534929595809701618201801095430378344047836620873743878177625915624409697916435063236071860168875812583447085716270747423326749674431340141840247005164990986932547999555171345806625545870014180008670085703932643308983327555346323241257598611127519844004748789695536310128638218598572704923477191156955153331296752850946503809920714414248943003364429940347316218640591134513390445925447105983752792597439249042197345831272259700562256474893138397261586896325727496844223099825291961466828307376433529346439541883049125111303784219276802628956020695548269925618355642431250422441857352325260683609950308926868774929499357082614916507519620779817691392957467347865479343713460174419125634611203086427373280256327972718970411484638572089873234184707199935614715719045259596652071449141829764992193025653767251531929696363591455984279714034254822407998547564306290297779452193611802290973040446845058687730161573910311795488034339617900776357499970597726074270129166510927344017916978262586020697298826345567579088174334984326723894169991596160900045745338626752918968869559982415607463234979045773789331210731739182896565183896278089043740665419699210978516135710579271489631464367085166917175532677278631534502191160378026510796466745583848740059593791394957365879772411510183913711142111739980021104697294385556744074653636850122793164725724207261979540562858729246931085987665197611489220814044865013201447292904093196814968455897306887647966150081994202151136537305087076946786840191637744133815737577698746425522514463033151890275440826270595694450324832646073021118326399961300819580476277630098571170348524883641837253037125763725370059320041195438540774644242621669661112133108461196610589514612027783272520124481279679031354996932088919790621695114070975054947628740624572448306772571124440320748813474977042393170434430275347663659582071369029478260035531878966259354732792273858166941242321743488518709347075904563572193615945173994634752213339332609493729981066351762513031018755047282877846924121835863924815168000500785500677314581244797937761544124237627299005459747226865421765165723848080255857395244250633741574396003494875486909505813868215330412107997277073418683695086954477320344605765028948729713271906901702349984188273002369658900388402517040853495787021436749194989828605855602467144634525693102208977102156319562488002753168841453028392047451083880450598444869869346592742524982648257135185881975458881927582513737568918541951065723454255087043525601449009244146760603082014428672698317122083304954563226775616189505251986542634121239187893692981145033579166935729828527034463806522785559715648980115873029622046456413422776826989837931964308679745750454045183532068792477317071330693574793664063780586232466962424867680086423055520156099762018583024969656728538277305891802054312165578687424406849660532193759698608273468379694612779025525217130533848984188737743134045104396066179735256837980715369554750305946107372698351449868590670519678401561275849625050549691992454165960075992098847109744998837937524467958640087178992375575135909164222562471817169045283985453391191854971489501849213774998376057993651502228304953892889646756925079677755490789348208082903143463736633558806701049125535601428006885379695054178948584047368553510463590229993439913009134839041721308747563405148093635683369282536094769561405185629744146108242219311291080069645388402446498146923327567699303872456597157846591348722067422925883750178143098867896767719290379142558640941521446644153138922591571565001592022650913867966432564888524761500718302869820833494833882818299379830377281473653852204422409465448852334993084006046904882437189783135693984326088551300990266211404947530005369540432787699786156700478068532782333869557548385170682077492724116786903813288694069489612264803712601506128066114808671614687791176564790755726744560451929773052915645648470470528482686436757662925803735065056507908682532998581574829953018398322250798608024618051369047778255042229129819818243831731488808920989247931620242672520641760154830511860769412575944247899728234825027323807748195885850756109547945344311148202021613821690529012990423962496142175940249493992966692158339975416573463688296682627715402365947306735282884874367767273728491095829776131743972923336287767166159630541604694137326597513436536880126303961673359138591274939480249499929069999240851112746400804402825761003386469018831582711149915433868079607174332785754411427108800638481831234107920431399178551237148057956906404492591712558853597218257778374722834693657231193393601598078408836438039665879450574268201663135510640774772656040837526740422866911305093752972356924006083491509147335802567116531887715304621722516270847100284055002742544579774734964301856032628946799506214574808111237130669864938906079878090422268781513113759946342700274568783935017359127788558593583032878714321912715406456390806173354798061240306521095369257631916292174574282840770836972013374175344982900651759729399726894527922509863714590411180964669614053414068030219141373367003888382844236142511025983012447711824832618477886803214373762111424272034647706255734948791434432768723797445005255231802924577725544393075960686837723434009563284224014669740200394615252185170316168973738550161595827143944787066333040362971210935483940504574147686883713964092051754891558954405749089338388614724976210139549533186088009215470627179502393771330751731303303909313940069317881323772887957839118550040001198888540922746196923865358015859096951794791671641444890209823865053612332844741677618196130008551319307938289693578518170302315223087765955843591095448843776853194749432513213942860394669496877667194613524230717841482487721334001045375394760899900090186302848667434318023363342991090442741050468816021359823389627148701687316334332826516363569939829094382697639603636039716566917150888486242285961814318983468614023827885709120172829205793732432423142150258976712917041591666054601255782882834346541378140142923505565743045461896633192966144982869935258338218844855228448571589454463629831667521968382945696302946645022392571525673778102931862092261177552685362460528500383488668928904722893425448703220984442682503937626375227845515153293433481863627794456817063280748093006030825708107726874473651742780455196596966830992451657730503999799466407642184184749052771085363282417224645384636305131591747257928308047216359604990687561602693724710241760218344560261129015218191832901859839838909796972680786034816551195357740906113734744051900504115205160942706830773419762847892600229194599385613604928019532347430475305976759333656835209441898721923128717917017979539827780658685415032127664255755972785945039825899084246803970511821468099869685408220271561496800640586932501784641144077756687454712839648518954662532086792599417545211020781898812498216008877368523494672398590525468970996289618321189938461572691156538280423810036944219136978460516235105198926259654505100233013970807092835807227399122898716290381471429570310883467249281003710636145274224921842144995555714110561053711667983497944512444359425677160816201735008808991272585760942914291234393939468701823320783351396121812206472208413698900401075093583512901613353682255993387759260136844849551311570374496408784091799988270477830163061673980896168289310293357629534651269030737660295518772342990160824588827000053373841938890423387442005919293324403574914096344877591114409653887935301384260424888993106220632977901218448265421634690759931100563974572539316824039077847242856437451687537944992281117044931690543133628365248322792822880675292286936394545886432214329783877124536013142890854709409450045670646721764600024103595533735715225360991041658094958057529055921018439005201396934918904654143365515245891676832708720791996684274820982637126809994364776821419129466499338191482132305233760376385661076265271931014635156942973396717657441406214100427481079867206920431454165070147099995732997936913754671089738699655439545170754013891595917480547620920430500273321942350912777606859865507517560678843673630812371787247207208398861968039957378306645635060899612333641635437208909667747041565844170423812427560689349627702168490428787550863414713316983257759995141382641913544000016475217321154585126690677624415213487734468336834367231811237443490206091557598534781902180958336267758486987085011763863981035308746340656167780155669957574843649550378076247202096621499457730136254884163562937098855153102584964498080268452350569230717103896722647773257697288995661099822376332168427366307825441312848443890192763669911614648111347986175370948124675168653787674018138011027888905597209041741702446447142714132853525016373629016271414212785025390163575185117214874317039177009909987514547032922228815065610044402659515672497277641934975447946202698082024077811629733872625158449668604294500316921916684912975110092290576173660655663391738819747373727512828165601276384731360215898585768073218051822393907622971117495072262249562150937663174374499761158498602375062832291511222450200524833520816051587223988647591214780703986388233879057132078381195103999995485956580799295700744124271153961492735747367173504509912877033839690775438309711233109688900460894505239383316715432770270771435239256506914076140959113264468937857565176797660625363154733837166330532092045129459754513696964827732754437303308533932113346192779873988169316066546240345141742377558848721747962925611330715263597816255907679020018092813628743594587170798403295083283904743477980056936742969670806056552223186505386226434291354983600927586908535449388008682816284854483676608858314264030412700309911845716645064393740294946121353195035155662510385888104681863792487752410487515505244481393277515072637276920509234520500915454089749354929958151476165735526856270714608381028364212026438601628687457878867033336312887816969218503902648668507012925952812627208366962077600365608542867990354699476913731297454011465940703556907337265966493299038751607524173282783084933212950255478363422769006528501209741754788423256715651161850532382833872929745642800205985154937313394640432985130368188669170902498878970071093712459036692733519517773770237094893722040750738184227021836840932990812961944697921211768377492526327909590962000849477153860489887920878805660725194041368877350723882788828096157002856417364879460988239588322423091648487620621724995880094310731254220516215651015831074529179951371657515415174421386151331828227342376509213590060659186862834552687107616972754447227013531241552897373486455479943797123013467750645522342641288165235577755846197287581476103059941146893378614276012409392258491591534418613478746242705120965772956423441246431763571195014209522171737689842507513830616165167526672002369637391175190361040036664907633870752472030858006839022352856051990407455246963736851045854541270035110965002922653392571484152891485433004040028025177607208687168233401904365261179321707009069790849813262506947977850737457627223539367155241169027699643342895566695539214874279246063876593299134279138996153535689690819295337348553523499074735322094708874074421906137584162250185629335857372101563212858756358541053926524455613812720347929684432053603249222261871784238412587087340742762251822917305704336329018683218446582420574699648684696726455081546364591482353009249458564574110374168232205667587245749592013298793611325505159384517462014694358304699136777785863438000092570932578385058584343744551491742006571404928192568113567233880722527792010137815273723014192299302639168349455960278524429310000593222304655098050757827492515269117231837817653315815365320446619193803119948010767251118804082497183702684996583464676105161636017608195445412577835717551130185459571680541359014317430288801514733434847519998377586451464309740979446774142242821977631836463023726402280031880576420358522979399963399611862021340254576039145881771483682303102958734303125879778528524112603450684892907686770623632989237004926278764831007059590754100598509309323603523982233109650407976469719561551409679573627796982241743623734374399732373018840857567732542995258097969821133391856205448697611684061046954888664164363909281616370006543436294094896039455147529049900584727759174316088033717824627774128322573200968789277951631467666611562839026575247850898297697905375712385287013112701580806567814158853331987583760745308704604937786867287337196446433956203934445233993816208239611147897973452058710491912498306074377511694193155850811621191923216396400233019634195567484967555086364138785831820964636033795960788797843385183211692923565839266619909805062524591362961190063186166022913331877967435562409717169200111274698911584756981158728421678972969585231478326303178786742950886212091184759757168814640518201878879902166258660934996877532631874756364415768498172758618198860934671606171679412754728615764865756827720534343754103485761340302589188560337915421830213437725694588177943538733078085172629126226485932350733372236370464041997042948290574437591185718168331307579074296977242289356085106176115052280420229802620262558053471961031103212262485363299069601978389440492993828178532473594452596727189515237313731977037634997295178607554523006180736679932876209094682691819171235436752009536096117391271514282511946089013395171448446857381974377562809885382920591030914315439499157524467103034676393295631459572077305918919179669279640867155733931525259791287277003293244994311527046236762939083336211527314771192897330004547010855044578787225499412148804939796136769147993987645858605146749239349648768483890119217394923446483106323877656338669948382441596151690015200562030994962561744060033992887188356556616474243102803975440534874559221272151366051231334011733349474099950504938486747279444600656739917776930135937305479502299150016882821345368318197302624748656853198509309969104936112433912498028991930623150911386871590136763722730110610420064120798393468883513033919074758601827921575610173573433572961675865091602417389826121887915600684246379122097823357768249512193466060850364396557168809972539340680834059703982997768033905113914757472858106197932237889902294501428244775559406152738350355267641257694597574191334622771324069793347496053012008548228995336291907026973492234055432191093194821943631746533435109441714486669406275455186976856592874990986315712540697304462973200095177143238298712618237215011581775813913474459132200736917048136655992930393373760768001761082445391768826438579872650239004661090760392762438451714149784441580774929059410973586200602452093096160602483994050632929920881769066859544170969321712935383350130085409167147756521282552995232811421843853474629663278495341468896936458215884987128758828754087643402551406458673898113160754438522342538549589935787573000190629116166205621138065198243856771694304215251634144333708426620448293951894218649799875607536230505163726647559071559470945391249594861373234678152963093675365138574162517267367880862422848419765614524548344548777630211273509256839464019756122735253503137940764132859033306288727092480329132945967002716405298110362973026486898281117031171697631356354622760377087937572915907525025195492214754614392332280473122509017887189389830143956754269189909229591032069850172428799048448811139891018679970197823669319349329687539890534038164950146269915355622926067634902805780087265423725413531558660983709387479191558595703542233589220618241171375801743158678009330983223488428277108427586224442147244424553666682140195821019917333571928002213211291540249659146675910305389938937950873596290462413397577657560860963639514872077120747847405844849190007845763675085706904334775904417844872465288472242837979390307577038342155461860604621773607757512222307891141484355600967113162139256882350250660512078902822147110759681010396996059389502164558612598578058802738733756374389058381211640548320991836151391126092791997670128296355199363182099454875563652283575611528745911538934882733558005279404636433060698076487404478381663904608851280449135879392006870301064278986967632649733398889196106128501733818820021737606376405988892042255877278734249120057428924707500560165248660488397681934721857465904967964186992650531993082042007120488695574653158827540008606427169031919632336020207637890493565154790846384525047457243998717499254902905408947717147461791511476919164256914295836929532962034800662513232649420302494624438898460096757279326775078939537634570478803686125870378228473626746768780398054357629253950333006582804392131358031894897367128856483914975856277525404680911953689791649272709550805223835069994509903093519960276939218997250062080505385449606673978890164624512291688977086784309177999379083494943102561510395169999975616725167912396432712082809606266675378862542877259611521483431246943399639264265233094112400974146321070037813277501130532696817229101709021790020368945875635546128427465905872672627006615596127263960970482997738806641285363623377546362611812523026304231378291287785742163805813871501324628155728420116036476172359454292780912272350690756779017181217796969389001502677529409294115209528232879540958968148037371571081140883188882323779364445428636126452703972522887484089593702495047327557641031635256362644886500675192499378097499694771737431389319014202425228784100163567012509201995837906419638071837204853152077447479354440755352220626809861078753627332373495741086375972274297281474938709471484369893884935639490281964683442996247443998930461054531329231309766512588168084816081648890624152854695656102120570511191913124985495800005516940946540693417779992807378877395722522293102546376878901272987131996922482740307027974117417176557441696558174613929025113209150475926968871911414256907656125048183270277489199792070849322253058285692103193517185741956971558953853917362328912806834910910770339348573288903927655155758589358222363443420065570865438987023406965415496046378397238055640958376858841076705945869043321062777069856102031554334696540626052154573646863010533188369239029748301567347663819505491144270297451611176283683320376113395872028330789469457335853943455607478020823322335686768014542178697537041919969071283839709166235178305570901799517336782948547069906945147694858443972489315587814282643696112342087244761049691934571922055587088244988390255033027179102479538715457347597338846387199393245964934258072417799395241967243164740859160925451283581835159707966261160725457901570016804795029140542179162884759169396100758755821215348765047483094003111979799553112724698662357790909563879535293090564424894553552454114719549019740187844481833750362685695163783243213471606449102822343528585183560043021832613156479092492762092422762420002093229954477355402281550105505865339725241443221200318582537979522879196430967544339940717349866918728812814081362824130945166625125244497822295211630632008724093693992754040230557503567001951743865014397216557098362327116529750467260754827640896492536329903615989460072311995549428839821474204965456201105578387231375351149629403140090706385611259785805951647717616338791388531279830671050736849298857650500250333162576969833498848993747602635084511997183000175345247888228324246531042439313175294121377239095965173500934847741153612696134286215381032090758992909699851924104266286111672603785605567050233156654938540804256161556808367778318531767517354071057404764524706905056538343436302387572553269005558104999915214929214129683985405289767513956485454016745828742075884490092664452764156531034313394317439478992703659076360409862137187069171710004486707084634252218350968974782176582984501122535873032088676521898713598188828658650735759086463614239875143728810538726580566582804063957391835187409956682795394511380291883692620153344354633611359562222800871370012594416461889508945372387624468221840703151649969687277288299133983143656761318526852160095029342923935205944702641939988205837563833725702477849048937820163234803331729084850474782007303349326360746389813782647528191506273399494953892360597384981867602714622288728963023271244839128157761058261763802212263128448005207813064689931337830881218463837328913205730144963717168964703388268073208349259193298044526297095356329255907550642477082039705280428214376845574586066060428683224727437876082971459637103565380793128611602672535994128764332640977251863155633100074984867205638148275685828618181290826578643929423177120696150230739675015092029695712032884549376115781154361745767341196614559696044667374558756943179943812331882057538402144963789589399243672751359311408721602840985676744449845116218147565678978456636354886267633047297475888771832438347287337978211321016683187195809706931037914797702121030547519213805557079182068374113149977900134211780422200301319592674026790034503854213284794251358073502970043726600397518973122763675893503476932096467467110960426027982265600142487947609576700493635413581001161915739292151828824782921141242957407455121735928695331210622383430600214216289945398321694895270738843227693634222551740117495132500404126832329268914535501768818252022807216142630320493171792279164640646943321410712658247848495945103701409706171614142007856650257550460458893058063872866804529580992365028315542732324093043902000090001073585531664528367682290851983862286503785609530728189449257490184534750152367615665425206248077887493408403719132419723112656328413327350328098380586419532229735000872479195126673274323079428026318017975161970385674589644971903468801022640578785919021355882031743031258106714780069755628694887140388300065732432965451383008826630690760362253197413059466649570907506054599339127311665734963029091396578178393611660909700188541558472496592865925538941937654844186378092108171350547635678053772108860579783573041723788138107451073530618641079261019872240519491705545047560370790872551305355639030299744600519480370748645783186990498020332207590777506743161157526892587423362051561986983456112284003434462853781941712170438072014671142503463545611126456738417838565689965821001536744768819387572394726125543829898970284635226540017898513179790209784168616356669491327673641991383849086356184529649481666014579065598966911127834690285513805198490680361114066436740360917252689903094069759330408980554150835027539055311911493109492333801947393475778498033424886555817385577011497854047539823489372354100714657124675947756272667046208621800641497070661215931803547911371531113029183774155736484698640944920797617453658997245316608977066781231717833476991921750521220789237256990196696920337604378224209693236035682775218134300296791681429625265454875187488680223041727018572138266400235039306943665421095180407226189483918107372414663976749871706045559970359323956927032886815139854163052982622787758769814134419850847275560310454520597962435865878728633691108573461482198542666344632571235831659035712195222456356084921283027481408226587621658539535156064384664268058781282493946312952136175865684623365556488853642444982581851646585954326516779645463481267148781892471481449329503117407165289653812111269403484220161886503074544377815118149806519543208618923719745136728732418487415686724158144964526252773149095703674428818920235617528816605047682616931251614574423492257995820942702375953255069066794652278863383390934089185348948198238490433200375864612736580577544833909246496270467552049079387646113014909002837804077928959978582613830309234148631453097829820185517487162285985173777756880571293882196383589085279008393088230235089880248435695990448643867455631911163898105063863589189542609908897055607587998091752075055857812071967885426576012547087027627925031749587834549223003814028052765959542712610054393296240547833762057428540440592194538928124365502457912594226044744346337982664578888991814280780391556974507595046987299911315680085235154209496957583563251546798425724578457030759692230986745142007119451968067357856361906782484262638851242486032279718865751055431073619672564943320593048196615259962560917995029073068960069219513638633461264663225138923546714170611142673520602469133035398848724083363343568538701236324698642111206084658592601287537293588026397060184616454562479355125318670082424595558984653434018056271032271882367563510742271491395049362232104404195115786738384788219308324527172342389481810106443318951006018084347040423812598600960089615806830409326895218026621706440571823579831554558143143196862739902977953170114728011918345578283957416194535771571352932411116162700029951298476855467424881413986110641530600497236902358658810605389544200962150243515040400955577251061763583251924244739500720876467187097114432811892780212412677820042414209511923305979225682769540961354873851203241265258514321804035414823689939849796539120059078567339593088152424768860657231690392701352383823637488802724529628934546537968197569514415599123195502846221719711668493412831251516994377687510757008457818400069006783821698910042675660083861247181808542522857188324993758106881048917659999751477364960824706274995068858658260716383492899245547841878086172126808566158864912570917390191251828578006617174608258583334840058684110099437689328314530099948040625615628603225720388914505104957460979889103533426354030088782214161131736911629804251508089424899742468946154252770299793095922505521501035745773762662189628375434827509576147023039478349358790296203105956992142124944375624354870211620029720954323007854680048964822363891738937229968469270684272286903868488707420882872962719110133342822494848748918576954299864086817045795796824127008286463823046143850725771318338759617383743670660396069443489660978077575886413935436626046200584935191189585649514142327152003681535099140638737616319071011577443801616761830544864859138073576625871476029374853262302239622778133122447716196216387134970315231527304310582695286065551674462984781506554996692449897832095967091131392188229906839406273862079309915960680511181345151436878270772974442221512382197129488331405401214152633623372581753880245943372161344833284493223972360042575192405359321334130238677559852470201506517192812040511268187372705196253265827085940732769500855153251712699261731429189776429229008770299766929721156390665608773120630272880304071680595210252179236562807524731276133389818447492489249515513519549913184899628013867616592553501051477801658689622244569526579899984477031195099175497121658601672961175321105816956913882686577927181658111211624273918670003480846303693678681776034832221915710614265695762075117109917809160991865339354514924247867364811236276109060905709071894475806853206222440498627881839684762011074661702601092629417116010146845987239564612777514903589496406076964450774323458185721064759217927751839601815592977975488261566371247199064730362651373053075855831777704956017380876729194539414151253544688420404352868621727322189547565797054392801202511807304369387269008595778305611604943508068551843756318143291955804274176260039968617042707531198112025707155841801469982093865046166404536411428185990301851325498952292110622690153717249649677976625153942197394349308833421207086740283425623743880975500127918930429399007342919410406549456252142341698764249108027803335581392598970586479760298404612502967112888131054599398352701839668621454576392512635979156995021076313081551845365927392372100045627115153350084488047889323817377758607326873319594152094299804399538756096761100435836868882949373494876470555381622780186332592412587289417137316873794857878768672111920607960885681778803667367607744352127938255241649570686977616995624356134522851379281357128575120144201733535840743373550833127323426790530321109173542956608663683438125851990729040797923543475458929305733095642651525664990391501862560681729486879589742540239977951420325749559748918261630062764457628171727743830226378212815283354342454274555157260845361876739001712343524859428952226630555385552451946283848768409756900087748863446367587863347200778338282641246118977940606561568706823280461054021832453548563283172607536528806698087929677490847592300286741074084104587117813176674468216242683883337989229882595627902116924719318708978866897223407594019734721773305671916544630438839133307969309184123341337013686868454739574683527271239277759434051618941592381836758019555282032096806451221079675696913615548612710884475131396033428333942917298918709104205161913593416852518787893313564884189895023212874895002923557048448992385942684118414546770830266809251277303367704921038574185206470618925632640168378849192064851529322896347877398113934108185232934661596155138828494294158073760447905039084287469355932989065848603161563836460124318713181517082817554756845332202150378491572464193036690013170157272548158913679364435078369254697512476478106503585909904562933352891568751193806476134708846143156083659196602961917915906662524192969698001080243320509061808387582244904344533337246146334906137698707278883796426941488097195687739559745235151216449602609579537822921295690862382275445888902615069477676623650180412862782202851401702155521062435477556673381639351434707836916082858182596705960171914074690679149818138779739778785320712867758961016646874070510652562451449743429214105157212803111093702073742044622272891330555865231370572360778773618732782949062287832786419349505869959059636508434268476938546405457882218467956295131766548617835871237334376289790118690372459122739014329178599573241869236414684882755108085641861177735596962490686963729012858436695780772530528603417465428542992137194962856987376797513909886795406239541069203911086866603174126507141245357040290246946768761616173260850183597510946451848877283992603328751990602089668967058445820022582280390114007249481980318375729369141434435449828143847928397165352477091749232536669325506570824449226290207788289539231255161222071228730103906759339281271574079369291099477452070416964243950563602331114386313160697072797806396446005185472236030199021089123312533507625202113185830315840943943887771875370584118777571639233746420319083256104417684111159980256748094505462371904028334810968390809361467152391421210014750385057445357154868058886892829628147233132008784677773126373335356613888655602375568599381386197475891274932298806018902752713026157855372372374564000506191861258819094266469377656436872400990254598038055156013214319295566985725677883320981553186306998451869924495798681962135705380264692708009290385233809892439732658515585715294079658732519613043220242884914799406927014800847027665915858038152326468595069935566646348333804665813879850205011956002908022334761779431663213118338110273286822227348455208619231200600706347566399664359696163266140179670856011339560586133418665915463635300423405398999846491875798275979325615169619730941856194822671314701359349748128198969117136557072729141440138664937415237359071715534983075237053019046146776952185831569981633430485852747552585747871445592851576048488157401254875138191826988247501494465099254923350545203388190047907981723946481563733167585242836887704110178214651353132375910948597264900377655123752838568796075704851589139754477577050129284702096353892505460462610148886284019087539554536059580128857362228541288880863517108474306449838008885701134501895346022288037801803815890742384445280599180180808210134329461122691387088328055708241829171541138144161229535776745500546387332707041010735848429857447679109366250776817956777301666014849198741377876164809323473042609277819176872644584562701850693638760546376940872905043293052381275381924493254539540107879340363692088590466438973880319260928309825278828732954455476906964793596648732134809375619447591185119675590539006641474119839426435641098320751639386941593994012206695003086542533626551513055724757404574056293141044393692100865771197769030911834421610302343845794797516699294465671715385354591202696291103832452025636600406690660774394828615411374556950746309954419985120648882905599809950919651943620286603740505879661823243279702864782149449104204074529524895686504229102885047715061434820653920483865065552856564249494483043649680072738308346808353574950286691392387918515276195066860291287743813649792033971298370870248537269965255390916619521145666296224801576632979120540019614146020186012031609732789647115182386776990179609498438709832559588733554984534266166157795970800260380563493404939670761953264732034523753170363290159396804091521600252196631425786951570550526512701501102994602815440423821367846356902874473086852317346757272666598173696615365545101719931632614826525310150849189847733579182984932186875949311935820705493811662746059278950463103939342886752597834412769169868048223856646651169147193285434133439381994763774068349860258001287081790872820495134982331200426455842141600267952809578825656760223376036527577383790058515760346679436925747426439558588723128294370095669836357091025269098064147347450922190533515852002941185477700411633220085479208332909791227673809202104741402058083964644245123395047130753239387506810737158098928337464693198453571962176869487816993354386045972962167107521050170272461356700445326528355752529281833302908485644844183953798759424764135036848891409191023250636866472040621255135221255713318030273024198613646334259557380643747117291759395081748608722951901779346952298559253206261906436675874800480735520875164955344363845150520562066905962866527625043855717380968424610952949947841993832460470783167019051571079096674265971165571706056314193949545854412033560468689533514483126259202380091870196617584781792966691330295141545385540393429104636186238348193495158498347059541778230244401856554327068724107827203882692277710673399729594968908355108557547822797072540794813868689311115919198937100879342948062797922404157472617278000859705461025951493353341313840758070183858935916367779663100994427891566701634025816540562257572134606849876751002842010114803035499406460717097031225296385535193010898586957534028580238001129896555611617264624376178309725584512974142750955316203347210425363470248416022598604354982810583852398452132598577926893785847493338550282847729852812063306720901181053237306231702819530300718212884134339509626958986195319219621137077330475562121620034953411464081241413279457503425550656526497824075685863352095593868975435547090498807142020942084423204311470317873055179840288574417316976206425343952526476306082584304473747969608285823136325555550920591750185401046384692753635235881000097057561493005234400145551356464501365991870045759600397942400853400737280255557435876911959015989041443584521360209355365018151417776815768472878746888353429301650487536288098316611231005591805481464497615528504028701399951550538695700323198075928661608184618738987316577319923788684415558727140551858394321297962918381060151559143342678647394288706899746061027247662241267450780771368156317144820693462543232300867585498137587096774720323880083960299432011233113354518525065465832909322585483751033312853232100210024900220323176250191412902913197691795612879686377801442650958816153628808937060179373703351123861895736287316021848437125957227256428737782081845117620861419337272721135122592195658038250670472594631839611046409321459288132179513432779739319328187675761485995988610047168479654072916060115253020069600028904886290253421078380115023701938668917630086050101074058057772854978551942033009394394684828168923642150347542852529470786976907924815717097402264527220372956291259752562790697199644935551005438623781424480876974837834721398830205999673328785974002836529499956583276388783237826171213885836734007583204723625315106644530533502335614525323882510027495661202892577637134351706170077441667540777664392360490088229030483522751531400493196499614731891467060519551372467085420963767984188855103476418187730328826030812415859663820759084105648227683103662231221876098798996748605507461789314339063107008342376296395604671510937546715454370043921665587462658864848163914099198037077309689122511235171631026113824018202151498643332533870450146886702247688757397893894455447910368314183159578980994784699893620740985752263705118438035561189706281466575597790288449100168342607588722853628459606681346379441482933549339414821591416900833502449212006380422010450884915928202841423755208065092258966080621342701799352748503030307275531619551284341480097443814884188618154404051409054735756578027848597654517327269474221012561596964427291375156270216584884289490608019367038164604551449534778410167489879331619536272253711806444986993228281480698580026697320654239666128104817261488440441721876006036867253686784202892113799699894982980740961651684967455352618710306985822390407518870186056809475372755728023451532119934524496754569470720901838648081904884665019039368760208876573066180848445122906846073593042298184532896620643197906563343069409945265870513244838156180762801391344241195513146346424414228506481772520542766820858641550681034078456009587955605822011183858290828518636654444643007380446399323887036113084617123059165183667411507284700917842058146321035534061505051979120642678625945117008794304955482759438535843639518598557894336039876319785185553659879863843840753159225550659500618516888399492318775731289248279324264628397568186239733326003954923340263701941583143719214428143870667385271600386872839736545074269777022640006282876934095925182481957177031129779184474835705427327928408478025698353205647377031099151971287065645784479745008019909869846045503707600974236923508224859529988032128121757517406127024369474477439750051733708708502067078976669309756490547028222116701054132706814872663640092769775617329547342707500654852119870992127934870176499895352329654389466366047471798425680390433385191567302187810514371737540034922403923395431204288287502775747629341917451805339148379041567543967768389585987255223602707972195530928955350561892294623561610674500270884405032275821618157075920328990725757587481589396496476061042111683340587461564480461691666779232500905945595752579086451020917893452257797353507168012990791488976751233335027800407979078874534249504880169615835612303656436052327189037130637576667631613099985762067424788505281139807812881115429438251556869833090968859111144215926763433306481846283409387722623746291818880496304432086546904532816984706686181126131529661822966983460554522021962843077442147294857867865003773757938205766564130153719168990281054777983617467989816388685744259925319129602979906442178096386954639258068110542719826769750052779861745475895418019769687501265946617568283749813618100940250647170239718614739356209356507079671131275641755544734487259539756991448860047066427827388539385551934564109879351201646540881512628063313065768612937863427520984114045181259525442295708283405981876765444735975009553386797568453609805090433483166536421516142310150429775491701882043574202205059605819499388741164128866698377763977733293570106789946398087717929759505947617851228713557901365612921219253991045709532194205626797424581717797210400551270538682117153054919855933388547269527816831448567155540153343070945010584598817921596574286351059170309435851796626985338871320689280739156275832276885175971375945179251780607981688751769546264587571394891078621825875800607089317664556806374608765948346913095860441917232793436499928487364594378140576257742647507967953692167728631985933137568779028658296059419663946029799010998401908526090534737343189543849784985229948273259257771239815390730399749844293833221310985389981493445596460029821554424316855008358927418967248037208618495687318594827852606835947179427832677280158763037968502368219922156602885994718456171369903710556943626315042923486341456442267004900555462229353921541613925475978282720389762860723961255258409557579425748833872087242225460979535533655605178110399427580846387849471763790444918207319145801773384579460924692490677719327357915211335475580942702528591452333108119343959126287624647578506154003221491832474489411296050105274437515960653527589628449376058112805915028377150357153729618563754223871307126650804411610555847679787581011741009592143492638991850196472720822653464567186247010231166280775409123970581942511980935783685229237764364866608200164710132933762688431925235773620843142827366583774340648250130374917378760194960454654774696720187693567350970234049868005637715296184638308315780818185865191795486622098857712429795306629521838107807598945778304929516455801881943967520510759768876705148392801406828706715639185336997332403322385422366520245248451660521928577147837508523175490448857620760491044122370657044553866729065278406368431174385849137826318081462963325041626067754524532495842978000571464424748652483738566958291445310197597940462566575287185329651822314171585763074941501035780609732967031354264997441464537279094551650595404853184895499844149320555723846428580146634217659981635900291359285140338143406990213445780942939407117480461326182670919227264906851496539866853055763140267958726188608467098519808220045252853847343279849481381648983117275976305345223163639074452439990225216143055121336256314049574505357595481564034064479281897646373432722156758635381550736099137184086735815877362761850194419737281377054895471914113237825588227815687496147160618825791835103638153857326039953021223176594710798431881899156235519670629498768694927704288066058587041730121217679875958627795355212536742939802172563239990648863264226523017161035429756141314087600003261468142807831516777960272916852765273360206693857858425331161678715692012978770945945908762392189734513516013254063366303506425618842908837780668035017435169934261462159141146363180568787004765809439956159103714116694206812374357414383443640608873018354525094606795710919906860205299936075894320499838182524719856669486071841063823541699126517326260810532351952115598616467707585733648550088725526881247343329164784780973592129278891591126515196676036449883242695444746382271698268210962738786283868839797572853764698169884907557457517986536593580134453120990057662488249714055575777157142900117970238821510950569993346036494047630023573675191401899411837644018448999981432944460693051207904269224475969528776638642990024459713590407003631729026458526043896509859054568371851887769896154673614175814862209132112513949069084215752406086602507181651894845117022593390944954572416530436925128519076648883770183716073442358181863981248990748237077682322191020813749559435340247819266887078644467774516461528367192177997522073083063224775612358633024164569325268819920096156359929360000140080094573740027341846622068387236831967472441679530831511035971972511408812174440832885913785612354708679267023641285413556642985059687578887470398308637372492546450924427461505544948988076460514432269643631331219131067451875872996424367255822329255852042359959000989643568385101114561791054147317611855192213426381763570867280834777352472803684069383911654164777378518485189112950497077725152147459632952089954304817608823292596636838282753022522425116581360237591716827644023828788194461323566319942779607082306607599176022694999842173469990803652885897290672627645990508144151773065505745338640575326458400395080089046204383463652800118088423447645576180169749287267091190636082870108304660003496720253778475484945904675536209332235788837784460387312490511776045902528787246766055015922254822890848027332571531724976075780408385528562273616512488371149532776035666933291881947274948040367976107477240972350577555861418026686658453025024222435577460070346398294913942162242162829541615808031044938955797608509496746010131593970613061467707121599224182562885181996889933422689151902950393391075270113510918824862553860503931367760295342065058265530708660149831238959895759482929111606049993266657120880242034966149519211803245110454124080978359532658997070989825682170344782567597177597964928726444901249322779965998065230648803217025616210491636706167920194341208717312074893495256632111007732128625578156039192582479880427876683094899233979408091322191589910877088880526479747512459779074577193262246916906008574302003731947904568493756687817489462753596277551403403441074496874551367711102126716504902747849966879270158708476386019119373439290243864643280665900653176039132387101299323682901343618092218690604027050119813667941045422784207568982990211936190734503047913509625450431066176798637961982584982281643418596479523071121602145454280858941693138555677902606943415761805839793123090108872301644532461000389789987505512510360879428367484544618563249135303571913649409572577215351930098305507570761197795031193028034201548069809097905339892884479734802930662712157522939305295837652847903502480072201200195746336367763286743088308625184532307397990499629828417608488137841353943389037328982997644065206397103424897750426506566176755370181182991340216856454405505096210816774424903120050945583765366427503976225826858023961110783235525593228065733787806812344893907809814704873454922044414228313907558337818652151462648543541364633016355575096078328520715153978965863681060492285975128989959299592517711639719938478255431860491245427743950291476251383610307216536824037837772846559463802066438771165329914814270843038187567786509750960096689858877539016940130021814329639861348324084206057114829507728614997128000634261336768567356759746666926845317061710005499392068860135909225262953869721311020975119970835356780147510489416689522196561104017392645391944391731420620593717075536654941880636778045112933101307343500031974083876806236766261414292299266503441068784657718608342622675968947615680299664495333354456592581469484330794288446728846291567988689350266362341915789225867846943782953968258378472773068657397255882635446838787022505418929950330954034031119271618006281335111646667401837604223820916284818887320154160492149704470018803918428483817339971177173407922043101475250591309607636709490478790353997997171112402144105423097407162545423367489874558844388764454131937573621276290626676303665046726465303229756051168451921789577907866169647178283958207813592936036249416344933926817535664576392989989161146722551910723268766986739108467406408002888501550726286732910778059157912755246806437848189698529745654432656322788836517595427706259737444395913679317969431574665403903052491223321963050351788099066006429429372686692471251082538421800016430241334756920106599340525118535260692728007426385142471195068490424820116797478146483287700248911407621970094778010477907222053217667865253791062291385812602488978002645286541685875727158515202560267927164988524295342994022668081474273759642692246659970206582726208057283725335343067473412767658041033815438361495418987647109090139624668831818157051050772624223805365097735594041545579126931754258297144612928507244829948607170634112751443496132748182366731824659596692990372481449959776451444620235233705801931025733433454588853369090801663670422291444980138332455002723322568213637450683166658234579277058857039490162660841858149727977549876976127198522458107583371007358094457548560854943115753003752318363893143995472213672698326849244798035510371896054121847773927306779962310833098822451284815656675164037695835775415445916065831668616743370590651163349564328270693603592699620591248368908695711527336257711266415765107652890992602744633351318623068800819742328855144703186998728377308750063605206974063721537984562970961995913421275172464876020543969527010152218091320070620797583607928477218545444978362810353215599535980268439758759157301005731796483340078539645764005571970181735377811386350890530765043833242787305089189712174432271904846482294169230506786437718944666759016690065942460130893904964551605915942855923896754250041453005216017534675744142109888930731590703535531138373680674911906988218556354093195164267213594355850917186937440419201466883256698289988333705457805856667327072476467155163863524440672321251589950557198869011077673324623290126594185340058780002413355889103555051670160044190968410221940655799617811024759333524461259002821642591118343747419351590412213390901390738178996227360866452793070023282050047531381352490037851131884843738496158548898286056376780413491574876638950524697282923057527432171303397030099707030636020347014036853494329093130588763537671242134236398536446507072843099157925751974667917604591343579166795535157333440675664720509576914710753321087193449856442512470403559101378352922404601722356406507008974653987286947341603142825479615109859847924142922006317426007644506462668293332953420984400366279022378869745051509341462527129497286539661029475101552615351979877642527858010311772914257283774293406932192184626444275368786969381365871501758233529781529289464197687166808627326400854732143458997468416360429607618187755311086874303365805616612418552923850355549753917387078630911429218170945354175619505893554259020004805528257333875287215079012662452973289138229269029503599670662796336525016218662083595330206578161807565423057677470939098919710094857394408144406761741962541825366093615950883216550872051904969225925591388303259534731859741844587478585648497687516841443401813975041578004860647160549665239733291329256254813478235287618261060242707498839304181073648086767929669516938221673702030686675091195307506775974290040836090065461105581223800938303188445958495036027343421571317678459666245140217329224931871392100251964376517397556930042666286241248804909036486685354391881527274830997380278348785848032106923668064998444104227307439528669750469608012762262812917222500302251415745467686777882580952956445314614766037289105609429550551693107490197440399553691733157062710492230798751844233043318313662996682788994326630475912226887236073391578648797784290028992426625475014131608882162281109023777779555473354815032245273295586332475558636173318775862804628738781735928371809957770870466574208819371975359814320484889005793641998241445292590187803577327548868287625155823862218298903326798500341334758794938104955957379130369619778102727170810050480158992073053901914483319028364006261929851173897226992893545897379999779462314437435346544520704759150941063660306435576270260770988691999133734128498836114357573599679700115430907692003280821400933071988106285465692977670116795317303740994838693235160650827878807239311258864988185085105742351124781142184457963814216242346979748930869429657106846652769385724841523113623687868975147024480155076581495579211272105848106551740023343337280609259144483552156310085633945649712799139778192569516112277760633376226899589025603517321203323906910742019625736495746337830975294161458538870128255146753437297966323433374857100391237436647843748369559225821713402107902821478209488347683634981692843945760997352110847066977569776274354707581501880209887267130758514058217130518658580859083520470945652590384240808835097973261859577183485297340032884886018460331955706425307081177236819488868106818663470481856990183335096269437141813126165357731324824187018169319842887256007693789003974114387136676395394600376581628176309107146475721013789975559373824290760653492156677770312567339564649487162963138501777859815286393613290262096685336375882664742835251715937944488063093075327816036331793355527379369494430031244492624318402657772394046148587088829303053526701493759642405175457170661453491941092260765584523543313763772841229160446949455508725539076048054703111433106262718769055746152784614639573743774440016349798919745165276211896821516792898369096038972753818748301003679668384405043731295567512756419693872644620777077431651252228941457475556541621310114880319349701061258000415175377414640610592802751607779484302423765676741964303427014484507330090841343971765597520551518747479833239385337641747326665990345735400303312822557916267215009346316652679722378602605471941613444524887755402397477442550771609510841325200418706368344999736437884352225400158603521987771261488438466513294703675519771278338045080594882994897976364875077066818989858170046835700174807163228181228972370451084763017982068246070199100163575855402191796783877005697732036359599867373680105935285077413287964159118833207758264446979228166010383362734600900678931611732364382135126737041794287232935712980188907242354317999695609372725088528162224690248906239708056604368403589258024014949436699165907425597224649437008018626959116087300023034623238300736608711846172141642272373758168249324213793549966114698847857844458888873462820152619818941522194344911491542917094874536075893463464395862868172384248727927835807866103178564803234374365456577477644810036562477959752291207813825659506373522520872367501649076057937888487021929939336244053142849475372942849314144775060759848390436703722164083462083808426703921448450858475735447417433052164483956648708014494992748030256413268070485235079921351696317795072397301801765999105195474432060932784284023921548585782904367989943157069594359147356713115645977990965989405980527119614533644189782955496950169679937476263424837029541537153760836665816105325743411380382820283263391313009561407121287489706324719461856256084740840061039059900923801990941797021287068853830577376858194918096216276296735097745967635861551141004061176596233538447245190912710496969278619643539493641605665660808533132593074488706637330083309341701982714426243929100182868241632691483110417698570450767037597248763768561919431896393898540993501856787757048279787274885829331398256793173773756909131352120470791842362166543345685541748632277759341925408475531831832700172895565476440545634985385007222827334232859189602926888672509173574257952071409501042624818466437719145443164319554599583047449588602147982486375741906982394425515318815278904256610993391730192042899294325339844431890377245601328534126978469136916101394999486691499046242941944181734263487709839225432433149909945493065499701682312731722787289642541240951863370470887363616460091111799255152329137352381287548255678444840697324767424740691579408185002971478898951469006399201877263004397543261824288396811924381690976700249334543651400288574262336241627068118516938987681522735387065819834625803680302978666574121420725371100528982507567064690139815242882177939542624331341662619925691294256164422605987750334853887219857428307436715481573379983492522031262314729966089599091270831395814696771836101822567522668859220167742752114292968878791971063026831375495012500805219872813947638079940352160689955144351593988434967004186137107756616419313711324540145640580547280748625799685004251138795390290757252881944223924327972139781859508048895684956870862158361717853657341639065434649170530113643059006157886119522526975705493273880379342173852653812938952773040841135008422247518171759616646602262837131746895958343623132188231848039782598091531814339689753315359835476973163173064743594580946665457327755426269345975420105470866719195874944855408167413589311485509437807022357273947817580325531271702428146532045587527798589021687999370643013779875104386867628632985514529838390284986301260897007067355452798339034805690178249152668689712249068677326834327249104604417497072170092724137526288285824245570831968800836479547413030581526735792416874572650951107993104137493437958801341374230551789589436424860407598627800024470304867531170109329373097987215386128059327541929514685690075624057499598017539850750667434319318087097197521570815530131759936798239706514712431932985124671930737900607697468118016982862053398888807731528175214034501662614666349234681996435072392441275046493346331512823713427778319344167343828811689632674140083949423680930027632520080538666115596990866283018242845907589851271576015294528390301952055988495100363013057843732425184546217599572955072535321007275652706303458798469648629060796309885358051386135938764369784927287431428776871098582781762392535860541754907102560039153758655027721129635712446499789324497091955158599819042141243464875504482937133963597888823050926521858534423978270661626966377710205886982895793575760123024643206234550574431597444173773464997823453154869244248278686840990184885200085489382904340203941646244468272810611699649707094149135922164496519541517569051020696850520967394723709963339475452619372661052999675300178500885140293682693212464306060061873569863581957043276890458245536706353589752885198756022961540612733277449540711955294525735575117935730946844013533816601366989660104318501476383255917677850578524901385495411620728337196137827783541749227726460610178029998504822561211679235578654635234728744834449733052657793654841092205363816185294124999217807103606757090767290509386047384599051477680124719661329351850013402935017638591115842089140855599593143398646484049938012044289648855052777494317543901898041109004287961431001096907666090312611711043448302984070389630918290653782261630606750609690064543473376340983932339058236520785469251720631181977143747586346575868679901361339372052057048238842606413197507383961925604380368316013242965909671521892380482640358093066886435949391011203679730604938307594173283100862249961460763050998325154817868456977706160982338700507872292587335291759259937707954711413309150296862942572817698942446032308166992877880735897890768822691413727209909657146059973311048654931434569907241175978524997640877910147378811296496459286764160901413493848663325966603920172520703951056212650521109798833674771997444363528869718661377768662981518363471089947901174534504888523323642517716017127622839415157863842333977224696645106624999975214659981498716280931455799891057181777055096772932320287679592283070375309129704780531872079140054109003881005471871121504323689485844272790583424016708549651195020572781898445590044547137938830749499727057494919291256783100441678139957842886552435652883595883061168905671934501753963751288877324343858323403956171963243771951208688242426240670978826864998668278404461966309033788902582150825619956427364213933053524021102023210045175012278379878768405749153700367580610985413808371377709363260295444109410004658692503190423955743725080356755679036320392844489641785017730896528644635085006114471079528108637624268294734500063175975480243903338745312643905119303400398953986875826103958143820588558443057815775846370498222418010390767296358663715274064106274274531556637285295352714113041622573060826640501294585959167432815979887410285322830099917991500866111137468455535321592584564789837745558331458126954228119683654171954349640526039367490960112677032827479201303816066302745561633054225979550434354524653917965948606970494392861213880579439359867614162190719960140017211861100527784004632693120439616242463774566072787679781719042553306002498448041886624160209637370595095680619503463118831215769623579465137132353505399387241724746949078514705098216182386635976760474407375399008726494293149484400710304682306355003977101024076978747711015354311415040202972986378689022307622826632638433532458610163115229431017728337983446252524438446772207324839953450947055242479085739954339308373015187359197750515903545285665599483317056742973802474672027886426522923682444414718836422805416317438748768806569470448629519830641460424671895636284400978463052521579718986533118146608156605563685677188301456617868749531921346955742873003631822442445830593962728440086610491605191937370269718595880020045667341187520372840754905130598416166833741653825807531549237826051206224948824218691476110064918983240241816949915100703479720624743635165036164807361277824733989408666072732242693171207450091715308310491903171488024083195477245964408900816966777529887381346350841608543465798579676408435298598672976302596911012853396811558871764674802050235013712531431701549103700121545963141347723401835112049150196447275440820768146348589106125604200942896306214455634696303291049597547320812842402544668819553850724285168040391891675632785913793020895162635516289349309892278901593513845585818504432116621350050729175375194230527323648069939010434739599071850750157018671355405038189418221088208017805951279514955495221307514704617994446430746025332934974118058365071201612710859295190210965699636721649575943360874379791561635730997717258507097323283381984549766649591955921815366786502978329275704887544101401046731938202277995012566917020049478897806238227832343770031709464563878105539763255967471087061894098510486054191445115308850166086036148441699241661692609235384397521681004755759243282398775166904485494139174752040303290553916961398927784395660930193121692934531561110244937403655574881116815992347068563309741873035135751870186626210949410047067202983032470858480866981763544011387592544983886382577310541901699554928898258958401701000480453137659814553325278181588059471069697907501090357988245530784904530444361195845010160150779603871629542634907888167436356823373181352103498098042432607483495317746832089822034045506635841199837315342091648983124651893881814610233574070380124067151031052829566584135714270737713677605309410577614520579168640277020187741192381896912881768971483063303283489127564963081473648537873206012614718841774472621100662175596280109946167673950888370108966177055673602997753790413796724070489154735571259738274084338984679584505266668393199033215189585099363302944806877034210773222739567412699101223138388582899777388511476339638003897889652036962394977552593806652093705281703372226148021468220128113201514358571546481962806827776001864702148810814987246790369127900066200868397772790541283248949341892229764583713194231949168443565823030499430706964060403038596146695165376669367399290966418949446417676597597543121531837171281919652618209512377127480165546664235418541831572463464658289034020011565917377511704755784631208724732874606401125028224530272533621547911458349321760179991990655989415130299420684375887312702187723331082948080221613925522976850136263781264830099616581585038214209684903729406443868243963791101406640294175599380105992632406920420967695086020540461980980183407217031096086656077051446258077281332835883575806903116355810146531127475179221128666882739109594684522425821687477349484043376685621873367119330248373132656479440832877266888546223557681578570721834976393207011845206042478633533476535744728537759114175009075003845898736879547543895670293383089463714586859908592900434973159533773729395140773791088392711900999101003271550873881191556912646792506622663775984283455321295165144839159790712738664108420580637128552303513670633680721922916470548137179740715360208229155517555207207173305910097908797087329727609509167911904636279106774501418800598761057450117074208100739683160504747500686238165446517830939134482722451021055955370177915663100052141672326039669582052330539086523974342380886834045101395808036556982061231100031309442665080669998814986194025001326582062838794502536921619680594087420836335995998721563604029843769027530240579862597970624934874391908043367445663453431183736363420636793313730207280774096579269488174441421000253210945810334021857941484659185899388427124929185138793225929345634990607004869046726184184077877082951860275534761152047060490487975442603689125920079431626452189784349478945905216781687871240717754872140955134666062932715751188426423259709021264444228254501699480241442266372534915597391608083814517753223360069912759033948706165869329069176394717715590781144117543923573009239131513175872925618902038799017469113378384623917782973434286672833449164138941440208599315442547707527502745178956414883621434828522063949334344895076836669475179476211763168475631683301437342747870053973499324471710118388238803026950013192723902493053591959687489916910587908325808173941856637982387029584300847030313710911915572970582684567772306684693843301731051597191541717496495469752940378515590741647464291871651115643522338398894712447353446796655279473322873905441949256038007641214439761595762375713365211188898948664548300611814694520365057894186216593681871208221327012728955187834282918139370304787508732485082590020905776020171403628119693965839999905523764025864427172981906916143081844577339007916702680624271843318385617343532149369056763198228441782857452502767994218469316689315829463495400506098343938477119894180601602615535765704813609377386765329367396776238341061007795639269605150164275143524103179326706798212291305135159581959662208856348221626000059377041670043974076325137272962302494522226750526823834794227348005028495338459671207278013718710112748956298760003438790318775067086072799530649565625793438425891707051285575653062982067898095347084493796521732108563917012899578848412914831576702116305526975397280758764690928794925322781103033538083398379663710182931204410982900538328841214497619647002465717747468700977341048453143225080662378032670930135386782603057166795447938627462541580669971352862725107330745065839633113149002505098346867379756757073057803421730220851109067798932026874008062621999568149637867458145935499837724661477077433548309815915599809682851049876589935698871136025026074984605665317991000546381175881597114452217364498157504987438761095939361846903847516094376816535024171490790664588530198722622524397919030601297586844126072356993399058431958140562350916909502829625868330846257474738010718213517637317087469715892196077302032852291673793562777306372471413563253938449318635744925009207974683099828455282113776209676355389686879545803431100692304762029801563741812760381802965269687232598024136094854771618387436161170820192140783993660646830462850643346467493527542161166167453699331476461308552627245788561575530372264352776441708828140266149865547027038961014519580624045944569213737588547465739259262915534649275009936924182290600067135737404245691544172814092356308908680024516422704396781400638701803538591955759521382291903414768427059957012979862552106629301341304792026536375062373982256209010948007781892581718529566947910266812460174673750290565471766253962795955739201176315756009858588786820515827481265757384764489868611804828042170671965222534402255954834185146693426915887380705674283624906973083548180325613828528106272147361100508759858688770290444333330736077345721104622100913041385333678440090069694461438515018763992208621805372233676393509417710647589504488350454076932456850240676068838798733688468201545304606135518097397063819733858841476960333506709243901068905303883949118257767549087852320139308485615343116064912519265914634260433109970865753533469259323662551783674208637039325950758087163348999469094281112201597513152371981419426211400473013334751558768176743100233740477759699789458154060769084315357359385558611542921646364934752394125836959251633221030130672008920816006818477915303180072389182647481221786151820130844876404890870279484336225838642987508068895329877320231494903284410348155576886282593308941019278020578697139797143612636840320314867324780670591088806644128120233924175088049621117515311145199039117418070145701973626250729152681249003252520203867061516861741481268641695487294291537326569134434086364069256866357205767293972072326387285396300452876074124651022784293273359338893614863657124047448501555668415139063376969601496374838031194945990072859447935290155237952998189396763557389698912586638050110040961098252608858032822086509832965468913658187287355578097189965665025674475499257111143462354140456795980764886371913361443825376485124764153270380755467949910955264493360207728853648427259373149345349433156015449511108189063344682217432958327423647178624379431914062628420264681624168721677894634263386586863218897510692458736397227463283531787521913310383776878605167231562873725437931737776065166309911023611103952456030210985345945496207290948773288899445502583819161352564905228027045494661731493634392842187503566428261786535384846786272885169877945738305911783930085265912241666869245177143291809752038404215513729064806105025011964254824279711978862828973860064687030750225266661449137384988420081644885936891108867650331995064526179958980947819960117343337200369497826203507034218722558453493917760464243613086743740843998446175983892018491873647603442049795941247610756252299737831218822605460130354994950795432131870868102341316772399014328290204935431434314050942467998248655743450220185070719977608954803786159328114688838571547218117764840563227687113161366231708071694480110985248602038609541791293414854722423465672963096370149172981704463614266117966094421534874855654650420352837738577186925125755957855960941185946872997758984606603922858570216036476728928521358780009976085549536818600843082631373722167288670528244656419285225441202894985964343544450426876959279847627148825692611050897401902551410476242046852573357947702561942211714450245440908347070296414004001867482395020058076807711104794567267692165219241037815151603396353515172012235639186623782685606985040665458065066815849241613083595670042067545108866953065764338271448312095798942872544039609327653218238475444165795612750576281140027528136537719871487884998089952554518783246223644708390646631747076906752840460484514571353846867957642222614499877709829190998279579011097413422852421087988921817009464950040963049453010067280068944455104225074180534230709404825034514447905452707348132717746978952347289401811349759894370180025483236709443654929445832616009111636051614939505162933789741691678158428110782290829117849982987894343386230087092486377280198617697690972570658683439737296932389697280107801756923348514358190710621310185739300365509821264592376570169483808946657898285804133381679861206179707627849316219302412744271676127223259943430370166249979700754224379449366421209831741172961264195628798701310529583619358937451236753178468600538225578271044708095891330085160028148584054676966847959254158460239782910125759349985471896189879627359123143518835422364260398621810725945327775220312881084694174250294548081835478043875619486792745787813887368618476804717761316454797520111768896265474746654175094327284988520156382777662758388853942315022386529404397955587828719323860621554484685100366374006407452028601968146899870987806416114507790858866624104229651869319559513637537233320486920852811327873226542653728442064191492180488396166793823237695265366403363768861150608474626681105149679750052555300511862636430407397476386271928209669285824864632503651197947036955231479357982292227928272752939257770100447089501600536443250201852041796177451829923844384699037031384954854902235586808049311533432110608720835570737496419751674600034533593651615002555800726275326539316958677274090085278887531622671661068274628234082961278825140573692177198189316489740033450988127600846167899393754959775555856333578896099346368526624924147133519666113075464359947200237754212283624160090587906398548465216996925586857502742514371328603924267833148253479126137776272582865789747526836060343073257026847965562622328038624298102455143216131625450864720039981245137662081611598797945668146074409850854522588193733916739563144353167590423588019868669346025523072886770904124715391960332184377410611450380451990339333101228120053645462438219539998351802628436924921409037358652936563435093714475566659366898584729797311368856923902722901967780542388155327946892711226882171203401769425971283752561096186268816468807646447073203290318805006188433416303524494635999360380273186518213427335546484593887447245249459061495514967177552093056280723109351996788095748461087154991635448289384963229887556150694397660960623002233418949697882874919778172867682334556119345723003678610816921144805458214651989649196477852008776960503312994850076260146920724108893491423193292523903805328845686826491048022674581654833600560580924443143633204973963955767506308501261807078111667878704503170727412962052539238742710503485042419496998295933962433569541130768607981583186147277317071466650291108105032297612067250369415644636865464743818099306409998533526157120297491954806828834363205130658828920723365012511448467631932089923184928046893421992772700599157243250752613979041305393850642579061596877780160458842441985665762892611312345624548557739618027245236124880934651253429510897121771483641357168202812430121655496399645574228077100110810088829728121289630576618834058870306318857093396105619709885679659947336301360230603826963851399058777187203830736444571438857850653098745922291096497441403903409687325436902348450153625967207022359363981940735453420617860862186303855757822924072273850760490089015109640363354451383857518175003199800454977295979269652035870265700615897721099265975764965859719436575077762470083096996799871093711662228065848543814586212102972546507228113855032737658191528048353902046980007750447227659153804846661133252017549633451001345827193767458046974469890801075592030413032680575595399991609511230956448031576787912176475411622457903597515283749169172165928002694558922365660394640416695651901686660299400758018384735112999205994248496562261852557087448299981631546268500448979592242378243147434086286180296409668377841066238915801050830329052876145631299746824747904985703029887256964996233585267666395041291988036838704794472229636773501281872695976919329471037451080043287369687481922204003531519178802847908873990087648609718450863448649426709950263654663382683984292707707954392431113705534591107529354219364884645217472909951442695007192257479228475190067102747304162497767373748049148330620263545880720851821748780933898013232049895830254213793546362954898510839505414298292169501363640526071652360266937616551787387248637350928180150600085848810483465781035635741163842131020673012473894896482815415084779055875194743255639883096522378459516914924902204753681802769672993335983597188795137783902942991841767971269393383678739169146789438289244366353116034489557432765795645359861805976568580035668726742609822691826086407706352836169679036327032709319736891545495570036488509562807352040072356066607596236270477197523691961812199281772707587534817406376104537883048626899149979962584566955009964622124658136872530654030087405766462252960363147224360100121043273396491404814587985825152649531885514861588777619740357277134406637782203912959599350534455061735089115532754223558766993428304970816223760261258162629948071569839696711857092405085203888605640906395445818912948796504965999788998816011048616464924950252943375610045181223361494561561508410885912270874767747036684269933090360327906680961083611686370746330208770014675980861621338766291643021518344225424211201435530038237311829579555836589149607291503332415042270058350336727421357710007745118387569117276577164693870393677096851328407300641447134994587753904886820942577897152734574459561494794266070358504543167421077972792536263734279075841070284776306330178146870433893709199348393491590190998870620673079742301569328985403401236623802152010291353249846784998616613427903008717397573880340409892499279534287742804421177595698848602385271209990528979741629946754758624061044549571370851561453671065522777207521092379595220609536458091476316059116010072715460459845781691742048713663290202120365758550501458323927507602631907327917098199496804702487583352684286961938386851013327704166432984232552531691737766973659857282239204034395775025676771447759992770011449247708022658628071894654011582999395483760079472924938696547189837318786957770686890489747452102478632687286067926264895322773434799794569419632510857311295045396594407172157394708601834036330253886348909921527495654589493916573841263754308454768203208104422670962469756996149964505087719579860712985899968877649524969213670259458285672436776773675774177142234117640998948994053461982025330059394279288757478033043574473389685116575866647143181389882526210652374574964942323952261854295680837785550705349477927037917797730687775494686164951289170300645505718168901722666011408896002877145193101949534429845504511958427697837137862424709917955390344680510821843248417771814035381185099641832573817144841315362170790152076200555918384051821272586058501365404799502941016901432158496959210039770212161141533295370833226807467536809902948454959915134748626119534524893016635739964671590438655329752320742776764373102759745229796700934546472207331747909789329502897180022357833840679090478643583596003647783774002049340051755553251585799775965999508597747925163308746390106678804369474011424261145881241403883957409745089520954559290616804643280232985791452396658702802676690752921244446230189404111347715529285554366684545052142517423443865535286069998623893332741120452290810180143293147655937539566273855751866381805994064009699312243342994021418282085636988230659049011002787547246609958326295777250369630391617275607434831707614828824996841031668491161146648872926390633635444728116156795457382731170584894079806295780143831245640769175932241962804294959380914925919601572046563216626826302569042590860546916732571841566304233014510963262842579750744805832976951273478633379913003436007558246279159368046113219693848996614077177613769331305849886169714045864112238511959450556588960425485528953535028502168809713817009404214339213313497051821859917069778169132663550786825109588805042770286264098965356060671323208486115990599086410467500897493528786801716768367011617657997601965193293479862805427998990998711601362474429075451081908957545455653958572197587804220158534138977332745013736317311485356185490768294877560774812563569300501899673584556781720024514376439338128764038344418629948666322406422940048414821191078229582779345647527999644632011166038638981247798865729250660541928622587438100825657533007690745319505781569526470360459502503744631072993329016563482422663214630210881061244364509188896151058182091623551018343711998467160999945634463816649519302275469495237624405416441173054676650315114628297375290972791310698958278374353868946931113157466099918232833430429457031852568801625340347076480489714342911430112095346620705786935292824691172231975873533215712654404155963712470691724658585967509094347620576037473356488639471704115362369497643302850241091779721129122734079575914618458493834989742489670596354985701726327659368402447525156495204649602595207385115510557089888534113807215704324655864511255991753047265119121483039404539996795758446902411871419536859443658423310135595758984918118766381568703291644179711550785227158982840563866911689374991886537552009927801697798338547816932171784278998751469261106254362442294705841272779938015116075826447950899505292578711512063609141106602861272879331936926058762053779953513216088044337049883678035139143637432287671324545106293552035729559569206710098799169054410174983073112533111713088609091766205125116603207183664913034939832067494023611411254327169953081339516926296599112239768903045046190069032670589285487920760454749573935326473598093482049179597638063866006806450567455401555492033489368147426260058381489805163272275827819414115751059585326388959390129377102364584053214348101728935031003347748857734817415975175160728513113511440278941878346820987305684647959917104854040742923897942308074401599959129598085416348281229559772618693449254463239269991772549962822525563986130067776120381871388000266377670605866754349415023356297093403821884682973343235517282624973208477842224263926498916267112913091642852241053731249853456780406612337660034693736284416482233281669425738269121821482089938441078325017631352803152497021378473600999457333363614073042360648591055425047372556278553564979502494634739374230402748812529090562163234959011141511284194606199356264681782184200861904855898718916179718683053731952091166586815419213254836095104093979102519514525649565174067974598471288214220443139061987753025652840743409299532823088271544001466713161502687113532718827667837074700250419604057626401046808928644207560514466705646380065893390120280087075390288358534045704077415223890663388178871904452595023185756813458480806130697747143889322734669583578948212406388118814448134681437243493152981220292693195356025964539089953319463388514689083042892162914586841955750466026380123444620992633575304612927944299304444022653552562174261604406508874959875735343741397943171295506198182861910396754915365620356591062968120334083900986156894528394752800898540094275465754491932506209755983645997468398808951004140857728712154100873148826590508166661994487141856257210154840633703624645723570853546934933937755374615669379351560947748979851878416446970816030899555506645180030022942861929190856829010959356356887062229786466413469278400535928966735891773879110567350779154071056168579661049595549480972501378905070546086641509269810969168649384613681813691487966761804044514677913511774746515415824978396610603496056825988811940184234515695003224556272532472238410922458032377361708184051353701422865989875974911157806080881868631695839774290596259228682301854960975609017995569284818079662369350610907270243265095180782020789378565367318413489809082271524526255334923919692483362749979548281844857205552548680777261193999815844475082461764975152650263806245781687640344168724768545634632841168475689865781765733468866482403311435021504444579728014834387334475845894459163448811451246392804909048859186430802139390772630339465000046358427461051909336173326452246254757441793188229900219809720076601876028530889434595536148648257325376825014235790924281602582685894175631249031211692378120102453561613928644846549380483721189028295420820085189406825720434987701983075824035292997172182199910356134492631059169914827169154717422019651482114964926692687735361380097341325270706576686833840207565453002777569847116112489199838527282814371642032314808074223448967016804499781104553784220534384027055113367771024025120241430715047494975430392007346604781727360702598820977289368231026563745883669638646580027665694914670534242314850563208002681444092716010338995730040063037359633239143473042002035459070282375568827832810846012387540869292288654233396602646203725126764727874044966815822004644779384210526372379365969008966371064681243828593012335655213558564187830380646548740372327911894324919903170056855165941252566555615676414455501350834578382512552568408319607149166629767248568659007155873007698306494531048045857290921762382476365237496670934346720339146612154392817841049700183677048003604541140306629142036696107239874687302647524851103735812897746273778362599842571457863980918875794915070045244277523094744077670737102021930011774777337667652869555128266589847062107696066784656610753494759924763792629050560916127032072411835123488922283428889391758415509124293676203665331021294852638566301259839387554469030780205442530483004091507551318746649360986592591540226521982532220299320063836564845720104545066395259664105100736149502655026637714389375340524830429473110264299202638950043594539826847159534418187066740786241291698507257771350576975524686607402027204585245646832201044016917633425595786099509007801689494526430206744183655201398263054657271227823661202830398224001172781724513414984643371372962462771290373365964510712319609064308209513929398720121142219748895013382735501760157472041614998506854693358432870642522623880837909401821083553273528004963836010315138942790106162547993847927003378038226273160960703351595626027282862954793488163309108630941649364558625716001235718448635005747899762145211159011364388239524523505497705506820047730950257252242160012407848206051811850439532231615275886163111247061853244843384643428521289580552762240035565496120093259282242425352576356668965494466371942998242292922429656886138336683055570444136606442094157148208014615402130327542450310287107373023424757303153342568686548379705335507270159611184470022082851531375446510332857417579788215852506561329123366661479026549911380950399282034614124675206962718160810455289668892015303908679765924510380895648468110159739959844387956840890120556347240420621675003991787817069853033044856291381330139085835950688738767258341397388526041283849769074299622740235540900441672976072602521723895091241576706156177036144596117544182799285719164560488680988954597251263035732010636515361022893045796302732975968276088311761933982690946824392423334882188672182476869138262862730920198004145934732145203633178609668761444921888013416922834127800029164320453129045035465027950711206081039959184884585780657768788876667273706759314760486472424846015423252215317188347854078029816414816473954380167215124511133702457065154836750474830605658983913698909446203401178679653472508134919330913253554071347579936557409707697804081212605750953278720434646968486709044061621553129920987564013214960030542243611071757464479651663832692064412592874909431352406594022624839591478567361168637596298139387874328320227896275194796849794791779892499206520302934659630860152348726288073406684714949263072827034494571908165585211500760168286605697271109375963323565708613763281524634430523142975910144703427429186481806628921916968102610840097041777447728567091750952876320842150697721622952352870248725859635536584860730286265239488514493875023270318766372530195267842571970650838923879688104496930712249678218898596956044898064597635988235912846196580560513839772815103063407559898274117161359877859290127233643481194678151964617344735283884161641987817191709922753590730987496025096946148691135568134448329824328139773492245548335164117534564572533946668471035808746229304363643020283130066563792349588919340511676299295772001909405867377135792850085414586838437892807709058044338263415653657882230752067304332670493606254875383548781392579114346172045792219225231796773143477613171112384582399823775920171953579182485459086172187126203233810607820945590448082514566252672779474961738187298746388076152743473523378646781905036137002101627970468872646032743129095089622947664186759211741209948290989897390825662241431884668058936486846570193420649876828991189529744735575465855930764193715768363657051332704519414981454787130893944104469383864277289637776582166281891812043602556304184027785274754738128811664924452997515449012602039868839528888080051755721988456833829239204523520240750035330153199608102277602823777823631206847053220275291116585750892613227705121485945279480713201269635062640580085504559955839618176462212795968111964737894526845250173758420858583797813083130505501186064170639582994934134763052650188069518908242366545720816268127631518874783181434025158705656623526430625391168967716376804736552966259710407930726512947216636248015290148401888179037576743956833383631477396470751639855404127159861079374432203248223556697832092879506028986122159863944399073521582736451411041479742880728699659776433131982872669658728969099654404125089764920890938426164958894710258878705538041078737558434823718289739174633901153434409866986839541642285107104837147083001960377039290696604232904233464685282907598875537806358134828434375475831792861439125608989459605214325778168713231184833790093212253445400148713583396619212277671111877708103043158057436873169602121120894194487345330893446090319402271678170016629232682808083765113517459260039652099714143278114772859163413157662537552998272824445030011476097551066987784695064877717408615104091873052090993045341703990410609917617516451825232248237077627805493323955156373308964632152669470187042443341429651169548506814968149725458793129280166830682029421465973192805631342691601100367542681329672123665557219088652609368276964049981665136737238802840934543767967457816696330744031245006232359993276796132678514725518162760482641627444025267533950657956175490625745689051730638807894189542363594289319824420605868025933403100531981266989409845022844236826350001976919512637356123559053551704128758752548747742410762522626765043712678280714243948868481745917977033741989886656213191508154189835558460368403587765154269350489986113899013167933786646415405622101286095517236984361680714723061966714291601542831398531918205863655195420660596193961441861892742865991423588375181706331444002884268336748615897662912434566571694803490866294886195922862712474608030846132401519411908882728546209051893666084553312754544383076759464463600104141011339386615915807465336035022424331829976502595910728277826056221954813028048987889794337498816116500577724332558364231742326832047344428755380710852753285739212893956079344018315102306910891172035799759067624987017600880386532163984159611565404589700244125920993866971604855825760812287340633276690481035356236160553180807185267702599902585864283821037477926002222601905561830258530676096991373379126625230381601739865885450628889003914266208877839721724222535672784148343245041671628407346981244649982670172756977158494452808634272496690211202432209013919472919653063631390333396775273786674444611260081773390121923612652916548045922530968742502013880803308053314260669234684808731602222847929861485926505361857164393915343366272248188707616924779430246829762271921657863962515845436333047352680615134422738762432629050216432690400723881557534986241732507620328369904943481615027820422058929328134724985892097426614021767427819372644878654884027255250817450644782184188601649337255160396175784533849002444615995722114598974767722938806393101777946826969032370917232552514755508896328692761151774885520368021606162435659331657068645289939039797347436674201389312382899831026453350627196033972765847222430380647027425411202241754282782523625268355734479350289526757911497186328147957585938061813024192939202255454125951954079459693017496043737069542357081339860634946102785672608701156875388759923395165413523679389486842048801872733489604231772340527167786676735485959025630626115356177973581652391992861356256643309739968597158247214632498758306999495654556937560088146411318441292276868005436565516969012623779245441389108935635100224759929755072712910714406718735007647790027203695167645510084614734632997262605634934204030328015501415811703985790577650106370229691257271897033002669481367133405162701305586915899605582596247892478748252110822170581469321528278237933426088345578688737073209832023772748131102645737938071794980692326357972720924397560906564232533027589870581958921176313072329328515312210217993191593095780762965302775826183916361878770017872300665317893891372695689230677878562976732119154327398652244579466409166185072117924947940180758304609671087090519899745413201418188626877489303949425281436089343308922199493648632606213287191662943741065914415923121926349622282118155577498241194154316903719751107183407755852109447492939811229464692572345846288884566934620833740403714799873775783937014437522734387014436656955327416573700924986730208217663701211018783743682303294442460039671670309566745451009453632169273042565996678022672389463409394900120195467503922773675255237264173458998519203375121162401361339658914985944142503812805390125962308763080077930663325327775030322348695828795716043280716553740116990556441643475438624128328698204114642784676828899687671398981696276835827380360231973539270526068822683776467533211119482067014365467147525135100860027541774744302804431489909525025633396361515176722234821726678553899750552641699895940566402935911316939538799126702498213353188412397163425921437265020723167013962504293613095872790336671189386458841379214206636639744697117163387806719237092021220905037470034148345589688764100826859195708408638292619508940368386324104006736495205895209740688766162511240366291651844656703639233390292581061984849181144175621598157224833954336868693492815198701679459050654377078609962579524096071036238022756643645498414018272832954926102363784248167794592013933166566310864556744609368965229835905240673268107907725023491718746206172101994722248621136451682807265021366888887599747760837180614088150905482563457296650984184745065990855757966002469943838852032018476348047021906184947483292520465570722205291014643691812056168846937687262216569898198456069867287005137971709045253058538394346895608262581135370054453652726682833842292131242806300419786867230009113946015233833121785693314183536623852435274193486473127277182987001832887253505783449041377834356321883297807299112028364104949280142156313267150389323342531398122024002044326235375958895606572785704949556936373519211680507839775309609237810336829610592851473934135460391756034390579078931910261658377576530995661534161229161121377896086048399943505905861385525201362469055252979009756502457954168682002490698521213091497048263007443839491163985433402488614330168656409780394656452533290882126343109332273762279999791493262810674010474088058102741597611476803224378227943516452319339986175346849526935245060278550505464148912354800483639622490460020861204390835404041469627729875404383982230881986156053469516587339131719416955407154763006805203864558343401156787302679391606989440617687231047266238194722325154804070383291364563551021260476384127505537884937100702172087355847070101433106547813234652751294812457711682927555227151099034608562897777672579622352835917398209692756346282417799906918088546245727271857745100931475152276425749098622848506448150399854100334623331809814217745509138989947012206389954666073248914054017729479889346901104105237648477980007488287504504880599661542356756464264958898807689924137417817221328779808072954541415954002329854397930065073798410296706883594855748409011636149355668644022618730393419765522972007807157320598731820659918952431947321723620593437328320646197936460292938819096278505872757480554407384140633111111745799357549342301586785957220904988729036858955085657439037833906867483581595170945872577010380251551219236298382991097553157671816866396671166432832723522166943364778102958625569854766845833282732628021082470326534189737527356011168349744405901088035747512644901889740317897622826695101022696187623375056677648088698467263131268451155184184479473373789387656287589289333743507346089518086100757973639123744972426331969919095136713587392556082263346024670173482801488964078028019171719262171916481573720691972517884595547196573672059647246364120499231915990053920956245615890816349967715912277469883430343312477998806815241797389920055833385632535484850393083464811870801752122706473056601138838767334260311596462500157918487358891895720700651079410399967576375094789053590911795105027768425348954693704633381225811048126020526639434616362264996740486871210804618907703820074346725237706163113340479235264871926315045068969375802135327798345658167527348299952337119328585564985203108499715470201794180794176659889900293768266668225168891062780729505206810922455613137514739353896810902619463756025383505014426881969589123014017939953816279136655308469491580250014423646291650974551026735118169481107678033884826449186896215017651631714694741468194217739719722688680158465950451958715224803478186060263630023907974450563165301976332679983302413135878587260716473612743678507890929350941305266183488427740458323353445913591324154288227112702818649385516010115983435212515142645855789179705279350381836041124793010914018077890064286435846434598211795354969421146005997812992621561971276842089037042255216839790231075390024069800478614850231872042394584168669223924833278944187159937271223378436174458218380365934878648636141127882792252112865137247398255496701915042988621461617013415537553664968739854549828023426458576435256248460175152057447772981825864340215505432699958387724230524269312249270647076700083004802729777693303081188991312565191190602345650177328979645389474258051286917340417747270939325702039611474735369600456830839282463203240559630491136654487615295729403625292270660509597410632412647254715284521641266572896797281881502617506967147182985524628028643217879704965545064118055261644501858952968483807000130618485836074812442693749032738948823671178219108914321390633052145112032787665005422331502563009205832339142984878915106465902404296872690781161928876259223603781188449230610173134174923688488158242808149626230103737430620616694121451116361280526644161241474106200861674909727782524510514565017279917380543936483419935209571920361399253608354779481716149529946007983694991176653502500453726711453907215627886203051670846332334575835852324267387139861864400709707786399234134441983309800607724575036692810417379632124737184218909053550976323490725957617285675257045775671501697658049591141159078512036622081134215625138738431029231419760920904961174984609356003753895381379313875471077131876442285613558101033488451826119184228471565621028587832317477347937427552595942480157642690133880595282857184960904558360621428884382710942560108314562121512757372417341506081526200788696754710472415825177522449736116149792408378209557185453158691530479086000637593040698935946573423217411253363567230980237519348114593996015940537797484007663878131734708285758924728855300218307701457717032835400013179090367941839931975083557427097394885034781630465234341282772012948221945787304328806758242601546187698585584959308579533672074259634983101311402460769271271566614623566096810410914472235282907891492931818210471187108169245986725240503641248457338459857237184449279778647070248523790432413681006996915926935094061185611430178346673991594375030959426005577232782462776524682771302898637575782381767033817459371997082636500278070931589437895349264914570881237160161215729139079597640369812533845181749325929401489716021487814450179086989167441548618720794520469001950262138175535078900067748701216583554209670330556409306878489187520939469135517437548734514947171590030196407442042708791889783637250107419848005350570172389339678690638317092186910079111852046972448454237503134502733733907185044302867341816282977801942340895165782131689560426002356397641643816794722958993039648626979782199960814558097039670772035780505469745707930125145608618740963258003826960256510032192164552338686453133744499379021533185369893552895311980122035459445332818702677980141012774786723862497635813802765796002992442417881418255474311047083966008228979596491080437328447546236622802653412704948312983704081881827050468512587763653243445674781340152359947201826889512280869489081417970627900714656796578688541666318055312802001773421026047991548403317533768819387503207579506085743191430897525340742113980460278811510495629199731740011797264286852537900496553887787128746079070968087531198184441247543238525132880955972753480703856143734797591459411221602284716102112069833643728390398666157564256501877617511586088415109200550563252484333125985990168224270638908755513799075466243458922693566036539012016468868847764516700035491756077017187975835979455824202578629104573517280739595893340871108011350911592054808209877447325910447038492612096044981406416471757529044080983631075992272462206432920194859976699797714622616777993353167874311496189438620829576256177685937719871920767291458949957236140526936441314183666746653030808997840623457830694919351999165071028221378960833163168971212121884964481704135282739006276611474959874278270916395304616934637542088755617186514813541497870268816909822708628444281961478156639196825762505646905726433651447472613669097054177494208574952000155625458414245580660352486006248742246782509300305921340995325070791431848886458756445709269249830058371593536694969248098572785614944275725809364953914341814966166761174878543619852271058287312855098218677263227741271155426032311156535348659520924892197215799623355248896261977530663128745812502050349842498113172031557603039506918154617441389909955997396330482541599019393508414410909694191946824739584758779187174790296047981721970574398232405101428022445727357037524388909606236988535913031842463056930358766748770360303139519663071293300650977433428252904437444090283413593606896011625630759848915925562516598396462861972046549647082792496604125275813941813189844097360417592163883364328957347913047578343346074869397711447802044114992747101058398250334013903094816673279601995855044926449589880750072151401507397175081022085052998424908754391871709870593318583310472324281875214767602142948056981726707668061057003472861792945458363637283640424432086350155385771660389362254317956301029711196841707052794691561954835802131077471357852806936044772871835279388261439323757898662101151470385232729658499830508903675468309655827883235795519489555273646781378219861238351221613193036583466111525621533487377243701633750236299735200913211353277299663220968844142401291339040375560260100413366573591161064978011168038873688392290031105498598642073691153846077694691900479974006647451277969222107944250163782943661612965242116604475696834779820630354720336432502779191373147905151110707982297081784259664995525272469730055953528773701330214564210700914261707339789976388764710724262955571625077435657084767224886970595841012717478279700594212513375707865993166810696511949463271917014675983457154529746829818070894625945744312074077306294453427314386407865601121759350694793695038182091910575734958060656738286606855148344874739553559731115694117075975391582943895853092429873363585591544254243372266842377183108946053679182315822725346139052576536386897252102223013178298226851974831399848243994496023585815703300217806932994727755797887021242996246153033342073249230457565411142092896560961911278757808124569660950700492692281468426549571733859795280669704980428820481118681713861993820965953508872147438198373355784072746599713427388026782163703599516073873775625697168760993900811112153979295525433150935956193876815669085303990636936904597334944433471286317311986036848104136056349122707893710382244311773174314531927717773076037323865259383334300149199486138425371421456886353392107135034643910699816347855051614636479206646115041204083003934508250551709501298512411519718718959160341717675086178002960808425849132796667195013311073649673587011162579562007494745906358421210614357558540257414483171707534908561515571142825742348066689012441118905373656444099827951905170871284476659056388121798726131182754354010205106613720681357369311335859372784168771938578484125556111732293745642155344618496433828666960465414221459641650844317697071516857488531082564655974828750792169076565794137112834909706583129929360953618700787375884116299219101340319437332341878569919398060717733432766535953912753295743405390943758814404277462082096245910256040826536601589708766202965563671440530888817098965683284690336724739546756916839241766732346600462846257595104320209092341074712471114591220709757740558441481770620893141429126471156958870334224758711718306647618135278746085923923712949681036244345344395483738780048515836284359280036278912364866871464247705072096667483449149568264375488373713878972506098163899176578168469561819577378647964575557493964794050809857823794408494188190462979076689251052740420540280855310831192777658966302368342949134906753103212809142099028853257575739755276409068314144430442532464386514697771675603049063433916531236391501239083841557595231290685304459146698741793507390259989895371350753681878918485746776343722920372308716740908666825156422663610508744138694288511318590958038360187331774016861555784363584116939815330048450831439016070565180785285301274397665222247696509057982712500383381897059152426163296685844362210410228683318118513469480483355523269936004451303831000123708508249832478589383700078759435984513967016349107969805514246433154848023197118387742161827671891596582875870563131351814277723148475895888958983590954487889991212405888101884369983231390903214911150214368188078872791538787465767256205780388469415628241573960033141054219175405101644503271890086900469327929488470659581616688244750545309198843235769597167771106627973982987465538807532076260707597437803959966093567437322160133670285061518987069082615677354145507489102289984814765350554431478398617452069756173111802383439112241224050597380617943452973752023729415271987763556385942502309496168474414022380122632653707617023738714037580124603038899465101511263626315093491810859884729707193367793717050939202516713626802423337899002116514452244638450575085927003613213243766042053924796344832318255650214758553826417086695098416190247314365001294899558552136294238675916080926418174690261152205678755687863857020115296689487930744184173396455903237064878617752720448842494927730134547725978635247608076103555294236643371877982406704717589849855657091803117641348456901490816217690244564931775976747058316134482662105304613624273440971747922350134777220687058131183375153688138626678739917405646423657173604875052513042172205101215229451373120455821370704617989989941996136143135724136262148998481651660334493442443138016297092047256383912992861911784197629263260530248174676282406883185255495547122618160902974747516524457269355675829571179925396947523429219759612188074619191342267918463914009129343693134964585703371990545850585223380298082175435299946792687051877243528194449979106268217668588195942725971666417074120686600353058163678106866084865408083617074647372770739964167083048413032445968789255029792174807051579825660829872724370658439604157947878738287339640537785206340201233707236655544051713484761278143141627780820067482048881980844372694223656067803671432363715980090402654518574611998800831411113980914653244143408139107915685640342761528652744680772137346404564778161404500679797997808836762410264285991896226702657629520252449021928335320053343984016550482733383972903041953588892102112889969519752283665431527891059453294423692019518675345336429905945177652777448924117493982662307547276618790039416166614255990168130853397716068946496096465930279578256692201021391527668652830986651330192780597354673727467876354862606401636413174463879137952307931128895151704700094326606369237731688403712756076594593476671450478084355945434876809932824402243326248767911493740169307065216981804738567436689583082496364840665770311880601752369910935285298556662973781972658837311403378410660568117818766579374230646724768518695569496230027297854943965961627168917099258655136108378842024969272044287597116511059552392948955900075538331871549300493368547937990407218925145087670723708776776256146560902881366842102161164098044816614503739061109732004834283007343761936337425198733768129202245105113178112681164492845616606401117513842811015380182404122711146510915534134911814480349806238831253098778036150325533386632840675579541866761455595257487949182779799229915099448085700853920779812261087404571811202180590070655868522889438721051210966526250638326010320889376120037887350675156021025030001885938172792369693286302582838970591211130777886038791846831253889742407724134215993161921017834756298036476810229332298554758886107537961812856427240888212145641705282400647832121537482730267078981105544937790980514477070926542097657494791631108541845186475950068494521055750296854880392663024502290300351963767199175497417770426437113268557094289824320826184014239680383439755420982032736845282884709418215448056000583383748543769964514588618615030858525560566741478252224907379545249628479027557520087618018868963693858086628393854213090759036245065134610993918895154033058778010080705191025009753468738997300498723923609941395231046889926583875382125118074076451342039439812875761665016722754691599104850777530781052873817147241827735922865307644837081350050272671422095114624460235710391105543660551416268829267435827138855365312447869665301888095429813534405161306726494512088468982411760145376154239557935614720526722713509931504139753308474762953499989063980443506850942889961320335795035687178172456065079071877526427654746038970514939298854577772172872638286430840641827821383793125519322981607969092338282578154147390260472589770469180987597172030300066246027467456494395103579763028451028016660103038515173571785844369033715342691581833487452332375714889144019214454852344626066720789978292743940945920966678408154571572085051653033193652324278822276128500256140771899319511345329225550034060138983760351154539891549941513247034571413344890660681687742505955964442330293389691403298673514622952792675848616233086952182704046944318406035851374911053074137303236020559724673241639027488023143585021349908406696621550439066117449091681811330093911736334735462361705131671154085598689897150424154916239607209613434262073640569234967239621154797296073754048932254508922987659010374226560613684282969791644492033776556693100299686881200235222440885312458826537625861615562795840353784568073139435555781285659154451427294964803005417945863456833556651245429368063303030725085786794289356480043372511657817588363627939258596055890585405211560218248208228738553102705018301250381906858352070967500893576882592462952334809514437164694269080010889111348928044684749020013727215326506361489960978782888414794365195975639944288363073260422864062255684291742642687305003938439443450988265211415340423013320449429357734277358514489957491092805888177946927828833286486465864504796097531241035922783008967125616848359635099075856152846843336675733086515896733170194445810900895251985954300476367172715189875001103908004513750690563706796165485883710496412032590362818406812573999991380984934212061047319815541284438540884825164461507539204776494588337306084856171349830017332484293607720259504249955941219263777771887270438960770819973418304860250319701403551370451888476262173672716837500175336510899139679465314374729868301521785887962570783797743722899718804992884554779187448814192647881489837718396644029036021089501446741249290894456636357371254234548613895848361837695854348251139761278645532617099400692139948849834218687715792404614717185395098359771621408682365186548021448508214102773338098779216135845830653087417273701964705219271743406207750027377046833675897880086666768397527220211865270254025479916927445013248812516600069460543094990546736482700513739204880673722556044236903041580166441763317459452954030328854452383321950768784587793744956385031775827809644834648621263980902659513261441994611001238253625124520636466635958411894005637415555050887858915825962276756622305066520985130706009003867686137517323253702732491852802609620338677652398699853036485638651162530466728244823920394440794764548653798963964945059975736437431707566476230968795926187020304405806031126596531163678982110010401553215587018079936472663746994634373265347452691695971491068351058136586666526060735748085758641377834319700192249341806719759255548458622520223668613114973694296282746681555060250928754816136051215701299491143649350945788856704603135215168234108524341798917031925412276069590865563089106286776886520950723254571002333696301531629585966154481024041265425603593007646418713070356370500261651426781261803971145975547618356151528781330647761278222773457474546175057279925587467900982308499077517652699873072781388918716327129324358698295010384049123339921676761113368474351991196996434840882559854772392584001852527350057462449718443125606860970576431520738990906684375374914038346089953577293272635314508832027628426025049660823659317685636241592294937887828111386773566705164203914392456678528537158030345026607851317880865980415780971950796422483241342962254442513356886109616219724407457132555612108756001319713285577490976786810648770644096841818645494200573497639957457922860668449106931593075152398747146799287850460143630796138187942081262050728152755010316865535784208741876471497079933995680059225166146571411039201021949380585231055282204705130785825762945321702122621030646587946673720538119073300504312389815727984555789587241646112662182836610395969842010631338788715535164018275698837333821413472025005981017724731566043722311313991043143744627920309895226922558505832525484095549541116909596529565414620071442807414680668052528728543814753819393734392761771342042572007314142325504852722312588439275347606740204379801741365673942916874918182542377062176425538191968337416807354372300402977407100364572863170030149942399021509919872233671797036663416910836848846591603470223861986108194460439436367445463610868465959507264926192636596445698840533665078254882868946803205575684425643020014757715547607146198895843884204060222043717961621548793156723445565390146843898494168281753424207836920131579416049598674752242130462712554382546289175094600924763901917615519176681857915717839220892428435985895376329526068587760873410740164803281105590894316441760280636823953525409379834748110416932887171895230214968068755656087494976009950032779709730336631647974627305453175946744946507281150929737192218225485714537054318766361492632275376170518477698984942793540693396030355431291045390049153057628938713019898101452907114655594787843458911773123569955271562443823670050897542175931326287699742394152603788848531402695295594400295741034698055839887625120312334826665631492953720379117844543876595937332539268282382926496180180524033375858374153890884541322947342333868975342446609735317475315933665925886218613759484386754944222180945017783021362471264286944470778639850937392838422426361368135838941252752208238341207384325130007852342830876183619003285879442507632112840708325563425722755663713079105992674039639424780869391082666536604390323026530147540098993782174893511201838785580667060469668272657652358193983388051913455159851478202516191907946065196197097901916232760116473647890128955964492452441774381454775060508636551911134856677411323908092933486691197956671738164832080979027117813147148375303846751889862742805014034445150665675164050603969521251448891193555980002107748532465386426746925869075106720864470896397259943057434548134559330068306449377921164308241777700546184111136959225984218228302824261499790862450435275430939909578050209995095741424171367322286294948294310071471143033496052787018566406271839172059765391377442422205552028696305474026371931292522710989205554631422982761256655988560334675187085032461945204313798557158426170789063692147931628621926005120768159629823424595523876724683090439986008350242825710983493020197742015343366665358651721203514096609335283811768369778267991474111033397242048512686611853684102326025964526545414664977502264851338290577194270367274377273663007830011227864453299124450861673566660190977646612354753435440408528807885042542081889979077142564196437575384677547839345653191849942598015303827837905862355042434865357330335699690991182075972101245168961362252024902222727171404278655716929142975208663079363413627743474265627956500194576237413761236809214409913958788868680768172192880416946789336932406217060329974927581793916647242288135260153342504566870188785528142616803357408198886822413607657432129838521676723979009843834821724629705260552413423895882639828393676907864065742904778043820956013009831365302023266588836014872205906440876931844613639180719428665524012388604467150164152694003310247392497616712799385700599638643589211182486677387719285512108857146672029587074333529567872776536895963427451675825002339566247187629367255960189666799099826804328687481178144357031582090148511024298958159270367524627963276893431540705517690120542190989622915681063878754515264637844184158725906485945202418094855617139134069624086098300183597896216655204374698031076904448490112267117863532128058289415391325903811941774080777355132403323595638930972214794969738664692447370346170102798249254486618038052244377933167227275673318385606152087871398085154807905141557655439450819055778336606790459545169584849044852619627612772127590881141750758468706631385119854313213346929999148231862211101097149354925185452778490841057471878482069797885983158379677362384324852772635391415881147414243893564853741986018235887449491915146451277191832827041395993641727966236397001643840261350459145865035803072083730146311123050243027057872296614266508760300197993918006206135996487514648473447089792668197481938753087693036186029462677050134308818689146662480977005556067697910207851912398428454010991629329332022551655133220966280774845716448549475792811108313367690518144208050455980945103133574400977363566388582979602408128082780068649081352938287742774747237439128217751238899450002664985017038242400701139368955899544793041443929144356535047119406612710636603453972743887916327436544282806954940381632826460804638561687149140671813209863057606728753955734487869370217645168436329703931386207076768261287945310776549144891958957037600032924546993239985959683666729580383019260756892544604007256386030610652338772527110477215550804210384930522874508213626936328016332225466022002339501695168265311126047456144103273921565479317327919320752080842436873976642919051030703622396638609191246879538110854657385749156708322182726987482314572310471390312378572051259163095583372195513506045310032505531922902473993485713436792455933248759133839507183234761501986809219855393047043346835259590216380798275300278579323845509388104844938188951250375844059025393136830617207260591313728744212335985054943880421531312377888860678414753875227325312628050763949412351885629222309304222993021909871443450898148350271389156718412573875898719692811946541272098201165876226279002821203353906387825245616288204455733606183736384384379170368591745979305234331099270399829154847269429181891458752938622764751074659965851784805559059516231843250142196855686677240354304241404690927865601958488456499961853369208862947401263253163174030477107250222866975233761594260738261869614495147250046741190079359253608435783661787766782884487642501131456831564200851400694889241289243120424194520746212868361656154319577512023338967747691412496992195476834368221573399891057877698843752459291687485660310494338593074934524164795903031325394193458053988687950043500680934394247366383369784593099290779517840679287060379951390109321178337143220918364423796221896066809297383250482141401789929821717427763822855646924154873881316035661648544840668303705270638816471963268998490445335114501947997383877065813005113939078755513479496872775110618640124032199863346899294921723757620467838443109081125384199588879511464198121223879519636291387959396647464616318722014958197485632773032612532987738756734485059795201532719122736315299581235904579429005644585175326907896698410425995054072453300127895879452877436048530071052304367280105836614670388802958453581440694876455016681765428603365186083783965645645989161868606502021474700549138776942518944667852976276442188362807525473906940473490424320158584579632038082130336843318007492350156476182431631444549507791463014480449411678895199351116536059908982698452203849757828962480209054476898227609048352288007075355607242570673274009146713992771904895437053227565255710928731849843657603288369705645179405148958825530771915131611748649899858040791011690938676309468229413046551031122097399144488592154922003220274021813392600127978792927898187964526885551837948068898450676956929452582292153356869037384128556628921300640626571486501769502665229161629887792558376245301064171216950104374438740356177035323549103530500142229095832114904636276502573319817038625256212902747698962266499253740687868070411192158879100232418805093396377869182842257684239923108290574145894607060637590876347966803094871795557311883984848736830685614455415052714261225538833622313339601476693353113798374983269768554572156177052758273758648767629311736810848269904599224278916517325001216127579170332382391781223435923285255814151451380618739214306449873052715335808238428986354386327907141479550260425503917622653203832098126029255780891539755088268471855267189961976455732069099892969664100876716496516398416770792760988558606122504880353274528520500267611186592987414848593968876614614099049415705491814711674660781636138971148707603455397902484324432781076181958381448870038972550399866705604223043310886729024617398508368411474877346532773369024711641218763438374649229387980707705005719641677246532902768785821928330913381280986878342706120777038340774529895660896357397901390749781644031588663563420114443134379928284846922695382786104674762087868418359477526907850106962992211759544846206709259674163698108627832993923613543293069088277423965019446381385961090322496893322141078477111154543948138080033587448565016721016825220145120189015308668353127799829222522637133037853806477170670271570356164909355617754754536222457281543956502223911884375676136251542633247778359111646736585573539580380057615400463590371718091856736998420301258614515179825953471401179724064870917284828922326242553316096838163091251248076090328581627095018521350321929565801889524704271896387240665815676293057244341737509958286263223492003925627390387053324853598511525727828950711843904407689451883945563898383164306924688088421953874930494823307137465653822056587322281044837510076889884553146302711372184887829290252312518925886945542514052028014006736429550195936904144217450112547388214699334766750589567756882343538430605096667852988332112222670189944310174946663328700128888576498764074823986055841969260358603901523926497805218650983166658799992900981257102694550933534743941771277521383988160703082167633627929856563153573107842999222163100687917561521796469743834450429374907569032000326661817759073751469935417835664211408286735087937646833145224336854919466736111044461461235531971950090595293502699721968960578397827106701990012678204238110317716146472283734121903998494763440837113569099787360268276916747370024836227248520555961038511094256765010529577711524630344569113335176165502710095948810385945650438915850808316937611953689432170970615689345095457899921998858838018789716127292098628725189468789325541331717212158125837527364188759347245315361582084660062620497562074910202339195694451445151288227405006504510479764750754506180426533054083066669434679803553554543361996901775690705924223991864946738859545544861499598007314652687619660529379409267920384203880520954167579700661197413301508638804806475411120713448823156287408544450893406066394504402978115619232067950043551758534097101496066236968526293918868596296117295994285050732435572089315851778886368104490831271220533850013722553846203783973479828790414308784742964347345004279346417582477993977924871823332947711094828514007203445932487965757651875083904991320476080229496321765253524167748966221800651205938743295096720766661712780404892046559225502241394839673017785962017569734566254493668941984968700227748005529455491470868630710847874057003804351414497133652231451583671255728936283621206180135815018980597767983165189067188478045192290139373360121378590733672556470724876233309306548837952043118625217984566136475507425658995361315601820115022692016023901629822705324668919497169465221736923746485888211422495248279014623376680126557028381594438238698852092400854720237201293486298085629704881986405889765493166643901854985433103516155380861740627983702836013403010178751096677041233435129000691881376919491285517758826972245070067871712005787087629298102546440907099288583190620170180311592053393990702909105061434544548876050373947829186816635103195122691497826706694848896605979114207178037156282091731513758306242170767067794305070467813764562123126543468887714746486159781210721128255299033252878964124089061494574132277735356131440552923243636782036904661082979053278039335754951605840574191618319269076556458952694990584813334366093172553533418941434606006253060449955778743220684523609923736129539601013488310168971784698822473009124911525298701549881489526090085875263808653739664569846542153526537671367234410120890121981954491461256022686958232940969673643262826912479286185498949952161478810130360818656921643414159390311962338048567828697087225168956456698241982150693616413451297551545205917481049584615473972998421911184582538461812149874281215885878920586630679360096927495264450407787107731279462210171601151545093581422744685527356457692861744526635540832943618687030308704277807216059194161096901643249781634180878886259960301629120500422498561933582001086256361670806625408126766786717016327925442184354330914405917429540971476585985580153571337874972933240282027442101025232231443976100428138395498026029975650025313957005057823657560780648944835252038485737356610911989357346574271361729872131027231263787802303329162206116029684196668115165524967527831417593344521121755375698274027384596190934675146229363796731411149408360344162420309880905704895608473627701673557413972559727885411549084076973154459492194446077760040659155493058839468505323860939235609451980639357377784450288312839921312540895730572534470123643929542497063685433709370804578620826316686831080275186145327044438108289767515896050454494029237915645599820459996242147592276488626550164714962691266015992315940016385707020714447327795138476178132869797278449126111200241424773546852483007023538615640141685612955695036339834813998395867959689540272990946249124591988496622127087856026235307489970649577975131869284307078645530908462813272901517183530489136972869818099662602370138328612470238661991675032799683638732949527222150908438312317649095908098618663585186865815241698754650752748607951322166107961557457364976290083712216112966366351963620088051131943831321887003666872902190060168614132379961896991469857169771925774728259537048053900851407903878121782464010373489186522435832665289007871570405732371442679289419093188767412079693363858694159664715190742720533125066919663101062187389716581050939541336062162207528847489647188523973930235780871080755928112274399738265986383267293244275340484953661172804156571604260775662049993685157290648479142448546382473114648614105087693192050123699993231507509422140460807207935814918336909993195598741187779852675547887749466317294356921567088428585398038018339687790740455898452803751155882074827519425853632658515488776336942548260876009851831979626973761353072417488814093002712100922740472549467022022754982432372065939289496231119198161137050036386306871635027343206401896674810609895025674399588865140217281015683873445609339810685146162170880469540375661908788427039352340997943988412079005585710812350938914892924700503549137370556632705211381237282872432201377208217498713122837836836640717807936592560787686846904861628999216121915842983374104558273130634320122038918511490102073132038194975725229370673928534046809460411536481182546183459988812430610791170165902068206838081560330883645838115201580300532604295163685571918124578473457925308557698831744585128448227759790808375438721228272942857062021961703852774889222218069339514184057618875318972505301508630126883740158920705857248728201159534314599515656769259501830055510277475592143332138058268894447452147225352812440560236106755045928121827361003021068226830153683163542991365689983801434128060772860139880213079297155358531047015351600141762405325062559148991007847938744976764979213331020812058511680942028227530124343065169758056187486099604717119034077078314416867659671331558052951664704117512339426014595153083631622084475936780333270840015614794932850793766414391713209948930303097782411859002241905601965048061980080165953199552165776074530354910846898675919139056533429277139136193424759721233558716687920252455287373137518294989551576656128039542939943454092163841688022085316978875155329377219585945672016807894472897944205912705107135424076477718673993250098183444317935647591202261552136580473817208984006732347472349946261766404445208787423032524285674629778912647876120284920183506638851559023448367452337337004916126996464421528337183503856066744136049530924817131558771998316509817650924979620986983369884357827928355847310279999201276043587048096141028017590337448577049763780856847377685601325004244751712499992081453453430489332932160380362614677270156526851338967151289136270764911492422946147187601560484321311048703527610668973728505691518818465084955493743858007160208896249401933504069070465692513445250634098733763127076181866219692414161658382382236003095180812040033541735881110561409508733092483633572598995784017345511473552913602044394999101090479718320986430034543318800614092678858419956313315786020418964877813196182719402689019420268724199537310157903934260305061105266798397430015190840407713141449459797764913303244488546205315948899822095674807427048066413576502178446850212826989670088937620001595777266059575258360832411834329980822830795193700839709809977531162113398788084926258729355412358016026713808707596356102191672507933551255183395697657443133529140688004025762159890598762172006842961184176780682856841847629992521463664748287899886988750643070291591348116293166227317133347830200458332189017059031256602856070656589221012057313907882046836913438600770952478154923151570353151193065077224677800414965421575934557152163927743723030866688516558695352711874305484766760898957372599178443726372792695202527601840225319588496133508779899838142431964279561473299904588062761476302533818709660426859792641097576863193423420036405137918067002794724218435035433223913498443907241478505450849228477765991960246851865604613897400526826539975154217911251438784410456447456036665827063694980535006976412123824705926990605903988322642887624429876917820255160324048418993025588621213677268898716501796646580791701450441075637717731500933594889563287461602980665436271570310287072353053888824148211591521103975778200764951758932577066159152734784982482411786009600625017038293973517189373538278364554755064965181669329689766286362140613724973880561312607417326508751382617875507977027246439025901142473166139328484445346025243634225791348010214168374363345915459703558207064407424456186417047202084142580684420906924100825509162775568134173219101514543624076423356581880342950908766153235107134336770089315297537851672271814950351025024358502888598767571554975315127250596110267306026633612856226559820293815538986419065310414483917685505753430530254494320772749176900303461282277267972987520867952991120555961563107622983940139776118252262892823383379896355852340921529829517904118883005261175069109820950099167436090989104268213037971194773343967181684260099111781797273463363642322917750809767762533792115026150625219380432286136100837838010009147410505545064495595633540412195683361699412647025368816546185976754410027430670971101866476543412476308862068336961842837586522404725860910731503774667162562701188837548507330605022326964850757927398420395598576016410936255651171948831973627888660368558560313628795538330288342880645356241457669353565555751328342743237988987662367398189007309592252107851645605272938801638655550385838485858123864367677144619083452644218562492736463454176561934380509701028499067268142923558494413389244926006054058101856253308876397928539614366362960383080900659337098477945691958825652699182325393377610805864078293732676275160339592051242376333194047558844272081103066503991502509754394260410587765173550289331489836616660783753867043961616563567940400896356808492283584105042597522407038455075339014534472663629223583087740322214801110026954217029662023401736670614996261984701942160527310168264811362538684971433332739071601430924522014604101339587868306069860009695475000506242365368031710142316200093430776166654187391009957614528979744685301003962855706907887495700880168410877512787729006809509536581164045248574376344453204657939098920908901552786164250184301747091021689726023796640541752555955773000517188253887660459043210607354850002106417191874969801702846794695674705324812703563325662872051709675881723988477703333627085772029963020669540416642074997340038781152675834882931282921344355504689557007029675543037373954878468308777033449416677639854608170558842025785604698791692657578046662949566219344441013690973897250803947716265895976560064501708329625681607036158543987484991531578439527806950658794115465915873006329676512223341164238479698155199986416698447264065609219912203092157991082426221144948608290901822505172102808920663194687469953949846138528997055139133853108556759699036785847601282213183750833713294354165749855220867595210049482673137632670164077242208315050388886953828657887025959504146097075913446593425397631141971698344418615167360374064353037011011056105468417036827353284403500392144265798389489235253339963156289572122527889796763685412101714542736229242054904233375021615734153006389271689032292743438614688760193539338049464498037532820588565182377114564924221891057160732928318540044730680214316835507683733193616502215663657758849624330045739131909233040693439282176071902458609132850034183589651043629533557670350015462536729027681616859947609294988672339653863693380398648916597212368012660464150499369960344066162166514175573284080155931076009474638562960780103100614603046164592791849329908474662540094864700697259914240077023987335823833942474493857817879574345079683527703529229125749721278419386986780381724010925687935382438500789597558096025772476286909680269106050644029708209909179031244284490103910449401540794226143893594951150142630145863055021436007050511192306187370694572420577997995925317783980258188476850055952560537923694975239019643528055464832372920654571820423879271721982088416863695758996097700582114823812257457059299664535752553172639562492171965489530140338610868313550316270866721282283404576660508680439985287117655119425427353634109885670796646784346897825324581949198943913612116881991252149316132372055848591799707484377546395905441979954227003049997825565245781731512544951012669611165393556175914240633385134488026800675107442907891829035202575015846761579659491614032032379415479679620256671396987569833753551360691798982926795510940965092594541478113341391932479302363469666520072008963020599860050719198566842021311795525999597329482464327216630979565362624566102810255007697627125465188164959895256989959561879288993483530260021155843881592081647521663722988068195085572679208631719438685832829931634310480326740997479139171307069296451944620544020802527600801688942879849449914661321728205499133010633188020132682488031489264864554284882731256845126774495328003356071503987385277700880631281210546077692647712875074309372307068010281147055977620170929366040597402931096495527264012838856159115449515246266192865347795214910765812564070179548294889761007540973247086591428771197069292355245957815323484856177360555333565840818101279568482581943417188700162948455305528410976119589077155465140948360260412302390823747081012232067044046090984237001616504550312382194120732524171965935734518528919422975878040001954262088721267692241187314394093739171505818328076601951339273574568801933776061399901697634887318663836957676350160115711839950009904367363824176194414184220227932605780143135467465340777085132259506151314619651696508511797104216092879375522414384938638245103374097639301664246529851979848595865751709499237845346038748833403524847961442979752896939656700228116609372329219774337291025085890655228020109700220310096712938204802628529248755956643107227122416249631819389862517991434938726225035324544837377350036813786609964747948956259337130358768206339306126662942746852153167986977025271959379933013326802117041266707783749273338368051575330853920069445971417995291171414373171176452835500446962300328551253844337214508782669625511788744005830062932928368705725316940820629586558383096741693986795161332916595025166709332541479189943904077481367960771973944454240151323014021164693135534601751010154012323827648420789414859979530654498987243832705257330981251196238672396251934094475395564000019715305206639171572967934350035063033188982811020431252934823494198823833612353319195257758622775541416280739261625350483375660781906836310135142577762925333863748135668238428011430951145766920154711381646697977739719797565615894214528615611512528530378793640885908532408864256668043977840982523933098197970729642143305229554599616466469050535571010393104092377229972683676000838345764465760163004342503567602541808238990484239344316666064597701778408917570628059523710508432610769707655438108424072864509268340249861946001708965859308655517172115937688947158687667041285776259013861543657983392668541218932922192062415624347491710034857590510484447918394286391217884139858520702549004682921193848295092431764992668244148739148694097197802791406233612882738686107903800563630089402132038748747370182469592351823748741343110974788403249669864823966335967286440060089827118154625769965812791837081014256926683740233874252795155863790793889931106789353082070987370226623476438440040111150037879592597928441468438080724361849179728468181130553987603922578076676391019481213668012464796223826001556876881710390549733117020833329897120680049178974708667939577088583828177161412156815506798068175596086273991920878862355222381122795239895773282050400768907450570416126739409689050799161569226342592611641269159768324035461023946614294295068837726836726207829992746365546504760391821886216094903177295852465841874692770726090350903476156083729473125389885897772496604630905948057407028062879506134624959618690405791164052599646429898725087144350451277892187183955569071882305986009074790757837778732600322338778965852087474971517523245483329759865263082719030578914321069811736562991156282707923110239070350730507107937355032960334411348128789109002420612698097896834762760341192925755018209613226791597503584312549332191762791542380960473377842480241020426029010758377780744343683822870017317756690879081320984171767257841254600955142966332840771170446834283239599078316503658025456689715075757990383099137365508779135358761487102021123193654417730420224751098686187837061851637322594648461423417275306093968545074116540743426672994533413565260690259908520609639843884648919771396304610651251586810527239785746968471837894712508434999733252582952271598387482555649280067918306372096678803984062265793297436967131555070348825778147794478835915394918832293899386560481131376362518218517615716783394743510197796227551167292684085887617445207441671599276351164056998730678155734322740828804401024680478696925965822265512774305788920630113099966462059851852635169914355766371028568036055291133791999206964029047427327029152673263808418443064259510683114788443607945800130029713303393467010010850014928253059114455422691608840470310554588754961078123881213705337246209090054108229926954851563263384928385238682496963048113889938795242189061969924587979607764902045257110749469534411516909885451367826440763605655391941184807364875754937420054708535307381384653226138511380170269757681177844996102021192795345681426741891221773826333395109905488622609712019159203417013750510363343959060314319094465424035453108243804840600940246961647399088271251277841633408612671307229680265616197040397696783458619877155713460642180905942945154963120676749571344476532455061011262417029446067769070722038410174971000211407792303223124926251486309842074879207544904565624094003019160715687571912385638834088649191992500305243705588672087360588301027339873405777274443183978835629676355257743003376063505098466628276559854178620237323299169242718983520814312202332712404668716380591378480125032065927175933023400008263412559723025725596073128333089292403347081051690264397076457384493487102198557961359515133223710792676740991771808726457416740459910936069029229703360499498992786960606842698933717545278333904563835498671316746439946007637894303334315553655299230992905197186461312328876934819906238658593112975037143282760358575216283320407098104594110595674359177256983808270217253942664835836751663082968945297837700273639513795613807294460432232147000158225843252554714398125525843431461567365080638943850616521135090363406918266396521129523001350588360577417209635735430803956720390071406346993177071026383620315179650865218295444650497032687758151487957564475793737665342497421895158141590289041775287634456088455714620188415981415199238259278799873015394364910550631673375613283613096154628963528260695336675896112741314735143034491803693261888450289636225732687344225170525161706055877623344632565434501712079277984750412694502067579044247077763424180938502114047424063493101616057908539840823673280977064225153619373415093199329288544876224634614298173945756521300302653973729230782298162988438839056274251362482279478583910119399761349014114775558507519850132999476271341227356178712335843775591239183994007852973499595001915300112273196232091103128071648330829553057747614450781760871413310821227483634741029051597748796187086533608846802980022275390661712439830183361885077832200043835521817363183713327330214301277210237188203802628677205071337225307670442285742307474627869303651142078276400267129567486112777149564545814464119279274699851429010448284443325721214086219612909960337163301368079449942101375544970584427412544458800842661278406202584394657615166505776440962508219706624175994534812909360716904435066428776295918687254412165290061782951240727360072921726889122826444403977425768879588818560582743492042490929526302058644784757158453305985761416130497057954706679989600270728098296168681084844293089659315252197365359340192132007692843269585143446443789718940316501933387893896937147001004729774724537593365683744691210602840281695719250069985671837001271333679059990214080962600715534460388974095592919821645232092144109881369102161888394772001377596292356870417445276113828422678148379929215605757074208689120601437169021242611558933180399452150564959368081772765959710109502267826775225981951431482293196767045555307234741861223541086754060288864967034591452260161914326660555299161533125575385144697534845330620120498900283616174247155585887371171521942379592345019419976922455130107687245043103334994428834164837103459281962968463804668008133392763894161443732889438036240042090517918606289628862195607121405301134803561562849098520760141980426857295621093718100555684968497032642031555962826285547155694283321877575304314188968204657242162970763865896054136683089246627349198305170079894961182168561042912157066871785658890313971095615887140882129303520543237732342431821026941157000418076554906136054965921317535679674264932427899368709901346436081051416847011533129827204281308632319091746645626270656181306700727413765264990535991563801621412901445188110573449146621509585229864258853328655139888905898483181072448590072356529161654712305326996720877143639386619261050612509471340059531434025181089540589568121426126734367593477949608683572973985264925103507311632502837123606413216825960698706866033978855093315896782682161923739950350069303994777987304220496721310528975768944652819594373572839322460887615884488340045977311811295706209770269998359532851638946921140532615128928355985905139209845675581522770572568667727810495564662243591604349490629548051586149771504296488327094589052009562426546488795573115422331646930969503258137223287581786370938874739473303212522515596410465119563787605796395664543183740454509141003421254561017949298887187980830389188320144435334713583927810412495069511859966081902439280300686615380706228675246732043403845445805150039558141343634463652094080926896084276391068042917730457761329883972911404944023705497830760981765728255021506927153831564643762037516577077441041917236254232025336920281988039850969684688911494440655166093981084147507441050672153087568984412661925438977353808045265875502720844688346629339104698468429134257671227768262737928997936530695774421404455620597503388056183735406765729023953451680218932315617161173761974037577877498096426885248424773061951400327195223627024634030776210824070329308426874846696428817340567035723105099730686440789604975787566053906694495253147591170296087488804041375553615822387545151822889573887208214646338456870207416232901221367959193940814500386696064532585104870726119704851214233112702231589356711228921076923061833769375756675511711815760760805561057311655787900480579110851998150357059738251381493163387588493701781593360538776552732422248643855224772373262786322022267747663624609944655438263868309736390059613235868918666474387592486318103669741568198281260780901102361896750068068068896254506905877258668642532610769250556413579857943657242469271629916805464535849169229256644678157914269161174273416967788395721670696135892232026802456201081309476042267660406588312165619231643047065601626700046275231714561994369992298118881374486365453437590853241693560454402484961468965673925128214922293498028235866998595723340340040321857395899211985464729147111666669665808660784185553964524665085460086502394290727286243873397454289570981835925870828813022866512561807499647367558686023146458843018288448076151511384080336493199668682337668426035796283528013027150515187731720922280985549013340958506997798408179194807383266863883337666570577794604372702214866921132358718517630628811416273954734032495780687539574912221117828273891919260706338869714682225866393999694326150740742991994937299271637305011868357849339503958688210879514623177434205312193473810209398917911576569625347622677728502960175535000097964017960522718521869933927133565340639698578988922483600872383308143842661443194942269934221346828166621046354549143602488614651220458383531077574795782568577559675403789115733696485558854255240636223411384817743173870309408880435404483247262734310580097704067489398615502388228115910961905939668901482091167944170680525979477865800887648638487681981772149379117400929015611264358267466063234870079084787431737106127459339265878737907772326498223030149538883762983661738907713470480739327476061856149101076192782310612945688289628178325053172534167066647735735729165111342973617195765755329252143299205190227163248037003722841502063470794144650307565997964987996433913095363865796920616760587680088693308649221450138508898185887907448530614433250489682431567787505773732743623222456350657562980876464260592597951062225994834576048115141594303670132200299282806215661035045419077098299463232565764826119704562852852294766953842684040093942039198926425071671164775450635996302785417727648441385223498729813417889919794075920284973551547566897989887425284207729754884217943720847352354400454694830356378194060622189816317755892632001902248395800195076952806180789197243946925998703171287161249607399850563111666172653053728330939131636256854415561367042955266265808797944147028923449133994991064169668628721796623717960153267298295643177886734651700886067469525836322013904446060435100607402532771011592741719274929891293444125230701677115902784574847495695095069341439909928331095599190912932641563295736274388122500912142377458528855621909884144473264912576784428942684885959658622827046405739583648311602698285173502575108715077178191335392728243225898553609868477279564189285936132050625583352805064621544146918054140307969358104771279890737154750479197594237625058400523184398903233054548247567684256529203035272887513124429610210146792196585352050173248408859897807553083530930460430882754163668578936338270199400958656486351312865065007284104291556451648041459452459791889234126850456921107943740914520981356292988713323793190903252668262368097654258884646490311986270097737194485283926313790629551311533156252118845375073846930213472033524197843974741321806411889328942122184540643221575930366341386797598186962504630191330964424562517912046416688291027299189125798084178999121232845464760638527028828627496213992348831262161300857842693842464033628704349492354320135466921155102699345281530494567547348408920037231894551043611988894455867497699751536614936631816767328428006812613877966850877534570623692295606515130975598934734617279028163505376489631283649766588097666418280094629794270290658532845335518895696130129110621143280626132399496649828981783276172222897500162915341170877350794458139601629645828370769472592990984301998408184566384865003458729105166052393265878587608765089758699583816214044525219784512883980445505600931586313506280415887337935764095748163329995838859282852375280120426278317380858198315796424328946370710283466498114267527886141507865892899116431389974030437674676269309395391855298468170237541481261978949989080945081245872981668231952985499748654455621863905061160011629319329643313965118555098063823560209672659385412304067494448878037550469091652182970107986054932495312804420435714182727711272644256706777548144479124985611013391738961287265524631307593005560664313745453257878092113970532493223712303807208536755965775298530790375392107048933214982640550138916171402103979684416867879637032237069949916762719577620318928300567282713335806857042157178405037447705567185309559492985551232616099263363330909845189305992012996530336095899833010602193969959988599373049671395992625339819317258221250071117153768076924323211553408226510831954232892526379350431994698148852260917660579527423344264693285911973418262577225488863193811147381930006889657763229024328762865067815959735166099341949883901499917088308005563096110452858290883523934146336983541287925911094708931993709459300880545142180966387557608013691609497100751256259981817945998976373417756773608873626970306880835137521925974131486917387817918941399577111977183584206705068919356104884875082288920029756487863789806902979319103250730601241065678772983313850110301104657671520111844723042966211720756935431611338944649331920161192944813811269532389359790204724501518553505304255294900008095754220708343149973758861538672270724324143627145594829765986547557170261737919459860732853105056908409065833704799548641339055853093095594063079609668320923549119878728677296296779417481727407570131416726965938657244159367194071561748863437266448072656672465897583924195706875402140244021779139111300405413478089183857283972415052871882206378337558732307519619037264471685432229987597828177572492192854474026217302323830240681840981688650859738265734638012763580045603335038072846941862253590309448464854902770205093890008299324399323704752033277744136528080729751450010308434971139934403329466622388824439915529049091623284393361277951292814554390215438522425007956403463196620902886541243419664168377962387776035275327416252111274605367496626847754067884686348704668579287517189448964159727916532937920127510354532849630335350047734885813901727418171257948307690556353805437809348029871250312654111627640334724077269748339279283035575844156313116391039184328443389920036798986271266223399840221389021035646790607888045378033203679382932764865454312825881084800763540112078401889501837108380118573462433036532306298565731142559420874463446616320302164311299530476386118228215967415592965932994916963166802156451203717898351078129896538198052715600251860148320793658418848766970004885682290149872627390548817250442844255271641906722133661412913422235817963647282855981355346267541750940383416037217812553273553606848413079383452723013639916714960389936426736417208264072030582669246139900346717738692312667513127006236323457193043149845188703916911277335781357175303029370877648158758401163716292274885151241471034868264249100794317262832828156385045767028507244155014621641188044041619799880484699963758481241984263285539640755024483787814701082039270146444651215646540047826312263213287975159537550559551277264765916269456719846382266965161183226641555173127352477253715822350487357222313750700894625602637146936509988863704101009166415556467833834517621131122660210835966484294482547868510065266014416106351461981171474537783062757796103185862082779033753812390817944642072115752223112738540697531222526157084554764726961996267681729645151923824827665857476197100931893892250662422892802088311911128204400137937055604709935114774353973078322465984441194118306799804529437909246329084111917069768969394390743478789019887682828468346897054243916121081683094783649937078542894710483350133337321598397890995170263858470656826286404115342294339939969939541944707754926593319898153088972111167004788729069022288109760990163956915870248993817485111461984898006169820134280719052611475093099755702773141341482991732910587816858983649197259128853831674520909978505496665287720497813728756645734321697804441970872574999264127932032844593125609279721608866767096074511475890892820265283813904466456815363181654119969739668588672008088088405267723472297985725648295981882276212895131778240770730593661019202524331134398594336684513663673172036553035952708705220414094649029750794465283164083721180519886578337522078885495571284134966227117187397515279912304980772800922184793504807950717253204464745764178799891124341384577601350884495374475498386098485529491515350929451915545337406535399850900433151291391549541741309573219956066317899656645552102107856642227810448607167501022104696342986263532369510288845746839927598115587193746815812006041820581287452618522890630474361659146261655437325815074467858569042647634519431093187232101305599846218629303656290419750579511268171594078930552783134445849671023027717440604637396191975880922660712514085404105709131206308333336435110849940987401675555083817205490975177539931281409195176461394942479393573645631641473643385385973186093971850616880069391445664533559740939117338953939740508012380450380014622152546252484183699368154459169140731308630193191799955331915853405858009163141468109520962097364720072424443501731734114646267886600842400231146313464579319611382890908367524449912022329125276310818714081913937731963594194533318758166945997572210689740156819841537232063102805981626199700577514471550159062421666774653098351328356476340723442853151339185226344615676652243568459292557548551998796986514070680019075078022984930903445835486177264865738301173294152111892691174495201593910033492435188263671422242317596043780965829799797571767905650031698762419357445880770925846794556852795747597746000520617969145430400319356315212570135119294008447526392672110184184997909680457256364254280782041255582403257109158358467310167114524438571600145716244774135691621664915146598086533057337740316465592847249338249935170617913746527902377848211037526704078765788027330854069525963905326421736472655712469352713634673327804416895616841441658068265943499293414112969350132630960035799839570830041348397242469410137384139732117340168790862744714769218708515787948097384377022672714441737349148991839541059831885639847785764793519150178181981878560520654204934889067549960585132914835622840319096031262596782054767512660252755112153944669049846515242020721748923565052744013755895917904561973307824629234932647191468964818684067604952788553131642848158054653719713641619624863376427065701630710829102475749861924004983159545846651932280182621461339785276278201085658520861573420139016421787757567555705545498449701056424324868871148239981550209489776148943185569542074519849910708224910520786067826028038800467474675931399991904005376542251619163946083509634235073127492236669880200422234843259466481648962116222086530172279235180099050639340478962394656328997146209498130433586178474514624807641043730832631964956437133186750017370321417858209173737801986417126249411256508750384349447317079786983750970419713379038667542275059687059382342564696671881466434232270793121016885905301264917929688186889245646411685669079520795972962080297823843568367409693880023703727294002277905176462711060922047091448937786771691497844168909913324862743189205645635246823059824353393187480735939653445511189529943714670075921708963900487798732159468579083092431404598254414264419633620287254572177650551249090830640321897043922448779387079208430888874987011484164623639681320483957329642109281696559049505713099739056172616744045090198833644265458838872473652519211261170454293445927155577079758143460071719161130470043216850307770896180896373059938253032769305753938130729130197116669649695906530027121259337258956470075709476453313355146031415039931354547510896747649448153707873531135190652533508435016757313686232012147608447118464179820734418749931513687717835146558108279706936965412575658933738380503119513505992730083805512088417360583610402729148575140428990796848032071359327547237215579433112100827454087675906373621297598824651193217237222933658768689465635994134077034073020791266865814951594154819365924801852797894131792784504966382042608265624481244582556994181053728968214472259865581705306084493305804069729238264812999179961075737600376858865228146229141378211355572844596069110952309643467846808492042890498088962397504935359590199430693287431928147954170090766084702878913640913043887539577657899313556488499627804272025862809658143444211448555635896150119521245483953275006559266065862061277590018858407162014888592354586633328421241105120048866925309312969379834129606670580658984061432057726957598586957492452402581010605489408559891476486215230761790223217922719911148973995921920045362616817375547922016042177448929067659743499334051314741219454013684888518656789905663569668974218792496704309671445139713355560001298812459255035019219764241614754691393064679140359133537293510553349271018046697000835645474105547938028486680004213262595321017240957214122375815815012863046287816232548468547200644182069893036981695883150947333971576633863479487968176730723465719220634180119500137745836875153593839948746537966613682191680232624350569212412251962526620008432518768592019300688536185892752390495549063323919436986708588543131314826714254401566181288727180777522695473568555314079463399378242225795184413617134289120321770503421853693284904117439802362937465743937552022693391392237708654334941539044447797859612284354104324816394068746469482210789551374699868260756662190730248245634246541714052052674216035026989329249176867147428418916140216010895850906560999226666498590997722069638774930252559088495043671062994360367910369184496501916228241165394214108028783295656498675116886003216184654580447566007383499117226710049540346068759632302930843021871810778303872222489302408225668770926203470726475078898253553230685283270728957572990327921995955204019674753800079281173731037837169110346188909823258214870781385701197686234327701386960755821002167347713357302488345402097442137396154501127147478930251185140526977401046474881590144856934562461570885113858324357009758287665276308162435287387816759234825148163190344250529289941449164516250963321125144685253126112795717983127352867023112762468153033081627414682274333660696636174537653589654741228304369712671440451247563328558482398726516222062899931781096770152449098455049468422504527003149148814012047491908635432763756114212107102772410405557595671573174715597255822594868551910568545942041870449938365281324637043690909702264399839124570457708333216884650460192353484814442342722900835833330032815656809504662068863822132046436071940179768835904781165719850238975019383648054529387862207841043128634646519129178861282662455948144876994691634186356632766310129865268394368684874499088087935563814571792853502703432217033449043486630092122390127030210048968298428993617750298815952053329418109270577886411656812080911700312135192586943813469960773197676641382025940619868295732267453652544164554479837434393482306889107564992447086930958803801949147821149333779143325619343214211505394127405032349332578374344955119360261678146966562337564019569903680886326027110423196437931369917056349626057626171095200827764365452132303528068385748641302429188273470230155393693040359821412179596288602496246991785504687129066748380837731487350270194656181763405781116031362577975287895504025865825031821473340889740950105181680261999857090033504799857464972727705872808737919467494372799358050813441459736692442011496998485283869989475973733415976401500959326168054086174661705993921165776399576835712307838861878870177845175269704332861326189228082705150533925865003999614587270766425378439983536777629480319612621196744630164693923419108298238262699119691791589947986448011705964434440436799748349357495825385301878502459587411004404246905343486878688318404029277983537318918727372522395219565476205590924671747214464725531233831313711202093398476626610220256507356302465265547837511447493986969020290566005508367668589677293683872676704366693196833919487787792498411482036701076082552292444262129877632084077195769343123477457829052706364752065315262116922045563621845580549506629387198475989629236741774967606512525791288743865560589996495005234711613644857507630849006566298580743487048083676892277297895209008037359725729462933700982342034788940994836232740936424195056998495552332088418141380882877380978263653478103792459548797867435379698715924559592602664796082880005409584037592679820200113910512188503249646812315699549455844889891849242190238094613900850662494858626973347626129720011816667420951837208539775049674710087437897514829175701759440209613840780776922430350397803816391027821642085232088888186582056520855138701705480353291889634562913865397462589309788698612678942816760218653619654066743416785174732157248512881886706193246914630807311823933993827341435991165671579270298399286849312854378850101748394415762815900644795506726955806209857049708368517153976665263529944259915024286557200730215017418216522078101450198192985575777190842161985466413059932501822910117745877235570336566199318834923456270721293442611428930014259981647370912820924940218965712009936619489850338086773752786137820896814141714666818182475828087877494499235318719789462034589515479966881106134403741458393888236516544528080221462845764076938457720112062292178669148578269933080280731325077666673688247826713965150813627644301263086161547593105768477871322570943975563922149516586495473857205231845194237263887659475356734757939183293457934069461968640310198274423119317199948258617955918664104404439359591202712361081372811297393418404074387481475417759355625390430240316868960846451931432950203945619643560924293255881364690194234745758394197313252936444749114467769753814844022200530625408866394575076898334012728765370572820549638007010941489541600963820027254201170962648059935507502428009165926671355538668347861565567764520655413339610717557104840812100576583396228821872604505155599165539839863988350684587454850611571462107300335698232524807731458560294470764731502293468140634625560722182845869298171066270915785015775363585117886101956402274802270378954654090585912174709832760714187379604948067559556046713534426549549833067020823834038983510545163065786509724822992476685816500522353756690867708627030571253003280897202250302373163909672669313115095498058805301236379949384056696326218540399396775289077832666570304985954143495788396280208649514456380788624289374148952838909117084741106789043698060067271908336265604980148078220211151850252193145564912887977046827488788037951821530298392743877953751599707878127637834768306887571305035630795278857454332242606367765359998122225708182521689089446319698662684074426184920121315388860546814470823565970990985976525233771909516867634938852508425458256877898097458107656474871661614137925812593388206509349020732752213050785756935980983040310178415952657839066824776852249622199799024505788169109748485957500086420952749993301606251922351615001683739896697426891620200001291293601149370576343801077397773507175478122558513851264129451304390375849434969441965200111131896020204960898276891323922877265822741542143764105268743189457865820097533696203432303629872872746572537403369490360730599116932243433288987159577804471842605590576564530571461984513819440903057045982448814344701426057289475931220706151136570108974553820312613988235380895855672499786852507525062407120724183437614018813004326997280296904193763575070323555731588055547330123536170718231567582033970396856346336127741737361099911608583694319569261899588038625823717917350135911314477545542615707486263438999220932694284462427345950475193591131442327468477281686939744781757467078160920786584131753034894279771131685530172908265245573790746212036413232914203412084257180189098961926211705819876171235374230593689578489798105643430884295348955263919272479686460335657775887035263993063817407856232783320348405465550819192322450694588459521362865577201949209567940917628790303685577263935897624378334235161763988096382353810807423822866919510402902811041997064799239473230307036500421288949962668528269808979384791584513442115058537767307535472545570638984889893956520807992365428331230302502943173457490221886711287849148945511924404485766686177109851455101943331576270035442060523023291594657640166047131688914152562587134777376022214848370909546695116616974686054344873440945982141765617609602622382848274134345586371043897542325798437358676294343544096245802236022268149511620478155501048962408267951701601386102917882415744639047738039787282751918735123032660428227961207968502983937946383025150245143567639875312540379978265090848592452649999452489346835223743480755852289919008195844891502540361007194754776569768126806461040151360432443517352858979300376916178772409951732700804544477031897777850542072531508604712423713862564711078295488963246194384626473046817493388324638265199830293806674024557310367519615774824622357976523861533035120294690917372948610356754953551181884386125733819586532757823094161758262471421509284211073001234571100444189783705483002705251459968551930188261849004641821292721872197515484888019393266752610993767900961432521795113545735109401225394265234701159315832954532789661354569624882678470983900579113491963913074128232060712477871273932041514988736636788171371223201875806498680643407782526712467833133183367818334197322301180056353908306969180995597648133336440594008495696906366232123215114607780023348113597462948270737526557300354016846611224596841352421737784319434400572633850226305378861380905825664097405992375185242364869676549852749883019687107530998694423942703388280779221985135419511416701293678164025564282522491985982641148075768479139943946892676681108025665968057900260888245833355465154834678825078183095818428931095473131145737757739385475223689217957396479646123387242466618191748158257787167342388843741378491794587979443129972834891747322268542988039034818618641688263413351065345578348092778334455370060197216529786084978874896867582156685691963084229928822570893382569542833289961482266123739068975943410686401144748021389547437015450134542269133541375704678159502262493341324425094571220023864595979570622032003301267652724662688386584112976063275910834565606132060657673681054837225586245813921234193227676970931794696228742668416108585475853128973064928984001484998833117077618474333230117077384469971473845855713214653349884880417998611563100492708356293204551708309460363961076317609476810664410226326922714740733661454498451643939249933239342249908698391598027075529231291998041486785279075592816208121708552422031062707898040431045067853273670811809578884209842783444284997479373671001836702143669051332547192749560865100531983136174656680423085708090280349450808552679532901367242523426895546346966337510497205022831347124950990061674160805721536809483983078097720939820505017200727591186017911003145724554902253347253889371741270675705348198711230449423406260129167294835781187896454806699050700463377501045670425703396239594934268598812320730506710587538227681898011009942561491234526674797055607533304678726835959398678401044321772691865396113491954234299819933555180163194097144774270188908526325108067664632882256674211227200591920813166046824739551778676462566672902956404197764756840310676177189487594839733133102076403917152934438965101756910557342424758952961800766991909963409748883278434303162419372655474030912749133934400107203277118997229303057107446238150669022344554293210968066757088703208732940429311491052919739245687756514109847067031277153622581658416463267748974441577280459321586532686348716110079692336607665613121034405738489273712549742238134116421019381267980053404423687015318310067061958214179748676293381895239616567580917653964382209267641344135326649148059286780078458909459199500913085880603552947658384079227809808679479187108922633007118098826697715004228005657291258507413347601713722990562976934002825256285770908336215388007799276302407566956939056378347393917293387990724248969299835694064894294457543515536011487605851801188543236858415300474850792969191140594181806308085133159735714522687460461243255718778244099066401664087534372788086848165848492998356127070865973623608125133858086041785909593277615243386293237629430205826385930273475069450548005815304334369450002860778358638653746082245227027119434820183592150391307506833689473062362591183538768185348617260545820426905119791827231978992570858764678617712566817108589163859866953857315421746882846910029145820651371129657335072409189487980498743348608581648333652168047333947134961531630609265691496034396961164881582819408366265226587087035021552345377212147139476459004613578330918440219702610044980446491594191842770200738239213392174316059804961401812902912528015083258542865562418729433132217543215792906208206026348803381152001839947137483064805257004121188989373318380638541425802891149368286286153282485261522511484417808878333373771665637512544814496071229215926761290864279496475215222985171682614566011737461628670928669778145341089511469507520510768920366433197075194624661565158497610433364043128007121274782573922128719454507117331984711247881177231148964516362274803151137581267306866868351332524351502094419920038520893538547695555442232628841352405434912694268633760765716154617453867834604969469188034535494282365107981385588584436614010025056322771963100396734174213253962396681619642679671410552153865480511814071809175717994620519420260110398224996183951115177279369269022652253440035009561314655936654670665790854789816488036711063744762017780540464937903254990263335526748036288410367322720023331086231442073902184684308936556187170321600460545928462632322761572905652722220110105661689516478356813618024693846029262437147770202888087254032984559179434327740083564472663119599367889335373146082260409333759458190657855277299597230757140812537713538445635776850493803873844181615952831513753476668861299379078176086068711012879617730264100891575356759139637857383607630782783957088589864693372986600788020880609409178775594371773322563671299061388276202017404699535776424036445418180083799782302350930038762761927399728865467751964604442119640090756888445693112288467740652582794214602286855650286433156616713236254258225532851334556113598347290178217896839062257362149573567206756766872629398253848167870853412959501498648022493430437811687028446280517077257148502367467881851561528458754775934569542748111410406304367427620421678318449160298633474136704246380755704524287630444619564914815077487379109118759293260001105185922781530857214069012624711841979774329860438599087956700959108825429844946748149023286239528769990020495787528821097418425838015765481878087907614064812512896642603174133319143939403946244188183954365742581692917876449019647207242667274410974846583673445357264845735164822971183536399222965336555392350972000686378506679317965051645091524563215172751106094026523736719659033399668325797330232260476462748196828792691468010008770622530984114267933318866827705255251847816379923687753587301289719310884249177696221093601658894311003395312446797895124881762583993560785426528452800789236163722698074972215709181919878042169012626742100734575310838350371090819353963604856168255547207453887123816666947995712002218081169762376114157950384018540767656013019567347765240961988209137299814512922192081570580484266777945677031894541538061392106868851958263908373219038713182463649367795510561829787373731882779468225481096512430829746956770141568835798902432378095415644039367465258716439387273642110135847556841632368692318346512450407152649531234235641726503985124199663970270661769932419649713819538949818498258503023507921356025377432858113081973795545238344955152760884537002851025169347017665781749250036315884556043201285836246344737553307534304863954807680375965339906154258017144485564258482194113248193202480403567830829563383016999003943231580132325343938699409786098167248952245945128349701420862016708927065245587238390949478970704352226732309792365899282136100933348921722862126086167973571403876469568272032367669543226944410986033968053656274656757218626820668990573457625415225572264433069851025468291881940401612242851808980416764345495580539965426921544197862021358902389524095743238284144487743240391413724913879782058127137862109303647624137864578941669820373020029070949817180529047180916995997121836211571249391610660764582958923976942434180267427926879971561233870843160743942693109182456279396267574691885969816883977855366806876508210591959242054355211375641316777845805199406202225864176990151666691680103243910707588156770466472360892674274512890901426653901874227132944946083792084067361035203209771398033222025340038503411361583118045455554997066920382695627907893386603129297971233491455885606927482397995963344166047752203775379702128320638286085795420943548544741291925876916406574063994577438142014372278911486879506191106552807081503237326706998935819765199576720862196713575033637294864119934179348338337077611805772360391106714671422094340799017819871001982688062613340675613979023964609437523004450671301199060647807049571624013089177485936300690924302385522010809937312643484548416324324616899343907992928212793641760469234081662435392312401764562696789056977467808923649806664430665299261210338999541425890140184081286726991646212161329868147530697507373213162096638769722216936086105452655487994937686090802577312169186078362566406522140036358962903423353572387509090823428960084578610858793804323963275772423416857582611574061844447042034323541287429956826047332534812177703422790752926775677920681603587536415802031441131988199282797262226350342485434061359996356061565456424561111464952525259115218563105079219084039279494089453543162240886264113830788912048736910789236949957821428207339313572048200481735327709787979155565366191166345895935115153933336439588800381869902783936086877602820581929708445109694258287299255698413817354998198772564275385350698441359724347434390921102318981294205002727184279840235652128632885156236748725930926457077165008224822158596311137289410396095742235411140035199639554054184006223314537218622621360843681601719962990420644642047430691622821548651014321444297309233190693351324839788240121264950646870406288478621295375419941526929012494375775797081721237726669028246128921224579307735779182451574419349644665869065031260470074373867893935073967935624977910995644924678204001020015742558160088019970449247774872279320671065655674801350138695279583766795402287410617970376200903271928643279302307260899937555377962499924679547271215687001478393781000628109279771237800607518534506207101528401906930058773100046915086336193670247397276731430805119400374296353282387333639406248692135246585928028245199103105657483944476211595382392962049768043065967312010176935058584558180647739371823188465673092373031585171591044873113342935927115413449220250603838170742533268868098415329293100505064070390159657885306731632237942586960232200496332943878923969602418231299233696162356026174897352940167999852066756203579579855531238456710078342764964472169812869612621515091511181519968233459579714849043103822722201810470425286020719470880150136071851448057894879799538312426006267580588995862650561670789607739667828694832967032232304194251243207894764488091861936724938800102688319641119166136802769567659996533526055540266963598283393432573474524116433079979939686895092901304338952353992326019729853833818076100916267589573281293276377474173665257439071925435960730221709691906159974617927744304576453762034296175452116792431286534201387247282206544348118731133522426775798021704967283779230385312006827656705364931797065491035550833443618687949995020771605336498293304497756281982126325528517873150887778913882417776522096281871811517683366988517994621647508275977722952300963099861602345469332835062950611800834717965231641143758632793684253776811643303493828404808393645533660989993999465918729603853018819999539871636483318329242091488612329525512149878005619954873476298524528165457960833033658966517971277988018985005623888612445880592360444867057285584995411717007307008677789154509864538670617602696225030988273408083414388316430701622922185739637657242762735914804143208942665582537718494543715105826121300440653027250475494641470431385899682374100248978544729381059765039809538332837681759246876110766402630812619374465753722892707436206314529922791607207988131072639635386585537728026095627657826280894123886166389693121921025119339228618649884003127262559658440162063640524369965448664389273055577282281262744109954995031119217588979180034434050006129443187212322114510525144958175388528064182912634816746088016587885139472881362880116746976339959649664240574889371474584364817953156243836204497516368060986207062649542546021460795216383930853059653985493703860250485402541756117322730691422379963117146876157192420325491279933385398529104639823480805351019562658652234122521671340171103725302029804976989830946679347714317527158291736951996850555726449756868320828013479504111490969887411183227338299551447097696918824097525800972158188046434846727983249409861154070959787579667469547848081451656256081115605941378455516315842994564437278339351000062104129500575426063798305107426071166004366971581235339510577466471415929555736153640939018862164192334255395181360215952083585947321776016577048992164737149212068869857228648934500660238332448584088311149084410394803132959993043165337120661282702982374577302827628172907728973579026383155083158155691581399387763299369351088900083207455170316160523441939171480665059540552419247350782849403584197344787718312640537866464183373829189402250809039352588094482961399143812040625085575806006788003218078376447808234750070117487742404664175884002219116571767282647980148661557318318115022531052996288724717182467402591909625705875997563092202898007765321941865341838126678399348959130722693788733534473372341538507077110653527348228198492996204624695158797308150662539256312666494535318467100217739183230627767347868494106705872515978892073944601616999215090391561362060130037296282659503676456832766638399799013007647342711335237660265034351970735765516743100681199385178087881926890401621748496445551174977444865169495459233699918284586319031315140719552650149247999352041558124661117426661969937034902604281964884152480390190243492631633609222431333073712841304767395186658163182242781088610399833171778199639194239083213469243506484812091596072927216150263071250329424933694686505907454316866640534009330121010507575567128248204883803514858717045201854217730178705151918506672245607942574006670798635046015472619239014364584965595942722042451800235488521898210133660421107732119659747913479077955649672116907870903435820207966472527468922836444659531823269188526008526126245691458886070805541925636398162395544953826001928707551598236363031469224364034869391421030690404108958269438332243932423533215379073987873181064144912104165010970446231478669823225030131361204332576726358319029117219471786297863827271442869370063678688136884067948479762010020384163176601501696648004781713741490998026484346331637142663785181479694136191715911615518187281456183306648839712132987472276620772125888907976995533029607173456445527874078195883293578677646698668526875999576510161467652832973099851633077246982975267463570741744386496288698041694883325824167343752828048067293663438123162768428779221966721894983860593677891276571609657241766616127428930603871776033981973404430542197189840139157550214426248174776606529785969727762088710499897454554695772192183814462057385711282066482836459253354863175977211058629616830570063639758325110902836557931633941359928021659089732184020685855810030297798296805983731572725365362757716619590353054055008530719719995767738719957365154880117488943713123388501662781954500399423647929892666175716931701466389613222149108589408061365488539490689990333055467871049056203676926746094246596463880641110102180115996810817574234061593085577366724147060780357979042288534552307648877363644974208130691771851477997886585926465097351693796393074126258935207329263536686125082617263181837660062856541224605543118009703951612110787012153874450870214901252397543309856221510241687333046861596507791302058764623538863608454316201711692811819533162958776438559633624060955224850614485318803229810184511080174095722077014551749821221694507373047088839291237667848288596674777927519810859797831315691122680540476587008272716450194252825760648445155835985342674692969477189371655861118833342231112811893841628675669898469759753738528154810034448988841324048932266083201742607194796389114548291401744564493183990185289552986758611840563744579318126760501546073695056298332448834368579691884862452917053684398428830288440117592022827049359684837259786902461507252637168063853865682888585897056712894281203133040815196792863173827209896365261622808229514956859831236648749555769004962620739626034184080960693033860801903918497030851965213496803975589307073514975926780101067311639403910509445770114994900974050130466667334401545809527756828223410070988462254569834789564478293067806986788824650255167519760296649673462073420324589767212001149467247908750803425767993624467035023528186426650398383437782940772662727597393818047736244481799712410055668326025843710650209142268784201783483600906486264478680626509337212016778412017681030491387231596886975138658989066564129581652344260746307256223106703944193554565200935392529197949027258573683101655913385694940426062634164534516026478164402388433668816547084602046254957444643721115936295977836653663755928135911320849223635758344446516759073259808770338196528066113010623292064679202401863123566644511201279361415765030371652472866885737872833642921430472566650362046068066038341716727249350238711248103146610248603616348616229137626603772542419495333623981874672484946256207542293013424768083471978303566047023321503083738387560529765629066334124666290557995798839191698283413238507255530951310576569564973367905618003943842779273909885502047917470311131500414971552402764251391548322697164254411369453765987259739922329692756363140824373185812959396660175418621464119414279894868489852693529866879371458819325704838789200142153106023964301765776377060068240482187785471116711707885045377290090339004061014888378862142222410495188640952179547740896635842473731565018262541331473668585658079681783634565840358174263400229701780576375983632379584402599749158469094676948272928982737693295336929492976067957549790765681740523520733747968676306121015696368466378498106215527992147930135052816551211530093698264596947916327051150401943557936093754947431784860565045446689230474201861136034689923647368053460046369254997593707796527714692006457031190727251415547491399396501826321594514229853569682670875365316830157133490874940178049972596974323828153303071227129940127954933682313585892085730005302351746580838506922962765737814365918202454199034269794075037949800635281172095536209845781407162047573588478214867717043510174944055497793346334811029641393856630640952930641188646288028215665698636515960370295800503274047256479339418054777299242250123170806003157043615781286910821644681215229627614537858514477695440150784089413286327695182757361976206745549571879968216930658670423540431085777007447589653956167870097625724708198260559264466013758126465405205364554600991833161463874226656508288570161456254015851609008673408527508856428969682775960773433637220044815870165843260467997935674765668219355928906646106086687687252702821006093903999637863674923869225050352010348858622775524994420151258031713071084958674067082236440645959282996707241171407455417516584495705798588590616962786060346353354769837596412502649099660832329724872518326306399442401359954755872772973181958276459736346651034545286467453413540715094013191032506167714487733240234649871370304186416787434733039252471363467439276276223905546882485783316335520442638390011793167053899601600095602982295400846637663906829192638701159356167553005247019800776354314878745539043843186972009287921441786389951866786332185869638507965060885929128685040443182782870731894284690780366211278111888731595967030378536586713022450132773777934137473544282670510629787258047875632911384130870066469894731518815883491669905161563767931025358574190005171992407531001075567627109710182404868787101652992917359278237530555951851950676343271674660915855844124552006900496891268713587656366684454371497137276135354863540875068474524162376952724414982759262196342486268501459020786408709318232740555897659465259990027658947920042696059880512304365322954655473130605007730559232683958632348333553621825133887802221281331942120319743449751793018112265740480499471399335169041070216863757051631385749098077914210816553138631320469086741892104922499716703049054372908864004639597927328245549323512797453927467640232702520320447633078140134863144076369679643634154531668785638604080151003531199926968445945037782272551583672289339481880126455456692426640861630528556188413077124693947706601143130638379716123855666093819380679944278638202896138618425924965067502935860895467971004076977382054087336998139668392808471502053172632690657321792444771808512465832359817900275718363453458593759875320953935440559716752905859724886033338692552075143131100867200161223492180975545288754816666085923781947634050062984836816825012314705202800747404841081134408727775142257001047317616154539557400118767629519439662505097346536238999965661945501387864995574232275495473896957647849120761107599580837539102263602553558586984024111340036835526541456767073735995596876728225421219798573236395050643818672073328869540049816423075359301939348806330640737942699591914813596320391060926363098458953654346695475225150002185184163708438457656218654343885335946547606321649486971848338435212798784736387451557533361192451178338398659867454472365862066530240654788556275204868446257641708301278386352257741295318454177090886033119646384675107682556055333605629226166638235622215405710745998200026805897086255758282864158738403135809109792782763615106632154056486438874776691747666226051748557164608487095288304931532883106905514999269920417010648335456149654290444116331295776352499592184484197872912572312025968463258305671664965722832928112494967387778288474487389280326417210744714841502759541843012436924852893499918941284620945478321032027870452930879352701059057974447301428698238955117289056219224415474710456318508553893755830836589046230459638691213364797372162806547037116395721380747150536091373624416783120974771953880147913877953733881917496948893082651483187416818476051179219215629116143775003210542254945984927070603351052270288852564604765132160007152179691508277300492271154092457885141821848061839800615385318111499431455988445204258390030056034289619964598694278020437505826379305042765574939965076589639499310898758117305424504527329598376256060246909462087318757504045783193983150796133065017885459502047574191865393707006667556996758483375535824424542196314626413226336000370853705096208838683378986172327385679954142688752208147218875727171984598103227832028374926417551554274360912152756739373881717229408559159936786881405523192789962826629259114854516970615521572430243606456848896396741820089945385194465531710540649412565974147835098182362319696747341450184860061060755922365551536634992259321624565621231765564455999452636461746930000668478459313983982897297944164510277734514641633962683059293380221887829487527885541832242774333302857668062798333221371539427638492793961695726731805199674334206056248840983766099855797048139405567919268918038811198214560263688217650402130922890976951685875748476444768404771768669181831207136109130434504704454561800713549892101868410703417145590775493765200483576478722438191900950294791740446832354549956813776882431163175666476971369735596406332749783332965734429723645406096526790787080192065626963664748800062432774923046832580770740931284974927922809531245248379759850193975017614588561918695571309132727316424256248673607639956499496880453721059909534855905184144644240695731544600963705441779798804958772265255894552637875953871110261851691714224352392689603378537706660150254958350002779739771509524185706928997456782997136286551339496395250969152012100934684496769557372136706353238714568367851339083144055055989451065808662220439973504814682684569762133735037717311352241750858800102815784695138265070762459109929356071031605938152631367739083823248255655256003827803811262263177837185731446599916893977024543232968453377495833892736026691591538927013430513722000519296094298390267913560792303631357004761240011584648190382306917307199797146384553443713563699148396317276471775735686889397301879285810255925082835602511111887818030455480442588421919401856837421163653931920578399137748946074079842049324188020056816210651106184733197163291620737626925313408868298694386941306616972049193596658977515222312784173351246857166791255586878476492979813722127596272211156172006795126526127574957289026517399036487374884335093286301534721451625804338831157325431650841462679502613724996319049668103021672878763942369172157787666352474956740221487242835536291823287257112709407643539450952458264047513369772409926505792565488132990421878851954609559073715697438467813044931591131318543697122647488429519908051484398289433458834634933479107139088771528510899962477639409212855875145724548430544901716994992570920896676936965870825281179133824706734223765795398097097057045892615900786532240451614612638465520773521185274830525968631259967162090810980999413579641021473439796553978385856055864786849749532276065642282739333036704085930417646303411322125274542260757352331884834141091930637959686778387014333252109675124618359839067220970386569305680879729023225543972656397285315712718319235426794557818801043038491809068664224202277686766409266423390423399455495122389888464838584445607699514178122231558267922496161901955256861331024114161340036989229327754008876071203157944263518896585884755045300544371311059473787426424278919441442186115191495978158461484410036757087240983087735922508067428007413763147786822562416776359988730023594675960323987971237071062618795308806437228878863386771173251166584246814881649630467792654428220368213397549198816251126141291123840146381234072451102819207073229668517822515174311372490084597409298920843761790644334956365609910515294728153476886749873359659161814945490994748958853229897167356968013452572919943959616860888896773915576535050585808105618984851484133643562373558871912727560595921192658550390376916304239432821762236470567936116183704268417492917572676358074268513238613281574415816333531485098130102355094245293554106769928112635268046587416786803768039710740654987711676036535767421989794111826536067633835792963440120595960242299103239840709053303048838888869284408486029528216600776050153136124819779713291567102699730083138482744532644857396060112439426023386894552921481792647385050436235858442948064339839963663156325546482182802710324004454375264060929855497967039242289036648572500402124873861605107687409586773308035806632784794808101287200145199644277980814845859618945321010273466393719015671849996743990529963423670529657432850843318459306969785615584202491818536104944449186966139776567550451239925878839534560758981733573728848342838283274164963887713414051228617453576227117772515508086470173583494643270375002296424336789514925147523790281001868712412154154525656415183146082570992598519708384358694419827179827353781076612925741201090140746942881676768323407075153606021002498317980556336518274734171544601118510381189527848690066090437692277531327495396716033247488357539633590947313116440659985465364240380531936242332331353147059695431564660767380987396449913282050818696326722996553919836747697667152172955394076326828272786353109691689224262319716717735991613237160718005514936935104920311467880731488308699007141919321411840581503624104248759301076392368076329951489276187415522875763555084404175947377717166194883774812354285381909637303684492889541524109443466522575207079870775195535377069723459139083738852011215966580797242082874575856929312104769969088391979002081890146832787615778335813109383186384400174631504355177967731387589399037916143610146788090852021208311323298876776176031757840952144468638447840146338593443484477279919051368931046198748886439040076210817477771229838094326420001957328568310664141379720763105236836414586364528026809574677792766105914194285726837557159662637702487588341715665502069995621809664407227059018096330184779912230467857966982027673964712465514333806187737787109296561742097528735884641467495927271030004212278091592757132277223680008030949538033172256752943753976740693603364082790073560657218459832294407629535024854015017163984287334050233360980248386559180848124290766240092348746854829300700050392951095453493695869798948722020952017985344006543987277362715138756147663213140338424619184187179374257942191765026792762410367343625542680827839500535030880802063910231541714306839361000381399945883584839506087055759977276108196328684662583384787167551085708626425520550613796054407971792907241836446406371026401050707182603484495199319759668712651702643638147401765095570353832156427618391210115248657707613430614831380810678550504154514036200467296014716509505879278823401617112798749576124014597516259815940237606793470884850631676030347478947940503403072393572999295327696045126744170681481876092856912365957828663723546612214703383894123150439806231906340270850545071632664806286759544534992474966760745707233070821543585467705700161969788304901041254035556865283091324642681487369940973758814219769850544152666137160666286237734549833382445869411740307186427363046955630086278428414478920547095240918831978661223708096598304355544643205001452375190952618911730384973400729559368942984524010527163722266964680525896853041028137356090436140720145476552381983340312056403441353811646746020828414812035991790043279160493828756337211296407235059355503258622512231262071673451340214394761722501154486916879603696863832262325083510457650338941946742528056870677531536104908275534872115405725856546635660541438482709331550491185791083066758114858253016152776383409985941375943617282879167126021366072997801781730177250126053045627077564496262836162652578169135386957845964851605230032735110975236176019658569224397160209762782148363394912753735366076877064287716594815511483425333529284971818485872063532359762935095544714204260682035710656928889054516457192896057212608434012724379362725624581202709576971481730077050222131384930340494948168083770301609889819393857860705492903238855085112625841548305417970521554122424052695650503603904651827597917613165506573213421558838850643122046470197981087624265458237861152927988084290567387543282495338217056873800947453740848737675677012996072900168681822103381391261132743103281395516407992112969959268456747680057719599610142234215846182387126653765747063632579620986020022872382119609315500041076918377896573010039181790533172620156002671815089012761639021114981994771373952026904511978094829833090887539358545821185504651268122426194886426868641183466886179886313899444878423687518663093079863267524591494372766316968340469082006217612458845735003298884966847592833850892800842557916754476056429484655700985273207482901207539088367767323366519423592806636236267141278899771094394136109596598631995566519131763436815867898367784884379490533876323986274482147613627263099173554350331988760381178030338368619656287450127451511700307816619251946610046348943420283658425265329911359322256927077890098884227171586581647707393282630548375004878547599628175017701216044615222218284874214917169390084656825419258704211311803256396560860889620230188514320230490443499082894610843128102499609075906295010153142546696200567840282960186378711291953292012362635084113711068276330647057533555012900595553188343891225590932906200767689816668199347863558840790421099188597629028788601436438492162378429307332213506060032988596235932943271981705437013755597560423893617432546677014141034925226173271278567325581219483654044949660365250778713993762674619247109544829297970871832492728603041703668711132244979351637482079710597892680565649091176940625031967679727414339132575945627092781106529557652563479035890260585362107310391168823083537318380770317921050741084384851150407627055902763192096127225461840072018167612506199027400569340342343613713707987947255780117113059330997966626392941743705535454195099006753023296054023315014476022486822930874919726323311728635612807180715108020264031011429726011468723326957938856851337658049652672455656575973914321432471344579185395513918787197096329789896798073680872730663981559568469154993092260029774987677785035901341564844775627831091744375311235098416322066515654455442538992740986015429510469696691397097585414841342543193797654202074928130921215887160181175621052424901483665851911642340001466779720054471041742726790633124497291790977561544626378704368101352074949409928019990593356272652982543153295568060807975829915360654055443092225685537358858302035461831694062063202533143732987698148108090837326374557804574786129939449929486190135575811349921072394211229342437900380983452351318341854298039802619873407798980206392348632814426606587451660450469661930594179896662698126417754821234859861778787328118187411508744057102384349662253554355671064030926765618923645369421320371336084915591030119878991829943317623264459262415346379734724104992190068978232730955355490087548738574422963736493587885935247163465333964831269180387440824850079537102493550810230277646439853573227569718906768883167529733347828131493163218113530223502588074671347471399896262471880739381777490943127838074670389985974627858251800891772714236907834561181834181959873461939096703858149357721037296640558918561692121351620838391607465101295429523905652082804293388729287986433160873503462050372624080075630382405714671562238775736320160587661970744901452280053720887081903008338141488438014387887340418918404317644321629592901921096209629567335993094469590935527812651698321638936352944046162301252434802829383738491141221682327427149047314534971907885999649396046371055174677342878986417218477262056966644521171908899273836127260179831759228144254518162097559873151531936743565548710324526228240980566576554877795278470408217532092882799739671079577613071995722137104776899731373856189006516846880656236141452001138140756039444093722344635935686713343037698492942898495089807429473734867809418061074630528756965673631519184157523705885082691935375568983246693615735193498077132131235849019259471434895624555663096783957995267210219333622412722360379299031426012233368781702134930042413717865840075130901185705383098176725568738380873883187252207651707368307344864160799119564599227865740657342996735842301561016105202008885945333520776832490723125864208885664777076579083868880594919393386171510484842845762862947649489625665682077357726593836548881120830448187576556474664818149784983110028323424318982531861621782574881778277159936536206374066633961539185863967503063963818582750070471345264153800045314744455892447680393883859558332338287932737249803409919233868943099188293628294459675446147080552453826963609333720468938534459052906432087673585202854727007829144910616645926836414365139861181397790019930497355092580265582436252272209153494572585012261397939125031779522994570435143420589259292423653020564309102176343834846224460476039974957762736922512926019067240236214802840175152408903497423802232306711822753965335686556758677237157293532315995692918855325290030098378306227024878541170997050370585803544444848278778356839523083112395614760180657884571999153567392807304927753093961119944803031045387396290281230600350859586878947678205042457576544642490226163695704439288391085047720177982625268204088881137140619922529847338636331082332244756263765058697823531764716623165057357402233344616582635000960424068866805277163835781929623403540621996851197045554812949275493492944834909137065038658942063370703378670596372260045815966518004370210772500235968047467152105444457640479371268282097389436134002610793009803387131186688885527121584814949685661329582336980933740708047264752694056238261304617902215852667671308172294544165569421192385120785426728108302750117338927638624091445294447307625806241282338869891288894843906967031618287728638133004408935507778263658847308045001925136744219168966048983925165403155825471448042404433448815804302030305069771224938577099445862703084005273513064910729480299933708451758265381707718942712439245528311973801838328534288459055501904328668696379105588123096523702820570239379068375328982398563745508389533239009545681615333741811359401449551762785117512716380839693178590426336722869289451436334986553902320300923287872499536440365748898307287025685402869509187678010392222821014349907487343314482484280594426460493102524831564175179828670403380664235379797395986213853870389875179214105973065255088352518437144772968106688608350792390463284967196766025373742109259824609981129622568092502111959515360070393129263909887378033766293549532995021073760974085577099038028578916157027749985748157463239584175575049321631887812504892201263047611267665762776351840305113931793359727256346258792893603288315513192418258390643865282230247261100727121646893228949421827403395709315917651101591286008303960214817715576924183865052726657542257396709934187690649725031300010211767215152829142452553560021053008277071998737579250588785625271342912670344294616376472851491614665086556460460007960920928586303076273184016727002089158059812088665251449217762758267133719581679286028556026369461995848844682469874161017177465273955817296711170801397708743750154687346953430892551376225212944098913806593519695506238660393027705968607023321877169269284347807573065403653996161995206071539068612412476682726417962125690625591911159259938724298235266355310194520846942167604766291598594348591057174967598126813644226758974398326054335174804508421013582619512729572399931100666433499250445123983810328499474723451873013530078071229367081588818705578401083159069961871873796074403924911816217336222106877427178616091451231104144862911698839742088133188659542827732579897423332591723161603665842445537149547134295540003339578937871601829084668358783754872901700186972863864599724155279097301459503142233575823787963993178147444375381240860413626170162732442062278300736262363596914424125552217822886366051395492864714676141915064303809533060226693697583411766762973128949991086147936331062770631964889481107557171539569877283120428561841560318783848330134023866819944013227361732976043409124720438465635798077546677097533719707434518808494230074149492467056415161668323385350023628739029327028908337171424061215767411399626507205353315811974045471498240314156696281264187333259034945226676395918430184458517208584935963536296878765880044958815040888059149329136894220050866814409945160387705968313394860273089852778633756740703784446483743441043026923247004066515657228550455844615511486657815038691028145111699229406823687900046202614513443974842283081110381711131847780234610213507806760437743454743056172324564475042467544634832943785250472653174421415706492665431372458844908635906899857190236729680063333397914187874154012747953299839883614279516288882327152636297529748722190595111429110234380392969344110973893281134187185362822813641872000413023181923911678066188547350464259486617874492972639859390949206759538848534013566281937489580686491436434169583696717955618924553891102883647757391797206962603682289864143041389899597565377205122172275746973322667675223212806842192247344512664746294304051000736443397052654274633070415349011287341236413800439928700193645528174630236093559876567328334801414711623512886017987616777135560702535220863794553352038860837508860085444958524276202402659886663113196423234987725005355901378790008489231809854122551348850397012827121391066576805646455885381385668818114621932379690943513891303921020364231021134365969723110386562576901038813149498859060608208961504555161235630739392382862450122827437972199475149866941514421187679956714850773574100819461213671268097797756618222440670381213601889793434095635450964948116423511578159983015546568015586003909435555078321082059277037168520831946435672105679527045052413798668358313930527513245628189960723961296132124285063169421805302677773829808571161529390690859398778305182915377532342078892120039313561255322528299618512892097515398622006032227605719671271741512975840692753762036309593703563565654702106896346523620052061134770557182289592930271154862799931749913898157012855335153991546658772446621479783048601890176099639315751756006966712984518924537933108821703708918700753021793898092308914335286023054018947897074938723824519773846940685463111294018159646741627355271428199363155035003792283228594777013067374580750149269378519574109062937064558901127969673208325110274448222184478675652051588811003937958831391593214535792871543622715476901778815609543115959507867000270394281861266268588423282901502035142614664139305125201993652543049487095771045827245856603036139584772546740574522043571863869709229884490400909785866939872032136414391313081445021599951216595500135729122001474358138630599066381031148082474029952917435114682322187834802314721963404467847425770929022833497535955623535619481759572698060962598587693814686461737698297824396293390872940059218428541852626596533123420573636847014938542088192267385247967876845169814853513935074420313678747816765334120884426698740578492958375150913270648923809841308861521673202789738146940151498040592096313539455532997500267986270465083960707037796719306510159438002551515253450095755283355218772667924499077354428519612892996753147165930120902905650094097585034955610132526441955944731168646229755248643755077539110293498763921103238871670857192067709885514181905427516380894343960646314836497407046808609554660736956115906084258762317474185272509597170368201114985751214183988387766717727680632070415523497910543430904470302530675562541580801363356542606732838338020849373705956633889518124241733993332361282394613521501032089205657355615363480449457227439031209570856144646779971302636612576039013643767766384557165621066444792805716922276623849277983046069667990709233775754749624805241066166955926696512244721552474433648336444919119465949576367144608870485715107848283209155179793622376189556000559557993943949301847046464519676224483114621540746803246595952910703945873277298115917646245498667747015180610378537557811946487210638773100928945023302918436693188860368963848972156208419446777336997081691986168311223791271536493538453181985122606356580493223927516181472589491739719409965705908806002565072585217686291564325623604087910031446001296213038831178204488487667385983426780763246986395996964218893960899752221719834042582400182256344867404747671646821088328754567782434289999782761643038558527061716984455059456638666781099286417065977444156766155063889319215632380637120647488924518276173472419046082828070299559238337799533680793069513947347223459857022197898668631849037286662276261613923429102205826534566529668717979099299436732358263286345330386058066523808493720802801555237051650871374165009697945257222270371667838686888118819514783241914361387661315852377881403967326660125307278621872709649292232034044422266636078215184154921001637337789163175469755868980568108498114209995742179524021240806982687110998657411138419352581685383981424684470794968228346170417370612095902752569560856558246276308163013600092210533072991652778168270365386864732603620395987248706278640848586336374990238135440920999328268588837489392602467800803608270328640337567087479973575346592801498150397905983306825077969898503187634730941530883258244953641482516519336602210851457493268330224204172008109502991736349222874832256293743558327284519862928718909431988691487095313644764386424778864422132859489724575797101248095486810800172610685500916551291043624267889624954063301070851865613251200521721784136843355506677727724914448934511537900257378561799350678303252852657693108087074240389562028234521972873915411670413761452586796902862503254594535899813276574276861718377108132205232569433108161260447724619396810624545954027101842197593212811896893269800220925088777903643749537873445010797632182043443329558762270715386410934957552917666696845434254080078957942249787993997750180924523738981381352640443115687732254415839259561207225341372000621472212393313730852696120005101942950956126956967627217047773615648558405987431177922101743523069443042914926376833324755283370015548162559117885295237611787839411800518536619369706622620615269189980860278489147780557352775883036752814658881366624520622774944244906033600918060931212881770512985830062143795336285502880261674402892376604298952812657513950905953416099617520414303936087206435096960357792805576343152343819910485219030861495147174703051373875183871057051954170559064696098998890621425216710920773982822709902770935987597735978992909255306868084992668272616194324047488033929600884685601252562494421841342623650958783156697351053065313215240825501678702255384623785495274355872015252941298756705740845086016704567266701303437980044358521249991326806001278690854386031339301929689726196349713715450456464896656890303362909548322606731844534671438305914070449142640323300799045850105567325373086501538443130353735361398333825033622036069912260017790281727691191356164808031553345742262050733370236640095183302341525179032592089652266038098784727803053807498024395398175390157863975384061886015156664248801042773268297840312473010310038361954862473911491250409505276247049605466763650214933035115279014286486466714672271268587996954041221458184768562465910005209991515124464236381261630213710232092519624695727970269578528596435823378774155202821858497102808946106423124236448914598423318091122416376850059622200970484845797525204324925586706282955329169059431858280718684445542125577610616936184698393962234775532941346714663127879247923931197233285852128543947925358820176859476684440960211126251581301768032741375525373535836898758989719040288728686298260931500860556417247829990947861433593388551571151102690911916878611710336182988616556203833994575721533545740316827119031001927529550463974098614644038569837029999068166137233278808007771754594914163664549941130978229198236401208481842416663405902888335081980732073338616474095873369794956908138497168632362749072871189433721280622860301113916072921061771531429612915178929865399236243177156631962329006564128209003975895612513419020962000733762326991041236430718921427099279114178770502531570024483773900739609190483858210109471967856202849318482724435806478093224227037506640966015400487345270952847992877602088212607560549390309913882964788301027872866295371088734369236076721810538030519417114419293797522880015260477899665260309913904265004641984213372073083455113848027305187356356322561483149696105832306388245839835828214464313306210257449918497066530353843519083430409465999558230327839917361654494504602137375078759458314569000929946557071562558193503118339613126750965322832136509948699709777773513310268447201076378794320498222274286197993966324595518141970446812126072107799025123812650353482153619589818659908567481161338427360301417245370350048755529126420591084352340486938082584061647765008852810350372962411329122204300417253630393827825735078564475907742556860301619998606290987817393869825983999783301357327843101524527977805233785153105684505878688722945067583162121413492911875004291900789886436260265626118517757096566609279867167143079958812263834473250056644812415113030953876334693713111677090975395396025911244700447184945303908886130678514670623845869311507142486742340764544781560703689426183312734450636472769884813931780874101236592582174058710198123934982052118482405479559110998747007656436160924967230359566846859785119854297941519497753716232217049176568398993623560110936742428007622359825637111156389705489299459165289977248969859509686020021404599167167153707935399572036563042489387764558555833231042541672833326117290729238453331129333725306197287741555274656034766572900920267970741679001567083790870647129413866945172794409730493673650133579262000485251816720239650582552221587039022982643506680686736190597962380421894281213946832930477750188346318717974021196624638935907822520599957661815962512246567801234042075261681754680048816838809646931485310827879672075748965967479383868187387538065856783049195778111343276049175093142531753189857846472030618174456644331921120005375336836429185755825541882679804645612802319791044507868576975259419822497100185097918843064131789933518436416259281993596351821013389749171199979697657932711797188969287954366119776658425562308665539128156448346280008185040530753188486871159199095158445627765704351616311426966668692628373532084319248827051152068782093214624397431205591548376444586521881553972616018864910056514669082243168540385512808839619495676282960333510429053389349117414995705605684207172098823495757475500137969228949382196513146314368293880659961015399063895750962763310029490131101711668519113643476679390036959011731276991825002496331843023204754933100155607477308553944777245635315889737396808879213904938296333735599939575287491756232455603887868576031220936641235205755837093163535109314413239204410024346444243410984863110560403296539482641623772918697754829807431387083795996665512722113084153641646847645599426479664644203632813802271581553731903237275869604769921622615950515642494115198684683344411647231638445350670795409982597195581493274572107465342150533200298768581138291670975335429099840784050825111560217904612716769640837422587443284759828133488674743306379663396370467083728485076209182686231430651860537023831556755385943858219842486173042036886047664233480268373870487436355006406783647352670306231244747880588236044927740908418438943927068184265665257852740076463743615510950257896228497915649885878583168678717049580531787269554307901107900708075526048798309842474147079295851701724562623618435589556266132914190331043021252842457622013692926350752393739998291320296914481542533224228696445343110275709640204498442177435699506840491084149675422557276912501917419134788311013283636170080182405891154987879614113762674859947078652809529407191671835895801585531405720183478154212996157933023184876335573180054278729210873071849152292575685978540789512945085426088767060314425311238582774644499912482728722691301595074612844046203172111677258024559644842481256375536724985552060579274744997144194236994220385776979355722599942839112452245782991049421669408723566373969004358960490942907352266628972300213340450248566662083678187668335663988739582016568492359192455406250041136411248573294864952960252835415854915940246588514688690350153704692945753976155206348817595793308232243398343592894641328525115507869882280211867097119459776056898156366245469862008319052833723789719559030282634416499020822487691148433829869788467053525363795266887924395814585536591246638415124795602470704214353566342414159245971726961309395354072079398570894594854593375208996424551632296033220589008907466186276315031136502744065845858531204015834747153468710047246769012000433339953835820388959876923978929094550325107631728889407010047004811292345727218761033301103232670281560039756448087103712805258147573163576531240651312730909938688894313617158918531891951590676616728377868371962136142529384097720332415189587444686599553904735376408433148504600501206751464119451396776385407327498102218438711012345818685503071956846256706876016179232556853492317002431972322065837296083205012461620027839768183588171047598072158027236908941157250785008148261416709233443832451471651281697514409231522184270302022172259823288879929521467513826578063295988485212426203902978074844168073717154700039610630520244509751604294618740713043746038689162615199490914815196133815762942098833277788376799906409126314029489286857092200116544933263449442554843186588043728329461529538690256710598909024042173152451758498598716047234010055945781497635247495259928811964157853937328637494326088620369476704076552562965286823624971639611981431881349415714883801374972969519288830131192996951962431081908070602370221882752401682623316000498602037101797360935858354328328393307798293570151953136916256555951740213626083244447653978473317976005699519145167567965819660962704953125737042512524095685303507062505859901663147470794385152222335330516832773932770959156952770691218048145123298515599681656403174874445659215713300779514227877940539446787921915290084049979928853660062483428976517100449742994648771954585925072017414562217431154310546446552779875543817708501705155589973836059883235785518512941189130684761274673597847493942384391524026961958379275521866173400207097074525864046807696414093783579345089500195095434667598654414678642329235706473297888907539486115809647465147650663897759301467495071995312929677315569162630881071471955504834240018228926463573720136382256554996701939265430875959905090637925449194897244757964955184078551557076610931507710598615479727718206382456909637735948994740842508574025877740404901615022479812121552412405176705008891464514323008217361960602879156612597906391546647254336407304811997246822710248647108274705282689974701101750418233515181004967364566286296600343171326405449448039480446814249527920672683298778886907800774069995018750675624566991048305178706231166793735105533511847213098127046929320092697867432701416857126142768329799589659439794967346771615267931325681389138362259748777869959081091753514388735541671228961317264724462967891477435821667661682372378056908438676516270306639922077207797661699100314670663122599864363392083300700318278887844970973150712280165223954854258617039222693834478079266430777830999169205507912003056804395085985016143723925056789415350704722784063436623567494638303704298275121032821930131860726479553461000785134080072975029139845556224183771391107140194154749394221089587655263919601855408553704423527196017159925934897099182619210756539146382863363235031401801588177578520421621915883639277410221535737010793314738611100214882451946021866968579624712710380979800978055025962781780243370143976989671803682737849646649925765287621508590549607685201306937357161750211722943074877649522969120959522765632203273470157060361243668575810524895186888333300421457865995984723491739075537231644423284054313233034567161768074317047842047931539467769135092842374705186178710762526455918314183945228880432790525652361471184270350478768543658983282277317795318340357100341000918093221110518696997699730102324715356007172153801641363304314215598884063136760758581538599632708282558998925538425303828422545652561714487659431240915855600815285228211277424141610681943572263005671329066186035152459627594232774438896136063000422511068583430346126167393322598460407320627599332396476534001170972904408085438517618972883443474304009855487170030503339496454872067907606668644948115501054719065705193238460757525964278301268131591195106528729106564162700238071283816817568110192026147963035703626894774779883105751832581094536567169902245651689165121732373584921700167497549956870205221146109361324519506970564055461948462912309850225700373066164975819556650847650906096320621129275841409830423759401653739776650903186835749467661190925224561441907763381021088799100459435747344606856010497368735824713332167493813697775833385210275223463336321139516886997722983450260227893576877429627703891472056288207047728065703808084025780980961259924010503334096156665290716419983540668636228817306298429771831834796513134904732806953228139536235858359035600129494127298493161132959383020423929786740841109875743487901753002277384255184702133034636593120412342626279886244214851917436818018472226890121836879311075850583512886490364670863283354323218764768119546337852680105790114435580091756842797411965758214840982905661861651138336976923974184026710307820553881744433699141782427538543703553008676145218110567375756727362704828339155835125235191909521293646978449109137609335561346442480647990079676471762270004003800259286250551195730775473456057376862825363417033010456376032492520107062725535842867005016418155984193556227143936933848482981149299169767483692450940437247578402335134237434159981734501188883312750910639515753863711642172629711515010346931708989952280798517707948313033152218019823489664603047836268993454960156273089140941671516857416706351196203828671933635908640308626196062874038811799244875264631533125498294014182594080555947901399384068177524079929435628070775741838779877158168425114650252188100967451189715030321678774103415138406660429604377881514227456121570923075704071405583574990387297037600207553896605653138793107490985950414454236249788165926493344378033918374022823175347159792614526441967659763221632021257226578795239906822036190604960426663912372034243272528665261052148871400803162459297002562121143059732664466806231695569228857869474936785781833547368227165900177967796817708171192237967686585862659455980043906185932302559624276453396310952754533401894172723306651443100574569999126713878119853509497302482248788495418222939783192206381079053855290867101890051925962393042935509828892202394509468758764129262450339780485610825493717353128098768409789795197495924150355394186842422682095659141016157888722668269094820200635334897379673000252892504657607031202125653199429283130588230150590272667866671449644114413058294792434614094635976585413178909980086768132229316814813983971550351162947658751016562253086292456453950307218418811317567797329380269041187990839270704069318718449149982941970901802254954031021332604245945713963481263860892293822335140190237051943897473728653830909368211211162755257276839543224848142783845691605454305572327585876189697612742716377936576946828225686765658930239318138065950967740532679776679723688013385168335097407149983771550252914623990460192133510623335178927806941876337197193210039086872536615551137464329784637593458494894612203622531080062014836234271900480109852764841910345985150742938525392778103327870075874548826636337018983077361441607089790452894389963173203663638224151983970341947985784082968881343577005353399656839363549408591204924465280629890440280335701510916502186124659738748397673666842080259470315137199285112880416496175137589718045215959191072694606488815280969963624032867887218916818137765057370372756099706210374932434894399367339870893108058426167847474761494377158163763870948165174689561096872126626465380669133494220623508767696652820398171699221119708378111882635437314645980939566889214725630692555247034384608431270522095268657766762444420056440471615865350109682806837021858890554497828379389955662270732301587146229407590364446144082940556644924169485527867175634544752729027949563160353153885880679136682862792983361456140305612775202167308128895066144668154885417376108371636326044618407683211290021473548989428353341622914644919524086553690171416996596098742665090167759708276058660456869645648117835468927586190858751227096674848883544739346151968252089603941599452570151579769854635270591733325829325400895671714779494203259036163003348774184942976401743488536797979641626727093747023190986471263868426034018699110139324283241568744752314277391668831366340787619563230526558015988196295332054407757522876535282190186460264851936256455549852148528087425881541349032425125785146910587687393341278238868125901021515419603420542877746463415154067857786220518946389411579657765818933812115860068184576549359989129794625071745916666685545668634978642902255981177617315010154500757329854490319961320765743951062132601639337626572437462768640159094404099983229208030828555240394626584297019555055302989243391424204951722655788593829730075430032806567950089936523643406001263819184959181562637283279287527644979711475139277661444920553592783004379389617227905431182599925464955480057551056527085692588762877758093696311207488493279878759028964587359275260621114604404072286613335999108692841448271405191865684461877562019377310338687466416954835075055454870335091892988693363920763747582964248830946848557860704176800998929490168109226394645272842453700535935383688367315701215821969237169980119072480398202719542491910893117621814815559165617903734847879295364574018343014528062868924056875761923656650969626513431217410170659596809986877431398089010836688074558754856876553319624681126106721580936938016178823111268980812546657398897389095778587198318145978285187770257561783524416838424085396597868376579441148722355959425724342948406824708209975324997533290324100008833272585079565408620517498249474826428550598275926042969211301074680014182884336627645267558683510321385145328336877986556815789164706929578003266830712984165309650820989113244214386413252222743025529625138917132085859813249162539428620983335439855303154517223623881220664458348442572035983770105305807789792953788517602735787683960331405871638348693190070542494340912177130793566573220734560447666290076804902126002457233951454240462755233897591395003480334111485876573212224609544084341341059283758645451117517646783997430024276519874002285654778510873638591833613395472193044968039800899956071154160800395971046973495133690915593597674294774394323140940764898195121643267149254313637853731712794902153920870023829496145757923418846087970992244616904150932427931013053118359160174873901377167646652321216087940350913596837688528014312406980021477960856975460250733524213551072584606639948890326262058143004230255197962729061715549224715843866255019034342896792131153613054065321389319968169232070385294259703696331080882343088282140502522303587330280927302002038423470186393456030055390044411883470876663415720646278172267333003799097028985916010060834988726021587461631399223603462929061717110608476729615059902422099625958962225482310856080246853161490226643603378814841779835572047822019803636388857576645412411483057140734554518835769258163591195238879776035626184340937624243620107018913012679448525300626313202635908997219267046431659987636162882494924306693333797565335735638244631089882687907815469719179128531852471512480856735931847762484945216178201870409487874618335094437324348627241998926221134953188686843153739127308183635924876791903999491365698360972243386815283751371447758514682752104363480591677296603717298775413198066350111385063537193376527694333283895220528563620975658566944395141173815324168407835028789685079447086545808242154889694814930161358584796906984887376705403323110672584014105237249083793998109158121709509004679719989565059037678377025907500926208897696465463494566377099871121987770078297433843509446242398796587797999199522204676391081940748792571357779294363498999317678046246038318636444483675489677353496992594843556349125602528037025555969522107078325774901533236476074184747150878472632252707888131163603851090193174380086251195079026008180444619032111995080829635001987945449598594770140824773134200890008657963484037213482656033451999566625473525555045067745942284432794420875174902013156596138085402765559419003486639818471278905582749949728316806928916990254908003294178194522806069386382160228734533302871835111530092216920693678857648097185239870551262065171993716702223104883117957188582481738683531155311902378864936801658045893448986842882238581745869442934364334813526730284948086441981237174136358139780599346003901603048815672487320218933858009214013465405050182770244454249452433147888482703131656567952132231237573063199800503514712978945150471121250609780540212039178886008496530046491606230314736044790047450106111086613961249798284539163320963199657995374808710023751816904724681912690725437847349870040569251850715475047758957121208297769388460830439882276485868397448116316474597666379180778946534160994105252555092485948920506876607757638642915265129781265437737957520260433585833551163689376110079981650558045419116815837256489967809994871369879739637877437576509516552721250723847264129719486685157765322915256355812712702430563149868830651452638850472219832763331034120506298741475852007818004169071532203703036910185576792170275480898940062320261917000191865910031041150945488407683954998873401950487871977635300816379048203349215013150394058811425537378485997705196039684293164210583295714402419605224119343635421284932466648869904815683243219611243768708329508005214483874345692350436504805543941944894793581851218271725600973023942156381189762053045175117480152521703776125807965849757210146890100209216042000654914711465657756471072361211895005447861120719808034621704598007271718544286053315380138657825773000383837195101435598778389173152240349839397323452276715345307639989611115120745001567710632954689946474212399971572274140750856897802291905903851323756475591836252188520307731839172347907444236908905272334830880934210971936101047373034238829058142096004843414495373007529227977675233190582076444443860856201514125327309983403108244284137409148099818709965040597486791203513175945315963898081839971402545528221270345134510867137952068873142381359984313368954445552728524299511510381176129034265954134628155850220764673597447217122818973373748746347156876586962052267362068731874563585801127244729627630958624203924960808064404878443771141899252545523170666721606769163720683042372229057536146115625651478265838400037973391244572456663443071681701132587356525147612960942122538768525073348734277846046258156959423453118458812844604715224313435208979757395516988614353358554041404835084082118740823071184266322089535902265846278961205276631603971562956512401813654202791621820807407963399353734568677463040137958891189943826647037108160755772153197488773916044464684227931866782534222172597537080424314770971252074916181672567245236076803534801933625346915906350876842787475855618568198518905566837715497632904098380516364613858045245336647002061258739492942515652721577057335632890183146304661001068111477215345318457964955080744642265964576485305293315467749294513467300851710515736653401030944717630252860112718153950842583423843290052334522704757068188241347568976230942212640805048208914122160778456391743513858361176742669569299878372174450684068377737481696373264359634004672398707455676942464994388571590698987962722455693274533072223642815287198156902800284395617497260267848140705623415039452038544432681939032106331744542594223673990631367179017556343658229183440082728697622001827100837800470185911759442819434405081405512641018549111955707964837466995128470446872625518410730987972190358881902201279584640158555910775663911284754075183251067915745232379442881018795516717228065890704043616936374361417870830148640625029620839527442003370001512888061299633779025458398708872107628955191555053838652226742526362759138756749913115744378506135999296851661284352027414819239012295463119594681565339036839632809514217982845444871424996724329645518422428117744500843494280807156497050616031636952864701056447407190615809389558968461147707113499578260202491106408592707688021326556181028070229197855370209253935000076436334207689463355588367391670564105223902872566261121039924695923123639728562922792517944728752207296944780344948352631909753712774324366604456796876610749739735910809741387443715165033497700359526194379202159590217150007234742056548950719081913592322413689123615955193717993470007341761118570628745533904747705817171131245811825359118172101765576463626910054670632353417754791265297815571509499874189457061478843758360112927759210354390778446588406898156102656301332819362448541292054491440040097091939472941885888688408093401274132567578838388489883093484475114253376239106686845107722831501055999304487213348759994661749737648526108148629766694661666828332463737285859632320569228588973893570422636646661347155419154849927648416370461322219229880746988258794426132159372065011117599874913503205073320228326651344177376641990577529147237450343187818991628249034317504356121220517154313595232668924059288635459892906201099306734251964528325950831881145656101957445935938946752771841507560961008388175722072179810495705445831934695409048167606966084500082037854285947360735669791451490173089902836970015857446522471072297590367665223554936982330504065405043669547074396790692320310224824953391449395589585041165103733594608449137200598373195058276520139647622514786631406406305196291871764261513410487692310072465386541253254652320815134871039546353229036644784447167099772207816164371088890675426599682802005310377706935014544196790019962670022133098717836113011262303982237221470541700338214556897140906058173602343763900063487746051764412173121817501090942475186628861206778956806267769809591907841437177629962646168678914440101625665453816625509109212526725665481160278274666458315168258770258143895603157694220375917017214074952195477039283860195273394551083364176056626586194556376074030963368875779461980169453428120376292865657487013426823326139498749207160038843383997582237855342425213020810218219273990547048720677431420134200821964454579374127095031256440511952510906072784250908878803791835518719461370444144972601635937516997447294078899651118056832489282035901168372541615278251003084716184394560095203643391601393162818696256549515212868228889794243929201248795629013300500248056057835158913579904902510540258034771137862381104177888758825003080766217957869996860834998365631993956378547336738568623350887454816741188101428645423132383174060173087598137728933212441494529340167408679166724504658986125571106681892813590226224401098524165221038965174110889786725910247648957448982001591698174185523344648016053081481836020174696941504752116096396890752126815267957174746034032989087496061482231877618670635493146327378998431367588865789843091135327192507637343005645961388656414878719488483654464149038584707666435772730311633430646837354979324011768433466293697142416424260307458256960660923077584513019219149584816626636964907693118509798163873128683485596239790823227757808662025334288523572139022276409937514912676052587332697407522331295812195957355315432187430888031391523196632054807682422106840291541908665952737072055760376733066553940495506008987914309287760019333607893076482825617343214148689611634694142849309783273789407734601461822314516462788335336572653070581838999735690082149598461742320892365547376645730811585671245990645087287838769951424935705149849495896514652910886412524310621662055092729669646786799098208689739358982039155958576090994495068904726643563274689245995568760773693594507612000761368590070542746134016423250392133117769252847596872010777336954882052549908781340014155177199308957654054510619940930349395336359540869023745316896987177266216697741899178806230847174745474756009291229439700056064297255609137972436363899756915283408983271132238149370027232491499106044434238220654555455576196492324377034457158180487592356192398796686441376335079770142723746868303822782438527547750928292070336184883825076537647461659894800616834829908716470446968099640649382740287037690141333529710763466320635078236297530637306934349460775461711707615409595132247938308872131789685581486007943363542836994894535174080524872550828388200216747236583136280790789198021475237508277889778570318154810116960019455593501307973820623318701348755924782457910271651292755997304978724318811447376879699385799417668153879632241726391463616168252542031932518331546108291733910848556822259867074601585593115887143849744957941239727155033464141859450893266993419623976428187957480450729725783466745830561796997935378405283497236694695060192167331767328122504338639176601098987702542693095282432227911399561292705093982393122714058258099659684105483703520293962654789029923044685396864451243826476446253065067568146138242629471830854947947439412802331767543263156582884058960702088757302929803087702549305379999381917301553416984628690672252111188180003431042769266821938264569557710554883253781234530519119990829280613892799348260768565627563058050065665169278053452854982565872562229428115875852406478348027262185791484770571893432414916125100825496816694570306736713440141339024070687087084858117481159680277162171614512366865153625492590694720488428729793221399148133190534879459094745842299629287641702114166287294493530218470236182162180821875907041510519141855782807769823851975627444931091770307116245498057149985017191810842468265697566114799121410421797193035541268183574381224227879812636571599989343864803515620300812973427104029469822917319152700866119762860272259761316004392680869496125846077973188986450549452446541608679251468681312573138692807354858759103616436130766004770861341390433937781966084323722067872577102389041625753354073085349161127332861447562994582425064735009000907337753539709305168494968057742787271236285710449030401164992090420643803126764547064769698599965468331924015365474578739828107647168474787416670169244528871067901510120735676510757444515958047107903007616574311630900550030337089700532440091420386905440673501960882234915410904919093721855453909482626167420290134119429339738749351419388815552093275907635465021697296794544385232248582045770110259581926472163011856967916183950625855842308956724950845458806016197027103329835535823689440022967797359826096483709469550751937929806840143361655820585726994844370856619459437444772980516428179688184372743076261162047407751126363475383395237452295042705042701224209573779351808329768788192716294176536343361668195824601768113021849086734630751410268597782725683538313330691691177225720459332524430442336048434150349865692541522034223386868588806441988101009648543782609781868314914880618168587890724634110323053329296403649574053592006817962635132727454871083116718574602496702488741973457992530732723205345112858588699531242656561358982588986921432073428440568654175943065990583709286409087273937214210021241833657806011578836509505999782797568367991287207095475190189051069759660137106967450514214962948679270563135412328009143860627616223376446591194571135716199256367884877760729916529634653625210522472060528862225385012399031620928980511272912930543409633733102599196511060283899077861934114746232918175751782121984469885452950290446651281120987029972949253023751833107224941941510727601737797573169829441578512718067872124390872191302551553003080146547740849422724760263179794875823816339300574988114988153309301138012371201329624748486660285160322190389887515784904302098848671135941653860943081524777498556693696179898737884504399529574820730667844007138795225258078576940053397274380632481822840038079415435086252722654693934862172844705695703881985786413741747372666099502868598396001165207176101517597076968135734721470443365671751365463851925254454858119882491153927925418000073062458479835084000337559777850336833314345513778592544883413416111128763349192328345178966389015301523133198314243741096226643237094119305488813031956079750999201084185000434049929761017792269084194250588398393073166593587643780775283063394270206688074296697330394683272805085488669450065442597146219402146159194249123471077048546697539636023032883560011394383313087650507012676370614656365190933610156845593565734460775221642782970296207981181835896115452866360334991613586075588923886813175476028122789018215481192305334739356122584587747989371565913932169445933832939318516598116306478988425673112980614882608294895034673820515034826549976119724535791284859565937026416696387928723714975286719503106739090110824107805487669281448372713634541651025133408663285671766357571442691135941924596203177539553909139097008185577070766626236859401745218543560343240609587680068280802265740695199812583778552063035283178181183832189389046686932234317126628232931273599867083413955728098952487130483918680759387864911084812538140947081338978774353514536235412658255663970732938527525913213911459848325227251735611979980209135006922206381116590521794351505284685277633956163997559634496715711230461835259406346946765412426224712302533493275653661238580528817990642419391290383750292971408586385792696647377711911557016857841147622583496029107213027769606702987876449668174712676103669451804334527530917200594075694257325286584310443373794305100813572478454850486236427438638483980277701254417555781241976633576275262621156213150805967508861969560948565396081909528214242566926776683431058226782955581395941730819510275577465744455707764234597413245566452280779587802036497030585299431105836322514454271408763282369120282147249379183419487575889331628982276608506227362042231484040609520108904890855542058276480793538452449647946667438573920639240149047245393110990054723076954115193152990611106086952082802516736911902549584225737472102101330989087375473454482284745309953237749183868064616587650391626682767174294337262134236399404313286326597146960621630073941639862025484348473554523506207551743383233719068690318072729017482212065167136957649762638424045150146403652221230625001719655436921476420638084516074240299977936389341587802343112238674165144046677570047004600833864161843343840379984293255087221065222978537400360561051563814070959052640524264554976603358368094900143150151080587536326735449280200048794513114256542937814372825369121588373691081498465023691173634313366210270309616710150634717102969244065956707492267188682417974037032562215274321293576077575071467446421257871860364108740303553281393094287404855444611102761431552005390122879799767242061693706659362364484998214107490644111313787204641616774081807132105755090225211167080215990984503160978434608214889489592721458913159857270322719153854260416816423902722411445481639737960060735648417028354868365057214253589205234669378349400244524763506724182670330664596392391666272981752731636947814470325215813415654806757697386347239246753521569017278491504442638277106058790860260997259516290844550655359580699827759418831121596377581938897921442697147401721317356631893317833573462855099821091095346613618344046525436823410727846283383789682551398301031833365390520747852873845959875812293112541613565074852731905017991490772683394457474592744700399028300400326931996002836471783267000656286743591752794857951780392095455879701078056172391057790936145036460379662933800015061490386648319881680459629658112654755179643274160498985995650352453187416982816426293873079863727271866832639700860087414571334558118305726780931856426494551333381448429537604964395912760753164016270741492720387628045934245509516246020358852865644271072782322535702356009307175323995700122767875920833214764814307400940643093777770610418085323070062411943053523784278130150884446918619738854968086245714674711253135018834798655695657203209799909234628154301057085210235117649713831648262152244227570644469859646934035842904321956778510489683262639838372504030963945797527351923751393395082848567830039457642259013694075375627466595785383604836881807236310424781625945087293553931455113272985796495864562417059196026264688398632673987123286651714325499264153296510936653551311453456837723148162770518348332581199683079205571207387524606997749471867485878340034881488765584217697469330590759153343360128662199562615308395089973957010899933677748398973872335625349427012431735514497368254522974764823261752759196189174142461872823146285990155350262624757442587974471164119848743694105837578996410911981485726610064184341538045115198908360080080628971074395589891751990059098276664432257377361264775913488395064989997298235622489277082811034530626575950096060074245212608695832719775337287214224307501688297933922819962070207753732659591227845190366704275826037554426150457404888485347333791906709841510022976921578058252890810649917363213183776150945657523596748540169794649667450458076842693650908419424494196326611615545558396312124408715329899417207717816027494918581929547205814844111661578301644078503017826718803631373435192823123330646002450305159662640060945630061730799185031751520881777716358492783118750298643397107451948227520849686282178382065678738649048821643623792810699212901714239195039682609814693768358429311083523312604431763873817046251196196391918851276200046311524274527907260511386849344119958017632178832277073781129970404325694182863451087625573137051580527593942105282553644141423961441790398528816801350557399265457741414100191943935609169902681279676987751948028853968681487713421931730915902164393154394252412444368204339598225744205260537166775865204303065999910369088574359325016597937968524110773571191984628371993905171348720945302244354069581942003785188214480451500384978794467181316726269403542972342610947006975874453678992722651945128240293336003195192064230251772751054922958447919502040402654323968440113238730289086056683035955261447072096969560993737624760049785356572096941940012181134702706257319981039162914421900971918208255465447476148586248865077387574587568251264393913462254328237803940863927072111944214814640639609653513585443777422976117360028482645794605848276491419484010396242374524362368576435526342566954095279302060319009969334578145638814004284094547748303824155065306720950753737069202737829929959330640601847085942705790739898543403393780557701009436920323310649617365506748378834362275730545583467557440475967242738283762380708324065390692949295212199818031607681463491350420897103733931229915910163132901559106788759365329207660276168339966583465543223815224306489363697562588529058289608962214007948872714940919224134216164786685531002267746336069564327419134566682701871667191410793957730743542034972843964657744651022830633953568346584849561209961879164971656621352702351252057680691137060911272808016481377550690615301658359597136814352053516653587089504723634773598652243011515335099906459893983989632571615900130446769839076874564594654783085211576256258131045244294926343504347786011357402442524749413029521656648783318808554447672693499289672054165474561416066725866112125137605125065997550213885246507357666460533726237866904797065541284299946167730835882149412624875775663508440502072140181579057107593462216901305289422550331580216602665047292703215024547131915846792208820080595151379265083501630538189724896556788983700887852829624864914590935092764994163958037149432731658494270117400226347408709863465982983481403890129581398048420647919937850099335721694865624631538518208939692563685031197310060123967545072528999158274703323583134465621278980341097809798502387282511939299871622810003019749878571997955118455978932697055102814397049645927472758105512908361657695830938617072587787160674266673935280611287444199393072656355132061114555024752062970749956562177576258754831931725662210014114815090855812855562276224755531180925725828216291581539298792779552152339001314245080360741842092341700844314881917238900259372672142793753841203877019255392592774789342957685458074413718878086313102252635611782147520111798806798000419770806539967512304082562049092538635425841291975313169881087779446453310736178040573307542057657807714598183194352417695839864112215235699908329986796411657603013211843929437115849703581485636313453405649845388469190954895661417376988184524157804156306345740270682669533341049648434660276513806271095810130826836343938603492120029910728225162221403917373157833915029981996725595373525625884519667938290121783093275081411361877973023270953079356170440027317005767984304262985195148399175361294685345574946578693576500511746017417037703075810253584077879353931344650196893520283365036480529171403717671078246936965819231226610311926781408691222800827352427286972410583251783639101224850662638542372489730589693775977959267219760588264681028309743089361579480646347994849389231130761385457041934162813663789906641338357999223312850856001690952101667246011003038252006764896119946041972822112088085138469131769659306914216387071952095334802221345844710811621675150606349623242822132601667873201498798169342680543397645925659814739174532194578649520384610052933572787406034670543733250083554132559320133021083752508382616447399187488856438188505494030429544027254707317485896199308998477466047172283104800264228946397117113106063111213483677472607070262328012764282940905860141277592703041868785015986790971469893368633442071096148016183961325519477832227969197735727153099618735864054398263060963315222488578427332762407714090173880956156945014874845831061478484028314623921417491354586143677839640554362600227507635062021054603244854822482125075773800340885255089903302806176012507848839404789810409283635007039117627554305655196236922278202832462450631728500516165672218392147700496233766404523514299021541541592233807577545465079990116123902122142073841034891895931645124789133109531459852045078814623321494309920034523664894640486571432198603176270525891723728277379348055500689878524899732368975004909805130467354567479343945363187866158675309850110385477666111282496028156975754002652666877246284035791815383819818422047804965724309531421534619742128328037526957702764049682385829925091344075917668430877237493843694230198116929726697436581979447784085922083929779775661998983754649010770967476715489418071331356599196412726719067788170762269717990127055117857169242308413767914832837685688652656027045829963403368437156225585897426906577764669241894464343792458260905234782626891272280393462077896760502644476901752064393387260551092329321525776281709600496840558859369352346974045513083895463556065387932140366688866249240763989605524601204615255843233097699656759302229228181560768256672327703004331602169413675558738222508129647848602892778240511444199229040504452327483113711641222682062603027847588269358106032431205846227254996357523373292128853704079282802691204763598571842016646767500908708136757035652463962937691010591597561425311805734306267965004721658618622279535753012247557123878119982234010982797012402257157047946644386593724814000368073288856006295693649419522052502265756649612660945514899443407640559304312126331382033330418054826782625809376273525068778580158884646202496140600357262306582423392010165784658222902265648009074545482656934888129797295332294389221047074485186151125082889870386722864320698008196660068424517648157449558872276529191445573394395434570026474986121016333031858464740116217594513708444147400578244127527344627237971344694145220564492370506559827237386065408900446622652496725391344120825958287314321499587719128669383489357114595589900553076233084699950374970955818474282497117786867041946129714020677617421505790605307823627661299081410933410896949645294539243847968247142207338583672827569862022995416850822657067423820719910514096405415968431608639680924327429927833862509497389717004571967452381898235822230536061325688639964692827593683650342529959044837457989949981506848310795739312211387954788423577579773843349164106301648592010598215970019182672412242150539958610554845807867100775608144160162562211008061703195831604983809754557526362315656766855162768653028819912945118102565299411601794421137086400123566281697051686956174878711024915685099467489534442705316908024942732043079322687462636313981121034618552855727331615409733404387585885280022929251364381691171678943240556854419870641723401321376087420126588042428268948906939043638279448270417712904817342776948709829200561704480365990825278573142606356545996201110584840858695824930877706373986355024345498727073523039506730868568783667124666803764100691158348561857191025545318090764768051604735023969892584105995292463090327753578202265782300463601815409643753713045549804397778862621076358970592603808905510055174027242414187669033533450801029852438272450102749608651607099985116216893650099601547451062359712584945973714691854040773839588175683525930061938646083225800464073551267331047045249706447120001908723745017236334483392983632695083762588456329309676732427042676523647115629719930904603277348211481233160454708603724512607808178548809132844563012662931074889918527652120059171671881291683051561457309328528692047174173020186824507642637578044498283585774575940169643334554539714366812819840013413968792895509599978343019471196226710057331081748594791688000904769667268628712407262195274854196161059072214398251133332567411533658848963050742744829593750105429073776862294193942026014593556015189347992260017148453189788482802858550210244902297082921174518643708486266305294209753517203586771177414423910571701584429863836123560221623399570970153213175125476848941465866394275291283641020316323457782532404831364386485259791362594894518414110498729919600016932467683734550838938760777868466336167882668157932507202512584029120059534541502131153791258111408104714728541695102861649655122171278919422363078264504465276107531613676743057362906915250936332605849938064761568648590015757018607074171613790653371822245525812735025630519699715960197837220737855246911042881935136717806997521295413450077901350886652822265366576543120315761840790168885819368917119371444699243280395863826325103892399535147270221361080868148302753496206579565009889166512664282736428377851982489659510200838203222881225701810853078602364724188795409058634002986318864652222905522248976740645673726980958277477291991016204244893971021080362186770914175545363453713434978727657217153645632671120210473580534560316816788976487370046735293947262284469133077940727780795935957922488449130204103720043233294397093129597993046032848850652130852646667249225253636616229086077977058571266026795951839838181831984691285652952009542475582580079681859063307109903692370305163441422950022161841916439609923746175336775740961258405578278182619215197264177406774781465502598840787173521346303943463692936612186126064546343859847074156564920818400500907103282745866914203381191442547918389721014865474129081976449982424185838372038301489462404253678102636138905106862371790460866118640209140887044154324517427533551827819460936014563574148910833972449317817226495500345105416447903682514299759219492976467831676351955464443341746955612142976175050382058829300323747294595704433425064762380206207949747719351806137750494188652870513596638302969378248516819003445709735646980977629220918283971390667465842841912794809728150283531987409057620942555367709269962113124187053012335712902737474976431697817377884776237740745246101361391154035643510220149429616017037119262024819172037793151208465326098309770988204891767590946914525096823827896272574676522551104131070559883574981711839638123384559772467858869811486820324304007509762202170697165402236855444819770569704549974714362428814562221427912301104353883865171606338709577991142748685312591921410950141751151070107061282914038135126676328983261484249675020049444465566723201991733570815194333361299801593249342844549988036356391068017578092580830115963752644089955475057930422242650467082282982300032598149090025441460882958241703191234912690379989968908525413802354096430187846819114804992639084263181976571069226172378628479426020209443859384748141351892076956112978566539442746526345802703798439826532995912047050831841988606042151739410991138829435516528264292503051663430655495922140785836705891382624739378433625647015567358421175866660611712483969423614443185664676245100153269497744817472109391703946930150356884729952572396732954823293655966085546874713902579721937062367500724868104740042798122282346767266234891678619954692370289594358026064614677206991392026045372727336224312744918372230229274897614128591392804415708796894224800375227885636771454448933393868705590460806190164033138381149123023533239056854615252090968707725269845709684930059232779098596993375769547134552019854788737927293108133825394512342872633812698456948758377030890028372214721038108390433262181096062762747751122121000069471866981135410471605372197967029390971324454163545860635063001022986876116570198507302984389011322779118225353700526209874244923654199775902462876896879862623834633934041669408134890965565083661947992142072525085445906467426688317956402734568433991297689044083455398767584901269086387186202254644057092281640407179159803241252431542678119830653901520897696830943070749402078532451852089663697667257874916866031592008152391475185717126109152892817428778027028382677927827560346021561488551273119543967317116168258174086456788768293356417347001364392953295361344359812288475960665215668869279276034100102894031348270968544888244446579053515434737544558540567153437361823707519737720471206694635766740543971349552618199209099999341450034034135307858295481711590979986498175023631536075166381974904086969303554041897801430406478070524872792655581516954383366940393814510121514859875914888622797142327688796436079402809282552166910596075462492961534890629237025332653765483989098700874256427470098006319911242983384937123679614092878336621629959644798064460232748895169536653094368896304645566101804760488715546841370817764060865448226779376847211221469027633212948215331002562279605771519421658155872343822810252217844880977385136709923846255574426712655005629643079981993595779088419901071586098432155287013110316531546654389884920752955578645749547053794230744259817067089466409294908990877465002077838332370087647956218490580469522148994014698083372587294561578177942478427240167604268998817212644376961177454144708851193320900857279146701814326334377159519971196372399020769789351226786469668363138662208101120893372319184959038581314959609778400792017473235831327260596550587708675040271551995579441803925232028374749838681844258089220071806764922393558080972114081427829553483410614455340744837024761826269698266751122892229748195309044222346255574400471448887766395444053139368542814876083666420322109024573768296513773045390584127636852162113127621880693858963932627217791797689266057894020661438566957105807768200991624089195249027105136794874198591497072852322359052781448795854021239859514897579595784618420990688189189339033022223019479992099582417771245618034129268919510903650285573077129748806611270563208985564517069069374520062191700911027121270637386484215191143649479693549033428511376895646072260612439983040747138672625719364443782383465347634518212467626613405177217749436160248508630055926030050144328109778796490762723493704477699472451970274917066984987850413782987543981574687290529309160174459564121397129673345261980712592501572030485663238569107012636869786503297791598296285606402442221073622297331911796786181844201948245330126131140640222347620749987066590980086192399751483306618873834821531104626392188369732522647751012220277636699198134910606550654908454671082830417637825847506629738937981570237512635758418604115362363886371485519816789435186995016525490277462409515339364188769627097819715538784985990051504571993832200938075787753844968655825213777657360491468332727784269672416155700640386912487287962187058171364099354945425846955787304575641496179380683949184726312298705873218244387762399428062752832447086809569017986470815502053688715337868951475249303230490491516936549341419767527200726670277096986596439096731616570473132813573333175903139414985995520357714449455777784388640675036986398641349743268355790711551127448630380928695747402465744271679076580405375384759971322017501244152577528596689755014292927834354079733164011938267027258222930870789687938415363838829142897718390358404180725001082248250157512780279932620089251004025524488786316624693719537534361243138911968670597343259826443598474506378116007390694507072675670089477326163215395425677124304697220441757680447348848040289122157813575542871314072012817419828830087413608873767554036168889600560924823124252176898461745556358275490721228597589625507509496215837469778869602708599846111933850698990031727325713625384983879917069380842562745234694086000910089724707710597131297828010298535973981650852189341095827454540967251386151501012589863025148953377581846473758849555230737091296231440435571567450090262783186272709588822551985603004962633265860603998604568198021046557425523458277952237023806279086062171650178612172400963362732882453641353834551181111171345687226893819323742890764625101820721909503449446589442179256762997841537481130977564762637833644999105456450400959517741675176360749771022533974491756307717727442270186225168649159682546364099338476656150404768300068221185237932461765765529762575820441827843622571999913159736801581529787417510554868448267987457463468013039031066020947555821748416408827043644920824998101697652492119336384794701488029675474110664815988895888813032268935924685456460971985115605752354933490020119477568177509628905806629842299579286317820466439183710740630446853539803583730400751303296596683615365662632006929944560737210123690513265060040209365677547032890996293055843824822719389075980357364940867621361467013045906790767878823497981361132040082127666027453770392837816806461719847932562318916745520818543207073409606363330948857490839732462538820843358425674768452282740200959309201648789069688407149085134978176544891152041898234155661011541110905710467647203952642223233108762213931773841299438601334014666123897450607299332053819588749538919546764341800760619579411379237179620328995770882679190556686014546774682098151730239332286888752046007525124507674692683393791084989878980926979463264428359131031350215007396223281070977330771651552085652711595853618536344251572236765606102528377227604147759995189616503987959209037974722792591888069763719626384682581453263286422247160833456731167240746300764137758931285665590046274791384937467444502610961051810107467708150173139958748776119296413157542901968617305527737917845895952199711167441348208061833612232618756323415966448783723257571892309160012276210810599306203966414597307959368276087472095784336489212209601502932419699374473192042423142520218031020048448089855347625101452857232955363805960775273167859596783135057945647926827712518795859334039983773414860308604212004729553011592398986171378705327235185339782296093969350406838824776486462509870783216486999384398023824658895106233534283190751042305898988611487167010178753149176259392251448601784798191637691852990881555113475443347805727229359612003894050707264014127698874036230623891156035160322464593840083783060702665541850003689009226954635504638881090874712739450829991287231806012099904548305673321018411342746267727034596185316794783555941276227172174893470784491547719752431959831960153561823045528659726528512550117733453661923134201578746619974995494435960587860241838630532471926453784484713156867790077730189546042470495696925682594886825814689206832629218435267645900997788274665124767738052215625286484892006169714579032151275549277510748143581909078882462381049929407333157838539879046946470465495405144714322248234495815539879562538603952746470553648350784121845023324196038418138679680622759636911908888811920293646996701966502643060461025522031550105075179557181870404679194951054481113546776739066051165438513358658642061640564491590593838713221990439335654458350953262458867579823658746206480688444668151422371100172447341270054929134721773432101315806516738100687480026281497799754267072555590479888622939633342829185553869350976654403897690715774609192936870781646362522601149369960368631569047107458541308256682948701796061136740302963138472648093817931227850222724652674092312220179511914196270215647846352924193094070151098887245671455339155704975399308217478758157702269011831574543166515380339446181740657587893273578529667942450669853397800973514733407205845701086950936316576544793365423836314050539683918036093100250383373888291285971835055944232738951450607994537889721142235624414836956943045062179239447532038228552268612035935791538566315913677580620374134393218440566174408513911470518721311818991525642555181169151898693725806670767547145630050781413641717333809301850898163492097180996790811501127307535032585471490483259401635590007457217732878466984556082563247827354604940859018696594974463268007983966728528724518136856963036941129101666523993378329741333568323023681722018172180451817327981667435816069825001485638518075997995208782209782236636622556892071729029384823273023385882558820062863351821742737847605627676050855281780241254745836440774288305785407583112196901384845133365748402257639175046903018328545344931194443434065448877513895454435876286726009428587462712230880985899647853486148540761407854818373576244587648378280881360335501938320908428250853701157263943878000686514141059228393597394481717204710554115771887926445587961346626558825567005655197517056097900642851292597889974810819175422123099789060827979818010847385972717580126705086120848204157145344034656050952941366558298334083275197282128891707200026207722246767256204991835066262984428749932189951629573468386937266487547907774438727963270791135714348312248040183066673550826679506547250778856684415591503704781834780781033735933749315645331663201348652040856242643543472995439876191325615829717376117181496789008762178585385666218391261139929085665668866591720151202457712003737691696404578493091154850195419719515432960876090719286579561916166714805735199577545388803808301128823639448911738322858166059384100935826226659302810196929004163327381607440295849649611885069617065485444658328329144421518201123466089350705712458060646543615963965587298483223532511192270820541720131006645977154430989037392137872292326308976770732351801830901590768224968181886373346779672649996450397478147496489522677606133076267507512877077278832758196646648928892098095368234416740996952648917560832617488387179050439344835488800889204558892593843695106646227574478870763610210996176849236458603391521825376003451639460460362955462561895605027145606391531916281329153784212906366845956060122312285463151039362581840061587040720124015729182680202933856899392553660906494434655477212593521351433334110723017165912135489821033124384280033570292550170274525838082176976125939743385453117721830735423233220993282933131972843807092615929547531884284821969879208627343572511317082509482522590020519417835983217832746996136672777508379149860140477007079961283890994157673334248040407223350931820341751402861222711727897761136830916391737026729036218998463005238877696590160153081617526346631020407366981931253703851101605926076986454058055233723711504452261288508819772568528261207901482771260375345278778749603665592888165168571365791050934549253820332370260267102891407870013453924025640290265454478153802406604215332258564875926049257031361400124412747292800886032586470248970865414485251552114835117256171958098099624910949608051914119151547145186713290628997059022947014578255932632889390329795697987207853285382778256759387087153214846169963363159857256056989955482734233873759497392853371910461786716081925708023197562771643438716022750433688347958681095079341201665374347240530621584424647398757834945378853755976445147280783395323988294364848329883815102728932132254016637232855643197791447320671029466513650681121692289743928777495530953303879125912517939182997371915481074051326432081830336006346072038362674319589574165881491183160349517871726603616216638287116861762272500486123720135687910748144895095570858750653808524915767266239734461878534847423474472362513580224120131945557423807455196605449071358069270798885779836284375968970052792701855053308993990772504972054141761030214159437825070783861919690270870863989154604413823975394169026320600940848589153600388213921564277237963822325110720736808321197662520471581448796265180324709724840824466601947036630961121974247294744531947317727154688632152725624609073537072939326848912208965772171850666935395521558653443657244285681690754812089908599494552979811256472713831409500535974110255070429701663792064894418214913964720778386298183727300833990482937695404407603997892181203292802329133587363911813847973728345821575805187638110688753733484504010002836248520966819166703838882511554192913153083767320145152941173094575792346975555738780317523164435363020996782812933694126363538576091015611516975409723487723182892895887911201822879932385311284445063332085594808488769590213750208190020132627555568606319329577514420807676986882943331940235138230703879023042736336874326160966501654864602015584237895261754515659679012902051702433686520562714210353666422976963119562600205106529883163365352829347954304363840682564945248660142935289496281771271090796252760269684446114270065202367444668709422313935218389306360960122928505813498438397241583811382846233788578259723993508747908921278981518599393438050110502799925257154204711891919408264617753437439486728158437193504955480397454349298836656591162188907363841037414666521565617110863494171408830619250993698907375476880366861720585905110626400800811715085564796187912566455320114308681400212419444007219564018081414789047937079682192863092860906834194111028681386661599101253014767729320024362880410007117839860217879510070054266843381133023860463028468582188315955575404052613702597700803854468500685114107895151868981555681085777332470686203816079803085681007694310189482791339427168072882935863683608561139043201935043495553482585970748892435757997436554418101257544195723012048205676840991017549078139024253631830287011778138969560646897339921331386406103008901622173915867015497224658527120143719309784874626959411854842773144961483961453874296915723637674168241888059596728885967340364218845836392570574823149713086804941208744901800127849887524188101482117647500654053330487604893637358946912943278995242233831352889620569328062618831261930638201172519312118182816780649156914980019047558060931943077169482033107160725475447755980050052566374783862595866056910098727500268733634468492612957575734532926048908498226603831179160783915311831522856605348295781091409098915940744764990001230910086599152338786986608451002373709951084015889508132295451168270209056314331847933712035021963349543763897567199818704282973228468773338286783298027837859788805828312361865578860281609784833421356445161667817415580335752961256340638140833123690747797352063835107227669600177533071988935415610674894782775244707460027827499858977348552385683656795308668746019234372224051295367160165990167029825921053526118048992643338508137702290037001872282126460269506754529372008473934083431816235613370601405326116907759743910617730975705619768686436676638193275425174023503747933203527826302941163935687083512123304346643730703147870087370180269328504661231548066809592669669362821051495749036319636470817363554898127778041455779119567888334795997174144088148827354182323928490223342730216534904986626034143846963873825585137461120185105095329438914572321825232777580789271799061446188220194885730402284221775048246048288090064551109037056893754883169727808367454740680129547560564862342888279794893709744826917929566963702656131023966375858077360427945308308899746795273530948376634525067460870483845788389391178581480450031313290613678325084605366651861167050036615843413199223710363071506143835972991427684310645281455690711632662597115410519298294935462646832018430185609528184116869262208109759527761159043031527065725817903650221206139730822802884920058350238147893850199376737703754974892738323561329911197700926208494177724161380602570837450810221565509133360625898970716183637385211763243369986164709339259351022110672691058201225261945624183283401427388518172888080378957483563428915528110945615957475801452225918377006869047921606024038180491354855014343699498160047609090266968424073030107510795068330797775405080606652595213137407838563232170462384457481382020315548592061724540193785072003543100337226064555550452413497698148051913151817289556270136439168872668503570875559372904419976962942869804139234241047319755749603629153997624550492322117407683257459838338783973728459513369420095006128885044778755968077974117949064121511235915027447462330462010446603746501788721003252789947254178206404682401106502729166464889482783187541468371116931231876125652773010282799419408665318618257995119572542782097631547740954815159561248940463556702208425235903436376946341001670533196200918291653958177409431069734095186296055101656921482107352384315079850585570810083621097076457239174207503779789289654407711727728119318832905751629025494949964499771923586164440587634222645443748690658264692822335704298182667658379096103873876206109943724647568426074712322547307169639590623730267682815761749398361478396210936783733463652891141665088830474387185995171544537403295898198405509543102597834585197120520658728643658849406784102576326465603598303871463778146216612085730396004527636646224977411084504446593989714488929665646708964918016623418943485771695377332696698153153967535971225304309318703032689282790978756724488500730241849327018106297891088349052442761188025063100790602855914277875764700266381343023217466490775474492005126340444416490512027446181300250102502434121926647562378452640729249149002251569802128652480096404786215301204274885933257278156484601062743178140261846544261562184027973428906356412095962060722979280214845540491479626117166975203967828413319465907877252330318918614420352296645793974745779886293895920572125514307995298150605568499926988597404088126590547797688113479153117798313933298678766731781360731513887865024873567767771473914806419323529837758962486951649912671765939933623783858927804908837768749973930768840934323192605643102609921425111511287637243541777086870544580069095748312883340570771866052296321468976928465275415047522317888923620690976950067556309542583579359995285376369715856112446830254487540606286361731000703219396255779250295219559122285526656623137979173054175833511441397337564116188429669699650291866790138645280736566935534880088993385606546119345454795559906998874181600342842553964052735954292845587057448424744275421592235346722301465632283808262233894481820443108933215685581812158168308120284054688047300834259085160450858971771175248538892251821953161256434868784504742641364719115852993042175580088391359338352444722328060062088139409293024194118880337676260625092070925468786317886904919477454396880928744144452749417651887654797340479675877944140148878137407676446400235984754880240416183861081917132024240076444648317508326812723397265828584112058387109607296105285495103577074855195058093017272124910508726605538644202678353726167128090326267241976056135966180796807595442384036494815483381585212583266286502369443039026230406366590914941759923722181822303462619439273024151734264175742576716143248404903539467252784795095115949706537003848236231978026307207082427705298656057977553042634172533591577461211244863072141824504881887897317756000647355432872578065994806031215632472980467603310145109661775017747253589114130583589919626306853273500921981220319972934832859966910950803874553892283231049966269229428804465490575009752484072158040367882826060657717923956020908602372476960217837975986220539235430064705215083178919779198749527703835139900106085904954991381782449525856277818121612455190224538438773093274256545118484091295504130151420047530209149364643067003552697134267463818830413779485046951458968781196220615076705810582563162590927365526548165721310784722231135904054711546684885846180220352998980794703915533028922011660614675774020415110693384638230064365155754308108204939657562075068365173774849669713389629518651257782760559103771578968240210747576493230508553381920582031625591741815758021146746538701368149321583851684414846128824537777457123061818943147756075774928803080153179310401356513071672092938227846161817386181311536296892696309617233161851625384224223098216840685980205405493567256723830523866279940727248173414643578213444433019674210071576125418093357798062082105509753481179002537395275914955737915467580115754288653706207408285184095139439107534472101961516327504205075879594041145517282745679762104999020197132088349975203864978447967437566357897227310569769362754852482999946706770643393813156804800756529977752648364818171629957091874581625659660598960363780336193325283800998174162929788544160574312503139872940530248117705765000284279703806341972817592238808356715100141137562522642033493182961650531779992046381151114120234447269764382825216779183423865711499578007504295160804148668813390284846420853161481466219557130631790911381232517653495369608402498179443637304709672526326287202327065585607319802949193973748204873618209774650816729178365354778127610497038482353053422283369270026789461064732457401836398443323981141320906263551941810272900047927615083918939882991609519297287716257154258659194669985127854712200969289696991775606395206029105497011137513712142176775307525299463511817639742730794273988389972963621722875080725463483407338303501766362350057261742523634769721754542704655314416826857119217333353931052415107400793047684972407228898645163012125839791962704721652614495573841315335047431744260710524079011790235767205358561419547992701060370916618822355367823300580013817875129160459411014919829396906400602888346260909815318338203218970671875148624395255999001522554115566150743740486106989807759878636676753005894011441351028825214807080591732532201694651077888988285207269276572382159550683270213417349640425081609721171144034689953597942349303093965838261154804182989389563476615063575026810520345032265749317727650770272977835314595567290947719504059268603532419316287078810726230948265532214403439124965094843857324632747512879625242913163939547188572299779689841100808944021822381704102329293780249541126429975349232009335408740884051888849852226500954752502749795428051249806363391521174127872572912756140164974283031003456964568516089125359742357514204388070642306897065657676354747926133231072570874042548252870413512774076785750129640837991867839678728430485568751018889161165841322043829373835666505077776508383354955288696894671732560596087396357088578025499960203035125319028222360912020983174658932505789656563067784664169705789334423461709353062234386433276707969792276208901878237107047502967454143923008462697684340618893240747050804169778228978922686748078438323896913201179239673490096070636489741571673073650704818353649064600037175572539976515907919019673414832642227337300942359814222605552829639087264078137187115651034954646183718870156817938838948405439650025943051033281017456158893001641391070709320181144248863255389733327779932285555933274394036079124092191371607087881567739930907560838294567168885143228668424155823541007995013428143853210655855052799034808190990728568071499128620791751684375993564260222364109133164926803610858971554484178999326326148630736093264001098169960081438986808044964301654101948269458792329184375531986300484665846214151548492552306190658441971838074737213512571820791571734562904952345820976988234111038158569038899148618628887169231901921837244381013969691421459739042889489774401129137318874499070022681432178487233717529093277385665138673413783456340031143827510468175295490693876189142998661672715419099281948550574520026291963622877131945642161589355627561810694029122072535939493056970848927681498528557160731959095672569256931670711681549010959690165093394222940715657561775112796269377064805211676133259306302822168247100485911755554278990191196778065379757802852021445280785177868829450123753619355736789378517456249854036738383080072679628008606966589111780258929750742826255977506377204999313241909922667330863385690522669246032801994509033634821789205230775295038887713497838530074823857034820975778422235693888198965669738711057600217387064251887423191335427828407231111148441649928977987001006145679687807685551544925019350384557272064482904813688177805750031435176152103826987848035761832634730468830461003697199131476384602319419298488057684111115727940973357455531372745798930173464677614134399151457796262466399709894366123920972563520567543482549414058245230010102157406800017669910990637411464992796943030003665266039830502884627234651386354934791379541051362889283322870689305423348736683465158022222088218917179133401618252515012565790045446057692321883701305036726627926696917654412204295075583586650463245046232619164427997015834672702770778588300015008192659352967939874406816319496897022834231022845350194564525106982783346372196215998756980651427047251554649722311421652534991588619218823684018172723774927995462617290922019080233164607339849820723538692862558239676825118270403849681449034321218052591359074209558918645106467436753590707451282398661932514321492720347324882564356630782290724747035236136855251073662707345634461553216010611510206239208260426775194393058729512786478760893079771117890183242472201152605613944288465594912029374468684781883948032563137725934739734151646637608696919547656940250193214461358964140894774554191456393908072425217788438747837612318055294944982663277850719891775328670121534330446780914620937016948556688102566121484596360397089481232856755024367112357183256689188650630488170976518688607606041761527892823697873403359438745852960206773434171638083567274610189863449337991966399818381571366807019051043080451983730374961835191048769300358951625862944516884979795112706306984607668860877627874302129731896552319060683721278047857483870847352637785901268266532458361035747706028230263911195048007130152999907691150844649761488904672072204881143519255795493176707650466506919313261694132147616021845894091179161657754920660959216944081814145733463026104029761594595358435644074105352911085106843950096587661827820443908568726768254476048097622776014514243670549234234891138270737793106502622264787822154231218829466705590549515827012548120947299349847621363341131371673989488073696127127049165813579347032624243695601577287611911498593599106547399304264593296618891931705516361443847265152291423339457625570258210902956781382048029077645635983758770767952695053742273622418399240071891934801132710654082076736931887004715421244551032240006942553757052815572482237395167583113477679019746515828053369064444840532201475119020666393719731407735337518485579502740058321350674284412208900343213868162772879429027546539338401954009420310884239692659549624846598008399285314850277285971015478493330159668673583239378170949009401430651681850340186105925989435543976567869506425563876508162858746771167008091938614799865683494870435483037192126974772272842712165205308622297587446265477208621439518257492622883411789413781052421658066940638146409579023784681706785573898971050676741947154826926807478710179607058187694951005552135640540236083700643506184792489515482793121768599634844169843466935694190309874577123830230877059843122983885147374805006994940076568111319774470770767363816438850795274224776926031626589727524561307561325090200466281364029061010771060384411821216309529093158043516401358347294842310464480248817566368440030256089998856826717773832210315651043239828194290043015570642520281525682651412665743109685294008539547583407572625114797488684816009634395356558647414907569141583302852104915505557290576162459422863028506209892824717643300143571969065502616932353881637843833572714687824114230680096515262781020709665604058008746497712186960572414858424842373304482617910902608631471359798854378284226157919038703274005062993459078563832333569716821312764373688249700613178004304095209918295006300172324177794193285698041317465773868771891905212248641656401480438677514340318237082071804347129898115221376843351654976527628456345111212120888583345612289561088770129677979276590744069262327018427547258134763448496088999660311283415840512954560389717264615141270203322082190387599246070006448685025800056135948187795941700819196996101972420051885473170231403218172084439017870108928019547347042646835443146894604672845667066140949203653768910858251936880881772428753170227863739743141923793431975824389182295428613771828996715194914672736858746702161636591028723230423919443081861491589916606895677842928449735406834428586164068642429287495321660594955305191985408915790324704997393306433260554566527982382779963060266011037146829840332343035454875216998896797960409112984379377376588212475936683322604039185115330353612194111355807996370553952301234373783180101117180380415676327743263801851941363252714804567202756060229824726984890264317049846483871207792912705433461535933346463225278544698637519271417045510766735871933726097337315878259119658327751057418082946370517112051528211357063804189009900406823636986795172056234342969634353349596735195499184183719850574016600658900213232270696777114424686680777194513732946013615675604837032181920768237169626314176841151580677354284232496195634412341528700353026804765242352880194644075476307783317134814955854322879798531989069492819119797177802302542397220023101634353776692577917507091284293104936004193590046699196550690807933761243576709228296746330976173165606556193501035366834228226700019541385149031539910756483645965207098663787675707898726168440788075415663826885258951132400313683999007737381306774835110965580958049213717886422264139240145678558886952988025763927437016620598061797899996373113624271452399890815213235100320063007661234724223876317247254661440009476614730205712286102977851559558407132984416909210574480320979718516385011224239933779723686862067743589715011703195433033305579331126284164501275730972883342534681578395269305922337166280621965945943218131139468778181988345108617341671330531311258254643231823393277810953583779360400338737947831499344788696830946295008108240733779684235918982909729053804190288708897026896723473584459010855518005728921639630145812468731532131875691725964256138788324140976015377503262907148457989814556416626008873323039588874856458103411833946966555808054181701743508328062118460870892412795395002831006874343769015200898538072844931402002328753039080212346530675811730035805806258015806147942052779411446059596027620178029283556304234550899752217513631324212435421364488713676730666645104846369839496876591401184544629259952224427438535011949502916858644887356067241252102012639192884078227088030645190523056743652673402711697468872893346738397444585840931890032600889966608807547328150810200763678234284945727910485670778149023960333244064987921820791904842200385144091283600282761030036744122796843913464374879044258287111771195778546119895530602276554876315636389154938801277363946064965274546897433544462258037020113586040277156271114936164663630663791108452582883869237962328031265131250757639444761788751745238039574734565928490370401397805731569929543638740162502463652687201364914939172445220129503240727382377888073541280790190089341262920807195307335619639365219444957649002504990904142577437886321312551218311708923990065467925796865424656602551339587793232588869091533564569585369992997961657099613332931185263257034187504994474468129133269761886074430542262692974434092243046606966551014964649252941090996443375072433364301992159224257492237342984177093327233216699162512804239105443740485767483013606697925448803384766435541879797921251053777271021172014978496749924945554665059415124570853184720584387415687515032347888682298242244522230242767116802602104691102019972474883703430801355978496901379088508991816124261371138791276329708184108615137003992003040194797749755495969333356746158930924023165496534253752534361337320467950514719214618795198523208172927137657547049081122944997585486620654529809827410497121289059328866650128428700866889242907468839643759702691521108184222698390521309668360850830382859995274540290154398583325300592337120487936276567794459347144315401215123422524681080741234150111137117808568958637037468807472783540205978929889962795905008774040574882023287420503991886211630691060463088530937128639972228808583375866585998265763941223814225234624278773465397165717299814779186715891702108240409368398553691018035759177413664190506990289332925857321511889406458350552653186923857079467338692270301991816389474932854374449549313136858099988844782604568682773767850119278065634115018918330326721632788307241496782012520051623516089620120854166076036702719059305019371595320769994003040408519491012678321109753289495312075757799900884892195444107553796958931746606223214216154606351444072109066595333675864595358913191555251132253680031158441626169164677159983066411218277359552072150158326537274226099231306725737506636553789611149984726247499588571070086437144406527356049226103411060905618844934476022841458792354677628121285020335643021944214172959494134869267707848147720349214955069570803609592673708871958776175438244234591445257625450081515498367705466353991083828533846309485472183504801192687948235198364891947975765607397502894771678654308179299758930756199684229069658917918104343693439368028628956703991126309238656344638359421273713543504996512718368718897940287326438846348279510925908450226031380974086601026766324558904865817428294799070532977948495200145886356118027731362123308256078869195683500217495323655417701742051263022365238057752454681809700647885857695385394163078876042454314593338546929196614961133578379290177366982708715208008466250425111049876930843788993829165078998450069921497725193457111132751877797454113342388262463749224615111792156535628212096827838576328236293908340932361496904765201179473069742902550630837953731248754214689132843721433403643455654134102779211072939891190139177690278701241717843429526977293300815838898847471570967271517026175725376677658694391991656242907296767085311975997382002179129997216438131851658038696058611226836888898084449328697764370826282559403933181166915160204274062551000228447574138157017358063896443186434659994667600422852921908866018257419503463623304068241961681605190270669641332883221292987054586846108745531387236144405591797138839848027602921293025227992543028920536101217152684754401495038948795592446985367986067412502729023127008382926011220407545556766352207071719383175462958960509317481714335221715919170701844403499868145193635455620497365256292105418718722375513801275851600240814025654623824400884749679524955762194581743825667844863300381594340651469479067608010429667730266478068948697035495814863114226496574493428064201501481403927977666436485942497955382601250139697295945410666525990450980793027051468480342682001474880716727916627924142321280642460102505014537846581401849043818700721710746553285285561087220159437393029160656580566745126606866340068012684886212479293627573765683374847012316707565019041784878274932547426172880567327145759406646841330577977397610019541680921990886928341700221117078669422744043446183843567474429665316201063439309696438738087268404888350194517103857932854113318124176133886347570452646737564065432677757538095598668969751660003509183389583256481349017112790527166230655615142094101850716090011334884466187276155951995092598012509169742591730243521163942823066675840397929625641732869554397274427721568062130729510528316075358198469786293606138635248000369092255950405819565701560462050949639867011210335223807297556514364395933363189056438921936973645981042053067407214433494350701682537743877221452515864105078075416205609204025296432532720018533553463158175549488625908302395787853323228312812832170794547858498758423893101777863197405122756775525599469418357053069838109624312314746595605738873529454736106014266269321647997985713932347765228869829639549257649785286346591648350818037685871445975975308754295174323176578788051110067194837344248392949738097670617255691401606371884471645961272671101048589131616200720158571374496240290751082429660210776847047383149940832991005848213483799696508246763446826596570174223194068839166524919778606796937080142231055886184907285842437606813312945160971528633858599483410469568120003921131263892275244613969037076298043215845276197061812925914005490095403727113638981993580330690205715969998245718638952178046640000810993059271341583029700788730363644384352890570652823902676756063558593186784464876314123011864225417122800857671376538039533573607681260660458948823217898377395846197812985357619385812082106383098321318569149440924506571682436749834181497747089108131771631443471950632619209606113067296680982420752073722247933842119270052855944138500180934339689104295602886037788422718442618507642746465633688794373688655303621708002982310631232054219843385421479931907341987064541735849195227319824690445523475263012620230225042889557034927331549053233026331967767703952426359113429828092934113389505130381631373023413064866959039797099109549286121345803266134083718641855774924993332690138612230002756325500583611437254034424478325358734970417507824593926032620033470912526171647241058056982332107929318859847141132273148899959017821305972183991658581961746606246535095312884654934481388894750567626420261557751191377217264632740128780604530280502938809124089083350837417734856461553130564939825191668823170864247935197708573421709715616873689348694290864788020919265868165966998243028208862724855922756761467628439166126444764688581295754589527415309803082290778972209452974090238627861199196690305825163325958328075832834774706029012438430370646260359033088322657981329849758368699774585652305453334305045611148167287459795207370992636389743575776896358310773644131197861615739232838311812804805371334437623155942382780199003806416649595976024269005857285160017942005750497564735974045049909118102076332487548124620574681823937837178211401248097040103388526642989278734681306044301776797123848987442320458818498671506002757950036968556592866126419470275272054553406260674071245300479197234045784655591431918737640959622387645471966374883640691549618101612306589336320221714640840822868372592084389322309949668343042218652142695581694768745837590285942828395543706867867242347868839619385819006599069399648257587915840442989681329164669211557944783558885551085495073951143452116724926185848957960135020304189558763315196595407048439466204138183041489491567791826820237914127743818510748031029665558910221069226987633322938480609473886738033739739648006670403027964557544154169854387991687284501722332479147109593919217106361140261828531264560167521134846624514417685672341878273209783540016487557771200891740293349846200285705030762386972197993365361707143409095522340818650939675772051094861150209463212644331672902245374859475923121352946744315487283345829701035236527022587475967786076559241423310632004509136764551580529630676680060511812030215710316573209858026598727027955276353239705527238396664874572780862792027662858497462958615883024672445531346706759655741831530914887788221218676770209969842558325812828658961024048963503963407211085814966753860363122328234745207751176448320914797241456932783453761194861675665404787180407557787952250118552447436991371650975485534764274929662107369794157115574940182506391930452746391847968416489056934835654540783484219240245612274974243899386964140934042163065356884274112152459938007434219141670217355667540877969893832557603237128480137822877305499690004163124481315938438579363994123566820658213935503135458451939537337031870270195710397677289368986680241553978196038476306456933801070460577736015255519607735297685079225663035297672450401726602317249090733721103810451810815598081750394007780874229896985486477722664008143080972776082028898093117289608713521455175047676898535003615673133563682113222648195302293834963739123757685860468521654668150273152406784159516185837485362113578795329696835880403406887386295291347283545798926655970626166198394973995660962562211481110081967084945912953252545540560153360030752788001600655536214732488849391440704780795330231710999000074613031624285599258613710750591349115428769306151525368614986189052043453397468344176417383037517284939717422887370067977468797131018288858245505745571723160504973214844980499434102502358127396613825227969524824317263572828965693968369996021567474947711354473357420492447164013993607771490887579485021840473041184652128882670154422738375428754509894659954367093320813801200049092897865956356611007390625009892099553534046645341312065039233956603654856772571251872718406649438153201947106714334472020926047293457319408360113245685550109694198488280158458505074542013920700203348399378240365355485090086705441435393592105547309626546434093849062932591298174603208620430682548992703700346738179206021730471748089182126038552811814064723860783729558048877707908649953115630669695981286481614936258376580923501819884398568209527580110734811397196646039728803338455926621638668337127176634461714695231369876351159891715663105291488593336337220544038278269073399996230381841775106625325827561177723949346704722684642167364716374485723229693276352386051913898485872477720347168054001573081386456449138979845933720511906433963520137729137016217807543021219295234920806464965481975824471410072198398659334780977990387248286609900360799811469594999031401029972106923967333319392403862640659059662473236967901130409008922858565077972054905397880004793796047387623033464339939074222098907023114968389519400326335104356033628660283234512311509493418408357447830354414139671723749052116574611654492660942820952481556142841715559790485609669586455980665945879216687311275293040054738241380173496837963516497800760150146135016624008159350569020491052535138098516302126609058514114856780986420349616037266533657718850936114336357938636365638181821851618960037835365746568484918476012397168345713963449272415508409917084566148901195189729290131766983785852209785102899311227467480017358975821802672777836442452655721600378306799862147490229773611339575627464683214352369703414857859739426295986426982225142935691244306805645097049142988428125853035961709583968748851634308173748683816803611838075962232037505573992205386636761612739746102413953595730649178517092467147117037674904476106045372879271896324505777110015270617988435292552635862314142565476462867633209741039185405240615457357602375691925956965774666914130662403446790485971501745199394442961217529308225515378023510721253131229367040191341288770323104838206890854771940743831854519697397758196796424068230100423974667456327965898664955219436902986479925653030815363326252938088086593945553712426657484294123461685945851206037550137500778256536817849412870474514564198513633645462955116824988946943859019659052086707401368247794641271209234706512550775359773513738206003363587186398232558531314469694180540945881140960206204461221382464409451318451394014516919965087856471520237997395994124226365226597310168491446595276405132848191662668750852658410120940634762427395052074453891465872259850697497365730610551414034442057765074624868551363836356527633922671686364924041806057167451270196160354645745981921663912584455358796233429939090124654115049312770140498112921822234132025102405755766471331520253881515032402393534766350502471231286654399252530476375752959075263741128005168892618797285171523783677310100169839871597898979565268860034658942855109002545138171479193133562357731629129265240933967923877129616075316011318599973653293810798543534474864211102132977769603826606046794268649093485132633399103845965998661747814233357366554698827575275746065354905417135814684566458410049960459372897702836666482226271841055869724329842302288082464763313059739419646918031126422108299646642324017148252906118907470851384220444118321428895538412033624266230344913737124909061722808415882572693014359245258888121059721472513971737475258724554664308158719326023774398063735407365026453263530279947926334742499638190375212081452219419778906117382960302075849541346464504459544869662311517725772350468387845442711365302000987120299417756123907721222598758003187504383687371298780494927980408721545627481087815991719384717755239422590009480383705617078327275556748150095776546691040040007768493590313856020787238361819316029210766265308725206795834803207102025536982696183008115253179172823187574319492062092497963563106318853707879168221562680890824022613337675413674599022479076259776825721982987573649746691909378234824803869645971316530079016821454809343133484546330788967810481371508171249696758858186734627820987178093857887592343587016264363743789640873941505600510580748494281234264176582794979385985446449820506855373728775936060773764389437332373466461368631341702199276959379326494405669968267170400579781966479652400962497481976930512494904290905438946536899831349618035389121306734957557035007359542403300265591142862415864124570455056088180417408441843153129008038851395225454880472378877986345529958225482924911505134582542942912339990477953933327964509669333405674603035219950187808203155353879033759877414291738964918109793086215043153507344458704257561106872704641523169252971546467641698540540201548404927896756529299495106860839230331178818835720005208314491616084352085093557105634569384259886419775485808853233103109619858947290290023839598687730673377776434209697089673081593271161371404473432685529825666106363244752858400925983453001546089928320360876879221566837124834683594068860692142878620456982280472268882873107299950611969243404377203714525700863724232527471335614251668135738846783536657775931505608703913300531200528506471831966465356970938389331843314478923773535806490541949043519583148725803816720596555905282833312109179662068176562935152925061796066510504438784349051175072831152577488167276687144906454781595684294306770805552627619497883587391623766624351109811961073752936393078976677586593439327513103504463731828561379594381673548841944152319232971233963373666787451900632949604175274104237889169942298787736584230493251581682244285605910432271349955017491177704563256837799099701298594842897218900136260925806116102829778634333642901369453744480015706313856339841003303245417383800328677472090280372363524047450316264898247278056703105910716198312692624725632192508452087503772130717641970237380198517841100267729342411254313416817504375667988338209912286530947777701424344782387064404245365665862983658983043940649905906266239121769805856933018886720775956308542890855503854746179470532111365874404792818932429975031889432449995987736696059181041981786230861738719260498176135288746678549196187508065329288316656566727769670224050928670093403652889507812507003425389381916188131272613235783624735892541025479806439091494579738799532423458034948365782831415532840321221463894955500660946571480773067235105042159209936697873483709106354538575147606089341982113466061338544886351269463931018256829777740330579866292342593148370264903202459762153826515772849031500721841299634076000116849196313672894341424722622469357108042376613760387413511154277304140437046196612636974527139279696953554204836968554069375654626157825409892111755949678648227948833007831494804563176633160870068096453912723102350954709918219491798982536433006051231792052556576869911727011711856792603955541605781081270758940963104679249720119097492529402490401442414832088754856936144390408418587863571942592546298717799815977480310043006754130568372943808164762460667980376186070508085684194588581132917432889820434414325091078459380653482960512134792910692050856225012034543971785180103207048439066989518132919064973529242133678457033905735231296550728920807723896836674899757707940003947005775880661760121183635592899149735741363191977588839136673173210026021817159282856271814949065852687123159538042872542592603575062545096848890268380468063686899308446325715332064198740642840077493426764464837631750355194187926726193692660584310051425518134587404612093360113201842911135159800613408025873402580251796544134009564913973582634684170478696631710626146486939395698360805647683717790880179887941041876506031915564145626475997438777824996753575923989141143718977486278486423855510271736899760013659669475498487817736274844093638199099603186107845473964374967986092461091317717720401971312689470150806816960858723603863611964826811614867536056458014734923779754481205744290377891726912626195694194995067153917025661160150087331251547730329668895458251641749358244080760531730699694641774199417585175982917267573133029233735099701376849969200797547671182679955587854702961063086069515691049613370992110612509946696531940073916873879228095656649028173797666306170712304540293795581967760210525239446468217766060848320004838723678375794367613757572643563995319104405616650382358902099788563311861580192341867921520739143592385888629207448108475970853639571339068892432906925982296471330855785970442689161121512719866908912955505753219638107396392618942758869377581629385567047678817337402675792013329797741225137513207921073424590467858017690909413254339914648466473204512806144968782081867827303112662873208270061174260868865566006965030389268148029443799531822221087058850385364400151766311907396371617264526248546183231568176474790400625206320253964217621300364909443805456116868880400131626493364865824913649247859482727610238302822859216836550128729388377059054233788446543251551892239449249217238099869224821030254453331501429572965360779107885197497991064179918183321941481486347269476520817350279646530581964242450502504327838649113644593206615037361328792141776619097619462866032028188915336518678568329366971808928640334736611642479497802657710858788169091917109287815554026884834471581566142794685058749185100180702736050127927303447682630974464643216030638544214480192626619558794289142074863910115024647814723117764686758569055710674255032037546317653342768564304222170121268845057832326093897536835903125890305256948356171215161428918433655696017710559734287879925651537180206193457451289285769490350031690493583419798241063476550204490650549045787033858358134808769186256353188476772056673086938477828445180163723351430708711521839514897646215513652013771666181669206933771070992813720158011924915822332198676673039063523777563677100686709859702210725172002896819356056371417120956133025433899686248092460060010760767739903311842857962000058814053671656009811800569651809725345885229826546593980290144368285500891060874090472365885566014823766548064523524031062174943832985593394509654097702198852561221645821637892719065986655324160974115493173278242037230278145615609410561227144547528314467809030685388731752166047039667591497789764237386258328920774766625790531548781797287566471810856979005407048287457118935973011039155071753764209002728270308729929253430496826148877265468052278810844935222616270286014751800014926137995744785143583435655714823170116269815002549856228771746603547493113497239765083638899018135592463762071904866653184518612248929204726858820001547996477022475408923507644550958334075439260799167902996420634663850983045811266300174259951675841475963155299999387985530511202610371351646813253917078759817076027471523162857239626181852343598615852354425978991557787025383654330115171459897226221818709583306552443478638495054754219969860730972780222551778230642950709431695939750449764358656424290960217103736651413103963014346812558734332666022146231289196673915372803691508931509756120621525898302550394319169435769216375047037037173967461462572229535132319701514908283137917351118191396527582940990989783300923671509137820230521008905352424868392321162646387464696505513645592097460122256179937186743263187293604391873011304891883255511184881799042271822757391209789594637535818173834570543086637180857550354155705887496706319886102054613919301572995356027731584733531050586895873431483400274756402013890067312939231161443381357697540497269816886543408673637534816901912952647372827367051235574451768888797927119380571441681921292434033746393563553925686893547865270675052328286059959048915059660689028855020991421184759598816187772178165932093239918538369652087986437031872708774507461967034520352688427967417430619683476285175632448180943256839341225127640475425265876002347241279033157482459340696583811953131282754405005872192536857095199017394168778279965393986808086442985396223622664035783939697507731887451051688200118940785406330699162416522232259767136156140893877207764890928171443415921948923251165283334638071411707166299821673130779532073239086986959733349327868540084193294754516116387453858730717497376864976977866986520409209370951726286694292539218251273354764825692601935013100675252746408826985732912373607819590391374012054148420655372204279763808208931995403583314175876991259140002204706162641662609443187626595160622948534851492552774084218025510311068072912464804096702980162127640370207434142658302276820689500457360781754843681578916113397957648561198154593678201029334063236628682430749356823384670867555570226063421472718014188256870969822336197212365459838566145158472804892309499554308326066266151690132997063123684151112883981280361729250617611535364369682313542998748623611208470989189449481728296212467795804314670976280837344072211819585867796352603192207412360455705918133186969564015047860167592862843065527721514789768750315293645339742657742232992098797249610300592308720074997015747224965949208853534784205977912559660454124174159250461645240666304118514909983796680313941467208684868858986627589662768019242262735360982341024264954304479497185765452109299059013598994110015560202294264540169993592153912129564597222865229919836382112474122854846687357309039991074617188084166741648903914044266053538659771967668085437236602781371035147381816988452319648034266085315520697353346909333687502667457938232211903648781608364837511683842924167004747050723965446014188187927627338632591092976426867457699015937943312251347856786835798594930254425427935644895277528754385872666213445763002151951889391150258348935094192548989763171746496568422383884967073553623061630930662386156058309131456201114304294228715131910903135907523675996341197622648108014875422850228495088814124189953716144853894651213061649648942635950399757335405143365012118510772560537815701970572015724517750211347747085457160760279081205130996453940953847540392859532915610278556176522413035541763016416593803653128903477865401278259434574783965773517312612960442447755437764949699262568163906741638150385389021415549220448633470151510597129150092303937006223184049209867826024506449030602726097560104688314347984153528447366662359090300125805287528691935030688342855585429698459342989585417536973497209478433464186860495330505597733365295321840191966027704362358793755430537939634677660029572285543159124485756042597639999989730825622787519934064046174234317276377222298010060843200746861065034103249885273714586450771779176606319600589287596059598871434690619277893263668828447425795853023397387646495828681260907575264846839582422431821809664400939838802384472599679351862950341104570430891292504606204352254893627243709696799829882276165816856216359925856897399512236871918983693154447086485106295525141587031380825631034818947875956899267262092985065046044124731254466344901204574822437874070719222241060734294663984173777074451051082025418175833093873783922359749087669788380611018265525765570125921529154709882895833434706195898310185166235527654694765545560489988320219008537558407944540573140400922552098921778435439269019030212853187803138324399897363816250050620209670231039979806749395380736402828614604049974511099572591905290985646314580384110364739873476149883903804509378983674768259282426094727990983451450044681767893061950454980210864683599284633201131642895201995377130962371566793784163399880671080756279860638891917359071555963676953019428435869009794317414382566376752940319158766917740300711543192277454518049094621748069199709222618104185778888711447008782778198396431092862199441861913469847779049323363361424141939537114478591399002029909921785969204845098128446214900752846826121862451851595990082375967693483977108649732806670618505983555208367840239890192583223965917554878692052332445138221972706682831112122716692631874732119200468446326352527199160527588626649576671424737973776161291410294158848023161690446636139621906568694224259323355630363582046728917886389347729574972171984335476476671562609845891423056907502654425850055458945242102616753611721694628202257017078912677878526327972537952824129482075593645209962404908107389239025126141702642537686007929120881636007963388583600163273120106267326009045156875990706427046957025258026355673352275878385954660699504181326420913032480114884238969298931046582261278507882578241060241749173945234895344919371048082575829294180700700573560905823808708878661659936716223573584041379139208132587684426791171696316429933583210809048989359190735045068171990380036993408828383340265155339119918241984564798365111327724665102206816703636975815696515710957940237208718963654293308610649830894770358228487338041287670203538155207948951508942233299690283900626340585147755182706390480418357398491088597090150176715626399082344326607399017644070405124404731563833080431907128372050355855157145459745485607301578935548469142262483955267503839840587006834943399776488006500698110657523196168656864450364281227238872549491520313768222581455032183050442921686802511643298281367406146969251314277785574508325302086168673263822669725651261545039779766989873731379497968484525000042753793486177601467345904484526388337259643141184442646060776919606088130694799534302547699692696342274896220926520878053473428424173838415085740884785337496583485135254213101678098421371779400405694621731745845399237885726747047078914570113296747473554395160880165832422131681330937602346203011858543481717703942741522458200723337257987149736850505471874778457671877765829224444064964598242235224528621715836521208164169404479952765067190061659582050895300732845942933531914461296605746310236495655115417477050103631276216089146160546808891935500691206617788461002779016394630056211201342836639016707984931390577082062917387814069425017926646737707751868907057560789160387470455553721759887139663818755492667311360873712556634184618497718805174659517129907146612744692351002291050222211866309809065205306509151057371766671126592447808829122277852332698107563907220385566369825541721583791682170618963012615488521687011259937758840160506007280070294354342985377777571446578510968373780826101123301632216982514102247982174093318930055982277847395331688873098516914352301804500739978166201876492507291239886455210118748839536372555954056321341554690365586632155034595279431571581910441606596206040293886274169209391870739917350846412186538543186644571391490020018684128701799378741231662995972079996609907460960823995018258657702823047939935960963208316816565339385870513099076573766553264512676935877756229096962202765877495985714657660500757410516522085984698181418068048049967717726707272702208429798810098730968897395390418724588573101628678041816169777641298304388022064008983723054861578030405065855999164793361419492244212495569629339333396135544609547247500528106663247116214609566146498728676052876179844792818666807588490772058525795409350885014905662088372869850835687134907697905106905552398583681756536438906291613047663961554158162622350358933424333856915237224223000170443786462521061591629247441075009442049427541868736561129826183648507883366269148267200771800353757099472064162932122505586363694472960247350165096058789391190400737977069143168058701600639005272875395444190972243077175895520523713692247947788675956566067057498106726353094957590923137394239301513219660294502343552812849180110158699957066599697097623598132212947066673309108126508566221381486061337142370998240345101679803564832817379443250622260500100519205919626815744868386129255459428993152966795928997186091889914437051525237795674419279790912077739716875057513472421467109598144363054324841382792515727477942625886398284146116272641467011142097857765067901288023571298437257492378451672372724506454745256485515462867914286613259664134473118508762717239148927270721524979790643007091492904656658469672433284976112966431546201130726388074857412873834362075830799745747047832959523773466276792403356645377300077953930824721279385838265163587602585954407592974392909754509501147838191650845155117976813878472872562637078693278835070078954265699417595605758329419075510093037392887624010109446545176531539017414609822664034082340768167965436594447596278463498993967155046886532116437406622320485395172168435728338379126790371226362622724482655773196285930231143724774381884178938311592360190804003121884200475989188315169198810998951528116282008908324916803414831621286091070067422937940106241557371660553149426448716466657255922433654924021505465538626124389766632021739201577649613448656381321118183235063700927370247787161042789817468762989203959035033028290604707659135134995427563911313008865890229398606976140753828105456524507115065529502845738265189487507405199983701405864388062298506718645028789671104398910237060895176930476406582803626135007074858952541131238955888020973159170504555821332728707288295369610839666600854537761489019548579576540595524261720322868927084998871810047262639953539135790544310497433467111029217213803184030092512503764966243290864725528762097496173154519637666341206256930057289488020966907947162274458575210830730856223293436335851327479491427738925262139941757479572756679677467476100132782411783460467297247192473253958217198651684784391604693519994063490578408692479813842216850606361237647121092861611423195264657178673977102954159341613815510221798049683300039020101125477038259087965901738911166641885909056707040214556327236680090455985195084624096112591207308078886838941191001785751707772667983829056829923833090177531578284996796473988568739016129754609699344710027507314459541507389535654386678276052950980992194322202640245957141512886791232109862994595501314070134297868598032877254378947294317302832016454094783908027029768075659671731419184084165146442627648047155108546679703422239163366254059289147291143257685334078327528110584188730213423191270314450976375647036003674761439829412376790276126147498780575759434489785499986112871236616761819320628999003313891182160601506423807632271841483825639341770680802920425649855821640706710276081528486759329091228385682992196098391780956762030478117337296462061294308827766196132084054515317702265442223465012157262818748337831329904403602583100749967424556293166285713064045063812903234017213451255039002298059318251006260369927847756475447303823926247560297929459816931682700914045179930806460008718170473289977228441697329617703992483859376461579384044627508151025739126459313212976394495752576929582942460463303910239989575612247204675365724634360321058390030601718331589728787647010599816379946106870808316221848550003978365676126719576228718860792031850738215058496373381128312273256145126129971374717865309823011012679515578918487702928257667373176117175830285305004871677952409285211587894768479984597048019853025017762601950253213374142177620148672549987887236096386785520829350958335714852785099626786404864011615089923262057970663937231458474694020751603694576682200497760670632537054639947132644637805685453439993090761596771315767604485619186537530735517906224482741072347759820744632034567530561700421724045092025941707598773775862669170380021953610585032519506085690281697186846355961838916694916338445610262160840290043722221099066189494453984219155602712074057700125833083348858606277639359466848610785171946270420743949516913685775599132147875012272420833538330766767351221182929768337689468821628254460404144225107953427414083876342861756655468217124561261209617768692866306901350124289188707724276645191895557647693114703844518667536671805024787353000943921404880221597499667193400339772657038476797851600184823021444019229797956870729959126729678288803327564672543755085409480833180840498948594568380818283996986979553888889434617336383554871648695555768123266870701836811509313239561640092741825519107440381843044437861991305480838441911244539883106145942823968965097718468429732714596166225569729971924264455365653181881930518967123433816230383549741724911327400187067743937866634954860765879311076088853378059460178858994718952778775470229516831233802244031810304597579559913924958283245444648622442929898827301569413207310731437106040291279013027862897716453472738345290806182507209681889423370735169322682371244890296818595571574064324151602938958761152795018365141682635969705781824568570088739945775327664478396671314460488536485083453326963413909782802393831842135730370707664048997461129005420886829380250247934059133066253146625019554533210172601928688330905498940447454502416713342942720211362435549440405927175146362713758520198178352976250670779144604129901864923428936576697230565992133981627272229103153912877560688602314073897144807459632802647236911869890685795452556653967054841666395184304369621315396596112752223407358945140463693140145669929054139772875236332596922928987460179163987501573621134769968812712831693130619440242795991715391600320010829210906140639856179433591257538898843188922962131078087585741826986521992014735068855078400577402643705020792844337391660477619971372099690561529116218119911523961145963286636071627369585868410672050462247063669771016175584818280427874595923739958310262386265494136806257507540801211654619408793702983522853106826522207044869893520176878866256532571715696439822044722368219118567952125102028508713459774018486589392355816956902742402166812962513888599610596585277018475241069886768972403105497043382752270180259470523810329136609939239233452198818987248078837205211143245802477126587268511634149266778037138064755076002518974326272764869068915518445786565480141062548132491170217615816991753310940186428442196942240077448827493254237258267045881847248073404014558610164293533142772478424355924693461794342197528160535122005214352661204945245531884065667694978837144403946645598665331682645681710791469487626221523078456664343927332992050315925830918269299858233201045321310242728967368200123724614595580806788263823629200037550532786092270941167087622831952239449867716137687133721597606302832932924688831657776036505808659589418662664726623787297891801508091909610858201384447444777530978519394806429314928678778244926433469679392752396521448695027282401788182379921292294723995565191648695039982405102888806527872772397826339195125270798753089972112955506955873134741194204138516080339092819154881896959369875015517589877343196000754585558749916824593677580723303591000531588443638351670223791263289003136484503694927717487730074090515998019587176212896339321304617064381006608819972463485236113974262455725333794605771621744824189281779214492738028721047044534396150021967196656724981411837030764564681655242987918791138804912977535273763040849944097530091288046574177204403396948646424265865069018956366942550369844898538877311049370307863310817827018908722609620392393361632296471565650997268440012216181296635702479972736427789773190927300032922453810915920477202063611483835162700776267331403615635870257561548513988888408780856745938407251372776850735937661533829880126657009910741538950297500626214626334330937438225533726298630984572159817407262428057297333533738279510068775984695917006579232950395606459406796732856230045374876057728079117666170657797421016122433561418510435446291371213766551140745902071383349334620452706320011905938654982260240496237196710042686630970870637126821612457102694475339687199514506819542767272677278400462904113189900961031404709992112973108249833667224873768629344012234747184063452197173251758188266120993781190113605741762070833480652925525144986280307411526201236880427118610788759972020257179901474269470185704656134500556822100578584877533984615585944692854334994355291509190324777488601620713869154857291797335871915450482603827806174597099696208660185619621180533485624648922754169223562451554386148750483141239328654233205999589172563162119402946116145729390379401896195431546510786029068475287568469930965219010623089503680599692114702719246056173791979677141581327062204971065058594470445991771237208056055137630327572268127965317020787085513660599746544396416795564311085784215289368248582784390012441014641241436583702739490530194819485928131555202196243641547958746669141310333462397192386609513165648066597591444331644634794515586556169777672956919042140181427220714726263588046836263812361337011373879334454146539576759452262692166782434904567151664972623587415531749786640975111820955489459342160212528145634166468845655490827397464238103663276961173715833245982881038764319093116197513473427212939422614731131080813216038804653690692351760850262777665648443736628548109159544768376832354639631494957675282936188213732166847052086838302396587543965853220251595479401725666629543951521744250289143123609497539295640049038235151314911764666087418397415348745163366092155458971479639808388386088665542532739365960992972936996207532391880562464690367928698734919200044774103006762726887389141183576914899785247589024401607519409693461675548780359518723724578139647865070670121792446552518053101240334365804416692793084484541632623124635861593503775957614171360312645457480412120081686751102778488212254665652510724739923656148541318770338037151402340547408256413286775910822009334872193672062886239698531007176640068146979018764281402476161712286127408834653571235994366059237519932163571777606974422368729117596298311638284737445557905425712489218336579925673178338384333846323280213285145933241918545970033911930849356977238172918396898798641919595712527197382490062664717994788508707060614016553263012347619184922344947372692525093235231097606868559488105065337869822322145749852145108575040368253814872554118205399379210255824379801818991990843841068096176087843202310838510726487517875203899922457204136542572918368565077001300104709039130198580074083599839742274184280094550814339075519508977917417020637953323649694952018257187092883638435391899714355146820906287594172183731360396272064013771043147200185181282677556021661441244563286629422909697378800244596055847771657500475820967867206133336007235376828860240028621527112789522435192119339605319507520944477323737293701798592669675525313186014197558370477158033017926920575929961812944028475398340637160914885607236950212950514682492262079922306326963893011570513603676827613201656781239936018585057424534148266365542826360968437041173104498803368640355625208273606370266179532498053334060940587933877524667028906885995600967851176211048783071703344827063608254958504527461942804501236134563254490305332189636725584677774477536629327292511047564059603562690977152748111238961243068939418447848191275275315958776593882772001319929724920787364470636263678851579007493190408180978433275136864198864171637791368850127984575320736992299890598269374877894953092251998290708111820515619444896835570462465347022774763446494514025740678272053752702705093722437758391284832685780714988493224346070177538346092807672601341264317534081489412815459043820484781699553722397909771106251005908033563313446741274247341743316294077204423480341535841394293990598624990047873039862588302275966885507765954599765289181159548340346321369153736631687664300933442145904292685456018177381271741933108553507495493479102105327461030527536769152716664783927129281330177171831218637602365053611630896673175960936352776442236125373155375660527791284548621415616765226959568437844637436712660980524148699760662163717300377294470659528014932688581397428596084981188142614047964671514155745386638724859905743398351426319056531450260600011874051260198814269615025145946123687376006113373126720718493350913101995898034811148059243174261055655084775952231231569575511656732652878170661011684561449925494203379235152329010542419657657404016928925828934187708897357784776107676784233080706997475369715492589100917833043861157789658800325584861012377547889271344582551714888831101682744825421238481884970297145811102290517136064500364611679379336106444963400226239328064998307851430526923181828415316314008485613652460728852268182007202299256051854087807957056674793598836289548946159454781411246902890119029354883112980647177643438169163862465427369969088674896862572286530763038234736838553637987410751066863312209812625091353298871054268207678113045029362964584706350229429282384624336221466408908096930530333477359928831682980457328526415257363997732383213160322919018370649121310054662045602876200400399789390468649729037378042965895381550015015302046204421181047769775169282652428420410560895498322382315307779588770063925497285394896052524794585375498095482396780570381490472543639867197324606806865093666252402426851033027740197605552518160750735055308342648228480803916446622237261890067545493555689094883365484797137112882618017286432524233038548334799918634421758176823960414914818669308981487741315614939599344417651488875537861551254335661467050454460598879633406218944200887275793142671462097706075234648045785105631572019829282962999228737055759065543998172010403291786765744855257888771862967747106264398850830462369420334498679856584279036423864061744385778449171456737598628906823601833441150819054680209766834495433644535205286372299682958571767053407081873325463750626030904651152943028742994512911884747682100996717759231759718819094061131972326964065409230402020953362774796247267611344395941783773598616406394454061134943671579342134428195831788031262062761495085445510591109300297129416604862744157541823246957593563077492273718772711495402027884113079173638638632728381417292404853765586371221743478563046823571910469855672591244369198098294176881144848403850173063965012194480853170824047333149106193586464476730067354781637079663034571322507523511333614448538455914820232326645681196912586861449326677145338826350517789408179708138444926092782804219409307579803824653702241682626903697003105675185234739690517931743393441200967327951128118709133000207012196987004527363848549272967426139593055745446116526635862216798852013203383325856425467998299479813606768027163844579046909793276154870350257632340776093844405361780575409075533599496740589212840604201709167231836386085841290942925276874508561864789437221500319610162103015423683294290388611751561662291737880062767065257319063879172099305692584442322446880019759888927947994692507953495793393784233272342990055477917693735425047392072090643515920341088793477569666223403898617321112864924289151526913806922231303253217771013095445723447700065700206806386767755830429787311873605478749213019463844670581477005538861375190399310581307404775704859690139340923271929935872881179397810432724406362602116665807880777140176658951764248269878226240724793367652415788792759966819851015351947881589329133768801698184621803609597939255763885810889147173412297086229220356106224924652951358409223820347342772084720632964932689773833621917053411537477785968185544106487543971496150132496126520710946473923413341155503939156970087382409969312926338765904559594465723935234253655795279839992137502904389097225704995359979247627530458597668146093652969316429078541648267607369812593915647381117963097165981365500840146901644369285302234755091861140884288099456197509350715204220339724907173351106211414106439656741783381430983556660535670047298884694223176860177646940110778478091883905125681954788491768647639737627249962912935382235829690762977976324013913298192678481591769279762738437135153906591714836698874786657474951040705254831086957385243684751439964421607442917476145468907672253687107339300616521026414321273203302112009043927906162550325784935608175874868100969451529835328137015527823943384095676524160645414726931503167796283551287411570942136577506358728001346242710486130208160794772984635572635154018133264691993205627935950120570717273619880367814732763399966166244449526339405148577682591173907058058965755221893436596449115527785795240338511285757425184014791522089537661251247220911850317653932445442813488871119736467582590698217939759715851780363579954321741167050576383004000197942107247063920203471319267848652447781799939338474373228891593033057647488804262468815037647769142657117109107686322084368603251278949686162036622313120940142356236575821981833776470085780955332340076746067300730759809694904215394547447766211295544962792333928984489259030978080753168009674399553118966362078826392443580629578617069113024608285320368894787815481351158411653074870713090034103619173361779830375898170854521418986684316753988856804292922797298274779102507198386533215273948502087936200432269359969558858936757537919267771933491499707753760834978469128240127770052339729718601022245129655534144588377763980860590105030477003782307945137149384674297214321550896168435954695789230574045511794081125404843715903609403210483057604070209231275121991617914048357445762029103921054434227583344106477065252675995447946956334259745602367339327852547965464730995319620554877095876044100393152837627961322770707855828945258858521376132608112185235944431672423807796093470536811644521493972557052169257007857364153272690913848652042510066048450353178614634120906497641846580398172306343308875102120460283330361169631005387324742007368508203180231243993607964228015757782252287790125547464226092689884115589349960146080815361574944782076520099928766207046595432674109406006222369409571193413896650743393477391749789138213571157459992209694501919650991779419092844415245242591663851008130350603717530653528071436378630879447834357786225960459187478637815104641893423704503489480206693727593377769445841280027655543064449592894091222342817453314546033081261713262026835524500817741077427102420994295041198000667311052250212667274154865804807284271575007461713265830160124923355594797949131392652413683994783686952919148238326325042391936547757667120715434583769079766488488183886504817347133068879604110153491966797324536735648699696372863815962946316547492040444750725953706718890705674904739247910673253335563116036254238252882748721571114025508345357362808464148283376978143042695148688946530798871096345880252560792149008981960550725385264453137654273111070433558353364419153628792177635408249858711369844801806094799915745688468854778075650534071422957263448911508673442094510800232097910586928190739664220777954177612400928369834413331205839311799638470878204788386050471400657548002276968193375145261956441753757498754357694527213827575515875837815587521381841987889609129758177343242723118501645980735710172465652634816900322096687200248020618876347357662526016393732592075291701915467384344836329034472949123535800714816252675793312963090010446389048970426866291450541876331334041797723744899511611543132199272493507139070873404041431966109455839611996576601615590819905031593310348194431130761806062677647108869016730188871383265908123548483450428829143638133919624493522538541127911391378727507119398320934069449329745565432766551773820260431299234399968322663864975918453381050712267815460215141859727409907319736945503024857931153321093952124444621184329332210169771502743232082414563417719576301090752347042617904681359545171970439582963266024185203933324615132326939843668964714228970208623109925500090933840587284164610291769453035607815080708661282999687416849426917177603871472477185763483848518035103694291490924502559340537895371211356880401594383660812485051484887697133229983531932182958907568667203957332527204051646991951944145048046726766903760743606713142359762804122090281175560595157535652854005928101420373692976149110712610763135944359055821470352485352766924592236390589070821538541873358073243234016357248417564598081892846448063807497780752370266097828782919257925716378199296626883427298410340345369065247153214073769928318136270005982869425071958616600796796117996015216833501079302237505405762364783632571379518773812163153804505311689240919795305887649002532843016805356829831022608670454176037840953648128692640570760006910885252665683176965371523308168366178864210672531619106437459421122223062252836873377393552158956129223185595269452853942604502159226981312576800993340736080612400115148384007801409471336537205559966982793179031204005309257495529420809498069252530050216838577384760192895686597278111059597840849201803028582407415016897433479220563874912472565217994200108396091371272778847668196831880328966927311187042522444008615487959912266170165441359245989208051031772587963896520516188127340156728809820360572052378015680388374995443563198420257633656004689786734131245529291479534843123584344793208342925340553403277371049424855711864804643738001044215225515221321220324517448530294136042029076991844939013226746896397616888430973360250316171729349586564443537970681504028074356177731346836203831927439645934537826161175030210236580860607059142024990554165794183068554328401563647873618782013777513126285769699843078854028495913388414440226719330975470133835636551003865413472454042958756837728448436816572850612031359978628194911831622791653427968995491513261036589591670807809040078942820547436476893019437056105604605184855765571929230284731996012773630525299109499128770125738977834505420908351831834841524092878730102756620330879447989948070608298038728542234292788619113320757357578911291916015528529287502649598016021629736901463518781762575697039847051881716656859631927310120625762781104826599009910259043189609485593059457532257775902272986197995108679164179452838758106225924645727183901142298847646395989973490821953818180570579974722664886552125109984180125074131023261542945163628446846618904603096355274766430663883764179038963012479966735068058496762405425689189077187924559968819927696777411840881786058029353772297891211452238780833173742533159603215106380800683770298868663967755742553903168219201340555412069962161769243853629775827185854962265122726667254193274979580702761761837816397268017692178019867156601120646128535256764968259420167493865145820967646485609718964572230971795983942973013954954396778086880507167041426666454950408490265407243085633187383795082113406870548514924573553473675984791164514632337474335113910121495408697951680768286693737394572597869753115726341641208237563282653249064310481940976608902952952336184475687307239832353048597794920618214498243325306704579228392715621525218288017008590648956480343523204490087302587982618008086412825762344052324894873141626498895067814091980344380067940021518294768532025959588835698958720707511194554319645813423013767796863784355592949263487576010950215207612129463539188227246036360805886721854356458973602386466789276579311661156597643125883599939391415462445294823511714024357947726562613622621029309076836775330631530370152475802223901666298475530889980928904956068092249961493402039531396199703901320314485993367864647848625815750373331913411691824019679829868753106396003913349091872449503367274005806631097907139452376090460430684096470918555973468269727839546652718241364388755719191049989775518203902487683225985660451930129105182620795958392057783695875345194218157027271777112862917687306067557157950165788343558684103812858423298562339189353142624339312520770754605825893927887920178885749940064461629135915515984148621128322481688622286319384984678283459250038150941472186366915003082387165683768839714152711036335223987453221693062231782563099367122634561960724457475789334969741583225507073040360052240613919993327451956922804553326688471280783762542588715881583957309634412220913003775378939180665248446541732514012620662115899543635618242101434362259040013041393174779668188320403330519754083750197513901362198578566813302487943202937624956487716881159004064458810562359820025047603554001741372174448004538363413985042089399655166965655243552742538053793328580401499351047300960429622447111300460536916704774214677738988220944331657496612387412791950192010524987307912342836202577288256847347371149133965990036463858375344746363715640130286578313339975611661267664361425564421591702292162554740588647948231308323256057618742607395468252182700105829168094228143303072936307852970131994101669627234847675901098407201490132176943190441291721837667576639719390410595289722848416793348751608028321208539117614915767326256961804141898074316149948876045690490473157712991589892334827818072022218986299805641769727981323269694003263946400999809064107337999626171457264139997847518803349181802693311193091335565463996474179777473352790858293788630850862984927442992930067262043946755091261216543128412048174947541499593227446191578092847504977530160375603387950992950681559686261046645295949453591615959028144043971591928780475361360592459414775746326203981533089753793490533605093038352112663772527926431690746288252385236154084837943305068217961845065713535456821301013660682081209731304593098101506698296029489950698797655446237285269333283857259335506604504202601475932383602331289758192747709537080083952226484506162086362718299970225396521232290240077416203115445067438213298623760195743070304342599936148912838841563760279645971323257334612719364960548859955260553844514176144524890011986818450604746030614047918248948899305041722017629235635458587973812604727968875484910716625622446182612874249470838248968078703685451990343520370252607215201539459495917836223263947907786674549363760821539810381439714963101509154125695827372031884245965575424021272740929742282761377576680971196427223558876025072381718841624666014002951179992070661938138378343146546124860098770620568225656655928024703049738912455156760074402346105474082171172021332646325282604303269277725856196585905756994109410284149044938924945128645254613158600475400725894544174357636897048130360075669808318771425181199635143658851985375466295147435811311742398311570310455302177338807647669534676020109398169087904960351694823940531653745411359204413464100772391383376658588263145635702894798851412391393498421467381356377660348306088670757178958824969071266302145741879407402717691138753709931829266468464748810147634023801522990516028935590083574166800049197761096665867959140477063651184244385825960140783510855711584024646207519748110013358987582339505316350339514554028088112153920094281754344782876123372982562794150579421297365178612695723334588415565177207343086689262025800444649363985141762331965884416236411133029085954864212689873163839362381194285663335694803065369807090328115581902376902891809983155668290902691457735893547877557210393624375716685000680945678654723837962569193066336356839916065132503329441193681593826530249069404552346810475541289544298162922002405568870805253889162585072561017090302534804425428197104191439543025548741795747642192966222118397430381186197174689768296576715512486432932127143197240189440923689661459326579832034707438068112177882241969455977395076741757363115993233358668601244824102332657421519882756900674663330368917704229514253009439528901234074160018572801311422566382363023435968787752585223870337715560194955152229928273508092387554441156583417579779370204755992482394747172912585681752097104741204219661529965709516168168337943383145472466095980433358852574664076983982383516967197717050505746130711998651663390154341802194070802144953554916427465098989426568812438679244763306633283982279098463550542446891371317655575476923393658088202931096285102613977877298175604308208535837922838342977519932268357290458116192370327752998428050288485195076405747004312093729713473026333282414587414731340375796329391224530689071248979550575801824760006665597415855744698416111042204264205515432726798917295244026770407558557163351162322030832142478466409069170085848547307952796672298318443913249996421737853466081018729042673498564512414009143201424226447088974908947569797796973738458131072809724532227211936935740755849351626790781949955341174762307367740959448365161568051493910240826998335061102780690347595843635295833276956444642523125978512651897624942236752234602200036761544451570990117540971196765124124729671067063446911628687232244880966202688367821734898108117228677509704374937391279492239159361789981419315384431814930400968084506507403230235183040180247678452534570025193217373072106084782199993255556697778015604738688076088385169726501202817376795523379627077147471768715371945365357045981721255382286851663850505636874953812238335265931667532055810024620914155028392409846338379224966052641150444474874225911587757877279216704599182399662116191295388401419195168147730346292868253231001714303659011934289100311896366079154182100368714067215407134044243285063370303606984928167945149999124328668958877078450713825320346448042001358710316351554242541410594769041227184370447276552873177914517189106361519277699857258974715353754880629006876896662078667243459657779883214996291632077739356042898391804079352567375558871785862845667362150332669494446884881189548581685429954076681716792631952393356565806940452028943824795085741164061260204945111866128360413356946808697282631744177049811408052526786546132535232323861539006277493314283917740652707129678318989606500301187970850677099390642057149906295889376082698651697124864158187034926284800739878221908135875577992511036930090446061962996504710410938042490214216577511126547300474417194607431448607521624359792073822998319125837096363150044997992327869012070514319672134336441702290087116522196840913087416013033023476103167485397946255056811721284992587899353413255537413842198402110663104541176157594792672621410928120707075915965803981974467789911627458390807634430705199608818653281290781914189977299222685387096674130166451637318825416070234549875323891770267423223547092215835894105407765343571402855198333154253148937988724773964293126604946844993784306489713169153400303526793669907181009011522936235075252944986721233633691284387302313272815215308572364380291941098348751255833139150947923777864409562067501553008486550827250000569539280643209650089226738961472804063558546668819276283568428608634277759336098007482661586799673790762185409322217255128120410191360046389404038852498514097360175119396511337229826701462488778891886146869185845830927948643814529404804714771914002587708792527621554523491377477451046592842181306744581045716244984662813834117004698158578277306222899967863343111841454319198930170115662141404419712944769149976642670310178569301428473538080580156744742134497499047274436342019311629466345111947893645986285941919017132527304847825311040107794367195408691812801539914906685590899945718598747183721462356901819345696952824331975085949532317353364743022278274914086136453809801837590695836862691966297444696952225727200138587130038434706379142821435154365050505386650799325785549371439323262633227810689537913317062255573769651352290204611319040372271830962357935249461064976671119058461273883395762593325398826936411902190610949857233712555986256618130636088594013161162228019817761530408558527782318976538007832574423356078522936016370054201364724313164758769110499488210672028602014193471663575799997171507471131122990680745999517494266956865495185312813492595006953716192978633613921880394508814878075077327012201384104439238493952228440267844394431770939387415552986487340884937607297504710525878486443992488550317455347652484554670579913525991606330204449766638686717097710392247274665039897018419836323095402146541690407796445526592868162907640485506570645025180367989797864856442842824479074812028034670850826726251312590582709133518331027845566777207097626393107259352368276349203356381329778340227799715931966091588736789657981895819525798435446697629566159584334489537984036388124644010634272711326929707807356077282347582765222784987108506823583616546384800068681066799613908747400297774224285426362697080415855497682779470743605908371801184870612897206074621882231418079194413065578051552492638559935985988821146949640958589854536405230189873932677868634712053145749696311176874336841073732413880624717130638661294486187177033579451753080618096125822193412081186912400962035552268998577070845995469119728528673902028671874414304175005003121239295482099664055173097799812473986174416447272407352721737148481176886297322081245681852096754443349481758297772398563674364857140472489381261970347703830812873422539076071767565281580023934221530288692156758556541265169681082760254306488270122694837756592998528603922813718898045990714089455502166702988561736546382145580528377967607041017663279473441962893076558846231860068031257536830663185855736994558271165038113291339766802917490392808249741701477645720103438255848707393279446990249826130712179543612971185203984561431428338076797991272216380546804669636110900586481564741584614387184548876544934828770304353692443468982773380385694694248141412683063348830431279929157358712958674879357642321830917912480540452262164767803090748299085001985918066762000423162663060111840051586412203341560309041347850912839509696046069140849182174164343807300716948370220079820262530979064929529171154446613921505311307202370722777085266226944216687795135306321151220727216732534954876692007202980824352936414977452181506015949468289248286424966614977752048535655831891962320862101836149246245738057750814147583790431782975028068276494835609843237211574255540549614431454649229561644266713527679222904223183751614621153107765604250712635021101501003227926091021878018747742837817310985299379486389009394881420639594707853529163703779744744770903946806854222056379886149866970024884273920440434852731044941746871601705618735192641525605420372317473868951091289493409474276313129555949905245645198017426489721693195452820485837407333975912521481489408341398079919465046422342087824771928674876386389564564456410414480267076423074229042313362393085120535765183910053228741473994546841965087157760479869162353774464723137288239037068114639806274862511863359055211528819305504788853969455870763067325563532949074591551527380088784819000908974736011858391873895947884443074904191639445567067604941769431955960215669837997311611155948905489334103200318700438326223084469635834957591199595913549946178246765977852547768379839372358047656874503023048057896043965358816683820913011075060992022694610092308035966878924435335878319215599464213325620179134938250822584001690703977043147049347736856410837505309415055998681907304009376913282937191772377746102510139498553145566434998295227055912012218595985285252591628764173586396981860266598700024363939921981447512830247226795698559266122767820836320875147763552194340334725738069129185204311773930933321598394764579990823900865591551916678825419598513002897419433088684304192316671125062832977453405772581164634359518146547241017344342057099750534527640939392642569299088411237951409543978551059153995651233039972858078414388210920260185223161571876773877395689279732072513408845825048480523070433639672996016154367900838475656827844973953917447580095267787592234641242511710088358869713745111941276736704667654721621755397893696150448053196108640292706171922273124102157995195320066613495618831898161978076472237940530390224426729168079365259352466579348218140334791863376013758715367846689937691078577355654809301552622614373736099507132830805556940544619132633027480035025914640740865275916567324293002779254089876026789972838264571808822311217942238742037665861863398679810961549162829626279957932641764970283586882834806803810520074668125228145216895590061484917791221498950043679731824384400323270971096712718122567806990481807498156339126612849505311032543297072130325720212758820064576544736151307383351779373973280151053727842807229974445353005668440961931761525621953426863777536078288733154138011143567258324663437516111194486778375864201510779837795499975478504905935923106997579649619000361729025020967995021595423852823222095766952519665037830514400790408463899052444471325308144606361661222093351640742631088600587506918645769421281469523853248688015222722286801563630403533705141228074941720051134023862530339810578990900057963963490920351193818515143286795644535395684271112527040673416558106881717925750789961587174477797116616910140369735003575753937625625071573953579206342967729374579980442779191550317561438079446487340122863145150914461222541728989272481741711250847299222118772694092342417202308520204782772294582288009019633423757273930764004315968663968205599376887090570121948314185012047339031823423974268207668794427071774584849604402289039357021464890288944804363216675230096178290212786980004337768665186583712391036283015009404449913303567223401754451822280167179692507924507465746335470964647348845446138964077700004714875150865593363053830093480649165656340187448889357413073532832800735815081631521845797816702630760566101984149841414418469805348903270010441366560179875852245488872315919813848988156830916811197472842426059500862553516974137610981127282376787206200474515895851309048471606947427314945722923055518607544679877389814022650390336319270708876669227460046190260157859963204699553711905577059021181393181438422560576857332855198486449618372711268570604072934729942759464898294519488704493522593939863073662086078337660872007513646259584243205349518013725827976372029542024258223638097808773330306536985528934321359310862448570821458470820366549711746652678926566231274209040276433830726207785561579772980123015791712363670080509835718355679057499468502371371514651883358379158577339053027733433140709070704340563323119852109738328929345171011836264119512872505218756165350116361709334444322524894716742346674253281342233600884199263155604029297154844027362615918386580538358998961810999470756748316639010830211825378272876466381157660299821755342444753498074519875255207086037106269205050646285672855410773873091827381042520266690888806251407493703870839447803318094733156108492183195248396965381229097328410868748616739524717972415535719009517852285738523641427542623862831806688139280630455624646004906848904188925534882951494470201107764909539636138574513077202866313706948356733246519000564547427990441716479253677102951239682172916914731548738649820156899706439028916266072991184034068049348181225409912904600320113360958871278987694400639270259447350028205061555306115696318561281249819202584705661544860477517144980095120944302924759885141115479912664175074584271681026884195227855321141705454752899483058161528444706759509930803791030439073560116421149402420873925610502329853533607503359142325221733824406593700552386573267509036634817030973258593885804191781149915145823459023469534218393934597497672541459685279341705908252167581930289053768123608736059915842652202424466703915575037701048882744323607498071942688577236292013815969232493504329354565187833673130376522631360222992589557061704597187765560327246493497618398896299730297398797262468973013120972940668609714408583973142631671540425468103564548998395169545327914726259517749271651073002754383528911611891721052442214385597652726198071411334025142874748253814170488342731591235108968995847346293333844742543818583627143683697754094360432147602514914527740731195529782480978292877188352439007349548276288998339760127392823895199698198395413977341548174546751705666070595354999146536448017948809919176744472374786891258630649855306347038311272256738889573237045909883590480563922635144729559707067791592575758846508507982136320003749895552066990067724178705905305633457883222700288547314500630109048128449388885056697066070896132329304871837358785153068631335116964407717161168857941414052568460037193478947110462062653659989696876805145523915332410382017678222638204009485986068319434272137621497420046815407567674894065755996143509904258902422142020769146775578663950168123085796852788174696637339717350373038898787572781000113543029445260646836909023926066780908549009337290507505665615942134117871027266619484330217273487161752487263290314311361889688206055251894587452224365940277114219621034015336635310416831702723049974206253055306989185895590472738376635880218035425705789148644918934848567633691876573517367500965397265417432834881452345374886069510462610275112299410338766938588101681292874474123879167051548046679751182978882621640026059099340838329270852609723377286844034208534295244794113646901161598884948340697712158506303181738496906511555926912888338228472502838848274486779283823236802631825054354339970203293423335215596403751089518290917129813577614879211512315067257294645430024370615620170534830426582963570720277623276947821960215107354169550632130458742613669916909881083034096110474669125486850602827094709425970899047099374680054509955592975258256560576657569255120274836686905484367341309235853640435103823794367889664675160738258781237372159252581198213291081112920179806456609621875803367841748117924865602960918016555115484700938335254161200913464582896061023204198479892141835191791631674392302206402821820063646209000608421930282522066511321718851998992798569872797159577742998597285857013348598262786535973602302538188589368617395750625730069962705553597229203699118522724991515155806040235923894681261031680669957300178842176092549755914633602952123593772161669600952495980078509811790606419566993950380472178552222074137041986415374184467144943567614060554009286263801193323370100981844582855532861585022863718662651923612912504239544017094822819609934722574719176973854957481216142066519528955318474209079863368232530429806629530421642468248283832339605728137328009910832478339089795747367141686323967790336656167496530418951343072673946887265106197438400969261061075782644082556142091768764941252860968274373444272889976350308691659170899895747582592950935258894857619856173418491356970079870462970202693932159995558085096164428556355661186436560115955456312844017596406199067285426284545808182939612223222096282988662138542154891491846264311029072212957092928466836632795226292861478428245877938977007367728379242028335435402123660788511952716138910653737001886500933269819351076209048359705446198533038352171905778959693143032475717057535465698390679739662935473805709393024411339069586924138134644039305035692096901448579237556190175023687761181849563601856001552015581488842681998036637558945075509579104307675586361491585324294861480758087017375198683180942765725000677899392872588403522782416855523807243332448057683140637784369393846044990321374818722363502220070862476122020852000535451703216944384243542453820993476468373196937124299898349151839275290046898324388251350953585571665501603760706196693289129845820400367747628981614244508164807053642550203033773649996819511141850800439887493603525393792763715410692929174740032345806981457147183566544542804221106212517206638915520094311612193259043414755180524541534145598609122902938605890630264082216249997834882156992982474873339706454847244352906113738747463991419663265256342096581901735058788386057057807848636597492559242543284275301804679729072227654910224530901360466477209810848727088504519969621206177497419510048592758526717290837898672734326350415780603493317431223785704360005184201905206807282600705894329265728176654917655173043027779208701645229640671157089177456563013780147980309264002080709153846942565570235258426253282310486979871028893960995200344255918319048276025158816081622232569296092379611664101635831496358758638437288057058990503811154545153953904985674421104566839731611715223843929225310987047914692829733153762670878067387992164087797118576127542144899933280039416911014377565221290479157640327829222700771858910584449795662336482258142649991118255911826402156896757722259888393913337371838122943294158421780886615868690303239251747572291776169291566934837690830258688730024458600994073649079587401966528355116064203257595808535684741467111920448968766738039028586631846782079091195244660661509211090735181757136644187231353146387465713077120847796703505358664434467274458231751077992174836718589036156188227015960959253633358533656952607575325111056324764633139596520837767117336593348387582132674499931229741257106550244979125845507980277822089454346951952589809111451899224813706116572685539845025115450052190885917988904630792400668105961167392397434469310737828855125920761106923559470085698334190041846389702981423040802733820994128449446193940656749711453176048096153344954793221281724869316999183549186742299719307477296534647130239676019488276601680845525214060029521096279881684568335700897456085577273347538724783395356298753676051974974218946866517466722503495253989192977504602084281636651748619575227405290271676470110695419311106449004764164396394747269914582119107333849074566419664623410774212849717195045008571938407990698973743335452928856696382220478614628990564885318488720998144478798626991363459652009143920163708194850147553413690025997033719968533357426023327277510106250718221111980635809252445614799793253170636754782630845494556279579949769223726224085835342926195969644077515286765376093969434136527150096049632531941786234120243573724765523043710410687877575574299858692309695066091790815526914483322287572268930841279182148575864085968838116221473908319653299255040495370527757756741195984168443177921840277217550102929906471174751776963954652959318531669158106333139264079760078112953255989060046695241206402633406124281586861073203931415078691111528390055275379859890784155920739816414164056261761917303447052281037774627879517750984757897444916064338047278369267063540341460364772125123379260466803488726033428300465872996216222292644157426277861564015075011313514249051249500598617359041959675660074152309399216717375392776619058500838626878304339969852859249144360057252748643212469804233088695779839756347825727227884287308573735047055195306564331409190987470576403746791406325308002017885514665818572597523361131113871881982081900079179450425636430232789107247278996711795682675995117511963849921231587864557967183024211120343021996733705299969565782123423615845018890844428331498601664806167459081120202711319890206702244999286731735744533979312147921475377474352664439208546001608608938122469714199395655128416155038515075323400950982364405326961419185101901544067694213260263565570027863258023369696179967638453289018696202938248877261055993220971431928606642910477336559357790982667107133639460486036974932595857315457247843603570057758462719512039523430061326287688828382046516131226711865843552312152485714489919503206110976797719460663670558141251787951893753659651668939948405955803423763258641003235550251836084048311892864757286715290915245022250925595723983289784501438772796853099957596961092496002258673457276744775175080463512727616632099928833901222712716455192817796740231897202529244274793924402157415738963027921430892210976388703076172208625729414136255266550747099259422040184213882542082029664802676469458972611570157478266101706409341258164113090568268847252152456483174047590999459537744156830372201629121499802307640547189164702742565284571135391563717450779881951560505015698069592706302585380177597917376377740200591705772759346613919256223340005891668017010986266923649532291247241215729044790551623799690253013219563983834803740412000868040745635106864905656364551584446346095203654267929757056770397302419818497868660560530191834152113918959304478727050287316563539503500150599103818210401471588928501411356175118895402469714824158897344493043386009665286651236391281515426050879888259828568999786458304651131290565739589611226463582559558664658347291484496832039222785015380581138815374862224611143072659247769288349734467994146541590060896246160520626989397469834572562924785188422769885769897145804030440869245553500888465715536767567681136213436046767131983548932887965867038380972352886148680709048655362711103224700171733239704534237645146592043175239895995223767295851465457886559375568978562032683296805640666475496487341147969088311105792743063795599842012644022205481006952683041665039514758346476128408624302720642228855279343543783827569854178457235998166401611798434861730832294030434701170532502127496259441761139532528131586351024969777303285662955518935142146601952647770801550496101612619101715735301519169157356191922942160364156281051722351531831544906139764234197236850568433951587545806078156246099798486053401974329666014193951070093713065196452724818667640737156980918278154827330264973060805821223696275268160838238030660447818162965526570803137127994272052175404300655655367251245208788686767220307887003863296922356845720633167636926645746745699492051472983949046605880196849233862764688223147690635595209634104970371410608945377123317154087004763091764539940367056386538147184553728376634795785083363820540001975011989472022025907685023619141633845722928265342985284993024576198346439110081627632590865368502204967255625238700473471248495831972116293065368564250161108916966642452675639554042617862103334840170741344119043318632118900488624449740671384128691472173830892053711953712397154483965708057345700232834569958171459772473332077083231286692846671426768223947483603527092591003008391229654955523614881307744729186118246044222659864443205747784879005371541788920230779803358903111908900490292372382597238364956651208898989873390909317888579925633287852401995189268205588797671241175982288258308547453258856840702544585056776214489188075099755335444878698219320557699226577925135009202103824721172611191333789975070985823063252444804794652745151857422469873636443032622963128483213140997912293584234325863822761416321612846885914996451234917522327399336438749996487521154551174507217246092973301563419642052223132070805279597766399010162522172599688543156298276364259058191994823173749363369964892268198425527511425001167288301232820592409633180723502914789526071627949093197125217175955712258619773044210348543664308979881509381657791731676852546734751490889523211815060726186587520646097530993584034280090079562981149390051782967814973503617238981449313604940972553105146581552083423198782880006430392563986684007680795957400928769427994372783409786050723410446979821554493615343223935688625265617274643135149300397115758731516934457826137501756115189316795907941265745472756603883033413031932083773864218893162900418394594910153205612066166294702348940112319428658167569498156775858087367745674781037510138360196197081512536090375170472288547416344534598099800959665646565605050011453181529000729751880631153934786930771466241220273383179227505387760684064789396753915029148752818782139561676216253325407521708325828579775683959686967251360190093824028728694528101364774732067830638255117736734867979215984972595982711287562538121067217715315671857401168451846418874601137075983439600815846685395141187198751849027222831789194407320006778573344543824615407088740009692260555632982655646846742651650371479608010789871522190072123151052778629681402028522559443828099860171382907043505307270682137255061144128871047667103138344695006431671455479791538724693193980120966460115170539828390780900813870674169490066807290875949390323286729480862363487858197762262080467740715461957733098771547770226214512338927838164760572552656780312975452625832823818084011921281981342188881627248168831670036440196977066331271812528975712092516203172225864533522745386209680428419248654987445021332117828286810499894914676856776588665636071412870192341109138820131454965908474624350540986500844128337854559016808061653050312185801556633837235883497212480894057715405941069182413507545090473020819165798452242104925316664329242778957923878899321298407235233192751794758372405482067782971320377673134740765102393961428124717200297683283063601109896064323311382709488358237430139720577058481158121602817081559835403620676246955386114567612447777429303058695062823574973098740374469064136534051217807468744643775401104988547535142852636975788396002034258727725801722359209655208998178692067068506341263235547102812275512371938763780900656805613413447601630637040276003930603188183501321007859028019028850648732725710017888168176680671220216006290846819484042026697808705542904694964285246823252988935297732280703376976029234764315478605164600779273790254586571045005574122705812505280823144337534872268465140753874337525151475149171682154251998710575016928694523017963730945622488069456513258353707086632626010675608572259649408977086747523358959531505459546769796411330215496367100991891910420818475233060173357767542772308687881923390959320382031899807958942502714535572555262492441515809284383525559992139669931604638960836769277446915174735363352588168514790723148092191655317430048312116201074588472716890039376283389304884679422392762516163840277823778672546236214928054642302838864524826000058396500882926922394614951872229798352248877163045797311000734976050156586486483521340907380805338587186396333488172103436755952312004020026115054904900645517052127027018600149308331811322613706472377919108746427165039825588108414258228465436029519243034631048671288727095431882476978710887315194003895114709821581715394222709475063450363238806862265294539679322078161828116923358451231341458161910154023262882208594287496806646270499741101729752489420310854172876600122885868535796403024203178243315361271839468292870867905997857668260235365339541044952629513468367616828553111006380339798068364946398961856397494617482709090007558051551541239749060704605866443983252359328158440578724250913310314291217328460762588551199227256902573064788609469634945443315201833266519723190334305139882030309322780152256590209661900177637232899680482226169072271358889373603614824728609291703994642913930220561969634865639658259552223842829503612101973291349694795153950220757212510799318761170943424875609691724461502690733394332548445829706511592590209761974511898693600699907469900337927588844362282431662363772987008732970367591395604292168846380652990983858210191836592396562434023511569458425521701174647041889303886335792204990271410245929485988729532857804407588179307158692176316639981229600420398733118471646563178367024441201133926537236265970362803732261956840190496071263475936821273660958124394277606477778118163826030378270091446771404721046473941497646601086682018123931612707626843390866749022862345211748520189139648246061841596471173903496444866572572385691667857200070281783797802547499791810235966376721325008098184314903655151782343869179262856070826138513319115325278320764317288273468779468953377679405081545757675911603829548579498758401937771930263029193787600495431966426522434693484895054428469587058834023676257255782999584115713698202252685368074094635504365330369421451187142400853293764008504030277006594366457930283548367479080045445832141136164384196322588898892318659060640157665906528000237933561543881170434213791369546040243730555463344822418791666195130134643514192057601411389172064863823441633835900257845438336678436764375242594105690600880059070106758561632643307798796202806906516260054462538833449795829260575032597048527865290267385749362513719193891499300251570711242477572906484654956142234751760653845531169485542182076670628498181666578032790573435709521070308239455464536544921403940263638542921806011057951220490318224267685378604383551058375947282832514571616990177058468600513031796070120133775523718560111733114956525473833417075575966894230120511831817699032654525460947729844421097741519981654688261794803922078423541331777586116233906687262800221393912442353483940249547029644330626031928529259577013914968510582692112339719364765646216981974587669289399801620047144574469676253424883398649668598199134884161036178871098517301741762968961467786797401169229143629697623516740111451672379681696158789585608231172058438410714333927895678785697793208576250161093221089820487734300367613837043757040946538431201363021118912110782745085495592153612790187897660820008696369872869214950434656402489975688708888837252624608079586643191064426355752763888881685806949423123461181983157846466166706062466293116933756579304627785108906582672755531379911657344731854142825002605931409152605247070810510448774376595566162733011959938043665213661340168902444538734287468671356369301809037626301617864399283719649681965475010944814667344389252886340051594463447443567916116255323853814045009464897763000946892381239561260628767232959900022841991914920190005278367191919450600804647878146809185087548388189198558491448208193370435071290616507158461518224772959577217908904580675954628121141228974195079449270162088515669201824775565201616844724265750184764252148024058335694619826020841663766542790798473242000598736884469001331116180693189777638352177419399332879560274944192020092963458600792703184120131230572857614800144927782809176610123377961205904127063783421316074277869293722839616514754481693318558623580514558586940993559630362488792434991223596757572642238940089545367958007707059477961195306463490043686101227659973201026888836996033141057907391263628452909132072985922046772877747427140727700899832626695233791075792993976554227453069690458697649644281590078461791846636390347678710822304328395966384133539927881690799584882373861228241964653932564287061019740551810100437510071490359728923107233261767787099754716985086695559253256150454354864512904227835386313655222070471989406203074960330175116118056473047153147219080833472502057747746715115628273865716056481102948714793784562239011632365238713754715619450800757915997565994981248638876913063539781268827246885157110749092669067793297353396134620758345565166909448869646187439459475798866532787050631213567600897028835410980765471632239739047408326398135560791320673935513931494504410357083722778580882466485473575098773010503381972510513838875185272467061410434025295925240598898400815142210809397415581444815819043567162770115636044068030329400810334421862025971943174483638339100494938174036007938006186680428669402536087528194612990245946188141295313785720082467166001366931142712939507256926111175295272466330915558483982368085571000140556898963208939601616135212523613616231919234076728689605001810551809278906624336640012624458831570055521273636723254151061957376244569625733525146467365589388859991224438811074042286341389768203828588800643012322661259519624153498590428000150247601613468111027608132847236184902678892577204789394456370335180467072411480031333594173946421721993235766568876963459871831880451459415441741677466284428216722672670412733813687448517227830635748422695818638357989221556225686092734679887010325564092087196369667360154230454112804651050170342151800024431238447710065699767339292874141664134468824225903341010862335072260812816272180350626639784713840838775494533460173940917073786377831873526487524795666287622388369039622544746015776766419374720908514709677773735311739355576647299538975927420172811394256886045056642229951394154164786683177895633027899101946437644198078377186102361529577538917245506081356956168062337544097206992005412897598761461244352734801536434167128564903708458838645671202218870564978250598780074992334917080520544946940417028359223651561135489158394686189965309088533204391522793404359225360055399648047368180243408808719407360826661892462833973230573289810822387635399980355770599277251735375398511060239711488735234954545128648292428847352705137347993196971687565740864272817441441335979897690965700239347215024216925805551681093086878027861369424806185430692079484815476391612718331584823641437140621519651558012110645893954029571641542860098016812760556758760446972355581999457335126685407461922019124586668245215216812837693642023356513576272483626068091482424734578198482965049756226234591989979081593884718337105701984738487115168685090004081095289147874346578323602556136088036209871864527453307916674022754293594725115711737023142273452667747812543655098813807815819220405474131820576690616672564592139514600877839978184842564102278120969354613653953557226127013927897675624277710069717023004022880772164742627726207174855727674828515224520042672710769210465194941271700198586489268165287478413705156654097852423476037131276081728926040185255287038297939966045907845790894962397422494329495293274592062464545691371654849108430821162429556408060348244523765196171842593952348284358306950950829939277382230756918514137715006760513855605591892192452279059743143289064272031547161859243907723839426286730587720776557099604124761225754025832508703222897127928189522431802474526953419791348703412517067279692723262487752126072025136170626089074354824376538715430540980355763597070584583313399107657095423539501884231642469436811489253577628815858816047037622378558916772010804407554482832160043218458643182761060741119715920359747561539976242386847068466225530512450970005155692563687619863507607155683416154328555570420551315114256634640522603486105264796349703252049142750602329360429620369546437557935795378775879444399259512427373424374648084734413635828326895922871580179432572609091810468665415028068679617893848289689374473999815623423121351856844601271692666736397037722122088191692439442003348365870949501434612156974472630914499717220723162719795553059953910202687877019255790714495131745202691449419641251851250653284814303749598727399784609182759312017584817092526969349460973963224639673425080311315578531870258713668374189513387586201469037570504736997557227437383426954208507425470292621911079977261635200527181998353385734632433035133615136882673721808874674043216412751462922204402279367943027649484035636924447165829710996610600546480992597335863414112049485776049571992756062768468582764649967719292765537531694507440152744511382083021098645055438281348624125995977025919233510369687867871400066364959195060378702787412130833633068116824813176678908574596168709548640593445279866110836606512800550762733134123363487986213329413851523632657413113249719604896048167025890994218283516007997298190650789001074129686360695573967814347113514971986492268069330071331734554361746305766986916063698397378447513911008232992718018924859641342657385131760510243745102458434792246893236283091492867677389874961786024869575647844498274922841985425203897136208158211758172381604525116696184123728605176015462918194574764962583032151781941397597922667540681272663851749517705024887192647965956668112255948736845404840194834706662382259704448212195643706206434377674173559256374270320504036127933135721318150737828826611938255485863739552003510131553320293213456904181013979564183874748867473441662107028939729113816147878543503415783586861543049502912995125394746614479574797842291463947547286051237411267787164982593818167075188405894413655968076907287828327940747704227048514757412157620215840169324348301209448713477387241084037534142137206514538705416433873401995154196418085460281468899773698150174400135750189861291572518961768685277312952184080341858192113584828692397774697527666663034252279601837297234346666305609891672105327325550570482184566550515641558666783473108412404961668080510721917781767752755818675537227360236236692820089266146092193876625887703460453429663345408998761084182871497401322395227323796357865413257961668762148240892463674006329219409198976117051012037600939916431578608068915597030182433829689270266399611728852458311650018119293710053732265194519871009807264570654582474687478133949258678684300954358468798040880688169008302031464193743226056308565208470230240641291086603064273082248344688032432253630882136336167281966098266003994532492626239958808395457753021636566973364942948476388547354571889141897494908262448502107211455303966736305487066185128547245710416845301098875996217563147734398980142672846837900727677279167910345715916886944041983592153876852261714453894386183767437387846834185128568224208327569295583221725639064527518847872519016121543421995212217612456625802052282375014519217745756775132431696637408031767245782319612890313286109757222654459777295769637673374955450647118534118660443818511519097826683328782789093366506828284882703811510646731346519326803430188441330497507239078195531730004484380538733195986032760293138890498007426982313090987993409138079530390142640931994455900582168988467987740198358095997762224906831137431393666681400423456848380470810886360459988106766780145059292298311122183111203716122241968167184580055174085014204807371472817089062595272792702312249860514288617593755112176354648621229280827803667981846149818895659761445834613015501202911436490049159459498795419183537373554234056484670462249533861545069240555353921554018372705044296797077522849825039430958249065397790655968166758079474528331962420962780426597264824916683854936235533029707779161177753612960582950829635464197738702831646672050870399993620614940164793573440953479242180591969861736945371181571056076693102636425962000311222584848037361792494116172596024391581411501394964087767872173232248971474440256909859782245396555516685596089375375013609387192152576276088338242858324283125971530489920718768770588930036857532559661197112261233876660834075592520095186861648423529402402549306723204730031153297824568018511225646779793813942016757086754341594397710420686910630823868265400134124746381151065293368587379654755880102549539741491172666238142603757162950273500918022293793965152150013247407785893451235322133228727209630055136138090904310289034177402808565258859561356408551151869884204358785046092269705021903759061863125332254306233304829428650589193244803140372393309357777117552878095784723346890699691483343455647828367605323088140545701492433523098641146915856314604577097945338004782009821000193903408261994348699024112673829683246255596512050046799645537649910316569550748708109900025891194857492195022500734635838637872455941111626153542398137794566334726469472873676983499226578082741595281722449246226707006871452025189974981505488554484217851420117380412804014092457498587269589738843329678196826776001200750994911040304836141148227518901785802765219676435491090389212947394281432595605377931451342569079127813968653591555589173132706365050038625746872427142179817046449545769491092983659578054737364452647494975385132165887661364112733187347777549985214240823292420255748634820439477219561463521510950105393409059332388699572628048442755006509235865026257528512534551735854611819010580367573226869743328634334818523220272031987210353157389987198915697894473453074981268563239067619953262327769727072851017522245536881173756094811661711547595872567375474663553416197516718128041622424550547372770882263751106215903842409216700562940512977925487279144103179245590633257169593185566333983523615033523007053267205671559831951476216645612523459392227401312471734723136268406290947881878787861182838191744487982287686792357560450013345291715261355751113822922754138276510688711164383362216226125228135981952055738241447608867024997855714950434694295121026225181509032640592520386395113998128564520975139420202688723942439475903692640401865250735024098350450807879872069286640248097246453119444378712232641289984910466226749276881586487710096377577515110045832565669645745252277423103932918835544663493544134854722475395722924788730669305484375482475802002653747462440584064882770411103307984113560067105232295786543356394271476523354709263072388699183224171596220647111466430315348024979394461756026191485030167759511987906689073711361423106290348287135931505576650988569516894303747739820684939895038340178363610340287404330824582666653213788538573780998646467372878288402423078554702017808452573886931505846946612718115668423409968748297414168427009793873056277110971748957152133554809744770958721267040806234606681257696054546895113820425257135661818763483291023931238147753591879936247556635957245273370782593968148575259690210556673781055955284159267762803281105623746796171729697853254412021764870470649222400384456099607208511546350325000175711827886780751680921041408907981285241084418228715438939642849320060080537414413833135605375026839183337741598194215250760220068865857327286000823794228453081651150844848745330706296882195615038383362736437682008254660839661272694020111221801582814242332042501396045878058942478531097471747074491549005909379292360113096187495459752729668015293314207008732868812475250023836684364225329708240640280643409795841081905559150785999271769500098796911673612189674017778628479471194976367526949538432784836412666954505907433748039170317396946360868933234293459767847104791311461892708996521123001431878501704074982968684443955647176562435357288049202928375889624300999518696711704906144883803821172455592177884860992615512329916062737648710698706494782474456992671249360764481647924240781585149370074507461149870014575283051038356850768759786012382895499737170474787331802892689704400428570021920684899382494525733122344500358722225438176667267699547510347549855363083615550213245099067392124038775489579027599920424953815100776082259687016947259838942951388540303211142583343523530150901929297258384206795727058994332356495105030487842139345262136442551898603907019501744376852757479355438924831152764714215690738544310920013807052020259410310319141674293794006344298233416184177704698895324072276908694223747200795148320250988784457112004658073757820470814134629542121207545916499532337942317723328600414008730752731424396746213200113247177279282530322032820132779287966439817287567819172910195054041758546169057290931046535159933462662613558498680257584175157505953735252537734971060124047910511063054387317421147032990975455291014864809237169742057590613154343612295296894425701979270512330174698265235918822582341684305193021930336132055558464765042393492697445769385439800562691399739765420176720919485668937361909667833185549352458693138519071139207394942512244733043683550674150267688473246794924542337145713800271898181968606263446981339649395726614985641208725289063421345802170694531208386578324341376529106005319470726293834418969596758072289058706728153222534845404151782137061949216110778240301586446603267339900859291787950383407183504041138720427489709086178881599056479726803713476794268954502200742328244731016786224824212539560841818766957004192635289931329442546810524922072937406939659135624365584531575619922708304144435842034067279135848766936671784960348229626384102639822322879365965575866484599854400962758395417345179648080973146453967318988325849005830054491233230318850727278418708001699090023592953334463967816250085195019385082021476497963464359040275870767332227447445257615343510166852271732525698798350613398417902945145592948174708547664941822878918729534906530645828142126142187152167419234233592833105648766028005232191172311121449695705344361670485174553404625055733100239786247266110818765097532185739826130735358413838891811898134017562774895704643007379514376588485281893653620118730939431773199546210440375140755830052853925359050063254877045293834230892653509806077421075247705196033611334436124092759399589633286590919665141696281279043868384925101079063236783374313293471862414590304255967294059216545473390962561053063735646860654092768916785273425860257114096876020472502669406082634197206563499066178211127931411053068297227147732825962157595928851627851344520659602997845343800198332839849443695802532291300738009130243383226211873575949541188225791200339719207497109647620706166912902426763007423398263763180476477658013853554457994382341422739426853443307818118742771321299141463300556731235226709638855853242601894095109306844163707785068337048852091556614255950304449190688069340091349411124293972119189438654297799564852258069168600299004004278214669235042830459054189052007194254322620776835244727369670613217000860760428116251082893208067338398044650286853242819882430235723260804761508344384516156277046340602213029707188704181994063360606842826915783799691098041658985599165501780892741137604633536566175485401523116086682062919857047663826496403150535596119847512492646069131159246946342014584076369140477057585611616090493619492050667871958494735074734774393766464213533494425662981054419152736203212610028203172590163638097033011399197617828417221538196856719366131335868817713775441960846572419597638567315040168914734969757583197072168557633219071499666726781736350879831742292910061005469854378587005798231449407901455646354868102572373968356046539397879213511231942168374788419095258268888613121545285624099725612330173541245696823659657610861916998847369895210835517404261923781330580745723271884546891849757855296420968745409996228664150281380490393797548374070470790108078027319249075007363206024676675383582157892514684807288026668571045323450239350703001523157307256664861763934454063650924816360724278926659698336991583256340417150746489647194373970019561391742470911620763974946321512169648839234563449499967975721781114562872644000305821718220885259745012831938055610108941774556756555362865978875397938176751156850772795459226270860405264556903575813333419055510329598828210928253203600098937509294141481776888981615425939662662363880439314773007071328475563649748260537397904782469812882949027660603387963289251810510393328969213356171480915966524514049607957092163528650671713747323901807119186949775804164726815346815418776672409391480768314959028847687885288158578607335798132233408061503553970270162781225708107549847862187410306420838943647841642709625138420303486927476893478179276554914154385237030480814239150677847346687331486509759490604805279792590844414414371025241090101064205552365388819877897155365696874508816814333140032175551061797986378961330170460890117408197523799717246546522441065347042694447270445417297700026008776670118500617314602590817952722116869765040196347532889298807892506888835580650133793766892674431430866381724378113229169247291834136437264715236004314703315229953754976675113203958533953629711249030887706374751930633439338045917347122513168777634671978399950381164933660818820786550534505491937577917001519684333085023249168861073232677916660827019724559197279401009160989325234263320527902016714020713929016584394650933804035931890255218674369347957308477632230497654165017092543687473578993784128705026777155791721458888318158071027836194869936928781620447001136124114859330177890400946304936546528295120151153854195378086633430363217150691617532743905552573589577937653635997493889000363878892215265754458556891073003353220850018677158232943148937063810198510399827045697629238894581836685742858845829915309171118044521622926114292770739201405652170121572887912885613678650611381606083891230014050247247267307174280547365402621218571031666893861612799862107876183048561754813537390229809889716495182863322638062093109441660300729016484911589913374306881525573432676843709732213744955636929083884977131484653931866472125163109955509005964960520456222684164599677613536062083685291209179926815021775166219223520884348188503918923592593909625492514267931931827151606141480569211088073276343965040323829247584872458031215919258614565240485763156264515050519661715871080947254251641581887463719405534175484445312146867067399331642448091392479839143743978775240640825120927405849200758183712253457273817441428130290518605019135331583282197028038043060403581385668878318536187297017545631791767249651088651516673705126730763822547262412571003480013458944056911814670027941454068594822452206347301210942570601565671217713198038027261197885974168133766750994411159091991198188509442892365292224127609826862777467585051831886418790752157214497959232471019724860420368173937985732116279042605506306163855625357530507097087918836132080081314640570491630053277962110739890590607227768423370134586382700074609631644821323638263678141217193498681360089671966399777431621718873643576532779899430511034423734788600053245108366051871452659971671538083147508433965217637685555772207460652100426732539930453003754734076660084072664193086693400968937443761048332220599172099839491801645661115248910830713370647652266102823043102474849205029158253115574233971887111720010041959526078136356600740134241144336467432477149114062853077848164736731571683524505697163798962297368584033420493298780403305964214778870664914105382627694864742478577689065513218641755245421370628316269689963017585262047528476539071899367799230941072247640282922419316443992648429553734621704133074700267120195093651999864458614687078819874873268619567623862950381976725353391576727193261536663385221004810865245757542417091371098429624668874284261658196467259078726284662143546233180644831556516880124640047568176579534523456950723632482620114127175448181389181990915218363121741395098663384864957852187042505981582463779425576879828015233787660136567663099008759447718139900479598172138749664726055351870019324304925833833154834718478345873825710967943718091110745683145244487263573893755361464034076505672232180465238706815587690306317069845336938359589873635884767097102451807821685662299148176435006930169472224722004469706292700169409043084790755123223842110505033949237118682391423809350683076268367284887003767887226089865735301264426492718559277961044792478189793765355725506549507610942981446332123630402980498258392735244266898044071253974958750254819073467203051439910300386945007740545471303738591364753855097772584714139208303887208448608061120145784643150182958547388873968468218427458117407022618278505550093587813559547017886208736690233058213841176116847295731741570030487980431807940620601568109050477920123354389813311499979016031183096585993416383796509605689905860901944368144344851577854635571839115733961249382289183863894587048206909302271740476828799818376546798318401489007561841056051595630530404807618645004200773092226699043399736282849898885972267267792343010572135989521112705698649577205435335203449761915033613528736131412876871011933551187308329335498058718936225234348319367135543901640699431489450538532167653280563448300620373660333051918919102706826018760471153040777065312056783753214261893443531542202843416279384283745122381815486941996089822626952656084286713727343144425683674798838043634970840285099263651804934472547239444813598136835565847100524998052482334791869820238509545318190499444413349530331529175237266755096049959855689199413985478631298279875884965127905236674734000508581548894424054743107418268745953547384118127451278805025503500143469062779340352578696038025919308500607094529095014028480985266428731181802111313213911284657009512536139603546569195239561474243363855712694021527603125467333022579744391527942863934635110736053200805848308395589593843184779149607683632347709797893231957695816835976700806683312914349966751557806906453381443453385379663684629634331541552669946548152898618632005486019992738135840826364482071057305831132390181305835559784741582219832129112884136495090091283990512560464957281612839165333785588624240008917162209383528928712438946672027402493082433808259669028805685817892758547758400232525372686615053806815991370408366508807298732205689568267323446693183696270735903655242498681012349846274323457580963830660730065905099646287039727530322890268400299811222634983941654255727107243160728993100491485750962605133486089588428516136860444465874171314295978958799011437751546967316076268519914546450172595045202990640226634734496766798776956685694697446806445410908943843970879837589747254052681554582648340105763698049420229386426851352985455467326837367967430661183256977581525818854873545761108081414322873053861824974694287023299670500751710173733682770105909319950742424032061554981340921945407142971532012092762539006447332319072494378640359355449712959474587474368925951964147168980740727154079672556999243755595874580745417597376090765447553077241649706494285432200901918264922794059447640292348455559291734304913706914768786461335969736360787169413774624906052361561142413145192514919918386345258261219447752883506002044302955284730021008418954921506815449442191673796452311049423394826407195976803947959732814369655180041434700450938375306712537192170662863699327726233706606347408926512348002080393924600932192085360249840085638772518284674202421490304394673641509930563692347201576349904771313217670179582920939877494507720595052643119908796815255642109222288711357397311589724956390019090741639911171503996492258684891343572530474073287958355517162469740304877364989237377794041716206834604015413227856931064250984545914580709522370674648869835737134827911229790599344764453945583345235804710317096342110891632829062718668934322526485626458381517960333956785043939648737278184929170177671109146255673591086649619919553855492826618839866346569391283059488887373939076774102883291801976993130435656125562050402893591557485746258981075161728380628707461622290460510908480379346653289406968372194823623241578585142735645246400871445938070411582657181089799359502108938120624130291861696767630110595374345080277932251399452895378468203832706847361215331879128147391429463989101743712750960976602498540784388075881199456998943533647617828120689406996922739528768822221839956936835275229294870048519940522541020396432458108253131282429977596778552962796513418580465237523337268708306701365236009652477835839038111042185037928763669440453086288030014508327486677533033093394605498193544162368054135654289366542554450004551448266119069119348501754226073753831576115807982166938554987894794943873626547400450618026643298895952309885089715382143169047402550327962014043617621988787774545006659327906063926814634889715534037128272372384577736091367435134501833022877518377245055580745268675366790169020375848997847372295380897254761256781755136524705486319345486131786725804975415748039308520481662238927630223834543081544225700171341623110646863101269088775883023056524630983362781926804833306148524394628378268882158437458717760863859317949734385810174933815865330651466503329710064310039174525811387737820550418724321785445623596012911801791705471870614513872977020773868872048300485458876605641724951045960360786531052965030664915920970450905769091558072361954682609984221805667126325257545669394630978224953237732284690591582756912236666122134542744557068602812834269726964996044207028782137406254212834466994814115543644778222105997126750790786594904875947619434570144750406796610685100705637439824362068694223641503029265908019836172769116809298684595722200164027776041332626243826181469930338960291429692795318058983369776278161069524607724453341595476948141561021571908510309668151973786229282066364629476329781357215050963332825186910400140046689415964940981614861156337256107049240151532857721802798411556692582428375501906243636078792824417261540739912325198073468840526748307590721002156196637472055515947320656767660160955818903257675393116576869724370122393781818932672132921931497709010582799341135003977687719684358134137923911644846991754243577574560017769524650371605999152518237247520251060916062763496865683151501114980699302480863756714630203778257782651637037806191129075208299530404642049520007954180488962695480399470899762884581677844208539911733594187205839040026179580236369542474745132304321482464451389401260507898569716607497022012121254944074520210878084172529998226708969732077388323176712312034295958271273919612305967161244292403361344755771907390693115617646751300347480098304804553386369588260137636331386898727038518297890989513709350900934709514118248970248726662292439580730946312846191538533147837186159466021320077264874197662464185569181246726150220037929465266742240806271915730170164935074689205639273203047595284821503114809479796056702042801681865521156377498437718894499546723383086392983647609665469725840134374351075303221102533668089448615320770770905199036553290106561257110281520170551730308125718467587977751992974745579778430180881073587463615545209729461633705670157503398280600874144526948170659419946894744038975147759262773039095304294217134494334855650779024392650029283021095323028484681782811949054221551827829341831027209108903719334929753053090768644627672416265282874775419578221756526829749317167011345156101769766946080510945851999262278647921010756718937779149659471016596342384510239621585828270184129112643412014004151078386484808592727166324259967381232325938232312671667334505161314024374539842683957206196242440658663566867859817632648092905453389607579591458226435084872150437297876085459293781937894906504493305203107138109886174096927373105699331362414461032041480165603272359514582299772044933867608298938393373197525726848375847347241367646901002690270050023017255159524451228412771145877260753533587057301623467811532661411848393358159854631128647856601830757864286727362993892535504954865782241530174216871233874691784590170646963782230597615368451987787608826208925069318825148821394832998941296551783453139880281401830852753788018071833927203911243115927670344219874563154753675620531213408990641765690936241584145150344034313581916059139103343984073034333155615317371110563967845851854078915252277275884910670321998809770926839884951858495018907192339335719258826918890241171858767046929854418187997592135583934988075294750601185521830816492329299894192332461785865513499221823120804294242783614836549595184831952605929398039482650990033434196598692257953766010229829125478806157814249768578553906059287860790667780427465386663059066083840039311848134851473189142483655312041938824518065567772442422512863386979907190727076966044567514375228523541153249760085498600674264302436556494548221981675716338403966313660146235653837105815661351137320859701479183490039702367697429374168585038919315257017107632847529491284200994437411276155952386869043466669120515299978086958561115287137908031494705632180377803149304464287087585126532686275949275637624927777010488331091077591571888362617901475700787110783833764701907179911159258882306259247185006346296147086759223200573960963690798317662520946598687648785728819520571474759173949363302001038504286068567097960704855541406296941985637215647367776619238062280763125490081817742868664664189826158477934861260574814390931888753757204515696767096152994754554586897504287924872297712917149421041805274602869070640516668998044013145762376041939878506217585887238499357734845810640310939810192857094257664019630566618543323401989423666357651580510928033403145508240820387787006706350331579997992095692972301663516415798402649603448791416242634514434457777490009421829973010826068013069326419280474826164330810903046781281188445160460714167953047965484285727137330989553424615495129806675945521114933646612087015798605891101635349186895018597213189274163440019214661942454110679706920535151210355646968467278306149090882303230539088575513200412302877102597904271364228305156244982857683719592924937375594302420169915562089334960087898660737945776438824415825381171846553578768400000139178612335792154491672451926115177083399919731468506125165979637688550699600127995975057902524094632504912332109624505225298991368696051462007933284942417479071452541262813343706583125069459441296733734769992063609553354240306719431812782963643625362267784685134465428127938517673530733976072600512548990901279924980363290897833045955132885260692542294125180123109095542304749302227960405334570241416301870672437690091584943297222925512598173234880842289672438811915589500983501175051648200321487219900987676540560490562457324320544121785930262161313896309706667467347899599901245553803352473688248293818747144344360269549058562897016541069847619119276120902608430347681015384728590352315759631315440274262380821057144750400903245070880970355801779069642675125167251740170001799809502632601761901140328721589427518750942988131715425554696051454786450616405193216219667947265764050063928832218223915805355344574372063577732371894307436636200519160881487565611473089121813006479397710242360123348199448004222504589728682379599692973551616336022165171491110395642059677773591132349968394773168600610237352717842798152288853873907728677948032417033996648506365181866240572726698604627340736072263578285033742582490547193720479591792582985715738021785048480380025852195833153556795181249977420543081609840713493173327318123727248944935667488980089595631561197727452389485188077153567740375671102916198241974251279577621465247027596976513122270317421303764445611803055941377894410446193150117472411913937912483466171933264094080600260767991901667958391831493024645209968587666312408075800561665959522360953389910306106732224712500222663951156198229391427463713790811745329307921116995317787362725937940248494978730971546769715459346115435200267238545365295162447739372552649771943515882182699073514193789331926839882140385172290558445030006066368636442662601368234564887142957581820507061870274547262880870745388765945587350509218088907924994246030365710959596841327917593417170606092686199469855051250456831687190582002827091966181787056350279876034254540740871684702867611740762376239809579399351430483742970374430721327633391182949770571346973944936586123890658258779792788407384391852920424228361052384055503336133725663682105027956443685384500735047621548190678690938530958759929562046026000298998089357257785563179328129052394752870639112432911464973268500210207763922604278217923675907859657433533809145648548019084107477235238497273001763067728570888157729359855753681742278967839408413282020952028309665450667049062022776916680437347291540151504056389284169835818276209986055118768553801874757604549318070530445121293780227978978809534239612675394880821089817404570778749670577978392604984919333245287203559132114026890244024864006184251752563509482718210277864818519882410202832148225190657364081709074930881644874420909485318372013827878481361512500019486133499733041636942994263765162833484227653707788290957966613732333844379396669914772648921359445177458562655770322157764002400420473251679509856562013852173333398142489899134286146730715037108924637673309674465594737446194185796899540795809624564044963963744723630181263838506507456491698126549933764506300521011188914599508942263326411834128875033230515666043704401570631807035925493604885855044749409616043082965908648554586543916356763250527012386473616593736695843731100996338704107015366394241260783071369545582876107185191237235834197327178087094478835186533677098654928791508922880201606012298478899050696600467207442648668738697672867470170912725996493534409482744421887603378123268826713977873107631250427511330585535601078171123505959166502637622110387566669123696908985799313819047399352963547706026719758676238732869679122279905866245611799430534276996284957634421208415820270607582474380750391965536844310844469764575664283262459178857563127968212417197586325183953375294859045193187222318064954097634599809326122825332804339731292748772101074908518952755120401761083700379737165983654130189150082526819290285059283044936005997204213324299134740390917880917749265233317884441532282772700392863292130701829516650884266932230110017971513774094236254469071175072945922300217941839416699490714817414955637288071215289583454385037509811909252018165428065425256600359677733518032303086510665735722412787491428047878640700387854936211877786580035250812401665545571509899657399805814721910675155430866247559848297762791498437654722129061360400128051410829508208869688016907654914167020388098836820094223636953673401087134684789895529012713482991125282987172537220931635902363047390654268684083543233102812401139994806240702966051730750072848059910714847262045791337111300093971126145196299134044627435427256392057801077573171541864548197906838876659249043741929969150838876532937440009699021954431430916308023173032953613731134383763539023857474155046471315116463783313328569279485350392551512619200247104335439327335808375457878280427914927097959624258095975796463753129609491611760737677756025265566961802361393766841983064513235620621405498224565006227537838676195651985289310898615953351318661976703582840375124823223414113123861103928970699827808536177590286811424365002463438657209686521958480114175104635029152589730530406129609561545824276597455527632982016682520086134742224896804032559857000353862659862406477513797766509373803694867504818209543461479753786053494683761425014567752400798227330076014427238686421664380756945130145739951902410351197545811426582876547788303362381636358518680499395367300179454240191685588879643827148897963671904073881243092340599654274392337080760459693280918601210485598941522265757668128496296770134058688088588394770913695482471568374801365979738027812937792625337787505649945274631863987994189095544983207926684864467420499176388439794280000613162106114138151825292998292411258151220394669472351950101865587896394449926289248259420640384267415461144169130911709594555774451021530438611572137724225580806421052980596032307545081442292440952297321838086280766591764748403627200038362562830086364817817117333425308901812529199716378084862309250599431054449023531284692076287546996754574200279149555141648907360090006495375066641280148664707552083404515326967935228473042987221011092030071923008420291545788339191814869593444596792605644476662040686305724898660398960931744891207342241707080844213795371707635407013372122531824318303934777484018970216963954687713425969727355331349613810898667062014630303794252444580154979940435311479348154649649888903470212708029337996993518790995282303470144579500323280586710540472708760447929915005895199070461019620922331634069592738379583117709299851007762474510562742013291519282859231709125204533173810313056156475876046529963948346726488042679358856946683326339965263150640454177076990022253753311306618077475004800922529462659506275321064468454074002282069712312638848465380296149028442213331811042150179899119161131442616724735732101780939528624659853061519385266498536570561029059992972875401538044030698907281213776294018471703454024626998820110078831082950252468781143108971163556781905182606642260023984429852819951192644997684845244014661238387502875703586780157388791868612522871340048283366673940710902447475927702980334738007855283765904878221686248543055287761569131298750295707294635291403474980239323912772012480408887000356753035748766598641775382903041456763837071852962302002509681626703014815066927079445937489711962507990366414599819558827554366403062687551366155794262445866665274382901175626473126611039868016135035725705134755206450864667260937111079042437050892259973617641891028111031559028594307146829376020925660950469823119390167841131021091425884325985956112882915279116512312719123400758384898084012973773927213485259502406515087508101279056858709341025999229928491832534319687020888847446111637124858049000136734276175047713383800491815010045351539055785920953946293016718439340985052513996108310523000795321787913391157321851378072727759249206190885137682301568351056444711712504792827786778859671505193861767172989352829397889237973360462530163417503887384527576402996555970920418126694983316399708824562834270154662290638756007063186675208132327805203108852292146840039414673687820745089407701736885013816907005351584067316173263931932806726440691674175538936294660370389482367161180474715621706993950429909576340676637989951500391770806266268667531516483365928600269798256255445195047731250658235028103512279024071641189426067130102097034038890167428874586322107576610517297633837186936084795357073499517668537745310914797629166522876956893434942268075424328396638157367575611158752814257587256343485718174519370679162348211615710192372707801485176713197984925796842442623518017266660753021928676184409325027168580134750930324929841281540288027851127047171614636244970485967958350653127906245633593859647036445145717069443313520241949170451121307334630623332405207810380359191591653475112507530712243740823321897650057223987266272438705562206073116121410553005227328484739050996953503394386674021901591535825141990575753873315102119121866130464137172575200305074958978898810102430506410255900805088129162494506788723119956650279197025290055132685605393830071374396123204787550612194739509884626195319296947583158327507820747807969976894172380119735504473907052118343579903896375134404328508426435607661441384347553220475900471303923369170659377491914551844487359068977496269020123985553034525878576642396360512872097258682148160768227191656535591324765462578575018966568087846039545878574884041990360979382430959991710337380162653985100948919278279322482701190359095591186199214023187832932578591425082611947157859695377237082262403565306039918802226782276004510779351404834299464188837694083706370101389708799223931404846042438971597101934719344115144033955756453844036353152154314570884697850591065610379265014800527357666586580262304801589925058531661547475274581025460768328325134604709423212398192676668363959204785457458623274676935726531371136530438375164417765657593390024712662778830233138241848045918642125226687455469682206243310159095563256653565620967170290273897287433330149501632445645814965572288092671924923398705409517157225311722286822365710365900098548834423057885629043876610590474740910933644764336083193017572104707486318315733332198144677058139181790290360560956009429164090266870491979585239125006190093257861686378155917857383041043239320499539393927677297289880855118855206990597455854542041987619518790702956295899400029622118854618422522184166071917592801841107782642279692024443645357158154999623307248057903177787097200745106114866813157893872139242897874928615417208059244791111139191909827788614205327194148499692170776296795774735147059512304971729431183680227792702700262830857268244001009705434455475019001904568597696846364576433193601697908444511644390526748020224787909307943062605701588771007513955974734988397913216550535853677764392521867366667430126794376038086506851999907054678276457136089832435524821375832480118518600727258104830207559430074576178343095617162310620624815462078278049482480369043608828287242544839402604683480214063326714450518725926036678782773688814789101520555787583740418892073298160726349123270196004575479841584962888855720185073608694404476078061908745220442960471482014047179735535780302147132947833545329158203899735773882614557882352046679810390565218178692676590757273097605101478926399027252489581641427413624141859676355122542891212423615092955881713895354008929155769823515893883542548281902858718781321026187956671765263316898166552900396957316211820483078585051206178016507787358518404035991817415316576518200663859327919661569006402579846907705422059912739554982691679553238253308145291322729666416575620894375148103804215596375845831978882295381099327909909920803236128173701909342443159754671262300531654570873505875100916910764685114405979199304750379567256214125610379866094631773720924107837928666896624192679921885128564896203209972921057992780926961065393600500171390093405359557637398551363870637085235966660495038617177378816687180522048764499932882320881594039822555681211601103685264039278056041881612315440424192151542199628117621161186551185704251583325356441530889842710568618699392495476225777047890674675487921636542366688660787773464949692269678481145883394961758460625812410326063849688888171295330317074391882728266517034843633977776302771256424043613526391732716060450490625136028687315503656815459980751104011967713896384102837327349712415799456436288206411673148086920151662327475429306623844979961136686407001533185075891982897643134545700998483327717752062937081706377283036121607696704955500941811795612269006349548182765579075011172206631667699517667085416657151084364034739139575583218075156801906312099966705095217197453610354807894104807688558637046142793439618654365394859375063460646205738724032127937157947144582759738750844250251346892758527212545025896391654895459958621108941636748697027293974626812774566652725061408443225401753279253142589134568494563132987792761808036548337371346875740402400623216384506140281098829057859529341701084789218399339712468483158456415448628316093887985844215167982935770883001896538722677831853333427778705256765930300002820902973957970946293790501257229618028491595204380068931458833761503236896327893179920800439487617799020457631760470519234566340910513935109381032831712499162857522036789105457013856019171797036286747733548433663954597368099804358821461110344309328798204262456286722801466266728895981919004598607392747195449984781091156672221590588133206309207628037074546693054588537427683920107047066021805102426952733341060185005459309737755361242986727716746798582049492909640544260160100939443076414492539517102360975241393440481863760073744931736532982436495485704684799796837188460931142667720959792808681155855241582764541413231025395324402719906756641306390411796974351978838298149068619972778498405558848114448422914896435101485600151334904237677533353831041344751792037390254202967952233299883008774053282239929971796469727381531933945781270186233591042517426951266058972398467757472290371219942736728581651986746071255516145013034047323773699669727781559467983597913744943417838864422971312748035408695138408195950848101017881047952806679080985813518130989815749206215702080180038408628862344940083635225753273102041635373853051170634195472401500228753402657514455552164931387610361624530543859351917101958064343579920981428418820537192304454434724693630484177421675229601803097371192244681117607066502234381413664307005269261226013415246646339558984619495327837743010443973046955521006449565140120600045178633807268618960226370553063548229538449924117174372514182995243325009919742474124412802012168445039358245951423997822032031920724975524982927912342376300628881747526863766926240276164394055618678289785383758019299584912937730924348542090362465224190827444296381060987763653298395100346122209856303699267007653659119994996561001135546648842671546500406403706267712697589781406585963600591102548821125973863390079326896566081063383498576746307723336910046873862456011386270901034926607837261271455142677549390160265092992206019358132006962171804324318669091839984373264114301271443535703921614707046800215742691382121754584665730393689049253498797941979580794990056640581938096645568458981021508561421149691660860168800946753464782240315046578715802622567597160855982567808752384110313985839375997004422888959144122265397442943237289186659001691484730384186536225392209819371761275181159761280373670090433336340985308784518550076695223545225215671322088304840163096408083977461573082556845718519955334057493106165682649624494169465990117558882194870765916437645418292712400921015520323226235485222411508323539853362951753313638531558536478001294335925451621964516235515084286124821114376476505696493548924715706200909261584108978036174127638277540013545831312878554260909019805350816346181757293467606434724234526950839618722979029126904542868192979097934077809471848346115429307010122011338961262300085132760275430909826619882396985646530242687361558631875497827392707969764539443350212906131880393078233885864128283459638307971061567080777630984004241564438468231486299093676354256574226901187208242216634568217670132286214661977514458361504404293389290171973578336408329027391235537402306199866202968107225928067830203402297571841107428105941298976768982300462615618423798805520426588724140007766694134966887493941266009886911583972106960821671847875063002396605944574439864782487376326375182618812907593476195266664401545918677265241156381975983464304817112873351727720963231912707242855956951114930113648152620825178506627209381597046805412660486621775368453445765027211182643710266490226669205376822491002005945624579043365919227918696807194116737395683466572383063647018301163124230970899152675735653164135933298592522733345272482114264817406225315288675465628637858862583610986970614788577145360736125544721801195818390734262788124580560651360639259643320185913352744660929388137852393506844617450872142792518620649941571240623500188476875157620647953385339154824446156011816049285672332492014645584396164471644952615597933541367035346339777425494789418022058622902129256678978161752493810479236312036892935217063860512803600544655224980871674631365185595066734772235935178625861134836408891254182166100302574586183798623617196466335496891136093490611365272174553233444981377003518819688379235197463881684964872640534144492331847200047059583029338151629141251949647405667488443364352857347779892450962539092202832172566984920711413599504762010306579815044955273579073070706029234543750656894193950162954924716920734519900825113875205495351464916415485020025091403865243598053274970198993889743483676200321733990714843693826871177949791036973100602045926623081842573807537913986874414763396528390694995809485471335016085115981263931528884040735046740819796623780100939213465834551731039191313246379533547785188707701226262121054253269636695544467295176049960519979253980382778917485160840972824587068492450750596858649827000783254510334500205938495247843412994152328988494498893803522138141282714398277711607989409272297694494949935159036540353754548534126921950421856280136602197344559602080889626686972472508150632786151143185434970914152919224491734617184043888056739638608597197765971480691338588453277538010852967566472669127069437142537933903896848284472325572383403576418710209337963834278364876905641242108978875038260143502924743545343257700469622060194217904061071850335176374239829190458566719679995113998271995647313360936470536275185859188961677970706669986190367183719137743977778995753666497017163900217925913282265985557073147281729072263582408681396589953630373983195626696153510073195776435330863434263798533063776981991678147086019867143638484161438246542524189671611573014609457067621671313212440989776323164991624652758938925217397997753099425846895298833366544868013818869583066287622621811729759275057475560592343947741454593883070161164239034212073051767084032146682522843680113502221752462782242973573653585702647235072534117475825176311796378071108980668799243446714387003226782396667764466005285294772610962925191069815481938968727985077640353142460042500735198401455913876481989622206315808231397559250144330781606752528310812371391642119652734509719541421788053058360799398618020356154808179878821248143675671930893802088801574696454742252575074867573976929288339057935948190913145862539515075295881654126463377823874983144910492511194588495001865612245858471934174112098803836468618620629902464661536327988402115249288949072547291625728932595818660280521062371500793508869928055412418536318882174641455009799672517084716596789195345473731811603962036542367458427969807796261675562572721206417047132838732803997940137409342686987222009124884761297266192740025971227205032792777424928591269806829709937885264673572635447024964261352692086257193984059664383934631048743442493554729500867933654576328129026991281605230487103108611025686144588372460651174245584678874426126043182968158014270863620968211906665830788023865719946361724341758399775081563931627193596522817569160824544283170179237953289466281739625712349720162469731657768289230667258407310184460868483453793445734711619225395922338774549397535122957390949322177529304538478510725935900216115549563962455963960801221251351894459151620191882311403248869429386390881225468018107105556980491839720034619368740219129259341198789924474644919033298933574487627921507838363170778859374297914953488538434250552793602909186716418027658305333745618813139245418176852447107939076282714227270517551832293911689308328562762651014422650849601445578408060176436156217981846217360754826611504552351580060039710330563075695257106721729571188786861168615838404742285627950137434752315044349559835672248603386175704713778907510986333913959562317881574481531532443350954510974716237728266279782229622517555534198385666386474475118126630539514026550419828991045227213956454248896410961510070363653290885765615723283018243578679320061493675093417475044653953637565043838807908054862753574429260178408209512279001162087049222595255517310162301460572329289728947871118314688353489821517976161321037896671274711352744389701169867579387718637736715809993609256029542482189054272184631155662772761821730848329385500958621663386351477098725350661675706564438706323423175853294323835365111696576505768036793922098647724950845566377921955708527139122122991493290936157008699838898103096244375435504615359661395410148285756675597144592314405748011496547046246148943609152769078734724347263529051742456760355344521785520037944145242940391186025411885962236109537178229602495886189226214317344631294911828117548538339132834281054657767400546398488196974651162886419547043239310345690758529441666488287430570285565580731687551181479046690403762091484586515866361212928002936622089636262686457111779310848197097525777827114141994414717740821150719316200113287301476295911904347786796380243101517420548685706566036764164095663468384585149287602401877742306553915085388086013260392882480920815497588942733396067752354192861284081029028315001503029056573192529892455544638354205343067855316618478732597567198939505264929158683559873218471533651233152159221672747019995929629823467894180354623468065781483768772351888825892435958858950429776991810606011297460175438717719613135074358931507222239766075870449111705632347992418895834020711732956083900151112598019951818793003883024219155497191119538612945207139157232212562775385264861164253628755773876617496412292088809655426233590292119257346104650533795287026783659468964762412480758252634327581769916621728359960254956694539215093026035969981979056025660030165635380728112025990116019914310000683781784719237756490340941857238238028307283258488080066323979755357743145653863783409987159570204406882380645518455968521959236141760204685339311935208146910526719273376875576547465370983551685555133907246060307332666335980199902837480858275810651070110506904717208785430140264260735522105271173070887372978647642388565495418060456012678132803275694855750524783337231045328389143587091647179721977923791987526010894870124488224528822080037774435938318535098022502063919382198428298201153809411108029986885434996340078484205012751159710259499373304205278265239015511650886218376795008567725735410724440456856119495929420360916391894969778889301177813052909366533638014774478159922290677086941210770245202789907501083617472851796631639470603255532805729227426906205618078042035450293824156759134528835989336991506971135555555840304895833905433347184325175927150863702837122228105890556381081838409419034968701961126755084959894835002851630142702633565410911302269953794081178738108408691979076271250884771333366041728593203877315365037047805550877048747280624112272105323524730503768883200016150497368128322269185913503914538971658674535820453039846581626254857423853916111269837009594792654008375780420337578796603956563316765157030625345936088218400485934748101314081061254118868983919054597221114103702746011240795891548052619950177405433431612622054990349067252457195120504455642065868430644987815061691403611637739100178422054763163446663951944708244884026986693232031400214707190061237772613664076869697400979162452619189086390350938661863049461361285959574197350376106575627921520899421236271677660633158577581643394691606930968031626813416735605922312628088456799407677858897595020041275753047927487708613322134446685431528216414463770358669653546545574353698070155062731820633264252477777285068643078672080475217193050475114009750697659236724900473938718978664088949005396184914216383085637214496279404331961598437223255480112140098981559908930156231496129924790358074225081143453245113523685673562467315483065888962990992296825893554402692275625071910239222456754119829032223376540246136205680980632673221169024527488571070987409396228474780891991999127811457178104966572546775395635571858790312590949196236753121236876240287219540733480276964000132631594894630589998443797919404193371641349477708921665952080591727216109142227147513183031729081987420168973738246174427485752022479156636668158290272516884333611611685011292655367749391063095904095717967422625024991108938082181286330032784920780823919959045993027671783925009473947458567826158316381258335999261726820418437914713502298437900963646307003488324719255488312005037743979503430580882228407049831885037211912392950349494462973272153679025334140659557624550221497632500880694562637274015017435770557688404920360146182473061124669295333528980334182001271698481066656375169944389149152164556516994842310222343564011295738585388126282530504030252199001398597370697190098275165155420151919032851518378646999910496489693885790063212397947558456947597940129354534349059623952622405138634387385002558020484788989549798216327586233107865553933911878199601160201342707025145216462097244499196799351112579349916390267394651563986611192093994965147979232540109615169009950213429784596115794011149893763995621098118461934999246970945208949530139678936113585991136885789499534348456899860796653862638450715902220218896915530265130502857312745516208274299395330679515626392378521749825779194843295688762994534982829594724102839206142923903749169671735559964433242149440470747132739055250062066237943831824396929723377688929237073998166944986463588823449021280524460699524130181138587794601810760390496635173130280338172122048532382145713965820155184272229658184168954257177548112312409057381224130748106133101426124113337604665490140202135134897344243797225789712207690561239410483585546282674943784832328317754491247232702419779404325611692811508716529245086256760346068711214102761187090144320805243096569776507920622955199889961416352257021415137321721999661253544593306034078852178816911458712023166409105518651766541088413937919100127606919834468158496242889256019346137266095208930899996276598062757285998428278608292853714057518381498457844401810682715273946219271968761169403471381529397401465877052114475748862486108038473494060209349741081575640005855274889764341294547251842275388174178818131891917734867023395347089595804398430954635504223788077075349627533165429024622530603765160379103378131837432100505866636367423981864849095962996950577777006695369754076281278919011945995428917830754720678873096860662843827426495894325998287521754168227236747718894057038089686244672037524678642550710118025272650847016341340816288959779517543412307815151029611821086972629822609492071788378344236816361417848210090094980237422208555534345205933322014220004398993867111801019554567269851066463675517636819561051379215864804865873036020712403431561222535885841048852958829238400518216195515458018532869930268220954984725859242473059304583540991970211658635964437348224574510878590760631486196747895757018773995639329662580964915976381153776173783406953739686929618736635829983435263832618090659744887409523982884863189290259484975697004498332488842738091080716466489864296500412463388164418685708801596301988686803653389680277687309275378322304915602656571233239217617640515148290726798743015028097007334107393172925636866264035785424044083152706331742465136158332254132824384688281526971322460002592785064628872722570888695885325639401099980053476744476765608021744154798155550742589911607631229536914672345142004169768731945976432426401842057693449812306315463342511862874960445377062978257638270309036686050021864834449392775804760566283837415048963512858942952755783829727891935629509841227973679297182587017905232872453856141782524330427358403516552085933415516876678436424165890020723801104622258718536535375867323833960130157137325497902221928518036105464730836043884258968637806162610080859111985313654508782251378539155413213081965206511122468209406062543936558572534230526408988072022331471773308252398226017816469489821000418633740655544552466080001892376597123068325724204468867759164873454811758421740323153463229808583631281474456203404310232373230485208829401661410878388006454554940388009849224843022861166352951980381197636073897491027165026398908805645996626221637202123784629530319116603473085305545073582967940322822434167246559725553074823036470125717041077070772173930736142810006322195247254489574854723007684877583498152177131911253336290689552313492074929064790728763699788408121562407485937058488412738295696287513042461261708346046092853929179535910108119960641022221911563350638649651953647607311270411293132623878280557214387411659211854571597762431840596680382859453619316974243920144951167885799273646959366919260334580154203622971525884798044711577967803551132720011195782590126013266020473938887476680980281189567135999807991562622028495377452546101848581065267850976079122622010227002600782726219140318572392922861847882370858401078309259996153506468597767820168147393649672394282122826697889125877176088588000000983661739970712130112295266085666785526295187510613177713577631960250346573695420257852555350633395095822207358000485195318348247512398687984862601879206804605924139016686705230336262644802511716006475379453474629285903301771125608941000088988344695663982084103331367541436128836816584677669772105303913800349737081060545427682607697124460840590778628778062484904912681408232620699819667984317441129343407547492866371790804444317247164049797305279575501283945651963940753446346330913728813150838016050414028760742513913661429209689112994462205579507940732676759174002607796853709330300851811266224860644975748721535842170697326602153747983725951460127862566382966881297144120062388520270393121981608185191443695434427862544260098352692060569090316995277894864960606563044326392650410547150555338775990412665019524746792665157558705543085980434750122658999294789242196126413862375434598597124988315128779931252529833224769074857251011068927694092680244234928584283152700896550219002678992031998702861609118147938643971398869233543916419360475507694199529132929765445470637143453726277101612237696604544014859840768075829553784063374746490706171109864938904223365451825832488333336027277001204494922128760509382650021314622648660837435888648037804269522867757510366153501228301565435746133382860591934382595359046866017707400617148168244947786447870582795768360835447833526692910808110883251876280112756050507533128392393536477588605542543667730444788211928935757726477815403025711027759059180423268436754341745421732345416059961180981713346059146089189253984624959529898366768486839900814397180988676356948847086437359728025878292834775133679581279562619719826555272104912609550358134093033472616730270792339528459290752476328388802853142416812208316891705842107206788599541452091571794236061671358549676867319415111355238160217542620893711893112171378679963464808416056011341131108383549174110601099087750022696677221814454089881949551743758690866739082546085491331375502049002554673289768467431099796614775749696387848458174480596691280314888585681503908971035712602621294192253139813792944242556139654811305060914097250654648075514563462995247805236015172748209115005348654336526600035624712623054814062062547114097994511054697520880990336297078555313346933807689720621267825389959100064244809787318332345804668201718425816877224241547982709197559398791827157100777921763379552927506642360957362874169727795812897803582926019841429185424773346079221857505011249000574869869944292815611522635332188700751990613836354043799394980495674682808206153490751644630277763292651969726217992797313530697279743124254968401299680663131773774559085023013073551828821652017129904399064994888912952087814852665576380318098821238461389073269044679836798690228060609698894082659867430136080369204476377898304812720101501601608128648718380168660044831891289158989233197956291144935094499531604625647728694239644252353869771131549032894191813668214236082390137007480085554621378443363763230369314413645785555855908341970292710586701763805305432271560754791586529344444157771874764547515379448516639136542851328182953831750265701131224391193472039801304535571736375318239065235734122545145869107958496800320435973553592099036774195049524082624093982635213305842745472217202572778518720531697330934525161386861476483123533660548929890746553632723446029709546404584449379912329719330258019090396224418512878714981221219059067907243194522821907293355854199115857562766942145209899369752827057607639000376516657119303427884736981409086929436113555545543083477068330228081472581674514718415058912387500603961169336310287621383118020793809441323750113199796282560048206009637732428628492566746008408164242846250266143985605897727453056550935924374044716659625639788572657076122153176249612571844740228183100294950107491527872290206439431116468912359500568340105856985790235626553786085424496927885812646178170058395578950266638037695750049078674675476902487619745443190913459329081230726988017391073038483227248605792608787892322643366248672321950699899105678649050891194207498222583403305137188319292548548118486163251959250725915857477167987989562401384332364059051326760150644779005445578026115831477611681743330626305244649166232475811507710845681841199391918939790122838768989021706990569037584590620258967666310154721844681713932278196033937615016055442061473849578949100458606962129576271369987168724617680988835433271962584423553651281906403782549641706197252873977208829165433882006800265414314966616268253842177870565750280043835510395889602944904345531914070534707340135623175479041952965889175386215312773309283700949424396281798495496925989214945826144578345763889692190989594326357097889932003075546678554331754247699498446253592868024452034487641944612270039248758176948251176799706693157873598851284034576309475566956168982801483146040900682653362573315618049049488507966115215814297148273773719469804407992861207714402946646393522637722771378432447955974537703476623043775349111664899284549647310066446768847569112432722937603948761808939138933045118659900489595144628647051162805263798955211696637464476466110927411067282163970977494895377463398946344845891001548524560576805092263794878569023400604720999546381767879995760686936876655319658242609348704268010218835415648339614988992612959597139240471067736531417538779630942503938272851482660963245959320412609619037200897373019018651809975595505607193160667991099282160949175433288544188351189825045225827779645036624074970692940920093380927951576486916200701018276293470279406658825732773098832715174313469217421500209885323383103669535480440127388358399508143577813231012977215212217388838099786749849558782674430361661528726945552184705242823767913911554642447555208468245957756045704953937326779954538385513211924206343378317095411927703112438971664645042504452682047175569448337665417071980588091860665941439275117824088786379818793608387988426211741650154837110723017935718099529203656814497720005422818420508818982344179072620508777834006961959504403371930607340053563137242429151657762875714233170992105500505027341255769484902798785172560031710934115549668436427649110722269651675524597054034031658416517660763857265792404315010369445471707499560431241003443240186601584276879129708738153425023722035320208613487120666320001990640744084600028510672703351527549456775021542374990362272724281741552451118028421009790024236023002016660468830102306396472541355483284066921467518313890523959323551882932841659103160350589608389672836073342560497616776742110214298052259678681033808439823028056753302562413874729211857217048788600683345953248443503673040301297469041946628816889609080623680832541966947044036723888339914505866386776378127288314210551440968975334558404499512853563087735661476806286532405580364119873404636344940753579602266593742325632380809371681864858808221746302230244708403090347718404511295638318881132533353162610545255074520458585189796688622355479814876333289252902438513570513515390233828440225656974472839711371163221517840947798999670605854172380868681737516385180622790220101932913559515466707779327256454517363019214411427179866081636152324862687640316394508856005642400451035345344598395973167826141811533204471767353508938712059926806689592317306132815297628443465353456402899626659075997975910893314745836971136598331150270543044812729925630901174190736176013380533781237564285318479301373779102859433420760767977195686124606751739012968466878580779953591722728881296227105997919195323747648247732159379652001738589364676186337004001228176807187193582079541443846371532582739660166356558408992440226960814569833366295901650003933795978800872104972947139833387809591351734413829661990333128244353121998171233990270555207962546059350206793226276923482365780756827954436944907672742785776670153257338265923976273618190227976163985474721369976618249752986533307101156613086924105312638450104424680546415687213217781469978662832447037637182076392659868623217590747466848851784821755983265250851397512971730917001656427249507533135893723886681194504268289957646744014751546932569322310189254300828574678262058046339292772421069560384203268547308536881103719047834407681671639997765632765400933275894687649270162741843118216045551542130051307193608559416719586179474550884025524198640442048504256027417336047024570717770247795195401623067911358534579852479641715601166129769250983566202020187255745316590866767442493147105709403456175687244803491501946992165997678382881271263151227847417512755427298734145908399880107689414343962974194522461182066955191382581791859017109623198930567250475699200750373679752130246657106407187186487196726755760360442371637877878907247070295941400391469331361286840269166728731275077364209512700488849681760561463213119716829925363157118316276072582742854669447443985033532652271958651904674045674048347208140247098178417424502412040304568074912081811873758694260174966022563924300322856225773600346750571016943973651203755437442839872216807789964885105504761206699793775692417920554151887972517573244200849462678329393894730093986941724345734687879084804120147979160086952143156043694732527798490230187193141769058275976275814696496924000730849416003468780300754543439462836742964830072025300865240025473467504875009136585629002851566927989265259778902945808384092503563951174223279325963558554128868819771804907885402754153713446652685764280644209555599670905349227155589674965246188114413702936774190100755919867046590120013666831814463368202170024701617611518176451310185495266190210164147308446227654047137529473041271951520697760533692030065337405288140393413368899205212640029530579242930657540036790191113906436573676088965439894577983938282914927682586741315106163986234810392577737916238916731087200451821575077890824836988138744196468752656898879766496353514933800561586570567109665631143965920920919742798872549433306157312393388818993992960277551746618885143136749910023427472758970495564747407166149651283636032664309054889249473170318678110753751148036517185961487503718979509872890002382090420296300007573823497292047783902295750068571387833831220612600074703056863029550298141500902626425277618638235620854540939414381627069661312076916572581275191472226984829895552056329691317119354590937345302720404037892819690971743173004916219457034085797081867861593920580217827337300500559903407342948662357297155567477091454279558954337775820449314301746280724001784810509352402837808437459994315058879482562757292657588082707933562795541637435103523303111124429338973312165365769594691141213434769495687187150732017810244884523926381635054215584363411635677526579430458493253865173816776215779900866498315951766007081919103321953250281753505008620122010531660402357156189206889020243418767187906675410121588094860499127905380168782139185816570752853356783157233952657371897446411255430305974329283249969573747855121661456476533504525065509257411095888842058663481521333778100189222905695028939071797025098267147454428455400999443443025429472972102600774396868213508876766763317892901900931246403886762767410485299106592710927158837044767898083644766336233504356167759376922403733093833207583510477569325777554955410923075117440711007455821394730516767103108749077970485691092646052996308591819279198227394350429380009933996750003661505180118553264146554620314521894581342717291586207647274697677194980703039920250482713391831164841362779615230884341226501387124000952655857355443039933751830044087345972451140816034376395741469691734163057158087042624853719584847142816694818379327866875140911163753880130591292131576573112030865282540406274887412924721957681784235008411185809091995771308543817496164610248488169887688836770559181184468759558673557817029622336975617228931431740616925084785252830050947811966471059718315251259712980897009953144089088409371825016163687094810087164124338041519494231305331205994200021994716684000182780863157446725286903554814311468508307365143377162027704284593293547044561133232345245031028432774335664692818890162790944247112617641954884735308965963465489318259390622236417656651605097745303556238801491724848857511744300527453687577681545675584003230138104894056813371421218598776673216447470259034412670837165279651070561381179046654888844759817794935353722542362159381625356474081241305898411242025141058224767588889745083846588195505208498018526026463582576513259976381001540656679088480198666030217415401686996456817615213771631245462167327459259139035179013575656696730119233028308075559907289503519077186829503779829647775349022965939739201157187262271027320918012289118318860526542208548156044648538192073197490153465964126868221724738041542551715398626678644608850029615195762075439842948224181235849888052420700158859834830433830592802516191115660972287349848562821904700331632671663212648936045463284086006865253674205199781819272267679229443653891326165582852297974332531003842435728589865858960824589440113206979633380969527968359724559033179665842571455486052008419894647374186355160938760309495468810771857893082426973879287724458438675082930140516962195060223908439182003813615926873936493312938199724332999685458253093608610052973547450389439970286942219454353811696068752798258318774873944742366178158198406566865629801831365960519802959101303909605252927325166630298615931044571932651596153185278682428134096022166511236825015290311964599722792771332590902341493889911950011178563238751388612372941964457084789602551054821625965159489761486425607766475527301391492066732740780068069988071713439748263951417222886444489563684925485360698488938140519905773055015660036746238646822689687871153213322585714041251052952350106025079018156184965712640298858370871473108249115053854809388584134616377671081365391092050523861601646079007841760501659116211542623261197127777102980058509663310082944497291262036994567633794856907097509584949161185607002698959559115341097156022133520997030214754426752006644329568183848325266050665551655801716607179471884744568750820656442406148390985435964699309645073335406463482663792379079043384324331755411102614818138449117902723277819311021747312985779951062985967639335149882660330845131988845717342954079679709467898606594911641275811102226326336654584996123279008603075913215846131528722232454959699744149690675743309518136656953737869158838487472281281464473331893800451888516517243622573597759489950191103189502909104637062648873978962300624988627461082529841495514598190443457581719389233572931358788906022371535282376915578956582840388586195135262433274568805806775133020109885891137451427739096219036463072630203776670768745855495756963318069402875819177519462224273899514806057668271718520089919001062535945631447212335396597721325249872782157490341500033294898431633381650630963764240383338410387838099779648564692816143556618644987170305711184453744354270800775565073280663122277116325036502260046922893647507872226752128516570854615501898174332144167763566319454323327600164604086597937767414588040471091580995545818590475557980654266419638778441107860471016082464987509239891615328893188943067581388891764478167948857570242116890311626524383779334034394416210941004304571817122775380185652481862841420794230784929560448386523399298784000130326152911093571445033617050742163522975633266301535600286119907345451531364133969103295596251690598335588194084266134102463800647424661620894578270554758135970893533273109297845025699257800377256940763319997986756968166287405022814874651597161319794115573961809610712549415062072113612267637709377036161364106713525969474693715591206366063296080537922461689614114752318622380250131402808587909361417419548999869154884766355605704508509140879851765344100150162421577481508818313158627708043958733968170637733470234293679691356830069810641924180798571207526219498880386221115350945232738793945733459674041155256387678185959522016398791989258122888132434896514230309082869573587779884883383684049162696489278656505945383586062095817505319858415238521022412486195310391891108539829356942801585724566158259138706955635171501657614701227157309156484596223205062568127906943254342212227650127138039934490048456526214974627281445862592237346933873862031823826698564190520549981078110190694227669101334306320052882729300149657351194991440904493878173395558237024945029586859570893243757904335246064824922678258879425915831346216081361531213852152173479233005243532842453772288980017729914246052227572880736928479400291744461627430645112468051956639789292503674080033432762678807212262279546593045833572318696646414128920950022850936066840449125246138662330669016913119704902932652420256601477191596116598815744205815269468184377526301109351042051089625266890411264147599350705047918136908179358810093682016834773155497895550588035851374599928043084809528961440770798124636727710448802625836840660382279174201469235045816827343266698390629708361430691192210955138101136096133336965595172580497008109984153411822423357963850860969004943100135062630849176598155738460952349512477144517350456354574772279015456453550931834645483681793379480139688196527843909606036795152720946509751341119823974828013731472659405910739644426071429025021956434762783945938831148060616534311140951790037037397057460484888939407931791707286637382145710829598162085160384689157909748767870716184126820515988223063525108184155296799277092790896717851693331873161727668856149700706170090728896202962862782942021190560649735709942523117636669505471237205931838601422106077096088474971184948294391770267872259796939179204145080994237006725432368080140380120026446472278634575713504734449164464586494559144302924063373766534247632696428801177802765947904213952916699353553403668815355653611496515727380215911904035829549835996620363020398339059494035074776132977323717732784636537486566534350703813754231118147131185811207291841700891439016087525734743899809259064719013010292687384577814228263209484367063058909041528461505192317468661754046301230455527025795833804003284190145598017232249210034487485316363437705939710961849316080523222971005432357988775024674261426602096507679371842423285048958382549795365154114180579209791401985631561161527560510798367193523651391763285463830634473913866978604293378495116261134553441612145672024348132859788475100161112687973184425514859191707270939905758060951452044876250358356647168975913648445233563675061006279526115407178377413461963021021401467175148765533147940745963642686579460191318965712689189317007660988078892075184623325793893925376255258636053812066967727356397449932335841566880621386435176729231921726107277540016759466822626316233457066835452777970057176875962014022070730390812834340130970095822499203756887177194184820475801919043455323889525360190751901473365891141168771063497670601511121011178710446161840911505277842712215583536383776332687662736524842273871731403963913111335091638482016782061289289734421029698996569830015967000556879954186935004491842622610623649341763887895267506935544076329808955618404097931784284047018774349613171272977339223983318833809397936127754892895701114541446311160258081648702630594677563582852909211898383676548044746054853695480455650879627964789132258717006544642095775904890681333999773356415020999221419778836351074518470391948899890367051496087768851154663093681537648953105269152331464616399083810380507464235388224174899896806404582702194309220744275277854801831703830503072166660162241002756984842767807943084158164810563772937640896724950182107858969007589941868432226551201351067029901171309076562501978590901387258150324179046599601280020709692800990177440128559483928601751928239911110169840232970571360335777494741559546845448495550888431602311842738340497787651833152174818923407580710127732696197275684441510511573923762278750112790374219100765593683915219531979100703365271495660256023123031008355851678500285759687387620260262183837159357162193834144745109664490239247787123399114169692663778920553776216787426311453090147843184876282933341085919259983091679546614455787189182951661427772499459924022279907909595018295106031246240265008903586692163100240010191599892820423433876417561375321964677870126664016109147397787549121378777962361088705856811028643481788602948309874897101416327803953215535078994398243292381867298320057161541200526956787258696620932085803968170707244831487986531992928496066022093621977613308132357919624983311667526907281729692380822017611919085084857598317803348507800135238940923221200695896761539881721578090343951134283203454711037599275340283978044590084337643745731185420524702056661894958488784584403224144777826792041247413309266026484983901007001768613430614428295765492712872668426261530650259376392158534432425869379877402080137176843767532737860404879977000389210558370892799381315764868182595288536711562207155927255277239513281469383268378210774505724436659839208708621030500085810700194317659966650607757589306292704335442723785691646210288155091154846580463987415007131149771808621152943685379606713414816323891467783682082988615444564358714166349288864548236999034716270032567191603742119864017541193858055272495203495196629622669487531255535177309295789808252375281671034635600084761625949739393786843240498482866850668915667217105544264241777765246760469262953414109277521528154011744208833763118275800166464269824753266231523507842407301731223107977771500210878698281993286133861359164449536258282040371074616531143743007334642992297009845393731628021303264062090480607216587639042390094108277613344083431026382117209068455549862245621234788050365550266010362441141044463066186291563946379480272121563503375936771029165682337577743234212511145261574650189783757449653122604046766265338760783488556986805932949970929804122605970508880660172851717704302566555227937972437556534595676336160238108637621524467769564131867833660381946459005055246950408714295047678212561695329115858000212029372744216344868703112246468390113984546182145261199664096077723945254868943373166118988408719138866834453454428272448755144395352713974399221202509149283172015252598524450834003676038929823281596845917935242832431885244640697021162057861678992313287506496062255241460503860759637646955235529122030186152602884454221944367729104432909363250796890575935212556893268381450069028557297965741812128503295571183263717595815495082592372638195634809157208367182332807091096340841674962820356258508058609848014715750208333340014428726195547432008871687139289529452312645400366464407982815344017006022312150187677285863015350424851483123682160867662034306599589431175576074777219077240977486938287609712606886264363107522600498083742108524245079832991745202636735731752166189669263034554117156495598422545680817988033738888932025182357806280960758587998725040994921654473673485868450314678940849671364822473572543229147987433161153566970638322146290631570667482543544674071896602620052900490283015453750108274036988543003803827942106313370998372338200562690447303809118692757078515960213818961324312935890896804818832357750702425855251244263782098260253412620221686326473273189621377170816669099524709002437051397520847615166040185051478273324464171010120994943788584321224958446983249573274757032819931078740016893534828961964274472574820999287825962150270061697786565700157985059508757561826124518426556392499061408311344875234779829827269212017607558401081478115023646386061677867056282489284095716903705852492963739982711305459239697021506211074551624837391078721264872325481855716388037619343485857900821882407955486498247773452970003527554037757971083198431612747944394503208103897247344392272789727156425644100332052327989997118616911791621177366340003688419283149002969515151824158722349002893592315986890125872589532582042417271035206075384954825877263682595077705831800273691287734647683346119437356695927440200476863049250033157583844929428669923714795452319211950369692051720223088526435057169021131053120947794489509459642760024393335674345699653249691313641284453377043096784965523643019849965049444007570623321524929295596912353000170280859252208245163784123991781298212670750636727007554386944024532066913774854048050026206700614037562619105237001277681440780112285340810856537198389748852616777570389153684314166021057216445361543923946682492277671450912458333446659198975009526933212228501922390309036907256405294853911057601015163938423454307105958455701426152075249579219138104351358590682986472575313064561434594082433546396734592915488418271676217563431489105474161282138026355980959610310760305482262595988962207448935637557610310175757311764373122567897809177688365376803659997712023541161206851524501244615611434424572115679478339196758690986935421174191867764984834545875435973237362380194153974909898258519453774025618801178939082253277971075704384487115988510629966628290870083503282727581182402788023809733140993202303122727163334973195817202691423991298089299287438246113321304652242803455108699207134194617149365023586184309445811562012646720165608548045062604640501334726530763294156963763177674262527872717391747832037726486200415664491260050314643204244934145410194159617404446572942283528252810357482845605175427619614502322518856225088780579504348707840187422858815124536369163702875596467624596009903065096256090981260188674745400061799058152582184298375496819246526925520346292787761164612181016052983214667448839175728340103601093560588616373555544261043606263545386658780531369524608082143702384664760724313699277625127704629846628478735304322731834930522308061998619781550580367185025835041442788938362008393161987264244062536713089477088207725382755197441988164233507974825394382311476779065653451561812938455945592020703334808679068444805763198005528522639651542337005698698890059783508123774279117281312258828404934074703186161638671159772405313320895900687870201135466426820635205607502384339624077119173645186371770280961941458888709125331639493726063840049340009380883669190780372739279082385581382686668082867541911948806917848034772822225637264884347733243305591848696165387537273354438584046783878805046987123479494371318615985350832386528514334954677138857289039917293535941558305193412802315214141902528435510619677128397269619880926335966392412787371943087563643511919109774300198405635749493574150089125882168729163558993977064014120186686473741880046626602925163141272442473332571420810587657083953368500556456380408731132275167072294382360256971353568760710605612915548738179558692114760841287578513324781777581876520815787502080532760664183519425855369956297582752530486018865778655633557761739345738034760987876990477997799007599864202005620215256223560714839814377999862618861952369529134424171533847826502871380680920203925403469808333772838946838032039414969477671878052423426956552307695207184126005342596173295838092254080597307638363470778464407475868384400469838525469498084770143543104885447448199765802169583288392509594863640580973749789523488863313922315473013140310924561419985659502614730323834798925478593030077923173862722196799578743257038308014324776656816496890061949139671005544888148857042312803456648936860315219383260852923475501307320857260866087310054108108984747553945027794581914356155791608537560552607029795428162265998813300039208258886084319091745021505118424602993904335906836438045967573981992056815622691456008055479063121505449539337554204568449188920705744076575144112382931964869224341547234851148904777345147658746005787658325860972728326998740382771679162663639621629328163131013505730159272994518544107505089673347600067610100521939792262228766320951531236907730628572996894754407889709672786648534330355326688142676284124331740189942673757185000363070399706583769086969946175667904840972278580897186950366893936229952272680410352516663331738454886347522388792984918589261070343888391916736701139774726003401044707196828692393955791722315497238839097072612853563852430813844801349410978127546143714303986849797836167600130981723885944813614604161998192659525456779577735415003779023987595198755342829889783025037357727217423359766782817232685271982491222052015151346014235693243200609583314605158227834977533023540394350515618051763637348942903309062677413779227931547694923852192091462945430788090846313744769145177656082335802988605806317368949832550746080032090707449798141515029270409270318405653619052781244862224879978058081882271159147601094275895429499835846030834482483834338891579422077009285631057055122794540838368420227451262761406628882897667131718461815507946226851497571986792962551786069379454098021066750081159384870561256171877036759553757244024364964467607193715983011885415318538337373952706263271918111416172059701666212462848579807098734754078678469651437847182294853910251332511503188337112336478758499906583976747285031742305840877660338485116915333803487616616931717749601349608868983818307812078094372950360341102908444076925895325518769374701420949779535788668565565392035898530451168693691100259429435813514297647570679141562078420605858585012096092940617110192838688494918252782485232155697556845627674213577869286428220510970239025797874599100038716909118422726344633921458332131902266307951882990614136252800870300077427381413642496917319534863115648873088478514017259109746695628702140160749256846511332015040002507331561434528236610503442138271724407120851627658262661915501084645136603943218229189771591458359604869544019162634872674940197800846962393824027769656998934500562572457423653874057751432894690874074451928808064779757688753280074951814056231791665395600109232596581627074601559318688060830976133451597809357399755019898218654415089646740502908344714174536618446081063050766112436707035685459688322051046302476928027461366860379370944995387925160998870373423804470220818669603248421344150708050486013103167165635057572037168335702938271105791157908651142286521066000286864854447789843369077179875127958123121935634667515796721454943722220600141249011284281254784103130371117423107078577073813145715204694528380107602414232430197135552391761427415317330113749216738614782579906555926585305096775150388996846075168907391558607376960711410114961774871154232826439218361687077713238490954874446969376382158386851554845033686872471166877631878082447067816402672265126438834588395406915516587893581240450646984489957916498151285909641933009178967924955326106650152044206875687875944048227328837467297254053644313112992985066872695601570965592876199692554307002467301819963442298643395627253971786965627239348793247959818200463205753775374044031116171470730311680564466729254271424598963937471978085048193271198872209594221758384991837644344329939891974850303943910930450289231742698479893270530412978133082531396560414253034006096144701751648928768266365130199818762467016499804533706782233365547892895925790603017166736350436944425807075221209218193329763146955742130326401428428844126130024612244791511769389649356957876093818559906563209830996218427466989167164386746024362975086841837779479376214978318447809440931001124619691496829640860096895770837133378980522270095042277223102519621927896311264942764146370309724408867445540891894450044150988195725099096428465781333673786371920162152876702285699268345333157992093691492748523282953397316584896125542793073598564111994446179888568593039916603581649296249973892588444204399170797916300502201974953990096696250406428417919564343127388543776334551646080162141394840038523176406608724843985934430657961869971133203507031532696449940284517754978435216831520984550644183786532842224156012151562855895459289220806432058825402802325490861018617688379909551412620723069242141678514391889106652193804075031280292309170218284700092972341281627213907225275941053478166826512083970185738210731318642045880841047165318827104348505510255730895467533613504942355778414413490268788987781835083868322400731505426418446691932770990579556882088188287055068894115325613508977519304626108412081665231483569728222785620195866445453585930033420190500407125693786112584869237535183912308043742030597936448541699893683968352119623920942435447632713887568683167517736425941548894642524591139507468250523000378216148692104481488420383412130167772457072545567329007220696146718269060167861736314707901079778441561431740560987091185259295365960136369479611884185254328462692956840976714106735056364533170279075055138037283650429834250332062674081339336088289518167062382466658212675406623204931293747590024962713280984397852320574127618952690795093513813340119413425047296059670810616735208287295854351765778424251330091593031263972267516280802585255694324333134867182944509350880732634660053117795452358880091051738633356441356165484884098033593389827099590304359140182371209745614937753965495730796522954947593078154687282171550039465093763124897019311039275320213433925988437118380550855256655582235646533993643493161378237261114511982039805005482385587585965239125408082859956875901730335049920324802268853326929888192917043060895718904977869398236210290446479854092464519699187658510749222386215637985272093640663591736433226967410216989366209024411157592206459885469370917562479289453111735072432736383314639718147992975146782502333379045122405923707775549686642077262364536908347918451487535855580073556544454559920411108805774626788704837885230427618075825658205716836127379910145915449732631231488771335044739557071523838978712751296370423306120280157681558575364673514898354016697856495869968871874744754901023573846131825560312619121131140222665403727130289636963806546473137372187499719531904919426450222107439065462265347923923654025562746082235136480225931218511725740370248555091408171445550782982850470279472751418729739979654510503867469093092557698843168680493357696881419674013438446437780858468855061088081546084474819094940983810919324447893042073369936498252094942953198393025944222886469041793211447491456583080326306655234351649276355027928074256667810801253412039045162345684032133241404837082344768903113132595071280633594835146569253263085450268801322786050167449816640453115259693958997182040299440046603250100536951872803522178127881599032864518354822994507610214795554669920681515737038709054766999726862069417274056447564607830438252716200620828530874815293238094155468974861470911811238007704591804581359301421657760539569868625983587978979805193253734839456860269940922479773939072365912050317998509059958364865245338409240643528068358105457733424409989172168440528752710754866105911757449968607860237132891205347219233699197361927246448361247328511893287016772102367319723508420633863485412327511529522555818842401060150386593269086080752682585871442147404637825116990026124285101033404151615235422119122497453781414218583040415080155533907236277326664839842930259434678834289703888787855711864851193631923259721868714255513708287392349123325939572096750193896919881850375255996194367220610286162253013672146692578270508829278393505876468290704890413694521222583156772334366961867948091584755582419163959206789411972563664842678043596335189652606154360993234704188041537283929362954395462857655288625266203046659518388063832981126202890598825592696292884849431739007751583427809237786827723202859763147512958145192322719873264580147192447559141861915763567894856382719755581617192292118974793981865852226446865116382431519129908789692043960353945930493547905012296869733483392812534873560857341280984705736599099256316101528965200807864642758508552751041720484917058741374740108278264093560150146378533532280918387746451768561766745437103422783862753398105800985930233545180253471071488094830459085122696716266658459294120570527669584393197562492126973178615326198582912463290732607864535753621412878795081784358571583935370333109304907940679491768355604351646800298551636419748215367970358225583001331339176562655223552150024309270594795688069486857268844585013275694098698121940631602949993215752337690063263481272628311199459854165375705906425966146264537522474329764955930696550208002567282347640090648171252801274030317305324942288610409625515120702902422764284075040320586242263984832136295515069326320547923250800721196321228188728629857688908652510080901716824992842772332644519259480164101782344693811642626697577377672228880133823913713642714524744906679439221216125797500804201985918779188652009215795236052495213998898228581898159801541486066835576172476682365173844893016463805938718351902858357899275527108868180992822702254582829688726594257417237805186147619720936977983022373936273912571829803582138138938513207291989401947550708090878551610340418178505777556281704310929079014934312929929096720639727615129227131414062623096283535542586321417521295677868113158582073316008699810269016876419653567599489666806941202196347816153474322126847876501007103666726322737413850130341086218502953360964398682433681418309140708713510997293546801952190591469467604474528749358068116132432469354635190820236890044255118631714191192805240348456345429876412952664029090089491251858814544730660163055352736301892521588576774003487872695770787946431649828690965143646849196392722409968069128755291398220490837303351016822936960825442260438167147090201869331030587103022696608400373844097369967833405728878846000332256737996756981512830938882597844782022118316937882990248887934494922084428257362778803072854014491786363478927198302045006068700587507900139208940047821094479770694888717830907611085880076473795058753760531851905540739945466024978044575489155059087130586647408589462985481162727766579292409831980159196201715900879841454602289470674750985831492905319851286931070511873496526755701383195623323568178272015133086693142162928606654318216209192770308826797513845314261551549826993941204763292257331933007767023118303819309113400519627985142550519609057971097234982911390644331605911412506759591862489572970329635226895520473691020386742719168399840025924252084440058797767454005944908764487444620629581890124793295501798617069517864452832596020139281694082233474568537789810856609933991764604775158269744123472081168301988520565641006754778378664171596918184016712363148337770112833906479596297940164555982263571294964317226784577222696564900064494077971925938862511251811337471796814594601460803215001054230336826699780609383935265932964076495648074510451362406516076290869534018931812160610689631533118048241122336589043009887504422619150777076999864387793520808080349849928204427077636094043936850803193368255818188921678003140355038376183012865952573831996357582308617886977983406157032222631470391052523204894348008893760451885810847955128409749350100307128257834891635692036268737780790175999383054226916939228223090010588531944927031442229622698058638233532677690870682974099793729750933937099189263868420246911486815452296402696364280117971655728412880723918702776378963017761144150582513195023774877948567334487365448519255680912280122228823878554681838084033157492195624183000918249711533682625564059574206269040707285525455521392071186331385211863875105220980558176052388624260958455799393042033586851943850278622398930603005257884145655908491525039783882928215242956945197958243435191964656064084871547270202048510497827364968400287035544020110789534005067259435958591229381345812936983881837134410570568057369076048133997274557041188757981893351036120745539618593353892431249315857815647558076562242354250219632021934218793964374347230060016420263478662344304027457975799130132605774269198425455050767037629619334524693408268922195221943876270438404591139495342701755397427937643920890801824588656518775605236326435246325912146893799224707021861730626723395264969703515950258660514912470252338577693750063295614694205084996771961012812253615933594820902045874043391077039737821498476998026658552347776075494152144031134170095535184628170786392954016521959548827830286848866618130002272077680246068508814310769620795410569354525787973007075168798145211908327919449343485339168062389411370110743155650859507494493317898501940167769012724210861977690476972357966803618514727714043161722975250607936676043906019807876189270410476310034561672894629046691353335268784995383103607923083937281325448603868616682603238064687124317896694599627226851485528574049164289192586641022210681507409001850192870676418724131291179685819490818978359145064357087391035209517209343458409069750560468979754646649837960513980622071757870892758116745844624635050780022581098686500891238602979664763382342506049426585422821593227187260441407526876744327463860134780477810597056018837949651004305164828128056963233964948286193070244017674198046692972387918985352450573868912283470884695343532330496170672630063559527201484989884476096596670062835229559679360908105279436821154223277145937527798414052798843614471367647380623167475746179916050853481671616305281822981880274895913507354318363490950085191579989778101241478426656871740487099223575713357243964132105991979760333377182570019093895110243067673131080187922429139614320950163968775006061452898130085053136947946350258819842171070594755460987196322479258105127530002467982316985379513019042434249016481812794914890012319533803164974340775720167871760182670463779953663524370758291093582077024251853104882123929029102068178395522869516363520870053731521210570210058150190572265472734328441214083571983408618892736500716723438653308394666075660503950512409530341083681724842116697409158020148446201746135318698795868952899869247973973062359482707019974380214834877472289522578334706719553984095418553852938730431247990983453307803373017262147990963427573380890543203053986181533217017370343795072284847924480378763746166761394103479193004132396764285642558715622598253548760514090442436856198519199221594780581318898650287660771405852790337216692112322387953685105155438587566219272095808320154040232734817655632973874221601499313748629653668019707395320771981186275636355656446862843243030957783268258092516316925988964613530141828528699554738750231082017995057808797871332550029339118797879404374129850685379492466708752497633872578765623663788891150377258050200285486318997490870600665703023219261325089913178669217091613444200574177829566472011425692893318917944655504436560980005621219505494251720865704835587284123599637518550797939012117746384715124429525709927617284940893475522413586005115661751875949292416254402045027032367488128286762820509061043128915675384082786709040248501534628020920283169600894107294353662165426819826771941333359720366367031710279295909884710154947668094618189733678638029034194945274819274205170786730635105487347324824492312407630427751654426151580223613445772658827930260226147486593191866388883310944464392866670301591656001629675606448999030955801993721368327343242071778295377516033266234823194001771207153381908514083762906188473476384358004606498523453866907241492204439800192881357319728790871805162308037739465631043532487460107950637751273234299950443460832257950826118675494566629963650561190794186460259868311874770754304668742234408678904262355450452684354890822238926464611251849026545600402693786803122832908982317080552261191718485386747453764619377833465231264058734286409458294471515815130609705126723466946294245870147865462553396025817270127365231312103265145299238636039463491472320030701924730469007931841599914468997853790098156297560310847391482569098822009366016074926824928726613513905079959744290989619239498343986660146610608337374617198942770803929918689083182754187368505376072843273136305383922637865823096741880971864432341416449435370717191238205384106646435915454829669868442570905712006287639802977731581292054801651388203505966004669030937968161062380530858381568334826725787827009524310466913898432172458543297725599119152568812385629354470715692486850550974856754277558859022475882578834546565363950064953028066244992081135243855059920023521393833983200884802002931450540989114776020640066322435666950178491690358112264044883709967412822896443503259263699627666631275174922428116275410842845234632216351530287815048416835347730894830572570163388426602009110070001701506929734335124667367297212956359126152822540885796500869161942118006249308820857722051999728234271071471927404513678894253163905979255006212651556972343116398016463718004434347776410878241411232533988108088291866114621893678568272640709952007315826655174481352876505393721741522557778898773210075973219337549716798654252280609641721738998312391109804360339414262413619996142679576547294250018779392358154543463276821617601818827782826258828668379073235439081680067949735006067513729040362327813568369859900565406246562460451284181216477061128701676751345632827753366803556296826671640524529671710651316292245077704985970022093515669889807003371978091437065048681168149098879784223575216558163837450838457774573390447096343260385321908086253371376266197422001601639423898173632620160327055615973135072894906498503071557181910026208007486367165039504063690186765487398364798987657233389065716879870877517941829726186823050029230328048278079450441003318516591982003880984633639730544577675666778294061299786667160232094089706058503078164888855358158329580767244726524832165263635183443619925484585821767871407086328357648104042822913562452482387474074699543481936116388198287895985862544945887138701790254524688377607886515707575086816468881649944883116720370713270745306081849436059945561492040268297112063562596552018851975086506672200978545773401706253720290289847097051603315052082539861157759520432706144574557311544717346138973353041098522279486650698905802953349786303825394803173674252223879884962963661147565305931713435398774069283738303310196986774124110019550699453405383801414279217189020393348037966913968199911467715740235161313000967917206025402570493865088546174194579602830885885174687508610292880120976927868464766808758925721205284000147696733485357997828055544127918735892698960829279964848912864640278118018199136053265543931358203446635308019350671712946080335312673622654124086593258338368010837620832806729323750049883346728659524690576656773597834228532386991846538890771171817670270790847442245106151245166589784127644126389043350311830698933478594958152270431745605572150743620787214466099170515003869744371939551883944220520123341554826865310066264947053961595904235445503072734739427573153345090960470269501530636689713326787062079936989876382259781404994145451323364715453798199855938712826336774702292429472217237736471253394161550431605892854767209816096108322968920486101771059353916390869671554041229313741701235854296092552841804985690254702844190175205693471486203768077787697925047816875135419495259788634953553869187644066311269022189419160813896048411962821897373620734997993849269424849330889044705408602035442150185447343278564650094420428102803295894196674668567806280041397974268592443242062443178326029377509251144181149827093096815277702497766983293549430676643768096320133300827852083873879286613574181965560562238074643618643867612074754485244853484809046984416967777616889740665443992615230261949372719457629974713316358402262196133148492589787016394232171982009094199511626705771811732276509372172929629172012990532879447300775736253857240057664344803060102154695178180285609094710627723665252993521726097600953164365644725497328630183678764070346662793990097663120504043233869524514008649729209781624478066600698634384432643116348287384347490878500546806791764028104845424800614211522736316906828459725843137686342499991120961420146851630290864614159021380143282157395897732987232555657352284181586961539781307637303407471777012795873290385080488780665133083622499386431211936089871744219307282654802083864287099437627312494464705545742826675153933619445646514926366079396814617189430093800040562471179079017421748332733046624934056917973837766384874339128074206454636537844067347195863109287515330512885436451499891904719081477512458509214643489679919216432281041571416104892450021437720640757213726714367370973854191748679253364709646801907322356103065394544781844338794392742194271201149761121146296966086031679526715095409153855232794607087412087263510756528999159132947242719269777616491701350681250130628477443198942868503632863634171415428299313514550727987667853514857035510022770094144692788602207919335970516202199237695684390090990862777602411348086791506239436863446453917440356379289322571444770271282203933946981632306307976922867274167331416052633216299206421735287940612615190056780035119156317604857544421865263373285788175018607868488324460658206459511402213393629467776249170781641258556989555286922923636241915024332412540370051060419740534023011367828458575882354239805519739054814764444890332080841353912005433969208948180144437290926588184436060458565232166283162927310893912758343307154297648999432410839183638229254317834058796490961533778874239199963179348634580375947044943283802128016470820623276740782672239258563016412256956146153102367992990532414757202692225296898788211885347911757574103461811102685225771911094838770652568114140726937851049235236628092597259628690014790068180701901155163964029903524590156094431053743344670656477236200013498371273733322516377822041319056577005813145171231931600926296662324710941550607384543207381203017319679144342976194467557526462164420642451206796605412386180390441997246882217614050588717852342494264516758972888015050520348959014677781227449656593279593092049683566702695708018535906557435720453111108410116364782117215592121728000586471408239499701913272601168026142852488427521305618472517569798781286331717859674197603055022344959919517283423419495694452562907145693614631448871701297358540215026318874392296303973510962745087533056120256142929094514567936445550186762417325565256565369564657438927422744413386692417771611491573067441034548065972477590618305938669130476866102128681363791094913430555771807432440640793469065685200155737009692558019422503191300726399350219480355705167345447886168732518340305373715814338784870356797001971090974735393631505942515001681873082053857093823528501828157863089085621521194287102437572986360237176319954034449770774464772607892155783642492175366006817209677626398660542401829076411103455521725913704254158677228499701820392265177573673711794810812615556250626354545607235573507218869525341386310772721009989051124951929037275443511152422574422608133671598026433548366623654724629937207195992575733884211251086368478389292003745154248425520152717667542549828229914273292909567632383226730389519575605353640794101086733373362036908285354195440406807286502432644346953476234036810942197108848036985314817531317755044342079507730434471675934894078099094061882298894595528399795081999615111332545165732598295103406184407262741816482390996992406153992025524879462592136759077788938413427541172271074988464232925282885450448290559746876133079652841226727146963222343069380043013016467673878390874023290763578642821967075447890790218850528989563992700805670540031699875239321773736055094237401349397602580015683866127729438506172063070911751249966115337381650871440957518479659011163846585758988731831799934405597277575808124338450247707619486911084772987080049463728482996935568880395281313801246679844045449898322175046618077325277003110883159558414352268447812607496059813309264236571153652989666419870689012287702785437767176420640052984128854695801629812680860822187655998600642583590379315066663908452398955336174275528928975653193463378255359743039595253192160826595208890821341821716596144027805587601169154923293638203609174986744921622339326334778084925496897394839947842531300149488683071715076389654419947785171219674946451841709336170928039722048492672820338070386559080320729842742819110197730300166399243395865724249037005946954601692869099229249505261808196634836273524192753865526242764186692696039740279693054653959045707253066986846312646330129510229107444967213659998189668511682071372113740267400905903011602994294040516138303659791497253911643909168098091990251177634352899810857566171573273467070045952468183040273447904164826319075746689494108838882193537923213878630382847674791982837234799994096715050589967862954676752459823326881807771752186057408574058586451632213272839652747278721760593253840047744484664785374315093506051061556131872211628095521236432158071980805432452252391023239255741731900196228191818705980951162611421383421548265920144394100909476495758806525921393314643775644448441381362238715461179120790380212933450844720376908658225539915024554933777074990327216482029358010688307398602052046990523911589980120278817219433449073165599614246692531061217350788648915587082805550306645658569745988146527497989636710800409652377211954370306731340071730402205638262422708654301291142526844677324914030313299754828293291522054657035233216524595787860178555718173041230183852306607924990392654117658309848516529114362383832248315126853385885166700688513683621179962676979276899887125766424600845385805269654227670251932708079954558301939694528187279006555220531257938644578858214918629707590318363065737576848439414010530318344712113724208206167004958325618682523934198603871863715205712355038889309159178036573414056165645160417172850727832094263872280807857543216165418600515101821879627899039302669863267916881233973554528085926630306175644716041736826480286856710268506265713391074627098792528752651991962023710597127018528190420075972333984046461548758559012273358519349105985824884339589258953461715742030401654561020111257968156273089287839260100763089278039417349272480375838233207826861082782566253398795461565320197698924854130426667279059007445857424607937712000522497784181840382298165453463805236693882405230799691425167574301552995404902315749653098441940552662003368675966219592797728212404480653199594509564536143904900069419696283272453567471953897491817812726216171139891201734727306705245608538085625169481085408505240814284554004831649191070599333972188668531174769650584197683591950125052578422039276672134113423994065508533874389201045957237918544229265096374051083097389738831120147070321067120497160761276464522259985036203994688158607910484654652685832682582059985241269849576108920269898358102441311575560520623904040457966461895764675189130186661803224998242937227385415872615511474448592706056451519558929029343657931099507204673430203856635800786448153220809760332433085589728443180496038934587708838681698074926513810796146384107044393523660887252297476592621868037823722384316267881484248328819607337786509159002454854833048715220302076179633817353022099714430056073342328748254324359875442045331457447018788409518241397129595864486178832465157391979354311804045016305578721207181179212250143946212273849685284538928289795633113261989163503350621604600582854034868871691941143985900144521760900354690986504161521477679842870498864937326885662185930123775309690827885152005548972548922105326226261740641544388024208036044586473899206440848208970564009694191730346715657510396397599745183353504802695595058225784030258614830172420428933012171670587337649802215105172649196697141899427257391685646578764241790836406722962913686065948981509810076579017592460178946787543209806133945140873573282808572559392006719872559713781873365274425158152219187071681739844089334092860893409174449037686979240264642823300352366879147475807433416297329063144401276123200995319895080725685631257862794931288188628337019959044243698835345659164478471365755617473450650588760760006159742991908298494570775922637455001641648369522095123555830390660176268078896651144139138246594211344507423765515406455360265468516476688389532019555160034511512232010551387822952270910474916656442148806271666666050700544973235586165799426726045033277837667937250012273265502263049678373953253411449117993320683176650352633449739401724914656586049372851554370814919028699820437520178893516555682477656810939903432232369946112801377972537197699359568880986772404737129909851226729148096680325344742495709673154271156082115015873294313053589538743370066880048050691503599121630492901940803749756447895075759378738977499772898554141770686544012276547188048349870036720347257462406852440838811226557510427542749950545223833598898834317889562935684951408194904665182963606884240541332245597381126640100748826252940445119731179740332761151975424771181862725003225439514458863954861213283532332909973033807700909609343177956751748399875393723544515991622663669154319767484030391380274906103756357666457201882337090148401794368723335602849001219811076641569827526480308788828219951399587144827022548533534231462416124079495260597228865682543134022034464760617787584941396181085162526134962726776081833477270358479661494499347196929938690788599853503110100193171443713506217673860041288566381631587230761955597661889003990334766076480591755542221892188461089086386899903741954788622744060399845002482981809128919747139315826530194391620267888381200371047752337847389660906841703821962168337379108260745387950187661786060634808383137215578138963724032240991145615839380149270906299465721498467616174505960349216367873726907678664366824878931913109577799633753448192819373503799914355423231348152072622319169814571975528104378384119333684882904270717120336007670324460898785269999545810397621793204904037431745761470157867997809266869934861753076519322012551236082344781740121336719600839209017787363971055966911760742242111801728989176229478157946994501532450673551288942135244387208516289713956135169814341457987684011494920523441771842556876691633484408021850144270736720952754740960552607683475524430024175972285412151799065156593258049374932201340571331243264374688426332257716040685726314688467056917010432790165302802199103158940578621863448661523614933574048807237617664515782169404484888789309678347026029440604648057266335312128253437972084667209448013408649540945954633255593527772350010966374296372261472105458018682821072573160509791771433058498581478361155024835524256653911679434358314141297758303252180921624399963668884765261660881120588737529790440440316072150815411262058502521196625540568861619077612607643021943206175673210230093230374013993911711288486497971032441173079153064463397907404100151202103929818127743272634591011614726934407387586570608892644086700728263272512750432983231477039816657464849857847466221068789657978005610834233477903289624211346777216113286997789123206694331432249895219088795194785219990883173883520998174368045561663802828969528545210401311768038410807610935506955302322314442487611621543065739060856392435330419163969352150052874475669897772220760655569484898026554373332457207805350703060774550414262816282731513385298389859437894414196685869350498615198357463355696188556731709992699584798032194318703151704988056618544736790177707061256253126666216064083090870701428690812158665647472945608296096854379881911147081825574183285357988944884209623019318803541017051198036588589539235805465996675576790701739214599320351486877908610211763532745985494796555694519925240929061281540509618263945346975039310795555857461507362634290464694667583862162075825502290526875590492951277273364835509377051793484338107913302765938803027453665697054740701656833111965373402135027618465019484993112327826464925018934182492690712764300511355985186975945133867483822039105259929118558792291404873016201127692821220371311430557588404607727977506771284980885933753466146227176987822708596852935701451779614118614560453192290912840127784712781884509551445850725782887367380668068327217745268424963360683478990589701694357917770804606924434228507467151221965919357644905977682439331949953758208905078129305956915617167797025399868645996806577879849897634108412588138004786735633579230164579626057847606931205031137484704775084398272411370873443407210644394334362181184088025296907435029550223423098719929335351502237563086470111141353869676574288187238113414530850036202604098627689968756053709046667368863074668048542231438597110606036775835960629623492684268713693394531127115556813928361100851286671356131968487056858543413077861911093236015337200484987652409365969968540779510936035191926395474600445259278365633077490291847820964526860286997515887016119253530036948995966238109996917090133254356941732000508059838288097513832904867880593030369606102124420873606493751106737903960674868197933491735386615058964231897758235224405221941611755347757072034534782152446629879730736338937766755071877950970781067800067935473445166628077891180027391613263799281816134325484115367307031259862719543388069325303129073863389551410278031804144578971778304499382630675011580822036535591801753897645309601760308396618619592832187821533801975937778911753545789948245371564899695666844356129292286217359407083326846424891354018177798208742822247701371505380157816443042267193618330151974806666275860447808765095011529189934090878231031676289238030100101823398047256844232485940359174143126459919989337148369063552341035156136787404017536020767899682247551668961379774918386566338671907357998017910282326107866233480324888265753666593512705738433876815209898923333960228148099120805848885800339085594476311638327032150691523938759503781121446887527028094955618600011353284922967875702786104003124520766350117451342091331191651843618609150410113538192599310385148249147392836878167903183077089376292213856859677233046771036223419266536959389880883724946009402096585905752160541055901472206334311775766787852547000351424690421852960002046406586322887082477886283665682496778933864929526118931696724354208166875489457626539277525713403042513719931662297500335239049976827840995654155906268722228238018029109341957406318610698064453612041538935072468026862223913732858270442184251803987004356930039569413616115548602757930186532550143914658733588372980086299543194199460523604838745310943875205483172235718607992365932006558436664698774633618204427655844829133914180757994049535141927071173097069717833192041649059378111819603093149560560831242339043988021589050654172506072980664296773774435296012440828385513696864586781767498964591108816202570614857476492560699089363025221930342064113045845651840673748953814737726512420455618562462796569733841783188966216204181365411152665519650244052108808687630106310742753471899985356545179980731141956104866727684759290265071693230878929996771390573190512212845540640993698030982535310803654253695497916302975208002500582745008129700982630997268490587430886096362962766663402173131213665782742189627410298608877956679278219639312516801814598600710311310877684545766175263495577278227975041804131520189196035587480107683293044430423939985428664441033557984504968507336922692506155408691068849303775073612759476566885061942262525038997139687912798685259209040714327647645061419303090492923331859996239191779210673557389465582758309585396130519207667328177277058398393518935829491421140226045518031425338681385880605248928818381262800396822175388779147426244624907234711694952755916712095685014873220075065826563221851682666131271747295331641888025576402369791014550703862436556499595900747458889881135783085281192306798823059899752191425407192909706265300497402993097307374099503256495581511556137522025366609468532070483328121146845798419053777353193789460051010814049124252468142157046743346237231805540551149574177921129008055334256582268593548455601914795179356989191959112468727634163396762927411603978933261113555311853731011522763689223826927234807072870488915756520797656559690453610726927088544334743579093994958418973326629757945933555857597247406326568900030191881700034907385431187777937303720814446813069977229927726303000700096125785154918778455553865897520001731248130831107984938705412019991344517412242870016961977695946088262501889479313858518155102208507300877080744974193081969228836447915059629519100379245907707982210661669678203163202937657571372187138928926940556853606781247733066576496959796272984370021444492724844511679343219850908251432417892132361062811883234746858159828454178892494210105293841250027292560472757760631582827667433450719261081765111518552017190730412231542314106327831604242634455834217123979988588087415563491716252157847344959834369935483132314580491207692213075274692435783448916306783526948643789379968841823702137800430502984676685591185597559054107082286156261080444642350922947952433503529227194832768685725327095065011502255136162951275934452756688299193046770747365002588299330047588053428546483984723964883491841189418993390589072714044572707605012701257413815311907327326038698526761363707791292415737506880996418282525282470642895323246226795890885860310358941058810855850846580336051070566541034938091687610719010697729224158312121343970813748004840492713033265379420144617565573509384062019814686325768050409035962380110708858628457993417415481887622869205654703962937733212168918865671223006495804440977304795332132276022046135983066741834170380507058154976737386607090247594627419487149427437086594282042270416740708555504462660223864245024539667214343732020347642081076626838422021801722389345964584162811528004992135638353722105776908624114077465243089932409854063748032733262658241432995772062122799419208751797279859229480593026031614140316043117166278376047048639037120185260492754723113645223244110946641528063246043856521605701063400032337777900732577582097933890179042433053303319385725313196703616233940355437129937002685470091567274214310435036917146721089522752528191676505231040824241609515733938030971073727686026868810900887947418523862392291496851031754323899305512800610472809638418721942578439080226984583421762495603097906752400384156214615457732501126783971749501341866968414217036379640676382754656962867782753743729735905229005609440986889028563361129588738528501120235733258458248500315773697018912650172533552867606880333297603638064173967185912662219528050757953920667829992815044810016298244321380004935679488343459953567514117879872676060740188114789141726404320324305923350035845205729503212282058145238794106656125626055682227198560284946546254947822555491723677694816321411425083472743485845566711991790459273059406963948049395994791417910538054634486152915461612143667889440900314464200673514800746025297505288039764040585713195723388501308893551748524400060893569761774142422654839981668087616996893325973202991014790542342737233770135549202966609633039255306724596134247720865581980442917976453000566411291219905379076599124025433076787871914884731384834285011424550674366372594597298816728439709598992198296069465848897807378667142933073474733638277553495481341908836786460718983612727349964343340670353672011071898971336561045745034011993734651674450390005233321377481233191047314051681619893926524611504707026603059723506114617899354028468860811004554458574431487766126260814100584243852124646772118194191656793681348968694204224302597543866000064330235972872946126363603362119174135882815857881689655529583826848184533702507049597813621384892210376924325371910973204098356491644015535385768721977228270377454795973893857217618042129087260554612720996000024987391159019982650913473551111589999406399523491766309487651098988828469605389299282343359383890338128947970031964827388079850496726681937703138105911453631517406296422075429245999836660756247158653779602893305351567359766730772169825654037096578673751004295621799005050773486172194613051001512123796769743772288314599885196952064913238273949820689744321950112949024027195356505691440899420808677141136312311833217972099529042518413939422841176978599216298556687424024302412997889065739959273005349446893094518052068502410618547358493929118808260762715419607938250716769631869185107651944008220083932437244569678445464760593434338434241869577876166163181661658057210504377974805366764272478828138675840157996963307500967372560610528331433408798016545115485949048051121532920886575923639290957318274646662301774030919936900973284534427030041975940303391967780632065355334890736844671324093269777023904985221844440968089702559911044775053828972092443356083105252089407785256455388667083302710965300980083158967436059562075199524913711611984049892112570393047262806958132722653599224326380352841599022772282108239750460658972698402695378587347967512949319035054312795687481426916308220636180316453675524316013507666047641479373607840128769322948700692522860059573143709431734496070084583870063142675275765346576509595822335211605797422462815806718825724338552669629274028314186323129193070549492226971045611030539770824320371456252416299458970795947732698892286699592394284391637390398556776589763765110212035164723769697751655798370042816714594913451742775072549353565831819431577648510621233544981995409230617799318518566771561863787321774185753617726824789547500048512924925120139314215149683776666341603043547859630291935175731527346468108692003050912193947201303593176211918151807654231235621568051116823336856336557586498336329366414940094728861715825035912847949600752417088907610469003907580339545749778113394829592226205455235043321025392373902952131289210830643680815016307404401958016222703840637440238583341874532077588470488905175015939875587065658088018278201420032432754926723661648278566489332119258468099139886666031790763264063675550445062191147997038555978035778210970129394334090103640440420023704098457088160133065591820808565269490014771621589489475519994580860053688962837486701894691154315375028773509251644034388534367681799337340810010046063076710178951639469694440019613276336118780506579929876804694344257280060146043979887196826185862327085812282950376761717257460720229907995062017047541958804918844534919189909113903201110747232071770744036913643034107154690768824048389984974925558634122274280150289174916183389185803176865747603376574344660580312720267200163514806815617667317108798155148335131499513033776621335814421154091344728687988650845684693869256635217923505899229551453681022192800066103927211759929691837617021720782875726689292632006309727608378230119246775828660308246443897110563057241105014474751804130691200293631336124753053334700788070060928843372369809274578709464404543791122715745666633011566572543092750496985827561026921561589799873361747219178392624531316171104868585867982222758718740514582039783630617194834603837295899161523564319407689122023417161919314173762941353895026995954934627681380515765820244669561385495753200952028520085521426149998880183351009341787325217553779582147008911020154403997789709754394455826710161743215479422614028837378035227888737474298419163318183518735607796881746396190768237110032014740338067218801679156851458886602523097159959104186335741153831357817145575352555306305891232414988282808970155372115470267591484934597998931478838320703586152657117128987606581892626238086160889773396841341375313415325340165905995387990226902820693136189380504932776233150054068764696213536310526619772670538799775020280076346896671847240378894740198988152050038630399539180915837888010908836652314118100670004306278092570468943141308792613615009501929459200684843612784993434123909234154920577839451143350052834725070348239069331740730915006156270312744715643228325478576404569475848757403607606749797687676117663206009732613309325407575902161966795581726728506602943402845176541350985843236795438995627532590944453847807363904734091988514315833784118475264352875647398995348446267265906603995236968826141324093089656376519064787116662211187942531191484196990220422644530342824563453127076469409973684805290013593764285850416739379176737737348637898438843152398632042699922947968917151766475945244041426638992251149418119875520876055865709952968285936912333643616882218891827730168074764684424164457723292637899041286247121579593718318484572063856928327690996213627063620885272416381414691206189275511342430965398725438996196880599451557313312949167996377097942847215955339722430138244108448362081489118306006576171268349317904494827165984106330687300291733707647495460537347649747860562377069476558995828270458888772896811163086591769632557944101748286696566748015939630760067438355059700786511694605730496299735586318556590200255641248535468829870469951112036651704108419068943828877476913586179844122666131824306140810908596620844985487795903597871111769160201208999269197724780786605903185688336675166768643449605369053101550846767591706901824902326739471365168042693004641548466217637620764631371077443352223186652587754031122377055639935923975564406650163444463823392575761627827402010382552488581855707418258686140120014801451294383776535950048082459723147334140593621585099549230195243007683346973637052993678705121341105764634550594142670447245234300037197442636294070730716293692937974295452770767507483620307588217790336039699430396558230541583496322812276187407942896744667179951943722396026827546360547874244083415959839201307195175697414346700295373879544733161504703479807418776424813162290932093846771973904336430401776523615973130920139944072788195159525444450866213792024295921944634022240397597683656860000667307390373797036792609843687358199811653060586585878396576547505846956244289062310132349744355045052980425934244760477122842104718027042751152859772608508539775472668701720602398336449234979676536729504538490331978417364230608245003610830831917189069577771786422908725310417475946419948731734616131851726664219988536235674920071058051949292089607600441950213209108506362888163793982910486028240512444458599669003660852272802405921283202461247419506760631725171421766682431085714528359087678223864597284223471807462466447747102518709402042658616306958963976477866791443924252544132916819504952489880211589044594174711711956490328621811175197823312759325536111591581120188595935472380084625860911931610707650284128142850880193691086227744091099110368225060702599403008345087467822239208815233569129883811481734275972549454325344658090436813092985060186330139741488141533540474631654031643892069956764561210344342009953619914067280481694687627099966468120790254834026947003878738678993421294896735183599372532550762568857585961228932429418255495881234828571934276114514153837217277944778677573772940349505856453736302173072519507994633940335241569863496775193849978753202804239149869892994618505451113259234892418602386544104366527301052363998604094593116023122763227901354624590756666149641201993797347927116491342495194634545767912135142569805735027706205128534420708674276111390449474799912967669913020625672831699376285007959307395024115259676954311814504211946132103418733728830740641242145727980333616903999890903677248438380447191771444392956914207911847341233079292572471296510738482957508321619050117172820406005419118131912658521154392169769096465258250233624300592563208505115372387699241123823405401296109931570601189325051724435913952366749477796865350143520097339463295714364870550821463571352074378455355758331434489737317536384021035368125932508473098281396780721237896831898336264671030313363186527503369971953412799779770818426685856365314763558685972704390705685230774523972707968498520137225550685429015283740896349894336988264379770420657041744237743585341381592320828752933944878152321134944764687171316039602225106401442635545988549161230409586186747925636676926819839441412150360977686614146075606364832170556815324629134826969414890841637806793469480871120463895625968419230579937823973653223125872512314431235803318327653468129201681757198888903927449418189714356257960024724900885608038691379214655050026916603594638715219387271563368249062919039751878288360538461316105374756127696896501342312328459901544728903839057901538630197734794848754295335939269216402612454740009181909887382741808852924979929426743399956406915112933358539516495293780224632060547540146471139062823856557518939316328846366302906324808640563563704608809113184328548234333467287611910424676060381907362351050578745744336102903545061730591817198377742149260030198741915160973467303665689347084239104100414215569204968785005085468818313111176758787660755271359262753149696479282349752074389197237183949622594176393575623274521722256833024725105767118818170538492273902333168108560213664763950491026346370154065991531512065730152585257892952896102385800455821682661746125759859508688474716719232386357450133796382292524310110360993794443413557772721087827517401548435262443373620599505453272384199623725641465383715991075636053765180433764159821764177518801938266624711114887882013344467776296703257142228201629663987921996306457513166783991322436359532201629306716862141563604294968792925428477402699769797123248975754327673607301238023535218323345538243271022557100953079288470920546256482202785001666442066504014329493045595688604637118070468161372556397681101317411870954587164185878914826778127166520909014406077754930900031293025423506124780618703024755043232387922939394290351329785398067204063537806982917518479210958555296298746945329720740697624655215386971244818937752733845728505528990428550240764265940110142663831241009630072553445089979607868011625036121614076170081120275757180187319730417704977135784721799012379834051529076348303133623119800649401322980389084029749697345318279074479791361137522227980061486449958911552372278572678031383682364742486457310581707253603123841124212877564426671525852701687009036754943586689962567705618832481533123273813229548560443440280464713145285710788293449017490337655992275045464861671366129703372209679342574172797879476485989938993936171224203411863253568331655007514290918867857693894266943818208048186142354356915769523584766434903280512699580883746378691995094820384500810642364977789642288427462493350004393696376744127761232324388072988869272725007067956428333772520592600755301971922784696344686425339899891927150229590959935931062368550308729089104422882236600755548984174437903786245978712866539080726306816318074955461039265128135753226860447631266350439498040677446437294505909704877238694841172259201647431031089037684106424668580165382139344973746293161756620118971859281607018310069251161349145989134224514149156073805530833768966275545147121802384960115567743116811555843183263231555583837374042523239698934095271498233533882169688645227348205724941253379191875605812399395277264586614905283697660940066612311103437972320508995079405432697484921895216938696553074993518656804461279381239952817907498350103459429831541370175633110221233608711763723774953950844526007655671374205800254632766356925992268131647450425144847389219324983108517867089589665401927862422340558640713722500773218371908167140736193888882098409629055860863628082468262607820844062815410281446662649393203184973707344581102994783606047583698795383618130954861275991211117476914932072330181652958912033612836944192478202317783819043508165143480307258321851571290153658889116318657142996346498890122100637044456526481425631519366717848888396230393141196004959179536940875941215591934465286806054846145470896823873120237457313133385415158786733670588991233988388556328801576356839919820979689973113369813191268294394332446405427625917209930646591226642740979520042123777143677185509598262986528616860559127133094672519306597634075115938560980646389277308197295664525059427401398513318495484657803624881111130660666855874664828331800925682718253705819462238302627014095188410185176083084542427285699833204316842819046529955946503173119122994499661024931323627134247537446214595067203787117934203036341825256493911291187057060131666434050249757494092310266113057033281389476362714634522743584918441076131757918917085313555071683112814576488176232283973490201125291060394315412587544990558031090966259286768542753912702367412966674876331417225866316392325235173373795110434209275295422119229896613747956537781216740822999743563445164801660546630122020431607041313944965059051112485849207796354969792141031203518694232344196678735907487821050326547848734377443107011692732378956712665539918477438296649238879010710132251326718218010335414009327396097278776656563765818683859643311244557230564894728175015833253994673474729799839856300397101688462041821227469773129335985982517075927029969569236031104477359354696425748034214568917419457120609302789475680139424730521858940589716556241837872926075683045003655481219333766471233902110781158480670365337275079482925955835746607733413303037143073443640995284784391608945788094322859017404689421083899842746017554495772271653989418473123690268513388100225647129840943994578672417639296310690190246120576364536181721856458965862582380657471275548159297046189875680824226518863694113188535829854929007318426231887313819890256250904299127550915137527906169552295941755653125385439178837285827364860195466746598651187194291131881707846946051015281247662037449739264760085811553834335184882541101633750776373588852029703912474377750125036530812971926190004358911363831406606146537310078569242804160479885061709167007272244991506543472204693751599593914859842123677770751263135287378626222768518152073111731807715848510023421767937113001764059373756481932409040111498653975450992454118349535240374426628343228469413716478804136640520341803207444387810557043895151505636189272772917599218661949636491681635038482875013103069424798964415576980371636191692595413896611247035398685971122995861205987986612258225653106798061404991229679687876261504599730161839354653386709343210098287521641865878128872560315251879103119028402860022376401296337320188154646390400375436208941139064047946915993847206879094385274470107853649706170681909702753739197517629288672685419535069361951058977201174886389320543636737226183056888905850090935475172360985891724445742762372538695977839022296138438261939740846011637074842221728471309104874023358270467415709428764849019176264643936624564950934569736365815831201947301237663993391315845661699340555443279850719429960987142762751622348089399216656543753064511107957324879810194006242405909663062932935079877607249665865447458414288738077611810266042074296987592418797373284157440039063376221405701849101401582206428969470048952320560925453738119897183085380962713219612599665377055423314049341529069708180913087851759584108103033720608074783621162485319369817426558793826296444095750802152437294485758409303193392142334005126890249639819483476724339778978949496194648183158402521915984677777908360924362162696625623389508079474351431766977466910116536570730811041686329719194421414742850995070158110598794660176174261703544846522570001054338943488745788217092934610352938645426323695882119068330630605592063823307583802931433435025983475717508847873397143203826390635791979911308566217403225856400844032001761619748730858565975753194859366900033948540525694627411166645129838734834952843100500941280293721505968581549288491215234795087237048286716600110254120025412628490002107294601319858917993157617869166860320541609393077451973004683283582489277059199954291178562776840487459922230623696087156351110383760712086543333098600649987131913772408798011660167987056292914106265108633919654839617342902003624862535831986643290957189277696060612040455406367300977627989042899750403363578015642281748415807527018124408994806187120036603255934007875158445414700153356212866862425823149051381381206795402640398305813781801847790369841632053474595876638910619490930323349539176380178643233904842528649927837292490174993545130764349626328474478367016006178388920188234586842592339648746483838788886211631862680003530550217239585471041796429721029043939299388246139735913629210929404111562080221912435389457896508175720066395902214043356449277965266458476378869510836149014032067975292334724418527361036487865391806157067804072647740983457621711897162233302733449800209194000748861378148864262533243219578911648513043184515696272623342057839335091054444394505278255523940120512438437825951836685524570405107065604419109650124970257451667129739596898139589677992502151712104578102086808129821393573534880554139995092642452056517914941422686142774768463084241539641495314518096059262877511166843029674057109767774865833080577848531118276356668629108158854816409514143643320619250215704911075155073462204093229785116901506866335460245832042354777567321132894703415499501564498408126778711136626336584041395103708458503385720474312256029648355311693642783241004529583106048686661208909432154984767889757067055414894579270025241938311283344097993892072411986676955322703399445260708204028109560025806270967385756126356565183237691604818136460474836166927470049112145101590403403703615790998984357638400520833292528724567782848858017489977124308975578394254075243432008460020940679807472224074025798428315897113555868051076601501244227389427782458201208312976525850329076154654331333662166022382772418173201860707929940552576567817452207560818614240639901641434751953217640476378815693090743222513097915912999978873197310279024294360916112272770104839282618158250717177008522844084476529104361378480369591289298328456789424555211254202904669311490754006863953883946809863670931524294147011730745641106171904504991555384832915449112475387704760841186238691758550666760665740266024592087141443386919000364071675765242907695344408911295117586083227180404322407335915143410962931054642998077666105866055494675181067603812415416249716943380150367466352995337174731294931484094413717540597578987705168053683185235068008685952081727449812040261827112116160119682681445572101953142307296680188443130699774730805781826174371549222465927508258689972225857256155469417338198651520733952614165685731040562283210452657313181176351000362962536992532837348384260018474500071550153053329532226272326843850298628665510211064992208029242892899319822964576073529910816710835831588124434195195660254347565485218893556406537275764248622008907383106543928530770706328329984890061878544764360518405616649277688549315389523666260885524160527663141082726457616116454489469405638777269564136282283838834374203953402070988402983713914047205114281064544761525952094909498930594116623627114288392380769464415398434315571411750630391640284630528996513202251825395491500614783885706125672892768960330163857224837754299457818826995799428816182504790230966190478877767036892823879226824876182446119082493870914377495549837391070378664034031968775910958899684538079441363176503219314424971731926655837453900900971249041454352065209474466129359653104078801778982048384810308563936376316797717082197327790050385625204883827259311855108750432663950698677183869296764430435794990850775618437180284103505274655875393486991668135638342193254666047005934283440888672342913264959122963102868570310837903157346680726715962829399583804031265769591589949360462679738653312677775324311614316126500907708323424177555808391180070028338114168688305634745659519354351661394062210051908533551815712110111686893792361928640500171744116061666190087825526614285222587222077120791895622578785814975610891143282790837019647686242257473690607222690006058192680533103403406591712023829812897959028178861592691621050007649701045455512723095542202914034297723058412699645726794484819713559199377433323085076485118991266857237360939314248576345352554804551786860947230288184543854045385273118697872048288252749537286506323926235373317813528286894301146147794270806072344472290349494896751129382695376987199096508397007968409020704858329532183751842599672507631515891630336451763124096473588345636453767083843261177957386187168855940040723502012536191332069724621441351067551885195294455958895658884190014203044630314743149540964960363376130864259635482009756240053314819016156241934581075338894900823619072648333220705370960942273171849050854404196849068167363273687876533893841018891609031766607996695368394078179920456240706559846864233890968176559716405213507471361721978728728728631223980149871890651702969852692920955972189178847757962956330278725503585908534310187278603738385847737032046551375440889530241403635699523319181363656983519413176293976043455269918943997911376675639483890850068349543577372636706992463368903607984413604115805246760421355993470799413955499934203781488571844346306983279757780440114858671701975264931382460556042896795005762998435080015536243560905106375121284484034796744000044306518684712093936498157606207842260293631590083129234404721535320019887081282077177355142920489568625266353314735148215300841462870263944195191681155641271216006908493728496324439463906658778357462480788960665955802815989213831419130547705110894901091038865769251389671267428858610180068184060537159312790662270860050940840816443010453762449785540279320444123295330475021061527825861776664028025957871058629035086486184435954549184794619902107461249515596986456693741977043463744459376265636771670549566019680854463169058621952134838308528054982998423529091463127996904185989738156220831861160938759791155954855480973059095116399320236775361361765379143210922592831901440278672991255454854977943117262020657626634866801579786296373170327557447656409181002657926303399802725159447967611849964424441997633690344414069227781156672941839076606438620141431754892698683773073559594381203285406117049161439628230198131295470024727577521383954207539725995766764949032867938124316095510510198313269628227333479353455196864410036083775613933002048020401590876512569004347359146512034758703507650601391790920394596353581642183017395181552980129461701482176644298177989100101144048398426789241318425646796114214234154532209357615359970011765768111012235861463174853978872228065781764743293005734637416295736497813096291583229217736253311879243640498677613283131544493536535518503908446752977412496370147522492019326859012739045956951407562629469036037076172709244648916632690322812231359036103719288601159274737052165509834949857867816766375736481001334596481051183810905954785486930379336267961089893243758058754508982029615982239188502825772315672333845398529247839714412688857569965323115938890262716071649194748530685871630212171437146077143699973255963568259973693188810090581383242121931452461577562512458846785369665850873303672227731308021908302744314061590392560086008115238995434405774219892744531442961159006349882304091119336291093873331458679089219147265135196603688149462127482291217733293520043387373203099303818565118214498876106085258391616387316656465336112917754614092991605830429407308792377177011004199213961966181264109851081326470150064456021813130523297775546266663224651403151457931123385352130894466054375235227394444869657558042545050917845252076122929263320727169271395213626523121195798715518028534144736551378906268851304601512045162419701007460458892862823043763325805589294117558405414382450476773301155201756890508831320330170190793063456552265134373565039438440396962390944863864869356865587205259304827284127102062810383086546689143228859657584947155114240141647849163823378670176804351129010214729013646759413732885859968396031162761525417806705056515310087847071295058305058354962712021886581297578469163213228811325167105464911604183124384386969357122957152482285191470466090241130442168876392401096177584227987332735944346152904249454419518816689785427690193328355816655061043925492079135890188213421205681851417294460070537116914805764381020409085349563525805125550308360515904728356460734673783124424624299634093198980863244257868753998756794638286859695242263749340533198206659645586556565483702643598242761376044998456698605987830437820187954269954107447633982540990950322833518814387821650923934585066617668820752793708596020747894446484795195166249101307040211405551491932944879205042251054706260723820770290762616563721690664543030584519821833738208445620582802847527505077540650107006622056705285976168231335058746830762394513270678601639598342466875298177205592768580381295986560456582883635465301542918574682309238194611019592707493052165892025341904700591902310024773910190552720711770395876588150896247698583558200153393007652256810461737720327739507255980544724751556589561507467123053857427631436860345968737771601243370214181382526757906656924383246708004159250397471497302645271396645971805357684038221264085583108255433950883379304126728315436180894712275210809046628829216017942482975287014324138881393090956726062797732211109017515769794132175420269421378754147095182258449092024961177480247907148964318471342290165322000796754855366323966998877730135441133250122808400776587516805366369041756654403586991836415427125759688662906197244717311592562487449657570953153061209284261177692975904164767648199776532549754394880434502520966717503122913680333816735913865893251264664199320698427198326396863230034461456755073150742370619014007551825710326903506148398708611320129383411656043726068470820861326362763068858215473050643455162228155300438996789281862887144366331616422231244099114128103420930442140125497223137665262183992455997538022554659054969148097079612327990653453251912371747374600551791151987322991428545574127976436630408797380209665503030769255313053535874070713279250940559177256844346593943241018481812368314909313463692360936468065768552879719063986854546208952406054277205300003402790891687519558983229751713384184401688778087338331470685960220543783885941983805725723667030298798681948194042259687813382275653392008355884466982215503243276645788251382273067742593506753854816412231718843647585741672715553283254458655398653771363645820625792600860807178810222356517099352322180168542960808568531673564128729340966141471077361003605425782504396699068835186162259106725610579319739642366999894736947987037058082218463513404819719068680152244025261852288375436736051768669827872194024903593765585325658794721827844703971999933357486238350972703086608318841472858465222592906451613622312186237775414685055032382275793340393302449505741892156560755214213461041849266811151560099993364403045900049401021891111828832395752779812996819649184002615789213042572190958852865752887669488773575476154230747424044628159312899033109451690007005977453386234912027527273642482674810985661645365014671617927259798553481003371424563226570326845943674892281713839542781035916196703264142560460019022691854366326679461717920327004534406507449270971149941961821438709300058074687967918904426861969649702313789781672561236630230917320254281656988019524101003541786235055073538152303694501206386925657844761809982307110020553849099359272846124343356391173435419671776618413149177427086864784343017871311232214497864681275992286220519919590287699170483122798641843644292036587180576464393276912156425517746756898675634450642084667204483317539874690500117111614481228187385190568099811401091539434485364390109707910058888375728491146366133250310925129995776685842057077144592374708198859708461667512916151660450610563670489634807493230122982536146604721776636317454414459562911544056932254279571536293480515956246523818369471521697813941517949009290019390591086576927736969920119917617022241817183199887810802233149848272321286392734166653066514773122983322377881962211600409567494996107087905387253860070252807552896138031788843823468263252403174690950480709081459427581788858530151024784127894095527969268026248406935909124415698742356636938293686382599253055795463694327113079609284612570377464710289849595046609130137004192516171893561411457940536051910933802425643015369668484517667556627076105496889596780918612834700284902649269275812169800350992383872376694352983616689161302794189841347266808184670339615254747276927195304565457462993014526267584016826806747600397173368167184796834931648519322728695446662775771580602628416927682096466897186386292597534640249616635834322613807355661722477627510125987688318121950570323696007366892590246403723028864213593244853931617362067198147306772186710332040996689468685580434396380392921913110652171190336998735832756285638118717852485682654904002317478882185852666246948813215706767510478324737244538488816153358861464705239163932818420935655926281618096339871417862747382808138848045427419920114210612772298889921680338512745317363100117672630783466987210485035038879058868414218948412322571498844644675116770681321441466158160125075923253210797760174330822132074988989973094697924103377222199371280234070887566018545281935781348896082900523964538900086512056292198521772127124635731370479555910060378452034332567973691024812682258689549199570772952783732981030841877459308255884243348340764451049644101434624350888190200201970838144180587500439286693933030394393393972109748250823219632007893175959740634818293996716075336986418646423369944489315594325015657325832130285150134894332457318420378659273024052049440828036689382461597404430160842670320390220080727759436010699783860085853567464723272666084267465442989364544160291380249387337019140841709475792304694349499390019851645376046168455122506054267042953117417982370209009231171764711837689229381761146429906160905995165073354741278517036684836168762015782448501754939565496477273764235512943466689552537633620228814488035603867746472492440354066473166682632637553494705681136095242027743361083507459484905067353223297716844313797022323436804015828241632539776784373716041585551297159272791043769917564735343041624635167895881455866553072924971403632748381500697522779896271071373598559971887976544895192090026170465787912507146343453922964596278972118015482490773143699750466547595723563599642890025396927882794620073830751339729930392706951353276873965938984442735129076419664866577681199543052562705119942961365094443352557871530041461620050271648020573975238099454298446848635856346134720563707318244435313051759535609872558368354233127046442302120136485097683627703776961926950987364350437384544201411809478105383372509410361977634299271592326781070158333657200927052738168218273500991709263448986050594171751765286724529208660584997745076967156088990095066151904348048353840895042082309581644094397254478786180746616188864389479868999407790888065001269161606968510063193941232237480934214108300225959446984724734308005694491113478104055932500446230561116407576467180851415650847323406846426750443672681820290767517506834493898185765246943923211961148551133541437243092443743063652604333904752723885022612891343049594623015118719408758338563163789782214646622317931069571524872139199383187873840482458287241338251958315540318304894390079202081788548690997238803177809298275379661396533953752762723454774388798628300845662122942578449154587091291795671371888271428539548964093551879275925828442229869715700543577915510485150664992739244433012111393437566162931421682974478310631322800703916780036196316474720267172779322606596342025668774036018572328011515623659705901926750455389481267688797826002758568883010500545523014540680803506970017158891821104849915393187755704600204936927088175185677841341198090198207990536023279605739802486168474942199167453810697226713480949476871935652147452644345677065368119041208455385620176823256479543682214063850737881611629599042396303530756212749969641992426612570398040150892492953355719302225740356662134092953220590641714334825461096759645702365715590706353992565354297282384316598993790742981285117764787349088921813464005664159581985970172294354621470222386500185342889557618953263161367007829596335020002608814205324342738922744668381423420684076821429635564348772968130173252852859809830412781502677825182763034108336219166303489447774489149150579596946903337283226916553096746352571824157855524696619286309343817710659631898903138459213974243267434340382019615689476395186873731679364902546840558392869230899468341027990513324774600337867133584015768329708427078486556112544891403848851096494213294803563240802347744770852687295020256007819310366037098828163451042487500038717088643979597065221096791744165864291896427192836951481809808695145629606792981052577098504027252328100236995533533206468431176392927930296797772322002038369881292844072311018437817093473470700178819174586737228428202649704406146336753046316520843826675670011821923051617743870735452950133531105026267956133913900573551122887042678400567007534935008014140002974363576689659331860816904459438868177838607818305624155075423014493200895865691119841624840516335550703699190801587763411798829209210712107072899955267722800693512538683587340218576121439823152834775201117978787869890435605482374907923915583104386474594036314403101150040415583744478251050756650990782109720959867871638193930350301751714898483211523868796476236413640784070855389947143571372440615032969292717908936107849838539203798759277991451839898339076981540910370410423223927323025054471983467984478307702447704508278921623574772588665738380747003825517380934753290986921653694633532614058270277339115259433275367187264517265313770635465589659690475392763984447957835292537810006649701130770525119511737787664204612133241669130494868974300677118362525283910436424437664441140365719641922177220955228135112050850696424080015933704146355502482651081171766124300092341885178988495541935665455947697159569681021524026786221617998161040616692916124660774674909739602121845644191424658280917928594274142751263781773570291958037387504435725606434749871165618070195621236842840186533240177525429848278070163437285690243608823190225312886681171433193635792478582815227718693141792685415172574917174802393023698879079671456556399181517284093533050668472565662520935303084162904026334024794414326566784381992653798366439968124445032591089456508720431213213993694595252731863291049673843555173081426364244748600225095087239422790242358782454494357525759314985582522858765476983124014812632381051427155679187374881522061459173248629653853391563835997835069513104060492904210491594791800716747906503439245446471659587568778762947649244782802437631588906188208278241816508153680153267901865550088990826392758835501955367876818247536048717909082924889449087598067812401211461480037821044119516412454452883616009906633978515095023022796160425542502924191623763461057694616810393175100891245671253451912160295172528227082743393183842704597605828956448519945480592737039061009082974562682309950601208469070010986640178279287475370558145509694944483206902689480525873325870021872425975226724295448673354092124401091087692460482257827792198376001032213606518394613641930614059037861115845141736648349240764764562220884205649032755115117130395974894602415169794894074858245344679385368535318226055335831349015286145292915378460185375436051249513962133551724261139644337517150702920773787395499103683258790896271792222058369014706813454466975214955462394032333381941885378509385162073901812349261914048803859558395729878189751846299321217990937878244142280991531566463023725043286497742560157068654018068172582187591687325298009912157052992327385717395910261208997265259361169543443302076644525585039856204835682148848602801684206039424338482763949610111281188993463142096125285397277442293727089892443103833284270755682634761256480324286651050070197311618821225262082645503739460785826479084708021136444374337605924846954822548818301271060811708271242653040676045355414183112009436228356736855627091503885229358865019869349374291963853665813316708488962709957873389378257472234572626630395631321756849281273477109494512398694833881885471678554839392055850336364101427025863941860923915329208450406087529343039961001156266457040552561342471289573325366670203294846042081019274876166073393585883497062035801670790029383728035974380449104141867317270334326614931900147615649016408438268728943106804008346249793286555492577870083577247752115424586443578407323841423839681728188191935213807244263100762434961692580832460839709304337906738688836813248617544302345878742303122459055428897846805557297568688733009834522565805562380907902633331264521485823348261062041659372406357289412987324364848531219281123468631121761913561704466874097994213189588744901583373636630695665575739150356278402921589373981507719848830045033467501695173525082150714395809423035063001921660419823952344210150530888508150001886091400055223941524032177075304836694648537706504211157244395799019134469052790140180118020991642090966156370573407218078982417768818969341159197267244972766626016236040621200489894313731164045108238616926750843068861687399075745032060879968968718548059525209241909010887625853470312222685551117198137436180548293119015256912912768235376966175093846809005658591822148264268381827295835956199537032970654921011202289807530728880539543166793753651301927502375758073537011114058893468715932036708975825094996351815097820679502348543648308573850952093144461589856720889339696081149808972134761341152163541178581665861011725347876978711412037787588089236524516266066700965919230801993027225928110536152983809519982270473671357928499982474547336736004953206441699344816309283009605701872686651109847297783131757171223181252337115319254660994890951091874510075791882946231217805493779860222828875396639990503810894138460586094617377969064851486936783664934435722598058106906361394641506890682405922571903067487866246831835123682412531987052391495148931020130443865973470849930613110737322489962620317695855444924894586689964502129977498044248701122114308620256012475744732477176000905012222652385516371003090814813903903403803951270923882013458358825942757176527210237289994819455572303849431055570187189216175078404256224100136032011327699810389804501029426363208182099817659657968300143369230554637402130405581433964479569209801632380472663637865131697256883082570074501346405782721379887271808093442543780342228835213331951831400271140846267574665992525438343144501560299208644234319965529340617458403241663711064489888387435093994625127938365094020632349521322728925338142006151694938150198968250859753974321309025346161011388048583565776813065898287365286015064111488078750318420157167186158413713758049790793775494331326692327030887558257594927481770057514414300962898926604869479135787818626226121529226562845950770535468505890246804879504476985333501896591057028956840443512462045403953085048530532799698802545632352744825528557896786785789200889664479044392299349965338228116948002984368448981372205531792464949855950892808093921416384108334067519357730485112642538875325710559496835319017857510693382997625555699305024515651536862890266219147139712327848505887587689948324211405396086806914204666498943107949443587525467345721502071359131120658142312109081534976433639290103986138764717976990033058583327352101903612440424389796864993824874814116505195031094510631502079372595836229670415627357707040431591086113592388472222080740025014833685581766359567702803427687898433616347141545333757103074111802759980138753619608737777387706920130919896193522438778898044961064498900527526740788975078826734422578790120861519321583488069906592154492680236957509055906324491404481620707491902386623907414081851924958421012162988062601101552229834687068019879297351653534518098476058260320393516239456677187677864570707988102112563920559594960296485532229810574121938923494679925399254672009254459287073447123574315425625967405670033055687176650429587653721242287925140539928871976519331680882950076699449974581336366255943276961303666927793387504588867453384109367806088286490185641708565620374902551148587750830395761833761866849545255560040700080348611530329659676067606389513945442074240230361848531132270131640022272778669959929039655391121178747491227765999184511313796590918623641527396268859142581071225307013277354891107476789177996663375598456638219048549402467961338759658403605100023074418052101067362080941669079225180222943748140411154378235557637288472391718188907692064358658017442078496966897582081539559836848071037028189986332990320379849010320035970829008742792163433785372067787415686736264587878079891952866432661985709970849212377924148412263266165904715833029644952204204168881069765222493489383386739856757851611406850815713311815160926926003406603731001487187273472767621675790721094859710615012288780145648404909723917389025139877410195696254886673815743639079129732763785338233597257113819282005038121847136636903387561402343423797796489193623438899674563051782157504112089879269437622725179267299494185813436079519758383640353704077816705729700841023440000953733704729013328002107021535548156234747063477660486874537331634977676894977965892829293858104011869546228878423834536116645504684543336378282329032687417710670580327876912748423212729642486598293380028486483585666646786124657762602561994271002787138957431357748575230573413541316184359201043933509198246136472076030032079683735480503203009049426566580343681579643695527383730764508489111867849238162601167207922614833178914207927142468703110158921868648017349348658865689778193617424992671505135360990149784976121085049022886284784748547050651283663675643499647245517882278056217071335238490555179316549664001341640946038037237822621412522957729465959380298296970885493346017140940564212529853013230450105472638610201957950265165341394674133756747622799613956810472594512090783611184070270589666765527031672347996284987737616630872771972227276214045787170488924211976736885068364895172976235135063891379668035273542161705929007790823422671731006915980561964857515722605697755787369364709751800696316527676909579710443129815350136490431481466797393472639700365633142492643277239974709370714057795093897887700231798396246774718653321861287649302762991385154448514132502513330015784457586333505588144276693806506633966732967445140230311444138498760161015610419019291090092639067981675258656614903401277020861076599960345856927274525450978030189028723435552586108373934893174429194321063075207988792159165444557929345541996188859801292978771802302620691730629902002710863811989556222104405614075574015870612793786415745543396500977980530960516751841710753308765221360087140935650275277204831769333515976486844511553655750540118256656578791971936378165434872683929235161611758683504014122710410548259118753993649550264441316265398488366033531470660582077323472579625656127194632424639439152931709282306305847866185421169099212471999642307592189958689875252848180411720618732640156522960738609124366042093504815673817255816766177199527602488707396338787854028994543046441647952438229207154431548177793458795374108912987157861957263539860495841225603566350467285280955468332913541018349541222823805719838912130222593556284598266079490484170244406060635989750848997363502059591045914413465750322702861083045358683664337428061726516553431963124361110823445388655173864596761175958101338487451472785401069801929992095865090045190804828693465666281754413910867614609128463447281092864044772676700521600459798502128485475142451445637798646026400363298005342898654250320516495441657531973560456983806731288014719164741909303646847199726683160243910884508452154951724442497651791282074284610120830388602769465560992203487969780566257618179167977803790066475276859258579198828629452959516263460200231194291133564804460201109728760094318462230690617646140433630188199022958832268382049768907528379388711769545218594681018204031670931245704418834158162127609854178352638200579878888562887658320950905862318143396608142624882945908736740505039043633943354442171877777305015940266335032305637724924614269420874848030735675907377764591571479324430995150357258095580081854197828275321681651044516261212401923430058559293842920688954866583306276544643638347868034336844201683631731927905848600329756408099822817490198288170759758386817475885027522173942157917009762058716644301239970827362813010597548882680859919211540393850364718544377358016851902609105033686142851770525486994006361831401465821435799325292131242462368685139840128362126143712989089337878301113497713954660427423250639556174329611615139289876557123041119998659539794147431083111275864580583629071244204651787755088221266941535297868125984134900399905538424425248820764555588181719209996955557120547029572379930438090705224189313077441785520743883719613242342366430881503620099653400272341599054961400239692162012931306298852613593107247353947442459587283549849981595130913592810698026919439358674083032065791183527758113314005124304848827171809679728692335990647495059768381390831225795348767555946759513368557111595891737194916123305548203402279373381961852036834822279859777794413188768801174706550890496831814018271929492345096029267460644209903639682712339328475731304911152405282122230099001988948989047755627184032108552664596265685436428815278349254790755582804398016033265970878678252990880323960959896756620202787337796523355383198518709709179320467961165764039286128309520013392095669708361094063781544422820224531437145141983384855036674913079050243720057449321759010869053840850803482701622431638090376536783806408542444299302759951302678691797021609011469323813440862737536218845300943922838098892797080906958235968879014404489109509180731057068897962090277700243339847859357425888806179618334257012561946420145726040805346683590558799959679951815935321577734847096636333514370819307678317550695194750354290357834390169633859274938137821356273538067408788589154362991472430459451144165048173868663525910624142170128060551135671964553002634986345276518787658504359952619210188566784639527061193409083338935484675827696511917899094536762600466929319442816116421107818861671035305842456852456830774284359701671191049949585264196296777133677650601896714179226310796578734852715708390823957420245652813604124940990772225014422057264829099544788620473837938469611077344535296287939721186315050714527766122042844420470815575879224971428161493232194669971330960373098179712033301033107037478242945852811545164012727222100777582191728348528308766453072713714011873009485742981347349781780435978070686777046390603385665359528941229820307325442486174179061316975910558613984516204077489667418086073054601750253354597619621802270732848078461956195016320900483041363581081985498211108202033784662873338418605004601055327125776619885642618736410934518868630421845422838918520682341532610219273402685090143011082090717393888497794191322185733162916857516650399175510658606413936601005578767289160005792299957004324517800554511109346596311582196449914319262974989882953858166859619937409807888890150024187218293360057648574022542301430104948782598103273158889221891533156850464866760522602844221497655224089142765945126158850606005733541690638748760686056300947664523465079532866481747064009307910354374835860342516443242279506317274196512098722198756334374519119172825614813325900847893226590380579087403365579965516469366803105299324747825530303954847961913872237879979082163406530662827348491926943978724918614425035229079223615963973551917887473694830438608529644795840811838883484701189362753239138651757227849981163129987926370540439176607463216642500174236766052851038297501923121362501357993641397428513097768031214175807870017383638613553295184849584138789001169789331350143055695610808581607866478424348071654706856384362200947898925648621163617325270241396534122710526148011180780807716605402223981571600902921602347036806894797677581256644269255221132093028635002965904333739300014464169450763474592779125772593460241418426887517913065964684997859881893715400929246198865138714502546362077848923418531484715901703429944472780949411995700633542724955138540193699847875825967003795551841647502378092888562516694443832810718135420386859661055584385985859627158886004609995726613577759616732132933481698854069311139039863159797384216695510689959545607586513950569437688469192370592304301695387900957118834648912209290098721417608561629483760547911946410167734378436586114992390431773758694938413381882395441284220416972981226458200093441385877200830730475159293569922492655887358936649409050453559996790701950393481559548944569069673015408860671640426015011737102528690395300143770408956314057708123585413493726291607962064623634933829968117258031958170584130313440815443809876384098475202405340308441586503446617214796619744824763438690145210354854763802292978301193272836001999362964630785680116991148444311000886714892755347102350244680683694230549293214072224758414047967762191769346351129160278041324661181379727802373660949484301531938532184653723582473337943327954993631015860267163873968804423163094504031049209201482259426957775432908559511314092651515228972178096055859009344215955883886062657583567996494516969003698798800668190203955695020971542273356992434462388374355184592444844227459863415096005718606252378265482887671453908633992419427925530155061871508239928676141029713062115805862218523673322538921164257266734228104662430019435351964045813505331978356032082287153850775166810193329481692218941315190308659939142861450459708070593192553927670911180314192066744589095492745593253505744438546502594658470755746259995140094200360976250941223989585812032473172513990157162180145639227513437098597028861948528371990151932176351636205638516418925766887951039177069332291079230261957145448105940831774449935891507319757898552128841326920797093662336327560107409681076287369113557308577355033563484000329873961272190725818642151785464417690600312278605806405044155131058158088372990797081347654795927588534606169579041025838841776420083105658169683073717272440518588522493759858634263999707098249410125322927855328706769317584715536899640675882498740581613946342331037980660416502866462294038503465694511649514257617753970765899236567555927995583829111826353752796105764831165499928765128003641901051727706478436090062415808239510564530569163078564650916371765586164071232934461801561393618067092816687624965420942747701021459660653084785655095378885449329574878502980403360558038146126109604755843019278736390214190965445934172474728928284469326346400944653447986400317173037629577949119597884969094382822544809655216955037653674061312438028597279360085669046627402896882684681997647892407771674939541635216942983690830033256962928237725602741986859055740176616249067719903209107544286308670480786136281640928595882243035666571000851630846912003204640142416180834896311305026111945994191316090125672997455049732805930173274797846957869262936440603336555690428781516091984152260931815008269874228319224081051217225165670498853448297601317166993935637028581251429496545374195049685548735867741693614315749183498790179879206420946481336242100355466353856496807143860901232400386002446846200543193224465359328974003912110890336830200860789870232938123983863632453349708156862755084033367151500234131903368742092870335012275889641962766139187702420930993800790155834394531557024585431947026323924413633668288382040106226123927282529804028299201064022260381224638415727712698028899947346180486567361203472742625562292450954958083120080129445628935018834063948750872464985923116432287493190702643090616187833398314868864500366935682409443602891050334902046849147143301018530549263427108287432489023973045057255184582156039363087937304233069872342758311319307272737184911482338827727065443819867700268881345707118863183068132899631783906933124354211777251657608027134305804183701345107067323642306405139478748081597628024299111975725080032759729855564808944836654958839915590376982449155587900135003787916847944750952082516383007040570842053888172234997850115437426367971780090724298949607955384338232673645195848687806352488098170339063456785839752727453692192702282666629535035032869259638583012230669441038136073328701252879265127129669168281872576586340733292507783095042804547718424853261603848505930652760041076913621530340686588969171764621447534036026967307518155218183232277778115770759896100974182834768764342744243365297181280851586039721877682355771291362919278966487070209895096976802514840826085848556717473646036838215428558732607167951492130169230414021267721217327974164373240097995037907525138569573212219522930959684720312703211238331325077818660623851835903392163192499462403308493869986431322662468249275550079651710541606006042928804546531444973244968045889187634080411655443670942373643535706946661120016093158630405205489166598821307666394233243150643433350912252900224957042575607032718859181124458425865064794376175276143425880828146685316853541247500209226095587162320720234241877041471631225472449289371887811137193687599371349840051361626336044774551970828191136926933500337773648962198194861760870217882154165755155165898396280294644651549933856522637105974762035413864606494110308279698340534342871695163594363409793366096074010649988690793876156238906283669210481342076711591438237731079608339058332105748864527733893185048441031181393170962068438988543270848784776721723458944143226276724148225071177381287549122107314332987314096372287065128428248469444711087191315582422912588407244121550090950431410928628617141697628229350781338518284896603786295918618487499047293422697870396898911994799064162341365179428244245112875109268205645767272428568616413631378713383733253211293260491010539239420477888200091796410755492664100935295384917905837370144291430523565903455567652004858208311378093414073379728976093302710943342839394464509384081427575430820176015074260558098409665814320331322978890625530779076483037357557226875645547044553621870390869923162879011839932789132129827482147003681053289235442291250249625240863725191021355056127068200301490937842139828024187252235201578213918640678294958803080359612815253677045675003365785776233675640876304587790650934646014402656029968471522648027750398872390028904133585780700027776473985493341311370846256373265049401029313242389390342588718426771340073811974966274501785137808179260789121040001439489244509690586030627305225811588617267120757034960594786203953799170633159259010966770721467773978458717091438614236128632897689675118078158596738045510659481024847132667398754024609488692770347284617620426918996272897682729169820387938990076295393649176633490780761415080275569401199070519111792408265088417748617695100229406241745844196173557844379377661416424643953209213206118866652887425247968893748168133506751144351711730130603292627307735042695559221354216417664108787012167353803184334112029604510394602202333078996590220455705046413149796805244187827276027685144497754734489139481110680795288408983661859333644956771787475445814044944820852684519825275364412712999864744656948724598800124346266811372232145429994962183882682708390651965340149166770210450751433533553434435981612727460335872245621835235621360693293138331971037356189323296197691620813415015794708255496717191006215749624764939875905279608161804268178737044169065964675089526587415836526537130470545610642771839466388649365335414465488804243673663357853041750100527255829170202671596235729909622998611421272461786724595498031281765538455051731409978539987975674353660725103637263125659765449595676402633455103912340730162013013135083762892426491267712089687757672670017627050876069648843727124868037943317363110097696736779094485311660639617195808567012378766308747537399772068978016987450255172421592020850236772783162966687992581561780478557451611404440180149639538494715494170358872081226583614725906730835077489798176301679250143188814678269513733104883832053196446243450039664941207925617175787264054388644297861158326383546113367086397147060280664908909685687164937445464047366979106292186082510054041040087927251857670911274898934791200039555102532415150512597907569435955008890194071046741420819984137361420073312254977212448067073132500324901542445753294665826261718433740226390749876754457622208487726749135134997731909618658718775961947372109280242190858295418929573417550670969274665363601064019200593028927003202585649699229514225987449831107816877173772826127753660087281579629309557412473490705657538727008379504086308030930614257783311578353369716084257369239228140116342576932449172231095790355473997287612505306096996139218302628951691538275452716365310500997318725725245588217895366873148478025423110400239265413681005333792238385505108394220638592519246616889239371095291943452792371583469063735718913556123382495855752739336289693708751365557810303713227888434326314487206903510641876575545361996261858804297994840056793519182875363246183738443004111006973399331828888370685520376856221103314493244269319375765100589598849477268879536994862243411076867661861395659339650495120493424492391605484797584186992488503779942029632156954002651873507222087350795556121150778891018629984497387634066148291518415253614558793027592879375221303562809241422729950082976446657185346579525759656626254789166675629210763112476900787107887125086797458644820987017892261956895079921503785643421296626138200653917528822113995299392661292585806108407185688257872695516993574979464113421611396503729464779171852545172149031674039571438881063885207130545354952828091415941475736611961015207023297138785012069643795747319197469992881485239000886205704277510758255238725743965993449045751130359007354955846266233290922543882896685270819589080295867256929051774958003683958036060722497671303511201029642145051860136387311226229625883134407962061269107829525215208955544960569726263031668288650719227671647303428278445900128887469742459528197051277537260204095841213223135709337175066678898091759354227592051748907890310812072099071541925720525547294077066490283716130844607748001525107093067971319661227894459402738895152665498709419107842608934907892042200063539738433806318104741630967680457878891714981841227133069459518503238570763669977004712187057520298315003826793348562792295767368086476315820364985324541265396155513685043116585097827642122354699763706109345273749345984674112736877443089008546860431665256007419580602079848373973940935743965850524254829609401073511483436881823512565773500035919051966036011380165080136191874121826675303267118428872208117063209528733624622450947610588595292814888062211463726312303595496130997343812582289903491030341135717711757266081123799082834380758309415414768193488565088814670973051837469132868956360953022023230017767950764707318142281910899684794582479856242776108073898285343343776959147039006977479818364967109590751975585910911656311574598556712450993318641499444090599207194711725519016443593408075035551894035670736224991083006580995470928744283496422987812598215979784361555751908025098755752006807598517178236424444935923456153821729328875183958152633621332813645059380501190134120635850122725903698949309101368116840402903395123558131742311167748154451671598963629194597062871773982871668884417316888014634765029591120684232114162310261760422971841999531757033045685421958517095685935152583317024065785631823884934442549964167736436063695619733698934677950427284170262168399890410701530783777391979061008660661000674265363408816704158105702314731514085974599918151209522585586791013618119163618113915443068989848268345027700093425253596304287141420357987270194131524896704910739074866374710191983440530462785244958269724356293362315773764237377193808809514339320094679506866353896067137197730046274719829852561504305479649041117450011816817849484823901541703327187928123511170150717387482088326243712434820472600957211433958030760124305359150003158121667781393931236306753691642947448333546838882282367773705548791090732565834212584201290036496018855810535873171196083372807952834091378428707722696009245078660234098228402251905521450638580303721180347591766793907055076785119171911699708591882412900024326771263752095752256457281728444291431395135009587876102664484000480312440781549278630843156404410570790707310250149671724182043703610869489084425249161421134811721442102913526928082667952487437209402365943109715885627411085744623316030129062364977996601461763588815731830331154853105121675018019198147950106341500374023754318863708057703933751410722639037743142140505832037635652369407361589941759541920538294423662487138332051006137373730915802774724115184813408523953668049792294617296711806513452856460888641972865101996394308169471793019514158496533949796168435434401687723811635273002806245520853377765336421828336778492236566108521644104341142622564640653118983035689267006488927349788331019596975160251840740485360553639556552555984830177143427190242590949844732825194951433360015469533853250349647320169351437650807353685821902094697774296019277227909699152963995167636048720005002847659268878382991943479518780186313845094093154717801893805677679340645573901551137862311830109154695870464661022362665627238855909202765728991436844972830212462714105864397167099032208859360982321891644910745647492885245919570025757857459205796924605777336230136690254978243924791501136411230468914813014992777297078918523197219801336926041932505371629708616097288311560232418807698293657533369336271676525050022254601519018541154837676851522089958740036905269563711414982732694653600664569899732925372876214687204478271650194660338139542056731945052868477219317323248615281312206135537396851132574549695407787931134381138029652306067231149626262162225188860269779762398204895449587115482881325502239965681829715420303974999574657185749982628654215858487888377988125072579986218713668374864191323682851171630585426170022642435279415610199651177010593249614825656813431622361443628977590445160688447575227619364815742304888302297837483778949911998718736477079104003003233339842150384828770524421427438846607611015146360464869480572020811720258832699934820734400571792818787798407294970605687110799253821061851080049482738050705496249928260130790950161040083698561809282933600508990837186314118558290628185174875186440413119552190579510340890302866734785111874145352872993395653269486054386697942705249887309070537010275900638944244637657784565974742567401855780042000235641527118122889389761635227655898709036983309698761695882908114283851973213758060009010003736889682547563887663600472649020390470121334379994697719194285389041872916268739029591562422603884331770883046805466874544448902644170764694421254644514968675728822944062428472447243133838167298946614952726919614528432921377688896452047846530396108894598538059105720328852286492905622700107998718278831500593503929382918213250764752895540083010750606098741978299930155348090786514376841611229009929513105410119719906256166092112040424057139324189347505773657484079981380459643065554403742740552346110050645659869331310952535622138936896473589274586283087599690783011245531378077372698521215518730246576049204218642433376080320504366002726400993326354731413399650054448570445233727388691786588526225814291922320266055797453347626410562218897796220215918704834604029836793177171419388039557668437547582518853715935216907797396996645222682658631870334269400704987731610722973368096144872012307944496674059165645026228717579716952434663742359356373604930380965926004412215071588504817415240560810181645506492293116059326551492969339734961135088842163247483184466803816531612971534905939748825056196733825885069758600161057163536646052871883507791199655565768690781232079800740903965623021347822624597195855137458514051437228052313946807292416841601648337608034585524055684191463843778300717336190887432690176275570716823920787628431940915493581343668446783777463765076637654563659205337012826483194410544361902789003153549811429046519571932494698052716540686383465631018311798082323385279208392519076515118870700312381223281803841715946309894944641871788116704235722055557393323826320381794664283138925516496121346028904464425120145556187568341125585756401271197365501757517361932774987732389441370377435241472790289449834507931098757091495572150438040820640609590051674738121202832274172193823025331600934721230895130420690304522905768323079867900380687799224072572863067565202147985084900231375134554207491507456461453396356507906627573935017318331446692465680412396440423484965961060329977565695185946201845658525333555889501237530828754879849093923788641955818648976144771481725408414670012360038350775426140253252007539411264113828041207630499743011840132964156743813879258804419771977265115892799566249386085600328053240058387571059693081282381896775432652211445720206941127851904807196900414769119625814778609502374317879391048465332462266630427359624480240989791401703871174304029607583131820396304882056675411947409523133026353001267009307320440186023563346376755377041656360331954674470583779196510282689810568326718277455440597580487451366882706591649237227975353567915255082803460267321516892523927527573952931116605410003378199608819364592341177591500233381938090894642351994795429778263709067108568617071673348452356433338884104245327455627779424226632455318983520021341112361304321124741837004309029560054954905040771856523252313501956278675713761797291702083080314665645194130693093970099603226004076816529247888503527044670762808702958340182311826519964779376308336078410935519995020125611425122673656201386716651494707035706682806216335378741047837015048787186462222083846220504250628388611544829977518945447668797731888272916090700954865666719020259428282775174697807898013070081631212218405414431748892157633066368808954716859108855723660970206670315417280222337590386668557926947340511804874111082092105039199413449258079591554401465927530295276729767959754094338623921987287788742647456601359819635108912162088995682487741414720551674041731510109802145147541609287506822627066506542962238809120386936270715616005206154400088435115275264719977421771519811705063319532557195881508924027957435758329248830315821168619291047878724830604804549847509269380470840778335904114592470885453303769453302257505941097290449143303708227255624424295733966590486187490416572480961135924833315091733181107196870723699712349845205895711233357329443359241468476192233203262737440905346028290914371202859574296214810018629703919387432321136726760033434344878187004341417136647312403344799497254214549028067467753296354936269250376178608666668872539966433569904901684215727092444758128494454949597094194470930352208283912135624752368402353232762688832385025701750455615976236766329373942610298207430303214757035663725100308790896578224616126070814065689383799345608870337940965506273305364576224588777138164003950933295573905899424441483524396928578333221561971617820263532915664627780135636243547260338645393737836485170369436405920115715602871619845724709593492393625585094375838339239337224079786851554060367734795036901880027627051428426644698892737027761727688960364620387023117178067525930324252012748061106469570163196690143899768021714121854384119620216285917938585386507092387041991824905198132911848932159495987362619174688421455795424133193196306800295586875870899347016408612024505433314203195567977813601735812322247726519086247327663955137011509206983179380133923704451132247943662755333131856759886397344431978666556643748383131193332625361422275712538462865647279679164900572198270685356584889419495310756157124346092445639206720178203236850884132061595069028209031998317086411372589855569789920488067265185415820329481498921349824858950101400542801859274875775855910615400867150255773231726831626132364097808098400659104703992960744494012471808300896511645332886617758943903120494325819859089504396495929204142748646415913237656763043915637655362023029520093371539254595486446315135862557443140423264149753433975313786188468081764987529005734170211119695142689696298382458514715133385576556501316603834753832389002327525555362285575943595707616928810048944465717971638525601546698976743188700727524338057450689886926013382475231510132115651818694546237592775719754785225396761754063428369921284448110700495040422737011115158468814878041045490950255076862612366020003120582605515067704173971779956696701280835269381441085018642709846812197604793657690029757700301934637134784911039919210905820169261767233470234135231687808960142131658074154496322049866227331392954864119402926000196380160835142563630409335826772764417268224587400750982612564584036610401565408049694542830558955128154663531191197295881828277777639775111272932101305730273353011796663267106331424882085090272270964193346119221276502459512095893193547302782540127889491039553995635558968404718704298244694060797076055083058865497523074373534406014718091385193602051867309110495340993120017406199340895762957941665335583388670461121918836635830406342686732576899026706271451636545061725719879306509891837604792394479498881170984588510401986964268597886580365359726827122849362356276930468279998291383728900581004969527821614969629290325382583449901380110334451443305456786066857329862902371080165909943219731926927433500217093156926354985020244288363574996984182643297943983633201647551004264738624816704025459606860063204416507327551672345752522734146475509496006303887955080575296743918726396401323563949517456960270679013652128715126667889924370434678014341488057887844331405259337453642083591074839624268583726161397214016526384449163768479428990503737896713262382415612128940988129469733664287133761357056971038100758632192739718828472919363490933783601644150151654159238887776573451357470491435711390939452586739154406164261111868763323216391157818741741403486227127335866784319070511516387593067715140501136807231623748803327437523535961883425388292441996197985724951054628103110882920306997740066271074361684440536768268716952312021334822087577455539572190637692990485525747485173266427424659083306992032721999054306725811325845086706727472607806150147175856821505633431025818350388523930471724064740358991780511225604281524055684672813735462204305541648549688166007484471627678621672429777717794858390181409441915061747548762835307877224407763457114875190167507250506831975408739259438463505825141101292435494990769514916052340924084229441671727232061181530701187516650270424319534840618482814505771299705317191849722792733181631377250944013628998074914297757079618750739438988434469424160299862390830211267392275161900386570247841148103745640684840119806079194721197698720524278833899059337087219732251073939773926891276447719540179764837418094476736173070389330956085861336792932132780794961762065906723981079578243952833369505968710191133895207788627816730614850516576029358784968089907610617474767169564321871298436156636680789236738641747524614604884880212230637052159969837333753769974579388611381549549940680347857844586523901184381682719715691426606957167117097421852275419176192847050773430917906996459908388133367014322848421499095093707562958564626759438319087873764805386137521645827528794068797065986524655489402751857179017668489983646444782193389138207173693322469617919041374367523930864801319493217200556204832543960943981686844709341027831234803575199462111722643579893443840849956701882551897713777382470784315846862799207319944625523487278430411548999035803898788573692571713886582401333774238068350196039673222909516309702642262798638111729350954207075963631981003827351605926449205117032200212659870532055237342794915717838033515877878434352420167594428128780519009719682015105447468663736938017534926287096636584988704482891203292655368711235590838659521815610165155366308329691849559577602737052273884528528139989907862714496572733059190868197972702424355774163154343345894545802129253297958092173951798193086300969987361406174157265908983842613692861490188435160685270747665286070575061808659425267347690669340757040370948387879027061520537484541909418111332856258254686724219621750417156684524530774904815683807485562687530917999321925826775114244897613539239939910921940877594875209679735468985773514004925792281357950297435769592254156817746872404445918267045425777603756741070112576897895222623364360038782359017000148649213587161565435617901223579213591412047371461440707141311154663110244389817700380186016375877399368563261296515590091920041280559455956955728564522285755667359977570441250822788555476783447419217434123518566493815996871612151683801343231811757515380770202120150242160648376794273377622585723451406155143137286762823247399599481053543278927826924513993377063315184599963910045629181650346260537568333012577045550904948678569424267904118773883739121401649384819491033110513635322888821153044335830391604782737457249415732413330916798196126868713534087897781840147947644832995843547382774066470102736816516341084757868834605704526273599937808283523954840528287603186917671794800586754732558799665985604643710369979544133016658778864356948679098956390062779275350577490260868044874683543277313743441057226997771163277316069357243652039137240145857337026953412055051228375336992843334547422122304633678184921100626175316587219791721878100160135310502030615146767809117329200980744868986911079350117082321234909731950236634702878712826242339851282449992384550699906912995850501739298198672653674155258012333458158532556607794053420829743068809722738303821219077833737191914189162474862333606485169576995193786757339256851560575331199140381962321624076905586583840819603906620793716502980356493564739490461931383026727338373542097285530015973772286854332759422096311449227597735268592866783697209818290364735344289636059507125091617263858422300263564069287951700557298437529729111896888782299818402975848904016187406508236986604636116096049761568073020991146809589703044035188110178137880880093357095666341563129929445286183544224799624815487983148015624422868876927622534537514020573556418113928891536689109812864956250795281479542605260264789176012340345978001031441488661603490226364218116593622428982730886819282827331488581479043525123636687322608849660282420511310694194392358835807716630157776768902167285370385397980820457522007766787965006972311188852242836826194460212790574065970748123690924241053459562094771019992996224126799888516144128009759849760584857116104617374687297167329886656886402142974721309224441970879452158394596382348767961408373123333543063061047199676513359208378746198417239936338785438224875942017559816262399625840654105527158374396838602091821539295794367808194113121189586326867407314044824629369348153780389316075927177308583147483975855479976431717986419175545794009127741823763774628682280359329221223251220789499815737223696137096146615547238711966198579051605864279619729294578461389702920666163780600633445176423851657365825364747340621074439864159136652528562401136855807765183178831608408307948523294931525990811285868875285500038953019119466471573146691453863608837428589750420173926431031975978670220966476750504737207698116795044745574002235978912228112708588487403404471937357450787639967949896052911467119249451874534190400140833529943483553301585462712282597863004897859096411099945143229434467470536095888173851442286783784450992910513862809508823113183627129530355378129416247525893157922060414923581586254844557752144331830030086616677904323016542328667737099033837262319506276542469078749770726359751390296597304058660048484532533696290699003225982795295721571229528147024240407542616821103776498968472320807090877609128818454737175903558223697819792673863626789256811930011315862007071745884341778643739927152830728940181548853344469905378077311501085908362229772219648908121112197870294958158073102834190544322936667172434007260886658718068850378807983863343566558400554272222748062549630250742406788367323308236006246689953222375087556535973843424927576485903588956358172018566698654302896958507992293609873666752121053141813438555184437674675279924362741845746985941148088531785036051023899474454198446310281162736036503443233638815761074776105557697232049284350690231526859782064280262153799963851855476558196978143162490006883981144878799827584869105985220344268668542126364073523978020723893342138292932200491487840924415616580418521878714098395668427116066960036882802490566914683357806369157798736354499085926627817495196272981672841374825773994107931513795039997591219072540519975186703768157724337809028755733872650075696752027625852053845636756962913952043094860610293908830114733856706956466374354637768196225793461912367337348785037861833757997796044210219193057272000560644150198855894388552720115417501405812167969967483196187640966095860338739354098503671155266858437966412478023600100652979783029333163437301452746411003434695685531933707605978436447549862408017632948878807358166948315004815518530143099102932110061696288276091441474028985185407926246422132228781489725956768550917716851180694863825435881254075268622537783088056641575587064915413201125214402254048927289846442771632256440107565626899220899692497036054936738495553499297115352618296576983151665369548228186066526595598884157415990294632795672826875286739018869372119814737069777510370413801031955763420335269472619282075103156208205081673653023014426122177174163674514098744170587200401504934548979060600506437836245996966790038144083013273137256288687660497909637201301972380648406278491494006781783767041842449889918374464028086969250718219476955953420078636014416291964913982923455852086089621463732901199203372169832613574075905806456068087239134807715886584526139545888283485215408541928823974675417447423808059373125452886317709967988336977691742460078908071288886324841052861969058666287674920492372682670394540877760171292519508498116429581284175663298930742293102206682157372981247537890563972764295758253586213689537200250925191577322270777214941381529560685825822365867983691442568090579841591849979464417665281214548737900892761387906058460046142853144165035364247943406370274528916166431211247913405360144817964228617557170164041946289154841785275208002168039206511251918298784588072884945172237740480632659584758840135059541982080305531932656116216486605199701264221014715916789108097170849029084410240230439032329837317540093519452514735772199237336309343747934446029150627607405366799902296022722217531203457394435691209816187318252300239563839726808609182792831900905937561948984533414288598944333461032455840448682402395128542265104033608922280129048102524988377065066708415028737597830720165281996826838363512890032702094233238144759176186012322068168699379488782888804490657797482395944390104338116622158006170068257286530041571241442367972904425041865179438843527334897650525042558662227706423693910933217277696053649851165701996099492719412540699446795621682852347049670327572804795108228747441451455320491223964112352106253932075066288740245596531418404517417996923840698533696213991912899900543803231638213708030920765656524930264070588000210172730706056032791203858979904335220677825830529057285262878743934243350266375092647411927059327729088677816740573502651847525255231405607550239970775770592200722631976744625569086327645771982009640624828600561224804598189742130832545354087262317167525388791933034593470635309186904324637613446499475772283608654319963250265984022010581898780252642109321403829320954525111519101050666894177379240996300799143844940488775544768082948415078474981144104310447006777045461945037758392228214424650856198340328993713388123701107293316837684804320663031651725284746393732438331006504037834831849435601228130681323687120812210016477114697209315434605295479404045015414824799950368334449049276592105615040286906128817483629756083543170162692656840088381799693403198080177174781949401497778256486242191586317466347272423148075458760520534751620154533763663763965463211844957420465017628905629626281532449986635405908562660671298016148164146308802457968987511592753319751041101705150870103539195449693254357911069637014322114640253756442918654243013044591263189247510233652253971946702684089022533523343901949200197577709328017965828473001815087912762304242277856248282581038932532790614240411894544390466704853734748428535665965071235610758147551866100532497352241853338575306412903441211483582762119774694499218596774589892219047795082169878584173563398784845387455041307469297635439424232235823546121924154540361156479858994049148181855697256531232325058959279834848546721518799398180573544379883634998790571561565070687826702121456727057537075457988599221773784205954558213282335550228629256157963990927299106707764137289451926984397454303405164981428888767299725422604900043544567429825298121274372977957417997679453000873772612079789591186067165164125273023674943912152304404000025392798879865408439847526616785027799936115178112055742942492834987957110734710008494536713860475713642759696481853960750319656330175612395828587521554316608077096109985067834780924384596450601216962423410556557862697606843608702695202959206757992037708668686311268184374039485407715585423305250100627349978877657881814560310688044762268746820120243581639963829059313663614473064952655110715671080544090382202382337185036844047437584700133739963689096057230179229025164503701072003376152249629358557541832914840598949069715687568276339394832181924156473650256973218368616370324243073142575710758690667511311508541485901368074550995268576936040852614026950100735437193347348720802105680840873149309712540066443387134621803902697568905918027474798333985095132738398698676518605518775614790008019263427354467846190193388838832127581412694354831910176189534407583597543755103446439866073471237078572847393952302911240596698007542827521024973930961552494619320916749185483717747528192760867446217806494060022529765657361070917024722691857318870466306584972009087805373583178219644997489342829928327541881599100378261620624819592338384726318727445667935038350845003155107341729507915768481986426760396270605503054024590625483883221042510458906249902650464667567078132004786075683882440434302181647417144064680005238053364970416006078276478136536146318629852029748265718045392306467931407461988489644876753768191132479651533205439917887825879064496547838413017868404320561475847034419753253013166332274998874480021353449484456854476957517583518269808806799147926638301639190536777778853342192180959003881227513280539299162282525336190162543415372431268500910352876528300947575124004041367257512209057438926511993413616718556272065272974151974556229636888005229601878433328653605760772593820313196174006339058200326812787006543804144024732423855930410082905217552086838346036367380760424065878205802712093684572526783359373689934399853406289929655703654420791332740786893037925493921335088151291864370517317226841856014154451649907330505981066519547729143550116305514692425615124749955938493171023418427016201844980990139401350210991580835585317718502970461489719558678020154272571627332385438715065622436927836430269725307896201862583972685578723399043369266171486740935151637488322600755813876047406789797536557825317117543087984460415553918447033481766342317709029236662985920586184276390668945386240231109005913652405335680170651787190735244350703366595628481019324136313678766206634881084563152252549224607385147607060010835803972003080961626320118757673398698120522246286254220482079698202442032156630545015318720261697354928997957410258778543886721350431595959617017400661182658366187548764483299658346470728696923371743264970972554294921370917599253359228639438031359220421646312258729042941528800722713207618394230597189096506777199712897127643344898763268732555913558195841558756549897040709866321724617459337737653857131707641210794081921195977057796092119122289735988933506337353893693822761630218595809433209122539442745662682792038578809216366288962105816935843843527945353707112572675562661394646229047220275247195196854288347729998367307005788182242503840644242889922816634364423884450736562704879669128595751975225887541450002967966920320766690435630615889561793474562035752292086288803815665384809282643013895916948172557686208874788226889395123781477174959561835214410905156618164030361096682397652621978662807004975342501093240950632777733859427693318766309055751864083049111581946716597477479364976080582251350162179943827078160521222184344520934122154611391315305465810186401658813038042863686620352418393476049668342864036569041179181634639842201674391903235442881910783487032344300097478482578415916987813837356386845914612351745342611495155042329686413900507251502806889974291043007666238878106738897494812691200226745863312780119272113621317719200418667865797296338807456439858365097439320781692713845950291861605879381372125648984446585943325836059840965117651828126859838268354113716742759216509526608503835447144126039888307634569246918930021709502842803765418657612317718418542335775264634308939517155991896546768848181469526153551830440397167089582804997949041750516116122998226645178848041122152518538862384195300745987879791198244459647143524271675305759267481375964405175133507227382236501308988633265687159588669978690865624434838622750923572737174765526168659986797246642927167288591638257709053436379734224860334759253009790470771048195338943407687453521021123436254961740043294307362298255705102461630350874492971033209259309992251841428843689311979911251150310951648715460881592118181479616106372011307423488733664757156638674713137223424066139690690842877561953680004406683753799080273142796462671612501833629472787177818292211078387137392860883688249419356836087148946190991767660225568108227823469083925805663449935897423146369557076251408378994388875884007097685971170286381778501182323112621233589097576628769425363289322774533499476693981157196419771784847860868498816160645641289005388053863250263325572176982611381189392188842497269198301819257738831427401361753470496078604920759054822222973709747390823922053392128954377196158203165471976595514752285052338704663094627476533600934473246863313397663081411661187535886354716074877147966174655200146450316339508206519825522420073971114760461589732804252755386519352564027675560727911028251247217711409069427110065579385162685115811018088869522174538917225611988807204945913711779006044722156211874052746371988660699228157368557019175027896148040595762070459368846611051716920662826162154421611235220863493453168786988168094647874439038811126301214533681691403376383857406477211496852548787744434472011737527570204663940825323364903142477936492475408990779021345316246663802484234464344691877906179468088054992082411642915074536478179261315014332704999702872378241951574628336858239211243658700484932608674856128529881699493001403196410860896099686520222255128402694441551969405845746963279996531003218435065322701636898129646810413486080189190219543048263002488315599910495095925281083416080654062913624186692526818529590837694345221742389146930562613431565869809135555173258585397434543577101680329157846899311750823369556499268432168698308319256963574763795647289378533189813920377485542149726726532764867112394038426611178787139685979426007077708942952610300531461236489647179234770235478615298605095119809060836505339067854269658512658636119650081011307219037618240814882846601464360398014273646119298079715834961015464706144498191393504217071441075799234015103852685179837430962826925318339632729428851706582501826732837591867916460205149811101406272990568556731976297427358559268175757906871938386397356603811893869175144898870643565828834238308249398536610003433328148569538451748234317123077698756132626023538752296940360053211741092530614822085584512015629257409129669814594507455741066640054743795778858025962622082959604765498603020246937089780029972999676011168590500688126660185951478545364782730275840353193404964391152555962928767136702557829911552893426878546700478663665268759073883651004805359203515617867809832822130676428928322387708867229879117446263162621750936406268874424956446690995225713111415447380942237254260651085884435358081524991297128955035700579509601582713666871300074255657877974262341280268175515508762240324599563766194572388383844677460319561803649055472336181928540525763094887810938939919444603275767326426202969328860063391116017300836655555036561491068601314091317464458896587061019850439220382261431054459796394142760642440730763701184447339448856203392434488618441685194562246828060949692845240715801489775410793931253585371212795513966110135362501897856075332631039817598414345399946393860380511056646741209994866917161552540799470670692068628305190494375199650644175686309540379818407814092965518380498754544460633690509377422483858430011895917002845052272507650834071417304685588446897456549611335181535585061931554089896964607457246090422301405100643898343746273335430558559714104170974999890043067178932118943844590407637923267349203118110368518712532450798665143083516838005111849480557316390205973554544566055872764792231687585999697682060483542627634153819962290483143277378612227991953706148969883902205106857490909219435680784387435468899743219858903217253783304017799872057152671164993658002022302740964642343633633477919292228640846821848157805882224631967760963470990085200430184959190550286193769655429722467688752891704555311582606305809800793052598187580921095754794951402823302704015147525104055525122407505350362726115204831325102936840331392426357515672391872015066934350128603966276296302882422737314799605062715965095152349848234920889909758310281723172844941716499285525447114050342264898248723108078124138510586950378725341571500159154935026857921117919716007369992024074965774307587952115793540467328322991938672986789112205027446207217241128673787728998159276244888319772553149939894091628846457840431274093018169099860784517425485438059541052001474031250442672620491222672174343948686038623210483990459174511322398103567101089577602359973789056818697538234087650185483676675655199498399305914807296339703271807255006789792334516218184581632219775645484171980665914269737255866430748337278847481878847591258021453741752093006625093257864894137593846478421610888881249784218602267937399695295109270502531030564694261190114931773670969405629598832414102053026491641509302743816565582863121800012675825802900424626830677262608752481786842225608589615577287992942166116123591312261526322235808903088310124231571894910789650579997164247192775801481833407174594109928614212819551518987125613641485134312342854483421376761792437215603484072624636945887426855963813395245474582260259443099485229728821880461048158722014367411619754739203061123845474277945850762114365768320320819015693427858178681012718025019031447325627676248392726231919975620222779247310366627717357510749914152882595177882501813567949514369096273395667166775264606254718330874195803719287421818931602202633243709332280537946765617083000572819521213884611003963722613936296595273574037608146517362032049340324592993700357268497378889732133492358170998394526931667918130435058642985225007143556770545832348375640156983697452149231819110779813961123826389815200919069094385240969102653256329219659237588155117323004849976410431684669628529969017215946048534784728346847121992982376599512989832912685097793455084825538637427766096510233693274604785410897619215191239191620269004572735680487782547636737830660044037071758028899204038385304887206634618634121209313602120333896072056837912937068118694410400351976856813492088200092239499692408183845116784694591226241590311825771240304436349632309953238568195543688370256682241394631457741458845662009414812921281626316912708472294897900477039107731970854156787432750112435363951274301024690893820980766402107486775384593491207021885168108586282533200362755791868588667354249683195049626458300879362214917744481826647334565048390149228440710999745750976238835712243216772742637070822350391884817947922701140039858519741398720676809110390570863068097979559845954584231668615990668168203283378490711013257551759602286398871870577727123421075765208650663491031325700967934972265580518748375019894842288217133285393184982351800717896004539738426119864452569331487374621150467409684619210811346512370186314991497371813780283070874746561871734268103826700835372619618113589838268543736864763809226473370970522516321782560091969265688278817787336490403187401218431987646636984918418321784588873407925420315573036665477327000515300195009958808516846951811823153508870469793053813125411762784441867162371715246236483341078499265960536938442242334464534363767952874995933803551826288148264340524481412625806265660181641687922805584000401980712653718643751297111213009742595470649859247137805703707782720249652504650649457706134425151780183099736538744626122573794116591560421261947583439442840999302688552506670593791892562284444066357283848163084183928508347027737019157921241618388665631638553319414088002896609793924063854149176021667727042276759989421195266714507663426932054382882873642234217409965414107342161143874028480305670760104327017785774198189861921773040935977934485990544731329767187878096930667312770365352931176609069443509669120407527087579922868344366250545302999311909978359486323166108614562976203780553468882517083376541493306215411503508197159715688507945027061401177358777504056883661971158412310762685971943483720457651361189741567769361281996320852460571339652156804943140891211986860594912347898460662758696995833414202579311285077096425761508940987600425989933549194906285971255006615997733987729659162374110000405541301992830954912684178564989749154465306341691655488370274862248720912427606243361594461637574849661503065216552974956367543285202826032944162662368287873769843519300409670532343710073051647013151683800939842651447772080552858011957274933262769572357451219692650429195031851239032197161142697292832073013955096707937549397161663455627711060442742228123071196553622755913004967698221859875887418118378188550403281088033996281525190022415613204570927548886393489023448946743016841743349315462488620570202673720410461044039227035431752879568016627748608990627802895061959198393561587930938180842760448876161232527365123334680226393172168843070263282138003382803254988087078092895032199674170661776580234578740293786144996512739714574245729086899462184041204015989447292886569029695203917903902537998900954699965809543969177195221898293030691405972152799245736623361876976070717714550928400329505620754112516416065091703906086206057758371808797126483277229264907497264699545138436806478860214132087741203786664095187390836824398598014009948376607807217608577468819325332476034141923669586411079915720976574094094260060426027521651017254159696073384925707752990647997445657394271471534418168739677673568803271385595193896819504950643979368634957483978488566497641769114128024044826595589520891112699211738855191787892688698716897179636454926410552484245569765929258660615226919793473617181158637618636237137806117607766400593370805566818042886495414351596853824171184223066366988269565189257092477278703014817437409063132727030103345282036644649849336726960470572668023568550954783360329524064797789825916553025677053976878143739281349832986293045712534510514171760254586651898759604004215633306465506463260055299062434295099877747091898851948501738022306020376842344467627397511021916164377063072929630299624295054812464545127091190794638441388718157944481789305072394641049332924354039084381044185227395713257261516045811965733594873353486259258190233436128290505619006460707621967153190391823529402463103060004470289636417632031722266897215888350419035682915285196899949679555847121833035377008456032557470350800829418779342516401663584975952729864998062389324299045588420353867439708796678720137439206589591504807183318031128849322931229750722883921621091217979863119260689710052064320932847443158877075916589433489553061516223625911514895507946245640197469325255940600491541128812339810038265837601462111256881088355012964165536913450152427170903882387688735464436072747634296035211910483846196847522352973781732724984193390182805144476714828388489714275944072989996247075716468015473089808384684294721559885272586809868016774761321001073874472853856353054371934990031463270150796088301208162964147089057924740137228146166877553099489869588633716080882157358574440537818423783146121135914416645513192668773087746750064356325897076799302952340108382473615773444746270281620553291173989427379478739847011794992583935376778220823844823291570049191783727221011682396273989881900967782298607006071128517161078534455162654356343182117622628124908709357147631557610456924834375201898764002773723658055696238839233902623913239492425500996342602908278211323110519020839013570611882962580098661587190439864177239538033574604971183337970652860013230597723756070878195882448100215185297543367046819141805634937499088928907439447101024313813253246023462050336157869705179972390542628040481585698426525379348557758022979817233947614914966356450098043376313069254957376387361870101822912946129272291450694696546728354487880356588384887185698102001458902105603129709997499989967219521069366929107911496339971734347951482671892900944472256378911643653722523767137886480820282051305317901651075245492147075469552813061201328172735820446367546895015723897246364022003704384961629759615494086122918872721675139700471380431760213041248031759007810206042625078770040030920028211282027453354822670264519298032212873383789389200839005363938567660355278185858313515935711950824773501271858083460054464241904868881246065121676177777055820925637119466428675803377630344005247115989814969208330224083933202253954190306822046271794189995635690295975513586999741462592608790975919843181575271402362914522289376329382340694337203050419975383932147920471297677399969368501968151563691891279551248763593139020314425203064532385314439110608062431903184407664403246367135719863200722785467134858319192417175787741909605541908335981853012394564397162577440515798418469558939500300520214126114054581477813605695767264723493069910801329794811524014557964987920723196752791238474067345723132570825498523815422097838997644011125781612573177753804440012426180449818667590324449008892253880156059937402034746832772234253817174402046308391201850382401648535133849133226127692788416585486583660376342838333839023935814288756404736600435636260201206559289021175168184581454991823893091269576424847143137987335763211047566853235128605061390209252146587922678331080080600274940925983442506202624658369222590075093521005622264348627768613756793975255981248020762635616287535113479507106033198175867911748746884404969669335332189437932049570157822840471420199501491007671605657864024994673861609841181407354990042290767497761126397417522685834305516785818441931716076997207450770062819037454370648724556937568806921839926845155912403477490858939692189960476325639833509792464306415014890739891402053882920276170032612855199286488882908255300149282782376833032391434341425832006352152210656769727878466055048722656794964905879713139074954784180368304232222293005402149842054133163798034482121634512273478560367723485588765828343039702615027349628733166807198816540796325789315311683158504543808579103040181092950396456518060383207942291940093364643487637090066411436207157561270461627065641365759874559146889348363067232295179898562536207700691892408946477533609505995255327494122182853789387593273499264322696488277003653852687979160347245832759749097131344561844310859490159674171069977094205334576049079659260134025781638650748334427562062945577991260001737605765790153279343833835150034561338553879401215732125916731882496527404571473362621615621712640761546511200300398814846336113843644958214986845051976733034674042274354341197374829664204674729193179894509993307921844009120447509292708904081378741086724154666505892290176598322525781252422103811595437035608556743087380281213605295939263443786113806180140970433041587665860962920124982021710726294335678469895120364178610179873886830583230872266889900198987914695803164823753453042670264054008442104337851708735945250348849267798553409750251022368458658128664389322110474904785141506148121452873371260872091069894176687874298382562892965317826396864276780649944330404882349341933352022068735525792055492622610884500768961166736819021125551947003837632382014504901165666098065546832431857615418369384858331265469737823068728039006261648053731666910901851544669245558228711526892337766732861087114017077171118603539524480835495144929828862301399375165799137561406986622513984985181132786456104663898878176212759912983915896546122238280926877995596091692620404223485081177539358153601276001838064099851817750513151412588143064209963879251605609715461267590515442475575482071727985575412285864959024085059569579645822675253443713145200344714084117285748872490714597252304136456202761162808406523353110801467516122623098205003726590965498017836393861190721755868630375282572438224561553514543167919122630033619272300770940547249229784090649860144377578179015982755641796622954731808423915463513425589955071460839297465528983677772998293755905174411157829192196455823885531377310907534023065669147078944019492174671103192054846504336873603814963508730094477943639848953129638373834114272344161833772758930943922668146668894592274067541998868753071479801518305995099190626687530200963903984992533900308373853180755521457861974949787130308148463491023841839687585049348228409431951065115746979235879938138771377565376644253622690857051762050719587451131408734264536540084094046778950198425562456682392652120528094934306905081294163736828689216530979729163666479548955811088045749667993935131495651086949902764998926567039013568494416285416228955018696977296017111822702093942503791929943435679665381666157699209325715361982048928603392704623465226810447228907073676694540418548927582201794204044055204078318021231171974148091556939337448704856004242073859571807860036706220212052952393808409476688873643342278581114697925861407568731058818716180023334543737239262834766414773776350941502101704928757369811486813513227263010036284264523610510019233760828163802536094332335153905715882716953390605185789421665422473598619139146534570571829753651077418016315532379143433288482282880871768123905959791022757054909889908037508502208567870351822981309330356362105584105067212038823191699461813257673054017217837813350937013469394750226075610968206945071923122413645076104578558929499628710222921781895560430322846794663585719686909520279271299741742511173815325563128833613205000510811256514675847070670089805693817328117982570263216523284151551958006630914534010157519810718029654915860678240267572399140850168412412991257836094391193777369612281448496682688894713763013957720683245042072324628161018265451902026832317805389146105120116710655310618365308729093499222508009660382351726617618704998727287145868431680490344899832621403339630594652316645587005920039679349363231894662336557562528685333869954022196647092216928230821582922925311864068612198005917189402039783475512384348767996671429361529123848927815274005473625526448268667359344065835950595188630561354628034417862734102144680488914400129828305987348942199442846419328098329290209608255360219183537123002274546249884242838065862736715983787525875223507787169504364426641825989183009824958519628282738749791879377740293962305850517382656491605470215803078378395880119758638192236187492795851089096004417866602891820131167039534959390364529788376986486936052284148489413290274394199148135727447436676758524437405273251170868478288883891015556481127232210014996668450401263949389628948801138931617619981203605281508781189402053871687524581155414643334094490582791287416389069727027669503766119320163203057847281996705355819004273916962747699401930508855747347560195375993433476777698745057196209197149476887612224835407000287645218407521952175582136256184790811171235630167318758542487645430885199149964397570514437041638471850478957238271291165672175499950074899607499392312478074652946775311995636290093425614946619670579130900337234654119342201742047241852672674785358005577902649358657568867715657011261641795004707400433885182440267460371633686687146102867515047144443718332452858838818224603771360025720689390954881009641379490490699859946825681282705228778004561684300203016998625082514783367551916155513451471142768343924858630620786106271791323065899462479786262051796962331440519222538314955545243868848506775082332952641047662856485851334807893086297816600418873797206605058911230497029671057765019367184597834218497760201652073760216540591471284112942512425463998207917553048155912674368583918381696856772564067550025901872189901029046474561715515897080164762596738128321418159149461069558025086854343078014548046190805394860509899496310936559358984022617785597049240585329090662311610010064691914937732324492974640513167819851470156392371516437692877734485999664479105252977359536558108655217089751772364493202263628416161110530633936179243089069389449256509018218039763443042220625009575080907105547801847110996592944743380899174330775600356080250683401857189195332867528619910667428331588293731245874142039453490656673925374284751270111556407680584868785642667342385788223482231052785829197736825541408891070412779574229456433546291633805940073484467708649918569693065800870595515963980908363699004399434333730462897059762077498029128061373777556857506108592846723808646109132970140856814065519964528451248147387989374635634965960308790978350066406307974672985683574013851963369868874974252555061763829813466740785687908267714028608884499117525371000018209411367502385038825071349869404627455319351484699926373279201805932914198499995708228197621997035562997589918315299250323867759304795353610241309385321665829563587521467636117243309533066833405878747749798775309869151850876877720338317357176955955174790754751282014348508615094302847264408101924628698623014848630549162408956074464245357889269158500462543837479901520702404859811805751615157236976421634237320259788125308238128788884622910811845810565096740679308397464862936458399269322099366179883666018537559969576419155430968527930915346036284088116728221135832625313028415104939466973648848265820569271839347114523837169285173510772441300361153884928907292094760853133134374798991608984398368331961644705742799261525773590421662929942666566768200718480901811466320734397216001412919084405970092875851746099361294328257232489501231522208766768582788107630043928206466643483590998651136410813277254870207176584144508129747279191749864405884359227363909769698598345808893200545031482680058638367863979067614152471167913981843375513300746453035156764017428865552732044420916046623918283365442888278257767516090749285526321488566945392795148527458056400755408364361072292670699118587554147275084472863737681493455089385894959275534305006308325082556492994537332314052853831083889445246055165035597081412305046713277787375413256995936774909550390035881538686884387343834107541397921552725043807609307413608691652203214422335127296397144290441066222480320058756067676299068929687151086308798884657461000527840987591002752088349405431323568075783426137701454066016107265257676164719734075277460164134802504528259603423761899967589824772430210868053041026105208682941599073907908675998497866816283522785692793966136022910236727974137887838807774899189795787891331921390001145487161624552368757499478435542502920707882777565334733474054124985211911087696303708290225564508593892388213590534547641162730835065779096151828624059305905421730571805080413743961803104602491096074602054545802350768098304103309035854718565541998371369259771727113414590246555676895876908739056756611546196625324161079746485538551775800715816711924712351886742472115304779858524659643094935792360046014583395130935367220078256809284008228580113588511507687492653524081625719710053586756343927481767054952339772382500721432668198051963604664716813669595040309865165228459715734842115229621425034473612263603859968190853608286400452709460558285929844048795390968804224408964304839673992252930276834714075127747713100336069010759757687818305521398140526256606939213297229408942977227461780628896167084641677595088040782164184814290952938841653964659127455079549307823605933809038427446541342021981529978966672051428444025571256646674394533381885725562399428517711436390089284746286905221717162555533398112958829862619554296409966847989200306636408087189753262499594056982334204818697710477887034402420942926528050926368387569463467826677290035140034530696116400084543430192946941751841934156893986884113995993163621917387904330035629228052740736564322967826808377195926924259112641607806108364588683124756795913759606868056113814807473240540768225004162009929380532754924044115463287292619523370921859258327728207173703158895539467603535457171312704577007488568486470543160567500839603691633359159140411734631518655060651887461428135088195301542919646663259860468312689626485960279346892348483421727045119249452444307758396670511437577934640381316412980932047714497414742542285424672340954962474710243878672437334191364088954783847118822224231018538492279252599469503699408847137184773906110098887209919916740031905825820741446136363759264973432330174882059871268217154864195724585214047144626213550116842160922383459868171186992029604676647705448921181101825439685256415598224163921523299566008034515003811964995138502336016085524324664058383833000750429377815372162256205617096705745921484532134620587701973327272312479616577471171546994678093556850922612727041415164365616548057490178491802905943000322365258872761305451278514607118120922004877386228864401763173971194265856736183440771300572577454257485698014347114256113580024881165148472128391760841921300247689595016312016167846175307993038906246713864079294363953882822815456071261226712549148613667547822259817683236106356674943658045273482920347656297936946340102058164665899944175785712689632514189930797229110341120175814775078050491439604707395011700949180996042108820018051546507526716623521799444737325280467181910841630738605483681028328037467005947033569467138822916520479755767948751427229669602105754444883950806951259324451892395827246137441261078247902832905058051651955979688798343001811708312984314772008538385786656691685591924570763605251301068173693499156535797370920900104817226007959750640226808415421851435877035216813687065427123606799547488205596668533970669157286298067592283051288974953317616399607367060793967089450183931728251813057518144168510362851069039602423393233450106015944464955775656939413166632278147901721517253386002477201266798692346438726714201584902161839962407627618976226347231511174189467937863762574161073043574239530869678556951826960717155563576299349370844923897277320527335387155566213996638979891006194929353232935329759693178798509506792284676566841852771538822381840089652331309513951448343017772392970434544276069854102597640289463493124681944727334296601978955436498354100701711097974023552883456340103331107061229923036625824532511955243451985486124474898367233565676632526924036703939192257098659448661884881086857592404232898412753355279396187366499728574808185234972129176017316991364667691229193236018501130291223109969556959319424987011798739779247012532112631624065539465313315900042905307426612257766427907471779350309157862936585063581513634269245900763532019373731794709064274106532515315076609531640925989096420314929735416661369384444885703561031284800930108503106676373469252745376812193555732316876242232568563959118012485019563619788850391387500350737923750981308057933459433300825307263797816230050285139667099616377466275762038052417715641295335368215478417915688313435229123804201895346068909328079974343284415846870562709880243484364589930483649665458137159476820113762468530114797236150375870013680306043828081057617076767355126382445017334153652871539357512887107957551880997280972638741371267069013524601981758860837119992601426868774894699271299682272181992814910070592214553468863390577242838588460175775322551956622871130514467473680000260038941841563055740697883140761767564643014350505792935971176840924004553281097856366682523762143834094907367006129225199162081838697888859603460817556091937409138296092509019286617541008274867933943197583804116599127901445608677533029882748796503948796670839850635151525626197788476610231177868830342696928549884500739712847057286755617946068857748348567818384540631480565290217963806476249452513841967258837929030727276762010704813358520441922540647925415332415821369131741965381768660832388808819678982229293386245767364018377546867858764918440203253985408386047751623426389640547875625112887906810392489413052923364882952733799957624651160277058765133804450016922556889574675341662875522141397636569527318632618446977126285612153669460468308704117113436812679643569658658536258687873409057147664265375741332912158042153210796159886963549659761480566711178123554456809366206217769989078772726596214347331693176887205942212037806098328995404717313351633418447158229903782889365068076774362800395601952133510301604111813128143676572366508717660825826997240392192540797529188573263357694273890709972962170259869192559056532049685871716339745981662968013428526609250086169710603463766546862546970307620878883179408453134192561339973459559908805157295534724621088929386062254061619403779271252330518115040477285293126861173856218226599741756002301970925775264654581309369768369379120282660476986643815687724118946501124690720988672689417435388774382101942636454149350350453123359781271224819493190704037934446870246669274600410794554070459299373730263202219568650975383043521915094168419106884814373698697415182644402168980719405482322417175784592108353961741572371102946477170575052068283669080915029594032210426342834542181237379195472227540683621956726589362065057424212926479334922598694267734707509972752435967939324644647176652850827201754681466253923792069385674089590476294488778743726100636563046675605630305440660214389281002893124221109852749045420681171846244877551428373176250698281233800103962866470713609785833344253449465853226862903467914743272042763148694335621755550961653936055620276019609452882858655541052673115644969407106915452919718790705470370375303700830634365188402549850064135836504005863919574984358194207283104867487380400868417510890934660815417547996671866838956804496326877469842954547595003183485873408354318747566516100860156693303299762105410005924299492658265619648574353522273913416598223945552300615840125574217133657531252667689634621780068201711642404912961644817353033020825592500432828476717158101263758030240863850334953824905051337732749802903635239317050713412318985109990464857702505583992133561549187456650058450455638348357420224857186179021302411495111308163777584063388093331785265738027859345778721826029124229955034616996666714472396781077471764232396093000711747305678535538121656811770680644565367860467074076729057568212295535587678822182116992997621431152184209726038262600461527351849865957055644262120960300689071268697382604818943666787003339084526769822709358154997902002345754258271523229846897015390490286789082668157788667356192745586578333508963329042467322149246394652776847020728673812448241321945905237915474887634282813465278861356262832098888019900764022050177464609171641091073698634589141548152005048065648492830428197103878318664983832156436780481616427685357498511998801966275049779653995317631969648257754376013592566617445924533508482861183058038717112908457532252551313612051500457456221796026302326072888993315663801130396140403056730229097528765501532853543257505162410445893598077154775880173427713265034408527197125608909529871120717265848709886620095876233939492167648265879688471643423011142107226893576358582667413240618478217071585701640064633366505465399347733729300971550387089778796040536300859361641354875472318789339800593421326377522604098239054354903837227215666833175297455213606401038343442472649615186397820524417075744844335254312550981059336631824229963395698629802006247800197239029000211109946609011259029657500979283833580919406005110993967637582032829198309254327551970005066769505459621138455485225509680232820743572460834554128088459332686786979003691650278240210161314413717233506612779218566478674827252521981971811684393743654077858894575337675444362249181639874268525576491695772673860565971660936889849122946225951189236682594189221804495606308384761819446161285521991633700430598765976018011858158654940739106488533351961420546798048749790515109907891452854377438677699820296571827759629146033580515444986436665465333340104239495010036316571781474782809987183303477761671988184931403578005856831409463130750082093044721528960621525556179265497849937380521200808468500768351230111312941166208905533421154140618731434223354128132323080477225901594517899318107741843397837774167033191558539421091750420135535730539389018969751529486264913609111245105120495377884853764013937215743979796091156730452945689137162361739752479733387164953741096472659716014199817773382917903171667254237073252944539434210701763842420098089039675514139991055936261814240731454265039323933338686198248045819518439865282838185821572090677658933731829286719802526283883031808349376612531410754916862408337174430219887191287745073345141675548480685291499376387496402702577589838508807311117587044203431720620821996222165016348614583376886774110845285971069467845358239819697593385950907791298485224131861264060206968126561010739370464144217946793370482425908714885891547238501960827180632571215997601802712897305839233349507049490937698241358667051924589032540894298613596189073252321804433353394771456878957498253478346327286468604896541532169309652371679345934153989402405949202057397771461646024432104673708697027017113434821128994156800094248587857445008685763120230207178672256547085497563845130156305081584206215741516661719941423461154400737811478237820108215735101326008002515115060141636072056262821821276067369726374504827044361662759480162385711435113605805575861602612458926813799764945921165684267165134743358164472981458318222613849093433388091226669259264008411437435608051784728539911114574997094016049810990793868035942194251181386050620604421302581235892571894369052381846886730124895902202089941037974180280042092326287009706115131739308787405373276312427134850643757238689988438785246238138401428220986981776426439020114021693616863632970702528691210240938369865574967414130351840898565661977029477877362494327783685567249343402271598737145972400396541248260477782106609439780806190802783909787201364485082767364235416633619192671326798501121735156552664911653044984862408172789077555151294016761523742055116066700907112355888797669003220260106274316798333769201339725878350827372791759884437245665116835581501805705239128300760830060223658135470809323033486964569087393122912476050246635406986110850484077913642324624421519924056011131330181081822196971652009488950379879652626977290933862037482756363383136198938309722968740440873539233608425572733007842474191857087201139339105189285593729235608251629921157215757277409619109181071129675244164939712107169317101376860417851072966824834362323866740396336825462045130967427165338850445319344345633786701225226359225858315488986020531301858387369760475420729661596362526976847027736074122972804447178158133360790656381380150326333260804589798419910161271872790105230303422224462533989418284623352220286840326700431560888550455175624946509921735769493824256363845460812051274471893286342140694280933631151713512642566286299751829525034485811787033880448741186012406729341883187828165264039316520546516379702292455981677597199244869671267043185383570576760652395061851374104085958466636926167829255490608124428483895773741651793305172638145334854424852631640768144465570948596869205187653936413916877211886736944838389971544718664761096036993886074990957260904241730528499807854428863836533718865527130995632520864247559112712381238629765414581461130358071235066769704690486080647927695167430185356159042913727005824897116930707929035504004755438301757483092262258615855872277631549423160137919203731221422174345444978261985312785146012806602911860520319630184444275158019057700410906468345590488637154388709500871152155189149785446443696356809834438034317673873812565592978774961506200082128176546328179572810341510978871024712149475706153087516231473320156160955712693737499863938616980814124523187597580619930965074963739505355386015293920085201766526328159820651235062442360239405280658360239990330943758807126554798699109140765981831537984172880770648801879209448682131760334113075583256179602871601740612383960292832776616839750470456875317622049754401978890982483738813296475521754104508316846376361981522079882683383734194614791301233749973040303426927767015062876460401294858061410715692519795658566069765124612815710178473390686318452153301351349088535185502093057146039774186166181028029012014499321851433593919995692584201479223290730731970132884029422268744329314818384599191212994724608119298062175859371954535892082196747687996808184769168991760251369502636580683166755051455561352171508795352768059912272406970521218066973010577403628731582877540959392569780805704557867289034129698893143485188118521489745451275382087687556772495339683228404438869154566016484567742514452730293334186421108976194215912429669546159987499159078398300723039166542482765502041844201376538608501309377734070310498787226875765670430685373996119117057387180855522864777672234102914840273576241849901338909854395363651106267002854731003383719774968366243293795817448126732577035674261130864298533928850504626664863033100501115708225703127695948271747014023185605844293716324319696677647928675638630184327814711728045237114107269467184541261954852710120164430575986977667762396403724604596051170354494672853036770011529375909180264685622324514711678012864910216041737478755839647693694570806742055550001421447932123783202837886975357714230204606893861890453717068005072640885680681036461485378070735923248645323700034994643376731326539052220903874913839568251182823773801386986465580348385845328407365174978827641472540133973148135578851446506212383213855076346906851721386479381139117857020413331696232644056372889142720272615706240066920410574050103679959487230295723981398608988072897775024369245180084346752451830045859477224963258324109184584064614139591256162598001625297571577538292113990624767576401019630527990779993452355737466044924827369585862292648580144484971489055137753215157136697504506508081713668966534039179008130063986448397339548771930297680588286165604551362067162398729430702408420911842330229182795445591521620208699129640499445833905783450018142252148015207127464468758954208775463808689432899725362140325666364810726112982024443919314472105494237024097542767271047229961715988634833791276998479052898112155396543797106416442357345869588767316228090749855959898355642051684714280981024867142357333545515129266406907370351688654948904119021272682705183770121838317574206356965655489324612227098740887774387519251221190950884077328405077470745925122420941880755079709433955860285852975158918317866831588819283559620614049910472819614288333164708879666702541510402983212016178422509317066844006573679350343689383366911146352977214326830584357580020498241826187858960190980146415318589831574946499072740457476219093561108952284998218399453086589426891181464994401987025665334159396564358645912706312560539144883650358894012349738988884181617837785507200387414924360779176212864361075340655375893366074132805004932117455928667062358065998461576215259028133022597190394291235340541130139713608748597892841337811473434720622750114333978372680650164630577767778941609498476258305080516418639425685953701552436424933173913456861535111806264152349679815909219769267330958374844657936406441369908141605547236185213132973571236021954255984110133722499555607365181015050220389983879551198314324264765818092938974813862878061678241635870513444127202537419938087731666756626723256527657431466345778030091221789808769316770227847991042181882870129474925887921929872582023791388490121978245540779489912913647079041499220213433455192053079983607113659870769245045355721193066165823443414468085087230935997581488417701740276943308617503113235893375736059719694988509276170423737369315724733320255755668605440104914729748629498493037375583128638969569320937245567841483914948689097297580108821832513302169904295430175673532738149392956149466923873242453513837814431747381577614488137142378505487029667046462373526347282116165384698189168153326639660882749894945218635501151076423738753470727719656208629755978605694405795151706905317742914282915948463637346884665895586178965441993230868302873077037551752650392650568075528630077700951465375480151065081214626835708099906238858887298855260731689071151448204279586108048723620717522098127159244609791600271547870065059681695494850210970053861950741070514266809282071629408530139201724852959115166600316352319440771489812592596100013532852310834152010248238930648449044064203052127600009904984085120101945955027901144439490323597943554308329289661062065329905114844296666271588742456638338216777791907071460029099219918749023135329617687856998299888557595641346757367670820016257530969969126906949006361186353614937616107052981557135551765261173022596347895761232066721257827978768741051983788578353127439490118339540503207811063321362935461301002429013034430751746748354358777580301341708220056744994737059830865790288888493744260387322190472673552982069321059030730874863356913085120836305133136398354835134407398568874605739725572955782805987075272293823349890201405066899522369293178367625538680647586743265985044354043198115844369846473833316520463510867957981280419428252828775114331243089730922071109491942290726834108035975043578404333965462918072244106869338493760969832420213818241576102302639269095903764175127706402725548993878446624837599656249288475612641324652948278663852616348791771866500253271862749998296117993058745923317925688747902130811803816173323906422971276552672905953989240292383915585049346854245814053509747800954312273587265728915788580764663338171140931345127831031866920925817258397226955508663006723727481500383984236383398096117762300907513066784242780160038507076807257523668985615884998421171761212150346096737727554425684129658957363942575456575682193986353524905644494118930450549317138840084879085479779295817826770063146901362777282887363219962792265869055906363031460161820566381971580891040306306955580461350841824286067757265253716204297442618145053716813087683853065532012071352013989661858533951712979887621933120304285998241458315124920621030502952110487914516196758030811699763090218504584596944824763851450223694386928645160340456930246290679489918589851136738311245336512750426109155130023570191225389515869377421058467005172181537526826489700818971325915983153624459469723337720851541684582636663618220123455457456436333558387687343858620879687842534268304715425149197268291504115838389441005688496350491106320601622309997555055287737404830697270077947170177307105165749823214527428993210560306567278195284221563022919090326684849729706465534945839983598243408279984539409226532104393115427920198492173779671400434666461547659084296277439569443520738224067191542307988024573899659531217157529246162640667652575934423055245348969512876731741824535678023712026005201529092853230061091469050545173876385072034224704952565565563761896777005649322327668048027358352263069216141895044371058223039571361508806045373526149878009315944629230288511361744245906413980491063820875768562595264418035181276169911323210058610286957095908385885115487191799252984594982218663181244381187913855087203949298440528682973167798371357789743365794428967523713264928030443404403868445746848830038685554207661481039607572973880569960647814166203581080360092408010166889108280488875457211559485773933055309087337201642970706034373742399358643880852287700686651134813475917855163814996323848521070504523758553773279748436017924851920388981502923458269320622324898555797584141145705729572631075941254650153186326716261514454018161367093644618339970436890006297762739749460583333046031838076195456094241148604322005570913593301085389287313121032380822522983934898577132237421822249993686235393700422580776121228504918483187505110572439030573227663800713272526507238556434016746272396969725672620220892583837147785062976849487991893070706380190720903172647732349135928601887095867861110401182158824047760403180298416737141475278360229221626502543288585380907150460394324375906964530017416251666593684178685254882712454536586858019773714879062158012894743317237771984345863384864289404413851585618138154911814566466292454298435503399043882698488783293575742827740018361149675448462769683834598530864293997676927011626332170296325789295122741542828134524275103413419898536382559148608011548708772478293576135728289774219971403513310969587591322044617500404703739730450559690338808061958886838527314445750523574184042871603963708984942597217650066802786958054240070013986619690285149930241340593190700226044970976947214815924129444039303970420126893066912912521445618451669211071024377640460870844092098024022067335939076109608516480939189132543888787442037543006942217658138076973861568432042251675583310468173261126253436009595230973355614232645610445562852354802057774072193283419169206925566472900579689421253542491497248743446977489079669809504989368308263690427056635658515117305417958750986468858536332454549628844492751328835167050604115390237173884076105424343031304118983237034811696902046004717403435640329216277807095830664259356577868017443377286921596063080147044594954647773030634685928674170502334409153806019013794672452482165107844434668295004485665591336102733449656925214049363289895990653821696980836144371255630931075541076999142267568915250189191131535174127033412367639587614693395882429218611507416655051490406949713711153108408921206832149305745272081963911775715805065385031255175704950497371338072257835620336692510547308605949606342979351948311772334020536158458692612192726691589709521388834227326236491737431752668965543884947910037816382011117664642603270180667932047574468375873743858769779082590844192202186627768256974577037912162596140879029609416506969797745668892377102513257710180420000822650111861544218999849143954496999475129886610681688306846379709168983077418791494858630653723178931940431836472000180352361816688121423349391751567554900226853131555244727620014969257560601445186023001518206144333294319295159991995657109088360044319816704038299085005020625794444498849055934993936552235024606437235192466391521981842995894251239858032715936845232289127766780502509626211012034176464660331327976874492848484888105447754457318349943282562496045449522142999111003905293735116738135292322779614992883236777624838557559360529526510519994670192704386815571040079537001594250272634156189697587208191980491151283619252969488893288834865201166264911698273345994634380622071409792729176087955063716355171078292794116739888572463781723224145618955273797684084448206667239673052648974912139554946403540855396070454256078301717631612620239176115544370582433020860319198733479080656516056181163438621919558983429376141161809916916088147809306909547379033775444624830751341982828211714447853920383207799327738590900466678056408086202624523411540612046119124053681118153329072598601142154505751272655046944217862742420502395425677231915509976558241255218042194164674706288619104029984857605147062701635191271810140283708138027361321969833450050132898576097668105567789127203416315881569808165818267361662866887439355217494261674370250632711751024657796157202934409938431137669669197738922951803044610479119888349564991750384330422964531641545013558420265238354173354925990577755386618523043159720378554352138263814940556902162129761782128510052440244656903766545878332171159294063413625765725654872851647026186432447763452062024404044940619642103669191246415023351972032617490936526841052449131208823860583298325505034594302685235469994300766477896988888252423951777681627946261689655552665641006993321407009417378185857376562355465062389752208595930667549612065124535934923418525052240504027814463643626197619666733148655641048290828544383151587088556253881850802962410776070392914171187777445455400986349716089091969109639985072956474896996797869414009169220854624442819126245900380690682617496666931885226325506826810536474595913387657412303318485794727138278212076736809120944002325753059007352101473271239547604574390525624797837041952037680037228975463686051005658920860906864268482332336425686672963937644597637796364783034744447742270536945633012441669719832036646269243001282936804239914693825563728138395253622633252990259800245562095106451411411361999413617298042708077295223189527127446306271349013400883442571264727191673020747919224761231781237600225072974652230514930125153299740853702101542117912493736672648835878446395211993381316694611792422490636713204631572012532603650989360019378645159193099112966854857129710015605331617544744519845986128648141200591665794503017084995169166080357870264041583879247926671829824904724911979307892752333353721192312657184363339110347131120064404113539850494206847563217070798567672368144588997552016845057079581046946383785075165677606380356118886052647676056906749522006319685040980719911040262738835959087537612426883262178836595889539745346499112273870269111184782479906257427633247536295065381387210384445700702016681729127571551711233742090812292235782233652519420359224838069068101113442704784238451771508644091596490747349923225567812866500734031844426343588981467433998555915977887969975808813192166104520372744258495310677356460440522217310361545017697020296501388842555401060152110586685412267019738315642591726920765979221955863576303608729657318265559873687904644964741429786928183450192877280215341123484367567679039068801943020074765153654379534579471333080060856635154560361731654182373520270673576124895312183737021624291166144313426792106043209380467280650594085157964693006722167174735371771509796794687944229770001113920195455825425174139898331986301655537178194270042065300912614889471874252581080705133269985889662635766491672019162518726629613944032178381931222158110912872093409729466378603252328940514619486374990269837805849869901376379038013685376442582377328282397361767194832662176863772698985328725167077216013342221094707563990986089128378191931917725712829556541115608076837779727344365735996575236481771791032306472280361978056843120576114382961476606835892414801981278938902740359441724453498265497593022835325251973831355084983900398073274141284234714967606017755629316515295918713496071490649779991960769514076041374635489989241791436703850214340573100738127649047937743650846258373754410028148611951846798319493749678323478124654191418750353086651935698775657639676029639849015607826932856248763878803254348317809875893894552983140477571787490345141514774644447841744507735344701775515088242959841119017708839965229232705634298956227025252129148116444390765812585877282673746310005068801923287621556133908183807558340444136643203817503891912844398300654818393117473873973371301214527169983616094855259750654912426687334783536953396486922617041837725635088559411363845526228887825981302942493992993876198434436793927189073753213360431501749937779354575135886297213162559950767102255336906296988566466361991413526819206981024532619005006817761899727489090967777284067069406940896314134266039184250396871997948748555688427592483779756638895370712945514431891892156983860951832196508596687160112049132012177224926621314053997151624491851913862391705237508195091491837079658791569152461507680582936703910171669324306501085271366925020894116769353931206570288500917495410934984730731580165578208826157374542126120426546092957373226425978939019352873484489165840104858323257559266786765524094225505635401988056891086197467022966840796344520220060126804329444697322497028637277840095250230162078243465701233478294859698929296050813421064384557908935043798322404959302159035845792870173931687624829249021993265574613345835499198275622472370452428816996660284662533614582482825447657727468508704189819824236117154231666566872368456314905726917131374346983444249988377777384854159158319228689709174775162513960850198573947065783840017824119112481071093067612936697557039070131143933655555531271148998243434276705535812008566926723083611906612675858908594185838700844139687807649634097163925632918470718291502737448504364465003193299182833777719839696015881853286207421605629056580715305857134138638398643516598977200448373560199586523127220855945064032635599838680558201047852160192542981415088495005575685532331227585517428945163042305291180678969962879931517508255480240824836049986882144840993911046603128793282209330285003619905610205140745671961551173430181491450972755804018612140756999302310963202786040566859980326120195756677628725161756225873875506614355968742754602965151448714128010854968299313146044202664432919700091161051487278154221550991880511191562480053339863556821894254753227075002667520146229372609495347065637367775245821195295341903560141465842091777590290733940172248406402206667781571275317914533014126857982842863733065193117745160328952174994230342790865053713561952864889470513038232096205902719547573316590672916315790272734238625570783048430753881934956876085796436117774811021339976934089565517250343533502808953915955702829224910534074299092797777578270206494008754149315475495046526848629123451550786961495191986197149318869395191873340508598415113779713429536599296440171802903351527500627362692855268427390766690266636758263788193138849597070757886355476724127684974011359412464993920261127829679966477241735428039437891136706858841516249404038310110118247624343230658903799579414462959839474493363062396734330674375605375875489360866868516271040155779599376104965201325215963150710090717164924882160200447814222331989972232852343302011662004653780870733939521003116156469720266011777007490584070995823388629403936891676072759546286024373618553673026833628619042665173590276674699831154653702818376581294278833529921921009919263928777154694920519913517471123343683298409480025289545794040364448737885367868253761417778038082752269806353674240583082659301990985600044875572159878470869764938255461104950813220334880421618469245313824721634896746773112769023639839898060105187450603906006082674433798897444298529909851710195441569204527861860485964179351174020553203091647543853343677466604955025665626328948869229834045226131204061897754941065214676319557588142489699988871069252734202296917169001658365902398566031851088456941884541724372084430049936936020758025096455154810610766179796619399980234398605008804144631124897365449003307453343864605118040711318733464737193031133621538760133861127288263041475177303184970457390674541133761856716851552325771622136596122780708408652958879521207870919997869667781876911064678496134452345503983598960478491407467217692052139201279369953695750752446983885022057168567244265889773449648767673436127906469418636499254114105864611741622720581644554711261442825928588462585590603370365689825790233913885306143623794193202369527165311543622598944311534471669287487435638138977286996727320186725771385684278264269404417152550153489283391445797082855139892623702999692014555985617804971105285932865977108764351907884730100030476988952153143970907720073287189582637029250329352755274230466940434541971443620061215206377183934380838506440513326493421620298480990117800540197340076864114775178564966547177290922888364848774986023372850164537941689812941546675587072531113195492150273030100919042687806196291213621728284178538226053479734347996686571368540558190207499678942503648315977587946454602438169882956069199332298991658245195172910758514225471938221045301885147245586361362265889947727523717994203168561015441573253112769527192559570802831373840717044339417498545420875809278663852853141350382733264383655335215074841723274223078731418059821972531428057738156952785455607060193235935586550367158681413969520708001606257198980865963607964984535735315240270702684447491156139286307079728916510911589030916268130510192920380782569417563696547225298234221120039655897390478206484852711805787690130802723324429039468941627329059461378637447108779277872575920269621967259811848578477768833671547007782467869664438358193486934570311232232820279874852615912648740192600977303367973939754649307519518121833392334246455124131423794824964571629256869933070477854618788698051702146939860932498478806944535008402639020963131761009496778299521506276074766390083234822364108431971463759885726855105426253771776400204630064744031973712701339896776901784999774030334003701566598160072752350396669350990635854407965255246233240151581388614016179884755015074660278343979055535015315106122926848626442740422242803872269409427870687126147173897202797808190417828677342699503161251682891412532393389868507749739201796436085234897225053703845627311482322399147840969402320674882191504538355641844167237136580551774411089173714520225240184316445864763044849373721046677050580217469898834715826061446009651145423954042088549196841570443540265543098524137792650881342555511878841949598452440942971824137941826170057589821933602050818858716392718056622086780474560681529462862070971249176510492613825927298205155225102467794114573239155746421199169144132197768924995998796409805642841830259594362630231318731750308008216070692368600747170500794489016415282219270715813757008738716223946327295036060021806153020007844074076127498645276617188114084885170487477928476195689066664130858205807575853807649399563930461884400217358970810028588598271014940789460590660688580937891943732561552966873925755502257106830718300080078083629390756509873514589965584261075350072329380011790761657641729148642358925466546028548253114138075867058617357928527366380974581571293957231657317678194966614318389920313360734116250581548430875419146324290831179588798595002268749251596144691291137758659657536598207254319573521222085656205636778018816213851134575891409848197823356067121576330380156783555199419672145641047673010090302295362410369999623115789192308784561826729317222161251411748661844076366491443122337726734215948874036815469495044822110156585342978479378333780278661926640092227317970165185310780984060391422676873515910848487613199379855466486142863679032499874453120770800840011531447449890473245536057864781434620533423082120550895062087698615057343265018329091380946914318173778646903456022581532982853304219188098154122990986351028704921979639547593097233918941489367074103835253748724797239807361526581963272550447433341715263875404604373846509816335192088453983086947901508006209337121216982992882205577947567449938789180088526539228565525698369407795575289093678440453119087758375246997526406726765106189877387126290471414105326152882508392412900056738825153720719453555863567545322851054716560293786234998065893086026629540258283072120584190252034593903859703957570994749626040258575005177671352976985628555736846961775724773046357472398943365356333371157957027089076668012408870545003200022739398364762053523112068725843899700465060983940147908696446662167501132356246280361136872867403865827797045144606783171375978495826597162001316214718856193199510831735989984897528309104370531378152635856325856559852179584514630873345092419222365446827614969142811439164239454834073454957452812955510769857996047942752654759681971824204699713996517140666908509264837102215844721324975413429801366418241044554281541063501301538058159713443960133225281400820207913622253834701518676480012980887768436266830285071076589641988168775195541367664727268758763123163862854339102438823756707504569326532526624533733074474295559254565346693769317396946396692100206492307427984090588925055182400283896166339388306669783556831056321421526918304562918612337020071000155357011259280941665488594251695793709001622084179514717578630751354148816423447755420331915208900933047086344764507723152045537954346020734333014957626776915971342267175230220087725633073130340010678077352877968282097017264004667955865869196841595951361431805050153513040656566597848100042897406016069079236014292429095700991305960989058649467530433864542260486136282826918071515828148228385810590031590881309390325157001173487091191088017774619263691607469608268594267974027255375080220042550265669226426938362447211907736247839264289048031050706786996281580784835113953625201834913128390677936956160147651777331775553343688382663103209790415127214429013283028000583319345909904682166940102085587454261818479798017382788509621223361016635053162133263908275680608139369427293915958581542720379571853688666176745876213903169093413290575267304942000909277557088711838920400577393928961420784399941839413197184894194315505724373180279754302624686413383025731295508670934011992642353711517432408780033339775157366054873590116555222651120784030144841264638523499933386689127206157152988626027531481941068316850817587955825911790277461835981855028272013458013540916920155189498759691033309296001322547370236363696922281978086408518103974997775306126339168729902051175226203642330233867292920614612685863227189381144394455311424839127450953131061348568754638986232034532895545144835864758523181482481392445197159329992173444421289153773914979560725712448415938727088986944011385935332559503915826508639093044450026946434429090576313328066580949317908562180755208569547052665908683258649599329051719327008152593384910117092904175557177745722272142413918982486468095378204591454653902099907480462844058605842708275285052417022807964471240434869683512724152529906087787014171135104224288666428194107265888566640254511835201825354573676538610466384088860916499930610319141327019970052496638288105738707900617834106418729337163902204005443110583333891536712950099532595329919753309083087528484369326020421108696610700570920857926409589345663093791730069069226491378186757873388781704614760589867009586249376141087052412404593669260611513827526106683048475909586201674654290558612261581838019152026685250075446307983063857142097425597374507307364834396451483929805353994814282211618983504104164354392017741910762868244314526715626313640791425051926797493655602677665685998813377791601789634983209280536959125804084299327837666609662029907046918456446220288126932226372162410809365817476782834228590764235261271927742564585775959518127710676053997662859837488121970093381417639336890281155333772877524805638612302002420843379199399674960987034525841147133691917316633132228359080793939948766213354804947719690950905270398286666786181720399560012297292984014730445057574112251030906921742042639437676003520931136196119326411409348227365520210432343494533050937658440080839871148655370362565843073381158954496311828958977523359897348509748113174678222020137294105129609250472011769708397669803387608581607653930824014789558296792129564072690332787179036398843198004403898237495021223310086381778296803324150587120517116436878789198933512398046127492988718249125563937210238303476579362213993828119035128454676820566208253713728114116462379750292308919085418792425115893303632281686781632215258627353013617001446835680514317035694016085078572945506963230785911208547425406563740768397833720473511310807435177646290388971092017258493716025251175580941921679476546549582568270195328534426534750961592023702921492127219526706220569506373634275146507875626930718304709903812792899229575063637748976396376024807912516279681866210179465677934754422131217999702092095743545307519375355102585473180815514142074384246993679639321362076477539317342458386745376738007178249374122508503385904926261945481898553801966131582295105958463533348202850051345931033676228613755135876103644246733285784536834277154538226705877115304656613572873637369672325500778572019959235820472958797692541451892899597847425318250396653066411067344049064758458665120400413331051624098669331233027079474336384604381753948602538362297920520440971504220423199703743163503013946304168755325452210693088938891554784633594747187131629011711285316617947604656842682204241577043026552762501308715381417880013538940720659585682131265503485909143543571930565921130548664756871662314158144284659750666503076653503970338016948926034284834510823202745688681251018776532534135819989066242247615764565231236093563401035924659272535073691712892948569896272925502622291014291687112469119609726528466968806026900151937353236730509575522333222454336174674646661583338860569667260600563681844786588725178489690075382771980109873676135503605908726478676425546424882435586729473227332804168887233057013050248836718820267288765546369554611577921475988325138709907021078347223658470351244784249166062561440507250266606722464143704253324640182625359412704918694400745101620705459062773963122805974103706902877563381258686301068636804489965094019654693775086691964678080864837317853042441997531871795060897159284648083387861893618843537952609786318439117118161744478517809742706222248453575617167647440128963054416839237575155421583899942046454517720435580929995663382056410846413856015231642464243469860110667330576273432051879910952686602832988074563855271734449934471898532107064909098619363597700797912096202430043523579700537073179260366659175362451355665955258584707636721508699674816057722263444398229529968062526726996138276166217621929136104654636937384793357788278309447941756059197070344000055829407838387594558694229785831505606493555690149311788429061445547740436289963869079233595809762998811770838739424679082995998898496312438597354399978378156722015401288763331867790473647179784641358132421397097199123159546607793266690319824742727001458583226735920890849065845172603191193926733934325627655550360430456686608750703737491871465002459918799663563975573745474886364633659694950259954510024150691256063501143145727911424850111371945573855430793576523859061805938874177001024863686740069837347187583597855508760231278362903103904621848219138000748591397882435467153539484863887074386649718745704599872455276670760915789540918650992336068553289041927752993415673461354519141188354968126018015673216306525412962947448862778405938433074415350829410333979478207583889609498466830647071378636643492709942796579179590286346380944854406774468646582105342461609864785214539768089774020385042902022016747425623648920041945262527794885552457453387582141047850958985060960720524849954828804314229462396505759932471528964007571879914324639077755937180424494341893798235813849026733011603123453666453021045276437107844318094358860544423371330955730811170272917481891284257129134489009586526582826348169327195706359355802515374487280496009009649567268496038737501030158451072821620825746289284519924957389412915471094538468618944187706757427829659385942869246279883361534148676972264117435440238561736116398348119495975668561359211350115274566581454968671951425868702413696012173117108214728686806831351071294912913648777373085073667881715026581301594256274057179900414364152085118061187774217201419390463389385900667190188274006785113374962356656237460986640095475277588084127945648464350342833314986193488297669755816694835170688732533843712827966475498841927103487511045476807297178209173392759419771689788695435262355298672891926592912848091315300060763619111795647544858140369304218350491439323969620795413837742993669931831009464801646925380393959503085029270333046305995659006452429849221455185762319917309974461790724557509472185773255588347402395982011908370590255548165022777324360441249563280682980287223743680764682783857777005598485509329643305891945281357130524368115664347564004659462642347519145903217822272738116623781961549103162756652154183199187229832049497943865489863824157967082666768123885265873790914066896771313023573958555719356849487865267271877357526047960799252251476982889175001378746817519700759153692480243445353174499830282624824719186525925250086611806541868641184446866787062281442136121582818530879077800702566458165848672282253927685483907765720487279978720773335402742979166598590541645175518600994598820771393631304980160026556633861102076475270318783898003783653406620145866338442401253196104074208912029458429806451190340755446754749078454897288816309319327125825581449325315402746833120526680358829875033880405485484869103128038172410128749639136091038547537128820916984912682294994806269289749286238069474095378054841835075388503389142628564618388250228071170485160934973764971856108207256610579115173048985400100419256790420494152755287284335139653236127005455915559195002334464029989269167156131068434976165087035609213346308260367692876817960125721699024390120873922934502194150428104705178564682234075991276016100171438934144277453583050321780725374216068624922106071593598503020561688790541184906740301044869202517314806180159830657757359754837398489709424889640629435825199804860330027846717091969589885232061558556509207053132642741789602153897874115975260008423182910577492100289186286830467257497246720368110017960846967733177009335598080423179654241569476234972220847280827898654536028945939749973060498803313689432906361025050314976867079974407685142446458766713757403592085006098284951680707991644774147619038225456658857922334452233291135188268742628329104847474225074909543083017780491415494413826820220983370258773362098681935947093525354445263951600451077413277512507161355907616427456910840452720016892711708031535401130050013441721364241271452315013514163426967563346146667213026410096445327535173960614877792987693810564545011131342961548523821165152205624542268403310169766854513271288983477733684071371523586717718278561275124891557918617178893877901303447077078579906691924169632251855323205375199298650623334954904318794399154472770131078060647704995773378647575793322570911762002701629979691482309511246605708587063445195802949030938604808843553813836782743745603057178806680376310372531734906655427041050331517421516062064070264095525734755198857633640570499612205669343974082168453565959131665300724105317111062451706155293667106290322958852001992712640673086305756905173152689745522267411209565663944149190216053829307351435669391523161959542112385796462556390287985498708543686837869725618728737567619639715036283982646416773531153789056343765546113308546616012551316197071112178849167159329446571988361774196338467613273177499213150707684353837639819155330503887637494528257994033190353032870429699207587369926284945519241556544408748098147739251911561048184561313710815467964997186731658667955991389051576405687110619144421610300871601110857646977473342872838978745938475031111024569761100032097736841359065011612928293922103162865744145937098259436673241618964948267756746377757486522214744259233298841730130703829647198314557181809156298430257267749235865112642097114595861496713015692539859620101873406963222218977301698568573793393230460461143358725748056628438037011299606429056843203137215071500769845569921444334275018278788172877607251807649120330325116693380860788384434419779478738954242624269281245431033082131366540215153954670233896327710073601695503368421008412658454526748489870411367687644918587332789269950343773613063191629247561891038119155416279421518563539824136589901848769792473792413012683801193516160217708663890311991709379141537673061245780795361289227338364045852385750881684358696763630690575850931363622141728842908985004401448795674792066857405241720883721662117348105065190706163251648541488021025513395685433870668592430290516684789425518822684159516135446590390539618415622697612499216560525006738460954194079662951238905687984336879249272060639482682659371785720165515419701633655713039524580573906453256040866564830609647775294940916000096510674051939445920593065052768345236241460789257420599479337393503657759523298416460222616908908523401848750378194823945811149771662604810058792859510873379454787053913812564485238831165448224621159809032050594933263007464215872163055903085727843482217287142509442286529109123792779807279766132481295812742122030268392080749210815401273627749859067322802842147350858498536707361258975500655019381188146959325976782274695128042042960913705769643271651826008766688163982235321329725194087320682961411632277681191163181215284393897677027951943091766848888977326253401373999993025279914805506298603864386381458892031640621881194955777034516057129554584797190181623251451932686139364089749341957580405691006401709133988650038174129271341317558356015687057633918338372573634098121440702980710077703048304493904150978143162806667336149057579058169991321178753314086439446483677812516280541434403043000748190394604454510308379540566159168105871297096557876561431327327456819731264823271279395113927375765626431719723039903073501437314665602257486065308616539776134615567231637214429649551369594060065577247498038340355775059373364907528048668825853904469593736678750681215883234138635493439116839765273981677439010783135886382534527593802764720371985518330477842351906965029780181856021627440648829215048495253572517486137444948811253103408651211496113913968164157588751992521063626342832142222679987413117001277408181744732778994890023786676706019295548409215536364869602759055673838582193383867941780666978738673338468258998696712912850250998367507019365138441112639823506695325475979116396737701975812893312527308612388447872107390057633486673572338697470589587779910252492820640728115492474639925075708591085574532580863410956851618463462343428674335919328567506658468684737640623938084433612475746814233546222339110979663398441410810016413847176138668077680774328259972816718898121964357565218568676142942116354822746381001831052042750406951764623690284448228074760539155188381675739202393021936980097883660682812584238875335203066933406602877869191388643498097177879358761486494679071226386456072712605800755627302845832055788238069293714616831522668522973895014284023382868362005157494217926441855919742074322597430904379397975528096170127154220880549415028717774520778134311788271842402362923915700145649104458437320425554965539906166680731115761453554001096360092097471453818640713844077175161059750328697817333307388262021953010887993047990586856430001572660295132607624751578115593314630646398764015344472143535526246097379588654658189463272595322570744330471165372103974319631656403028686511568508544670007031350564227241782850086011028865622464573781871042523771924570290929494307958545182140010596843222630339940688794504818349761759120424060021576001907156315626630087854943211691665501141119079756296590606689595526643555990396451069971829721038400753116664341116478375117083783279592329771018165863384371243579422170451023670413842193339993611706180961578414840267534821041432758638176244816524333522672451056136480832716582473945750106001455142616419264983575139682511803956762413394584120969715256197030149009363176738821871169842124180409035773274345767901311939879316970871499143766080648762135618928755058900339005861777581029824107291044601179807120533888982461938049293242570214075438706450679408478343091328302501494204290519709394792312048050036757451008766855610413561348261672974246502829225959111895350177382442118023503024850682265810731860804497574959173649260774023368461834966368004347318624533876680851663401692430888823183546647841608045146444115544942044853430538397479007542974019375000846913942133613018657310669789421616469878658141105376683659926303049003329186136103887738827280522730266251338521915239496808898567926381008984036730796246856065442839105781276931585169717868132240414343105097306169610978601078477600870451188507025543522460389299628522522186463357621473992567318671529800736175081415150083221150762929560273208150641919995945057010647627207221364826821369985841241520500087513069053698247795871003490694104491135037196548201702205213641377017673587405731769362536559732350002879557780971472700663170087578381910482835856631347678781501748496481820975791363252936241696573363949707580182152135664282224094327521652722884157014090444996274815566235733495649326027251280778507077147880729648414395403681845188995229742645935106972227190768678917557403675703751434301596939258147515110751868275643187594277205019476212947759350628250700020222086187290990727417283229986707652046356678288143027157592224059017394494224674872103881314979103438412767013839164447777046323995428356222378345949528392209748337582938183242819344236205757992894071046623265258723408910663555505024839612796161752646100442060401380873423923374058746069398175100978314646467828263247122354061540485885249215121022509143206073598348476982771047981335310956791526146766896599598826925345572939738122422705122732016909473764834882574572344516270957845330966800217443220400074532328104980427134296427397575726277961169829141173469519435584670800758772513464198936928914512019368995456210910962606396854858912783595388426423941368517005711587144661961305960353035034461305111737715880108735969526176153169553345438989566220313660947418982809806652984065934940483240651608821894383857148176903886007748743471696975966726970180608680043844522346947274787028215174518009364772081703303015304803377928511247548182396664991547647148703057083655269371861309830113276902624655690804604216032298441785914316812390953649075682037681679977906447227372632529989259599198061255240445917064482842425177593837728196453015806148790918584242650125068040356829752905456828233177912647921578670994038108242386635987687947139369322411632605609207387070001389581322450924911585414384812844206422609379251769312744784449178388832395623240943633571395428608948569231697653864610058569359139315692655041813229516911907379371954457671081658628507253788082793793063572875722425346146117277308623356906283064765694700320962626122166611803800706589350328809759669218577347278268429004184550174339200691558480447267390555805642027387941925839360751281821950692260883966127297371647262057009045557422380057355802891797690437811477689693012461184120345129465227181786240566406922126649505757592057014337366922194008161893172866644236308882281110354398157703343593743358340582728336505609725311245902109414159592213312932363316422069596802151810202496034333536354664556478518301625893226594449559364875532141804431382245825663056183187747240513163845514315021770018637923072992259220592322240442591631310040424366258325119145271486418446971679155488520297982321819118023452782912781061148493034258469735082478400971412189630629361089417439406582524098094377998240264376118911443326621474399528068722812242868491415572495559479100118259613886535601602241398785419878502879239748212378326434063035074401465624031271770445110216146531074918550396098190917878882939640064013650381500499827407439133975663915756997285846699061505792310652489154154169965882510597501620327449100030399288177390318319969935081042200717566812341598495678103192687860353470439020912730905777113692794664577892059079549367537483068038978541133899820223747457328300974381083870617361300269837748864972278992010902837439210699148738840861198549777325186270394585519088766925421278782545622780108187309645234554306180155390232513881060905991001582982808135629580604124520490073016769456323059318772506417933005583451294949523559029127716542064735401023867414394785880202308211825955137574033901884760180118095298108515187663001178456538007333576540186855679960785250208383541110109692295062568707476434605039404478365027231239648652028814222492024257458371996756959468969133488113256872243288842027171825240520284193253636181874314900270605258800930729662305516840348954716269857690367052986802365625033426715860514633601466535773211595118346004407696946680554320914806668466704108915333567392086597591118300005696893336893427164011072471225717316669575500067194420593135834651038989501794266350930170837227036055162990899944663859604233523495534201701429653550451139319621909739500162584981868047042830980977825357055050538358162669413553152198854678089147677259289467982226599560330607616606512360288778326197363125845806873544011946446335731420766844350785910618935183724155298498095092356432133494450756455631182614765118223804407730539616379211497075216166305531249762959202505785123623834242758367635805899622792638223145467494522662546404995078203422845346571393301125049836447374307795041665056681150117235864567508594690910117936293964126646905900006821301626408236313536749057533726928882402718446241215182574544037822057253352861385641848927645650530987811540336852319653682472510603397509717002141056437925675328986132965610119573378700748111396150569154358887708004499378011702883111478578823712899349964350306415242272901194605949209167441053862393869732050207998329307945706911518271169632599830809529743933149187265939504281553097791306959323759308805743002218940706964761231911929095479342345428320808976342219871330254081997357735864888713823832274282758578600731824442285889889856337871759882385460201564560970237569565253109605622229211215833658041305938654963062735800488278174021384299773537586419204999180645764454304670776545771326547980115826847893729838196731220077129130386560250926927839829712991805200464115745987221347969740865116458651985163575626792746005663170924578860593505948575859076688951259311787011292367932627432294064385516319272402375198426799749513491872674363640823590136414077116453855720404020444336246335814389434682813155197915454367497277732338998214665020624210438801410201514254680181338107357768227798797762177962208824127440825041974775714433444257790702197487297732342415408022488123218828883751107672769790518009962242687128821702435412833001614425982865955738827088992727492532639805126434707081021106534773151188046353623583539895316268427803871168990311480927018014954589989059418485528882464857357297513329329113069178330616800350791978628737591262177758383677752078055486796907685494527380773865630196737725348860623974063757517688172432773732184561418448402121841492425197505108933019119651579866078306022331399792072032605672816173172826626617413655839356996721128320166499139041811264415365253924450295288877217340611013709664130731287810943098042903416764543574042188157546000095898130701900253689678481617374539908270050301566431965744675760560107735725938936679466440358664052508956881172574888032344639680437297878832110803624227719771977363920670908604049883952260936980515614348382046434102121634506943897414682255885838518742202898811622582547482759403777177823268945242676282654683505075347464193561263957051672518623102844847292958163511220794279777882746138529498858251474675143325651136987389099760305134056592005157395561935015504505902307174206610478479845854837205041983529187151830784877708202243817040699988325288922757205271535886303087925295411189947844655318631827758531412650617210545704625103886464722554951684412592850037432588103564278201775658532461794056530812439217767255901090555177118408679400955562776083791415986789021455303182474955268677381071200576845931055296543434529816798843457716949210265105420575216417571345531253221943099858063942000899838340875362103546293530664736967607893247058320606592149330783721728666212351099573031410593933654971286067948135684024008899808211345567582956190946420253424825507736343830333705877783471882827927748170518874320409445823738882724643210014020598755799763297955607095475985510423652122276884610560582667412531027243575317853559456065569415795135523651515104752799936160353311625964283731670848320421793223750737444881465110481384549317818580954433921390252469868896446890377907081708028554461723212368702283451684602883328770930218801654560661429669926034895482376017843044126112812698336816955991673568620974295653602677066013323826963247501194604947375674045401509858538017078448406683848127906050576068640742753541967695363582965776584687766979945416406047537952492746540561985588327439953669176973309952925346328053534149687162089102936834851926769087237556077458507017194689496827000403790703201215221659579763951016132811792359960633966958698820170578526804153227526082985045162739885878820173197031264214514420572918146189130362033894058335568071026670050276066883710594388536973222489015014756015905551689710254060058583929841550000814245151090724312340084841565855722049896094077772223461171152572218071308598655261504098398409013775202108413913853579771007357352697472493117904888411286353830998383215610188763411121537225920064886911048970635914181477666252930445401711723840538661869814622087506780352467166677321601984332435744894540121583434252980088538662888608173200193894822803893571862414826379778551320914848634888226906747222741539480527259110539013420529625894347266859527497909583824715893129979709623823704549317829523701547870617886748851892572788179110571857528080501691563485379859285281789033116448836625482597883054633053956826077985514206375099483363384311991315131373552879232940206322106888989573355147252251392373735910227922563051295391902248403728468882413725917154470187218336065460009550678012909631379196046767349732953713236605322073066682558467923678779355120651258237609575498493770494739370950810604357886715005843525165029329262887827979694088566012637575297887938227138021037927677303500185665257754020683675606762970644873620741388022882406876198155741584959686627648770664894161679444275451599701649699399399474192549416824028772018183527740514140498280124640320092055905337960537626276486942253350697022368546992775443154350106954509516800690129835304799411362709204268594765771015289240414307392967977483946780788916224562285288067204287790103888145095950574845796887733969910526271696120873107089060145733909381395756071960272302458003524595900972934908328787200631503513351270665630525063674743062779335311475285827998486429503619664891210520905351519472369695713174529769129307231779151428569663012439665264969050007718166521535328685747222350954099200001942626349675277395779001510798754007823983681831223984526350717951210255269572500522772729115860929484649460386651274826924706123734003327891903924201415972915750590434962540850448956596825273872653811716678986209578772756947758716389936955101411013675724685211201832667476707840313028027001770990510684936997962997793728430880417123152316087750697855779709971216212149359958431317258117215091478567801014590523796343075478174476118374425966470207921741900108621211390389600542398230518907327799162617742107911016595258721879821644967303769688803258714198865460630152535763178641836419922966606368766401749122731355366198511117685657250687006830430696899217425451148179808776973693151356761361866103448824235230340483155119086682035013613565171073843794212592253134622737483917607205196917690372006685002885176710685207849872202283089635774631494692918683998108360597673837845122204598251615368175935973162973370386602909431430731572281269876260928970695909031699799985323697397015043369361424297819628000368645021398196083027724781973096247709331804611132589606155184838998073994705611944890349145319393321358164615600185623446254243869127147672849877647520028810494886576296667082492431099945537005749592545283483757089412805158120903463548007823752622540035470815355749140466793213569150893248695503896584316103741320196454461249926386681206270376349043359314867802235179901104533194040589252400122066808854309714439620615500229351925228202860203256351678274045546559103851057937392215852785292691072945452365066031683901560419997391068476533121549268638072480308567635141491474052561665046948663022368792172698474419510727455190265726668986243891190528776212964122396849123680527710932501194879014898067528610651133258940129147310357076921648908994110784771904025823431416553915773940834101530728261842393318655098633107248283617517761956455634059397050725302235342472639996515724905819369699458322452493027605902681964534764629993855146433674683624005148083584942815297446610301028771317443534378570407184608315111865988912149726030206427949060432444601474485123512591053178188982808368196148401472371223309072724321923139043616673483159434468113362063435359350332297539192393029623174579984108073480461570122940355109954682148769645974164319505807709980922143233820476035070112786676175726108856386681144116949423227367772614867477748348097955145412208179535806196617566945584331469684354063098335968408712891343262447903267096725321397530605967645662882425681652193464087104499428187663247841526008093295748718584325216357881357349679077605571692211867780838066697180276761784134535491536015843359380506470939856671789438693794193204917468061919179225211568389559576281904312921719277527575901976689169629134102264113613809488655119733899844064463085535154187131147919995274875427448754747497429216082412321712362580942486825725262835656297849482267287571577644474558742438635134513835093540195152713696982453975605070491426422485633411112656642295833462406312688226324127085423176265024132678372164490660570125248115052312886017693569663679258322173269460986449222253371517752941933482334899294567076126683520197950059197188073300859686161685516469910152707636844856713856611380917178133034769470309246130824644272054568323430809244622836338053945873865512957089371419889684292977033104380581929808339479006435921764009238866327646366526037942841155224599451555389945712948246931159859911871625259234652798877892228285551397915565458270018490001344781292053835511917278364150345253215115069122508650095920963983624895154893633887072327277748700978700759296324423846962744377154292919638735973495494847138939685975942992184900382170591833563511537793092981595268742198645886574293911280675783892801484674882466190804004192842020117233784413969604071364015555075935824768994158132115841153189678875627611108045254840608950833879230766386566268014303092551725301730953700393975061425391651019603632129146286245283606215257983537246760537979468263860376999721226962736047541523526780702555988548957437325209748511903653833818519027334281763349775061746845021309530853944257935894098391141004460436624922577371780868155796721895127864134075817341127683599386981669795320780897213406465352712195941541449308368845878758213349365375933642427717392661515192300294077246122994132344441813177407159294783038249622563761236113817645313705090152650285815011739341186347467244804924458587806002927988292125220231838748336531803581018188741996870309190769244969155568306272878644660282062894609325801176076702482659660467102036328852615761304512408707645973312356011345949633666659909894332664710084971569417006040044768610104166094212908407856198060743044763592578780374339826078599734638655199834883582445910255936868393774557667579664154002194092818132166183294858527899203783705921557159536011304317706463602280150207409757679057910342036262113506978430303958819727571406782877160476664477315416669076333306668758796825144733772318800493309629123598955337519232790988033943925538372221965722324485730405863716267113358654888195063923208246936769393124755930809214564174261823808045626654059994173544915337374932613645226400085697719053903806203235127082076571990063067394634454270958082218921179841338933665478538214914269155303255033642863278668787120290329539840587345195609965074586294660924123961366092936965507782871416310285446949400973755050214284953157249300869272953422020274532488228224086141573457023805783124939194550336400818886743922686067456585764990674273802600557255084921472323968443866525047132791555135850453676907512113519643397261876960397954280832264687938613275472025139352282245760242404725977173529900392605260426286018361877264101893351434753283470043569360829139483886068287838840044561091745211737435516926951909814349917664257498116886614361282965386066601697571830813622435049770094584185134021914986928329812221005679066703245721422117041945213583066054052315292649018743438300097078982091524244120871085068960122522751549519949628322619467915149296410528618438160569332507797993093311724936554064766247013031203829053315607431401925258335282158590709197113777309734973103360350888594926045588834862307169226686472649561813246245111033617317657357620144901073554868175733820602718847840344602727415556784823311972980815402108352911246590834745951917540623127969915849998363132969782318164716356792572344559890462643456742575337045707952541827774077063653464534781028320038860260722038447743933069192829432483700228497951786812803512295266165905506889358491342434574222781226655879986806895915237396422312760560799820696679068719994483140903598445991067286357711151662583928833315049115797168535531912758183620728767526992602936269540986962153667220411322298132681216310792913683141035473451848513330250836241548467425909194559477476015203852270367583694616632178437309703984630671906857441011140082472925733131820729469949862942492892015431048773014430827009033722270083259696693398588587179175407240801052980966502492789624046208905847291354277750737575690507076528577844868408943753566531638311384103488186630036571173394547129977255364819000090404276995457654339016118182783139437204370659307718977846106829828238754192579417347685053092975678472876667818275039449827233382591766742711900567867435366432753504232095922223446666402752137011680497110921087893428953952322313427573417788749554208523940767715537638011418170498376765915398243685033442025338688969717759993189811356669431974617318751313716956610066936688130446335535680576322640630202436676999990062681801222066450257874253620942559505703621273964631807130381048324848022027573761361268767340071870781263768318991134524635721629958327360909366514321844989687477024837267308242871066601581613377086571584299444196676554285424239438766620963214473611096083675937896392337155802908598123066412751801011129578737693891608372119667304353063693313398444614732991540349497758307272810157089794310515781255395652012576440868634344908911121519371683435486823754770074032826177361545251844138169242237439532246318740967612792638950376592348508658003141043986582144621800751360848953415897733360391227681959162451167984987293733237137925541401565582166765296120359987431499977039367985516373896511036238934114183296507283817200324573064935963538800584750540607835795480612026761298048581704313316150170308545820049334079165609551483491155102925673683069756543455904098567631500842516872026389104130403408340578259682055737573169440783140695520025339124899002915772118070048125086992757056989713071277356744914278670362556008052743939599862286647061997788827473567696091279070250893288637738502191298079086741419433353229948330782949916960278370940817840335909344327506154475523011157922115110440488863600618185774748781623379809285979526971699467414679034715279186636398011446652552124877977647154559218690252992292798643902163589530987872596996338509166695748028982123801039431559541754106492369553720666245529175868143164055438814670109852944234592024836682255422878731082201870723975232205649453583285671992808259438361235973222952968950841779210328689901434116615607103331713989370032939004405138522887675300677578863402565722852037521487381770740176891389871898275938840265201048929316610931384850346040012196801464430389654646781876550005013148390501323600642615684584651428160312539242708029828955399770442766430882668186986585348558377736898146763458673976258178454679912548331523281729775095312940415818141879723786290712983920542339665593457660032502608431562503840586583064983841046643870971544245504463215481691030718355522442439688091498817436831516970187074460339054119276957483189013733817754674173118514060364617856242325415944407508959034855272568131555157924615078654317846607427893743660745588820813999170432811504942938171391451617453179185140424496266136191680728249979987391418637401927647902303195455775178396039373049464757046403522465747719818436692086210398010300630563633390661819061908442781413783636302812935980880641705830132485537941905146230918893636002736882468832248186237445100672975360801967057824677640761809575532521187271418999295686761283616200963897288893386949568589747013057647790013370366736522052611670394586531829827297179907493375089452232590889672261134210423822003580556100075378969460430668748818816332160748973576493479650853226547402544516808794511194641152602930130972385874911403419118206787739847009201253892858295007141491635170020858109843152583352881696370242764584742436426894892169992767143508018708368165568818186210557650725183049456422134913381052471379091971290944198340117171125568031730400585046453486281380065888301428355650793982274277748368662336674559996178453503860070933609232614079712248109206255161341835391834738978689364922622757981706611638119611551866929609518033914821931472444593831970430232241185508847817924167548661596111520206384934455122015223600527077515501211470909778516250753833286717504701078082360466281309248447122598592396580446923589683407876563668242537235189011695815754318407850572551119607924005218096920939244859547798077704232038531535435064094777154837102577283455911495974528329211179520148840791005827938175394267633742663884596438675339392631372974318519092850945294146054306885835006247271017268250267836882057483973370819810041424093452328362085422783602480292929346159684840872770807798617658511801727470322753751959238417033277088814072206378635463840179959641382113531487533828945084800275097291688110457395316826080806389811906518468565982971566484519385835662135268752884228796276527101634519122320728004264918469135744115314706900661244627419206695890370540341737956752254765003838338583658795915963666937423859376720864115481174116188254887992093963342723557962456341542934705706051870978830498771213996543575996313378924744906853520997079864914019339508597530800362709326316883093122064369779981567936909863243599307996896820014623464946085144539559428527758771014282612873870858023507933455566538652331383109923221178422840407455587896564188060440733218897294957828217030862082955221136100074925788949103578627145946916362872973513721962724457671988778614259574405255553607366978984390890364951546005382309582764968923856784755924820677281516621410467678599828726731764163543141146860911981006670788962093899173148668118404264939981991070007043161433709737642922075100394349224981853113681118374027653086129464122654893644254288191908621384968419543138132916310275920190266056224641809032790823253222137286924863790048419385192387261281850461098468959104868509149938162265461433079969603832065023028746901840834859869858165117540889376670446278889184678695960214713482105567138386770667666640798386883599686598777363233529590166476581969526589501436555627303913688116333265595615132897087667646387268958053085466937273229418958638308261154396084872357669663245628173183476049358049623383380512490334643789692871830044945940326761567792600364455416355186656971226364009050249730526189530210360435194612725953151788688654445903586572024141338965548259822098718640639571086741616265230551807025643881379015354460697690795538226308412670760357051039196971282657722462242454392891320666506655605078065664493259947212271759721315160750725354244874636259211869649293876160525884550156290845681710064834034675830214417513585536165691154321381480682100920365786474315170218689188764743529934381701058576129877723337028795371718418393897722834087827882423299854698910628454513909222580877681865870280933748356737957340624160062258570210252144391586194077210421062579800225861399785100939621677368450695841312250236184644044565609816474312621085070224975727967391501164762916590091046804425582248990238566511880268075930459530055055161485340206409527930681972215480304338779628665135521515330962721092851094983459593911100691976276595476244334889884898661713746736087568907692045222437973355029942795840463514914853930257521326730468928631867270634629110227452746855561405568221085576083179653018141822730478206867173680768264621242125525683609163457023787055690240340446475730543121700032160727434947216740999224488781190280687789588368282774311792719835786628149528099375258092421281684497114346715023832752678168859436719056486559951587581171997567327983117718017433309258459103829898460232463171161995721403285478922072409586793590529911569494571068853270838530281795955600185596491964888201287927671657260668848192997464221168924502165867358720378494786085938306013701077025432333578665207302872514779853430611253093150405481059509166860023889178152375331399763325856020290108207661952324919432392269311128108696726414068043190339338120126330099406728245880608797236451067648831515682211766572950386265277003748139059494262417654585371000761322072405376104028926177983345329087492049502660284877081632408679326317778548395817086906127700552226324186932899999452058675456365137865207701707431349825945027547628334678975804070339013176963003918037676046834905535288944482582863702613568971528048332320887482147395051159592452140003615310199341546400063136740032792557593317737969193128132035809620869270520524329915236479818128933739788606335972750584396021664689961445666575211115467011624283786922248630155083010840831192292687269985054494348599627862180829311439345917187787640590350180304093393401041745221571751026247510793529995740318465321175285286667397238407606088155848914854563412951614651192874472930849780102660238537105301957595363601849754599872952936416029654521037757403943651269260917405875918643600910154701811983310752039265129216201351471394777567164217619637381339678285292849320673576389562193343082258727083162532975524041990442459007655222664002080385294945287643110408471189979372598028634917153699821244403933543615932553215424320123102051175639128747000276538022747339671267099623208238252720636289742124817831416519605480789703085445191512791717981069526248828337508156792268854890284587966377640172170554960862016763166817658680444739078699749700325453647546368312124323563073473353505112083037968781095943140285694492570464326768087093711152276337546841741562226597321303854050593489379720019016803173382798373823591509182213078328591796441335017759190187073242430632865566002397740096336771034582290086260373943671579924228897579714733117264511568495748213346135540285436996234278517109523966361766771207832863115517745231765089792341073788274079366268657989589801130330117579550744895665086585529899273135374162569052500150120372817422845955417524559090980226865053405064948953506571360427875304693784408656089848648764079614673667863600989549668157759423072494362952219004712351947517400873682961154768908115213809813285778766815808852861420877673641061707851739088832499546275009878947546831563672927723571491691635481633513120778036033688477959664678538997064472471988075118546546293754872435980255897070381108366122482300953111528087966141413386644239221844132382967588162048655878876368488729337525010672054065221532911212505015790946544395087728965342502297947651834026939340393593582689518047369421016356494285322275431552312981701133631622616099038215153350109723369741697152596626167100313616257887646952967433320619636037657759047512756159197475697453385068278979261622924547442267121943200781970926635122131457276362894488444343038973186861907981287424258748353373434016453838789662555111259092346559115102643947384546725979989561618012605115356307340034545170471275601605514679529353101373480274082747143221291231870123469308051065983274104913022247852325685044900459294948034975208348693294961408206856679543025401056515259042080852369570282021957385044344577667416440394855853588413319850321828398839214089564267363337560820433463208539937828801251253275468828903066846164957152444084411621806844122904967438435518081869196483078140004611544657348551481321305650724822861133816698378210755439081305775032863915143399031961754930301012138015213695078688322760406249428981127466322526118887573874628613399676647020920123668387696467529329173748508807059980253308750837761790405144977935987516795874618210314575509876276196374645407591981500472219734541290700840284229720328891843882961203703159272198048866680136333176192591871859170544860263606249509503751525794565828890621973429697889851418195409511195989442556164864631534310290600042042599449979158584966466724304543325894158284120695897572052263997458018700105917635984044190397971813075991261561204964151541647026076290664646579225185798261787386491332662666857458006273428687035592688583622313377849048648386513134925661765007167579110582153196179474411191187463742190682428117964712569548277595684620803182662722393949143128756478913414566674197340445111857569633482162580942263523308659361075939611560595666060680111805346653840735435454812959687694540269192338744709195253129119361229625206723625630363595307095256547256014346147794732677677583268130283370836620721673759105724400694513044361350373409293252190097112573772608660003854056974370959904896134754006404291079507618337574149449323575568606054043065773972091880150505515111818409977939578288091180396484174590640509886673890682591733714493751415489966410550352925379210277423593793885056755468414559792355382835539432850094053816768599974529134638065483213867675650477772727408725580116863814243677719858425668411061491085488232954492474212866257900375131406971280707217379183207030046736727379964762488793435252196755972085884835221251991336132790016540801628639252872720158897657888490182726655335974663187494047564030015967086940591652642484879306079556707560804717540665556062582765419843587994139007206646488961354289468140973370764722247212848016278446098289592986558874304104597936601467796388642074877118599493253029368554183291844542137135441533856410711007824734053639792519260875817406546109587864982802144535631003751496853425351349665012575379792587182213989540955768226945174920025204661848456958209906776960352136749881893835455682854630687298445713271342980140525167505109574086529216899557080344099928696810673325545118629422396803300516940827949467537687416265756227549936582167956499095133309473490139747136913731822418430009920988536379715071668981538667083149294568926400926953446718613898518722220198973687556409245652698608892237476791999882775642666663714246557257598388672812698932727247065087611561956504719392907041293269321899012457063459645579253512270773130877204466948928895842702625292879613575499293541733919375822311677459824760420519811034126893628068188730308834453934660717878440917139474825655886834076858264975377663098624251005796398659680114431214234140214106834109142205323951212524723234769459158429621871109194746727785054073857106567837600951345704104826515724350618824979925765809067997736966645894471019103743054579481043953840647567533282696938748422455975959371005646989746859493434084623116623902706963506243160144825753854250351435849123395700129511446127208177372513307363937333147004587741102150405440638935127356862907835169958048834738878186125178904209742958950206010418885314677318695189006762453020951547196577588949853138603304737167314732918772189613323382830238261979753861680651474195777064363440912520463735556269792016937925304021319202017255493344949784527662140761826063779870449902656464863115174478281042663085354109460577498138486085632020539709827639459790001786573586325078166622913354343247831777630642755478775913298186219844252035619513876257634675461712038717036996807776959156950734471199136829613301274931636329043210896089322186897849800151817488034598953448353809851721504859603651442019632834249344022501367812637989013509266866052581176787567915771220357345484907951245264628810742053998213029624818014117716152290898843658730737925852129146436243938068241373833218434016580480776538615980390380861228846136238233987082784682719769159691329001261566047112012084830139183909583515761519162657054682735573862723191399067850673697390461418772686945858148030963189833303321877267714343849412496959458355291969118836631761415108427678848949663249870346559457328214216840119160556065356640318896333104132540035425712062413399430704713106727978472906229172299186040853172544952482087845309141969227708127266641784947974067287288186390826471988431506338554965061146747293390286243597805890295018916170939844751027837774820815358395364067898931376870512731968742561439342072721497860904694285060736098054370619136749279996071274100462757750404663516292438048418050472153336358492020777820805271477201638542549840925059008320671285679119481145497666698793995143127043053211897754338023327856513686645897432042427890582756657920566840230857824240310081677554307169477215692981416548746235242401064269876721192913119326532295342183270018055025593002180499356822298857470649562592680696656775920550498987785844494238101253142779863190656740128760425823287751428774865021629313455391838688701875755628779254921499906483495504583061486820103293819666560506625051733076755025441909215507280061833989219003315686311755976883037693771231913114090626600033834291579129420881702350647627111671363537638021619542519486654927858829503043198140650882034737439713969087169296060942537462195781803590544322878473420125483337609506801284771610703951489807491795475275669743781692473331871127168469122785368725515408734904515419046002996488797920047737162546884218794665873899702120845672335566774512429750578340051601549881809104758728654668234151370949373560374469832549448970544431588282740289683530099896929764044176992694919925142740830663462150246335366967787702306393033546701875402400451144297221991656998973686665237845361423259095806328827235945360813877104955641511650178513434537107727326251499183913197659584994132619708545075683614088240860219820757218491910846987096570430629724976117743268809727836994818774320748676303649812303512774558161365758170939321429415069507257799950674885094972876307318232294564722866038605215230146555692660389632689519077707988030448187609709928814150303370291705884736910288506112126823249247896592111160834359370268012427597362671750094531155926495648867739530044253370024512892835543892094870822210268931711564836076137279200249825469453264116518710138166875787965927633904122575874477575363969515272224583825134615297739626597299876403628135867929016177347579130460523657006659250951431601325920235798837409094122952433254196010848228200097231213129913864541602298875071990664410502726684890714158234490468636560910170719494687954827623003960806948244980597801302385999919730351056371938586135593032385333379710049812528652501386483778983613060487965797874191005084178294018097795307161429556502005882425032048136059754542714665712084793591368500242760149261546104864929233292271110652783255813694998281519559402524748848461346693939168587100330097607150876248516295619447041127090243853249513148179013684797483488544226969412713341282801086344087316241301035828070205038386446815108668856595098886364917590495190618959532202916116651507949393854493535782886275524698735920011875447963359869469885186024869968115229631155799166501058626823753659602697805317714017182235838384784062298097092996653370464424686767208526931643737972505970597664280661405311294953719193481824064441140531083958903933011865106383812727290044346977237964284738276119992186059594497339109604648487274025041339059846663952532621050496998263164385830220309966881988430562659027585502438039688724988594325846108601788525102793244607164368622321897721041091978070757877069216587510563991019118640392823715884982419336341161105516090754905544522592556012554582760853439656480164428792746552676279303431734351702998035022484916668686683427901997209230995994840211418574386517775106833212441657908791563483809365618633573949108086284670029663643223467880092698817510992679658293255159011670985935844238191129804501668461200663774821419555351576661319154530874304130416235682372815101605342405514420430621538387832903294674646387355042879472155616199619456988095994585288099785406165563567919598610907308703526261869148503908772380330546493138410360432194323622455137746358186569461276426045957342922916759938186850908981356552018737237462313879418679462607855658730568582877948553915713837987793770929956843574784970610187670452610197503409589822793259816818730763976692164275774299014601849930435135774384357445739874238803697254004435712814390963365696770133750926551956569955002916198479983574661226178651287190913256034490704899241745704987937674400674393425676371154693668310793699185502209957618358595273580075031331968825291669034812040014391581743119549036123405385724291252064665677592937976444847568616724097446373234603019019972324115282266755133518087541270614265858583555098901666393865548637940430887426768463851198955975375838981005750529358020078213775929920623837467676715041044912366751289402616552978183755067741293676572269295271615784748190696386912758256979940315099721615664029108163821059421929287040652925422414539505703549142635850759660971769488580322499734109480916300772602705682325315798837405245508477385765142180285834777819043752223682922034430978573324175530004648971580292609147941197295259223079290051486328972341456035144847028414593768275591702915732386988428133495992918569502939505105571380991757495597004927030263852064478367891823056990815865185520565415969207235142714639579081309240855943057904906134087061104233930015496102125388503527752759357172872677365388882958671169040584232381400314131839458049467166148557222987831987834195161509804684419954014737889099807194683985121919917738047686830248840726017340911227163674824192172938411603744683193010865372966304447427820587685141309893145899062462696475415262579992000860470548255506196343974822816009239602500548925403485281254494187868970113970687162047762692508353608006826748087793419592669139377792185226088742346037229911216629199132053212210959578948983971948893038999298142242939548548680517756073099486670581076877967189382829369871805619152939160754873302524917281530017385196344371200697645262018075940728735681131437151418795227559094163278957239507762742293103986447158794131206266897556895413035268733034957092865396049564265267468229993828092601953448828909445367127305874572666108677447029606878054787916708768633310039922137868980621584908505593209314333411721137497452630770803865235548867813697518577179600835052184892286563296630840636077389610438487681383700358177764741441614036900394263683930220041956418964859495264589185601387341504451003475032078256260847851410398330998695000508546347300824584011285781732283288852022370408937827383712529385443239187903561908086799683299439297015773272033772746579644416319262698814568931845567193286121180752568485940025710958911778940938827883300069623098676926761880199984502846068699987189885454257574270742055508117095740865786237864158170152102053235663969037483456033411633702263894992455179838483037125778033345810613641739942128542581293954244154414835867484506881899013434512297654731666554212894066965050274314918724030829159036211238164373882944149262048791820917651029313761522653267554400505394671292134404018403000201981911317710135063396804737299404869919703757335715974289697010433822008010918270453532440651231605904285031833032392174399232376127634149266521955193865787372745912227635519824171006131582422087931876543266299306956890373964554540863151814610782813675390061393954621521694601381589231311579357140610997069231211353925200977807899891700593281087987433807614724662739415137944046106518837317695223297460024521040235407113670575203139220399097828504215362081865858590354680626778599891990656738138663574980202809341026529792589558969688072392753389821703296754796914522985641288715392995432136427039630529614857786215805729729211313294020001364146493696650979787435822820022027890716499877827128094229130816962860811664110683206159446589973131622287094326469997490551026591658457855368528606974899163739098311083712969266199024462898529995842673434858882531259991141617252249888996803463184853301853668063403106181958908793991025571504408209720821628955807713953001293202371444793704569208744913989401359718970991343078601502981951763629229809704270973714406856724857394649983807072486537256894104258098342825029841717238920734608845012171134658994738433605177938308487366772680424109086315571253829070884729714102094766442893559425552092774018917726903519406400318196089656145597305511143408093137844314090644261256316586902820777982655015831635440581123638454177604687391054578381236092636553062827873306098874242946655687819850631657122364881037301476197501910435657605211676516578193050572963725744568905921145660418327119747757507635412003939048067145961769063851906791130112124427929974327379919014643753962161677324350825283317612226487839509657637490362679418572466007580911292724849943839797856318693185102696628224111903176052476896621572713652136220112282474345862785201695484053305404377852580477543280230228284137604707405220952855989467925409994114467380410660084546916433582896348733878839809402767455965599372752745128179576441448994520150762223845379449466259123110652008127787587227683296608733086770635565288749624155666160076188414387749825063049232328213133706191822407680835454058222669583889994166034112767707101864488768512757230889885292343065069343771894588730641133444766085542326257534114568270024540097159710424109051215024010621874445929638967020150456217354964483711019140412865866095150596890905796319500120505991034880493184459033391504474889360695349191199166427037520140235839284009072587170577735478793581374466925327226623383242135876588945963889622171745312543488147156656036716059807355343566398573589758966200897767799362564342567509992654505033938114806214729086259089439062680182968521238861735585393582023599828363268902582034856113259762226337356670663000340386876595841736931296589046741537590572453842474065670711121660522342811781445089886670487630917691433220612273702072965827667710080304242937431383114442041606903577314636812798232308796946860221396485584559850111836973463358310563310156373357154466273052741066089076040331381684153857229816689783779372957742635973611262522866155097996776999292977175558726557737057557402831927017659116983416420850722275601649042614184321475049891098914208837778795924403411664900494879040944294521662868633020632082203797638813250638572429065277714814501166097213986265982848250981442913237989234660650013279700259118849721706879751715282512475936908413637512816228303364003939178386988456965338717866726377619845050716403331700340750339137468446242754772640380186466245518715134563295484407617767611690616960849965921861664620056632913526741900856739628626761129401956841131769318183801538205967784984038021783594932404784152536345522901798319521689560221916650347735290090433858650606567983975374583289692654522818537211192413327875516791153938439006723461797152740786517620457766261386663485884906571490483620168889020278100393772751396127096539440008823649317896747563073170322740556325252312211599539333418828953971960529200912091565108949086546978132089127928309149795533344102361730854493349485437397537370403430115959236185212457637423550663826272277689616933233565446792270290204744869622802425908179597165872155126356278103086091327806073912039289870899430244848254489829205236152941260422572003898881693407078029229708136137436672940559958126635001594101410987153452947305545917634136069303083890935525549533465160007102742441644125321296294849952294835274434265633621140645667635172264381140973886754010551481814670219235642794750340621069176556887325671588321175333289042657303796099556463175349551615331218595619744861868087420662678348092887091737255258556786171179289200338711462833423443719898289935233533774475179634068770997313263291733497992890264319883128001253960579953751254046582271991407104611209736279277698809654874374935313161531838838918441060312149045617031408749665234636402699016871629751393739057375939340415913295584406041092282758354845467757911256995354958208528517651043814114943222391225210912805398261584992153017369965141919749140732761975028599803800493566543894530587993361412685905536194207853327343463978155872710743970167015015607026589270991289871177573799986386553685754705487852796826893634420532527206430502585311867438810892878778794469139341295243876811118034641256857046837273475697095526458201977844681559833629376175539869945205456171938465553152872203708690042423032024818081374810479907130592213407718962897414547510126328785817480331999181466103336364650278779110299550402082898279651998535648016317838171177776197090088027736689090785791928381609300188645559453616696714187336223967296164081153950168690843264130436151373394769512095782781082951133424382373789696481594237772601446433615423656473053665574601229290343232440422287055465409741691976878852926819437394984865947794753713336510398367782372222112350082636058750419530129198402828360276672303637568734631378524335763296954598108158623962903210519620687858055975892911219674755578849417195807521511565139450842943432625338811765477710021413482093658766108791238279992748885907064214571291126376752871860340195461428141825227435525478711811861220362798834108316433903789994463764123359819388938748814747158595319254777152957008819819770493002074720938167080458532812482304534535094615167520287853201550683361351333201653981386637948990808186606729983432113951474894397497063212831630137166479769603109667326151081002467517716582343618526137923718040203115377343669600026678904828384247603860970836370063871703180636333458765942490369581338554501787113515818716826168512542462807936588298209360118611906571481798400462225735818180635915591310302888020344420610089657761867635759698531942335948809557093817593381210804769588426452315983973023784724883464899158741969602754740769491113755120205865615626258376452697911240240644282276869707435465963293022809818805945756377534633394253049686213426044766929600383747573696440555017370523436403440130206494678379052045379263633709888160205043632949625667764805887006265920275007757251910743795408271480265964143137375927947999474603075487026549863969115598656212943073632458491844318499351043851661678724960449721468429802851603292206736807512932878570064291433201182621418653084179964712221842985633410069804781004125340793961569698214818498481472898274255827943779639573565004148888190292792166827726208397246396439740955330413222701262439066949115190528758928365177772268089359358851553127067663527173226086545308829779878990864699991194979063652073308879335066871525525817009441966604640476261706848070375966176259873773083548072568738005079824926965035999038528192754334044393847449227992548003454246471989487660340823442276545717583543216441632374399995673959590399680025264037999634470271359883841818889877596630244428717845360956962441269994972189188841940972373719219017713207657412005747140609998679746554814568927607394704388338211552394578872804270648832723226399881595036019963490477331686125285321392539255975271643260949712461151702487973700374762843721533588408861639579473141159625542836500000421538731229355684573741023569380526838915669141740686539704814950525577192498056888561440014264860052208407197573329025927559562619521523970947014713561628398665248579688815799550236785242678516891255514989386099455849858947819761257435201407225505658672225649411629448433119567829584617195147868369220053486437376426239863635404622171634551142949260905097611553505285212585345750843493558408346193088157119334996840165074810092396019217430869512036230200016760735971568046124241948568144814835040799278265346696100014363262330760122386181118724737967920693227260617661510896897274355115222535977501348886224950056439980922488600438501445591775662715858413012430945490704950670884652977491993732335325218954282493494924135523425209586505076748559143302214784235569426834759100989851756053636529139617984723671818723130899253745469710606960299523738101024434895498898224503087331852969116956852850418279329937383166827693233082326177882183377266409374590434352802697842466157441929727994108240223629044820042816447139453199753304265566601287189513367306973095867708410941070248893364545135288642945528320648861175720125950290256136159936654085232080026239354236565682238209520424029756342383458509494213548940948016906367980129811269034421016039347822254051089576588068446603181517554674908338966421259234708888665694312044356232495784929164917053765193558998990664254371645645127716875726285708862713584458742912510495401486192237296977298066983964298763773667983574392969514035786811986573103387623849915406503019103878979812991626309635451850208992889916612145169785859313345660942090691017142204511563334428320299807192598441751550209635020727555742956983403185273133690015998901111747009247069828353620975696406395064815256475660808293786827054819852264803438392257073503756921924311913285604143028291680963564166434712685393300828413436571091829930762301017945081586869977191946983288022544329792214120194908213096184347913183542044026760809852228815254127239699898426657742816910532788338523736927497498070431510664450018896292529098490730645080169652893782304106881952062932852221797964143778582614292901912925505542469019285603979289282416502988586123414430362970432978086551425882243081606742287503529293185296004841722461785926700421804954222905787831861220073106962143267199974048732728544060405194903363122360473169479126035733069397697365160518364327247382624013825564467577619330526854681171599456443149675111123116427092531152074948007868856610312636216293263818010037756735676565090407233292094513882425421377660007201829681172637983212910367837131014480389436800165165855800391330446102925398128617459821469722133618788909210573854346036595881391742008698462128400050441618891175873138246944621581155786946300088763385680273097732883652262103681783571847912666889390209564890350775622206886568835462163093140497497063607540243332777852109945552196936629593173384896919348664822268147310319989894393144077683850988095063209063240529592640738086212673316267597506403977580124641516684002146295534183712651672691583652564969452818851724495023236026196785988028324571899942592640163949461432204105559467941068755581157430289127183712462323391468984572132148484660757597433904150452469840676758964825006643557329294016288113031147109427772328765033269165787795672262901875220306696928462114067627285987626042687140851300239075046876385534228191582118183750744361738394694715241805671462689085178443868408338729384936742822771294398199653422502495601975993710906315839591840530595108386162776801877789257626446548072846342291114831218991056186874241393568712673575871937064734437870751986507044914570067705619548224248630073725812674172047911093162069379421251453101997674845585151547386890327474300914745846591193474226288383675370293520570523996502510499924338149398295372119496386662775503213413188151816569263848929401874924811915323377491743421758425807138976892021372579634104878050539591559480491964495362945930290043554712172972878968217927693719323022880143205225423758914179402082827640313929411592055187228066315813594043400259443676811525802646222887270803374843119285641495391759421762378532005838868024316738205903280405219108723878017429735543999990295762423501615288317034808640788109536680180884785927188552391090798716895410177969544751385064581437937673538814071027778189933983422619095490027531850199469189084815662820618778264405771494672926704179729253215080890471915157390510204702437621386084358430294635529975664633512971017643442960508179264160513145637749136403835312588217690925539386507328228378331283084108840604462871832528980783341465329583061072949500496687403727655957288049996125491557680729397527693505801400422808108118153177982406722077357401481718362510246146196292746201454207556672898273799061240586906200813865137026784977843266996450299730148680958092389161756346512890465148219548202720154359403864351974064824585472950976012654176747710020439263833937982002205728294113877141617550235085804410016350767847979019015714838047492671048963732773044184952969026589047902857324229797276224411655017359755354825676368857550214096745708542237586371359049782910231363660545703790017147190456945741696107521471348213021730429308374897018066793569342787981232799145787970112472708173998861898474470916527942238177043939244928242854140149117445122624192582115301377730265424388154730223464248669786862146564203059385447032937984156758566335157880871592067464771226565892157148886070944227350508067201893166820322274125604370959288955650344543662112545381611727709627157449718573009987546668438491085974407797234848556809643298568850365859967890378888690519667403753792782306927482886574098592731895565054394064194294009967519912751055683805450746290649813939676805483060470968170871663942789011758087468742439606490679997300974055899770417373170219122628286208122862830903381352248596191380759888363993828697876132580484500288599511511839006564940964838950570013827394155424444922784394491227375065867031641437926815665716215219430101287105570288674784068923907465229628253553550788831340863857349084821297856315651941279828815773484827180789648605975687028813755652306747725207631432467056759704484683056574577751355071608399450707255963710353834244663579040910627832313363951637987286789666256061168943013145197650129607883812271234415043151679971859199948207088636096881107737161632144468353603257093711394346069920046394367049290990713159563964403435529720130792659985597756057879516359896092577583940596762520146904391413793852765830467173336079888338167526603638132301449816430481730295600320608138396139457212448903855264232902846676107309075196723375142904608867575207225236924081677264662245862191841017670657356117352624612374156863346896115303082273751193689763647900627806111441872450424170087338020814052817739382822954512272642302640010336335216180572817945062841045107684166242141332854723576266305825083248556456416510041220764881278232329030277759975885909970570928733764368338325808029015953605910285120188510599270404115160396880050997885661832389046896859962361965531301397575174938024550603197932836795372641685099778594067153328680046383822608904774662085753415912749228824080017974220178368557111587279371610537818087181572155412287957585849299094353761539884236508890184988171557380560122037354784592787140489969600890405311542505004995255638841890427895693194669159267413034798923051698548976124770033371836232982407272370829648278923491320614219048577897362270313182989067821168405978675696869249834412483397248372448590770156842657049295972576850968560726129656810706748693277081513232925345048263271293809469512800940556826409106107645228386799425333853006124972578851976865982783687626932029065827810016293720466324833607821821610063173176426271058886763630664021564513906839391860799244916456632345772558423360560933357049801815856625166042792555099807835954115781297579655213797082626333582160967356548418793230979958661039070702152461416915707878460493453472719373170639408474938371576105185625228659198824160758169673064209878626215731392110851933712017476636466040492247427982616830185904119752715892030344566369695646665983117105104266709884697303155922385391417072812514894419926251296672963796011422652931315134474524067632427024642302773118133775914226535798155202887551887082823786433197570719379504615125774256635527155310779129133880850134758518491206477741003462402183153810621807920588522772998856115633590668538224222123638920298036439030748222893617475265585939212914502388176435361166574294751810504242755495848544922672960748609757657116201694328441903004616444248175160781710140930559609177116824664638356658312094703940275147385834402933168136386873016918394976375103918617865320588402111810648722513322372978452132911797904954775792627987576342050991904085198552296618219694077564022609786490818180445395316795336826803849575348568493091812243996024591308746462228572674499697279673384661895871510631946644490576700898589893637924969912147888322228442628675083194610931846682270490611383287041286279812080365161702664549029269880295174169126407138583332445224161605654579706213335091203518427190190291128440819540493332861087807970948692781856080374537509799445625131636910627854622807641344437626860109182385254623557893470471658989511971197638415247786256687531893028659339654071342187377810250131402297308329449082145073711568648725221880895695350630465796858557799162503619007896791273707620916574181433368300500675236382792984023436537617961585028549355808139673280593053643339614194742824948934758503795428670178085527865077550653232695406026517400914618100233478420670099833964139108401044860444234073752690296461420126114721493400810091107073340757069637256615502017233212730703582061465535449110967197019809345858758281149954042121449335057681834347956489208784316521812524768501980756414706647719246696037805352455262399449265209052981632559305216504821196436157722770131377291759211251319671667585860821430190292668482456485750082384961623370121583336972532628900406257225652615978047044129748231078320849789559874194122622477638925818613323647025885317220804119879780737451382169117802240582925642306628078247301192180093493982250487108410408050224773997797695908854920798471507433033041698992030671967213614306129719182554998236988231909749172259951228339896635567367168593134167769733667328037311129730967966590762617474537512497301956657060456959325871260270624742371129441043868337365843343407911958348868746391756609828138167614494831089200367944533179971899016640969807035320009067442322449949349488638886971997800167051975021058851259240978387260082987901991000480744377276203722459343599475007004735523177113487334850004044479533361773554717513805238361971624663551415256620905675364307334929808691786047224477514977296981660924666161203445762292989846657484307745185036794798535410450312784699060690730668656630232041661258879413620632083897070505154323063040687234288391155718968521895993279989236098100172289863719145819925049839613298498731871900425852815515052430584728057899049175970779475132121865377642970170405990199356537377926740027741176847770736783556567554505523533636618915478934820583725001183454980306802718023228393805509254198053130868859608087133355505357531362650910028329069381967982467952403959227071668823568324485848938020554762064927704480513338219953936414321405857616014676386206394850265018560586318753706878777943125971228253466428779574219503899881858962479275673770201915339296733503551810501072290870523145614959218196888259294915635174612375325849630495905777239691500298430058698808577596940554458598557778090873001009350342586668808812719704245395581355797632648730078851507204033583943334846599107124097892722286081367504514685252156595973699092798279733253878568395590537807624082882778291721054778015398708818269465047832762868636675539892658321714212564008951129600063609243126749031421888927996124019156709105448269389326379503216247291279048628950995447183900986534951422981274552905339961641879252235021793275562477871905944764728663186471033793108840902968423710106632197940362194100549556239601580853549758236189929535170275116419163919471388030992513684983046004777965670255314641207867553713705822119771014268332446075648240611134565111601906452858462667222540111102235330423205834366492367247962914683962408260509260721332822424216279455579341800321751327773666380647919385826542371478542632551564742154995278875877504493427952141831849548783258421030597488755502941917431540619891842931831964183853206694031781460586296790150320350752961876018164707525104564687195487470027698909732777448549393039069493441824955176655392269210363445839858000043119720280408360061364889490110210444271615448069366030720987822373206609853386451020057929345206730122224206194281745277384457347321367814058284070900864745267852241983700354433671744581732826296755624130155746371034498326193162091709339299841984619154146529636423612788085085450555144361909983152448884615813115086236533587806810515872570599648578987085779220141309289054101845545733750269297995372315238552895628764934655402455671239316213874954508861300557908295696497447275561750989375000359405656159646966968550413341647507113390045608286946969920073661309341077446868960352836149411065092551505442457213562245708039677902281513999839072846850921277936111708693433062425424710158499823864420357984136213550264652757714510887375973817980057151661788507775290199603373195900055028327169206757552896942315546304997482447622438605082611510503573178594620296007646008971866188172396459532301323243957116926348069627270535399103119345818761480898316675195666643936173399564964658539125654695379389852207204166622112764789897395478055200284975030501902453872159452907067428512074530657487941480948477543298293719439873956343140820326350281828784405495639201992142210091282331079825938121940408252907043749704708073937158818434771395073128848307394416622011076287741112724915006355889524504629739132589432811344209002745602122494566160456172646593697491336478511366021598948405758237600876554813773632137899719973488328231839657227351648639882441628045425385639974818349998387643326783577445624092153978500378100830363514837886185377853177369535491894063627861921441441736354291819679571746969505092777071147915027434957797418053063435415508643958752928341448884186357196473414566711819222580513920615975778802522405660673027018591589571972603021669823177082182524877230173367419528354901213915558121449502174894917388958791787580261348888797932853265022610231311844227939588717521611522718953039310495018184705611827986762689967121070347719607097422150085648941866373242415010000564301075752101669529618305480295615946060864252587375337313390529207460114092497515670285106029810339337744071339156807317688207240201175377054200372037850070340871957838274630195791507750895979225089284325437548639344852379225408455947078154836032924980592056765867817237160146554399628890947949312296763062105501156692557953639368627361288445236777084981641251582316747274850546722294870991585473530823132868190239272344240023788365365538695643201470674292221314838159185797897275126257495386980896721061658910620765368076923651484087510479636628233414397625146440461530793412097102286429101976195660383496316210303495426151544244878431545947357066414581480871405386957262988934845679145553806621347490378887492507328731734216445603612679569843320481751518357774495951912054048537261805797129584659960567185599252159642857794264143427832513798687224585135131743544548330244476612631293912224791346662205120409432273222198237319756164058901540442829370270313281735594564278014432752460067380060301619178538656933304040473328749346710072478210749850104113289763822759014369406151046862166085373142802022149619737914651391356706628738828839190028351299729533703695555803863117050912652946166766813628859853908016787942136057592182525919365596178624105427425754892670438953685906482298740308364100436988152259989113165765748959693698306469153544126537951367538279141547898441760090985353631412995143983431647678280895466177662278548773809209582939208032807764681436889779869337238409348719695267535471889906084608246345039216040710698897970382455091845711382166188967725170080646082360779304519477767480753971892810534669612815979512643208080939785019846322321658424975792375228599708920896590794001952016734512656789469702609271989825662402832556948467364848559251885376882590968822219818683611013867198422023036567078371276460423085676690573491612328524237636624082318857267611655126794583115516250725426660628563381195844688931171819447013116849885957613368573687786243968966178189080668727399606876901990885549262080234879879881337254147189894456423886445950274436548762145865345116765873156698868583095780587963568286840652687423541090102026760583338387087534429034597754198723087289931134252485488620049402378037360029863078722021221349143285823384193435356187814159446711014433457010266580493608846612568106924847580896130926253462433799043459899205645884332261227009804516311549227366787436173924143446921511759561368427055240200953512389993985092613273235618885862178160551216322174432100737896033970220623229674422896317042287171963693582580175129800473449614626670552541502037123969857436727142140299563044372488345221363491319207404205040068948305048630934554021564212125001780288012176698632169008820012400846062639881353424809851519337982526995377553297305587795073856866069650838977660567665761179874647951109771231891267756710846084663287229868367026601988490940649460478923087248277108722833864770781037804354659588012394855303156447159028812378171563870182302303157550083609462221769704471214092376254155849452835282142277673259552994031136891841298729433760334428230951635494979293014461206678396666094302373713597200420464545252376010106919788455240224017226517293668136046876957199501379359262236037550373014205141905446910643836647046797124436679254318919498597732048395257983038683425144069745398841444502994401048911041110002185649383310314741153889330145787100713122240272140399903342360749305394515854700024995272624352305328470662698426058450643525118224507105049095730990595613301376343689585520790507019125291397731979159573970954679938742335171917847079113931083478549765693086065496123419168858101719817748724785272403669873143821695210780562189885783010836259804269102210675679215514310719141423242740949257581076253144002138936575058667232208644479661589309975090732012584156825365190900852108949614581059822413472995644301988368766617370108657087370833869736933576536869215969012504739697831056608027323704726607723088756429378166679682414184641678833826304511593899819211019500168754704330943399674494029657664997878961595403631966110061582884854613411202666481767178298445148887561294472860279412625820008504909388515028468750998883967583935880189023024775111231570212504562831366149987450316038850403852712642401850094688870321527605382130539294572896490892099849349740194618938399334159394510289246509261613019310535172756603806820301508187520624314428002963621179033026957300107125435893198183248244605662202239829215927020147318884248819583736624760698133906840620338995743321353909120900577899252411840410378943648627474424792500379992526196051468225872078293501740533552636886062928996280709449843105393986330115292022537616197883374668070435168668296258365360802287088792031139613683479965248476640744818192021815820842216399002439251367784677692546487427818066428694366029342648414507720891120205262992319025728054909592199227994861997587160633566598544605985927677066057120756408735776435844457710535778981581343211358077345311287870574305435670051083084292241532670961986400289895341214417354196012431296225909506128314065055182959611932251318213151439039073150121784956312809578456925587101852987845807372278549911794987404905994869659430716261164378673336987761094119141885681827836054630967083880301429965512939881839574244203376464278935551115866721315617842958172751756929495195510973262234729078662658757472158092399806141744955442606331162577983948233050518696244832192478613439292463924491411961109197072893131910568416287337796952665880938470609995458662596015934977817648251881844642391507491105242958451014055045165070093592350426714516956992745199586337732830481790640774564669444968260428514527013685895161971585080767371115470804053123476930570545278569416294946837189753209810312186205160289847205698122434830132708984772830882068876922615993342014079099174201411049673197257182875489918345587561739619191075022967352582717262444929213042303222652901672773017039775601079643872907495500529491635463011522004945038041830875215226741288972800631030545946696103297531912879377575480309969908298288334572915151314868559985873223872181257558095398127812079035385678321120191388812824531585320986346136144818587600686639665290469884786384280377344061675261205495307572156906687401276220670173199880934332715407106718398912040009576402022241575451440328479942574195238728237241205368188513877059977192773528824390274911213219751400090698141269417546893942622288987672042480127563530922326415677954719824240322249796065687568332348763034882343395650114323393728143391166384071610824445134617043870653736228508987165713872441714062768284091354839359554054563441744662434630488395571735260865581953200823601781790747369637367177158935524901186231251237053490290320011726652312297220377183820287903010246093958843168276711819843291247945317276593005570739076040010033604303228298013960208099257654709157856597817047499616970597723601534126050034697027174266472015994833318173038095789143238576960805564127144433604248331737522651638938722860000780183552513508977434566536902320660026371557028094834481428600361875628937474718256665431211021993665669503830102523144650762573796447780468760196412753977787235212178963894203555910318468384810964953068496053241345263238259695023431094829907879758803061848334411054122085462388826819156184885026461836315931830810698354205545994213738334734430951112845835299260187891513441137764003658810279211548435012940957691797739729963516007147440727196805446922700890220290251115144199056245262837722305204117797009130475681483601720375258583876231819439016982381003006837836288430573886459025663422547459675138040308387903929226348869970876243659964360150163372720317647660275053476815590805518912481672544342799732640640471315475052142526050811378900106358962741069856356927496623447624667441668829463127312051759484309366475217480197739576636174132079893111497628861168949306502371448834726233083942918238112247060868459002144508897086874850420273546400361418898363809809729794310133428713165503773079799301013620493541777177798051103750539859779606168484631787159569712083815096195712220655005278349756878378890443570417993845889601740574221372428232950981003778191708595428176808967469614026981927908252822889733674399268705965165775796108373390576994945653110822027573616739853260897060470748302488270080549658120621969353102433120920569451805138545614949483988493484447796602571074804413692082499103525266284879307771281711022142576738388995219069159711885583604525445368052284084602681208397366836620281842720834248097130526026895871102859243220752152652286720464139635911635755113200148881319930393238168855068912859881097796193070367083166409229708833382660905232473353207484874014748966618836241541488865804276414273775946936464747552981246905079444160921224192302733734938819373219990725212419118996104016157086093535697852768476360933061546340971412988755600101514785509019906467606994764217249308893852712070006069875134362673384210760873655284953667240105566099548391581230777175421189281281736046578961020617080825424484624381757049400485891385567239292455598025841116578374474979685960275790608682004912597768443859736868712934090664134080144402837709896537996447317499499861376069348562338704561092245381687935850428086704380485383902355348535206862597011307663575816695837943582650188866597339431146344697715486221520823255501521221506160697884474119503727444991811778675526089797355599161539565483093435120396311203769175724883476237973339212259573766770985136095040042268487468762534838161763678710973304544718730057966636945606791333368981229406423559042601973203892514368693314329679025092953948552363138933359542845836347813464466952258556497237889040312676817587423372903478361555129725289217934858249326480190447844069880537939650541640580800258612050242530818830924179460717891533754450911316020925910653669201195034540392384355865559364463393664560066123152086501959816766053823616124588719933612955452213794980579379840077106965297741402853469175236018279746760768583601049774101375355324567338917351363237901039817886968238140026130652073146932139378549389139518370309854118077512177014347933392226281424392485069664198622931591079363875380646534555386498401231881566042787679696305856496139194630013653709993824619486881356014835612793325438426501080094146675004984604950176789618892579197104740826087384873469497830687443250133155144837998641251043031327325641610212530531689074105827221126887945673707342359998256263486384218393727912307888929715777861721057968227624489070951750413796417747281784984690903142756668020526127342327464400205774072923941280163148795476962158616650326987908200811974998161514436157048175024445360908698522871331615169160348929474551334666534964355180966971416396495904929169078185121581685963144082723981715476304625968573496907451341070129970193577129034985222963911248700818883239308262971487120028736223265089127397333753512510806398383960888471684476349730365986598125781403813400575808103211943265814941569698352835735026990245154262082685322701865932183377799965912202654441407795927549715188607076455811901863997712381434046389324939918780996176087594544553980378660880520782211062553982012459574514274987879374144484167066387621137251124777439361905517949534758647925783190624090276757351843537183065074939920881206405866606880509464612312296981960436194239238239760243953491489255896305551780493091592476830969146169092015298392373734264752980360453001715574142064793983177693134479956898613180050442241654574472558517326974723493946340292252488347134468699356032934290878558040987670338258316799169006746914845933777492311335402644100503002830948673867814973276515281079808654965603379845870157374611669476378933069785825118333458413238302155709758228115820479887101951841121750782555142621805397079246790439081039129544093518862380911242192921196248597721715783061486935029469192889032161740169080619050386971259997101630345939751598420739251496999401080016061701527042388978587980447743305625606007695597629288555245678244786344707498411845079588791634936081020924927729919946970125953199770508057920176280728793694490867295058493315966685396058861121963229925369996186518630400945774687390643294033255266182362359585310872936540702585201865895479543593390161853454927693316462420835752472467836833766902037577930229188675226775035095478609973293331603855969326671273213017459260443265531980870617241772007540128285479515751775978748325025639048182356866245580194132267914534734705513431715825938150549514888934165801516986665719723006562470429345568679273541894074568935719467965372705076454868363629952079716223637966933301766623520883965229478444329066772787367086314493509797497736242645523271523308853167624358263798725081640113444092870969883014072179742454396177685010168206423339241399428152345752167817023999342799333400274784818990179451093725137834289657362431475750949469911287561520361846453714816039577272034941945785821012914046186436384685572191458505845829216731224745761030562229499919814107148905342990698032331332290212166426967612249279297896526056788933354585355575912322001396796189822307241633217606767600236203826990314761252505382163022204488567772164398532159716817126939193137130530108843830903659720186041286416655785473655716811101342327787056728687871490463623297759962239384771196174406068925451786363916496427257460344307407224579370191270161427970103845023995911174033385291325418877239880713377732362293115138965704038060277875467340063216911752303314958442404363370997405201801596492682227080413895342356732119121603552398019995674477047492019258272661560631156165711010921577519628717526292897879643605466075448020683648916897548661312687155384455995802328682531712564537689090409699697267942946047815167885111789436394023817077695471964956729379792526589740415491776505048238664227514923166036843895722621387178959006538696120884589232999017709306103596780956128281631401548025638470618729537722158891191129143421760126958734000680477886791847744775955012978391289447535142920696739153367745954010814179558002876296784974368142157200644775746604996357058786160266770144655973287056893494868802787919335808617992490231684341898135612100484709446003538178061544770173416739350080553149981201327700302336301061864530574146983127520211071272786030163231127200886748775981951529023752393324177662464492455372547312422077481478320822607688513420089041166849166151083635695111643913780403248424507861261470980922645687800969442916600990400889876118228116597466648006789787487006374400569649905327179120398124984243141967720703175317939791106989593922666260059394428952647688257344346461010443451967813749312923902169554372695808646938178457929034886432455936197921633791248230953320132218201700996937800311558980152772889811644340967401405233247570914357923346304121425495222865730071498160780143758702293182813605697722853910258556080968095094271770206389753003460807833183800030687518876331552416907414200487809845778904784445831608085677826798664387921331284671084581330388740576121224496453595171054225984201200983802973781089529657556895183107893545581412746072114410486248536062413025607496180086719128302070849826809261248338411083422653680537780459948910471969533090222980766610071828598439373324186473346619759732212405672217124519461843600628082010660355821477697162538628352425339681847780782209938421119180648767175270278173121836459174371563395670989094690696978102078927434909010306508080168902462276129857614894941442471145094753375369114194720970012347034700400083251331518714809653516554585633894027657552409535208589906515534317713283673188443214371501794892983224840014159456111299263214941057659925140142438066870481701009295914561662050232484670157809546206819848039103281098033644202645683964703542525300674754385479212207640732794156138838799892293591159591482757106467250097013602756966504606189226247902042427457129185507640786066830121150160295660320725087295155603161945094134184022851118656124388142849989073501591674257620065379836100671922892258075477496585419503196978793980730219886893907183162844869012848204972631689471600804114963079232047341675576476630405345989835221168716879670352182043758815566234652226557512855482760469829698296862065172294916721187026280885031773636012057298371193082025112157084015666211833347744202619881851948679793874261950553014663410800499290425479560325182463586031783693472510143003869197993109481146169117731468058886818995919358415473550755308150545558534597301457508766829140875982227785024780404301170225092154563522739405405113102420484530249816596508901528933022806732364058395297482481972822391685613969432140878724392153310580801352504819051980889250098751455554192100005256221285673082688749063271682857338731407751824245245016384828542941370239211910794108055670010964917657857150578893503139150364170394073776260076534944501279054827920094435591151865189114867211214283295418745949463034690844032107512835423972288824422342628912865661158113735030192831063422351863085223097725519270139009431848683106329144889647110115189624335311207736413630768964106194418649722625721329467773500749024558679536043308994674068582794555577313572042491656824209819335142463525386721129642885519700832801221071372229587529716679872326819075075850572512051521253224055384537912571324493182663354297546734110197032407317060515486069458896380710672980954552740499789570470442396002163756571120778243473818385727606936412838876981019089085467072687951827174445094334008696586364715432360224125166435150953825653293386509708659696944356296618964816290248085325787015446876612976209842479280181429327440714325625220580749606279688136553651572608275765681518821784792102186208050119555873697171519244032540495676982726068721467143681241409520381705004554365865999991267440243674535759667946175781196644503930936151428440248568793318462924672631234452846616913171671361781863112925363656724501105800987006506942886683423213087404319667726555180172578597251319867092922469483422634989389572897096492564178299925885121907426102806631157017881997422163017995430109039179559940655537232982574693966890197170199394882592524062009190815740180062596361245544459403102920037989103451713187141173706082803811415223663543924253012820668978312351804659692778397979503564025018910614101709143050429184482460824782329070996646900654413954948479549847880582532841940906866370308114995905333376434188702623496237526565848687573916235166171082319902791594594257730538559738389962567201109095924825369474221047291451161781836659218419908702270728182462546646370851236549840135339609747097127222628742099871458807421301601987961349896865477757795137825539934116758373506845601465033175783842856153900335401100211724275791531620994327508338214406425871268760311783640679799792868942948889972489562084747243033994896124212155253994262952597931170131174098859389740001683372767529354576576249592466886597631287598526953475361876653018403519714174934047855016642132070464635462689487182976312756777709002404747085864622018765982481257467299097964292696108116621048329844049166740916649297207163684823992132762118842101109163092352838977716086373379352253938919900663348270847424510782663709126024160991390270473362279716997071758287051356259532016427199302525324797648629602769624480262232420579033827362131592253290801772720334732152961273517548971391656652999083123296324239042355802411143443698900718642307304611524358414578938545313386908473947375244768892226127644050023350635504735639232847853294478934374393516468263828689062501489716023817331025799408908549634190264546075740149526689923811220170522997401546416841847085641037264326295387217254651535006892785219253915009959376956419607991643814662904226846690393194930040853575327125488213146286966120304143369579119339171055514993162926234327120414904235554028306833478093158226428583967142229356290855481923927088863716610560751856019420321964494456088616030491478210008393682647635252009658016832387908229313488531540377880747241302417044848620544013288605567161902773038984795346922626774221162656893370330880161113185462220282664843577861142134455272827971614622660349524751949154125262484733163579717800216867181020163859574649814175279747367344348385032656868832661247435384139307482682479413443394539276802099318026407614698156126718919815273375880577790332357503037608973366420437813606075656340647014831855967709355412587964571851063746311905849579347070428883464092632842591348958776254975792541191273517291486544277146448226490915646704894511701930330906598518786228094334589195245126983620218056162192425623558162926915706355006830667741392616270901647005699737171869076907837642705426074984584675045587556348470131313826264293733172947282658373059942671663605939341410253185389588113112535632575397910595836417812281326953261608616507574344768971713670491632379125025840517263804838864959834139779946698819677756541450191307357533176475920723984855066407598145999639554757143754146726401173279410691102920035636165350121785661847124470222728835865738628714954969515655416768029571434252296046623578813609112380995867539069731402632535129272879191044875662669014224877053333252465356640652132997114206910201066021074927759624342540004234483284333750262882652428446852788089340348736707327106399149026275471443265568966317896523585543409479606529376512009252565443352705378913310717603461925993150390589316223595230698631569280036818253709877497477595449274771181178028319906935726290524871711947909954262731537866647251349883435073364631850077467192294795991439149196768398019641022652539609411967252413108776489962513601798703674546168640806719540689154445642284350679772320266460699172584798298656835862486590748257747762404791135095339536448153522099496479194179864180482541614970487358700253603767678325492856017268864264474937503380859728628882963284639489971756135933504723318197061201440639495893839782875215791951822365277384883842594536192950651668628931101894074771469559601481871778040006103063928709835601709340010778131591192045572433203271272308049025531041441852157005589966292397192406311450593628037135141696277264479364773010791275849036561490729482983696078005343490194309900881278076496992815185285611832112935382415365857433746298102537579407239044388705274623425636126860367761767017121079822226518116092681182993697780934354796871050370136175702678023311130460439119360607836655437826499145838084963140036531961714330951012673018220506534642241123955302153074855944692085799850429537861670164871182830528008271735075474414785877754550967779484907287468714477346076404576384135307483984355830165440312510353964798579608180238240877209537385311270907552619542407530090304984095449620539437705718191587733620209389646178608346997389279557482514505597717452958084074024367697540302224275627250595223216111442943459031478458937883658658320952765862634464731920427201387484808600474016918571403838105980618369928106883161817509812631984170005298522732425722361364219172520009702958281627661734752138534186679252131841437699115529888259073540503949951856663822747973365007906359705846788276027609171277381539071909127511349614560418064008131525912821032677817357065796379764467960550663483743396718829436517786883045429407243477736448508518137431864357372426863515537564469020598443011063783278744733522806305547579977041570447237311240537844046991033841684492713245133660657448812810878871980989507685674041113967895452918117712942440472068193095113495750697527339109613145044542054366213543563790798474824190243955170716010076357046589758928428110576350788344515087468206304967563393872049753791451866855068327767274157591262704533361975435733788887876258224437898506713121125054943744365714983302261905880277690766997092172204106320176334186550428936403800438601688549684425958440343010714230020504379305549431053393423945646586456174684972294757346608185021869064747202890295044427670196111399717870665677007433568783883643555410459924277115645750685696675524752415758568483016263705324768303316584593511696751123478311588759375885057102241499813502509457950962963815551380153884254385979390843834836429201854167092140014634927055026887793048909154214480497466323665490882081882718502401087488865709126236872456965406241545076789968868287574251943005973325394292087735509283791071989311215728214984954272352054582323886093440847461928412212141169927086075027729126342295425553881972855805582467606627777413052979097928280395985757524982079523632823587298268229465208900441512718976906683286219966698737730551409081175489470651447050379437996121277860020490932728876130116844589014195927243892423138256182317365830633209026216783770588861855294376849418244340696477404220882556455094027480350108549529626616208325264346068531316158071906125665543743450698022290119666874868428646556624673806343496713500196293308234273606121566319509112517258989227391096344928547974298771249430834512857256563936432628784334273395051796880196932205578165682346508480597319351067591170004181200643414765733787346566753568862741852729812930567268696054019384080972313650759221156432765352629626875759658559348523301116062491611525006490794808505138931262374867566738121503948389568474712344998699273246568648726776018309160630489242219183512921687873322589775453721513793176078635252236968570968971824710660702497934873218025031169176554994967048414146680443505031847058605443710283420303029488907792398554933506607750205712907070509729194403817197473707313103769407306033088534794123408847718124536378730067485113043281303941069956298814046466055984185975368828110469197529077654797559261878475140106533892095028682423049949042642197695004027688734704724527796255602170258274703112428017452293194528436144759222638256464782579904343455555392032669173407710020410687099042694369811537881167678959008387438973608380814084072879556096297952724435131828022424376655645850725968917360280138528339466694003193326856840688060476063849304649296753251095748644086829670514470585981810588486052889175660040048248794515996369368382808803397730897485231620494363729860674641996203272426791952316009645836536697668708817654767817950624254217326798445929195305733206889467223505445857167753555634684876987910108560052531856645514298580406612957389611857215664611107697785952961335596784816832062406625016657017805560578030421054946193774082083024671136948786028596428664855412580470091345145981468629801382676785334589763246481608110943962780424709798721107108750451086480961946218782370423102416863169284621245667966401456869275296772750116798752836167923477230938240902534518182045582109202473409458936764752899090136011839584203370903948377782305881285528290286902631421316960866440630265239435330010272667560581534611055576196955565268308769223609241746385685103539943313286504020168444263673232757915462246130101663971716692504408492824289641957826463056251472957733227211610091253540286025031871688249211932300503704246762089454496754250287918325957075860115281213452304552724689412728413785335113059170009723094729277034079788274956126183047809353529261072506120273470804772901305626304544312567481088740422280935237399518913265503439083483210780143931744963029903349023717113851291021384669938826318363421394815171782912340427617909385612632071195469117088861483632434902823995450235820606615386913490270578545377008505377150359720537463123401060314681708261072696402706724950718044927442764264938907855329749690902742843703950130858325744825495968796087602470797213801946945542464035315519316523033698727981354523885602933191821196004715415307649455851643516469150170905166521831679802269328049993139043624513609215662294090577686244850778854547651434344140100612611998544423946199377109281819836626401671025768626773018202155218865490387526557730660186331591721171566408191938376217508863818551629735531435127623712699984095221572694660402714009865342880339476909475907290367005858729403419157672697281641268107578958991184300969624948612467836794950898011271628766111602658813362969456612759306232352159922170452906832029192903773926614163967323653869220901617508779316313768166738231236489894876927013407118757860440354655715542251189280120556685840107751801394022243876654806803144593400981769945912235625171548366407317876433173260030564392196052753731005115178209170488729179478069400929668230914900556964145398949641505088853377803877238426751805537727783058009861489996117895542997996462568415090275223980592030405348983465533625733413812218096833974141153035381867609352964309587844987955433071212930336643080379816974983894058322463245575350722344060806769024678239064474147439688075843032665541841594562341109240688276724758034704520268361692707065450088831342030606756304854509524204142583333371509098506057911323057985268335802052260750802425563413205626931331809124710820920801468956976377472988489477091232796690308699342245779080988631916320383463160742944391472063231995711621238425614601618839220771312090213226605055114976635715307129497583264629047433810702678209296573924498150551463504445081490063409465847424174385266714936806453325732975345239292222721448717591604297055963918520722865479704403753237376532610732588350631014894355394554423010796164933691528716290184555935775754400471816580787875892861106925153037387277635907284340149543607506470048431413825001713950462870770925469926545615382241659230896810330651313749494140739242623120042337872617906994315612674031041388599375576767464398723859745946667934167859610656012033843566684620832706623569950066641357976848019015921092056927993195020776411918984591165499797583619633906110700328895886377291020132823860516314995746221075786025706922580384590559734657671524140000940724877464013027747196104051524428789697359393669964697803529244954344758150633338955095209647415492219718412737613021368990292757401291358668677397986452058512750272107548153750029410802869861833852177863762570097697760277880298898766374978663504847700810704409278067570172406975743688199055731362080301765450971664092588832992346500944200476078422846381018770193841030932325602507371889441913798345399801586054563040798042191115439064550174885815636472229747293668619034063071019986593642290646371607492961977993152316546489331631488350352598283272559414325059634710659638811710142836090110184840459165380176423978649442065591016188592745963536695354781767403056094387147234972761134372086988988204188535990018528947076355578451437293484594046946106147482929426683896864062963290372333609100695567863702603957867325824470385675495609695163181498388706891484361706404377157486651002775947156927987970516902495536010263821702968138062509937833698886526721472815712743199355985959868871141294607391156456103377911886515600460124377669096602683132988025876570346916689211362370170549263320744830730494007807698409409762408493253470272941751828193311206242034422006128286776769403562961663404331718516882230749080123629806742020938742214754056588361025648640847803385277587504408211200398509702183647756491049391825538757655349651531007754293471228905334326465283820063026061778630382823054778945221341944220499624648240990453058811314825891628480802467793993508848039140195369370279016115469236959662730486914718049116335555965838660012363125655872245355072851153708682641763869410969512811678422551669819087752757851764895582950117179080138147790685374686910417307672822611209395998272346252496834175907205785112649650387440084743868545869755553138631945268241775268743135275905221436633497299546634397781307255951718739020199758036027513634422637138724288174962148178508768298025807005746054512382870282888951562464878042514943844937194794155589713720586464352847038828199663531476961487749972422030907414533237157712464110855993746476658448352364094571865345566558482452351855866850793309626912473200723906788200147148790721385633672869312138686296948944377038449132995185479897828493828736478922844313698718912106699172592495644124902802922079659981924665180812376773719332865980180786982021915123780179311850325416616920793371273072713207801150901790818729752847260493319623267751747811207867703411250152236617374903719466317457817131332499175607847626716486237388294600525521546844261065354676712781013993293260860702486754565994052882152641319471835642787930317887785481577364069209751131967328767532464605925222326307267910257567925441811417467435451575445592346716399443834527368221113642428167110673762366223405523347047541820720185840937118646558801277835916234204749897567720181257386811483920581339452185635648237891566846863166504819293584428061181487162152999253864001890777274345742872717192152257498356884843923767386515881567447024943588683102573919270892268606954297656426946398454362725996828351582870396590708711539513735588752580986869332619705778439629451434234473732531399708437725280109788749689258925549937711615923884423233385867082824549806553271930766711736094629370829420521465692283786952025722215160432938948125231822662781997236742865801876169110465850181115757484014997581848551659894692101755479421868320918446083719089614765053405855639901624136742984606498284296229760135999657275486768002105697852991766432912989969761310670064868470696470183292241396647358664124993979946573889066210709704820495962626417973847936095209759804665173882850462303793372107001930713040989719134806397125143371516920134773297159798194849192246949195670519067282560536023161296785551981041363374588624488560445182609293552337140070127117873993450317532129819466559561949513754347951003276294152057830671173224828897017567001757896431990316202906478793754424094433318037262091660891583730665041028420829485527250156649324675306383008434730389718625169412187032579722972612394975912151256734296016575425323625188014558040470999166528740369393447878829235624935710744939731196741998435890453830171731582899210038190252911142799031464936729271670881875343493094581542697753898870490231756866325335581945751867367044022380365913862869390585761116721107748317117483883849605659939933638007386124924862033417649801439796681286532539932668352674927078993941801889382589432882906911224643273308763129978674174898566278250132824052204618840805121467671360397798289594930999874607956912682794904139797920512471360935677572001010378903488075436721481054308795237872264749404081562829646260058839491496327770759118504362085636388664218454730519683212433092431695328962783923295258030600560620779293179688220276047434964065548642138753627135257612529337441710834701441306521075758398455118314623203937831949351220127757443895089701221287274313823182919152409684386976311811705506177199729601231732673779103353336705709139822229214166087360082698309107015252717649648090211457187533460068655575954796133551720487668385203207510459525941021076064364706494271387139341111623190210983755472955413653455258715071857594691630375219460437515365680662562853920419644769378532205776016922169420021758630170421089794709154998143959453337969661187970444691478307899965030341074343913817483815165883685931634438736367080668363331250009964967181627263565299804981088611548305666751116154836351045415143758240242672313483890814221519526903601209124679165119100289129874631345079949713493189236113433510952210927352166838277392127281224481379676452071174189798798989642935756161378425781185492531382743806556039778861796152053794676914522646763023333707246033953256658107864114411127165532961838699049273423051582671484809966810733985071533759938540339172455923980016907353427010394579831901271912150945419541100377413618644336715141410780805308005018469525100424773626702052924200110843205010038250720917274119314369522405215052801056510115221817112555464864509247745163541438642235122907534791663833877166630789356008642896298339898997478392035248771195232029474947801990313715738393692401113647278562267499087568614844012616873234871006782354674049730354778804506033050458374957585957014656090617869464220036610573317264488123564853634027496414567778016938410014117774722855849629076531142983919422648834979091558008106481594713430799481240269132684670710909662147593503132589567333256988026352214329549377471555851638594059040841795567338629747089776708645350890354834914613277344940030981301289593773270670728840236153380612751366618734321409431700618677532527392704533728311907686730252317261846738733518450262981506981011601785985400519150220297749235096081004379193871037205264614778244206364150872804545348462607580251460622560886873300305002272286354730479939729766304797495513866474602843100888191186930557891458336580975146164467165934331549928786612989747647839913815441752159807823713892666810764553869526915184900869722623045918981867017496317526884985482470906957642718681079874780345966280312081548383955337637866805543170105263413618261457900126535652479874398856448803645688205328564061534100230606795569763027223361526950527379565702543978327349514348337962349081148843249885562352666043167089823870144718998270664066894215254448383041909054153918180329779010192448346689496691944517612422554089891713460378496889524704184919540970464045487310547927827316299474773405204526072648125021821018158607480975339469916804744646415909003163406927244662473902174523923999089017203368015356466075649473924944985136858629394894729093015775156612237432824695138568771421526308664778024687661093535872190647367014732427512870956396192847868785121638102433939608167613106744025052148369593317353326721803579866682087026998538134595364846612208682405124332367209215487390849289012256439737625793846097936200303084208067185220478453315800114747945524563077900420149030528570870368444851503404286952523152196463925677075921865878244659371677262743505845331282775993038465534982505940801818359048948403656890265772964336272579044120866067824845554791725683213905882691714302921156793297643001213803377877551235794378504048347312132885215841663235446880407905855028204582232465082528708857033622281740222539778402263252288707038428834455891175914713785952384012770633040867884632914524882893821077102293484563622821805415610936756192567691722758666593827459298540686948200490248792240925526879708791791876591691691748296473285970050427463764265708018803359969275262407088266108923989569016929713124122640381114120887649695413949223359557430684695927149307603840932478288028818344496197232343131341735211492908058667608836534479178682474192376385514949664090418294020111720315374872943113861412758010669256429098120098106187601941881137661704536053821814524903171522158808002604764495915612683030797122423629340914838297469035908249503760115077184575553290192666849546234595212866045974835244445968540144965319291080783476653046086178153094237178868240982281790652012379513408153839440797861118266151846023703112755581373666901223753437884510449881386662208792361278465100165190928398402708745781647541460095208047019418975941305487203206866460721404658011617848753498531887167334337330195567500406419584556349783560335933374934683975879663928217354423337859591577304815294977232767529828899593967571737462919831467945709654694673218928691213064042428764988199520091578661940524692866196497227136006618696789625533240962062916341730067401428183490590659165379665893333156445690749345453217452649952996575524986521298510080012032060855433367425415826946900983388438739863707173308192044554901660858286512997367140435483417195702054648312345009063600912235931134204420971484343286569939344962621415339207173455795856267353438623289577884965615737425950477898914324854961688260991581097045030562994846922160454351021880474872779981492359169619481396604682554031736264142017783116999111203619786225102878972457030039848927018215596126519725595077336102371211592177806314010790804288161169868792669133476994014388866706191485228147641757873825655750708113495373092094010581885934025720978632562318856132633581563410916495627927307071803645894085688349260299009772656646864088236264528668559412980237601992865943252163095461184338257896982477266806229778954921635426480115793284506872717497493800068441244706865027183031420569039719134288987859731318921641373811085111947482388611703306494818374891512361173602377907957854294929067706906841059240545423814642645836165360357780412970860574289342195251345146147445099974707492183016170504032113995457341972929215140037507615765421930645247486359375684477908904848679828837208970624425512071242394503980578566813659603544717189715936313586487622445437566167150023916465300275184842375563208810054278331870582797800905307209804770743201185802610726457450806752461593047725631222600771067090467441505749034097621576602001465547188864439818754490130636929228698198879865567092666314235819554530971736671961502483448985448888709788944062691183341899940209046172532017054987572991425899528302387604291274040947853663479843442965985681271553839185085788330488832455326762777873385927953088219956769830621807470502306135606457530856645788405969395551323031520770605084144730083623094393614254631185083169852233528295542377973391985821969787112445163500075933705138989225685396955332769956434195660065697863265043325684876348183939576882905441244745021465081717137760247424798328661794645679857711339061758166159616611024596140326081925413327096120560986883150334126296613562352819126999070894867161639586599164577116043653074117987170116998250313783900179593135624470418980656872201176858184049746786141492051163263137115699362244339108695601283942226460324516138192649054954284451366686856146432363068553967979189486189014472230875752173595516177203849134249807287492634123433631510117167932122446011660642466761710069151718437694668727807935128126505356268900186710758450208575504272050768627501194439661479121675030510906419853325357729486771258619476050407297896484328727975030128503679414709203070268904043018351256278598004238396168307786801391875986583656006586579433611925165812657017881223709716608014112643941957852694376428227413004066696664539576146324797395465253478555733289585560065365974642401127375726243884659155860675937142559229948744849061030432066842117363351654306359999289546748391002711241682760316908878902984253762569424879926750274921155028930388579000754695681557920657608086131509195775877492841480357855159803696033769983160461419559462565657307145378916379346486360060593629477008846701714000525630643564249532606478824086941708808788397428980125641009549003155597834955267417633424215536319520307173652015531462710403698972800980382911261265534391605461495478050454185137478859689738193980794638310412132308296426108148786422348893445303014060235280557508965452167253664969501810478240115772006238731787753604252370655927825652062547207197505944368736694113369869388533095512024743962699995230995247312106983627406105900057314647950624695396234816489486792142580415743252364358832812038160827597982983761183939869072798277126731797655552331086826858502627500084633511629901713984713034696655560725919758301168896904478503959535117634904338010290912276058485038547275779844310476109647772133801678489661296130206255953339665548436270446998082885510229389711392667660552994467727294649936035457441564210783865768076125389346497999269849171071280438888939989472049015908336196650604039132378886493927020963083528383879959360893927481577813011446341176593888689987449459099746602369771266958305390873935642161772861925613815821835787064704772534005460600809526142720062021657468075592198770520938565297717598441682509149342618035082402962974137604987784688434774898735443032995767199974911701079328999317539935894613798725477641460971342832869418531418482124581283104643028482804329031158535813815106427930029270283583864939137613980422887962983359205554356944882636565532607103107671255696644609197912214697732501927994360837617870037302050093235590846398987615042403359739347833869614243928429374650904651862950995090735945457801237572605993870779834358219821862191477067554910564889134603758490913938978872173616949664207961952595890993732788708372809737717688687749078683753001677261006522993964078349404107185646442364465716431714582806855739690842216986072743539952049821320508313775234378233920485482800827927432834947908118802533601873865266313357432499544920513151411852753713767767494496596411463192912588477865365362054262441697232738530371380427980707473398474932286679258528622556161724175874364007819347971774769376363155372457818488413062154184442307280012419801888835321028013119828600889849723211742098879252349939863479324036866989362762950898147261004031741247053638198336370996704406307938979167118037767395017138365654220744559799515554271201865229692774097932421840948152425700736368457824683520858209033740511587075806860907047742712584859604523061144905735790452128956519778917010547615383672708003506860032186460419294927523894580916010532507809960761586466308736646121720223767831051245063572638824793604308690479814526777890181665513514202570309373806971106329172124917485182692729492754409574131021428012811081964744440460814867055759179396329639356956204749560205301530505789307432224151664779449826109347612090832675318152834006091792523704814873446208258013449867849106420817443823716995426000316587861105016058974945365717333339176053664012413734881319031864093312983017348065580922100128605643017637932612838571712852667126589883693318376494741086954433056506525374341715213702242651367915324286140690247621760685414690463602810201822966188462956210449737131991886664433611679957952916598832990722655438854551995799650343770169292666104139186709508511246996064529160840730863881226101541606371730373216651624329151420349881893627644247279096904117835399119133986131184755695775495447578528319365347997546858672160601569740299315934731774024764390382692239503868958132844765755242066537786514241129581725367352092207267219696493517834889383830192194950225712992485206566728762169121054586318915483233164408337758291546899909942681243761561242749913835392214742334625104913675436753142660228566766909486764335167123587594412422878221906851073200894033085753031274048564075870643001600594672948470705153475864178849027159768551844008751001999871553939350687626637576549642028899908680348083596197845540792138574296695154042224226795820539519455151787811756982716077132406310216338926366148592897438851261356707102556954901909986597777822808707698732592275913597405052092340670303584939420039198854767920732609154213613727742546210820262910841879978260014058385680121109045132511138141329757176453241966405716233235962070945785317645389036804127738910627509191272878785325909889674709077686180084229569536009220369242118114014441179636919784400794666135912833428435801502945568929691996720981228895104360696413668639015095803058049488053385786100966582521624822871625510485158105974279491758802802900421349784806259696258273869694208881429644704306193916149283034151968676551091355164091303084866307188915922666694041346864829050538849046957582190105505337501881201215165156744578108973909259376791175530341974644202605430300749381746846289403706020021089875441930501992999948644839985840131189803793701822735562942648886573914356596933082834190590937884939404257804510530099154930106863404704169196196794940296981661289234510040995042128228229734824071182937853520267886060072794659364994371626740235348832192241290220850601398719299705698543777945109560088525278029816820219765705368087152332955560577925467610684863117919748880337623401782412678621236871507115592707969373491689532972421112499794696363820595531943328858624865471186586256118196500346467895093525394965666333620991442452761769513825188924901685055926319919435917276833720301767971887102603394897448486978676020187370176467942208122959012304226889722165425357371634582222132076043965971669477810717876199041566245057435399498364047739036897675052274046237047443283640396013125287723859564508745942965296365433661286307268298514331730973915676030952472908707597068249358007185083758300240101276939729850947425511422640573099206914465257713197579817431518463271945711283307393366084334896693109986341939490470965567658529480707168913127990146798944103748490398436643880532794177295097005456674890767198122754122835300595686044221723296759872716157848446483604389283125882855702030561173329843296408234863151158680037854746471905933900210765597781190250113177349552629288778443055946090973711023786329079057994842036318014881166534285087643910279853893872843196728891251286538996139455739840971811550866003119924321842103536185892034025795360684323498857542553905084220215417875917546018507052337909956606026729685603723330729846216659567894283959209142266157447515979336345079679814021012130225631225881996488995031379737427075387338017769740393097417551970407410671158996530142500876910986152271971843180945188081169046209805110312479104527481160405664000367542940197700414650034082926864824111868464460100117884436606809752503615489742763930265800989282736333297460049620384809096121794376098547461393591084346855862262280577052355559000731705680740301885389817762141577225475995437207994195004639527687610805610413166928283263995918640890456672124075427140609321987778735964862602087171296004657247548275256793739084315120891329053429524330292467917923196885461410101029690293084684136229392260309373324554477199286509733843570662463218782527068591721633393738137211707801422638191689664851422518965449122334739281493445553025649039970480522276606493685310896747014626129672928942982608570794601071852322418661486108743072347189267912261301856759961564411758183862843860810008085394843095192761619088913784421578112743771491796358290604847834046846650870801814649532377302621424926739019067778157027658171607657759644813803284690817630605064150912822898044502804402315530918091869573152897268561840004378751554848552698573316822119996186989775116545317959685600197258556393072446223173469141291039176121552322982651976323983008417933306800332166942010483783165860294339339911900919427010747198351917491210847474077623761208757622381372673242625077807703118359214741760695093398256032856845515268110642605926367352817473402327923470139762863706186920395370471424440401812567547301269687671982792617096647821871765802457729743061241110757791529443301898410864758331471079436191969374389568044458589571474354721022183952304320593551114387831274434419556042951922107596159708612227913196478901253812509533197850839843345302605744243568874607633346509389590570408269003407107122425606419009803183470793818639306255630558970924780840270110642394481183103129737463040006068040201193019764501917506329669469182491327062372937976578651537247898658905725874056544678300632596025586107056728414342069903949966574677861423271779887003921183538280607118991425172557114094854541427845104201173503381323209282491571764514989681001308917311300510606460956298373177272730316583258880315016401192927771137120759724152885871032627686195090618463056677287325101434964175093901609912742616413220524762326570832265342229590902327530458413594279567978378388334245080771165286515687148598654919301134640933415675259593132226627807781489253327031563182469924758736022935122421970683808118932403414615655163118519366239161587979158007903761015176277048559020184103149780100603665701739476252778847337009692569237983325285213795419555015325826252172193397279068671960817641742610588836718774057280026625329378165349382082470324128186581028478585386011653512142648792865914437460743883516993090834062755013510929859620018019294242742083462198231125896669696431239980476023888813993620159883203422769176976647620010334941139686779657408358818897759234097250050266299501370383323076340441432119468654914600737881957049997030222405185303021456168923781368339701009770106626642536715135735553699660586334980511815283053337380663078436609950036952042591742272372285233723190862527665206407484045534040533755585428936206288463702882013462817958266720744377715650064227414254250762891281616426171569847480605569125537902496223652601046030026587789332909762003073084444124888980794214778840427963136457251181330504888531682147845011444711527941389431564175820632718276294606363238610290447937446336856018707984093333108867184661242097463776634865936655473053617127651538994489784390855088553985385009494854698199848812830290873991352817995076300776133639561060185116037445709011376997364245449099616352088017431968593954577206011001361441073889860714774227116399882056669279553300500032403924954519822463571962873619748509831653396384123251794493672223288964707170653402711765258983592893152967935042708539498677254945919714052234067792028852971602831875483259072554397933412552474018653325737402304119906077316719172185727394529672796920272450195935169793732766647425198187483007008270759979500048850733847457549769632344106403427602942543647566535696558028829184944698189699690107968228890107618191576385235818295989309186474974118457585503490587365163328889819298132251708663652047136639430057920696464489449323279419225533924877612397824881744094110581141123435135757196375144958525814657035847080001333107328630518031756552458729974331113840887989099503397886723462532705588669527333803224583767242910848746421565107513717253734055122818549846526419555151829675485199767891248139551847021718994795804244175620134974606487560850606426905146894977763455097875377871470801318841553518058791663960863036028703237866387039640584182024095292119013787356651737229998903358102210840254808783495513483963091888730246728460663085065907085099777474009015716192505509559020869453215581659451473247942028543430599733645669902937628080173051220731027976660833389344538798441042367766688540392909022900651670781150881833810653842353655910664246870100462036218096990895533292193216288534677581522896702426542096351135730908329072424712820572119546121013249361905216431511985804338837841756320230217046582298275593441455803977704729598758962086054174505402807699962035938941600633018391204718140639647026029797320274805058960799255198537409724929117916385427076731625779026367902900101416490021680168146775126098306921490749029429135745605246714199412176087871202249375472273140555482528945980868033542965639578567196978740751522097345884883091411661266738459775720835171288200847087795849076846003493671577897880206124027698433533879422478177476229844843442704799451225797779637361348762824409439183032219322620252232457735959449394705299366014199644126233701667601467585031446006903653439415874346798286689387698446468636354940345319529045474379516768364072981662016682309626299395790755445911313534957076577946151649137063417180583656087513410669825588564345476782729894191238475910646192844879842333116513900023090387950520665655898534182978274722709710402848405495232911871138276908289455068261278813145335213426185970147713652277221203499085465771126646587469682606605053349992215876629551292138281913900072442847417825027690209350986732155569873824901626678493278040527671168191128172636565131389160068053519627097662761819285653213147740469109186452613123918978938057944627286779575118131129670540914673001903718915004785202244364721496259334708159518795691510435065665590807996690965043963445577087904579462414216942351855783410460273428311122821852666953326667353821377628863315220359667346229182884872668174263723036146168053536705288470901478981482235494875053921784784179595589337608778339078643626600137585502631197753424924066736231242823703695876905169706131144559938692507435022484019537471551393915659009190965478822568533014968391528085358589027044578635484192368757146885560438923473247522567381694312247870313687597458976822555046140815969331322710876113978464426082042099526150635175737494094021272839197346990990963345277804967686141398151640739363537787739051773536666051196197975194610642888493332793405353461491591358252845673478700193221802650495735635952998082609143249412879886556150585386023545073418921093335456730386080287775747536137975269811497893929637775753239592110980628561271055973236376555572412833925671468782635505148047198655026492201310659899106060942505757389510922830930101736018118449210321435589222975703483649343561344351049034772632608938396031346898211576273430235768428208266566795054202477108618781940013505131811905843030407314873163880759865966197134820844617424161149983167207990641594343969273791612194087858482788813348501919369680713725187160784155930707307819521340583097599570098289199427683575800124453878795189867952453626601158352808923561745934090324549849427410921937189823250790874581782844541936969171924832047816156918771041993174980654086955280785821322196800652446755166802954234507096802555143488946188928285984904133592789522257527819728403208953225241772602218367187082061157251109728859389441776748987510773387284755012285655463887192898824744077918213020702623994661815809563483697588058923668806550393456760631521402040276947375671650451687795700745066948250567004406331063912140041273546559844870735021546024515078568519441937970207804441241520227582166150676415300684854264213632799996316460172817119081319718474333862429869660454885774321348575305304254288308199996178015311857128472527685425591287989164835684441926153840819304035833987738923354891680138934985355946090874772968386518321115863176725722411652849683406230099299191818225241873789357282441233980010236885484310018223251239592563099573658399224665269630684057427881887427746453323101498590150879692448648155762781152707042897963802369145605354805329570047106843261613281879573347598285981524606733620510535663254912563019924753082718530524957387508127526535997630972600642885836897012580869189287951753864718689214993306195022999676256080005353446164224837228274866854236741224739105780583780687078254675589117477412957770242919827996781090637475264382567509273666293215446651830911864159682261491612239812424274945315775669062139648603489006548940021030841868349114586682047238651727047584329758579407104469712249129031010968156669929587253177618166497844396146938222950409691902756553117569646902010225686229975596334991432196219338445903920383490278028995108937869263605728588570304850444146669121204514317192079118838734380041260180046447021798025927552303495428157314963284910857791806856726771823638421522819267882252647742165617289513196459064618802171661156392158730055112058703977896257494625253874284675498853392527589307884639439999082045471386822176615418445972880564196766888224465613256736630500462446836400560836392916172614470489791899638301552171688675082455529686601865651260519170318684292589605102222192960996914546594777773706185547358395641046958831950576048093094141281312629681431689293806585386713737386486843159568135231314209909772515152145371518212493992886705568125342996294320640473360941950456993997641228960345282408026606878079438968975921532454413254625524983352692778731821933308139483692383829241715640345525982218137253513637093151152316982441420708700649433684505304626834362977067698813499873239554868454193753167920725313381836639188645970658302080726011569717184680902187208932487050780391496806715625492363606259353654990034346136789379778776823537959106259977918169484754850883960626080794250201857133401955750232612507167564118409099894885242126756291447188615898912217497180907298006510511978676153298801305976526182092607186303136505890524504102831375182705775418355688261786583584458106801487653167210149674424138918860473551500609436450307095824744055748165853777499452859116218572267490267155827039786144335436861268584770284349128529872516276670703848314422809116619786756622377420195718907080497145270624730178446477096588368634933592643261640851648896171826486662343831325286056007634165758640746373873907757959238858029965542106568714699787307143434154268416641173304433839908305300353588429667533630353076272227992644058129720509311973392345364811950362936634393780908316152544364875785645268422571591085460570344944738141810228512292441636630784393585113210636787249136578886951533061761160497858476127836368995356367718597456773440658580412987677927768907311364811434691709396441229037724187512041828854964361370910876699575273587532973731889663963664303043561597796532620740294793210860080547160791548404812165333130804558617776081553812421953725049775698089760684420962188650952065896680442244213908298493605124370214815431716125036689204722494025482149495789276938233108968111821438075005165815244483083550692643484544786460881570790797861318236527250963925284795302283417160697767409689679730422987265633686714105828114137058544954239956998168374659640371451132885468245124608264827384725346563817091029329501929980362651567995969511098412016432485653021693534488217779948174844390129700839527015959631677182034936079123980928132216639701789049733991664792489739734571404031942708938701709482753007101596819632375807048502661009653083705338794339474075073021060581447193036864877700084783095661976510200678067024478407271797733156674124369533755140687169418990821875327977569131931522435952960366742827367394466404607593171877313596233487271365864608382295007314457902004382049228289199775544482268183184542990451432617564196349009350171140858600964973847133193842984793629798934761624667030770663309307961682874767345064262665845711222149324776436988810417355513120955262890604490294640516676430603293899356215855726602950074619431458933032746777995713862894846239366435344850694420304229866449168191434933752734402205700616799832410181947948300498429364665525637535753297528835503126682238949876540861865011918192377720743947709419237290107614915804920348047387639120633775496064407589693031807782522940285329426933590069665072693117848427967479053929060356675727096587435094992118193647230543317177360175482285022449238483712776028330955862390760725146301988791411149927566501359469232914781534532190296351282776942449668153870776627040854856331553924186852397266581381052450134360017448700923579164324587508122443357356706261886313958355226289695075059465694672981642769083709678816500026788967782133720036941157870143722219393763067786602357023977221580215539920863858581876828908904057430904612927049874803922243611667864787160351628470495916120544491717474555115016221376166528001662535981331144357467844800021562518746733612555655221011753237224167470750749302384706536377625040294506977155020459270884778940489150849482045652203402023052411683940068616733751866496099088947822238253531499562880343749996731880549339220024747022762331938000411321241505569015201530931949873158316004852102645955794087357499517425083694430337070880406269913714304675201629315570496757569126289914278508427113061381442554305829962012465860507244110201714938392500117835593278752371944725733179832627165303653134253368096777852141333789490808570805310774232594690086781109455326899158780280734034683487707003765390982749370123693155041907339527476282306010063014898317829597876543005516926891514931316586483087461513783293692943918641211653548369709995713750288787407310385573243351477089375712983591748391869921003647997548316622870877009444988444813164468436218489059732787377260707118473626380779186344620596612564183490424670496630140193945421548681732763829962854885610183990385491178597565227099205000506973678095442388689643474053587533104595348407415906385627208531112240995711776317457780810308391607044908792686987549592084444682747120348510501798374408737706132179686620688629757061844701970873981642863903320143595529127292675534509797446228976243718677060785096338733046983556342624130451404920206727348969968600656695262334888700511324732239861486127034883162407828435693306358031913784719528500126957737073916194497521237405710350496932132271413794414429634018415875533864306132459711558333581438373151286343800911348460072049260555292028434799155522542681449052235787176471988531754832669647440431733811487331075608489378970717801571327956365520879854657776088629443680423101544805117663065045367042419949720206133252450901247084399427186576037638152666257810651205003001320216842220385711610844284671874950186123469370035016766216630054887877849115635307306293850946994424292520498559614279619208582212309749602485703906505624328659923832879337819631765904245155388183030105066870188650808816228927268189047609412614186468772819777573915352030129148138441702150689361645416297591853502163919204757487898507228483360548282319168079139297659239860326545571232977640446372301085713810110459397046132962798604009817810394911832826122679260703918814518182396099635792429730275201566628212854073878459115333249682605394974411096978787875895649840479811637224415314273021377235394301613307830459444072754817649904183668082800791234929036973708443446398837821795522329262428770763994749189895635480133486974795488234944103227967003224105454178951194148641854570042605183752057040831028513621566220421766856376459997130865182441611451164508089024842534780878977075096609908650699122003600350320495347631782565416768167231215285442143016035322106965146857722788702118817756033125974153616336327142474851890634993182703100165528236204886607161552493497866594451334771547934875494943916835743027954837729069926066422958346922372025196014149358035537309535665055857764201584536159145158466535113899802570331366603466053574121054874186655190718453254854063009762055088843357810281292028865631402109508284429751300520479720025653978084374527427006521767319024315414715605827437171210693423948807874372821093833100915511019190302639646113343103890227811482580745134909310008482303412989748883665102639965615520088488221296045225553374514329253787853125907068734030836095029650657269961803236118580291476920533162292638808291067299595187272298674397510393393785028691428757952091527978314823620948081193482633693189241867236877058689309106727977043979490634883544234552347430371741384700731582357330571535907553522624483263065374786147882579844501624799271680090197349488901313474725495301665885059391506573506764973576765272640183737212918885344356714838888811228500140085141476863492184044244683538875091174435158214560438881681318249113486871687428458166816394098828390082162728068893871032573793167279677770514715572896677973789025705659750397867785246656020409605360939952071406120762661233663758176311055586822172553907743083505289901027487416184367140857291642705137689556310534408606478059664349350812278611825354903908082315590923745196692530587515091738319967282850373108203235026598967911729029619266246093368755046079514994479963440509148650744465628716620795984744256958779467486805516918267067351033942660708971899784458112985404674289794453907289536071694382452576854925116389983132668444700508040823710421257759868727936050773695215058371214992582251768511870973645914477401114208068051850135089940624203939514027429746760088670411828305616767759904386644850307679302594306376807977072017584552236533118711824401947038868407391984701973881622245222925778710279766407385630286408950315822583123278782066823228180215647986440721188154642881258466302425214026938688705769949129072988543670769876181832972005436913646483170977469311376999885660122421324551703696120504754282501348040808910235400559852555259509194487571667929117884795681090723076382608388220335515892528404370012458804977877020303625299827705731994135147934005615053115021787070029173168532000481927434811605180862223189115884185014236863771258693721086181224515825727983758506996584587735843375950868559728144737863524117096218670971136936735887283453699846704183074038916038876981919872932338928708252467906350430915667084855065580830959819111587942838831388333400853128166077258507380957007743325080430295472596974859926952149688129522541958496062878384577382126961970690443260053062458072415865324837552448484609941800986528972096363683407944937023608746705863145551074760580173983412548124520301144484231506208232517168763163598154072962878952231461412063628307467048899755397873946941215074544282344523304151320837020905654298684776170773487875928424504109292078866710276365717204894958386228138340870125012476422819012748667931027507375869617993700002233472937993278256076183743578557483813492784879301426702279747594065413403487605371900162235890529699635940411163632332800985518339258664956490826697140266970423939896355400018633980978672356481427904604361200666668192681008600682714102604091805007704584285494153357955149159728969712781950328370218784643172421722480471764309377271268384517342617151008661445667602306977662593010102330016521243018219153483997671703514432315434043503975959275712984246014798082910998766857200517604006373833603514280822470525522353318810780155466147307348585627985698252114989495724248886439916107811647855866528376415539020595463350621819193708341243129679198895951458041812205888597021474570772363690346939486489277100584298518109912818715465121233225183653823001738810281005874413127763880606365367188930063123393902197755169492186796197768543148729900499116081664709556057157875278048272574155428440471996288162113897088715662361599084422886748261353622509552349271831509557919833765554878685936216905939039102705318263007242645468166920145907575265633702282036983902705379336612245178578126650736294659788293087036181233387547104987353766667816434355544406999657604015929180452487437874219071599046531193463024087016387779198560234161169684201473961093786622511615118562322211636524294439652648430347192566442729392307391002117513384769331507047452714030047194496094992991897924165863134939258082948695316524871146688040276946581570260881482539762859656799039645824483555530405488399561344431521224398045119210345542320788297705546728291318850584867199488196548820359755281283561599667791998008501506710632871466883881106880034721534419027706919526602809066263478379041606526961275641255131260428609235010033458286357738697974478848827263369902947678869192731543869767526620866991787950333166539900290274389379565588285016506491088644313890165950172909028569848350304048273157717991792319138300584113817501319521343455621701199225641699309001523610466570176955951745094589426322816284060965012952283469325422011203384884839844570300704189581387672385257928292477867845520025744093245656357660680821109018211825365433937185002894194946091194310588465135221960555303860319545821483427161808651389393116868658806371041597889521775749917473767286468831752830746234217145000571493295090761629143908955844628972297716049387502555869069263238926848884614250343017819075462996102713845506077520808961895064666700032555204258529543355085859922019270796827709790942299863392769349924317058264694970527565060309709910481302526110111133276250852714151574494997368034325311084263852035360093765965837622209316094861379009669728231813566030968480783678329265915842757569042973167881447059694683847723531772437577093392131283023452405767190579548300738830056705939974227576631106887497736553294246358865008099945803172732169409834328650454524651228626315538073377467304737167594460173223636035674833432376608027742705798180680700873156436828380140197856735048658747177248901634870192287466343066778767116573057252463539598762135748711141477859797542821532682092715801828795390922535546513395180126929853180155652846387911788327585033477771143304416812354178870305238639793627486372045632881021180477136760485898017534373923312269226530729119008094922141350445641984994168372439208630507992685066708737576174538032315629025402554464254289375401248047654869050058582599236344854232176429441368659678594409864428532276984041290300040696495232827768951854744701834120722944163356363917940558822218648204271247808133831540624530506004557932451809031625800408514852895072519958980567018269052486641977764960217188855015040647832842532484556493105071594011713107721756320119468910690144805012779580329071909895841540790998941980955336387002462648943954539074176964694839134568229461855136457597512780226284986292687313170563200849323033426153781499656579101329910226969217630183456955682383010011753245925868147088388280697997661493500449952708446341970776674131156780939544751673561019281910021973208534700983564757318090534518557977563303048019123981524238649475744175102412907957086817540753402591276748737685992399997608605876074387929848003975561617990439177256819596161805164188618439335795639834657610854807179600526050363116770905026210192994007253180489086865672442526344736593964980295963306421500778702748066424193672965358433002249456219501055448582145521569084467276765085695224486058579860682981920846790061248178570414551588167885407747747723879745250627363666286555481640924226348944228746519996436228733955446873382578605102586170534560701863892678840849053098859696985101585089054393434654724198132515842657683274234766541881979486969359633671630809049632137173195867579036863907755693663554145601660566863198927051938214495069937446007086758541420026577183944700436011783349108438181948472645171178192054032653321702774489678310671424019019464512258337891349132633285454195110191197683363616422136634849554494563738447940884431039728113307934419802507749607484866913920871594716270708933312901936819604806627260172341535889126026469248357618863863018109946751890302430529133429874672625321227381917594063100908268567065461935198784539621894505486330868122479506781182044419026290378993009308974967855125333280229254501267036569104062987402553345320042798433281728484002877860916325346146128019725158984468957847407275259069075919378649424229814805531897868593335330386260368177066420493115330855847933992253918038278264654643021585750057550782393388522565567404614052826519771825247918877091501046942967820623935724565872496639461285574323558340653417064166441763599403051472978381031159749939835634208266108451542408640066561633876913437008456277515125881461065559883708290247402164593595999326572552695428877746007152036967128855660004147969099924591611182373334995186274173173726382414983400348314301001596294694453163718917513860050213060793015143853265485642612486453332350992220957079438858641875741428807406599868847977442169336421390497055071063928875824862323068567866529722900230220898606249227657194503319776939579167126950094319253072171042085008194404270754939703818656907311467323440472187485537861278483244881283889436326423682450131943402429658590978183030682623043972094556336269532591382792084534812610750155769341573078636591820581269604421060033506023557726897807349393465274186685859715839339571601373821524123032901276010160060618871728015955715349849336823791781319202485777797595565750164434543902129772196965901433572990172201733497167487089006034599214608921666690695720852393823307863114234812176719374439709719185384010475242114345482023842451843970616223904648023322283655286529509139032791665050420105021938610630678626227677067941975424027300612708333715201570756669311001317223311150887315529687142689471502705776135764706698006659672894796482398981782070416114227832782163434253273067073988650228358565256052604833411784543599509953161895411141712770059217724385365320389196656992877331181575812019224805547499405593247041439295401420489477487615960183823088542057061255270383795723672777471787669588569613685885551076076099781808125330576744355031129500300241620880926884924984550674035524275619998048146177542744434086575493330793371547441743473535458789882312619793340022551457129989749501387396324537717009783680731871213727835768901741872647026062902262872692401484994144413154673332160636129017875022925727803082572101028810061731583178523974677793925420426097991789600535688644201881914427501705396897348706313484735475323616189308302467987735074162002036001837998085744567089927097460182223700873187830689677617629658989594539372868874574517681055154917444696812381209946864982062708242611094889938050874720010800299394209425755031546083069143025692130069748101524201904849164215645089752612129526694947238062642557542177667259079101993391469153639448188533062048540779113342990757428428362098144312363662297839261166868297709901120418560978517676616853814062821191017876331681598967352983822578629710340980803055638711104063833189524761438267546615630885193007644429176661308176741496219223023480332912467858540166662840557289261088522905794071087018289115327543165778571708987789928278053845128467818484880420077096650527975300576692250476035516301653413390746874675949989279564062304717369005102503693603848898754482316043598261253175076010523040007041471251528504695776132845628428520941888660731385299150973797010709068436564424514755570937106041386715641808071652777439590209705083470979065127338190971836233801143282813254101968651342425444306178809729268377742970239330232411251482283609875203059515040911241554722777946582682644501240795676634768195433928742763182329162513449927244100183901947942867454185519675546024342049863813340307878125801395945147487574232873871354236048448498078344879798720037169752135609479274953124358901024674123349411840995717203729987053757826057877745347902185626262773086034667585792439182606956826386225242049062600978887883331937651014428121344374802693973729378903982715050466038741046484915170575337910717729394672349348547795304042457870652409551537497144160452918912604400970978171693215343897081368474193586946162717256621713071078149175946118037245244810298859801385949845180387175259830144894528758918832102475336816402137496911488466678234959473201525835625152712583136939708321530264663868360050331245436547864597513180888732280298790749644201722235545652307677590779389826594598247295764923089814068356597835438725091695208833059293546182906110866926645013152975969630130883401334602224559665104796891347356835460472131826080753369025474058440368098747489636475426962249649252027784103328644008540747995099348377041987192247332883692273432347945571558966375167809876308672182893660108618340179267942553479438475571450689532053745768369141769743775893039387848902443420954899651259727598401446696837717614678937811925360643603222352048073120003324803342597094595690025454743048800106473732128171444448767403709063641322502541696438624932307328671797742045043812496704879867955807539354464284824988182285493351986522249264057234268395574331095288252941066635613215339584881410210466486990834676157430476951824897711149885422585299590210842973135027767813947211032868464607963290453908365435398764583347692628522785509005982856318427730225531224001285718466480953376023381233858137990692788010771029285924602167107200573857108871111924119206547612250297836269067414212312764715089401597305385739397314111002906975928340070207119897698662529445412090762062224641550141829321346042415611834672191472771833021904383703300425668574385689393502934830669530996624575427927691624659919810884158444474037182096644353896206534309679925909520912839761125597494940947621944381348723029414332417525411389149319995702711245305105248459631426503164951544983166206139327958850549045100315494064494918907655895819774883760919959108905942916350853070486925998737026214955583405604588188949442097270592683520638384493601558294953723542623164977332074036424729219368242595775630359626560566127841542609996807185404632837190585579668345532442071444370683959137895150742087403526401941014507833144114318490951719732848210454862303221327838775345247495807659857566292804946036206532114080075056181514870619038747842151231324747431003032800338601488468135490948451371464453742384463330332213605974960450776149196554607437379476689997628145743911515812368972969860495282115396643724425196658530919174656377497084141827826194149961467007940989120051030985099707684437912258431964334502508023636716613870170715381128528176069394670417889724126189065400047352200732659643575974936131421411930296408137805187723217176872071199333061405833530073282693983079159587825613155179558842583901808105189860366994645761848883270846729611451213641097135918511129723763893542649463417126559494590550856439535178104186052102476603355833009785456453776384587963694482454012457702621302797715501181887641415795085973880836762693508111852354108369105786560643884203741679905301378133955022654187832080149893281713152433952051804380335724031965014085647633097290829021570514812139440501871269108461367870824493037720553248191941528681847594659163267961839900875231245187845205772210298250816477012122371762302458669040638491678426803079728757927410791197079285821187186129153475258608632203524014449258564639506225138147086390729313165536851636618940177726878311041360721611160144770125199012326924777951186159324729885345406168471094804302833966693919745252063505582623434852031705838996995964432286193181571978734438578695260556429087345813190327613106701261441709104205217784350724530424659322369787605068049621618213131511104325976797545130864873523233456944758105119235612251135039532445372884643712268042529538952374871353203080911118318347257103283419284241917906233927150406969227902264193627688278864132438430676463228495178671646675520449013793055587191739375384405492898559769743646902212328121116923924384573158343487834502547819801277711760130902828849254152044560218622902525089173691398808788790786863315376001123196246462573905269637711997182108885113371154629329604885551855802608868755535989920964057695663206602930710147762445751215174675404889134749342597804645082598574009491384231099631987029028613778842158441811940951038448910651682964022967800883014796845773166337356084391928728775467602143860588678375907590276563315349228207891107948029239857139392756374603508191345475663521926754222674807782694843019915029354355218986866269568978707776645683017082812703139363093490882629395699575991386412329057551614886986463099832214195828156597473190860259094856665627674799895635991946541578742556024104952773863721466386044337599820751242601606310516873164987492476027725215020308883687527687626218117272205108997541320497916653982123971200062270570981545178520844615548840618868165469171426442118397427051753895325126374925599167488637213736524929976422882368204744839249446919847961519606225311470954126479923158482334421566474379221861869259243485893911904067976203723192682110343817591978297528106523721546698563383709271850084218289069170355769597850982262006293146723808836651011504495961774354729088027386930938557805559911844604147865361082188688204871754922610362201925764183871447149435341748469736671497642977161136370421696476855336654316400439605868098082611296304687354304630978958936995741244609990310457650940329110879420016559693432041793036611129164222899666894572367741618845381438160226248712499509096922041719444279530273532362299610446074414245966625551626084426786948939953550926954804152115844610567869451851155805250368584001088289475584628988953359649265026088389644744006288855447914050274153214990977729740013853183167893851571954397164287920235922108704091450818585973490098719608489633699975804408754710090051148308271111516956348052485627351864663251101925492394148367953882076822296526775486439623175283649460477688308952283125420786669053494456203937345035422705402524115771998996934746956312972810030302678603230127285028550942569141493694424159982812016581916266204639911067408134283602220785353869063698101474835692294585389291375328918432827003222065690414005901690741461509496570760581176684370978152290485089072938743685734084648575736023250459575557821943129709287713124084739205849178160706466967579117914640019797292685871822654641046977635902574953131602833283996120898752811735065588275796662839933617505431407285483551105475247616442685743369475365805514933390000411555855867009004996084264554224168805335971730570766002955155189812892362676876108362480851818591771947539495526386265768736639945035491099107635975291959790520546329301850131395339182428673596934747158850842623539898302471704998046264365541546469319237985521890995138275664370571857766485146926274705088492369982155912881558040276142493180242017198081653513762340257145791435667721871341399680901328293861108310901429442650813064485856788562678944120731905122620493474322587152689670270393944638764146672018710610289395879254288146980907072939189331946313470782403869141480523815516488271022515252201616796027343160675425534257866458949077036189609131747952071502608492025221059836237915752951163771689324357867407002980200400230431057614819057987447738493595117402450629413418836199217145285733583616486695061311978414101591633602803676388337542660936182539386053557690855355034774418436526514755580880183974900897666606926056555386154381953534075243426075707651018752648090530277811333602269424552347827043864995637362184577561859406318750644085352160758845644041103765983256555940587607406449318311637948961555362473552746080818765856849773151817603145929125061936150327880110061266416188302089079956256414560644319798606957941078047823802955575772255620003469268911977160765435390649916039483422236574070850072893223352288989328332048658396648488829252013580554057667470959115434504232171277263662378057790156275117233095525118417594681071820285992601686435613724918069837024716335652625359213469197536356926264131150156665932105698719271252781100782016703717340203496311673980900838401798911008213514802727534436052614409471748111805763818121935268528849090838949913719209635598767549204497056173498328224372054144603467049210284611676221682462054412291380986202970957510987901470936936375277165335527008980509971599897921125797530014029613858837740492205552947547740948664174171817364805468059421194715177144330848617624528876013387614440342150615419762181954904164469018023030018975392700532280945155521808439487618989584379627333203942647412850741551599684430376250600375986106693987119943096889447313573078914440017956816809988423548224517435628083332461024068833720264562929869381355153976300638309494662243249203824220365869459930613318628147810367230324786682153225262948643909127006518444719479796569655222304793132596599226237996033820139809856734683485622973649241751031506320287259676785137788037096653727538685446379696947055884354648088170328105083177847983956756834051884656696483845872652563388871429638438825497764712067472456955356581725237024936631558541657065433715450098130809492933642198270862908163809692788257718876508334549284805699514635396820311920431103521514705938128720605512969100602702527880364876627613089345760772561419736771148782302062078891014435963231020802953368690930146359206264069979394249731961660204172829102311488596057832861055638635109691148160676382950523983337155929075375066621168495594324944113913787744958725904722446185019538378985713872576293158792761131900834265692095701302178939076802214787051152355700751625723525862895288821878591989102764060586003469026392323101683482306893116864276744271348260296976624387591376873405446742144711181011162211473232019793989786825874330374346165958533191518334542012336613372312802771097129056606801924047249668141214341503527447124909295431326105220158229672107095951520953195102126579520779177597617486254747824331362201754205044002840307924320194468126353258778894008136275605055345454181331514167857783391853876058559115771924156870918994786918525933489380781064739982219448719356183724463712686326695569902889184046962753463599457240037398006756716235450494434500014529018750732523640884326138673586460454843660899546783029715349655089913482696895438876542191775268428522823629323786262302105607687499570596830785620370688336580272291712741816150038478263669801498716739469771712704656307575311618204509392773133755935790841639299029747134520657299635021998491184843613931714257253561398213663676622947197098464033353583033800951094203537503231695267882224719964875873869531656240085067518602523800159574227139212380951748584775837180814205992649848301289762928735833384978417088989655838700639571865112745634645350328615285803127663109244008606581936375726502184170801815321697187455529011563140184193660841490800290998988128887793121475710076882355569217187216578732616792765122085959029097274673631169256063357666299404594063472674575939333530085509238525059502551052429217067182041066656161265704209981635028301255986911189350198065562327022283366474831905657000791080198608982017806940007580192473353845480782130451768136334948155518200729690543270648887999064452520263583990864173017080914250787552312945187620640186489457436077268466659008207198602244765641822646823265230049751966707521351304618255901175293943953511136775580021695074991188515629121570430212059961558493133193119377239386565415343742793094061379000191192384789581547835887239387864706740769000727596587527261104576276197427602273903745730094127538727469058965986758390300289586592446107620964294426745547344375963399682606523334083505640760381440393550879355710880537662780720935263001164038908569313299558550567182412569163533262385917005713545625050306920463488130778024536357257779196800998555680619708845077052706633032933521619450828934213083112180923163994597032449922161635742821917650534081150254219066955762296549553023002209733414612549368982774868834449405753889888230960302975598181946784924379954498100462853644606154181594252213302829630557901993010381235516463734263964683052259835045784856883537444675989698545748401568808144328588004861873264145346167180219818949176596806018970221367052196636425244376961658175567024212493398709801658240818565856540779653768003738148977240463090345392672538797418452995169965508466093255166065411418641096637285787744965248927733020739232735753439054062036505772398746772952097702500845277351336531999154579770681681782495511228969874984038196222475622171986923123324844132485086718736872259999412848000611296987979092601348120306241287545449302048862366565324310661202037644434379048526376157741888764765385559853172493761456957547308928693253860637349187923807085874842944036213285796120510896995602450189880892057270291009669844174418617024163490494963234332272146822996667936741438033576836024217434849446166454457198364906578096224160157247863290251376463027577666048958367104202167386376192930947087077462251109329555632648246204453896889474607915661104634792456063144124304939696047423093161380876682866107959963407997681964311284173425381053720605762410532962428647125515316383106935885514698279458729732852308600011660624462587644801216128123229885389037248212591832931173037598588461527474549297122520620813618679774962354803336802812637028429154586760777132074695953427230901597622010818120298641523482059644319694017922978106006356137562460096478378941704972921898669636832529227839296537581926791750007146212349773262722378610786285532260881457443898260082343545387473667814634518107345163502952630405306114941481998203128471868993300412831267989291397051160249286854719656055652781713223302039739933838068742567986635499818095146020312125170794772010327932162251565825086433123178996938995372938317899690445260773301368746816412355304347171276475282921987825412507680019707640174882403607130104412136448897024383996836675726102429491938276000460108252210524741129882823216043116023604912878951693175724515306185144882977111215669630658906889687319231354543074052131820206504331584329422430308815539346454267325677317570637057339367005669438299599329658213703626738549313996061058107208109122633460320908341546629961131067470843543197401816554512406799059648250110546285811284265332626244950235149841319776510544576703607868451363347951613040715769436396590153847842372707010284716926563515782210210516620197173843982673717769051170927131472122190541848324227439012736165789862104786044827486004629162021599363086680906015044591882388853755617852469554598038693751709063216296211457813162911047035511948638139130421314467577531296568077016777995151760629300762355995320883113092420786576456349101596008120844222237773209233218722613267217909900750595162189894457733171537313445127280219883501509706482516143341684729936539656135837884131312328823880918891688692134172782324766307108018199458639283455955399385021929147803336559001694879015100164919910929701207984615249133394434011146768446692910868709941317871811281748528015156186651283464432672007843214099584449826820993824740732141623420300303644504082600113383392067176453231974123647066473401231332702888052815737595881969877622654620507569790688499976646346830041650932622393921404718523329815198367489208094135832759896936485806230433402518835281124142580446380063325917157450509921413272064013247219823868760897787166371774341932739990806006998629691462384799593948557654242802182418336642752179619357170733506086631942227276716979103428906773215631450139434309113109462520695879325010939134805743051326129906148266833585004999433713169435001327709719195024220343291048824074352499021887513897419296719875506213471659487733202457181675231747052147855624293263371605658226436375841154347690195540610655172912463200750619563716073599428544940159226477589046038417077967448251397904957415226025678981327218680929715616425126440438603233544303721721803601329242569874472953606107156608416960247905440994001358734230281942357472416458981885541889848154937129102631625206534845481783002290863686035773756891835393849924899934944984218317319992910633129227609661154422141125625621037245710629029511435345775522125476253963667762266434632515854979668900562778853425520172542273105858961196235138565621277864004384356567235488646208892529580192395964031981175589261625658325318867079714803399718913818363011995130582351042976343335143880207491094152892616629869315102192586848864496652637458644397972708083182944660648358808321965623188192944836571963043053897758313191645846484098208077537509038768365163176017640631547497209896599819509076762886177360181664964432661312015175924877114451091972808476757154811158705859400184522477412471578252311734227691826022029360580298400316579585204441294988334680856234270277674157376612680270668692940081722959782143659841230122032083774123970242069729093974918394376714586538379595583759568169029939654987222051780277400350662585059293472731606961786940628709066627835545544754162588630446026463014387714089418519445178379538146117592256146314506612974474735779037980122026528044791659995941440142781296502415196407916472566264681093459543654991662786200956906581120540123688091542165769940559955228576304735766407541596616537965825128371405183124409404391548088750591217948849560215118372835129782223984427133139577568518201481018691798905789046612308359031286659620642718550248865620325476076697968143080682617545785975719547702357550139707368267430332866466816423714612142758292166008101607703955636655547691626640081844247507977992717143524632246886648043912415104541609714351300793322555411363555864397605564766047871140922146333140779550294772535402469002940822762058404629824761684071216340902942860534612922269536860558888767071704716624266967958291311136362157181154099953015725663584162522826408951901490501211865677776868594052294093463588502235615502292291123089327999766232938290763231178925965669343326500611289633465867280994433625992517427166218864893307368447359036567945937418342379704492898854499170242334536308804362667642675389373511447747512040133988715104767007189118197026858550137868054528029641254604968743058560692532912367801100137114564560228458140319630804417948660260634098188973096582646953745744674234699276225379547448754135557774456242750776541312451105411571835788236654341058542672125643174297186452654600363131023778689613324639248632484460520059940078754290122074657461696156206725009485499137376772335622209404445423816184014179263642121713461966848318826031374892925787394222960575111215343413420249315715298461315258145113485848212357678999276095126080285561014131002998135380097438511071998099709115907307483886347838942520631082874853337945267848844102658625519125581237117767155995452102507637789079372996932112904219979824479945433319164846766325976280402840377286302309636116693768968541572802658121478452051401886300582846029204845449203090050727469473366513422728963137402662822836103082763494635770572930571498735317410887987003092054057337078611449770329574082387764030798347630341631374527895504945889475602318383191334976102601002114623972556209262594824813744909364873006904479170378462548454850809520395919494635331999032485409222373427952829511704083344186952566261877309791098215906162046113183089032377807283228901676871179101692479329651500065458958364789498998812967773230455486006641610927485156898246247397296126725608949403355199667344055226481605819804517411008063872801049157864523630808224435266033702943588783348868464234162170133894385504256019690615652050752312395900238208517781085309145933156933559237567751527495162639810013239625015676993199259990162308741286873624742538204884100222772123577007316946233580782522056906049368472734815678432450970373090141218362721458411493851796596684760577733672510564214781820962596396413633209471750842763863103739706053587429204635643856263749017492073567828559148335044268938169500815194487442758220311285548616982413827377644689106081531357020112736430897974237410126122988729156440097569195127487006766650428544643721866906389836883282625331544023095082671189782357976970226822718491604599543813901014520103467926042794855059770377132940371840590863224137720711476134679012902587533701965319485974752134133938228393262380956558347947968528542244306109408892132783629760990156800085032154665026361293921525297266638196329999853583525205162410648006294867369806143785269727004441466637618270375421038172039785446008446303714744168586527583114954993994793137472508700965087463130656409383608678239088960096187653988463222651967149328136164260186262878818977811769073854358388678482619615371487488544346897775486888821102121885408630776369783434649934157128336985806272146767209255217380120526404232080297904283850483572580421356787651325361014932507426478333882909729142778982151399244803039522790422776221933655672215516702173830065389279823810088855426607301183768579492155438005788780096487502908420437629399096639918828995985629442606510976502582325085463033208282906178744348861634867054632119728430952764012087270683864692528808610199584363905747185798297595129842229137383227922146392967736667341668786442439004792625237753735218718280159728484605394509042377115454074265212382021273278151587264491368846519048526594138513740834285719499710526211280143725138543415915400163667054169130489897324815454285263903498100195913688791605307692250419536261819464448451044978640091817067579467800470075611585738101190687002779934214668158001520651852345203363567924806840742391887299571339642425786102978712253184358151834722695424753534957747370669531211400495359193290557292765290387752005290950004828556023075345169051540047706726049987822535436274759754555645052343669528666724051091091825352595636588624914278740778349697942640370330776969660378179143965031603351788179389778144286456924033180391719643957090506154898984125860628492973402251900913605348996089731463303998304750133298786083791489736244878668157124836695550242795813699697273472565852776752322035942250634609458785460126914424992136688420089561870225746424965893727909166793185360372887238837985132649991461562656753965726666269581908057004896246512862613530513760701626972952982543159083332946381185102098721308104882020986279332028900848524003523078854926215544776504810741062213123018215796378933031168961205342936329929060741069455886416062043436145724000451408267773293656044614626720021470173502266864180880411694609866418476136013866995508439205760890456487659453840045940355031083960120661090671950724742084590549389815111444388080167812274469534819553968739609610520839402738688933876183956575941876383458088797885424405654526520468590584169912084116259142027786055132625067270817920741944938775624673427520220499570588900292574995915795158841336752356925248785954722352352610029584101978502713419240788538064566465482145986504949144240938147924118752207430219308650701917193792168711461389705371021050132352329898085832191631466426830957610045120331706203823415328154622245191145912349076687035231313925562478122712395642419210524645435443830768748505113523149573033479689562837738593154467972011999297684430658619055527292717471817256814686059832315668544094737342080919191443866998285995241315920897190778429578630995978244617940782151346786431703668336082507025333495623252374279824663496413152536356350309946804863554173372345680720728404317001740182076242914745696779389905237709042801026621150792869874341661156342822338341450402175348505563116121521070683999910014417949795128480777622294236994781865447234555893829120591928740716143297769709833107721828495619247338930593879474219762121348387583964045994248155148494641915191536224556081743888764139311792518234875792169772366341977090667282599024088546727838913953882348077102194394042135525197556211706096706920547556032949736281201630761133687003601538634571100988326647062025857129686002832884749029617567651273388375669910290114803278668401744947649784556566643660031469364003200682757604034440404598715916870436530570315876690960097129532254263960998401198511534536929008760747430563803416216244304934009488005455436558770627924505257503876986739228674294391534555904013197642214225117848572935660272296385443037713576180818726233468613072605974656169709664350553596287565517249229089540192849504594243172934079109709336484206331955103535325399362828030174492869659995616875397932217921737846660527233728839130203921391939861914066302867680368843309401195184245520765854047027024589429785302236562580046822072133044505905052745239562992557046065798182053693593594741042629136067925520905679580404854197706547518990549760836201642185612755953295634768933590501883250637223899614907091035545525724173474740709552085497470990145389959564480492672382399227089810271674221878760919763706925590304140798205453516468466517550410550362184410354644812794212063827814086826123048188009331476775604660329692424756831536923382860393405135041483684057608251374844039825427141868343899081200180722908284104395495073768123941870375184759922276584621745333762943152593028386112206723178392631193555148876673870500828577666387997360766083549673305488328976781990141098714287129195667112065669671149393541359573670188712275138669474941598414897994066414618329269401623511851541835435549616712566507442152900639755013106776015323739713824688305850215638349791536251741164615831865616693782435650491461671949108038720817091905979769565597643269902210222806854498884857879241778397080048843776884543198418194876343019321609605066351757787737593940014803864933596242660377552587058481692044302244834657140937920270950859794225913964951195585495450065775701842844853471546261304800614799974845425431325926847082112901599646230182348022717422243309344656663788381567023047441511337108632858602827604237837879969138464577933627246525885785760936356982393753421240244909724348132181924901011779932187969308893977018901225662352520569008361865740976265876789018183224520788755926470458571611439179939787586731084077041575797316357003010177304178494714379920114013804682567276795083496108079195187831326563492429116236470245270807984264673685276912620013305435724383207072805558773490678972104874150522478447343917443981593570838912940126569418131542285304787921656530887433050661836499091200582604259199182109586238836270517502438513128615733151087311567786639017655684607984286130597609412364053523108419088737728691141388012838058240552176234988622564495037157095314043322597099818324434424946149629380610027686135459201727830460250042975156041817843200691403708907582908328507569070874782251637410634838782851209195476428867406326865198316533306012198297088842960895576638436188846028435371642872987914875616960316877310583836865711495716225317925010953070078273284172787244356909198539558675722366008026200533798134414712650677575103579481309435262053725092179300652481745046258450454112241101801215743673140042629051082231231399001179979795191761348962334151416752827717181866409449417461554930593969593902332540152193275520235766911320238921194423387326101183962750899728744768992122903383335165271456541728382216524826869697810929764760943967289695903402778511442669411199003116580282276481484180490826665038429779788298934009775756853752647809652883325473691199238873093447164245693898522456984266903336692161788265609888434455027922641001278075985535970263924555175161153157445164187245180262353471362455852070435875874396176136745372476371317082825598797785953482114222276194014497931080297398647586860710918288129902652282377856266085823071750525436437430349225334113762345600656135759357954359194013312070311970739401738020526581058162224322880867074937708443616279391874734642440531853849177871631045497123842473179435836152578497923689509227226255458317288796347594101873127378387257083915702640956193941123808187239212036178190751728816156465740581346263895470125147136091688267770175390011856438644677821554886925127765689949104675057667381058214895774662533814453557748803305138150490519401827632119006273968441660552065022100026343500271075367532294163884705633865627275586908848351009027730586046629643695407433568242213927726782994718902030343149088041078121919749779132380487551051088212203212314015005990269179567445843199893930456035503174668588880176868975033588091666331362800482009448151462890487632308896235007860672626459787747835035997673151014572309030068511098555090556436245744118497026981605947712775682248836970717517144761887477132176838684708291568777803172743953978216953846814297757484728067411418968645011004566587184949671370375207831994101581994179562341784666908808826890843829434031348621517766168599400914877093861317593387380850382997661166338435673442863490926615704732104953345813094639592114535701711344952158130742167200593066883784591862419157056190791348864529828844548206824353515648853558422127458903531634617748914085706622479965916313623542363555309343201556822577071100566481683943803025512275643896385313198659964877522767522858511655199530057195241747174536637199652014459813043505353638551247011787265001039741754251688801862459901478281598765514151547407738324752350193987816376045456360643500158571932838506242911364200190305674608275536638859245046112477590920750163019512227281194817120370604858907481366092631360896360121652010824573036276184476398072550766638281060085402181343220945700196586877381970547848491265488498798982221543314667269845785355324781037623893582805971984329320659799143586868483360318562988519837176751549816741650454337662907841748651473845739538588354809968120433883003429868665551518301775753127881728628536430768227629101600268077101463354283540414619399583427740097358547358718869041219788557576542796236255701269109429807159470300815571974790044950159834291005166423672147496262632255821203698280113197743696329567898467582190179957409088755159631880936327312668549481539764536793661638504036863936442694189324036911501938654103280175882399586014689238957057322001574697646235584531662462976105646020603331837221076803552766421191825887651929474515329761706450368704043234036639918647527159908154616556424296625938077137604790504459351973568612714717484949655030496016058665361195271173010187893281857157406767809759299099657150064744744987731696572790085879347823037244871462703323836919599145616324996450616184200046219712799328341192886093497993875229221386161319710252719558127797069453287910027955262825936078683413786311689406640284680261139001239368942659262878414315434739049815450671525522235640162344145701587739707997037898627986521600787748606625021964755841313424361154637653734225380937108844418110717117624385807373255036021645086395723383047284278384567181006004898154269675946475672826983332080672872936193626338039027142908683206653327610743592205899944450371721814877459053198521569728087764906085610014007168239577853497612715438567740136307635486648566056682624088044176044816596801995227620084792277761252031387189400834945524812570032784413932916844742032660077238078512431697850424610633492708090136916671058615083984434172413487863563520339252323262697522243463771501372757006995212629229649108231680456934493148032638130538825912165712561444358393632495352469804803439689535685667582163095060926436668995420590480913709315600214536334811338548653158048991732623463355053167129969660993878494232615702861167170836818320176629005638940700113655190930677241565539851169370369168853490536606773054433883010519640997490265564274680370641596336032890604312531407092789366837401640315727236602747267092635421780721964946551361168321386966081737826127401528023507178814049906339381537871731244855581459011749161908440619925198799933757554986526135797718678663557983084964583278375186616011778261472700668946642255107717621324965833568453949820415920145825650002889635125439353013183425855874695127752812995579450370380865594720786735908163839540568433997535032215984892452744612741569454075804325293106313609541232846668658505836642166809410214863787904606211980515110845076551170500619041153719013434097066929070395018006012504249950018529883886050648568777547786810683580679514863766815434593344061420462202012693143338164420025615922633331609197840177999942956197766582672455881196414418583082128471604160618997997621778652551168545299175173250460576768895263471535874812378198211925143996005922338100310437996051558558432288072970905119028963126354669961684311027401834835087625339056881869538582881082084152889021819675204100992234044260883141407838935648923238066619488712658277409132552682875977252709632052491351433032667876225891389192161465526613958247177527259126535085092812152414420203744271420074365821004217140583990966859682560951661401183799576129012859334396434256578048847641037325247017163105569427438793010933327235495028041686418010504378068278958397469468048119018167819392716271967281335952562498456992224174623096040616790936845167736547020031926594449569776228087817599155763867414208540695437110384696024235134285210354581912032071968486234632526010120980671027104588289417924310676306249159164098789372408258459437547383682441116760202417343069052755866287632426904338396992831837216959950551836938565393411254468026205841299020206393067262902356327263667784419733142309566047905879403305928224409377765762342862509438115879090447623028221908496650597152442128847674954397401313185077732276218873476219989790745328727763595320060533670537298964578496830653391243498942775268983264494236720965137237907540253737218169628983696657575377347760342638230211836591815617435515589055198107808254435297787561898737321459169667568374880582696086912942541551224327668555401616609865210480804703401561907146546606416468977247223411012844309980321486219038411179975440796143420282883375250798253548281335847040127950212407860117168190637726578577915875787088769505473836234005683544843690771512024802994584037821228982081295526432645776362586244271360811957739628060835159340670047983400091953496241129315234962135315285594126905424396387339155593645959468906902586816532714466440848719463501322023823249266163025712246004149029927387330789576726595174435392736437990455597742227380023073699446313743882557277849456168450351543321851465736563886059618871148559253454502592821164676987305576320156353409569718340673645127687655271441795705732492411243785288510724471949041347701112385859463613002511628350110352681012592972120583402314874331842927398024179247202115376932579503036056797964465402496478800369010065950137814276650357075378204206257607394607067213973256779764040904299584661720824197753930725305406609232401964446744619586493396729064841689111584586720770391479129864586910014887215801290167289004461799101156382717043432891761972215676992359512444543520945478219516728764931566372491752071015096056147298517846745854783980607790809462023386253767421418636893310791484471156597232465121810115191031534192144022807029773890045863361002974962260084808224094403662869094006920397678639942241388549709185786479021259712624241417986983860246587113790331736334228679295982560391128313750980294536023120658298041407897554708536260653282410082519933134925819109989341811621054311476681711965611998219000923345644692543252479841887487149908139105428626874006046940447140298277307257233001864336753106853150212273888248788838086794570863901117558612667759996958047456365247687654811177976644810906305600859894816492563166267148054607009735607232714902689559220767590989485477151255005884687044449120938265047023257984107022171914058372826617827150555144991673732755930199029042320602002221168369261821976452744435546644135628839869795986658481796822413989595597108256983305611018965412032253927328232420401077579642768771145492561483518418826937919733730380312295781176379016944006574794601294104773697736641082200509737684326572075423660776282427311252541701311081993116984685823234254041564768123308003420063131381730117921489634599535337676198795926957421155686075082699958874388548518095210590760889968512225459215620301860035298025270562939662026104480280446987908309926421322031653457179713221691750949565847555841158078723443899384467179153110721078183494092404015416446869474085262372010135642740798833607798605914249763860820674913436060480127075812016539962565762195841108300067301386628742705508541405933807281983144234916973589931633210094584684388137905177252135360310406734094811607762484827788672864391190332801734723382833866804347673616871462020071705377152020468716563383131365927936590477504776133315671060561261647088302571810572784799383270189102519687683325862959126564157429430618880850598217579283571674901050294241329720896171971691758896079362239567425827186335277769540447667401545575196027351369997092597337398899220497026849532191788235785057424571970660458426530200857730083206754094063533166952818404331812865392695165073725503632086585751808048060398876523411467315874218867754325590744368328907751231372107505320199392236092267536839115675421871867230206115144441361267086961082064907057318562209111763509489219696282981179111915054222313384260032656934373001490963373153981966290531399592468216706367419325595939070436886360276549232259013966031967952675849504477620925276978589751576821059389145963464251245941558433135266968793323357663439435015914180881599877736678266097300729327620885307186383007469593087756460851836934980641378585635350174523579960681185906493395661661938915271392268641453351372184737246696158493082973172356664790681506450162098244495617409779256300204964016388434461311647902734540522715193885271978156284251579602214237091069824372640778818202991873800588615276579426808892821022643592644071229172763590700441364372416725331058440124937399387061066537414613414840903373437439437485774326434072293466699204957769215184876919832932249030506504405333550837344307232395802784933687731221750720224850006145041864916104121977965464747209297272854091882930717378742568917321865045644424483440479198770216911793080430459687060649151721366394875755220249890454783625727772698499011371047584690477694171579693582368398116730107232622927067508136851228188812391641297941523512713471599211210559541010116226370950530797940817510051080331400524484871806800798966275871132195965730446464673228768430124598405872480334763136207700639744610666574956831509831209821150680317786587955709959037823970065776671672666234580413834097920513268483301117991727231651795052621746962856658399304813967215753548449974008366820734646682940160275926795245843910815298798876746326104988644459092710837390775011868278185432348959082989224985253390950363454000163702698096124563527991479963468198779803695685491233885328432332623143231783386605029430925842620529736725253962913404104625246764660729759865338161836249385664955425944861582413673370567997717560272355059154343754423454300999203155555912804688418967091472042774692897529831132802677008008274481660055702874493588790886512966530105280522718589685754492497844682703707611276203845302352739970468987114480008019458293009474653746128263899760202180051544190257731468109184241783285104706864713256407343447299350814756221331042486987971746169544727983304490134819084708086090114145628189702052402713435690226555424921084117804706567424712661768340698583273101169400752612695510373100259757574662278582700747132419271213584007095947584111437509708721729207774799136808291959322441662202794119612042840445570097568637883025501525895960778491022334779137319248461664485502671112775265410460194583963743859292500670621146756933620365610197696235055181669156474637351806352304195521422829572776172484665564837166960697734535044623876257654620445214504045540768123708640716941893325850593271776762543754948344776864115929789394462109075415276623105561911615725738728109649557243258334596619568973872135927703995631323711522796514683982288246791568272050582654688864403257875852882408024289867565772713628341938137538766337622496104144079422436573697756898546388483018784892628139198137159797314907233020144780695502049029125673655392325496214215136960486568299754401560541970583120624692866996579206558230353768176057232361047851958834211064364587476328544159383925446930325566016394227390535120354814655405620306127483733909039852776323564886679189164114009056126721114377545794329184897423744211630027647143943370430726091311052303954573532775918271824506849713103895409483542393150671466558572509246619402279157170173402843427054017772816290500399525286612963379352791114803443124966929874960791464230790987565521044442310811441400594707652145832937138578056171778862313050771806976069585357909596935804219927387633032691912390087377018662698419457536531141701797008676370955998239419626481182464798476694340118056747094638019414245877662188568939990447647060138862320405440309312685779768026583082416401074327096079312094166920916839382835486349279140559796874658595522847743522179838410687543267009910590593607461091822979186125592719884305537722423685610913720440273229175258842913092744992033553441389880715681475815133821218481848308565129644290072686160261299988700818066784283384281086217531740701802489297603307169424450208233559915549659136916282936479010347688452451460260271659671281763382066933793655369306969071526367494163404687250725502373741158323601123163752784176956702824461941562888833381627507860408007924782214011202481223788598575412990011101862075728944122693298972664187133011987239452340769267252991653417046175229647350634345249663941601332421657210380251342767648674927322805335400011969036612982897522200408850382619540364687500232642175126119151693850189460874811572824435140521101400738192316409566413014918509796868249309968412513521035695911584288601841676863880156181711261953065142497088281386575688680805099860190189045539390839397456837628334657452768000881248268776043138591742392910824282395200683388275113191713759780880029291980369396399688892328643057667582718998139352570248272670915382960173930416604292121820518607588578323247999564791727244839235005828126004746558541149709180096346041767748279579639802960414538233063482435155748268522662658527673985720702212536370264225873473160820675344843380473022943479974201438861233502718084236674826366824302508046013906689338722139377276083589395673704503069776674760559864296615964740122949883647524381800123479492534341810272926485893298603989259501022682339667968859797758839621968285896168388277446303056220504198782585447662816393200734884080839911185308887963179589788414836685102916121717700543757366910388019443234521060088301382563428278029072882778655369166168710688357363734277245292883672901419081291765690799477168026876905904238766296962095707530484146440585263780469951753964310970788297362960097944251597146711465713381799109884035231518544889647841850077116848715701238659148746501600748620293421022707617576006678461748778092660192101124264032659027857144318146847750458245170863307507666275905883682277370304026352456712866320411142174177222797406606405903321730035926525691428660647844305205009746272797264548035248071708343563214406551905558771671633634527996734844432639305434724804607584677412842052578179963550994040440488110896094443127948657609112596182872312767749612464545229808804456616676024370107934012698707357548432759593141119607194648432752116186800644183350015001890941970550522930027833858359269609919140986893507343162487671724195170422142417768821521859118010833837510273442783648595398076356210243871411279553847568086446127887000006876100596313576615513059873240128624949153588872760693254968341123639774131178468577759353603083631144148561068791334378812534101259897721899286992286117487902119461311101397406542442634488854624554575102577343523259573883766241365754719135090501709138940772654427565275082465769863645356575692844848999952300613068682130639113931452650851263623846945715182172334317785237339042460862897769639926967308214283023620200402701063951046737142636301835254532819928780475948029493872080082314532592031230776042736592259248112223505230576992352713360789891464541564141901806798304034379366406469234419594973978027703442841765529502198886429270060524553613330314507420012869305097976586537173858141841312992136163799125361071102198898464520349441522988867744519231385065942176836589518590174926099672014296563450901301927293385053882442726122429164875717909418319415541104005682336655776848630226475704766709762851541823991203167429266387962240599541555466989730731550391497543025337424675644502289785892211115781526643969277523803920874185924465184221014600848881352901957692520385836669864055033991448906809829917403042825283169787830549747666300948283854561795543654184142239176717596249143312675216587456705667694693721432490372121474153291754718104431385315451373963530864873586473828691201771592739954504184065902462983585728659309402779704471010386193395682843304434010871601474921632717761651706177811307154255794955783074097414788678640581550054092942878455936003007920513394374368544528297126733693392921258023301877444493975184773166153959372998004206697826880830399137969901904768432136239226552718038480090138929016254118361953006335754364251068139198109061795364591668047405058573436149756442300913970048559710016869366554028551686796867211569555081244965566170088597099805651346497634799170746023857039123277803225933423295086038410935666256297426943770663264777220742697374619162134131161232416592376655125963433635403560294698023300799500632078078631063325919606777334005507523485846932573759891258678565815639660653280673452301763290907812996529669948414074390898880598464429355850586957202546627213273585186318318174926978851358406127178124259355920287779252216890780107458150056533459536815925815696483872227455481189333064931421557607564374680882475430842610793637424530475133941007206597602483990402134771101714326254333522980025476078856850115687144369541624776355535100724137477074694761540557248743502422806674041675602895697691513025600759459676689693596519099748022658411329124442753189833117210514538850945925271532559918065193613108117555043667639081393072917775854014578010246828053381465139441753434339566032104572033687293810829295238602779942829169661297833011589061884494531414066965645036249307714702512797870326244864910162463820060912714974494607514431949108610351537329011078642450391175486835341299942935152181058378528123545331621753551782188316335720943073380043854744833541518172159813440359982893765944395107620320361637843502117432169150725235276636986606840506346199870278343784202944890334794375428930262875942658965996704331403345047462395827984919506182725097189517397811603918503325622431727631009200261611095846742740436625754445873344933303618813625027905285632436577545471861640650076231080123388642173160338681725093130177057624133952267527529067953462339706695920788154062695706488132840758292841952830720836377716118382068837470874430570590904750568652968465482309162439452749155243117801149030715623468866184391890284115982032239764150791831213644645344852297971094442245223264830211707028989994717514587839430151227061735085906711181973444860136226926570964090087512155791876294701940923062688521680189801871931021222740005896227327556023349162266852483097418780460110474038709846050636111843454914644825399252397450418844834560768666039203981714237391934730272731333041554623373843630380992363682052549501784240342476560367270763731479657223265085598438643499436405385696829296677084491290720814570800170860943994859779103593011289968597987748475282174520705197307194024243667293485657757999650271293777410149366459267077391279727314467871840849451952899262401863893344196541398709499195777638501623109177502886728685369910613135390426194490164596549488303764181453016370478225980608959272853994181706712196875459510176727784702781667591746439856881912236350131611822964565931542175716876048520791383796484014549799867537658345479861481108455774417060065815441715886407803675912651533077451319156278169142716095970638902447003546852312997125807560741271021566205909517230652833053049283089507689758863304603338345323072474427971549923443594253326369047699313421853112488711230173937859978076146748128460311832197165010274701918180813738207716313458869465849065758133795187696292301047456232199199678674402406851103218583033914392107883265854019154249828379782529477103077133234280259703926537801803429450405784077764766298851330926157197863420980184644895819396686739669369172737575630573514879913673029229146093037706093499182298442988341940874285830068931861810750367673158094254960040676781754014053637986038180709182101867250183229938137090055620173210350904578418767941873490600313340600984714435533216760160845697357149797056490504356971617054391320232520088094884256097631128541994484524467149884564602224329689660458055428853089068032836526164463011722645730008292522895723092474232034624595030637980975053994066440883161131561734704794066209718011422255537867551327697339561609391802850148350819560399125578622603987769858923993731846341210358859109787333463196844895125277347272950547966877548351231521406930132769435119574308508577130969943410931664444129037695637745633538451058349160725905463570752366539206147226180328174247623743365290863585364575776521686760855864649103138991692733341421146624533095579812928380428142300340204624939805546204028839680740097652269551602899325766886521281598160386977797041267741050098128633166793905317382149756974349165605334811460280815951129198972493834977913327734042973179243128739617170071591403638534385381715414038327743275962245745236408778090674454162432149487289427863449282433181500869114330698165744455011309302518256156462421546470156762146539829587926378328408520813925645487925194085812087082136286061782426771218575525070536408078712407435501752919080390953672586232207190352290684908236970598986162669383831548940760721687035046642095237204206086586178311982685904500446919431958916624865598767809344853864411057382377873060848988231533435987738689427163851465197560704601030028309562968907578501013484118999604368682209441950500929844038921901745369483078065025780342258777452598756950666636254561177231181527938582405554183596948853638721930141259235580940629611447668079982615712249225743557045341985811472583927838299571196239971045502864258667001299884934465225735618617940490381142701211902588548173462162020082825165966336214479379209371912076348806958683139006285863878071076924175109392133807865424110518152973710459337627156857087229068315129215738581255695902832138864878516287076558285793423749776481754107504777352141975768594954637486953066815932085968340118708892380496304205331455570186484156179365417725320468916978497906177734137753119766871551474326562798363869229083520508578425580427130485721428321529513109017193296404239220771998015633117185759713876799688355809747985566246321045291956820814617674651120444225812666160854228678266395093188557769962089376699549996155196342230520827731484405469828307676748137043895542536388864311935764079285749478970399153501462825875025181962013439006872296121921902483984405371690821749733731210138650215434440318184575143810517098528705819795736721042524907509377151722352819768533168181228445839529432101222565478982683986920838492260704505663365088105899797227130111361478684917996106502880343110392199310304537368754057430863949204256256770506216406175634859258825456472799260809455754264022961143707817942954172955615557242580758174227962663433645242833426652916432905225928273923570455285154509050161071957800401350622848976812465811648686417654764859709908568018732821371539609148759572678354092285135572746105747283591640059563792194804215581241304791348076092760404059997638466071992042823298663264506275241164533648843397683867937462154844360061542123237031658055998631168083502600280572869101529312306309046650701664605442291155087564059923880734157149830412514547622227284209009861015983652610130623960311971804698916309103621594261703786994148712800568920727796798563839204013619670511702703878033734488403038107874328750437826628167540647686742529235537583243320303121613477935190801786282984679491118751968929830823825541930995779878516693146197812181309442475193878228189704659138520634211924715354847182084831271273817706851077648580485501881823896222633580856991291651191493455238247705346011885419621337064896946344602408959126492321173147026219433273443004386480180327766862892223153910832164198473499014118065674769905426917983950875638151667336515498901095923392492088661165753544348976935561628593815902965559234030425567185067007031887129663008760578018866155114332349763711066344680723509385657977415292716107538584952760594043401447860566965505886227217363152240573796898446894221198402084639348656083430745815355276870893191426925197647198598923620305595340604153529543372746889637362962579265852062157895400657954129613421725721768044969562459192036691179714781550925028209071812126374360649740443817239006568997325029245787376011657783226936428402001931996770591840408482835370163453265801342949634694119519605323652058193958826932990269097213851137841241794041772461058955054110280897032117981347175803189122543081979154553051833551193439411781389526812087078014015378955692769907008307153711971322794343175183637043340542101332818700722429365064900729092219510523664206316729395927577014303015962807272864657112804746200221011713101480600972694397466468155923945809259986207711130243973993007996738914890227132590466926357368070565828501772553797912842984506139871521781399480058982572920193908655916351386494815977775889462724310339723341948303778629731012595277256630732606512449531926489016034580855222566451874823413438765980855936736514268032441071471985255152724826907773114821314936550292400820558172659722108162386815632648849578696804667351789345915604897069476940959522799207758572091556242968592534697388421368243935146083343090713214640678706447646937279842260873647280492676405876686518149214325642420050088128114659621403422309132614698861507050481291446591363900096217982708185930333377936340098846865874521340066879277901421718392592342708711450006503361563959678446677069909465293685858139708371057983979844775449367064595524862486815411589071950585002678631235729693124027679882007679277351032114170499140187293243777231258163457904312843919960809844694026517712661484998818380885552647154549523091695623713768007731708834415710325719197144744590685580317897405897364053889242505256702019307000084457565355847646990603780803064488640784899418611469178071033414398540049226001957285586011414051858007458582667854977922123223787812736472259301892511759809457220330246195055744960164114011857252414329969322414016987293021150555582261401805028940213719943841312068318264208803048983655944146240397817366154509032324758014452471762555703458054346560699373030699276492153030458031402438050804313878274696070067178187879886991085140317655340796902059555535536212574930585578517061266586915549129815665346603645449011946220685724457099866731128451037284766425685245228704626484054592737692416307017725970574897424472235877215358744379593094124061207359373932206533427561386324555662308566120805868552471977181692304523519318683867670952704264155102946265909313839549854639079924887766351232654570534977513329182820373933003034489483576197762220751525147402448707818006228015321871358455144055243761315109542697184833248410945581260102664455803957327110168741385425523046796233780092248671680796811126503995502735604379859512718748060059159506839229922844417975149832564270007209964630868352279313706851804895010188282098885709291725043341786492788700403511779921555254279172890736188033706625899087357733069089156154394195308694245505178787106589914168881509517834199824635307761941594596297419293681584813947338804553196595993069748151308195772047150692537694788113702998094731209102656132781577238498672835643183751045610503894298014277002653789363708708040348889557931292691091764309977938231730033190998692963951719818901715777812426320341197882776009410539565045826593887127679188341512308651268188444914992084181985249249464852443336484102723726767405474787528111402333952100253490913205625447418591116918327287995420615758945916947984870366107007178107259001515188730931926548243525952999474369600067967935119645617429151530308465870762147177324416084483264801829418562127680215350932406219376087452920470092563114764972819216517669510317463188928490190612520650078443415672572682533623441401791763282965268981087615656082160997291780521320697141605467727015685930930718334519086564905486742048757345876961767542606127630769043483344006622513220541320052719458908996005205861073276301867780769022960115575449627473792085904070764768507399714270640738881147860584528021639269114330642866276130033774584367068381971701895346849274616659761471799548849533932718924337895929850447550999210973879158356840396075743973186095210820721197689555181941533284687731457980513605073507017944105167924656298227720654275188567629136348316754465084920795071477079029591630183458217077229860559678306632117200803320816922744771748054662474671217053626593006792621668507849520775185758894722441110040806129246645742601914120159571986907180795640876606684239105144102036453394177943123149423084170339951353630741043096246914556476679988034515718976062511339707602556111136710020237881697266030104314765746212663567353364148897393475510265732776465103979515216361083175316189439132758349944321015890737163481851377950728188009597695295025928969589725155729362775504304925525035754030249217247928031653990805642905062920183342704006339235027692796369563612050506041424090664346897295941391350088955746333772918254496082971547720670311409002988872508815348041851722596639562578259542894725319826933238057131152524840149249430881934332957442592441746474752870160320569226749226379284135217966938823107354056509329970507714919838614462147202139239921796674270509739903369415687722417308046343950196108425541168930199406322933996874635966826500250175617617799345707112919261015767627969351365474458221866405473514522297799562096230496697391619006153889385526166257215673244790175888904975137098019314546565913259791886739398657698729580115588735022338442849978277402330308057392710928256998989239024553082173549677928871453490112821505501174157216046626144090353215175576897057825230225389368117444722823734583714549226921349835183538546609470665436632273352922844458697127232914295576968368973482826465152960747196612210482092849917591411449576883495550624014166489792956054145462874276198860094293526604037351050508070634251005119944490000401542565075714408982731747672819513124755273015714948211673517586881611405914472746618866082601135324528751913778563962783249518537009986026354878579623695436500630935102604625970995074781335162569294380882703357054241968088592638023299592056220231156436813313869967606742711645218494052769736312587281937998669862662930213594391578122506450680193160081848948406119078890931704710008529807770065792168114100497140657219902295743835495628663400161652735228173387242201096483824564394277909237722432548222870305468844295256766368361975420405359245244847031506681693310594186691769772249971151205856347857612068737924099171427896196871281737367761098555823960171030448610946478494721751226720146885496587548167431810185491230076942547805164058439079655935073834415930620060477651649118526345357308368359125354525092487114377377667227366173092758871315405000586921516915564966562109162034578440257193355799058109350869681145746014583748754252948936585272552854470540000148462102128963640825567826707956242320889085780466260837178023653930124458602854156972460477566989193164238472426183328143459617658197958304283315828905515858904112075706404109930364692863029148409073511840907904430330964486260404553688635140261856158657150059716361666500821349226950932241916453673441187390467875967254265482687637348126576070206747444831000793137966680187808632604650308636512244512643293673779469499878030644238071670283832969207064613120055965290976767093291012096255163954135448324757343799286648846983120758660713054591965754273174843501782887941659216409624017573489838509349331608900904531511809588371508392334832770045496184699145265299189581022156496516747338429621250673264985237736513443410474973214245785638458590872834273810494194553632318589923716180349113323229834463470110242309642984891344212996386873374378613304245264118280156987537027527763208089619095528276915809222324308125812981157088497330935286622021473677893573898935921151150946395225517079863492504070233742205356023920938823681605523751575261780572531304803133228289224196913713815916487309862426335556461794220037103394347585408919599628966306286626355343256847282226617609961403504145417473060882442668806234515729248843759334106535464382501560298800872144316304127453985725670368245951407638331275728056620430306676506941958438298579570756050969471021803953993653100643513583911444621198402500945331974958843511257068127463246575798981832982314292574028073384710096495653911939059165306054833186236837224772937688048907638508539414202500660340857344237158189226621702330776680971517814260577246575348226872225322896144084208228133208741126973777000963826321931309435194287564832597758010687591478182411861882690164831927814797845040701514274597638690171665002300602801010150147427483995822455053883428734458972413965525736475761881840464954654079509924502449063499195022583496764758837999235839814842754507822682142489208562913459702117230938315394688441524967440057922051456755769141748454921960785637918204907665062311903146426291617060094560513759416102832502547495328855602223292625775613595704867021878623295038278819572604296368302103663338497382446546461858519116089449335356960425915959152940910373674670043079106056580336216260485457910582974170456393051383667032629055873774603770464577946270460359524283535889613598081031788278880692089461135897109271142171703040809787982231365326390498778785563090237640003991182435756489627139014509147892668395845760117931865868524887941745414902711973246561875737656058395873548237441710684833132308428391133653899428312013106860012346375200823742759945933365095649906341717773945810833898521809265074651922837602023311519970048995701982808870769484982126729592844028852168812378033352675124225352590817414338249430472567231500717436761359009824030348895819006525146119599454324969688594325872126041529376536951269341269995227014978980157520560892825369982622402552712565023820720412815578722770720627403886079055869461204783618584297422810675298623321671426188475271329642570797474452390896556649605552152888704733510680278794109329202189692864846124440375681976196828171985226720924540954756813581318160822922047136745677869876922813895602618813241900160943183862078785676445063939859973198386598333173071346559161846425886560107122962771094877934279487754682970268086657831990882087163175794878814745323324716903658745363116710199100389320314266814051076976922194905211903409007219597334470904248799268628427296880328250764216813492479884104117778245340558848121284503057577849028613608333059564214924489525937493288002778266445225030081228650532364592651597487812270723673880859072365667012726160915816705775886281404889756702160161191575588659003286853984623130769403169921505173377264680375199114421184513154896765945702908891573682441963739980833451062194228462025476570065252355205534516162250751437792315832085363786499227851794265852486495686413937182605189718735352656566493410187125690042821616263875125169191996640975179929116076476213880423950571091032982743332270636228181619874115946804064576401791746502435381527291880617857479121452149297317419608314350068524742430897539350985395901563113044099529699552219099357941393992508535423842246446068053760966197262629574499757205874203229601850187249861259393486747666688047378779746232895388019269972701111411633466748371192533634174937801359850509982539418404413967000202506168846710239384813714326668226876868931595434934698369845257090290203705717480610647271416403796849661082518089147793945119080833693699212551842227098211421315837554319222277707299460354241302621447079666744842041779761637920076379141302830047138321346821713941985322961938463619723851309849734458294489191779524219844325622168692837281466559848017586628882892907407597391044863888116016723825557114422928426718979961361028217738555272631309658642330012345160606636042377294536160844173724657102398889667239705361345725884259560147926066965830644550336375699687578371181314385006101882245052506342080735204528254505743732816613298594247713109103313392967277917166018672496071075933844462837011893346885323412450095823760568550736702484984896573470299043465103936446449530304409389723448736326843476861650958124628368073640922619161392392795552570436980607599877242256975223985448202605779940306218386966689449569307834651524000018457774274511610832936992562292230868922791972581067379678966473688233739803511963368283192274207643395746288138461102688149395130169934873730283059148657149205683009147207710654357176185090468324223872528315128149075847445594484679639627241601062381868655653227162023013374422629190847948288296344168063106439067817064472498781278556921678049570681771232140701153769670270373514196721985440608421772047259397958385025556167732663799384830380511143535180173352705505644516815545336339693204082765283842361953972023497367251326074192983237126069451650010803433635879796394926588119749211464190429108594045467852185282272275329897759519859799856084629047229606222610869805073630993990538342563281657849885433973584970936655826819237528543472254052592882096616527682359909610668165117083769867776180622870321826069108941973952586453834896192039154033712224632959528816541194495255248808194226032631579434574797415017889411643461196997773762094618896251060540608902769061351173527734715484329010432958004476747159888691857485097267550340555561635709737473238328157070618366815645106099159128592154721504235759781364682229324808105612226115405404295556306323749180861500541073057761849759567718416946996431553241975133275608256918714951523068999210035492543136067620099371870031130605023098551900403360267360402016981092784054633480991878008893977344802565180244818214874483051055385956367021549660740616451342692951958620307772048638981699782533270994696968139884289792619228991489176797127257149318700095351727539046236781491337918374344057193702702089414757417937125730580918452189667362981928108991494469194001887170156844339018755233411958954222447665104045123615388862889228250641850315909068984563723413193716601836989511868254710124125659513919594267567539871569292470278875103353062616719272686068222416260336388849338300300155166948597155833515297742052042405231094382675611041320302708258043170058920663467704234648405822799430574972226097734461863494001039757876765624290725562221819292638137590871000054240424527209143174396785699527774401662660803032435292453549573888871309915695560403486660431093695063324390937879017205657808037377432269252017161614565116952855330668003700329077487303397356889897282092797028239076544663197497666397738767740323140603046727179300770077888904782029127181001004678588836915654701760729011577625691561399195755017644799664325639212676151949578098862626522305785581032955716264531251841750829812631236723380535575185924037576126747505041055364543093634737072018541244807647036331060787238879988207326365607430396816413345920184813573371840530191109225450464301217622308583425282993606170302460727456210788789093685398201251167899342740553446617180046983661949033106973318281273014474078487630137038961751602584765069229613760474415362509842016571787104717653252845785232322038038988124359217742060684376357225559029227044192602106342564430552500877308717549012852766805754852448955018868189261571123470785552863337465864807573466190355257278289584659628970563612117010167146457175260124340022872225723734088910601265266751795109985260485707821394447566615275669468795008318482399320618270813551612569854242342055867411814295898497187497549646584863867209637143103237317089371096119790541100698287873449599316629332518589689148735014407987342414282117060852029095044212428506260985960525503339950424512645069705417317782859388257706978233128257772556476265785112272075928636677275983823366673472635492163723964519514799739504189872334370491795982527293684803766948337142286911088441870300444242608901629933739445974721150398754218405141031328066563534528551131094117597158452374545079285815442159033997133232010221203784238632370559956211691595330644299190847967527733953699805203042359492902938521281067531825951801942002095044344201862939076810605725264772972181703510076759848220871332854479479403115955428351226343107706373662127239470632575640499381305920312982774118963833960992881444046399872936107304515084754961350787447990854399247849249560674761907428302294232863676033335164176239354828946636265427374703028652477886002682404315491500572100641395689161184946927624017611313436989833014073940482783613182820266308225109218933533482048298108697159517278581149931425319379907821792438268807350124905099531515783300924498274780750726144769973494147434488469873136432335845020757346269637113969604051254912261675107728075833752175360054660187095106028418656034018164017246590082819764842468948854184334630156415103205022696868054997101042749166693089802174742294430915968612125563353530987162214523589034061395609784870740700252606499548503946338338080495503423679044542317062549890146019598641441544442791564786902925685787046437076558398386510457525459073955832301388420509449224934713905478800687709272364764476796433263620603824480550766493838047950589218506562613376110886692075747813079943257578774413582133095215519039538693521976773600772302759405987035255149045468980543192771575633356002471186988569500047562586263335774892680957914516510426372504224406353257722180927293599057112098094030744213407709015061495632281957555726146830632626441482255064356109975821336397332265011235202210606881244148578064677280971313605226388100161415236250252694517441887957438179068306501472527334073270607233287781750666013009289982661335964653120347659777484437480326951994433658037016172384117406465034698830970323444477664286360609888028968978994226157889416984300418632175652931897418721968334744756491082175695016402155064699932463255383929058554632631616557223499267834315763609898861742286424354938191190881937691939151064663382760918599779760531867224772477010794410324806740802458670676447376794235873996058058106152764267228935329259000148355098271195408384927907747271274634086078101265950745522969109206147330376592345861634672372799675403346667034602576372255377156594861150983776467004293389986014456744642223720560253053829631401479306994846525931842305923347837666514172855999183867788566980934410887644486132914446449143840424527928947235928958631545310099286020734950702437254113082363370296996881321105101798524894776651165587861354049652679728609966864167611281410162693380923400627282437279252002108583430718473805713011530701551704629928078790840496185174954303104528306522081432947094376325031796119768562550095408046662691894519837102571860509837939504441779595727280625891002282695404647263015609706475311841331921097096505504981685335244092583135380464045865577787517442652266226372319199198052342433341450639116415466921431500148942745324480468672804347238962779597938911177911191932403285995860468376553193563190395472842727719348362152476557291097300981780907132073041629994433889612941508600266209305592905777322004580774124341347547821742180734549392701978965153594273290374078937645407041060802320411435474554668087244769247385199406513710339609935064187315845116314758827419097569491278578884851709965664716617188099968909569113806647579590148100917613679818069599009523389849349692695807833286199448750186649484617845145774516762383565691596245723715926102537636480110668652515741669646813869674696914034536128302486279885178997446407406779024352148409110841869895150173608868294552061277646797041185527206879334883042180671590609299979685074481686704102608492505997570677111466800005881830645419715835677605382062008285581464063968922529801417491023320395209618836955062729285634082199511457367247474551241482868866368360767704075771541369800359495595058432274884831291956600454572460269550562887232316550078498157947595992871605285454895413422743509784658115754160009165005371095336735022727359123496936406096633849112433877694809787122093125372526176280544704852141816149984598579976756343681705509769489152573337390568557113267875302143846623249956011612865746213692896249359024848298820252702602282513961299261417769813438861266557285308386816477023678070154488051427518149833157585728973894145688527766200002877225842168558182989744313739760221125982920412944500235193443748572073136779924288803540472993617597912330023352046648155693706148553817326235720973103565163903691412005620414795303928870276581537984690603985831318320625014248042101012183508787377350428069436657938766466717007067209606418001591688160125464270848957817137287992603460893036901915631203759309632378062817696811900570268350170269963919582004838155365125461619366718716641587316070341397561726781451954282126800420659426101697493171900088698219661148030506833295437978903471353683004756086730605535322730883104121976145120925758042231608687990599257428498034768230397459644811803124081679862373851795502268016754043557027421136871406228816489808615306450628938384624755138360310742251664782414205693539230736322613831432327085861834420520548939761748976854598469958554097066713900605702518540555922192949597697653200571940899427448393398285974395543055877855387587781184368239778715063103120485791932326716538988949280529140242252994286097227079528055625483422677099855955065000676175569685274498693737210232690265224137469935765654336264270158757743093502182237741505140761407573792128852125011960772133890239458008337076058606115967664108743911596071778518728427979838799227036493618813321033568095962504226789064597021441518681456382909728264157592847196445621668258792497435857479127437806239674930208093047732379118114411198715076717823184254260565787167563601849487112814531508936087819083729505534827191310067906767059103387779998434701932553120546126054036635728306615054868226338755111357541882958692924208465374974901941699551499967170964166217211676742506015121227514554371573853784403326319470166040462940959678502280471241786750511125583029604750240932925641067976625910239133424965305479219664503167940028372960199326010031595575581514661439907469853914130721515208481725953530505866723935724298566738543899147743797703996717414982131111764623719846814559746852601055729694065048277253332819092973984520364808015672027484191145450262436997762865085701137339524943224061779161786948632061582567702390811399305779573545585232467592403677628619173162788461476800522706173203037757833432913877123348454182410577676411070199157868219333126095675387794658436404074177176218710394068932779319863768801077354737961895123845616895461517299560897227057414027080775344572216440787476646830899952190881622253456658872904585287590412385649497999090626370677404997879178494667558707690725356966991707345110931349753285009055331387586856393915759832197892215468210680933910643989721825354886106118906266423897386404712960491966980919023344979989574844239775503032412130938408476897521034568980911454765218069256207185654618195714583515615805176617807487686677316587041629343375943463824827451819200943674330358271162043332885878293551648210231492187643213108978463092237818177144918570645445319639526280485174152626108258453433100807296381298337996943240157967128415358436801285791951765502360246666154712630921336181401032044407369064660961515689124048509367041233005000014801331394867101752449772743150330568930875275495086118698517713441074304324851857282752989535583096310607048174777492523150448553732368128608084514621323244988390087183782015780122993159445024882965701531591956668882510557611811367323595354740259080802484504716593934218060068186566412530869248899612051945603546686554626376968012087650907669809107102785581399929211215929270387445731143970712545574250315820559509465077143227876743932885363260545741781765352179070118678867304543548332643177336339609915043864199272808449355904176101828781821027797753401577092925245552194632739600321474292414416057908549534845765070261521459318439814016596175363331126567135638287447051143942853782007005019377113942912652479718449264132486069753656478901446020813289278329607378600680158999852657673410253425313310874106865523241827735796386926967403333087852938955009766127159003848295550884490612567942066213637999764902227467677122960232051300925796964120736826796888995378508423386255670833974378892279794535304517777889788636477345286682804026365605863343195476422693016913481411229447888603889400358003418832109096220668557979735688799297372004764072348700843995288264482022054603603399620367626809218343592638586600547048474123195087706367685786941082976889045436342168771087248018408509233889633393471275177513680019112664683641693742150947088315673503779164833327385284077218002595063006751054771215884147161685560117818290337385723206698717694459838924278867414340427427113282083982760757150819008704979966787413303804359167653770854207125956335300512807170399153205119944777769187147593850606064338589310616022280392095766489710827921212147672825406193939012978649402898562083078704044015494857136090173304740184264397106507965597323512600060333093092918858960528654651703078418690791441869992459798986343992565296763458431750030576607335041528507757294779696641617589189978192414104375032728543924168502802671775900964326288571344703945631268354770457863624253877038122427557332626502564626966978914281592156047115018023921093809347594227352622280754514672288192627943870196898111891114860069314623060022844912921652748864515056626184959703284766748201536524973833181688349841687267114437433327576271306093767501423971737614658016331809619252373446322627468910648108381194676505105313007969556457393472485751027696545514354989519824153303188138984512989046449559119941376364933069898927302596295226940710348672215782420684502983986555414020625507649617584114168188924030709638346210995161117990587102800878694922313047822221860547270276460916912405906026431575210913525409525173142140473582038194830337337937885888162436768964729831733837574797728331188865672391572922864713582037198759998185581298645209953647701669119617220796153674290539846348917892627162993160837844989244551147318283511398871971935597898934666954940796094577553837831290804000594214747148195584064705065155518897325317187733069097463250102397569772865630442800321100296224400844766664250126550984924048753899114939208828361806403769136923223727175694139272010681234975076768063069480653116061531684074576298399447588342771011839246145527514036812105689424019166092971897202045662378831994254101783640389748522476582976076679145516083153356644086146079339844622170621086225842408067850738895286199537431128767337058941252761210494827098874473244223173462070451670337858842102234921649277978362957059281459970006117916825842697303738720664631010592045219688816926609355299611235150329503924276013159345188035905594628038188093122580899344482223174665615454213227963184579501304181343435337457630636489109494458762678912998348652790127543010507183276771892142047905146443176413822800438824309572935150914979134559268859993494495333999285693691043030479401922504061399597708592848761003531503236373039959356579980202649024867881078223988989480742270569922160678029501415428506394636797476875295067438888734475900494603232568531304472878523490152174419911722675266276742353357940578053862557091024165459292380638426478912992111924395620975998769692139611988908651586315155490424542771429812672690080450396540035456510573753820754721948463954497610632317636725195721966621630792744795833113102961411299977568769032370159314112176054376075060358420455249340760017003310488108690077123579594577852598649545118080817154666622671990817236522080742166397543616516612672190139337678938895294271587194983451065207825650516064594287788364590263641153061064180596671015847831876621589921865278607590551889627552579386637893561957657534235294445725690213961974369913196302838823560167578160714941081717654009522791866878773271979778447179150914842227848762796355842118859836031844036690204218316198355469163068556586326585555280917636090703020237790027138858749430635133571135324230511206653322896846290562034197288109375153390595940752183165877512899095298841729007370043989383000238966506670853212835368392676699781960489981583340061002674460534736272992604704558705804559591177949728085755311348125481621268108143370631350173329626162653519361508057803622764877411523255343203960302059233607982825599359143082002711184331670259598959575030508077190447518231573345556814688520647011210381504169881683557803606829250687204900310332769324089377677069410482409534357117389363858662556654299763646117199701985365259358613318173886847564612419974949077431101690859299706998331394667046168825987158399821561909921586962681200004009433646488850313766348164988193192003480377714226843445550125490227789433813657491783466559153125243819362943652203192548940667930783450295953652489931262663844038169243706371312372666643229286663657169894470735182444238071100732549518081898794360356821563404660783843153290590300852381568334860458634523457507352608009556551907588245275642945737923707816293776384496998646369777942480405492570624146695351640425411892709395919325874403763101681353605814972152314529494545617402019976320923940036674557011008111919587512614760059873014095387299001515045118521674114910699377726372162287981850934688631229152733313091217501175853114409389813192690570133118398919843955505090672385385042228279720065511154586813862925977947998006545130477147800971509778622399553845765758083929007071413637348901475383788108643372208967068997338144153960970588145167838623889980279076485185081211565140226452706298321029515144104222478977696907148843853959374987716347646695271847131237568095883261240536955291887113250890523241439805917124664287046929750914451436643205926075185835199770686080617825448475916600235448799382241990319074452247765931058000813050319724231092871633231262703031988260957509609037068825047727898686842581440305947292724128510612626024082450963412267541328720797666403711772967191792842391975718998843298344441709363541594192323819070295314608399622124242353873938659383800407811882638631911279090890612146674970169574252450332968517680751256973414801466271828628040273026715135103820964951784280153994687225100005546152235708831725232371591538995468002381182243876522233106846823912169958229148327720838014627768036146255100322701041113494138766565644340222984031352747611611609884950054925045386234562237620372459094984781847925616688840746096728146014399747593117663051210578124939823127563756648113282006551007795688166570093505568490549392647694044096923231703732285269219446748706827986677443059598626086534681935434991869278955190212081955014443825224470167867946048297909740297091965390310580993828575589790301280817004813724363876473817470303069209000161875780595549440936068764691239645104281158976507542072358504078007604495212370969852657331600150497895645300868260915852237711565076871678578485071291446892249573441565197394888896123517393406516613369206511529808325360327936238828701066205085807344217185345126658564860338377672784605078418361395883112617784971644216181315660189779679870769231971488971702944097437895728147910351713013836315758614497987213815965130298355472653014338520777143211540072618850468521792831666623747161278643901337526516134285693598184308512050583732831196732138072697327062869094655498708592208826450424929800912498724615961763908371340571482873144509486815921633797664876095299832356594485913612956721649527649367209414687159313122962978693682369712930936932468429798124402450857403736259172836202414276991649944151366054442446960163179655333267998822088007489350290654608765247389060254911604487980004134537325236823304910211857890185978453472449809581533209740656780338939271272842669789143576349743798270239072449142490070779773784154006057986628680074207567867650435303652656632465343200381568756424484567843350448732058598330545107944272125882132500532337282909977481903883950438950465093429991906534251029718553143230786972928570088001173470394591129517782912099070202952614754079256062940335006432437427764410535787016935672917202314831354902466460897757301221939298565938454564240411276821701371187694956121659883194699432214932724536745037311252005059147301901416779438633082061727564860611245865556616787867048701424595171443539731082122462099482165124115372811657283865184460845844466189097345869256137897686477742168616988337589812335301475374268917062926124867440428801481860680093395642921643735142243381867346433510361998350091224354279607071423715708905300429168767700886405379048165099206730517867482481982079571343021534883295733174587750251942068669345906728482003799413185198778013071490402689267131828956142026817512609399819216447190185732608915506500494465307988730739862761891764772497104204449584879453195683895887410780331374789167484659577752493415490900199854614421002328087068581948478097801909280155568968932960992465664749859933428875586962981894601937383467483401948836540967400065971837808188533455749992437398024848759865572801790177739471534331091534354258516251855111907679853402681544922733085102948120486545237000906685961993901479697196142154113848719959991153161867066163665589200847882556322890291639455546317121476666527335405846776384527999719744264190363882003441257307484479076100213378751653848174484398785157982403865381321769453112229437951918939646634043893427554994097877611430343609065343632283678790725165774346058022479278048214719503338568340869300115370045829959313401133240220015195728001385176038194898514390471703650728542111625041619134159181925140397903596444325258955382845469942930131684096110896628326686458872063797544988665122005748046537042054824064418375674145740931314255746362459687082608529776262245421844400131320347358030789389306867584636421977579774387462711129373740267113413855585366132695286198930338413709631999215055821327373561334600876108970899095744651596239549032219340362461296746087335081938285802266548469711814988908465653639139739309348101383463047365899507397509179150147476083451271571505816499702913504567694459839487578399053795095123424359523580675560896260690089200714556661562914804471375227728202289783888083031208853473459113816502862866598860380280659245739535974881314663402738146554678301824071540172482598039888648979669883305301002063975603903456277603424713963313784969775230272483452821618779221501727951081444404375861264332461432027274963109515817746940119649750641588406845181110829002762886647765352564049973278068622565747699766419028476619227325623040245596603204479080257374487211498019822118688265139572568352001366991980978669180715952670770064092768883317279270657032890809348540301392726866382409895155156487850837577615061909458056794599070700020449530781179841271408046893623925297225031541742586430547261783345916898840283456485237047655246548811495766813521810449170542675599511775372839104490959872004690809312097669149811012830495843453229501964337966760201972313929601905681701505617087181806227153861980691197515196288823271671148613799841126555188542913855797165571507644173073196771750715973869694166889189302143261066049288142245570012350836928036710160442191359080743016635486897763486222703362124863316720222982207919601853172864933455940780909562279093871166447935187879448128490733892055303560788604564871500834971029985635093483907700685309182134458685520787729684311756386824116074495995903042806462439237575269172012974772690935229499385975918523587546178167808930742249021905722956339735823031623826207856681567020897622169233984854478811860774454711520113993794131172638795883767574548452386816806099830107157314029309941446064432717829035916680532535852186659961304925751267026572634590918364409969995308195626039585432236360310724901913589960028462610002996687732122341493662873243299426883441761878089137048156107597285078914080380978721312051263773729904955849225966665146696407978912710044523869185553557887238523259126516622141855296190590551630752179669885547133362799556981515397358308246285658023776513563318675681800225277472318456919785824163939439542631942472925411943872603280328958755031971647602334442034850358279602757344643403727608893699591103544778860950618010407667920463090972282578894345171192693921925763491010143615062634007206903056987144181071718850513402157786538498489593442744179614663704644641400623358213127417166278636659946950180225543004330099501767068397822657294715836129037293616109324515257075656458815126518991721246384917355700595476456635268510878903962613494771594509945092622289988499105675176674606170483876200072490319190532130772211961800466243729445424353072054188517209965701653501379692592019066865867714088237134081236557282250688460051298352841825444954856492711369842128275399639979981774858772822855043889135142460044976273758145236509849239178010354586192501414495554033865602693125271302324875748604726413379141321942562079922105564080758079754095278566012301603357159214411289887037226268337080192965254845497160249898245773951723972288853538888211896811854418295670868613170091502199063428577715100545582989093479350102838521743826084661095149359867045962343124724074998509057640611347031564917679205351964539742406197135749104231824192267248473332940310392018525407813467498222170450632360412004865851512099797202968927576884953168624844661438093441511587010866315193902943032211665055207767722383755990866031209174231767407730876526321442713433962923741713828426779846300645380276478422579932211161720317785232561256672939570992655951776348986074454175370940144647040712590661130727330698310823620449870950661330399264227027943610160961433855468973950293202583375408871317415751619312388690404250155673514762364864753420861188582621339652664259160789668037732519330491586521497931542525403962513068344149296219362931239659508427251770497316682662850401559048015224502954589297648847921751138532477800063054072584004739925294419032227851698728751881826020213866908137257712703619114774836182986743765430828546636307453247652729791377138921613499081259530439602557733729315591755778786686243603805982752149358374407485433163964965671014704831915438658652632197189716400208963528856119502920848089308202594061996393515999692865007658942219430821694611354609662513350045220360820527370137949201039959097917419616702949125746888197883790394678795134712042737997740021501428940909640917300585458839359471386303040125926813545970927827523745122633477107773323057130000814249581126851524222036329986718381197698080797893867294297429338208953056899936102085272042400635663876490209296814933771398891212621307681372468803578747711651185436920334980758172619279553633285686455689797512389499309566384219755240031450715348688387614320193700341418744816419130264776979187864513315012633155478829241232473623888391800841194592362325045029726793463581026115765968169555742663756891409385361461515477828356323565042100348769356208619845268121911317305326985303609350507122949278513912804313558506701822833169751131167846872512548901852308091823334895862507872917332067449874760657677248321910522895254901659429874990620822414335820114429819743853839847703869798867764221545124843005610849149218032348797750544528221918723788577646075403760565340997906302519607333113019939934614710423750852950195944174249207529988154003950237828526396263492870793948240809491484413290357670285637202758587363280090296074375188674617227456205880707091546261898139792903236769723189616623872641547378476545381711274288486364043968211293474236623398256272955751208917036552509856521322554107571525880248674584073139381562907440438577280088329748617349573253656557674997570685556065260512026200617578239421877871657244997747658324084741860715168418418143894866906772530247801127664082614972831452665422349258733223127922215272834186771768956708285031788737958983354656773892150660899878805765389974061591322828240655217709371545817311455664848680317724662434814580710915113378236453339808313653031723086414598627599797933990207562567779737709660886957360144857626002293573970143381445281966364822149789406964846066803476835717785666668464118115567725396361200491714418946272581095218753977526303730461788225959529506231258859931464397124611707535207392239272425008856188204906780395928294085133338501096531874566845823608428529559794022845346790024485783639261954441701409394126414161929839523771279646371153348037019622262915873432186637253419019240775925608739966708949446020062942776551773834283968659091978968066213174335789950350961813202630022915297807478762932319967014017039195728889759881008563868827039686693751612695053010056776527179745732959980909511787960735948359347256662743454161096942988357964797596462712187652890779731100951854226696633858559364453098893807506404847983010128501379879409766289674795215400027478342227902525901442685690083687622327172756717402546631340039127648223247999381451143983129107273886792602261202402220007337228669397130297778895268572098917516064374037485418069523047137114580422901741014470069653020085616620307470012815491439445172043459990816224496501940454678991109752775894850583507715021540516799014225682579342136176715884078817888932741755144933779128687645153332652912331223518031796209573878617409676777938631178048600988719676752658759873863987668848828797318537719090912803071153996972278958195491212534647572841891286048961341967724391748454141234490211866418565788204740909759102295679144913165919446183825804159317186631395164062057730919818705826608367616100847062581052361594670465665883066989969507600286826410110766871080876937689866119993268102042709869092434626274388860701819794148519334803095330783711471529572426936751649910030335783452108343172061908172744134986175645749634004009384062795897047434637752983713205979622375623855369569812406499806729583032990947287925258552905506768509153646085718323385577449645501069670097361740145653252374734170361269073107860081408203231219587641198181211600372238560488034311524480924603262834553463564167841712205403960769998527669990573762362138567076904343506200855340364717652577315266524606731444267422207767473896582168016904084366101238301395054141630018203236242522730915245549301779187497874555668124051386324245714722587986840416094165448067163922920756010142110957693892562168124786830452924479162222866407271916829913938451763358082239370335693200676614516869630848830447923745000303771992407310578702742653241676539470065549105231689351108760580992246192157288480157157847150465572647038074116189419500488230553255825257253296526186581277266470555791130742959451823114929011203039206511054926507324978597411643392817015715632808720917550596398262306853566114542293776001244774880076948123569651342765870745510198068305780105594177120223510244895940332346253231583270894218100289620347849179329377562306731566199760798562197165124622549352611187691479808584137835074939725450127673171996150853753957361829411234865795718182908947571969622160999693275690798903185652589749380245436589205206444958471670680723906331804292747157738831334778521706705606608284148578048908578534130204662356975138559074829981625958449296270610190512469544347881898068407419708278899614353520279503368684629963926260451580471848639565012319800650093765613954468069871250269670322150917492225512169025368439207548351291502019595090448821970106596231272266888101095997726969454040006581688922059538485065826397351381451324091101554410570076184973950885132031569247849170183010473793188018868278131974546870852986118622329033451822521879113581954836269733289717331874541848814306220817704349834281147075633687696385233596716488922305006864372724581664936139533237556633972648279906571521560795645313946431937968747221382229137715609595839242505702852245533825668213832251929382166879395061173274156410776757842855589543174895347377050266997815036106524264281649477488068981500932099786130808477314452184635895465996474635033267102498008704607913661502987234249038605629400821150936312268289225868344832629799323541548105414534432041806898274302698720064676918777141693297863378796744598080681406869363521936908542695068798999716651861243467140074180472432813031099736288086192536167169895615194682612837453085959082497362491670037647015969118847850621690141826583655588081698720088662884438118480595247007841697458762335954781612645296953289959756492581922546132273541636737339927928781139688237360508761777578598027139574442414455388390796443987657074987502092308442588561618333989158951415996336446917142737833399670394804635013430613460220605869322104365601147353016635510363819312715144488778829408126175037143340819559682236911839709681181129575942904026446642487537183674132915171385974768552151710150312340835391099515750335155964408274633857503758676934372972416731978596619542774221935237899994309406665344699590455588463830849316680213870182925241742528931683481894993691113029025571444874228797984506256324943092306792500993021912608529637512763708095286281919231492439048466441176388199678814144832513081824740242359759949692627635162021728001433931896006933371030166124639920872980854271844258718865193977452353714054029981134410445373180052202355298216935694044102270676976984473273823370180413870074698734320615938970758572724493452907687201606855171572758116925903297117997655379040141077599511496016624953265345645914184693891740306878471253872710421646752967844499050412167123405972022090722407993071539653747235840686869785280349933181863749101083023396372231805219322876718338546212792559414317240885197849291221034287990097602945387286839121130727870194403661613954901059191644859755844932262681962555458823031144950094430768439087132737407471944549017139300371415018334169976647612046926572977951412065911735496004317474540963074907208318515167398283066580424187301921284225365777496747438213264700471649670545225241061661378778529810567317004276726192299807642534385482491874686941901609534412902195756682345401531674516600400224409365920778333012261553404772065385126103160016639868948506906340904621040824306717290315878275087365043605378332265610849671086499318446702606793537493320467877812112313635342844040795685976562676284766911767036125317708288096969541794344368391284394827936991562642284867581156563246887013721594589126475458413097865197173034127924315657936240136036694208389877947361738805497524328838144635056882868480594572627061518666342772513252031701862611061937886554824261849933097593814458818785760796032260698603564601459873078258533038271020924279849296843957425603273011406640138196606433588206689808028267289050584345671165863083992757778309046753058014642856325753032606928618754003054596441482879891864072985013252779336772796170182835313062306172222708792702976135012360307732684398279756304262228002883648199660692002329826396909422251523725719952706919417432570421274196010623374021652163056450881290222567535169018367381683885880170765382132387390968183434400772067202536813880792903531610597397276855660503306496160107227331327785475887627415189511630138046501467802746213970511977182921719324382633429935659871737597975208463158727956704127268177873288811670228570904813523972281817473951762102329858306656965217407749784839222958939325012196258976434791621190620340519988874088238541057885412799323859740920533725040132491786197899207823817777357183529826680184715664790564991085379515138301694079353387832487613584677892231469294649755447224968594159605007885788575135872262187273793795690412699372606420249534567783291031310465345819888035963055908718986193306895906121487912141895132523439519146965829252569987499085118383205053236621327010884594588306940230089933864305716619240574140343057144859666222127976036364762573857057413384838923966946822436470004416364794512663511859127923853205711951308330773320958166568918349640989986433412365237712494118396127690232171535369867721473795694826939783697250105684621140724694928157073265452246925808262124296974799872172947220205236505765160222169902006389999039590201238553820275054649133910795060663912549216442046410271924303671944325368089067530858619348157225719131372518365717965246264454039193475241212695387867019988494300006773113890258073000884404364540149111500203730919271456166303135557602506779037203088882498963406743550764365681894494662346432624991852150964029407606132436107207771348491328910661262819775106649486832177020692140217058922856571927458720033610983811664161743117934110114566249993060986544166842079103466627502746332552458837936064755513784400147607148691974431474366955485125990531740150006754242169246583546279005884747184939004856871212940752103705428544831136277878513044452696748677916462918976432151093017487538329406568614079371220915075837398558954247570439377402558575778465860759746684844717161310314663009363724908715631759047916325532105003327987815025277865382792729296610703680891652798917335607200286399074495133866166728119057069154415123695338646740589500031172440915394195126363726074760320688893427599865303616992041816961260816779007078760884026784969484777306962640699463158819800908119250130457773785030463655630232282148289679490411252943245855295269255324739689601555551631848997357913032786866359710558035707755955564865387529557936644654560487013368266976293284806572971201859351541821256161356449038945399909214476891182848173197268808271644498166973634792101916399124201453852018063259363258418146246173997849712606602048900683724948962249127338754590218671688589025889886610635095121611406068136558966204308634491532158640515582735181873327490182038666811453205857463905945952872831022085238088276049294816433947715553827015277580717800731441532185018677638513159710201252130249650099994477384053041685781665090802107130526221258285910120668450356577821175422668836364323725807875241331653230953425431870236243492191708182986205205466239702590851023031778102825232851445951166822152768839059614667976469476507863751424471120369253782437139996249115027422413881095644903364958918082725479091242547977731472827837261266407618487742060119729812690844765525198413128600772106224388238235893396389671247907109401602230535971720686140596269426870941277934989506550654527357340488982951751223620258683927506003309765761649326137043457729264838208682202862730506627747504547415890253903700255109993640032349082692965392293485932616339599215516347514554687971458075188802971890453746460139889645986864926239327219544958286424953702523035705398759463215633001692056311620309995786536432614426762844841346644339218263253127362533645561507426134287261141856353190793329268253695891356039593819219779249637911188189816095358365008809407131885877358061681261383088787345867361142568609243917105498994939525973139630645283333654132882082539206336035174858722558753839508560509324013917709397439205721817554688099969165240142484305449246774763875678597700150611313020919610636534907774366810405963053113403978472047289504930972069952921832841436214315758607758619403034822235459503260518968364849042196237001556498841512046902997405390964903284407550869633262177632765093075743606598715807646215750747680296773302286849399990340918752678269868115448811974697322137685702801245573752780251131930743491848245076875126886730500798962235392244784259972558910084182912538770493510393742478033531463088917410668408236943448310589841176009470937173370360376323211164486841361941997030344988449673073057822255673962581303531623578710056774121462009913137235094745614500169598244453483309735375386562758453404627113757631509828956975967657611893584977154619184078231337513523595495386250274904749939236405475742606932493938389420325785089213091468385025150145384965158246144332202033079090623513738957763641968046448566608171985751485292979950812504546261681803769629199435004619122595555560315527451663823783538616072392155762620027902951469097661857102874420835203929908198654587046954140075969084301258050435710532521104113383564178045070957932667829901522557320949613577220497778836703103080838582472632876421531394285939122860699957480677055306134559940230382207049401922737379013898728894428047948556787472578252527923255073798066196866461533929927431825750745956136764892582897438304171159688200006254631071045077851781356283049010768667236353174239040909063575592162621567337506362929585291848477150594408569034098541979140222162529229103423004441474712201938886500645320038823047130286598587379178615311220902636307648759200750474675411530617844561317866358480484809179296899774138603248670685649261512268840908528546343316298262001820522060510486556560124976951621346782574962845262032615355369542498966741727422699564179824957277222839912443190036345215132021044938240868302258551173713994950251938791241425887239672127255489734381120602215530324175349864828979641744934695219764077403812399305590783163348437393839493972354450651410787947712075715393626321010535806804042563482458635244066606490431892855168303372688279753393196776391739293533342656907208473486093932484457947257570604671043205705033723871727934903560542064042131137265483909392130803262947757327563757471496539016185889852176523255504570071515879754131213474014690336926474430202085137824335222402706174946339483539786857518437257592918309026126163367652553108995382976224349040482014673058216170450658846714091930445406752200429098491438706576589051228030323683916742864383381367673138705526530634817396908337192365132634759807419747045335098696485448897849997891541191985632043174944178318996084916489216807469373851093893361202579836365596504442671028452652023583928839147502538704726458603028494464704635331691343431839733708552167966881475275530398149559964342784396787183344954198783431871943813171641809862884125107615576907525133786837726083255003272174957157503828292044273250210747314149784120027711857951612290258819225868230747466147926829167600184357293743963668020035940173950915742261992500091915405368667193377089331537873072210979416316968303234342944413944022124994978310701023354179608040247507529817760700238441474115723817655437441584196491024758947191312429906832427750464234448867689190535281670009128347491649127439389439351527833011813902568969623225301056989088627111387982025241600224644779157667189775528141264379936191480107035450193973699859749597590992019864732887446167465489073929132379857579295972007890232393329906120592167106034916008153418197454040932274023586872825778832450530199407150732164264551068167582833170627855055365060102009004263009327615571566319699199438685887803949790977079360909728081676918352535324758141003526644874078489168615832891915879012249070463251405980136399208515236950370888813676158125187428649866161857485371264527983518623768056379657125449177174532500418735799783733006925910023522091661587689702904307215399997530276479390642022566321470471168638061753689661989505189979882452017303416845601708821848168182828231252693175688386613495364547304227021496435207888916009235216441782941810854632510511789109072304924309443135978517222113968280641667945753987847070240166122927080696230544577230914237701113894788572770287333750909633734435701288410571237979456610297714498414128098157373929687427353798029171475361813793634820958009546436916539235310848255986769841072738811116805744087101036468348142738483411963563494518682813576861364013253197844332783216156293221646335862943928886499834164478835198329511495924366119402141618995577205234430351472728606278747110703076871698484852624454097274342798029746741930161159635673550526799943069994507987126273476297436950012237765565126020786338462428309261386052649503987697391562334227117399088197745898442523323537783503361153663697451297679700669033853000880824019430919178305897513107105689564244178407690585574110155130998040460801638694466864095764597695643439905650245272109602530808318411946968941666117466533402558229282414066709808856949332917397000522222613461782166712576783473423432837192383294239773049753017060148305842987817330390674695516925515546436147369781192000132063851987711141670639718446016444371378239475322274181445838698361495611803942700760852924622190162283477464202671438050353345036206005140654311088337490437131729559986345801181171141680227364666680050253254552494098089496874449613711597941536646837727662715216852761104602596092014889898332380252199241883650372534734040979417333883366935148280096861702453597774023346670099821054274192101603679589264336521817715589958211577363105644385747062899179786359076173209154095253307403396976441195696201782398187371452235718473670415277260020918635351864681878071078471745542666108585148156068222378723125189216099480189521069369040860619539895886762986730843347684650170239179620037974770608760262090161456239951423028598256237140415673689643046240789686678730768115282564107746675495580469212106848678724843196944145579429998939259972922318072692281606168742997655072116859522072460737254245496727458179627833344246479079680434738430189681888058729234177733223805327748291948462781320153658360506187223329010623124079749478641805105273385366900487080146026195246220888206748301135369922817731245829442854111323941848318710882806577912697191589605833841468018528242998380737769194759278155970377668253998829973910819515370708071136865469702696681373882596046809532378077436452095140263460206801020636356638254114185919754682383172261751897517367786676890889580438568593017765925903319730203839943570873362887717289147737133559703368030145645489745186736296071601711318873055415527738167830154074586166961245962041011944928552000434635699335810757917045485336452804621014031175385843189383047178859080714584270947306808799115799520141320375674471696190193940303152478742845635519448240379651901813540580668237749095988956997658982211799426672295381239738424572325242913291080512348008068360438112195118402872029276749117216377916739269593370047499753241147976821461828168946186797742299653653183738290632116252051871941116006156681722438326131164844299384358294281674176578423536095375241138748112870634105629204483354814491479056705194088950265708071026207823643796346649283532199996160238840132873436970479487239503404120511793882344519616891823226252868690620051526315119898271615064838483697393237226499887969697919612275474569418571606468735664847580313239700286422208748117590584779807941766566574398272188715492846978492227474401354503923769634077373593110428916682362320162956818061997697292075873268339453914385998159223069919992466127805469064205828541416442155590810378808496007948365586680789605018327869476874997906717003101223504398002704155812750259237602837316953121479810672237633570234918285918092678577433533867124601910095305096367012176706826014553881132758724042765633779433501977842256647171044985479274480899598407591674795064017842425013552133068503660350407458736570229939314317641932247994092854222668649120804513742889715191728212058451921886669596870722876902793049692229835737925284100310284653869461017963613688756634665716768157344320290826045684230777931664500950525810642481133896386361810622774199427040647829733493390327658466131711854611811182347592441952393049278438643297724473828977196399484488667696028082202844393977253833227067275474640150518441823749881502866046180750710132729435517756197320214321135983058738175580890668296164390462268445206240343027799070164928463680318403132526750870947699759320280041832437796778474261677882459441145666339714560791407292749892907347762631925789836760015289160040270257416844459998528661570319254817694325772246364470993152061275219649671561943672093265336817393558564774668435447842635220431222763147877799822778124071367722453448162507012091321318036990781161197740391927148506551724012954489908405122078085983289443347869355858543537729779114168439767440525954732611543963072908434294597139377718129888248456409670998195751188740222891158512375196387830032599319450038324454830405021635116509432359453841933485794098504366072747504495167164061835449390985785727570613681733334575220205617867433578171960686916495864935004028535151518002023038380184284681630975352953608457203732895889034854330648091378040713924969285318945313061039673740222627474782261499009730658369192358137610164496477029584976997730811660462683383737330164295508661841067996789161161177890605773313789411976392967738888963188497264614101947315075701456548785716721350349677569227092635540971081837959551722492427075597509817796530166378207389541941825643593822244847154854376923738067998566165906594222073976128192193846826515816041170771838162111981485216491947730797354609171007120150207411296286602540397640553183935662932094806685722550620901456977068305596353216234864988842951887220933530457188721641530684389571984475402042949457789821101492856545452565529671290659553208330522431038191876036304699921665755619094921174002893113275890307860556689461450029562568474701646578789205926764830626101378148619166534894684332060133138471624371476324199760434080254342823749549689500426237536112173601131687105856639775656715974287461353587265204291566580300365336295712094559505489238517750474457747970332360961806990557725838074406401323835149192502621788642042232492145448126966486230573034627604427585575730700709925889508122814313065178496611568267588929339160379513434863941249637271189446968299249896200041531922585678698747170578407544936886784386292752909041898830350202119161396726987331416833788775640483182808727439524095620369006535528490813696690514420716470721732759492412606091050876221044445681961207659906885440584443263903942028165574161315691762750646198753834882607866689458340620627718241156386024957756272248291877203500145471067054975108927992131590143375333066620283320172251236120217723394291388509096597232080095449827341800146195035377914618676081879837424614633038669626515790762414044178613490030128943330669988201657640467799307275087159988014326869675267705573080962318603046566480332008124010685142895552437925287842030056956923363271707210731451108014789899376586616631078705751832371877905304488502047066798960535208305490967326299335954068628520315334804598712318637518053390453009888136900037815467286427538505263285469484679112154007816775654327231541915739733230892355318325832578710827196721577320850037645137422468762302016701851539983222495582490200343228922565664145180350454762952971627063270863985327841448520829674771115947769334387948400562747636674635605830197572373854529988250250928363224579727903807136476729352562390682074036454409988883284615323905666665459185281870153132876509354139136793047735091945281561040144333335858712383237259706490230386661718492408498715252197379595438986732443426854612468928958708253936175258957803997570271772346779710199551230169457444822474093166614554992169185633120249908763973178088062651924386388674030966008561674721737272029784939091917768031337202861506007332203481048297077825642359911797340579304972848289477319858905679771944590767929857652656209846920887689969628869549595169832294933790766709126454899021865546117625983442356717726478032891360456066902831905951381654254819785769274422590073250265002212024213010315820179051735208744313790833385069820256655709692651300487228114396974307840388867607500018016161544589251973774056135299243175947526667450463630995888349358098840733027428462896362111908491150990573219793474878088729124945531138128784449399613668183891489947802575970997206723958522104508533288500682427773648737887619235659695426397802622058578156068620181176719889110556388080016476584141665242416068675252592973891018460440991931232363744042397879236392618089388209234672247354431755600797085239518087581236423706689117812888771842945072778863231319267016398527989665211141099156539300167318080332286703292986481321105936397757277606587951890867391425587164584094075002949816877284094198279144109342429828030003849349219350195553007128515288191227749365438110701987446506690295681761528860117144924309004673728949808050551851665035796179824307070109691447858088334163669603877609083331266034195695085348699625338582298908360822641946331806432037723040131655224115122305241112244614594887030124556928075994318284170877796081195496091186291913502067728793395943860039764476368303880716434535296717681469725948269586876461581447173118523846162966345628562136498885956202250421740668987625612225690809154899434726097871854407318208795309985095878036932754957165231087512564140558354642536791631352303302924373952607177161516246140051298548901143649400890360607613649997156087978774729484942057636576012663046412119011990327341584434993177240028194109764836036516195561020419092469814698303153751899986386115079023934500940379390724615574236876047550806941380503785197513081816795372613794982154956206655334422936986221955862936109857329857584083184119324917813887756138097623831725006295689442675812451045276745392623181992218549834898762354562893727894352937206261436231286346419713776774818136319468165239886452512400786934260698192031789330197602727594524512515990654515204529032078467793357469166052298085788474618595237462154183618224696796151971127326462555381871073632656817665145044292014620393033558879018195088101885806070856565860908846898556958659048903519562937381312907109338590408455259685366169622455562095548726166829098841953465783771817894172264362352880486827683092845729298399105800287537133796214450990023821465992106167151476711925784045175169060522353081682275799724285178209031528277839567541047792288706673682680933815896929028694848518713212302635921357580662705774314705770255272565930202580397350978729883704938544745934046773722018052527061494298836037323227001242711669535485765211014612770283776003461306464918977909837907014382424518022259346472374341517673783511744703618160640181641444396714738401126382779333007601155694285622250881035773198801052348460999222722084057396028212811960013888411224081231617957485825526201236930155504458830288747000773348333338652559477142913631511691090671996012338145105593903539288870933007852947521987299308025422202569172919337938684691865989818799447882772881165812027709739726186601864862617576786515378144347741573652422858939332177458847131066507785145804021620380756083132060811390313893966173693119570604566755594834610252990428406617940056503707663091147112631002443491926951345575615546028309287255019357755296853259607867212769345442338795607968235097895140234525204808985372885362340450901621137888977163291619515263315847498806865478655791775380799155089720446597355682462426822250395999886642947241114779855469642385948105710420523776526473636824335137805442191612274891710185986341001818157821453639390882223746774708489123074096000990752494846376638114359808886248966903819756133564814147395317676140007817501622432785866267614112038766727763609103384977021229079838613891121207266369124726499630110799611471455903626323475033211888457815777192127290803837373139581457963669545200683250107847533534791148513481440156164021976523424342823000317540562460490392427547865403209767623422561666895834289071961480069764573484861203927443315311377281807724313248996451467806047076436405865585451432227852301439023962935920427792790299847517781485137368531722809499334988310488521758384238113429084474617687114174665236930840422312677462805984383536766344468812890167910381599381597874059941371164706739939959321237697242777223306381389726040302845826566727056072249449438663469965899194388241817140942685218725036982490172257283435299460318605387233932135809867054772566821040484571940475119388546996348928309434019361795641303979563609785558784798913851079995539528761867074171812532798730944994679183550311758074599709023204238826163980249329276646897577829975952082171715149172866000272481775561926610839005264114572779521405488918760047928638407109111775959875289577343032344134800343556262826479095426527616039776318836230810406631927034309237043226576568202460962724148874046882951065285341751719771089514902271303964923351348702893193372675024300191488299592948850984133292168121772026553239291621573725775900117992272326632213862242501421279734068316186048380109072092856747042501532180125098112286879969038513162393569878142176492725694124714921063599628245550243609170800046638486063530981008013860622324015552461283547677793206346367988453226023934911881954129702168107838671448961749464319705224524103340799785035717996412369378099545930402079844907304272610610288729878030781376101070402364895859174084868994127940268303427712502707529190644562242419106316280294534829186066136442638242021242517523925200931854988466647106791564823406941760225060565548734922338456185305344600921612912616875707422791717529681082085953738914093172809675715418337843950315858260033233508373416900471110857861739737021296566924319936843731025833496664194423698723695469570489698578927262343188660496378712674483337744883331867066024898960713070978503827324382809007122087783362026660101791399712946721301764588204874554183714376354404236315949023707867973503860646593506694967204003879079921322734932035132060789235634914484477548108931654982041058739602117246704402516829080651264112663119860533605425266099257540413577821028421659899337558526807196848926238631879894560541831704505617168554829349595519528996170162899546236245328548708379238058884725045706699045889608605393924982809723597572457760467904900255074132894950143324409999390136401403621629921541707622142208853572912239325462237591235141293343591597568888941469949602177749733162727482277496031476842025705405551007057427756447210553864632053854387585325230776243837458482332192662299168501832221565670466311031500118157320180146360043833277576122252082928352073815164730072166071432006043132205811185087259601263766645317286390931796132130706159999596592833910209006211711917177937748815234807824554645771939478087593929612376934661310854129219199537453383316192766715413618515813038238366923106473689342682641879141318176484346709426960110767467966601723686639412645149084849528230757250787444386040615854734349499985022844007067064195685524400983441845013768329434189957375236053882779371433011843364321657640990012419814596063681514947809027191477538943528449508824302444747868788899169229923167813280219647873811519415104133246545710188267298554661385721749099455946683215166303462148537634606620656570450498153490007425895623188027463979363616782799121345309206732969991106370398449808291751383469582148305846973812593210641669241969544982939800170221277186902695580664666137859530896352837227166515645011812325810279905618313667499688015370943057756323675718961703414027929032843706491236308580642049183556953002963586254575437677432220568070734531364193873328871986286958966626822418199412734678424188856212719613829320434148319192585451412789037739674110895196500668700196286600067939785303451513769053299102141933041012058956616790674436432025121946921327191789434579112104367592232984961244940884324996756757206577640241644397654838974919998903951411732917642939212794261716307275230644005398535325958677218198428642419556603077007308598892574461501088028008214062539904044930098152227849775443593879756447344426218744631443542555965385239328433244561289806875976374935349359282607272282191699905688275129758250296752969588999418675257220701909499605856464479438160080288259405835296339752876055012410587380246813529863105915567081502882411424822047300060154754534221941435846994279691384054798119312867307356095777211161251946267618632295563273263985396179739569207626784320633986350811147623459105870857510419710546885432606374085965410818877118839316685314814992280998823224864929550369072809036763359333274804984837727284559427863296794128074212348850515674120234399905379149503688574093643237760755813908238697281221665163585420819477664121287601767383564909379543120445916470586876287703931825234768502352271592779042662385879111580398113655922232780769376612060116990314917366467265611435263491062173475495389292302531914889944019938221434894307692115783107343630324930676275518340066525556179977783326412819643223469634247198371930837985906720556030257566728068986703524815732143341301133581620850315273640604208029712107020633955261789521517090766334266553992659604149232030298665769646839970570935017921682749655003588689349541897361763990493798685433364541706227263727388605557906918557011042721120288699843676430847699761700174686766671094297964400413793908404336086277542193540257661744323371396037706704543546042966696121116813935248024982105088513421160503331154871734373262660222343534198642817701480197511045055765887159211446810194571364347017561975565309765867869172192124273765582517952469756405644443827435496479301450582644486000879624442189765611694625941842813735403636544541449848562071528696060319506820879910776525436144077192117355896036629930148437279583882669168506213878639226416366236384471655343898665639534425907991960579291559836365839568447266922866664601676601683049779281328075137627647852697051256002835520693925698390848649557462327881935538524908509259024925237013228314236128442393017284046899771284979209090781671900381351485743560276010295594407283741316842749631767066742626657955410130136771104131340116210114883850039736402745409126757437927501961984482330313189439354081206959380957420738497499650504232423183664237376778588830241885236836099647508886285491758592673473451849831048239869179227314496330919826338850012921131192636772022879623553106525726119465053193683759516375144589295166261962172160730449576696229478149339610208835879096421523969075754336465740552666573168478948779342076010935569518733199281051567522216581113508541656818993081196248296122841636079819826546233075546058447317319780259791537450270329780012596675957899547701220466342086199172737819221277064481673559340275591007955439620104940893043461784463740498175875167839845100286357687932863583366005401459901952842268707650699251440626942966539532152470438546734256428908195098366665241516476712161466233458072697075344051982816789456833575466826205458246090000122035790844093878962447876642721464935535397413517797369226227469875461838525959918382585746950057511515237850273151813657588924186409278720022899084424894424776066613931625222408845135192488727559214559108583627763666719834166381873172584238839628477858607804282418565649500317656543339284114638862779775361226094609489639222680800362736006951034259582805736249476814407830645596086960540197147454449766804231672028236217466098338942048114296969987124039186109579606076235262144395598806649696566318467835490163799483328451092641290487581010266678414044601478323313260811107165764856402766650140840144119007071488463729090108035202091769329737894665099874063778871017236366978677059885330502115091836022244525844042680615691312971567554913791562876409987796297084467696841443611140394889650428627587884086298213234316927737852015360030499335549705815853709424013520721159324651507629015151768904281065383640689794274744336975723700559324919126731002887909981339561082679158455767852028978428170937804746947371653746834558233870255094961448159010563426886775357044302185991617638910841953388550103639761882548848383269020792308973634226079878189994996178612595782983161550702691984579447254200522365463596336466749899647076904025036078201022171151925544037667327578688928669448343377014838622125918898631021349060877606076576255514271319812676091108629532052921885893083130348777875764270987463957666107254206253918450949511245800111379667256006380631129836968693093002958689729811414147828733581903903252634683169277675382242690119123842518824371557791855252588860999139974678819779853015511934718707950003835226783090552630640695491547874830459197905137793385042899484756289867016668681131972482615862751126745877765440929386054547601196735483681761782199296006288518378421665922345448949349054991906598846063467469474363355494850514446402203179720701996466515989206663096802139894691201552411679285957824676445118497180920170432958960829360554073913784338623906342931806847260891593297330621964144333371303216466952774093633836839027727811465382774470405491685208498321509350817469498227656423752788590993894534802908958716090265478347204314976691825057756318506159051776024616068420579233391651760528582373673336169834399331246543040316032113876452141897032990138843287784576554120418505753575734507746302088548029652975009257437850024163721232765168125477818115612793764939485234312633230239341514884508832179405440991263781306919819592561569702010994551336477341897610176904837948138196208343692398762614909286469710274053641341988259697305098378369543638819867492897722102660081735999344637018320543582524038120755247124630785816674171964787906695338508030778882739154610079100249320186927115721204221404934668050428063937192419549884121510088166188283076425988418625571703347490688512352309189771704723118774748367780662132567207359817439550403871593403230519453476931392011953856948498404865709751144870799256466080149693001828098819753682141469133296262928604380425815058875865557217130998073129076890506209000452352819336423073130672913370402274406540946599986610716624761848391488235182036466564608955960936934013860611743323682579353241585359874754419010602330335221637603462192125378031800892811348750685686547361089464205647508118495783345820311721464602815881312320059446527651040947802216773115956886230743652928168487823717488931605982825347987667168635632079548776443206673472013742942847573743497084088436974296996573190512438480995969806612463618698635327664642999009951803421847624260287718050803033472371667123200196663101546358165145709946641322418634623441619356730627488459419560218238990584120718059274965382465094544026529653842039092839141346790635152466605805613126192490160305381282007585517037334423306438980785430123188357908411504658542270052681479556092037423217046788584181143340483003093520568664361905528610331440640052860476025060410866662488011856993382035129098298867308610226327265610252035977714971979815737086602527722165005436705138725384096360566136756154987625644147778445229293732394322799305922465923793477974655112083952340650454916947136838056500714049453308801289147546710156396719863808142337546803134153071073764308414321798509566087106079744513168039571025313897588371221171998428304531041292723730126114654072984396288674343990346907795708740004711633758486387498095579384987169015864565670546913737709642194939846966717915351989499154782386719085341044553172426471215063562654504801684738835545052915301884818375711861169802381554609361447026238717188532909717288374013726793017180607389099162903383394454121792036319934049659121610010863962222876656482955960446273358832729156203878484981480917141892316608362359381748375406452550130697605123252643623438186768600241428507578187650026086694916775671626220728471699737510826979117146470108570639218070356319416005806678694485657119318403565349978605133773533807348635381583228406946939899589158495697739430005032175923274809462972846549633749828701883051273411105650672649402663206422893941698348002225051706646306882806274971433398584176372913993871675731351233040453582099094101867480258887708522100980812832952944174255659377731071672292068886665057717083755001244532646282417299329929982508001560250411843565960484507754441735586197155623920134261350629468363929807457636626629370879834208542843769839720237952264286487287070290775177992918211996020701555725760843767084789691330470399102120975319220607304650873310182808799451498185030398381187571588593421099462315598699983881032328560171039438487152103692102458008112904970680924754069029561019850988009432602393090413302724428098007782462563993989722557852366873977407485251369056554476989010990749475031152263441202983667883782568164583337369879336281975696284593746434262916362630562083139171668033332847718497196300034774021860046927364652452472429246414268133744376321349758164559513143803372908668497880005043775158230249588514471742024442391370507377947795156333304414342977143321113415552155924163180423579995019814625898571372015956944596818321352978323048413713116440754585107993096530226495066622223616404337541892838583162127038973022795531014605768492082229049130630434820802276704216768063139209511970538341098117000685704811482808674308080682983688632490675226096679450446992489955522502543796734004130750946843886658470278541852247356088784088541970106659503083918146898568601516973134440249002291188036359006031449929331517520430602578293820909593664860193865244847405968228642698336127109949601729735277413632469878272816934849132813235875301007473367946789459559455681387228143518582968135693421658705504069212819352882421002900789182222425287823712712214138040297822172315539001914958802108131167133743301804132844389096020922731033891170559931084291616676097511076890959440708516663685935659213873766273602819433203449798983240547147868411441403171747412581563394790423420194885864185844298170184287159769287799904327316509037077868926392396820402416747600848506899216036299990637183697852891399184421952160802399533608918217645123698896384422823664991832858517533401816453287319516230895946803047660371944234266111090142150140792988434719985799170718824379699106498450002283674630830929073086512907136356335644976371075115426079946047701390258835890331312586423051762054097680683966070089804922106514970007823844998930731705213137562696595870124576542771844267316715323607313070786715474271363406803223613311918761244900649574640096745032551854697745856481977889777478495615643968914659580904780360559263354499581303144106971662049175284803836330800699910505957102468034307888274406369039310331014001267116525935975045944854275395581947639804432253759423113178491571605319202903901381906701258219727221566595916166212208052945411640213550669907698751333324440263738704124462034925129710442754654155719776540865183441009003890311214230785888792677728395562054422997507545560583496739737752208103651857737962098170527463489233269754272285300784773226812361096533222736718598546545567769654846584077893406497516267263091808908531586088165168340943877016917431219999793800755049735682190283876455028477218708478621595153168064984772908855749172120540246102185811258329313083582193356487765835666346934615263637960676773831002409648343825913613793882460941784481403837440376717965512281887519852630665545643959930414382495067215055408093694620843893720873328026160885331515714907083533865977579533733945040563494191674758579931712624877388416439492632498422408298913402382165384208330924807800492342211583911254264539106680110158280381503234949532224306007298169160421871297585591168133920529697656498487298360690766985478968560918328061380234006502408497271577113424491221352544432813781585771251501491283815906406417020378990787819128072705809415705993541557293384024941364044805863784663751281709428422824117599453781744126456178190454552667267474815072562531551275339673557215924888276697738236684346600165415057650259955458120518434578319254240182735516971854393306610304327919252157201741318139486932852186631521547483983444981604666248184552762740139012791861694770836109206891274354052205344971309765692992312758024843507992528806159450151988769520447307437801341863806597965812474552503140526764462174065909675626514869483515945254375740543477074690958267327517543708396117857712953869991059679206274221885269581573073114897514505572951444203029087301121008131693688428353921087362474562449273026080543072904122971976167865855796324111805670785313090066805345629307539762244529558661593266894953477230324599123810946495003230618965575685589205492573158579834979877995564515427431476444010559555976296699539608790375275127470316878516131023655364444993121863626799103287512190541037374483809661320221268425762318564197374376937984781472045387571289836324222552235139509068546948924234517494135860066759409500989881342073576769016319447011191043354140403223951620493573365652311702292763145166657546737589260855537552571046666193758808186389708264779435618214144065881447812218955462360175363487223058927327315833701902999293211308296113024423136527999911152748173889298599148533430711977739789790668851103774221269183075266045151421683671412338258301476692967853004105018039714184476019764894355952429638284321576069302594500715798403451859434289593636265909228226207670054397193327686309533605473423747500116802510765065336501003899155969461116748936398600065697861778228916436357666610582290106032893615397517516435660686272478216166427573811923829651632534891100545404556427935000615198279596363140292691693197639023983424251800506522721815659651183228827777922860661863476070434401752054221231244732051930408280654778435165828656898969037563235208527910951027641823846869165312969989754260997945821352028151990564267620024620845070378881786019520448156918511326874677229066106967559259565566975747668501669661632730980894056085175658879497986121172078908998624600537919367564772209883723736410822281932618279111910528101904960750882915481077931811149932011017233914601842568125154087307220560296371014492064439184871175347553050964045242214729632832396670027174372814155908778299174619642768746567109460980037987059733226669636591901022493402028539452096034702775194278774248355613722658472628354068176227129610416305579723191939132687840080497860086174151176314850747629932591371275174447574941563878622039242874405456516700328771508542480774817225274976332008257544627634702192189393432379442868992327547608894482083869846115213320332229619560617650026946044154875629718301699375891653498846201175822738836039471360292654686242478541788474757001073831053732656843773726027854698667711142894731118103950661549314382968385021429084594069096698460904615240436297398526066070688583268609122368043854359303478045752456733158822540854376916944250270144023963004441326277555162732020403815353548724244527061906979147337274890117471918424797655424087769850603799849757291393976116915909164509683134575763417666784280218959149372382984521579311909417778226680198217330728782550220821834917793371657951482890041067798424746245316732292374521669435815176417666406982724029439429977522403545518061336213700335347991764516103503792527228382875671268194871434708447215482207768638087197468765809366458297824823125263190995738471181476947158985192476867906362313242653553291583968982286349233261456759467885525436072945403118568600023570226624896592274705559852707640135973079037091802290684188580826483692548942755679924094366289123164816892280379615819358217454905284637460360787993027788562969285346770110889397109827149352237738317599564406838235265382137940639445856175977750372131177102345780627848470275196857285036020354193380811712494965605807635445281303300369940834905516527563224316868931733097819015459191276862097281776855009301329477880287833447376994851588265141123247666458295495731381768751770756941309932577965111848659115393738726332171677946363890616429782576377074111406157329175858169797377480657556255043426384680624505420884391171443986624296283946908835158384347458114569623348552407625931370440468788893502115778575560540833959970440171610427409498655554972317119678750126980432359761705142258169285236741124465618433548386638265051897487256841537052832973464883401818100003543922812540134593976227591030384616245581927688602878562646030302256362128497739192410629319379683350858630927103627572587611455975013854146344228003153544367298316262299217345684433944553014546738534303458457587609091501180531903830137438887167988351506858390275783926976423610890270595916655665390875195679809104615980424476852633227522603153614349976967578245056654337030428035601303875380985784978159852212786351487437784318436058289499560729795891299440366076178327056532217373762324968212635865362850102899529764667931712714999856225559813210171234932767243235171497730219101776367939383940683648788517037491275883979674728905989719374101749450576996581369984589440503342192183497911489000941784427721958307920181222032218367197350538149973187940435165168898284626224093920641914882632936512541528902193878824081579606230225132676582967238559436605232568239076392500314851784583925553282098955494840909807162410577529460422234714554364825334601600499328284731533326242206245094851007703373582952930148724321470762595775247001039953594614829218542928976797266704450483376000722164631739612914230331815945318245740594719795111372167733799720558794783728176513720544333054694302303714056741561132906362272085376734898527319502600175354754402783975246057841556703755911759389377416777824592130800237013194654522814822289148887553836295708993544809406031781719728468443478970721429371313541028804023089546375504204177234392931951376221536615328548244754407604266939015776282899163719426911829985803133097900696876788241325146241265443036166761031678917996368848626783526694563478730491757692044610212573764888520270791075915221738644294593588602826681519773325022682329060568596147532718103577306085817792489318247103546825271094094294972408140176183114270620899661350856037719080294322620714761392576078230988412212428681284937416216210537107607480172906109351615069154490055596923697667996777679234674281760467751062638162320739448567507080821538273078491201014264776421526551675596433483116578169696109822094644550137691677036243678927250815022036100361004887852860555591053340445630561674378092431070052679106356387664518877878339109226488866458665907483693191317443905076106962874744367192688009819186418242544388544416933477789798984656833915788916709362428408371661935607064276511345808479166663964307156133082433118750245304368330536408666941749933258845729636035478379760274443024184679001180888319599176992800439127528369954273889524623799514265472999276195395642281912788359694731148142440148890412916376739234908764696929955993872044573306061927678057553739842478153091626781645819482459627829898830812853667789061206404416733878514726695817579310267878484451507094221258561664143221557215982790089325721320384348139368374765412874809174066983067531050221169173877903054057379298553344569829660637456627215246601831888784371877569222776908515459779880219199866653911730830130993661987440827768385570210140440022597766548705237460943704043287548015090662827363604031019272721155879157189444788475191433464328276744750005012438796138631403823262978549897552504491246851445955771913785383399720292363348390843469319130424240156909091790910096084228983152242050355109311356537827507211062452782712754955644133220623321329833523844485642306698798433254936243730442186312552444469145654535174914693209292713063382687730877150392788834719463909121166160862021598062774483532385197544029366850513411215791538289575147126386047001581775155349405412694464420601714179317945753285371902750516308440210332994885243887109984401065722478666553804268791833494376128929692472066137660986733497485054293120603431044097458634841370101213171879722800501344226678371794293607197991068274500189489616161700552505404422777386232228423946784967329566334895931904233026615701694914476694361553181732352826310403180177643484057909449112934499431056723844828724109840030646785103083996950475496395949314788875219015289828595973257932472906105613749968514565893666200664914319745097611163003126369071177105761888926291908085316217451105870095736960904114208290479325399595395052751821445160483823490708517557115416766309486845417823807079661400127020024464689196343426588949222461612707147900535844246727998149007978385828241325166329293070061530060213607698199273189033471319912222261744668765190372115759698970733465991586777844811448343292045836926993641588738834477208190816527490267756988212674982733187774628701965816314142241900045259978575711461509585459185790655408101771014333634811729582147461980743700545348764459607443642167231141984446609025758063905226744468693707451737290405253888708958358780195653881038741059495093301968349205265820341688710584966808441107852729059190619979878092432741898945678067004211376684982338167861295919644155695511015448965172028010795533433805519831550926120972120139921664159818218800114551647606771381521798448292303617123395585000787855535879676122895272054724592800195904322714063498501984333474304362500192660506443376328389505391821300583612780075445358624131031778384722938365678267474065788218856569885473553169626272477005806118852281899024367508286667396468954096941609723094620248063576408112091455959203764617973052923275189583768613450474516079078772865081025572959919733880914755692680502159090294573865423555297887969297669462943685162752321856565877556167004445075838686557096458513710097957913782009560717242789079283697359016424947538158217074323036315389206803537825368208091935545883103155895385228051429233014937838948643584267853645383251769846590952624426649883286077440238725236436839711782735091608013111968607221712431851213881087347805759489546511397510870256379398526778245997333863321281918476398131890930387183572455257147187711757518418865884764621365103121960893444246713236456252280661569421234367789403252859249501428313387803169639020647776073920548006320264016471931719017486518351959765327173744672198388600245770768280698938515926065789263602241499421021648086384906737058633732613218322486262962718243346562339993412993149427390311132193386064310263619616483518068566986688652943358694802921427234813193149620440767257276450080673115765860914102733572717152329452580004484927310486327270449924499374982388586309203261445193335919998893931935296878529016078151398396787674424749401002646736058241016921139945596139594998427999995007799029329568326302831201302273656451322922936605356068823133688606992646317484844480692346754302324179192358300644801178668429897630806769405424203385511376500905486083746961764345492015786177524159616609435093824719283718228854560697658656117874491660033004915765367016461754791642945460497720695060418062734854360369292749002831173788968279277352099714173165057476927768330444545954324385101133297915942481347975677038090531636875861265325287444244291719150906980542961162307005489822429073049602722985743384866390600563214944181953705131623993160799847510460091634820115637464012014269142909004465474936007069544668609737901570352800658219462496762208186843345573978103588401653569828575807574222128549423412697829549531159392130024469979605630448271283400457933161300345497882645441558627079855314844661615226752181996495125187749683264071402055404177214806573950746028318649049164743215915027829692574606507783412972521133313896597818483568718535521823901591238466104309845902456054082930618718944397125923532701224430438152455812506299287383136258109206394008313952886352594089040776863533151039526056617406386386404865992001677224424179534915601613043818317101873517278330887788241694259085499107659071018773237040522959443229873308594640433950171464649822509791281236847096480839892801762861273949657812327818382850959956211347364352824399403502670684228757958883159971698636967839079682013551471196136878071923831341879550807204449420618753583829680727454252464236511923404524908685760420673074975516062704278117796368887162757612960170639744342266004188139538324459345566044617194920917539951056104305086245310332463039660673665553599483040775426922493453718196222500088944433468199334778094646568263589744830912037654631803888979532036738110839431951192323051780875531804285073069810497284549994480103097674438918729895823285249488728898448777516620838888159942968990304857662159478957653514198935703048788520435082017020911220423425526968892704490179299874003846517744066943069850871641647841865915272893684299113140679783648596423436663625470639624596723566807352374097064672802137328524446263574522173535459592331827508834457858341965760626105408474865622982551885391686717531704706439426062844877275997598928828059115827799229392259117087270082465410091736810240706962609925727229575695978674085251110064765612436724550946808876804046377849257426382239849025010448233734522282394152895293906417819272056555777166561830981359172099969369547087884921000388410499428078305693589824572163836245600180652840967000670602992178336122805534537382436196284842357765467499629574367066047804587294339445535548836217389406074393097137691059498030417711452229233712742507671318035997028991987295466231811119179734569652877310942616452419347038064077859853156577050659345332224384713291749731346374693616238865198636438714546940996840024047567192874938052835147291582182218669659518678901457839795880754443867621271607875661372905497857648626379420110429371186120247000927333753024088617623217115019844866200458933947924258636700037985608069325568115381901585548351864265582080495297550450796289151375316685317322607648185499799718228180268352721444545812288512864917871015890893747502731597725565904022988016846141272091131238453018498259679259323005134205805299197163719057611623998236741131314336120377447755857081029014166997616736737324911294623508296909827030817822592499746414137355871953099527618335115032685816328893510609030516018158098143382153034313186256576643866458589240532420726970248163775760382508790170966555776292029560448926799833936899794146928414642916405831744332102728192475697134026507802075428078228465875535050716405510252638948405772580941373668645589874079824700022348392525433114497484578103594389737291824538431006720686113587625051398084612463225903297648051911082639870080052092509773190411854998663427008340517615364730775060043535357601844168639270830149644702532785614990789802566704067702665210642881667893145724473963817750172570135884792001278831135218830943324572126100180159004529183112644538832652997699117962651096229669334697447600989502631276808349862910911678369268069231386806493001054978230223472011293090042059381913707264828786510218365394064632383471901383454379035699900984166391726405424614483308484252214199159072776271456276103348302415418949555415022402804185888724967967704125748251118080519044183249468358069915976863750083410705854977003535978581903111357760471415199667877014352125349167064434843862617185186216146769143660346010252748981570172582048024939242227316214553515052053942246132221829217078704579565881538906168404706026566636914189598441101451594957907085128070743814060567127298633259168952783224875411537795793772693402033935697102671616310934937985671528347777185290274862994899454801773893394070039946661897921969406710425926718879230913239110530150848044727598381009715818110590161122638111905868069098019154504358323190755449441753823838616533916567075202283545647271224511222163668750188144070536197663838183291087401789990515362639188294542466317492935638173384605173354004683671127614531633224580136421998725735647443810722516886410029715198948883189764711788056099640756942870220445186298102692603597266969478988608330228333447734128062606878214590403859971302432692623323858875066049239459669890873186835824795706848985232577044719918393854422387219539526982461632053747015433702546737633783368449449681243515722365743485530214976085216869529411127725144743458264168443208605579044821630516558289962425570537672452157899341927500423075459172216755455344568678922860491089983013018249474211037634168792652708758351234882081125964966915960865066134176227239212773847645333646822088552907442162114153210279499904600277585355775981546255121315224913425628810781056869322533864568438989237420010474072042488114148114393944805994768026080009313533032651108992762230943368020819701159269252922619500005620633465608204916353394245259834522479074459044993953000406458947003485116450673201597597174681031932739536543516906029780028080744082149941777606785662081798943401501001689698500787022242360640616972761026204061375495536172632462680316726390422978207102656308938442294683367160218591966791566497433081963409993563903184786092242770700572949588426391887041777329866712495340204130003156082695572668981269634210201311349305813785268496160133300823027806287858425599480088554756256464655703121293645808070256564493999749462898436509805589200159204732561786908860961161752713066425489923869585215518908022157893832415066139976032503241576548902250387238370164755454265703805691296055132715037409755327777938176250537183189096809528680327483487145386128968047577912677355409816165444615092760895603651179958139257094674346104109145485350125609304225012160959048490643590421048668150447456524177965412392809284045002372556394044100687383407851386320273577093247410736541549032836065953917013321569342239034623387245858453789544168314530631101108241709532469649097260574819981599414496409955734163967130211600968060146537565920424440788066050078507949829114469266547629986702577766656348842061121263291692066240198936243710362592750452588758104302220015700911239815527317525573749237943536886348166031136262453412749203350571313001782357565969067067648192523930606650669930355032671628887462244030696920756117360234884937420771978835287279874757278707512912322023998143188537654251110858938610842270894499315223176355288348243847929511406679520626584686144271550045581622294177575320764061079576084310729624410473361412534560640497768405599309728850674017648701111058617919557021412600842180026867485367818810747381579116671448451778073106437563142761808006997598955701675581419982766735727938463739077937888935053027916548730586732955028870820967136082198243196726751366397294834059599132735126246200672882073457803137635668302140854654320239390808136605162078051210110694248194101888794725080798264072953563456851664613628811646111174243977871026304597354355422435113935007145579353933057995769513021911261181910221545012666919537431934842825946724398161216213572272042490954528815217855488416110261182786813471172508558385322968272616535440934695132454079759947924777737985336438577354791876007036005276518258600113868518589456070619648776429172195457256251137136858407982412489387573419325363373454397105820253265825968707714673706648629266202735415262056035771701682595854737638742994976315860217019679399014335985709005694952165744462027248076454853354285739893796583058120760864372770405794657120417007093488302777054556938609024699710196121109240397318862019611285865021151857044927275121584104018005272174072312694137214308076759344534647417905005370932829358413515717540336894240941811617009041541153176489126373635008832520121752052604429870984078575436074679601176977382927453811620862938026478175198552817054335030877111363735800943399541716297671703410055771381368019539399140204056454852294455359194777086631794432335501929902317962710072805428990732284068009951141912828792880481660398522867762240664233590255433633355574637374115959161159044642397127273389440638792188241936775354444148070869372553129556463756103317038666365808793838830160387612558864672320095814814863666820653840444747131782986991808751029614436486815452309985356215034043057575927783912252795016795738584180927210088187268122014324386375323207872108327653473841463712822208449594602013366110976303066301323004723762166476672082825302883723536243381482951371794959911913136597277120044738293340156063678377760978020986570214350757494950280718960550787834404292287194570427935180801598693438983267552289944258665464260805427366124750247905196884729357142387170602683750755529273680234631996744041944452910859484291853458496807524142212850562576557193136462964240434511413579736387511305993537654576273199726766842988992073289714867153511070303198828487177395428151909839009378100624857039494705825644807365066337646162317519445116687593033351247567570958054143315003020573466502671557811172239438498186225703689708830192959316660047480651941099624921058746560311390589510111136998092835480025988357760174242813461222463000048330134626965622468040583407642363429843759328189433460244909398636509144831264892792888807488573070711203493513669255054724764137492864713887671214169129426862541964893317768176486406246910728487750522164394218189610394385557290128285470483451003755095357814197429452902541634573644317032671590111751409267477375206745715915024347942381076209592344160135865516417027663483859276144389486417839343421722892000754095939661652490902416709210674636740669893529454121784967187873305039954090584707403843061141062522381265754494925184912492439937268521350932640333919915832394516018174845346246207391099440307400728924789319477782862077180071459030542237391190247915644592187045180813428030564761889746936838266544116144044594424254848768932981869819022464181716895433374025257860628521825562478455088439318182251932677573184834545110125983857122054561120815754664010044518672844891235794989032978310183143861309993468289924549477810394491223149790355505133049508477930349477395512826254465657131380512207535035729327875299637828764580306814087827458640404587638094973150046538900710182702770302703816138461207432259585358134340003387266885916874884254025675923268697734003944153145185426435648983674768384460860466239073363377081848864448099544683761435553617425743067589988108937430502823117098505142024138503365084433159714346311827155419374693270311199491087786727535375645351964616985165720607058348836568943793795200561042757873724634417922260886419131137642055756178373352683948143942263521039300476218720995786221450923961803522278963720016797449837888628120072161298658450517865205654745897699416848684949759053537783987138848187605757938899293840996218565188022469789053645404693275498801098103216572902412311399435939939109328202354021845654251732666374249763115535803178546472020564160710259030521305084908021723963859946139988372693342667784826323405823522860588956819128133697891568595093653097541029196547568057870932462116476636414693656428130342454514107204295755678779377410855961401469543298761612549554816199556068237805414390338321290476855591622264076314686927474172916574727041239299062104541227655326166266130400835092004661928878335600396515554101534530800551820394229384484205004820327709514059920859202642251915765260184457256696734023248417552826292004031431686024269987937219663270963128901521511116260243090986564926294567586507000144004279159176982957748961110354111800181848026640131181766949225825353800763099123890752805404735756693494685477739878399024919935620713844901021178644560307607425472505079231654095659210258035684219876461153492023583300977389978565934356298083085553911148035353671809340044864849662932271610970697287226305798030989572202600197695525981758498584457722255421608469118667092426749865695832623545212866967212124205190229164970815508509332813851185596394645736229631842605770835059745946610949412323743170624356815925505680157032495408054651936150958249615959063494562950529586530943749907324935553725564107056639257976768154138558781484200940939671093264064883153408483884656199867347620207368006694227580317170058583511449520362324105920831886313856698620648664641697003118046437620321605761429841218038104072580633634039383895810697829464888806097563942773306667363148736289232674873497986858853883081302678061399658389016599104965655260678591995161054003498483785291590746941550201763559248649497532541712085028351056907551513474835698745181967264262351518649039432636003712896039024509286929872074625868226899571513279921536035630760742408606689104466763851964754548002491303137696494311078589659394326294150296208570140683331666536813555896640808014625715554878782369993839820197725466524491287355918741586358345678213141408580386650350840141892938450893829657822220544575419496868111565122109474228971860102683388079657228673531776493126578078821726829949404334266650937452917991206301647307783323713320309165960578310182880695834360649540358532050938200284665202734830334009043110115481332560285713228119461690531145967660254104171427707607588293291943106666248421885770326838266185221298362240175155236235849530437803044899682901518609594077573129325765290998271862834902457877407545614307705460108331389286383343290343599833765020867536403209306810818343731889552977184444965287725192527829850423973426372823739514299092342236566150284811246371644375677539044574730149503591830834054627396432679278349086095673028104346079460654376436946617383889574540551066109049251595641874578996555040523236875058062297691896259538970844796448802254775341321373152253294151059313772298231659237310458180569947299861023915642585226052378643093840043638243915627361169671749288824240310540712465574576252892850416877636877908425195958662403657915885138976966579207883164416550411074752208879647410661057891504020100298189727918315224716749116183211031105639114487127153027513541411588619081285202006732344189490719511853946334905202812074419087390434333212553781948347976025276258993093103802257416826590251722941460640452367231927584360054609039600580579603656676380127694908268240123012166673306882359915896952794540951637456249770972173807773011815837802065820536214540199109326605493158850610333946468720342305508986005301209016656957551003644853319134579989834647676428681579982698753219995170977485199581233391589608168696047754385984641732674553930486196914312801329537956076472250686554788725482032614422586215206924388801094197513517087541322241318990026808733208988497495781603860827978337133109832637571956028142054293458452283603780173563763787460548974750484847106684203047896890473809243936261004066513810817037126735916549331664770659109303914213525047443466627957928104712832627461204965163170738001301984058664221287319900075438886808777636377105537277555641047921348968015324004027293495070992963806087004800578489798857116110869233544112437517762092353969580956737412100132750919409452028473110267414482170351038368176681562647781360229592148447608724261793772089622955607781980758414577077027588741399262496549934861818105989192441593856652280816533692658132763524155618904491330335997573471160159797399459419383177114783231706997459502231828275915055973606342249521708182070518632310309110375839206422359621785039666731741886710181564424905787016914779369395496667799936417351939184409345582967576965658695095716620665319248950090028123976274103998361860012827021620761349814119649574872116781141549929281655397570611903308812056829005114933386520609810958847104888709369377762235259247316014150868399276685251651042002403000871229064124058532556882395712199035299181780978400326456917991604620912637587321295693116386396723579174260336419270668625914480352827862282875531965597690090266679177112173089600865754836658373000233642548117702907064652528275559821941446904936179499620550426718713332759989684321612945050170824477139815470930620800535781044663136684877729917228532122319848275688650154168558526289509195596700485425559021597710316799886383779379612006132237896058316929729697949650652089803079385634532469039018802921337654764213776542320771683592491118628301294885144316083064846264535541921353762643264387161558501314269694664166949128958034246442173537993478326441619355332090482830145134946283126798599029683143508133414623842236531343128605524287651893000371151451035155635683013924827575972851839238181544409189745221939473275642212769088165529086480812623057392185822328406324792939057565590575590518089100666204092068467787164837715974481182846180996646499834690826639467609090600441281155202934102615264947870989123358313641355181137424458261519239009635991514795121564189687635722807702364074922261887006809603084734977474890554481880945643415495996592636360837726936152377448931745369748226705196387817413403007642426275027170158226085920367707972157066305835190139721429617616655404655146109559859620058366934421531406137024465371530324033350141116796174873299605191558378540682780892303448778687684982269190806100987006241499059297905286417293726379231523356125225951205156729932517843178761521021485511592966329258816426731858733224358367989757145744856973702303771185881799265929070683488520998975167676011215996767061070908253862733754511524383923166793567471486932065618714569709798221681193383072236685476784153166886158036182346658277219921330759616085251519709237671256285898880665579284589199118429743588753473228666818355491940406530031012250487820788611722258520867666776490941272891946891677167695221228731648211192662526955643435239160654246830238244273667304922425816162775014244170508052252375220965335567912048502569822862754956045717362986827357708118962338584219910414206183145357834191596612480928139611774695774011261557491963072090539049311292938912755580306441233430876343432415373172271000345634015618688735919766205850094489302292975874952508616712617586043857923702434277155427415276355152917551045169741105472727870230382502642198356238358182810887726291722365803203861187123901749694231836939379581150802347153507208933824652735742427869917932820647254656469627967650087485007171823339771727596037991127106333224609482651838011503967609001819866302194728126687270117959384511450455856311550326666879345795035478158438299584467422956974523742818324734952296664481542521222295718818124618736683694561262626949895705407503356120050243023022302825018555074988520061902859365762040553733952679038481293414313738980836744611975866575856815442092982794208221212176098129327511339869362962292146569939388406223750849435504859682127037411175524041056675923198960891548904366063138786105812119628118001412950178387869176699247257994172832807085585111217440593012986763416045060771751452294072535420611628445745190002390568431719530646849788975948985825911594117694060555153398223187704620854026213867692128274347933424512507138559313538036346756390805111994704470637582712529772085310598114211507517182732974284017608807020223345489007273182923216110781001567709177336159550894944959089412964726618616902408748824623673281796230481904665105410035586777088976824296969261761072025519217940350853823386924121421301961505685035633731865863659199437295140881603540265242101397474781659671626403697849680651879019736277275092228136441330179974900709344769283508967297446764045166024147962893044341511370084496245109327438777004818737207588974615072368947927448672370195166986226592839725220696120430061401294621351006311957313352380844596457116175162513489100188296853367643234262359477887075935329823299790052534146307135331072914688749628809743852771660540487812034645443095114626638719702829061270093769086270083579608066281771954335373341917905159459713992766443697996461768347214162213851266428333373427094531032028961733285482598798210369944533913106109247294740860791903348400636822593296795881874498524266283447969602777778275530237689046538800025035148828058639581897347547260770975769415589766362451218140527744545929848648704931240648489322113336209376248598899394934388053103078192008729971827697450326667449558677115544689454536010246837972293911749134330216324252222397303684807186752896094812319574908372698737238940983867618870667231590084194517763105641485620060157610448790026492456558057482432140589154500621600198919959770156540695037212004737626588723654472334396670271821489820864412925942686368162450960702607661190940189821641568319100242907490733950270143053127015719355377834272189438337003432168562109688793165627761966839462864304450980313833501399755788333725903165186556928701694658150529780069757922569775790940747339586773525609736159930372412144513850959895752108977062011690990316658102681435844692774208809734921561480387172483124341397537539570276189615974432867930930539730857811049271554045524940126929195487499556285673836749035864342396512817963110951755149125562718645240770200021488095456058317698849630357786099803710019685310792632841316299291718187158279700215461323490406026261738626492650666578631343093762173871523812636258521314939619634710234096846376692601238237554404764118984197887573566586521515246115680965422543054720494701636624776855392541720330203375552536898629881249231208631723718362554463685485345782164368619513293583763012846166047626227600878827442589459028435303120578477564014586771483949007156321991179103443006831646737022161999393388281144910690994685166676061650891384411935483763976610321204214195496798367194536661379727302709350160101612522497486737609224211215146453001490644356928604550503866313040976779743133273342344573964345825282570487430665802029864892788234820704464739620738953482790678243819145080966735909738587005396761757938949620465513871999681359569551858424092081927167611031904971218344514085393013086654223497739608330158331917581688840887822344631872974753466104584196960036219632631344876799220541997053273026440536686635116834245669456831002630633210001910499185885326734293105239132975197163703990770375636206601091355320335172159039426050570760341787189631077904823825554600906391176511944653109559110387737265272804619946942648069992636841668854602489738206076051316395515963471003412768034378481780987236977472603259200730106946828559555525085683139381100584018348380610151149691229315656549021631951450952872303622461502645315927424362096911236059029758837038222977473297971087779782733589137793667210791192994908046136932850117199967174360557576590314146294398258966902516343812289085472534472123202101680080257338284565650913230586671616717286888811221552335308090022847739009801054679532688631453699991280540034078844230340525047916396925180442854583809314971817029077492735282620307786856181818018563034964875310575321034099656154052492710239741607278484849231543420917663339407832872179191839969420737757324953407937779634291638287933114296638176313581288650813948931956510430301815987861626633196647550073816806083550012590546363806545055699035810591315100117994959175317867146240149103810781720931192047279138665044419113862861956303309058498757408644351692991323176172648392891572800253542315400287905673429209944073403115793667968350996471786761504709376264118295171250662682129354569187674781588934337787049260692115310957391055940958962048135422185567705956577270541707791377597569582416255559449550674846594593191724659037546248292769812575931330004924458877645589442090397376633852227493657723101452300043874197131741963275878660396680965136563376622864131077925936141349865835234390011825095647135892857121544829040628862032451451298939633460278959722188659167835202228359270445854945134554278098684555713182896200930833323041173435402045780107907570830729693350620987964180916214844065777194608529274847357651824609384887508547461106598453153507951327272379496585567290034141351060088079379169597835736924228400171024669766460581151918560260088177423907734443983497872084412593384688781948748803412882001036858400129546649828597427848552517062385444498106080754179164918113900702567634902644036548549351120173564410193773731898881737140619786825687928848895950605965258544307908381950744189526027994213632880450694434748141321427957632518819130675797910091404685183486729564290683717732635486572930608652617004957240206562291466496940476334899254749660616814833413925114370570327242486925101918414170110873694824430306014822012561100271539043039908242459387169595159234598647140661340208404818915731015649457221303124021131165037545197828504218469102748583434301304392897082457081947980014149079573495916357142478330397334169530480292603006765437316888891447600770364097973872387961498399205932967425856976719453756463637529967893117671706351709918460046346599275218671952102341536137402908795011182880408402025112452906931844168635451318642725803491327368812133116776919598564524704789570150201396755779447298535528723091308667768542393957757063934699579449853754537870293656552395300662134583413783986950290733789882925344096753557658509498116206545385477595787892109366947311349573877441386465432202821530208891024123543486603510874990928804407015245526569701470872383745862196438593660338752724789288869753596810459703064885428852469491792924022771521697519922067747885198771051250424715422089568286707098097418183946540093685032517427332474480231748696184401576040407212725194432050366584803453443962716787187780687452507259107274274666927260958300607772945303430297138012670674441821672926503662147672064018360563395162060276459592820470826579373551042431687726374450710016960958244892398175583576747388665401913826779993089661057349581888250402879907179533719727466520603620322021900312634580761293142449111465832436807830607344058198355198158861654388718370903647461856663134646556985444607251467993967770649376893236029112454426173335132532501979943102660493500250276575013175786159295085470370360939058403224504953357987723690630275781881904012818148861063905231680194489528245875475995254681602002525244209498159456442341876372031274589458306867724853552747322557708453077702759597234618784447167751158476791904403312060101828037139647014072545287953747398030765896553528036940547340447617395458569343117569678579122790778167528331894325826903644238536444118421561314036178072616700225118481435186851744900097701751915391368498246449420278957277286138087965606655352375742385743107687465559916527952875057546397541088915995171342195193508222245259536697491155647918447344650256703480448525475637412409418130479185112036592433854273076118721439238336593366806121523884708638149397349020623936646072040538217512963247326433035919527096910216815799335037488861466414616331322064398252790745237853928187943221959954829732720740147221978202600460925570461158462459832753872200508484248606935160559512224812343462278518105358745565352934605204542784628625625980202016298540810899272280018595014475041436235687351947029835528169551155270812795088677321815317942923261244350380954705944148974408603032836887073759635217864842753636385903175284161256229851612886735343247916601686074982563464523570543265995146262600558063719394822880424760712593005153069126970362250425004167669578443278791503834398017665969072750504666127398934738217534866684145480899842979011162456716361025425522700823389558860877770580770179885824961225098784361161010416826218091424210416448549128135456140571548144206797586709829471499341696494165148524171987216605672118962243797403366355256196313673509006961190531941657927600947242471512698177060631132946278268657117730657066945748559048941741573377327079574279541749870560724419905859373043057368941413649743937238847858592465489110158563046881579443908980395525980927021326738040475738719877359975305268863282946815688165917835004074448242755661457217699157507884918956989455145261935496262731233962738261240525309396813609281614078895129757191267033482248402265193307268889425832972248560759749998560456885003918121218876013166599168825124612792432111885197474894808779245596349601568616670142432423179143169232740703973333422358206335087114267863118939459457731876875802135204903038407333002455128402818943846192668959250180253064654836071351418133788181884769685126704888412242862783131058584485049257591805078578912435905462447009251379142265694749150591526599004624100361728654266402472771774149071167853690429929776733486576762319046836888094241820356221356237309219089688679949338012921627506532709692399437232449446239891498675946207242215171817819221860663344958750103902970642009553055847429285000681977899556398448228123344019755070208453487568230945596286507419701178783443946447285341281866607175536108755235908255482778259662789880119749441857810010008612697069906248750552374297643268586465495466707053263049079330952757976811544137779502119415419873379966381545854788027712589452493932806056412877780934065181539840717835480827146082504904348378115014748829761594825673278617797011468528703321173778827259455432345590586876843854955121029812090322211477945533324903317273921417913466788875919182517495588129005990441963760384503663110967298668952924691513419114721070765586646756884175700795734949016919378219834083563359194513731266299303454501607583422933231064471962691756048879767927469514312005209346236743816761297547835493345000194980949335998004434718814397096999287082985667668368674553060463951331229759985664774805609721916523705736736881568888832466410297610180061106538892057467345841865758987474721649650371761270877681303984826347620944063026018046242812041063572161727478718368365123112198944266471348618625756156650379885479346314846762470030365453394861439991948012482787497942032396539349480856243661637197906229666516598554728346418587681764974647419583691736515217180792456937254232543161586921763797280342702734726948042835841386452557057357288312695870138073105720270101051631204615628706436583613802411744836419345887765150317161362571145923950107405839399169761488142968783980932880237183156413643321593339675459743820742021545935238974524039641521891667614232630448765374735799446335528156115121090592562378344375894823434965316378117690280061830848211046844682160392881565601203185078250287724200089124421141655179738462638062758291878253710204494694453262946282916542373938591503616062895027408214812309121039287264196882474881290660117035127707008226468457404710194097122773003596664138339274596695431406061877234072986632175487313924782893661264882825287095099850628984050918028880264203294480346736763642163779888145949214655114369416634812875279430729024288983328965571789596049314532417244946942718461810954895056994843987866993357734489369310558238429533226412420139773398672058420690558831163746873742892887688826725167617722431740503077981580069521584625425096707010497172512166467590173077402750823781060615181276326519758467226153234438477627582148226771996333280334266910798460384795937595167520553358249576312336697152716498970294046576936449089789877729146065179332921580301710884834617395405224002605953820522554290557872054275642653651912839411565541441589594688791438692663206029311788190571253781291737041858075283464511620638234715758229911339647266688915383350833933831823413444135478054593646111089492067937577351923053147483566287319350191309366205755593364377693438537754615965346897722268013654688587976736295437659100435868069999017090424229127442876572279370295204925756727297124523960305686118589634910511747028834573617162152086042116763384638823521275733988449995443718587301500145134697457618691762676250576188249161001043757952890860709018699735353013523264935256273919023090049363001473285316164461013358071449804128537648752620424645630592208872145869183998605276655523440375869758344001671959658670895371003100170229782805997183910939333047576353599759441582610469530631351140740781517741513981411563912170354441274516997856526326961467594454667560712856291318096281771955169431301425749690900916079387849931598852604252935525302405218065009383287796461539142192450585043827695011132504898618929353765992565802087261340992875192093404292638577279815473942260595842586596816660777584956150264705716784039631574522041474890874498655826273846049328570494451216970464240312840808985513105847197563549513058261638606794000512996713125305600223141443470601653829905409745693426433315403817407816577613910690158807519452643803609993144044885208508443488623761080971257300553603510196658296364064622905217838515510300573760112148010448500180233485220256043340465602516012410061004899918445955053586110136833386000952914420520648552902380782151997583183299786764367979291129772647233279237574100518536979390692376753589388913476819250335525851917112495557179629042572861144766036947925894381506851602517892971306444186026450638945543305482056004664487326135588888873038567005332181531699005034106908296494623136282301243661027340383057193880513343530404300183882983647098615481625066507834052898780376727172939969344253476146656533672235990967760763300872677100990073725462985204487911484538086921119640418661973950908177045327596946328042806681828645478184051689718068396571472527250958003388223361157045713576089791923899558836482747380188612357393319143913491502584320307808360261316444930596666867573375201837699628653926213318448744672075611141805708471736503618432077396687846350003800195913643282698182770674825113186301278564720877818382929735525539857955615582620425018157428348003414598462540364083642620415600878406284800835691702277835221058237096832762901138099081839520127205148144430066364947815153941105345082448983318723868346923452401953253682731841329717542272027732352278588316788320448696691488572972392492925541847156567999843671356788472337764428794284413646027088866787693425550887163471217858369569810866642748968346409532597094568284988255227806291686370605503746875126812151735747589661097944910208852332468559346853417212522703240974445933179220505640468226015316864886064655011245356148229792975613098563702472933398212254558509648619234638187417075175296963196197854089822199152332358924504628498748023997728279685701531128837942109452836035961461230798099201740226108247862022491388708592823480620092081626243215981499245488745145541945222444337779093284653321388917485056649656470000250023230438885595100484026955961244654238041635410153883275648975709624068464885336214532787477374352802675288707352758336828594120294219037638184778177045526440835330503434943691983740933098763661105358886371271579019269809083392025811666140773162628502723628903123191290156127261261280293161231297381118242831457119732114331895661170111285224865504517280732222693343330623408922622202350781093380693451808644307551884148006572100223382231721233277883915696769264998848114444322529126375104035232141573553992972503173617494743520832208805725212049443960880108401991091126445136593848738974006356665794703479020377340753403162489372335179499331795957483074263652117322625863705330333571731909529463202578877362348720200186365163515150777745286618706649181186789820087343822652090119447961461143509365613600170450340258798957902650457646767150185350154962166509582902585252080542001983774778382989686075796741506337245172948867221739808005538159466929179721725637321311899769358934325249341972162038526239623334942175559898180826647817096649382365309262039545578878689321730629274011538061357473302230388193236416952546123438661276790577685907120226939840746974296390949927988014596399935940629507790615243392107115749345321243810945119698533578938173727473691470548012140834173437836744319954343015659582883466369259603541126692581399069071767526700438585392891953937537455428564596591572987092176081669209491179565221888517413078277697349885897986465926437541750110484813954414858089325342970575916997056439691257277802604693650338860622314619671096150720391512983379217024870885280233467741102284199055149631029871989029435507429508519460612928354836119405743757782481807016915508853706380642789078886357536223024434504572008458381078451081514055614245549589567644548203837860571560412372384858048368750143365378873496390788553542308126735177524556491644678814035105671327612114824248950499778287584020902784104899272236638229486959032721223198316549608607748084448759783143420949470841203756495903113786680339821830162788694778009030918207620741411911799907376927821291743608716168103213175723993778506442934052175657765228208742267361575525372397286827430132450402473561503865813848129375960984522518611755566809024474240996247530691111612434188234847584184514518699648111223754668613441126466763000762517586680912765063768373192803336689075135316383012547007637755514805287248132291400547466161505566333555953459851092852293585860814105641737399419383022697611164320844908561454486000621094220207795730981288702979237533524299665029991834328293028646447555683057241508856682685100522143611778212237206331206623875692757804632827992786259843393390195786439499956055316959999815041187057302253219519090270634978556134477399045115065427603587987955027467416171951173867482371302319195599372790244463917035392830936564271848060020328783299623802788979335355834167272962782434005941496209849522313867164341085075686483253250157454633973279133620204330185611326052369354549724564094005486596356587859978646877306341336302465635937300256406024945943058341756572353309566283471210353851755716076622894840657433217760871413348845825110683755289036507506800887313621828675266376799067388838216813354237087978614870915865518934900965278379318418399271368449420956116424456834854247564162790202061514364543588560979942882522826266014289896154789157993281595745043938489369498151061741365718101793683082683982593573570138656695551984435885235781548943254593635261379854751535182503289242139413619514344543310664427727965203439377794040909360361515816283645049968128511065702289279234858083798156436747480199063389428889117391620487496661416971092013392554749611371467048217280303894060063040455026498267781613560549217448558247256138731968072419984957002739459643989758919662193282355922469361026754421053666886349008801868854630009904174283576446025459997548271605631979943824802517359633983461857200839613309245927360379371405446138618472306307479939132353841701713017845595460578964167487252104401090751760838673314251551473890386600515212296712920860064900382382961785591595171822242801978818129733662810043392739017226957773806398201479241696804145474364467500992096147432177907570666884907211699212437915765163801255440366581514955886922423924322967453535902361224370729818602894228802140106667176709290203485400818499654049730746083113601678717854834270543864704614469931098323086901481082016613370815553474433583511069340330786345889553564434813608498612555876844914765240581779684664801454520910192853193635048429201817446637812474705515670653870115006095000516027621271118506745998053521767109993785673232813435403016542364045479463246260063618016852262361046246972406200079563236221967956551496903641950356466079326198283863229737361469203525010859824108546597988302271305299173356981659678849302465052732388065521221583300690074515339969203524050887573488196533206780409935890585698893783241963139708633266805182873730135103668462271950415047313316531472114393748771183810493396388415618605963270577148393826187052586067855501513551636212380828446858507900661560886697898067120232538054140602942308831103114876975527880110757360091502649046773267089266379154163230966000808789633703507939388147097333071926241789881658519910510332523282220105687406565425731541786464833279950384642084361909766019585905071760527246855980444364733020053510711895126798340675628714686192095955685303508015967954546937163203497972018817412337950961973678854888445717107721521710085339273833595129227641026494503035150049667082030616464117331627829689883875952696723577798583074974867009399080635031145380411644126906584981106919225777640446701367097275893048030799661650104161894060732076791714610873393199548959856998504648567064673678529952895739646128671625050083962123057943668053435728813449665934412500763870490094226719404723922296048705967615690771882357872209482134506722012394473146906319480830422064411624570327707557197995900740309475043966305353762551058071390658553448516012764344396422149660746742541999184151934875842547472948020957475829030893729271468889047597275530632115595251164986703685610193305031965398607269655475236295139561898463597495922118375576845070267976616228616908674564180739780525813991493404380952143675758663993488204264867893880971753670774338132257173280001935166333710848888734313254963162247042091778772668686715821837407212006663747918909897469491862276189965719138990208031121895928006242441126030303941298928734662114863536802446507704978875562659743826841241878588198549053565826938474071340795754460829646673140491921737065504150587866372568401145987801366910767974447119362106731398727641886824879649635859019428754157777171829414881439851838054293512091657460665042946270313314490157241578409563813412078701948102174137280397027747883374833933620652673377197111586851495014440789446638263048114408049508565461885252838215194620885943593138756485758185378838943570234363060407938469065208599794844133570234144723993559278764338320765979683664897751432340851491148560173255696207254657892465545922601450059546456113955336195185989542120544842347558252014486526326091229512719750707965387997682367901191736813282071273512173017590473241468800299046912571199193467623243805155337614399128835250128450697559486612655394729353160163972286325214151169896423033852747879618524515728712784546931214384287171358967865006364119561270679028425857257600477329896751583287847375154700154487075242362133176620799558803367887914060094752279345638048479164607379266327280352490152872334738290877285702543610126562838760323132701075810604030590076730149130203407460859495407693487372566919730166151960053676359599067282079540107128363551754939580124813502596360689870895849935187405963398881789763364162907208609724604120281144843677442960183788086991874935985809911363648384145316831886550088656028886765424027602377066029831495088858267584716404430605014791851105060919797632402964185395860637038269030187596064285863513221207085106134520306313226692646456144341556020882798305392864119084890894386266382547723187226806941101238081394476423384633914907879004797040649910593763828308144767814784112266014699605162209937855999173035330677170595692691051576686582009667308324461076344316084887767142055211901820178724504563619484900383533509263722443538202596824366824928325373941741894443302921020842371660795149616390803685189432625921283020445749359886918236130008715485850480218102010427481768050815240264675559175542851177568984051227808061115857313554906760296003932499636176051918870776138793020995765396864519762631986537787378897657112303828000813858466676121878101575897320429135483094157890663341367795171316264402001806063869515599660758893931877417847627977324183668050678724930416551149949345623899279956375585938892627971053708955218049048745212669746821458402330264705887893644405923154716026848938953330499532700675017153365019507665058810767624668379245581599750492946511606647216630817229756146652304545619030981996062891371062712640618367171984832399454481967998562029418442594757069738900964337310679134479896244330868244934948433163284785173477336308340056833761808947398121477534530025810101852243747658896505582348034845128188860626206510566823852015758448458399526501389991560773220534433296122571109526014798927522925396020231768120744704939031392793277786388337845553985944349489316448657680138929968260186354062806357718452409061956010164533613993600387308262345219990044342064725380653560805985196149652504732029513945142513827988593664855789488181122795065639029869045308323615183639366768015822149080096833417951608637290149648169665093315628436152707212594367088448886387209518844230748250092298074726947431071274772674242039085393979034945085604895802674277924130535671371707546971121402381665716733336922521217577462181570908485760455335793208662124044996824539685212290455694700385118753595706412981002442133769826553603775842413050916677773770045187349835905592110898347440828635674935041553058196228110987305488091905592836361357859243043608740329528234496938955448888970678870012725498893368760386051038559615017623808943600551723624307034654898534094198847623497504972167419988192867391080179727892707948831919993779289321425688550033101711536402591244750340997006533380976523992594047540908171200788446022256795988644102528017490627700063572267337909141899716400547860525591785233723149317755665575859336523288769217509684137252754951138543412531832020693852362248835746100575907583663407039418290203217549219476703821906936634480507026255633449993322370207259832854826580751377119788358716479217622144288585619535418033948944657002082592444615922892978019225629707327798681671992781508383325472707910904725537841887333087129269580328826364355111541125742202433796312294429701323364109940977027053078365656613107770416511180736867714540704218389125217193808866882771631926456172429393463052045956025419229314581879857629925185062556636024769591101964246175782604418788084839572148192897890610977206717248923084088498435941284807632924930236520152874151330951375443556080948709275062372194798714024077495543528732259409671953667226853774408450769461245971879413735204011391180856090989339996146259305911063940440720236265867629327429149668570924207535739650993790646758034841356875272529621460713633559875405417006583556025757189477493294219147350289650718145135950251817808313502902517068219992418977090701778905046847804728621430789954235598886223201945660571003620960895642909411227703325402465020139664757127667994989567704151266632591718329702954564199243464932366572176347906866284133603802701439701151407529493111509965961634956204039628046596940774791924800476974574042351423251351686319499113977615163267713700725874545626245275530700684456063564158521133942891854715097868245862133325186786657878902571271646352651002234680734323606455150045281357794848082320549583445996630471247101408468784778467904368024624312957725556071221145692424981294013771645777862426165937101776342860545931180692946497785704764501749556793349064337368685036108743138728798791577750062491424660372190811558279425572096735623590484713685999296095026055343162968720565001797776874139549482940271366989955494968049826601244266771042219067679756468025741819223000229328801532090929404238048269537909225947377154515752779662514155697151424049940891192236980444811591269380589070620359148953395406462934681215778451520730788477951618798261451998174428491994498951026165381938571955008387220148185669460515450394170616979982743873920373149389207552816765092741661725007065969481964066400881778891340538296582069097427038073847948512244710014979940736657714915602290831368063218646846920679847832519604611392704536816248908287266774658065307108643912717290552035776951031929549443310779553566311882087237355763888838922698937670568091218533355366198482833399641471255287417541080034263182765025316235561706040160329091000689318888031251815506693709546217853248755513632335444005054613161034295988590023280739484516857121846557427358888965453979422022116557257684407968162266216179059613170630188652437699312684452597611782047900245946820220896957352860709308372098073847296692853065525620947168615215015067272498311026198541500348938476280054421879981953212250883751708629853721574383623936721403508387159714133722453834176937790239771477517325736315820560299658148192957332602142614645985154281531494174984934156738358552244697607715121524699461216326806805763224737679959964682854192253681530226702878016780127862744154528135568726665442098907867621170726937453129625082904059614701475117197687964272755938215457630915383173109369689228308412261627854695540758512087926490886638975488433887723686455373572498250218520903804876152468739433498241607650333480045598945485981383882656314580887964733280076935634613790701501942114156700360094496697100393041581492229486006591334799019834834916018256163659882586597629616965446308634407127611956527489283480001037540802164435085710605895532711141013081621440724148403050554714589504544338047417835061854851105432497642853279843803910725406568740107194040810463680830631639322051028131281246144809228363228588413669055198214201950706462755830964018795906361273511764909947333917799419520272066821469334399155053818322089408691065350229701794302707108625658668767834632164985989834409898886032448197975498008119598260831187407665209725754387622595730929292713368560262167679735095898312118239777393192902480077026182067602759935052167965236883456531210460136372091910566543823738733417653800777380716038997858925724012137298234024415698706095874240474360137441287688419672490887541939148806647538710519270519560056091645873575776803881055969127610816990589488727587063608857382723067654288198977227053688113658018150800903179824853100258101088935606484238565926490444885863029202044958185406086807928283880810398269448931454095144746874311299987301345078235919472321414589063336551377653023426861508791164927744706959854900913100297547620928299313373453969503857343290317330683230137666804178039040113701763269728548007294523309740035413411396215309442174213022897693574562735371164329891545132987775420707731381898484741826670224852279217241547264500062859886060882707434517982714060679949862002873932742747029996105310659149748638039604041993265618508930503972593174456906068159458259876287784409220067340335973967672154913132475208730475312443405362018819458468501125497537775490687387222479534008641031305928802171907446958745138201121585627133858049001719745855549169233755139035056456920317063523724930979405271939471166846627138104038517301049161992935205100399321290557887989426036166983493829769797235068134975205492603036604438913493372197951572488812205820149866630713442615254505508980206604751835604079863073927025854784788382483101780560814947169571540071018409293519483719043656623363864120599174935094097863412226860308414820058587546879422014118966189788531301371964676780433058051487210971513566995499575900434846892146031535836771081049268952729098422960347518269652051240895763089864858775832269307046955336744097703193189920796058625277896654364930182075493542789703279349588265933006153909614929470933237010173858522743262581711749597141417051428455337081489355548973873063952283460889379122959451892450291237840101959625277909924193434903953194543094755822046604704505045766240901310534375308752550322334176785848910956735824756559459576687695709894260461310226602727518296932818787079555525029100535780541620804327474477682589758858008573743125428542644250803232566472301023864470480655962669305043317420478100149769256795194065072597356914159921550104237327850612725149476319949554703342709295780012110939133420372967423474631844083217090451973888617057901605516388810343750508194936445532085026046451470597062559608064968908590613791363927685598183212055138775813013360929592897754671963986257544105671124432369237948783535615137591329232637191928782005090184378030590113864179670460166795755970932908368322522478140105033020356869518168939257136086266024240683573099737298458835600102195081250142784752847702645133129203935577900769782831892399442392674955404290168900626815340157632503613372505984146405221587079253508340647200705834119602973441646320935353257173836601040625018561024955811174562416360024641631951815918505561357333915913510198961458182902608370737826054834469356073688431367454912907235602001887740751263284613528535544872211090292415451209961539399136704428802216535265023278754289484451764002360875995435802246932817629318524330947995691228620608083321524801810561921827719785955848092445470782602160724941226105679715641908318589952022847275842974019407964782429308957465985431185811378967526437138979046596062333209075957151586597910321898011054150400152140796577040953062899807376337127405536672336743471272634917276323431653776653940937300911365563714685089238791764386313065462916860212093555833240749880504225306780820841610886466688239062053401206703660933496194104326236203247157184531645479999123527599735096403652505746046197294886546389706323933847502929869810094444357044982774392113731451850977797788633067855579156468774853800654626558723916761693409683807075818468659661784922678677551155757700046845172755247531708955123429097826286698494210506965613269490325428097630968581441648812548098519398718318802988770138928632904928030869071700899563083803168574897298042451376802497429454266554820297809384778713347445051188991483516146684178389236234114976036684174539509162050158657981494194603172590814832910565161660418366114335382121836733366430530736756894600665419071879546903339204564242638023862276392800156733125925549542424459835997003359773850264260102761736337006865419727588637467430167849566362180186649267195360862238452839420425006527137958291953270510311493109035063271957040439915980728798655731897415980837826021708364988639702027835419780404008512288555784632833903483217712756405450688303176893761747817420307045851655239688759563873974108488564846445763836901173228119530529606643432686147333734460431561842400609065030453654664028416917208189865269557551436202868044405929999985924469683264587460100209814121770776468098350872591420713584284151102282032110018062141952348525067718776548220707910279986679699075474734514189002432665338595948328684269153923938323597471176352500726708660265098179492781379367548185883903764815439946636662089427882975311560571428615800666459496566390118981566575006303776079930263029454047343248615282694880741930790476137481088588090766434481410148624768783786255034271546077666000479101296360223143108029056012583946247626550939281586551783170505044342088966868657573793760457825868546965801553770337282916772201378004064160772195088481352881418500746456135334653481378258568717556468544930238228405469977058696984622677366979028072700867781293130737939859388394251480159188037542626929594271337423915348661938310671034050424501490256881006180838826414401020539218552183109859483833653930696376973681633524950193116898741495014011764884301022461166219478319010735140175359308844376766378799675947766915017954298659170628257614127714778091188109995152730870624681809126250543452467013695209711342638214307857731742882361764262548602049312564132531054308231025205852543524070379403449587129773454415319045253842044501931629676470835738818971464157834012222916388321947633290754260944801827341481402099241755137935168534246599937858225030488681910763860555013371017575600834737615768985370392218892961078212990007341723629909420621475576888032352185957732858562944666489897679190417126162796452534343102401882003667275550923183179560555925500335864369234125356435162955159462653349610879413204347346670410694384748598909885181992361855744201153926056542543138828002646183075856430938228390741617826436800605190116093353105795008253492518996618009501596039863889080923248557064432443158078598068023673022640150028291826058716616649942442538374088646666839426547134572720319499363503351637622614237749756587242277741413582309947722283815450703662567769032482649151881746486868218288686440949175183874804093287947700538716020722367810524934996637738595544754947024295619762186770104392771942097791599623796289835710547462662092787237833044441364419072198084776416288876197019418353979275624255438339219445361684998852977503889271662799230506550734096007238342025749187039816917251862857482426786371219169395757730284981453905745297700970016282209448773062427780165551926695345002231098333865797215675158270549281924644696178079292711857576066604428698652236284949958362438870133495189558917215199006799279089928513450480674165569850024124591453652663611714832817508079131209308551591069427855840347153670331662753293296159301202553554386132709201474228701775157591719488153205492382269515106910507955463980069359155816075618957136578311738259673678695643556499762768172974857366795866047524382388829010728250112927324013907514184479434834760623332818992985961621571564834619636143703950148324940948435212446883791196520516202453413825367339936471960481630591429059649553572689684922770362831574138024626036795313033996291065540186768046950161502844904634024417289046457509630566453089272036761523869075365221776365355620434217551220194384655199258418196088530182590073090245258988432283347297239017054070213437415947590608967553977226996292901940089556841108382006059582318518043428608032972978541913057923935880105779294768438889888580189971478509987296538996322856833567922651157809084144149528713501051994160767891329545407360299465963677608502632387036738124132162428815714634497593015963015022552899206996918279865485727539951660947414468087422849615826515056679867911539797407931214594207355285282442825049241336654055668966601717894046420605559706000011162653604002184202136201725540351600528164798058803947107980787903484778801316957550453070365339952790035971081992691664990960498640256139070493554736926895942341190506675918900265404429646981824968949360769770139089520691097849149744640538338170490024777440883524522406362666348817975674671354674752322492434354124400548879213779997350989488593712809797943131860850595722671496429569000539606274318168621912069186895472942399779451254059041169026526909524624178054232604592301228305500208967154877562264345823419302084127914510452028309556748221841443528405375699790098058420946794813653657804302127906779019015143565109426699884021455969114268304811847946038040190910110611314176571876016295772000990935094590593531572185175155798407904132578532122559194372115513445606404243229804053917603166023693395906334963821122738750471141320740725538197238289933667091369706857865818990132438071176664660791189194749917669834362428540035978360952990880742473016725540999040832984548565518181794408308651155245060063260473267400553779174804876854814710504433982174376379241036174783575217151495224385983147284760484140362763292760091271130712059238456027565023560047811496440126594452891365287164462171627388745555571756746267377209441142283328388965875977887277116394606206766438133289013922688675354387731460611995101898179152219859888988230860187213841525483470187168272789961171134807418381117343588699726877587044724053289482562001419558456720753053860242731808819185126877408190637921827169818556234714270602766281860619964210548200475269586592636493712947389389886286433421395157973942496770068898411691182656379405184093263644680298279903882799200612140968190396640537395790194318946358824283402607439444057735529173862962452322221345477355734976636725464891952487461093684706900800268225332263299392858211372361754918268186072945568208207688841790444630419670790419699246859193607179355507785724833670940346726190397455338111784656068619951609143848733309724780109248560430967241063893376091605065257835723483514311472082616310400666986478849002864818966454731380806154416146571493413808395805404749426154065114038304049814412125983004568954813723276000320161264433957173738570535220209310815696213993710149712805482430879414474358525239463537473217660000592905157717374779465121730475974830395620294432234946412730540551003498335909149470542467579633979725365057268376800339120873028182550265829235962785993186473558107970121128506554501025081278218349312606021294480408829917493529426239521984899644101360283778512056549262063902370918399596388313678581847643854073961228020745962163470208270763880967387546735047048747597449866269001998018507882875899903392465298098268013448174683284988864097042754127359778010494892887355003894938240608104558604965313848346819915687043295405941363973500216278205468268942628689352425951537694436215224860150779337006205404487252048731984463190338879860757918116331395372251202071344069724421536370238073023060008627713041642371363479041249198995386270718495656629523712066693125797731961631165622911214687393542851726520623803318619869600150537078320897913938190153199413811425558010886688572169859142958599549084608860145003704375605839583052703566753406433621062714544016026213950000813025261530769731533788815521707912084859373886536777709341974168331307942506702239524819807829745252263512935863115913383728424572086191938976049315033363774219422223206767895490193492386204088466302876306393742119836047284287106179375328281326100386383382613650800030526168572016089263979564328787943797288083512891383263726406197199111836574552501505187626894624001154432516213268660446420906471954968461532203701930839775058251224503671428240323846526747534232154388557469186877131164145501002693323821435287859838509083901054795827884415109112472788282780937641567968764471763176927064934372239662213176334734943197284505347029663668477677947072716540897606482727060070464131544683404844947544056331444973477771024790174642092453854259785386953096359339358094839873768770871145314539605385008950208178288629318549143939512349780495956629380976523156484049489274146071013174883584811694365464834809398138307085342160504963882145214550377926465508770784393608113685886597066138677057342306215191636001424579879557255322303635507996681086056749857570404222326852986500883001280007552710933025822283411976265584196236476153765709887378805317759928818572297433526456026127086661229091095202046586272650513910050926455639269752574266694909022348574623372592703438861838780818130854988758940593801191813939648717809397981758082953054445481497019748712203190571660576739927509419238244569127851690941465221346780056103388039205880011232873231286638358214494053347075529237443835597458334844086816699626807739787527993454271936324999410280044283556069944766457270087796957059958122346669566367207914125111727083669317508780015249288555631039133830049203019311171434923125185620234904310229763207123892858850425491103347477067007991811446128118548413167556755854270036079656441554220057006130050789180404327735594607680346506783311981677730548764174218207842526469969892669497534077125941579009544856376648238106263669481521496701605312422269270865926044076898205212847280765710567518242001013428695389847791028888557022937928532452710345121234712360183227084470595647669441426122116222577608029744663450756375996071783056156428859118408972695084215091421984578594559789203976750999087027266828965194827739508504791590760556643187624878517867764693632088213395921971504902931610848246734500187177455658968788994126621926134257343638046409559732582912163305049002079504456969658060923787637462603913784914672342584619719981563252592459744634947309779746473432682602912299265863040940238533873631613619724002306671186335858790024572684112717559532242107431267590015785064344566675618181674832728378541335213689993582053050542251261621496523018804416200052692978040132866483755856444915873043078371030809971188081410269551880837553621220736757416511585003536984415384158025416509071625038965562750533314056477485228865745677743570840116629420327672566947480411153898481894081151577482622326452101491116238986060175338913959135593446689724180917375624035071672945450362076535350919086839391092209922300934964579573214624346595345721650577235438938138489477505986606766712218186448674388190040514576673908931682313050273814980002344475222801316248348490349782333574903750949802926911649494658865005094467581582175330338503649511821338707194002681043214531886428715177605141610583953031871641215138158830907171296551959283711301699760374269321646354976461090178259309057928725044240438047726144281879052831010938990158564798130729438895410518713743608750006519020929942786789884048643313252575546906363628397410295849941046752581581037094530130689325276356655869514979358528696059844896181211349284618662247650450916852929489238117788574139196484470071042835761589015993646177777868830228173428978782883367486529871430932351155535468712527027261005836837452456836991567525699137583820579043630757661019191050129801544477693133734532893776155419064854018718979402331108612600797795563840640660601321592797343993455712820570888520293759179354062661543400655465794758400067603057870710540925899759036628736599481397805054024810410003576508117582730950956473999497974572483386752709195780432730723022391461461808374600102047194005837698268466165019590604209173639190002746910894693053313091354774117853298374912178942835262716718003091404337265638935510782102262171318640032916234412722566287755172024492459073452257925520484509726859108153134230303280382547222196513693842894311728028480117229300944419538619486312426061341851888671846929618126197005611577024087289701912929627399036511905470148546741580672536381830820066722279678068190740371937644979752145669306472856224143658562465508330403498026168185350277958819947668994855593035066440782819980862645421957706948088639891953281108782194333122791728191895360994827098168945839304245766186540031204474622960338880898406006166420700871899636833611784765540397768612982140060045056340420661046894423311605390409789883684567394168712026811039846382001471266036018414187056086583384395938015724527784949453937562176558899217483401235154050980044875831549101863282525702150516879068111024376361100604474971317393416413268627257547203021007774195192111242483144978056065635246119870715737054421011386436764819643960199595808106921371645142186772990227930478589591867771853537263495667505283070925886162520585996806927505840280605728668706896590051219314859110164596307066170220367727090078145017047682572970113240818399667864848788042218068272869531396390726767999036629492982480029995466103226508632232633033461646672586223925854133419929387971847239831097801786621610634805834085918874250119602382444705754205641770102175903278123760585564420439413034191483168423591676311850319697221008422310359910632212324528920327030293166581865501103590227545233573709539666156519263887853742980148889064925787576498908386003850587567296445648934427036600160996989065861172692427799116815324031148362382963455770945683707268390612653487739736893925749197498430586798205534501741936216313152960694618261962649712638829378325099104156271663177253739793539194203754956294359558752949757690064796995685005591134135217615991204347087166611289934377963596702635808344282565284786612873579229776777506715997005244301343625224441053516224835520331580460684987557675446827393339956625612712075176255930916011082621071295264742806776284195754906124506298491502856263492113133627389080404627329909315573866445196167595220102101724606389152341093713893439397310683730510353778844906196966160234943156568881279928661001918846867904406169029257350622307343393127128931663554082193862848037084246602153866694578852912192784565735016034480436789509232113167339120791773157025262920832917398445542095510161223620364779805710880374385097293087571543191062916026331413055773710310467617724849293507695651708477247464745032509955946256072222418232049122288056117967971724126041406901840440555652917374263123595660377607891552438823818075524522612663892115996226136888109433510512508166916523952136859757124283698992971207095032925340943162454793344092079555934479593583090645291265578639256524482270130948904546733516583689490939652445548305393001401674035217731706602574416627039242652996318428949559372849306677551722778717442827949358411305747562412716621756758916628970099491371509845271247439750031492408888195212546909194425076435393482265631037896112326765516374484606108132922554800587209779775678769572854337766099826287231266517998658041925870441127139833504717775690913910570516430641015424958159209717479319582088305946906961290604196048194412469641710221358083091099262819136154540493434673675576187224847284364071116550049326514157666303789906465113999929969738005418003230048571541292835294173161016998899688493893990734436909799114336835537988677469510429432078734323737051482819847531751241751845365772965327058732779981177355748698440998508686055561218540127546069186613324559974395906374915639488803912686194986656322903117034232310519716127608287672417349447635913153153592773831122662969872803662358353673907871982524791275915736935449550170968644056014947409712147562546493412993904060752418475882530620994034520072832441327233501840299467820930626972959381492997494550298840895205701825199276464212763554218629486705872621147872182541372672932779637562222957135938152651059370987556486678660226671933679116181550359036257047739872814698196494586050138487222198252390780004735322912837416070598729082461140995474716573238622137039371858788962835332710437616325129180277022830333403892834096181100065354698459628789258122444553062971155488050826896883692914724532170660523152564696449081415309687762070889994018181099405816232201638954752175797250731880582822917314409047363726414736771377406278372452323394034907595962326089773630139143320078206036725860757699420985310301988454130823917097393592756181955710659858922900426275797515241013627940431657688148496458943175914575170479968902649578759458376744756513866146775552364464090853170548836774404950683834828319573514441838751682196547424053002493705764241891934868203625008446629985837072325311005007170912270259853707554934087470026879055303790054336252643018242721139439796683760794436539017376830055414119946213909877104708295437656892371286732646502957183530581786490028400315629713643552894391926288663061589107787905210403197692835858916570793241869965396074817942329597689487343764417964831029458421215623227148485739442832040940212892588724375025659928935710456997936838466446133360543134012122020100084639657129054175134534711130625271166165581252555975009367954983884717513670393493734549375219446163693197706397492118222807996559622749121094558604775096861133480140054029215826185174355505993380370037667239544449875684145540450408964495862937186955755992211304026137597331208328761230561480115682644732585278263315416120124491619431212150929044491970016546336671621259980000197946840138846246291379331402931497906966293660567437397237070241714708705885852924879930330139850737516185542275256415694962478193717940953069310885089423377243305918710051519054046155463785722249644804472515701308703538968461654053461358543985423653918462136649060710845383897383904159066571695098174325130324003897670481574881250037972693348756863134325297798085890120687714371843438264313002408593702611320731555477867419718218216740701238802470963399961137316733752029700673888652079056008431887807691744045619947999566803960226777219334738645199009633673319095138983789069086292861827261516236532166951172916839966681715336161410724201341138058380416831835578419093762652275570637051795058133204680993811971680150648924194418309885807768416665946508544333013962172730614944807860399013246624609382888380823399661434627491692478975380259083435962887829526457574343519561173357014180086537250414362288560491944114936845683114202837121575643195383011845848026965258453027717227305254967414804070818669137034235063708385007635771075237884030856557508109339565261439692228633377138675360888385923112268443245890736955525737716209155471459013626009280055132629470434816320760244825484138605310304554594978288200390538827165836726936074968490762037124152333984726656474742937070962857650400089464045210181519040835208152345007213642474321875231925999666923755707051424888499946429746520571407455488594252964170193703020775054002840025966908251879648330863486294161231846242142902378198531587437240466365071196861710348147572698656039776286793927489872189719783297802178322923296059649277874999731765304307823484445193340085497521945711646965146884937016327327989050264466254164808657725994316435073813223069577006841602867355911628636536107589729343959895849772084855641024590484622878731431086938958303896948070782081683179634178167344755864990283995376519146301037145530487326664064122592988033166021099075385797917298956418009113063096995088483545888702664432959590983459205201339199052010006074883974847812071970936351429048518500130480611712449693541336083820624285135726216064069194597526042806053746765218393613604622257241785538540899140976225612934913436413667537425435881719242534963697044456186991882311578994798365577561640662271460633714588879918836992462052886853110711932374668875190801134974157912854033665377512126941481314382175671163983954076236002479530022406611308837710316890996591904733361873151727502570278707659832064292946568992642236841936227523175839141059988157908395915402829681660068069261755367865957301403200279860816988679267616473054757521500663653666056272806725725292871691019059630530190261138852350148129633383421481693711070474649267519671696823819499262496791670742856030423866892046277339888534215101137668327673398810054972982964381914624221313908171660240366616603337097113962954417694266974887690790556565659562892988172132191457832554228729331559605504147993780799278462937668832448607728063200293849510095374726041553179180594130876519755314319128449511574904534732149296657963083654882609490283521001461666004766462054191026934996555627436985648987958286245686899581969085419321108036370569288251680295090461201193604296388788096829735409504304606853262546827652688939949190080099456145812431707947694557202234083061306677138216383737488476639808931209144580327421948284959915039087415113220366349698725787586116361046562812921256561364007768037203491685593102701436631403504326026460905691984625750774132798871886948864634165747318542420304639910750914500920394924047531915502159486634725724689918999006517036809767309906341497318101716271213458358670797201640967623439319147012449119882680593325881910203497541194523442224299688663779771648612943824756369181229398753068699281993963114912833588198817918473942955250005108642348937737773193647527696445071641463100285280971682242862269779816168514721917715805580828739704749728720573919185271213264573369359640324827842470204692061646296794577235845491246965390377327808798612716031851676037019497749960826928025812281583521460724886173331724684153943186330820746074534773974108084547592981539550735593231060122774251675728814407783023748071135022441921097360188424065743585609497714488812505803519647038098853682538832336641214267332047757654259368034068460973437030700114630587433842978430325949975916491113331375164989893805212926305687275361429119594354185556605305219352999060729756115220935199095013065055192727694554735865194722222598659641415821718749000701785792411472412954247564347450234070258895054096231672635515309966364964075259781764243910184287921636824313470805287298996804107885140751136581454053015647424930616644216580654450702105166442998335238640407531761947222779672849617866831438933448015766130717099174001313325985926055457360996065855088305159624149250367812192199703479523321539304399311713015949914314913631108500257794398181376506158254771494861836011535112661386697444719814847404150539947786365107416962894710028340466589686738051264566760947180699942002961509876193613004357483009764780808179353943763777728069899103299264267332310279281505046726328376814709634040067813503651635553368837455428383361464983037094835176633281399210830330517069546630701540645315851221930073019938222679425689013505373628747113582781593097143522036806593461988642088920850359850301812811096141116249298395590566174042329409055028808877970775503443148244566059416066144743172913425100996667620839944174821658092495375474068300478501934458619134125556990772631290553784833709755805251216703795249590233160086808760535166347215862024647331870577093147182497261331314028605303489171106805985422599768033885452109549160816859677592871770192516936759813411066310648152742117057560249923943405392898509868960649975568023688156761711862945034413832935755868607803274339744364723363059590918942076183318907051910348247853226668160629410200126729553496844116703066926526544272423995727124986087027392782136929851388596047429647431134521390685561185415659595032644659167573620299795726202640718784855467973316185815408633456732840661638643772441057443353808799164584564725192813544556841668335500104886802427046771959814787413308894416091760884295107443538726719001637360077700868957164995230356523342154017493505511762095952228905120588270787150792363225265358370545065243989056125584991470374036625540388504205001764538535961163655088786018150169333871181328916267158725405576447061470492759233962038677116534813483626698010720215273490242238750947816699376325026292990882737145969887383657978133185443441564103850486448401446856017602937994170709718012173010024669190057643252755716823385612873606432717952340375150549864272841091823679204805885523917404946028216605417137206009641710542797675680993842096209514688432871378328518832991220615947567272688049698805087733104019377452996406124877785144764266063899801669466964802764747941731334753323782378906542466702796225643429827343731021548271039228455270429935580314253488510315019010105354538505590965759935671000715099094237626460983313259760513344148824542751437730939965354350413808866867173062932044020465852649141964818589990154668176470652509156545254994358953392679486255945116600261950538238367291407374053881608231014106978169620238267269245806206561599179598154324252180012584481052922180612493859515738638316443584412658539437169070526983227021143412705973708846376331919886506727803823293128649843204591045459210539803297350300858728519111253990757006919578551545872283652425689008486070435691412142978823228487533163005086741990720403620839318421821346003662764215053032061873969246982291892903047508562735505640084388445937725089794223667121850964501337137952954708938541918862695773615064914669112451455642653467810210126166958112506150030557585492003652462224498988930759748898548347222080675714884565553603993917274025141760067199725746250298553603244053037154311707305735570665227229185863985936030412057945186550566721475671573894358794335037394745221125158175874997257714797763735371394390031498792601863358209448933511458190634992095861550726307474242015556889911037359099171554828028610219083345661442989103826488323886091738128837061436160983062699509351768375728097752641528192793767525936658886835581883784775436143671080115110738372437370494799917833297622811796032188797012246622232971327988079561414219435074686994611194205904583315644781820229041157481454421549996821307907561894555560809782917385524450610672185706751868710833919002835428542518758137836927915570929224424885534190641746130722776011682250523737402419179299460455342442896995676397028327337053730145867656339810684530661075864347697739594983616320251031019525266015925718893173728655387313245378762126144623343479990046050297407709871046312430965252558007761423213888106740364244161009655872194975209470466008863683274551079659546841587638228291406488885822822942872161598055826545836585556088356768510924225694665365741107242534405905948904859788891270814758020712878902653166157269621179870231282025257137374971880815597758734934628529159895794093666003145729708750069551001522952203219962005835347573284701177542346403899436954880257171619572357432227613057536271952487559282138264133482010073716293070717105421967040529375015895666112154952337081665005776370789163092011879044079401896658191682106984510682916094659548189895027047182626206215418727014036034016564074962814313452572880729191586040719608985959864965319154126925341156924167980223506906119643167813512095962011707934729398772504126913989254286164976316429145377284195127368072558356528340743453690778673819918062129368221221065480752812367893544451062061787239820333943998771815565213090900881696567931863947728077955387655347929460784069049562013846934186862623958803021713055610446441238562262948248630711007987247077341924695323282679249533709188291140288697658101270486684359073319717420453577541147428656463059787312610613606731888525797172482736598726801985270003143232785340016822828295297603542834532323670639697162012932541624591497271602963599526536098399373486024068614809753323931412421149561251478220379240851851939469225792142655086365050546677228951018268217493076491638173829388282106314989707031475178024872833783705048935706646620770303607094151048147792426850197110126603579374124037727191776053937199009730356783191325448976415532540858728824065424937179011607658212184960133545788804135518449055599521227337849432243507758456616788962608069799067362866598934929727743524109677640188156111232908323155489626906806906201269311239952216874801699030500680852224784110200362524028743124819581346102373042039799974082794631218713543566929710383542826607043953647431156805121466051162583208279400106504747590146622729519784808199670116911320363955655847176778654033476065377387698955579454098862353594425138712628633674732547076478667637905436575417108715060521971519541256720649362799335161743668414147511505511046534740120748596238670925798727715380111048843374280792012652876526389607984102068614525244662529965125884590498825142896872831284538229317693702320190640836936310023779294694888438403049638312331060211595309311980684712185656735271296842294419544363759637482141916433557988473873874549155497183861085606453848822830293514394530417345133342475137346541871718207319653384947736212772997722547813883207406671863358200913422393138975793568585374891329487088273798951410741274023613163565700609787454461745722282345388322011474717225661505139821988136033975825036806375299446327684640938595314016062872792679113512875435996309167932975509423530904655204368418655140304368488562966676505599008736396127066434089581874038452350284442149933778105630735768195200038021928131510826070985784019949122192252085518661335053671184716572663549227793961494091247091853059664096811046286639279403468756689375535915730291291170674881821685035920587425670956605283887567526902721288616823256275380375869402993183197233487946477280380414072086722865087455472074571258548401535190288924722945341263717469863082239720592962438432539056939364365799867671509526388740891470560918104121543838303968990504634063238578215936479030050271783721817188720333991889382534944784490465957649515457330034672286829320034914050706244563107965025448400719618920209987053105966292614827018574907676936867382556242207310982415294759562209127034183090782257179215482384756090197300746799158558063694565668007340032597818607222190726582651655293159915517287223861124471384910874851189360627213228899225913605618280327996241441031696276552449342052118090673862177889132130593247757936577905218731594134220303798719833807919432140707867200383796913958740749549495353884874987093281890067005594947002171425618325510144988799805208514553485262375246582069671065114712123894580047924812743436594819335923167683999722376719117021379671817762896386017931015321846385525573560134319807385939033134632318353356435095837745595514856206463857380900360770439859462644027993969253464864791888702433287212855812228581163906573153621821181349312446182848612129053191020960258218582680424739913897867140470122059570915782954276355326856795974820399499947764886553832147156513192159151591200728412536835095366909415261146118438330908187064663751784185745509257766814766810244289279592884058843473672002646119059505805038463125888150571389692722598878395145440651954710113943515479467083459918106504214365404026662854417155674663919295882600156713705432164730542868477600526891605626792298781816976284654019992287687521580557208702422202439720500146636376169950376913611366608208749684305653456608597996594332465396655846569850870966719521528687897739514022599893484384716984513525356039281211889002503771473044366157845324889593314079685237314827799409110022752882453663947123884138022156340680451288712063160245488046520826646144879231930352656065849603028084582510050916245006622236347598154685606654654812875478063111231757792782498038728097078377284827135050344112874769438981945512794505403343850278066719618023311248497950887214170127500475917630503388284076167906795387770338082785482798251449864586408014051264563333011280585928744223475332800127791700095483565036557765134170428586732800562125496150949670788602711258818730419993993077509211859643418976431282048042332671136832424976801711251286682039944359798422278345622754910020733135155274765233050359374307597834460198531362643022418999506641673123284546586806925867967449479770023917162273728478848405086534023004555210535491337711149863127309480918404434267307572221272585020458536430770803872132417624246721677122427789676354742565059586416262875682314560305497186654361198415705170356768738441297107069642937730081257166071228004618746274797372180747317463122574569146991405659793275385671900964663356189415697842562006121467020203720748973839906405254392951145259734118321827734291051246803566107569292558043853402951970183623882999772452509815193827288766483343888363578950084839637874708435620136210211394533469970035805490301151515760596612246028978411866290101840848177935052004539832544340497538131402772372766212455715315909310252307795815941200658491266213490794926741359997957617246836067698348057201662571234588469873906678044825625212563654504715525683315313096595068026148370628604854036075418830280415784945652584406146726101936575485028703358498479540362197260070535054433521294674652061383523472866040876371199907871878514354710133574626059364942357089930878139381808662736588549360748616365674820607981481128823285556089562986929742993997468607107080153929163322764577237407601350821869951241203054544300089080763372101294913063116459551731244891756653613704902147958595940283628772128170803930013262231523295840265937019364332632607775272752925028493148742411461928338695692925817871803120693475444235593039641615712045348735606607583464660557771051371942493007060963124784072038660316711279288529859394977432677994966989072471059695504838588444572131754555831736665290472727850188661734941251445823604129505764335931148273728025354652468921693899806417292630899094920982396914610818232538432166790927449014863581981305872038525137538513072120661608822103633400386831229680791174927884573196692609186336468628812195737397367176621171891140752511909828098651972362442897257618574950557985043964376206762369643268993185199177444387784690632739289182269390291073609738419005544947746715183596724445731738923799022267091291942808785211008675148045250345131425475626459449260351377802081000769966976360514058086940030445090118066534067215933442705257750013190594227141876095158899913076062580649800924987841332734653963528834468325017452193426017630380947454502714912019473179247555832831842076808590160225850718561198142571437979007532141772881954897224703531350240452220770824315576587970329065020022438861979562142480157959895258178223537600310015845207270040591954596214642054366209967434631493321974759452096948711524642345551072569139836836440757804743826002117217185036305965359490849971987702424269510368337898210106504548015309583313330501509781863701112293822455671358159598325594293591958201947968837066316727170146702821988877970683486005911076023731540980077326982416369547540517333316580634297250335008347629236056394167250697008001205047320326349278464587598688716068650364966813055319754466651608749571972807539248547441179498491062259423296563806795574232320166955655587710778819617357314979963773723145097620425024385265813260079344309211550150068881870182802166930402249177549634312578654344088607342967921790432923569758151617982056317507482111252482735331880669453775006764097554966830972545871359362327236554759144559498173488867201419148742934470502417794247738474511911053293895638425609299671806119756352355414856546593466029043722552708570431031272178352613322921395769737469761914989961017726449406825054712808835048519688117385766590540378938629572550151263108050325069730273549664099423346471617171852439851850273848821250037793786195866425016142706088709809176363987073285504091132600461672993486594465535301665204904535719375333021196970532731646713718719921807302454792132898969655053380809279175758300791164311215914737792982198093082265072604701408786172163233346259816018227802991013064658000997708858538384974326131448973388086034777476743365602918015890530648340521384446079782944610655049237070680110623887717452178175030096189546977577445560319899864259807847516969732311093250235948016505649261425603512804986251008396657887912360314239678185565848371079465224228723408598456087434993080762142066333481027203408449654214757184420925758896483765736588237726397824999829480208960361070894466589936722245151388592451156802758894223883069288209654006509849163308473522274202248452850369186723214153292205019999463336404847183432480958264530106656584809760740840049029272147483482366535591261310525511276548839807676161590214174856818234607341070036483385055677787918232723217281838590867298976764807961143392419328747049309727261924954977683289648701983029591974251886791729480237424988487910926677160711589977542538533666608853723677164085727918853830420012755897858884644468880075261845348657490134484769084083719461923273276726605490205700458560322724553921014801605991821017576958633088155372580099999231739679433109648783481462951218755750571215965002689815999303010339780825728728501864268712263915861751950283825572891397038423640123735949113707042132876271018279987894507035715400134545953214272185692207513657707433804471043589619114992978847762275109215229779270926784002152417985864056119702051801055965154020208994731894505348621634257375426374052177494175165118615791415079311694729415536730906818681981457439718303029685708903477900840307743977273239413451310987203285458988097754458303725102332144574199923518240970138090316529439803156343584181280071037276967289118908771221040048328103392673045350932695272388081237742066058958934733975138604101659349475534955282410231070799635104806661817346765889772507009612793269042281794379633680031763229027452525922900085203566968238641610390423857664665915436953678774056852724506922560353915775607119654063104830725211559107919364529507165904887928186074333835098738583494045247370042043316214724722089153755803008003585865871444271545147021428926414818049071234065882143357900917240596151603155574504094666092563580487255338691282272186036945370576806289980490019350042439252414927480555168799224115284967094675953272211768247775321055845367901716845977215596452900146962675201613491882883939216535399559341100159528439756910918884630408515594835047458187937949417542658936060130529280474031082835190170928471254167301867728807677523906090545648214121319494061110823431999154261495409318273405079894548679762287982106565285460472330438971757183434694779103884432864720814801689154802269104491115458304485558968732938630900414779335794381006589877683952205602765237867677741254134431509138979926915919523417438212765219202117784936368290754767762895951414067722191988783615544730479278878413722682035850694444637764979680373664176964719873968065717759580837563870514404920640678453357000154384179354545115658015863367828998082123550232114415501577849345144727335620980737744383117078767869804502404057373586507826257677104688518480863244168589422513879390177223955577155844672361446537222330615417372306879200359165570262217127170170325225418899263980300767521538290076741258492135321213971498870979395420341536674035239920383084781280204587229997558725049780754893445349542385350773342276849858622050152112737122814297176215808450783943135707457178219174998301941809756880282151599345341687245478347790969881542834510097691381416899213095506512869827302205667376480427059347731272091124994705094987367530613684128573697289058120911418874646401431835981007441208135830512397077645719145237370721364214841392577101941865710854555456829316328055108560218405442759941190707700664961351840721783458133748309720136259204726644975363956854158670241794199300579620496957017883296718013706973108223309065188119112706510188762169228367423441636478073202172354997143725713780075485872859408370884224658893879007155161313872984747224909817007723117684310374831463087412578950869086028249773188677862859336729586381389398482260689611565639971497328635360437982537889730602128681036983019742665722293951761295206615611063726595382379054203010408010990900742567743274070405065350568182249200009693635270343094220552879905541076557493519518877923283789208666492983413953229303814296563903771625712583411842410902732032391931025952565581754102712105138780211652547544150294639740699822246926715716544532055667816298935661461816620991324326784866642597325569034649556681173576424184063079000849718092840709873345254481191005432178178580353793579320935086982918757044646607696999412069090501425727833432718957529625631442251121692120288639048991858698973964589673439379345104667768603000311442059289503132988251352989338819390383010766315458281844804244649121641684426242955403911081196221914669415560315314679042289732825700693969403055689629213146834902252932706660807886890193776072208665383175512131247820487308630402000779024832727104240284259269724119448331570204556577466497559106593448033428811957437604318191357154224482535361819864919147313043219828073264437355642702248928993972487379590174282326794485127277597883244350891265173375588211862189311544944841680681459059627151391299395388870113288411664545661114844984117009155525141039186162158767945525493411724326376609649269163940212635301320439064918815350261982551840638902180148607772438594319672248855106207096060432159877400502489087454177625745444739704013649291861132180297805498687354496075911377487042981996251477828433779340788199537262399577798159372576763582505456553215413715551149631565749432250531655670372855302874414804967251868526809739663355489673470958265304282792104738249629749386031970877506013744379727774479448309391037412768070061229921682719541545999477392786243139635956757492492705886656404410691167531473378871891116877424157014502016775161766286887130695552048632161639792081065707621827829431170612637567644752078590366600736465412337443866169714456748893826468062262069081533425843685436397139217108537961157110388571319767289740023643658934582334489715699087732131290166011187815186315177988958559723821437502368799019585636414933916682153882616575156758081645258199552133810957832991452493172221467940769668380975417957263529329130821843057809471000166234049092196600829122347812716571529955900971084101980991362109628210799482279684523114593601845783035694751421285722502223859340295678181070372737648473293598840072744814510861932712881026123478294851277593186203077453622823126759829348792595307976528789507395623867099395267448418645817721306515563404701903749345520885736402506901581485225734622434258956644605369417298831688798497843179609155045607561510523847705554737561690711347175011404444070662636857027220043895588512903934313207348001089717328254730589898462832198403943187800007565677523338377477094109561565950327821312033177940497436623472383249821797255556465407611323343612610345605287057928477690815359647927374432810003863021259889726508720271459763980244578455869915045516094745737865883849926956375053326323276255206086672772100735316294737202847153091918867838545809454818692389231084625918273436616808383902861455117327713824537610557349298282999977528108990139551606457648433835468023702668983767666519096860555359958583181053866513272431743238162520799452146377871818988255004186712148837924515183297751465348830389746071088495328966298943373060373491905292107162775981177084676105473030423991232496648526743451665554680336821763644810815124542667138799972968017289259227806051251329120773401858159522522241833671965684352792853417678606054785056988319018700915957885001380482658349241082827454462551243312289943943002814900510040029046293206909391586537048171426689472101601597157837478921633521430869044945442196006916818227568457943570180943024093096075826480291522276078784146246248728704761609969498917769837110154235948236623210801365715315762675103931687591902068258524666883626532828775052613837500686028226903722950964777049928360597386295155285340501590109808535426878770929903051290227797226762400852087964034686940264531645892211216367398722427918560913254785430733757234415641763304325657492996301257791917114473079318001820291103223093293759422857589023545401038045828036259287600564420433213754677842194272033150062543058782410488419333260197738202573300169810213780339344604882580184832525094409009814923659137278932766445221646451756287432461962287534661264502300742701308061444254759305350059312653920238229887956474080490308722928682925894190834178290145437541670969734287696058704642197763157059054544561291424083088396648242631712053839114118445016453743344467813991057138317422665185532434435486258729816675039180708394962336677765906759676922118748777541297605779194753308419348945796569624121809809300700300382034292971597251199663888822655898423097218520158674555159647308877720118479768370061784421867525004307719287991349933406917251658231916724920873974057633291395077928262304526680968792878914337036116764552451384527656301441897121854095879538292592374659497101070263739771935976258071578258873687537455222897292827199185454119880985811810169914285680907517700069642216863411391895884320404385123535347459089113818718926128361126833334057067793028001237072504940820487357780791294386634484591856212167918797573856576794038353825895503581368856341343579983249070159890984040249326341491823242471576949733365973341525641146801782975927674363270701824355816675219584989628523163450855171466792349526071539750187731941288871920541076900714256377560511359142519833764806849919107727691772762120483035564843054131680483808373123563232935647980088692141743458015126794231803621095422946795514726228497599626694247900005450110167098699057520794159811122445980698017463267378867022566834867536378440700115509033484974972234573710376554014571055242009574636044173978224715498522446469581607599163946118729295268991464739606857794505406225667067157348232132778072120887263229827796945827150835781405343561379126624211471783048585010270982908335622731985233063724913045812567724429766562255192678143712952936713503509029460743265024543763380458633646871156254857106762598063992062916921210189452154083038580728426460617241351825820460971073470311389618412418849679090310528191681761100740729121430446268302641071219715407128183961698229649839906398548338443565593237237244477040299571686139740223855670426450545986884117242255690647270347772365704792619326529185228776557009894882485932465432408465138238168575502826113563363811166803628049472705997558654239978580247384749419656277729621073057600811669499649128639220224125424093861908406313552834562113474898082535088588301822542817857274780498334608825707122776070500233300274258375463041290233431513546539512161566518822110895485274045604564636814455517404375027050096967977691773355092822346321419497919267756117056245121278182159028132495987638634624596474826202010271504356399072277563398487821538921562337180023814198373493207843467842326644296800513629626473063573358412469098248601087209086000887840339381681173761033231648130755650589497849626699123193148738178910026344734688976520402101147079786813423857034413914741683548083873316270187851979403696592476730696358639157492817635250601121878842110770214100871177123882715801540883514738987407345016078274505873430807282513842246208149406628014169239976658928018382790090758027330653610602058652146663424759907751530164258945325725688741469033561034640549191644056154054480610143237091377642940469263630207967275931920312268379112326703357572338034270744687682349592100392305241837326837210764023165496807014408845433105221495212838236579779816538517462538770691692704383142367072791261651456952937381267619180939762216430318546695795908419582146513660327529044153339351292351566484472313873699839180751015633002721980470615220715070254890974903441152460341671744719870879333516540011353656782944127498184519934365253015846598138574959754084958189575751822329256619538382293051606227819679576837505673576836113425145337736351885769309074906085296689148506177321177046290161266167540309157139319645718436685460583204739767624506098024452047251072034466540928817562978443667563340403601386285958110015250199973300870809148923878805882090452585599313030260868985473313409111306164636424121140996404375592386510670672749741283099049333763120076508305172833840165286438989127955430640523954662984177048527073314671577936611187609018153164887763674717316392048860037647439677072177269347044741525697563370792817927056500820763621835120530282812219389806582953749487500320066799232805743875821999038825089218728233486071397075710551702127167694819280837032651804190987295687728070327206906640628470249434344458145721436208455906995504085970506449292635154570121722955071917954185548057039305258937231752456174766487303881657049391213839404796431626045615847921169160155806634860902122463485320438662717336061661605860630519534525565802841230267548946607675775326027433407856990447747530620068309009829316502906228132269977253512492103278617389254321226149287490856017913084508525239464966393936472124869357600900108859813245431093033790536125939924409259648569353547176199806572728989162935480075742270508661933153511994892836082427243668745741490474591832310829031005456453090233247989418112514526422489805218985692249720924220364892175066587754658682402367552866032277221657298868271673546457115674782642330061418653556172992689582543540383868636455483974833398040621527960436424466988538970670254064896575056145418020099602264597526803143998899199502622915935468287799813190470195707724506607635950340070176767047542770389743803594187961491314248443595916007653730759423463917936911863134855105960811795647252579644138685572368012574455078822625537518915341833453594856253793329960215897532465787830028160905392388642207312153922861173501332111887615906823466547922930726089294930041891785608836312620259737142095127652568392684608725854365435478417841728855113979359771647522443831962127032641031312669082830024612992459979143109493529883430470624677140112354501075444353537074652990012326217185389160230275844739500395141711943129107795782662735070515713470171319604415876841613569937789622839578974311554721734130277382539273398354065591455112407654272143419760207858076342313256362242995783573172362528923059951542965801729895439640715094372341876854022536228287610558190309102796418607001156492116976521469071187356760312295004204443962073850185613922352836126551784146499323176363961343558067321668117051591804159013901631229983262443046863149222596397580811956721709829459075419008785845429685017581823970061225813142139337981390763318361420819839102167358864718928238885854536506082011265968470813130223578530525907548834377841132010749375183758723641979580406664762490105282839509866207371661756541578207042874792235297204037671708250915966397278233450568492865079437166553426232558991629590627204769145471826179238038425642182392062914264339674149136517320372496711009666183835287561800495095439626192487487996899597315187056427106927837971262157504356865421200882929770356911575177355520861426678607508414709940359465267023291213259468454578013600832800711229583449990196123877089429305990326842076264195029583256665156192352398401811774760570501381505626553855184908127186388176529668117537061600063311946744395715885121303441673012691059880399170379879415512564546162065285815322749801388636970964910637545589033664240280659664481518023650726729648091278985263368542545872336106185813665843531301622835107847119722771189092679281767916416129805490270893265654543507216542907643027556321532998202804071092697037509031720608644204992273708166358842331852917759841007232971659188813100003734854798485649372589854926606397224535871053890899393228243156157662749820155987132138147513992445621137367251522747060639082074740327798010932867310861042312681612245307210472475701577947940522797871195321358201430133555375209391842777910818092256532790107738131451683332818641466104207803802271346785566060749020581257934751554158405967171531194481048773040813892061556329389228723890649011338532525260560992646378057798872114997607591378227724572786262050687649429439181303159333704876183130606168138896256424510856567325065027553158610181349548119761441708877550488192035339039264050234888876570571400345758132685307073462779766764262043897274859794432057711953877639647747360292260907507834793852119347504488143526498256577976724528407685033196933033331632333293829245162949431700719719862368074713292402127643202749078402488476104342731239247037220735430325442179525319518713681629221442216929827854748287223734921603376882929314012964471644720678943340678099717242564429117523503769774427321819336093889982665921285323295722296187857299346880410203183036164474771420254200201296331200151123607996610115091322911972434643490669701499244207404370834564817797766997796759704736937523021979355584538975223130620452430906949788732640751134453869497781960614814067725864746276290676122374188612934084788601183759937716304967913178761588458041136949795038157084214226942334200262199892707197923630780521934002179908699406395597811600859659216146433839852381063355424597783669254764594024216221333560901357886760594857019378707886458824846799119114598172404465769576274072738972500838866641205062225402947191631769269539664448939850455004993062558053363813305211484005540542950256622759633366819680581650147521171008069676670072083496898826348802963726715531728712178393242225005581357633281998513240828503383611870077018960684053387911201698859737686493411008534741950236310169749518506918701294449445442914649056849809061052495229569441578039131509004995523839150596478861865512274992605012067503045001400495707751346383720417327694612059592216524353298462282166096562435065382693172868339820603647336463629674477121874943736954864186737140677173757874774792162640799275782416066948474098864410102138744411054755735267254763325800616154814571353561296961302684255467999555892006255540743870027969348296906085199149928482428913314284087852401095164866189474457347294279271290296656094943988229688077776561511175708095281327390057821634361432604886513317771703398039180116884820338997193158778609423970733425953982281672460934761249645029300342008846139402415129792871107977488005463917218800625127095304773336827955622640113987420576046741046504914788061046308967069525486164658370186394889996321271483999852591170875592956545717341304703005953936906239385976421444256149059923484220078747037439389716837983927151757067917646155360409674272121694050004511289757470500958217993837388280456319832258361744831099142298218558835290910886928166650201524826492910440332102256997218640599208603669948231915534892295388297669113762146036430369291042293178011034984313778381730991697457005098910794486843060445750741161130541360149948812877747382636382408470230566735438026050422789625909594199881472711136438763915218013806488611497516359114330373485087396056890803843059123032895275166363021065680814110479135845053123369673106555147717002096010385449016866610627048739426311911976646185651780306389961875377516107636321579205271130031311709843069727741554550134848031227826310226455852282816674181214044281990960638941688167887643050540794613437434020864019518168501614320525957358400772772563113461186513195385820030238218272609713978132973569603317375399550162584046264837329922740973071288948279097166815734324659873157235464658095194872466959087841046366044099649835472903498777096997265718999976780691746070064994882681483742985775468665428148645307257997830316436790580192991637675731507181010832757607350304169596721972222968198091011198769503503481631932558106851658306901804778755754475556333042701991966207139298521403727772026318681607367504398300012163630299039502416095149082272165201081245774901249583299461702753511844570242240574296488873972092064947156984669951836959393064851645133205888976592593036114426599822241104347458255516823846565173757561713842030184019000132399634874120479183581185200634021399979195180844646146058656122964693815762904827203551905857474431628360407732686673855795058132718358897796416272370678254741556586205938186686085982191496274279138726536781964824569468139035619665096146118673228619214051828913852154381767465717505207177413156010454780757458807315150454870057587727365743697896041776280826566708963099127910352356208098711790761043358193560246641551253612000705114201867286482576181945293578784053800089829334663790372845141119368169231521649369274441594520181741921525183680382301242103407274759156953276084976293450889830713827043101409945541980507307903458785512911740145778996117122379112533907085535200930720230289689424897860255390061717219807155482961867671817737384979935246961906233426557008210022979429904667010360060915308966757913961084140910259143307114460913726766666343651963189984362691829930320359131472163727255316536760765296584026179285598838300466168027843456335004396805343493387951363266326868389146253207310911937123691659348300258229808974307867333000878610200126971407433917565527151451286688001478317007658360768345060340596546023321320246406103584454170189664680788788517685807634826292398703027944751822345289936234138796786720351830572295648641550594412378443363470483210645871514694054534949714579539129609114134040487268624791110116589033938231871889809775998726729773280407272309693291725570953435452650133608366292990050594719152170460703766496486169988744571362400889035059911017301943494333839392349481313043707990541543529619254737458477469854504050324707392764827702762697738579993366625923407062484393889976885674070944825414630352299809475393381357603537872212824985382970760426914470961876569977025656296970354163683853955131192078150823423547945135306291614239777731115883626964287319497602926033181180188103164285167273375405550253239551020337895752733643307872534795157863808525131268522216630334992313461835777382389015232280814817381110272426190877627940072922000097617187532299864714411638689769114154628162392176630059587376212833811691628554097961954978484755369842287047088097998739087018742317089259624905516036512168697345301112567614313134406561337558403096881765572975542105708073471824826534876125049001130157039336437164357980102014601920463051817792939254881221709067941660759829111594550347318618621356371227178891835849385751878498292162235123375555385930116498674145397044151253811423634903609678218981205424821057201007988494837436754570331166400930707098914758435289951094876119747199792636644314236791311348708288264292060189051225882071310290828502638688190456685520625467639194378261568292071796723361276822457793703242882213181131885926467624164312870128276539125494274803759796560035253831767949027781412953647360286796489216974912438764037423749799253741433580209430738435868727063722815796342558511840370389903601380788587284272943275635257165834246497979770586493927377182305987721712228850357538803922229715816391172224598433278285465144725965279005848853868277261460519223293556873869928587481884441887915785579646809445301843340641280869281642798157001739266381673783414336814652698607269623251455963627959503436116677713616989887859627930355255511329823409608648786200424356720891339563155858775245030394622057835524948843105574534328102806635157126244700688086145427181779949724928310547023012060540420511659946366244551985997787840686788872699622053435345232111873160788475896951120659687727496593152239495060239584140087829653299714186432723438272861609510870941142011703391985616086235492743006915371603745637766996285211990967129882382486681204245785422765221552024265143615086098117287096419245565039577523249226367591961655320581203697915172091797007738214810894889470981891936378956925321535999274196884385626152801929451208954505961780017402896877006486882697177161506717905867442532435369843964191098123753222354176797239735573315116115752511873681850266197192055193447170888652235580278295025793716831514321962774527884742016818707511303598764134491469233968637077795720756376131184872502121711703386276755803219215241833052663412503561456886749323629185512208145920089431845410818120821295472857211814553730317281947140653033994223991043520211526657104107980288556383942741891049578032752703003402972934783255836336856770436586065025442511250449901185439245923994257340671300721668997979509089135705650358292134144325178843192301371172059614391198919698835496823604590829868170932046482669041459184541897198932204527376898943294255040109256551627177803067222450345050520283281192501433703856030923596069836816472487365622541757825792544475957125275902612934898937176596986667833975663572522705295330348211917578338104293281060911152421353160578893069373003757960785965900770224636589255318621037365882206917524479842938253718159743969192343016122787328100799266084753970865161399338632477756897853324310266551760702391368501984426225393113126562855626404566851309840706805576168633895471121794028460992037338494604311399827118461127126709590722003222066912274199991656299706739371397401328618241617653445903672621449472880329578322617544863739869919495688480588062928119629361567360185104653214601073401304088907257337537489444541697560102961573131641078965550338247238770317579770418655756604754855382390469443503330234446018500388751753750023686209387167348026353475248783360347050389320073793166027594084762296409899570353233908897087391214371006157278461459674252639499647515302319282370749645932964024248444380256798516455779076233159898761953092645504200641700252468765607428878624539613461441451590951125012816224896540714190304334146027550537797161709523433147755885458211316066142778607434570613433164247450015421224472395315111633352379884572816113554527981165727916246563699037477121763222290416461156350512301355249021506105043793100322330553987368087574628431289672630557113159215205807358547203516525668797986617269087101730077777539039908218666373830413316703903252227799320327230890964045935302550798793970906340058810970285225730692918726054074353715923627663652555719674425584986932293538910309982000890279452206349651015022309519725617041003339700564913678199245014630574193878074935914190539256861028227741983949610486205832964982660066458795120194725152984727479097140279749507274250890031819766359168081523548051205439473466742184065694251583717340228168305664550710744197123757655707749242583100629982790489030808428131161692308453728967438726320790973134876530494444523726961888881851688844042408154795944701175834628895151226659745098272820373907171272202867280734338540409354682075643210195449827238238180867807432422243517679584438713936810581234412432640139332919172761796705123207078927501061828853624603752262294001193502472111001121073377110046335783756689152592431414510720541502998656408266056538914410111557275593555617261216587837963520451101699211991426122196742359171683131468005264014780686212247580122504840406857292490450465825881146089295889448461524784196843662575484237805033346410957632359459989777642029374750546916741121725794137525050567449258107707119196700630653699899666958654918518818275793620970360490903480079269402854619566135687969889978412093235602048956526816073429121883527343409049567162044968776804435472601754068553795279999111727947107197283746192636366774386281310923640122438750504500803848044493881342976507038818973208664480855610910789180188987076320227145065232063459317915105664630494987879934323014283722894216054069535329729497154157013644000143959292062190701329570118291637181305112926542283451635979970835852964329819044105961554458326411270490139825055435144405894211558304209855261198159129553629540630491938324344906108363126412216868592379717629757472521971693654128818673548448247464497526753327303794531244756940879377228919862287001350513808946129226468428813043707413764835127959585991292597419144761660791742233966011369256302644702468281552587692616029303664070092988054072968062989861211409882465531436384505792906577752014566305119666046523734036838884732236390201819552181870569356084794415885615576521451716811978095563071562180841711418247140381628606799115848709212712650132389186566807687105849089468443182784803983256137789791105119285062102290745030474323385905291148315783761193701267250655795012528979315626207219506135773902009313937656483907870489580211229586467437077292687388673397259024967395839112567002867790770373992265754451612475873220433906078668338326235114456525022472564836086737257340964426466981630902300450940055061413481549305842513615302850063907384636657204142845235669226723998097211273025602543757379004995151427426270452959379692772562288183413323471453360519735917358431848953143483159118421559625396985030085961156897530623035784050039209286036014430998754027249080565376068829602613076769849996658594978195501592299569757069449791826235989870781590482351776080151631955537902189726789721460940810289421682337488855216828524245730150656046564650033992114064078138259105202471872556918046974159973062468726970914920735880366672104601711965645472480646047344989939693899847033512110641960011850362382290813883738233011457707926881487839566745403350140604943360538727774420454962332347684128636818817735652198742342497112051625730000044258175175015267302300252904320326803134125652802954927382054469016068467708796335199947140718117233398006418177511055472620552416381598688111175347562018809118856631783902410907043894661571174066029010683123983071109725859905843791937047516733638662703016976618092840603090510167885224149440846082487185494065238261353113527003537474377433021259370951426690567454565133948974579344176040859405070083138313978948025690700393304954896197258060044301256872477699280668721203335173402415315459339076263275432945021723809714914784076439357741734498388600671270570680967972833784660781751880574087620471946169078194869785026396374104939389520622805368031164229882336355462377725243035466381983484001677811191462815680057380231373040051166513307918484682310338776226615763280040621158555835955275617945494059336966076459911526560466938277837162245373047777749433617455608333064157306051879525114330590358928506944386039166407800558580103426498656569237476415081259665449894083396572509431461864313672042935431539896506224732211141903458878259744398204585507797963120686648175815532517520864332088148176299158701063201993866207287023795536219893722179916526397273495245649587978128027464899939449814252242199101652393252784692706319211515262147452393869415758081604230006370026344370195780474727979510606149209982076898538713031422105976630933017727399736077390600837722422884794860827840985621135142458644976037787320286981760425262056891558398316312218241492094047622689516122633878633680300059766826287705407657784925587790189331066543793781007143826329123427271370092847264712351065269625836843672755930549141048928483945552781092848948282376762386957867912108080622375917118445939083612270342025983821702322824113301305734590643644794963440029060901125978459949214060044164760627930839347791503767915043038134914329087198822172687519626571551740615387125604769113853283810118990446185379935841608476325916691706354333166892783194916175941160982157554804486526479770715948134054598896609335690984676456179491486697568435482337017817005444794813140013379900296955229788402995595357978371188000659784916020409079000684354797205387541193521577354621060292480352918085482503898286075669997438204727691333595415845837043976308756670043345573041095348275733995812793496929802041119665846298068701185235788541397222869318622407345534994734660379269562549475833541535857061698623840734031294873670270671488786987050860557130500040963152747909994184636374402258293852526570830268485085713797700819662312701610304294613513688699877792188520136352885421879464280379486982408849849358531482926463216041359916401008673319573578691521302050776249310345758216519746840572598037164454898321040792903923983296858982148682294190849079770819655203497113091623811448053851996944724294352161116519480487881227567613213556911621089383356158995795036647465970267647718390514549106997172242275308006993427517705296895369982987058238086449923791636236753635462598285352206244197991026194729815320806284236317749857693129183825512139578049661461522054709287729329207659121705757341553491266608767135352258530781405732608801190519215478887765285310046724521951014805900668774468750936607872376285480613822643026713267001097992542836469803081707635820381724325325477629610579624308067160829834735971925629766356104841819672582605942835290690022737514747001701256037640659304641404428374554016029154141648542961876364521238845573271612229109494183236001168476953658283219907078914969949504938664762774977482517336780363542766304032974828076258565673546561956031120877186582777811643644278779089289877934145377713014364363043429786774446720753819961815531501471816148837093495583992781295534314666519603772073463426851544302857631059500850545999000978965622782034266050430704073099514182414029454001946048687209296856457859830923122501790132593352855931689392169312852643677884989170322574583677567367193758142221818576651248587346251385130267380016335846466282006181447742648946600506976239862113012381099684221562943241313695314245570502299509984660239593007210890178595152379303940462313671546068167268961115699313243429062575640840485126985580698355352238341630756266639436312802708214487653408803363716196379867184809622019443710725746233106605592699439372562495059091823266492550935881692932074511909197321375005270084540624791236666221668709276903706957798971220202210283841662726211061391932318808704731299128760853500287144725855715825756400025261318223890733890880471066707162273513045986132154254249883808106258673625762422767718061926126585605826153907714853861831245719968758615427233688601776683567131756270432981078108901359195503768108292146316619971693448626079017144748481182260847869385260969346701577494744407419246086720630645010394349982136095810059897062397330098445022458397850039312426536537048024126054619056413900230677907435413862772867316428761406883735131071351207885464494027895378406340100084491693472896234094992295108356399903627384670203657387812523682009154174117981724854963446987501844313228952261186460343794495333529607166947022792368584359706806080768142217130867072198833671881108483547401264916089870218924255029297700862037504712163890987787396271182526562830462201449700076084020260485634186556960879794206098253188006374060535620323802070219826202284648559144998612688889986852245446285952685460484973568623333161621397221743098735581424042839086620106472642916170171312643253402617362830092305931628783580604338403510611634089642320141684476589001145139703195736592961126894546379283363764072506403626110023895116803645304468178601027010399925739959573656023677701092991119465222180919138096385312523701144970918849737242225249020179328351254088902171097275048186275864284127018794256117811487343289862438754281777314250436365198963903899792531891380339845175860386174338686210897778717210219720066660939568930948964703810732127481829532870217386417499474829116939651569937127353655068475168843120319024130137618703015361099866984792513753991472060254738893881236433034815983743820130939527005235776485309089570781569159327071985164830216823146123993681646013975312260250315060020953398849987814941581508137147183196538904880373610628813987382090275939372479845474091842201357052464762687656236016038939924977041360922573825999431984010487972401948669169521631951708361459694005321258800143192291324148100793635551812467005078869805189629843841896819359094384265289436409972773230318522190839817694578371692841954730963034664755752114521666118031358535038211707681785937734739844027578230676006046169527366045578809824366865855409131931123205598331147573577534404473406526647798466037068421992545489653234556578679776722089631357663892102462825734567951614592714159071841708648714636072231720447489726723315269551415738684516405989718223533471945304642517662937119167188050012451069052442398074237341196304999471073720852905446186375326213044343137272299298388924577773304825960826662363880704955517863805165419800367583977629176950776678826976612689327049638210874344853789519840520217599876057781084478177477675851596552032168270885425436555245572569668632844005379064904884723676950880980669144637734552487778262648285850509391977034463022217995813252393953100800022759781135547318569894313175870844382310461925488298985648540765577807909806888848519895918790699271809547964636603762382031891047194701601665412398574382414675777854468228275390400364560171231725512170777763013238059772675965107613934064332607335051874352039613474413935240119416255377187718225429105565051658495352888028594689830908281120491619094055534929944734815854052346471427971512301468132787592983478974665213149207005332953254630832844596249599379640143045195919181671760698509190558296155344527289228256519967328310368595141924175007486551692578243389915302613282241409723410065314333613817406428164109660601283857075079076179940061163822966471927565051488853331608791927023056642008416195572864028698434742107392201103083580627122663569295865587908414580799761667661491037031935292177527606752492796595562292839313807357912699131498673997020121183223923188294448268225224260023932998937236969724501106977200386648567613876067257881186914245206234017644674697208310579196376912101306097358283202077700718442777621983069387339082254370117873407688904643651426021281331597505924889820702998095390002082103940797348912964281833854880051771268762433842231710578556838464779356225600107188059893298361004717521525491935150019469044699802811384796697284170575666503911386645574728240438372674462722359290937008591716894765042289196462855068286212612212059265460570933789360135460261337745802451139319353027603675697521843673767270884452572141975415923061903153797987723400508526109077072097200316504699930523051984130629311306176660393898753578447590343138034048896576291648839219281304532670922052287112634576796641337332358280452533583149665043082815756346417177168745245363046632094132311438818417569308155544997734968265657032027380878980731726380950228226136375069414526081131498488715761623077447503956582287880601259038039242325203593682263386428365950809922378218994024458862603952456379569512114965081918445637702949091472395966033716451130810247890817200419727766172355068361872795188615794631743651860605006052262410082476565029100092024762906929671587541377542089316590819898263086177890322520611018637134455966636615385724713381630161096327862163719859612732214939958444345688213266359091547086872549836385137403061127544247316890915983171982873150938681637334182031987527820552982482964424066139819230279728602314978392034746746061696145022120888824790761834859199179312959799995619481032407720843827722575505729872000075230678328073416711659335119027649288894233730128402797186056457533237988858308854046371644908041173601270942973837409775587926791979532005097672854351770765067443520278089316502919967645252085851067782842477164341467060470642645879909660326976200946499310429634043837037511754109605011303124673787514804248641587582953356151781000074167245106495427590909892162316715509984593824703052575376539485125758493121825428138310081054642318945176848351939389999601733115042474061467919191760507502439033831168314228493494701459607234211100530144804642360889565904418211657571108451657921262652411099413213920456304189027239149328540343116946985117459155638866972639893365660282996110876712380202267511570400010699782555250753894148910592931398686151807962908584980777029794386085440915140489558960010279918641672794889063581189556545052369225017736809264692000739223908417333598623406160459157695595155880611828330904901581099218259031992945422612116403188265549046965414040588228990391063112374163355881434379422797289477329842458233471144722254296503834270967522576878657488906180191195029302850355480127162762247348692969173685291377479276085059046367080087602697559789913747932898057384082656384528737420415235631776499718942543375113924687203064862735496346201120633378197330726223378160727034962541050865227500600448251960832707799435443815148897267719680288828762080888890136233543058885505079495592935896646200307642151826421861926405008996024683387622845823660063274367725091873587551656015819254532412549505843351719822171382588914119257556928723415230370521117057539282712170492924373066983735128999216544654605466354062544280007502269813538532704804061573235472592210762256215317563004799919122927064065960570648116469109812659178356302825253794366611684099185987353019928068854018762759173706008330343978699353317941656844278013516521294055508612721172316899946827629348040033883794436805711106939972469554034811807485752196924590964147291171259261649813867552886549384049058579428714498699776895275662007786640697974408953775366377165069696943048798945932879579071713823578960483738267545075561338077102163420091345746434862219000274289403435964987517397008861555794635533703296121940293431563102416629859466265161461974256637829233105498084423802082450951443211195869776305469569466475464615649029196538567695410650370820653707812715404379306995005355697503183612291381700235573396046303545649616630175985840888549033805787898794302084965088146689556175166662128550712009152684693775070411866283850470615794475327271875867143968012834942952015502496056944702944781572411866458297121721271164942688796697739467145549213809673449847826615187133142062703642409316773901282872500117439839075050709610264458133277164675694278459811640834459808601310281156160084322249508558879885721229659604139599728084043969080305060376453788676369226114982080819018403435835236211070270653064385541780178574285653684682456744174407945649599691828061162378916301067005185164226045202270453461539263727617846140579249513893612908716500803460352447889973709317429162144643254610206715304826976974829388897959134187917906876873633096388562170786851191782467499484001463843438501640991905777661650092062300876649794262698711945677517601546750451527443847555330620120208400433693657913901912503750047036448738315454531196650910830637201127378056817119494505009786997171624926048645964939929848480896959635691527282336627634875057943884920931568822022103433597144329330769528981697330999129147843528506728043165919398549748086152887163062298158588917714199402535947218818039005750214006112055209042087705772811921011153925503865767394012668291950044325590464354662279914344413470416622478598725215373083104339847979877927573111792266144662197490731897929374308319144030089961044781099774785898046870806071160078468315638151458507818372204368089834251352773305410567718586720895113817272471334459600551714387277659443376463998928013635618196791970611735372069676086034845285073042779182993357431862261875680034272265505342259982364489331394148394228022583895163500557685116814206548204889802744943245105542764805255050201307382128001380479062602771360883561256571105167042956837615544441387936413557778876540634252265297852332927708624000041676707929178822051373245397398555908067374423917587455377499942957865855499169701595853939355602602735232756405819492777877113103651430475265455700010872434969368151096230114724855271775888229626679324239660664669926918470217094355251134948735250384257038142175966733995550565130548445874671509631005173490263980038212788974991685621990947965994291813694933215002099732814548027592859963065621869966366063772764151773461657783420743126900497607100963266959381579236707883190102315867160705215229801243266153483920952405334917421501684964273254961041068261887899444798160539852034171379011627548817688727609214528439915494340607945167345449768539557823042664011803494723057003540795121112194096708291021319463108905541357860672619164038623083711229449790761138717902767406802288345331116112977265212421148796030334919121900691218285140326871041704891744691812159107599083228786245681916534104777019019067801692834778926657903766282641863538669218864742735746870448471254099803274520256373338676188948181025797617168442329861573247147383561419532440186245659841668353733837381422211752973600502452360803946399560567572819847175906524646897012479601499990287086006912309891150445985690982337260851107576116310528776717087609598192372084611232699007930011167427623757611697577176203321665708769492540251321576916279994630742157812983360761411769697607102771501865548465680848335679809394471925304752830532752533293656289182008389980629717427338148631607698403771020370390866014327308252109161166632428998815686934014736129445956666478069609941043793943246198980273920728922196147311005128119310240286150050968934640193424347445308984921896277091702432003231331324371403265778459980334822714659402285547823622016874252515596056120801839332939697397830661561925208689458006072467289062448328830981801698220409534355903320747708848076964572407775286123942386771204266910879323608036970301331397818548276543606321362190039413328092593351542875678994177920402159145584095145481555626843456522439823591207522110350736979134967137821940653110202044220338638756414150230533466552474452499058107084817448149934336765009578268121403096160554716008500002608134309430071338652804634686170675734526757830777849954277996237342812816645268657209871810212682544013341034407103606154566957993311310229489851708116571919960592763564889016067495267714354261529133565887678588718414492898652837472400184237927116281924098248066899575472174696063954075849250217357447949714546213425020808409879138200174664511385817263096941249107859740245781565924515609087623219568908358041436828932749991456895429938376927028547194827295572174372395614488517563498506997807830536561095467569131058870137890238229728663000518043411348972733678098900841090362481915409374102049825578827894207087269300617217721308437826404311755384663143142658158514704900732134565134176021091656897075444207864691101709679439304664667868641412776955355166350900572719564407656211651803677520992470150226499505990678770709824030395678920490157314959028212571878074234565614474804516313219329779946023842629328860760736279831471071568292864544400001267550469054661775900956430335617851829887379810144739138048964332605964579040724628555552352886468317503436231267327975647998613389781445923250688671872656849153854428269823003517702383856251734617036456938829165650912999680882619663380485029995723474243232664716055796143102949981206142297192665912519324002317374685236881965128999354665210169437755276610279169018940582831567609032233564774884005561496924399217631668626020376854971086500733035706127342433376086117784069879511051291075367642370688869291415543024553534867008727776672664741476701031366472823377057267491045375918082397815762315701134358215987515464939112642673458970257485333753438447623554148425267818349164274788514239108133047833218312312521783862269276232287907028412247292672314764466238784625924693430722307414610719477785952582378743312948787598728955538104846221778276886488672186225474133762648212609170054957249178922158259153511324364141599679823089130326662098430932696235402882120312509758959011611043812140268831575845158965169945422157486569507178879679672933520374343412041990852116913389835260252687062751913058225150003765018470967640171746329072920466988790174423190687138514807036358442478076910700371715720595375842748069319169714037931141812823235901441248776760815311486973766645899087148402351389049923567031041703829062818290277470789388376262220659186521696725403417469181813670256757085962398125878189455707179062749530354321204093900542712553455570410056655887497675645502399891373055690053091165273666051303613522584589276202787212812112465814152237209908998820164680087610747244972730162087280977168913096462063576727423242085667167935136100574016985269857402275536763058297347678894601717752504532130219504917319155071059880031526806671068920899142787165893574947466769135447043046310517178030551485093334965142524213377011473524786472035305565834478885270389350840872177386478422136218698169599430717723410859306384238795783630629032283627862860416949592026918235378324906613382561961519560090993249563089669281314291242905152095345945029612442619952323381136601901586959739656505903846102064614364089373653725766139559822536504224086031233616585816706784599835021749177067268741259232142795096807532786239396830170924427738591592873010940600329475081617235268653259615133584707712302175896103002641129771913326466116048506837958930876774396234022879358336739281001548011532249679675215632744703732523461909539665788357925186219535928254092266481027265885715369553278578220299215199679636484909249570124466275077015225190536715266316437064602834968717818822088094035564115151708469462758954676129860425623082512386321528959047501432896704137202944499863976806041516366060565532934426500548494782820973093499699705340456467396094148009956129953277051583431659497779136669764378173629586447966408743257232458177223613226025728569663576157486559489929007679258835928252921265208426988170437509636036724733758376343565187205610638005052001911315078385272046045663971088268436356042652045416194167532388354087601292615689438163771003246942120261399751610677172309998886243149384923956947951321575212341325609293304554969862978988579267470014000398293184758268131826133092669130690095677089714982871127884621893066809069840178844978269672608617859983058914723675597945843292338354805713671770842382257946379933710279357612838026733388954567279523510794648964144292904257854160127640695786207228013952623211855879830827341406864879215432304863713537649908193174128791382610358831534965056413881816411777052405443999366412863169171684045388614975849404576580884674286654327449062659460864592455284842468768954833819879925102655029603861302330406445599033491649939088047609553137102119551949405757981517278665028049882713767268030615160954605710555425222974522653450404213475787331744583076218643997230032716380431292667413140199342589445329547176595940188427156208096492248524990016020365631843468432381156448453359885695394760060828585730952457551057336526387013728752982840199002666108219866633155547892812830061012132376762659044762676399895219345198326186035755931751487163787285887833861959486144366192834769429481605398697710203820578048661799696349117353051892279004862957142356542975751867483988126399841351665517221378814013524623570937506434887678666422292386017969608698774939686215594265389185661617786844606902419461563092463910073354330200468608054375714086174437739592497145937354658407023125933904085160526333925084595026298456301675106261855408631677264882400377729481477104668034570067645965239967109229131415094246007352778541819480901484376535787163729247579446627377086698073856294380307363783972650086401406182445847733959619490912978705063016357291574454912108731563327391837881543260217750470352299935336441713483601335826595536576192968316639721091856265155599549395866177591259500808791634990510537730242929564726701148417788157009986917913389406225042754952217222850638107835280042965849543643219340575417911563475758419030692682517227470434189352340413553804042230086511046930074748931354922620446918340578762589832246034083610431249508611381564706286120967042177181092506163043474168895076151666461163391591601515915181619928808523872702892258144402618329592985602806860911449337034298474795944806805303275315943682054874275915530733929918058616567513303069950879450755212859159036328764647125127086161849283414527168599828897037130969891686475659402151603713821339685074997211103321746671075855574969361658360658597496651633480789634051795353040498638704216562020958563937144188377876297834642888137702642491995349616177049107703665709473807910982635665390715186107780440443733012344659785718302474165813203792771504937467303609656535889720131549740815630396951901727127438399911483796808381049318323093449532123253643022783154525973908967421953718609987375653614115974005360040791771058594906961806471504552694628546265199564467118157110252743857124805080661852661769552154916754885361370410513609604563084824962482244776214611946896358406961606015848482073691162413877670915412183579061657956727542876395620068381784616446377567297874201914844996076063293274245045614345219940297490171516628513945521497000982863844363968003141813981338400800509096886343386890352898292212654364310094961223029538566805612828171061435903891771140502781743099083695055689814489618635053972075841276338472581211963473235135325928578790115786409959786572988450288968184764922505737377607804562362563270778416687402227559435166368391685642119191158747630805101460478120336994012030905311454800703048057400313328031361195111849167984593490371070893042703720723347551717926388657051747132920649787120743130385552180986336435509302945310129772173168500694080187284839292773202935876697154761020443223488811642990099426904591531868874593373811808704422876650942739213889316528012082990192598230467688893815912640222839028511337619898243245507400548368677646379416066289885026767109266087506033047269758310263461905015663450468611899944803272974732343991872123650411680284381541747005128049164986440574321786184489878618800010452438562996715309233674334548089680475535386058258074812215660796762593789455597447242184433733095191409665279187960915737648380047669742369310988904328622787181261389965360095360590623256003590647384572707279825789671699516814881850443674345387557947423010545824567544260950204498867438724569908758309408373796782905199963204928781913486796193337857011396700584327541552787203655449872912564646185016261075317255667213463286564250229425202866050233159953734109529084997806970549521581553389390625435668216812139308168035375796487141870105156748252410750523586585323313768882836851043699214378027531291501664355128312874288291232744643036299045370408342901878434808017914459228641150748309269561850737009491811430116670946451535652977483858893389862551398657321108013988494138570614979072124514605687772201480076723954172496155186444522349476445214223026833527995857364241273932649207714601690065374832892292283494428309243108209537924871370954010156768294799877313572484738024400592968365206106350007432275872707226313108180168699657398933009942718681040686129142522057133251728874244889247357866806536676767194566862040860357406986026498105951146058831887259301619710504687049529647175049892127854435180706108175667398951456430463582518999733364619477101755391660009421170806585036711966570822836066012118195094790805580730107192085225345989410577476141014564394417018438897129733612544866522589095268336176688764980583207983766441951681788376000484374933352037544146089680192747952303702358481149112108318450157484890521559685852766778730239723843464571910187503981395452430406163577942600861188838111419790612763076998626973397859516334766387945156486587261325292647960050788593760843290885060281741965678122005500850543688709792217168979539936741880438438035864196119142154856467538114185473253281419864965178617885133773800942598558707305641759227799569223700374756865128826062095994700159217598482936672721608712876090822625572913327718952143485813555139877327964084558999291154200716016570204415374703311087145647486475936305066507585741001203092882083163461670806591621416989214656365305360538514756519853667723221520657843779810389370763379446383403589538315889216259284844381774493814170739077875062135103112278910376237888656313435200536516590720967301931046766044603746541393439544995858109872178136521991193130058499015999514565392854554032771489628274493040306808353355340411554439409132688942912648541415402778779413525504812534768903738657296083874140139266692179426291712477396787717376792010495090966114214790190030438324933158899554095680703167156212352731777027704087766974552248752831326679258447962663827591919755928187724418437688536846967397262797257031172238081756566011040382914730145629025776654452159166519831657025058797267925773971309508833398436989082139821035839675800861870144844100770281874538355247963806346877500520510713988114152693833529301012078721551316084599937968912765351828354079434643781388533244226391780768802290799170812642447006849496540953447045639669146265082568487656825739992344852462826535849089265676896697436287685708841011071559998772260999458737145946561690532974342277392720599693000306427771252312303290770720993244852350699832822484505941239504055095979479227493015037595519766812935507920661550813092629621270462543958767126294528930949079778737618049304605434513726984203061657361811109581723069419097914586750970727376154214478116533150952359559811825750548313300980239819678688690978974514878181112989397312721978121670677180001968300132964258888573216187344276953210767901506630146480113338695224252915422643848134618615260550476253511529072431878157931342706889242653058722958648618995924107334741718908892100998229749607762277884814672452519070084255197360958954903950118499289101358290096261575148892909568057496332809993678787369894701991660262606052960128823995053225136934038614305686310381586437622569944751516601747502804014641373504578388755602618617706137389283283183157867160126030499601103873724534245678710102393801901106179465853938703669593175088993207815615790279911280845465709081508033211463854907704311370907110768782618544093391432041026945867302521734415325566096765036729453979006029142739344574077259565947966487431160378836684181486907707000609688248972335373113226828280235701741815189781724018798218174834910521625160878901134342458800927479781682592516158878934160520549482851914432657496748088858032300879245764765854816400704922304281082305238586082783081609719252060883824498591564930132569316907464313938730559122205297213565186215584351030764496055813829500357405975194649717352097374030355040010689229057270274249156760585595732863292278455396235937301740820050076638985197075577657954295835017517426794410248007837218707402229474311351518725917762639408652059543321977736257193586543241194641358658484122926726099825303869714293999641111832726296309681267584077140217396959573460408440303309887005579682907817226953129710619611177324862297961373824094894415894567771517006310958193345826560109850431449946226065785053973846900062822177921541783882281212977522422130919043944239804131655025044948600232699995383489073855303889534902994278012749374039240167017883099039532988959323354296884461206861738053541001703578522753113512178421637157993993558573832994479295235052145239389373267429215070822838672572605013973946449152747357046405154828727812149130464343647168696462407282527986340726837394572857529401478855910049089646535970469691132920417613779538693831537478605958491557516823710342282866272966452965795661197038049865415854878091609516641523329144570845773325996254138087578376622454003037647856360523677756588556702282690981992563887332440199572766038407869976444852134275314110156016224307775478308803263660312680310091664015367821052791887008763416309239514914537146137641197636685884439055124674247124826230763503896764679227023874554197435886759034962929115546411007983073037071905279829883615920986088331760860859546694229642086674890634018521355526747060745759085616919478271138380440206315968584508917098113818489217350994278912444687030135346247930580566422020204228043070173876266452028891203948157991571327832733172240306027587109523440649658833185800864528234638145670503560920576213174456102343463657903780371411701784464540431820915033126641526396097927171257717148873869882221775772638322744702139925623584253486574225838395141990627555876220975388728535195311255152995291393745976556611682878070893246009394119065324680434783791729553379758130103546897449702405302224514966059138099838767421297794255199304016547061492928549403757942482861058828549763326173681234929977753612723468609108763216363974041889779020870578756472137397258027686842218808417173684543733393831932429778282298189403887872088142409570273900830243672860126191969555162275962714728228927117189992180666526139966580624506719287047590589139396001507512906249215901251331925137251453328129333107823287554076780537263413988443719486448883754649666488981319556361286557083152380143037655645567809285220067828517010810478410458744899095223736689078779204635984568681475008166709666992661179806280284200353849630803256871977387565045609584932507195005779591337670240541892701616370092675590300921450246623400319578072205952553475294101638973964866221903886934224494429137959866370873040782133934249013551722394086166716742562805901980410627453185644811256075076508830015482611106854690802565753687388328906620342147142030684962695382631667003333686849427028649781514435799300507081163313065682895267211731947234003848420626199209754070877247911394406463139648263704679058445495320116126042817427351850384330015702590458046354453103942588598339569893749625065024476182206568430551475438930875509768345143838091335961907573027382278194583473097803571367937835122267264316200864359680570498371098479172280918295388369381182390490039058315783146007226123306108306477837783733792194509738946977788653819938126726289307994254735812202748530349419300006352007023844599976645372959798383793221517023540333604069037432521402569075099428682539809806007927112777020743807256411586743574012554051147168823448935581372374300270691660103982119395508819592562669253565513873115479418612813719461615734249129776548950358555616008869510297062177770356177567643358694319795703593621501017901904580252597396699994744779853303656940838057954634566041487714769043462706864934590611387399380716178231192998056007677228438549549747357154059897498474148384035566166787374449634723268980181405366177082019299781879659791284526525871391030854311818392952557537896375270836053237428334374349669789457946521662152593962565100520787179852236445081157133310811456020454168604268037823618340202433083387717489673665250867098446793937692749533582081469385368735512500952602791333950388471560207774243174060806225885987149021085746833324512753002439805712191818959745952883487824662355772348585908082510774895270742386683375142016046480755252177299060281360427395791256189088656043232690571168336335157056302115219389480440813389871421290405361166142070047163401559542603871755109245354833968080794265266201383288885066304428795707891433578441097897738616327068366050167518399357336239469699452718464482817173452013448739468634173009746565864203138062866197421518111577569820533463790734971368362203540396643163720948006587676886628597932884822099721918866090198878808713057531249110819411293146563727064674644693376982354474744700601844404422155018415266032187913543167838352462497171400226704727665940281301721823880708844595049965411950588571055115262142485939157086766363685247920219405962857154169554411337284888563597338583041370202158526800378275728679513643246481033055237991694841613632487265860605416390917451391368700407401552366001062861114999652172680059991836606254946459915505679738519979532073798968594309814178404392930219749486316261850659249982853394879723175901451466901759723602746401528752801032203784920384513534767294184044807195444676260349226460823656049909411658720913630886289822992961441039519758781995128536591821503862660971744226756231865750751707941288052529073984842234883673015207856383709397711863847398220209390106469484575887154717533632307480397704231536479356234096564990273455089040555095515795266660247149364051135468103450782866222295903881680695634877479163168011550389997340850937271638656892736755144936444916692068618661851822929485492249452199862578759773268219489222945601569393576739497294174886486576298112275470438245083887041096748383884881570945845534070712641856538566062412194120218094261734403281837045353687074524992914452154229275089024085501053968304414945222310803988722229768317133203879928460845718674335944731097231496395305577179811993612059789780358766045880293010216980570847719903470985229529823995074000720729816132892576860302670214212566347183229647285636802164922869181698607619627862565621666878797350126778061042777654247859648596301585783742130119400115968230635077235017218550980759838649859211780642385465317833384066197732518103748979166090842231947735550158913611539615314750740766929050250502917581475211209766511504503738006027098987311965326366620791325101712755376018705066351479405038397047185971700973009991072124405871480652854804147698821219644359968684634711189628766626922155979570169679625743935136336302094290206277842489484584770476636185807389128613107029839690696352388371602618629971684437919964346267817091301302315905407961708539727281749650720896331542828148168348919602382970894612874631832897262433233018783747219831921755308278010376900361906572070488649759681397044209831917425384809900993667875713229116380930416625590944531500033790784027083164373223606917819822620224242929345689572466910102585753570896265053705364344917794339955583175753230161442595516132353410047568079587218623891352545859058828982256688447744225298600029456260466102442079852735800707670854157849235929748260120130176025897135916778582383042378804150148251320512923409188420280267510274556717556961279850236462185291364935283653492313711144758186810813021337841020785227576851154294307334230731376340383526086984515119249686173478975082098597716520221413452880025932140924153897831444668173823526067426943916176496689289921746213463755474038953816439888928836862305710408169558567560955765902687092771500361652317909239495467476342866748536526798649193087341927247103930917481577653001700557741299564734217919692407667245833720953116138729335672496785859572036247138885661670446162869060811763145181663514483665846166865258677602912884322891548082169731744797322745627905602299229151948855875484298672469768174402356996264200053922393576810095174443842310871888412735260804304968121218235154495399643919057222646078388541718392854450075912977930810113391983628322802931984255115371134434845547450465636529749220022902307227022815651026473489807226768025088705313273039911087108339018876394898914548993815823958372952065719355110723168727594393123370590440975502795138428763443345561095002162570717658276112593697197773764316778645355778519188149125927380966667939965836253258268152765161010193738814073529707840570216536334389389936523373983956084710330345599208375526365226326409296234617770914100655603201136233285845837768931797137505573413030496605639167666127910022359255273127916911595571063266037449952319706953281710573876637684872062469539924948534153133104902872810922503262976242959455851708588418144005345999277175643226167774115612132696239782574138914784220620510211430063024850673175748542236031896867288574340556178925324690903115828938547121661658183366018399890707338632774224072739804980059652947619241585232600749523283659087381940626218565918079334266094070026860898015297148795971830532099946571653615371646188074592201616716290095750509633879674451853704144679762304484356019480997285658030453715343748646763340871924046121056004927629680326496860762231446920151904719283855425730599349479579825172395644548458324759323205604157417864786856949722498355747162063417812559691654153763986698408868781547370797156797269971982879790687686308540883399056394082934350495953149999631918891648515120798647238737196445368368102349380563823943779371938162158369153788219544855378678059069005152451844813202808925535167452673590773650228780903038500190910380179177339540003455868096870105196360361772523041310359874938606447480334305722779383290432620608765938978966561752379016550059685204240838222649645807636582127392490618278985889709840920047891661790512459019156189234517578653508157955289021046843901726405449470669402062217792172440606237045479239551354883329824364110497941855385507101186571719683719842786114040661519681495951423170612554184557056634047377206132640609568940331047308015406360486271015885510031687914550345169194998935267432611748540748477253957177843604031313352090646058274966121629535951079791828739551844485077541145778560840460957929200290229579954413068214545424329912333114287984399474156156189312836881817619124365393127680342192315952706195005000162875542818937052543822866422815187898114496014762646142565650119465584961328351913760932382837226592190034193310636150065889263475127686108727363088877170832756835780018491672518581922870523739343144765428516868821204721186315694420525179583876790389459909646665950403382010413721845425267320357040043863825941044974323444471862384767191434620191768413261313614475533987726428521959156263349333522049293748115414074094207030761832199820331349127762539197179362517790662609757442100751852273571618058601379720632982119817340595491316768734087194622699656359455928119005430258741452281658136745819889446337143331286099537824595545409175787488659419781149465854117121099223005744638261442444048550841924214035516882757889593107549402119515669089385304245119897931934913906179070199232312875611138900032337390456968819990669060410874137877412595844107295911562516445962273775447475902787808804812553015646941957136285817222110199889955436934835603133022338698008219011611462371775352710783726101563495278393958587161614328438318611541733778029965738077485234409742538056516360221150088183872011648611995968060475372091267592493281247860703157353209768321507322397725242928504432098773934264580976382771260401090816621834832976234657199415056743904529721843432685055588216458865633635580092895218088616367850432567817345990819930470596145329851196502203875468772478071417107911985244065179896705924819419846633483000083127786004588315848962472502261761305756467284784384701993234959770202269369176795846881172426177538709676036611133980141445265043914317227011007704851901682993771574642591573426972843099550099266947699172306871692230373957025484969797319093391133760433270957475918988445427137407423248184322892262728000372974965958620371748251833683132549267669966439617904682054351093070576370807588506241149434059852281636939037423326343611160806516471313284739530500761947621891157029968013587232426932662751358734549136670281667472578912525981696224969351693139243299523076813632508267041925010601846742833480357161914903766032857484088047073361486422862628280459784466319776431489640523331307691399253198813008393117072205495953797495993753411674760218163662793326128550224730545650456007339128569024670117902909945105035453512268775439488557710612046589810404063644097546844508475201313581380857827056125347147456006107525316561140918278982452300709939596230187579495931602003982442600232092331086497190648523911299860078460719082034293639703487783984637820729091330012238271344921438988747889259344299622014636682725124587429692941289215549494291578069403277761099740662501301932302257615361519116127751226781403422649468998485254062714082660143014343879058042183949971697170450142377341252406742541434110614404152371164265253094508927991737530198763324054832768814827491596860402713273468583279468223127548173932318325976141836797232946667065096926702781700817094573228247092650405401693387766593067997592014442566175295208448763517564317235750379581430283813838806530498426871771110621315957616276314511981390049050460788470580936286104868427835817935075362177331886908471682080895168081651179903915222265072901292767562132387677609242313288105786478379997082234364401212058877327172117079797412664904518444572262055698701284119079682336964168666701222137621418044299680609912157126386094800264397046047631344361274560892247409779870168063731829765477807772739904801928708807164531957634289256982626753971332932291569219083527578308198436822645738880093678860447397156579747653424335054383385698103678049558027134663452847529939216483635265660355988630111004045096141775643212793303511819075322119451465174675889726907038164739943697242065422786380295787904937624007923057163265089323469521461881665781948598043283291845912220845238300873954002957715237597553818094464029987246099872039930648537756715600343587976602527940351951038963320494418057300783137528640757752934051194762958175450514369612212963235546375961671502742468730161261760498398684273066926219509199350477249475409006554778520402559738416895949339507019029484873040945594441335514250720958870156068622357920976969830204885739476567472329623763596871100326740406269425992335172140357236942888001657593113215426857348209214319570740597983924395996292462968565202843387677769757220672365789894984672361796922205594405060209368603533060323199432100626165623978880091402083254215790121458747559627645863117341816276331887686053415271378729818586148838003221049467789567088696387256485672724766233558288658268813409079605522360543171546719298321310322063106358853537524993016189667900402818582139554831465975025440258219037715222042216775504122745567410779749010919179138522603681599674319710132514863638042286115791727101869743874014916517615320528470409060650149227627465499383184619413906741294877898664848240043284691551330170383714563473726161748323625316986336643251802208187896219970463543384417670371797364590565259731974581075565570558258950099383667332917141211135424600120674733379234479079865281581250141325622087321957560625617466639297195504533023464329974786891863242424955712404061260924158408400001142240905616560220438637293683831672444637528651973965995993461712988980229274593776480833938762712923860263376661169906766963316745041848837065583594544604501513588116960000058344088712464041998443622591364795853879068786691131189353953749088856502023314020419088671672285837430768104103515459396911496264746668772483663417607319703376714282762549302943686672587436805289695785290359483770698718283643255759304214261262596985652195613390706783952423548323388897801528897125583581635987768809882702603798042929952982704971877766727266921027785118705187875785600085483521205521408315703866725179833041107704121598096038335066674760677814788420288485532912023710287952117651088808414679228522417270310480972764256626617598440294920408149612635906018473344448041628230057239392726204815068946158344662477706592866457865781280524943789672397386071670749264909550719991501954564464829906617756888910463361330824906790540870053342774084482988448665729947611829334744202901640130409236954970719911539811763629599005886803326978642654475996403905283469049661805724310971982738608673893295864511372782284994601631207603064463832498581337136391655998779699887863291320820535046015727249874279930133135273876104853715768500802227317021598919200975263713361505951382215839515169732407019099288662164183196313392697620002649809819228028802391797261826180812244133106212880591406539063026572938251044489517312177933564349563262408480394578627500722128306825340518893222786336635524497114465770845194288947817606376369308039340884841275819438886448082785062904599902410278438254399812867747943457681226648740210457859390266314520068190721250713046320011587785018704516290675497186452141116447927955041853288636816577391553076589014422641907775423539965274370591694719402629304537760915307410753521872945902538450950744060632481892825898542162022330943979651309809623591675779430268263125185914475294824791299534827224930477357958229052540122179203392020371217439810902051060467852720935737612509206132755624193175139858541556768979422401705149388152417368309676635592987890318560521908452050108521792679481199258210408991701631758235336236135163131578541577191284180282767664001238782945126588737989702448332211809544657176307715641271110380747267787951734652221245128479752050160575335093527042364903115322619065980406194541081265593258572271253591992999041055251572832887139638236910551403164613100527818139387900167146139583591829819470071695335259885875434843462381063437102827189861126882202874986973578647948824359430443255973468200057018288374205227221436840073732514861361698107769286015786948063727860176341981479877986305127393092317566565281800900789044571777599005456541383394917726767677205105310644963384649304155389781279972733448054592185190689319809073331427716618239649328714299066352081995164190031782572308900439638906615634125653660471441488309304883613561714053690949435097407656175647251463655775568540908066665262492998866390836587284110937416286878911391722524839697550485809513476580249580253905403239292091559356700877664029370716582967333366388982227121692733385748436500603995246372889720976087917746730473872949311041345374014038020577169658907073817252303310602866429526065134376100109920112398049641645734802323396066489319985632681737671478739689290102652533973419717958064019612464927920624312851399518803028057355736619364240360059128003134504127482417725673233075218365544537891020232912564745189870058449323872973216830658638632334415299460735580815402628558587334664679078860022944656763050504260182888144004598947624075630353632105277413084715323945074162489976809922209325223393323332545387347955014152425805858127783351276559087026207329230044265181227078860729348412873267306431639157459657741896572065867512678539233458506896117131519603282088465000410240376992352282098242745598191466951076701691046435118597800603136446603198783111442534997080396288430036416648586920935569709298972359165432696943194510173067648863475648157529803866453620143123338941203374340533210254359325477453934764484076914693722976425171643019835020547076759373966952923788554686932828802618390221392765981647083585825606902641034882970303689196221949417261710483950226020698149270350053505284678349317577765953533169396083864363752165988936015317484504626621355907694335001406240090515825065585399822060719316737164721657995282313020085432775163184698489583964638169037167182575295557293718880536412947182785143607550575775728249188458303630984570678237010729945826248263550258511971784775057229111580988327624503373126443279024587000346171614025042922332629415990433956248177373888801803382703352507716587366183228690508854429647426935687123929949658064010023666108650309925688072089332015052517458658885503192344923711721843247102867271819442735309389954844092391746386015395351949927278536907341133490465453170878949294303353331246317475113707453744924055368756863342264169277413299435969457676936489378942077742637701196094746059738240801337317369038686852763189079638307567370583821539278276762001766360158377731433142810442199081558902488136013889048106785089843183847238571137461624433770352551322905565021768745210268720045715981063948628151923259423563318394351281966884564276625765225812479506372278880451735507834180154344216506826650016720812919677778680796150556833979107745683840375269899295308788526633688955033493436662905457781189633585341872560757111195826332991805622071487946371787469257140438347270095158897978688754023845444797876004153032851395637681636284522773670950880412500367448507633560308592000228811261076765962352749906396335934338922324912157871254779774035286450516940128906222687970172383935775386735440973046285059669701867984366023869796883624013967825862397133522214506362848143186746711319973457001954827633427222634041756152748794512011660621179301282304603882294049520041670637489530228189832116184118866442835603214116068087354848839477726738232216459690889001515258930394821489388593993124431084276416044656146803369464301328412067290521010842641719983223139308468569960147088644714239685122585770237906440849156438665315365898140022191031736221097227791906640525339197533730638169376602627969236380749068097750679757824975684211695366552651714284740308436808691001600320989884430538571649238218434865207480578922273660161135577004593250921985423839989356481456761605270370027828590849533050475279057127904074953468056159646026684472140365318527176357032892544259409198838646005754854111681042443550549456131901242016685502371501865544819387376906263577121178300856446875343302482047167693940699842479511615226608851482001233599527071730100742188949375149387979747954938546857728444804162641381475910227118764137407134935680636962345052179450798805224146783545441152053622973313063372616241405822139706030568229563570282097519384433266391732236861651917174041310741320245641094905789785214821320944251556210720716464776138471519355953386597507093540800984893976571641525701330028723509503440341408876074572777773281533252151827358055712476087408641851177633032989637699523624432739678537542514792489358912972640494469032271867055066071225205159209259583638256261261768864592238348698327313947990059035566132894686599052113311571243660803397445804141238050307151847341534758211411297146942047055280620664330855566561352887890172099422999173964690701002429430284946955428992875420892400977632809482106912324174196539227795437461546496956617732602225136668952388251958676022402570214812985108918780973911424400876180588730424180707463224606435209653623470037209142064752283168378071638768120718784255112911558325034238774634942962909048818244013087533434748300786864940408464064900337854756979170757783596839930515599097523544171308977802815271455388403917711383526949520026407719971608567895554532465364917753559588379491078986048878431529582848396216766018960471026601389318973685284150721708357344583216622232423102237684371480674690881951849122541214815958441095781343309304903481501430319714801056123273461818109411620061241265460762870224655001977254616050596687255934758385228506503454882461207427822539820955834068602233444598180509411927298314413706529474406864475607729152625289364294957448003344197088381332048046327111132241399287857159522998260916958706024921855907959526391919291550384081969424423625887203141185430487932437285443552461379752732380233140948171591200648138040522329616643269517492867456985692486309609850525144652123436845772672783427269134968744006446652042303443603952423178233945358727290100236301974407177996027574931618961008365786887263766652905511406094566891933166493389201580993378174190724624581282129620540213434555611554963654187601429991550748556379273635728321488615185483097253424204697128476172721717967557593746577324885390435660962919011554844398499745356358874701164412189856664953575096442232615238259288576113243296894582208403127310989820891933202461508504019430180035528469699574178738192719704722084596566081095541239514093521405712533054583795034451567742420041415029438941702907221793211110125417214868113703473402183027433200324055841802450105653208393048670623805438499183216408753993436389471735021398240636023102980466158175560301167071641341067323154470551132844064082460216893927901621465569616306885549143084093678374490199051758508567894096315470233925285274764114019313659039847393960778825142981554225516400722492192675099249305774774989230808921285566811638427392314297581692856302858179565970254295076939981991495578905859233946944673095246672384961313829859967535746400012610032333823873368594558470375535773033043741864601274078044195851247759491232070462819178143804468044352485235230758582936671709732982612787920297596987954386168358497585805131467370543482336735799300314581777807607950093325941880784484516138850392769939081077494925948869020107283608481679456131419101755743858153903010131868412189019971368677307275755952133295469595420254474998768924236274255483489106803659832125479625783668464116389045738404553569620214797060956060500161263348874061453549138981355601899307095040224951593954204347318486833098929338563691978623167501848309027089289370544154781301626572861884554505146638956013013741773484447675566668403760628673602669669458854748712097363919903328854275177945668215534204588939344518232516307599481146661243337926024263283698420411504447819986909971932355535862808801002097442564152769577978791142908276086153666197516655125330382092356314017622714617055719474359979548683731034372428695205632306507239111028473579873406790396713117868698093347391108270504760126246434028214984059708421082625521810051721484339887576551965378030799090636913729203794835983004187802621427951473848323569546152105813521901670898878918986414786739845723064763677116090526659757381673996704616174883490555540886399944143100618496475377770722672285545644515190213917832440147134108215296499634192736023376860268962241815630128219323147177054562256317193236318962272536680934175253205136304759168362174533510808479382239108353745439413928628061013274406365765789423254685734013632075844382581679206174309924275030182045523049503868299719805910477381751553216163326003060043810613804807559769377230032952772945366465126435163565946524733652670862802839921472487718841290429424027562345423380217810697661823697923575711019232303110324611813563198341972285030465407764282135427521483884103286812643333683075795792364400221957131261794090850063116381012264309027134266589564871445131345808240427858815302767180990710422394736064701639774344405955079817217122588100932497580137261856854855651321338628587640742670021783862940831676662814091772899019541313395215595276855584623994734253481131904818061251892831603037218003196351060102828394473222382265501909235342514875771963775229921171666777566920744906919371037242828663287262955946760590101382713638626886262343144151939457955149291177207340784114974185179883126763054428647020170694968189691666098813723183310904139626102518706888731557988344237527078215220970383638684858571368498336689816375348382616033246717655469403836972344664915987413807310847646359257068396616243277778490202607224713637231010861896774915396684520561637721137489225544914577250166507501657678706695183405508430088038192581442073457971215899266245773036778386729925546395237315746499152845147901337015601793168739104906334502164658929648549033679876142038198139070496137227686410767513590183722428680531486113339289061706798321461716561503784404709838702354588229737462894332945779606818875652463419251947763532534964528407842283947674937012533630906440904958875586145473001278790915566500907185889264887520611826876830400372379073523998167995866932441064576186417739851401460203097456615387449792108974862216284091177486867084450894702063234145727297100056762493988948890247643864546577117127632369819791778641791014393509458354207309706296798146548138056209371021586264258541825629583166254053567623801349587795162599537642961198653658876706070112759731405949929621863415299756791930278249576006155898161586543342951370698376611226136457752952205164064353327915231219173137175437533507932194571040444757950548233181981629373490442171623839410716869753302829247821364931599645547537895946028325525179498239059225176272090433593244244407228459526960699539859790518906322266424282236384150426615232882727003814601770874942014381259581775118090682167444494359248593306717584586742782797562105236601827141881110125761459732684023716831223782437265400222993915890672800312707540414936140036462293584998269437419245385984966672015290333737810173030001842286662832729229359045674713328301671758259081193324475002984047642030077787770710277462493872550104766651453983065998485326623544837116827306638257585179461789489289428599278342339842387842239337643669538761280116052712960016651905842003508191120501151965707229387873464592525684626165376773782236077441243606558485998057959363694696869113711549061219050059923936520206724445351193684311819616893931364884062760327894236649543484251790005210920680658959435283589375408917709554329419378602151071055596948507673722599747408709547494602423241144888758408028167671619779367429767973312374548235032476802080100662743576976364955251757712238015560841665405558337362826568608636185579736040187899592363420683461816115689964948260639599713713260456636644784808535517307742456205786500199160848426356350748966955878468706893460914703401127950427206226044032578329052876604441651515552034919335015549169450923449217891461292785233314620842899960922574093602682682168377412627464083353951379038200027199695908660617707841525350850052115286780335593631964561445244183795523798925770950985009079553378100374971635438196328381131386279033952230806048123942222651277014737850304046538078537320716935788652501290964231409270598130692358472996928204075903763101818534420681901961100719308256687235660846632518409252920512058045418829119154048891671048379695481645381256270045443707631674773379953107037004431837253341302192876518186365159020226803813673189301056813317540028519301813201932436923931950702782664464100281998046437769712141430166476484762356883726855932876326517154104647943376203487491253794293844147794036894937200120921320115063106219019676280828585988656701310509502770235266506782655865547157062163561047722446544828272160318559817988419980166145567462619933734745384854680291445805090734403327216215526248029462142686904999745169281187544416451185903252392883054527938989517343550024734830590424736810096615212465079615504773956728288754110888207370874462575189665540010408524010115652263522629100917661499540616330431442619101102182457974809603673860218046562440902706308743953672930357779566459857916212085893308542207008783150710990172005626129586438503232538046573552510831167591996477138847400365136226255035499261683222754190380714929448477509046903421078171232866614480334376812567367286553751126571950223822106298625073755256749530740139512114205206776020784279323295857132258158568272746766750463299932023241537265424274069117259732954532719527882048245650964006947457172967132001663789849377775290775950711693816331432601874966055701576862367845425934781662951851944426109718816443946956996390178761578974000331743563278254060813652937437844064763582883673184469441476260024939887782761006569424721079499355828957135020360117789057164520567065838386194196947779964631934233555917215682731198625969564063127584291329884745293791717135681840239244368416203842416791489681718903598605714707982477428805496871599298279854153414447179997226578040006288314027264161523010900253892612447944547217253412018769456272136076570598782504488760628150122133183944444469326344684081515378133353513651051748020747320822571379807200900417280865601504244322770002804342861623170092602430412924643544844801486207906453303968712341498375056479904261033771228584347939290706944765430543085409903521162785898362267124620633391754271154777992653348092676759136424978185958763652469302958936582664817037828081295330685370967669640278461940570901675304721786719334914763764597639781060830462704263759687130168192861481814970478365748801699636989367483377248410453708496985687132092363652970496875847069433473437236681352587626885942826581744594484637338304756764075202416373961799703119088387886518955940315676624245263493084333872600898321568467414906069986515511492462539909718156328251289003420549778379767240212306884716757488957350272964954900200992553201736192588675991138350279908054653271865858381299933263829378899041855638836908218230297496504220026320805301150665963432189380549267815041570103087981438109596908540216896852368004341189585183391992219142366522245908492550742282804487955558405608243537530200968791619404684812384566721836228177366819579403144301441465957053426558683706749197963615254431523985988150920252807755966912563426521093489076181242636469881234599834777987943201871531197454242940898075619216472536043806084904221905392086952394130386788240678142508648602252623497989041982853141805379507571084791462072405429878286035435779134217482578908479187952802542774002387367711860134500130993678081602026112146721636712387568931134909831488400402710892247084133975462950536028202819105028625387682667781276199235357248491377630720162907200272476180574245030842450104392343917528128368057072733376601282429660229355137440811129943430844268324637156527929109382635078989948433892039560748863250600951563241096766497063909870710052204944191102189538954227973336031253724598017411603898706050219457369746232979556724106921783667405118252068987768584934335949450290766583331660510847158378388864733720912696665126047582901797911423521156132562415994499345685009804543453924573567237006291762479306729627022378434672268510484679438874856178835956481047477944581554280343271827354920160241438870277057793473625332382911305900167657158312411400066335012917281140299766580021136294736658176802051094289973072866768794633036439195695320576770685916232420259010571266989291608739721212541016172728741521330202328670702709173429246442228951786531025899406155299255584600377825145050419898580522034623648741358126806946604141347844287541822837879708280392024266850964494497915552794957251891460157689696708434451500061543907333044809028581340930154773883930239415017231973165482624801794356809464416254356078378689762801231772435162666450596013265923601322902734205055212554553660136457919605309490816412015612070596720617707373455532728260286022048005565003726130443235542624870981720751590995764063238683353440585599872917284578713219987053919248040404033190835968528606724043153631260783763216028205185995513274056090755211398503782108502159521593369847304809811030105203211147253607919181393637861334135146439427569183293430370983321731119979762638764995793855181064101996112888061717348797734109376081348387133740498823848347287111535670845439686125625578758315005071302306557818608577809864926775367614809824024271646667191573802259381075022814618629325059688985494100695366841940155145810260747369312583379277584847058618398207623234253132362569301188345603239400302281134072614938361911095408399675525828363296484345155469941267172901766262594941839450236765632711154393265793771811201762273327597584961707552435829546700964456545323037500949425958043182390208503359261777613036021650665231265739805989575971973349142294646163850055964822333972691158687271812095413610206895066150590851640733568783808982876848485592657021097042408116234288353591173750815438071820302559660767014801407206075433387747805982437619296411164111834586132222239798559282376985621575852605972500403816614547371619340958959792773612254488997208341728092652179142530093919513621475180787937079136915980756255074881307970426625275680799900764725018029834488357123298904650794387476483729562414369134159132642682470468768733054461240611782806715649069364170356161913421709608462856751069859998843061187534516088003257453480855534095816108237089718708531370492338375928946291396235515236589139397877825761642039748948108065966101981544725840505575905178491769877159758754578597294972556231494839191396046319076009571878624672055116080173990182696270092661802914916757934997744790564183571865947883094070489015731901909323136544043054306542935627703651996275278524906223273725423130484933156668710550493116591564390099297718855374416048276492753390764703564621994020916185635404335575711928819031290183527861373709464959097786969027813455219700244380737052305817808372437587951801242144663502389054834028967086642158149245011335232038734623037522111287299368079172068154976844508592729449786718316270096054345257673273362987300458806840283985654845740337066247519183373468327581991049258333749345864382335112684792890902980448322125150476447456248021523478903760781620025837123877702936149377252855049757587320949138710912807596832653154763651784400794363202493264607198333734048883264365855417721910797109358355963388774387144160178258909883907260887635273015593566376851778971186597008810235986941370722275427572747169121823050885628108338212374342156705632895439187066982797043464695494440983369301605922508948033672017778877029649344441772721309493580137284539361463622839572247968600275568341565125988945772042926315440504504664042449991244487331079171396423708733945390681683598413185849488418993886245147397580658398778463788026762234511001225617786034537016107209420090093667925611997634235491953468507686573121773968441370069873400022991099685037075357020435248126595731093359667627940871387056950141918144366349761508907531751269635970716347698349695184071170133715951720676795268150885547938179873282337928519861345996802064079845034513197528525321978704896983790952437494985469167914064924276302086011330244495973836141555386519007246765527713601541170855711670288098495278446895141025999926501693601952211048695566791866974365724485521682514707794520490693615462980874093006814557127279260669396460286839720929548539604332579175586733585698234609202851944822009243487322047777001308537483270392765796000981315996853870631274868624388195655931338936927517924142131527033204709566820294309044065503654435941197842760791300450022088873974671498593510628272565781278922485254588822074954243602826432436340641765437676709003210537194109208790774801369662903329976117550325392637775630373147946154771354949521778973171189592962772087605886120788993681623341091937548911893919135294287399170927606558655714872810896350884898825721124192385712722416287558974804916277207093132339607588810850524438693827567591749009334276759294699175085314175804870865584166445651380715644395257548300422926600769422007642022885243212454632294564221458409422526549041181916118600926489720995719786941732337260566453188027071631645034211705797012507439892506699956534793152665590069076466323738243544093605842408733412821960659576465876335740413798724611227993011590830957600574350792879535850529882823229898070342805757707378262650075243356372751061108272687340015242430872945545098155886227490064358299415253058398368458156832228020342707497832830812020024007828954729885915681319483297144066691168690304504698223103987450511954607293881543714344186601392635773688819953750293964934688460779608424091542698270305145504320143544420951321996516224077081766949820514872791049645712520194100807867529286607311533960352347317918873782046287244381696411175360049093114366840186927483671454538923254727263640427171583937932823066174817331907133232906089215510235381151814456503701408612735101348902478718508595866469834532841402891691236881522384611837694684774554619539547711009017457268073096090833997404949994767550233310785779196412367784598559476193949448282705255215369800663462094657447746449543687241685209004921904604808634930202638151535999708913544949463480185799553399601142027490304993998318183400999450181549945836344955919348723763653298381006467739423122409704203753572154806291657627687356511593074596419762728048643321120494151684865250355555647145186928402405000215873231622865673475324701908691547077382904083121165139159995661974142489686935604173108171757926601782424731589198449025035455067788029305981812370558586294155253434589401904982544831418276169537682418981791846752204361469512534673936048491761176934633744906517129138883381225452414542412714406324254691850537258439509998440502416209013085452403074410665709541320726457470272374129615349971987769379343752290530889811338730405502223526592595902956148569126128854574624190790998435439647619917046061684769517175254055956508406861961896268304652339836647756655836616068585320965982623687536154604690037403366258011730869443554411569064612893878743964287702345733387298799934614902708528966820161732601198314804527158043908131263467734723697935283099890663408692062578823922765981838104950900489723844783491592565085283726949246508721720037144611089338950724002879075228797349307850524240749726080760538524239272639604243566241946035755021954650571113441084072263772087229666146503450360089439445596108593816174447918250316312435513270700396318403490866330474046772936573872358199726394099460932011140107549690096613470706884133127114031085847380575912952674437518403166344240835476457429504679844043862319776025367348214899955169483048096153611727903524884709479637778182905359676995820685844982990278940890189981519975459165979089409706820095388038345818961344109940641948706386021785202227857263070229105698850551159753178388063976152988711583978536357057545207076427423593896595469384584244341440596874416152444375826867163506630462966931963401540001382930688533756702420610566798260637077848846894974756784128815836257332629960882740594100164017326654688267942949946070359893934458914951805654514724215819533257330907803341237482908645552445740828730434572295870375961043274126350478928653694589377554278405298296298082860804568709556332109189297281932912730880918217519567828755475219816542739145646609337699346439515483883974153649654634383659430896128754185919316032598005710946426077011284878139445239338013950966998025042394018796469295935194364661908342232592916078536392519497511136485186014426702863552532105234277759414513815912308376191477872602842018320722338086457789886881511790564827136830150927458110046550812257779857562452021374588183289003690449936150899186220338431585755763695904482222503162514093305729917091673161667716085248623643386209250470750915499117800591106696561934199571507588212010724087903599155470828279446921641206281363398221927082189808319863259605361915955851960863368502049497967744131339369504713189098548234336352911455271620807556992351160430946838094876361690375966581743171751223471372213514292875296487401316035244079862298726086889235111581174642930225207031799895768654074594991055673629410703288414522003644951320862800757804528537778352286277378072106806671350484776944118041725874093439502704722389523827786583844678864922506766128257608422383763619819133509308813014329076188847641104456231552783510983098891297710360812312370734290357555015461504211740441574727096442265628468996651079859993072069048143179137255438203664744857530719964271804314617822446947346031985420382263037254854631819480609842599641019119902124649622805857412437376083031021279088377010097444352427161704018383948008201873676731549507371710966093963961581072589244498907826501181062379648669943533708567023569041028584874178802304634510553389188709990853896270123180819814310508043448071669634495574055994575919629087450997924765425442658915644635856246119598387472838412221859555587268894144715277093011832898224522091154260384140764798216249178351017136527630187802638347226232260130647866484371324591780557353363454753316473963747344710083479221757237197692260848753772810531775216656849442293805568454496633330224578109764795597574512437299830303236810857093954720816944256159076880943292354928063292606509728754543911956059076962113140958233155605507498010891936489442569659868436878863978493981420307245529099099673186301189606406361452432751257410996928149488589616928826322514239543467510665973120558144498169292248134485480519593251958321697168939626107249693402450661212608566965025220204276370992084753062753029373814041211756000908359273469593893274386821435118636216598782369745229214369089618231549745391185223883307372926908611972070230178617402321814586220296372076924686677027600579637796591613245483599079910067960657159414249563965205252482651389953306199747815210699557668478281983749327181049617578600302707661545650860977299808659652271560094197260244644068033346667270486171131205475587827728920082499349891420820337898236808365183126514897917723078668105156406914061361842981924523504718155770272757101871008379959075320028594414423943082995390609880779464784230222564224486892107043529935413540916657698158916294022606334044002034372472382605135568092180699478579512551468614660176937926930710046961841172164350085835321217713991575504087181067166579182877993985070181733885021952673454109136568013211032958509277807545197849073966086884649910458244219980089151033087890760986456421314009818770127728341808987106131597914828547622168331160333718287184648517920583211414823235617102270294125373400074167692258109201602716772484854394050891815081535233254363317770749147840173444563551231310172627618874373288941861435815923134692676654534557091351648963241610820928592114494429333622850599503014776903394422462798718834112495397107419628479517564302871675275195978125730578711784501658251084408235052976821806675845808624878699363548982422815303820001838621140636889448077310929702104038017593176031571913387449094851778488066801791853470207832011379049810897200680175846403651239776868084006433557213398715405693796407214120725951321128514496344193228693825854846257836338773943109655671474851964513428250242532622362323631729601805179621125190254326831728007687109522073099705560712389668448307440530422395833373998999850373834846697914119953392740913980570023861034187009511123271171563416556461489818301740355749932716828286577641492448069947357970972952551587223753558341779009625761148802765001565126807604776217030916420912197612453708040473365171114604810938765915326241626972773512080061080349966346435825281509515887066265629106468935464800144165379478400811122600366805593703426367272440025566392364305170950843530912911173553579698921589250947504906054895139915486024343871884816794871560483965038595281805396803942824394240786659605615219478538098012821421160297979741505243706456934913104335998233862620470371255349480009482322233138363819402645326971530653281053266446971394886083584408011714976629987625882866441763855246001572497675452643272034249467813216347475690327373850986587783265328392859424043513643853491372352508636678645872314473734749661844228428329428523726366983038494747984196408694751145496219947389739331947097574747127779752623128731541544843054644922349088646772231039053501984304916384495595439657219186995535967322295437985433280495162667880295810665560142231261685442807898439247163189322936783563790503163345254464514717959175896004045320470290214472822292048806473126775724921793514434930939057865506992758458226276305999427859672917783634415986910042319252103372451182216622143111728074207488812628621942393577911032994398042774609143423743322454548472047322849472918832950069477258742686857332918503118009758198649304518430809346716921105345578511564808816744774798246151933182911283368498939852611133431379140673633018078937372706403779696101731590098347534670720336864450113331160332404122579439835473147755826737043453916063720542654331211406171704607224897137888341012569110367725038653405075834958152982481035064893878241451433653667208305084244576320301708086222799969939586521835714086136446136274297246276499363211930497915139689307056906956686320908315612688841794639378031625807782937570563549209318278187164911947576519197331853490612118194461416598561471109970134956096860616012220651146463388635755226718501101419620752361253233372533462201388047689882696373942633429629453519007446829969277699573838847646714552329165022725671483709014935978017728429166096437636516542408234157155300144972356740694682656165819904686097961180271949416939511658804844499767817038798542791423367402508530694399204237555504537554709282317010482469577478628881041632759068553810128095517970375817065402828268697963163804140922062275920766229687253600646594385888054589354205705196960227745261005280726398073892374811755804233028530935218147015641349365631985689658208702905972023752989981640208085817998900081390149630963421984524670348162932766689099369727051051178608448459940038800443178673245201031684348164613870919890288485176972419040439867294435715576003192805189822836969374972730668300495411194644465918696382060399972519899909930034118842468973123293610297374878387252403745722759234321270616000866696535552209856838785595801926997818992336990325587042919870999582056450306145264280899396593644034464795031842903961109770826054277605950044500279749649213682849596683296333770347283973276565148474053541081663264966607678704829451960556815194067854774081812108548635636060762019325420879348822607557901796677570517208673607511197310604297792400773023458778006703511798759125957308505970384467845112908410532768833079591156784257487604715662360092313426620266412968592055667172467758691446374864118155727645911837292698402268785632661888612435870951322725725160338873364971383710987662426446441369700727421270182725886833692123042050616610852767187497525355495689357440620584477296067725267231270877203656317804719385896732193048282033510943832429977233100990099404894335541863513992274577629864528057364328439880330309294731851997931658083316657969240767566132521335463917313573611407611770254494637848401134641637000162373551486529810355457303520691500162420358082031822976219236168566292610140190322534509811959122850738105388351632743915590617533884888313526702299328937065407196545666124056509368695875062675742831701342144387200769591349842352561799624851998145976238077195071766588599741346186952126873873367710126405258407958692259963735713016312070337541643467806420051496221368208510619564695846334508002101793068478591923509498430996081689155123203038652617136205436080302486884228318999653327154488542361508194228315568082671799410461895108187906795002236965310884984460917232958160863005027184696745806635425073305812960542243964312853566085201776606133133696729131910002086607292228675519937596715074586470992468812944175070621104882734518147475036279018408762907327214581223863090680613379466882056908090498273653948550572368247023227541417554389431743083429162897856238302553198178778902917667269191217677842291899281810673300697440367701089029722856652509748851796845170384820696792094989159340447863155625658789885242276519545004295995030964553496485952677416400894505226796922515283490219036574364274218710153002213364169238516953133463729391860342288331902157033643544271054047294958310359091455892750996882015124972454186795258841236918926445887059504391887472657199344370986422691402377987318481235494731299320720122937452357208281474967163436670595018123114951449670567165677512850348296411272689146985871971160072870579578837965681254979292061849203648855304610366417004710501415092359577082656749796645280267318712181708345990417380662586046256822687791467643129326820297220258928394247348455005042344167815488270675995681685540007237922749189031322780463173332041249005237444695059369272403138678848823136097870426651428393996500886048728765379736169331053209182397022161683910495358751418388877804580831668448811026462880779609550826730689074664514959140349080841763749660920693582206063105567790749017275094267250495692582639659431662584309601367024949534378653175610369026109032038843896359248509143350939964073544450796987517105632399504151215700739746155109260467773867216419006047693458829736474742893866600957839186445148059225593473049854191292214982960323668906099349671510467222832700509321804437782893121751663702911939064170078681913614266358545402485208230172752033461722545053685959150731051522362814024926418549733763626216836860376609942201991597920226592230139749927761280438218905316616436090074412342784866624179173741652155282230428809226504090703435195767745945333979758752935268979502468418248158515424283426388066133543887016508759253635959271900918503830155606272289065621135112150120484189862048253920628112806339617371528159972596463783182617261552187710528738257323320697283937002263265748557562497852712729135253785393184342283844040361045267002418708059604801043609455011220740178755472932310151063765222115167824869936957807298597226127482385942930766827396547535214780538305548331680724051790255668633220231461808143152275843407790612959126205978508711627700536433483155594870105001067236850649972289171067266229173034114105185129180943465444123025249354279025047582034391009330987874855907796770508024173807762928452270311689675812343437359086134255298365062731927015256583862253200553619602178846986229574659319110967244424366663293036036382855562133460754531123349114417184046968423147380647071088233719334650673712030642218835255820229280721125107052355604094207252665215053372180766431503417143172868523800586752359436641300125978761641338238422956795888994997455324475166297037175887324190490443267992542674361212833282386323028452581680864056610226162796071103892912292232075483251322466227864662894388375644626460644856818412368251506058410093949192171642827901289587540021077790103026265164480091089814912247764064492972779794551903187945949688219423571792108661609702344669445291155729254363433438593570270946769029870222200077411653326283217766310163513162765505952268709298956287813074240029697064228191543575032541489140784570940625363432185363502340869031722816209038169622457462095787575180093797591365177767440730442105658842775688731880593159285462703918020737180492857016978970802975413168777936816879179997943085752220581963391471199963138188759412897888467201957413707636005536060639558094924687201269473265291188539275377898048536060425574571805522167984962573068250893084848627019821663563618622172716288017017587926241333590840041127801837500505819551111818429477358609856494180701761748813263405112950681319933743970215895055086896260665247702217527312641361829215711876644810756432461291930543092182557499247960760763664992420238044493335987362868836240683152660140712637560167818739214345443931017613356984930501125957531068990645326296744355890931681846038819046707921070841533776844659488754832598517895734867649841544613665100262861024502494517995955122404892017936645087874541107506596974204132815309885747855117610500253836051092992032363630818504681431768449638044198128936827583884144382745678649905064350809593788518341775985446704367087685481379485288075580138024796254326215217208035130225804715687517743124066696135111121460853950051619266214055657335399942465060130608690162890832880949438655725224750693395682249806756850383444719537138083183777674217168744183993904190098405874602532059578136253816915795575888918728777118899247633263705397714656143276274956579527219090460957241386411139818486487055316015161190009536242773188801981042022492350754965613293131296022699142423776819351983657454766374522242624899978759961645305886408362039206872808152591922378284680345787571742653821914875866090584238821711412674153610082726891021322218082297502531004448284132847702004141254321610311869731605729937782144153480155950827981090987148266282367633968557706845147858395781477482713489345610442837401812003898288913592146464090076495695960403223188153540147985313905396934229846789407107765406598146627894288449340887555025927376369777144678302870534711103654431306262428844976786752475718577002655280792673736478871138736259637160636292684595168455004291852378439466351403920340054086689332604409099662514187372383636204663049530897130430730953148267228751067589602271875026902663530919034853956825219047677953550749392720014726065416694141434758120768475503365898506984154261307958846948462125190377170065432686278217376951378174458090665065751701087336858815428596135031963174086249020854120863661023538604909282425094717715979438479404758577677150835719686540521442360424976317137145140475277974388958183101830983289454529462918775783410477733429859817803295542226931267292266718242805622725918773856667536770529552840992772242004150214138842500584441378697034409590818016140266001936290305090509673725604144263011960393705697190179454311121002191744221912664345620383662230049805777027025524031805696061320916818088302502065390440586848150421229843769849657946503102472619530067179284055119770673843381170477713862670720210885986424214784195402546552692491592891868404760984233767435409583083108028841953160380671706640945007299980785921344098337226527486736789556699744710842411158050778658848782119513043808249686299923014593709193436691186015653324642619762846406924255657107224218547521498550376487651150670813484851191077285794143318496925115202092074922382603566775869177090992756073487509267229769453960006150227143483932594497278427414335542359777776784055298777480092627055849387525820649561019129241231878498833862477178357218965442902486708124124548704428970736678400011851177198660358955043964689307822561661736128783141076450245375854117531471374440988047378445706349074945504663834478397129666693491235855144569790017176008188263212838117537258709283440905308699904599669504051126800017235387506076099811615061559354995388343454021683528462495001754762913048096137455186740360698400884446511287638139541095953981379417637768469547630473641384052047766893298689678940153901631598427296457582045251438106745104951285607487290908928049226259490871924784890113824905827475189653440030486689744137947184981436911864772316734080468190212434059217457996650174591658270692846622444851881670136867321339753865256329653258202448578540968880148288324734857928266081552213243237430227902146145802426646370617856915086764261542990717584945417464154306035103026508682371945923219412511243299090892264556926628315183182712473951939058316847595553387902811436098531858507149542827636996040226672077610972966242807557878082044758927512991833553988923768137211882469836127788520656608879385471181604385770500436125570980804525083186654893436901534643740400163078784685223724760859433258678396661053595317383531571247568628990198291953755065025993419761336411446277301040510754913129777896868580594331537133419594849616186540519757228293006423028139762072887074339601290947339549994604110867162030794282576523991763046500671220870998400106500443516598478715357480624924749322705595430354232401655812920906402986761809476487113989899811800433658437866253680222738193721951241305628143405112744267096425600182817313419386387430144910517997143507573465008002112995753615428280861235313095493287811937268494890025693625779558740829502443883544034066267568349515364453881687472966676447039221241438448003958671516421172045121882261192890697482950306514610994423520658213181551519916292136306084133992018641123072125353048811821614885607648952978255099713975153893579079654583478391435922988384777468571012655397637758955151938659954956850555593583531566940049697468538024563029405707784024481828313242889969385117767356052395827219592198537841449539472258011580866106828219755340814358242921135127309692893844514636768183770353240409761184891544345254575720143997986647641724584752467395645820234659704990158834100451139886171803092153190493077736135652349400456135648791417623624512821818136361672221516037635666092607038361319905644994853136213002714758809706686524972433941528473934272656368967627613694625747023488599873707235074821042884576521914716947698057335737912191924805589791456794779636715858702301252553117108337595001585762452410739689924702065239334453208794273605129580700371494809223441721072627539785208283350096843656803511261951507060260967976646949767628546472510862754015231921438286691827940901085276689776717007291893138831485679173153389477302759093283547979194804887300126885293966463242234710884844905424147181549624605622561507998919417512860974967936569812159290675586093865031885970997786520503679109082060572817384759805073175217259780271065475275709638771534898456328991310481791065836209243588257499003328014074885549335453586074872534885080086550919551853370658024397260827585674888041838282242952955343344297430752927344078684838610152940886716599362834514800128495142022702442769820322623576214059502297303687867186330813665172999945473003334835500555788605623211537062495021867318750879735862149209040290360865901251647683356897043221724331606507625189405272465010804782487165627273345471937919060040956372585678145957474799202527069610506636136010185976592870545489779065322627368439739947214034120747254271153292402406008455684241269937342405857027752552336277623582793378617861951991038845598670346290361655820390829011778908993266951013643384197628481978051824120739834602696963996693766405288012744598592877009192785266250537610924190820304225241049964709145677656021038310551805932357599569180850304199872879527934690342884709532755898209292895514453534598258785435410493052724805823398359671511449969762079584550280243584440831111058343251674128022556804552648073175351610411231247664860134244549913556450511562019973681476925629008374710320039031222777515982250973191529350795420165370684515546507373526677494978369462147020855817319314293501442393362064805935134076222642669814133955810859209791229171510087213749617219832419069506518301934823161171024293022374941039652738605125020588971276921199445668683226825690836308852786398141795732112400227014912967221977128007538167526774220502971634509808222977789078991685412026232751033510544079456020201550528254120959478215615161777520249265962206551861724632434237840785459756419285483414980004362934746482199987592003137898930593233666261003941278405100930189388050636972309933983476593171777974991353301052628165809549940552874513395089104447869261180153328798587697069830542363712362673946708892063114227550458439446353679392614232917711742663769992784778889482174407680701659975984051579488990387785073680327246236537830294825180757513712652266350914076547692693505026349897309385012605465093891337113937925997192699437359692688116713003192359955572453663833998637812881055925431479190164375907858911624595486983417389042290958534428843097214298403946620996522046729361697158578484194476644234275556667461553272995691403243350310171162351599889336801812350333610575440583521620513980482931414454468071555648229442607755505809242010061136793735441139339072488473405369902734208685070563016337865996989637442031163818561350885757268113165528548724112303244495711186130102963404688717408346332948519628293297831308861369916967973351696187935887697481273736084060562935807225298937693281982907418237707802728048338318121265398356029979717594062223543625674535458223138231272697361809829717523824852671864455217390488241805510567517888169004115769076386738240322162149204829852335943610228003549257996887102337577879295381926558236050588920480760944337512726389572626014861057982725862922718040770361582305277834549446641404756245464578522028647684274307188932039393217938591939355574123106123911814650687664557168882818550936818990102553709346482317555745448316269605276735069429984578699441493283763639516171571497333452655175122883467943720843907238163647015968980784628718458549671482973949246784454505672127307718908691227143015943430341261200188634394479976656846963093971393122436776927689099495854639947248325003441247283770457765078396866853982034591592136339947034641193515867409227390596027822736830723787973021166429994147677556278950311962732141484495842949074522400940245015195833880239223470419155278874221522603757020145936842482622395328391201436344821750954150913111889016969289474668811161573501946029633361774481937888216244565640528407695419725169693784975250642353744479791901995242887208636262489549085460037939687832304501536170537229141635365560707191143501807827620240467630035618032313926857776434298326219637637466859227685981956897739710835759697521502314817048017093463636129935690406116613679151977374412297414361589081116978069799827497424619857661473050958808035855831420603117321644265676068732770329758715176501485662334174591695630937900722719713019615191086728626640841509686303218561259550369090696236290577650162466126153243762594624429944316782581855481582730079709874523714112507160441257806218534356208887876601376106845327711024466267173539994055113674153878924768778862682386020115764253519079484175907585005769676127569182355374236520380051721011362069512951887986559566046524308276895067929716771809565798412423720246413023035216688471216790261923540940293798494106047403778979303995010143476624789293019781843252654859951330202161966348506301728204499002390909936131821559818450993800872220115450873225682312943092319290187346234852738432879431204523801116416814727572743113610471120649141681156131325213916118129257742238259261264845207964625491628535418958140308276526559518443069320013683159098248708816004793898674962768118838913449200781790029814756982243622277648196373553703403547577294510453998626171172474730486678098307966859670708082225552032104141658425706452752661361447778704962797284679594497393640134286207284203364573740480563603752148141958834236451792836385564869909700579702685146565913939111929115987329758621434603580283699327758979911715841857310451523073930607792573604561633731531441984413667083971314009793761621997078754041841867820449373784756370708251941232397657443998258869948390705702154764787211053763123818609769857804843410952356089231756098899481112716333391277861657752620248642851212507959014628065276742474518753858459923161091680938718075619961318758653186070703082635290220057556471657835629253098264420389405625798646572397299153792266562319819435360165579529920726134154660578577680283973007859203533897144064233983029527392408989636566947896360131373910742498632555123158326331477462450899335097137113548200732666618211371911791542536779025556401015896014875131418615415915396877542686429793005325629012113491733778317422334328678172426659494721119440401969141770566087000524198084011507655311505626362775507126034404013256327743190053155271260086923323889202174268184047684698813204956925124612773007609806593018492048820683576621002117727529879055117689574890588138033531488810443204859844605374647908482835593682768146879948424723609932125013632770198468689431529006279335591078408473235408489348072375079325537357114983131454919258915529379105821365838299698366423591787993606729623875761377832928254698659083118513204206289241196567200730250559662928747403012053943929119525155354928201387076438009689246785767461820009922083116475964467773623949623420143500383597185496709608398696660987896757661526547938174101483979166474752636835982038812180151480018443365194598935345397243750309153924663479175712571433788774005197987765819883258877089194328178040214838937996986108555550549161609732548932584802594473605906502127669707136031074618713179468552939773635627763303481931345836900467850483865297972214486835465527994175903535666525790914162461965973506679348871172656363968808086670748334106262334920908620508625093146450252591400805039273960424451291900678585719527769866420017007901064622697332051431211361929654303001904792363424138222908471153316763077158039104084048268753114455120053838539688476757526398737995805371841631264354831341714132397805279484310085017892681714291282053625633305962937368467345672194349238540033623265698674276310696176121893357196131581877539624483999636951178221273510105647693503084725926841332896004033545136691209536583172385167403017455986239293456514531353920972988538720595947238630979614757915259867436227574851504739339251352941424919902159900531070171794645072968543639935484424100774645654925399328421867627115017997081336863011455492895119130500027722626584828425796348891954114153138697392156744907871577059002146802295423536847403243082558986631989193640391686014737888227272050526759388794988939925485747423539183389771086352002780720563957299439023453028220108430682746251718894092190997387920791588913809754793810269977647233540984734540450142296760093703331286686363074404980124864933209208000576968643092663188861753825920311321508822515592594393197305406999603468743705677709976877658172360568465395605768519180486999966021579316901989288246227597116658468312471567748713537620131627296929203472743080098310317148156447970562160903784130654593535112030529851599243812878734365420047155569316205095946445275289082601265664042151774419275552236642681130092368417558673684501845722872218351398054970348186458683601017854018875183492213183956279248856386537912276519759050419793276242174697135623583250174890391904200269108983825676055584411196258718514803787778703070082869305710365531829955721772099706939393884698722981638190031249661817181104251635363395993040194869650229147003235865519499255215536945356058928949757819394355790172422562110709747658356023071871483858557361252764355509184061770259696513310642182241195948669465632628390442457288130621193164104692470971761773262657842631846798826596871633516075822314878103458221095726388632079132985504313694500169380260283124602004696334422102731002726344435403547209522326153386465580601358913630907540133722295398189827150027563935659431221738794599332820052524432278577434362090688633181749707124164013243802951995469142740060950279607277955585364549546610528322801501709248501697727729590035932735852014475530064894342656620386729531369823291385088907298969791795750531746909383199462765128504349457264621585500819309864520346641344648385423075604217021217962788252253953863782668606861035087691449907385655818182766570252479096257427936176170762298026366854037684451184858986905442767982615160408382463789327095997276744854323045125669411762424915842845637058740003604458292372249830117127109773663040132879634483709282193152062957269448378494192572489167528908715851086709446345167113685568124154691049182877297072380467131256504476093724124543714282603734695996213960767545532594919033163324786862643358309149751547763229751321303072949768688041458209077005173249175391991825871559618999006624293931553234223008731454266877146890154795266522313023606053417322845752239537192100885529144158088734867878538923750726286803998922669514187715677967138762106133744142672289293310572414708342753201688408643405749077712274099838024252010313932456905383696054181278937692707758609547995718298025129239934321136546263052321182526244111117941371267730493779657949410046458048415190041234043205695493353104553406594756030746558784848434938079218171607050268445132684130386389595057211177603879203806226941829358322925412593020837432632855653915126628153413749910656231773103162004937864521077630315781228720793214411247925830788201167485702846516328239495047219201350868383017554564648823058898093628582446373192262502877471303244562570230233676810767857212635641030832304450268755942496360175241728804385456216234558450701794196723270068543466890464901357608148539995623091445584238736573901951454008927342849991139208591953812958861562423284795455653026692536278154823787994197416825023106112917460213553843828060700289198638695517901765284675304640821957138891891760631531296609375541278020184168246714402293460374992195119720254780462922047438906787636538087868979380916933195554827757673467581841084214677070987230573826806932035216533470645102900031365303103271181701390421106762072510943122601721203400150879769147806429769928193482450082626136290869703610008468972379435220064977262734231707720284199918804452871553726806388194968598342736465978452964707740675854913048553134905448688130920201035268906602062757041220115546893954992721701090275566461572455652579723451371785352068784166042555979735702056939414780005611821544481726828813307529129672534998114304022086385207154915407766144103218692255174070421639654795279090187210759395932664560829601767731510251254299448381056527817928880805901463087096607502900211614479318740676275465498436978311500520378019480692967913673147184509660848180889150482576550227341413452395684291788878263669079437492122257362557162439270903216004462955979038073368796177584671991561130277148829428264042639204605719469202456861217635904313397569694655067379600194140768764828841280783698620150011366556587141028742668666013550765928744627566519760619829956393719465000772994667661372956541397707913573475509689385094338269586143299576815663627248043919400196854916976373402439674560019985799639929805348710183885376392357818343963618935396220639889395577144709932292291802988642978436910322639228759264789404099053407709598769086755702158266206379862479695909443253207645214939352204221634074513081912067803960319769251585937945490243653015248772001219791949660682648584322508245878372509817565444330437737483567981648889350541543789108447377203720433373490769767179803309914389115529295805541332153696768232383300770195214016330057576907478707088122803345603809265590412219330269491536796051076378641496935683554232531228552742428575063445053079882804616811724869689500178572956846689964277767412888262517913267555223180073817766037412250517756956276839974035798138825598213529392181176490350239927865053241112957552188934290761299698621712113761062857524020160471151437555860951910747242438862304944492044342845560091988894803557843926174442290494968163974715672303437145351107699366172219156828207359271526417871986626340573437624495199325261120292904937562235583146689280267457138192399480801584067657456780652573930128053185194014509182656263045531800387025845870425420896386346361559320536813271668998163184217703059183191541942792626813900194100633152360425602209364726471369527916427005570263511510123238618887603650668595220247380883492024071652435960977912840089869319158353828655026335332647222507621163607870546168170899860315748208162114143679924960218059850547738862043982717022799179818834223601495138566839660920935999306627024334188948999612514739201347793877733233203598844467749089324513883146007303706998139324761940745134650518311428571965080701641779507575517977762873175844311659404514631611574730489050562855808564096805820987354857941208766785469733363372751673530436892085702288934026601804894354036683339114666789163581242413076650674232996936592828958189097109479672900569483581043552086461289117788455317675217057590714484526995193483844824874643407024439347454964482506206470733134716035369651430691087632019873237131636483349900708911586347554075378691241458581820595537653739140763330775652602072140737449626041533694695129237616941768701910059289701640814684450743254448137788747760930913929267798077351387949656631386129241728916836152433307525855442959614880657216745154893953497615829396554850064599276509866396872089427083494358636047286920019094622125083563471254396773402491185959028131667523217971687336913268536146730010630716161507172977099177989829022931653061675038333628952571869768202338155158655206078084742364858741675356797575150842059594732464429398497808979807046987942804369219629350759617331709595888854958282914461862685348387513651410085097987618172179158148385000353498602155643943513100777864013281382505925780474337442965679007964944002846553513269023263084753434209686805172049068659724832710179369645197714520561208148413117341066288429916417493866998005243227391205400996011607979429359634098797058442177959526745298881184818528550240077066683255336177370635421846182708955597925637554508342943465462613128614391778739802466404809237011796281144321790704995965811079468597736855714041826582538528082457851846663934950344125121934039268120419050275209737036326294744742639198961529289744390810632765041368665423926266218541470344310816427009014209789444553233348355750371683222418205681946352203970083022821718894159490453711494761319840422947754440634407767446901822037052771506602027815151171927656091604562416933852591124638721055118867536928041456096240997548509829585729073596008047492175206487726250778576469750814558205842354834564291388982467527776599258773695995437384940338863201937210843917197010625194744672880355787283565266347618920841624562294927769094661884323943147888458387590251950349424010047955115923671728969375752230984209436075744945380338158412168388759634727054279406114824500296079759615083078803400880594273712239507217684830752311799666774939570730943925851864500084051774252653593908206370476222468617298738131623828684434030905042785537206852160928468680524065409531306424093216192320495302562225825462066370551294757646663732136057259541279047465712374774899618882964210882986742196770016494796562434015021757628826315315102428957313577109945384562864255245513648315338480787701124528966385006041119318654197382889364322130760324806237712350172658743541720192836149613322740393085972092739463774727687134893789706833603310425622717622412526072373531091802571556239257541375860480303846188006240596117701245471110700267594048704469015897906309896736484779387112021450362556116788210622794039598054922768045948915305138873955063989317020083582591360571193589467396729400922138759057042665211344890734338996590147135925891594111012317991973350648512715355681817406746915030548004247615576631701149376553481181347618911563194289381096803680633455133675693351442543300592561396181574402033995768765399061358841679755656579607188920635902073892729983394198130567748686356453138661749919794686374466167362482906774498367495775495765511255673541792000575202062827915267063694624563567284031056711825822751410280090450471809932890646074952586954514989812557884153381562143225349861960764361488735566486145462847282444066405048203914457599372863870457864753606492629795570841139931861108807789394546460741727558978264776496176864166582668915574559816240886212199562054355395088869089533998716621285544551631081384377753034759472249000712136668156650664466468391635497439541624599714319033756554243394886270780455454883741558490216671116492311416308662984351544092052089287434921695446600259472054029490842903434026842264197864830927970685281613022174598669013436503457262332687037539622550255885358228129071142223851088550886621172292670569055498532979627708405645731520233687698170804001280947507369496690181027903976771643177037234020216837980423349025894302255706915988743918449481841233151384230281445428276664800364501531581862627591820638379849990912459899763787704450489732935151052189515892071840720563696308693818224618797611208512139078987943491898146848768675369119206677812000358419692311466911639813051438139359980868158599297818761512777122704419200636889969538218770439428182072829642811301062169504669153817544903497450924656386110763244166749671454409024403904478320814183707654219554951038591312834881632669538104939547659307594270679486957198869486609928674151164212277092696248836305188817044447206621572139237324571865041811544559261265996078474067636535336019835776706022929243803664446762623106567858675971416771524629031687167602469478641606043752006019361809753046797424033829317430499756847337233998311883125475184152502496338008464271343834094106200835451334316435516439908038312583031874351788972118754394164508257840993988337867472428337596048658983434014936853703885470334589679532824513137148350050382663880990479388582364940137695916822366424374691248429446986048776862225405243445300554462539105437660492758793403619333095922946449369211351136837886410636922553451879694029130094016115590663381640982860299354619837623725638210939160140344449276949229235914912501452328841684498794896810081359698145470112195771410679274508766885791551208761861366878105781023252987286911962179559483710451183955414446334973552334553083481787441674179542361340023516937596226509080792813981048846234277526033588038953728151304657934828785412420363878183626715951493725883807576601316483974346186969855222061252448781503436972800123542760201433185437725832369754212911451875861452319169702681121760913393826051186991806192690568526014355086176531141123763940478073737325240199664072455817534428312016923864719095655694909559270440289622113249229175149822551566905019066280184947425240409150008324568513580462712149573496794166872816210121208332573027188885273732521156512144554607586345044554446184090674584980310277104142946684969393314327740122893510814896362473912576741726158117322826523816476899148044477265472288561394961233616137027188474847217706291267263976236717352866553576101267428405927289060699624838167124073948661123189407500003143738560899656527472856612673157981238179235604752388395198047036831299581229591501275921697127077900226582282323497466369371764083863569746467543134112709118590625261061938144622933242903848359223528217979202279845794604664218877477501144408399603010845375852462986261434310665822724649537191374062853142624382819848971023254888367505984493149485720834912682414209506831851808947746349946654073198683424333223607937848585743304481871340651295446760213533144496161301976340947320313560440744935770576933409441658933547085946616754673314954680661191840128748863894034251744655379400576703797395816707325214871924428931119752926195819550907667467474061970859743878395299840972939114183789376183546218913703040698003414426140873475760798726921199306072848558231828770326950092318506866215672706944875864637516835651468976610576444753643665322782369554580057703140007649937961408267715856110094026879779350053420106435027109985759804859680196580931899715069551168542380918955067038918851932591181444584796411565325324521569320873405562504918895733428620279121638141962629495181791812538383555513486267109357664148363121385269660242089675204064898572728253219533086965295618081859680375213831237711768797128617153268159049055083839929151802996147005546186888305189575629331972690636827045017121682747546422273894831145790982956854686978803411369924031568745429881506601035755421038268275812125428968838224287161101267911261695040546030102015297031579009558716317798052074411506960991818087305093693563960844484205910344115188685224815633221985005029409019287601223508432553781229903161292150069215063892118206507063553132001848387386296511378099425258552945204764034104780709772200068309610062100461294659340964237553038692435618094509617731353249436798562162708898073543429810952621038056307145849790380597126691801228515155463374971901370327583517794982959144198081767279035966526886368135392344255538811478461964693542060839802168972518085747796062030674373761164355186211138490525282141133647028543310483309124195655643268889663748267536292319715146706312217482286190844074721228109778489960474626927387293125271396346221725387503069003833264007805251206980489537464484155008134563331445664953099892162393743600142202778423153552290905852923139521187604578434039892328762259264622667266869074056585239440280423157529904494407174221432812785024734198308619603376283775863686381410465451507337404767446475700769101501122266823246241894553329758083472630940574457650550669930943138090823610122123479887522341256768360806525339381618165472717075114584686682324684888016936402251010036701927697026231365375175352356533478072689406102638083674606173677309803705761408391649668395135451217719023333531856265814480215446710184760844291016187283571658265245051007412012165546968972336713054004167291569525767315461236092216794897119717920565709079273547397892005427455014052939912471327209694077213542644627481351562240620699499496590462159539945535822676312867226625358368138368494052400511639822853643203364694598481453725817609035999693558752197929363144586502936323095206542435625516921066321158299851075189825451573362277653306520697287062702924949022624769610022582026541147002151106552296541473877039838307944893651101975049799183773300854529196499697259655777124104521490594371864868020000506810022702251308180667323924954353022754731071209035437506280527977266835562641073019731495121439477675721799698400234849295311698277852500097937881404953635685072702673950655758299223496992630383304628300553493181959939397711266981362878550014913505187443969664201961032920617629801108676016685777830859594148963967449801655739884853311038079200830249926288816955750114488622536570863111520835566476368160391738285212715353439715188495723480051879748159956236739920906884037420029517669208874178807275157830640713319762425673677496889320104817295979268876375425247271743982950274452458139262000863652583542953171367625194111050198268000090412067487075799902387019748107832278404628052566793513629081417368361371582418165180044911909936170084467293282682416579620438529060059582345216435605827310496003623502626153929735171372532908439742236220448323692166987983888314223600622083651919753748219428549624074468479957600418640903822339437383741319785568095185489660134398031566433057551655694814505505370740094156161730443908994740661870688438227328008026220795159133115274634017175689371955745346887424683315764854497866318983338556618360656944533639322761744814155390282003465969282141662697472200114716960332926129138322408628539531606437041606893148356716476292329382428539821735816142265615768229297598247486223705362263759586759662531913350873487547173634243580627811141074099546021726902549159951524417563627626487063581171531292689224503436439345362136160371059658631361397428279507640969808838833199334045613331115940265687250580292279463554977791506289759577185003328468900394390492151130471673751674310561541978446239712120113101120776045926642554681989465332655687798674130229554614943823816613471021077326764268988481819484392758434799690117015586353529757108926985405116349961415643940917562181203222892587521837165718561974099314963404411933943094992387364338023762744606896479377310255911055531859565167845274233440307675696208257931497608143587927310701179848970707217833343294177677435638915983113175072468204350702388218834197683460741533748991410320107977446703818157880850829529099434058230447726352414095482437703477983007738792957549927640191070808289400817378296394240626511096447965495227788725271066989425364600870054883525534578866742048906708676135335331102956154745938016604792501476496509634411530785168891863935212174009004247103986402757838315690545538541877012220481432238966925603726855587258102200208275566467103894749142507729846189788692695194461408218241848927862386450097029570425792899446000717986117594780173821971224688166196951862026087640337758147983334075222960324610996992665562685110166891587718360539511143416866442321127451618700998836108110837422271387908852956531135402852644836452636691599947588373811905611528928201819207867169976082415585454371824645594684816044305013849991138532959690352093977993608686140102178879860864731967737817459558674775933461326459876302154445171208931642333610223949049026094414740995726634165197324061598372290701405171775430963105608591988275064131965611652898264805733629646307359288294293091827809984334907011175073968578319140275564007256119245308874313578666870984299618196355704781139236510174837570697247021502765801710149536039299921542441199328636615142935857782221533780801393801385427286078797584006129760147636839960916652605495552604519699435388285860047654687235282978000076233158323358185716380490016020170253867596614517725436583889565670469499307452879269072048990902918455081499894700139913985298621851268348321117046445433619027405757281670189933482163012538808955409208903201835923312458603586105038495165765210563407707661452723452469145846786646525086125180679220624573679057008521994967310126845947390508365883735429440062395351682704140836623408480760492673035393501532993822243987050502978787706764681445896150399091319323007742650197200342760015254086264349694958805879662061956869871337672329394860408825990410620586499390783504386425132377683288011197940327476232979435560647127182821774362271165698735927431085848675592738209950171559527672570663795932638706740913650535773797008326403841254752000514531115125146757495122772338930792366142218856590755729616912146553234716073747254298326078127521664015528950423048658878902533919269496786498572991856292167373842224488525138692754314570187331615111695873917857987636539806065666515246097521911462347145596234387612150927818138033001916024315635682077565609731301705661475977984186542120661044045076851341811988799644915289888939622196579422812349091158290763698905242074212299713790467282809092383121965872230828164103509609263202131589659952908960727870807247286191222310485721339058498237517522829927204155950652363997660323691118240720056097217347792658172352932296717936855210554251336315627375245683173923799878140612911385795915038009726229905310486620270440063282155542821008533077137400317411947029244304245285729257271904336009525313923875656899505167255644459842673731342075166173472236626709346834904774894234994044253189339175022553536883589334363533508414345018626666108187307184011638368343255118395463038523086913904593326472971170418631710589791756619797927122123730955210815632258086848737069106927283959906581412607150710697076874089977481710079308487934100509115333021119671874094805411918076974143349716030611043702630670749058880754252304106311450353530485478226624830392594306517077649427614005810114425466265760026303824012227221962173940844846770125102585482251090257899390242760195541905150508913872845716411630351277944473225421237041698109513713723064013320909739888212606222816608695367295547386388474855995423084314648629258103379815733140761648025358639356114277968039008338099453145850834863650824769556257698593704398791990915773843234801164627050306824014860944826612723323755568293922262356906029846747764475000091129724981067099328298410948794568205937538308710334577478798426393526230251815483941117401410064321882663726846807062033485995226238467139967509315900803591830114834468798639708888463688131714537180779523888695404020046718074123716342800689446876801453190429459938233831660196050377469744704905265663679319094691110106435402650390718660758212180728318271528181411866956086756870464138389842757693495335230700347378483755014891850940648139290006764484497096947392598650567559740786127643624237632058785105070647268901178284483594595867330148570993225778757046141899443409830463526956688110918989711231841140859602852103342314170654119227245987587915550655807910007108986790966093808171519831637301656623062350231527497815682873339420411309270371418811431144606987721084135029229297608261190180379316324052018993499674568347447930132158085658044091886135068986142904498897847465027452349664549191461569113379148425725407266163956492317204264456004080493649329141545798199920269575369088105663111047370040868248343542461645069717602360737301694545745402116743730643655440458378262157996624473855510123247051168362026882494186207135378565614465494482409804596122310364552578430730600471147384227644925492102524622673819485255994632237698920003950646716487909279128421170279931791585687941299015236428653835284527888546499173257032413218026263974649659004496760432205455898488496948326574043739393157553941510828925601162864858432119937924588824616308566209049081673021903553210808754544603077045581469984837858017802485931838674070432881392596721070842222108035249434634794002528048503856379490604410269294981122059639109632451798654691695612116536639181087938393097101572474804804033518387855037432102992724489217843793833826305148140677165039507869743167615770809779980168771045408700112328925131436711087360115112572069125097078275813121169584736516768133391146685631023215343670459128169499388611403419666443674190999097458876013227689472474767266656157264824619486808154730765300716704595121773089949202176276525333816998275728614180949290641102314312715694936082215237234654438826853459895551521850414157551877224540480245091873502314118149954134364809187858682685426190389546932045420744283503601798104530660677729805618224828073379903923425840460661955406707578282454588853138360544092921650104045305661961340903656713390513355008031866437023892285552447874693582432254249694297385351447670894645904487033488240133042373125636811336103235228698312779595596635793410161437184743841044876982795442745676233541578551781454868858028122116797402408052168354285609049232700096738901054211855926171777685432503795390033169879466708687787123574524051611266530951752654289756094569921204548918111285658650283329614101853981895676807876958080682924878573325847851435106196188330583131597768633033816223075249421113510738720614230436483021123504786240924829297589201265446911995672400358266922002842885315690634228722821719657151929965669073309887738730208738198650488058727440870303224510129115787305106984617079451185602658535466735407304984739511833048654265714511802642783721360549197567834066622180034313821511966041016174325160240323508897550205121514522799579740827228064081958194459283935468281273540832192534448310174116829655707346802297988538052449944699665678939996625445504108374310168432787546156698326110935028242042818609082794654333704831957681932584831974976904445743390172846863564985861930633485643527644585430584085114656798399004774757017816876869594878155246889948575601244313823024897011661598828984643261865171832396605860560262032475051804000541726191279759323952206039023075183260924278888093886716827921670021557879091493437594207209628940156342318210041479843101818440265732890755992702483649821500268068992205314398771638662885810829573493536006636247383423579174989253837044247394708440842482022034557472876288580296321602782559806585370375023688293242709919280059218989731326744784279936012383389531392653803437841489260584212456585195235648877798992067355793815067224311711393975868472355182593513478627446758406939796687578487699898667350438956432496730097481304449820057391289107586662586526413013231563595571247068563656515731226784195124395634039436190755134006873862403315660502986314479184562403404422959210348929991589093851821598929469590398473243157675070043527220450700564333990663119635650944459803015484821487605717802856127768523624769128346025131446010079517065844333498190297189351702992303153282235799162022248920253010519883284756756424432858554458960444206588874376905253912385703475597552349824721504143640409503077129903480214230722701462353584620666941977926218772618386675220495893652534544338120599749872543980219345427818087739740058665181144784817776939367558570603324423844070510882484217145031759550752003944259404704625842637738527102841807524064210285875432456008024290790453365649677627684992678712312777471706631902792686087178420959117827532179562282720083876724174594417492788868549494460499583943358979722079646436646109756232445474601000966759403417141585964174686336829452700000651207799226931023825377346471928890078509960492352562670878383710120320188031466287710500155360690536414801192371366614618347219154959366244768351854158781284507615144217882199168331681294740378123315877678657334704511653094989319931178593208787290044233632562165200334587677630536911434935363883108342838215955400662701652816113515531463116795409895401733347284115356615689009936258904299085468097279103913428692055075080318629200861394983761611345856527957124435715964924056487906237995298851477539494558387354721617870404934954173434947151048647159026564874974420846242818514892368208558412954051157026429669671131923972728848963075048102634592570957111911202861301763955826254181432182569330738200470014924075385457789216788989898319045834590868586997064539035415664166989343640645602769332725275641636169493842515328655969920042727762782321167386959752678853126176429603169601130941501853982988036292844159927660186903874786084793421515401602290539641493789452794426325061611671266350620189627522747633246702104066681064996075535028012935965010352961272734202818483384023114890503352897870549605683949922689041165709004554064245671695617600776416752904442000294702870757803404539927198174096380974484664679139385507147749823074132693733969377192885769418193228502517066361840227709951171404900524289434420366893657095676729879881082804301418782135296673963016921340054798212679983529083704390547781227259283750122207356823631126058392989036142873613390648761662165247303454552236283466611064884593038858354010394837598598272824992285863394461020635153268723643894113087784148952369766288498223301954267768807735109576674937521300497852786919160143799642287111036188788869514395336730510872170404024549693311421558639674507996048625500203771958690122455839353446653600899162018488632326190725651231993009092034009574672110985337573538705433301659053158568111764501703415112688251634106628951608683253863017560064957098655324934773715871655247245813234881862120841307472646900528732006380207903163355613089196165991266925878789153699977525470848404476942089895049409247356213339296925058559073931142648053717376300777126477385569511305694288323968923095668968082261635326683243227413615397574667577966135781089243041221654526251814949933440289669074782659800157747902960751356575511420309157116092052693810453439144041334602325096210985596580408594706402381441406555728389370980571798479605638559797011625786494048085613299247152950834201213958373932271430211286749110303400621275459597308967359329097494330758527912555002414248692158076532600061541195918490434770798747821710758656769989315483655188982728227168242843134407665734974734132073627704931695391909583787708134953359652243596764857311560699693466694813017957878808643597638992800545955915135692556587147407094846027845898942216640226365446301437879359374155415895716698182049165950115943464660252291584247008609029292686964722446211695573875821493349538795201985960485964060180759870355830935452492908847276115930908060470608174455169636377106572738077621496266383839867377494161953225366413522995796532113084607925063382706811920934956767876742378569386947638846969428047379285687183545362476486123350148278225560514873773946810280150756671476999034642246424484984631997570007854127318787328961297327074685059441881966046931057128571234535523330037595549092591630993578348818565171727379744891208012869566448079922480795844932079477238354685087458755032478723145295717865758873759637976977860691704538953881875054800319490795044758985445075135163904624378416789802609665403970895953706253795446658652763778014135616505166671713376101871771258529670439968031441079730799576603415913149782315417165965311588996910326004743097787381638270774005914357954920178986483784436953403805673147669844325800721317394565824504537077639308543106807236752109096584078473871179793137919950164588369116295625127259631240160951940172664477633411051502162393091018279161519513029648231520026541911858477342937230664800491530667448862435535456521488303391473507856505950929393652578456201990699832185549519748392428987036411789259365347614122231188839987934671324676805653827998205103019712254490906776373033944571650633357328901058698285561320854219041804222795100481819397257469826807337310327015843283409193152656101451194295384301991336401450639070951988829852321051906523000260871522931201816245293616616837515899657804373898071571505154444439660437668554355953163115042079057475903392002941985474928731686874626816308534900323924048009002854624275056276797466361613700430477847112043520350877029524921712874853347231454974541474425759979022502250067852088757163270533046565356470115446286458475983302596298578121925936432798297728932159757615256905644138146977881672251427948730310468392624922978002413580250683782859304704966502664810961585267821360481998054675821671793924249876687117943612873486633853510827907113262140296486737947775235419174877208336580535886589153040464127024303110903460932166118752569726189773877144045342654479296397498175072422565300585592938211579216982014468348221814632095714761483717781111878879699036015710472551286420779153057663600363908721630807820136456145096941633114989141664579765936392800199517328265810990299279677552574140081357463942807901665632197293464762288956062770309915641593087083704377742407173580533727536086372684493986755037860260507736175613183800800593612942744855728902111771281780074706477883388468111804284720355408413222297774379219245393568870623825825204738103595236447262280105631507958109442592041303763825908687427141197252708909001730859039173677833336223000723551789676001858225750157449094620516445161436996485877944852239835602515309812796956793709146606360193812851836622272951204077502117319953858534637061905785817825556392213858968079329544995174089727430068224471169498265069949383858742880431201763465136166667697509635528231653475166243739429787767294200858809143472068400796918793448770793349178663749224566025292131695343972912717579730518557967029684967128532372764972146858949436553668695695597217860388230136671146503255703424175820605744357791678099733442158576221220417444178320120997890836644748290761710298119754845064929097132983098465904275822518898321201154348663593658090034319885120392237028615013443242435537799235143088343416734444681676217348211593928842611289961801838822932215894387322682811921691029867888357710002905335346471462231495233510602711402577070090154049372336894405027561190486407470479767868816389740571213592410560112400026046135148784441699685463430158845025194061826660697852771830209723902457806488277107713127467239912697652881154763227551052816505015847290608967763420676383242510985613726990037689130258865394017477148519632377790271555212630433681036293252696064960165784544537368013415304676317469886053263176289327580097432162837565890517668857647598945630882689393966987510929475362956121847718035450252909216353998835629522600024251882393844369404185223228244401412095085047332638014636480059456571642210677376972425153623157221475599585866666625685051132815913451168855584874469902413033788915912982863090609282867749870281453962106441232038108571989215123495350946731636120798476231423531316512006679447402515924328706732904265522036926442383601679875510116808468863684596776014830010600520595173782496130813264009465724860733644331051686835391181488779419346657783683339192718637590189689570837089940640054073512709465750000477371821194792894213476234592313416788332117583519091809724517852269465554367822447284531550862136711870343232202971100173855676925436854252349625435625828559183106153364202626191314080702468916023798859906990043875506247518484076667020796625109892588926211046059713768088091467787518519534427264840393325004403142204970821388130902601367840742562839995505737961782800454648530420754983227340342254405300039019137759221808460478872668353512820057830539025278991730067031253069651854781291782930035022101281828607664693473161775095353284386649444016466782180386152584954691586403470904392177259733890088879027292008152531184935576396819617180107650410715326615948200330429005317943843868102003496156609077657606306536962116604297764971860448995173323484324026436878858390744039741495862491293330960163325019629340800651586608871267559247792545965766847804253867098143937529237879194965380657220118889907751321663033537550577708509382527037481628539060390252963906453864704087159303044493125979568011579706614279109071464492806319285590201868826388242963768105882938525409336429475801675431558559995784814952301955630183055800161616487864713718926190579386760052787289685727167721535983347485143601730666615803755880093659803184618481590199741712178707084332368969694459214930909201183024931013791189875385132287493510244405396994842916310707080371717591734183561044559640662295347838643307362697802692450954149052477668197632068172403349820073453447769587182372041169742056063747463229539569571270418074321884962613384854899444964282912182684155379744452564262984796898587748531846571700422863216073757684020645770113981926769233662578685690765259152334187771486548862216358863218876507166804364246375225565042804155152553345784433701973992427077171783709363911133239769665005453664604265846809150863823715330363756316394285383461906279190315606249720361114310019470707000850549642641114358695084598187065615268637849328049812096530655379039389489461790674166852530777144751399008418042996824618051997733826496599438118745839502135350340398196618287588055378271750329476719490663016022461056322746601354623375262236769498230432631168174349655443808888770806105480978888338223342775382027411947807892414980260078668546567129194735100838249577664708945792082248957225035264585620174389176182230064094557120441625342065278777204263998401552810434372040376341450046395457004598631519711023092883925299263620911024822920690831703782659541811996763233803307074016337248331106843340105075687894147796677293397031049041517435138087004342051527394503090018279008684566438712747539868501715612590141501042532171477160674621857474291220038773187040981075881551869650223714164333863746972809494390964681983295244681750453837388550150296246946706363505079318914608070140021968854885826082973112047203190522175828093783832262537364058184692442517510106062177423557411355843877189170722536340361788723693777768046041987554440334797290719218312796338664440882130581021436777444750336759049439244037643526832438216853836650355271036099596864563888106780689023223233524609294242745100855706870337032851060786912049447954721151003158592613243696544173069783669087575462963735119769074035310530236709869716054820666562946933356769258841147037611874067583304715523086235211583961917856559975502505447183325401682065553624081897701457678973720950150332891275137293012357242850228050813585180317350270675857077545847141473097054656012537308501919058422682781392450947944765815320960895225170095727949115568546150865047608975263153081049482069053533984296979292347459469025840456498811621313525589176038877420107657122036077053912458302112022380121445530955094452116260999108846028909000486059919224358927094450855148204675663823578322354443382534145267108058161471535628788881008774709806569925071440551890096315663260453460733286251625990434759681189607120977250681248505406958006218408260209596175496530778987883406163411701074251815981610338516558821292887053386658650507158864124030041853005089771826213699253320259346215174028410627837349006519505916921765638595352664583208304638975256863464401587530602338264749775706821034320907461066429964732042574140363988707020886690596015945390803507099427276208597946209932278572457554788367821924676861439106062502878351809278761500660635462527799425056073235227062485129585092946235437893358111474733148542059736920665264083916826807261704165187416298173172360545857388488763959806081002101375509236065612298757660778756073296663302175254719804815311699567848530563149730745869328074750278888806654538227037688572856981431530667564566263151963244382977284679428580391842394619427142403023211815259500895271200572389780559412339055584713854582603207134000569270015845401639921803790739540339823099789925434594360420504368884445044237426227059967995562023276621881758093765913051453881102993987471383154666367460065045741274741726551727585949212927410539476038616584160040924020617004650152568412620890129917691464166843161201569245922305275403429530186293523727308900604037552357176025690162286101831226964367552987265907974633169826425284280588374414657550557132975624711011505745525990746558946223765344661037893979643499232315700707587263419987154414138098005020438382237821212390505724380313919800041890768303736514711408247721659442400032331408942551022741304182755774937324293928418153732372086627418871059073523603430448150920573394801609994292260409097008682182106824416312644390881175351148483608072009972236303416266948877420104384806248466047808934124518059783418069959489695894526799766396485481240145532920434880644271438989420517677431692245423845635492833189270893611414658145609563613235886807126994935957294795795169285483508801176025589225101587274246752854151831640179032858210515177760249850957890748120134052427590417122714552817508331008271039846841854734617434518950593980652526744954806652046803994675700512500551345146515573089481202109093963287394676873502026596602381977707855260310017808357302601253753470999849292696860479111966896342568533249278269268955942886943104286589880506003505178074661270180441258747217195707861760577263989220124559388760707246191394003744290487337574339874128529373410454369179311125351487537639918685662979302726811927817357306478913252707609927357801167468040826222787462843566747576657934382719766741908798393482694457764818135548552407558136738167922425098355199619713594502225402229046047971727139049375731569632646423195009396071068815987351282096517175914188528339168912928780388366921503858086855565023807194047601991635312074694377185039613658400736232424534368677488276521832664208933635651260807124318789392910559515140301076106376185002796247443425535717633539676797076409025751766191157942196658977595812336983407270405095546374787073586083614689930974336048208606434766666046642423427897528359352687874666390395955881577543040431584905907106560784224678923242528958101086700512729269352639978121435353531616138085893329118598690952669740284789643837988180874481295235836184093641972963169379721475350639644736281186393109650602474886987827580193285869823836000393796298891002566803057190161670779749722098685545205679524751797248885582776897170087157412023414489446559312403301346297411310035265786003695918565759103452450033080165781296430151295124038315784134028413016327520425526090680523721079305110634821044237676393833775165954118082640267047148120041790005950519098905745216738678060352771007276245430108222078581706673092522666055705340899382317399868317217596198997298052838481069007099687340402341374255909037194795670497738403455400740076599327435195681249028804001020849193053785424443858583856843781595072554601667696263554150593159909725727618333804854474038288463129715513054994380765521649833467295506497697931093104912182217810650309487009179200068538640672641431692881388484662570174477009011049332217380316243519129806556126577676200340082504474927000118611345296540554138762709299766928925966531338420727984703522665989244639743624731456090128085013002238937839482862801426497244502895595454907834812022322907490553832806199245594678513446527964821366125499613824958810903956768279174442881913267565817728793953200950948981684837542681590764665936142430296880087154553466748706909434124851554661933197870404005526224007295205183516982660237364433103647778497067364606732987936202197863054257004426329872603941642922003484286514897764563778147845249797148495299787348662090351911095687232771485023759351884745400528322762100394891081621528018033801127775153842609513160240006473390102819573611734128271527118706490618116375033617734972045382108432418827228982350424232786104757368590732122652307626545698428442437282178409579801181622949682129251249784216378135031662772940797341392991754652794854897874357362611820580640161535656195737425353111819913066885825896508085446346157692105023675259787566491050581839313150332175335550119376209401905201734401903253504841476742436879475671746738853766425966304598479537505377746956011684050966014520196495847266524610824506933505997709087798231942205539396090084365472210698298149277351696939450644927966557704551392199933505842962007885791101082330291259211091677792930816532546448164171622902929671161442018811223700218236366465629844582996998099147371220956905908022406936926371634900330631149815601992424550646054628995760774817223373614364152732465674508826009990993955852084948791439668355137532472317664826512447630612279111265865564134927569196523674745561921341024770282719924165338217225683495978590611720086363143472179416428094700388035151065585348845982613944065200008662112248374060807253608887602454901596938703289081867665876390926607211819975218411149510228664202739741478488294607392051531100306649850389536784170047480497613839591029010013576999844915209048551128859292141534335315762864686499473198217515894734728936851998824784256376204874502452253585293154235295761327780023380175240434454471565718728125926412597902022025292728588963589099358173021929368386099219779664212331166329148471840478162739840686180397872289887217614545717400313772924470339218761600588877691631420068387234115407679434641884938578112184223384233206835629959201088750583206546849155008337309915994902937491950705865757677590108888798340142083393883019961899604485757223286859091492554965022810916331630941802027348002981535503394979191199869440255744266687063011776043968585785508862614005036218664495266699153894134867280204441503928768321342316211314573355017497547282423114488037268179682436804987615112935883131313836610445400603034584950287601318409445225763907050454491078661811397101374971947787243183766153633216771421122754187914942152786597444672023911221280458932404002551562873631541318243423430618566335825504626317429709090501808662866070144110307747416738413069304039447508942006164319959940252962050625624089906276159111901209783369723943244902431651190423334676621168862015833666328334492951348766720986640113923168885716013408602041220717678302797630265085473850610490098325464199712206750026146401942688459927691321418227273432832822224492450476039278487928045950756636653990551892659036337944514312410620202647010221662829239455543298450967844014776758406632934656587585123625309683278305897547390543241390501106342091224540183401231471823299268881821611764000448171962819870305630787917901733929155306945037216441628382671057509052256196089096247049574350406831755924874489675370656422489365930224471140629983350235496285400035566450213703670442961979351820262167594480858335959653574726812717337291364513300734218221248774751565757603208794876351663346032283963901856340627882049748906673023774586279716203478755090248971849403370073751742045039740561906141661890121322514988270487546681866296471014825209302596904637944256666452969868230550832207531933765804280369925423903106917445546293457692917840415561605484758021549964621169744022321894712893205056872128617996730855277807101029885617452029185146231513275270607018667690169418420133997377052562598233461409154314449477289900735091913868850260359779014178273989743632164940503521517642722573762888955949304252053761819811967414938811419500507386861365973006667528646971614964602630275434384665213441934571741037274016922842465579385170217934406116230143787434197399928200391834179810590484576327183747428465288612370406297777567229662483041086742335652437043028041302931677348288966098927832747533671138553732332787013975052189016031472864354385740310133680009835651450554436055395917392879022261900572446025495832473496140300887416092532335871351144776905444676211244219631975064830479479636538073102240862554558913688114706526449656800463662748134046093894505338317795663255519618179156072323852237416750161120790884779410041795707678582565284599340093882482369485842173542562679938611881250582025239136514898519520641891535376893797697268226579604907871141315685326443780041860763398624994470933628399927988991498861365378432145114143902465221303185098966106241743408246894918307287254717806520438758172650379044757447310020447159647187949768119669083065456436722899855522648717952894427607695334635317261702201438420901752426479476578786406251196916735906174369450484134008620704058573635833201689670057924438276820564927031326612717899313438715320549078590800902044738560367962667106482534987363788109788555691462662760758901182042003550928340475480175508317342851583171179363888397953420884808258001686384596506220603841965106080462080460144334452721846860419261941302239684395804140485954493798383004681172755691723368153283608755110871423589319310098520775566476456230164940216309393120647380371982535162338302028620062364564526430948204320223134040888208501324714203027276257085873059580491138937960341353317567859966496737257593009898642898164837682529678312818094324947835131960494282872061931233726506489954995885085522871378702714596192455526527316598890626489875914850962659310980040554728969131760497839931354291321430490307837184329820792729943762876699934750321468919056557065280519977032839891442912910324104964948948935186025934052759615081288518357092449173340921306360174147454405704697656930358844810989348481676264980534413943641466200789140297452475379393431201020014201996643002629427353467524877970818426903861714030229229867507742622869178404023169004653582947054665931979112627347244196281319406246709615503816468711568447635189008363612227383217130957428797267077392515823913568894960534433537210282640745087783779599176461443531124516531794118378881807932992673621816596552889640522360310778003950051859328764198581346328297238166086465532028362882443123100087617275899321282051655888234363748293672275688398234925048459638383705803017791425568422349100712965510921223422760671225566692971493823436504796337882737678630432680189228705456982694996036811377801538276748002821325581327789308744597664400932301115561972930507636207157276105655134362260733067925738005864640708081293417032152925970241675988434519507708858596148816706714749694468637120632156617744222065952848632362145120809608003449488778191582754019419990476708218790404479071971004239916668307420005764196493531760187840551648024766688742908533818213021969014079908268003797563076873720370273084671727247834095157806529274284916795235493214112286328291930549192461550522170865614895288731648937693569222111470810054961406134113093822883781773538280667753472250010224045441119392240458564184138364951272727777402299204883877187797540381496994021617625365637611189117005723727133524827848344177209340362036077044988956690957622160136604987579659628060112244099192768972628530126468007233855848288945489572846252922141210182229972438046915492951290333890332494261918312007878856328349208793475509365854453050038860850033615671072571781322650366864752795728830163557491909946122777570082224619539900593191426328592287006686280850265919082431857298308181340776428291722736790707536079107119849018675283889501690685247526410361831327383982028829443877691972949242095109387793232485753203268937181183206466584108655674964448479090373334187778423397873359225072874580987389492300514087623806737809507474470804544108033890804822259052127423634534391003514369729774101535729117433909236808614348339710283652480770228998836534489491903912024475660627887874841592103473881899953767757178724810505668542497596064870776368856527994656392716935078381628030570423386736402435457274336594888315265459166771400394261241066652793200439986276373784937097434416949938268495823243134645290086267409433404460651921415415409015012491550298715074300480798085021358620692036040873880911295768256338212302390629040854491799079865658069852472736124574109392380648850815602352437589973044729808628959858274087973460091121721039992171753730713714356745189688699593191984689268347036642511915593657647497980426428784450229772011727225218678846589688439480174435059479205112848510343479538121896024436387470815011008633041541021808073430130523067679442489868600607627011006759944774290373526384953275839421233092380875225963588725886833269103857052359806422106464686015487181813274264072725331620335854746681152430948584837180065332507018146816769722190778192398291279809722657672833995980120840384242150357014447080651415780225041939687464063148145266864326554211274489157884118980655323639260641480137094431914919893643541522420092411636533793514903597018460478276408266517688283427317645807917813368436615197580400543904579369239930714203247376310142058943001198253727156757145690521729064305631272409867996545856136986289958545983615300256625656182428054332923108848320651074990774783839550848734505094433733342432937843901445032783042832842242242862484168121394277257263827549646332754035809758751997787367503378298782315196261191605587596671264795438616292433226087188786834400852583890010022514491158400454391560529436505828204603902332219774238912583798814204949794522335386562597396190568310390375115580807928422713952765562848247570451424921939342701366903183317058807273118137294840220181620849483429573287763536629818523906843351907278334403659700130207773215138948447129452858453143870505668852974612724877201427668575321829708427301027030475431971653549624797684824658506635548427181200966136150450632433666892603978544463085061924340934656548401317056985802843565650833499689597158089936872597544983073390804880512382337723885293695282041908407985559943283208531644998776454685820383586755717002019800924866517169390875101706342679805955073115413806079399975622103611074573225664027191976167785735844210958880424503449026937854414541096752828810405906527764465753904820247385825319582966441403519855049419678232066610351151129928057695835181388806449079807782880001023123705920976103199002610224682131891688453820372538788869337685770589642843073301803413794777724789202265312226634585736127687509208846741601149436252942561586065613509224180851978991669649271055170595835529826653343987851720361717523946902081951124900517037312316100935722849219968071456843932349231698376679616749846517813521205069445092429425800331447611222387002497775135550559487325535833191898953355871780071072032953170582626079409600397207651630167360048825519045607897290779407563691158595501070366157765057664518380098846459379372201750934866814067847728314848362928235036583312823009474364846516650271170122762280712680684222003715725653484887185298119157012533582747173903553282478125035385483655105574999216029302309708821178298034570602268865946722823358398022254962468893662419014025224811747226936384549871240996951792124111229937606097008273260756397652409386418928629592334203217795517666090481542163460194485104269496227949833480669742838251724071757213457323865048573868258948844634837270871292893720619559402435942653262554174616810754394998479800190608791270532580539124583420137136568937167784895086998837403340739193571510619067672588106307870884649386646182979589700831761699183525042680691164872377459519518023776249573000508009968721611201288280114192802256866805215004728916753733486670139304107636309999132487169260036061097206139520712292440895782937376226392086019534800122840511683040677461404620317342163058370722228349185349266564440325470839827460613503360054383851677261991039260774023433910585224173378141951069835501239521133228369630573187612368610475636130500322202648428842710820154805183068324801056488217695700720851176120152381596673896739428253808081355777025508436099133933320825565972370234313897650533166939616329632974150672619122584697577825065486624502339334093419869186928542135956123018665784834491743496726423748161568050905517760436713784834605854131608844182031721116220016739791514617217405321620533582443868020806829232615901793183781656500431327369766553406651871421257086180367887584314870004316099584451105111033056266171938448880869760423472290092032951869773150578874262482736896820857872040734336410371067642239007362403957442954582647921673670556356954234009113771011128455270138666883672211933179313547821980974942222013479393857723985786263373178111369331983552517775789477447598091246971892405856617288016000263455694643527143004343451972164922537161694872883376746283886868330544761308899616353017864972030730237220168967795047759448352244041808224224498803219099496635750500317393143002640547902358037059953109945782242638203949018564963498779738693209570222018850277873753258525182627982407433315612816352208492091282402984972633145782100863458283893856072238825505193669448404025086441679105862938356571648919689048124082246307071589111587890312419469415301370233895809755629631025998352288554553012881618404601627028416010817556753587814070281165538083358339761448509018615192873843405635057220408353491299948405214281990972569182516234024348936182252112732092149071049498535607618803920221980330241809706467471700075590364973682592793364051330515751321302695364083045787310349168746072093568997056230982697881575602622654660013553468532159134785352773074833914246558829668191183963778082378763878369082954682688954197565553267755873728487608855401500097833757975418274232340967663956161991808335155700412638042935290095616427913493355384578335437391970248922918654684884226746078790979732572548652827012938663822027894244431409073886098100351809154913053011483612346043361812873714903358367737388354993648116723867518289510592537273778483137470147021019860790628623901163399135148117505656885119586260128167944627178941030508412283822391083986297276203692706695326154320499516353480042842678933615885459561595575214934711034601706189022770682751642281548344804360901789588768715379007365147549947944247941883832073305543753914686683908047377116028289966161165721819771277605562637612962709042408950813479734692421641122724893921666318547852295524116606934029625915761414020843566643790285360496077028746409073243175855603607888158135969054844148527093361772698351844666926013286488113723759548318446354319211611137255260377022065200832024056813693407926682259088342624605129535302596263967122774405183754251104640776751531537731481600093743541142990863487282718340256844030331983504415713958957659043760132920596163148372389927572479282375653580702929309113397143186664885059335441721305282335935298520354257912866323365809714966864007680795350222051093357890450998397177865739568878028927983623241106254820756201607152647692452178991151984571345587349327971183547098224882440930239482986837535712654551221203037409580371321011992530051528839125307025731109647075094368849422279369258724525511731115821217081190144038125338062598278806539928986565323808722190731924193250972249120346227055788018985835494189329271488925377968170740711492487896357585982040005972888598702514543194131270704611823412311770492922601868780653511077127381536200277220464352878514216065607868419830556250843651581449167821733789800031546494498787668766939143076412156853886817301987977704628225949857007522052967391562563081379985790622505849861412376509594046328358246806642397333549738832452717405595750966427057367759739280192451125990624009986062634241902587123855521286732724860911147898358595990346768316264379760073814788690000436157654331813332482267877931643860420057861239767044272653247430243242366837342800993499521772452695976472961507100630150649019377341265974841758843115614483965325946656584572783946056655570230573365522624116539984557404997209898346713705824477035678626829720974925133544852137269945275738849490966809183536601973493594489971122213287237139200112517716855710716394087724820067351460708141054296684207520580034203717126477588579870693390996828395967710456365378105981570012350607673026454459279813698864516171098349596528393337346660881682309447695774857334329266109767065550445601800139744056465791968984402971585872327502837598411985507463110693202690481027552688391643388318040793446127148601399468408142363877659653948488569494547665465916703940547208781415081780450327278718700052722742266314788948110425066950523023351037642129424881270980938503105069049763234775338923939112785072050335925197483510766533794119447330345186026730501688642157212830471399254779864727995667459387238579105382927937663616299835957999816701310159902824051439252300602207178605007027630083740891727817708632711299902485999624471012194488653516446650762210127718989947598197360059433685615730644086904092653789020425476409515337328603313290658709018652754307364505353491443834008677540385303317503960587317858307502493300867721011322637380323761927782078076771435272300011908568726147651973657737869190766784957538714630001585374731918217701835151198603757040394301429609300828439171941836616893033844683449396977175142423113724107165171083667475213732748431728625097773621404519390849751092301913683663053981041477384260753226486653373086845498006452090977873718768785320366379528306943733802574698734276748563439350609378118486546610475040265513725994592294527093246078938792730315258418788899850941679142805532913979506407290296881257753033499237661670592571880791235402867391284950668900040602297243569266552475580588503564771080391236129665117544845462883684711238865300691852656633595615419163803111931638557307544560164860289116971377043668764607758795146810141306517184654582131088725711104921837696900159019294614262947525888348812596555626896189059530966706930983197612082515870288869918560342562593405127139215122583858767732133787381613551935678372273829288622146868849187080948605716947930300824364746445604318626068864741847442084194350405728803952517900974190204174711160595859415166473259202554083600294829697791772738643962808704043627179645608379452406731144218807602370857821383460265418894015958576572212691078896656952153840051077592951835207771262510038838412186374244591607823963417800624533485473834343200046581709754564042020919995095386716317056492408397915464676113294895957337893026593414935034284846308869045513891939624400295424513104310238815211187920616282996070862580156774906846947712510128337424179231849632109482264106367631853072257223137046768868227934143465389656290978271589477506420763912755373102952924238806461797968147018810356439362145874560005618319122362849273630793100506235482573535333885505361686295116673252346962714814854011549520153407207772105462708192312177840083689801261719924528413216970322568049748627872372749106478955329131323494757705204580708803143346829535263191179925207103519088047170083484932118950585079832683821818995917775161145827133832731510019914526818788002153454829064117809283232209964353822431081976825035022157481565545358249121409968366282950920333934885617089276490816953333097032349341054501657070196792953490927345437403279426449383825166801674195729465168912564400307287333387147699164425267000517024084408531150615222308572526532797603685630431675511240961857644479780054097390413933909549908772057924634543624994777714429117217618355164777833388944061351145802570250413450976904212524286544448221353906948785246033994459417065678356889238514359687093557050028083718729180279822025838909176816301274704550588745850573553677464051573450444386593275709916325173470726914033169575153604521409714366467576416210420863750051363044179409868812476535749056505459312874205322282479734983144312294995581353153594765599125037891889638736337812145401248204133179361474353110168457474722499494887163225565268721324353380270206054410597968199110135664849854863162466932184977939749466228502320327669637137274373935900096293571749266475215768289152915605429056655708178732023108027609134589583188130513980230918382665464259911171828027784803697765388265453535302172984993082702971087408456681013513251147636665363225544474961253616936567944229407030627246350095472511877803694003134690936497770128262736277617785387692263533132480061217135913707948182416194594950248886393500373698596129405012355223838378388156476881305080431654725828292184004969600043559774453777705361557714637335000603907672382514831475700464862761769991734650013442820046458061859593826828597316728040676454720605090226037623665875025477448003286365944940972363156792925622657176268099169511980510246241651207068652686352937799888449310285902749241851223636285210249257199589312179659090454354770000694068879830640743293925211263095941174669533087999028541484225785222194776394251350411675090967012340601914122957754338434064666487230860903084866494743693351551502168301571588490830996471473770521724920540257851459705962428244770815630448114343889252148521280099301116725095781395279409313337127727445409484174253705008214517258318822207763652315097798456936428730623963327796275033586642340373541705032445191580426569390634719373955971745773852287666890290885310403464556188654419132995699541135496499956951995882321720482461638349275384291867325732295681458141297837443368501298161214379131202624891989925564135543347171014932999113757641786573071218351691514734882645474478855887162968006049329942903448960285009044735275041714713329189162533561978441116539735450522881617760923999794495758915514041603695446040431318426500901015510990631998455721507336070885691741291155669579759891066325102188165031623080451323936076703607743284423063916834255636704081735062147420632977388914722007152366153569647856940942192650689896112457153645367677193084624276935624901767133012295643875070946003878702698514785186339203978934662894137085868898142121766486178291593701708279953658210256898380987158136464464448935210599403084985067222077079951669196173752703237569525648183752674253719362719617151949048894611650793140294795609977934124498970146475425119838372934459367127866661176269778377618097538317842439636283613234557925612199299651860355185163187327599218137764792983617559248897074426012440733361156690074465505400744404567698198599246645689829117541901496831903283282246433275186366720162356237895581768976077380153061143533769533075918193764219306670399108934119473167753951763945253945887721521965309208419791752057060305501925878679546445423530496907402507571164253530188934351567907117597185037258427425042070328616107856769450311689299931216551865627492109741552267805356129025909509407202244410776826221484874095803100662114587696402712871915169455128652285901797222004401355812083028579812462082313107484993038579955429257754251075149818235758449150041716424942003928563590609048319557979377692425294847454437616089140383824311940841613042741058219441246754884051864094174609846324645850517290615047737337872335510560273526271073684801964069124461296053798482380605861797059755298719592570818648892134436770476379472450520571274426451347453509440882440337642921889326191986205769638028145030095910971734365872340843817018425608750707542316999098242574335023507830256641099994128340609643502808556414995461909633948347105903104960202264290352709412959457790433850876660903030793798394246065399429334774531800925158566030756766437012631843554860560938329316512791395792174402188019746598084765377830129400235069818153516695715274564086781974720377230575996661821410080540573946366588900612542030463704057622453047582174660230858092884774775992417902640606825498581456020073594862364352720990849293837791621420644293679125857476231359468048086702865467530428008781095835081880565305835688717431870586830038400569658971318547897729797016496528272387099309273157913630555912553121463393723088313498481752389920586197908782930947391916809805577498394019346596161665457814328474394203615403605110709763576577394331733944804329141691385376870312687327972750511755366837242683617766784556985536468035617153593425736289640250879655073374997623791114582631071334828779274620731055428399618283488562023410601705265137962755395228737080746536077373814660725974550785527380174621181974597150586471853699902277290244229797489853719188947366313343478621941326111697080414728349406629165604245747706189214555731585954375721191344227054555794572142886459205500060713099696753221948378101016728150215472630723466542083415214040456324934118097265775871208495501546669143568366914876246626161079216843869268544397238592115649621569572407892353904174449440453315723293933429591779288885555887941736506103897366446303980806652431498684599696635616872803664938720669266762327731701575452350683505695260310346338955450589311971671930092105411997521593909801877412634668870214952162732538119597433134664657967671940011789529600331418914625519475697606358494401956780717555652995642504843636690058246912893259827026292966024578540977900858812641092313068181734593137407046987278457452736039503254656556039371974031229329648207688962600432903402327362848672249076990054458029117935306847388845219982106225891555776928564975451298838264333789481574206800682097892576645940511304491735958834232410943527843754536430871838143262128503421559796292513692963430043055848323900001265763503527214365557264367308754752637881207566561094377785180316827737291496461192451469922643234448273801991030657428574499235469685739617360980397361395576207715078978291612953044266347472853277968314299272057739967434464609023322596902258829450547285810145264478911187155147026215769227015801432278699849449670664573539386552481524043594636226788148176554821652628971491556052230643777389329130610583810708581640133758336270216311780736763418408725338221431890085781977163661621214957410011730262700184656287104228738618814129354977901477752265520786916288684993676032422021859756578390854612400479544826068595368940955641591097374035761260472014304401793282092536378570860781852205967268984516975150259684322091151313624216318481419603922726026858289942900524130331164816949279818307647105341337633567413086677194456771929674474984055459561436735854942536327537358196369270828932118807573232558384925380758117108824904124011526896554991027512445638495565953603699573247585635756326101955639445517015030454701580959681257526899083785844580537883356318022646210500437948952681686966662296444538527997639754090161363409480589169058891794156859357970855820938260967908521330396086376929802242592408713024248365776740414813571726160630007376930856428533012994066546925996720113133865944684157706093780426199195826781566220370309432335446168321401096545780271479324323673512409922046011810219860747763521519426413621139049630490409133892072850063570372531185933663636108919536365890355537044668783354366255186951182425202893516551448625091288589922261569520954300352439964924310299245540187351270364780183265440180673156843893290754333566146178924056518101533376189686732425091210675460011784494635736596413653917360127850236288696234113257478154121543207268688962539343315864775380908394848702619375532142187048847116128200669926230643658603174965519038018345280777036354237480139197278283973663629339601945604906248413258129413714846705473461331057985726991138935479771364186246563325379531206385633616632899361972042372327774992782687283601936034051157586407777273117342728426991540082895658746928695786840889298476026276186627755458675167933531795905752974023384597354032106712165262896076365873161415823017759103702316089501208931514415201306789556255737648945297432184190252101970431038133402700932268768205915595677910059209480362528133791327370170631869905164678578625787111336897649401318833384325063157095326280993586039960920384591629915928230777322033017583405353605937717575322921717102103937300468561570212801777928617208783231119509902904771715459128254990593847237150514394172995687910591845776475207042811734987447228956399953322572744283374699209058595941726026150125030552066362301261319265794642347725289858762992761668949353610949034529936104295313812621616231562269952265666538445122013023266456219541747466906852254610368890526456289275465295354525745051331582978298930476304770356052227644340010057762266379992099672441128077248836786873246918621853038668836131085720013289685243189480864172845004180081464458395772306737308217528556689613722600399232400745820312356484410835823847503629084127086967973758628584003899363896302341466137444127313177703352323816640514034804762222588275467912891826643935927970924011030327697758855975274101801860867638779904296895993014006181930746195279764856042977868965717323538742961460680552935294037702658485498602302439244387005096985315037609693454646953573124231886466883086430655638554892998202064514846103705104320386612993976682371400009056726308244172938651955871133308239354223133469702550882918269424227204376497475588674358319945984750087004041716502957122656983517515053729332174824776487001234789676409608682031963895394789808940834496059666803336875813600908942838376010481561925480917388507457578044107529284987041173822086123083317645798737123798767772654238824036305412261970461613128051300417061562809366744008952874353092122402687127022790891421662619207283661904998992486771451702198928004721366530498988061904254543013378815641740032238295639564648702628657178876164342764181317237079323094446138875433281594400528857071858993290659343296570758494409643425681584505429912605824363378771403476267734584669031453524038875494815136266379173097589990943875031111831675586539593973392772358507511418115619837635584482054017470447664487549087740056904223246272467075598789267655120892822446736742505381540922475047332491414531379019032217473159721277726971493583350037182611860803270885255806965111075700357406326553131476367489038477899291303781155580178666908371756704826700375499634439915842112172118681209519138061954132131928390130596269827830986808274318993787442646549128543543604508188729198384983021820432566663384583211800318249967739620513500980548747016896239475191814488555320906469681619606191658709209384332025717697324990652810763728036045565039789075123354554345506474043236060047486671867407641798011693350169286748644290336558793859883007331227033064496713312787221588123639371171591602460772838993212272413109640443695867063659449132051379641185608818020161540228323267693382332620118388148743572806012229792336271746822235908437791212461981782497047497023889547532046290377765000663751916284031626795404896647483862912619281290986730223809053277467041427547678068684968713057967145347581108449546048739994382650579383938682744461477260806985694693011115264771002760026626638278299327376460089461439206617545867174661407691907558831014163065929042760916411191509228631932693676235785869257738182646761602702489569856805866927553228556634770454550765563109723853770001791792701049492905598112844083044893524665647229239689151054959338937657737462674509528470770841379644601223026587022262733857346621171040198916520636620309847109290330708077570869375945805793960682008716660776674228421473253178171396073844777416756196369856041331190744134059181512352591619414136599086423893384740325426359736844139559152448137466563426645192882762725643249087175041993452040529057393708011878002972643975828392225098770207404694238233940884731581401686970802893376495060072506038971086696738268355935622607775628758863029388378349977614624978897186519994775571708840097903742271298640632110084500763480920239503469024378498453003286002905578847563424163635958236901586555216487871941393455307987837124066911393132798712695545747243045039971425901470498878553111094261886020107728660952012370319402882478383157839431398064353772371567589603138340354316173008818255986151947333287129924575236442267581537372704561126682362990471224167139309480110654672095369669521184405135129236859324324575181154443423436666120026917511817073919829576244843444158833114916811010559016345373245247592024984582785745050367372999273783719697405973089911343313515476767408288519862736784265972111778059564960410248382554244338325415805020853733383636234126167312475717162264414983526752228702576378701375740609346537657305918642492581848711788650144798413714392039942182766021168815131647879415150618046575558141895488244066652130947052757693756515503027518000661276696877515153252190174915216422833415562320046453880165068268659563700788557561927574905640789094462117466202114570751243919958105320291684962578646653277133415685152340557415867459301887553169893859923590154203804706537236647062220752961766324399293745017935969276978301093076598486201823809474902651824393012077844581866381213305725990533070189438512502059382471785549351624682910754787893492571505582773836399988491054977627745617869138095585378912044437302221253632214562995685033932214957331464562587448862668039444653671338141616706076643634827581469228338054454986400908747574615657017808804082118744105958098021399671400447033591218971646988446147122362895969503269058714178552203794797635148731149489154306841703395240306193537628927870146910619535439331906689821296275634550415006966525393602477225709979373402754266510009018937697655486321970156531930230664039679159590996796647599392122600105993986516177768068434906084627804804917942624485661882353935581081427284579679113514713655848277025396276800570526243181511354800513451264496990995835741469023772882276821058569239026690748887746030828530885437884577674451679120768685137115849422547327344773944433675239878976880312035344903558643932891048640955934856704184436666851902390620399117192117714927043432805746088204632769777940224107753674897281376566444725234371717934750500499901649361716572633873630859874705149702219292639720023092130498699294151209463370274412086601266903173475716812282185798047477565284917310486261400884827946930092513603728633948153139298149149001172037513740969485968289450794279808729905583258493897299515294109579781298629828196818353219385259640988299975317114619592723014243132186297675829853137905551677760434328819118819529374386876028453716627597684712990068494974900508786775216526401603199995265284516639246305161818403800815495944786922622931997253821212531900567964282820673383459823452186656767755003300454205395412827052677718384992181729904218753303950089561025264257341056304503342990641202952666848005712876287911158595610182116568844066422443518888345713602017966815392147154858954485368695339354116985446016107402253555153820730941969227073533811502316152998897081329621012602532556964222447624886144255818973335271097976223568641998535183069990798120826245685623253381260187501182913376264649812090198615971502141318478155786015836767761786069954748622224207923059298546400593495066459928008295070161033003220434509477802138788307919445754744937685286326318172472604916559975214205114059481697429380634403591408240639959934213167629302642591791227741659783683536021403633344347241474556489183458557269200798850264220623463652946476083252268518768836471109439722595736033328369075965046064378216741027884798823346486576273187885637290841404709711153944561073581658564352220884321854928978352505224830572799386565088695539231274384299653557279508255423051524517658865588158251603859499812166027346319683341912979759612467523078301607099288771836455542522985797185080719419643052551511900270087869720428920205716108549612398841042794478797057289226611308311148632915632386147114773259324092187247048616441076733199728376146219089703365953662443342117265502740522901873678651772102161619743625584717845213705354020946271813792314167765756086741056977977299104181046990612935361816129549472746001985083031270701857774666000575322893598912505810435995864748147867730893237861300583299618080981981378219488505686182567953131745855392684419036797215848460384235965462571624755213428266284541442830173571605697065150985175278300644281996224988452637292739555775511439994695607307443761174124698386902231240286058870899962901797518768898845006944924481685915613310316345457099999604392247907374915700384335947959500333566599899577422481802378460893082557000685883762376982108826876152905363445295147245194250709545564472476985867199821159597970315128389102363344726530371810664429623344543003904443007917744265715573701094725756351944902845261934934493914730810950852225797936542901794548052290880301537241812175657459116679106523232566659660663548605436469780023740280716127447183034147139275877707065750442792912318951772138624822308522525721565922633962865223960467147891515265283782164271350522937805568457205010757331017351777350455624754211540136260765994906948266023660184624407470042465757351274582993602807848218754749822710882899403553430301643584860288480697807834558313489849990612716484663428144682281003353279750028335995105317160384331924502765209690663671806579279153364808591955486474240147234183267176762924394577938777742223897210913416642821461629650538734701025296336346717437986877073428138277950815123317698216992921219553067400977855709376896503564012599759772129443862432800161214544609195571685968977096111799947435467019477284575229256702328499147847147555672407753891668973541940203687202398150780428251806768546974068700064398087947478030468202892640913769806885410367836275946444686470411891026904145254259361183037891847087078206013843693075177114421386410707676415303222558051071206999132096761680180431801133484344497814454589217551690936158200352056180464246066105549805320835833287569894431546913370436520248720352106252868141691533201166752057748039928305522123658509024897584093006142885066858111132927596654475696616873450525613664715848050260449564075494922797472837554836642091625680764689489010637179129156460871915491267657428780182757529770262547768428917787747669902426492706382993947034398872392065036267955102571667895002853961032743036858332399488115164706143534137318182032347852549559390701692102785085925754750991720090228363098096890742500452642594474923842028188519295460944406993379986051264510181587940125310929644067634570880115334336061463051189192114527417690090060084460487793408369425798577309914316233783467645442302656019704747519562547577393199665679441822451362257287135540126586319043162007350927271198212892125769912898223634758570822549016103638251876289034241249550416668300679464565841996381771054741421723442454389032178333947454220119101372526036461108394585438705547243030679634564657404241134996129166259505770193434995890944980236891492280942882620936278529131130156860347158049955525682693450494349540053923847800497975403032457429044193702392383190433654713351103993959117799434156119277461993890194743102730969404500178658820032053778374025372873986624345490668932460806363578087904764687276239289218651315185431468273983817784530671337654089406235491020947854958078356738125241298294174652351704879939473979137137813839565698141940783304183789220921250006701512779315199040186100237743761603679056110163175848719242270062836891691898422780060685275127826201310993844734305073712887992154481177994119227844263444416002856211316060324000984218633299805113172100612529245936462294751988636661494408810134012522659277984546847463714371915134247447878087398840392196825687973695164119064187288134917676843152018356506980422517680607200851335388662147951975821003936649518246664184535825567048809615729538378568377114698635847361477858384921924505843211511360914127539164211597388346289334051774998393684927994255181203544410098343069827421776091908675291308317627639156562085774447388592991924710107656357959397832040925040964792527770920138986592749706811393957838189905328766602338945998693083647916972900016827846882848976391031527983128577481863469449164100626480504392970374308919560466502411813246485787772320412961184205918479232998331088383046511031060045764505538933549972086539507125238562748152210880464595992083787304374844100112482224691152301064215900910240167748092199069383471840277705430270425282481848978883834906377045801735576943597537392513739216887648985777059137186529487013780581501395674669912161333224859897871081881163312456068271585072127536277623153421673340278244301470934163507872942712927023801971383303011721674045757721193999657184971132025098725394898799067357524928893758700155019235269442732749003235484447311863332181864779159170611761507043936210281475684990989498628061278060819352553844280092060343842460286263962284687252740266165268149667718797565766417896652779398801232689033087054505142679824283057151141755466899241737219236033612085883204280607474707155918684649236119076285012154693544204043235286745877793326489423158532953210503322335456489496111269774940566900934034008433564344969947858982703893915612912995287201432549959002695612579138166466160874512423589864496905718817263884408122119421159879851880926309244844617479869090050752579393829055783590993124754042412398275490059565358999663053455312384252511459102309007372777413177260352428635909351696209632132469679860685608941001704906309003485041805726810376684859277783830468291022586362636594200390635692975435111860638900850170209303452353352057117993118560757113284777900684515185160177032957527060739544396736788640031490720704809161991476337200637449898708511630498014931685007025160571986298767716597977318957704277448010267067697173869586742654477578566307237324272083687044960392829090573685111051451267158621476529311917315463471479340683560845209786966034208806381516340628303725502144956983264980217193874759680608846739155596297059506402246869493539149372635788659491570419525379353366874664629506792206774919403491054414495051423336707270362611554724345348630701021033356492229838683618401873929480242438249825618033064767489398470297572757790100083441138823746702893838460296675016811404556376744513276423266559403311124911633900160264049367204388773912245837924178856617265451462298745787621302969588928662017533880417532687370232783841468402784297278945355867377719007804778267451885796916917403027426223844197063255413849943932387723540004313215333324329918498599297807446447826248004070302459844402291363508692912093454298982203222946781912150462403202754905886585900242066713992954371292747652033935453263375695580619730870059875215384677535899324097572210936958609881083607085545410010671395255395716204635918424639536411170651091139723927868079310020253989200336272222325296497673107658857349953692777986633684857758729408024003079946893827155850665744723888645971240513588935353205159341252692970154046558725147052689074726720634497100102522119457485665817159721164573630864266390901014918295956584801394453241014945381461365288690822718134684745625994524134552947513071816001358532244507795156142729452338138876371164265743778300799662051147280176625933238916908791371755247569209763809827823270255950418370971570448651139901837517104128287003741078174767990067388970698275841844607386225103041704752924489677341230313610887869905688547961254456017371793168485717040882352741859041411420825562498003895076889952387724784317811160982760653866037762189760431462707030776180062827889032491991276464331118872296297184478555938888573095988278658141509205745316855161622239211581502153146102271606271483001728512686593697127669381755180361586117495654059985368832301577262377168785574651456195452924123212822844594659926376764114654455550449869560775416595296988484161599219986211975075929478187190308897998155441253656809900437171549344864002534465045595478886512883037797711427767040440496321891843710921040217671018962481811698816356088685358119440890877009201305487456067475164315189056066196866826588972367887065557554049468747853918065471553895718629532709042844784292546653765973143515476517679177424321867831767262870170318327482214408561856314551699943928317549227858775769408946474073112843298798062672384135987919835028904918886978453612158312482604465099094552251659433623822980552338614447005715174060111122898892318807464152840504161018096045087095866153857684716503244196888679078894944680544687517494529951427291249538808057627010443788510655886498845642420735795021432041833257272987282026881641201779098047803693559767109885877987092216588899581039163063403600997228275814027689281158196310410795154243646113578639483263887481039114681010337452700083254874170242418346393226327402131595873724202096819595167906689408939890729940754785934137613287392593094861182593603917312173823119906004317810362402085070997933180444970219402872203528406923123430048257465070962411284121536356222741405871980612457895372328851995858991654275641876563266997242990247828220660840994401242325838850923233240388529357686418092118287046688276294924450371546309726641032494231599356030373044263630121300084107691953584851467027538840373324918600063463948955226715350505336419636170163982802547989444813707224367662533907104244968766782562834962883562482805507146487802142509212870946798750927072336869339392604470779411004572488975472104952055449690032334596476841882177486409429746138458302554221562078855570593189847220961934965421920008005868254101095237299292846521847869741710446644820869963774304731610569259791645791379983627807242069714444626830151859219456598734246637929298933933733313541433716919719613454353008084288489952082137424926014705726046705309900482991379519967006277229219194399907830359802074594004977713810952824181497054100986500252688049076887616885970745881841715106591959701723933123353452384170156301573194931793203138257891495864312759043892234607125709738528651851710977351289610169513284763292712394719902822777055194190643096252183845695003326440785509036636858700816680964248426465045776904627851753359439760658505213520916259605424841572217508124404368683893448104248493100884637508649647286944614441168780538295856587673621260096826211443704129662796850084065598884105413874901567881012902993100423921830046439238868348383355422516681466625320643877947465146331672693190995655607369294703191236357256854899612946781104053099806579329560028378888027629786923221740084164657385446294681809394496435356626782634811657675509943792500574112993494686432310795784468257188574532491821868605790394654228662692419781528621338742343851073357428268709426700241663715853418327258235885622013092834965886960650272456210980481624465339047820554328573337542151846123405454367119299016985111890139053109501142992781224512793808463003202298841984622926126668027106236964597401536987447461788837839090981135326251088061028999562654946810793267428811517540676372190524483647636482234667913929258965055523465438599156316413218043981474052817656464009283295897360866780527843118045109931775890778843499507414548579518331705401537759720178248364214364105540886591019802747613780570486783296767730477640422912550540783488082167422115332602012188894519010132329682157155953243582478005293699866794523888943687013698182323318651798603058702806532727980642243360426912657155302847555616296714597858265019786805218881922238975495501681150719915785624906134607510933300889144404756569605592740922232522084917997667126148897878695041367369946295373066578720514970394604829519132987835101715732466681273146342744385216652968567730067904958973104131610936233898850544890801465494515504990007225727405741287237538482993915589792625267853755930476070421963071911863955500270180547643678748952711833433981300371763884314459067636279699276268775555666277447614082622130040406266404655996250119170135534278017864307145883669576318992592089758938864035879263990201461729730125995661254535567807486592175715409084391831024053649809519006666460012017366569086038035351582991177014748556979913544403052064486179938310848276859845254869456365574251359537514866219268129461068939450396335036954792542107433388590128669731558650433226538186373706826757640427890226580971373371658602837701637051343554401211974962714054194044430869725573357992276474329322063205878090472799542062884976284535311353783308641826543638608644583327233988837635353625138466448714256332175904781665229874576952708703060668664599193117775821407906862183281222354051901475365816179206192838119226474360769747467786095931756300391324288108241874160315780891771577168260750611844077328669193104944548796989898167551764454308883997860655557211128158088283087679914732379063548359469891015975307459686696607790447643670513633435739857599682893375686185446177523762607172455621451866192783197201651302934346790119409362065936605836617673179198072083438663194116896345075063997170297101507600078399580266634320543600438658576387725206099300360181624534387786039334954473366165385394295963611434826168587696935628053437762506321724958367164453288482828388007044813163165053438905411798978991514613791753248999345125017258733471065615142723631611227693120673628477767975621846733637992058016960594597775600747764576909899880710592538671696580824153102901767096807020994395105092411319326926416826089444618496887449035669811153449457182337057363389041899611378448675365634614707818592367244482029118766604228073313543536885760350478333264892600219023901815952986917686248481550343478801483173633979119380578508226112891304061511772557824086692227162455157792490571332351279302754674029937585655788419534452703215632557153112227444773285555146454836569689317437990192859292774802347910631424616087909572923829390707002700406910553685800622310464393975146455079409506281981752879887603751827708857213224682880065187194783861968577631334695478735069276895191642564615110461584984813670117843849288406873217552255929562059657575303151887147524680278767333640779667543834533727925917974842739108680716696223892129895355642039931686978599860723908578263144953060241260174125906256996221823359229838326576881362707052460859218404028942694772855131287623118967741306690707908326586904641923431074471027116426043849983725328540306726247903125408940054397030194478686750797110011047287737312075512223599741599735166628331043717440245995237666723235553105606149642553571769142462023700690686173160131029072895351050290653384773755350988429411878054280465390662588637240307359125381397657697918770191781517869463706416907609391633098208898661079472833072997670651953610486083486612833389881467079764330861606482905233833319730226721263449251395252777581289488375601152708617240885064854366104104057246157246817751784832636126650995237794278649008895667029658631398949799747798761874754419455830107198090725575456112310805029485118280828998092677058486312640005488017624981047587710393826104634907084035285847097184199815192812043726298810076600454632796162821522231757862204836722249061068641178608307750315036999284384695621246334334331194286794504792710235132406131152324984539739473276974995418157895520168246031236113181594153388347285520602691805136466956039810266183223776245512959260884681133208186592583780037225547015949534550282911630219325754496377950323226196712102478992558478045416731839093067961346808092123742647842159712558216598781206553004234681513495914161806194271725165408477568596640571414632468265512029986138393796367751420144794628328000143632613322233740389756988557856994957671229969741843128736625039982456595980135815601162373514908940278957061390625558368623664894118004727156182656991907293624030448144626834411426812272041002585321837495190933187239893316074371266001935122259624337153870598698985670502819703101602836180102713838951048219987000096091853918567389781997727679137708135769964201657507865699351437719677115938052216110862112384735408203118612409108442934294856769419657526428721614957012175270494619088741852580728282227888599788226136615064451402715564348030860398086234293800613818167182941155616314768835279075909876104092220542504989125987495382914457390307267495826912473549031971503278583281171774644910217276420363064342509273164034778736568859028906861402025195545389483731609558890891499660026463677975591029422609304472812237640685635947985704120279722553302483052063295179505987362062694391055883935471529689919455311263626484533113622261919012993299487211499261832134709293722490125101335735944811100837570612235476287786496246292552838679108603984474737883646264065454454978281810870802088507816198684845211241248115750179009802742459728512019163921737371628263135386413358206783924115082892241041584016238898006163254171732353654114320169030449817007479556374193014401615113066471502588040849228173347578874322360068972454264368081170422930471889937622606121228028654973047088489636098163079242228795237290441047915445332705293034700498248738265715597105194724934300498486305558275302903687570044470072670077356584749868324047524079166114303299498545152140877309539350627682100794505807741631126529567406879709371956440778793747528605294771757373350855018135223076866231626492983987268538594560162346821705683703483298371853117000508151190353801116865253492133226622671655469576836589258489874698375953089847598086279532508030561689962375836928980210187964074714798026314134254367024416209905297158997279598767832094522030500472059275271576242403494385253966046053802973026434138343995172744589521595348578910358860598508681180251372895936427945354061731820914932728151159283580738874244499980429169543424267494627796507245909206538350902350898677380863021587675905135154227923366781518267582184945170856919691993571469881201245678794421699088635151134362652630860205065187500543904186361638534297099874240131077708267282658484714001859225477625500693682835792187853781966438572693129010977644261379789231391821698388384829327467135430944429691602786741628288720062136819530953222303093036058641012679064089437082228849514404662297813528030543670707491249018277449733664361469453778954196392823781635587548080458312126780921244309001234155849247996496982779734259165352918607963838664847208844353229549032855247445297763699015394979366563570755552617154951229345566144951616390111751808390056209053974237113438385009722933934312666224663622236090325890722996803315095347340610577589090796068429431312175847718853430256231607433380161541177004087464751301692774090741673960549138395267182211616693592275654092625214204976006833961866636050879889488745022665752885691125979660592600354241947856152263424343065980975845774416654860547496523162576730391876467306568749813592333775325938836867064181418262553986551538660736982183668522438283109774251090640224391400332699681014244132514994584415543573661018084054260092436744768069225517013155807925961223562903518818857601060500195417491666735317981156040517891416309795561128392971527815507748524329770770955890502381001088417589023917732192986450249482174441300857262174333465518510049346295151343469506034322448855114115453838437841999754773689024117457922834757216252577377505188147520202254151229748482960278734527015960606674426514392396296658642993034406958095721132990937908084565638973113038488433402129881741118229636233232060024960094843089315505817469993232259452272844429355250064178961106358961615624747178913599202044034247461320856970924120918337556693159057488066810867267281370690048927908763694605225709005479561769692101143636927158993536669540316289490444078866821406527137107147053369120091381164435947471506624822896059387010163421956570121921477218903747974186780379225584055763996207123748410227436911084972634526823698252793049380817656756957595190454868706758037781057973098997131450842104519986902027323065435014300333584427905172304635266510003833936652038722528550061603519252183288622675058622165404893617031383715492767677023845054966162864662695102928417989816139005196993789460260465071520530674274123903476871922652674147162421482556198253894380395228386290420216894296197085686208445205426465156647492658853574133000441343589461112024140059443889096910807418577534773211873229607811850122219467470387861213500404835897711804308460050705276388846516232229077137594798336959515531377622753045347830495655969511393929290012446790839224506463216129556537086511606004189544192298911146765516538885687359172976709341529024638475175085243356201052948863784751785403690182765708042520147008564848317875022372328999605324409735062814111782814736189943563864393461430342174827824421634256825001066909854731744955426345888774647084618270041530211301736921035150600180106947300136614222411615545954372660682900531071701561855022513965472349915686115021097383504136214296099372856819182072897872063393046800619930833087520102868999600165043112165740833473549977785325626327269403934071418292229690328785363852459066222808586308691098572832086177839119602881021221291108920370656152897243525265062685594053969216177099522159511990330360531562690686811590840886352494725016804263785388741657023507775420453295551832615952190901260370143503090789990286416088285901486337635636848896086661034764404425701890873916223811138049290403809371496248059503061992007351598979539247758105708381640542449031934873210565774708948795089639445263987415269916983374755984382666058629646680366031494121486883415213416710949143024172021259624338377248440483896629416214802183929190670462233448164182226017282306696662732763633593895086857183523508695935836788336336260637641360526961069651206167512724515138908079943759443247031329785056003795510189215078008823157162423564704939235142933994222953982741120536655885501903776950913128339867412891635078084104754815264918997975637741713252175225125827911984769340746208646318662953837014774756396580667944565596320510379068676232578572297877153941853503113159401470276977348374436157686884179591931198007430502596520617679988514047112534752611889451047552082196735253985371788449050751290730499144241739250998227777713589144417050603287286670955757660835372923934738761628072974140348010327100748705931441104023267945147923175674761275597836080075560820390751451249294696983777810161316591124088043099616320170247124714107799660984850070193697374454911697798003413143199864782849534237892228089719086231046837639998330925510129578165528181751406421812614165205757695262750199576276223666611547124871328941574196961721316715628338256438563673082263617190649279005863191641297763697663220307324152631704524998498079828058766554146720385147977921817303713640960047256936602747015367331414538552794235527566099878543491191447672722418967648692648589283326066143375485692745311540544355356075131229831944825959619307406382791097524101815113239883029361289113992724654101373740649175949314616957136602628852410107848457027089004827437756678122739913142484902679851067253242241999389352308329605342326379192396484130159712227919391738505920333706699495094288025515710988615077822550065566551016762818280187868809264813178329993388738674278874043758237993983957182721302263240961053984070585075883398050030074509911194011972975765962918414927676636083142024507454202304795460667855732107001149085372919002155791465887106590183230418587484858105760851610288230446134745602466234908628827941747515124231731931823123335428727848174288154846719317346965387030700369518205486364636371279414659392360994230373451641803703862099066802266304817528348075586151293669361488168591624789228583954419370905531763976948490068425844979098623321112055562865364364954405214501918042191858828507502260096648834847696614023745949409406188959371719910830365384315487246811969939135691294722661031380955628985473829257544691857571638359653840672656855296010627268920693578813358173334382665238112395684954553187933089819025372048103291763140232343083838295890368618396085884960109175581059186860689732771031205740296618624115847085105753304632151806122377119719742202632058923572431610706624168121373170738726818422699315562621186786699954260201513410970312648918866477535306840018703640309745449693409705194346078986680936000850767640021467481410693864506584435227020315363748505027556516339882859979574765970864385248957182268406541823931688050288366503904010893287431474039818908641755392660409777165958403632018126541691545329454673802914552130050613330380763461457143027218332193593808988227994685784285918111121173715725426112810576369253681206700853943752019899851541251734151619221118825422393506951384875868031517431578968339445498929559882681785970488490114001689015738273830009822379734932005222912430707092364091628367621822179523932319990571231112233037824093307396586918660056479762909845499911035287402115619914014508901150050104859599250375509992732722713789969965142769656544946856742825757739997700146184312019088805147187530534532135750972181170121524659806111215807419439824450267382547411519886345020023021327378353435821281207109213657805917644178076401155584950098961923206418874357397022264972001850109119849439570319600484634349097040285603252961405043210320949234331872418509366634708805724934815373386805305824114510255025610310468109060375002497135506317321753374906183187741626809360914906457473087467728642552282679806225479450717380976560097707312383058818908383722676214428691008401358577137216973618952950252577328785534951012303368830091900880260665256433786567768244591149004841262406811788156248538467343474868845392877610231795745960924980327564020164108901905377275703866724481642473935379896493302768575472297637190335779921378521449220455284799498915240587592669288775488970872894557450757354664367315522834526219118802322158162562572979378642335183432375256165350833588910724983565115313506821637089709662143587345259561038479215688577601641038271348953019955678763682198547318254496238665294916335855613893745139963603502678832067669987919965364864270510588041162461154194175575450761119614773447128191741655965848391620034080515593523173358027726290797200799758037178672321433334265386123670617697437402014950011274753855543629625436154567368215806141466201263780614431105923062720735567091726341540711282534628866330293220667878628147491896103515363123935352120158210073214116842894800034562981500955957717776921506878242351534338039861200332575622923977758403701716151558914679665690916800435660767355025780238272420070852881850981873759875215415861015162915417738377125029240973836353420223860335116902346417624714099852812073667226510862694888041700149996276655445627228374110846135189867054206710863255368883931390543730254015831680801968187626563336397895878216459446364445971817001342664466616222970081342260893192422826950863416743141517030269874126761153068248025295343951254108909629850502197110712200728013555708652109206735058118389296606765336463122670548051471235810934672868310263052514638260484357457273677813160047533263724971487538444322421595688580631518995768158657856525045292257248042392976781805178230395667120746709208797945750660527675398490192157131864683119620068965693696859549677085863461068779383063389197348548825115053417483596326169702294641349120117347901847005733153584988438776180473128594266104983398489318494616009775357255514493999537922071778995804199021234852097143687509505543294300538321407548129299637555690964061407086202542208457020328383725873465845293278925070052852850746585009431379717339552540432956610752284617582946534800288211041596384004691299212304358124830255177289447509354674797900564395107170560856207083796987287240695207213415813772364601968025136027150605777866096075556306428078784534296989368769442028272228573198553447997297064853484067832758626474538249710101351312760448041234712339888364420149218774260753166733349186014660408413610455081151873806081226033327110146894684108437910796493314101429822610456611231048374020868638917218120537350074893325270265590419455264371621451669675822106599008143890286979343400481045350019224676635318137758447949851841788080276746326669895396404222768834769195525371294487073319155066195098832346110552143392390997953476580689884382859192688628415117376248764408177464129027839158450279465788385798433350661557194883501758851574045510049117082464931890155352625044380399018058869678958196795199013568614409485054658653663030450854476958380175820008784325558389998756125955822552803323533690651703824677216003614608777026252347205498612445492629422637007899626978666979303149477783341499893001043935928711286171140523397791608607614802889174898515022337532844530705778412609028778333664677877554830158599324660738787636756733268290892304604312913465857570309793683948878261566279222942700032063075984186281357221622341971598482802260604639118521443979483627634542660021942761535238859220683562846711784449881548556881092556859235394251327598377362971281331950715956361766864781640246761332062138187704497708497592832954034112867834575862789702277435920928533364011501235056727833262066272145854121089605355907340248472713707237312681929402735912025499662946487203512746085120926485507617889916894885733029326840995300768653717159675218406732044212536112297498573142970958549432574930468065052894510178145105322076508655740443982022087766719901013572179339163184306632935869172527167246920703873122075809171473679834172913468259735311524433338052064516861739199488582296786002653792331432401945710302509798295465126737987718489080258077598883257242829778876910166659377283231541390088736646720592586508060163537413641872848539635794538142719852511827246200917909232586465878717347999708614199286039153314623916525642469462873644813197984031585524698430670999571312818704084336044318291906617107380019978036515511156955533978563402658487416857834084497386228175172833447592043932919717848133792399801758631327106062768964426816351124455715338221417218123658602895596384467440995427511609636788015202831605382496656081365860657896605684982533522589213960328038705661214874788506287066092802066996865136045111817181698405440369540203221387739399971437434664265961445707104272561616968953778274189534498343745726577305548148914140880081056009189436927252203503873362145496018952983727782622658328638130389397777066681094722857483887763837366851646707816281591016374012628027142313471794891878699722217800988846591265108638936262003471525523575886349997274252877197319386083693612592884424903474487824656850609345762874771936609033597608257423707700318209157862047506212033245559992761374126849237418517071502219839752899647748122151091169277503698149576591121238356680186130759517919054690266419406996573738094033727659171442804362889155729247925766058261654387529518196395780494513799829098207730766458527501854092554036749095282684841757117842945108099485386107678008021235688146394633678911499971220936297981638144947175396786950672171355122348750593671186755537772460487445799559729259622527450829123973896834757025872068121878653461884097572217377528582054454992497355841159904137653888931163657586682597087593001725610254522039279117013846207117185368712717804661673423298066790896538745636103159596676559096790135124488632116959164640838253387934328830370372027529646641563520776341085649292860729628020262986789960259213479939441016396521607282042988938715901040372245281907516079632367098470682392639718376777664744453825555915414668449435240046910132322241526070272665796317337641241842856402564174202526869376857393423030683213139287191984473342581384039712028676274532759804369885151184277008735367558735920741512479044491791660464688833787013048019311685529420814773752618495477562799596621479506089787318068234379923700256909912503998234857666171049566436578115246053222110897402959290196768475324796974132750383746133585057985098944269920042905304371658582425063554057489171067122081541051725761435917264164706861306192413527221030606812903062069209679827781839744234724790111973912781832628842717784547989572545750566191595847706554966215925732739525755975381413533921596015041402927565431156330585834802341306270591483525224801641896986957189935053275472757717295881528076535642797868160837436852534536384608969531958569566123898459900870116756682131554441546463200728229895229913161061668443002420190068254534330451882631660033759966289325895637088734398802356780461172136440732952220889700590793012494555267450652180693285026774028436893565774050054867501659123959488559936643326173491136869738571919261538903250511607641429976538532079580989974987740891607576035160221778000442820648033644136939474606099532961307411338787777790780265724942589276561076714380196550493717808843852563728350812290238558176525695390485441534445679520365679705116922872925159520697295354332299662036478339489807852061721626814331283366724632182918762783971893055602136409757155314206246743663738573843837856498287572461494489405536978532669749280840340872768654246724408246747120938284936490964251868496402816957372738976910605466596404286333961533218385382952683217649104129710991884126557537155587800787017630124008594331349696443829007304528980622117383829975781242320333890653791609312971888247482189287339738965412441218551055036844722637498049129676877340435872274782248075940917341287947966716001367543777037962652388036981078107446412021633802790567515866342611743381497200661708330986450584158009848810837453574621588871829247855193964837082558180829750653144326876465809191770555449656933162827516350163629574603064987819491293931043591667181840516370650646784346565529576820709257507360581412294925308890971697481404330464453353482253825120989658521813522226464739891022554323991388087053421587190647929837664038757452568905231834070796329776557369227352510876381677628421743935335325755135667895049520626394767620563357365652373914459745833832641845326311385656153300409166523197956021392956747301821707197988776079203301778337083879193186485533184903974318031150180760791060075303612795081439497300493853002158328457785840748402840985384164180490777517789994575800170747793754143164271954489438921006429243470950755135621828920436368788539299767126006563415125768973808963836104213720900105189913756349069973480168227493956118211394116434941512642523110803411299028104007362831246669400925951323481768981962394438034763032798034538105413575945625288871366943485801833402824074618309201797783792744060367089664713479862500560427955519556359405067012523812052180118945037692576699307284062030106070232660114680002838379637792713409376707395114219623998766123031215509921151544471149941309062914473760371504215253713439623439398632418973338911443293752658977495936210960616097531852395999865835872722549384468095391564127831251255508485498788047750035232903286115162723587232099429425640161759721279074053223607757345254917187732643043180326135544645199813747862877669802485461762848113996192680463180971023037907018532191673768622413089577586804992442947565987170281335055453147082371878586964877332950809837027964584825603008343891733245602864086422588537860590651232892326177996271605853353118665280416759505600071816672525964085816114273626812318724490303422485758349481493824629298038664990954907930413498022129653484971399679704767159813859684762642581102996640289366577847920539296918704404250652359092638714586045880727648710708708471414235506327300175416790276715846336772702024018457259980265725974857145352685766492165847022157370081684194147722018311378169126442137059260938148414732668881795017859975982527756751990961293544554898681048730342544451067662992587517210768227649075190211302349775302618627268799059227570681646177710491358850269755414880257165196438543608683590397186450358278946747387657794394889488554700253240763172879354817875472763992076776992063224012298443247334233682948923271413306420256581755470217476822096500779112042552826482264767585574221884145043765821007054138403948112894152039322358112361950680284625710243924107993374788075407517473608365749485773850731407062377175501530241627298901471936209338605265593875890373703704186598174984814045159376275690182852679646248811258491125659477112195466116555902814403709483908670494316836114973261044923355330632881157421814546056231404043624921382543743412646833379181620134264322562403835053717397598794955785691759154347019532742342558859254528302127210940630276208729746512634305051263773233297025921646068887641912339229740100649594894179095503671732794935152113682532190740548861057050427948410557007310189302912934248010141239525675302212136432223632203653343825207470696503111813682259169862588049502551542957083348709746838303470139380725599750177843440975823567603618590640679481625909606838642210399546113003596535227503336561487055504951409797424545344797628570314363873076156390261831338301636188724424731912570961210459836222065715454567398962893658795984190598147301103495137256244180192052119979183320213618733271001087406925266607901358199169204763677751311002633694223425471567107068557661398070443320338039091566475537215258285812902814696633091073050240598382811259097612141467466866861641214804495459628492320527277417616523066604395432006477210146424976793001522932886830170281903550200843113413402923669555481698113073714610295066541394707049202959291510218315273615811748548792391630098167479449445122723895664601428234591817744909515037530714862708965695786033420175034843028557475415333158575420508100080569762659126055303840328468691673966339809285530238060607350935577793479274672985841735176629795232503446063945911190999873818931312813623744540483842331654547201312167866009647295161353156411552479773812379176389135292978882081271790165059134439414344980102426045570006057190416328299018569472691127411181526391668066989211413930526617361452758442025123640013105566836625157114787088727521095642025012322699772056090857566493391508948278423071160911708387333862559872016237625773247331399767397160000395002880502804279266410264734401863696563860957172952132063986355659345855382018966256687186886297949589213578617502434240196582816598327197842258038629794574756543356596172789422089166229808253702600126685376995441061597753119658329367863859432262762605800136426386175565428249934062266152437364988837882997323976081497414780847089522692830696736337563052417790471557885319886787536595692035490758360211969561100814934057092609729608553641212940919778565234848968856554245915418984533988624313159876113923922331971641131129202184143612651849614253007669318144412688520667467081074581821032776662158687911874039264298763438807194304829451420275075257238708430623214677720242373700875238417212918008385473805565965159428026286228230818788752632632007002887952762934698414726010942016628902280080778650275311168723127144158177029380409057882248940346659913289442986874094007169615323045248561668544930642587074892696132947946636023910312433269884574580151466407626666700737647004706228127154796552537423385735259521240542265765157954101023225532504785123657242608118114796897140998422177059899320880631860405419443651855666886896816435182306784311051346899342469614073409289219695046040583349836667647983606184630227780814331637224287832733919116733803436558253303760200781414941648840738749716860101209123166089642612944726096745672355322577539206865055240177014649506099060919529092088073612367763798535389511973062605771840765402489604875963433338604458870697237457099780137414114582598427776609336825321283997929319137774770773503946620817118669988628957612177953569427973510016712880771211613373221755236874208921224439705723167279047695005717799520915295895679229347436761362679860138539405515156720822208808020901093163699064777377934930216492850282905357403380098319278096481404374391183525490051779492209992112226818560954197515985208705663486550381404158858325511732868861815959263662172319667910692551347104308628375125480357733102441517832280503083428498958622023028694403315460192065433170167635016086854393305919663687785690073547654625364653934557481938703046608349347292629551273696159564391757192451648937642428347462601477248335878048217399899545000437986343719643921271787860383039995718248381681686933375944593316440778588044732672820768989389972188973587040038810768668511973240081420353454627048734276666137373779961355144414705655466965089953049929264605789576454968798169638436411497323859627214463423332689658006583101524379502349457643367729539706957929164906255429135779352075640415093648303482330647593280636036079955208153821835225685167166472069335222241727579601266062955474878364021086355162698574380096389317958165978527089088090891760021654032018997809686859302500949475677372253731477486751156681514048510639911527147102356028767015755843160943374787991526648301991840856396557976020255933826911343546207329525599075964642233526638242765637389004455658745747517641868475833372436235276557893261992024952878182927638078495046745383350704571383635790560866640897334209681493172894933166090851758274639157755460234068385339388787662689933262567370521558347849491349623892198478252526527112236149714588826145633491229641450588583221020364514209329124578306035201340081452323730598604313383900551708095826141425553848396056867327037825998989248840983291793408727815576200744718813424549418002821211160743040767660277677880774141765834250867786627355969516142247502036110841320161797717346321003425979570578507767401255882547931676649671128507945727016764889452550082678270671636638848812367283991960843816414128286883906537003137830432082006800908422702809968417957047773690787421822195001597942174410658602537934393036860931768011094592335937904511273763049266085971865620842201819372053149710356382277327117610769075841062665247933224015459554123101149704566519880974401660968857595913767028984104173075291358507672078099663532441216069390580238673107973379708647794442045933291538629155184991666382322172346168744413618448966422557890964688019829732286062566129737615397171549057491282304066932917495940698470660125694913986598162789234894854356135025836193282675382860188632139303514258784776485782938037019878044337297616309040706755391333233851633919800183378532797576115864623973700347912793696047714054032739104108642699572495128405605252110103667964741305609046457267766823161154029688832730206272338215304975398089963631866931871916762757687208967534400931796461609860966665036278814918815865310866372674897517003712631493440889157116104578008737837992325154779301219537221481518294328031165742682274154750094577984669334891443468172715079090059031488135860669144225087604951931306309380729586568544531095385461908294296363882017666564392786008614699157842444735182720771048984232570538428978951231202467058870560325394992385234029954920827182327403057230382889153149325520825538603140396274245184952623889173842026082812010958758202691463023817202013685232110964036409693272847996858170550603796852262333439406179034911830161286314678976357287430051131799834801645512179465977293949026479692075769212073300991179741168340849170117754717369572181343130769442222436736456643637227016688127831666340118263149996781269073026137837414043477447180892408047460910516235171873187478653154121080067008446461888081245971273829152072561007402801200111128310458873738270206878933190423957608477399897425762917082273350526586613552995193960068412183983097226777580084643967806127015304435376474133046479695821883426796899654436880805264460368491122667759610047969974241148424584972929747106019861663821028555876411304566373376360814794172606351941240472084703884766460482536214439496385814105248295586694217379262012673317411257156227945980173970356110610745707632908252899146447114605462553275368510425656880264321711438075653612377970532019717395486155523682690885871092411281649435400942223405001247502559117502931013121260687437814839695940736244772022171572002270635707200130742562135193413438116903389175046037984912885887986952463074545936678995188369111859301373730677957480931709888344219461299074214220805179800546771706193025728869572500194374383550521211004632553301672171539903209930237071718729170828399236181903548025664752548139530179985885425009564058677264303359075780759304626160196865781997931554162296925384530079952240812420855986221349359471593597224220328233831273403619441281533795180021417934614186356632117074946671780866073870658914596990537810947614707025179554039877757890820739133350583577156769546188838154618480754079322603001204305220551141096473192498252367084534715357770628289034846302655646297895923550506229132203301589486157664769601903886981915499262290575016486195736936775181571334592598130386765121719814597952310100617882280643425604636108787191929840172179201420402781994816136778228024976438135149584974262103450099435616992150126047244713909867140090937806172431540296333017008833277727220525587013455451998482751676296627099558194600006490890229487804487852410305997942990887638897526192576636134495505670007684912569274257772193199123916185127333481090563860689795962206036593284556220677458653337476958559406189417194258527511205338359202444148170219344164728288212830055024645411820744510314687280422943305536885443734422235600478451841598421888864016927849489159326658634667270922798796346120354120139343057178402431852674023005829347900768824871325111367944633205409594079698951111502561859369134870926394077643014160061948785015305070004287992250959994220306250691838891211839963715196898325307246016573043457931813382281141005017520179091547787065294422120711115880623190999261080798314925339347834688600597680567719481821880355116415032254333701074285272098300116002681339143220895822563413652278325199361943476154694310184082204315224446013132283468485764748350506750701470116489930079035498783731359848952488804184244448294148243971629247200540683843709290481912540033755055170140128979461365990418128004047407491534912567211018858043471319288018681482938663336856484942715023364341831534717498589856246063408591718236891546382077088397668150496728151874936212094320113230674040039857507245066185836357097930687363920592988475966036577939879015826069131896620458769171657767938475020054083970266347150918183806690399430147967109724742975403829637251624138049399429821294476360837465056272007531116063881584395226373803959826484292739008522926997550593632366024859031317263775512897221606757759786576627313615988471457426083789154591582516456217083100967964821105167080654135715523069258482321308191236216394897028536323783143091996595971225077714946252083798902287543108523056972159365474456486318913552798262320734063040052768148318738607635578113277036388919553669346032154974480414567716136649465195647359687132068361753833741935028780397874195290070484402822072552939548125437987790346113186996739264321788581241824318901819420690128373050265409575976129195367569738330701272654059336991167744148004017215738585966267307481151674875268598857426879900328267206869366078176430842649122119856398303770606813920873927785192964575035902566854361518022637698675444633707159278640050932254071000290826655127327307889259310454247782565190542329570453159097977233786764149337182361819698986424255385024831690444210861203080402680599394527237386251511978737362458949424841827992312967702321847584092037265750060621487269884052497455355457587332109629925732625009407016940696535355980547453829629498089315092041881627537903538284000837171489884797655301136186470619457418987444071661557132401123375557017811419109028769203528403611777149816880306303795227376744865810737203374360681208660823099629044085316441575519496112650410207565393442298102550180282689858725949992783507429510980911164967825220068513368064144420296500416104169097620364013939204469186940289827354896258810009039424870457014937972635987428369537698259988835360695636765235315072226099037161073841997777448585693044279012124664235602195454980148598894112788169265614717370905705093290811926614316618242468615859332667726244829461465966200387371257438233987720285748761553671571093938178808957902969043490855203000268229536007549287717942912655578737065131941980889858871362640861382097801417976483923365508755249857610313658080648859747357994182826793566803069964861207971801718816638554143662503433788538149514637810649512489761592261492278643267776923950640232971307663010241288557475291871770863915541642717615926881913406773256944881299321508634834085065294746330448360173711199568109410542755341302409354082917619824020538656273677323412500168655606643089560539641272561236640860346129497496003912799144895723324523294680839009499698348392861064683430573074963173060054071871308789795448309547095804440519539493344276640659237732232750613515654335250179395384136427167131706483424006811680270643495246578202188149818213285196603874618223877126134736276491856247451084141481000328116071457803557660963922210357223570156303890902504255055000517495218042430151445071378727485348344195657350524461996591684294852375858486478803016287892517189509385278563740740504782361995637229080600455164953657131195878759179142523902937149298632506492754050339155486507473600678362530969880218601021475451370465914183538038769461351503156668752449664403315331727740966906976510827039147668301080468162562258638865518123062829681213454489442128471017533521839716591775316015432805055548197829156460133805348661771212536622411382915469803049196236351668632000589118448650100498585024796019069726227064953982471768197089693585670406939770896994530313138348537692375119309908279482347132652585757049999300156834033694482530389631418163150547228087645693172980186859214039139258812560644547194673790222630939588973599676955513525164913016471673018712875104756113915594184147530838020307684604409951557337485980291839783163162331890144278475541363514810343921663496081266419770013102177950521796122036091616129022286744842851428315125994795430038823449800786598714952480763854461889989757605921934141134243634173698128482202608438845606057030198905290660741711506191528507605099252472382536190699049325436567130829227182968651214523965149372549479356093764173412778106085510713834958123990834651303019464025408973196849973705403275831600642801153200435120866135275746103107102428908298278808721977420512434213836235921425783038178527229899764454414549283199351877608034943119321191708748664546314125714297508457354355060482708686778280155580251610878688897559763538743419824330999327856109527638826592138913942319582759346028619865428852077965319935368418779586546552638581215296846812817137828507232432157669528093178350666613541275750909536011753904804695271596407815634283613164846283217444154959359951639082395475322641991664736467691047800767471358956348389977235983885755031153277480725501226797787345229260466353717137349593111804304731758278596729495496758033228908830105231352383208479710563781782911688936868481355450649937955805068804077195371294183950214947284623585359474636785876815137796659167590564059157953548852847848233076222598273040232377554755185121660759445947205207996584622756395674372726201963268823786423603461552970328622215451808233215197186523901715507690356810965047137832289491059237078881335667437550448010695009477374344656117093682964467768724737716191276205347834284139633182142814678371842242908672591928101131337280984723684792084296619663811857155825985782845984954316974641961104906964474400230529327972503179383309374943829900471515485502964716352563582570035983085485381286361611233715037846304855972341639616784835462930542030912331088604392832327887067517393393667405618128348778779586440162863877276956825963874185383098072979120659644434295429615516593723655348028217935523277808905975131747984980425317036794762078310697489095841431292188376789481280849646475610079296572365276127987260256318158750657271686849267552258186346937496573178477002884878388518217077792196236464244032355026161560933947818716211876038238670944253421484091148478671456417084984514671403208931976086219479675445850726922455921617942057388936323091326721684433268280859185432383682161624138721474307821203714988504001391426193627628476229764709754581915288977401465751448391359472291297501638022271376279772197070177588192693665929056893536745805000516611353800139053347207218736134810865665931063906418688470323771597089889486860574804977958277454120299562151786996895325603835269759362128392094363044396789786449710339523633383078059227779053493022467456285728634904359977768654328894808987658657252100671823988039921091282948985913952568062337485206119716417112673725588568604088562224142877178554139176970373935805125382457801408638243699358142939469656957108513521406919202325009631090002559612763608384120469769601450500781553844196632286987054672253158563813292214510641952218391904184829045433673394586866212500397901588869673578784673154595304051819277114831082484621392826220408654213084018496011263971369545615641205741154627936576718234830607359392305076298437109803222570097398717916755861201053559084736522982326145986386834475525657870686131512712672442049094491001109023794220395721687808620287703326339751289329952561959884611506043173020173533744903737159726185647664300614448104543284140354311066612832876728386782182165561518891490665637824667562725992174198407032724609758543430367118404008474869181745498379332890120716135298517033799412849225224144581483979517910919341249377954265999665979281856206182111260815930225449615631095363637702630387983378584585013692838942188368857392623834383111930923466014446403372766709263329251872170034804651821984152361078403659407356356480562168037843886096692047942733814396529581462398720806719428140320109194174601124552676253851602705051911096125657752021625618520841015362930514087750015438914222649281637823295210583897200741672992583971419083867894467766265884169907146629752252029580469436201714604434920789870179194865067245252459323121736293208946365085018229760004344262401843500048914811699613842959806783972679641359470293353985034802800351789178954362786155256419666928996383888041199028063339242109536649790849536472142234233640514950289554344086417513102428529237360707979393145806568715225146200905912598523889802395495897127236899013346467626662217446995228364022170937853645084085589503656627235434507421764567533413329392264311422491742835925519382848972479774567448231400495947627061773492393907051059208350864505664061283882878910821494735327998897549870747598928906224550622284720476803802089503299572377689944983364591411344494751482492070858143410541715373092779404520452862967441887230480279114322023524562128818402990095717760258798082760855790776859691267550876163740244915334757431589586107133040429734539887535233697060531286257284353080888224977997878679522993594355717200362119874108532248914613222276128536391335648292521773756905099349518202307544497065575087720997931052735568684666988820381961302099911594844418933731564380118522453978023779643444726591542130585577287619224807924617869030677289510053510745778850595253494393340947555366024185798258365290792934736960811478757824617560883015537939948217388825385821981220953706145019208196955312048920808007523115691911295917529491502942607760659510333290291846541829787636439636105316122963506992169521624882376030693899546631601207877618577941306876995285523076847759921018852261867154971426982413828553891489827103462832077525311103332307626147014816621133185795196438005431254500105891860528029297563730323318259900768654990910921375814211230308131368370777449631526339040309975585623095277797477371284156821664404054618080059753196404551931592257890365615803298552231334115072702352039867332508817894248060956024866155225897499460371362228527005201850648074794781456567165791567666803686247110335875913023798015110187062176521101579884003120951157500634909148492099540090532699235103831959543364103693388927272529991925176919807504361381876230048817313089496067672194012212020631327102877384593244898711941638327267842118036654323725657651131844178788107881083733587258038872063383981540643408855744797220248304453844414187828622006236221464370662629708741201807567702191715280340410648462120647222530055687650719901903903514871585639612340880421796222341057324042275652262187551622514238119648313482013510077258557001396503328869599464119091465138897858486714420815138274834843623111698350787557895577987967395952204043556937209565465236294554791954470798169173817970914627638667877001522751730381188058771828678329296911573275295493560274243101238144140780352271517080160464545370323930781866140834427433252381666449323119106222506808913752872588802805914236729494737001362062902234386003162264676415279046458088465454109588042422579785358078436594110004886527383172376596902292654592318049811913937945683893046546152290647004076194951907204009359319221252099255099428118750131797437642059693891938989477988261627274141462250408633805891406403249143478176183388176182706905729159699702078626718171726345351414216194322707409853507823232099819266058060681166222554987211991973467597470059362382822301162351673623466737724553023581726081183711919542843833448782941838711736706920310101439492079883002875832409760443646098404129224781853908556519686825947178541346019438398719793962468909642228656879545514537142071116789773118466547420179262462819798777207512758396826284255373879444084404525708934694584668372490643639524538195100446448141149582228467870020786119049635579812181065490583931259393848148842469049890567359945269273942711669707885399429711329458421754666550824099498686437309644860202652653592948296441262106394897473154561045478285683582739066357713641987892542239728683501838801215025899966209759287903778626483020834283204274808364556153563321313530136419939494922564637308294422670735173146699885712169968085420643303316952668888454044457867768450826457756976888599564664020061265285692412896733143619069947416974976891557210554675544316258669363378168829892040624600214941204220496947654014107608903756295120396547536802748310024960222639788000426762135133615600631128224777262162381268687485641498907320334005684107091216102268020782757764731270349933594375363484209782260628355719598589491531934957640867132801213825960218105334465064276855009442179007907185709865224766932927257105971577565154889996829556495780351858521226796697004078952920600839412716689782303156267621048452404961265610458877191551979082083313542215429382316683405822599018093581960415322318066158409583076277507419448532485431202906397078589588567170433582843139352985893711651180718597045490219389652553846184481777300554268005499944095734188205050752183375400562336537077547841426478784768363192891896032061751555106537150908890887260709183780596145837383813355491685018162140925903160205961162351968720525433569016371790660738749089181329760161811547747084223631403176748817691472792117206664221535957093577376153715661382447029694551384968981539210298889523717061057586429197700148361400265061940860706926459533788897436784209089887467972547580687585078215819919802433228838127636189669920356554501569565783792722650703557359696091556858987150324440977136198229853350114978210699988362935344380416196820608343605298250239380632877062394113681076543853617584912332247107364248050293693954631950130162496501918517360038102364061379939353091001764526392368350047902198651322542210788547294416272984456551625243017509351921005725219888192531314250338272012795331303077039847835396978773986543102112762238475727684977318081684797657897495453087062942002704081311269210654218404406961827416138829767106642360334937672565828871067851501035126146347386769614808327850272286935725390877784916228083227834542727869916790077867901749280151288960903186104067899175890792255212574780278982900453263510828892044476768259127056361394682380646567072451960788038800144893030182901907976896441106426642913521334614232105595846745438883355443899061489089244400904986448882265179240570766513458794456856689958848094492404497588269049339865037348028880564606223882501532557412679530862950535571398460532422447010326712723584409231663042673345969665538689086565351940655424858454821871444945979190148333147968353999769385617911169767291000278279072909532914846169647568421558062348111156140111024242014788272300736663449668827678594078539239775580281791180764099425286807244836486847116095747439019926055755410954970945658855111906398965207971747066191078117311902190544007296301846464089066968320536354422455880637295267494593967918112268842375522038730016591319822545814237871275128682277260361519713072882891921159272794147251987266132566704132597291260199818543249468958612576367336951559058089192777102509952793707331111670034445676225430379931119841491726877078382205315527777619101218352937494776157362862077889411395669442162571033300427650655975171370912963983761812319130566035065871873585904922809667377668871124039213928230468620623589120722214302161125590445356348598068443835751978545600019623846648846761862654351726743521769442034390896894901445514433216236417146574579897928235534412454790834755680486757443442713549139498371946009100263215381661813066336385944487222313715391024372193809368149253482290901907490616757396947977570377574930087772583634357242845053256200951248717837127441278705346573154082050195505730513235678668890556343861814613120592317708662951888491832012261031805148695055154661966721802225372146638068533114423208258057883776941507512018480496356083450835024154921710998013311401382825816713656675653447162836138262734442244413560371479047664154645177495064489835950018057555495836869252131898947380147986004952445801341175680286757505773057524542681178043493648349888561353070885011644815208312675189992853884587274920846229591130393422763130615529434603979159243644436010005960793753643305376935391431053292303590269431861138131347896997432133871255322479749482010743198502148021999456896722547284953144427733609633188264842509952378014899451998087036840835252537313146237274081930205828876426933637008566139973253373836107191541718406898618487115122720473295327236416001476415612405462878225329009065396479663151658589677205225797556785562358982986041399423975807248622162024107688918418393795800136788133180963865479680135419991515026911521735658939419375895874415689797312160134713363885673530110682346818901256668381205675983764632649933164228556361763717859539916078100071506960256861138076629889318771735633002565438607363529000901282906375307982319550879240308546020862934220472371354707639757761842964271309049935093316469770879092284798647842057307990745399278230887142630984153949537267636363925443284832638185069633383851704527075513807747329468453299767539553597850952632061543763074833416560754725545583289187368591603438285223497208581605988821582461481098608093212082602540059696400607713159594613877334907455680487994216269942745576746075276676864404790789114930688578320262183921795968585506543664618884735490231547439332149298356678122381996309381920367561403541215961550309800983921145682882230254605483212023333074290889984672262392926516272251896494592845538054850714722291280073461635029223166135806202395459833665457409468726728466098537582922116385314021436291382452016602979824175051530771432795889267369317676741831942378770287600195376472950438746983639867288607684422192062378597912787897209731036947810461393641551965509761261235351221862473364535453414161152671716982323973943451984862644438707612009477246075921249123995543191682568987641900660253182880985029891614518187081642819110032824320850410346965596898893198159473156289632936273019669162448918289735603872431947340974881468922939746530480402560014311053078889978080080453205913212710316788209966400989330899868170687674959271068812376469637366188219876367838915043889089303813153566334264131773987076506521128666536931921258634164131565392645516564056403697031070930469138235169928877984939369242800298494502477489737320231308817056129885631349760880974979450631755191524900654628498529883571179311755981917253706498738958915089457319305689567761062633141607637579867373767506976204574028752407205621486232992557350462598210279408882978261322956921672204653432197035321498549899781164763474709860912908952118456612665562707975717819135361391266300903718814497408717486442822037567686673233594574679769724693773674153079610635917288600921144658034015557702658789054664887872230159733884602092386606739462217868579786400621779865378660334581365680229022980085166923117477556035154530968121350445294076819225877367368681610719691681872393590731649367921885519175933212469501805400474508275961292885021314135282251342392270086532580913734034237354148396646621567016955749552912559155027550829911094455537960580648062597454257646416312179642475440453789542553658814229317430498892129267119204795720794220169355300012132299213953253502621120461797993570980042326257538477670836639737201589346878050233819820310708789508053998165895137488476710202776498640429854173244639127250290065503620854755101366340354529706564911494119398401168780757273868177839615975896484311578942922696318740936562199484304219288092175618044920807411813758586575735543752231249117251227902711151222937050108768618669575243287595096003759595125375784200584594857779697585815696849864553218435763813212706368767516338935575076922313704935218029414320955488141978577693722046489836173197684636887431552210552408890220246280047222950006192991561843266480061959040615563567302035988480869497601750484279433204856373839054962697390083514837542036216371612257479259812041405309575542602876390569892578223184621256218513135255124773987917224015994738383195511106695615635133312961218311786516403581194584563831761725003599632345215570639980297981994445778758297356258629843867623770611616260500481642855054887183791668629313911678842592344602505529557211010821191819464600836912265779754105490104238820014593054447013844732163319490741877032953041048676074790740185574625586091648562404414028423812524367984492560520667937214256592295800406500041623954578256557058109057283363477382540517635632967389145432336776019849003286277673704087508487102432893075144887215896889095532265514251298488426687616713581029225277267671287085618152986674568236770287874012458391123488599382770517261246074572070549264556453534651130803926674788716775602844961450325543740370105543051302809099823637481011339272600211752835359628506750659526731540986355816233444436748859646101244250246885114642526903015398426716843369682946479847621771845411745180579823679136982770390713681476554144447289976219895603893059602026811898372414755491838402259154531940342651890764485966286624736469580369554185791888394518908296131965950833195181767976855475537884128938503624349485076031280329388830457221144573870227571429736356380049941382393820734139494339444634590970721176178195958446835605799310063309350669501570946217389130445483654679737472352608829942623471354004312482187940586781597659420082431793058188025079708547936432864219024718222171197027692436205198972715944837292615563429768292489391217598058445019194657996135267848161034493845910195673851425849182932577695887031141789905257543187438815708104479523469797139809855892191010587617728092425608942143678099135000286193474996881549462098992546116781912221152824435445669164525517050515876394709968240124310157436973504257175535214208971543830547521793364343438890296739179861032781788765843380212636042540949090229633063679499753709213947213733005594042459964312393948751894721282014136104425157975016150192691335618424792288081962902672257171744665130833826806048458489753472235775347007259774604961064039252041694373260518409047602334063693674016356308108582367593728861498761138122820165059644736451039313843838951835129170111757085192085241766375938871599695664859112098734675779711889383755657601767383712422280312220914990961552866652590144969076109646379402259231065551480975958922255646566152517163746803953318167411537510128894629574021832002660541474639429992377416405957711076621045666911889949230908997517431343696914153651797831690083345174642415948879021047486706152839913299416738950892207181335111312101633400702293132892845470099266423685345722271560387511980101973004225577886100210592436677090711304381467340151049665212269709921752705107742832877137660506853408363127321982818547414073219822895169190665057472759105029790169285041804788163184214453325960169856454566801113327225481680826167096324513882833695683964766815716859188890373735147069448026527273416427910777642065879125053032723421593575653613366479381110502901250458282345645082678004849386106325466195673567242489838133679866787709716544524311674780935256823125620498894015986414133393553858104259655370651501446600711572369980326488212111376342561567651085155963938671563924550306341393033196986047721164390296905400644536441327017364737883842972336166889532048177852454198668405110447357875642061649627511902976030017148680435048527876237895299221198252769749649594283609840569846157640204676330645107487189047248707738778115257701572223214609160662860258168704910070179896681806151337508529492164233748224148995098991027588452502738422605746706862154266577758369340255146348885316005024417773499514742655118363957812770964773900929009563184430956191951296278139918395015673486129386287368414383607370073245488336242120265852539949174157644893307175775205781479535341194521824851564586944919931595168571224872872446181244618752362694796424012938987069545544154935484574594628701360835301927616612981034625651350908176638710119486080945308812158480741461821634195060773205335071734884273715222043705022811394456067754823790791646593654643550014521304304473734145147235259300726574475094906819716013392455742214616405145542764120761596693061404413068482416907884235706428832510366954538136851199486174515204758117442298334630083360299012840165960202841096436056388562555380593687358355173216759281863295719946083032978916205716484227065855988882285244067065435738188387771647323158424728074224363544806726830035079826841888141652994735535461816664709957404998769293132678159037690835100275799823896841171061637556621563757017836098063121375557342022267202051878983464125976709710403087081461136757531043373448237720220219397413776706205683559849451138050955716131968343442900656287340067494445636601394585248316262965274020031356233899968137279359992490027832473194714103759815535171894283579930111889561166640600824102880577364260728326977394618876087637483397199579785136222763970571219737630252004055295486377053414713843137002886956578123834738168209794081920615388589738488774204048005959802648355912985347504970846978110468502956884198963739558186025239801646013813141798758800651124885069056298669803262141012394238516615241092741141972495649516044640540396966059525750392664642194468460114406396926041187724459399073915225516611011468413343824525432006767637749798487343605069917983860665442369402832222504713308540918469098692715360915110293905925847098102930898465986758901419181715616420052963895821050857266953821728637739509213447292878100429965491603021021887842108595473248137984216192089500052832755363889460644282158974996843865361840955490776141394842007261450329285954036843687500764281027605572610163119909655399410096596613291290087878402383341897769783331841070605214653654704951840195404616652309502090920572947101423512415609089411949119458874277252808474753030429099652277335617099583413724558101586167005519012587483120807475273135614422364360209361058088173456146767576642471416536613166479249969257762628514036667887196975392717148055166626335019681864709476460338660485836837575198328212357829692615634889476634127677309252336082361900346063212637968522571270865460752660138539433759595456634243536988918038627440549830088225561140665010623576027691078955810011620777597476597672766569245178205611141542008841386964864796890336370563960963738142385589338031409414752296840427822506676350600474785704811885194708495402203155152531317263117799008445580036755883051713377826155922358052387522872280040248756717501622872313584752488787034174702304344462327798411766991721176763966675268279411655604448162272654486059470308285222028181072071293349965540112167662879990506147811264904683121496969692521353501026176683007399925334038621875923294875226705879198495369079254594906515764661697349943776101335340212056466529912503841592517512722964375481939063745122227373453687392136345756521970780021680828094679926746595159190013988508425287819258093096064926611078241453265103280890156382766753364791324726535786086802928330054997118311048927326626036994655550906174209680638875720648495887375636742787865050248547662392583243693405623447996133838408134313871248814841393182407389683417067264731938467868204279320810875941206310365175196135282884747954602802347477895945390381136096109445824395485232225945281166004335628344040444948698924970540025793344835588605854886209557852673171984637478200751524708157180023748496804225133397018655790868545083479910454168155034756251372456907077312922379270930071813937478962676545864407719227775618313948168649983791904767930185769028263768271178172679561171877852659838704651348527553315996610248694389983053887923293243115640443835754430315011169669585059997671342220547645099384096862144456398840456035691522460120499358381521203862322766632159956341714087302780330822881357007183351280011238740922203460215631655134163735493175459790950572784988573363220613469846224067360627138443168851821540410577800474014563415044072213493240096234556554539954839851822940328854757141585199025812070791045912259306974180462831586749420011908762040277507942625597108327883700982083458129919486047568214523549924994269718815523911576677499371025204377541537985433862950532315755160769808956646741420896350227122235676354121460766145614034562554228486368911267108503489834636394301588424054166504227017399517446007048254831533457353606579307463963764170834469315058265592829789420650869036531647759430398867957758857655670797023093360989985326741300482102256589314637799646641720777179968246313329148923414573236905683450087981288684862847922986083418580385267568597859426907716579096484254039135661125275438637814194742971134190819428795793098866064592256941342068208032740559475630635417045200647276377375719869804639926663010608059419168110641546916010700848177739956352594644273446833008720995485410529142758802841867573192190541958408282293834545868076155770458885044775481505873428216009759063621931594170092129480281108738683156458302021472439103180773891055278874310081381519042477808071653002440352061565034041055243561091606071337047927595119424880372639681797095698177483098971982396617686027384732916395015775381415824096246278984014738668632818097568379390117250817634953118652205003466455059466997023245677021551415858704580036557218839734534869026473022405771119803244321335140321245923639275860107409078573754511645107137001821351584314932824011424294121552783847234352571674158617751601411298135131836677499028398799566191027243219398162236587636700154337114427310044446450449962951664998790024568363857249564570778514196632132975419804161664485659391491426853922868498888350802335705863091855383175535007869142688166113273307523818424703962084995948116067993169042414003036008533122674410720455734747951573682619103175178834143934977596981595583532496097350684863413550338788922321038903112662454959989265978800697033744304249707532049426632126244909855861110229794401835122217891351522363015911011656686618015446522079775369532741695653897718465313733796630206895325932255894375954744060074697207618767438452420000473047569316939298590283348883265428519953557956972297817046523313691858889323942969277846308097083521719367043021693784599378106968574936529724779457619832025761889782609590364154455040683710160948352817224383077631732809677825247048893706652957858146773097629715149259054430557542561201439485812069866141547414795980086168798644611535265999779030119030813865440997295703517079210007790470578091318445859222958719929457790928602365851840351196464089715080647460139470396052386904761931823245233576425226681685440047970796562286822288284430603938729596639954319374517626680082533231924990472653015066538419674033988040990566806453272786299084859497929211861334495877099456309716797160934332670214640695459500932300750727084950324024508203005392492445830913530766829180347296661100729101400458525562860151074152042142430910698896414232824237889267252660704242470829172477659624069924671967705392028562976243440547648941543410559206679531852685103218240996890434568427139998873976053301559889472487830209190554995022240156947099698818472107684011431090536941804090238825053353278450896602474089743885002549368620107283878579018370760856502899720040866849156199018358153782737977462191924323676422252127921904154039115427468494785806273330229135560661109590687762313977694610498523797982377085976279337337667336994548968153131249367101691292257701166386302725253620577749847411430500824866005732817422887885632346129438978289714546187771302894208610444743818965001762528456600418931155713569368946998256204846011481041024149657542070279052176361204842673814886543935505862366860720919430735648329017565049592880974061806039892888959993961437699146662300741609062445682955621628396650586666470664432836095123563179281873854776436165733590940674166700650161078551504983619819359224498965563777779168153258713455837547235355166985743159369200223776568905168094589792259313224621890673851426659535648228068946221983349343183677504076263434098577635745781859570818770302275500013897730465952433838026385990400029225542706583864046262513753793910163743435534543572975749712417335545153347184708371169554851475851805843196083610264289548074142223511675752207768650338339718330787170557383516275018231296570279171888468759418276238471819321071547779903736245426099471933366346724751201687893166114474668769511468909366456546294280473241125372239733791031554600011307292192430323075086910014568878750072096610418589168940742548223935860697226085913981769493413956618928574114129238893620489781768961156524592897385599628397017051658119114558159641850333643454154193146364894414295236251798291731326689908671299072402178345386748235334405064224084861858576215183061610722926500346570495695979608249831095991205827614166418780589277173182577494131753697764279939334742323002954266920398936381534941773348550936011321654187307162409563632952427437016550103601212450650607979158292754966325542036097140885305672986808871215686073097720987755115701749211196267942824789682617951647182947572316101152988365864021612387030387619423804868508079607291503060436460652469153881559417527816700078194224483719596410551610445972790741191313734696038365196320282273263109303918411790362464647692773677583938814110793532786201198740518286988212839303004082303883173942664459710727961297982768063106104393438761356970658642161170358269940989407409007866546925599535075132375721030916969975079202656824468873734471305476001079318280190310737039177631716349258632596486490775290751757154924979534205240889440650250588613953796688765419544302850461947031236726032045495634092273400140209998812978055106253655781163375052870023540817566594961751621407996445390125797118420818276367802776060408103533136114408044692439000293386341784824827556256601651493605473670846170164893586765218465625341941544350948403383108852743406236852828883295232430865159280000848901770196007226032373243934026170617791774862423078972760352461896307578369801942214522838788551561595993224409533768244259065061311864724571397246876472303251507188102683198776137187695941014016938678248068321073186672126429427113567528628446256989032990644948037801541891657826852434123738703538754422491077253280452759314550156642042165449943485066837553322310442282750592741157126566800304765766847230750052874785366155897782123074785271267951866179775072820475722386892546304099064882915534755015476082504488680771207146506959659111941733287495161092303367618622104154433672346203397249853298875804205086439616305740404314403279879965699144444256496639022326537984623670211664306457077365682162836784762969891764177892841124381264957886218748799325863792624001105337914947753318214914020894047004525768979614273723555776002381560186402779149793961202963316713465477788724865465523222980874820938375239499401687810356784614838940741447784268776590990770359195856182384638687797253476393162193725892893987510679976548950164145586252042017843696766396044396767027147768499609430438642358068640864605676158551493585430652612867308108498030304122640508399562442565040703223605203326720929599442790599126870763562042251902901552113127169200917343707432655743162536703723827572354042286822120642503493336326036577543879982912677751428388023706594294178915450884453309676036525583617115988169220229191473716847980242789415730674639355883748285102113167382803194858947327281033349733639638302608138445972364636110125945858041158032576101032121978099807551006105805113816975431899630904417407809504902186843599929499773912289258607846649631324864444290166785738874768208507306048609524713187916650384238324736074507869095406265130670751101446564124013314650784883562640472858679179164408948573734570949539949042785667680201860650349223545237939018068084600015830913394673274263711775064971825099001334403511465035557857565550642870423089552995616827772424980909112959969376637521567245637976208253189073847108465934053232252218418559055881062723965435260129637173985772878186322840479310227070421314578297010858225297859722077783111119488923635458395008644545132250622912654875235282948521596694331984799939691327885656793437619390523296276527389189699714606063531909136900254356745641399191854692085786781009500353096457957453040610248158703569322012844401271411114546450518939219837926055448577685194841187848294195362777768100819445093895368464480406172235322112685599957484536612180400063728776685856902235060262638373182817446165407877134361626228877421217576836583966703925555189374324600042867522191003016780951818637677491595173252925457226350670689852844766148295476498406324196325379595801820520857837696750273850645253799278427814945265963721796499453430661556444010642508930464957522215312685968357212885263977876889955537118413698718497545491980467898325646118477275874658708096600202575722330726243664299535320782089786699893456982345698890008632516616881251216850819829496834448471389305334339740328033943890560615093989456530546412048968918050668723001408101106524220215377528629899370408219267547426294075292739626090725494816564354798218326823187661436875988900992799186851064590006660804197529763133071443940388311885890053330355656995394647256582102460741071096387641989360207118046623961264103560367482611717838337958362687171269985701258552117687529879591263209217397968542544113862122178598526429871201970133732775656533224024626497923799553931297532626654243262765181671358556467079833401961211814309269449089282455095573649304437322830822499732159766509324901743008774692860800434838937265823388799409611614448224555969666343032949865016252476832445522907918821618346532975995768523868045410336433408727036283599682846832989904987376449693034905683315934224344733527393115896928702914700891765165107825093961385412963375016397105940929126617826415149747758811861298487365535684963667540627233622308966152610027563416881774868584079787730441115796176260711805858164435411399149855788592458602963282676481379384307252355773952366806814836314735822619436667433349626460630240049294071398138979409036079355371153276116561688695764872914380920729534041337622624764775156390768707706850250783710316164027140500808277148067107354368377877489655355875581817264231142921426982416089375156630056967784024561488629726852712443173717198690244773130662092128461016482310408769069236983309864797643757870099219848361078828646602660879760190406533084185170537496180565635006333192450726453528072963965635434740049311308162568922794761539123965271209550445249922410986857434579543788708773636840455087665333494591103620387666351103188866927584238476619101068732420598730887244101313012114506406014241297277835397489414182687978642997250854575583498515323282228593215133076660194949028395955784681426220546397445156986724973870596351019321689421641861898343505521495324726216416166251757416419262287308737739388800970938470265547670954818167537926561035662713563769137707273738390362756240277125129986702007542571964579447058617701832184433134429021277351532087059810031353861764926862768623759513357244003979780744779710769224680182424637049487530628774466757136773238036900095170535069854038325071089226064704520113318223621890461177395745088291347014047439775681540322757437531606858668997377025737780642560232597712049227459536889654546763311990474402753888151762298015181387827358224851548049105952536870089455657521963929540432135193877901912445664221238973204830827052482430628271047391354771059246375032660728290994924306306350354736142897019279921808855769506555256691751960762426769089039113483344621685051607830551207230473283433713273914007362603919915625408535396302943743620906642390047805085735203304499358634463000357235440777696472316796706097870800326768981424096261763039559290827333924564031857926434757261706953461519049387311077948461573660585073296723466731256344980003636473681567801147171938495712342680472778291780209193789785928050447302854384313181212530043894491137790361980929996838255019123226737997940358285950354797672432183118834104965592749517765920920238138147353710330015249788217304395577195988811389010408352568865617997635982931812303149770598519315375274836044381842429661390037019916094304209503574124930869182596440322760544341503465631779385164828835093784151839422137852146144762471723378142141427568339222610361275347228355448478554610675592658857920216099396930306459986288434406878694242299009351428812114543998961357467842528480585636147084395701650258245950765858608841571794575461301550273937870488817109361864755840659693296150502117537133535999091625251602046564939378824915209412610999947960058229989037953415385769679187381033070874005940987248881309089000061054751892773457212389952912437876438388643633134365653097270993289016456645920554886456627927782086997468737931521269226573640323736643246894035678751089414760109161322118262014014396255772296921702471674454848684196570576439570447140829122203837155014987253061918302273290583100283933315015718818032980603696581574559170924495174628536871898291820214748631049807949159134565291986422595657275581657745533308005683260813963603502552574311804040387270423983431057563222646020938177931018784719615084136425438301853923568676614152501000594126950884723652131775278249592268412599246071179406144020238533114196723231200147550005744058217348982788678054448233289269822657807522086928802478799604482521793598036346105299757382524182890746197117518175616683788820870739580782609731918818414870373288350503446978049759984346234125908190900226161177219768218512878272959185562799288460521149016078998795761459656206334778961212989698601964294744051291681059044937619816810994014433041299564137344250301362383476271752663750599309669446137846223996934671048863703373599322506762166867692923053765489517337281842828123621422165734302860653066420038254217633591397919615172172363318612466528081142479657466433370090624120214181819078662429714983656872308734860542845448275121460494959608792248919238132499918932727288193797587024231332977556654391856548331938398053352274114670559496247060512009779082237529102257851951305846902561388012631267283564777148673033869645708814905748178261618968281499796435411088501422636511465501216457655168620040933800751711910396252397699909783016181256861510319760038695949106566293862069450466991303672777753301183431113529508586603247852721583137199466467179080165324842865178273738217580422070953058431273260124233308884511143479452485876610076220061818499093375626300020594725970325751069400420803221144978269502072098048124362976607982291054709961411508097347284216115684782431988682901589819183638557147062769362750288535421384180537457078315349276231649243469906994310015590334529882467370869468653271954273352343122748031969131956258060091360928886888480586881332393874756104638735954288247714104842479249652509730896858874970237523876353514273251448768657210339228011071244530837570778852202086989595285924952243639194930745867475553153559068873354808812012793995927911463294355765012843151370806093773483120965787918531905029015843933165720656864359420539069995253459806681586870405152367488868234465330525459132058361507509944182591508209952157575401757007278240787822237105498192221906807624325893774486512124782604980799835341082093763500073234099984863959164885930925622541980827537350324566307271873347742114524154165568594603922248538487130710444952279872708790005481605435605945964087437270237965340108125154365029757559238293958292109500525177525324450797895316717633419370156693225531185453545586971147757233220361417067172700937198952502946259804617275513640220799054700679046247526174533827320518930536496291663142175056594612600396462501674867489116184418900330617238939844292742591910206366998400208705378938279356433095576693319468367040200242231365110505488794150091394186293383756067132839024407101230205474404025839857596341485116428386641583950244324500921507186995298009806201166115673865158938825261297173279829572503493277063010610404169111855176175160199311004017119175716887931545000243254807632666919770013236856664791017653366862115957431753275594051969605571962877308217859673782953324327658146336515084821584404399235305261344714769944460179006486749145617506384551199288761327046231000084982896486161706030513384699488484249766395555464605215443445336567606423551934382056265227043681516739707975779049775425881472995871266318729438283649271296323712928714596760420563094407972788986872369040068591632182899875790891113782191194291783329898354866575793345940873567131668828327220294932819014214647010925249814093603547449118349791896527189963358030549252651405659554585974904824932233198952927855854032939409802478021963598343761233306841508407837482731052386644383710822781435369740722751790018187360632859299267557837195660484245670912655121572323367739014038222352017412136668327113769730925323849736227688255604704894444233888793235037632206879318835876518829639044953594392609824937797578688467331567343798274448874461492676562592739664620006015997436160306580192394910961335996796276790550548103414812885936893257051250008916285363199264780732296132482233777099679899650988858569782743697046692266083701190131977299995732965425217031045317808530431345503937673007686011311782035936904485865957153907079319142518570738883111173012640643429538385217304028128276551697758781567219285458113849350166723644310610008092306835042803140117805144295694187210730023003626822687778965187212319536282333047849189163056377305440169295266559103057106063415015300799081445376777117101717452697062174657908496426377776424372828782272632335022679356010804850050524629646153525847551260707772089543274716369221549749242638111633521563177498179081170955554472815264853951389552806334965947749466980060330435267455640588920190528404100395082925447642713997686781124759210817648097591766740792680188840505342822356971770668687530589315678859478973548647716348986875063775585942792077065744004450799342615360435990181013585688831010914547146957402031833079715048346570774920014807346068697593575458900070933083472662124598588962877071973671445904068980275629222904567905159416083267312500162966060627537437406666133524786143375632398050690176497184906604465217075294607792473387880472473843851135297875015443366889565741241615404158357961566051456097571413684724695002638720017523243604969131379291921761130806262796059815852514625689389971602415501098442030660209471662913143507780333165217316394345996900569017021318375715933708764275869531629495254299678241679118660762439120456297822171398243750323449299568596354401626779195484855724557300143429004234660932039117142871372429529986036756919810700273828525644210032130275680898565520231466162892250414675657184844013589532663846350930543972984597614608147296296702352717967851779564364352810649282857066714395879006332817292238038993834485381286403348223786658764538554651440873273348262209073879876537396417706115331628253307915769652645174770709389190128735613436357037989513304688086633339148954907797263906045533977961809741747654359108865970510840468506528496567630593548489887013550136144157316372574179969170796183248474467564065841092546532625385242159418834352528431816148826971224546810913755167612196748101196921005390228645313148360623287001287554054343926716521040425869259007089066910392429130220520481307066548100504803103538294598918657730062169019627429785898916501603487212632829494594785539067850204166156048484613887316984113500150644177103969278961103857313522102329604520349347071851811165358395666412947726177767408996992505539828234941390873201164996471082268800711174857068785455765859846223721283022409053960555402758464317897025981691203367040893506679183018250181473697392310863879432502738215766613401874419330133545363229142559998420488751187556339728015296192446025749377314687048964455376927182774098739764102376736803924539130637998770213387413303413019768985008379626474998631981189313158779758509865072587931769757708571239216477232944477859056483587036281375442363879125949290797356635823031913511133977957829532356889260370897029556020587527608575826513500430497967714090594785804040288867319824552552378273990186879652176347227407677100883127711113088281964302530582555937279098684957077113501236615659598327035608264275070705233648086790942923819051187258948250101988630792505201252051691641172092188269366130277141195384902704477931707544266573699125607604535735829390217552270896071672536799922987709874592888525350617453169803142324634386840831432123443436895887494027066926764376860847706691035506015376480357973777674918886922534647292543273598710375179109513902551293813060621311972036185191542078516793947901477908242497022011026816509956032927591814992670582366751365236808745632846592377616043080161596393835813269055121096978713559207544168609430982181811667687811240447733738397009127237037615219144735485955473452558899641253357555571709585049760521847828904122573051475662561533656685413426973802877764380486504684206633105469876389022244025161700037635997968160645934545107103699021150120680552070121971018190882314967563374133858333079084933964765324416672515835002954654567148011647687795364353694171133480717620027516610243126273480137015389256909700186760447018391758672247972557255294610497565963753705854640787150862855933817419773376529424899950115179209085100866672803859779919592419588432940811718342919255473260427790944592485124852658167379645083490350280758224830405925174280440411006057685051608085628924991795952464155142636548250320164398462058838724587896892578391702247475510302104027818909399532559053585208316496411676721791763648641360908197341062005359105248002822555861863499921159839085153117957926504904405086931700087244316922359474861327156792711657132431965388055729635234784360787493231140277646529655691955772747548906470853888229844590226947450391651505737819359716956354320177719242549569664213695777586887393728412446438525072694069734274242109244738067683001783225406694571527124912218171520779792096049204544828704779526063278414092639526114081570051384280954212897085524215978112708885196047370338329970147812729742125959834521423397726193427073472030151677439853532512859911840954667326363927751976749772950670599114770250338012457414715365089143616913529359500716269012655524319444100313480233565936583191405284887361299607919584775517342152623487439978414212131177975332623554287527296060669594120253891020138155192422734583944311299181196373846094803732511091115822699874648803464542851536522504248717704235770359969814895363722314533916766907005005478680405559340024458029188405621499255418370026023169660244461923878646859197461786324612848674253262899240418314863467809313036772529806184662851133954218945759476840086978867869589204982438871552963161174286771047262921175397156307135830934056049291155015859106236468656583237768776847707118200672783847874296357394338326596212711150590965257684126747764409218765271443225109577905983021543370001235527779322743664146972267660664806886607110169543017531630267330128957650609019085819343843594081869334538862105013648314377073310830521992973331270290217043313032892442738626287444554471336200664951768092791593296566855514696237598032042562995289612913999324846412136862951076631371144924429642844249899053043585337140422625085058903476806646578993140968007113168251794596554365769725180448887015750155794589918317458405937042413538481897806599266415121801877648648796133475896537452617097754396795731727176980692427809178982231521706027870936602735417482410701832965052796494062343954664799780312423076389024810552289523545720593564112702037435670114058677071060799102947365955862338159719000200813976260813856614581781832880788442268525806493733721908133222875972623928293662319245073917105968423370586749459206459811433649004118604650209708448410009602704707109559240981341860320478837970125750205593187272743598591832517817195675088435311470204077845835896079997505311810823946822767766115137208448409861982302509443637719722028296204679578818229887877334025029813424717123226452303291254255784677457181715824622345622866467727558801218491874981390835842250267066081177738490418880829419319412977269118842331414454861526315741134474933206178863488454282923577824535407446408496986982022529112509192204916418128169815071161001045533115697820777551406385275110012251543738443271980762148216975912966192089553495874846155083409782948875672456093421927073014917715128723932195811295579103115628413738328911957898525500690187964537385080383683488264310788412813284521921605256371677193450189259980271263478324268234128949280171091630474637994163023666492526864795212948851359591576885375543055569681451732849099844115464815416983119950330484446317119154293448482136469383454882261630762033607346355896322152113167906940185240531979887452438349253730322345974590838239357356988460156601590547324335418597424640058519255457390125099826694861263504423556016525776750312995161141953852953028634534191529603726525861171727062433681854999693661884517841375824994338420653874310763309649261577324111062970626695533649664602085531021609384750767339859290568143534357071605197766497477713335747903370232056221467430888292480360861403798217412747528509367557060007141363082768146853186737543747131517653784745835019583018606862617199199942274652451521082108701131984518257456661715099362390468900802207900546093501406391319222794185544463503422132294789537346012504745949100739004537533418741581293950965852141287743919931128594581692912606769464918213013231118805488686162118308899748569480461717328851890679800929070920883857499343546392659626607270576844464499359077975862497799089937720001203567138575342721699373324143198584744864045921257459924879217179044857559539811273663981280893139013342037132249129783143101702867267199436519262362900723342049483121152261132004285705944598619394922251377508362703025686854835907275618337650695528553973802794091643253690591442419248450248227934257262926711528540078760116974678600076277877741442491022326361288497803520077837109075124936693784802624040478192743087038327799065174714453411890683960860905646580188461882944858812463391407571941587449257680888078048978060030410737286576875243965067152043038256489520010893877651908716499744333142897769772046623235424759220311588614352813457864304920328874414362024681386713573542007809874858308092003702685034270733316794325440911757074856438065746769938559433280126126966880323131493204003873442914422074567808722042353687445572166116817668306292781895167932089300805291586721126528057778660430659847939437026696281973252273165409112836925698655939578264441783299744362887010943444579048840931872819243147596804038301116113721863045824778961913166995877815134912291344106478861083628874502992864430443639594937662823015947206463911505313250598811939095858772923314610588010258970855463856341808700533418874766646548002994011485995571842117676358102605847177355339570689332524972486060793984846509686366254765639657049905109418985999604032691888458669336001408546630599673701459386132588499012103822045862925024811908971758216362059634880819253021248853749992988868797057846594726529085894826714423430714702186371770152457113578732680487893374012473847301337780871712138219592815339658280564730903196625883693598339908464889724484692554976774989267003684332594767782216337543052100833145358714437193719069140306252139313642005544764765001704289152493638845924562720338962082753183313072531778920890027960809081682814984207808505426268226944224637749459470804167167760448230210198299025093913626038441308572851066642014248103359154870803051218600313634642208306387399512138508750250438878036612539462295091892935681924022994891242936759834707431903971170839918211996009565386948327876109420197264742490096246259894069908371950959281615834811390142670877314796264867984752106326015673290257695176048402305850943248742514542705070413011440291129978492478705116577871174285777694056184403492156296261229293468998394002580582931774431769089341564754204477238663160280215924189580644119725107019164853929536061971308009235059031250616831283830971271445020197092261594689643049496970905188272624187086277360059415976875858540532408652649132007440645150127858795543794847477718513807977844722472130267185418291978042504706979016873561019701582144695948985519143415317067020862436271992142038405396395835638412493768595591137190494511251465928238615581846056833221115620903819181141277876031186038970923873941868311511653406200884408546255723859034592464172432102405285713250999603995503422724871789929999675899405610447273615569437380106395494588089357312742830645483262188231591434198157406599610413169415803392319278552998626854420901842963542563269839461337989277375002270037640594706568748039709291369741598081012616072998521899225381269340000462659828654045199973527030272182171344324469244813192894130677606722284285957171069291132323918409264875540224967267516765008475939040487320193258674163836765202295862448305894934988611098979880125819626655347700731900547068670095659301665540091272292332873961481121396935769298952010252586118846301263116063135259434260571442495267854824163120697648371288999107015797895971141785749712093711784634114010940134574750506132855305578473353725008015892542526483392399894592207392962053791294035577762713535999943227916757641638612956993653391187803551641259912916547992983924525628422317530721246885522909596168602267356170225184470644448359496953660049388626431365031758011961113883165911265883684487310625639987384268834743452732861192155650308096180158984074757122863350401911942327048486582202813372095361637155630940602267052614252653655822751967847588368338944192004726327242979727793065015675489068979175832254534837502555805902789076602160117866707587061314663825070467197134937499996927757086555889577746623154160240094079749968564379820114408973299992148818101016226243318406655588828926964862274695888744635158588182600852327210512201281004699705477667222355126110629739573604368045530360579732057758226555424579827368346404242839518373117978525386807588302865302758129297157274791775413936259269109273411237643164208779587276753693656266563403833271729120328211891299691807463588398649203352678756712393606863911028908187919732321210851460295576871168018379629289992785247045118491915833626115798357114660834852924267690744783723021424676263664832029125922825071964449033271112739518979272266442728391022008208586920050930327786708372400134963288494646360825675911730707939019483091678855592376880882455337622652772161670310369166131596185187146191045858577606171617982771052269205091042056156188829409369474322746626973376086719291364650082798130985215738594785741318753561078854322804401246767053726311994751445532049816248844552778511200213475031441626764363101664831025072345637662453294485640089206561843404274734426432152912429245377543970793295323924991732169381724155802998127881465610585677844594566630563999861818276580378638184516218109098122508036561714924670438230122495713029129811187518282001661748690547081204419749670878117151518329394276453845009518913991551088765137182775774800122642803390382641429325911420615525728339807614343644568155231472187837221166651950952464366763717126114813864047828937554720165780413266938957791349098001605291055554722182478817906305602922777721818075235305643614029073178234232976856102675132154801876272148105039608342606632813125993150261703390992815903244708053944046316416462329756872159884930836078968502576901535652119129900025704845727090179456802041553696115871518305921961465105348175208857751217872952903180440915313565115416858357491197928393497057181769730978631054179935251788329315823364307157210589652378936628794954404879459300055074382269526660480154695571968480991396912175878197096587668031311496738317003814424795200480355094958948149249712231104098699000539562010064504421858135689064117048756102495531276087124760712819861235967869499595513354076666510217688310336036314841723235401342624958842592774396319144062588362869931383940874731504455216770818441795911965854928435753529109325261669027012424914707362221630010446437967470180875820617142412918165847552174550426980298840611793595583945676355255973052588837446226101187573940630174921546522083170298110361999772963843892679479619682318738318618286953987724409821350173217070812035008905221943253988610822350239787439723672743058997736073633645369941941127852063881303075674422754473118492679093051335300605266377960347379099486858846274068563567799142692060687390369995260537524967464368136208180363424134891510141314748068031711087131313362155249017660785673150560854093599720617441348802127191299722470650030439872391060300568059956832084635553828721435262858063119215733504699660245631727983631862603122277488043802571442482867016837860266969462548796841785942356630990011672530688908364882696221616764998958856680736596138477405569395528437768295477876902163654645448028759114600347276297178473323531714279650767708419720696634236248931447850894041108067480116602676364623458402142344678390574415754515451942954271464324706838032675295880565193576716606808285986988027106323080560633534071125619951504628152932753957158175605687023218140743304227888703196290149889251560543014708381540621999628008894941003149165015422173100539237619831657573883328061083888293954862335139174773799489414313293214492656560644268545054077245252200850828890958853891712035106546114818586866258347897525211889608090473787776809139442475150873859095558980644036497114634668222350487344698989771055634076831724085801597544760517591412248937958043247998500331400751590408656557065473100885472778736750955120774273183480516491880943172178441372761657337697783571046644352263455957932842454074635914621403547641470769251296518642079861579929609239669777735177001651039826358016644651306093576535945663946191676998704424252919568490517011852728953276658996547504937666562129473116495073807791030149075148323054997920513419416908853639772974372787017692969297081753370505188773383661692379305432500070863236703530421606032527570411716588005671014408540549532184222503190291936169739833305095949573764236204047157903194887565994777761697267688903260729349604679744845576505156043040931196732605175311619166371620976020957032354552720377455665045134510150955494546338429786036154201938354255077611068203132764688466704076242676225425952916293184252085547090400325111497775416009197980524206905215715258073651681807697234628810255536820295609679292760243564602403979187883035104788698882978954163692719175259677633906989536267685592109737162293718539024439466419000330402336384627470982043890553201867703640185649173213021259150177730912197879112266666391433568772118211525583341561548668218856036770882901524638545106739256173408765412816638819177949270482319053893032954936168050638082438275147106167308153306117142035947828319672736005722162276446176352351281066956548057292670673671438625893681319273221876389856130903837372266095660119818065283869963803640760895267483570324942845261368238539118872897403526906081776926452180205837993125724214759610784939100607612031671922707169220203497223952991370515446744734177281909541121480575419671471691692156012050164362117753736865287360337947185200645146334345243006204743575987420085569776673916057780576696721445445655090890408836688886317533178500190107056602497243883143223922086054548711105802333014822655981574330120811979401969666856043360252489468732901532346368138869309431253403077721496495358443267361420724568906144407010136356117184087120772217860215428888577992494624811490439399244210074724154354714075799643043017531750005119411999606049216154665177688458387950932469559421634077076369581830888898570646700229281458265339165225979797591173659315849240995537991106503704010923869094552340474934993836767634702862668903677515321318536006805184137989374234555681243156174227130154591714856232564509561980517819530394161195162360736197257523734638316673560829936406554227301360086099275421145595340714559566879856783965797728252419062796322308869918537312638839286973070672793699523241490915840680645409798421118148313484544527868346816978785978334600570137903921943235947786962722961911067681946171189297484207667872159045575798217741727632385685104444828808169444400449016541872071355908940952557079023111281488437837212876662651316249792361312884697842479027907735388408247362735223551696457443742891758099966046816905062779593284589726776823545209557755184377092831286718389109552961394708426710840816720063449703557829867181332799414055861106288262197172037094908200745410141177226639493843672025011832326169477054968194060692288478069941917756530511152286676451283138777889522699402621808111215919471842783994972945437185046652679790057872308028050885292002113212006967835583862591663435428046277411415009382172832910909595032727775833273802269496473350338573755962682327001348892706588609504122588736871607687662079517725375247732425637612951351135003868685318764641255195885959630864769569724067120873092868352896102032258301984570646033135615186315656661908628161397944162894277527434044936232463590510373900119255520327377107332487251660532522525856036823754600641471037883759755147862412549300608882044428474629555165839987945991685848511084251460764087875162949917032193832513806130576556438737223075270056102410208485055578967881591621914325046776548275346231583395102414523517789172895465452671057555456081448893567682321053833897651739610453289354306204788058723915890464371264319610449641800826499381579980345535665209328604936358271636105470352552122745621005208582715632917176802186667057426599511230103799888796204284084465905900197392955892000084255282587585345553645601582469482500094875681012008524841201264989892246314123422912089614635799953604907850856775818408335111241375601074222649617332729817215340908429059553818693882650015687387549578985427775322419971686546816132277765719460634894923614636294336471463532734154621495818540368404710861028260626895988468808596894303446951610720822358293489425124512751435005682189315805528683244490957062654205577743147861616533312392086923167630807140524512357754809592414474566520052549407445189069885798700236746813294482417075171307117311489652009633996990088789353388126379251177895248747556099835503856534319721087830441176142379950935299766305968501896703762295079613948111615251787662306443802661434830732706918515079095926358480412461538352925519827076025698724153802769157104237572261660355626969418738482905772380785529513870420457793952947403007281005102380088478285481334431125995972579477821165831848365496319695046493205102837090280515589119860468901873729444909794770708217326170723495070249816230543687276210312604792289690044848581512109776074680789255963512786778429329278840194042238588341479347550774757552899504710339838488177723545415650891338501284005983000408340453053602786385397344174809523512369919488415853419428460676945309998426966329119774724931907035261354339938793055023493097945920522475274682755266951672322696598472305308183124336594107192099812773269102720677637989175211832374238973981107248956185808546493790634783913021511165957311813374761013367079927444719209133236108769060555664792461977458232092225484271434849065333786632246012150960243752765555012788697712381161898417223741096718538001126965237567986479912461598361079367425318218989602317181232816389571793538297107686435439848203410942970408611541458614810760912117779975493178774147653828885476909166591123779683628910395535825425662662248780510516915757829736640105895774371123109039923645236695581505388371701615048560487910672119770846669605885463455677188973118271101371208758464281036988519733251458289574859800062582951845194160042495166205747571620307831755686281850381128125664890627906718564395888628967201000441156715153775685958430534385697119360440037602513562265584343195574686177916620165280014599432474252999285684971596590867819350191458954298117745969933996157731796541836717947868645644816955846563369330612661268790688660714927296707868055839694218231506494647756445080646090658198000439356065033598569992893442639711719463335779775850865247493850631182596535830515108943470332720322961834406564315758392643797809448581185258076854817268056948377655138735701394603098153494488777072883968223601060726715846905591954843883793985672741146066353356787027705679607710259865635206873614845496402518435636228437746902698680159956364811443970905847176992426075240090347960715997014397607529635549518588503023981999385501718045341488174286511795619413834088981237019906976357391541310425732648713199881018357688684377195625563629738356288780577484399299071558093640391438131929547120171266769305037625341942029559001095924825127217880987121335449596072764051291668202299855563992117812808254807636021763314819482770239769729309688085624524079259999078540730297611145927234565751048081799906328921005868765365367269654402252716510627585177623290568371697348150319478145520979023567638606650399645292357704424627002311776414236780258710486053734442996749576917805337798456081972534142887554650325222132583279474672350887711302568601532725978520454870680212583649062397993682496337911696864876739976926551656102172320449526489288431547569006841696464241748115441797359180353261094544414326254436746841312319221464451744727200082962988531871395030270140125721845668977725643549430263535580943258129776433160850718664336101927799735479793437367769249528613777172250525849628358823034666902553979634880075204668749339699612820199080916062535657516761399168345911762206983318971463024015093543977816002396366295948482697610856465513307058987279186720133060445546016558575237399852625041443287649609143637522108890636548354567077790991033693214406492965748982043038939982294227912236370713801246320959473975894965419306398508566271352635955590958285343496530303592580913991539361481765049065108302991148656608965119785662746373878389807543522920354688915528354040236285889582730186968967606191610973500124459123903155525837074070197956129081109064098786418571282767545792557115720145557818899335589439665733847512310638269228476143671939296263864662238492524887411515873410060269649619820021281342322049203637727980848332398938309975385121119919667478825565205545364631987592619647328074434588449286977080256871263326940561912619533596990524172024848912645510805563241977828288231419527334848502468498673050636445676062292752463574527922827542222468081336377622886721213995196718886159134738615844536007934816090215071068647477641887606107031347775392574405538077474919415988322050601337872172443305959169133790890999564345177921017608504826134646518236360232797987642247810272938198491853303569559481661127615686483232239003005053152940757057030937498968882752299550186930990039716319860899452344583293581875936710787652978668631481793566814007093318957866286546656683519552553501503376431141924143699414835949822478167445781285456467037541914492672937241105162691669100199804037160585184786063972659665221233020448184990765044855096334658808170337120714051313863264789908315372699632506250277200850184947874786121788915911780487715842193603388685508995130646903627159874729297138609517934179743888549688807016871332168351493633110929854485037822381625228474132043026159256994806750423928916118413218710018729372394560146835483639407298108774504018319072036667192863846136241324553738564263362602046570135190273900389354849081840124031097924490667276727993522086466456747711773702952796782675882062273575237208217822153478454844432238495022058860876765205253905006371025958314933239834701346401849336947998688689453888308182804724129498088212609224346912920483402778973995265826519195592197658859103149971896638115656295003603931519330441373470049423611540360890109090719409287955786328981701035926004857178201303518949332211558184211096505385250645905370407147063791715295967545556049973331871354021551168041460863354611354268539623740394181951666702623534164394068166598968442300358409884380727926254206018651373538440807655257559518719989568068143791748212848855199394433065195748359648591014392987198955297139614776107774674796996013348949386113335598198184056581791517502742837938988092412638206012496089435298194710946628356751605508644614055501392376059987860658230571383631583020392966831944180316782312261559936805752663923387367186692245855766826869428968652339004005336564476629023001608567673587362404631500617704172855239446556089672877457562684848874996789591305026015901398928472852053318777854966520128232695345484619317364359701138830091923521823438277359718814438922802555950721824042848640654221861517820017876571921722014292604580247821243923681715767216679071181936586259756552036719752517776023323131137076676124883454780994472001423297145866864262187958790172149889855403961160936631425080725615226028960779681136183709134448180916368564244558106212393543781766230058702802365239830439168052682058186691616216123409218086578863527553755567463679113080233342923037217880055362756036872610133494606325286882147297107180146078960269275247034803239223263369273247346839207172359368833079297446743670089141432320944522865994732606077359441908697463553072464824645949005670191514066795504165569472634998673903128789413579922917341478671033878113540154882358248152462417141004193270886968742863535780563791596805112196003779480642958634950381491499239473612441005990920608341728546341523744060890406540085442514113352135661178062807008680579221836423258119048893279525875578596422383662110835257957835789550137552597046546361907096672714220077264892354484612624488303489221424270597435227385851743660731589417134990400242697425318001947719090456852035234815813420705887595358530240183278824329906823455972947248105138596087907614116400741744083635966616143841408971437560030776016514772188906062225874578127838923385308788115283129991468478079195361828069852219300531543124611256786999033719023043344428357912631346981101688173762943011684691350389429366392571623826278746763759583124943384631051341109642599412213058803186588094126481563569882719941046398092402485767437924587468414093571995377913528701661745525684821890202015108480234097245488772007744990475534624015801224519469623311362758771422405001152750434604766660120027582062046878014955546658237257479699656320561485996843119106853255353596387402327276161451633307023258569149537208331699002019520851021905840793244254495461790908386552468480763173284368039276691173294265648716722819158121348205801196794163635794693405103469095403098026996592003726918541140984838721157427741554789385960303448796226210990958123537890238285352785901288469331636252431351228477942693636020555522893605413256631014085645673098112916403438421870728978743550242513883899098784999917991556663276642391262919573181148588107726876347573117525601230434163526293606648655702243084461449252994390498967334296121205192006599118117750773877566418447731602205493508551296384113513199859125080952606656194951204211008297718694417945293379081261817728558351340620454723611413300099459570766696555635547555789800428656163016121348291959025729356037524724006974538092323835163280499737795473542896644879051264190653374992832706930408078147340308571879937628688815649324980381433206123955773935447242634085488554138272598064954985735934670530090550553712057179612559922341583313750353158534784010114654114763792483692395837288724661559087444478926188033586187523563183767703911944683291890226502371442152016146641910611545046222321733234802688360093835647817340334265357327708105197373466108493924499832700272652462262288679210312481797700271695036959323997417648561815890453937840289884662453599174687045683043774013265904856717015530547350846179304951790772744232722083666207089827767138658508066455182185871417367971351017369364927436957699074235640169950682421268550476675152541339990095728869743416033787404392705904896469190478690304026796949016458497951386808418862359122736074669911257696130223105663176196805547163711891737736787433838092165428514892655146732697959879848204213334865194959634443166810946077683947309024214820181982432056793016016606836344851773687649214681101199843927797706996619080206760411504255105092151555320315640194040816462655175329208475297360779177168043321191647721211988530417209537554356243975653633242852085854732231312728111572702431281938821852569463417277487938216447006228638085861178313164448511663123043347673251621002604098588745435087853602917817786671308755288529771664886893081172115227498233564478011666857862219057096131893620036480173833649219329903542906861471143318497590542276164574367230243742874768587199153789968362215441112632904941399622591917582697109562087578754105469140678930249634847472716412146947661277939528095564948493584709725834188800520029822130229443304223396030499536375069189022179209456359450610467550542837475357142264312488532771897395224372386647224663775689324192367468407638845173787707605915751987425262969078347140683487036099339892910131685826892850600106885231831286611091178301946253240612013437947417324529812347959883478909717077881556527267602556257035980579572902593747231341615489336382881620540042618365132345216180721572925791076560953517514528237139429049534433502870944650700065114146107586963540427197995222636334829392219440688727354337849013879214060778452914646112636846575510478976760703116207192001963308894322733128571891053788917084021007647209396678149979581036572908495440931011978508816344957823034309597880072689356411313679493310195014595266099440307220551235568649450291481010778778280721406953663197392228539634036030312530212739373777590118866996244698183801393016799696556177764923838175287631537661483588796030221380400778839827808104328258636596085245901012294129401350538149657258313397762716413027731039525649895818407560531042635173411214064272670309530025613125661058734130710297172850626189521502755654893181445074355971244517290630003834059299613069950144886061799535650119226670579277945757412229537527786962768139122858815352460446077238778082093499111764645483057928722497713584206409962645091047478442991803031725435831190428844486118774551153921797012655346866595752022031920871391149762615572525081934105841025965758301105483916885708812836278319476948941608110032986806267882556807784885068257333216808123533749429725141175318615486408650894680106436798602338538198644059058871214103561106750546341804312847066606463776029588337377407862856558392031089428043866900234928348271588446218690268477297587128018894600912175543104715752314926042744894169351124066177601835826080332378876259479356430699686206281265339981195449826312676025836389291962152892784583513589280641280101586482766322645779851233902234254611035325475181369721383262263595577689667886076852942215861398746535127275174118478047662573570978913566673977155402780671099446699942653470108101575454909517288032010660427770421417533417237428383733198433614604679512863736353409387974340732194096335635685171579082303367019328293813326853761137043478146529869417735381931136751292782894060915588947515522711323717101246163265872632178000630856882430995774391320913964583735369796359900284537134002282635331415466632753165900201637242626757066745696457023929345155447185334185538189840704317867613442203042397056389215291330530009756603132797964293529290944996206114762873683879682836425567990318086747420066860080831714742432305160899943507474384488504268260337453003906856332555967450012650408607732643606286821098183591903807130888694773015457689977474570965271604619293108109213578767092395877267129508167341495963949252299806369139906250831807674677084452564911456874249111165668618742942463310820374399514670750270637587817693028626773953489131107316786715126798222607613316354783833033393215283048625719501960464683837720584865907259385987500242622020484978627291317592047152743116717063789780779157197500061859152254255433449660341018933266478935340432486901404986718420474457381181326202724653864819723446092658853373379981405956859184635108612571754231639489244575266672553368316195263296721399397056245628328675513025656623449171600441898208237999492378133767744029296213422656148269816283767773916701068530178130376236803124780055923741849973053722530913988439866541477486067654533938623979851138566313656942517599803768156753941628629872811202138564055267982359236431188570164820332700796312618544141569104696532500905916146691441087182836029137947958418490266567164736895458432187891267108932232991452639429005153163778988981056549964563841255616354862687755747787258227354877170605992780748202921853898474863127874279086932922662312231042437029065257685339439552997528434184176666894138143400782415163340711453662531046263779043584879681208895904085453553548815405338129801514575187758218085257869730680492256761849582128910113658085406027235533217994406558958803535475460894762121970955409743853438239117129263329788005544982787788519241382181518841584563389556435019117357930032634019748583264595895170028967473149461399354163221186333285857557416691365198518505267555939269017815613213393101155665772884418775808900211557825266955296590759692777920395289077131626649855994335750286002816011405423862842777183949390237193422733983648653929061000908084679783587158392000658840846042630060123525455062216695229261560141183251678730256582680664132353911566597307532891859462666388839937638200107239959993508366811103899086217792507931756720607763925946553700748463541357074151181390717043517667313864986252787263724118633014779181863106196806446731672114771719246964459317126607826183036638504837872796630032831304800090325610000018726535672588293129640141390898917338344716914199526512269660365487690666866971002804691785630929582320332656909615254652470342246990343769643443894381522673027505409824833621821432569446689060938342654208502374431555075724357004247319585321592992438428623812333257284110946629871291847614204609434557085056022250412753164263798293392108865168863371287903040467211553179659548054790248990787577894767103705247606994963944724863846205019813793241476704484953272828013442951618260726141484646341507777556238415847569108707762240104996894165988016458459023838993429785922207579484026702764397656582383375128679504774761344320725688401471942643614875259809708022575986150449748331055302686359646181003378219551040617713094439250268354434281196072088729592774613725267427777862429671969072956765073104233523463407828210821095169590274384583961220171587804171393524931201648402420408683906942568887738508515821453674231686718967981354426944388232793500370019031097550241425353281026321311562275990467799376213653224817035752572613403021520230617703857918214853151916040542557836494667247927816265830175198766692371574780181597426722099600658451693805888423201813341926830307488265466228936005566244018069412346058168279628507205544525805853643371892377109732971056316569480422372702136547540308454565577222988666869322102751246617886602371285000280027253075932661500247524630743768978009079311937545613150938316869805257815445844211222350902418768611997126328554896436309873753998083441378915667068856755141551009078743739536286381673330871148171709413133432239829198308987437282221140488565792735322985996162487464649970400320167336271569586923651178766569614636580816495649679899436395278786209599954425106296761865230674761735685746532156043989967745613605526984310727501646275241302564958179787689504295153796156820001793885275209226903854813362580572374171256991873257105234793897710354019343045300377414943823007937576269751672668859307579847926083853958691454681867734827135744305995125352510394815965760814829603496605968432111405255170825865684762481665908201091004679363077801803256470975712042974512495630291391006108222198107038868250700149993279584137499289154624348049848191952603616003045034832818647314854125775752235672266326082819329348886129096805998791272692250188978584911160061175877900044023844445865928323354331455209864521427986502636055520609273121385114516108689236092034758015363579918962741876605435038069058625101135152232665607062529582247060696053297509335369102948876643643266535735318849310111773358648562012108998165819718272090044595683383414170990319086445210882725374719503615387192641041752195256864566349443381890564050213682347269113624556346551209910915041673783243338413978780230582049152131686240284096317859275476147529813142323279189871307687053683842051954123467218384054835370483162800630461389451789273862941598948883137096768800393212634864679101167908134327794346199791537894985773091139930258733352391697292724809892264022731488443587369520947160899533392729553146025539507739553600836069630880618746001766888026662418017646565404757858075368264785469021851937692302082063897285613136224494554041453880704672283061157871477374481572543617173244082201073151238444818385670240377312835265374792650119043636157920983435577239684496029841105459396558683724236253945775241190569613214306546960021444869944360813698044642989840618815542227916967800204852312730543135151544580337699051301627147953757123776025730245777073679558286910272023099648297004764838575318155193319462694463302220370368029541876231466874686687787161728621541265593409057191479193345983602321021309101230686620761921227398448038761569601065885491727604886594255403383687933472454142707353347741777585061712772088363619459127689790691169315501321844835102772087837309343733171529780421628746994709552541656604525941903639742053593304499214292280547922897272463422688961601694457052572899071539585359010425983033695570500424905726544030545348319390727039225236342929426571531516343184204762579640710650916133705891847053151748640708361265671834864397559008951267994357108565589871686074069798829705163680000380457358756874278190519280414136616358850854907666124266953192054616284862853930185554876729455879347847715406062052740090845222835206010446147235813109238050790772012035198419714869527287981669123479384677348445108424705979725281163514177299110673271625152298829780500879498610807626502783306800425175688857691689303429189253492585492183587513951387218262170412804185083503469797638227946584085378448464875382624424543976776863173141942878243367814464151316450724027994555176210461669663556374550985664817933743692434774576978550238829451387198366612456585864095215717534278595345773189789307782276406067984258994491107384378769059393840038754010317585575209819919750732488084285014442256575671386738959525074707943189936166140157722647621586305725660814079673564748315185053557852618862291530175839270879257457087593693004132427328444325221928691563489828214696978118035248533451814666693904822892683541879998223098875693592191480730660528113024478392008340747638350976624041084151080941842720469972418705997595524438921545580809890592668538101640805796943581000769660411413276325816219073137628904748488790285181886793746666650042053350005188972209341597648392146591673555396323608985554547019209781139843596243974514759116134301961124613840634879494281712711404106318454988440007880075881766315245491767419667312520078568375488823795568027633095195298000939363758550669834613419544075457837646007238632738425991164291948759690877242653079654542105661825363380521015431138957949500098638718720500785790106765069501968467296318022846790761066422250548700471237701464750616622546476828434715867961206649794414484228491365459067669130584628905041748545614566395654775539767419450761426236754218201937850303639483933300605057758921565568627933749599161365542031221724902433309762853277783801515269434373220684289275732533539001621271452264950043824261879834142798302549837226184119035175979034970832207869462986495697338687316003104087847243793828667983662979525910600289716169477595237277422837723177593721587644592067932961334558684947852164853017392151189314153320747235558747967246437191838212998091922288156264760847828443150524034795959903861893603009623773595248620082197325639223960673129337258101493963959204469059094022818193374756102668563099512895171052630010688235303491259370506739055582920135293403082891877893547232878722807923298984735877438208876660595216114760152047288392514230396097881402484195173622045527393186623216172052718621751228963690669087120266295324103070378558841996778480813916889892855177756451028469655329862675765262692295524018534001860384407583358715226019879148022241632505109134761015447289932148121906498861712389390336868507706135906452633367345529215524707110296787631289535197400176423700080318239679450753461100261477116531729937103433576102685447489171048847047566583972624262604087359218310431266234500852265502649761677244790496491793249392886300693183180249029278989005139817565677555143632593987385648371717027061297102827495862057102598211813076420027355257486283164577703180675141323580392270456233675658990684190059011997463287586331683913665477870778096792861783034881351339117392680576358019134470080042997496021007155862346841549173749961966858380627946267629375435630888635123552409250025465146727060139197481726990479227727740299688488279948294011073774413021000270606985539104434453427686408400690816546523071657664976084243108717322524415826061366303525002422256032764778825698707725518506939478376026876130948316542093620551827074687933429570140996633993985200407297051559623509537282059996827946313332630328891061068265938632866588399330212434447398392495859833968725592804211413903789598761823079343909221035089978215608821682556958797206293384357665598809699618027339706630292143086283580721933351443547143442910616334685360260326385345920029739237630890316923331581658966120687320590231515185062296418663819497660980655656343651090270891660038368874189916060217037077663803211739800876405673276247115815639410537331269112354595559271753446470944010229887274839467671230274848159608618666960104178612250524615075803251645686217519857421809123062477942580215922786900495750184186637354714029671913458871965761901384754216403460909467605820984001758858621134082442008271849809925498782261140779450649933738109598479237345796217967001367902478597793501201308503424739094179418093959168902843098927585623088296399919480697089858592647788452472549982866899967256692322590903364520548678610150851277866118454875002941577347610884511353644803803417350699221640913694204893831560295320682503132408797381923021153004087908423763346429356261624528919635699668695779534168088440235426457786845184214295155777823935641992278066392372190002809770521541553784492201150743484387770825142120760207200815894997953841643938321223383119812175973496990476142750902713871500623085578437736021752137984426127022075086571008565687879587566604685917615372594082084940263473795050418649906778787580923390394394706069706867640186681669984941856032774042338795277501962113264705829115983767791519722102392969758037673447722498919356780931575299371319908909966453797473477887365604691770315242174755629350595405389799497546614248660772885788170011838281839146689708691764975640244624721060243990953187867595119230485125684912687078456110052360027879840270283257714917216547286612161028252541840460022893742229219461433130282997289976168562060523847782200465499744490229648756329009363605218022171349242712614586604878548954627253360482366252911837098593015194448562042380493045792118551380121958940724926554133098523400353397771681802184870097848354210269854299336089638298192192836910135454851537121872982835926821131103947836287202658603865981814879944626022257041290176211142853505567908332268187803629100626736949267253875673677176923859433756592875397182877966862492445635774876079073610935194114156231953314702231023664050761210872532211823079384223314893466097158637916575976553431446047984204008194920736185078901415679754365327811658660730904775878820591785503139216456049559372360357076441277642180598240647214838658679389199585395022913061891243804535393740891347947988614629104351803066912097792801658631918022862885860195122385427418048186410212132010335229921360162220248678013419894517561019748219261580960991067057552496103861017607299264166976142711549859809431083144104750396573172122122614769594736706452243888424957423094380967874012133599980543021010410346499743180932057480664276188503537160360854758523810310613739567015907335192170360708291944555997476547555553980874104034145146686554670610396121552177483425778998475773801699278739363557313385389075679431107907515086005470293126958951435349861015217430125655260042798918717846478123032339182002623292210738955116930007220414659069178562873611623614709995548478305410972188197590480575665168876303677786020019168577765249568929400675125154658281980254229702141221146323798693282901816587490853930472936274657523033128771771279922952691937933680589415713999579711829847752025709369233632100288393995182610217858290181649085577956283917289546934685705124401815008359578805049312211393631415879521007848929053704179022631149180506257293187641901513405585611148838968047975550951837645520465049726228559769506250221600577797298889769074348968352910640220330240556991087864328786843752068058092358009895040010341572633816127324269062434873294038991554484345551451933422477101935444690769186826017843391554769519141956817209212824457814794074867365108939463233403519771856174905225425362698751617963197564269862948949159935920725191912739915030750571646319313559298157779657747815240965024502728653296935565364486817710736055323830045136501416671036839954843687551480964915053614288750981345490372187484658502377571836534741061520374713719257814547557309419726010749408353694367189373656365631484839074292920203682459543959897493719872451459656691470938644288794750093725733072904922843441195101637415110705972460829615747485097651896587440519907752061341269037649848918565221527791290366024205481490235141504601055527173361226615177620418929157129710593330984184566454964858074434985331298516448656133870590761601145657841288024038925116796840104888436009350318000353348170411390511563669626456995312827700141401004371079412364869811030699307032552442779489092519376968272691237891242222623120711008901422965137023238950839305843739972655546938678090096542347668214089845086747034113290523778433675158206226996693435986766603323574219590633669751874790702042917002031284296590677183562964650061861061371016692412901979552604850986233709412088470519607701477859660399296361592428553711434865548005812703229606638809274778805159800260535869693484774640499452593084022143486326469145589171727817550661883961696923119130227623677724141756873018504433149423214315389004657681750859197230862498660159154591425777179377343527805996742564631579752513445506899151371971821394857833967209970098251702617969182915849393661288444838996087144659656158329923306525074662198631195039367720769332809119550227633907813672574185086259156281018704961610539622383778069792070938154508625933960797518440515058458670514534709567957336036598514152392289892160409020827026601460479530869940265754779969656345573336221345858081087923846621078579592526495446947430023169166951495542308212214774667586538020935461301134400341090917498900359933594407061130142154604593777487866367183789957342002066166998846484437451935128338232337527972876129523094328138831222813869656230799658363837081169919016219364208097379574816853159170372157254648771419592076857244871348197579809642156711111876811011392772619107903582647193835583549920276120215800509495614728434270809906001859458573307128314789367221503625218204999607239517941152068186257663806518372540673955088098269008799771889268089290811177928444696503898302875786062081279078661051159850999088444475253975267710683805807547182888990864250251116849919634773023636168046231256516743372037243973492853393243150353971155401545427355501448050692328363571875712162574524881508559700067219809380007488768163502077105460937985024349649247187390235986002133429090669304520456053726682445038895717757755281731430911363801847102426653118768240571955106896160692697534562732558694683972550670038666993074588650749845652323000622421631100815509751877242047099988718158847627725719233061388650317606576241511657244500505126521059300215400362829614249744417810918711420969586996590586580460843401144695679201416788086282305723709103325449493618060665875218886857479389583780525556767614809594878103941072404880569796822595230856523939781942136116618924163052221012037130455962248109556731689903975147463566532943951556562136323684809233201406914550705503938601411852827569537925187706769862248264004836623708192724724080839882998367006528659328524444270278940366991778737070018924952474350854825558062321836699682357316423026294356184617398042379212654631173939908387256744592548438351541544745629837001901383139555462981082312161271451700457584541034887029339882186351888298507926817456085664123193746018765173669332541659236366034072200740462292718630948550574663515682831934567310565432375812674354071886484927682996102446557478220246872659227163711809474630924826843693022639331662055348304192958333219347877602963339536294197630952105149079678953668903113879255536268989939750895393959165714096038809458485405247596612395147369991446219884933956375933265821875378607220333295258420095951888376843560151198046049454786981442752172101081954356406901958473837870940269905516183679751140060269801978216641486548057662665587179388975271910711817351727504797814347349768261858913733709999660341041588194504798528687804575350833861373093572352849320174491937934324484241939829297778787838530064058123688093024324026008393079527112956866027997076129607549749775664685366598052420799946832969611133437241578968539203179048434511119371556901843848209633734643170586884599409740832604880076120947529097111259458518232358129712475857666759755566136469836859748852688550466608110291635684545301075878761325584570695372646102988840728315276966687054207137837214123383882857549609586973200179333494508494406491293983544505030981194911477352838879076329190987806993902014415135352096371282149271743440176754611599752394031278263495213630935729862301738507701727818758353716176241288754733091697048616431434471110930911682463988068984002836709905360309198135315883088994059030139040934253145266313163032417403712023461812490879137090357511443259363643139227645349938714397117478600897972648865345989145685072808993768161935312793273728062972529148556488508426860960770544522998504010347010459830166122978722702390998563942041343154670533418840268684433436142183907223959212734933567067203542888304415420211920970726901523945870980223730923345763007667358689147003716314461634740791432457729615074491177944468667228858549487935326741542416831118381841204600981999144431504873139802692204390739207829931510104650843154784423626684883809782157886725805099271161684625724328599014390249568174180532043780662509019629908756363230672193919741532356575629234667180209623324912463778822146940703088207461370482382163257163136451738918945966145259836031062688252748547266207684332464331474998851755042498625251770160828444465887621562359494787247160520428528700594457383782175326156219870189964073431861248409015502643326026580212148759307779186982762726900585501797588308429617542628611891056920352918016125695959498158789050853143482290808783380992899488275594860770149808232985486294935339337294364113645360139941461230474538723503135069798207009148498281841714943699817962935796387851336221572731508846273633994248394215929710480936320877796605386637458193419830921426047293414058805515523315632571694126502688653967431122640636009566496418575867803577849175748435414931882151775250394302433377413353480870950529341781824996704819155437573542939961318525383280181457764172753774655524415995654685340256392911648810150045622834832137558963937582252299197781402445008067659609488748174085533983376099831604428750376907570837730089145747303137360961477376758083960543583709449097098001103803145057679961748583834736392095473588132359836400639383297559665710670762738377504133762025244341739078150721182756082060617796174272386885717440789049228801142491701256797160263591256933942398954302457247600919876457641863181046695669863081557234866347504687074040299459014417110796428646211972041129284754665929750243379265758906113771711439030493657210224377624024976756785739969293318374795806629422430384245874083624225127165847451907419321797374297910792980013771943117416819672522961946194235702787353925325356498882923725713886591796667390766853531189147982566740914137736686504787408858301965980639812197530561666686545425282006264345566630838770527890752844673792276374382365109806618359801484825144336081097446823792472510428398112232867995682774722959695251826770864059523592902390658412006671316011064651924599673039656558257398152834203139095501302438028961330463880288286617304640393262098312553056934760942616230738658920785136056930248142736928865048979663916164186364037942547315143530474131047906820845873460601515925014319391869609933166573726047461281210487585406210934021570552887877961350181618172870261986195599658688659490584560989476373691092859025596625207943763010972965154174073306777559377816651087560700812166163948888136979064160604469232189575031305878714119904675664249219109833125617128373479801660086460023486562021979645406968761198727575317388327750675738602505427796148231357999272364571799490009566371060317250383250795620040474408994534522055195632382041387480441292679528573145574560510452886657239778121705292468521435995283082898103116799997105317054556422973007206492960156748092041710465947316210629398487536031259583667347739305257502862523669194628874836026569897701328577903609179454239076194213933360208479114526948467183456706869846905143110120561510589812498106563066833620103829809005051766080906585319481867863138597574073479075749177321661073804267940867168242743203145704566230660491629617694653635652997645442779689910308541858634550792316588175957534448638543217275258151845424964295367328071609683317536686734177745748416479661060587896845169752333960440784541556326962679159888977031914817147670564183135586150018625944751069750018969368930574628188679451162534082051182210492724311698779151603372224782282487864826189471673032160715186719809214215391612565831446169628869923939862978413521091546499715106250813723301433653527515608994516641963108921178930291072720034783076157320651505034973407324485654501930005048318844696802360330159820295988522188884933637322054043585743972003190957736284118201921246999733628284212996740847345858007094678129457748912754603837101768643464129259940594566921952179346545922105648644092449674581519608094668437834819728888711238513482372897963499003253109505519002616099609197535944365698000942360832005698948451751069228118777522542249265015060268066341518542098383663736878206795464313533243883424898939880594896949195384670456937776572198424958554554386304834991874169094890728385620100100286049490885354412459529176475297437975950528413462191739498415586309290572279069123059740816204438471847649549106557869019911860851109888023393546466729927382726431941542559264499536886647429906967312741855175968230501131749721501330095426449933662637162827813817130024801034652885925597580871265663509668497037506073147301469908285021791749897826396396362885146376222242826140670632489613263600105597668976754777662198972730468688723811520458008850741893575112330847332451224376509173445145882763643591657462986468120357642736970414274653049899242527193773313257118068292711304444878315674621292004227241608513192638039172077917024614418639329658151392337253662654289483933177985103177103997192459888571844480597665714129238805695195945041711184644267051791050440890287946141030895439820146794058038088614810481568475943756121124703767439891429188257009604774938345064924316083545667257337270034390142067406153862734602004517649709383951464549529432116425053655337956121735996117582147932830504721737642036852968854804063872784752366101047864328225063528635779351774814432466868175539037918593328506340738115753062250424794837838284185294934593047973422999382433415140155730324864632777444821700216466053186229093445604531879980318043526527390221999021419814739312918315333996802073233861854719904576564596686000341705702345065055561958336980836264852168751527400409415466589400817981581753979171100873379001902894658531087993176532735692201267172170293213001158539168053652306326881524961976959711973474913834175075606964621824838015221540867732677006443140351851318262991308799399686106142785526220304014581590905599263641290557982231910303978758887471809639578862715497064694950679392700915054277891510941384921397180704621114432705248361430364674360857444869975371178189448189323200710397357696438895032211840367575396559663325846090456334926946503472043046220344597621917629677378673268373795024514431456977543288634815941580157105694779797390692363315052927707785313098731372210515190926850022708059728721955350948119888138243070274524459787851797827342892774698464799381297437895014323202456781626537125668727624970832503841466065239004122781571380617921846079726363765494487591657848887334491185793443068553008608003471440158516728223952660129279181989192032921190347482537793990230163575978224851521018783538825218032550746920429273489338161849579363272518185162984556444987674937218956436399858320979793186936370875209555107481017812582045420329614666367552465514038597481586666960771541387934433398894647764051706961852682771975509537575276348077761661206483178929462402159332436940680359339195570069746847919083228682429668799402293017838192732321887541419833939509049449031561482296632014772272251882940372985022573483643602681813041805717100103111006215579069766078471057713677921373140803947757314158084208324602352190145643517754415964922220181831587662416523489925061171058493497470043356438496663309759011271802998632520304674946607031683476305555067837934157052203017471073876901564419201076121072490140773143496127491080951749800058554636010608239890455211300722380265663532961703662901311978484778710656402788823778034775282579407058259080857020961322826178749100736881280683300098122133427717578639010212451508326083693392668618034093644937073688645277242153003592395030295013274769097982120188661971783530888631304890423533002489185142254707060824471418760286260208603084527982660131096499186277972005933088686431625031327844515514208329525647602331269043350333059466417150496745812434352331691473850452453848742992641370909571348930627686833784641977590022360187954356899426618552202527484051456315563353582700757375917310546118017171801540021753918228779076666708533528677868333121389206688818121368093179745499108046067212655469853973546817184965778427123965587816080506047677304177575629426494775004220281190097137816082280050595098681699203895767055125400989044137609639989056760580260486708515797853063295859803683795251773987945447637717637404508415643488560509548443001886402097726146039246257418697515425873165791714453861360126023805076053566253640478138074484756848239307584056922667064743494132802756968557389089974093338253738683299792629724253512451735269958238053915427093008277548915682786086560647988271036691412972042392849004936374863602123304197794131800272458868258928165889742620406624799354961615387032311295687898330395670169976981000370835658963907152241637118187249271558028024283963424794590560414753853187311049167079258668971697873747392933743028450486572572495119751192639909827626082124295539646850931400457633324914089915790829542584130169955212717017232538564987007660260424540710303060521374545896738629322108057451065885098845267592070906752961016627093475644701534183693023981324148998995773333971340948803395142990102577691048698109273157083926638917468776018263331314591503637906743260651371969882718289042818027899274561763563342656997670454479704615243233778991459534054445394033333172618748551827362346334204664313466735669720379417567948368491148973710811655437190829426002955946698649892407680158069644264134737847677750329783596437211875766761718100707472058279661540816133108728624244741526695454547196841422849617488223487379692000431097413535209829369233686187890729446124642775832298009122486400471352772898718294042981307861103970741563751923048418498953723991222641637359866486571407598454168294481062907503580141234025504897068663473656714049913764634456432605771372491579532464066746792822979376742351853876972694233062378325248163622425967642348504563362331165943418835762569600940571488694283773247814448743125068783892534542169845948702613688594058143916975484965748150303971565297140061539831964938232459479207201138408657800865714494479935814394889509049362078542777509407267615942025060361184967785872934876782525612600141095835940661187377832928255015899283645640574473587938138943771263567398720283986149251718337503835351662785364526117972950756972471510937482451307471094442203749553358138864879603167924484329556215502184540030328546455553591024008110239579988334339106034162904915820173935864305141957403139241957809531455264288594296747868543166060283159964829354988202287585526600683597202015416406563483189615829719713528227759115093849767885131505017345717952216108493102357354688867118271012865718676336735764911935806825931548932053316473169736807031659641186501420656461511836510442963888107771138808713891649554214903672332986934504853693302742657354800906994461535778514542765639880622888764300222594753329031243131930439712093182376432855531624983721886782038722126098779677444746145639656744100022528636642414570693732600561706573670863411385653074188344831271203609837454911175340661441041353023112073219336958947347483970175847096379816402805533299626279905145994561444270528997316876012975632039269046546458396642532567346114483465631130332781710210648682578363722157055899267190937670241842786701146255240278049380064810013082903122779546923570438714170667618062257342019911696881008416517109647300983005991088188017673291879637673363132111273669106580690150748561434175953046853056970300819485102711771439891216813725486210681003622125964159599907567956715405995013205317633670267311226910072492415792762543544650799464433248595599085066136070392494657498423595712534570350595374702335148120831426391554532904872788585084932491631776824165390889991842800036594538634185762223575966848851813972601669344282072010894155774215481987853201109001807377893924421295763724963333560703637489965403297509003302033891931450645914302248308299995014128869702828735965392564434223723129590284232878123181536395139025572311031690470213538975206372768586602270257820259053472990266003033521717571923282938348939145715095040790737386515022875583244307410809799273617317909152729311756592661683603121213831401947976257862575599462931817832260842558621114482688750265217869324471696688836025299023231177513435069691430929613627716127296397519186586643070139960647671556437969271620622536330892884830794233612541892848951795800676871409460930218279893805402053526272504175472548622862528455722213908057218006527323061292459829901429418928888749387292357466986111543355542340790601169524948233112206261977495465970326600374496695833929975505244682627422116007526985132998847478142142287843167336004506724657421669653537486527608702670043248467264368021732561798306177023340710920468147989499311228867375698365162581273490293892265547050000412592117667394001453943571265037330332150727070506221755593478074252843809459053147498592583379981445245818323299381447659832519956162143206967942859789820556848683300432189641759672337876088353491131399289847836290035895728616453104604537862533173594880095158695572795021474158909863266171970221512905728714798369183616250996399670405323319836837415292742737515492359931171753294677547724246573762620063259398561510410203191084427204629834774609456716642763206704523018800926847267610740960381526558169212753447301452585967736349299523005370881347431639020281316256686086333465480093905815047021595014663547893196587311962378995681498940504557957982210022317011111094323260659559740550556647686693888782957142236892909625667806620930319721181107376900449908023006091052504177327042982163716934456398345695659498206039092649988291056673466317011526760377305281629430430321722644922551735488450818130908761421477388752827351337617308066207982982611671847609562986872151346993284435591837233249510322057310767767400240949755161789644906720378566106896572746313643180157582353333626666672429635482616166040574312772636396330401389994693259294270264314072927469841818743782364337670933277673283244511451045687450231076577939497405339781913760623313115699824986050843205488214799613301981130615742653812876251603705354858451950210099790838379501638109339806902570312821663012278957253818259796274507929295999787051755413071494972962359053710592956870894402755589639769552391695651050276660059594212559882027550011267958029988974735541373403181349698469327473526003408315496426387504524272492662566988513489443788940092609306014757755419034269400172833873852049752589018100221770382806459433048374634681943350357943487583539495992250934750223169583614136396612481974536636091962820061842429275526690720173698706971233306341536201610128772818063979255620215935918740131767332540088453301895762205360346139304031047326616295420883107082546629818204472029023371462506483443182227766444418649469298201467859715932056951324715710993550449451042841514443242135928807724621775980724475925677572441284940893640482275797922759786072741883367941383752357670269976785734603309837119611703312417880145584934608460217615337152923332862374185601789893267358954021638821171019138970845049297984445727812170734889452291262137950569647208687674036340001302600327121180180114938664915240863713570728851939458334283825148620364210919519819338791480462199855651998694148306521848351966697980243544685501263893984008705445643918380060655385474407309145569587552992793339400183433861609788172162797185130249655000938770733356020634169388383634295578890291903085942938225779843610049619545199787567475977272001114292234634539484539209557926422220397869212482722914911851220467302063691350987690955290376943007784912293255335872938963900801676350717674295649453443206563106862501495344223069440842273429042195589295412465315812789533046811575577161865269771126217549572594839738884534427757189620335532011572142098407717803968143748605248307715921047435188504233924273321569321181538716025627138089407475760512347233770672415602616007410075039384668153456856667931862362587248029297626352070186986918389894558100773874026849842045409023550948123210348324802370899607095959692355094363157201434452846203341999924229148141870445244187016999711016385691841554628965771772207081428602866380687559773086437170584501653241653672598913923835220195493788262811264284548749881485860367489596688177712052587837325316224607163228836912298291025574482931863027196285978703799929485708698490836771429192409452952136130664941809815718972450764095149487782752623071409274728567888369492118115838384740258532015549821271307637901410943686684305709302627611068552620375814665466831935196306016329799276113837236270798676535284122793135882693936838412503776702923883072602226697864065144365555539138255215440022033375984839321758436459597565782909835993563396659315394380763999798760087094713599002515792925515815521496534612208455031136249375048786204123259115175136766280909609028368201795197975467695489867661584261257051380454236142471315137302395278059015626932362849431637565899597295650214800294375888389332699866748337023633211904694899221798787726579304986265297005190117899434363508644458898659975332139029829258289308394341858829266751089969117921929373807857901465161207710659697876881642613367630187476311401996282702606741701747243449338463277755433011147619501772714314975191182094714420618591822707632390428573917157778846124839076870019758475001782399257618540172078712888365217486811015261260579307216481264614000661402821247590617255538530301652062578962935003380415966348790280096257032644846269436340089667323517704314906961190375030779303678926816988995769131903028154339120364636483138751517355702915427903879260304751182873544593869504759605633932721683994238161984410297152682425801367901340076844588368655138454479280508816857744525433479561271698751856799162270624965422622041549236638600004035300412981331046625626590780588508763272522232151070657921799492551842041570362934017713728631407591155800039675315426165658539472418141948183274916283472502803931940656770786370280057006684415940760221752991958412930609139923634786605971502423241119347511076994455586308696472922505247060221899138634552274447938496090381560987880718054002448997144348370397886626382033067690394675586184827439670952948937442175612794918638242326728402262779042089388316317754604507430421475722453193715548363598195618582133921514675105777880034604669242083273412181784214467084071502120772918724987515462636609106525637379509597219271481424369085721152795157685024602773483238915299046737337425094901251016300865338069307145807079757041004439385494180875099279408039664368225893915599488797652402534073390632426164413749333818143599355095077018465620953000367907040957190817744053469232536533467924040449892712965336264513280271355447449840765833062608787375089901518975701091050031162314917030105073699626386984260361873702509169191636094659829236581326342161207095028418748707534406392211930897769908825868955346812669795524042414119818545304276692934259895581703843396389285252913019765602367697768324719837162596658848885481920617946041082307280599912912268431111590081911022904990257866059956180401613296544164823408136025726207783824162589837951980190428065905884417920238856542596821161146022587407792363882181070474033835907908510133534238400908033069249338619307113680822123831167749622458855760678526032331513927388805794474559081983547918540919946581995669127825622027172188891098085241044282674860849854467783029573196319081263645736190927207810507645850357286766173115736344168479083244082636955372531668366807269527752353842219503051503598161033324638565795503959833381876735068001622653967464292079311402149641484297456465801618683691195248667489444770436444163722761087969558048397795326275748701573725311653830603385328030442420717406344429664488727414813144650815956744270652561958274906265971038189407834499636870396543653010884356217076512443887791032351395144356855818936505210061332011727331244640414171664067213045343880512514006037953487777412469281999931120190588168717870748556025205002916709328806013990404391404101300053593793385573578759598911842292016322245419355961044598811204633906951441645548843297561519291105791503938378752988121571269022960101138029097079774067516481212268417025239217390863010310505215205274766946442299941705676014920144138871307032550958794114511895997069483931204750123424172573652635808222040194054804098267673684681040772613409906357690946436966149066782443571071061907952882641803167032946008622286949644011739408803700606611798794621715739170794812732112676698641226183144400508273875951107918440333242204755749240461249719248695087268819634755829402876574435770431752540346303538636426610607927908155475900140937699242490415959313009078274607576953088142220019175835874045858661179121538619128413685424920700336523132661670949940420568271073354808535402920787602531650307274002078928509454379390808005640815864713427952082225523510033686599864501588584773066631317444026713325979542946024535301673996953011660948115392088851566847414890494480043872742305070654112687291144862684101941783591780362443202848195600022671857978062603178205432008011929217081091458020853748504956434489039506717888946769627714338248625174227590916900404700563083158615156602708134585597423907431874215823339034490522429327384438649542985026656096071723611187307276451531113323102560971435580061812917190069696170901902018727591394628945045493278599995065209883513487836555534202479303109629204312085912563449266006637219154509279067698147831232107395532384788851494000716761277368847926822997423883823207427649479947633954195553101792433553939018053763194227942902971573772103231687680246325449996895666126819977091677811033974508653741159774528823831307283613332263945557246854492261909546770039016791285713907623581909894758869208092949888450286614203727434909354770465950713771485077195028710196599651168597369323858259238842742846634785786601837885107580310570575880051772895677070042783301243693619059717133207340272373119011561043375865091443240686755377769709940852561534976896095029111023876513808415942299349009093797853786084833737974815410041713914901541997645012114728782682059495944667198319491162112826580019782177913357270162863317111268512652371443686593074461495214807616020062141976370227387168371418049733264060215402524742525758901093812475009072313464940820638778213835895618684679844091775252629855421198806439819975066566667064196652129474987665103062204727757550425619334336548863816121009632567899789586612276031946312182273044404859023399330509666521938863101551532336300815316956984187883237204375786086756199550054490525449360525764358597318340133023648939321404823370669844776029397108539880354813275453204991606504455653796001352816346278793574795710235761683670009399996703557648333778518133393615924631236499484946339857760298047124842509909102056815526061498433519226634651869229313414379124563723392835868041076306480835952246946235407017355855932134754119076502521602219888936274145779850230724191486356619403701191656640420340400842190198025303743372921400029112727214754453861643274292742271918741549739412869673262558196691885507285000931942759767630473602397996535786411462836017933293270256058748863791659472720900686482933308577480412872042575442344126374450943722060246252000312288125338386165691123936665667233003756836502611797769720874006976009812683442481022997484326229513520575091536977826160456892495120017555283067395463595232896576968682614202273898174749762165122900733079238980713665537623185867182372224442616828387417776396905711214420400739071946674077810452066631390334134996330323767695030370554420428502335808880507140194793655178795049176982645877647243758718797685055905859606713677811115331198342618858320700880933448764405210206028975820231846091750730369737854215900051011293279527915887176560694223454734750483581932849022716868190807999015777554580005612909897235901671330129596701367035999656206351337217579562228646628468863355012387851390853294350186775699494932381545894880559220451414377524449940092875403412255085540484111873672469125473434889243906990397475626600766455348625145998252498096667173186817090871533087327597222497627770106286614735317227631976974105605720681078473079262891262471375554093016896188702161960345526777716847459731209023425886050913859939474441413402390433816248558493356045710446234587151732002612142692073156634014115739759264116404514352292370740902582617286713021386564069565261248432299337144687754682915758755407689194789146505365818091472129995381979015627571770848766436907367087572625216800312071631029477509076010432700196825515421756936776341613309319870201827523976933473412605892583670141074107372786599516892555436807497185559771499796181855892162333853234236061227120901226349350903054112461999139541728856029732177423023993056800653566112654388088575780675602247442963454175302863684892681814967113648003121834596744793011666664215792803754699032998634911249722010237485428980417274378880265528848937541732308221005364731048876150329032269790411501745658874997015646482913830964653589466636175023939189253029305142201520436389994780268730688431571372291662344367599692231602877526978921903971530059795957548680000115830677911091458468853225764957977720387053399737528465289684031071817463708237205648238144070084270751854866289295782926247297865470847532819064261006277714347973687377781758916955069387845646799959803655030824181120049707271137836017776399620759118073583411337800249684519961090501697820093317973756695185974237650334543374692318640265763812522443903973460413220073367512639411219765996664365768456447527003631067539608126187544305568743913949147465377729404369142100925865257833840672560180204887312366880584190719481375192867842457739056442606258736280721151861252677994484117466354318452420845274244267025386326814518044066713797716299704120783457580558807821943276139785382314477993236603692135813509591596669859644448225706330929255140871418401086132414039979194709193464396919749166916208241717592333071703289548691111315103584838408405167538814211836001780714511086730985120720713968232037520957406095034759560102228008423267077421063905635078881679756779971368447277591469061208031338523532430375489192142598591070949770773057639075592483514964645120221364629867230504443773717447631841829617581813369431934770351973821310537270720655191870131298698568717517411684913427865063060486643976605963115881789684181181190356363851902662009581938807863697350566787217078590863777555941397652099917350556260128294846937801818279514224677211289357621353854365706287633526378425537087383991653532749185044110875003462296779947391172302246870361405639238318899054813188125783117544848023915039626481978733131412406896016111064842346831960103941947553703269552999822110422003758984386555683243071424108516782771975930281578880925180843671929195209145390354779188253184388234779662297629379119645830324775173289745839940851053788507743302092149652154098036351747240453825015414756552203467715619992033898951343400485505457478075345081156811316634966580755472664840704063486263970961963196999702743957979344071748517571844736173143625069920955907763075180060326800573591280409847895207882685593065176340114628243752354209569870641167582033901237329459146527524043570602566333100259328872125170723952382542384426466176125823773688412365720736181769128706983545022916876805443325050305861829200630351095914753213617458786858757324003972278697238907799159052658429610555482103856849753987910216973425908490490217683395378405221506404804964320546676769202471577920867299758633974528157029001372198171747357765636624385830053706772484004094374734010162395656625367247112283359674595434031147270130823357696963279810353573413249348905235243478432938760095254092825248664652490650294083537547611663925223577267103584321931621820238064655793193818786269597620184384280252867026553494055364834932232196234558708740493783554218743263381908894650198382637757705670583108996503334637914403974837688842028779780808518172306703216886523703924230404672036220934748884508396029601814849022355306494925604089635956813888430438208480649676842975894003696204545745037488548698310488935833221780824332909832619179527755306113528475756799264547192794834787022956800249033456309560253891851434502123645638230554411851769583207420739284071053039515141155434884465856116657068031070613754830211201546147910334570257890269545983902757376290561923675492305096261115745334716668302174537791230934496684048724259988955015057903988092338767209234227303016099606799914718167769345059353237092785136720391536945543764519765545655404868587720616402660631861259726086311477732436541256341047191149787788977979465806347220845070219925696697639464385757566640999147823966895815921855623835427497435692377689842654669546842064406941286837193160802013729778329596974920822953926360420765705480364852565581528934126114649957811234598594710014763445459748012894887144512230501592308792281015359750449702648132838257108223625065734460783016352901767162164509476384666887393762106337586463220978264242175226313149176328552062010539469088525346039940498371549555218219557913455827566396888387571658204898952225989188358629989690872533612084415072801737839216092129666423199051588015930825793201683414541371829961836305383998858923481459463779972278730234241741399478733856165272757912638958533950407932005434703507192077777876682518627520499365139608831434283982044916808151894540494715512114345948011665219534732365979218172436443170539705082145931794980088067826771062474573987278617063865711824999028335322543612976698685512512741074600800225658971580758966798219808243790198603147925434419986353650979675473137846531585709574717910301170753278957731673653042507616897633189256669147140608830683742597660637745490375365170751844725380475299628670985807331744727022885156395049376962391389032946856091323615444186953762396622391834940788119225459268766105134680091673316019940071696925228263986371168298616193996171376536110596263498368131238705995817009640936968273917253969771448796081433806388476338913176142987508547673881327825993642891839213671956241793447851253062811023852556765854881232658821081244490988825606454604719312675085731245103156236083435367103988452105915877273283191602355067412466548177394836927046886125118151257860622415501993917472284111326962813069484498940215003515603716931837977371722043115520228362894158038552887796509415610111702484558591106573801826441685071798208781341092551557309390533848633403769506226393490065771230452978580020656056425480207061826086775754527723603066011087210445749216194076493119426527620429561612358979920930464049980785722858677154597497606792058527092376989419279528599748521837249737634463343500314069828915664008470753692275990166757006547224346862924365070921452616239716767645669494178776957262085973804289499914040282503745680325180320442937381274411474413401097304722256293446981423972607460238692193195045492481034137809273185570318291922742336792458004637823366555787741778515218515963888276585195542586062622057622236504600253980251135863105785610903336517798923002810407209969680456562853756734061499632002106566706115867846461711880802254952521273396382534396017305648247008035080265990791120850146418349838654670292555913333309839697020003476673034867451157847095995192112587745871807415877775004482937446331421952743321992291295703768652552605054244008939528212027125175305898605602823101144858095880240655127385928681931132607150766910566773093601069036669150071666423329166727277386049063728028015316800637856795664206406160060277507883678164704212340541742319394749052508785427308844401666040722269259496379349812450359900082821759987199867026520208307051285618176041993831838547120409764340662560541580489770698123756161032975862691081012467263737723976027364643608027884428814623739689450335762171657338249936282711338479540204897243388545835156192022411566130071720649879467723576766970887391229815515196688785157116056770142100571826766119660531154246119387614633854038692934857071776529159666253683156147205454310430678868115612060260091793960793462619335231765378870007880910910545386482472118905051962015305021245892124309965631556012651375394014539347303318068174219068404465392286908708512921845123222852042340711939977483944928262506302968489896483307534182910149821741093563505269745052138188860744246549441466040483956845117966425749686117418876359079524984025689214201001840374192670343293731789650113660651360881138198577968726495757836021688869414858545976130334809846788897580326344035872544949487321063179265542647767853141528747744060582859091710188470357548300699869117449704912463584513555759992200529148319340771001070197758073045168246047269780519338392547601953116647096415515068981205260606301390021307375021113589906991785863166300373218160255435061085727410175761275292479264155049128121747764177159939001250051668805752610511126037470272234840749303041288627313954747532077142113396942226332613050025910469721241867442967583954754643050687489540416836357304864517180384739666973117928385314995007809944267085130962768437864106723604999546545116283469300818804054280612472649792567113331968184804632298599141475416545197909839076892156817182764849525725966619109650051495702166297707034853972949636186327714039843597730388362267430820902336860524267217131682155755164313508660407345116464595944346892290069567210261324508880826319077735476039459368624336644432685746657660202200336222021869240457775504458099610928141958636798130835489017708692686548203629656124235941281204992510030180310368679170213345381107064523076003611937257876474410582185974215479287076827374703323363645132030234429856731378077105151611543444712648334246742623824390096761053122335797446486776069550482833992818259326477948349985298245241908621945659751387918074198672627695117228492347394867827419497084588192597483482641551107981650769644472079878745600466894658911729420634051160590762057597991481627799307043184307673385827596462334031849523916766362561009416607552190392085321905857299741728394599294672607439527041428887456617151303011414485944257614764249295402273789714734571983692607945144504639747821023876968643123755694283961418112659853364615659289277819740227038806382786900890308952316687764385657740134749091906811668448556773677639558405720629926614140927524068787474733235765992272080453566758470038949070889079352926686077105497574567711015367103107444335577584724714052419687989608841312954453613666495123576435350639478703270359786913903482103447940520325577162865654582252005563397129486578079819969332796630643546361186008522394985870087545596434817947818574714284757331481658772522183224036700373299078814027715576362668828023105098822247435094584372909106840655843750833658844923080791637767709274750538672913503990778429125416633529922707880561018281852230956694740077583770286406735035826716984154509947938198156804638026870548398935549737762173267480727700863832929255344890362190308846029850409747267797951857146530383663303441948225431579922190864820528561258127598795124660461963343259664660011347874389744774908089349795565590675837537406041766305638923835993231708088966320184058997643934978442004214719400391275851424008643069390162064721137774001413667629043406498280513722726414283799711369850264157720644961273333433778217207134300274175327236365455118441889612809728604130666578329208769643629547639827673594956908436084461219039220315991728925189872789953372316442484789290149333538195621556144944611601706778675677967711025668747208031749926598975385481424117828839514743062452969496737416415240342471658357690865558005650261141004398584506447889415389475601120040483986702988565930030660404906114422167286889212314691849974152394628881443967975563074663020367448148596574426565703691213206148073204338909773985544728212431036518193570021768601946580604237292892997556893860266154590516699962802900716514853872191496976562712525781255178135106222135862558411455523966061723306253536500869984465903987372793255983534647775072643896129647562519794140049968958213228025485954721439562616500034973871057563728473432133697685113753978932397821218338750961211982387799343363134336548807109030360290713033886770041020273553587185029564006348586874709191969036251285888571532841527492346413735930791276883597308847283111713514540406866323999051201390029111671054542024825922607123504203442719860064811360482477316226969123500704718023790426083259073237097731218937969095009841033390094772413025449781710070689504449521983762950457935311376036585225976862519934702202344255693715161309220537394154747415760305636942713830804406849389465035938113900086492065074158668144498070777214127871691885540718726530346813282069755645769052389191103581236855737859066710101095649177094832206805875499215642533608167949993525449523889709641081671854261823287132545099787526321605316498944434207359305581566013749651755339989999939509073904599754026951837797867396082651720683132339276029575118128646729402211090006313795869192790576124491667887582369406060708306516236057869141047501888710441257086009280953134144324453297705975133945760182485201490911709730844075294462552170299442965457141810770059130896403452871932129482390147244680903831712481801142865851708212685837303011060505534417713846531456925231299514467849911352280697934535334919123781040631892148994316283386548375424218345184261954980390360559321355016940805070476686686621180342535470695824333558612443317031325624841768136613886264707208840966571466447330059913303819283928546639322026534070116886565249918615728125577346023664159898283826162509448755834536515462955675404064965131400290421448486262373116606674753891901268423369444937309317690299782654549625673759808348583905730741691739069483135108920741366417784888536804561197067486423067528150318495832210089897580103026319558141939743852775551617283341814466721566242241393967331332351273310850463129611651098810187722961812356925516543908018518375658546633143995377299958674904684073892387979296822019453392346555941478338985795023181896472946439055829432481393078091038875072384026072716862621314570051311952342784502939490266658306716046927562806690609594228420776694609041733120322352711295729802060244144991050602194106765188503880170675680424613460791460282854401890833551205353615122742464612926769632783816198704978047570078044915369811824985556158118689606190498686616174962169244604345413911545588634077279731938321575028122298097696701585887797246485711006212714997663711728725269700078299705383035961444741217296698253872825980617691709041752462017336230488464291255155785248115909400310756821693689276533123329089077770152234133918601779169780136772697535826177120408221051351546277656518488505152842460765015858715405295980364428213079676594349683734305357744464116934219269122877645293552417292024174511650330152370115678385128736042114071936053038172001732696278009302457429821185413050448196446865836729547971224054029008230488701233417497619510521093121901373035464335289636743560871396295687102493811806651648385918312606100797803108941237778578659784420839212706322668778876004869555362427551513659524964717001448372309205995109394878373666535444066118248030639359511310369403614350240406538531050655918925515825688290454330331231149387346789645241446709665752782250507897737164038219724516829228971093310834962187791809380582293492316531052682797841520981690224515386574575465224548241800281990270923810290444562000192916975081829474762395509496963218233624172348805627081641078839421463689447086480868847455703960213180212345160554679092750083078428879415614753104416118199037161755090031181122787730029838242454811899498577287295029679872885757348275418339891931674007917822799327754036693729755211358708301519569305597177991398158224415229974048009308303044454487711513710710522849910614681468849547460474114476105259636673538257937806549102674229532671517214553654496384351315874508057275384385791981269388779324421459193772937225593033510195465687291245809984391088347775062683701946222331589359575408356159027728732369342775409990585010667165572512233344097249016534150243892967444469609918644849088592226677710670049576231751065433464005622684180059051075967079079687729405296589462302911327169317560806400566123424880544311685179040745671345360736183503106927919644333562781124249137799240990151969948812007378504846978801372716091578043706249369299445597395797719912008629367931116280827402890352488997197960861156874738527390308000453772463454779273499463562214491604414735014892809006822496471810688658041530436816999775067897263456375219734070431107858819486611105402401961671241415391548564364164075438045959847628412086644318567389975437395202870668675071181428624679932248778129533144935214268889795484107207416206756120359165274706489183764500979268619687858582270939296377026646864007973117017903694179273780965653260566783238450935117510041070462964335513253010170610368281456968286762415084630887093161336235867003282123452773224515575262405632893029812639991116788901689445185181441090488359610491655563360869560997558222085041468226314134138482695300768249388871964740481230385786208789965487745589445474370989941976751301037701657605524861857407600642586264739505707700739910998588790683006565781552585546677134022281566746355436166851167480792078319434272254746128315971252062486336731649358081436105483207307527272947914326077096291550090175903481317565703834340708712574522297234680699601025163872823026777380540482590318171421967955974135343323965836932387017968287544053324435455010458409780560648529895981809869905051575000806645349882468806368289867328681649324739689326606716729107572179483297756885166993251977506391625120490070379183647963342500954851943273167017799961385879922200673825966590409359876031684738990770049710669794740025397364488574222444732789016440229962742134912223219814715810499698183153561682094759316690296461571939120934899451136701073793617174414166999633715686695918115739163051263153083734253466276249883718339396216793978697325348044902104311904372319035451456935929572160520018028203493884861045436791631028221812319864709229326870653693116754998610140675818076905909579977030108196444153644925690972805213547768423369142885574064272368811957871867608062729143572361226797547675523522774065048166545053114778713505151762049895573022798732434354464374141240422816680445890291302875520479827863004095497482590124064218923540536627182494146191605583249585495896768116226854213545991732373552298472553612138886479853828886744065426234061350942338058852376596106021446292338039024141655087843980932160125510833359926276698603168258363024967674864632907355187836652183660434789164449896209238528595833228642624743168755309362724557275101218292594949326385357768827967764270075074005412588291303449813175729845801339144890877012603297068967693599494060244361508860387234354510774530587558143944417908531056060557292850894637804709053527951052475880022737398022219385355257270490071376472618406534923946651036500375692068930759836924366841139687966762809950822839162027081283573595987782847181610233072232399701022502520987188941646308643406928439300626980309670371738896190130334660361872683174782226386689528442009306849111348155193639459409210420671727399234819749244199381272829317272521934743913554293110257987253698518010370864969244444291749776374379008349271810486314534226079979096670905949409281499165556798174700802935025960879617853480260769793222371485060447720670059994928337050381692092579072422249027448599950271132556099920592951964363401262553531857800483600560189633494764272536467928765297076950965291837144050802160094534829365034988540997032936035828509617532265620639480428083098994260026818148276693412258148755851555833930654596657336449172719550331156992863570140021438865969023504403730796236638253061749350094542097816195075683794683662680521007835260102963969873338363858922973761427741117264843386716238764372563187333289028770243021002304104454846887420712788625595742572593408868562430062691521185682171015557473256267891006843544343908031016441848565382731477594155596832680139159691868626672210791399582190488948255451419195007281384758381739980299322254750677564720161250847140583227486963122704057817721171465611088713409932089263395113105048737664293801906929090772815522030105734160401005988028389902851139848603575653190720669684574655918187601297768785333248031599706218024406477110498432235082481110149918567017121630887986201227121177477475880640276938385967998612082121877106206821342918090554533019541758261598033241529902963299660145660148027150792377114139383886959129220407777566311542637733267413053806450614292770686002746880913751591507652030522684217267180695585591280089088810774906021914995002344015777264886146060797323086386597375792705545859209629159770423307199305760828228554211021340918144981497833469866610810559745448702589435619968650971149342004545091657483121072931560691180970197232114616745696373687834842036219414327267603839927756426437304431323781783942088299835149953939045797817400236738546477211974255227668182101972630998311173208182131606940936405305937266385387680304090328250933770568861486316663007221660214428895411512271826370485812401435298190115536299097554427583217813940773190266214324753835804632548716392975564763551203401184707574765454759056593076102064959133161842684150595772599935293166462628586444340740839990265996522183940608166361335798409244257251178114041611977860163253183145867200708537148741923581773114488789299252620367328359322743350029617543568502734422122757940171563911140212880101846284859207275669047711258163815814807971881732735279983395398999366947870347538569376697808150526665640484561220125346475373939422868156068962307174222792372360527619725858240193227329864776582900182827134863255978014728174255068745165638135560939161798261285616739875241529604763364620668407829414140041479183789088196366766646238508724767818149532139658216640574187813571197342699818008984616667371396957382655451889020033274575270982843079265076085066915474207782720937832861116113536321141976958175177086092290476909161367225573297659447151278802664625598144094141112403095733511563654417799766827212150266865209955672871158973834893483591613564530114268722595703633096811480529667449183518938327824951485685092419812907179082574641923059915679510157999250683724902309305983995714513424830329394670356256041758260667418308445082909730903666681217398198508286856633515173837018791384082652979420061222685211126249677440880637604003855095064375887063942201017481086097663237777167145905759469517818739448203930075327494447893453579074825610840382456229053790031662286096506777642407875619411507504184922529303423809119530326716490694455774528333786352738934180018517346572099141418241866754237581456561138434298834973258061740982511222063920411635171461324761702929487346386947889960545954807788463795986685456457409256285017606800628880104918107843428628401326705352209969425379976499260179516711175519705862994357998463342799691298502908577834964191479060934297072734614587297318977079877939399226592092640641430254657796070499738980863265735257675933740837207775567162839948651100001038551352707030120658420385922167801047392943032843164005334999003733642073358468135344431987206523431156807344982991311172534313488082906352828455552575760458869534718378975042113615498032304472738770534547955921932150804426221476839208530799605307707256949391133994514859720255866142900363904424693284524127869817834112979151189647847655136889446143586257740381666303909404788916626256040076275808026447656073712627860641608596900568139448294132508644322082116542463169156789234741438178056602320087740673204011057516046489831469439948236200508582530470518507568755084279181350424262868089206903193701244963057781269157606506008674458593860596809341713111309998659198232683810704697132390902273149904519383746169801735836283804522729170690794051697235987651363497265677804649319892439094595695094715205810587467887655464993722537498851721060764593952332306668400268829664575965020232161328903567261064439402286698193131555767655952614798906663503257058908706931475177382700082257113284050852008687021112616122162643765291225415912213695787025046376155505340834112918755074379178441840578098412922540221129342089318509235905913490316157967694045964568894735312727154532438754664576272872479443653184538266072558081639102212345505619343449964128435636322625368441571947221994107203616060783527149049055952096311052704522519741970741912993296376211608277860911234636569511790705841176856718571401848790422909181400802998963890021320227998624510700218778957075651290022449494679962485584626475675009794540257515481983643427050905963141410285910439823375160540240834780256320219658561425690243235938717629204542520841879373105509106394826306996664708808660449951214936699786783779112840971893138383383535064911292205359403924162281936342871339250957395359626517230253164601924675377050202756978572756624162263051755170868646386570093920044371281614382096350016844752574824182234420242492108958321607291318502805877353316490865063945400966204653645004566212453480531229522588098412941948633614151397373569409233089140486607791355309610037401662912535720978423824556673144922435589385544760208338367356509434130553659276075012244397667637723677475575251944045615975058674904192865126030402619948337918303664347199610678089467610897323002032166390581311459784466427973885425447189594272578026085931523157308451208443754849269094599629830010884058463913201459676865203618885720289246056302812339720001593864576231734572408561459671961988112082396696109636271882274857514943412498178906910744836710926244832440795361896498905890472965423406656100503261637664431931949903395683910775836428007852576825328389822085273759523567639627279466839737724705716817396881322181053506675971306571554214726667745140409819514660348077902140185713110455604539321210752031651908268957960039508673866419175201054160500530957368561674963811261086839975652688119261814514818591986644338372964754236838769953244868757942915041519502510053540745089877545319205110356515275515407784698536666001043662428081791384484302441389751185415242960996212187238912649615531870566335675690699241311733039806464767106016759428927888380988012375430064083928828636788332806133470736565588602404663984296881757052116763043932385236940625146378151889058441608864891350918214371722935769867120604613065955624268056761256889379821202984514359635579675715621999584577106956363561017956111712076452508231019847229906891177226472116103006745611234046482997315298464769571945303440813482300004959675732816594552417866856866707695693943778450148093434561992368515611825225935176530898842675206658291890453750675317462095458375545653886071519250972512517771317155992353223864631018190488570342048563655428310348366005672614518984826504318436707563462182693023995947830992713810640356682558401024230870932611953078808109838358940248155668074505605830056497842038784789197085078611038905130000203982927546784569009954363103462167835330150776010535625446295910911627965955911352036583992977584750972111838888690022583722635539468790599680717636388337421584116383856706206641247554033230223344346065494863653206016741008820479548975125510404566576105372102705304596178256367812767236079887119719731973863262366226795298073772101603335653426966759227054154589155845983358318804904393291481273602909380585522804313940707061227687250407846074244251564265126604451590806211565226094682874525651716756207105126034222731116129647061524929162238872459570362814636250246157602174094120375242339031355892306674183203769199140277145391090507634511209032992224972962451083081343183577564142288224064959042460185262250532613508073167599547172636135631346564012625177504674941342804664478964333335036885438249222552552081535132103337906395859393241133740856348388250393725311927448426213500583001763440488275302708742014712566642314566722677808749154513224489796829936905186577274627377708562933325808915474621866133873752973539568271707856448704258819912709012086567979751564848348113248967940692764916121028713433948987417886371215942231244297934322533046242641734362738062856524532416403103035798115835189442920093155437880971367562461766842861848016714251944245247197092832187457834466414384049864592353833481918159333250472186362982040004307825051257208815058637847822355689710594333851077683025755455628293662986346772951584739593514691028316175805924122486314226954681262013429211780244557220734043397927567007317683217561644048555153197872211919001888460588863574450731001146418555480125717842977121038667864362201519751060770522612686323525568967821717605050236151291638903675762462612415428517277901995354421868516979898617065092533346170574917371676315752468762913671551235970636371620438939108518674548173624063561550683585757342581010619761118941398720666389464103937687882764850812706385899743433785881365127137228137659764882293112609569390959275098490259071974304322936218889368691838683374644016623014011989025592900058935047610880745969514745494428112493991645367652854366236045714704394487936791784942460307412235264558431894589229695992095883040876355057032691889265291371318542678447697532905372683324363493626152929470810245465108919765786377383991383375865207219160486119430756558800993536177112817144370523193345468727790825041334825230870693611737805078607275932170057047391614908230838980026214562524359553666476381372788005492730994352775933140211020562374351064519852308154977621402745071543942665328810819523895139877760097789731779065132523617425641046164467807885810304358959465243059336283104774779248607842846944599929867209725077160632210048619426559735859951464348107706895279470962760688374736740895005062957170649518559980652831070600229408346479508596068884065479357498051830842800854668655743632180529720824824540367573347982004972990054913946149382421923479172538166169417929191251060622289452020238237947654506909784801192191322238294208050731951184163062297787913185973387252040916116979301379270125038102796110552824690489011397274430201354313595296838150195270323423141468233002767082810682677765699710757306782901790901788234181965804547132488620496647566801837623052096653647369854000992671688092896369894170259318183809845461411628560681092564208145354930247266094658379326915280938583416821148973634302081191135631583073797164003817118513427522760112676751953414682254008237505868334917267676336912937791874856906809076486274284397662558651045407397316852459303591789404143352561775897242383924331875976192506240033310657291891714662116644819602550913039970967017954514068602085676665184066228713862757319527898481912236624564524444850692599188099891095796371479398805700063348625903233486787812530510807124081258405353740821490537119808544971293607904859907053845373817289950447741687509807505982211510506103259161083323608126744942447565599186317970745502604521090866559698849141385534056534844318402915096264000999450612046153992761462599465859347428399363558452642233142794593119326972792850015615463950465192531786067580714544722885010724346714648145633876446869925314896912120181082972430285682366923552566706391621984017990572931644586428860858932888011655981811105809596013104880392812976738537958410493866028462923920439709262862281886702186628905277471473852682526018693773323376782724023825087387606055633874694984917175938765297900106230487456943896542748562126444454816248490801571750152548045222106838752659265182423853993701567300521037338575814294305668204060812919186777996300884250975324962165441785607020948525576636665217356952345280895879495409906146790719624977222594238732528957843379941704523552850539768731111880822262037394963178427673957441699076353385721214704204176369901702189738449196693087101340544949279729173486511674551373150533401374822356556168918934860424487389810491630779229983566502779813091953122216756127883976870510957394727202787340969420222746407717112629128033792631484830637078610939025720555485285601548635871474195705782719225951220139489924392666883935709103574254242304508243316818750023350872511504908118034566005884747247328874930621158248380402684536755217911301345538487339489716753064214024713483872828533065216609934455306484804357738451898049316214003890533071257033637742922365198886783904812040774641055286737018426296839523159296124202781635696976036526216140341834733911475123853437081861261133818902344231014330883136266706133439651070767898603771073117123445866515211968963751628530636961841138867036581509293719729217099715285890258472348149508909426233403186823064672978680699790827213207839475635583704377415913975782895310042522418248789939711911620121693320869835077071798895008707174662777790379538316376468350174440302830761412981251188966203118658773535784741036696117884498727330900557238814259807654390266146913208561263820344291601818604067820392261847456219316178552199745772321523085055908896249327119569083742930646972944538543025683794004011823348269072910552236027836399796871804819805177413632490815812922769802219983245539566860390782042708622727996000439380717477367725540716427117036828158642334442957199475593455090588765900179592753586971899382933400946626815099611947384805429139224991156796876499613864133913029805788426688804787663743652503764783038106015440033084175502277882264408049826046917038343845529538311270711977069880142109379640038927344090087627505295336755635034094884117679172521844728142786870024799767963412600384917753274577671327674490355499922341342550038134630703537983948391726927122707712041031488233951519773683545790258520126698578738710053725963845258307257471863214990819210243510073400323707828794276553741751908832764527710141763937672885883320788281392418734774752878585270907434536666825695138102839620785338798939470643147319537488961500826038594693893786341044238918840498099804493699860925249067404939323733374150519715495912675065823056024957385718312488414377053434959717506815224616568237666780940436582909464630444526341694608465190134363132401249737308722299529263708214967403627175237298491981180398678626076406718038918836937572907223307288983741303399548208526699338641189209877804404270734611889950010531600733580175245338789396810430172115725794194467251622634096195500822816498495354314605900893210717918112115203214791937661415172412313999358302471313652247063168890069045731733667542574017100925062614159982691500547260481726061252722001109658486930647236334603479716590737133083301523879563907794909195474254731167690943657613163991652621698515123779924384840172092070628200487627317413334151339512826573724656609277920282015920949839529157926534125524450575138738921990646093282406640595015444521807333263328834191253581431702025275757621304983966476886138346727232604947775065733507218865709567300527341813832576823018096750033419851221934771323126966843941323973970259360917150737910916325203754105015610073152777304986932914587974683720715013441207289176954614007218706811642985328050821331153126092320326538495622058667009198237153738942117553225197428085042731810139791545106229011475559381123708883863357958494842176610716256747509937991977992591576495577434494523260419416791471502230793052756972046128927762852394785340203998859266395462233331025289209947807967423253532550303493052915030247107028883076853910519330153158211217806166133177401353119423174333441267986771715624732117177846125879724398312995577291426851486929072465414773145167512758800027358091429899335501033140505731038874124380994872187335565544488535859708203663903159778678903396824233525437194025814128368902594439348206999628146495534986756434481453068689323108515643668327532307313342818358783209536404892658201289036003457910623461621364927723229198187825565234666987163971851651689428428774446675420883532683623541898605895468564384006048468418790530143482471830564978350610596774093629752496831544605591625293162708265002734762997089209910441187623698633039122570627535769463921689497112708654750562470967815370375588305574271607428529810220737130617580128310267937320836269825715930923107197326381025142797193261763771569150289643844015119743707013923090425695813563037813158522659023496311997353447517431280905104467915313916333360438098493318625639818163353637577757569364289579275988873739535797148729614510004430684612813742509542496442960473443108093793455470057473966521228673927552363951133786159318308203662108312494465608729505627127873391164614452652847145973609916508649535914323734273978033229502641208747135850548621924281735232454176611352500829149782414441288927892815823353540715381072721574367017979113941786386041065196263127215573127601100944897973967493012184836362354028716960196842819955986947702888909310631534183812755437995591694085485941484456000703278841721234238027914974372496290252377066706410599416521483404174924785585956206120612009796340742243938456965588962960027661513155862319037659676301823670722429374820970176750567568008803972031359089334430811271118463314333742332951373693804220979638360839539404708372239534383492818155762836026900966844973558047662302289219654646885227696656716585474528248893600619079415097353339001806910232451201313354404084977014907652985551843371775387258909094016228707982792392766091717949502689044330221065877337101937434886845499724360753479480501541462194971860746549198848912003528950909906700320753831912471065922291912446491411492159179803628509386396815593309968469547758852419427904338888254473789885116708023909052795623122614834162186777886305744492807012903825073125451659539818851522938375484614247005249544491812730901524365910923332775217789759925860419735531759303519857317990111982295153830370698821551984589979361998143058354410461465775504190659993190652623853314722949318250411506766310557154914713367635208982536507780402493928844297741642281163679561853893195754917560091640840966179752057570535553322224551532246992327863657144387576269705286019902321317582688332538752824218904807325788002661069546518427972550165315666426312839692114279474742777066242715074247899701816003798817421625896671704305272852097980002245253859699808984651561110876967834757119388422138578766839505972026370088654163570201427199583308043488290032759895012483846686074203922870721098869669882589097779775432554985175022759724026951266690041932669335703180549854063812889295150776028822024705296652096130137431116291294916245908806257649051735434106418354934451681234134472370783879712860521500706049258598261416168647694874372334371116564515272178792629160193862224534055162385404250694309644375737124358349440110714255125004515580567114402001374702377391907972708562428251431842092825018474143609659832592307356901475763805536830777746590968019829047284001280919457607293118783564907173553553957852290901969950239946030325287694031785228057622328854199579297362274009952408256772966510794633688790129718110134790242762637349346385166448855897372383196862233446192552479852351753928735713144478597727428907199943610392457201492667638129292897628114626739283253308069273833963854033479260695731422093273919448021652671581717497493007087830827189530007655199032418573725140060199967337054054778640091828943411482165296207733175337656437112322498761065158634724250725939600099576421706478051792659170637360323458054931274421065857442396383397560502338348345336752689326318957579698343093817651300106782460967059997446946509362165576959019399585946219794759804097202255682198510979030162354116214103769746931263361323808029531708205772139162939076161063242867544834634987706835639033707384550124091057302321396021950685336397777890991744472063381835777644066898131671904299038481684591524054965502805717726335316735067149432887165940639308441527759368148566044640787091409069812838516874718069690485653185142980700976336048645566507209732658467670605942255411716072404098169579643607308994640800882016976799988782219557157278882521476014650430670801567873746237595269065838724469147327079328130832219642443046537811337238296918469231704945505755180671009735903310300325339926956461801657847583999908220179594025315881218770681838010574350981604351970136632946003890410959888583634086975689902126479312487939607633131121898204464360128824512311511472594768441420487740366658802397412000968970347013253277872740066495304506239777244243930381296378674091521423890374933185629154475580130943211923020324045954753404430085021357680787755738268674564371213673909829431251519845734009711449425052115156201866308544217281001108520914658671530552479828297003366077091024343870968124244811459895891228757613394190896297020849790352692150930183136168012099959987206394237705333408692021633448452173393219476858237949007880750489203031640034682410358555301288351136949517951386107378093054730736731182948524409488480589177271886986366296397558723955118186700918802454100859416395936546940989764934431156776799540597055770097963930240567550453882242178212884502738830377372284987285610346646077594347288126197492422990749828384777362631072398302973323198626145132916202114462027656511378821714884654043830260161345608710535800437633654308662968248699163500008939182169375568369099352066448563417326038577648059303148974675468622274556127510862791437654312781845961864397899914443756665397575477571274031518129007759920494669559123966029270402217922753223204684670099199704306076094880112866440624187526971302812534734331525716259405721633397230150782352240355847749854280995693228850581561872487662367013939590396956429950980562832178373237637578331164322376827565764942741711926418626300040930730415532228317015459721854056030062090250759227486694399006915270317287064397125807903819479589147120742172214872971450341290473570789935495189538559301672204543826410062021376992811596468074457739695990679826468684728932212184690005740333234621853911671989015513691299118780547030685174222501661486054982893196768090417698816210205916325861276787299460496193854047450401364584777453523532284353373160813497648210757089097579764911000472982823116337855081210271894071778981085685841960062889030375820762119473793209705247928414255571380107490308479901202695503942775869432494957255780234680203518535073869685028843056833267316564087745910425976866664219139273966467230801361936264227041603789907501716641075685841182925650328496919030049333220462014987856425814354198274531712076432272807008170595719325739374130484272039268066793792963361706651103945709166628111659703391866460230443010646039312080137710158556011155804492038352832106909615395103645241584108811360020662224234348243590737770002568291821392319746954139772623557899947137880726586224386084514874415147230412449073840804481980350149963258090141635749934371192079397766518677357544294452978976909618858045779161289522248152345157448266906079452100001489215158623883778873380424401362638098065438152512886185085274549073582958752915292510717923578806751883890166677234065222864063210166613110357998338302820482604375237223245505045256601053687594646519823416887591630148865031140214804332146153029348285029656124024140233862782619451319801633776887551068323813398609880816371311498761887254729295984802110439465812084354135657967044340056022719513871603838367031497612710652900108011289957632116940581462485944843542832237749649304440597426537358259035531768688716108563744370541175698904651054861355021699793563005261546037430377706116288632790858990381546090288186124855826104722212730030063394837381375119781797769297895448762309484052219730372278958813055897949593958576585773377747467014370689305604593554258271362163625933238443826723600323048660407478937990991555862811339789160816117429750935870181259592886623305519005519053850036384122278695597589960406267509561248121216848100736201769552067549237032239082379913701305906319506946849194641911540330454929308221077260655713871313797217282671308348175317005464899226872250473168932971304662954683061736160258960649529355145894216209979933396354104984397537471310414266730311546774898568081798684923921471332595996727547804294520735265913717097820317116020387701800984427135322609137544767751135510631613474042353796351176144087307678248460465542272894123053609509680030645137099842337177820981860361443175361732497085673145907120986520404779115470430677861967414785010627233110052289205206690539404860210126356259259205836243598244645026254087904945681280075714264017380100667691374887380906461149240836414361679185421525743670653389830672862476926932629757442396553638005307418220238181432623006871332309104336765047930471466685894435694945372693503314754186174042568743092074906967698969683777820457469008377086144113390063090700859777185262581728270142334732894211179149694596950256621643847760065948213860114723073009970113584343149354127452485388183544164553284893297594105929399066059536495386117727304980810843622563244161135072138668584345365176481126003462610423162826784505119939533589665800293904980983873922822323782183063300790008550327070665517594464866551971728167042775679603814421995782430107016178248635004652404853601067525831646134547674931748210104537525955088579843479302293842543006967859821364915821281482265334384945008742805334637288806623807687965017462190102842056741735750126146796299038236496140087898735542037868665219450377700090184418103348782588233953837247886108947794022872704046434236858033141743597418144415411509707653468279633124780197702562082747113038342980834120414984523605895336840252607111123844712366172443156079279586273270405060181647772298274052560495315086548429468021308511310783588050680930221482040806729248760251383002394940158287193590181626332976062249102554848363743301368821603692243605086543250022236088183203988981327004234213514944098693834226387642186189977281970589527189235458473213717424413372616945787884366878468918564229477270245487113911804491196973324348088367529181487400725522870017639292109459039847194438863155318067551423718322307627633568324053036635808391002589304344728851050495875479962227717562754769272080329767708948055212682927815000412911544242452831735141918182595849337449110435265072307917005593020980075416884597037162908507168958437276068473943065953866005526459876208502337010871123015475598674139790309926756866443982957906333011765768014662523121703603306965740195350825318419375171748031034528132949824393909297427275954183076040897986667733257666247227338260417834816656066080738369028997501265134912553977415513112011665968429032272928596125450196355499339217674842725759114264909109117952815715427625757895290071183718243452819248180749416315469831301896280219027770404800714423982144377365537472847615916461479946342505171995178391695346299130848926961673137476396191371713690234102724265902171843753678143600516670247407682915418471483372528763802662467067682879394203811777873624827580226032613435830658511266428628988041645620818760204666659273854197796958755988130174604829029563619668368086006940719898237445413447254392825675295858815800260887275124066106239206766652037625443621686495990127332841841844943561391881025523363902426428732031440171212810180957495991290318241853972411701833218600993552994261701354036907167919059508816171285132200648317986502311326906236358612918289977792127306678695085214862971314230006863861317256794123366631825180185844211921582250369763962685859981680994304351206741681228156549508865112101466495903381515076163805865073964831711039128133998099869008265613192516744488945233929463481979924719704498130662286021317315767964669615601891654497902712732422091754343848954080052877389261855677676170681209094052506279919101802375817508316402627411164892836292333859566020377882152851611251892364017576679919439310323356544988738020576384216073608068673395720706456567385642777191010184036208197867184427504292429115677498813888359337108391484335401308004208835701532723198263145134994330270855099755217673405636284356931946549972145467938368270446459304321802671522895293687889427667215270499497265217264636437228837541076298461591720757289912465930356615675141570089789621656409306123555734233557139826821544156007808492559948202411583948923677849337702437334793143050932914357740559857739630456211793729194413019639789177778522612303929420324602187567040823941557457061509723324152343880948977481416648307215505859879685033371101261535836062607927410911769644279755261907877486120827845964700757299241007690328158473412037783688633324953942509911049479589751398830846220838925496463110422213667505814939409320512232558761423177830864798515638579187247654678974842253854172576880193973898637530041539876079524371943398516428235821879553230429569917265365507214807352600457189151083390341003376533173542555117071064807594903640756112927833772118774014303993027883569730358710560974973671707220355708158967887588601455638992821024363215347676096895046378087448495962706863003736046822011511190556996095469115601462093967665642244082891355017950129669015512838046128940714027053087258682225498918136754385592916808669643493511039918742562492444736793753534730571374943229394872392596337458029289586593949965706823805342532359360570283628593516529746145545539474848274242894904494646555588664747101649943274476102584024936304826200342524414061067937245697269098112088495220104154158295544572547167973058098689783495745926564940812394182825502993124283437581644384577543416278021400776229938331754105763387450893560156882010643092731297045966589932343020422400796172764920437910127714119861444327277837424377376356395672622125255262686673954058770309782280622459430225693639488583105446869865829012456989410508785491748744999328686809688489254252652322392347254132198509374008731757161411484724226620930057817001170809859255647016972120821355835308655495676329427785516098486157335159151557895785992906406570315981740171962895418772609838848811254035177588932986074197184908036249265550588781122678460166249770610272328704256020325140480068665352774252984984030703085973911742901495026436131115448263449864255999095032217441028315756658066879670480461807263490677609533772543392327081628184243415571684485968848075364316749387297596577250275766152344269094399705007326646893852550217904241464673929988108808959750383833875443991195835607000200312128707660653130003467954857103959950624417620259334652148912899145660380436034836050734312597163148851409942316772584036649276737618907114741055848112530351635362577983331560883567910129532392988301527869032187832743759052918196512055907090096661267714872756302234186844142257208485924904705802547052240439386459495648389674168125282908520703136320445723223441356971081025997384078010355071517780452908726383238740541078586403897994994799463003822064270882009248942030637214079914412661423159121944177992939498633545230156093698129011990261782371362419975920702594196945280733971765115598748375061735487694711322585017500004575502856305012641114296495292119902235085689444446579734119041313955002720246685426351794313694586194624505121556880350913908050588154800428547397027341675545385450015191147170219202334320548759483846520213981302884374768011244514399285811803407877019080384516924544290383403771359403930635092098998153269088154532774849469738895349228469794087810478292995570383145304780584058996618928733669286833744049492076643370839624103934887518306853493349760128437346019632080534979386646409433632370361188305378841399615008528748872780628941772821971713344860310036844717557507029049626775864222980671439999153670384163090489395194556651703862309937526731691894635828834012707296777565908555103928044505971666952853147949919681384382996263184159969758198142950956528438922095284186255748307713402962278606202190303298484613875633835970571725440762196259515721041626078843235007788457313215553450082666783303149927539370300091202815591499524322236889964706982104347348545623759384383830801910771419440010223216760759074200159655438467562826742641682324210491137384921152815309516288220105823795372520879399160181015625998379345935727497724699133548470832767596699557851679407500395716564247665249671407858986505094700552050490287878757845891404829487179985665286709116968044545505969470741695325443389394233838498960251952750817023043448353315735942508288969278295063746918528034880144307945920403329112051371733876448222149090935217897017893906600338899422080547644845646174606132243769899202396574594626563610353907322628554418420423614815771018757350747215092218432862813566994697458123210600730660276679068450381055903951717352226384261012337831115863166608819565151390147955405583009127852041774391855751908511081253733442462107045388358696565260849220654934292346924495163430715810610113392917480850700079869133973927115389640300675020790195829719965094794914263552654981528696551067736223674634393958150073729051200254912135114658673632682125742791981057991553319332948452719873075150097164726856005697433182194348254321538470703498977860799120860142220011969451816040778845520334852035392992905428554293215518388436746608044775670036303991232431009900122851758187477457736509852992280113638402471876257908167043826746943188066886424806392112638795015413706409795793543417777094056470017498098136009758309348769348066306958299430860450193358525130401843141408948785237896496917561297692675225238271622430288116044180737821009147816104611468962894892841104016561206935675387464573722686820754966841625435814836866865637418140882044695103393521435996296243495628091931482888818469496475932850471674924772304019554492379145728008979854818953696604639817599519303758563261705505306271749432057759454233901681810219813368889311065646100291155917671740647410571334392454969408973877423823014902792516742131949374989190231241825756190034752281184992684779885314193161522649750980478077789962967736269587948921530574735587722373743623919198830048409448762129577750711297605389184990314281596988839086157469560342064981701032346123033309413560089512524979153561838192539171097885082141367491983646160388254446884725024164974872506667086663674328383124301361083900610235705088439347392756428069272795008592634036114078389075045892023300551528256274169817330847857000511593047284485696744092926747172102093681428329767380151566818251192313828408742096589937300974115942010401404265724969724375723775159127312835427122332667601651517542356798297884663967311095280221846981294514304536930186862630501726729725772186637478887358138059264979318073035877277870194627132020857987568109970176126568436452905885337778971788136319749274699843892721587329413184979758867763206368067716091067302977103840049351969933274617818893329213316877507753368150785498815369298485186878590784568247148333536748096825196788415458078407389273662293212413008609957036763229745050104838372863859093074259324908456273744977350537154165916812095878441084912673106657003246566917950712861471332766099149792404788047306714057446135006033460221930670326721390654854564788813330670378280729575742575441408273467085354752671068417302600908119087336794144116735621850761167420900329427818855019144767958963245141841540704352222439436257447233271784340483698440083397672122465261388269479519866992543479389945834657222986479176052450173374939742243612535116575677274916389898748052586172057378243016570708657691559114188017675607083829402337744480581430443067992941797107187595108421490570615226080868633248364738748745557180211952302594855205156266551422182531105987279244536871795785006438377732979960747967538996811299688503708481484904078811890398235031612464519575773805918034223642139140091261914715002501116862994029135033769709066025718710080175679274343590204056782641861715733703632263545487643640055603142137473999812208840152879046789674089787610343725728036632146790881747047301908112196173035452837122562576669265962349819556190449727940001478024024755516894510451906141129569710279650824402121570901994173140626576973555340958424155686276361451764449307067660025735386596744039869054273921302704910493931579516723107140850683765159055664750523404311099450155997516051336056814055003989128722954304144927543234383567134007233652512055944123627315970565156437177811729422900200292243492007526799206015324921417445395169861656659996281869420760892430106205958900616118556850385289559770326809390841066582094153770727433063442948467157515288313213051799781544413997539017141117504218857506894410945391679084514100705090505576011878830429360456426007141301237105173399571142516157369192442186235340795801238028953441761529743629443886401077031077290431822067037937887479442092887304533272501408064363926935807321708731239986625010536994286259095145186404214011668030562396996559020146732541507280763107204552485778368053085121771285263845029445645227636557590065743440955589419874108793226725184592611780017073654111541475642156503930317096030877180834859852576039308765458312840186177314904777628142413280817081810080668603045623288487895627400467956864529665232385997755190380334307386819049028829215730369597993226706733267507460546760633106185536861210125980558035291142214781969858380243894240971454750896860596577433903913222842619798559813782907770312882446103654369023557117518281586331860138887990993349027611165343403814009934804073557706912112916613453168795492597479707987967705099505440248599571976296759587873617068589933458261449934908405491259996302097050040781744110853643589417287016931105827598551800275260033974805376561984942037231701761677691983302366569482658014574709751059859144528394246824075453399399601304862274940296224279241396126139953194019643431016618838057947341102125673343378608455362022421232746762371512374565709473521468505771878690238402636913769653894855406552000173847030866347234552976534631962729296705028724764951996013504163262680376135972327265310179982336224156226616721183049943867079850236635862561929470897110236542461472688449856304931744157461572726717861437715259404952525043356207850281238575092755370119341654808409320350741942998501870717170526002153657628634318682053328028143340294121893107401710333402279033043529788562308663665287294804176899867787864555748258651987474223616517836167592193876346985300558895315298580236984963811615391296623773748177557315087150117349865365729016797994027360992559209270818833960881206033356679298609696858754728238935574186060305977348123792887664767402610510998819438716263577309848986172283306807509672106050187330673711931331415640587370861611471774094067250997145535823479735414265205044344897620557254629451167333640579991238320839535506520049499832570075597135162521349176088634042799192579162925124055133708923511642865828637198419693638044708853686855670687907026832846761063367836944237677915807585117746073643813667176661527564547157854645091281641259393650694838504809647957215312169461180213957023739971061875264396423929668200133025899666227546594631346827334839446790313521406028779311832974420612693625771672844000213355521054520722966163251147251600461288222784566497152071738114681988029146323877897915205557925755330287659104165869040903784021687959047728255124793330842359265307495237268159285505097748427489293810126466468647263961761670493845579482798354472304497694816050501977856199334142741820362199349990613794452428355351941298412519547509553994336799443341595232199320990827579070357965113799105228678506848229582637602503256676815928398813244068263294074482445580657813365851432987799450776795082896255297292148830124825815685500009615162962003879487278527176547454335832196102129925054833329845835610783727216566365610608322277695135064811372144744886352114052051281432695874287758100860814205291694808273587484172219016829609974704718992593973427342663325679787365333868716578692058275777999329326564153547139402286955680064073659912408899089945614836810759672532309740046696124878118588874766360251844123960887031383975827496039636159048889268760037067135684669521423379834400819933832912739709738792101009836202096019292180476737079780437947422291557370479184324123284604228588636921216738786279402641544422000248474761343320367723345162740544214997819963350013873496271122472429934670698921489231991852450414463546551875344371579839438227414616359941629577301335342418387122730708414041054536297480482791791177620106241339530227728527879522006055882787936706803409530633843425218439695959464047977975142126269871839385760064065393254075621426653358177047269592607129435208394894688781610806972799992980833678508032559213369467671221798626222037811020402531897964018792975444348683545449034329658896762428120728587164047266559883647269189286444632545946128470814920313140490648069230971823632046876402086887348699974150837838690962655865629504745152424245181688427807866895639531234255380178999090888507382297758983449339725384985921187247133018520094673161345078289720946802055977477275942486387850792424603961872076948637094695457370766401415657709856292807131106281474567255546324872109110725349439960064139693223245011269710988265952581721756402070811134270985789041412542289417190624950122458491058915349840056629178663315634234743152958607418803422090585301442570459446827989772294027483081082013183249810959822407759481901984809825409101535355861004075079428581003371046323558568585214135984606448619758618067266735014431713427985950597519648299553696032665978810848688870967056089454492059082769716700717535977951543112997883042969411169406072923561571240068453302422733525331174964818955394877136478517231747209230144970191139164313955944898093040100269408786579865992805691358870898642339188731336055733100847051132885974932398189220387415261238794000106449317714879624175472989838132786224923696288235968649494985636508960830311360437264979424791793923531617411118320267381026621362923209146842634194965424377697300478045345433643887400126182539713077635403872789462624324037155463311854754673431868890588479106243226283835064004446128588936814223142005128767817381710449496708007908607861908896967933942812920825258240936094219737217730073034478560781851174114475310989331690363025129375175874954395037308924948627561339396215501552639442309877441102873629519039998867521235460519786161413561352251775973082906583047327441794379630791457307252454063721962868117752257985674645926427515159313588226619763326754463764569843883405317142229673864673715863245624163429830814058888736829662589964509722873585349717309936407819650005265721529974646334102888308989127519982751291437802906612975913771448852208616030994528470882190499537173675157339770730060185929063075783203658096801819306507195884640111429291978476202934323119426895728570512762663247474152916747875200019864401224508370972135668545545104166357974497019835923960811955648137501423174596584799487554835698447248482049707207514535487882168175259290207066600427281599825091313322694387661442691888692485885152881508898519104909123826713923681731269452976612470992940439953029280813584699999955234822065636104171546111397125353196389588496923057802090455510682645236955388666345285483598644814833146034387451427687084347143981664908898866674514826960587038539010140451130477963438739951656287433460006180226984962998369995340710119836309363840441379264507357440042137159396910799821837887708013964889144881754780541078866504894412516107015204316518706212923511594112638758925061502813733680940174037559099931295782428534238933619528649575195938900771182938511804580257470524111860189312481951426391568619874241249092396265925382847590304738968935572897957487121354465157858967588762347528616792722158242721123726838378639036530932430910646166515814978062290177282581784629741676817985467192972910740914531785545561421079277662272519613144950170427527197946205628564454483774615283917852862640433265309323152248396783466811547272109109028633480093854512152912615461489254101355165944346100555824395083438472366815294176023691598783911963547371701372882855912855819396635593964120624325088150559886302089365801006668329771842756037840436537534127026977603691801617187951526162071197985515988379486825023665334592311094763773320818692508468005571265774528143509991629410583528362896471478367941647694497630328916838344614812136082217644490306904824822173981370159543590537123353173219535119483594517481302176293936059478555190638215596694484750473435949221595125849988337706375877043502806269113650120368954842445271427175273288794655076690913645167327795398343771199343389065460356556786088261216414695582727406988885891069070183976246501373859262566684987119827155232405961729931584109130787720382189656110267623962256843637285115034057137791427582432691184598026596816050639407584891135623194077568410831636118364188530370368335605738535569177526114189662611891023958192878247263913579803897492718755722022498281297081214119453338323401527561919775432962668159501697560004582528693094429508992500379633808839325125610649378575336411466501648851525909555036818227530697037585190635867922180291560072509337436544580679510166164919195368341507012026485663560041239097704901452137409621537560025794807053449352162578031943109455657786508980281527247196504996582919551979922519809671638251181174139657756686035865701346191181202664695103928332015903819482137381115249904169581706324485784121634680451513766457108269390119517328434081347279098675634685017615139935547496150543009536516381671732914813331025302254774922654566820544176180628422072969869302917803487841068356036183836537595370989994839043187392460232662432994261411463679721867474662486628961902379167565688277353417659051921512646396858266682847967152407155237164027555124883793880716014538542608050222198872793125519356248818803812312733527492854520581754341390464578020267883578234169790129726119159294298488298065491696263504530204469001767767660341989159108547331493554628718502999214207962761059449162503168751828455533530152526724311244442938472409386419400371808829107778365348102246808058993182769159125748564613282608750857633314052697076971704852747960133762189671995473354927549507443095102378950951172119197343492015757515265720485494771450872041562008609808850825247237911112256012192232736914251094845543504773205245886796374190585302066690206400700074702854958824358281235440604929238878063623500804131370774217217597132122266341178051425956124433265203650405265242945114538880950444008767583569066103326261478990208097217504414193775603927612684810439984263834096077549487866759368880140235437506339197151842219441501077686776659834012716649409163211747186842493528630623008857058690114512468825640624768077330250456563704724705946250604451798659366785209310365437225220615844838394443031820657091651121005350988243955099514036031860390907634224946955866179721804316971039831846726984901688357350797487905673421222735773041957765301780591666405368957934142141199466809769327465459511982217287857805871669607111782609834525908000100664323551194261394173674480858093918910635329838424056816782539597196493387375473206578562720275573587171698591769212007061260464866358764644802497417624251234279672913733424147376773135234180293009894407591348214599208690103874292438628426700255008536454414732647915493532978029606229184434620975755276092781289512486881871921106947490347509791907386610312170943818466900546097141931440475411622182000307834136627748470191835027015340434403442201275132217285911235048670285861077044152408354565388333381353217610117465844853746678117586631634593354313849273018501606354099918958174338425725406083562068129666157029655139260302645390270774793708626450240347111417455142662932217059321504789388304527635612213534510478248470389277492641218926997591296836165539447039069994278895360702659311774478177297888171108363735900005765456649406356001927376974464540200502776916425803875679112478805777507812465080004105201824864909423056792978963531397088619175808230533364712044329042579800992797769625886879795059731578052460760055561025622964184123396783312481544565702225211293104561349782015496476352438507435316702158440900199570626603301063593321918458886613175614049670903621736280631490939970278851117636029945501433634975463785985073054437709439402505105593470082424037891460606431772088168779816578892078325298247916279216437064687685640176998299545270463585626969835078305655923278194871211378757331687683454398075337099402773432614509781420961839817933364285127408805615422256756682398491513410280024559382394363200959382588317147875524990260518390581341774638768387746328528801821597156098304436603966221456436391605598001900556172918254822465121360269256643285023862663973726735099122367242468120199262032223190430244224550135217907355017393243555616414523530448432845152506540309661084668485632706813000412942712074872413402353455142618368467047512249104807829190480577673769765762918194955042430873089570848802810056821864621809159046540854818539888098841693790554325779955845481127427183713955784445192501496224456895428007488223939387503060927253654703716707432106234822380156834383552531321373713781865837717172635131748331343278128812038406284258210606158679649129203809838766506221046727138911480568143258622783322948668396928126074537406433055666385581667615705065560551217569939021922386868620270598926426573968852443559630130606865093237575245225050844645589685267258949310512555074441611599565647575884528176643210386499404848665826080969173868885012920593758159010125737220503391571136400128128992493665623110581234111400132780364510718077095301633153009012213870972188486251236193612905986497283542994685058969698494768754248040173033553534134175957638980105580630205974429043859598368920204176347033818396001125862550939549053976694527936788824521832852448483562578853516530286369904661673008686412714323869105798382450410179787716085406479362641814867979977800650708297547754957593118830214057955673155113159351552348834994811555678000936470365844519743052282555201608070531848401960694804591137866860778628649842905662613611828180309437756677052107451718324242783138466820183816710475486102944678361401127345511250687397713459535780426668585744223524053672608011123474889349940770889504258590683820908094501881287174667088038455395822524613021112326244437279627414777420192561577352935422211846019865439046865129761685662720388062826575113126907286688826752398170622647978930753809298333373209123751793301650587616576702147255919582022041579480507545131409043188129257700618194100286458271506988723596025639670807498293245844930529257830605980673567149225332657967954644633733882457766796047581199251971221129728222966900586719878122082925905430308583342539646246904289717074028153484705962183304165029603400099602899093866033916192672709460591876203370186546437384634357471814855067688370712396803926145077565013996017122699959108964359346204985034524364513053145069320865447001698616942916737252433842182473470706149960648814760279898092896284357754248874146143095726775470263525946479463728923093048226772871120306331893180442122277631400887883344504520509528702134024892881012693030820685407980073287934082478736697305997289561203321744739508065420691165238876026892119126101174769375373630351887272742540187201846157666722021619739775838180626043673002122145634474806363946981029783712500403927659130527301488104958942488580055530305171150526936123853700592342614647994015754169923947127281651405534407428271048820376090883044197572109674570842115853082718312601740681265596342961645251562902366635534489912284678012850412225765485347396120454996017990390601099478930410903520082334472827957423241821170819997519913294155872287077915639065982764248990435531870845114621717233424882641336116779709380636849850382839802483856332489833250817509010693697617624652385797137041172151792907859800414178490460564573665429841793331732101992824151037318175694468537118367940712556394855265104113665150468341700813479678740150887659236155169216360332144366330924203068416628424733441297715873780192781320201658036411639444023602663408912799493790461843010936577295461317068582658478242647915208163251310132048538485520729180994230645062770056300855808872730384280846464089162936314581268589426305971145441615763024272095960179315139278547710419506136520359470309390509615287093266006526711133194290945047296843309486575550011160211191783560061061574414692801315249779134764465197324319102945783792767422482391651419785059507195693211077203549772159360431237081388051866130066151050727720378060822328062557918463747396209434637125419822164006394012703967849949336426680609261270573558479081996343197042272739764134524596786531638725903674125459326774023041477542712535435002909380556843599239260279597602055452773987219408157608482747829744961407025139737710127824151465252935978396810659407683551781507865955985229265179222345970443983261555223757883629419173065868214027027912184540807412006264880985671842309550726671145650958196332807990418120405345214512056629048850426328383032356030278391306683809449423942557406568897856771415477891299901413286330356079743238296357727407252994381462442293107183830912433656437265809709606892541366901759448876192160489507372665219804106752646524783930119062761184447664175989478997638655981980471824866207148645253381466421986294841478708076769958013394367354913276210235047277219840067844656689158219775744568210114394288047957329587849592064008822086788345158963422674524525186842900683774014183917250415106901166948980062315901149389556385399889206368533905245275322732506942871324192719839287290673768840255952251144843012711504885669873522582768822027838213469214573965233885896994734557919210828830907031114622814121963302979230841802314448841087351356082229617149095574122614306315122198848882649664714979479749205272743577250625745235191183388237550447425967620864051940717998907850516476736423082098732298341526222281567044078161664278786675176983142370787770624106118544519231935886675622598292934867867303661807104097933399766139686737332708146916625810517993886713560234684092575037112549710972733024704213656243949002732431507156519030207030594812697671128430675695121063006032023772882701076419070363071218931627643802178184077147885977281243290187065195875785623509775293544158542199104535749830827546469318308801348086966073801962819808598632919281122566248986944083523664341056785108741252751445509103240245798683913969290906203246696158150099381865833146089451991766902544875425404939713629858672619434195441664647908619728590350285435153611619301458894503707125758799408540848887224923233256754987074010300329463080446362825952760260365754841498236190456585665472291196287594497789661108828229221827972250638980302571509833615619745484681164225507734216203695324611411518638005290135166117604601975294690654724582940284287078428027963213948451423579201136580925377325006832271538775005105661382407234012298075957966257735918874855884044110113804153525489857545497677948779390761820982658851365392554009587514813945089311710586965988970652068943219506590373969288504596141661849012252458341228669251944288686691555776743994287607347669481953124709387787727909552220029841938611752646516634773932498043798491402860095585816588152291644250039766833898621143490889712470072331613485847425106251974004968141931602089147454660647653434678448406907860512923715303753989652512655544982164417273410050494726021475412934749924505350282679261255017346503849310511260004997849221929310134719437486785356145865565876161612889325870306435391393351926676461454248138064436396420456325071372168695378879543996623804408600238217497941761647930126093774169686564960211592232306015044763500249128872058021916972070371289015796602781700873933171147964044993321482080489774195914238353574354885938932255293016588357967426796027949107931808133152588070352671790461905490470179083478255513271248265546075699447369386550350260133921216158869699537460537792049386917173277431913642057131497305417847865543307063902729400831652700050906748615573963312037261309165226421870723981108437903706251903050540059385905109700347322521353633706108045118228695637567246962344407993196178009360986794644854165049964326993757160608929262386672762866754210400205781007897730111895012511021156251271389034731159986288227432004019874377262044751649931539666974386369305112391086940427764634535078238374640731489994871407275834789001086300024025973883151046864787916123337368036417846263994834593188291350921526798694756783985138851213796921636366301745598363213757389103325819391608944376034559951807705332183154826605243277060069016500365184151835247036289290428129755425151010784675144125679111262161465319163011387200015745199413569721482309464366925674781375186835675955736918008928847484342863004985622512337061163134951258215817977434582818384124256891511247214051766293715243555906058509980841274391871956481893858503294860012429138736671879318318399593933432359987680269848145591816762824004516564777104261193524005801497893913014870556845415664986551992530661170383716153963155134290553275945066749347533467285141382137530268167053117846454981971151520959788997867114568134490982921194599147187275650704192577443364588475737770838142552119661669318720934867116165026157674655242811095484261890921498974211268407041747750860882071297966415016192146269741809153800456268238429113378049024222919816218276532787393391885699846824614681341920716812144507930395406938924638218074237345831330853583148113478247425117163448806982925573516347234352554573033399610500482146420419339769115811177197544053182351808047806176751724758378191485390607255114249856661800466884244384795938798368986245914922228073424266246053325510911091315372562585702401171173811665272202720635921573514063962192578225292375057674791962746069464565804791869987269366028010518627128314519924747036441944122023432215486281986816188164101272118629587221889278483950798368157836427821732241089261577014637315004819000006859918637080462381933188615045172958294285267522446251100884243886070054616675266235096623831188841299827855641127995423796636780189981229699093516511394118788927237897916864447081014872971628874195553151630293269685868457136713112478362617314250006129976821061142716433176809366553747784097487514010346041676037755305085249791687633739612604231339920755646162411084010440869858225115954819235412103961201808298162812593945194606737603402295494259706535186690010767798512964764058521439455929160778477959085738471715545072075889363130933467853308366087598151034729746373433184659044150472294382283323744622357679506285084575688891386460695689474108574833273595165888491246660305196014175091774932073478498639833557790517526989894005799611106108982899911806588383504426548016711872499408603203758658935715563787677295266110981111578923789774936886904824860082626496967729341510398368104628397099990844564698786752576057671028890496717028016084878295894671130218001830934675955593817298909717081266518148222242138116911586111215336234230765790452544688992175024291538028208811068785205118765586603379926434983044542268531206892678269988370328384396166682347201984244114672923476824856319930003608070704246392488975920393285172912275615018914903581674512087264155829395199994411834439288936650429199327501175826322693725653288360641572503012250949027016857872450462926415165333786448281786660005719196251612753333946329044294894731920738326856120462526900058582155741157161605183102204276744433035930122940696733561513215120687546833797520222820094256358733716490268662297668990641488936504344043200468786002644106675839603017632657393145125967770379781983152971550585593667423493755239652839791981617677451996114347264648664706058040053903238807059649064310217627647953126688123661743991115794211433549382995444938764951617225587236970326126401125667738061139976337427231620295090820947474327216756976675207412845526408609240127664572666493242592841065937910391682900168563323674548240631334505602562112392943246608974019283403595249099870002942384000291509469513757458273417455366511270301522453007908442667009127111025982812669436654831663792932778652553166257392428300908238340757308187161411401395370242633370502290086076610226051208077169377425196193367081748036852255277733349510276938414297086097032952897962598050755129232076520269035618980869773142366716957737095626948177631835185312891703801298976289328198625128662822697753746696682588643095670043568045477454668414110915247213411389221013468096197124745085907605985770277494569553978840545980626003926792653055792113631790259899092695103024996982188221407931260489610265526000483816096298558811381574197340657918137622788765463938889509668747067519772799949089666999703049529337614546277962028673859806767256594136448853178613135913576629103407777209098081733125027377143753878112078963816879999745519467129452118682402709735522966530692223450196299193030590104345752413330640346312641361141629906768261001623683849351328972545155723475845479962233167477609994540535931874037795143625684926751096594627997227590504167042057640205300021661086272634627661190457406177420570487195965498031763546848586770199512268028520608672982472483470535699949204118671247194259388278495468385699017538360123096903136930171871348952418452356510857429449719976362036870017723646100932902687061390889963179265038181772295316667933443931805709266717676041009699427781875649711697155776138114080270903777366804696143010968018284657479604943364636400077160644906344915542335291709713950394724491713472293745884434979893641661056983071850951472820770498175560981719957890938770491766526060444387859661746053085329154955435961595463237248791172034105544354788480906825107391972020909695980729893987493428406974214290784812819601207276583048922551394012559568295467034328256179298601001135947926253624169458849923831237872019847944801820345834458451410429583753131782643927310025662699179595000441985808931368215232044424470405419335398311920233418466450499171600195628900591896577768543635754907445908292613122587980132115000848760939236844260346513091840897768668878475327853452641719679965967152353037611543465364651582983839615091586469180661460146058538786947152827065459951957644424324778952773588340604318864204406721761473686811945623627773666805783853927428729867377727400260676421217697974512199247301215420722082388006839701274060509508961043719474731447128519080843995617474870808652470559098062759228316429845363720717953558288493174244972033061398099699927127491196177195858243353825152337702984001828020142600280120334684582126019635229531700606169808341711325261435194036216181788344727712653931346875735095562711868326398810495633799390823878787602028840373162023574673959758095256523068392489823207513866881953989629445699930710020446332907480314247777514139524706259877507305651647297990361347386039593431705547310714353127544284706001517584109689503469695605937845506237172150573440387370533185822288551130963919326142986735882319259649587512405783277912525224756269558057434136109985589558110944035204709213871403179239632962521284986062528368667884318441194863847731779929886097346016871842703828590398748933400127995511663940228491266234387921108923785741929838319781231082387960264586979883351031953351246067746235070822094561638929599893660519226510004640396758551768615227723931997922645336924631024741734571590076071725839274420053862547996063164470837013762126060711671629809263197046485634123224680158301183426384407648047935452181067783926905702205524940629565533847338510465461651658643520905639938633570642655550215767068491069598424162177404139624441881565697064691688249355777470575890903523268193327984718479521668192745787554271754067557305076904190036699914297038866371608538969258666674435911690503511366640021094341662887113657884843316826521507888240973057073877342422812703995882589541838154066575010432873073207082810329879043313610575008917768489844841887758890323958008021572525480369719797797204837865682213500890353013414689086844293328128493878109517528682530778104725717116700253743962631942409940449573063615138957887005990238596727718399095562654827541517365623539361221063790715126208184394479777186465139185527701755395615034560538271958414213578670610768208050795269165369680377092664741528875390698641595977704108200891372593477426108915714921159521227249964609047362610618872340001192934070525384298891988975726005458959827074449245892715182726376255058375426786432715668257498533296880389922646479620312066089841995642981246369464256464118706251401494251751258114282944459401848439448668882300159819005000377747528674008247304992744924394799796146494918651485211698219510749192961089119230183414565212196028760192046822956463784809958709240195368647933657442723261976036446840814965891796294360060474387663540244598150540941942955713369091819244216694397056643619436742974584173562880850450181561115730409836236907967834822053296396347231212306566119991722521231809521309765997805205926885519740783422966929730107679065947263974818082667876080300741878039732130044537079420351747444092163672318887188780965217866526021035209471706295308384624982854284873752489438290496468978801056563803253957843475782503599902058188865564034752131640096373122527311383438332989299333602828412868018376323261901366566381241021393514893852734477662487314455335674594090910656563834876256366738198058384757161253776450908524641736044264353996390962188255725994288450401135713590008625491374545645149458248351032990113719371732239790397681338363059365618615118614398174699973406493243487596239328826958602279922199653091618779419324853156216214841385419047797814875659917754883670585617961121244387641127051121084047736487892496740940540789610860633693668381160009168814920443086183377244696099025604413269492568790112792731746319030672983670298348514850650882542720361983030904628882693206382094810543324687112497477012960504633881237290299544584619704877964822890019230589794301602022612410182457744950930188848297824069555117414297046259329070055126475127123380887019690540557726283769278116840404801096845780141535216776144984616910265811395279644870749872772311293664583119210158320846855149562700638383972416952563106856950150188532154150692526565419875083690567836456004931401660824910844818872922418936764929110498733347276695018513686233017247917585943844917608888362680417790362405582303140470574997678410797604284130572716870683109799135668984156534962569669773075950440868291982468824980741890940549847547733028446483237774121749207777350296796443161454978855905523750036395483235621271010599300640758317355626297593259535726267575922215966318001824161073157413945859262250869685001954438563682231301322418569526249339410157502559453601932446463979796932796367645894138052484934947491291191011524031487627054077675483388434940601210476710148858074149736250262795366073853662640276416723983887501541732423484900843797083000921954887424323254823952320696843371441619553212290253339548591605056413137188237086115403387130023770280901842928798894827909767519177815462082191256572113791517059184313305848341047528792497018750125102890498146813648538442430853057866364324133148929447553206048702996542490638060275699883628943630558762487951644985809189738492291596132012070764666998666023551001693489745754186259477144862426675096239584665527085874558747987093886263402573333459410834320620275636407502359602719818668993674904830257203603591160035451766272753506900068655790589932406176208551968131539139012975899809691791645417882376200102607295028287892400335049373746259693052834479632015313619517212723100686582545875967475221817003085085925721971013398913260039635200966896839529964437654191141732765004677600544136699676787324549533441711300572803564477670864864341232098320245414723266247634705085407803772598663339521993140286749680265160864121402642297109388266060159709049242393441135734454108134144313649841588847307694638594704621277504737803964224251371681268270921807228850242769975616179692193866454311631578172252725589291674529368196877055713641271916684562884432044008060187231275632546354297927817763745026696353321680562341804350311331487283581685497829269986733580734148130315593547183820028285647725832778055713006798322096201634331759427602948695082968527013687700729142056333002824490162922706601269612170558871246102048411348328102207439984430765173975217073772944831202289066264396054937885754477420644381666160787021841500548818166060094409634381152676901458574434784562110888991166160739118452442629994935812959063903335184867021803667381221272747448301425757456824300274367767596162667778566987356888258295564930147496920516029836015996557217945621186648894333938892456849523749514808046696298481077405585744515766076717274658785359804777693240178912574154744983101489765908294903824730785820147053262242088301954072882076790608113674928334000715604922278618007878045475221739892833760832387325642955935801391459075793183222278048256735298359328970919401334657414680787384957681732580627253094338299045217591391359270685679628813122295669209380897520153098942135871880105182842157829535961402674065407204013664754368324314814176649198101913998231430522709062963806365115096780484019073079871938280310677350716840098027521815062865465436647435114371648685598537579847332046960938588767748065404878542573664145803037183419757619975141715685824983698423612257306317266280933646891878842382796617540731500981186243041083171086322069160081814607100314215618980150774103444575109159961343740997061255772999871637947624672743902571159579585451743796900239829619729071730685640197598217023662544354027734558833972645210637179463968929512182581344410429116488869671653787393071083260330710201651015712070892430048026938790735439547984074241126828665325347013918376216428766463356791431860720369813007703658332350348384249158733411935764038776364637369778440517512515406281838162765801845613241429894351391712774497419567351425871295990711607797269407720234085165332372565713890261764373335660492047844817859827674214785448753785587113872372154588677616347077871665183877687392011994824726633899888708798302961604408818611997766099254913713954743966225269876245248255744181978158743795817545360530779685044312845536556672012968294881215058409164607433650330564492735951074557968892043767354330619346171258710730125021006859240093074057546338929121037161177642646987708496381458261360635701766807880016973148572567371104648116627541666235238116190760357553187630505652916823163206298064565289921119293714366877448980955584842868714114324149388376553366088097942245956435620998477439836340242720797975598891297977157479192271016847030054642510279121002558148018492064850004595273926701347821279826394510439529107151363822826335620498807641133235025686102485564500108515478542742903671166507312935787302952663431636207558532098911611908969981210035661056027766858091005076146162180224896703795535941148176060521056827615131561605797752670445271642538044651328259775086613859856523967336726470765822034097658382380400629151762541955687105048579214225018198141660472632388648859767041219699367274538260164207105565501755029904155603601865500031189689434578188387969235575145429140906179814435819258093992537886908667239794389982636010532126589905542691568187977893759529632832761138351652086594880490391002798164120769352386087393888092519274439733855986856540256990738246969253733000466950268045321664095440184336792035494887594524091116798388956025181726046624573259414782633603407051639157879467497084385919969246985719052948710955911754744639500654185759840599006190319918274054257529849089834364971127948458686959029962911670074419702091044680185914236735885288806758307388475055948466326734767591315437790909533856888065642629167419210258397496618522038312354424113407631402917752903106258443189951188782541659680769434144359221511196391063372174826192706504915638425357439629943690156774111979987005115068342214097749265023688968017497883545429241610633477149321447332830092765432689065897031385190418565399529925095724785903600736549415271936941314055765557027286025101110714542785704630572021342911617053463150470544471788920065839419152528671725387565408335789909320320427474420033547582003037659950049137036844191429302351771249754664557992511680056931689882513926515360160757482656418000533224166999875765829372945418541955137514770659995511804193120389100935996794227945380624311678597926193186098734477236010729840783754347554321823135074013741067262479478949483129976909128913364054008827568554834545968404241629216403519045699133526157161069820618061317929793216160923508730514452715978937642511824786126010599769707823536507001044105407509321331302560484037772187539689899949995550399911010722300474267921037735377313640785569184937457794636666741833070738890067082670899617574430407347968121981848404030779214964055619533885852772567522494772089231999136978387534597364325843609453121955712386108779161075666125367971001017546128697644382831766618652779831637458163802138070759779735075658327018310726031129696093067029523060500437270906261836728092342053244832453915486830489781309255871808185600883898525148132206403773568561653753223382683072732049504156320763623949014029458791932376987389153645918830485956317621595331599170448159590428308044030697301958123863849855687765177421278035985255482419994016028097074956117997256540395566111461778287510744674065391739825753650306523793679086595353204892379476776336626369134628717429081597874674571571173487386860096853686556992696182807565452135907666850115786777768891215839499275291250038480612015830091064178777075655127405011113630013797885841993857618908169082930193946827466600972421224705981483520988216028067540550790514353428784541519104017497185077145872486800740330969461661071350021391557590919387460593420394158844613566702578800353640345979052503539103695017943486081031077140534282379720794440645238535968609304792492610009642004795956999820279126309477440586867228020213731280689858977065633259443221809692032575654062414139449788939350847568723271176401890644903387960632610148825738389667796720715908551127239951536563799781121007061693641759593744217336785386742389122088677162247227595921359100499056653767716227228207706374893847246500795619392055290389906126429735098544864120575954009689532877639640910220190186345192631451987183135773470624124713618234047534993074580066102319041674165963608987229294607965568084092436789508776229993519916627721709174929063153653993744568746210221384018418571928924759975389718475894381517752025410156403593902906562780904180653648389132166405852075687078780578436848840408531059400175936971839650244577242980369361362969786126921817105889882384502939016897824532626738447790250750119167086147925295115128698225864338172048959846077903683512677262521499053381912581683535086153859390938633052959978997446832117567354743391651917960387919021868777268626316184802120054720877242042610608585584853042128128234464282938710861450272595187977611316857043084923981777966839576875636453137313361117981981618573627841105583992476773305346405425482363336071963010880111674513830933980152141315962674212857085035471451905570052186306642899080522760333270775327142525182097496878030651213441771399281974693755573990776893428155283114244676771774095871095378498193899772517884359857738645805659493786762171724789408101214671479469891936716376967987842592184006437644949374236212996079168373473758669448374529698937947952178370756104254795065654094663253912456970121550493592149665908410489485840405821555755297235920295078492970110954941749983898050336219872124167103034495418930856445170495069966744066656190870866294678870993800718991010200248476470270489977458541688912074306728631848701921569856316814289755250277005898826395522118020088978788052382758790282450465056055250238316349229580255482642487164130615585241833650619275825848343350951660790467036509943982303837067012952902492423332246860015838286082762144279375173485890702292908666796948122042463166838013674538932904256340460795056279425093277911494602487230337915346379214003725123414346939012590101033531760071591805946899701477778803891098435831733603652774495881049328421459955341038080152574907374454861518352674235232894973118794825376900549540212926841585410424612560003178585341450311030777468220512693381360599364606812996144146529839476431795915616981345039669374610805664078262938072457318050363281124516649131293609421425723336435395854366489142466292016304950422028595174704589183063338870939892398818380477543412958170286788857807245175623504882548771911499761285694660334536254075055410362995334786831204518572109259494775522959625316141351383499015390120324110392185950497859111272803894033144849479532449376427650870424492236394173355579300899052440081080909397163600357060891873738720552907565030369336334647229714664439064135782608002689523760322834157253322298528639062524920011353755041474706672800070471163620081021480396782267160774514176526873736080789690966068065198494249215329184353590753686014128878453558421165373377389682395299174528537665063648289138135389286322698611130975065342612133501018931013945694043864903661408176019164176503391283808937817783484205876031067770742922929182477452693218125015080880538702703219006500991072783329334492669787612539152682934128687264987185819728029964892730356507875933216955154256961152988386032425665778121527159324066422913670417713679603759264106577303503874155504742187196316145485889067304365904555163512940436007765290216948967593271684643665110129631284380528874612509755355066549001089920918213443328668056955647357351528201754243920985220334097629159056558034315840105147021516115936146554544241120342008221229381691842110136511722730673743035342073755385425170291866601390008785060939693189902145591217828804547109335603450411085147188916268049300438693637804325977729009255667418524834635993342012061461077264016171921621955507010287298084353117206926138814039703413466100450878123091827932995394307453917489304806800062495959559437184357436550726763550728861940132362216561396329262212692658807684701457430468281533304475765317245400430413441792876753222633843483365006522017258981522289618246294129273176465842508922989696129948713115964519338103199175888613894587614023276550970031040811812003595681789182836259599226308382242127743962775699129754156394793441283584085884717963816844968951603620081132149966570350207398115943051592777543125267355532130347245111410522564887240898058796576749866852700631593021787692252785101130633043392356542654750628360768608712209911850831935538756416498537333294961631515250506258627034967294307926863647537385125682959321044123196584279800929586031734648465710435429089708853029845696562454089273656113813981903774804256220115735200412117872204054200150680568775372671526853218391481985890778831649789956939573903020981794562080382423150295287401198792562298498789682309429290222311882055572886701153780994430742839173179088885036264082344206932064895723327609836139693928475375005123898824007576872605929109664483734038919756942265226135687942007718844380008706690889487227663014439293652466671500465296276599931341832632679725722623442012927591049512006349705040353717742206308165222346211440303323920221978323503339890615686580394304334398818914345198209680059040393797027416734077431274585486699190748600685902704596421203777137652410173972117416832469205884636143411035936510384781844311504255370899653871913618458558572809912728769996555870613646178253967043347625584588894845244649400885485735679494345421643688411431331895635312255684776105103927434701884570971903942989176797168286652135711960502831659310804260748578807434287634936965629554617431084028224155886657551655058577311215261785028818528287215465686407108439333661000567145319335332892835164496709681961607148183126028848969836395555992617095153771021948183894734050597594755245121404714430126856763489644771564936916499020461119996613226938625881159052172938485063217899965372747950945313064601223168099809325511130283798871543319700559835830847843763439302516811625211157401110337476680539206670099930464869917428084794726175645958012396308221527565555477619058673587978631043909467689904423809801995296531566784640935059042831550297659201384504540001113344573258390138300620369408589285830819668885803222744006162237539615145744206861703140086554990848718005245539148560949973928068114949338433839932350977216265883164940560343948521544292408214125497726927849101800798509028139420196764707734090474398414239396633487568354512908076358304088192928770962030512495213809528046483444716314918470870055342632521033462325162645530941335811358137347063110152284177223954153540410667473091701295011108885393616471972016286922987404001695582334479202418108988986926483087183645363543364235799826023933161023265587158974506717629144659995997590906819695099690632367402117067688466647165891599326112432605607420134820916894771787293187496932433530693289831183403060544029288732564404882336556539858382663571537663493236936791060269424066423173827157145014705596625698392325311624091922852184731339128330539617815430782176561424171874291806739052760584101902005743724330210553761113581249237035305875308093733523501991675786532069313844434003602320785105449935234351554734627173946383206594804563758607908162408121130417431148780620453210579456899494427805303561408976432587720544886587002127168727788131851171818214779390973923114010774400468144326304797714359060915740089863770648705981876550269776776661941301563416173526266206493502867082509767417763283943922236827630416365500375884819843666527485066128797685137521864449811980125267805394089190451218706820166698239068821105691296820129005049902261121866476032110236019523224991645185919283568841622683090337874199716451828555297090081689494321054714561876127623601532074256435620632903280182133627649939986273738326620894315840394316754720523300666266630091999783445300799500221837341284997964034090241114923234903532127020111441411460556976612376082998692327793259278530646578626626069087843763980447756129814133386642210743572202170392895169493700524141441242818867538028979959196028580576092171868542189897935487876682336186171620281199673936926789077863386609721002119556904872034307057721183055285799928247512007683731264558008361815541430545728863782090946897488497344362936451662079464379040855273435167667315035082910965475819670596627602742639431719564261439393229971107964169053484232576370953246495942013302408560525772739559471122795088854432105082923478197666137352205202384166103954606363934905832095390985222078300096582247762834769110871634617219824682649903225785613749731802622204782161876769003675604502245279004705415590565719166963257130432750910384716332016038278042478154718243984447101402266759224668850847658311524686254468227368590794529003144113548985034727554979426325555717124860244372762054470693471121836948514134232829484334785366308039048242038458525585517302129086053161490270170972745639794307582699403183040317463129060187775174494189734462051144293376239871898347545698960825566247290065166984729391945184486744123786581580945257974683364421183200639590757112146696185227612102681544618259368165857403586667367720653139891549222356104084176110035128396151787832684366608963761356308830294854910961310350674816125817471300528058333897842032390023776424703717943804661796370625787502536378253749455753132780358777292234170692157010294659325918637743287733443031595393147770552524183050807371360543722424198779010678030250106048979431638631957133939376071411726263865423021858818209594523312404138427939793508016735814989938501704860025798354822073347261755586550662395819518864444187818816193769808325518215223269007356815806355396593873269020632402481568375582733412312789730919071910792231468328741526451524056505303369947414391304777751803563742853686398392737146956138599941829772248741602128487669576674022318506906882970544556914992301426786871080519827540213784741660379258788654653615768700343975255915236025784980333247426453272758501154755693176755686977185042733284495674071504723720027939403801557485411967229724584968063344560357099132441655758313876835649950106241947458364390465950050822017603465374600148198665186960654916731877041576968015598815651888410951921748406062975990536286422320331386060323843678327528762890606289442670705802679364560620032502809853710592605306174842082811759272531505486076816590545153046163609566440202383569625747440190140430975727673123761239678262561859281587563696638018117207056437904702569297238611743859170491844575364336487745347991539042785570901457178456343274560131348566274503217242483863303559551377387309426139748274144401912325497686663986397048736423602209168132306152796390934564467779288938054396461045456613037451735511810288995208329625716039363852488401080584911166355096449269629706979769776828707229521257389545075094317551652872791080342647760888925718117558770368197427538736454434195572594069289889941402786004309670949437655810114112302979420553875810617212064012941952869453346436834913760726497313795164752842507856868796746260377505368067913536541515567369274578302907104041793368970403504600049004171494276426320353274674885913714695428581690359976053498224429259446467139458410479238403775889703140697860252166054391598518274740049662305618294683676875710870478949846380182084070457977165579038255008801992002438843826926611287308480896479650360336944348072375545940400124962886697111496289427041512028998817851358375780610552356879879865414359643728638143832225316480640925305546974471852281112375911695393434200449001429671836606387213159136843477448089401385829730866199562317945642842739647837113260759865938951526280674171842865425241857887030227423118355733092040888515227532412517901800954350411919009019019441630719138534315143063665894719064065926547792013808661774289855820380852550292090371565883260739700148007161760649894175396064793953115644065553995581353069380360103624467090312329061290168036430925720880565492266497554632604138141075305661400389696277182507677082095441650326296794523234745441803016704681654291765516854927608473678908895414027677942152620241688416655723503696807960441979310845385359826693933302545468646297544334865684334759849247861143458462991737632540836621664245016472110742709095403818688431366381772071559353009923125049061440065379603796716403726644261023201090862038955531593391066362898145856081678386839567251222826711321220804517189983024477277623471264454637516720520932469370173124266403016115229261918292213321674252792126452657635889393106614464808317733464345867303912327798457787713626917667807045094185833104957886687652552356730217474010412990423394728561963316491181597096504595292310874026271485345239714006189893152172592324979440723233468735938952990426938177562074201378980216097644400153730387550051644304718696109389807297229701390001161274704613951609359549278517470977088651585667499714506916609435899925191025807455648243143986630153232970357317098111931823610386078469646089739507568530147449342914515648323817771723164325976559837908346573777982122259217853180360340881646948787253403982469083894218333967899853056609363677310047400094735461777569334719338926924312144296398208151815167340865465751312707574645947384965321724874418286783911177791464961697471404317857729205644867549286526721308188733083777579279130357906444747858684893954097449831754593088825228018229539251529459331150250753828741047633531258443944705806658105418829309597400866183010141280119913827836121805415064272245380639915502455769527879438941654360895917599503864677353697740914217892755168669778253250885576344503587878203739258498267334287383688162414798818398247405993395463218753639334756903481730499124420558703719289340813387375782266029778714754129276573337750943387198248294602207746519658562768096938645382570560787974843209579812474958397104231950043528456157226536485396268314628976799355395872067996625150017141012350547394209803475710236968989964128991245208352917842925627807139441088637798038113763800180122120156894297566760212562561634306773772156330554982236517253771778018097075860456068685591233309664514635971485149167425205632449219403960224458456388961484438306484788720198233256614383885589766391132642936911647269989881666838023983879102705415464259480279276253900949963930101027546421643418112567110986793308791093992649197160433116450638720108477127038067747347936899383582421521863793192342987074086133450254480213826553959162743177742278403654329389583281256812585195412605730720074407734756834171535646668037518147133705991282854479820978808071819899522692750605018737504756178940092442173585708265634137218718479854752433905910143948280498574743897149374980294903856542203810800197120883499750769798103146806616125372640411360260667062926598706875675514479156086757816744216120498332058665450246866345882244046542627800092387350368434704059282837843086105362702356781614899412792791924272866801749343165365654300346319715762131576405379395433656507563715357478928086130255567486871013610103901849295957498338935122223169916457236544918567467098949298250176865675374161637391557444052125233215153422199758481911567340810490865161296936727748183313027491636105714942822839465878621441248563912876773806153672633774473321869982934194363760041529433997669715323211925423034266637222555974496553327720365725915696068031814297621999158269544221736152342049442585159949784725170340371957125399277961090300906285653356548694648456209814091831903279455565478649296032662058940788247982413950460377443600602664628359385126306639350719086578442558148078130893001707514574722866925040090322105873411188604364365599999283694644848240965847504864744672043840128067945597630433457714977667179403664757411654141097919248377420291018974944684894461493691870927741757612742285102595042105766491496044964806157462478567213933733444112026542147550293885517156851719669372465234143142460038426608847101234294315352987482776793883230463121034560522505365579997154940732172994130207939462825968192788443627941151504003578116160128007245496739870132501081965254282909257973021374686699533197515870959847486846333516794591531642683994078196629157930864780507978946567133003704001789476450468873388314021378289675902544471059544020676787676125318262954279346866400556461105590900197704801611846993880211591851224610147002882494143964222860200930616362472396547672251862241557872722487383996217589017986172121729284614664607923392329934527359563213154580341354637178219523681864567472343483382123894369955452318935386885831091344451543977081911038717361156787947409105410363261939615992602333672803516763153643810398196940556762304330568514331796578200542467699994606052984669676739116306928336951472333778795565358442006129614917531136844153101631419312460071849839219622143047537933050621658318837260690621624244124678486835837631316659243003992148529614989023311502768888957634069597229202764863418813793929996270741026174215815756550757209543727653629050110470114616832654953703240754187094589265595939042420837387545516497295749354602443640480243948413689678976086101128328582668029258797507619416601876413414318170784403643226847644303170604148838317692946425486692368216217079010791042599505028883425722394119450830750791695991295697037977236660053343602052434300318728148598179108337306597749772227215718787347622159334437319510453277438808270515720463641035995805320536743821248847740847414921346903643699289074553835970631913067534574073075412173695433164184336183128634530825063028497328634338556272996391014207713385263581351109275654680787512717141774984644308185694647829121801866449211216226560475714562358095564261716135348814038443401446801443152721064516544709959853901330972284219037772913782590592185936635764569007623567278769845266747453137061107903824807849432575562751801478503532164872634682379289647424486904194544957169723858497054654912336762067717821683306873514935908988603412965390302499021723319277932049713514782734022988003930953769031851756633198566655493104419417096881817143770782336363408031758358337785087977215409301052915995634668896966345467209329829973987878460449445204459341934399694384600902243099360001555956384784766725177187715690794371140570617269671162642116636710487251086234314575860153411463675195221370551774541724634995593139128624877529801685713710590500534097774505206908338734160363511666012985953100265421975544974355061044832026443889007372272371863831320935603010408566777881405029167697750680415863613407433751822265876321579583868093088370945690065939747144289017226322576891814941989303645714408757272971584966844456427957338432204415235921158031966715755057050195079586360618346833511051153488878523898878712916512206909505491795430531924440852907384991214142145805586069161886573405696801483313484080586393832256260823935751010939099091150588418488473652275012827449117162313628730944486327782817347608452107800972286832555832243119198749313004523869174772073729007676292167003159374403589872892007614588959464408857386656923005991733757531931344169598489835829795712053550322590450902356834886232873898050852901187940248228731000854072260205820686136585431898207356309351006148638994671141269287042787986793897343144485143723138186375128309569160681706773567907264174718803332691205111920142578167690462352512761733818070187106295488300971458096966065688959719374272766168794595239264970114893772634750560455654716113332975440578361829118229498163847331667834923997499983169885548445780081150056611726004638105592263662961528548821426246346705035748498412567619767367142816929846364705969644111040320230062693659909180975752061046001616384667106697038221588862285587235957759486067060306339047912942331318008544212932979033049522425589578830937876882953254123393400081291206711991904379748027034052888957739786505855015986909688217644572370487809420237738701583491635091089407767779163273274959306097935764369901221338429675940656868694001666718674210515533316329980309427454148640192097076786530073011320644731290652946253123745013901933409845907859724688960670620845041852589651325408076840230285646743508274785828278728281480423084392552380244003686068219467052229553883238558483241274829409727292814026089660593732249375706855873577858097309636375654477929496049984816947903103035765539949212234745593802081493691605535556734046702316340048065124827035999912675143703665389188379643905357812127421919384537722985436663652348120134357884682734506137067109189937983318485174313585764500148168355110880966430724235624979792658846201726304651924385054454204537005252805951732024924971959767390718553303604533408247465918978116898629449402840321244114994840198855728997863346237188654142003895692295773772974643190894692781200136890015431030828256080253837836934784684338760515261271823411743565207653805549184968116811597149292184943105677011847929980986973570805404446085239444898237353990309575746745337270899923701840678884471232087859310904133165894629833526167076070243088345232533672519680145555025943347209646753013060187977683288965221276399546072348427921803932433988009063838493234289933265952054857933281195135957268775469300562945173817371538969721436627496973974838979177714873764350812533224536687951692301055528052236875529843372749161158096593909415886206405955747269492952317393922470372578396389399210696361639211657692058346420040249209445946620672686189689433829406699931637584057440324303175966115884161310399295962935677724626687523094994012044133565725329542966110845410134092725209177476617655616917017144405918297435881939135417594236185323562919736783948661686474009731080273009004426176749250056411607857438899339027180405084644503953308531650128838762081788319370926132183499049736812195553351930887722463941282100168525662001824875881939753087061243849325853359347685371273236248744578764497286440120162549254281800660604507222343724949254135921861921287093414448106820800429557329956539631594179955427854684885507689821089603577403458901909728674917957907650537864578967892861193969828860485182441365722733955127438763600956230045914646543894258900249200474752512480820937146318180052912008261762783686648324726623523527217505793950425789858440896068484565804035859900801314692047660267259051288567467920642719714177459511624019416146987341469317817399236298719082700512401910497836204482157481228974249237486169272147513168586395333895789779981404316790793935481398399407101804421798266157171357240210030780295221783091538052807792722168326645312978882213781350951208632018977131487844307272705078196889957488333294736789781870640518389767204234657862506905586686898924176418196725503499980240401367683532448662720643777986246635901465776136979245340291102399315051740628557757899483768175051401283090870371334413057364797084491237985220353817817164287134969941409769655662708432437563415780552124720385647604943447696126990055455074624061758429748587406940168595725235365069049331396685140333202901364491673412391835196424203121255835210282451323181298580227304356185247357480347072372015578402986744902723590811049395628937025457757014879471369570752914740941790710168620828975197910940358923670594633936439815615173255938240022422441852924646286575396016216402269213841671007995133606718957642143190712092454085985237165349119151139251292561136957666202676709976421142296100288220685490489798020435504679543934212492408872888363390220903046104143610392275672132299279451044486286914877065428476977748692196346284392908534705893309665345276985648534143875205866799114589453491126504187669101946677175772675242642760323684957398152023261734969793845240738524403234126003697654876966474954567120967518757579233058429770740666465473932859121958462644232311344810819795624435786181576463655686879425237244850546244404504791552660602764762441719220249268128899042893494379739018001536543008795609897769463004575778361423240209552435976778642230464181698950714002146255598549608948908997941939759194923196913593349614433185326602925225978670879714943467727115803425653624582598913675899979689670791382626888172065650497727156556708001284367092958843063815400394242481138216412892169417905102556764054022921356964134717788056468245941831384017496478279340550717196328766463968474297235932349953289748170733987219189235545857068827188874158444839128591174134214411266853450126573916067890510707170785516862948326839735251422268213760051213541975397012800010535911131388477967806520151337870977953257847089068766059800995317982321578709118529071709792835261103240887085660602030421862521424904703312061358556585976672661177419511881429740791330388254306377878625194770938854182139110176025289706612524111264305847366126825808313516929992498856236290943899567516545959067891694721362426165220935580293546777455168089533853032484185016581665708729214355927407869859531869286653145292515950999775456564765382031203108899910793260388312874940299017920598857467466031083249347938690119585552126891037070001376270057475872920999071289331623290859583951446852868772053111676279972433209731856538423276339115808778652961388740346509986931305827185842925628253753378169535834932530608206555141038861418152566662014173533544459557974081616922458494664010908619618776225059364264136717077451608531186594137567283126372787494223818299777564352295950369536439286710818546531135383804495857608083327297083301451932322719964679713055174776740521737805312610028681770544878375769809539136015934007317193766296894899484395572776794207850524276716966991048381028435479674916366712300945714716754647676239306803983708929876801528351698610165035624561559578357701634648483056795156865850479736166492365509611683285263531873515030735787842825986320172651472957366219995765296882678399050632129687304226872132493081009841887240395254869742404597807755786828966527574593950006533091539151769978466678082300460367583229312984884201312065299388418321759617862549270037972638370904340474471491339906824902975421013121951760880712650101116605833902320282646137588005204463265842243634866356359833308325629493609960076566142195641408135526786174764688771122880513042211544140105833894525704346045409298929399875615405647261141498879421692310613215547927098993220109611228666046344742364810170243695438899756888510960754280941322122941522958439456929326273978769251906262453072159620934430789381951444996931958839704091847699956477213344807664265251049304159353517372714285158389263204531330934390234214928968216012313028492631134247496050265995323196578467418720703295611783399218778849526366016939070391752455589587426692799460622981545794409082999393843205756761384099619317176541683459612297829063243443712964831265232451954764067228696771061252614876768919726586450413481195706613026120576569105945030050876305125697452201570531202539468644657632152446928971947292855333339404436529505886800331186800379170928309263543445964055428161847826679559721859327912861950070948253222571188250608464778295283716200716082593381472972088649251537206870068680764233891365172653313912357851002596086917436993681043685392327519268239686313285978949905034550498962686984209279689726106620788762647749879591085452095943856217286671238805647128983319856361335315311156253010646437295154250169592276637887872614139036270196763183875213085876456199074856760324864449248347222830279958898062899706351632300189126992848766864611435939379364652173849520241599870420694713693590339020339792523873419324852824622665074973406515897494105116215201062463329716038454932561299248009258744253737355633838895223794534997861706438336769380620495245239048413547013361664627821081374220080294287785989991748368790948720325139116290405006572527759909153975392882854556917473136721200398148630341454924747313257284224183738839735488143846699856501091831296284499584201548990395348586997887000915684508962169635024448070259981017488966372370414151147447485728537930160533201206907517104620055838146464443751535141666376283087416490629284614331272972502151709816757867568905009111513154534232408206960902048126610474622059827907255173510893371129450822948902249906748358470575285896414770989952903084074137670520437946639886232868758308687840733244305814507410865940115796804338149322122800667743716767768266070237941337612290745042846870448683596789054239788608898182253858284912415274240402652124542719653276297764752014125854778368120363160194155559997679812965381633779159947563911353608453952424118715277728515917511009956770867498472651725959638314787871878828883320153074389816142431788803475181685347997341140773833493079527501040657537103057493999411105098889603255107347674755352620929027007247602828401139119263599722058124903003305241165070686440349443118654696380162365865400515381009280339872249723430888177388399086131897767828257033805585399901828725092204914645617706756895394230912607165503921957731487745830256657726940435155504684080009384228974796476240185177369188373045060676051601199076799928480652783735845466530326562952792774891920913947640847919595418404891192104239185953907914668856520121575445897980779524437426762950789708014175250221852014052957407217865965437447919905579919930027526925358662816991935293413721683131643978769409331875607421847926369011061700307583505181439989649114424569741713356947877071102953375738762580979350809756641685596220712829135146205213726445800751630435603914439535562202855758812123280888683057849946603936746173903112251307211178122923516056202991905975144755144422119252036130203522052971985511270074378592705726329663037769884164726726167686463178107342615964979136752131642056454339508113149523205468880913652485615462626505349832120390122659811361121964814939564736127716714714777718578765707763426689047100016185447052780758430834755900624841868981420960820764299196159295734836268466922928658868591141563610996925739212755369063356244750742762725046459006423336790542709391461642620735785303171603937923668312507867109844285751455786797298705209345673789567523901572223875445906933905040343130034299257919294791066727270627604486937401669055793486867221987670235866933742754313267382499435461785446627229099570084469853715617243105240456584311913058367873292178087013219139981316701897703247205623684867594169720957427972548002057573094326988331983200094037266929007918838176928786713856761218618426314437869477709152563712824002846366097087735016539368422230778337959547741036217105353859877753815075932506260900708988342885846374772117378349660202307591241738133577291736960841551603870295149247050190915461067550930761659491177352738299436707613228811712703745201307612311853449453777652131216651594075078368358703978566247681908539006760700019002712871953399699300556091963960629092892077817875081967018295745097054813812834985579313925870342108952788644092569392022554825643971819213102157407396241522591138136127036438513577982698764884051740223830980695662201183928091244883560741567190618387150320690926186647704793008987679436283316331121354485206893058177490825544331442889371540564888583359506749002645224721781034525558214578245000460692751569233609206976830464466603549000714627700663863785808949135199852403827453509046338134734426911722810121444107742586900876369047128026538604079975418295400883126810304800119899148155365464295453704637822364904673152284709398764573226368190814632380629891795110772359651888601851955913856194254949523526849936527398191959366755663165113183675393411404160688478398939369995636366129412397778637855590167919245887170598388273352213640581362261578596473146853136734271392638956205389223277458832748348768619207528354623999969013942124770522608583781009774493245214751946292727150348575730006327289438456392682578549614374111306580605263750281204306162552862097148889586906911682015501425635966193271933770406231746465514332027684224635309127478074337482118474769613306125075054592764419961992170901049992797262583941429318029175864001400070789195647874712575765167249890263201676086578507746048065248127781160475074866167505023915656305606418031299064211259874993500735687968087427689253842500116165267397599258811192194941808399026537663766787661424922784924389878242759879254536777049699044922540607874287847526986296912256176714853052532240436447608259459029809792701044924451411769781960825592810677780204674538700425387679472536563047805431355353788061886771285678846364734265107507271837767889320685289925001606428184517869657118238041527848670483926804732418553609421816450440393228115686931433780341423967105438732361696156669930825644480693050441975555682037664033909319176052574653419732704701599557844063303229620606127791498382831337218559680870786409186367030142218974994838213971523339267270465620655505834462462286940882977582877251830579214366304469937867580813796735808899933151964397285829830547474600430113300573015857214850199626150106222309330049186775111726703557082362609303109946281363908654708998201057293106718109181946423406277694909413216263289542096603383887305009608629265079561755982885220392485110807238075973230283772332347725194526298170412155521830414051288648629976663706488364102433285543403550842146982496222874890472210193775710474012874903703615910606106735072831595224556874894899270026512209588086926911690998730758385774424390018344817033525061189280874161048470115987824887876795634485271194821199695302489044342997495038917746126962390765490302054115574545200726293216188687612263284176732918315198560192530604127803038590146967512591663923890661168490927623190706273450403663377660476876499235392342182881383850083220312390154789031011711152315630931903716600779047975704413543589039783010784846031332330732305674952099071773363677940447795207590361469896897565276661505098176208750452462882994496811245881880297018518721958543309419075175255109853268945840346529334760167513823818006722464659419015240432310219289790484997665510687515217869037228390866132074622673695471206477116629863826082687863191784240006623210390375598205089775157067972253115790655604301229050525759044288714252417976335023846785387345873401418509190242199982715497123159488952389611476153522609700043623088486091817156197072608279552905153407084194698268194490433073238452645667494016996353083915334957007844076338361340077023427017957254278089710716187150537084857010458633233736809112445117888011157684638205718474511538635453378474208090638634752753127286938964290993797197245893682077879231892620223243011630690370990139459649919951351730035595308678274490372790851695960375222840825177360510496192680594957330300780103093634284712960672372970228697737007362194609494897487538730296037181624637087374949226172644176969799056457612320853588679342494407733522105033479551102916256773174653607495663284071696095683988629676070079195557735096377970970004669842890399951741146510078393458072375928751294079664999801181194353137186819160903554034346329213966829776255782049158305435259910148835641150249456862463606259352003712218238739009467886145433151282978813126161292979305639918172897147625051808480037102878762519140231624725446091500791649122506064666500236863394974844660874099123145943657981057673897347958680060402498916272508255869579579273139021215121133346850118204224924567380619331254128652972586379518332112969337712595146115491301094009814232360823090227755506794416950555633915982312047874195750802101164824801080901268843444404073300516542135492810584323133387561807659405256851292769378819363529118875163804179634221905415548702292740841683865264535193115955786752101967859240942035747062640648309476375999516564510271557580461647732249477605935165283742963839831123620929871484460619393011348902623010661460972932159465307886055795819063637434357100307246116353333360171356406140925820719190336773772295030087101099831907425984380064573968048735717967757072609544950709616347842832819877376524276445925798455455844122868909258609855093492556481184746102621061153226662866706498931058151933642265548269580290971893116578519010333885900255784581940341643494707078332257407904616352116830567801500111984399589282284807664229722827171607508623591917942469986828235731754977734018930393147817700611756885083179920349164498707677309447055980455181158456551987249933962330342542096559627082533615164437150901404696164876706048813520594214122036861220648196532034360174767309566759929574429997085656745783164855607318471227319809435688430593336292527525332308954473531720265819234857122151973825143871288536183207212568381294700492758100694759514021690533397125194858673855171493801734403440308318384471980762968380046442663667529890217473482256741999174303005528500105404358898932252705438212729270514879653898882551642939819045895082241633210660752639989084661148960394919859443084831777742357967830296639895194001542994569113589690455450428152469022193176099195802046177273863948647139204317030611617810908532660727179029699481352569056666230608787259558143275091645354715089707636666296364482362998260740640646493091586417527708836791864631691949177489939858036325419702334905128979027614861196782695221279711926299878839300416641668988190602991690164371061537093168551422608411304544388358912818233799150946133167039155782475110702876942443213692522352318928088555474376686839941547042758274390474741470217620033855446854720690647489886109739424655796865124014562238407801662045976899381309534833379108419348387468617679158774626090289922103427482099165435301442648262518182844679056058984672868338145575277398766722557118940243946690620894974189118036959163452273434927992862825955107384387669124161706650308561403802492884645393642186844955272270857995224101560008946289321690250547962354377962867638073957275320237597060207648453502864874281947607703802505768304620282505945752081213002210324969480426111676325338625264932605292136318395297881530988235348876818477623944817741316373874188654553480613440115066624046401153131321490614388455637190823906156369904757931279745858928929917524403698703164115244002321208899739125115819123800881122876267000764778482914999745587739727829917873576388183095975281196103834642959986311865021928979754632712360971801888007673471438474146766555147794718213708538743980277887481222245426823647114993507854909162863819112172971271351572427372192872159067665169595598107496151466292508015050437126603568153165523373434670582353043975403837381022312854787927896218587364411859268466618112648249040272330824743524527789114179994106025933984379231004811169187115818883491847205730943531846017549168152395792083526667143360711658933290283344232228036064560747139840763095705938941177878506232548963745281577182512381504106652097887405242439900845682583841112946953280532836054302972161474100175076481191585837829028009096606997824411140239333038176686097332035801640606130515179973188112609354961675295610622294470498666554471877008547929167520392517163166214932875880521806146910401845935519939514154772183904600606560822930405294518604906913703899623101023301401665766378515888647257351065953744167118578975177967714725311149944931492300913187083750509565389719592524650272598551585969632134491570534202277320341026013146723056255215760253346833637812654013950902252214459734895855970833347525787803834765741884054993420420778770094339350672338401017582555166867714862523730197369094105330147376283993655647306411936155165057663462598777762519894501842294142112552476523112657814286806020946424686420063241468609671718772661747383065893473886812148212960465850580088855156660391904516605975566675132566235320779168349864502194940895815585331889879860187090093947628310981214395100582987925415429388943179111956771908377757261628890043885674398231114433081869072402506821854913324770742973497951798092094649898928619474821697377389814992040926728561553418033325724061995241071175151915255254204107648175934469680982274769877121337202516353456118296524094356908432813792423789009897562639306786351386358598159635789516367146623476160452005859518928263385402480170562081165263461217115170006059646209115783633346786685480797263569481067022650883296747679178745966754380237889495462232565431034293905822377314125754274802138990158985608698762509427192988821731127709752543028658111230572080306190536590887687178850447784237593409419336985562215133111567057160215637729421552493976961440990515642044161544847437075703637671639649646236699918769254800133456575344061727443646792333771733933041781469588926504554865928473301641662863384030016668110405271469815407115730051734041576358821897024619581381432604093297269200875523739787932347284277521185422373838897563953250623275999578552757795445639173958017184052344165470371875506938845416802525458437740813379241878408592079974155344380022180709110294800558877177414385684277402113774540362344636504880482566881479648387912073179941353095225816087692807291855868405942187391429975059974775398293650450130772689391775121047742209436164697875372433300482006617702913944749560963969351871827762199868090357367264070832409415397962738036210044992864815496112806055771760314305392126775744883409094337734666642868103426716430852690933882449381788320189462326888792144877033184309521338736825191166750386341927658508323907476228523015641344721812955608878761215926565311218799629880177069434597377823123519940187946598308756540987693033277792283604607667512536370170332853041324275844235857686435347791283067941274062624224543216676787120806301987328007907439106877622412619615117521410276767377549511444853586807011550955352831006627643456360718911406451041345086817992674764484440554037959980599339128091126828422107502116837442548613544710799227971560578137036892408953453938956105198582291395326422402754337799144311220818649556400225309533396767731377857323263456910857764736733380952487962921667663903260252290114449866571542134373131255397934971169450652237062104859254466096549956076873758367904290380888434799733139934147841214215331416234747610094626692941833238293929658090273667502551698896534906412003525786257368019915502406465253515326603140706433682243545713909398897940556667011396098363089912169367168248825761412771503328281501054782637978756663704703150823865038367095085231174809936070361554993875597651370984440484504354103177441103590049145014504784546342034424295310369793940956446149473749254747446769923163598147247180838326794062343147411151904445981376916158006512512465817964999267043131834742390903143006314936761110340558207209816055854219538902592458173145113343415585364082843029190279503726092851024622899361903707956752617875360880276281192729203925841587236746038340536518889015700563372721971631646174509811697070096639629445185358209926765190766726173748736560825465110633729315768646525081841012080363906594809160203954002888488844339144811976277191160027212476717075122718334419246482276341149299230388049679987085806589467829731177079055148773729941507297438963125406606143091741996548683403053820889727604641260628048370408331947333957232755225340232554808883462316328912712512234813318723592349681882937243027701743893205060247711820241972837876937307169828512714843672874511236521330843484772279003305720048301400732334733694178612389395141123288823553268533053148106833167933372554754125502526646190028680248847036044856560785799711369628814846829360038384549696144349182517777249368752303947249998322356044542628042149811684816793382411558389238157529790863200658614827537558528530593203244542326208093358035874984537500600218056682512442398375515241191033352640004109638696345870689153612302669430700175647070405986698962369180112532012535942659776445389593282351204694686170366541638542114230653866121196813416778407259297402365305356734283608933697357915949656045655121106939635186192580064362765976167647121125963730632449043172441597931850193442457522325889354568054806061948835531229781992883756924328647722281766134529817632079017001290759330624799547135196087351855926764762939732928425702209231441304707486686337289360897387878851835614870691971024064596652764920241532819173589308513070486707007292708764515238525367213017962222165404900411798815438753672160440859742278330509562385938778898381186643037689441204263553791085052542318445086059994895710964334027547429647941453214631717736950521856060780693680588193380903381966004708808399686331530271484722738890739280227160699161034913203088933498428557810740605751773827345310896475015111280676077573066845396538958780067160519542122322041919781189376128549485734408663991818314236402809660164387293119814865131047706976556609489731903945511712642041752478027356847207585396301735490956642237955474116405950702919203131205098691527836461228346876000791777837978518511772509360741592698092914429826938389101799930547984605933399323063995220704521287674369804281172158282842043890178768433362374718324535111247760462624422910579465032094856067551343472667724876563123710774987836764934210192182453511856417837429890889402553314940694137600816878031186292436616167039546520923222887425866566449520454850940481985729275682827301278894184303438543571026842636484975197546314278756449990251512712292836024048412910942285521808726995766492728006452383688477821115433551062836093290180169411836342424238541970622016189636649386474343820083271356725896607671658540254739631931308126617361313528945266591795758561500829580707865447859875901454551599823539810821490906693144899401070195028429205167819189136203720240845549345531829068900421424761653304869817467610971190937525869174230662627011393194195952952720944828429997512562949899838228937323733180433249602503068391669716190193324214791978954425294799913371390358731306530433866825218262736376577736412828788772052992489830180151934680428826725585278830177609537852500876289662996293879829560188630672729214551396101855879833546440476924694215127268146415157952247800702988457284107949527971650769463149582223999972538236130468314222200880785535040819325576287609142263597720998641789446024611393893486302377506985341856477469767970985469032156889325097239545436540761687442826474282315002349364567413184081495436588358514162542754856933201809022269407349064526966161145994522585365012398485129474879367382200072832675475976811539516244891597000264014593208977295226601790786721891822519599172468409977028796764106962577112326699903973417922535548674446866169455473920396288775152362342976006685676003960509701367722815810190173912708969577985691934497346698324975853588890372122756595076908577903069614398156862888100660960397563339706091966453247134850090257799717605346341670796403358207123925740802537974296886061021013720892604059674772487027087694829245029875381715888377297965008738179109793322607552771079177276039565137749966399771439886104884530570910539890360644148293314467632166714179224140715794480809808491401413586916663923509842592672915751212836081309516615513443600518027233133271988659315809334909000949917389600853624113810674478206828326574564546003546068034619911960615729599359342906719651744500727685609958989179759796895270690457541271476112485522755871940461748206338293612384530738908925077976826707351444092261296762607470960762890850606241612809155364872981092844143104569243228704222126081110668792742233213939332977057141746057898975024860147654193683591194896984637360001621888499357142032508473291074519745001716191405045448457968621952899283393404100536145804267021844496061313191025474694106434582931684616977096106861622702445504724618260012870305522297729275583686190262306292987668118812435192662611043061076884479460778294251952654354585732593611685635437976269583892765613274298906746263625027564713747290097097553773992592420072658947100129399842715038248728693483989956846223423591866585699308475890697294166848234036643305825790376051379172329433225930289548095474802344562116244630084234433037622470236711862742518971732326797894599638309500507842449727197883392891522314414905464789244172109745981788467399839995645175830431710145086179113284957305961669127956252200440425367776715788850478840847528376680237575138554513815385912686088397293487066496833573092739887403777512133727967523056665419135418827159313352005108890094400235194336007504079300552696650207320216107137500907937648663979292807217958694684617339241069070414418328071464696409228521207504027393100865673339684408880102957159024406881993025746355535743801175229142658273109632567649439560695761821800138714525290227621716973624146216026080033477969155242372617535217278352013571892041135542606570594334129599903079868252218984701385026794290795466215562346238221712844185975319148262108060683150124271430920554697731590534457176849951601181687210115776533792530738390534409529065370122188277350984983004493426660714652027590501416563501389811581566563555162328440011272821342523852030903892066326338205900986204002015559191017410505782551802611418736620304616884886675127495339832557509247885600494092121702866542930077396261478725970402816508509464088939911232500391179786344722564226166324880075793883148867726455707886721700040505403077317734599216364646172051953248668359340210851474925081715430188946910782328849079692773701147245179821373537014585415635638006302325903050470580495912136372581152999711030183050495337388407765621486054017015705493815546233727694875537137230058268466652269457634181242444802058594571821464354456246892271533727481094729572882613874205179887395457186687235967768866805040984247897291055693127782495330612755342756303284440140767259147699533083432953156827425447381065918180773832428561542882368839066344467305095044038677651663700129165888462351754644637581589295156586863148163600276297824093632402321745450897267778067359085060737376223001000599098555209857296835803123971056456501486284689386904657883924832775452011119487952976781079636411516838245762365538241732281829650316086275908371237497493582374877890201078203402672209476796926959420007626989985255844815375032843972616072944056967954735040840832089160090858703480675541824569214835873458340224437105069302294341804392224297763002671910069003529921517870557289469163195251088246756232060588619169471425963429281230429409688653969335474353688695154692167807867739694776013703719508668809154318268452580999171318203010223936599026962225782204052835040862651092097861993582290418804532965420811057926557896579341471525131809901657006318545044767483748618962718027660912962011938391898272959461177091301552368803484028719655455693594830754007547305567773762962712290712227220879275087244279527229801868427015998946926184512524043069752587373646720866485412475487327481955438618281178671696700549476312962972843881760187108137600595438280934331433942036302112074285954959304325362313402859014039544684560885394853589516046500045821748703572867262886186254510359242097937293392696935387795800355268694325510310238449343090335974793205450302051337094654557922812019263353382297474288726808825959083911955358634620846005016856609048872356760745780590039635355615074255775236832846233517993760605118611270076975420042898324108982609847077174456420341183429153682168501166343583423121158835647949315297859808969004390319094679095845076299367182960656150887096044182868754695696298863343132837462440258574933219103478652073274709763920615859054823724252459919181212936451719434179970269122403295897544824541700186502276299530645225184468875996418730680336530150980294500340375840408194980734413507716334033015436665525621145455259604846269155890864131787291629552029653865559782890855064982625626566535206910611947813405862141884607465607679932289425383837682008778330689104055848634767670699034096715070549090691400034790379299095695502106305937219724694668640491843481143886582857752883931859913934480631723898168619849613038352774817676345203373254857515600272516969834719235921712299546335594929865675057100911775566148054572811834082500492132346673878621861967824103522306565435745028910499119667769445891018784807247146876457002945802969850392069175962684947657236592215585828527125020759910123373347452073722526484156785798456168292460653953102939336208482607046869388534497343517126846119098567136305452566837626305517091819135075281798618006364928982667385545025246464624917867079420571231699280898767902202114555531751406315237588891239977824988379471183738588756086821545051911537577015359824974150246476521613450086873506865505646041438436255130174412803206747634133858531539855385419563999444674720827941789783273291586745952599400247804724168140818542603982366703076809169401056775553803640502957129706744726892428725296654920612177410149739403897305197280657075737149548752011959876200941937793413873668757864081936038078445565660064494062585565922431572752579970640783608503683448792575219879748680562099622108470711791902763301052768708970190799264915413507293316222362604081107972411607439253181188165562207171159913935198545532535636030498836322303767322543174390387146931265889452937906906025069996450075796465819733717698608679307520353219946433512585813349109505781751152409940484254617890655012306343695722610956463084253867996794203565580744663517641929391807220704169859963480418260404770065705837425691005730756505447797832182012737135039115789655043012753310688801228839240994965716547488590562945776473215595229687665675556547560982232213562877061070555155538440094063897499921675279695474109707827644401110286478605517461499060458473071870006631330832688974856411289707322104792859057587379959655458964594115811609792184845861012835219800213081246622757102782761846210876298262477298887492428236950453045743328991542139169592852575369198345776456434825382480801677651027906644266290710317113926283265404773404367315359947584826315239379925100110542553552393766954398648524549929754755363926314824800126358194630614345312938337087741115803332850055063861560565605267350847258958572058575358209820401295181143631103686383256751773658031443869542115835168883009388237690172376493042728296121133396634662812265668970796151936171557337844830486588021730935140721266129449606929810211724951830357400041781784766379311211065158972226538108502902678892870235493218319310256963279368536500302421374540172352389928257152329184555513016927137140122443403808215682184537396954678796131369532951652671318238660102075347531124987464619355030526374346239695572464476672263891290050718283867790860009288639986560335536814501554240788951461410206980100049216114146800385868214416751604737375081323482840711523887659546120251269820862837110592553280166541285009245647162485256291022591873542434986409645512668026091918412221299253059922618708042850436825548991637956173087672773691047468487036446880477016181622144821198872042886636229000620430314762391721024005538907489547916329490612053652773736803547689638352727686537090552845325416050785798997870143633695226053888355995878800524653886603283481853559718365514195557901635684175049697615143163417629360598366780113479211855752618401637420476173609234274983733562283864679775687934002332498191179903190246156340545506353846953456707637277778414705156533514911147617252950683570655511318968289853400370738881017016290688794935551682623229788413596530660813597673122882646198960312342816874697925825834835742673614064722032758834488289530774776256517618389190553559452577442832234349252162725746800017650358160436962555449593067912943565294835255565634250299134578490419664244772954983869305809752128492768155690015025220845810087374582625874745260322032946157226041347814881425912886463882599991999338844822230696367480730409412724492277635230618255749113593095739256345205327041706412981090325121390165308217573935368808544580193302526648397905165166542720663567228568600352875752657494573171236213029085075691586716101886674844010707950704964194321664167477080601580389886065728025979837979910590670077793168458640102461933292953348303046669206622485356004317613639326521088761750912497351141917160081275486721948935665038917789020416307710405722988234696757614426615018624447342428827120396604311553173204298870937217655230789108551708506492117152812791838139507880576003733224827738153255159210087099622386087114356925614438664233092430683906966150336129187731230389394928159481111123786243591025209242762737161922371036149882672142507761194111464901862048770500711687195885703383771831466051145503949339131223733289741412411345108538530164316005780820683728998398921191426104041913988970539776613224719481731330007733240349970723217530033561795052730404598497743441496307783320433537746329887970894650142633700414243495623597317869389198165543249869259378077599483158795873374791421597109213636518752677701890533758942569454862109010272968168783580930770632016267141404862487938095815438986765396552427556319556052538976532952083027614006410427030558023609473670911030569873621071170518674879088949111383867851047646208702540641270199901414527685032146934932813993150732562703975540850902727962465358949112946255422500136547696562837033480077438285274623436456450428783782861508229979115698095855845584843333828812774953302287739087985761593218374974808365692690969413148873659817841940688868154884638570318167468369531719378821762205213668791889315639293607387452516190075514038600651548482786356875736987431598430037899186449547375374003027512465455602113545045691273151035340436334833409124555248271022880066668961153084176022692837731430374753939569679006835838425640023717538329783576078352324845931430664404597405036522769212432405556023215347554152755294315396755392371785756064886637325814613413946007612139694489260245229597022317346993659201057395879647320614023454858415139659839471098223154897134629376795030432550105191005884040424348381844641007183552006356183097640564134442871749579788276999929689229120292184167880758494750274027366665292184320498622865023888852705672792595780563607654407861711421979942929763259452466512850862497589028076461286649848941421675439223707292371896721800858763922073308317849167681141733371635985218531438699147334331620617856716642894260697665221626487913198879602814855026315619145492634790788531834479403497687401141514175279693195824878562943068919614439886196203937026316876830296701527211063193039896578659658720331230491822857375961206090455998866733383490487773121659733010987578332676131231249241076674166475915870822648592312865918602124696729801379220075776281755199916986875967775029798274828918763534528436768631729183483538122557750047429137003879003890820393635987128044368932803721798091767070072248437840516931002012641659796482888520114498906947582031134105844123772604748367431428636536538813108079424956234930043343349324755879110911667650002503613592611211292263591547613457944260421405287943800512555086282923507150449201165667868452571033771823009195832152203168469084069364573142554196046039405634323785679306301712113942842098659215201610800670345716949630073289053920353224834884176222200296879915361399781421031375608838425360877157102886181245754081589672566202684437342116336865633729390267578368099644497884320820121595200227636646304009900659082623444911538901899792720486151632780101295683145094140937938428848860286521127927407854021152482957984027119069630634123573580062709950676774077127466142131967897059905807841806650616727361860543232890006086473211826590988218464590698234398245247955553692612430222943219651662545878079276801144985734211470866162347849458427182302424656040046011890000100012899459546098294070918639925592858358537577849645506066445432329264754241916519598089149401488189601730526377495466910204070537791598623898469009501170288669994365373700265284698212360913826563677565944143842476131331766966378820393211259632180454509138248753117510625306106561966846732596608605431293051870503417841124528515104458661922284944883218267872957399578924874414524453477585605323850147631072168319532852158613339406991841739690961918217521054920540022970517610898086305925484421758184353110714263646384044509009300388427031014670426782896614890310118211299330901116978905501174255338493357297064433122627768217934451007711752393738803672871364403335387044157849773621437800741366911159926846637111687106078218190542698976324837182775187828176397211451079824499296816976896449055904578302300877702944642816441966109098559468362452646963247217246548597673648506430697757227413512335075922806227578808917474000926842941062270786264752535652459836173551751783457568827589517018854274812092575977011435851956532350438048117998043502694667305765358055510369471037786375101111625000196266614047344606867430052907286287659695366963212037898353759162648541672163205509147152885629873392192558873667050413858234466680112768461168014434177730097419320020001474244349760359618031158688781885785219404765419841878112278770232114841121455406465137212952596740098478588638541433246005508319990182037789420684226633463972427563536383738806826957000093961268321586913067077883175065217838818854653883052474454900070492345977375518991246298371416901993757527712760139476574234405719761284337945345312337177494478616334212142590357018466847536485650101608624596468044967602660422889129208331023924844731895448000833632119605451931757924312249269846444526830011873178456425962092116997600353624140562022267644173433542869197430298903881960128719181828312193867071501313909842620566001965529004475847329151316211379999625242527351594741780362746839153913202892867870935312357531059717214813307260007753046207450165940270837055308362945232767474881740296211772398382306695068061935100039961988825485254001410103107428965606224852481888685807212118759817396554417615748704746358607886188237773874041173672333172470377604738232976806460044954267042073573105572091501896796850416172280630300265592298548783591709553519027292216559402502218325091019949760421886470778272349855207109191948238784886879166100496046228421408840221432300060351537969373634591580967534089942627576623947732379463935780049028363021544681370537318577148799008329128822977905402813306132978338692610851180545291003797166862838649630327316705455798099087342578611355556762018832531303295827206314039326271256100890900375408963069596613817736701504962416709530590176886299105968837626504719355471411102771805121765981047953022365763076588874404021870394925430251448691683653188347643288085228788710732245801856977595937092056064853128651215262494636338867289281480243817937503312576014401339975141853373156064637201385693072921190377079299174715185762923213846399483055071818950868846636161773658052001170115834887401396512118592698504170539281233097165835237645702096090856055168547505293522479795985762863988693287447451127699180787064413887442390187815402359607362916979113273814749499542085987506832022491102375263664059854103151202310369772956198734573755810125317827968411325955338377538565267406401160514879964718893675126524095305214845386315453404180590107521255832349087334704214121096285423195009035688328871133087990454465003630417174128464618407774231029469910883824678968667543421791392236887191638875527567783092332711114443691659706075540852338006164096763539424572794464744546659280157752033037708176807823485127396794578420815938407283562862502959570879815693483001423941030671652689867803659155194130003042671309385371150385119158242562889953490843743384306385869522314290166293122956192637272182827302306678223467990473551832346928654347519995730166259064706748047725777397000464168146877296815682735877046116535333753601094872285506411827603527671441628492956569855226874395669882557339262525361580090320933546625497329607790384631057644227324273990808038445443417982442467849986405700868877312147872353380492790412784037505125707935665557013531475211034331909126865138626030363055509801974644553480753672431172296161339752087651099531670625057405150657924759682650768217185891838560808849401109567301251981632057763503294150431065057494227287038251600805284003472155608881823428911389281367659887136901982482769128978807025101738824003722367812272528786853015839752746909686274723321556276586586648546499252586025170865198578167269765385533358585539300949130009544738169359906963840346278700411389587980173916351093104259928993570150381871616126365408168412162508631815581906911172347759218126686197427460380680245829653034279749670641391343614228733961317686597802365844360653874926871199501564656840656501381110200971265384106440836660243096923388014460466502742912001133181806881948234981402200617768835423672864079767882896881132010515077094322593420104034188259223503104115597151669560365667284613448741481097611001709533104139610285214189113229158917448941076366043185770319833480022198645383489724363561088393048728648865755381153313182023020403225197595136239725859291088435208387880993287376713900007117906945900577920503501844085120837092269907392894646434334915079221274280411411153696188618793953777090462578165246302114660816134832558100497248170230391095917057918113248908199161419513004943864248451241981557689339669030128534166157833620210533887320296177303552574266465716847191237379412628580282197745802664208492854709996596670907323477334558797905083111144704879828616220883076536593910705493261126675446773353294059597730313657636657326296258989317470760149915921420448492589486672776086109059960803379679940594490778605972120759355822512779370835132487521475034133839669753082637707617844382188861301408420020838241517314323127249977650473391310393150967779573293472859124912268241916756117881669360373879527222960012937514434407686897197160282955252129242700924964621590340197305005796670618002452912671430347963875637193159068657694453553297051294169974198072552656731394947036070024690567759054375091126254736837440835428586381642941450601769115748877400016705263622518349955518997626364972656237705781072663904377765423036128826989433175583321994084002316772280321358285834318626025390680564272924286613049766540784972425216505469252737941347135341485795165124847913461375109616921276461619821636249017946009389607931200482223682361169900750879783700282757817405973381934261792563281128050525677782756677517805029977147716243914939157304893598783251745646691797976681407480511871855695856483946779113199119083464446615725116137064858445045890084442263345028611397910425316468168488879387618314360301910470387173384351075182729394146597388562415822044517841051203221196899995357382967323961658909105897857042060080035786142045427221219603839939662612303931043712283241531886773733662553545589368512296725332460403888344530538251632190536016211136548108612358388342905176270962297134877955538435021484879827936879690745636851604946925812778617457691673517953084658461588847367735451941419689230446126820159734321421856620333527822667115158552036154937662105795287740903978007147820146063066483491783426998258366838334114710683178187060668071826651731721518231478634306497610731797535826530339610200226744949982858653152146416137122851523447449689756814161004741862153610191954735626625775702095553872108064048614403615859239516430361339474433175270749386169822657935540159433140153810989639919713006119625950737366500770184510331881708060988822975815421009015323257556142937569233029412864022763933566290207968174569137605689354002550807040738468204935240426876376751831272201176297358121831300188985668313096548573078620808737439756949337795767342107960026359857327006411365485468912131085494589649915038475010614774200912864792762743560663154981145054503663571909360455191156129586569672592334811688653768854435218599988180334413610107924635687196565121254700903801303086321540636042873885093586152782068370813864520383973653731771421731250816142365573373937409247487001528225055086407041692213139768443063351698631227328427254372972867267209926520013712491430321916477741052840144525491423717100054931442827636909971678316284750107530754008452392756218658693213026785893093363380674901029219696167957995069615758852709273564151673064037515291651477435007155258171556704052716156505129630854797620630023831238289192756883744656396290672917456999465006257811486970757912580815867387570642334872582319496294201833756148838661489266573622248155615799564843129131605236932318473650521149771596761987947259218860877134245985653589678907336254917945541781080773825435073597560129081183740569210159845047287954825003888999762212642713386775374665554555719765453601310126747423073299135297765215581471411733423388064105630799572282646773640334570979549694695153177198951994625487611053617649850612042161771168627138639311526077096383482700235394789821127115691869488575524964841118888346995657159462213362892684765554812645779103934911097803555376554549972376801179366622278323282050387420501450188557893723960870050400134625713317085828961453430890256143373560588587822236768833952471642693662524931956439809169661656987432112615733377534946702753883816333698949638813791193936959456207787550726751664360158759454753785443823984469317765717238178119103262441180171753050323779193539887825808614174426705678958021400567679794646206811872183761795461145346012087455456128030633753747063164072626083297188070840355927615214208639034979699899539764680358285819970066142686141096558909464847623905250807961253512648522785309920807761773692805631257256003911144311657594367420003751061750444500443292055203439050980551699036184249432941952330171648041035895102439735811751814299729761707152532306020889897948101525851069763415645446803088657874858785006276173919363081268879657629465881779447353969380320150795979413714326136113875104615051832284467140198433298430563379071399641719046323591942313045377936117080679632431541117373744043009597258533368252589559552121889271839222834829062727583757660596990129272902062513233330459323081572403691666738205057400155452071373012377881676218008451667243870445161096485236531021733264398741448308541320114377374083219111601346589295241266711587247691727042153905190626864646339288840638122446484242806861897553870856807259091906627646271009925184707034803873538131122807010912701011897540064372580037187788719780345175805947407775433718793054156594424354814710138787559141276247216880130525408070517648603459426524057539970607612370289631229171617174431405741209016246295014107227455105262406398509569740663494220243196264927771377548979826396278050938947413080963499407373152489516083334745679564298317271873500940768460648533973389101996925522773909340392859517044098801677087084645004386830626517086917817239917764784402462644683415031578001504988704080582298588614144075126964190451466499438600999895906052768882316091251035561440988863565177535994507141409289413748368585417519197305455458128704028404349484334501629980353120606604735696091097822566830277920621278502970146817182442077044853930710536032987161829137906325817666688038163828610125616965928509698871202357844276182739888446603788159435203808506762194600842595517225020607688672691488429544240422245883941257397315067396117334680353005376750067072784386834400824389623190599098499407073760513503298184768914944827836139774118472655846702947920101470657221921802644429511985578991562113122802717252126111445130882799554579115611858608126229900501589560857587680703354377997794505339606973629436496853890527764449247252138623652527047460200906101997805626938182919599118157699016765256639973999989902871920263726232563063578717853719930761247054067654506784346341731985186118778122068370747288695655586608040847897593199998329403704842797762261601145583287976156055221555442400908336016675727327449645666329415164804660135428229527263572729061121516337105917487982027484580547897943986263065655813103581179144959167917558574443479631889512856262124597037518124470869928837017225452071650251743743154299932082846118211551256518698549793411777853132810649833707756732498206882632570345191122399797088221400278951710485986951635392265961823396962742276656672498175501224954720128959626275590375034909298114796010729024136761447354821201210180456525825554351144886331223411173236678551870285346596616032228504257798993862655548151345175000418331473707325853425147831935482478404162479079296977105046824503635552843323449144288673120049192679333261910394852203932814456279442882463841088188194394394225130086725811443148029108966195113695984483203416180264451578375093278050349786155252241733553477582092187862757651434782986457852796950315003589397776702578232352631336978424885207049646758657802798580914363308531126158590241457199274766176843982866666794817655433074765438280769371396394371294653170478933893054979520408209775431688601147638963942823574916819659066888555008965408070702178147828613944867056568826979462513169900137753925943624921017058874671721957744050911169770294111588611802636691043978017841944858321449515014605579689503184871311023057240648550819205015317089502596431779567773464620444656905850278887411064090115758723471563974374861042860947235079402980725265789580643692396377932645233526837037626428067303821859544328294366051363138588536642161115843026325701801381673132030713278890678620560381282714531890653251777848721620766630111526743314375050812811920291630179719505430732094870174927334794528895829089238451267840108604695097686774001946248999750592907990583380139213673821387143199262462259850088281567075924178271997977120169634981738471943288218889279269044736029892800877791814758809949859669075088828932791589907634234278115030307801752129452681917278621887419983702644861814594945235798131971946319444356723597307785542954107996137568675517422962622489515742888549575403857073210220098714718034084935142456269247963553039765647305000457941370277712199636575241108625411648931421405062342818250333183018033358824185023995281161397575137464504459272918075766069949423168284102585349376341044430324441458925653287633280779307818719311254824235128238368097087221956476655587581920790380294507416520972692167226780989726096257022535241981395003467270710014508125715154192291413920706544511764411546322555927506387182310489903749384493629513803772819279662043840210930425609804259615021721861782755593343208663185831251707537319666692241960579390027446920673339503828096619733640063447294087087327826492644478247221197054688121661844323141757203628587520594153832746436446369428019301124829521025179213970599539068483288887311391314695949109945493682968360806359008019174738728771073389807932252702839492352519903973783348707277031953605496165206919119646845677369618170309194707417013425789586155577502316025028406801422457513933504744645231079610237970735024097012111318024112740749242095024898859459805871687263564362077538970376308869046437993505439504862910294125384769748404505593142321798421300500213684084868754067282154395030686790382738583469003898913209719554953671649785928795157163524138736367131165234110003887255100057004952091889801136370880223803367513357050460820605147662672070621130041467142450452941488005151398315154562892254075561783030051244429116067836877414445253679037078793404479737335379992035255980518346158607755947573607528721524013562196048955679843826537738924623205801549512897443054180493235504881785250816578242140875761593254855183828905946332700770173448733650504022730554453521736185087292945638295144168596353706188275423259879053885021664596055673637504991102916609023751919090223000295947609556207497651784421627352980026832922918899109798519982020695098469482581292633781716370329192451798191673368639080974680217419173743959058988703809378843240223269342897827896541702110486566456127443035138268592622502905345287753198465234133089174756405266635496842854887734746786211691789407587299993258341184195317189115235464023528068722410404897089185324420641403252031234115479648995402302131626357367657492728706283391860135117059878406700350270554339815756789474082206294656454315125152587886175137977075151497771625183189950648333439704369214025095516420338769702309410998084568421130404660880733412709385707876819365791843342838950281145215434903301235288398279144190197436675896044493045049997676768589143334976686960537867949094953571523771946081276094510470758454364376606182735667763479559209447522218749266119495655882550265058549108846221920611820688670172536477703470643207487845394841147518727357575681176577415606381555056054257499187200148057853622257246062803578895057754711312804608265392722181699877406958080255098498241274949545325271608319765288395247975666824134066701823754269560152867427904090218848979478645413730245475279602610260256081875013193820796332196952132576770773566271528955224598352399388396477787076063661319364328886482565739479826850588318081750499257731107550132402931272283851842525016015911995854233879873086724596055930362050435745744109325488110204412076410261004132361219013421620019865668854805598633989020337962756411527292766090110800139063896139022150799910703116011862692720604678543342190858904094300384196536847706712249197116700206535445420243691800180587125558143910425028375316732006876157880706277897914660001410641237133765788096409326342930687750610750913388576007768416296871358944307538116251091688197375607693496688795112847453636201752508530061706402962162912579816381872633974744754171509461737061696948728246684519304045172953571864893698604924826488779916184037831228082954692924586629339019129390003300127398443992614407352306874929688793013065614792444354837173518901766322950245953053363593238800676034402480054615106776345191772718442852547190966531996024898834612591368632114220226270922436828935088304231110635244876416694617732668408301190843791262992599362976618061789422201299753635727852635960742319424588700139856924057911595594634734944257930191983270478766137118631964860045232318134388608589644661967938669098804460019841980030070651662540489266287717302606724309539538951636428769199742854393750111238122145670376087218807854564667647454115564688161986146212076900227629000651270421033754938261211522049408150716827092036815587105690277678833874569298931369040335496306401467685674550882099055612365347859918950461817384705737220668519859845764389151055941075149849609232237269550059260277743893043282055287366707902737881727873210864303141645473412244801951128402782791563498768699967165588929152043446251379021636898729182520321420238602214469339729494626861344125534383254472137411550527977627569909685947251338630042473110422350525145950937798968006564039677357290252680908118823674632466686012948066704146023190698613003570631041687704709981693110186983725686893563139310169155620537005008444906587444418315545513879618718874504503070997051669060973974013649483354423316355900009655561136170213228110522326873078615968596750877007156031848199906248532111850852880793976115215767694436184391982635217025509872362767087966875292836114588128861858737822182604201862245604390384621813274447764740280010613778597284825290963215394808231218349690965144802406824814997661309338240753028739852034658734676200283823367368348586065833377400333305136429286347516837224092669809361691884330546313612016886597583421082262365893182137147201769898371820573329640219826856254649519920856919988699518628144067540916077213049636570138295199957160087045049609352699685243923826587598333310630123484369761318500687282183195066369454880676886198868485950013184085529457454601667691827084905845187282025062264395364184438015573873732873872152845771093905734310002123708434132465708693406618246410257045681970822249914986712479057488323722592233837714552717020676302473353076965129670790913801914415165095866256819154579810742772984056495334111032660820185436805035530856138774613444508788444289540322355612597613783852955130977902667688140756769558890811846362356062914967599216853550400416539504444906426819928122312147577989024521523116775139897473297578757247177463327485328287219930143309841931135052192255036586775657512441010188120630953657476484791224878857471575595619956130544075663982362924780990059068496868206634436167170218194946623953513585774360149896457144017933590840489013068636878584488457329118509176466359813000544318445416535667586489588990777781611854666435800739347490756910170753379810322564817714703344699703036166765676837070795917317204968933989752532397610792010245833976366517210021801544413662947579319766383503985567758200981627374852861822707815734216064690130041143459877768283430790457201322176844385708686069246324966760875294076775538889873095180547661394744512386411293666478934123404597951485757371263421922667013839827462008875290247374169924806833247052466153260949347536928973891415293954694309107244931247697055344018996099074839068243931761400847219736965900530764095688952629536540923996265089624341085458864658106279966035166139076093011103911796552951289672603889056434843694601769473775528475763403278356784681284491851063740025485094723363713843409214596799979690133601764986379436768923771432739710485122219801006032067688588520493207312379052270709477950372450886565287498833032592817369952285917808001450905684167340502970380357570019720466201269362556845058236494819246837579791025879538525392603501520302594371740115720565926096952719169327956945661678626283517261901147888377021876742277528875056515890937354677843885318887124615655455693170964099570006962045911192196335105536204033242612776634603909432588278189585444487552552733803049315381016016147044650541402983606735075109894565634440482689181228706453022206317838884089910173617921992906276596389144373942578376576411510250781735024267253548229376739461650316958609820201652593552060460739103062005657820657990759156324521609073209258068231476226052793554965596139481233981914662852727056045755885183984250127449117048134031030132903604129487610267184517119731833376691011525016570709160389226303663110546404495057109641570373135922504996385969022522359343299077827418512995777502222977431768566125165813490635756886416603876220598631466123701038227235865075914599250416662391677653170720747629149154370902871657361083599876651248291032942323316395857330166900212059756268405485163787268245000177741001184410689453018440316337854447409314522298356095136297334546275975825850835387661968396683761013732425800052284533768525942287588468410462324282166844452951648005685895035027143708706885889255549400647613775990507185232236683363562768573217558590741629777064438911719272345105570923728473708100328470304399306436575854176941259597158100694723792716059490250734805805861087086865019751935270557205004097813500826881838147097724550610304700303007642991904970916415975283018901933367658208322685356302066705784602698699102667326656425123013431250942602756805672244613864085821282803348162836569529001038647918828442166109672800821895569023601770367367699119838175301579698365002802761308284503990666951903915593756014742577424733205280984867093098954580379889856078554956318713405390945102233103599335176848213642864245085226820772905633882560923965256194904300175512735690583618305722608235890665776852664906591168727011206968036920957564777203231720448124969335163255188763103502336544319506484245553258282095947970416939967540457328487201979290109784143321038891246524406997970923424489277038003511927204615140406223615956941230327782124167112209944050824684166116762653628801955364432898390596537278706965661499277745995137372445958047638554316722990917570824255090225381018327649116910768564654832518976083631805566443341334340295885405282556733143984042612707902098005704814220687165746745673962955344743013831980254991197687497981843699576999798222701962726946779358975451565706856102431117827512464614298805458027968665866093994531607788458790047205903854210575792161055241706826229587384217307754688404878471423692050074071823718111063539181406064723495877337865130964329484997202547779543287074721524681296415309883244809108920475528721927480301388455947172308195009743841318320959775152562788697826356094899256573786458674133864614089996397033343306811157184766872855548504068612639473561155738114151885647917589527274455761821499468593707925490420312120724549380513555978112165896460849204746592129005303652076835194806344588773829993063530205592694883217710012822997770345394598041447366496485087412639494871085802112628717992677462754054291304588128178969438179255296656583927815614364355606554929534148480916665469598440696175001205634724241105768959199424364061797348090614107264313072160882357629794200761247989194437263805849700932495564534730547709402442381084194592994715285294829117114339081546662839049272798814215819985770877632968905676701118752023031068413353621491708300074422993395654530902346528317884463160689262355438849729840807997883973229023215933820881209097609139829171863937846658531936721827262907127146418342370428101664354740334121275401229481668101280585044909810646845020756165695216162082379914426106524972257892852120609216504691232799487805546246823223267624700275426054541372039672690176733348700255713315570490795458208124543107213484066059529987277854119457159349470409926238154364126338097450581451580934730686267512316388061824507155541458906675629539174067271148036549857167749140949084475938435702553539778242404538038713054798948442289019489859365429826155636728751127220607009695168232886446575508382004767153551868810241739023830398536668620632332503351744431641165781804941307694216229893934284437640095091053969033117030839048151818310586509282434838408754359242595116687072163734624418050135468524484566643590484629114773678950389979868057358973346319829077180775908861390454220469078751717911626712137000834240640779494837808687358065321095501517094719313719826913833822902311621475518494081770149221237932691116796645355761638716604243322323392491832738124873150561842050317618005902300129775977916768501968803454465665479825620459399006730541225836315592225813273222357620467786624513925280029489190267665774233833192325023920874908690942511885331886230840331322870299299329741031140305129956129247516004801141969998846482033343033186434006337409561609991006180866376509716717722580062213487358354763267279627450345663416100353816124668516098755599375073796670253830410725535474071584415162039944817660613973542854267077533685663284465101273172583962513074511490979290464447903416395352743652184203122045014375152026510918937712031268430198808188107664467424758540721079041028443190331156366013789418978398920049028395442332682952487574296288640126903371255681526070732376822266398461126301881333156280806976632122862497612231233230260355832119116466287835474371659112957573705761031016267868739827022900225666025751413062264880834460350581668223445568225704050190993856899576907396253388837068594838709533034653129389241883068281245717346195993836539521254978292684084655788652933417918830570411264375475234431040432403173858565649867864369095501663323322039034719140405528699100764110475190331164239941937018966045685559980442312815087400351192578402011195943460902056214751279681631158597161051703316675005789126549763362675316589581788677661225935969923633193137363341314324476187576901027946789003453932191634446545417480089046452736243839911761038323673308375751590427606498769034974092338859257913401120841922562345539230842467450596464700217233899759155925756350161348478690744174450907589658196984200880879692656034585932765182008549400291004848422537695596368354227907144373250403777473463821475276421090057818134885590043866022955168478495765601507380662277661113845408201507655841563129909701202768600223281866010066027955558154082469182711490037862252119258916303135824443127440111437218933758862935229213673862989197308857090032538613703736647919529350241007021616077028491072844215840601473456383149151362031355172178876849254793504590082117657276259939507225054384263966401025328278251835686191720374958081510770572653250861695455074914769419918737762243152636462577769634929732211461478867556904929221009305127405362350226496087417532011663380308780560650716799215499578603922024105215222696941088752680612693338167092301408639535497034115212731541796987429405227799759198914086475421161956108762698264215443049963864705320321781128692418476869555511439673768593028528089524816805489568728791704811793283967684954746890080155536326149212395198516091638501487496159383239785158344611905889445520745562411936940519837787195606860832542389504682972890080158416517217766030537000878954910665778417530920827887948141863679650601944968878864730511954653377366468483508299543721952815882931798270537668838346825795606626145902560294907715628401223187731686339561221013834110909686519507477595582970157147146202002898650593944845684743024212580098918022433744275862710544130679456249134625727376123358965553483200205980865247548954956006162547408734949531921230487464469679660887992171440036765136103124416492372859511372088122274702547077274187712905672371962978392176009036163099555595542065064564424227940280993072340207373698638255352723037728244915063916306534997337024821387053601910272885062191818007330526188603755347904215118151355376317868253097005384185293466071439575860970932189265693306310685596269843799340939867616207367272292466005918305937340082934966794488069363153843699233434003748401722995121918665429521260837588695008070404576461968617250462506115365560468445083795764083919135679165756227489307109016939330854655794892983682403991695862217737667622960995623580090387770584233214375915658853834754013831288585187269592511963242536524135749956627956196927153839252535514410798667606950238986854885843160324873391663201923025224999098639966238156701432243698989456153397928787975361003160374067498346259120056391580771406730328909779254726449697626309543355405461675786361036623577030501110994755692483793653572681136854944841390715552234036411305971355353745771831022189806808423268509190298708416817207256377951031314144822252570567678168845733992544918865347819100229704382600485594061564060011133019530583431761204026966073158388514297800359735142522660856581139274865967107506724505704136870165868801745334330664463551110981060632422105664739232490095763386370200400571751465056948574941362835524166342604429783577671734932911640055971802558909989942424405290413437988153074766538235610498640978628981878373866136866265647028224648811488864111208633915502724771431448609090910551174818809154301395858628992465749894513384458311797692404606528143022910195615927172930124606019941944298157333821951123733175309263892660405850268405418559984437272125124394349407619668699098048877508093262129713957970467133435176123877062656978969469822709948580973990244314143711963874804167483005097894819626275612918818397503363075679315212352201173167097596729222963139155662835346553402987376753453081102347267590075383086113801307405713082336655803162650100598297128409503447975345269531216892003575238793021249254806346072503198847760840976263622313145882197194648456450775980876403645007082296001666371454729317710134170312698191038163628000146944094268580354594124631727936158637099233410655541013543685363330601448024768130272601127622144128398164902863175278768628873152595880917004350293748029666763447513444755362167247632120144110638731156764261533267716576231145724089082548743826103350245201160359900498532235532443080062871567588269111829701621354268048876754402375272208842944433147347370488919817495747405580415647931372230384964117765577047263756306350455318392967522687226286928622007795896713744945312151467562619036132236104581015965068464777908099421208218367482160846380260372289524167873082128431619739450149024344109558380257006787549554690463098652200604530957676333501317917929381971519597713836455580989483107377589955223226069856989412338043241370223828629322597950947916972829860933260467848196821078667038535217900608745890620947882316484053075795958424793990230886368129112836688258085022141685117015324506902510034917757854822984112966427533223880469225178698852005462511915562429483899336498356452466624396329122044977189957120805654302916540980192298542691200623930317883940150763498434974482000120510549817844136817730910548635166378080017877599049957087199221537065505238198022881373121093020959721063287390750100054054049198622741207783388161408119794468140356141439911239265051563487064004304935723578792979951694077228711601079253034240326896128806689598565220762120683066758996235364483925201650515616902601603236913312802793135490175969357238542556967815387589891149553258911395535444315393062432238807166731811178557869558772779267886368795289158453966289034153227450171623034963457214338976876446897821932326642608730527675789770467619612674351910674766121572709908251434076786902353665285691738176696365069761599068724154076817407092470785781479765458911021486204822607607001455855276899610570234494021045155614518128641101191513041658670661487506346700074128169225052080184328349549432515413071722632689207030059248357987045817509710809781455250042155491207461756147074186761418476131736620658593110000838198745688765711723502899002260594549218098980933266193338656214582391647507840106095389451144232818972075568453793595486062509700774045758814941703526202254507894929695754644589445421925334437788233744806803396146187424520332000610198532476964343034450155934928655686042343012663519755388752199233172515043600959939556753812363205076496909518101442300628185475151159005908452840175408615943512845950925642091453751015667236438024160889912183753533970664239387598910212343217541656577208681258330213098241362382364259915602892714858596101169366284671637425424632831166645010686165129013942917839199033116760867213443172833053728692381152143119872029628876911296471190940632487081642311588912552802752189497087009630438744209429249905576824454798937594405599650799664683747535171378853897494805106313636335339907639355591528001533416721131484298700129254739636235253938419421615799089969912661357346726220622224718125669288892381017404851017529359375101857337909043930583394183444895462995115415293540054082528954064047380684692178691863621455307728754191767657196027442943884858055160539058882564282653911171925195795683537683650403002448552937255514626830768591368677268592957936622912438256907260974398661741450209501985699076766849537828571539162741405630884425314159274982252952212475459412700433671802367944303277946563005311097554084238270478941962104345698755777056120195277041731444124623713806246449737484269862370487886701820620677225766665951430109144619748640399997499204780235618541441940405714815720302255408196353564012952027414191802291012649999638494108304285121122301690794998703495866690249080868026141428988464110214766324287259022079430004664310297560612206665379983779850982841150751446124568926276667740538133499873617977483526741982002350203447280054736801945346934563904475067467332329959535530639206878838072565450369626970327807063708955070307583023291848982563367941997167551549936236848640053838987525441144763949137971497523344725039365592776428199515261143861719884741510105121411089118819694872828878400475613486352573652873559786009107487514851276322922279139319548397074883293728246281690463180202243172963958650929294011382835075234737328912779948674854622918213470484350901762277662033233618703508808006035404527862465278818914205038182740118920775248484728470768229016410238097974147933313575147973561922356822552033094891131398548452633456166567619515570584463935546175847869303440106501817497079778901932170395020637310906092079150335332489297926040763511500620312362798210762524240027655876820737431516599236652969683580165922203956198321354864631213815378619958309936779715935099194011291149739658241817649186565666823393031379617070190564881570842990966908928063323088345252642039377599353696273923754956753394639822170481019824002128691671488902583232521947274297960352480338428038223510794781230011425010149063853627093707784352538852657909227904607173325488575551913039084421360088800411150971483423308653432023776279380470661101702214439883133852165530573927115137126327577943908269991399893905048631046268206042729460200954203113445317110820492583576122401678635905208429951844714388698824114280206916194411497801626199366209798604603288166862270957451365928467818858739958715082413436743713995628526997687994861483809924667586029642997859546694609087202384714376354216560174649398092596034983586424390079459225464880656196163754809405261863100638001935706575275285205546825886935653572408182505432282364814611532749630244212157436805259384877299714834034500721288544518239376391526310662443256790594529883787217508762180228625096742758928714409230412119138157216071466928346391137007526112817079440493346508954189270718693650754795978247493055993429450402511944601993496734264347959610580055479121150697295615983864817516158818295289877411022685783851505012130031304737022918100286648979969907178024387120479366723439111808758107090232457994071793827839025284955909878789026135704346420672214232635524904162999678863742261891746179714504969223762828617651775442162181729112254410119457277613409969701182636979493995752932407700643838443961271381351950861033677911763359023603423918260518226980532301709176351243857796259773955738227550870128232946560214391827775201428856403608906206546970038922834920433975452659370157597232479364640168479038785784184478193452261348939619658913208933431833834847997140813218411795544139703312549587251409468662525207017185661594683489920895608942606240214173457266585127885443000000243014558614050758669840915853768117573350911318757691721879846997486920390557543752824859675216658858077537280654091931195450758109626381946631502783224402323637891250575385907290220618265665807584214315614967320713830750587221137743461589046557745317290335782958721491142680133350554060690986675767069974535424250681255300915441600358829747367221966938162520403384587287451614610756624855701486799482114971922929193204398837210635679790880645247979334320382244650671243573433765211017537445816272239668657373790064338285713825120795897349630182469228094705760491858639522641975215377976190018893826858222589101685111610176070597996123588122815537178666870323622338250515285621457286600236181126049123204723255881639964000502882214299292143128004009246615797982265245114187187190309939583493139139711105622541640491698373079440984621747137444031469169083315000897187179938350712657963317535393760140918023914619757124263438222158094794547420572248814627270404845506651035185509014329965528555222021817976101811386509718949381566646747484878128500133887466187051054400198507681208169822188937841688564054884407624296905210056173298392262589840116374156343944533540885667295403701516051651979218313302162606361767376349363584601350077258166716760910604246558813601532241863591806884172248919851531295164561745064851672848104587337893552816402856782053263214348423372381502737894850292923718797977041235229594020673255426470197872184928727616879197096861162111337590886646150874789185006037307860255786912657906490022498172202953528362644364312288121122177597447621993823958518431579179274154516456261419922550133885513911109257622895313833735320928654781050039251125880799705273774924704648181468062942165387175149069319732772775854133416920599006732896710134695129146758961973347697243755866727199534157719449408727837688361624893880002475904459142753153439831551345808294740821684255161275592793671323410607840845682127582761286679434436824534715177526740338404677167244471449677346829035575923840230636194243494718093621792789581977631766016183208318280876102921931975487886052587119438044818775471892089179611337512841053307798593976034792840900589445170720178047065487128771569123073363114369300548003988484623812477666621181101190703807869803778443685976864999076915188993535552651226254407764005022817590627719317305578307158809284060665474860691015621731251191394269408967945161565404137737984350536777351094759982941358530662174175415313148098014354750123871114250745485922631358593340533959591912301061004772532389999888701337784209599757971962118088426915471283207412498893908141105213928607729922376870223323429981050284618872029324342095095009298789459368528914636279508102650564662845763823335914198824881940265179081719192597356790377087340352126312502512847981424031773717660565384864015774582133520808029385988897898412968531126087530320894929011122947042088688081204392429331132393779592684088042051289170038067597481331155363794093441534594982493371051336483067163604494383387175862729724453195243921862951133347586639937867114545181247522864024357295468782068889655275988270319016713728689326205964253651211322314318055856193847112499847486125566048627316184947138354360847448714897288895812911055426466690186848140527255558749230554860272178211352089101162602250982096879516115731136130781472942319397508789489758822527813568566169577242363784899957334132735052778027946518244687605317990237752130803375802501912049861369199957587617497925878321566657802630122774034491420910275337630520037662130156721961995573773011461401790589997505021722198113638899490850385995178561519065106261764854176190541638950968246278727366666693248075325907894861030159099807251142636096432489822439998298346142196351672186698980604844480716577083068453754436676098345267229899188514161941146804083168554842645611703506233568445491125779530351465634452953547957681221001480759433682444970639207740299727479820979151890898656954522166239397850216826901347184461140768169096776220706357065448066721364788317055931288864251544109461820674559664925191502513376095002664808886666561707669015720198754025672909130408596093565269103971933822961851227956995537431396150082858012669114742002979489417127978825125086518857811274132958652890545054423111613782627085603755550596376716501214494107523315275506216209787186172350077214497517550658719230604118110215346698352503108321850314825355500222951176580834136016240559122962431428760382212204415427766485922037151161206338932683845648335008717945935864181626376911180407989421635915823615642202027801773027557690084397694798855913531749672070793140175684553094740479744902883118188916696935476930540503488289303284500906245806170015913480743646098405138681837942823916318647697628030953262369400910441622282061832988620470774744188063439048106807860893613059919517968965775405120793883623670389035709450166057733471283065267838603945347377554807422489982824777869295685697062598481574626082796026686328172147663176405912096859139996611316999571800279604645315775170198392090090995307245984952833324331413070032441378168363010486464130526121822364784260550726230617169724048809793463107576038219016146940743757627620912733239677188808195584732883555010798756732684701705576396815483407882323518902188748954880734992324169285540005025496948202711243319217534302329226598153684100397874311357792251424091337563658836214082540954284330961355213972832705453577396070544080875979204136416677699408559926741351992938161767225569051320192792981236903256164788069296202461757257478049109946847228129558089828876789816810193081679810402474907439015475978262705297630629292710097943077082889900578942336894451228174777875746120934959830576451488405866069641695158204651614664291386686141905781471312965874218846552533095203401929850799874066630620827621444572025791415204261984656301548294209491979618328866896390244280862662551837904524116803610808415374882169067397577783500693135629957084724809809399610114574838816702284692800707406879625295707011451994174330103437755334926555647942416641558331696687965110664108024338963948789716561446761527492748491890009669717511600711093215478832961437628874067738012855593307538092484681379993555190224097506791710745094797226869867432259495221164200316978759732449450977184540473185259646023160887710434835934330476008641164765282795376814658311780846630232281089882363593842769999722254008879434102536809698121052337803043246606666181865386955849867101339815728299759285105642100346858557473243229917166784106408340073058744965784265082658659111219449465246007779878360605433889896809281889801654906016203582166408595514965264703068445628066831737572780741377711026669869694103609864690237133564949367936904993746395351209208668607069443442838655078627314600033840094312540042164575982103449537048481848071427185478427864351042513096599714610076389493551271366050536681266291337169474144583367895807373016611207209630854408413281780793098478734596313148082095599657227896422100795196405784692208982507668537259943522279527122339025305831605548758321708365422992099914462671434067948128455803072035070645286453252825521957235836735003135785932249498407939765941956865884268545596603483113310661074332798239280346406845362248154608113011371783795310686137738197846041774530190180131357036419466276954680670356212686373787534271387312428786515510908819951635513691355238781693197716416033327105184242679282313441853157736193774626539572085768292101465794347916092262858992390868714303255653036681522086876137135772665007086370328822434216650962771088310793338511942280450758238820115528833751824513006236018070597317962894862719181521042733707255617883335639320339204551974065749667620551455759199944764027766977511683797376653485142838473053647879166905160647772629413638612122459084669494199474442156407743714725599271544030100223023135725731551429338155731413469324938508368083855500880524849300760858258314235274426110012715436033628296940004352966220583709825722610490266954594120827486921938675233156616241169702350875436256373584516188051214667897164474931317156858109633400300914507887600540663498647581355747027181636387770029953424950192948023120509862930022769109105403238164118082081432407800803883871754968891210850686500412997093286404592333665407999716466716583564013579182068151321576789274358695765126632783787986113992922330410529716359825599247009762725674181908875704961834370915595814969373771045582745025401601198566076533707264402384203795348052525960991853489130759170036205773319991408930965295872369085075698221036174720455909300785320132059069923729884204331246134046678655950433731236775776034091336311759185440076088777908192361683565452068178055122159766057235122860000079068522337515548576505532584056664972417737401936366666353125610443405973580221452217848123016416337713916503589580372622472782655090853507039541779551164519645488437342312142499182980285719427531644676799422768153581834433514853023320643687010673981723927160926352261974322428843092445507131740201694671060224313711153947845138712574776102980008866479188283829893763283904337021384897085568787595413184080032034769149122537109075463205666612004269335857281140185699588370109233963823185944342639113697414791097171877906611300662985953228042215092359686797629437602861754307125255598928883752918029836919431851604755098443145122654902709377069237361664757263441193556360611480860237335934313874730920980611320061824256029753065620560922061147609025813909756779415400827248605730676910657875701930573511462930942389692995245681424982254890728615350411452240088093417194572604089339315976237738743235545341722883809563207552157381709989029312774611997213121496287286186766611198554891013218932820507670753404142784477039368351544064208109751134654292930852120283174362910060700142173707985107827451317880781232276794132470443484659786576999596490093835942122150795759278289407448217224866157368188917799568362527345182016915775123663544398014017111864920415616627912361324907055690493149874341625331740345354214412531000683588549371973802617654014819200853272950528005376704369096608450875429425762146169575243120806339181701293888557106995311437441889459005524677282415673428519814208284126176864462851254781666184099979526115103558769848814670973783018828750641190271254241094714082908800655233067396155432225519269011791551184054290903977337889619846893083995157048977958675134407757099209437013892630516439851925391490876629631509973648596741642346752702414505894227139939545666235082621187090415078874283633444135708729115042504533030055945768317076648040833795012934635301350998839781219104287473439975194288404630925670923579797243865377383763762979252934417722956642838660160426072839377524979339564107124954876246088566170703699445539806487326883397373113206193635970991022204688047273979012773435362148022939211709459237926771902221077566585185700319191683208813213794401060602225529166323729629464920465114129011446222345640520855563105030469717680326234498328321202132813196438339188154228854116821648363013049019354336037300825031562243752469804579248449290101845242088509303263787978864598602765787950566787356697058349909519020034894492640164666043666328874316363320203292663938119086813600235235877502758579388655488159993363583783355906595568069133576067015348100906274444463197896767246355308891079326555289219758757675367985773812308788245862971568155485567166211344748537655017795800771858318178578635734991235544015657785161679236143845076696383744002298532754489394486945572797365778150026321454817186657292485009519346056891098223505939912716424037979446211613018344391692450876955995694342930248868862793612768532812439068825239301855168048956394108047344653271260537733981760761875040056970953432444115358896897420091065470067208449886621841559987314055772385537307726874687714715975325275002737460354651319273883900917223899004098076260728027602671842010840945396631444893060605619654355728663643673638338061760821254117061061586239937336233076018632224164339568124161341724603444136685755656488254661923030582848619147307685281372876926251987814558192611951420970951933325963856947279385800517255545426735032210097598804098168332503636166202448894399443859105995327964237067740307075210333720829390882550888667538953272665396546086627170350527791450288559197678177436854660508087569501626510742800733096149713794230835297670112891684007491376408687131539041736846017817410615908935011952882470492418554273685996848978350045241505750160558623565942028194527509578944570049146319878946261367555125357498992513358682521373464944557952617797804549917579978316816472999786082603834461761662535761672743426668289644318163122587674083449549277383937456621854194776388900089167788076458649019292625863123005859379409491416433624671720494201676310905296308161707441663119753736099255453375794735282052952367542204597718642560057983932043021978178277674086884159996179301189592111238105477267862298885122620164964463768380212552676011469464620940745935826765913805673502968062603487568496682863479925223221623194655667603879967810456129229006659018532423714988332091970975393596845032660487502401865942433097463372335578159477532425524452580410853236948457982557863320199570102735561934135957396402651180468244121313549175406191232438637960614018518344798310680118325470795063698471935289574056365196483180093567806809129713550588604939102790266872574197783457762735810559322180610335614593296971054528071919728955452487838484438297443539567929513984008523200780411830196704987343120668739336243870421603644535714047743310995084231033301804293312886159340206091670264279787066742912882717090064588712792286708736425673598650793513741365872619884643818094157747006231399055118149379271252278881940300479950319773073500249759303849516432933249447026210810702330438088567833766901795605168703910993398153341405177606500803272320873220984104301378395028127110262375637024711245087110119529412234122542203955604140834112371540931133407165753190420705619763557448182866304765479285484225794121076496491833245699829950643188170759869690933261738750849911760210346368294233130860854500682395010844430018665195831458401773833208519708294264065956768635889561461133479587344943823313119442633547205641326440552243337902322200738598009149019533206923751734572808912853457293759654804921290485367713349860733301953471559468894904240165965699130262548676052632361976679614504965739079051449412439544480755654718858812172018517209289453931124542922489556084545324490165893405811902042979002937859458393116359675857759562234767884642439048884909011930286680945756047349025476717095017916984720887611524666207784567819831881455430435360412984504461360474537621717524717646865722464997079909204633332559090585983109327917256325212890979859028231779557979949414346914185460990906015106056974964678470866521939510029538671883063119123944188353847430150533379620457890494130337763532690212188672706019661688823325330652623427605348186194760800912004810911476096111491972547643986347410628977931623886431008556244912112417850878747825327516942383208917211923927221461507984289628743934743089816843173290143847037731325224972112296813855518450900945729088042999232231418450276683187472704218019812207231706027290875331260516369425297716714899733297207424648981701759077429463255381279046035674262103313942924677455038356097251214422855208176030575561989760150640780093602629195584235874474877637999625196442849191151723921473715805187248004949489820637270420561023382312328645404930595973922952924757194221572357204252573025149717001071855811522731840064316207114670737431697864831299281464025742101194177664565675687096734974476204413584177305210771995069496663712820344029509408716295657484517266017306843925924287341246758173058150491034374626935434822874514482892655356657079693535084915717547426935818370114034747694064833578035801951520190306102174272662005840426261985423593869559203616759952337464027442912971283440088582624553292626356995305098379991807043889278316643659507773166656171176940074930071059677744788972025736615885791573782564375185151257882933824185381523042862642649802983380914630626068136372447866905739767615904738325045351006787519188998657926915735971480311129219807776782564882390444771129088702080938818963722167693721232909253133087153157144406491790466662458166274144176102439967235387560517866655124133414100354511297884919851359539014700075254551915810852501525313776742823826200452459962681336812363599679643334778360002281620097665186663327265180705396169603544978307206294767261092781538487214520642466206559114924703593591093486620397712426427728742512189702864653786566746958392232215138765413718689375277401273638862179586143608933329480339133043960292659197874152173668638225683858784822348879024455836331230372973045384304799537653038413223141224479364818201552297337910508148395094598143350191810049103851301848005420810079838614047713426689477787560324522897322789243279269066451918108229092813720861861061041851347617370307747106992416656832960649228481514604137422521912656930216967776679392518246051214721165531102825649060021679392026133743617386847057460480560829490787507160767677785124135977719588438571223147584489826427885503507071423937152016305288430351281093729326778159276681360365460787756542101557859161926232989823123806015145707241111056007915673725401194462973717424620313551376537553484547961903063779362550545333819045566094963031121488604662005804012580013761582140461572222303989236369996638738025822505874271523630759679815718694943072358445511962772811833053965169125446213377245531003518440510141480811996769912575731386884160968842753529762388637858144304978279976356984210304135187014151920016409765888523520417436452189653747622896388900113528297757990707694460670003410109932564455458580484214020504147400848072189649829353722566643540186783039752762140204900671173013094022492574455808748421263114804707897555324971074954078064731691905848043875086134897399694829283374883452905443586736495271492340170298944295158607529477819702032141494104604232972605660934741870158144467954657697194522031099136403847259351098975608276224184029208479903151698066652605860392951697216820732380857422935273632362036158522158879607037288284394732720471750589920851186491824473424409358924213659822110276718272838068577410435890555812801638131390907766048836776655319683706911260738183205270581721521685443510453210851309763562542675621745988547016274823030384873938032448278129203930014808933170224859834885359266147764881099627993627651348071323217329465415038518039617826554693442593743160725346105601952274742476303528536169746243457715062503625164772766598297850761079830635607834667774589958800160182400017724800511294419938064325461597121843414246805344154941958672086537293244532261805966045325841448063009319268561479151958902403662104951920008589742705483635769026245823969073467926172435320541459518221871317797130094700457329242789026557739484535684197968770313185512949661549312861407559862955317589907094525139414680903836979768200395810904343909896571101365983316905592374347451764911797499432634975269532187273525513456467032344622624255603697154776628265444785356462891095957514913954953402182668460088350386060054774468711772551743477566064319261262292489680046442077293615286701125138293857330494767734421223505041351719082212121639424193598398593368828082391724105647539350249224475984330311413346951066623565187572963893779282977542315940157721165351671885908135766649876953529651664227770219875541658940803138296475326834436579026203306377911034195934949710021576748052024298982586047590600842173311339696447291777530777518280235939702498177911604789651274051560239796970175834030889234823427856171627365406693692920827819323767093266538550517214557296794975372090862252649866140540892522943395044159746841885027030348298309885717700097931938159062640526674069677450160856149139260540808857569422630464720941888827817460609655230543810539273941470870582281334685393278607488402007777097559158211976064545343891746147035679875305836107579022421342643864568398512300366913648415762189381684902783930541154825019921334615482812859637445405506890536245679243792693794697180414240903126746859140909961073595025818912823160685066381688119467536686511700517748956521535729932512316504988561949633127462408123075484699214880086269925665999765419576705194130693345645431303731088931185229077805015910887954958382651553732488883769599612384820727147152637865607754092290921537369034314162714450602190519289211290140380850590020044259047607909557366478665146029791871670775275257495338030973980322036192311658509751556680537335489019745762081648331398039698804034554639391218448851845388287299415851543039245294728136386218596705559475704214093077512168659867264739815797140922304101570974625517681045197041634238990759719252755556737091432835587343739385337294394215839753105784762799191866971852115033312903744736372354244205506375215366931368071182790155500018874539082889357219026575748259447220669745572898198706062140741295224802692489853021190082370649359360690616516380751359349180861635071812768199669835530662638216971048848035062132373627327468940359039443236509851960887496175446628909697076323540207891427728721118018065757670803672782195507912926090795345485642875725066302600049622419562521396877566113759114404620493563488683562280504749463874463471503194658602367050447945907430803106060492537979459949580224446122549722425196925585675246408434457489535027986587630274124011847304501576601150562064826041603966012922579091928039366128951298455712599245924500000142839419190813957375249042336006682516949433593190096105023032461439601827370065992698754459024166261910852365478252534815775015434975694339979195846277232535996654990957494919001440694162066644503510078142831860308811148759947072197569983651582138812276916837267066539697015830341439721721892988408400183931233028469396785342674445427086348468555754122532937413063684649884809904346441225255234157217918965643081304488709195097801338243238853477805732441977818420377268128042017662560826287209526381000354514494594542998301665326258233087531843672330337966729953272322028447339077166669663875236700582762118019794623683160325101942779903529770333194572294831183810022045488880307472933329904203639704487537553767129154213312556825799662852769740059397877486749712249726987233036489568810771659978925608143212183669604587362124151569719034468694851855211082233544493468577570894257657874021536038480692903587662663562173912601237796075097845788201366723341500358165201285513844854780716883481375347210638426142853084381660875638187671784395116867992004377601973787115229695494634522794209365755449563054388770808494006030939872383432455597921857396983591875524339074944041387087365704257472055380844629106105657746488855408875522792960980533646677572230476967458824595005184108320059352292316365148177704878149300916788282556093812880576776978434304345334765175560879111883732740579299000971060135164154487119469599108361005727378921114016849723309657202283708344782538336748321678871427482787055385737520759723170806814883279144724286437620901220832198646547280275243524674582963552827266656303123505902154008489909662463325123080048511830279726702798923967715855147089416631407987175907381649784015116662369954103284408003905566240891278864186850935927980530126452941414298800433555178377950744683912190701035897158889486701402030424488972524880252094788376273764238300919901971883938305879574982609302296125653352608735284291064770392487440476543969014183210326963723774162586806403369888509231727448799148669483589792635432524506240237199552914329898855386976150316238000327269450561827316534785899449191984616792101254426197942407596298132217174904082830999449793509099243895373584169156800439551461283817113963650441178661114752417176477410193657443677099827936771828572253937343546007854638159130042705839866349908978128192658221334151183426219501895101280995573028854226977361139183276149664632404267089195809490854711288667221162144582073974486597643643849134366399060262399127030592692260835104431845160089037808841942398146353679629618586792277812732383114813478767048701123255756082837700879802664500125196672102270724660379158805055049610416307527615110806205648593105759204017468179613798159133803168140619696363189844837526512312607495839173977794277917117642155115116340400030915618981153428342607448709278589228746675967747665490360569852396234046911765172207080352101202408971507772874140366641621713344974882049094676978251061083143909412802775525008385607817270611092442317759965553832915354255341098377083229571365243609119310400604166822804509330974833837378154626601216007913727688443500766405538299222347138663766372226521076053178024082687565449331043170160099365054914252306010214820294546766112638127424203149581927575738354277475430047784069207453531894779281300117199859783436384273905939321963378802683524712396416603517165465499984779371214007851796575809195530508916125233027226296010055019427974118366297702408072218668605355436225107975001530469241126082705474322359157139361792807339884851188553628692998403428621770236615497523123330908164364350719489934700135702128790515266531390447862616361181330750026117172102523670076437185641209323462634283408556298325123511357841997616087401333327516381895507364596525200527221540016733933811672926832796134005004847594594706367093484056297205992380766359691728079964393856546618922424931632556981998389225621702197997422611666752831137068414201537317146340202548727288562425822812978677418010346191117804120960816747204112089175026650362718093982266818378852154196775120098948765690832063930613799603100189457029694494028931817887836639275746497408275572931217649525451803412476273689372867881373134249251583376630745442905575968855667389175067542369147755567589925043677222798567105695114541373838400006964965443501046876530408269687287883520997508175780120520910224028420142040293659305149819989598764556014104345322259695349016583678374648071212687630950795073128494172196293167275677480836192932933188751640360220319828704287363658429793011629304720686756002003010047624355554125763607427632975156974666629221695412077472290343740543924125532951552679445055119538800764241558750551925663378743002205128702627212947307471155020040197694608825141648772863752727151972170977501202356715825565092323706084602439937503315513526167299899220156711927279401633906494821802948894198432871334148974700424158448905901226657039487164442389767567792751109253904656859695012393697133622154336332344369889224070490636226284909076516378213780996525086555780334013384025185374077525443374444567711752146824274033620894067098632802644753121427993569081545746354017204298246297824049331393692246211834257423479515006795336555121637215942756238605286000727506283673245818464681104794736937296811886964819410266633066706925780852350515574685086021883787201785219232035591494826287737414215922878818619547425437735899165819628591575357277778575862978960576395417741256195065274658139890294429552479395486854743980483097009313303973863967467363866263991502024657997894241994289133655197455303026140754475323352889487775209970044958177498413208820753314313377862399513646064595336385430002918407673178600804680348154569290120039690220614074012510976792512483882112862301482849549245423266230366583241768746528519011845462450284681643977264258559093033956523928798621609408831496011438382488749641276604153497868595315816776964354009909401504389576422027973580795177751458713267130150899175142478485048969777973896490265842477612280049336147358868499061265908776410930027605945539279188108551381977769225120579574476442126907661245988550543251508493206463068881171665489661804680036556358445885830908381554468026372916456170011003854862809101170302196333425632485297467299943464094858390428804484038510481887224436863109234788219896579666739036872215153911887660064968239798475812795798061990342013744299002146392653580133267828321969198332113621666835786900714466773484358044495380569715893375611848979737354947361220754489111695273554343790226807760689783052771577870148792141493134384607997106540240784939023634885786497345665028645378077072191419087241757107445427262550676769464793574278863051692035617499396793644417793413574941261821568372731214681502738642119718392623787781891967403699763300305892269158434917063998377116329616753175336597815465556571442201394912002014461224701384094598122837412234693663062881898118738238285752611289680808254869486344470339962451521154478823084741482544752351046739140146679355497113879280197756460404164573479322611249156795924371194854048585710220300474866490149983482456176770953591344939113218823678302780768225484495405833196116568574759174388776481107307730661346922861630585305736187066347676919618521666694120942967446988534972529479885749568509148229190000433547629324542508162365714648869441918773644758769815066681562682631635784519391388464946794177552695489838893324353046352161956473786792742623643085684274196177905713473399217940996806727595073903627534217689049647995840600359628576391661840041273268083876126477545569117512926917622207069363435272679742379952300997477215526302697226483617019467063616565009973355606482158904072027538328083423582752947339078645164173204796438186504276888791171470482668814920374781715646324841345797658357832644013246166751558596139165476272032400303605696291168768128382819932397875558621705431892389867572259989798385731694530952122742281457416634896014900644475258370946145800458338048980683781653043269544252497974256746647537642867556569113500207233065155316230460576575059125247807499007726824223941918579664510703058702983066350009701091333841884252359134957031990402786248861430602301958394543388642371879500355072146523827881753852108655594937576709835945983087240170492995015787340771698517055647527729677386838801171481923443290419128012413962893070703340080322907859619572163484373624366604760228009120170391185846375638912487963401077874252474055068342041057331985531561837178231417558116584238016847237288895270651272231206791542840889391201145226095529574663736859351225941803644327483008449186147643003137842886250927784015881698806129741511591783410464225346471795075693294117281226044902946311487281716915796476283680193877765134322002714500345648480166040043904817525469211943028206330752601878124630769620482661124580341576673845806906801858269588212501925787548912985212490414822723909495503543614749403391249053559944295146252142873487815935992585566716146507943844206520673175725662372775695422781146425633868739754643971811103669844647030001767391283236694004066914269492170415697448329295294981922161284126200546257682618863766761329837906408471571472219363700734442694118514699646918947789253696029751279834752004909763484905441116341243406073885926384822348498209590015227661406495004417778152713576092631037265978440315248085223199589256759391292216133540268115014195650881882791718312367007006905049036539160482817628724157935618023287683147362301092765307661140310346040191135363668538239052141981136060691443321405412144838358232164860604163370895872355519403704442224745495933377610441654736029930915042129760268432344143556394469127257916405483628697083735326840141178826605366042966502593451627736754558485676920002374736264608026882871287740817056850592213878028019551613272725601454444747621252647558493822177947737452081251707950170402364166149442961367421995378573561147960480094617278738682144744701311298327192937239367973873034581627957591912269658952809385516784724839930711218689862485691667474297089049841780663170473994723747790590062158607401128608740779357059905145925954434483303912440614953320634175463466531434958824074393208631254832780779488912033328242301518372046154112630562252275061580478703020628559218221209550895849320827345263513758870401549670550498134458659334087018668543499773814869360198599601672848062224931617766114450843274564169269683502313856314869402282934567993934389268491283675279291492814220994875698803985590632805493026184871954270920370918631185480956894707627281794612207179813309185329241640412906135487776636513188243559597216588918121728429973974216727553564555530853740483998000144745542616456849659625663031578883078316312678794573244574198234924039127814066457579694017634895718358953655155222567891737057506983499299087992245958025059101948481273751462546941864105722264459335543168512313114365273183090013593160612853739326211704144952105264230103501855622735695342173346299591710042675046342350362299541250264784205878885460865651828472792100124470388587326154712187042109164077531233634136267772812832923914664799011946148252433550123933979902017949458744346629220899472613295635542500711777857334828353129019504331643622743076264744066857546651535122012142548778536104965752855799988576015326527055905821466791457351990444958903772881201633138370051725563888981364466731993302868306746055146003938359300934714091818640422297459369120199858197332853219158461862308947164214325933791601550594233768069073859423342923037226148851263552705172364048717567237782089217159980874403448673380303291359932672982355161664498245749014666555346750471338672778099127732549148877647244128422003681872217982317615185189989424756452309883232646231100805610470640673258657544341143982324753331294811747254233149114194527378667077210603227461189618238741779674599254614608039480955038840369242162617385216814522756936353303237683740787443931762911101225193057415551960986077525383495021673810628290769439372042150392337405273665799864861438492852253428302319685300705918900832435520454074804803260261697344566674168102281395629741046170759095873414847766378338830862269793623926963988055445124444381894382762222162284336952500678582117049255275376550142407799750565002525829076371037689510252627550923229440002078458769767042519774851609930409513203643930058952062628223962637128083668990725247498795595726930996786432013474313372241181642811323001665088763119620935504105641860808963153006287001357413936172985237189972905595563958786546995211101154085677138896022648729625369971570854376937954542312391131672290046259644797712279498291211674210677901351525978647903878670084008887865887005024278438987750758978152036188759396300907222609572086754129493611519749304539482599931859229688034322854778684571555019043887230911250980521081074802974447649352522777864565451708789719269488733564412621653517594670866883204462521292002171398715548695307822098962125591158986832703686702301023679034049327898646873982494933044063384657404223939263490801377112620304391052179465145601272257011469161671149985792791855793230387355619220754793317068230959359464935474817595719177138395794273984454033454327814674587304587674100147996253601077078573794367669244655037877104290428299283792141665876563578934079985148735028653159717302281661221499109314951684285780642860178701744926110642253568656819097788229920723313833506357381165931899147143033286963271499840557550164354077771502484014006430994730350821212664986322260355742268891384027911088570511820548244729227275538875314790141649490492495209641175205172161987098567040922379573662029279983203573964218696650998747617635244347529307654137407404396340803023730234766390294421453883248391271461238496474668272239180989840881788815871877082233461851171196203944841682120862056599961232427259512815153474940386444651431858048043957297570727453494672802232505050293394115262634324131957097450023934985837111136289768372465069741427637011511398503777266658010522631983514230734877679307558346600007403288085364753936455610808691930482033575019248362786395830578619981108950387146431437088374967013031671037171020827481935208348076851027936090044668454379502605646401610904871561258506428840808133178208120904707257645977228604608308926901356683935270565476292294564532032127064429055618347332795838182190500509791512161385649717901514403741516940178020875379040890158057690060730213630196952992926317307257077407011241219446602441492200827549348103849883957859626195210357826001688485132720064143090738640331644311985033072786567316078798895377940759033596002837266440970311718110824202262754221023276866735731425027270314642719093494704949655498769989473545189285525008004708240379756236452952455982557963794315821446133882297048820232909658348455344483599725146065077814449132577583417240903734566209908227252486722448360955919022231593747247883370166747777922634876819991298828368945212384813203041691629615099957589865270471810511037614175368105012677277638693634848866307137745907625095654810859700409134643734126779303580642734925285876865750034573653804703151504016180597066508392660458798300006974689332103150649965348581792666534544476420172460063185043860839853865185217489056969357033402442423264506497404064411067619012654253217298927669816633336953720287787583482910954899362343298009007831300383868069711197921228940700954130666306962449337117763102544905169555687460317191617520195577718904020529860629846526620404437058241690086740057429510723907138870406961004760087037780046573433904100967069973646693998287049917903865727001643843105813491946705806789395546316239918361198401554754317522539836051177555017164984202323839556396546937698662916546710189172735216032159841739570548661353237008131039782851945062822088331719635439872716540946156984662506916171551014724933252188739702416566369335741614150771935111707324811426648247020626868085783248079814386974225207938895546810583996134739899251465752064024597949840765057736878645362561007155920721654456816293373268756269483782683981767422049284466365877923277383575671754849035828226648154114636565444809276744353836011919726658601191419282954478394241591515735659803777803000248868617044275464416225593088173267518489306488749577543734380262768966202572069633533648062833184945442006907005332912557697087343879186168157369666661018079007728661147966482557861776674343317093471993137176814120955202682406615221869728226952150096937968083565009695751993643079772486215242183033944466586286979236821534722946163937753223464203094613337736574969517270643659016001745582727319610022213103894056619906346548427439580236476574403672075858780912337332173641049158692939582499064270433056825511259092538387957997331352131393792858177030457933901170489815744401195162599043320163436131852953722576725922636987554687154143457607463280927810168855028307629899011988071235024413503630503713928634297546497556968369889815268216853855558741490368208710229408613903208704298336120062823857962219830110846572437701833802691647011276118493986373420231001398193762696323668589585474556520924356906560376988505736377775484226918946644833413131681413272875043492422587151849613378770414721954397342430258900098304971691776786158965862999657401489876334796355922332916559922712743351698314825631471244186704798936515480155376587984420644244225686200003547792428964380885163888680907188458185637761871336316747477941189530519942905224129438509329332233075489527624122436675860825805946854515950393048241703226482604830776210683533092144691286933578086463984155423079161145441523007170342585245879949625445144335630742955111309616385512895588459842678176984133996126194533793215723062880359754477253518612668247736962211135951878090759594293628069744794834589152738160660372347415921201870387988490268783963233553196877700568021858092115475715892476984647781617175487395872712914966306782181288348721513169536172208455957782979623431778148329664882661497055825011183493190250552072384511652671486749503638223563164495450193539502717777046041512823512674483471427073399144015974048504909981722663475385918906027651111030325999723463492430926370567417192732789487775041120307611126201702853653069065232889001411785260121636107088525784765995081726128944591025034363046186410832361267903835075220464524777855715756203978097014233767707512061364346520221747332376302382040358077219283812658969304250000603183444509119643018108054554611099753921963446124441049987013581326486283205200107315080102968386239678586574970093495857949037235978248969556699724032436346270984113864949998708461888373126879592022035571274032305053301368078057664593704007197532487508454285820965447594078316728570729280067357750699359891568263255756263282194734561036715836388525555558694121209640934804222874344759577131510558257590304312993381419136489164704252440717518943127838436869050237802237705135477183832685501960587155820328379285523512064387423148438978884644169195537350145965241467239318029071557451328914319518923448134748373497447589648729476319120290622984675326330611030745803801052738100412819454081637513109813850002731843701645141007682457811861084609917973813849682844249309087776156363460215758544145956180449561095777143600122893992579337814421887233162550892532847818824362193383615824400293890338588602644639288104159662767970973595906083765630211976288087074079687428770098780927544186178387084813830881790872094677640568207448643558772299477183973001584798573478015380691960437028750324845197983385374267811778650772554990759417744091796057316259607211293525912560115763364138148419964785627875603025293583773516183612883952229395024399472265379679477173068233009642843573479741956084136943335476629972474903555745908743237641232054461851311055316430620665606180304247829543220519827155028277984538679869648554486000727257404273453507339658827123917098926226775590570242846511621151762854990061264986559196459145970085263040408961646210570053667167917452340050740400508844740314492705829873934764541480779932484229456649240949907697269331305186513041818159931867222276942767219474304043738201655488479707532309460604435124670746257758780711318324002202471200329624056178491616454121292183204396301223478121896960800430601817682963951853309562911437657608979577983834016856620354561184413559981471664872160123343526337949967660950853999132674314830360509024924856728504018131434985840478426368936153455854156398851142249298341404108212637212650458928739226178000790109231168485743444349831525425867491734396646890870855124379361491545942622981428175560805194884037002960740343518533029151028712463380778554461688021730040686385173680396299117637788785321293796059168476023644459658946699096225753417991174009020727575094938181151871039422690248798441336690520656269172243741277266765598385120992272215885128826015192055004352744599271753759641887304574735493194996924312485003153121224492256666798327464815140868491807324244572169467427481495231908854158341873683207832435480957019529996777067280477790309795273356349933564188256077891133508776629680909087133783452253758738894612710150326760749013158708259995589582722825913580006126409270187854844482550852495525497601800037902448127435470549260098766700587587440157007319860639789505794459105333702203701410897177926589528010022859154171786387923816073755128196193680015818394555688971212540899048731833059427487804560419552804152010689723045003493434416182697055888904485921438586881723743795185956177881232064456221889164654503593810833091523244239808765726600306486178824702889293871670027795985068874112345867980828943568827323118559750971646619597900108571835124527144455503627043429537983234045672789497997181398495467565567091322126011288439039170688119597290881607957121082995756005803895465953450072209882453792112141277109867152206992620617441478939435086903587853354078449998631340170828839457030166532449153486681338867171559808367562005979605060499761937097725444697273882434177165534726989558226955146526730340570092128330747662163722517809320825573966947847305987652721346347538106217848292262066228339316990790113715934879671853678525589613108314712663184181397631024926733201169796019670659138812508200178651854238927018922909969433390082909736264846697109232362474467556548940339101841096963490087226747185295993959614301873012733988904172994597263849435923107659063652083020266415605854315952955550643462474948138763411733950299031224380089532088085499407480374345892056117513761931097079755687627718720732216188524314188687368008656044007763881308879004653431819836697890205904470828619774085608489368006230217240172371392443700681672561760788860656483746487548969675673646633991772474344062817960618774012058542492996796117015509772549218353463548793775027764573591427004590208011903455763545411565685783076074673751444862228715630311082857504914009428470308798284088048752163420724530339795214279289033866109743683889637194684581767103662983544306869825166182257844554983474320038038950499487471470711320278983703335884868087773601176922922316204068701692952028576152602295185117228398957515372560643087539543828693909014568040268103678653584202519120720158286756586395897280164632958323333484492409267275651464320120782551282935452678034865723766148497124580686664365475917437381295593935180090909656857816010650765299220484256503311175284280979443407039091914403258105725620769472705002548421399495937226973814265459648765282830361423602792594213120722802934230477655108219960471208442730140502356697264143956426438609311253606128282156156090483432567350772904653821257881343946826234906242291340006498685050376912026747328271062544023855159146628683329956748065839211517773551514753591577821451805357612240509225015384405681992812322888960932987876774634001923549633628832693061788077051826327530099296997608633034944011883862186731516304376482465745356818041365797952787479727979995501930403578835297853121415315880318619617279412475584280077878313148563958760138962180536616745491209939887655460315189511127240657038958655402134563205201558585961555772362693132789708203564907253967229096957224665287108095740334459723324200756218555829490513822042338888337406540286791342537687682075177748122518328411120639525979035081685733841197533201172488924263421489685728753126375068336868553651618269474088940941935865081745828296543973566715928223967876007357816381606886834154618125766992163205293874628775033196623252889313009399332149066629658390327356198532291783009572555935514454870475750652771423576915752414444474825665243648090500209290509592650553244934091059281100399138966161072834316263639623394549955509498960592508972219253078214408557926837598348853985050705124526486248009808819169718026627947990848695619707819116602153238240581590426170077791613807313196034568428062076418918621358358208390048019797444495865455895921514005251759234852089885614384307996948988196207896837610653348064066341410733010228322390697720765895110490924046892658371445066736668230690353729486365586585386451695156416174872200815282923348395764338994846137211958713748909308309871539336988634354002824804445863860023670964972942744973044579007184473036448154258806847719397617032315898574348731567180923686973497190786772197046930590780022430360946750202721332296146968007712540918448779513680560399314678037046218694409165213754759209196751035906248325559469891473647096717258405682231969519119837934136540750080144884875464024098526165033361624018654738574341268207324447997891992428227649541471634944047908573078311030743216937089003467583925851328535317668172479523945451904920415055974735759456832163865635487704259278100983511316376397604278691271588146318006448947833338522522709030724268589023728061747386585694263803216505771523307571702755872967588888289916990960281533284633255592021238655087349621230201963879827468055127449524424533808856576075361051225845508703204194080496477031902366342669254017322745083968833786600190133875135638744591608299540109327853357418918280496860431674214566962414151417356298485641272649713897518820354541597575365126845012816212152111689610839730275385843627472082622934445731289240096384853423350777103542742432655357009885118742827354413846675692866947953820111684766409963035989655882549181856662816049140343107233588337279182366219610566190053372919834545407420073029232584583403782620673745129463741348604935733352321745870516095859316448452149946205527231172929200422632997977976499766222027810908076055775894599127907753637724906691549085060897949654087559371948004776727536492858701217403338430487718487070510777282456514157490274214800291944409695916657883021674171860912691674768108605531070354282611928231158515021925542740981850610054827026069592546329648893346937123911925071172758150746611531900493931782761290941569583501355363721727437207619312580680939422582782411928338116541370279979664100976152206950584985781862692556334088716789049579011484493423984901072942528554860040984132755025165693707540219880620234680820109482155938239740397734192926837826301259032184620983074956685132806329994113941581604703155459159434675746087022522177904830925263154538208934248728337366165902578355908625512674078348386621759229993566150647323849281161403861243198940979896582220445472063545518516581801830236125367621991625835069485632123171766141194665110014748622642069887152191115054313507670088778675126025903700630051823085733387774271236999945818970962571016001982072830897997284716664805703815711563751549504794845512024561596674078545290252906311204978197893682347253793048554283847727354419522563033246909081368328525770093396878605294819448968329373381574719783825703374424817949725227419097370205828085384126174845207165443819109352225615757482474457561107267000107611927305911089547073041281032163205518573193245236665015036992577941879284205019554562680813948775460660069743133106637256624021169514863520322225353212256305033714748351553792547555915660436275692754604182502236065711850234670733631415509738381377959513815165183252265336467178136782517685632144106331623260714771757393009643437423367119195503792416586462385694943845354495171311795141478167119848490384615552793782932337116325855644986047384645874404421004375643951102676325738075386181434654761293084199713944070901332359919158789417292770821352286958460260982224583689460902055477129855184418653965801233031346522893007736557142154861910201016510194341617784518434343148173360096015562970907822565228670516134223642356363382282277762971473674664807718161746587190875759172395626064754675058899536411907948866092476119319430414964433735781752860202526464414080057475076758126697492033579324626019346328130973039779351288496324051613787342745776598056720909119113176442514748988020554816132105065033884816142356020542207506813257345853433322091919580517083856405901596153621187590959395768794160387067958611155063946840539044447537194426098260445278701642834442855957264162968995216666366088312751313629059271837912645482222972784497613624144983453070668941935336126048836121108034922597951705405775100401626704934648815095802951702156908472260475098690170866532015965698350216003769785464239360560451282950213911279149927654999321485060124647300804525549263689374023975849582717754922128652216592285972600412407388493064426971913785265137590120878818456846783634775661502637450371444435915711888301923818657793864630917688231288065814653914499497433655827279862289381135763279540465915994658284387503670440913368969189232972786172653322568993436309624919664357093201228616508714119263736826315768295888854804413888002887008794454093901315245418704232635156913668708646479896113907341029749985051110333750718545041153372802285254000210235460368292686814216704209791626511139741490992281513528725182723570108901482636945781743824132863524414570281861135120972283881535170799984774743003000333930113642112093508818928775489005664625410482511111718113648782442178954686231119207724047136790399642346392669404109336404512023336177311767699024668609555111137512525662605361619692552585847498976100073048982907286720084961266962457979276178470068129389665067096002956497404516680353001949819480936117203260657541713962006182973984549745676626658272728120756791046866831607757053873493229007584096362223389535782304029688787946814644480842520850871639891976257113292941236677402273849085960411007834860180427586824310807788717302279909170915881094735972356032030881740489970374029738899074770567796325867292611032891383932243644111512453429475757789415035396334912145226082554381992776999278403836542736329416314526736056862627693084137403826119631341235304278204666151586380300616849331547309020358273873285030182533342785960908884797926084851177562748589068117889553851464908413025828249608132154381091058518166547839081038654880161797920239575059796789930719830971016428414216952353796543152957426104571706502769114429438668692393862355234321116716420660997770875437961094528750297298172004681756425141184098987363392860532954789975604025236256370513916544531884329423087636655958448441840706910103152669238703379888428412825921748655936205580674878694950187430461332922319108772969202557494096060007594927333345766413025647426928576011791425691955163747333678056092955438531528071972118067913977458542448359647822910206680937777941510787464911875151455237109883406107673768394722485207126374166682326550964386023998145235893511078373161302020825091344224345894913369255811067049251324783169532959048140877890131469149068212519019962467516892248429975855712809208981331081918346216209667179912938737485292378711537527786911956775225593900050428473738520061389516664195930657734645681268210973904229158121764941804217452900119833421242417604246840953728704749492950736898387633641248779137942008457858554119349718765818040898965142937134023425205840304007245941721355413975815895772621935989949781980525670104071530190782374319324673558935029299764394974230632465531284857523252012994064824363665696850865633415050104863277143263773626301098323804694546339598013335385390221003837777702962507797244899302030184746049426044860331612888277321026968580109931371476348075412180617913611100286294685064154542247528199855956781128418294338799257367296936248380384934644322220478825705248762066055809307605303083247508831148236974636218428471736838532582070429067551550775354688942737430523067985709734808230755539063821796225947047062060202201845413064514757069213634604287405261530756206159461776949531891353009969564556609957346017382694795274414128674052525997661600773213378468871837953816424228427259278133488885957252791884479032211126954934420177827547268538004812451757423550228097746030061288517825884151710885591818322002063145385779378985794503984786414972392011257914402885361720185007032814123221703118948624468474252678587707421750142433234425807895908604747018129733627473606757647592127100768004788532292351077622468897628559404398299659189080944949742031830690171872903849552896675262921169715739164166525028655219139842606131036506093274065720429336582743932576498779360795168823414816531698341385464838239558532037997724320522817858845837264346395581774694097636335617906241444231070488580961074438991122061574666364286011912031969216192513323565154272669773928685576107888581747374581606010087309224114500652472716753167954780971214710427834713532885497765917451103437491071323193846766956147066180929289345793381439465581816451547969404683026552893331645267873698355625211774805424643524644763886461577742611286245500050429702873356250135587692043772655289564509986911229315710797521034202374634695227885755219879200212089652863824854226879517570821980603379262478240072395764867083767629442026767117758619882938972244368453961829996743753663226696337895333244168951557830879945510784371896288305034741588484492988308146567270953162041710768935546505971131706487428347602311735421791647750846704112166836435982749100729045657744078945650175693081318067579756566123688447299541170396276746881200041796502109198828887357272162733606510461502146488589683385940415206878626024187891267996193583952734772319325965875767299381056442281606047052699029648639255602576610252378082327406718469850638091921011341979727854917587542989631877534629141527514247413603264936660171203460978191507737754691341483925048279430213421213794356711788391849436397203171540814012022915613849096652758736398336589702849128271986307466057871989002872795403039248407428976285912959048417105056766438827597469500545241218436898833580259235390905514780125548913636684996255892587291759940628533904609971734474466416049310188406573845481572589100401918674699202380519658140271960856288260922843431430979873689050523357686460957451319482945501866304000966608532047510174255959325691952847300657503794163861171289801598906580844105130501014135796944863989433991456133876717272221773686751092722229729292432288429009187044253773505386761518618282198519641531626215393491939783856782908411791649785629279691185461149642570366441099821505798776787195950345810760554676117477553701853437909796033838190333140062595378922595511179429142423161497704506872810673023541038477899542714378556043292110358620636439955829362482905421699784525480899078440937551813690573362992666638838013426814757613602802142236922388012689214595178111314821317580468699443935030578224359241020565318753673566007121189468706433331418347508391598870377408942160324354698933959375479009212782698728711848375063166123014720140906299953702153127516650219576434877546268793725144238027597423051185584758447330373581585051933680589008448731184695997649297200080584758476509153227668311461488399032041219355991821094944297341121485591185558910033950732284846825976715726841618288469692287253904607594593411162864747798422540866460166420997754302245165939652231406275879393323973265749187305546721250005974861678573672726352654669468999903904842835483458783632754933033257993835946943436461991387476320300745141078686996504360387343794750659622779722086688882466182419321083124980151484084308063583883212052776388211250701895394538265929872782374889783154534811646892500368659657575020469297000477623424693411945972251884266367351591858657510659826379574851158927628834181852080715439081955023073933491115204853332181077551050353058320442158624722423467364897332826179561150942126142006326918598034513982571373955402837710730567946678412983875680421184333106227751837853642451116733598723139128659865721569894167731317219672702250687784699296175559631265557835418372405165264427795006321897367937813646264834770361808142345425299018224921879462330538493177090227991687120148399136713925017370610724867970842854841895129177797112717370893180895178841112168395432002642039551748254170739029002500994732179977505327398774220979692602193620866960958882399083856113453460019678295747658596661581678325547091670180312943662403680052334398705849961831453443244116154719643030809157974937748449102439190358738795707097871510724505082042165668771087364449177007802286559445555253323062860686912114366919917333676010581029216536371704050132102388942507068866799263826826074209360823935204011738619741487331807359451812881968843677955677184771523066148176734588846935715822826899621564405150867543489807662501495423103313354357446218617157309830753037530985141007108398233074611112042897028617329913183455033541639910995573476829883683222736137716686529145363652310399555429113835798611651781970541619753996427918734398804562282918001035545379194065234149315098411524097950517343942113599847002655940821936550397850378292901383308500070879732714765287494622671942075036436688182262818003172025504820838088668383446845737893423895467030105326619779788555581586100204053839331871952684819098647451395544614614326541512905700590609506769115353356654251212577277155578148030774192520208108678702013367375493804047132498204399357020664844870960546470714399194758226621492885963440366774992346072214695316449450336116257538623732936359216987797117051447331863744610180907927793840401138153842249447535538159324718981090814390056253506015033725737819713330255045475161691484598221013300724836493064642831171078109631132070819250501408327437840180467883409262338777584053421133565683381466533255447312137223309212924181079696227699615870037047176976618656793331888003836482562387959831776317277542759061723240407327914664855859845081969519797955562884703069483785132371239638025209067103448314019531270543417165376393218127604519117418636634846428667555607738794806818051088373359239078665404006277537382156313032266160041105620705993765635675725380370364868726583636769964136175394622947221095928604630653972766842929760390483834579065662540354047064253522728187155069508396648949234220994779323980509603127633172875728181579559060043990940559474130609224166468656393869909951375882309212932400246490823374503978834434274120014141705833214738463474057326516069096862922557134828939258257244789331010097038240927243130660816708235371063858307427055460313488059883827900828692627533037926869006113300788250831433503061539421959364668133379039646956639827478960742096794739734838421105047104293814657907519869774528465075280931277131910630159777910960539489847919167566590111567871722842971527639984569350253027199950891522686942462866792347012791038543686164663768749183475566684332961284367778811217524916638127851043401816846989316346251701156313278563234282303018047880622554170310611221105519170761823370684087254287006097455229150572076769563887505862131159475050024069176941999643553842393060905155044568799665253488014913966891759377704430942125855100993855043628146576467243432547168435353167209978604172797989900075338676230699957888733940374190998442049774269972220173059140975994269181192600391417673862703165955284007972598334323599960027616895517077465394716014558231918132558256045313195856626445492885800221128276649092455907148798193968764718097328424178683977892843967415046485361666610610149808789018051997121776043070008686955788701871029377990147387079555877810413234317996318611128238895256086341954031420130249221818967706982766582839439825670698341685122006571899589836830940858507516721752267261518487933824340213292923650922632535350797200871472198345301766513925308069159715548981321043162413978871616902114862751474138967857144472070322740607420292710148081887568162506878067462441166937767926387789969428767458287862841089048050963785386902367313737340442134810021403957301242333024020042014827620888431030746963484419569759638438392409567358671196352688759456111525966677736078090431013866736019472056324132114014020243580720674063860946351063375432542287627873770531762119063573675090281613418740274359450193054458149711387589799231710222006760082709884616986658649706120758516717974159202252379785922644559623313064254881021326603953118333241346874666921545104680472897681290191896215575108988875750909748198915026387390395528390978425477773042915769745807569063295332620822593336954131470985581836593553493379804721830627439674652140445562990528155275184761140700242182154563407090713841427668923772896045205145789545041152688519842618425910507083403957911155895903636809456125154354123870355575396644017122386264487546930568351792495502194199759288922730709437816211134703998175661436004889752513116235349771807091748976820707019384229904448108474022262350782566204524409444873404556190595562936398008269535656727583417753071715316446206575021789762956686806941774945642218339230443878880880248903359177328209528707905475724179449319927664820839712547127391492393143769512780614897410018089807096556593116678626411353588634410761537581766725570193532460541033768854541110729089948321566267546057585163543117804105139245666169326280082669843611572723757662478860789535893992561106333025638743994201393896310771182522345539492378058167095046443769659323753697609564291297376481143608064020544933268525747269934120176387382398129150650108672114766495548304756306737189290150290115726965155590789653291543775371598304261432709518146283411880633811591968762575532870280051756431783661456497282408466963880503130971156823536989917885812760035964150409745032625623995499767202638207774339246712915464988428856825347006824342111184178227082828380752570517226436042795144328599466740483479602666675052994705898499650167612385241881838475809300579292894804273811735642554042580527955537037863533574864451707283399614274732199985389872442575859110329116815767327828559939421323632431776798246172587853253277139450441368962603971173936507209984414678421215690697948397474398654485950464496515579298383501417053852894217188291109103177697118349291576927853728172766268938002326090414469288950618745584738429970943268259306807631912466092319152999821732872582099479748240533944724922508050463621836927940760730860019566877171342542468756788259169552595100215568980698665257642935141448725068161543078632113572583176178656079512930215793963214597310903735551827117949455995209063730923035463653691012887110572264155843665197508257075856604846303611942675001357576285122594695491131565294472393298018124691433262584852674768927727852025772774312608294957343861010298476344069368426491006067180910666946644718715339350958746175696089616257485547752066676664113431580393382880487169426460146583943641736998918911926786427963695428279376393463632777106653740127211313693679088244311867557267279469323465507942957083565840612921632995594298403841601734936242156459815171361376082387307176534968157049376174638626928981831263498026135725242098435121722422354499598651033325375704395581588418964555522781367999243480053215294330452564603908199122674656228258422887643564670995375252987218063520217831388459617442694591356866524271436415428714819458583684255387262230406566602032917538236979029488073682312605522454084293332279559058327226544762458533378354522326969303611229419476741247149458662223377600479421697971785725258249517976060801812703243778650176258193320462352163014063934323119827901019831484007026022477084217372882116503852877462711853786797272136176616528064706067110156488703069632021558493608363645084212331672925545063232475755163551077258913698358461153194658098297056465129068726411237954486671696432499770299255928438094318514908973763623107535868821534993302399274733957914763170553156103485347415485732993396727614275366328655431714103435199922510502187957693161285283828452332837859991777156263413105628968005808580264478845284053045490879064723617963002078667245468053473020377836201115373051035118223662575368630532784965016493943484384923312346918395767730082884310391148902759525135189040552435862419769837401208840979979519874509402421693390484547554978081747937992142674512553282309018725503452378906748620977275347985070150525166384521815661952035833922804388423398816904864742377432077218148260890052860459172978437300556497912574056072819188525181316624426258963892625666749211934862322558817281150139161108583337856600528296334611604538968665142537422519846163798536191900311357205477371594500581508687212961265924252113660314015472750594078595767957707084854246352739096172597080585883539811310103654069195143884223385013732156777599190833353527089199837585785657117292345872926300654978920742606710779147287086995654994111109728119527802869258200530550107278878669229057935678703008215691237981593633055686810110318880721068823367883026531505860982823894402261401503421980490101083857779494440557114413235799735035049143221268231474230895538606449598933709316987471259096077681586783570410723507728792722503757568450539344902791614419672985594616759139131517140349006132159340493670495439944988520328116052731265213764390938527676678792763289206199835241893187386312449422258110336396016525416525688835921950858299109713371000147029205222820648186522795466794544738372423348838665692816269539360168506245346165293502908608007213498558550929227509136113326111175073492329350243869385451707964688856915526442316452149162531388235128589159964579045320049665785214554454892854666487656923303328181935438040467135728394476957573822197330136482512267923231824508425807072965960721511341999491905088881688704886062149173512208572128332879920846249967912450415774023142752265971932958063752691382426104389046150959607323427768413739437949245135254841704689419089512477217734798811959667887721481641995783152055647588321101590810040130403144695768886313935769082002410638803287265286527972603062860977970700460183988493413653782808611537944997680985944108520244069028316857691180759148742504599390768049713531187463158224154701361960606914346268365561247955648356069379923750947314776915749050363786643736162322023546363149379114810525382479908020553591880775809645340267998351801721740952107831431666737582897586397850464336340577520421904749863460827036751810786037619567916399749972402080353174981449737285664783534136696721756670795193855334018040547481492204086479092217451438866441835792106210118692820403608022179670980776297553263725833176642786496095725093762860658212680907742214146516523509172101893297166931584372945412302036039513217810674430648796674846531683248499359855422114974622065702606493011798666592042935028600292371636477271094394708410730843340664686974307975457480103935944936366430362119517483567813243543850133617528481628252972756865343955097395669069005166578072332055956646656341419182194378160088976574025355444605293431446640143213863757691756031299054881809637227371732011765060043971767491872876307250379836013937268715226927730606762876181519174505061211398081506705721101155632806895526360733564880737582291320883288647196581456015405002048531884901954602765098471533057539249371134772032460916677822338352782602797555060284093539709918060233126087309597560447280652524246492911117517335394113690735590410248880972928770612342019949943074199973731850598865631125298222326999813674538109807372988065340925179216516754722136253386022169889584844578547141108156516101251624777246712107890470941686182565313730453046654443159658460158474519016216177168238826261661196053811902578547467298594144096845008537661729108700218443430004522965064807390926573605973628436518996241526833400024587005721797500665222026253772863156155751654443442261352934812684268038478716929699312078024048403478977478291301275388083467810348990478013368661362977071861837719747149632818222936712429204075655540778296623077679000248977684848497614213711654994125319735606867111583469602409564879684409221761919191932376357350150327089266780825784916311219140286564762506527997371586998113361562800663754853099519273802631207274857342069495946555705186455776408001946921433781968403089821269758750971836693463581459619024793756985345854722579756981029095311183925332203878065816776263790302151466714217963494282597074059635840650508166036739692605152639194941092741103964818226809758717761441174395661821315233788690844199254283896866061419332373557707072413088533062900385819998549469674971278375433882547021936874546323475957013488901033872750750723947490230557163985753905064658225038261742604000917297516693489219566646482140361992261242051426538271503003016637859698201625520243806389405091479958934944945468749783254915782885938741657790026369917669161848167611967247366973703778009214199845356200982850394193995954705372152997337574340677636326701958420984966304701748676614502176433647979628926975461841422414935018651984582940270956141812838754885868545965691443914911305871263479844550815736127017031860618375095521312218484683345278425354800806626310198095895493072009955235818849496111500582126178260587650298703167066260808478745033076871443584956173070336008106730533577700202300414271148497713458279251477376929413184369466111049120939970935380244094860800413139465730501548736865344679081945563342854698768973761360040468564296419578361584314716763471704463731712475543076069290981165705521095668041769523334430297217383389200787464972589101641584153923278548873149637586154982257233775392519657980358391004839658798894479114989573184264023285714890205285609860921353605512462335523295222730545551273513187158964705136455062520730989418751521607230620575591226994562499748354478269890980639243771596834445646207279604538954874840340451581474767605568460052722793419905217168644876123046403145395439033157726694567592545149221620663604385439033691349674092401097218906010600120664112963534368781536007675486909910052359367741298293970845834108015816281767431919329041974188877614267651042070734372223095920659915367999056315104513522443567279199267351826526021798051934851771486060043658757476225238054776312579484955495357183590061999200766056726457474634432611064615956766062104097402263667924723978576934929746192949593913448370875468174781021618171881382029148529775536274803257037536520946045789292003649090983779960549942216212801634612267827759263810043636589566090846387083478925049227078405427792275155966223699581392104947806116476404003513632881494156300518031375308908062836980195844594367581628029805227603769833221489146369760069754155902230624291506660181780428586595067057341823197283003747823383379946348860106655057253149604554268159859690943590422908424547103635871706956839628812205865952791582838042469486285951983502735655273151308554828175753252417899962714585906246464048557881881564348712520230875115986884490244990557744749716928970021843115332066143910023238870421059023323447914518913405440038869569794431840543614215668463134941468538074825512172623064310185081040492734486855719655546702033929359625384965800124137584328667232568857739464684512154576474188782575833566922727495279103586388302162197225579223335686511418504072656562755090123885515746951373300271708116516695206688198267779171498834398644601773801329761176161155783223465518303960956172644173378594740997881328001703472284513985182680769628122575686138330284296516197312454380799691316689978763081911988320369477355450072128987055922188695478382512553217608844910432625217601932089139434876489241559135823088923075966714268211292692852287684755622802292078818660210370919798043400968114596971084732035294636935619143275487528065253384204430096109057128300547556125328216993974851933398378717057092748299437957992957422593994337368066743342671386332690018897545795321601660878573032938108069420327983189782195431081154529479227481905546674157911753563887947461063689293475972448803112725419314318352003976699278908858532706882461134167700943865196332829057115628451074366473497903828375564256856695607980969260828005841187291758466352233605019415968712238479657092061679091104234415380303806359504814977869095262524585942735035397701562136371191441440551261763379275165707146777706646053837752127948545311973217834318904543278801089678328455258249616489465656018787586563270274971193736791954015661949379743120082493268205156164184216342057498281609636022355671713107145739149265768700432016821965311067342335384508774172696424286179505293785246929753236870322442404683023537783033878359760976034071527988311613688853285612353655940297798738413149318453446695676717286489330374166458573953007150555649483557040137324067426458680729077612363192217203840977533493646935215592400148267277110575941625105531880854030479057010783546512327290355859285421679235008388792659638791558916719429909509949819201759695975021340044853203167450789637401386021799550187400822991105270691611663297685406200814933890934037245266752994137306165244955852130748295697407018087570805454497262909254915312126973292946854920564234683977963725933759781815364812129800095226348607498269571136523461627738510643131141246423619034850733769899948887552917619124653900804735033492069855894185723585024600960520027474359075784320830237967395604142299782805945689678382247536844690782411476957467300001918978690401139147454112998057474881528548518369981374369592552600633100454022836622203219199335644402972554316044784952097364191982818716287513646281318170891208727108209603919090134027052294443588397560207015956423328851611082994587958191216973436172713499381825794535382610895877879632801855492584667767702507431880241739793384168343672570295062511194128587767875509375285745320601730920174134906825849797336271472631081400048909542981039188256793830290324596337081539301450498143079670486205783302205266719472604790217155279042994979115525794298902423324222019946284236427290735152795968266150446801396741339375510519419924969970699516726243354333449140149396950194969633068227460597218931408950337889449761640680252695061450129503490812148156736643993799830540732032067079673282364861774054631329250040417238189411140471671939394564360007988094595303395544978208547716679572773891943168364601881272540762966235675596933935847264529886773269238505020655207745155241015395873125859744015050055841269686870280160162174232777330846623180453978548044711913189854628672951844855885203285846122994352130450851840343895465566235809001779984721696092161144336212825477315185158042936335891582798871499905995929021630484103555650767980739537929790253968944587353292061539337462091291676004789325926632030661646566004371197681804471028775470499319562408649556093983383297788650880105037682048421201206013783506562265768668361576818834617671767983374464671804740361407437135536187720027813357784956556800946251151961056354841951794794206637001880023036645736233209360789473458613376670600648919980106837069282711930264574271530418264916697291706886023651169712458230291702973077118305127727029239789996288188084551490123541794943751316955758937666863029141995556216855941406937263677678969922695610696415243076655547873965068896291017717021297674272334219990881555650346715075657836487036750207218686472387261335062354075854407946500702459657103847170323928207433327832400159800758495338877684308445047352485864578307386803759510448786728792632557865089391923475388044864453453201558449494009091988858041323594034860047967881187467224784468017918195497777968096576291687434058570798101121349676583770901055194491124329676056644411502724215795344899159574949767378914204292537920886996484141822231149659699194063332213656668455669426259646676004875899512142373781952414467506658081497697576793628074010210063575026815726761085803542501761480982904724667573317776278946795025816750473360730001982553532023416136200282176166953879401480237687934816756209531565982934739282148797205490993029180555440138222251842178670368200246735362734054628588089274515850062663969170154504362378106357914337918750582003552450091064662126572487864982856821405749232911661577883617418634057383108929095325843951368931317088125596065525407574300215135870634868775202666276504614500454704112243448115331229830082671460106191901675164917674272489671216995758848917674878785449245401872710420911651701440461294082848390134128222649622870167333360894475489522200915851259365161454987582420584509638430707555765377821708236666228699636671343974680182705622537660382434258294823615402326161633011536373249330200563325224432264877953958969616978734389062300599927778899321793939560691387146468911478454019169990979682792243396929850862813910597158895408660491383262781778041322321517963744529462069979373076179330917171380365836598009267778232089227782567082730167185357022085800161155239171709158799523676895491897403047833568022308539335176437097305049365158053541013138354398162770039814482305841528574471313550034850629256033833713374862428347069731559188136677453096390361349351667232822296995928289452010886608940365233561484569811829163328305594745541438652828327835267232249845617750708810041971931863743029996437275486664607726636092457016440241620361025908681494028651387334872631393218123924663003594627856609436374572748006714188045295023648093105417939617419882617900758901522167356649441524519095146782912814579603873948327676544436841792319713417934867997098806564475629322225144573031058904825484047983177066577158118319685234940987995184773864411416360896179180095679313569314860947790550704360663549137481445014883511245834117156075341202233421847394356999680288204677103785295912510829770930640849180756443862198419731581759645597434965762027898880015081790482250399304322231760966348342895787505266419679587708400619094871554443324316738527248888855766172516755402194895069063999727787394964245626298870989224229920871498061228503593712978559869175069892994340901388342830961660903778401117055885157383074005204094119737045925888638257218424412109607956220568360774233704646394512962050207580189487969611976663230237988396576557916112542614219734580756175838644751312565353558162440095797871649601922758144765773410539121882737596317704724816316906041870426080524163672130021767125237797294317935319057205255393346521551714156193994649120002831206079710543745830344276760794990346590720274171556359647815361143409567297563414851972374297908998694987152479532967281812059338046332321310737605411942905427509823461246504255049530793099017637505792847370572861932934769026766757677514299764628162154779577196211658296341810249437742663636772893918540088998066906281226121973058723074715348337591625475489008496788633560252907736445621178539429759297689457951138026765906696446498415351601726160636856762927037837780845215972492326842459520122326940853759128395847193181451804323201620676679692628670381610067362409137090805783671358992220008882140231594906936501851202622990371478814958441118820665996198193808574520944499907912388513018232142012219183700740479119138305698405084723664049466105264410992662895888824877775801889787403264811826605023720508366245387409138477747538006309275867742979866726317128363611310629823522792495363635023487826028627037480394806631922594890105089567005683327828880777429285147253913899453210704328508365165366064850485542010140189932243291041792077693547369672099413780919210223462257492738162636294852973487007621710203675055194518541438711956629550701835361866724946116304757023135650861128222534007825492905736621663690079652380784818847845630901327840670834177888101455132307513891072397027330801639216575403824101475945133831964665901507897990856101531551441990839153373166708950743007816852739893909322056534094113900957472125393879665953447468261744306011366758505977053919093207959118231391434473361047450138697161482583372954193221549708262141848754879872322732835508408694150687468900230650462171689488840740810053861550753504903324417597590868701978961383133718200549578344721468897677471804780604356233032079811869826399383209606258063038007774478505883711291406155905468244006889078616348650031930067075661405839922426391606616532802730918569839566531241569251997124250187206897838186877381583868316914245020475673693064474611231212328158655641852753250551824988933804352664717090526370207029396371108234320965201966856948048478575384001176035328989588794903213260668521393825754419598887178459620354449681185579155985192118446128058186519421342011769846515442554750437369223620553973108405294260131132555026741969592199274097418983988073893187111076456745564167638675164260884389921789045747679468850316580799054898368756398982292023874382838464481195922572156000991032767642208902002731170093611009480505284238413854824939332232708055508843022110867860134260693083608776904421605969388352761821878538798116743384663393574652511423460549041104363172528462804882464586105363653637665046199213013735647041202182495268513748892558448341845667334592094144547517557886350893703067643680123820479440925535205141049929637336667148477846403563860352321348873821299142245103580721219892038976561446305446801188164632252954696837516300122859319878603583985798669093660727557094252562484366898858146844097245980946798104162062161667019339607761913137248716563800190538666854243290922050016468572122655463045900496629170195001760733671116847178212776724806982104852817595552493431659602922799753354075440444011611750513975133159877959831710161995996792058439800118787703111153086968349064777549763020445287203921543012300645947364533116902013741424597782560728475219297157565910195978132601203785520999683178582579891027498960707371639573368651659408248654441901032995939922798752347498866883391546261194576344552554847329479415162591063162652036334479622008404901537503248914324098006592119975577396148918996694592734265802703136116195113102566202420074722032833730575218521447285948420628908625493159337902401453377898813676886426139330796094412849625874212437462032144676879018535460581386206012622011391768378838008345562808953135090209294074358835410355693633147278681248156499130679884199111892593485047981591865868896937027227818464123002936650988074115772098533129024382989837868330628853810312729728685198820769554379049504136861223976491489124333548530424067533581084916989050896766580804096096886579425921315845387323379676461145471990031852191139009288294463339881244571294213308992641860970320275813312992922536332280385207088451724854978925669575812228309180306872857550528634598532603578137235091923004554852718420578843302629765451672743885569003891840796186179105210000591565909561344816287948879711090289280241917887817336326591387173565650462326334123841762570868876394560299704856570833084815042854214691823484402909201171516049004339449248859348757307598736575028919501416862979816774802249144437790510062375878713041214142416281807194534162255549747115526927495257177526312204940984808063965763094882451820001746268779411461007337756388946962818925064357219595891765530184601519186490320183446071097059142111682291785157918775914584771705213472889005603811638370705552700012674709941114419826014631992578443530080872625292127137263561223989315600719720963268003355782405655825390680435628399866326080816600300580915038667735341499036620740327392699560663668474701245652837548972704054702170697295725495123392524502411706280529680079542817528083881793427113869339976053697385080161429683698827185665818006897350390613268005685482704949799240322438581745032375110844117089354189332469716942843706145337440423929623448822983239318902003574587397961335667528251321808401425083587919121142982110550322675157935014303476984236834569722295074424142359617624171528113689062456144180376989707754971694073516008422101975196516423369284752759936953367099231543679398549404129188595494705262662888841955028166893589825928696884326107570853211516984487498542422251267387984031204453594371337551007012891213742844819239662362096226808741790375324492091403184183951722280558503073367786643728313872095565381862765421493835692488521936219060565120797721693974285909836986168538395431310710559521656857854473071032633133466822217865364147790258440493742185732155314827483169694230419165325786264600566192607423999413072561670448402080170282627630609378840531362553429497319492689936659507601029843436046564101383312172263397453349220140892733845308682860094546479856661359515669648886331516730317387397491534310011491327119256129911938279747528860477972574739486304947900042825738034471613844771228345504880655915691497987557604359130457977236667630586577829258009604492633947224137369982008970318848603947158661687168389390442302965353150630722734719268375725459448727981777539202768712319022530624062767237173024106736010069173916072448764215520054564000022746909075542545749525886074158933599063713014754081863320253092378339838596567504740853916247559092449073723584697924559109275974821535666891093898522008608436405485807277875882404100671960850220764166649845770828671689064267757040616991733234125752034143287552309302876145309002004787279063013282349589068971104914908398317546287418931465333148628288633487372002656411669209133029448069378495592744923007001191957367238145546648520145227835521708385128888197275427119889542859760632243761927517131674956359123335149661722271461496081858863837520446931871639989836396088731244920045525505362006416381033192513372308555780152546942275903485445021727662080383594382264834011799747095978647024394894770114754446451521606062397874809939483715023702214517253864273023288729860785501265432068203474292359882516372873962305272679309311437896479801305407243150113933654642460620438702724701539362277150417350148088248755676526329641467355337236746929798185259322147137919359483611063932302516930873210721476083132961208061561629629531759184333057929628373964852818836953780530755413978147845926239075301049583461750879842254970710883998695283470771965725231494057496572954183442441555636950841692135869726811222960791690278193388009157750565354438069754826409613143963560184305275967141850576839029631171816563864752790891338049422541971016777937654284999978721696925704174780615758380181495971240945521883137731657274400235108576320176395964723429503901651084689217609307826509864309305742561917233132275387091123003167516866026435246552095857558450654299725865404924903683534682870165008074805989045935211352860729353057067727472520097140686656716003596222489998744897501318421263173084236278533535197888779052835209888494141511981315317797502128805017619726537041256368400539755234708999698404020579679144283964022752516607049297262368973096935956896641094441691727357762750586390327303885072177669399079254680142684863866679443812760373693077129250594653589257527359645154843839969503175214779255205137846644106131875629101156577003302566579357478397290878734014739081555613548364979812501080735726861776339962155104587829339068127246287958188003144791255623093518189040043902310478630001762632578991646454922084127098880309610544740126682550608466336550067979613478700919106381327353272377971207219797210204822935378591522916478641459329976635385154970875550734262926965792224483211568780541685097780940325282773004845477734114573811350440187041845153064064140486454682550106714861608755123035915211543904555553251338041169728985203745538036200132982469583492411619668731276700021258900835689365370832921451257928408260898464068547944042661365777276089605075430364728397120748710500212882316994057153007109040289222005501923647911438615131422083938856058588833694112584329112781245861845536208506211974441789972517902588748523789158775273725524075662594044752886994751544062874077601678601783351487335208242592292620169994765866069229222042625881418397011198635786955116820054732141430079068305630865348031387979373245151138205338616039049113333237294987798230278742975998141886747294376978048137698147611664950414770659763403742225253263728223014833058469526228099832523472169939408051528092156209505695323417659617178309347179673456493763877609011487550709552854517983361086333613186159427358999380161930354890834514602521831991994805869262543586364639015476149905289764607504624105289287217102841063880301907139404156138106030690910166259697808368192914108040693536655268487648349099675896142666191359987527984131636241083838130334528623090337930605052934918858407680113031156909840730885022801471918409518289968514938046165064240710137153206507696150233360812687543069166601131645503996430903398037959719685852362611708380241711882872070049042097130844983093436432964404548265771297867480392849020953669489345521018482205086223949891070963052978724033004019156330328704282141714158371038358746840844239841614054349117923579283472396184113597172555870370620233256876961968672725904948309811382299465025736283313273490328778864748353477613616318693196216537924351999751556872036091078157875370238818726146962644687327809010414809104403168114467568793140153361368943022849836656405152137214336345924274908063742803508000751797073722532932647694039656381983093525536365031997826694990971340971627472225623118962523319227035040628874991322899237590745622750856396519174575119560736793261290969418023659776471826825891371871628737485728318229020274162001941288884607431559030953718997781252781210904174067724368533249224414732702587825191701362081380073547804674195251116315673617717794354892896029863907762186492360325833005409455578596801227457016335046230653194621225051876768947571829630414004506454700225624599613453082758135299877767239305581281359322931975028169442019649614074186930161748842228671222565353221611905197383364195783426397089000207288824984371370174989793877794717619976237688620273167135091009254912675096752180543524443017461444172044403809111297154794564056972406489081271492163500429331377010736544849555588085592038128403063753817876992921791547466085920079846789109960099589829911982636120193595538673147517100566214725737835282055148432032500715258833946495623173799591968895662300085078936993109964256391678188488173051915818087974088819141277982367387348259616338814536982775622314737516951782544191359859063463486605499140668331191248296719691833773676881109935409871797665872402484564543474333958191422819471041567079631315100548077103662399351984256025302168835765986491914481446522348205029023790045961872472592511362647044945427990876186154908546652962195441473302703078402842889585900896542022425037685035731485575874148672744112388496570520683907122828897432055570969286509213872140870923107579130230908641925237166286239038850545910109189107761261364440058426706341291098399981373959449262568004028340518491267029104432143316785354630436111414956085478044965985297995998929491971974095314144449158165099058885390591529389399394713993329236526458641341425550190100932895019836004269572081006572351318743035858107658504446755471897274814740466877804146571369774171297156330465920110225063896725958937256973598989963217425673721596641629646327077014178550290492128543966469552349002770373501853389373887583243416062342545330389907830002324069550423073459552120529492693131222182291300902092785397131455471630221931578329791403135997670242946320225133569414188213475891592638613201592466901324537384974273322240696139448611930148929209057042484439720841575015629125373503793008806032877658019686902313475759217730630832893624440353920988642913730333188232293339742758030834294613579747367140371390101756487098301907213902675576280359635099258621489717551000387937404676570434986202255687786819708958551716873252170269754436140767367687663923183878727356147498784579935889286539160981167759986687826508175444200836191026596147290946115709725145752198182698910055418022672038871174384914545694490085065121958222134715435887770379475172188093279820668197626814736005936551034798193935893355018999596617588724623347302061082273938499014023633053868513612106508561660732399626301724074589197559622257564302339803728506509131525219162273320677992946467389375581234036292582055888072618213096914672774146505111871470472268011758942258398388171987694929267988502251012707540033221984786106881543542853393714362284709952906904487020208219917086943822255649080565447798568568451392073235992566328845975532426068996934615251402370444637657900838220562862573698592188727760238600322637110201451347514576121890577597473438933426204861102248047926505728250629774986050853471798561976375600282994187439590005699913715736785134039187441605475273825131656154276258678960844004407122150531434006296311357913425575031171190924378832742877327524154246365104371034433352631892120057393131480563453730989902375515434546984793889624600183531522578289675499628902908841417504136431148225296057491597510477875624412385858011801826708240398347344358503770330078972313311440500813544749458048591682069401660029750466368562194398761597535224563932100029773481791299505625585119503972487543924671758721776425573689659078576993072744754651918851445630499790497587063007431389598534005517381198328137648928242547131713193955485741141155745214317300645868325382964242949091643418287821050457328652728741679861344898335469273799140052486323239240961133806504659712358283544574166605176562401961232552357824747368622249105413869018523181734223798607248090181616106094554853591533235103127782119411108459398906800354390326922716058651552216176178085575030740807199175672754089660837203143534117939162095004158187163227752216202878462439451945499601529429168080322621911497818866831992585455228814196479217644455447634092468506672200385335785059696938652746859699443383970401131741572545109578465054657609647309504321808493635290928562880644724097409405446434609372672677151765212346466489312293206742133749826649658272590524688859103676122661224199721029029453140057989126072217740551462259218573461931359162329496847640142317323878660547712638302057462010154584432683030509521033191834650519189402073428549738112122135366521087109346285677996297611654863001019149093911592870690290940698410644928165554243345117337696449277261920844494413073852041815892981611517931467009358482106590922172662655218517970603905660828474159257597809200797751013634135197315971225601812871937059384201214487057440311418494034179666004197953186430468912143149893814716517042001388591587787394268703733926544228746012094071180601854505143426529083775351676593173044096270746473243265129158605866072387869011193077646912831197532542572712682258232193998312833909867080109095942637463472753104319438154398667131353771954148277333767756285735820035169229705240075258291577619345390926525835306692340228960484334827350037617791745762445669892712023061063838170020240548893023127568311534196002858437175548905746439900521958781328761665717948496217657670303510419627200039139797845786426781528629550424591192430463027403381090918531470771992226296926886327830746562615534091915281039454727161702846668083762896217159101588183894278713473688758033634201349357499505838623597568315034137944451459046216627270507146675476771442155265707034262725157423002371973448258704242862898279353777979549786507342540560074494916114234108247368957575632570973767664074282639548726967009026755135745824514917499552743958274384913499097113329488522614726046133942092760875870155700426269202737970671311264592749167011733430554466179027947570180544440715934624865303222506058676007832324107678631683720933539863834875330516633308243969213115672939189764460599766897522993760152927917940345778671931140318059921264237713185161437147153721910340617246538349663335296994467145826481702473368843889770890970708709134144547581094235150854540482978477204356511250324788013799922417972173645780521200466829535276012647255206616344603919312684014644922855357578524961613564847966859981163919196451200755095089491443943260944680570456992304053703011103909320643283215607801575169649002673684231161449939851117144305391796937709482054298671511873827232770958869691976924799531803447882987354349044014437086961792203649386239991719990557780735928795799440838413538331234572370980488819459098991473180312681346253845196248230237354819182265590621124245967563576881861594680882969757775202968939280634447947602560261035806057755708540973046797210852193936285881022937154411486121168105018450588989641189681805160882085249833909387589671205363857067259590532598220620165051180644549462895356987822844130435102539454478156162053926928994681972290997673552513443897129615641957765657105189481602586876809254135786751269224101259606291079919729348138429249879143390672841554462257275162958078513624366695259847246353215664679733138344619695351815757969790589313956427644847806010870444860350331626329148298890209279586857028879928870552117033407974024849895833464352277470906738189140789285805006396264525023908819182182707961192045360150004781028570239928157390497471076877673491978963370398591948133314988265453140152360670669527993849890751507881874471854414004324089186096982786339659216555729813278353229649308186172035643201635429611764249467174150775398366894911464141751231123866462426553996650755530840818733865141512243371743101429767414117716735079340655197492748971131309686667202688351993111514302147542339039502402350170487923361803026733173249432372707202162668944863736446400555844010778508512812426220812514451039470265385146905848908978172091629731680513555846577559708654888233382733460989405009638555812305157271365295080493221697584723010097803471338078667065809031777559648842613563240018511894084715324233962933904561055593899651502375929031048131614444628007664982419948038316485256389604304377399000986397118400072965597825904940309218338825428118684351886806014378105221104428619766369452429749681942212641863341455236745705346248856361552329763630490578850619679863020143015268817468089951508513852577701464660792631670996349880492785172113447506395621378209080950750484870405829456618895399274596435231805342161961979301527748371014029881398898578365108719162640288898023425175758058667362472078609352279910994837720780770010536229717247886181929182788680778024370659501314531000762523024074626441243275754600148727847005260001747413915830384296132965396278395210589255221910668981895255197422094160726140387163816055785151450224949505000776570546487593361464015356154938551173531377953442470747512219572257026648152541850566358452939755360030287004943294228776520917188084568390790296971142262685600604886418822374919183742075282158641934305604444603840563904232441027282607497502138977872937171053540516910831827451152450785426860866617113552448384746976267543879187528767209968927180700805636052433612650770066138253110562980397753813740904782233283710029924855749291585175402364939419443390508940519224078988189785482217494188851079723526339317363806217305532773282692530004787222517689733238226927567952344564787326707514776657109152418904939129205901840276811118705487757695535944022971932488323711929414929891683562093978710012773274593108708713053299824367673746407278705055540149847507796235867604873524253229500634352157791142862324262591968538708227032559872143920281787981520050226827585825031266347227157039134361403438725966947894488522939071739338773246225233773538486860819134387120903332456445956175181868682401924481018410438298755526330826708743700925721889946680661004487007761436476986031083229256316019677339736487927085155442281456634676293009864826581466243050919775423665740001880863567471117175793682931392604958804068781216520918937088641896748764186833012333224340468324285303187039098210679912870601510445788816362186570885226831234343708531837263769701496821726087493581175327918823886271747689427129963693406928349556255403338738048198360685376992797807761836737457895568063120733011083042668747881413766711958311880696844036315407431081046252601038427640815813986950104932895593495674499336461008730438685195831369769138354823074192368838231583030481761956099276138201387398515495621912432139087963276442758454713106328399865164163932712024736742198896780280539033320171253604398132356138207586314805284280584201709685023369691351538304636478576379346301928343103926960750567582697808170211265787934587040377304294374613603159475747323139869964673929795254772913940568752330429022424855523624167811211612967956464850626626110426692358645985185292277569552305023913406727136486832673957137344827605514721631722471277423319785582101741845806123409332179704714515892105442101776959006816993757199982223670556293608064657462356476091536150972512090673439088101609972638715691468896064931914905925653974138483208287391575993001951713150039324041557427340473747224318668808591649804914543487511115432944623764733482953886096695269714963549097709877037095051520934407159953706025917485361690749657241584033654251028527083336992867018062052715171360551337410178185139151512228066693323511876101753088831679489413533220774912190916001290126619402337494781353908436186489608870387084153441050544641702887059395323820963857604002059529098591589696515079081787438680202220497867058054609652009615487902159354337142319024781638017137683098226164567145804169588996715276409908125783236210346946125382709822176469740308731609625453075275172725734580640155815226349303754037456027918995899019177807063875184817870242110622574074097639516515637774064931493827941257714182025026327984992035322400881265074522601448492348060613521213900955531065921396818345530793944942701355091934515887628122972067534944197234935799995251851251747445316249973949651345810212806799942495216336984548955572105465214115833751657869639672517478075223327676577842002904421099325870178651793989653088241502070160284398382084033533935009541430456113792262870630293467553462329878696942039209385134962954700667853726447578595694469598226219896017821809682229259050761481667334111991800653546228685140786392915122350553758917083480435133075751938178239290986093035533742983730393125730242536068091422526879416560447416083318014618680753882236562912455143322005574794591821166279730466134279509120213652719172668216734983364171999737859378450968252283210362936856025052660972084379276707663194410477927086178167756717766361771095670758407941007621320824110152981197944929132663144334500291089462232228007470380110674942155299377628492757440856772743002442273384515989103033128233033942072899637568758886515415562579091140212689196634491208658324553960460184231796703252901977699612758696342366766845196623561030828584694800773203234515668394930917396480761186570150138222948032875633311344539247745946088857763132550715665017048836003559141234428076332671522427795817835789760514711006708013654441161156702801353745969796029123096055538811179264584768518122681202586471157574587450394953770855090381187657358693933100348856605117215665754081692356826938371214682548555465554558239618061482893902577987960454420303609467758114673478024623839400081347522578680882189800442167670980134391681028118739456731859644495006585118448194121495049201439273612649403774152918963589321539861684004376648344883046252094315000336187329419983339332541005435648087811112978868057851850467552245782704940491217941417272309580182193723483037626650346862933823497532256906864906266450440714655748500805453911533991073892402088778758010935411232469121598594908821053137184407390749998762115623222665378933262859476436945068413450639717501388012713434568848466656368905031541673805414010365368485130731457936818802917837604812920720409086577656502052944576230422040007620608697373199154484554903904858590713312272261461811373726061795391687189670601791564253935132623230527211286010212386678242445661442475445313668210591290466583648849941097132094801683269324581879329170466364301346188568602604047472331767344320903108216587091410497837671806977028055507692560873686984221962224944897052861622329943582792250822082205114011830307837893155970665281878217923596424293438642120349970095534734055647223933145239903358672980311600531425621382111214805043789673301594163060340633540932261352599009613203715052949391382901765260612431414793912465562057422177841439723544069045877388384712616343540251149747029254526675406650262052866492503789557082669147392554685820247721702326349592060894405421102413346735699202231773155474908962091104595874566783781221925352679630246336914061961124447240972386312637972671978541950635710463247814470772444826482774678991490934395573683205855156904165953036330610720474203516220690155273165958253076879102101996071993644387431304051219216453063886975709831330990114734741266220241456063756557438340414660916596508775502170919833218161560905854222947903236751497650724957868811694876108151781202648680505607002137749367203347656730638287976491815749517299566612445046955964108143234727536447943371417298023429613658409646561379631547099191716178533684358096706879772865830390201594793584165311536456094089690508172396082955135575104846889695294166203853749288230959183064849449180438917751834151285200466663128705036319591242054592762508206727102440894821662613171203364519147611856167727852886942262828073821219272858718165951607787113411719328777788081901340487314205174029988510635605901066675819911361787915459918175675001302170358180667456920008006314423435609673681002863196876006178647475116447663229806274055417192014362875378303098811431240867462973567518043230688339868958038328309949055897277947397153670497774564129293222316548638630634146336529989200325004981664213872731596223656806518456827787924778080240235409811289539354351887643687522098586061258900686079432876719053184808810801735699585162956517696021410014333083400759327665813576995533318054752189069386920871780919567437713340932639576507103663963183347800080249288304631517431176439105183418036182214057788100242670115907575247354397881340054901253269679189015108899446775445466087267260836524447659833148188123388422389096934170270264079992216107798530698787584737627676853989529789588201502379119363086766052638804763857819224387315322346051865387915339549296538011151363965581872149011834668843320164901082354088741917660317539904842565576874002025793431455393505717401436608840567249033165906162780061755300886376004665298484134020549897418317598591362309856701265892030763308127168515722161183582149954644330968284536129830966935929412584844507777953826725460759009309938278067671430673872195704503243895888047342757131575035483480354797482695941332911501888321168849335256825819401201376610115779133666893302476152766701246051476050448449305720908855869338488791525824945740652158975969967171118453155792160833378492731486171858367025933606464927836319683968809409817970420960545248884615504396631087363689019084045407393485529093061976731175966112329115088044461239341076484194344725208204796354663655951795977025762265335247157814007638593996387510513668937129940424700346975053363914402421319101323221303104584477581205237651863229800724760754555562376473805109298209929224592266219195703288593190023464851515933662047760761928951704758745445419269289060702542443157941723514302733847761435490871677705379556062023829474638982783878342162795372695181576394002949072274518734487472636346838857971684477385913697981736748488057493484922173364032444373080524411164049632021077791939604651481402322066639369206181994509335032114470829098373952487569711574159662734928118803587506408635339050049071009166329299954485934161938999190462580768752501095106464671438489941436844564934177463844414334633215583115718248514664739783892748323266223395989283298831279797588244206400336540410481555716257735734624545154105994632884496684394883373033526645446053335542500827161840844766820354362772182401249092264382952920870087474602652296547669181668547382698054628502571517337577542171539654164954856927841169619699629373908601891939546212965195012780971985557215669911440794769112205326610413834963036784858578581311210788677492667828494804835553964472216505264345756235648502926480649662185414958985402073036065385896155137472872617246967914215593850439722427461341094278453262264104355985487084982312645859399011284179467256204740380864376743177325151837387090028332160839623011756382747812856817504200410736552877234259966601391023355959478428906854284054792935348091502319266182553129938208459724173910484377278583026777300048890970717123153641925930866964479902960834904693375304950494706037618760792181231235230155086031918381185029551357368760247909667777479505979249820954974629062596567295579881438795177659785736509463401474333939834589496272279121958908084306538364956487903823763751195638060201981131930899205709485216081675722577197295218298796589582435478023637370059688452944637574475000877676981172480394721873563708676273490199365027693165626374488604509841277409020587636395240545084789990581558401454043388337662794656282007438988873403005582356980582269524634838699952120327197303462487078868893305201576252174482217404895342124796171998447825103014729305249886841631254797341028365278985536731069203367144672077877788484542194853907591406970652144608371703744854534676135955655459308359517308302876818063335388041918166354712886851535904781542647479302367125796574886138466861742251120360930841468434003461716780893176169464296188413739363695428535938310363380732936537183254873908548207075694088307985755070035583119082665526021777435644217073356895245677166613661486935223701062865410005378189181706605739118684672968937067324884468333470893291904538973245506277216369408574960988717485659237285126651081005758259862213631254621066870666838718039394374098987097982110345615079129087545349863012588302075233846729795338726857127044782325936998106053479033928342510030359740252276081415531369364854339383658998592474609236013306590151225262996147996495507122628814368103466813859691565428854462460285796922541811562228231322073420057787608859254953708417210322131322845146262578183685929823502943338582909227809076582419497181377763619090960391558296837754128316145338380841844491533938886735773199941241089445939675533690149545857908341271412240923643621177436410922708068883954948951340615398860724936495533592058384486651895646271793620324075575894954683811004820435883445131308238900979255775651167575765399688925899390590082910614313152753205523541203872384830159926603557107427785891518934628838851739542237160863906303114352056794152642325305818287895301445127366140435403994274146682808379829952790612642191595931656286124720398446654260974102230589886128255659606265488602741634228274642676289168714080849434594367206144217638979627399510792802887529847012779257063216114556862518422449301824496939276970279516839436056030045789351800157225172420386281957425730149552721892525204869774076240203812521245173340243417497166888011416297894701739516133467531743164219615109295958483318473699715967146198341056538892966449725738806232017922557881998090754051241618828724693460772102922377279065054208016470442677594622946089481082046072244918574855200112800052733678241273464719376421749448905948955868189836982111459232462548103462193464120515156290959903285203737336060419356684549053437716794257144470795150274659035512557662737397048193463504549498508657809824442861711499041352215328199770695176473464594671496728718472571624504986862069817428261565691096912959275648564187329657252970583752089294530373787395379366892451546112977019289305150965301511079818576700602951140422632479845927315261142494792640270417391968804420924590456688403088396444525643519945948822188543672516567183452045088595578980514415384705537531705429565865972423109849334569692034803110743797415155224099107342540066881902467008751767489319561875670935793844244335263876508864917580142586220242666821080502895085759192371866859799792627851606187428269722366343905461787927218167571298263628006649008127748557379934199841147236376114856670998336985433355647744024607659503374328897332221453923147277828010006984357471679011323745478506973519243300368193843268171787143980984582528609451696929207897561579468303117228798541845627208976806764075431842684217336474668361333869991561673588028318149621675164033937803907660978312268507885372448050610875550885387227862896222518085031497608890095996214242867451653239873270927759736194908493272187026881807054385344757192631372269487197105335472772893375937255863377893804929545121402715376293651971487151429858005955193253661112408610027831772064694176510493995363427725710213144103909748500255058363727433798198742662959197730392130501838798925941200597076805866346411548262085264943055612634383673425252596259545559271641647491179649114226938827682540993905549732347252938361775460850888042275086070713621982230343547083301530435003404868548229416010345252419278757872165612516819834791662321823468391985811256015060294889434294051075413495485691220557387169201399495436164716374532026802500222906770248481926915438203304558696150029276632375416504016007000235557820717457516139828222307044517632215758976239652775324424469525783295055749486807388791531557208484168017629593023017024664456412576461636201954318401317916891721847274397592277002259727293582082433649578054078969747010901093674443050225159936293883309228739051824695823339291641035831015650316496619590189253212316272750320120158787857413631032777892163732605670917415703035852950591274265837873880116550564751804736067300608233096560463750316076443845260203055769153299073211232089780056927677131610063951581923356903713361887374981441037199597246436416511990441454208673540985186304124527042589344445654636555962320242846391412832974314914906668120837394252647858997466407907536285488047287403861956077550732818599296572864422436597079112262094135249565166846599800706966496873919096048677966692626033959002855996590027160242985568100162333477705934896967376093399193357859230367588178460898173434720930516502167594956834916417374821296824049513848739683014136650216203322113298991742415797820696164130287354096023042397176908667790174734651408875629759998470885244784214092143711508346519885439894008106913876661777597432711656137912578203830535454463755816579779884005681390880695589656719226332805857848568484687595814884768721490988915457450527024045399631573435450047635927121985556056027107700921147894270762648746395119663044670707870623738288379436744842318785544804685062541882838148953899305771926820299254162106229897099578072523482594857910652887213177620519300289585913636142518214011852001892084220314392369498881152601768411851497874202846857832535671910318660172071605706193935551798783555747501972538211053819335959053438847052705663090712667656352905026410065194801459420365465960028138697446378653454796729600620554453639895106499995842227096931818835493470796493361263911686886243449478624433157593389486142119542504071033561256566460696436820684177775174208133807802238637970149670455830871615412227845268767507676314015189157247468139059715273484896648844792504761594445492015795244153531426459267884308998351587321358612275623176605364686324732998316730972127399408723778548360844644573800664585581147612981474487702299599636287596394387606237602470041237855734090369806392178688262630549998921118413905964014716437136308038501397708297945222405381757108926999132604338068262178079257915897515980593882714865754369149557159735762910700135240107739653553204405001619594933058045677563699160141287673329593698678411972541268971604277102567445570444695125973240895228765487495338543762474505287881187447895017720921330246999713862804762761050331716315300115978573730457405199691217042237443714222010571852791420138468043757986287962882219898034830618789740861799932653541227297219577997672176180432700982545092815893436666372711535912861653964019187027222819435955088814878685308635231275095284385083984740883363395325267982392120885247763201097784072993842483698268591095407370776095410287614293898787036330290711425970180966633816224879885317796553619157589757209833334460038301797804985219893422576711019713311484358668634116356694709621012487979199101786634712104588072825170444023114329451524188407175381918172336439194084160208367618392399950771339245753966558064257458632503750922243226099268519591169256722703772795906078779184429317455356842824548211636205707072105263702451791160025204284150537724093900162315719946596279264424069603847064146215002323766246309353921121610796466139638542901114109508645703049859252819891037780591097358833488835747230788681903329878853359518168592650709282392565729291478784865995920572723824748553296687412661664076452110440728805753779167054684485193452042157283865483313771736291570858209687602639352194306293795383454083021367020581398160887197550505215690062788765351790548987286192514687235091734630328887812681885300132271365137379075863629504678871077084640535948478186199884479469481492427121681117654694445471698202055729256755240984564274941248547291109017729224767830094374839213508316584408677208150617796786024731799532330172165104724294739269044608643173948034244994367224819320965634414831460556662851454572447707782464058577881672333398004519023401439538513083502700192744481207401029224289203252895880365828538087069679245094713287896054924407443718839786008627439646309858119160485721260337511995603029337482480454654474465436411080077981176302843938334689542971110912481246966670168528296072027377133725393070409541668068726192290836086460257847109404315420372563361123259978510974494967734891858488411167045500164679938775088613600970542439527722701338734679842623522656732212912871488016646717556864522825117976771263391515958641472447298733395634626264174576458384089243554894870894488122152888441330811175021524425983534710280662825726690907293214885776519837410145474269201958120534737796957488038445965652848777325068931069763605721155384439159277901429224839198835314374713573025920619973877442682020463247149732447336296048297753259701102085270846354505828025939634061887722011449170364438322663855727758436433263394438393870475530111726809734969442593022075054841996851603629469948678345952854885496314595114664297909855708578593840018585960078857080950993828817149615694504731221315854093890249142405399725073375385622992325545515810143527080683781650122385507233341295147571733854230160458703261122175876121455897896885566892771929531200853428855570336259174829847358115177680911728521376386413455728406789866016202965448492450987225670170946017051887003054700580874435117831536280155484344156633527873418086062597566479379499652902340148935721638522534551362171402105022763968449227356366813766752848619808797648964199123939995269347439492599799904992163916318390243503934012609925676557071615353121125488172808921470878151608171730643160493378335070242918373731763893185858277390890547505598124693214593518789261659567342499785841848729517712934773583583561894005363913352918008750878237715321848199319607379866589800165020977246107239422021628239413886189706809491899727565824142156693487990494854987951004922365251362973484372206127153017168650593574258894036229163920671057223886544808727672014340313710835553446969546937921565032636938533247021563995615513642682859943701324659520830115858161744956827291312824801280780931656850518597162174486422645188372804225222084735972681117315127785976779317124234010060387162986418710822146604558539192656921083735340310160091467003459836304364442510085481331062313642799355804732973161812639020148577428034060918785255280170536278510316971878077905315825877557471115334157268258339264641391755922097101102795146255302050403125862414887004046627112096430235633782184293386735652066897111005670610175481871267869505242864474603307186270571062958515846602034689376836592992603342886408624439305217524891126326072220601907440554315071109104206667175100416530616005064749680224346681094034741916507535131515336007171281657475040633031585853887001883699916647973656570906821804493295353623138964569954752593337696961595739348992699357157832404342087463859634774737237211061190717132299029626402365900395993527686313257852019944566099693051598234873098992054444499013206646014082877083290863798413343888821379360943442476261140576172559701050964529393800022640837118072128315753211740384008396380138108651713113539692730163038938215533105694239394052172234651613227115801331804038828725254325828285135849537771121437816402714696494943113843165294106987444974035106282954481182082330461412140290720531638181364301771691104816012006027482779645392582731076551456069597576143750572238731406505822256914018414571123112902386434421766804068708830706107357370236933314248149097816139389731980337643343133847978485283528082951893176098846857008494314391039542737692912140636031432761372698425296775914514675728595156532050475017677247066944803138226753604151194023076482030911728326150026263277659817657538044775933207885038799664566357776060966642334516643311088624826156019578353953721162822737838192450286650142294027566641321935247638249001831157062596221297766219572238064614018585222931925932215647469086653276840764694896035113416708141987563758100536521686176445812913039663886225665184193683165787477231978163269544928362347913746155978665023575600506648311831316152085296974541374138982933035540670028169969192100842064591931921875811089538840890022775440201246783359055211165121265110341668993733973823907899295638827232231334255323344759602777964223642426398842547062607105414887100131447560525899023270110055028624649902636512334174927072533817852053697171169536374639249544932889640963255838473804802989746550340091491238769758414147337822753937463170486605957132433662468693997046733104445090637827637009003516634363721861857828741408158074669946419422641910318128267778481551943671908876270157322526011017331238023597334535667483834165551933578321175494046963143838220629885809841767580202619477827033147524056263780105253408261365427380562711284174023639593012207468222767255036733329152212748330611418325651755929265285729305344900230816149272942259430707686461191068427762962510241362847416459381147867905573595387799833279283676640227539237237393819317560324886045524749038934172414085227285384219287528588944495126110161190215081017435770800889087260341452463685084439155707312340519617612936900655963259572143585857340378001652310693632652497204361161524442110894739390498504777115450844332249859798937851285377121934195685798830890698036777021901143087362754641212997123103174798685460560808680732835901407369784924571907877828484125354312222080777335782734364661242270971513234279400513151295789967753664265126616627747348276777545548697549566738729929039514381545767343037787956851975168573529747713659459705007088751330225211902620158544454157910906974151344068817226594544094955331522170326213103474995512319326495340360751244253630565894085228417867301169997607539324083938020489391183498643138152687810898204071185801033354009420248120874371844866752784975107909547665153842881703848539518845988894240004088187434955592902908087808406465794330098717041078880901976315772942608720376573651975873766864112650658453726040402194560521901367344362399625690641631669731805189058773640410350124720719147882591826573918437460052051164322754467131516783118122744169505153111515144391163315960920153512534295466701726167463614620949471573440536293494959360107634433480472194691709525164154357509083906180469518545988982275662910119247472481145191793754255805675171616322803562099692020135069348867887404910113425306447387055841837466540494515596838822124677097123655343943614551865260154726383290028473380358155262969157499389849056641885537298086593657858147303597527549555752393099941918027796164534749211837562352941380220560086549899563453358459608633098676014301380220092919677180600687908830810250819262275656821239118884298821259381481593709161117443369491670478452690357692946040409001079609693504417014993501462062131342377551296941201057122508813666015278508912696711112475997383839215532184305210757684382612897889121466994304684995670831756155366455738937121096794559833916146079813555754564226139033652761966436189290315464487840299835956195904885878871382076552218377684551907312012513122495964566445450451701147143931622206238360488057624556959110414203361997718395053430965213550666969591946039642876058866620710326979523939971201057056871161925629792079454071172356891428600438477483586837410517764394311413939295278018660537874031733753994687448491126328501122873661958187381717931177301840507913892596420910802414777886032505335355399677335629969938618506869805087974257525031131044697669675716791740765281992433985806546760519971288487072592162870454709037065936722973819053592262782273250721919251824193488560081377702949129718692552185362194182011240016800230196584853396027045660069398692927661851122422215712582377891699612072692203799273557027745247911939435701872515012521384063357760201524075930146494041167997924465842135450531024347615005616027999677944551051056837360413974716941410233827343961516846149548972774596456459639894537404775306878420832773951366468416576961442127534214924310043895074143488963377431812081582425196214416900091112538549616174973658733372023804707439309373337433828502355026753153547767142889357318964787386728428049796580589877420124718021984290644841515413753065258373673586083069219663492781705432444413705005589739881155433119567902473258706337564576317975265018967628162561345334368239262421137901624163023537774101087509042651076028445352898812323522912104871816734916701341096736487562882612223552748359742346651832172841081310109947492990628342974850357927194680166218021844426916449747213033938577121725467241307881702215383056984700709468607733878017769111676604900010095573382118426484051104338216949615446792615743435242556124816755105233045169463913719144589869420968174226821509513492707018522871112026088516237652507222080988968068858841601588914186830013322840662184991122167059742507327216557112221303016968709989520162972646091277915622400202381393938624956696487599259695769442459735626398707652905006503110531576707208632100271583133217101681203619918396277795857294092229411063298672782712098653871386484077995091530322190942042279344723925755245648781715827315883405945809377428720709129885820319246214905390072812460868446834459012720025459782751104219908077827039417526420580304072891904913879988578051588069037081473464160871980339167108615812106022748745389625544775681227905561313029774097719996655936345918249954807335296611470480716836243954402781069402786843651431920640378816735980408088800652623800985833478979905448623049793927959038224958504317963462795537247751627667267288056257917177344650411137714836261257156771501066430555804282240979111537784647980489306439001958055611161238812542823127625570444437334515753319273501196163799756510814273127071762630620053610148335040900187252220950326064099253025962419714011302667702305049381078788210895864744538062105752861782938612702116207968636153898135428543116705110105639069878983031954895922044558441161194327986196811907909235892736746601129298950235891858845945105664546957542938993856895709002076787015937131392001604257687293827043128814842053660507468453594886576243655465325708553510908184912676315785271727566455093364670811863544546546408459500595711897225818747812554069568092324646947464577744354228632003373180413255043718176562434608478751827915195895985735347687925075389448300822731747996556703284342264254104506541872927566550174297889516971508700401709637332102331036085146410887350241990739659185317077578476154159682943081236899839811250481962147208729595654109822172959533921051285907516199922588223908496638117721514346597288610869418959495377673838773628805338524872992016360037759471935248338633067279450250240461096260156225730326867035985371685697555532001430540377441227839724466778239088774847727881500101910170386538289787869705601977147554802385309428165908310892844892365445032376679317803545463673388258445357771887941481719617564642931043897279999818519596502529947715090416603167415817025115882963735588890528452407167338698848946226752396380411484639315579809694529765423423574097486523794707797965025027524113594402330432034742968750814614489394512283605276291278380510926829982774464390379726610665132191087874879305628767088798827654517286366752760887486235468957833122323605964452404939529356023633116131437129305568648266567283316521365918677439702618522853941261858235014039831239340900836904726359124193768289852060651291130055344919206599933669760945558871232248444471622992322674155477075746299476492140148573587763152417212053248102778465898730783314820432908568616398217501980578691184076497287758705520978786480248507370035813580999794716225973670736801911315743778558619139955176591987588588328217228137214260688398473459729555510839880878633418666701249317004237289606778404548348345289627386233203273501660445298802457816355954031571369376130636377724227088426869176948223141519537185616071550022406326649793996949795795950010965122246319655403457776027751809204839851062754397914943255530013056671384863868095985344952787893854645584754824630617490398724134488387266145501881960268887028558672577089762255743760044120348971899593482986484470139287027684812481919863436303678233727457633185357074882421989208460712821672230487254996629413257018099748792362454247562219130963019654996534676610959824652579300487586695947600864916411879619156762038143145818001670590458183923778490020885625577934442887840153616877380546279779935985541554680951821154622636123036599019088093598232811571960539053831747072686466664264936119171063093501671915897701711428542964434178849418564492256303787242029639592389710666772432000421137304132656556843990488712792679443098381430489251069464527026029851310089240283067475392293542026589767107282161813062757318913125311928667315022067836684859573968355726685361955668976177215825450649584802149922126418183815896368409822044848216972191548524024337742277291513388768865042504341337312595789007187079659997219618326059130453287049752780973753217323611465845327749992519455415422835409649989272322488745103415094830803633165374298066354189741400506285536843498714530953696240681358914261194768476747165026483113919805823972050535707126838935785707246004422192787192073900693779307217462384702591968117779290421671038492100868871532602006751470881731374130254872137409258619524969475703706812808926647616428550938673391565476884126463706025730349600576331989614815553396266440471054550034714444643712463748304850703874185608196834240402138037699616450948617959943896905145241987890770244454690809334712175771042321408087610132131711298223215376459357113500146785659982424956924114312558215815980775052087750518267138650064587516614379551114541037557697927440564650170242592515393621426926299591744622351243021606016386746872933238440118605814597377419125348710660311872373928008167835642458031726156662685512781761291231517107707388415007221923448841984053285171455962974821511005390405091734049786080737220432733421696620933208137391110673269051626572103972185806752078064835184332451196505621732104532802364203701673768221074538835270993706020033524657204946055031098340675785834285468163795880926246457509614509818270157752729656167805355155713633450036890983243667784887443578218424041905894958041426309011057539148432450940823505693632228036898214433172614590622902380458366875439020523029488357933908423904426500929150539181688474554615448053659814422794535756767709926121129045208571982165860250253778656908601741518427042199844485509646950587076797805145122103445064373452881232558506869740919129499785742456010642165744631115402034959497229197504377491922888285750978768127827189592360168092019414082824115639386337192139741823285511152692524498704252025517496173594729509567493258794842701449865725119455853882928270787677539731799010831631341918839959398300900449550505804134992263949124046239184754102620881809127068927835545551255196276790476682077466351100184264442337569819551833922232683337603104984315052936327127739402529055178437378661120713213657351541187937296858146805082040884470489370203748133876152893602706790430191104484082083281088903313089047384855657164407276746302067136423908787756025793038792976935669696774084028700799576781685125384990112358935029385093935230148907059852921539698234124296933024944293714783209228259339019745135957533224249180522664912723751599613086922905407878157782126331687163535952453269574329286228881861907841753080412482715974197352822586997324872177705929055986446232865645174013739596764338471960220356103590400929236791469545681710668197637974663697969979543783251870776226757283769649020541188142329656329460413107267469130528415834430609411119232348377065535763744665674121765283183316211424982721475070346268194511177005713350600663800592793435230278871859340475913216048731176772246186255178255147998619397075977824676172266769095511201368094143460169579641103904445105976855112722315970983784523293053304673235350524185046491350999851686262785196289412519923061734116872053230069466789003168918815395592045755273928099388813180724101057513481659111201532070449298136421394689976953979338439781906294319723922481585785713213095670655456830900077344360683642879234621808469153639102586284353128564129411963797012246006516039643360306640865234837214706227649955962434799537268400431204449269937519936821821396537078304418465221598832954752351802200438562557732428837815824684585893933795129265630192480375571184771442324210682759576917236879800713406545659661941760066306586054772510465842371107909282167902906058773972046748531218154461617947862174546766167644039268180078404227010754221812882511936556312620349119465495620044132300602271475397184226318460734307106756901663627058512829860143038327901386516186869042035654221058351872896406548163685196634647502218862891864811110646450663809725574146696664265527520701059498211372969285493606790981170172530773034541820825530514351483053849729729685839467596300081395074702446410347367980712291329911086144088562624185445812642915645092869272302686587723988157441077242365069892092918793256530017559214401659798229662698528468555852381882719624272578308868560020495171875206118980603048702347493680067716018688778718091632358986145765544747744622077241375818823736246852899691017009622082587378212085107717849444019673925006993383180824086214116740954169339082514967509785992804917519089621184908192903246250250953408772391223090329371382595292830213311817043818148333252576749559330117659789690344437893380924004660764290319945245696886936159241323631968400985493541398868357652816600449176410633600161639603381936878810858091816334125659523993841774689199013135099120632111714382790814405946711783559940005499435881567188797611295174928278537237869179638385418804446256275824414163034273604181084868021495135682116880750782958675647426800224463524870802218416441424099946838341502157451064708547039731512252523258030460887066733514234899638498039650602160381308805044883863947159036362114844605953205911041987779793234478486813901091116055730611429176592138791099345953043360732935139396859338423066078917478142127425584467839303039195848744972316330677405664207756643830507287440963616331514265058622762054424910643476291134391332288222052091630885728298946868784216609586922843300994293399409989250104553463110817267993025153173177922607915899765938444391139865838699094040611767522650191413682808473148347169103694215678347949760272373257917558131181762692096413455920097650173271005569941807217245229941663882141879034588005251811328955892330157025098417743536715907573939545780990942912736774636499662737936277038268550110027667054505318622547067040607694799211563915897970964749227862559652556497752973488506215854489599009327607269377143596883738965473095938589105273660217680288877071773350756559409182628995505912602104371388589768790758503400223731017348193951899294374029134179210959070384034830572905935923581178872887458645224670964867543153997610541240762440256340212248701894565799295980662650996536496351249585453391122183780023090600512579693947702449549690309252054766179868251653125508759565592880864771139333442381704854878852367978563208047850582642999377192717739673272409566774616443216332449307063600067920187943824523100537148369955445209962573875234273007008607240665562728778788042837437621737565335186212982808245433763309371551169113256591324877069460278271324910707843458512742313863466474167507767242845760397737243530320047330683439366708556395395350729902347173241916420869152976641063398761738033515265601226608088914721867698877184276764853776040028452385558758023932942281872429315403969906262540816930775944710338061512871171979267654002981531180682532944243913652283752870833041769052629633127879151737623122852245373014157132338888355223412910893857646700726326592387499817716698256845439798055233791610822972975846919589568166471722523252697548822813969182800509553654409479018597484318733903938956436357835179682010010930522686393953394813941086505768302630126910853186934620388073059387653849477038989654903218324320892524317507371611020041102772078557642679662041963002325369235245794106327641177440186620303508613913172488419177388818931441483429846758135138171626606964681504648680951151629114392739511416378553561333736103120203721996964965773514388908877082471804378425138275567529687167945803500740403857350735802531065301423052062443419728693600003192829074571168426287094743829979655257131579606907772299257929126443742627288955118037470086318515214493791727497477394822054939174124154157482705945000045481796175281971105992206278913777177144492944119298759515743607222749065060464661269227714432593527355761124552405330239172245397457319166486910602026648739834690382945245751344865384653916731102839126535465683277397617739678354987306664510207914424821165453436480710447759467977152086080511922946514645335117961463160686995653703331190622685918496003913604895547063847767051655289919289471004883567349155604923242510326235860051535628774474180664194203354697877480392531346483075742621915086078213030998990380013313348949927801491258694336812331529131247927487948739681142303331775846100224143172090931269540496202732926468975561779634188782409536876841610634538604274646890982074081437595352851548769777743541129405203091809663241877103284785603140383048737519166037726979326383648413083356776111436104433674549860192395084787737146143765907804092592717171433655416865504871991740276753459759067506740441925455122939980531031586510050577839402503349907986601827976826907146722626081976192803492672999681861636931502823964526626529957318121238057140968183001303933256890254222512486031543678402661869411230879100904625750344613741295391610344923953402673667607922281162045930375937198170860575238479743210553467843450291065960279612606370294965640794768120678613495457730757084511967806547388782736616413401849489063015862195392936998518414791225351608061158800239186886825405238663475840234175208989293287929506013452987309404050747798899004652114784460638590572088045224617568444372800010143884614568037398367407561456549678238777770029211041884265693326950267861381629117487331120607495431805919085631759130702783796658207350384810965900910701948075885501430927172907092733404652730780637434509653372125268577902022189137147557413124215174546163538690752767680195257679250262752082558542155837245322556753639228106944099951781101193857805810878698570248390117905563977007819506841714808542535240925886769342139869314124674439019847253098547707101454630111040511346131373197469558524813007158970829947575571196740698637986003759365158475036713053079601791784240477356832741570913637297840868262149062852028588702342109897548070501873231837072105296169097083940211773721848395802607488880891361262725372807378449125505351441790714067483396641164441282066610143780327375390559133475902335774592232855246078547301532862626688874346802560940270324654614547194478804753797016590642779998775628513720632871166021533321269905290612879098445650082398941157811089613987980198957480253991628579981399202871805729460105363108116287561824818727466437568014346514516312011702843186235689947926085404324051924047537467610993410096210544961113343242785665732969819753742723510578812227888787489061387316558060908237251794100047554950620258894588591003374642733543016677191338250354816099075244681513575834392726730834874929830314870172031846300951537038929326801462294634905810469420601064305055869766630558989622820350488799678027753849729760600797077510323970606176007626808900381967669169038841137157706222319415861065445874600707627341833118683335649717901406334056585718339443752329250089691577538978195041028414117388894833011248103571968259071929702321007438623725050786901081779938273074794299091351763077724020278864406625533894069177232766371886656740677137592224590358650140936778212100024687223923227677182599080450515528503895302362253057162721713902628479670878158555194996707287616269576052750544357324363472485179923037953868257195558270372736355527216461637408638559460278334349458259552021297117547925668879894049265987466722363100347963153855282027014082283233980355218290045849360502322935728178337439997158862924578133957250808406056351422036190902282517074326060482106006060706810106520021115522909070884052182457821983011244061039328898414100206766877735084653540345936963138403888879609434020018475673251172348634239093975415106063036369553484646321824788026307484607208044852482885955429697515125849592674364437254848012668065820652365558529642215793019946993043176753101950875534181871889123286807137337442543255203544131256179847388387117534544384170362731095841670847017290823254238332062970046940578580207671082369125824256911870489071178612263223603851379083130405660901924475394147603488975595706517035026740615926931581204712536143115377889914970814782862713180837855071217918211822535425918838875196169001095124381484333887494325499490306198054704771748786794547351547748313514193606827026141829136219753100813627831736837512765456671475327570656330505677041677336942448984951114767729265736400802870031862554858669437466744161228785849985704882134454504550118690520205905591717322891035558184400226504599070662580758453167215406841140033554165844507733199315411598597845846661099768767457754698123636823595447478715971788569277165282020953600267267376746126399952008101801221250021183231496117350551537040631870147077522974732488186176855441973265599348878042313972821529104053745787462089341360591617428548006846117485756253319057912267580269136956521028337299254327011390158996033893140829669067458248044722959712648093503597848891256453245127274235535066672755676636638011387584128017036467508572364877875789697701370154333481685820568668313515973560460014891723218413171553787749336902593663524456579394499661559047730065730390689534035508208816345190657458848733177713901931214908489709571574263721165743134688173604341278634550286887883168498989947596897263404599662164496238622397223302206257289335561663473597156097562206007498873267002607967107651690958045141504072502428360912662754597752418583261237681878816400276153001764890989729335244362504310579451514467900932786603576564448705472490828209379718456496339928331614370373993466838168558076352913109581581979634935646309447893473380943707311093538241054882343177447892263340195366281603836677470918363947204442511703153232914184840466685168249614037563208062384901574757023681620915682462063989322911749106609773517876812098812343444968552727933924718961114660262329154861930536687763489344123592947797447661757026756359161964542120617429679397359300523853142605755139143524871276797860164228593379431347521852754540751982097857229691651796732705924261673117297756576491835903570078416988227805843129343357967898584991066838210402621009474678325910904342129482933724107455964182472142144039638996217572086643710603604993148396960766208253355957125221992199842111386907447920989997258465663521960669746068343146890344301200477611546457275213417312857479840545923772949390558679717561318001205842044526002990863754757625973134299686865708452490443809699544867667831581886642262133270325839418041921079318657371415309516486732378012905406943450966521110598866449235829004037956426253254261679245882908828034252630471964588883468562703360451382094582928390454592849938611036565538917961347256075999063477628982619161057715504473892104464567258684530707649017010079577044717455841151714683218661805283775396575965937894511423638337136078212848655800621376698405865598989845728960370776709573966070927489509808705274918014976369665732868212703838730588463332321898836012655852426513745905495907879454934868879922471063724710387815799887012058047262525701723771511885238497278551598768236464069265489411297727912849645273282708331787134191603500469140753605064100970207617838651616988868764021550126847658495514783704818325939556310136084645885378632032424282436914699289753920062129312308479143121800760271106535241287063823617188010391044769447995073057590393099186901766516968724888279173759946117120352080628434415833630741965299158271165537703789015844802574334429029940992292104212679060382908329190979128482088677702774762928513573151250002865908519933199985695848660578747784210926287120880678167191816631040797736010656024643456438764447117923041581819484555529303683431682826751770858232415888454853040186684940318823950351047194595599596615889237771857048958917646537088616944201260316019993600213171957981383242346804175111463796318001083497149327744306012284772544196456552688057324982586543913998962333385680465654866598974790696357880544333454503766119858732442992912703712865199974663970647291221661701297901012330594938029503064561727430770207776925915752129667380452140637188034968500988051631435253113182590010550601680409765840893584692981566149973751044621733152102369634409485386399400811994001283931377213036328101297282761261728001444935851851629091081312240990225532011651015225641294803111404576033028118486416789499528761421045215216964729495298824419269343975623023274725689272201739129998265137301026523684952429767708040892672794480271882923580411884835734217604680574383913487807276561429776585326577383330260567659872218369991319670594018158558646259726013599753746776444623111283990277852121969892437595360996301070853511478017897137141544654115632168844248630913369399622959522358281202818039732657837736691276169026454326772010987609253067443684752962509963056976389413468977396458271799025355133620594913742941449375095527261480986131655857890988459544396204583047669951855619044134622305423277047815947047298284375053451990586449910503698792184718143902918307484301105131163700772269151421584185145345964020993610971036393390814693602977380534978903427548329635405333510395802980251393262641846214640964971502776684010494840458498419750226908519705067163081652822656746239361291116618044628973147596277347286399548737841691409299399203799508002363579086572385377725020951778409082642574658052795903090227659277314886654257322740595664285580322977172914514586858517352413884443924666035773405716398162362123408782911749821817686305476816533217890013261472463845311862340278404493984643666996890089987283042832956520387217810178808610813232769621391851567526727896884610099401125676298891749064936257422654824728199466031389687647243968027096428451109438803568931533638705346548644329325063816402265129786024704048500050860172825165471267964700695498210230164235734395627917276729373807917754780838292381225575803418071189058326580051586890315116816466908249683215753655087619690631013188899704740140818438752984851773444149941562880107331112996628476737734452502491624425160693137238914211489914424152909982880206706916496896882517636425174613543927314728364581178123735033787529955282687534748437800852862634962932031788295962394594602687696183690761424336940034656501994967821266137422465693007230675438337308419189639367081629489496647421399829854296027773743396453899439738987411727441243479465188374116873545094667207261024333157827191549919955518634482857591058033765235295573607947472394534515000782827615014665901296325723449287610949708534201191457094777733527126360426399055639276448993005472035779689604121612578087093648078347912941360107017415376521231877786240018698718881798347669363554195394515975414737942034709458275118776680733158005943637481539870709494441066568191026891260002756996419841221561476412417994425019169061298079598081767766518004645776940675280850424622547761567230967319801876425848581468331387894571318353650447529188128310612027055590190879239308988576627391971137881128070023438649919351251367519505261436686770089587080572183399494174559909318391796673391435346004970932133288062363883887002689486028958038346062815030692461923080769821791563564861938987992000823454034826626822939948825279757939111714781329257932305164369763111642516750695584948106727705654216459947878928642726384348676309452360877425300210118162316852599653263827744934436348130744297504971118746707896933712277333158966440323047303950209463831429327151517421165075633755899310154000627572064286403424374475551681817589449061361821830777984628014873663713287120417324401052877334846283508197712180553925532466623718077294705339302758583417304811347368501340856413996643626072782332522039658040043542243301388345266831566544792144723113785580287690175114133294914713885500704187001465396842150369987801809241177025973502577300961047451973981482708067646941473901121087010285729715760407435142930325024806130732083486715774901441608971202013401877424581430232220631251834180637286938846725059927610764147087418604524747933330486982814735270359054768833498372212591108891508101092015057712385657550894256305888817416700236215888125560109470604813986170736829335446706974406125227858141697517779512183719945624342195274287420873676624007206001417580541642748904933610631967816809679992670052042319653783363320240719991609350076404616606635538756542193192822525986085757489195836962452330220406877353367174817186237617108307464384204660622247747821030399412144161037026992191577885206754265739390000918139468765564503637016677205319363841707857202421169100804586213466879226302968484806602848348606799429939198122066385851464021702857663116599410223764019606211963879394368068599708600538822746049202905880540721750103110281540871262146007766112894149975435860422112531981818836476800231923086494048421651018613942603249894667435926524470616894768584469297419170969689581463396366129388113645978858714492008057000365495224797944932823413298076799738608960703285913084099984492241793806637073214425665190444354885045197432502668266909430337438285363574156193174254361493326239750779145898175112127971809143635154015655092441670694628307624120448275807695405486709492019300650531075204612215108661726086708926344743758357015884192738800418918260586769810878318219400409316804863938218613962826091573852483683346598972723508924383978031894035199392444528505913641763722244684313073678172651071216222368700537312324870569557260314571250832912789705981120583998111204383791383979159476121666712509928642811728439692040701169016272017430789730859487946917248782961944182561715568058955154031227230494438686340709288679427668051192982222984008849744996743984141403909847080348789864257062774983718378687307567230707962210006315162327582742549560924741984036503539551776913113211577347261687839488179102547385424432341312829551011627560948429760506908199795555862509429072482858081865536289656916413621514757404231399433567527207368103318625659158909817687849528875043831018960367520569934237140648317645822021519937845737038439103287194054611320758276946706932123122475963195315257873101303216630207948086111824944881504824817466000415799507528813933477582422242601463363375194555510314285525234094615307741940410001532911681223836803267507618058395995895827112153014588466583223379282662733369875778168446104097610065713967939866975928467197317466934395275847743083375743227582586396911600644725449971578278967952405687717788598553587201737289957272245509162874953032269559481708780535367628857678971756895848194911199966837616245645332162738687236465800458391733011245947060955629309523046109920545943815446396254134221321168195842145841004845799135538518616974647198442643061388825723402322768243195445121975393500353661054372363131657649778458771808709392304879700665080807192203293144539652825157884776419971639303170643005805164859487096466929462670022001410343431631993968505664169354644417264615041073829229134792019285509287233819417144589196688387175609619153376677683388415197458485425962956772408102388893328922676194287246766169517680818808229752370140005602465899807776254997524693031840033900959183956140164374734675277295892262895482842596053416571092922853123262830831313037436443232454865695887236421059723146500194467331131867194703375016666765570085959062478717388461450890219808854003968418231083672032022695252282930285944407681436150216368582679248813553448212883757003429203560392614233409433260693142813268983241164718171521862062392658019662636780291576208848881989515708282975741536194804138424003868667426484815840100586021091261272763678742721451852675338051091842307949493205121252759912786208025464017892404472070567827390237667500333307695988773166801433636947997581180387386012982224272280791699215622574814090313114765531961539142740463148612473644693293015489814575415299684154769318469375905225456877966462363031949582798176278159658283519804688960301963325122085619855053305538202251850417020413562355261646841869502570754352562388756776566415723801101476196832805900914973329945139487485269606471103065347598714388475236774380210110269654271605143057088846204532534988775497923414974478021051983168457127601805591101394434393620021213579123118411633998903326345049706253700818925273382253039863163889319513587588841831181434993482128332609094056735073596666465661807162839580481956448524952356799223248989369602326054169818310441639102358885665465168126283909453140995639687557880362845996269022077188388007561951449744420354682334657580017079527749818433233672602955612210436065074130348019818739103989215735832367036466261888783774178268780565236739507082653200622201555206773538006874647048553167464714627226117689103229663352410716448686112483728536704597371538778005357086339879485300015859924650677913917388339882422996030516637006465535974805659329435455986929251671972221841323714126487557072513275352336421217558476287331258056178333290284835041035289383618065530223986484447542730014658165112584391654549383774804692172134891839793132040208888730419491220282792738113304210750136072492038260697905502497215897805463183810010379205331042816410005401835933446545631569956056266088776133104872171835559315898021199193680621391762335543354779902998654619039276173036668269831629433268918442671154541712390067816356382682482021725329387390791214457000119886938796047303897455239644106944755933367883754433666135642216757340825446141227928333207329377747031243486907554548669711752068975561280576017127241358448747781401179893911205769193287056850967510087852068269676772321375338181332810565759858857446703443817186346783083733825696428938189790976228558708298858276663675312104583710236421389930325061241034551141486043811297416430443945065541212128866040397501518902080364472511253393226504635488616278683300208594785982796501939788400079481168704187709248430955812175897614946950957613610826492837607579553802450700289024578944917273358569794155730219617435272731101206663168358396238241825092647869965729586533419444711603901006914231532225558640440134144171637567134370247213369714723740819024239116516190527153754372078031497395173929271811217087878398772361956896420188617191998717321533614099670165421565339554674968213592305558425130217958931007324298848112247739641797223670141895520080685927709067071659829834777377438871295971125553133008532746169105057706593762825650975847793603508042822487551010869435799246451947147282468185798720352488646668573243586604183102133615617999169151121137047708648139661945134895696139834393035090462495026674485689076950252662288801342461145769355821648762628400308182316651519964333167881638220216655851659741427593189191434014739657536185616112007243960631790157465119428755218834122465742842512868126475889211646323983581762110897065124005162600977474704310610745865852121579773118675728314717698088456712092828780248555059527986353538815668212058832693706021280918738115875431142795196400939553788814614522147922807216338395127209214459883572312423791507007741095215699740343458654067049915739424646316872284531508176695886561294407079582329561519716439366233164372457844201803930295017068162013273442627773910048641981414824584314768696746715383464975881444334398702491443577328066553835275949320993118790385973747657635647849095715717894626740351865641111225581181837564592964610696861376730445080399010926734109714835905564921572091745097320046022394980676243851615831837126381719089627656783876028517158092152509905532814386591661448236827834618110881210143408011733694114880036850140994163976946577252391709380440641774352444824413122562685166589933490756119210397352626575026066296471634752327021462263243109151918178399885123848442330436814169827246629016290617756912547680322093789873369752263182904006274855008993373067602503028218985112475410409269554405674401691274250865252725687750577710156980595920663312732461299305580223358116409809865007185892340203149278540024148365262768238922235943098980226739063777073041698336718771812689914326515296252772759311358776920953948106354044403145151305953648716935296884117574403182265565499633221310144143398475708762378754555882770422085107647386575522338183912182794687355106434228499394277904960316213304418188288518752958620827394889858998689333051923392528768636766316397208309676247046681689725681986948426677873509570092179455539210044419850281534447589254431499795074797958091589997156382695303475023504833540650150738290283196705764494072825506116845202703396341298860779000780890667544785154538274163314880746814081044623146734694627024795279643405479384180891746625547865483525497474180670197179460235890413558738036877170640687824578925491534282112993876679958258629267249222239858705064852958510431057384721750359578802644972332359049929258093588454372052623158143937052444538287626564938493841516952979895998611399229678861341252166689082613107838775474555836862105575575830292973467873160010621570924986800521718695217882596682956666122344673883800384728493116179810787331686315575758560361566240786483329346809294985225168578560468409845383188346225386897647241688289973544362370569862765487926731515172588117065449845053752093596344020962930059945974186405304935608671883696158440472687296847002113868401549435066972868011532000175723386389780459953879176225877798006208975696463492847665962111000928484169945041484574814857089745109218482061965205873384624539661321794843612897514995194574283162042532859489686983383747182844347721938784251315020571850434544050666693161113273384951547305449142102398894597060992725979693640806470208332692183209236635673367675950208614970205563120521385224013906642198383167919730205337079147507504719228697323403642683863424116146936780933071063539125463189398035592734320092278356621982589254783053998015235012519301051085111084701427621271570827696443510049865535213485630456129320689709803834520079147432184743876156517961999377596947339144874954027222505513890574558546511574171341324058978502929357038564399435187948761573058842185784096594985145348072518672679553808927772594850133290016774973432503389110116165628593399618737936817043416617685869174460370374538129934961933514442427609251989841887330257121678137528680466814432872269989342398791930727092541745966524000801947371136735974105054401809320736800996653776210999473378183055817625074088810018682562523233333229849826884110367574111970028315595011695128474450997673234175070776712575847390178433814797157203006711013154177280286383102425455861308701840717017977595819821520791331221857579750720222235059764067008215671644904379422765723513052364037895747046302085808053200065812166311554050231647333111246269394674125032113964451639132921474304586621059214772897834548868318898408959416899223450997686315995329578375096041117046389177626452850883138984149189895274699349493030752400460651030034374507529970184125207186280493626178320715563400867908144886505298120844704420311138688083801433364182912421635313766482538973671689707439493207368925340021165913711395533015848520643653768156711570856607210565895965508897923793759896626011348945074603389845156170221868321601399977632376595228935756403396917106210906111923417539287310452703860793444101992672177062315978141198393463604379097538996991218926915350609018224335285606843070792503821062801985324894160567788326015397551807183249007695167881512533165595569773626830246700170059353353112462012509286502627464347535599427913625930918084617597338458636373197575169787002570573292144472129066252342981651999017484570007493358727347710923967961541430392497114985706574793147695142060525720520967913575554687063888910012589154868006655291084457995170770121339627047157526666156594219617896748849632758272738450826041843491457782362299279705308870718707705984506509790875922342644379042461616920649341741265420298692038220598214219775539021519240479065827543265222005040039526789291358244244845123342119727992572422869109275661697995761413651310004045649101236822390052481388060243848240944016681970465779793892284503152251554290784125340159488267253970976180354754592314841992896727277090974722465206991209557275732244751580849164693483964350784038282953512777767972776494101317355094970725796110312280537314699214918084638061952670328819751120565150974788173961031871567364983026945248289096962924252586053975014834508029027128550497687052953685368436348966417298330315753175150080577024371127565345013672038958102430826449503268391129810288960802641164885204145023001942018223005348746813110855096804425314845083177791838390354529848043258567000602320253684632632902519133441965964086831681336304546955192275632730605448447464630278571491275995241669323034882367559039692056030360592010211014791754945454113094538251764600915191363075958929089175543927205960950326803969336113617848499260406192288828423831253068131114291109486968662856408523956324292737663485136460448889739889990671124173935679849995148200828769521850352158981930316930855089602688789922846864418205127311983390651306631043351671618090985544401988947567672516328270616155668739487106212493804290815670323581676393627562550280594935572806825964271194232282735288063054147030497386204129784797121661286928283176456593622536110291353253893805371129147989277985471268115614589180172643495745314023537493864786687013828334420420825731266696834452586760378323959774595073176544835462682343953369080034344254783138770234811139703678213210650829403428234264058119584335454714704695488815469034718847539843736987742384940432699870172890891323881428129656668799349594428910525897105349041998163076270316359540703275833982829544096703740793039978719316541100120516328046801037328380123104911883511546953356409619021162696052339419353590094925257495391108548726959302270774497624974865951851146329526399126387199034113689713845198887100995636069960265900593978013721132709607955859443389514215919555442272310588464794527040308241951525315051895001665103223022385045571564392675414946137130972683472963727164774733521233739171686337325515494541367322409703522412717934233617191731200985921186062838314322498947711761027536841343580800797160061122768725348547108257877526357594379619775279196464884487627855171192848581208491790884285309378288283167461936900265288489020895878971592861392324239803315697834865572934246161043046841559418933857509749726269147579666507224862833527721251528006077264095262354451715432858244552176479799651230895220209939943724324666468247799078758915811440475819168514519815953991486043647932328680045545249683786298569571974527476392053032536189416648215640392800855460835545179579298676860914098402431208781875785227704208916121651660031170461244746394099825644101291259120858665237228988686053200090753850195069394166390147993734585860728891761439104687305151869798885070719641280256014784737194931454919026553568208983466107782991672879360706627290242944837594755932738364205507979069790470319104242142581983168586464588522476971955873162361590871824358880768634115688355894374871264949284095894578322978605796511508576946868320064583059336354294277616879861958584763741996162269764686947005890282562032312376592435106447254364714150856326216467034352235417470717028417285844504890929377790386587204712441429021802122353016786155795248014511663282775165555285102790861831549114574061666063522008439485215653501271758124175935494587285369844037400261898605476731440002521035473323650092895729845871941888893121213569896864645038433926280954312421725395595980481246702751707121429850210759774354713018693259662726227327081575501141882104935536376969065179302723671891459387694149182149230457719409945466160528247343446549819950089893670479360824444761767728445714124574910692280738603739948304829462393816542367101092138148244215091611974568376007074819875658479097690351535524524567188132358800175715544928261018241537418502937975594974146790444919553949625795563650577811904299329545827057869775109564411603288406638940266976082115266649740904916997197596221418016381421657492609139095914450225650576474921279833805776868897980269509104618316105780171455689031516578507989600345599434573084240343611549965452031008886772526798412618377375542586677095883037678623229589511460062071282250609440000135571380731614347245921350681947496429653008832780086340916256469710251606009794016762155403053278772753797427447511408595556419958198508218342774766394562216885219307645531650095000566728048751199851551698051044695000962100881133046049788780915702136642038982824452192905084782912646194885987979624375207978922715908903091017104286740084950796053535619975910692644764075882244314742521696242950922570845393293399242298444252401283965964908288545441463793890782014711903398876381149898226606491347872955165768783208490304683275957553247780535026086676136751023914242641523133038075244449148448279086868795292733083805495964719406544043825597658261617763556365778890825569334260018435388268553650336888591850022889144974799281234591360150516577210145359306323491579732075829084459022050724020987012287436307720256476925497691118923892322057753886628480397100013312697703307569938964109079686715313731960184634902966534689043310423972164567453719914196240193881719013704842583086409812730276744995401284014956355798443530613797336605707459809972753870248684198634238550475898413970267207096997413435111805043744675203119149341161893270180003846587658247665466545529060333956416547257541199825409128761467225653688904361553793880852412875845534843010303798285292038449387748678321027333212758356132879118640067341156194189263001181933313128335863392064053136922038633207927111840116803978594926511644224264325567137301511568264781899144612784881167661157786897781210829753373365761803524349032975916258510083868976310499750194598327018911607280047365048781726631015223459050017562442789616641560688821015934085209949131787018587463963435745104433630456865718086853743886110945903487166949516208588126983000158329960732509092980757834157194967349013518244749486932910209360453865928765850397095852909694987767313728375000532020389686388967978803319009830418848153399126851846256943912182478432471911058338064537448138552594688958547648320323431551667405065587649289513146851106767815986427824176826034575236882968533252227676036036563257777954968871801182212164837938109027377162595631739777721855045503874431230174098531089638204966091055111408670315231493052239662040660460672261290064072109897651628252727164160891382034959491423022469014299105129914410153086145491284013767614409784313668500415099454720695206072632197440501006591590512830463361307483627078434334168068440482887624821950462460872698611806675203689066223030026763185188056378996769390258157942557735510084097666883099399367470052976727901696768770685199702502328616991486905064615427673091765762193654121311688364616721622523016874604852417389839180782731595408478788122787170205697649683509718913182365919291372107799155436824246993898957029613928406761758783204059800184095124252862210233021555364308101441156960360273462970724308600284081373254040255548616119117486740892483518779992104255424569590780237609507213348728868942334669580645948672382868103250755929442989618420469206850692096463192491904299006769327220142178837534241726598048997697266770764507882966606496326437697805579053774531389267739093750015882775732042639304522346763787833180074715651607390240215488108846773029123530408769311451502361692955869101300459116454976747713417342241458269149721358840582510445403598352077270949922221099853370041293154794876321508979806285345150035489918595962897670526033908912156857969986317603679971876857493786033224053807572639331559631269505601573071255869785441126745916808295596994436691223390634536444662603384539559154818864492282317420089545434313793525399789763989387054019097660960733355479298975634890989708986082737057718377356704293066914116213297595849326756613425507369168711093962462835132986390225370423868046830287481341426386549856326989877706487921678578539003421839647241193827910024512747703567094624418957054304604510032102073388449571854799661511577188748769580251001647526558126640194669477444027200530204494940545126403500903150230914184861724558253550870497311607387116213283334107765300542438610052625709676502767699114549788546466341200167518055802705169770214505655328284038755637329370807132304032068402304224844758659460395741507269392928306157407700206163279483356807406083372103903898211276491920609260639153532153751767689406809513606080263657746130562971194596147112713815364955131319509676832462381191921057434606625127401127780086435967654694569696838787029196097369493587265282161438384494246626524478910455669024835216523816420351023374636070476134552246730643785998984848278662477553227920632505048005503121101177565506384968385212806759032345115284409122320042576633049590403096143233412376782652854170599886928051683499107289586136783239265418950945668739040790589200921517543727636100053626793147219135955753661821566273396254204290966872649750168341211411751916881465042136018594506906460396044342647943623059514687736337456723046789084680552180286246393483761054893334436219301733408786473299798809621313448634624734526767743456820806496887139856532903368021701804097581775074710751921539214139445743769424394932055664265156773613201434952801588975908915554683788130483459709561959159647848811864210938979811998854612757930949025774076281363268962643160779853692291297840235176638543996875458975450939702698467156976453176407154954948485534196648410734388133395204077814180943077688355046817301159079070203691588696782448198075913646553458350308420183924080344642756407473166550751395826624657757277586746336480811412849069836323278083899566956134278413483318493266169837536983977259352684386780770136514369197799986235294038014076268229892006570950764480537658378714559807226755780766617162125721976894083442108644779220526775849800223679727841135919948136502418832410357929345599767737224783984562347322422405230450082218582511648816327174665542172697037197919372473591838350348005812055886931913102710434204752815081587199253861396340323129230558489655755848285515161342706771652636799781355520157644191103923905128165412826140476543230949663180863961857447722895245840370859193804366317734652092086865952070820666747508363170907232316452687160883944242895880531690442799535787980554650786993364348894595357000325786356724357810222910396781124678797612796502742161919286531882100371526560255946550846062117650298498252361250828649398403891057276363637340413987089275380590182116371097214464456541254587417845453960303116843672927742763597570183590570627840961684406745409508907888465282155964681568104387575571844695345937774688293284203611889696311568904548627147177374148384189276958604954905533710023091802473971911900206193992170954127822861147584293425249312191814124444229040632483647484182458606173567662888878841771956817539506610857851783011065539367476250920067023318203057820501965201498514430629526932026690055151597061193065549444382987226695101597545633148476293944260009177982268768877226143642044286610943090932212581875200074278649150222371615687673184978007170447179959778664349384853627174733357293612669847933190154379263731030179102057583660352573582299382440516285298650201259807800742942860916262194259510012060466052489809063348233993038804630286288949866591982658389653317764653782670750258655840822964431489783333666334274762809656529360743830420999062766969527043284808304249007487942136444322054923272959027113979448776397866412578586620231895794444109395294558623778190600483015315917745393154692373804713339526099744102969151781884713148116410286268366090274135735321547774283039191104115647327690049519827405431095401836573421401231199820912910004029169815525023788994738719597194577014385313116197608522927899771274810800721410604903228030554532753087367984639115292105868869459231551806121862908282388265468962122610016348355894691835569979236437854832317988924979461315620775354892305289851376617084007082012746584610047610223964369329623093635933537363117892132281169448964675989181487807232864986443060158744747917952931677620189836222778486129933544732597064462642710408875608743795066778707323448867050953791046439322391190042976926558620823684729299407391213455587658200371731769866361865892964850537924675445427900342129547617917415644611647110724604314258549511937753985374015553361854414182689469555987240801241041775191543125323899964089573964065261713195281567595042145300608346395629296237312052500754874364278379712797851403655323406406812842660440622785737220203777414343799988414647842231667256504721320661872767721996851302121074348421379358241320598147489650525736008932615362375575662286378426549238069307553042605043024390160862825699527838715879056149911138704229537566082963057515064956108383142650718390476211844639179798299291850616883539820598141757828362439795163354038246699857587027848209885383307579819235724829591812590175873929293801469813609201928164352240722243152802747338619652093353104472983367190890473960390911123346171323865712376753984127834451383731285539133029842142662301389027958970960234966204387992771680726362279185376871005934923483678023525652307271656535637931250674483643264709946197171647177839598498473399852991782895025498270930787113441054411225961943886278587965327477447244140064796204663941751498767019970317909234055587465406823655600605120884606641111397087283224608852899887338575867475685549859172582646692680765105874328607160298450022367642699248401950501812150258122522765566703451888905009462938924836012952904344453625854144578833425606657434930293446677327175837937067139833967759487678098377011600191111842517419898937357126919062001152910957396636892191813050830997495835744926965848950420202656353690195689477053920954396600134358596064330098007278971671961259976266796535291340087999628928333554401509257420207558009908913433705287389804067981931090371278317061902540822007079389081584532697204321954418069810300164019757361055655167623857080289182550596152363432504571789196930256963846005602775916159485696869060402959563603448351097229693223096577210996019167157572236164450553052469094423028000875823015626504546116304335005820908611637154178004006220548435695436304487730878013289112966930040657738058816360950063118461953916508529691440854594694060994718569476974246360728075506971681827840759855875281350599001375747662747987055715190106624434117950510580441383545962937066762891113124395977373255819948413625154128828380705068378893329783813164439168286098833485156014407159954345143052980781608801939261340914037278341385120172314645482269747650669905348085619575418010006928851915762676793582813488542362834096701021746053780641125924736302723803602489322583767908310378358172483712852914362676378028395082307309045859732037393592175289196791813941734634720615475350458859178457678968315981288398004355727839740965035714766069871244264336751301700961852006134842825851017841731138735848199035703889166902977647824978245018912823889539633363141343573696701058350934008816847691810607368134680617139136215181666347512302958799908525765110282266423105013647671787401484405724435127967958213902197067545747175201538296717148089065702158148427200520806333621908889022471191576336635523560883963456408394673911945102372510058440228429446422718270157076308099261384385834378862613234703229796018475971533216462053938025665311403195647601690290512808453762119420820008687360167151586623536727671329716597872412972088539808091014901267355744132332046573045573579326670420009949345450019032001600325535674852000644834870602568137029412873716139665280116623697893633371044490104409511797952331440499063521050345765566888246274417035702572545370415743622912792075151804501614161643191110749691746217208920916312893207277978341529263776766657344888049771265085066920194018329464417532916906583467927319231389512623198583869716167487535831564594852023835734888351399970751309943627750337786870955175465319353870837401078726253091133539638063458454599598992150644210189278608363875695795403904286582038678126855554862974104925848092250663419165817156968351878373994947514503613768781626056129835686959035503182813912272738626834555616078894815655810009384250824696170792591873812973889532567668496492834708879248337611809937781642214903903630990131682879930589858303746132265930686150362866106349417381759351402714223358735942604243171576158600304063442646527297042296056095736532694010469194409312762022910827132378336308517610478250198820799962576859497488283987520663816788476514516945869350754839052827358718300159423628883668382355904814219955312805807723440577098412204808276947575294928411681082481247277067361039673155407230553488490326252976737186165029374997425915045408939652491881006173693883318308493963303586108884965168167944789151949089354503716459072267934127668222457685032947222244839746723550732532726770582570396144318742652931515851220728400444173235499796358429885942202527176780546327840842057328412218290253465647709711149445236912364908973919807451238314727548201284646327301914992944015580806311961044095441977436070694038309227152880877438447074041279150367215728755649449142357489131536804401307816954025796475677649277246502374150333295396698167526732077566419811515928568746756708449033644330972548460705100466832299134595904040095121629671511075175538848604277143805855831442853170418313949103553932609801057362450320141013959884971849463663659698055318450268261789650944779608059345670988594777563854148503979729572787773943685497860527357906903323890435696740927191745837253509394060332171055598027746486166059025733738919353599180592086795511234505120392017625100779917197691122671634572061809837595810573390661209679951950755107996865910237587423784025654930837199554957766254044766704314813294577872452757324354294271492932124814082527777914879997567732026739812119111163646090079570184676574573744816197230857505242539212838836867129258986359910801390100743207746671758254628483910025564172283146650329842990430008569265269229328187838792657126618663427570731302342257031250130847407832043521317298401996775505684061249419453462076521899076068443027574415205249431018283256835133170983465686583262793336193074791104515993837024186075115226672384080204745715643577673906992690478218761705201239809916268528851614873777094503518833937784953173297766947359503668536862583117203997772687260036475027808308427744852290379251144251307468706812072888915820226720232445971529589047016729764287088299875019574834463902865862736547080542744527723830155023554081600507904858917159621348763861777847666807054617181783101337532559993949291145493136996546409704685538477122419421210662171207748821262772606553854854857275700099421290067211668225977881762055829389364771970480466491434365851907381393594113625221442126536205402394417768685395482529052348814091680801185815598209409580623397747134282246974139582048538171047094072304634456770961991005775077446849342290078379726929628231871076360433419456419118888793543407521141693465436203543166928912942146139112545434340237578846046114378048323815143300094853444413931396426235071173109046971845135620050296251020329235530142079368282124401454101954648918106628275120136530030610387047844848078043100841334063060101438780822140932143661831488873867009598428031416596708679549633532098068465650129819565399796982579108269425388207032785095827143114403726135675969310059429934600818611942583327071644383290128997494124444588213273205879017934914032395489369150443417960749173551957044852673039651843160718232777257822742684695976541385285386673767938393017606959625475615480184588258676088441909108924522353657126107550939567484456039007858723779571826108185211178379076094404717441290759478173898435080995987402814551363057406132564349474908025636363714753336674349747383884885417526862065994839708476914552816219898194134521074984392176245008242917440167658300664489160249292801254990418769316312861824357416251003294708463744370051932143867055167409306878478849542666564343192159050889004760705257601135021352422249635784082841061638265192416454088490166092384567156861291215551698630240200645611438708624375576392315153846304760826030061422130826636635575129131990639226959872916489084916701040234399754025220311369279489252741309409985575837922841906533873920190481542791814787601077644460889007562250401699537722412850974154284059100041740301021551408598608672254812761849096812753135417995813986905976382382394217346021793618878527514231256888488325475939492452601705241575125972922515032030696523010134803249539253598131932838437779002110574980435418128551968566193336939748992738069007253816528749189717366262898897579891406708828926595932754850673776737270530886405002005699858591687138811429675160670718736668263123487186012111969571370095542084412287171176969090452468922074282169462675575774822961049370033958911376950884689403196234399288492223836915233372860714685315923077495213007105739472410427335890040624957615748511086952402601466831387312692693811538993378261411565117484802101057865316673003263233175131534139515961079643653025555774751726854958193834256170958579513353439501722053942676387513061175160424132782750315321334436452495688666955512854812750676900829966753673896237575397509274009322893068211355971729567197624289106103366074253549151536410636875350879924345980932658561230409862774573998950780862929029952935114349783957481448825972683423708875921612279184025912832632704407342549531822899942909524251897791807244715717484782636351477105581444471365497038194611251628932992919920987357333614963168688182131588689014665757560644274855847207185435615910766835875793023728129414421718550987427984656899378870922105477922292632615018256863889482428051412670456418895548190063325853835428183838752422851697089298530749266010210731421344640688590180542551573503129564662784988667508589255272337164854116217272035654394315262116297598235167999071746629794199695142036790273334399061475953699341396005691356761759186610753664689962289168691831137792856678276710856084591811771742316079140426907573615272922096155475194082086377006266586954175601248121430058568562086030989750834980424302946586598544798450974888524649697119586830883875692819222683707468078883214314666114770883880504820829319146807903063828260049718538883884693588751077561957285170244229731606929993925344687222355312806922422220594990031578875246389317748260423664282004038547436336092303551510410593906628760102216152037840774271520125599772637950744869832183040369419564789195139627197307148106257684671982835044306764046475404671649835075948140095286970282323914202843016336521389216677194147645272244966478063174070461432944661627410180666884427391331033699248237458593228190600713980543533975651349298485985475358141851380080362405194418280969874153855846769599497486841961512193214378258370107194453217242940617997805990808292717747792407893022667084770823910100893654996249103574726457211524980255110366054849435260538684997948235419706870523025698148673728382791095755814348620111189348408574956717954000061408545869219539304809956566605056177497622220049163536879087894248408836607523907987168928860157911663468088554531400702477812312719108328255666429344944433426091659071734844170853860369031265005888752123042545374175059614775445635950245647918103455060519273084683999526405135388541018749474397054022458827751242453130999136331991595453040990679064717359176792972885651443324633598774678431911319208551579969955234003132386777486200235689789284168802881715594562451745722113496910951474642228916440849685519546336679038564958886003552568954025912588551507464445703804480420768896154249181061492095534788049033228550947344346436014606634170715152577246913602154902072888769628804656278563559375148423011742874395834444492085483174235541364123262371804447292076853108682314990181496305385865392769372254053762621327800737882187861344066800175338446897600649846002230011737153548183103755249893554797926602146128351018265053391701358411052161472437294940574999027585234474144278211625059158986283467626772603146811312773942584942567495598955444656097431196933625087125406318048540244751215607295841979627023862587384420514660513331394674719313648572502973780584504607241684776351823576005814189500541503329528954367067580318479572020012838377393090897315682660561461928602836738603459610296242279051226018209177668443052608499745770831533776898248176003802408076266275057791106709978415409124116648238843793072973729331230676857014421206283412261550043907571623948194142794816767601265683355770482082261521289025154860993527878639033310278470487602224662279529725998915389754752540973055469239126652731227864794289235746508791054655001470896915679170540263899769155466377124180288316990778283834966450981032938482904378905723906185500738635064115422752615375145778740693104460575735262790504436566269291683813941876604608359883680473792370892411568860016131603855251563208316532694508476580900380647225665526438047451426183196842314501181636383489655410642702377213803195088086380458877454785590173803699099025802652987747163373438424133801297048648632299847561876123640642947549475261660801615232880989013705264343699108303354442329237801232979390439254919298815956542429700480918963206800464069473065747058680930498977209131533280973770579852187118145646804883225339085913077344882793840565379668790758393084813552776187582100602338248428943190983627051347599162190059601271012676478764665497690279239790981140277275435979814613921686062035100876047636153414540721775178831262043277208340492162342674019671657746231188725803935692636206169063292763566408060306860085273599023938304225121357221576599895722663869820198878182646377721685064669316384378676893398045411834536096919907609426140532678863934879632568940559449990716298141595617550759140304652518466930386986301713939964444120242384650718934151326897956122793170290470451183559057416815424855041569045020761425635455718346822299101971769554891118082027732240096314809717427422007996174622549326616432185405022063194321887830377026007838294039602066598732316502326876814663642685623916133350845826207710930648167448005048891372215196427845864926936817290756154719998046862167810206715461556410219627836544282725776884716006019562202816679266211311197799838772669389392115598856324296125190891642632924793574217941904390065038047751641577732079500109300946850551124558818264742315977592528610882707777727259140994129477704868374219088370830268054522615962671643716735335650608355791622816776166325511508049020866923363032863879205548570600658495321982843873041565083101405613093597960594168308772160709328589727524859966976520349138865516476308953635992859648559131642025509770935531344990545097134391455813573662203426075947437693915481615376078724756517181954621756832041538182982802284512227954305319684424413501558903495239589021960945883524400526106430803842534278758125901842221755397714521667729075772029521169029409676850154724000896877412202004046224050972472463944127192978654818622864703432325028834840866076320091848090252491000162149958637291159587427773996455508800070118693591505271959589311141342345388386132949909389994162544952213815865234823122952352718389879765298514487029878740986442781596255854359941340927824354077408420908514129405661878397295436900072629043246188015470146601973245720544286468381990381023899086297381911904331076509278157394689030867456744943847488335187732465580288222044750867670035172605424453771058113512851963413964247026460583494392475385733585959356882314218123135963138928215943437064242864021740018175396441448045444286949075303772676844296319968502371328219442112257924091518040239448118783714748592468059164925740741344347463245039552825157643451524082665686952405937632431370036187345334194898476899258285233546064956030022004276249902446870978708901773110118995979135717861759090574393742329183768491552263799779855341163570127871756608557527062056622228280880081589143039552032415912937107254573309004989955755538889351456413243156034496915704642774047437344708077730141170959950046689803024454494168293288111753692517742686170264632520215670982657790882510049026035867740881834873361750892219477104855504671863135850826983106922984613490968216225914646688922922438611847153529265058985024888013823767577128500984841088261956102032358733625512957916317694538197279642372444751392322312717223330648459168356743596345946935933408544810527002747468887410309941372074611078998754147059451890720138163246826166273791415987804915951519384949465954058663466488052480116354042753850801241854900926889698967350374464815087249282310075760372515608151878042112708297568781781935586222115339925764728688380209360275635143921966554512688907648489082260794156554509114770517515258415398385105625705971253414243665693136664056899473672503239160752274232593157278948841087706226480757390316482876251950940275783418737417300129309589014534598729113611599256496532544762574830268657199492029883340786563940808226101479608322505868423184158664997893324946703288941711395264993077613521375197681192686198443478671294075867840072741264316313988848830088857863699698361061241447124037884773221642885703667895873177206425156719441804431743181133531824435749009593488351558577012239849768374926247878749706926445040142801412636326830049896876132012990349145379792985661233206550450345396052488346453183607980707899778820487486685344540089639050092128584428188820918067947643597331465303864489513855132468804799979432761897164051955861542712774389730392634763964513167612902350937825187238376296955852856122346271214197806796467437619639523350558193792287502104007788208607443352781973467782767073102333403894748930911601721172514678990929249458989423792219916536881423898602586399894329455051898870851827628501348690295657528287442729707324188846024194387222819417917962752336227491407918646452611129148501654621752696646203494596229419982338528367910070286644836260150853874435908668213192800632212487697444261417353487683770967809846655911993475914838595208166354717146579348197018347691550831025076768640655312620968784662784300810144911227065532231079291661906894296495627603243600308693678800798101157579534563028421134966375528994722368550659777895173089921838841843110009483292354871696430382396764461027279751695598308672251127631960225137040536140053966990503884642051066975416171910237238779157770687364288701103615943040821511816984130182333903829634871820903219689424093572378061861033459123763193612218391020528849173521928375466375640913622681253507327987509787706176868785057616948510387595408115150816307268422302996399751942883890636204779820171543580221969544689981814554467042956253115587491423924962569217873149446740604607578264320411529332779347303709654335542349549591108998881786847232724962442385930767899544118232854723766382579401195609454108831569401920449620361021756726469303660531420244999388576273692396678730596508446915626279553648162529582471789859299661934555769978920985214722704315428628075023564903215900820907978017356385039355308342722602421318263278173545722886149915812939041827424433248353649439983729192040428788085704480962935850191717026099582531223051029149067247772131196198079806657886072668154091161469574197500159852711309957579532706178518605090377149022342543017376709852238014643154990426724977975923689507456642693855156076483164956611407366147177607488190629618554443768727879422316067490248395863997398173257547484765479987085844492515359723338544833209638261286652255059181846700160012738021769493368944520983483631267198315132634389895684382930676192163976114352444718165828953399449946911569225843698740334874324954596703013578123177184709598009170004386611138798097520630596537640038371920359455857905330078236363913152579772149110543496422206041407611579585457630432788733842489989193602349477527711920902818160239841881255995984385853086063253062906467160498967167634513901021727325218738968461151921461769899022065126973983477306408612919200560191772032114346078237011326294043083065256966727803480507421596837708462440962744201168105797176020810444893261965429238062799322462765470662241970803877634080213359796630314523624220678426752932635314695471175112247684458479275078789513609828837692942735825188131478259929534533552590151600036152472032745261220106636899914164785248701326716847928756911558983004454853108538789484021268694312343018256856118510214927739623351863084958129098819125365743628288478614395456797442643364649494298225607598268036906845807232632192428488733226758148362553657835446218053347380407668329934190378195942451090440138215580154043274467274164291804682028086515383017238123703066491339811587605451220313699173344318466575727884393083293180608151498809970640248097698720352364842088685777090757552027000434976410812090135485289493275415665855292093344562782211495674300441736612335652796990525910691210797767820522761993966728646319998084519082181768132353222996116341692305401393561787432655610951701373358075373009074374083506616083855272006305867362457076639820011003345892158427630369658474195956975771053859155843968444705364688204588294869899386773376699505384902729880285339590255399972540167266505278666480629886875946088768468398387735547501046317313910969811575915103195409060051568917684924692282489534868985666862746717686136011002855763661386723524172431568285249184988469974001528906321149509495181328826747069516153309998049464673270643331228916516472489142332014854662406939243957882649749479784900100618994938442356041376990276318181998184113670209274600061573115912806272781878584126293828255809659318846157987618546494440940601208909262999755194864531734616723706539115916842621709241055099637854946503102511751562468972158392462220793263799888984301815956736331168712580870074024310029912540807648533316533666657924558823949167334279338182180714609786424654349015582325326224752137835041684298320325834959108362872267559101449644164042782688916755926071341858207198691093924142899288127101178858910195323527476970582117233006212627507408204334792524608594888371795111977630623687704149467674338319215910023226945630623197646885387377929392038506394598755829493278367485655948151656330942081346410553461118891986654185035977847331526787138162757851627775377853841093480437920899561472647070031162296308902296002185614997406357592485656913871603940828356185520994155606609665228264541218606357621841261533028069047196773961397206226287808371040645228769969255345794571700306504517222299606430354378841790125227516945206063211365121107322520301377623331414374243606901125757135902726436606724743725364171831497580972309254787554871294743159404837993010690663091119823090546537418460175800337884346901871889115148035484242688659414956939532677859873531392422124779459184258019495299321907724111888716181701732682952692191794732203538158733836598547399628004147455634265845300185168330293375247513096673387761976048271796679638843240435526613865217599913765302932881939371885646988501133196298153559946186379721693662935690742930014084154345963597576167499811475723205112363962645807643513654786242050763213196885337566824836749108873144041673800101302562954714286835107080957487161684612341170445309216280936687225138449371676866474434653443192391340853617910614435453978721693749042825861543086350837166719988054510810109101881079044021258491850164302833054864388895758511716981394894710317794233837966271441814358348439331411586496063617777412229721735056685225685516497997739191883397358545679780282680633864194401162251012430809218664489512971216586295992424715824181516273086877804312900017868653354370815535350931732136520796642533662117392446672530245183183081901283046711008232557700706070025808648903783296449047344519811401194957374499792184904627086060893831818915848525563934136809034229307030981271377379152474673493035768473418333575918317575515859974285783510115165747422401571330163651771243610134769129640848104281214158446939185639444042161757398945445015007992371954929004272331085846075273295893508336606464371776749796700364113097622195602908076439157508334699482895918716558226150067190153543148586359564956067236488311832387685315444356146771659278079608443698698233539555703407069971067813285161594133912742909578095323631976190525726661386037009376302344956845222112453378106322638647729332646704768369388469948413608555615604393641420778485340122859324763590588426109574436408633364283310303485281233477913911040780141843693417092598635343294396229234231018543562285838325222529353413862430900879229197499481361002552327921964949742192285868577778562198997411347154426980260954690961214485918402480625820180408795333424752183337634790523928827892700605066943513466334395527055646169678680135672191114573668009353487507885149117874649770612975536554659476320835635029935857940809362753612210512653537487394872342949955680359071080819133579692719607106280754047703665844199955488808238277223329969448392503120065481338783496826546730767076212942229313340508776325728552412928300639080370679068684832709207826520998004701720430842307896010615058492247350671673638739968309038257751651625619896132193681584507470069190584613628055590542574998501734144496981929387330725193370067912489622477078517012751611153655333496762566255678568415647677347019115380865415936780343077855759737328375150000033252121495454787366464797217268781635340382613534656488947747038780331348419590852778448818167275802569328631748269567665729360587629482372744035490947197112483694063015140367522783581493529645785438499673283074259667581898406466601603274985115339927931273802209682054578629055458722882989639136367261207215343085887184333059605805309490515671894663123395685172221303697991108363121118636979474232485258785097171620035107764508193254228758065429988015371566526178854230826412637870667199219757992184595785710944544181448746475282102584339499550423397982684613100030694701572792466177957732554790492786618788525267314163617522722652535109077855138189530157871910595330396323593713484128317111057069304181273251030017641750317931142196952333241069191911028897438124798360028932241765739429818651279002277940423663445599547712375221631531735602321146883694925429102464771284278479207297488372966335333030292735393807165558209665322564917285079149168049441133621961102427288227816181951881610333975191761398400279975887681550700862107388256986318649557346604768709947951610232542458566568352916197848221509332778465911584536384649583697383379614773139610072708324288174417607012793958692749700855603878795120841181956469646334436677728509545879059509150680915668656983600517087206282197783108979554845729787759113255208342117721083664142060835693200764832480037326958061667588619294322754321581553583923535976550422876155542041943299512380454653442184815330708603289251025321598847214658770268989551823860576913027930441429216502108683163920131547728326475956697317840149048565008571151215973741126553287724105607776551870763205948921551632995656738267471242697303022639542609832343947580017711579309001851047498938695458518413064918137506473574177925783119041580962025902012046106920915527837162682371590032144060276385672631982440354514543262876353155937607416148176638169037429944305811551696605882491385209269226593881787388813801548106408719061631868947044369923993845806092813037185120826399128475938192433292732576496001249128932786953187634169996471685403361313960559275195035288480600773872843916164562832643881107355237601388499958460407408684742898879814903709746978658141606636983011813718329662867562110086209765219462272585259477367275334735501084104133025253999104769943008136604830418861148782153027574123122273394912873654856259725582798985834787938585342549072715455630374257758089735031314597575093581168212443019163952435853917929494402835785193500171731294245074402163231849567693759708997665462734804235369459526064256622207069221251450100010936731645740584541129635883232478653251021781904210265405559697989713917057673993044881909980382227772635167008386254544572143750060598498413077522554823103672964136826992764872987597892412988699988970423250538842978103536688564797724486911463480521384007570355453973915521762405557757939766694895741284410646936007444733243568994174101896587323977348351237083584440217805307201068220344879904837188416078485793250491967565986103606031410591100159668907671227702960305525769136552673052388186115219733384000262222373544775891352898839837493462496716877905824718958460184389026147365072846551657349512909956790553532303714990649870612267249232551344590052075037357672930175660849598659198790873086047882934875530885513748173655004675066652766685015933248652414582316757525549691133368651491409570936829129169872865890498429232611792843630029459863078090860524230259703889608318798141403262072161042909680396297772008433969824195256890505211322172219322206377761767836655341534594271864992726108315651588191093310625383229260027469889553901191657327373244446498120723877814735584331822936517793535344019482718090543796186444192404047062472808049572337756002425603678117316232427702788891888798693078168141394058665874219371539638184821990636826121087189230347574144817473327249405806334778375658228707582835307874222957485209742298614043854175400507830498992849509517296426055850778976616716162723284165186480503424066331640384635885083840168239298425860965444836840572445544694514176283220645041872378870278225939800054511664224112787322217062242629475536014518493278086986139795063315935833506929032396323395444558565891914610601737938042432672941104833243555283593251332295857273302836056185579131335425832246389202997446466184241212867815100351539137048541500529640774769799026873846675611386161131635330451692309619852915250204909731999663156439288016598944091169957104927685004762380888135964838464160505166175860619526063898912017349809322982064042172738145769766736443544741579992266628058176779911619029913462481738849409558817846612782908882225550690728395627011986328173185170504536467307761795063165370607966748843504659649492875037202552575436355613941063720824427304864804769812277103004295129743013125316069855217940801619306061070979863753592091924354862444343873793428956205040138525121999925172933036201655209717974847831743379691954931309230291657277105397454474534576678553336169738889151406671305831623040635401292676396915962140957992146633045777208905806147844209728273322629759522391826914646215483248119171931924960319737398164690828091680728433109582106821061999278782842465100930817121079133775982058370123082338421120643737401397910534155030889980260696465237539061896724234714805088370252323827004738895244922432758590024908602646184643769885195925304845053394853010512989309259898259239278196741913991994120360354910334978393636024788391909984445425250832272263760902858580925305668837299981952838076486514113708228517720832650425221681224655510049313250424584740026759386647657751643393759618407921065341206858915138793783757736210449366400705036402984124310949277081382759845407768909268570889950871842271282129917269162905571996928494150581017376678391382375594286546789990441367450671366333553026314655742520250643405632058961777885375155183111970163245179820913708016937480964794897118679168473139293287270460892184647439800861160431298345926406565941737261877451961904116471562893656837107668482017240850509390632761374314272335077866978980576122407693224767678019557207624548418129528165734973783730878773785961264189999080800034372232485673785183865917933296360235037017433008371089296507840156218439835952242407232725374286407881146507000804431064936601273558059239613247227224726230513256282024882724123550043023645697545373900717796255953492818197039264711261399466896803652239230239580039193885505414189135542552564802169845405575897787527085932511924811082737610829447321816680603103817683191915778292672387896666360691958720097401740001738795392119106133557901923247644010392378607391787811805338141405734160724621448035410328756162460664339224538885058519735986978327247710478648538701458439449771660412254399821597441814292371686048264670181383720821598541493988598891737390994409133102350693335625933428425853560190818866967748378359153550233267368433979300299563017131205255795506356811193265211617421157230365100093609075254688687227977010774192351040805261242017528268895176432929218021501163759498036544281449268135370427579127576858003711927377266742534967659932108195775099464643673024298820068275983623632629989217530095005463300575858366547742713613815630779468548479163515477183267568179106988386827633536305350147620543092799815792905930510544988961946061199303018913243515404896233985239127580695406513397482541848561786202247436895583086909898135337086655921061239549326227848864357982240123993031479029352107580882140530498245707956499886210482490813156071571869722234564212909510904219837554231557459597938666339154712427924848542782070110687899187893570545343932526776746182724554963276645978860183683395706037150436944433258156180885379603875056870753847330564744739196265808720596884037433237355589219846423827891243511729943120713684278460464969612293070519942595285308786922099336777312133037242427742106040946795909649866771409082133003583535010623909048866774944556430929941304024108279501893256246207346556102766350651114444994563936984962632418516323256455038173326544407292011635389678558495154657730215994527896545502803530665988610208087918944015566939060178259980755505436429479355815410210234096350373992910608163711236707625991225598795398024522818917704232591793510170343743303429175564922282560187981216535961658090933081509411316387899219072748239950334803700747123724224136079717470478832754628477634301875438418642239600346708173727885490879201923825751663546982083326176113475396092707428452708140577907907220799346741831923378953062296484470157010423532679912298288226376692687692110826856346741839626669020960610531356286903383461967453684982349180311467801843331174290891217659187361355800741807228010652107100278363153082379360711463719951730165983712121802009470507659390144545016518751305559468096616286551107385011764449594970380348460051987166261742115058588692566567154049541701702540623706209201817700149628356489987072817629755452562681473100529730348583307173829398958871914167934713547067157058357638087562253026563663290199832611253345795997070345245965250156691562877483271688045270836320528378212441449674649934367623713106456281788929435727120828500689165973419284309993572462670258162196831913566820336079343647376048318575961777759833161703645347677502454942076819244400562466820461686120486034913661546359290522672165920109621527545698053409218565568649847797570406645413005611602153786720812696160859410437845504247455662945257573501800256816318247150785415453579215784061097978292876862861037918381963461017828492510506909884540615800364875405084251679872409357958802518252158221256526785990434602255819130668938462516127526799377396688841009448415196901902848719085405789579834805209333142596034942745082537485002334921100922692827204739196125372234445444349351352645932138928712716779216615470394865937822067101561402790267013371643066424031235109522588768301879409021424364935238507846466475171814287426090671286009353683091510735421821288828944026920617096465592243874912328286532007688180981000112329974494830328208595848840309175727861506661788070872443047309578674677080314198046425613039880905638955753319295856142969298080442710499118376496841328848706760227657248457000437150615485984712112734021502361952435037016763172718984649098199166139085109486149682543284580661252284268826890872740144974542206829338954441219307073708099613020530225323547121928602242221666942481627798224794732260301009998435686585879593630040786294351423544373220308349611460157400577568751984594361840441160995689108236039561827208087275058419357059027518292028997067413545858398054146660562832871908243391282136063552491581654984895813933122295230615196571101386282793494839668472368522724911961198928382628109623022275344316973322049537715099867327532161796296107927433754637457059971304580552088792004770713437871694265402841636362229888420432402617672747782438399486709670448653116219234465748000653741949799693891466534904534201504369171939271355196055114392911459810980473608465430215729081937130562146870306182665884780484282623754622876374525366868220265337663980374258147139508223212837525543363136118005130816583194227646169657372347414140320736518820104883876803949130579791421837899259769397194313972174507232254921531339102170257632386935589791938608437592104469983224972018582245907973291366707968771126567247614148702045403513540842654867117781029461589525825124766752480350725149684633656762959746974629666614461531350261859275214444538134789522649393113293447870086272652167909154068835224327989699687358383694172502781357456037436373313137608659652064112588108123725772137314039484803399639278629437210069210611013970409756705334398647529620357904750109612529032604258229258736788239202746609188285279050723483400485891384736094373325083396042220149404752692469701953597973053572364341494451629543334917548261901619402703729203584423255677410776771829525229395147664968506486404162675458273493553338204058313918674369903360101755222938093843998134729784429470481662066690618407426957332027055030757198637742236595968777749594528748144990017100929169533629030971933269627267682154977634935624445570809385232991902295403616721179351208289159940355049830424571445699483631550676285274100450215807757542632163106171052628641954747295421013008972813037194487122182612327524271297136761925141851540692654752355945733828872659232316823460557143614462473947662663011868104141786948868607216702452146514962214386158123228355181697783119682310018493823414737865566721645715964351373148572979862722409126650078691204591355581593425009711307257600578390570387662603135684386456506679017043027997796282525270094295144843154286361752696112036666414858223695784617334734605580259887751364665946536523353789646003101117426059831079497342133578264796959836751537779370078768629141493054892342744945351538897380981557009476196770273291775090316625709620712098501628611272795913386866950333933444767351183252985437317761955260599769188542295934503284502269079380829195962621650917655684214141237874032699825658602997112806384025160098219046677788019635973007142061513690268763356383898124273857687571509675280906936905696224435003735572947658592342666015185234120868594881392087207520889901346149971129499159619501933992875871354175201260809852736100569838442494737286790209647983471519312256202808754104140761958209204857793990197268644754662565217976480045731830129125169635445356463220643410274928665175068995661160356259401723507018071885752247371412201836492312754468050996697577919413141790360595630551158901179820475345024902936860022516495872721759472864667149455955983354966484790831510507755807209045382740796028843093873949985555790159402422128375616379904042873912594446001157074626916563012380137326844279255086450464923480860640765689359401796738556224450893847557036537066864569855398296391648861402225863407631485438810260886300322877451277447684333049064641931446627891057152232124513377210338355270288789909980667155562772191178363118953312420557141796457849113529882873707121469468346055229932746626755842246909758889737011897580244381628798541967855726375570360289153445823181526609808636100022562668381459975284063906188570658137813177253158086767854889779342563038725592552045352643347248003304625547994059865064702288578379051426628012698759808739369948217680532258834934755932511545835156441284539498480400335298784932144085740393024603365806819319837596405726615760078449198489503526917495265690390813659112263431993111581487987463014239206811600714013591063030417119089690015233367087967834469431928999028687840407607751974246942956436202728289036103452543455853627181998230083401718044563057158884471470577334890490903267260942281096276133755409046259659000849722901679876334359653355028911936256735299399346350247142220380219001468325791376971533275623581183590319472640443477408373769416641969494679224919521148201811232401131872530399525220152243421621310076699725871517384165630241961635175702291276451492971532575544639136430421315099214921291636409512024909768951499209252525722120699557186725438151286170849547371737042320843718763145285596892651913874859011769020139757132341711075563631474592236512070567977893043142282463307031112679533738186723276148297570473089540736646512681707912132221519250176969723597484238340266692719279778429562177466720407567043002028527966491646305686680223010805091848427655539791678567660905555874535032186642273681972575336915299844841620664371867063523498657948650398574698602646855782909801389661666952830948239327979900179769674723723061909734734376590807901518997614077165810720636062356556907504686241740749172039886102312563496708995464177852497790993846819409694940604671082093196419274498008380973104568092249535239050571870123449475733818732702676637008729786714068477585595026448137744559692948783392262021539320153121157340855817039560689282317516402403990666166215483222958297063673021404565064668434157028645816052292689020285870732588435742269985908492800207313054954708905199129585263306543430355959097190312071453651551182242085715817953213857751039464070805241848327077978255654604700507615881761096638411080822728801050118547113574920978412149166457400087167395392128033033903921728035866629421565682915663963788224842279655699902135187020681297774024053140499904929215398642925564246798840610695932596316959929653842727590306924627144651089879625771942633421451724261124864590145853431250628677880389981024890021733239430680697923770480722598840000015689659890413545588621198589488870661781991400259542226426354753571958270644575406561117180949858164501870146797652359180571237999398558222526465733994022063213465232315681999993983383595070943944181056894251341895261051531054635864489923090314154153063926438515719588983621353875505804379221178289414024623403799774140627355891764818863533024548214833403332966737866225588140275280272139835422716005014570261751725518162202949027891263866624592955131968375319554913948059483816054610011079343745284523424938833086548008555980940220386243281024037813699793742394107920562885334036531456750816736541892998186558027319748851726969210443221108298500156083032571954276615442916836517695738338290774268773544076566821941835230834653559622603234448209596304335452443345325487587313210580659975165791532603894413334771461962738566372983929686344197492237396039288980483543023015483379382146331767807043233356199565992048569377803518421881045620898023414214811345407705168844150303573798648828641170410873287896674925560690810215809712701718287416309864734098943394704004264895887569965207672845366419181323847203565377943437681836326569209652042322251695364428944727936944034745158758595881388438881662510306151445642795071830882976010604935872387808863798052923554773036701662538192894479810497001561842734352601611815387708227064719419941663125582146927696971850444986006331605119393560205792769730596628380458707010213417243367280489907751288668072309604491830189242388477014183916048021095077466820308506848029574164070712820964528791031088713902724047274641513652938554882847226001074751190422515865787087171954731164730083633856431681593874098741527063645150781038842758430228387357710078330539933377273352301361322061425402114767342297913895995618989429043350116301302522706219209209050749233855771860143211537712769324657175826342270068695793699272360013176541108906784446372349677845216154587630415154307294638903074350211947419274338712926924041018807549729282408891421251369915431490453614924392175434638670381970976871449511246226890283779472407934053168630424354124652736724399979409743531400617843991869087411980042866331781835828773823623502151686393320157888102390035979025303587713959570299404059186662307991361768216736370296881528981731320427042972942864660357943968532908037921514905789860861826586448195063610266336954694537933002226379520071598745707999865573740217963695305321826842047929786300499377817384663181535531707237724111117606705859079073922577492789469694083676242745734447535207716323277141092759971094379001718793670402062926177708447408401721556348671909867118230970527185020604855304341759075659645670219223956493918325150645767315811908537239473497625834157925132303967720198810741881016863448183231137670764068629572095231085719861184725562211917194021230099427559177322121840831602639110278388370710572318369169655355540279073116744394106447626311498784670340977105695470565108342170144586423338173358190629704835547409755988058439555431582087747222081609281019820628317603909626666200981365523037835895418842777847546265871882664313275898888035900428405608560948184432065398555987756193400071641735837283036595057322199108159184399058976558756989501084084937631148978401510223270356446580477395989733554265773919756896994781001915587312628134133912173276293399284880047080573002723363145501238923511021692832599499749516407249824226417272432574879924350363027680178873344813273542783375418554300480291748027688677578481009168012650209008166146162141969968180352139143460309352001690698004360029410562001861423075775916207646086012141984136607725543942493820291755660699993817196060743349991043098436586783514513159356814214901289531887840862440366496390440980028930515136529109375749283876348500256999974405905088418101697356675529642987933438602356821354480649150812064730988087884517825031369823992344049450466234276288972371415203013046338986205745036830638686354808756376053194098527347312402093613352614182616471896936600000625405857235844097426529602150813280663379769279594517449189045866524859196892841228935735697076553408100924207566283718177839935884823970406020217197178680201374974096881781957950045570994526096153580032297201818067743864614596666054070010315667255715788070427235993397485441975582455791001038010978428173812466756134729871680969550344226561973727456724030638213303583041882689680524387185583569268252498125507762507545789236892729238402054300810901530332308097541218042610749542299612521711370929952073470211634077332452000733784893403261357736302031678664493443473030597852654514939331306929806038799587274060716286606841060912640867912979249086221883400939352105200429019732046027048114127885788675553693442607808560021057256871413269769536985753478237566251664318071626403069645783112984489312904500979112735472996591984902494556249656582326154284224217522751785678954135061577142741591266689366936205281668356919626711741766720771793257181432055231339918264180584825476524501720828593543320415092114443174632919651276569175923886838481955737073329476177045633527877453337080006847387093593953162994668670245849258202164866682026200056030670930632850758088293013082583828212392287153247882016381855216054157914298785851473308479820664357415951449956790151229416034819883035272363878008109185849866896665123082880557290818330443340970800249018990094337379347287544694158461073056194738996117483843058419681560295344074762080545693498289902967763402235950102515721662071498900840068855156449945135608250321746123327341733446668519406266748241196879651192207933741749204511030699949528804367444139718763036203810910037604988521366435676107286559088694559906248147554018509043535839892172145852218923909165594146012995432379149165227652946599372691757323612095431760665729128989244098607579521482422021377180432812036397930968385096773961270780428447103334107497824583296219857895709973521594359530302223761659910340502238784884087171639103975949795081599066811981929231931492693186962125295704842606378960065421828329058908410515756364928124287470341484418171127171430256770278899602246730530821306106781506801333786376675980815418467148758962004041557240178676969536498472089392599477566186434155851906809255041171401685890248137711641509048975255897418444338498273405924513507605435986436267556476122506596629214880704624124933530916123143797358559980967085110895287564144200936634936384749677785411062879941968258927388532166705456285410178242430244210479579325304518286598018290830506053719876434671131093274852287085272888275713811553984170576878237949205743123187153593648871050941108704382454597587522171602718120991930826740845390720087759953569540476976455541450605153306881143487980803722298920209513321988208270131462394171388374594075691345923244850104089840206667098448469360593845992430289383415218938369074938897905907939936551716357226537054449289600799681361616442112829570619882683326831378618699590563707975377581400723614445870168143688851201902735472398892312310481407020325253621495217310531698109571514799621992113485992377481628675870145178229501104862064934128605080843107144083924544780349350501935724489372299809209908786222318856925498280734293905031502578816567768281118220551452602220528720538562719666550024607998215130105276789139967112011333877404010972072965134155196484663505728719588556626901640026433340486549505132937879374493643863910733787168687223184289959149746418321691002538300732323735929185771899506168376221885931949139211727505393003266779096038304299357214751712679788721388551124739732595132682983338924823640766731689639244168478450466457991048497037702822340019200648308736488621316528635855650206315095349609685019937873067628912470358969985601651096479331791163252000018903040680954561016134078117991267286160359551033185092566231013428957883222119919070098307203544801144530574848047593989234531957616288869130231439308793786956479806069238131194027883204640326693826533742111719624276122972326678957699988222901826468738948869949627268003340024638805525299083368547741073416716776251899623994746645508416669283348703722948782638500307570441924363403108607059739177514852162118959001979104676285463735097233142690705458330982460288746443110221019572112491569308448271501520852997187815343634002245269345717059441404858363679480169434166658284704470306053633570340204283280722057264328081537353731038378546463673915159073852272965145804006821498690839103001581475892138942880934748331149051517197777969423367081990372569859665525524743635011880399080674594777758047032214384856221718649035630446675269411444534643143030779882645309320287308847662866658078868091760347653657078508626230577645605983006771611965074315321960538728044923234812175289120474637906924360578036519170037952728882961960489339998155137276393927141076526536250809285395706335920550503579746659282720348712329571088632781914405548984650998913976716125713977714273916665379015497993717850413580526564495539881609628005624520748825031772869339868363812325791537547570134963280476309182008653096257545397467661892767843527646585252283666259225406140481770010565833724878190069921085967833708658213690263634285077953865969029141948622543444833032471402384300992973749184469632103681527575511335673155888015515294360783930667581680534004630617055964433840157661622505937150306891611892292028672928805829939674273233334949136209110377739190463771104374238752901646403154194873318344235605848944909009443833330707691400515393991172942686328893614164342061661655648240207109605113256312224073543880218800671911398057171456045485535982735046222763021672685948339844650926683158296750468157686639012219682875287428329636882876640735555738412234761254851450705068437869244757879394502788045595265708053463815716208120609427258958385581556423168474203160636850559770603766369994838308335154916209911365544832209593382865178176247357643095724553410305045673655270193779637598346263858371405170628358300165353306949654289639007069436354978590430190697567190776544764600191495094315727154299862354544024734819643026385960466728744781653855183056977252786479453821390681167154806080758607901288682352810284858162041360574685906882258310397239027504742160346121023886069879033944228826535288655260200280002644810324225223788734762301456493465132160569799955801953021600583545913452839677861155329001353295423233109348487603135069293638685246665925891167904399513987863744938647834715236354864781998739121165543370970180846241455529573281128283902412187582406802394021274888028029292004062443096845132386891541515765851162904187103129492900910767892537038595960528726467452205085876930080677767069495213117143946730176834624691211754521334090376708624176834329834878869100743780093752771291936807599168174262988268493432409504005907145170876210968189006573754845323645159988847135376757654210465278760628784857805084904989938459800298887185896123237378913019301153043799976063028231726058559146905817269969525550418811873698593747950428527671351014135561774513562197416477312316391540818082591557339177537329462584367914943213212010894200881229634204494983912142195915026190735951819139781519061222078859402137015293978360095126537725065981215777917727192341281769432470890114195179729593291005771244269156425825108798181810228978053028013201802544969494299353507526047373355787249905725163142666648039208622657350457782113904517358667674491383184342755505303949648370392017231639353282319881431951037853821042929476928740474238803859289294051191964623436750103793580645042510948987961026393846287267038839202149079584074666460740743075527417139680124866829967483525501321133515048766595197196354298855033933569442490361997011357369443614493482722625452107087852554255430998395682177763877457935800381530100575704974638584406341742701044694853556059491742890830399326832627520397569999466822890747976313726742410776886584902609529955964378211578723236618583523827125677449666614392518715980535651147355514432630134579890825571192176558024193315492087196964530922847964825972958527513322447298789357584367006373414584445029581085379837373066542921717236692628355173441002936855255282097917384799094802411173072772246758370784778217009084015260150895515231752827656068097163711347084471536538934008724115182556814993227950907430760251264358475711134325620990025739132185132412840508868799019666241622319100779642805479299653557693356504240198982075437245582800129784713906761407985602951840863153729905290974634593745541647568220880225071573420434777567988336066213872747860855240247836885467496189865866964683460437040681955098009735493445071542439208213992517883033110504823226646715294639557489357246237959938793270237128297787793566777726044958532696499704294680120846343820979085373423881529988119687536810882613059164615946251821487665346020034319040690865490124160296843485479208745766000997646651639177971689176856893359977385444542040603291551914150524819917562749686101221060466530319938844588075794983804695352534695730565176932663901616766651230816841228523066745831097898443171257659236788552709335523401028496069763658852891233592579254995768131567762810482239416178979986426114272036399202335528799562249081690957016446544704680654152935939893497553007866397708268290187160027635335521295162569327069827276577832930180656242594206574750469120651037524266368785737900230545237935329589742274073089916490651721763962703968683089086666694932187554430133010508484128309231170857043641968517770263776241765774976309405899543391653904841758442174927655371045480062607772813081191175607268780173405903510587252990917235383243443101814702750052934247830741648641911133793180739786037499622911222166815065539849162297947140937473819049653912503016404652817070568448011893280293989445513106418647717921470833685299742901762003542125365355283178554572628923645371781867708718982507633620309390165904617343443970178137499543645292969119101222797977972264450684985933564502673226982419215683722821844152161105679563768897957943184463603751696934481808052162518401842540241134064680003788192622963912963482020308682263215906278606165837920623917745684797761012067161382407413931026208819508832791633530121670797790431516970352282531159155729009673273056250407965148897073641152296654351116987553795067522270337348428814527196851123085860515023677889960201027715563899229740376063658761680745001563587906594560596464167868060244847764022773010033149488839861975957840905101267747649387056634571618113576133916753850143849565034410469938899027917935438171592417060731586906628397288824366929441615885130652948444599723582823593229452292748357024419878191988089609587474991509530760453722315246140562206372948381416225458965699231899259984788758628325219307696454768529613160219648107553158324312036750838165698462768284637698142969200234058961509312280613840244915825690095681873379029157178689031327055380607140560974358261367346826682186006829971362225248434572795015236561454646825369811455837394565894119029724891428725254891314099440173949259291042053120114269139454897297767992439397405585453817023467395456938740794569882723245832921847546637110965500867087614577194781428020236622751680084264917349855007441821389812767866970647333779810298298020885514120310308425057536668501858165255739281618712184700096432961641403638385288625791557188903045496176998257887211843792962753435162235149676729164218752947192050361024588228208295922213109036912388163711759037530387545480190097542428174503016507570592454569681944635912062802228915946439959962873771355351170625079291125843062987238214126303439980317390342943762504213175231719047599814546219992453280977791369091935160548389770616035192038904668133769967760937191728711931806168257114436134180331863786971844349696270971112201759913189070468442870395200406228042883592399202749923835898418821305818934374506467929868317395891777039553011770927931113564149200166538705707849663413369190898168800795725520724189458446261894300592016661802363264396751955316206087284137918230766034953525606448959493128834040068520297369891031301321537158152762100230845134874292225667691729612557128636332501869433293102526344499377721576838002793559116313633892788416578126000013935137168887474246769260768661561893548099492939552856236274758455364030739423182392196421534098381450943108349733843848114324647446032366834722983630039118217960232299887796448561240405258424434070873175322514253988106756867780716954770921066653686106646913257301215791007620017645855580682366702242457955790615997799993208552190738341077174174042187725021028886594160903104362538020690429953415518344871057444240525333379647166540650844054478257739985397359382474052867983468715998794776842707418207107363027495230863156885170821746011790205183946578946861861383494411373636456188765363205557909227268580789571010844442433750987801558391809044897540075473458119740851601182013168920854297957478610914203809650884101164300084782917801643978391363102316393387059761420015035818825875269384594770233800219954931672994877516675845850994278249644265059410494287646072758310400075353439720366388686672849494846692036207843422115319226162170120852618164573211229295862857935073620313979907489520715772501175600346642783798925268950401942737753317023355217324081072762683902000496099044935068711776859045596539637082871932645838012962299073122572005817851341814658242756515606122060978220622210853525178866081765529895568973340818451002998022695831289258405485864280423263358601603747160540584087027070494373081130755708695205594666509098278857622579921853285986003127399673386917601399149252264040922374231983524339999076799121160274482315261753717521812043611761124484395391135499628161300952902619310030474451305907029120428443588184725383016497440061878900865721609307660921300659241367026720934468173643440223737222667355695539729133998378270553344776327382215530746578394643489921615649009886693343773242528701393237836669421794082159322349254161605325624143710629758308610503521736867400970454380450722262906650973277258544720704370868849241837192940982296505581663228736642270839917362339743783204754275902120307075065072488670199450161882294182347149714898693758802166374157649500649085903245386803210096816129844475114051917561498796365229799801512251494217972105920981437219121377657742875947216431385542824641191016644111673193799145298868697619209773362162876428253935340954795917814875914975197329246310200180162294550887051443786722345194473419096585245937094601127572012471888116454178337304701544630249378492633083626577889863623712232094492093064844645367142688070874647315733586437721343630313497247192338060941955227876074814793379718292270934896204416135154808744405250178672573742965268002803566862722419799970685454028147633737751269586007058037272056013329455703078672365931021900973953962414916699561112603244916567359600045524410396542417789384774038594335995074898525769290684051248647983671235704775685269726400548177176116232311784220221000191443659644506822495713104749945158415763199771718672453909645987107964342458010756621909016907643659859053155523660910922678754561408883283328575331987440162267554906916919953828153152373721992757865528830132982261333343404474473322010204628951856486730699856139248437792641156881210297689529720850531189347002635949037103590154754612443083345720909269403575753600760398502058008287167784267282009683173928508443066426985454327980955055218787577262219479886184143206713485929979930064792687129650443757471365145458729729376081920725216353308395785504196877148937201391435008898078759998987965847107496265548450011580810357220568648021122311618493648981566086774636228445203424871196937639847496387025863728912983333125819779637785466424337601348432969606926469641725377913965655116143908967288021680177862405536965300817656249067413403760060586165830088000097317783775263825371312200881539895689255680045699041911490305948899167692350192670871873110785460422208910870934212384775290125217960508523491026511366876830357114962882911694927740806182016697605434205717211112569599356276201600595507717396354363369590686315020501876956752181244069081340484082038960542857033522235149501578450430832285241773444500137355802726234374571340747319896721568986583617072702879870155817556641701116182058519369842371951263973694603343708844803556853169561946612806256511327988965082657207831641258069174984825301092233458028376343386327779048547481990554862219196096713677513955748151233004049019360803213290515161295442340216917222334941405652908307787990451631699133317871060463612742111077863454698276128341624107026921407438529618003600808225277585395979159313887604270526301310832764160609985189910480511790308392245331355524138690749227860657639731454395526695990946824421315380351976447798523031074698959590120732467676980293780707219025092614072597885481131346585862267089995799248979403278887244244489554912922225557639435094198064486561999652470749795162589605582070717950068195602039636039659349688785106412973662198455349161297381732865241112038017654872855160167367588884589036865741287666045662544155176978883876907846890151415724389207967640639597082168519040761217633608592734677500566044493468240992022651464484024519486551676386126258492244394788125137932558741239472602966241143216561181303371846048373186523976965834520188699111626709382212672322742152315606182582272549883548636032886888919409686211468726679370433667449270516585376886647468670962757471415567021157327250785968882124127035808337878547694971274345307584043535176824640220796229344928658035830014529843825150889688949896689902613664507131895189165254308659191573491480682264152782283699313691067354893993873984952730257567035154329164892012669429265293560625524582725813212940739512460262163067804513391478568441216078421655295339769703424768369305748914837343314626399606470927048856635006469668502286092824286236959448269746378686593496055926876656629767263022607945720895251065777901508838338777808339832984187042713744356810153286668726222380747455776284528156570319451487301638182474260220611565489025071659719504889561836669212208566429895361338471227227736182837416467758573116338248064965983531018291303544164742751372266969914504365985226576177946159898318400039566804132695540775927645006966860742589778671705812990822940699492505342493856162390996726624158221669376322919356306676914289162353204618942420793755587653194968192819699872566406478911573714322659890161981451736877462581224758220156410498845100359096347288679596766701623015622153621477195125962782257076187892242094090607708514600397042170864448934838753267672230860116163905063513013261624984526630711176636941471562661883464527045329154656051302175460641627252822395605532756698069205755415493110596814958404175821992168635852688314551057444140094119657044706359968746056696409154213614555896974607945688631216917488944600672789740157706124431103185401309343036506363420545481599307247185346456207789667817742385488251613394963557478058742343814984020314786193852636069162300826072767400379073109342829135485618453817019035124627462533914175982348374913854165266044031152119085516653049635015880955257895772135974707391427128242030473625781763189154422116374024349972948335864759653330659226879686423686222381002883770922576551606614999671999122581942147476967618914693642619840300117639793324266740489511717165282897070109290814419902878285746350325329997821167023627529550498344762898052552573387244848331161713325106869002274540356228561298629912879988191256332517662007421591178843711390531406556778266856336386792973366215280836162453464120415521010322994524654095424412195075203005261276127684309995431251150936616118878983857771125173987659762574087590264196233759933829017107668215608680223575163814671585099786631722022666724964262261701078044995587817663704167435964465760032911427940003922431274032604070788358733025204798772050495343989089440018751088935877573094017255981850051426976249025270021090943889352530817326479579567117937055993357136976954970621833498092523657643553833082774422447376488551399939903131487217056051644931333030885783578291764111556580458033875202990680181236867636803034196657826109937996620277441009881628473409086473206471797928125181928255931621481544220387471053706010169730497512657939351575956751877377553217283637823896949775838147846993689851746250569690246974738630676885296526559800575319040420992555754684608380407436524223605898903896340254330003231268584354620489581759019566325567576134861016242220771806326909474573065428250291515497957404510348872536783594906694658989503329120251782089931430295074102871672583397377296638970143555607970787637098352697207452021235202813453633911917444334773223226100753353661879690067635728558938131407120704315061263004390520779204988951550296884588827049696664853496557315338845834900535234321688267162142875273340100256139742852868275003386895669359473542259910595616593810561196331694670852294313651734596364369828269998312700148002021864446672222495698864128924391589857136444032178597991549399102044933481862764591262623220925584013720571548962834085164773682485152979185281736365365742286040346635090791161214833167991876281191085491028619627905401596091649493734204678081708325658826372482838720286150462394372398733490581274947825423006831978942428768971420102999776197719834768211290283183633335255779482582204293294723385907932248920752742242819232205444346809107220675327985122096942499002180282621242817034699001292521423160124173923808191123046012952058398869259100138201865388039500045497965922626858325864676751557754539415501698107141003297874078799979273193300781600727679747262061719830698177305352504577363677894466982256524540262178063797939455475543727032468387966446548688927731378691843849171644878677761527047457346424924919200773777288867663465814345873977352235843146577286140817881111398080256602892415715099118858078977836472582631369735599257401541120535586282504278162188544211187261262974773068714214192234978020664291147863915607827779616566846678006560437366183627623495601729228799493712991132528366870875322580918579175744003612004318857649096712412147042911633835501165982870495163875527851369293005872125261219113950161434108555823633086495084083350827387009988938905238171517153282416353605205052823171498941395650806520384699138928746402855779022956093440583283698449181649997803074299261198745200515977269719311334228618904488977935339252034543187789468006744530334187232091658734006583238917630261974944332721124628766584348768239952259059887438732384985422624386251728897568220674580857185114342249318816751043895686938683051748306765423259672095678437684042830588772508979633766586512832739124613722476876856186497645909485551425556993764221285394532421753541602318494875190675364997285630129055788881532620385806419712176996645922646069511020985118472572023936506481615648817114911350526991598254059456617189937712539492785154680184759214597922671906354607717667432091537543996353093390397692577451735995941585411730711108068121665648701016990017642669994525337719036804159405232026769144783432022148964413155380708752774828484725325403900520032230230393591803409164665831367739410575089064319406882778301030367872322325918505782402951464105019661073135968702484350132241724413106128644171455421470706364885206166459719752700837757620631018851431856167051812193228577025110663945144500335246952758150267884725468839480291426660091188235292665215909717990721102133128827898038215273746322683513015557173986931515219661984012217846193243529466572580684874491806956941717248023223752489534537129714346756454440107432912623335289227020070140016954793363611249800106761433590820343858401842430270892809716695967337311787661911291889805947550090572092059286424566931601666237932983855152157694912767900065658053959086230651531729472785352623501874024778230433594560039165119668300855441732761296734896409835298213338112799075541958795942720638632433240179745709890778716655844044550910790881199045386507200005726649619682279399198999425771599223523237845066781269606733811192531618752459646884804462981156212813208442739515899493154390862276013084214270104332443691174206117251733068558522132018974632855966314537292453652305843590168602662891698354059641510430356348477630584872290874491733095955444218339038856238122941726061009813966050248646516960130089820849409637550538244968876897190451572932040945054199569358528048123413482275708620111380415858853262585315970630767662277460008428240242926174093873308982663026634395943360257605337187627491006221124993545253534750827610378061587234787196823922343921601030928552857523751365634510881496329348863358773349984174227787517167377810802699262563733799694504084662151749642082562542251536899813189995554789850988142087573230273942125167501177308111430821671579847710326905028224277397003199016979201348345884841790002960349917767231877741931101462224760497554157533277242907986552696356517180506243123203800593487433452823419488101577361109618909273421279616999598449518753786800945287064715112293556204074754577265236586807055202407425104262920027050587168645466144110218652415436247548088482340772108622419511510512178796530342136570652890264751985679558449097047202350584937919641233447115038870357447616160836789279486863951067415314379459132388023150582183888074709698149150940244167635553662536039531604084603388366214804649581571753209868720638453825028518699469589104002193940228922557998424485604009055037915087923996400998696350135089327270024350876910530528380312286496377071914317088991078858525306313413489655679037074434519139949070924685099236627678626150119758981183515786153317583611202384904745253500751068966044627452674006733657296562209787805341616791826997191517505223939808346859670613535159060234748077207023755060832690049859737606104488842146336255191228543616971938471414242145753644498045011654318837646774039675332691980784337521574552050703139673940083035843091613799900384017643138065488369749197442896071760864730953854300885537732452774021015343075189898740061982836113775300122606227388145103792727569042474202383854785864527369351435614611648832193868677647297929270119210976828238061547299596548131528505900553407244235317317120731368184863544307989584704058251159571281270479623431189756782325808095718921004524652103653014315040117567187530188925206659881637989393330583103187223159547060247013487897872082021534234423293359427817914942660442568867776942943707127097873721890710540932148856840137284293658237275804385422308614916258092811917533443575696934824619536315947413520805117448571438475829574565571654343160393749438603934346722807888744438532028937676132621051549374208227441140014184349689726008045510724774760554112568979158826918741717125431175943266957019415535022319807038140003597189800395327440042680401215168048481935920633594346038665869198078605040043347939831656331096761066359843415400653965162318417227757288029194707096787282206173005942678453238908737948155936003060911887547010090356851492580703666092628264176857420272284409301940315268944108246423432616886654352420831399477767869822855280694499515719074566582299850034562406582137827416753562142953381960009322231816388349341229419061690579324661917816212895655573166684284926940496270705871299787339184213411427237556843044853741618802122317788369508422373993011980895081912623931904212443455258569094903735898909691047954562621625192570058686927382888824760791472790177611999188626448286379474704717167071635107112296427667063453305256874599981360000676948992470519904306492788758133056621716777028524262087688796591173698899164466944190600033987565918101950866281218356744145286144610237621231242933244458040685218208374097497085262109473617740265105094252207108879756502892214700796658899096259018984038396521798097109497222501051706196540667642956726100751147643096007058490270990455817059551210493544550271174136248785146984608744657745875193302907685936193012978479852557939788950027146031228882768499121962169506873021626540527706064916359443709028956087989062426928275945718736259627947871707548728370955313354288477513174265578721226508245156610812145491773197120184866817989919795843323594897705199271528287561690486125542446794451343521161281478893203143466556330673026819011901808074285607386952822147211891812882458856776856219982492039591620550853978555563926809264414647726426667911050746801410728393366553510060197241818629470443690917433987610517357294646578504447267206150319630044903934810534542068557406976681515498922004028644246382542722214542790077085416712607065923178637361702095487067405327395655862035787927167803374407132370053816721703677506671491154720378373435899637122099794973672606517023369278937272876214744700069488012991547044805097867595012462115958360366541962979142004509603303904369751215823490885519548263286245274346664970760603278681353828984700268163319560775628262405149467555226582987844315170415541392528004323967468523660731271486942942896060184906443366631866939636853017846891408809675662725089206553903995949154953144472406786522503488265316231033557671373278543109920428419140564253809039789617039810934280644582245762815926041372671407339516753836875729570800383887614011796323133439024057616015576964550205115302149797129905878054561183187864089352725981417249164283605602405921491699706381363767962750045563622211034141270966467981091356636387797519456737870851678656657071650001336940539783369578601146548031407914367718442368876629710987397404057344093227514812779526162007883698189047701959786600175272811726087648267985259053807725475367129948708518714140388428749697229722296225663467062123126555555881942991773292442716900059741464784733658326064247688157571551038079236919812213244320608071251968353429352068713872757412227675342253877196207614515320875795865670241641697160882465743870374159541978362797819461557536083226369307894204061404352048752294219476534017000550031372656944238932085803312983835470976920537665863485152119394519777791792957011746578919969113063497558872291301622538038949269379504605479016832252036239803598052307259687905169525118102116675291417777689012864706363133626264984436463664453463428277125812388303405986862672196574637504262209489376126749640125005667893805430478112397304760286547837374631093928622407680378831819045453405842458166042561215667640619741919320514575663963930732251227279346474965356520104923477198040841597838951275121373870120557344109346819845185902454527994487757809696716116555518459890083492398448742917580020211542217866513892547650719672511998254208329422343817183896629848007144140589646359456782554489496759969950569327144163210639264624187290309335638446035337430047233358366614802259953995475320699263136328992296833256065240398746371720799375079397036904128178312007766386876818335236978041679566540692678029353711032527178264612382569468760271741951722842085031305600356282200572606068077562848763225696794955443871769067770077003970163524247336921863190802295935460117286223106174353705233639583362613431760044224143367148321228867305574097638075506287278028061965657698532697681980881524841027744815704455393973129951027644899889878929594495116313071657694494541272819597737271756178451940939723331852181795665379608470288923324740763849674347340835507335618668969332402233981824591627474663386397350063979461398606285882077550705967369408217759509118998943221643473294454028755875509288098044073175533488499652222847277265331225148843773559919293520902690905280805641952137607776852358341864848098084074730690391295680199181922701698884396165892742700951598333198294311234809952557808457891448839041544763146021312527072781372799721494267017502983578713780350020014984201420312369019388728511572005811708710096848874370589873880181586925698079506553174675691558846323574529152257853490224105602899439662991773313502421786492787371560364425771674542783765101629703402885674722715948837594812884102352511020778772965982348024835226463590357370773066877539166102157693110402763995941939907486812938811663810192320998726437001128004755519837780405871646094786588393495566996894585574088334088603266277673566733247043038132091450177600331029094886486193928587676886081490319771173742505806775630190497740448288298194832758380296821524442465772734236632294980191509983075134282626113120812139212933877507956661833085703203314613376378640421899499264608447730980720365531240263441529699707952861129079496896708600912404314951387892394003812619107502086693069719139874434455212348540477020310860042245882211371938258569990917393997968237897386278454539962286559280272645866287443774545529387724487618264979969938107139206018227476547920335963319585547019839118942445246028503115429644767199963799009091797564473423593255457263536847798829643618086739262502837256010286662165544043408212397107341673953998854546314393897259932777940165785168230077649020621221994533956976702590751975547217161531849586615249971817552311695450423045781320997439656819394617906336233256732129517339286202007032628038524580313601569840655039802391828243758352241927236144402719862214277226484951137045168991142976829589902022188862596877735097260362105791927077925355743617555486337926833902616422441837923827277580498595011291277784440053190422163905470309929618228400862163261054753389822786291903317874249746729870642235654080555143516452667661932060049818480903649807950776981162354709503322951938543047267493330687496732726670180517143673448612823288306897918617887436621700736511877470242218982496742552998246712502744922491890448513126752182869331795006627892282513855276844329409890882895464386306948260137738051637017198218105029639509928093201885021527626466786477325383410021808400448601838038116802315093177663507579176206756192993452466017543067618284064187132955018082151154215821482494397530140455170132033711499740591535899882972051625509706031070561686014694659896597971709220041734521117468663690531210050741067238874487355278527619828292871903016573142522616473974916965393087731057432836632607130175294327444804279348917356449436003351891564791471471719477813547580250874827702035378587751138493492021625422135570230716296949946731130141045404796316189560379000699156247558408338582801277612462029780583171515329663242707329208156881854224681301404961999802014587525340103806363135290599980003084410453722695288433508885767109290704381905400590264937985520577817707295915614451640342130647731722384829006723718652299225924367113676626403872991127531325813041727954969934815158585935640882339381414269253642903531752680420103530878955868787754135299903004906968227673206654316941834390186724898111705886362722135475732181018073850425043898320714360608065125198884127407549497860761966054796209925938478488308045397608383657136817614089153386605152868459895280363710144980744153619080541661661236440874525857531780260310439239483064722330946145305120999663666227185541867073318436165477775938095784691239179367596163005840666547273735211982615099503053941941219886520070315014842009291564384134881715735567691666993985755950252333430451373388614968637510608018421884383516884970071332892553160297662014501008262021715940309641602799606897497613742445741167229396485680165188297336678387358825313094978458892746127215447288552134851791243121464493148589552444473057891654085241686786652005814522796515234493038082859239108344710574578361354337371744004002267069897258045579686608896675963755913018167879022841346329805329991295138742601529054339805488674382279101651935355096140711799659031072460015382760560379530822437735376387034853170138572542729360828234004628034679254553316752498758453647378348569219989833770734341720101621384405588227137218159312560525112378964852679569164543991162431606987125486984404356665527306824814561238890264336869746460197652382095160515697128704774564271521536303227542607079943639768331439426610843215998017067453770888372701186927403455922619900422750357539643200280687005863104284343492063477520432271942940782130244853352180772392162741298330931553030007595054124875636694285224412101610104765396180205602873358743213185168966875452319991728009715161720803326606039433278382079401358905614544569257805118462293597995603240361478690387058738217182133815306861926978538930566384057931085738596237444794521450099901258493127959267364976244523902332175675339259707233315046066097100660959167203336345477497651316589577499346240825925624804950518509776150199975649680034214661274516681056505887078650045126060851057289832336019332207930378224387465127852907237450997316059902095298941660433740222625161862595428902558058616664831077606779640177010291049903426329919447248963974293546574750919942660517912184563681931373628927182928694159325679299608835068786031421247246522345755732411350137190125209040186294779660143414326489667196616129888472585157909564794128325188323906759180173452339335316125630330827247644608936088378884746934937279460922590816686317236782837456999164414228151487543378102252241153079438456386301870392893367109916360256240050219805585570918850949867131200884626385985123341951069101619566416442968624267212261794331828461120050289112766891428153410462582100370859223452407783696695559228255717266550525075566383473276795771945014186505940596522075105775902301235407779845804599015699446203376775183577379111564424909009789366637096085710835136924072194718383052720314383110103071364321305829745804523989902785405573464211045037135762376479246731059964054226853690270000048666351882790000946122935168567484915314864645815962312352333305170704907862610445167143656423175151528794684684348772511345535993611035255541883554082158754963764530869339072560326432012375686665328765931343989780432201132779775819851982488618762180467138247318099616101582854357118275567208288047178387741640036398233373766247364888110683369634547596787174238875050054976559273559121978055950766344828874870812766593354454533072963029386708594206627624215931483342937371775559687996060966646125063866126737053222573115851912494880308774797133927157422796681969439448014313419824933988951094429909956870257639440103487708067872703021966142937408652586044647535622387368663970312383896239136955402820948798428966001126705642473881644029003230781835935903179786298851947562986920214791379326309607639196046091843318864367729266119637972805352659634007774458115859650626403829068796519742663897252736040685088608861613648353944172185619727803359045508498449734584067537318083076986729427410506848239685669210470410287165603833292347340890706859321972281132738139978839357231626262080635989197736913697533617448779367343743096176498412295925711466546689620573099004696558565686306351543852605532144732074393622406541843166740033629453642402562369249302150796144350443545060506453940661435321977105092842516746869491873045402928913018524009669299800114235392212692359976759657976972725079383139228317252176414535291117238393387437114713220676731400404560183496579213872467112059240486146182921914191400328855808730250047681622256636585240918419263388499411492902954967690649107124506043897942930600273083133138679209803754144816934403598885463580360376405680012174671927780937382167846172143092086872656722139137851615115815023596894432338635240046921179787489384503820435757160534173861638755433234602511331937168697588993602223375678287277561232387952777791974978792121759537439757844233393138741421321897280285796314458431630209151531271809430826522307382889585482764181325012960546882598573840019618565443251504927032747740570635092945096030526719648667256947041313926658485043460722821630109358207937561717191499189179542250289348425608840170154532299797390080562206519514645375894834851540719438036629934199808717604384048127992938530359997728050571635667546794999712018552691953509118995378972409130776469014845319040205666505082947717733781602501018480196832240861847666840699625107410040301309575373413636705161739336914658831156126965721889896538690138596079867979180710918641898025083304265490338591119077506563054949988437166157512919658692454053212970536769804307059436508125988978460670521929943927847942308858131534461906955162678819758495404832683288479982670068766256939849242710206917781893949909738308173604910008039089452842417500676342947414412383133106179118638678971175871290357473846208317945077874178426379337011344029583912697715003041592799158616027658825732108485562589340629131344466812974416755462006752572310012958599405397726207658858839190894268004937253128034363732882657586471363404384586307276514843863829451631931198713906710062819084994863611438576171372113535037820462480105672860713074762126349578950433493656840792969644551062458072419434245659358745897674508365418481803374340243117775239272145244555293959817012488379273853182089210665175905980415844795363994482347242497464151226217640599345351074773055687063535623054910043323592603213541901789362938907828005690905000056851654898543553095929424534540286453800544276153516070368679886142790887903034813260296807958342936280582260543707229044287370205674604487216988100478132889160131119362093363053626991442194928187530657676052753757960955409512350796822208397600178196198793536292303189856913738893859260959068946923179501389469015363830561153403995284626413444219861397713804172773960633487839316470936980612621658592943203199652708543022670718666649308434762406510080071178181463339820625026907631162082468185014433994147641315315657239111821024060886602893890126460934695722899256069907244456971284665948367291790979619062266558097139285298640031548954964700852990603622314196663670988678958576512768629607702864961983973309404500263707998061990263401206194508871429776500172340512919260416065486533996508528060400194199644248584217181731414785558266064790841589801598496303202107931227995590879547956516922176416513459795567845312848880328095893881531055639169530923001118034891221179339823405692353350119152774244293555622865106363720677426045975909895051898428824327776515764050260327196785171781294784426012036629219545791131956393950679540917959589470996578072006427421535365937438710011758665349462086632786944059426742240816597684165037094924266545185284307025738487658843022903789482453068086445726216622211029167963357076660319079409484509071941992718537716670817267545769766938590652063659254517546336940357659144847444937973583151262924755934393028902225848771607828976955019100979382220313476260481904143687597919977132048868585378250707992338263117748702623012603067139499584255918583632981873016333694988327454044675676702132547880604433847444348264785622304344931539950204059749967833130650653229072631689887512090009309863855708404389331435945373513181164758891287215778200583887032504179177847388019085620512755426550295568207867479157238869562272314474913510457461325927845286769111355793204652174275338243469982710462463222825655550682465116539754766581583281101166777606976730897885886465926945607713970033653181559983674756798457521698509405201610102467810447086131238017108064428282421151318605021766505046228056901470979246502047599892178442454560272846952153045057095403850145769747407837039362195495516651672886505470737461202056878315415237530132499030028906904786805004107014357142276470614001342411072656714183459972313815366627288956670797281732305821025443926913851709104512848085484682548514153731052869281869656123131744321134248436196874613996021887468749660953445283512645418796328280382136267448388114517080614132670013138208749237300749620143325012860793392809628966275061029857972753975787672709127490977066647915568115885894460832994515399598920908497827513037427445874390195929832461065950107411748635808593216333701231083516549453744041635092077500587701639348607941066596686465514980910853823947776510174816475960472031251474675385429907888355628285126607095841802255308728191540337237872373960985951768384293524697886063493081264190335591355115445624986063977326854840248121627514287768956525081674276417887280345753961216060371085967921270008866804015723322542525860800412567476144080791735887168880060892073553334842169233477572782623253293013707754267294928810153794180709473880869254442457262409738100910236595838034747086009290059685346137928016045174268844440555519348153081604726168756552733089293377836749779866711217917424626017233181327717341753164041690817781672283112646037998432062219804232808540473619209811445214008219820439353333029055667159657480040765088813054551449174147587334156912614430659190010081777803089239228434837436819241907247521442174672649705696417073868330322924860508964107524860352714219996909815043837259631017836241673888268057916742350373622337228817453132848342328499750674366605278875735036246569357932060239262929131155589825447884847436435408512921478289977113713794885831060116147449885363321799312944772659702998419778131216437858826665125950498849751483489254408209517033101924800680940426633948014674992655269217807279376028895699714189018046794949260335198828211840897814772777945484701590797882805756074096604797770176904635535714454675384556184232487671876975879423919526846893519940277006581445107076247741287772657383561440084871007752188450263116593552735714886508077834468044654019984773619150538656574496974612832697451413594645726010231937083056572514185424918669168070015846208489389006210651030718282013016635193126193741381895634854787838893617209008266043146955886634448829204580089157335408933019461526510936240210485174742955857418063236532803424906069130456594248705686011013074502217456613551801875231454968802382561909180410150243731469883788872124035937942395590138111663765790622389334226039648235646417698193386907695781431136218724770161065190725041552762365237429834566304045829999148638484504789223265449292040736176994338105774683513611966370805182725775356675264263031190006440682678616413544489451348897658254201847160743516816952477097366773048863482804163812901987669825064393739615737861537791252970163998984066446707524506745518466752756192323258836163536296024324876140865037619459553582462809606855513465839762941811410319777850798190903433805510330463993197170243628519647514143070611897475662144252484077302505648525724101892041511546854867623696001471163425287882557108550955419643570758928602901689302770744473063488383654973876845466613543961391870759368488903618435053424201608997766898294239197823734493007282563063381957584792621984214659385553854933855909819410286878174883791864456638211916055667777781461329452567661168939464575100009025481042385364856615052844133246738774899271536022151659296420484410379520316648619748272069720292191671260318457978330256626814230239723275348932897504803202814171148405397826351280032023628482742351927047256076057809247412914582563864995073982733701187145910200334091383969556140295802265714051208427062204977228180952944189900115769593144886984494833575563407259283163604672243251245632132642729924321432499411274420571474945608386411209591972812628855975248663608136361608938799434589381452562463020898986685026909364284253638730859916612110278628686423621426473536869926853520401932450843563661927719712653111828115620090189870321286058844048611941883543869715544413058120885307844311672887536733510191760420599388434776516701399348968361066044763400980165529647919596944076273041998868141428610640314395539605098675152240635139584489239885240940428486102043109074135083951422087999104788462045755887365077765752448247606236544429030426901899822831276125083540381221121436448754254535709633955083066031564605138943908277217150338119620211710473498993984201958846913427779618149871571051753303439979235791547335449505384317296797450445151473743673926074351092126370360671363260780320202333232238320185798194988064244987525973920855720166324346616312858348305534383039673658194243787211656486385425916925952155918990133782921049751659319955961671864609237004349559208797682698211932053791578838909646800023365745296087129538252054216408720060097840171762505275274521938937075001773865413183132620458784249932682035386702577317408170453670314131198211751885920844052625757560247510094926797080130981768213054678694094910462012911263698140897980421721692683323963570806526729275871406623329673808337760143361986323135717509636796910080620469044699710383527139844477674599188237477326068310824702716072668402204292385154557532866629224311182767527692798768180398152430627559685106644546416270698419315051061078711095145184678430170024207002355079440974150512639223644360929874400349771014890065605819453534634705100150926963160990657754444876238117550489013197363200277089165053790372325871355373857895801709241970978828486077561228684419719680517165635922234122150357483285166108674395784971552213407333036077581778978623787937451423736948877518356323867228513104855207386335165002129054450443502985553839174135279713596171556259377906691132444595252536136569370043899005568880178214752022668913627555706500945023787856905715361309721409469972592014081404468268719729791985045848443482911639487162606219583551729746921977206139238511529566363597538275643814352342996373926235624958535659635148435193746678902747067362904570864371376618841017695462441505415036495107955079942073551947317675400550995437414903604958252341037669455586703677655767402460662601192886879155975319494387820842023839128807682956760932832155000664552081346100642786145709589043640220133473713141899722167313350959532373916200611146931038551021278358750869336102424241357584956111506248408439870577341731433433077816506605928155213039543506999490079427253907039228587345050194745974428096557733119992466719383788536190673030100820119958009741686300831412595616993897251852178140704542396742904361048750189816774037680748476576683762162578525888113279967273981496830061896699639031198027979524390052217972939662822466662911547872163649130988234553053216289506220841312542590632198399135172922893128289856602231433895387980365652950852938643391259356998351738102786456363625235752642217153855785244042658293230635233571893268470096668809375482234018593042621632660467688342808119719208242885806927614562965896999868606941028642922021191252604346993132404674456801326654591668630194013019649798854791261503617561520177075911091890331514191560615266080764950961661775337878838117332759634108605132845501516916020887913328623807326943665991646897241136518045727020219916844523753470855692782840174762641996870499711183606747190035837318589309425322241164844751260179384939391740520274841399630090859693813793393079795156694365802277535928216330200309166056109779887905482275855171531692033258638827762925707756489154513637882123012035390970091115558553356715224657475410284833428623309416652435004204782889787306454145807468251226605894035083162485040150688635818960416079314736288135586435453743219252801105536838827804382049400956671416759638641973633010397429778051043296521527217569513194223271683017171036393961712209641433126819125479870874077862575179866068177716666270838502538955780769333589991445409896285699757092163765345902685267744733401677527909547319313089389196262940518497184017138260633430316338210288180804746659911630465456624411010773592503061428554060048972355852441937711986416578288591885899410248866096061732261413348546124207337305850581213678360014321900136896259006098520876143820000058084855391474329065774931290911171598133744822659285968612768796245336613306510654421508532838502545330929244751704879518208820948096608872705227943556774832954691449375421567070748119266268862193511523097428162431911616864428748974166448000488921878056087380510694102533678289700569048197790418943445182410754204168603324763305144212841185723623017462997159425359671573320154709928525219083844814154873199231069364208792834999486237422861101116843292029045710607555895983495330329380539779563092677813605704524301705158888958041838814432763819076541208379013610757211195054590895187074430988603258641820079345851012518736144827354330931629493061542705157327748258626908169600951603301435194971953261077254009851495149499847807090856940822255719416072130479542798048387907735363349470862011621633098613562894505132731975088677385784560910110686878970366379894233729731111761454241331892877382740192166546355568365722849928146921976021562290736134682674812336570323352789327504859772995757561322056090263882626366450818530591333687982337590098332946297174390459787816553377318181508578640786361006668936132702668482273545618496447548613151342963610969213737546881883060371933078083883308892624295270475604896904208520356639357299991880311402705801192918486318035672950166064031969574259466125197244871595204714172059956857567697283506736762899966488641630180453365387815853476427846081494997747186970261155838606211224524091037132934351154051242822070374017707756868727168586033602122241571880124632783624158129074977823457694991381552282930155796005926140899027168587640910895195824017309905997440006683971868634580930547892484562420711886712495027582988052495797673868591805086285329926847580772969019257909910381709538753232638986541729615438440194387070544515408889969251323067540929918971671806369964506011924021997019191596172148173604153174444601025448729673123974547426179873729182393034857005572599638414519573843388450410692988845518837938915327755790585982819526374200031108118384488044228688418113124524031260033129802008514317566455664083092815745264322578370486786343241032037090864035115256223167880553854825404333954648560843713074351909259573106923996454287168514015246506248919360136279342051293767131832659302790285626007488869968652754517428096083985302814457513430583546675957046027201988735038697412280750462848226778377809334608913888526677402478723529970688199576184108510271371541378679021838595301340686259539443555385223950886033381640148613426629153509148184669956610847772128788220189269979874195453527429822310132418779501355173958249185975449938032502177291578044259493315470059607005222025584530363315727094498072566547629152356299328124614477297176828178915053233045348985886870436211032474384390888459445282208841434001641327523985792544803340714634327666570032531915334544849549049866138398370845187312713527787229986964496806548916480913577520684149803061857165133374170096101515559862012570237208345599729580444867931051579041971174789546856469718547948111147018932939214977808450004184722939559925392613131033698725649848188279997061652864316649878021587354987969235032998117948927452515651786516587938949642831180788054403523171353678463218297743717653580189753037546470853886111412106466457967155819777377671582230088930291940461399121446676510439474136921663691525192638217249764629994199959641813691746673415556591009874887652937232537159811869713822433134994499572173969935877577833335998939347174310415074531316320475493163590065344908504283562295962849612999029790362143790307719693839271245569422179832213088745103913794562396933135209038803781084952543534028723833069108420607760068619489281999924855820754133373830170484313794233618464444427357105660769811057600925691315862765497013392245455661026324789406891739030414454184275461447113095552342903630232358161774273452543349356613246816545531665393762462596629593174474560570270734022327293484473895730584687710604816764812191508559395153619220310134850780754739016033630951877500096297707129799615253940071193139096053815969762555479290129889038982523909401479644611339388322985483358125609577091672167740280622192319761278269743618155248609616242886160818834352817460430709451067216263386878579918932077043457262801504329018502327559774343494782032721992579727445063873869920520639292634338093236167485081858247556781303370881297334225184412494197523748102490273455472304260828975456288271196163013285191898258902779398577672909854571194478564797438458704986789514209057377152880844739494968104605471535125353848681982455006702555969013234399322846259767427160433168004992174911176271458969573983933451153115269546932237252902360580379737927750942020956332337309199849073712901004494788288064651125801298346992387424109308135404384321762786673563479916075310763052752617583491833186922375845131231671761220676812997694293649108250988517925592523631845501483799689665912946421056681068956391676411710966056820877636305217881742122341829236819407901488629579874146362309579643320830665657622282822943155839383928907479165241513766567126028618882274165630224202779189398327561197470079490014103109136252255921915751638786176803811648653737503451505061990926216843935380157959154881428460063699303474090816793418389551915426418075868875858850006591230295043324275495843885313297743165070584807805339030026244754361331551818029911256637401944580920251690148374605289011297161619219497800007486934086067417773168687803291093849313676755093523661396926121076691054839937777187963543830106035873662170776512289166758689762375747338796734226407481052466376851327721490604225909898946147497698631103113868635087326783397218120262180804808296111614282714960621132856274692981619837481908807772280286134426608787371910604680959836845254747156418450487403486260289783658017334695185234939066672767673688669198712492379914410541518968909121217734595373660291371662151425795674283780270604948455567497953686875365927350340562199110885648906682720569168396733829887069448257164352233964377660250217601461261941386777728895969284959457591121466551108842793684968987527140167353447056723737237867084270488550087851497502887290716858998191347637686871719465602248755731119638679522200190307174131255081945988898173118993811828485075476383500864763520737122429005673520739014263657123547884945419529423338093566264473337175397120991963763889997432271645072238109541962712091537097886130929738253575344354776286702575715028071556756145544870989747209280447943259082979120869179325859905060063040754777037144786195204959879459764704209099818802525819276900266872440155420349165692610455531355859858478310402372210374562502682538086340710430026759821647873284097053737896537835910082798683355019219660239067669125226141342603350285424661167119363633418936820707209870420206923204669462761318555678782750291597832974530285442456367990004402480311481011659153268755884668628404337273908635324914101733631351512098985316531609942338623558284450946708363625328991905879705497376586284543074866821367814200202461394037222775952300035615336150231357347882464596757010936572198748859316175492561791184576337011042963543847807489265932622119104483517345506003392690145332761080787219260301527115211275631553292383069950508045090197135086060938061335479910090368476057651918399533200621302623173793845167486026685909243949997589363491070894124656015083015492145413872119194075996960150291095998279816583624645201039783961371013516108807527625881026622434447243660376110905201119689301211854677266333459830875801731272901870518400862221249759395189876929840224402449046188620392221025721597444639667649376958548239699993770953689603435065242569368151630076692095327916514508940222170172527525600574300526420327346466725781611515497542477403308204033896345227989927119472064837486369807239989825087688570260954118448185159564226666276483874279416148102122100771163036966800718784452799426591297505178866722626769919586273188367595986047016526586228681154511201357393197854764219370342276168030619359751564718726933539342791093895219815228131866335281506840252367914387120460451735931978287162787115361411549716754690361988807376346103070528136522721264994328351386639681852891767000386494835023923647799679147858034967536546121273414457937024719857799695900682586377924708324606602824449218943905360066767434552656387102959082312036499522247792220455869984829751561990634810691486461731032380610145370936968536180287041211034986138002569851798629879451539502742217664672279345406341300683807300776504971815879736648584502541968966349583076393696737934792867522718136602115593440699922955076024584526710090958334808713210450265069087471834896777482522755265032361477792370364935476277180027662755698313167480351348800318172226418640815359561856929713069735927957971305140251680248261777521691170710055891926632252196170000954066536684840457472139961388267020768893681014772147896499924574123995565813569910098838430453762220379736560691016298720649767201539812184723106194404341568017543906984207735377658123785849873837971962336325504583633162194719164383323422259009456290854829516204385580596428119811002530856813554271217243265263306275622541281333986838697020516952572701094896455191432554985702580592973398453640214883555024001857373049892262779530838148281179867112917340220167416753453002615879189378324992906747856287908495049307345228988655655372334477720549344787705055517473352918344666593380028545864212534142438825065242370698361625510157179273964846756963333413067240049724196992715569950932328696737574452746984269061575212829519792235505542728950380716146575805489082150507086544223723971567214887517681767404235425067768556265433297643920214848710275263312972005305143294777193329672322514572582936474800384176285091248988266652831648073937863831501771861180737094205383673861172960311862147845435500393473012578191182074511988089691037586651001622489838032285786423037576549500061063396300740692587695207040221408327003384373904932836985439646240192266783452506558035206649443001681823339049763819388194911998020546814601042218935340159976956520586952533201492369099278164271638163292789086700616299871035218348826878864975316193955465725478298598095020151295209923615711784474193789912092364257435405143201011226134292506660053800928913108084347425849768038922999371571997833309602233011038086398066332174168012627035141508461502599068060258183154747781153282666814988704848872834883185806942406626292260001106831708054227000888667762427663930343996505545875069635667830771169824342820070831506726642159683715093696793310586078091497790280168604009341994442025115957511737011564414401735246777414807983178002240490709816248953052665712841809732204653128613488650110674874832548324332353205969181700905144402738006801658749233012919865032280119644590224801990685649269165750748641191428510153794914216103502530555274215412238458116106892920423913193410390341989629696716920270187044491239177659696867195476485370457221543427406855601755988747187307840234154353171460498633338554147244750908455082886388264641417063816369988327425440020594013863403774001218160228466769373864053078481821823458402959313803309768531255312130287261473879600076799997313258629930842678635383317576897634647736132717659367422328439746892017705032246333391234023220654857884042070908499742894453192422018752186029954721062409579417592028801144536715783206697389819042771658154391220210242935583525853819842486031309286925624150206199767497775140705364494282713071902768038411176714461981751185699805916005302250524104096526290554179630130385490912246700262221489517570191830750063404172466028458299144908293982174935228917808088696031246451927028428895356393037754039715261220082733355118802425843280680631828000964838390925527370011932348214851697213922399638621632918115845897105474121493425939122841378505625808997786864138500273436105800873431561435407079752918985113463882548248806908875836219605969880886645773004115298514466694107025094461958752495277122777656543112961901566924590743211087340890510534078403867174061000374285771878396005280282470794927899761095566885362480801195184505364433727402396863732729023193937364166917795421841363520194718437148434918915760878705831058667474442900870401295401538128442552872844197993644101130904653399799223453247652857267252794441166344607934761262778027320219108574301662048084053891886392030974153093351612829090346293405921474058398273435985139231260638864128283998220655975281240641313943710184766550552627883823337082950664470794941691344485238202783966372839648817460378167087194729484502504978416194931522867992330137333396243998870753746097024887198413322501126351115494484724348211095611055862937323181311696688377580380478394671530090393631622171157325457878236073930823344104377769521198507507843902963503183194185048131204500168506230352133090368009783708400052221978698343797749264703053845700235059866196542941137158127489894752241224586125209386844942269145710692237935620590209984331763519054382919969289499950397496940984640315668207250277136627299067731596232661002554434462546336196034953631544609461206338507526187185000389104976797320746231444622276371860942363550598676607684393823826724585335309541247180016600336269790821617461956174884208959107857701958669655913103394244426070879121255407678069190933080411481806318491287585230299508748426136600683565200651631160785928097650845055248381009630697570151334989241967576107261103970523063966588722005102933829776371267758598265083315662402854834039785925866376582951623811709808390379291460168676331746708902660675425467981966153073136296586125563058678284735783883357076601476620115877430728943145803780834891174871084077331217068474063288631278931866038464099465446617803214792106499160741687661743984206275661961212820016366166187859949332571586917614225347817808019652575290421411962416726391463869541049582437421786644031684014666795223608206009875035290485315349340352416211358358097814462393565787135806088890522337157690214606694634602680372123296140678708909323981717772507061909874635627144009512592312462577063758048963522206261102716949866206647767518605210536837827546641066567148834635200057591343075463273238159644878370412173610213232601550917533198153199526345968033820082893184369408594944878533275465102608061433627755706555428677046838177346686606677945946774648949799327666545264446432745160368415261068496637664995057474008220607082453627229280147248629368194681789808297657055040082337089406380547675673015857004884224241573436175968997911852010626218069547870514622940640375027873189267682028352704476220136768743225475034279935593415654760775064555394282720654911218342736473777720463152720524015628167352785070298641291443212037151678536045850023051431087658780599903291054309180268231344072982853412087374938517658778693327843873566053944791224431228341036334855866606522085294946669490181157991480225960999406444370617006036853756631562832545628169295254280589844466059016476624821405804465816325399734401031860484561547602371755084768621502104460128674999705953774222748262266869694651497398584949922907581926872645534976987117329112644536288444154541239682812087264109591453957905406172676369355928012619946471452401818268402750268120023036219418486753164376409751270300265149302128447620745897389920767201980947470486658616799574353490729695955462346465554427193586391911364767579088250889514751552913046071306508023997091538921949849109850829504031118121237470500329368847748752681522232624238640218660919890918016248269619006398363762098570997366999844548371917262025594045360767599206069232740403164920401671818501960771302234552274352264871079089978450857361493754971144102664842609486942080737451497633592793665585280924492929693913292746817918723681192123411172444637771858646510323390440296615418259366016652596884121939890882283590733437974629123372899118083669637511949304661435556588441858220579800119982625678469929875761193075217664002187370230212218668044453763845422567796328787380658827429464103872103328779112336457172062886946887690806644079253805154570210303892640275309934815972137903898168349628258379648492049784591448744935603855511549457173927770288715086623368698973092905051041449131341512746293260005901572865346890911139915768235597401211998884561698879532257776601657172846543340605538806585467349090661883227783054475800639457797789216727400131419144504377110361280524867655883598005238343174512451106414039636580631140197635337307098212256483925159307940775348570795211727395342788927071700540794665347334597409377769332597213237201468075733075033048975205501780070880535340460550334546717125021827987342936149437211346970576343488868999916139250824200949184429271781630237416711297443959188995127665734752330266203828041320871230999240057778396698012817047497460204548685599965751661357064479946242923391835420297706100378509541215239725489200295682840074920274778473332519302427571577134646091076385515529150326018713745775108029604265526045741068515422345923213274030452415353658734569131360781897471377425923578395304026625472461286179050406325183018926769534695418930163831444450656921999525138815301535945591911762533062824860262402514798962793998420525650614752342957671629503834797943498166043449722185687256778086368356307161761913650989407674018731488035660164806785119671735838402566249068742634619004605587924090325494122259526022168736759659264851545570683067968399312991983020707155741876171832001715778195663871541125999597035559982253093518338637551402619843087231916824525862324814677477018340852009279775447307521010810848933256295117059392449726433520025039575840889024923462511891920341470280348424303968642087536954041256511711548592798033405372597160842571721969806857849657008795580060996346023706256151989028943845945076810125363841732612439954036378974627647024398015425581543018641028274760439292432926077048264663445883378344796078990830047619258892660539765598346358886124374173846148191926276286209637777054117405977220747255574895226330949187347086931064158485384888260499280710396435179180400916789879752802615104120216989485098619579909276935055809820092629669951230840720802914593539662583708241898357870380520651273996532139590354542260324720406654471111505353950499364154968459014566982951331620711249420187865298902936326403216156093865424420489596032896896273079864662029693483915334661208147544957853720020802614639397501354551636907883988992990407528139886744354416418905717631707010232088639858742948273179755623886211156248115401311480956659597727871844658857514570581282836460060179699008491984908429634825788027661583435801982424661613034085515285022575570786610257186295156027863161901689921338501663675466500429078204275295042281237382306516638470496183922008150079043055592768353719505276351069785168223022359615926705595022590872087724340562161475684049127455637536432988327799923156147073813382429947144561225963047278440172530840051005674977566619828263112348693281066340836965646155234087294711201585618643881195028726948497845743253604197606553999497296562436823374362287684870221978840190753137972425118523252184237041580545189811875657709056395608281802678723763285916686920476076983004053734183144623470022005544772089957499738657731552409358589598962739628328593145887124687537233740027937117917918572419297787042735900268291470282407469923690973799641380159959469864397975020952201364817507949388152506499055727041960743388568276164547675847650948812959824114152559848130800413110027112015000082770776039786291672494220636368720337876712550515988829886419065567593128889266299745424250736509446715974528191402569934377320867532499454479784008179855575600012382614843337735809612146067228176666525212014993149932375439969179179348692955789238025736607103041965902861140583031642341747668683598554544281445553315103848888097495369210055397285032506865365125693194787023373261178984377488749357366745069121610923292140132550245411168699498942041844352901753942306341923227049514297533230793688388352532828442475322019999447271031567653536730022233593692936115413492680018565467614440795305125648000456683810054334041784401714862391770760935488949267940256070275660990083508179852487985233612997566459531347512136266675417131825294767197353379837401406280928824381803351130169152849810840705189491643941586664091921849185375360384101348501765181266091456650714312714922942534462221463592868023311966396321370800829614360677893147779420529701646420651922933466678166365407944225012305466231248430441924552473906184185765396072579756316678965246566728019590862830109685789175441138746846836350656469857833086758110855400675168786750069815891249050823883803520540624919680802717625318996146242290881619938037440134092685547969742239684808957249104863910083051455685614367157437473095892294789262532994991224947712096890771654865930884388652325511435782794508345543504867937035031088125056971307023836395386974514679783591851416606357402603846138167067829715036666889207824313156552951207976993198887213158819007758924277010087972320800537172443614331843882250658108681846467509923584531076676149113287039244021837733405086955850629833753097786137126166154184296379363606410857791686296660180362593590875278852215672807851129684960540673198213340875664476163992271403023303890538468441529635554826668421634641159012666743887562754429726260826348940171419235284031894389948622553218371728894101450289651903719332178299247835432583771221576224297152668211584412119652688071103971325188266122101114292135361606907115158785264618375394078066390355867389967835818571214781908893539338375352730943993893890879433331499485526820313075013871807364565072080614858263081261960572493302081669604570522525885027415616196592125514881642354903534112648679542414185862076867956557866542947888701119482542867806317088184891448833616135632056422669798913499037139624677602686460640053176332653670457579405525675116007740042981910577791012528024535009847281182476298121589401864040556048980674384953872401706537490099676783948415597188552126653181571078066530512168875301577535304642565559573288126761941924698682028185595969173509911690109765363944762083228356036148146142505616528830387312063639734136365690154621298041540675101267304984832692113168598288064450833295311553995581397800167690049834330395654658813232248043397990812278390119885684022100447339432480815243276143574922864996810540365187848040139313381570825852882993402965148638018794166356167286607404776332452289433094912722129462667711119827604424887716681629611148554251634178296107290551945096477196671127398348533354854654407299259397040678570700846486550566175698061959888835939943435976047987526903738481460854574126697272286806228884513478266016274285194526952024307946921828195077592397962356197086201734151057168464683100382742510948706671030262524492315549742916509049500006728890738119193242263541516818991191389281394643665692445773542677117768759629891728480159752395934949632815798909132387740732139408574556830599528499862624593946301415984520580999617909709920473050550246667026019725664125492901392403067486032026244945450013926448386412037357792308099916280963560457256132016316894190008769559553562262646190389521219570278820655304491044323312544063709404339365224111080110019332742141849961007185452235294292013495249963376845061840486971094205799874322960121300504020741673903886234633153823787101642891544122943281641124494685241705321555955958116028006410727147908519974669468094462423495914583585372714966356385608442371160846238365284192329933397191778825089987394481695463890165909054452585050236004542912724399159007647508860527127184697994120327851590875185753690301515202222538741831639192898946737202626496925321238754566952423739103706916440026200608660939764014798079775395972321138548928254586103426902722610511082377659828740582606041428088025714231018961760106073521268829546033584243482262915445574413237288957771930518911256202828401926933140681460070135224923149728689855835460839054941260577330250955635578341900024548683440874327722216524924735783357478658746352049175730831753846731295697621680857940532348267547396809805901499837757204436934716168952329142899181931113998762489167051081525962825320739987185912553892118282886410764404102876940424795052473441896816362109948103532942553448963387455420357810448778556773253368445562711802535582919005709752348274616747929957134776531941113762151810550238104122944098735778634386400437400238691541343551039689874103131618350364486853254841424649699978904538015968325275346519235457237281086880489982640248608276776067064119446146441328267439597927239467760805354978430761057672836991070910634102185601535547855617115796305020909825801555050697579585702713672991408147335771406552600527708202075508982128184947761455656241447618243646031172727855932826520510957420257854937296766311157478116574564965329308485707930544040118630664271234628982208283364076935174437308514637343773970312360324800515046906796009027297836534972426940569888994865581188415949808941712837651282949942452557050151464987620373425738402207406123764039903759846083960814725234586573089669606172673944348339476688880346091377650613455759350552174143311905374404104410528798134303748480444462421640521965616818723087616515220553678972766817055966844358393222681225680217412665986899970128367725502535300285369422771766498046752526205363932705626656693536877735500928533815595289449437757978776622053411620477881969203442206398319167160777984007263003661771317107810706972317132900922728594692706581077836648687737725525706074061560670511059931580596868255147253146119888619221398017140086795882390014668676340617252790717903834529681084093274526130764161953771340825747849970564792046589686319823474257552574732998991543119218562458069371794228327048771355426894417915050818284507931223528466020637560120088389935162215487659621833232042570516225873476893386467182500429175042914787875790645154826015362116274205261624153805686966544346289764130484385735888462772179121106575982200510282435649226274204372196020382515781132901750036378192810972362996598862392320213599918500176398893632849230783495212357318240753276144776690169065383853819266989060004400679941958700661503948336008319471182428982935554536625074041644186893981969534806136589046428871833255101159606388076313678732462317630750616570157010176106260130174363950821154147513851999891556237019475442131677173044637527985860532044113523257914973339037314829144999555428400201293430046101617165504694692991375877111285196065739034216906037503631324495778974286346176263422485137662561804661562329394038496716428256084032031261668299653232000369044532172394185568872435227189182827074071060366779956463660060405527548334947663230296083049811785277086584823545626249764684351302019363235545029976353268305880076384999867521339378385928343251500942019985735021320189529828859420670699178843724488106083523620905992114206794640271814943675673785956915369002253849782545214208732962828873149515728995626416502133942621435329588625098632335561696759236576005288966502306916104454495087520156609704315575811436828880841685774680583140160253373591778253726773827966190343157090264593632685676168990579128774748483026907466233297795572313661365626068659034834058188311163060329597982082148067754697943913578234798819004374891477787423341893027904945771159432848357552542584418659934077132480329304644427476513337666505835096161284995861064913015652177943516465866071325559084773921535728205621024327631734150821666921475122958619980407956695677078941681317960832537424304300847237016588725869873538457596428878309303965853211898721137139216131013210107665824980202564723417180259128515400652008754215430673829874952838044534084187790357853841205852098713908499699745115620463742925670437849164877994760568821121898252275182542886232817588724879738784979041364696513504231817234324966740411185409559781582334847304389301124521157659968667051791240739274939447630443128361785787602218578970116181269727932525162275141272053282271676571868110070334621280043034865751668362923249789534989625898692200273410564896194431538193717051256410441900871862543688503692076280438123819044338000834127889430653484953091319232049880178920120299153917022460397435544369496719034639639310263182790055001677955651003271437081059809446907213753984402064842938605067936160554751656492178370585833503803251201375662638964794449013088581776976987730727123451026992231644020673889253566511280963411172176615706317346058558776180640274237493322401426546307760701097073693263058488324018623883261148136543314427778901603325639005113400608954184975228065395843288926098375929918839629146690301016629551564199516863207705568073176744113106687593867348056757706673438420544065601011572505185575251484729598302150947996077425463539505881831526606155033272638586761421051255932903753054577341455175698192401716733378157459885820000618365050744726593642436545210536609363769616402086635387815725196545274180918144848918248719402813908364043335875830472883399806777640790393363078119571742622753737023325058676725457434880027075496735394279582283862796125512703157473071320857410956233176591940981884413407699966505617833394938156016546809228231316375296812084724161605646865979536046925956876813907506153109808973769835742393607520861353246962185005910617451470225857110401379437606668520562349214685703514696836170775293552305874725601267686872198697385360190862750084039564269195839898631604194156107680372463888334297355959629762718155029160012715293669508893592181620344120684065891149712334340181726183082568650585470505543350013293328468526864806047617243093983415410168527773613917664651973778347789632067651370989788087350753542592856469848835737956495698230950180350722786268262365937022375589266789523459985116167811570900614584163742810715162757159482318466130483154851008010881919822443740558643230009174092048887895497620458631552692333184146796536021282757748124870833289444769188089525771121494025032360904108732380823365048003199556115908025041841122466362069138090769879610689663311132320181302794620373203899298642130716712846518040543290620988533727109664384756748001381939760337887749341556161040523092498187602742655817317336232582895959674126622204197351415180898446602722597931116716800692952622833558027018831713294217135832366466709249025603867539846977512727529539927945848994938794624376059221742703026670265454542694335311732354245262435582913949823148297116405095405228217943107164574636406005664520715898930044261328246327172245169179664355919300925490614642704675434876478555362910476467442200723069798657933142784013349442581966040028084305094357072065155821521360148174831803035047008052007846912528711989469927737484964302996941078469580812504796129516059195741323222965828956245900805060500503149855623582604800286653545706962961789973210228056174375828820003267941254853420653311040978401322689429657791211704986240163203305364208800796154435118107401889718251135766165847900748884261601922582254662720196367462444486403927231692995002086011005366588532906549689139172000134199244857379346397378613062045146106262390728115353687144754225824091357553255101711015773348924067939984405581844898576119550899700455177042348970570450801155099339430983559713951767255877344713032943077562967129993486963852419613573975043879697049000398659506088739397433247783266210264292991128201941059231491759741229119149388714022277334329420818177877567128497045292349610171727568238866758673368259611332278580950337484279501933109110478808647557614301330673868766394347371524763696759040095769312691220424901952788588514658748725963622790335411350446117702997172124761618670701507916099402773901740399686742851360040454716149878748297994117592699342359181068759411983975220591252615503132246178579899860366792359183986826988111251250686960390276678802734383850585154374493991167364611261815786853557335719697236628786617643251520575180800243352814792738173067184176879639892713201040475508876484718474847867532633379624195762462408081358842858714053354075126056601030971801282265910947339939683508901491908530219161217484855033245151473716715807862994038478706513534176776278965908198789406247457854768154031736239020411480962828158279757606116708549398845074634502822974997891223907389733127395112852286906760740528484634537658381006051090037065699023140739820338580564763774617028681567640602401364055985539780270380754539024097684319778911830663181582777864576383297363043923654315450667545968874214881065762741524551954251796387594410674225025664627901546659749607453286320520507827727838628934590382774485634211618375351171597077925399301717530233415696683752709457859010613071187937085918947971062855362034107755907999894206195268914242708959923425380265376435896633048236221708385402255178957791846976074749665545539401290645447484036774074622950675214745999678056550625532461759471867936776991497583194900860464125341958976979700083130309830856196964754163238868066320183040706440408562769768822870666726180212919974829742465876800349939792779578447889451063115740977751696907984526551851868360019126574658557033243823715048313979078418389956745195988762180876226697379487833028235810856818518069112146521199125827267006880714269301336795205223139027354254981626622067458109786067217886211017338129870846554403156223356928434928087285757959057046309783151418593317597127947669403518484491767479661942657576480375362671016544310621378332739043528694690170514885909983796200495235935917048461545386207410896030630174753368100700155503745253255996380863679669438615116505884100778823294229075577270865113197107718386058827723350397729430187552911244394057157751364912196322821844037703271121994448521920373994941587386488231730514397767217793905580997780275804130098315818419114065977290535178327969917079826306907180411486663266633380267648907550454587550497734708433835856692911882108022999003598641118272296189315810056486844696653591012623580688875488341338048871955552704132486539521134007061561111226033054204497611096892808644680684015020222607935261923971248413588532648910374369226127676728186297010372194595212410627333421567632058522175434494848159258180579230597353702171454933404252189004135563947087527046992663609705493162309308928474223588789513075143038722770764921957643812782797102303630309724061625431592921503115622649055506492268239516172258107942656386019578133878742660180870473968718236376937794363048436303828153549005802560567058720625516427050515539303730782692317537077262572853374174963178588418504749715051246433134890375848471837070542983104974983916584712605402738449850013183609300561928011384089056178724153401192333977152774912721821184668275778844515607101423047175662042620940189194045387257001183284175191103369966519593811294849563373024014227085938064277591680180449292460125508251588849169708994589940454960070886985116801750573199453959297472859266649572851957311849856422652390618247366781945594235000924541743390323251397818642211924888809040738686847186718353955630563783609144775406928760819517957382504258232145806319301692148695393559213844896239243884298970335737327065229109462639173026747087023795603444171095922400058106575048752941673098720557853467757586571644551567396392883058155682232029757573736214963368036139341722781999818843635488001769229163184666317816011044776717556703914893832938187600174131972403580791697547531613255825920564712205558958859009880733161926385537479926566765294971745857615928680371854726622942434141605219902971057956159683423713128326438591003291900086157563361785525380629838647789075948477052275463289912763738923649272483488815272986602092210762871450405101137794141238677579417541260168779152943032799780678023203539793492726397236532340608555243313584970619011876171964803733129874176310894489733997946389088521591453213699461779467630244754280168441553907263450408781053526645489221249476768107596912929490794006938468949257617983058762672534600308238846523361155655653079673527946268947337580676708666939126652959498269063410514105110763532532665691288882424442010587549241282376752741507952257975975595733007613813597450915763758764269517838488077042508087307016847108049894299159915978144962260032845536669791704348178146994376099288672590988470630249977867919439441392717101929377032844477149729734277742579361256951710761056007024553448147353946718742373698793841507475558382580265898075297617898863756371966467266227686958391411602107308092294823690218577580640312475491009084673737823337174755910310614298262258586187009472564913395215817897557447753182178051127081621734744932825359182148273823610084061318828190114862342188509235610827099911698582894259162079071434485279072167523961523193875178179655199131182559562562697770404900453872489739772604311633643899348248630361501407825691075451779552019995532448098376628522906900926055770486388963851763967310431809891103616042709449894583328566565344683428183607077814442589239176140000726347225571696340785905415742415250706677900409169142291640579114715899616442393180869802824331104940937596919332613168370474455962212809316703869822466582342542631671423089916285065844573766928794064331632632397734665119968520963890397878360111048977530270351637835421020206140361333871557027906809221220933263524961284834313592754366223435653525953740048000207693467197965677738013611230523599351433247276758932004148437274972925804934706590021734442109701615207597397425133506151842598621247197024166875729806522984670788701100719389446175051898035772312673631104911679492980126032255922895473096017140273805079153473120126854290410612341215596437821013465520588632482143487271631455207857743117793820521624472462390803589766020891907188471662312704733294609458413220531738393391120396146687199732561348228853743843090885547237377168768611515740347550112190515409441820446834056824438550805643842281655678411655371516592652485092989541172779599766795362167741795952277587971613219201877646970437534205485583015713791983634094879176799006484562968539155526631754965599442478751188509266750066019728986928709277949395726698144596980187763320454475818062553498928078047992889975542725564974608125865128600457146986044143171764308086664708735057028981405181284276407458111099731437872157062135301817090255080019889895058978624261263118244704389543949205659327895820611256780811216962905686770678042387108821034764445579482372731341144979903771144286105298830604977223890136926504825418457682667361762161005452160827827819327101777852655245294359875402908687129803049146470930649026417909181528010950809171862373080521488159073968841757925322201704999642784410640342416924021428854174294838773285814384836487233205677919240307940450806857973383486738240741119425474069562750976723286188944759794008801126102089928524261815335100483161711793114673213777997602192967613871574449804245058136626350374780748800962891429687193204234041785530469265828583415455353324341099040586751351785988171427476101760177857289516723810481091402318058694709096950454732131915197494635786129964167798397242851738850770121269062133260797736449397809294630503072986242827735134988002541420093234287770259847387192927663129248024295757610450082358650942359755341232510299615434671213366452537757329346191860108061860477173316665009824154160608472641176453106916715887244479442622153706169735527267412813594591711125510526582374566522555874693487141496160311028648378859239688244306851688247445458751697272477857916378088560868476635033182057059837911207452665021361439434863087492079957296995998827009509917799842196329248033256947093066551898560609341783335508637255761870751632933930108557184105324705297523871693553173494866435915483302471901514096308718420792469645469775290440596526125792601391953649207910640153370140747497682198108298732619219349868770395250696284262380486824679527144047104730163637414572379644279975481460782882946920728503114967273943362638845667217347225213739687053205472927978687044935500647254820144199041892958022674792016104294590433398537284692462552667980582559494724293566708767466788490852538819047314044059928279198599293834818635063118178576257605492208541674986007841145769892900892961189142528056583605506363122270900197414006605428342751230284273171324298466560075441994761408384973069488783514045562741357853675879114469572877254148370055557085760991598891412474214825594792438944518824831409681974562535934456811339296163141335013101073806238711923421262735077151870451657785419933725958981938020237407654493327734918774392599831790761617885732631325351947159653072451003531901357947745285324273644545712742134669742656790678197488757629796789686234043264149352462746665018344310089413763952776949909665228072492199036875223404650368040380947259663389137016224582498764868482587826809050039110217725420472034121108554024769525514760131515469479186511328133505954971462911796831024861353047321688456867507698011011237921325890331517811882674487863882726353927235031360961826530428920910602545800119223619584406843902147076565825245714777335045879325059853350097451124828025695091777921455053650291403463135724582010516590933990715822759776095963010996405009662763860598859034098236289834517469535672856097273803051986625123318493094616189212489344521851889401883447520648175467998470057922153820818061858003859219864098161712012824913696273682603336864057380837226501899169511228669180807043758573118487893611957874430914195450481227371976250493845119497871403552374578992510489201588557150514392019309105564507356569372873710116271391421800772361676971490064724960149285585808915919800670451958043743139405739635855116104441992585381896452375815071385411859821132805445744880631049254847926306155953575112818153474582221414341974600420584421614273489235358039729344012736301136992309486704931435662220422949401323027159087061755382258904264887697873217943157287107625015142964909964964190917574865684974513045655264535647847677498411127631553792881713281335898254665345935706521189172519036998117928799019982233575653097954878903535109844996753956705774753902565835574290845293521592278166823327840111344007185664853869981441024538216930581203782435110032318866429916801665899699813656232400606454176860812259998890184143724494551093442362804570554553920693493932866934529428537005465429766572957732742597831952658602994205208982021327915081008918668748675559616683449142355591156474062116266089526253987391670718586590223202942418313191369273386398172499459737596093923182378427867894859685354447774142632586899765938330292792393332318130854669171846668411110579053076986062145012472122366799953465598390861964390179845648557037161984121200145223474894396703546721348207983875425470522030099839021730510837687957504202282648692978695632990356014603201435089031674316752206276687856986656522721681558414543236651093076353716782347814548870864561150596871950209012637974618754598652150815521716527667069486483633827449611813813398881783036516877134719796929711031153398926552834791068355532761453025134621807380725819527695719089414112587569574840802534053622516106917513862852939011067478719424147776218525504549823277345406238482506790482317806206479865164835237936998798709827493302039420018264023240625628869902018134292370889046106232886356485282389828176981765290299716246423539254339856563811850681064988361502765047351931213661410870868156503494844246823711546565352878006381580744107968006372678318783756703214233103215869981044030777807810400758355545441685411900433794749377791978424411502146084507724323797299267158711762210165485559550399116530507590258088133963781803879547395007911799164085926343455619713990172415346891172893556917776973218323619623850535911897540994434631527250319110585931329295596584069795623716857244424119074136934839840251030048124608475200401550481604230312415345191469442807796443846749809049687163779325206117770346501304392163966283848326993600603758268060470537295326216784209705072952366815804778859870526214830868565264055432827424457161141209955299212752255588179896482016866707286796380000242541116871475109886526247396022449544862148347967349576498559468268813859615709325374054121111641485830804852440066659267361891847176717880522462205124244562184133226418877628643174668791879685322700454163178501011935268774479474801647006892898800576772445925959521943191470757961414800619642071774021767326103413176822210293136245251693270540224844488743987810912758768417296386547941259473431211679518698782453803990087060083873799911808007290072827296973903816075164886244617454675322738007165262240586616234508531362800398151538809148314231364961775391263074055418310758921915329779419085101274873195588457501472655322761439050596867562514516190375984122497774866209948330057277003217203043579982450587420774182399301929654740621219800166227916653690706148892368427761867698398391852768371262556275956729051782859505454432659152851476591093128968761427862066151522026856170266627723028626965902375479280187130982890681781139429483047418057356927815554786769282265674428946522694422874163612530893752726690969215681559101602820186571137110323198326844554020391148973646493082503014642973806292069692596996828182287291864594129195301532273384814112504907069907974353019618214633498404310019387369580306868353469690126226324637040211289711740203940673821143883161285202962524075044767355148020447024151688085725796155509663159139281662104494177297693420164648327687968671505523355074404281872398122228472436675570031848697278843493037552813428717447334067905812907760699466790692057794627839994126738898581780003384249868471594585494254622775251790444442112893390771440817512565259182993165249148022321175447712043850567096321629769364950248436694984789304183241958287445348165101602813884909162100050796909722929349585786486539707234809819774284138365870561585160494098480901444203722609122426256162484948346144039265354613677325383693798606999854247355083655101715392755680314553742829697824148953712457141461115089324620414343747100552874955329442537174245374948751561237958978344026234273894532995598211896747340842358259056390708376837469345243283332576882670343021366240348250413226257661125339165907524997959962305324911635846699355917509636777690943120292296117293178825919478774411626733459648248228951946359668189713650729625813117791479575116970649077772180673866170517066590420226162230237447094082430360816989406705301134807934421465089258780302536764081400466998058338361664915507459211352551403077392715016101929860021709473239109056395440095753188510138330879124923338998295269022020768517507338587461497126098824807786720310595649075430549383561135777881264749648376130682510598352745542860615751249752068100541030996382402674450514837110625451564073008086063360321703596082387297685710587805408155877462769367145955675203099215992455204673733114650635456746010911215953812187367206549771046800914078686263178765680998014906244858863881688270092034973844302242324590947981768381018657708617147586525681857819938403602356592577931682331213998905387522676703371162654135171218788913598129944642290998000118557749442312919319804841205501772889685347604833203417278335227693593173371227124002629535833093860278759229874763722055900819747869111426725245775476987793082095750214853916019357908381968454122118890106728981952313956175890112328407970355361740417325151479726309716155836156216163940218454121132727402350375497355300491762606742558886822748791014750281799383984245759493012072924712287804926162912314142813836997098066285707533859793531729451273901478270374822235108795140378708355977156511149438960027476713326609184907232633106749439401763927936563024669461269836987859383774667540737751134409858604775028231285120710444451185013403525989600720843375154871624586391367081190385454477257618313829692095345607598938309594604472848754258393756851249473952582819040672435774232384558191357953943492814813117355787698125293035998679065581840193377576560641757828164553621992273996718092416613717989072357174391508832967258947533626672287463450552424586682839410057310254545843720607881271686262369636692637991679251900184627189208770778658415292685145944039899097344565889126575436697608418187666014022300660607873946474843017335328917209075125418393397467938940522939575452616626360568353086142715279611395698209931559031525978872815234537100488034806324745937791955115787234136402043279262889004280364390887743825755443482166793979930001714256228233986925236382871017782683764174623960125319298173741885892772482628454661297810503438366735483970949515453621305127522409799536636035034260644108729381290632740609134254602292660561797576509253305526476255392356612649660417432049454653502037161692375361666285431716564256012001556651064760530451088600300136986390502302909387948747840040568789097632786951552269001509790665154685300452974853352657761337635552872328958965308706484716803825838578347639494003152764600795748196788522687226144510236914669445087771698815351225770930204873488142737758544685779100488398070666084887384887294342559828361643980728107296442819342527994704568558688115450905621251731407799493238007900026980146087092815244502579089228661665987986021835568359612515537999943426600902189105591476340171553003055965405821351969092545603103606429925638158835415211529345129667748947361463574721533843165417047062310494631536224515398697794129435852759409159687640173410984125648932701367235915641649700312159218494902258427428603275500132800190390359467135749877356428864874585911193582808509195254635786094752307604577828239514415468248278833019043866500228369951467759273930913432416083217849460139422194606771749951342782157705810794026616075393359455624145035637516239489685896208865718074763311493937525251295251628994659631670139036305968149357333171173398118982604938658365397010275209095140546332749231532321325990184659175357637361352260149680413285864661265169934399588578308031095434478856750863016825560172900845661873806540251487421387873145533982566745424578506126033051376909368472957662546746657436992283876089024941552400071187679891297274586208786669692129092363390550730150496521695248238427396205427575809790275171023994867081727900937148555795428208721161745527826736059343578877297240718886765588319946017565423959553321452569228730480129530907576249964306069339777059974304278896692234748472405242828946145147151983405528796970166065659667704082762761969361023174328183726844085453247618980893743201435528222410147214274237684213067043965872919999164006065055086679234187017173406013660275257093000058072090322509479163164872760772174778870116007949513661088256988852787550576695526514240387175065929389127819113458822517491266675278788093699039482707925571474292188831096647010906446160500155163068827671450545127777389434396889567948313447230860362823312146023179134864822424319315284025755832757564386478552164709232048829195878884779189258796134699317364580260003199240969301171443410575267608949189663261625414597457663865259887657835352484211735929468611838599951163120148095885818974154472509465575213117904044074645579599313469257688196372548905020134421920270588817532117357146255945896266807755873485271604223626600154992613830528920366257387690364722592155058688784302587193823144887612470959694627579728655298407421335834847460395389884444459264508099778954919455097934495380251520884724843169923740645135836185842700327371024827087000721546116739169578318861790637090881890089203104212393313827143378119258522603291814806958586494979930124146683437697415335879498743781305445422410626129651549329851932325661458351537370159378189458716091930586990720363391147676088127429655050075451527086219286323964190664189260151362738547229976501211628068335102110642652508506680667835841906525568971178266477122302868136053434987041452364637057531917433953691847274151344800787592383940499397771654207223571948974115425321906544836610542329374016883473523180167873429627887348344561403171664496264237232924824048666795411333372243330171805253635379276005549426702726788156084987775667506562166479365936289217774681426049021259486120837655614542025503987954645368007649105631967057629093838861350358334109541272800461934258552563184493415380142647306319877094549662667163271297038529559490323558236476018702354068122591934958932846775288439551912686755415195928825316434116962035649152751581262622282656192897502011729988900325649798247090998154932988470093746608472476323141424267691369786794700611917939284923461912799593351058924835059304323573387684752256023607572721832664152400392746680458340566583432953298250162356007929411095308444698282034197932191935022235477336459659332526982633465001445559968875620388202556707119038605739474275824785691692084307428343782884637075613661597914100858354295008950567256668557720888951678612106013956805775993186538048570326449392530826013516887551647740092702603477354850179071964601065474962456665614625543605058986143649285422827363290849814002744462231727239431885862044683155989813168766970697259935744172142381806201992135304870084443105795724494209460482910471982133685169071720443566734904848050929981137791001442016931142598294483413522937810617336503771162250765352379853911161768959389547763026068747166523308483001931191663087631033433271152069308529131042410951509196241339154381023649509661176760318357676267299107378138821059412158989306456469936710065540184730768380794946717699579233525028503178878655925727562610554040068389766708457902970782035110943945256185725350517910709225357970990691372910168679778250004344756155404722225097251180700805830976096031932871241547437405543952410928456636546905129774112807587011964710861055642278719810044300607143011217098306029613354280849064952911116524722944088366912167353357847553355867516257704498589659392544932542648318906437490053338912609016080030069650963998243232510783217153423834335230162186209294102758625905825320031988986594009925384009615735713469397631936970424947818155035955739666259237002105636548352941374164340751898069348657507555641340680076968503004069482563591419472789055870926950580865615471140629670324558222443469219124707495025868909492499382798117880876806966215759107433599681189412509689444067264502950211624713660371307165330753767651543085200662135775029100973624735796973326313572833061363706060527112071482209248951992789637480961626935101920714423530737869975581931107737207878191722090223816743693458165961707049649388111800082242894935002526367017076194843561332766758695526616741001565796973012529699217011603829248603827166651041111914533087854390921988257867748324611017577517163200232811277199536838175479299441668839629204509433268352221041932634331852960518894527434107927674238963877214575635421360563944688915933814657201954898605033795230549748304441580063034004676662122533870743428254689883405846614991738477510801283958316370613193178170805625715320700359393487057975109028330145278499397039941139092445054163730909442803344660339529796675504489819302243905780895921599714134914145369377858086843962639175577192319615126166026703435648288887480949455641213667576758916580582383190189409851878347973852299456838258968085905582898102248841733550478904446775123799597669916424754364503172321886276733233320664449254239394207975496353866678455631098405360858502229742082818662164245831140027233995973134981280651437426588070575026344134904518498477456447442649866597736236933081063530943625804617991231807051957948197235047997309352667415365074774775650628962589468052715329988027689283404054100939008699683849839863390634037461702308440444296173343697192224749903578059236000032991244319750842045784362679707669435235610197407112593942981313364388494248811598413144907009183549487153068412754315727696620490853262670728182387802175402543097690518149621140923628464730316858984071238571782929289967735202500022217601944936682014965838107445037252955807191303743239636294099061074997994699634199427450061886393565211659476556435267761885758765096170609343977388384035604419285861638007511956511424081926557994496458151137427817193014357639169935519904765021748230209971227380655039360687091090757362581526804356902182296869704116991560160590284790197403695497876270471213741432073411389129185785234733175508075446059351986950354611520208834287478677730444579560910890195893852197965420499010527583311597549271040703214935739108843742204977135671167667832595475222917610864482916782543491619915821640813912731117464485312934514214781426990764601167622051920930702625966800044564138508566266930353686348620849934289833684307680867254029809380020994466967029410718339397198725448696727262203643735055567926739110246644955233097138712600399036977104819937687553707945847872906387377852846655266529411733108642682047388477149082535792911003648908127166434177172487119658617247490694503070563102137235602509897834387129993316530768476744664012590213696422787695243694192994175529123891272899279375089194469390723562302587324699209653403566616465738113291649726493044472328282810628193544785981578349219637413262818862897678606459338085553483008805051952676590320445024620110966346386193416893445807021024470764006793913361036927024232909717476395269407782707220484416998989727995088682381002483014308664574053219694525989627310861030583793418525359253763243929327751584610746497214265568190011349205639269433042131903675491996757735742487074549085535881402011303880574765400076867421137403797051737548679412393127170154739093581676555359705752791250221227439397282532957887995826694320088808312392380434068376543841825082210553804739706641430626686486858412670227242447975305574044092072828926424028516026924936353981549080186761327763508006989022198133991006213008453921878447215182424967388730425964850262065537844480687848991527361771010120938020567019017926541317300411044115052343385273706109991429075792022914021764049363366569241330978504411944254942318504681294144265478386832918691469482084461254302404913244330249114290035788612193634274473845700371173972921724482623905117180036999588043219229808093542409377316516265527744507733191520545640634612161873387415208049938992666039761325511599431198988800366460408663803246743358439258707550450214961357260146689764155503069409914340667482223365461096196947029571982117195360416578515360543558109841287377438863009536134368252411126135800062934235785141698591646315350143771207053778627768749633768849865240833788695709380336719850813157006946439258967455624791703045302784409897141846763676507046863793514816104512329485738919165641178221889853811416220851925643132990877579149466798749017392405569059693943214931717136974676234651344652332942771372732381565604438230163903508243325001311239055569232118491638588807850579954825505114923229037781292849138625562616824941396134244397962400016509356492296260290728654826640366200208363254112119380279132269769354023101948883659227221964745255402588094777544422453820732708384147228590924379206661278779336092682729976653147087938989296050382089236180633754109529773766068777762044298224782700389568848513097250240687706766131669700491300804831748982498316950150719313697782319332858976029698242190178182733674597244664800324948722187412478635237016536701425145683171604248969115321904541737868480255376731885288272518352383063749153923378178880363950592896994119616598900432543186974526571030853398804932546851157528338749877941280177625648080702169663399340672593562382874318208470651717109536971738665306015603767485356358010052202210272842142489896735276182497925318300704841176125829192431344512303224848989550436987230282685327530707085395974805057463128011643576975447747743716693218219105425780442229690743219867251129255841950867300638550140016875000194060805038705671910396296201232452478113102242061957466228444955785060783321545895348754488084656259873312419619922390574368738052080960875204893591680936559493631876558140448683637123072329668460761809539583415731706095232762103647645643925060909238103979593574999785894416920799071355952803345606604252715938854148923713647074466080616009607775174303592759244142567249433045905306665295677774881649948792256420998142572447328084611285586927494333497716339483136827431704633218147479179759364728487961106308572100779331449726610535228549123108639745525348290934523556212359809520181048812542281138647095019033825924315700131405491795464034838873891076262471840486653878837464428206087295281844785489785789092157508172268927799100233724391487812142023595848550998777289172642250203984559406214257498297315164857531765198806479657986605022978278668173168445595625408279366985823306411238244560584531474608606567373305508570808042527734268585820812062169264233913463960210271458474007421434756404913011945118170928821583415736534180754155138631051260483844996173731924690674278809989343116213872993138047786396767840235168096209159446234950816040859669314848823818629238275248832960515370189333628488037923580407810899154745231445802907513424150128930756494773220308986142264308592945720681048024392752331894360325801960380552489149704232237788182653794426961757567332152021630056829405835664431403622155752106516852671142419760781726012037041434754986824034179465530685810647320369909733128838718003325029675234972365628366294204850671499868626658072233995262366855909474339459000402802898322763188285731821161506401449004381415651420046308634479390911183230945550020960028685843225389764561120721915694777330328539996452916070850522473044504861270291354121647620850281187822074767045102652952087119835935328013359551154449383520754202225240123536897717119759765651662619455911615580833581004821488696384201986298056720349350027566967074730776286224191804161076047358835497946331079487394889391116181668634161210280526275058417123623581920034508469806866344578568920686729746228311937476545516290428758665799498156833069513979503302459609963411391179616374537103157258528016923480296493824942189933125088226288498753130672889749597612307874060614102935909467268797414427009436429349723914866550254923678199869651576023032243004266302279642636511124819865026286742514567903273251885975979105498217481309879897990894591156783465808074167273003661336526739382216680587421984129976326637029610275496306780451752638895999803443085547714699885996695857697433620692650512757549994062433247576471430380605069526599357866731761076767684978257019240887003250283043414797839408214837696728976828223431308621966306466193781582591019172199137561805647042059811787995976373455069485878718032975530737273944706336944723353922937269844215463990085908582055755346393150709117521758337700858864667834195002169226419829238676253956644197504800501427597452784375363415577222807278693045668848732155563080397630366151506424407563427180818131810418870023360246250402852080091319947370007954028937703089886820122687690822146389358031575702421079034999612942788225662976332343204773367289896654652976990385841896164282445400048190576708151300155392060235584331748810315562081153013008204616786617087571067798451121789345274927286987327600978739875570636821029056101006683598731062559126488967664724577394572770799107283829725991066866470598757835069311572730072396537611441901769637478484499487665719171104236621944729770475262170496941227793918828169467104785179713032125608186331246672907573486060488621314264373074399636250481391365967371428033551110129675936707115873774829184290063123361928825730094595709343078466676610490619704475075775161404729973965976387069416518771615558547910430414849467742035931566144842737800880663158725979015945049882335679478511507276721373128472626409096906503957787383740700881247636129797099175864226789261246608327361038038444584711958528704375749408189238168012461840027084277951040092001099465342564932166331095275917463219957282161431146619585812691157294939433060231320910734288827513786274875354836391813793398072779560578715572002584557598549836945366953918744482296707845195898053744492479631801704647700830724552395372368380522663796517651916944428614827145810572878628309671666862522081106854574975270790260526064286176468908656476135127113390296489666823317951323855133211993198090567146226896690844348437067963259653064254463886788673924047953418911951155391257032873943683138380013101387502916233687648980180212705313725481513175975732067064919097080467053904933704971777474491902831123539427660072381669757647820341625528948446761890612087721763353060964582453940373195680674001519254873755613188664668366415267041167447787741103802585657227913473584519397992746543830889354277724510685514300940081452625106118706878095339567153891550781628521647017938472907627750581168762029826582912198054181718547807249937874747865965823615512724528235737209430716444132385212684817299947295053157647959850573122288834805758477222468340625250876365849370143953776750783505290677873680062673433561615525838987795996587630667205431633754704296481747854996299724429757091046789454717344198597102821014402183254715618231409599260634835252049469083238305103425405640744828880278252062085130463944702950774044071888477584248343476748942080320659917147443848775593870696738465308802124528384013456537807939841956133438604107350518384020919723672729028004176716037091794517196052889636484142605144253876759194466066028633873568981505522743881292793713484181992916726374570421520570909361185129439455412569637437917457378234300169583780096251144609091948097894057778473125693801167821196318090204496301932378491192977375208627650856872558972168842270592834486079511880605741875540730637582907004294917509919675121578087841103706158082467133160145987974481238860323939462264422660050613118005361987713222781503299103185015657756088176786314548960633228769028484902449317595476487292953387276077622360079416650444632726468634292586477253583739759354372072635303031013563317379341910928312982513442591891858629037873490512524404681393721814429341964754604772840758955536558819833530103958457186596819782714777512310344929057674249996534728750082948035767319358199886644539558827293794683542928667742125067314450041216004490228131188949809516160993428885850717739318537054375229281530810777073267155273585121408098930402312485164711462576154112568821547068140454403682454958120109184019402924044133639184555332856554678027297432221070907227680489635238802167316179940879123132221038924370888481308903144719050241926246105420581422748895572531060960956305746333207798245420709435352943619638205068204319319108375896490928387832352168103075234514215766197385919800604377294236393399121053521965251791501318653151081553118346571690453491542299931500762571513818490610066096812743803224013757130867313745630397209028988967417524502108274646767602580465195221621454388947327840859187179078424625533077808826111633648175716540130249370919939877096883429736471460391286483897723160931508436347590914187793429463977778365037754783873808022171011030309826641002633847069135872860960719647524696078925056261044133743876682636454181204300098082837113441015499785118612238554361640868616175544979081241514137608261211892200754577574883266989137056609034411767174696265492100998143107167513170908185241656598920719285929901482425111405819379990750095225101507164891786467385001148234142120984606638300777973176612857091900866076924030235777601970064201812152840709098753143990965139951834991431833092242905914242738277455453258488224845568339762709955364888624327094200635593084838756731949757605828814227363287838576590033724374418773632514801810268799221380557067576236500857348988868833334157964471481431739860036322848769219173725633336601032650467379180013427616444035552333272290030157182776228135727644135813396466898743721057272207909767966525059603554295161462579798068616227958083780094568303466264194601198192530052813583056406192520431527498487228707792752354210369044712389641389681875978596722760599563310358448541781456938577992082077825993657010386887221756824274389037926484663739326049133202872557322873566835133620269953776656171805987975902353689730931419864147775410975902482431262188989540937948960416087316585741669601506606530950810279161050813679677137973930917385685356342723408063405642858152930868945907291065471958989757261853276678801869960407452273669320584466878726701256209065931453476508187193411220548014184335153969887439791271737619472998355650597585320577791143428387713515106911455222490291702438773014049439270624744479071757862947266473512313470737089735694511020156814562578676852974574400327973691068450278323843914935882549378629345603229572863265330860901969583536293467078457625915164706748284976678854833197360618437136161828260135825255583643521783186482472046362034488099822975292679663442961701800277235595564154855194992638598160345932714129053298090324476820638326568466745809088167088613776292774467525901104542078282480868429961491558999302005410099864548269837438530366856542411849749813505889892976891314455227237985099492766183399772786547643509546070269432162034032497724488946280502623242466467704379622248397847124015764191550864529890388189707860617206869839058680028916681108364400363482381224123346892817638139548659359471042852775321517334175342065480311747782446037773811960541107837034448500238184648833564907740787057133437261907208171901839453148265861980587635954949894369101127096380990402248292462522784517324738980816873168333135473491725996632574591186599112969265655332508511775556747477559300134669616899421062807891192566050351663474287280718609264341568750458645342778089542503475874593440782911208622216191113272934687624437509479659959493697892137013083547952016609258400123891082061941066516764512913494816358801044208364631175785218043358074599333068335016665052995822089947939753419122936082165416754567053173622465643879481369889351681471922932485796331747297857988439486094107610771561824781129011928875116751149200753928981092498022043867274209621474856871147992936080353552106419240515719143911244997600691121753578847962059358544032330478330665954487434627761567079948642100180559612195596688282873282134490999474351271313663380189284999989873542488179831103791368582578264758059452480861824049420753569872911703292670945294439866821790762686173930471662014114453602225344719605157749952955267551308767454264464960487714713969776868764330441734534884087791165929630455152537673695096291026843690227593402862538232852863671882226776921368906785709092011396867316808856392395381737810249145464422121715087646101869248108018866729273237686105375318572142978494069556140301426583951291233204473687645009779936582307770319725786042748750989799345505628239209184017891824954812195059146540914713312291635700258940310646883291196194624043133722766573737325059778517567180728679767367519120010990763851312698877628405811413866721698535301249931440846587710186145786476808477352063416090691573096151092382542380979604078399549537710444764129809433123430978437890640165795343849247302684763094803883880077515492042043610237620506246581785841351162796642616634663222736868901360815086276025771256237221311616952262375718860355668784202422160373943837762386516979986584935646366968485550260412223655093122964414586273502144441987387094117838359017689170642829031916979932633459545685604766134050465181380475516174593740693985144724428144188382814289420089653503873969888104889488117202980931004548197969030919161568335657244960711974490228307047117366219039499844529299882622871888160550016458913909367760718643384684873319897614721687335043094061278047976865736085209719671679564877107149965509489538005798653043291708529771903852469915494704394404490322406252810470897179124673143927244336182690520278941154389176052356740564362760953446145679560896639093196683709508595539600398529959851454061891834766128696235990857176615388441331537419006599667172081034810747301020622293232516704181572442909856395071138684955186636262761210598294216880822995630033673359775997655113361979047381671553589045873621147562241073325045455120221415962774771322601510799304123628076290082853483049621729954505797031236328795056059031530385245735153146834435096060574471877256788961363813732098380703416160498463025918569416798997893331991776678194438107841696276856829156395690300530147599350394839924025070920614188247322890904242822949132029427847624467507400911733878302087166506719428688221785091659422251637654854847432189028307466556579551517773798304836243204753688180374251895838174328558277299970181274501082934561792001677991201113047946102387349670873955425310227476625896295615704804630141493348617297644530325122470331484420600280195936421608106949536054018446811508830458878596557335522858619629475218937935535159288416802117515670625667516078312800862611429312482581547066768195251167454398426613584550577327819198254382239534641941728972525804058887688695187170829377478817471769354623888525554408381649381379584623460847864253094326928094687717984894361554764420619116665701572343562304372833362716107289978278746603553406188313573070720797331780085328573363262618967513069998689678723607250517743578842839120196445277965642462737577645851511556091322522423956121781748583126074545935843667147111550604435277919005834449375368050182980801106215655613237259455779499975535426242853787903431394590226045894259727217124225725048812011535091898845348545340206654503473656903912366474544458723075444537283347129832049283217356366535945575846943877890210598510606790922762039725233008557526922353191287844547051880345738317263662419080662219030333829695344333139981156406692061287788946947461355562600573187842302539397038632676264545789871544001833233435728202929178257704664549912173970353781952224310243923237635725604098534937201155865482889398525762895423316599323783354203574242851046459732834091925037911508855343115764073600432401130920462866333380350138917077295677762314749065233748451294495681213031447564623637211089837385792433916520368705787469314364257719571869149103657721695695755249978257104834131395950103123487477409303619139184221604094063245304381104697960970273801499996101248652352577766036886200360922794692838821987303635332757038839237789325432427819169176628718232163469233850983798093397106713912553027023197186988030687275005836397008045584281069290025562838806038212771604729432256864743998463495480138035158600625629174592843770536057347170139662680003878159529292117064474463148130093731345870042610650327972948283893013030661581060782122456768977468858268720784098312562778684583389594551300742126523903045147696814872993731828734887895604708139545880523398745777163496623611606530082732665413097267908123387260060175820697852774620816951342512962395550312570690762180016829012392797476822882749190723206717345650753410034799704124894314913889703846130896161430785111290586142896136787211581313229382326943186991164999680357860743926037873995142034253872346683938788273257892747138444088997037757939470212175540515680538378567024164765546836023689952050975327641803007781338819759318127994818015507560996005137274656996725960980210408712414897600946333094485523811893105423808413960102632315315373252269762984238205013582167191787363000836396872029861587545736481655829253244699260539503457000497993363491809857388563219220270245877388601376796697501509194728539108694666461893029647855647250937128168419785714705845255400231599166494448742935336443883679076955130715731049256106784338764903452991823946680309580115732903335821469582578427190603047351657041334175406901112815205487726950335886053265782064122905699237210935561843086274911489650277449506034356678930125783332678306710911745575215695188062299744942492744981797991241395054773613443113952532165490326012959843456930828787195976363210892508351095144798769402570118253512837892497693473694217062589297614011163158734530958403009262471716448431517173239244407329735338615085587950787013375025733180966533021182433626313472880773242207315245165462095561211666715232062208038863675033765875884574776097040287084503577557216241292609601481078677833668194074406489790645767258006614174581235679198224247610979921408740181074810885247020965435837078335967841758400641470031384305528027140755288483764663089486075101580560443491099209449401965326747816814429120267408282451461083417742686824102691906724269824695544442466621536329339795271535096598961188342591474667879936368190178040594583527299766833229954262345984919100315628361676686279436382514320801008673862120944639997212231774298529669048936841509701346591236524080520393332729456061348316703429782046113767774888301681746077047415970660996651718569238121426371754004602541625364020055055065883237849447735228127357793167073943443006293478005947546811616597208378852597420505950665116325152442652922993622959264110509187721922341920835944888452749324861190853170428886654694876090529284502218436630165590401885483236982468681231545800843845671869836340025894677160931185233356730780244788919422171414363334375148351869982631971270441249235523995087012813987691048618005330919690137111036033137234538888201043575649505445076846120256711733246622695329166704662925453252803483639413210484098140361068637902399895899325377932122337025026782629272168932290225950054062487826433744270536828753809628273979190247755670127573555220950899613601260243422167763276466025287225633750295426361285114392656490063783037683648252319826618602758620246960944631598213785563518164373929434864860776773884153594857466750042885600640175604326256979446703576453541766005626428265769915220287207215344753435675739220360141356432360537402970998452747893279384106667129042992480049017273210267047695431334027455743754698600207053614734395114896501379660551713084586534887998385415439004821634518365366274564837773128716652129575284325383033495712251730692437991595550250048448100673609800131493328131461897771557462183530839482769770284123092448990003612884414650955776290851169143283688417222840599382110859943570421151950869161711641585268221563590053778262099646466012381323251779291146841767382178203900743884923034821605193333868015287445215418400632040408776553276855168657223358343145742448463969812827911270977996297080108708500364440235818618530398576364932163102693753122736517495087396507574797928827908471240890108353860610955441157316417957391691387558047650419111080398567056483394524477678718565204738747406645156308267702469941090281780274553942923664387728086703595157825271747457330497115517497365899981206716826288588961169034013000930015969341484618185977984090659619339681343785370495960817558038845834845927095870288916966418448750179500498318549537051234261942066595845061544655422910193995371070179986445890273851679672140336855625115151188455720807883641772520506292162548236172435596734947501901923315941959065195892347746024410533446085544665021494555539526785896806952428857122727004292045923638708106311158085122869103136456238671107823925664268893944387960995732862198782645474828656071031036055029215907069305058016526510315519454136907646877133449034675869145248435495808578092095233342483517669261206241749812640845513423731174647638451699339729129667199080613032111702992718693816502629507830441476948962220648435161437681329092359029083153109129210258231580606523095881099550564355604125596921955239531502813989417615235659625326343232311800014098665939908326070416775767128716107596921226866258641411006418607449138973063605422125062923360486383022866493705174249755230218813670215068743024296546163932380675957088807253644018189226532602617583081773775233743648329660144963035028256582495826335215806206620929062817359181955449159331403038419018420772834103012196998809416927881299082972720755226645143339641941128158137901270641743892585957938525930987512720476927162063162773214246127685036620594148045849875161627420697323097655125198948551422160423502791880541093627563996238077807144609118314377628887944947748108219337207757160620724462194211913218213895796386719681478628484330560664805095082730348903354297592053428600127263603229643546726607170929179883349395623176445574752107085866608633294838292037658697381488475523864347462942141720374463902673416892869053898157113188109662279767393078667960225484639895056499386170656940671201658137792052815796055282862243714839646260118549265443349127447444585882870627491451233602003218912252097904263701791443066936203579730515333291468259407007260669307058990343659686463350825140833314235204673342262546943391789519639870328697054105929135578867754900461884894077314260804970482181801681093477790914594901364839335421224807774509633697636632965567323114589459691366674449182148197429107793452008396012865334037124752214827773935586276082382776336947422558036142753505497318947070759713667196649838485846850087891987091067028869574811610207867663841684334723328003242120921967445419786655486342873600840412854194382889749947869137378295303949370634127013435506812495899358317625625010908191080392350015631354219337822520085341699975433970824183606407497824348183188902602407081613420263736890893112014150239467043259775256969863815632317248008633168997941040633832074969265150026175657452035824339003761895503929493411714230555095993825245592168529985445235673700189818239145119773201376803311042575626455059024369383540854944539836529125757332106270084774426931719590814084778692181465752155311350019598041443899518386391777801104962931406953725478121986757718347255037571348242286350689801605631929587464175494976089265753812335865532679192765477183541187924374847949150859483719607984758383727776879722004635185441653509062540711351801752088710992655269021097458979403643600402387930118051614890630262744962036453133493221716780481336767373223575012579058251919516810953514243667009583641656555168812228878004478082308389630683694109604090612755199984451331704006875238365636673666588007006843396204273073903049034637232706209633621491204455488041411972497211499715389959906620727330420217051209836674267369200490782248030621218285996626891107233212498208412819532928910776239325605580086102213529337790615473114383251488077909268100124309571880731925297017111488051653818738122024293904836089708612026845228804007959559080944834078875235780524785975649726538297447603059745086241542198899126240012225572844105003685651442716013451138982639377946653260997114199517886798730538144385049673955168861576610179913726222715748916319940986630937513862668215878985940889989256280748085744178616436535675004424418205912305610173977387328632825974262571510655916179457387691793903900861738255814822508795476029814444238768635801811601832657302965484041091010707780730591074196010005521558750776495207308566741408904251421136651528918199370438542729306494316015975448950494337246079644615472568971630593111708824043734131568635953327825682554557526939284771723132989092535735712106147826779331989802906087982015876466665936409963011402738291666288312205600756026168301783587319990340678163682875107720776370896646600298603445565433567505373846687416265433264219904881568013758026916332971424048699485324634130616290625200479250301979606562953484596900306485027174125563977468567708243941087516769626172643107215892902229542110536230626255397700092922440535290471278527678422086107771777630411156665798128766985668545249564593484860922603700335843830247315093926009626491823972086948834108989250127649505133047927147368750282013865121055522646643897079013895011876282507854552491548677415025812843350541670161900570055903167821970348431385587057973209042651361744328481648084635483430763009446330760310202824095225771668915362403567747891085856764214056139067479606480153250086774542506025529911682466143936937810356263882657292433013949821914905250172261427646746682359487569092761160922173930683056807075932074566373686018698561747719916033245353164373416025639339606880203870492150551935346001483583147522552920886920342404575781316543282507931981488425015842986134630537472909694071055692981184492843212830015561956994273343862065428094057364635395434400288988475043899042248957645863235345478718138784292643377564332435546838696453313512130993983128513316733825703399008027374476263960934934014937342845987154825131513256717588179154373540883625636979057838984514255694620786631120890590474594343045725688763714668622468933960232914298437333746889165452200674509165372324151519680874587617776211546016401259129075914543577514616175633183727887966697658206667680688194912869008935451353787820356855357823142532302718220416488987699609254087755986219593524236607990527964949409457566117593954728898171065867103319820100603840062585667857662185416828867074414155607578624149568429927199772126020562367476789675066312355998784674525664455061636441409912954230316969567666948566516629622381286665286723523540869160932893762608098932873850225443772876203554571021455654062081633029184558698802299504428675117717424147596841155084087605932404737496822239727923592347083522548641833949093098475831284037550776151714766704069829363894040521787408668205405844591426797758761839857963017571377185574169026945515097846470991612048645598793511548420208813349842713353174343620217538652850246820230969201576655268899883256379162667879589577925270259064979758500960153037645323839869737035102271354841283004621066737304334670575519487861212835559589146833589658782820692378821085636948380569516528362395571127843762105763222112707825980109854133323046262766344389530428100825486439274645671742317337504395451245930167736795129848911567560459597189827175256649854593625718487177380906975888138781677699770788852208650209645301127450712181704614406401703857850726102373080960716363193615521046079478620737855563985369840057514743684728652731638067045483161189474378988568932743022914225321116143820510379158295746474314846884820427144072966259135591221917779811683547466252936577673218935662141919892096430692299507114993945694678934290070932889778325934125369575442975488066694201708819101575628308781591619890289190628606866748835048912957906054981733160338898882641149703260939256670850954792556387255374220232852015185016026069997990679280277492223435245498138167678244803700888710347592314083485045204560836502817428118091750732212498192986280854056249616272709434551067617995082133343683451437684302972636684046656118243518359443963366649285967211148744174134697764046671746012296420281875553346546106948988159977574160262495083977408401512428889614821464186654787694532127168762238264329046875883601035222663371235962159261732057967290235127161919808296172288864170986624863720869437089693240545657753170727162908838098843974865782118916230872434523285982495471701826159200455758352330492731020627419822552189768584594359089222440100977482135507297302559667339782486905160306479906620364123144979931106031034116148554462282223362963111473563253908269873635818678610022789719303821662730188046093752384119102958870230028466732726152103606371579700995301185218693866683257702776305133587036181917817386290543111927285775046025771893746213071986596740507574460344576961069505612752257707752538921685237833827017102191303267049865186298736980814625817746345249341502633760993059219716546604220835168324023533349030348791411413479418404343709677818864429587476748492878979015712100022632972603510277953680513947528498861785390176524187610179972781657641832980942139035187404465111829413433318333298044509254575469992356708722836597145003021876226450752848351503278666009762636132083277920572969376610034692681698189423668562904306981416560900232673645623353821289323816548998103627150244106905902557988645117537627857563033592650476144314783845458182875996160994519717937936112463783110892422970820981695229652109943083730687606830515329849445336815159916312993552067710479061719799307344007061337807165179966520133584055893592184553576950073847397895599170769146015356552064580454153040891878778801806506301133662187824050126537438751515418067813656819097709088659357771690343301005500274043123571986439496347015320530929457911777054271736656335194614573719487035704001520555350412249464376386295699515576483779724164241067948155769388514899774064875646492107956652461551414274069306163775006264470342310018538878127711189051192424045267547609639962944844351944223522387926150515948045393383390138441761739649640852740344348852228513513951782664532172729341816653731301643739192148839664454780853177697296635594993894636840366322807455633040964953371623388222409577728564192003365580712965144618244188612793222604391151382901371014946822622394456348354176480488601357236532457672676424077761720343864273146462931117199536433564652614564288676286527922942872593764851605383991044415056709713121911539259655205615115322925729779057133219595131145624565125057460409907113613087969329427715452744144564847365690185853279858155468850484961581053711146635067356400388577790099332153869862215402544638774816501794182862312357265204772488037543434501479422572124014104401453904502569742700546302104735627235034192094260444657771500633134947396188581118106467157688802698746402318613018524607289963116690572369790548241525737767174496225024379789441371884189855233170708903629057682225575344473303554565088280855281625829000645944974722717757117113140115165999163366093653137027743422675445402961445788900489439278826413475930630773178806343148605523374035162908813067709073476942417657928859671396104832925209995188210954277936322933608374567992019287988096438891816027912684968082933657436831344147298816379280021656944639230178235042771544146887096221886844177479218009163698953290640206473468687962547054742898821147745518608561538327608437526036111493962094527092152425719528689228161985087634351253750242396307787126387847348989550590844526400834893558144788983767207005891522790679930885308145363376525970947569818625629221538926460261526925943467843367562773902131173491229949683635915959445641980309578916686062566707113689691144612773227605261381257646300502977089465399980425387779487280229098206293178125627666636516971390184006016986768099550615072044810789468806144702983353797723182768517832409082646077079695224186375485332255954057722026998229286246518179356526883470749971553872090198301694045623820418500496146440664135415696369048026441543231623864960555365567202249001776800795249854526730251579626289768979691916093551012207485498452139956316519482014194121607680108102687441077547600574879165921532294908518190949981360734383097591549350882976063242067947571827007990622243814831756111868083696177450064072930335477630617111721308616431740877350365289758202333542331712449556283660896943301473830343314814295640126244267800794616611644624594370683738876774580820367509940939434035967714681484495979066704921394031656773345510781409202118704183454106378974533869118242184637838753951331092841422673520733447955990426994638659510642471161772544354312297182563316258597735574321789823646445001007780324402249032311264989244105056785429662133086382083228312095220414800415203726239237625452830872653179451977031724262094687649272443101749358470722757162233351753669932400879493125604504476189775674044272932412235109528804248865498915458307470473557694352878441656418963298862288994013428632189428360913845710843259936573833254628925429272361950236569747654898549232876513111102675384356042021281686155909658847368220720294279650002226207629654340825953261345921294499028603552477537432109025009194132915307959247440604669103154313235039491184770965687876363812067795419725885281910259952879251786602343106535748640348645380645063570063002267575224475460238920093833904908324644210739232975236080425290624744537032317931369089956918706158677733404579912761665930115686255857849422794408481348673274917070516065864738416361952922273263626625170910746340572953870620323438887970348817047435346178424702032134489269962299236202290356210882151465420107358621820189422761424019200924786910531224853831880981654818503069586899732723795694378792941679938374382881054373791370723412729857448102399380330402817992016352914644057358335707725899234599659786141185143793625919670976995492357222935014552547726801136281239507207164554569709210229417720298700758088641342448222826828430627104285163875861163826657175342190861750924479940297034770576634388008743192939596644233310863725527059990106463219639171320129929958217046672446982814264966019005693240450737807451206686574801625720795889479738072738014275035155458749671892176775698081767901367530428575903418534751494851014392120895543506029374171875848464478868882244839296108509017296842948907342687995578445219195755110196830861312548322647900446519103073933696511034708708810387576766333229591781944495019125095151751959626530438043007959262882722100661353869955105636461759256817092343446369843858140742596618184738328300419947273236733793417734414253402914602163912486733859910566862160229826419216473850059209655076500132425192980677391176347190925251371158705179203389449432854253778433352743603693857192632478380116507413114044917098029470478129890621137645829930196289447248427796731521327487744325026905951930329975056511992994004311957951217841484961164815593946081519356650095965649406756812327238492415230437684023787875917932338019736366456470829177170524125706953509780227499845140597859077295340966540783341715171564303710980543345023116661949889333192841049215927088619337287415316962390987993460552697980059831683745944760237133684289826067571098781867026204264611938922095095694462376938163326166099755553493393992165597152113425763090061639752134759299623903367501411930307091539530003130859866656604697637442543640167474526639620295843512966175609128971025292215673321377722670821564802122358785076228749253227262476245574777265370656576868433078438312772118632180015873215786382127835366746964535650048227129001539985200314069858279873378921079591081313777726828619585503511224490440221325899675718830402751703653976271320019954821380663214965841872156070115317321225213326062629615766116566089048415980798600289882722494841244384323712299992770814989409910087833091349284014594329670156232488297227554954214353433134306187593041358604018749404989395947783059091885937751194896491292746341191388901408102130978772224590663975136516051838953156518519390060938039135684378059473762529978187151858242321312595429666421033881803365184259943844044882784613611521095217742577738643793913250693265969032505298631025952837776784159529144685469921067792907119044417368778147774242112536665669414574079604398976767651071766929821429233378177321114940376229290539208414553866215308501945471420354075769032466940234428090536739070874579128935520335113294647290125521216810087956975801107378457804404510795137221870931521572308101628119669924346723050612667860597898403026818347880474755862880454364902495005372159286147020829845001450157464858781033734156975271179072493109438212641017873501073624201707161241229386375221467455626295791283316266225431135484903338325544111443031759949360475042692962696265016728530873670494906858360173323170807163681414553791975710364791162993458729048575803930043059900992266526901309919332719152945927198333078524505258089298037337617340129989729131124497767721673910422085482414116185856070836866175447885177723253755920215684785345695578197116500200179695939772239157512339388279648102759747102663188719915794995640906763894911984400830346490788777929039981785845452691436774064005821499566785251104760970854721210614816207179889773382824924087528430697684986372706409953090744138789554654994398879394664772760633707737644859223495915229668854185633319862544995935014101462948570818472282151403892480928044149771169840011677607178526802609015591262503212846134175178161239703900604246242282662611090846283825492848654700745178124119508621166341043646361303421437081528060180540055882461338122617300322747808877604717562830197550303013938994691880813476400718519287147712573814622348431756997645030256652417434996288259021318579016947531736748831575022543734121815855803778120797827449246878189742209121018282349186895866830384830669179561511220037072404528805639801032096637404049051213987889028140533223277252556397278752943096632410473193269483324014937994192757233988794189956015401752252940774063353766334925722064577006798192252600303087326000341498743014085241579641917807589586213562872139171360825546946187466359938343811504860841483496932464118643101540765806866438725209330485151569537114202534556389231217478901620950732684387807499633666302504790817452137119332919628583690304143305123433717167812401207106757045058480601842672012451742701934917717641749178153026674552044202482885100105974543866701909567693103906929546856510348036096182774647770714400775833664717547830692792832007825549012398307570699696337566367451459522615185933631480276818958187729112527078747037481895722501866824371243546652323490482009618155849355272202040953090771494622159051324051140745743538240395392261406607287207938447283879747772059836741975086816408429638295667695190974671548790210887319303503005670326157700241597560078451675328945801623502668163594121453030210559952031399201492049868076274924022203721450394589079571739772200670417198458321238610613817265172281148350723410248988983889206413164573253748511083494318428997895101522014826179008128703945013238446172681853590787045725582222965668124601940521645360655112686157707635027113492085478857461311118784895452135210990035598353935690519677272588430158475273443051710754887887384430377611287742195744388074084037496360620876512698922923633444082154013202905637991130662548545870449352324258837885796115011062162181223321099491757449757516637973261187202733372675561382751657305391399973812861721986191897792265844534678135279918780441371898413615187917753613108353761571082754533099050307862897372614943238741738306852229707989495472133894798275569307013813603497151530416125273739619067956588970511114178780302252320407487437010933821744394764923227842859188294265417423526015681678783864200600612482612007594787430810101421709733492125473957639348314943399187321256911856897088240338261320644515834659695649275639416846286345166021089252521436778312242586589974604286509533081801485482865211871907302455865445824140192031509850056237367683140739777151734568013135978991445887949014964074175698520653637212971442828923629322274668876136757133043289835197512871279260243066789336824893791254361180369353158163287762558174631005292933181872628996955726609012540891409878821584444474541647328609875223786132161193616496614231474549785274906454531192848213772282663270262259818535886977896655261920001194934111440756782129208785039099314195970991813788303486775113602490389897784576935160685899270229245539470574410482965117248464939409878388779382432933800908691053134558464445554613627168048713353044797244970849782578440845193702649540437328690576593290184676113949162965630241109234838395409430249309588586806739476441932844603085180829386426838002494067834655552844817791197591570559681226801055068409020311823939695993983745195780286879215594728401165248864529357497665480986109382808060874439180138933670037880844891769898376590361956057250586771654484184309478300910508294510878832310354360083782704690362749994747620147343624054016988959429793481895589347985481383584113666719659309464982742448038125054346172762161985234027856723000547046801595448397941946579991146835533442130274419998395812308330599295813895829399974547634120132395877681986297854724218238301868256172310677111077896847469214797902186717301846466031120095227618194398538734862010193054646020886378674004829527437541374599589132700846107900649548350265582060459016010367745576808560511717478440748357610847210483174983267028204920372562677684580750106576034677750302899060776720173466979721328843027938475758354113436649683820322977570813203097279188335637813440345907552935851498862823972479710748850421786211212109813417354307239775053600799983837460382287875414924316412280135664370063084834268369166136817939205318999890117645784036826150115748918343374835445543401185679650558929238947542664666976459865449147193895543136302915216142852064348845811469087451402317077278314385374671516276364532668906331806453630475519925466398666888127298985963739801232027434598374865067246000081822721875157166529943593566224071098385447342609310927499340380383059613373103455331398344870109229462902698208439989396446594616744414927816555652452478193437851199040603289521052874598999116827069088072727960237479332494768303957360029799987361648778693132655381791183857739691371957073772436370884724212147583770292612899903813635909937682512644504602935854962844791611984085838888664686786741795671152038541278112789768597915449549574147435813536027904958664045799877354685255283007485631194346635104068400138402547791518729824527869174410186683986185691046392285961405887961957836433760289002127449224267022449499003465047584796141926813905981709245790734777893860294678654242529867961240193558347005413255492462859198561883025256447815496589930360636969770509432366284016892113009865985161054369006249120770648762800141524903547948505410339560736482138079839972913897341713823959356196090578949819651714571495430058691178267659583577685903514846265471742155015991608354713153816065822882822514515498293463127650931088753016263676321486740297793904092912801111378760393073499844277152509167167887731139829920669658240735166189337360694766620905149114905999864649625157040949595440367582454162279794892491114012713821426824157622363093464716588993127216490509502734326871542792221222875431221444335502134156170215118754732772217359110658160349479051766164214960409173281215755075910939788628943227870524198097893127057250266559074119541383261413972214787857907120294917909207413899273442797923207563441848620081412409113888782612275809765101090505243895876935443975298072962466163141512559734656461044468669639830834775450523441869477719143978055886095148848484437107935348888266858083822301306412056860524319261145466043722255762556079238933871804774192383739669529412159840086143043486893935774327867375832244267269286485464720642838662612518627051645475532798421365847407141201081456069685260149717321839252354644477883993596407724877169765206862620897599976822215974470098663876866563388705437492598567007942714353003259767780870951402961160327225501188503613280899026719491475557806532133178406886835531384492779505894119564417450156338528873421695924822854503519689931181086783586060829260174241801811041695203757479712606422973495766969950457391930244563286012607358803166667794275015111034859985885508447228993327577200835171036071368637561758286644788912035325101212063084423639718477112558192485668235353928210035107336652543761280867451593897753052485729988747359882128359397664379227176483461411012832862735791948470502044526835534626950386215500792906439387933846118925320626582328183704920772558703960935736170370460550813701404890268884265739961076262795350437270744816008940305256888625792022585440411374384040111514061373395925035970749015685506311897342526244035100595983196406689953833868989196585844678135573016463266752176026625281253130731934628663526181538384546868139875068659436971381361267530805181886480944466788698023126685851522553883440008022608449358853287717614116911610489494756329482894597310565472126747317133980428967176997467044881333326759865033452745680617752561426345715059521291722702080351020598021326415743308822111513181656840200963569322776919053232249656509137907722094801249058210779591465581252044533515623281360081381552424209517489990486537089911069408906391376933772426682737757509983650880217900992225871643082044588331041780263211770136660026544932483311066647599478989311021271898447051265051795104802975037668948720214911565214076275360349837172966726628067116385204969490851609665664346030589884756287456212381029574151137372808135611378134625874127845122202706980059580688433618489796423231227030437605490577927615913163646059378961491295001542003962071833076300758400253650404531204624929620171558040292522240318205425155053967635323515467814599470535583482364464485376913109627643465496117636520034620479908293207945442192181849795188302760331315612119383153350511853281440919025085158762850348568144025126695339636914061773690243622214446037093339906928916308925691186753492911255379416458231795852319124900194456233794484078669026034023588675265843670500276512984301731388439836466213129958514598689860781614871472983612592144180018541144297370556202066276844185945796337838455117421571804480066468638242770317326431461140170711517531542311501464219867292333012275208709069731236755394054982800758558551636312992551344299834700718496090382417996515654304059054969451775990626151468127450424164541452816975577876094976061861479930671953774367508845895646666534252996975494053108100617062078376925988153264804853926216775151291071523585520012721484608388587173089265325385354869534935809145219841084048533667869812182446122797877792099874830067756810646541741652737944785607597036246701247267569620254531124832757173802392297124504903416305257670770046222272327054531168782817469650714869829243095046777277160343994072741809912301367584605926858204900984048203034119104459001106419048883420731653385911725275542998285486269420319178407882067180103023856852735525343472581857084642240158411090345779776860789859724137601055808291445123886978253491230270942134283450512901847659620948208449528183487272034286047036238788675254575245780377911086673189789496943024860681244703185400165548310693980641847740992950376472027213085039408320238898006769788587394845363233050158839687756504892453453306368886222467673428289539026285353473009814318443076903075258179256057161150425550537008225403616419641984701887614797975489826132998462669364250735964068287986601035614545123811877717746580037153433023095360846778099015886657746403041905075228976035454624203524770233693974891455862706090689631540273149900317427845896953886399405069580256740221183946581796968124241338898027075746759898265978453305070396414870956902564188735358598343017767534133735683010065871832014860712304541664764895252402745144022911726918912609703197079924372736578215340965765842705841028405510938603307514682344538380428114897881473804900773778874023309543178687737083220760388669643522738034831771938929361257298279840343758606135277107034672395643690900353595193461465526793106497090251772483334522952260319727790893720922405811157529849699341986225016424082428031715911206779882853656850694159082065463787433723245932345777596013924916960388606342372874178104172257015648253398768995609635117324023487232366232815507567465843631658112837707892891380209600894766718233581738399416495651998340713439279239946451298072999267692819115353196048795905116079800954856333378633035411187458954460657867227526870415339946220877671530392232544565318056793943113622904946191581678484144331668784307420182280827759464276715740402980129773364769516319131513229004367054360126186610611221377654819108080402287782097839283874858288988895669478196057987974902292299880700545379112544359300721719729242365704234926474441495624430257978863695245990329759201855672831010615072466833469318894450009372369155692875431271112153539707272172340939467458108730312792337361817006714732792551973834345132656218394641994210447361658463488901972161755518202165772594990623130269829647744188157178760098430298175603059029091153100074424206986693876373465495593243906899979371406957200134805688777598669791162609601857948008650007285153595463055915509860996144864577719021335094183416442171941781632253120873733763849747198800175689652423715341544884409816525405464063456718110277768652456331786924795407085896013495903150472729981984885584054415274490813017623660875239603670026991249540649569571012277034192134519318551446588000283413974705783138810423078344525380253274253385646927585756045054519216720819542793672414705990931966196479573725364604593859656535911285855023128843098599125293598202861404759557098006650400314089132568370583579352674245667206699815518083104079896155210263430313276931261262298404822184708707166773458362099478372828461998951044830822497772208628091101711738641217789409378378013722821495402157184708932373686819719724001303777840814770424292852247622961013597647547035725901122145660688934150849752321103453296225841842408569668626756208135461757952654879340362088190472423263712989612442978427701056117826745932725899780015351306943982294200525391945345004771520344137657414919845457728980094376985345921417787520391115277347633155668407226013999704691831029340793743840939098826097807442809209677894220475291427251200805260624334912881257855102150523726582718809829097037717358005241717810914023787830845008237352851354821690772568542749913912025643815034893046912196356440612998873609866392833079478383605406072679999181862527360079383331268682646408797441858657143731063627784163674333473290936609588819444710768427967458727596007741133073560248492183195260369258266205720843167228856196827733183468807818318856572146412317789878062697809935399615881455204964842643734939431883083993153436165971674175978466492587700632375716597284676401248194896312718232938008115160589326414538048704552071448368371367139822199852394626049605832960308810323718333290092826695865572551853323608205296113972329401730603331156270062238015218378856267301806494632589210567497599600221403619796543825856039046041528438982839751747544644687079819838770253921433610246825649923611223583112754314084498474416640768709358905483487336907252727579890899541371480203121138797328264801166303159507467679208423459123474390003974008719245847488369204576860911796868922363321212282215518215881589018179224684435802455666161512082625374886152420124468492101394257304659036785924866375126157999713002621431725152145592778887744653242892219059393945525566857887442121545651740551219662621154686364257866670379478688396173498453473169339060052475765760823461256897791448091252621020079560047180689066129461153771836773387411326018694454205961621233600646566290204758810178248495135958512759641641923848670619743135792999821367389071984241034517482827012976174466052477133544784980269029990611513766639325131865328516262132824851889535405720744824327376932912508708505969501825613811307979089827581769329429135674466797710165467043987188263930833971656776507326142576652449664441102192352122295645302185383002548562947612052799189638917411582293141800768175387566796416903318083743721958339035395598587825327635408179212172178778759583448151398506329573038671429629060510041841337184409831136256450088342032680566605223797231355382286116768081198833283091492864052911501717775878722619773480495278925088482445575204440457138590456407609366570095485061802577484033714574125947288935770716066595091815637426682070033327371893240837652381366188990060952121764305926779924370029329363984564406835851133663155244743968145292956300220841855502636421941230236614009066735569429673837684002059244231047618468728927102632711787312711761070783625006012328719661283062905331121058051749722707042331562709178323158728160853459393985003899558480759950419115135013297674087512453663714952660915728856292944624710365432073437941434753176893231065822212282776404778690353440199373416553796422495667493947690201767661877391161214978771365780169232214465206862191365802629463731958564719745680335351902019253814392853034676111141572130159148773111707817297557173343148634000876971363908698189484692347128891039446529975949222528483736203114460012917257227836843161383939710456488525191423751347421937060024434699467243632989484016788703990901240933557389503159544480867320237435383198881503800458005652499778843018253789394841774209365066233571205025218046189946733089310947977154766256657598877855345327938985047679071717231439141056893652678168118256240876749921038649971905583012742004344773296466411512248478201442651084149527506459527087992199176165881623959855580489653745263322291939133118200471469397926224259078614189527941866696199078217852652502059410683025761781214416273056029172492230830258409170786296132777285573189121903603663228492925679357647502148452786151901823485372727346248753627413010998634377193608344171506955229635456703685680173855129750657862678212770129733934725461806515530443198512872840399442645764405012116354828329853814750833366568702517818508968725535992058963745662042387603731878944034381993775515714796747458897109580725236346625736664510243700694978223657743131292769215882273701466491788800117289245512060239519432323797076510976206749677710364489277909611776837784414132043522174754253906571575638985410028937344985991000374922038272937488835263511090274710402531627668952171869845597163603265931869858265841705944342384693538264993280473110642901655100007396235222296899684662460240273505310167731837449944992338466882490740390365613052361986076819332995684073451645228527277639633345519268378301352835640639890532781591027109474246911297104411650566106072760750547211995510193586284914074843960877513559960114949418123059536559332524948468550455525447990742434762560535124684582485634685142555158190551938190143805356552858420879461387296297240840315973740875380766883032753554735124901444639676802244534467067942188321977443524506372316336742214676466683008884390893590578428695314491234436469773425885040910140939592722405119218104702613741486515951083684328069581111546739623059131035409272385540997911515189100932750561879776567625458709167387428354648749110226804429425817961743894957501886340700367560126058832975570189076113842606220082456164181300549532822872066222579201041765137434491100100137613352025766357405178870067909949201356856917007337073379012576689414082200731715771417912307035156474329625405011769373112620872465927009927703398881466169420106170974535033448166770414818083215341719783372539267102772839499322842866404990559749876823422857147320721924256554901664901421333860367345129720397303949792963993876088982525296400972310710185660366007020020354416932700522466737748850597013456617107016616557552935974162922658490910410162470566636752248209431966369676405091767890170042171619203865854080220285863401592202970099501808084317756183488348905826178641963929711600612667905088803347360642070132822955218405676922073123243955232929983241460485295753576553974781054656538657134277266639310082690152902222191942221611768498456803913619712750505583738604917949420357660956188195887133893539928571282686760759182262039128770752279751488292867387873892606157951142697304122548605780855809495423553584343381442016405883484542103144150307278868104036520602296610737557045119676997614741503356040221606326810967905736888451758179925258037286820798781699351857625186938128055807611913223002413764154859623778198624254224062898802060249843552815035808706950502262161926700886874489755572042130745313027406637432700207369262320580655082151466241618818720149461674928792636786300174522745114114845853667962359471860188215625294983325453967139550103251816530064221585302514128195335262382422075298687615635573985580715634041974513305331863475403441342854087369194938964580056975248245210998684992499986632684027484696913800170780227992947486187348651603209202143135043360152540298994164996228604247459370084744799436234128701020164533148642035467017256194483971208022642381713216371285800376254211356898026128834107606431039702567665575824890420244623308217992099539239025083441787376789006747029946587514159710460155462929024189297055731104120489007479320677138547869999777711940115552035946317159225607156532770770436541924755118058571955741432028186106970354272113617069648107260784591812941891562054262064595114608579994206696609771010156408605683194306828147195351491310384656502722915898837095995070763582716899796067424750457861688006848838411399366393769245578379662123328432790321132608763001459398579341085995595546611316535086938705268365451944273352075528959260566977861412106258119962746372497913265711687421098563984990756407308725506168908054495111158593766623820969979090699268794161317580513851154881064324780812556481926064149195721166235468510390922250157366253679991267465475521143118349213966826423941528325391678678857140654432799133432671402429773085738475099274116429343383140629598739406885235330223047044698111434052789164111619355131547362161580423722815809134497988712493244593347727290436562945843105571866811389426558140069533130818163672548996610651259617619454198927886506151330313050300357031318347467184174404536306359978120101419888297968443823791552381799826986719364496171236192477350307461854879211688177749824501942801657709934189766810370086543983888878826848573701773088359047831365368371195336960235120337505244767090324085278436934906892280426402302381143473957370861440042334540482905256636034969882653476740303962677806549723879794087589627497459544014737873702506501273713071462936832835468873763450117820042637085435594961549389665593791003201560184084932699080866586049687764661814187607356091669072864165315261593971031824464712581449724367702246590921300003615493884649405837576992768723139853241696903314744669421798091429688183489053471561818280469950011577797621145343384966576994605735618298036791229961792085065544535333534564040594916859705697267628246160346792834739248347706489662253081620605327152072927970383121569216248719972265227764707211163583410344003224995386126650154450483797419211192793467926195861248790759126349932850046257101898074534143226283339933451278126459334342338615254099184104901060231510200392148085478072368862566587883941026432538959781257416151515988520223639868374292442807784917537443561325054512432733263611859817843908753160558553995860177173031424331413806829818090268485393397828227645868483313977546624989825249855544341681813857972238712727300633143747095182959877478524351785916130787501805796543868017410492024331872197473083916092385458433561524319416916727231955784638423801261861729386439805458935532941702807352672292067073510766327308605555188299336573337205507339112065700703827673119549422125014674560904137037203053662213967612526882510225866759224298981178781558118508014088340052266170392165741549602158043314446302766673802281019791347248231781777827515424538658494119693138133150477405736567005831885148034260248923220032549474783638446183345812427054228752627855290562090518695401570584874054803866443288294213650549134549882357301091347914891424409452233939751607426035521537559540164148617247553546819280324895205001758801188024578181834446809447036070252672040548652256583644091103530667044130468072523901757860059122832023423810382604315210698927148182591946292652792329893611537436542848133119725846661494055234079392519590543058245972988314973001318451746068798927615532452398940051434057336638027748759046527781916834713498856752648793969509665279757458258019442688358841705176805177773357549366743987255788504944915023789082518601592270301488367913206697879160848398199347605755107230173623946089403872363160166292877615874981159173941901570579154593540925972941620753106166784356549054728793638645360619438997146676462727407204293631137248323176731574396881342492249257025993174028849686852633577254553751637566477260803859125649730518835752397964873684853622243644558161497032958019055457503451022486910613734392414228712116825796448405217745021061109864993461546337042253145271781972840823071925160557194004134349765233149613832941663251218565767166025074001892209085344300145243939666345637564167400112479402504669583522720996501898855906135438772912749000562005919940926690887350502096841458184572638421523635557929333490122949076289557488736184341943492667813795930059649644132530903878174251224921395871178754906206810727017023567638464357993940189464063669203751772254256540954603914804414681033591158673019829017794995114051093571166348703471627007693389037965374225509971369362118022686393410424529240917430256860923229122428145149148645224046806964900751204636152263709901122443547755327306401974929053659401173810237837933597240998092160212594919195480627894989295609709327576491686143897721687190012695996211619101182753882934379287446172388901003854881617152665123095472879299197657826737148941805931155494277973589019676144536365746817977184418422733280405375942132206849299773871715769703005357322546155309796774864397006584967882095861966867018350456002053658647034443104818526030819116686205825968020159176999895232073512590357414434819040221489357512265899601249343430220632883288139463989965437722457286128320000926657284616252605661459903924440105352516036369842319114517646636951736528272253580153139004359436296251572202407584040235883762567220827442229522365806127297626788610813291719698218490044650460587420795800584319324970395287663923281116611426558195013494947173392369562878535191113632855533475126378609662731830541559302008726279075558640001510478400127890795662436632006750036459655673478847238794322393194338497147320961569769926317230305704371246219599969218213818465073118483506774645808449377958295683096071745261956035918093647287074660896843380054254549063365247240569233531327977626466981606340782269715672850385767007285906283237479040520576707518837373381466883209856441866724449941088761590784996864697148052403556875894248275682183771674562051951567867688411206203280340465508948331677170129540167076043164881849566410347290822984980891281017978003676980852924280655387190673670764081532582726515874449537486316553457047758184826468765007705418022568777122749365234799905555808131051086043897321628252165826313686129282006266062732181997640715832620921783533262325887842024469339462419247200278943781038326721432449839169670059043305468829189912520583310443428894449778691475060198791251972682647176773665461384664736660581560850760157139730565410311552113046643227719473897208170160781314129779029539933294956854322088532487585174352303804332064705812591847305053146890864336980103884039390746953371000167922228431479400898476230075177691745890996614585824552745967108762160934348929251814977660832064564368604113823250105151250209442728577810835495317458494949117817700022860374943012764945450023173023158682417708265169025784845078326818767046999507232195813240750868972423389923507733491028847520387759823787240221022833013737176386255495346125726372991806260597400851506671121918564787192605138043111648478755216971377921635406383922485246434789795714800993666688493530267845713190436107911540090188401714750581423797017143274019375513635632512562327473304021907645136656029633682235256086368474097649911802820443198790722633051456791574702814241476777949207485451446731443131224794160548147017943111520888360352943731185355212367209336412750776156606904444276906606289896078605350447592875267747145758593417419357421746086319138625170667596173578896573602470330951994094392051997907456468359528459217736273802097449934261415770877981380721518704689377267828885012099158786153658745173567824821471623101412825068805196112226718599523381430882826191216462164597181060737941697221582576963975560084089904928407799653569452740178479299466790867640521072231181264875697554667729985615728977078622341121501996018520248556830229632175250620433686086806556681780789660531397998256544234561345127982746959200970012863206798555743481063510965740508721852975748723129628799531429499472211157134794011975028056692994973265071304100827278346592972137387342950526809814622096196204787514592240597850949889172290418711730115852493173373350937412248338743724353072182577633008989593772731798096311462732013787073602742313060538716652888019715001354468592107293794903166285132522795041447372632852908899621625921563590045260456785783582281605274029157596774838931660757725272388672120214300970043052155404614586245380738569722701349305692119870144431519231564574267869697474422635339762768702855000421606056739956840505194777253264751372303640081320019016610620438173402456543246400819629937363734985684618937774921035957595783664783013701765456581181110921513739500385974612237082687177526261072197889070249009699840112114931005224368880828336892862727266928416632384725198153239919315658422415365249672920974508123194087717506570662726525291958447218189053739490658554451565025620087031249857435392282322632411902803880489263634279272099707967725404568682019610691895888328029624926789523717224265290671490652766664650062258524792779236329347596126495139448415773736103927316495115026538202832350578244090501948904752760706099262964871593244084829440774478998260559460207396636673742321097994515832638431853998725298945609740238151826515261750517353485185640978922696043434646019544299660082966229181988083724145100768640820589176220274538577015792428293078114776149271778977134896039593262288928494134549260289476972060457642078884362698642376393287376308793255455147485403072709265500126048837694582406776426719600985893325001141603015070641050396827868206058361787232219562657073354761373802466238702653162178816993663780648049746873621107598165536315901208700447844649658408703694487557896744421405066478905262649947750986558767861545564663004261247992673837416250274171681130934519256928695475545363043519417059168764012482653490323511417120332599268233409669121554579410061527011540415091153580891967004400899548859471969730608866068488528987041908473828468769860487223473504004747169368551714969535902368235841059355443088137202628171184201358779786581401138849698299403440671060553312203394496254270056159059290901740286748552068423976012523634970851857853750331757993422506617396015222525728146799165447728655560630975572336206260338635197327837282101064412689770271632724508420391176873340478284631067789535647277880120397217976368917499444179458992307563408822068437078078196731694527046023667987177433791350545450299181645119537339322825763561826412402328060515904769356747998904197791578468529146567666419488696966849920529938319565497222595023600863596744812280941879650264479552883481756533748872232883055470944636044469716879813422665413856234684854764490840085828026821578872105699040361704014455184772324413491062277081154856744742082598912728391435088028277551841996616298015353565014322388714324671646717520007352905835052734820211113883729628393378194394577156287881220828512866455440533172869153064547082498474984305637093916613803196417843996224225605850559988283078612275124326578635150899955698943821185193266673000894959386725234258172235324010785992210680157476195549276282893438425360277139106366824847449153668759204656987124051872791020502396537982610554589757895483096532169872319037567050277723417781802672390171776069624081383932190102994478696858447398450946183907717252019889988761702044826488234215274593632570409576195156850418374729003714669728173513092865758662083672399465064486150767228522798720877729490520080589023490098434471160635102756621566243520215287923132335915491885739786211539083884270328973349022020192691686029846565793336561910204229732906535346260182476555343238530858747287851985478526920870723597577340539982563433625011502631167746798536831206207310769651233158423498070002087181262433187088201602552463636436694077031402836072416012194987681670487956053883723480552082689957223813920616033251043218633580813282535633537483652079034898842290517071669445949011513077634039264510124085620528269752245670530492088938062958218640095430551365488801142158067273297188106852138760444028053325168685476044221882948641878500653167552459574525575171270517312095614794779378424232256500873432285594990641377810286567583524054574969555666404044118185595001179174220396610017023097965008107185959829650210584122179082485454406235213427169574353442928424130944008738722705861855025405847492569501416296530077765670546630057654542560333308274675376001139184121293054710578421419690460490828481456187799234623734810243355323285107422017917712373327690832378039499807538654691806848106011737606059359213256440775199152857146678934744413636269184617748551813856693511292247686179985232909828144851054289570967800130319786044400634347135295570640810798426409429549403778571620914704091420233388880465586092038115151368950461389970233415153940780015916292899309917362052434790050553954610974872290727635794377708994863042057348758845435325485273832061396390399073933941570950383567278445468722598878881422659238030615835670151245826794061984984099245489821604763279374686534891825811396806316979613241930154314492658148926858110310962083587488289240561843169325613506145176022422128898910606898103985508036644428752669366084876575263807030539154858511258247262653259810764863829556251530449681190233607253435619760469334092539010019093195235946522198652550993097842802766215167167152273627667264816868671336758893412378790862497606102097259117081884467465098142500033549508948883729662069548913139345770721505691165078011763084969614572564488653720572024135701281669936061838874093111350162195217856305152704093525094858228540563602047241182996404732469130708103384224791782467077368127841169247551009654374274769639206554211635959915438747932277888642267632158612987600312003963192105194216871070405785715660613297567033492901490231622636539084932814783827245483120086358349481026282308533138370948796450177206015571350946085619405490184610368549844304681972664438390136964558324987418796835404065083587304054788397712851068030547229579983265320841110379052569293318578519266438397158780245219232821467960565685227856596769497241086452575102122478039302275761094891500339320879459063451026263041745572120108105220910674113792533618800457695313091937557215543694336220393591794382931242505735656309018265864964440941533688775539927084907110303376048875139079100437001430013084556702262649890421378339952585339726635122779964539032431069274754735272745576816263942089215954503021941821289545512286772616637388932031886280546916011019192289592817442465803596311529098001579850589087764401146569622406942556629572867699758622118846328708073136735939465532334461134833909327510905967025738634801636383755126370519629469728938700605139874100014462702752747696404634252949719161143718715717682321273160796220840122474508327043213979347761546835883377490387349454282444011737284175659337103681855631465972008983879551957033851693510813789224701017443878949349122632810782654128738988777093202885396420018480932461922509515487180018180726796969023955708921683369033057256296335817986922651224233523637486389533369468533287422629335905375410606490099093305542990237182501471901462621794168582962987963744278920913678725447033688296640895535915972866797839491055952798242127714422833055897969314844329776854062728395436267308542077418631904956540577224132032749357784957743380530659520758510267021028315035870753065485582333780978265417574041878096535768515361240850373515549111541779708360917945235663347529894533570807481048619542915245893540567668362631957448813070180628188973473227653384421730933695896836521093578206109207036403065919819467015568771364537966990634083004245780119022210068809862728315735461091658634346210383626021942252602213011891981671530514934790098189703258453023947411150270792408085802933929961685236746178505909772647265096264636318236092317996831653340320692713958466572977075742447491986080015361498389164372368448646726998021203971405734121206339463076799500528015570655357852346648081928061255469499856980654375187518030516828476238503690278162035384640438089998556499942840163923579576895740193661155259845642302956599517632710668783651463167883704366035313147940438104088975802070084996260957834782464041159852712029995610516701023087872858978725439382163172080058320346326254589529176428433513840819612093399838792254486464266394470982249215781359438252566473807624314310305637887596436290884659337427888707132200958396594071517575344215600815782313731405739570231247673553763869929706572801635028378578839171571398875834389776089246256101459723793024812399128172738980173464267920348011294504801534297208571575421725963729802958984265334666704616662049573568280656469319400976268307886781211639722862908153091250687192190661235508481045872975326715299953097338320663929837466879398665057863542000555769183251636506160016976770627461855127606655937300865892285660266513658923430787368990321417547055823344164395954583951844289628417931171247291615032545278037824127657177164987457183059871087104039617076350604142266760240503156464233943724832221835384492296487110947600723851975515809924392518694008799918406997046227661393149338989279219808630733235391110566309557113655437735248923957989736297627434414057969609871415584317308147208828573850349410171503810297149041700457754052114602347519232602987945665792855423829334864580602760264794750620246329486100813280672642725878601840514558330517806453774063531810334697323840008359613627508595079414820202608442420903726065442570699887998632684535410084272890734076154365472089019109700583679019382854861104634435654776039054005462200342404576327758753855812321196876363943361514900679538055195413832549083409734616248466706507995298912015410365382117092954293201132067131194325150971426100787285578533603194967057080899741852680963316186602090825270629200894544028832463204693153852815091846638050850999487567302769740068047761732111390072462666021453328624643107931779938213197181837711635405356202839714874576419971724303814463002729522343267815639307333110925950341702202428223587951083502659423768213460250547466863311575268861872788572035552793661477970944746048247147854024537625215385965217404140722408374142497024361889646752715686171300299472671286096637954996272729660452826878833764818798154442004153007996574334277024184490249093739088540506026641406054543904739879088045635570863774801831783285451716585722859042490342234398160893928639914282156025225632170763041981131296200435502501188708054335333036786741300196678983141018153337622439703181138093723425381004891413905727799643759022735290035392885115502593109207273079888428658715352939637686056153350370995200046316351287867080788450300365925956460071697876801403198474975893832038453212956554717985439228394707493678009086844935772410493547350088063837036748565718119337096627827510323701384208290468392543073815911664896855740839001129366455448476748766830283508024516138847492895223150931306481515113722239638882881014935914378516081849395701138663710005939692196269765708828050092996254288464668526461394719958199569237594930250547440386445970287276767464977476081681301131152776334181913784962556241860511060816012951244393771080454072450689887992124397604713432790660733189207554492527012733834763649035169057285723767395493619190448815079984372686134804314985141828434929142671402716269596167062642870499620574392056347821403292741678510633378702191662273710584313689431329435419204251223971424981099440001492693096716442949166122238637647804583878200445063499770962869757230615058691337668715431986877897613268084792303165689098035925980466957246941052231124192061204979290208044458687617742993200238084036050525188723212945067196390753185402762089374355002118950638009614928317219691506894587971014228974242390752566859698931347966692600574907440127845268258428232799511204821231328813435101756284303728443848403818738590480915268751258995177844550122132852508933766090074343123194510626147154685833433782067951805182906589251937888031987740147405166951551250429264122387042400820222255896166048741269363981760744309666875169952823533861322809256849741830685674857709866740927042179200496130902015943451974514124528914893706362670999687217138785435084422420129159419164535612367623551299092122104069406168734702713240292332398287076708759847608057770544981219464282076692931420542107171641490479503987517749281893719084155147496078010447463731262294664018600632339546975179302009081541670432444268459525103373920677473124659248082367560717982824566128442901925213796762510006380971505595694695501568229112136486758993008333808610165677874060731305841740976961130157107865619199252373856650099440334104031457284777735698122345869704190092150811987184673911943710647283796802218227002429720158707975459614151667161417257350822740984132689988880766260468185876603710851969753360206066420864611060909154421306815861157697197224570220956297901143131198149528984305540761843675547696418635697589795876749558886326184154541287500491793177874617561314455007869318187357921156273268392646553322636131748175242467977798971264325225427039696672009966815436534460413870699958375886080399466920685526167281361323972554001815648973440452582658414710038476282974662167827984768706652238338501213800902125429200230910654247043458681007178445029708769194296642232750684763682996277477100193394725363078143637584509150626301136070411252202710111243921449848100048128734084215077420384690839795671971418678282994503198858206907226435385146283979037664378601082534955948083510820056686479941379139541200483347104937695505141479780270631270715348633800111067572491031224344362310532328787340213611724649780842689561088657667929375439781713269064421180806193338805282665015667027052065292906631707243948877681417513992786492499639659079079226903523077614767583147267844739289787416622266545629930552674820785607319299109777262878974138862926897939863630273716219975124467511912197344794299043667220430896981226349483894852372482393009721872598522918229293235003120067700609184064067926150828465751177264510766047416834139392227029302851783390428558723423613044211796318892363019458215611963988499721089773402570629805181137769566230106807676140175484525989882093935317830466129933011706824387447106265150396581768537284950849307477696624084051955169187614515298412679443826488432799051124060428908504269270075464489849377011190383761032779757498319812049655318912473262148503142426861357533345380754157588579879858648078402963820987810643318247713351988842704231416624856860616391561884919393552868985859241740475764653390049754015104589250401577435421721887029176472812991248764252072976894366608672958711243810670837550146768938124908470399507271294083446918291919759314459666933004028445710701291964605964516155080689893734992852470726253903540659706317906961603265460406952870590207865445787849787497462641535103599254049969287841784000123974314969472323441719192612170308599092022536804491730874459415413842831596157685120023502128569536965013028034696948445667343664475253187110327033146811249524102809187268386816188657477826836555822109643531327660717752121931648076043156910472973927566085797658994219477874758442778142393144520751195133751172883664858871709821727741229857464218320754670262803109400460398931889169119136437737767007827891062606277776205750499815812481849058971343161810111175367479319478896178025421001998913650890812423422615558552456721440710509581583525039008985111380917805121533787969509921463608130075341376536216734875018664624639519942228929782123711745759599457968672087777863991204053316202920663145805575877466920322055549237499396287902883422234130296185167677879791938520856339712578877879782292035290745677942240627185930667957480652452426907441139123203495574285005783696142730535176422273315119534097609677829990498687521325051793068370753670842889804848895394213661937862465244498540024352963246030075476884455430812847010004641594091621793036361232365420506506550443553594162699747349197459081953329869868318906491261078204729014214118841105075623959257739113063024172100679905980333477142814781659719230892788380659253302813460481729861414140016140407266539798396276921350393569467762323619049528042525178115160183955062120216449896410519444417316281231382946851174491691021205365525762773379743160108871622731656351505769208876746894353803667353409505218385363176527753579075335766719844641165163656429651001711895046124711522428685342290002740354415531871334820404128017978610276187547347153853872744345147281989861175909272210873392067115877643526489685970313118325059913859256834169222530301054322536233090081067764193647558248206537548882242398406311971245347628314716861283285884454710160993748506700228238717346137309644833787172032656084502960734513579725957886096104045892545021624724827215952374233284856402197380277697826850411154920041155658591157582823521182853439971535219749041856096682630063872766219205491814163617993787311989429756536325693314713721576939253308569646477514164328487503844991511524121210259839014002889144050552883261833238806699871677377813131085698551443497336818504975488981519356652974672676855489135418372666391321842056331838001562503589772351608124534459302150322828133620510165003563689161806837274266572134123448780994287089794066671388346608157659759313502009510568159110438737093418874489904169161671684540451318684966674388857588741818563465933678802615959180223335732290758078137788482560029888351969227475395786250520240778752703953608512593576275660969410896567732749853556813531143613148259999459883103991115191936200278852027724931536361200222781988605327870794988453680294925276323050039485877416988813648771090065767073181195757579614390084792106188770952707987901276385759332706656183696066897407009045538020993329012762630775773164467096906983280722032110643813362521786431848631841088479186529582778996572376718070661075271442568605410523108766761281583057422222188355276609930495579085363759110919683943003080891279913245664956393329869167842801648428804803527279633278672598195701136082593355026705773018601599396432594527353978866773513496421743746158828309963389825261909287550429130123817460343208751864920204316845559861606519418069132221840749224539942203072179177774386551016390732566440648960466277168429369823700312316640487654892396131423302747565339584987817947297277162587379062790081618252697880431478350988999285259108954971743255767601012848122794739965089464039148201043148767933326680228531721353022941949939970380057509201069622706654527549912649124052819714908161530497628972045733682293329742160377627841426211252435225190187900664624437564942325305329405048975013656529005060047898785176902906606074357437858667198015857313370741166686022655380491209072105380638215288322847433028379460935088860597938547625012046838182679209308277895838075099324396732132279396584725154702354955646055177378670717335993738064143393729628642185328511225737073434324988678636684588188483324328720248112891686750920817418105005382961765941513135542529209147269121309700754073326552316715545855452078188981043375062200591362631479837296549064780829322429848898155811532258811942703623402439499106046348892650837773750944209175493695975447568101543868786018990868080483674154683568839438677857279073452277844850436641664491335830825304473884251387778650333184752118133354198091907094251364197335295245078704823181068318470977762002739596122845376471279312973913342348327688788633597722014388314128273366096256119534893608911481341598104382264383040662555588194193687998169003464328226593161664010222011344736530002429885777841266955621615677799287407081996435315422273158246991071924744242679652711383825195985078298107974833483314180032142111327732300265731501252364211684915786217489919608600609828265289902565982293139023507398578755365683541782131043681957624870758298996563932905038290323577201326589101687502911881937136694715605980297181641397006873885590629826172083115939679702800407429790543623970038813808033167789438940183303853330257611713607156003884224086111095326360803048859218115663253520390709064451805527624876409465801930947917095729927728652434124474631609099866892563059066039213482760171162810334130623312129902651158894418535563692918961875746546016799030498236482650525645481823830933910907990586880466582373846703742081084531725079410344882296804023446702930384034135162009587609140114367029528920213745211408281154907954758900711732449476344665270206098362333373832309803966840267981935910338581132390362564075124872111243000064799376214758880094478625699010689110186871937894211527816783183944506443766816439283522181745244033650022033994590429666954345248200994721757948085059560481297195530498706844324370196969040743985879011353992081726038360239038697757205004647259434173403704820016575610183015696103627826526062984405823973252252342581078163324528570668567014131800785803664763496297705440976963274886528155627923972720202738395901942355957738657823859652814932815708994806874892998557247598465102155980047081169042968717691429710659803487268772965248757494244882917736745326707256943790861060811215808606123055474953771825319873578161527045779968521460078152946423761090310805544462647537647628869923227885648961690761525983851838211553678078836051797076615898134130046798346345462592988645159589313654990582103654637288127013045930749889997975715186746244063381269155529494277582939486815389662053544850582406461823935174692597013887573987333755265900168907710630594209529911866948144422145343668838008830063887139579409128159010337953213481112405727643142688976630692828626307990709772070756511194313248113706580339375854403119062045863678759141856040540048452486928328702827117315564903695794491621536900967876199144384966471104183144672765581395433410172142092435841184586094275788822591964823577908277116530730700523041480889537776928011448464866147813383522026782174117731914756005557520318974005415711319558292339334532988330335269837541859282810643156747973328587486590585704973053188803729447008293238819518189757941458373035731837341064028380115717791599281001285579851332714288031340645604052699232468302057224555221152740689131707681685987012133031066160363366109867497280521127052203481593501492118747292699912198878603976033500044086989221115040072540025414617196902007939717172128875206968131853849858076291035018451773079468088648615627141128097015265253864836557177817825062966468209527326519498724943353610150197101381217469461131233854792294396843613899678485032271265723566237929898976061835042653586126841085124219271189987141079682966249866944070263473750682748943768141654655847039997271885505565106247513634033607544897650983223102605859500100826825639521216674105811795353763015685311330863710312422660724644234924904256301988476387860744843622500346723713518674548787819961774982097799569144374128876116827314800157009610232486849078817611942297412819158727989217787976222895249578471559453664375361250602890766333000170345526166072468005413380092250582901223429393187197748364982729205302547261243140976155020834811585898449334099938430408693719533617047338276013099896136922686159780858332964005081122687858175425839726295378842796093655083505491640457713973274376063060502922914507198355201894746497178380772904025221648544731489099274122988726401045957939939046512362604481067030055994140546467561237767483011933010611544554114367882145573234093132575996293282464300179923408473924681445999884784914759119451516528426349028880087251932363308231814212164941447862516622507181427390335281853427542020210342431352071498736937908909019558806596807004072874989739192150975234530961594179153786626343162827520574100549528671651573760312260673589107692251144804096791196664640420717405953078745202610073437069073669935902821273337522070562383491982250700582010784431646721301791283383083173486891082514018547238051469730298252694552215416960839948342955795223284614158937972300009738284011453478505035290445490389048909129199564779269084950070563952963276257555739809145901703593807958639892883428906691818737758208964941446828172783099768984757247132275359156965274302576841136821404571846112367888238240237556989699231347457727583068685026500237604396222004138529637936529714524488755469133269255752216270576778219656205722418767373290692994465206665757092628087470422457164032911569383549697605640476150302621805002506469924774812540967607983103096950014901763808363140036810167088485766063072040893166863370902393977577984035775811557215695544012149756338242787320515709896137891760888802877086617560674634971200079752422066974109734975449577446434730779903391717920227101045499153194347469265951705510445751047972567649338378370502229255534953657582090585284856999060567453250618127064314134746669220216379518701095704208558881692643861246648887874597898806033481492559883205429684950747254724377342452153948023466266033597865075585998367505911883705284577234658698278271115062628195291256002095799557775543469049973461876245887174157006208949246623963644747058746209051419910500909627018111678825441253374200480234865278613388276588911842440610161550181149513628330234653568855826885272148839581972879637431397995771211180630648086448106802744322811199804662243922937383981354123599121336260169527447389465571591947666759044321375004237397249343575793951488737338546519774550737514126894572584154593799132148717925576075332822166150483534716652523840052925088842251943132497096536250334479989541010002362686363258900453036258297230883872051154506273983824847009723018343203318185370639369161978596906393326907693104368601070996328475094303926578469473148638133938947840533262111597732501341919153163634565510414091802558920008272690611007338537036272103647040406898071335688418206695490166463365978499965363772615619629237003998430833628531632636532745056927699655562043987767413071293345977378668573963446941758196506816083184762111341370830619674219083794513388872069845290556131977493710307061684660257328312354369264093341907819973879870885058652655863305835653956956472066629905641941742453280361599172328008773378684430775702449731696241891767013525462782014801819264087860216602472115125910664069788593545330432519558030043634200208832748987086278717655215906179575076134294734668953902761066763746865818442349827314133790338799637865540546250919792520904647450206856318494061896799530898681257513907915984235420385423630078075512753656151220734186864756659847808837892675957543253480186027805735414633573108221525834629452360145197241205419291153872005182532076059084317641619549928729999543852770571133052498145586314030925383334288011485177633719910407443850818998020003387558332070158446219242641057872013479536252163648213299293988944406533549648003430284285028254480273523791132027717536940031035524991187943392415589924980974105713354526998744073311722284886686905812020721637964965964796615165430709323464078467624310997985805542954348612426109181072364373336963432309819025721051580693708046466919657756868721728819514354816834756798805077559908456222838063011424093511213124011021277181490792093893190664004892598083586820183795166500249084439826055997117996924318385071334195259867053333288056697345707105658758890610750744232270781303172625149618755637581193715448904609446695549769896901117008400128725388549611256575996452928088895231239460171070078430409916621715957726125640040323968043635535023318919930125119919231259327140949557362812917232627291500976287852726280657542937718997364531165341316556449452766791220782504042394475626033908132397837655481779099941298519343130161490726050499802105121815548121802919390000359789236347487627011291141523024417012688107307168438087579594704368629421633224866665555069797746035201034578989849779846436074441712430166666041238353535961323392313695723420106327428991332365628858336543114741690547062878274799607438469663002154855291340451793746211241967598047997336790871186098388812817889998807636826566944730510752573910501311547376488982784586855702543333857091850604501315083617821894211183215563719570956129869235262373482221593534348780451401990560498419797662812517193251448440794268673655332555166938693521362127473763416923091484424789059957514394485870907144618665203922833206208212908444398907100692004886286376415845561625671534601531003049064181966583884203026186720483962896661152186748396424009773320824873584695821927553576852152491751948857892858258644175847852473514364040544280756044871713172375155445711664851321301498512627769699024044803712323029161439620201827395893663198290547285680682859590488809149778240571794134044034657633036156995792407468433237243071677499807508842215801336372475604644407625178834213006319300004018975357598234174504587981693358354495118499543991492277223840959344436577650739396124872878384052808662474457551289418600245094852966646325414045258859138945457099884527364957746222938008757619174836011088445439461282656939376740413779944500272402878302091644397479847062715557881288950541416296779566418126551318683369260233967129549144380549748944693603895716839895985048633762279564202639441008351018106681538436992617922618382669448758046810840175919108604395925943345074614724275618627995306616210244788605316783702693568598030677343551145881594140806895761985556190396728554849859112909527689737438489552558386212677980598925991330387363205120166626353301587198698517964374324893003029915606218181134623739459840829083363836219960835759461580815140919560127994377410895161720348233795898033849961242269767201026076862714595850880343179104354806544397367565931938318868160844527901375530440496572045122870526350770803053312445260690594841284955849497885669368809349844941771640499465147424164021285817785655869871767170704203608641636629366209329857266035332703164529341361883718453719463552136354466349613186039931704599503955830288649485731766898129180072605035245678384753299539563712740980204206689816748926984253771577173109324896062021013936783585978639063554527853097891419327442012344787504014686457073641496514595695803904725228903670286129687435524571394866838842338053028170515484331463233578618110339436318339365727929090770241718303354679922949604091479426043580495690187336795297543281627305219891161361681576669545709397876112033988632212106876990268952257734516396062208168514636154932166553964844488326792491770434632640437804307761055077177720554888788791677010923399247738366098893615531497340305872992199978751707717308552837402232445359155723103975067181553147496857855961774655846801555871446843716944496517512532034278965550380012522669284893485700234457936443851369125103141402901775524918596928139534716653574331679320606116459533019021586649367630722689471661747251191244017483127179415070817554548306455773507826697017145371673009789940341538551675133664025008340393392528861697804932705345030470512012714874685315073773422778417625055735949255488761164927316819024049532651050668677219527485591279413704021747669646661017600706005401489084208836259153354389985345866089837756510819723956409927756550194685450003696336983913964436306940034943404942877349526548003980045285666295421680294044894238724615339711859943198729542660796823713110029735330084671200279086985656521749515320082119495777138262212592611482410496634565177680036549779348878957868858434609020687244250809465305311734102702908643050700049627870640194279080393904932935419143064590875445753023291277323434970065983408581211785489917685370992018205111524173123929408380131213740828648593675799102003842520987460833587582449216103221739325309201196676526699010654573234626165170083895229940786299699236761530723413052528292946734292411127386611750815054838115713184469136534858039964734715373737899272134000691447009536137656494695695145627342854237783452584730180954323198509680418716411972793542196307227590769226303451150619318468899844035526346811808846753283740149081722291087430167913486258243825423294375991372848825782344243209079146080971125909879380800232209226408695135003185053304320004451849008598434138218947643383345877840543643447379771324686551353792929892097573384442693841991042446313638738560159709404084027363314421095306551884053811489817165234189998617052047351438465905379071162856192203839665224734582337506768971285350591688795684731326020449725762406497261682134103518621737087597165784790324595906038221062265985513913269375095518057164068341990734499756094671973512452155192906019796822720801003251574406767402469321831308503176979890372572626409809193002776658933087545280470482947031238943372590839562354747704196011764742756635176774902039675209498241244855804847830159759438741798489871492765763451487989980801165997525901057797485370531236790190399418040100603506977862976872026144143763997410306644325003852697924104189992933633607098747767245736999418545932132547235665685499861125342621343975244296221023521232009554236726879684199392772221870061789783623285222859287940707453528227914621675534552801523765020508054720416115077174658535140867649495646329439039862536083608907967661375050401584414827258474636511251696724133417210229428307559192899834884682925324659926924987864351390788028375073492892132990172314999974627968318801294366370548551588194913264965481585086958281842507986395524460032982873672833630396409595366903068923248754655339950439910070498804856262677031388086760671829103710014803711706585060409788533494329038086693292398613854748216409380724828541031486480914321165779977786965375011123348732928042064016328600677680121127773313010702698106953267036193622654387185542151812432005595083696004698191642057412880306713792335161598507013504919283529793077617448168532781302607098714399581980477837916013740751146403495859519196739705457769717566646681173999659217198281117630702352763729975869631920297761482022277010925520002312474296267713723773574178933937349173412032811772600724884201201697989388101244534631304840671525740620600910689746636288382962416641916009161063938770150158391384189937295236492196086274519505247013924397625815502067765913135782582533277219047216006615202670578874573668287228769625927901040016570816869360370668252138736541701950418780076812279834225944355559766421581160807815283469419266055490643844600068818987297949227836101533823189984182464676842040391884596622961439020118533198941014764919245958876845167660092940968137805363284828196848499149880623245291159025281680745225223618197266256899771129386973413361443030398202540858369337966737938484208030468493564219760791015622126725112957090205461907197036443395538998514329646586811927312377876370295232643169596702776246770194616619201003952671304374051970723287191500834154586164686352915574864161347572971288845647280077803320242372518497457515506181600911021137098145188813989274260749355071413425476092644019405424302879831795856636639427354971133085138512475971362197786207566481204571363638547489716738668271826466728068657966418285402571529224764869498834977470072793997647159006555502498448036414341632050237393037826227454110312850152430259413668375607064085095217834077685870282542483376337522400418683583910316892317798430395804343302459417402923046219910312991461555151375681819073598100144230871531727697063305759935631414466318295739185715257867460462959103110890664975982038147591188208672945290800910124976249280319421699435168247662691955740172379741859146546298588869208297165985007684063438395510300918254448897819202583599194039606245631436977492417458601902294182727614776387828399390206053612943238589751103020706014552245681867342014129149526123007967943842488729639304415449701564226431472251333238327341557360571064369721558312375338706685172547880584817147069336737332025411555624642558973867958768337534999701574905951756516241592368189336552832054970169890867779099906336930414914576006304711054863624371588558344892207109601113145315682143688220259445472559543438785695940306379060411992338986615503511855332803978282892099758016655207470465747372039037418735080518655654169756010539123500895223778309652640860089232222110822292046643889378900442288297112275381907030095724084923205442660736167239795119036746263611236239743241691725657167523409907166001839324587889934006806027767705173463118071684361421938091970123020187358479294280817534739303507479727380710972931264457141419313168700714276389715864618686030825504336947852654700665537439846327822963513214241755953020206806709418872772000631104464241460571986139097222673404419213946907307674354285513125918440170759623165959579014248020400347473149660159840644072319648022049219427053173240103705551841192090808644028398155251312760359524503419819884775411910722960819408625098707449985599314605546113151343252746536025741120469897125886983371186243344468695996560997266695828929744059589178099521670012446348678434964428581674939129467465845836982696735699014735224559048655215945981969919426644418707613771275866105401144660641317565154135853552802061175459157114116450398702576610189077647586908144565709576625570812746550801960103460370431849696779282949080152429530806343311457228449663493095971149532244854533303238175765286062335719952124967325924576267704092825809822709817516840130601533782963758665465766665579260960993355123214857630822693790635769893720501852875119438074103693881094186838580750106374922793137406835244260447014288631541348295772423146537951248575048449228804706296182715745118590364225827554008780621082688179846448408770516342508020433745427881145928501651890816082777105492983886970992244381406129373536876677635227394656608899332566219238148055946160085282816500016334819775408055541838960584406208788153076710547762795269214047534672579459042398967435238206850956007800075738551159546109363710892369269274160722407972334173352513022074870684418308019727929774402306678955169086137035507087641113539817646790947559827092983773431858423314574488279269042365508334382392305608390530814224706645691869118817312916295721220262629622605375810205617757602287943824437041755010226431727549524354542322265304208252037665081101908821577739707851509344189738950981874355489429497575407280815888304680689241672372309546078163697572197388212635822110670611372925924400417203737237853533909950439690189357754745703515794301058114527736644497283163850420862729668585566300789120619735418533039266256517058757884257474155850078177375762866075551872217879807336775115680260937554379094570462730413509686416092411259456843357435211323265328857707540083960758449450427424706688155471801559589810192243613664439419181235127686934950355919019851529357542249237196965049561245170491510275943209994091637297585393340554932686419349967905593663859774229235324249599152383266993377369335437902496508057900171305097532502641241587657787193653985261877454115129516309475606212388748633991832262195451009312097419906903883439753072547119300567129502099696060888102566776136345122840671468107849574418155315002232081560581603831310784859691569497744039773452630068091086373897298470563762755127603489174265266188910288554946829594697531309995460436840070725986170107109154049101534400472558906967533840385005327350561221987324300423369646340855514212414072045875778287894309654878001337422573300653130781641212907035102967017086938286417597443959003192109815733182025021791198162852887563468811605637389257182130983756904543973066412195218906146493051567960750668577651945144232586795867700269230525191797816098650684036248260115455659139329369997267940306717996655846930117293107476827474307940563427077847572808318209927825772930347419746848854229438744560489374474317317815491659299434599838574708438206602839913692895267222463622962832380474597498350144461767507214827055990642351849558121007929659001314220953737247376909963880055657691950970844608269409052139050905873228009137884667897838245850003153565387609483960747002764928423668847811222626003006909183663094092224998380473461139559979840170200428721585196385888647858143966497103629402714608091984936984769166261384824667078166646166982568362490881330991383243216216346634805257815543374025919447374795032179095147838911239722034810440915745288355703953599371703178985150744468371712580295137603497586397850146853689536443538018686758569534628539354601413086747036648128765398914996602073635334389834285648075817608773476608186319571475029657724828262372276935313229481988112130914104621862102945135821282861265005300856250326638105868392419434685838514972177869829215911119470263204500395226848983818952026589498879320807747974442683907081586194117714383968431365646912762833697702832460940341854495431787192385827736508109898573178150021559865803274399449858247740361951462637716151813260666530076352351562786095823589659075335897436934389033790228959800212345380229690476976076100448438603290175672205118216608015616765680632517121335990923341690565104486817481256483939929979747425582431443784968148314810320586301225456035442204942019510831209621527623976086769156695082971387274691348527633795119963157138416191020584397691737206354940951826889163183881348306029029329386822524824532677782066230246212543938976775523442336944176364508594116150144407269691009072829978826619237444565584507266159004905236786658036194819016299980571891475041846279020959215139151173815504676512384334995875927286078565273471687995236044606368494492742657961250963507503288692167815105335672166173362846972324903736493990033019795750706463091344089360560603287236216317345446177103162364630754090407638467940405741797059865725702022762615962915985068904355541527111944833809809937746416631859628875526576481845079644690839168922474346531365726807553955732191458642479835311265705874554904530134326946022313660024773308732188068914736085558516101918939833778220636464757991949503997469784471791002346834643260339521226632186677337458745192006868841183399728214053952194156203097935930685461231933503792714586345165528988992626393883246398155067414869568128104297769939761950012314649702444745121088773837339869431112007026888049305779203193211737789373337336383395656296767449112308395646432125477282240640926739948509695080424790120420746669053478573382521535926527964271949771584429677977166343141368346928605401681773521685110877189633310080808237108933301535476542694654542315932517482979764264426582565613534348407916758605001208847522373687192769272544845104844836518363675961666808895910805728226354245353774650071017993663692700825802413302059037892381070627116385364315663194565612323577604722629786425612489600594726613923372730202137175696692351883452269615283990008121843271615488109655789661069049226422946258129330487723947167166932121258863625955639054396863100651583843404219900108871802846492477199414373116819153110371453626894004998096086605068250716157351187070996424201415308255179872034464062215999308068499085769109541726727915882335151591835256089184979961901050103951148311019059301402711358555249043983943298143341393723919213205782432450750703423139065833292938375591175940087983987164234247672659598585260500235467470833276824657775797846769693086615310986352657003348428295186196368983414794769815588779961956596905358692270058432926583322615550961734301685931446929572180764216533623563415573652441867404857530501883699769211988086476281951184670488855963020061213894606550412549405110616121926652248097092041390269703060861786989948044454829298658803167655479632796066252395799214487111786842513433863660479240568655577606959750351628858294772495567845135022213148682113426892776645382450709651150249104942316365567466266359731476767672893016163646400116332210746592133171808996161373448532338497213925628913514742141818740310012269283234589480490649904200636154802925112357049969407840911183647359695654233234663997290220619386397818409470255745635694309759673932667540880988437188410879119017127820226630891399050070614038866889436101963503074128922570446750597549084010252784122357683367927954672017782824411857926529521197936838192487915777221182704437953795030928890221252902945371206414488947724998925847002915685138277403462188146852183384708057502927359765612441936153067594096815874437378754968412352747582163152549847930619090685775982124957471447165994056736511905870738252238038167986495025258079883908846536375847225937253648368409978750137724288282932864123570163878701768334896550221887869521127292918988437152975773093106538001964819169497281556121843288007270538690537746772790974445282088136505385385450237034556936902347963593388885732104364101716879698979548056492900678759633156234135580306928700817614464060551744300640007202893777626384067664830928271084525636164116809132605108159038050453736621147350430018147794326951214114847350654368190141752904928824761319651111199141118221887041689365537796608155351900961185626844004965543139545776477490891569421636733285287557101772170300981840856243046389194621471808836662417909849981547055314704720465775528793883189356516326303754235438151336697268191219017164177843590682803079265204540294799215010483565206423451845391011315114314239321668303821453419732187893441931994065574579767215732354101463297371728715640811367755753240414788376181315429403610552117796220702207964696070907844162363198447440439770526556102784151879244821647678139087476559789579154521736257248555162852600082736579749832935649630861461973542913485651470366554379420130529826445063757422059128157349250380672358179983344636975413934645427369145001942404750275182812566296720910547035113441854456348740706556949435697462474942389257595260597267907819066987183981812655466128728540588760006531403657572309655908608195091277015914158089054677905919454583730436746720895159123290112053719194454475647137957788103596975328620941941877676360825120344468854587937263434610126329962743928664291245639348373061771819673144535320893822324337079175750934776059575934102777338348980113331462506430897745964705804928796331129071032022663740952054854999716074160425673024900396658471122706087010012104667110369423469741833276537877212627747709996024938952355698568679165399905082562228643027912308493678499528190617368872638358924239959958987948946687664056146464297724378942195677725792171460667004422640572553700881046581090550121433085465097160377874575266790779584879255305403353221700716940807476258481769611488132782497181906798027605343530417985032896566675859691871745344308013002786375154301087006776058227339051442955000441575397360979588174955043093148154441740420319666053029470561217824421637067845650458675612847801399311651431329088048399124921891861768912931249963246606577180624081246850392252395256166723614363611336929119564832717879804147941527101044177819874735481695601293349026684271810579345912988899797930626511012535798283975257344993189376066032761379734447197812998839310451658211248022231257732711162628829639103465652999408291789742458535932114475830582214273443695424429413527756633974855707762650790546123714888477541951852242032976642471496376014981149761035754694055382358249525432879079430395098101612437627989421477062355056617071303947286231862260378840698485382981388954640296946987289354316392361351142581100809756784846578831857371439565150677834035847146129325132056647703272101291995140519562862237418439725001193666084975557262512920134975171051912825554188676214046164543415713764047791340182411061391114625346629234092753407359468226300804655077546075007741881547966612391821835076770138873714454993978923911676512003514825161541653699472367461286563418779395954962253409569931645579174716996209005192869467106721125433162345758799656858025389040538581440121386827619342540822678080566443777670968809159908347476814864493091073989101451028958041834534888572695155590442195943138476834602786574587116529806484314272700238217999287216720086104435134033954548638086359791471646904486280676847636228843461828675493440810040131373318104432131675954121795254464931207374012409109255595099057062006742719537302795879716314775827258656062585667836080613866154923130098182162718116318272061125015564191581919987086456044009085294905444736378729851709143935669870120946596811567001952534468292134488688138596472128365355880729177704525531157816882832412961213574904979895330654842249512648150677382539440718038010826143837333210305079836359630304313575089656571559344444826120053768769877877301378699614297056665518179825583091469535972148231925911596731574939103495754519784694508653894730579846378967395759392273946587100307589515429134702788158341909304887686243979802156267591774331794001975678596464639719781740761801488648851636731124485351754463682220104421288192359619112010106198025379057029895894442584365231251905920661907512954387545184796652049053103309098235046656325975907166197445647065352133600334087960176054809597276440516114662405229798542236967324570926004908188466497600359259495104483467280808466899957597253084524358963382199241247721110491065623577184265113545424931692120219674354913743263522009503348777837305451053024902423101728169043231916640162738415030839852524047249433831790198983394656720276190104048360695025976748918892524600681388278710536517867051083617293632737302525353939446849204543059300829526573093249465985439317133359049329770894563813350508446590716357170030706420098261690020689605177243584248168142145131309013242860184457645888368401801103143117111667776303181937509110987084886499659017904582682607706515825995134468706565689207492167648255639833652285283924698021857960587468800119860927877472531342894293796931848710445049972429652281712636524678447471198871781353447942733260616904527317197208338702462988577820360496940222396639257081293437322593881300203441820307503369349073058347100479401700115337686892775944123348151695361834665570500321492791210434465703292938012070736479787419726021227065287567596713518451943347446359558799800169449942106848891989339159014298180211254354987086968925490917790292596430081654397804264221765476454408775856824192627741247684497184145372307677162607613720129088087709431278743963591937782013229534150442064295091955804169744306631587625467402720836427331354880342014740363404997054145027966247663148517331537559470591573020328486084347666133036241719049745921347782210677651871891321399561690332105130260048340983787658197452353729427759880709297288852419039639939793338669122639987593968621958866879392637388910253120398918700155761485072843949132382856972756731285972834575205918906657819616894107594858954709437544941933809324570734329853764956770356630553622385827592111285045576995600241574705987789932347238368400808789792850844166334140708978087532180885571229506104435941016206758336253432708112841748350197338902548516018591605350476949193251037429844330362854910496094071491096241225166041121546030337884247790943137382861231330649000238363806035771124078015397477250178141085856199064974811805199198208560978425751042320527135620580700425746112937776259787289354986265862699814248082363858466751308524175270222295243576340795923247861365325979801512019360963905598483558626627411988093814129826074075422509378654127126247543023983413290752628238419551001790779007356974609170491073628873506801096697932607573561753501541815093080364230106259724893854650030619485316740140952974621228720712729385454736261279943767934419405435982544208521298975796129213293212992287841537714949853117465243002641448778074845044114102163597083681652851694172833971638585714111728115820570694688954914286738059040066542241395825378435954662343423339207663121960128447572397589984900375463303283025773853968551725230738024113494338787573609682894998395010095298136423442859174605824786142254503791278220835970875638862294515971460326276881317692003813938265596638211619669719579071339780895607873800883004993477312110049811902100147158693089513443013095075918700409923018991793250006832310205049141287606778923916457108624663764680365696065958408723238540216914310032116523385529196739517646903353571430756951056143959849740897050216634846783653869253144313162828322530380855486447112121089457554637047680565279563617790108128814098298840171929828370622302045758930621180996355906286396815699925742926275513669847821293463334687573475064887409396690158239613512184432626445883340096358195442814780823023012840281264385656404037307237549667647041173926973884891521667948097780171159688933713437893966448016836850811771771294460694856933894469031786270276894679863190900407966055567361229458627411329056414130951336246885439516075217261986126670419543885922576206391143415440843687101864174460175503236585344340365292529459712696539240326098624130495839340510853689444654451300098374178121580073942966347266590920654306004392336373599008819017859224803091995281028754847471853618148948123595203712886322530226505388918123975278387833547410355011221612364520902119637286314239442761406664354907161397429622593674655528664416727408545797162022089934935404373637397396552679131362673655344679469286790247440309826115319824759602509815068759040161029906172653900092555127957659132285076826378967166047342298199803569654668984595284135851205542838599365035997493235725481985912641368102671231689620748286613617188730750332574210308783477450241192207946048322134734720108503722795518054540080652786078769904112905858012737585869423354025851159332815595977580139533752489396433945375167300761467589545764691510467832537426245307739735470753365456232520795776376142292475667514713587935358522779258015399084508923955452026928830953230716768289418583176383152316023625912598870269459435485894297521941732805334438993439211816187989873759869915118401859452296117212374933420757617172328169706776687772722117899383564143797308927207562724155429459007475606529526816245827095906344761173951344300493807388970105518210630321303250982884911546486666731531050511689626845094140773146226693712769394613593310988146847058360450406326376448567449092292866448395523886608437598238266068423118722756943598273201342515494571365241709634426382807875744056565355174098427729138144035080700379976074521875112481029406306989265257433377700843556794844378652826675744169741253000756924513662912457270448331292881845458791791044177101742899809304543672379411791561411727570022016880757410251207966965489618575885004265213911218097635875408278903679191802690461291367599774963904242498241327772524608343342967678029079172107867797472900382313555070377604788147575442404047713267708825449533579312777800182032605493670823990032472886546902876962283288228969850703676245424624577122801060645675542094521317622078127969955672291500830435035579523792068520924226380262970151563064721641266403134350993760086756395536923527306909918297934249115656364780395345511550204702708666185189580573056496468716619061835306437406725098675753321288793263158703993625121784317480161957472613318566984700235256343249297898494273489120985805089148540923942177370657077181295937886685613224310549644135644851308486354517990098729785337990705642938248756632856315021123658105079437991168476880387349186227390502355127043509398944495347364436842783715369784196709337023654755577968836603732934858590209123813146941585421792570970971615746024950740842896489265714718335092502469712509420180258111257784164925950608394912127387189241955199161479112646152477617454230447130727657448422972953830601000409646288668556998667119935842765130328454682352011956874784585081005411035038403222730467236546659252937438472227160695987174437438443978864237434441850454944927959212956761321533227110329294776521354622118228389553178234328234189315068062915666565308512078626512993612966212423772427424821020840920355297620871165494452254498814230217064213728897688295704420157305974110501845908199766733535390444420019181473850447745977395942299072762010136155907405375955239241382972877776974554361272211860009497811242150181613071101656908688856790945440404117129548689936026506228662271635325988021680075374381211483138250336471332412567896983388248159899943618904839532331589865571091726979831020478909428772848201428952649250811663924881163037415196080027001369542859657533498077133808168146675681988682248024982710626715126423642238349758767697292794612728587170345872326653587561978380468869261067361703281386196300845144122944492512460944661560769133546781452845486312820155952697902012190028443339845728494612720972554256542214960480679346566692905543288718350101075977868321063483813148230929623830002042561903680275205460308767185308183490876797710984019507322767005919557982214394045381709898577101223423774969477497194121113237713607056229832693271289927760887005597393445957669404873887519836912269630012136745991143133102116408947371129406676133946338205668003301005593599497308949898956443614409226649625154131408428492808728505202246650525582939970558691806923030228265398782349093582165996346556522800301553541075241707939986414911960122434596715544138540314055263426088341861124663913637689510287624737546943100910127950913575303460749604004654757191862443809513633925569934914403957719640428284707667752613070992270370056207657347669341167171723535003939595354718152108206964742604944029281258912659887526982995065847620795834843430276821590835650697818817538221369621924887781287939860047195386455459774244917926063844894641695885178605783242657564727150904266104912208926221574083579402180032345601902531858635993697187211908776664644564002165910124019401056784076369942283647243535716482032338997439116533708819431883019823199723019075864880103542664060399710761259685278815468955676017288581504702192165724861623338665652471492387001555539754125216734795507747492266488838082261380371395325016889639419342174304281847248527731562503301380590764305339487543458310369075041999554840290235776508081043674956953907124081931220090472354363222518319361745113661363120319843321498120398325949961950787266321333674388463942109852107061746925738574290122178796598165825070752855126995652961797251408638736142927303795442197474256115996177624755831443298799125520489622058657555048547018163874359176643999248676955732333571889551393993586039243112230760351328317388122393836774609888720629826402013840860595789414980176756909200816025081772669684040503657768680788746896693639894920801163292675532043802490922903597856064320198300293819682054069486594123371530196968679748713109066621639935479331877694110858098179930727327079937788797739138304297273330231366237881188375688730485129547472939726217420384106821489439864591193060558969547079927532274191982622192625527102562667780946231415454049404710429746390273213284342142207606128134522594555798414276856273496063218636886884798835962033546802315660488014954250796057974969114015431593705981679964529253027458749658039061342736010720936359436103535861873445464261027760181121790225729247235770230189339018471548330763822019552919312855572985649850394686509222967766974403118086090435128383573668936031244669236326273132593392489902904007218022469649929973812994911483827425887983588334551690797671240810039044559419820519963430403023024168054227088642356707728065033155552093732850122608854745398789351148394787682266218893059953041404358704383146426768904581971412905067154736789626939186599883034206754744685857686158054306338397782579034348994215167668498977678846793158684674248396832408525260414913611161321942156035140211788041436293777559409040604840074596006631593471493365355017480802766716876326264412466888886853752060548089908846517485976923481705692117521441152795021796789378951217319405601670347107060353755313011165703088451331266925834638457086903338973386196485875575552722646192373586091926582931560564347977097493815366596784516565600741284858244508903010575095279563644286048799257486038287176072492029277992588852319747481259408125424856350718077014073962101723292618384641356734442722957361455107353778750571145108899010114665083043570553990810542751313465348485847438263075036021763434203529552603163626900509193944004872438580742489003426632969528004979655938734989887085655259353474723974459132634757288895054650846459243301216646164382359544297173627939343640731302720078738692757075118573278592702942124998723601068433608542379385798189050133728964410003650624473235596115731190259519477111114439653712456007193908207497805496178078648489078664067808413574751681096062989242440994654570122847327106279367129312475374117336670981269481416655730246934228877474729813685483910848733059833347759005011524449172367859340402783617083331897865074023335222518939302516019536369029917087601545996451966553528851982328764953677141898627784938659799578393047559903637422207292852699883613402919913816689558733253085953884175513974572643844398105155922599146329012051954788032935980381784630292982549321988145771642814051446642933398093430117876672699987073864587734327860280001467387475565976455627272705149858053766686390343393931170898549031143798147941056368290414395614090435424160681323139379908190840541784338903482675643880646644455367285280637952404592495594182986684030642785182697619469445242585008468905137548325187930812660164905575004421466282520639509847712716223108621161965963219693341977069953375963094442518389757174701640553923456457466071645028234777689377003053247108320448004150262768531159615322001514733783950286602686727362557820734331992163633500600420370213656745696971894745124618819622941228211496263775210649728633815747085090981720752869939599965463035955311268326501355918795814568714712804261413762304837114270002015908602553620028524920866080135531139899527266058689170446404124812171875962075727416465392476840660208825583218463493251003760307005484128794401613506216421456608724562515491644639041111004653473355411466483066023557897682745168703489522872187376975844597908273651173644200789768230432674899727646659010895296091002476099050716934716841478290353496719107380132612347657637036825282148424394601447843836660991284647898451009246360876979315127057008032279778044505776355904715475210918777000372423666014698571557133918256338458538851896895072389648421917659269992894275921046824555247707573406207216416548424516039671038244604644008881086428154779904738504703998874786491790500009253238326615633955830661487088757688368994534634756553644652778121300010344311318795022877504686014163778483164853472534899334068471670690581038385119443697710467619974635965473366472053208598956957423178463517901740599415958331186082966929563216635233678311536100747638894555725305192647695364384296590547645365322085524990060298890052353658230986015268176740478088257142244826635809549122512503272293352553901243511392275154941262857124496648964432409979136713771525672789954224587645923395720218175900270247353152034733251742779445021192445425905802947861569217213093185444696433279962019892120658752536331005674090419178412611316971021380026970735203899261435443789922081497465965013584157654675221357894886113267468687055519714255968843472118446328895587085980387532845963159215432340142321944450329186180386516406479994273715399817183543770014226767712582091593445217153870918815685236641084438094745909354983884687193864046035600524787816699003465839928332506019487982918186505274310505657289050823035876402444593786119600327810567931213194922095169829433668165473669048000950374569847889368918986680958780188211889474115349872849301734523484913849128665516310813647196240008847146242875828241315853657402547041780920766633572875127191604681363129689435638683164065053396019549013650788625047550026627515604676055543362151395200268168201436805445838791030932217099275399532309174169338118817694741915540505561656247999790402227814257420111718390418608725811922084658980707499220364371305926188000722146198639358210422331049862860759297833976194155841314088421281084536021743716180379163623138357697754030249130981834195072287484805704269765937141228699197251560507425692487463271098698908590009159043277322918544623479491162753360945347109678013354524231352977176242608552603485226873775802841741910569614989651435932724365779288594310470788179863743644055902567239979808883137605703812309234544184735934828782480764430270106594537983689382528883161143917795484472806455402154531150029271377955145681464057778513766137467380172361603250014978240717216308146772933073777294186321266447892592491303525131643132713438243955672942757830250026326425088307548802296153357145410844738871726950401338581664274887780194121800932574017634606978552556665107958750025048542992998015389478300203603140182515574009286978611417206595924138925579337600909577034584621980868184053344762345891330090040944789577952308436772884531986812373300079392566948854205231738681920613445026080851950351228488027050159790592066232537299385596536004845923283867727000961965400656051482270689820679079934603203559505154033273753559623255555285423134044300629066001371113064720045781289247873713402202850336356322912472851203306046790029562430775119719356851661705321769599951625807287418766276758097755240566302976542610465618684121713806363082350135330837531536259888261969421440511886874233163569932243490131593142813773118389515470628975919603907958009033312763722820221090962108420386876285499845457298194607690128503542037332964424298048297756433884578685302581847349631388536617298911354724792223840081023280562785389159469933212630261196854768435749988369601742360051044036626452924848846760723077533156530968392399741968179124454210834004129736817363524701389278591942346786173658370389766907351860498082830918125438569543423033033388134963734306825241431482715964188623600619350386634212936528577287384615750971214896593419204991484839103826677979086883373401628218840241106825660153116066358664831988708122176652013329996722486907155027446699398376487374803732593990235520692255664016905393847926443605889412478149909673164270782402934943414829177231987623269421269041574102707509515949601853718634825243667180045808054218008503030488774845151935725946059606891724628451870271545573650648935098580244293396422230909702604305558483849933135718944480169189629154315859686214463135603937070208992982536978838820972894949180517269846515755350432723938745216143998851209365538113266347080677420501150848676980550876551563381368635355623764601752837835900344612099518151614590456448107501367998706549936219463278731626171951318244001921146655279296804061957507294116741158486475492529291948245204422666535041052198837950800299930129112025457235579898917229866287926330646537876670014768199182609437259508285759804806291770501437301819372911989221800989260543913857353679826628604414829250718591595249956523319761810734193273103537492755785514848323443689833581498589259407882426005418877488576393228160817195185564285700559541664162472923637715937211330073928834120153537476980204446283090832145712957906527526483600284174718831012409986221018653827497879960394912073429276770751537717567252136260728735974911969216072197846477736446776357868262485083509980669941880579319879245081821824893245752043293375159717080535210748728316742246742914905519342268422796803586581230795577743847683232876588870409233452354989401880257168741497613007189509653831384688309263036017603057189930785984242905992827591788463707319369550993062292755240661576719798117263339149150664716621558444100067973473940804185981116998947405370139993796141435216177422267460584795659151072843821152853214597376119696577612057246244146472681683346926713489001106301534664754114701703339346239349577464412527671097051451674268868072521735108597016690261502251848547698590993259843085491268957259916049666192912897063336709057678039743969308012277655202515863378017906325911029684994989089171882532888280365718684041668274114193971371221652713555668572781642142351429829706161524139269645075170141757876620540446204502426641400446982068014233645857714446623325205706276178856428452756502236414521769052680681445156762473683873080025180811296428924353204436401411056983223505711223236073759392553502711773861448857862460493472593953675540905405348533331729444528900457132119831163621483281884915644392617746588096114045309604966711154372940640294094228502351338869354919957928428289739245333620643244334113471716602941642992062265216438680353533043702282625669577211036034524135408418954394704152802007823500080299678687394282352564597254192643326571642732882636405490242018849256167354622835923596507401119840291863659888367351768461845975083033808873396292692965921888018049780704822489563736819723366863934665699594719326089040195561668912912189235369586393981098212332563894623299891554590826296807890649460450300789528747078719660133932322413594111016679604630390161290892250316699869158901270005881204729983781124036748289792057299481958247911625106121219821672469354704561453621441207808350274694059331079909358282188770726448094164383099168230705360834310438515095620575664565666651648901750143710325513255501633163973637628871402538452944255083926710687863306357327649497663786272351207684809435555139531998334233876262966381164337209241956602453742620633930527775361944796390148998095346157706875436182728977418092825274953530875108555599942812386977887237663641525111322258091537182365161619585151429387330236817525100126770905201950214314084431797217362024876730863626672291228071043823072535178894599498351393546862421696794280019567940763541550732834527124328745171243156996962076852727365739043587222577622711087300168734781171644285095742388806307893818716357556873823201060013647372522850170503952867900333910045957572091355441472645107838611943381777864559912941954577472197559405882856884976564155872956748856170321415839635790584337949142621730778823440160491181148848235664463984842268518556349302763573873172314123254318152623864169405042872321782501152581031469549673247847265657777016165262970744715276845164205287737426954727068473071860136136173901295105120674352312816596235962511914512311231575051178937747986664702236776755649784501257800289770851183495827679847994096583798835244143516236788101040112262381276139436196160843676330515825842875779091115865610516012903106209383194557438447693520023116013906295638932909960321729026526800732908242222165694603279559495994969801954733637808196585014187481313598557785000634375245474897653893829091154464466949337086883957702305023051936995488206654363835916626255871744325323769508227844983545099963568533738522124373429669653479417045729071250735486265789382119330244357042446204285973716590089665129694810488785175541085628824264841962925293351962519941330710802665451967858888398330067257604566809303964004868194708330031867595101063136413540667072306592107045468458738710926964510923779008626941662292662985638095152805085895126502001188185908196743754422838764744084059665951644399230408033377182245242639452883925989998731912566797390522598750773982575356272940913177070520290959476568120691868851968923708079352854635397573245744878246306800360067848032526380579586380604978379337832112613268945969736629756695396228632401087366753229047825838956980770429117951943687146936104785389547402944890778778529200488208769152855059938678452915797175408819927869674213025102976477080883707916843308355761173826691973931520972574878898711478245786811125333909394425992992195764202944424179170708565207610635098894602342983748493121533821184891984551376401906356061823168214667935648869363274273582563492644035546124751101726508600604188294789778782055486812853396054457448586070611210739822944558231680321848364818470860136087454618777860003327151936148584088147492969892382675376340937752095366709013367170617410140956571072854895333132138664301762532668446718207751477864546847551627496873603745894015661403556190365910242670946515763460172179098135956945939287889529291995642697160063049938630560072054076145448241995418477126736473933791496524651292314619934556193325561211362350980107502400432562855061865958684846313793077355974057352374190834672453328010558294148982786849166346355431482348706018005880190740221283019391788953930261429736736429332399771053991450620978982618008678159921042927355035618620922650612881118115843946158224790429114303099488494869806824545475234143658295133677541322217870349652418708617054831345748808270866725510691981862144169307436898503826973700329959547468037942885277596595082443780492633394838352971174755475491969424712988225850373247940221624726867554204489175397838538564283151070566766089917754355908975470340643228683387219274286799521501300553905144060637652122575914005580214869597655080371365594632386434275141344554283823310222706916288171014192814691136331523486994378982847141012930136623884140677849189763281714666637769582797142986875475663391411049479906914571571827541685982715072822285553072559995026012208667826824158682903464958123172176328824627463495560496496190747366839256744457041035001372241175367765210619476497425015445630529176828399792682376994291351803774571669566397002120429699952560243571900048168617726000984663492207242990724562993254328696854691452260492811964751137631180342113373294039270993717876890285462062573686107266965616639787097457188455393883559737726611374128129005954834957572345785275411201453303437251569095584626452599688041742338543586318311653370659170443594919043167753908412279347749787864437969404136177014816186842861788434443873675523478629225660013968250546393755396195935440454872839750767798506425424019970235272794544011311757114397060926464850509349532466380445312890366849385237298496072276436209076425435907648288829667116272040372931776479061064407741987245559180001754095114179295236857410964781342243596179461945586331396134129861203479656960636704601281097774723568581335548170225153340212548302348499324812066787824209919036481423174459728389088992376499757147480850970377438762870045368856651404487811058643753467906834322585488098969061819627649806883023216660342459516346513549265625756950011102701887894646642026369730219167376777617063312121646103875153260201721157887074488469105760041625962983028570053312561137924133640675575196577236057250608512394055719069831007737645631341017389068196747646956905728917710801469041771226805804782831645010588676181970923989243361585431429213620498682616515292509359774745648059924021973123817673910455573523450989908092963386340840395994262944192474273689458332525355264353213541264529122697586532578211966520830002117091001494666480667845907734251203454078629145052452548763332444526346772722569899995370592510807091880219865921710196350698177221387135131788281379272384331208422409776803576539387710831944472182495015102499845052510329638974907221290376833500343378577924967044426524663096447088797401693120777680916486607917003360789429124200080418168563992386391433345030362655834528576976581071547207379747943544408877159670800282698969357545983458967754479789657294638938496957787745078899107491715253613932424097098739908868997675502201932079831265292937721552314734804126810940858416985374874548651750415404915332482603366098929514960178908914505205329129636028292474297330136833754366991679852758019807006608171839449338640949615067161098657158409727999092972649193914830152073522471303449578351739014331229473509693558173481983537385510582108418082941551409947979773721315366111980568689647611224917046143745738955827716824987940879429381775068067619693149327222504494345726572107734061931263520812139802803626317258674371890865452895574691459811534204225419951219186136203469519682964064662816391426272412684913003501240284538060998464910867224410239962704897818993709988456128234387028322475119696844851201086739304591997465961768257967552771658968275113707387513200826027328003742881083403277116125359292631715193321266912963451930576780544589970910642176351452377468596448908917132444254844909336429014313925180847428903792095607078574439991767475307136460793110189993373230251539690181116435720778321424058550507908814978272683075442908544940121828360281609821801449048041106778963369041328994527927911402888915276376854222369763658330396151200696316067029272020103024097965502568925506625279327479489394250624697487642382164076859351781428464162175392272211527258705637890948123070113057055106164801542218125911363008564742096467497543376177284700496297239626901435148816013881718575049747207254972250781990587357768433811148890947674066742367758726075115255769786009669199250161764588308456530406467672860492312327396912067675744093919909882809838593925279402501004206743932954647368602771801919963565277082317537955153259826954447363772043986445621834037811142989784827333163887541085006837633399092728429529209552991260183867921540767251155885694963505740213093999504891590143693877939862207719181911781172207600924881668290124823255458690750155709356132885521874027518766395262406223438076232006058153175844936449292900702005692971287100823244659327529649840501751275779897003527687434293886537834414111527552837970545483938830346416630236192002281671911954911570159165992583485895122193533348252289139550316350737506465952021947223138786276672598496665845915791533131428675952667141399601888043651043829866297932668479405493584847047117516147637496508448986177577453610971673138335780798162727709994655583302307121344260785234792321314045073919728870278941521999361207090612441206189855596504682200175255524549093350972905462561119020674882341752924471199566693810629197599776436737654833226947154996845518228748622796621115251276913729217439902633786281730987307615341596545274220691111163737280068454884513987755907988981174491268067558797947290529840893817718877246745521634189066569565909341222750626261220957477127172852541204741027946464703800369184637715901146806158746465230022583579040398818309811495312104534674957267868377337039467032559624270910305893615758214258524901874131370882826298032404510184215882972893850660447427971915496576327368292730578395610882861033709984056009137157814386070095706179957552227317264747490689433225183785772599044007230671600736765476067780026143251817786580868643145629212672540938618156562327544341211052946776239125751020041259780342079824299474059377803377565281635419724189324356773195678854754050844492551265662615616605324937132669881067450439770306811629705488908128660658103339935880449213421725351038783598533508426846543572979090550664032940690489038653377995688268821589529454344664864208301234151466799233065981185394157062491565256002242798455490462219045859131773896499255970228837405928282020542606443952858618870946850661885421736750006293376921394674865422433303031591081428967338230223546311369170016174091609704713103420552022077389953150166222407055556537441528860581424116430519749946373960575151899790601755364783263628878867306683659853346379798634092158622140005686166893910193265615438842337651844517237695348630297161401390484512270251813530821560993817373228803043913012726222542972048111103172005773980204235884832356646593387011976993860754261349597156498332438389165807557546846723160518752072754126489547083739381447917714566825120731620475401069427195202346588220578838304450570553032150845692927909696258969358966318804810993828331381261373395076735482722078227633278832009181318322938615264510957136487438674196000258432938261334030660289344733399042314563690111836251636610679758275509035366673711039397208711088310377272081740108040373735988416097535849617470077165431301240907959988416019662449456160210712463864509510140139234731169090896002011769010893359106102058964289215807668841607287187614623269268434481011054161298251425152357079948388192223256502107257002511084305441733794687280306901586447925015060334411370676337197190125059953777779851310488900713478366363242464963916344373585561379293958827617586674030423341745220341102375341294024182729265690568583879054923947250694792681650566071563262978798302420301737588578260492475224044781557821356067569368975741557999615576882658870676491439250768020975845485630069826965767006834804575118044831912658737068040358710481907462924610420124910176844831059662435011580300844578950613689865404881951117789484492741850706954513818310556173499191676356675037758946364362744928999056052609496334960978216034474606749653910508115122183659644643285184393772476974208487394209484368659497543119945702351758205299711262121516586791341532182402626635177805587894811474192756656374671686834492935725358035227413335195795841816840625844856002237370013598697899548549085950926237726594326600735746376620825534961203428743220822130004977279461265029612900169405491929783034652966293983168084491412324540665059663051309578993508129206559270164746531238537328686241120376880603253166785687293147888121486176941211004485187544245536157537097626063311797575843848531194647073193185105576684829519541158798548883266356067643914084607323086337720270703493443205788058320720038118900883798247816166949937683390599131054515385481859322345243642768772406116132000400370200054579059924879525151034375208262266751371107008445974143236582057360209106110398300446435822186094581176309811567034798073153653180297473561342900690910695467124666398004160894323102709378772723945507503817917733000473303322253561764940403901118546188890093674917477196294647360811893807179938688879764873885050070010275411067964999013315833254951943145569196977936787891259393696180457554971174930436829942523709372750573983716910666937784255946797632897622780403771787971008649949635691392860764506644328867103752753064544763149213068933025626482008929786611486694060627565812152989237112712750768998672681882331396182442488532234510138738175762114897701211576788982683813481346209800743946896438660134622964399980248997205874101058681554972938773267255422708657918873665841269226851696447500190115055141896787481733812427111627007254155614733704111757953553540634081673929137779472542858450321922446847210282700150458084037723071206140213010909702485481140490709795781570288295772391637073602962367891379052743635430564074024255136188948364144753357222249560031092487761810969321639767124854449253271899983379293206699787439625379405618090644321016281744100331727311765609848506894031273285853901883622225398299818194458410080800264856850728880136899372211033668516704831842902353589615041396572098041733223455986431855531048394727557970096438707242702462939907343066073106263243532704945401701347810046524200694666831661632764242799274763904579562790201402268565054816291585299138384548437989524329060764146919524168191787978772217644899908614566601385591433523379389461332118493638978884744626693058901247703515384443416236638307368334310073368465358522875917279213544056275218457639654633838288336391279275078278321074456250589457597239104890307612535862044814369539424581090845930079166114110325295375903002704240509893980276856435004147192056830030582048180009911699886909019982097940756785916757154235754416268432453393891587753529275276546883061252548955388981237909576966310940549972170555894942257296039135531253027704635975067301299073235186418467545616236178933915893694950049843941220753895870259446069747306127159204596847034903803611054885688037313306243089566536924137225797752817622245764599469823266276790170754138323867110335139429449495056966120310086279336562117196180110294663040315659285776277785592778599475246327366611116763409457584401439421371327910935361575908413209114367507926313096286587267869954964453152172388531663635201125771758870017269293381026190245581748665972940739669894821044161098006586071183097733559615023320275947534923627037490138395793176003607127254579660294391393713180591843111071595120124662610385478668239516743140028385139343677380991044001164244781405458278819320667707747745076903564333896424893912493922510042040657887973324552891870390659462739706394962130906920718070199149746741062584891320505661186384218296407155530699689164055683486746847739320287484542729695697852152217337487341714017972890811172648769999196824121964670561112601975159057065539777008021127740835704030296139115697298270529346112687537366090770078204685982932801676647364822080963374550370635024896954687394399952390260111185483670901255452832190653376026184944496900515902821121937653095641638829652386708956337765154322473178317788497882780680378691597815782499824296285249664060235616696885125141049791036333758838542520434156665519810045096692983130908022223166263336082363597921083360697308851921643296675632731819879190529784043336099924068580568329125645210659701516335411959974237269338747850357910329809706481878118825786450282446462216828208761736495468916800898938483423626048289485652320331846039185233866372786240613363609829554107317927478976221269351197420814126573595987815307066494246486160635310550920744614375660241959899744786489589663213653517927118141518906722923563466099613362060857988361310557972682937659706751377610851157582598825901394420316705309178813455824854198741881782042193647683140347467121048140465232027201175352205144554507323502551878654947707396972842194506725469699727929674099794675021975458328915293726801457812888084206459415192737886194226555014632885572244933564710985300555179175243059733547832757471495837672590159532953351014637796103302097319171501375635101929050887708775274039915087217612006854708317341736212428764458215832949094045424496840067351248567503988640902250183038730463253949588179866131022221160131878556610448505076382433015055131370993089526818743555019181603171144060552952906086758791956367723082943577001767580617712060633455959309028723705172018035226477370077915105096041348756668557873879145759631677657978595028785396620334984519190576200164086264262362267671151156188086141483727188574403110474444486628485699175483674851685175748323982816986765912182677231156159765013781022791172948670266272956294624642356944572396173249325444780354464216974511980575241244054230387066103214763933701618695589076262108964187760140447148476447044491868856707990110816785335923454209091263838412637148510164245860630179223355715466037191150446750491933237433449404499601991202843862033851556861852732725230044759013188139567458491174184321402074008253876817470101231459907994405649596219481624739694949407240414633661397220119598615333434945505968607879075024656785376667470324874946602843896295520491287155979217874253074618535169028702416230992381254949304337564509992668189076708845047205495421958820701250216147792209155605834322602907076884064264840694005884507248917322418649879821180127870682268112214025970728838734301816728995145036396726556141552936009676239241249266867865692090178830478477941867174387987471110709061232776934327106559585434029200861186856278477512011462663800655128843063862588943422175693718619394212497222004891630637070276527427232860718250075664763146124244782459083945489785322959603993861230674984244530126190983906205401839436293980193028742864428786070559096463391262854263429545942730817289192960505091184334608206091532175924057517073394332094506681481642508462064330696100613155990350772412911600066762701517323249498540053289051247797467989626062544483971624534304030593486083513510090601259633720329757832657173944271560870950980685526660311766385052348398050138387915314333760839177789669125300030248657377007950579976185192675208444626371597354483303719998509500768222229006642636359802984349830065897989177606301601331978846591618273096255569253846317455602618051739004669913937123749408898853558682786275466953854340521235869740664624823488419196355715343231607198440390041463432981797212413612698994607546076996566189043268411104724048524728538289013607819505251828372518080321734573179538045941769650123813355246059308740195646484671515159466488334758487019161891385738867470049462546838761609230370553908500973825985575624997952585685191078629316526930734822460584707514738419495003431096919685456441261245373744760673222631962809668070603852724208875445534990089643724202482274137439700726516021416099722340671468565072243474358996173099235503652999364409227793080795616212073575945455353066134018562740236503234189558875956742844037398948085864245464500746352920486542563951472312080967307563526491647396546340496785720439502870043424915318205172054103587040926636842002724576160705723742605819614021630409053007732633410177487689624030504041068297524617302079158086887378770819619097966825398737481394312101624576424087743420197846949920803042580510927702657882918262137638054489121470427110925136707484606769240732439940455921292784211473121199991686032559622986908938980282998401402207142060677471584427641887121651831345943742148963797109285413766275628051711609202236338634496002252816086261401784151435547714938921653892359232320765228072473234384407024323852225397628426040156372119250831845015344952537880982110326092436391893521427928575669016684534895407730196707118049379369772478914227774769652851474004997294390148528733325498733501148622441773003950620759655553488897213981349862427677151930045937943163853811339122668940055396528501044892948774991869729237222845406647524763646570661871197483685043625256405206136728172628075783909665734223730890244671627803154637083674854264355413795987624618772589579761350149330130522969144222345616558430959273523813631489136580591602782275793544099356179212467256409466797867229596260524236821020509499321720937030725103284314954044633477468158928221782255892963149521592597284928179940665707364543858036491389487798664694051136759641544056335939573706204160337310819493880631140653383037623475208633770337506017793807069541230004655265699147980825731586427569463558964775481213921112165343209754652441261228170054298578909118699911554508800772945465212737248763983370168626045724530741030992503524780485540372853672668764992512021871349743692677688358975205128765480977214682626754831783353293763277275357574898227439817422845032974113120501782206825050976549833272630588381105020806514263971853367386314548827676306912782743310368827956374313072372834336644590470850240886990139374537128772539068025503134220274861547495986979799552345728537696306921382756458265379970981326164404167699281419002019055750037354883928984844257893292107778055090306674156516109853229704938376922803949804521126967109688474052512674031995786446360734416553015511949310550585197482129263602842984338278533811329994790901574472718409024756752799273470474787283981719122876550006958026798626315135940273774426091718019868978378834173002694198622253883417756739368103898562631073828451396687949630638615268056126500790196114353061328584723481200614112969587018070540266195418534408652792644643682541013626871193316462065131101169265047417832765790661828263961490929071349560906150848249496725266640717195524463628923538600586325775871463725195875085929433473363918974989704225185381360351106419912713872105804826846114252384467971512192362422967966806605085574914505632659078433696791311924217885211254916199297459682213615854800039441595209916814967659736896877242486077933122007895661212257287906054566814696221319482967049966475328333634291376677643329431851287858627208695564019422341902222854971965171511900942356608722954851191071084055312894551244646412178411338574928627653425632243405518142911500874608865953699782427197439171661114208080573430729350796495096183961586959236497399550501882381291333292118085111193608749454859076377624637135546449436455571544254170509580297634887744008253282130892962598631477699914996036480865441111274669196979256762728682965082289152362087559423500045061259239156204234593169385209194245733690540236982460039229205924055831326039251830560418886955196785336268297582281909794345140352929399424629850139945964562946224903035878247184677258779195338151306592740277390883834205162789387237652295659623069133329276193387924910180904104816343725559740431267154526728855086775442028648707293446627723456262961767055174335727944675753127273579061044152542234554498354371263129218267330868512594424739304843375001270771987385384964783625341733782849818605816199241795465386853234046651314189710728033428715953992243247227351823521903402964815257307461382178903840157758636521020023504541150425118767797980890479438879163928109752752346062804164896563072404739607311052698169009940592534833322388185615111414813691616320768236243799668467964297136073995381129349905879691035297468799310191275346559497135688278494219847637665381006800195741736616410425285860153816547507748894391281302778157235015628335218646491612029568620540878168264523251689613616311175498957730759882904151058045761611089956726313582287646202841332247821782332076603471825151539957398138890432550772876461908602150934750169397532015139831415912345493226346231288229121671860205266129536834946905635573535261666148556344508727194702653699756852929135139094215506045501332862166193891354730972856929303680985691338985916710413954961777348360129328456559193503185812556924400695104707676813151522470790458523128705196774428082514452140028399810681196265408994530929723967070998366486422719100295144576718950333154962049354235018436493440669816121591618049667331092124867752800787632625935466425873035396113540848208945854303567854324820281067469936924366816847006835460546544955949283784419617908877211313993165624258588411459287421323641113950923877315660367674638704383803570453233931072488477079188682791609362333587629149203643933398250492447496110043509468177896901021526461606196199878610527428999465574473805212010011680152955509611723328844220669090871536313125537324055525873944937800899720657565406328474833866234032500864873440905936556997766441163692769116532540918366384515217034356528492655041087419108080781483116384131805692720169367022145910481820792285193184056864758536721123894312356892772139415196536714515109430736521819428972719088523124132322516910930302814039709975551621701197716792183931193991682300907177561413746001387850746917708647749718930949864918010326509217257515826988525524684222267709034752408893719864881816927356055898141060560320077197615591110655717499316418635671106864862112984860372470009875850232102177585091570058117158371812103309476299116264647241179614043344649291048750503297252049785741087090288086322246354667897550064835476239401209997096803976670032792788359840449530294303160925132817889223549016308610919427414451215770004697179348371392279444488654903514558777019074108493869974946896674021118481096515953649293458272557867084154614764983258072780901810910271794589469586175327493088086027652104428168120676254892311037824528417540808581339461274858251122314422264239625354892217515602337397382372920197728553300421932141527908263471477425056797532560353204774290752882066303766201737628670666880988397120613967880263905737156662170678231472123218883695478287927094775749280866146304573789639225490441938386089870256422264708294050620788064382216158712733354781215225189174558259184172384158696223018515147736483816531329143215135007149467339003076435676263010497337237987154158073709792080861290477483099166857104144982079086970801602753539571157192137070993587607544466564541682345082592639839977630503646559279463773011539636222166781033051962086553510476015543708451210772712274732760935100604818354496690634932820969701993899547862367376555587417319901205951814021738570563357644352405210188616641634173955561855953590662861763469081688973691470022197389656326719232999699574879147166481320287506950419750029810486647818482592080526210213887615728653982536723164092416329181921350926307193349153581441455031914909081898251624301792394776480395270105337835241328662907024303606680770306762529496159968853464285556825842572486008267376499871419337367292967378635331768789159541252636711635794476837279183511065468044735042359201552309327001194293628057476996301357252131650502118345795571064590588518189052605340144644075062552865307972358742422599044437492505423820899601844176271845747797110195286720511649737930584881344501993024188294609771251393694928415217575552394992711679567113918243792814351905093177387169905010919206526225061929695056902396611534452347744574737293305426938391494971894025131448053378367500894988528324084111046730838021912391161007545660093628521066902576271731522930357778439288094060384933974078992957564908889287093070783919207803090605022096353447602063637013514373411636222587736539614211521626419878925144701792103181553304319477109036113229794881019816922564787332744840297296864921216206844164546756411299375484132037228962145950877513922168003726828077193314695438154491810522303190191433971474228603612316369795235117699681899916167695127679506859068218269099055983697149233938814748008255294343789283033404674783586668174098920121904501391768999175633676631386961534788902670812542926423142357464775728344172927694296347012223666626448282330183383397596761426859746455959042880036917662552977727186108708145828059660908467933588041306915350049057089075398891832811872266598704848531295441775369579730039123203477028723972509014745552779450044867939988424507812316330463830567274914598701992951857173671193367869162772489447030815938761621224944627254584235999616116589688429683555043120596488231849308592922532724235617264942581142818812733835252047024184391288254955852488568854513342877564960118050131778478752652544317804740431959919624471055853672878112532867287158541826455564857777757479132402118146584876521833026700550160063360291058405401395898899845090953563534285306287663018424619869480319334260324618419508816446880668751796012901101047829008701123241548571075948698397705164757688828716612707238979770867472375289734832403846889409979296739817251883986069017828883149790271719607937160422653349738818000830095324887578728734160442128021580438404946449248804358224465682433063100983855858147478840175309164103448529215589851430318797114260447882977220609657188679236184425469285495388798677058502995252777500233670251387702531014795087947813437164578402607961730471488029720091415577508852216217047185266427597001132779823933144617426838833484656955580162236353972750435105494604762869873970006568635736205170354710241170281818107094697723370490514274697326811234189406165728789782328703846504262221850098801607886965230333216278630506952257651669414880195960363779023141135388043571140691821410019775878079916107300180631950877230571842626956676278973012202651951640234056325133659603265659850391079983209680172369399230025762541680875605306748092146595919120301557867027627393741168144180619304342111432116426302525499474705131727801681909413568582804298399188273844576647134042960025962641832868078959371482304001684104201130059126022277144347349252929289133368653312989000448319090017917263220541216941217293471090216535503156149720283110088542752835105220114200014019482780200300497497464016506956078916769313213948242314808928605176060595496022255923797005395639436152596071774234761820409917897874599395848788008091145305881919169672381045575183092656254693715491993882387810938906775046674961484193962894866397611383838308700632739644072585175473736266230253100670910470317327493049819310447385061272335835099691355335315601572936682156984243010130483512713047599860156905803384827200922955235939609395224700128015739573777809451627744289127729165546292446175743743478174271611788397693621816663262267787696824160445118929424681808665368315582929573293581070850946606687095656066733859171858560178038996565172176658886963387845960237881755356526775496483860794877128764237988154909012378262489785359506285661623129966368946898504405576271929210450923234424930313801985645403066579602376551369388003834750220575691529682088820185997451416909980707450844679785497472323593405534848425592741886777631171026541147147416100562604199954755860970507782730263067839451673247825472846509924895949841434581761544016175511104564701786629261094711057298100255399927006253997258152933365627436506865677900525205139866411648196629615108411855299550974416259217747492308027206857458117508414260460521842019376543303576499698711246521687946620402021750206088518671857320914437672432752857721068757019247665161500540457858797833880920027063572515495187308686431438537179106080945089606835632499077795087908493588383951470236727154323869371290856054626387990925097540712130290993102646612396924691359024753654489051482100459076063851505146414881382720731010206370657483504494130395497743213993535943288405505859645792312662828041360353689053428284418002085980771022080009913530553669337922856244125079722869579387451380280987768927927577452779768974919480166647730237185186662000120699695901903253532463793552821611205577116780910431413237418787953478529070716249535507842729280330169576297825762664439257066166646663878660460247196240199604018882237732013010675017616741774880963195360584957989683863469536053108800822704652680573734560326652618387456827972373754161787816039467012949872009209947123172351660472225485966129218163817851512423460098470506082319927719168080656497282663216259226632572575184939904451155203598429090298879688645002114602322680204185930969066437552672966479552489766721600124153393856999384444369668520908431442221544728397076877140585546533885336451557067629673007021379151493862073827432805057526004867682358941409354720678069077851330611622070694453956772549686704787354999512257046664674896502326921615951442907588956703562354443549619987242293345901170361858912957839190806146314066600556322028963727038816937740914448154561074921185679611936918876999806119179370069973624515319288278627499504075638633513393534521070007692275586215294414844106895988027160582643048288422508819950757890767363907404770666626076738525820539118785211482243818334865811920597334555463924406930763907647060925510537720091415562362485372986231889243644587678001013844575028781508113983354943931715784400974732148413293714305949832615625724678446806549972078433729415397097191571748732638498923991668408867617209396443592664438814838852058074895246246256260173990431057248938777519768041600836391827668214172640039835625015655573493416288966663393428995365324589424104870439801250987340915228742905706911073744535104002253533764752789660907180986441541643111943726632999816404834686207228307302692020434778566291791920351933267387383512888426549990456498540310808535908705020464262646462979697874099885415289038645973299971969738654565767667264286446114827418603077431458884775805440961147458629221408500634405939875310502727754364099242874960506938938454322374663962294091544229408148311134296594627898350581234911822820427156945043070118793145544618875584309511617956250413134625336237144216587895408933734373354670722154732625822561955859351200264592427624494018153136093810537801591584917256664513967304192041311508922503652308565271581187838638603302525591050127361137969087907351149393026495639557760698655395774119776648264751454596382429023935776367866187101205595411938804284063220959146497149221565548648771224448813660267674099243581114823766851842014054325742002908938392781372637989496647353677880320766510067005671211903905063448317000919295706842896378063901597769359542290501333734828465903275481007053966508791401588089088740389889566085454909405224335283826648973553734241347631036112330348638263657811579792702474320922577703556379734169942855239970268860277676765413977846286280630215924850087609141946322461654752394192497306545437586060495095211638023797696747069743149652633584515982711527401274965342507166434699926314806013211512078750140800182453355087158345086935091965948211732657754545978665544913043569656701090717713897752823453891792613183424442031146781724480063838198380323793022801665073967988126328174163814588204464658326058732010185720765905369786151069257680354908445413877195083510636455408051408976019077452956511689994730185026694517996956328876741135561906879106334618155712060470936308764106572881005799420554185905420828927635950870627236883850651258514160861799933999241528219416647696209759038827395951333730921210450154595596532563479064939512225993213463022805185746744197965997652407590341649988816419716419161806411482307708636695617917404710081154486280096019712364371406401797573199043319255104423349050710814319555180347987887962836619508269098179062634500052616943786120160735389268572955082369443213158999441244567276249746879714604225820280982012806348016066055768398294750482831628081335586352217301213755914827597369269909104492613063036595267209925380606407094982495504219874469972355936597202796947689664984409847119532784750907160288825558089390474117269185894664370417206096842353045637129417119647724146543531109268745877716366852858991449266073479586569055333216152800602658580414618614875301997275084143889620909408130871869382063241347732593440838690545531834083632811409139872321403431917411871705806232941696102562482773543733634423647077360443983820471047735198623135799770741825281512265896703707996205458976602542187647285892529829034075289079344308882989348302609897281009930743286670311020935285302244565447067494017848024422753417517050125315323451453048995116747048483003306054113614800507850052951593855295815224171398396471412554289118069539815311756939305942783010304095955076700979891366629060023777676441450655204629452655869493330502957854630487961474253872255528914239079834397382339501854538064501460218662475815024204627393377912191559641212219991249908060960921991749096126835986712567238562596949687959802279415932873830808130760884694027242988332241514076627667769107630804804770562002851941182636051053160698010185245495161087661856922347099524446779540020373717813476645883930806206657985083173569719017004008906097041384190498883908575788606750052315593950803783242453197471469702862232080127911381917114662466365941870170847088006167805468900469393164616098427198481876081672291931092562905283823767881735320766348090243018641475549406120880639815600640948452597161010188235876191706820431143730687089791661041841238379546666614288378558770619539807338547264905749979330920743286794105381215516300673716319929314675565243988488644929291571265184115992140904273038123313151803506587139699659820143094170049363308564662173547877280699906380015988211144562591167410804220709368974528242114156130085822748935964517232573078140352032685378453077207801217511506304997391091193238720596901748346776987779657666163673577842774621941250992737861308906550881054843130891100687446018961629134473626935457604106151624180916108775524219455006301257111573047055298100053330016730293455494412229817675096696413234483466436010692520126421095000646301713710626350172107637542374706783545698144121076353898493193752067105590966820969212879429245985134153798366550366548157959134033057194502247007848508964513758070796880896220027046332373270373302885440823225205669737700187489517274569117152659186857048886973285750623204234102268858681785040127014950059397818938614981535461730238046145739211249490358593549412470100526647527374455609037345194045997192757182248059406580647862859233148102715972170880033312540340595184135507232906932904119539335105804541934679531553506390377699991723197979508330118885952653546927234732297050316710913318636866291917297495488013852597291145137259360783456046148566022849849470930862523286360800586838925188573478895519772392758561157475932301180700555962983256796609722614915884497844609340245064728250330075522559386482170560174812982707504914538769765491722037381939424412447961817087570043359283337609121985910880710987902947890308742603693239169808200543970470135734772554488988391883735813975181142971677575775484121965403393088950166679352321644779384061877492524873348534525793799675099569214501601399922519723850379205476217627257476445338304127701319170493147758024636347431755803295387314553148782504600746432871173349271919942094415480243854895714505934737907207498920224333154891861220306305526009708751792222476960656735455289306966329916939530641371973210476627849518245875959215182824855032273808847395729132565724017557030135163161190818612554268275436326637865446385698752651158186179178964101211284749094376206320066566332695127313631290370850797338706766316290726959319057697197630818907504942102843580175445275814888024115815088880845184717225782567725322766693685030984407543593771944539785653558724347042786566796944937783108509562562423315151668242997449307563596809121854454785401406452007246129480744908932874791610754277211634587867187211936375083557546724993013031674810089060961787467177794817399684831740794509577037950894127605485118769472930053220653919328756965463861571511844078084811878528541790067813216710207483742508815804436384058112648875152971267548154112692979638513161085229417981569511797723563520105340849084976549465188734336312331410408039290483467868516702957558490781870671201575940124511501990526949168891103899163989574721506748747430510029321431222149249640122034631111925510986551512897754867249457097386104821451361710137011409826110675237235080059953237085251726937047300413879706983991933084013588442753421711156422206617163489754388865073571658218382545909219154224363720882379409573421594822340978556039195828265560161538579707525963892428042145483347978052234168605853924794493927883107214084501855370383742574359310436978251985956288539045754958003293262565370675398754416640429334233220531974163656268313755437654991452307434429437408553818872078914429425870180842248564816916226667384737042613919912048647171321390040810918777742745428019355826979830151662726738487212644139188851632595956284308948574483599928649622829541764951962616989810113993261993982783024756851065064962851608629429758654921976120094895222781632737436555288436842704793618834232776162371732568490959357253900069456886631535412900825662202270195407128074554447879829043452457163667989477515622312606054820735473944715857435015710810505667438821830637332523089366302689886575849005277264706156962624610189689009194282646907031480643424649022221217352158994243911189487107426795783026907318827737983269344502748662660170850390628884990676384199464697218610955629216168805022367357282731574082163526925887719174553010573436855119455119243654051724606972619051280843419473020402513151981740035922719532217769151363869344389318504833203937779889376652913442926434259901568363685450642464853516106821878427424962163716443007461271697809763675636320731877192074639231789647751758937560446033056226941341534540621572310674253749177896417452176753322947432157506335606146572125768175927731419749939586515031425055130678845066874053610905081272712686741067185702639079364505326197518976825763346313530140027164637242015381850271977788256306548453697187954234381168062724347152053332928831104786262277442504357565915184749202282115733783503503576609943213707831093637160630502042812548651136900695224904597840822119865198245790136504682825375658355949140238273259884567705274671993749370039880664079583927001768417959504234705560795466286488240745823768564114199385978336256203581434042016606830830355775455681678182484964025179955288457268931677724723422149139943414709647802312765072893721369873422725601312343919218017926125984022427361016445667801687802409756055753111721230027104575439928812024926091563742568156882928079671312842296376068731734231820629276051565307351078013523222661946037827570415897342191580392786341214708740517332488395318188217055772207351852089933102155093387838769862628362839497743482070706296623154817044741080716601577814640179305662640911259636439904002309081465766436767709553374416821865228298877721316322355084626036405539462833031161582164492641339407856778189263121655157825640313941470394736844993351165262456897052304949595298886233655819495782449638864894071762833898413491033047723783654985826737100659159802417938972379335477605942239769724385074187330259167324141749425658419147352423458997262019006645567633241637940901011268028775505893764112537919760423258861918078074026566405376220542598709201396747837392865902360565450667280862269598852289324289101988460969174613853891175834108776002451021262600711858729251533055976092586845160654612596104734436195150364234657647144522675405792285325752683931601048237035588335229277695233057006377574557023837790375488117675089483609981401226756182120313037286492005506949052911199372761183203581313732462649410315294050832606687572284068797933226374550661632732391282785952936747264748046437630708301204062973316829708881900491983584247469273360657536333738407271805809409100454053723145616667148661762023651170082726174956915361237155761085648815980005005412405506911220111400925154235212456210532135046100237473719247995402477115623676400668695839473051380615893987023722894115670461189433200697073083415246015039849917966685656620517590009428194647359831106453431998170179545227263983464988172167535665558873058801859876002258206962826964664769172480782407530313526235186762400184610114202312945483277796194178979378620060843469273601749044724766810171011434724241651653594171204658646069563581091114823396211469185362325782832547523161202685757945027527850081908621212094244885392606212580759281256309475690831261203249437249481643618660656400142386078064670851852991662706984034204438329334231873624828049409784103396170183274052834487481112677255783270395703672898443310785781639664114377849014713200949089656729097254886320710227989555007291042666635796948597896504172671834003494351490596730594517762118639112770380962212314811078689231086689729956031048747445567075175195205143418019336374476954963140830589949166552579379326513073467886467886733018583809151895804018076247556229701903541853889060531848110607187276559096618993931145003767569839149611224315369221706412318741115068302122863819625720641522741422015504013648698650449431659691747868214010253655299056851045671235246157603125800953229999085439275647251968580895032121884244841172517288195133884332467099246857112481686693675357333443660056241627622203529561678431025717481080052271361115106905708233085289332255532411803887771546632773115822262897668440012618411980585154269682827486550653732314863565675722121874557237199343329574841667821653837224562016963622548190399226914533811877070308844696531198965804877812379585227603781374402960413287125351992441994770649407657565985209460263543660061635055826377980351773639057401337092636931232181396236510632228858164161940822705498813141991035288714477150477196115708000365196343306510853141163858976980852525160259988196434251809444822824546366756537194058933570653767464328158452418690080095816204833047360883676317799186543535368521056934000375650439598692721304346374056625587645612456674851884114099784047817655127254736824656707283218970847064479396372428471317600013321819668275548676358221390907119022518489397811307534178410028370706465151902722238393965843633028804745542952577384663321225908397491902494474314802258239407987678296399643342863558121828647245568282900481252323042404793669377654457851255078891566366699701778549252104897480549057308960093127293258596120408616451300802251960802098665742666957019476536161561059469524431716578387944900069407746540737728970335462821248407818395367929106336080506121263829900448363051791085602667841551714757356360044741230494494069036969752039618356696316984776321407548387725774535490390585924341265126465152150687264651318353416282058034642704372627180859300535899131918143755728833518552250606743481798771595405055745415051480476495214810782387700418522094399612022904114631855726419699368858716317076413829362740839755142550650754916167902281912929573958090622411422316192896059428351582819407368351570693147430256829994081042006247516266109065190714717897030443416234321310776939247562348267048559431004230093648518006947445779355309775383464932477166838725098076189917809212542812779840493686555918812820767952425235903401782699355042120180298894156211689035273611094034292528498084354177521020743503496432748582681752858830160847802188080596885401155115173393825411741228639293683683383229754941780204370833118806901180052124534171433152354483114156799161605124680509194457016327273134884264605935657608082672777599754486240839397044788597426477752138638598941390767507089529917947747183743500870117173068651804990269842420763409124790441639307154490609220558113019830655502459885561392060848951329898374346460244484911455304202375378373053975380815389701189775681200579221100855749575571168818370580039503265721301123626860540849166496362607170142880000158815957755862405470821865898356365629351550951477530928300909037030598489408197567018624165202831978598965758288569456527124948663936855191265702546435592023101640519985826048824166393918125907201069778503775385502014706995336922404137803920724166789590339019100025089132178453919472797959894627698459372607360647920703868012590729364015092838266434782322031888939044694694352219501157707478212785160798996477709482086708348517075014941392017799472601762609411452694414602251779004257454699422722572740689733892887747233103175894249816101103636412398376792034799454608794129463825345590647367416055652676954911237638843115749095903683249217004148748524941285443351182788936385798683940983928718208603811970522426643970556574048336996427775752691138796459638499550716355487006417179589077274491981851789768094162163970460426382304233096177489086032592973786693302689264333384856818070568425173951594405949788544411869945334487000482585103014722682214738969521824798124609541629608781813361036403285916559564931766161189686590375520757782446838983716957585085204242618828383188222482145491150904547576789379534626030402113152113551745550220119947173765287272954817716375033924303995167830772157575478069745589647057709159759016761887447955931359295754979709153115756776577183506372640568366476845403682937697887141997133878773414135410854029434520280552922942813623969628112116657303639502498526580266827820897507890146531804453877390783545486524261443651241126420327426886141453027276589018289919164272954887384020639665401428557127197189112387765230908338558479717255204044456290171433420229120114366929403888672167400438867837509430526644402344592685327060392107385980433049641343562434783419728733969001873433071452970311094898426965900305043435233369014119518463139920044609639863244313428667888717215504927370708224655871101147597122869658608124989014913693880515734829220766157452372042455485710379398596440823027462947307842706311387036724702676110449933662238670038855639262526256563447210516171947974309974614580497867475501632704714057394124723851866738409332428903275920960266843061486347147838139935696490977826873499941562518875416512555289628156021955452408553351670273036166774080407869189822837944425387637473782851123602828215216677814842134601145397686088454393989821741976384773243396309687653277822317380418154674269139963872164816366846295737023287413973643477666409383317069565009000392337171648761516729709318787646136525273177223408446265222137872760889434080053731295850992957686312268273787183046030479245815951516215806160321504421364542695773514485041876594888768401310370189057047205788989174577810552940166562460519987944680375895716990790017786890123776629825595567936533739578207066137748479329900352185815147704370007270221912246558481448514761047339485314305323212344853058695904168071828802189041294121064976601449331759394824934983393335889083928620697883561854163732624101967049711570273263407532836701183182735734010778401837212842458544044313162895188795790831264146043278326857958304988186761823361222914409718411540204010039560093565050698345811549552516308214395339074493901751725841501592064892060923397808016252368298788230353072548699957369475269714325540430353085332354690828932430982983598228481132711701980648743484113223471479167837422522864205025126811014050435188032763897976988197984319037956838194069834654888324670321183893791274878201731090315766056587963004207372019632195061457892762841756266709750150545154574202754294344222491672450691434936987299582562625399814240898348386178966167668381966231969109915936616975044823354280429227489778918081909241759376484170537923675012434218012305846560730491814867798204810986437093517724995101878575653137404570901562229222496254524018582382975706210015442762120171687259047430070601677585411014186781243389770526223525802171426654827050463198679896679649632444867269975826965042123363328821525391804925692538996586878990351345846161432101270048426553849214748523165058678556347075945226925290084776636913176570607303049913486643559617157376763184018477565632498758276456712679705526176120382768194960035818295202310702642462272231378153568629794590324183896851537693723010176711918973731624510371473240934611543083858971176419341148044345583213883618617007770873306654473684228497786964360383521095022030361785375456223909112631592383763054555529811242094932777198830861158922206104112189295178401118134900839893533468012905482822042497750981310755696200976388001189641157100470403123463387729180920672061981659238706520797276285183974577948632467074327629125486971024792374939145306976620555558039459945345059575836605581141165527245168504490520505706388526118455228109636690760053598469169138740354825800435190332197106065432649148050150307271358495177193442362575945911393418687811740278214865615085977869477510796011227686841689441706354439000401052704693627122150671934220435475450225996573255005618663659622249611351552033770001569362618370483032195183724240987460441879232280536698454789486857005354607218402669082381886969452996684997115722193239428992824106772542110529580522660604770370089409357715916634027158174989745538469160968615559919677281244190550225610229315422295520864788500187971298840748846755437414206032532302203533243170724242423685408152194748654656186475643013754405961791929819350152807207503609203352245119847060314959229853649080775411102963732716886562009062880943234935416009545921891026962131755591853055725626132101763006588127403732085632039032492338906319364408706147360909254530963744754162403400556616744967798721029943378083537470810143028744325550834638697386273308202563449920172834728689661666347057591473227240678971760356578587659920471367634655695118454078378007859464832019419767258015726131061625180992423241677216110832682627601431223300377047577014194697355486825022666847030842520245834614406359220434714112284430380295600101605635067796297944494040427601963671001547905174683808440410647564402479221146351921755734905326115650629333184993933262744885421582098534618022593573069427561990211337602345171569268877242564182499520815146843338277736226082892914266314704377677751408240709931330527243574357082375070070270741605687157685312029572439528660748616226293812390470397368073726415508331169299304903526918663406150988480266926302749098306598445730023885272315300569596721810542619049270730987304340081345643381016768876377396865173238982425667737674180868035814286462236414901311029050441110997008826929108974934359441421579229876895310929390483527057225264572705588003389483085003506274099176808654119790709671397749095133890489303548452101943619504183440319982576993824258074326951191521768591285559725853262238471500241230146587514710937605077402388280516199205662286506224801597202892811542474515166746502765429030885792538683282649155462439382855456967840910387280172475178203318794632125514681550146432268016126732966239734032647977651174414172129644275913370290356232668151661244471746102637919088706677249967894932733109648491745318161670484360732354524207217562050383273748617620821447636733658611102684772009979664130024946110280603054119046926650127743229477987357492562409404218135744583461151970522991763138198827955868090024559596748020920141154886663771186869235423641585407904944828910837698071500691415039108246371320095988690273362726404396989676133995076987825591912462071136847811245007343300248112183674120639277887274391605505465829815692175408907104107249474263783766649612587737470677761846285425533316388543999734910480718693418433787655495211194066983229748016437031638340189466827119765723026265230294289417975227921821318715044870377015761346707463620282711853601534610955987732565497914394815148381636965315594032125149204986815002668326343447843033615642495176688877583489812058527876791266168686232722363433170483479210009778105545718773849127511589624882787296638301404209651241918526645611401584522968595759653518366912534702803753311361548431677522193189704327802565325027153908018526318023602183374954076363950403854701010123724105190961116759635428896604226732708281232379277186786337991299525103129893458581503662332028719189757458972945173500300569766076626429923616674017466154514818048079661130847113317694466830297630276126137045791204543758643871186855950989077880991100320840791191888436621395006700547888288738012720934102868734197353054377789823369210875658290588377731498275101950029567392511504722686507918460077809179131916631954936969409918969691974384117961086643842417492087395497473151510635911456158051303459604955801236213960390786341628367652544276695817471217369173415233607520732424543070119500936346974351464982660110367671833547052778389798775366793759744410378330650600568104896096289130209957530714127082535376097666938778317463559113375261576332584976664210246695107759022279384554631224314930276285056299640853963519522950807203751269561094560916366436265404617856434433693127105136382822774284865567637502048209212721519282304600584890887714232959220057689292963016463035073245918920974375732187166740016133402392315073503644415437253384821825166922293305799917663848059360129371763605074593809342292725019393602982650902022532199088383764510583540557906499676982592413083783134530916416979017084785729504058220153433221803623410872792455329748036060965282554051886137163059348396025535232395642548885497585350435168630714774414156622060817316651513245190613537535121658934904187310269745239326782280237731643973065206942424493495649362552367470318692329574431852005089773952517112648437619078747911169554502396969209746537302970044057103708532098651164363975489001120273168164995500571372552988232223343274461046194065898936898653036490994729110790935130855355286577381737969947897208757541643565598099184974373430370277382005600593011052115803791372773119521162876883309227217356892804169010477407920134060101008169953826266445180602063637088257464917351021717834596560909601570564451360638866834433780958353999729757278935849250638509794165879304128685944829522591514053697918915278898700341039683046192661994339504447826193663442716086147045260794774752303376064944547152666998141075992959819006556458559461280352062102874781183243595923965897538987460648517321735833113719765734206134579890064574027443962622798441960947478531322470214284715248729714794684676617784127838267190650082024776069592173320369059148490800238358438950876141057192085414826015951883885588572837898570922261287397479805063534505526156620355810179994270656733852426323537003778270895128495673624807959498451387008155484353295094408004732086851411033772564492762419419431235661021019921356707873764688105555504901561277727463276837820607858733465953129425784441231555842214761187993387463927189074252120681533410670075099085104165526309735821080500933705811361520534083975549573083875060649026403889209188290991744699642852296978237697511773145212840173372781986392665880714098570194268008333881159847322365413866582261794203833459747071954302823825137350990837252498448206342841830950827054019455898336763373674385422161132900269021755043248522465208726942707108452442543133717827799982383949292107467035593915475444018062572425024876549454419164097811683605540789722888086020762365677444471173526163421845030506471893645776270761436548362716528592703391735711104350623257014779579623367412015263548394612554895107745547712895368228489100183952063478090616925745888097409004126370602813571249011184430987169705950501459522864777759709987095933212766878424510942912550216611041504870096670164379059227823670132094427532923967830568102362522797669775203222622709794933238303141122573862608852581914239281474431388196328330272150337964913662252107288131068731035924729387825927858665211880633627211720370289276512418884693999253290594059193994520040682401194088379260640185445913173600911382485841228496369625246981558822428499627407672881394569864519192446694538615072603568770806386068910127568750928451999304072944002021610141369454362081069010925431705764827887330151832936248311131621132473247913476369853458375132736039858333043636284420593937901961008877759262690670857051275639748485930336078231006987545420636604982535451907443367198626035251728567483063877732492763361657520011965472713295564678704403786057425509954317369492187185626631685019780011237616306220653557294802552962134711502330228385361268178484035332874204001879461552843257933238889295192448688378062463262652375716803301647609718590510854482118827135338969723425445490600606820647095840499930062525168466212055179854738073867663693082676614389141556313742493113697776436630274326600044323146259248885903359445921821968904170145923743822669157092173570652327740417899518484304492352245988690341844962932596768845335713667941247819011716330897360545150247514581156809296075002458396424662354383279162351602776954897110592416213805481830155185071834255227785587606919477577421407683570172976455666976358049391371608098159525383382419312509323661745744973470309361788272419003232759453321288185514900288274466449423161380279539092302092938932852768777393955342169437839787872661575487920177739272694785033516026858361080277415843772542612840005505190167172806725371258936286988086791786114542981806989300738590534304903635635238202900063713353968292401087916857749706017971149707997507476298811305309849535815108280328876392244331254716412326290946875933080736311921238164290104639471746294892105378911476396575734739033317709279738138899393712552127058911202989960930314348149592552535539504723045922435686846870895137527458747814014379300691220289817329504056672875448884674274230723950681049494099457186838603093398936691327539231305841108670968836884925967151275621230467560206328211750381387297785353890945754360760761190286674235747365153298010817688000462311118381823396053526084292136579504160462028004462987137999668173987024119285240669907126152473755536001824361844559847683458503857103974041051682320294023910589124684290517517611086151112378309907754250426757437058726394819930939684635984502720884226531320106362816358119813896985427806825129056796759400438858531840919181823665056278312208184989271696634524461047138629431003677758303084146016784337262800454378670203106827303452213500600357217751296419758622451901686416691583536226324740409218735398511814076120824624883440520733132042139926591651220322166100003689500459702817914733617891002346608972666383679666423447754240512851508316832397797662607120222351776774691469524415216137383927707416500531035325617595516498022638831994250346869242096254457683834908954718550403536657275413612258599256705390653287351305031826758891132505346231050533528059375460404607403990739730766949163245219831807691871767928309856882295788322118197208155452829954388373502464767352815526312401712605154201326338315858386935421154962494823268946531618773627942240559104652875048552501283497655688021191773291750060584457672678636205547789774441617614393569427025836321210297984936745878345457212889906124312792778558225862494440103417433548875441721371007693048969690345017187665965559037404377755202413269489745235370358239012233954638927168832994757583714624533905596760793540069514769046575572450353701777837770490031086350999104271603290055910888060867120386859723056461161595434522812001763447731626346649462506332126001004580834287769108770429025096976690812893587714164942763968852970725914918954180757335641257615297151754823915263887862190768665653519837958634602938635472520041608950184095296614623095706468615203321945577625441825375245433972558358345868529603254591386342826098499221019662534425213717696383926548515039060651249593176283089634896057602199397284710434570141194149230917296826578790058643861854438550575341522508256546755694076462513507614684894214423241627523854047241020209355768635067601181098832620672299531781952705744198331106263380761077234132218164048165731426499017832415806234953867172335337800630472312503292833218478784044972808943203263055401641817964193958721592528831276306875135735725740430026140274884319414746123835447114455768457286175743339611338604879505740528736405903087188904036648731870392242483792321579894926201362046135940133376706696140923396851639196744727437884636699882438562779479010138110054668769751725524183637995209300352033933635536175508177664644120274678186108619506570763440038227533865052254234769426214956494376179542173742900678151328486017691382302108459747392715281001383399741395879715627739360191926331644563953345758843812775782726583447824584029182412371167933248853652922551360745232501250718413706635929709863660674037221781426862935349314342596008537931165787289715848923932083969660625222395796850545990179357416355473611532415276055526376899367096135290143421627132411600792896438084034791382101231317571923660680274611018280346162114418962865500124439770185641698221492006101971080171664829996526766512165047544417825735192151393853542205454957478010663579462964937107237695164759417933169196215309898175425567204671575715327611716077480937788262508757696837686564119277544354260475336133870277867767849049393645993658990035101237600847723928950881934657951027662836689469408415326417217344063860116556187546338885246674285808038171902368429971988169490080583832701186243998397455126358073650212219178075414737708176251475956623534990441698112817833952020010257768075796271540813823447940006589525288080521897143651580199003735007052015729756216090460868584963510661552333201170411961093394745359201603838835341221511666789082948840770950358502102839639924134269588217046243852445989840923552785666770667067264814885998461971280383456847064979083549937500670107305619250577583503901814640039883845462047918708634116295661267923843643919741727439617209036854477252077733286101821080226954826647232788832637095292866702098589327977720295215390227335777880950243674963039878353214094946223081746710342757183474235844282794576597784854516539629494970351418647923609220472320162986593048701860689464797967096864649015767122617990758664152198923663153848563297179642511316187544996222613307288781379681746300407782570610710058441098404869444656672464162854324585193394923711603174683572605001835137242804590373872381613492249998217178926352024133902182830726423783409073088909072651934308263106572875712115147038360405622488530359161043785549180525966100723723446810060116074129251711103603882385157569129210662195310177924667412498102706357963302773719815672793770348329505472721680741313659600140870414993153302461526871747964531207502422682174469529351821910018701831474390399687053216681293907334411036279735137926601444800961162678114105531242060771146384101127420351762426147823824746889824122367935038346174477091420887776485871327296814818880723414855683001725162071044607435044550990912164873740618683675094273252092796155100455372101940573728585121492612301857337002536347264627904461016291672352385355428741381576272131467866326331130151149473972148339570649416257137904368816385625167097630192596729047259159184880871944704000552902345671224331610223475426793114872421105739429287380725923051710411205180268653195854248794034934652519127488147116609786728991909842592793494344059350540782006585722131826579551219384779898295923352081635144099747726880049535354311934959803195977590040654715755455642304680547191654574047872692371610023529084554834962428304699870237588470973710239470717455401602649798823487395698310778879124871416881861162653284169530661874714194342106693849087548782179146885637175263231849570384988860329326871787095408004547606643781489785705511417255412567127045942332353416340781692884228694790091882252873724138417518629601559988582588910345900572363700497122177698394157381810148956972651375018839404628131312980875483821275710164702530622492332052987760785951955941302529327484126507822080427234137091262987056209302649935351556604009990234174976634668971333781648239013474268514867829318495499056213895037435679853972325196646798069775572495988167083352975297982230824835851080520674723844811388934695004251823229229914547528383146562803871547661570832532833623976541644513612606324665656455299433432298345336336553610481607748590246434610637890559533717514011747974392581277711258424829913953223638772693331406857900805611786267117078491893046659357139535068951053046430000089379188366623444495966981500539256981907456727665833079016141134481888591303542719309819990711841714995442387773781712080311062925280439349874307347163434813639107388258940150015530542806208779186983552846119847038059472317407358041410761779605921511375310814101235234581731138730109321822119861692971456631014552325516474127347479434030706057728592874384982691784360924580061503439323610717543172579928860034751307159199916231487438681828475322293559892841779486186197358664757583350546170341908253662102516358391068765014402821346104861098387303449146730163978806108844706676412034088405890455815918854672022542998260320603562170610164499959674466447429615408980325440366591671757237230524351646575738306712110863439633688690930417376572088925494395629240523515664538788955561211735639653716105834616116601124544771036946165613534913957749037247768752305675856073283762970671378153632490869035570199416769168529493584005703969728837217499890272099467650850626925726696447929657688297478637026545736506337998905226026286008060446463300619519261850386275504528994718118318158116174727775163070443165088894846513460314794879458825909644561951631974171626929481108482114568937587548745869051833566826381523825293272468624850853881123023280364877787754104961231119587591444236015478709454989595207534118327148750613893655150648162043140635540461543858740509355718436498750771730449385352241749432078643026454345606846819791416999473922162416174060808478532068412919832524067678999074827874245821590163368854426042573026011428334425374708517206135015335560456125738540119480495299830773420717234783858402588488914750268344877463369358582238146017618385417316168748566451749161462507182240396726298278694143743257496618528634331971857483980123879874033467797673640376469887792067524049030141058042461833069437362632970890321698394798704667784645923307934231741330784910426196474970212074999893217456192622710281392490393158163005081317437791844459323627529432889426274028175872657409498091287138065499252752223883823188241899892111853606699354483672910351118989553907255504055669337869619584817963238951901698373167792746896860174931239059841830091860611111525593658601909707238885516441655863596330228432814643829134900770660378851778151588087075843880835031039276696680221742677556663226053118034625556376239493131799946974906487520500419099936021537739692659379763918766458763395251027932178972343394709628769221036769419478118153500513667945459985803473433778798151556441448668375975526519964786478073854855756953912635380480369640464664718008452180109193378893560376216487999108047111082509701779454026188309995992417465021697573736085262802584325680558463429863490559769079164816288837284383084500801413091153004159419551437517746162411649396954735485988569861347493663862584898462389088862586406955469035252737383391923381711063229175385457518664871752383838889921130758276709330723912320150137722791096327371552635509157947371841168662256832083234299081466649063369145843975637745155905655879439764880529349468480961567679731716101259350450860291311072786776967029121378290603863659568258781907152908266164216837873257482626598386638639440781326698860315295381158582723319271671566256330837694823611409622382498713175565936404678665482741793844290296316606199425022451407589736390274497121775212103344188065514619484402595263985806684572519231685294285782004666181172819216172239923362229583028816320240936524943457090741444389580479185149291108848644180710978852645724785654543044088535726933909923043521192566080075930252459759089054872434492297194347236066638019751277854123797784813973348624575761571989353021322081247517156381271723452286929008943292367980933086334983601899872086644875752567172778680247055104166969295923793752987175691158014257999660507724138340941243763787783719396684154650843223355139593525073551837339734123575195172161394667446628517956377148058829120514968785288290661289996629377610378764539770802003990392016950899434683889216109669544598282797416008744962090627390748556054797459037529173963396519493036844696179539969897001223247991023621873222112058033055390633087372871534609259816737197050124867849390351338870009179765803156761659108362533197714347616427920746847399893265153390965252013944982661212114730523746571802259246463465092069804530643344812263944095104657022956104583048875646145283876494942571790938738112414830295998164645380838117835531281856571329718696193357197179279440704789986434976620841006595362651792227182920935957393192916467201904055379260509433248906297874496444451793463556533466717875731599966422298278862453849318853160819056040657187115760822572815187096270024311928850464137836573328570078317990452262064623376921855327968588334071408260188713444616637323933982476507072494180712990416999202426182926501276417018686997466663334296361887671694143663701918684539992999379820262506550945781251377812579500330614084894983932139194243495338931865008600730397285490539025258234564106669249319997460784292007782225019702545239439470361625198519316541159232683309377591474347168675680194527143531304502228412826842955618176652872475592319368102441170532951285729768615864370958714710451197815773713762789063895284307092486737660171546829656166562699466543887899666921047329938622506358599392127867151799265374510538286332010503525469929748972795864279390767327395402666653154432624385101600480428791149047244069583682896621584391570996015475581940764092479804989639595024984627007605818860021830356227991086554423949581226425474001939952968071521359583885508653917818092382207848534445820106907591052673134792575923920292409690967302743437922675392737805772530676580561665225869024387263168265398551209623233491070668172133192022154339004554359481151536467019302670782623085147064079441692543904595784516351332481248009693897783088891834543341112698053961106360178793007875295239207555925162662666481504251324041976537909097679991459051990335986576693311999473007848620290948835337783782401246009354597243932556281060563019256184234160903684503616202730968635448253242996901971390080238723345398473613493255590018919382268186397713363405462786863215823730160743285440241652365912218197967199610559337362558338199343433824124393111299799699989452354675290611691178931017917629224486307589450907923365164813371803747585492681932757153939577681248798936303981950315892347139034948288832023940493641637846637388434684042513810574031733292451467289797341820979371734535423960336183855631800805479210522626484339272866387434773460440709758818502772209132095741771711753214453173795736644170349544676468332514341275797162307290559114356590366550065674530478746517368732591279949272938536087313242322602008809554918708083963904236547649852102912967037252577097561680566246308577880403372447379683670999413501424986361268348500350281917849474548180080502279435159193254604147582627208559046561162127732973545855092675559271867002482324498609531026389962700311153241680838360182639676967104720246279107847891033760891385276274901713493717446156236953284648835744309052321390020445448930261712483804185769431717252849564588374290629936086570685458633749546459633113311273933632026388210646913609231217081180754663619373187581708777651254997646699291014651348204644251499124013780064838102408787507910301757072082437616755055761001628608955952347785381424965743155625779220236157025757004984727097195829645549145080756987519791906381352990509445571677395194862563302756847319569108892708696456638214592155362211640548116475716283063665498049823579823411905531354271289118926633598364962033346293337330170755202853122012566826839861415693359707667760063866220601991131644560105153558923390836770742140101242078775883423962934916654554778685775445286493900325934679780096449990453240828023521418172659340787706003278714048633757647057933759071614451123267601656646356246692829815453602256081366744613907716713958894686391706889160852783627861078884412489276345322527073516765062163625584049617371519725584350016055785369039741734952401908369090639090296146464126381411787569744381549037348780970640897717960214564909047886762676561149047705042179100006469040375617175402519665526891379202386816782449193927090772287606491012351155132450792573052762153282954347819687391083867100219990550220347069650279586227408474391950470546113589211054229898572787199492123955608789202105821543875124964154652015529116785853491169216016807102480188924026273158674967900195950550818809859945969093066312922091767680666974079883039285427580080773319557759195713807544508272505878777050061129615856358321227278322615387399179247574871406091762644147709204726099881117275214032250588602868654983549288460819238681195425614257378367006566545766894611725374256917538859524234770343191234414959728235648720767405061381415628048348012717046696920338799668408562599591750040190451766275845839061284862433200421332151355969930186080455330065314041805777957337152821682472153775528094429188019761556314749573572440748606122229351344334028603276260722059287743485723867735479021824369470340431546651134804676704759987070688224425278277152114422737982838136952578961918028814200578278932668574028858041932323076363158094182986019268804087172554729895683604468335894140734322844589930430684489533008157982081652970208394974990199580059092467294478267441683993288513108453805657782350360222508379440862609653696071166484335347307984531595542721027480326576816820889707454852012033943002585446691310973905772731116084065786718994205285913477683588098274522950624733895439093241166549743132668984593259053212508085941697980175669304692977166329720043470312285976759902144690210585043656771935404282212098468496809134109995285753634890168087709404364961125437229541814601102002021803306451872309366381493898365859540696646896507487672865754490406305847223597643861256957660157413811241695076797906848227903786831579853611311868956084503157625070413472016282194676089761155069208773501456019831704866251620728340547687815332453137498424184531575877248011413379641904687053210242848528628663101392192814073781592872989230108923528992541517372274667794687833215213174183574887919983662056586167208110086938610011553617441748338030288301713495834600244600451575597781651217592607553744620642089262555068118089456785254274677843239335565442388164231232784280432494705531969392711396941268613887276932201572977286584347217707290740645133488871677880797637141970127278112092433956152568557332247244512678113398809456623389114656147844329617731702757903286024519594739922655156998482258362321415284658855378118444750912017537797676521018366634178180927667749637135936037195188457654089683269424753875937120687725484229532361167452022584745706354237258920807678633960166688676785189197943588150590599602567079279104537209401784265431864221728465441056020303616996956845084567048919549074414288779203363145641051290268863957108103888444437767815277671685260419754701643753011180261238729053293506403676613679596213516168041274263191583226832292198469850665205717130629323690929022519067074011243058722971088471296564397651044834923451596831671155785853266761849171569867462527629606793266032231399360570200499076945293780053710690824664152360746617176171928665473097783568839506196699167495042789585207865693226449261940902009826362906783475261295866556565886739670276439438474548665420813701463741271892705865634703222189807711666419058984558045041809461105303323208370964296988895711972590852663789376278496746474229113200799835198445839720977790272390244851695538566681135784984563445228837862849947938628437618298950678508841753378988789622348517308968784973541907124553827421302490771220238177804293158659390760550708655703830842234972031136106614369396505357079549971482097364919342089115995906744560315174710899049770658115817399028080072808908791170196824650990054365529412953358495476570694475960034944143708744750559143254898845923373960334193369688544389236977138754623020080461502899004314854016883918865853374607277470446226101382825754228111327220093244427023607733961730570607384170054333971082007023707497042194927171776624287098731608535261365982988106430590178275995460155145552924926029016802094283665609297163309422315879369817395147911001108618299148368096998060938002118262328079303752707541263098485832731770289163095506766818013345597711687650431750753078346165991117890567881156544836721783247948097624890217032185599317777946998193129759609810567189264122604904813287261563664617120370264352807734508542634143763213332356283889578309879180751452180516239080931661791066850184511635211284071109824217172122852207602138668088341085612631422560125453390340468513123386893432954095335594870943484674243576434378215521849916063970489708593498225344573543583553498987330517626408979029665275693916371262666977359512464280747586408961584143047302654230540990468586196289252725343173968072300719278811296725267101962511564932032650322256940604726628520311911754078666512225522711684375864127210436966059853833061867577335267571446947948525810899393283799285535535191250405752331009990936916053559754853511693966698283390566642974852648259100943821504831931779053565100585388939231578855836377879252304068152021475242850896515624151201243086716406226151829421857167143875481893247808808735030249028721132403125980967026256423148084329742274338846810799597001700897085723914667442235402944471766132871001926066749564508526683882526282677278064712767993145589436660147943107526012264622616800999603082978434144441496267942536657472951649002045185112741141614103241212711385501216672279813869284945202247899630295449845106580732551932946472326177039873498834989214668621697123381760131587664175056298175069330539678845768451844067859592437094393314586701960868105147270802037279465559791591023044536569926288801149204516489613506936971754672038164413389185411608688080030376912128016193638442928979395730338161870600365324738825018456850180812065672014115652550198858183133188787307557913203795996664150376667154777489610662901894029287519089907876732977004150642253019453487950607534652921031168471165187024867141413935423342464128292382284481948123763173766997109546418436425104120938345148389128071516063038481759048423633891363856189089465182912077723563455503334262976732972934876209868887106913964729672501005874745616456687547696523335754007280363511719645749774496400756795196755051228137468531958815562143106576316557913895457958624130776419791053623466404379907191136635662151455622001250974658612394527261673487185127112061524593766379888939234119629685329616843419347740698841547394733934764086958469129884149006904765179028399852793480623167347233166781280806201034810738455766133465396360695237938933876109481305725836740214646632493525896874829071284662961973172779615170771397555017253839552785126770940730664209820746861337486612528889550065549184067414668796261932628477839642514001796814393199802546928278713358144565669835019503138084990181338988063478465289522040725969249515085116213152434999075708353929267917956053296014710972380910033750405225991681808641522229947706909080706687743019801154970116635871364302174598019795774349107745187543079418425101802203333383480031340018459170540816836180619928089850088323410733343306947798129785050659503781888631322819988792886163340651022132114652010161265675074490288368066314077658743028201099348818556509405935002947571443337511492133908644349490065029444920940956256682890288948977522172387484160426841557086024453697531038363637878124060656167047898854284139647752872132329033459684142034469152122450484491572800078533720462387959116605997100725264367379685238027214718896117596249571788154687029585945097168506872228321114070315831817943041097360728951764267523422687124782178323667123080082941625415487877076235256734400974281314665174985646729142589370586087535530370809510266146814702540229332125156049030948310462262191726224802184689721948977020343479389988454843707954833540747480364330000339573737136880117090470520402337502127611239256572838955972971716662724536766237708086745572804723824182862095816932145118306709317839129061066892303387847614536871060963392337988249540067630466067762179041294866332818722969703093305949625086924057151981089586680700313285024374708719388654322640384625528879434534613831203025538832899723783393762839288688189720930756966814893558183388845897176353954206925139227641118888294062330820890686451112134585952968812898760182204220807774716308251063138493984549665056811049807268217091691584533579919228167650371744054184686217676852059773730823270048567762621988744569914958778807985820697914185615707686373351905792558009964145819958066648178123900996567417132837688389073278813304255072031148893744715364502343533238591871675993412399222287458132321323310980648183397495289961709367636178443138790999103083749886732247854382496600348519833151853721284933881681714055766362779313139459841907554599784696696252702763588607330326258439607362184418920783413153833305780936634968641813644552974116782385585741885058478830297609777455108704505911065663931396762363155894793281330422804499464834021347052456939362851873868658069085240924112739333947477785726755796284011837610374008752412757509533165376421020272346825111570746381156020753007839309460539243145712841563638287539492097513398238723862094567232327768802885179221829639075035659132779356309949465798421121625553809225754645953147062932957403797288799947216328385512420368990221884436001396861580094547149876805295277568010037731828579611234031870547023560724966927513145049498281381634345682290788473668098706404421368553214827362543261763781639635206971453531332157681791852005828569120506132333299042350365488968146415159796817175601760218793939233153284568150972194898151183531206292877547159552180473286655229711154723754838270141609339663223989753257588391421684884581852226928211661471529908163972686296499939805705808764016926168013566397791258172095267793374637520613910975883051529595583049754009222360527125572221607160812631100962178410261800976627110402749025977633260718343098497509832715080281609873576716719086460310608252999059067065935749829332033409776760681743744556036865122242012895895140034333650700523225432274418066356466609272809656837790609789345106920892242183299445692212023280577472615069971722236260802069471328964169381342104731350873461629172387633982572887637770975852562403201470239370630092551607004288782514417367176672341857362432233321322358400382360036117501554171370728911492315173964219405513781023649852035566949472149203890359613259343263641779512053214054052594185358886449631612855534886989567835065241076691557527195263069494912726366566459347198563033745155520964864432546741405878866055822729634185486997317085060242088973370875354199394494407229922405892065610693484133839749987241502794266880742231617091493246297768563339385602444650949442957396850167742755254046760357267640427050570481891384532110337632022628099058156448666852039128105219377941448253483099226390661043414349038627920068124292983821588703667488338445936305394934789527841428993166601068779498716455474958901409152982367801073723995457409627231694796455019489345090849268177670215845284943225460385965995781973445184555484410329158568024438382347537827505041845322753605972676007054180392058481861988270789596574641067149503405507122604247847239953717415006757961679201386603544284585296920344967900898420839981097345089740732316891458172286823851926622358107541936032360404218333926399855390735152654772963744804869543817932464244249617780673051037387169055861634996547671059119457396866282328662126974751357918929214691426763820376148678169992293364758547072925283851597329235471950179952668023046774382542019742191466656278453974438343954691490818881256930726888377583863170786989620360273000705363085251690049626186054832511044582527421552839954671990304119633921176844045417895716544126764542934072818662778999831421724077565141728689249647849200800603051724441823473370956376913505450458013446200941092396932293706394083138856649527206064900310381469145863688238249187634072261697302748189049132406972533292721011210289628679451347317979961570495167322377648144181893195828552766629659037476670538039990830826613264866480395059514890797775459698482686710011901655378881656999261852974037820470597784111536646639404119342287828566694790289714809935240487663540668998483897577131884554151511816143871367209815107054219300393769382164523687735634045093773466308772114643538493499766518095808245237781407628686718184921670505276881014509222806061228467978938802446583340720127200289011833263142084457924591376452365864508930319253040412727318704671335795974442628964244117180008973217430473310000906462798107396413460764730596733958876572907888504887100127218432255886641870547810174869422861993863364893317818895889631382585903435734253574204721536633615968091296261549118177436308663287374533917998115852583369842397747136854490320028169826922658489116468720355829859530119949504753706338575101070071391077397348538718561381415447460664873031514001433112637382187833377154350912027247059136021362179493588207625666004131956174195866310337108636036897570219998547061413134446033332538628761053627404443894097763799467162750241849187489212722653860847856862546305171395589154336679633053182584909232987250399105548388115607548589658354313408212426460697878764427090354781963823440827158532246450811674233139319567090199913965219318933410871345530876136070854362177721019096962443328624649795515038594928561089463788845097166021043271644014552571964540362626765852953091178380479879250398064962209594622005877410071740472714736377758898955399756431600651413655848826633426362031823380318552776052088905655233735033468864889906479826043098114305224294715439605998670601235194268874462435037900565655331319753260684017008602132231580610551352803973176825832342821489938611095990136743346700688393399338095701495191122577414792400143567239725559435479356925233167772735708205156906338326204888118838811692502644491755918771497826479312852565134442306047606141133603594853800778431249104154670832639722658869737218620984137410520581652268339699093769574642256963523561398168486801957759764067398498595692163629344363392569263087218770020645377405428657457744855749162366353863350600794883103368676355357543891509956512302083132266619672526725581315780722134296642553301454955356297141272441523334696326566238374009674441158679841070555974246742785633819563470545564732903377551474406223867640398857973163054162566570251546120675236914666623202808483860280732312619755875638869474709394055315933389119479041397372181472929496303070877592150455597605651863585783615470042606902653014789005079704985833439295452581325169045809152181636085055536383923212664596826459204749529419136567717723315237006353266714931019570287416541534104874741663665589439810119025144220661245462614105340631465667550187149527066197627251242758240950802672757418466200877162583680077771653674592490924579305368438264122291170429457823508815846981632632047422574753364745109515403786071608729059794166602947996015857989293453132038357259354885286433435294282425258198612311405607815238714658894487301455420085673276707005226212552914929448214648782786800786214169232527317768791211747399170658837394227142756825024634699967268660245371050157677166346447366830774316663705403322695702955372402733758181081578016307837789957841909401386762789060666283358055177444656076284950245518651975201458193529966366088026203224332681560956854819477904286570786837656704318186753899704868496342058659692867040479739205980675566943834271291414670074635224977151428293398077277902995763736990272424557359270807386998845021625758064646578699314492162854747978134419222138363490986351886477646415043144310423326780933727216730966473287570879975710442786360556246915769634143478056034273807569133273172958209465625033503372436107835284237395335899163078716358228869792952309828180794123234528419568789251152811269352040410561285554998745500039774481370897363284171592842208658482875876661581976014459138898879728095548721750535363568953873717625566717083271985074983909815624739329598399625775914151487864462553207774713595634604670511547328710636505515993575168927282909901963811684574385873557061871143933361012783410804156060027175850088244840865227971144984985450341412422571542592288169966432450311901598397866297724516614755236105389551263720478942907442592182457413216606864149447829255641246601481932375168669846057393794080572784379480861476754045955198996812315978263639998381074628598278520735274643327858084173608542151353883637194747394815121506384153353626553299559636572698563228754921981155540004535653096385973029643709934039624888995769018657000204158923960863436922420016609898739352065153583486929694563991094465184542824105330598427284917831289519389413340957598868390081695825909319761456830864794906312585139260147461026988895098498600953193661410288264335230942568870938564602973077124212577726980345503304277376247632208538349351027923248921597197873608227666634226726943641146898078195817111010229449443938710067797971358218290581597299411824572297771769495073294718647591995882932712353612369723555748433103215444294814214757450824181245087267809546096614516226386788419926890516750504883352116781325334200311873028327989079890590946949416513245767829575656197596736773175560824344991930044449834045647981085312997933503157985598331435519673338851361828163094566394183834532701013431593940626687163634000977679221498651570339808110381798923017471967998100866740389493143709547595545569823090654562949544206124103613038125193531266769598832226045089624621025470659329464952192595638609719304177323644812136551008110641611358942055109948863763279822004605299215241249070182634871092192845174706439206720091348987921407508661116501379418145871690220352233431042501561058503862122836961522804149802031741181242594800582968111302225967084676931297988816234771565463192191077971581842577288189646566063658269693753199075814622403494144273196006979313614606467899367047783762835489077853890907961778945177081623748853843863343941153017299582954136800900799277990349355680820396804458980889111787536599195183676688081744896343391483348034110935661800275362846348067290269655933814468767664706444665557446922387447004341897365703470299889662719373255849303581998511576615169669141449470668224258151628644940569968752920066861563305152239966992592929225567991786616028097343537823524634014452225182139627236544020849953080633273547118632686230660138573715601095247028100884744586386878381983624451458818888559560789163617387797520573956298875922526258220757638146919194819362561878918237663521310224301512664075668697367518587320038635581222067150555177012497233973535270017368713763318908569254080029442562605495095417626746938010735292339373390836979753351280723196435845056556311551079017564902565849437903491692308665276790670403205529393124649253650386382488550407414672780225807272864021953102189026993510873239736091031011810431775976579740647735921902561936943415557242125389275596203081945119557906809571673065727504837261131608734207322103081271420656234848852527279231492852115985923921370683189775886368614909888339137619816193081878845668281643772744201359457254584358470887936353978440460072968120439059282766193280146918088717187629122942150689234350694646490082335332640562362421347381245265089865331659186240220855334070427813294268913648146613125088072377036781192544152645325741208829753617636336104638062340767289317743443664765483149731860206939625135326951157714934967156068543963538651179739550921754239094406372535258816388745689506025628747641568252773593575853639003522697912479801729562870687802302951287462109724699055687385322620033159981612191071296964201034342950459839506615177853553300281323762179581464556887652308103689357196435767789460665933074448866293768294798203534339862956851464624129739534578225552527049962526013154740874694394401801201890928587826788101737779409938183013257680181537262490912174601342976939208690589856287470893233235301762655767719361444181905534262683406172056068356184245293822757118150577645358665712394903421954954875875134544115350571000429209500076249380488655867690334478604754364608699460650720836626728101149237274335267117939211308249449994030799651041064460119395147872369641091518733622113156307730885973329365112002981331640419565198003152059956930433259607308295681455689074255974776475535781773644131280879623482789366884684143986388736751086692394109493793471641826375965114933066113194982077916668088598697514995094124301122343114217936451133825423701449496737901866581918073297436270359860442753001769601501862088094685973141210466847934585004180975386304119382545601408992308828244706581546968771271444856513533029511142103058500004777560045607880403505224708587484876368212759479232792777702564482253484634008554381241210957800363261897601638951847289186583679829581747796677662031465280654235889340286702429273246310076453113092948321436161559600597886777809668764675858973141801749840529843165809493776419247428137261226610874050040612475399092378787958624850955354043226883685446711403530488574015042268802952957291708575981516885320494611570968513548164739035765582537473486712873806048607918035929263102842986365696768668739916303497767460037943493705587271838346320709851804146376203475777227838027904463901092779175641926958718495431981532794443976358722395068884720743316063480369906511453186533253748316319653314647962905527909041469630994706591308093007096838926793510492724549327287520153669263274571710014832027029606738497863613206040591195089290381638747678598836243951092522347652560606537159563557564542157998793040651783874607354444356234313216326065873401957572527028466686038491493835615386540214521163326072876209852955139086513298062161168053375637138639124395629636056208821192310536310246646139529605836956171192064398572588036602605794907783097364552476054918722781055629754367544802598533059387528819000465172596262764874960906117265864095085983579348825087087784153422129734068699306637251853331391878947525623312502522135673903582444712491087483587711853142813563648381887693215874429892483396162567550444255389297677555373184762005917343756673904801812673497187759262123734431298049507672517933845708758391546399563510144344438676791701900108021036660759037282940236787620196525600806422441468409609917112665583865200699080573118277884765718570240560878761277069288398208479176583709490385969656696814618533231379469084662714548427113408251133066441213150594099306940296644658116395282221702322644195571060963865653037868511455963275344632424343038239577975539881578044009472857240123020955558529367467383178209695321658595341530724615524753098166443383001697972400576476162526864259424540296328497121011946024856163811128201222624767206591136162445712174013860673829470410722272106378877249265194672647134299503982692413431680793368938584804267993413843495117165911480794831838874491390164407331932501285770248243101914819900137193017435111342418167840745547789355919576045858172606722396708238841001031976568228847602448425774822933756602747991863973898159847628143683880125378368167471465347271010427135748829539289195309892505972999421340480664212005877283333939046306216435361575660850780289791616002200308329231388619966410440856118279008815065271912963135553006959355443560207430953822963323187203712219122036278998109695292552304062225244044391916034801902370616061015443726329274312941875644138218761219325199162068947474529960091234562727898753414689391096755934773684764992068960426854786551545639002938844754567770638811352388346061396164797715188747569364940176516989215094057455878832340969403977573447685442485882999908334028826827849820473260741533241005240812836366320422534086628000773720066362221555795885603634356696075810305076861787883464971028718905363983195665525758824591491974741417815528961388500040982897021018311546955020583771718913573615635548033760499082583652293294616298892163206662370292206934917203107008296162928599166592719512968499399518708225075875404680693658445055181070089075775691266643368905800048451565845604854479970004807757796330673903898641535610710682602437006531679702858875050917158444579610145045435550613942545521619639805102954847585794671074824877288310676247715044381375540791985030262917673638304244249114196357182978115266804106532647078586260418064292712135947431214809069467789178681220462023334353246188906605139846524342150179282260498446504575280405735935716338535134331070445176036752180448535229329946994212250138603061233545202838207949338650737598856519038736185317134043944571984831438873913652599607240841204217254651838406665701502724544869397792673876109734912404738944572317897051372473673757711176295451476961251157329741000965916461788510492534693957443267734131537639595407846855822692491115721474282033253009307707767185477452063206292128620281722034907105277681881568348995324057062765997569162778627202054663158155610502974824574361018821330269236175300778173725098444183547219989047529028235063435644737217359949512158149531980296453088996163065432561490715995778445635329652505666629931299141847171902083354114773477465734029066716067282864553287446587417634833221949748973350098922737427804353915988980076128043810700561340544031822079716347876706963810690316562106240162294162046604829816345438532073209284629583135543366647199892117219412898819088603481703310351904819871985211618799446872754716935743145360586202543537034906373288373255836795216033791169474046167074375749798347897309566304863476253987050247801848997475954433765563158188730441157531059388133485257574977482590332751615116616051038353449320247257005185841370223138594044758808134901126491643903029786263202405670793808498060146718344220788034880359127896690319348998376098326069118480925693762731704930461624690327879392173993174923629335878086131747352823627098815227183614884478945694833852448990478476894138994085459910084978749839293840402798481323703850698656217491655833743996859731448757586735130823113754359174840665781988056103708482780611075283887467838654087986061351979734188196538001454880203477667199761750821598695602756375105474443244651811865141201429497535285098781026606591218752772831769396613624282567360758646340038986202928226490381887518624263600183680263162034196137941282014320750167543586148667974882720671009778274203183070672085534602042524080041400878574442318453565915320271746563747711144040592770038902980446593224282965741510602774427456256967722633838662971029553246526882209477057505760580478893174856305499291791283610332979247470595740749667027758400644769131597003375788331379666701515143059999885685471905967551813598392142396514651533106959337093420111665367955387502126324254458719172564805470100094175357751230360527122231200739666095061827450488291756830619659727028424115840030839171931681577298506299258296032488564811536088391966764164693707122178887008568013422914784712089219736473234342490049458566559260347793983264187808550259889759519323482291336213637980297340026448967904237272399002716113240117571808437073840329031568307490198078939961971650696444687730962355568493791923764773175580436076411102143878094372833463759492361509466441981186803068961155985531364511690500276142812920612375878072413964710923576188287156850431143562047721485460286729498281115163686560051175643631374328742288972184191398974234310111991150416727678602309666467622894741481447643415999139993995745694074332785953928625526064373844898327372100202822248171311370219634929647582688626466053044145342293808878851580985396412769781952336844438300979760364152470042249388980712021818012039675282179554512267024578849652208243489170004193606421110785546303452908306772250449898734408359657322488030971767185651177731380789622238399074863873413239898106611299583115347994086283227309800835554379898049614129911885196936664516093094249894551689326714448331814035901941252035667901181156502444596616031943986527426027552024078819065721291809744299855298594213818606068214112604855631659344257542299224956595558430164295145861235804426660070741069256211185722076710151005401231071616474814592447642729852297829806912597874530302396804379109173824746674204068044248930895790028330745592855622793132775982565395198789555410976477442447201561233212401519418662147572054145973787037073861319091102820605558764315666701789167916584499755899457917208142149309730418495019538754533345983355716175893728110139160663282947142156022392382412110374617243822001131918395559249289558275986797751882190730069778531418174563850969902450699994100321249796185775983843272754004707432206160636431053990623062724387314272335362637710504496076648110922975907581528301147568953717871179508445335423070747910864634454357076654741683784689938210357760079393544513014848711352961673343905475253695914284436265185294770379558041981875629778324405956379837870290591020435647642302302122973219090257867492903716467929232940451021976286561043458901574509310225190807832547303953902770478181806160058253536371663427750033637285556771349574617771172563212849486985326609234138969500505553503131311372865729035237783892069772645885138214552637431135336041725831836767129765724682394524692350600778657447991512107913113406945676589078057657165075336109851207164833656540210111184285914989915752432833506381011287718798093516226929879590843088820204209105692801630120576995526534260343887235290031233804663697770159919813815252311078221970381886595352749257632888718337255424867033820599769444098167364989668574360150105871528504272241282552402620721613243884692294715803574720885006825227016548966008493958626660786960708975266449025608303809569784706905627903994995091571301688872702241641631309562668616898175068938676216882985791256398198495775588634492701475760163368050139262416482803742611336344747030835921865769005672152298181908294641360587968931677940042101036770570391412292615489802892102612804801006539750983489227832822343746729298531803184155238031918155821208285503215854097453604660349783876534115798156168882206769564532551175971782427074577903895352924629626737930350420015940265551846693647484524467585316213164635434293597650660775432588515245701957183792345598879635323788679981391570879548195405403843338844260696696733511478269856368294680085957880168863056434251248753912958035818262477454129785508143622031030927379048997747374723184821808356896661778614460379935612319889861576620097706908067855703080110918203219704529426317259107963936876744736136050571786958714743131849462760705104364099025604136405797901915920701496756252627421798357317537566812111685258643455304699621383934157196664074352587207290476400917187614011706549130170004150929536892950050421651609680091886451727789598883347172389018855310047597781286587122509861928537031430503286435319357899171666879033793695438849523506878889121502985774586739293932029041866326743120098734888669662951980991738867881940268916369043119402583011843805141050068500506716620638767604309713960539323543885420893489490294729750771596332402093533063244013558261932545867773152244987801505871795945650689764741704437327014409919290556070859661388159141097832102792532632435345350150694107302434327976007730534813704083976296613118179770979972936872705103337744217360633472445670670046168672934549090767460837436739650660313956215964466450706940386112394738729750020213930856182013643534988395019508928488617081377104969573937672107737093567280923698205693980603556361907457338744290685128785885925318828758107393435005485881443826493683246707969511035749835526690080010355184977736649720869991053725578337872802403832979162276261748446536351659162550980508928432880166523222587140982871316494884123621701869194236559041308830194869652070588933791782266094674853762912654823179307341370735342928501743571931633380225502269479787332128506667870072281764456841699886101504743413917440019278844925604439918972686574578604991598803920282486273468508526867486952790792265099442469309978027181781357628492134446524518940683185318326608513630614212826453744831153395089935098817233003968214416341403619040854788712237468700149417890778936988374238218306661774302669019925514174148484241712627697585099505268339650083985347047044717830140482278324359053771666107068223124539281266066822743899988887203482220345064412860857272672666317583736291602800332771802026087772961039066106373592831267615464072033495005699942906578224787235327542372158097146902749940045407085712514736065290553765562862364699740851867470518512938435915350515701295901536225932422320090305200162222283722667282957386616419923369652407850686244945034754533217952209077745810678648580538429107818404157454086488473100109092345318378638433609004362798473344528770378249748766337991435901413214767944495195129328739370008277511692892316762549809961116692879263148420462178710249308412534449560479128346513128200379795093159476581254090134725787932091836484775679600003606394253284870780784105894538637774908471604545909951701993803729612779776214592919110109357986782598023400245197724080586985750415768667907291453886349663910444587334896010754955254011626159225156526558157191270263294203151241042322659216993160637882071209992391264156682864665925376532136263849943246721336491121567935635651974212764891841979779019612645480436210372969467653334864757407419363405406206023319949160836002526540075292042388062634404238063813180745383895883093651288858725311574513433332876835070225504554615591462407459516716812110694201516766229192385881057141954180865834957070255150626205575179713516268349911192331026597618365264586172431382251768904944650135726697470443585391383527184139473848444243069752151616700101599594960345146102008583866071827469803703946702322268803615626558269045413279521540903879878446712699531181419347804099283935203529021144130612486347868409312360597148056902179271374699942470942430456895793667930312501502256496452869478283171573953822092213965738080090237821180553070712519571472479712741227825550413762250571754643845840331776888902236025991892107322825904705607978802542342524004987455474962542478141456721662615623049288880968747351808160288045054415253755831999852553983139663414041397474312119676244925608168087160238586920245895041212198162737740360294340794521985204356526326371812510261221348782431577119859431839997470090531453317312717474060872262553812735153339159945335783265286607593966047812202626231137986272704542042456470633003632773547844947380367232533851460858374351477598717864641004305105754047558912058643285606778214566900952308041484953987378698848253756175439968960467793018749454007224944574320858167231771750166784179069962485850055112302229074074771198142625934044353271503851990929266276436469765361405437519153303632488951000649701172733225609494522709475511343367643561857191632075086867323526644754746429655068183220045666121977921602761872813075544322636723926907704946432625889008845389714523400646805055847116666171372370833960542258280828554813574316119287249762567597038302384263068796919978156158606007853191646523151628283978527184102478692761594031238698460915367601566099057606006610956448197297675179930046614668999239585934935670690541252299993122010625782161048457255977240212494583422716405515573908304220127613822620246357996373725169758969665072224243460882412722167636315317441890729890602448991782244535992057840676335227732590741697718144983449908900922917115294361468341896260410345520189380495820937584414609983820730571547156185945159708681427002561223453858745590432208341399295580488028789560516536870305098537009064246244118626426924861398214398544151424824090893437086795748434923766986839892040513364787157613357687214470491610553060958508524079176461416673405455343261281997866710673521927892145432350668114119161044676458506561118966506591047521188329934653019092503297409283568154382092612931833253827076575036479393398320839894454495480713263575318316236742671047529683641209728708347373120788420782832992865713023039900758177053392304518988447717278522236530570204767788270052712822415806903078438573643199676833689328249761689699646733012086320456493187976736455872116859465683517427665858405096528910604094300944511628438193691848819620012108127499181650674689389718512336610039387774911915755355881197444206517290345273948166559910984115630733563522582805706207521849369583428892804707641162468500776895287175949660758467082706786482780473817763109515746019426385673273679011700412665916445082794908406799462599505120449159162447866720732416968436247129720260571632955487338275584852193471233046438301530098152309732010754234566655216247711125550385379415102555176011106130878206870838094539582565377386692289899834763334203473298250194776647766878676284165730153649863756623013771281022239072369645802078930273319687748336687648786233665435553218237684270236428637055721701209252467295685183469991889514272307701039577389993456131979951133216178727478159158731646046440586903244504383417304066954351301770138535483842854932229599603290420775003668212499690345351256247694937185325306923220936561387158173492007460020473237162037910198177902775452025080281773092854060265945320571853131390121386972865635229089590677279368391285819304940789341372430113203413064420721227441734750909891472018400241956916766573152487626641234209919395270557591382929263581234754384324839599744894226134045035737748769142509564901652976829763678386560964150481816615503396970495571105501751909570030988536191936451708886281022637671153050356884659509933828219083268899976887202319412847941102697476451311203327075393245659398547669410912897798749039651588608647368908222752074865830629090373636304360051303531792605635663458240123183216246989658028685366824076779287749454645481882483127556492892548255182820011126945176178937721607423391212176709135586342548196618104458281770312563249729368721897460282635786874391824226451982423417686585558101510180629588788553990496414012675500381134484760065264961606792567575686374756687283126171605015776643381128355199303362358561541930152646365386350199650157195613279572199984563904627138309050019762525940345102238511891767714715480814172358440657961937333840540444463682683905713130267259941225122508865771249930781577889102959828824762177635559418238858159947824291260637984289155345223728422815066679361750413884340972175437954603810035138734695105879549403212454791234538329848140688172144126304696846142129907636595750002372672395389965760888308157337241292829199724605743600417375077384183456278179700764156059834832801606288210782088177940307499906832551042888108578308501007152113099123603230355440976650471600104092213995442749850087231136132839298475233139524665232227919379222701619847505257469717035194901091095502931401636613223231580133999296533827993462528439119382878599928613308102395914068962416055800223824651763830029998269687448505032105878354163494858435066633082327978240643319969047699984274275512803322907637649329042700699233562412447582750325528562629759224275016926147738786444349781468037506465712723962331352039241580950497093501813627876578659582236750348769932595066779383083495867407522454951730997319518162179071180410347935708671791344458300614957303344600404820598912661376932428964293303528956561261516451265167497998751094241838492460812863160651782613344674080229112654193731389326112021914583988304930230163684139736768761489320908266737955034859153993681100273460093645424066718549497939193826464754699101160950454195951559533424067110376325234557554722840369936337278104859208977507476222899209848822123074164498047924964819352291055631325436903828970704642905483826948250314648976380082013002821237019991000799433202133272953330325009266407555589216396274206725026033214143396088424960862221821740574251611405331875764770208543859688140148604784364884414027299549362242077324152342262935253804089799582252237577871364312493738402685401518004403570128321644122385569915109396441311589282642540181548761697285755513867730003697909388654843589307912723233963648811158937971692185842515093849407702786116945199877976608301752025409912535731439227353870948104724717386394867522034820902656049444621134856577132976097234303457821537710185695611233665650535280074369240187129991415992927485047616494079485454065749957136439573999398367980153371042961392438772693328049268341584144960864701916786085478548944355047008896157411483531955159629167571890333165081604940307686721552545590487918572495692473901337493382155535263959081606937492854971741270597399957010956215418957455123879911187339939566526396305601693889111193715796006678854361869687611184351908259233032454790340173812877177164153590274674188554285166589875948630246193771395820246623596480921367702505584552037205181188098298615521886014258953933191672393028657971912894883555173815668555190020832364631677780693632942040425193184630359679279553298990717784077364777827912539033614987554970734720432124230288473863489343645595604334561806095621286356648457819408710779649201066186839403845191167158901619445746137909217762015173910473768089707499339240303704527589192778931768249244652229419633939967596357611647937504410901346888651490089446551501752064947619006363422390855327485568711878157732585291120843268054738978473846388902294028755170397651709545887799161521377458152246274988865675061077444315257516101844290911683091187554731143734788652745184807919776192431535649421699148379276492591241902963631923616683577787549512888568330514894722582042183906781774489376176039204609959601605215907612391604229892365597743279557558633805641166045724883082959805753650568985779334207136436569688115251494153873948057140174493656437332502911148387646719755456769922847560770948115825424823041633096654010843929726052714355663605148875174331259685810763795896516490717560320547746374667300309939001670522654547593455522874809314541718340701851408142916987502867808992159780158463111644974566234670080878341447101134730087968658076267768236593651831506882060748140572993051013023726821975916164808698162620844863291415435775529310808473069463063156665453572454501291777398628838355465952516811396243680116166266512601069471170189425322362509375042112315369735993151577963844891396525413585513246205915674868970058793273140470921659474900386212145480906721662203729396703484436431269487465696467780555020479777869893831272150891909027329665666179018344873340647713958161056948047959203970866550720624010562272598126764100566548204296982694346228134085862685873196039816339999352720927419434300811622351791090815949931962218464043210358853193879194397484681639402863366623163358010741886610947554890393547541003639834729893704508106413281449998254050235696402063733222149034465816986663475122344614625646102046337838536178213789631272925962589349486384698237609672025822839854046062434675271317325425904604067553401224801521971297351558117106458317916463241262902191894827941578764559725912162369051307100371048431473150197018580116253412134215604495395785179103349444672668450987905181196994796131851891004849734051035534148753831807451771862318643733636003151645051967372592551631147517103387772231143191387538229043463419601760039114199195638770498164268722060804723990775692313514296756915763758617528699483213571918617329443414466716198006851768442341031789204087766650517068223602212773772758501619394720694401549680210260886657853273547140987529868262105595039413008812460835492991071629365643039377876464819084039607686808935734345963876782903105161277299816132591005889052671494618810426076010322110434217614651849466741984380178694624506347622639755067085924354617658699436670211610244116315224440428258705743340866447914455281073100284385396817752611671302724530058737280646524470169657157526837087935670340755931977507488506611705555289651592403211817439311651497588689021424329912467844480339100171461431026615970328322096064611011152507120006390857321223971046285752160163665127445221549645983630604670282841105711371918020432055746523902684560231534972193855948311453619231409935814002394007351092790405735461995916650617370682807115449191164874119959927938065247807690074275547643734587447081044997169482893478736212115362346957183960581612823760392210641558577901743099526994884658927625766763313655314530756466920998866498868534403599344427679747387451645707904116432803837659559281128001644891776873809257659852529588956026515586358637219201209923430705765728838570638780812585517778621154428573078988175323479035432093178135405624060186283180702928271753598955865879278716053430093302204049280088690637587072465795903439774897047893166634780298989199484723331294502151709478441555818726559616541035109930416957085871307178342281026845403213271197704003010185100568138581793007052172528457336975666696350561560209560024011295201358535972352741294709468950661225882218952455379387883743762144995730013670971987497967370554357871703033950889252867079172895557122966735258587570295056860829402447071903143390233140616740526770000811364000812173361252628658802622399146563563907001008225856340835830930654675666619110633673084405411412665965015764168862298361456241844440199921778493270952278802024896578179195824226533641708815002802344704900531350341980053473548065993483699284699673239366131193732290387839890435974847293506320063054203283576025061070665679255732317443268791809947683118998838537044305549085163015761895262535699062676952011470284763629386946625508020443055851285034477948451266223339103404117238426891124831885111792310994209235067566277874065488025250179867222182417852392967474752419597511362594776691026332305707114991764830918234263939688473339127576523224915490824005674063010568809724125602794402500642078238872028899226984658563176767056153120458978851162548019413880415468840185914290438559287995841710513749896942591345128810107121622208726849908790224521911133770966918416992882379550078031893537973102065292384817028692129784109134626207339254294763260455009712285362440550537552454956859382380765191317836191432097503196462765731364702781905495815421055438020737774501622142794991959673652403656501101688163245284994302733192683392534742375375441719898650734775099487445270426910091279109915308994510178855656220659309589451301991880550573030975886860315973784267721054913313540795753539786399226886258301510439748128183439613525148059731735161557812008920496490774399611466248582665217779312757727083701347867677254177493607747125601108091418617572336116963170341935740373451966631154108564547156417814898475351444377494482131273180139684824684346301442615651566868900449401360685565176950891350056835692584012271074734573515295769356805985498931818797580168460674715560315857728268550932309198464368144364692466155094401379296269818008450979647888732429835946613662132778289625235929238724060970140243467138122701310007496215936451745087263985972824394167235897678363389700704243212455596146552528507168415308536356634603319491417551265851642512277335714925961467534327322126105898023702603807549715081885544831778956959606777208488347077078728418822094142108938640354355573982506955454206510037307533762868615877122894532581444020248450777027583764063688281161644725291883289660404128542342447756265251093468347591784957587024139651891261375132827427417857268792951666554854948254068687565094182634928722884422627061563009000622432898813872337960185824869966204221760718140144907677980275746806778892653770103250765902316885047071462284529826264395553267126609279822526905747786665159254598934321383610610708249411631095140326268216346997084077019308120597309975275999920935811187365244762462463770131261884773145753927760610766754283490305743184812975462664154396342630796070188898530074054653652668917406245351717111253429705204664583638294965530719855851610674113456797509721822951065317029349030262402449820741334662903649199737511794118377924068677907530658649336020428545747882155912498425615112221245494152644507882903213771574788805431075601711719059300739918062216326806207706502481490921154371846655740203312509833174133583010162444132204969996183636677613954965373137542630656257672685315300422555516909346188604672836495677013120863781406697267474703073412191093650765421361735249856780827349599353402670831323846154695386495231063316742700858477404207682074550616424788190931671214396896087809161122357301036262793962922566005078142520314756100551716578443842769306747929166869599895429085271439502429245677277659293740262717333489509949969075197951280910500509190934708340462922149984838640933561087072140841855857441067897709774998083930702932083432365387649901433167809313144365386753464250271982157739635539853694882861753817786652443207093590978703909097335113158183692913209235838815182230855214303766136116752692466396204334418706738975450612132128041436952782303997622565059500800374934611793817500633489287679090663833511396703663216218556305995098905193614741827932510482130592280655587977258943477601164535392102632243859288295905380125587114047979468685262916461392263734445248512630230408388761169755716202111558917406335643828051745787898585204667572076707660292203558698991207109696010140223787083782136134585908666917698550408787827404586165689227821387914702817265983904338288335943451857662726041456357217092915884602755945076920139758056461097580757575663424392855964862233856577366350496948269098270431229213348343424373586103056145368594204701323462547546938793067407726838697140608179416437769989722707632187202974095384578301310946146162673019460097380785769792386530848292059131541110105270853233687489261792680744388959073656024206026608643220817037966683721190477599602101230527437930330678729187037979023058591012380453285437829992647872708882419357938738474736296746885900711480296423146819360445580277447213762296488936371363366094600880883826912068777233530804511089692949907134878590812469755866439145329337010180964734701129622647157388754757850669147609664062815915303052858088754781929098551025167589429475695860301367116855973460188994942769578651864687739827325237122678433066540984703915290211306527984151376232223680270991469600504093041669599082466360518277377498394392157781518366979047571591126181493031522502584908340471603875758930914150740718390273669880204571307257381055589134692983287925757318845669730198459217976727465074133415960042189016582261737595884098262216575127052573225003806930887693686449322244625525568266358763356322085853061510837268810096373929677664952961812585856208266954058485150152403166291067981245881100668686114963889865034300884575748782957213896154880833003969704946210916379641270863253133885397394132126337463566429200535138354011999482102932508087047420081886900078627005244275121572509062545119261464479227918077170168173377126719908121040881920206165473235952574325364310099078018225085538697570347590673345753214853936881080614089510766765375306837045984153400378603801239376464058810505425109149034996239738256089519550098839737475426112007313255683380219300091171711678840490543722455421025653327486280552958620708646749931981699385180154951406856546829092931219290238297404724470170920338200182836138229972357425087852985791627853997059268325364362663428073871454834090672105590053447093081041767836516577559256300714237996978112039209168362004782471676213945696022388684556826458656015484257211434595224505809325424010732692036859219283666233383452344968957325819475213677508297540275727081875066296372060865835748132725512163556181011052472511819399628034522068828511659194050025176294320167215371025245954247343466599097982116577900851949263022986358512471926166784858072163461385200836390582671855548485325709780198638199108259049778158287366509888795359087825039676144627790056651584810197043528579244860255031507908671786589502255797678600001742769423883812197531026028708818401923068050389735552671145391289114416711247369656236570474441005275891400065806989193421739872346594704383742553331775336128532706582358972229073154130214548622514819338578291556639479733455663010428735309266904199985910015528390633315898992053759828400268386830348265416647960103188779824154658441099480549837445853714199229295041261443873731492358160297025978201791415505389203709021924569573231216802796701296052171940038603603780853809800790403075843903697834998017761676848525908725182252516898204222571724739221468763034750559594764131746841786278561144303934819118045636690606877754637805685591859695961107933668005728811557199534715018127189477048501256226204192896321173706867811694421114451122065227627317385178179044659749854999647598511957746921942588967487398196510593107206428933817878550454219077792790659141799217987249736510446427979268326617478997544114443358594556550654718656007423019347412726605131580011439205166512826830883046768382205364787482579271423826084062201731636120116639813244346219578142747904471238587214258574851555051434676971865622311578393601094590697974828991567647300475422793724614669925837008216007827861835795121638918520815555264063397561666987217715591525814127522163068171910931126903356464551317877935144839481011957503718584574077009097787808063147110464934707489283921892369135146046226018445470103518597806968332760872011239823866090488523097303379954733896993428406094797021262859394072877613404273593972202167547307408088185730624228351758699286265056087650049883894335167844120359162320646074731749773396436066926283382886477517304760349660871910815726099379118687216689277946290549505088877814342616910549158791874284404286438755170880817717655624369335657382209523997711686478911744654868078743378667354385545918800817326555644857345106895964729590227367429156326405147466230224618840384772734373431236694566058933032475940645621281586448398665613667106576787042914582006032459827478303237245261977173341064680390635876452358964351585029031834789330663513929812940067671091713761553373046736358889240793874702719390156899774857875540874916717815652685019187920599221215413523381747159370098031486275032359151866452047840345801193361057459716063677101495488373094399533698518959931553937686930237080042809801545916531499588224403839302494421390907491099100052161412428666963763960099781562425680047390532380619268103978997471652093390742433400891001493025202913117156315509822567481459903774363569787199244078023820150005181813201540584416474271156903026448105435473845309600639169600227574153827135848696130574427845127501944058172932691935859058121266126798465530157805263227968547937278313201380038751182213673918523806531921750664637720258141614074416665372739813844061756077012181767417564082347654418773461596265862569319573337176214947658365078450730572185209115170160712416486182781353131799971453850501755817536615045576046984917283445025493610105010451542029704506252179937631167546742975172443032085122691549965240635274831334573295215800275146268589266834818878463238554598662246868926546848516347355166772206477803506754120358148657803681772531414944468008374458442252589564178860633392815034307201898407325187294632606948488748936029552611539604062008309410185001285643875982268925637387172469860767261145295881558826480011453903404653955249883456642903683610212382319726461137306626977784385444516374091446107244317827021087185388994618381208375673998479118454682634631912932095802896955382266083390932350177927676283436977328620679675850492591657776518606480536039902952287571457348722326291032459459178765638871111369454298622900971872374416809725196496135121514865894385889606300581535543015737433750000368395975780699025713979019872055683519149364277346483399201733812959546118942850872659610862666332236478865234039630923842958913615524877550668854704153527156744906113038643351143157799350073707127695026742906654020579042844838976111692827610379909162286074827205855585198236148716998597303821696409152774091407995498362073560515555505552365240306528871214209727844777621271289500276811436481252664791914469037052543676828261585178589595753891804688462251637693432517906807172880233939051117349544996074773124849180924799461731850166740397487439420922080051805355915928703975943140140475538973904198338915519219001394493137122382145809335987291509778465451434525887716824797093852014932221531360993994728343786906380049638381667530292152817729588840763356456261042388753387270675715702334640295277447277892013242764934135202148077623632937744662292712695740285273652678278668122418913886381054855575610198930952555695701215219796079395637015268464221223803501535630407670961707120912414134670605581619371233689142374479211946099302913045320838589158514747831536257276816102556645025374783555901741360841414477258055341624883789556036477458085659248132329472473976859803957917148424715811717492414957105159680313775674152742350363187045487829613751387136546807690472520260340097599124593373524876263400554942485760967607165653731337101308213771887561038196231702434437927828086056004605265492058449960263508684623684873635020300745763049999583981953471226218390180609155784162958559054172550949220170605967205462117207405315102322569578122381459400816484980188742109621999628141275730957534205805073775225134965908712502297124441436317693136667942043950055972565895574708756408451573589780785890612544480679575334946719340976876941285641195068913155016168193475694307815093783042836604254474436572779356346457376893124686057316300743980605217691541613841739532244545538078519938253039812006765210943134105698312235538312466663366823124569745185057381672558115601022330297990646730060594498219463754645553261778806441441426953839590289928747004363183441207880829833447790770997205684778324252762386261766581498449998001247096582000127882482276858959961526376192637832872269323862357519495235350851179385074563931748227371337012425312540911830639162953861400861022405026110173314951620876178694019964281327916544827297899930714991414558793696606412115091323528897568281985653677969345916978692593614732961234436701957697308208951629284578014422233910263742606540653326909462308036173173507747418328943680551583163793650072427445908867131052818602971916300532887846828428800295268673310567259636474209287657494893257475535683587408575466798198006482413837061957078381551104952400444611387884092828264134102634484755012756548351238800018681452104895818862789411173311951631015449868334647979996828433186054266677329616384346105105070338010072036748577057394378572109265056494518811231152263430862368012405089345403223206271077428191516503717954690362999487956879085676225649935368205706869183355766606660031503669670410082442533815877042085915906761921916282370192680884718835849994698042972610084178815144818029853406628294495484303047824275350990660659025440812319791662132371901020269506405456907691372832968309467877552148424728622102099186437450075981976714643222333594052254274850272274820639806244276257715558590844245866810398871232079043378468293097946895709334635341879288357527703787209614398283792119326276313457613595794686233532827886749187966215180511920168816692847072353660824366688246659683797855083598227546501797754840718257949785448776711195694036962114370972191079901145963545152897673769128979173128581000116190425665537656466457315424107507756276670393824041443260146362424129363385832054360201490747446927441951873096407477584011159680271720981472139678174750902927863372829947965811059552662254832425337642496628646703580547767748609314042741765635208565863129214143889529007141912299827420922843367439700125102421725530031051924304546162312468393965743307727921901415017753067576586013924835979072003876453292589549783471536889194112024920589775909999987376682590389396257897753570131783293412813433251676207301872055931151710121598155527637789281945296588035074712887180886876935336039230611420460283902996936159064357339569420696865507972763730442424294824433026661016838692929939894317677058092661447579213635915104379963726040872609400582217922441014358502764409118339172653224787760399279085342646626650526351816133648697990374409482204915077819412200224505256240569150509536175412762222649729666464112391012623800114506327522159128648531857492443230511309023504767950290202883900535954020555185076704507727095157775535767094722112598159193760919516670558037812362454717324125975667906678596075629658933747242326059786485345378273688026097795877459971038992354928730823622773462500600869597298584551971766712432050094556087265683240154589139687533475242339307510468882024116306530875109494076841602692971724966171994855105142248557760669569105000523627165988807951425277064799646394021320287646584367860939598765171588657003942542227235491832879432987556035087626993495982065222376156502720902099119792647591518462367157250968604926099979243350977681830551300826990246792600318198166670976919299457384887697156070189572105011256325255913049764111995227904359714869576721188497437295726082334152322100200276230652153516656957365338380336825039611305949272584137964319476734066876266232487791479069339010367785163121783345941278086317374773058788806975534813424555729079040380016068111974023115533018877758896879139417717950150696489470001330022599163059442368018915232140862493920420592477939913742709286376455715602173334592074079480119737026180472428397862821237747889122627007763323638044435961011507047201816357577869755478892471714389731599392623333575213716128896802996307316240431350268862000144765464156390343503341444267964722470210449671279030921617081341506720215892065010259014129580350562077113336799872594084591017484838653493878295498471117950453244906232774514887026121620944994603348533374328987500248168082317653178549590500282676654574421195764140123358785889814967845024604407379573431507600828395204113556447543293218544065937252554424157237627201234991205640358148188351483381700605736305552082903105930247403767392199168100060469950595221320086692645076411121957287193696067411701056715456102339816448554304839653606203170016648678369233819024177024689468176510493099226039462932525903840233661500996712965161567357850216712406712251416250666979336638980863775856807539201744064441366204126820197984215969960966208391410367854906323352959133679609722587464784934603842425370741633927198566204558372171853046375733475771875087653065630221159030291444962302839261059564060963651075200375842468082251401505831351343533758234368552940002908477956940833115916650633573205825435648796344436372851449686917229326457865938970148227351741495244571739962281862960434127545647128755231405437130788384516522578279244609946007457033109777079430134956136855163647346465807535272628174160203269640784098442489227213230049138494129790803520381930097009226787272908808337483634205958624252785091315507051336758843281568814621242164876905170002754932301807071272394937419260351909391210122476947244085991838275794902556613164042423719833718562619908141697812759323477706617661248248970943903820063116085442041090500692042448891806438101128314842295303087268722483625615986739037977583818652218627473971196050713764948253277904726901261241952308341974542650828940459639057893558664596899051199427896897878212189417753491941446246526638279193153604624326047413607370013648375992691131407762498773470909226187181686093045480204805830819300897735928916023906558295327945975387797115803157138198239117960316799969294253185994113006487247430602257035137937628431628251598869010205105736463416150184958190868173940780870738791320617978088865271322336574887807666480466455051123434741738851043902988715476684886254214440123652570403747441503139291981247895335044526877173668506296335595842431937512819567413512514357507992107786371714391406289237764990147180211243034271957288476517787436182579123554782663198653673578906045400526864629150286795844486330338744371778109490616447754509773346121278910896574493756128052023205157001019848138541337744298034302055087088334614057303435613621908355584096252244510873961044460770346766233426577840546173330882129284113280810024167960729386141040255121634076431121107342886536043596379486806238401394265590776527078528403388790369761859227241997958953700282640284463991471781508330015884330307010688490968379583279344752625063433039497071282518138020261127224141841344892165254261740445330636777001103408031602916424383549004448946393303918597081136895956293113249758162633704108231562538514710312178844831044539165375340902936536857706227925661343355758248783518365725706183597975049217286562421791363002922859889381191590790312356727315391131355982664909274241284866793785712574693865128851292944898424667369720126430349843103054740038790959072571430747345107786979193498549502784583429113660210290139509824948232687662623636599092422611938124709625793581261314281708711236681261039266678537270643065666389549175780491091795921691518935526840698007462843729247943333282203986959440513945433136364051530952458206274839110005303487899207942852470107704426698873215508900788929403650028280731416394796904316504745723545548762915178844487910188646566764807898356731918136587274740031579417704500043255754265351417632266224603610479032620482648525918907907120951941680207709018487304081416252230029676318843415595736915692531304682509271931002415640819817450732940851173084850898697230796829506273858497435937023108995192433242483684761094873576025027447405680057041346095092674072608117752094342622829497764274084681088566624314387760207532959807090273778373722075233436052482623646250092948538040704320402329448462516631702761671325272799123079098736983752969056616062655717688595705796599398428780531331182690425731689052078326216861163247178874502573719503451118436225456370795010509160313650999454689337129608716225953481988290920298103432388916546549905677966172949687162745322840805877269822600944913715175097320287316058391233545556693120660741320044417428299506489807528296766233791004159828592967692571396792440225337975905633878283691992317780668286205264563281641186545712654632380135542100155623756762282090834093779110353894971485712290111192569635282114166965242093329896258303956412922441035219471024684124944121969310591416008997617467804137508226627453123052677539402187539708445642856510844185848698895402383541416658786795038359855849114589685453383738999529238467467875455479242108750717547151285629219893509671996901546128439715651523359881918713228131836971611902061974990469960880534428804530334070984178319624918348202842498153516903449119022222669350455249129332308977854930431689462305651986082085076681141833555084981592251344966427098494122336600826403110364174414068274236864684534220113678886757880994549691602538876563687187423831776549845563809633077282710621752587417272989146832379274842559231406811377365232513272136785041220508718598147906960933559032876724092658812490751997262483744461139502178651875229451587970595499284567351962551373923999199036449146917287469189087416416992122158377793173073163374721882494932218059180008995386930634377779824582221019911118916933342548656049347846715320495993254031826199477022611221602682167272673750172043200068784928465478807193138534072914298231022627141687160332682330260402681318712366276400001280052852970891206985533876868813355323505176739146661940633565323227805459473030909913465272962884180166177702138763537196894267430095923720945086514552387131225588787258183988248801615220904198938854259090811156485033154578669793697616658455644308909276809434902863268494357869818256215749518745615839216228573255448031896432784817706075112670188686549343426430841878524296268931104971237069210027842974114672653069471608239017895106427898927840112038791221716391596523172333207004975972086402316408093370391396653176339806968759446775537638141234053847859035170669522009534523033018672348004304914643328501270934866119889784428377932525070803642790188738496152427921032315989742641865782655834498932461630926757204121994345470249477962889387189171018144417065422042872264195739551574047104216827021111707629233098462281470051874767935527967124279333598819468983944173802256003623667821430222451813973500583267088332919212068266034033375893088428753094614631623000032072821640271311288652882159586576120406377205522156755275623832145725286313039848142706513900304757988266267463309615095205279390530143432732273409696950136862465208915599053416087911253974672966876889693525907448144896625302852675323429152798898486875402823008075662857302381774001617279811741145101275544788462780289134356881459670313907682754938089254530697889548678050785951101883885545110037201120779474217495225067273819616024191362156404087677403644707442462755356244751011541888990785134487022477516207693746112465280499127683154604460281102686898659460732026477513471902964784652116481962018616012257506097984702527374403490950058817608148581693045905387802886008627442084106619094245247099055244514671525288637332709693486217859677066782480566940001190857164467446399735056595156190399481245664631024253331472985745906949754971884083381053512618875709671942565070799159710085967271790743979088244056843111232814579126756337953317963056660215697775234185596170564881334625343608169062199614216227324393736567076301977842625079070174356574602346443351014609196703506775004798555548757939352075769529457139973266047948753726292482928934277309396574840453201145644559055403732394690999960250474677484822020747778597227577372332642132202069509147870511932019879379518815169500620062895769512605799492694221075743668648415462199742254149347403686739787855771740308407167005396270823821395662291641911878065720115485629295863323264219670324421098152202478431752023426106780263316266178035933226849316320574973475389328110611157452477638764878548171478437060841786215230656593371075034438620569073169447868837151859960100598752676931260532307172560543913972738611661139582781371756262047287679058360657119026387676500069214747072153042952736141887928118896290868755644016828268093184515198021794154381306553268776657024661910322709944460465537626332999427721869495373810139183826737032252812969966909427594106592565471129111886350248973889571761780245129374967714262923754377676133568278327476044333974332582883970744819888701605477625493601539138151239098282756494584158089751208150591889203131564631908300232019455941170437520025859290080821217266940993775389903496976560769724156874898392949613407725833413312736050430795253662450644924661056225860075154393055150890420924762997892367787559542342746886971710544468388745374070130748313174289203631569161539287229348627645346405976938082605469106527675868505031465586197413809166758721263120807638842172523365424963638442762459211275154469660040828202827225926127578230304415968605856507692041868278926363983365047538754986625541074773558264736305128823978493308105754627781341352883828853742229571061358211431631751997955602263578337585383490120335049450505825892364242952116023248305390580003687722482329990533956691195342810876201759558787290531516490674173031740196942857504380266525803354159212019583378307738845935241460952495086330388606194039207864089848917533740479383295897491961321364628876997316152778815198077171862170672727948481779953198897920284497602809555673062463325291853839098623600202085994162019772759101697753710454517888675333588880678791167502384011780974475247312193509100915720472988188516978098227951991229298437758262282845508197300749366536334055202896326161490340972184925970237023586173590767276882094370875037956411701920915016248079605790066391119596416451709654253548458452019434406416052664220361432246218941883563682066607010610687401855236532084671977841555533120522897662740014576536877909748349083183462387775072239951003006589220775827620323586622531923301649485170523368820950889540549297326857705990589542805280087157066010477717147799140857110113028000276342466671003784687603122125671073554422900561809697958125288512147553703795407382933006824141127548868799688213322219372710623206474014610184848395333029172324604643505666700964648539634986957657281182205551364407566428348045378335031812176605276072545163204402414890715288617694723451775624745786310060417024157806612428324775770829494301363874947577178608124264094773484041760445582729713117581298412641589965820409760012129076756902018048593666498104302245581571520940863117810824721808385678232312478029031320214754602673355659380431670127541199947582356924491567350376591256409858020717681227698997457403373890462822016730721196063197398912774580788147217464159815967251386734583707508120941590388969495248116438690686480550638572353196228638880962970973608366760751012388877113471781304202764331449040331959107733134731493509603443081787536365917091327055199857068573306706102789668521462790842099039470485477647308136813557279785493181090256486270662363016406743791087108381477215304718612278128757434970955187689370847499812259059971695970791543491978753412723576050185705270980731361703556317218685957859273985654390779387756816516331930761887440227970656244450044267368649506844331760890654497121528487587737687490466358740822573125800333321911651156693543916942959185056103011772270329370357357930034034674776092430360558810226428919757167232306030357994463664312575755849000596394853705043778630809884182736694561629739609198488844369761385717818516767774407262182775990471349356320073715538650080923013067340361936894200732400205248056168148138216988628179312133762009360663392858582862734929394109904732705366761568592169912523793685849416801243379055422781615349718905697950431977909237236420585657148996721497458826777492533923804970624304009215790321809258967573938411424277358894743767904191786563173929603228019500594381992547045259520323058454869760643888229031305353475677945592192143686285488530836263143222863115905185963535554774366048262047172601214191002961511985751712564581526057942352224130721179637785697622866754892416171212555895758209242041449045544750649416490655236169744476284751221768842607019647973651493488577071252136557836733657011043811419276132852436898689351333251677394558240490305675562083663782549009845906576428794952792984804637497571006132037012379778935371066375573573310551205914746787739671667030896726390400802398517787290215380198018153693083341186473001971565754866183704727141192322316449210249358567181619134931396743539015374243359860251558951241562626918056328070763578470016130550796374764744690926465955967876045748670515852945745668117208254871631788590242875674347988057245895170284438759594562971325400628161864019089863557403653830003996173794187544878422244861290345955071576025301200144471945841693238803929811328042453879128845850154422408127932568816611296103908409474636176173523078982800940410419317172272923025780165433172452166233740407544590976085414075072123359558503637306227921678880749506786131843907180157077846633363864396516871318012649943149610995850925374494451397207274525976093974473058753061610043426826546551592761984755045384291634429676930282821931206012353382854180053714125865259116953662483001138514048264822604116385678648352218027710605722084323181083412978354929843638586899570317604095950183253999633123975256836005007067247937194698582216781748596509458581722311278880604556847414078592553112644830563798188804350308155448983291473137248139502002294603453599251126559158477348436200575802451361679154785447019160864654412056135595959310973819076713281351464514304310954329320823339576275004453516860623705393532802010194800344681612601593020980189177845961012319681434043954562158254148728011631395939708392649890045689974168875905052324134080166134037222642035293392225984829200999883667971951608038648520770889182823829813528659251192029720897969228227674537711436437380358577686097527544827945509807549758440013947724641383546430259791121199738351881363264917621872199855608300263537802046944970071402157817644067216299949294402343500695594156986159225008675482402483834487193580108248040239540407938097934940510138900373982585930196292593558686422266476524882841194645538488207214083428888421727492690452143763078709474193477320470293205035523227168756472335275149403492688537195595455484320738489605422643612730713021776720262487462899513609422529845243671592158689499037775682433293729654768191169335983264946965509406611204758403880236356446973916366837549871175473796856816092875704313255276805441079119598442543846956779219826140840592252682437827787587292699964708684808845534503556882861202084607431460313279959614604251823826192125070282586673543034845546762976156507166352471156775833648006267998474741460742807498520291213619343677789490511466196332130091098652968952656293407376317794441527452158555214261704818916638041304149810482819359660205426395045039944501846302749162911715466837803298224385970766130851057175259491831982354174503176672369200451096926716103367374076134157319016102612898220751502845733335719010588944532426090156475011716187443140369489847217410162727159408970858610482871855006949591742670330970086758319665516659126353434240525439795161289783649278797978770513203089075846940799973495542239235272815476608082226625345917418701958304009649442808134332410829336491079532936232867540733052322261989088171305936621613016872986409216894432968290100423755150783635839118539815768954691466671986460239037989566221062453459434106240988516730948282557747677087887231566892873510988452860761487879500174082696106051386148011556819308885218207885720344134508840834368721181603588397350833191543640801166834553350131895968166235828359798008467371495132971135407665400869900585304055842254443808882016909553276037157654740046216173738684190924645826968108707119912664778470995610252495592054822548268547107090605287463763616629173489754312247852505703483955469825383625261719016378950497604670164765384312726924197790207148927634921107333821059650837397831809096530231697633127829641235222182013257195611762732789190373548214030420727171997839874035525220006961516319766615940305515102881847964278211344346494159932221147639199857509098043945182057760935275195032192679908245936452815747488844924663781954670835584726321485840012786307864858054632869178341304867433348966373643201524907764651600101775572232486185439695031819679480980454036571578774552269356555702625120139438966703299637890247969136697180330053441657716119536448487559373918810510162366330053020132615921272273245819690464048109062815214021303485647985793255706177243905191485309257948530500441508591865483089173763066280509908572380218482365308520742952921469987331252944933175091968375574638240576035743033039373580000918116028277092778585091085481088715952988857413575651818733912252565258626250308064077788922123269785754797459212374040230068184833884338412444241803020536035666892101993439266597929362810465926727231974405215840827118266203543803663837091249654294401015193011859338217713965300473017572404349317793526087330630250342488736455215356576237597292748930077066858315609322632474151611489856665176680060351346461672052603851265393597999702235305556910955721193667846372565552871612046420395672700716422360200240111085796385025888672805840566668046830343075572600431142842795140979302831449099509111715079151302489094987774826266989747556167702498250064505975087519749608967355978157937885703381398569737948878703899190351111254405322650568663869038076409322143664094488808976792876214237494547044964340160713312946091796613398485622274776573088290210321575620925933433438393429816063576238208280089672640837657057114440887352333428666928606210749210447904986314191973313898416585286487196714153888664068009744034395469773443156953384870430319652408621382356096427018713853181181266642165820557523875966851915451276443207815806855394701650045416043096629332292585248840382982209973457505861640069919238169346910792233870861433518150312089668090634615512757874197897842951698739845989257377391461464566182715716471526992427936087683847755064442628261353849426435249570540011274034669635374767433629073757030594289583217070408497648595492360066448500282430896950673384689403016456802836122500575486383551859831047824282435279361741816207227035228952664544569712646565231201737228950222669957325195000758000626824970717657784185902726135609078571721661505143842746657494654507654351342405104100010536407142296559128142464766412938832436819197947738879341923678186991644077981196070581198163757854262275435401423787225579601688446506299434832021828526842161461343584693622070453040114560019496235773761609683910894566103412515679035103882333326918305400663240191068293417222207394378641489692363127962517922479924644843197789336376863706431632512459222290055207994795946387280701827183539769627325189126820836985019339616643089255174501217724245160697354136913554678018896754269352162124310859268792292638638830127590177757324309049692457175912475193680855680332236130479745280321291977359131441629870023052362437958759884791403353824340349714890617032195158113141590392322493309342833244249204515087533774488503811156032505037060029075874435820864719360594975359824883254459519780463694930607197912441628207496559012775202346729670390769750381215846022149385937661540268796760304794634823274559151318105933419687088944443584656217516100363296457250491417689099965093968316678943098774966974640563864667131415432353239617248693164236543546049803943159276213165039062359497403159830902009381458212062287070966811257741397514930254659236962211760344878338979827870619872825586198586667145418074629981472986819989124533857656670127549112976646187871143738892345506279412540034219102056212391132290493953488645954931645889143294428566881360149286958794680164843201496854298731561590085830987420312346872977459200128039849769280442880111775199677440389173545396341054872932302248080157370038942829705064473034707418713135860764247732002585772336547235483168416907404624313110083851838857073285371270441004736118024203551269070620072458511154771024301202240642605701346527354832706499530349217058440714782207174520250998327916524748582764423436697547455162525842104045073297318891429970619669042821185430311106228551228810111215408307410805272879022971547829765128036583948841483719273395400024529134145193115696577363763190594540961479608027074123269476472945522813861710946947416386127407612112442422779787907995077801443468761482123944245726999066184091335163380241225537759760101300007956890347258202711942511520652473338786574119100059693499323732576735616029154164643560085479205082430530564922021640954485969370308739254227673784799326633340620152602286269341070569697327612605137668034950461828455278705909122448330344028203999312696797429866888476596372923407945299576593738931117573884018209744961215063191545614412008586601209424152585722382117640449345989614136195328911936362821223975807537619197721963464666273790313790236060671704891246491660111113999918154131025943604113339624486240268331223269752136075432912792380425219201506374019248484632561072819628523327585329437716674058320130215706922369049435278592279578593166482650144913511986881034645670100319003192328983874608328571204394907112129961776548465252562934529801942510795476008099158526502722437342733092793561956703155797400563881067536916293031440907490737190910317637489651612018980905316938763631256092720256508591281901972454806255428223270552742171775056027863986930858392957817149459064789180084705890223202769669193327531446072467434735903779627927272855278863701417873777763224038034423979814847860462685167080757750634283097735473219390958351855333963966882061568981290713343912416684762373467480404306253689506177204254065548637788324037056361495633258225237237207742463200589562685950517182169469510015432872931162598126466436942056139234112668622715699604695840770839093024101162642966651459443114305555450897205280328676065272400403182750272397512281486906056710069213164240144936964910919815129550110716116435848094115425982352433163382133768127801269586284483890927918066421831602310995789421820784322566496747052993054322070356695246884340716301846660334127478030318978149868973147449865328575667887588651763294919210798133619740636508670748150201841320173920879905603215568451442880754966412814928601527686400531477164360634362706523589426777796554530857635191464018358788941579098325853172493169526416246617524041774291459495387214069749437070010646609201058373980854194815199943200020082767854224977612408730509591146506202083755451021394333799770447840262458389527236212632713485283559880257596497337550231333633549552298457108313295831969547936355836362246545458115865998051035991268070916080321968722596964419753986350011963230941343564582321667580840224922155647173199565426252787933079666325923679157547662727683607470100582738685200836209914263797250168181520057266255082139416036205343527243796660020916344935727932928579120260589497193048055473464584449692146645919705550846331337196928269975384234305939846794376496315030665292294616587422051824084589189463361897260071796575091261213054128958743887291989865653719652268907017698665090302844305970411870184675997931750110497719388131273302372489972318378287912721253050475286225207397775947840047081760917092874206582530125612137403617665562716841161660848732393612440433636245772188508069767182475860712625452051851889278894338039117226598975516145015962829922203441391111307138574857285834052095293119847764392165099592805459704486630026473347325416609571852200261291566489323623849041742730892445007469403759651325573847372263311929549216921105013345647623936562172227317802760958044851633657121854341820815304023542075772158691088669079897384295744211852494069775066651354182964881836184440864783470005218208653877427531950057825243617701154307153291802161227081407302062377308903789438261440837812370738612570185582813780077122206926852940944265071663935164350918467029240708288122968962571016680709770784676129068913471305994875989388217157287868558904615588917954698222124277805099460040700517513927583869663027300240518816331933519103729729902161833024126050428271791539276910665610552931535803092026821691828460055525466178571921109855575616254220333120024437451668087867174800683925856613769370368093726841544285787255912774471497151308464620573598730527627095833793267564950889271885084574641834511621908788139976924344939309216000975829709004334669586063947150135785995655574637869904406639758817414874673788492735579531440929593531563213211532690221818753503691135187777999586469466872665851164425803166885069556477321962198461834706716825475099091056040624148603993328343381784852923238755506183629653578778870278374345164195543766101725813739264354151405425244218589673972743793407858671949133222215922938603948957079741252362392085468774037855546099713060205863846617071251729400532714646578000030708164156783349972880163731608744790758652974832293134283701147793505305910034288308961361227322248899109832653188098502349263923892779866997604298702534327712179377396737819008579998580073876126940198880394595437492092978839818595799034188429783411085382191292375988722825538345269561709222159042780226300774541677247571027743460467995811231968690351548415733227396921914346451081900195557774285105836591188103297653683508692908891167594424943790485253829518564707751989100523351162003159641824767107237947611112016142333770391117200421325826159716304867519465468826458256706645395409468206634988756480467579110522912687351888042997671504343836333866184604586237617240779688765203322439641275892832085553317060485261047737604701601385710928829019106886210138474070192591858385072260839730137473742005047134909099038306705484405537466731181740156975415902207701541861475795084170333263722347282644702116759633401300103565884420145911384554077200782613459597403305555449643401260165361698583030383085859957755474695982689906511384916424484122325460605590472435459342064031685267633614539744153081845823096920939114093266289397914947096324736325849767970094111786368206141013503596163016478289994906601136434138992307224679136502179446251566722373927250349599604320732905939109519345646178849192062552861534171290977525352268496741398966686519619847714483291626555433085156792348489735891202377710958217224177428837274687004272825659900993770604843009186809730943462530254631944389363807443327282032489375064782462903214532740989328367304327320424856127959125719938855268056465602669020528973117277076037151134469282472997281910557107977858624950905420187448150485791466491859595631671511635921826048641642548395923110895239148134961837592973110470963754235236811100875117724570346483096065344773083162382919860109336501392165012050182081878233714478217855879205303140567953696742499930022032345512602276766905835991253755096594071533081852593099659278594928842251302086972892035239235634297383568578300548505231070984851318942309130899891147940125160196993974649814319691461576398791868136142064067458929615653737587541297669642983435367224974548731973879038701215781383180067247043568973892880395116291099557059825749200349070676971608366145589915056509714457218558773344477326702002497248257623512085713744443165821415695096731879931289623116384195864890438326802153142126580751386501915692161905438930137073144938113312178739662315412438518396308120953973995295560426129159135102569537401728539211156196778454999641855368103247259550817212356322779727679746853495576476874044764203010983636263026381508136313735818003812857118135476989578125741207899732690561546611521273083269312254640970527396196866697700821782469871216894716233706772080977294734391386664764586070345284552020188441761714556623297166306927151508685473709611553080054899679454263775732019381977664543977562233210495241565127627979386495890652842138024620056721709613357151812491827333758489599875733219406954292880636025719261043189166676472037680502437620547869749912432227117230896083791418289059537308444145814718351285534667270389002678134034537476302913442002313144474003959560752774339861625630655689378654583215114480999666623263275217616198968522458301204493591013284339434062680419237395032824270811280613632253754844407842984920298752718476779498405388828663724929604001181694016999385982542735132818455190719152869773931461310435214963401316299374698563796053321234462168122150204053630717866493060072468265564138481208465886526504293075788594652060768803073601608104537885120162301336023210265926637689142919918592398966735462818601920948673728330396932006714267779356185306393012997611189683782902444439550030493686229248829245832042438876350781221295785188444223734659742382279777914556898473829178987917686156902742270144849374140140066303209694486692189282593644795867517862799911821875414341875523471056069962198306948575597002881861801347822009827158775313195833947411573195529970446245905221184793610265647547108285497550576807631036814307691759465007641893313032694720597034435485743687872016285640993883279090065947251493433043190412888006608147863388716393348446157094989499399833248669214747247088764987680672812965241655416248975448884636867733464098031826667635302333452863553337601194928703011865987944688042603931359506523026830512963175258859559128462996018190004113540910230675472969277640118238209627647566589926838245649512611392068737639693925652221704775996794734158515363909327343411450850450199626935941416389113770938626041972890292179309378577192457794421842079677255980976625308114716056907386187840589042260238998334427705919136729694865830783655472269095412401199848728230056353542719282389608588322564118089031549660788349378545346363540799853323024376851635121306249109837670422110447214343099118568843954293743915989530840156279495161001320506501901369549118013184115592481477150978552860495012199288972774479868114718541876792774624639109859999867552769877446088693471044221902094649264050630533885964245284263478104905139263428167643531256746671476606254863768480830130931423090732207390867548161865828382106421970761840655048970308099487492289297366730443170401246829324582141627735455138335124632330272849120434786728036851432760851992552840486599720373259937340989063802699804215429483352108546031266485766382883204168972221589108641894405599236125461629992659802844682986635878232007241952318887111805206639740716820843473006794887752198457739728197582244863800260840044555903810776293288888430220909279640821541213237353293723632601833261865401559231726787051873849823666507476087774424490541022967949067174384349739652398001972627159769747478838466459637566112302062568845008525981392497086353290385564349475708938142351992441071201492697083030712163273043746050941292105296761232469214850149942955780446066608898522923997041884272697714697747864805530421699033544317703788673756538181323879473470358068417285221625148207519305575974740463138494399090981413045650815698023965292934353700569169731249543473535037320754823713673842679215918376065857511979611272879586139398154981232142308636848307368037568876053363576868813278895799812868381529357751485419480410686596161390532454128889260655670224036743377291230982852142921503560475397667263946381204724543373867544014442152233296140695784309981523263082351342306786571533153492353390233249821734748851548729481924188198472690412545338502252870016132971335935929845236149387964406862052897828857561841825722730283859637920077190033642287557936495579570530595236779507834850880170997400306446230874996892382518712958029988234949603566470132680071966609161721714619182151323657124719568023681780489811110262019588159327019275347209456485143478168712795783001384218193735147106257945393953528776534196166367203541112496624111380761866041363342747926167670794981910455603367722261482936968541057538917534765519550483304051666346104445329374698964980281364663458020220134751348871049211139767580037876990909286662348278446338270703645689519978952212933996386577819232761087379805480357836420493321460370653975398909233871584126423261210705993499405929214757541410698176439664930926092828651169399168442341227722119166870194741059940104093384108227754950010726981413821100188309191823200471569074109714586178317479701678877435415413488818785925532212583722198806564087361134473223101355858236014272346987672242340609274688045694147266177248938461047392978325572070123362797204997240988192158352292020686644623803590092375284026388170187476400466928493432797080489421722285223526443850062801546422541047266877976347304451686784733507242836504305767661508924013983401061480252777734051142214059853137323619351494601046115415871054035642004624391628709412817077951996000326404548889219996957337977251638704853155292318701916481424938472417570062396675099072246135980529589842850778092098393824166578606980718621297946696867169565535521979386157135120392925031480974227624138290547905866444836449215125863422025323454499019312800905955533540404896513742372011479936296009367823790953456565561753977777215949296612824196807562891486634392465103841702819431537598630786233728048326584974497448526919479890886757090785248876803714426475756738534835321445105713393341039424391004890797478232570887081721017195066275196891942026269714928506892875952236083919165314693396495521504068916524522919620387911188563442836302545282484376939036362200140434239049839440585054104066518328994269107448180620501327672496186451997155185908295042846499014955027109841879485236268748239670536836963164872399510680077662996660566814308686815517650649428533937244901579055097612565165777482488780202458377719116442752471583299757907364707199771845637860690235786734881214307224961722800726830740535513508380569970460916249211283644954689747908694873899203059682770500511771135486085259834242917340356593334942941003820532127272667182148105561903363287655618479864337722866607028431659509631096305729244758119804183495829999647291338347062847456270573914205388819306795559781119351093906548374616137493938188823890857463504118396372958662394619308233927113468993311919921342380953231945527305588911197325463903793474651764308198531871250349555181022985570259332568825796116699884346829222594724769021652345372310606087875834458028693849746839071184562595895229640711307489691911058749246083857922341883795750415270591277778702994206908046119492711648365596012021713383933339266376756713920527864962018460780786848719268837044716074740862232593750344910922089056772669235053826901256001751762839496342690869515195141503946570410181175576299319473312526974922408153073806980553315877813186986633168464675207269960651203143717794385499323408979830010022017164800186789390038758647588689489293791658955530477770391845097235204757859300006879923565208131173581608398619766483166717905876568788413069394137254856361415285632000912429545684837711710215285046469201094758661106866370480437999405507246354767693838796054496211120543015889187689313495063989178018812122994023590474759608939148125373509697962623317396717797196507865429609568740039350782157058254542257106537931592303655670767191093881334285166178506036732310645265267178878103234356661426615956677071106920160006149154964301911777152882965325983044743160171057643068883000967990602172659387848164790701621975457786411830768264216721939205937476096148377318678443337546373539445926032000872874934391595309295381471161437757618226687306295304776278403039418194578299753868636101244335216942449368922257884786055398215283735215300033127925796785208609111910759991242898112178750671789678376296619023251106392645170850120453709820027869256422363338301568452556516593584459398693809306335444139470594874960861574551308434534305876039364301947365241650286458875824388678923626217590577661305188876936408039911876420539072001233196062613295737135076708693726446823737779380449248840926186449994190694060907967266687827647516342752022318667468899852140806875867529597253465709712617623528594477766168830548603598301880392434461036213518661523854104554056133050473331583392939822212210538786773746247509044628420277776593407245399596039424732844014779069260475315971407326781725112700999285673045625195900917967225838789760247955627280019197069068674862169013421644535176089914778022733834400640519855547602970884863054306860616565661643831892702676505282709576165197443422039635582072082474876847874058213109222287448911677433093828669368276896692923158189567822044884188781054436335659350305983964605596938799089263605765519569334649470552677198386626878697116232660508207657392570793081146688678887172340067499905496995816433389796114361833630816698354130026104021721794974143513389597299536974160236957644094666106348518284834042726223148979373778946559735305790446830323125132286782881856284266614742165044352796557847412461821521985211402854459546083832499527007346001061815380032724934585794153599467701919126918925542438411211651225791928443788064233083354877851397362349742645296270535227207512667265878351034779332463884231893741462408267407429484571913286757586934241036832676219918255849037753239640638966496229920575227624441383857210466928646721546287429188733958221204841654951093103428164739516829484512258765476465523787147938068153845205987580820622515773823531194247976385006570273846107543404794040240148877386735693402516286226040348902985912659872520184652754645418296905739540261449243585186092087089375877146333051332873951660135629755605159148731023555059327013202187564609132951146417016642974322946251141268510660452484154753234272982909120371632857940873874725656902707285705578256143636453568374410227275796947988863592555155727986514198505310206545106552401092221557869318576077990886794108570182844705168669344947903896820897713051918215966856423269352504331152704883610532800594369036876494952359711369838406811456915965039567581746527483746089402128300896170265880490857600895121024928941413874928226964355688439490733538344718101691163595483578430943294539734050531423755004490890042417937951501185800672975330836832939892667201701770690459690188401645652089788282947830684754447957053817424718709300360189958097432582504358956354550930584954509543015627834366525633342388618466388043309488465542655524900047956887027606313021660528078956135125502436402179541269435370565943366064704118975680316698593783630966766096090903555454016732465260833283011628412987510147417834887294182684562720485239058739369294633510643182720884100859169977493515923786860598090180450050051908492152078012810718427554325066119614795949281911853574244018751907193382972258434375849985570666367384171236671752278567586462682796510147678496885566239062018525738280079071157522012438944257278995020575632416893335681974494053762819509808772166614385997014817517976766317259180340053005930141700821793005675981889130089299571447125330834971833049631840814757474031679251031701954056221886292151945112583042196289736207629424959922345514189717715086817183147513562572631435982185357028532782418163633292139861304992947085188743887257679013272590037968671857634596772160573997490568613460995165130053534556765046734307973935181854794421356576170228542342047907999295266516058561219940132477879744217459877832123817554692331584124913614341612520863926944167651608049428420512827598365206297603842845789741339656792518402542947843731536852629629083809274407468430516571854509798363592330688746211798030435931182521676879860269898427305175977404243973392303040553972635485865869035145992908492207598600753938683849509590193773594440953859273039318878254130520313047791218659559909354408992458769796528992249061666865790955921475609256756982191961781075955481335336210087316768040876397595157195960762012325291833524527691724002611378271729918830748388312705996505757333248971004110391160553655252800511649555675421478618645129291023985083885760143386256937377855362899998912511298886478491388997348660689042811536289473171940264345290279095275503977194883683242527191481998725688890978959167592629929455948537408873897206071316438137320561431208137400231925058777713687156914547419446682840966769427296575772765172813034829994157585310028748858192681749622635347587338746842720534241077487131582371346011636461677992520112662197216383165776891485353336157252234273175565260854220935435949899357711676299193028144815356640219494752255395301875736733052868815711953481633146051458389506932556381158436061353183991488603943647874710533386814573303113989097831737992528711892924702547494614763250888802312026551911763009579017002791244206197399995695805862357857171928445611390589484968855982177728660410138830068389621515630932263044719768306701308719025707602485294886328770485580505734418089460003745448012693848125993025186814649630893555883024702889704869019235130042909549673351918391883638691207374223049370241482563370373701020133027914844985405406976287318579769332045734544284433780595096406084917596441227243602912653505201919091092695252148409637641820103969466645438550028942785221043249642396191680649350583487612854516740616755464676953822281451208953326106263135858535580913579606099801797462069392395696632662889902065857626785172408145205007217908788582829172421864750206770411976108094095707877866399611477904395460228767475768992216975282405945355816483334754596034294247112954398829598135994182475246818401497046106682871270809208244423654149954587131223109032197442354096511583987976122560801207050331614213469564910633951777195877215853734699706958006981948794376160759307412863215375995984834650075541575522127858816362757769759441053987594221524612952037936844819478360586672544378101567187345437089360156252961300479885668129168092778908838059315776390901850012350232722996732868467696920494815027185164679194832461438215413226175740226299989934412462859662854415451247671786749935728255148672119208507977977970694827387182882449111019950317257980718968023914135558133809236454620452288026612068068583578880386599405644161331108877208660585194777381935898429901760522521402595097121502922026352601202543392357618698405268962382033886916121912853963587827087497474015268377643376590865926207327002822154327023179369469655822578631756879006635454180685682783051395615014693596126900028045507342607505809501486638817015730740530468732947132724715462986942482710976160590136738184807957703133784823393816252713994138801524487938692937946504382160495500052723160754582965283195248474735199799513658558418313725929990323429267915437028852018413539284496325150850720122293675866802760562920601994073555657788882935694497037373627026593386961417303608462901258523407195618834745432673940808842023745631632499942230069412995997568367552992421196742185262719147646033883104772239259306410425319049094150070747163548707012056527975756454769832805156828142126837916038322734375740243796732835051544341505928785746821112547362003780003794560513455301330195847999114626975807694555880933795608460037856283298176721247913761781777315795248289734952795456882638300838545371570012018776823152424689322149413022933346122302408094988665015475440118395794585257031054988487290155373190767042680611003159530283465168391333152089034061942077103113631635233476015042384004990035261176161598980311174695186454031656435813158287834562175371713263531915586805605268733125806600615119619379270121860727433082046258630470401970680348519335744640090869512973700891837946004316977125223640859044644487387258632718503136511678996383950247650420533167132850314692000842344224773998927562317626970688633109042813384191813234045571301106386338124682539377734111129764907470781609907462067950733086377023832064580086509852639126571701045989202556896049160126264934527081014694246619649736696759903672723098996250317840613924281594682623461910024666570277898004821013832238507783641585282698431513571530418163755063347286841897148607249660079363958656747292875443191836268660698645648002479854438271476525838655235215836631852047897553136679944979742385856601233870356822938165796291066378914104818365065007571635330074609186430282293259536298921475608417016039676884330086541553249647137303821124507547112220278401667491939309900703655723889468333918125486790645783396629532959671090867692170219958711413421139578910514277957582966882702841638649217486402672711519134099296226098965642262182854110885605159160695170292647515890399639695020285565289444535118279256367263487883509817345672184827807821889492255964099992654728941123884483687228861464981731500477730443244359716542807962761863960917427102595573851930093243887441289786942229390526878017492985159399415651136185253958539678088662884526373622962610821671649907040443524095497233477923113898327456958794198883581200125164654720916533490539853612356802973096912297357539295563111698698458606269325071635446368927229543688542996744696988102215509047493779938738537002604418779159774999036985336308409200210519270935656277592617464702915648511486616519219190154060163587272926222725882668357518858126861883151534751037835700807704759718092764704128739961611373171231538358880903649408599247903773853338061320155738934534552306241520218868428688319784028392308898653980222555130022808992629966673580954176041382714058216613684873488897642406877931103666366896237474134210214661625245478841460040679406480243144618815600741237707723407907800311406192531221208683808760746440069687781204788487715618420574298727146532999256777183308167638015160400887212225116061579656433326170796170066922210437494429952340918247863762993730620727347811463471664081130415525696643021609408040045268941082466782094303367976542386655716109575649083649776025778431280778540125371803804119069330813781433124217252911896803929609392822829972302027511204605042723186805731746469602839869879141048231466478204168830935092254147522804294912549682321977756775456710234922666139160899401860186334570441715565740680116682063373641261693737787405533708986068264727610645543505123415047935426938169379105492037225120196508717082152559441991211531262444469094326136912899330953538108025344066354879942756578233144939603830332422087460831594806104364017378917650476045802731843936835153420347802342450986556533179114130620381917447504543354862545773172329147983944771314124624325995895337262527135712792693349339359044697940146570020061112578947225109633672252967964617066460653456058842782829519974695866955691598866326708149934289016702644966311292733879597785954288015076552519859269487968208930285434226955126598601641483576930908535312156045237471389497943668390289192728776147326170169851554644682467217345461259327932997237459365682746834227777400356793189888542600084971622973552409317262535103782825720691336349826347029000500245429179891613615105651097930639291442407416198708959384577337202945104123660271564864573727013120283338893858534129774560354120942623961255431754335557287275786931601402723342075092662945206416511610384778875250221451263921547407971753903289023710589274220748054334666068215251992465487435922660363504152299156848573344919007889787323743682132412722406862219420576826026948551015310290534200083286686847508130606649051086045839071705790666612143105533930901764020445247856171815174062875319289084918226725473815830269607245735520969336019537245520063892935283961555673879390570606716179141495268946091342050126856130324061842509379284098433287033539360607954734577544437190134406637675281291330616210708300488971230772298805052092941086723083689798306609235373653462688339041198932749466961283231095163165502678620478466387230628221489385247560496779786553519434779449669683781767961057223933514835919032513578180310924602392601442662784478618623113082319709711178638482409607836058627778245555159019948231869300989232435960159545607182569257513623660281307092044798142259222806971250516243733069635700872171483920631730032709151227266333054829202075940101300129972524247048278305355654478699323452586775130113518302368047760253600673669406030703988626779329387840717860634047684240928403774735794713207201573339367914108784079579897200309562126671123469195792160749890506881104417454066106183235325477652680321742229102739615131316006228500436284464092559214781755169845317373301222913295987851676188037911577905200536738205851979911771549775754231230158528296038670390824881587932045827472649103511030082030123534105640894707477923696831045524370666054011905346387805823919264189228339823852888435889648128660021914937554210031376771092936334482412472477135292117074295610735378108614666705631900789297436261890891055535312089272576117965336366398531481764413309521211259110430850325098442001269675379659709343490609828166532193763831761845391855034292266490473842347354827882121586773018356815614118098137083524940846815244023939615421126211683033192523659532115378486179516324318203197585063810032016367841491352148269434137514362118285028279305261563895953636196048756004005091552797112147812780246322569992433084927356077828743679891310628084452148423643235584369284461830525317401576677932636098638987668446988462749078641083516301320178090151062946982557791837800651619396354809695590773276618816538867103433972727760670337105055507113549788007553351159158749531549830001776108863912420162230207819334986443610316492062607118172609427711573870793332854619101145091903939210409114436210711753743465460644194943304390531846500868318631921482322424297019657274949050952515796616606972156875216628626297704511593702321367461543536304485955391974639921090143202103539397418355152852533852054581608772789015602172805035440548964847498758519009074590490408511846608556505858989412446722831420326445745780159651470319646397253726095159490542704884022239915036804142965207085536249283612964326206939105697103887801809021289365487684048448268933554186636861686707547212338129007624298410408128723137244169204700117968179094397017346977926495756712794873906899208153590742411125541375768501838381976029646481504947952363012630950110387443095465176994870633112576343014569278701128882522262790815046425701646901621009794890184356427527304636049829375277360949885677523491582503733394065661466041606655847230164929355074241905931261200049918236695979334340158867180294626015520083876168482348292145749548500924102614785550005835371050433671632213899527982200442353942873356958050146183204627508335504656837039604947914818431465600454747867171613795768717181375013472575827208470551835135804803528945808734111655898845474881120368779387002850021144368551991800423339928203552728060380318557489517121865249696779255713943402734087961913863439451497561873405447337382854967726756262345409004772820157070294033246615710074470136676000240485377033725016665328238649011805033854475249385675273135054137245885518875354232462376370895233364090668078440074911368677245521232434252126941405722267480903651437780942736263659161910326360471271815130675533008200947369661909420399829027215890322922871410701958243786029955324570117726086159777175986960702933417689968602033701569610549225776438943947152168413011631668693291484985085184421558868231552097532991860273834752808802754615414536325352094079122064349756869572364724212956339614704618853334659619539277772750054058952336261528703141258456871656112112864929946930946376943266595804510465635484115232562119565923752501849054793447435091830437222584982740652832441609215045089070808347289350296893540782865946345490223865845252898920853265775646545882120328783253999876089991963469740800774573646276287641323607729361825672511725164374557734829079552924294709223733304054506464119706985293112989226699882831134537944026395497271019958967892148037096500855410064462369626811993923894427090698841407441259758065337572184909901569955229136824598529834371785737439424202414358858623338697456063642515454713455612258787796505422840654673296135908338203310848913484273671493764277075395782555035878065556623103413796624769214652134011215081586236047824402473149967861057894002357864174783118898022034982309320610340481911116077392933647042043729693154407496388965606174201788675163815924871633991659947656164201407078584125911065161317476424092204380407639951841197354048676553773699310515927659745362083797783087063545658875422056848180202325236872944634549341349668272148298652759571602852855513755142326945537224072109971480407497476159750522076792904060344502132700739407220586000429919022803367864983188962036310584578771542490505862119133495913170226926123613972830330756341224743050013858111234803615444707591447803000340696975131450863402010890179367132294958468111958823820835108581286235346632414536440108325152912419664790588921461241187880953577966586874519915392520032765101914244057544314199914794258127937144263847375725054323399877145789905122770286440872566038713776647617135758994262424906795385892130048104082816828140855538909430679263391651403003456495329502199264792279493594966205085407270957343098996962846986746914198353794598049707146180776103758558380814723411575252989011134795958502455543958952166080673168984457573615209969028588623507712705309531835659452169906387296810528224477393543358759698780052053385504938558043986166326766202766113580298158012890115461749158062200012903462626270880968886120945926780005045141952547830739764842565671338537428116816157833822645324458984390858573298724744103074916516743736102320586062521707560157308028500849647367684227489195654277776797160871013191972727406080230481592759797452565701376382940419311627004712591421782939865420589559717061984869925159947939732860616818285302788033036972519722905000848913577298569120008944378151696021426540090774493993550404920038128888331265755322081055837258266697604076353741652220225950858154128451105179491980755976217304853550136503803947498831605731949478834717470152383742214267825808275334995232413768461582454524335042838482590388874017933682643314218058288899152718819804916378935567115014997648766486690993853765671859376142679109369575647091374444157737165631215195176996785688247805543435429769075188082689685628016946639067133083478902415454574446950349260732996948841969470320268855041183378085793720739394904181458088063236276242376526190192359302955487084972331090747006091792825648457769115983727583657880936253944989219136075047759802638657196605777262127956408463891117754145591223274169678292620357999445117441541208955770374699672603099552354334237718935325736163319225651899551299811941431379377026693849284241587332436132362781110025566095472825414200421429579889138463500863554594506438034245856868225659141630340416537570159912377694996677192963391954232660662071479016922865673299153368917509748973066374976972999390833024513212522916706041274742750648849071231912627421192973516711506030082559747061374408875972290391413210038755505800859718535931041345416567530471123662403801858686006849022963028224455206530541390341694084932852750150440308533191341644446527952140039810474838195388560386218185824425766434228994948229084847272118735391391783666393339953623900731169291574882425020158311091365105686347115951955734962567574179185066612984305985667162323166710586057698334813216721972221561939145703440045734655722402123044843305126048844157381551049849599166178882071829272246071020709475477092536745776991295556941244826256839463897870180232356250218845772275905515088035118851932367061247913076672224238588245372737239944643036262085661123464198909467741297698835206116938004577055709600675615260010645628681765541039544524288688773384692674260685349665917924457965857311762347768619800101627128874347296288916764178253447089470927312399828869551681278863824305744844879842604772141098530696802164550837754637656639064428462046349830644921697039863998606994249572736351315331579945392977018370054870734161434907086541585611803952056657441444288318349567829863745044616374331183425021958458533720860324739354940882418188165945852851253934973629260663136483612002308239236702885778716979883783964263578655547039111803099644391847313992915023797156722254350489055476736948630828670754477567893328305267711449142815341099483584795162548408273954851945186632061321936712850111224191952138299000009992616762034827511663602617435194615835293292024688535131301785886622462784046124308023773992877410051708714447602223717112359756411018279210443803260945673008154212955039778537822716210088347296723799181298874526452350646051469332091722877537766026075968645028220686299904146162068810037427409640185144151143424356974694404028124303537503659895605611657198505666609290265586884127547040238414672823059687386237178382428144640125777333910436844166949793995797237286028325412450580812067317291095514158606138563409124690270938021573667698666797570438626950160976387783015102247253939550348854044124861292933825499891451806838817927572714080900597757725527477249772230974718558242348317934731459841134595668950345968972748302024916001907403027393685623913971583847049606182947242390039051754249251061569968759451852466449176136972176004957935933291998623111410828509287184234501637541940805844963430272628729448637564430249517409235983351783490094562198264187122901673280578791237984470566801026285992212564439963626119575528732216245886247558945133993045996897184538201960325319847015574788122208065627408377905702595663857035789688178208153431630706876615860497319837216773295112185551342013284749913204492407130517038551006143245593873864404944637066361782918642193065543093696492799616047304879256596865781915331312929879320265087015547284223490151142282876988544284209523967156680669847375147273489680372464566184623079346585826570427230932234195679977660800873102958169595953912486379735465643882208773912573320266082570498280155520653778915735152449057166012045248802568524657635859439718824143738417820451421054225341562541182531940781686801064825733859239435241023628776914787210410043767213285729126258641854650577446255879506827616474289546204035307087492878540876050710892271916153956776245298969649461609912398759716476233974957521809001737782691571147282422787776964954617350126011789019446632213530127006846224828496817638769171612003653281420373320936110424479354078524419678285936697597009003944995002944571956059793434380915768043802956769328384843690018269330305938636476657214076749741632580848931222770141495770975144190040496099545092409582571421226523843864708546919675064899350001412490404433238342225914555154277161734719610714284685887315478730021557695192106906099428564755528549214233911568411617201532220333026160435189943334885789407840756301409176111818676175807132508290799186717730071656492101022544762089385891897811569758702276629320232554725109483430308032798413922222579739899990470661272472338333758034486142575339929534488751795769558468226347615165822191875041377963443017050994293797365463700081702059725568107734345270702764570252951028946354208644272787195265567994779855659617183053861532758675848945011114878212998559789620033676470039539753376457556981318167871520529738994563169570756872931483715208877770552469766778074709295459769955252410740321779952534359250582064622786856257395432891709265002181256094355414453493673921405534553310008032780250280461138537447657832805464952743599230492991489395797289976793529068347249822572234795899325251359534299714568606165671999136143512767011064090032544706807667290930273304249235894861368313343751017107230526550845474277114236632418519051462022382129220809256837561208990166253831602993147640236691057777243357372217002181066015081469668280616820169354445301133856728615107659369114231058704800637526977499448844627717635419220948831674560408091348613195284390139882247728364126985378980182550514637714825287805815277075646517043959105950300654157450839044163097219957644275484530336686167476076934926735847534010389703537358078023782744341407502214593935422418979669560740195263105852904689355879614238763099805215694875573282884801974452615928352924134537638006946184029849591396582154995510196679867167105859171386957324286975445174653306253028494060911633380529099059920045949671408418118032448456109621750983837054019096428209665444319072418937200106822106593127873007858189451682853580216355975296480128837409256404681244413043003500495680229930934471311879950994102735061544907409426864278043917026907250123370759333755472434061949020263871458990759853715621711736736657571858309530998451395179752068800707591375433303351593727193789281616562985929136789638473675141080601844501463358684683710699395279919295645245779652939765116123072368068022804417138172951409933528669449582359675040426278031449218841680982712165655673937507762648666852475288790417050611071477739542133106859759151428153961538669403815307363754064776529943458664957682684684321862486333745984151708236745969469675956364737075562801676450285691194345582077433251809961654259362766940878795483261207272431348505450791809454081791084400875313674444889333023989889683069690896723579055923090933966984977995076345650515663202465261121106520790707883716868480374320510114891908814295916530774775596127546304296852389144711723498471266040988634292315827697929319621734122207707857275980038421281758765038961875349099311412470379693915765783627985300100289428288925000274410645422250595478550628276914197848593098227930148956360036382344747112023167551609345004734446446598726763285437630304725989179027923392901668650706060530025107546086817266042901749362087352854963692197657795341034026969566525041407168221690753164585700573456803805898232378045347820249438116696451342031451126979121093369271495924820169288514104788444461939050110207100637402514114852109906941062694862037182388552599173460446880615667592507400517286536641938620976192434223108193240959972644602560793328845179036389987163491756884435417771515918787419295003577678303479821180685964881838238972492944980162103391321568231073393199648701618779947480594423997532113020920730413164465405121701941178978462968973282037454800998379759403715607621778256566061992189120815736226343657494608206561565472685332724959374317322179546798051907856404284001106764471479093311925564197262142285840297875953104367589972526688471461060695225511697213928485497787958367995201742326205502851215578221142253327273864831686645040967085874395034069184349823415080153972305109093202559043468957399269251009880527853735756210753408246137722370169533340354606322401090467943356315704796974846803313341370046536674175934912144945253689525762001767812064253933986777305307369025829937994660338723068830001851997599748056407595456023043831502959137802713747582668064262260187277114910834801969128314043376050203731798347610378848952372917620333816745958423439398833931044214524405494778266929084650663374571218614799286955493919547641894099407325086064720867091080930306164041474638794732121218241896877159323749040801338468082881839835756194976141768237099078951094933918918915169497062010003844916145519802125937471089976286315839857635162088125334696762635956242011827185715975919029151017378837604988529195341283465759533585911549128514620660200032678460005809786508736454085004509025801023808788416597778289111914181656344836509924821395123653192412434458771116127196927857121234089875728301620116760770059428982940480174902416067004116425067029059729030374981862318285182237441165423948211884166469043120936287048005165888326461792693701902741130182368407781430540713895074524142051699494210546087426683256349695647331660238234490878321670033094305165763347265229689353055885877598222628457015247002912859024505826501911833506183980675776608546492707389222461609013001114193304171978351006547136339447155722744011777831361773267456066158557111219938028891094627468498838732426090167818825169349066398851055695869139697757926315330598393514288098101891374063066601290292518618995158302826075850980794183191149033667160609051052255059598020027981289327649482056273032196345015489087529269849479202247043052945695930941019560975151385238545992408842673834404478132384760210415567239046599180384817831002872942924325416337285474056236366338422083675126312804197245838491902775552645198572835852536197167502022227046144608594314069428749885103464923362994495578148561756332027608460713355244651610164765390779980597931754443988264000262400592932188561890079291118540712295591809243319322275888126808545955820070367146476231567456176448558702179233219111606223478411322846301518507341815034339179871551138846088199018791262769987093777834436938679340339367912250826868657113439356024276676955761584942014812157133626908708065114979682405433065379178544493537311333927333007767141084373949141891762206587364853804610205902211129861011401077548752286960941450258725823556067398251168266886026360699739009267682928759171247246635333079298072412537823220108600253487078343619312418386690127979806796851458184836264816579882548327718481331537883611435486772136893292842199090901126572057036623262437442335961304913915211143134514730559458561112784605482152610091473933128616817131020327996747044403679605530349754472642947100758279569644322927201086440820059461600986920729058274735154896022508358380059062153670546757540651685897611215715919318192679389880952995521399405489673751652746409570896402190076321860221115817385076247315990648467550693381083648731905398151684504685051187986878872205010096508048644858542237752286052622991768490244030206127786391398500293079770218782402644128372180335540603496108265264316537652694592495098096419607281364345656179448451162468229152482020084786959639291365238710189539928974501936736892001757943086982448636423545308488239220150847157588493312883705428549805722292738468208397666184137280873234868193649199203022587328605709010930556011010970782860014240758105865395719851280688620528467755453025783990755680754940025698102871944771312489347507369919698421382648763070650546478151301668765666103514897466275441331640439726539119913238396505483965782970067051973888015254993634206449911109357612518415359807145757594020142464212627035779310384816409809933346901075363382801277957659241765544499973974802407326256196285235106911705945036708756554375602642718962803698268538828742445449758759700840953551877938991564320978950191388131830843624257640162666720358566200603620080561519197773050549404747055631017704376425125210987638153921318648719123109421008180980209188567292757188480923992787023219803853602732195919930202582083920787394868624579021003284322080463701986966388160457560694956518018218820647444074279969194198890127130537151744920117610622649517806455905537038785593417597232165363251899403842038021014531236165491605897293924430587798850489349470128903953365115257160813880883782392124739550266908058521824458326326358013317583134800416187800593148519658026488574986260584338373876541083872876694116638818858328575015382629602757282381010082048278155777570497312551800302813664050667267622053277857010154548827404732197753579678888134470365706974621249806739418226558102937094521412144688069386300825346626894003807174184323631014863290205779035879006851873297159762629281987280951185096560945174324019402541795620062600291773097249613107547815120587845216678956295145601447634201353285899520373861146526443950623766767199333181308443097914546792816675833790205803581710482907293118682194652813125804319861432018416132269299518908548860787197129303449601444472369250325310420592104350210524648261548078455408892783051772904606830504097036788612013262356878960657576027062188217583170663135056715447035382007388368263764849144648338915626849947045091363991582756046654780597391582859668995501051333176777109245919592637094959502650984098513234219836378965476332937806341962069334711419112011504539364532947893883578607679754355127565813467041929419981747325131009839721690493309469602601887251222098112399178763767473568687391434833460239246075652544822877775335443882966490884990675972415566401860792951985426982077887871736052581878365512733269360524870208872552757420296183582886198499288265382063367604125245124440978100779195394562215330968486844863154891881397225725653270411460822157802466543052335253022851315038251128851064799047749291191830728606238421562408741788426408317383654305745036208928627539764544607990554178928214472849505626026851017223568110709040076702363417018873590511392138315649092243137458327492782799781706568940878985597166437914176297462326029962023591497011836206435248067682664304052809527082731838876836693349714132285994427747782621942292403510769172001573686328377355052416706181678372208780752801270680534299625393325454451737236551485893599533992748092976271514978618254240320730453071850563352367231002464860325548589132332846540965192189738879110055017499616880250873068083559493890800073122204263377795392190579968769462959201844755216586467806507791889005483718416041128038105237230852046048871784003901523200599302701433583463022964868768403085098469521701495784422709076180895842127362699084964969638980600588739322929871113138175041915311121130870327963062699466730799493516299489502484403365263018303831171470664035881912146431697457126792790887448466695583359370004529899269868933134766445434892900364075520682471987626821699770753300826464780035346303548506028600414509408892700176649559507814127520956030194514990185455556013954205399031212453566333299312610096809067711335491782856356161964330168748819482503066046372101109950253633676870274945258062877110602907100634074594881126149163981792406486911569662756413711373978854713110558793303960282764851292605923549337402446095372440471231517648757334154966596138367741439846292402420685488631387757085533175124228039759362472647620990986554675201372297741673995797956362368370262369993311243789786527974650810535526527255294205976293633918464298361600788154957208683866923033503770125593271581148225879551706693854804211130836039827246509771975968931917934447644439200029912081182797311684050281891367728094173419224180342667332099534005622474696563708453288278350783625005225529236207818642979678953954052324237292553580101503568841728072445386109982379686370638745889609214691207332881145978277080000983525556242993480123433463144233547560761734392997700439312122030658034967051256579373913067203277724238628364958000652224792082842627881383860438485957448550726169398440985421719853565445617986491918431768821543152108641411423144526910379191928490263669330748775648252581152954857250659277580736994730965032449498105229852819448782155281602896040670042634655476343627388252506011732778735383426213867460434061448429572103138679103282012825568131149760267447630335584235192597654473663831617871784869033738038370537474065048262707319406674687570974048588004291815742018458465247612086459456521879037721905435659374888441592275408641672883247626987873688183931613136618530268624816316164453751368757102901264361687122258296891232789868091524977261192999352877859159318835583850398231334345499432199951634435586481077410073993472349986447252850776214417515874159325739960025179793372911672150992798521041032335259766008328047531810517196093878505987101082073384071831247209464266971014098006505231700504084705984245659549834322177115887806527014350101532024377309090525872534789197687232864415306377289805644432669676466366919136138334293845945877324315402170446978743530897188105100525319236896023633476189954293887114952926625614907061738338939901716896472364000225855993517192527383401436140048770207662245238223593521742531302991385265216187095051362565829122427235384965631412273968900295643488943149108742875623815632354998811577993433640119540849140136393551590276515209670166738351366991555010779415302902119127960660614996653345640024062740657813636389259193458705567017188851463312675162128096457309866341041041707012976459615456721944620706845901743050980856570501690825540356404570255969559786734059503656284544646440622569840373802185073733281494701758336367465024422940069721571106069461648200404255241156557967912923544351169965523016773114681284657581553443882570187976008238513910111162449038276580105402815503964333673345988020693805313645883672649218163583354087260618456325612471634521255794822222939281284518315422056200371378418149711585004176635845577394148277507056747598238540238488759425319410092365013619200156125550376146741208579772567194668468099483962980482442082175872488635309129948836089605654510608813279877107540104426894236218374610600883055757603896972614358255872437980195883530922047579805648199445905810357548849545813388314184248771169177566879214602913337007550724733857995135583558641104774696103144390996478280140569008177247121124386723102565439127116466594258457644785416315058834162204735604974979066918163367924406819328491360140767544708384310597520096448651053413267853956990075941633488215478324644220463164894921507935134194213777337240991536728372206630234677298066396316553117535235126517339393267856978273907014574413237531398690762400536436338267397077774404973555619404445855299934064483391025189067937107914675607859507745560066163104897760509494987325839311238126382918550866211012068813139590792540365693093483252234480591057517170969130844512231642211368374503459220809603681752154867547826875042385894730464475954458324245911699742679677137721922277053654548731772871983921552560448085707585238828442112634201141665533397994631098214565845619358132139104752281621640402810116270312631714355516655249729223355011402840983491131543814715582467473809196790095321587104742825332088092538713923442675840819426526318780668853660108898679762984762940764675491791145087063189948666316757753633325984781410582977402414022104044984869655116095153659331259007026239405392659467281625203138833658673369322300628037565284896490167019909885260679937310480228521979290240891518138156516670685810878155078687875398401457818843629645110696757395704490748660502196205510423583587736253417608394604224631122983370096357167807664806149876328890352873071033331911888363567881986216313429059293977984834409944682394596939160227894880031419604634615615480587591688806795335655088783316410467203102524968176630578323809715027995925067065928492787580080151966756382763700567775288912750549425808199078291298444265263132005551471712906289576998176185987636458578012800887916354105481709257758313671823228490837171239465565203819325279229613091499506859481595726416331884632229669595160563055376697591013010865103584802038239653091009767441316923312428609728967197803349714321719151811622054720061964127982887796536026209731446623232759145783608046588146396362025901231397879842654483303411236915420614683034578436554626519093584304812263098266457575275503748452287309333459455605185579876225632618605155269166904274172463189025205624845499196827128516184570301308452506266183648112507719691968480286254137142885060591233710641586595943557113566101960202272948739319342328390703376704805082096517837109940830086572817371295395272617880683806841106692052618232805345083471459094425882603482006297498361827398223290981416211860086460928430518261372222213976487434415763513239813540246066857927703954488099680093441148243588442268578253036251616578058318586938970615120393467816509566554444070752655222848668043060721181056790176851734080591520066240881003141485983420199039175427326978638080255191183594362735005617653136878056590348993593831584674127487714741113173941218735303460041460208022652368870253167605097997235679838008731641498034810714568892522392287448732509497424453663020524256012917870556977675888540066396737273136972251490582895210983721022647547763505626179226033062238037710114209678238359156388691657726544181826856340861476515883208983448272794414257834293947472037116260386964053267344416752269066045296320215836067560842755836152287810525140687255040785776212632423442256615413259773940786229433036967591749492738449259187883303679913045589182613460381074775000547680195114452910921266165347309078835400839923367590410773020865564275855290380171664858483424440521618197152159757434282771470112181501607663511944928838969184198983083502655256629771457663877592587095653599438320477583325076966804765120573392923802655084374318848357886258012240276959530107935277852187877721167027964176940247656058668282000826655398781124210239298292144451926256614167864754169218617117466695225214395401729252266402938877484407221213117603386266926348474526019816781433745869423166417470446598062397526842516940122712344111369641229621600784601694786616712561772893912999969597531568755734364972978500211335469477111557437132705175529446646024302195918067440931667024459269317702232899845408303199654529633606450469586180512968725135276760515783987572187803127373482449689578889127929160415282053209849515045456354765453959631487563390942688800643648153574919326894404907050409651721981568763395457361866793465133312273544784615542724555566505644155551453419453916756885611188618471145017963727515651828036792835787671306153556718077180190921944141025360996775892192966363457553599371202655124286746069214688293159176236120929186840226589010167540234630088112579537608282401727043059329651259823319231791940215444636301789056818399654536273466847750900399972641190776071503572041461185320229146676942541593186294787668865574754307285893427698556769994460971825312984994298789965618338130943983539470945561248627461428391088957498927852602608112252271275408468229333369522489570550459864535909565599707634871547360714054199171675413241826944566306785977992044823398716950972759272012635996779842355538047818695935583589858770958054612211795979168503782276627183027892222213087863282694205440703075628825037329273298855463439486995803382642039060411797863288302823683918407889282288505244404856597514770082277564169769182777786137079686182139696538467371020052327952425788234294347281846709619203394866948468029704560947914052325594064297821821054681935278782181243435242374895272180230409029721516298061878597521220875664395161275674300211333558224155019770536819692240691463500509963743558972927277215909591267574640929605775682354631662693124953170745224999555091021691215458729409037807395519364077857088327715261545160200990525483207890890608454679109660536420805533578308517652028893832200049812781268933564620981066798010833638849155200590152057134392538155983709583138821116047128064625364180821880832957221480649925833292225264749616541605786958212240603341802476989330048347928449908379705739566295461983195169621583849652129228734564541054047100842642761278502997016739674130209333080622384637621226203495955059041815620612314306004006147258717035308279248985142456512843334622285895406653571012725229116771398074152116964158062883646227340751506666763731757214454644005127416206331904519328471952475140024220424966912719576257755310405584858303260628890859829449857313008704972057575517238518905458176179286258696024797142851965349651806291247400802694855050535581226014658105104207083648629451832806689526805770112452554967706191253955778809274532155722951049451740272404671403213500155738051686639410278126025664941436372994243634373600775491762060760288221148852641971016957966783026908930253189054787920489214052060522336857046361655377686081688695600463789784611528172028293064921848845742307439053728859018893708037331159437341748675290248755806639154926847478735998139733459462161320658500287763059562689188718123590001129578349543582912222381429685433809692810469663677130658816044445128109472809226869929398373478747157538447498231373470251732544232693472087599420082058588241817628741699000228910523115002776332389528227601308506265696718909708125035190405443580377127398068421141461122313803243643163010679420770249447210808651975762854294043795168267609070001434634349309551035277809851533304949723263965306015636915463149672459131565748039866957890650879060835313105057536812668406976703075715209411130390611920700330726497803952896179742150908351530235685017013669438698555568460342526417990706395760999230103568858800834813857939238156798435710691301309252558188014922065648678523393677022299398797588493166949784269114899877378680271608480485288742071780782321145837752283404319188505350798871027577181477612620644145870779709742998754592141852714888162582054313846936150655096316494318460032900110136426470366681904713539752432600879191068493118750628890426309672692394162724289707229329215071732834987290806134675472414052449710701939983028499918268188350391981289045511967895776174209917405045943606283176407445794375484303405890581787438818380151659881929563305585737846877181337618065629416286303832869059869820309944493721658661415286024772923961798458320695822947410648593125030703830068465454260660537823314631134559932444081882980838986150270135374672603385850591569316181260815861538282829085211037756719494636851524066648621792036426804061677527734799631062202576877010662330431405734344947937170020601228779434890571062642220565064593142051186156906030886006256260911613453011376021652029419313003400882035510179566504971494668420184396871235849803682192048114675879120505115857337186641877450934341636551833050530791672365164420139276875384502587868625902302924399256447133899089699276467530944568125514116659261700901881225770000144840396588783702961359253021607924764451879192286450572823654282709009337871086978547020544534988625040825961047301672655466159327094155445162818162729097272080331032837406138396929956474448094193737944904585396207641891229153145158449981521432742862997087288656696806244979560365584762055109103495039481797446255538135504688214365929597717979723325976040890886085366741775518447691148401280391453674142996476394452052122993407876658544932342623257300183648283660876605788157027608298167945170941419931718167266134358462545427259978725612945655555433124904421805963634875635073398592918889393586024822352857303998437539302458019674276437093065863908288262503532060354099480710258292749357821753508910872997000825722015054360222661480705270534770943225075068368604577905971566149138376093078398541248775982184138778246634145819668295310349979605406433901397681660528452773547650641182985337646498810140914331358516753762561536496142760827692570746260299325537911633735122410707589821529948793382974082199723515401524831853971303489578962747575314901605977527254215813725418718659197206471348910772227401589989114666597301499926490265415331891965212974762231767980952335468420768520554466726303701489527464095490078287808599295648304973659968510389739865047016711845906099821110608942766586827305905804417700497479197633303012449334390690788331021050227902843739697681126361389172181228599589718131594594750360050960320034557387245141507792630063836695864755927802628591923379295951393832482741214930401741297257933726742641753424592975000149179295235851236631290204122179772275631211676688107230076454933056701804712103379060462058502628818905094751013682690309269997263666951206253055324178213254103497463725665491520484103747792947048727820122167823237572034699807395070032217918452763470383797721515304774625415864694881347236339471419463196125007866302135682418499481311997018305307293062230887573327682545910155377987035473640305042215763411725424154702343124696597666067225675971308825046081588393407747095864518078364548628918157489709658455678442493053374500145583061567598552353036701704175119563279102426750541374328366170057644389796620910308259129052777136593194252447429980096727020484950486700390435061168602212963260022332279239040513915459225349364739351656210321876027538534019093973577187711024959504515854345646674176826700319368993980740857235341301022725091112344773732997564445072646937148513934261045556317136329283342037541304865658840360593436514859900166980321403422469344531237160181401378206757816813685207450654438417488748280659191601286331854949715710746341562748761536723330398350362755162014709506799393242586324114414577216655641830959229329809839871912509105245087050023087721777197285952222392906149109216483267493845985585639118099188456080506581215446214812945041728437758488324455733232717453603084064624616926273888951652218089905993326628731441489912919323316571259803510991321238881535956143907421497349310973917256641002779130629533418331011571390353581536028948215775862640579716990468277469659315291754717629158944744355105855007939297057834039724314515345432051515230370635087875576312776572245074232827472150215697052305772616836735880297076417354781212772688624150720522130216958657697770110369468343706243612833061402971401930194546104081293346434640199403899901710427935169097292137956314968758445104745275001068114910078931475235608231818604381378477837797874407657830338539228320696440875005659774145437741000140619516572005669556120825256727194399448438655587733620170710302584878034817195336658509643819841876345298668738055463778032636267324166265321992866907236562489590877419364222889762705316209625461151750024651758839959104299801652819581113598354372318660240679518113932323287748189531382583602646006156281197391134304264410625367004866397642849757463214986137006569199110050622442552144721718406649355651721798693035742597195718872762031701415632406875354466830991699255279191581330668395698448650268860384958786230767643334865505759789630254417543323767795063599468520203527331150693427379303251640341021834861272833462250567744991339743807250775792773475167851853880886103097041785919294724412161536725435156635690974121990032154891539900953378016269483091620434303855062870450066393944688443516171991554235219914202463995624187157693501599599296036354376966084069345124521703131097732201811405296870323269687470876547534810252934822034250811296976673722530969968685043687239731950687242211226725344385851114529254447090130825635882740176828659277278618989773040050666388323868025997468091662130160577158796329400793225185943481063854647016904873618342877427916343714593506024854201512063885473074421645616571971413869477876959016838269106953993715221124019271265860816061962993210391234618187316952428280498220289365938566602399575734484746667244998789947168850804657871479241821294462035035820709973204610563155251509121430909805706329884884300305820389642195617974187378422978918094261027270025193672585582120966180308060824021825236965078735104469637068191974808698919565097368713391159180238778422208031321680552559175226250115778383040382535106722576584335599894042070599546258666146884243945485624498921293437002885853601172117083907436884039807360289350599013712188190562346585800708823748711005404738046317106232338427263766465040715961377066444669093260811101342199928758159467866973972451933145939791546826747027627550830351563750512348233165500816303806928042757710193470109927725404919749916019112406067913880431353134354889139990707514621835854004076183909407394774533411283260936822581364022952978133040592282075443723498897634207910030283315949034279684833166513966159622882789855138972503661781656740725820974422707809905318908212008718750678638080600043645401169023500928400171807124294698413976384640356279137792499637760928363379848094019641139627537291484161183406287174786388703940851071977675393235769669478713668343853706150870417971725301701339228896186504998482184186176026729990736725289643991178415553487351152682098778359123722196344148790793585431663072460084008416546038200162426677872827856737154961711236727473691715949390514614009874054158222028393844813617716924417141521572280861728492022436359536518159495201402166762496091437739195835167100116106404391516206338432844094006946845200128976238072658857245923030414668382197770502861871891935258572362641492942703981162739154797588887934460859220671236018880680372419077754605436779651648846124116419284799170911338240280489829230113798150848638142621116007287305902040426133484197182129144950235941596656159478670104945636140659568494660512561646638905233008175817945315858636306767190422057631210350459996248895601849660276038251001105729918815086309865819304842213932435770504334912971622934370871491240628679600349095157598104065646414839233072403408302949085562621092282489693349260064149171810613011514989490379970040837806891924918952496912840996863969934491089533667378734220445391854085854139741536170668940783665810030882804704262195215689087851088658940009931703351581063813160106461654876904428071220873484378239776897285980707937323853018163788107508221639026637780683082037924573909218433734434589983057191013895745288893418885807132193039215058424507804598705322626843028722994621829256021521086813455319355869344972789469978786987393983327182637871273546226188943223778993529682518859949845350965263798270646062656024736586140468551553172552123420481306472111696961764375029447245067400609664876931955960144509514848181955650965305656434184307161953909620785536095667650632860522171319788547967304689669500049856824155772922068439584352603280491607172600174624214465810715248835964091450179815336762350699559073542613202519692108666555758076673179562126530941131636018297292769111732078161731936408623259687710474228240384413323122034785528989014651382901181973595745800119171700974199897682986492603446914507642001417989162009798896192806126397300213499521428088534901193660951098176701605747947027128890504370608593349932844286782168858919287248147657825904877967744829285375694034730291042286129101058170018956880148177193189922160324564386027152647761561769501348151228914650285285327752172338343683077840761739829390165016207418514964096083300800405747263170168266315839998613824196230347627631198177171790605733430062697381917289789435937297533207113894880885262912624725974494504230503378330417866101933377814568283030793092992169067337469661278697790109184896261559795454163129738180255807034282857246344628528061817601546017900005077859929888004395295339442508519404092954791347751068634861435725805739387627231643219773134369758342818881409461834198672887065676095270266806936305273418848106260876949731460095756074458769025034252002132519031182830266161488325081739327664471055461865662846122674002418758180289885578905335353371752584986080960692620117751309682007699392748488635503099132276887975128004745709158936431356667711044116734081170568567935740257599656295425995326916379094384036276650471694098618460571471015598037252975618406616227408651904770799873441886791910315684270693282273454214310175274119183781697384431389050105848766889743687855183458321429804864009478208639562686729291674865804554055576180913548447139525961093247167349131962939503465654145254085514597246226368232274194069813069247855779537199012152160045422601780598875378828323370336312231987245999957786540777529084417339265753348299225009404284898498972531813630361560642934015735082705618168230585169278008241575708071129189456531233965809463433018692834030701024944630135835218586612191797036791754402638291580249631835955545067596743400035663422531882585760907343892857015321908936406339687352855700371151685886848223748278413281465501434839115532585796293899701522968118142467418710160411454708741349876887700511611055356029925988532717115665921490926054906272531496587178327670685369278578902845340614057697474022317144498093249275291536650225387824709117653461803888187296340949010440480408938591970266735377922681639184405032949464288492811445477450289918600759960452815046076170939476224299060522155062341570631721481211761009317845420414541336014017837907817549348928527426959640686098402842564401694125190046736938438863868707914747506953181927603225721429321420628508924253452874276269163124486345500298208967825409458379150702796268288116439209494259114246459481116944440667726071658182851919929597538284863945021728748788166982429931132672740353775889169063689759159424685835914281540988704841054119450746385643597047011347101478777068337762097842079881440991658232893757135860893648135047765348889625618717659810913533933199323744700753803763222385826382046673956754728758771434759644352988371270227819634599509084015252586744375365490945711183378506705299379078928137854240949837231206427717790803761816445785794324103421898257452465516137805827697482382829662737569590926929867644220859048118912101154226899531570059341599781328467041940153000101592343779835983429471467055669916645807145958464438362882256002160059676387128475254701295470631696867177283650541286075508348605787275276610541675082430879255793919247658138524037276138362856653525105621576369617918565849388445069190189489888029261186667701905127964433054747292042279947402161622156901489570528613429462228476712393390397444975307184148876871116815425394157811521005714251437004602232972846932668357731312549327856828473327911406860147129645109931625600578091013453417603713171777965961311107328226123671137739644275107048721129088683829289641979171360691184326010427877891724695815515585162350503649856603220375581130922309988489872632828207912653218804828987446475663322486905260836331267149917233116989657602299153326557612724108269766815138624082488395402177932638740455109483194871579161979433107525444806733269869164876099017907137408575724264116963568269598978201322056936310283966047670970600401582420380863624203279961710219010713055805289264476232010167203975807135255160051492423429514055817282229581219645368014498096775574817212939079556901243932961394443250139269392590463760730066432490800484176487263382259955195971109829267554054832402565210543473265685942977951196935215899841564161056305961405772149831355706899713127592654091033955646298806992136024311434499873875429009161998454793286760393627062015024448536311428728397436319447537946531229373673292190928327812476802106547301384406065323906630621620489473583771634851795875985024278834447808401176439408416010478553397020453120008735374903020692326790919830593861306886775778306844275169648442697726433429669758128080421981179523294985500261872784808502396757711360712895055319124030396569589743515350726984287904673604148194876284242532001946869587714782416031067071279410271452281288807734078047612741944503472436725381195219751765356269992038823307153524110718562744703607910839653362103626116014598594464494705907332945269890390102250928009833371043432840812249499879768476382279301054953706722318928639764721385857379257955201017948577113532932692967589195231198522766378551452824798214594817280202072087167041415299328926640364682882278119435292822005896680536339114749862922492757239621055440956117172292255516178133018621071887302844606347698407959884552484308142211711627949932210994011043658848374298500555946893553674772914418350171330076398366592807486198374387230587505790473539581754628980241902481681481285103625515903254274707618680120441936369221293954275027979789004807593044079709263006671441350668967992330975229259182517582480592219939672479698922193881711727522862392117991209654577666383921106521333105205923723987049588392589480248221827510782028869311668952786934331067603222160684982059664734996032944845982455076896553766295861891006119392165378884718855319853248374311355808658334869246975343335052211121382915620219755269759599811397483602773933598357038691732124930840698653831186152097459354550314124938567832399608435138575814902761292434365153774011613875169890174228543890150324522253933627245800750195594521056594817382637932650768734662987803691053960230223593377520906417616113655953131138039115705657665964349949927708082622119209973368406825489365251334181534372273061958085807653305765874585553521499717462713325682608622373528832549325796423599156607034806884000414729666365360408396669049990344529340757620725598064154938805197136045594871805263816156879810857206022775695946752137744274325255737628694928146759133011727490717497462943636577953948106329133130146197912999726444544966022057198140558466981717586022278048736093958625691383686885026113591417405390499428456079801115022485332575401789111813925905187753056280239725146772219489084838788525616392274164570513531448855984920657404880512975292364936975165835921622155117244384281242254840586148840383764566914296843851160122785096132780970083673965889343749253528325049741545016279636388637261548286130464446025516499759009164530396469550258554073294430422282078776031247131028783152123990005349671954835240447734595434259714271181740196929409315878897429995478178259432784905199289055153381400877386227704472213854360095654519935697424980470299421219910110461543952942822913408035175319638588327197755548197598148259317942642871981846318959462026046536710575214501487814386932117251704160569260860482711731446568023170789076494358255614659687935215533194677857826468111688872872762482678966103849720628919190355588691256483139033828255231701874737846046738980104219166385494649504150518811352761586635213330507912057864665440221102891504122718943340655782338024499969903633198920624750920455929292194517708509372412248424780707301988176578092880689995171589113988553413661979295438086712583680553450947180079626725489785295902845791062075095743735285950691712818386112025621355951043414840225229056077064179456286244695645069170220880430039792560954161458677249646432205802736557445756797497086990822376217423582624250545813863383749793810161887008249119576052946809680162474302877373138479535879889212336744659477049197289831417690623977337037938326998633452785693653831541957283911545253462469585074939523934891112623955034105551148654984782304758829479497141099589982482695396046580678943277619297913927843965774931930201139830793031681885526420914748885735067223651020940134973139524502182574287308177729959367910092791837365686850198818842591530547962828793142986849634127106097349555251663747266668814223667533757408628686310730341158190473868561315770412589020080107401451322933124225252833468139556606826768093074166000063725492991415449961758130537951013952738723948289666981829060471506836515620236990294050527033309502213241827888880161586484242488945112430175721585548147954578449976563550884615102527183396894321634380239620555160713759912460801976636476257567150585954940470364637324950564267916644517542459050161341877789494580133803314503955709443017758037759666600255483139576259563875542233925482631123278639035441325398263737747127346104426177442578721651146691748784614543736016115554968670554176458017641966752812568355394739639451568973469007014395855955408256628950045947521494191619223837187918413005491183016422999663006986394348475203727745971617234977417017303956649437703495496006657449234149184185266536156256043671762739401182654677696912125607960162786850332434968100379390449610944245539986878931951308174419624925195926865707311662875764942370251552257379523645775733810574721707999608611623280448689937442362337541184549942572274789405530435460917237655071517044250031224041602970036723579290722793646851699971618842856694472700706944173287345429211983229690127930584751990458448753818666626138190568340014356800983994965062582964195033486398340621628150987773387134545351106264111839317585260044951753569834680659202281626885910021727958649970117878950890773716471244982018523729626882033153020901736948820149608655417335220470398291090390465449968740961478608979816637470185683532278291413440056979612301582758477823894533138268521919378118991699222932566679178404495081200653723811884976970918729654830852150323719715104236925357537840703799553507701020203859848200834774975701516206470890063483277723553381447546009111681350132086424038056338307346026775196844698510923186187417624826582265111388640032176177401161949091896695320163333469552932201684813167883071244939790541121050187359011277019482562919281915171192891750889615872937150105076851945264353866396096508186739298920617584827068957710834808634046778361510858688644023674124193968707961658157887038455349795034992440374175209521890189103516366252534006236344163967866082699272698554938827394050167443002935017334772849134852996806691886009360625322629347189553758867865571683332136323112274211008479383693360469050727968630814040693431552298392716051429533034109997717438596933211532768724311439046611753551886267644038445290838192812818652180231905479997623754004673848647316129341355598649262637867015264224235396419925364529302476785852414284713272898301568845984541854815850846712073209012863903094406948844922560631268904787474405137540163931460050224928950095759149903340139770460389155061929218504866953657697717672329510681905121592868097864092691061217700309160900938413209075410659709309578460042714979752319059593628979326895137496061385948408858136883846610683445384215128608682047286911853443915309306261187858791656157461484173833195528991559221014938817315323948117879148023261562615756310375441244283387843572037761966249062391523527893366530494073474867816025755051850173377384990603348665671286387078720270679923476456366782159175725934619163293460641800386730678023154568649264356057357043628055894450789843811732510095431925360005241923297395297198225328443320826508326276256341006348369830287715204825142765272875111152161062105818732291181079688239947791455569062252553589473494071549110940804954999207284021579930306075015521975983571240367058039500573827020141439980117041048554263429532262182519325395419895482510893248431461047147141310030866962276109140167474867922104814303021546135963307065637955540547270446160831911808093780640303455688197900099457068405882696380347708250681329489372127536332964144446345497190209133926192295196174463311392531773117489045705154065668549673855719493256679536408383160639716403963331590435665614656690089793883973484643330128339785636335725117033829760269421302573648162218266199646857393859378448708767974983759575719474198254992574300888993387874176998798605205739227770156175899748095214848769102770123741870256674866176198971072218012625191991149921535035813443574113519203834780112858071813545411003953334985868165012588107263660080538372787788880047272752115399279165776251498716972531118008536423956082885466536256149054774234484986757539539378872566517837985670456400597982544689587076989560916237919891518948687950155694407730442090245671357033103158191347109457230837083434132486869902690134038770871544890695178081856902188556552119697233834670063188263696671358256190585912081669629487537104681133159680260587436498864949639445430254719896395285053947938752419556150033247574703921669650999438425797057693581840011758912647295419934315504344152620467066438828558680927871106045079202778079270415937937458565401054466698370196775232505704695031664184828916305563024425339487890244720523385194874982860062081890286014911468542283115765314699235263434005496507437062794111641131747453132311640731098845829880106770841184357248128032900920469801907315922463039903958415932843891604623861088704728733504891860409957757625690173181854540118096047949554070042426957150929177074669048071010688701907431917281846418009599542339187440154479309893936507829184749115833166371136176973456606697513316024963029987805120158699188408654783532830741811811556473090758694937749186193334234502237354000592380062261992594242344808534841538759392362252857486442203380767010199571133038078893287507937229584187012841715263561065697908388211611837696414278126564864648913450117380213383470808009949465431952300963307881694555892856261740370516463886227911132441320313481337322394369071635734990480262989276635339773225923481531465915206431487882174739399715580036158878947805160979574004972591670597560633032331463809064575803323865248962786827945083502559389555703048751134944334301737978945278117043890193894240287781574537309695259728939522488237930028518152358007914892682723027772753872142454114463706687799989103171893772979177757920976142018888886978250479798219043820740221559568527363665380750090945571168217526772609230816960178161708200206879248623175782493692527748755916841722138490988781318221060954778779164690969692983895405387992462872250956061412302733634663079800976756914244727598789826963704742963374003092277025183664676616436076151043208241551978704848553390864070571798349964305135407794467820833029368264444843531425736292859479327538041171007365108084100765554984117746859835315335193351406031293242497177330559344200690629286604173419326272872087666946886865000799683655818883011818601326289147223526987913814512670178972954851268078866047436941101058990932100822429455115813523699968480250267751387342174820074136594372632073868214235752000931551461918535650596636372907041148578599980588945764278881382953911147270167386091044707158644464650923166267743903794836468542071733314460095379878009484353771490165642266566107010401199354750673382292797964452422099230023989467083082555367737357435772944554177403014982147250318035367451282095206817347415209560227976271223548154838280341316888622837309358491982900210745776143712737801329461501028574541332667679949358853180083199655997000430777684716023106558677958655256394053983901069950066222499834801641586391001228122067384452940644401705227853624471945658557191624395475082597706471817359860161981033823733879030347438023937987791381795697018170190263737123639683944018342595966406515101576161159234495083764122604606876034868757077209937294333193239256632709590993050109234923991169711932788819874250826132915440639691681595766585710878232993011040421006045899286217159398160731938784809704052541379686205999548698675247801027158662307637938262961954636455865022167138653358875504782814219903439242686340787966664828255291117273949490125399431453831431196358103095062231777177638502209158107854074801706599082963124641626954289360612585583583143436598409883477807522296777698819231505754860826348012831037413132313843091337716943240680522009120512901143050181675712000629173657122918297585115321011995934494128936650648216315220521201058208971045781391971673678611245861482572859031478009266416665550836257438724029118658076387533404463350910038377425862826510978709373251035039066118664179352454465619771326237515515621199254684816389300783639548696351253798449087353550173414959119493404213483808653653073816108651162776800698570296391380733868473176468464185618238989002521489738743157657428825333164568260092333766568827438771953193062112379405958973498210004102014754961189544824034594820059667532700437436703973962578124507138671716546986697531649324218768399896591306354255007329286251764841948303752138299072506202963870428300765456852886671263833439026626153819610959823244088994352867656623059407929686001392288188169437635886167762447247252987843733130641864730264795902246225506151906161787737967792013103648119469546695798106707926806441702794120919876996305494608831536594600762017023905306135918201342966517469843407055833252392838086752735333513073205662895241051194024238209509987815804384964407818322659993410431136464510939395320066795927495869192920107670536745112148066557907501813730828854549305202902397319643449274780273948093627135051654819027141633123804321730927065763482163320758434526259118507926945437395017003133492431213289781862263847165393125986077438533286891780770981523891173826667834620435810558508552628582852895193132361354495701888454751957311335884653309426289160750683858200542922674514321198774193339159416248270935604954173241236464697538380490375250433108767665381010840667623460589795678245656272594239084288153426523758069758148509595299895127163824123443635633472739524868400344491688432781301208254302220900111631803424810404771147389385399680848050499949358562293769049124667960659088742240111119875414005569666957905042892463776818254284730078714338136467263051303267615051804439792992233137889630405256393016239830730094637933298037785266066969222451246930407659849614257006019118709915253428350759583200469671813721409655221588553740520601031754189059128545773462876013258819476772659397945913824108441764329985689817960579521081922000938182710462683034602621009818300419366049759076881917376658467570771331066268040818151395265917484964269057600930495214093285839206507455306972660117863251604255404904982129503500272816406223077593588020840967047573348784142244500745654588772351945267038762115567768786632266144091537117436999698921563929449958637311031468229630565145554204660681383082297628621327279929312657867178969086576359306056165194120023739123811889483500969349653270154940968551277684598126205519219416844946325471783988894183950669266654100302062229959807395958336549764781158037099474245034327376154056597017454361781642195401037906436188603576863842881262612799656372785615853363702567722480181100317595862449954910926290487818949024117369889148715221943209916100124200121245004294842231965755961226340530195125684691208201198788972226530199278802575045759101177541201042880405258452041937244254035824208854745648442367924461300541400714448733605363062445640832483825599611900471201376383401726051115784343141468429237413606538462803203271255445532065337905984680595093657730069211095639172405485349695360906999749027429268778586654775400760085527664664147791747461763794486356986870955004368386200703279464665209800119019690079642339403995782141280649123021377583810788195744174469488916143377630611258139533281614152394259661274268845205512481462065998040501263693170634986808403813355782147744901991504756906069562254730066638283904690752562692741816050554175783104696381700749651512182732613662660576418549492437364938834862844902519867344240974130989500157447199098313067955383411835184855046106903850295146470439094788368952289215210581683739790515083403230092118297514150427294987130157653211247146650395669998891697145603928717012458867415268261766267490085896360390596945435657023780707218543887594795740765822754169224274398569032209378249831217687649070511147619966361001608724326927410612769065728034054204954209943709508090280691277924634060285066747474551006509823773407836398374795485824199131144453019858514117616767125377031276623882771859335967693772702259396767690825176636112485529290327216717302572017409148277770054173606148425873030775729817516891504001221060482608947170536017750681790501532883075534735941118862189699823157581176902962724326484399789229657869319202952963640451864066500678297355816365676082504121940754637396133516895513888706829742824060041037036343082064774199363355297910043781736017460387009320483382948129140936901972428642345851706618305046568384665495068983600759925374526524797148815206571080990686684548518833529249555791756614783677838830918230318475390869724158369280858144602711750059065474449133210108371289063880074270724974430474970882686220037668777159954988368753000018471818408476485794527634308928739382865062118809882588568179321919866618042422461632186391661556575603393431155036632854500926408366879714497214986253308043057773150060951171920940885480620382819110356772225933695172021611414367948923582338875675369109216881401614165188372831481589988381959478566001416579080073316706665630456972275003244537905172919202817491579250911451819160991832532031573414525730592425510976469002124582279949074857414074764392093254924566966599196575959019395708176007409413275452319325535131145950518703732835821720591600618664682361967711640096403565092950414047058145082530892978341366670874365968259099636423731304057828369792027847975613532584740613543173900281629117911487238563496692203742203724931734897976805702788702715260964823762797122660126046337172754238714339246839735082126262636621255094005776357587673474280809549366909124751826352458708905155634478765154561184845222980510575094192104000032918909090640607591775357327683892311171251733591944677559228526027238166626775883757062111189956017805297776263564443325059782992776216756885360364956837488582440453290126783603045532669890904836739721598639837741225428920549737197937157838766527737290719217031193684246522681078598860511815938156501479867628669378359081634736485562107815765297968985216169013653484868483043546369495540696380544140847649636095914576498321431415063799331934697545133776062526829679383039795626643751303567754966225158311927377997072700035622934812230864053984046523232430054739603447626025198275774291525381843069286011114179436537374227932441932590665704385777547733022912263441940169034485716357813329989280615043511217653449426620934297078036617527151527581851413651627076127311074071961518803562239969120962283336520668392954381969563625254607162003818073846269195025678390155880714945520987304124905531196992086532210450127912854465812293649782729680248535238846950394819523123143404972606079306621893480020038993827444310778869164440417772358030020150885750107540253526296914323030990457411127563629805314544769865557155246654390268870935176668995045711947939919919215553114972059183259327954783272282607206730480509169485358409941030338674523553952316897898345336448169089601559889685980702439243563717958695331266598607329522434716952975412525976783554168345072965407560214775346913712791394607454767114393037462660973159298251898139600739170024640165297546590132682072256420561082086722309511441818316475727266860746964107109044668443563890034311347718782472419205466738790972187531032751264219981314308877835326505325865780726556021257464854441617724283345921136021244819151696792299946104260405930577523942999150605901820625656320754498130509546934286731407257235131932933156247887581220478794981105359923546603525001576481229011215959313702996625430888506399396197132481905653129446741904479502863721822355034787870768243300767609661284838762373032753882019957081090396339968556488346580319269748845553468689925317133006778713870339764360764817911535319449343153492841554025519637065817209774134399759639795322842001884086795870933712313315899394065535589767140654148510001777071054481387343898349139100935829812928438296074257744608587186372988180116030055580703686372216218007071437881784288048608744085237547950314441737225049719235898813156942894276733008951624921046275632136828512053477003793269106464130818918811068939596970514002042346046235096836645639652800909615756307470333088188415874163156080041302738195726035708678341976101033510669539663266111558475766633751604130696054707328162851099813395954474690080810288042874125545623873962999555853953443393426361020306039836324619282156437639755741420091877850067245817799269072613509051132299639331639873676636522613730533883586621791686255688103009975835967406504290136786960695450570752491977033978616020776744699278370391051855992891518174967714272415241722882068076287869858733921359391917895747379073688068155110529243217876076941987789956766353822797821749664724791632858667067737949718015278751585042048868580963951063902137144276649631649220348415135383238449177146337797212456631844447772842107914804942549509161520965413352694939730276709840228980125579477941445315652510786954529302169258628014367963907166663259982689742348360055092896742360235751095978875447866548078090887793816917803078289985993675673037498262238392455865363417599219679207457026847946990426153800522702686852474074897793177392075552328246347906696875674810223237148491749081466027115463439567951864017899558305403293328285979188338684431004703220701517137687478751531494076017263533037736905333919692218833646014223661483523158676067838773943192259182403232919986444191240149229237272777213592936659755087640133553433554036764320122279277099583682913966183555405564493884518193186678561830087935966631558629755346601691604711333585934252785057407851651890269507146700486409160514088801732663667157391224797067951277928017956383545250184330047363515080410365566590635833719678230861554486555943177525186727628259857387320743801644451000849891315342890976618984371105279297464113163902772166622069315245010216657003750347053534359512308014659619213104714038079942080623666031493246086724240022459878429460565572181798158844647584238910947844287570751197266976384447856795589671105146461727670051833495326079590084168107386329624346699053050461605952313654724593319101102775786445559768370624313882793786964596457095026928661942137617239365324300106226400267272211650142087706294502929755095627985737329810740037728122242797554410459996985991321585222866343588062368877201015384852491021903528195473561066322716885173177455325010442694911871984596743158351025249001785713521979770069349518886432258754856514898293681867767548562366725758572573834528861516577300996890879678848452411479319076276841845994996787466937404001085605273856401261523462376847840814266304057151152641958734848145553004857352224756235402170450816125179945949414277666386064706945545324491257595084056452006113588473200389577078394285489758905592452834326280693894311873520469323649639553608016607465516805006510563145842017348794921402810977318283748279644649266943609654611021922083371417516070504107956555322072284922061835807936292663803919157399837622764234783376202784916837945300385106282427328555178033429307857720255531389574856624583518269177247662509450914434174479032090963552915078223135624594475780742044147974331940210471661695662717321938555850420126097352809636751960235124560091731979306595041625053155011553424435808267570012595375408531426978670785601805716289582215063274487827401274043901030644542073907764636260716023004784252341696416428540453137080554278595772359052585794042161886556873482114258586427249936017384536964245881229224544659025915051157505134968510524804337893896618691582858945075541506398466247467610000213254943627587529373932416006488794588746477112225106633229496220130204263352537240140152807540573192036957235254585220916115788210838284512577043172814467380024763724541624607085472097584867389218174400717647593134040134492598934079218886041105740578582360249117218659561466543425813024782332906290695119709192877182524744010697041952545187551445609892330563546507576160639176257124117296731347885987603382848762380443935742130478210951086149379341954942753523515951108165381344728356448234335262073229348832766894662067465637266685232798189509393052737380904282378306681413125657297047542144704243326305177293749530985973165921910838662811232838385843472282121472901044434867092647632181057319027466392362737293495585329147557526260512066211738204638396056898883033458492347077552891844283825577215856045971618188085309723326055637107645386916607825739627985508328741235841623237030037118565353334175493129978094832984601387484530175639812926370357442904629776557066998371824651256138563538373752499898256685866782252454747729213268133022829510028755594470705578984950728917587262285838107106544817270806851541730205421324867838804636857417708822969084433582614541984384698658939438157037890754546955021757539483397156979242374536051710947196887443304279454306100551799280640522235285640494399987673908338866050134979740680250917419359388314885385226094657287245452709112905811349811272403473000461462785829679547970271115029529091179319418088404671706921238443627164131193392329892293234154520210616436801741877817383146042102943657601547627177035519211232502029788923949617420382070983838553949059556398299451180664580801336766041064980414724674129154876304439297871437073963147430846077896936394882346571237247209228316489492566221614937055727500719365429800165893848626185381993011370156487016319501816064266139800590495441277475450544713738573556100843969173738231998495454105244571390385368594419121215160524056116335000825901332015284912307891107024827781200287750300616486796004775897885139812355060539847587800395843606587268582341503993492747066748881021103260249720336807494765641715783883755297221184581939407682862096012331974311167078600690771950334691196068018722668480638675757892411463758294199741894399357587576948347442345925448902286160480585036843643478955286259960088624628146149833056071739761603869132044477877430440439898439570999089284567948549365050109647088572883649281858633278402235783046278267664127233968503919899864172642378364447733335949939375382520364409126234660662123684563294138407596717062889573540270681653546076471592767170207295337145191183804675687772026590519129980482566197346944491511141548921692321249212574101572882945754499657081682028247623696599528824173216570555589606184930397158061614888244990292475102433489817761945495036119501921393305436674582613270851867691719756496314563250862933566642449504548583573596096596900134308911471621818286562413855639730949202547583865068516468788522243254721449085139526561291122377765624792834250160307940073776169184776314125481611733782267993869896389986253456969218632190914369908537143398131386969096834062931810465479315535987749430516206076059903091912371365696922706067335030429511837408343981756452520286886250263993842608405000256541861169304659302598457512321751578814286673513261587361290119158602276478645513859564059937177477960465485235759719537420706084604143221213292016106985288790280858448320294309430543668589666417671098788614851133112059554270950555044191738665908822314382554247544550651464117920631195359686183289565942217482228418260626247067618485118658256497765823454545234968098206449931472429737083618834775110352960820830797738365678486690654122282624612944772577117155621164904951750671187457241098652505870530615100348110852539676230492492891336149119023842782773877135135839511495903425782222783499619465499612402565397141872271205381418053129315024465003006366958785334545469828040514837435863174959225887919558487168527062784596445810677816583754754428114933440971648960932464783973058253216254088435410998546398328829755010694314483040913373908054150968928457934808175108259957584257933984720793300217562599549972663189892871306634625953034265521201380633795457157792271254573479629445476088468809129185034704189659628556165581902502901433099080984438382973960187577454077098495580233007031758692250353156109914936365779256308498417386630250549411236218152850057872552689204671949462831021569351260337643915595915343505015486209351855572117874984497224058630619802045244881052531920088021624717792547587124673056711704122110623318150807151050216674454587858542267328173686618698854234134156648086484531717614728435497910307287908266835829811910376294468973756523482032206804164630090058513301297181188753532863380454346709546647574321898157094291182560582606616154171643711424216247467270650529799622236736718422639567849994900100491700353709428729915631658767596368980283840294434461360088450262683548900281902804894720033366464488007171306356444299024935140294169501036960080980502177696359558255125849540636241701451503719894298255709489838177207121935672428021881250884084280475335477392554264993704122536380892973233858434649991535891442492984114616456927851563673621432612900106977053168559701343144585541347199896200345470445300556184917946701205231069463407787706279527247322716639012509172209145674116189685382492913877971957517105981465586073119620768158658529261485212514827489083879357862701447058973450420537852918247533075309153571384994906483582979941509842478775765546790942060077751155994508220882266333870403837748828953875195247306301958467490392128345610998456291542638610058007097045584274587243877171950935164467716593275710009004450055504493829051092854657920897790369771709980502012727072238467871741110297446753965197853681624131465202267565811708771576012953563661891768377973958822095224256845705581797259089386331864847825837392618663744073569133778781595063572298023532256537504741682156159913682409655218731658925802412040491297928691739065548296618821559769065917515014662743260737387388810304172277155145332429822431740017595336191392454976539029158336364164195813546713121866364346967583356873408396441769704698966462285715779696534828335237935065385661238718329365760403088069497402856897969942968498413395599120688036767372568756357653732763395782608377431354494406410498571385336192313941030421261052511907862284491202786445789182857945250323460520297295839276194447630413035232824348745033407934375432919674923221097120380340186604263131514476063707528699336168110624784802698863235875382194470259997768334197899751255826642025150422821764320041311553276940327246833201810323362680719431725303876482901690473989905669327979204697299276979666745080558481334527189923526075848109853517359913915079369745887939435163083295361007446112790128517143882810764566350863304428142449115900135858176267502907908850856980716336056324067602440894200307957852863641988016194615473083093305615699645985026431686509818384610828487615485943549296544138878760149635384466213672604043453065026181689929591028229862245323659580375615225702941842236704774878708885984284366574542838051126643014416003172178036486988559492318650545526902425801005468978762063685939757192562434149015858108143627567529319182317594742603759213802571879323982598231092124298747152419613484822328226577941438546640959402383076258106921062423163872248897633255173504089588951192644230836326092784762992499542598089892605132080919485877829211052344525612106728674454309202897953834542865876766561976679849304549311533560926986208861797936797370431010326974746524277537693985582818157545400078112636586258387425184717194157494930542206672890516919025385983582970112097670179178799188981828097838149141500702127787538853675091610923007111862351068074072298969393745247435785034219056701814632205471874653503741901438875036233679381173429031032824570215173171494349816930769036350943864874543154143936097549809935164898845189696238770270257576999993777483679305112868139684136820647873447219460075147254832087148927152064992809137499089316985856429885939235409654407134980187555160563724314841006441734616521904246927524732415739763738928811689584151777718988774886268220983505231264020386628163630168646450553786087171233148458857083268787085950431075538699325319988178553150016224626538008594201622177954505012703089266338589698019504323433656570493580599307867058992716158307491421709753087167429682206544868467996186044909855983003381192790709304472967159805457804844974961383345495523335298556656756058259216405480715308026769304438637668488220359108087398694121248225083543952228203225017131212776063805689438972025541814237691939215743280874320200793784210158736990566223303756192706235799614261899107394230222758649736172329870704285719011865076321956267422320284655647667516508406430975033261229351656721613973940841536815342477263557448595645215447461818100450157236253907193856405131650981482910099143452474912490678579440652365755263478129529476474724620418533595650709588255503311581264766633790809558341219570147358573016467029938483413159627116470325641392886207379023864951469820354014704110504531701171584421338333344468399018249057504245995855543340813678822695349815013981193975483476780618095014248423459528042350313508865476497339487243168737598188030731293413930184784369623819060416334888008736917088606888998592966883110707060548399042976346374309127284149402713850743246313417598784089531732850240387410163785194342469902390425683012475082952701893394059968709838716443513127133367852061523433120399222598312961535584416527075619837488964686455984005692030450679829274246715822623548397470259218121164991763979754642774603883858927430743778448679209682803144090629141087322610727684637372945540219531658233397121090677260808286532859181748062876557097500814955833629482775370855961500669097150883621952384856439919200922533086464596389840091253605920002503014513430871330113713223033520844324473244949233444832647534052422624856234464073017105175192609118719465415642416903860817690542130316395373183079318670881009165498297034121108837770975903108626062042952040430779331071810921399814254929964378006020436590937906218889274871908924946717797822562629310833423660725065456074277127675295582633926058505111147339342017561967383703386031442033834118467191945760670633634917207122300785716134183516637453407266031281728501062334556294632876721823169910300816209834816470247841034357824774584388127849779400844719827237610457136050584983104985059414874815914989701417978849016676881118193785830749668031337181426253031726396240842394471497496724188707053444237530967521804750956764068956162956276134346541595848710052497222459706266642924219373977622485186922533779399950996123585724828469906447037444920002145422475177666862926066876154649300323573876633103370078273282614690167739874158463499797762256894054384597959647968106270795732917544868762106785538456653460785066750113839716187446317665672241016460088622603344496408478067273217198926248891862091738448496658075608471366344431419472039345118038179933078024814813193186909689592891869879096673468869036514792796928982328141019438227736248385602928604504547888164095390229432649594366692110247169535127502473082318857761523334675272792534945060935135297987864797050932126717949184343430681234738426999827389995980977087412160723508835252701654729920589252805564765435315118419403878459958919748974002706499935749977182888011893084282301605482101644427284287120199055662609386783850388166352015613134242781329891510305273439616831576823198759199699988482692092493785763091769737244245327296321582356364688205861933627248617281092876629481669896083204611098788163801782100510323718358398762353073931136965563219986907138789164311801895999804058229648643500916641173872584446450074320094370175385011573508045080039658175172695349120095678410971389666470515332910109700986527143705801955880387907047025263567069383725656362598271042804768891371525196781066691644336612173744962847101633727066446443107420269890568789057773936216019311980682688374149954087238022472387752216078279198582456112025759358208766456317180463624039983215894495367935113937616898415805831878905056440679144477428607912232437254237485817394528591633522496780801918674716615785662087873810967935391175997929069959800849933005165994557146519386999825416248431816519411248086603936107453164990124325976790537640753342137775230758376714271538653151571216909760834286805163221059435937491042975663379016736019975703274945065048187319558774669793214607874747572233016468119239460587116804413672704781297422222428041011234835563824742128816698264164944287250871598556527433846938874644139716851897060649758609269891177415392256322504141068650380039910863397255963222733956537134973589829570273727271305766216499734932907250643973454985037561469986721415972148124225373402395753933504083566677377317549900552577600213144992099011084549900436080426477408218004817686162587891249777522408622206879203956725382235696844377479582756078355036952598867281334034478991599642064927276183247384859003495607138892682534628362339105246044801634626188031074223124559108802862295293303042942506544566811944365465679257299022526821912210653930773546430205092402922090740951204594189962605369864777629123820878333757980187793511245314037394221484932060752601247816208847205178022170969808956238814613777841452033493740193864676670488759616395293829201090656497351923167577656913435902142101615506257140536546352685223713341159754880623584527616152816239966846826750293403473059633676337106267032386612398385404521831371116257280416143169199609491172519376937287014476702360932786091614894349141890223205538679027970823539650080789368764163182164406244515489559180338760566474474216797718611347142473397527391081510628648722304449605642757316205386765080771238117016908059408547465475592797034190955787910376272710206408371967549401860783277085747893561787241605643232315258021012083648127607411797296297971080179502186478900367552542646704966433588665338368434277978067858523482613623020579271974008704563466725730416755237403220150073252120181011333526043172058257375563217350685583897410354901845678668422298402527354509660966814520941804781057425955935674594493213401285462104268135814128459449801563701520949280290675812461791882693005825860200906884596794298049493889831513722167381909549508481116465621103201360230834469860994069252571334446230378705679222676346479585860065525865786659522928088881665810988122768618187912017156361543923587611990878619851201721639679659867165697479269231215608091314646509517440551308602371673102755557729987589998819599151910385407285240493477719157428971084283577665617042909194776784632702117666115990375748729212087856348536473193397747043285395415515795758897661585916982006367256742416720697168117809130417634826267825320524549636234761580750849594346406008128374494823717852117927485089771586407317180090149127599091982597679863563794510802190986249705619190995132627761861871959897915955789723678545213766717114028602876471394749345117599220729035049972187889698684008380731198129212898097380059620860600658463674541163116076698854879336832866110116213111604433455766844528514181750310090660340676301717999210911670634323983963398176152075679776006101085280906065590300716826750188808066011149028016151755500221776467956168510925367557726865217492208260150340247743151972094488934127197026350552900814204559060793622065082152914398366943217034758916561217736949770971215036065834534088266755083991056338900043861223864251345229420423028836972894962767318774479958140401799269548772084933291876714364289199864428522986993759303496725783947877886854764616207377118271995881813154824469998063510181710381697655549561340103139105558309861072666701988817264373991259546656537167145490885401494926300136937557938056949821983727631311092372710422071408915132747899394015896934027628178459269050905298503755081012482505200077197903395386019868402860689268560102617871582158243996766400672898896056028978742518982135978280618355163247368942614200230767786010088263326804497049220235812040706816167203221134053426563458438129910531479442941284016749092433126010238517823532894038180780237860975260133887193173241578733633247329387288972415913393716498952926493828034122916771291195890272435672330289351740592569605835342567145422946467651651946592307315382613755374755725748170197919619388529720967919647783626503689619969048475511698001195228959495463751538902187525673427748248688891886349396476936391387051734204763351754426953624865140484154683343451378119887124507709158294362680741290640108133804647840544053816694710877354804764118435460204127034442268011616290767120766193682014233909955314514157834077533692421920714557273496102532854878919282169817083406164905773134481101118061900810154387383215837281793068934426157399051695058673434316403318496980150628523860791561924266098422044542358965920424804388806912697491105646446892099403416646177227852501891840988107716703103376849607021294879321153545428637602062455288570675035166697350298845821895501307394038073509219561521561078841331274889154955314538449660444727754983147022643415417030902904835325644273193958543256712848028739117690050656901747227459516534788384893761031794295372315162961146446549809872256878729446688405491395188720996322624709754373762976002075787686336145877812452569726191655672833672069620943380434941810594424919028926922441682538884124669658699199769660541095165193202611959916083677308974228989962034215914060816208484559156451653486005200052248659028736121773576256964369580441879992746837609267820196725480438811402939511071097702520206290253554791197754755536154344038670018372979763493157750386732851527538463568301536238590680620471118111167582960110269652138479792044495150420062011178290948442728183622724394699099338234100871743758595528012847591667707140841830262577143651391382329995390861306948922756306469246082770216536307368434039362958689285947910401780601838000772538504922389351988738267278013374304193885834437194124127173275443772524499349144189948959324171345048095095794095335456583264684951632793658976129448766650800785246205527045351406740843195153777695274257494648271415900228778492152862698416921838524224205959324368142348318862780501513218494660538957785754127350227594404230527601534273172615291804676475455497330869993861160043523498276038880644485727924231448085712481765396191679117516383999590039128679621945430040105405188742877293638668962824453623580847737488475643771698388899112345234620387972804526461995854572667673150297727896065411520232076954774314296849322441055043345155646162522485454815845903066352960984192525138490279083648461566255114354509597535249346062693295119495090353845914520392309418693862867562564472423159589043958178581812597082328744037487364234120576383206908914587237909751174642671323893727263281740461833350429923140832847967419504348874774920567807084047431178488658481008038814495126208363218646978803503837734464998179657107150335452595496370888644815149411999241009272374654496084068734370678489747610566235412660858545906484015368611096896684786992235641626467221985948236140040738706770203319747860624567489715320564333552943307375791934141079423898986509910056410542275664462034422414050555068244012203780874621382251944144506014455720602270383701965900911751029259986641772865906701395126247043695007287863171839458898799121360420073825705129863038665104553521048381745772903144871819131124804540440027970052840348013262571024111350453970396702137009164896522627387166819479700074254840246790120170264754040964007828038407012004412183781252849832090258073388969389324656254757751866511560078615552359880426774514975318674980879079127084357699695773411344948037995220372236766938008775442258380335137082445151941277848914487840246061906151890087872951729316474258052625404602567600741942811366742482366768152238106830115000469370255389584184991810569511979120074332588269714443877836644768809656744559752582357168405631605542505911175414255127818675036042502321939982984120314586329215960403435610128920539048895143093269419877969056468101426937254552775111717536937544978019759022491676511776843305546117138919153826798383460469482672271698385070918987863135557485481839822768218356349204773125620206145672971697994482142994770588787971611035394465881787490905674515184739920266116807600291280604188333174594256184270603571632632859497828273620162990536599094959454647368192710956391738555150872165950263811656378930367961646455374600490050930343129739981289477946604959832596239497019383872881995110429851576398791032485128394349355419867978537903134204796754335862793349648620425549141197151075709905634512416503245709957829277075921466578548771532709908693484366223561136185520912891073485403709878470130837287567740190216812665165869917368511612239488757811068876044169234315562063788249573480231670164668098037013154740158039346806526354659634369587725059926685601502094830318702818239392376559113506840244950125822590941947154869509972718483776557311183073373452624545294618002474463439309753020427248362045311953288117524553512518196716780100218843881965888689202009197295069243829481215265737483536339313808925065064952844008629393429475682173538823007818953619877562921174162684128144403209864330198914066521228811202574794714217789613745674706865004833920095929587767262525008032392089070439522293978046748385471402755591508435811187252583207928924312575425232935071597413590734458994391306679423359632134576029038547165013511933444410274342582231503084745593172622193328536010907161077501133217785609866503830753366906679257093793560144735314143607764454857636421771172399364195556171851477130470056191436684361495763651884539134367619893026280049465688856520759296792862022664735915448832568323123141713539485678724909614414376394904834776002469949823295643327824068101458793729194320121692945833106797978151414431566969222734629457369517532041740350582038873401635497279721504307633654501300260698329669376586775148023132487069626543446300824255513299766699336105526160781072558500685376470956960891269924475195429823779085263548595828293005719139978891873973049831007102835234876759726180743423991540457166532431906957593512340824302656255641653683538994041046993678949337952726435042047064396090205930859458726399767680560317541721190675313139753151963782842084726105895706007795577278196317559094374256580166181815109162971276038618591064060176862932197715236630501230430425828751038671737996624674456956159057662137445225108996478441234968609798140484068149225669984971421127846103660856789837150431589645120756217836866490889520023104376700104939493123867185941012127166962456119878912840133069307274884563694821367496902887720222061666143003484433787416650642544536120606152359729060265074834071696965308500325418825348026748005374839886354754011329971950947615056796303876741905929693356492598580646024730024729578534217696288261138119208118776279429809918635313640282979415875344474457828188822646118383174738642700267121854994081144905033937377365604361801702293003133573284288589576608905536920804352037295375019205811017190745161888278524876008009393484785562505199424109344156622162104328447400613693730288480888926504639828239509636181221918159170480191403501173397315439441184519438033215091534883597830590323249444301893923141596983292944638260219081056339692404765426779762875774659175511726522076858055587393687230378798188044467838951419632412149065341628386514512052086778934760006935648357245504264853621585221858942124797094755475586775644901253444582910366730318476490631972790643927348974683868346061438924087335670308498521763839845288813547372224823773538247402199753631378019110658050029794934573293570109785994606639567003065250569053486299134590406091040507890612544058437890670505292655019541023539944016859402237538645052216168646113711251426948343825632922089302724810604670206452885102744521665860502026570923582773810455867873497377317790390839656725948677385868437370637483145661530658163093402233030679552562832586516099509722596995675746796204285578231033387927508861183178560608456942521457807644827313219014521545645979424881592313268195151779129225100337282020309412359383141059855473359201131962112506610057518132180017198693071697136519412739544828894018003995977801866378410395021645764421597998485604075650609043177778734327450399177331517687106243435151338135437759696120033072952005446484068038091962662196740601731293417185177502791297164112740849365101622769801461198091224587240581304057789631681282031923070084746442459586695248160622245845778612837499144721741229936405621480526395845604793853630031041293133176996575423497128620134768355360642045152748809049992378566812975234245889070266803234652381664109495134386545568169160496653396565059028573045973511295809107701706596229525979146012260685194108946468308750066288129455413476442603562287192474638538783976436785671359278578394948925335931017278944861637177862502411160056491087400854522063680857435420370703418972128435642548374507951613175227695643293139864076047705228359262905896745149701083604186538872561844946499849197623210954922098293532638348259689836523911020055335242351216351631931565792257347633529867386265194473997744730459627066284598469004600940880773892128361080275107085164537059935782913445253100517976887065967164703778165192167054850698726649853795960454453171162780073236336784054296119075515965675635971842123345880789285824624904012516489620521514830442938480698975307641839958324074690663128687583303315245383103650410380482570101758419101676022375151440721173962402464308927639124793544280360204210801734810977339034352043366375649869378167777893017027599382340647188037841433100572566492687853140144503359502147056138920626856733487160652730639478569617771906006146057626230920558181439330764144950049670124550508934044885200452362799620393219416057932304504544154640180659389821764188066386387069914317440861936443840413782781744467035012326579860053623624304239167290507526501114047014892451966311950767509693432373169213591294983941885765826724359648642803223076309784389174017382897840223301661506284604209812730229705371476448211278683713042786884103097194712428195833511510370745027761969272824140099161091738023206350942660348708344949125911719046822126746911587700809754430143574582064416050356064377438673055964410189659183401797984436595926304102380159693614600076050072286439018898151274147651273251128633996860315592741392076910271734936099206716015093130363621127356215388351377110116875489974412410850975447442174263252005452569818151142747605225313649389418635752509889671540934888804892157379986085348040880814090042240570083913446470468932701105480396109645301391529464831033270491451607761322920699353307283976956005166392899577128939777612798972493455207971793285184496065228824008128602393635713226767800044484917204349720157314759912965823499471481003443586409936609223540383739441232215514430887476202237278646523992630993620406504189371992510288133787132964344815595154110335134389408835434912411695740438354066586188123676322306047377434587359263141892400301186383103701616064714617489156342870287052953356100015711280735007195260779641445011132714875583753461288260863355104888931333783916783403435819381976722676620792605584551495287093044145897713913327625903972042571613195269865835451808812611687191448079697581677928377972389291735098166718283461873432106433631971485691863597188411307511802082053371437598707143990349721945856253384592293165396079132224793362094059552194172292421004665044528379521364038297539767542865918459015997037341482713662131032035825939636089939438792093654399802474479855936047359827194957060889855069588454409306967292532408666847831571521012056551900856579464541394531291003043916017139633825540445133763123523618191583551270761862805581389368492208097991741092654040945685305397715775208296252043388535963714362797118271976170394430872948101921887868526608756768628135281338062929277174153678557607987234369623161597399333052011631962517180852455864266139091391530169070027834539787048419585977601924019302589685569095000832631260202629586506241822392380552782169551448908887827475087460122680420483887565880864857147422587389561640961461119243527177601248378918038836336894195550447664186242569087179632852386194676859683055484719738682597456466090265491259749219301438223626318973594322504598765401707584246767999414516568179032863633606312403253696694551183747674194870208273536028419061298340334933529510724393557623490479478026751145289956626789386161359437848709607022410515886143328940598907900744934348576177057376715383114442852306800691545079235318225825280825407931718831405976036389709021518422559166180709512401836923791446875875131537026486112549155911325705747992080578740925613745444589309221706220285033628670041353788760205428450746245441830192209363193793214755002566945506876740003659590381947674362954797586411652382593569196089669884043417891246026298436440653611174816378040638577412690326403378410607850299912074559209650504359006166810304951959864294517356734904889769090499686115950928826855763221751437932369138043664916601427328713926855507960059116934072864485656341754796124849733273420317706015735985223302362149208892739921017373064331394848433508831138558701725290939066765729417666702927572147106652429441408102681210356406578683210195142510186594748940415874325164039436039806479222921405041795565213893188320809336984228424683484330395981644473311848155682678949682395684944241256511070784892787970664486639788393765466312965772457795527757326690079724307749479002647359894205397335111450062503094481252260250646251908734873219299292073712880953476960034071953173852507562274239031931609615656382344144085673180111473781610062479683953969435140807331185119600734355420067728236991066108621230255797763523859229957166881546129088297952749267523897156154790827013411045176988617646991651273523331554182781524225946714597956295067219176925664404188833716530437053019687423052013407127906934593874870409879480407122043804844870298539828141961318338204641833226092273082478753275285743042131864242087914709438944835185787925606175750097450821768453017244571899139324462026954537321199590285197303244920268778247193116656819051161572055622820990354045246139251064414873955881441563547909579935513249218893693347513312211482557462532091596794916534598697925295500669418427610744357252737206611512019816318888633119915821172353008308199748846920818520171926417092671706729999359945583033815023921289654019486195824326823861634656474153161322739770631167719467840864468165860606754070591949215004632653793585804298352843772526542659683241401200342895363439371759847328905166034039841054597826015306460510137455821686994055061739478804436411624719031843870086868680771333042447575130025341386533747919278482228727229921240375415948316847412975866546944335471795113189890944860170714714303265944592646778409279951338449139045332035385930816827506702264393178963347052073477514158906919569447883203099062552928088784518485641094830758434438569232568465929732276918283921668953301053665253583504452367460138933481182032230152584567785693610660330721370388334860056884179595498350752668795944627220613445065050444924386386611392626784220458326273713551276727373920076793945810929925103905057713060501037144510372898262365944994775055895989581238107562569830696701222825363173783545053132715102252294624353136262543738666045147077253450554649399531944983006536663275256278899570342433527566729384574228326732258188760213262057863961998433574371837333162539466373400311106071160190630416272768779164665541652708352935301629055315322492261226568357103686594926818992626407180576011556904711599563662256510590605379328947759394538274869294625939826848582445572433463712078608987565031742346752915450435542389427763083709944804433246344505144841722741196004177021875942847057546950444978714050046005414975918256283394657886412773001572934052361736404538914024417472667207046493805324342736090061077261210951555180647698959351655570644115065071312389795969932813976555747776748200836241760838939468831126892776562490934983504194697241943450010175509123391968594169646935557651799369464540090349849987569497079756006937710720606091311069079009791739542447350863274019282010477540402255132920771632218935544261157092104293407812926554259592835915824770054102098046421176733762879451631905582334586934827467146355838658025123588019783046396678826433021272063244028268329626229982255979578993549621337715835537168317849723096251624531217181557265434622429985085432969477952772296422819402553626919984933099111343907715382930354947668286282347221427581960453584724001631668206999444710341626855851872946080762032353377789846378932076063446765509096701464808512639301176212135742226942907092542622941755414451351746181070163928168061603580460195782048854821421302895396124330029255585671862552122305870513304391028610037467900454545578331875542777853778346133371131338586221136117518279294432616597766147878084811449200896567111281385856938256352630306203714232392809395015312946852569625973308085247029723951906608396974355698100589358407382069296546155611314193426852465059428962989054117278349740208916402163367188455381624504381712421020189919197077425235548181777677697186688840315471122701841615636177034311842869636189343610806359684611240170778213316225352617895456108658594013698968256990925452733370420979849576335952535082081943052618723216998716235476295776336155724879225727646966161514100097633353242606324575356268589791131274145704872846300564901923537274445864307167603100872725857758394419794891696801424903261984974714339027475497950684326961065705483435456407068666675508226307832300310125613784630620628040643692059367475240593960377206336521342847028477352854589414684991637904866978882552033157250648005196475948271225237983464519125215307721357911374448181968799133170832422420916840735854990137926727803463287069467230103676774552369114848519970828266946620932747988845970712127265912319900561391878903592620283181039206214119444559384994640900165823756068450756291140507834430276009430262471209037039089484447612827892768359779071908700999912693009308112928377621349660866634563034797105740308957141053925493741420234320079686383577706554025392253549628783164623146817699118471399306563121015643150080122489081125458018062665978428480293059835366634177444986162753062469971883423539735301194096939190280346004044398250703379124943671491050744589653775164467783162035259334246198165565589003917947144957489140568425293763308167414666961025577056837534076567479903808284433642288669792876446976948758180552838689371674872696273439965731728886080205962583018043140169310654169663162672046932529282368893487865064645035473541257291785854636933358263788834800854383914211291336215556506518070719731347719285630608983663654792090911795691418081608693901600016012660515958948423286608554805684095881590437256395802695171964902587710664284984140407143583301855406554768129580417995470750383587844449655233573965204488809712104295518640899424414655663157939442282596821809260508709904094800332304796803234283916993417407649186106509712893635711976834336811206647517167129359735194462375606179159783871336663783257673003312662354209494869386580693319553629109784354774228676727964573078953089846699205707843936503316642263142288655876570686025462315017235316719380771950840572020271185817128947292578146131086318332013989611640507723277937421310289470832623021898632365252110306464294440725886405933305321094414500241498400868418499452047428598894362887165305366324396441512870868622510752735998451676580246067910031384192454057730783077001901356476045137284291156826724126290972902401770718383219177155013902140264343934968994235810678715632313736838343027123619990987608393293271853621664794267683569695037740849358349680367344569661824942076488064622626021154793288536807716772238978974773794709648860197465083416817032494034668932228167544751451688730063204055560837164352696728362238885747531318956757786586525909309755767085309303905769291611642410763064680610806451905750573249779325412079100772182973754799172061611789892514199966162553354110445984228825833370201720623420974490598248945037984278094504558149890702080106016979937300921111317278151738743817595868052842366669080131659931180573852759370398785422728875498750302142409170781930567120547188142838419638926137796097152547082663582621568260052662451704336676035544699496607156844206847252623592200498531782269620152187540658015035906258621660225532908644667190078401312085127088669156180880496828696527454526492929929678992683219532409884477312724503936522389634519845853354406537741886436588291539870098327794183541525015616627492005677979771742789685398810124191052677310459377078519968961308006580633690738384646034402845662708594694545833454966361531571795995688581884875225972609824664321999024512292921801615444363073110870224419837121497124094755179324306360202610979003447506807429904823137561864297765523854812566116834137302931117594831962703357995212997245781634436133819626751161266785474553266844465973439363932969766881337473681565730827070092137614199516212882631653121461534603041729236279153626955601476811671200683217103101381707425698563522988844729681108143240749220891572124787747157345896859720240076269575830034614694724520587598235714349166165106887564843344696984823353162254550744989540150081675987832861013096655491477866388076483016849900689763976090622687071408268362671635498828865510014701852598647111088175617486633833342184274867012080986936407555287905479999351835210101741665664701963682969175702152064241978420483111791072310842955730758643763751812894832295456412705609659908293497006651311999435333053551954153776365978429630916310500715766887966166394119843801885117969077995472509831966050817464243879039136774914975953903505142358970491592823244194231920491698424911287173182257914728069784062704239665376094586597918584223731121622327411988118827282747805236818139189387067297316627685365463836346795409191240729591524073975980546782610468878392636073826749428143432604484710158989958137852128413497641691489973782942368588727407056616078921999030673734748620636696507447245437515652162512687721477895625533368334817579720234365702413160509733704651075194913657302098216464351711728375773290790855428264489990574088996817583275045034195718915356864027205949077605381200784972310187750582404919851350056709595074997332955485031604918710381807819483342997908167917680526001021312519739467867432445974951745728922592035431965664978074040760669912073611788599933487404488013137617688347957437089691477374956087499626674069319923819331107100176943286877329736201796646329642613003704883195632752148981377109016050775809660644676566223483273109855974283176681789027918358688344246458952162375003471236682284191411101689657826281364250739210735255323949062364944855597170586934329564819897736782772383314333319518980116281173911876370564325505176771772174332905291919117488891705006883242223111092533560710594481077743681267241846697746476140824391698850880969335282457818424713938636486475459339595989380002906134946681319976335723478822708440375862342269728316243348484298848107466459507022137951328717626183904359222500396077873548386146586626421864173304607480699188756217990632871186820534853958506243727258179404752589659912336449511225466924676242813417359224162116661040644105178801550520549677825632331310750158757204676864893382222825971279892892704389851936472373087327596377821652375819319355870627670292855923638981278174694010751221847598184427147954491270201219782051381110882978212244762206708416468769988830864692625984042220134217290691147553941455470299953972525837791100506907802827993504433915089117411023632704455894507036490472555136311237484519069962176096494712543740810776278382261150917927124419891819035179072491863766016922745677833762773512210470760884314700003418174060888016938746129170625904219381783385047131810860583627801887092960631974844466120359484283868726945999672702861869890663949583859366216711986179732793339993946544264556677051572814421452710766692950687335965451684295929151545745306520724450834948097186686408259355700637524262956569905873601143469713431035517531647878681746532469081310411771590183439649389072374879670154603809250324469204242628954074583413950439460513539034265868718802944939109144406907572831804178906714441914081345876664701309568305665427130339667469229244012704692214836654955090004763781649185232230765975631185582918084726535461713666741823843311505236858936761934628548550421279669444244293208514810834038518892847546042705856039898876675083477635973597287297535951769220631553424509445186798011473337807387252659709738956903021016926097171457504789193082563107454885379632983559465770897791998887121705940932695665390215651940691675298991943140114152425347288251793645722530741947495676963371738214728943250072218128950522831998933210567568018730159096007186910445689621238467139601945255457471492972775175375461432965195123556828846795469595101753351983835770261794199607456707044782733243911413348145193652752025086232697433943583976164184010652679491564765573983676940473975002541195706896711774207621441384509028583936558711500325615296025115328940388464323854539651898723187093618652787677843605829804665891768165624284797358884673850965738797032547475796685046512419100505255382653372217947051551730591935912082446136502890308741383452184226705949743385917574262337026344451428744866507410777239393603030056305583000246375406109676291844362616780326505244463379371615506645743964528345172968895319935113808308771050689382633061712332257015758199253149178318637721047505086394555381544683307319857403883111296849442945288008567899088759284618925077592838309734979591228117677163941384543458238075675894799094300406288491610266188748807885416454941469594088186998306545355975027720130894616696357203629106802128452624984767092046418772919854526034230916162079062705714082606899266444115946574549232669181813652407901160193604715963243663545406089469536823365262917200691912482386958498284153451053575888938203007392017594189896241274610483650202887333645194974776681761013685485961911217508852129372996669549394119441211972109916890826037892182945827226827717159315483429028333913948476024183829136509056017715064723662324896496850438408046909686683082216074493892772548917758779307816522687390505260984335064755612801754460596884262418376101501579747452280804595081478278044003671057800920579897373331424023513008885855694615828555327280446576799553537987660970793696910075415566013412582143675500709574281719415818556200242899369064251054663258705327185420933808651848316374184095799487068471620478736825507511348340570201245716907133881346423005045740371258757184379496164097145979424829439069713043613297279511211538777525849862967772381191869901452436841571639113587111834380077337395279506699375013139556808457320768551666493730289917606341629767676929681062888687351126828640907353645673509565291399082546261913627676994792530182627783460094751785434835541960443960100865066421970969191378725720207547328173945720192892041055138494343232428958672316538489589819397136196638569000932535221500025415756597976864793303404087610658192896575257329084324217822447610178242847497938874961704767868921116570206781384022198837943479906525314946153525772072068093516826723305632170418059799643764988372939741690284193668894405225345851232474458163756203919218748362542368831463854416588283335490644859780859602991155294041808885726617197477538607417522973226767505599945124096539536419995700742439753639253244894637275549306594226526843456295602331960718701324583196780301410429553876568777508873104872569116879624132813975703611581807953259153261580979763026408026613915376238165120993261745973071588168863949100085370422681576424098779545586941250246628345179121185661973660123933759438843096692867478083160867367658929079484883180829419608962561404637921455173478390935129332877555295695053366983587443676154648098618516864782028296507934903787253869322206650226737679619939836299938602962198930343292855860151886377820670142666982979406577962661761530689270626790733572353645737470880993882295200482851058361335581189127652258445243778088235988347199301588916708584862406847855421505017252051200715196228128018907763780133260770068225008911934709482389216273810569945342390201765485988578494366185833621865195906326400033955536551285320689189268008604276541707674466720322353942555891848570809206731722185080338696425216636245262337831235180945449409248391049123404944919679819721286836702550027844979475975264462606847723482593274763558716385915717159765793842181098634553472064941826256005544924212492968202034569013135746454743278964262296872703466866517908647573935136180072952736699031965175745078959263679763064248762139443444635775935639008521389831059014419247727819944690095923850788202039421397946087659129233733647229161544367895495986272465904360051312733541651950968637040148073898595990148207310553811666044284377963942842455051838523340606682279143403073255077966404681370231978712809036765016328159202200824208889263293203807124195201053946422889445774944137296575234362352445337039265967619492777092414363908472963236402577963324891846652610582508904934426368973338716722768469656049421687709070842619239032044847632948967995716757959169670263446968296504624218473957306920054171463057874812311495213820531571136272704140368529073049201002514322182092051799387978552336427969029312402191827318824546738003001913041919927558682401267576398255047236522787043474066136878931844828541879727157542061381970089186402477227269243652875505592693282385328024720292918278542286775004878310552213180382115654494453312695018009572863917418102534137652325469416062499113583821545228481283786969226700501595798412930004096277721137644204203604102564317035451461905336608164874835383500993539249292000146852101151772150253045666633063466934034411711947151600686803322529238861295525572003624753548612672282779235988580044905963679563131550208164037281151744394425963984096028670271316269920724951899266115930326277344548843499215740731096041755436274243032301808817464397752310398662282227661581176967354230999098740703059031231615430072864181669585859969978593993728317237208885030842190127190197360384503229309044866975794703370146999697244693744311018240491621878097480859306254045923556859323811319626059891718886130447854371346269288431135458683211665248123100706385186786719892731080468365386575987095294785208643215250009997023631931843812635934325103949320764541530371735172610808478233219168109472867409841095115787950346316524921002534513126203918451652839084078738315745924470254004938323317911397151721125457238819851247167181446078843456383947579151444782226109432947070086329532341892244544836882866744070692789968506346171235994148315114707383463816130358588788542682234569693649883589712756067732202358823817688697270536619617132077427855283460306957075983002340160866933593301905787282357646070655561682838696830672326853512482609467778159423210279608788241901200542288388116472702558922730636790742185891654351108434947839504655318155975760592697671504429730540824998442771402327704396977425137264211160972947441708209151741423563974238037506562421212154338475439532390068615197133714468006309524627053631400173481816189355124012231581014348102561970454597357250102289924623655496134883500739339861161111995569678705041928854930081995201328448745711052640573004862986983045507117529745522599368201808531552455140075036003725904757416187113395343579018370267981604358391569025283315939956250168431732472864445519482583986222056819921856746792539390068623660008864989116162200635363442874632644394277455770897596482540814561436616033670706454885772947853984744879770786235174115352780001262837276674552733847589297479894695059082925333882181826282897321513875794330305805633773196002066767663687187728241710577065805276681126010743702499277231295866945202943631944186765865902545874828905202008539680127108313178933864890672637150331016856464766849589066710826463490713844170679517913499283952808455020818385579385822401253099307434634414919565657699304000249597275047186475684776861869302890503970978652567760409604362518552945791886018692821426304036961530970421003421622574573413810793405873006549019717476327020601764762293969238810824170425511609263516617452625267972482538331308715083283240150516666328305500600232247661162202249546112579634434671568832598686828713004267311476748778825215047954984401838581834770063736969308858404580128093611659512694054686762231249853804040502361208339807608535830409144408050418179100788081620439649066095544252251470381998341233263864687778623813757434878069038729130730727673587411981890732065034647355673803447908159008433747775255860806031585703249733768804289245204664442432097783321151752756159779039865510332774810532823757843907257227096429075830899699501102391062201336306807990448230464182662503436359589432201281981446102664394047153826851680115324058588961436346846810950921238939803228965303615525026265769253946707222639471866233536617523601581096627776605936377348950402952634140079465157212968341720358291762819656182306121518738900266291453913880706211829932134873694394639553735535683177701417899358782240718291270614102070027127807227585782279467381980122884793502077893765436170343885519263073995041172126774351064130697433867482923221215291058808805815678209339482597753668132017003723876521912198026432152746175107905264519759765005424275659121482594747029972275399861695097450022786923165327996910702945464859077684435147158712491628295047602234968950344081934974559187369171821292796336298851485417970557756448018646902159189869749561189264319007445993065799270465245219874664648351704088416631137060134418713398004242229313613084878667042242941424472404352043894273818257050682688371524999095120746566533502008213674254855979821247281120223233499349928592572200836633611025486873949976982444161200507447266824674833800621028441932276948993108229386191307257574202814848702565057508616383558817240358126085828418437887783163952446770656067000022580117402248505249158529323078477977181011249792214153499355575910126799595542648959128872241206598574355617135260814137037113757796466371529837906578216804215027481260732693508938137978371146260997256075512619176502588170663117861841196377924527258686527390452830028419638611380705110619024018257465602016526497441021668161830226557986918564171012980148993574585457050339458316884777133874162659529219203709887391659104245783918205900805014825376136387987651110575138690315539035609508649366753184699323193687802890334240594178567664294429265674752283905658005521922227582350831746744304778595682921980844396341407513488214955097160244093793735633772137864956036589349115785104725833833092999290084412909134858040700440595374619850326344298679805526394754144314699200837436736295289559572733708239943655163647529030340687889396186005461187606399880606527805223228300187093424198847994793472048844891967653081831228306788565572937660367566243421926399941241684863990833091531992382189046979878311750849482390786527675924902750422941128052855861821920454012737594148655017068558027047538565546817646442196128606220062432534100683376609626923107010959020189968360129185213480441044886107041115248613018733491921409287112474074446182243019792914726478764557127702389132708833229324946003130394773263767568780447586703539829520164430392654694440225922742025753823338880153006342877951577132228501640967646101743834081615891669096904134215902618924460463145915820729928939431893514410019654140457898459513140222461814015057113820824898531579411769131734000565276032426347295016477115167007781751819341108355928594845765422878871826552304493043898342960223575539129622361502177811550975697719700083713816054951989700414684013463076166920473026237866366641291062739997912440087746136398165001617387104851460528578117611125867128187987402356856244137173531150793237870740079883845276776309700872022155279723775382319032063595619995784765455553307999989682851719070661760033268066255210220670835539686903216625148034820615937068402024308857998641030068081237191412509145885195007369314844972193120620079140996023707933035496140421495359801211970422528870762137337126972888197758776596314745321929330661953184787155250150463404176780577671506516533640283471141410795097882448184388901143111908970088416441009279857292998577860492546156860167330250285249309345847690200481217549071623939988620332867099509728301586770442886942593970933431401477933273185187214744669346960670613715348771779699569953389130722863156245163209017179671632660690980901288186354546394374394756211875440359938976632350856415152631312356841022009410911743828441265568876212941090444373883936080978740829277767035216681586449487627772634910128331079364430072237515876044434995472763942375272379999856126425656344122159264197642202387632548678829310279619192054109025044336620806663397976858150569964299330353312719672910162237036995909724016062678123482865590318029231166648788188228194842453692938492320742371250275872575565394655629501120291324309478396022753799296499305131404756318396287001366725327044955546126044248479595925498502583593889404649756674087474863970110416196019509475017466605152796150696736355936943505673856797361879821190904415729487208594556392009337882670247309350114644032841590623985018047829197096693736904361127645190483453363054464178045859692730538636988705758066535079153713424094841925457023671648750392285168005962707719112713170604638374420228750230778624992170766407619898986668675719925882196666687555478421011273291674506823161396085911530021794832862161213196610230175819821189691529075347896281782660050864860787612071137200790701950176163549490019590435174465884746640036780085912842050790869522056010991271694719648771512370170850687035367970510255035893016813128422791118408061656600745864659441676238821401925639699951508566573010948882686873966888975896129423057566859298319085398830763821847784553816484310450452233180378357078012713643478977174672293711847609468193480945006669966682007709854456996828159153067617045802982519107807136417552267312510835119864455446361251392353723643612458262591085006567618384756506265242305736384852514525406942400872651187493124337263577893969829651745723081428703656350872092815107846711076429851796973672326590942479407858439621578500789437495134383949890809688799255165674100041598796183631358006096586587798186083946314615431735309830292583372216176973054676470792879895373840049461384866010017120283793310111145771509845578729811723020686564344988219483751397267335424611205250803124742324064094316142520764574460765591545823542851491859686385647449972661458876508098105399115496932457248816412020117433304088206803818460540959367634634316821743696313862054207726564864450766139067607501855426533785948448389664619591629571845436677983560141657567310290263649822483683321681894253538021933419102119645793597056886014949930671988722810219016677423460303808876566155288340360077011016259136849713186902742578963291655392286940276147296469968607851122586623461054515591631354641866531767115312421122192852992613007553771904352290002925076995164333341862841344070079312967079953924335508638720445258228829266088344157382460543827149910131025299476072041150129489620843541465699568454392710305095094059479660076786803244012202372101785646162275334081814882251791563136047889807904119105005069959261309671627272964730758813226617002101660394799395739020338102703772700481088652123780771893163762617024547775237080736434500999980658985046796097598853302577478440861300681164798514041731944050130216071978128757307597008797012080165286204215603362047565654614143350013562712274431180595893011932613080612264630535123461118672884662640395197062075645675433640439597166379268027552278946621133645665973269470462153027451888825197627486880312983680770864056823909697281346780985708601160545152449155957090453682343745494750001228182647624831343530660099822805178052368120200763146217135931048973794118219058597084702457979611436234320871354410023489724574781160027061977316029670569650333591173103271077171628645840985882202661473677663392243112021811745600321310734776992864212278591227158510449534489400256810990848021626512374797124309210145596185791272400132809173997300574674095663961845967218818622094898665807762957580929954190068165572361889287904799704379229796736707558103773444162375428477461727402630413608296895895342441868705660954474997404668433004145016522729630920501286744526711100235203705056017234997318550592982256468212635771633090670090804367393343474859572133557347397028647265056838103140034272932573762181876638847693923203660756725238964790351268829214944682741591739781127822862445792497754089010533037247044288889326123702323842818401894201937811697383679918363548428080365357577563997906207310466656722284107255543342844258426416764525867998697192846342545633225589083296818789056766793414695245397603215573689338249602038612827825109749317892098215162471656823116962486803580204626398664611985699027585281551307622530188507887690007349157145963282384950420266490546168328355548892606862061514656334442418609829932303061636464792404652324360358706578734319184998424255992572831854800720243870633520243267885716644141212284665188498618026375885745903587628873791443948074142530006071870775802275250818266344973961538417914617102798349974959271696162700183291973521103483330842834921870593000757304377079381891007585968011130363884038207545852033953739911895122528805618289852287188646091613286725150747128274220126702080956807031726394184417969656427548113553548566696052769955817685775602454246489381564818692829283888791115030651674539537194690222932853741341067414160282744081492771550957420926632179139045996393407036363922795705661185157987306559958778661550372598149484809932767331578543056256910258942731252675633478291347174854465147650307241692234141013964173691389153873685947912038911156802762851361031165791424275516433119317161054907312264413995305246183989885925582717896708313708199236496941128418505203707120570812628114824643464118665718635926470851005630276407024294747101389810196833200877655049171765683539061561062722471149142253386534055103825285180650887636733998985338486118233216917015939096749939795242747885295748424483239234044948840921653504025185404231409848963670427275660380796136054404088502578715622712669498449197428805295798769707867662050639036876875085997511459872341897876136723458729998417450501405920097849867838198176201607206328394850172979071846751838615524397157959498633476561639512295552818481821246547260140172175448793324324716243238219721950331405167556938549377388292943088307923040552994674411715131706984925827277424370684179544689313844069211371831093334170493006892576213700952303772452099124607175363628426072123164961986447719926070325995690953701216360526923293635481407054686284720438029612775473334896264837310984411207162495010968519694993121303215670924789594817270290632422958039184749808876471330690470423703241025918441040713453795825433331148764982384499824398587275908685809726329175375358260990894625983460590688072593331157022218447163765311014037505348374657338182575558950168303676954839883770153128605073429389321692431660244111565144685818975840545482394644215794316127081770643972555083111942974242092574793546726894594450505215107633511391505410488432134549802342871096329342382722749506490577886825479019215308525059705853837029930138557703604986467409514660407768740208044702610954825437694237057017248624073013514649132490921146009138810214053547546602100408835919725509435410937517526457270340440951637349947483621301678513151284592007291028909014579530123633408287388783376398100692269846486370680804397970569526031755241754837846220303350511357861380318352848834186496084843004992594984808459839009829337869492463336054192314916026027550329104676402671522101429856083778171402287614328602574723451502995405409712614994488790176180289776475229091333206719302759149537776572911363917748019865513436764879509279805500291526163277131477229624998070804298381812020226470714704644981945459326151259677088083263983993785447804495812572695913773399286722267612818916107172255724183943664781797630349840571747523530925166674871631425970906404980132737585113548469666471442540889191855673081947545592066480977683504237842903745768172697691632430436624641981584002463725933990736777418973651833165392006188098846019163896466719281051093533234660577411552219867890388809212282106378687886791536209845452611473263200476195474295266825592818532504976872159766918726841617937011411123464777858878888380443785553875444393455502291634300256002621422377686401249530446073337062826825362474997925477323835974776574857486669529950698991838951231393935604031126358984533893016121045388476621425713243098880801839976537034336928493447293983484196137025873289466582716856135594203555700508278958655159981646994082200216542639342260919634088468689395247293659198045875336585206446977959720563576051934888860216477185885978899585625942638591830706817096854101139110176659782023184160189971711770416005283291230028733657736545892061217121840681401381623868882346258003231358746062973228866382959019746661410862701871041234708186560750885393446236595805619925837794778789009844614119048917738258156707421768920791513746745750275860984465029357213339537425300559639583457123272692066848650599319600316143932181268526697577362174845364563786506212181952227412372008231652797815438909981734428164992735243049614065270248570724788884911033424384507808996385320574705307273082947060338210251636330019698400447107306980654802990367511265559229032344497854218675745482737028275154877285889713240886066694274822113534416683075770963065452499177158525479944027519308221747850698123140725312442254304623152009136069998948892200710561143744675922537550696160506915662639107084770141811452455164337823949840746501029525947975047726728508140774725944934188619118904014512169294416564117482458085278456939056729573621237282795307901637455697368591538177967133983521243806856391511616742396362142715718491695985147349498697890662122892360347684350218071461920860418849997595603116193415193179278090469751675043302547418387232925956894820587545339103876697905393089066930275713906495809576933703234209047636661039534862323024941913959121720526660973286154162851161596319417191833408247649073183308046834611090769463302741191378430422920453162790324165214840072659347866237763927004465087689333429291300277301006992120931735680686064066440766380370884414980440405419808937540386109106045909857612831906353722978487556927302862724989325845914780211157503515879538290313350299954898834130359983279481784336539610140068706530076382746615558232274576679252445970214112254161730433905216668896395776284847871274414880481761618292703538985404097655462298798643715989788037941418334153730447651082404001314755975522385653791733201088729191154281106860719209262980795586483237078214308604790695897002941149923218692814961052822900307961099078334183887436325984858167428258091214754772830950994858747443882843508063664761523048424454610874347912416514551690174373406619057921970195734814380993147955068790115659781352619287905754185834570485384010542007985775935697104064163572650654844172756451846886918398947496770780965838078610606527592859809045413376275798260353336546766071155807203775264891347775450954221755792216034316120959610830859506861006926735114434046750415625595729948882624630145635682544732937268202313984589392088005070555306901215894287129333505236217273877651890524963946176149743686590720350310412232588546023376686317110573755317966891643141922279171095228073171635245803329689072230538046573691773590869537721494582446673894006544530827032580077005895782427936735288151715872126101080707728772751312267798504994082469979661069262384144991481495808572826693814363439349738142572354899141208628335751661426031342013909797885785669823946619082266643581304678709722684703971424677038606490764780631383020650782313274849289195389373024934247118738221773086542152287792618332016369961603445338367559270175438669756486745181585968798895475535662375670774116440582466762600795504526212869800117905230357899797771458210181475599588128119294823373146515603182912268305697976902543677891954736480890887368905928973272075300743277708610621820180824992544890386097046305857576826159862181450849757657707995960310451389017248369986653052830007151746789168801330727881771550281650171550824279436954480075191500773169003911605923216850275355362649398767689940815600447872000329610679203004254196213887649524011678715297992753055399034762775124146574936291066011335944941594489572207906614370740714230906768433989396736565921710521071364084509291694620482222982886179777814145904971618405083423253505969187332016997805601728629419662594394413395602637207895642206351800502855273751779080176748945937227825235829461513759605681737416349696669569639020086610965632159633322689891696424649183740790333922383437595776141032042881801135964439296804997014169162877409170031860311729144741587850955238665805640061415310686147020196895715852164481301334848925863840092418234806988362578165898567966565763931085946575183829616760743423251824813749136521019863813804086151668360987735688873990323112866861862778024132722003319991699544495526999903962610247984882557426991217497918815099753024388386152596577280188588508208611421100077730211790257059541876295172935411144667235423066318341913535797885001127017989507230879368294548023660648612765796576170710116733183468170258851533207435918335328093593736714351393723112368659601036218431879965952912559306096380190443967597407870402847441845776636853190749396547273944373589326483718174597853261387818287402172175091290904194524432504768022430126617438948960395096437954663307745820635400359050337879844886742884303010007885322963178327142812761504197280217622217572558289589054161563566269487554872042064023678519809347840291459557942778811278258002520862143264888131396329533976769219415045173496724126154106849800327852849450186121678807277453670893851323860632742039673626129101427597386750378714415959449149498673114222611223819312066532922822603599871715488619299198693262390989744634290690018166736738712954689018232524959521275931789701433626608947531842495616190146522120751129297467361676737569238911779490294075762645216879762971536108310562293676635267852530526745213375532683337496102352546715621568074405321113135048029781332414213473763467529648102969087260508758803536119059314498234771809871116194776560062391058283081138759321621180697577390855059783020736511405317791746993397897971616927523036018210584349619430268708937084555574124589793086271745308199663358617775324878874152911421861721411304799081749514290043254665613631832293665702400858320250067781071167931209809425680907761599171874285975010633363637755844189087545449239355199358033525151802821811773692811014575600273403305191350995317470757542718879234659135672580103031054385814319352290619589896334469001055558948265188954894558865101139425281784720632953659205304504340869910552122437779675507406769875298996108816638203058085203821545714825921121725484274987209018943832577915822536940759365549475287251492340318769926627907500968716416955788694700837957512762186149211181991477090828555475083669364474811582531949034262692518370329858655679449253298259463012554551992077857554968020798524707891600051137975893805828702772082679806208873676179628660138604315465981078993217359181056374734725247842238735411604511113331715536575559264890791735061027283339479860236568621522516549215499382591058253103610684787842861123504549070923377624918349211506232799260635966076784580873487684472507353349156144189870564028389746467763229705913150200019566371591004274633202622421563204945721195949295895825329729946913608692037689310026256821478361993574170157141472409839020074111024410882627598896807770494473586101335389429347321856780743741081251095589399355119782869327398980882471107064663482645917641877107771938260572179937141981762857931553387174408582205712003195942215003880851897827521002861525126477352237736695051247542900194226243184187271269888958129450073905563811857835577770624859922788229354204440669359160625894338800312347607531003555708862389486776681055413440953819593857308440623508674307335839574395380296198078659435714609129314706345154920996087711797686419961589638368839965681873176696969027620711878745238013898819568726566226307054673076717378309000468988475240267269019489949857326778900070318728729621642766554181613354187677459032637439350024347196912363269769967406663573070509871726610301861481838367187162063519755546982512582632993590261703890234949415320080641727620100762419256362375717478049500528559414675982046554317804639375502440127363793895401743364819894569841517333479680808755842155801073448918597615502212440112423301481471305045445115321898178588881784767757244396810823573769367510902430252510900779046966005178040370242715755043643284287498265531389475383866622623712597249061841108336696832627455668797716822318512131803223209112491423628533820987716039215003844577314818306381412406177941335371044153769203691121971103390590094750258193121028274093377806207023274190458488939081311307834873950288943655136536255476308778631748875245754516278081280447149345914478806112969085049509478769010459607165489163874223501489735492247078233776731448847799520909158129824797509655692799003897860158186907394897313796128914680291714843839446694836528213328557587875163881514614019562480295482472977597678601774555410577038635015549510901815502100572550496263327933152754605232952184831668807450964687739807574683399842156198516462510790134188007581808967726599408064437275760815168889356979400524677753676314326425211061379648540774266683491502589319132409166220528665118021198058514117333917679730401148709559987631194449521238990753638387583069981487132405654720565983475521655265965929587008004125352575466213841489383894321546016347406190459011141501191033498649234678275715699170890856008086688284046496742918663872972930135404457289971637421970296122208858564138621767864298671572657819867278381282540995634339336722149462828579455013898680773610250428768862481868897507246464445690904883177071553355412286470485244349694737658062356092799348658876977032131488865659534199389448418368158953263444346577265336197076768453604111430819135788956234344594653789680943268469528475787273018578770649690340603486477697276145449526075883144796318982031551448098563587467131064172221967646151419743324804038410110381923925078961201773091861029483851563300597710858225138773158073629314666186124025602755281191856823179461755229956066314582686711436257152755763127142674230806662989083600640292973136307173704087841155716991927607639635615653691229211038739285385076977407603815026364109777480371312940834433590215455035347303031939422444557765010256464789866051794347662830446169930867626141131598262793631460713445051832232748238245150552992478318943083917413917556738012031178043129750232233623106162844560376388310135558765130268141954672075742680246944121755146642764188022236124876070393475913343267034251035271554667251185396272852957418926973068505074621123054686906836529427701259937703001219557830714525402759263558596518220928524934339305910229243869815879409051074144464796568812980511239023378148728664174283726786918705543445453255387579746486458170211789275470970987344189227609525914044118867537567832840080337832895764178624946939300705371781695864881355509833548887583480229800720142564886826653038167852308538821397184784550838856750693845746758889711466588857805728602150488384467209622143472480645403382063524420753634803751537292040567456409088227441850100066700532349687957132758940860360673260252822646925629825417840081405359939469931545787868409369711188179419176085956997976966438922533456138639116343868054047160659585961862142869620481857555479937833317582985434040305604884912987544245277606962331224944354554093190519779645011677013530811136150549400131893612614042960205503688681532138657425926770145087911281996143727051869869303392072177170997846718035140654562473164257705121741424029287124579654297032472901895399564865132089323418300935182439790876235455239461541778015057883219910122440198188959730542047065145209614589177955724392395254950316165224005123571237969992703807251260561603326259107092283618990307799341620012991606821100528401860224071939350326110165798990122299254339367665518179343292346951342999246731132389267909447880446755962527497675002865306812498349125960223776246649468166476717292771701662903120384587013359067882379428850363210931150363360855368578581660000784137764623755653438946952486817230257538256265396550141088869661245022673344718368059182026325494196517500374585196675903007687826635564848454122583800598427309971858964460744659692512222151321152975425289535676476510629899192679410973696986549392662785473446342212951611710270218557182137067161840696499191326838022280588535391881870130857883093241741420493975429445588257891067030316940432977285154145435764194288469560412364078876711922161312390539663704091022467694768008244166939753051609459533372029957601427749511459508903789990773982347689425005820749820241972731322392860158099417262882881475524148883117854306480120973705052123305983826235749064647526326706837179963793853270500028726922151672132444933823942023962232724179102334165175869483938600955872339386500262362922026448895312504774231778170151439430651827629161857011317259340625053625270996009896974573350381264872815088007068625849963193117844659175503975062544815652372182418672210348432749146355157675067982865798723465091714391188511240754727601733952235862748644808393155753606944191481540635275941945384773937128286499440355711811820444450055336458499680745096728950179072071291551499635963935558208641859982529839434610452725156580788677274622471322766044931914201032015825970521449088035812988272876022738434471456741452907770636861421492287682112871815217748848208358343060274352613236870491162759330464122511180051237426087386414175460470145363876947633101457682345841875052612486974084692954715250876244221909069209910406167689179768323066870329031511502054301775670802703744337787417476735924300871646269847392922634920054255845597235542694281034956652219183122487932680196919563212088898431288035500393826101305144963905008271440399285883433863996979864115268819844474141184046555998431676907976987862752133419362697289183045880135414692627812611272447190314389202561386390738865530894617421529931777194875902389789222154982973512818952145213344174233933349166611641517511624465761881181237966374050277702193437211905296649631341527744926458554103163749469367653351182787736801167181100456953495083652364762756808973654610137317756372548274132842835204306510255441205088120666454352505317458464020960297187108923759552705151826254023353898883003231580372209292359617603364598242572162538092108582459282260376473187114421424430538906735913329297330548371915120561201687266418193204090749225260254684836875978305724821778069343309862519059185163054323224406700303240424762637728180368105969294447741323502637703475492018862145226806855589733457884419528732404091412106065630445871501484159818762309356061843988955363054298264977774353959005783817130551933096094047868963684427071581109822953427126272636919836296414579069082063247646450476100940075386393278610017829502433766762367500088640789233043136927229611118455944681092519133764340917547996758374360979225930146071826578104527869025961697743816322446161080368302523989044585904941947789284135151252872916237572435022261613591552149433538095384863302596116849074815406486383723286829392942447408701698082464521333862426806184417694364008974765341861376859188917202158769139150625585028897822660821968592697257465431330392807971877700168784513184414821711991936008025720465541649771937646764081607145050793214629715912474236865296609485795786925651921818330591189237619777549226918290805127242331326678506265861658981534995977473048205620744812678564918765080779666784137367318218333788412870503768176837652346251970882879761860933339283710109950989442621203084144092283065645340834393953926375403532889220571025991876915432577972093602461203417798142528552799904584304050989334644012428961412106793050776227617743884242746170390436664674663530949766253775632036408768635582747801624155997123739535718451715132350134944906268440157673689340450604623464432944614298028373389693443182261843540792109470311979878570105944999417017842515411976998403536408247384266260567862224683306820905530013421943324728774913524134827672405200810735713298129344845138698081545104588512920797053737158299912783292475122710676805526884301349480745916738893080075213314299291020769456493404937454456410646245718647593133749286807617542825894549444513710409259745681384941267381756108747374198163483914021311381014069010180096434011179288185687384527679019725364981085209699541738833902057259514089775059503032339059007687171072303291535695533448950484293794112611736598814796941910833703406821864768996720903886658424059619658096267475253481665113666918616622073194286863027101122399866309810317180001399224788181934303375180139886867077249524535199176923119273981048631392817961528373847727621797806672301068824713104650719401371931357146142050765451301941951499545746295442300694177276283126266140932851561219664812211542807228491516040731328775524697244280774924910079030835726079253580337966407355042488698440225565509841638316712032804294638437640056209829547437551996493655113001409802509173332893552668563019265627927245058665613532396874260037102292392448667843263264350233736721255844762061195403774525789815617367126108773186009825085142021377038209524263138871772329195675506822634235948260223749535844677103033698626427251362186399746719947075296697849178781765967557725580483083170614113052280571420742775504247430581767445118913382682729445229892854828757677395575875391024082299721207548052202839384956279262260672224519618973954869831991565798702257824033096634071220100121294793103756748255166804684739861967725260603648005581966263612353531909311419755682842608957734853488794995040981050419072895583200053640673602371127391968131987094829972255538501660214212282495461183965627187633134142922955899170010007866012676530963199887919693664381473707100123774955552312481786212635515736951300829402863397287293218516785151415515271118005660139385164106035617590049788285773842657740717159907370862582552433174223208601196069249252355580989289458127922294975110312853231505657124378972947599057926967319464631985191680993918671953167251351912745114260378658864937911025708109620160203716374834063318862466931452847300894624854701069546325812145277965313354238028114410351416101080515942662785561942261360720705957827134270340509547062761490753162672787347416650271412252511888008250298118122791577472484589575347530890426393604183213360063831132353178426694274840969545644282679241518347162000593943279186072777727184532004673717814297646364475706699060706177203214934055987829981617486764291897731003888268274939036527836766847733970568677501177097997930900795541074900685991189247874751080079493785079758904164414605131877597323944326338839069209907838845883718965540462977966931240842059920461322577306395761005813294077203734366812300697973572327565854804873962716942727082956081542510165634466079520413153370492918170671350201790166975374757722256225764716036311042827525749357602256783034240275574919882701935928453620440676195648490547010505628334537085389954743920734938645061654956163888393643559418880006762404817810415960441331681342434997574581234376875914224487041259482777371132695758420547095897054678361166379859225901408478097967478579041173623070198916724074356032346306824462985691153984085512321331374671830172004464871793932033032385226173566830605712082219136070188497568176015038338643722821065603913147382149460114914024417923053797128079443268431443989420642137786735715165632696710461631908992408122731312620716119832498981391039108152468971320122472270671212933220468479545836433367875090862396809474636005376565812423940254029958017246452045932439450409004518641193946325670303901931455656992788526911100317098332505929996030277139038997236228997243911450478668506619081226591018973113303519253575338856375212270821118279257013660113534184719895811696189189207954901330943960276593556847575040382119205692509226395800884192511218329718858270071197960179664605113925567209898249070410192086687860076014415445962665615796517953336400514732642903629484071409317336598143798820634843732852840387404719456435736644934503710879887699907433286387024099173274585808821989785132538497960302903018777538160828722989117418994999297275968667001780475678629483086732218916460088643739287380686715577964708848450990955103414425952698326091098256408662395949446072997735801242566382703432658426680675071724005546809963842818741682794536279111888111720107503951281128485864612870189505554417964651878462524128022495221286439048137995245558997536457797356858836011850582555371148920534111582053518480469131068088297462193247703849771525624518739795441379824074182246967210048228188733272065756303844792513574814596319261587266927421827320908854500721588038419443912428693139153962603470706667239332093345611881100160623322071811268572443772770725987836485047953035205144313980527780814256442103003025181121792032281965402534043995621515471430040707635108888897550691108725222970444113277673062497405980948798824477549162854979807207201502530220698819497876239594706599660763233424315633445962147632690105791890755256562823143089069892168830504209496061092884200689381997662144126206889767800142618143546246929392172833630340239591296140987283696549337188832717507894414040927697231978472180020913640321534897814154982836324453038518559843894019256318317002847430697747832205274396047564981691584266286274959545958647681231852616546763788996023160299576879273879092237320790507426469441562286687454851856975557727134479886086089428996423336777002546121282638066031523652889178422021389970618455311194076421059503462718141220512593748979233460956419558981120390205780803103230047596501550396314840308462218693671242080542371291821162312429579090431225604755833334541043682941274551894665031389631922915558127255598940848410178059779005218534036412655986266258399111095939721549694499074018311631500192619833214672598752115984798022739233680522429577291020846740710375839255512241932028961384998304513247372538067069769865985288823718379115800616508623069388040065246294182406316763476797871139450386075398005479422039225807267346077722713867092726525662595399805066959217415053739199049049620856152860419350138639557855270712947023484798259371379045965505855093281259256788689636918485735019529988046027729832601653292157069596226705773656531612541891858205470658193247123293243061808716758882288086520157110208129293894320022753572909421114958078612770257823033884425809271256573976145422574099484211268497872507199926256391401429402463233116738782353944325490662098371593882687802938361864705079931599900262867956256564379268640702629777431427374444335320691417668843640603181275615187618476616629509397854441206064457726008298872217257009046329939576476188067931385585130151058081881444378184857667312601667567549949052402381908606388298617163379991669440718945688451914781216515520891123761398312668138624945814876011465427124612523049919387384156427374913710536309652774738705436905552316504264733797462279935080152623544225274289011530775416703106342586713763049912767213667587816814619223233934747088713297784368989592566862232483110976415992083008472167045328539035660943283157944588092162071037115199556845194512145159064542555064940237186672926556401868587826249621338751151691721136865845583240685788035975702437412680247772094583293104725383614689010119864740267408474195421288172096465982397297107983233105906436876905469456899598477072025751809229064458999533766151248945892589871351989043580661803391910039926336990686095133728441003525681729648287093143446751970447172578663588945606666049907654439567011793083601489846248846326778079876104879197330629421390571174271959602092239435214138989431398528406714030932569200990083403798807864612626243743933444678128484423361365563938209587676055321637172467045797565378942471028149680193890272942768723861882475834719835427199282803638875683204464859786935851847383526399518105564698167031606286493112634290844173863448909401947418404751891280222768179289072987808288616901023180659341990501343662688352231404818862728176261806275542072891685453849964767589728585838151331460885881943732385656345602822470032865721992638823557313990300951245798050329654827817435770204162552877674534277475189507402326578367971451603795541539504233458606006743331446678308038741795902255782382332548050716910101186197767490662524100883954226880836624710839704458014960945046394842905254417770319785315096395992701552620371509352605462992666991858016761711240104952547515424619710107908667139324990610910401506582793213965156992873267140218161390050988395977559405975360056500797133613407005597906276348625784382283203491996716696041788018296413384614959970553966992800599565175268548409480584912120502688448294166699992321491592668740120430686845656711348055394252819413309653695190280777924399915823268925963993962336511942032718855053211078139859084600508316533459695168408690693689517762506582093599376779674163081976159837484898306776352744783125567005960849797565699857663003388549811615465660756564835464578551937372154678247883953107002798084198330583391253991265724126158388852294384117550770677650265583112199729160026064394487040548615165594922369024508249934489945321823043520449579763758426058604256776502767949988423980179710273883282873639707853545419168784109433993293529711180683463380325079021955658617467751678349123617590534950611808540996091619877522998464990385693759158588175844017496083551005753710974626201978230060100882032973219081073328073090475459450615170898673423802001255833379033683459499116945484885062338143140850102953119988021290166765872828401457682723818387554084248675541830977870445063190841958101290404104632998571247375094368723343985564599576426894817452280664948248906636594528866400575890170496386883299812389900714096497817715358581482095332746793867665217565198438425793128594382042953692561744424086681637513937983523530196935343144732591773372124305263994148970735282057030833943750402056078140322016100047201975352671979629787107141576440715083358559779445673208190155001505026550894781055623885975611658514342210718989178511020946642659498477105316588450727008821768357630436690459438247925482451335619871918407238409077823945796279521121105035359002332008379111968246656307599033874425992197270875478352172844774622386729949312579022343127161661746287138884764127767822294419040397644022188408242299811172167188107513119065634196151895384635005481005628876452608000030060189204466142919967491843135798339739458115312000066936475972529759156271282762083486360043350058178318969511034003730940994657842338752871978401136693275611924316512143977413937842222988027506137529365330110199022748988834130910523677127668467271052648582251470602006296252310179416241009253234237451425113675011869551603597171464701512623195319659509275329687998550242497004821192296844612136811435012664448034702278714495582336427248274859747944262585048295861909959752440782774637841781894617817074677100929185024163061111266288425201938740036195337061983870479439963103700383223461182572304673391656020167918549554326198657887569934002001668324704106198935490088108797497973373266866374684708461891480413775680538911969403318910523281864815136158398787405467198608075789811680226937890058835689612234329449347447914254447386840791731770084283408847607229368014159262164122400339819110779590629775650663396561127123819628880939592638422424584883713855396980678101518072459460600623164188986572416089783620352787818201400607646886192176266835794517662109667045448990813662079475719895596541516431253285830888954431061329391662447069588692993464664712116209984684666864753733167923253306559818645653915168139067094969741146093288876638431174831808564301875628986060396278856680942686063114699772674601045238094402146202640993661209668786953531081066545280620182586736173744416621064674682388206469223762278180807771082316072345523713127255697325417813511952099936605946142921393631910435676164404233340773147914308255572517362193915878343193485531797593910547506297655369511691300242399521444861633384026323931454249566171333593243173237717515996402161028768737384770948245254020497864647605162659487416388630577982353977679106888255493244845976111394396664598078178050325071210578525038394054843883635678332131685846400105811935766892325707358345035110803930381493642598218346061946340530455658596179484031158706274471215314077353393842338586061289713658264145782297630062823903439593845473505116731069347954685556218860259796490651652908009599211187063907013842885905451162506514437961523595213822251917787592478393391839412153822101907403626570613936234698870838801900969787708297556376441157915376841072141421752239188819022513815967129861704606022403071145419653443823313863275149098674334994745282522406390986130986909389728561634619700117645790841977367252176758444639624228435804577255718913020738366550892875240719720892924734819266252553306916906368189771381786366140959411324069506440542593586829082247807606852279449601148951071397324714406021716646832587930955534187889166592230840188085407670963428284594017659702814448708796983115201039487568906082467364356945751944266108163197718366268749644195592953495000735008190484429665273428650348074959298430244649513521777477057965154454322028795767812753136957222666886976722923472327901364033856651394073952455545932558833203190538085299457849958452715437804827370812582535651482997006085123132060472632926871939661090026379167238508292869274938463326270532200127143566275839719137255539845778222225807928962184638158806740748468319742341896964137312078887915961003776807718270647974868667133472209411970220582317436339687400079460718746450625478437503840598283178909866763130237677763731355615464976358544506353917489933011597918997321826191519506069437528855493096867653011086384175426718119152767476742840396144190829193438902202534380099511429232780199258519863944701551446398970113609533219068617379397076630769077616685494332246259204603323331259496914791926496795849559895955764622475404875619802664902860249614730978564924835253200737642590470280741948564002815920225024515534790878825775115493274653578151269563327021518005434033850607485155711179273264727264344670953006656073711555982882419327735894518015224461169125733902550569028578630442442176932223551970701099483654555047905633687511856019752124979748859747301760135187867388495420836548868124280339390357417813835215750296199407256094996673741072468879481844583875664771712845427314043778199506504653699324027659416323313570597807860533252333016916242377104654357917155799823807548843554426899780633958481350292182297131316611532948762254326286601962115177499022696023772422607824394549752848110712771172272821147913777449135148445399591484541815169948729159302865301509682032611854034040232955998028175318232935062746164884569129908224052829638697759971205719136023083231276165735757442039150211678743434349297923229737735177666674187950763175271785423487641849812308177179807371181833662169717884934225267719429904070827996019434157339250003834820524513308136902327339594985662177448689987053554190562462941208677085150900676111852645655972743786258720500429941325951998293693197370039263195391070629038133575843276390054098621229178486040954975659185824415194601507609570770143238989388352409373967323989680554297730338537265322651006544940987621615511468180274912654221686110036612832055699884861326927889524060576357995016688255084136266070707018770723233120102738083596025807761560076793183548584179483531025701180062462768138554337335920646970267670791287872902574979879803999661665165912877946703230130701721420417287087499244358152072842885712534558820116401940950157638559522313731809083218844733157843119020816110407736626546681415839588667969121598811133863781902302349870147389075461857805536911379151901737910549698866074673244370997372338842418824573422278044260323261635956387086740421398125907726829441784479948038687247770331733317059879803820465525409223284240177726380837372699531128560614656051208280913030236066817012823020078227039650063050572246716893532522573841266510907815830335290745232641984441516017941196576179835177513847023837225488778599569674540613751265721153983960817152144513571968389980410459844222686803269083887062311722222246978118079674550838070849789527534436629502924010646635764617091754508271997152657714850785183826811209048695272596880523021129790214279391302496450587377754214977771698255150678364892030065176870406139036511906031654681444213236791367339207373695826688763915212595526141536849191962147194728117506953212464010824137443689977400669167873495575026989624384174863097747028785059872771347992295369567571139858551060408434486028352775328021217746946281698096688467593613654767725708842329726893197023075395505494309850032607488610771515610550061829741574083332589068233611850344437825369868695907882653917047398408008975785626941709998467713506647860941628557446085282425715518204165433175854393786591366221155624191755568693527987848800608377363214829099339678704004691744647466445191521265184247370657683430952538339738372092311415400610561279256436062526002416515207117271965657821506576292230727938056253360490970418230576296657277424261124107325681158151210773622249409278260943906286064298573285481025444208143056500764475008622551393164510320409056026547955883803081153426994562838003756296457891900719057723811697189090064606958631463456431397108212767629067688092654863879365122868272384302266445746100490100257787724683666986017391206897879408409812184026966775953658983992982356427056033967272861665184633009941132823938325097145893097106001773968799930095720798964653836607688306028872152670600898003073917605766319912445816015765826717451475488934503278387703816940819287448152243156334382977971743695856766961472875742980438855297042358881393278916109630141775907259801537838736188813062708825354743922676762431872967259220633206864371394997284340015737557365199120928759442941946527230635089303526528235941598888127793896528054742601870441449573966823146894727664311438396072544115280784518832928027876237291582618493895276415606169844472081114524477957614131197373489897379207284948328742873478706815899372522081275781618404467372969937956186719659438842748455032548139103351955389903457232927146982233033781680718649520541143651643203129404180922997255862802826216224403684060037905572889260622067461858333087994363695530680252791444957528330728287889596681829231125798453910375999313900160273853192750449122658139556287933305172879469562890009767756156438211005007017724020439112662108163799660271191354745449947842841160068729821193358056485082948254900033676136652858539645393343768382081260895801771983654112969301728424348160209981464793121880571373319926926647076622596514459456172613096626566526240508502752580778229555528795155520298708091217005372181809587182639288308389264928572063157978524606410565941901008362054624859139925995844806380434619551637171128614362645360306269574986306217638784899190122817961576580507538380899139120704328556681709619096658440098053763350366413976856924163056582439584858999549101533227281077550207596847298546748482003927330523315262365809693113810420375399597066687028865482309703967355706676593326851242545613303256233371537648194715927449914687881355285322326725546972668991020055379587100937639422196922236308262715629857487844474514660633404666797812365030019809132825731949355499375702825662720096491185504695778146464624929816387541445647673782971504126480254012945943515268341641836046136454365170779612387682678890869969874561968615700475726837056388036698909293163212890466548922074688778814027995598194856810534347196739058981197785951849426362373072219068838636620914310675059645385729717880875574714029405526450793808020547887270695070504108606309505888684010173294700311626680303393428562266028142794455976045194726269561518723509987755140220714973876946790015665704348074668652603137292017654905000077788098873456507799358363648327023965278508728246093489716955361619067979295205019595814689671094486507412644564590593070542582425216379761651981528265472795143113009843795558505614496591274606255550922337704901991467731901870858779359618734680697764786175479201506499449358525587343553609516188469335272801978626029578977349326651961701779647833198227037193098170858136517745732739055734121278625405451421809648387753997788488314947450720865028522297652787476675581016669004786373927653992736954104406005974218176472719359362702087303153478811676268027448433361465952180126050849905509812398305359085687884982237275413585583308798531402704545434038630702295078484590960010157622521303919098212665549024510326110250402836223935865240265873104692443454352495569907956339613386397322974718805276839021077637443977557685152432567574053119235322181089078499660346305268528289224487526418833873625698143585965208067748068606707651946479375480094559133707441875424245395808110666057468350152209029611756967350620712177801693323134332556429849541114966536249562443268907664178908058354815863760023631715720397768637523229926157190889359404883649850360805294680933253347703350280964043262133960398014067100639830129694000652151174566932859160990226148897042685618932891243968052132693488171706851026359950997005469573889565294368789491858849251882459617502469269274435584172080707670127035087375515601931269465446165440010648083952193461253597429665868417567185318264120316491861096088728555574751518539777398149308244395193663241377617745401006386518697993266113105306625523106316202919210182120024093444925255481309800202833220192680659366070012690928604293922663402625605747242304788335673004214128024458933691308416312697145354540997031719733472041675456353838420165680400292172355463580793805809744454362150864068636732668501194666920738854839755976820258140156904388852429257088789014815710286227281790275227807673735849800093250694078577574648780393115725272533713933368827966804268779903754517116217807987674360579332139528479852673114455050019768015271146562868776940682694090157035543989866864079880158263739314321845671662332466699905662207859311563739778216979140182135807069812346546028536397798579447954106315099521995385055630156000578027086407497812754547737239276779085715154721581646043564409029418153030071782233802198699362236973453413555231947678270522562916564826095508815305398406206899148415044847589303254576039865349382899048154489961362091271559437397733346297658607142418701496228303953077144539914150600804416768610945827548073021606047718353515501848349896145487562850611336557977933405406674027671172180977616879990015882251337917181014441261940330822114414329972457363472192007258215527106428884452246977281236871767819309087784137687925504753156054031907273125765110439921988067742128499716890845918321117418037832462913958613213039030343973255779253073262639059038005115304825707813195338918611629083527171125964634238895324634902411172452106510637340933243660151025314415289130990712078350482445413043030962792268826996157357288233016723803378328826066783420330720318652721050870941079567766438002669838495827153021894463741414131273595460853590360293130676501555103224117941038793467046602130270490521186235363127053886330670230606584253012808677613317067717309222395139486362061142416948264270137500417787952650222717868260066751937163658340850331698316867586772269565762140983500437867461289962511443940462228180915890956300637545696028914841843532494861544701101744670104990613968327641178331969108502600120378132784414693860665573894807947457443876644926555587090321844597981364709889167097654784007196156408413988008957218079006603983248430612347259046233238800076016853084121493968187033944980369865959557281842934259371938471985879075696433955990769903229818644237720175155927609779298634518629545180425771611098485644902314735779665798410517576058359094814070514028015710700285845044967377315978874820066208632146050662890740951540835553807811186461296580549965154231365039438767895445841658926335622074738608642732395409631761138884662582138993944704616055678232901329229346799567299503862733994518592649015238481174650974206484945045921870923976512078427699262955179944184676534655524489946389903331275388784649375455100724834137950480236711302655127556550396381044987526809792926782080736968607924425161426954947509101195131627611677944039552957507177197817370633341728525028536883844211220069877862172854950390465474166621335781318625395714024582285261092678746250057613526515280523869661079725283611067079153641614528408286047019607695118239327635601733357573418946078586538059533903213534082770372299570621113216767839565138954411827477363538590237243370545094984513727400604486676892894574027052965031580952855101154970733419485744817675889693762455857117519836326783531874907810135386729077291358835817416364178970491816303722522827041158596918078685668877777324588373674265877623911257985268949511734758678133091052955713871310337468168325851482763095835482145804331591109492663476595903896186039709423279155220979431170905523125616292493527875141837318426379142538765002861951247563675443702641245030912300171488713774350048445604076106872283210971595972163804541989168155480800775858778884878079749011985970897913490818824917186491258010611599371364540344227370736848353159247025313355883972421293299866860349051823310258915425562124429158206853352872355790334151030220636627499039747297162154968649180346170010658739707165833237749811750958463802695221243545158773955470552129864319725071583544550548908771371935761731997047725646166657213137322555377669236593954187203992043578565660674040489895691877701677148415321084022402098680308637319550538771441708790573179263317710760347568458511126757203124179047687375189867830420230592408676131551283169060182247333617332966799517546082479815295803665004913256770869257793464700712392474948705397098210409765371805753098369043246184489534183191713351870497577200855883693576058442674334650968199266149157908443487872724069815346699457949786936880017674300270398419551202563639153869972062332622093923811846024358947353957621904985894264719771789289050255084150349447217602606329154146667950630564567128298879061520091582516051797621950443698063877997870275670506876015948978554547353198309343247129473050918749629803643490633186796624333553160022227753578557486278545788832148599663992844826833232271112907675374698129482904831121679395552870759680712157050592998878436861486047665083166706203920039624373976304520863257367172988217140981481044702258260017098779375465308350580348998958498812257762401701675817089189551663984463880428055987182665764341403144814580698128065868982600889894603721572914028935185877420758816307543304581982996379716066938051133675865146610365837518586380512352977565836479936576853962985043184911478014163037576539813215137028018974312014293174670332621357199286896214874110285086251972684929668533367317803690479423203366455744886448194196732827870674770108148420680598432402774794695105512788072458521678126355430188198602518166005979020429415370526502429586454559833403005063998401628424277305283172160643656161102008325157617020396968064008147502943565738599451751598925191167960368547874679310188440946527631296047828162761123331109680139606738243548037528796981267741260265658548184339348801653356348651418507497583118489973265655145273736938614894668742611871640570515155679458956274449836061532320360241802805691155358619237904133803349093207322420590779613130884973407633785853826200954070265734276246520272278010826459529616488781439640976166767466102253584462965562572992021357231540411914178121357783302286391807672326716331592923096030584499149554472619641799307834926907194249746710262869550235862252345734295164665079789103852439230095300474060459480722886631157262202218967772539629417781876744045277348824170124569286172353270828345021697128961032013649056549724043477625618907716080479875324207804795651215576602977047975209917727067618449830998767995364674883172670706629117040296245654628040792435227513219289570365061380499294811227905156113533960072405993855908970538873381039402176964560679515528067590718271150183892695176953928632133778397935296397575781143723560831221528330650537159887033385607642699221318141205762606483662091562862920904346349440291587088280803879105105729000298196256017508866785305087946840678535864722599056978474682312377342303243319350050376068054603148596449066575607637122824628007882394226286108894315630183577858192747424726083235284477464619405154126811133616050249483570146098717802739109153197288306641428831733228929597825949331864390816529949501181493843043559404295723429479915964561001388437210576817569035112449315987701824455050865813760045045151068966651534484264103378345647034730247327219743085310341550265120106314967971001188530046655712795104938020105161222796042128525531743619744251691964222237919408088457469642317083270437042728332035805396574236070031430281963937938186409319281273054032007900717310716574940020242318698929850042287930579255050473320211841346289801285386754134581752389565371886806325740065167758096721835387984132358856561708956904999906474292623847961898435370508053003175018902261860517718486178361263060803564312540373700327279570477923716070858816386841775105003408693649744700532814392193531435076103192739618157652803344507566891089329309265341780969993930147552071413638513472441317238477278113502599432776698923430790587663430993494330848945661181943689159456036182054305332814247966618234197298915022512418672656564421845300451313641459098298492617717112450584049247024080361910507570118526816820932633493762801468600997626552883580129138782118336242914536102852864514106523772271291856107475671141419080866604231553138001039465397603045524340360245577880742102778428878231316371146517491069584781918728290876608521153669777857550864140893325535610629561730167053256008843984184800578310021232254920241813918900442304863459264818423287582779063329268265613114724097560649574157188467286096366171818468671126154785539272279222180347722744698873740543668556366904194847277057945961485101624931436701693126474105763941463580833402629240148616155612080081627959149212066664324575387988474239326367728387625443670022189399415007735520263420612766484671163262587554005115220597291098581227135740945380685436247594302467971540448655885350969194078193617701225513318618483846596629130031306721992825019113730892215287726237425102143112864053295757882369794349538337400367802227196269685914996797417187568882397815183482635919919388717492128457138119509184929201538344953607296084121598533083699539426360861766079671190760788791791221894493915320855091799623687633480311344947652361700177730320493568802348235355567241027922432066687958105784607344524542076498443488181334228511129857872230064995686365327505748446140261811640352866258441889705641104907166509467045709258372067956519813800660170472359157035233293414126207121392353652093369578483711936174510793582621672616938691540779602283042498737954794229772040445193189044587782235297978534144202593411233186487191949428647885114602749871110301882181106853865665594403092198590768145443438944435443023213386683580184264429732865656593840407338090012780288399447419542079716611430854651761018240601542796449426955840976534093429940891010199365379618014469934368097521434838841187350110727931131588090221033504362489510368795478945614133888908040721726359384683715497425526670299003039981240133323416337346138285521290402095349490694934604450399910757558343812039872350709680637450914793883379803020721325901992102199442019917097053536735919422576133341000926990521932040983097916463674611337227612213716039387139733801545196579662306906691273916812069523855088963789556444113053779696633523482968750639079116555318438125580141290326928722367608408095710500188566480424279268597708143403411528098005583597654429031121986221455852018822308462274831885671351743277622822802099861067776260563284860012444484053211661277924937260415436090283749316611631766578204131319660890778097327089194108559630170966280458482124639828815126759994788994095375904621156777287853936494186729483061225358621849882824263461318525507124823071253417759586040881602364645641419567872719588159752640528748102376992870325187297318541749590772140426776487640751181162754026545003630481385317198497788602334341866898225175521421987366610976543946299419700545938367838213404067479883104234593347262591254715210974002479859901678906094572521788034172098238377315206275753983587125055816135076846723690108237503711210357255232991317345926843535534733883356595578095435386792638514802034751434164648076394458872153643208754216935026367155879028916822961845881841406632634467510857286540215057084134565534699808119126874576915741768398167470025594713770684104175301107317825107145540172483784375598585485479371178838600620821814155255679091810797999123422336540081419111709969661484879378963931881320286033277018143968917514261339021965038340134260322366207773788629712116966748590815715454636128968765412182870074890611968780823925903057223668329730601688230580215104133210060592259578477535222646804565088344220567303429183743086346082562828410705628521831074820095202653131457083547425255234445962934175590112971470368847045654787917736389387845346814578631565494676062606764823961437480633705379856462778745141462299140879231362490074775942740048205040014332113011423908034814461342121233538451362560350615549468198273858625112357177213175233948594782201834581474810926446221883879735742836261006665886665003348160887148365033075237310026847300758355694598009442793639598214204103123929653248823076597982061887654994701168722946437273974600372059264236512644985368165394664610845282988901967806830912439394344182995560849005566172068267312232976896669391151825399275427893178406619946097081314202727890470040658185396757272138716371115927930256416201379903454497851120519689533712455382610774754522279485952921759932643865271023611144036891101928199088117795832605307208609234751208964706570694503359159205065442725773750387136891145769914908568625687062519335498236424197023589967405130742421096177826471236101905779052388111849463629300572214197446323049509914303412864865687771987616865501895609814177616777003918266458262712780578979268045826378524009277024757518862265718922914403280218410872841058079236232921092386925115834038282430416846605187351674986833830820416468650576488013564852733971272949879563939014894212973135764645447825974617443401024656663269461213918763954447935760850196933188244933697907789549695902418886245311126064643467944581246948177167624008710505505360844380080713640707890235106542815450895650381321763861517380079362419870362693177062852988813885047162262290751337664788065682406647641320699034775967140033601419700726228038497851848702774562999388292497243341002282792475711178886686516952633791884911674920254872350889977194024432486507012500314720756543247934346308611871440562279733189286460036656550976940974798084526637183601294445521846727128232024941169538704471779119359632338072776299656166798719447892386144722912003986903489147040346836460409855951406004608223104511599373779740906639567389617658100228834889987871954580645295919282674193409340036596642507726731164918022924138274467981039026802497205520584702801962271609527331662674470720957505580138595346428240655569194518615568485446080461592928847745725036330995291920583823151098709005892216944271970832636809143120945074903212069556706248135751104706416584867243332538060173154327001126942499455721296526087311537669084099886179784551208255826802637439736513101829110176426810447491875955295453948880604228500117443642063608377729622542055997137300122242662073649471582915446476984466664353688421527513768642816319485223766332942304298913731035098820367413405722022118955696017337692443793809729712421026401815152000335143975011554121486167411774314825052662930224339912141598335142037259394911595993088497960733516495231360012190155267613712169976973639623980169505764810129138586802378412467286173967835471375443092358924855979167992147404462596107727914632404521958823737423859902515558728018643643521239471719862098140473121197057743690911990670993921044867225867595395150979999717537241895044585003047464548533515139220472869377484884206880996718239102457095923542566951647405470553629033377862681096522525112736745668413162654689769830985716819930461989879815501278473680656412853328966748888464943335531698270074526131267051732703367901719532593712303023062406038897398632054499277707588407862727847265320491614307670055617099219951694318565570471406509680814535874674405912149660275454365635770985019530198296371769891253031522821422283375365537712307458571548728917210394432829614172779620774308354007539220547205557027974087453280535327603771469011682050931685892680006899761670307669783980102812169142266520515078144995659406731681656553370611739939002811430307821256256660724037910821623598119271344483571437261925288032891335187081533098730853709661595836556044220679587672718560514508736040693001929898392220119586827994417450632414332164236564197404554602280645152468549886861454279155997830697383416498299672209310985798958195991592741639025805979529656669792730685306702561790547552022883020055980348898254961429181468315568815691952669665625737299513987447701908266333192008684650050349556001586585685269898352847099692322442643404390260797323150112800049252748901508286637489356100024231238488486615080494692147156550521439719354644594657081710829801176566770643441103904483585305636994915589681492981607098633471652859192014419738496315302282283864361731559714407132710438234379996334240509314641952460828313456394518205650823639295323767128992438796197486049174336502456092165166992964891076490289835681770244816382939425780702194328892196087526158311187443888255207892097296134329846191481123820822959269064085041751350171450432958211670000598458815693411137236374744492362945229487856060112609094753976825984444714058825466942725097882824615806647256909059865177421817232133719727051143455519205758832498084484395807344100032911658937977968534862025763036749283202507728312837275461201651300280922202264719916272916624952465401559982151145062082407237144795964966731944359753407006309987824107965386486271493917521302748858060130550026903066005496031097263520894189711974724257680520402675123678737310862774699089687798219306761518708697125706644448727894734073760066929142421922173242095317232798522963961027008964568655883105646805754290941428345817561090577248987078896015571528563521451772503917718092495649535383722847408512110278633983145492683569735025731947004507650328514694062802883546273141042790347213289783213144815910451101943696728418640548607781101357388966459345356938627193047338549986184220691616901110140655240057935917735136512748520330977793072801246499159339001145945661386101316947498289772025776549417705333782908605480702483907485797485011119516194718961674204467379328493042046860745925846301650220042216318862372177093520306772602383171326573969215339745711706899789856482019592771627897808429885019169275093703106792629110172616372043363325312992903470530881504953958879906034169879853923802728353172756215466030678322958066628963078929470201249193834480814485186547508541003409745434960952035830818530213288922508879859356135634811883832965720988598510340233595396275295966206169702189502539731412152557343027054738924143445738499758424386683421632407837760742224388889914078011720244147207433900037437532887176860314956867781751021203934470065118740205992970203954284607981190246265555569909569735855458099495191937167116468604557729698229931243078754509441677294417838333387613851266805795371983315677575187460438143898569460726921106531634503954554529665764278118335721101077027128016874826360206442136899154251554767299547537206486576574216302915736078856231957607875965353114023599687814173720176217078591233503558404181057959521198899870298397150725291165795662178860384136788678934922462352744542456589704991636710650817793325029190492579583302668124657521201379427952825624573221863466493412558743744610507108452405828806496653474125912713677296963601174530473917563485581147395345336453722812261245507757676650711597764833327970931877465664075077589690073780826174272582385451588013789307325480824454648281180856511893769052485295302329427497388370228121943840675975819583006313607375180584208190556484988025827000826510093735196283693097643755033027505683088077674850882227238136078040434670640581881927961847512136089805068364372153564409381012620307078712794159066457855698112637469842718437860441012617470429348793391118252759872329022737409930474570331857065117538202376584525049329241900196688904603957929033233291991608468285016958290829643706911815176592512367997789823974279207745510606526371849031240804477638618626375764255941941615206713588464268773545596886355150903608651209995209015718363725624791191070544403777288221980523755643737200614698260728355568788164115500118478201502434219947549063298790863587950907709539368328932923810395528273969943370656377466793492619159893333723830131536584158625622819543239709342332863012801097624988641905666253923097461884501279821214360025388090350930512295069552288629348221038070746266067092063052958924176531142122035226189892913679115604667670859693457101416823125507715514146038498949789880669290182108686486353820636441055554893792718056406046228234156443984933558747313959189053707959583033024594266092280186100025937726714978551689515292945935868156729167507840494618914200442635899871461448192361274636190490529368964044878821159194708060204778379095874852809222000232356189390910977834198261174133874468501908174100174338807060128400276342637951965353347728761122691241228302829354097255113013988349773968549199412250654605994533997105156125355857736157041099837820347400783312663233483944122383782670861151804883249893646972657163347078452341869827277442550861279850371581726060677957366700421050045071994321560214154690707364110845197542168875978634136721235388655946452636050800406941779080312056772113152941114085669900506612762454199305618631726720139374349977295360331922213084202892023189356348695576110302699684378346495809634420114196316726688635529273404388151405963221640699427133305232259593969409250540205457385478956583535762356765944289442170164088415246157940021844962027288118656734697729106852674869696504167987911982882294556057411705994759596705401582749431754188579018004842930644380958347116403212699425754232656240235999276937149723779311165174102975648489984131813270875087064258785256862966719289827750648248240332408557457828595585708344717807410964979728317063963307721626716275564705542153596818752666454319347310704891335506281409143257000133440910988469382801889804281241646781397116083956643481980738249760026417683006938918065572920750669997556534080287214062914705939083017706853868992065027135880542583917937153010523931970499745801801386743184197160024427654263838480882279197908660875200166371133415319925021428264492775443752490832502910026349931586712757944549637723385465370095460402849226894448545189089329225115579624455471795882576470611442708172154842635988013832315765085324056244740566656134594816466010802966056162537703126130526927285537098008465361939230290087217049274756769099805006835450730706619242191670647532194106794124383533549322582186315900632232291288916398487623858937644068563655519033183513656831886051792318447009166687634813182938355603020573717122533554796927889208554234578566785634601460050656833256541003367141233854071417822327656232922741481715709952464077672317177920018487111909366162985901670980496419748267209109057634587058614996154395761132794708379776036050563106840220286192578856304228736526878986651966280842183424544147932866751625869519563929527175230312227585329016475555927040796675478565083477384709557810914358020950286318422210637758749876942937677906889652041152238500357585598033523917850214872242835913276606713298293001804900229515948418919088197571217631158134629468865110666081152472887677117571028234026540012764684343383033795741578241641814109394342258774476214568187230831803291559483974854961513905647180125811722886311288542324145207468712840118732288396171758981617081535062954262416610634520551170950086544792675200918696248984910210725259394127511987254161772136823245160199187283491351632030427198524092995746281756012265710714699240617153547339342511717087904673780399331547443679952051387463001126336107097295495551499823414722856761147410036890694427336787152604522123919074596587191805896359656245405508124314124306981828060680271545179930470813367440927686024373581065634053982239102570068160498235534026036279706949818932935025967524617404631340657565852714785665164610923448519836187307567733442115161714524832127287881573405586952171891437278223700725746466200069854986204867026131050952787829156503221792515989162469122163782143370160020933195504368739764128856843750175806844057867097514276036866788005668933685045041776697408505398472843452050972647048171174173074598041651502448929320958436801368760644922601647615177915042455447285688078011999646702342151101846258376248711030908253180583824495632972438290187545603799601059225167997520492316284818301853670274451764186183967102712179987374402202901631038714055498401073206336581867394769362767262343586536934014539119023725637518492600502753872282966573598749125426263987175269638232744545022856695421253816590886358804141875524257218266172516452409785003791496489469115979726816204482374528983134360848535007120593559453943579015931757251380350496470642462374974243341744549955062192269211492552764340029689995330212778342271064482154116131078741081149472269154736740275898817708501537208539640020727130327959436500885312694934718857529944018583166895585843907597687321951264079882471077343542559555348426164239451257379179375644841603421686432357271896455077446413662515312218115981824299649391928772703764705285362415440313777004182306116938206368519872888134016742901495088486342088955063706766251745186584125193699406623998058168606567088921727405906161399070195900987344666092620301856200224867640996187328840790075415008468614308637347131350495422689901412594878716539185771605388088387452431990704034082168214649055203465464902808801654336175142644276405884369179560450249347330585367818115115395766425141816243643065448296260993398168521606664246533176858973863024469933204661953757227153795739932440462179040029352438491535347965089272162152668895654831216773958928416257956036865859149581730450268414723241883477444131032301796668266305833569230892537692787157669489051459463120850359642878633188773400616043583116709416529000888602919898099513426342851044936246320002168390061653398752548134393809931163455145559619788002920532880093853417059870673616310859872837020012532359640227446379265990666481454749543242006719310700943566801844563906140863958826042291439465560082957344187574367350226705435123699504603399064524898382604038159676928457643600370587989981442745868597190852390313629654239417904851445809864904260336268841194962363542927488913639486410717861032020415162865544334310724543618967721581406538217826760372026441834129313867467938436479199499498661366017800046641815494400367375046320972402512155408672275185449975519326315967751466360365527151475530949227021940299408422876496103063060746268601342410733005633190074865683787038538676634694791739801067599416034726232697946077609096225241552796968801158528635828136280817309070120979973721223673654394290389259227098511809152608207272273388413549372460612998158391805660655870756088391767570088692413228570736218025582528582012884848897471712137002337743251065347663383846978265102267474510017423615189296519795793433177377575372280597484019514056093128680426969700314948043714446314927253455059283439680473208948197638097896650089713090378211805734230047724547823806103928559150162093713149409107501227411688837427345481597965543724165419936720970193777586397420559151279365430412673094119206207674805124462698470311314281814126029738135986776977525816326583142528242836471963231173815881879423749823582038505455623433006408261683998638010080981341870278887136001988422600668930524605015887119209905849018622777486246408087370068742473147321987425639465550696259679851294753295489051351160095685264963507280777534115773836061606734389265510806356608606714262532837755030379570061278425151433440917847994020124636391832129475845922965943468450815514626893073291059612651271697242186490704978014446802817469334504874586367770966674066389007816449539396510378855430402275363515334434539201522877741343475647708033458308219580184015525245742209803166882089501384226668473363194557788891527718552464043391023811287704672071994627288904397850720662469393259633064102136966904749700587196633649985749128425538443405603351277945859849691216485831947533427270773853484196860127193199740236417420822222405321473697652714748290172500202456807814606964904633312159448510218930294574270617849297037600318428189490831550384946284478908550551959725378229894969883906063229240180912968353580740100399780672959539984790601309328232505077607095360291773861077053397236669945391091438381089064276377696894589629689523832917354607182143483900041560134153463350152242085434804047420493441321375770218897154931345346745524659246075858209771708456159177426923719362857617146880890387374066079013185526769686937632631925820359827739668273622350474248790065699606545173471157689384926577325000532169177364459880472587265717230214241572780087529656463309747770912793345750656198328055496973516418990277810301515163321575809037978887071506554300768283960330701884255789448926687389338087298988677222804887574597366494050360572879680085234609798839837376235786183492767712167254908528443225205503052515792671756907018209356775629751405902539937423108485358865575368164872908712114432246296000935951284780736440689771291066744114258406187181944151250118941188833313304775841249263162569096262635588379453250076748537625787505932527650049722707969537364489574844373826719956930923682775025166135083622116530632755493966948920837161464085493203876311900791113162422359148482160972608727787383339036063664227809602699602835437347834182991255778602787291244967284731714434732533712100815250843037120902198004917257623463615932743725060125920633118474003960777983289020381658191024610557423962588214473718948475043190604439713416660249387574431603757515301412479011605761167307382285212908515400570311052163239387703700522045377507777254486764482638091790289419723071267803728965624254210038578531195351749619034852985269129061095126463265202937956681394566573559334313501074759409649979481260593070046198827206934294602692234271163773139090023562770827325766205959380833755996926555246454805497396776991122621213368624902355451085580040505081492661058576802988573253428709064206342823025669625709093548282389865547899501740813754059187067095193310758072959540740733658390251985621380121993062912555355461751978133257882452247866236337375599154307482268580296165762425571255911218883152847807314329900317113662369436462792013192715679105040198752178080980394810061065932767872661636873990794743579713778387089031446973731339381980567341064865143272670982358116326881421791087725449733852324983336397622218631717359750730438053844058433013156154817412604182423518267075235047219680616151260013378852822536879728382910573812093168209669889177438001966934215569403403345000533913044280675803725615129993698607595150028203221835676221653584496884173952814023773815519332581747672024215100876434071876789982908189183768877574603019675549955568282524620040790443190491909927554851089889466200283137286476993348576864005279817494524291269909969993626292190545130967821514982459630341531142351962428758626756680263269781437836794545161615354827582213046504707290667978745007342649603660070289410233189828067439743805891006914134072868040441772145672755098470664806791974138697269271075219708553372578473353519094819299427505638264030745438853409671117093501900953271092446512027543067516064580670840846205456495931025290486508613118795103069236037044165198987365801085579823501862109573866986844399736098217550194404002282355942903221282820571444977975829403234519544678880847578399568594422304422957624163244778003545255701944249222610562636109306068650352233416902361748605677406018240529866484327129926627693610428618095161830629779989122772376757969577080474438387004337659106069146406466239389052557454852948071984973197928232443043791933029787112147704697504361007630498331054495018380249737390118317771538429367023270460908212242674484632496720690907093892723806728773256590200804680567431296337159320778960646984611744814706839932429352840285771629364667011952704585155112943636994081959675402349154320324279713186891127037239397473892538736881874046093460079803957655128092006343950867241669096760720457833386617903176638316680724408982102745367665691805980959365857501912268576233966124902096891455131856834007185010950989090361370810975888416994787812363796327647208058171595418344236716175529550290702678890542440649126355332821513780627102096208531985232823924168737048181420142620136109832019779468850842670542488845343271993107888366323220937814833685376418080101436387948162127751647766500958740130088896956586893959071696187444274800234484363714885768838471635259427171716533248734017929957778136320156811182614931459926414965858081226473690020866495834479133537275400935995492897223156798984180293869804937738833584718253010940670704619252957630805603400097361754348938232101976171744722421556098027993358827123184672449603561033638322365269156961798345328088263857182289754663604140542776001368850940444209039319593049181612628698337900684848010217272058116383925532934384684683304683766383551997971258874308678003826942795323208246133731784554318972722589717613676702183791986792623659276626221017307519632601890933847833619138496106515697302633542456162401186815882606383392532025753005318498153929616551038523592251519676934335620648933534208575699938744131511103043549479770678903482731317283335574210819792591088723743448381004003354369695070036357291306138608568555069622836354746441787764289242226885045659963753129102817950359879331241192301940548135448972059134752388634284105935209147115562028751244215700032228543260528218138134021664739856054998123151260894933526522914372583499510162020076200694383504645567923953028532563963645726113570567984014796123153843659348267063563990781798732424080278567520444972677161329467061048665804739656733341340027107661714133228585626283361601673788894846463852981936572845478143690421101056979652937012574095301275352703728451944164003733344892303315653037274442793697632409116218610177053934697930612587930146064617317904455658223511143276629526132716146814581514487617903439798941212423887654290761438382455130090984970320890249540475049402362181943563388431132627127544513284469031486609414573682236530573132605318352309524085383449748428369112497076084762949345144276940843398791135841266976479884560243872163402001958507589665364022586108148565246612068744576499165395129311914076641537607692179557442492115031382799140910181297928166015195720386050575295971035286651633720828364702934158871558232012225301274675186433573128939244449816659812356540394954061336517164191196077295344754904847920740428956229352697654579280810717738107444527525328579188184544418386018484260176162294574345061045425760669292875477963335140690697712563549644921838600890862303453588163130348961312876125193245354506094099077981435311908776214417950943231897969768049778037506658437467359007180479951143912216813458600439715568678186190909885170150606145172484591414311829178296582541439574974186073910566458226769211446141477447064896109582889271955966872579431294000069767297641849466246629982188334561367549564951523501376098083117191301197708494545672571462555273520290617075278519825722757918630142648841168536160563303134789415407448573859469698993810530851155189618516575832091007529692338671339729738758655274208465829225135472166344572012547109097990258570821854669361318756730055144141086663586042858198462438546884972212920015038535173871729084780359809786732613362913683255904513664623466609260942888324897265162427828002415959847679957923429044062295145140493363245880487144816090821560573621289850382171165985595067668811356049787816062901443107722622926698984494078271301536047910859170376880949743858037052383988818859438391078923143174984400871846986233046164685507095110895364175245084895656882387073215354872280508881617792981313838479667290355892790159341274741732639784203198980261014003899201493992155544201541695623829688936837467364328961173371281342376144092779294250064855754149030318851859869580576624343771503138067990333794986923747875242512764610132813579878024954272887610461118637122994837312666960790073789653221531633291144434546680841485901050069816579969320081379215322680570543808741042438519511981770908057422822695257797377635708969499340811897824197602740385166069746916553696243818828110318055580055160032449039703543917603461015493977989096735922029973116545257496949998978269084930299292821302340431979583727658463257380151338585020285077891148514511141925008680162710756659178297317928754877290232635875066348399733352500050365056140843663985873901616621430650683125144125843179742301392372727325487649354438423324395022615985678345451059054485329015936959618718791842172347433333892423657508745795542965851130371802060540198692275691542081425730495439394193742846849199124073952430092404025782870304988319159961005805535590580971126380851077569864149808124626178783114894994359072645930095394141987802247333293312848006987697603905516894352928082223832822128653295695126299876304719366087906557944865741825160985138645446724310411879467262152298545402074981209566259352735074572454267711333189988688852950902796857887838986788009739032080813446611776972884231141920492724804692408366043045364185812012540662785965246428714692977819154581189301557775467632356374733982686242251083138481136493820322064777453766002316139967150202615106765913836039480501687402123429138817378678402476190810252145356651051329031576551247029374645265657727810405826623476066984442081678164175015051149013098224433589297785823791864212496475104841578763195718318178139787254617951578091290300338869960294751318448669197384050074107333419954139471410401580331066599176486433857689693499937736612802088618237324988384030980976217769317716727554451849044681184575412253714746288966646173632883814904952740258267037919145047941158443660108671728168487290785987637584893023174598312222383980146248335875747550915211039486529094463615304184674221190810211716741848849046782153075488766555654748867954040948963906056325629530669613671836862191041142202402150360959223981260244524259464253603150329439568932803528479122037548091771389780900492328883485050016001409419447015643936648710854181546585466812587338526645890238734922475751129617702743075077801400164110660159615018410224944096260709334102268717243297695148373964474826790834245717724690421751002333528586623035308553899930879871999302299980847793078644670584085688201805690348835972503053743995938440037153217708601332635182071156496167080846307943197381819607013857264727908903941890175899009708600467097897672884490065393842326827647739188078892203354500425317065285055083503651359730911710253870211670831727770383947425271829885410661266987763581265537223064546422676071780801119602446047429820586350370427806974756371103160459814298962289135682498351235907500526836550315961403288652481949992583697441238906510151196934289179560244650110603163555470317698066576250018327826612426248907267499246811552856113943604110311048375386485803599985201453655090790374310750442801136148846619508207780504779006482197021036670435648013336528192519517835637404689974813415377575612691412319030159463510744176884504643648614699650420034072100366116707315870075687757964281810999179091648885135719852516358843924521020823255845462318442620327574806762880647969100848513360122044285047668716630273188184963232896809573752564246578683815330699166727346365640100915516937609912910348215057484275718142134643433496878642602501319379477339650569007198308562873242966644495440116303118611541273394554198303018250697512599239990698867510440837334360367878313802604519858490183984101469977284718543064891078203233119327281607962430289215251213499101134117647628962533449963036885230139430746839659504479480810419181588912182310705458464192037134302804300097003910174995314007326378253943406078392667028324104884298117639483116890154475927003801394338588201440673443063538419319421387489701065989202054569430387630829486321755641923264799268268965141965202227686533896874218977223065722759173078371906043953193571546839799118820476419326733082559209316758912085748650150326355638944190570242060120842502196028051398463810802996030810338479408760639038296424819347027226778585727525494106107021851241408262441203814734348836446548819285450215621113521683683025108628568465983473400722853279967681388014903065668766391727830798983297946794709252920951686373196475474873156920016347904006577069186882438540779583182799275046500923111465849264342448594910080481268095282899095249471574093994608284565568820990275475054931907076272738178605221779497716013347034768508022703134893835910422930349096730245930924344229681144696269818562858514991262506035286347181922102129635079403114685895138082985338779263259498906181712784065809494780555527588361015657608505062987957703803997681168422797862960213394936282568932803591921826235481046735467668752341353766576152186394540290941046643494758934194160280760945000191172820551323899372930691893969354772434229028552320205694334127932968750017605087550977822443301614161615171875945859727867381952834216507310807985762876695999306904641135971895108321035809703223008250944182995077293827237114011962440885186019866955753835316468872176158186092092872852773695573781714362859236732072249646564039279660725118893686187644057401700767866391860688622660143920576062094120230867177751569716555022413792968026570718418921912239662127236243252668991126133509469443124782470851374895313413980490035785816061289288561232072675982424525993310041404279840519202638502171811407436935022686847230920009471363797901812440230316708019070188958622367917452836868901137303548468657971450272776633120159903384145757119605210954342479917326338271023434728694733610935902173126211718357498985318127298025738677108193604427608301975156259954474057168487249768411889845569035999267268026316820143015746083603982557954465466841053965715464040822612615166674508099980901899413131740751057909398627461944044399303938508466987060827181721752690636431514627707386521405835610509622013554391675996569557682934786067642575911653685336691395135425569547841993166990052402772921321939764946415118101458373165404259845160157204651463562278985592316792540782240551880832021814538983689735697820492076476288157764600862988033504579501963437354071629015587646686400529508973409705513633967639291886671794385145277822326143836268155612052742591074863414968406797773897114709554147977350123034182557079382268506384166948147424903222581272916049523505814148648618302593355124731642259303614527348586446934720627904125896579213999322777833271659829778648341107300963398176607658717346608578634255666532992473008467140896566071208377502948649079049383393273146862254673661086695425472621305586961250090992005544383915449173774915938032102103955369906658490611203188247547636267598759297140395976969434237632769547147974723249508869983115936869050434452768180528946612232650960349555486421446791973998063115776026810211468836952699418429966279845941705398549384511582080149181921171219171227129008563920662945814775643832584740587139488762231912813973063146517577207612040726943509732432477832210924361029896578485448601235712245889096745714939276802101861645879692529238735604050651055761190508969853206037908154919951982120741161452810392424817563685628953555057439311871360945929791022215302880748033891149634658820845972513361005937467853590090251821450712101064648324288955107665074670911746553491522771342218103560076551126988476830318573267777008382550107748105190482043466636812637413650897680579311086806139514566255170389824648737976447799034733619555531000761301686600550390584596375004864988559700322659381145588002163418227822924404776434518921407740452282417042517163492640707694784236098996048987525092295896573595461438201314259010446157554511283513747882742849995025432709833557995971631095048886785381906620575242626529376162426362910529572964761150278683203788006370464040647565666384915978739484863394128875002517090119489539271492558399414580743832291875877660120806196105864043372112647509478654948049400280161846063477092010719334245614035134222451088365675367601615833424821225519496058997469574490142830593470722120850272879473762360284342618078098081540405341578117026442492556076105668213980472624531675174208832836307985341552714661512887585840992728280810047679534122504581019990216498870673715723439686083739877306465502083426376822704804192781474918502337484226112243070528324183656171688535299405108492657913137400710972368653621210654003503671313182740414071875706395679253920264481839902154212221388778145856211273598397439097674667725103139254473916355547135248815020407326224785895167527621034424025605952190047491774060377170468056733825988082470672353296503160611145879851088789668295460851059660125755720648647855188817763286487224414574509778216792252802032466682150823143234956232469838329009116086566165818261466081264161010321881551086565971586486535282901192207770754047961692952350453606294505766296874639387987722955091298361788914650076116409978135368560166108225339340362229554489242564378546590781667963639265203861996127211214829855725417161293650292519888104283079287534585580270765371546838854107213735521851926765960578080069580267502493263407169101803478603082609052541064360682616484357127465066686890376480150327791522568177696114812873394040743052351522787654763433429852421436152527822929158829719462478258531678127010062358100378756016047258064985274042294957456489428943999093877645363242988549388276838518647207372885795373400097846820494324846717876370554491021689943873971238473348968635258119190896806180801866777156165799173677304368942570265394998235653504139457219749991250791992547681743582865217377131935173446649794486821794553100336854577930494921372343076264944876593276583053605404561403821795992528472414137465534136248016311820127940340505377764364338875006280456428238472639382927180611455114256616213500782144647743733802755627242174282881408946529478525190960143417213030799180602153108406938056122755648881705372338861669727082678287676702826556993891005096663728289185958086317400230180629462928928479184942941351413550934467303107777584859985506392135317713170030444802124661136334242536668833683941190666091300786004120832706538284571747921197268493105728338340621976731981866132220084334154769428979271398131543472990444036587673979620949033145710873743468177556395196205352236830146954509976873528274612141554535443807952059719298838787141580891951531962109189594271706451529037582610617907558580983134702090364199559877334386237684759102734664346964849718943552480248711976195414630611277077309370738519796402069788153641407444925604271461203413798080671526550260082272572765219308319795786478146331660502530318476077449593446229029610980422410363913705165074855116234467778216079679295204763406350086138069891154996561765620155664882544374227865923646421229223712739815832064609393876897251031325897186588009057432413488711986446426759294750502738988872074135815790303582554173776058351405761537183997683722028810813074056614127251814251581673071410951187708198280899222063979118107485427343111714741260439935129704127296427536353104804903054591212004724223387562741101191222432104436273057307552479822438116338885587634840917230107341802893811464351910103191200054946861200180818171123593529447626895285269950092740638860443405915325420848967971072530641405880931501186711347642965931318011168039718702350240846650773280683926850817791801058299961352260896528585816057460072532887528243986137728361171343058578972230113193601261767143101895724849301157376748808100763363941387355654827058972990339849246892058486174639718436288402346714988462701109478475135462143893430587700066564744152221345888172779820698883028682382018148711586073873181987660253329018608594943855755271345470177660454026960207689525726497213346441182104168530350891336979245977839568457309430753176770531449773260961162290676305512906042703466539966700192394744970434664733871526915385506469587130800789519448325836288625549193378010854605438923690197140606603663240969308226879919208299027963801637147935190548818681359629772791536062945915866568131025006236573892674472656098210642951650728911150232312912846324122658981635764947890561758296475747115973909112989303838210176950630373525099953537396747835354045594845031405352570154495752542139698498822816541423609374683510624778340167996521110791953054041635759144152352534337855439036927877599394479359533114564887569466880567241822088616784048638053441809576370603491929861781151088396415115241885986871548127383891100882382103080540363369104471529458831040275782088268627790648793180546085681572265706880030233544306856485676407871623303458494141372209055279317261365363912272517187094961086719599787702568872266961974503527610264826716827520312787714508665032082973217775481508288065255071093074547144951783399795711657177779453833417257655034599504308328384659280154689028522408273717653667016701843120765760450249123412205921300986126074512951780374479457540912914448448814411787051545200273776008036205788235750405062021103649344953100827168615387481929904180534569748387663683255020168379496936782125075874649437470381749240941135402648117577048320571856074141007877515533341113365878506365000318266287917218632393145942044587730234138467370620087121238540649146822352208921909806352072212367990010193056819682344265824815632268062369446057760344480515321460400611870062549741542209005289352554633770160334692541387010472296465921043953641450965687288354608481440839054560304500373567276637321074528073021751904840374763497903577051212190113605765020017987059821934776659710646412872971382242617878045826654097300054752646269395929671190303147801655610559139359474949834359632844874423694912737605165924398406218955922290245097906277002915766366317751341543023362035778501278679733030261106124089074363046061178227843526112363203470700382427815931263558105963548465502018235052197469871976935467309362285335286259493832776409934087462791787945456660848550137075490264629416660581906771761526917978644141350473229369369013122725671974850294501328094438134183533921863954136221015770251729227220752234962100626545557023377426077032547402222184257920540638535058820214201187370364578019398572753167099152508825553588721397769940936871260405862258505263508115377190343646837931518565730390169276745295872919674785494189448954929613503131826544796101856809426058894223907586938870273565420059014270944533330929068676801249685820773196567342126755520180192945077044101238420058538362052583577804726473795102234009939391186404026528166025618490136083442246974323703783502347075210385852845109693547562617542621531003249913594505975726335785805149960486173871567956903868392605529273377607343442662054640687393862401411855119857814807570781657020028695213576383082032396996461861421166804572371451388406209241978661837682745929506349355565190857381570284472559884693948818002607857850776151167672664797978807194588694846347370779622585403531328044733380094431830044848555964179898753255461219954281955316318947280217820360436816743832366708696397126469507403300302200399522920082527013863523253882345092340891784588311353317520798007480254517247622539690608608135011870762308958199953856471958247883873047972822421156865480572282139638793302168526428259126850312654673676544506184368104013788451736040252856150419547992001013514964131193144757574740906106536765568588623516910407580118808402189517346284383109341404411881410527030159023843674124037706295978737203959484799986844539250261697240028226153522537384520475086225223326137269715357753313114566964530182614559103462683063783035249471857756023020118154101641319809909561614219887785428281996798263426341360067048230952425381373752356932677486637814458396271484197316809809913105568330359517893978708995636480295476180472536796950659712175803410936304997247380342904778920426986810992636976481517959480295163301335529361810893498156030536056350559234954498500753343509093738095971877524392929117850392836066634244086147541315245139873542605819660697893842551890101653184103397913952502670118063959147082867658725885006616367057006375487699529846910876220151041433039990187240338646714110781063903621445837811902863774303060730547369312927041866694772405308740727977602949571422508549069808331186411512767218440218392546953694629117072692844107641889788115662891675930364185180514446438519359557615249694194602620192957528596753931081832153723837494618115900066539982945472433174265769122927262603518463695225810164138256878184865357381732751047949696852893110802985703975115312264105049578261850515161664542457527731468971881705471048756704450880637031905611603593569341088955733984284691796118528529674028822753302718735885731226134204146434809142574595661994723891866608084964121242384804328091838487461139235872346149910318330008293885469821118201099574775384168100180460997486922228458932487622465342740001669172643371229242492743813907504833200164183508224591702752589194396324811352104415520248581326236078949807642195786933953028926971750896751111076097281352360126227379074378169288555412030544164382450056080691058943498845920767115851072861625286227395770968503423219084814176039189799379106448882523899907469439003278617074614298449606432575022043423851779458577188997902449778870044398897823367886891220987588404409975924515603907140748507644122503724627802315818713315421616063549934913168585060983008679626679073443696595056335443783020634897684666786002652617688754249824377774752922876333302407412179058091885667845943229800092368649553486637719211963875536637930578688755924457328832570609827704992841996337178046961235017887079403958235956666847219682952775500242454586004799797308166750949059944190317754026065217756404740242821168197595583474309918024039060223251303343801083524584882601624870705221921335301464335296729267473182753017427492363975601990486565394299151343636384999793412959385913250613842978578301821448596535376084662885525795595530789124189927276093902122000539352591491797883626824515233122955692253873183829941788610018117182788019408949336599238974785929278660534818303686812732525526814623956149288502172017871215153269395655398760690305126770654670613094563838026508027867569403305283994512633550899132967926569493501813701138355371909019186943283598635034390725391452473702886633279812411313601802742127022238547426605361167582942147273150091678293730105523078687829300193536863542023843405789688516860135066132711536549998949690496537317712660740272518684873842712670067406369896007362369584697762319564937261930730476235933437336245188264663860588769441970721653539155080377597714458746007715086754005681822036710841535006083980455552165988614949699894720753480197620713623626053134854626117611339329704891407704575886245402786912372777179559334572836605474612691344471842929004462853386254040494408658603614924535768894354393210872436634916705410166803603762071190667824136111568040518480271646283741155609438751936525513899082895918658679225741244858578259971869787184536377621432751883667382732939578324191354065744691450496074246110704966325351114695345906906124939703687516482986117550143929367565177973144688955195335668893073187649831509808551365658468425447810335829207889252998906256000696181912331840973019759870453311348597467433011432268038965862977643710347558046020641560510469819675695178021902136629527161199217336672430001381640635562736256794254990549540118826345576036474148354133729729450160920531542480244688303266740068105195656428359489603719819552847096852261979532855213707511516004563153099984076066117150375676420236020127146456537886535587181872878846119342032325904857473854583951764996616903380423535722380793668927912736536037208841515900550361260572985448145744399278218318735186294953844147077303009072903123026632022286095301221260572226038838303276377942472718541977708742385996376487116067221741117358212489068233201981795613862511426341708712606990930352154765210015284636612402649943019345247506246406929385942382954687363970126664981423628663712220849434485914021578948042198963836028623711314496588085289082502828688889637315314496238674823019711384334046827124404884549565421172545086306583864861246123656702819768766575980608617041904702296531031152130856936184039167496730492060287639765655890252593363886573766930371517133021138223642868938228556315726573179707068182707396866385410077766090329768864135709491002081248838064298949034554981376024726538420412014936927095061505629930046991308728920869500748727071853937873489568882439542383369908835437068362008590494765209475407009911423900608529689999931540767123712898043258791665335990587166515330783967659766330106947970056394711402911422721326121529244265301528839108689448615538296978314164518280525626662455583904454743067419463794240118015754474403966515394250241056889746437272668395848564128839369345066841889536961270302837060148122768733713926222765336013926028999119184495891171408370138121580226037178547215237865128200093910174583597744725949473237283957519338296237650899003105414847138027479179984053840108950421454026164386698752035771368351745576571511418088629769563112892506504383469490426343925242207347274296556110321697236656825098027803140658999147800107128936643217703227598371250141188291896724353648599334483223544277184320063027561441410670108383616306348885646519296243962333463668972276618204292850733285067818793997668219543381080482829529594902414094547799570737481856895783668078246870614858884195261126192583640035164135457891550503676538730080991937917189482477266649748503994463619674375643628693437954379584001395296901943910541910910664084454354915066744300609338083803385840009568497685424069425663626072656858402696962302296238143721117465842015250432161579153596776350365286603531067302459827706939230122256838239585170617405731179646292932597377354240190283230434430421408630272164161859129787965893426283623493740885407398673938336509405512457144444973930304533016011479608379480907223219817571886043641521424497154341140753004098745467971712468759094251588260516349749220519097105575912329314603840139914177572604944673624015595098591804965905687873332332115037815761570763386679008197179347040268362752910576419172156494767535249108515326819097704611589268970627395656380283681688690734562385835755576620684233875251658153614967529758950522803895566176295615999736699414842296785270798100373593222236380625965979341408362915569307628324737780906761745885040832439684205783485233035882601533316748629474845883628076805316271333473180763973713027002710398756252890480385070734409471118197359336184061560781589099014765717358521292518706499869523186307639874152137246215943580344560029170223553118621812309790189578024234281878114413963356819150411372376980719033977488354608873680148380373872960149913724193741029374223436974489693486979357900299891899820476939488326383538860558588371766707539777626764534972553103634715650232563819383620213329881672935448635703096249991667457182279547593969078915984123395787379715292711024441241678403982755484851120323260014485516139253626421066097641511650260530906869831965585747627598643584543725567690155653565069200712151081026473633298388956925916038887081290012049482105608442984307741064723879608340086468657215612301065204617257410833834539996535910754004729217077230599153411745139535328213566554066626822006338354273868932452539985783929396608778246833251837101050549195711862201695982407947105926713910298387072253463343554366516424057834550101752343325585932255525259284864439201040901130883370691414815104155141868638597682309869634061083785735139825153595383313406804408921661015178171494114730062202722114029634040787686001021019107563127469093943103606431288603457760649457253940652416503073486186564250378547761166242686938111468242953935681607476349673694519351089398541433070181654350368920154054003764274420382199611895829143922679406532502871723028322692444426276091577450697446363831070427153331575314342349268960727397719427295629031476992941462885323936660841548719930975293521239137470357976593072335694690053355093356985476880331624829872790338453482934509685830781618806690040496361991551083968821324287773604237601350480477315396057088523369345275863213045479056457274296657175393915515543058007446529935394882021096679732080937284920804279262864122936683132866035891347511024603873928692780778763230114623176124360258952558671473743978427315082195557134408479016182135989879396461884422278990253703922892082198831765307973165722509114135842605076386164533092473938099757618427636007719381751454009545909288665992981282174765042732882221936250434078661161818067516706302750973196953969660350341707903755310238505174968996873691083349919519932136836277725387744015420835909915513127935252985415226610369463453043349862537454850600415303937098242862238842742017651747056096205795900296428201294178348888528457183553724417581220146103286908367161370738789754404803574312163543259839222350706229777039065529668110074788265521747746649862320442813876909835639672095660132339290682006454670097126092232339843866028221010375966212618619959593313904688023068332895447011968483840827370107077200759534778493197889083869447612898496404788965334111268654450201421994599733186219945978262842685699187999883914926210533904771255412157234317630426991428173907196639657996708995282732138534304273938893921726936653624718011334172486099157873541656328341226331003289444748376676741686254283273321771055193290155588561209913948530571069917373983860983714633229989718721855281616013540205956121928925459757051053033956211704744138018051084198546567099370907994779664946111084948957228594839929142663866946321048563410842918040898627577688855617974331566932336259662095080536502781882909456563943896637874375957777999916875442793555637055922222348794010022761643016737460379542648260400239995193896851724388867064536806196214692312769133255081223976957537053274523882238944081964387646083824560689597285770095546552601153546688759462987887180154270770543780458428820889482331833488270176583870043350734737702010349573128498475750612384324457652540925900711579357793453935999066255985533569289211997558875353087310994173937825510867624460854830390910857089461984873907265425478380070786899479338379417903904004323945337909925011655729219636226930809494825107917272948009210208128678621586575911736148681543163176478306483529982608164989390939852277033893420622962220196328592328190137155010815916097857243375946887966987366028836204764276528569190594614495992112124701999115433863952888632141183523352375773027300347679450434391496711884390991476015204613364079839048916463449863488773103804446606326479558759324353659896214679643600635911681901686433426954671487519460083257925978008072609658343827766234090177778489214963018352731284720005531137446689330908419324199365421856082331993281722195952739814987748069121025897004425377828860536029611152752695935368012188709378455737602417979835577708447823128742175201496673207381475917659506947762743211754440975815930994227492434402146166659193357379459404535592793805708988977756275371484327081100589117595211243156036253577108696884276216061458532451993427421375414384731015173071793155465840252460918438821114059294148011856593277263871038233857026717156103188579462115961306026262601692256135273115731231754404640370288383891861019129750581181951884930323491009592518365284260390656929444595272301241603898081976303352819542670602860738120909498020192484554426758482932675615464826341531350699279021934450132093137813385946699742980068035847947071804981980516200142751341533340805578453460519813147008084034564236148070834531819037645282561511527736873632743031928072776040367957802733050084984236517725847495865261308795437024133081020272843273747078439635481254418358811691001835799672316250582291788608466852631358301954662734835515088958367650897853958809035042452045774328623734231971628486448592497061749463056089253237901863808971277520913968777947226691723775058512620736898949337972880375426458302754971131740783748920522590862185897620694827108296873849390873680323437177063265440196793612528878403826734925417671199464857793823890205856068579948327750093491264417548327735884333435715707883088509730232396501557714527445828321697280777785265931895337902407843996650191295885077615329933005382437333056210451965287684624482918975898971937783214573330826434655393191229117472261348677908834375788530663633676093060211499568322019720252602212399669805821373129664648585624865132199152444228074391029665186182199287693690827807294970440384331101876618940998724364924995009259147480833007099706620707930949194190984521709358021954325148497424829628304682150806263435786328534675946458503591394237053623857330517877956935683035211950690191134561052257439933775895499341229117377279339579599251281126908713692503947319698641436172426261004259501414734187325585286124630481755893813319664137069382922910211633189816216162824131202034223393274121597054063542925038064548362229862227655723567540279154055777737107905054004320636352513134254472832812486538314654398915779554841447109187300504311874894408311412009220457649641226903351848583379467284978084018296801354107966970320070432647923305378908484101999855465671322265403966998823091087735988768874889434338417592264378993454675165014392133656492134793864263634407377027637566361995878162550443069462728455640393935951299701265515882382976501212982635424952370591112785273760283441080520709035181460133507746607877007120237223436535285567066300876985108051278068987035155443862238203567690939998612676413158770031673258577437715395013776859177795731193880022130155108236892575981533823133596088316019770141221937980017338823557948791319718570257889673013233533293912407855922688860811234684323126411127251862176174838185715517674683593658079540885937957394636207755191360188728730589559848174468721840277449175764853727548583940062522905111956967002807383889278180818047642532748787094457625390497603772117240818376206245986556040328099939194892948799564212575448303228391239540195079463271629659663007746908100166318205342985650880616020593909344967192950029708014683599626000303747054614634968575607497602959613901170049151443951463727881835084323744896270345537291254678196883331379562988252055837807513150942934513684615696690670225501961391643053613047022950882397346511805508196330185244983721905676196510153115821545252907138043848268041050657080263596300207631357479259489450162759264633968640082049835430969040820685533006644884568442160353835801217247312474539635401437442140448441380643200300901423693201867350164331576090308290985385426056147303118859316450891507823096153046008093784657509779110044190347969016119885573505580595888129300717248630734760414197362910181191405588695404234596385162719131138719922060120403957150221892766816009912964498594235479492669366976886934501431969227099909746142425424846841371717530181718365513994422335704671553039843417322220671817074924730493382212119860873667658504200730470079674497123119211167388051169325156274121005106798468254711492791671201331653917299960405577424857248740620397968963503834079286281897811777870823592741383165956120620133043304463462598049376880446193108867113027047146837102371352575892898666642890465574072757788737349397097577564948024632961753606231401742398284083727849303483494890333890679621595605091113995668093241065549956960779856512571983113904747828350298555299218990390673796525565296420597119734450232988985749027849925755008878932173992604386042940408191172724951919500440445816733150272100988631185462895628473658351824990756706079146872417762388545598814550334253429653928778932452263766257873874196844128984809210485557069585270249372634284762789768507718052477195316000442610884749605329313858380827647745183404796647050571591930013752503790599626365420233174831044811079052910157188956988587091725337362845695535867654838373013385374319517250857517844920264361585352033941252501825508608268657204998270783385946665434590758866140972171993802713743466989875278876840927998251990183023963492937000186862374654201044744850643182715834094169795912360332396112016426117878404606546215439647647655371544188462810663753366958593609012421671937228390598622243985190037122242822239271707099382458376183870468411156861562903808408099447627276486326836876665837290651316527858877858517135725706112991247707211291330290042473473249768037029961147996638145914969016128255929977221188040212224336209245482893056316344158309536496676451887139842281826002351688542924593276392657237123263366185548557495002837325231200333251845946424509186882998283214189020904050369981545453903921414132586161218778293024730001233568529680085357831083965288227582326480524095610515338687864730283967063885043704076157630371455558440630640478336201358147267260898419653788547476109964793136027182700999278305803504897415195701372545891220233892093925882269548541454794682564525024902655236122706032678404789474480257327517968309263743882823284182714769379366325338770706312748542569441385974140001702730871153192203372338522080450585599600554775999108756399112651660183199525044023638730418552743808486753494795048869978456143098359346208802732530796889954258411136500870536456743344590505097956407255610508822066508330879512955770549067194111034089679422452755579056597101999772477661968628834624413481252548054040766229288288323057222685052706885653089689737949635359577587043628518116915012409626595622373835191640767195895199733462744724277927272300265143795625852460446794155068173980794335446477112121799795437217720489040219058560193179111329553556233666909656630752217019324457435583837044684169446478712171653811885112472341888993369159691258719418030752649496379710037800276677254119500739125910319007424223724226695043087095148506478991111433187757341996102373747604514812952147210114469523758791900899345541562571901136007580609985231320572941797475189666881245079489955663709770653333443529907395477796940530743752624782412631370432687696134551826141973358023498539936206598194286940545521890902524758152036499409260012234310065828759768130615838194756779916348465332180732002920958998252951266499111884809234928220499288144112790267707293070760906827895014940990656869329901125651298707839944154106766854265895904278668394027749254092595572004706031480620630712100462193200073376383249280926976209031652757730566878949693617121011844129168862386863460590670543984745615278125202741297175592634467793875275324405327268481014608521746068223546604200291796150257395865033372661406709102108064472808587564732602637930504922985563369696830990821264403730318003159720949471165385857720164245927272772030253571033413798252969212256026901906905624956657690939723827715660553287746791892165883954847156612185010869414291895433062351481193735996262295817645914043298170266001139868910742820898951092238078182375568663589925362227652431059000221436085989258631868458238287385022934200714533320491692968796735008541164530055342848780612416433632590806373514191517245477515405786498660586022909628505353569654789334393240793748868465026240243882296961494494950510415788945527885067818531459412662577776668996370265747402347571332230055507781958768731958386664317741776145315359530491477381491324517053720984265000758043748581730689928322665089949903585085117914023890801265512498060360895890800180853610987203389458432644061966932712996289070196371266541675003681474789520158971126189478967197781015174916249333284593728153242124520073028704065795350566108266586441784611860532554749173093590158344208907599110029774266984241375839124553930861111997286889484543051262753338553156405984478760766580157739240711368419104741930589964676102699152825952386683446144579743929059175180860557560735054078510582361338634653459792746795423753534001715628157912657977794838037075609434170714351593338988413195809483693190968577877090344520363105574794784781796885430663341941808261319131447201983075606608300472956497896611057740732885702382243346887267246757377614674960257522675950307533056171971528430470473489761611030935696638934937428592609259431487025515478545933274307260340835521770601143915353177854649965249165581498911242503306460914061919614399398185050902137834291543568588721812138139021601091086146854840503034770680285384276469599053706558903324845138072150005405616007469374619451558987906636359909833720385587540822218447725254354542026837745840423758263434331871010053320395251150539360210681210421236687924816203237713331906251268997799943490225139268992560484134467166170658628435033659410888920260198386169962175535620666369415821168860469408730275273322187638490985167481932220308506575685325381055038110077054287479296248136134994281878418047379419894823850308817039399127780433805542421614662329753291326464158742821235945633075492977715600066436260557439640502038183588794907641873678962779547692076584002623623864471142882902542656926408094115777701696279879753453276872793881765508043501814069823200482868630897209727545449125661917615822534933072114613278714355172053557111720843542546022417010511568104255909735896701655512137891354036175682578287594109273996667748614057587546370226888009648022435275454778342524739794719524405232316155940869088735162629907515406319430041045327617318901132138555158486596593732721370420408283483626060720662970457462234366916427138528311484153670559593356488291130262441141038299522814096982489276746543466972352683354680223337994926074747492644417291886861618655645060615013681839152741222125261589614358398226099429557636076707727028459443385591038096668305453799380611184611809955362733110775203551511712302448530684625464408472495827118657856357660106742153410988900336417753342473455095710508447604467445903277754973625043015659581848537076167362613099565187368720645076835657462432045146553652585594997622830589262903340108612022053190813834600782639025869105919301978615194290152394614030231303414546163145991096859200881313883966872280090895522382569685886680824907269054273608355694149699017691489872580592398203967669910054231189008903677591574581373391343540381975294756994214184173716353795390369330941259401807652072200532915451170283355993868235136866760604361031018195202324111030741726337221424512344471220410550522988527711565655364987613071909119554172038103523745234394646059851913930809522208521908714844522928869739461191913478625501059327610943857557301976962920768409152571274241850633596210615891399828817903810218598841807644934897052161260906599475780560309920697062179355613474244891348275453401806368962995902247338346806767610800890844027412657641669067677248919423352876877548070494986372458824296734583569919818317881206301106450520496249024043431430456569566703935806399794163438277684213991748935587227176453150477378804998477822445996829560068708739175197672501840177274668833735309558675383183415873273417125404421949823501823877121723640834154261414757403672531419825780469665980352610868168329621654981581935132830287172749855114316116957126066086026953862549651475725693005067659306246399584666012223030384763145305736172292463525119090989180384160086800708283699110460741997190228440398968925562797136517268128169084304347067496086434194637035584688398038763403159158933874881794379957949226101708697195236937789060037404848084702123276120739423238256146683689605318432188114878299554935040159701571966490728091446299964535406562964308701382347699332809466133234078229510645332869701930872718925363521165259274723240267367082418288133194070568540993632237944729254021910961825185328181102234826745410302214721630048470896804816464500852798460439377447392502397337863920431045193288233309260405840754586230030130558791979122034384832033869094667942140062286772125618000076658637208620025572064794864254595417396510081068298289840611091407319842993550971076375180774168976404354185711823572821250457616907693264849930619562932855569525621897329907249281927899179499137185381680376078245980002930770782156293683879826834334821211042523234515013465968840547820796279124814347831500337744743474961070182041657460406466037727882008734529513888259546770438796219970386356744683458107785049134023451047178109721889603312093976057800642657516710525716172781627444040369110600005544647263342066376480875025485464878630004535178608867486723210884526789370046968372937180030478932530187607847501291960091116340333094397551011626842504318622593176906966665355539592658891859666886339449095076010515286249957061377080096313201838909983834245388619831670530039678277791398893944262205934111718113513496147998371017333670593764827446298434499226858554182442393900015631131208304349378255150071557626999206662881062365410900379528917979748357496838349060170359638011853926456688946723361433045651218860639985990163839084709566876196486092356562581513478603214224305000399845940479938742752672918212731375273501818235522222483459405053605970628173635869103834478706200462604116431611923700605886181415000571892766285869317919780870666742743930929591784863324600656510364592921123527158328258169650135351326300648145281167754356432859297267703078271011282571668495552245251040601770847811222102856958895368115023071974622792289999420469462876251021882316464215050847419910047397503361977553290648614606070585043704178832316428148382595163064150004128571370445203980911595129973901038172255773390981413767030628384317136568639882781934285919429846532002343493027110142770272416669048554106747948612982550356361951110034959391300141116642117995928899412526883272097492169120230220890530249758477536865963422819463805000831884681239585964385221663603723598478700097379311387794685385712686716313702300838604513498961656660188305673590795793780719595132924709663319906059922990713041506426805847191384780456075008217524166552307857462003168145732209367522594079427300699928213450571493770080876707713985388279587230959030142432628410063054449064277771964881988560057516086517089940487708126617030898709994877906769707638147813423895619837219610809812637973178218583326514031389710484858928355042438057972850070542633079259667307543525864682935626980624644044992575088136461567593147710292211259281300464114708821936539332872570837805171674178397367267174530835068370836107896458169393526072720341685760562288643966779598666188921261453007440340067352096246876742595812899468619836983181817694620480111691164456379544478900417747717007519532695787818709036394278172362302014214227023558589605089541156948337213649847756951958681248376910186822643768066308836007249276316357180925250692852909958410476889832496226180893304923481093185902564795791365343608279989223299968664901958850152866961793965054562445238002827124538703525472247605455901431715560161745431826599800245520264704578874268607617238662160536305312566115108693762323114662946929710612914356982920613928942419255262032411989101409446929141738412856869821318556453140705499056088883840790872968946308077407173911567325845845169935961647040768940101518385877033611238704987908751495608836165866965451038393442841603040961712643047433136082846911558359196441466480493178242492709003538742936532471522162097840738245880394104803349488948322879607731094119104052686678075657259102107874540283185394938675103429086837154721825841105994968449422477960143614214502906764387023814973167966171076477020157726773289322390688150979298061349403006141424160349978381440147575596325341919356119568199316638994625101377078897752547331543393549343958403002767331295334527209641075188698220345542439974098949092712336809606051065764611787163273073613616670621316994216698701581645363942907359120103270284196900753249291126479425122215820317198272861575538715308267948791094675474237362009965107517690759769167566271283900953259229860435314391198090322622799222749406460791209504840649644566188963289758374293760276083677224415306895780547557626169893756477627523073010061745731846212359859491460233471181145949404664842912610229085517846762942386520101445448894154721359914430916943611632914766742119360518312365718536620293026904169311440946099478016665482920900121478056813027996149789873330552306506575168040951115329932709199805314256100082762652703641348682730768088518295779444544963777230459153691289816938273003203336977054340080838693228016925287550721643582636215762947440701369806784965648414064899317301017623933629185348955779081462643850921770331394479380519460009773101494484584417073125366698712671215267434335370981828139752323474954851700105742163199386381111994412628367464466661322712052889660980042502871372577977287731968121714212264639745512670623007405236992626703708087540505455835606201519553440372552170000906070061843379931365844101224187227026339190060805298383079225751019206225658188129929302854887347728550621261484380963477445942604377951155554486947559078034443145913072856068796962406737103201570771456589819804474289092167904422477013933200213755437192628482553825645670469387571049831487914546909651306061765904950812302094425728873055230125697896215770111019618480064486184820209415757634512302814695576066550792236514232118651349112065634155219074685467920112844398640809186524250025204605275029046290445954639146136783115219025729695299571716559114638375479660779864365513459991535559573698295073275206835382678628968830646669734886144691574329561233431833408123590817935367459734875345528498432744070145372978713815473673854888443577456915739652480904131411545771325782718824985105290248520675288858356035441181728833798543200716527542619455636352498388672933922903865976667854982707288476833212015748859501201702819457036534760684353205904826401366564593564242961298725450479676236721697155644271775418516149388084325019061428339022799255553732235459838920956937332637370599595087940721732857436317911121478528751013371805942612669468316494737855133451562235756274562297544155553143467215599590661352338392533551035948006693641439884487135852252627589611207221988492105770841598126781160771509883458455593609889378178716461554513323082841005771252549886976269142734751105612675961423139599060927727435915479669033433536506628983780879900268570046946981683409454614307551685639266492896862333028086733423524828773905216122288582914222602485304042895620196591675015236761527556440266820899067560864280732371616224582732959042616143334465555564310634194874994412099460375335711826814173949820708432407320464552337809513059201314403149656892841043009480473761305836509974083576245360755442171059864280718674535219493232669299165566152681774157498549007532028607006582845493182797617911017635915770674286140540429586295596561577325619880615847205164337180008375434642808994270332734572524517009773199737031135396010362977784711489123882388517626370274135661107931188151915855612053355679634908452843033993579128649662483523012308061326631277132860241157064776525815829348005356581328397659816684790023015969540895867728401147043743823805947677636173968232503808335521484899827811983414586135141895381216622638853776329017987644222905923097920594253536583130209423434756910310688559665375859465165379488655484473504413942093996740290803799984523863655876830898748024045430965629495604465820482422481999894869369264191633335279293204209184766446499859332379739545768112055087486442107844018045183145055332369124328216499939696178429677390436975663022748607990612603673529922514778786977762220598430969140409763935886895658432037057768827724524470439630361048225321108745635816420793317352901647377304855213138214594060549904733184981231526078492529598134702151092144922077442149428140045078849383698867868431604971077281151793628751671801144400124921162612012749716122600986050342600059788048379803046228076442752092702268104809645837434241817657825625700666229831302223918777171639122913397280997396357043546179939792354478986108019470738743919800451397590737631417375131753404651363156909608754863081945826912245795372669265735359914688078584082732177882937792594787171202967538854702960271844035686933896933253770895360208797772102835052543254487427548879292400237683103654803003087768803153644409334127715290868305412549201480145876157498542153811979982294613145563057390829478586316528725534429645596456652733608752711857065852775965048267620652871433570311723446634865093934924456135974097419879381743268102282928324760810901791354331525362908732744077304961448769622674619886688538449642605105807808251437647219823886495898451312738437195192153419517546267137699606876608119336476243140572793046719384471284233575113271549211590993432413493139643201800809832578223021874575187370551517375706802335178488162751778042944362448675677812914315855442167850387086559838178562387794502022795250685762722240906913079898144997278546183332974615871224190988141547818069637724549107645492782013910293566376509946181929477839155457096103492190097292638711198383835037044223876531663378362219483899285299701198664925598983767375482723881337617644011608292753305628158326713269927798460084612875537361420381896847856504195519163688007765362372081636335922206985445175210217225332616989251718829922492523052927363274213175002653374949432535466770326659103951544116548697833211998727064802286784437113731603729699269511651570671990615970955475887736869856082981443467707501765637790956691711102521493019462664309472713565147396212115062676919058516563704378500418665024258832493419910184306422307585046985352393432070365342219378651834178888648018466137005253186724964421272399135233538400729837673261049567394887279232801569485560255843140380823850351313660975014413152489436789156432512895260017295380471318009436143124296039650895505087551781494213989722902344010983848918593995002609048621572289425986115238616010609251045143838780373293811831852262937237807032454014234312037700728831417986493922383277785205765896731612139827666901620061478322890969466163120055857325286913620096384620529945185995370695568921142732556692900220265133589227842518496456336554261646968656560939226852126082396418732348020077335274431745289438311090698717029294877103451487751817597456992729035452969510563175720893137210767711086086717062813209958450116837604455866573224503667283627475278572461735085346676087912829563791181291394124834441876045267937836822510746615097903443645304909706620180574717779095216658782320645752801332151311037909571217488505547995474594305961599780925277259292704447156905171046399665746334674433884981983098109190796205323072568363375019532959019706586415792111052612812578809629345496248595357010878679942888532369014089280448994882782685208281325614982950273209670111522526839305110578423463863397623054636636155882193028545374140692007448770322182927604835111244184767784219145132098152883122238826337138375031159602429570213573655255881883670908529972463783863053052488016359923573634744823742677096612509194552295670496095297748739512314926401230620407662300630195900072221702428700761354770920763223423593099453573154002703954150235451570369937502696070732934356979723297721097704073675118805791333086614311635937151728305771864644853593348853388244669535863684538681645222230930425228101862396035984439384513604341360575360931134831548643220071939997350336320104174955126564479027464352897473245553723071407338304922807688209300574268380568640298003303810900419893967132599518332889797567644724107451783710405631104727641839826415614462516697276526416240508471125732026202835987486107925633615774675332557381855702430955841006584673076101692016019212633346944271207240455520270279356855369781535198646484533943872808565110727407154863385924321579232909232628344405848282767981828507425760903480694039989736081615213322069998389423954613379374690189570349128055372919034553653904450905494412378796633339874155268310592610595264961319482226497502654805096654298997591684872730193691384213339010054460728806769716030615448087775039316324314616967135972846986126134411537193333403995738784626181334355442632103285702642421919499177189599313553759392477520120197711199285259388457986929232939375896249780098928150702315744208688600200439134744139653088531339587862104523661464464248051890367329390815645947519935276587689420736893410391081997960506967624601823153491863314058247273012173466608902885936188726957856393096835598812446310880510884620152563953944211852683127847200054539373941785134649076324288373359533943181409484849751801670540340706309227546354425339437572943059600957683766886476461002489369560451141089964016205096181057169791414211265084548194242860851495724435592278361965266700065603505586172209336556607024112335378831442626843877183132142892507805958803128882605640248038051153134052474634912163959167459047390618447397225840495195312200503037058775612538836138598451385323906094652332291201801447121830979625684386975607892296609304817753976951784371772953183985268774984698336225576992563575382583801327013564099990060152556743257104024010108183210065250916572882825906897887738802395835950534542743340874740294150928291826754719356937509639308453946733956908395176286872603555029577509990002317337217818753067884802647997708315571132221490352144702098194606845886175300508499817480301220376275605030404503846281379013381254370508716447993617190022699597693368341269365250004377306499709391933297970309748640951033219848291580523767280254253637795336180482304218022895370685856631154465416832377513575891112609271521009319089239901813448652258565880935420439785765562473867798800276717058695943029062545075266777333766986934804444284873463650801145396756167768569200204355576237679170743411100634797822320487455055245102037394028154785659107264782353304577825686850524704882900688961121602346290165196201670197163529171668638216347638915146573177865200724441906559978707846698579879703390784578441526235819517415548342541179560566189643116320912313547212465034269952521871059190247197235320988016499332738489891289013887692818061674423761901798803559238320068590949458524687715147295466595980808903612795087706772817725655340625916641375118336796218578781325619675839372461231791110722328635770740839068896707975163141494258177656893535068236388341778276888738561523176155256500260170358849917161331349788381988997190666154260285469230803376757981805555729346957934521870715204928129639049774071826692473111534216729909066398443313811078685985764292927732758573445340083538943433566411635970855502101861846010868056508833386296274807854378050384581373681663789321668231617482367774232567025638015521381976573132320257409430335220753189039988459685450348131805595083663361801506713479433977481646401956278558275677612673712954498049920380990897435382119307101484954258029708311203866901379684428391053511510475975439310838506936704426324201972354240201736527810001158490591769518087136323632801617737166913858813607857956337153316297669056105308547345684939573277008110907090128939113148932380819899541923699719208477853148766471565194825814339572575118802003912381414113741991329709742761249820774989074564383007914402659941520834269347535212652408029667186951339626785511754053448821013666609856295360631414224474544316846995038517584324376698111652929047402239734639101291117422612853437968930538512001950757482083566023993191680666168229687561685097951725887750200867372892853538977207491508712986330235708617346297773338458867813419571736347570571646611917620282044938334176003167015834325826823751223446348802334839241427093244982811963675845134488560473588843245465984783478940631602682740884447979251611811665027141351454726995076399481152621010439251503166797173325175776876913700957944357393702741819297640219345008006644884219970966791233459226183930072777911341583351699574791835605572534617144432599606568091364995071213464630028210801397167052393369206116765970192641015174699052418529767767208460737771782489704133870647475585877451531307797532535692922888512224472374418353206259680466816628083252108255400471690901512991022614631021731729795317788646707442743076142246611308821277844900586959422293664954523565019268943991530308058647297672276208029386030124402569410390421711895436715697789477584599285760733936596654476791247114658921308765155083669397802007884369088158349767410003435344725975886724064557503875803955365185686116592842121002825298061087990897922001210673284441496002794799842729785888047350108503293432648714482773013094696683610468435912756099349355796380058013224164388040812229286799108461965621040288838904698589635735287206565993536674648076186162596554290520576376360929442383719409653982864350545167812803193675229103284428447779117246715714341606287111164921673922046954534744218933541283396936966989903875593146138231922267568509385673856757477030500711727661980092929533138008720861641036093052863971381572075993629996515450955985452378015616991904708113684739975093123209671592751851745928977485688765855598741041633234707711902234084653221050352241564424141766949269626049633031758886971865136107605048981329126155418273199841376603859637017855769212132077565839454925201987808122861334528725556408262649845312905996606740565309841835369677498781318653719648033800236077533107567272125564327949965306063798882148818602833320135343112596129481867541741872995897815625086131304519164503455110397536740763670671819293735542112370279285725262874088563572491018527840824825730341346882045586733444598457092944939509519347675465987004542256816699610261292121262078507612009985592249433895144314519244501678314649930617364874505566042852064307128027071487188355857187013810356026758161210862762550702375169642116982145350519040936950852238787881473127072622977691812022387877421086998293458936923365962881460408402977933197892181098855042961259753953260372793877701625496573282861041228588083031177249114915563980159989597312016726479380930985095822207604970303844720406031569891526937178395378597487635879179370867041616706863604217422532589443955764712942463388770507435986775929905709936156710984832203846221593709658973590196563541507660054519273680655013530588834077727303982919866089541430891344759554408013144566504454968811459680193528084550462793666941619679316205830989609492625060039321920584510200298225869138837867022201500050968730986982091439532565394137648960667882496078946610814064375438200361668386086384865018165290747576274758566653830139425047907243120338417083479035560694588212727660571915118167118702166275102300133111287140754699720263949150520835717369818349299489962698140933909112285963187554105055911644267670094145192505853693584741189660887277667561088539284502654191761962533674383779845883329648780480927473751702441304503500097247294936539214723910970471111629676134599224133934329825930252270118459349432434553602312660029907604931990563000594073956667910455276701515319909792868999282732861974837680277678283353762583820842373168182347539196572126009389515677128320701241289923844110201692589748789329438163310521571614962158012013613590344254847797803405150353677646132888031772830076576433042800665268428681931029889544486307780911464366588774743250143162604978894821191782184482581792659734433275290270196971819907498116369068395363861936483203109883673848298011477710791364403630630613542033666309157745450044499463492060516272552870261511935598631123752636145888135228339675171557185060330160387450005699905126428843992912830227504271995419742175182450500969137355965566576779836347800043280118505774996037672796213219102389676215557527838261488818419883731873696213558412848692862931255130523200145851393543403005168109853912404830729992659951552199357954575885631449046908814763493737323896020025327865969098594347092413647343229407133367914302996215215587278968866582936733418073227312477048481956018951508532934381865305341491781208638358107748007451116482932243946634856613890667585834567004680329751689264429703851594737966459329970354117610164618540265205127814227702788006815136986723255396110058083349453672106788757112443590253427844497597229184568808955999315785520787016950035790794803265362362252375547908182469113539476020738707551517369466461743020496258769687500814871730864471981952483003117481388998958592205508965142501738990710526602523040117395028969118121548328958359045223679097054422839528013344903180605640220230968014259411540844583062704825906654069303344729383573300453801835769510219856516880817530668151314541074966738095798945362407620817036537356403991593892159916455017926429078460176225723505457643485639146317890672586163642985839410464072247226406955310021248657770980670467523564076714287278211827666514271836746631644118369116769512396751878038269437108134076703198700288711876771639519010846701918118498585266625941057491224602126369634327358087426837966743424328928691371930092513429239218178498497947922282762981670097964220239422725639826703348371463428455541853932803664856868500702703851180750410733644393771175443604046093677646888546391842595888231320547717742602692698287992178271828639199299230891881978441466208230771004499762766548517881000573105394205456913264425040370774286915387236138337698440995340211816210202736953716876886552605910697076108633634561407891088866433046268476927326557583801140813539946018838950393309071595543873259580925294493898821151695541846628937031201032504363415318325004170674084654127974572541322877090560084614900950591025903001881088446443927502840509335979882905984173920827799983465673275665616471080318804202970784363784596196257951678427713686715789569406685234004307287298911599671786282024791329197521216850956927494796082799470542748296138573734389229666656959653367414897818802635694702617272407151151913579251369741158835784504161709166380439272779646654158931322795420085043192117983309789683985175037004897865134631349898491486303829303691863426105917165523982408727900179363946842110189527444223470514284353995661363370126799149749742271553537665421014864636853395855065565799196010911352032552737516861240064673463602840274897744380083191182601273417165588454049159246308888019924884925642089232713386301323396460841647680208745210191967351205226248528832079188529940608247895576436414969993438560963468072993915753249111961044494719840347816418178764656226300202883595604940117753012344405673468838314250856314863772428347431801917563270031182850755953660717499271307655115902746235901936237966860522092135520029469399774894260376263445091704838804322269018018286380506896236534902477706533803126136342859048740021541918183415397841617617942534200539981395915492717445355696987399731486273843004690975628934955476857582114660957504378799279028933556355981586070493403015012931319088862826481529438733357593861479983559831192082968807479654868696391646022504733057549888059803085470167144008244164113946066533547748175012097896672445502581807362244166070562123989458642435533662322074251752014539357364409764233346503863073626137255762492626443247053566860505364020682104413547009986618352945293382329868147060780262885082101891077163290509969118093128621596455399194376764107860143591322621717531430599004465377422786723207871130195864417665041211440262406431605804965102684635351838427371949034403403065438666266168109310327295686176332514459087917481840078888579011370161135205941722525382507122620116442072561367256451744639428530588136631960237365133693435133588289849763058131144958324533716566784447215416886116659510244933134147534926233488545499118616904384754017043910614049938673838018617440516710760947164478890780180568721433813986010070741500399342400740447591434737598399440995929207080190039470313802954970383990265510085583603381328479433865509376691296009372043653641428082618832128267787457397276001848133909078014432727587972991195758015323911414373683258162077148732679669325298132640857013754877568516872445860926443873615046761107335842811746914295802649147928035714339218571419522293698008861761414046394194205607185476535764781650871346370058159721003213365522882755402906450468604580279812418736628355477055399182072267187313256349452724906141447210812034505305350478364279569519763603797633410440886756756239077793415303689997079006963702173800904704378022675370060249058610096288707153237013934524933650571725680046728239558945782872082297790239648492295701376661814547562395595107747917465573658510248819946779167799254345450632323333010893571106547821500280481720209631332328516817327422478314546306273007961814986568564593543858098640881531246930984543800258336954951506447699805564178317502937699663895210489036209462069954884463217936109394042995357533661694884412939036646223661383448252385133089579816526661527643476214935610667936257411358838013846539978429587379182259321019728620319945489287956024555119856624538532337662317042438562614798923304888104176261498169552049051855773024523260281387601663240875185185387419480674428827217547494161959843398690242897251649521003594582859490800455140738138310670989131956563431704759675280905490595247195270089528329717063671965289030787229001438209458053522659387452217332986302434841181350615936980360232332416233764975638946980913544209224443939601927019298164291505027833395753473808521504851995623488122957562170685759708938886914053975003869289750920099852058452250665452289623865055288730986465821014050606750643889593858190884722927722495942561248043907139283798342537950065687733685005230101181025144375693637627236839762661855733984512820375810174345767262704317245342418405596721733151465172957112126160974345282130239716571952114728300499903898513957738672249853369733276752886346716983309283066713258259757117826944527908628085039712026592939531960937281983179300381154457467769680056734429272911546023890266014131779793831805172616781317189483488813894374715072791118490763216488734255856619794995606930373705709300003593243002597198581485392561022125597770238175505252223614099691406094516767800356202834089378975890014676147599705407917154628701172012034635993080937151802971614973375059519465966553790733018046520132969487524340658254167592013167182666933367200247991801459489723409319883319074948401660299164013667274631656111596697345360299991651181296372997748198926285813419265590846529350642626268602693607948144417988442185614986780352511836643544606957465572674619358064722891491271687486806701097129230558026069220101490178378527889250978180579311691935952908966534179223377455925918036876865516237689872077870831505624041205970375154101325044621799104262523825100941875006091224026048483915542073763583452926248936268404315261060074176226141853322605197965943926538201298973113545671991519406706197490789307283984235531846871643408197256629965520611526021738675333162078561280814815935527990061790427347438961814447545711113632080492978809884653650238820633825414261567239721280392992039422570985284685474442160461435390242721088997776198390263501551874117893338442135558855874083483712206885119498073841810288418629680048172421960056991768929545186273806106424625877968789636350604613994518412005745415228684119782609620311698837174605696367094572269064299651808616564377402294230645091319140211757481602403541716767847186052629247468364103025248146354872320556418556301608643820306517226946442558982856908644147312373796521829173740975831839842021163347739673171225217464410304578768232395746967261543920928180328397283493389973843352092947654477585768615642597506170314430328684630410240458137258377379678170452088039435516431799500824256504246898114959534167444396632299751564611734522826251195302585207639817751271797720303208996844875412317154765256189112315129520664087880934535709120084510004115401882176659336957661818963702290107797996753839565941876014311758066228574003031011890116553108700935334069945254230721028426608078531706181954352722974131410087330466489228222451027496406292256966608712039984355958955946935232724514666389000009939681187393848390262633960094379795813902883215453395652905395913245566117461591782929823384466579087346986967731215735931993557363820488950868994477096306778568993838906380509850333256263849913014581566237787176611575098356629080770797546048419773389266506239158661701308007590767971498476149962591445971464110105184229002617981177497809053507057836261132505308770254050210552325377993077880553026110425959082627202276523449086839297562961652834745704431925077732025901626202060099585818698066289765086611727792879219608804754322792618871354949588527902872069988940201234168313812418678318833168222919810010854452885627012071578033568850791129979691804345918909536011246071762090539235721958829896511905170437239923247695226502827188629521046048517591259081983312320157874580186155418893700832424736269742004824910464028823028600616415211095650792812421362899334353659799572127044319464359687337804684499086106435403779760552521711720978175391855151203988697057608654096877063678296763052405225382359523273322574725397796094340005905739579717102909458823021649403750877682063464890105738062592666070638447548108606500202117547835652655528055511910511823230885296709294977993412854702349496953319048992810977915248147271849865261019763997609973632701638097916095797712031258316779221238565107193439705570617963382481813772589707862279103612008391571068218813212514495072378994761834226574256038130945807254781411679798670984822993723440796569857044501229458854346223444103883512606616772007255030346308762378013582390143967069873272043449352379991634215100460041459658155016414877540628867898449381823776443982692338704418242619341346910519933195441101936688410736087981809987900297709215559383953739570099453877157774202442204351431283442460340893433554902707147568065465623914703733575326765576721955821929064755325032996501783527223854698569760818737843369088511155395503169254654761325570088720141739803609004655207616586986111103247733693076353280673654069931983230359992081934084926416887337804348187067237832857067519425498470662194637511931218315987287181578791329483390396832348754036186975238321052107322485636268486262966278798556420375674402626839655626879874721230717354390823961699328707472742435099847829385933594465076635905862589478194282872021695682713048006964772173291147079457649301663356509270148901404009861935811523107281312706638852272210185217265147692386044023018577395967113280787529168639051281337016330673789371635570122514640973734358348960367013819418870858507691521391035905604750919189179353384299898405877104791917892550698415300484110277469704504584048713832293469446056193083283481433400176881317471388340468681458798545007809457533619183232748047377501930781257044089392193455805559780371738074117067266749488333450476695980290542987553233876687364564384402705121581788534567502706069047088908793540412321966440346768255804231559949687581686703200575238633202125397805254075817704959667566420903621323121200116227718771350049474512645187165731848301624571068874826647071336476929277708831028724611026638878944506043281743672260388275066434780215408586905117627215229582118865714144611434942954438236458889429801042058154496842805361351788776668734986516105859343617613803994888781256807050700881922888375496852237175426230825807729147151054212791811975939558154183074747049023686152451046567864329312562184207693235317239124770373638967315368742932012489241386991085011698828757279327113359763622656532373889760232162137533205812521811516588842656073687114327204201268795559135010482852967031074132480206320329084205899739750121163715260543272666468047869713938856577665763648482580191151705569484557720897017370644812371783060965018403412845944004407142694750222813589433984701787940620591587621726697181209136086515040966417849167113609248421795704406733633951807515803131114368205313612939032970241173263778629954722122583810816323619586894499320259060119889063751761086315622489125271579355761540492006807402946178990458498330253188083687425439630832621590089335708114567890605578219695492086823622648952233726992529584187991023387360009594058206393918836988589244672813025766180790784559418080589730523430235308527515385937675246165167401600517676979800491840636894549363248000730244828034595637060368310708772100641165311020239222022268193368620832151335279628791416155383312743425024457756298595335322406164245641304067457096824857836441074978388251359821244481964414620847205705532290599091803429563284998079503419416736227122223566800039978441529468121510061013310263143761048364209542362238439960821170583469834036504696626372624690547874450096114601583061718104907920038032706812446348371162645551674779877345980295007829057614840670849086972544178394742175442413400935124324938293058642096105067082302214161856857635486095446164503393952742798655299094975509957403354015010129692683197994347047283174641920175010706807360719859102686135839598047027988871156701969013506657747031590423137281839449057055228610402364627306776254308111630499448983064320225806609425476527208603419063480557418955896156209715681134598627928500680805178676657147509976618884942752661486598635034509207487713899147361083950839383440545100644550293281362484856329773014694026726508518804792452178444079606574907233771939210649748071418702419350977400074972023681217362299297522381314420646309059230761958186818356405400586097884216392746626307049704486464998979410214346285321873055828101968198186642487529470191594358039819798997167629091128601164712820541545385413061346187072384051577112798012199723690155706873069805379602084136859158875285820849624455546921075688552067498049164433301684721214299241249697883316100332766871164079738560267553122625375875975763140100470746932388050647649076710005406421854520401742054673464580147972283737234203140058236439210525359203118665893995498918061786003356243600877502072563803390178540855694717413129765712439045865635189220431480087775888522584923779160037046629655898477872050984377638944956103570223018303168260487787107892332818698322927466532625165323813140609018072199353145995497703562786935173584014490030743819663323544790174885820455132822883665261201659061347468029036421693052216375484623165722817439499792711509537306466155290506393047550435970082263300126552463781933063953878693120370083714678156879601369264820549182076908861626180177622729048640175257274755739801363943418253488845236649108071933888626922738312906804957020436443100731176525095520750410440172387513198740172831894459317816051604201896181740072375551657865827170557323785012207848569457515958928926929344242560063567251628267125261147230269644740200003351207982059514507308301290834745891953426713443855799416534269230336874258683452838218735307748450756039041345109063183125764993084067103263169536816790881866873389264829828872681169326614250835826543315834168076558936230226043934900600826348442615204289010486383707849699003872624426372837880233702967307571718667856041706675558304726301572072439605053226976633734434602073554603850953330477569498787674559574465611421021379933712396347223377191653355995332228215836440538487115261851465638496242200727054316991629559142808343553960732370769860702120646651371462255090335956243825330066444880727013340793418352238143633449295165225966288485608152892696934351372434943375675924016808161586663600442307893572929930389428539862224913714860869013561381434961350612138000757366374789608566572891317337489603999021240415273008082795445262836739911706129932658710590330802931099107317091556911765800233436738454737339413254251185871646104134134110497267893738351388619749874532257179174961839615425571031829739596142490451097033131136532928922593060731074775566977869907666218087918162945389152427389598204539316563506594363741171007349775054328761170341290738296473814739070941762878187747049990985484018469977666890968456152942872167049419585486776250360565405993615198142251592826893990892938483031733131242276343706822372954623361026887768082343522787958921253976570444094517339279830870928173862890247673792184778967288614262182276117259830279961154270135570969953033793837623471657227204797490105022711316405182963808864695134755009279191749108556232244149001315869211608744689953524222825239076978693386203077251369512711943721006472429759822288809382246488619906653248610102924919087613575196359227333474358363595528361831119447200100092386737098812610018954231348217584831101107351626528856888044863358508246434841900507409937013190081384767528552000913256274196005712927170615876337953093812097571282132493853941756453676223103287417660999460822029647446208274512934567731798403189723507335312451167197571434436366673079300231048232338166509457693530761249379271782077119985856279292246473709631518707061682847606688371448766024110695588634964645407177748899718940049672422633782371608741204078312249353866220970569443016442114453564992919637796057400106219533756311525553079986249835560817060682024890992903156254999362728591487637204800712834807875716135622405652461033370681900968547422840363298399009754554306069279728024124726295346221306872587417778858168167969918752866836472562421724439140815048162850402056531348823691943692530359266673926022929369505663511610958722283270447274400164206887018214986312126732747147192171720066592522786907273585914919811971778448432270169128966398158891709833908607343823905403940749421016851966411360115163403821437696585137439678250647009441358903850654953393411812140308551539284817583258504858889640656865618095513185989357003020193170218079184926724358444418412315477590699401033053855382211879923764274113297656284202904610482628034820910206394473660795911904911477097669620423297798008325898478577953705958739903215166222185070392249155671628909805599928937271494243453271272264978891232315884559704292190466685515720737885218719749081136020188128148806358545520096165383098301733703698194719437114818431519358917252750793228845206728568443931032054536856844611415038431336293493646286742558015935808173788215414604158513975478930277092412343990376712143816873094779790382883245910565419957437655347048769662786594630503050267796796462947960674186489293245297903489681036204606928551553982326060748153937232728859680871041599691462649123760520548572747117944108789277249075968421718633163073244439091878164335801035243096053028885529566655004470989622722674568511034679891736415756541565489381896729392825151260537741960185235068925857679901837790478939928982081681352076241543936561059253090581343526193203969574086666257204425472354589850766819020906892911271911697843770996625131402785504872807074323988268187275829357099436100611126192652575396403032701419313139453481428346437492047346005177846857680404260204534003322777790506819936931915483324697989726604447217099098735785344280632848973024648279698616332256851778949677592769275434260228883540628739693014864253674277435788598759538656108815135653692899830887693146895566125639321520288958826204474556770955514407837483074610835174704191728982588640033811572975749019324930029934127360767155447979479468783200272795463199405496615016349404107770244829135387146550691395738574393350624749705539066963848212754377580418630221945429212474295278569343687428272209529517919856317292577654072266099775626508809777502368608352444401832424306681224434327786770201671298570476899360872085414173998648709821295618607184578739822631914920660422498679089609754004783001778288643683581180206297666682344206670120801909688807098397281990760628438833839877744350742561901430086120184890000655590879220223859292078108735173566852645874026815537435167927474704821102369390664573509976212145573437440548915741535245491717494977175765880627087927296029216962664998167574847511152273111924843588898893465724432761480900746372778803381701924761067709525878887104580210767670411589621279586787652998278181906067191104801750145640720118922896856881850566500620271419828968907876406635097668231125977236367683417745836144877522671950083122115300960114914924803112064661357675581981282799895890328722763717668657718258443982523566092192016350210570217535050869153451921543435387909879722102007215440797195729758010595757011216969991455516639310772712465027571043862230110143928233107929076729822385046796406432635798250068336579296653341398911010420466871599885868321331706537991815396789663975044598833082500633324539513069915878111211739825428844324814767009274153193530213305041591314147502543285734316613068239420419337298086941884531187066864600344849242921344703512459628360202102178318874549182505113786623692912096790369836267020504390448207420423339200919259054776870495562119032657442827758194740103907977170680667939703321490691733535838738168380729718521456112735375367548512162692392735378598596421551479531146330954808308551972130121484517152258553806256384187542394883514638780306962967335752292596657000659116413901631534762572879631702159515970734556271565619853622999809805102794513636330698020930975062820956173870864151691807834369161972915565908651757544062551068584537843057431732141786450848779624864452261454699326262411403276289964577295832639153152479957797093228198259331463005814964620898644731353178653455564518397263706202543221790261235722897568754039411426726639654371458295031343551744930978288805041417378244159778532192799404748516101704241022352472626675357066789923447213817333554591086411426701571977797122982030410549671213229998967495913818031178646138029970021970702947196289499758541602316812612459126659257737579351294281081886755167366340271099792111472699039758962628674722897330382129875963763871210606176376793246191764450974758052121981751825780767202520904716636095028468960823770539767082272593291584546016037563751079218839866021935300438322306938470491036381093561118689200698108330197281473296148575589858202638680386310718182229814721906163285317330461809260273853167940386409312024022891503738417055624976792675859069606518896088497936934151052187548863974909225363040246453924942657613880215259893097641468680572716144976385552569694709321646716485882107102621639229200891715902231636870418388901152247366616217529074695814098663939975406299467766274537134739108102198538809228996403417870566650444724724931623727743468872510819895960748063285293878398004765025625022451951813189073343189754632477743510885854149939474811764870361863659179796438800698668135818637836205956446315892886334292880827397131485376626267464307614453796324050432731552327783190980103648942336807562287839145170221709017453423388455791619827073954854086937620733021050262442736005904084211512308308485434166450693746008592622642145699132158115006885470253226202784095999391975175641096071149814158730919026896669024207799788938023435502525182562919769861397402194134708753490676816881672405867174319622932283126638827915993120733532614070233470504635364134315306092885846527043805984426623592660873808913318914768351550891584506057028185733983941044220300207874638129846320044001655292106044509405838070473604108056620294868195276861849820780235047588085849024399649320089522509116334008331142427414973013054054999336445731880172286104655038560802043384055744658695559749209941400643691423466374925143370194815219338330268635956822789317546993001830149844463547342004672043134679930053698871692904311781385336862308686113453229773981559838358427795506783061179005692698895152944783987116887554918508255637428757859985005112557700026549729808564377439579069117955005951072622424952549293903345758743745675340384290681325483066835988909552504913964733266912289289920338436050164868166084911577583029517261477629164959100072483110355379766225042280092901106095503394663845615978376095777990123004465065729050593073696756918897411589780985816191726824143064932661369990001051519236297356175113815862176692298553537539895550478693292770836636607023825050661127270982081171381930713182815382806990895244306354534073298202282769846845506388938897932941438733557327633001374357230891333667791604959115874549459556598327681679630047456536135268752089983247459831915723026536230473554140710715261263439291133435265214725773491966103882343889679031247887440868887801018545783056118916403042986444022691281190884756554242476167378291293415954817194557313317619138211166004407875190980672944365739209392766539503809862394639512236565825197672357792211928466181093160154083198057591712694397316206501011889962467458911582570252002847409710943163146010216784690895432028205002732649244885728787682094803791623139850259698211548399538059789659059442238036586985123993587793237493193707474643981465582402828379329438708249850027855309870294526509173615078443477835633221645976945874032583610589352914878513495188241864641349928551578649469332573098987093570932688446600350710691576250112133490513020848383257973987509884480914020886997915803456256498851189529808524108113079233804670922463312489186049572433957792717070302208570835657914474227602457001889548894395111067653245835220988233218000676841899148898976172340298685112283398545697348445532401018870598255064401552623585609681086263539954877085605553038224580761829052760320349660134731624817042748258281750215233067182369464595881550109522001074629967583604999481464736420865020579228586563237072648114296009909167809871996134653141749840662135351470801958760883793475284399147791965591022122874274375797470136494620705609869323729161178933954313671676500927393928980168116567390650305442696690588502013949135305610847499799841599170770513603466311986329266540501127798006883983067118795274121907681331450149048873836744915334551389533849630537917785857591824962732517721614829150929695594008659790263658807731780077577130278539009398115417221321683385438890453624902964170077095355061076782393707878779016778915279181653583634991829519067755921024409650595185026621054312610055616713896733629975897300011672720659135209857720791780572124828793874755477473810746868502468158731366657373343366743607765176813524620430107049210471243326448775252421102528678601498522978119057963033223143436574637624882134544594887022463716671584755818419533381448427972260792142716949521618200447327891442691730272135387009371946249501766629778020380729790192729803026904214699856021882714704830261726244714373661087722477569620146775539970196057022661395984084011982386854814235830909451925497504486997709341511193127917222609986044770207238157985520130359963771582480969957048139976638077795474526619790171405087598395485196268371347307617321999238491653305934103543047318322333051356684972917629805357214586290668007254789433101852331432823749177279446581510941980682428416855668851497000182810204068603486970989278228488578759917858012217688354503360187623711282279214707632141316351392194506064336261211248126917716291887265554030157185563926909212895352261004674096432840352060209971271044534549071752115510519010086354855444947805658307361773592946238074084139052900181079819353156176356342517674437455736306895629080787231906022172460288121439301301338706207384655878413006837344973616885364411970450777327065286658291623091646291957790242775563528386478422220559518969887585013032785432983663528334043962456493868348130333366941610261030561457517311552621345314736258454332694157380848713841885188797520688791449705320299839707524425542318325516731001301944824415800073228719158398503886716167059778716297933658558060572099893921779447486169357090023983546463090668668600538488402895354681389406621432242390117619595641049355478957246069797327508174130844301630383113025946031140755755212740609383098825639340793136787371436592291492896636634526279076004204093973791036367874572394413153961754157449714216200517783861735161544891160022770992713463113450715134605573733056483097230355084377002213540960536457963481605020824945268712906210993638765141001453094502135081486805538211323406882071160904992055625299506656181403497808482755305891790230742989915047649516365104536400544553718459926950669225332935001336185416582921481531019875228434297143397889446609843292555314749453456494948501326654826043770565202132739463503459140055246104422013852612198013012505873484392903236648167881415330835349664348911107801472687619601771536719580705688680715886321649060747711872497398183763676230359809157936402485629400439419639894305910181074072127878583349684234164539241573336541561267794435477066387559209907052747496481118876414595547867026647725556882113831236541312682059569521072747990811901784091677548323830172050302751142177236667316564498945659898735452377747141237695801941936118083698993665994982947323423082669790434720796692830292835915315498686372763916748326060397553713516259126206853993285216590834155704873959120242572796270568087812673279352173158141796100787236677917350472280608909204076830998214341260437079344419148230733494502341440269420968690597782784004061139051029360449828649901877295573538786859055439436285546169219288257272390136775779904773259400549438140552432448368137153691567667153493927797317418630693890897920019990545071590246829170197989212810382029173809715495332216890924370096001395037092453432761381109061489201551485144872916875638168393038756093796004844882318731736303884832193357975438898566205460273409736090388056902229456640288337414169142133447457854203799347629239395818488229491887288405244199440668613272264317955501437636521780479833020388583819371075789791985148295475430086941488917369821482837444253668628876746515737065827216880624173018704936957285953648651634583283752901857725038546542560399359641527465870979567902977605068724698352046724478115575882729961634100309149107202684426586274114622351010306777476859574378592470188920931053345455784938850545398669103371765627191464771502981107749865414988399774697493921365181361757734712190279527871965358541094561067396704554530807340296799839331520211894000015343061720531105925534641143993228447691957233107519012905028061217320454625771657998766563565966795964194142894209453668089155916847351575803596194445763241889269570407187301652808345451144327225786113707622717370008943880590211404905649339725518982144587691874102387977310709790792637584918952087004925380154186742988306543773826317224746174486339822713454672212546283955481231520512814297982905914887974434424310478116494848583903126106474122100979062274769340614415599510955101695392077188857748245501907628740212354147530473769971252951222132357597224553486310140962542382362317200416598385276285581278009783743026147035329168789850914292239383946378346735403511933681905688592120617239699339141746339316729333137638737854485530886880165525254764832264749742865295908139092233755818270429282635735699132787298118591364973288209235172790633358835879163531991704355838994682869513579290712073854747577691177332479012341065286360741898685242103439078805437109812575840368241019086618828057451892533352789056074622114244691564582077595297231562906321713756639539796283879771507227198773036279289484349821303144036507002909098499520887980670335274943089778134878704021395730601846843073199487582406970000418510650730607108532002689551051107054491386442333038113695337007374149260509247562079109872536882301488401021073078779697472260780841157694353107924022316653009405941748482457319825708639353464554085740783665721350638640803386902277341954151689905713481900779022688537441877226160091590327124882107716729069055714772956447492252807828759969353719654805894030957425229460834099285408497442813098046196378037441038595298753362467972416148097028784357199802590046178350466508632338071836104024091608229916576423609602987069096888519028354318286495134491366947203476256882566098685888752009726658237957066463962198034320897747121561660671296264134691645709316297581563328975684067180907408111628824293442836573822352787937712832020695913680435191441614420598462322056326856553568761761856452396962695475125827573099163231638538038871710572924370924434061763102859426019360071334712411896318163557468377421690787859835783284587975876803726718161473425277456542722881871152491710838070552247124028374530560222859807142609926762485744602012933899835257501181065891546612268300396069591235529012187711301252058431250259007693354800938570045213789553056520187449827859393653691075711627483524408901800842327674689786507326955518244048821880907376077309080251785588922529631827511841920604382853241140946191146963624363750220549515105201235895501748822907526161279192985067300270793625537989655456250470907727972844793587570399715268706818979048026224594169524078854877286228007355494096285976286257629429872633938919250176899421277553584574437686498050255341450357650851310352080888371455854794840125081623458441561384807891648763308361310265267905674646196749400672210116135035032994588308782079359006196920293889328228387514091704850600030213137748875304447463057351087100348344887033114106366431674444580169826498128848277221901015057312091007397750431961786881751455343756466090789838930126198066476588858116397644589739637747357193766387772939238221958250806896432385485374048221496960058730488675580582717691333038049902726994499322048684748005322973146897960817293576143891742657214928671719940720096903994048608368730007350017701168944028572940375771192979008258543227082140775797331397074971720678741170839609518699586707098602145474254659285410100485121092586184259635668521167272505505415274215550412894615794366358820988003239321272565653576505757880066578918093616926245791803460906157881415810119499595427708790046472955464240112906522120656078086345270413504211775735627303111969313598188744261810130825756264262580500817407078532891998933877430569608170309026856060231810707178511749197863078623246713445175964970398535841494943766565877526872545868181215999946531444130169769573896459136292226479905894954615553873040302191472947401048018541359021404213070552381315307428542735580256524886451874288821758949486711869561558062975648261808002244171659551249175942725043621145920948251245448800107077886624574644438545886179806826797087720507815604058778708471605606973187245691031662705345435540304667076919301826435530781636760722137061737884687359044916369678412952725825539477031922821611710470302185372239485473781947630459573949071715706794836172452284163982860173394142882736091254553866751571187385893438631918733837603182984560625590627827955385372835841657962010673967180255657019179576274489797472628592072331741591568154273329125456175450316283393544891564297383668353410607288889271274471565194871105710313704044301316957692790877858019352981398601535528771417154363989044567786510267330660590084476064818676967007081198274360018936365735167523805425874348598442271771483361275736573332724413834190290649136383619399786306035963136103175099126963524880075532722887610246050873929835773892833341751571526257668103906860633758841578227932666706603126698100553091982057993682292382688137270962078050352437369981095725456990500012157579309567288778815275758649983220304545346707200066074138887267585371462584399112622308295657568355666812021928758802591947953620844028921063297409694041462664909157768426886774905491307031008557305923653715538503429101002074554005533251228630960165686934794974881019705583473601912211823124388168108579315342437942436369227659844148705989656980877574293526595851011078588939263051587357537678802988739488879486272771263464056412694860823148272682556207105477556742750940190774897886490502242616879487798374167843761859976727535321128559488673074415253247459780861107924337654037799262132468124934841408345871402283284952101829573739213403344525744806464014744582206513680774063329318957955423594302047786204926929958218240362672943120479195384635335363142189888090741917934676722483487799475683253777443061567700445125210054763505515433559206109558939866120909017627644402780701834366331374810022053085558897402860553386067329122863501113350127082869082754122258952196237822359844734561978384333746978292755327875943312740568532416907455262167398430012014697146359592179571166042200218581227840148556003491290859941975627082519964131272447569562027809457753386333119269762799448965658156100846501569556722813272080745136653291917469860098869658402387980990867499581355358115913589353300171324040347631076972595876777174909595832767457486606824919469236423168136139269733487885100330284493555894984577133142447523615761401034134343461269710947804606119109088437344911178550717312137149344011781579132611938031829569696777830573409826848220418423696294165687090856894345401467192475885529028036251131746470717930887389313740792433402130932370671447450182236272867477966030892609062163797969710579187515885699354685754306432654430250785257903098332592282803517404711948266581908441954033401319082946247258547410707919682651837721155065463877189926950171577592403450652390822786580814542238208159324111715197497080154101585973343018665523800911347726228235289089333716841428900081972411142581104732502296286855982481174201724526201663405181509551031008793624055800172899145346182968517412982403445680115292470363651129398358808506173410029246817726673108004307269606187596609683905393577482038554536220807131441990804294352977967137976492039031885872122812638286064424649749107056507081588994270482587477013295901074868789966961933518363629258213147182807857445931639760006221997523137931750291052133582862255979230819744730541163516439649121812532441615664865825884311452688281365394757611125163187568013140062869117317656686952876534068063977394892819552973568190024731025719799234105661140070563465907369674459705496123210880944102266994393508106413439271625875545090830006609702775968835133629521490180279051535657722900327857602754713330724413829104670947049759633328694971531927643215292263991591652682198930954110714055449636342443937738292452419831634971810954510368905723418366491129714301678756192147197739981017798033345749727528477053378914168873912891088893518886405003368109855045416955895434586999443177468255555305688260165401364003955902372038853262950379559732793795064237658732477049267392039683552364388214860138233820634128459176076757493853418932414171465164020658212527089050014435193355091321275474981926615988222589332860365396546172212281828306639868123267107741508643495540547166342535591277160451753817777124635375790672121913941600264800644124370972637692622221283641742170262134301689425612469028902147707766965612967843789427872360526111098922586968832114170485722181898443247287532248135785657071599703373778117339769435014649756216173492359474805736569885776543204142235328767244013223499309939014855378464112846600290718658860015294069881188226529540330061026494665017746431605854587195117285005294334519264488625802177301956162208061884681198491739236606143346616339828607497282512679624521999734320614891109834683878159506438232936736039268718942853263100761812282584246464873089363615096964210361488384279020506619872927167354481248798756841319742426750199304494295942541856661329615780395299669778443735501093950145972300719688644171954276979736298271577698192911016420123990464498204076512865812210259888002645389020762699038487342005516174070995529293800967718050873823157709343527301890887771471979950689136625737214974321554158127139663977458143035452369342437386930200923354803318100548787697581554154434373590240738449211007633375230137091510644558823217067121306478842394450289712468258681218247668484749499767382711204499919866494675727093348272629014990987429576317309365675881335063203860989032517180827327708109282226083156035096820476157592717395143366111541309400393022493113941780637995753764503516337393960791877023884498172934048659109134175669996990511839807444208489583667938177823866137459028046555799986380763269883388801699352339828892746572981809956556848263929960074207628776718288593251957102827734801739569406407931800221763574555192616432781847721129056574245117389676514061022673484013115211902311406253297699722748062923983497445506946811158422169060506652674705086085578908375365654027777148552930174675643556507601799664754962426945680571250307002504887542130070361519943465644952298090535060662662255576361519460152052354663207033117716613381871920971772183529527899114974513092740069386405850154359589833719830316104514768488971872156720035031167730934206879854067576345690616262271153687802628183594277645566716631150466104336495293078716479578033215125266806376096904389401225941692935595744978534293654719075868118455074535893764401088978694868479108415811235725783919407512884222425813300308907755068149945987937052056438941456839267629688510383502241795745357218193941316912855536420033898977562421335067964805799499033535772081380792236110815736050093785846046109993477873366384690773279298051569627059135346089129681979519122271100313797572531082636945038501926965256114244279559401661799462985342079548773105159165678679301815417529154655347134118069229993799340373652869263160304656679716910780293221838541966427304633023828172703965774661869110668879702571113301410898128683966010609570733573777311588993859530778530369221695168206275966178399068746744066625040230016453222449149351521996255785869210427961218534344441570135825390506123557806654837859519635222861184799651030784115512247993761439684442075601966860386878856016398395610327275023302724873716323767051047598564847320554966708988297499579218712995280168376094845382635944971240023385819410005240586321897886016641081985366110632023664123972699552669056436633711036141357635028577540919999854254885122738999985064479033158418866115499344633442298554783610174368499399999018913363073592804262202027541490348767431180825470539434262148087980162301571703333805813048103353346311765733364779026403669295262276162928647720234374911229329721812714033856930699723360640584063380427459466029869528517867811473810065838373077859382747633813083851436211529221700149553272120283784238922401321935947020201235703682320873219550438730075544035977229607650593920973831516310075565522765830429759028535079011362341972680728216759681790068248018690215013397558051122128425004266700641466425277819123580071139570987792019929860975180823557837447322671878760246308334626207906465298610512653698659557763167482080567619450950159926465318535805777475205013253641969041276642938697815348257270811764200100678050044832622519404216538940869929893685032347138881936051118213404837181746723155662351188272111982820560722927790633020542014098750354034969761905563824857057963653124309507845388974335155795565900508803671419431130728466685903726816030031629969624981518328062694068730808066221354775217330793814851941221551500874259586008637160871618135123886144668121805620879490987397577542717158545310699843377718758696791134675555871331369855009780713764540403508661155807909063034970535176037725337698328303930959207140189435445382198093560748012274554772778473442989237764026054712078300048524466867444549971488554996798951839413115664193919900018166595044849982170142550549520349649528258503445829895288564534353374349516787302456914727956123470644357037225815771210753260366227409563103206308331148818607662604643792653022019010688171077317504006753129022158690897738030723260666425926556980714772108051820688777688703430349119128567588780166522496197723113990307059712409217615934770823403449738304480790920374176981972447221124904296288000960669252361235191720583250878373491860579644853189772160337034215855375044216251529567020853812538346813293621391643476790365275050196465801465053049854601090464870627422459529763075612512458074321881005226900264890517334768569453736615668130073935979996533763311044880224690229505833390567307688799624705565609885099701900392686972454395036555867906516071634231993675877154059747008629037663362947968070771954654042065936432315764325649852914311481321706487771798311679747247801384695764106434639407716372428450601861456138725746770983751047739611043028858192942398572867575559440269072704667026641799033466380599318490880236569743894459235219946085478372375436316102536227715822798400823102897373388261452161420432018295142847210499142015352076531049869012470226298534947140845860392547751220660423907917643877397060990211337145421236258372878843406588395028299565675768620277733696979959792911694761505359141141940875957805026067796041679500274855949838893699388729760907149433319111863577836066803475609091945504540347820481868184400479152464084952985235834117369577471102883299152447726850265305315875889892947698831959090219778239479687954414621887521985282041881516627328830076285980682138562555131582198050416736313719595405828982627633709572043239291159084250354257884761762177490568513944695759389935563819468920861638006986653321535048810009412394722078060371766338384214424963918240989539572699145874642477515047181008801918016054318884635875100377621938085469412406276652604016662050058841198925162384726568261556137050318890969543212453081978514092741627363493617994984445968508132532546366525611404185940736956908473646980595395922044214789739033745765189616600649737752599928912728146777241625447983623866462318051783008308238485250450426340154264344542701200327704493393241396575419909210264509227773986595736551655743079037704365049111786139699565366302406668235091295546612446149196900444520361731316557260098826607049634270542211569392663068128355837244359959880404139418390330149664157486802356479018873687301005067939179050468159807334215745050337184201434080513858165603778853503719229233564193089356616955235454464599738797644530463161404103510911144077529552447191633615760787506930571715457944482881604878774289956953911799100660711869590896912344441011113837573912871640606003723600720897725543601552763768088415077357815069718711718582455683159121765966381348518668145964302231479338113081932212956305538293976584146525688591211345449209502202207768005499971042069852119371805001592272155546853824878563779288598470339633190717275184641499002884609483485805571627096339129051210272711025863668294830599759032725515384168287430738835364687946871147419823028358294203022805790366876723087709443552950845851816884936603482081071872746634456635125495212272953512541163456274721726638692263848322685499900729437624837486407638439718034976788091587700248724397444372747667883251352853540832147108870951692612662270406178726512757373624515987124457703444418073397150053125687378494314745491058200944014299635925238705357744652347513021279797016926090636105117865551288249470933951804527574340017862272610430998936384101573965541871237951838429467537248678872371288803472569126927210890333089168974208212733337951688692552892934374839632855281547231142944195677404934319066585435711858886874867772586301438584868489893180930701013775269098047726229726424099427839567869394244821832581177562516765279457267523994259596643459382950045438284899995691795470483106469953045042637374164176184478486905784818439111248308911927057571069650701896896193927051507376229709892206638141711053349936268284559708205234407067268294039223307021783510627442085494417660987387361466364751853940802909047502981986335559764960995012800741943867783439897300526593227966069565728475658273637970217479043147448918086565373451865737445604093677368059945036765499584417112895488376771921926260970698831441733280442642085521280937454182102053984179068779363494860561932188434953577482962383722529208416762453554907444970550034456434144411329906483859935775520135362081287596652329652712265109379232414075081290857861977866010541179129670459514304006713534985552637679193208065989894516645351415389329863293949629555906188140186708887582021495197610596288127012514517500892199857900446907491949166214095465413601816706231344511046440306386076830595550390779554753150067964769060368077369778599623342441310492898259323503312616905753015522579422301010004825137956876878289091804937209864510395913196746574555034963790076001297702224426985001415077034025398406608143670878136864298688137397137287097757842914107973932191923978820423301588672750103506401746853607688696500620133281581771421695822885035313486735617265520175465251087300828272700816729728677671650835343119107783101594995097194017669569333133330376611871312638157660631535120295702133441630770035105915196194220550261887259645803499415872833825196571302158094610402949368689504728119981842076775220460698840162180241280440104178495531650585054374585805456928989558672609690809916399703839046726382220760867157622655672745910244436023364407087156801149017085731643393418403324141219975753762954599326227345316101073121427686169362314422990382016836609168206882246635617299050775708921488764324996962323267575202184095110014656181646498119152877822286948329847546341834766690330624323627635190603939377245501294330687722589976466328023770104030365656269814327853717820352795593773134500917229298905557044717543559784187477454441349762758049175237285679606549075024591202229546119878171542169555469614864003955356365471776004265177096550137282491392398847361537190060422717633469605679172874600470704400609810926462881209260025359628642678779137928883815253914870957432918750697474440586610753134119851767298789901041790355953307439497834190470985618164426920383429536942716002043413920817383201040175629443574057673529482614324298954370600615789109142051058413026413859250991858693998313041187051075638038473779502737988195750017017833496308062998661475788534281981316025847239982006770916985160604126285167471931434098289227760333424004353735582164127859969100131345213704850955393553921804000389698398993551454533339875718477752351777396230069238367025881363143869045393936022313191685656670196401796483936959640591846256165684672815368199231395435466656659428737756691527001086273166144973463930932378187175125407648254796999839323301768119749912156199435854242398555572822788264590031219392796547822268898082929503056933730071639652593667251141395190934813070655132844636691178839743218998854482717135158003651230664832399485850502998939344302621740838981669250040514592716011340590922940528137463211288393597265473022173044692745806566034556039925636388638253380209715994624678948619407764132242345437856103106943977724650533797541316103997311151423167267160439268550711106635483606331834697856746229143687461203804272167343601713070766641471176931757567254512730813674521724082206184692201298943024426184349657659333453727930162868601896216122559432693042536644182414627000935732635063887284254638991627128368833166182909641249467428665366063460010342932278094492355360821240418819246738429733735782418718585983029692686751915359099047273530410886510372900460687274003591832104016827336358269576925012128338006479139298446065452762007128885309831247405773486920808765118471532931706061067371594236298199300578715596048466301596263244198952686849411942271007760484002347810150968477233328116313693172196288013925531979342771740734397149489615352854828981061576812252113472497911291021972556315772425492391593052026299214700519048133439021875911627602027829194882295091714375899805129285406004554076025282672285344376939237291396360716130342117856160383340293949709275362489848682912249975954478234946865328831541855975777687194051082264599404079576274467457048037090388854247895004486484273137635057817714688206888812864859727607449011152247947858278784769467387594286826577237849008227713838376299735644998418604667160384913373286158544358835852254811537652913854436708953981871145762396049131338662803440688595944571909591682850389261649525854425659809203234820865217620488630434243207245507083294800245945884009921364586476673856201402108160166889556001076007050927746667999565396317966553827448560660948061672394940115902537908939660481135412499452666284945686267055598963534725619587411820851695205424380084971708226337738799551425701768382018004543608509541791442879855310001480461167421224154066356887193359926092903907599749392063384971614563492527429171157501532896501635975602034343416326416298539607716213229349737699049415706722197520032987276989630075088495596413132698980135823649363971717550050095965437629107820168883874024653190528290543174206695097944618431415799245974307265652843815914464163129713122483536837226230532265995520013845319796140343277395187416695017651838055555216844673547334009264973739271031221465545831704720757980653639596661917635610260238698934833819957813432803852745817278441725293148924420375227761003820312049038318071556772462134880455346421875112092023962272900982938804043492725082470176156422404561580565171459318760066142700155911949111697632285430100505838090395560172037036734033660077794185548978628848376110351408202638215399871509914107485489259367841373569460624609335405041715024584095255070551005072141102161977616496886304915756431809403711644135592300195744623647332897428575616443293166389491644263794030987117336944108704283377608221308797351641306418524375204771190161896539420123451365662211427643367755821767065447118349367398671731874266215970184418257356876783794719039633681276732828177388463817610105093092467240627168323988499387828383360645396662130088833684516719964071896727955600564737931614236928737357394743305371389387950158311333445395438083773309666919225444284941099157282507004348748525312286062536002208539060503390949653709604398236106283143181320022365396310765944507726774966460296541742774277264991411847787223977958123225755975570951940211878526402501900814332868920240252268265237037966388652336828167186507965107038840915507996503357639623413437828678945279576362208935453283949109301006996838201758884211476542721508913970612069554479700513256018912136910815287306936210411995505242967214790444085566964340700897828753628094433916654964873002345174822587674452193961294749602913454558858973745546849262596371078438731573947968473306487117936624884637442191999416853045329936647463925867164590506351092529286308684209300711576731113661026804082499017808553920246624814970444454992351154308744704760033976650909685132049639189585074665102908728942304682008590306022159864398067636662870082480885373829890138012776057936626375886220758031007175461607225075003033114027203416537008240427504860811070565254709248277946559434250860019977657242521908660288786496895074599653462998397915607181705639985950706507341503416146756341707523445044983283396366580581670234160571263251300834645349452546179212363563749819237364257207324516160071285782828424003419610607947004496814352885687820202272215220551063325646546537752749028341112620814473190286537620094758194710950218381665601596391331274809620031867762277368217673521623677446704557938829343484815831047000172107949694161494882640559323781420231925056541165072603760994280775463575594816115974902097404563695809074692786490608701657060222195769640686670347534215385016667998935916254734881149312640611770051861524282379556004219870849258920711211702850184277794745775980681751001860929193912420386349948110414106784112049133151360524907842185938793415353958674230373885183081500287523861711633642501553636731538769696754910101394813458209069956558147034190266402091820289045963007036213200916192665367085650865107911959411680489643845504909157775244087835502928347129786684563547024248912476978222261942818414389699096412844773819012891663858464006795383398375519689478199387615357458868142813837972888294747426660480236989378807502544569386905740504426820800083260045765799176909752724193396544241544768774648708763070047797418865209436966695435742803514122907952885887093498610257439918816662909221163528069179811495668888693172734402360166417276192098689080250978944208840117673428919368877210733501320169871105735444525702226423264887632769038801491928892150181856466930264925936361603659307387282601876293016804296051036077504786257381432707339216757999333396696743849868398024342035172430852593950297964357870246292309823877699327530787642977839485571749174208533175026680506255786242377790063973132207980912318219930450027535335187171823816805908354120823645227293918558621435115387575572998419278466536145637160758251302193558429208628912756533894266157528553980632119501553173887460584027363128466234967672655698183756721110164304516555807851878385939676960758269846350623037779053997873022255886589837461663618449600266830969818835096288180956483971390559757908503364430043344241481718968252245193706502454539411941183011364693587649888504305412275163493633145670141097186341342442572587911526735691705944724592418925801500471586108141226494633427507841108635968830462442944567814316407757170108932247233905853538163032391432867285082700385594267286646174097189175533420052800064729981183711074270030585284200088199995136543809312943722082840166375398451935345048908921286810216105349602758620041784353315528556224971340340917574365680516142076420186117414503832190323548824215355154182851088466882014661532740624850018952501248388030165232507033388055469071010602380585066650093168178909150798747935928342066965829885237854704998056985206210993860443299338729484066879620303980031768417129929140590104036737515207845985814947496471462143132600793448793631761219677924956544115528902398123049399829905837401522786598730126362464478963873508477311870745980848123196647633602907542845740745753352287741393532588576859401323106941458724751267454292959310075727684013238309676353392322823340464662348687582035256853444233515380139936558982198980144324422773655429538768822450465605316180838897430991115845719158762643055819836534645753469751432914867788970842521073736290764255060212048752834692938381625186638819144790580166311917250842752340709752217697419562638701260312044714302769235122406937600389468501034141755536637719824183461748808857375408145585118734133134290825356756796385642801611871958575438049780083302090938327146092744997719460536444524200628487231478746693228030991617052872159775848429301928983088884742800060526417577322494735904412977851219897269042239530850099900388230544333508357003801486292960200034173516977056739956950157921650469148083131696173563801125161561323400087434816472914543364515419006280000664380830061846579875024465594993866605690612249251688324122629800988928391007853982333392751352227362150125294242073226120328683549754822601305938687972665356197477851969744355162972243935230296364969427059060115301014805266836597875493787011960275159698836478129044234922756705856430541683017523406976189661219804962499679051769441320017944463431799347236364774651483752339313358412339499093015798146296809461377941138853832235532407569028432633182850781013938346991725416379680344403187026471101253156101787737329143744269056086086427005089716188452626483078820177836220724293225453981318624098277906481015414904656835437793806072360050802111587827787175137548404113110575924407880481974428118833452130868973614664236977139943384878839530595821142286813891318970834341787807648153354603078116260227986983833545919510717345655053953942991812016360825909061082826377557405182340559053146896495425956844529708155001647005180533166889774480744520005413173806220362466899930842951419498253032376774689557931326749696845095871030418740905188870095108987646423515830345898903365639632514208061211471649514605650654162349287805559411025554463949159881617550798457875123035817352009006173283928862549686960823983637612293136999520849636506401731564911059529414508691301061763635456730491120218305415109535328009141114136615127742983534608805131365568323080493367802470412484415757090758204220099448107221615199402960025210309129760354754166340548890047807038610724187034589102649492600088069862677450629618025677906213823474822640968234374414480297735422291196871448940982968344304129832229524408923636266802651636244806100798289054115166367669873780010033230892912633377114513447180847521276915316006925956579014133550361064786386117609613523794164381674168180430767109386704126065423820741858072928996415281392867492962390726513689869060502319202920643092245632339113748432657730656706289658193142912697225018343123834909921324675814002619171300939285906589056006458811622358312182183930968015673941768735112381275250728458036219615501402536755059625399643603626378148986366613310073605005601320704381459732049224182535497319365594476530602524669280917783269425987415001545973107413939486797197302279865440997996150113567305893112147779325392413034239032057720076387566801801502409431696756121434705916366828567276640567659216900960519714537274866463965644805048588261005938568354681739712830295240411066732759812573656622110556411015781361939670940041058325781449259640638898560603543021648569391670112028983086285796648689952912065156318167943343458991861880255619025897975354360848276911080806243271718401715156409712550238666728402158304899089401561346322718479463341810985589588326569800532038290603637026250126263404491058690817791400510414403843412731245167488319622334653608001612754558699079765736119133939536023470344687246559908794372479903445507339956642793052682972300730666876930396807072661963312518312879521873931176278129175933312669688100363955094650401966798842664793546904990665479703446857160003446711313057666651498204024845274609168875373602054105417339566113826886621315416728191112268915704104445428956415610949189976637068370040230559525909123457059836262615195573767710359380141407110464962420805519112855208294998976509263007676949073638213557051711899061592373721878035142413080038156693662286780904989236975261094094992769115070394486343738343180602889278930784936165648790611335679333478268145623075388672558890151384145483642910536519779098737175759891961299794410479487491050296942654850159791284726567459525544555988496550254619096211563234072216895818799592289813594472466229333268449040491037760016222946108793751427810574469113589696916477399282299486936441676212059627646777192822478842388111365763390429317746549825818113825407285272036379713978670255032416712078232973495456607312693308922664642693766324084420026587018447430709348410493010466522832293432293416117287333260838109396936809135776304728128626497265973625302324100369389628703375928513523923749829525104456788658390552123239709166575710455036876203146489691142299799146826909165186320663995652586770780913281789193667077084597270185205406596849933280027103086091977667970259765445356522264604711652500221601142245777142124915889822306278355007351615619473818144541956766239355279803141973387187416735213267593736881107641707699475435614822117732322862073576892869061970933195332202866588163957253507891446295169899870197083185403118781080617620728844226607167883752088688791648061199895089712644386168139060353093340687134469055892618147592766333513685574250664031857829197804417868905687315485592808481772699473264986719925198620864027873711788615748841533295584882899180387922633455893781277365691898490617151499064841886420276991039725051400786226068804688701532938422891423282771648906285470383768685470815776996563575240563494436612621181788477108579166486034404179937642218435815942692928285317973799583936167622050387169003407321578210480022064649816421400528720511851921988600163891589851141728775982135754278275257472680465885854849193965146572993020619289337563857203910525452918980091380404502506397702123172849242532579734876447928151934823048341239414691357797954675053347303696121524224253947906348402325066342636487613736242701383501722696063772034717205366091472470261068256185675411088914261231343542656275536582277203461351988917778499969569359301653375086285375378968412948054946889136473217005086348327358571434291439348369868743030693345152148946655490045427989060338262216933239514958431820657448977983412187975598162063986699720894277791580840512073377637271334441766205481447234584992999918628914305199727420708824727713207600698326460309926348317144630703173021142288541243024138343156823793685137684056757343044128202666618027843144530396477312454829477907255836447871522461015382686324967675006146308971879590833406975610703132487011913774998175033921064298959259349338926733471979899275807398485531960639374547889908875895008151563878915023999285529119505609119643809048967941112341185527495599687398041646456665904218491319442964478618766805864652748875330935218890604563157749539727384552505094429490635901384359000128869836301133886948717568137551047431868130959766108171094401202405178393611659141260207357217786222708553428894826835068115488844150573267643422122922827319375463661536349513737914401916024454469589261231995583402997211367552912380075780953753331310973184612391437085849912096378820765026937050901396598969088211494636081600976240489821775845313134176696951682459417500792944092850504529652839599873526929728123397929448129911534941860091566715101293387737026529195352409734497519504407373068414881844312613954179265654136056161744302312960125466613960398984184449294092315303592500787114111471037818165219788043138733333119948447824016157595267202237640592218473731646414341379879871342888614374489095358456771447811670666763351975399970296842470201152071762648832066822468125429580272190496203540271557562740979205486854819836926233039387093907189817777984762279696629230134916454791187738603836917916239806285373073069117137955077207483353581146258043507276890736530586678392232578719435785642204493304988769352214232621812957370586879697980371528063961554427771526092512422354020575781020957819389786067458007854791107767603495976314003595253281944703683011776427086747082413437361039950675758456979531357999543009555321797826737616341662474503311112583931446265572837220347458560200450248144724329620437725924943656667529218420676325775669407214390553493269773478623250416536601095322851315982376531822127917239596683261305008381737558482888487940014297090627562784216536785023641771212663126754614472873800734811604415790588699788469162815824983792870196975349499624002177370059778341275496991445955623769898030992721803965645165897674343794350231059853900122246845379533619481727142055265628927551979439115263707944233288805115323243429612325207026582339314094017827908146198761920813241682892780342829266942475347516046959429595143513362094792115733608702502847410177352573120920573174949675823785106435569749328238592978854637980114177313652447319816064741109964295085155406074474056614322487345703693344019429251186352323081171121277606392580911562856796454874021313133006092939928626520733377748396735202622282487388118185611372002466780898978223936302154019312983026204179380839965336163114555832444914290568060241094683941416497755308938240544745746521503761297545005190924597232203359325651618928099090937430926642041262029950709766926110803816687079808896595857025373125123056066023106989818353590700243252079728079881359897062211329676607050029654171522876649855727159000917675054582869654288880735768380173518135755662878044420209290171459833854700786530989724381653949898915347831766893893961125449163217956662397885564667288653882524612127858747175067241579677987739888912094127130207308153671530827179603890883769550759311093943877864265529400343211621816250256201911573928499107737575131187882779408071195398231708058866310249310095976969788099935926323341858665467325425732242416340050067814598519645630985461399596738128572228544289747333795335557715674635569005289698748524005585727620085236503098346647651972739543050822655541935283272430489545055432767717345275578731862419208924981117729685417093375667391811101128459383763552053793648838848318300713974817559457837634782466622164275445900930614820061528028952319906175349981601495166858920026958440557080066784056601666757446311879782057555063479451176151090950487502809232842637309417322491934434328564969910997474674135617701438586341508564844050491477336420859112096939842921311298974478873389501010391197097234733749176569387134856208662244915781899212660909542891269940939662772261862917847731133720510589603900374301483343557078079574771472468381482808704065105934112468291895001178581047554353567693467587130841504401020981349958404851218512723118955694922793443426943142720316733343340013144696812675498735884974301990076719815694571856508646290504734281501022673520578496589964387020031087533853152273340002059190286648251823281490422203927168257686219273954977716200312622575703377087672412233747452398142878168815697071515229059685964709948217169571558398283916353906617180136024390014529099341644443024341075214304391899624820577975937291969744890760763776616288820387752034917907698408381787363650394589412815729672420622576797531412328685691666081886446360603802331945646716201188968070917630974784267164705193698470405928714404855631924888065611261363895821622573136878805347820362261493203683839376515763393011757047882488252624283223550754911584108814996938584079319847022239760733207830154364658976607578474594810896955465591810529378965247809734698764204907912587484166394051474197712843739218942470310341344309578810377905430172110497446805988652761635923108174442044845714462490748230247140789416559706299907852984679886150770433640080380423384777839055235938857499649831432327022230725643474201057194253303325270476420066766521903554435315727204637214035590263789292777979887082681455367804842575196749113300420138358662956801680471241427838284251460540389809364987887539621540327497955139732140611601856720497185000907062492105806161960507165853711302874774414339798825910726424060768042457029390947777547654426294246940421233050724033108933276945265535635933351115532750432375065873186095688040478304955031004262147819259089945965871087201592120235392937785882935446819911748163144887144323066067295289304935020672931637048905932432254267026251278207290840835330141410344226726347984884008510014008690987946608821358886774961329996350350616137798609738335285341014627364224441190187288202994215994912837293954657579295021947290717387497474091028078204410708706256925889652551219590877233646756689749358037632197517781923792701055696905281542671157662964304195377389329043985236126505248837415548185744502471761475202511963914057962838905782129752929142349941970902260047598847701233233925861774487921768091464181232872734568443048030614397975453717229089670785939915064645282925301757969898461869748033840114183124597023288279511815300122995580096664349180488491613845995370398960008109753703991986674274048121880353241997199826400908220238329046809904516044725356906040370628635784531206442799907575307937909608880287678087285317291696654928974277495623626662712408842238033024488768566881974571440933079266090846996249821417997584797392562774566265513377022451623304961653749439061680283405169737085377584919703132768866685366610999119168931644082107982032333405975541149836890894255089338264765565372392102168424677593799469938556295155513636397836643058277806996745578072399140537389358329170804301565253601051393300010509446162587379669355778774744920709252120516677095488755447398766406488127876705503557451258539035672082278941993027950803658236701857279201920113459071185370209272799172306115198720163009039295612959894014653422361992645379070438682387078452068472595875010998842097033539803199641375025043839627424271633958286025145869772838249009089484564611245756052341111743106965177570177378052038267726663773746246848018704492253468568915022729928561748631642099019668622760218276970067945140892397213847858162375135575295853611944049909118957123448543096826860147118378679328203716350168919373886325129456963020469572504105672382370168879649133067500976271648463688792087543808337728576283330156274272627694713268927670485264793994996844101185373265443318163164504175168463608795121751407412159345247146231155604240662505847543631488018231240515377308667283528721396617466045256306360038966657701618250259354879654030173764167494687275830708706244802903092317893215493587833813938696421154306120343177785947411779071534627727476858829718343611188505674472705127200190570667807121249373744659886740161129596231911146231287105472366296682303415386125212081637290627008658484698765401808917822277764758002505601473336449759240111915433928967603275453854486791490811140500539211457745811510128355118929815864714461225813675361676636670714269655180166628816001268638427074508705185154224767059811027906978329464109066108036755804909829000360840902406704684432986312093157178053637156195489093663963568525808150622109993927476813432151534307658602123166056125445940955182202174482144081106345982218036203678344974192517760318525871308224102382332999869420396201608543980393593790608247386956011942891635275563710712576343048557496773942204648635396729619611845955049446314667774386799443118574099466870488928834174714036467356365261572411291611483632436719768156749192355577356458704017650936260943427772552068736828104944171891904558021718533002190355769267624431140494775708079903037582170192296275177625304828643407804462616539086850014397994985444280757729922276179769216071016577333648940410849321922885269261869088767648510763129985591596891515333450729503504109119507151242227499773081766536265498037789435743387597827360829363151378078641698108438360896374459562491332493192971206452440265766553812972742833174764641343926926376500176921639651816941656841231202916389313429789748514600047786146352655847942118522265437623910678046216111317134385154792663840892293266157941557963727838809138059981260540219150897253274694366419563136538865026725964492587244985771721174029124125648890725088887243414462846254465510968440967862264735513704210665117489940395977263858039090352676743383580613837842899491908751409798895650339877561298123693181856092485072445584539049363885347822697406649223062915225298937508049310244823011089403641264303465820652544593824650409047512132244123794928348897530676494679909937362837449552771577745914107146441205409852533369591717869538097519088680933875502388949753729638102715989893937255673327879547872221417850444855470210579961127884649193488241331164947589571609650260139375761905186314459985681297214858555304196197923614896666934173429364808252733710423516553538853236834459955036651234131936232751222735063926765136678276128762780468039766523635632033717196650263296000882603231493103866877217258326639041439624034748465400460918582750184194580661597267602490386977298005385261461320654297803633072823890539432033978814737377234227280507034975839494597748213426353168495089414979394468935842842964036417227173435534386620680630776433294447021551139255948648700947057191666033323496756419810316061153011444010615819049820340067310082221410175493189638473021300876407579303995235931537948274398489922631068289378923693429253289959917063770830261774342988395205908305269620383998373463523767828267409624435166327779205296221428064221132280185326306782517364674291188700359561611486727752355547945560148845942474545705742154447066376037203229266833316185587684170987428687381597373132498307859283078292895405077174910047252195679178825828567529644897498461498181059503423479854460930506043237075244758883810305972483486829206041480629954042849768532944372745777558813153350206609955492704831451589145421493278513356230932171763487674927249738945625445821386580491270154849137313898570152688173425425158811660381288495610406016323371875897242201262127294372449121917502984677876095604347099462042208708113266499831215199896474350923804471232618829767401863394091230367454976382796981740599156491031110219993891318212846240978912432418300626694240101963917216313689102824129106994475923390986897584701121571568116123797655637970498153576517706052158607362710761030025286624332174951370665231048407194036484610098715280091859932016917741003343014979032559082224194414077061133200449935749718772865467475746851453952532340281850803392209086355925442976681011441017986970809054122296706041637770183877536068629731966132506082529671097375511379145353574244571634342433082491023551638744138264267785146386631764722432014717483583720038170860111354396582913113639618486128970699192265630934092744407006029695691397493590350638945843328288423191315748556990382546793246811349266073142000124259242395484898085905472026149841830012523168119581891140341215616501889297913146358179220122102578644618876709972593656836039558586572606796188277738890468257633908085490408594671513629990849568397826061821713112341614136491734997052974174045782190860347434325639218072883467991586465171402937374530331605730851225835636568192229802151181955065661649985379588729515832028554619586121479379390749472167101304192644072498983086199478886523887000847501426382443516217958916925442745908761600009148899241596860047023931632676527306937288252707502306226682638883984257659155334243576809445699028715214500300171120504507697681213902268344464307240913567564337427281193689978625210603712474819153518037061176018207885209271197066915874455682777591198909195679387145022303484541183010685294334032807277749167901235808268563715200188370097743804157230277143365344828905252486370251461562209017540484769505047836069229915487798203925120905060679423335247661295196314773101849074120069232757593310771270594686769012269196299300017861573631787202926325490375941383696758817459299698411499864525590109693057149160589156625807514249063551333084678229579881478279018452930703311639265742417627045088519462617685298800471871080853849624478517374670513838642307782194702090859846104997234346933453470258235659296412888435292688025118056942908055046651330870732792560421700024472250530698188425519009097502680426624455906551230204604135675704055988894022251046073027750336001360307238844633275385514909642757725998783388292131073606352807248058080399041270894581736482493175851181282248774640605150899257989525773960701019953868029901518040274285754260110442932491950893418605215357100096042614017020689225555467649014238895590708014086178665254299386638144567998622319017377789448184373524457527269847775212439520950501730160366582171285226860999990738946090882182634501189898706217564582379677764317499775609521773110915537956457568542359457207021486939190643563284940119535933239134965687534302133753615073342860434505918097595908771603745984102156152578298794951804368145803533387870805241400212704212196355074802763028085267680376449109525916038028474118960057717119250419000886312719879155169906423812784491294761902831873197582331111196920492606008708693388944413749306010591289797839866872139354057693268095075501244058516550647561684725117842925261177680554143117108832490752345954953167590997971033129762482354494884850277911085395927409496120295240351990882160317122356683415015482887422763982157059306938985684819222945550640007336068059353009122035679348728800292393967160185303129212345884931895871017743059184856996957116066869374572976679240066358957396273895856463012659926637799613233698688741565600806904300275503687975309568569331954839938240017296290387598882192102934350577250406943333011310644129005651320548939495271933489524505689242771116714905689490911394583564461082213294695565553801801500998904096383100814336710486798039261781485419314085576201239010508630119042115557840641759486864600217127190288823769749466377222799999443750910763645977442244907569077496592432407335164066691454271515464471364817525175696535592489829502197262818343831790986015634249668700327754559778373404890647878041575254875509744273829713235070367989345677284281481753992042108918481745507993715474359056240816338116649063267011494120814289476488723256338976154219771979400505963822815382263196890309340431276578693823244021858042824436357593438780836338365928258016321659367808073334405217999444227999013590873149260456018608475119575996655378644146404235036004349430352973520185190415941523853570266183063808560332697741827155275877616568637285527084561842545396385156939398593902726004426235962276575283309532014053091843020917095250863676742691403495310453698599134529580960749528032227923109053877143014223922232728694995275738698692120728762860338492881502553571448034133100916951405360995849794371072395532108864475338468381131122832398914540153930459687269250271489603662191430376203378126358418653282345504494524597235965482213534147122650229725698194254623705032444403705120163383038564873286981287991450348700035220893940838762968769704332253662495119696741932966793067198164164300270966565753388272683694641636321623005949884100598264772610167143576905113997271031841983983340238563860158169664289268119104920340849314043604782156695608103666782208827945391419868326183354178547868016095414715398655289758244335669534928959529555385845362152804871790448202349286457465698291591882998227783295749437648705217897576365137268692643516545103765132333937121763575728903032401654736794514162696842108536463442801145869064632305748910489407448476832014854575280026718024309887554819448566464256708412111000548645814954733175729113948421314262419191149642653018720990307481765113064162735892879070300287150747565645769070938893480452453391454767377449478495018042066283735343994425526297428301706092842669956680488485028061221125803998767121221531404441521905353972843017169505789372810724809324174811991566585861545308874857271862908192582090557116726836980498084600358980314774080704974308212714707511184680856636742282112552123542580455312889273473316331845773103804242496198574578861306875169680470438494890485689383552297191997481169202726808364358119078055438957429572992057163988676957416833241164974067170330186163188177076798049079424045520583356237267913493273198140061589528733663394874892893455716717132287669188770687013081844998182235648592765703111322350403377801685354754079069137638668675572719728609575955597911983216490838583035776510585890348949511409429710309281905852016312534830256831984289173462270335594494173774651854448624200511065913891349287382654035082861351173467737960515690854759585186766211360798711607852020015529351006043439674505565502855751873551529612275534505390046681526372238185659547339972205791095443508975907166331400476746294484062941909766776890857851976604294393841758872409734753717650870176745872257046719533623667439277343689818426618139018927968422611079487395358157949028204265291943602165369758444417424036413985606789719122411222703892582903896426959814355852949074523774293794532451123618948990813485476284439233193695948545587003911748145389323387180650279800437210962362156314206732477692132058326553087759208003714181298184332875208392090868669083120117576515871958346244819460664507314106625312399543788016472560541954452734816104842175369986223875240065623289089909800406447887052575019002884132323875794767492465481478680825534722236988268926626714714276385182231485051866784715496607673099564243576322129372093648917776257016967235313509021727708079961476069136048702768999602124114891842488875816737746076047248079000887035514279659601513678041333731332060001879754619458120828693389138773012102704527983076402439029236404107261850261351436988640325076519886764885464898025988358190148292518609257953428476179357623056571001996183747824150972658928710332280848526888030203237700574875598910599927031868150666212922177289941767621528201513777228506539394248885855733785208989811480637553420595750928045684159626097393138696547871050767917266994581513576224370734585382144890772065604138823976739346805760458138980882714585305216189451461671403984011292380797568245920053397614644565078227180002581941127784958654019269031337496548258104981000299565127439635035810226477030154703457981218594968559047006611244352421401208328433949655975433750217721383070730888292775713028585370001821896090081354174475859287980885704953065235859524702091024307367732736944764232632151072599313474729634572274567044939339108451161098966844176750028674804332808600042791059023320513544994690418892079158533205672314402585015024476225713842160721214863211437994646002415779417609680898346713057673044622037441923603673774706877039177334951694747663323619455721630742549281587935299161849659024416662234658838562893609866575522054270763177646130970721856791267159753247743908563928025829549473226166099280670470577041678664651063861592499867520558178090706796794989284490957216904493790947844221162888687184739944026934488185996255795314095386969513422839379344294095023869151865234460475508080531767828522607763643809319493176806616657440394398806647261986787049981194024914765958805043716834248616119411610539059348413493150467949540171080211858738552630546370113951239169082184715279537245621221242364167128893025666518853086664153921797183781687303959753943672971251976782409737044209915216009979164205111228082951389251375040127102478520608674933255734821893032358689549342973232970315121843658013963102786804497693664140288113505179979091282288142956379159837490914477483854450784304249195575231631219130709050322200487637149387522698802562261904152198903781758497915285335281151359471802921608450219575315909865311151748048107922486429430336757573722442491634258713935144279668337200886723822212564571626057086076090226010091407613305734590656228253139269771152255811473416618368369657218993024197011733950018972692800795699356759836256247003472537688421211137036581794413877092909702302948967882162498894441542081400555904380529649854490329172351596606734276263325903008131572607566531263010312418194928981432983990452848996352332500513973313461628348696020053493402963637267180547909096579348959784525996932913048736114624732806722493992646165075029941098943501278824842681656673113115945253438197228057460488120052466682967667937746771146922110208751716118964464239965759730140030482958478346029580810966829471777697628295338364355005122523824714354506077685828168406824692533027349721288561701330522048883954686944363729881800533484657476145550855222024294564983005082177505073344932872689280013665451970789332755893413789161943267397921923122818320225350730420890451597908467382165549887198646712151399042079135511266791843615448108743093405905782088120974510849943750057642060080864596682729817436755577038497835890896470314135594600644435141407055359030781370296346358362749550751631033387279604128305733277670657201657981085050740178591634905930561010319411381782387588908244809097861459820034804412989213675938989716703972032398182000223192735603514755512791463426297576319472478229950182987743625530746097881270152399758571751616384376542493075213946829638581375659453942227584980743697741910279580996513336735318239645927079271922306206216639584640481717532137049368555791537161112719085699980364214785087644108096940526778326253318967924091627944161249326779855168321784706710076743158993601937665671374515348195995755140989834406121313148157995583653353332424637598081553457000502099910575783151617748257254404243310170318660953037282427165729162129737589884202773654139732716977714010436061047027478690589561812603485494740271897937502018644454880069274611783904359963768640993631660096431563693435167309895192034426971421595256693600061725544323058543964535746754399881623896423436752562573817515876258097643400759455256135578349036071736414731975931243224532563279616886386032221746817403193484635465913401263695061746437901724016303433828632968567748507750032380754783930642645191639202880093078442934457655813487508733374149112187021050359627839237319791706933171616213594507085022067923995288235404725369339518297078421570982197971243605133184253184214451775517427841601690482224319313918686774570795251625961413507874845445005274938035977821571394091924088909359860315301569674815024684540358891786463340304969816270584530800301199257982603385292501984651303774884470279236135632773367842815600062485960424500642828658969859613733479390620191777763544679237025750411746499444030186117780420289103471776219539965614276065199250943146691227808181803783003074144699595449898013066849173600916663597701963467569358159779829398963700073923727493801533144791637476036357998038208323828021757833274688826700060803516591406525438524341809022237869108627732097996981194751892391631049892927562171749444167645201091211615346748016807070889926268301908088321278776333337497068231064150401107609791862324069423589957855875749587795532112477180091761344730849394515100852116519865853990089379391086777796492707031287754351398148106711006409618417753057146646555083982990995144679807905474750052039380331698083178213375679533261809788916667018125261500377509982319540448080643749768977539794362889548845447162327254479986937975496477958223771078123074550078536649085347830778038486866195090461434775886270601932915648504118693376573690763521170841940491305965695192880956851973831265542643788251096619084731332621958692991251032741717712011011588277209829461819288444444699561833641542286642911540998080794148227374401945400686680330631547888019442562121144332862272184433096396961634679128464609755641709878067874598596216628737413727722366059088547512792550057040377437093515237008094567880240589392518454324973285423227838502805961515481918458790727248557767683091958250742491949990759871007554971690240122595146482085606900686106193171515896281840222847807730428613094847846892414442091422149202916804665418092225029119956915313509579657588830381277912668831347276680898884135264746151981101227216281216091836205257899547909021624564607148000151830781248113315613460439974235638527488751629183032296171223409494521815557920118177103264049458469301729576329642374003547087730375587966391827583636424847553853418812120509350226667362731680103430325252530602676491313464314403861778752582391681435685908400169371140062783754217694280604231705234071058238214125617024240435263688153039649130535393771664881382749688567274751011236200815085389907334468678399403985949553850493319351960160827084937986836006354893190047579003684139328956910312789131362513350436854560682293804151002097498504596137095804440716033399514552081121392394227735763064224365213769817929903683001814288649101721526165759836306696219348309415673453762655713550610985955970797935869199459614200275686089650278254766295771669102174449557422303098435481865716050785313747885025422099400509011810692219306868374675642008759230005810795499877837668959393671362414450324258625740742989688396575703848801685606405042634114556990206818243422045068485509592345241850119995348347009713968735027804173046695347954960523940224869519439231883541016351188980039558785981481605734885473550044816521387763472763855608474025925731527797469122806356716310544969713248938309741126869421041506864180909077511381994356038655906122515608795118286201043844325048447175100075168904086756665211837760853932207279726235992601914333831736647632323090953754326140291402047980601641356705391480776334298611953531735160285926335865563737131024701528019121631606468801492144804853284450606468254803388329575767063828946296903783266163852120409605096610138447409827882749118743038709852133587812033784790521853954356733922323296448172077078573242032853338025156836087335203503516943377665542633110786336076656022320565269776798733405107817317332765607328830045437517463190908263857555993197910134875007240626506700148139035633365205169720718998702314410633178068262420074643747146634807894773501140051486787900210229603524311196482434676642142374512233708427643802512916440053107454997111445113783336639680906647647103029909913504920160771775211723499572770276038856101318047552776358054428208642356133994720130342294735973875675025648784267584413528450811397611686296020483483612419564608681090175776660630037027339973413278873751918899013625617680465863710212756578077154258366575642366971083459947783746711140591434655530024147422694775305601916289614482880417011538816855348161243903455900344296578917792546888318692700389585438672805465631860904387569600938998345880872380443610478891142161036079447648917973118288457999410874042851365408112114405120357938746425097713674287287043377224285832189158292987077524642596689138676127440064969391413333731897533036394803662462739195966455283032801493825282739051875468971738820462539843643256975776780923734310269570883798306252828922589545576674582686291344630369439658637798922674833967863405333430894663373263600238458137068076344812640386960867426634702045976969173944868831958791130006672502833485405323084291146129881799317055955860532082318316757052563466707040923832505727950853610717699538366933848903491317769480732734774701886124611044883371690566316123693017804660183014535697083733678620177888009132625628619368313422411011509914450496779657649451869561700832555631849429170965539102911241568719197209408982261017077711131373239361759431308159459225472540322887099431437804152018333988019988439308818242188085879791541837967938708151553640097338072173909190322294878454811102058653736747144721140819997944150258536084924212729408022546070090868884122396121255527629744459522498454994496945376700269888808195040367756922541700745104198401002238679098144105938912266257008007203272116859694332170220328908121251191006488064484565273335447168077853106498096886466768190049149165302610242468338987270782193349307115114323237068214142336459003683122747112217375020186013682774225719529999905203496398887484924868045192925350333865877272316390259436000457336280649023796757114782934866707200595878335069369177007401318237579329541759375300327901735221500911787571251579316531095730004321509470298805128519444606679764237358788121113106227737727261014031571363081793102051502380157077902819099620066293803489941509290373327281889684489724348993623987824360710052684828431583175618404034768801470866946977393539704221734148050064056921360172966593267254630128141402837901722880784380404017219867706855816516519966252036628032364109521090437989836864699971506346870788857029958056578771976863760555408576174438324887678804650676739593661211907925933285895877040645404032690408879533430645150617552540675003790089155276296348014932097743113581339536546123191345147307949133269926159664685580851528345596247009765557059168541769415914900716768223626357140612688645776685572879735882958098454449940359074504409761992314820620268798214107295116079405972186963289763879801312207646701546008268048971426436100084977921010503426659350937601164637325738253051278032776462956275305368470396585315858380434195712882964193968794630794978315288063911635701684688551600725606470811399181542435396135357808151767778288905155023035260722024917885997528749002940647691266122844443732317281633911035207696255584517945827060834432557272777783896063029520004723814386464058912656057059555369163338332410531393861783469828293791523233582604223464033990290969869928290518625177491178053140582715666794929835942532625735398462102248607310925817933842625411218232584391591361971161457641240458600985944005582887057177969190605720118941341759352474660704229998489728631891286479064212955137569519841659049455108563330914070628744789321398458314533388953782283925504170576721332605182295827410054518384207904031062287013322948490458390025792690583195543408976462100422246341332142996358743871750757399506625672460564271938708385476330659893596289945881299801454606326930469514019102106228134623296366667195240974938074681493022634327532492331645460938161077534630657564130642015726970838062995986633442665460533257919093512050591241839190337510610988968309258661446515075434728048163044845978286504121370375542314439007324592065056796573699154554733979984923217686667922759636773207449461568962470813083818181295648153568968212716206117967037903161233750315411838321278728386024589757605522401751897353386990847722851665611561102149768094118741582765220805950235204348738079090398576817060803413133716375934218572623948061262118426098035492306596734991494573270368415748426113687198951198315800813221924044417794066982538558056478101993706233097003583558159613356677093567821846059295710899178521655538735169254318700636677513067300809840534551860039057792617349152675801761731470015044662498682846024991172090409152660657278147722912559859947456734224477045707771597546870177876044579751997795603148235008599432110737619313313606773070389935593992253390991350239500264057265933318745930424706593326771369278464057835018130600311673591877441886253104052620496008209098053319244820175109337240544861681138618471656784321554881874338927602761412687515078066491283707673149398356327525991669467278320392610608677564843874750295608963846155633689900997359902397502423910167404151677886721991843210442803519816337720691793398194278612559068991210148379900943815413941836692740077235463356282448133988468081521720018337292743842949236177264282340326131531183326746991139200260157567756241305007932229470115089032303461167709066460419080144843530363525166160223001738799769929764858635648006788353514100855744553507507495094803792151704333754710548935602835226628108957794547606181009540349684516316356221260222062974043230061988920003123790017211686958657413312452678302000500891264909019868793555822010137981799604351564499354012683256339182150941047853896069649801170144413158541056956562740418917750746737438980115994977200088108491537871764199845490108279222918481069626091689872007732792520990176577161698330493748868141417265333988663415009277655477616107457661342642019772609797443800054274983018512890450599242851084888124252976091971766317323053051426378145818982114217709622154046948896579221779661106703898073060900321998292276632507560929788072457615184172244256075466311634171233234093192118305045762255007959232567432608612413023715215874035262659399780038191196944331973666301476056149360389044061079880449092488158516766352806880445182527275698528268127799118844672351871957936379294081803505102251194416419453061108558577498232555448559119516750292766014339279668342864298760856335126449293514171187131287969407196663901189422148611251371498094481617508755888385010775880464588920245008920457548946156191621082162665777526918609892211055642386617499599373995855817165742057683501607493560625638275794615191864968368129170499138512261694908557908388218210228167581688909748990543856625189609729195323201354289317959130675498729934228668274906633946828508124221339790334431127646735071147694022556304950381598616547694794261082639678460449320190498367071830302517049105463080171245149988452696833729581190654590198783089528876633832532725969953800865555526636221291218128354566275199597992136644396349801893917077251783672328889069200079442923696840339602102954374631770697276992624217233781439346223590340533467769822842377931371228799961451785481064590003416288087362231057216547216154207335757789031897620132960628613623004436149145049504045970642649212352337259431974744790721678340183391573399248755873604615537818093583766962201083089532231749675752997603389727929245158437733883020265431574208472057140017319397138057517460848092309986921306819291951868118023674478986078439260160323095639645072281810564737953975700414831547257821178826258593193725343207906796231232242022060298872111177690749621813605653861739970982005914788632825087172933100210996910121752994723424770256847513116210500778479595554765235446565811743774501395503187011671313350285137092222153815035831659356001358920400005169715699447325123561827859127314569229750725111436950968171896353989877739117378176588486714388772805271631972191324021400554969494182442373081084912717104519201043874344969582520784571215003242481042902648784351637006604208799832704643849879840435878223938685446741834520079534342951027122117392757805150665030533458734346723422873841122659460012159926883904058718736904917293673923117297073264830922015940399527221644059507521082291817435546667861138278062130693282672292045094433207056092761301664852614782498935208801293203276213805498453181519042071650695486070498656575455011756418348639606396785700234601516785387933382724321625803076830439946730974655708959649330173600250967036107474876085120985379524001004273970242947087375929829110278988966834028112247215879643109463723366499467024383689805777360433182311759096075474496021892985955592896464644096961251703673860058543490979996720784754482455080157472991820988793593550837803492912560374250662613697573931383827275448506339432224994335501960714043858781894765068246934761059490806887040490850864972093776957840782966718363168702109302749351141166835103869803671134721369716813987328203536292504716427490694368500017139639807687420807630305951765358674657458664560942007962015146350591859178799657921091520812229608966203949329928295434334071143012389727108638481160368843918393848406349827644836213398261201238097926651392195444278392067106803923812555897298469157666486588199603734642133850214249319542542415957538119424349021005274748741509056815245755648110730065912796117862507788530567580502144651826355411778119229643350558302541729110823643164750601471643264462911581605029805583714127800349739898827942729199817884307069812017780152127988816208419554120783146215988343678130186985844651857855567579672545454043639584622120832292368330584042406477478230096392182993037280477483840490209378989895786053728202511207152652100706663999255205755875893223544742174834152053297160156172118642409163764380869359153635290907798895025649944490383217146266537271834854093249145288765979060247508259786845443135861126279104033423577382100872077716410528167000278372388899095597182153858860211335771981436277420825515461962377449921580974777088299650865442558660576947220800298881961451302704999261586625281305556576706658417856079281123716250294276808849723752174439245804907623044158315641234154946837110665662017682763768687599081482728626502837805536437692460801131916570523197681588048997586312919947795980642129526230022117483032107955838336498632273279099446052014451999595869359857859714440086193217962709260126263326866320781966075171302234819751357451959319282775313719773266275227950983649053076736305140075796950730401844914629868866826612023980908513681756530177398724415746433327144558957377176793321899526310978518756767388828777908657805340725646325596962628116575989371949625793162156005505980954751393007576756199602635177043881681714922830701404868718728478077640938297127329041792313848486635472980622904227794928108962322782197603492923231010119199236895204701880327454507612404460052499377413420255134276607511758485482371250557780443180252900514102359028254798143991000858878139356143749772047880480769769856606689683408376619339665778602849924696472123216988445737622772081624727139771929092762164631068970195358362304341486389296791986651218789702965938866419275989270494804582931718404354107220994234739344428977650859685246957588194638999679079791185805444279295299389763875713739915399510785574327032339002888418222361774767397688293780612094746467445398961442027549242223009272045921832479337154536662763254330575263425141398815018155914337741140718084401148515393813033750042239843016818333480092295088117689420708982137729943811448460432427957773363110467258595792003986958387953341095254599729878923093316881299782497281200848613820375813263352075412057725237531710407533073900899986784260747958081998638812379246888094398198140128195606685591217061181579070816360896413241596587046735160927565927532780265249111695186545877505434461998672304366146278439767329784469665877080790704365428948939041173669439847084616005976748848936251435729986077919161953816288647109048636463257017508869031881602197898751752937796115837918784092787770909855322837060156021742217609892237190620230648683965037469111932789962396916634550142115343275202968470758865272251868539863521100374616368619619020101520114232865210862077290944163896106267061577495276347918966553765778095440883838025670019552787723788201314314204911408202765532192060825261281214842971155904314824927508104254796386828174354868417578815141823166473218170015752008162025705403056665528644300907479623904746309521884695918810517724595161643940084554502305794115505868230590131384836395141921558123615103153399406718119923395278109944733707480052646362055797253270849609133452651007441762935641673511870304084341573038588823625417065763393523790588755674926071326335285784670128014877671284016509965625668842453730929656386748104309443418188819605596428626597557112173477752900532790565266859780132456381124546265100475887835707967145792161252377191258060082300826091129311207216791807916440974548819989315657988408155835182662709107726827976750396433311683209162662185473427514342458273169573195524829279767723846877262667455372215907098562177523633884618545412753129949330546539268678961646923391032762633685453252350238849911156633189837536514926471697491508444315557433827741224387642907394987050883799469713942175677601152042869285384572509924525131655721019366381054217287057536003475836275259214611789828231994259527133397905895785948717876680334344289310514356462062309172340407866908796981153057605279952945549591872657132470274060225092003223166923553299241735917088295511232903353954367904499926513566913422800726645903212385489016288958620916575507312935336740299721930263582942205150552869641963900149787460812421661031140900647821485985735758512752693801477671374647039501431396688121870267705740752767183659809827380915317519520532220893198927226665318094174593383935829451177294863349370666799811883939277164045138637148747217398266210758210508963288083759925681118893583848034513317318278589589180749911551590860146405113833641811089095274916415993793073091183392764790461289061481553534320757954132737858922484331662874815933242735005496415635726154190296816689327977919892678288888612599552279693221395437804880803514111482910293873335662015712270527534077684333488770353215531609173928113869768818210646068724367595320191961391744521788977432386260808925671158582736180217772196277738901654868138077464516869006750918042651391866447219231230950233628414439247281554450030954075038341231082780275352977035593147468558681663257989155026538587845229337596716382393494924556027934807859183250012074139392929806402305979083491614819304600495633924417294120356241086024221696712289319169787577854785280996169183818648087481605798497072632761363363425210640771210316115588259140086184304441886185097386376703757106747259777504426167167540435054597035415267995771397823696334150938622481814640825697338138891534343255074170529203891413234428171481045082512349803170324093645321466729935488994520583311888992655965242898514879791832122516118801380704767281700446859729285890930695556670857065529551537020624095905907085144401580814150532067176656440816303006130636284106144253779176155430024668476736891702744157482586643821123633941858662166860079296990959570104168353591197373087380095602272918151903016922505526226225913858064407655623367606888319617977296663938840434097905257513002089432686519717172082182402205348480490337293505778549447053807679095900000944465027741801089463009575486456130365187718538543522897017634996948599645946674533584015621966854563752800261159066019751458717109856775858523822739338278191772984605576485317667631157614039074683669471291385852186604107650101634167803797040132646638147177934801230666547543141089001501327493886860553690435831261190241418673488116090556924129223843684046666306887500361558353080887350063121099155086332783513942551607303495321417546953096670043883910865326916112449352273505145994702012022888394186918134908687819345569752982427424304394520412656666209912249216855623017257592960370021361486311513295536307722033226051698953486219385407872601245261380342748360660146997992653531841481565457921247476947243603573082846773053516912917172178675214760218962732317418035575175651871402495910031838741266070314650774696905015213089774958802377158880944550929475524785747375078368241178618673379829749315320494855352591449204086041433225876825442198612680653177997196022793559030756475240278820765924286814520849331910492465733177018781665506028153071329517765897155083617852705636572501246787316208466379218402109045112291961138101982042277136329464576598974338094837060320647039468466844990690886016462526691400126284012467793977494870242160565701357862744072737995225509630960262811726995545578779918306850702965966657756311470025078767498456737335741931980828695329770185641063552504744243003202324266790105112284505243046390029641678615694462053139568511063326014315490838779190932204869604635593190211150276867578276777522054372567836969610811630163271869288362366108134442026258685041576938490195879658729194569373351028087118360518157078807912818989961943985788901172323517416584196962457042602776468274947113333310217783471699256870751427543579632336756372833546464448101969189304195639267821098570381670610602504415141067971096021768245721769826744926121038376312327090170748895153627220912960132708364073770202087795227064667181733180447819387378544728779241690319098849485636157910666127880694942410896921641403872585328535542121575148663430570792937919214431431074564502493806919291638458100781849254082401931137462380222379010203798496223117475860329690169231028499040915456871204316592571064759587083786477333304348745990819687856174496994921410672810407063502378118936236698725617728389371704872409442603519729533370539368389929379865185431012421500037649294115266546502229288722301808004123934668803296008303685996260943938719669823932580762794268749493618043297063602593805163714432564463747884444932499045653965539028272756530368209220794538658485321938207790961634091631671251947485221453824088191278623253321805290515171951680693218135456679849071235446823028087044969804225298511346354629807281116087340698268780624614213577635173240978381060510999992799726793577441998909158414604611093810686131373281428615017342698819809575326939291170993154479665599337431149318156042618574862104098092066922579664234999050110630254514668894670662859232899798108701279267816260245452586330784533491117828723184206520111649654901518665952990183626294389695910238913914285302834088672569788238888764097040393180638736252659557620780039745603030196411706064328444795082443227822697594353970465620786415372544691488034845806405431431341450165788981848390326468094149401014991768460629808690595550598702045240614159706501469675294634302970413898193396389465431037316274501701673502191826551581762302869425772530234301574690914602784229171228754720445800508957407496585816138219772915205490167175804160933488093162883307329365717979615698298091009029144546734212979237945258890285897374875552577198460544063301789763578896854267477290298091062227048380695472506628653461786607273022262126295070611016333373051587071187550550198079784580557880347345277891169505826412758212169744086368739886410472617699205049307263549373973273888662205301011378726404583862093602467789005084328921664942456185899947838938263306243537593474383483570429589313562807878045259874792744618250257697157739864395483034139962846983502942080117454017746008588822168232167721221786255758746267526038673958182404728900112249626920855291638751788335086659025141784197773017090358656749036195517162737246005088380964924739064337595911522070606274168980482455273981875045683037673120509380036397384296185761398565929824080204863089180264693774616862581457986778775439841588022735811789690750749044461377566706172708119263006433524790086849275048768468590461265995152048273296544962632192957422253514934430104552850012130730057047423291542646862423368079096835443926381353430099717334407361119568291729705448525397558508411516095109695983275740449948103775924206756813902878749199692328666524191787777788472033297564766476752451170955671251718074071175314318046912871586599421086568189162454666450582761003632063502930817174295099470107995494451445637091048889617647461161231214384478452644766639706243684338671548244991069519679231096502278226215143983865355981032220627324536494182793603945308169659533151734112894237451896347343790178702656064503392862593942313903900341786707631597795023732088876795605301110019911065657590193908898351040576890580941175163036156729923115069021119257305870225475607702919516046321170336426379552206685442845396361902511173548949615920561355857613312694050611448136642066669684514075862963712536959125316291091946848199308667502268006092124369896471542352354775049111194863724220485517485214619535182548324342586772109986670030876481884908719366592292950367966258614988505954680891773836461860171191915710605479410692933881328179871211604858146024561701027125095440851191185672027805593635622285779084252786801201285657573268078824459656048721837354679866205179002835348209051851171777041220910538607054570210859157917770740417044859724451075101806023591461547136747751407609920728838629480815359778878044975582345941855768098605075091793816341386251743926067242962751813038808727674917969055761971025795742839640142409726249666475786367859301909577782884354852526120074222415545759151204517871388985490533615497753899146943871570325399674191922490581100158330625065521267369811142923368121482457885977102118266186505081823847423298110265050562282539177786302048195694381485038334168466293506711976065335367203016389690915352814358766240650780952989648493007254934939480051674539361096147330190070242759237006094105895203069245348832949600710316065129510312960318849932510315747396118353772746416911051364322860881042327612912848934682475412706342405096719422887314629740739533545006629067643872273177456282006659312064247993155772980657148429306408430536500579933282899713270831923922510577279887650364053906354776502832608834304291863314257410445977324627369879414578222708155081107738076901179853671234822476149891630770339431301762039235965906373646398388578667604525968963605459163726919387521530586964557673399460698323182119566890931082782941093515243197129417481482126832431288671218147255001379438486203699419606726295503039607505940444071189536147402964555164432837441875208657909233181580798045929160014105745976997753319782734042989027698338316922252579866252108648763640874101979690795943262724797425245602435465743961234744176478235778549596327061032841188123580702724992844052713859823441909675028067787633835528901254009866115408431176799301311924902707758474714864755595083724664500928800561901745191829373839247869733630607915431033294035615462582041230574281290604731559988299217056899005663160648717954303982427412906085595331632606598789101928691732359410770136150116360018222990778645771341484666432044830597926637787382893737628255702733724120740396851044669804564689975752891049016861556123741046661385093056737763357062857724613014693749066189685028784575388091032065408487412279416465824347711020312086911779423359841387707248038294490683555114080840118895092870048541326836489754950142352824045145177227421026703177629195635350261654830209016735882857808290446032085651325377077704338578005313077181206903862000521630594182315445036640884579677883953804216579129112647824691009064120770020599808771340709247724610748107514356682980718073738219729527328375309167199863102336607701094508347818146405326319356658043326951574691614075447163892991287965083400916670623609854924183576681794010077026582955716852565184021468504419574036385812143982335350744323899018735823918051000985033249897532033917229950903410706515386704281629229616629987701407455123148329958193562622135832680001728636418332118298450132425296094802914218364820848728803438886806284891417748539648345205093423610098849273894629627357825146629634795285640901065596523661932729135054835925637577024399168515441102766521062650621283004451528130546920288072971889041481722757832377856622005348714682850572704628993618863402428319203588735085004883972685732975759751131077504462284201500898627754898896922496453661516718642617163795299309139957695338851222138945537931062549137790761709382265357381335945861165223219963428977562022968150682152339610453658700209061836453178208583915535913093673069683917261025298757759572230228544559721970827617579766252129075426535482632309332376585662637274502386580456169267983485110524891446835235821931737057263805443989132998079584558282948293172124013373402900738966840879490222491091386336971298729027667620199761976438557680685132789654936322976350809072690027916470021620926755184384886896651752606747718554816844620372837842968311935725093512306256889982196682542531944626263883234228215007801217695387236502975537161504072812375380811679263511767812483825327251515589919207852958371373201611358118540202083649085162230030655041116502873096821555013447663674826268539573556330019544796627924670386043504978009791354833933374875794295979794739508397823518816750197052448675025613514695413860021831768307872919936599947981435157167368682687606715051752364026810646664730005424459114590985326668857441493841752572415399869212371924844949877125676388278255436011731188349982724489592899395243379044263634477161699933601091755462703356705605540525281960790706224438327261231890518199693222415065693808419240988749597832367434379613233581070203138029903863106742250738265442748929598854071217024564383931277519595951746928344869534497482488368967666569204075874954949485236372111988940096651580815252131458801171084048113595161986725612192503498803566677887240647133563330139513935408506536801091404784945238842235352793618275014808357454700675689436196976218555481814647990781235543377845587237779654292697719250536763581138005998531865356152302314126984726885042126902582933933536805785130129358807010935198003451878411017020918213191310150238416269219998922988452633865490703884287507069114964595262206836846711418346545523303288289167647642147972676900080350531491957142900459005151449961211014899249784046122636420614253147403928093043353012468030950278022507123028845367098293272378042793613118375716037509164995930366648503027184923642634007781021142830607406654568910666098329961007347985553354702440745057218987509207630525862323295685555165379280712525492328031770721035071309575133807969229164786002476060142961037158962713230709067200069211145806393977978965612618930969642374858747504035260591437589510015456145577977264720433366582270076613534619333733599781576990827260517619382804920397777340034526640499852958292229706816041039015107662912798754086555550070280637566940974388696841819919705792570495576629039158169030561528394261469688574460902472519482876207915223544793564028549378824312856103043153258787965976157542547313050504637298436680230290113545793102592211065483362778402028904593059037389687932148498594786918253610035308738195343661247912102710869657677662692470199633044690581949644715483742008015514540517589784844857070565285126753274847524795739741568725321565728026104057494640348981742237599644286518239895165633538775446241709219182793651235477735091137851550649583329028981971312417517649662279103027923597762894256952274297980352452042185218990886237065539820389986058998094413698299624783459640686203362271180690759993495834991901653685028806774086998078169971695322783257104398398757396273529284187461868394383992398588841290390231140934693878013952245604766588055428313876227488022702184782801206787414190532217859236753018813507487353301915546103068006205355602587810561018451343599000922767291390856176733163064135439827414935944933015030239599762629091834457192843584254655108661757447880856935155632979376111864844796961756598872534485548449897832829840284584675600813180570682703371826841669013921585807334764282637546158890226231383909254561966659535106384085157202615060857953155450552512469253156985671442786702063740609212738879208827778088431926001222430887127230288122142617183035152971197595447861149733364016452959637489551418719561228173744356738857489069094364170875905975375958610587104274781825381216213575251660036898245701771728707170932481659610638024488380518002512479112502535010730186831088273946181209018138416509349766243930377288730716552757972578979405640691330061493774643222457853187888983339418455810345946246038257774655499367618476116348616364256403259979630373741724502113960660783122614715077573760009491921200004003638447477844028630144421324639193660711349983710319074657821903306089787699585712784595253280351154311034922546842598540572228510300251680827276536293793664712197064500895208240458191068864114373685060400004725128499658154578115389049162356902553265932864423727339954391429316382021557176974499344865977388425919049626725856390847211736050516142431172097533299161717953854400499390518664328983540256534915795402134691213939211808596190168679388616197198294960118039182409555981188884514264006236318531171186847526437010812363841478845192631034992505288086158136551866609304723446062708528585605094401698736383816291958014037748460009978080512917362046801549575690595255950294092406240085421287529067257638446455353429459426719243844396889291433784660070324310096692900987246556991827438397698078527659161863646986032013343440557209857586542211000577322756248742223831367234230724853939834682669864940172219298330215329145399781880948535844083352262175924009049238644964490463065427893533450417348661928376765491034837722070975101240791533028042438964620535689472666929986106300714217078487007283805097465303304397169589916446752866120678193207714908399887782844908462061208909439984049993380662120008257994379580609419357504620543746154708669751067563548390033123040902465475950728492781057643846903573260363546673246235044294277339658139665276678973391644256305524786399628054915473789878897472122303958179760798679664115187328903341886923610671002797967222845796118614035014833553881101610115131217929490322928950673440917825527527385434060128361662594113240045307478050600076042904702356312102160767354141696287229094524590866639938939294173180017291023990429402246586918480371332285785584426358908649222304450924478677100986195518564126901366957822142437492119747245429437342016486622432260940900894687945875251966441853338021500504460760805908608074573657968921652307708248381595771025146501495906440329695842212421407626742547751814935885868958922175992331073218728996649128012208171172635979912582607787970274166589550552565568063591347561337395133585638416925530786509699981750725409863466287784964312083793492471414757107204543701854710340944677275186868148600757195241946089693838082271011352931745854330835226392987456486351784944011414479970862098374021845164010072190841732445231301598448914860802675041222058228337796132509418636456115877649481537061061919411260173007522600162833378974188172143600146811745438925710464850882186517729096389388319464164149050359614871866602966203932909733418377113667742144519962505778777204021203031155479876443578410102373427177016920954368458232166326243424965264656080532595774408510742526777819694019751106585680461324137002597222091404527021885857096062928638016954553459350727419421024779822766211307756129541215223395542977831134739198823563413442400932579617868405745935465653782973066540511268798758566536152153294590345051843659652844145570467414540395989197191775599010022364983689260495381143651491182891921147438242607528052034253545087219470330873168714785404167116138534211888244286675551185187176954895540493249448048567172778466953448528368817732377361723827322869899718210852117559304657216733610489320355043951122095612158549949307115734956984965816603558818852634549697683952574475379867747170997476418511916176613266156865222461453185842372050169721773487983915785846340545157787640069845210174670682330994233221017167536415869542180103569918740752329478206748061643875618241600009697669647034978457553585125272924324028391684128527891006056036524865186326263357928037758166764265519575861098963135416499406032136540056431938024583712199410787766170653423283053832180971716879568077977566306484472106613279023780840007818571108977098020297465129483417889819697716325307617981781906090456356836653819418026613445645819531381608089393949574088839097427428558560384193861276232530044508603587382214786616767061907252236199561801316269665469868173772858015381347703613142759171910281842422549175906008544123835839677192150390211829746947469547494438611527313697738259900093087263598040658319246314211305414582408113252632526392766274425115537182793660019630390367565155660048763371832454658576411354859010006072399900116438806296454087738682098296011020386421756386107920109292958416174868751050288963046174526018742738502323173279815796923865236740778375646284473053856214629795219379251550738736072135342407313644629742598910048613843903817272195412108702220901661759476977507120651141427339435068362067664669054201066578499998337988443753641152398260242698267868164788183876064291164566904183864686282284588152639393364681543138639717484190840061868832218930213266614543013853792237168782746211626179866851093052687649724157297631026800252874787168437650162756500140965518850308678782435462746705560054985349899455638282805394749942282288034956895435586499192708964352968346963057983361276069851122980452100692469403603645206942265727492769583382061999362800809127870462956786694176885550822124491544401729305683545999921848117919245928061487494680341316318640007954470767378294592928006708463807537781030285995201524451043034836133945452552055389798779031467697086921669298785778400526042013266255879463962946860412533861798846578928103516623550603149652824581883065577101729209284971202038221068707957817118965302205801081690973464814039708378137883627953670814239638795320762805629987878233950270504092125981207190246605877629036090759600467507089112830623989394595502243860512387314211485406364899041917189536759657602124832269085119441692360842546329500239959734426524229303083153474441345436932127840649904604891610241664319411405964637145926684106478298692042208729776729760463514837765351942175587992328509462722048964492588038658491269832443577938035569547039272708263940116501855977784405835174466832758585142610563800265060390963235251105610919961141685264919711522702010371747331669458221101693087505842556865401266158898347171040921334721956389511706935850917354810916077314189038626630725476044176383426136218698750150889003161677715188649286860291839587776890920270210168808360307707236653638338086038960737426379985423242839371975643242637451876617265069042834859833456132575438681387376925373558633662896876522649122028120689980907232076320621747834584493443912733399349231442275531355905369292633812417823435238555589498797313456940474816725409710517851247447911465999833924892111626688725275071544681478579590317491832456710951980230728118165533978719994776888657232421479387881761532435537734410383787777569348098613570267562031758110662093016300135830104332070361925722965169772114916559902450311548448203397811193234718266047446651675189597563724750464937467394023385066769580818500731014181493390860995067326914185381601039658810436533671739500641546975411259194365791219257515713679706066026792524922008905983409755302991313564855634590440888703164998644598737553325409008178171227959007031523232335015797025368636550947314718206130347773722339307996183729573958601160607178775365958200592189936263965686224691700150136485932082604321749668434168712257128795953324651610009687639743683132587949686127896101917450702398600384354622531198260695225288114284291610441459931505691603382289339306681233381032048812084698271991888061162007655330123385687687913867039688134275223350799953667512633483403898759352766509214935866926432510385923678360756151914865951224004767096448559028193246811753485527642306864250247646933813024300699222822934091063540005290646128908392651522022383146254609051099660613449909269551125172257541543209172158572766431336007053124655164548652578454557759354524094195684051513777438608169999513399489912438272201444565876180637796018927870038663355105455935519035644911337885271603452723480934912908096172106902308480231912161564926368580172669935293861370663766187395679638990446234036144192741466345551901343620296518357508745129939234592779799615133799951019585226878851004048726642853774931186868297362820278332591897999176589474581887927899179445690948643567575566156377129820904619957227349202181940617156363116810484139838675762673484835731810347978335330560038236082863684790063202175198897219949826348751576164271355582060667227573067791373874815893289547423344833869750641161802867034856094710195490654150616077776139584244791093101572669068119829424829325519515573774492084451897918317239577585888092151614391018341679107569419819881449314239548258130057529366290362043483123700573572177887651983611866974053782355173799291205730796947711446368280126402378337757139752107951920976052077086275004913251163068554877932977011491151137768760368276925734468751871624426489958592291976434051754030998550605840383316972908450908104817486383915966803419637373442569584607186717391620049621143986491453088877417735120956693766103929353958562947489795778345453437035483314112804780773845924034574445002156643610115708244951192553559363325197488332086714847629116103424587593261515469531945255099350855938638077914340634773244851605954823994292315458229995053013224615109760926086554391348655153333043221323731445714449572925715183414027041328608663676802465563209040373553434126124857354537943946960220492657357325128541903960493177032863311690559072947320315154137692219805739165051808154137224243074744110265310836921822208602493330066115357015455690033149916082131593888473938348266553516296751136716884733852148433935094872703310592695291702873645930757465468982420050800305097581012173231870326317176896033309662463979150922874368540336373213664311395131029709606580646824193929160006344715107178982523200453987628862726082031061842412404743111261737009948386405669508254573284640783161454684313553088012399708527551293589788255644780479306649208960505499501838108196547430342865997867503526420192474994265120850881949691191078973534883141536407812961063522937126508879403702878891118301048275702767280706794211559538744668845421132129940192936316012176235599246147039197398360736997717680753463605131642223756183933660818561530820788473453065930127148648773382429843838971588356001097822611348589025791527228512912145505396686648283544257633766601639604394515035277814717590289985876014239941181161081802158676431276801132700705391613872319515328837348628957427700317463355707934269102195884284447200402663196447740514762724719298450475134109296626593208395034041760897315360606959645773326549402655091623190618091514227523835762095001913359078219402915807530201115320897598944222927551086196666174078917080243865261844609376477228313191042920476351453377280116295057014278165871671092708036285549794759266066846707145225643657851219953513829779628442151365433841894190074812371121941565771216916637886786454064547224091865439497629115490023151022316258436375608548641692364959274798704284693122019514869692551992112852683927324694536336048702456377505352330536259291190926598985642288339876616396959884668934661053824444714837257032700727557136333000018544546068373383538162442451631783784959609336278562133889002983822833519171164575122183189074573720580653394189141893985778740126080338473819635678237333245557757254969551465229792159380014341636592723407933613033428528023014152095470641187610133776709120475391524697069565340703855067522642627647884867467884508377808627681884186731980976294688013481962761911644927600035716171198226690708228421512172504182049637848264762969399224359203647565596457728476621239579957671940962346694494593664235226076661964132573932778009890224561008093543881649494394694749987672757080671142842183936687928278395098768119566730899866672021707135536109909074210517487440119117873465137274562451635130448222637977472563184124447897421247468997625141726118208096045218902389570360658765771864392581075363700121914303755631526211676518721783011322032268671865110715298549753154350909536523823402277288742835032233846316665399595035183525474631613151243488184325345315832693436321188511797787724539766570150579189423567474933302352409924721873627928102367673478412904751130365211118149334675103355223137488667937654041177581031585261128837694866221674753745910307081540468783116785965761267809645388932623703254493954149301366093292797475666743400589442471366767505871737619246200516637244081250683245598357337385167733950014239885694351342311537633956195076698231225026001100038632392211535527631667527532543743747551127649998132085857135477223865098614233285011556364408903437263429133761838646760765793932977498161287313331963546178972244242246749279524132813077921347849536391506259051685271001583285091167267419400398263283952138097197569951305970972127626016664462418448308195439736323596506816962277007032436068856830051240144652992543098883926156892880043122902872933386562112198302496598286783748321652705002594141525347693405529682621667653488259894357615563365456624186158878988793641535201484220421234204411388101972107387234461844122720750064092003192621970449542026666408829550464137017495256827086503203914735229758899592534000000065637807382853127940849962186539106341722855635805383615682338163689233236990829002418669902494494158702171784612712163380101830241435091059461480599525490042993207529232048374636911837690197067539235025973983611545744177998707161064483988253020721280647144598073551476634116117514703714050951482352787938813776587337650549536272452544020573884727723868218124620571775014223471399791986353233767225581114669375017128424503129687932403296450825109024273130844350973134410570031549472838116389609431403104454870694770755861925613400210433409989822335842027535620138534504528195039898035250626542739496079110373163987971277305938999050180568314498883284644163119969678460962800982695174058634276948245096477490362308498938577982392349252890592405459089774746725458358741725183676949017885658736326238382396805806193577151168664181030772825935640732173094885108403314570055821464318331839846016208846397252766042840548135694266798416816897567056227519004410974247011057275169112366533535976252619649686738000195384305186217364412204641368308684910858316611285412246746832134818838326206602584180490050929239403082547868656798249263914405446009210353785561447822128812267346192864825714481388750377605403814237099811241278324453740580101071203910178605872257057231845590638477202377575429240977487289922121611867844957718621787883976906093457991832700276118860894315400415142368021231496229059320467897241371291922775015174162835632654667282971589496754414523639848518189170365554283690447874408388798935033858273416551044279686430023646891644819001573420363232772803890200775183336096285180890038705702227790256530941222479595487066415421533295599981426759251894759969064854136495342956740214858721704448600479338429569920479243224556586087132645126411467715055521093203940962686801559417581158878846105199630497922488557216212386209180812085580491932724667742432334787327502444389619047158175849463414044340832441634930633111095868826319640380590597529784211551143612324815065827980178294293794964838078566289356800538271829467903579538334757447238670841433947817338568213376065834295305256970870276891484320851594954634011177233898285505930500270181152617537181734954076579837836779544754234681127405588549221797987384575636119279966783569157957674740711439318144350667078105024000798993516646722448068435386553876540368410631475119963847664007714720497276422338183989279124423321487558260600966981135327763404602142385058083164108543877955188375429553150815704663908246910806385418955581159113357516492083526109365506728211531828115649906466802282094392448875673849834628946731054505448110456113601619486575130835128636065271596636833754806699743024514111966827213306755505611362246218136899489606688144661696956955870124796134657679618620401483038725491386554124177226286343079642792978280629062309173304118703913838310106958586153200749698119697998866922128600584216856346682784993633722144676344436555657252184468491284262185283329591147397482643641107250044132984203604169185383627411073597622902110553222562683793441240423872006532806659352731750554972493466792826224659913861256978010898673504878746102226152865678758338458529319912923728927157667408497545578754162964503441452100836251030348219529428133838548945866777191024518575757222444420150705757850393115732221687474105883988748448735948632454239553273280456963089044555431904063861105210927572583615344444244844736080218462920427411242554164912681725477619967655463829933393453314022792997678619385460836147283323284444982707780280933073998762762936402248275115821485413529126161275566080767106847402049829593380892405892410717857391053639456185293058437988266946610080444208184961480444425402408258569465319946066163618886996910734769089349386847476903914920648383952600455916416698941651999614840994517228706826091673717001903499609589477852420482285056737772537088952378434928794181062938071536523446974591717291482961609592265933591223087091707288145323751779633001174153347471306286545735730172772160938722624087784129352434525332023730517324382783200148803579396044626261809317551738143646930971168132263840879673314847583398854214295584789324876616355735282508545858737743241312697714366209614565382024769725805785171861925418208789730579232752660180678772425846360496820257822836208753375598163250558811369640784341788046427521286444364102432798481974308514062419843735941521248249085856665184404037429151092156760550921075654834749793990685390649459719708529760921898683572691569320324448215478018539568619363790659663244578257802983171308551571014483947333072725663669719529603767264522675294278426845907190553376877363003304538601714931588016085491218443789659591187757649719468398294305396920769577017567137944039512356878538249286841326774537519253192307270986133253054223004450572687931548165150741424069252034995860645668754692778241745007865840243657980252571038226488692077157871381391475108588489460020904747872985202044965425837126049605493930960097239763954679964289527334812751454194230073027772885134026351849991170817792918560058818305438562215561762485455343561098557069120183265353053994087083815993710383552166744391149682691855561586320310750120846296513775082850663303116333327982685560326471729081992359831153290907816731616452249956535472830981681499349813684328717586513461864198903646969800941185772894109458990170468639049355462725801379830398026683255015188970730102137128520200556404892947839321456927882214607325377197761758956429406512987905647303520480396851675226913381634729879514720306989088097077764742067225674892831808728149085851409904152637971458011197202145199462502021074749189369507201701148077960028284877241030569290390220728899450651265156101651123375036132352569596121693800911823617963199834266100377455409673424044197715447183402254440878950694274981388459131795329758560511609729762974596720416801245924209795000980939182325358764101193433543845109600833596014906164266215435062891581235878477713183782637742527162135976706138508316003484709859286593682704305492253035974835463490948741346069773870940303009361663979667424371597273683252104297528111298852243344574392399424103253998475710372611899927203251684986593827730740864801619251628221368155139032210416802536683691825257417970861220883464636692287901279582931995914848114833982309993628654354354459249625109104868074675783917028586985349314775461619302390584381888244219689836159724651423399155762013991268525968566335989805924547832272917086075794560747821689069433352380292520852180686620478103793135530702401926840191420895952018079425211397845751462048700025033311736613526468791480320378185241502156309892243051170378908006824130589643349544095174196352907089722319577699271452146106721253815786921812741124515666011400193337933887773517512183490849106831657840383059607889536990564365094379446411294785680299647036940281536481982145454863155106104491715642536878954379831342286629595504682818003215919638216899350922443891182965215732722464409345165045639435779818404495132390990244227820183643091567946197141038546647029579031005024102470844631117340099338002951691619448035615588491502770058643762621118454981841113105998604817843507841445291298246458392110618110542638521570183004372003847304611581307275376164424154521972550879552873407843667029160000842355610048273104516209214141692597901347172691991148745600313805459276485354433238382137452822604327084347930089029522745641353324155315070063632604977330332634481291845131042309654889165186142655371196269125869231170572382233768646965690486463678833178368398127648964108397904632109803619926624065406703974807354643057277240466258946814349308475412631543078663404811435743628971125184569941345362627103907389386854499286069817935546923932830326601863800029785950682793122005566086457913325392176996870739485358388065127382578288080739049871316054301866015917395227263534633030478000042364572901519187604573180682859956632007933081133413399783303300978478213289027687064990546016307611124492221858296321746586677259210512402679990805901143397559985850074761411203606637193811726043813149916336590881928705429996837959288979146355732038233147892055165033659492324927728928139707139941257089697748908638498903961831822402422409536619481629458101988354662049200199720913611845826776575628719274267202374043066655065489226178946887640829242563372299962360551610700608014445897349101490392147084213444759495558706590445462489341563399691019293829769198888703933800265769818422762695766929176439686152872356795946705436338405183094790661625513143196468003938158824239153344736007797789387031257232569286718977928302210878433676377953653076101934669967737568618415157117693893399204982849617679920175515515181694176663914402483683407701382023699530350093789761881900679466686989583588388449736078746257407156195789908637093968457355723184447538640049164702097647585917680354914303074843127987658309028178338660383921104833158957390592935086561149804403585059878311912860612292615141983011845529303226974641553813067844541277628877519751306458759629422880101230870162787600260963015613321186639430986449533342373323519218379001392422664398121585736732457307341699732859935691606081997754470280998019444021509998993326513516115454483270455173290221086692156513309702523703359653392298322695126928337252432678585770379339208777632790036706649250714329107886558696546954245420562712895716697754505917663546141469044256817188480909101766991640684235691685285370348234427782647143808356347500478006293063344216727018041503316789702883908419048946957934414986431044400096425287742601732876448337264908357548620599407960389699552394660380296273076163327431520957261248916992018003321876554225382241658589855168491125181189851878165987548817990937142178144735942033947077145334220551331783461695598600913534172462901244752898168364052395548195864627518328065438381896867743680304854338990168845894168930035303947934274844328283997091942894732231962102539225953416933952998000870185113130702248405715678643495719669605796993104767131056609799658722349873943383236045120300824602094768010169912090946459084314661918660189152711803261343247696540549074403041847317242160219131835943865990255100003526780402652117629560939888506084631171650531867042142474314033982354610156676252154063528799276937217717299332624745610559114967703013900613020453620329192648174253498118496254623293878375170828840090719799572498823728257629759456763316710964093623993751421177365186841196589459828459325476596573528669531062579536345211784403900122319243417548424960846394220061761952823581317368540047674672586688054363125033830297286452041618832981657673331542218979526703631323794071833449361631031652105006096163380809439061019799164933157381170754572749773586313145920266347593458341514150415665221440918689884834189061250558163146321444770104197281212999651030575517413807358313397184893749630426692478028039660268350820375430767664321310602243248360619218927966794182925440556492366273814008230270936581231313374984504963590342060848572529231338344449686028564726693860119293351833133838050015029191352526646291618388190146146894577438453053044074442745479132848587752179670313542298627822822236170647768175753930856477937853678934091222193504842724811458468302021546538929172321713731748035832822681697012370887759276867996223319158187577960380067845710854071063961703515010459960360230650641611467444919856867815284826781962927217902192379675409015421226514116057533458238148304900551714171675389950900880159583295841025066239811187585037553704629738413216469378320930171127087275268687629881752322145701559343246296215267609119740025998815705894529251238744164589096228934559438184825337971619369730759522425537516983491618042955571637190859701881526603603758362348780142263304582647174381995171187089833219629261751496428193207106059651555924364872814529408186279110906870264062775373101423134369273087695042058732450533683348195411577122852117660606766572388175148268152989552361688996681790062012093058028622929613064588551228302696437715326538856573061853529780904083062813888257452727696400454238463348904807863347760743572101065990173975547223811963518612137932589319612582686196249115129411584638414368112760821659259241777572780963921255430012320718065585703438047163084459299771654648450727726653167700614074686751483382239720757276999477820669422891127328440952251068284016998873262276452948079372930329806500501916068970408218513303974102644756924834937442700450026718678591505102337673913424391376987696094888827151142635704414190171291352929970214254708217334563684294366613386734407438792296644017642274504504933586302028351532550467110860691488088228506530150242956279655355101837774710098375415941658972762771208379776863640118526537223989993428551419621656174143288997585336655720532914833081600659046015728483084305052732328211751796619266841653375882713336518375732882112917856710883759182120502226704940327227545698683504386809087164396989309021550661134731684341644022646720706386258674504060482888827261280323027298060375290560874570560132664907804105617651863976716224952052975410189374334097366972363950596164245691264599691294019394869498032328133857276222747962915365298523048417395927637556709615132110199422192508441369993472199101362969511649457369355081458422548138757813706926624207241900373987632669592490834744639090209144977203197909231702979985700744805164243645344920034695739698479725608847214406306526847277664454588651616626100357199501705083698820577708700972358421544414506585817704459442179056861981190200353449433776403547337858226764365868390940159617171251968932501377341003028521753164923727302898163110715357792877806873162749124949543342931675107246936631234056819680491798321284574222050752776448147413267358648007106613926145513449734978771260036734384670656005359476927210636003153720267975810941888670032850626095441390975276455477563696509126435864820324863987519612003964572418293763120420469881121671732590737924250686740930147324419258707924860098644460134299441515654764064793924133472895212093365753934941572061156463541486710183640040804862893919893109749653681804754309967835454476359539111926655501353792983283482353086438162109644900524539540198294533870042508135352759854583600323949159338234653870629719795500836890648859549586766185488703133119634098112425569595379634310221569414725563915993488304027459065553623064634495258147630321489945569843947846854898954922583802930518925247207007182569899592458695233045017781873823989547895496404284807277264043854156389710721747529267666871962810237167914539395781035003657541312455328559114043283297481969471172470762292370470334933085794876910534808648568521505352025431925135799503024665568086677055474739443778109792969806571465801800671394564174049039120314105041491790579622678574541996674485259735540530246391613431721560691328036188780958236322791577043319630443419496235068082495933501712174725723964563993467243267580506733781729206928848591701404038460096228306443470439180556071730614670975098178592398219120893655218665444764309234359553351751824353666599720493973240194508987679195509208153231427789766878815886722326281509536505350411148584374104211644802824040259798915127307584945459066608675327436631671913599715955816320601706246537409300232829626396736699193668836801667405789948129280699916350264134745132879931605541821570302145202661014545741980419175206105112228197203251047082155041855242865310446066411488786098578697724253863713417813779352362328194788118715643281830819327725482711170840999471876887261416342059049479910305617768316371867122580447054054686179178939378392153845943311608649250862225952544550951390287063122596576104186622401292835102838456096275034722610555823473187413631660416474604327345049944731131567311446402085152421441851546550029291785237968039487125015164398026559858269067591255799596328755200419715351497667893390851439628268707492939573543221617129004973456463135087233802203508615423283009842906780988723460468605376484091693492695319278750493318246906814450282442416005623178370098453159278938002759175270248606799315685582429788482714090159780517977481545196989654646901897866559989966412938765216061399020493359252392665550910973738972703983045433615284115696270325554565934783482477125658791435777910322210720934136337956581652966131052578937848324324735617892462011925448647200279664322249669633191995003747049198457571541234877191262301027820725740646219167225029985006210750518349396580946202747764042772356541203974397112193196029138797449459249518237150386881649590420113095531489284831926014773411768599341106619680716065578721124074042432166098872380621925896009700832907304275654844800860647982476122507014899426344561502913652647156480247057018036286895611941078227314983730514731980020735499600740142501476576170780870131614727976425078869838989786317165162122017235352930925773155677754505014639246809845420361032249608269212606565531128512921091735222414903665253101202994025501972404388213835030421168310031722433697393686318171916189670594676596683554459881795980427063044205113344151112119938644833938884209773921197484238322369057811275018682521752155893020969793242334403003225757094581742762082011172793467406601033355823393783477177840853938647152663526004834057042428276127113016583548910868065967672469732739886224739934520532219761242424202080531181112511359418974041942835421337390434723120409600553697880090308158204941495176442727338044234665127279522765283357890717471557014183971118256943995371104830449022187655081896744530628389590109177159217594259224773975410403695194293881173011261058132476368981673592163574607076674597973292112300330608557925211420116209132663499983641829139502978070801966957295850585069354883122776107673487217163974694041489486550759561996632659955369375194705990082261663116830765283023475587477385043394481208251078600953341030874328656752883320701180658872848970365677819160246083636737313280146175487555970587840971407178466848174973313033756173842944234755504633937327046686480807605096584348369892317842563500404808197669981306405467748999337693719302122749757265153697833941372953274708412662771779255470973987122753341130198532962152097057314235738195521810337578954621465029950244813096154627210364107431929507630887736584772213270080733513915497068851794251522157402607800716242145800266335008501010326608616691394522423635549210492200044398087604684180779539414743578926863973114626694340058280891531689128022965857627234536184221678726954045668515074576980778133930497364670447309933096507405021171756190542758029760469872365798953757857701070586853198356255188049961892875942995109498591229184088464448327698186463689306769494692652534052682644284286086371413293435260268775027036672953001403304884522230983963179491972827047239791579521290872938262156607055296636606325315419920184916766195492188980930110630831463791139063841233065166743283115697758309871135842314568522263342799359904678598910479564843930031133060051175600453322736518598709839606039442074396092201258665833209948597145571972122475340636030793661352555717938320037273174239376128832083274924469302768265612757436570679354223679148016071343994673939292370133804981339170745995551553392119565545685154283095072912271865826839644366983522661427565667279038257442849586363784886133566782093250577898385412826249191063899879769824405113016118862369414108329485099396520940536965761115889422487703452558888217837960002729106321032460189184300728818620452143908862540856707632844651854385785011893988577291855178980006406918616051045530841457536832225774032647555837756346973184535438433054689308224680856293797966023531895590296529497708247996117737131370459004673199228386874154267391867830302578176447318582273072347251978590436603117325759636002908751652029656344305396427041970428535541926977320880314032434054650611109005646639177608318186039158621568254995547305914488941568516176186430235736250263935494878774558729547196343561379428694594128709679344483767699345613587930696027516377126891510800076873051480820791369326964993538694328269076997352651072417290906756816326785068748851884234178462212217631925400452256209886757128200270493188255361024160490452104394085459902911720157551948161821470222192297420749029387974793757010797290583815922738458169222644665281852995401228139997545531160748724337416910314287710272974037254759356760561068081714375636964412782086842596407615897766175112381536057471473799850030644962331029482908425488303229251404243486319467578575172726399102665560349400272141943851760360565084297398454825365422654884304865844476467528364920267263159040558258064400562892949049532871096655531753413128726324778299773959454204174072605609326921871407073264182658704684074789390173522535579647899767205715715581729299645106390996705831987839209411509885848807923604359689120289012517840224139548651983006917194155329212061506750666166165253100030570787112046662568798271351352816019810885923154149820894155806832223565815821365725218796288492294929045991984113205157186910737833770053604589543697638214116757874916800594553051312077545982546988311250088361805267327569670305094149042560036126175692860723862641095631668956213074011114880429829824534223154942814498362267164701812337576969924457865409278871559090381981781233308642259016087925935794618074227520276531479031467842664616143623059040221311790115518994398052383181071569426113541207166218070885210596217690275724001609090264415805692865881258802494020252419190919544266763384796250032860160347826112355732349250068020633913936211292505293028885038997778937986562963055323486449654594913574570726742317775670634231867536811064088352147159742329171294114352888689465189390122410150129385912891608411858005452910264207264629776138243858488923489000365716946474812514534733243378920510118853241119049279870612954909694894299863540281237190557272685030244932795660860587768750392959685776805748876384477592637320091150735807672840699586993420055980786096512053284464950550652928193679335048967952283620034132844107306329723269198356659069667912993800761160078366773439371003676712272820322145877096301416954754915837377461300353735590558981178687913135693109883525991289469616339804081428713831491677478964493620791265953176256424719635468005201811734559147313551193466106100012327984117676581941547478332734135475130512676386766387935126421548257687063579236745433524788764785392322537586598314592797163584771200055866718476673759058625895583674978995799879676566034827117068747534197533061698161595067709016735970366115775456048444869691532278593175761944291826675578823366643837492386374781907847973491018927551498592118581613619547084440727895610052337427842440835965240170516845082181085664974268176275885347918605155592652291131576129395794795602608453052327774562800964682876399283526094408576406462990337928242834975087859926628650471043404696928097987323735476256918339271465417974778520120122483325585726957671785370460292243255855427399028557770425771767991558317705797478318462481650263805260036300977254818599690374007676602615116130595029708835934619573086567898267741068933126428477232559621336099168325822258652002769217989897807897785668926031256563984419207820358054437295875672777933607310536864552891341061454800310753708830305560107883017262410262340597881391717706957069078516216906725338012658990829788517292703597645501418014283678414182818165062953246664709062773091689913583343924359404620636750793292606052580663938234392961670228198766243729532080859013721711832124944160260597757628166613912830927396602788749851146384879653282763567889962001297053080540079244308773337576990632401784064013330271173418764865413702045418971725852332976139908028262684511900985416155096885114061044225790832361561331664012954589822127704131683521851224065775342158290409248592829184093645417408787066557050311922684135242476361318394881980817507307442248432886315867972788485212055997547048939880576581881452385302331637166058823616369345550394687534332933937950241064617930148990358595767869157210629709737386482060653634837763767784850712035416204819772109087107567693815908187786965265873476546658383227111612700335362704983698451562426912512692335996386168083847957882039098296511125780712561297986260093713221213328109021912426584011384588342822631729546165188208257821475000694825135536471681193961487029288201754912513976328118282164260375887023460368320636859720668656882295925545790537898797964390583388127267900551040989989352404818531950029179687701795811508477034621415060090814843305550935739836249000742703376913574323137446903302502324408370164330610219770245940013986519996038924896977487958754436368988882141112150295845719201075809837797736287740144204687525858680220403645200052617861191241343681579438994836446471475788863960199537636774318537212469940470112378481495158219984039797219380353512270980902672630177481980238631665534750764394399208688449747447283007864572028393936112113841338188167077040493072157975962983769845319779742580672359939129799057532978321902246583225659614287420272664520618869861148093716167808345338856391685172193376206032869814693899037412086939725176075297914883055155599194409005077260709616224736267315200233892166492829431153313386976289690854061370150311510314972999555797752157280025615123382474873849569960464666808608869443391082498177991298450520911439804748045931966387779206608475676232948309250403497130642560253993404170683638930999255870597379235630205478696740699145836362701533856211912803594255113325087050949359875932895391608059605630728912175562820519652903006183663826597662288630712442009327261487765501211780135967740597284177754863169921603036019574439438953365430658729475471305809600377676461025435379933468963706771454017798837158245396516148440496430757266311550937118249355712576788924557675025858487903430177324546116759039024357429539795631151024358101460510031177699337108615188612532316287403340996209735993774514961415996292926287796009060324239095844638042197986917655230556747099672023354916036386027903089432590843651580046253615296364160167901984212271829649486651789092489879914081293201629088830073086887438407429400325798297261037315247367227907057521550846749564721196801966011448619089560945298784049428709280838750698774771015904651297478643707535986236121514133972503622910360086566543983661033887101484664940891374460015356356853400073556093291707420578012943442605307794438646282063243027728178700842947912304079739916970071152348233648047109981118406521032777898091027256215382422963902204719801316088008401032244085814211425329894987625995061538520034147079511555359369769772991175329426132373078442719269934033226617511231408420648539720860330276475882452300170281998432810952336119459792243235484735575701245952238542860539142668601302943337034804127717125554327719378902732377342347734602071003488177975255193443991781730732522089061431309956627632258940111510670418292502252425030180104898099634449844551609591474976838208672101887031133451660276723763646038643694202012735351683203505449420096911379323003844238424199213238768254176342975232778054704143839927289819757857224835976095802370040496698294111149738881146954591105715516714090970956594598280784122167136774624267033137587327756347207792102136514659810957652958471820468895601551598418731668924605605330496130381022521863501721027454001116566064148128665594924843548475816009415263156100781034662190967654919066126893326163745808803557331950688391327513167853758345910354384393133715382617569499753908314809494310990882078955804549831602932057957007469299540749799087019022283370378668874963177583519254974813801143626500166398228495285322763809930893157650250976741330971525093882757301733095169629662030166135438075690266915412016482677540425897779776568962226746462945158053008750432348645701689110770308341141878760932894269976468002989304969855914956574891223413804382523653868615214837266506684244657200217944207813847672217321061343725904152533947113844316821011994372491975956028615231005020824794687054527393062781090171975454636416523567314838435590031065053399043603660055060341673769155990016184581253760487488680620252056420328535005433239970245712447855754944780275913395752573600717580974540333605859236021527637247803885628041866584227377553043427513550629234873810931156735992388334981213670919338546392356056413181153825472927059216660947545715982446660196548210642610676692055503433748496604531055870578776597886518551359446351797765215716064189516816905963745845712239891601172838162337851055475661008514349588138281345637832652330886203014725058187399984188325555907187625085205289413518804109623696357525303209650969215765839359837193556167281388390443895840638683496095973000778499224943337101501402031732009947871625453976047578876708928149782398586864828360553595663636005033179668011671458415530254157553711460642973675847091581293688880551142713957587436103106730265447875017625967932452496402318899909521256338757033528005744337451539196423377641829198916201408372688522139929352867568651598987073003376154401189694826393616275862457764667754080761318940874465511793622143037980239866700652236768559563520290485000983566980103747141394446286095404353962440639532174526213860470379453875455373567938518467507142624432140061326425958948920662721822949418142619169891283517326077921944728503235682297202265248667434489552440002259544741730775085693988326026554663445363968354509582395652088287943415005258566165663324904070716750726957383603645926588462823875800592907547366506728624913498325066375699995124243391509280631654768793346771765948391470401073348202967806372801342857010342937482273346747055962294837663756059189087641775599440478388449261976345016644080407556422574730319229991061889221274991619330307106531262761416582518166756024593566336509823533763692182853431377061168225350395004509993594942611871105421927076803372269335697046614306396277893629932385182011287734348629083927216800151323636377635653763414690320127379965554156363411719901957257925349077186246463064059699970899596162521338538221029030751865486449985260225300136015339946170739322333883889956845086036186599873213912588254536796785831978851481207280291048924315750249014501807400845202664956895188181757789030250284787823754085540688972624897066212991719583340440983879564389513249556636802709714495780897450689603769088081259549848205161347775913014415131304607484835203592593781322841025423480238500147349918405174668321281308278581466658278574903639936785187928946327864108865104916109517588133956368742864281118580063032517637927463071134089390874653425788649146690230103188090394145696706005259474084182685846565775062212587673727682636360726268584267090624345653487169132557799468722891815559724819943795016890105609966064293048392007669957950988846823960830840506175954309976649843978307587359087851943091733698145468692901043632689385381410320570160235109615556502748187104408076937662654368533861601044378056468465084460213907986251760634733699692671489899668871856949500392723732368101648110287032622356214608299452705802165843968416981378151097572858997671775936155845215744795131320812913586980657150141345976649719717560768602580670089213384627338282670205483538333497801329785919344259205867938347688204769389954191152004201832129110085106852237474916767322202675384047897700811982656840642455133979957928878826488173006518897143678951665035565344889192806611101305550359727422951985858896492644059159683863902805487192989087496724468849626757948700681160209453357643198943134360821701583641238772508874761117968064895294269102563500464859578887241070121555789866100211607274170029233969901294062704976503150031766700234343722367671281236236372166741659946257193940015538349075213125633634659488321766773176983640427979550462571248193809564317163053533163172535584013100562365118827658456875670834964166360321630609397505986376557535149629900303303129597450322000114953181045113042115563200409677134369903289523391705524531298027503510930999307784273116400625516776058148521865901781541810857911947281180965439652888821963111075650465815679670184968191824458304886160363714929130628124440493431758903063902266859696058594865322902379307938475793206697417790038716901407504476538995633708108781079151231906652332487487230985473240359730195842353165876721047596301104764496489291204936405500973288177222175615012393286568290830563779227588775120304034027517904244423038269410717172710495693864353568800593332000521337867806306167532943712930248125305558929415886273719194630511470129981848321807119791441101132546592725990563636673849529406615680614517348851172694593171039450785588131360413493374207186512836310340357061818450293064740121566726740286457895414029617983115281468245315533227858487936551695182405848067185395731213170124110275431042612919495122004858736686773243967893108378834954977024159100228830781916690992166853417768714852947885946621475184978249208368781515745094469395414639435948586829047658176500554530361950870962048636514886406244627229407893738785585406924511572738470038423600349225652986065445921227939324744241753106187685792884975285255934953530070256503624145528079830821530474101435934208112314434889039456023392835276273249743633115364103341367284435612441324746132618772961666231279882031881056635766618764186963631145141988188451864089549276265921497243298564477904066742446006581901667977100068954951959374727626691808404908237452021810929751073156615348318779323368495285898009475319225567170928287557366331428888999868320937628315422616958557532004552270878998783120535596193997944958816438506548500411810460401519916749361371381794030636318840635716898040144195347345360429964466365459837540921237604212622821521719645295155636478935468873111550275361323764006866041757247799998736910440065181479010055656552641781850889814200213568636324906362488188191260339014193624373066914540806664267178036478510044895012601643682815936121227901193649779115741867728590620559702479146355467699334728246865037809395570830657457034264416750802855663162215825550373128669563541467795058506726252721093504032496075189256535604841100933352028483102349904413372254535006935601182377431861635525602674644869958676824679417180869254665229271253573381431576958730441401878315876747846997954319881668850770966019414665487615269496666550183698874405683996582689682446503748211273352246942456485920393944228072450659089538642757436847625683465946691547782171451192598810474020889698032979714225011207886114544011384412278864319008709217699459006978867788211832955205354704628582083101041367241519244144657868314108498243604412494628479081368765075388455047836177616464394172847602391844172601412509761576224261226531929467365146085874942274426571884566765837476841562001236196987318103817371889904958044794076015375386582291139213010974730960128173208829869292127608499462919282065090650491057102662471393461231160941174157098342804893806745809611053361476424377320134083379162253554449401424889967356556073026807268328431175898465317266178290328861560274216029513769837400909336698065400265951625326948874556129004005135090233559406932926003997296034568716271564510324717899376040250588333943472648261998436293057138866789294817111040406368558440739936411171123867959525385946635496773174605425717457851464060628810738714259934388800607052153882389556376795317935826882070311735217881302863165031607870262749967188547432583300293822391444960795858605568015007246099478997522578869968177570465779860692343163705765289174423434680542699250982272387219562347379762453730388175105517830681721907669422484658860911912099293727342131034593841347258974398127055520306153641267583915518531132693787843969806103165146380016686838709379417164748934232234448899144931304874211089911623099294723580708215277864686887002601478969081517040458225355698409982871118779688699316589536276796768302123930230696041970510544348303747424111994152188845769189565863933558227613397972218160964380107713414507103877878847630360709528363191635379623015396954060322137145098179813921641326244057565062840816624567588172623331496680874674535676972609954871587606659983199249205834276160123483739918435289196297813463908724035036101637057017834441559789067434484633590669244156389875425470784652784688866421951011606055606003863309243782952922675510885556444502116514840917115118159431818132968743806015921237454825606483837899225556323516196519680514167388177988053122124827538972092969851384378074169482396179238871316489363700697798620789458685850549880654701973264787188468623479090742178864627552535747210103447258276772312877983294031005206123763423521880775687796352879303684794111073981384061013325564591304167056517037847421839712457497997567161647219022187390384890983729734042114001381813952496294819257386411121838846332396234491530646256249145845239712560458705432363992404860841091601996599685063830349790464209826932136563597937652767420938679380024902541973766700075727976884402605927876226915216412745374900230929381113561855918358412532266447167155881133929226555832315819868587659283861291102940932090768495673650574228024931038181207435470282573397818733100362434289932041376207957151423204579176513750957947112160835337534055391792984025826077776705713218552398276560020576608837572438294530890557336292737554088978227935866958615445240962092758006925972707055273265534356895299376818752655020661726171882957687339071595428508205468969839723806643887191034281205935052384826435152636890122849103643777640954572154588899345779514227982997285892716961571500058823142735756282583666901655353541328804499674005880797834412500725139718717499839762021516311276484995626910595235096087978281005486651801270990899917906628522492336764400202160905730029291355776618844557612690974794473765176858986734922005484579604305012510295075049896059732583913640564968848902650348190718709131561602938654641662536760420533326912360377665216768074125416748845641129664069432355106374251989762832060720761479371598560604302956028577027420727577651170372981969395397111728557654257555326180116215079722972590846444270237335006324328094567691662073474688420997979952627653774016073303330290884565762685779256121483438195681315969738542581242898509016723975736054233806323689338181522409476616474674238879954999815069275162586095934044115612197561919569940990940141695186425660653188674916124830534511239406909893343864394167006192877803192324152408124139960945180406122465001417139390724453401480847413665196176715789883741778030039542852791059728593532019860826479419713539564506399926103899884879617436315419437131576436053638206206684213707925981029393547017570749925885802450251533826541807444843613115813976639975014061685629521972996786623810818970053844387323356250657726797680392894134111737907712005325166271253992686833464501032226424121414539658876675313234210539523720092306815165025363290773371321294330427486880800713827110220688696518719345634871297992196528131126280003091326060037780088330301231093286521947337027415188527387662651528356036403601611502873495797913854987668149574949067037676650013597732372072233437072947417778541820628507225170043965633612781406861551016636441103659202894924714553643848820649406188315018791768524740833716588906405556926469763483083048625078252507116531280682383461193214803730237530646955189483726671590654956936997104030763642311460010011104746140630338448924301299430906114808975708086131239097332884049766081973779431288277769361437313819057747120540792732796880308641879366589837834609966985350554341553947634598888684020955583481133864955907841257914669353129072610832894819185767730242822710438906476886282894573240191493856248670399283165357531014630373360611996434386700102330040347499886777726599321908091208219950669954536801394559717967000522039536028605864927393342227971868028994618459867053400006860845278861454777941282832985704828319317235922433204779297051177182274202266316643920118292789357916867303586652919647851133831317299936398525601594224801201834319291952952337483082533447453208525409466054144574837018037588125434176462993646682440097275812477866941731699786831626198376953237358366126298994071462968571616772362677563843412410690306870987898223043254483145457043119871084462582021343863807222300088108793111405314371952813683097665318802736900543766527760948538856430665236203749828368028867635491011207036821705249851077680168018077129948004570137453097357444086182376456484620762556522096231363961474794974798963832368310127797559953321746471885711878173364968379089457327217270231038867851105436972053235343859721314814260523149376922177183529187817972593111335598594722119714179113922685035909362351781883579708462109494563786328457844227024008214074498977276182178170908003812175671495510684355363041179184609406007723377844315390386319147622907395768410688353616009624466445984663532536029752701438283046078776368028634041046123857972741973513332893024145803784321191406644394075390755023353309534817459774537670248448644529414673306666943611640036912491888663443372010364108307197720337463426311747078943319129169614299198611042141198165557718827821732318022305036622675778684195303392189928197328551784060631899304251948324868883667739255702506248611471816627748617100666790738927332964835343740336645173919451418397045103370624701096292885110098987366171312886605623868012932729181828561622611258872563840790346293888120225557300697090053838556283156715175174342610754260085411205343628506085189008166631941231025779949711513505442846506263115147395586846741187011884628950402370649542084473567058771288683029788646144896837892148582879375086923443411491941737196052922151976447182327852388421514582346905556600388724622049433550385971303957905676757894047601254708519809286116049738119318472512941266766098353474406509018527888467278116763653397964875395817363509496746426283708710025525852272849523627470335334087919878117182276005050095642603386799585163716620502285196460297509205850875655857955193020848706171252057831797838561687825280488862605487594131835726314572502129765807640960546413239831388547049047247746949430797217742987883147426058373446993505241534801307836899247758589839964638255376415455551951602886510370929314278389107907378078099496013533287950488649242574524123327205895626657016965382951459285817004769307814075321123771925530292919840397265529739577835900359277959527914812687027744105946292597102112038137710420206463713198406861313753234663004325158472035678446008864660270348034277772173985070267942049737725173918687281639529330254286973918607654207701965364690674756054524950295050158452733039836898391273106845412374744357914900375119979882363772442304197780645385038760511747595337614951506444384737561587174098105107892641316869485568176322759878192291196678529791941609144994765075654649599719817452955772990009006673688095229170699612718467401007180849040964301802681969926632011060817882281174508011642773464273732068952822073473082683259284373771268906308843345148875624709460410823605958032866936003111442843638708802490983734245349266024359466181680854118981835298508869351878387900965026183417467040476414524118832080317981914687545077647525007390642702815525954983383309883484701203286979552172588370547144076929468017721958821115987369470625268130928363461454961270174603238461625537093055142806694312580131653876485727478692746230556792368157344853991418232760711630800168250493771445007504548302279790378820264811772368610039137492781181239005796818068257574964559285361213223596806168730591803075329941398862473506857737533317068309771589630086785750329282815865345569701597369952467789008085465803484558645933200145676371921548889592466960142958925670452155671114329648224110165521231132414569549887603056457469006051360217040547551885594382295437579681858908110124143591424747843875065071963168436347525505970293347806132068331788050692000989711522160355051569166431933795531260121514153945397019442400243011877401535755578536732761849029798333590433426631211722594967388559672409935042504853462632849998697054069844391238177514590754067847140354813615492599032365333753280649461337330238670057663380330513660278047299089906082190267219250179372569572545830033598289674285483107525953808620317159394283965689800979199692431502174889783814097757771347618228650673049446287673268874837069895478296786715167605569633964447635892407395451644905031252189245267957130448408478489853507965788946826596306887769312948397651649913174554960836083381303801454297947457848183466921056674924862277091102118641977414433074737098211108055148328699214992405181008742831539940526279780768482669517594684870017222654711554112692473673295106023213421176501069923281304404892720542350492173020649259198940252309494759130925765549126513876754878334045556927937720174109512356200014736509625202711422407255246336094483427725812866001131230536575159451601018437197476223203643965201973587693098501633980530077958620721428911203209057021880756618959470958927482070237747884261242226890315510400168699397711209965244407333755355488105112757461200496376904922891572487226044127036594870850603684212166911953951157980077581816556953569873088258113835885739747352717717295189119975140579731457221007928707643321563591763343300997311061049896699193746826262074110595725957068077635407265923375524203354400475125979108396940176991077493000901054169844602370385956422048495861535422647039497922511328852322230614644546122432891249550461635571550401651194509525464976846420503453162576736640787111334616435009461453906329862791505397996185033673377149187610525015371425409934822983736270658630311801021365892112383916178546396925971600408441565651887294690502470155410270133525631746322024262956917402830998065667789699431264322497090697870658669191300719535192826569989917783477871189021876475675946674681958756579697070658795141247734513680622516635078775523464711455206358683193980027901218189216035812404533534835911650823711960735006690505292227306915654062346325057775966942939665274016402875929975239244982153350517846472333418175607277823004679272882253206161726549671166628007134311223665803533340892728286548593821847680644824445660492496325888507457429487443386415528409802562048762266124434163554379939220736484328492202671816160955268518402899389097165390630041586067695525866164472482689786300472664933498072800925859048513054711929955903704715798052073498440604237475347555015246961786712290302524297097704120596978891496298142687500561999447154730258877684054601614759358992332645510345782413420396887760457525709263851420778963738211029684297070600711563388632739163799816080502591815123929947746523087912476698642828998751751250897229838787803627918371514452095167293266566485093084335892720489522785827296335976157182852037007812269839098995234445540535988800950249100569106223836931286521159208263768904957409940794900306231513653445072730622735002627783706806947850448179680670897892735355519144793181578463159724338124628385454498963229080972309664733302238336586260776239956584829794823318771795717814189675261917220530016492666455707076899045512567933828165741373714738439835878174638037899035830726769927838069035010028288025420664058043497734801601767506810533961543846151208035798608552760974093787791357574815497142183075569213131208857132032583416334581434330791137630601735340458327625432641985247693980577885340344620188220014003331196930938408431689547648458998804421392894128704982843697460842899954427748347122396918705856535250949194478219228580602299950188933776179758140737689528010230752586374780777285981694132869190957986918177510838444075239573149847491296176056645817181488990519712354726254788862387484967547243738307258703673805087708880978803604878828519065188494354610909754896375789464114177570773060190870081064828980827033698707385783322001160887840797689112861320160198290544898775226660176752044276508093032331335943130450435347863305711727649163893017444842930487795473254587940647242753508139631812041247047140171094375470631916275396236885101538681562051499167594213317259924401010454080493036235402829970915344043891627990634356977475378719001616316783406201014253592591265811751916052757198438401102829719820217572569247412505356817589615845466177732695686947258127004338623631756195365321829872301465669329141434149507253669134399294138966803325882170601585048870764316175419499000242293304979941139532848860658150864438851179412093270523128314611243120638609619660747389495179196073578201672278238730342516131689545775230620053574803538263335151481821998839025033800828549946722122102002976452534386052423744790013820223596280091162435629531275488655869494180659694005912650226229990984531447245653086927524969630148525553252484021445603006548985183966280199992597500745791570318103949104814903986172841274963624276514084573645444100423193341441830999272788819351087835471855063746843344191884925974720677313822719547848766459676217739677482401990468179787918578109162033376159051624112519012063763591733007538769368778040844039903723505092465250613446534633225411747107014495132751437932464295328199866121745536252633909862998790550743711175291493276019863066023175858692850332612102724588268499470724282149920202698207070598441059287875654485594751774544841550171927215388132709561300684973486827505283368536137197965125880579811427513366551414944112132307069206762979416741219903502089174551093794456646397261710168339679334946322006530904289372017410194929281613617400831401504803009327400961957487774005985950394861418707352999557591851941145084773961493059943012245358150624621023828591862995940332892931067193264609930581424080921900616878783741971388093900407810095284739898637307199342056917083490213817024292277110660081763913489935614986892251342268650000800350451611885975717464866697049113906798952951999995165375743679481556098764449505466906926405023022140594546286039981464262025825252652121486878822631198559116831795004697714188696455478383219288468707118876995515974496959621604462822688426700242661882631097900969822893491269024531229443960379772450737847419141870309165870112656172082065953576440278700305501738022016071548831956683377979041852454919293698349753777217127805072397408934290987686961419314301832680420432618074591171998018455115204680515963794874835389189139678337971040813502754381108150783243524647852116049662657295737644718541224785014431874385212429326555132616971789411434489722890070708554674596025689128296864830974806710980605228927341107063950448751887229408854981397230246714289707460010509530727819553826710557875059924176069529973538549747419711985260023292731058324330098567004442413045811589066580664087463551024828378653761966691818034238671977840646436657465339981343887649332208718408170280759486547639817207418831706348241669663856864541155748208544494563906870622665680865047246816753076878249240541439753487133644016641458667378235026059146959549590114570686492094964465368925219370818377656593168031352630937381695570537791652323750349914079503578512319778869532414034918673544891411032608518547884681912330501823314376636871306139742632753921433177878771880622064862802978268446183278122298647682208190805322538595582761885571394082617390303796032954774103348179932507784909180604722484720903459860062009473277514391115539419147345382644676643182954131944960224353298762923978798673396739713634745255218932931591735289840324862371739810499814414587265363263940289862990216901796628350129559786825515773495329154127539402971909303940016208628278168935776309950677456397313210834408464405538294465864817546954336418026892231376718663294341936272009219813785820832679640209715963192826256530544734500043042240806979823699372784266968860669031696050085644852000723031583304543115729902030707004310460321232595769947601767847435438456154388812704634856182342037204579790279438046535299086810248507264300520018569082212206995065217010945238487204925973740788052339870523528632116275845780717048200530500858189933365577510100845989658531710021710599705453840999330782550818314938155364857043854731734601095334728450860577629514390283082005791966985260842228537993324199294800335864585313778801220279654496943614728130569024002813641127964203980068813071717254479591971994155090754337026354817730760115640150108165450008727883620271543765156741579662482131264466894835223725398332018497208989617220038308562559055650770695208450981856190030780772018321942655716792146090294301486945527726011508472148018495434564285719880361479675155781223745981323601994394998375522547208337543162277030945802533199404226617282691220360575120793026542741260763951592259958244419482262713463492440952479046881267226600305945589125291500486433766006649091690296980361716927888565019999304998482842605047271305537333206956436773808387248919510683168023813578504383128945482455045784210731519898968373044514400570446620449351165393165214416763384609039894965849214988430101028007715255660715334745596978886561758007801022956168710739088252980786991628968804032764646082239520279465363814635628130771219249291220751396454405116017221452488146347895786916986157761956049785964161609190917821801188206552989774916536531169973394831228844982127579115158161552301469289411729106054962850773014783938476098047985892184474332968029550935682547481074285232329239113155308427787357306984989546707600418034444635362528348559278104877641697512252867428512846666223916261502470335679075081239860943342628147218750114581183514959962387373835754245314330679163170912472466991622041453856049113819687310649582392942880062222915384113907847230988896283907368843103249526458233008086492318561517094903242552948363507776424205352161663821760471401795430352363498673740008514490092302656563054239327294267579740062799188411316761255176330487245261011419784944522508135586451179455802343418370369450336612316541830029893222790640047900938031572541136410620342916345417372411283966129209434984179288639339933998440664702900560616430022351812349911665011787982248177733079027022583463036023986816944158358194354844612618715562329402753493140388367090906170440851894070636560194855065761710996410912972310824792485168434410171446991492768408545136353269978652452018700149591712495004896501166303621763470433522656200097308568519647360874752400333907134704820670921047226776491194515834947859781687487157993038873740720004157714760474463989976756490496001431844574246387166738195330659716870168119119793938017346303849975905639419038934622077568773313857390659524810475586328448116906093863172855132886219028407255628055259429934388630972576766249343978327254429670696345870670285192876293253889967377432541617487838521559974957481769111251668204027179978235546625394947671158869962636500413389802890855672558230767869124698273935736346282735393420339661924950000065360887112332657993168442914648170018830000041505613651431877899085994215022394243975275152228580620065073322522418962165580564133464315734286077233993162269097413226223287179858136029073038195983708011291443004240201633198694707385267481721922903703248724322925959218400894628090880862446505787555478227052562977308416458354801218671644631509408799596393878912318741784311736096962870042838924182797294398525678631389031678313744199907023321669560513430481033976954638743683017138048548226918927517604197845333016598108309534697456733760546113397528761581161349899853140906105277640549395468171734706633955077645460980558485104903138977502984355183497562802209011001306939675630473065154367758236526771042561264321002535244421484323716548151557774981468754926515575881387764239212210274770092610042808686263330540190221703990326657146480830637444724864177375163362979733475943884424196212995761401272924584872702196105239197413952447969956847379353211692744288331763802709196273531317856445652336687867556441972602460901796761376980950749819370204435703124553739026985236431601200578618839089686824523344238408909831890034938006676340354757084475475159956043411335035025478808083217819146299880104908722151437672020705567145053550989846046162790568698559342109740009485676560994935288971772501417161801502009335717804756731119665040512060192930046268171109046846605308289439593194338301447051577087610764638882231605637007290965853709462439903133661626393536544505784050270705040527277822243630724577110084513588731744168620734132280218833071383688528541615924139295804446202514299168092293339783520468764873128359038988598253536507141125007478153370700750581710994363274944016396143702538285840056759551136934213567058486846835369881078366152064951089077443941041497320194632267386540379907939718409273915062911591063760392640075898133498808362156528350814147280184953663173684900959148365082799983718698723557760199605762286157288074900740555946737937412754378306229421081920109488849210997915812208340998689621554640574829246338485989062523733563351745407178434120830699327392826181614960954590215115091182163825554674057075574954097174847795486993515262846855784021226944372814981171952454441336645976152064763549996532225661076326554364382587020576754226928134452037791365847746854501945846629260378622550969447693185104754621025057998364189272068823437888412189228001605546910304919525635523483596051717428687092850864421065820101896629906804371198627097580642782315678797609124248044241823261996200947098049711805541681395152364075776746758325082056731306683876637825261776732561909512958309680151336230241312658504230427665635552572369602829275445121058585993846003829164523257737767947909474888445678272176584517542247914915293568952105812125441975164668174961310742311430923454949074082543400701687963619840657625599285462550177435046151108810080824220713297160057607269281323920674928333165784662502749537997793137486700828976614403165347019510498444569950042123002171370765586637592061483811871654225612743426602273458417471971517104625705422590222796984182375207603688461978429735558612122814983242054206596501657733368941165556392782784263033083673149669207576245320958387109008951874671968166471897869395505659364861929364097787915908821147465781824313431278185648745224262649045817687850744921178654827784319132286521963104314462210712197885754009590116538879230646945825936094424850125217990245238292389521886351379982096709461493171526137271711320733534345858894048056836780014761652773184678961320138369102935062075965865041767829769253464290409998154900120872909176001374192373879355227442897552157134226644458117206127391755924988862508220680794452140612727203035007047381839779524322501526849913710392672685814504753701767884894129239079934733867143990707911367239729251648367353341066748325837977137643918304963385165652676450431251148782935938044459763735054515614614669349551488457863844796998462546499792894297480409937049980420288892394273986045738034235124742973515851941676838671450572707398916794438585977732332237704391733117242770207621743001598976580472473121491100173491794695959062147130952687285238965503726382969331466006970421899432346925230776136810155773855623412605198601432090017677584223638290470969037259509140828728155431317029686447531407642096983972129990605964403417042974152789091350221119409072317835014709896072586483243277277287301327953926680316264369322405369067334069705950543319537349884653910288352373819319749632060760739461978996774333361553790547434709937955309190527185721707371404422197339282288964567564801174228922184548878927332141440955590016379110142373152967728422960958631367925605895391744970872156302747809942887446223656117647429963851944909176631709861709043960521739285106256591941288936361775883254127140054169833758552804117610929000038170988928545756523932723693171285301200773608782436696157679386736038649939563220957408156562907645036225718796394586457071572559740855362566343425515962637995919995413651242384728712709710405781054097157335057427473428750915140754330089382699111503966199817310171626039639980767486657279417435114440041278491058843589836393976466219323159324461746092688766979292521903678671604125669649363100351895626450868042064626115321155315418766995958489525425088564311353690326281906705498606657961427425436609599121139139016142884446021881969328456968674910673140424112605352156465948427863821543968686598343050195231788223095452411709893678876722769613652366992849407257101170827548268242332218153378959015071170289829780695241942175481133473284481324030174646966140573931565900483973032106893694801966275520852695084218959616981638355110086103338564148644980979703622816507956032091605093480987767231766261179637957048084839955460826003330533886835458713507407074747805025329922220999954671004085820963304411026181915886446437788393903468531837296533422234083641640987805935671787537529854302039100248152013569953958547830612496975469382757970511412078600776171153277563521571949187521060002148809942962918227708557505109108521913944340976083789085063606354055702423433817338640845460448124096517330942456949941123829377754920493660466329264381197706425501873112552266684084134622945137889771447892452245649838761597670623464991808101747484398343967206310219380524841923837991826100965192372605649243762479041079352606232402973797181643447326871878608242670870440196863869324434747465614997380929678858018062862692469138048116220123683622989092544089727410612436005327557648563725800014478734806936233043039848684953165438510337105676988612273805879944161289394408903507128833578507174645443103249744292601082059067798865144803630211931700336263985378652724732308442465287124167399123916913614594715245050960065081292658466739585408830134471410583032026471092699086763399977626068436142063815219659332195878715163610338628456831759719916901251266838263467216088378453660857704686059569340899740775178511382967156734019687260134460172088572178754784390993609990964223892845124088971129488602827332980746259147694515720631722227224646721959318742648608922617713859283224253605526445379309210013155015013322598975206887772789544566967661867234333837747749475770774738978422916521989443585220896133996922818586066553228249595370199573305323619024752934769686005539235935444994948343972081759762623501399751416436485715103546010572821594553246536543497104531910427439398331089384740174050622302886353367280037095874032932814914209580056797252230608687724210880409030486256755151408386155992718683529921401474606261318859189092486236601572875672790109526338474723497860545670644348311771855205584385027078758125221379727042852588247299326331988606677877109513941014439498486860298898570988190098945142651494147394119732445968182386770686974492801427066851933821171477054722019723575160946781390194985522535012301921427465663878309205599269594690726659366670281963236747882855637369915756164810884004705342749345663439661553153535751959325015292760062393870030304186619704637561264801346929001251984007225594166726739874482214753498853686311457373777677606808981307581784185281651555875531146408866789360563795927473469399262620905991125466810689751662057290020824637717581540179412088774449241538995377853465411670394883686581903657426789854630922131464995378614324680045501644829584483689072001559275254751097925381444925224404158841785279340344984244148252924334344511676098879081867335759491064876687659702823484162695707371408250408376298215073672292288683204122111439596483282817927516976207149388841891402187071420185626686042605742649628518871001381526201011927135516797782760718528802303575205904903869135926630949434146289726784644721103884866998423560570939899376777326372921144008874588462810293970322141054307102885159115856244584520372639362556658327513317436138812555203173718622748102751167228163660828712035899880409203511094341675412555361733191148360220419877428534863192022623909302129667480864807180247125636506615066237144637912243012415151334305501233437698219872875556159499642443679607809064874502338658861806356272202834814814162406630576910328745083104835565228336244946773372579956581516874806168653210478457034351542726499002052356560479284548524039610417917084209714950463702966153217203619688952522165585383236759120653404458919170451494506514207643099562372798170068812575116190090457236177038469571231089141436214093134870901371777199594438640373462573751810257434559203727937575154795025317940789156632419182837595972453579210830663248618786040203936841476796730187924297962742946178717635286770465545045430119556296422545959289565667751974815671663708437921173127518714439193750981313851980699736250369474001530595881427147203131061561140723140594226999488380522660784599446345009024423219780061281730308663644992244536214177842781162302234004863589228080669735548291077555009405631036755810834245286320685383709718901030471022332752092995355690791402705370024768937891822375577472131033174648531647794355273535958238503537702572064200335274413862677725179163859192673258858414110250178621789034918316012152991328561954412719074017204331722475957326349320837441860465327898846058995257303289242880809950143026673180183837825109068481858793322811438777555792862515705874453528930882803837159660114982324633645221088576596881414890478320510451814305003996236942227198535106384921228028338672305716210300434430966376738898402646168319615209623895041148718186566266019679453040188929130378421505718452049539518199926466050887622755968711205744332756461877345232106806889083641394479764409023560782082065904320847698614643794352223071044484838143966156095171835152766515320263490659172177168647566548977560550330610999344990622477130274149023622168686879964032506232507869771615436067234868831310196092772687002531760977364846696970947734877652591163015417084318928307342053237058294741882938721445683824330406953777761254539679424507306972606983217708691428908989672858716956515302799566980616272927267860153588128685914085786815499081713023768379228140588670027522246319598669303680998042538375612757300062485097537151314232001071697644369880987574936543592037089596073155911349343429329904433737235328522587784128844288435557410115778199816914840697377363790799533121402662364426538522042105098462879128027427649462658109641532787168058790934013041342840022875052406417021455230280165672197876962238772569085499484528333530233729170634271508467770934756848681754290409442712043370034630681258691866454885165263168011062339778720864033517343847527490964766650305619813891887098842352716619789158324324375717493758431151703106928007079277500722235518632199580003877076451396940483804555295508984395876454520936768866885311016390814472626949536830534958158801792439664449934213051319155435536243476765491899466841403405166241703809387157109331693161523525250657583231213165566983892615984423565344018206709797907975504591324434936178176817392604207655189421672804451763724471315799832997756153465055933914090387328622423095439604393582799149934719786382581899335823037519931614693919127835266790941775923625290961166765528311914461108612896725056572163180025739851718083554410945114639601583374324849283220582999843610230243172442253198843997445593574263631034504780086961846375631791398384370916224447824921289078576556284714676319324498888870670250955811367178912942568722227213551909304330790113701887376761983812604435178417547513739051995509875393972393024449764161896511332180143426164188290770041651805865070706613937631641936432574227456287449762745237232337362431017295059102774319861815594414804709346963743517591662051107265874592361061165385381275372218940929597479633768930454040492924085415231615761820046164910751184002366954299237574182483703917082735136371748055039525525680303897773198162264470903874022510218253766437878960371894960979610361287528175512729822080228759257779348820729564439379224388859262827614809755297483262311543628297236740185027494499222146982404079818762289907613381343783563238176518163623774264589720424294042172004642629372955926887828739216967676827509161860706690782661341868360843702122681504613547507007655478078602891559018820898385348274769182367556918755994263208565990185046906202018799731677331305879289950614124955592542994004230953178672368417630776555458972884675073533878972245381093809114990090136797072518310492653481521816815239797843890635626119159064836427996015975108257076751821291379493058871894949346393018015004064819058204571833258986549449426106503450386466534635212035695426415600113346155098018385825413981998266198576513104815742598514093932468330651831543786800424166707065728733831432680942991507073140394885167963769462911976818410752656342659235278440659021836656350926373824413820947763571326848763693852197779218494574051862461928986580831672068246358005334941917309949957137643045352157642306240034429294845742259580495751249811926451601574496696762736710510732787096590158707433026607571761103137141934262823699503463942121345758426588890167256031702495158195874844198599526369268523217401824751570100717069358684049559827946579457747251587907257024804409340057102083314603363457212375225368078421610225583347079936160152654965734879005814865311060274909192086405442280419499717312646352026701347930646136934872465969212469009244453171994501339549831509466437838461202583420523092743568469281703966625821630162271142885664070470803755393812686437583115170689982938016931752060804430345697214277843153037404293879979447835166403282989702076518992170697361252354086352926221547562862735704683324514517050107647300048478182021614535748199014356121070767208811193293125427421837682135943276526332790876631272728420462105138214293861617689790892925188836300745982701799532330863943934913066233862383015975763160848575439540311381511578818806435262127407507358756625822694927960476674195192876820828016733780439861940980230232215924287197318520840817374681940621385690271397821088184433869519364953377297978437865612590342892701314528620673895803043975933326567797647797004154372209798172489916666429398373233101050163571379061878326561669276086552817241337269242106732744628881647215636304259847173979502213632060448411309157268433605638276247775890801336265910948479623916797509445062249682169584048296399699861896032872548646164698963385598691256600983951330864744749916717395406159390151579699751089072801450822687723760490982341620234479368368523479029966850651187878093544643320159095755115162523625640287315498690363568627060378422433329666808177169344535241600375778185567421641290695946578050417555660447681979218358416199198340310542969365784357907194393999148378374282872788823881163163672437713999064564536282372904297869245569577387168360136602741580807668459189316651136745363110413290205951238969246554179666176456855828954840960453794631859297020749386049179695435789947126791569188317849657512171869521797410363210295781475015900353881851746387955265354811573029389874812245895375990814728891327153038924358206270257675676970984011146465590211500904963599329344085798597495042297262295720343832367524684343811936076949435150393746273760091149519941914446954755099304028844970694007257027141330803414303835683031516563898553837255961430000456132374315097327285245799995162591458231602214310402906579561996015514871875034769452964765286601556417601611126123839182103070730837306491360442088371468223700554216069004270840457414856788258040093697950190696242854892896320136776732379299262933992123201159504048287779059160149922811367686952872158563219850300875307934572003748998291218067263322065157889734652774442454597528531143645297318799045429874772864053550318610926743056741438033588593721619229509668111418947693528408703416112383188757719454371849695757705278899662635064381162594929138518572433750088839049483010441013538175803246896080269137019649654468013308599843674111605891364058672413073710731570168919377356289677551650516110071639234353152261570279197558015064056962408531209372517465718089573047216313614052007406182578596301565798137425718239355211339621367939352750824076903033834057044507381509956152921807973810500281586373725653769308838699992309472019349243502013216525966226393129813690205007989497073379266643782465674881559822696376488150835017265643830107898353501241857315640422133268379077002013177255176751316055955194783846130202429318673641987494245055656438885224749715087833762484434978738930200849889301539540420221938249454050398062562661170636855161562372419009323996795565534254333321567876704004746043238758803436863159972042905574760612786992003675829238550526161956348370115295353675386739627328786058869704137645425745772041614752815991026014335281000383015035803432272010298806051949690315228981741498524746084315815006466299568377319047303213878488969493554234492413116102121770480861386515584980358294531538610783780705444715123890525068875365879019271694682694674519195100989839195638310625657652400809070394778059188200752204551991468505902414015248399661651520532140661988476464560768574723466114383903692507342961617822622301641925574879752993312474256545674574666272365420248851198842444105418176894331754607363876030520532437672913764575339868533065512747018838749483301057843327891298680293914630052345030800963048309081444605989619705721259024919988363426164716275025095802366008574859603428297813867084949293325317091054354197173399901395348943062659402281174038341247522102973919757542857039404096690118339065808773237500999309015454258234404109637629211220906038148358382398798512331124284291647016291203574399438750544227057266854494056877142162827876165949809344128297264437598602196820677002439399415573827376019114123229195502065888322981629220451785008380993750842612815860381250303245956162300544576390674026137278936849856227400753944293262760451412745053967178907832469949576798802995976269961891287243652674341062189845541736095658300587051853944857544932192365364303401091977781184079273817184128081758355013968711436300336112702082134080414843776104299047201658974594064942665971104330479351597477086011694721719342239051297397066275397748511325322644548225113328200455350950365373083024600100013237465758536929035848322215607276140537776344008702682075061222074457550691557037832416180842210157510443695435301453065961693989927750388072986694507859745290335262203538590624356933403023536685987634404875737528919864329400431434164179822320047963848201679443507721940222794036355373419940224477228434339143546667445431218895894887276989910903072389917531265969984209807214290024403235153316942126272383479546207533774058415260727683920373903995630446614130719212086167630739988755375932861878834853812128528040922677509517032697226973971292798661000113089383461780699586644755408332767054123660103840709257430964601906050953338065604902636204661391515241907802245994110358544108453798803344771599255557253792573404246658296360019449498881381338890876645733402910885318224128044505659727242640920233878330038496570360498726104229210302572065560666790670122602013316498329064294284435562919397514217982666000244861718173316936478821667481871208577488566378885711307713065636440281857708076991395358936672397620862939578230417522071653014699199622783236829008414444232241820879172113270832708717174912725664767889709483729695663252041195667773264352570850154050337829411335367052125462717374682682335037997511507172309814230978880205890516413433218066466705693308762910727944002931068975187765343429184249230572687332164807855299460229342272368480537780002937510795627795201295975878640354088502038365842587012193543870238735791753762255061014404365567892299061163296877245817011014246746960204615379222503733570528371203026549942216992978744961392828522881400095457082345672952485900249312589835478298752550533059131731647388790117930040405182832195874438516020289463564286104519131454976015996412625025986408022521460143814583047074259617541861776773267946905170238667031580917811041366836197613753220755983164154892100258358242447403710694107082075810970285616142812562234700557202851515164869526663620300877272194525031657151395373056249264609680555585042570191188618047735048132196378753550047295583516234533853248310471879300377174434244044263532855064383477122551285219272126857295413944625850262622217243177631793864257025895336242819458153513215202007210327654090101908909845743146191150670479835822995382426127855055852520384900703487388637314212727017524445956089835055403265943694241869730740699417361064324797262461116490255927608501956892311142212073119184194918273172223654205416902936375452905782336992275538071495474018460605649030002079211923460193482387734998964613033202820453535313885727181168043948877101334662568030745264570370755594951923360114679469489934149561562139189412615617575182854802521356026333899756965526517299475194470617141324731295015263563019525562408663023160986098703025872746740176495832599577507766634869725386950361818734762994879309299850934030618066764875821512923151613551065292384849168344473060908144386014196925959170963890454223654378938176620481338618080747597555262435736367383519466069450766632178859193036708650314968483693979729827173253522340937658452114825514428018344536979328657887357055548354457404007290443670726640039475469828915505400301281578488427343928746214083237463630628181687142218795487793490767431500248687117759356985923044160278530216328794662022035264585824345760269635235144765235137896494804746717505468161257208964016821245501299777766246991472088380484435119369858467269824255437563285041013656820276313811574152136949641485632732465727062215058079620377853495427200934845595550459790335422799601313702386582795700808366967028467038868662711170853914904874115375727514019802786810150370327330797038903694008838849541572124951246038622342637373781018745097255133669072673122142132730759421148280506795532856215735873722706049199121639257119777548808082825287366184955891761487111894230095535420690026420952287383733210644889082367537783187960414681736032832447757509768481827957015448912216566608944630051981854623226132477096395159298931320380182159936592854433294491060906842754580698659427586053397280203903805819556935684345604430343791700625654547273299689594327885514639428199666668946824753544191504517083463779513244523168316681159486878051372375156508213447234930991692216167472414712528622615092768400449341090232656096668746183312331080415380442800101000783547407502060065992922241925403949560835616039384447418361850296170241154205052548506116732491768681649850456130215436768589710311693662078802478789460600754434595348001875908386228705551279147147616681757777743277682730489583464727114367810397490781078464950899951649856818985821590671449897315222167435631669993259010149043293913278057027472191976487653044284008617850729291509667418586885459922387853009908258444271259060184184971409009038890251952707480291357885525130095381768423752672513963074619631179368118294627876440628002791866009006002354886882949278074074287364855603916104662307391426846368448437443011252011356611998231251361305439547931392895343745913959697065992547862776675691003702531071375526286590280492041254918606958176225695731835555677632604836579984672233779402714046745265787065489876081972278732518862908262690956087812021024271215007476714007193125167185296404969233921101659144837173279037066889551371149341461449273145507812916505621470974716992055608566596123085388726262360581588414395064699692107934965818882652347739093061759594906639970617831072156386665044008310552574752790269161076724883373138594212304893020607729079838385352626182131503421786274987363944470873706327356313574599253622036855029584180366697317212605225618031733852059987948645265499457307121747920242749925334840175145441211153950689661339812949851764931727789761656656600358524323885019679038149822933881628504909080920988145414853723445726830983266896224286779161890336825745648852879927956896975722459805569093556779031587022207901977851526253249872581125477578647357788411712461321404507174791996629972535890069333729126818205591269614440164771773084299780965246401245872895589662729888258075917448672731470705795685842549178157144377366521083073148359331454653659193021862319233903548641375663817921813888348894894210943979528052055593848099765285931848863373910689704428512627308810625043398049077961366378074818972844522264534984555215452800886935589084764292951408583035600341026388702266796021988500529094815159448253293263461868180730307807748815550443521276291431181038027115224648581712862129418179708259069629433990204007238636089540359413893423105436446610787473598051418636006183050832826384926756636563922877987720195309221829730764929325584043918408306701089986994386177721578528522570905470466046182376909245122178479396056003524984451555754735061665656248250224990927948146011044193805425039387960799871037006077602872554741151685685378640144494503236164633229108304315262650616675156620698927216153762994271442262917711293541986446095284098619921378835819264273865190050617438718876417171289334186260367804100109059030455515617344518153175250909239514980429677462305683746585698395018202456918026305985055462451389931819028760711393073017177814281946514466146657885173036987153452732700651656171180167595954856180059882542194438046334954013256646365346145372951257391488917529529225751756855994326388072625389253380001853980171568116467457788636095864933872297996050260848448204245548383120256090141844784302982796239196992883146959977090002345968373395391438187816492825367043968289686175766809045429164886408441100460912899527481948843307234322783463965949190320237860991040474122603596964002256796663794753266905497745471260801667338478138226390176635088234147560075225619218459591158414389786223625280939037814906057258121436859817446471925095671034954100445222623127939080543751763096092629423005711217452818058320560434391511444704292965950847817058981661846733487299370717564207925361629907883979752935933431264503600070105614437600685118139893392915027953927948278886951613049329233078465849154928271259691724664443143344673997056913479802065432007407799996885628732662267412288488966177325622681769387663564418435342097252127467351521310537109094770629591140327986513441267279039253252452058129811638126213341215803042660012678802852068844269061799769724683223687924373867350279122169225682843550837649556389538600796148734914519704197413511762202283338525493769110900747702702426830166028985195124699796003661378132537604347132882666870222364046611205797105564193192550357162755780793609852276991206636646205905567752622414042287490976285447291688028013987705834125578626262719493606261722376565648872268674519515773201359508719256523237680286492181804787399709778037248264931609810011684555018226002233353905528358751900747402662583912689681306468588036905782144105160644988390712983118872652260586860786992024542526060302562601061902899834990770012958568757954764814753404841454041405502260283408185055855434603990381486131193163042947791740039249055188192366618966103744386788829126550439418041634721934547312531112833003821160735431199048137857536457371714438050825035071294128295354782334069860669074538251049041357058540694099373249488383725164403554746109331072780734457520141743937297143149635711111048018470228365865285209789356584759964859243428584748304104366249204553066181376990896653349761576352480219435680066829972890166322056459741795540649285825079257403792734519734200463334827930713487277996348765424170582989852234744414456950369134084880537551816505365547229011077916347178228021720066139516876327519179310704206220627710625869038104095558769977535852303838971787039834977892529539590731144724752138441313785402189691460298943446143298369493015113471432257741141205414440842209749965160752075698803267383510540400596618142437723383818204330296880998644066171173557959379711139259728184138609468340600133611276011790387415400209924849201893343457335099094709994676658424859298418408124640135754067255107607749190819927186998156876475636222799567395385042426395274875605854005020025729762331960054987926559408523576933571034592233397881736162499909529218203888589080685571552293214706628466559552402168657800468279555988956352368157847935163239888440401706719566690520924779643628838306634874337720486719762245286141062405638228384889456006386521810014398814903672541250574387881391740928183842108509925400057755210714202450394200448748561252061806377931498426405029885203639749158802632488997550856155903605604890175437338236054285525975505137701692813166090330119107396347094283202931176669039505415772543369129646314930854095497246635447730344889876673071291636366329574079946019812182150201426574404519800113212982411629108892138220954395552166034203389601468144929337689122917088001788005712122508139614023963523751049566592897003086851290502628482846890539895539844595851872500276810197522503534635638460985047665594007154973314173120486599395131004349038184194292507526641964129085088606367335571380332686727670910108782894657832328814058676403442131850341821290684281349034444575579376982434380482989657484536801385179520300355817938111483254195977538977855227384030785384298271277687601547248158665469225987280537861876947039127840881637783427753328425942047434625004842459632847653421190680814819008695839229582131092022401416136608319849528018875049255443613546530540440202935622576246869178873841102472663891008178700452112788972848660945887409877930592164566847896159053166395300644239403377837064044236736126729201937859122448358774856177891113609962063229598702463765074071422978070630033695095767506865480781859434430910091336819741738821844420817690084280739457336344792737354754287409402633061990003331640158481535740953187902165643197988584537981717781406591344167555037571674503387580885040580246548584928902358749478106169265675594401765559934938063125415861057226420508626546657805947867208648406361037875428002922432338869222014746424328555436490385987705393932637712291945669707059793197317411497169017377368048807645223508566995116144600484934561973977494326587091970206020261219682268151630684780851975026820986297674982891036439923661250018072325750938991382872460168474782878515739238188703457546959311600663459425511048267061021923638891244793408848158308207458809841116280597272139964784532947715120529078383571671848427701737104811386208555245805883608356184324756689928354442543157240412219586523409130178373913176520980505583727424513099878905368756245751023880565549760099707721357514399643884430533178261554984304469385093192656055956811094744596482127757922145760833695517104674458329710817642230481283109438223589214520931172714202125410623594085134943862246909220991009709643151594091565739046432141408349656726032220525024358196309579152162285107474524648350860273058003579691256711796791971078484050325784316319878675431968367186597334216170222116714073210501747134431610352007571041165628122329160247262854525477582959621313786888463815989159312542849930979823715086850264453854935650404412546265688174587867219315779846568189509920389037130001857910306429175546184732034587959290520153254469846871732516518658423398158214479508477474544795339178221223192214792144751907719075508605835147887760770495648445889353197748516855843216728548004112908269578479458487982502647669333439768066592927133568664051380825666662448951715667952705937947267399859294132765318046252393134254282163133986191788688234733321326203378660862370529045938051408286888126872986498745187645470553175671178216841081178787525561413991925924346566621996382945387255201202755743671773179816658497233545685710587193757449723555732903057653786101424824318551875563394885366067341843502909498642822233707060547494489202025984716497717481153836066000855119574238856435802714729829822347655192911141862981269902476423503399931046300442102538471930563148310971608466347929911510057841843944160340378812825034441163131185393786655968225764118752930685001889143403655940127357971612859804205895292316939215973980985672371669619453652605893102478070497283568358350354336576101514552586758497186681539637640652602656310404250305550050187516835546045854787911263071691310550079456474634684443542071125463577079656531453221826133613840845351673855819126601626155605159749022113110265889639132912878375104200278475364648831398981581267768101462927475480942287232756057054446908026576301714514892874635062666883689855722719296075582418183717512434564469131027711869371803499102901511341220583215515791067649962549139852202176751337519324761769110324212465303521217513837802260601222325648522614832106653072857876092526880281309451123012254851934199780421983840475860579345822925714774475058174836605321805997534835412507122422034677907119596904389344566917442809374841880039046706333398402475790493400440928190231503422003699101536991326185808398109688835409537395608531001355999699755638757452045660904135832788599741753421394786931449826365040675341031418038534367555361709537719312737442372112565049796397177387330992859091369347305603530172084108607556664043821352094649885959665576965698334762769886835851869661930834276198910396785147779863650587507562003667975249009449499863079344343924534242623976686589620576007440042157828641833222754855096813321208345517410026464811431745616083348490310272770807161736125029124341655809620868118781484838980819311374460091305824921038903008117078910585552903205065511402393863523400492003050728031137279214506833616040137222105204015044158678855724872585389341487593408754877438080847097803934742465837226917758786515774691828382136229666694524487372523284871951598794104243482262835349197179158168395390857328052146702120753767629176946355318645648450096752651346282030908480236663296666854220514094566810774491846497147053127761192447907900583208543740380737960772075777124357367231010587238718434806005024015378324013143832639938222796275344968174921143550109297019285876427797952010275855631517528501181251291586089402067161065997215391540301633052661677304074457565466749510402422981938254654051227775777868394904531491479290373465166337708486398887654457671871630909498365521510376255074903716306190314761834501734707275508457236135492217958662418053846657243132769289290158753934651339332603786715099728518425500926907534647545749779728685528422092463708897409522217762206479047218589439887654786778236760914098493247165988055430296990195160106333936659829861887789306124369297391460307200013682186244620551303204347902978390117003703213776731951843877046741553480063484153984765982483125728776735684464584669865324325117915547473285102270244383465132063841236699154334205008985480556023948621346390969502039644450043161962400916320655636564242632829027315448622460008235714244756686560242249768896635886372639901460291653794190590380091922429785167234800817609169847874150275062951218142903569916305688966766390277150612217334440587588238731946209298681103847834619724282913481980171774579555375393761160517598332995055068220254528444255280820050408547086617553894422690380990911365007347423726994857171687680542153421660764323026879574969159359219608706751578094899603100212702590964558331672145608713516239801551879968051099304728038247759401819231630817607135684743682689765349501278532877285864992721629569347778623768976224055021691169982194219457200091061531879776276003380444925689490347795785972502487464459466210638153181077269746581501705518635665390466677482101261681519226669903928339271456383312236761535685994783617092640951495502846802391468675617703847686959713292030526260217286226185882465419635701484631862220695654043294825369835524338494504076489085509755061635145193153832560783861360623815591324250855268888964950514790490886412503799538724500786742159149718405252105862687600603759394435767108719107244177468114322703381962925773134323274450974044181507829652462566492713226387309240957810657100031479438091779804878274506081193140146009778929722827914222417784289051046938549590439179102938229294848006007655277754662270434533900187034031642719728872514622467515418702079340693417150027108664580852999486392527252190966706851081997747540526328208061075434024484077278665478576618120007779537350460275753480684553130172385186721156452208536108916335557623332517738504391481912765896453710543144431352366520798633385406590469357998676250577474444449761913311969218983795914345488641236497456705637777745772864170236722826673996574387996851134738245832392474048588304898391951268859615726826955703179105340987299086583524316842487962972861628953169246593004003550967743462122839471629983330180849837041579612142269449228239500442939254790421145871908368544666997755949756012540697863781957341751283324283527407233858790681895068239681915211457220007527138704889873058878100681101158563481090580089904817233682582695832803101529230369316395996342837629858001387140161606637257662761055658762282817808643834890183917277418388563402306724112970796583155532174366117729115199993087646746040376762418696289835444280025267640888164135060822099995446208571217553584763138010568653693157387222509157663237756904110093498132302872797733729731255350170749205489776442038396878286772045320954859670114162985531411761771781138063740437030635435917908839633797349683933716639674942805946504663692097743179230246980698324697674824742829824222151311864628069773513223729587848057386685967129547497973057877591936085233624891595638376841523833624925055692431666428679185502994299080765964519606330048037911106163516822771882582014965790712437254220613993122061375182792555519626943467042062614530060841640632015828501912437790730351182157705573460377213659958443497988911015248133917977814101702343982481059045070661834048322339111894304254556916941292481351472817487828771644122771051076216535155948920489930498790621608283868808157412382707206630662659750724364571482512496060166077087027510180277787261658399996328007504476005907859654497971726532377999737964336331672536873778825427472125573069627933486448985122695631587033951890074008102536497710674032115496085807427979474364366258328544848436317270000354068942817352648343591124574114624267722215702855221010377205260789215136116333575461719695600508182680744384171050850147085512093522326265061702294444942163561270427606634020395990048127920734991476643769079227540366223397844483640218697745805122752409524142049475457342201520311647663385878591564681667540556499467367979037388094822045487564590812266647920854924830939309376321633947545331077852460957187061311372627585787561723572139757081835034787313246030813547972962374948741044674833331241594534973388160885147830642933855885586868366499371741538075708585837668954691163487490757554327583408383270043831896914527125217734903449654288204317722371871314409629282047896617152826753009222443226681198122351533042861067964284007752967159540806288764269895715423889736204815018565932429493439963126159481964721659943656046898891704577087219381696933867807596634362103204021840131433818013494377751234642509946407420060296856532159109222907952908578561739210686773473288580846920986023944760816678747526881445898527458881427163327992049971404054020737544780510787639621241215613158858490914143836332634338422187349104800271473247672192968284965790646981724917076652637801471928624780006234623551191627395907868602765053652052116630320673603297795834873196557942272065028266558607746390676056866958091414014343584211344023540119690075992600120685396854861320587508453242280634501793709531884937434297126531742490584606361849815241412167647142247697583954446307002242445170810938242302081112914357457692145570813713824478728286716212586283331056422145948606656649109221467709040871336587061681540649449381686262576367627123428214038340135730763932246782454443769983303268848844306880806143686171115238532458246574734334796804144596120187617093954691592203746996058462399024270355197594156118183774188456732181569375528372355643870232150712633294808053238548517370926205641138612941552072748597021465490968986813690887021293728155242720928644685058868421380365873009804284776698034875470496877911647115830388712054088752155708969116625182070056675124658852091544898621200194418332881894541059056189538942156134716949971310350794929241716317381246879870481962887043199431996137141713144841732178486563161509887895311092256157935282984508869200511520453781999007093545846651223430727792294899141337793219707175674521242875833512438933761568257293947264960398939187662048814582187782777948228230718767361159061687493348619752578275581309407030925271095640153137916741273004208746611346916960824305989308592647580265615141437761550533844045810860852860187444011939006337940512029563890053197380166911378485807301303972723234659498253771974155772063223502128939470021762732200604375882691189272392500344884802390589608025460167928312876029368581672730496878862277138472934958563545371840134142331603428380683304924414467585338211974321651860822874609199209705288416842621907034836744565077481297140163356263911530740484559154980122591424583240209172573799588298215585724455464798127753669742763995323159443463926097235201693729369601286969243584211943778620765079521401146918058320004447862482358992368886057243592043965973308577040482396272018532984114559463161071916712481209814407074927874083733107280925938910850443185804390790269731974267152535855107449801312721291825622974216674384753316430347097539005717153188552914847929395675526675729645110025765288424854651157214413165798485404675527348093689043329624462985593651287900326716340026641544201009343147870221282023788196979625908561507741398483735199126668352839080369844383522561807829079401082829281096352092474934689253514834864223908296226920170070946590446423053913421194413805003286411835015096852809151080447496035817495878780288052223644222602076782107811079978070627722351813017243827609919974610940982869902089647576547682847067446500269796961595746286813509823912569897577381808203836336650625252959566834871892720462912918735391067865853794782583787616981996399541227559387437518933543743954654340786000150909230760995692240919608360508007169206867635127152565962988574153810210462591515762691383096686137881586335656393401400021376359210994688435132658302990945824487062432743529103849993692153351050812283881875894852134845200250319494641233833028033847074071918997774171889343149437316612534888505853354321638899310572333265774434988883081362912029462230819486496476354108779682248774765619118827505489114437726935990893313540387419659594314158895136226584924147560433752156254958414259348966502914956974994898289576944581533749840348890578111681431296885449194051948994680001833480722831425628074413453379759116953065999632856093987272922789180607443395180616021066721423511752918952774274653959760712889611733462922929920742690673311499761381517890561952366330256553800043426342218258142846055738281640580067179732746796685144104024062108416719561596712284815207778086315266730700106334433646852061812851803976440889754270785094649047582532171406743081868067433348612449910578842533055743057462796638111984926810473920606189124014316518795671480674734482602586959988389877601562277750192634688762190090805088128531112123417683572438133713399075975709378418425660954187275057481228429801912730403996690775339604407026168574719844951471470795769158576382528111015787027170384158315163607373497004199739911155939312140959562889126417290904237337614755333673878213701951668385887005657705772419515813753550239497213370843128642404668706423857395942488617611210039410929371227725224800112300666971728318024267928764472323128187407116630655763314753114377163517610361102606264387494548645572401195348432644780760051023755544621943766145082693309463631732835325169303557699035576511175856131524383832497242975966461901085886908995208432226530814776385425906036977738656882500242734362799996560455922787549279334702869220140940416800158874003211365736914321612418648878267921280996532313940005969558013558512451785136496994935897086852905061668885257005959753387428559153468551998585104095580913515667070850953303615435633729781282516925201768831616204295488370438832190315939192568447766130234649060674085969867869585521233310645669492646107944752716019232405611130905182316374333812564734201436064681924772478475917276328413887028727420756935515145044544813279278019865534323393417240200463585513506506577817088748248637217286410211948215446617287832782033618520153872186390606281525195652882509101252091344554188846532044851182335444948439584883135498344367139364886480076208067304383294854242567108859666665767345983859232797962911791715992124965059092459022173402707769784971195606943389855253697049418344182156628283228732910049339883108948893674719950824120061061362448535837827377461915203160035699925201460536966464323539676964918281662012879183075843316010103312308237497347498915815707443775203400680659771370699651414003930303961304666939159193528018827118148416157588529987795063210980815446602939271877470885774039159171241340355584795967829970250217540247983781914184143089391924795633881685270090680862766606566386930351281375436923256587235603721739940855253369564970236498131925016067093638451409440985767351980672388142587800590944466749045516507261864004648900728437518241567163813542148291818896392702556191832773979247961917034631300844949326874391873307016988537335948879395624901755859924553088993323385459317159425571883296434706743146823655312168747149592710428945707641222620282150986575957535602827980636660139216160249892843363788976719016824708959524807769163354294642005189574023430279421150133627070203398448401090316752773198735308681228367148376093783103130456577347566065488255902754674757137972337743816406391801519910508811340846082794977524655310360390511144876828965468214382230581484567090872932366191706439721985355094944747953450002206390843892543808544108038331808577593304938625651595007227016206594872699816876043136126998594672474392499925639968946543534480110403408800546159561317948130952506224133694923912355720755582356966380267487440248739660448607126782041031555184540578341441730263275237164711985033428764695973710077511336875156407909185820282638328242120972086259962654373797495706849172284236360287708542359790350053183405751268599924591257847986352184067754406793134229018387629242603044450390410519412287955659623838009444773008129193555207147235077752916408468264556827205346302972793523871410865728019197515416438675724937553052441891856486399789162576432021830542531665002784841877948135158578296533890706940533789358289458320406442896873228073375977486783756202643459086659867312654032594754818713975886303104174710870136896527888172989617929789175960902612607119173724733403369822504127746066592012982255678415738783935450385364945223877336085328104347183483924027125450474785474107563098061727867000295422090287346784948985783491177203290792008789996819647724963746488100140955557378649922569238731035160811218857211591033187542718441984723479532444152779717977402399989089291591363972835657542017415233858531291464393006867737974780603127373142657595953064467568709602950715624383141569481984434575698935726181921568477551336463987709627168539025868572859419725509429837971144991480051870481502034631454914397383631187497474619934554428731114354702394966667588292637419315592781284596055227567880516200557423691933707068759015383120492027070468933950750775841425173761201050130822132642244708854811279451163283256925969001470797261303265669563650150180542351935012466068289618085294081674947941615640776112018604958358606568447369377809571062814939799453506720079629940749820220126396366231111526646781149771129727774406636796924876261856218192796240153299641212595316865096355913753689533534751411357481738036018553654824033305946864308025032989829052715659266767455773286902489278139919297267650189491461584030046550202034377924350483449994444855767428769769187722777716158077949267984012927543865871322322227029469429831368079220198253533541065498182984743585212620257783941408662571887350324371333401740594186490554149078642594312843048690924205964844217314362573478860779696981981840583202027147591732664266601209941162544041120497247909903913606635518634021411153747096495184071238929914686742080504168914228282970920220355730170886366449178755244682982367277598469089326614894478187461345432299021446704602097292021070838035112900698819676471380294974373122535057615551010913069102991515308550110100378079943580137049000012240206330103888263655028344299582577016956057340467316229944338618441977236902878283090819456327649455797307569831801960778174816264758235515506958850723335645243317958629794833623942747722782986137524640227755139512255728187209297682793230945310625801454737023938569483662632125860440587496823608040714366983113021311218565120963752605729076763843546824039169826955202519485907493690042061761602297330736090160052294985141335814559176733803075072416838256057140597625266850004228885607628863030643751104564819042205823807731944389926742775630209088763557730092127387167745335728891361896997603196724300779946292845586699840384188678702232220362543786500079447540884974516121783127531460572352442464734194323733547891755626451177164832454711037734483187612465400051745621197713628106225176786320151129613656061544594164474981104524579495875836829549655442591676757184823511336097114646183285991181265630592444497803128063903214202711498074652411764114551889176078813952782185403539713507462696194086842539442738685933425972706784318024135996116021152016747701099100842893110657210861277876951863372789715987747250341439121641273725144836556969054157888482019780759692031707586864426315618597875176059737073310160184112745799858145074649404127607825300770265850319327492308227319451249596325811592359270661976154773855435515807217217664326491726161557654383771988757271810422667320303241145635485497313385287472422825475661563272767662078812530888677719468733120489247484057134623670597239383228022298580175977044119558084524373755740184765291381494329068634787206379394683624489549078280103703056957484796380453541715861468431618367493777684045705930583351973700003374345609241056664236647240803164691835846195834830716218146762616363967994182563152691292532535004812541537080743010452553120561431720452176339523851561657217350971505140401982550028533835320552074955072547636864587508520661039996409211021341438223709771353490646779715849025881730976209946883675183244329738612549934650635137593636278513225895823603952129058282050312446997582491937193411412330705735728436448486596168336790824384344090734812480471609810848352593031986139286828628061156121679217015551520991872915489806725863701150995426223933716055394354922710598939428209373827567660417620170391155279156904812711130369558272033093853015146257468656831905063013095542914602870986096947328673176980857794620793466468326528260498224943870201344090249920479133621824475300503787453612621216603737888274512307537822130021787068110777600728325243115184246348013104889198490003116267054835559486950480468520802164691065490201747406157895319384976826871447194941049288347848090874573963116899327355917512782683936381417185419396334296401526609434194620740030037571743345135015495871615057300922553462712452660811079892356723743972312154829576016726906842719545636483024224861640521770547843805121200771831652214468321950595444693041346712287224209682898102409331842503895674449060699152803431200620924228179507453912539713426741975528667363749760282981977521714725033128187859661729858065894326477363861451643634640045370758955379740637024511629349363568985736083550136610404245605298729412168701206266146809119826772038003077814101138242194100402848349571621106610167641354219743932255063594769821867058556999513036219927730090438293108205345424884201445850608944822510588288681100547734769500930141621798481183569574829403997988306151616375697362703093119073879696830838336006653592355731567799013401059512818701278437881267785728994630029183278092753357863223295398865022938686256435553987089252702463935940586826304985750120604530756517447117641420507839135772144424444811073268405308441627680760906764902194342449647075074681225325808184914799282212853021727189483185106050514215829878020494213271725326453470333416916819367502704630819778772513077849368505735202549368695382019746887594011767490559127830142483685176188178631876785608749927006572302043477041007373709561856686320675489485348907983892618057470783422678711380586223955512174654882394512697137833177670090039194157848477020703518709917553849781258083925987307170572363449084102702348447679248667315305792617201902021873619214635365095651874347274653045599859751924001914587334126860430450037669139796117610086706602777814857623404317868980418313999776854821565777989923119936522029178474059568153811735129313000746747642390438716501490839372348365736919415535058335603850230960104668440200774964164056845208675383838630778141779816553678194608127610000106511077068414054334189952001197101074429970521127123580304517213308116277073642244041888231307413792515390274908493369983143708577261859763551507268588576581375337013371518130943330225103885586497851413446656959462857870747980678352542029420627908321837857667722128516620381001564217591476888974169930996341303622702754993398235018603099340874030310496894745739186546955018149551648956346818634940049056685381911512972594741631427329801028687442624355954700402143778206481049578144346663545093381868804764873699497643940669062098906580079061489061371387323941530259949227096672978862378863996519522807137642576067015139135411103145598581519840726158443071130066754480969694066051254128613149283763768283313026859064058068280797560706550864192137357470849238963258026484381782549410004261794315107037334922856667535148794527690259878155268583383087468334554600184151229128397934059334959411981276319061734022226642419154202976792291412598306400105027032035334268974122304478778505741616122045792115920517525298017244560032994511529954453929678326412364410490663525441580778482715511793543741368686716102777604923117675037336132654803248418126049409237855082142041296132203597316815307498715680689134517052810741687104940255980926367509787347276726937206500374878470240747204302024150674548441303664853166572442022023163356523766145783466981340712982178963680725154559499004244037800489264064797546922620577451814281883965248935600085552809686553713551106777338515409087480301697152708461899832488117079387970536163680246335168853685006786501573989467937832805337664414937962630780425201864103337904038597608533209757134669497528981409453324828008645904507726796603892250198092063575039383814189976637322990987686160121006800881104135935689702799919877250580319835467335923345565104997573960931985398236714541872271714702706523270948510230639934452350005259702888412803369071992523431249304681360296195343210562522599365119875961163462008609188296477195960934468396621360348061335845258764950953750302504170539835128091929179233790938658645959559145550816758186140590703782634530236524219232323260204065840906655311799666045602013511117499629007815927812180465809558664222079048066821781422201239317091649914094253630185772307870438296436532724562663673937180462541918732620386151342801585568856545148391878504828725376517680675933850796899970750857663305719886949506101170625260769557321886972459085932711099477444374252184701596657512112121191541361218655771781881151752561991597238053904146993054574806428098926314089432163003607976712854166778049842637647915149248651023070472520227498852857163378845419994483077017538159238664333038523249820608708953641711094103394973734224514320191875719425994825515114874883745924472898394281394771318960931020937782090547186010950490405665142897857934007647655613080640994501797427549363990912494820570446145231745494272169050991652316991329785822973218386052500760381326865511759677648632322926893801931245757545816286549198827655959059032014118929886783729569267630289376617728691140108591761288653270763601185091121933535271461482858053446317511627720371144829615069392473471049724567638475829803662227999955284196980427042614335707941464680155124215831655149798351404225773168939464177589443923548478012031011360189578306670049962946055554961816062647225947356480169195328707151118812870714649575740870621816270838991105920043255575786231867496278774433797783767734651144195627855327297588278850377168819601713334818089044243179062999568895110288161564412687587213462976855800851843424608159918556027557512156750048197347053005200399672568178400004346948489958448417959344605527935229014607044206432648654334467371126759348000647927151507939734149801234496293136626444286120515563779621933984516884931638723630697069150748262781638255148113634104723170077011078936400449687438261834853168663794324121215003462720962225903684235287128792657363855370291476716288215436165980838027887948860592070511608488145550509072540295291754123667206691381860964560313610364243366834544015149672279648177362291491873807627203349922446566786625075208914710558463568195895789302235958729734291000368667623058859141136711866660082574260912199188551918312314533091231213346782318772204396393493919676029827345589658235741492816160907781087312888084385592523176943470956013459136147886313969726292584845186410758221377569927111612068750719141357515577492638755337777116013448530187121514650736628001119089467037176112056919132189921723308173061855235852554557475709294136972424092988082814036845017288668547902772459360016055605708552100953036551056753538580343846135464497169482073860771232082863833360058461100001869451087650185781991922963283203585330752365818326890785171908210540307872154654154977232589909770330724661529333987408486029553701459373170399999831963222605386912856555610629149235560660422283298650344873912262867789440405867843535654374848473450527766698238729162940327423263153871604163401450375651892044872133118045610185234606033528842327607663069023947287403157145769435834815109462709840789603682876506365668350050729790431261243106701451268396957888705643608234755970797771008368001457621171412611393007497763872397439054245872601197141797541180613110772635904467130292197440993026665704048002513070988472579383218644915370696694666399816190747511630874795560063236401718247048655861891883420627883272728468777563448641739905476864602666755229156852399358006999956347531112486677589399632326927475115731672844797544857675285501172838246008203323839399102680119335613944828641027818409416833915781862096319232027946106895161018231056774936539140752808066729641350834553006864514624261769897076005011391359209079410105285765783543288227513989404660649590655536594317418132374191195241665107464904021971941982489061545581460356596250722970273979450426702719769993425294757001060320723545730489859358641595620446103905529284323764847393744544762116533061489401609851175376557567938834469461594691845439256736052804198077884573265155194663839308422973301176432652018547780312517637901192805783399373611509083359865545536377602390990616064627439433951427200971011942436723703667459503443802066624086190157558088952514826299048266106966311487506062675209695904756335509518733351389173271798634429656575495032487155904496509556729179484194192031915716043820617934576322636216250868054264755873588767052303604034576771099881337357777828934310065771483397545520107303329611496204394031766339095659808942836467400675873846351801174400223636097138078448805406278831028607595476772611315996986149438207302085970998755114266878156462902620655879459339940039344658139566447145434771674449893587166979841042498176430610446983049405022661984159850579931556477308861656210734190336275927974949211611708836123609916875467982755125451324670548634491462198343425776571945452305820393902072503176797321035909797554140177255071898188352761868161085487310022760540170991984463054336481579493901686276043952122531737585866211249841625877367143034622128494703210989937556972513444928847875591540571753543816258021337163937436994209008479221850029762789672156316176637653402181601318640714999878857287136821113360672406458816778029286228852726830682146927411187448516360143886566356582862782590986655482812117552329135788830671282368586779844299358420708606422722768049213257826523654557054189641195351653328427916462328799604569372414900166417873922784691792983976756045246001517737941022859138822380823166485946709854284002587688741378146419487373205692736136421574411980594328268121678575437252558973571490104115933592646484990397355258813969684219244871143403167291334987941225560908921871971323373233352704483473056059381546439200991047730456254105602967010025247576884109236789489710580573904110668149301597822196389838611765268261125150540939523403079880457455998966943123836115233438135840145082807821334056923583555076658687142199306881495198564643319065973858690908815351262673754664974785696057010466485285186843488645993662638893330544876685898900352488575270095217641169307063993955780065548512147285046301771034570134769526084002481355895345782380364177568610433450600444327174297615511642439758541030364229602493434094385055054769950493081279699768106749660130332204431257451894657311596482637325955399915979886624180257224076863290437798809543385763570191741727698157975484623771060855123324070845824636433378854501215595955795706371615686243392209744597930904689378144277538275125967710166426298152438288106732795181345965222962641071404328792818630806197756413208114153358092976449190197765582274391861009682604280780482539893318320861022617082538547885479520581901900448766365162826803359982254754510092779334307689342190206237203055590024986678180413641712776875433320959488617790024844170719132361737037137484488652313557757826165245344547776076629472607782325674782781755036738924555661479182256101014396453500501737655798720059699308772179492129953325394437104186264166904444818965040530907626495686677896015641816996322809456021418955331652169800453563453747137169486501485089566337750756073061196654320879307137226021662909134411232296963972660834158160628642396161754286763699972378758822481013388027872525093653514772858663070686907035435208519629681250352825991142598382184336670591325865510511543138225198432157625430381317996980468498727041981673843977883594076852502031530859724378124856843463409475130438299322808149916911377838552856729801808807431069158744466458605994756502431879004784450729172669209724402843561734762544318456919647202821636786925207133105642172587053665960461338763303620622805648839660467651923075799233992421589791905716591842649457413725090548821094690865457028364454955466567984105123313675099077335537141326494126735019565324317500819464074871358161422762336651527218399057079947872011316068610261364978017700566930445400034504536960755086081524909018551909319230362359671596493686052744453918816349546563462159570574745038647750562296044117397281222671374483475004145883989581843752050128325652983519192278089343453965259380181255551762985425568820177695966655161423535415387682644618798918953566676546591346991369662880493747675786103034905551423971456801007894820262379116839619009209880251787821586527098949642735796034502751876197292501261591757667668045900338126445626982380391992891534068411011184316448053514214908526512702540320146288846874192640217520204277937375217236813747850213482700243574739246926880902876011423868942029535817665570195265991560266843782500475234404678259896061920065362988708167579825639836094174211630045799157997984571892304576688805230940672993521409309552522546609610167968837256424675320348184833785397057074628060957640912984736738588649326514739891109148222619060570433693190260110973936293072017833041953801421186419271774553869526775839269607899777545725897155079483465955334531644529161196862496056476224026258432076047305497582124566086667848908489324174240725212013686459089302787602768755003043366411086084041519528036729873534753196773380125949757487419310837441249444497045289016714267795104068033914906931183994652270513992333316344215710411549389337229967124376072481505661479187437698025914947316026460284616739899817245720623068127760404948409154480234963925657351146709148923793258337117810433727595012239823242149045007518675272533876614083818907486900973586797947081522661572975706981989088266951938752562533250297641398201612280442931200394783124535315691549624722030613007419478572807418117967311656313037682336196303796094813095632297004271594959011986696865012806790238202498037364177706132392403600222607535391062680487835781553153220250845098910740261470419898636072180202826344936914435720456549208580790914917047888512209242690080446027279194025895491722994813011626632917814284677542342547382931927544680235355480706477058176491409737031233566888727399199193666317882027140725936193677747746532957955364472559615115485400455223045531809100980257738307388988381954432336956112278575024255180435509417319007061000031434062311829527338538851756398590938159502767758993603145703543858747254968553419041226242355502528090223582142100038435247824207544618946669995878906457076690699091222748038960112519459526740581067491119044220510293991870588169179442257279681591492652170485799799733817553537642216618582896371639952168519902326137039876073026814986208028967879933014385145084774364857683089354408069009904507099907367471391382481306194921591639938871268204246703376685758707699664270192989856816046550932819099524967429531492508719010436037494345840077354976991160944323199075952481345455062995837648958701473852324260290739330781350095484499669488448042945811578012056165130475383984762820220708389726005486507109100685609911780698344056344891642973585893728912370705390156607481253728743205378176921566073557185678740081032979663191897085190327145098325582222890015237559941575226146338227555887835762623713840800212924639182386489365309752559681825884860732033017196031341189162494451210693747532059790287684585385092121467307050267126634199296876999872911725295638043293672998890382681181122187781684241617291368267237518421155465880808838688624630240531870159237493396388644608095204440725253357474928305130142795641018654082226787074123626869246026915024789632920417783057227606225967803614133584377157052109349859938999519803625381504681431335325505365410503573628658230785478640663420040128066003816048380587185347263326962672572525296341225851469509007706185230853924086518235366121381673917734952900016272063228668645519381706689885579283761676522637741021046394575251017426005603357940909638231797319796807660637849195896955567932664658355973609367422954764148234498663714546921991344154912654224192240644011530339772305593124405369096740768782123832173864685448465047818973769939640131191949691741329976838492362358206049328876754043936823470377204148962271555205112330161288512295603662768952840191088009982662876534842396295138407496021331860501328591464846373865442580537510384686404747599030419484404458968269823936863630915454621563633135202173481948751335226437750445905071488162775221423210052249200635076820312759856915568645212487400298267496768718243622458790573804829233849835568688603303882296667295079617362874291773703353622137189500632341682227236604385209259419984149863931313983583488342273174819260415609221602839572051226194415108172597387365028644223457118343515339326952629550692636887958107535114358363193366398969808421029176645659690413088602777925424658286164649494080335966147276434943108798464926836402810265347717214459702857534309024088163242565489130119551284740994918184426854354184230232571783245683442379696401913361633537318655722422932333818718113800507366351729746980291196449804981143305109037041362922312711819300278459763991330907315508869498229505543260986857607307110556914934872159823888801344360473908731637695606674101424277432599470769795506536721905355673882091610417140782978808812472757555819557498692929750643309428095466774426183511997179407474410961113311645661002824856805529641203312643179387179415568810078372637348475503262243149368907814971607876090425307712774917455419464900801400091378185308933649914495206905832286657373490323715397300034975212850525888510448493098847167862023696220281609355513895673103729816637449295577206865342163915587200514991539818327118837217696169439013767011123173801780284620455717206367122868220735338712092493216185025714134836077199121495516190385045585926582581151912449231881173574449514648998947534657922739638684259731997936140831143278604534654658650228333921115391438786530337061799957781743443156081725436149298040003380370570803050468397312951821498084998662053930343598494403135028551018901037782693215133291187086036616542805106421247313762262243436533755715147488156721536992519416065043257165945939791862195321359298520369495766955285036204318700293131340367683359996043339739399318426655011618797324192299023602209214929417956340218861868029948877165848675456589815845877508753448767345579712122200179225791120912808684235429433408436152343806484297309862630877606868139779209065075134399819258701781389162539679455397528670888467387755117259160609308867516173842907900027090642677944824295252890634657546421472133611223027056895621884502291469033496709089666889887915652315873129309971758840818124668012554596346598823230619814839420628488932220422472238621028123383498287358199290473164211454744135826879434653625360500768746318743703233854920316128141633488621091013859203057205264806141514744377827173415395229146969679559390592237117223182541326628159241000531156039325038267977967436653414368731048480530173210795541208177233890008921636963671869047227419803869417189337031463329813774945923940349225817568476090883011392800351382847840744361590951841939979001439764305863733273382003018725000308968246453970045580327556622316833431758393053180819441974630191397891154789957946325701788185238924662594757752587244687957425666868629397384750215451104325481031553475439361823010928673346100068904985842665667164237170554839827958921516496018479977789779850605532720104340709562765199760026625569263382946184345851740719978165515305038780569290734616361310662166862014092653519021738252227130844169092797088135535687008456515929146568741648621514432615453281445164824206296046120887351395508832949988643862122512928345719163092241861967116024899446153960254283789326928433231729898320758556866820060142992072243078980903304484697086375203690533525068635089275118233984191994718899829001814088031084949187577560941913889390265108402050964893478220246696601660279808428742442421890284492530245869375513264662543539955694597974602821633801931984474841359080588690268418252174801254657247645234203514650164656356771306671704775239851780771199475207564486902150682656340252417472198592130448035953834772973664415848656318147664244038273515429253222378850208005532823121550699629229342820466076772417158800329179379487858018432216729281382089724090479350712735177746955622268890763484752939448157128327568292288845918249679170980103190781885211100766117758259923658305101798783551788699047218037153243529292857532766979720337221718592253348117657421678697578392020784840112762661767405056428594261922384807318652070694099877679369277111393260999991083312714562226116007972627056734736799549251453398321695843601542970496543986999567705362904768217761494294600247620626076484224243129170388906507466016024028232922123232376520937708407704398788933569177796511663049943670279235619087016925452349717162807640661275615594342161286744636127383038792075414292480932492466417287775089979470472097617167006453217211438538074446029757536282140533581304991076550225076571821371500975155720686104306799314295295524855373699008424636775683327420517572939573952012328430681000833318398207551713394696709918772923148962176492698521778071799062588225885842471923391047378244001834122812899488357400303433557674663498583651187207759608867970948223618838988400395507373809051655953442212830244662303568040461234260912579692678557304559925390623090224209547658667321437964771242380465616301990242548730930042919933626249043269900534831734268597767835228343527788279059107332202610264412082263961421652113445368505783263792863080719134328353187414791925611725909223925456322731483672022415904544127208472695575611908573196796408762024739912038978974031287254430070664970911200666760636944634027525512484061930761485546977369234693859260605329545992986283012940687841048982938539958617225729361507380615634596164344894774506994090845269322403369142473252954359502683755791169862525597910150062693821216327315218231275336923091983483240087126419836379461333454172506926143805909739669566148165946462956990243527726182683329904270985722698581671209721910206798267409960598380297017029431727425336801508185706476692411474214905856410283946465674177578903641338418258942684943500093600847388854556964566282487273446040083410064849957647513465790984743879813792560837658680280090965953485581211102609219897352094287208976074349813423525176518862295257729691168652784938583196389362855717909782824945957780839261362449458515424391499909410876477760343133149350066996806777965533548670583319329101599306958057671890956755098350625657203959439334639251457580317906586451670306303991485222837376592058312487248792758177822352702280112704591109686809117732669148100094042609754009390025980562211481190968246816619331826102705299731629061617309374119509661326293587916640966141487709297025130356627710300762080674158919977484024735404022538126058204906757484822372098372648777035399618349085720237054790262487378555424606153113752349022453333939213271815706323770926177431763047254616903393871183658609826322454680288947150058176044531645882209476813398914310073610676655721137414428453390994119474990202613130401729067781309669405225241080499996297823063897956399893092277692670900955139365219958153801391424106185483000483715477067221381367540855428837461777241660198601624448194285946682735013576749832801830125083751933990617088267936758970993379131021615803578756242699977338923491882151630833407492569459564218902987990269385253550768883436664278891337189076196225625491360610091036178306441906224852717994095774775188267905997982449137557661373463685069350782263169561857456266202282547057502338852877280190403442512258010325937919461074481940425287680560500740845110674333250526790513981800893304853721018365011058602789300212575423562265516129600342398948306249898306780139950967452474635624667315691452157512507878393547894077313684330461640672865580131000011047457438995567195240008807157324036047536615106190005284326123408908444804652183477103881191989662671247514038055250443635214621017352476212356740443997622382044869571262141455948178911677238102209195669482206484065123859629465384160550020765751278660274324528051859776194153473018272858269155183684807913942852972357115008700058941680458704661956329480364224369303314555804592635008810205402344606333049237216403706355648374700821395247289086521225455060992004931901989936456521255697488074643348611442368899272504430709116331302652435475432745047856600902006724803624064210099245012569700542183862571390799492281438317439521045093448583124710413371544088267097870859313381840481099639639591084517613102264339801271269229046871514813711034071737927784290300334233369550679911730507177563996984842891823025525602794887509600859618897289705600906510246009559312846080195653001089127326602732002298885989272762088246198280341845068223488222068244624004858788514289649934595060409623851064623323335634237751290312749451362008383728716208163556829574628130659815427731474415346775648973448907091814261277550622249723056087740314512260914382916401093727052662748278456392697347323884659426403643036612509835503669871528966081346817352668449880394573864213744865395367949918495770543730854894435704272359818464733640530299984105614859246909022153757086842467811844419279033043297790064136692971141189986064839979727458499131126644013924186865647765756737234678885700498396337990385997334361279883571304773960625992333484222944177531253583242524031081497696554049136626110806654596004165560834369966318783919841571348717076683408672783067715518589455478666432071633654347520264992157136992525606306016300258533669480930609678355993810762602828327127015516474837948674203025058148927836062781451795346908107171326256025922152329654570929075195597256839720284555461409210837518730059180719904051062003885657423287777096105679152050154474612220425242948330624879044554216022204912571018664567381795028426064884427027443968556910018052120121000491039159944049725038962729209716974547219498446587106399255063552731571292283233925852328422681872441293669535650314076069738914279422948383584402078119647496968882379167748612673664771754877561633479320779767662636004588990461822250625036193627822500068749648375276374486610603001115494312021054284224099106022275973116569044152363955888537804161877414098804793106647669496260822579285693669859528385897261056665796277936629038416246108283915261595603963555129399768512229687608407843772968536163227266234507173775914701717248645469821398926496545587407264365271210767064708067436478230363285183935472351798507827688175089868935530754285690031302701802509872423012368862604992856689326222741473274301345529850063486928848044722595274789707148947890430937057360112206348686686414667122573996650711208575358611508603682052291460048686799378438084675448697283498786816294028188149709539002992217621165836918669318046580783392564862271727917463498638888591568272127449496427421813640799544300896765061253062547475875859550182771794144118409943198746797616645600518033934575804412872726448276552025076872242230582033818813770662323775310699076560812653271255227724333858670294287459427698762814674000529125152985640408344577423697837580792994992112265706490551429344222585478635039554303621046538022075347368050053462409611684122518572298390368116425661151384675037971891258640232066668023175296099041807965532786460274816449619740022388300818925555811971979792034606105025799878906530445278262187391533070516827342229534505402191089665221175269811044664551064010485179126592184813789781543634822645019193798662703232951102008393822015092724166998141817441918920126751864506199615311224267102419174672866426325920991858071613991247501360722451813159398770391421432621816046555344361679982876588365709886689927794891638758692763190534180476747987472552891442093718818570793750090774287677784582061349170163912555582189242031152161640986744900666958016588015264917330056884334926352635308035644210171460015130538645099097185629537140162020177027643085850694854890835702144439578300424533797737707658262361590741972291198620033971619454177298482584246387962713688414252329093336910103336603653372049641967565357330188097256837884750691245494342962807332309668814076724177172625940938696531443392799761860685612845348434069732561669647204037300570896647885173100579404008532368830382540275408394381743805790152972336818955121204858561699749604723218636598856162037350577465042439920484199809985921044962407530617362975562252613976286764116777761071169001682669396534938583900640123516528076812494404505390610716483005842528167995410018763838456679048767278398117444333109366503901383850823149733157859020638246197792102990343912206493798943053030207359753159297680227116435362990942553131747218459596288838564558391568050943067477533188301459214510352337754617726610907163361555777881235050782201123640716899959276612113173212959686856760451328904991735857224300828977451027891532789748350869850705157084966598220630810985018333093920917241230225567669420881970112690870726029540610991762939255807815007949157046328169840747579603629105531794323744464090542768541854959160850220970485781608208882168315667079858077863795997816321749835041252493032447507291141464803939376623453570210557611663038108339069899742440374319906487649777188566152684427621114498346756494312341972474517284030556014061895479307830600668836327098039724800390770349848499179817284743484439112364606331774654045419636727327595652474551782934066696882374159513200840726536770256162560167034745412049146261178459175247557639046396570356469407444614590437110029940269978292287066380188068337157225689946817260832065980360889763753108324074529536714866278938583517474502020986692420131187097765437992216208818202969856207305188912414767320502081360396771838120817812736231082874454410556281837385491310630553091594341624054976612174236122223035552645797297616676738953793557207049905159533738134313076514525103734782508502457144226765561321817511821127514532150254034810910934109765612310257799138004686664757332182434523001951318929591478255352891798744276407711030495118477438784145170509169008975215289974374267089741103233538151304259814419662728116306270114410801188820737726087246485477174222171763632309226846828828592595937713983116203798554728955113171103656887035529674584708348613164161882976415484836847914065186124524190324097822163099736883145449674081032608076028073028427541694918231119313475986345231904416726537834013582689592314411877131507571308727847440237623949359930908219676770674131615786661686945983954056439043554343652298106832182785898154323838155806089441448191165054484299282798671406718724046931246001666817943600472950074250218110064896133412924672025855281213568581248374942230927277187963739665312753852016892954815270538372302277935375916940113710787732929561264313799167574798882861075832307937264696356891383338579370053423999550919243842237334855698534321487381742921761007490465631162292690164307955866858261806565582023502116907705472628032877390122889926574158301027177032771763596726624180793524621273482037047917416731990779423908055080939844873427696573672542663949071746978905789740518680570358176886049906015527131768635246966884408863153342806663684936653397970282117044619505794684070943623204360758122661774101019525713716695521224637138441404661473496802925765644507066626188933998518108334380428806020640939349515552672703480934752105911992761901547338616652090736178825783814478182076108506026252268140824366771226827520189886786908377725627601040890913053225827152092385549623099200043526772499650283182915062829477147200446782065238185895367831612946258196855740862419677798098893280332799946051635592737068540970833352791229573827017075811861006845618704095342825112458134021855845320059881959038254215064495140825341263779048878808385112348903818540908294439643101786481006410619866483658114906705990534869770607299875948811371520894342733704998524608029289576652416137789198039323137530401881826697048902925038373485837276828743025518361809374556190964010518929206813429835046745820939590041064321161943748997337689682273671287803146110144030963961699544468411377252473130022641418815888144427841839133294294837262871284040333535982002800244975828442417565571426987110242416005066883750817781470266030618470503408380594987375779240526816130939919144955717191762655437359069190436112481233997056088139546032688706541092418053880438892095883186525291188715764964083963665717585526913690421947865085857666211536987209986508824668186809992310252397963586847084363462778620863731198801561138735912313464372851892899176364300686342680719667575369141080379786669112207259075452262561952317297767662488789550114014760440239209773833647999643578237692857628038188531112918170336310121168460835933008919964297936621579176202114088412366317167754653647299509034749841780919975663456360620075109536803038452127728652103566578532606993896651680831355410181833135108545147675532201067891636069744691494517953836477109622509688215305619211358570885027649993561909379881125978726287079669126259970526008282695794875880715110984112418736025130015302873432569201165801777511393301171924089866409168378278103708132763381074124209753427764342186711765490097586285078227528119415194249443577089844287022494121633295787575820267166964706562948186142942263248819511773615107999985467553169679393370336326049014582518323750574298988321178514459348849224342613173101875854164199646595564668381839578624632001995909633954941525449625700957337928235761382348841702404961099121787965576406096295593947365335563077551251696965183759919483564310691784407643308897115887040104618586809164509222161033816509252432346449728448153213973324061676702622496672653385253765754179174553317051073616886251663407652237577177927185943985250009758326272409268076976202696711906033037888052236829874145314863340419105955092089250487062898917362765742604948007945680668066364597650835724184694054424332143753313686143101982325047228658998767741848019460635278121830301698762039568329117417273163691431488641689709691462688579588470652568430864296677124019862300414206019750886781038099426623137161838799273669476069581527067722237523615959223982359522249711691915486097576852613081163291443699951540528902197764029307136756913140066014824401575990804568607736752429898071508828650152036288956610418405029681381722017302476177160156464111222581104019999477843673449547423520852990438513914759011834149746872603460952742582633372632032556317713250348598354211860156512214221468653892262774458785122601118326060131812437900685926451328122623672533902307297848973351385646829431126162958044103003910061594578208197904504709650631402625805014668938848698845890313032028475522262270894564080741497998391605675700948672893032931276047565829143372003321019738535244770732307289944354687497511166636677271412364050169984292692984444683449890176724333197405036521935229285010274925815041927137628823107608185290792930611521396446318671170311790633574340328830698066006403205922790964556621266340347648903898819473578656116446902359417731065016760439207881582995837514023885308881481504096091684944317199739916035885982388244853561785520657840997835034058230340074736643515716051601363247118092906877908710297111729497741762806664793535395658130449755823039452816937332916843070339252572724466538521375668149737701961940979561996692984823448849441656288539497860866422124701360215848255920212864236015969368688653277036846552871018912333489796596585497788323257156758689998127323973439106987285539043448133450575455481705770446263974935945313590217167992623519541370360634453057472732320984810239762080722259822826074868395287362580552638909417007947146235373466502475343280912410394080408298753413013982702258830771262225089394600497110442362140884399952297981871375416013901434552884928643186662245694195283733113670409598572247168008659391103608010858280215053354727624908602652200022239561006549673891963191662556112375538567173074070410100260929282281485542775213125442342083644328326956199631008426162587057196625876287771397285772373135231229236822990077355192797833810093666116196578276116405225756062765036484376997723188696719015962734040377100131690476765251509194167973862459109708791534630545042690721270226498450598666855038446170210694324065331422227061236353354297412700949617040606189950981583929627599658343246364473159269320929594461979118904748861721612120851283228150067690652033993180771483012181170910314517113957379982927201886463495437691695117323646472204425586030592197089391552350664922524169351214821403869067484465226423765718856566944542685872990789877758658944505155555273786559247249661830453736888021245214988605804912358742564212883600973652319524153636172097877143013786113548334337677274755134658677310371731044056597018202123865032288951784548628675124027015822133497398007148587223096428699889352068943359852349047457032374960310615243918938823322478125538317464919422188545037127303052287538605123803587521809305148239679501597983061138565042519256734328959411557015370653334291620648725765648348635363921143847695037985917209907983314593754300389562961320068292862719041357920532041142547796900477028254604606955442719856385199010592114891811259191753480528694042727109357053600395672417405822327471659621566490592963673502920413388253563971518856543230463198295945801062954667813937387874398162794709754586482408877133879906852546625351277600848520973949294869967418695412351093072331121483815633148410609673785869461066921867620599794027253418710492686450537106928198137572517906398647719591108346980330018735168839592740976128233184480345268269316139240547798777462563257615598442137931578400482766441024444654226436798402424593144164444395110599836289235341476111074747107227254377839169932940527746708764930488824983261645868264690720914533672390970134258924586255801320760451525220180039511952002274802300300402103417807091390426970900784110920581999046864488360114787330297025504374635062436429334936067098000854965603376748853576818949482593323334269016210882489727592447267670270761053440505056119197771592720022354428578185421982192555479285433994967061086037977936802129776760222137232486267783301669500083926998385524055812722802188079805815362516740962572008182755527588577832227406227073358610256299993728930432685011880694012224431126369335659756168978857448275085235780460139962208319826350527369637457650341593289312364393790139626065764795887926243942647176719360351236126093787397595613795312613168783943883002135071199105196613309897195654275119565021015963883168271878462604855427556340116040776963502758769106393727693803366233274191541066479397857082647593584115226906112339280960787083043357425222579002788323770243264114112516988107822683428758303514443965941014451860900189660847552353609393629290815653116272935025598680013463165234362588965259557575164910668874459281173611652381042887192170885207093657651586810331440095654470178548437040272386945516483544399341002859450929320220391928780831902874180389201828196364381630789442960024546884082530711884588087203775780846738939309164571448387855841038795727500329021289190498254209782965234154254875031267819487906172552496372012190866224742327312204950156225853334044032973618659002567360389469218996666698211438999588599579917104780916997419735043411255138118420762619829754956645578933006266319140743417811418175698011256411984911875852612909994581588910865863417640546238415694224709801715294629395621704590909398490101903624112217402448365811329580004452410636979978684518398692194504560200759619857622227917895453635135329060178583683474754984358325148175415587498202397099154611557816608155126959127865977671690397995263733741536916997117833810505849516440152820759329775493489474392463446056325354577500897687642005740395872349882997533396887657609085598617874474075123936036131192768397523527231142983946961451411719480095416427389591958884369673290974730300846531422309964132410079260662375734788625176024793818039280050818708845979798346951278751560487301483356352444524570198908992065406576665876779043301453456516510740601224231672181865505751832552346392408755714937555305096704398710924737897340664486426893211939385075311493551481378552387457774532255987485627500560608907466135303571321674072438801682260747319525306143364668960475244989848917815926632886747844940882792353218122624599304282999132591195195808252064587130226897667127420964754286564352903134529035071009264670857850261512517873745560133953490622889864369240457537717886357742632600392250588188929094180771381927175547819773476199272075342300182683797538925806055042329988831277834773137934665265570520181288230196299638385679233759524331418464328504394046520584865268334448281127087827604512508142878087380432661040360009415165802052721394772832628833503525073714227796380552250235366068298064534595098519131680108638745752620846212702020950114758208864607919964693081891223542394187770175014339644574709005318436974645635221154287716710559045540630870809847247640444762342809880863055735045162309212847567328676557079055557201777734197034535750852839732366231156161503131393552592966831401208098483333652557695917522874319530547195986653448815924134663133268223404494412657550950332629659618342769437820361575270013166531309099750039829405392513826159369894295622363887092116412181786216307622852780438934630027131166731169826813937200227127448641468626262185432962584597579631787524313280389249314741658518115713682868119883323032958846763674221141606599408748381967335258449296756270197067644729423976108887220409961355343897596089247120296068039754016268804443536729595216268319904562589148119577514364104136048062474872985584352761845722783738204988137779134033394358488688093549864207571083096431532916756182023522431003186411512147651714747109929159084068990608265418177115252272619235090005549217419258753844921659713856840044958096892630415369972553766769450217799208336062881468843096125644628657682379094922607928466645465229968409957994885168554257256561102337462345030711188272668193397445207332266525772477593164745690101070849830227100694205922453782023440038584184392418723612501182379352029911448639613514626433783978998276010559799069380233306502924543610331777432282853718715483766700556070508958859528732047444138906195229397402965706630000443731558779512512771501800586370827611799289564504039827368970473292219862841669863615963654565728320812284610004785270733787802712131678577653412835861858490969013980501242753685578563313093997399755841303263649069588001783988391845023867639779990077284858359111417555699751531832686099137625863451412652191487681702693304669251329457570459480652515087895705366527904651743509965079286921138632961187737206456028036300951802184917561052422898236663110865595864639000602631068578389630485782289123203422910014344536859795766170623262859906544646564734807392146099020844918263725622920495677906882682059518378272164585965676742647100262208107054347298959493770361263323247566231125811280700362420360886813874459631093445392009561403227357344877960339385912750811289604939158133278420087178148148336833863271286508224483943997392270150358211663400324841835676240185828445756839801480650358742056629553339669937338138495973174417442061655879333067342984446555859002524549400807889703510538610120427931719384732970723921566181710182390378331431697162503992716798281812364997888652014976225035813250704152651811864233749682772970949859079443643568799201080119549337204684279021854796149374038736848094367499824406350804042818232409665978681703912644141151806773478698022417309918656749918206946491633231034186913194700953770871090214771281827673604928084167905483223722174451284330133590931381042733144530542628836585436396080493921126191255429866527010004543946956561775877045860676207262287151583044566008265927759168013004134849695995919809384550679713999147657455707283460718321257564781014623707969572946738671563566586491732037069454027188417057670622786878271339103281107291295960265265586526698110218516573753327302835059980388025512784335652239120340346449949094968651040166052557415588616207395505707672574840693733181634643933538687198451751908097784022616791648864595233150091277891075012066280256056175922481926807965445681253242157832111075019250599770700674297337927762274082949531678847024756086656039196794128608590013804401036864779461908510508738036078437186282019571358039882263575120781315178580052252574646091267333265552006092736898727395725653646753329897854777041137927823136745787512171522100741167610734003506209381586098671005471086373654959068802348864121169698696805813819993005352111129598316788546841800658800659172594104578246393099955081637983669891811014966481831004225803564018830742515496140581532767878078738642607102792259256040345088032780861825415134585531190439087070693389562904611246973552334506494591947767504075109659732660425908738506914697253834192997070833423912870864694716382530636390944857300996727426710426669705928935089294828406351437999448914561235043148111345634711808055350077086657161623169233550248935767487001335230677500763066414537869840862358767730990105264992516047014662982743164849290391798274995543449638218052722028533364990367649546318103356115934394579684769055919210687512675227611701963424703099999382823307512107380366142316922501955452764482068400442986682803702912251500659207537833148915259904270110525672555855470752664445290690392027490897787668885980137840625128187140685853700939542308046907533816908831580680081919135479282147912343986903940404004589125373982083602388826244662693921845934985828621043362877237222249549000706132071095604059594275923832206105950264187928232160357833599535487280288475639388368327694510301496834186595593824391754891152319055767900383836098712581505338475625660240047164951141047368202441951611379098018404682509354830441019549879195444435216650733506141516781734630559983195852790198469599994419499496446488067549473536579993824294089142516088358702652830030785090386554738453261238683842136129710687037564361100950328334694412661788334412821374825985880367060125791844650754753437716577411837184143793853748869433485834362999997144724326713383608508255034673935817487932856431078567209489856994665714117523716616756458008108585954259593357780377136233975582080299212435900388287059992688483151943460089549974383041592183160997002908383405055928806209717002505376149910007050237441850228890488576947936253464656490922096217805305322369645413127675375589885710366524450863361357239605060612951569560134487044788744575587663612131146401353333370812906641606757350766563205418529652622593824728423199335334023881134866027083913917261873166076535216524341269690909970880528119225337041508763274859119627188215148374840639552480861048899436816707387631982547500761110772424334892948084084056258158318236979662628628708842187446895415013010039242276605524220586957542433575726033032544093642487713796535673347282899194543887908558476421135031916252798365387946454463815018746611325921381008955440866953104393911643781834982759361847683176296553193542684456888591946887953219350858865969612177192575161281817797421031905054782982259162636354222730824361001771072069581606989763917049015900595391544326498027547145576674620245293400199473770838570278596891485070941510609698494541741493334276132283914729912981814321764759357965374362828596110124274099431472636496010637546133275128052214833067844653285985962834352933045047819893729499506379469562681395216811511138862349482068325174797125503016394398147868462835703828949659589105599887455517693780644187481837628530088925173938785223023674860426054761990813322203464286351638993537208928996127276912616903289594384325953215804565993745879268797864260567092510694714034801229174707699059086565185171696433495938023576149591410059158962738848260371312823607180111662576683804173245377129166701891969219075406339815260611318706687714562704140811576532923646971119045808787371605175994095583466031407759844127701367548559658326275363200442954754578304763989606245568128084646600608365072585742210224838800487287715028305876689433597412089766006045522515237495554286329600774126776308431201882985673212638036305750774139531456213964906797798378179615344725875843175439913134980200081739003526211531754199279118226959797403027411595528017967405370553710792002505341659967048583746580986224951420441401466938225819549134486209785182736592729630306912859158101804437616194730423089282398526954910401960637450649416403005345091736027440806084798413042407508507761367534872194041133215990740540135877027264748364125177272255222983029393955248687997169566784509736261839623928637362847996004467064064357774465432904204383412927595734335314135174970392015043052123837338826678372791789160066228253385862906918881527857740563408320418344452454548433219186652656054056114400377471302649767187784045056672553699033225004345753046162621594586251866978822322173936592912821243015087550472447401159292510496060887128877505106737491319166767285314018365152537827860105036971279901854328245128519022772151551450354526387235007949329287154894331629791206638939353722259759464737690851322511537190309907816476120191962866695448793395908479351782201629920568789001214264916461539377668437618263773396917707454953016105039044377992081552517112041770393546501935532288174038656362460195249411382225975870134093287525943102229087579909102996684762410828506758394857642967999807693012385296218013405955876768382038046118632089176462688208103679923127792422570117934675060074465066978873957287175567427695093010116166458734925926845458070922380599479124626402257528143145130145360251355518473111959072410404487498648527512589037562132576648733018093774371530338736722795576024978586312371492612829060124949629040800866724431024004774400001615059606919173276144444079444888125411501624906411920891566888324901665710544382771180852441770532359817076549709768773943555484296950583239460612672408046860445519977437729212451299974530524583183314196498347280052161762116151939969673221685351328804844968479766630290523650854540067371013402742222438156546276751036688900135541815536578687831884246072949843066425893858573191250528433282692410152020356872668738904064490989247250537682481370463695228856581719950601539429378005984485808976681449243629629458519641909618906510428912179544570971492630308889534092462128654578496322702090313666342666622623540244827574757687235983646264940255474390532590169520866598240044933393880444303745327386654354162058027192494652460965983625600727457226106863513482308348714127393018998483771193486591554752730453017811402605782756742716793663665878748998816267064919897844186397059035735696991244027706184455977577327417007023042828904310991485572920300963919348497037425541721700141358814178458111865856001673290296224621028857434269291242397826339345051705701852635192913758433650560487868233225805106166468292333250683197325747968362330207692722218722601729579841912719476111745731848794435522278951078589158643328014134887713600164131283186195761379565764404151698539653692239914415347096312971986147731792646608404558850527334407753206269534207803380794545915729959121914364070385633391101437781901367614230168845678724209814268415651732429309516428238011757031441643793927151760843685415458881809704992331738914865245684945028152555412290208635185775323047959084180716384820987197883439164756994602656849134448032414086928541456531039143126133337827460051135368528456269247674236848628346825101219559879914969697381493882272042332387935582436751295348367109292250376737594292207967334495086861977551216882515061133155820728170536580559364811388930864658036857887858058473935876071015536073224741269187803507872661852951580500712831739130564929646294803650738305212045242379353768791602713936156088543348979460375118926314606776361211328917327531114747348542564144017959432049517896736871377809291889278622251793133656766636356912074111863457678204024175333375168787184227848954865759009207717284454538005755353281706266661532737862992273454938004543193908927897564964568435200547689975586109359095136925461128622120443254743586113985610230916453218917123595086284176315774245197615529950126065910209265654797239002671134234687961945285464056085117085550000344180524514776317468444646344528397906854229670518617969973006549841494287440133137570707964484820372658197981280776496640554269621389885007670819368074406248318004020565554706336278987010972880290855115949151905425122693172211428435636192737839395001187367892737567459577401413774695828021406029821706027025451966310694912679024924124971808129620932074478341263340043481609222664769662864816907016838671538591198515674342247642028482096242147589050393246996517505569446836469983443859602993678873648398125824112438145147406178612334864209565974045151145667087865209717416032195260056510507432037485644231008863369549546459396080099410011687875328921067541120969549744779912954979693606536801475202281188690360126207667614485234003065953564990386027758278568788666482860148491513884412727617905281409558510157486139096183370211658806707455662271569888102555235414223559032094347600960995538425022248803437747885552898853040488125303355935818732709423703899332590425358510563338662722012105973546348764511255569553175696958587470241732569885260050825573992898209279644009455740364708825549352545856035532599940978424426211074330619412123058847087411175245210357415080425367327900943272807469279591027623319435276935793069961982810782716134159277691079510342360242152143388253517460307779353621729672145561569427406731769554352143349675157193146307958696296202228613943886402887518727387554420271494021103556709984717601993919402133978082003992270493704065363909525319561486854680832034461061651523285775803040874776920836403155441331421538606935755307506684116781896606059757203424280759998051889583745515088625087409693569146175143528851904656481977554058112795357149695952077665769397008859215422781129457922255499933547069680737557058646716279395455420611327466347857754094552913238283103644817983585868542190344455072804330655405467339802116592516596411918023112523290456576560976014398514018243229111737047968423441540756940086092251422536931155097285015896840378310487689379046199733082872058179252640818396557639006293467384329517734612876631665420977191570758328587307832434446374298334843628376951785888264274650100890309118220207019943181266755145119908730431402049155465994684687825396520728467442390803023201733452160677470207519134073009125734487590360478873522294709123382639243032024457162057208659588143539404182817606041442937328538617162141459412503157333728373135138628728738537570882835645840006548088118728644917743570331254761949097844873635798988664717650314736248187781046397147774431632673581122173232172510613496128698394854046060052247590388184196553634762288638144704709212443829744422049007450224131175213880149049284556657467907913669785940317021525116889657379054575432904722330138002627242484333205188968463309792742856554854478862381085845838921036413848398718633845230447720906357018331377866027005852024532427132565340470692860240419319748461229193532554184193168020292349245640079307695166171482404733438230953824557803828528222775400980325972167790194071981410665411092768802282188130011727840786191228274928406952435291195798200472324888833632140287813619800000239101530487123076334827976392106077134501912005693473956039569408300577931626084646230035354812919838127521594033825625416462599545116393513874834876870064546789923948809615682360493650368752847846162174676525678113202213395865252188180417398420006421146453802194294219338138761101382832537401285663855055855871667408565667787821863116384447782629513800236958089052628903735862166918089443986574640843095907929875197623709945602205304645974855566281598409114668723587116855331311447755481460030934986609719088006959288558719071554898864177426869395647870514856579566781086233757867195464703177196790381022787217930204206724498655295744476758310709810798205361573074217524056024703520603835894561342033017519182143726944554416797426694493065338057523668973436548008651340266284082281196776223643706515830943067007379893618255390612337340663584777090401942876576201378605132680349407098076055288695768522668469582367466617173528705775181002518052615517713324686377502717132116719924152994038549141797873104141476751739919812829339110992687172194493635354119741298316135472370668426159374409112815568461503505926254911206325770956463820219003974571998899410507168297446405342610458335015956458971227140107458370119728072513617002136649040792585065868176434383877136474561283418532385191787850336551369563632786633172037657583573364265157277420857719006991919423927839257164452716515633836119550298733345416495077260833751227760706150354867071608744234133072178571107142256153117295638701798247233215934465057089645578015127026999718909340834669666680206288768395561880328365512430669065796677172821287074347599686632848839500587395951062850486739537099728639422665989354955474064285061701589993852375658200658178671711970841390613635819555097537185928674575589728513437658692728999681948858612385770995027578418511139744303507332578650564237595319680567631720499891170642976997928918791544304878420261647312023174066229330724984540965656556134881392342486883159496097838834392777767681913463816755416960615693880772292298292215659586583122463411547103045625134654646448017499261311082031505587343734921744918455631239214424977846805084456770034598334147434347844795972434210943996271070096800283785964395134412747129157204788276299036165394706448056176170157253789492568675239231892265082899249698420261186195517434488191803185357012527358628509401381292347333751364472101811052318324223136024923909289832841880652633598707665133858729654970948221804611044030554233766926415552804052510564602714971221340457764170623829757041178822600468519033339966005209695954587117172937752562633523534903392484033858844358779410499975634033964298876329539482580273547939581685991298925393411173334072803546766545045809771525491599463699693268438564693615306814336742243791662519580328527896747227686123954958503552913696416257368956279176708597945815520838585145258087520477240501382796252495797122505637630834695905653002961810997437785485476690898277558571681030414495542485264294642947762029763915548017531644212827374206273934310624028629273412540378060680736024490147049964986176976364326349246702016966370468817538690135596291905649945302667914367841072504563359451931222901583298816238584232343832446610156184260612732546995324180553735391769809200357309163854313512181731739754740951337119519206555002329943751579331656997359551256792213726713823991483034999153186151067280277032672475076556732222284681603261142078461881649372591435707188777233971539177271727058850645870317028913411176368621768594518693815528622827289602863651882881481357177495778065337861237100473019877125567656384991602880251929679827364569464583554159222840542670464063953745513558096659708217430819181227889114781435561375929294261798138398719688286192922051746212333186589566407374795126774696239665236150968423953627301174085627093174927822911579186356247741458428600902648590775988583383130257428161250661258981751557495569096597195895156968054205411848573078138953952747419417490439221452329815464464275240625452547876047104930871993793565167049050246280441504823983672849484768413723231384480442721577410915106261169768562811266322887435119131212956155094577617171220694901816214301352936141535955468688111205434612116720886299537987672238211882369929637729690528247299123694763829167271496350958598981663698971596836805368532600470905612418624458181789015318234044305701926439373541355833555825005301123617042546639908896699151392208552171828325349284324842270010011129160178694278174496247026457898268696229687538972497781347973341414125353496186032036436744084432137571698604841446610069487619316745331371590953246271374270062964978993950774739885396359178622275723601860259579309919314840627282214456974864932755300664423290143608727056007117107701840441390055271100094096565342693745368362479393492645701325514199170303985944605973793361685061775296258277622091117579683287659279515780766775560152737207240542144592617326540724903686697868560673561789522519525483495994451237670231880052201267819963737837988916374616397789619131747142417080230205147602069106973247752851316966963708150805805287537917245308068969554279378483210573370329502426589752990939145439368198000899751819835458568049690968934662150192177305805224819393070842934483269439411307150711090499497037584189986639360424591353820008347875533858390299709621356276539104168084083749093811347959043751833203484870354618422386898040955258343597780315547293300876478943472624341121604761541633645425911934876946650976976707937493632071502887845382624666102992460887347929460484819944169034230112641596085767036612564345223980283198297653327007819872876142666485197406422116988340562389416746814841123670115718560229294398607467898548799529974240725800322163213547567668064438744052254817629019646440329903548576612664038142336729746734301666026664441779037343370111759389394175912611320751424375297045366846283205584065715822058713292204659325040718704208695107010093690980298395488252807192724435026503066714125567126803905673396158956776328001706407024676910099282570369112628355491160543454801545356478979922335566560487128421864618371804498826888505636892869423646328474098472196450953709884697555988812207684629600659885055895243062112584870888631937321169987118951618307278876929203549415786634886812266793618741097273090889137595188294627332613368249004362829736424713478464242581810512988371925545970576488588081709112644307564060698006905697784777153038812768132134509401364155161072514790589331330963581149501711555946418341528293646378408271278883795415198205441774581018729908251713328961520689650910461406880466339187889531231617640455061326393276304354435336819297226680463352516473205634106966255852629038818704054171456619161115743983884341164340623278537883181879435741704564660761123047150725097309954293150314385883317422554189954030761469861049470092365554647742896821523447253168923710409656058015292718906355979545354193280981522723987228192434996102989299961494010276889539337702242802424688844632803128053811760965748038444528755083345852449398288063752266228040529420736110058411673184999570704538260825682301196858762517211997327045749043510229114293836448516038684346862663173310572445021432647428324879031088070648543402774533508524146587185929865907415326725505348807594198715045350778755509213815328531710781478923831270108963879916200336962027729686338914054445793865475296766960764820767597076349961757862372444330560731629565579610512562385869714648448894315891555913738629736030258148256274852567789145681726714767372085066529682366538269238222408792693428055616412222570114552395482345506133190977260889598201336682826575061757480400515750819767303892471876924050195951738403670021943996672268750282279961016549550236332743598938408054150238013555016408884472235874343657557283205485416161832150678249769870298815300079838923662905844569748822043939084367023009290337694739014806099978255772357913851966126237631626489064674198647232018925066060976042648896440527529706605471364928173111663786246103981692152226859138538630991804066349485984946561169433860923635673445772503326211755465210803985802328579694309129785189534830477846665137848908497410643162775843826370451283828849885211995610360309183655968919563990035552077799192055210611827305227240503124422134715830044356887011739916805272645388996106353185621387512490746094098490625202417815643674193787885214261682514118697430273058108994241755450253448084602397429163545846839284495484816716555281369487672770116242102569223040885635365859968796932554369552979041066552756111519463464401744515310625133914685270233205692794254213045897565237177756099099520906329861797717683593439730821460444993007185455167994935238702187759008448907262294567607168974886240907731631284479663063978114582991281825840486645592074318211539115822882218594348498108648954666713640470615325123837840587608181640065492388253602642209866636154654834035336859151742934099663242161539464680095130418845130469313916111662252663553787302679334908021125524056904677714795223211015014019229133640092144431010330166579514636957046204046999386708591062003763055573465507822532815185231549498535273322183733956531765981599691570255686795828937658513329287362960986952306004569582888649032891015436912612742883054364780790071755124250989826027592092787776875265414433943470385340618315570543670801250477343347036964207299709830911406851031219286604713939335560557155889524634153050550074017374546506927237515037333457134196212338262149501593382029767727630268648076005901437145964323857234355563142505882943302334246355807548190470652726112441800730207646593093011728019961085426184422282997275342442471913558464296727573620208229552331203129746663427300021253789955341084829426746378669434402843529912643820526492267023529003139337133669683562374180506143285120403859474743374478815036462842152781535313315703582600416592715182351520135651074909587946977202701900869395789148486879052047299615631992718625851019466759262379750990544068439097963382579696262653408363523707410544607448831908573303872475083424024453096338254299957692860507927733069687594548468220716802810464599320622733356318291462886559178550318915622296412993802596201325230010910950307821174562611522707330470085907670936059376422931451390524677868523069063846841215638030829033326587409957133970762848298321087139114061869099858305306725745300557932092635174527199830838407747364200756265711081049037546884217088331819340519185886055900897044655508146551894317202180054455003208939143762964304644513277088835786854356483465390323581009935899893129952837734607922583679692202703612917258818924176215632188254448274362995691511759131468842031231529471127458979745262903109154011187624070325339021731696377704939591365193240580166360928867052626579661477287369750471316372195885165909204729498524574339434388422629082934686660452690578483923394784156766222578784268094851036947717940007078174408930225876241153074698016729168659391390141587035580371023747339771337007494081875854256681129436279778693435070694642780553565748326025567194469517894205742345966286792729953136311407346388869832692607897476724311761003197890814683685887412091102273310242165345187179022349794310903168511671031187713823276900789457629075007090887492527968060969074056697640906604701766424933947694157556755488500379799631355649093905424852074545969838972316422782114222582595955038332884311128009000252337069021262528102403250935564920766210588034729374047690450993386583889391839088446262248159413027597780966471696738186738668354198893364246032591941304272122835463342927827351961720284621358689323384536203884774840652006280596816339488537647266695981550944907830346045697434388804619161784126014604774317890385905371958381402099613248825019921733144216771178491448255681342925240133448034339212950657878089260762270861526613326867811099025356238374304092341565930986215749545667500225858961263545558491186841800864209711811465230917363680738466421620502650583709930520444798197644275749994078242840444101447457206661322561823560574496475977134225203676529475911100850621977114887838953149734659512726650740207909611772871854169225141085791145299238764991662960282560491155384001120178399257194793172443956650692931201041976589636732903008306041358000595483696264315016685403671416996142783874046737275191942324711072834263375161151388658781509291159250479698184056114247490406163443885296493396519437376027083894619594568207479466841171588454440978131382709325301482547020093682082983879030065933774038963280628078504425712203022971335534891451144118695350718434089211365985334204034662301304533368534673563873080595815861377123726747623334988223570027155288027312405411161908859813695542631619091765942246331469646095752550952592400495069273451696827297329174559061655602341743905556902578025674774747835316154589449429888681270726517639028341340890759550362599043031400759916010279829301512801989282050040157782911914663095964631851553888731829302711037791219582551936550361735232167990981252622136664451576165604885802978783082871499652360994318747902019550782903382909987473162879758546022672080459586386206789586085562462229317313245013543446490372051633843661981455418752186896617209480170104696044905467512236828622703864328036048014801453080252395998611256108462376115315237530874511044303596954721565087054342833071188541790527057030420261539476336409521849257586821884303496971136147958601005068591371822740852796544010133900570745033158661284314879198532867421305932759291687499088751849720140894648486858131215285961735852281496978681105322281091960504432825609535591347358820228301302885914111421757810458270237234490466045857218259691686108819938416289619450892199106811462419249579049255645780533793659460506757080274226181916631565469119726884671030032181696416309544989076762331493127135387876328466527455313555801775445031976897015064454206563810715465482600045852800911890529709175940519787011909892160093395905307979972572225101697867033545051045487284557747298539650032682567442750946100033263948379006417904028414696635522606932150991457633651938701333395776468388775298443631519954863905434610319147873245736097484805687775612975405744821207813029549622803803184104411248832937732960222629770451656464023224802407610102005752207607205183457104538643430965088456648422509045613040137159125476366779429693111995403787534238451255974130269266779560724684139502142821260486893588564678680175676427781328683820988599998029687952490949667086254910582070342187170959634149463377580192390961539520615044031272493541199742022778724792232081975235966641683777387629142227061747628680264332053633003927112399806252038074437968205838118739427721965257673916226815043281263236179831353698634878533461998645484978375873504160653226358218795375718034919919065430564457812906437935649957555046124420584332610940627370779924011186615797528498187999779814977335895323260023830339396623880498620240197020041900203414428503015788531699043011159322691501353484725867932762859075053588449260493530001267776914039736977319841263241204139208676928828878359529827555748172072593551315776181408514553961031186102939214594072620991144430157521011422506137654833145208714018114369989369019310333517655751154103115151209604661637629932830806994257922229650844855286632153037261256650677286520644043988457778704643092187381707242962222795177961285532637007883120134063391613364329363470867230371216509486537339354778080147569641161341586853272008423594438128157587758423672738953914348055339175488715982125603862779481781348689287957760443437794124290037146692242293216848738602882680902739793437173115525955462298712141421778921844684471009638682946797352116544938096727565042008730754894480722030434457364296805542827542654142638844344533610100629246734555572151875472838256669692066385305236597849074005142890837951340921197360827547468702925975886060734622532674203303820748925151493995835264138243043140339419355321992180068322954692031441116947542697018670200149017768349933371495570763953966273843302786953044616118667491742481869900266908733942682040545889617891555963392793743762222985615379750898294253958880205431255610669645834840036771181323097140074977346435094009279661029290363232072951453485871137606026566817089973362971255550343427403937040185859410890749634563817680921843000575137439200072181847172353744246794264369317901709314863041821697184923381682372004395349689677320133598716442395128648261823773682738089506558208311008672336873383422813788867300303381574107587347321150352976857753531675010500680578789895835572125881750863870857971252368508761088739360046768050313511255344885288933520641841946097685091175865703486018507241134295587371942714753579025105673534437871565683940543944708752599281611716780910654156642820557702637247243876601968495030472109819321859568484971797011988218611864091240096167524939156513450003564531306883928054209430383122715809561823781649640945381858100117070383279674309043800969993482156497995316273506640689174067703594237871513902382669326617579019382869780234495671051450001306227536161794913543138727943983140931148360222872434214268162581761976642972106973434945725973640122734923692055058995520088948112701083821548538430262624797939096969660032499544209175259819831499845735827369628069291619051899941174466125627640934895887506161345458272414358494126221847937017545872263488780779912418786708386687614274857351395909779744809766663495995806933420123426729046181507660245627685973258411076762462786220875161747707070816309902647571400619233329464940323317528810518991891717668257501676792581573844690546291234331783262937462327198850197571713714722774427071037992202543738762149008173048785637348242302127432697643781587661355055757966883554545820979075854847958234783644680907247651010595737163752597417530311292745172769740604817163697143539236465340608244054028192249974163045614546576552862748677624063591393817529368442522446096644554166931868042899315079364832377668078637107958019426043860907023740878339817180729623449831471263453253977528354570446797607727242174749163272517488816827516530444126411837517794718163461335617373182562245058202155909941078708026032496403054821190364606312050584964861700833213724401609542307935951851351589170326603433057434008058294193072116272031197474004016922092330424724865732243299584133706952653053894850646496876551126041607119177035193073948787666761194046901292477695247750430996327521735543170920727552977401738743125519276319980041538675900460516236163729403477844957238138399227078349954418181160417445598923483020045861564583916981170879274766187036766697553127215073281286407912832037644908534600205201313755733680928430669078459345731399973865132094371597292241255472066803705934749366264770401302810520351020941424143296993197348520306420742012743412883439950073694935961289325873269173931179218421528230731963534436790827393068994339717770052720620729303757365135975241421853429255983365829593534904955119004890660867491562199571037544704516244966424977477236843640877283511076229130387229988493283194348504555497327338344807136249512964037049338240541912947290108630577847052468170023053662024209036766685093896212173408194028530298374910096037204921553394869331008319821916637145937788399413678185401178825167753566127896286378083073273656325491299161882201740253238392678729004566836670886967444909332106793496876255857419362809936209149453533435536050009587067539093505676222286888691502793681957787193423706862339554987833955479898692791907718401962088800976500140741137955985124787455360705198701760666352812212961973135679494107431934051305846637017339064147207424182712653473777805601144234219113380291246004471740110575064440711831034384376379576215875002809083861960979710507742557855350658339473603162994552900152090396374532415556388912871238806111323381944851954682271968829789763479106310807686219326908734499717882665592139275445685379601149552290328633573590424866229786758868065791366357992873010797461621902246442924274624320766094360737462389755721522212058927378617203595088219649378539664076060313648781594150456896355428213484637127652570507087694862571521769648208720179537375806364266485816108646644340061165267944669116571484206273494229515658524851248225408497750334568807511811350059328149820627766314232926300939776101993690227430882405950774872563002894057348528870100519166203099451117116718368001136630964090163326953549482572959850859565074270973485211714269748639743066720975343806756166689568255226321454240371995967915389055240208301132173313422474763275975311355829759295770452654540478330865025161166985870280330221516344178018892330653192748685743825637372835486484661303958766532086582534514964750200172111532781451233675285419759074403788852930744494740353434294769328712147932259997874360426151161303955835680217125616837327423380576720268800797774652889153102872668209901732088809302447237630620994867890575411666166287558740853400997065108599511364806501922040264153575581623124816822126395227396404375745299367884240587451007981490767991524446525750252677280478358156081751552867693884316764818406032205212534717357030929391518886452945885802150200919581123258854693843951171528735855767500944056622680382170520508812811740598677091713504144408001742550619064630471510773135176540952025758266114277276839790262185405018218127999555092926219213833840471699682706263583193609225266399369872102913737327224640249270256391281275225387837256615468995652570679928684539365318412978715971595138207377881500394246603333391971731615885503909086397977799159304610345646706346392740275580806367097319727442597204082779898637296309806251984995207105716833302187657837226331007484593633750616198088632392145475102653932034371861618787067710057281252085880102858227747223643312586810824137707564289015608482378085984019824780627962226283618348123870381569949642098485095626900779877504289020163135509102762357693014484079989187504472356336050564224516934739266557770165875560938893024093379814784150150834941785060192814623157603971838709597370699319241696049749763913753590166272019931247738718241244083369463750736086931427655721847740752460371388203753486302554816574352994027933120110431710270800359397614441972651511834936136613245606915647653036813795433292611242054444479225399525340182398162417894717455332336514884933053560044352564177525261584530460351735813383605533777091099428492685115458311007663751853223025224440817473607213961847012526066554677994517001558006485414145350226491938581202838520198194402799801014404040639034071535321390896579966877983141337705887539957930073272181514463136075727838010330320366619346857596057112435418854626538526232747552817216591659733893264366449362173601606561894312126217015498250623529930816664026852695564548711584826904964857204584705458012412828604107248720822869032929438328504125621051631942285693607021800814408248464055249326169024174155596006228838238961216562732612312454187352005236288614257089858789662810448342931561752238988611822116350751638445147894621450755814241741603890876067741047847819490368547320512875026142112032888558023478976617849534550570108520683592178966812096114426054415982737847355683691743817215304250230794284716229192073373282461767307999433093150277975643048018376153876279610431329656570823194660836716863206950641593442252886193072602335961352677767213450224511555689424764154928203056902330103176622345707832092996264737068375846534054606776691520713547872909236891998888636085591577174258323803172813291352799500171893717674039702430425494424229888596456274765913171958377562548483616782995785258372307011344081346875061084254615020832357339042588228021236356424821499789086008324408462147424103890326996006226258325495472303697987271031204863633327735630003162363196220847506590195769963589759843472440666878995155464661301365541012500493349443000959016735507374003723729067667657761217553945938703478532187426855864315365694779012337882376529948896059048396466722486318107235994617301354085968624687278428155899098647508408851993236175191523952631132280189580099175732539435881888290977874064061393560478182378954850783246106440749582121110415666377612936255160362965899794906687473798564965176199098362263457431972635687102190804831019481177441151370454778925808649819487776170782531191184518211245724227780912734384336970591331247894128797408695292897504456422317897837547881628754746933942168339737989291509939821377073353259668447729573934800528361559007188964623268255163311077531561226598810014138378971684843215487187329416387546527469325193272323208522194867897214324725976221059511689926399395250897389151454003208575733509802392803298340380439552074384193372122526436062461400233839198551902384782740656105967894342238369400187153768235180580183215971766453696149646468779421444472308148884230677513462127182694396527573062916553467988965228769416237489058122236050992996706880963308947321650787427828148755101251074952913004416175474398564015840525150459524560099944895485998477899410615615678335853262167117030614515296381256590630000241109085266963424921416804910385154535818927566013906915782107231588289261966463447151068417067903012226519958904548545564283251869213609624774665300208226581894937362353971871186151265849095429565647009545052766426368557079245135776303624362249087141868559570739705906168328786785452726560605969944659034066295464842273139686306614930180429021356646047618178203450696069061526492679330561461934948154635183937486211840652951917099632905465589398768828224386395937200471735770510788560042919623165224555899638095429294696489696837270577002018971880122747691122810267081714047990047851661852764561030561212077595855251091904111210948126268393049926406939038804301077143426341298044707140434037275341873376876819470541809625277092075129786985864422817037279358070784930460931833623882491241052731169784615695522608674042198065606181054144562672442543391362744376021181694643718904702494339956411309818353964176459578641249346316963667021702881628828569961329149980295913494229252662635232006888057386566125876978670222274426852371202817770149565899800819518378009340108168024288727800907786165349420339548360312896467961650941929001534374083592637530898639729108162468972031935102627962697818326201589417959725388302782585989426201709515292729299046145063517509003054321163563244263059294566511107662704750801610047007624566320100726665192582886145525317507135731129657906850126238300284451084903133186750254194057092070557042335903499402765615440828804942951526100722054967112161033884681138259742511211291469406959806411729895167519071728866740853328642459709159836362367604273984189788962531851233539341832818105689383329778879636694167078586504552422320044715840377860000518563725966594929437224390420109978662262246803173066091788742696706553223203111612106399858277005883846635548223883520982037981851197359018553450449242526541222371224982588275829846949617011194553803955731007965256343321646530650185170505516487030807137373490729794360865590083406257396113058536230934846349020158844837544182809001060585719382804255693545316227819213431517003424841349593454931993421421536738144687488093288566269591736123559026219471879882530083129536729347766827091519315999134502426896289590253268802969428119788700492992180827312323959008089287976980757525261477258469626790326821447940924606239606008267608295474860331317234424810898407361616836020611216144988808204722653191168494358689241416591204227949881214550324309915010866162967868980450922720884725134099193238411844471160179144849878615442370358395856295831468434086701325091943829250659338210663886683446678989889024135683927395063964557057652715948310105047598715910135196404869766720624391054710790430298561515720688942955338549355383864292216064120539222305946862351106864542057463373949971294131399133893072901962262506137795392143026500890637958167833662686309868522467997897431888112705232676564520978838132856106677527038626662017407940229051892781211514506706307949507059505001456780808173782093378246788457285294872022675178800967775926993573969514553004177898022230161436942001484781412146574846747405204131304302859152928856965457960143131844137865973798209433652193216267278214908334160629121448894043136928031294752869077216843560562356531361614032076304799717730865817522920325189881785286451614668168365329687479184707373442522408311461973924125218299999057652872054635671903983235153727157624846252804854898716410665093199745719643493685722824230101117111849370391507300349214138619470076550095364362626437244045649209206153027682612248256672698679734003674184008200999242941758604124433560870035413448084071220285299935688720083984496236473050771967239008248199551397579162570172908415175550625343935682982353029934297338618224796541898412632200906266250249012780563116642570898812192761135979941760525835812861989991008469512861432029441254913775401531798800771271060071299319894808625897185868026462012181939086002044358706403545380778776215947298899024442499082125106156702511085389964223016039463264828947140679076755494430788237358996099664854755942852157580519214835133113985009441111076860667035542134025385318766905482800355692476466796350593101165566380467307848381926362251346101959567059527295281027203852085298588050997184495522658552330635226210987508023467855858808719723152843358054697485624637640141752122878481889415609521166775905223949154448201419695390114319939063036849759852503947482784083868737044670094074027160045905541975987468232418486858409398443103451367871220337048030579475135149641516225164876486590415969889593704138137573544442051882246919695006707416304463895505078885688487920002698971556786098448890593278401698735979835440451693759784159628736886531298944711961397710152245346462864522052539544367156942398506980515695447131804771989069100657449923759800915928101094305041486496453509740504567020686897920346842346442940505080123774364851927197316874666723243780403069713204549394538085815566613718147338397066114032855019804450111149539337511055523338604927149393042838563284187686484572828539680834504146363887105725391329092380775180613858067923474129095068652680307619862853918139383469213091546727247425564950772513138229210782813762605860742941481304273674694316674560170538179733428665232805720548116524522138816930047613100322807854957003921886190818618802991782922493319499532244835679782951040594700919892532060110677985722840990915016203631772086100543954390755243485163827482302284434274054484651695288724098165819528623966173845307715776972387120419434803137199235533463509092633181523450223772865255242219880330492579011458756480014510055864148112965713019849665729231190917812438828774215005204592561172687769058413545375117421754310297130989146947118352173059126048555036461413760025385015922375431469270459602038019175814984506380174886059215883597920505653572585568624764801649499488030613904531997911303985567438031347810515483520243735058483597265369656193011671827867315914512951754166622858794192440027264677851583283929770900173350493159448292050914843304847906716179929403000899829530051151755571875076226701162868947321432047123811524531846925387061481381316594817831767575141586245552190951147127824893189577043222203916923200044732980141426616551669215892327159430657726397465277708887020566223592463941052785201799320463933177077060131509410939014197145302488309648548713020957425275490302520052039586438014098407136000744648816848263666630732994638819381525874838699627764901361157328594519762531576099507797008603025203259970418030892118265074398099589205694295402859110653972871263925710365362539934991244485023019096970494498070773406903313968333316958959406632595042771536394654832574078217770542137275170289410536611852871470339562067317640012962346173442372703813115687992050221701207091479553340657650065285932863145005005204427381812036609040437894500097352363119928657646717038068776670365220537930938632642572335878108471674646408459188542599647922110338169866906175026218704636529145483212884583234163796084721268598345265441692146818608932484851059312135570237013707460933256058979667092827515906073481516055708054752880246970353451271893028529546776033261903608360007733076611502768990528167929463819233968016039931028169687510847787125926623156908472680189864528855306269377397135749247262287835212036953397264405022307468008312367150799465471764948806512921155563667259563937346774111391079980536777106924370187953238228038189747131743670959497915373625683561161673972412007664482059256957073100725818080991817908676380248969948408077274428979917203138053700862955379851598290785185732674622371524374887768086733942646778480058823605387749160503884927780882796317216894403258895133102463315257189264990576627443550366808924765466376714732394637664749461712673960006355275929428113654065453040176744565374833520600391996005119245540036961577026107842018084049707226755661309675244174352142548140286166105448546276584588480691222052048398590051064753732722094683796604648650598064201105327536220048375981391137922336421054926170562171385503064075786708993215377294096023992634662963227868264487853663380254144278762887556668056386583478984311383199579266386833889889062206080923250469987120127746906745950073205283543929631126231143234850691762105103440492468435853825706441959462200314731507415876832945251318702559907219805622807737789457952344177462564643602605522993453589370701864118067511000816406333375686948260432497608232082066518205977399188335937121920867496098294973152530597975854503379001222044463816833343536833174528934243252298318355971863700770347003853428792588578825461496609220005103163993704860719485644835699859100514784645477814361551337149724653698428383941162595941992694002951562758224532920006732398585323739739192637233806514090438414134878852562218916904317260259196818809183549775968692284758001786152809268544003600385636829625170163861419604956613114810164401580262192899822155295655681485809853995259270828584843715134723485502804608586019063611942325075492014058690404862548003268278659398713978716601001085241794077548817709286625781917019165811694512414930557487480079004703904589872497427551347889875716669473442767592942794395546994998498082232860941354766529437005990645524588274982907468640794619583911635337619580606524743759677033324715900624176924889115479848899318132096545894719832587441218797724945158743511284938603013393035085113346539169900916627137060969641397956938468134549720979099850272103994078033499171008796573478012001863378940110092915617913089696853226357077544806846911515015984785267066844879390100463371584539420685146042724240194412829476445372811827955166712066208128256867354865491086168653259232872660219785715949105445297120492091169642769537448586350398378693934130079384056009434759169968161357209919221131927852896064088775627426717040836109391952884934302694477412769744610677284094994017869292767199631414092271428911965191171996487453153669680457901950883148787166687622992116282261113488533355876876006876834542958517149454728741495463025197863740666177163499766614746182338091150963390003413532807973859443310189710583899622258495507512287405398576068576468591904567388781224887059011167590723233910108253601569805111264662628870212258525007351048983190373783802891818664462936692246955590136493864223386349856099457349400694505160430507856643026649028594498594241925880297123072781803129012171674638460941667177522321265884616810092180511125029116370016277380206782886231339091982613097449735406326132172636434119084077638911863088452835108790964586388537714157053128175766578463973584258142018121742758309126068916813367478966716426071077828601649004055799933388016321579700407024498904376813150306785161994565012002346423483274548718959668936034703047176756107051206145693392849289774855913110947193565101091606237793740619324152354414648996781805390133445898716982847812595470268606836575490375379491794110740389218421032567191187975174561279421513752534455560713763325075020855950038093249014775674127245833669026632717209933578109561707034793592256263882773658448299157223907497809529148472404491238507213570961023042537739355268337453130028677215034823599168994508942872813881442888128851059434643346602386289958917365815252721756528002714856683235231544300222970920760322155849268479879188866298583049413171736539088493634571598818347921063032521801117111265772703003731684985587669829224695507097629920131063037748355872089783374106952548353224650988773144335768765445910965127094047190793663419113342515858571187536468643430133472208603862877229048539895035916318498295559978745315184883133623242756191028074235586334553250006790803382619632370103125003473560553320294826722218886614431122999850037495172686274139108476604331776651075057337548672793465744394994651707968791953175965388063235944504266810055434443516658869267779861291852849528674594002632268647034705270990970975898384082180596029845045418614794920611101854860218092173470522908913626321693821906913307292644519729700050061827582310135749050680327617548193086934343219802402937138271972171507741028068993120711590077789039997547237647213077513675522755051967145671443376614936920203640243250412205712206186183700759172013469120317483538344072182607131896656989785533167867598486482134028314296200456362181321614193164883709327001701705147094947258686259323798534999120702744962277396924250823336947933228520738978265691321675002072414861664648866411668527197291919647509055554551895380440992671274498036352106242471569288166362240305243978702238132387366532294655311394631937520960290744119933082935013003312896383130313360499165250254177065577367661873373974924226171102559315210953880673809680909664385236276623498255003550423718345667055859429565585296976733988440996145931266983204723269094954252325540323263683099596500201019672891189424771276959254657064832355323341523389272184916543346285752980619007367277384380001041065897275010031205972603647855716618600567996242976257126241683020169919931701633462383049156400499767038301246674299451202209450313386058058565896255072850479136493410148431323108671063577631246159863364194709466886205633834816927987459234903063556585368005819657400004018559013268133741454165837373066886601337779433233589721255251645856164863913482741369079161299615703896255993583720080756639623581697721573198405172933644975395103894772944357866248934300319972187283285925573354914211183367296232391368679412477372220496640732113734399956057544962725470588317839126975347844892052185321307731825308364108102741840778046450969649703529600072823924844233892315576951300877229330279236835738374961966088171688061771789289204812713605990099458996900915743279202342492180644823749016040062269135718397880926869788646961133399625175948954981521055293812205818474970340098036796522846489830261832070058971208868700996463439114882324591620534125731092482418493151593734940679935948475907452287779047935676414727778785062247966348003868502114581706076363063360272682328926467551842245069723398427306635512926716149302346669462054739453735765440884246176756054758456737840149701495996980763583035604657233597963260753235834005793628088628483524649974135610235835850377844877027465059857812036247848809105324836744980591755641225461880452399783894740947935682157831931281930739483088444030733465804897702442550945432643394657806129316424876455126925391407129290870207547929981561227782823955404865209260520653744048301177821402047202093039475925719645501762831826588646562563469282375618453796418590733049725924760333186822993660026162612176440352658561707620411543954597094089683455805169223141334075421802586650166682093027711588394747843399366220151938838274911926065216439827187257915173227701938731995468660284734375428684736009463742709811344643753564634576528423514595183584556794007027616353949097648816333375365406098979533810284691882695370103245663258794094703171748763232885222686223857967744551862369555103971643269566018191669460327349159891637204059777620120248808220096938981464441306240668484836805026833047835479769086223273802578688997519869741440967824954079314234626099501118898704969423055935958177705464941589409561812835395663334578964620863764385706657713319654576691738695441756792562578836972670015412997762142481264722269727653241185104689489538985393256444537748308680437996770645507727216519345947616183452688686593727399685996135682131301246837520757922747108647946954469804789540842251070305678223319465977833203409428266851731172411566211441498804405097656663488464113877932894062024464097687850323811596956013612445325565361543738196324162652804682760388140005794595528127803866199807802241823861863426944096326075641349309767335052832479036806080125525681042280760678909379947885331639076134056303681124662237100054561321754207192677166549484075418950948867791013509441445544415302919155907123508133246073106390651006901448264835673957328500155458052476283816403266909868153161035998089536090055738961623593321817007410494451095019378355480455314575549341069714339809345324925240138759488203639101785461589648039600257776480382777144847535604872052935493956711806099551144755795471820839812778756349621049622451713657836989304620178418807238174674472593058695689186161972730594764055695183954991432780193043932430237082258369108707874714667704806690714292517701726033094903477079325840688179423935836516252489460637948614817607016862487137859258784741051939924258769491016543040925643066179338692155362772067770938269628294050582675459386616148200204128829897893242526564140434855098084121702465041034574291498466680138199609210818648408749297883869358383816657578787819147401239928344105636475553107181857530830771161708025496427548101434075613264162243219378152833229014225847676232934243462727648122850820012335755180669708099276420776241059388115350494943665846538404921007500700324046386165578381847430598239168884988687072652691757521347603330436905799766522257138688587373239010766611743478249355386447442847626968249876611603448265659560755507815741195798650072181000997519703320836268363874598790855734431399026736620031469304102288410931137551498406545446623675294563071833266823408179103051580237988742961709741294265799974695095806677126279100815002930602557728432602584741674348970818322309986884898683549050357835629163814809093085778918429926981676441797104663888599004447042611663534323098105238196291079882375126225428605725442674022654276614107709032399446454863882044252262550560158328302836730505968320460436081892254835038340258559971975516486393575268036097457594714202213619932416293589512608829907092920095281124072745636015807915660081594793386804839749738863748047365911798260070532941784473436021846792390210617297142113711166466041532670755282837788228364801647235447811367990750114033965384367784727896855590215003615069770999624482028844448805898595407650833487852743568507152953664148099988017829282230728097202591264961923075132024908073447638089123815159847061519601060322800087811411156652158662676932763190986957150431044806052564861720369493155552723137450893501574588312999466400929932495164334266316723660844404779090794154878841049789254661571976430396949729181637137718777578768117630365955107953271187144396025009998817028736199265475043649213515803627458094747411381103515499858599863016979506644215839830273962492265703140070813565034461861224014834362338374204336041252290065644181071291971229817855006933048964134424752707534235646478592372322556009134290534137809936095515309551036262187091431444741881366954918049835128134597180140737300813021533799912056869787585226871425638613764135704330721050843938571106221313624560204075996240285135358605525224898910460180428963562818451080051227246001883633791095265857536892478320936154362055836143451014790596433959389632183077908018750830593602912358364939910160651085268974473902457485189738855832808504320546700303247391303010244941609807820227745449201872786376874426196796050471364845716282794454810127781360369541322425029414856579568182266749777860112452303235685678493127862462308552288617242027344946054395995314748231154591111003882188719173485557732285949885785429199892500429925258518385538089385698289961755000471509610230752150223212258337590637052695063384345752408343556971684320499358153669526770057576128380985687173115571425845871537036203893826323009481530145859227584583750439367684297140890403150251960475962815406411937536882504764669763723190770341080601290703115407118473559834104548409724139182587804649320154500150413399022968003566956937920265465051976509816452400260119647047439066941254492102541958664304199671102965052783576527748595790373358557849164139993645346767597254321656766402162575717576205614030162763359248515264978696506538017898059994672671309881449758607076996618592789751207688315194740606030891251869359907557954688981153496438884041253688419265409429261847724704595086265785527019958828503390641513845253998724608727651311271487227325029105373991384422250136242410208419346774526129939650848706140727589379448954852490324492102225587676861709231212858796390862274536579968616607897868032993038379626130873024244155503986838846486363888439765932962022658014682671391209862362892221175363794425049983234715594761499993723849860399817692600738337362232657239436440321180411732491262118373391847767953076729053690858982038963770407582539973192186893051144231844017620023817620570099981446443654714716025294315021021744397983636313310183646795588456302333150872666051499289170091931637490267551427659944666122986111236523447255313218289748392710979985346567522215879372862155157977672503441575349997607277889382912906971967997662696042697266377525973182142617387019507821216164141406378806096107285174115007836931898235135187595520372344466814715146836927030700077453471632761463711742755432208198646312995804738713001238304403550531679214063869816481647726074850104376966925044228558916553483609923700864079629809095735597679976875251154584156660316084759494835978684697260825266996203620440109282962268838717475088738151686430175073679540725230848971065332771028119650747755680723468250655212689498294869958963345397168920994011580164948534022075611569727270937588672505196590668048247302222676488465274751663292876684775109503679931781697666344101264046525208165666876396718365028990615644532910857760114581158656819521714334690826046810637845336208454521134005497404273460401500491086576906323721358507150825012403622372463041608561257929780638458975644893079902809260727022288210657733242741320933615176573713761102034326767462819674245569844791476189317628910870773385857346902186615317161036406214101122197476942589221516982097683725941211835944339973441415965158702277528149016123556654182762581591920944570204011523587880586917185559247887178276773284860132538883298046698552343395802694747543634306170717077906799428210963235656054191164811774038125716011666857340845734970203283135400454440949226971346660116564253877386452950516572822501564434128237201612188986481536359129527536122288641494822764442301740259037762586469009225003658967389994674114914381778406719124325764752192533343616040961939365885607519165976733830770474763097466392764064418792587883775290352464958392371402037140051392447484763356806390607582880932745029823792608052018343491548072379417579853058769193267663945586343042866646420681950038570295528156650651455397989682324292560528763541003139398163336692810673357232464383489558629638054721691562909230246680760957776724694756307961828128045019881499667825610320492981601212969349884171342777918353889897664373124393869744112333532827974113395393114037144721853226801988261651691578568375850341435469007449809292817421929006530039125279836395466580172106618769334135820593858822461528878424878986999367844917091197539145351623371312561377079431863846847669881576157403003108799222578899014468859489559013267801328733403259949905671696336475844198630510484724792539574946303292156114390177300316085000140564144641560041539960830236842476228958614745733644361515626493097896761071885675313637947512607289630320182043095394702988322314164238064424169494578723153671632761923015739060746207118215068984258703298654763701707310072220340420973344350032806981194078134560919512148714844061169704102453270674540504387564754419205079407577960861946727030399761317357871684694636566145234362931845044441847768729216486279895626307353305354981220140619291701326020366386107837194310230496924158465647978063516365052718305125162540036365225904005617740947840205805685936112250519482698967273037420666617354959337415700039380942491370753615118492308881111128540990035132365727767512409158298719558602649312433432608280091007826679730795179564132104807220844287479929212165654475435388254146693034032481142930803492487250201214779894844375481042717688583560530513750145314342368051988235377211068209209344097223453840010673966736182177121069080051733849783835399619270486676270870506495529872261157851352904699975218439257350670386625351263029690175807416701475219983039984011158513836567049690662079845130357759154041936812539183701402068682816735157015694361171803321127596489764812288543737736838696306110847347995884551454459746350760304149398707732458444672405818342289719902068267740262132429571381165164745713645980741933765060666856236343579933419095859257774777557381320378177945676161629136441863952614317377097551240815543495889242871202125879319135752621583739412064630533762550337859420827650767619667308639088955258367246902916983501326874982723638259905179076132190080454442847150674535594196846769828971183281460158889412417825768183959541542316389575971278295692859068719712036776019592826762693279880517399539717708089512378882146138483273421506669232534157143911296507584959806413188563252436778939820738525178718938295681053839872278474940912757928299996351840177861518598821286550501071632817183225743077898233359125186738208300234276250751157578875136919137664861507661314160490970454845393618060453278072002243232713277285061094237003452023239986489737508402101917956222139484407918312599349709070498622660307759299421572393906401660623184755787927985219402100685993376220983061248577523738342033447679665361121051329610059802634097850540134769462687513794672591661889191467637528624551804661104220887418126942791991742434779636709693949145976325693522363431584151946525148265684447042873340422392374489492747917524490548901378008202740604867882446186654795490693920110635848361102268135658331710318671837644972158491224892239559812526466519354964099284824911316846764514953901742954907506121338545895074247198195643332744125588643086341328837061337143148280706876488273277589503507784491512866483981044367671996664048781611911720724948372822963005957316784028119427917223901994561610597145973194934528249911467881285243876342408957407125356351849718984871533923532597300488890557596836719487010139211786799098969487418007239540504308228037709195855110582730560839244251889224939702780230848874597850659905324483320307306106901393716668217483085764746104728382072985899939265980340249883192681291513690213043601808023341101996461414718044815201303807463048279233395483474107560615559920934566406465642913714473111936803063581609127471571585787181722727065247612701271295108936154080940251932220471518725875654206170954050539554696194756840216523684101696336680506824679227934024947928864030342325426268878131782868213759872361751590796190648015523763356639813988361702228674026226169069715265915315893016647362458477861139114922164279624262378011593955726307609117710398433606753119636237533558281366456373019394808072883381319669022415343377089715478090664774650840068677683082747207858341876090589828967801325216257947869257702840104080099903060196403006098762410798282300677455501177203415989951890782538859562274683028072733351907998749205375299794342060065345513629342210312390819712211522078659000328665599997820888109298160866916607737276583350427057675802401132688265975936805774116784950965074154190398817142496887365697662302621131897368889064508237951876825318986573773608884252819960157346370254176480590518440686111083608031243796120574399572534920247237260592691755091090091787364333837851604337591297121064692990964546417240370908077764331505473700622163140313323814302935133579884251108184592625362153471742965871304726450016621622361188765556778859843474512158656023187858996986004685405195803133753962710935702047727478645840478932795733295430302640508054386813562559654868288205428176189391607839361949788543595838753878626847045055391437508430278211572987237907681967901705337263627235603304823646802345214704051007837705740362684723520339405677470206059550996946481816187365931735825340482680355522316271307969230895355880685530652629885344003301866245647512047754221142268597563570238630816577491411496388873137437373278835212213108782107821613284028217605099513114963815329294380411901518430523051443366535075081567821260952083049188182962817961188886990896315053766303827020660383687767265994501261443016084691504824674819137228109822157652136283219513608086865743043167319912805154696403376326072531159435347824182932792233283304216589811524341951892150575293284522641298843497353338839951928882585226821293626713001871611674309577140950825019405471068685792966164063287298604469035011019317818568601697805475705856791013196548948544843018775102604464464654380676631482114402342155504623413581547868988087831564563686655790043908034613687852320358483797999540144620632749276955710527637721670416840354984719757995311906611892932654601561860614295876548439212745923694036496118574827199072863014302258006408459868400380115974186776737338819819467069827308663071521159919241997246594670170069375147291913355206284541880307739971325274672676957435253802183859353064830623119750801793510496792408411428520807008200665054167217297074478474950915603569766492040443702416496306969776090293672064149789349655211982382111689277228287819675170054329218396011170921216154476835540753426638779853166129493544783537968812806148075274468837999513794511352470084500341534993111978030263355725605555601134143050823521082804494878837116015783510412971448705349121243175265699478314808768352082566438168344927532844674678709809594698184591210082225711838503690210011824140283142719824107019140308155279491522660751827586042388471620836833585769389138040457995379875775147278486031735144818278860413109313816756274342697547994807674961824552290276252291350478036537626108743176993051769367788265299214429672197796225697000344165462517282807806319053527178206823792639143799308934834988747616729654606736908864774933081780162374482502658448382765382439240519694621143376177729418228532413663510352575246527061225582886816768020727214112075451781565394041155791111257958031412816933705530436679598276151682347014067826107915075894147075383993061761726409022874843233430157905602377398106352005988709191290001513194353138349877590518813197718267564155919649258019942600415943608574214769742587360786464176715175005424380557596673172721586515764773644259485901302149712280808843647962702470122067938391505987624816029813656418312958854487525644696648770648568672472102602689408818473780644875500612187652064708848623620027086218746011502540784217397897084712415316574120748895214662066769983310340606268919070437268411119189011485077619421230070999081982548744733768382756478210144852724236719624734159115124023885037826858669801598676728207818262464443581292511862282428285517061608206659590552248382810782983680605571693093184898088464434069944632160240259302683873148738623504027161216024215569143856557142319703420680524395834148831218857279289130279421152890000564992710626861756266771144813405699243853329165289135797975476764452505065419000187513132333362080258067952841082327942417982499462391362876852918268667089939839432630245951460263879859022559531059826351735337995854904380190862665486911455166578419567839376930999253834892457619986797824916189199644085637778678463082605063856588028760123026980388829749332462537145304439682450631560627281721513502360696192506649733305350441832915707576752193702504987925171108272799461105172234734554405357499299167381964740718865283906787280197659756805117538607932348634550653060032578135738582410280618026793068397345002855916206976075215270290435093669830659902554446702141541749663963335494565158005807420219866055624441949246617782999580512472623175198853494560078094499267541144573503135694295532716241963682450787492436869385103206076814170871147987969727603782012048040665570898473483917341468485412781862171346201936787399183910252588771683892601764543228002799591083915362021720614517405050370430109124405491106531873571884442303726903898580772324466959101456456973045005381463218811514124127388677407704968215426919847943380998746196985701692893854455793992301506681653321766807431462337482636417693955278691580674279369414829708685105959240044586599589988548962915541325525238909681557625387051778396060713615545856923659390171229649463822481695193640154710517708705117508951246572917802735880992988606394039325267030140654858471305257259059260787652036944877007882970061379650186521143007778988382684974733887557762452652588611427300267763173981515885126783864511273016822280485831571002545450562911190128177084990387775409258615394418145505592737627439324028484097122615844950492694926807254687436434482590604567319359525616610715277663745397712110569542717248247873773223039610108101452250376404903954157398730690490875924925887756328837651051799833678495340784953188442553706447258880485475002293176348355683631913381707577943563716759098653146105376629082098261682988269459780367409843249779474428986324064316728736175212260273305586280901897526225529369986668761734047529920890326104393613255654219621929578646094174799084055541622595816795822793174149956598459206886509753218885701197192119340250112251896224218938996069983300223468849722929875927905207428517635131146952199316949629242742429582375894685750017890515289620806460958719756324662918203790102164113955075323174356302795686909847599341482459855890272549988606946362917750144509668818780638163583598708702106234298574618414151972425228992594976972103019430576304331075528923408772125373277723549885280561319901079772648573350947859449147602013902105860293841071981918103960933313720111753310208794824699085786404954490955544725136650683022146005865166966100937790276487626675084003744350157297872061680805041172027167349937004456448724183090647456894278218054651858941189696674951032152746810785290498612676838417673123162339873605067220057937444354796877558934637860860527536398938733612066903158177948077533398181586582236956576361372281179802821945880794931610065904251450607736378204578456860568830756354095519546426636186586730618644888510210345345401994961188426868554810828181222531313029286581974758132111062867026221821927251087912390838004472912969175101959897499616889906319524623231109061507414976539492301730792809546324375472333125428385347554506086293632740901759115089676166298802680789858855390335568574515131535689003816333900951364097604605663853297918717959305478780012982106806960122771934512404127922136577437809357116246713740964526153559725374611536508269619126175612673825882488449585722987952452943661904745329729547918437844767805409253219970693178675597405991274425447336003621458866600145741192857013800660580803117030864058035270672253402803153219872294261646857602443954839955696353301878383707506755916333720913727801279218067694562669636130367443901031193837258294925672939324875920248771278757763325903021991523364304839916880452379057336715341906104634700066945829685917381130776032061849982491081112958719134895895645081124540172985608215967195015000793251219592158809246859878858161882175644289751712975161041945082202897456133235862796794661212229221858512803391917409177097006697587856301728223432728741679904191567670837304680485060036847304694119064113082214131108321617980367551731398497102309686595740721186114488305131528087046903052312827788155433776400978974309965659485330723210052766530622482909472987389123742897606559673776113357157046175447483405397175223275828241442342192158280192638360241773098610040578308084533888509670445927939718363531810032514630051441194667444635323699476070460057680602593369018008434518322471308054489417432201346551521532281049569038314736400531363249080804788819994888270567898052698424782962283857049342897736487805036183767931886827988373063846368544560329894082249103901435097858358579692349517752833902159219228065253988003432049993780599553509857812566148284035257290794540640546177302605288758699554134968143225522269453255729806392427702643069725749114487166663608272323351770778653855108376322191632897004777798411681242290626643748734235735897779434876632610454005370297317738037823751805908022985776632897484568108256677102367494784994696586009383776573545033161761857250822579894277538025841669495080078141905610704948110688831030170158546083557814090419131143279944602589521267807129144610365045293528723407999103381692066666495865293455423507971966964220932511448166375836550763056330553938519882788351553576856956990046131378253850890381496186256540156715838482785815884173562490025476992044505759281558364076829518480886689592682559531154567678536353774163330881459785278927749933112472321493929534779001539586493126252698285608717196589137695968840637622687971018230824395122201326099834037946597604256543089571552896446119435740422150667852214149964315181648335268634332082558969104964372584477286328501630859666002650261834660809054235034203254307209864023244787595268713265052881792487091754634539453129741321107368000222034940222295486947160730197667301191724862224507801634683142254414372798776076336017020122301859151804656165692699289615907910008631806813069631139718672943255626008883164696586558699488695360769584855438523356124391069155216417035883636206491246351337766210481140803502813248958827251839739610836023606841347596091278626402284717857621284572957633149350664625529985274177214474709656210313790817822458238335959525698614816136543843311638837442986499448145522588611747040680705601527339289668195120258201863775645820219899925055107162284865571323251471652024000252805400303995227627109237533259623706678382069782712662047023794910782008805964314705598894421400801809758774882724414423834357233865176975879761751031980021669648452486214594695846879379201085114469221851397909952705721811423428618556328955453153853093369799387060496732218428819424570641170887595727006559111364704378067763272542982520718877634641348179992875676487979872236115341438807911509976568236678784544461302721636620863817790613073258034604296304791056724559072658319968085010163566767973393218962009943457179601954372416272245337096781103089249572981822547339134366603165279594229581733319492184838390155754073790999421326971855157402407840406864380691101073567189181726234177358390249968548301239373791600962901466208593223045796328534504367340254209601201344098396262837646076187411897383010731706843126576965946701371044699820326106741304565012642522964576822333093219814285205673833424443271113749280026578946222423716599763089465870451487273263683138889064890533979982996355274586299976235472645441598104969749029218325950932480492461931403128227189819624740458288272454056541347664217403394850373409211293797274880512066966206068892778412524866994008504085222918622724348871673400110096456830142718471670870363498886275976681899057769834478605654923278846645703990562794525404908315049485233435349180889489507414544896791435390063766641896907554398466894912852093583280086274912324610558240554705574141505001536095579033574797727324738883393927818836741563810200976302618172252210829836404578986334376032429803056995964888065518160107604584815005965551188367276576572284936114742936352709859241630873645746867096457629979106650436958958649614386808030582759769489882474422909872633903050918361067113870963745862655685107600916570313155510690549772133333881317804456518873302723434909251169978939742248368086393477406891010058689317776823106663721565791554520548837721120939086018904783813925033509213843652040076687798748254338262019736265716222827088976593131875743042119576738884584221307155734069560416626847826603539535120372125287976933504671250713752440338280563304103068347219144683516793431509771049770332711838199541904449230194036314251766022233218765831559431284806716022184263561705128087717784556900743028317490320766532148680504688774819822463467258344742491599940326378394099021227084633639799370401000893321671794767487514026864542900822673124321746857745596008461622901846100087291857587745758100911774638337775721634841033053834834795525829868868487362986468638436048559946396975041252900874729992044146179054045876718099611524476531771993882786737527663880772253201994589236770368485445064356206895189846740833683163910262221648916575867957314437073232997006688678119702906294052142745827540048961287185537230092066058946265627441984960378643045605829421003186831196933894006752887844035332251515725041285636348900183138130658148117546176295050475518523987633192475902377418773863023442381170193232209889471532460547256600750093049926018657672812709165458313810546571094275343721612837939455745622294756220411719834772849228312249374045506773315589304339520460287029236410286090584364414180561192734243365075939522240301121040540010696675571256874274846990018272936604408274998232589162208730100162326516983762852050152871551773568165957576939113544039151721866812578823340886001835923667624611972061668059927433576195411411344846554634436248990731561674444348712738228743847886723088979275961572618638957453566078743157734936836316965677835553226544686180209900369594729121524669995847298003995933487022471944425562400465587694477622622099134867045424428410741127315091161616557492839955480432354818797600563807524793635291178828358986711207717324165400812073023370693682675260773635688764664891095862688162459404859054715493900960620428732487827879677393068244572201112936357213410720095380643108116824190393930341604310826057501507253593995873039365612961967408515722499601567428941740076723196363897570314803899396630486970249011052891152945821113685994827625561994963567091606381440865476356818022134808284574608372547979114259435073976763883832083941296775206975429922861140074098385724834410890801589695597940257568659440351486627912753462436959162091796298064941808393989731708592405646914662256212193485362129872956432479168884577545857231003596893572960714717203076027733496324836481135596560956776365579309984494576864567380075426568820347763350302412560414020265873940514909033501762186030026348946201189688400942670172725714697031238511460981871434656758961574672047803480787113569615616226035556577727434087854838472609803419556786803225420568974538569300665760947626207556343089770017457650926918258789317248369977320355246330502967535461309011050594075590838807692427447834996883954879199601945182833296533969523637590978314797496308825190683750641235499710891046642569320721529322779442319755785371804178013084789720351690328792734587150087588234496387667985088083537438196048446226204192133647902895436070000798375895281575449661775311831134987814098118327675749712366996190338021453099804876136203305449589865872449380580306946742668477279543098070744208949581144891184926296714362881422145173735935052816138888499718651353229222800463876643121128246115164312987737711475534851031718497286964836270490873087729413939788845927505602066750516812442081388284624358821878480999773866239345686167163113820377805836834232412142673621893715649644924470447215227468393710211198150407019319815970499513047761684626603946498233355757351350812371044839987653181652516257423114382020729509184377557443467470751399714582214608984321629344771521039535884693739862755656083030677114452907873661694799140030176268377544943789055489805749178574294541244973107329222615595042062206147572122596739522298315198778289660882846244512324367038945362833655566879839796019393847505625780348101899314480796586701797177718012096680990134675932761251036873564113977840286195972270197884860024969516650735226875815280964033743149157654174202605298188877749052802358425020871687860846266721681167604267374943473963608596681825140953186918269099156575030913200153488680861184586088057197604005586877603278990489806974827488707413990932088847128086722785010145167772092213609059759485544378958096112664935346324981593100082318132539408658020672873342316386547099855090988762162261697184578173649585304523139105326689279139354682986400926306905657399471591101783113631763521215197103450045596864650053881658747340846130471088214444434121718310190071994817210710645631451899622392613226556887121929959298864935863199841400811240414971445394121390031811845601948081352317296164657704442697799870009588068504972326328997669932274475160750877315433154396791575593413672431931781210596480172330978487609147131169261632445768702119261401933287140152787753787388466788287602774183596624310129481731490648255839103693742297040581302550278513773180050296156815303512524525154549016839428215530994934971824050916222222912736694037876246443399269621410040672977943779458211903087826956435987251032616606886915138837843792659198929104705466908812346475210430199799221736783313916764447136188993731476471423509217375922474683052213027515715469637731706210303006766339709486258175098946088155716039121855633121520838712654568977344726356229849509858795384317027681815945526211936795681293843458696651324864860661052725333816641526018949955985450044978304790500194227247269226375029021513795154945774297250633175649901316290346878912583852674839516747162259711736408225696114359247139354400828687625611097470539002305594515469625853212913144062793500590166333873599597594251079188331564967710773823838013354170588324629999367824744182130464078268828224580064520111608169775978732627216400634146503047735297545165173866982909787953667016897761287034494364211736756706388975010980666545362561724909729936696812865725929102632730785602715771293578071538624843456121150098109202692135464343903759060091464684817578411976321785095544256349556818374060086518185065516101486586059894587975425344316466037743810072952648545935532724340468305112843296366286633012437021560178179790437549833879434285277875702686201246222194610700963860188421424616532685290729585911530358076521607832145274534393791233190631592160795464559344224895388383018390197028896105925151281638597050260298047613829522702401458496729233522872826931053731087259827862814714466377667766110512583756877976893995172016137293381074923539716046741405164408981569820290325905947940585033418646925677376844774649201581989670680055909494932830054068751386988777695936151996050650345480793972126261717284192307871636661202165698193896348023039532308937758442132054283966363333652150436752892821815682551134658662423239100438303917223911226968313658235378927084518721425767870112318063143270207814092619093608693337848776630974311986890082468981739341658704545028485577520862510232551764757076304829654104094926380876102659583989531713575448783936208513492248105033362610976492130666023685011302970958241217032752024090282287428425164856134744729932343237132971347214891510318826038304163572155211583357431269928099312353570217556052650935006049023072282809526054853974322454740913931843830804575837940094476167382053090337983739696336497754433459574447966757105363455670335542527261198163297359411440919564694642381995820938588419365034926126995641743999999797168947423696006917554912706150094876664455701875347758535208312789257235399737366187053612728448693068136217104703657322906483152584904340178929489423589478205000975900533983003072864337203392652180859910930915216874921358792662983731453418750700894769283817714489522719822009750274419661577358370862584789779487453279894536726594999934819699269244541488211552413976640898089578137320967743810164369366519559787851743498300842226185447533214595441671138980680841946523686570663981979674200803623092146061518003872234558048603652145841818340900241660501370680083559169654735491073957497802918703091140264718357013153999040287212936779215919753299025424860792523100523259521781506771860483013095318219146462280621937405279057844872394465147682541142786488896410654278155031743051859303446400139840407337711705929991518743223113747846086272498047707632237623187232876090342661972235392314794961871926915113975596151222550056156829546803402689063033480807580392319202982222549714769041918167424913377764706187140307525444632256816391712865128638149918014570047974639067028828556903193488415591425470405543013091126852973687373639189481514173074615542878364953247364248975583818574018217489170396615382540941666667572524987851611774472393471861772130838478445538677056342801390717379823737316656239580682866034856026285101265114224265587308793807987077811788462095500524678781080152428759950842009780737601064012407358246666084944834002120972374173620339507036126084159758675319528953838295687739011149223913408301172828300226512369487983313900028957337789438997254873500017139494891379689616494297377518461102471660142460297147458080038140302219706467453201632065877239531847326507880476343506694732400854362630109315884311613461795941280571135525841946074075655031055383955830391424854790830186235210392341848718524343269255134631547190015618967382105493098414304908454610295189591474073864887793759821645551262517615148425446987924838981401030063423110921581655716707815745239501560116781111818941299108620589287154197980363952855821047128057979108038984664776842870169785969972208094342419662460793821461569546229594284037281414652531574125346958040976751210883150089963815648936176137309152800408111145997033581731900463323616993390042912425726269176304840074322315823005691501824891544180503473845483267520824228669284996114618786963672959967833498775414093874614159819328057744084084490970018718309773243380890902487087822503877903892908246254281991135609091277344375782903788158543310316406177218324699747167484451877430990582081240342343677181510350437882922342360676088099809205514583973513688541231263176966168058162191811611656380876281041606629209373222716465021840383207955017521423995664939628320280182623613526022103813633582740367802151584883213226141775349423191558349272533160867460865434677561506336698823573147710478998904247984291388483578968884993605802088535213560973026806272815182429356100417586236787277423131926065102272192910452237620883331132234657005831606069920866980515935525787444426043091748609692498808474525656661702639797110738333813730800825547498246395366573818295217186781159635244569169783571276300430401169165791832538802116537719156791729430319424032632315834574277447013541083052279897808601826479195385370351631034655176330925740097432305519707601315378139564514928783826680820733038758758864936967177531139547031965979137298199027319120290102622905361703364643249898876903710129500859594900943609297134417778239995998890907605940071766077492075255101569911651677320181771964147076122977515643556945644592595011637073387570359026499015577350211417407056895467713715268326406461204958755719820656166836981333874876959607769860610167493400729935723135855215332076475113359712886865498451174368580558986146886371123377623759127795764522288558964017525348887273094209069373287077715973510301888928825031699755771014947461517346501128025797993440584218757655100524500901007554394654438171710083345511108677615879614019114985808348752350399737644817685962180803340501036973779849578795002021307067171345619116850908837130433554280728794741351155325193475424104859889825024655687327466989982231019393576747029891531563573015415863764401760483948458065698095587935778989101276708964291531782576535245741552256939349502374321160091045053138313131196420555872558509430651550956011586784013356008964251988794536224693730326622838209359958990799562284356468198953588554303888745565628039517114788928314694374487923506821916942414691727179826313745114490320324525454724750679946772306366901539058441821307709916466468980902522040729164455019137940951036594333827855876652980544390644833309099625053608468735932127916687933937517424045853977421571419267765124428786486267891954979542913532809963845943379838742975966478504367155463976064463345826480383974599363194141008558889482575922059702844696844102357964868980247583069097841078028065803310097300929729919185471010741525002508050609335930350200984702529822565692057039130628420033279152165307234741297041754410624089595229528195956967014656488929533036102676195143386548010147929625166630043700949442780366038835803932826300791754978945163322411337714890358003731285557995183256412511862361776801865612014711948057358713415048228802677914676904802083807015296828708693972786592774295599083791709257596308665425306201479920313153787510884297757390743784808654940466706741864025643926033850613921676804654060122325444733419440811484003314612845245831813888096490312301416982584179653728977178446336265726971003263151967408183563656559600895934882718906709335027385371576497962718698640597497073816640535393281945494295710055917905558283462931370379898713835761017213437059192005390479892614603442912713761291120288970648775544823480998353774330426165704561350011446652620966279711375459443333021589308753846249669896379856128273082305943746978901152493778421876431025943295374220810787387288132429678867680621771668636525718379058908241603110461195805543728606514453634824049004895749768181050959102275331383184865507316112272253554915405660803832847046002339764385979285853850037017036088710406612975801877134005213915136423998355526778751621684416866042778358613527143730536184396603311186105764139525331932590470161975269241587274936649101897075194550573084949336646642210045329111012021949153960013350903968418339911440469766878671481336139768506825680033242879716862328019704427401142973516190904751560732338973367476008873443798842371464890584449043231067675519290105161786502166254604375739472587507808149520893858292293949799614894142036717104779535494621266262064942781967588356702525250426739925387914056988649030515432564007952296932382837809809462636562343339814625458886753349002827080373046223065915323208949996242151577559543560839091521748829425188738369522338877190277351153046011667025823461128042470193040642149852578020986876802187487372045851101198001317090984349296885709280937920318604792188517595399377794177485800687029041100215679479657687564185086325359020614127513381733528006897027734440591418028427775934966063880852835283055538863668494621518671751008214452153949198767365868361732625883696297108346945680631971312880888141851420361768984684625953598509114677563862463469951572023359005876223632617965716606449802098197463430404713713300304557177373237498429656103642746929274818903653099779049301512115929217219869816724616666427892122375191367324509218467936352102953263072443757153961110583134777260007260113827632701129543550603868387275733154579619409673578102673656149263575930700077448304294274233153878740819255125870057393778807221553144933343968417068379267786879715581557517117421056260533253171074513725265839383443378529154800476045228995768983283502188253265227853792139835221321773787835618154201985391928167248767454412136450366760345906045590389031519658396654272267364760878680636730651477202397025582681690323267032357535991043333811587852964989019812209515870930372326514883850011932620903326309321389133506289450316340792835043548588951130202619583043191497270864420802302707263046394275665245877042091478810080377862877332872404175337078090407909932001800040729828365110953585222795269285750404222513583651919518965406926320079437267138038880839057864629957195496568506011840873355951292391876459411401683442324507356673972974219672919996636573389831752182907581078239757766188830573027184985677464699714272971347449491700900753635956401354050609712284994729236749159518116440957417223662338364603166489925914513775491469498740426556949799279041546269995469724598609501056058821501854764764901416992056379429584322314927392994052290940868415806663440048849604600498552541725134088943059775934112005164747823016899378373840096357120537699497188984069283562423591043044967138832703917083010668431031206368379338655094432129505657822682350811623961173089901972164800292737801069275650072490051332075008164215784885726831162072126355049081474966083815360783301419699507837088594766452496171173397742331232093934607754371346446455417144882835213130465233850881327219509013257494689853190291613382166641150423894086764170892539798342229044055958203328193276452827940781920956240894501481507601840608957213746789265774532599176844926478198357906165401719540187721496678206309288812344515735075202435589920269220150100810365412684786771552269838705639463070034948135495751012795815063158289479634987834620281198848504465420741534411302528866547409961876587942867103171243529886179396774072407762135175247646598228764560647149557553724091204397735792284950228959454631223514854525806678740691334420568451104608108163863848015463394091675298118593909733580272276004077774277415795702088567884335021246638559661606970618461473601607685413164251738727497061691412787921115997669315017093789341922939838344580976567610286632338369195275494308072325635179528652508234550175786489252698367008210581465588251731515779556614323824985439720819733636543370491012601650441275022186846669303330254176963332114923314034924535523028225383581317826224165634480654187698490463194028966988004689240975694532732182626073237719887736620083491534114316777060506157848888052955658553321971047478444761378142190431312922400718226355766515609827049919395701387957332309889228252583596377531976625601825508152700408256100173501555142835063088363154406943854741576591732480492877502885092442333476033194550668270639843780700374669666995814867941412426952164412570718280943060695210359505902910659665552509309988897618885370224522089397051641605860335440197088960806307804497278615256389970025428572724845521948201131490038141115194530862081470278222512957666553112129601848352436874819357060536063089471424322954978650965083332554036965421109589619226522773293471783428712279369662617461896629703213182470855978052318932688379441551108277738531597832255352086902825855180848835325904678839582587625252497228699356055119389149849039734262851245321240027993463373586198674893827458597915497367904839501272684748770210586651448297211957458934353989497714886878304033890965476259162919913562262603022363910817474339264827441720246376409055960632398991029684023471928125950136491745054531029122331811350782801907264108274936931195324478528344866253542686553594661783028327528788892790885100492146612394793249364800072450431500761812526360019325669942200479276827643167949644004201957768770610521120371335487275482131729278969397124358315529951986460322499635268632033087397931073644288805864443815611034004573296273754352645804753198553014555486082077741279926268381379737329647998747614005852837985508798620232275174662695884040589835361811189588896431851302139037091878091591902428798021220027714652114982163059017752608481957516634613527956083770786205921521058766386822436491277981703918213171644930760559716622597225823554922137648170455344182043733673996545965488678934654100851365742020519921789422876975944271936740209312208099064930822176094110447100286217977291596597950466124777892898777869598152161260590056338932782288049212000580864828757266590637970921861949669180276509232765458103114602226401026022210171393488805820306054996676994426675118118571657275676082520859783057105099325450960856785253299495363319006054087780981246649980698277512157701730615091749680092124904520480658334194243838920490779625091742470439633055915656142930926059497326939844056609958072694740253712034680118666177684389265975868239269880846967837504646117784252474027367586239597651728919096451848261653815602585542026693723053423544156599482289053887849390483753089290212653751959604418782677979182141235010589921150581809526811742377529833993542609034673770075960784313697918802629071646052963908512187064178807411984862291046807168645184918524696340112759294266120300676155359754446141670827239109741419030043706613363824430814238270745320204519377704700243540783739679684892761016817299625717595740652428490760283564592303744903958388123622383716380602542092583118263646335320794309954116803206920540641158772140580776862051697579267945906732173465181849236777181745498972958280459948721725976832460476561251938434308878499487362643793194840777782835740977189738204784129267184675526044272248375110546617792651127687737668886728507622851518080512856117920883406791421229470163631415599341042134027595757345569932032920850724504744497024763896054312793478787093588241263397056570403372245162109013733707969207234945457415211622387258351128808390500405723095839127140028847098787798628227581920055836959991494681416658989449375165708834742839292682999198825621938389365151806412490421664216898316192810195932156383561495111053112201318854033491504271146279772944893834968382759373483750820944843426782464009083793967462207860331657881590741792199497578104399046061704390655408111994699510727649784736594739442685071995855805252391196907785757086847445843581781602722544547813259310364444599998452498936312321792175269288364433941893072831202122092738010803957657577498232739257431230519136494064299681154463355447232826208331864152186054266398918133940758561233303850753194950949845875668616194883531692787761432231357133485189637495133382318137891702149288287004843831692053586857990539729368548930220052058116223295918198952529681223742981153225147859173048473388859780915830607837343816910350093860621741927051852144166706201004507542345494227835728760508905398706986246658032324518239978838867645900560796070401028627849321280492771175954138198149491621399894175941079407187348633793183581789726725080223224719689841663633057635664128998747211708174128578982303663334782912381288237336999572943375324034114704253251923230320063276656712756019777808480881482318071867895586516928827297097008891978520338884379195789524311796552489772759512648229912875588538447135032447927330295320204369543432114943840950066720936435680697787226591471126296846349244276046653192678277322562417072322224166861891809345878634760546064131418940294167751686415467037206183056147510259358489535068893495217876348103230401781208453045112698529918835600950039669770098042877540348332740787212519307571491754055724893171438092776943147699026380112453850685910452226367046349662113110964726839405619769074059384817848016183743396567782071735073845480973536008444895369658538365307991045019280504969007137333971945829011941877740411490745079526529860672867997694288950511443877510584516324910966112627179063663806441353828311570657605728856684762079411925623735674793475747728971144098336232411338661498505166261300325367514956815318798822813688717426648085409471352396000563235561179334333749892134992944729594736156333305411618419800484497557109787723302985001737837115898807666496806535603317704653742672122479206216579671607989221778115882331950596228420461890623174512024362651142836688132285619773001253225387786761127710978735270647953897886050393509480420464769109111637018260974676467600411993504362710028943788180133785016047107600692472977158688762023117058494638964697992120959142820615309341710496195352720481733971035227977837934086340627420183396318027656026166147047290115451380049297570420213280981576410348242673074973820794923633863089140760289574159209048400209600571543721219900001010058477677770476807354236599674751063574882981649755523368843073494578106695325752370590161632785225158453541927820570450707383192618296843849768156203157115772076403784783126574035361601596804323023725868487209249209696703092146049045904948471890097104581398223277179354175820170563231653152919063393230999659325214261282257183626754265267223209309860668334496660436209656261416737860559796489814580624323006468792230883149692060740606856469987663400818555073530842284394478763086398102616281559530865610380468050773543394951405925646402440974713705234137379587412014381240014541771369007802253153230837669126547931453343300859323853937671930015717746079514900579953297948250030051345459334533156197935274409110031486171090236445828044941312179977258432528873875881791881406240647273111702693560657311332604687385850601842769751517499117083415758715736633889851571471369440738237730550832672543397605492393578800836995343282127168568937758591387673235025253489514892723643083613004656944849159743645119471738774390184856551440393094783931039873826966093047505779389206740600036705698194655301448145719924848505824937135955215578902008323664994063246906970662010895680160017361385416635001965171057538485500978927894055435936064930360464110814278208206867240346053503678479525965655689218604461554408354601077601240652832336429068990881899220688782159337047319585157037250044009535901284196573399172315378012789592633908162026988002211767363444047324300531643141139156225380086986074368578550305718318524372647414770650587704558965041568499708311953477935511299486449602536760409121100304433439108963819922448707937396095397501650923032292386694896155973017718680489125656475342685586309717916573578906942041064202049202454879314574396758510670124697711330771042428604698750899762046870673313463234048503164653135017225764438893104247311354872701674925776704804174817780775453796624816975308427471518842526594972440618292321967674304426275431950374085606253695617672504733056697487076433447391813920230745949046337218016948645274371044368042497082712734189936508966438675659907514266340832470516840910226571819067593923563897913839540245584527818692735073580480498367687531974435119127613956312887181263540587367151641153223544416972871551552596586681601524869356522334127935762097470338931901188472130759890952161669328318339134883151407840296428175292517349146995051043555968129250695585554616066034885475554171420006273154342822785060847486057000455252204886626566593148179855490162328736805212009209659966305869463186030276183634973816835385549931919637167632535263165065004619729540792870837585570325413415455144126163698191049624126923368801430523577701507332115758318618825804606083827120915354459674231679759886396100254536933454092605704526256647146314487563176397963591322521604900272020103193676376271106359173080699250839476332899655371546553788765462878782592909258647105255849432339405260338402288059705703549251589073401762710633440279933092419185545337801407971887544950138479980738759517361144050069696928987205728859575070821778137920318827613284131942016772206504335893362139762278360731757133614991918843322689471821297268037453012785482729101005415094083127982698123773750706359621879995756070716675490019390226737318689971360904599120277861638239885104009477700198253340794268510832540724097946110442111079383927181609645562686515913670670154822334675562376685172734406898584957779840085990954554496151802273807376711656609358465523774965768863632384351013199619822866227153458130633102008972118490363191275353901403208410649884046550455532776749080170653375624716905622370519783126031958782033470005928608099158641512953864309119178291181107260426049812687466087206514662309156496851425709701676865169754774303165455891000045294526687507346975047315394387177650603928231422680048577259144249347199139853785223282871385341042905146573545360017296429732030135631900233043585812371783977047043002532081342165169260488924457698212820777918501908107642279241913495965928055555573321204241306346628880726175665939015452064156735606544753979167641190091326778465993639781234233394324147371370420998680969705283426499004063551193812455657181448412711502854555936242693537535208083572230552656537437102858065064192181926556176345189611499769011229364572531088204796407089770986512802077364543603356641059550990001445052727437659421422274623235577906612317932309179431236924686885760866625029128924716584560177053611379980446999444120271673992348462747633684882052220804499686469777062900100536266330765464298817641617314461626322607537281994465950482209607039930389503563810632111396291884925996386822794548191346388122785296286532577088316009786280204948765175540837642088749836001992373102498159875126485172055828776803707445305294657413303840464052507431412399380867661924910229240063838318164974538255456593644357751109996483269158259892188554185248234502568185710186336233374797265201600903279319139653949075554816909648135016398864956257131094268220029068789666821447982616293034505129829335265387972670848733362862159820578791083152576205944933997335238390156442955676721339169379901832794478240951413008306102821874458946227002387873755048847934135467736996951788614037943235256335257296549006324835587046809396293657751996022372209381851689660069290026441880359009989884455616045605720547648169112824288244206066420431171297749952212068678319762019184201053116197191055085341994285897211443637259933074854070323577944000699094891837308324602294560090411972813404971071736357132422731051310975333957306884139236165179720317648580139058735996095969432465180900730329373699871651128192976272522308919246650453997404975458380573942886785695590254934668560945678845921347326409487353479935522357468981395487841783792054592607190478919953683988970251315670086318101113999256770946864293296258423406141647039281159229689262392640991503217448218099395367681137996754564480930493046658526299855691326868279810797453751513556142910955471503815963693856266990347676569976774004367205901822711657662998519396349615366076002417884055223189161798027211724156463441788082025759072111577977305125947755055124732923670999048261198786268776014372741222141311718112142371428691173180212905055651250422912695388864820156565540235702326800171840064196115322928815855760061588597352596174243230277554660707480753155795500552174160217299408038468530638116998171434018044954512745823074360327144839133984983600436881528760873377125387028840698715993250766172601215298682927649453846160003443572920951489371226185665169408181071849141631512837336300502249132058634691661526619971232679936409905924296087058096580254152858738950810879331177337203045130657634749195240859122923731411402373439985249815061789886676806629788955000956748141967240336980618525672180925335340829452904385858735584593435973691434665001646401454767155382846812891291800997866007763507467940779818769694515304868869242570331673850692914873799574329475548547959038773106447892124634708754724135119998365048207637302973224762378758278772840422049695799112311727518789945525491272838572537647802866013516859153272177477201969324723315388050797987635624177044223226539506766575363385061777307365991196224237607919146360715632299278437652473002318071777681512200721623922380420435113777938170269357427279276972650757203911448385730220240034886236971680462048144822167433653020785364062147158320919700032412412148975217393734306363280148441149032448412906900087095771578395530300359500048259934535360977324151404548822323955792312892811452230373218298161124387613386561645897030715493006071857292032971415233189581941603919299060695681155585260903141206942739658115663027751007949013017132690047819878664502273741256376533406111502193802856878777815831603304111104040440630218486914041071672664882661330597130844874280890096170531109664012716108013774870213259136861976484861095391957292722120154774600605334733615931304552364452969276268880005680416918716864319199377744392272037548687539896167789937714669117507860486291937337576186258105205140837528197193800397509255825372323685312664277218631931590733433706205532048776427971441813112660041022731160889539247722406593916342719993636979860402564279237337415822661675780132996358501754387956231296485558890178855535014208459718144697720671589669125708773609316113205770568397145100111540008665012558551114162389451674342117215078037896309739070116363291392042326794520324498897599411477668364075012419822124802059922494994383991176997512766082304339614605552436793710116577150780888445193992763866051019069262480297458487070393001699547771389829782725479162044747377967119755285631606465633076102312243501228087946271724861655136991910413957304727143224185464979509074570944920104777469086197971222001523600830889052652202077834919974673631967258950853481427050697468526243037197466290869147272831973740588281228602833034895157442193771927555092471930728391875540220033423155702437127176414620508265872306290377713335025217271433148099841725198904127962156730820674963100154311317424274675148710973748504553595711002694346611157731605324294038022850042072204878558820035248162654255420242984228159729809886645837341077614165032905424460962808030411385917348828944673531796503352968682375146241409370956350918544916969573508786664820902962821242237103533209737933484433848130439990420443216443425776055068486533056426092502896308159254943133718846224569705798210840526077687933368302281438099312533917780182421078286906263911071608327196346644908705911413322342217082908508478612784468458384353861658440244603729241081135341142383496442560569602038896680055193503248079742263253583882133753277126207263259048466961938746092871143744658592703196123672249866252323290815952299980716191131781468030726367370996988128335296327573425003451894996223308243933218235501581466628040201020663066499343367959988227173522929636249559477443354692601130546079331625662837938599925987398867197833419838710873002373622021515969555005707673114852956168162291504506657925482596297518121612952717997534278114719188678890239349621146353098035678442651379422812873068560331378552638305179222509445196891430526025357583257392655942985580508375696527745307120189872467015162080743068665061006683533028878291891366825708491653864645684703397362589471318556461262653719351043137624440442017488838967743551878998846350805170384980307809514357697766030499891380997176885506973251737767826394009919151857817193590215902132876687517495932813040632547933817376166494287667103604111010243520400686441168315724607453345077916175466984486612717209744475154850609591183801740591786224054605943372586351606584301561961709162530655667393170513308219767033118802239792309516901839607288184053772260240149951264199437115307109024051523292382537701765781821552907275449055468236667902511082722871761591456869289335890567201664571326043455379394393791972689184709406392236580641638089802844325847703409835232777532399024327327771605897859979731210395997193825503377058225171665484187836336084572491146358348915791667654771360329743014859503894193817862180514832626095416215033915974015661135236174502098252642821359053439394134936220332475249875708906586508144863898252462037137214155805798458090083594714519716527315968546870517833745019744413826142290370575614057995159366511097652978321720528640383907273741655677516985249851641094156334792114821684372243735153025874453415098764396753274870824281206534837662538154196659031117949125426581724038097235695309370550659163593272492857139821272276445645885826749377661770535202441797530288865101679170341474631828426163424300456712393995635140206974404526672531427016196774008669552109443613912862237318520169003105404103792824934767641626762346888395325948822120349509551303496350317525498603698955926372370034546687352543159300449758090774658232744557296669992621644204043299948835612627382923775800926504723048381229539318796383042276739910647076032192563350340641382497387417953165643817743286473167605747170474401860985259280988650344166633263767965268570618377619432337120265721451376330487070642582407574063436833317675777258398327638352783989283959688308371419950528999768870733060221806445310349659811422563255652027823036194705622166615775566879702152586819419556872105363512062389821763233470661068886486597342055839379927706705570053152462584465992096359698601902658923075792996656676646087428998444986573232888581090125027798591750557868341512921926640117843493612327223547555274715374027282700654030008455450922875274655403619258835493308337715913196187230744112960906761468839670109427097054963950141541530818760816020352062395130330877913558814568591232553416659835696199385426863510666382707035729088829601260956695745635566689364697482697563708702743531843424605020676537650861135789211193852030254504700174060855837648145921918787150616670288400879920119005609267189555591329773811133019458530298629128499521516681544655313808066150943993200888446420807831014581705761069657445130292519836009578426556274240142609169289111671888489932962799492023972997383730139185870294829723303251579251051279455559861155198018579348776200435770013863041196424851550828066308984412221960315185409185366901052094322070788373775181645850249402398163178266839830031079737519351894518534639446035316735199830993953426010595150663818877250298712710563040114617816918438019010116524551681017616283472657871787102411489446007739260861289013127219002371240509268372778678601609118795379297183258557185829911837601831050337525199898625690521541849852853186974025647849432541817723799991945444109276535057585418712333852268498781336723309912271992978222615514925775973806646093686062533808169887801390498506752873084857045894649402816779738428134590801924691372464029850391186006667044815192989196877435030820109858355393075849841142434082559440966489232997394972441101691523935103567073669387624834828355807118481928839900361819238379654165724790188364540475356714751392922022105996098137030108256867784926483683487459342366474988433736465998868111874727412239983578088871527352073727924281013547416329065462571145791301170729600963509073829935654148585142216406572098106959090567188487167214744966139955166309089445488972077607032398094611119586787568496630492346076768487825307711117799430425097809385048583469979016799340308078194292081773198059165647301083035259358424570104924069579948450606716155506994996843145399264117872457819491932207541451470494759579545574350624747467544391095579393199656313507721609835193789602751813520476680057356314104312769455090673753097749693412913816990532230110116388992062894587831594956205381337052857165282777648257929031858740550486807628700600333037663213150341458907698512177460178554025559746969174679183658659877442152999178679587609239821341242771047083162749807569857255592961306976043334115596931965574151569025253987892440389759535388870001933951675198438548566644238034476057721646950128400746801863696488688252732559936100924705461294048085548248362247921187479488049187989882361620400373023668423891308850836414640805838137268056477988328433207155431505871238280565246379021591043036911527429377805901574199983763558964221014557771624990107837784671395185279710141084105187358021681153245127997965135980011130883151346167025375142479292327575939671255866238831245103133830380096373025013243990071119732755022326046911689561894152030755031800233357648266778265230855477091872670403400278308832884633176202326768784002463950931558369806091546206601048059314006438453493179167473311213237401609631799106488129460713566189202990951963038559415187076872051692316456477701634438015223986513690060466870881413362570430719709633875346506499434979021769810089054820379196499788817610306142478389230640627721191002059330348996338821926577342166463137773746652061421167442058577988304703006665282347147888850221930521257553197135029505315581222478379276742958228434233269040691079803946221292699952050975989722727947863075945743880969892491313528395650724280030667892886849962172430459519520263100077730447240202754408727303353268391712938333664289616522869879914065410842667304887799862857059904833986205682795311714778695799626486594260276047705452301440867886709839622855137732835593769666702344050921526484556851533296138892081201170444058335729820109228325135745374752085894011107516195750269758497917480027144038986235751251449352540275327750663208602454101667373879790340187817493949685092811577973399729780285842142989345576713589698600010043257222711956116011838540907131953658745194913421794857502864507971048701994205652346224654051202714946087895068150717198214149605109780181541700442793435507555683425019061900972164886266156041521284588346801414257450785297369928638336594701193743061849245077618651694408813512178144811662637709072222483255731334444354494402455451584723836501500055606351125305760473140696211846353156658019315310049955078928220363304743897257236026147379902326738903070962296167676506615601256229164167858060395635454936123336251397277495296344352273739152347330828020937654886249740573849862622143632330664507992352429078138107349708261138358341309042690129015338965469988706861777468771226105203004111464727040311358161765792020483702724980257793881520293154820685373938945017857007966023720503422644242889184840497889172714806093626851982219321574876082728027383126473777399960829605754658061166603294353863433827535775135983898091031368515769273988456237930567140486903406032437186553049467486670597036106536688114226463579800613239797965108642936411923619621838949759584873520306735222928501646990722102174682067447117987237681334429917869325578631851330823518508582268793252471072796070644873174649283052570715221266134054920901334732124419613276240155234512966790614046290858552023268344239022000259005384929923546872099417468496976448623320976961342218475655118498741328348018826017618736713160820345179104623095605820865890889590221301049327179222561384558510162096510499481090972163062462781159476511394385131458377896693077089750304045305143286454348850184600680843458609288574367985622463503378607715115227300310546205967732284098857068701674176569803658653181632919181349240017380361512046188429036630202954367502821126877958826730879077789631280787843339198995470990427089934470320091680868368223720400265140136337603303405713924774594315827802916827170329706292485667149825829801605795890092546585288486513301128297540438234904085598285497538688344433926199518187331674609069429425434899882241256320482781880245625167441315115020189056570875716653439006930042385401513315860304777703738002817032489276430069023084792701883047371689252132081137834728655888171364337324826836263330460846855349177300718922428768945671460093356132550038758730845511487638319714403750597529418691539938569916637417807538153680261200791274617806076738756705216477537592797014834512033233163509419418005594103443021220440565370118905338501374006680106948904338749586539950402268876698414601927153632959957267063260552606591465111089335931409618887396230637864995113635811882977060799762470838691445159814299438921922661644702744800618163568450880536929449041179942788790091767445495577502574623535955771501401525569140170953239508440384716967691900953461342047289576285579470852605636260339481132218224717264054894407250144578720140376159280808763707245933694934431021436560116985906231489594461155426017784809197889960916160360292722477836647390672934184281828821034580297105448492096158283370064824467907489869869472569879247376531543849452395203228118354071953337224364460225953667390617062462136068647618907568692293729423665238950561302884669759479957907485293401089002727818043834692235189859659944798215670288071764096934157361083173563943022521109425214568995557417869455260190026272707338451666912540598269574608076742521179056608956056953231615402043122768856115403172131573659291910103579469548329013772440215678930315340692152742408329764057133167573432247770034823804100166809617242595962378608451996385372407972343563842426158484723079904963355553855031282919925796607111994314154655239100502157258521288794592212678500016475247154267453084491907895124291455144946853425341115338806072467574216336646066168579183328717633164966531822124565942976144029005416864808506901740076527960108176856559643735986059201197493001719385808719723428776597029991374292612650417297637819885784136863122523809454893099433758768449570584377271760674468227244421560584642238708857695860003676045259205442499685071246953323189023753278110643712623472730124371509229213677919134896466771822024350503052517828198413073129192482145700456361284751870330973456277275665410160892300830718108302817050047487494897074099280485243786135985708009104569623374887939187919843440641705411178052740697435653292755572803759474273909966953056133981463507293400761385305841318800228627742434752065671880247669668933370561428783418661560893089228697401907680207214418958629015643024100878681451927971831731712648475240697824403007764881700333825324945697030452916934398297114807320200466279754609023714480786445506470042340671022613691562765014578455932352269864445439693774546887773031017880662786631511546550029242801386000181767295528119710228742257069950285142467357605128028847352495499095913361240395499386468678339853336122720445134246372265121768243659561601084580708802539828802510462623596460510479362114831259971346735024214087934260920663986236191287373493882090492319512150316832004765086844247114056500168438636102210305027291598357138836946830248239832304240938616369665587070972309036236796979507350100080257657870732457999635893242268808197229724284352061993298503930930153390554587452829803101652835757969517468200044554890202338184727308331632011760474460973073799179971263834655127535383185481691281249980073756007310693117658756759984876724827224448786174093552489723744329115561912044998722848342003298869078955079078283051063223299576666821929264149227651791752756779414525664779252157988527033627174383432955566266993172466966774259574701355385408324587330937611563468432511688761907625841119881062868885864742408928769932434774159822685693161320130660277479187300119674685393804346061480661226686325123080151370936611370447430700029909938714571860430909931067402796555415347097546417499265965643446451470723791371364110043413275849864695630638616294831877000363795097426966213215709611164280409835964382839652477008881590319693318210363003512966429250462045981831378371476516270639016438868834406671704994953405162143075007958682198533172153084055580964094877155754398123005401199511237244817383138185576011480479754467433053500942172866827287383220093549982661012116475064387032232701274231723558084073179915420810206804485322881563944140550202155417198087859076505420011954862901300348638959526138141224548832410312322632503442060484178465950782085402793564271092156295023924934465260791876758255282317733805373713998775748835492229947405024962797992865658681619247660731027859985959480053449456348014233587034911778727408953495887604919712568716312596373593198901551694989930754930132271107855784544733645045863804671402810161612185245187715613557841330918230868305397267411511590680776543556816074653781607897222387011586574418298322053209288437154351517163018718172487044339767578218197842963855492406219007198096135414610811551309505284315070603571760897741120898853700388606995451847095225213930812417500738071028539794480787269007506329611681144811808117990120917789023452666240368923445506054835431711380713856483581613341477510658553843382313620089775009507871599491979289598160459154721052607434858333766893427118774922442447430399131551619379546418841818924638179370506264286115944766928716726427822225056623984025524093241377067651214686401255455174863002832128163350996309876321944036979076056970311823436455124833455604904496505857136596516446269588712866146504375844199945579869328370963390217905669996744257804601895924433719784933424102255770723800488044158252476576896191677005300019305603397980946566901914132421704683267650493507321726693686128242131348685706271939501490950194015020112212762716109599950221183857561585143975175016002284575173657438103425824893260042587285436673446701635526823073633414999055853440408366746695540819890078511782345828069180157415850322029719723203114562913255283427545811659595219436054758943785734152479963277479422099595742544416747412027795948683209105250795030360725594127474119894305205004159626012332178998434230373987684003541805880786511578685590907315373711163269447495400763345301029083813918019680583465156678073622403188842444096094142613639481733383046440776305078132417348512052749882762216791316589861420630894846407362901818365725411277213276602553078970652635814464704608263756999520104496561954197209089230859168532398487526398440002058841571839815506789206131970336887890596546132284857260414156896494252928830917862339815560727284530366332635834392639999185783388868251719353360831068451076464063495368813321897263444321489748018988585081640897203659518126803076147783990014196191998173223014690917811933483583527447147078819963636852495177221159641175908569458608656643668586940935121871427960187076199156453989164432929043852462437411043149665844897375358619986973446925676051226302908863044815565748895790094767004667254013155191289377664413798179548879955698781850629640164033105575959232682435130359688948168141577575494424742799901995360841336512829965852572400806593607080677628170938197224338324657618975312914125826651953594471982912569936214129183460070738701084123120198049879810085532696584388111864715102268195721653882021609367375613106576703380137248394753466036740793653189137883386229863031567445800176440991898875707220120413556583367156262550872151663719092810869762131848979602633015735800538796293524430853248704828342732726142671052469946468827350614468930610666298485750560077563108771324789335488401103192227124406229874370261657355249383203776155923060347126629560769573728652935795930715495085572781417498646142513128371907050251102337863241675020949703445230746409948610300385992548636848036982690347427143000841730961462664641899791445455059098699607835024415247303220298443366890819180771066463581052044069526038539581533571251186531184240872015282532993089592647996461492285903968607802528048572255938079456989587572528053791408217997032430651009090235596524709709086394830563067586245376737460045074282611766731492965416880016330753997210323064881131106265412230153515732707966505925099689077887316297378837308126335889514521523829774681301300096556910064937047840724950278056349906185127523472427061619797472157453600533063954751891085329568704965222617000511059446017917612331008678579630846873451887767115990496946896010247717115581015514060936296962140003733809647137943511973632005758129709412209538686302592016729220399535928662621655425016561231647454531495342311067177991743654657712679390498899637208770635269319898781082615222722870796768182846438589555375251089801495594367063838487395279748736579820390147850447777200872186209660987443653438774496231893116735142170596761299513649438181057773320387443970889253808786083053265965060958241470160157427385202281915120857952671135383910019002253079896192921093723638785281017975444579745745974957457567658790411554431398238113219810501721732204418567561993853293164548939662938775031609435132955296843182582636622851017265585566730200479368178024064361230463799548884543852491408500443047299563993660474423910682521448869503307179225987385231300014938845099367838947636621396514873389485016085581727220332557743088419096531204430073370431168535736082520849489272216448726218264807332317287092527567433665883685257498338748996697282192678993588137722702053969922328765985344450190326557142983974924612943129385116526005745502595295018455255295792196982064024300923892642539012916630898310300667407813743222315834281184471243643214466141951936166783730807456653934066760186554729294846794093239989586875240180612655044107048213459691939314972646505784914302821372326518496538827120007486453504635786798478240222680315951930244163948429352641332418391252765795880358908261607930599300104470065206556493859888227780765209867628080442785636221050046192501950294532488066183421397415945236163489347611022921833693032532985611803304838629954764232634443817165749468265387822615243671372740850091693041119294909819259093508484451195416500066050526914691130353028346018102434762581088496670434297504688936374954496877358029707683274696307374141279463244749166393402896896762009574698639964931098254369265583362670443062396762204611411884026741404649626272895717847510366155124648771361021444483584903369351548210469707542945797997736275211698513483214734066833091453773654405785632300368834893407587075979190878523120835094598061258792890426714851416523493408750796762958778990793063962236570832573733605835977064166274178881454963726519946781206818151499529256327491294024700305769768632496183139092593588879242967945074868891600306646919067487652286084273017617495979027257255189519048929128185129435160013131667979793530601435727900961741506003886346902529155502496312773185341102252821492189919737201286661816046201916862515965793476028502885893154300210874903538915449735032155936646906747244811788528410375423701008255244605374421310910184417856354018147398916238206388707191559026936366383387512647667465826619306105969941006222492673634352523980831275819574775661832056753512218488907028149626237646805218970877024086805661330389045009913566155740493981864552459060417199767036873975312014331254715313648154600430961659522623200863543593355798560792367443644549437247602557851968820128280089907854574991103381588931736533354143809739792416741340230639493080774401227247979643860926348680280799333939069263507732692177979202769524787068293759953319525464808552171571846487307176907405421055267047581633866498600934022041862102367732910151629106933083667353227463493594539674224217121324598895879906935981947541256644280472193017548037036750402057418380263608677451198323484289173358188102255596282708198542850240175908717080505936337304847179609552048795490371348834018240592092020229600500593762406289059590438352575958902616840590401006020648109296211274271709095241316106046725368992970047712982268121949988142847307727673928395115754319746915652306709980430537075705362888539485183512069598231900394815568248386595848551441405012908969814228161705565203515250272225516312410703533457674673641086133620927448601907362911922142224472317072445228402897343763933989047865618909065531485010796241357965921656975564708728921480365846626429142521412830650263684618860429048450145024091251916516213639640251762323564213494397159415116363201753455856875685970990595290394322538991739909899177810070015008084199669025202536507823135468828083195589919562122956670530445972398330252598981201170674301221175275537859277451339922262177549969766633643839842149068952695717631250757667939233518093269500949193468522062306916541705082114855315822479858790353285419239778658645777495736946864479647630707073390553241999464662965108313434051482264529852416511920261692104360073533662217581282450319850342454055670773155274685531970514968134688189530339433665960014733001679746104350644185232213848811004808791349889155083245925961225428259329847041002621767909783426047883126082308469643628082753188253931679164870606151288765618261949853025983347507640968160113207455423168532806122445635823585407540383899056943541491343895015135534788558631763040486484864808960754070776463482880248673821699626635236258817541997948089962145209755606746976222123233857733870489750702970449242986059881288414803054354063777757707722243191005145176389527406706901799057100820077927601050228712474906904815034879055173907248206440321468446219076526158853701570286853437409219848573108495015873151916529780135349220076514709416442081182773893768982633246179368278857566171183954279948161271319773679450447869389021979934151239921776540541934789237984785404050110071976818696448582359791971242857564103500522231917174882272309490423019226989190865604669562155046908109561173164678550970189099580482243018759374602561209023830936440248236601188516234323856204747347717825180567506465643040121453319315218370125457204255000677506978584466271302028110481558062713104491361250307096837956893451481953237039201882490146761981889580843512660028925708542443354368444099654209003178769437498204721754952874753444105963704239388810674941859150460756497941915642556790368924707496301605334112657839292627092074514129973859855990087571225707298161778188773664763476004849278339538409211248727782081672134341610047812148139224718654518381615649915716776813479774578966573774083784063012043071506374458930277521356411720450600187618909440559646227333033804888294278002781187482297057325694888297103816309795704928440126095095170991587807316539789384716743529220867817609728739060970568814532370710097853838672505552567375313021014512926252654702338914001463326325007993244183440426348462299256269079424621343628150799793023158687552398523805248972017870328638640795025558501371145138596882079676634195483642088236766968388052204891747947338688275962781455175548202848132820310301353880737926559357951548693730479159032967299269606175960312477571628235865856390847548631907636436437654758873678922347331259514319112241876324323668908059050814304247149981921115034783137487402149490208530086074554432642189960954796148721579664311749836020947514973794982025977476188973821538623346159842549595568750036821825227586834665534505220564185808657629077146344418888319300300086211952323660290684689277675454933563515069292748287332267717211774135779111830405952854766798981905582746101380089400321258084451330276368203106633200827005102237505052857181549683075855410459800332059648700960009319580959245295872340990979497715594959861726371148923571930012679326038039616709828701518997430415748054034323260294272239522534095343420198941442768736648757005921803471653771232277964313557423118276526631658020974872882425571613702837287038017638655790141102250831723903035960663839472167157906721567283304898290008324629025299311135951163323460760201749820180914533295186953245380991585892824683717190220025679657827412650705765211791979984584399139942675374696458982644946997585239152687587972758072634175911215826394073050401109750304018737469468886425818869324725973057440696668734126533886946989659905600140872480780488778194980846758114286543500068366040101037667816334230112118154646722323845127088866031653863970876625096077184496049093478110509341153507571777885059516691096925282626641467688271384333971155108055404709786618817158699753121807016104993022709834326201302467185474915862542359966442055659989630333214489770394148604889795561520453673354262357767075347036846708104861198943607015366967103392226392469735914522364535895533946925920131113454466079568050411351783486625508946784307736869514750817944651830119148461790705987024337652536678237305438111547725728095819821751542001937455027394288350611395802556573509635613954755724504504255763289851315968816866596911266772583069421689855065916890697012357937677771443231379074275532525565628072835796984484557262208740828717331009574479496988055870703913528109250426494060584780727206125918374296844252090807785422176673386452555506309023489284184505886098128623575557754744890286139757219572474068002781759238188759423165881371997256944177536584813101948484360332780900858884283159970938555177797931526586863960255391732081182725925300946042286919622227312848324689861734399672329146134168314919390968223291172550773850995734226204178774711881331451689320169394480756534258166879528976339742502888394525243924838385712303950833794744537452914602024516750733159935831931212227301784792475137062362641002552781223839571723391422381867615646304620050705702403934216007298748277982159816277877739848570235332920680443040102133494068469705810034206285465399496799239549448149474394227891608433018184380925546425070095387769646328463938729196693352950723114198269030842757397642003318462255963296196826579886017350548988956374940330292491112602532930826941396347775647604235129153492244863950308166581044212125348683827820974575153817897662091875362939453933760735413989893975069405005047214946714320294924863120398498720534386255744847334472086677951996157197778705412971700344188184079280692235566546817917937315983542090561728850945675356566714776215404968855293172971487511286468603339854012403064118424197868414824930635853501820000119344865430824757521904861252526201962819086782661031119532786962535003523594256043380587321364451414171385558264749018105963473611199613487408908850924653733695672954146382289826074606727980236801863553092750183467819592118641100084626214702389391028847253502590056330657360618314272328942007329431934143884696098204406278684293974826621564142546122670880443494610288583165269720730768811776865714026917598917283180543210680806525685913664458307032221445278654980959586152258309037018113120289930273632530162125502643588509031934724996013853776340195520882538493416895283825432487681541346543613965583731589440726331370923234638241132940768545915918788035934498588696755235405458383215870711771976652237638241172022684263882909587260714875576884851712716918021218966235803060316885056087714368210800603303678333588610259463456859388849021224544033958832473103638423963585475586359404170715227134906948755616281364402143093553242256078935676051563352719660241540731308208746604638007122868949770278915789314382351919737807530225379222094729957832605667240514934926996505316362382637788375217942068183397256300171715437255544532017895394584933049589511460640176436539381540390360185364105091712894175082741348861206679075175363599678464619226960305308216716214204398994386341993435667552535047503038639963998327426436384766859253468821879518582380115545364136174563134720020839467107014275404990139068316990505184763440168265761686408148922023661099760985328219518831321654034712660934426020126705915652416423404705016383327661635818654324640919658453507979202390536781742413243256453143673557416046235438733999679549230257282417698035319152929570872921205708474273931983282269449368821206694678180982241315673706185566275493078745829650934085085936251446382552456321313331532768492369315000802462929091798512789752878619316578496418451684630484162541028525009755529170819152121968587691211773939987356751994806743324109102609401932511596261616459721224244432810002949579073273468813843531149030111811373387485673503910040903518273989400457376012520351358817843475193173843276790136991046227392768323370955882349517974807404473428576536261088162958938618950228460576176394888478622959598432260441445048179792629021213695138733477670218760029679583995936248850408763686669179401506344303259698764513604755590816523435152308770297880804035028646288332427558891445386363014582325809644515900306724204927169266754182966389369025630374636939323367630045249168020144872138250029448709526988100483036179672675965572645120809755068852001106151738300946647256434208051695244695140219800906623715556142381288207898123146633339313770020212369752537821513333296563132463966257984058296633637965268847868548565429150419180227857091674232492308403543762407353841231364024601205257402894999528515675355977631287772044440465421665379027748348188033792232164945463341010410898369994346388922194775243620326413101983914595721923535198093016858952474590475512476051143945443170027149389682354383376494358047029555070015801730506573926977811527991042785703755079629852613220266196657992150037972404650778587576315951968580304728022781441894989216850407452501118130614232639057026239338478657319475859692106101726733088305289253847290732710454141063147665914958957173432341670433589977043022847044836368680777882265335584011776460414295360244435200920882804437535009315395171213400580331684769676835901227498324524211537934911054261556494683130572290306081881512343592182045813523993781829137100152911963728280086070846753276111914614276594007210042110136676735515367781690470422084189254061631411351956461038188572380392368841078604194492815304983853144420828363632730616908291456209285705844691058022874199732643966748426012944485456473821258945676703004554678812163013350015609087752904162548056614978609286268635453590574580552365569513187925524055081324375802021191317567062424996018162231449107774288355205267734751117765251901028655566230333493678957446859746727652556732585738199599574016887292435168626735258087172167372215327015472087362152845792266911634729201421879402158279346132336101887025937439279949844903951456908097838317561590352575450304656314628190561897401753231476968713438616172676978388978653349533631276572458376800149772220913943216271842142284201017849727663712774860381907221693158886833869266033288204653997490364151782375014401539368924382078630858584420603303866261048867510272274674508223942908532968338351388358659004176022601934462181079462200484519110312872890307523530194848214119222668144502596621477181505400006877893349766730032551080734561740206696241785261291547272468660531718323247400295080925912429414751967469741975971377564606205680647294488216765126981262312604257302672776763739702922824768365014055436565954802171321495396835336156664441670583286317314667429691068744484676103042428152711330497121741900370591554486832213975666179617836686916165696034558680075975484205655340517399016637886058181826954360428498151037934319306567143663353543333250088348669960744485286760388942684008944720264349066073000579678322461817866140680360947886935757433175343380353803501326203833654150838690281680435105889362474481706291670243845385040365681969558750354614978248534430603328415183179685431040885784478449509250179421251717480935602305116238307408785652052120165395454938876441593903516138043095324679390574459782115010711978469609222514726030276796260242951321510915788063285193419434582496243867432594784425711450225802302803585672700583986680627032895190193144095367064815383794879770556746146507865912381771021206289764896025952298761457810917665978482849799753534331270783446283779294568602714223088094425571065795114981323191217547954939585169087623018607773179056232259243001589943878876757134445848870493245284263127792807030262129682717350324814631495382848704455442200989506595484473360571716893245567387161928123964106304217671915494066888291567189169265971232419869237586055227760595155927305314161079946395640872378477170157283609816941197062540066334064763586732331992807004824561289323622513142003015092480731505582119877222774434735671412075276593602668348172587595412007241352316433232965194989770737006520503142350109502725735848286959311823231901638922961571888449631629181328240123862254841165361973085541622706136814380135078685145782433606356313271428416525003993713151479279739317504736020866812478381469453205650351683030219125579263279654116576808794250302887749034043119765652137267547509644507446083691291046666079233998677019118416499796878845597726370997081977069303823335234401710736728853886677267225636219776198274517352110982561863306311088380171135375540099218233211335645375991440538254827760364235879202989938306756119974965898697289587644366600439177624357021107844148306302494851835297584758581881600949650723763076441527283926249698324950400989062910093777459420844293661331467995672513420077022763786218547605507110115587425247340649747894121369753183753850329466771192902156689393225244711952814049720563225452094240127393377627220637325175595387125729362160675975985032199919706868636365666758867957093854832027660440123882935087692600787351662517021492979414733503419073383114174706778063167623884060859737069793359981553158381074483153591075581034107465665581185730448913848867396472286932303361978605632114383260928511990557908103675722797725096075982484063629412120102949072058718899275608744720577489969161994883586859100071226035449824594523122983354885714175904868177461680387678690928718630371978408708994603435114643706711386588465233193232144829645556617727719373129726298984612481567795315446409913712528239950013813730221540108633550070856687861755032017673897130233914804345277138482677812239658196057007912246747987516149140411490962883176015515890181448058055478207116109765366231131236102378543903191337486550361478448661260046583288450766377851534867087203520715661828142569694038266480950600111648613640281162842044307678277709845625933138018221920731306033733863685961751373532921071297047099177878241873040582075563022847137664636120904879672758330265948212137169411335540633278021579361961990103915220178407224081578841784431262939444583520017734287438725977003478685993993768515865285837567304707103948490051611339913852054238820879720558423246270846780430592103664786100318407724129012241034825738707019940614131895179738954187462696862807938131606556839674846086729144382887350996880155255664610144417083728266048433631209845774485026110472727982953380328704638136598753149762511779701876941127404255721278069053681868748547262745976282240335111567854982921077857888131767498448356503273848377598984870094945859613850195479629332457463432254837015804546387176222208630473427080069863206846782998398946643340218966166640496866069542673221336567765956785640778586428470432442490163548170740024057957168409410572600011023319310456382541769115614883955483994763165826391522070099961086670946518779577164940489301562467322307335415588220696221501852945908434410629843633317548601637552115538284350332317992683164779603693396466497633883309289211568130641452508200708494315811266183685221315169009441715373663009995488896997614473662803099854315372877630614777243614750303986443943810360782316887267968473718542680443779462238433113082687891278156625532206359191666478044209229902611923700944961247050760965906981375586446072931186233787932642442435537128983638732678130539419211510824467458800340224372785023949309417161798762925385602344205191910704919938326571136018879535928907946467387578061323464198357757282357975865107429669948128250795357144868783814059083659592967486950126196538708818535428551567492311121316512558250430562971097899622255893196680673379322401093480444356080395244963430778886510319122601792241140236889481665806432416895589941817772682854071988252366544792307232586778229340012859121241185944133967603405288725455465544558642957465939875571504469539986056693588186804858500288655685661012262808789865523248235292233846985098445729932608098603276284548248233423241144505071495241994858279755169539611230772453767504276930027708574741799298982147456973441557264288598595921433342728912177118216237281522111738509144197561513745242842428555028571259145925714569173501035219530123135788023732532333953531720324578153224145612263476313106501947785273502576846326183134749428246414170444492597656053362257295710743808538697026757840902090878713984131360163208972945203892337539075520964305351770277893695173470924049594452682486086451304479564193230699848844507639768980191909205486534219911020624635272769950376746403480784512805082925399629572560849165282949985310951447168178113944269556746183178002624616165008187235119882472318731031439813973195101628914244922563397999273852635516638510897704445021523326720842354567363029057243282809485763754241440317158271811905351636666914691804492667792613053643316291595766605968378956399152487961585478557903071835206262604107916122641831713735989776220644070822529290147856656771295153986196266137560247822778166645905254152143212227269164692220783655684295399971783688822910120501810694876673516361573553445262946998446350415282981202641924094140299280311395824484011463012030796991898988866029125242554402752026580292975192179739942456391438324246487116566799275049433325631271836549795557244456904433951722496814275344393534667050915222428165692199374363190981445145310629923921653088463984176027329775191090644332939823684064339197602352221454548842395885529525657353161147878093545553805083182895180555261527926479341753707329676475635462528917734355494528098591816515896200015282791219609729651763164272365601735780363639625724433174619278263850877359452518342650249417124403193166298304683774587494291863024580829095604835777363926445728556478368416079751060073130721475371788782219613099506536797472178276951323188416793067168552099553037668327009073484232415539603659018389989246723312777377154878134431270300681014557409402027850950455331348224912721495693227234550517990667538134490248365806633286787222993107313660036189393321468088553304516042208081347951296240556955200688900030652646485143495049501829845055240095466342825748275203571454901005662007226326816904771749843308722003921644007165186933656021665781212795234031345455375761427215803144514813948059985441377808708936070561692246482172654420485887218115756910723825830019592777142943085823631665034907451738218291168766865881306231221441490258258026671523638188354281567730361679056659310337181885019344991675146146491743879646331806416759580394275310608970843550174803289023686894222582112246153498891757883384845596850043550152815036374735896730724000572725577632340405073083183858757309621701572438724073025631957429514787698088448660682612565233555264867123859950914076832563172250947521205647605082050911404220220452829238143869330717537919137095562607414778395680955310368215957429114483731353435197165675917301189289392218632174482701036943181499683893782096541601656698425282377794983946807663147432868809347080016809952054586288937431765790819129285658084267061196066436762516745983843361434388384169951713791732820888809809706921460354201076433722670344546626380958663796993282964323024982561073579522294480204646727912769734533854135066548829667298628606203594549667290468938374539777990442101851828259103437012606182924670516285492678188881695176295139544506672391389641923274174698620499112312268855362116005567060113442686591515604525896616182801620406629033920746838730634141482723856274881257613808683812550131374982185007662932179770460636054755834032831326076466244651384324023582421759420566228670355696498290030918063251168787431751588894626494504753453644190816349822445033361402018037878220527804965116632508198482261459600226543591460378004350177632586228260359682799940108691586402697457981574589324711919581808460407541499593855024113422390791902417108503386521310967230148613090324012807354582142865831217276427532581215936299687169745197580347268454529931021616961986405845667292334544470269243851559960996521763576388864047030861213272848663088489130270461490336139375675322919750766731602720511605139336798746823045019261220768738341460458200941798728080026437289640405998107278377848078611380301489817581680765443064800583921382468552295187493754164238909027954009975264025216031320989601314471229620481079447757838203271015402918488666209715460930481000582609471344724219695217047548983815284756175705446989343254780338350512875678388793167993541123591978171634018107991433288176853787030977088491960361287002456367385218681717480382921443031509581676124640438585885870558821022544777260029547512817632672144637840592239021700853460323374716788253573422759443649189704122100328861156477105474722509497296679018455616353146210350189387916246024266774975084757522029174106041556063520495335315071145049736571715575318666916696846198307471393003839236713700013781916519166037823380113795389360288914785935197685256216572912069672911386536390262300415136976825757054206943954107925300904575545578007839149996801510457446122453996502847414981477335762819375741942548157573087852876143423510976349856981105470286932334419539160178705898919304910916550235033757917526422104352970437515178140587074521884759463119274803478443345264371437131075684515295728459925199402255174580725183020080541160126120733255314495989651947269632082840974509554926993534699500196456019456982952280126686899000395051309231667413811974163752575448592235885121375261224799541557847953496098196773277691907483997217063741339945414233846761737263277515882180743132241850863162232939609476080155779339803241146039272533198868284558814365349755294112803537093198592013438280525158190904593570223386465337402267210702409297322615027412180688291535099998173720950895220365271344315272661035745403179491041853707064760059189782989026530520398138020400539103676024197961944866504045013562624281026760856788815426010534051102756600806152100476661720005822314471265412791311731982009338881023590244729837707254721134531253345652151748647674651041464263731834299198491883768813745633235634821897123431347845568689213531253391776556774591643357097819445819107957526974245597778742855139422657063986768232017593878231022503929937126844637692729602415127335236931986619124802140845191915073309138337536717558840672908793695436930287802589146716782083471566846624313599791993461438356004957221466334437158157672359260351823811699773187445577108507196659612889185306362805908137690266137067403102201412187595007465415798973028335059338501840019909401805207344599740825722741377104958779679253301296658957169289785955836725004222205777829638318650688745570282370862698529838375761854377674264028711031560408201529837666840578433879684516447455464310185486109002911443526928984440272761037901346830446749675109378278665711293624470414984340379369746656855162907455690888157394210982532615306311458327946759121308720229232155218713722146927679750542238283119152385387729049657127803036473304871234020531198376981072513165198238057812911936195877427951392627505303833037440756422310201033587958147848276119003457585750024010280355796468064109063779633745752996245947063752807640536349179301706864334478845114735924271798496242890131861424194494031749033080414541296871981779431405457584779334340551979291498767735473993044137309619637090700920481694985814647824950907670920884144493707807448818048242558735933140806650529741521090356987745955085517805660923844996511729565793294427595688624678663913502047949409024094397967716721583435306259598492798086385492278985635532128346947833972601609742513338975092943749061997765286214855727495790413490721723146516070848383024259793949382641450397137228715099209396319265115997125773751341869125105710834706385047373891098534088641191708278218702846407234944374949971405292324069578772045764960416851272005851808221322752472483894470864542428434699156038242971962953777377994760424115570592838954740341510639504323398713266742586380889938349207299356201781603270616553974882463241925240999065235976177563755615307713266094686623974820317794646529634976185649991068392837834891360665418247654880558167380464398565290215166655021990748038490698054500899425792061592504899056625254809770447835598139180612716497834954699993030553063994684891652863558687774596840625291888172203562047047324997085093647971346208476321847436616777858162205553657043240945775807521942138338951299531807352210848929381181841631794693531710121459942162319069838519100484949817952639249056679666234654571638670297987432217835236307101531651120378616153332564235207274665582986248577325438379242643127176740876428166945591055494688773938454901339100121872651170520295237318767337351476303320877445048753076743583088969570710565241291632034281912713709737332633627183114620891829181579676706312266116852786668237930424671471949308277556158555120017936611770174886226517856048243128908723977943716969138889430602613003251184314526946878052715031233822894191792065888504652957834903341211510451291884210550896494983784098617436890410480536358218197613944644110112340621061184004472132385099693429123283177697932064690228951126790001894144051351161340391670626012452036054086216554069524500226917288798665327918185363067645872287011936551685774023792344710077395641947357836699479238216530728068596224235869314982001237946192258298913369208139293344616135172182710428623101393995495218122647880301068021729140853625803113199745213865875792573218801369990187280883147772948761175873309958375464488107157008283751769438316574375305855902210599312507970283965333750269729606399215486668768284254799468236452461004267669994094378551931788246464265332288518557581786073304976097681889397901866214132153606294387491507249507091046918581023987753723802606168717892898629919593491146794171661248561717652949072979537291724785779994958081018808801924163013892264303399676918691206183938343589343544768561392010120949534804521698884100321771693172538792934952858887435417868044534032035750603416761505079125817048317238233767889136861303734460336693824009398867005686109853408679742866883797126131166999583395892265509777247600233113255003256258703769664267371789954971058576226916749028526113586450866700359725758007856628124124119710140526258068534097683728683058421213949979477855132986958838688791984604859061879936947185408989472652999276812452598898326233352811598989179015939656741449255706262155478542890496791500460934734371259153445002999088518926921299205359566008139908674258860608745211729279081442067999152464895956612932449283113588018450897526398022144307218972944616509082411052141622104422022939356784558133622733299380185925119424564232257049619179467910797748068733287607271833077003080169890116189264022003964738234296850301593066026181795235947061434583239006777192309839161192117188773172755341306222970601186644293027264482377878816798430413286879060462863793142735487004598664358638749706251906440785976886226167610736004019610838832433210234410593702130717683985739376675866456203858289486218186062497046660880349322017582367771595242881035956618226245939479595838675287144713486723722487958337062565729077544410344490207515664252105257825421168159349919017927724411837629889180655890888136747856567330372655528079233622724758657265711708189917151800974839867029046974514938255545358830519779879879843690591754481655622485995336254835271168088329221281655010834333026021670793139977814698899306051034995131987592920980565332724903944842845014220807846538511287254319839282678850012099887533647208473403032257235558783355616750028941801281671983632598403196231215646873714125601134688157803326736827487455116805163130604549474014470996768549019060193409023222226798269798486532933554756905000006221501919438186210833887184288195857368687373112861369595547912841581554283883658922471659411489606056861504560533687036859539372063024406153583128964202972455781698673604410609312063454405280644605160165246506689023740045953779382447169372506222982809996557350050345918794805818485985045732641418842114270930211979555685548181769796615080326015078759891627495960040531940115806702386522736296787755591032812877741879723848311865077231167596330651875799923071634525805677770999091703771321265927298008123870876974655512962665723804572977744951906875989825428678668172493759853322288494628916719828921984537024003923943068988743538043544095205980355499850511279075589250168791457800699202040333017743177058075131720628252650183294964108411426503627505986199669139660647019687620066742590076322162522040394753932953857578128463963999287885415687470600649005609957360371204827079945131262728487931714636228925537995853070020868263922759165293326459385643375347318705042697410870326718423998196203993434610266087182141815558067060015983840907370213015458062655639814277741878434498321847224421242906662517108747986648546283353399156914779872082545154457405309743256628460690206849874255754289816932695681123397286102364006798785867295960961261340625204292021604003491736215225100450706487418913749619706716157426008253380099373020664431111061884051338195318635442692746348334293397712639111475660436487209567946342123714775210216252511028963760305829194225624841694897286407476016770905490289772287829182354134475182896502181954905700885203618910077767495782395246123713853719256354573769332732085630032239534259801848454497998742464362322688149440726787184156472865277422839172200229956349302101030700018590668225191421340740583694207794342779508329537085296913665202227763619271281916637227055922725829102961925832245026307889866114302789097720288806846744323063941127571090869775984799277876673809500028509125741927734197806115175951296374769385633496221512634270206081391034599999653610698315772090169980204265133513613445346821074231017591983021782288811912789571884511494866962926506612431260974869445874977910283318595974768040078383022356720034175272768574617027715075885492311284667470466535422526317334862685527415633133977208641006501327032132654988870695142940297287784553090783838274317077352866965504047542244623357061520943416425816309515399520596588879055674508752553562298117472169819531173514874962309621185936896829350735779747772769937698883095842754356702694771498687096337570902300869748501744648904414107135144323860796641072615595301394732977220813708300962729917291520448166149256691302498674910998501665719041445692054783494910227151468712255100457866057068513901215983972767724554732602903052171507184257839644991483721661164200744360838872900063729188634330556092268198563367851513612843822812462618643781530546640416659276167908439478777670956449782222056700432763473872491958126130838874050447410072640831758632978780694899302366375858988258629966500227098389737422751544440996257688586961737498225119566261637282848927778817752678458054818613452501196688915046557651534865705121083045829026800159057665347048007130154548277370437222487790502418079668927593332326109148194646241524937489064131261654223582874976396474321515377236301239045709633133552977149881961853756194642037379494524789256631118749181257253512649795318307401478509526025725671306140106037310565236557065806453723718901037136899138797927882165526882341715175668202404433026538549388048051645577455810067456238813320577453339526971928528451166706596218494561069216139234075985058162329024630403631771016436182912025354343329756552864247654418300631611600301545775447207642840138626169541939531086552862045375660843787103694450936588566696261630418570495778131330624978330284026097616468936967789024168802282985695585472192230397605255454134195246251583403392963493286316133289664517484591881933930688186026673816941355229169578913351608857942446704436549800704109665685698955835197116431462495555394891440541979268181860480661769619838959878808256149511733763377569709311362875864348895896292141790674642779413261485913984030431989812816063545204429353121625082037442477516704619854260732088431277164820808229684104327135377157371833699646477787907356226911115897316601238115210917750312857028097558384288088556999231041217113409221040941801120783274961229507763659760652033517189764283716017764819076913536224659338887459849365784697703415470736325207597845700152270192179136606102737847450289504400843543421748923516601381330478773849881408618819785426765775447433069571496750843850495959676607581867370774350631833926805127711789209486284495026318951732884681192346982442368053548408032347416929189198979407543603215522683920838282034903486219350877955909733774282144052899312045407718771049020384330270919407936371509243892348360742283890050865709386440146818716239466447228673034324558418550837561636749870290369738937083619242500741438750978285924127785878977979968198873159084523951645870239353988325644959180713774839161114310723353840764773655908524225480300073676687155371556193823232350222773471030799366414628587090392424963112913051835198524960682126965980604191300696454183157431639855047020158260993595458759225074157137427151091997448840111564120772461908003348484647518799992525883580167164951545663886919032881948761006515034277053211118113768785948709510220083619012151168753165585597766665878786927107393416303353039318494621847203504993151228794377833382263131906884730781301955966430719907706970301588087188673167212929766052202319237174918810866890189347348803592646134945254346145136207188111114753734063009749483509329856398373205862083262321395736204374982750457904377653369677905682384937791224824466574764081089063428376289881294515611415249256240740052473423611154387360507473441098479135223692973890984193147023986777950254849151694593177276225788478109036316882254205845374853596432834981604921736725754533617709668505526066005946518966167672381582777358621615645614932954452237675915165370611436518327446273533336370957177723977161550036385004026771272963475888535189145011664126616986322911965325841687384094549605700088304008686303497799485992262859552899772935102142402828295058338603963116733907214896236979957337543720055440597817455215533424429408643932046084349664539116652600346186896366713685914895464531519226127543597400232672934578705092705952926210098053334348173030079977258573648405797689995145100300422558270046275053443535449600962651382165527929930728705011488341644832524745458213432015774587849734556856089883486773316296127820967341378379391150525535483869505134727875839453455744092699833653159572812212002026513618097494798414052066061928195913531901229853773648612296902369496949058769312883825026123528218196373550883539773655753162267556251115456484431764800381878559551548455067961889430735568836246826410068353591753647087703252892266384023286832468349024833629577732535778556539087257573110549358478940654604980447282225885923393435804316041008368837712836391279646105119016857941795860826471479640202899134851578315646225166837477563988382049768862927768765727473360345011071956029193557231129663465658591936713815677313354856117592265559265601922922549615275422104492033237727356738441915744600299505815699292355950509712469843722198788393713385778773160513579863945860327756318569732322182045550964391223164954245904366846296338453991431908394559043250092318265217072497715259609410250794639930936769531976266366838134802058945906232166450396860245512983909707071856971596469780038932941436303509116876729675009481453827902199948749105402106923083162623751059716053960716184602443188547476316364105869018132985127001946022683977035034057831778902263965487978555283260706712652054362401032096898060657211644224116613427810522391383089721621933988611949596239294286220589627275005590481269764049921622870070018649702340910525197098775060156939247853317984125324049113602153251254757360575049567228336202237023995007569600547194524676807751973307067279101132510663152984215174081739330128738153784123345171909812749065980301094461005793583252037202570343886615184264106067376836726942181968177279924352579339885061451589400673053206880264531001523023706772582370758185594436660489931753287634513461965452194841976249012745085706947278130413770728279015826511172715238992059165833458327664520611730265259851837372015461654493094911811532332497205544094689917096899711728258705420259149059177396191744275018618271994551062604024522715912910343153274679343345159701098261017109955911157425853040804184773040351675289982398398196881261656217441657984721421587735619523037928738769279977547121997062346021583114525972735426397635823179037604242118600175686177930337393606537659765806632867698259074094324041289587863696566463801636341229556204764065570933356816584008161435772913164400901449790532687400016759224756852201064434884114464128381849417936668230691380168012946904620163366100049347026880693236916716034385109756888021281154920039334310778602722094502953879901503154153481067311468364461218514909528065255930064752502043315805218639671686502861980365178207952763328359129478567455132952560223846949476911914111080874081983761926487888078410311909344182349929018654641174540547909252605781974806995365012312025179576450904486317253189665134613124952553844041560901789983491044698856200626627461769742083179203685590943653488092489338784588039970657882012358954519712991840468869356139793644326943922477766436112700696221350506334038072584036134297626440338553132337387724370508666898474412695707863436744870345748157769426446446718149719386090743479028903304986266837959850412849516880564046227978411962019687238096143751345062235190752830919025034939783390749304087944695125274673970948279710344403397217999083770839634526413572784846476819851117866629771847251203889349511058455647202262428084585265343709989835861655723721810616317093044263199559325897395383378995375185340055898732161622673317830103341352786804386219183562020980592458747560533807322944596177611646986080990250266348014181630718431104227807088756568045386215520890738352068980192540225499361422996980106953167823905467442796505715756684155816991320182208559381646487129011364524011945441185102381321612120325106900702658796116094775286715340055791139438573166251139052432889620092933842878738498588631160089220287548405233314651478052092751911559804092635072444862763048981682924580817550724456238736002700757791181109653166507995834771663829660658784215957429074677183551110798651429783539313822030235813413504161657579814691802735004891476060849045427001072907761160994263866965750613652661086587715921407375422683187911692734542805851025298069426565864401833962304389912784641814385893161487590143745295421517774769529813395361400994677698505820887693637223076657918141795451623630471436802240115736854456837667272865293065194292524783946191228341430580914914464908548326945870666867869879693053226197586512517724065840626030253404489655784921283326459693590911322246843916199812894266600584334104037178029588698676203198958934388510850141282049044035874703341825855071104059807648001356104272019429319585117892975723372888103654874466780842333693980812653264710799090165748722600899909272929571119959154588066444332521881948313183436738648758858178951879073776332861764144071027710737247845683220264789130686302491639209039612850705341640708098523021738232854182903731874410625426415280543573829250028991050336755521303222625370161527474714172435073451958749368444947296622602668414753347755284508962754391891112965817706391195995385735195260546616221571718868811005238846321337216810958592665503884926962225838607470453041835298405544966528012991100099511248049764540277101647783263207073050035193130475239308980725739800085107771426087441432900562028958622026547647898256908742141470844696093014998413211777296877191929704906869936828041282932247608371871800051177883101814973413770190301027271860147416894511389335143797151430650191776036098370757153247814930653958521941242039399405027817917609587554963152851426810229946728294885846814588500282646985422849917223554041537826450997821786958758183597329110103891331716639655223001598894337100783950688109378287939530841938892559853437561429649444818638903128563062527623232803988084877657091245111456458081101352765703284439423247169780185934846855309013328246140713314171318139424908889782382664359851380713631832525087340150996674330108769725422342299880263376466177727177206633686437787591669884929228155292825720120496977908530360936803778301552056370699191815536365177236949792694853193828924685214208458996681137524277032217012427666305648498155933349613849191579694627352226195447734503015066554111808836924956541231454952351914363971655078196065892908905640284164414889995845021396748031124182616026359044918051246249873054682711167058403429306137406690764160989476656788890258933257053378641653936800530547433997756270550385647500092614619290537230118802663064454700329703083107141970821598417182641780319742122648205755394169602124059981654407035416321365306983402554983989872529433726678374075781191281194113854754289149824156766475685191722517341742121849395787350508652482210977541082913217002508516351448511714976993973770920482175922990851928450495170532653545533150831006970905496316220417028672657016544519678516291786733073611118558355778246216045946704476706924070015469318251188636367007243190564540928985011633641846753681373885061777445721920476816356337356122798400979410978484311649292759997221051218754024642030808439077640586776013627882185392604468276852132292940787081072860204681884048341005051612397420218255544914625866161223528078578737785744865306141175935165012752102112974128424940211241977343436286369422431710931949743068864792633185152650850350421582534318805242590484623899608754803675795856668971034550894193323300976504265666251692499102512678648309037936415626119638076895173931907215687107746818481800310807701221582158460352491423383116010652454576813054430027799878621408387452499871013958984302632134718129683775991672274532031860484756876653446863021790765602114548688969563290381257324828499410199217757211507811245799099436550653036862872748735481931264947254792329731752331175832189030577319236190883517250573683394376366925092990621259869633297741612311673424073414027955279233506028594072510549910465699566745601183440921989149622692426435664665414260933548142418042181798261732010256294212038238750351548681308438600467761270721349229719452745095094883801512195706465236359549299929975809676033915321729668220856282446866452667985835136431002559663693212576582047458446052815071305472678889884083656538097550988842548048473678104444244945439705168413527797082614151452492523070393795543477741043301729697126827292061800429399311168018609921179604755107747484011566314486713492755650085050903639158706308544859588794438691572969438556093509648876749902381180118169023517119584934483716053402193562657571900979381868216407313175587126191477359849007220563517570423130820809623122142181173849355191302312267137440413196408159688840055285191731894941448823978990191270389416236034009302568305117105227551416274819246004044809860613147090763479089575480674348841564598649062531758011953028591373062437829631573029656021533078868496612733887517313785128309099926352007360870741422697749513817487671042742074842513091388904590433485794715393915349112145677831456696265810989151856080444472428358408604977324649752736208443832489820348348303918706980665385464596616411069339196437843865510644912419197891196666020633721105234785888355465063443840688735606077686574896519393447938652388803548941137029403745466972559552366801342465049286921278438864325256389356922640324260849061117605588987484771766462976336421861625546464812983789411665451350910160085413366091107659809181717401595333108826591890122004786918335846160195044537848599279805882614886860131459968499129345538622740086853488783851529964483122470522631142740125231809260757845926837497614508706441435077305426936459307333740026509844744044248820519341674930944455373792455229519412097694183378053784555185575726269163432531735402368297501739429237910510561550731903758762796171126964939377845066478559447958978745131970820260421438929702968909651259894230537812337999608375479368571333041465137141873049675404017550315617074183666678231477309611580147264561925968859979816918629065998671533807153609436295126818414267895112579293326826137107418977927776480860114814131270083675235445399572023244304342220696489440657221250564222192528540193017120465980698980718755647246365593371973471791898085187591932234949673027936390859868420258341341729068202866151925165975281619244726615061822069178338943384226046382390006987435340515277971467248580145826146475734662639257876427441139911724201001558694233098139118884258074630382520949329613179093590529622582725760614958466378151835076712658719741716852847236923324008472297689533201533437196343955181377694015272455475643401664774122337606230336667245018244481686247734177702893341778008066525802373846741219661340558347738386628124621572562398165872888212643337860819893233236282961624135380758345424236470728655148416167411245307754240039295956084984968941648972703992346036488555137954271005337571926908789849622940633996003587886954027735473526680536072907414962753233991396785687678293890463317210680549333125790149846218706204549383819148292449685757627007665994648381271240969876152244113583018408850264722238631132238693125805215233293120753147234200699430560069273079335391004304974367364825000481966476491006393249080873460998147432828958836653435102570904530682713038414093128840752255262882088634636351412197319705864633390928931514662309107215677598305385633355227253344053575466041237289870280059404934742697745290628337445826434573298756565365638992748517152990322785529675710910173148883328635108736898905802788440118990088956761104283195351054509573414266442250808229366663337717055618092551172310610272062739385290667610700409545625152074012669940508059571440177276622233141999326181696456985172236353459163481223331784881031983112364036720597716355864417958783139821893505139638059531523604526194074994054167763406651294460238332341524833913255901492126849601029619683723531111245132891362305081184065009465333491513810330344910998919944627279286763102022826352530952665598522917646692180934997047071924712249395575425650400506602241749036455838002837228421009128148877367748099734163738152945692732225261528004090818290710176912216585123036355022431931341799869496703230768276584255315135313274754524732022474089385777160555567384857651517472204619556631436039749709633340116261945343548667177614169877966594300859254557664701704742085327448450539989141900094747097441849793273623411098337509445683752591161703321356120380692496503985827471283993473588579068842574461576984025768317999633928393992748186377506402378463660625715688646331620499833930897188892118353641964648625247576934299059776432594366369553757419002068192094354632783671013320073126225602947383593703688831240101545305022106335516934631209992886310430116143165608404669826872288865568723393154200200991834268920100756449064842691438037912510322107520843805403403864707438062903681199513770930845276098186951905541290234789534551558756598270930796010005158964411719936234210462805347265066007188283599875363410520010848238235896713580322743104426093198141665246179834145951615266547242641127848037950569798353756529641417523238760678141549576291738903769326384377412733679636517955943113892356907286470884012883186541545254497285313594098060967653808226940262349831092913366327560033639514589600815157469161938153876213643881172475641248814127348874631230230076088410458018659791549092957693551225666064780047389847200257737322053782504346511929028064626208953124764454831137004812724674569869382361503420784485948430598940273170104179048420632557705103552159161525138038991578718197980481152747739839739131994035332134722105228608524581687104578975631732056811206492272200035807091862138048102678110300403804270763425162503827887566463872046565527880579942084543431395182085314074848099109852974421262277484019871035502920913142013969772995871013583170126025427440205908493860140190315245623533800140057328218251185590259525114636494905914600154988740735105482764663302320160965116736238073969836362211840510887761527938801596807827470362137713118649342276147120433842426717204027393908700783100058410183342837793172684066157488552191409399537253643816646410100341590238573863339258739312057386188550762828432836353867688184149021220265327584246418819328487564033972158818758075112381919113956509043877335910885587077916957237235237738164865721752251465947607726951181297988737491259240924622834181067965254250829858550520953752340745238388982275943699031513476778511155998429540753934586106135244581590669744674662450901046795229886942352638721668506002658801565727277228709986918598553154922673155093595292111262188520894481196148448482008451487331591779352375982443909151262988234919750821901400192757988110567679595606341459407900324466745555430840008058692654800378997988388130634382357716454906950551902839835046309457119583233090716886028168917289819598237907987041899601335200895354176853595725078433364923712880053433738232295556246702684663646477681250518597201785181620509740155594853515410253629641239219411396387814603413280454163879812071369180493200154377816881346471800522792611445947409468701278781440961275947964971165632367956005272273921856015671793617927823384832733665414307372989134763145277179986968030096583333419074045671166426517951504665608678076307041644476982642019842100211930367497661478432087808509638423572121462670320240161479303221237462819564825891246349936820400232199893628299626098297093426271750777306434246732663752023045431968680474701427978862617642494408793741652732495578744299199290733718099181602282123513433024445075617623841449967074591595346004716036030469245432614618884665708954658074583353914170043902682992382657927247093948775933339936364005692591647759397637419031411173318733780489930674842034612516209659041831113122556451543130042595148351285990444912674230372925526662031298438183478988156127694450252020683675972692071084568470707731840173397997784931102386692832893476670626012679104884790922570763758693877286151659024334573223865956171774697831950143345217137112957308022690246599084591721485404671644455357426474685542664221805613561004477073293501030627313825170747855611149905694683021279231392420450826657187030786234823114531560768977364184140781498424729862004169726445640120774927839430934155449970296630901903492797876410307023059933524684192417299487849550000015986975375652765411991966052446943706436442725805713178446244170611802732006946943153466250582167266482739387162167928982477251361574893423783860568386586315291259864005582691331146685373071000086895480275150590251646325337675848486307158128151200190222883530986920669815699280556360538282422674726531299070859146041349907377135984647185689088699004426669724074585336363506718210523489807600879974888834519321561698702285116798170505774018161991837205899653228860542278851380805031385155402394523344238954908606933749563870954448274669027726834684927412167885288977248481819382244942154344404086055627843768929645090499771416010077267239534998653910559170744234224629516556688933814694280297498007668780715135201190994666320822281760794574019632284897574175306701360389848134277802756540649705425354826648339161774916871956214667091729829256700757541475912788533785490902256723570272140631408242869495914026375709372597902962991894372696683594438962212546165889586148368719970701051840316834628320764322892329820509062505530989504878706686639515865535048995406037735993689889195806666212363281749281191715986057483553982592168706340827688993332842705613705290872387517984193684282483316616799043251682067380320775117382059702110069226609577926536324431020901992829542214859134616619433024882456655709864973051732339376958795491817990518123445508979086036197560115182962657875566325819775065284649909167919668129983225400203168378964345839331701426212448330793230441806585542035920720710499082760982536067048870240229543779202397086049338714491479778285687265872343513266892241098097049015655689208817568335666191954662124739813071054486061569287901749181849469989651629855997452598550417461568539389493850889255394325831889693593493214604557663686431943566473818640853401678698754758887330011090988525687801987072543360305511969613001910053308128742328772063650380188555174747113940038110276282552078042361000358865947699351599839161238625486292442179051421158297682651084630386427815818603466994782745239258188436013065548632289645627227468012914029333776917495484208618441178501721814511327888240998234947238684050852943280199897690191565520288794391831238760982651723972338740091429927789091597431617467061789028264734306912937942960428052848299451052768715936160476684041302421278770996868615252922714804049784078200577847028596173152334112360445652021701166683946493099600101016088198737924769004802820964438886142705458492793143126584416932601485228475426026859034606201285821038171177996424817728960994208586003568237446537648735719169476662898659951449859560066973965936367464303213497017632996364708504290988403500581883616698416603634169430106885147660612922103484954279694639769575621908724736352801279131327921122040728417619623387691184324877633701481641733059707947712386891979644501236889963644967728574626588290004132517714642225919550525750876635265128447700577471616398852111732848486806514309434845935652461484818205598543878437224825543227925930770526163836563530415135616819479466721370139479479335712818673892113434286768160451545778442330785602565617963657181730610966508048046701847633479821667541970724019532912254362066246089669356979937561460763467568174210542649136905715372234864734969277896449856189684207145003101033835592107786112159049829381587969405815380441703605805664806878830964891877389614140133303854291388923387180301796364953027311331986863911552045239983476462499465235871437196925139251177953704564107384787387912906595074757458584503300582800541498427818652396140825978815807032258921247129378581670364303831616560494721064519369492037604564946366385219349806721654642910947201622596808582015857464846397050265789459202737311976891287381447962802831244219594721696112002976538589200406869161192885609640714274908053857447790340870183175742623354490513642810199585811195908178932476322941014629365028040068995301785735808165293711818107327332034645508446035154515963067114412063861347546111030555819069690131606111572378820371358181930101409831136738104375521956743869379962578661931895055234379114916152533473211053386725334379354966125011171425415470017025844791572156942018936289357715839401295989638817011129845834227198645570572428500301101208811165550522430138727174890141589962656063112879302785958357610885159008700057478998471039637610748030257547707160341064450880732111667895175607843666398049478339836625295137821979150679027592117893185702867514644607208721743223332453129921337296326639122701243791193444013775135894991036825367898882780596153653185221633759539962268292448572765615088486492004992634253199645071250379255372683964745762411529080317794551444278796724038680569200573775842934823525738040612652985332097272503515548945393583877304009217689720909071665935449262958524631834347460330453752483155749467722040635155867494037822211785255636924632158967056701938560341016695297319739499463597971177914571090914030009046794140144580934029828452410188363687063797987281973139024515871678129083316800611540410881280293408642403054606704994682317342649111527595469886070037217368984356576009757527671611904589859931331628879247710062680545063544824543444043461268392139924258525057932830276199466080768314651501949336448422152454635911411298459605877530244873048377003246190956949452078687047388486958964901174544861659302898285344908798821497057147392931999736282762507636823850352043624836385848887841947545074545307551102295345650407113787842019024886468198709803381554372913303821856734945478595240307600408298933538426301570585268260907268919888150108831905420691625527786375775948122775482534015933608953266309092468458438605372555583197088028309842006057903234236173888440241791916301336895405633415526417246605655916167812727106548222995567453568031790425540302252131160723842246267444318004452483758326200469671556313659020907702540546873957420581556592514889727997871057955277420418101832711642642907114504003264484758171830721157888450265342706547988326394816388273762135495723732808118124872816597343770282757334869375869783780668895260032380562115850153592866856966181724781713912981236327678235980171114893488677896335723974451558428250564243127481710915412841667661235313992733238462780661423527577946573060183511580078199348984495652405422709239118161747352898015123544448893245190047203823210168619574918537097422455612757039598528898239358684538631689207829530701313371046425258341448693919936429995421443664810161213317673716795535074277137909497481322753943336036638997609578828339074954383353069521270482346093214102135944326017227871880944665313796851443838169549409274459871920907384631907096070007255635121097482111907635157606723783399031115724779943291596794588839560351602800330924378372466460445306376923728194155675655903821635435902242241616717343908639553091197756648882728082479843188865342096298980337306004721316772931931586655237207768109190865576545527608178503608616483772933206080280076309993597235818395628484819188854321238850353662401059252050675119996172022841122912237971719693098540621628625251448316920492556011981108667988618311405742878228204082849553324783175707616700798924899219144879470563962797703741770067122753958011559671106275153744192615179780162275070395911832602744535927267030803096965596122383271092019888863964255758440191427179748583121515425952690351773086868852019629204772523588660621994608602284164649681710560907566000450106316379219020213231019641378834163655608877494729138487030440623898740517964205158859012454656995416160673657283674263551934529286337336115041174753998286440803455121527615098298248970321608456242686051214729396991082332457029994095004146551432700633649520814285505718802967022086328000571177265392671516817829543826663185950533608139778617164148532579458937225169469833548926180356504815366297118076059364866464253325127169263209445788996462535645277439546620485973459902480249612551748476579479345619383560126426220918577070519791804814160085767488342814476163185964575677530848697352693090436460192296715947126777294151666546673891671222940599447148417082099415633125184905203364970767929570492086083006978018586822822236563492543092872395771197937555853195999961800653538270716144529597407087250838187016701509152286289235661807298948919812322332016030234140659872192410043205523282247877868986842709922079746660911690398666152077301940262209985978008281834940737339276674063034612118046973888491976752807212058619594994359231192925769209014935548539044358085972500917831357822730270510794426239437119862712962801319361751347067350680109534576612052377322719599670401056281981099660574767596576525140786922520219444971493459248463850767879423079237586554208528835858896225616932772862246508748271812114205522932639726232991463464272729935065700172431162234317874367843109050442774022910035442054464359560613675912466912267139739666798663822138150153033290608031134156431955510227192256613869665178465420049902449657531843835244915303953869108576266033480889229632966736645314790664616992191880952258366131895030513292259722165356035974502826271802880122452287763926366489517915910351132645995199165063793931849291665541590970302770508731439970191344374977704393195175155259259526683865731012045258494624117348563239886388353235166050144986837781367495849772796467781063504005528344697883179386971291409605321258563558125710351088958889484337166873462012019126346628305496605279732984193107763972396117160309260015836401959659225096705483932984953020910845683348728064701098288968221692692654276411145776663081714404501711459102942911293695687612038593419049645513678397853138644901739808730307407299152835409423886066155864794902018295100262578583196133747206785235877334148620088777957669076062895060075168773785015478323868521542535064813543041063550246667760176066204115237678888570638421812077945398890146335845293257467289170250685703328125581900116427155757300934140554847803915390455357964680699324866175323825601060025928770703679238678006310936069575077519068931845956905436099720666362184637648828816421404548205733759900436008137896371234603798457880418184747463969053691535144673150129434255258729201726746602287499038470338854626399142920676801534539601783960981009645360329248521687582918986777238465385243497482846847921275452107741440620667482153783881445786275332355572961547692641587016324133066048074035244073144576526075847818783033707335143741550838193652267095910526979376589170906393351179498566702050795190609737125499093476298523632538287868810234117653389970543402107129498648499655089000259385486946541132750554344741344852286829847788218579803324496056807034156111179992647430300446026428296429299982345905190264109286949055182985759967558063070666407402505027113647432374543969612984601969568699289705626663665952252857168751796688812594937601643203798376302906309989937767240855525326329700569163920165412176611880918357046771184489922978691738088465612099521518615082396167028543459512810109494957747942453333046217974542950622398997689539854534412081453734975864797504624596292542964683849248341072522935510806239434214110799881579291352957269908682595405123272608446597501061319273095988710896236202039648464010627212237891701335889635510925287339483869331417932757662099412784426441958222489770552565748618270254392458227248018613545846209011628279042223538964133131004684811848034338679342569070799007479388795727179034036894659510872038818631027519227836798874100067143441080970894056092495429211459393167288963030626658232779062302630780179012166271237299074991193021156450604865458394884793860418736092335977648480678589733070196860454928432201873595751706583811712674321399745473076583728792093203976518163907453067059212580711492946032847429288156557475038820047418619654697303137238191475464158928754893954322942305557064198764539494598205465112031756181249674163604836346628232105830323783477692839383194498541951334257913095597951325787792100357026730572249222157589619512202121808597371832115361859527641437596356612013582699214560914886343527605139220846157171386564379368443788877551205607391358960607129471412393503814500592694143377405919571853819719577149300127991937567398246999021093323809999188573990815450968477942149071425586902166420857834304932758982222332183821236836308705373798794522298027086208524594073445221666157932188005843842814959920998748500144862152867696381431324937161837618382725288536627292303933180684983299852576284908417649660252869005413460256064137088435697035018565237158186733946209465059931156006250677531681993625105768407377211464667778027243961025474562850681521962181517954443353379655726893535240799641592545718810725358337325197417726407607847700421673174287785015092103369705268009284742017076969701074423899673916380344752697738501145925251499606627704053377136979941489227565268466337014659372116075511651126304135343368250913143422311744981312998188352961486703952633042870560066539688790758874784001743093939425171454731938558849755964848628627705282950824235739948680459889020436241427904801318332171521297460316078684540213597454477207035561258758959658709391380507029842877905936470787313556885863352698650008318968912350772270981966024900367036730387484833410490793598901263785973152448706696437557133859093926645584169130232664881886257300946977625729150839106820922647696034337573492166211234313448048940285924933415534413506440856882030486561478541851996072652771653652095315293211010428063746225250998234123991214622315688894562777397947832848422116604535845814939717086072208306644733840347786419174905196908509872643464149587812178311330078529082015307865308306698162206976052215010017407494428879864002424327215263423576142205926055170669554603174920210331197969039041530882454564046951189705786834076031057998333898943754374112587606880670179735136895728380781762278755595901275544889974226456046717926501693376939603529549279008537484186296115473336854587367344345977689635421145128205202895738805074898345830917072384532551974706825323441929932857759013159578506893913714894011555762453007483406523746908287415135991970294255300015382704231424002373247968558549490514320790868007030283532008809407889546915140412276650093448331083351895709404560187037412772937033947002855665291775039037743250907766766329251281255939849664573301939081178807333953657996387209230193722661265714481535928791962807479836609309787429310558123037254423787415823626781125189664604519767488835133777409963019879402398908082009753333285876027800922887557895637307376104139636937765509184835932033095156328707776426046032254312220299148781719039949565252350815381430069458658708465324984370246354263533038918439192913862268022198172327833939735765543143330438800168461186828119067481162062613549810305338633973163438982842651208284161990567822890968237224047269501698261045549268592297105263410306299460467885946841032760580189043061488850917195337265716489002226829204975299072732279265649535121278260330344234755175518903381122540806083370916591399714941855103902249289962586523401609123712037914793875283088979862347848383808035081873758052961296560083429448228288130046327414162109179238239064420794544619328437863290244469151581163380543637366204037039136487387147597752720620549032132567262952584797608208251996896620715477298987366721788436779072329073157347746780998700492489230070853737984902540897624365785891416284831675252175228699335452183662363111648037435166510876937068012457894511906233472728101946963814824090285168495607738687189353147991096171576619320084039362974506767943431530368181768116188872723051967475205041644701608405592440508932298822450182311252869304875118062883132301156881147351280170328050388436878034568380731539774106044632723129049426595511117345248933675599686902511107949781693801933046985752730800850075461519156014088991067085105965891532501464377225833042347945125017297019408735867667159927725946658541922148642982319732238031371731900352651966711466979247257748150252674775936264791508263295423601657843731311269847269822235665398242040970684665163181999156527323112932766257113040450905952955675621437148399921120838439518621402541665151101085710225455044157581208159821665666938088688038467782686508633143446238627735275253052231575167944642824253567323761298757341542476281543846277045317840593081863105663537117552100629114381927283075943261982392076211009183952911353355383027696472366675916455088614883881886140198399926512257957489951590762975649645717664122552252080799864700363573749689306013088261006370283478065649148826400474207037357762261603149624485247843433561198015412836253229004179385445181126949162521185218575128713526301655752464347195030437492427167756962956614209008511003437224837766842665644140209549485880926420033632407041223004844127097455254346687111753821493477804856496177672807168233095445952634843951695335305733762324124670431950334012528219239752657220932246100102618920967906951793129393083589400558535020862217869393233207767540299158947285256686979991790089912639865830019866903506103708698687020531686744718834179349968592623357677053892547571647718294162891686477978244145703224437637472640064574907943526828529011357054019678961474272590701332717151967938561129149585957412666370955448427341798370876509685982541956083335501008960482984459901807258598772502090817390059310895434326778492359085002696910217990435036204868816827176379964374959675572978202381256407727910270824608087252995354501027877166674192690897500267770892294563223014006581628405978840283022319906319475942711530254618023017323876147625614030599548096399498552329165510942077157807118498141540781508698160107167508761611823925381107895237111301159745066501782985808846896269454062190418410617607263857664920910414897134875972926275913528067672643073864329636739769593072250306301971985984348535871009388756705698151297647172095407275746452356035159907987140494652408208449482142263872843160326040504515247101216571551807370260803694597247398505942056768782013883940207726597684788525086660268979043174089986077624471792799560762860855142788334818696782761448967289312053925189532786977971735911343295684932706824473823747418529648404216163305333073100871934329550844459586621051599832850264730708203107248475083278090000082051119487745029294081776147897152566578807929544935475709286664066661599475847584239836625206290550669396123694204883820928897986039744351122244750031836771070854459106513182115716098938621391991744855944090285811595819550280831494633762454836952695293485083441681053500049851933790322790284074529223963436760447511257774364746170588411239036876731056771848198755896415072121908532217100511591760252123170408971378820807996613357672112560434240220757457150583510976334467328003736071416543308277316165968215216397514711569862992045043457251534115880335449308551198494941214148807916472284437700041428094520786625286385143132383082229170774982926196440912738078224751052113242353633916990624926267587068283521352809408472402190868535844134932901127390315460616253125725305246847869032517899038041644796788224545530394232083291201589666223581158768796225288973273874106034451041950452863361052369000027405941972374431796700354165295899380141724723345624671084165769796489376436946645510030217674450507781430814091381907671549342925041918237881442302522263814428247324011842716871007623758644148088807493995069387054853868408011096530227857390010297252536563872875188874943080726225866299351122825881248874938232885254354802144559575900595921908900107541894314671766449927578604430308143365525593362484149552912794556963721321492162118364798628434625469379647592768792056327063755275333916464151882085223968510562674741178492974285809096679746149551386938845974216832117423322677299851028719565241865138951929718702867988431624293325058255655135705564461066752954926877350630642351414922071023773577981088981810795841674791798928375993023712831314766719241590028378718591114069387536078202756393115452635135143892285469472669267283665217825605021872015807932965492629989886325394422034817659584969859635195813795465882308914041945291860944406104329346240170295869524182986630206831496384723223197378828603811591741254816307089751414075952962368408614494915184770539010998711590628945824973554539606876559954564747800444928659897268793978371642786225501688657614992217762377954467230535303638113517509188764420216876626889650569196851043326594519460283975906864914124568075241401360522405807742796511968169394320646967182177633483825596009459383646260231800006416128242496692526276791621040426898417357474734993785541468307400261211159184946971148583671526379419384573230748199642785981011966948948396972969276897664037578245462756533681515425982238316668711491377069379226938419256629037119503338866871307958970177911903914655636001243463417579675513447888760978199211246131299988023958573585514783615719188143842656966301451147663776420366086192813708721719123154680796017049260290645522225902819566846127403281405840270226563744550254659880049978121465356152077206195134043896113304965457572679671165977688511224357266998294148585928104716682390683668569907645775945346300557082064740317535642527448929862187048024151027232487675816702336819259835253311553780703204553950166042921322001661653503790862093350658195794991595972336366465096321022166948625670300000210119659951943195374490051323683307969738150518959974529807163434997833016364736910802175014045646176961006699221389033913809916105553836002254715455887931537613423876738012043068774316054100545470325323445927234202387514046540955359344753102182727097588325311161876494416011763761438234067390439823081359557880345279558883641774516217809289854623500472411196796640054292159537069735004996286529441780484162904183262133830624495633227921361097347804555216195720558389664465164546390583663378157581486191893681371676498778911357366249508831257148037792592594666702992285311226872634791637146197658371074582892738318100363750626347159350367732650644946520958777498827871205592860071408489221897949196137412858181132035296649129029923888153686242715431336892146314824942560410182258947298500962727595015790398025109562797037150164186868833036047617570804611239586669377246087725109935067614309969422002675075916534065702131544682420315998933839576117681122743380665057361262641541725571578531535530500188062628736499393220070963444761849588683075806836001919603298337037107855126911253100752788538655305807541884114656708454611125372855619246510782850880658755727031719627074009813087503363837806959091691288732254698318310657517122662672274395535456067097190446204570356738595715512988837850260317887554865423747196893977891263226477406120599851874646357015546535960719072523531962691062296070198916029834237329391861641101336918617697119950933748900353873727613569652338279430660126722053143875672069942250078688128818145431499136253475661562736038061432060730333866733400991974699895955839679359870139017580387511334753353209428582490221187803083229457411109286380662643135005354376031473251037207654867094714323126559502580490038175627456605775366694756203790992448180257299082865442026948913059551006048453580811672348080069474580312819470677520726159313559749294578966183794533232876802306355349774573326119550801898642647978489649456316835034189792257597261767387167684608848473607179201084677443538049248784226422661011707054059144971570079005878325037372960956453917691098593076076256049859801857594199074234201522470586037836519980413113139420887190536551716688832136935839288576273228558117872209318624704506637231783482500717546478596835439995205339175109658071175510066573864611790436818821693697592523272699154419532645017469442612922637821675823266160740729652258560371240068294980065775149147111125204880336625201199717038027956734177690308690192651592320790961565402599304541310506177271971504498953931462666410028392472237933278332677292729423080704574598692008971074167077510940429084814667316838051246512375188211975196771105195346406487949411523871758980169029958864274789015304445184179719854824400523745695508446241541372934246304792231883103416200833530587720782028100153000982297661914759554076795254034278793726396406733875365857853369846854386114386601414072132434809490411460975498035532365730780923887244681908163837007411796131004172479810896508652430839937418242210131432898672019568233962676345184400461654450125483920644268367707156428083961005299825153038411717499104596273363727455812990667810518805483955408800699332948238495703889193309433530283986141622068351832440086765927347680247223030511981686292804285808299265485453017675450311849107843486305498922919377518038032298788107559811846442658339555983256500573081210596615436041102003161571263107257049356516298703705123490665018182057898009830293904924876673130849736504146518859836051634685644322199315391731820376012268842675679090437370272521400806736571129762656332767263236584270965390681264441549479106673323065334748475497359221131819468278914422958880883442059759105826986426093657747573201400118686166882574259168381108505369558318396321662186192889301634460994780326072655084902988465112531696917298753772354224227289462717941589435010111505243659352896542109703320949155432202140364358113298302455095629680760807938126161625156609777552803751638784602601650995006896290519673721399318575238389221420032293074082952788280763025855781640216398227366781998841913106936457820682282249853949198551723514118989317629568060080604190009124017034755864220450774046257223724887412391844713459560489533987676245125988474590571221506595320066754577871539865424905217027016286310573683383091637815504802123488355680922019451895540168177748845142929857526026681783777817475177905902173580731736723746244596529147971223922391172879460013728340845450991285675896868434707957275549115160568956432811897119732629104098825794409442152554911847697195080280316590325772242900117297266055063359686585874093388929108366371627899828813898132582898145374038085080958062693055716071010946051734898097024194889520386175245044180872508875448654540410093460105737022812831239358213717231898329792913317318590639268493486471230391161048459911004832663764545951070893684507572275176901987209853574671136350788341388182298053052179619707292296929319230454045424367680487730197321805232725534292891888831552989431434340267190452375654286871953868733035822228054177703044509854357110326621197573227280899206063564775245265028773691061363634316537037548680288120182123106483347119747907430158485905520984966359876647751969375785791865210475542565362797047167047224694910372651662198750722034925436750465816166622594937027355141974544254186492758919035567196379469730916491708229720908691605645970937035666307469148244257805133046974368596762083493545592964140391306758935285754457595404884561132230632724619684861776752680061066385306967886422881190063839817771902989115695642493034033733257859440972857881960684087710029957758394119577201502188139823928719462132624280503106219317818764572150793070138980849344192025050504211424636786331264913682335560681703080130233650906700011339784876433158877955316136597298637128050363698263471475022147734867419330383244479474874462699441249916764967293367020829246582604459401921135069249797828664651425496140954792401803981918823966018622075006733524761073879145723066772274210157885808409384256641534580915449314823044639698646324060223909803254894163447921369701226832299937101264665851172009251368448900250828392046018697273254435790815289134740143236061965410716699400225472948818001611371459778977506220185173104824714745059111816792857269599926940121507343089339859641732125067979852799041369003900839608649871168743564622003718897065516507518148044002631347460517142013874207292817901652755056444230022021115065184768073004835492368183152537333202071633476515820998641224984124627654522591877437831160984816811051539237365153820996486070296275275976927620480329784368633141432313471321543958043347895071650970046322222645818036802048332066043705642402208554493358285947988666611919223180767333309867465284893141876217856546438281248342275880378123995091357245534403787656032311673327623205342962778327610681266065188782057852139817757467429618479685520191581182640404441667602702883929305735640703076344418884725864000853907162723614913249293737790160985480710170435809403265877515679040212905919426398518708465477464061708937998379125730007984480474174709647745515745410754188878631299925054306470985426718731999508642738158801920588947031986732941077871822219598709399371480481161763855964684036951781787086406285136493917538167750231745776379089703096974551722203535788412690250033021072643483763925358968434477800459963240557456596697017432606311059160030817379326800191065751480693598786789057132904829473746300164161183429435537577930201006674604910571089030576440127919644746915449721605729793863297090891300132690577717527560721818160808786536203496716591544087689049765226532115228077670996481507691249064840989292845975016322848281557456208042033008516275693672727072648086801684378495451827027152702352507937748770800949978071265161191132805760887571983066027293260575753644261083143009591946738066809733213824282665574630377232934059125811897992840479524720429517148474753191591458620304192856321656846108034626608307398364408453809668246671241400067754989179308070580872365644662674446629531918627189307195210053831964087825280939727760944681033300738689362679206093949837019768812176422289328318086637204101558445770713526284264590341694702552752276050974674487912098181687762317104162985518162831507476555544531168194290982365680893965402742738722626233901584634272171136527578871710058333327168682871473340145692363147458783724244454741939960099152315511572486478820703263625673294656562450855736988662374293189081629568727632220433136327288622088341418536121456663096435602872873902897935166785762528343133515630156502454290738117685673202371289384968669103650552286190335143293625152602102565095904619202984812336433446367308330600301368248561972259273283095567013061169270599880178217685069279258154484090671227716144118263676801703741489242268371586651382168025569905824810158830544714097115133019893130002857250984329030251860167582435933684952147223344174062269958439922866474172010833726108546976375855676771373762577876890746396858594200501630412677209442279645843795568909439467489094771651201789963325559352112639935641296727503479550128193079374721129851434870396270938081617997698238074608528295765813717764588266418619486800557036105269821546659113693055123399511083764250723209410672659674053835475920611685575187952443181371730443818186940476419334980387988684467324823336916269110532777162507312391222237180543874792647243854365404901057838817974528941623423883959732071861304356009625419933877116039962951271221289417863558834928901857282460686571661176999195400955181552075496243646299618862363597982503218697607934546964397518910498684382453605185419445315115812207036615919952620871662141952480857182808143103345098508429910178927777328316120271305048394930186104752690955751434303476901100706569823938276492873673011763676036242898831413855746021049085405110190464943465800795821607386098801552611498759198232250654963284594645249490343207098005017256635532705028774246569732020823073926975476573841567754731300749957691694897645897568267094291547200671832913526485656604303902832709370640169035242943743328126386225262623686991319093712295245119990505504492215958195861647348389848963570868206021290794305275775498068096278005872452218264237445743401924198147644993186670982709893663169511158095631588631573823785788376830340268638075283089052796496392286901723238197220314031500010536143403214354017101482991888097693297147555215340394387076365877799827204946182338247203198819307472168337728767254693145195171788031166650733075639200545843459172201474869250311629689454079267860756890418675568239756694546130133425064984289632658573203290681462125652326233639057108205037800797470350083879234987927231958797309973420676394335429701207533931617908754568172592788464305522792009330374766565165552414012326074610156610342358144780408658239424214618400089136841879860125948217439693329025650544559716076094733583911786587835991344298859229905276687826637416815388822632175640975695467366061788472407333975706087727506403600822880150990189811150307475107536383014317728318842218209934853111418095599243217241109440840112528194090985637240489882412499334816456849301084604802848626054502692176984835941161832692280529763151762840113285190362697762809239315743279156493181045350274523496805715274600274154617980106190921659386904755012624306869748689833250637793382735538395972908451763952504390221420095678296056040579998390006147167095408493319464326675816705618148020228430088140157040536764947450971955486043715218582735133312988214906101485586590625814275251844916961833155356086475022644306254812034642376756623457116447616909507168050603868129511007453085733985101156965785021897359012535396377064045108582352259017395686904650390009406846589134994691572713863016558922572377628984443741883486965086449854422243651384804629180526620344683170210672907564933945320483722702249015084697002960660510139972081255376226826927792669685555906689586335494056212886724273450749039681560977656133004941961894477524642899691417823408065684233254092195247666636827164204114528323477799505698182126368366044613117426743742302822731299439317440800847771269639689688100439505459824480249340211524871845903825625765792994375595817043350400668926678282624454299910697719007547169760115444208506039793888471968124735850550413264517047949786537000917892392472617708828775756498845935328984040341082500534476088333992016882271189559952680891958538098235723116782856556530569880945274661600263906257299404541274702122716004966168246621598343129925662038452244289443788519583996042213052102544926603249534326888384333025870701172180902167662109401142753620498773392167869547753389208892297999129891197984930951882107711000145072943576597629811944008084665913508341552834984628268075067868533341644971496161119817111280332541693053769109714756823362783479964386282479203375441371216885355938369628713673566886908941251551399135619482677978624112769050011666543857279920631578400995521988979080283943143493734265834894226357281289708969326073112209518508098672709694710732663121014833142362891564346851444008424630214401092434483427131144217918500236059380451755220801898505044915464614733521300506417179323581723783946356463044311735749897963514732685474686252346088681050503374355028634023389922279909548341807917987983686724221063012653024832783603548077154447359788550339695120107820596393296363485659970052525027261960731538747542847782082631832264897771185311997322439198279130792572169772824051719926657295485179694125093933383391935641910136493813819855799426898491277913647991322748205697499137497388518117325964233147777402627099577246020124122771675154992763656625408850566615496935808009111135243697507423822280021775920620272684436433738416241116228267888803117108389509634764130070392573216521709181353943877960038125461807831247770915310202228933308578243366892271010104954446144633951667624362016405837103563492358176386206535127777902071667573096027162214238501408813956399750710729015595371432793522453710008852734975327136232075639575160028797789413827415458080660980388318944804860267842543573304979275377838264054691619605104009326434137538481131656447938109063704684924239201668977042754430624901780378254888501515592108185819073650450473046348700194021243555398606119159161349234566082256706578774435303761706769645351188512994779163531074834218883502208863504100750963939392320393435647592397727246378359314486006877404731482614223214472542984812771970852853709915333822272314112799179789746015396491018283698919717824107506682768050167579759178525486383004633535036042628680547895145818739862753410254702096389790688917164901506809212243829582748722638062760942322890989204384019617921304518251995069783552909701854297875753414574683262973228648612763720067220334883343530839439918749695557892623712297399013199810681868599093757893518506453282015867533202894275457889128472435110430620071147784389543246381863532128443956950558075842449483293777831401238392803510778685874362373667609241297870697690503270161661991209441119333452910708195327654255275993785713080082513580218306381475330058599754236625631479888186870069466542233314004820281664683365361221285490990422955106144716367554906002089471453853775869697774130555308987809161294041342113526891350441467264751331503216196868367041975741133863154324050290346816842321681958388242964386544450362561796936203011780390604055394594870165665979632930005180321818262567995856988087630918139308046638145945828946594740091897195124176401472895810428717747860236668656917786355139625880572662474616603421074643923444708809390301231066173977941599022353758609808915338296104543101714359877078827313828612534566175923509098556128937682063175871627732716702606829712415371496258990209896536251177031984504495381615746506253217824683568455047766382416565863699517335701652174565496476232166291602474335648968613666031615187977081732773831955526304668588604171072298892550984218873928674851366715378220127619305290966215344974505175397409109463076076895056614426541033150258949033834088547481800604598452861531095351232163278260034149650820647491470472190055407001126508886082775060022306290664310393118700281179395609358508530387558174590281410731603296782486490835058892633792360085958712637892504154739314179168050357869606502301412301301758237373522481670941398653235126742755712794132977853762581002489353855459138564248972390624580742739648229351687993642605544413801858782605779705179551951530339018745114797075091845969240023562395641342729443853722125697461515538036029160245616043481325385736200416361447349912723524395904239979207845170123219619145085562219178188727936831715931835431673376311678797693079436290715088551904733885086655684702193923473254767645448841299549648119462324454074938580356734117173385475432318272148973041951405151672571919013994613016066785461351388592067250723258576007168641684779751592072625332414728977396256668288515121608640904239452312840762937807433708441009151527242923338486098938261893538529010472967765776338436009295479790489469524951487686215506915736564468562552667167294595725359913326444527739141817184034386645491265898282995099792411735406637026238630502081559391669825012482987792069306820406067967830019605769769794196333060324007166885351349537653929030995233822872159830126094232587680428235601574440302967852595680248762746392969715642261043761102690073403192997249102551522043486493857627213886643098384103513489414094530628456063799047872149796392896587748792962955103006549159487662797836684282154949458131711342042254923374746225064638401940516333711431087708139201444998108687502744422899940067071103435809315783077109619929698243414738632132099429444630589641641501941958330418697339138582454257944687576399257945048271763174190953951057833266354824796148617211547832822383670625567946163443400711951908009797471243841162569057861869097684597409552393980254863031666734808347304350419326601490790111814593838190459799932288344652377162981116788059479295506550731482853881520470402168518156762412604491566191264776163309770765808369527521716732983297790884707889179029575187576446523333835428486816654710893398704520109915661864213896280219055320297803945029499052116591794305166225894872452106302109975782457282482601564378935768985882321108371815605470575213809189228982382269876652111848869451567314091107444094040794923965543247697565857132070202177357516395636923972173578909903661747317168418918482328136326883549513132014069349362075295676429121463365607268346474993187706459012089884630690882888259504150485565515422801995700920786076167561221137255459074156679027135770822126256201808665443877360899070508385659905937510030301227019212358629029432657878532446053797699539468456131533274384034826603434955694846045644953161822683707467753657885949115344951295551213921392174032225345536870603733927243990623633322925585237139899952599170164813804453137662521748784705809781527474306119365914044624628657598360193004763278346653808649384533201914763992588636488864335582486104620276353589391290888122836867440783654484979917847429433035651599301118763769966977094639204140468001803265125034404401218978695675345036740492961567626181633540406780635140939258158580727063514562748514279090044838448388051346813376123495061126421214208779311780756397180271059066261551632968517613575564320293397927971660810264018314804926566711259819318961193061026977784719107060598754611861882955991155856552402797507588055809877679748838892802864967878553156290421867331295768298473401307720429504233664772325532699576344317109127190711001727681572570771425091940191008509089421753366043149284181871011780639454664815946374015187828219103552336356067047492317080170654018960045984194398619619189820319870581983904215604357036890871422520171454542039707567202557436319171398827545168646837675629711415621388243008235127608626964254002477333324815166367629504524061679788070062626395818002299837387801660636394305696607845390562747131443975503399239775893025426264817572500589430425815849631511431667996604377415154722690759792501639720950874723509408494920727470061865690646269920611196066861541626292834590348798164432616580903393152777126428551124031443549338270846989149620479869897910758135471667269550597880304897489743491896218328839496600632195711079638611024088445880522361407076773241702011965260890356094919655157572086399312617966665460050357490199791214907658257774610342145725120577304747354864509604928885442523501291401068580950553797329220599252217821879844580209490109543043083424363847930589138885248421690612883726426076347754255137445716388050079154110422664842084010271323198462726078262199216642989775016027721789781191092282688338293020441985603096303376554169459020040975619897753560631225915872088446582083832336204870081137698022763347006292549746573663187604580110365778122725346876199669342265634640722558757223593477177030639753544778818783333646913875159880274104388406658306869843777031815132830063967619313179509075642724307346837859341744025990640591116785589628758212362477913104832467323639520942255582191725282090548374623601321923153710727642924976178043985331995737415953187930253808851698970203085556879840696059708331400508094845798696506340465646529615338126118664560752503829455935732864414027717072261379465136007853413198018248577489229433555892679243870426684405614589889186406983322053685730339691876654949632376528928209854530197562935990784506738112679376752210993291109384483510999156002172785228681206032446929410004905104573220365975634505642736720988292793144058567893529439802823921360388232612641882531245978196627042032518061759472960607596640773148451736863778978919053104151720997377937266489987593605740019043451264036150397006323741847429450026620353702666652072436907253684005866815597985445951399674444260347963383752922254528781433975392937404030778869063606266761141632549291375522273547119427906789672367655189090781266587173283543187777040669963655322060691801553547106239688737473793627825698720370333794064175355771029226347124798207676643940879249388285910331707210959640072349241155599997041330139775815657678250909037114523955659057230703958752429816475205856519887807982105318181098841443513970103521198414787199873874376359830513303402771917019588665486296507601864562776605155349065056725114827853903557489555433900298842910099490532574342017349941165874948883909701172037317366584530523670406974478440702635388357415546443629398724894625583789157991365452002169324886877562825442996351066790718940143474686429238338196521892992013870909169855440517110768006891737937317379733500343829647221920602536942064273066542730807031259767820848773789117360237788075426469833252452903843109695411694612005226895081291675809313644232821674030295696017829867617588420349442976321916291457135130308564381408992883142311835662472914171341987432346890130620289913854366822438488947535661998708414940204369301010700387438812011483055907956388074604713662849020468829773289987374207242282252810035464372413671210886909607827475722672250288337906544395318668101096659501759652798347638592116241492009086650210155705755241575722626746284500918920155787138496378755391361144023572484968944117117760694661902642880790780755831857445758591324166203303346976160294035066428508399843721095030829420221654260889166928129052780393245774011235648179891566507132464544177502095644512660530822660486348246494929262571423133174500467469912458689300923581984636272715353203481673687528610770637618676732161281173470779573006636497158339474144805206253305787420591694068601686676073351663845207632795281876780617327212303175570268958512536412014923450072201586417759322676719189032150625977423030555779133757862364292540788457216195291943630518187866204768815604037487447986055441918644323849083712864713816859373580833543835708219637355536759868741482816914215381758629464773068873893590237537750229616227012044118079121306321781179044501621939351116617777477823688747403420662575287725038689212879997611718547585636616468420153276581799873028855992431255029668382486616727329511857703617113006799639862787576093510564895265936016544914466773944162889872193943581180178762562164859185907929779758386443422048494095844796150967708548815385499739975605468594901225022433886201434538014642962177741570153346150555751344474517798637290314180333460623590243563059728919633668569975625150485369224657590331998306900557668316711778404876853238134791617753769543302943902067391802534602801014763667676068346276902105724597916212837141258431664531372946430500656463029439886133222661417236183648736192328416681485559012579254203468624362143356948346418257937260605046793703225773736359571356706917439437754767896286782909418318370178849989240071218246532951575167317115766695484393684653332635465795555072835072057306924459407848881256824110928658243234670357509165240332411989623074670527325127367691391673328278272951936568574822417943906164439857279396905097216603447526984431527567907765201655471215589519539329465617315908410239545058518401568701845905313746965069348844622873627873097067164888248327277714172089492052796461493656636893873761280663933856618938579701024372306239599856936905746614604034766612264423180891064614710591457310075352261788670550770184188578474362794544330509725586085166983019441306655053191944211435655078962353246024577493514822338949486067472517430964808515704597749068015131566132229162330433008327618755407638308400856635385616310289147009173997309374436294297036492613176923277451470563001866313877680121666757709251614306054226193044950422862540200150934253664550931726496130489482460400522933729487757744457822099263367297698021770991821755473359128920152863034232018383671152941930937832196762328424423482908042919456919084675098786927991417142419477604555312758978060848752687912977224113314513845507397305322419112383895253506976720151477588665129795204429540309309253339971401323758468486633920076534951728226786683818763256296647075788989007047958139287425284632241139144737151979239538754763944766853763870176348487252089459200453807264612156645800516611677475740129364742902768783399805625944823504832291078525081284285718139418227419088635844506204121278167656190079189743481456894433697916007835750743234853994816118577514173021679504458799625931625760294291695895322269068501505419962140374583533392565260317050439638583319325014149276317907627590920016149504567129024716701400833023966691079145768298585942731103203954373156679687636980547951803935870888922736073183911912229685478187023509906764602330874584901239375096678213524403375771043709593385859956890545881189962524869537548489754249993211806031979879364218718548213315190745978091612436381238473511782365644080201811390389936385934504504701014993362203280475613724877356949681848630580376525984757879095530895340697283767610687912015643254003452036719168824543052159566840802187253584408101337787942205001146854557675811347254647720515939442654045639525680549353638105223633372315554404189355616353600045240925176735792364522535376739687096707681570807070665558360734550534035458175512130010138621440871185214226646238277793853196725636090886593180411208204338984467135336870716417219296373021944084192438448004982683401487440537060033377581032845130245522158745648518945486748434391330266104117227706212540417647182566764210232975996920173011546633736654645248977037782463504399170258827163122220989256368240856311205688746499350328382021663181981086284071076201395228526250053354760620313754914358847506288463485035932403407835270620773863194384409367511822294924367477398864454043609799745326986250276786568038121446955818993811072968878163644806613356629215296147685617515998271144170810097353293461957220624761401309247494550651730412727857844093482540738203808258886529506021712614112942308060223793651337599264512735774663063421776352718601557886055409171808882338721781908946704996765540741269288342386966677806705935509386724487536072402492786650269937893958286079024278811981431092231704838122338878829998562631445536473762940042233562535766404072631720085243115412262110009391045200324726998453388546310180687982593235684536760532364618297793609072423642750918485498293088971611587661326036879532053093160371666915585005510621601590207973996326836539777668579670901833908936141830771813434464811740964289605022695981201297951165348101717323083817300618017762348809879762765187060343083613104723940296752076344749716722416524075567759062989200442907860426021491411329831302613509894973887009961061400074765426068767885800918559073010729901646737058521580884861688411665449924180816982568086139870677027291856851766379569416011140848622594889708352603512115830054141056210743232010699153712287426407061007025284502226124616148574997294046051393775808748817463841569075133129878438300344365449552273132328386185717641857294024041951085209867918144871694070328239667399622995360707436622457043567976602751345005889251788174125473459691935222376094523707897622774853610135985700353371738210227136795783180377417692144487772940284317579217604236696020476866801681467781627028094367034649111887241038623716153824458382533620314511692151540008051066236039988920863957395092001017259199873152460581900844585097703644269970879808113904450575565416667135228652378716564729306743578319343213293016319916881397346094428169284009367674850384611144367657539260835971253436489218961762928084095543349998263495355117584079961718773650284662424133515572250391540426644801031534639775373543856803161422158198167265708741704927120769505165252989915579959226638310503374348621087719188004622746918886928755577598116887485681106028714869154882651622224366392078769844720778809370219884439263723009124541118434402701696740362549178856979416627946903066773095419649463004679639931878581261637262612763713897353530664257049761405357521082593712200583204527242661492452791317761056536039614865636332069138346196970000894670488401770409674427009525120711206661042427735502933443079531931902067622325617547691652376154474936985363374717376186648501087472616369986210333653920208356389263935646444169831294973749652754921552097793062341865440001148666228164690205825439107138187065581360026385025920117124484186911108931617923466186284849486589806036380240646613204391038896346385321289449048670755033408971709992165930696040533049843469947588374563718719247161818187877703288299824525149355018352920865154680871277479729111673438776661126268940526664494235147177259317287229679629388838285040980803739265516502746780506090252977513119071818339307744190543480465402701933851881579301131918631325345781121357410343982209028114737573182526067488207277412622147442650794868480985374057536258030993485603662173486289221555773583947057798893533938027964485257782374328639149591530167650235125880138022810429864250950157933498470439784675935317321508997600500088936843190904057063444071314970823284385830022026097388308758258908023578485411975863515165122213196261864884221176840188424115582634177091080677416877169409917688046348852418556509491125848265456742466621076759494713157892506234586259471169247169529915718420843031220876398005220480530958883913751996231041502330754013893382343068962160076822706904044246577429990524548930269561109298596322496734300843037015153689681730684263106254933741181630719814480243597717958723282043072688679829332504794000142938142790579944854081771810620285529342071694634167049187993450971817948713909153622341861870098477919693949307892298751619942138610501986292381355659746801921824492879767771048738415287911646378230732748072986889002595897127257955486355833245717551259545350086965284354042569921009602211182356972985914498051929436727710377909949871914362069835250617427349422469426798289811945469449416664978484547057436881937074520464455235419960972504710255525521282674261655794001085034316920381217187790293038648646813744009704110144120349443409797012909176091145059641782520725130765317873089178678441273418474801573867167390687893545124579789290261300730736284086954051012767745097182478588211904592403073622967456256521589803322073878668222407844089632435602269551520833527205834042528232549509611961054841562383730908437809651739644967000901599715986390902596544326954142932249798081367980237188553392427839200726614836772095120579971813883212162678853841471581110004690811597126616856003228557966733926075557728714306261002811408938143463495915067335873143895250374719149379326954197974835567710024108370322006124922162629959015926577542147494005190517128409182105328667012119236006675180895368341109032370732470178228934321987317958708419527213988892676470670823615477847222559797105086996997016052276848285453432146360320344113684415705903465284440991996139038423676981430389707755244378788201042161020824525610354313122858805808523229960085702588287400518324065917184888602188925651603730625587626025911965934046273203597314236952916061000891716438103636478426220205953727010942427135059331947895134409348272325516590709106475470992386405107930566273073555274424287068796231770043856537917557061561989738035885535985638302917772299797129112178845784355160257798372141280221235014576714978312800164524303142397560777944575316475945688010145863783997117785043328547095301386811108522921829020629885882797207039029640996513941858428269311630002595603548884300036701019013183255721662946935179245882103024332179723055665345851629039603192432100629207960946518086621766409601215179142703095373589341014679831719467755195351641115101787619303682135233142656343630743337659159599496312129588266875312155449436369886103101640470049564405711677229466727744503299575768718571319771407039022133501299029147033397138293849386570658055397848308037604143504884217989804727765313900403202172547608369976184739279510538601230412754821221463544222402487277013657547603118650571628929645699256710545536183262426164260093625092863004650137189863248390790450374051394842901843035200818935431972573331102524498380618308223113723330705903547881915974944889482013498607021410283017683954466623978793544876919245696654107874364170210896969046143855319343711440871421511089262303896722194296965237587814778875939984398067368910734874329649625402365988781443364989971883512783114798652960031528286080422576759723819496929721726388339312422294391909536241639695144326519647642476520743371518524407771072143223714586754828393452454121593710451983023848702021431079579634811872970910865043681328861299366374398318832865147647081092928789750063123408642074461900827205324264386486607652908516817898711399035326758289701834671258475412603474323979836445794229272339909709744353365220271266108839735275085859544785273845768881031455124524003362028437779522138340066558020353364461848145316973342945165842651313819560211248814380983930928803834791263919132388527906720811708296265805793830536451830555156406301825525219359154932578407732019306004899112704832178212203645306496019733728714192150572955181958653642138787433482851664148634495731250908591958440720152659602068705021200389189724378811211442270336444053039032937718463432789052614119584862129523632897250805756187803479633633681451571846114377812789375488669290337018487072502204135872908858091745554038779545192546542357140002722210188192007988638043153062446525043162786940468107836204513844307845456729819840500686946222751218490022204689484338215316976169137027189356850567251483419552962222734271391196918968437448718333652926440040574558185000035165939250266136376643899248797974138916080613765497946875108598905857615192790730602672587383699688427316372180238724207289142139508119284204495429704005434558993976723356365424532765721158150441240093531458036038648210128609772413825247673826891832692780972664658728454343413726198574685948460761487788639763544315295538579476659470294892500288811092687808990594664257916363932358823556656271194429753319264427153998959571697565390606959197822234312535161848379178771701858872256788773118591566651215704083076822226334008626654824587891444697912279603479284371301859801656004685217523874311391941792417453821500907821715505623092810868836174811987136609536485924637304533049032033798883890001274012004545494091503797456213663254886944298714669381929544702448623995418695252026123382448316981195195306365037799826534054267325934338185725424102253128578273602961083552843713522806130007364353475564110304137306223836221291938197546373094737684102075606533348414421991516458635865655935098103228039544982219584131107958613060562191413281057260451461557327370215627586303085270352393450860895590837352217363390958629455089603263316352282083139473031817533915454277685535900152226688246397801733970153048626278066188936434219741103563649703312711979057690625487611849348213991161580471259580203715130713115256795234854159399585292596417969279378357885256897406166471228532489500742902146123226871985596229796800947215505925333464049584614182150876151489256697722087512736834246350186142506311129456426384238718410145890918200904054816975152605397643288641105429086634987909739654195678943323025147005524733165175714978280077629856573166759534008268712603665374593902418718772393887828179560118901684383778660145490906723029236682644124631724799659799667249350747963238595308807689602450866272116732551220103173850105027708012904872079316704571809508244902732675943471527611544804584174311480594673272857495840978851637651060623467338088691902228321190200189222991921178173259574567571219399552784652121035616778173303714022709381373752600452387141425189982682780684923413115836855409436390803713250828844362582455340041613389805719771771057408017433887893758927595472426943397766466679452545290510328505730072167423524221456610995225547748380440084379432188079809833219625894588162772809889780982425575600553634948870890462306690461700965930703293646878302294119305537913050589816411608460041734750557672584684901459020189699362655173001483805596186062973810455132876839263199307371193654097000168529099404306998761800071802829130660169884133702379161193078535229182022924270113036835047517213826190509688272816903242648716430484577155286396112294395943288184172991927638155229353853633747987719967374647000735631704023055770748962819761307458488135198907200717298244282008486370197542936302135076324599258428168769982869609079002788018773311569456174836950037662221243549026805054926671731888721054469468356108840271664879073362923310611519239707651891050576534014020126240990173146426068086504330315833828603722215196270900616627567277888577542162076860841870542680596673577958664067821676279573838950547419287327665640724150012046203484214218900864535618150451182755308310429780412385109703529239190863993620999778043096914719970108867242624500743000309007947090729633822883318120324532297225126960370126851474591414743216874597198159839377199478855849827145054876734431132325835627140966797607932039132850834827633768596615795623235681929989510855861730985679075677964565626383307921554863844197296563362101908739818238173867864084708854407487046901402498415440944291627503372700071256956648318971783471648678291514207885942005920034769474582512688514004086391297992589446630837023552278612711633373045414836010971762259821860487152906534845483996004590062139717276771840590309740272262660833995244647967129236361970342430809778400330173215369942442986803624610320377235811143660699233880366998046711112082051190754411803525518385098869662405064692984607184652363480810303751088145859839786520952612295796280303009242257998462322056517175141529034162453505675936749916901349422685978261914876591221548697861619533743169962089924366763948233591498402514238647396094852839812042806977311164046653951226215464805469458842605316532357359107437044766069937853740803631288254965932816230777739813896596624627879575609235556292291157265104529652847828145306354628525410227853742301214644296203642110434133568376436356160006384464600025978474391123479134165878532555302140165466222124686292854892708021132282945356481456199832126128220256233388486226659227492395220475101771566043276583938601420642971191329071732453739761597348706093988686365231061680913217933502299233244581026384770404287665731455504432183115489107321640359409401515014277232945128116831097744797024185052891052982663198504893575335242846474267311408487600201754220748262290752397841054589777312652319272203729272944782837441508761338288418925046940168078113444504735079723681635102024111452456652625504712055197458622841655766640102411197547895031656132344951823917528057953096670011223282899444919144785149156976386312051428194474412963300411081464712073838083689316849318428283108351318684621820367804933633878897445179729679083364234825558743305066849842494706451249117324299310875977836768208418801933106259593536324580459720332183597578565952724049848631256082950752420864452036857647552721874673740324751246620718446624387066506482687435223317018962426850873520241516669557902523147363613870193222700122339821553503764008924223083265061491817288934239383847436010790921128328649949092694628572793975853598630125404564132038868404393689242385964073525308831560545476099443991799108087839773439639384360336772730794427061390876539151936729601695375279759904789500909118466093282697724542725482183464798392435595842955965735254446510621263385924272737910026842681689920190481235731692713301693993174614697296397903507563436223408466555376436680751297391777797153800131228089962855063674890764562543162542616693121453943851207542925933005961594536941335322438483421593956688425530831489148295939211290106797517513626686857453801679206081943942485696633766449333528651904864436584477178809892501607081328165621412448206881907107046986053975160944877351011143598534014313143408210542145980898524522610275725077446651483710848682810276224729438779295429826693021813775896551885360975212042944850085229866589085175448125244160539850306570031487737037013507013910293468008808565226945966377062355005864179653979876355581969429993446169801650482180227418122471947436239829210685440592209197934248032818198321804905885255408043080057543884627176739528944445326491491746216204980805236466267900855478171391170666789550157903306569110557689695341741961160710546091523403431406065341396781225042230587594357486669627085619998905199383750220486209375281009482484758191035505881982890526865153986555912201153491712081295108276228789467156804066973233861146832021958797275099182778486760034220137457557367327563230081243858948261640541336108732752502010292476450846625247197794568478182700778171656449448001423473820030701068323870500081945834238017316382036107438940143371966076573197810844600953828994938784684484101351827828538905757574125253558619546966428567443011479235109122573177388119460677530704000477901253551156240855002621918531502406579835392909838134851338405976769537380452039687256347980628890090666727586252852573384619645544943540199061497289147253259725533143837714680286751155666710748233872715069445920181581407589914650976370058150515659238944240889253697290567027537542423491067626088361641206083306017670241363632865111842397128516272074489255979932489552472751683106000943962675935973263023822244864053009596783885005819927438537484674695194565550676973685982356587309031362149640603030624056642439422217483952163323711492352453609336162613012279564874896437575394178216297932262188579356415423233264164712730748581875557179847074624021475271453341221127464642153659029338709496069099164228971439924251239698218804258833494708044779364381302028178184236806352265488938866444675997951658870777115677523070887595235075595806994791427381072195277364507869650602694080296738523445968570692891168008795086060991971590329212989952756584864304525946622778674675276346212485416809765232781474831100781198334200418680615728444613638159926565631710074424826968553819498728164972749126891255772883016336438930097835598963401240045771264077169143534141953255328848032035999034002442132341748847900813979499064109302103684043795387389136261847620654571263615066077122079111133285935029126306024193364210217181927463453458173249924475312883382725555261162996492890810797124794608276876287650735031849187325601375648180249639441939097295509938712359023016019773445654820100599905593989155278185360723777859336079208153247449234435072810298437506689354624524309175315817913303672898532040913879622557077796332224173976348255853455932705572329775347321715209113273453256201304459993005321700777579570234769949101714792516796290288409989114897244815810670398078795407249316182903572149728231686469145695045135320766202839202130941325483897676366554648925453120176171254762905943918734514347586617224251334110427271594355132321201250127486376737210465822095202002475448437300751448217724285036737749616610894264357625269432678144600171631703522264541746714307283776056728556983975287559492619084853330903177539165457166028860432927456482758895904427828457013474127545313376217090529778644654974073414223414397704734675865418980486325188965657216424771156509559033724174456457038580817817362841594456174904545580827576749206054686801087287891569296474716443147378993345938296072880974767321629846452894216694680365506428367901458958203117926952244918650595692869645027406890888525281544103310999677015217587246195647567513141417493141460844865248562006149599268982860350815199712508964304062728616735637440624808282369843818227991466816871859988470335524462287289184764985075657596221004246879851513796822257262347260722933925725469991542352111219137368467523171275816841869252966564314082244454593125604511684924061746948683012360505863459229217633763955552404108902774429267877724005596748078165174294437856106229739809083331906265995337434414261513504251270572970234195353828494262575447412519141774777275181725943064202288535761620205062028223982775243276614536224415384894864367761650350820713732300683030649695238951609815752767950847294368427412406652384674713433067576579775621948092674725016569486674180500601740337438743414235606853618489817901502537755191302024771314157696309982458430210936191930436866218129633250088716482271894842624267914477179441854037726854802688072601222178158693925678859436977532438623659580376937873088381281010914260189325550475099859205795684659625411545095856926132597428573182074538374296031622447303025157596087146016815438093046824012527879117485091271784334378862357403403122517782219531013561763613285951554888140329460757838782963843865721806980307552859290582250589699827451760115972658716815130646018923963167010401753871770659137162231216912281585286403973477745276870969754538103317071861062189500745240736986661575864627194953608352666881703229873219873755038090294678488165790969085658781556468133013456694243035026545522577432100268956667279313730765536286337062314192843750244121816646350419982176957923303055649730840805404083184975390353759495859737904997176967394194704462358229040206075025421618437624693543283854405104982047247111453923998637372563875857759578321359789913323271907021890204322411438260816884032782701794772640579550393829855401944501620751521597820485036476387278312282115546902300904955700788824254113887287388385080689152182726516086811653471987767311923489154843432611544581896286255581319908068393819274945629375817953428591062208168443786544633149482906385722027766333922347744084872197193612013309231433437556373198828513112394012400287541522137154161187206400644176240778099691743388404789990204720949593108269067259581894000074472599542679058028208317471359651176480053672554221775285928247672842233117607847144967093877109467399820166541233340096816515125141662454243891414631697930713763876987041467101160111772220670958980406411704459574365057196754108352351882162810136373206280908105008782370228499119898809640408586949724289169634960666194811022660739661380483474839193076810481255373231942731543222994598882447212687510515937439332272323825643837688511307722817805273763348118689356530962717020290478411211656709224285293039982809493754382473000638847982106124537227572009575834786527481402022380613895061795081853632984546478719053851355023025655365940804617962254253424302592293255055330221790490381645449449021636369579632937856449712437492843176553153093162208308669076300047574241427790103297384167849587110003162502423571921475829784367901224122265038357913719908023261757402598505613463664852473068798488680440313147928526974915469349365118296417498346355168975949910199481141817048022551951331120717777171309545853958556897457756145210738616317856498706855190693497882569749180137338115653535730076810860905402968110716120027843428037675941543094260621542966264649463876642053789405785357817969440649380067387751204358080013806699497218191445350007898522897019902547421168708624975988688731319787188628071861596119446654504333707177664459658115534164883093716829080272936534432022516068249488038984489376662468645802482184148037680821671125450736454410797335063476787738680522524260195832848647535681834269382054472172024790508441694708851001105315035429940532725423344179175315778676523829337625498809801045126280003513759640164046520700933681242599238944218533758583584638420166615883276726603512479596899197986252496968982967583802080423148409843803893424384823182895292304356794020568462810987688998960302965451821267893810747393285333070256894195922150011188134025217992064491290868373959713588389077318768670513540393412104904796923213479028603441760571320431069510131207976629330778328781048202614965454142018397472322430552595877030345320781099057665456121428672340869499964068130408639103146884329084899688849061349677288676406825034287295067954793954786409076184539210553583542226983686353387836232162020625788815538712960252994048734810700300734137492161136171796064008147928280555321658763254094882648976897672462561605655309851045606560517770384517203439922116787038908613330089920052011816984209483347318629178898420537063701331150983033206264388637434694279958913532460685544902159319435110667781097867926844910670084120291869498522923576622625229043709071612533942626690006716331918304539099980123312094795355205283714993674839001724202946747958250609494435030177810952151873050152466130373522332302782869050406073994432130603332592820519160472680860539234196062378769584609050443847786880035113667054400815248877483882609852844056963462111679945637649357401043435221726199295099779064298981026134477271558843853567240777815331541082215037652445460755168507791627788785728615761640958001649603807509867809766018079245488014726649855116659082223477906242699667215373099109944827564544296136538108248793109988384748261875217070884010837280142933087130718688606434662554645387379321430898890645115713494304244985075452455396333970625091564088416972840114387731648399598287577065431554024524763908770448825194887430143399192413622395504899947255284827375805046170734576713790537243255503213990861740936195131823407629633899610983694874924992815893264007532040932972803079476182667501125680597171520500898039569694321906292752840746282298632561666966041710624060879926745150101041753745361520429619845699504738068018502190980633811364308877280879872045340471401691575771974278449321007213390260637430967580060362329980036004762704541757523833009838764320435633866314821446862854594877863586923421692841174189952489112575413829047992143283749780259840722078470975265591568679399821007079181638698309516463985912194084166514033346543710286240962952908621737989055835109902045655953668812309030545800365968223470056301991586852675256463277992694261696008952239113792310786556528066302386966821949873438036114161888448717213797439200012858723631222399797284964974281869218694214922432180749059897328938076237985869786210361441874505549873711342691228344275451791196043470660773151699412279394533640901882144245308127711475749770327563581775781444880843710717937381716498327520216893384650729622020500897360652973780535309610960244253180726383913875711529386918305243668324578665314310588035883108313079909234056581276174143185206459253763913725807591398713080974029843990478121295003945310083957044586345985302638430557601569934205973819580938999882932479164347422814279963525959430423176488034058638294909631455383054110029652781925854896596391258915601326449463918388203206280011915615951536156992929664316330193980142961139597255132781239215709181978046888824850269762091869939907287074525260868352295317664965766687932023926794957496758856452997265978511109794228848186314293111301654604876942726441683586299771869471554313572368443332871340982928401253881916463802142035659212990478332761333197333864175007606804547336775749893503409648748941473795354035991789853201249159385403967096256929859942074498894804557107218687960992184776439131013758911441771799633700212703637723115359713598272616551321433541783674509510160678195106629091703307624119427128315002540510017828752334851069482292087242719274843223575695306332625252058797708116699232092706111551540725432735480463945119074137545991596491708002721023524715650503960888349329426950515725171987009530763240150447173716328416126478559016468180796662774461181085668442404396744640332714042009732539735516549236056845849871555427333335779616989956626168215574508163792333486839961512960089367122368667709191029922294144021974853922931721536193118213634278973543895842405208169458529604426975116640384201903886678187528617980995609232824805065619602002420662288098665202983733498348174789315758035264340052112775049354420426435348227120754662377056218316484344759611821792141277033037505570814128532055916638412572425802566084864837932567528257026844788527165072939608223070788072243169125535629232138640168916843378686976396827601608828779019076630697393741547485229010483441145162266101249728367721550106462881903018856933713666426661672522906598864120456776487604738785164283465792027993223243217830864563553064747388692541108421294000839765973759313635837826135007812702579483162197702557722429836339875195887693129368796228567457668030141953378594997330272049967997338722495625419036300639877958828728963457933973358529911262647882334312376877636527483082599302291066742089313117235759948715694466050218575568737240861036488194984374197864468645963061679749990427696146475656632462978066871372574842744687489786719622375297564937969885408481659065745215129307851933359215142877171064943680572583153723022727507020793002255365461519638476897255043283567525693220616236123450872111748798995382212177636097310045891687188549488948332372969335031879941565133040780544253113560482728639218601797997225201610748202372563320963450621178399297560078439206625355790076472128194137723457213164826635184016790899849404325187781248952631575562739817651894121493991886903052405829150080790017831718658594053455409238184033447446739192422329301921601301618779171998740199121541841485802436474067437881262009992784585478291588770014649859652145123107196439757169372550948438801544738439209596902301156563506802959188428435250880141720257367649992742538679623746367587042108847512376614975178554729957339078811976406678545618947549117512354197765499812010800031785926729141578888989376867868065600685557444335872593356931866541670654142928494263252952997701005142633951833080700836275399224321665738397037812500201385725352170605569629395186767193103521840834850985492558170648915424600638477882305138203234951790787658596510579849409770545820811159644701437471209753581921046753269714540549939330615446120245669390173181413928805055254812440467223356376780231644829501451678395647660382998808327214882487018284906693108220350088695460038705615656824822534824392381732321087393416994802700705322342108514835366447696410615945162815029686256711194047243849903121884201237840638197554932582662917771576892875537671463523746456580164869781236834568189438068441514311079619981752338744409313646300092664259744625033144676879778113279201984843870381567702075693879835734790513889414877329832824548396205929254995775786199536873718334595624822639460879418093352087988221708694353744257586772177472825644015847922352360186417049718395886167099588364211997788959102774964350570439580356393230138885177170603094639641108895360442150924309150636081448239935450849489874791102202913911185531932727239647774866730216754573208136275944737462239526164511674529220365205644440300448339437858411252791495515868619774349671671877609011953587747197704336824552567725156817226445536353119990858037027930919347861085614685203425603155390783728448936720889130969420084468353117282795411346299197767694277650969417591994299668181711796033188884394076051014263832845200212028321665504232628056627189186012734055768168950440710722508080645778596701576102391305719958808487280884415868320361468184072459410375771967091998546646263774174327194644483518781636552732993550382054197284457372782720270222805900078491829035917621598152906997898002822297566453544387676277637270730269692429494846757263500551379680672810435270211317591488484999223988246859841464213368651289972512827531057618053580782400530076249932281819716140081082404545419553817041599526647726273412226770282340130335966942150428246244907152759539330860820911445129731211177014065626211487627724357569157600837375855631293888026628523860103478252858852815887629783259056128559683784717106336436054883257454784108496434243412971728098631556823734435621368589862636144881231245641291336590284677032238629778614231572262004946465011866299874208250333691990944932670597978349606481884431262325766802517518510537741104428457212820133519269569635514502051407798563439101448405386160161339303771688796258504644540125147451167538350469798758194153455484923428192236533417345361235238712978608488211120148029127302657156744583595770488694738531826330238090183407431117100176152935401791398761972706850033602488502984867088039141885650674481644478073534068797447092065046311717753490938551177322651297378576757015335388755317960826809820051121258569201133910201157503835675359651927265662354488757744674064878412512326843894712046136342287789311866061488798607339974416382939233609446734575431410597817689241584360102292910949473826770097309397737718634290083060266485814182168197110416959985660369801462191583557970067925500257141792168393549160566256452301800043755760469750309144235138241499430562257885113325705503252013857148619026458800812456547082323180322147352037805658916591674019373440441768199812454524569670640238860949220426389645882922146080914790119113604754212035425197504793880591516868997486354902393125079486161207889236362641882997099418084366069416722492188416001654642760757646450082284625269565763416036856856172167812680589970771376294018597022898885128613260438073067080806406173485047599589564390839682478505772726532333121432918131768302932795810240978503662062730665373135948911758153962007077225482726929659824661380044702510739642079254497385740021097147051949940922143029795168570862653354123777202733522042754940152508942491109416212006816601042499876596492235689107755371135791291180765368577230256684369129509193131964514644823975946849587371763629065504479215876934997908652122619712034470891292268307517871488181131840230445205565078687859701845740741224317072010572151947080012236005982344369231151776406138568385286843159793866760899866072280477033587196501676336372981603613799853095510905048610622226887196075020763312106530101152961633733906265072270632316357314811845142259127478341609181791797976507152166688165351735452089265947185721042627903116069596622877658093616282262327737532298307063738955967562572049391184171184121391772465174651226626654968733183069060937629430480689445419825711568724777457012006962619584405395710613494926971453068289554894093948996250050281381650741468237046677380930412389863550974684246071495811656682134311567108376056212584383239447943463618667373850821327215198420130767426558171123817146506676626563686686604174206432199712517558633403816783068076425816651057006220549070440408844280355332084777443834971902641759799585121077721678076589703737342047974914404680170024122515858176674318281703853966415623150109372126311057048475104425924589083103990877314400839205209367995883230778160351276998749845300045304269816859347366211376805668534869381816787870747972861900568490353593654333015364231156790026535623372343650386616025997575361067169766519508126213920857935260069798282387139868629905155957257820480012501131404401150335172665582856959985354722505734700923333710004390759975786578806508630833417156063166756639393230360250863160732233776754950808273263083560998073623382735462180232880815460732563337148234043687603183838348574972613846066942877826839877998791011739744265862989365983539475509388327516222107396899693855448711211217451307517841348631329753290549750770813515426605885939460897644912648987464579102364996718859568119531395208119302182985989333126213172039118987209296890477703061029974087965199006334816764946636163219864526848963038463599572443710928318155065169307044590889296980203398214547154843818649529959469248604938226665627516846239471099132903798822214014340542182190710224931348795496993573679366288600162226276109882959754389779991158915670776183049412079869744112422196908761485189944470750853976355828147727168614686016361595808478870116025522468993582851818796504459175020452182837077859940855169091663151544107491897683639551859477672128225183687533523211495471130092852301333874612430147118362085975598374341974180210798900163445564011356374554631186028341970169200510589248208802335666620144460934254773944943816411082963855746107632478768562786928342252815563761886540500579550433263229481121386997892695135627713528779393438886689386108013970120305879312970656439164278593686891230051383832059988376837483156936418615579364286540422491728130936465616257710703205894179974658728281914899619342682636281829791234057748064205191225138707307392789352291606173068675370886916173144618921803698803633095675759025560272481048882284256681195943770499305330569836648172853534191256624553816363520246377944431942275705500499426009362373341481318347301010652872478929556745321562334480385938107355006614127216580334158183522535178847097791446985286578259228423908621853766811140301698118757436560298443266522843851553622440921819331400160805501353193518003599421540446179649184566927258770290585357055702561624196588802020043072930731342617630267998481461591099493885950143236120337884671796934315572541512844183786382989857076712652718734781452588090054858960580286480178297561334450870913516726162593028756973115839871286521954928190983246624836450325883679832971136830958530049538777695965159341501999417550604004682542868919727184727413080155927298110441273012180738500524627870176813995221926982873832433719373411142066577499059787883775314529392905548755282329334397836011032783460421450227520867537078620883806978301197385102274331781165181995802066482054302697929048226328583433123275481549108836189326341054942365305127621415266165931266686504806404866462543656365693705136889590008116132127832396243382724392980735192836830329462138710965639391847383065247093630562388097441213308934099880047009530581038765984833335025266079510083261936827700142353298353028984429402775942745289502936055812894180370784590614825564268963065082076190035306150178300964150823718344984306468376262804457777731486078240808476753420266007016561931736631386991527677728108414234468969642093802079568557879416765058455720836125757339666393571750873820478438356447909298462360923544668320248234844208548726818707188967815154078491045030978226265340795222233025408560485782488741023390715608266771559060851781518094486598603060225108860799454349797050885513078512637885306180582790892304393080666147921360905399646114416842234704228321887441000388318538229579261733381892289624429218175800742153005326686861054660638410237800987333443686299896962147570101215971000576768621385964374745686381733115104716287352756652731826271878116264391147081735803957294822409307880037130880872071248224090389524540959739373894834626363377844530498187816509523079194159894833523836960742032737053951088617712349897399007179657643669131814830415031442147370358151055417838962593746331947583144066224335084045358657110812281810644590327644037896256718086197850188037767259328672943929370074077823937207451605446307212104627861572885727945691817081565281871806684380683081152176111833667228826021757466042682142234032312348077519171357009407759454806136522669179796276642045749367594203353729633777188858085731707712903444545461581075157554750186151262063269431634772108876012029221214731739945287153352903650774757722320006048202967465458210458604189277960957369460418146384019537317341241524874563763859081510285179475160260073198433100096232997558194396262711756715605583272371869648671005700722408729070550293129235592653797107633355996529069814104302623964527215406200898864761385840376074149575688546604916706795983727857564218509686046333242252484535172353938678767265716339641500777115585687317723988074538958242075063453227521163817132705730630594252165082035773669108173376993164009101492406970638102677341396572193529573591095293258525402392516288500053133887127634823951477919223142256156949565104716749027682458672256515874680021063315862553576736337777104368927842608004617573297201844312119452437219654237304945687191011903326414007260032240089451255007958063345048422729766745534545514708383761727619533615996501479055375710673615992468542104892497573816401642832795355655329739510719245124606127582596827261938802860238161565338587785523024065017661150095494506807003487226437233375838968295542126650091898633614693122290115890975932429502100946723521392204642843839535450123236788301859903224293277405329770967222700778057966369555355157889709687922990194925578682575554815721795336025765194522941368394182714378240186245943053322837211340468036683103255245058963921617588989591826949013373537905762973184942750855087582162645005679856105609019727447573548891905292233506877105565181754192577011704246593794090612044508460054763636129289189459721176907387529888899236103663303529791249434929309564683846443288125905196888672978331280706848791403050292012627700611732735077205722283105634453287451932374996355397170560460103905340089762602008432858106981947971368737076821693533243167951463985594639131605860957552620964027392743938883461643860024830235473419351033264509597954165754844029761086217632930915666649238011955009485331789046769797609349870890274723342748589542328373414437766257123954012497287549879619779155585699642882206556830614700855460718588970176592451458134750305104284000230122472071326480191608778889628021318411890133832128310713541587732372417478614525550985572448766295479538821416799081953849040002758046558768047507495573771754457108865136274856238361598967398815907901912062744684279908362997787125014645838933361766976434271047957412751216125937460092101685774243204215587050957257882392081482089395430157619693071298023513689770644936666781571051860915390316523924744866227971300055786104029499802908906596205409491226017927747945910838848140626626702774496527620422043154095823674830968348438546996402615660487531986237368158052815807071217867898191437332508348671125714149878513773040284696712025186272718306972992733347949356096658833588882812924299565637725233002672241754454211894985573584294535621935081102146994292168781607368330143102591091229432339189871049583524803379914700842951363723143504667656268542801381222965875614515054100298535551436219912540642801087650762568434191120933894560168868771820690021312981874253171931575900593574496546261014553459058083726321608827546508176075512769282918739270365683829354103592629561156231922877952299216135916536668210530765541899894948317764768908516100213371575461502360930599535981828135023181902827743134600887634993651545674070920685206622868958392477651842435622940510398189670725865767546126300581179315270323611593542223197184802549590243307880143310617901002698812690542400896510831610459938751978041083835931487234143066922525550154609266489660787258605129489229572295212457659267349693629485822821761200173447213196212283490293384936778163191440269502178065509509360244334928451093530715531232812485982443775522451102467341999126518122195974446417288236737377053053069261393649285455746350190938047359719746862359404473815917436979276213617078350993336848807972439622817063206742183795724391664709554223676478198629099247879526417759713418580923337198781269530084632232221563478171940572351071663901489493970642149284033809895631328336841205675031780485404958759823944740343485119960784755875879556113634946980602920838795602101062719553164003881954086819951383938818962676590953180334960681496051622290218919965689461378582540072842546148145198126911426770398599505427671627155889127780242904678202628232554521593257743252373411591090365184234637526268074678317579973863115190369390177936923468182011033953946410575279511300702960388507816166718152618715729329638535880849413528524982542655531818857108406014384598280428154374292376465466169920377499287026965199201119043633856555966720566204190617859867514633006630035492609075680994651356106788913575470982087823751670947489464076551773863650402466067441536362570540565163282298621440063391515332225441243008536322019017485583456702645650088324449049092458118664947627900646863116280734984378125661244104341992341927006399207611212725845644781381168323943185634890811565450581544218361833584824643223293608434264267192190619797888275965795226328258337136795565329287232896342454738580967174411341963930629608248708977369113749246330790881433422606581779283276847964960780687390672971944872114420213680114353606828196615620148135119906328439596816383793740178574889456619158690981450886666100626259704620600609238908327862020319149909542119648543383722883013970192865800888031209747913165787359680875792440829734424387440788085857884593641707026412167990742990934705746127993686607696958343486547386509434227971397387178509586297400359384991645755786404501026060171303952715051814645941764514138684725065134161868998516195783229305178612693277737112970629269286578664150304762025284030079048231265744478338287751159929771761446537588837185488668394786258381000165548739986929470525241332643330190445562008903825832354715674117284914215627556186877095371502554374236317574144594079962415011362790701176808925995901017628970431102022514767012536962027403728772670445936406190034299453915116801139428125828286266051074527029410830177599833268232858645403792094778831035388703554120046766906247951510215293956054139951224352711453057294825417323788748472921782807535996799942061183318513083510021080421168147640345550332988527666811488002079387640882918700104780692298414739952559900266398702078330702997245205960568047599058533067756168091106389289220807541391507511122822221516324329566472765028095065206335169368154302174162472453566202971549888466159574930255106127173361351439793650170044494234035474182524298221756603460299178268426050504925935020837577227668252994846534469396589625414893038766233486853537825490239774569394485521188160554783619645218506271717535349455058695932684089670315544290134316714546032782525725159334905480013904473806413180801275469763680655613179097740959672493573385325857351120142372529047087372720047412358960098368822959414455226657411893280925028731836617000954259047419410529638898644234082428141022830279329113887446625264065816596828840789891292837395383437547448900192490431448293031734452177782336862414382551792873210574539433463280968584684007987563406504434800522058604776123675370973282555981345727290776458021365440044319558996005711095463242627991335176775941815284373565260305863462955919744874355561449339918578760875008258991115137331035394603068796449736219774077258172272655255300978594766168003441024767598652457999891728768959423445854504928427074023421999566769539505976884460271609152024564979890512185087333380888821952990891781840963619503048152365004872671455979781468229795154924026706838949511793619764507126809897037817207348591528665885130113447744277687617848186448286956748888761992526891563152072648295264755702415686547064112840420749421818793416699364592694024458976365039885502701068708925930308222165989180794516857977675939058026297149515477291919528210935233377977157410590069314683449065227705568790337337692820869513890636888472259442862461606497983679079723558795264990498535060482224485494150400949552361445753055293236948042489011575277703613182023553168167605436857273606160409906450984325702056795065017671354452947836475880545664866718765556607041087575588791584203004335679748984417935216631578366011314473832867738457587067103126278584776571287895225115232642329112411523127210912253171899561009033208562542509107305555511538392425091866171596175649467077091543020245462466239385743514868672953576609108583865968980231344190210553192114127390645617547784474263232858021513137542900973134614466678517509556310459818653978756812793011875248052134610049735562755709448412623537504167700881805041400032811515688799662391834546502336286740761193405646851316407088628970908334374963656269662226953582420083468585637037917599585219574276249938431894327731637677329138260674470360295824347925543562377623494797726026184704359418813431439441126862948432245371542948248451743042052110555647848820761000727146957712463734839211659045194818639082397017117559973382980471441429298229834723320854096716125793181138195303470040410950702992489160717695905360992707727994917222086527311568527522942833068446310976949599205358237488781799863861026294448982465564151181289093222201939128077488926803256376490561531203800089692499705559633691629048393234629002004192565810466819113200765057615149390891106087680431872342144787433896890616515726461592539943620573285053032041130339310100578737387749082372524679304190171346424886779350222332606531335630067900599878020226982670996609977442578387082836926164624292889466389076293437637536096710717904305165402557354095244751328342018449033369599185063716990096585992163199411803902722036359110934107217105889362356834378418407755639071600577717405733914120811514687710597936926569915823573500374517541181666972575125686989027903132486451277256936932650840564993643572513232974093010995895043651465301391733602459089653160024799902620882667677455563127627425186695428173889345523836305816998980513051160691459629045371815944806398583185087446492195403015972044557372115731451195708377148755480691094937498942437323256414596663491752798420552804974822601679873127702584054257510762195231164406189873887259295758697724848419025377304492200029509783168857412398879508864858636845776065883246457619232989381411605300774635493624362688251246090460501237557441077446722438698475362934107314759120671405132792100380359573735515388576066960994110128545925580461490941441036421394602242441005122637099893318226791943851278321574241206518540390637479123953789577181609140411864366041375696714877065199443935257394656868558502239391721146383328764046310669024944516527211580133629592342349848603441875537617523611532822131823267542375188399650797429988228044858987082420466795702470669001271053129916507861615363003073573387891106516575967930787535116290284710691438365615722843030651690985273330771330004308632463182904620275030560658163782027706740094238923677324856850972225108678464704746636539914995594956784417271460869961578348190962441647021037916989063457747872274620542998682797335409661759749945329666180059987392903243808070330838746771870788265505123916636795571280519991815599667931353492704540613260682386936092496030890243206429028275884207124257776806228532682323317891223428842625103394522258300144892498207698492888163582442072577101946029278951864869580382362876951986111512631996342960193641545082571267914473721868795807682356849633140067915274687410132777685390566523004043427188854651275807668153730664235568557894535031612956862524934018175439623064290284103866132948754768143586741510050271639152604912886373947610846987012984556970051843650854637207645739838734971823735772315078008839469441518416659740330286699531904189783488628652226660446630157288422744053371721217040789394526650261329202211421245342437692012880700102172579839820546256059388136192701386976785782351421664319545467100697127443678889494314459194719769815622505718013826176446737937724520394107486673091849808147471185191963126138046295793675965184467563443250565950099691464071841451143394670484149551857669509794877830219913476902121570209735358499801419429451478924002954699013837676321318946580184538113454603104403550564076393353077894348652199259449383158945438503612469465456311517923462552546776305213327041453376137822142050981297078817004656055908940251983993228913578845350351903912204249741545643195843728809298442729178570908852905034851256951483371718113588710062715697068054843979714155110010211422953647492008416845611979925900903443156264348329498448083849897671310038082409294235871097934131647866947904980403026744894881466773457138682739897585539048624371536944494838956735021725834105934787622670709410120017845122548185592295142192500690726515126100676221606200357865545059663510120518513763331262268597391111889418516542737770566274659687533790797068891694314918636691151055314754777972523828531085274971537592480643416843962192959768653455723855718880850783183079668482233271925908393493993246416918686455212354937330752598964876378708413238577984470152487700202156012675161637572384699648706569259963929715665866511753114103786397196563646599512894384178682046388297804603192807713457289615303979949018996079721096646296167130325605810978196402937495757988630333585787603710016772976813823218238854510943131517546194899762935152116137941739859273469931789278943317882535340153937184465822782244289288461260074487575520987441817511681419546647797513066258743920847180013622058921263968830033181116436357996456507322809966548671698578053464689268978065525638216861797041813957516546342481496301200559535984200624872824903288650049782485864456045133385587219473208047809582154731158024396287750349645068021607711080961775357256198823744220090525352822650759712043916762187350124889896732458663929387899119647447433310900151613847438636846045958513765736612611500827256334881770304540087420259408002179937075436187575915291241528321477415727017385628678089634312475701851129426819630009534121903735628673426200993499779703459485244569101740505934124693917793561155605072773002961458331169507139780735848575538322113075903270824005165882534021667347888783993853397600489544470142829703036543356001886383439638140115168125659612822906539204885167651180458441683492918169165361814172890533755719999602604067883419013220826024247995219020095251465196566856670702147503608321230343106039979772604471120413228286549059785301553737713113459582779037544652784623073253219285200130640430332039580081933076213035617440018244279037735545486242936457325397958616264471946964838618326622958006262816768156708440380784536266432345924769381110565928491266515783827215320160128072987708300244398037849167707567874335545544686244926749812350100711730830852340034837444979733495645796992835554156501576319944869969023446995665438930773288409847538591454601896681407391271676983459419393915113416096199899153706264578435805961734387158111526406268139426165136510397954198137544275351673921593821076678493377272498577425227655278389309136459792839855960641310288395147738843768097827244353951321042405615212796297822568195176336792127614295229994092671326897501324337566202729393980489754211694120222383843680935434124537030584182088945745749163409478808687153471597055558319359783045885077605634532418363689443651761983129640007769451724889834146790406841206820629248461406829689671648097292704721666310883301958609561628330642941917528498625779330732813397159739794102428271048740930601187041394140924098864823629419485794473273522491119948435810189705140221874373082186565270346356294374876361285332696602516987234389545370773656924131559090067330730995113647946217443898847630135625913475813609344844213620748658687565497228271763320635242669521645494696543631384800284766491479777387967116404389625599473274510601024075178555646297435624336073561636908252364844897517981905685430759184376460481993450679170485591803936609469136510039404976324470107895088829758559769132127653421962670683103553544917115085923043367253969358864427102774420023222053339480796618297808954138986486875152481476747779649368956178578011702519238305492972173241681217325234497103133953622342731412300799638126872085515901039946264214830119073345335598565989036258031853455783618840001621441426196251346367778158866972010081933462305628397715094499839403292421591113985327783177580541405997605794401022404628726382486417154279213209564638716859688759198145469071463048472522034100916971148268973766002116011266984358248229987758465034232233478014526708211085814069193067719480388411855316216072276769040693393946826186937093444299034095821383338168241150552743189511090047737747082942784476941443599531499149236595330641599305317562043208555827888028513921524508934988222305727708540502468063681981498732916970530502028053813380114034409437496665567476449527731555742101602623853608549573965972781374508200625069286373434674489432149811388371042035207708900250115816900867422205954436440087422930792393463121338460545894851874435976513900755500886538436353319202913179432298270766013056748966308842537867963209845583185882588956071813126988198863285211297663087867770194993900695647578799156611649295959706424331620575355292967894048209302017984963502208254918174870435219683795432382912145330177188373831356021364843638262914087210600488865140618412126933568157810550760966386678059150988788377015057285683603168908797620282282785495367000818373330272233088828843543265578563269327424190874170502358432707201809397783053276029336129858742572340125756522828493990203902614032987339669526308013622066993493752982925211646267322725888271652920166388945929678074736674250387755397777597927442073007704499542226470886943828504305351264125348512574000320628066937719394150659943980681917587208110132751840183592140321426836031153244166428849595301663744723893651535659302462931841569827427369696323919672263648921542635412038804803758812606595478988706592814797061548890061283446426122893757391626991750942101451082982314853820999884087314736103319785893772992817351683793355064425294974826575122631781212821072782054427484138747631358587253110747209229022257933361077810745808314162760871074418584585300811081066225037366011889222439925219515927890567234217287287647234450219263792689166076421671637079553498118270955315220237950486210869582398971243647102756482281173736589359842507186851900448220324151010288314178410215649134562375710001952797543504012953384435933224025399505297138618855962301512204424681105863619976820880449891206184012211848312175026695066647509780264652874415054502081591267905612204377374005243528971149319308935766009878634970814907108758567436243120908691283830327157775943772652002787943559537675420514664686783311431135219038286621052425452266740007524593197064781691905797998143624121016551819715485859163566073270982405747515251269448278805160059781519801086788483886441058061029858110838551726807954398601374652931082279881247552003369155706618333286666254839886879949366859092242984821613147463555248982695372182657861345525402613212262866336780468938888257824393813357634593345738573930624943059918883080425464048907374091758938044156961804755650174750840344638135210252605197512522573978181253220409330539567097418647260715070021160930539690924673560819772042301897810591024141969765888809386873254468177533641444487164858507969066080586325458862497082739330380851932939633799398614998229223627507387502643500984754134422361616550088118717568872058142639717391514309670045859222702761829521826488005171703783924793573191073967642106119085797512429133589088088863206648928959332769048340460004934928979219967775765443809874819696976751939338624122941921227445658394403337590949258265250498314095887738864143483471802325403502844354554122371415165901143870035916493291932356005740906297284863844020022289588338885694341005254964715325040785479557879056472269748054656174358704010608331602146520118819907427979633586380483035072469764626064988436605379550642268716762715636606774897637892462847988934580889623397226793252547595219331292489869655599423902983806574868891772926067358933607520238704810195550655491443957006829938384710370014567724214765791338982994866902251416179322827573136489914554542243550553537128018533605439924060874859008083855425168929096689439854974655797567139385337568380732264476763571549972877045341266388752755805447762881468130406105284026330105385866576699173934809370455707913466273177124157281233051461388227853064496914255555979091474560722895702239623564834541649867929334490470338049886774501448357341661675526123720172203504290190785736013903784847175298962392343599944020808453528741839459210738943366058266983903391301208516771285367247243800694482166408106434549780415325345868486717561895906155304693472084117974453465689695861359822815462015114348540881032208485522328704670642239060339620561408725588964530167420585859242107597918917434141473305019319480262978820794029840605946397561175873757193292631591669355026011177642968633434232734941964868994121674986365407906796339231374511403612603005556187739993299117826327524867802960663682355598808331322017880398569006445376627231323735096748194887268271462272773960892797812756225947255864398811535999583474907381788996220800177829529147489940068875840073989565460741657357497548901611936288036180689505162370790966193587249603982479675675751236408063751087947590386282553476798878743103341682077805305969366974078725820124371741887763121675870424671031947850711746908749668176686295898040460997929180703538620617262340213057071122406273864616456620613642526469473342823906157989455922537635762468090316138831187365503965875636508988980583136268669684544565992050787023585617643187719880728933962803682541681030646888573463285573523932921188312152791741594146106470117085140036306142816478199643942530937339537680870531259269070490950364421670867491549343171804450178935621405194961675962772761672385922690014871489762979200454262233539163748115431182237966443216342564859224327299890757335000789639065285779895439650232469616704423710956632416948727663748986278348618653642994886822004465673942031168797844347590988931373397239407331519387162753366906479324143205467071799590218131859293184937242807948663928850774831495551586071008995470845698819747832344877596941166870884498877679375305064539802844275349575399428379095828551917092638265483816044785049495577329425663803239651104361730832127095431965882229880503821215447932787773573767336025494994733184102843075754451197308005717182947756064790997309938658164555120619145708815257026517516283271879722107204424744079810332576522063007100730065095004340457028430827906280506303728999272711987718837527053372796542667405257534685105000456858546619917928026327393387814593186055271005703276156980918177491998149787529798211135047896437391194040071505141887243342237645279792346586792162659269673267346002158666239445392364985845016036618107875621511389783380932512725613635330153125574938566337627495778996612153113619169314700775808041352663856138975140348202996328770998876835549178806258618140788293700573881010600602348360208466614286257384077152513624014683677979630519847412969762778045575889912156392562894283875453421617672526589127221167434912859868756414385409890484294471733759544685379469602219219436381098421277524302073221962417418141470483212349544818290562413921099427482846693334133642995400357508068568047752745138935855831422650255915274919277761771273046609741282623498358365437011817509682408225974864891648848822056594203761109744096220770771184566733693903445338520650549523172629856409826817640152133334177461012275288439119300933868818686826561638386635184038887099334225243999381109848413043061112457295090922807693446340139803565043498161937610446208966405176474537571838539745228303505029025387911970854886349263368756797898934174128146982758591612979602242208289261352049717885097065072639238344890836916514081519929641018038014730584279447059606834943490418764757765043023970223168894181222461913409059035027450677078513544891015318911314887133551658578660190513988176871840642263644943203370838144930463876683451227614693363614328506899818157058092142068259334793230378326135407728894358464588075085477255784092227663249226091280794666696197690014214536921866946966379503554334917248980015884631475009245360267198140133228648337615681111164506995233205176730235977506586406541626769848263968429406291488310197075342327517784803270811657299702826054711786047259165193447332141131589630583280052638803945832832737802042757763457761710365409903183887720076288025097334178634585030694832360812728629789293991787123666980335947198495532594357827289306367402102214805070920788386055615602067552384612943873857853723753373611963209415590097928707582631447757096776279858212442764008374302971814941886997932664321759833177591399736933176947301331305485011232689656358263020909040547936624475136535506321652037274812058812204530313243096313424111871494903407442277481203967709437112668739697971345320406684110138794011529801115116799189351054736533092764846647111331644167977101746530430478493615165682765492362117875566675258490888084500078836627199977120640109146972128482815872690248089713038734715763606813350614958254765408202586999582227144632659004667833869127225241633284952507762807584404669735555871252958327704462657644671723063056414681511229556701427285668697005837809273605673345813247237696591907674785869781149881009760553106486232200156649163468724007728767339329722337068681447187294999861954752430366311977810702584683847757972373851979746719369901891574528924373080233365440030996566571501592812640309381519893100101643918776228825733730448819599341083379632271128840413833311569333655728720360119615608206278139369032807674267530881888432116632784117341066143841138001952031683637778356428739565066254372454741714641978450104958446306126970362076719248446697033727422824649117856870008372981260874035319649639699918901071058381795276366186913028219108182926205582478860385809578825377257246200810353370537711905131365815990779125483593160669859161703943079014364820372966126852009824660233116922457628946513649194940119441353607753531037382736204085513731534806910140096231677331570420991140342091210799523026223184295809968309779698921592791778944287874256623273351138729750802666850784046354085496496192059699468244436223548901645334205022887460230235590164057821077161155985805404727172469870847484939100112775375808108835023055990566159637234630964405827798649321977153737251506458649281396470040927587549890870206817612445005668640591258045578517100918709791269099794746149183775555452342825154423661279292438316531805513177646006701801739374862467562510436103437295515503730594714926203412858668139633996786639738833291273525501985305420104068250015148619716545029304950253075222118456166993205802480883638830079447488723876225020086869952679362797952977946133236975033343066869755270480580451582219428429708481556324691556858575319067742384918784372880132377552316097143453340686085620571749470794950406957063596096900726168420369070070984153520490834567953932301288392220770428264873148267659759050052512125675487799855620661232967235112894810379165068816309920686224072307029450584640344555836447201430224113805845657913311993959966220245946468529091189355968853568390455040073062601848352312468812894630629723888143751937416343208232851670537308188997357977799542870490041465490469442885913519891767992977653410908243024044107952029217329664716215488009177022038417082788825916656822751972184017465503524772265030432295224604659778754691346160354942715981219188547115205045036335525922191566855105977171621968509153074815770922981143761639093328948900288901628820382218024447112414093330978595635491044977011885580688009827852628566243117506185091824450066747936001808984172517226896132617279085601876438731502920797912780486659729267629909406636471309823589699172379799570582348015776060555791040534051283521823217407009567327410726839528574459515571065028148089743368701022976565969388803946404402157581963577614822166970693196819428058975928324757890267771312281647450928049656089414989240057702425706507428024386779174711446712871131083427001660121003610625834595793417078753375505475100240542409148332323166906502030674150111264961512680218692838591768152290212603310833397400023784141382775932154365863998241672527649906893083214936481922951945674786628800416765084561843915416507634386320310199135375815213540096801957152905461907806606194734016282421818258535007363719379283835425869762416637284285288277639354251429816940283274180094889584197064383841839541166170731100556652558818958578228818166290308438759232369908770704205366553859817217895760707446609149756186520105465003688838119780123551308419118760014453561442220927250514127588821528944670586501249880739305648798823599468407883370302041038835668373011908502771269583619969581698125171780933869164160142068839935847236844828401012454159508601712338480592698502010090323942446203530137625909154313149383783844824528215182531791456814421808799402761334841579604337669586756892369436882144748043352918312254014973921973921986223210743843853652716472631793515556262779390386624274570012870047985756752527269816589592253713628908903568881914745588069516212041452487848294966006761647965923968344627096965634984869842459338830898036258723489785231161813704694261485773795685310944398525032268077902502973430610754534036001765287327220809790489904198944731303486782647828375102598382861931292596590668310741014380245619279701422011850003227344157674360080100412353846650902854418740580720236353845845601411677428305391354736648641710996506281314182890021333292665027707082150586793120186549117624635787406561529476771163929301425262228468155313900833438036937153226257374413066278839309855857933650735901728602051232857282661953388439821420147922167635203468250823610329474193845625787061089185163241425325905725096992764926719154860153885849459400691606145180775262252747833568103407171516987096341017062174613979674541033709656007711054652270275116817991219043058207506596598039710312906759470867358093171753342324512327352158014337750367373408745526936675623813939873407362972533812551646666609588795895873945421199169521069316207617108087492665541928086523174358139520489837304452463402178331462044296573214328213453877551549242492427433905578663071445613002682425715572421300838541804539788493477239647068049822243327153373756364882867669054574377950657480209864587684533930201589089265249863015960841091798410215484181331409364087075255074466666818678349644798170021131142731737674753218840310602459879183607868580567299635347879595831880467627767958641812804016570660190718163629799545412106493384547824085966634016427784572926422600923137817663199797922917752038265812417344048247320992787569565742682792530869164695231958729955713317474897876286465325392494465663486953679584286195653116755889078135251543366952125922266852103474760440001806902327335497482850557925118176460731108895170088036243863287165275858992728857064487635357432050971351583484757706752049919360287353339777208767134726459464605988187609339139852822573764855683413226628048638447468332253538122198761668031459184033225749761753035343509582078291958832240953775637836450235142776980448451116001633489598443290543845142259382155534074111621800694862213928753062990482635322036309694069595150283746730236528877071176525978178536767138997978744688011748271760334878459176062122337761670179462640921429252313186509896090064843427096255847322063693802391477521052863740849378156869913976853996874347481952192347622034309559812571528636958077222516582738802053976893776540213625761150451816349267940169143052894447272276576066094389911247278467842354400407831429441750723837689464662956112800801435769783044051922987057707700747944538606368093778209291357536393069933272259412347223933267757376491517910808291051714204598387494017893746867070333409449771705692298236698620881135566866746629118576293663574206755283620972854276679445543203308339986926889118260269077621220330187887500948360698254133076096503106643538528146491441615330844415973887648072521984481384073185435104291018345611541097017085859621966801940995167695544656678760853936695237445866731761684018709776053143392898570083432770663449137016721494359171260253199207807752385322140157034735766883715581774711285661072838998509279766174618244236192782889638637338708462099386083808925328510637897195963933508645654912455155334324942366018526316975571206010844298077817481719403302464816597651447118954379167685342763623369181984756130369336541640376250928933650480425735434883966109674307910401720889389914846934518525072686701566154480130094580751376057910676577033880437609684643537440878158442488800402373250912256793136230095401554470737055228989968251782353927328109154944489273492721807559630941537678352763596188942642063488230296174953665407195108891136434102594620151803086983631371265981451687137598441905885808094012001028096337226364140114859508943933423039771982934884139242000699963662740012826183892717306919583778752330087338833609026999226259755863016014729663755708237938599599215600499524153485095614581160043145294345247241931590730307892971868527154123087184755131106686692156856651780024684880090058277750479229063520080825559985994358229980488036464959851885633158619558789146982499871553795588622698121971909221881491699705823986868552544755617415567834613753384211910266691499164621448380023790763620563938479107771048106467017007385797795981237135389774358315075350209544693844668173734342442342739775238315075287786293962616788062168777749225515508963540893149806072788045172130044789056907171552920662142686914695958169593660901189060287802028841610075605876879112080127099089827633121891308187469751937687113946898454501483933749505368774927182110119497801318393922671812646331191010530399169042113860509455647447958261577390094914909332506184161488620365923797761338598749276351330982742930596901594039710097331668994213489144108938089146208045212053547094487261667738922317907196212810030486693504991582986714546194290164709547219764330622748124451212567576633187807659837450877892298904380240150195642543705973341310805845050038077234364858162325820841962481153702492733704697837620085719067563177071354806249776125618438477408621142056276721233067255895955120399709621097743463002503527046481798942069427677473486987070072001972025431412537130605066636358279176595617154592317768482022651934810235918090205815138973953848549039765742471723415057418608413909185788565204387216564156300707999795940998739391437746790484955914782806781723682048236927932718397427196281547731822241675136452652465446406224172087223973980979775662200020286271413935488110256748357103493159502599372578109683026941639590107061166319246347151439499649909629160212819422123659562053490544290200879149761837043937316588357270621826767455852319522698602217633610538468678699725309604295073436749890999084328223799154564044273179281764711955729311933602979587943204975172996472911763889344336137471495427820951375848754309265753089329053294809368902385999550750851773571121394459237828317340391901717402377426775430354408521476820426257787037791458870972353421694481967900541591290230578699782210960425361812461543292824389019974402767035359149166371600064087224178993287305165498052454462421510564764951167737366315779778552638220946100128884095853447792833410857524542590821682487140217590271663504452766533596910742398306042598336162563523022882436987104261207342653459809888292805686193123198221572723123983658782056385453141741087722334667567307251411246103693214030537739191238141989843195367264023746681406988616417626365387671375781628084860168208447377925664153998964324262812530468851768801050559420915280000895343012113845331699976810674422640420680795470502518176110448496044254267152060971238149068320366245743936504891485276834793660655606323553189787410886618430126413311767276407325851198362819438002881227836888464210525072529136448994576518741542623028807566682858121666518760364274643973016902078231094554602903700066312998538005763863193670068482374572599358470304911598499877434734932275980818065189389196886058075329504909647048451019094333368135755718559931589547950601795104820894323677979707035305061724001346619969819891349670242395887181029962950201498717823894206902566452672637651980990990311289576731107166323895918118599948791803722063091358749559473198190956740808014774065666023751879665502623359940244392268850201210929940495327351086950985905941245097816710578462754718366305202287018146518326553988206055692897456131341790950528804512699773713653679593422638182236967025947198942064066982595056760526705566006124832801914369002763477664183431949790719232736423667221805428563433435876594434457906955558036509975644872298858911753932948741539315340060318274747908371671420488782362970987018589243097098580357317932604620492371425609988152676252735043059603529875810743476111780981996882742054194984946813597140966932456328638142811866410805797085500565689123384794649154552003051012882935552343815561470246772071383550716187924580727888537491532782370991373216531523915623987728923083749340905689941842555012870747032234320100003135877717923312447851769352675784923654187021795039727295397479115363357501143916680549980903820072510020392080512220626101951730320828462464409332142907658047638025986281672112636816021238944441141708615406760003208954661960067379143191842876584097967457726138061307331066152406258620757055451605003566303787587741014063847782415213255351142901048697891424838188812647168640560982965446374329771922554711079828373236078148792601350074869948151859792311532910262908479653356161103896284331912762179328462573062948222236406359390675719654164182560604585052782906365497467369882419745601531497046727762544167948387365815347607929292083202218036075387501745217226845609052515641318769378653161309127633068050815142556454560747645081575667052692632503319687235634387305029097128325445837076027453581679264044694079831870709223230246340866111263855696570827586693548891278956734793350840336131884339976371774659689089958044337397853353001968306571362342621628320454732727112475357176152821941418612490949588771187927100718198287503909934552629815032968775029910805141086708379392764448064571648136024455676822820650826388662853838248010445051621589156136874357544747407022928243795928102668439941111032185148603859296954341872808038102089640821535775994451288957591448072541399881541245888485846552023348902929091002949605783893129923874201197459650081613223127488008337888190318285644887291961629495189707805970214012958419745385171547141841734395326571819148056783257208903351504907078399906292466574506700026818166601831345993979440649009697123372535122520047121957609581831459970089535376626885505773205426939460470674672571673623591001440720778837599668025952880243113253547233099866555814769308149140384924077653149868031952552412656406125653477260333375243250982787221798698726534214915092330785464011800412150033142664813651416128055390518441605149413953094821067496160909728454977577958091272078263141825132824506902313196913648132332993415281618353200409022124342413010992838521292407381200933913158039684790731287162614435494589092160981182142791227231818666527110272914956380523461958661888399688516474990648647524347938684277755062530468237109386994017649906286702349141967273679015579572275216857724049973007232079188283195866713471488780864681317930750396989375137855761828810566735723551421107310543034656545332120643660706454717591766413218210547968862970562465878500541009310140396003151795011274011724248046938624614489080006623160405899368494643656402427800638857930884846988894858740612245403140780645071320502604446136434649627179627619244446220450564040493397288087702194576904630494119001255144126416159495293070159575115468968224668582636983239440538428092888529860031145676297562396616321443509366297178711520717953280596461164647168110228829082699704814155981232761602772517373660022428562154717941788881952536524313222532406695743402185615787244411902696987199410272459615736471841143784550328445889533062577209031902685922957742720991525609594180155271156310700423152795108290271618934838059125821730828907102463860502034997953241656066007140207005008863669780197263283209231689354244402886303623979987489229786389287674007969190795142294414331862829776395685457137240476141242386463118582155413735594966356324706944836809037941410968111810761478638437562026247436779889550177580977934932469111340035298279680615261831993784281053797388619318694460826982184183261120326751997129071785614711332140223086350978301072627765445271849005588722115671444308009807637427300584563610356817562931478843580284873580632489117130033036563617730592697835903538534240181488814795473330451593751517379400006962123828610952452867338131558654795908970862344203110713968805735491911348486350754375485308654873095716276962127763535215274210382165792658327731267642101410748982636031286470652955931532359489188652334899787868007740482904416831414381017291359239140830970415967697599616811737052833320398084394205029219316031458107767400646248407966364360352493207903449067769137590131012320450214803374221378127373655549244601417777469584676849388962529689227234258905710068755204425771725732870576609667487794196802278046720834070684760642121373052842150567271044131498892421527031058089627049455526501502979106771393310608046186640604689017824820599600732042077521453560978286294139586209216314755958614759275695330963423979607457404081416854480535569821465008732551098684311096721482752720276225403753071415081814133623410736096866611362572462704668385394964452575406191941990795642447131749255449488249555497563857828089155016934533800554596457524672181841141813023152911157482500970086735751555046347721173107554546098508360621579081397980315813221121902540113737444586362749885357072355297906155054674672199393340953171032523245524053241594895444429350151118647441781568616528796167903960577450616671502016677705747179327521599609813275377132282880831526654798869955043586226461637927794761051843165490372967987987789424734569134738788192318792549345295237162511685621172760942881465427121104832954355297048748123585447650299964690576470095122510132367073718562854949701654473814524730848296996472599272441181388848924849745647901618579042302607565257574639528510329726334239157195323926156244539159597522983481408188686029265835182754041836351858067914174954340888189935091537073628603591698358170960690618801289870810231181717938231863198323277238740116592180008534940160689147321908186046252954026956988392123055502330910059453163410699016885138131758798819239314246181625519078713492784849485104304825604047681267402048088429336492339526083089085872156345864479713079598805575952786816155141455537718419006044930073077595217060950895103215769658599944786793935650693433271412540879237438540161720671539561114797201960774272406803027485855653314007676149050901427277380934027658365621539567520486105789146292974682204367120852791972357264130820622896579084154552732761445622026338814313431837583363672514895245730353423780478190701919585147845720488593177187204408822863368331867362146713902510460052781004383812563138332601873128337705199515168707396475816664882749402662826726779923271305776702053222098423351280272665824390138970638546777191032346407812601645425436019346726880829504677966933818557635056967437560882183789740186886336123631720654689125072344628705404305551240334624273105371412345811991395811484277221966927187429385910550813890400628380070278878450501856603098703728049603490965822122358022834184898450901482926400800160861760629867076334325254921824680421558811099495598678601205814806806758667564028164240607950949307652623640690241286486721509175108647126649778409098782498049998073378533728074779532633292337158203924531655239624333431656722046758192484694810703304138227257259229175731550219106979726238883937403389430577323842607415349258873703433823890111306387047607535511059462496794725432776618644805212616979611728245019093906387470110783941269051006847575946337236040692335552720432493924208192655956336351624389798338172191157888106585849438467778343274122763944538840565081687740619202317520297014612351414779011536259504122654526904999208665669747373325291319748886455601984516499212871278793475008625387236253678993823007788971454492962997028207388560681097903163333939241969752073342795684553113331234015484108090496154852267767805023161344175420912469034506066858705920816359997852818491350960631143895117986244569316227225672002546459327203273184796446579855803233678342345458591830093327265174340949505885581079946548473826250489603549989755610645988007207246236480756603941025076535134170277156456513755779108297188240535255969376307621941237278633302849195713938974863646114152540778640450187138884977543289890729480130956954778968888031115016326692495922991057444998298049993750226897726084537943712772169634821294074461338022311908956316613613934252497256541617090348915117312168465531059202963502839116999776487300305892049185064006476362367726358635964422736741573010298914431050087089391457032174872625511336621081078032905331921670384100683901376214917789292601344210073108961689489043007278148832522009232688689487596757249280469788028336227904579819491538936276138753430479934652690684344233793726965431842131516167849742670937607307213311607911065560073301081315837444785574176264756933790183980387902419053998414376295597693481954498797404435207384975657700399030867835292340386479097696606967588923273595319623710600492203693927014670540532691565653461231071110079333261353200697418913264924909611315984675500317051868200516367526962419951507667025002240678043032633345537943741895793102050137717215238908780042156757835227181186852790982914310616268776300739508556052695070540911546011057643497725699958921977702308318426376725600331557644913189068544847257017103980665834368293091362966304280722471800684786849842129746206607993698651782370713320192742817880702531545903980543527623712347287296475047219734919068086249345925529175808440641687277123792562018051142391743980202840088207669241073489579346249633825063048931283107227473471079434938929376066038512276501380510055942912643427051818137743882699664517345141383922936899531457029739174980236153800796879540662227796214862592509864162180983268205502715252557665115717523993266420591604568007371002662021881678388425665874040266584513971004998715423129197129041718629685330941698532381930214350026536789115202942579570286797271697180207916302568785602075420085298444338492260545014284038642693545108417286635515695340733365871532959007952550214107895260694928368356686675208652472418265746343271508967723879300252165041682047828361186652073715142023500566742703857103729233609598547562319247095322677695531967446731711328622309958315627717210756606132554668369985238148099325371296960268454611753760037876528541617620644616799936512326599776573039280308984486492844069127363603922775875906522436805175864697959602051841659915842191815892326307154969356628806711246613775208905779737684472949860610419885883271747481785294236251467378672066863373850260808316751240275653033072751139667181457602586331506078445932804419294800108558335504845568780883732137836676413413895711009929068737995108270000537171569354891557466107593024888137497977092934034403044775933624203967329610369907209143818253173090739231966343452318751733479198114086063854498326127097942930250841026883994738801387745171455727315734550483334959700304261631495639555245086583569539726219031263778986034835333949198628731857195646371336721588007714294604361539884794038871394820685095713373475420222193229245519591046468667292616652381652408113825062613544796234887034285166713796086227856326534157368150638459557416948063936798511931782224712489754975107648316111893291914592609998164824952209172131648574064625835652048548995457302369189792803444861957050822099066538104221967049453992645283360816649850442338015592262933621814700517673005880316971044120484049992639289535210998759951365832201696967287443302432996064605542639048240021761573406744066408397371641458221648059103162779993364160181980293593472980706972022442550327279264607619389138182281507573159353083143223864409746823441332072383821600965233245601709259231679788445749984019106204650105787515362828258169128467214300846675797954026044180773616719668762021707256139471923984951169312785393081338743743720710924203474970443895497204992541623266075797048856211052984338881931486942894253843099763010101268037445060471290030411685962928568570517885608435872881575085779576394844432064000132913586762447856262494358825335282850608306239572246368866388017444282781547014826121542007696943325932006288488414067572017055326718281375858177854462796005841926702557571762874400347834647554290591050945551945730674656639415582669284892235875534898554879736786849792117765362450054746228444006336683945652016175147473474205964373665669636774854898063844550320495953336354512312350435092682664442926149600457455058467327555850786452676490192921830166305913916418904698368476852831547350225919168315558954540166946378104077163923244862459387875472073140064631253438714931045763694644358097203180870129587779285098478880431577018181187997801287974317703591351724121933904923696660276174527234114846390741865149961421837364282031677159024614199757754557081462335373793329210749427367698559372346440680954441324401641826249083977775665876345730159601340721553453927237744785520398975020976729742594815022494431019327548009616188645833205946292917692322479276517240241981512258573169937981678377317117416662911797421724126778848704936115317938709515743146166476858520336844143890520574616599016904255844867503926999424120044811251047790886756500043030488317745966963207404759608515399631718923813152975566786546448132722763666346218038602955550953302301637743714928824826776002482254530641138385058372364511705293099917529059502717974388745632293713569755727304074433624466889931710380187842974081408608981904835669271904831785256094271883435274196448195906299808532586196557582811007388008392021357322141493938189037872662210879836709656880991665434766042360747770252204982346450473990086750003201325195402115026283147690451995438152768052175025029068585651188007101929523593593517506525776642600709450918611429910505896525304654264639254729400907070269336308572289890262788967378422013820019534234040563007352019537615277906949861797149658573846201068924553556177052942919677104599114134261713471160663696799125785896975221184322077523298933949236846888278743535533177753540924321027935519744548428405029525484142263696646937806482324734857626353555032983783383958812638225826791394674115098880189568172433849385002615799700228538107665496309134218967785715329932669392437341999024153028486949519215122447454354806833841754325141372967032534020192540381293586738875762830663423133728198798685683965289854166033552155472979275977169923916807483586095121080981056189350759122912520901792849703828178001620498987975215578162900705271140770866842699178444743788588301711525247534586391891342002058250443313679638484396542382275483644428170205419265120259079209132609194941590672465114778727608338797027099821614096941838840886777748387215215522051167656179503867721263031592224337359187963161200394746610101761111122093123776219032768148145534804041115493534131431666014875038525343995620688921286225195743731807088229803431740770707876892477245124346369057777250588519287754634371986780072201945486600250261312951958416841727545168664819839851067300976682009045046680528703138616836066896785280792799868601126173891886678987822579439974306217191974381465001012317335697116153090287294487112564473402015109278874362513138894985025310195584373651730970286304475182955296200526266707096636929856132141693161390143604206423958066612228588752209818059524587261297521079686249435690084602847371335666690357373660748970244630589488085462209265203608092058333808003325286551357538517062045092043225328865725795704506041511524910926382116784825958292413902917600420639624377326500671179198353950288355758499639274477351144141556051203383126070777441223460576982443567323110318199399612297734140089301381236930499034568356587679473931973957104511073877411361319058301648322542297359723355181819870420942065205501032845989030124367405858726078568670566001669952549243723220437770914109015482199731182259307838864834403490052986038070163663260499167044951023029101748172806144797849564430204704123554940174882517076738583111273690447919997969832583905359323911786045852578685742665579931857955745492766537549781131661557685547475237254193389263119619083902161134440630966263174320598495849739810173837967752609881742900459016428897437828923429991242893597919740058459335134461577990529116469037438963718900839930410187904518095190398659905196497790749344302942872803160728974603761341035096710271104989798839716341119094612013581590698916383758434655878203807058977526530719638868134857889517915374100220024420300046322113783522030132042231971605634821781874249727218072403079464996910467231634732037642377243645427518455761867027018418339862773785217646860881794562445022657857027969530944235057386901585724933565097941257444950607012134797485036297946493358516105028626616360547759387015547653963182775660847277239425170119962079117184576167645383664866140512260974790375537067612448482015572885275796523769044869744038423587316299562822674109627108619725079756641128561575151673017101118148207027252711358126347408113083628697465214593612157416114228367243977956132736756084734311996928559723107123351503703691578376522979217419086912428420649625121975526190364102898512908626089850217728290467830019375220827619122950248244857656992888001132606006702713696042021491775547407637977734045005049438339694941305388234373664208564804226210275305312717020876932126276108967695268635342867100431045033440837346357829322104571566476334353002844968319518563331080673970590084209461090441925976439631277764598981683113007566938300964804039816539217651985121650598671142672744586765933996198643161241469113910706897402537954322936721803156685463732778938452483889914750841150806204487523663279045135513589735687373454056176383105056889325142409832786672480374561269728929951050575482688158893383920045081009435988205719775322244073809532386015196814778276733751848407445291301887764797706858384234939568055972569148817869725549172014424023393525184822713462000114926309817728672797094174112122243367490112646926099945320782581437230338176392249837222540885811110389068621222896622189877833593558012205826214398069557344100059161291426340483930051122280399991740599318175210950404510169735546333831449294925553167752517666820633103262804023036129174157531000888913484680999460286767553334304770273407153244921547808432464466476228188973865148601426579857532986003405887654631037246573828059967056089017010411041073851546272426426635823013166155369046211469391211346803130368333422371404484128231817193181185763918792536419150534287760155398973739921581342115386931280407752884377574965483257873018033801280698903790174329385992354569019595345440664772679359550024416949910539399925920096657032554841215619632219083584810970426674887479326220302451225837023148407048169608757822697263517174945549003163729186560946216811018157263916139981926027085525775716557015475685274059916492166511774964291288169579836151609706577644424039174595266373185434026031931590104436237754229646029868952762882806546342282769169562475754578784542657886046201952524247218050743976342856080657775908417356699404209067333624785675335047346680761275677895074957756296313373990568318223959059346450643876748023559711106608631908587620440139722780357512879280465254180350621833770299093237080416801355952670740675968189637749049282029476622144754760953993893680077800651503380880636537569588219765206634563110021733973956424316485998812489810394761482693133902595849346048155271309157160538845657894481852710723161156815069683963478588436206300859764225148808122745241707639279063238479798018916800408005115479987644662502525609880677950659258299432628546224234364892595995237932820886644128145550523407588803415665954478424440504265862749867968338151212295842941528591340757608174384287900215456100076712902431587784114964917033759229454477432303788661981454745934094054413312612373354843946951690417517901178076119058305721453398967194929332686927725545943246013730708221669818826236187373291158199370916567726386671341019760132024605984849796771236127550626362943272338357023360423952936486275498485702484190193337149236348537323250758793992032243269802863314506001167812790990843873394029805165915035575571785549289574938817080033999989598426678918684071356920211634182390276192402014849670221537803857357386015455442683447490932673830404691574706564494511685960810137295265597849788383494409036376288522096711234787502027562553976003284018426431116073099767350689558141971604013996477053767469569260821945198183096826329003139788041880289969136369279713552696839577800720704870453911368991770462675376440117356373963882003419309539752669772935719621315103360752759295681023843328801780611947009073981233793194192650628015387430613612707554910482686090992125445849902726667070667305827439821646156515594547492535905373291735479095986781137431020551484234430266217391070914718361038720188726761703386924705926571711872103287855806090407620579679136741154864362402150767866661362977932378521175410271534375681213963485947828853229318302912063261726565592755604488407881840386492397097063449230243441158496389396102283877735691152416727685457277729342126968344250792749861636583015782256518820586408228357259261601286023127387554387480508985499000451533235557032500596298634819070344664347876975917543499569023337524739921936266443929314085455773670055338932089249934021950266466951697875210446081597648797718431161531012426673388967852323337318729411236420500135860650846196804380201321604288380036038560164405345230006877228475317912799046671408177090404590210620876455753376754347587274144240850275326263928983768167020166540788488773622711357764394581635590739103671848830304826613423258730852759131016786856927106257224932787572694119314172000237385982634652623154385650220753425211300398017999601606462276276536509930710038499594113589275289298064940854318640891231147510662188559556714307267865812431667362544920458304695853822504328761802505607437416189021908517479857018397301370844480115259016761185229932144337735578128175373954459466219946394136753046338907344650399723998473232793675359899809648137996525785816209386508393508242111850274852826661613790357619652896537886294229342675963675944854273376888221539360060760913715734155487758918092510166187755473283199194553428440102688151257016281439363788197086111029853779672176550367018606058576971399672165897449881559848947396707912675353455264049015845836663777453315542157865498949796044520094442596331109873495060426071966935202183337124173522175359926996904235513221938615321103834949167664092452467005223262224628994316772255919355709797992895729315297330071880756574897396099014907446513399192167658006585260195078556833021697586086246388033464458843755533387149504171266031444486571573722596500406645853289820641723907348996955834631259600256488732947932406770731106815504962505240478154655529432408337769892956974568419014205654523073885761645177412100306471358578760697125412702444725824291017531215334650238652633916350189662017064396450451102574962000075987220701286981548124598635501945168375287831399786716770300352161694596757139853082260818410220145790626405456869564452868547046150067970890924828708975342949992866126928979067474128193224021899314524048430644848711680229324081675470321527878677565715257658070057101478558550844866453267680797659723751299079907467831647365782316560347942993120036298972158503634188223472528250462267815713557393805645113604642737258467763852986882305095229020394921934286290489623976427025550249169929813710211521169504740091644063095270610432081792636589135397913918227262972485749704751916039468974759133341398999066532313642801546323793320551516099465991151743474765251375399944647538912996044565588160911215129429547891548235566252489588505308925846714228931959448193279770259373317312585804763968801550370828195169352084355592283722304381755836986756670121135463514715508665810504008199893313613872559246780089054480915516159519913580198412535375989757590183368274659321420705224510818374610068452239263377980870805942509156470086928018571580876319257217738910608239033810889447042858931646054198919476969266011074352860322036973481386462067376300573338709709243341185518344496479142760546841439956582604282179845301877525252459685469158932229059144965436235069942468666219149056573972541835648543837716894304762874509852884534794220104622786790461970584604022435887976272350969974465507808041669136328761099378031531830099174095550866230502217811789334367938019892831495678203960736445390945121224931624124047598291284126744758385649361288158979035383998859763642420513625998066892541914197966284193586674814685235262029276165855780802702667467253383052066900621904861681979427262756853418454182844385260273844175498378797086929065052398455256478516000897691617161894185987480666763297491454695111382538683695734053440822269505290724751723955728192731657242848494692253553947934825614210811772051457845586962576435209442008764327292713279711293526847173959604653175082325004660308871533946648531270048964965546183494286804384417183565782128923642474369051570090378495175317152478208493905700102800006170108134655392356941702686209303096681815349326829206924623825173903855424774458822247567993541324055707460063563891667540611288934807574460250021331559397577829343930321959326789736549166770627131697486023383341325748705138489241167327947723665899881321907570899182874129839492242266542144181276310597479337055071847442158013486030037819994706778279388599777815289462200271073040792767055808810251980640659434602138084665117945366138704318726427348432030068440057125626646050020963643927249944407215970599984554448555723962149586634390767548345963808862086516255517583950022472077826268846878794259175410210030583329251803881475600227623353183386528504800664081706738997656149361582673448752059916843254141612342789990663882075218549844904499292949356171623262620507479277135852844770304304921207085784596518462673407488861264008509340634034945649258383831793247135171386874773231067094869572313754771485596138902896802107456203712206947077256148679835738137388080920549202607768628519257267726387292737059415842405986559915285363822873448289492827005359918574164358961071249533407531729390118626277103578632752904488393135992355522585544839427421529600841497537850792664927650119799156325846224546342416882778267766456252961714642560365921315587869953971254804848063624465660036487995443194581464586576495519573732543339231701755754178208132688006614677838749802077228118229981669965627048997076785758017364640736757396175516740161736226325012075911052720058528140974644512605440053429423726864192257958823293733964029512295308446769018651868811667903082712047454264415300542622666411090445830938148308043202027342665312526356049695006977757022305929486313794514436258230630402868412555922577733679350137895734497082541327757450048214896746850933525918262157201771934218667301194024252184962831219300857620396934799408494267077154401531478876756943500858306426864638417425102126476960461238400296965089643231973127588296190009619476653489923149293562556822220432370505103338564255050929554112547129893234307097438076528369694303629625265604981084392425282445163302106274340393104983935344971389479369317475907290116288277984991911889638665106292279744338432648987650937202992065451486446338139310694766617241874580916052581626575757928522407822193975028921762271748483073837893133359739222666252501676164367330176878213415068146343706660990103426489321881566197191461566524102094242303572559500208358370338296496885641851108986656885613485009354388135966287528385873494595437402678790071906008244530886637055534671735942609558844787203796355990088040875212422755961744455751241549255427193206545735927411318405111839043498116460463276409524962444389585141899059806451478559384086275984738392390594898358884892926377478018278589538510426929374993872221267835865881891590205339802852260608409789151628636137517683262505659167457716039562398832721144492649663959133933907168634227834749116011900775263577500231495142431077439298695649645494945443667171728053965452773956360096950088117909147300208136842131417323585339620974809168560118148791826046647044829901412430775569607392486031191134901691033083645258214164816905077034600804193412034556925578463789491302460041514869936076872158334616219561786913313736476146944951302377741347750076642961675655451194699246212403052538739345972075616278872756807746324126707822023815104128337252491998658861708771850509106392681036540710055147323454076571381573860193700281889330918556665254754307824408645074900893855135366489654781179180336107420839284462853938477724843730051769713502649666962896708755947384379053077834741403255139608200303761612659713278359048169304841955246331438711020026684072962339275001452926163557290762022431150720881972414700043583422109989179220180429000478664755808045469532507749073196428668757113180091301474257855265712610758986152129272273510688455093004590128358291861009049719069190382709926917705942308054749423458789315830953098893159278980912832225610652083412357240990546286018777099150353774101227214908551512365880438983944670629107637838007244368840349705777683038066218837011749110110251983098478189920243038573809763356528566188755909674825552821605637517790535455086340295548598811250692516733382824868610278921979483410956236694406413019853596638575885018238748081531257374095326385053474648864175920210719504596554135811497994327588708730485167148780476446865811029819090979535787387419845581865504833379084893074808906558006069981257306097992882833610729796010109487373811670159188552059527411868975578084127921284397837862713668010919373489983185797249067210317448651247831244087237593832976687259583676340279041259104292676684666524816837122660687343056561665956509809197721614822917800918813142632320366137318415823969809384933170629106840814490840229344357860260666874047720757950193822085822789663368007179379198790505906901898569718715963350751282871894570566231468085472739824146354418693010068611901331612121790271122431848362513045746241956571471822226438031031054700214894636101661107309302352863351091453222281605207901161065987160696659407071598141990288240923901913326043804179710308088429043633822678910125270632488711304206007039658779712021831677409003203298909429003998342524031120028121593799757047489648413473793902696423346031646329595924761242139303081747154119798361608608658136340777857550110623131308156756667181393436584190842250245724668270194383185364091672375062150696574323082053847031425278983783064524922481387717366405051748920335276645163114870348663086940975527389060597849014623546256799303099529350879674985471919962348175954760459980441495930903076721979149343941921871061829525653438590053653194622335360202088073069229709330439439738833493957948114294185656435956019265162793307235040076180670683614373227930226775183045246110443766648170828485473534254232405974907709801403143339378384759619047144219514426961413889444694481025914747057628830391101059499528838020706803198629754390731321504214173150486077721155659881908599086917962403550158212426823705702311965148265068820790211383178478196515580565001890018518916875796276027850024820737593412655672465118427666096093465164523628622572747378251700179160053719206924565439986681863259686776073367371404684466132790248858210836702194525841102326487424168140649184254047031066092998658687968186436202004220619000081893674903704792565584404002984440448805702521761846063461633622972861841481882199429571579080184055632856162830944467050678957810688591094478703011987753040673503221700672608852678747458227121749549750727224770118179878290256657890083280703568102139070501369724390706990095988864361467504764145589386724940541184603069646541939546534533830930909306086184385044296002436961042922702594440737880713041586028970502801401086478489887374160415352101635007672191599258074594324951319569222871946589177847910809849904970888728379430906357348332400378264921834553816987998484026352155080112458685579446029297187275097635038028686791790967256780776356685808701254825484392785688430266129530527393375371209302457977856600697716286264246195426044519325294260336532652659064406181084533184807877379189050077796913951810617908481827691854979595881435645884137020784126000542854631007161008884227826984247719072504076720611068441081044771042969104103752112309004478820491357461708946118990113401054115186121015685430608852673758435879984945852813197008158521667096357709455140962302813557300745347061650420402595020534361118861884109809935267209085009149236577082484095014464714717551548040979150711816634752255312246755834324085638583683154990381690539203670584231928137095438995679854027429104681851033875321097261151474306563537061273176531756687376779565234645259682608982358672815927689457637956426502618919959666939618200379559527052689128664877491874493159731959792571313763366226158915947845530731248360463093265810632940427129554897148591802795886922201990292500394840055789457435635225888367909699388853893460394302019228340594654275445100597959721697195885280914977353115200159586154147726599990486010178616052004830637701529178503067062459958774433417779470669213127404204683580589536895627025521881805303522661922854472793871716620227318897849576944114767369544940402114287206030558687173559324896059908546149234551492122616841925412806752513703437715933966054491052731080404146892525377974086982631717192233950626079973577553316159872418446702047206269195624922648306402369774602861169512521461690283857062287596738243836082724300250122242938954605304685724304215764714094748593508708431095072352962482231768719702923807272933772692010123953045208085357491123922946109694076022968466549203273601097589207863709172771704418651866829325403687121119886891800982587264982107324421185602365637794530962431481761407614330882178474124213004522769582468761489952111747121153977480954720517139043152569098641349209735848258367846484819208152641008664265936292992941170408023372788098507255608165273922366801124314042934482560171398640075401092814378928217212368622726927484824797311265461665801428696766668390933471028636381264101434267612503036280775166119411357954940230418063336133390341592644918316896386214588811685099437382458130218501525130923089091512141832909566629231416031768357912809536820259485505001266401433071345865291642152991413169693343681245841280829928674036787901451533826770889951039379815070271672290954802859229012210076920834968689722401611243792214920263864698709910302424098526577394942307847006645278197190243799989018873166323416697920675987873404466373642394453838319892492028089246473368036467991133211866332985843238694025734844483077877315774475247172424613104682364507519366001019000071560032847162785049277294772501521131343873928051438741338089745013195138384125557951886754372143846682819077172855708786362657467559061861583551348740588743508998540551479526037490519198199481816062554719245248426431791929630394616126939862217472906396766543852374236427529812891423329510486986189772660024900995949757234047855798338738062839799035000166207362396876604085810679106285107373818581768245165730954608995572519861374666752267130635189011377594825492249778195410513107370349981158258477770614210629859730427397088005714385377841551848873011186034384201958299303201858648611094381127802321865872663524480711427108207300081468247268268447776302884131292822489232527531326512435681544907772379103700090192146071765761460355083374973825429291232634173966653487846208738147654378712815934982462761668381302130598053592794656485355932428192456067609145612718170072484109234643369460943542323187296754509124727474499434221180469789608380522622016403927421549256418615166211136118237354900043363349690020990098771433941909983585022430299952705632376016089725741361909574830337529706041427567657629821023235918515470242745009219455932770892713281913129757752441859947944959318080992119141619209107817939478683667864282664086536485076353998649018625358373122245789397977590068648712494690135549366079246853403925907147155679831716444509209992400081393919200116847853928747034724423965021889820048718717860343064622201168120405786333460294323603602720246024625109219253266399362827420290324743461216797057536327843524610083298038904685398460723311203733258400139032731601773071591874940059132277108363184141278873344054303425083606316586351665563141473669617572775625740040323503672446048838442016825248069585763011640961850501733852195422073950874768814731950971280977861152711659680834389307846224151980252226440264553063459136154288274250865028374994531280450033505923501410280719892840268075465116248331965957949204462738867401916124933358148148176785291550388574515808744421351466874364402315692668879142119318366129076146098024941216120558757098956883096900880864899787497834013417440997768283747731931861880496412585649198627737466470165307977691276391132672659074655295606281229036633860458043950287521946098120122052659919968520206657223409249539228187610199086747746341392209404688129047640609522433927943359337022450812023080194604497565015918581388441244262868538591402439367458067730223399406073703928093018284045472596658134361306234274030481052503803662390752626009674384414557402843847892258714317314155481594743980558818702806100689254216608128953319098745951050732064123051122328235233642224080040291974108483437592806134240616152886575596603191071597990760707660009802358001100408902360389257840665542515978036064947884500226703982470294887272762180190079109025045977961914219954941178316373924612293928188543919054320413478427160274307993966640919952992817562110906589101719123862364019512567269273055040941026821231288085492262875228613326415719548978778459022629971736942363816847570052123869570523815999870269131680177836569697002130423802380917726737876148555403982558500398393269225059795695258598027857768077232014085582640257336233649064423427901913029240380753723950178639728429527616075699894492716916973440224276425842493306626461975688124988448936385681766785674632047524982990563264185760688272680112048961722332264915378485355765153365238537440572986027223596289798392440405632411751789405225854990378736500290979786150807232260831213652798185336959881292468501463291055515520544798240139626558737311310568348847671616529256684143222654555470016930503325935135847930462448942580491498171614942000547468451875367606986333013323628950600844057331640169005302859785004755148247264523594633612352156188460182513782004199211133813509132830986410629121812422543821030938635229702073399924047945570128752790886804760865485958557168647789935195891342755599971965054129803322761544645512164429972498822592193348369499923313282250524157758803027202551704517931227942002085849572062126061010001504350326266306661554363563467937582340835810614203930101252915676361615280429821215818945536832611904972944430847422554451047992383813171376382357760306171011405301411187809862913000906901277184258181798613728247426323477355613874244617329147489604147104986936586577324127296770267824370262959035705583073088016612173656064590429510907338282964460747104335373451599875787125175678230275262756703250101967625129135439683837194895688905529918569107336396745301363580986426151666117743716982300369465764653274491639748609411376709024123800652720545706995018395387557996306509531303046806968288664408881797408678517135700312360679784437979627176958378772976846080894232543101968251798642119812529296191252910478626006423254983912484119942486115465191568921462690797479695135635742202757964121607082248186512550807063837339460072511409278150165485617211722589018598538801050835188698598188336662030328715293775802579532065812701919677639759551416822049130987364401026278700956696973231684048579710123610217259543172528365709524616251939105665571848321084268595703372580440202604760492152466163890829848786454580790136115826709545230517725893950837520014180108294148027315614315554370634528413715156099459086786561415807613534782898589618542054921621655867811729065627882008762640677152070777020409687265954383625988147466878075998266620176139464416595456241414889840820679704195148167282354848665870257200626371212274986509815536302497373335392145914916902731966922519814167145582074946650030826808085815076209717462974484857429768641796311878597543980592853007174348927894166215611750742627222954139630906631290623246053624332996424271017862545137885877050935906362086062614543630592296993622882993230596046103937612711228347364609936844112582171988993966622852320297186851928881258180859368477234854850441421243410582892753628568310179304382737543261717315261336195847718530713959236994987216097254105079058520389850118585124076157499709076398683920459239956011035812191933953286137204007912533462551738667351966152560034267060953898193486847854927583891805178864634195339574232278783528432562793573826416890782068264132452620084014531609541961730567327567906002837928901654107254140966602185282815692141718637165248418829484535229845051673233263569083772561002299745348461400241981144886157667794567823756207602211567118678469531061645838824977117225924666713183379339505638850778695243364447755151095843992254118569080277263187604911315712327632967251233530755572693184775905400624428387741645450414242386392448991685967472414695336483582339195016796370380885085211929062523595877936354342084778513846418412345974310170235035187348351626422198543203547716664440848506707602749840970604550265497795538126043653919413326976856315317510804525695811516303563463804725070029823766223501070667431757860410527953596056463110015626950757309543550570888031547115400053561045054020306576276364896867890068398025794741491793405320600235156981541238900525068680145434183495539734796641109308530901864457811612254758253495664448101434971319494712677990273397102146886437954442985392403343379339987864939978000517073536311070889681840129028475257762642835968744134039677010773615591803200018146959773852027749913504364158363957406494515936557554795691250084237864314896965860768690609025983959432140592806532391195033999132739371489733421502655372420714130381440021559754316527732905817938323551257945156101078752779599810436097157796419613130409719615610347638933117956615889665545005184486706081706937479301322098294471743101530082784950382989479495872817327514955646346800175295117183944693728155877078195804428930075826994534122806089348459746422802970064772968844859876580974316608190244115924115922879085226252616980289976389371087351144490626603205235931216828769389016398788670551446789971258867414674454765737773557576415102239202629742598228184270276786998693532313229751203729552888029056710295616215701823244123608688298039184738101854540607228540465639604677501346103368623737991982720177051693113671000357713738181294426901600162966331011546398070328533497603534852016693323158025483421340024799774328790256136049152286673968424130608973835336859443078433856407815026262025982406616931798815753301474070073057162386482551281490300434996638017074664175543462576978327986739164760735783531630422141770292105698522086488064541294506757532042002597999452429438761880565116837975661920596489308566876560136577347603258600948227764890459389562179723518369012946429741199996682784229530130730355033129096067228086642078795490195985695202791922621193621257414443686070140126479496390233126945415938263747643100525847470251738759058880140651119634167931635497951277084791194411307212359735910895486511406573230994441582183006005346165513744750136815757698471891146606189994837067896886229163227797340774521192698802875743051782196086016111605153578680397647709786225529053770620437715108825331200900976654341701915707710274429508687867440889814673072245850282276220534665215934126907188222279275263323137717429984524766948371509282502550281918653099428764462886876376027729103376114077738751067677855581873014570508723309713652985329509040744990638157366364949912046839123256004869015022187762717344847570839195818885744251051879559946782729536928199823963431441211813824438523666101393943365571016056225297837142843794760487711277669926780791215857690943667203647898502197761606388956697267301201755443249094604032795967145474631710288777203574189095241611217627854344365506153116801992799516225519643661076537772438207002472091930758210356147614541984498832379397972189179516020967359897050565202484889223097999228836848827404413701870707874324295977106598785597128195890922252328329580079617671794070772722216640543610205837404098378935764400217152011802269224508109597468855169928583277943502253130068860497532542826603503360914062419708185914694771844577851320208627698198486987833903538629762496106930099633051979033972119631323987685155872524342421179320882276873522891775354910881151290549451858037789689388854461876543737356642062913002376311569198054883243303955726114968819876616729468702877193090701603407026237339745768608884728692887215566464457410697458432659979867617627232234196134113465789208343695915204206388085220699130981129488997229840999324268417580500372191582908024751577021834844293579584084718228265794014798209171497275627466949355187124921552938555214731073463298807291149288026753288705081604036022002488416705862049384305102821797624485528977491417305872589338160845367835488376916313737356986889808715991366745582316597558275378384020365689102199228190809940755767188072961215305751798401244750284741096766350098291729419947162975571122900580022439594727305336610748730827538980224339029843296832561248691013461467139281284105519020117123266913638439692276254147590312000484235890889937454503495192911496881679045195937525401119728378303090287496127921294058841528013180261069425249314476465833156703440361058094631514257219201742778735288578109775215976551414092720290277785651502493303642186773966579532512972262237104717922315949058197825232268364581430778109734496142054518007174810741021063653915148876935177063780910395592744942046923513871221028252100533761185723444881085876514453403097764612953258600722667822638031103560171089880525423571877059746290856450476089835968150758632712392028230380353799412797975333900648464008113691160624538643770782164858208225742444021794986039828803146967464255077139534565404712296742832666078541399398429101758608372574000889026758454313493613195169595755865545688048442368960606482044774716944846097036558034031158579980271238642273072961094040969618203469787616577522251662316099016548843340414055953483654820264918129665622378528885780106616942491336107909222106196768405359366601294107925354362396317876479648008241702801139173248585957122789260835830019036118478164081740937707945638950351071843518608464267028309517856378698501835973032877649390241706247741303821075122494893240269908784664280553852475087832121453098650264550565158274970509520412812329500862155085247616663071185669284848521819125957936786351572755243753347288213880595772050587843405972157413223453491986652204323278316630873743264961476000198061223504550334020825869845145090329130101959983416764532988928434876908172470271076088174025451628053094682854625263186325205335957601331505661896985092886466907575718265713033790632945064366557312285714755555947606511753935971559828038891391436158201051383905992770378152866821910244196907259373048754373186609562675384904052641215499175693502342363697321549919210127377734293442217027296942166722251856436590584382804391489224928692012014099168370921852327259200576616114059989881926812072058648805301500118629187628508248288013682078980095630590021786732888736179087247724301729007661618141013144788133655470280436409307733312276401674339424895540416871944447817199401532744046339570406525503513489168986418013577392512073543861260460960698364702438250538180800671454794566369224923778502421305895981794205588158805526939285743979539084468219479720783496407387715521627108408831497711793127929165566654334485521656793050964949308855694832378431445472525446712338990906876312716648961926865186662044298648222748176119902406523886380908318750530734180360269585696827297768585489011304308835956154840201136627619769852415017033112397586589500199333630419914843642833371145678259221100922586331310413874623491907488373225305211019005533954418940488389377299497379160492396128476560154295330091666643356111561512643131690988434233621080086903647243619476082849296725483779012512381104883122920017665355249580149287931631517848488082071025292162319428920439501031093299207854345790464854702486387647395672984219894202272522128811163245782655885180166321476843419238258570410295566469017965664364954886941762765476294756549594160881789872647745161847143683284446372236776350163237625402550174292399146044435474429946325378371325584615044185587365301465753146512003309749765959784837527856671515061983146198106107955893831406726698382195019501602719482015339459921992839881593958759023294629421424761088009994642813043405538142910699028270241851720825570629960251693141515162860138344426624152255727203025566534362636695502916989099105027346780212429284405601192033949356949802955831189829926519975786437693642963880138716081388033920151812690470513483769460823612948726303195122816050456380071168168800559125716930799583392086744771099734389434993101208954766041863396655625705549404772235737310605829966949177316792656845527179831319943481110617521121963713985175619717655233653092628404114702942463555706452442063972959894823318458559150104436560210150979284680447572410498835254164719708679618946285334312165447655415743821619174911215449211740840775905729403518208041987980156640804424166816195785956623701449008631841290289924426312978279430342813156857006312362978150562871638447061450643929989861533042417387425857213601865071863087651760994089537323246882106234741276613274569115646533875421416977941807820191851500852729538366851339687623136252088107633333818608300433160137469294473626673038267104557282017358300873371742020016181205753316844756133182073899493774382876803821801341483952612721815065316971854465742723171246930728137346767562570451671802744707390713524108061108611523804806102501376246318347784997356586097556641608348222411818874037121835707552852439694432549769938971289220383511460706857825799293111877090715292608275161741371976220498248181714045543164541099536198681411045424408274143421031430652793955838213772237414657104334377837960060843148559207824780390231062131051725309457386844495336179860889489028881244552262458041305358807212538726463156301369617865615404324441899516196288192603006040095242212657610650820476820113983663881819899350958752794065744067195417161234481830066349409142329916858723994361694955234060132270782733891588734215070623013221959931898087906458209540197906938611423711335120397955417835704912529672870410049470630564131673996102722182682868994997113587331599259093772812393976888081862635136557990332717254771881372024718630824874005132083681808162001990615260333464742160455503946291109418891720090410540082813313682880879210632314731270117563650382778343744794333267838541630759056880732311063980507869486262922097804641381659920377774739196140795682884633086936769381969495874154913942575597439753174069361920013775740703871784558397203436390436952733372979877933373348465826841168812295355434012402384912553878030773756437361035952804928093394077853895105808700679641149473181630848501058519093805484205494786805392987852009992138213685053451867307147432540576407158760032327065382755633226493376416067183022688472911935528296747791295496479515012634687290005551420175503053367803109757438852760763964294846391274520218775750388244811315158815223946514239575029107674649910787924621246689661394083674522108016391139578631439614727093644224801032588083244216153048145537015666517698685873341010944019149861664490893562632052282311385815665831089838295616938205990835126177072958118264333639042317479782238945397948510943822654449163763297157357160196592254419256080218971476501267925758480718654163193824022430439298367723918171108989671396357143555038721464256222942665577351880532799913204240859745101011269925086489090473550150597326646773870333124144275011273409017273368359599332760992476849730985152242261108738962156111291436452479178145504038203781882361639049493735474788637153078011836984004554082861674772138979540925826582790352245010722926379224892718079919849836977584308999516504900345034564853137923428865236736958375252036582885421132392737551921073211106100945852062468316926109766298815659598263344933932434330505459949932157777439615834915609595298231848853395067206416402593508659847484791301963879543087335249167837399771883489921999758809876238378628820228850852160230923934133646954621714696928588566315834607311637361614874622982602097260898013472816711637988937667970777108814449831769308134508414568975707440245495813988028367541214290618615642922046573107943515425765662887328111878900679992408581126662546495203675402632622414315707608448975743387212907519041577635212173420380664595919530546151695261829965999833523528312920185291644800943422002583491642295321950109056036863074971899974834324732552890809406001724997025685925783197158886776680532235766391751396053555935326745844872943800494236979221205134545890939163151640559063119972968506149843454040013038432933285905581662507668512832204560425638052037621740884981547561372040615289512184520878887188638581842259278152631288525520592025036360841868690024132614769747568047522254897586790787887465799030284559642322271598098805950062260631512280502633084477435710945430237130065027974850775455392180068062515746139639333768980764969484096364743605993178766510225153525552584332719847919208184068254824365018149576061689330495822770689616405269995923725048930740961109449437034595780519447070730182024622305668300654608082231586325335469746623395384981806544845081031503182952726780723797088132425755940645193449604510515943967377654559718521050439834268643231797937070033664636722128889352035638141730498976855644999425881485823940524341618003418861340502306507605851250839943845223723537088954326623752128789940053545091166634229370171853694748029268687178516173708727459094249194979275597101484134956915655026322047130765350214910341829568805067859070406720937948689163188366230392275855322188506324731477333774263060880247412208683505997762396493403367117770486182276998103876268489007412899058488277267506326379584455191779869006113590037241190670304055631728081554063847002670210244926694012154172801137590656019724596240230267452994179919266836212470755228666600762526247917098799159688678899145633069739574202426043666772029413630486859326017777067920111825288100635350901283532085977976601204678104250045994398498835528757238779305636210546163767229121963978627198243555354764331082269147103839758571342329790314138752274960227237570385718925850322225512175595553941281613063137541325533153139876469712929007560182709047507337573716965402502356803877042358066301139345840953254989966964195607668658154319370316805346424735968152685385020472418840739540160996182768641139775723760627106085702615699397692795737835853853084824527362538308474149912438900206568253540791472521873387251190737644448359320129396483810661333938833461019777609329949312110218321494363486369797581426083965073489460913836527686212582164287236071283907976202636624103466265783908341361868462509808152171239583333787076267853109969088548092608524995004846675470346572530057410986316899166499430793242458469831746217458860890293232379994080644903084780435246475698461591769933545018475555068109331578145192348597257145081073099675725342093306562382739811827616105054624222565654433932235246252612345331231618533745997247358786249346958604685123700040732479324439388842077407417127523167186304031989726632474005375255996970962433631044921671722785603948586722358049411209252529291773434548026952985275978936703297821935764366057460886884322071590490471818431472121353788621323000134484849853864643874522973067733958993841221806683252459565200026652048693239134607397435050074453791992382772565611478344591842263325299283748923923679539137511659428679873415972144638714760005908134663125334616541610831774225504284086639385418988458404410893333511351129145853014999550168913733717886623939109793780855087944582769381432671134192975126537031202091832710659512167997853461451684387510473257791151926363720760508633035203708691446477748894950052833976981732916967035588533601465921772997048948572603745323412191461924408566510471052447497934953278073766842996398433261046175673276707345266824920864719806759736556225974615907035633361512532153636959556878641546624788430446670044038286380688857075744163618662791629899023745436313711206610489082623410660330336233856868666116300537491456337499762872449615815556753220357141007279370259097284138774025299754230998707124594372365432289618794028349992019458464335701349573272149260813486477113829465031968701325890867870573856197182390927750434453727194087767760177867109453701273234665331418632004546278795684524113468933665467705983052318735954198499750389935984348903818132016311217098023988709865909858599342031837439794605045957794874519315889529890834760468602901446862884920664984685809059534992806889225192439562703542356814538713411290941182264699796245595377854056529866177241223950226725777051286617302578751637333966564563447397376050448046994970270494057000083789003225967123030358474444841906526616903196849228692735272439829170511019458307668664762271217744056879317154105264470072212799909482438431686136744452083803784467820350540754315577939566103587321600686591711916334089721622340882256287048713061699672856103508537450240956677338593888384733400709492377613280032550536941441072711012735510596392244529963966819634950855739750669006822549158427339006254325738562879572622560663429185524052518909613342131215936553585639063541774492062621738369023295988469870931437728721667192408292496158489557035871610346869209250285852765101270528024869122618760198174399970716666426463228454907685801817382251754840672249474268053581766084541478596533399014909909018175273311855858187404000876474969600265046035595826738166496017825370740255890289466235031787856043160167578190845870891036889622259101597186599049052455131815206813641993930424034177296563766499612151490139401259912748666854566750228000129192975265154147271152680278205471978380538392755249709560134833704352356387644509878524040798355971974099564560003412531368487964570072473869191005046467538508194764986190764326889416056233997354347838622820933613065867743678354109930664836100375373977994067289606213599155836146348905142362937899458407106769263142116101275833106467236300707802353816694202064612414262253872604554588595079274980574523092713326601980679221020832444089056512368076958935979943023919180815436295238259913603659667046590389207799726416217311779435662112790259940695223272266087095655431075943106670088975471155165411434697026243855508740671512693981825064076864649101239897960480907485528979517730163921021629842212299362894846188963022578858865629756609096190969286602522139920175537644719640246431072502598480701286985102937429854032039335204445992601031356431150654578622637359993720813425465170095160124880928682030520873065415434085748673564168074090401292838707545797397192492520048007678547338912252161770595188610500068130608809961802746530851131603434179365718972457106581540689540859720329849707930601029909741423092392105194237118324052296530473492998756611853839450250107109606252499041288423481740206772660589106083875252661028001125865288179354853080571768388017011155847220824140197616980789370382822632969692142001327567586693028016414052978983288234781073150844983534889701735595443200913540803463290449584694301365218452847039258457648463637697779208952082842459675974316550014123604859413653098582302518198172283563534892985720316791849589859390595032835765089438370872539346887142809863957220976298697384464248297970073895472367404459313692365487943995536703392713873109459396731695778775302158485092620800264344994756225613944351386328539315419085811993801305450223283745914829584590436839974092773808379695847080535967026319039071512008981958896063560546156365541156214615900747765368389668443917451405077188718849255498559613507296724092976617566259470161925138454933971402009446636396309803245707340022483014005959482997716961856488137474736437488210765021696849745139273079530716678409126491106348361337609409360123509618703144976719421250669395394279212936380004262019773138247410850150610637985335832325837419006621487489939198355581082840165641670477527995137034844739254873634568075262050918951408700747828783999456796012128926584416291160201624587924356240410036079297825060003103432792641560707192797360548473257355831708907858892500569408135911291802749557494342985885300278379958988620986024513261241679347429940534853568943907282439550265343799313435397241924757697269036198349403688252119915848976901086250893456350610742141968110886760714009526660298916056937975607074654266377243114076950462545489998766457379962176927050942066350234171557406998469033316162127313448214351850064229165995122625751057121104392342129974643185633682935628313944859755800869205659627558745623113003309197104250571001885058765099739381509835293453240778833109834314090488959830075424802177201600617031184384798190925561363203731362570275348238880347627879594695717331758618710250310252230112140302139330939145882758335827427235152811002154621958412331673936002078484776820578013177448799160536033206048706503506041478336503109290155667016348111826963500284682477218235528980446410738220448878604959920436647663062365880379140823809112654309678763732171135940978428937311181837367540975027240246939222142061157062689964058396781567028688887358141317277816580486794309306909035478358272333273222369508137837195217437003117466492564683688204410275250759641600465405430757887304079038194444654804267818992439982927405070826125038488609238274953065325166887936485375496621894220710292213147954752790683408755953419690332597919057794342928351548942370219829339237335849140382263921461989519152056468073468858583947071631069301054694188526112607153032095019421863895657799441303284406006504995239756283540361148993785176939816204544049388195523656932564234847633589665984701447693763246871972902233444182246230802822365580959105230266002500979999914373770905637873384070277393627695242538992797902291325847310021862709299756763355205202348357890670299787499662651050818534348766466447231090177795587520604235485272002361272337277258238638634781502864175331640041494202627756369884448190743685493843326693811021211257558167807751683245363851614661402976784354607845959681251893281709898603409520806033329737469978786317662596923940869297186883583429447558333594800571536306149271248089453555457422329582100349109845756542254850083296410515818716382026502403555239114034264159894173254880159519125362472449017795696520961031720739508942845825993582014313613723804719895837251535529905497615672559249602862780322785364377993206716985427622276991397297014251012501876176429152000942562734116313498667626473754496971081866229186705534728954105043584351818674821187356010271477521517236210830473919354758903426559154146390016147287599053413352516918431628597465817609604931258419443388893653365155838296552247252797905666246466564571001567607214788011795657129278636531227674718932210473505630294475351273465598028780354847366326820367722285515473079432810615988391877722707889435665948135748593739202123154686480028587420910472878414213083189177869840012149316419648084380998531943412603219192867879490227350918910140343281742705099361118061488417344926309873792710983643106679490309267794715828165694073312124272499238312977516341781058232600733830241145566989536977104697322582934116196652379073988330825596318615156795680136335027089251520017218354629802868000036616949459449277454527366320133787510273739590030708882603628376507030308786727351060979430214868015417274063032836172345626363330306285432723628740519678800930531872473369761293931723538429642763341414139945394688994586914890415634690451851575375226066119809586832306602526314781345527940090027671690600952984743573404172798307673957834407997846080277663343296180811503858946452463995186593191474131935292246820420521673967310289019602300524990468401239393224566869267644034245137903863082984295239708607358035332298708457436477635604409725783169482285801200275161576723253903993063502615284511021189224076222825292614395457270077775030901230009397320023999919360240387913409391024801612146846525542401989414033726872755939917706492131980958878810289453221645826250544554431172930305517511380198715146011215686508096151472920196390674292001049391488185097629749847091033911538621889778318189135359257935243047789908109547325484016395241472019666212315792077056037247400238192224228151100074571006035711042623566031441951492297225477055592669013731489019317045811641945238576222001135304757699074241597038401659347691695914480857537094406266343714964760626945611245503031916787132834573422249846857632198852870218889771686575492690922874896880736245979459118478598818931510866669553591115060114353240348659183220688180760407473199135612569594045763521955979367261876567622275489211468666079188890897754843554994653019095435748402585788058971519066461263886598650101740866858955098676787607023803228559895621208151120778885570704083614132717290662547514530517051631121110245235622361989625545766840257766680337757451525024587907009557727833062132275613585088065581553942519924895826704629178330114410674718695548865600674977094668980982228290688401628453555355541186140936900456603507719641132729538668680504488846238023262941220438413037895563756871986083499342196370813753171374586352983779630452695688559293994564755786104887600728087442784795859088022122982604305420142164005447873073146370363710018218449482981757694531564652417900717428560022566334403088069610714507913155934291454665127032104437452087045967507266951691745640004097007620458978511908081496911761807471220211488826001815256429696457592263701124909208240620772468508881344740778839000205218612951014774959822743573165134290049411696338347239968503258217972024803126334683344834642004658775426313738422757252728412325884548497578096899568434924131267655541774724702954426331893876609427482931959681894182202149384706446518259526392150383642946685510263374535313440819697137680834021069555217027183888858891620496578359368309231046276759813942044897447773645721501969552005576232636804019181516935769161894117699169827104426251145208003631273058739475876354618622716583757373917619802572471174482427882389442579611831465801436553869474194830783986143997422045459375035097960445149652402201515407674778469696292783440121775381995341522404770940139301893879151390979554541313899425547243897890475985106335146344780289710946125321055404552215095146603135436416227031553319263571239191121234839170339595667559029756406819347077927397658344681558740463680831695630943515125111139185814631139721072408676990860305659284877619364156982810261055637311668102723087273573768380080896499202299863457536979484924729107049332196616950698882142585689419455419927316262299115642703168479734190524182572628020891729828463236177399969864498883474432465667669347450212571702236583447602221061724464719981597856248635586305683973143540885452731854211665245285409120293960330555277592932587957039425853892288114012594865032152820864503962054515837345884850110351380347805106712719301891801150731729938423848834035911466178248457059179927019648597105547567391470426989275923524130847572946913092087417989866972268339248732337130413823150257986961055882198543945431894289053909358938862536505110723617987137715438153417995676248493967100506928095396423649964767219411604866524019908187158693573017461043286900577836652261579590499045608816394738838045395196036157401277981361466312383801165015026419645772126245441678766359402208046012477634152302680045643254041051096988312757969682095156657049849312454688386049568977262176683791214622994357321853054989927570544840796057259960733968059401008695318617478306518815280694668918352925611636652333676933896955394884583577715031115091105617750449189713003052406494746610393323850988916749933988715785803509438962849201216448290291266550659930669143327015754351642887582621016758899513199815331939296988231402740500214875613879843420245035508078620369346061977573431863008251095498888667561361931696149269249690498359171158257371311595179301895646604159097926662983529545160161871986321704893048214957479080629536654907285230647139198916363790287934563409355604486530707168869533440572100735659902513303368529028190452041170770361521326569972376804217899564781993850302871222627953124348859824859489414378566641142990145297972655209121218446809222625931833673413478026678481543381972314470440505084183372783347045315135996347724232424736787966182989484070231513778977371679417175030954184355062225976058869914790401933417502438798017435050081313555934671095875194119237291350297046613924223320743768594573605533597403916427655954067850219954624250622964747932823679768580423195808449816451082837310930005662283784943452818675871426820939941488015798410121102907782068678558200671600500658976634105477607085169335998482239324849024489264392566357048702007538383172104861128226685957152821900516348437314832224989200074654831934289608769132132538522055337170735389875929684500262981608916807953702561985387365130970260238462911145383159589570728701093578098701451552650729064625924003712916884422416079156688897622900705812448551546769714616442519400033166306350170867391281251048223620745095094872801641902087516551037390700261762146940455369400924551888353194805525790440762414262608251992020465718496533187249167751111090849634889767331450879687775764559427051861093439387308461026377919683046168957547109066144945657527641670276041960638786871673912442508306823808547979821426275627544165613689633629540507121230616175895715345274089913150845116683345239772482793320218519223454138557420519394301234078310042796514486444943746309493495714229819165624741292724295787067564877633541146197926793292958261085178079365374139836549059483702665880470194675329912532932637533833635931622862625382377953873022579144421845641883522756914083967056860882773956219742214046032773215805605779957710537518065276281157131829633595270847491567611505194082671863211071251184367301693188279986264635636318628047891516995986501366494408251513549559780467292569540523945859140477302672670134751545694350423875489909553739392796501920049108810153719210568771092048462892459931143683838363859084830917571437373886228015386076286811515766705904098704746765884387914592227471006547860331498546999707067222097141303873013658606117942083865551863430011719556823532088199713234855499706872525614554944737684318939212643035098611540158137342913928983125243688594087430949038125852564676248708143821815661638929817348623240169951176856823918562226340733313845313541545967937643897887649263067986525808858641994049605443942960336168234753507341830592210000643265672715012671454052098597785268739696380481555596917947554222022053878957317702691949333651147039781787769351680474723732965543675584911326608272980389343855686529368978920878567819820923967929653955787441194665203325970343465662862708054333759481061476804762959766286678468501360398534828667737378043508762837081089894686324880973890698415628233073094686107194567827894566538267171455829078544873004464382059421572625360327142411893483668769808711919805306143412595031824293787497392749458883536119076197099888846229197078025879852396752604484383311602930399814498158934047836310147800667087705988734155245483031365916893877360760826329456654134038885667128610602442145218478548367412186481615989073125289846330096665015105290918644466255574894598820847796712380944183213438270629585136200794447909985693318332020505199245092679330917809864969543395602737569941126470345267655042730304062411707809658907953274178257457909163156828693031530371044077250217042624066609796176605820600575950886751532025771248507525322160996758947444967286118042968259799891189790656711479109397474783041624127879395001894083324911680377296050951042626441747301674103791374717225306407655351946560592624928965539609089826327241679981605757183268234062054768798468977489419157354035865141781767458774238949158431725361423389688588556370997993459953407202892763198999119197763271649679726437647333717733953886148886122400125462694720886039459915355083270671778612642243263095348111717865457532474162262028483844284802766517675367950516259603570980452408843724407045058813728566279771719660492923573785116956401233824931630114092844921112290507305887307590775672755247634713640206737063166839575518838796107075696505005214866212495469218377471030880990979603983205568342289184118782338636248993528527465159399880256376173196630124382941262167459142700272599561835555681462240723049956058378105753478889952423175670716631742067687703385774116468767998721014710143166415348313282687371018620399153272441371907709399535667972736790197197586425556786195458112943580941333698110518517596885125097191506063989267611625814314184737318078329203829303808801592168208828768758319056982650306950852689933215643076813607093770425158125017559471013390132516235539257865463037816402557564010053985419839488034838541941301193819268864511895609088289989824717997353175651881171644827538369055286114928674181765145907349894151649712798843704884523935756745099447416701002478223305054955271171787087298768620480513650768491923182606886002572802379855385998994848001781342090487500790971800707798070587754826734017143521302171989054411520136391718480388838208416480497020362075565353729205816973409658036619867468095394903696040987654206528492163706716381270777417985959436432044152638144570398400121862604154139246090863344340472368691509673046307701235383124465413543537657694621843600414711120733808981736216742054194042608442769059994944596901549466037521645046597526377008119309260500260715452502738840009902232161079724761199233342267093274542774727427063034369530414895643006432645951058300995309831621941252882157143258191404351417947902913843475417176457015529105176305243626138794159187712034997611415181921361173027880454100725904608636655255390139481032693808682626192540029842091262138236418996834025324150283611989113154584210398352270407062077069931625427628140883047218140133624274003370057404393729738711560851597196251039226122820502484948675676880121068497974354246730811156298680267412201839336594229773541939403644147597023097836097648424697387539005986893229368325357078075912518642317434076531098490080899890659467273657482995987197254080129412857209228681982621899066702350089951593566385927408575677113511654339584746039735426542143892796747663981053025691760189954604611689156216270544693875590118973787653433602318416080577207160687202060884554615511985008695540866789826294964077652838424010996282583901772026127074375590678784420506990584648263099432071568862928912378063335017361398794053733714787350745818741873352821213370140947640506030840520732373921330829329729826044604029796035072224977148306295165459850169907463673590580105684841005094127897903506146626221656413605328245399756338767359124852380542251560344669556503623453981774455392159835951992875569446127373985730146037222610827331590027899945898925298045330941077904135183222258292802087148137521119396881707620746013103778412819789251865855563698251542130366898658588743228736063561022465408527262603831007927304438341807789245872036864219656902777938585251587567809764583302248070694990079533530734729977586646830018765627338221156311127081661120082551604496757839956752519239138097745262577216850995161933281115160650397024774403289984585049285721545275814529449703937590180580457525491452164792323420313281251411955560917529450570320983726817607432411049070267868587820239578590212117111571065788064359835151189043321341943533154086309005163335197193020822753542578415943964814165459742113884963506588630719388079712472291660132436130126867330746450130610676206526446535196846356716886165366511621303935905370723320431304542151669996105144857864855395338522265951151343737733517423735763281167592665369020893231550271166642676239896019964145275193047796477099409417300178461765953370368992742471880701030626273566210110510958872196983138208257377935023796689290483956757478882683855604397695383369729899819343178685826442006056226228813696212661533071080388743398378403736802957160284825566266152154789865467063748616550678214912979135422604078958631826547754788409628206601370548740214560609852858909915328178775108859727244822101557945241280375516671073357071179533699702865346504612218819742465523866105012760632867659072665478126207920239868269496188160692083395876727774140205434583769956551975552732238335562254530951784236896897572867535459428656987192613762538424672233139496148298255475581092821873190513648854800454309703380182741540384932658316376253589465676802694567258146504105915900525656975742991069408969761169226607349535996961249360843207282124742191753235492359327841687400704074626405993845792723572930740218454407604376457473401724496046199112029148729737250133546221665478609614596184568008862865473452678912960177384600850457239682921087788333826669791298332195712140410821782599386400257935705507920532327951308430819085403187862413346190799769248201438882763117385121160628555511721195141650584961163755263492192896743274439718397170410897968335036989271074757637966376970441722118695187597333761660409852602871283408745537401211228813875636761805662989246041877381568199041393063640791054558828393585822148317711947886100289258282136433191790252742082774295626243568215986140665657355085581954194838352913543437453958837533162154429695730373377742709562015031175673325570143184202062571335635953156195415080782312566330232869813538346183318905609939294392274309363167024860305741541794254246259982982548611037610533327916208276895413922229398432265210389583393996511323393041741193874920975168159333275926247492470570480142555555945204658498813784257211078169649555124882384143293866162319813426093215917547691557036629516046232183074556522085347059530186529455228890311142460531251421120332789575809027901268434259729171978411862663679967372084188804109226680652524666617380377023356249529115826721627125991594241677389423747823935813650187385617287605833649630318611750531584709040962959087976201884878704441722773111698720732559072960541774048297869684734408293690392826302048979576102324649080835289298226652362422846161360490306759906345070522638491646102200478070521792179105658110098344413835321487957295561696896491515674441103649262366338094059619133387597330903177105653977072102521206158465460532220902356754896409376323251183791270329270410670798472569025434525703593566399904802541183074201928298009926895386633150018158016799017391672330490779659412414937200248313510693580393269728426167172579079132257752304389795340610843772507038870356942726175686644379495111039158773529168294465811585432501412832146091650226121693386545892050902970443514480359194017938869576644621559130206319701709259980416822609307275128886174219736444297230445560135347154283724215839333710702605077265865470861520361240106285374210471772192983044872628620191727047980029369400476575750594716051250425893391193517162371884623656332898875696221171182235027820560531828780478297590008915552335376323323349546414072253254704319123728904925119638603182987160132623708252913985946100874841691352808873422833044002124502822807134378573976660141191633187300562717746035297752107459666553010343423706300246843188794476967302219308323206096645975369149243155129575963888388316629243535925815819986806576741903809882313083546970036969770200049242518350001842967047377267799248552366867748823204083750493428975699356085602347128557757227518445656685409491171303055548714945033344281448570834191678232367506853963654374437446234384859380487235464112887730031666601648375708173778117215435842678257983900868140942029110171143055831547185143752719664667162391738201543836591014028167128534472955159840220431953409831297590752410553359491399161372942420929599289225456840931402244718141095737258915032415347279401238551282733286523166001816549297830396148769125081612740913828933848721634126509656087683417020439415186015043129831231541008698929223719543539095359377942321601275387904153920783018232104557615199753766715905760827243567120182901867563358939823939469545236275076974293033119903786051575592448111094890974656782516419053985070933600338710017186265431668990372724365851285432001751862508258454089028420559675808779858286950359505652772724311969008916166621952101884021183875117100637683596315017456076469721233687688101856895867707159442203388054620495969896569115804828648816122871257447282035985460755291940291326079516340694902790824009254248674172293501008675877042966234130131858404211952333457476539476837582514704381262741154073189365320845123765531865552097168048447606944319501174696787357677598143235936541892219961314630621928078041834389253316324815747138630291170697382885593995657176301737801192796935869344164839507174077605019396097567211698739266552109324498242473991774040722600990471139933852482635375887188601753468414306616806473862634139860642820562479085048106664590542281071281898376780366094730718499746914352437167701745070830158591549476661923715053834907335001240938605016525928134421105620918272968938743177913538259948332055231878708131897703837662653534629172457318144738695102183080997267705374483670090427662632695444153722029728330253852672126783970478031238954631702467916792907195158368869283794309138081617116493500373427685436169215467276337263224700109039245926815247268312971874831635702680270749097460478035558932076595266542908051361416923981910636776287368476021182410585630291204520195254928515176091201868219952294595102392170149640080217115118747086211887653209344141524000003391765660575718682263797111622927114397499903110675900955003457218035668943117571471793855437375128864722741974487628276481210444288770849323885474379893187821119768960437086216461008071849361545199607381454718210366367893657510551403276503199917647630361076787047371584236113887231092647931926642066786764538839286299460302136621312712265112574171453436468233118384041129670524317850046109372092674079881798097686946368537094749264210153363032423845770281784566778628812784712356210435668304136961809007460084920691350120183393692880014813908752703841049018635085002406983393926059313484763287998077023252500464434785221914562589897779141199308928983706242037381265642169180359515620067691550870665575836475851036218549603813610263523836469174459592906843946615722003552352027671633173863989650205880083585020079247648735053814829292713420357027392297220943087053555883929817180575382869471394309120413982993374165773516031249848945279989224961813055495746325580719970415060584519254802276864669973326254668345680645534339311739239540654919479228454653907949264632674141841544913409997633665306068366987928646196174334513596459864375521521258072901528675446624258329113735999890309804841270067350282217752632362488107504239028403176857692283510387305773287613288621514381941022877508502225315970375648059012677101447223070251228635887903519208188859576818966552322438167026376731655902900529759014921017492579456042413876105115091756305086144096260119036241739941396444526081337268913839114087913250685468548314242639723355374702622842548519869513417889814865722232949809155707774024318759013732143473122179850829333722912003086211337429628879341364613403223643235325695205259218239396018281327455224096171529431950915292154259127526328271609438603515911750533664092519098555005316242349192679087364537753900054061103323407545350188283241303577298319635089100363324374363923217070201945890316484497314010500993377922948620579097419054457302842712014279478692391069121339153647429211146855278312225542877944929071279242682628008128105691096431732365407943653101078319407992034679356146248640613458839663472313407456886007919988244563884375303463153153891061123859428137832353127342392612964480969910498159818089666408700529554852498867734354268385547118428225611958891835569313992510766888545267665948742454329971145934735281166749629957161853910787141023395545986639112996837311720702698689965272062704482792862844240534661953645784737954343482109614957858832959051557285718708860353560164050256006995074342933933408634102233928297648309150208005206211125186382143331476201326232906428403237280276785314235301759771467557505877859239280244640799629954137862647804006572172393676353188360728764695458333918719465795391420270482784495449474924079693508344082357480464900926614101712359742086682619291259129009841865076717724012289146474664900731677621886011943601622998368120308558623364043202032711032083685959013910004848220771505264608084964190297532078399185576684209502340949121867292347870682493500964976417019189914196979753466149098550019587801153363823470529555880284428709328463049374358480101201621259425048314498173363975495231513460015646883091277779732649359641624636487370125722745486841730848810886906671129749313140857908634429267010859181508961545483013662055029539631657205602572176762796207251618432028929855183822590763115384150975546794358738112901895221652118005777801862372031287293890557851454885642893675976907029352254118349330721139210332611379932346286026041379617090912658828004215033989010476005208627459337360371040721569573513020646468362685831713294573128487380502113719441086243171432366950026105138919273219643539445270781967011580764506868501900284540855484201421805350987992393703080348721274593143836391169684250231027621914128537098091005453517425196159334182776439841025668026104344641748438541398684499853343907554419452243395594567209780245930063795386229184049221931229290216486173602591391015273249616476248345179796440205532540124992599965390271807040933896607057484579935700114864822498651910352505466609866907423285863191121932744927222604441346005768499953464610633244716437727386040874543186159334724150648630952035063460019712170634496691923475998477259198983902277545264116427279308929548599664190333351667326299057275856220863159035953798423728941685272614286029450798984527271677462441506070133186225954551324188705305150827552947351224002570734523337130448773478564632995033723001413395618828125928639415575844724137400830550238124384345299106912519066306132986060865271549745107894932019438708290664729421676513500488604073718129328508818375055372170314868521036820570375477745859005843143481848335325773509236113069386250659947722889830902625600312872649725715720164878113726092072265858256729719580288860007329328355713586295555568809432942157071672384791525696567925457198613805663300409340553742120234240054821065490068716247483057172976522737777802874736183686685584818369089099594664388833795951882878299693690666037949416468575539492612984113030902737542956027171249638666318162067376676431998894991152655305580291026869091564485516723034590995374440592178798828907645761132307654646446834307611822041250232020106556933629147244867510830467240578567659893289272270215874071154622764573930240556357640883251472637511938774042716015873224774232309958927177521018156469005997318509394060763478286406960411624255857453279296423182677824614670598044274964638425247969932844028687678723967687018564045555897139263742988219214171657186874466788777509368400092292417014123550755299840693707189060238511978863083747219204689808156805534097418223102216653154168648471156856812835279950568877541334829630076152177687589712445881990297786426551687093508459893906584149272007103043555741284624023636237909706072336915883817871137490331283465929257630102996294347671274018678729413039470967926885702167856456461668153015755794455801777679623025536615122524622530888080328322751377459382739035212121471163244803170160921757516820761041174412108272190610305321850619649999020886104456100175127768836441431287813450068384075962357679137994532871761333527281736067259257403215830887118638321441147927105767199432486352609148745478647870094706020079370135766443091807137363753430451490239898889104586781347222981067007412419067404465398102154825262837906388585823052033926504827441171911913270705703853279487891969147761971263962549723887977963423800431346767797188472785818114994245474230714438054809884635919272895531405776504636436242509369501704762170659925093542562742127382361709045978295125607973277185284439504689064050456921995516323108973036571468046935565040513751430468228559317645551809465355420364635626683920472967188189343096154329341428443733599999999266696140347676087042057915249838854683247022289562926719891212801541490400564393331994546778294475025273700883373790615299228643212819103205435125986073867703665477671904375668277892566381822128835241438554978507907227435644603571719787969202494676521146888301438093695857152836757199273336690625462968003163048860995366084826387767628522576485328386700306305861978629065824681421058742588185620550530867468860063386013110607750639413944547541622751749216237905253182972043021387482478756047566285305065187436006579870790750277330018591385656012640825739507711943368628316107711379035424884483291810219703292505669809695660004392590452259692004531874669862796040555668447754151311605517288241117083861298271544296705430971108167512579153131821692523707875540721734934867911328850756870166432131765328818594013014490299763803166034530339931819992676903629799649936885424789836057157255631817830462816508424283115512925723514835024619300429724449234057802203934284375263323062104814184619668436249558253411463943921146227841750541777799375767630698066448310420345965060211250627396173677294207098930105678144566202211772539260494655039013542388791380093231114364374482075973303292857343044565097662445583025103663830241763276712253166515442483989884362305310068534256526921476532884327359050332884554068423748461811705128773705371417141031276351383725206411324663494115006185217494197765324904895606169916675316518930320373299708069780130391201627079227644220100306577697174011447823577618050876552744415195080347027904566886708034648913330597527833081738628017225953966264689290337970642127480695527362520229410090159184693239531664244742271973011750712709817357647683882724003988624685765828133006295275083793946074176475201971903526279310902679024753808830632887016111118430195306306657861175426782521457591125100007955870925705357558625532279564434143600076886293400149725791653929375945346626020415119881850366885657253148068114176616764227682649993499460441567012786899523716541692606791229572817216824877555322411965677023122079050971913573354307918704998645549148024206584206936051450855041741206046673817280015090794628399075959483214138556524558304648998757432913880768431126319416329930212123723107305988226284749784447358268424222474657208496108972667919474306731084762517832910622327253270674062790884461406958428854328801813585511797912664071805964499672800922009571722947909657149098955608476398948024374383854351102758607910810708456226219369055295996331278709917860854750359743345095143779829953694363998811674572651860357955296500510120672625793806239933682496011817043981858217665329431003834504431694629098330638563612130209954751491604832976144463314147925166473543653831735997887021620352217315251454574696674075860609274716803035766631429149816436064008256366862749879323608453222971046820904650700635519654289073493238121579783931303047177242316901099173772803461204262522339805307453101465243196223160378803993430883690084716011669860061107296001948649535704274758835447533516427975661765792214282567648107720939975941185841973191282494936741094394335587653659831807545076000353234441626901947398120794734227800578535544584905187551130153154218348045899052492313604252195507656788397011773536963450259054513682767167793173801268668007538174050195835949389260658031158449985751383467658347419854275584352491314681704031064863845814973985178762855848270341975679766657588956404600907614252133652534818996268725735186122114436792000785664506610072910767193004915953463224601534803312542127317402500408588103835060761536146733356729214607526618022871014365867219397898983154247554955383262050192099110960376539925313299474850669379096513476212358772398766768829117975261379378170607030253439915663924240163104203461812908184010285300513378452764847507721470736965240190254723147987521378351423728709796729038483812022076043261291307309999791013476555862749667060173568823478642345109155768674804184935734223397227976765693472672081969923145352865600084107068528384039271255362864923948604194669284787495956024878396332254157263712907733113199580752549170763787321035254325327855323863994617436893055642300443096738220183123895307131998664632495810193382625002250280782584165792514409079574543697640432056304100887099772976049717235161777232457315670959301616451531221457515614575433076275433384339416226752783570672722943531003499249764407788913446158909766069713256825953984895289505148803212104651749725094137074385294824556041676049200246861502128551358159752651849222367914178578218976938114099603821946162116939045298157912785705118335458472544409121880173874769217707107199278241699128819635655862185854711909868637343071466064129974968104785392653484299218820954122842309236812763308999760358667799361627394257297003701595833005745220640751151711119055331375134470438988790959036942271502106168406386010088448347983212979051893817289684847728795654363375741134457776217666773214647577329386797382473592779294045919633556911450866395999379024264036120683432428416042732186127340630457968619343056148753781365967592275498855636797643956423234734006200799508804339192334266675423427202562461933086838732600886905566125402827561019802538059455396501146734402556668119654507437660007899768772662821437475714906087660322134938438899105289299681577912492098361127318519300487864806548219727048312569021561844501119616899970893707859503942866625109410942230454317870829225757622566539096986118257429388605512593687245114856904098928807898051090199328041520935472338926198859727606155927698373842454715074639674602154499703840544432299107286563398791656075109855648735990238282044935405685645958180400446208446159990484337359331234256619388207343223029742304501835414260705402105140251886470414627870517541554071866409732558236566832802956405211944098673620137730220745306021552802586303222234933754412169242113940609353786292289155541018754026169413244871291163332159749417503556652156501755159267542336334183264645616467480734491418170164906573752053902549826746305617851172017218364315371598179806639646957950664188702652796658076861881493721415252831243297715781468594084046976801280031203391876427433014669528634068777665222185942104124667396763839922852999381201491560709630484180121520064699110077218859949530326604081432822666721984716814822554055240388423666237848594938292918737755839706396356227413510431323706404899388297683636326138356323185400205924564650547122670892343043766955366221399396581375050092870929994595910979513516101715522015452999340745134622646768037309247719822841652459930830309974500371316844885429239351527107798125025492381216604636881830118951676160913662203189541589790369669442971043625083495410078537647810811848480687356652760970237358572943830081144724466165673105631723306648181295953893181965959597956987926159235156875543659091815620000742408723559456775908826050875571439372428848841782546370938146846435680258602110926592912852190694836675835517880023775804755195233968143911442715503131511046739646542126554238193037852595851303924117515045906723270057071197239831093337609042658678374912210306911194170164644684790247505139239144167588010779024573564106180825746406979757128823680127903120620706555118406637221865696688107845363716365730806786474166897079480535257500561656693291418511289944222822932379892272924764359085296785382268936052485355596377282638135059729585692750224288833349533148573817158462614268630006393185893159367477872367524979148835133025882128867823511503439905390140527517134159074110791026691428681272730115426842390527423214132305877045657200077724368171628354770556655226872131082472077475340401545799499512037034936205725519959947463816579637714256337724675302560109189137000065478537464411598301219079187552625386146859089186970351897076139677200362948757899536117979908988601803386283862986901868110004543531947052897935602977712674325233811469405160475330980764542981308247975244871043524357486517059114370399983162793685760987738978401038833938207227824092734132618137071781137381080549613351107847290088626294448192403639032211429131526970349236551849002081707253230484522932449718419963229727910760853487189833461410741068148062045251925429950603396588974185336789198690261445886064622543244453758535776295716586618463355574862251917623651308569793930263988274763889090632773480049492803938855369767205721541856669994733783626812136426516140024031376565731858812717716916647779823385696666415197615121866037623724983057651738980052557347491950299816013835931523714589877926419541929825723175663428065894910621437879834601534241447857061366515045333139223845659730538038608934251551378485207622645077727589818427856141076840440541052117113563166633792750453542237879619623751091528871310927485338681666197112198696268816171180207038457031806534540675538495946293657493287186379973306929985486841063104404774622696254427095284693575026041060439501642079102009380833873129781508921125743653569057606168646223542182400438445523996442386870886913064713758118815867749740253148400411109722443283576356715009247101966846047239087222633732243246321155348431941066230630856644005688263940874313844656041460471598535814300150634209457278592002633308591272207374502691223672422498166569594727913523611104979657916683925819293130024000455438091338117696794275806144427880824214779769800846526104971590860002584084395122168679579485577274541102546477581610208154909378637884248481854212053497731806056585094545496883400644883037315100312965576629836922752214845235464993510272662206324815166125097241746604042722426884191864948052679410858159419600310820291400496730364303348098854316634360361548353522852528130725022221824246690877769837955644024431750772409997124829266640961515418522558985175053349728003219545648551945081673951294836728018132797262130411981926565480282525928202428216797419851061504440804476255847320609676316026113605704500435368818299064038297510331800440932104312403511416169348551513539258055156050506739796508550684494668203683672275009607994927710681685443994436208825116431709664488467654469667646643004113728964622271045206199899404493491309330858858828612476752707128558664150138190622070826365744711100765584118072678774361679374502226375481701969179178892415512306166639272816452751854178273266098173403544841534845770813701824627666354285659454844237476385540009345556192324701899752155185182991295103933972071034805934994809144976602265393744417372904402519715386472115981779209968231484947137127870785699030882206076086546723987320534089178450185755847496427624325549318534117392678586863038976698769913154260365822255743190517335106865022748647042500847284521677831719075193868082917073488902139145844138639276955276000966181118923503381283749602046155012672297372028269267670397966317948966768777115650150235406897380126847199799617702403574732204031141619696389446778077189739589109175272996746171532337833624402283343602372544768766997821328189267044876416020368753374927750847820473587106695390293319344572571650644202981842699669645173473913916388043432799451375039875120120424012317582177524405346569950385123880714179379502611016753565900320911810164334277123928365959366122552214762402556771591172840931801675913812978045249693817847782811203908445986435468105729639334588937460636252715370687089076987950306464246007210904975471136007326743073513988098849653089198987328794959826754873236951439184328267213406577178100336505350374139052635719183273069884956408546374715425598129511064440731591128583326748550355986226224905096440849970704141449336819074295355804682761308394071505904831995155738316332189886286068885887826832633275895129779428894080035055792351434869786077735272128176636666915582394574218987868149501367533381113992707740845327455423371829569580015948096807026877477790511399180952840560786158307859643214341429525344902734177309667682108064044165720277026311823677877599279988081920964983798461162744733444644665834799583785547839414881245967404039278815249467381451539108077980271075853293351775669363152508696812947249033624953014444107653632859198959095700900253116122157981673871886100361112568825372471126868466140952827356168699029788820622149953652318582059069281600436871559345018240363065754160456487224879428680397581400242719071537757787320218309400895343024761833645557462058150594118387876844025364479263289676428374471359452884112469164837448885753315130983848056782450897771942401002526015933888660720141483463061046777358683783795699128652552747069330561276420067808184915958563700845156437743502810321825755642454095707365155073423114194384179865085306133784893204106536127242729579867854845607474690009454024260048495823339916023021091350253695678761529894457585769929918541058984386570993216913625347114996947134718175717572047175798230465956395041878377846140207511657072663329211458186462044592190927411786894504129808208396497106166884312305072061688912315302396231455556224160456754009008030884228439438908420169018146404747789123911951689377779579352530563642788583744488971898229119195500997838394065055756173009739898535724355261820261080487416982420085947618653161794376744998010086885535515839963551378919254915842549366831755159642680147711307785447949304262279593081452579061690240606132285305242602297631776262686345627288938694322564186067853003030223832729789014270497616310668687299837291790434270647759277550535248719692617147020928102285985310924521616955146378706122148503414171341333305497082948237090839793560281432260115298112881638392043805337254752993137675810267747101215316710802544906509143822971437269673056555573593833095515783238254065871630668919881036687900951357009876174847839848126538474812896337504641315610260376167761128527678108725498622059619354720962465354596107860862872081490335990869566586075201958855768612778905889707221843892648183549221528944471816108238875179786788334242196569978041639787975383041024271228758179408106290260467997353987557680180851158904837659009162725034536574045245912274212793757480796365436463002783418617583958885737864095613748545452736658535403634044127292712471184081464635430272265814775994971211105594735023490067659309457921127695661948372909655884997922848405831075098293649835441470060724064190155167546551947695260015266626294070569705497628592151851787748521023524786554257718025245743913031196033928610298540270719770860953254414121227362041051914401008349040940647982982605471813979416276277262707115484545085664044094923566016253076618189100877562789010568789824123847654769992934213355321057909451851135703755786730491448095265482811696858214237112491114511130303065378926034952265102875519081840046534074997470472678122324077436720961377205812913102022222095151456583133290206950539575442627926750049826032918972748178125208852870234913123868639283967597189669071032386188166173901750543151264569479982160108095035258210083425011916764171701356406017277562208283275646736716521944220379303397919704582499918168981369860194736540074189003086240594933204700216140962166043274978335652574331614120015328203007002572502721511373597834215197803816396411768102076820002036349981013625566780142344282958635890097283540945332921251669689565617084483154479407832752149704903793482692004366538903649325120158097964353507344046370341941857746211702614453962852241675438115157937989950922471222795342048176848110782790064284669846773303620248900264680890002418175640214188178342954315960977951555541316523668789766889591287210893863960469760475229907713553485139250881170475570168838855426191243843401309965001011689519819301397294308532925375192565210743506217647030096123376474573852843463122847850619152932279179944405009677469478291353232856112452288226333027965648654253254457811684299974193388933773756792848654235270256681341009109583309121565381256492374237021498713096461955371049835108226789308539128796364046506448655696728270208393015164674577411689486501145399510933769946387212088328305913305184647719601099243552791181496181990413742520852525333029121591396036749762037225493630406741783795428900944219146313925976771780686809298993730491540144067193405900627748833404213317872181548014629129011612121392111862471812445678594256896531587021075497397114104464690234096999500390780280360252433468229802106882559506636770682738949847807576734690317082059727339787372953655527265965094462993358814311596774247436120392265476099464351271568794772742593280640880032242391643792724194325037282142922607999329362586131079195497751238304465859598263943693904588392682908857478837837624894555756557536073143206984694073536840030327194233618536034599215496984592687344917525294753054370359924557055582415100066019615609117226824720389207140473901674583640635167202764089041962192695201979116620280128105462219833010542374552589335931894955427024091611636939378003280381189862556190058369779400268497386956808539108572452037983029048343767388796565186448630743983047988199308328785386987869109182158458976727468089959326037715231916140297640849946777122639437807211272766717380763830643758047984018693950770221628556328019897276655412568014886746445261048927953242333481806823195425232207338947218909875775403918337078799049597534841808380832759285965425990275246591136966592503256097595004980104547739034820524072070513168428232842988613183552095757733813729846208498815212718037417378857078051633830524675943922545333330289961138427360278918723852910256993852153163867165970995004786421002666428290019005106341510021284944875748499999920353037079059564673301487765542232515224536935618549535349152290141386461782254374525686905267650890026604555017716708228554458277762713379708848433289265422983751778722504133669945498631575465198160496153194739920008531116081421622227396639880747804984964381359726777665668670814144810169328628689517560208874676372828182866675584324078102688116574004134292457159758610575755754192151931017628183045081041066144799365936112479751268373387269642806218768483547902796364333926872216893637194860780389703172156907949825480069057455839327897699358365851011980774979271546631310283571700427373220454159004587017714697975045952966672533281446580085586099475607803978461220097675748382200055232352996134402757700868736436817490049607768226983032035094571179279300722033848752993563452223743298687539639857654158140437287017263095014026138902914550814723010113270800670293714097603415380387562474019310626732429880183339634750381081967936726110762007517098009125775171134038094669832637734663515093215205157916912000004562334743042609267794007752574524699710902697880354937518285636308546763738585276418119020599604306130268920052593788837883980425368801112151684464232471853382966829498240140599995338014459494127060181950219777475483564440680345075777601421040644929012011715873374997440263380640710966828681181617582959629864390616072419960016037078227036155445718346328617102750528250348243766106475371866244767647029056759320348257606793054760652459516119711672936577628604416348540018415735279369855408320552564264126753343654522428473450939491448084981309246610199015301451869653744389372908966946832426707275408572464850426054970472786047513478067958972673423377824499335391968944471469005071215515771835503019872913020377044331825146440585746269467580799926334763042761856717702126204104215135561281411863382123491340752317436629471705969784346375333199278519800762001604551346977880671312134202514501071325160397765451836602462563166309217051972708618596133200098876895062419288149659298047040685220119230217784920397000515734978277369548395180263586328144479517400996998895016948487561818393885058219264151799756922528470681541749029322325755637972175997422581821983660766488950510124074762694396947127689875550193406024755514276154986878496613922681670197635541954106006774725998993895662609348460419720074617725278286972003105566978636263831173011703786375964267331771786400456945051875503742107177460852638856573841977001210098626424654776190764572043734910458341009985597648182255628897650786825107448782087723108999842404864686993370313163862798648863275591561325166011238964185382165587524751107013405885337393178139046907127604048307249543029372895309919075783762626572948552230823507729337047504873005914102948877878788967122582328487925971675519921640596797371646648060000709587715395588539167598007713316521661779135532497278890715658537357354998727569927849884046388430638665689059754850103065508607565938553945067486613558885571733223466227207131238772782444549764231312259198557668996312232711465217518952882768287840600508106138207664108971978958843519249809950752887623448167812559723333214217234670055144587167733220053094323736719674927301834490447325193450094342348090680999132206224793926125937434562393849002787647806339588248299996156935118386873231938842025311872110320260336929613240522219363186803492268990163176337752635975122217544104224137290628533541999512209668870251591897336647280305148524807021861139185654073619443767635185403691844409935274486521508608870860212061593082257748220045289740874772120179760614495385441581406309625140969433001769325164872315974805658264168540486364106265634430593744174253818925647493126178052573015904024063076603636873833523776533954708593267018788433961663015414920014652871777714611688435236771319649215936589006407374816922457992212253609477100211459769710503908547576739633863890902982862224495003952084730436531685577090249257436561028716073267509406323171565060198672919051049805030776280124291908272209649283815308735747706348315762844344232046240842942912756946173726965539000891180194192254649431452031529806247539395968661101583059616561059927394748096045119091411112054258604895498478103198593220461471490924221984859199704083915271905457056618347000892942297919684360128743910996821620361162258177816750351421163076028501059944056268643204750067012652416693810262300262383428072243370988827591808665193630548625943524871072063074261591802196284572402109857735448479129892626286344088162614125472700908467672126150825472979366158111443895270081326179486218696196386826804249497135135060469277354820943866913902555689784400903444644720083958618603887699675552941624215404427862331451412697219597583458460248355760002786939229585763006753253414622188522430731167271766457791012268056923616298192102326172250129306221840685790089752301528912135257203190208332827234237653779396014763336385782006202658268053640309677263173281049968812231115446434490777065385866155877888829664913414506760097308553756197891273332732653070028547304492993918301132125577174914975763039734746156321743429629454898407164425974600341493863588693071342259074046273270667213483191102675738073377360349167432879179788663548941635502811342872736453602200239880839418315975469461605063727387504371420550034451011166905900619928205009345688960241281731665688242698010196227591398644517823119696747013667758008527950214268067469117191982593177534088317656219620481464210055955302567280393027555414787137552651436608848762584055153495592887565114312145402176229604076033326867333646997375204870728211863877122124009269959716249027337610095443782754040188670431506263585667774204538862064903288985129397765896610877727059710783430206729009960225845519023837183278796537836010737228526329505973797891720715272301926921234368788574055205579687172133225516088966537905698786409623183219722374345112034269897722901382940815326974055884950569409481415615302232152192856724058451306092866455380516272810344474207508330081791240824857755348699300389684370466366257096914337445482444311492341657113585463969016446796891003890637221148839231418280998946441978897025928957635812815851185991659622024327863011177548180379830827256488848816545387683036667232267515566244069161387348404196115867589694522632662464130632139934838530174434843269121950896432408307707385019216787194247983239522072643518513077742252945758674081828379341264976565327192534704006708281496245593173254339479370377671024279581777101715460827149140762299538427189243510496691839617204497339661741227182098259534385105284863645493469324276607194301363268511759516472937218987129033981242683927603507381668925427946764863895865466089539549906468028287745005785760583148801130654451024527442967341641400891108319472149340177652465918438474144923612480523137114572021589326582723034363648583787085119793799434887088544718775352375674978470289013818374807722935955788594945055851465046003717542812499195799066985861265418587650117222966933153309973468902085697828924841118281020346684032131053214859837462680155608128063587031312281793481656159230025520457256344403140160205177082998650346596797038254133612398412690809754647866010217990756187504380056112543978625854836103069576791817971315585053874943035428764805839021717659279906866891484520555572594571395759634784663044124390045722669184613444587175312006729595550707805932741937164563112139027602343410564539847639877455749217999588613205821744176980900436300830516341955589976608327537707518054472851733322005341704927886962840260095450661373558279659003385459089208137528721956216729884557961522058509243275498144835812094339771207073516185453540654469641949050014058260659847690397977962514391095735217875218832457957693676884759037177137389916202646120768333080383410861917582334514283480434848553224220458503213048437343938335525973719879858312470391130564639399728489008175154751465092793172749307158996114347469672487343984798702329832783784301145724284593892957202426121891786839391990451064502573733502210963744137070894143740479159247555251900273163809772398046209566114852048231674488712479578054407218335246731124841829070951429097921981074537006723643135650198779462607437052724715779731337770563860715996795976965426744483979456561704745996461098754736117645037900068892305555144409337999869171624330916163393052595844953860388229792437822684404439519160404259691383616693317955965702546415039308094934414255860472929047491509294914513281965822487183312000066604788693397095594832487123907932637449243466747348422635070976875580676431798199886207307786494248089598135756354756227437377862851317807413401879048018704066582713800366507297778566389544016161586881898063332795568921689102650609485425937838194548304555619308295371159118433852956628817652367481447059212805046320870782521405604017031556697779606538781298403640680630558294519971769788124490874381822961036503751511101311007344983265085850803060548003606932801405263927065525000218993850016027651875361273202876887550612846193419875846890680521841528842517936410041686258715629990200108733751763707631532268669417227302327431233024965807155559239694690218619984791980892569387979898292564300127326986009269348613010863992529552581579600445003230126974095847135094693310345339069051704119387283271804054809534282072125346015542950309015004705047453455104181128645335893258936717113542777878634523701221324184160830270356506912714564747900344028578391531378932876876547852012800820815739278504955138667519935519675726494222245799862077648247149212853659103602045231671378035749177781939467169151618302542865977117756257898009609143614767487930091375674503190137124089550417633484637344163678506306269647848494277169862267711256292065688649714831309320082621283425853906579687711514016270485825921167607451240657024287751949689944043101865777304099960182420718009759255412062351926225248433059227633655719286236732075592566052444271500456452668502956637486328746301854763166695626356896105069049717141519864368195574689321423249297258230518011213301438146574090991991650319098186678412108334388343590568816584859547423696083555707998056308828647114155541187223118229204645291735805171759084749848887697162516354342925818996361180104159015532961303740692774674524258739948863962434544889970407367770014729352647731641707051088293472018875697159218910790638548995207366025261002559123323749578191395727179821701667100822236470347454114330267623257794040969019689191915267612285987949482659072202443683484055101162732247594404570269001128232154408646061840024158538858423745453154012152469868726613216086770325478756010063450897278162530578919409852623804356566493040589529244400612232981726091116181725434239491283400982662912410825886918685245249984326862312790174709877232657418927193855094504952784386338242206460233810403780024708468561471716934040878204535206633340917635858904071303865798108110842521925835672702274730333903808508720439048457881776081438944944008864392220328859173757620473696895202181101935103063012299913481050006419308345063489961688576645164989949636698657660908089262340232244106246821184600374128924963404498973145621269708438882495815400978103398228081143057653376757339985776103410827718355788704558525374991081913265479985711155162484208378970147804658652772822878959372017396550436728284790261564967082315233616052846482529243239474054704768038981155219281321117380089623452333584867807599739665655582001500358908157180763426003518185362213443901017444188329947341060640709141188302324101730314037894744752066763241819572690817395677454289852381232426328222279274798600333052709628305554612295421670572379233774079360332000648508469413461271450957064937843757727561719482393693610871491749614189329403352729136203142557223475357170221024481719549568487285518903852202812382601708047953420230411708720330316320982370403030654144875413462992709017424403680787295319036720604631461135045419406416387232969543844650029445731421989719261242649297323868562077044260874053124564845382036650947213009859272994923830654283661365989018962902170310226752032865576187259469152240590965537458497396691070400767516634448438480027901652689438127880872597891179597029820998834424855670076358563313423388561868754591289853340149941917553110889584687922844837347540287162854734986910755254263400501789388206100381926686211612910374942297986402519153105490889182331613890091596363135237956342060524109961493179181640312968605504799285077182929892359737412718599017784373520729855117645106013585074468248965372527870364984441579383503055196941032118527492407581064087790109277968813413093398197269348855331978162751673231927205626096450356458756041400410615518189098889881308893715658697565053986081125382765311828789071809854584019507178141178726562677329011369383240312199675188396264578502083891387340679552662669387995300551052824231921113791403102802090442163441164972768304313221552249304431001341591614616751702946397768767217001231474347808571999680157506779402025815309665770368247659628688015220499613415193745358420477153783999749031701540042682313312445026663389648182310559882846244208485839313684402426342313107671224384458857907854933743708451574981522105025012868511892957710249949011722051588197370597046027384973867590929137108643222323592196743642917955117018695072806139173151720173429162938790398603344468631708123882408698713738258884338931114516799359359394345445944381533190294687367649883686783594197467893033916379501758049795278048593083128609522215626272586641753619963299020539235325598254055375594688512747727564687495266712495790959907646008743594682756141785694851534731907687619386178409436072153540515575483136272875571076778073654275135659392204299225578738029825400725348706324237645544812485355709356084007530036546330269381052893568056570963913673285055307015386027468806567757363511301872652631728806604741134188478264801932046484630035136622043615396485599176184007812726004420414374207193122970354526361821321392623601612648145464747975499137295958861135906659678251735732652260665265113221335035384076250583811135851518005795480680828604910532061581205789847006723316692023137794564259151874106392567512796708320570853749808881151052681607143288026684990649875258013647740380203644431401732035047147097141042659914651726702657832020196302542227567063804981307225327648215151676782998547381759602369297498968227376051438683281428055903807755286754506654670811484247012330989044872917341149630704703336504193296511708299549095200636234391067736998890062526940559606727459851616044877740757807379496336679102787583827709256315098135580914750642839175109577287096529986827233077772343256807517118510126144842436958873548585759111765776274357337044399025575442749774611217272927361395938017216022350915027665698839076952263926909700694297116826139042019401018460575501657975129008025681183222598505424483303804802091346905578579011523190137115475007445070069823025767739647570393312264983576389546538135032064511524423349768004082980704769351263019980262005152804901980015126769659560958866805938620656122543271163224216155393957804946123799306266729188480127527311967386359967969711275066647400488087897277233064992078527992365119877377671807704794083716800658736285639911967574723477230609863933726184012148013654328117240939678350685889372976554719309528166806620186780520841402068960334455074548667891039025407522259582554242739102627776870130239577870394539541025268487102574558196024491888865562295713943221636380986962340346226455678374192813513938086955415403226707960415342439706280186349763852107658452028459449818027957144705862047426421915018533159698290520501345582695585672505754422615038527702777148281614419692724221586396219808198797569642082588239153533774837497203366298762237766105727531013047563974931473100559266864083006687060951093971852358995016669202796439056568006358791619433301769230005533984644123624975462890759620068248487634010644288333322321581891656955199327043538943854061112926494476333552112941578874958916444849715032244874593296381218773884448214669077936333074002728620525659984817878698787255424490903537831552116672378422403980568619610840062479140216541495658179270700376198195200062622021451200492794885606681648787393400664948622950082324763398222531539138593022182792678071027906497730425853547102675074494528764616975759575250187649410217044630579062127848893332838049173250506816727574568966271337133497113108549586059679464500549769785896838214727553167753294919920297842856996956809214571854640991124671548722022686868033786328927403563303223638453314710282002207273374281953369565643906658063710947296196895849867997311518531134070349092167494295770918958541895442122982644299254286884302491346282076175896471425981977364354920682168593439483641566649552345621992803810066957336769561775821037838960080491855469350764186158648003450985424987311961567484892183070538921784044170175748644165227692800755851279271716984391442128002583322394008561533329998874958123206766172141882292489503413130884301032453352934632244114633100107079232209374742900708092668624018241371921424297677931044920249402401847692293813811366567909357961212816117679311329454719365410098336809820449528054813737718395320111106449634439127542304520175237618647090421668595251205058619175732910003269607030983248869314940752854041303218943102678010397696061716533789402281755219984586169636758688634981231337593943811441591841312815432089816434760740471147832322352989490868751876763999322329778234606065897469674467052989975609960510532321009767477073671269503973112876280865997799540856064054241568982642989925694911642399178333253653473758720366672929575401542303871930404746883188285943027803567658017997538625965501325252347436462755739039783863453853858656415410187814036091700698773260416490801830086110436533858033490934959704694771284716475316911009999510494075264800190975915198432884099870723433872308225359410612484568076463906518601487308753461394079458585005517695290602208935894472498680397552435903736133992144343126568492915843076748921960812181871586230948746456072891843050812657807071673165379153560424552708268251922959531439143898035077384175835458338369388323924633466167523461494414353146975999263733524475767119929949084453221619697744079371820096473905524023644284789588513670027571507982603995276817384817906388100580511487637986624656174060842168011319534930655962114124093217581208760853597540636925064596349758030416985868170631763299012818482438220379129608301822163953155326607618837413326292101161017545332258706748897829326906711767585611863209838017146615002066320538049785245876755297635085502162117184401060936447609783186839390385779164639180819039141863876289870168548014753448066968340906686070771642146143937719316885801887916224101463289626351918536287883520854231579561295280485006570256004605314193008143713113844825010483209414632362121136457895116240531020174155889720001803778180029063245870319692117489029627075030790280544063824323377310183262137162970345900467927869322279139065111978919932582760763726362165077066457536946676332669611437905269735440118164425688761614306576254178612652932672595769777713158151331514518611889717824586240875403305011237439085924692327612272527348223555489581269717427039609985468564700651591742853051469115732937970097972522824997534654806811155891508952580974866689485331935301178989671097360259221210036195842521457398548218934575974704478331195936732463002788881858382544245164002161752947281041732623420159840009656825091267856220869788540834151052171295623388713704717457624918263171458782882113856902756780415302318150371271895962570870160421184888067435039267807909493035054293698609736961474034414198840213804975821975435298739159679805405863770624180199639588755611947175273826933148429221259237194979584127789003999012901573488892872077366431065400692025353465934220569311166001778449919805873730822723408846014213120348111915159767469343133113368405258946946833471662622323036097076195980604995454766039443878588162538368926542545903987410156694122158619154567244517140860619254384862144065495358713502169219404310923161503711393710638990527678129977555112157296791331002291896393941237255442994670950207608810651535893032990881297073881480408996112266150837205844723574072588819184750106543110468341095843305317518223164199854072334189209564727310573500918163490099575728561424159837093604997704036124339822982692655932445621696415105099588204386201394480695772563579503613447957073454042631712755477346549560053253601441331126368418874240862146989339939623619393950797289597592738749583257231885549817100352316168455479019095194596961262596061432630487155787495116933990920650522864138444037212622304270014445152000514665703465382993583792905967805621000497240684530503462788789897699514764407247606984051274525199729067080907918645079959788322956168154157193405205717008703950423567724721283766075145112098512082058334173084212372364613241049960011643919547335999207346040258758266761221833991088693236545538784662115460449996010642245829025180446863359044619551581463612522600748979131192880954617047384825407075289225171825751001870552341320270067782365654244073388190198536850259811379609157705877992753384060238573376316263703273037233488694762112834493929757553494565899878608024572843950522791203232759652928074086886388777986737464724987169007437879306536629083055170743797144106137895389232093905213497707591720736149996871841393978401714565328988676666799687309352937746358216279474504027227850535153620813951522852968574300029585031661735607875726806712159035665806276410421586852380006826341706886184092136510297168168542355468365954642907832664720765316769552853101444921286741450487500786608746361172994090204598539324720039452363461496176772206496646846745537078467969230545282664917458684603170426311980515526279824373124680106793161241001657674419847503810920151902734231742510031385041467331296399464549181139226185274005273674260305172439098728412099131492891934565460581548590354828742027782734594834914674398561575793420399560669277980616424943830804628635590470422294631306265597079052575059652483769705400955173454251154210191808319862953677281095605121160413222848685160625739536853853310092286442160455824072220909843896680460444999801130681361716576250876183332151665437172931446039357097871230200465936049686037181380551110133158668392955265151869998305996959207211409795465344731685188579250961252957783655755387383283792654260634870935057750655399758735285633381504887912329435378036847093416514032866951199274667213041934514191076901109507743053209180197383498442374419457773932255606051527351906637277722280520262866029912671379951205777407938257123583817009032953314650706868439198278079028369250124729629295398869859391805854434599085535060500131779838939006498731664033999325723283578521426550858677343610664013195912727986788083357415404398284808708353675329664726068573633170441721636660667979260209638261978358525381967844128656939041181714348015970988117554833381263636547883989664916397724969689241753995111304940987702376994924027536060027232949303167100910496993329742474690233262195531406083248734476982622615999223986162123844788763908879989770709937573521588792240073800088218043263172627616720211542450751555512193751378636517324945459482926317856530265094357677229239638995297262034491017036050174600173205926771471682797244746515529511709249132852871349226474380316855296399537306141060051373725184573576080795968190174774298595959819412053134790461942976715635341013883607559914736740674035092764507900096210576073176392125889546370905553825809963363821852080868343624648861552342310035052103650953111353298873344823065820390166383827073106261985086585559347766835492945038975325435368569195420673877606635503993292975011758369760610609751274429240169576231313705767308994211111202241027314576108326442694027533197134392577112002726373044337878012097252814646209050466850980930100382302845056675080615092977517504668548852986505758023968841916744390000788607200568034554360106284420603933384285564866152661868905550690331126274125708947408199425033440675942306612906078004277684486174001344395382929481679761540630580897536868494374886801386107940372688153245405297051827657855261617528621749201279147156615395722805791156919702144498955815766364627082489412547488185839049201431684783182303068913683697441451643925334461035775752286964360656963262142388905165663115835424027600666561279191308761637687849330955650254077964382083437056914385445422255626090837108829123613840781234234580259065151932567101307127024908876373178574508536995002624225222734905830422271173425540604145985657703434061702795789321947662648407249172514388642898908718141371076841986364963996575743836649573050786522977388167743108128233885074780042001122070280821269165230295644270967703573496715351606647927815796203839749142621800019608308152027901618456762022241568478933838412048733497207312912175236163414617556183945313839803800505952419865886565997304623853685558106257963641625140532649842988791988985753667399455950068713818378058869599590296901141648009144807378002868562880993319845245635965144718695006729450845091678663540055277731210491029841528800341148152880635002166747416283973170230424491370515744497506231590291491336111887821148571001739696607274289438350417673731534581106377213003988707573977330887448687385824234465554893936401140673881511129805450538107166759922462743723324665836776786896124194942759626945747978399720755082479740505433686987374138757575113935919877630033499325582251699852547287731244105140531352877888212711620166030358983028629226288906017436437780113293390183215976546068384668163603150192862488622025251735829034541957188908675099462898825570043796523702321012179828094568042350718451711386019772768806488629100721030525895346804046566469254611768992843793966880703374597802842517000682597731801329782535202937044985949596224588437919545035529686310951153544665299302632212344380273871283303386145526963899768157367726844358975270233191937621949820510459045767390694569643205764032666080284659806928119576649765050114776833698752391150224679639282713261701154041064243685845196700651665060538369072513241661539092009713196219968933417403269433226077372188340887262860606559113972203434369033638105135239955159597772710435104135165137878947814727387478083602874527505571996495725926917626518684329861308392857130887471400316085344274488270252643372501942848800667111468750440111532399253939727583102559247198768318217524837210708749242628895399697537832502070738987757084292065729007335836205369872481402656543771467678202166420403255538972542255445333060831950002278968263697996163515581036229565657086296076476522780725730583925539073769857346367811419209426579382601046760047898117669929411193628834151563305943429102785983496112543921536265228677223222354784411718359084642830096081870492108477912794589643418381324966564499792164112195273491958553769291393772060035400104048774041704183358948265877657364197555215310707191565551399579725823377194045043642578255452941041307317570569313035880639448538635087203887483408529350638609610040089490368851340668426009869571253373148295951707983641920869127104966842184541053910309154360369149734143219807221959960223906949515942081379882053159647529290964124035442013037190916500659801059912379296421064553947368366020203966224237858732259590381610816725997586736350597453552480486979541200601612833619027321904617276968062954672909098398316887546073668225863241970459701394118440256016003726604346383631359829949212841505085538994318363989227343823428381964165498133023942436304504487860867224921141026814276990469472294816736293350384481627051839142550814717870647759780412193270418296914153273395012809077323471381955451692738236925946330387317449651885278975896464745773105476070560205756179848932937942869939811201094354357784445982762162636239842230274745432158972087834269083719579299498561982532073124409594397016194405977098481563666880744987622616310026367038625150195063685492209473484316578781661916092757129961153034778002730641138573718670401241788216794857424364990856633065111324656075675752262489497603998601526989976450557865548210395850091566929926862872199467145597790815242296794186594484360161152115298929836374988927335022657200302645907693787302140437602990592027352533713360224573365879619168292844511817915802552830261528977240785164014519179386929175054588708497367344143653024282803018224216498816541863397826980642730963135340169127836663459485913229542508816616374606463921284363648080237845890968681715816427610763988135229142119197064285926905223264158138188065304061033199399760218941012279632660822352018102778457952040709741063878288944528904772447250228008380267402227467531512086615640752947320277740727422816807642016267807751021707102821342572310803159571184261303273995622762812626125586677179495468332998785757280543627766391314764537244166204169281142321978371842742986093524719267250139363774836660746207942651743876440293419213042159488048601069787438934279438224262954490020225022457609358361289357112343915497856210044129222392862216221760408437643174561167556060646727102500265698530804720102483466300495161161634698066296037815618194211938278059427213111709468040496238823788272231030078497479397450789962421302309252511927194267707525545917113061900598504887843849652801979654951289438800371442790222983075195135344238754796787383406856092180262097028945075680605580091624569071552179908091417375323839886598617548125124403409106596607125134347535299813332703980509171479202627307747232338270700995453605064457093092838956731867797607894374733746715478326744263621607098409135142682460975884915509345244469927244922719768001515396890964942767609163556496342206573104324676058725240734140310710928521046206609680706177666666845059352001700364511115744951797578743016147197009399826195921986444850291746929306707737318822390771144894391565465555556226801986715763263821247709406579320551920487035382477410120949338052067914051192011180254098128141434220404060679098959618958421827244846472799147512172559278002450963834341513888439449708157754056809026354755973755577440540076708809290123897804314413742158262519966858710183095247991922942733531405214688955052490693578949765255248992272217748589892215594464962988549444749437024337512925853384618759558740872327108790848006135887737191549846086388175684879286011441669831985183838215784345087302055303604094573614339895897106459603658429487036289195899757437793721914407774750393521533417074512460549324590329347621645406426726352922794787427254382959895383589875174658359007236496134639173024472588218480056270080425053420167995172402832810775926724272081185770806392766054021480642974686742651446754944690643411852785909879463765592517866353094566889958124032141008936602731455246478001328638294512188527800958143748902478436410772781388275202685679601907701715578134412898099351236858928281109188770684823796383833039802037058575608915962966510578151297643898664578356078595159912769218738162774711772589598351191387165699879820391881758262099043631455105121818135587753815652157322441852256167053338708221559220648642467890003559153850575664437721272676492569425704152660770381096634047356436827306945657491765583625700863208114848923256536293831175368409647196221992798241513842389312485492037177186341714743140941637692001847576199538407209795898363052538610024994219920177648089814557904811898941265223366393117557913404204556693296676228969827671466435568151466181885189774131124385113174877780061651312558748314271075667094551288443267187937381271457563777201016875747918539723426651254848474287270984141070742242787045551466373900924403083363898285753756726913016802581075969448216205255952988472996559783420304317823908108115175839618797497910916522484829917675779769296060770171656654255997538040551570926635118824212138428417627596535490612488539495820393787229802246400002506541432361186247260347565708090530797080715631140461546595694940150668826109444751452337199010679562130854077101272467485515779143131390864111823347217514326488388464728391031679629542928041618662161712570942604881168973480042697948424001602566471451987796087230496234376533185052494851774790245719364544832288931495303265595028488820945473725067441665492875415366983262569205023884235130732705067666697368288822816357782421769552782210044165413004210359212445646639618430824696605078582850654125955354130321276315973485471732122808749224149828420823933130452055291420993677370277731772129194282589994801909456426554596611153990286098975379965976831584269145294802562190476851261361795007573296303723826933689774935420338186226143818949954109484521471328577385470655890634229674829699259048771019980844074920593105170427618281495634912346413712604328572006435302491895247829162862848951742554747593180467859060374223917485571878610390814613052784726932351514833856715608313975050687752407599531722796697690169456463548823461382862308680762414517565500630386739754907537481081333080179365008062715158785630039920891934822281985076291614507283485866939074983447515384256783897418311991827645328747212834937188398745385089558288152998778973915394064749739061333779356600804096763022193740422660727931081351365052797089182014939202254567372130522506977469210978495581013360247754321183862442394685148031157703585890162133291380351249855987478065283822354132069917180442810092866451041612156545109176098723019351582221830580830020228933930034349788692508549000363453369213830381580079348010489982835068813072395468362321725373258694730369092411545922220383595117347516876852921863582543921711211976732448794246777377542619830842459065560881778022735563404514470966352088424612528381410084363730184728153549566841249334926547118332506280519229768141052199483249274151353262098519989391074948594477741165391110553555355165951601341950939522233479471787289428746153082426908904147554644600341444105072147990392185040732311724055327630067602113528268328858613837174542119074682973750507492511490556185825520343767522390141669468556815135843667108757123903246208924123637937760357440575250665960141677780482363997373119210649281670272362746080451418883901423884651412256277128900274096857334708840480073490025332232076293535648181971510433838441391250004011151390461989934276367232906511474547343996029787091205933283851297051797521944659199104437194700088051452492895263141721401961143708265778199633950491596486717658887764385011268367255232363751745739929506605303477082490598948090648759748403429599162404694669293311901200496987250244473507743353538932678969128370379258127518039315661334632079350618699147159380892984129255771991534463665890975936771484705308856574909578375806418324294908526494501498860815417436658245325263057863633063373594239911392945939293828852899359323573355710808257261032017664517947391513794108111958288743343397883502381630267258941424227809999950800330045774323510863527848061550141619092250126084688359288730245648650027425777418511067141912442180968384401533067529985263742877513348863245757522950707030835043113452151395715409163051095437870137285552138329797882482968641388957772832008302310943375048348416773857827172478248416292705951798352381416179848235391442639125206668427339467962198586364292368954254033658059156939690763961673891780891422747683058972556510011473661598873721990653817432196515867927380726889072573516921373693121166167709222343646416031900000978858708873142938888233950220401614604035991633108881655844126434200422748393647133610984693133313563805196414727163967197557504329061400956346471786867824953816654295988443833283861477786170671138296174743565703361727706250349380195879454926965311850797513085583743811727898716511185634148486797105668581755190786451973851288798878778840594357278294668079246504380271768648901506246327940486960896880754561349153291563852300912878066853989543879193972506717550411415178532979613193071362297586081970188701182358740663390576806639993248415185006496243171383937566549284386205986345135054681631779776447081232613713681060864850542843407167778017479263856316893968065576188485773713439317262621813099436674274539724344110116631565006195568495330462221507166994588724685871059739309539433491382423874546558079186170749325543920259519490420574635741484015366561627324346909436680423466663456178067618469408984048031207145053679745389580441034994716530566329863091555452325394655864911838583525346352230332789692613743552615784081949389136976059525847741617033892602605384431594997582490067745520738907626570735108792879443235456968806355859529525645726396575643380880177731552057424547439531995000693461199694712074483324457542735587487149956979272876854010752998293540760314927508210743182005728154121066464962266917414453089141299211470984629022398657369667187772451481240003273430967566488598075743179303837994779451896874105738680688602113860733520571836614766339633091196899726005882128747989084995619805101441251545669052168784093370324264352582703132036390439485303653205201275045607248418904699689491367755360846832904538848937377263415653091712437695085535229396900431268019549503913572363502720600846558928211757890507608580390789976266728777342209236276622600080784637289559431742058311545377128420251085764849663285786894349671616413474940050387584550473978678808819752169306826710977055036279734896333797338759848115777813063996207714742884642622952979825694321457822279686582549243347678734894359058751494604652943403027420997610753485755964790733480971594003163630204986180890073072951735549994248949420465612546045109294975947431587156484834486360133260408128745714573562339542656273040147254231289278563750685217218884694851576659491589784260335263469614126347339977348225542142108798270908390487826721179109496416071215867243925169786226087198487780181219373304439636097404483200802915316818653313948860680657238882054346671323104648538147863924870835180521609589524932028744070294305924452124197207143791182213189535163829387408235871546618550369921864189323379278221494652649053510513328622100730191514091406042948751679024000439040365098032957501148210339142218657828432952973860561239836296388812426432037435555831347287802754885086871168076016979795477823185999781013877200997439211750990910916641420217440164690207883651104718539797893645845415450232116531271052826503037372976806457175926913410032372235147225303759615133519324864068440160452709196383091452675055157485170582764891521667437249254073420388368747160798084585584784057815780196487326483732768210781706066962521377387036065613499504829903627447333588014331641634845935790196209977072071749457545234023381944374697910096982251642676675218652737392971866314194959226388450844403213146361197473121692373792227728857442256591377857601510641831354770692604431777313872613580251629333624024581215322778666082797891845075947672071406394255601569782881170095421859780748837601258942936856517777663178520600680827298291620548981168086407203954702773298648458909679272119391053151145918985310158987557527676893689826024074567264067649092271287146880458891506808346524213428750427869428900086459380692469527619062907858179326871409839496789346389593599113681575373259961117831604541981995252349247155315409955484779262272727149520193890767051552878738652758458829224010685268092689876285386227950755893976346348305499879021229375335132342322083661160381712900277477969726319684508601410790350566197210514372404564457416763217676008450017434484113644617305400491440729613594808191729229589143395358412126916032194175310556004404442143984574490739668654686296350381258375885165810036825055902037171947562005498930519814530959752391672011854659744339232643461503316477291321536300949473002934835768836816118213903398306271469913733109687568247999120760574800068743774626857214858790463956199872938637248562359642452504285508398896596619325946297200910995747279047125582163293680530856532184443875286720897409300157227101435146538497511833395182539124467924690279802386501038195331006505343479307194529247563411115899782375239537230450854969818699454277693332266857371360454886115572667232706754066318726446050817798536622278412357058004151512179155014819015600762861003122721028637070815662098828925542652447805871028943084339051313887655735565493192458013131395369012391283124077956911118759918573799000292345951265310097348845397149638784834439673919633977466404846718479157853478424788785048088659907854272159104138963998346989929786026019631409459878296518333513653440627191960214207025172675452840219617266838302387608948758154524462210960626830996290564830212907518420348046286509002799787209615993729761507243135571927615731324091146409920959583553546251006543967471447402440310568506305511065999124801819986880611944383230088828616416387838725838966266912967355572350521767964576391768703683532557267914254765633241991145879462783373409954525072702143710405004958319606116388346247494063855877650056809202614493790069964959585118923069101154736985528181516018002753939986175260295180763600306863815676006482551457626255878836003606369992953340907553406772432852955504398744121345721108280722617974800119971565670309233094228698301340884242255834942261602893515008531495361981813482386853860246873933860436463438062942649656889704399438994662497154840060478904220300216393646286509618208032567898572990097562437744615646988430974416635777394760176729094356757906982212818003581766585861019302224282819711354848334585420709772196875276239466971006221123230421810303710815800935410435051308471560005280988972730735724520019512315680154870322244120521255570669977220366674568146690689133749679045560060626750675993668218815490707572904142066869138046096200935167414634070249006394160969368015126637039547694061030714528701069807111370648125559158502885108686304215246901864097597682016916797852185376939851650496122172904904058979298818530039072126852290732051227197922703256863383409841734777313313628214764757980023807485049923282995091068354176344240087409631094262566860186829880241281957596624873419680602423739425426828545709924447291268836844335701643113928516313996452897810058186354693429069684752662714808962229431966213820858951242490766010980397060112774702833201698979905085314554589295986239346257352167418147853723234652477897646992551498184801359902703659823313986382511412723921414952789005434476004380058673161809753217129123854670568534131817297578523439485950981484908185132120627655883105489722547861024949812790175704505407100034758419760141650552251445407252888943024548527370794687718492375776431352952964708165478698123266370204278068148462723217648725128894074592149932107944424171380263905568447793751034603061294027065957844479447498835492102434072767132657288324959254410776073017045601336363175286384996170648092702274354680066233410066399901201484651218338563440981220628225733099322976759668663676544244148861079557836024136569859301835807684041572215860038099999821303371687066179128251233726512599472505204361932644419766582983039677393415971125876236040909232830438780864904124003191149618616158612676006406972859998687792241677921796369442005684856685899029517985795440023906113080450723530888078987484344927831694462122356093411714145700794812147312045892750631756586423738209266909752858834413176928903826221659580859895823743392498160912452126708923616726467735854751617213915467475186864479310593111965945681859979542440746663440160508162037924677179765522614350921571473164311629072485147070405184247962008706452473914430107070827574655310659091331204186519298356819695215484636886826953827969202420136454009281168712174223874532311015652751073462641753424267766180762486864073117810010831314262885739650691929174797907178500630828581998548772704986578572441911932309230052779887356377691998189751658734377016408885215563507338352817809394286718956340308154593654878374963960459356212482283780281807612843570457008299566767230584649433219322745318528971321629879939335839779058962344059363011587243585799390918190530300724520658000972504168797445458726433871386682546914383838055937986605575049246753269469846465416640500090445097998614264901118973560504186595388034326018929506927119666010022377407991937302275692813904446310897616508107019818056832406978785570914839412123907302756077624387526485013510078239558496700604610204935167680669590290897805342577517222313537328995333175550771912730514902187374870652072437708897894788882663865415221998554269151421945847444539660037505376446177686195880230001416647202468550707708079208900279584150258764128902225785259835475232460086100824894471826895230163940934022840257700476829177231577066815728753072581522714721727912301146218622359743706235622269498172447883930043840451791450925913346869444917599675869485139040997322436579653954106296329867279552491536073718786430959667118863885469971443797814196305044334947055115846448385989777159392354477071690020797691770166113706726765220412839753882163557432146247076269712002129504592233103901510752531667478073902827749637250135435596634160712571000370014250438196017369134132764865811259270850031350409663417322853909285660456435839939937430130077976500486444496737391985228406536363306967413116475362514151209481186301380460444396815845790807315042763493825308243265006573375095430259081648178840498132000212993110542478569849016326800563208285851118787663068746775060464233308661680354477289340951173232853822210743916222178664746002120540104018602130463488658004908820339913453927473108156463355002637223214470756461700492579530525611550281934948561784408349214812656016283803781860828085748584441945353993799389274714542518080622742672066050601983426155405088855381307313373054905078817430453693928499849283027698806808577591684209313112507744575142951590915292111908846204253589774693679563169469719478931422786555500015275919304375451242935522353661577426824608437087207768602107292780502342695007613554964054730746239431235435744914956550876151561906457667041021791518898152113607872994168119094379673703044182760426540760277080839649054685431836395162092857673729029281300434008697161826571565860658105751097683385146029069285630937774592871482355559845165905472910883088967008918498349650945578861015940935413855807295561655959653166427312302301528398795902297857422509998724037078932336606838644354358299594166214378059083346296017397431936345297051390329241147664823067137784845634590545196939936382535770222264951861619735342815273498892418183435806980187846892390739615194989833100563654035744823340653896820555400027015556845599509069903206381665219009366901155346085304910258769487350574842767440589803739742400327147827354716950455527093678751812198973751979038446415699018697906111469592100835979430394070865815314652272508817387484986439889961129995682474507751837915790410695813212762669893840582835010052273410147456536447019793548404463651519222984607563892222884324437794632188010306280823408869782486770474481659036741169313271607769759784184566125164698380760386906794928776267320609405409805407982252566643412263110578279473798037618638771152057079538036613003373009303370848740014065243994844758158256962519315361101425730848709744806936765667131207019005828470489162717583079492704943737109903100031086595986787144963163391115090281615214004585878006878621156336312211408009152259765554752480794719521787788265024424604460504955611339808997188410470380153847244566854876953149339238317848270319990420932763258948913448375554344474727971340147440402910663056987612982256970635448291786399874333035702211103420373845113091038901986408609606254706445240734565792516632035602991404387403521405857754041343538835254692791275788329783430562149938725492814234958386761928637610705961640870905459917144275570058192949473377899812668949850863243074794203312190882001167433610122296967266626281530235813323038054764542310881781179430639866205475017695151382194940278954275117748748062919720613242344136251024088296254093595770332852575080519297264462780101381682317387618233245196825492320954720236924410322793718113690551213181739589293135365601036650236038395423994521208714547626296523908694613455249544741887941325965521080289297521423029164871146609871281436796596838721871190232558056642022419943295797545177471001549792283862891587724341504255470216614865432078243737928331485843157795695561463963196611611178598503312960023016926185709770747522421731225076678136694713646048784619182355671025733090147367698341571983349409789702101610352698468272409711609837951897733802186479052586553791572924179710361996116523241745448178673831910394052316371208779677918291569759150229372039814148232267265967204092228431038673356190251360692869554713679944058341119953991755645655579997789603317865550026145725073255642005726197477457870993779380076928003916642609264919467350095731420198102759304570349893087045632942219952048136307602073188352728948744654637796212250184199824045670108035873607213372056167138099331218352834485614048797131035239678900798372991832716272773550032102087159085468375184131271161622133529765817717137551149679412750055457177155149999234337688005825241457841871890621662699008184196452000317482325684167494957494478048277943138136259590767547597700856972063211166907508695309227973537474494643473947119711613438067606307158911278012419180061498036381055885086766371548689556553878371238568590471670678607009272176200089246057471532043966871988443480679829219973004461253749087641505548478953362070928697175425722925597296680679273796393913035727529723054731714304521129018697558861573743190524389046816765422116843693747527019038535206994674029963307644131110242119080847229206782871113298541746529318747965899759061456729886245401496715264145221077845286986639037335103405131896594204932478016878473904393649173209333322932712907818531176673622939021121356904457414192900393447504788256859678315365841790614366872043302481934059253811379123614123798866676223981087551249309499682338017347832696559912808134812264948732331661285578707892853850620404086662134469774314504285023173039614982628253706476861261591920045677645902536053945937121220356580394211787137450298164779751219072838424954781216056750897653525128691045342279263882662332712435633761677038292850981860262059944399414606792307272548476108473301647794775167011890053583303757006818521725872948331407182052619214649266584965253108853267718027847136344779495849063653835841901585566386010226997269259021091034828585582448990717045336036222933902313583787647773349241102260396823152979759063627340730708580493134673401755896217641328075763347836593918803812244670834242106860068481399767548061746962955763456173562974454881284195045286043114345675318363378700742292570302715460683392930132942708677122356758340126943518505789709191705965335210075175470798438278429096585335160256192608160311739989834713747020496990069616416224889919290959419763038295848866125001787138267900913559333501013060391364296417335820762551957180085077613736423985532946924645906901279560690227186321675670263563829644834530992854597876957184637571480468232974058038124877219254609413983368294494628981166178691891482776737480437471601000481441169147406786400474730208409917584120892384702269237751950516775884184302372916576187685720060760886541652412217026467421274639878044799248413867078769567180328169784033550195238609466457573479877915131028533682392808092486666230569030208578872428118278271535909973045937254295778277723950621736566017472757963341117890963354045953473181652704408573762028834614549596869540253319117907702369930627875160030481446954650604117591717868468773115576975340801272218406832257292420189285502779358854743327476206450419822473120479398084713196534577831390506039088799758158056300809131030257393943742876824411443249422454446327024828961116206332443120267081399395985759298080583261058344295015371359331957097111411156035915330733112917526515027323046912295960149758187435240618083289879043306505718904921129015097978490399395660403047248809528418201452676291849995856490138860281745558463770473447172260657614119125064973310514760782455740225967084977107529661862653002416152551079656703037905368250185964796662195905555979024227684854619567222686532835548774180553973548106072531198543475640409646168072548057668725921412842871752794753802565707033580647659413918523414820703813943779825601342584786468658918406163142712402852436311946581445757504847845476790342620713666366300806481606894992254283703667178655335914959731610010574440365073929716162139331091267195091986033045209769241982699862727406542618786378326180919133551214039178503126628016232720829034929337005643488679512595728468291491073691126835231773715187379456995195511747851335284484850738324914694872301752339375437511030092966442482911228324755260835506782704439311259544004257738528520489265455943426699310869510591415390932230721942986435675157431256813349658076159260180765505487640784054160836895692885618727764188189860415815672767984342609893726123201913467893095974962249017146680293796885981570473903904083816757758222273658330541855964459875384105770303483266689517637920759555473578379722943032075137926912168411601947654651780059974233517858668339096886580558305829967808659660033840226624911000697655210765829262524210701625482969944702674493472832727518792440181975309264119871350846360884610324134524058335454753139375109500296264184415434051568340770707833626747682613095251021833946487738041540648198364979127554660378633614705158343025440341974339095775933733271634868904778250415194145794735559777979184352007141737054780404474378470486611178797800696730701126799243283605877982852993572400715886410552489045768376977170918576512658948174664657959505348428387990072799306477820875590100035613202534879696570589008594255538802724091025981587995884993584549274361934743408874022782865833879153589399805861335255241049922594070371389103692509370500949603428074141017963740231428080613353531479203358740645771696670183494633515297958672916880705087905662531790645621062417277164507794576581330575194755279766234565237968193699805797383447077348376607655359019622648135140705425187040611926777449845616225670376282592937781063327785022630082037519316131511296729271605501373334896942906265498282181527047667634628476882089873482841217458520584327416028735136384434127376561287236013081102311971916290923102730396270525654704250818991334682795813261969809474253562707695250721158732355202074995334611063720807827575596198559966602889368476636524669863443936937255525888719165858745574053629742972726673498863190458190020668569354058771235957998652354772980737490280213847347087862153892587600150100585808113608486471378808703183638794900755437633590561441305733257022072401226260634038715799339235401765713484996859732895471356726320317622648565327149916132570872795437137606911311355276661230925160639547194632861351395486756813374096999414373614819523219810733311225070178645736388982137826559778845546785576432992179841893204528253111257830526963051531463959929191818504824293647687299902388532912700514835255970350216139382377931735900559263233880234416461000308847852193177716420267626891194617458646529877719908499855803622503777530050902384402280011807021443463526186730452321136627202852860361988062900433458449523553917650371692777766877281764875806600755842137163086000620299492462958648395431055039996304785017929039856366399711676622715651517012696837761017907704514706132704759084224583524076292861839042911395300289587473044497226132685121384781737801830963261018450031126610288034575329179947372986143975890305172381038769896261190115020890469423571361930648506758237723599533744613712504807301310192879286238562463988473486479389714689668655010454101283502191072288071542849596435926030541174297735196308868215763203876904866391144225035528451287649833978645681895596295588586418417737993548817420500291745378889035864847012168800445495948983809809713493467212352902662089424128226372106354648518424668259647816956882739469224121821060308556964140413959469286060589107482253720745747189987989463058348833680586995970556831992487837362724803324321212860269119928345749875902754138189112381592299258647042961814812929676382635996553801017129863229389716924751010037391062620141459085451396966271785434976485713398190160006315459306289975026772356076757896514752760481207949918227479413022306882163049933388856973119138617968396482483303496207535048811334402141117716118802924679656146877989146938365208955440995580936227598103367345688713574523949739295597317864923671065257645699810377619219973847965112790175477514526411939017807200275009798155760680234431911501800424814337423957734374643663540305358375867359001782094351917207964963361064554687743707290412940250665793186833796908570494197800462328291899317869160788437509752462495587561695183860299546925153674885288946541497544951466417663912474359226688763469936326405964946948641450987310062085120297651842359266205606679580478453763596123539675977969296893810567749814394984837402335806104561850947934922206109732337965754082367055431139338096363895404824582923856027990993756778796209225823205668658890471331101633942255135851205952541000680918614016858402134733772252493887800414574531305783552218137266057776733041047696690889366480134623758376047217205878952380196585147272913534190292596991906202963969912642621100917173865206345579848431200359915045938854100070611356128114676820505872523935581526684738192346389733373304499439516273648675547040794435866763016444973460621855036908261571458239184231451607059324892319806182567051024307615051479755212873058215207711219084244506112092441232557099146150939024996212416288099600573013305839903120844611905754625024933802659065524065519966148709448242062891526614836239724405349385260337778300995789118496554445053910840902657192590008002847338183170161416658758314350998758674732441702316457013430335755591177380945213262991569258859996886752313524745583016182297369964501146037514451998037378145648913217106408703545047277605052438823931735215546525849102907020759123319045996888256267376521209845864710039815957249458599287674648402356464178804085023031398839312639671551122489536733408309038854620292005875967167669122371639170991796305621228835969214153573778151073940810154305602469558672949488890121948416328883179122058025086089582357530913332911994975592986474854387619322630790566737445132928103730424526813927982584273312104048823730771078413190316238503430130995691900373928044799099178703607302443164627155685648691404014711694155777617490916835144967681271474039375485880958057200919204932735944559203773829997847740100183969473260377330760358317006564790837285300891345022780348082837537681904207052953969246616313217574284730674955665201276051725835992140383180331732170269841149744730046495437522041198657186328892230497123284084712776707992942278479826967651250223255801857721888695938536736819308348285057102909630719257835896949111652060162292080097699737330642911927951511536651731405294184422486560697398119627719986827626392260563606608634893557632795998118537032971625957264577424656381029258648442521152623810549308895186571596350028282750701089637626562577165849905237662433932893823719671328936408217513495957498648515520587033167611087815179989313471439644097240252858187580457930947962084393862281796000004839083277680615258887885603682449787181419166950724315728637970091942298227338747152075702694708616676831930855462908709260558438199466067144490231602043506685580531644494225585211972151492988568339456585324865779291158240518340773307280354808882819174952855093084647178020161984232485045981459643294389744871275928960689691619368632123005203897308416571757009129046152543670177215481327808967540785045721042114685174217241464833106532719047768469899560468060486742963066034443916668781571724579178989332109161650622806180024428864968562687592449993960765319327543114834145170052058204137825485262863201939741848491836634133165712212422604027550845545808656442720397169610550905758796684741979521255243002374313734962518114475019835436296229546767174295263591381050199870233702692894294609745175679006717286813120705066068533775692056482375446880868313430333901692234126390932208357419641220433091769213965432747066804566284937738043663723162881125636456768552616926428002353582064649991540903503102678872854317860104214732381331347167570258947183275720842965894926316963430140202995897220775636535222170858425285035938501938207428463009522961368801742580306264765858939397203357553076782588309863039193745768398924267935984119036884455148882333415623817886401908993360880352513829899566780167694766776765292792199856299403156509104918196849881584566065426135176847724521886662866257964272165730268758498969380493531391296843971567345542216985021330582433427963698176987492966083463861686424953806404897989381757565899462054038364083718605062755559864926246740838160792932811805318791046790419581694348806556567202780515500294108310333507302474271553753037619145291963190047804811049758742825311089528786943908922322720472022241524345274545725970621380397965300059052486116845596572972850961397443053792729968836956011760020520512352888130424482561511984407314285592768777927142062809723132658579767650619137343826374736900392055725030667041600466921748841742172340235812131599690655827573247862155975765524899339472702494963574093811988105725316115814701274990322837361226035054623037797394126303168705318708704036208431058979179842634170856510696411990751991939352770919497520295042973923415716244539618695880640505504355824943619927675397804667110164741055451942112570960979184321780853241172758588097385244501109799111382343738066931830312825844753168484152986799055925713026454506484708471639514121220040288426168508664387923152421022469324491608933097125297291562784129207768867485329018930703057690285026623098589109944646176817211433432894037393395991711830114062628586163904952832689242565444603324336772712530670167292971284052071662069756175163818029982682296791224751893895366346780344973343116848967927316711416612579610866639538145745303607453337267972356138626917230378850144180432144222576256999702445565195946769098906085697425067404428112678890494175351228065886323496189712381587151001083901139758452863268083007251175014246134403818540978874243387478123560821989495771427815275629966957239551316574416768425805242581555517369691621636076254139000904467968698374621847531575322580563608007961680087948678659852533773793883255454628534419441955476870672787601027838044271439710400605365947692700656476470683272853094524345340031972707611193530452291529292468723044335521543055273369919819901009793689567913451607228036082238440031154578271827300816788506559818628199347292874337784639412913059774332401992838510332398069896027250772674282198437245838638808367465828191968198591226835279848882902192161381500449743934574764887250131749156119066820537245315886936026670380156830360245947519318641501689869735559909648523059701722374907041232357755106597438336950023960448480081220975056788856427616546405247056434548782379763921684558018927254795990801630101333156837470014578184852164777019900634867304607353651437427267489818588670644556537963777397462543094631018812212766671133377539931463154640568116766956805460790271817199853119974618651676280992859558154643766592605241904778079506119024622604312512093950223567096140623296752884555892500982686626146516751284001398353240142548191365491880145405932366585987672394427284809640438752165460590098028234786883791809213308899957358155702468309497680020834225342475423537400339425295906095617401684585748944141576601149410100290301455757066459321479981322236084004519300965728571660269011952292634759708444470448015701791382036374323836802292607586610741762057481380635819398394039657165527944572042289201125439440195822758951186389643437978800237093216654854304322484657605242120823247754224395548615002208059566982113417627016103976900065053654179498744552613389751495639991008120389420542707945546835231062821767171595429040980985424950490408461269058768500819284224952971305037724945938700785485673018403420612044023035853700660724845806600951281193695781714965377650386143463727552421776331405058352639989679662879827523867067791442433953726561739679012674827341241045896360359170445505035322116407951974805310820264707762834441854828662447620528087607530080847040155986876288144776691660410869749868743800616700325795287452312263994642123047199286717477848796319373622129727333771706710741670489916980512507486410638495941246774319500825773472221150294161384094630040289064871419842607631434091099763117545625715029556721955337117761902580599149989017158214379439948005836425533518146739582254026171104170979534962320611003936479586687677818394317704351383796548549544705816430909618930748163318901412117230196685966520913974654124311966399271483064951072572490628781696353128153844587178290246178145176812363203723303242780096595124734429697942302893451515719999621271923666404637115347238137151863961242568103284623688617369708555360883235171540531750319612288474411160764195616299046379961643744334677596494885455129823255822265642652294418042454423577018943757763025959848726732049762947328722042393395968037538949695375727264369250060372487558793699148410220207941166036012346201987339655152926725737308327656816669784292020637600580254468375067771203450416388371249448137114292077438288860705756959264541156100581472835799576763969256488340079857086825653512421966011958663573460392074327057021295339768922120745242337312300545177160356909365076366180558151257888597926162789277420806628372703877554001155738792738430228406227606955478064252924477484346330542762143210740636830390135440904429397489322387162124734759165164383239083649096625974414301242154098587170274446626097349276175407989410794375766838764886111248889755206107513350914664099809476073456916683309255251266623123849088133249208029917575925232927760841677783422759856915952633708732185538170837615105240892799328968209553509524271714831815602893321031127539135502806028229853924547857388819087332794849921365167549536159836792994326001832366846976113009875048088826172653881420617629573650806079729930286939972385312397912621418720496206275693097028584080029351023311211881803399403347067458121723793215702880163707068058470764321507136112377568495195545264113814905525542492339846660642071775060254391726290162890732489949232747916822657738253167239039071012731857873059832435084170114418459179956825876835115757563206985627993920715464731532808645872786107275779424973823976214810989433259745655210325088545443742549237006516754392762613478444852007053920728216134978832845181762983299828185782940739764397045272299870187995829713869736830644244256625607500898213092634248283139731951849928488923951950776683814560360249799282748480297368386985692348098499409044634177625240656273077996978657030454025220987615107384389682902291883620092783523389621128070172642719461836826824060250464823033314967082703457786857517638936875459246256750494173290326306063998020213214139502144241212442898414606346416874730899695067165458104666235079050188437239386356763828369067843193006305440438239423888152059951209427967777797782586383865195765196535519312558444932954333868454740027024241025354203767739794128107898699643302540114055269132265902010656479460598996435152782499808297615254608279008792997975887828309184265165661280101927333856862000223310363501262233282374264222374365221595956343555336350456647212145047875388946866740075466517951863352146948965794180585278321510630918164206753274329020057394984793117633528129002741642619996633198647665244399148812083964410346282405145507047416829130305199376054730972582344687835130743035576699426888670256944270443844868208484653268463233191440093557860712283339623038226704902128624617347522987528656845417643816183213833414573253762996156507596966359618363945325348369165102448273844003994510521753146034000152725856204935520205706035092457801750160534858528089401757109128779242543143988801851980181078660102815317702557211790424552252424333955934801857796050081634252957173108139640357522373110141398223349265758466858434806029227727200864332274627814588424949296573537377602668010841612246541619751310844872926621033645971650977656015904801059590445745576805638439019203207464200219077538910909214398440596628173772787332962030052211982660847245238978439326476653151097901914318057018832935513201641135662560440671206725690779244422675229295163976949410234452418006018311101909977934205411267573106834679233379073692089373473752825850343735240650140789869290746408301394246199574799874569285614850486901395422087105526149330333106833729095618030850492744563608710906013752146705769259497932562474198474569537552431586783627529331895442202826135266588509866035138567760810184354385335080104032520882309609146093958332213219262621694496629943340128976402419820478676130476362977954735456228556562430849271875126095882816997429240034095089251438932492384351114142462922189901253355605564102843596029330209520784722772966777500560324617514978570724567522949204173224580193413458098581322178709737489356596342196712752100299887036668450839269703144313648299482988066072850674589836157524474837623603212176870921072119010168792792377564340602021931990503621400896279178130318212391879034706504980202057804354558833608389501263646260658384971239940735829561359554171787679471991515257935470254176156426899903081851056188907104033843490960045477589606055829997299566983702369830633929573571700562381377508591039721840137319795720502475715867054944755743474240134288213637952532772332706806568875666178052262956005375604507263727066608730312632030605525849598592313941885578811330631126705258706986968191189012669512936840977497683070369941918463643206759833817562033471736273732412565559329370675986460244569324085340218083059208648065017104709475565681558192542928705987802117534482218047427611890498398396322750991093706589039390285758447832679321816004930333640675901982066396092576880330528576307635863288766520172647902718753698095886823727512469932996260309820294988286138749889279898220415449205465491705480635714904696463737278437372509808005242464569763218503899382298516292392722118502037100384286908247826404667498366920243713408677271683774942115546023489353940441916778229892610278253214922007480531394459320213630819076980239475913582995572102488416948729903473763095273531890941718693948682605569916864153770960229461369235961677393296711988544219430318375587778041618140549031206016011289790566818619372319889123399275874780907200198633550663469509852695205225959990870710178769882196214385184895635651292308596897876637698449545470807163464954858079065250427301029502501275319331393339893048984439950062110190596641338268173344568734349332543271998417621334775882717609527352461736338900467253548084472850916746489891645826531686427575894529061359497470106898147405746619042255667708624366855940257615506132884946602642082506723522574680170744440557634562775047181882579672272671724559145272917423121624576066995437696079996693472877772156389988351100917243733085146083441768420730153014561773697366721510077773131591625453921833554101291640276544591453786702819291573148576598949716349871582984372122048137384111889502599134871001154052936191493402905598646383618552692760266595592994183235534920619416758823792189875384102924296311554706174230067206804665772063507311373197695716327520647893211246332833503154408612204098100907617155578608655274011007914134185615277443411078404720889946947687936343875533764729746238799401874368597219915653358989305888482401740844581506824532564827554806959519873870884156905005927666921828001030278405974550242261119449838704896394295029538208932187309431396437292903959178892297278862421238797624811312410427827891204282056640850802579035898314959410014747357859047899211417866517063170593507782074594825050383681899725251427949921125248488919897643126820825306766970852022989946960900101107646068810332666717455573153994826014000107103444785770617085659443482243781508100332290385989938326592618212790606237891878718527487648221489497088283171563916496298573582532955169013330647055347175062850591058754260386582639547401292079556062233574897739731500674887675236490554227804978520777253399165833282433587800746864355465905609779765780864811355446665995786093620424559220444169321501373475404822407591395715337955458054827994953448898043640142576220829614612003870680930389645495473353981026362652471358074543517331880388376996621254575761865290260053319283961445596471199808249379696585558699113377067806946566788075383727475571716615567215811746746003587932830606763035732978891158412037212566715768476468738178394630068644587581518691653183546137847678901118729290028258282566240591890124974058719533310885155242913566479069889105149542196136040387626657516353051061089299440110451848559404745463881522979984648035915144337897551925186264423506788357533588479911449395530223585551306107082489641872751760786522675029169601729379214149076768690197368248981360495931538127999064763912827702585620238133748914584888568511910483411164864930938781366560072829436887700586981730186652205487415862982438449020661545774395935780394001653235933134590628564348419926257376542991706846951328324658639426656546718807277771125118213008876182383018584870801583656466438533473384258388681647561335968955966193956960746252770431541634392084214113289867165290419698839791839296104441701366173601237583906700600804369708283460689298003471024564004682477578813867788015924627647316805079842600169027045321172765481821096553696491061700683904594136372074620767413529558980209214026590620237593916834935962381667901259872089862488415388413096460306283874135728078956509850439835965767298042172905273265189235210220602316932364025124980166776544118122728215701770822746274458443909354755058644060604473742239539322581868851205831835175282097338000983420909054436820787784539713049239638155440034012194259131953589992845047292336477746418040163658162230347234211175890903953811293757081893206722795792384716642027325938529748493921970136443782529330172805804490495169450150231700781816041132682209638060962922594395133885582188807198788899272253347193482113162989245576547637241962223736281859036062978122017999789470677814536781604266540522867427863057376255084714734581819704246766750691448764727681315967976815299361405336469351659499122877397804967651481649539208064437915091771755454379612673324999731657053518226846266180525531158262428400316737707126221952291157311969912553423944387241877519692762229321092755000096291535452271696999070274610964280861480680531329051839170466354827638413034094404555087357466383005657827957364206976488836112947824135433621026114565135726957454366249590114997617073920953479757154680135771411702859470589978178201226379680631246496376255925855004864965607853322209719485598960418371894166598419531026384939324603229951541646757777821918441034666990485481423269494404424445116037898048302443574719896976377411599073586967028166838959864607143613511142467882022755831735126312075915088851289129028431833404780271872347121932616403355952910888935341091394767223500942727763987542953642454235292429973357170266578292459927816937520420200293978763232670972837946340030915213589974645039070745693267305051103450452389269632745546858642484125746164931755829055351049335744383111679882728807065680966931446774179968792614379635854561440142817669146715625993934076103990715075973632236279709757183931807001616878247396370292757251592583958888843168004326831256218013542274031403112519320835197329281472286940999316250017077486046403859025501749724344649744070733269817340684537536117212259406318645035952552645070371885560946623925409218266411366011346228237019371690155098428268256059846076666846898033014666868308785912633604394917752821961925603337266372383287133776320708060386975997482134207855289995576806662972222163690747867486636215997795460456056786893230757863043334229113162086815422311176509864011977661127670747100693044912278880446759434383686890264897654696641439295627667403322342422754580481685727713223172059431225046626449610970005809908562574205699027745283430951552396062128141042869504275566421002479963801460145876131535112072363117387762372078117451553035883777637374182904945017919671277413977599337336075549242451035011569753935261859319013644678002614963379883149284849949448368836814309155154731105530641711114359052545471987672437501481522407646051287295914357137048243204356616180794070614273706586667408197843697651801467955163479359080831115816722645204117180448687511636859257038444073803364114989258658685949419906277045675610123743889692219873025012191170827263773059387199785956648342342354280372122516244374848830350842366766200547980662202985885985372551478716083801244679351666226594784562004552509980084758398471178466339917520766779820698247499456918853576454823700028429651335302695635608562179876360142278084302776840007202882744325998464391111744733396127580912900049890952949264877139026531275158579962094255441595041787810898386592874992066040788586959174492280842505050704445992277076901301250109902580967293712499769955582411894134556223395973914070827278263779145847868111616423020822066915649443479618307622506707280777719148157520320007261481411648089844899493585849503287939426542057051040890704598006316427123688101354050393733180409978000278072504485391932662387157774194893087937968305350049207031564069357870332051850029532675461844798088034814019619862150128028205901728647570607312791575078767203275160432771796618512636783038962490918144335242758406302171149465649464401812834660238734630332618510325933211190553359970942071038462260904389589722812080486384373102232354172871710925230828944216758351271023886265761849948577837869950618830974136752181022589568034174781587094205100224844313666072294924398370010174011363979874573785253519820519603017964515140605234845759572382424549855132335532854619026011649641670784955701759782959862341494919845890466078393388968708468687332792429951407662823886143305381463073692797691822563468123525936958264140734664147225333853066936464651028068862114568922858904775006451726290840990674045670890497053928376166444074220040559926592116270049914876030710134617804066242486993518015254875351010854575704157024871473127046942032815898568402398461163127917467887154662005992537989237169954252536102602561126222965000421337287044065374031883921829959372155224821732489633370865374883300236141725035534331103255626458187617386046876624626401759720361455305866393770206948015818554694688924083659333484463437963025951205908735389159761014546812577385449410983554804213707609082592455778855423675775155745817154704711587250006357036584195579153409203375713848519641623396417651764502274559902435467758194034262316076152423428803756684087981559220165905048574554954389128624479731296652133633066494708390255585307729536326864599084590443156885229496043802515163246301512896017612873461335717059927461186147299401076530593047452274745279774420349682488748619875300733082445619673728015087513243008212386522842166602308332957490217878271987582471804032173107862081149845072400674377119017765155733796916230733831984055516293516965172443641022019756762469794874864543984365747322427036650313158249637724434646532856276235802689404771633822710102378465315514625000338721877034368272236625577497111602634033576024278109710741122038025585601479223303876719917161843782136552985241102462401513466408546128098278778637523800173370513626025608029536415226302142724815540183643880711609714327449793061727614867449986086741206489590853792944098488706678806928537598805731449142636240298318567161356338676913314622463169911452471539184136070936484483530437622483234808365497527917473484326000873549881737510061117049607527217155152744515117597441065660488674363948403330094605244832052887270886259215249968252986816955414898630095761187776402171759421984215166995190152665787085401491660618889347214090146708321224250020417904638164148209090370496250295015748733091747896996412736557548492792659261871286449184474980987586004123540812794684256223111897189725083893982183113133227411313216690436717002974272240580913370895065933460223926714601683289571683761210592920155004385692374872979343251392018432942925793252174030401103998398904101121566878617085306970285325773638062531461442699919417765837340505338247262307062168575799185798045683559722301653262231500760113717046959368482367031819508345646178844903578206143632738379572756841731385699450702038657989600100586352692003802461580851529488198345502561539376962262114336653271551839633510966381022533121704406875641999103568548225362422470755527307253604644052783296617856343332046427579548052345443356722162291089700907342955406792061714301078873807576241495817979226387607489204682256938637470697513125020747140827658076321731627756035567052486064914891735295186831853287234745120721383032234616415781338551768435120468011737881947701558263140501483950873833105545204913602493157751511121293626448481992087422259906405475347572429865211684917879205247896297144470225843998877116533486791860875339414145690280239970303541089364651956109804376176495347773929869700555564376881093144193332100674563372612502885454866885229090944488547793295319952312575906821760956582749812009332524335962001813649272654314620903880554268363295687001250070715825987640847261919974701958792994741473237795244797429033559437846494974741000887605586051188544556046765707351092821301440480986994947001813035472436883994500439601852568475287069008142855820657709825262004081930065347963984880825240026427531754044229931505327075674015213926292615019821675607556519066917221608830403801935796181795922088588708620793381972551359514668074770557927123959274863974850381278551932634090584303000694681168453226417166133589068359082911705657872444845181345610664596680578012266603151461235528261758125652994852041480901874766190610130196138066656030866354159407760272499423885530531364607487763670414129629245741605524836241425659638999647394491667648837845377819566299166057647562436469441185984757847684604333797008933787367501751549227302072996659424089498824788841634212281342164403629681872038794838579601621043573997228432727604411062020437391795668245453453373727319239729549129959877402906685182925109374956229310751083081812627075420934461423242119512679902007675667281753449520021116856521841442958491169419511349627621574935114557316117827667591215436053396162451855152392719423417099511223677769438010440515356248651826462804722729124400296512732079779687984030662719409389520444919394048306383996204034160029783308909028940891260749488561257727475095248194315470120656064669318341421197096613495887308982787311937868250761516349742940793360687210230226888363085811683174269941706298808781844118989063474358230232937063064706593305326062466975710070470563462105876663069086106944279032716021192467573580981134800610625977634418467010518650214494823534280236713769173550645186237918212262999990042827040741021170071549359176743782817966841940807485863319486424185605500285682502955481041308601980976292725698910538181410992586680816495917227944530896866833246320044604893268422817043567175193859566059851145785399619578141160166490091482347981144604980975879245486035586946348476346248436989475922740576918352388056320695652905804872453834493774371506572104521675620433619447018569001620369464941632022294494032037966401887594521287141593725962409724843813328102975875374099820326103781534734677463529294218015576580292770362638232998107229115887674142219147440708700813898743737838504803885655635730990303775704349943129554831545025843492488026564537969739647503518921679176226138324813233456104547041132012888338032667838385419364249543536027352080474149104536758577550911689432170450358730618303973027812979692112422926147305661257123208993793074224775958715072028123292722886209057439598144716746007711219216067422028951267202036676134746758374737386427564123145304072090045137506096373811942191864954107164730142151037718116587938612377355489268637255739911616033292345747202345989383153918619917825563440157251764467808116762882830818293596227629329318147573877359775403548102449158463655697600266993007870173347605077957962923914123531853822805971178992711407390081040127188215528531987119949743240054254610333355934928365505346322409085390437552947852517289135108868979320159901206310532633467646980585379143985792176827205570801594887655924152630769798119988597178993874473683534516283667929184656031180409794959383124286621286398331973235225716008712989738146280905059429461398398819706954320426464708639041535986039888052224142195670161756948917826964273826963382778411609089028005312692986999941753823951496344426258868792743395722116833048965135984463511329559782842757991793567078520246220937953023351031433815085958093964513702691537448541232824820708413395688130701166249486497303499737512213362114564544931248783701570559086877905751650865404875950154140788295964232411018839272783131639075393608646165771846750467203761424486281682899967564090849114268348454872142133448026091547334960427531521676831522302058323433858911301840930817828987509814357990619138135358665406166525817244810103623781101663488779724345828811374421251977551059748368502182126315915869585364071488587320906955095794961655868548702832730737278698306935749187709965419468890420575880795075851212180244750674706533754144364574233582349288577415842934489561775173982845355895553575941328492078212356619440295064719713022039924739529977306251988743480569942139959894469542244102402810647347300562548593486894236736287560417038307072034055916050462558818690764893176158145710452240768879609976273760359847649094976415722030890116478356301929255494302004753135107477265938559635995764364746957992546321716666893606094613577148562041087624741721348707467335280960039962425988310424362864094196660698247139701057818380273696068496861849323108212597042894667697003666237562532577390635412591014514549759893666640902040526283635169419079578857956378479462949791728421112849704849938380427033393599802487139454018774398607955413883687587559767739316949139549593922616123667028081356402650362094903560195680299415432276716635724113195103154288221486720118043669128282235166111250910066531078469203252533802715711305832105555088670760354150640779695969482372016355310180069575212303099363434651400250363780467107466486232636865736835142998171527567565537056169693726211527962756979547384219952658034351626777110271073892560059541524920134073219559346900231870899356272195193862137228496266412043891495685529171524354844952166883856126457548885231238282452480937904264843359825970419882600689978753482625392624298347927534978364847672561113278936448156880856038055685844646595259699051092183462308962652826157553321725774883863730047766256996127569565947048640755934485472144483781670754744682214978197207030916049658335733366041371101436054696500883061881515989525731088525967412679503983323981709525035525327816977537638070313369116387995499470665651856169228886287071731442499357446546298218107589701545552536467797585729324532938868576688035404993658970058612873084504382111188153069475642902876484630451875341851514128489423476876739849382600440723918460767529593773190652462194834518905003575301237674345649685662853165492314326175765562213002875807052596518722849272599801024017098179947302832084132507450981399308751875387029253320992544400892748410757863463146579690591338077383975805875034036208160121552752380503398532271583788770869631376639925454008806838289209388882998400285027647156211976873829567297064843602145106534483656555838724458834627891806348313454440662514028535852217649227916946979094606286636491905679312989188454019103693666492309903307823402227951415556398992855872849038586882345353445623355425417554226276309820274600438215171772910965816103588311060373770214166448460065331370745310873225902134179526222003114707199785441836706427207985424223836466321338416303006850241114185995224005539262414564681033200217659599827319967759442480561486295046377222236211422167672259633535541991440951163599547610208055436639829800866820772839540526669559425882528420587206316656017126431028021670775748944451282515436853684704540120463001579583218452839140235401443467172151321620987616183871828542367099236460816911859653219933578295502595383545817690370708576085716523251870509017051641514045288889522669761833690864844046863156263712395614180584289491312331144832180246041124332839649398578797155658908150161422201882621290008066164411924777024987664264532322159139761308290364403109723030354606307330422281043518305898702491744616416867577358371653511244080337140967204580916132535042057428353925008331733183192530069697262877096426833733025211869587887466918447248676986352704723694912233160925296453217966232032309560114715966750260654838462383150599838248564597384053073539530182520004594993995303412175731120126994557766163509850458469410389699728966689869180587846825482342984814069005801628777679870149955323226476873010113779321172345525342017890107591916754323938532926677669918336511524726804947829893024111968884611907277677315745927894793966766908365686546385251758251142370253686979983104065032600589069824282517595733152092793817170529278339260097398627802835293198671568177755992785042401041257342993129213191561475564847594060142690651201604717822125871131054588637160804991393993995959214218959209696058883961816964060792621400590026185327285682686039666610844010832651383139207047974801599243514262297029398829994637619302425042775377114928972637959185754297453001666783918133842931445575445862155451553331918905136257746886561086412700123918871644310905771416496478043749221199109305984963118918176167375421252375274750315433933699460130322045012605073633538776232525546327663117701179324127263621308462906011162970146580800564184772021424428079066768931582138486893037938337573850554430128865461494313659130150670920865050936698359914327716758334367442603449509793560185578958488135279522449986399542694167417296270940186430409619752969466464863349897489776785090715351983111612994815942942600712546496992392974879008581098974172251444535190812699589964993054932455966559633902279680229802624919710560014965322857988869367621018014398463716286397608521923402871159872054438160937940273011603042487835172801088460992921279056924035714769209660925430617538711357800710659753637574965965926481156356647024439031956239587340577612173053431538284538864634555646392588049359205573016321562490936929358601757879441141099861572058355243952593081053718588520326459541854827614988290166369305862530887277928132119507391249395075851358789798877110387615443553875311678651634801239943402574058990675406921098386221730476293596617541486533922369733089039051625725273192906444739689125445213203315251268058239589375240162131669019095356592136068756452479374508175509335511374405557913221043825266005451070523334840747650481542765011741473213526885282568310991289362625559747348901637754804609010866094942973210913734319033666331922989502941768453467117490325193953046477316371542892329873426130349615927251870878939565141427573155772296379964199900980950605961660397886245938752203395000668522449273622154657807362627985403804415759820782181751964278051166166731595622707798492781514774712812786284916004681264159325683531983524630488749612717147792743125535785384248019282951286686849795598476851366203575751681208556613801098335861940326617408738094491571382101032834681010216809255109963514579361533559566851944728389408520315401592439019798581915126082740373789721134768535280180870718762952138926739725759451125466995760963608271610331959209489111671912190597323195386635996787259666197709859587302115610280382207758184656527482862354569094970987417955528950203824950266402396311687082165150102023127476599106109419028545542067147039000851383781955285790424185127290842895557332914098063622890144266702729974478088084267432641247950240542767116830753209199265533528983296789794350525900946955287232684546823648674894501698072242268224317830524076938191373915321939556030824203931146656984309993783098511247692625733013829214085335651525805714812423474005394575145043643408237705459089405740944025857756564987176917367289023558767589997495852509026549460654324650363777547582410646564060607099553680414115820667443996375785717433198955963657311817527683735794897577387482323043140452683667438949182216124756527698340887378618424979385381852846313302201665289025142065900756723501413535918856902719882280530943154029690636463655165757082440866645873137731089192161503384787352923879187088057147691093940650573012379673143661506534588859680702666919106547548614334391840007085186872469378944989164846872778511257328100766836516660875332844222798742688905444976166272786703724160593309637151949619572824964703896811833042923120977484190508539955808996453258187387622096500008520117067776113788249911236772491291939634414750613152536202721777841846912840792219749633159889400762429336705296583082145529639735472692753790060472784964123196801953330172463467536413915778778487547345819035243542734950891678385843602706357531566333114830027457371154646624860738187093439959576287244047451154776092933987540371316168115128902840657221206526951782844326985276728026960043346013557358803807150282633970961209082793403088141297449456346537090735090566428141373704684806650087173906932162225361258705062768783414143245974214017763509532834949813003819963105147460884047569535655147786659972616599856099208233317486568950314943437724037148530026725575872618503866456610956549189134349697395415074244969443067814033665277946141783645193324779923583399552711762174370462289802685845536264270838646611479532090534301706950104376764249593861545846269558751821572399347235509517341498123046832231210029000125506016147764359594845593836144131528582604461903761276757035967661215438375789503950059144758546759153429917484692521630505839295053634736081990435923166358872465380904915911653430181314419213129546036650092613604341386629309778701449841656707167198977105228727399779889260834996325775108670574014235893423766353478404638940371488446953548661784148613951198966219642819639271056731318538543117099564965115694249428833961782092106183196981173232038759068669095200623977279032698156645944218718605176546170346712677738901993771942880326639515906394995548787498155454328735752078383677854253721065986136054749768881103394062429344594450769365462097852914524930153947916487572060416446537918729062071838318067769628816979259578047347031888309459788089022320659659351146533233295438142475526831864249807287407069650379881939383144714386799411758610861095988779417643074138031838725749557094770828249987490570314329778424002769321644906024041717247565235998194409630086545727257688165229874466811319713084554166961080289084803121468272709008644744370016277379462438770456824495930679568676942329480134711974090932957820759794365350157777159815347486842284696654952764834332513335325581041140430420650884869023195386503052768121870163581692446546133449943248646330055860088436230513104516745876766461925252732317144287425310051351668327245128539394549122883271612628497758575250959900049274056226287963179094672695524165726921048094895048546408321077518731825143199674409344576463636086433922013322930046132542912194464416855624217927243655880244195238318079301149025676239540827317211205793710443670961113050796610700285469679279385338870697276280329006346502353039325828206578868131184181258336101071493601806284739310839626748758699947869502271409713825238312966410631780615437077376959731372000444021558693006812143529567557457555154265604233852120878037909980138312141770095558131727253614350075279880687072443533842209273037554123071339213763468399553193986927765281070101792960455308833591416838062239550052155078662607245767458030992238149398411562823688362855356033671952583848013754808188005120714207994520703167017432150852369380151850907836585711979025164185004468194522541837222335546916497309213424578092007410164232855840795567433884059586002107153574065441538459373303345684856195121265373574956793240811718306881882627698021281468837850587643489562543904730020604430134264032094955805824699906960524982797675166798762944545688095789048332745546770362936499891008890463883263394822318653807587644014927522842305335124869300277437216690837863149296846371345639527719981733831104411897628228000682247469016886875932787024850928058873292933090268167171390386422256317431376366402724589640303637299132076946753534503856194791312633896760786153799256329972243807850422954372049711965326832598023353068971908540029526805010315723340436795840576108840699987058767489730566202329595534908227885282755443317305837667181797635827052184980951480464374834347703062779700678465365696041822501123308119910970815761781840945715535045415649048260123055109544645574204072140478898825174474412854014492344356156537856012277403113671025180096288768268586222542856398600576559305343156196281869783125146997362512328251876249882784042107292508208693207462073212765841671438813225270931724788844750193956224952734158715737776497510777966910680737032510794783558726968372753767760907137040315697320898168891580790643845643129258483313340296544756357836447850309479092051625583929657950123717596417626251982982097590658221374056639323839815343500952173284346069579385974509891946031626837843491173239879696921079369150869558575014828397835760471639975398110617201865707114659488318918912714010569985008795877810150653758982745354194135104997990978910836170591773882988987614162526915817656593658763792166360311801306168545755830628004666576049799547535016019981492640713969129780478405521003908477439601136378513967740948363071369526272731705404092292256516521920032185345170894258775779686128751350326086221687279079310905725287737127754089705863392959490396764407347856332733221141750233411139056520751420303239965739554945078196438854299989998301085794116777759168108226160312807618493598345221686896859800851818271361557801112879299270949780700594055456129303633146820716829112527118062381357748746053407999909814836445578865491090159657540769667479925955771108430987837839663344409300518034491229423066536381515384426482826217278510859561038984371531960709475709305403009801873129022632330388038191333971590595970131662631949227492655229553779880628896219470246008148116732549434604976039088450431454492436444596653353266769272479196951769769794947136759402166160853740646640868785143400853219948710252093502688819987743136538820805087079436245198056432469958960782316281306667978624477682710010449885583511482547165700675813060282766407566294604257488308315830778741033296908229120549858335134104003254104984387571131710085340174698896868611042740560476037337596906620450054854198588109356329170306844137586545507507950922359372136412746324922910544897269809307916868082665053806017159067112457940659120189827333519823452760071659902675508990160146237607868473248604172729499171973046108014678071697418413567803119614255597265843267957448395201541142110162602005420012214699397270069171349633205707060058549282466046322646980306809974170382435411291152591066463222241099839026112904080255067748171658152778543856189973498043670206974276266382372983875138626627105744927809190672806206578760393919901534943452856533290210557764811173216149237321935896654194505147320608716260028012084722072898812844451184084984764716856356692032918305583100363391086731181120886050443175225809287640345265741449579748661352198162347996028652377522067343370314272226065173607443814864144382008506028736936627107664120791553650473259944724283277677184530656289402785250422706882492136358833151643596424189586137946171252472411739208873329511995687632216402054030835504609827800496535418330922934917097406423749885963252050566931635993567838680943156611050266826598796319458484117556964775428005735867662267818721273352398608859440902260039794847312691721907972122626333881540102913267254111632204299326072926309331849803366114855258665469075253313823183645801353942106200288843052043674550650224053575956427605764067135884641946949985490037150234426389989132367316763009095530528064652107932773856330426026342376672050341795125628399314115249650885049651962009799256805500376581286356728774392447811434700864319732567445076746557727523078736834140631111533424013796990391498591381784212896016106491179676120071007085270206468222582299256727312221243736238076793190627081442715426676837532559116553593272053515667576376579195868771205052989785861765137395464392288499685825335786698774174777065178458581650380653211727704890187149503881909144368542089637826321837643862535931101485217069278513982930131791215465383949313887920784692244629211761431282454734441673164623341725544255678437238073157224402501500782043783719336251039613669557088528825944745605122831650702990537224525165909204784815974468907531022230303970686810422900740433001828340970514232378695430450928010838482930165089474214423928694792003663915587019761384572268396881662849721971631649394774347427842221947063426249441105752744588733779677718689886381888231540969572851756136065050514781496827132813634628007031054583468000683761888194688163234916616244320520376880258646871887949466580980805436747516793592476176366437068369131347533810457929620139542957617466706216122027819338784340320589428578258105702437522578756899288649173109755382327766693170561081604788088552041426752094806677816597705051790335705324814929550160183992421282352701766054312682489456496208321570264600996200357449318715303089597709301722833544843221130034163436811077955981633496217306592518926035891159063660731967547607981606848430202747601985913986070339361376036413303584625715114666815208980127576267755638159183792707009099881375860954068176899437985576481445236236078485242259621442115649707080741146361543166098317398557245977855483180657276629500991587209147468621620286174851692170285675532602795984818853912488448295831971409899323823359263653382005508354569957242979731219119264508758110122085101104251874076950680852930321875674715734081659322178469846224313595271803775424931879741886533845928248381338910121432033040551421743118793307660306427366233716203702604109493950539085499975703789931519939450703503243823963796395899144525202861647163336406181148693603688222149567145186124382269319731272409406699638567461336384632375929907850948197904635476134070784029789418864840518865524937308544955919844691797953029230977364516439750473858748552652679530134076739522888785413710546740841824148745759656605011307365608570744714719488092148649353702135735820101627674893084559689956440040546694402887629118660763831066144814954952127687391119017555246221234619164290374420443328046738797312466544492714400604683566295488473934728071054744769231898031357044340999914928291417829002971873534304865279929484033125083604401398963655811231199501774381681988133640857988765334790949527265993809243998410925265016359217141719740198580317986669639823245100887241809148242876300846760603253862940543045598141906650896283129613009874186956778254477161293642735372783410041277253850824626490930312930793476486294499713561524446861430268889163087447512180611830413746551796746378753913480382718196315296857204070327383446211159620013912163165334652020012562230164445321238050515755086055472133446762279292765433472565781173646061874664309709459991342509437040797197560696336852798860918801906920018815601076570544606427327139288681840417209813631922507292777255675127423984699406884544085867261665024639736554179904171090756740507162892525185248712095748012311705843299499085531946447499441173139917902495901405946635662791988935272193264680628641982201882714296257593440404005037193121553671497636771732809786427644394651768511259033068596114974652035217621328866097042269581366583607315217882216388675510260683753599480125892346718201513370140650335297158971299426248838789666631361261527228744502593522870832550883215733840615660191244717751663808149435939119740927889495360446416482609952973674353640688430642882497320153658537061645244663979229792246814450326139945751740905031057376109609600245117270615839209737283425755406623784642613128572076034101884481249894392994544087310404327324862330528722743121541021340456425710265138330294514886804397613164597494816063113806088780384196612191015265778461347887897060926050339356009144618545446861056543260963840224027037907502537626311713087867799681164079079756634653196385694374782452852194700953460290603694084589144266468284396371506873620099457521702299800152675259361760576865936663637797469797554889665818560330747464080112377744480519981541921858984744751412455631194571137181660779057978191739721269314168571482381551112658344393799635277265609835467465974903104941184637068877709756296156084765153852918586331391748657510422861673788666695506061311561809156065954895180468310725722002051152143368030668873234948687460841523098463913525240738044445961916422538920182051080364525124943608232087273492281739606223541963720620354126960277353102740072222769623287244671659569270850121749232616719367049082846997111114910152960379860286440426327657194004389434455337653970790093522398278314567879300599782265714080299222007242254023382233132673279996072607894618116808930618690707397206193166665358845983804280963015028346800921953105409997534794783955014689913511842364919563187870906589904909902532668665678687774906352886671224296768605959038723849160848572107398967555309465033676585848678051777724606948665742835173715503098881314001812978510598520887779181063973592666251154302043922601489069693979855899464836977104997701175753660404276821359187672934366204948862895535666849566040778156001432541911133022234985470770775868400649734426693713594725188392642701172918436270432137282377304859802172619789527229233232458724997482607925982422611762751380353402288169055610637395905141200749158798013810450947158559568005914811135174700192482214783324115135136158891143729866857814049872645002712397855902511378057112636443049864450836779510215346256910966793310630725857279492380804417700682990388362429130424952380017457541017973352935889969960362391913043224427641823997822011249202519292687676333271964985489317084833356378814616061745341726392968380343765692015978978739966882598878414570182501567676869429575069228580210619524724026862639045998017655341648157413866207687552066314745526167894425589096524796315941576045626210875155758235169887088142009683365337199544848733671344130093800828792126390607997319023797546169496158239160136419440297761277519268560239463215955806358570174657426208791517921601374072508479496868194876319242153795734838097591682005485694725993840843280343712425086391940026232859531268696226604476338957833194459884903976292968420973577393017225523044378349766170981244012501019289699958288687172974075466281799682089394438485430538887671250992701130504376940063645978183460358334194905810424804533184950500476383688273557988701972373686052941295396115717378704332634907143652301573340553176354281446070546064526207772354052629066499962178192594430939009447281143858603623153539910507262728830569638285757592256913367199716476920871413046148958305110392475291379623820367376191430280903441032351574370307963175489399777148217436872899078940514076327681752435165347798479939870653248446266508090317398997008315072316408228432038325216816408786441696738776614970465091240466221580831610118408239479242191079520724453194360785322671043111703977834300566003522262768227248369770124029804922600962959462159796181103186916816874338208769746286080757501085254907959151333579949089914157421807232752414178701365215763454768629807689542006999091809143011836142781573773097753811245876210596122575024547732028099450272696575368265083287656867852711001361767143066163329601351666157958568129943836297106493149353669694242515496375207930682585391484614640005484015846586371813838944766239771462722880810447256190989003069173731171792837887132132418409166631945350152774586649375056595411471114993778991417967478695186611126066997161507219641070416205400308205438059513638336873864060173781048309740072631628965090023065087942962218752319213743169680587618012879195872088549213126924252089238765595758889538850255744335675497789346429972975293843172710113980644227390763355685300620711970893047887550485613412918905117514991941996253774532098263427561856122851321161897823426535325147624600516097900785947877599423085298539909952358359120948855216579469772277075419411367667830517742626252193385888738851546890902621912769930945713497464574698017462574573615456621954094374824562197021956693675893099824411158632503944857463254433426339168473967063613774668478337973672975309865173589694750626967453833911374940099498349229760467737964926944774639631428967982765011308254299977890780198295050201726981145919731394922020515621716790799120921228035303952703819339917002705716889572739680061986296278116628606280487407444188713777612330124435481021752484762229293969603286038697535622408857485899782133306453127432146088719902355544323218867942789185011330033760169548005168954205591430531031192741185454672072173303107041243933297620914702345854263950142949182388048091001234255210055594333957912559809579166490209587098772203513536683614686072402616756785024551311332787534504350943876648271302084092920358108880983414771842145043673955166538001854409343624690237506565574917982610110426920335052660177582165438285395823931691793941996157571623080507642763025579539659416517423330379158942232941698359705874849428769494269184810734563072484776486392591378527750078354187004038394624151789857925463958947965488267743683411936454803508451255026606375768502355383834676541257506244870944807672167385901172094161980869538898170653868421261159349024430899681457164367110985008907657161281543544531988364908403955103620522901809057213230226020929160349167010299217635595718242587884234502174767378572881494537505269370451334014053441762220192159784491460778348500698321691165376479331461802797388590090827967472910092882499026878651057295057374422328234804504820623932102084599746446363315658289420484770130336829161109203651475654515408257245780508071948953279866559411173760149378539215383363867867024147953903118335839695041619478036106438258300159796465594517079047910808591995402939526430995833893386239863100134577225257225760337496918410668007881139507980736859545989086461462780717540391971196274703712979087905496241296850333366841527834888479572978862085963275209854810055762337271068211754399421996313866630712516705439128545362383509681630410331061592604652291257640444636006168779010082411266191133069386327225161785046053497735195045138221186427847461262562169016504185548727858409800265515309202820592535359948955135283607731292768493665811029158423820007599236066921277298555680753567071073773548049009720606866459306789292855040020482229593893780384498845784515046435455851099630821607569701317116537439670728290739640527832988825617328951381922276206115126305999152289270790679253269679138343727839187465857752319426848550514189342502457148067707749015330734838256200020808449967591191329356658785882766480827433008115323363862344128767602268164562713952925479838349173179850397681983994241156072997396414600345019960011272708843980229889702111020662783627867742928990013961222994846446958932626727501475867444729902895549710015010407730241580069029662500314717522114381576850411003552932226693502637999586711207128485576029161272325266637116664925846097802689589009765848994158397600321167897936830261275945509196956524359711807740118155636863680878878667506328146574606837010419968689451906095357839012090641172133375364071645969385119564879527581872533718387904735834282307779462342291135353551911892388317639434812445737398791517482500186332573909378757773932223001071408447923890786489730102634696812262170422496653397976327456240029866077514157754592384102490183745332687482190311304676277908589317022569420232028876154860856220367309892040404228130962457839784836505604654088193155372350734273922077284423485167543573397273776807647685300273618048349527280371165105230327488025374796798751492806606876090077088244586501672544598942646066251224866646425019360897349274098549115305443465368959144580294684272955891407575598685750672420120726506075427035367567094871123129966750790922956350787040721959269476008060504103230565004060003446042904352304533038673118198468163035657669431603090204678119663217991808100778980712544642600638604996306855773496739073874400453560085493119219814271625431022621832096873729033578676710772084208856471239930890230996230194991941408126673539922734479680415233441217044080915069124659873181206202069950069094395428292586727327735994309354220799548661824702634789582323854093794847625626076563675023781807128546119854822262135003907534068163167193735439571803907602171901658877522854126326214808724047143219809525748273264864691990313517564968218296552134554775646042534337930177430980658481828840556935170407350297310772143632823337387848471036536513596699030706043173799204163514738610134079565943962751547053157355186461700631975864312179247787797366104578979580404245957869702866820014631227769288793257026903274673842994375236598381019934083585714925509113822148419155352490477499920665978978471592244947132615989948311208914014370959100345911840388451164842815442382157965948145213983145814982277198183053603199040105480148503419769343093098173182482926787621427233024384254523424457570991165228023418810600770758599178940504461276782927033566647761023697125515109272931726154157780159495301654222978371509205897566643186461934924753786102219787059895595378718754369037154194104942209172651429773605810486140729654126324224691359250795793554637206639523749613111052679274325897320590510338190062176947707193178672905927903415535475822742645832416290428404358079706701921459406144672985843736137694609251178473831892036463875005705486039848045876639673141151741225861653628914122880074973071947519221615004718400997291514090460802460346500968040981505446073157743557269104575204050299368042306990430926770267147339546452969019399890304034384840096247563030487644301851133774912161425489533275919780444479040134417252991099640678017022839446029221476802594093842927997529588155789875104570076366703480283026436044266243813944155847844190321942535852092213503231464120568942471032029737366126075879691232540079747844545688030301720569704614199524718036383830938047907470719507685677420979301135314439773226990779099421581373051086719672135730472012320188329947529983199471561044093556168825995992162108406772755716031252472248182159390831366743869779793158310596777183526642871211173928839282261654549019558751472394394128769225332736809555956601396863297340574124015555361481685885687639178194604890092904127912115987123964333311108464774323886445330656065242107619513199901883008919133375924607704704925242390085364583074770189309725616676605767727936217009617913533518189591254048717101492225002792457875647637870701894479646212347211533386981135678431549840659302429956747780294823844726741543700567514351940466315151250710453373438497058275822349225082221790660487452428644884046862487353446669316913777027693917535663543523299135373802885690734169828581343361054135884418101638797008562747252718648725537232057807890009642827320946736244233056022319903039910523236684413135194535570891731279357106819086248968487764534510371399085117244826926428635767236731842231804848607991724380786679183311137924213827795138777027915278938860893425583885176828725608621261283779269450429961403636518556687816641398404540222298441908074925501852979653678602303183473815406346732080262750521311167293413426737763902867862301550014880248737694758275316138759882275753419235912852337461699812846515781955940381477818847714583680317291098166976545182551000599936445524749503693249075873481890747452257944117426173802841509442442741958105207534933481946337149015823019602895902010227478049460038256544575570275555796157658794318517663765962964458644242217763968934017398924580825975541711535228030197310390473094275225024792020282794077496251871330651110060601367471163445846535275283366229294244554368340546559082890837057321114461753932200814030945351351239190317393887009999165511923683545012627289076781566232987153686471166753276187567796084967674260662705043871131965504563681360306614154339729874392857652209188228246500643243124010516311895723123734544312412696094758628029175072983719677924561985756893155750992465419972929352631721587612506817762480004462663328721830192742702775306557124757589428195537328446442404514505006002443835694589600372805182498614821874474876931173743573565856040369055427082176104310822858312229821043453207050575023530351505648505759819243782980764494049764185995899750168300468864868691469136319695751444203478864311507146646699159653057835982339163692645769350647695153446877034112011009713072604211647312256016655845190304900859175573598462632032701028773058859777498587487803889215555338251090176736303375069373209780433008600472077586801517874593650398185520614763756982874366775621020563831873564722761953648189291375221279681957974913655282173035500330268671825119036707724802270018219170186470369141395767749348183982698943157664385765787843795110870175606504425781422792947123366624538620751736616402199178701683737878129837255101911361821318149316906612827242297627582809641320693645349028824580448028459593528499621064175110009176781701440076723937594023768091536953729977006775710506409603605639434170713755309149533639738275291556811599025004490983116150286259066902253882636700520641736475699890643016840168754845661125019103564147694636633632299647122600080919693859547608569723156128806612716216265759061049258489484813162102997323533871216771966901099366385033325757263257044478398093493197970452605448126501960355221388018672686846323236350895505709600988503463200150289185229929347893193592216487067040100225151842383079943185746400962491660360193978961072372840734702936401755570299419095942743625562410210830661353661629666986077047629151500296870840226426670736296380367140792000444982929302835000739254039808644160183432857478831966400734132673920076814320197192833401499109333905920970731195481590474070661761514653717341885570437986576916089684073173491420719202317156348142029454864109025429709352042698852977236619134546265081227624714136025646596450643244871344943951745385542510299873596075157331119912634712631460153215703682164254925732851985193261632061700816444048883178721551122068171801412305060083800118793779388660211248278392277792111580712355793447638148268472735986340924476009777806094293480574460472616980092353303752389199279310640381870732420893259148103096528292059552379352661164354726055988706109682328526250954028200253527286608341616291118327091733961991696912006256993380375069136192519651301602752665150323936144365833376539221871413604815826812425617295202686729909501285527308691805520896111634520684710094033208903222362628848118804453675080634288802120614860829132402008218044007079790404173676501202647526801254428576771935101638416282727249142811404496081704539858993079018231216742312958808553680529581304256668037036888734247240784346330146507224709666513666477935746443661697384963714834196121858803785640062593964414018247582448335877511625784438695875560978211912643915440786195256929011845828734147954698797180124494782235202189860186392598613114900506028574760011457982475321277886718116236059980259151944355374611857421554266044880670872717625693763930398877512121199853435424729894443541474623341576040543255702719597203704637444219846297755387343906291972170373091559104741226792278321874171749230303251605275626000729994132999258427571656358668297705111382468984696514453710974667991564992625583334729724379897237956727172537642933898061948627163869452945859043952540261655239970734972574297195998059984197896799080733841691595870070998939920687033897757568226785860395924287392624923505791017418472451806654396321283596404720803008867610302064766154880630175511974659006296570781545692424539917762976622947411652544569009676221326743782002271507473246724142702170788197966330713900874915486284851080385711683778167604921251087359695486494978357204308788133441345567265896994948083669530984537041484155922112495217429738307240570815991293383365555913865196185971668778394307602769899704419702280942982988054412260493856909409997377594768905656171813068895219851349224766494372993046786358347445416850274831781521302260051652307156995815706986734988252612569666200926578708090476961138605804163509316723343845659008701267641672911423162117167041757989392580719754716765700494984277838558504241735792677946850257912320589351322826378522965570369248088798286876027848092196517831023265588442866187345755319234489058228358311082694022528021301152228408415455136179081296404478869709554300124491573305926231619928543904696642872121533584285749429598706475083850107091031981492295897173538712056214834472633912596025086500970889818998344986646542171270153070439486548639427564503418062547711949926406551690370808027144141148505130992204618384203343205405604990301903338712331635318753156605087827987816762970298244218356785489376823461773763387585288229123816371366280189627853830917114461854996862965046115226892568614298631077989042976412150434919433999499433338829811044113784944276053559780479116125163332864383749387074336885939861770791157125396375498640197504995322563645274075231167761615780401197097459230240131916086849138422318016949431016779288276295545359466965430473663612266481651209540514825921367480516631327856463831892651445738514108590297646453407432293092849372668583880639357234596813224765113516051382160878129012457322273442659334522883950796102341679735559079532346041217840657131093400256318172712123638906507631822120001241891298617385094124051183284263857518831176000428463535411455103254534358702161226094896727169486209693632114745852524890329617814028106112202149032001667728212012524410294275331778622879677817788780668198806389218015530682504646379389542226360861133901515405501650132185849146678531332993448422696155075820037487415020055820121787145154727517753645660038918173595785606281799224679999403640653641709946672941396882781425593949032404817989827586657402455891606877365394245311964339160110178787219656148198110451981379453682994221918489692914271372129864429620607495707544419103298366456637601770141309312068867030139389516122364787995748513022168347471992219743549212565072701963307505961808217869370975534787516047833910992427015213079209269451793969926291843378428900435760104807815961120672319816452439428074070615126647174301024998360639539422768824473855449998923145712608663843284801490427739778439244365673056279957874949387811982827298002809860482090176287620093428143759071878990745254259942595928935037013774446896340942945087556235615849858192419374730630785102381991038951139117655337561755967195565489738916405865187806014444402039474742667070843806470400949349469216901430158371434003912037435764229493907717533489129687739104862192390593551147720430501072623496803397726960611294516690876336180342009241983417765024543410265966090791837261386279503845686576184512763338796330381043006503410222326057744520768702039229917097075545584877223254254650101047033720778718588439864159276569977118099312833830460980405805133236955982311082410316258098439451609975924016047092089436507434522814427826647704453635918531522156687558968197660313012246965525033404052767662888328914435881679931713079079721347414475209210145716015712340664868410938823342692962481655199929565824204187562045934849466396985341924855093080759835481390203867511880438043495352581707687775750025586290829862015307581226806478167021926312169905494355547147580760492723572893501749266122001776606635284149380903285982722182629376752305696346437753891562416405058640844563257072524019590200857990681953837151503517454633508931897290651123495709403931319375586216074896496681148254774666574178582814888692988210017399191090900707688355966832106610462051562733637003983814110557998751206513733672058301143122913636739566882190102962100387350843049529115363683248043550885779380255139699423091495775980648896461808234830533811365877135718237860847520305380500749949786446428452686443794205641687403324526613201700661615442759218996605979690338613997758181591758663723177274347462315462897610805623642413750549525634421393700367074778784997936369304415344243224318092459258759880391118811507096096351531622292197906094533118140699032673622113638540215972298978260397251521868329877025286451922312785267287945490669900995354905470585186374442867675630200282984663158400888566652494782553705184158642978570760214124983982083471931014513328812928432497659367577582673852219575053688942588573809577209774066604763828063154545320190989466260690409055759386563006597883626064720148249728475379315528230886302949987632932882425744982849843273064672323219104418564775560007963124024961925618300600050965494497158743261207963317098769287070706228162272692736793533428466760276788365814535223888179324450330943631583928687447140368340006662569826429403480852089362144921329876809417884292445529992307745776379297782348603340231145150718939484093629606669701638744419564504676658708095116222402370383624372161260953081358526276560091491420261947912007842190897439986742139183744458480533686231312190649103690831341159249702536755569052173429400444026295605243999837332047162936199680527970388038879322018098716232393556025351023103602856229012343005004210791363416982617580692541635282508562915233341103207352547458497781655730647134831973237249286206859611180580055208495159345891418246800142273538189607780107790586806379551283819114949688008838025815309689138084741265738480612737298967606138292622589151769520634960460293872124317189502421782311763824252223918616333584690814198898648514649743763206516613803643632208196605668522225849188157867448297249428624667015177182076605849508295408789909069461451435651915921008928699236293848217377367927859372680918961732044763848812238905532893520817646048081190503399703500843558107741497876894634606180911186100375075509422719487862063349962347437282301250007556495748986474380586229870737709068528809170235949321539196364876371065780087701467354330584121951352851150398592980868870045542676985723313204345561914302701551140941305728640608911163926221298218531161074838150041484821764977203603065391611239362014815127100807388340793136838814594418484930904091668107346566151876873467288280802911948512510865561376821339969438378275669163646881911416757768791395502104413670535269178021402296855822111771724486422892712572165289564569609880640498899251614940054890722332473405797450366834650084684252851225225364348225615660937056488840892118119036899522704205721730224636211870205030143560631388347075955453935112400092681667590875596425034640866464435058381265910247997508081447209332552942377645975111977300778368834630682096653438136007204555452403200816376512614029874615444298043840875599562522583013148475252980060677127152630610561338378183666517175229201154187856652832288744319169756265867575753066305791392225770945675227198786398598039910548227339891142444231964477775689273984795787852583202083841394448824636447007795256810089548154903028290678003429836279803522580518307104139726558312560993639955151076764358310447558569600615456649825888458962987509123288794001593009325033092371726361752234310235655587703738440014313209691742667212916031364560701331178712493139506252202931901748636371990415252283467149280657033718815589247372861514554127624142827724637182856797236767802090959322309497343307981754320956454652660664920791685448644704167069476446248626940965377460023562427878178290896362523383879659285662131290512986490950285218845223748942139264423210138044506897811066132066846019444342770339060886724675869465141643650366060211906807277305482446424536100491323387514408561361370070849136948634936348132842536454167828072537601567576769711586217782946953420091914216499540234018555482213150106413341254813711529793664132935854482262205605940455086306629099646151559213230946504133226739079682477101379958409509428769518791129599103307551686398859882886277208711868322559625257304221927539502836281222778801342802454777629083568250306229994026634757596480411729654905463321561018808275587856117762140860557185666433890858602774672547975374836983227209965511685693066993021963519964910179425903888462298927661750312334097785417312354088500870039310870037305819745049208336337116348280948202744220588640914906224398909491848263091681788120402457552462481629940112223961435876924223428533208232952665976056639940444426164563844210142256005003793600224993665634662609137289946421349458523293973126828866877676973172725301587453803369791342617606474312535531078357615299119858727103573529837648157689380323563761106782364722651908741286724224279888888148763479684773862114078514551310070850637551471441128394763522287708760463019873108183577319549554108452177373567345614115791994624094218408381787404351220345415087258699826702143800885732209425012174314839278396184680080228742184431520541302394995317775285196706012966768076489859342259230311269473900141930415136714530064309495452803236135742515737737692601413871988134464677966225386042928532055441585226792904762367096317773425132545260234641107187212580124241462495913176886221524829543035385141861511441469083022813428226406125946557359551201615853448092593022711330564164432590716046970647755410180344925283718834860566406014659432813016147987722702563727538800626475268114344411205898851270760788313134320891534573599314786130746748393582866174023392151350728262301255544519279563393091782817268215415654757574636075805403801037498865699768731769684667419183221989109975166731718272797917564678025963671384649767482847866679525225690196432324436913773893741381187063008563765979024731494005074925204628605774881093289037999229820251951911126137813676723050359391006972665152170730107567600901879908887151644245681172624807543870331757076821586099511590711478083182678993068456027996668781573093095376718117290835731888217404912531211522100272141957040766875046269889177103126795190802423070376850008140463772752288063478387665882050778879285940500042047491133556332621250173481765525552828191096913584732753489381370260470928226540084392653463263087154126256509920426303327525511032823393330099297518647074194754087911753085312450354741111080568942132258139465695360350027990882524207175739638959923440808901037909033999807663516450904205192774689465030542330593201978818961755456268727848197596299418390892421263385186844930023808089186925953428203124496792173833335109026891386755692073669999888305351674665460310978437986482324414125847367055568967967903178627023412589018440430801949038549231960375093770990269127801994577637810100913175200423701189016678191490431881336106168120032194702444050490345936001648076961267522941733426859502644596735954643622200521885312515591539708301996833423359756078963865070659393791570143814681164862041093719223737017351691470930059980421795391880822568845349491793822773621803187090767418913264635815211167176910950594234865230096999966942407086271718221224054431540618448125614141127488336157913628259702566986231950668333263139029241969971515629830406796180019734707300940238868505269388851039951698311009007825456324120880403874458577292813340679971254833460314806781090545845715906367752649169768289651867199780578628284403072053845106902816899453393146466464928109911447925493564903967428449539427730142902828193879455821746181988213196107454935349107271601512540480267278497597657326304091388523968077327661226519400151964121775613277307301928547650999801693532298939614362881715547286401713686805898334918278059524611426477408382697985734296929306392829253573717384156144073747598339121417422663464542766713443514132978014586637242775028078350573678696208767013836250155058737455124233648439806643412132830799855259845609794453124441467491029841257453192574819187597211186330451768329115557224520795754814317281984411759633894196528531105125325430956038198402863523472932016247050264567699898486263753801666234811787974517989919458534047687882890129456307670137050216550356484296189940637432556592083481905830600315457478298861497533306788031964498089685781114729268341076587804579391364995868819706838076522285660807018452241366888241448744287311518082464349268864582458522404527693957333201371466801615742879272782716178644902411937789707484128181043836906870176857411510451207788674185380962289560970160533444936988251246856546495149879226605267045228889905025307977283279689819163290975140391232868020163225537529789145873987907254147427134537210364875656864838202216421730571980427927425710971466821004782624249001790697304412684217485553781612057269779639142144901187827557904364653679594541023127630182178710934070775308493641191451623580068682081868903808947162799141274285951186298709217442762542040254367649026626349585959768167076299615244973933078063218799734691138375989251963539752425144943016223031682315204620999960334258947393833092913323963247753243020189106957638343213085820250407646768520353598164859567983737662788604670814785929536431228038228066850724646367641451978917637806170436236966318152412079416209830164271118160836386725625762984462802429543959607004464982001717472021605445489549384361389349698942478364083789954281593663239441141665662977644688652107080946516819079176634028709988478460654911414063475971950691410307471099278654510299051478127587282093248603023677563713802751037474608939993028490992543026600564706438820801934892573206133029317686830263343617489788580496324584309388677728575050940145443909842065968136937468984767987849205175813084372539251387157172785292306214320609551211789415753587173077193598531709621361460537175125275365362145805838542131369869636858335243159791444961029713160248440796568545708952192758105478916666297421062715494852430756270313457627208951303131959228902937561191300039193367505312150432341254305629162359695769205271688266073120785183177103103174188352141115958194867399269134899746589733595748700747275396051720238992289726232566976975517874727983201248417787583739350406005659841819275830829006129812764291941986819203805992015129762455309521277679569468523568235844620494159237224730724615449740207219725999648262550434105870261863481146228079084632586104197514065363494967850453761219017208054181789039406585225259926454442884895110447986786565158135321304575389532220096067830347622136134992753737816566320670299599677411798849084281015702552246692971709847336360297125891304030810765126817914572827964897218960833688831938070045170554832950868560447246247547625720774468260928583160794849444927825237353189139063944160228739319727379935666766064373032185027379177899337208013249663343613120217263590418301619969729008147867133933108923463333082439931415449781391431930509596168936314784295682818155523529971471433426389299611077171962033449177183263604658851814647237176378555485382845494325710262902525312534229961269732640151188300121115884058760649808291841571478033835137240762547925043899395711056650006279927341873369850252979941626053975885551074532847804751991123564528379499642341042609505052748607302927850799073011461701165235514780147680325032950695470502085373930467106714391908172517895921180968020097080483083272169625258303419240653337461898834781692829437064704115882234573728371602087097826707872629498195953218513927715280198534302177023388931635614874309671229372617922389054130251890996647029833784172567391311221740025035788463994535596940625672399265913056797964167635190025111088949964981573745641734146280809322663472695283019433621053579176031163539583560735351314929412376194857726204205378218062850545741859039355329737675639150516198765929667607467482775097410646385497709674275653040971645179952780475800315173433264520570157220915230416139659870659704334159874933419151562995941430971983014832068770938152565759313672156041666111314303936715926787618746721207042031473891027376060219494185393337284123139915055549247887857690798779462850306060098421362338753248121230806570548551241290738637323916385728292861264653671788338856849723936600928507550485823291632737444086489849278694810797143927577823538949780763589437031351812358120253191696664653248892363007074575494563240948878319343635416695575479643878046010868752257701933512400686549688307133876444467615501914195618390460438508354539018628686681060933283324570931152665291973246361362278673205394667327093862316015331919273794386345175614813228477624263332249662323079562968595096518881155933572979444831372517981988463878858693364077696911172003440301496738414546331476314878265451908299476785610216430987674206443940334926089731255513559501405005015589714162773445010582632726392687163365765172233923922568630765232974765292266335721388804168386805361337544934183068467194338292429757359973044046003530781077910197252507790862329638935292687623351035960173065093614764550792214733223858052366304268970356925095831843770064829001929903452991449162196904857698238645777765223006465726616869433632615322955040289989454182195661674606535449235819566580867164934442709746763919739434676396220904597059386379049653824136460790044663028800477108765604765800033159520400231505067310744952917054782065189851646680670856908270767446233145504908978961675550282657739928772390778065018026899958694173041096730507637331769378954502500276720859768042081417835285741039167071028056869038742597044015459212305249728296258065590058770016426911794064570688989571604221035633580558747063308718646116089508742526034474186178627228705862003550483127229872880997049987605408986574474259365281860313239560758681075120950816012948486580386043727163655592334705512204556498660896300115908816065204943381961560834923401592579237175371941551302164889520407412644916303885269589346615306437990669258962855205460446849846365647449626540047641672285215976291013531235487999606281509929843803500245786428042382349629095815810053983003054397613672796362854148895473850451002350683291487871745639248500953145388713014135637292015350549679619431632527321498222854436769481999008597552791354006107995107426791992859135169782450056685392904601110586672047745424099168908504262427229989147125160732820639561666998666392664039193798281249635554104845001832229232198634249338845315325518583656972656207379273416412673509009353429729282571395258192349797324343393458598422515021868194870807108522654481393861043332223105265551685135853606667244060618906333781860696072005907331512383797089650860402784427648656176132204949791824247615298362381864042460413736299834857741943422452975316591348377140297657228874357449855013338358591695262720737490138784218714264769679219591110042270619771685617631224154357424830280646273986762044472987252997105376685652804552419353308075043275201380971550365120484475724060265160242327392580917491928579159908112050403041831016384182551852678459679211628890355373068740345267058118783629440653840136673582204446226122590447866656704955384452488917442677391203569866927065300296184590433092858639557624551266950915182903307073453572756305424115494168531666941751876886147560613347729061512968516907914914646913813078751795414502638678764034637729030388698267163322641576893975572847322542129641882167793402494824952230447504174525316600484379927086226270263211577246265530601047999446789877064992055992202230283244899603541737609747944763059522429171132602238734618021787206997695911060958469947711619863952222920064067094834201542625450370060453157659533052281674672976040182431646849549736859422706098674767443505969828084357480163858856281819191386409397998691098524698163011440856402496548368591829812664163889566581384070773364405637657523203585448023100263833896003963224679488408860053426451553523205418924162059179859949603611014922374166077864434846613851480978257389514532705984468760201669139933301131686200905466508465875713286523349411203057895565071223056863538761605924307211719403747405981828235618645771332103621383637549409622467513896844063492913632482357935702056397604487668218321192463013197938400833647455225473460077697726192233402156554017730512582536488402283250942774236684670712497638598906026069333230183031732658134373010146226654586269586326991615690841296744065930529303303955998400249179813740060403897095486842267554536677113981233678057868485035769944255383935203096653625133540025238744218227320197500214789363875613664296157127159447867123030832254853906360742439843965429324894080546463490958831577499485867494556777129513220036390190318400033528651862014634924464275991582160074438433799739942942878347526981759505563554237628117601650385030081628251127419558694807560606398367234510863541482715355633519185451704558026247531324763352612976053633413487899443414717851758026857743539436758180546523856776925526271297900952683879526252202099087376460304305409726982674945569840655814232304737585972213380382702523122716776204144737689088349951482057105978766253007056196408920570978730773023378705473075615938265978427770541734950459711174182490092901752439320212715448156004808164152825187222891972643931714763298693048220297138595898530121647374693961863830408252321856174400741388285761350601268853639783847257644235543619143360924380866219617456431698246526694284094323481647987660243195482982240240332942428755403559801609643438225716185808819114021599837625700294168788390772407817672484038330509931548220303554055083896605203328160977751862591000894163128429587706558723343716388385423413483179834684682036554246004122086433334959371921887662815407289649176356220307872439217813011985377922939816236279822881873259852052006439527247822782337773752737728918000429138049432577654745482870615677086212830364254882509453955835145438069872171357512208803960755085680564537347183453865304252574876515281073897815446162759670992372571173813049904984312941767835079711750503750267382979087437067207318471374541306302751005674850337776962359396789624456065048344776197065071835022361855861649295188275376101718082219695995097307581123707884389137372258046705143079226336085597092413325501864194525221006821563114528245533588095119722888338916830346991276830385523352660926043350497195441789295397888610152620672388099707526594453693278775766014946092381819032900722181305168280524768230574521021282355785294038660123274914411125636745176152370928345030472614024914955257865115624830910465058075613083735165432802740325870926835422700860142982091102610048350509946865803339036151151390378140702465348304659963838226960412528961384553357151146148502577745975478593872162037735174482032407497150028351391224109787222067090052100110171198049461939931424715235602091416808970424201499541580286706851055841908118497197738952163466305218007832887363310465891496441434759016157002289445435571408371347662722569479148041353823092465548778513988984872344441758848465893797544652554988384759692235104639174885593690572301263416727737383657955962671567817956051666373342325089122037963568006392636087446005400018588491076523728161542136437344301935692718617329257308372431694672094078409174513040291752838443229024168199250614249180833257447240040769897806425504259774981653067518226723802614203715265243150996834739073101347325290193188172666299730647006826424202063832308135155949322874928209505128836049540129525173495074555125784662527757108030237216420689574429654709632529045975547997663458311031883238987009241155009865557629605836121346023274278359616630737139018369076484354292066123342720833637566244391844516835129779552973342605563486429880594678452065409961588390905020207067423454758009785827715033038110492702925073705308570912899423406759738670705777682703737236025009519541056870325759805812582536874468955187660567572914918167764989032627689343869163168223101006102096943973705397670369339551527816517013115465714726024949575502613290394855390650740647746213242567177759230621321799321935808104770887049545348931947296279854155900640868275582844021923201260092234495932830017577728024460031883186465560439130067858660980901009085440907446256425697769177112776236710826110765368866636006824642314541697949295346731982591257719773371944065289037635520983087313279360090064379235610861214420143884921967522368923441839890928392979028363436950307121806909515321254455167844734960203781298578952667874870966117046762530847170433538504129451323732348164924513715847137432717122124554067385361703361625166355015399148903093294495263530732107957056893215631316315650381487352997887031307457489143293988513259574731205062098540258344726215284984160171449618554431914882293453301086285802339774994810154317879869429781865943181580407136915186747006189444613252881119488048987263208624486837189054344132786362090871215863492905093503527622351637065716587069266676843983402810332208543791443599580145404369830901046886951966797790350003281634176188744026010563757078636279021265384523459421410591579357878519795437681064287389723631802438377592904167521341608664836972982539640940786165242874382564504367904644797188417327616801849582799233277554614352633818243301034880333013631279988173526493209075865024970116072640836072703829790474280711441554816238088352134186032310565692488040166354368165528353831526347636142941638324537894494084021378471410280200715786074145751312098077459377836145862919098803377976036494757979153424296131641997973581310043099675612969126787130673636150498912444574516947738579186491829989388239295533234643917801792245571041149741368290937478357667940901794536334599516314561265569695931157536464180420330222549228470773509086978254025869817047642134292368857322948448200633465007909400764475397097366086503406815028539437903671851137916305614380968173305500439575142696327834197373360476673770741355642213593314558875436241769702617280474369174556443814803832032399791690657303025847900626570850574219699257274902015575290202258819454229547080061524742970927734447748589695837219856690398723792990506455166444598059137191265984950648847472002866525127532391899534264248778065865233998263791984632271404103531008130447916587268261840685763160751960815616479602091122594284096784801467720011979023495559309674143003248665406566868261106107920416701605077614775137290007762558889796236191944929451651366477700838544687609232006019867532459202750116547361548349363004452777267447139825842086223701917617891073546470694609280714714083990853254578776045806846732698782868211532969474421553965010507204116520517847932079463565588629417748578952403607041258167344819196702909672451805972599870349292284996389631615384342412958533805533121940959451562376043716104922101380851038108470635981444499081371477548827866272837171615610828866759764761815805177985719041044939979847186400323023361767580120975159527006079920802234364780762597339237122126326424906605740931088482675342631982801572067537391603379078868745407735208469250148465740273663416920091954164645205359534986030965734900311496012585062915860002277484465071003366289192997637497454808013656392856292929692671517630638108007293241838992681305751237719604599713614158641771900482030432131358031296079545603800509306001691618365856345419854655242568463459154669761080280992087117825007865839222541651930859448301006926949303698926533424547168755883464989079370490119776484394779286401997702746954836483101277565294842236626828045583223231027743655030182260476647568144663240050694535263339672351004890792447308344190391024895950415964894185319089614998730790651763749596875318949986081893493710226966576709935431044783889137644596777602089916867576371403473013190578976081381330231093309686358526777577945773959071452840195791811003617304031100350220305275839077915936612340923471431911437575133725404926628828213265421670238394905350092028508341106676996938472623464922249351341938390026715840828378633409593703599394925165757606079273511605761808764398207244357934616890474923847277578318869953029618585711277279166051741151084837832287092890398993972707198596320544799539448501703844610774133169655475754689881406758562647300954425477146279346841110668714540372715636927985990751056963576480752646081739605750096632757060020082413674085348768050311223498089236841540133847325299624296607631715834568857006639811342105177507485665879877898487522553779371543465417218067865559829052206356366461498288325798366463966769398417124077159932428962705344830721155665642238882851659270554785350621892602785780631858410729210316829172315396743280438631625908302846999261909685785707639017072622624884652069744132363538881685762854817936312732591598247954118059963438091706849579835905312514286491430742000354950133712521437386817222217854188551340563285559016850719942119880307045159674888749630901296712606594044642545350319242453990711025187645751446398738069003786594644118960254465581656044890393310486349518655564755429625080681025101575028470374799620630346372659202609412786563330877376665742296599060646506590015421903431495303835460385060822081143046383875672088672707162150403166316881993432795028936518212507724220756380842516351585113013219380630099531815122498764785342781512935745965080064446625512635278073410277922581108962812222743388362302427199764679311108839836429641397411043352332449915523575534374809136077607087045887514230653284573456230707100427972374499437634636801992796258395384950019929145463813137878165522897490611529756177824597059235816891925057484915905366934998080491744733763886959390879857036459571839826286076641802224864837902722384783374495253016702963161578428010319730262157060602097729697228856883151711370020450261407204393544733274937397502112712576488853609731400916407013624819539556434466196136994703987648226347941945367858106740565686736857566911315238187696894495861167131318839034893789240452946742977898095377997661360676237853672324245411455772501385678619949522443218670148260710220356689565686788324593076978594531409822313227661401255818781252429765021517665211123495729856319968031167774375342875240356337525330348020903306953053013035527297736222607852929514542874496913818051029723576783405851674110530604181595411872635898218790651446262074936507899196349029446962430219861685214995782366995262546179699124114632416996698451741535771249567368933341785970549795512701621638945507142431715580079733815949287035222379403076293898521566298876622675523856148991232239873736193937869904167427026522861044748640191688243378784100643447307879108341799279639374448232856564472840385542163939722915468317296697338348231259654297956184746999910573467672955126360096791772601487179668263807136732918477853192523666153787660849358532673313931420946405985662573955394840802704691403615761266250828204505979658612699269499070474047011433605984383112146139407154043071453844967405607959821514851923320701129216061573602314589007435622324242640977999453595422449596983223431786191968683598234937186235834614348976689984590576159292347071523972968593657656058717672203257108166442613459967740820043502203312815005370556433692230751209420850548992185196127663050908876080302336744312926400575615508519878947944917372431059084585035353690730991765272764389780562772621910167108113535264699502095125593703629223767737184817648844490489527492747427678477375524731727300429920024751214658753531957893208615144568770860492616939397395612324182788128548591004419472952421011155049534003100179569670263053655541004821696971865768701914536612902487834118540828605708133796416843557715924068141243292085018194693305175397914956999052238767757827186866491761599073646238355388452018905908164041890317370668387781874924747083101841644136362631258567410724138747231689663689699170255476879118807946856019734521124076749446245886007360102293183279453779298349650363569688498770521004410438389092482371078541407128319177837860106639230928724589755516300458221757995370357873563932336879268498778315730285485235961156420934754025219881203442435382573664602028361717241460904871677049174590026613450408273250477227695751647939844371030075904881060006936488359147165693178922710022876721563982900935951095900060463041120987823782559884797730903485992145003874913619873326615054646476710470379680940071328516955192108306160607476179902539770780757809287835545393037566698185533672009362469824756816454761272305293362014063441221156217487274518831994980829360692067223623258697205268575759500698964982156662370913891287376155133700754097646490102121499633376244068510169788619198042387971069211562693825013296146193409456190436142317708561899412002813096218897997654495938953689576199241655282667951503880446857036532329047251876579318672488073143456639172387905894723285408881268120563255298591780199332519136214102016397308334167800011306081725959425489647754787302589442246859945343218944900739189735477114447581189072972504733992692322137987127039572750844418018783857023000476864535891017899318518921468223249836326743933556569701281683322264704865228708053548563442097171129213302883890702928124150497756487628904682060567624583530041942365959727072816425347631936087008162580600429672597394632164413917663757244936806993965573056666769063875067027124439924149351865895594662048502574396916428879061778086587695395313722130966785157921509003730540511087380643865859102435620632180229065932972303933276656165082413265407869237439459959183676789416845846702870947763307604056112705579210376979340138186965786383974287014571622961799734846001158338156697831558163551489824922957901624388175317122538535416132386192920089014689115595668189121971832250035433843142664211427995876166265041883317989994446363188806412161418903566094646924128975881602529882572965865192732707257000304507711219127079665915024503504685249015855294543125336362751337351392654980473045764278229007782528031292858324393404414088506484685918846766693239810610645389917653180251200419485887138393387656001926224282028463542907054908845289034204124794506003332691206731893908687529410553331362277937566966921690537465334811180273748476524853394824447994919592790488660535041583187198141062416794029217189820329601957287636591149858274496514886452446776594605856215919476223429973493398221247688955917960291665932046987375247706878166095776189821229973367321131626628134496325593929239846345441161403145076887159170508164336530209478242821606715103985672608413005056694494203458932824755457180996526196908932577292385009490940796390156971231692295804882459456909623094381141810287067606566665143604145545383343146745609986051187270434852559626783863176711263799468689166102675077048314728080888014823978840380208591459019538738520607528261750410803178152778880688060485581704679010107853654190787555445657770159898329648276174322253121832620620802278822536820018254669257353858198502823975063864584213166377653151321534282961893289534496103970950742271174723438486725801159719017762337259958706375635948236191950560538580019477563201939498757272958234986947117576736195500160826471752033596846020596555250951228998048456526343260441347371182681185148582604493291462802302357415230010789041727366191540167572052847348638415467216184830902431075635087219293028419900455588160285879441096994719726276760805633323498485684990066931304771887242069387219871496019344006543530344113444961798503708718569306816277712965686865811414268120934676841595304239389964104133007360082322256891054704522131093724007323695138452423928072512955466467717478508009205437206422578922121112436599378581448691952951980246373338132363878968498594624953305270909680082846947726306316903167172114577248607176429805136589983717332151843195789257177882885989230421426361304999252165324001800881884261259824446084687161492083510945370575731475531352392750074149483282585929885359327254412399004562228974704707152885349662171219584988940052699275193400104369071409408552029435263207054686186009309842263220961682543676121199330928280554732734235378961255950372812725409825638978599078230670221235502004697345027693565084100607476058597527798383625063930749676295744347942833467992028226705666056223595795072018579560396729329871712241050034717856378023955490567592063193696862346348486922598672475785622228368441432922621073161542101206541021298736152567243051183150216821880340852778346526418474932221533150381214774540221507317813603581116128168024754466468867163386434463089475410233035930234978792256646676314347265455756043955072768320157670515196655681341683460927878361517841405324803402044759030143608413471775022961104801962288225986534676562602828629406791069672155260199378737009692387016829507301100465151799839441572366187862383503013501331310761843457412560798207006886360176940184820194744069519310086135120395555906277617448391149979998901373941634181053651749654651438070046646527191028340855660032663874903969541975307388485090327144794641052682390587898207462707930787720907345537533799708537549511558871596238971870687187891225179651300088978169967338731147757508123528787893776285493168853149371899304696363449687256247279838966331729159319647811954258724561756251702813361199671874965960768572036436359924030982513326189348176857054831231975618794036837875501728541742915353753665341871159975702405088251251405136044259287443578776148381435710906782325208960020380050926916376517297593873247559120833530059183162994087748427026138401720257281025187610111570168183000445364377288719366836226664382534884489083777832081895588371642431371290518893013841608203491428407342306110881130265279401497873632161950955589319718298124724195962769197009271401240176138385423510381816154696108862642775508405659758647632875123012185614397962217175095923663935666045043259573278994719610309243305009691875793288139912252658789164445874491716694555413126592123930708235523517826947713739373107221295945090572072429684712981285299929021996941319072646011949546823396764595386762321856814490193603816426141880178052074867988561190924600241778125366131561360870879314216597404305106685906510726268335894053527704979689602104403860862484174452401561551793342262249251941858176983235389604749178952670207396004240615891735883806897655095210755737398607995178473521817318988605725558953249544433316565257299710663210379551168527971041030289106003493271770782143606878641092923894175161808236205489102993227626654640076532239114578816930205582264592108034341572812484220108187826457667546511578824967213537529168045033826737735984054950550251146950913159208730914868304254410552404512019790007337169562804825653782408342604632828342663698023870010407227821800162615139710999746134234759680961546822613299185632739134892088915815384589957721253964576078077949979191117597046333303896982522187157928783471118584421551268081822154128644445927218872313576581886920029921102988271776381522316561235863425732147965716143144482599057779067973070700462777612972056524445480062155165669458039633695386228962762524362759541738918900088517772082048721004616604662894910646640928853240760093928962492265212608429007371765625607258558627295830001868976898126311399082893528759734620213901099031121375045273643698852865042670394592353192703098490302130236895604044570160544957836852286475023187227276792067304128832855983652412405202941912391404441931294989290835503062848308277593787256021676857529572747309367559152899911332152127750516458528403117837072226165467964011146820708505889746377503241371320958878822922426902818059699790932671503006612286074969393998843852380860824966289063783101180132342599572325632527111240388902504326106708288711822124452585672248074714589111841726330161791779889933516062968055293811693370246101676393213584041402313934645042174970616439199808456804725143265943197282196663828842057089920293574512062065969242656477093683318249528391252463071166663750830244830211302933409145076415512871036573564217868809469245071194605051314151639493362320462308790670031837261785857450823741333381859832250106121808969458596860548943638209287643093142019182659321441858923634293698596126799299536005414001677875119646729119839185116400114027996453928930440313762721744211181891485730975264415139557523309910944770438087004931496103879109484892742213361586475985827477563887917755274315262290547924231462423451864670421772137068447130481862983586097346971292334278347007910784827830827341604451197797373349986246070845061673941460264785698833509818641644385877668082573942194574246163137174341252732788355834778424795199338025364972646622566103981418918334142379008942985823225022645120021088855687607913081197189632591863520917768718996193732840654368302301480884564528809658568404543412911705285481880819076782172382448711713747853428152389560445903728189349374152913659334998748773535752775501113984244181256247265501565320634358545867462678201998095338429055111842621821253398072296623955634309073645700439824606898633977298040472281338617587624870929292942324713087472355971703910339337158887908513761671196846726075806215628378614182258747674207607233665346944552573650528136771906281959943614176140239176280026868894064148090726706346038266956799867193382933694710069152228151286396337824352379154157542775488212525569884993105221345786826954585465711330242142311185465621878989839862100415822823335950135106034503409287917098425088443767775801640068542715349850422167016263683757039595530239721693719443081377438507372294520798909569792886534982725568380553133588990502912490907640368756888520264706019927701370796826075625571181763866047342283923665064053852533437123846754629923013504933631004696556698843674533272215644439200107792772461423453887011426881595861825238666533378694250070519606840659744030948868943606816940438226901526915064897234351729801928432646786926713476685445118349851418958102193530643436102504622231410960288838885144721881172490206793636737395614064301913845739812242199879465060722642558817047375572282197791658809739472665877308281018782905019990681042851095980279246971001919770023616107630759564149477474099456068219405201689186361321832335135876743485060262475905706822167229786353716646824932303978858301703365983833198229928876399622231415093651540913209595819971703052994961132878200486287023085770506080441867879753718423660157638086541521443819260398415532482546511334392357848343004795849035425751284397704462490633836499398396615780493544067192737007895988825051789578025178468714406391217301283946194155929108572360219676131317842369869476099924827914700819538639340960383100052050707512303696388793966493873936339859704514070398496279075000040691686867127529076175093609908194924435294087667299279404510367831009980683890359096493218130879377955032908639575012245722606359954879404822757888109253560892755469810390688437617332335185500666453977283003753908319217316805175459219100954795001060725673548294351300123940181946899138890630678690485866117244115901662316307457981989707632623526728650549979041368259122153099913371844117000002543477658441421532224731847403667638362067398665451528773951699119496509279984322383346535811742021944968671678333041748894737452264424714634402000625308899772949748892102722487623786257725809903956568496965714324896722714592335659613234442298083669401701659387868329212297383362794764202126023500223206436986720681403484907224108252877971362213027351515235101310909021366761348934866407837606676232364993852835273050707328138859285438624761046314339093579521269232537553507700647720499968262927362081827245444378473824973482818442925900273099173515777676392366285555145353653050737932900326054902472121328296163822009756751194834153671667360222990415927313732309803653656125489667633586811424016815571058316201496733218701583262378775556181571077573593010893501587778794534285701806432382407218954586824484720943553401023766930245302595127020678341665377646527664416161563729065990263699833726020435356020730663592656477425165346769804887629753766504517370973262227927025249263549687687939078896845053723510008978376713931973107805109358416644769165351028533483278834988893366206377859430427202747123757164918987750547031828871760520486753887188515692768765606802884969656045276160865237810277227630777043822731021963332008646467620248336228729567286224779537194199995621633642744957062534964004308324097593572509437893205542741899591402753084969164510500772003141870573255849793993155972622239065862267892246408388428542740281027832745058191829682243703201267658736680285877488203260154795452483894689784993957739782876196728887937914925978560768352505927896773719303954858271589167708346089244867147680559077347137578946798404446094618904926303347617441630072496820949326830056977754265055825850839134736238356751940540819029347267932250500099401826067288053155779615712837304176055489164683554208409785997761897279774467238477735273967452241619706525293448419030567203975561548164241481454208580819657853737034435202546935669752144785358743122832835271003634001437406248870470950095482090401703936622043975431731962341985012105695359584829580596076314782367279095104170208967766378508225345474113412630680694261317525739311239741637409138388625621408233158515157919267544671962324602158646479693723091203533745315017216974534104854787085632257135243560964755880631554030395937946952431327435722687539812836492221081796020227014820412705952461993278612765329270331877667749369961571112821053100704879143647195049147446437834678710203397375912651528138599946134388388295832592992456490939301312390639784655497587267669485006824634348055797271075049014153664280144971842184406781981458796689375715032589234224732096292340098852994762424996389847183927875700837059369490054869172319821378869482909644710853263318052389557834066444677379015871611189425600102774711528044747549182574598416429493646039970432297494753703897336371309189958443387202451980936383971355292935489566120892403280241838622269414086402567990004762791237701258525588243941049868651636017459749932111908062638161662393229964965485241026604414083011366547193944617990508787854333730036400233820048494544355002722118869561341727763777366239504368756506003515728000962165729947982172743351518199983762794115708734061312639155784916983266782403635494299775726898212084526830987828825634914877356311750942797937361809522726251633558019960244817678492732451884667139832600938694806587680388308179096720237354848327455896196725936775766634990681794871107289531136455396408431792537848492291769233533399452203404384657625377075624997560279570261470359405075716137843905455205808898478843319239463977005529660008988218533977117991078167735502080785937361037819879114940432841117931178417672912722145090698165511016969531855757611269228719807758354876145021764523175404788083800410448211371456394672599251663526555957586877724663567977269149243520146024076323573091555247331664707815632033479091664725024542758427154264323424240391407935533098191558776036771382599919890467016792625078592640053177254130564672642887447113277868425037221438324697568615252558252187691648040322284440549433335559435848072738056522965969486014692728406978265921511135975553397727951851862405237390406707142684549258663618960417391617957149661836911898235592239240885084435464127968849355704820693424946239092674763484437114199642705921942615901734713961150583388226018155943311190075988584657057735973185546459258041654538465246019174725731502943785303617624567315406757568130822272049645832508758341532198929406701583017800171639525608637478554382101163147301329555299600823475524749263574049926975282682812395430987459846854846373964941006841094465096568944925534578610787353438818714851566131878657438023741796236145262020556933243647751857053002705544327299959908443200404611049000568631807143230182920295429598934211194944751016817463781920553916632397695498570503268938342873719785437008150256100346275775440161679877538537339427458328310395999563111377063765797552999795490933183839025069056115156339346207706950212283615125051584159510636434623591890678088401685428855689048505881368349728273292576620149437309934391751540297260207668791904289480362927245987024042631833505725997002546513640837324922819007510349870114946621654690553249467859347434050092998527391833609180249212731936737259687812359613188427117378833904988826582834036250942512100497090196371562605848535972582010609021441079150473248970694146885136054096516822201930612779824876563834032736342538777049282608169834007705956712140550014752018258133382206098670522831697930402216498036422262480330300280604111424711844307024179723202208895537774547857152844180001214295201323655034753036554621261861278672090747136495892872559935571436006907818546914065399968041690295845363007726434702302683012976901984729250625277156477953266561475096133165968906704836730377409894149323286868020151502067625174212378427252088700404889317701380873870144726705704046784715472113731875976982406089368251849132514454651529997229540669482694161864925382449110379005258513010223232681313593077351597031508635642960546683504379292976320231264303596888040113139423441514742048260612901319923760011658170094509907866649584547365545507866194062088209990803114885455213866630304904821448961908473775890344123987241589445336175034535357089407652411882477545882913693328175818848815746717399072369427720036077068382863527638615558855098729396527759031926480546561293547636799876556822857314075157943651308213712764785515965057443832505010730447183267597609702839398466990211543141056737879705174043864868192061079102340287300168151404168201282801680903783006316172688238400440099992418445455089970442638729554031247959632981176125044616745074259150142997402951644753000075080940250503801802829444339083309069376918218567109770958514266284759033744457549687855499988824113100717586130132929383729869033964280050006239997880377592175361888594385235730626793258817659055025031339738085082492584156902310038686314870848455976591481330398915899162484208395718291736154253887772202075438402872385549905846156238730534788338654989307105243404769179036808565757883732016155166256543855423120241000320646774046077315746516952221900764771592230652024783695126168434585565556723662952867201121135485476574269873954835839727181215020954269472828782655744484319772261993063169341517824536969174722009513235927242032850239322120510182893640790199984786530261678509248243695146246716087661859640876346854057852936618176900133028307912910725111283289159999033184111429768517594488602184491731574225917429246718697791026553736936293685221257669859038710970748480909295332989246012598139968872771979253881148742096478287267176788922392332169640373837878155678332239894540304660378261965372816053767413137271370445368724335980579216182173736503825054825337066171962587470885026425875910168282597648267704500727556729123457940715524359545624710817538814075243045278294953982661237850004951118476422066396913247114319049246115988607745685889445248755159291730777033267437271502720056359001656320493493070083388556601979859954840001231889540059171113794375021933041165485768167646784766228060397625601175484167978978820677082274377168747051231254531846687948411731541658099389888608326387988075275049465986153394491307240493702879775192093871089743010964576007116765673568765534402918518087376805604217133358629404936713210413526586502600971501687052682586931756195135433037332160985497237369241683454541351655338504149252732829024063389786674558062399282901751428813776958109270265527324715993946516607594880532614764119892061076273399010922416844055290055023884939828001210369794440819755754765311979613144050692147035670076186035297146694829083066803261375475847422267819137941178844455937403132606432017313949715069358582847391959841278950575114205778004343122090939343477999131772788669330837100671758131615429852767890617136336599444174919584505445491341126391956490573555969087191393274743198039089149496774209509085945330412879551495651083197194805769455277880662131585322365357444020970415892883765716581522837548336790522695646300871791327420711307562770068911496515192600303229240345052400165608478045264750298211167247250917183307066589787116838357965157693350740569222241672401355944767828549918735464271079918795740166192485421162392296875521655320127550958810961934615303948349534826087110699266832779040616329110769268428610855381338010052341083429256263238843326525281162984055708394825281755204543919065783243824056118655599391159401816952306082368461101145953184400948368190738657659528474681411410045345763362322017159941816347619081038346636056429514054607963863242662923412955813941393333571786965943005403917277667295423936480460000339345394526080121436255143360412721463343669641659807383221769696186975906315531180767419054139907275686473025773567636084055227798557495788184663911752620370181836373887161103780343875597266500374055069874097393017162288884893881401810712461881358986709329971044820790493332814328511164893777991942326218552554195564033917526028817178782710399118617587554470079345984902783463523117113072364543401131108386167981172546291502961884822144545423151924871682889504482287999557528139055065086407757077001151885637546560002099586583014860306611915437184228838797821575176602716618785884363470294008853859865018792009124351190674437692424199970497506133574900368523643006794642975951066553899705937826335390586714462751309674089624972844367302918219431011309075814724622395180466451746211618383208211583392179946551476415169803964306956917220498587208223959141664583743325438068942553733826904082622080438816495335811856019622343700076573080126834254280799905266407723321266235201358034614193209687071400067307006411958926148458931688021487055918469309701384714975051477515981649261265689747664095027615959174418344588434937282513344924794176818571881140819053517364214220662195544479091668570179541277057734046047124893775185837795495589026352262160324297747167187340653640025064360469789627671185001701676073692500591198494221540937686393038140959649822585786185580687265798903160006956543676888320270781219358226534009467982389560641312687700562887513141156582618160934790943631168705835607133003221594187758032633775049882526941874026865003881056267744075384291655110811735868504247478262783311481969347936650998508770362564897473889630523297675221916297414620348850955804484820240600946008679040287622960905817218444177337467718340283112226362971268951787450154115162748080994013055971472122393725535085596791749530830247493509604220718977427781565220366279775776592446699423739421818103540976898230644393365046921087718826151236883022952222758057534834039603709783844102083631985433218707939062422355422754966461956669954646766616200263611142413870383108944423250121785104830727759725063554659674781137333280941401216119314271451488082897192873880462284371887878418515983140673963750065318846712958512206276927923835411420318483669804178559057142899117177641073578812063742283958866918100962928114997522474288807409713374281902804294903058221452223934308295711184334986842210884791799990449576076726454735298040064132924392217026896531792959136700725252282527357344116422943758486779918157714311350795482155755755862618992959637557940326145244270610354943166777320177145230383132531140010351475725446191763883085830948338418987850343406689035790318454303694365729532813422430855744421115844424580780318886470889315464385910592244678552810023262840398174567952447910856712218540978142643926311341675985331540819288061432521347637214481965734098379093327167135063550571318171979126476320542096727427484375833873929271630140625058591333876859297488292853849151167429029110958586692865007591457262844137211154371781000386922971302944373581932028998555349201279885664377811866171779144172325606828087421530940562388005288447911808873165212100317155419853633012359619125852346609449298409625763218835853155219718386207255772713994270986857800847956855212204437979678489226971032739637777103667773195187615674983967675736543918631417533111620610806437412651927480975248986583868364129244958739661562028503146654142915915010362108204969887571703239711117491663193760952678573198792993905333651395851838994657474787841131664379127296536234345631451060746948227105922826253523343924951176825309712738782478002642543148526576533901109056326770392304620154305232880363697949481330402367729748293359644834973745227769613001783941773529558331622610839730335626555603179750329643310814496889727554959440323744120255138867103659875085390168192890763345186372622202137914821517453226395200941317483961606376099952287566233247541858580011124700363849126251104847668520218400465521110922618885668390427447851438184556071065183515381259754848413924810015405025360305104972479622177712768764921176982484069111260694281005206711646554169996422860084330262719190205455609413798321912921389095841104914168017261295758080150347218182264237609204788764285434303787958489321403006583401743853527127868436172100003211194649757609985186262021506451449593957467844991533664060235153676300056990749317272067138870558929473744649309807002365260933503096928528955804854583282766580077363502495377601227167157261441591257202384787239305888657979157708849333869885249412623474416846841165542055188094284458166317141151613178954559063895414841756261475735979546117071059730913245017611819457720385246578399637953750169569301251632636343071897181176820129079573584181735907178717822196006579170747127393195546926516794925425540476634622229154335817154716714235683484034820017702063584541572969097743247528901381404101099722779295975443696366014647530631391995408082913125598448554251659866662446453866120619629722231753115056288992033147319712564986333918820875661808358583727250707119327419041557677939787505969868589570937691708774732938663458614341756570737662362290961403488840616476851243390850786469867461209682217695730841880853141663156529385422629964300535464571852656850046601082822771242483100691716603550772053099355124260056940064828755205938673512720738659873235214286130243899056424101852806862181148031640015950009387491791708967664330290317681602675179778606148542593948020328527696298076859625249270596235649167612597654437666144791256268372156526213558699589448574400806123294200858265003623182322496309004261023457587855342314920737252310136544939400902696634117758675890557575782602358796759533339537084317491848419958810230044102011559979924251077525465076285297100280511282914565787245291106936546826159238802526175829043193992587090152852340028926612838794707686779282214114455831031707230785939738653651275595791325985597090360453105180893742717562095320477457824562668307280901710943757612421961540888698356061013848741870089930463132147550422439964401242676873399585331877602355034267941002102254059745752300190469733770191685200113644594602655824044139052435996511971030936296256949051724675715833869939843851654847300413302785720335276133269472365220025431331308013124168156700873789558238604890916780204929657879100647193573278292344526924002467697801716717984978662753061894841508643779288910912502756352212017690043027406367460433845023177395906442022677370866665350098029331967379653769290891184167048535267609585693546559460525536069068344345805302078424718154766221869177586395414452074349830440347617533975064564939307678324818196501615429004663591531695613653972745202636646339260959187772385950515895491928149390479202976055055968592210477131825464845384732065447141872835230812869859380716115429964040565064453903089881339245610227391847029735214054812480376060210375313681244174778144281023065949877005008477451337531372019672612783895190469634005382006151472811369152544708325797684249184457518330386228766653174748968625389112808731608583388502538835931850279408212800332676373664973319664656593523584518405155440796878525099092825441635873604575906798322864219250650793135176051861243765761419897260656928825650781371207495063907543215285380646693051544467740896414448354687968013227819929409643136755978217343468199639157995480875440218119404252880080926563916003507693183807279926575846877447461008548049817442917114489068161747268482978712714030310454407366290129353322581565555376659750056476778197447672797691823803568028169323111972173259123364080837339006765675610359152227769361145467275816734748021832707341586729348474094673655798966233893024048865609433626080273437357520387492212818753322645912531306253023833110689038382887544874039076105865845744192463086762620308080537106221802494576887972991768030912850018280503283251596635024593016426554992693714770546071846290871299440881548074075365035737463258312552949953582992123907097587233790549305080413308862272196038352614316918238236661984378619625599656315353642001741203922592456790793098277259782917283544941809992762695147113462666108495819277693170796791447518628450165621936547664260315908300105702208477322916228606482506313408494334491491444675827429190457450234246361571340528834522341011694559548138060325042483709619408862756780361152554675361943103037607996125078457169566808587584290227628485144461313888165292733514377308529113314900166196633260817087484577240743303976244495887552908493619484416229587195708316625008485047603072900005496024571834332922658306932595688409348675488203155758892002473193279865349529653395594751619946792750753968789217474568063048267733188671333399494037886493336675699894142408323377278266783732545478940299442695144327151896663609648433650289616370552159447426598168267580989357476799749192711783586315137730199336736555890599194503009596802311695280616189432185418478433878735936704640394480346093637705456753498752821239070889327018265313031471425070721865169726810673087835844865391895960725606504374623584267611894957393620484277526249225181781680454570544401941856557523622311822749616298596077691477900008748560373558283277445268443236886288603815400747415295019911378250449655344541662290859349356847388133470275576086823827460046595040857843175916733996856087256734118926709555814442874582757545195219412540183058711978876147940730045495989659510188071786426145292932529445904935256025815524269541035502791314015009662115886255952895338229864126961273642469041094025412495864836001024819198497289793180920038908729927314480185998873894182788608197186281867004496488929113888519594168875583646582034786001983382308945024567151632706836107815782254095712098238451908208754692300768087515133310175326223144639580990658235350021840458101943285302409402883261671032695962379738325918713821280587171022049909236905384245067288712864327654630204629786961789253182439521431039734948993089654286846770140206759615510694981049807345666106880184701469573939930081250311446622330183653441858105994142833819877766049256306524729115181051054848628660185464622006073341748039623569140471929059510691320374444337349268955038364418934769967093511179130881641525528141136321537542028348687997712571295861707186752664841134199193888532759518231811276649201203695717945177927962702118363135930773099799574123004297716972331714289654716319548266133229500201244123921102737696888257788851461597471254315832371931905957633640589029593264469238345210589696581971490928017490031356621524439024084953143287008454968783561862455342912269720203237378865162479968673843657943319852666528320023055485723518444669374451994804074738732855686368347825429599143203947050714409496492798839486184043956092444759706808263133896710455328892287707767673536054124511026690723352104966911406644025593896986016053088879057676456474952213928412328690622724100327141740819346092150842329881376697769992523151207647506634311573028852653463045455191710919935875496345515948886131040208665700062572580452218506594882765387526658153941107949341369797482530267896735140476993044899845182236737467795250095545708584030635553154424707613073070003174389029114356929201554053859082842698788716718758249611119117574702132225659008805222721979391071661936024527738712646285008675107301733775850650878543895716771842446838815353680022708061049282593037788011607468365362136960915232306418485675913079082312808440701047401118749105916270317330444959724632472908971401687271662818473030052443414695467237335822370737389111665459304702173426964242655663080716536377658843700952370262369890617461034064443328129304735884131579008902227384799860395971081296935373273642655782588839593880444698899248496695862995079720452484116702772356718531235891920778124511194654740731127016814913484039463768461550042160285829483694038514189760238505940655147645967571933506854266562224974875041205841953847969722145919804570154052189852990419094471531336983562317378449896289394863354301418053494059833012786925039560435315589613475789358879007671224170199755437245815736777308421740445072722545712717415651449447732374771143833997352847352001387460713855737834048571116575269816376474049036400531912392668595781060991409513600566347926851592923538610811875073915806433042784574441638978201725196486623592383302101853952845028986114195760497168966624617092121333728108629155138653023575334622542611713591431154012748249422433908078374595812363890565679460548098916734331776487347210076567120115494519105641224051397999188788694581952937529916911880024919328765676804012621212575772546968883872610118755982868193767426321167930544821494414705795462900123401726326917117883279775454211029480686054404600372251998973782381979059987836565063672000229791860351246146468571183393457243707466951462963358113268322222983661772057494386722199983939368030062439227156185077931269431544134741682674776016554546536059101641672536098620517544269894139129333242578242535493742294109381351281382381186331891646860139602721550929035351043825248006127933837051144062983531277196850842751260050471889420250339739693009973020274854281712747420879870009908220293559100980451277669931422217999230179079346057216104425028851436028892740366078613408499887327589198702968108478659976861135087166100030787056766132749289652055253170255828635922974270312482208800738530377635784947658542102510532181326909414060648137205626489284560785489766139113237583677488637949982366350481520417261860197512328741419767774054997659724643476620799423899539753384598631588663930970880499180885509435053592250190419834885564736537483401160731616659445402562519744778191829539391177137270335627167088064779301989438488183497769097633129864178011552648870559393680146249119396978301899595812349674281325178705364108160038229687846812011663857024068998160197351184555617262652467415741260212573826402866256650440103365442421814043974229493082490452250009601790816798927257672203340072553246558561304440043790206287458894945444412011549404880288877830495331471950013829212150011581462518613767018752006017876103206193128739371554127613798672062779097983220205002673106658581870907683706908549768821345186227683063805389155152152907385749356914194763485842770905909408946177447466618060313804664468735735150039155032133872538944770027499063993310826966233254136536185252480665351017480468531535651509262421659076078052919997013523738304144526989027111192537253420650530351362191293507736965043399096309775558862452572274726548640078043959910005082218996744929063906766392591325602113122810961752918921537505373876431639899533708718099541359843777983647830665887299198142320907151318037565292362804384688620141199283690527252876771045869296661975292436237866619868778498746693520015642783814726319245707687875065104198472180911913412778608374592996191592264141512758433840869623525873063027460291294709089563978939947593063867991507443225695370522233903323714449177223407057569537775763123616959587783977353000140570698804575225231197016249083590606807644035793870108077535957549642032189762346759793223651852681752236444377898417271585582760293733067833161968075984312709750587168183620158647111745283055379955113621252420467033897424372056234048058283004823909032893322397585227526981017189904314448320044214737176290361278938510793636043179120067095004591285575530454944825951510227455157501119236315031322786607449354836520351487812502536295090657249173643529105584081847453300567378380212327793676361588056220520324736774398900852778357431394934555816694925451668476641139205719128703967665058945785651511322180635933746095726066411451187493111560904992671416010334889834310288977823862619159597460196878816395681705821237728088972697864955608869090892154359265980161684019859543062805315007816259169867132526318027292955372717416008681775278063940251614068953232026159118096519552939151192887381806998174237143860854781678437474134930152776777535728822369261783478711141918891098523245163355083727410283451215105297107337595646642545281450728645038350039900809025881377434928417238184562019756877204544223727503869079894175837715880157932151211583246317951062389745515184389428286643217960640540181927896045032931919519578735219450690816523116544065878853951344352426206024744089564627707294511193811175858791054038118932687984359321589157185476046555212631205461195646785566063379091995580291868235708884521143457592592297809847295818660959615648597138047520877524349708089905219876060509245509917218787528435723633339003589536031152644764666084130882556382277092773925225507320160662649962584564779699051856133379781739895229475496933797421868304782889971440929490709303658173927571246114861834958879319631909958494470343875243604079120248751894821758194506259914918795305277407200198050026374247990078773100081920914194491485041420218795187854696767339324848588639940804870678888382264593052279927889160844296161980857320786705947652556010735865222326971560549387802695974974444596506607137815382192939178621692120282950111257031071674263168658184730676078792958476442796862692412019859049427839782774879566134012608214055802524875536599472141499863804320868589011381536772084519319317845809247471050203956320966276413372082487851206323255734763548861276829957634360303412574088842746542997742478060425276174624711991180060765213104142348257379418763418979218480746394088588825308191848385186903220819502332120009603562517447513159399342733552188150914460854736124064082002843550690696510018035717196305127215171710967291942890915021867473975154755200299540955900776377318250713451152656440943831923758882247987452502534303520468397864709861533547538518929622827250142621417521460086657304004190672308875075487522913515530744119202195871704419023066099973290950862878824020916057944544977563555350623358681964458440075077681677338530415209129983718979477736653431330111333542597386202449848794007713609064425066259876013585589386077726249467766750543211538950086495213537306122235293442833532254298407475255866639292706419022916018308475649775538008211798486709815498502666905726315864957302801003605567400907209224974065438101607349035167206629321546245301148938941479016599580095371877703478493061711293025053735329033563441163761825523726568165488352709468609017578551640419999444424830482023842754169976920807485861478249177256532759373699016157132821869040333131652858681585410024924593777872800046837261203648506285675439971648327045394045587180701413647102689067035312168898569940855164667619532993889533292993872554395291945033819282810131728560353567137523472145408293478651545767288916117472665184326583197441020393336375338989336230411661191355017471338907764332419018411750351985645052876125393048512754921954781312210639947943102214410913000991360044777936752420528080370634078520815018605365267006562617137094195818054805634970377616655246621179789357080645529765109513699487148083677450750824541540827684078895622998624384836017292211626980807684749395484140499139603538946920049576814217138978955990428031369664947040871426745657804562809825168143047434399610618714410614887561644654317127809587021693034296473009602839347626033352182963077896383070672461039715424634376881098357406824721157017248557404385690679249865144246677111599624722282004501056406051329555132633934052995417680908204868492755146061750169388972263094105849431822191351849899496212047299222488169338495605404741502413886338813307331138332867509185770619096316267646570092645209321374036055508268091157634504663442636100052819028725588860685222245923300963107895527441459206874356659864397117181801570669195942215344873909959266184467595458228948686586379018426277998087632402026864396747487880753590215478531975877277845737513486422132885873782469799841284943381048950812554228140771981020876314739087285775691802244296461962934211742014232271063707013238843904930403510621068488586853955873882460046439057788249372992493354801180498396011121517681040068377196294804026648726332477503875603711212502203389730919784803683869942259040487643900819511724017187023714964911540126339737511268780263894533542710950454228320973019351283327074065350571063230741255060481935376341129045967777422256001149448661329479357533002008902367264196130030596783292612297705145494261774513946939674843526478991017969514081372656184026741098163287616078747184069888700264129100317606225805228323920788843005779190245856698149722223170919027736996855524251038165066103002871359608222776302691632880553766979999086885343235778881706977973190246259648040152756256040749758652820261428819167359419152070344695229410769755318617927569333882309694198480850933624069197134383017637466398517159682195840932087512153432265099153731657963344679887154501606073614002369574439950481178518050401831303684842686428088953618685646843423516390742164009109765620081060102558366184998605736713268542087968378614384086248709028411134786524760440183422750126115600057364732201817538516950756444048610120936602956204217611646533010997834856456677384356143332065779989077457015811356484725500678225021557057522493561468075686983809164119092800121531424577983933966025021829970496782649434245392825556067319317390714339366720533514421101758882125350871644817951434018546028353472682881994629860267629543903082545158727732210636980311069737640148380808300408176005053907077210647380229768884571798066059982720208256696707393638804033214324397026649364990904078405655485265879912412815904843184603207100799757929826191431353098323060708497615356808493972813674348832075950826226466482041362217203736102013658996693976573523184882890037932006543891742542597789837648930840724155450566233179118624714596182117233139892855765193151695032293409076079520284111808768614669471523594999492339882251775433861102396926275564355244122553963811476292092862017408421915801741642544453948140091949172889463160785264612458956341265659066394608792597390449924925615375172552000776349015614602434664869202172330068282722215749019045179560340306055885790671670852191954287040790290297196407062147803348809645244765274581492406846047827159612481451304968634360121552643240569793834464916710591231282245290785326290303222964469344451240221517709697645904354123106235837137892244314890368252769373917468462318249225419303079428851549393432040475075696500194926016369299320545569537190487560792722780808321824707541963831197520541402508008883775562844610927635569763114248837671053456190101346983814923986336195107538647964153643866064417511161189990996550796003915326757251133369228533023404286690090648103715143452566931264868731449587765619596265357430659517507286427647116903797152553029498082576157199517635546267089928334864686528800872865953366223590743198886103391020147732565410274437542202231816317752300883781743589542600161246298089195453646739761644079138602973507036727316850865054927653607211235512210107285550086332617641005828085271152958966229781725944765890047006044215532214600515568557048837773441824538160506591227342088738870043958092004437299552955261771042825855236408008796813933338190477853661418063862189789356336396579292671842257255334896297026907069667188674547721597704919868946298677496078526873152547631609330560648039980964972900858354095373858504839779059618647143367065289546442804473670659922871408063942073803738561621704975308120945641081490259997562476254949358140662289440789062676214812998311613538484858753922446529347297383004091860860759594391129681905144328169476421883012035393966615982968702134855929765160625096780576706038458227966172777629567476493394890103674184846792217184698227370127265722562511820935704219016615748909992688075537113909181092521005294945060598477380826130758447137670024747168185349169827330323172617310588846420423118844809460436016229337024496963555759979772855863452160115731759391489298772086388400727201047602424710564014493043414859099524438447968800242111075727413801061138118345793949071475817866012255910367750484328949819677968431728266447640810721971980473357201366395540235099736764432037870121046769594591503652548485571959971681417191039859521404776835624873664471668631106726568853585295005795502979052080105495732512049293076311420040348376413106507912073260133393220583691174647307580501435400432971531418408790613245649786938028431586712828175250911726065632223228225612744827188483237765483204215247998143562164440453609428488750676954050124085835690135634548396113455624397268330729677872528051699419994175415665283413908964892216643552099279806637961248693044712652750383608200308060962139442174265869100553938216180411522637108006817872260396552498877664693651591247428238358923401947595279956973200315537894321567268512028651110696210786892555218079266887075318041220042313255905148174403587677804716907315076529310428652164408849666243583720953853168538345006870930702261726082995874071062857840729427243468534574099157991628182705031947900759714594896551102672370188153118288376738486359098785765778330071090117003319161355523100853565088999895139348936784849391859404094113544213740303205635811702637309892199815805294792568499535453794021985498645764056272217464138351242186928207887340424091032179576379080606374834373153527333330942128382895862556454154869947572480502987946590624344720331130496875267399763560980321157116640422909609587049989975627448516780876755983795081782265313175150804850738655828406895551948577154471483584260826859799289974413360181676235090321423251052028560198379554025489661616705271723585175795302571358643732367197479644929583191017725155474747093044495117613800608607468922577169641553593639406988315415423455664898212160014605070095176764830774525685690139725166276974028096251743859385190056457526178211632760731412560310452006359500873187966994092636565239227065526705351544532244508082133651682472161251467226085523120886191958114786159705673922860389160855855464167420630631699501004580127876223941101871608233492098865326774256359217294393107286222460445222516045501486056181439390581530821949820647285038456734320751479773636435977583899100357837016400158657005434768571156234974606314098103464719263899588016639259537702295908564715351729550934811338871686933482500610002601514182171859390055643286112927908779494138893791638192648550939192773780140875721594675184004872386296339253280377495989935214343936855541486681844962789331604901461212879051077497416408733175594618951991222959863774564063480474003390551797045222490305873651465030259923963578142867897626224879323510462457658575106900902426143360854526251932683226117513863290904563926114160879064280230179912770185434120138329794756076982083528402677033177420516537134388740111639900462209096415961400235478227635636004975699754279369181611243877092300190088073112880014510954221269605279929150917020556306514651347791365679496264407039020066933361109397629928230417942612792932589654193054700659475217374945910041800495808614874523007125280768742532370150017524897415242969370128853599343530909060137369432861871872019543334838642979812876383032775675756963061797587368222772677490913635439744889127724424531354916302017656652749997706572581492537659277483415253486817875002844268608316809593235199633681069692613585861362078754260330530195127438203245043810363162936995452965531706972593177307638897682369243544210942140980274690170824186466612995707103836091640820878380856842715448315253367270687983403872974780228412686737772887959440949498733237552221675260877445032766293697048254655192374112945591663474365012341772986703147090718150216219254982560730772547300394587676996474546499213686532531651540729818219644394710061072127502842320704694299348189084851176695922391847952089127917072921741490011214615092353038853827380779945456277809167201536167770060124298937992928514312408458763890499330378497686240465875350700721622360548833719653476712292903294104189748293721138509759141856640469086357248178706420462376302021486503465928985857781688516854381489570485748942366466007111117080934688523313223868576670778000977038023269046323267517177380144053358018344196617906828881623725443607342058394506172366228480526266193794257041913834147213916767158541500115344466703710089231255426272928269423778680403385252528744595988456981604548909901161875505506926593044111307042746846694227644218800565189804861346069363312603798311668367997097790860293173889099529302581564338341341429902745914776437614314411816929154501529888013201125669894862650067966472318998997112111727331066074041726185333813859750459426759879816934476266262530910465691321167523498715688343967973455757948490427235442450781303536749379742566365473561711704213453584321883896576276230973922591745731989330456595194690833034016794961314673205011696528639217199041895110963949807432318476149457119353278326468016296315422535019668799191697338301137132596383790855121362721295395343587162584434663907840025500180158334286788571023448232595341694916235820075746446667394005227422909682715479001395889486084833552251944096757993180411725378933648723273373951072086232259472147905173702504339065886066768676972774244001860460786625974204075219846893181001743736267670952994445576404829889119092775534109472366087307494731501530500344572259852966443219725294144818600762964130984776638663052184096494060717374281383463871072907701810710093076823982247565562700745074633465099014738391466838312001278759173364981372809455997532134259541807707044921382590592767876250161825496500416162547917485513891597760851017184651937380377125302243927997748600757591087293568027117282970516058513645785152049312117128269938563149403434603168798433089081308093942824909760522013003852421179441065608808555996937001081046518073580660733270692337308553083270687809999872879275200758397470165521978164828019344541624748246483206435456927188333457257008513618198015569608826463162515580873821992710706623825834203224181409311946365903605254271499504178785596915556916220850109853599444152064871966925942922345900761545999372458950110086982171361549036402027932743271378733370043324759776025195517571363311748361432780914943624783859762388060246984212799530533287578741061954052639028005518218245171985543068911591367830883751846963254104206169452499796754076957364225428198117707006345552101316706517361874063744678385404718454413121727755754646720496430090768119762097614996733327885004279280735142377019891680157709543565643488927880071478960661895966390571610943091480086848871812943900828333554622572925657153614281388085033800748935601500493405676494169282142378719573822545622579252465257557224577601085685857026189093787503602278323541676783224705057186854444968512079251355096919767709282708952459355516284621954149616321378120822789947453236373206356864281703443749015078891234505491269091935949766656081014211424774686224187109476574946514929249851627416929405025251047761403471277265988850668234234355715953410421074681860578225306982378079163559159302831264879868865251892591809273544361523099130221058000189164907732910614195920674780659232843266648504055037162867488913923117001276129211877230249566712100906606832631554269696748554831181346658253157281559591496774108096013729152245246427249081165515154949055194314393837488074724641138807495839874700187623189540235106204206161253346930540288468158501671649019434977038338217174089549478540885303724169134676047870222964836278183096164149407463748320391940405970814372603916179560205891593134534084456200850476324703733806110218760192017596963482246716622637660789277773728818708026999261791655855396391226692837946953707216643368134597336996329721283476160785213211010166844208838740430005541411100389309640904379590130896877338892099938284540933561398204630632375595830698990056551017959097987968555946318064097844196583742406815016128806732836208557984302798614864179750422879858500705699137424096314766741617860749394249146605711664117785239879512850297315478890915009794287542795456341578227387551755084967145796576267109078261359179166106895808213637692527598321973143942136956759098827586056530651526679906705311352690855240633926540922537456276094047959567227601010689292005827685153841226602077025038120776679017326601463994432417839323013838095434738957384433630841319546145918709217100956414993984478740287113913287378854468713043181242358484122060046806431157580603775466393486779074584076875629250968911453251391442699384906666294962822939135919835263809959137254789445874587989944462218472685318390697969097593777564435600480837389633044287085628574524746907318169288501215595427711247685581357730954863153855687350126413095938456707512104160100961240292531538576123099890434389667596320892238365005671576395925902523866166738715832825359063634619488669788987577300650078518253301584516520181746543936396093088402408280382439089204895612234500583436715288002291599624719943141423760716438370478685868743735866101810326844218299060524207673598234107422893847295793604296001334471360715661819620179124980112260347826764738426342296033157089732530533028176421708571679870802428787635484894977207089984216289593520600806834830124265648112922196082771645059355888930652783239974197362260736341288681982703912378220107947479128376331582871200631411118128836869791791959233046368117569649087577007322526413954128205552525220641130737430021890394275809850661529999098550178623096329723179045191007232083326656044680793005829201492735437743279649425138789652714194981285222323198954685135139184308966067823999488171798286533284702625160647107825376878016204472190561640604353079544207294132289499893647483489723474539123198308015033202958863501604381813537321779555964998015366727846257597029532159607744772812414898965343633293238099673686233575500095345626772587942194513689034888199160867119967036745211215748605049542411143232985404734680584834064534223933471266218566610304220252192993979771944509139829546074889575362238383845034478019719333960941171442910136557663266196979366526128620824537631768568234659043245559383678450966619824466062562838373275841141897566688052268464786602979377455850940543395519857570384161060212163209260048443173553894677980530922416776587343381288196168850808148618321834507957287869937639926723854754405294292243000538895791572865942968908078583801636126799239469225283675793986024355227586549387734871742586799653779735369640803401075995185090536781462846074243841273676163585718667440148346843445945038006646113508481964779435307827634064017014558745037790939149509123560608828273487462993926227608872087349492254196226783391010169262810327134329003835665083645879271982551458509336563170818106822077239178324805022983335126306730377725938795607391042728792102717816748297459900840173882884258157116600657581097903016983126423039746435358351176048137883021269090879811455408986323368741805338760895570557223571695906957383195265956129254469194713675924111399397000832305645118449162475948757501500107630095835689257648612306939859593928083727819221183911319348641000330866737030228057821826311875481731385062967799902675999654035308658213675344665823210011039863304541486043083050528964739502464505515985273748156224002074700652233757464527890521590850911370264000845253669659495185559216241526558868857034263737737142856100329472886920004449078354632781303016088237747103367811233163277441179862291949257100736458874580005882422277010009577905523636986236415696565927010983106010770736776056280403262394067328449191419423258704637378225860498894895607280842795622000602411198045648814410617189057984816010054569344968146877392028450167186644006480749588655745259779183604682425164203862080923003935423055906508024746208123879964175348671170892510868654849534925129420557217670048715762722985345026593571106340297150806183260371725825269548904936372939773967889081438872270203147643044064714454299571556328778796012085555610254919451892941340587285911887353408278440975480115299054154583450984314753666899212614997707915950807212902001558843241575280671044433215150086736925573851132053683060809600617045412639537903343684911245711534610100958946379590826983442673717155328304510677370649480001672615039696651279241855236661614866148103874231070446592399952142611882246339503983841933646981869538399677439499338440189249287602590959637682549052387225909442811442809630104947854423741445398674574579179521253453657481538932301969922130595059125606814965982892704802690733674903922481656444330381144818082992796767642938251820692597831049362660960097543080148824224427519997838115268309984089577443230437415780890785013024813569115723860053782205482367569915919216367063849377670089826573564247417425068647866388384897144385752455934891119498734222151548142439358558552183295011047499959818817078334492535257128416330976798813697079040222930040698454560221209541849045220143009674940954761367130896120643370377565494712251051618005059747095103113383437686941501549031263200243595774978498557515808937696490445256039131121787158702698641421075215370886726026957534079050818020478389571125378281962946578374115225694429675058182790379684691575176734300262271713825050931306713721529491066291454008349318277387878125554563468901655419926942088545801874567058649538693985015016536080228269429359717175616822844462750763036107531958351716268709946909946299918726835064447133028156447574961812516800663162375534822948215398982488129356918912490464295439564603285624994835169543526615465572384917947385680564645795541748528667056093706593655357567341683086646855947084382689578292097061634199686287675945974315191777854575234708790687816463176002865290012781091640052873920287644324598425601336503152171864250614492637217480999508218537616539462622091383278040607823640663796416264161141173004467243635143785646444136152903086236419664028282706264992912082885681543093227037651758383777352985530322677361123433753162481873386585086303416397138092108979221682645230644355518146913347946540617337112284980332767603017629018299809992356632110913245325557077955303785329205644095335619600587782050722850652950956116422566900344211088188031609273330965785944738871076388136911092371681074886541186698436425832190822790022569151564923702293904288355452361675373276571299086878253496781575267941273961253459917776990325115478328908069526568345081032408347033767467457441772262179047539094391098848440561012868173758835532916346944150309561521998481558711346277752807734814712580049347770912834476112894054654966333011407247541827899695144468900208665881514350732155455307256534599678032800878495092177497874410125746571088647816838318059652198172137148210050316139553347859497718411828052382506115012342721543850182192868800462252173868377515491441616297999338681715623986542443460987951731674725414533961327094248267825821611319440069547954381175963949286903914415921310510877693664863240239345813905574996570841008644116450799355105056111089979985668054920938518928754666608209287727537714589174243936796085467629530761561848620891733082076291696923947144813843138487416508677714643171931452227041331399414474421025091693488583800658575493695942181565507011027003234887819130228817641647669401370001473457956178621514411638981806895476445490553922628467888531344668241861675708812928759058013237711940310421888861010905361233288875921434148473056711256608646981975505302608425026593134443636054596502285390046096031400024679326363781793660266830143496306991190993721895570566139966658924663312018138509641330552543345746716048475567965436171592072699972682407141020278231273614833761506437375710305283398309324231684832177739409669070520221021992538537815029559926419708775422269136607099436614984272848246962424003125165157783161481972901151037874498364857074477296451456057496348638625302138600144480641207064882454767754831512323608851776470133389149438714458471144581534006825101240125553303460403934859816385651258742284459674519304815396995259189301402125793986979104533438820614531701811758491120306607370860187725903656911861333569746231059031799057875218862073325489165205790195484547596631571202056977134159292564177908657100138264511654539374103415085346280662890962060933103410356654998599881421699282363349002063900893132974020737095572089052986126960997910881615944185165998102561575086941936018070656888598664038589463115179354317766356034861030070898469867783925922195470258483288019771182690868192299805747499257240280268030563367577485771705860664501762243766006993852600323426898208630597020386064275702249683250175864597087643255514696057455139545128761703795165787725336152079412964250086621019708135613301294955763431041228730194929522009641351934170234301883182918668261217704784378242028076788062622742524922953939287966612210020954770521145487180491369212678068730658529726384031622697895903395717072053495094987366659509569126874503041982941135498594808384240895451784349076983063268409123925138077608375005088347753728329601977967580923190973995023985749705661279833074764588672360714533151182093690155949400796358901761338099324878165923485430683687539155960571308495313780869767320413449599589293246149163739355729414381898248859370933092145237561215690436542780732642324590463963073451050638886400239699670641041737980675691096228600331166847264035790735131054643754860941966268246581096293731897120994447855507362254109698774248468566241225004198333316841874471409122638556386697014524884138652337283419197943720049729272981462109239707725543423586438565409862103864384900207532096680786957369218225327135769703318260563339752378572595795738095911747219628023418745955188611471595972400741186357611682453330933312820939051667054800765536023154781758051677387506006277139908806224524310469281338852423586750295144491785489711578745636503079801888249144369708471749127118030249169964886183346099561517162147589056836125664509229731819703923753821455233431825505642185208967017982565558581906557281093874717684297392873466255555168644742675803853624574927097647035120669460995724958663636357743381095971767859852282125458695446025516520611162796780018341172130533213274534871718898125419379259909960431571415232850131248686424560040638480158193030610444953390877418366195764120413767687685971009041837121783243889170655433335845601062021206037024465946265638480702554547093632151544503204560798530146594204439089026195119981959153718589349859687106938466208429751789664730331009756912922839533559426290782783248686060585931708185780301993783970262019287807813393782728480109424248131091601251959469901436780964802469049859133940946661933137102839430037822899849420964844740568808702974029102973288860901493729666553989882505300807656571792455737171338906218733433242305610945396344221482991752831195959884966990693835941615079454807703159689467170573619266429862167036979640357336303617348050535971835548003320177503042529989507777368273532645255896871437136853444975631813882500214345226422928530695385585504769167649170389161454760980807144810118521787864814386506423832958198201003928234623930388287173967672669507116874684237179044466611026303527431615661021191024962121008702461434274657489490098026529577780359680647201388351876198410110195948598772289285267916327280243089649489210032956131240621846808469618021860878942046267515506004564800832949992735450104097520415640401962579211171856048717473209654398429739322876652390225905365402679644103602350324732328108679518184219471001508020612448696418115245624490282739211449440616968515290101319781717809730088378447515741748490286105219999491613957311903523256895179599485114849826794805733670488397604969876417487442317288923030886351245625734438852414010252206220956612104958998633932562910198863361701606792563697911163238522817325131209617728122684425195673704270351945400024871231214010661227706891313259384465730534232687759092348782805485809379250564875414945965689129365350023398903609574227082369879656991295600863745935942295443170754854765304168815682266568766929667099854659724741859685540623509219414137418688761098493558883876701950700817739549128849063973146481821612220490339357162831312410570728686513106536424828781260403909095558274932934698614432896456163473997742732233316275502659591072204980666980701962640534167955396392444768053753099630484054700708924638186835974515058985959315724627439738864325535895473974902906444165845753152514220252035570614724823421955921425668695102971886887878354335663078813274271290636854555105378244535194515575913790656647618731950335854326147603078661290222285933815058606748177588488648878475328390532132417599517565484568371008049479481767864573502339843819666466203554315887061440213756886873370173924992830870290763532244742479628345546222280701633098657135398934835163524333323585019504760078245551869765433034653284840453427981730752326704960487436044080007703411882954397052394186224142865540787544585110511074861967870274269638087185695725349550159189933640385492190005900348362071455341554998904210317860480811731783757156852150530488434274308747985462818061110240300891232754724613356181523743627146042044970624123473494957340417985731210229124469071025444047182428496730561551315283569790732215596613229927055994177259648477508299365478956581062353555477275637656405776480196228143439460517023869029152893036572476738191282477445104009732891081468689709335587993577099772354440525431313445670381580286584505870719061844267773634160381317668200318225552912121367944724374401077555236321309684102811480441928720006575395709836414963216297317693775847829227500043221690724150852294603559503609135143933016375723527509606635924140432044802542344056416973323245253111953941177522455518607317723501363050731347733691536637137792536257425194838008663336651254085210940312310663348754126855425843100067273037685567480363832724103980307930538328392318972319233409987535137644267691650403670261603800732667905611468720764553491450774211677313497423984181029761325665245135732013871439015662536166544917341207775928991807186303618017977874069551219065729083773559651763923062336758298756873423718054294483749635792521750179583881314871917584716401027361046248047862644759558247588170628768611476007540961248571226448723301836352489639222277728777904886727857886382062312334910531179614037761405802125134103401092834888469637174194379041920649594464108657631857487723900873054765807230235337238484450868893948809008689460247647467511091134429500866546406273860402198673882654351663500129127809627957687225896927846014571387193502223137054782165949739230766809866661687954991527080584128564760676485165210763039238133613121175583927454229434539806637108136616093973146369151114715515646195862085897541764241933106952380791565227852272677180322211223164988727596321783775960533238684903983171535006713223736622017381059164317769874482005731524545632008874650895823330401264427633233136806587491305472262715807556569737854576809913592449371954017412406451857051001578166984588755416926057300171449897456465168446878102198207435312802759532408131396704086097664532450526273408307720711329567882388059662403699730564802051131976122087399700160130272478556385002522895403548155633898335007617484360614403208755931580882111420363455792368008230795002387191731435631673696573933219858034826350838474311425687552226161480254102820910084273033530844000679792355600176269666012145135647398749487955546476030448218213866315453561024268636266541818831083611542623980037934110324601759800000520288792044527731086093411188802414583728905085919018513465569865301095348257487083946227660368405442097281890915574822072729744246041332438265394898774165552322438519711352977773011103186471678878619873710139521573060419650580963507370143064157804806976576905972151004100064204699583213220031060526462315376719518278266947797508523705538256193830524364356469276754650896475848577981424518131500284707158774199630400350687263918309745158682810653622507408758112893259725950961019346277471622321906605759917088664707760457318647098899127770252664641986743196024504306000731630395472167721903158408069078753822513485989220663019129077796724295967209000918966214811763950684936099918671149139714151324092357303651597603279060155653912774790786173147366695357544641901676074991709314563756656119166537362309653586450354219022542236598019592980942238200844653914619591024524504834642129275922169462522555224519285930449448540465827778659042231395205788628519114344521671722876312155462162689768768134064825723058766823175169000532697338596619092847897127089668273255604319653066922729306476107665474180986173535448324663630264084352991290737238649162414332454213297648843055014988233820758028270981890115068133097567275298386900394086261000339284652262086575943560819945759776405081471634943598511768948781545222155387532978122966227759779868312892778969547189925967052802649899540869096349885525578638644861365867266894127640139420348294725925701680107876338615393512116770171153568166863315755734260793162113434946249697761752485286370617515981663977175507155536063594574261743635863030534842165636763209844098089162768591970432296675905479092746555103664280223361534614416993308007088494540843304374410071377246187684689943969589943193493111837440588051597052477727680539753535953911199126350122786890169391507531481416222150399360947035732675301302917223564753754204431929244985870979832004898550361962419952488413103200311433216012801694316207330348281807836684574488263533356718694278532603737646406942130164999476057851787148927444086618494550134363142340962642192421201064336278350049162884142878320316994783694138361690149370290302767570310681708927978096494486991472289648701244816584735588491233838335293351508217872261010362880881153136766167769028990153579297531291268456365904548152752728687906836533068516968738527977906639009646763427415597444907196392548535856840263394783132243328179031356719994071265118594382170223090836228771633435973482164284149247996724784100435316258300972120905988792079718443380896548352408517593874193962145227370385757079825255326666022828946498579830013120955979531758934358357561787265216391144834073461251539708254080342684769074307367119805193787991688280268820524236159080021281173926651531547375123083976271722111167882030734440281717559149817205788220741793718391188542792278955072202774893446919025014137747416121423548835222291745827987342185123631690575818986460356668274676305845082479106443326769922761599407413003097843185439820669601969971089298947639039029191587644714562120709986555194598633781429681786417105093978548070123633906343955312114007603449582173462265564826063360153342865122850355188183990288431184907258287635849700023675687227800552517151832546163627448009758060867227841683225044544834522787554407206514232441895429263383635854878910771271050472268088821344081553171417912907322878629168283186573914359173871044899489480084864350280930973542964325424629555594229958001296199034466024061621124636596832237931256248125849186636770763334276061462827833524066150996912132943910801652395392298677986863906758739313767901858224040088493405862188243438472741191624640290041599212196520348721192179759756218269649319019165732490004953957305744373322193853020165131834210886992615030162126883976376239124990160071084811078888360870724192092291932188256957991209999910765813000481159872956561047729943817838370403675206598847463264412129431639634967555087222564884266103215175462578668166265307549710484580200520982057746061905588028316411560083267076151989235111414670846256621780617797753598141681927093568719533455001868463308533779522717586261311891785195888337599358086545943113708401709320927184412792006260606517787389387590297947817012581859991068620954634316692598140609183716592927662338526581118914910167721475392541116694640104571134662840672391109732391419084982057618448084301754883742556841208019729141869270462911717682070707207012814431714663776826813211181423501102736121537372070986657351499064205080288970737443509781406797922326722399438725400967000314642914896755992746451595342270449882725452317820531916634481984002214955788497041525215393096775457240861925371117352024795214174102443398411465440514082984131883428001716243577823263947487542251810062313182274564870449618886802264732156278185784491556781043460565276690628315945176366749397031727864251956039273587476763702730928404653682012059125381458334680537318188532459702388353642720399802689845331340830079921302727460731033150638179026938695696859728831158288615533679952316007726419146659725164680956485323532707694133568460011631868599781279134620668459195180442830735905836947026304887845702914050904280933490023719899606330313147682105073818019535152385519368004938048208457827112720211891476183331035776243730924223793104243510853948557836755886827079965727745341179449767774305794901899445439285989297441846650490498583374362516691158162020302309243182680853931476183557859551242000680295890155216508967226969216817996179599811114535063945724101534297977050253591313998725076462658746734809389051699295855316270628667267096685973222068634462242114728023300061378740727139504333355328342812653919622193552621502699586346472813841067111156596385767306454060799304170696587853342452141242658215876068692247070619672845874564827520990946631861409763571729097197445553765442418722098118125481397897041107851577297296849544919247860114316647999985093069443755187388665455121521341532077824507972299564991297644416414239209421936395463304245080391780613841163887439180710522493159399894823978739964680251454041264625235696531628347153955534441633724876017587991612546207570912322894203078766594222535750165601273643259660942778298533545584340119655007758343603876273965908893952256243966096504179171423151712039178706056097400244954210202776241656430476252192176767435388312126392665059177950151909519462814283508682063285698309684694710563734086286958297298024831521717255577009408541544721723681769687700025374033791901264692071194670033187813224629353420940720343578056261814423474729154477233173764685465980283000556301253696027567092485052374035819126423562615971126323523592820892006716986201905052210141385847517668870075653018953944186360249319143875148767105778284015902827770338272302830626900852420854263897610367637884791096297018865150865916823211364809427821871606077850561610411310078005236630506713151273592844931782562338925821471808531938144396873039690911238893551005266864475706631269857773277214612593135442302113331198012180188600546291900660592821199473466544886948774836889774478661699902979423918292781108502062691992798179626798431642022461474668193366189714285026629194560757418151203291183172565019303497571250475853236040550974055256624245184622800120784575501192678753963906556716462065624958708386424116109818588109200588629381131774022331198421261856269968320574874272855844297490757316690626452290383742175767177154138510191510777372513264565416536643455967892010964989992992330841541240176823951872056051421967046539461939395879479993182474358395071902874882695083097020941417511688276337209080288174022903137621683347011624020839794376267161611217980035116191920643862465414600228570498001159834529345855089702737148567990706823766601804250186153911560119192809208594199184418808453335887517550146063148594124319621511325764387549644966541381398073800880380288953340070156094754573886602993544604752601923227674684986936895633654074704594370972302636447959816816647179036270990592353484975513378805803845741756953400078707376693569872916329141416784614350833074058391876260442383967511276120626714537024296435756045913971903054691442694655429273019885936878281225521674035617594003489809761905446295285197429009892729400914493074960521410474822282080499205987576939883588847101648723122835842226862764663315724025825467041679404174765725431100676047336111074916238838350672104323854187081549314996087197920376315428175056165021329129311730860061460632635972326115957831116821460591368854300542869421597307413246626159338645628322482109342291793861506168846630797375360253508920033284289345729857076517983630817663286197718748122599431068762385547546950970036208555559982527281253053095150714276514807562435547001670170053355512343397468590042906609967729671855008421090813784691711805424853642903156643769116585771955612366862315472500877324012646833967294947516336650439290911069736323913598485707336697434039619789452589845560813451000143702064035899841400176675575555150937290633210152424966776465304433364353435178907470873644446621011659098963454312890912967970870107278201933362552958276712989339972357061987211373540229624040143408718033480293958308457778555884417687791450097328324468208355417046096219025986634294125821110814728652812001881224755672111839034001005708976933233814716159981311807059065473154580795981570137394247248473403541365325337451624704630827028654719126018694886975056944918351646519150406579879512980320046442881085552358291731347533693353079635166772926540973907133280729865028341559002940320169286945756843799447916428390014335146079516156900914698189766852220149292392143520334958232408787371631217742691404664714944003780740574382375150631344135528453226878075107384804380023934316124524061822098495568735340200841148189801575538595118325257663425716903950654662132442396816062518463094172021911959135404226051627994512979817239775453383881860452570187599560886755689471580330955187168184205501914072148880734195746723417202619705031958324014107304205197131620825673240870308686032566828082511649501594825660649411853942271873456176943763320692492234928019472132724952274770160781422415682557735013032149700757829628801858755544737497542608452215588833462680475622054115054581152008988625820935072744685681786865504278331417458148647738646881539148143695105658733442214803435837554582984254176044583995624626725093355388934819834759591858330640444594354487128129822775807102535907058651915906528999842505985553641934814551086551005202648357798492157460124158198164321049871981824014600709488554980372064698565122217363972030844937651775656191082071094446296518607319495173164900150837956783900480106843868343991246325453643707925861722070731603777648927979009780161921737643371715088646865872665043538314446189584812983062177901852293098269443745089987977489734158624018055987814728631583596538832311492523525489636884169635631621771939432758366181382425861631430723159817691693510480332685300589679550918303095919346801671646873413199475049188273757621361923168624215249330103854175299935400519656548266287323393749646842705465696202878279481289974134818882245324424239548533234225795620435642072305871763825889708605297595553556741129510707602869478865121813888013772001387072399148587004098131604999868267708130732206965068452896305217441749761172243199719105026773892497717824524877245056593058811669611065037527194411790501693561434279631035700983633173112921037255136478178445427496254863618643530433448957071990524331554769180939978425784511484515250598561840944455017036316603928890716190104404254595460539503193642447703621943546644483854181851500751879354423661255195940561870404627514246792489771903596719896172961910852875679547793010454274294040999038579883694391398208862797339406292289380609069048939512462865186180697437729313571574383198649019554326441778626633191529271302083090003284085020024013326410198133595217555962587739604012183186767544932372916318491990110778319996131883922850434675419459597549642516948098216139217092295442346731207233762392092901482917270466035350710101903052302773925166677249553703040360315094067364852918885804766154239770981098681674279435536329557757404979442606785637370041753662571507294296284637211382162589731783478806301419332977578229683846084588453820132642762950971698512050287946388985569606857332358107279780963505840976611527370635376660798132686217615990466205540170871240555007848098806708430187756888996950129141469352374771353549967934223277852944322042243641388878560403680311251716208745810186389934400596059074503047785060235188429927582903811845549937237500593133931018270563259464523077905863264554980938648236522709165971938948057028763183676607617183518530386534960781453166214705594941608949000005579902424180864174582070938060175300347882425674656345677863481382633474375810644866904777098106715933411909656419668728393393798944605059259121701779921302587249997737136715228616026844772662036390010473776045174138630800338457428105869864058522184453625395499012108983146274003367335020147954878129623005233734737550794794386345735459140067526873682414270149701539843766422987872499314610613457235469616490750306046743884214241112979650225790530639684322334998772700092630995370982731258008691839552295626463845585055527548691368994429942758419698186113282779861256621375993696554734989452966391351611262606332858129354318179069870374101991456749230082180802173691650263906997103469562728663369181531771828178112176259370573372907282500558847746801352954093060206189705164357521106814179540718176862404811837935194062301892916055706791465265433511336514100070672131180879811477495406765675339435308711306872849622324247780678256001410228591941603298388660251280000115069258229889904556059394069549899738354397597085518600948114051333579701860949389670412676766046485787866156678866594066864542792620858057642961983191571343815389712240838962425484391265699146697820629321786049397320962918254562484255641596723995599476243061424984530438292668118840025627591162875073762313716412842222032363130066996460934028367505833127422808805131813439333029759275918196465247627260352352148059227449611182574867738136452002122704182275920327905432686092497545905443922351374436527642460289988468611141324367198337756335935283033009782551363236516921941207260714045424072688081422380862020250243983733398800448228917008435524335345903236193316046346933495499887944372263782618275842610810291553940624674763033111127250367104746026344569451123740127633682095700025530407540561984228687541287615335372123428436965703817241624529120053201381694401842043200328218688924279960531529698817571980865716810619929859800193601727447877121638883329044592050836346088351761592854281018576779567838986757979207136459585346481859329482376452134834906262804311559869790062997699833859043443603696731678592961004457024187299975971645168824910129469297530802361142053164246414086497655700769770896751365979193388473975877973495582639090245418366820906288563360537333773760280665291642851788448307204956304669983828070530152404526778909821417328581129350919008613485559853376816151782928793022790193845864913348040040880483367779548063675111706544819856940282210590938249100582701695678364566013448109654015846979827460044045013126168088901834378097140304765517499184593034769194112112531202237066446609856482148837927333201028981362181679809149667642839865614541295232638318078746013932560864234876587803764558067896608964795064161414636096331538066398974622787389724274624179863200854727183955721238861078216849275234736369071111810959877535603653129230416940759217089319840326848027111906803495308122266761865628156846589569074025013575667705581227983842225572225428089308555882980330208579717848046890454450707721515942715933960543355947859905966110550726104532811485155504721105606203138051892759784374771026556436466244637719026734889821871803288443623074371994942875545692903781526353757069810530871886479870472116378746515340307955190426088617959242606800079567396970411917193393452620111025499628051407773037199772944538734454419195280152943601556849028834981162785762476252805787499054906380769820197969328904307734452930816487667729727410319971152771224517899567099903017726043731330210801890570668353674284907505992729722358568728643424394606295325967842878119455356218209038995024910491287332710894830874872173395235114641813360427668350552546220095385975791082334418984559105506714658990214610028177109004007084772145504284061170179752828390767594062227120724465341573347867572424446632023924699919853696151224522417886335786598694079990725648680362103840243250980772358414182115967586157460108821146220879087018204792666966160903082931490312260754854270582528523473095293120595640143019209301539672801381253084989923554501311218555146323901501235832098174254568496369743449231815479481710532053856214093170114329791831555060745718909875601704898834106514932574535375934520332425914160096321939518851829580604411910483226680704781590317463365779937021834794182620180218821862758735767143338921846198655681589668546746035907657145332163321254057527937746284592857842259927205421178015635282823502489650960414015223679207016668530312626928014458335923234006221815685016429189887163785575467985910984594478238159518202973543439924509894283810629880757684130577595791853839614391543791504806353788768659969927918276224694585999311431107398213673322269208100892034498735511621751328595224266151082030396313148842479384827007899988365605554215518061648542194968927295075820828189931594277193887813272599592413672489260834996798353532559942768817206626404594776305780769944051288241823860905929148422900057312001502166782267930462568072474582060002201214490604218182434628224413073409318085117716363081476052847536970721423708630092337733132352496726926621679395808376136262350955476382102225109174342459076277683453878735490454761157761708656993787615223820164417757425046243776368351086038372216508203370742037596938023963609953532320926052945763022181881525043206376800763969992563469205814097380054853402836508464484613543569976749372775216435940175398102416378412850641717570356265375283031424129986891832024855799647373154248572369315593513805141473130845182464035925806513913440806740634028067520232051874934775560158699455290554940146968080603759343882613910502063899998405885265904147450967600443691520490291083424027306709392365802784534248016043394155159576112502024350874902576200112522955616917291786041860133285675737938907536837163743666827265136983844789148770908851416295868227645198867725948944747360057871564305227435457401697562575019112917810219965281237833803521420845128694110814687839348177104653103850022014152971869107566974949299080806580415597000892248727261304936791946355341781514761599273957678800888456848611789166087038011802420074505656063158134243280169579275708165947110926012437749036415127326560639437822592855369497019700993187011873522808793774335906223769560932900807393530778974050765709966977464819694904033241212393032211434441605465980687148466551792640423924613531142972807004705367460472323990458420035333807348723576435072023711453661709879720784854312747601289041271959490076276851155282518001834049343838322744352114545531122045204248136653348407184588614382625217726863075459448836643963196809620348879094025508117212303859822265691165729144678508380922669948409493854326153149996544070577864494589134796655908449212584463589456980006192079268363042715281418604984030715841227631715599925541229975183452117481624158941811669195493664262093509393030079664810205412552647078593646274507184785777542755396922541703962252787671055556891970985131543341056682934267636458890429458026865027255532820002827443127540537283550368472138107786326052597736484960809856178707109354517493374229691427468429639089576940901320551132748894384937796829107325947591267688201325561094400087461007912745804178652945645731860990173359321048451906448468080430677749589579587854134167784555240736486876367272994678036795475693117476998746262240119384190287274648310425839455752550089129310325301538021460196504176515553428941524574854448869410105158489586405910776315405755048345322409828449991715161563040535485971761751454276065627457920012698958101393223147475882648927429748463404618029925047052524931626826519182854737627352505534891736117161280963702269887112314924118450091242306637866974272807847530324951525136847262402434586649530429001888682907291260022338597980987076059166892721907422717445234315214286575263275141524111244028136941431063230364508942683123841924034832220128819540478758777087189240644264255151664745661083309789911396729377889856563212957686717345359996898060490505544504319954451675153235443486236420444695339424536398751620985636686514887730822438918822908313339403969519745515992292864873969953630501390875440999515044069676787625431720430389613993133061889459083190043896485275670326486617800405885848710613369649734502759433792609665179634222590388675837016216179814810836816531945078645631354215920437591487997995948541032330486251382778174050716583827677092301921455328215793012072174426914921459521261125257923525222755428451727944570820166434196349059034312546378267748583844347545781677604568460958607470378475265654364609840157697181585733686970374561238701598300500623434996890557582156403657544284464842163840428743318438960280620998078237632350179063629510369008700402925994538046541131525127770068374482391092162374484020882424418227177450881817870934039835590488937154392109547214844275751958998732005344662666525853544133643455265938588515875936102310852396223704597745185916400498622646443076616500008644025753787094054900898458533059219553415473337892159102334622804251945406548876568865783536603357328561335426313995904288541898347981974661278217945562478633249718749964472505692225590412430815284338214289824452063446399481866027617126487334409180547738510263744693702967590889728703141759837726366135230966514402109803406570598780541554306076476167118414584909573785625280759783684181354849825122095204893920962055475658816970422193746436384010960992839391445378681371594717426605971440338745423540836929382865130696428070960709202563552027117071642094704418502577998278578754260387446481387376125540337960058581233270055601261345098868233541637494732315075946878958272231052647930135467777814353394589466571115960205762647641429817970538026005684787600700191639422335751280972515908296126483378694225462234949454515530630338687588418786319344004292575146242731669037186537278557589454681243398887480709188642804894764289567120196832825545550341811188661485450712832062627863860497515540515338930760610229247617897426496611071690574913863625869481502564476856452544636228039092582404573228817015637832349679701143752983857475264688650316862089910856647762876907848879214015630708266790839181746386847756802645442480082476460963711364437281837753139009750172492041440389069391656084342179342884822766940598873450112955099211215516729123394682582444848219335208379169083478877349062950179498447116839594601164638002939406867533431298238758864836430066208340092472925756431394913410846772476816443427575710961604973253653561321903476187480289334565864166115354278359907988382765279367462852222585695587044778014602721254942031203854398955332412109981298131259035564727424796140412489207928025975023377636510225251083385286887980858414779974965556579984890035347775671585092719837462211327611981082986650679260357528452143168542910810667330463860138848981525636482981497735375702299642593343328918424746781736369087029784952851989560407326518752223929895930156694824090181914563421534439321325728163050541618025131072836526750415443738907252657934550467425416794107228693634912608681445366124963323923900078944579636928438958534828422556165795794980927844025852892949861063042898087765991172824291875462476140293485857073247254166705164425547790944622537853246113231629357515514711281087221586359734234632556308492907994138668675611197118739214390898413463885569126414388661294850217107042383587395122869983951345391612043362469367737332042414926270368470302638326943007120608433263411033731708437776175177164273808403572092392130174774320598429594618376810095349482683716340900424688607627929584560904960371440554076600925325948384549150413355446830262667760428603350911976022821483158462265963954011085672731556730371927491408817962407540320419225979410328555114531814516800911409080221268622540088253902947895335991153724464944484098622893232754457276531585501066860593936965040808720174850914918671344371318903882812748065947388199995481026234149167803632729563170574976395236719918520136442593397606458556701814915670090679946856943856326374450762693082013598213089653568487711772200727719534125988336982622749421200617727641933770536898689486565964693669247407387845067436649817912876316425779492039252412745571184071055376350693396783845634674496849699238679919632028074846286399605545744320192592425522847478074162230657830582926295273770203266204499666569841471592011825002145321820622989339039059309316744667723545483988981720371596437643390502261135011663616096384815460753463970874196026585777544928783948465999080484727769675988725086075735030313796600020366398131332401809782497923875508378362065396848603565826385667312378285969511234167005571610333367649250630919516858177634543681392540880352501105036097706620323508274657721933951628935061073906142602350698354902112780295936751360375253582369570710896021661404646545506188591841207510932127516077815764954228745028348686318176002044710985378633339102603850439399401413506182007748456489048391842644742687540481102677377611189944998902738252209976248210487659429075521626148205644088412075769868228217805781727127116377221817170644062980003920544165068074458597339207861122699910784230521964601224034127425895462828331284443607000950889419459974983723517421815949006243121676827315896280581111188925654789730637002570118849070801361641013465444801396517391156911479854983591023464022681661209465264609326919294144070064205134012209280129626539725727246955101272887091706662753535464576767212908765532993196240658052190173273164554318497019754816878525674004572080705069863682854624898650112471336051999686257013676626669579678945911137654949210890255899829121851819526039893541274304068086140046820738916874142688521451293079873244577071863943106707220821276585932587237673396023359251832050323623370181580877547690020124334248539768815263868922520944177368081660700563639429664051945018014386921398282688812615874573272769024840849349776920619660813655202865366524456596012924842076107641645269810547361724462403651858468532377825621721007182970144088425024238027772109921495340393997884214322716399549831038760680727378047942561469589209588100176491494262051516272977119445539236100648327291905353563687778649345759520720409511201467520634517816539142281914867613343241652928384439763920492704640071246122071595959829909368979984787001953518348722763100413048063122636887832747645201898764834387137086792711152607000715822327564048070562162089957095482838660619518272808350818993180368641918268377897209809780475104152618195147942713472608234650492542902861875441574035337583081640479066777787255169013663992852244959096276186816873700702314141381969548708756110916031623484052476614576137634798766351046014864590786406329507155413527951706711407325484133970043256460493637090781813460220451286325663726934864653374296591530072626231151782951270057596908094674187214631970612215354065347192523714247702404815150826905421430854041992069986776812673675538934151320551210926141293738847358582847338320562883183232897591821309526575810680964655257030016710215723434767891560095949944257695022324603261478385487056825722283008366581245830617963945815553488342297517642198517085386740787203563862010413602506934078364392587423679947225793151787007343091553481571185675787175351887929503390726511148140713434516717666201316912249351205129602316047929819912508492296375754212447827541596185864614545677746815009847701713810139564537232183039750628270966444130910182124145249418275707383310688012857183925249449021432495336201335976556851326347592060029651912604833286399382182853315043756940630901187966994984521447109185920506474491527290839589724706298306170360798469274320003195911969990003625713493434412370527696288367188905292160293126785595021875444468017008386366092537798011194176744955368897769836199572727168919122019848605220100949984908358811754179434739898188971852650529573160275142950246660313276772201475855003548433441551581658086624848548003226300615489620574226854886058092198901704432106669129895820844470327584207696376992672544863770471304301013342617922544834083421427259004683151026497258717979965650894951950052797432673627262127965542120413837836060992285407004655094108899167658598341579444445083625982301161754529056054030081686759426201425240944397741706027207663530471203971873829781483051278242031343269496531295808001136063958871811684997967983220804383349373575991784916737244522175802319670320709596415286747825206689129591889434742325314847394432670219441785758284156378049117442626280719821170625569189792194761950977719037055828147469758111646776399394095857936779305063186529640191554315990271444658304078952077824116644460796158023616406869472754921885453322147195687082793322067939102993586417049310219730299918585542096651739669384257404363979432475766238904772723261401058372003915820652400423832573970890158138383458349161659251260206578682485681479645249620876205855516308177372575608233613789789628239080179912191911384248217788733526978849307053757218958958472281980132672249844384666036780696465382676873732467541318547374415202815648097086050817689203381095439529284083938993579218985238568206981104791751336281237358252555352052474302441222382663599965642121858063102622559112886495065877451100872399452869476573441615680947054840797797308898129656693373565057861036729847634475285254255724534091890413172125033218670785269629059057365554296127552401781894368060213104615428298231788591076764166892172511311979005274227197032078121159662241935117537089029195517984939902914791723642744661069554067988702043741346070717229704708374406975365174985457878771930762841187794070714543250306376679537111414362967829061703849732017308049869103399492272596717475806534161272210203489092283580091505565600929333251550690309701444704954149250976483494446807279858784140312752913769108352571184709152122896717910097747532459743268700233822747923398204816563876064158513782528496540030802410078490114492942124046484662084556677587404316112541110262408610600317162096991504121303925360656233399232447340240816711385312327159220501448256109262231087319157682948407037907499961214311968767898425681612774634649650858285941007876440753940428093412090978007578239712702849060209109708548077884208198121700971649758643129236199795241474811555400464462606390209002879368595078053512185846546693992721208625870367990818730599161567597276947692196461219489951686379693382006504519486665982778164727286047343580957240341846603008690817379206163936443007205966348035349863550261973749245399457000190343008861574396547446816697667606369669028739643556348085664855685527321107821339997884660410156523111497810731021119942894375408110578475280184161271735999180996536431855249554344289363594602148160043036646593064471585740764430718847392949280846154706411249397116554008478231626530727880454911048911915561910793755058103998739818019258846543355905415476550795958054906661364653289649659030127180283414587379083791304779825871265913314043864494587671410336446773345600576326752119963504305813309320380966702219400787773029051576391756200052722407497214172283556119930007339805126325628706033446211681004892433923793889251247150243174988446087448215702621995753438296519968813710512471030439361568995254028877663077144184615158525100357164916129340744043216899716298194733555958687179696387316580031782602890082839128900258246333193798123227098204505890422342669250040034173123195560733533215993387224746351326321925493901680697986570145105697312360594898751628762161646132055872844438179485561123613495076223780369024985997922656612754495894576699839379255220838718819524514894857960510932825117753591414969460943769572785263756468011983461508130901175738278911707677212150744299142391507469038077203191798867763617879477923862171816026477043588897876969485018758115461436619386677199166712737025389017776346160325298532400139618759183152811224139871630211238852992328674277746019862321000918210956490296499508172530080734674796883947885389647591118663421798846919834232109672271923418680899809266367219229130675422209349254628194950470749404879083911324302201333293560785118593913911121379206292486127179209142635652290651145043047679870122646744443427217060794336153259664294695425683628914295804878798111721096275421997411028954664947536278540440627857169285739614188096674140761296595138641485860413174011474638541114059793915458153840560777206495483472599805014123813130956325587197939981108613361883530618038939063621629566762908008081388254363960982846331766322161875206312326984907324417657336602771313233131128871780274806885413532418435256257838251376733915907505865674974554463675942482664317630318329034410925318398838844194749920004461477045015829370034671930340806277289579427502057073004048076356348723924578067623992499482453437898310496976140407126201850739656231361390054375516850693934435681939599824361554980126583448093175501349395368402561843058003336892859424005673133883050459947588385320473706710706998679178805840121560985102135284086278505180014224163483458345070709717356839939718903467927868222457174442502988244493583815249750419748118580314754199655540809896776171608187364394732684472758422308256045097714469946774580240510953900054581099345272650375601034137838585820759503055431501021589775535489017088980698477593107449711104463538815747110823189603871146831827219904398060377622695507642006743050809026168290871698053306457204750774833938830254308278802334912530098487774083454116864109171717733775817110060393542156947146453520564409185462024078514033392414551998535938196514668400562474988303720533950041791615660088174736370572118964384524045225984827851922057790262010373126502291206046079080744722604072679937597834161849309595766719727951519471933649139312400474695204834004420341648538865433329648705804894940628361404537669229836970605296134580710436204370668949723000328339924028604999931176108064221996018665066643233680531073671396384587580883954928924119963436603790647100371043970695283534545502143025054334674794852738093927943415020478715844964504415347258779531722676167019387259878829846318049496483266774750061639141024662157913383018330388507544953309852665190221141406240286356677225651085522528398246131858198930463370226468829753127741801258615060687293422260214753184940677802815808368207921466731464886622594301223843592763128057306150972559508876646952403214942615935589446101044563954477596161266589663771267088598743594359556317067649027675674748575145812942918381610752614389243529512032709810388012012911421095549800089419710593396837703690619765662874686513424152643113918620795935880486101947956414701233414218063039355393066293296566711664622658314923623655537728501623731036471256897579902245073331291482787313240834556883690167244151879989537457803137532866063363249161602247045224633725182345533415313439794016065027205811296974981381314023587968882289604988448168855126707792858299432399710011353475722058308007660361596812298528428367169483881150781656072315805710050561934506963768925263742610185051022495824334711404323730558798027514638956917504641904063533234373443467406041892830914544067781771895976635984058910488350114340309350220559234168879030698673346688858761578310149109692962453297863935390070595742553788658798317265110168614607760591179562802152885400806015095587939677911032791665164701961115653591929623065854179525371727622145607762334842279585621397115825918222500789205417625991823686318622800551968391097331809176284538187957193933287664841223679192845125456315906532469910226448120951906405219473822458240127207255696937226669049944453859506288446693919651301450752259419966431821506563069995161092484328331105039839439063917159473481627537989509382908847218415916310373507347786863579618956599585446900642304625926248766553520824063157062480481807591899351485556700551776112515143051405248891652900487331390723893213797020480455864416802069067614961121526277023970189120780452267587259970896520616527505651430963240623783173106072221078878216974561227910475483140284665823344994168015587500769825464347954505345995165270134231466513653308342783364512052001565952182520039357696918399288348214482465024050562633497471552204534407443246279707905499605961081548536764961156589344437163034136659643549518709986551027887189263049289570487746305297521081070703410862213855438117340512742228187740911506619383611417064208082247608345172402339683280267484518890714487028339814146936775418603485514825898447114917361932497986399098624964945072902096302034997045605365864576059811001049634205928651231909350116421980828677954553849106915177902547082496177081418569291735132522274630117341914587632301124537280993527244437044022384535178861816482746905624682195031448974870817320042388594207523122587493043619704350989284596940754889863190826467705034045385134277482369374873098708054741218971260449211798750121232071763402112122144967748036103722040139421986981484553235440373789800520648439429974119758840615377006733495769162699643144647966340672187592963058642737712014414077259980605642897878289578469026930370434277085437818593670317120872367397416146228383525653531725649989706149037546854563695877147171547604475042730028328300629201455608731072079507437680580696582093925228256384832332289877891251301160594068824679979283415141873914779605181945786923871691833468188153749564879834055180150958808658682264870619313010286805040656216492873735535640785329243049952078356293295799240138677527849543227827398108260099025232336616416982424294981997512445519026662289042527733471885636728282288843593968941944093309234317667610814190897869488531474183820620497951583826127706997742111788583900443948789248596355509869275670495501357021060579224474542164686194431085680843250029925434605418415807542936538401226958710196813962189639312226224773985742615523910642588494384099078766661328926263455662009462694906680794483589674341311138135885723363174404729689644280634551127964497673076955562707749069176447398558856414050810695372769248615025090607599252039302577063822083120002475076383692825256830521228807486955694863437133571644418503638240509685050593946797883876212602722616298011440594699947025764859213586028548523116396118611626701905613767088803110535835925044968676603429729303759951162769526365868528321596294578607537428649279967808522137778076019833789513690294451770939496605525034381127572311343763571920388401041872693839106602266866887016716341707555394155355877983606042846502431160486754078463658679693053270336118091185865512323093169455951501948670383919576632257130487919952578378775681151769120341191060094374987867950228578081783045364827122684600247904611413508080228833388956081886315321626006940584039994788501614621052366645731062068678136142724737776211101927552501936137901386308826900749998542991550497920929296660396139326863626473516334684522604135050347373219369401054124802178925499187365326992170623011444565349048979630128644045468875294998961792044633863425554959435112523959951928014313132791858010545109819084128257977213396782123050110837717827148857043694965202210460149666748802717515271485829332519522729637224090513902899373456207007362349718995995667509945137263588836220485177293320982010301460167755328912222254365186186846185414030138694078214400002528504665499968854023483901345679757021834004740047379736344851972026189532459511941670260457606928961979018093226977398619018580665569068066141436626212689670196985124114866419876804428413704449922930935248166952200950611367524576321051395567179249092292018530684715757516227571839535212522190820839223165854474197468542560236030489665372656492023825658361753083332506288163330370427551330857881326180366866522773962905777567824959532716874309668190344425191856807460124356922474053360831097486025984773617903663339845834363979544780441585889675933094244713538933019573310531977925507418703515612786172868247342356840175979162928083751877413030249969149729171761644380891710266949902887612028376311180743906611222266212202614235772921225643797278762440345865991205014349949431526974726070708813503183951423770020793893539438434661264445374678026544154274755109123797163324580267956534829100231899859844888615250496105244527839895540409413368316157215242356455726446986541522252795873259270661834004446403438576338987244654707450827133930680810718041284863147151013142555795340227212374352625368808728564796837266532219411923494447732039303376555052218174488281669556040006564959671172184121621378917829940794494011037511994962801768545119067063740944569932365706638152376640595227752551445868477734738883371185035927725957041562258735859036979116331170748145785426428388162230725343824523317014751505273427913599134020469062493104186446981888758212308672871078200866575027640272367123525983481630887807374196864125326387408412126383605269614995547351453116637714672842761857745324684689548588124574489220145494269074576980607884012328975444197230330344521535028593203546296226902003849652351261719639066133353604686170760303736027679971772941811958511640763151963260418204291531805131112093186375857775993253282726378894625365980182712167445641985400959749215436799125420264372384332536245525905920346673569248290841848256213893688747646302230972086173253184270226387908030676585584225978501857989395626291047330362701796653080498667808057896678672788588060559943765646119307969613107812906590252649643023075061501212278858949700747884057105832077918533654195657722351536646786594713381403037809552149133035343098031895259029182141135385756510529328463064955471054086790544514025802842815354688108898780845753832361308941275116928763615449879922532236765443713426175733753331495267484925825171934008579094675345061343364419258817748357076794887845561335025741750739487932899560980099189239867581883558313057675913792430357781570177012427976410842704740310206166678999905480829654227266363321498594304951556843947488847619949481985772969249465730256290832434826822353531187607615701772930032355578499083991059543889977860337621459845844309893777669958946628930101639001764459819317809976152259476365327680057755014432871734492742951836426652532168713184186940285302309414061330582986688604947728513628775612972400488330610624572076741630919645577029611274008172684974989065695865024659515878676076466933583170191871052276425955292185957670186770708082254520150425074680773437891655776459069045316613970499963886573104340553776383475004200731100212007964679876729397175594366447689424872744519607129988290276239903272945313524035002124446669655300218040599037063616300578167215529698823559010019099580768484366530073367047175258757793561433256636796783819313105233747124953200896324615747541027796974336254254458795778789872200137494798557263164513171376027557450847958360214070044585059270572444490260906227199469409098018469779287298801646988777282432512045019155117126476646714710499531906807483458426345847324624394656696195006708234250342106580595809236625323938281626962600158046879971841579480948343493873200647886936294477584547214271689561154210473275454199422507629544888940386549209937469442662482239274649446100850862854764432843343682324437198330670206036071465187061048389136664239303853661621544258139177123802506133948383661285634838955116032064826347945800291776255573312125409922658822665039053953928696906463831337094894007068213994662539511769287036437052553983379682822113423720888467708052834777489521772422618108626660050368872376654398411160529106194462499546933003715569480291240065376205434412248988246435454188544317860280733228269130526722773124427701202919048122992279776690509347962478421144466584985649329037650296247411463840603987240261520027739711416141681150162448556354706027421627256033344907311751724715484069742589477227603608387641152715396229950534588994124721934058964612441053914636394250904778992419943731932920946243969894803472155706686980347909566745226762267214452155866704612641829374098231443985439603728047464271357122481166877950553768758132324313535037394250627641683175453502759750338301638229999509218065255820964039472481149791352064057570822377877926441070504481402695837859397910153735801493071305783951985903367579531984604853528040583755499292281732628832825112543519858947844129288807909332229018799593984660368949511907267954540213536635671314985268999012812373672870059880763833107980716179656008494240684636866408962840644616590144276424779429593901865280060439516452183713133860824313210597993534824038317248839715717659796199313679105501879471805462919678818604788683824442825889980998079080257542099629239562288334485570319753359082635337369573295271123244144600161501636695084851753373576871023127024755494494982557333150148209066236681368795692336204258795333472667445487180939393462903594946340692908698293027061487753149095274703857829138285193659381086987299446581554010158852851867567067768574427059965528566709416736609925806230412242757378081016121149258221401245707205990453651568051603929370510629341573424696986783520832524314248437572933803797563132526847634683039654699689755101855167045145138385381337724302258647924864935866972552194175147395513410518889576510565664503836445140392491499091965970275251654870815148339316838014823715039879078936189729828888946090642609041898786284555745241911665410348512364283948603235528021025332886120259779907015899258664852070738557835882756340982259473035467049168425068701296209596704445487412911092337790444880098539014366949192592606961019092411884739783659819275576104193791759878615468259230626095618211735397203698848137858404759990733030729218804059402514822539528255166550595966205787188146364557138192309914293003379336741669163591241800997008130459134442090705375090790236905779645942198302702964400726809080743346654164486280285477239004040017673209859510602436088621566553996432158074781362739942804095345925558642287842865995316307859828450349458410117117480212985991559643017862259410042531663201479453887096006781787182402519906629028606100692707484606988630698745197024788485589557508551941673345813566110047430474106507260429025070906108094538589905116992840736343367026055541234173320177903479688418578258705880986210369498799493016357035185763099697999393177139852799812489020031950488020220569527523451393197438602698467669962817660878014156126355546673645942045475457883463050146221276310420600867115573028963888428763863563668705579826421741696245445059973597928874679846669987584399086402075431617365197526866925936094797423305344482862059690969068428597707558449226032462306433229234607213208267624173121652510142246915340101839638211511007583575178894136949508329491273893066398229383631476049045274806705634847710612077004010004581877170057857524643913421149045142257324970067353244687234886947782232736804306434066231636849352379472640912886161112677529058152345759097929866614664684552145290212847375945239533972065986344323653940554366719490143071902889515112664362751011852303901119947818036414785330819845518341181226315103896762397605556970910815939359013864323601314902170806509450112193256180054881788771128323187243657029005349736240709084365075385335796204353904262741345572272132282131469639737781637783405172819542333281281858578929437840795934344495776401180524664106790962166498142040920911319449893313320018845104051332817979267118126675803275923710487950416921375597039734030056440855322249527316648613803365889408257103035858255227321514568357603394224564547736862106892395154142738575293597910239174955381198321565632598350707407257131868579335033670597584468242247207396830381077699274239243202275148778531182515773084659329381581283390215319882137561826424905367978651235855225619543083804973143596721249401440601865714760520398710698061234300548307298074195308328673198688884595974227117550717053057700238255127345647481020528351673943830608933699176359415284180861530604793771858941265710145457244862227122716298297859019418670385819464314563645130789635430460552567273247654041742833572400167674555776698317801772879127389741534298803216444566905195742837461798578771566073310234252066570895871225172564844007877097737919493058643030730224695904799008860811844071387498526886196339295600292035268709181644724162330363453126190408408601637321638206352567585834904489231387110547221746853137813045350001113565252123566773314040688934599499443288651479069976813764934192354752639896649495668188383716796275957765419437042112756606807814176342524884368704811083134941097013094078216704659570712092363570824498745679615351590609819644444872848754905029274451317230892110583866543191833370552257908819165115916483212059916206022200963123782792876302646424827239701696117496394018181750484860728257956278432016607988860858513463514552264262472134843260078975102333013776669522384699022521203735677948754260225963096257360903774323582565217793398536246893385340960582197537461574969931278976882515799448835427644049951780534291162492647493797342348649024477153476028156966238599660563059056957394538123778298436894363649144648688573161021709396434710208885448658569372776174801024937046013807068868389067028453413864821984115194930224981119200901700401662997852887286957810432735812371973404845268298500264335528539019775971497034633682880030687045129732268543704090227132562935166943526777507675648203998948595558415576841284329751326139599551041400856631120988284800605138838653242525210489964321397493049637664980618612423617393323906832526595404681238155262007586557631630813654550591209507823780513441369172857188554999283452322492008396841003193434303700961502794564695209328204030992018969121515726123398348130387151678769239182177431260493412728024014373396620335296304428296013054351364675937218434027095517841340427289137875507745722485003199809319358799633047961201454406850714230950339139385469455329125868095366014920473749237086548742168134115715798609318614907389503557151406522186208013824999086744405469854900972318230388065755400744678538398056045753107352612785536210047474514231605995839423937679168138043624200427306647692046135668216825070513888064599687455095348887594966555662435388428963216596711373348736614935602727512941669595420183312986042205989320876274430426810841305991688140021577643912959980917298915197845341463753437939939274508010272540764142184933424810252031123445269731335747497275545548571835938088386025693696074249003057740633841366528352137222869504102561288372233464765501579103445321797213254710612842017031940409384635722949941656280004936786361612540977825584341640638216398334205090684013549659228526086115457307858033928902373259869508915226017081544045441306175693035757025118196396293378952389507007019645472826235394496276644541113587343307323463447192090796659375727480551879621513027663849032077050272591187140193965758421246428499471859920091910451462146092239225423865472684910866298831773832732890925206314982630571503373930047745597878392499426617138625239068391912767972471342341072356089045547328727184364081543207664905663725428719682620481769454050677831226335241395833651248933934558509767364760197360892361116632495472153029068280843768373722453498315878542780035105677561980071919028342560186180745663977901756239142540564439245923720841589286724300677991731027825156237991625643153067450303969058729133062070155999200035810001665803418939742740600061537861851274496127090657506923721587876685882709161255258163891472705135280823691301149016326648981941028316503881526518435848566611254160356835665938467352409373676025817703023121415513299771373577264393224647165356111836494783467081725793220430911959262734959903958962691822640447793428675237664476700409390609627051435126769082057509889235680813867763200380291377879286705213371864622540298071733743210588966502702917862816355798894811700207319925341620959111005361047782413664115912503433899796043447872780603544658957712070459141749581513138519985519597054542779348653730869741541984912447845978996332489465570618508245731229634862160519129806039346521084368877729664565526297496551389945129000933820737730226921721923399306671777847502248579304045813694394881098698422964973714725750415276445370622820748635117022723004243420010218130293868666855946790483363690261088311609313029638945077728847691105440368787092765399102399867279810464449797438272401882949813892088849909911528061646637097285805197238855303078269444703573097546319771095352539578548503317937271347759231686081335420248885937948948890222031766458362209257177984535892610462109181251449241033121236431335501448429810934315883017149121829983603740204643689463981129520088405115573388698223453232966799116076877025154645144033229563369568859552733597072108092100290296714938683083234653598480054964985461608842175594380335205074781169336259902884026561766322897576813214575588764237642480985218451879730086252898717365199629554349653172802241038945512212914938983874338011563328446102804408779968689190519631179701727053073974845833575105423614421173079031694563362116682895494256416071499273234217758747603101900863991756257764279732449431440443832755316730430357727911397305754889774772060719923343228386524930656859100048435078432463055155459365611000084833871530966607006753083131712790137767548523556193910390184572651184573611469386814052912517114404948762694799856537822111965963477301719533042631741165115766660733260031465852078336151942355213750389776960122666060719115140258383636385204027124339051803358445826258135186451326297953653332738428312363006374470335942302199011598456810916417297448896608646519137118122514094657298390916519373503218997069066860441215181879138379510841300224923036766823124613477993818486305556568688308215558927195738274510826752964392362401936686139627792369571659141652371806437318952269552315633659542301846927246528680555722849593350561915205444970533551665600458275865764817615331641335714920184905478479556853123550827642954000570089593790606825475030954712020383092164921538401999781251493166548172170705127289547699592493966075203774324144260560861018279080889337898417347761792380434454375319946418004948693206684245502596360582617113249594980133690945076952963358032802111917328114622605238781397216295840691159850794216641874376531482666399397611720638093217113809089669011429050883576320004231498575058300616820696282404273043918763077889697363905106434425158169829956175515268809442771076681087566136264830852273773658846019884841311643969988637898194059030987394228742197816764154213435663319860301031581247853111455718304606080700101096224608086830411966223358842642943624846359860609781862968940821780377248740956891971640918174309664313987196044178218082795337159656782357723259642447111280509187543676985663500460832055732902403073598869805954786518066906662510977720870254443701675746563791089128072179206770206296215735598859391487181345054893500347247232230367093784600794566671304572482940504856006823366524515058334158732726992968372919004498032772020788580809610734851234791398237967112371492523832479543467238647592947387604380136227893185008170739973568760633218851698656582272399548339477398409049407071600962319916315087588469520072754170960989250456497288195008061916729184499809717493037278782956665733257168102428898030749687522073535716290740142595653235343852316536185846354788690699715619687206571690742624665837500042622211187832557448360296639558058216516910975838809829166313231540820538953875795737003281717976182312408611479345471851602545644730145503767578225033384408742066930288282178298694386588463026451789334398716514193678813800567403705420483549991159074071586217677959569683720848896579377526019435506044331013679950546803329003639183785373881275967240693336221488786073903238213551851585326180771911857655564903268868009043072790685752395002850909032066093174778230874262027634541437964938711123435197247287684166436001918731978890545040926263745448428354250000524683663417127030303278062586176110849878415126250172523199846031233230527678670344357947055278830792982048853130713159404397092992769441356532566637453151137717398509115488520895640459526471301270815528185643738873045645349310407751671140911677440557142179470398286647835360634092721603703468633387807859701744355787641514230344952870979365360272603465233672606181910915702754612831598200224881866301721967229672787605381187240872721358379165996749059967202523447618575735717704764466293969434914467670492764259941388784450382907746554261305993651672758529087409332277227804573008328626628873279764622740172788602816765687627992534534202333810155405118207406973291166969482716352455792812319230342100139391633159272013561135036893043806856612758791929949194340587112129325377341002109439281964000147895591157749816638791413468764697748528033672721565511103352349014931624169216235823254273107628670757707030455614896071655496173026807341052184288250827029398649029642154108674399640265551213808661033666172053613422526140147305500066843288892517431480205657727811669931050282777301482324878848224645621659450854547018588352574663599935846634498170081533042011586898451374056764146223334778847099317389690367784462500320874874462837030659154457954672258365888751991337026466665948832457904545439125169554199099843455405426100943351354941628031241948376242658683278138544226682251501125833203236268263319861302112192375091813875763112421610923459559433280538187485945765214349418626122548361963964021459556054168911261000867440322753241068051577674749600396281730744380035758144041194588884389342440296023279013064666953374959165115411924799895451941098294804037038513935848959022634885895782480899518511450174666606155105874320471752142148985898792684952449143058240672006094029411949303871213970941600909282450582874822884878281805619861392106120910064174296643614978779900588151880949025783754769639909672674590011511341659735357550121467378479520813706094458200507397508279106473525838500758757234247198972198203189772563717185952503906886405462199081363522381657270427054168595910752026543967667757721814751577897250102927562432936717673571264451415572023413850678198706401731437887710264890265576170196509655061938948350567898476339025014551156223867436035718378237824185972433553927179512321209735036632344836308079657714930271526164590968436351346935449653784160422020613744683536303385513956983003928736008220559561943097692341938775979498693392507013275105817316210903666295626416208323468563364318275757457545901892246296177234591835814427989655538306686172114934552194024941193133685278384493738973740892989715579234087231553471240172364894376910916046498889106102746425551970037834286622164504677103606293663372310748474888955571579594387518603017417257763136546685931452252626998158264716013116978655899167679248209735865161720856921583840577911654620430184437689122799928762848307946927466311658698163122787210807246695411439700187883982885302166860970149551292932516777732211072733082474011837618462075312207646579398649629877005089777002051929393104880398774925618342476889336787902998059367781606825619805384011448070907162373599649887668766473040126704759608202621212136796501679822365815510734054209603516319336636148721441515836235240979805093568289279273731073860903367393179616971524444069379310053017464951594354512887783863851245513789136580013296686932953560966717665022624067336436254226444942009490581573928093288938339017065777980599075720624265709728617905794964457257719003442640915427623618392084491010701679450413291096609255149611607095840009747790554519897306567002292917914233291314816584680097498409913330360670497709206866209333636549331632691743495748097201223276910933985453885833644767299721212253164583363371951814821348418916465086416255205023905204432613736360450768334155510254427207145066723559020462751576101724178666925121423558304911642478249724801136455211979354473952341753622262451772482437114538856612742064753605893384829114766653980580487136606423836785990884777132301344855131402287076497991240395085967650674699636487769953442582914409186288034641838559248796480603657609370751803368748065882521720008176916621758033470958285518967864414869985851753023891306293812631269505021375375031946616549480124348579820012640820438981523961111678000064965931085293158846045186693075311059191606529897086182924545772201336076864106128371881327234436582174590568214487085374665984635217579728068727979968786901414410817218505739939964858156110747171433247082651393633808488646945739476266851759485546484597588316955902644547246113417918645300438461660143894934306274238139897120262406772725575248183670620680267137723377612566496266384429611302049015658168511890450727297483912521857447002981639036660377027603395265891890101829678744097116490914804300253170854937593349038231207376692320164486883031589648263405541716391024948933850334727145735027094872701212486198043264009070632037797386989270491856634140505405186609524863122285966497068500226844928046132841746707229277846781410999730350097627846192550846299454168330564414370775479382772006081699835435844914736988277061847822136266544622244244539297730749653927516061733471927512727127310753050943879303977724390310957003502854896479155270335586600483038519608826081481595316527223107900465557106739698385835198104430106724160184188852471788483778298415402455870702048606402737046800353367850513066877293731229850832397915018199297006402824931499194478882012720386604147016343948439778094177048012983316825381703934789359931028394967117081187700501378874145445129054226853475817264301050624102696592941952812777147580397684912502665943673784513107225112968725503988346844562678998487804942227793590857398786886690933609759560534669836531063579612058377388904694614073015088704786650286655075568648497346942757792633391908775806054167835157377773891614547115121505624540803180654596842858991506231534456579536640217413008344592547235769037946922545192360575887299407568776815510392294344587895114031996398030720817768721252786885514142057784773684907887116670989441151482036066426876485887396910656707057886577065779186227291441929528379402015859595894116196688656312869117557390293205248468780097625772794484772857821088882432231815718650832891183120193780466215487975817048651157681626875647019468496418416566060602237173850637530926491825289088690771249798006829660024198002305910436411128405470451985810149032944306059823073330885668501639489498600868017035947138554043600787691379485397661488798586139775264698563363416163980418465027150318811792499705061466277291691195164163103724625294854415878354789150420149598243701522240842272652574873859836083581821842977429543060243037014955634471650847173249178883574115244746062372535720580939241033180627151140161501922826986724528910646369433797139234428703049053104223129605535164883866327690543266842303785358086658826592046800169314052787887012920503373097284149509743725613155532143965438307817398815014115695500947479586736984949071492309921958574061618604799327975829885945834386503813650125986973167645422046293502095320234477717069227657855048365656825679515387861594972085976018015066226440484027241561653729469429692012717300344043198403557859168202790278783081185067860728659812871740278570880610843229666754060049398295651637605761159736726015468152933901241452044021751576553473629000268625955865702881750945114047547164376964712368166677810607138808320508399495415668844021950914971225960996370779656671516190355829426653405505940613240308343562870107117126721588420328560949605419771734872215522750842081907364343257010402591814539735524008290754461665544144837367098740348167570130350777442092519934559205750580286326953013926601600254559206085782190462541755705157566696244672614816793109588902455385348006187563907245021378095981750222852970258507761073239519153682851166069067425177553718586429933421247450853094796064417833006924151315153349769911005865652325828068871463285826999633543238392511555225354690960099815678260940375910845887493553730548400397411078537167655166947985206954984565582402438963097454477138987071040334753548320504810046566523793143458271039441938945726492028503038422531058512688275746702537349783091983211331815668405799881039364497487069729970416321360541694738757615367365613275542029197719893259650114653229453735326524405352731542279391501482616889565418301296161590505611856480082871371839464857061745838944636584309356218255310443367498449906930741530174096430952277143190521867677813433105348950066882602042914119407273718354669875005391028229405764695568056473953381991100614660835393633287632450000840945882363049534858957604646043043372571710013215339228041454345732144397590239747407960519188583967673251304373361469098309628854771153016509871544535998037225493784075329628620025713483588653439240419732776771590629404237373243457625275410355373954166211986370487682951569859505693246393387132225646173037972475834948225504784389687562388450807440812605653793869531032725829592665689358141635058856416791756537660906027901059024409058954908988270394345257525804388894867450275388297973879620886025391143049678517889463907638783184514366522996571975633093393622425791987315953590700083604973426967750519028141086616933687469907884629717741216505404416997396238961171888507151260099667279134317136861753552039270688446583105423488498891843702489459304089044246329184328962199741612974952071550298928697209325014099407891428143640078853197432439343874745951542200152608634222049780080123811865520288147510927474636009136952688086071659257820793145254694714916727019164199706360584431456930439502877864412681508105129588193366609838899475646407159298580053254772028687378267010023387847730571069090282369404472890586234993403311918575594632364293205787683961859986544972045095204952735499850338235929642278579189875219768810840978221678579666384008172455725347380504987930615748138874890474205523260164959102865719208090311344476197768702159610828580357662981011490335623121850297823890660200664485508400625420700221719138652093681656824645302551011005785945740313397664927532653696189602013365325832526565950167255485501834900749123381249032399133673661964274239063732593051983858056794936565281000814805218867349536580756467931173596977262181594669451430214015445045002738441365214091348128379811220581369681992119621030624089530593131093211510818278573040860208483958862672935491250188366726552037354776328881804578985965865872302849527251224344294292167797638314749303585497282367580826342297684724005700334381324916971597098574757984771126714826727332273176815695261659481226709790376788138489186401307861972920643307208684830122978899832574235482190958994730501789994119814152567916084953351609243907005510768831381884377492576964852446746854109008370007293081310197108333913228665653909205417145649059137542501907328016707739999366189876183172590322048656969143423859579613927699200519452380218608990332130074330186839754367328507976540780696958170795124215792336422915145598664306576649317043790752430589188863521060303172184873105162224354561210868730123479652362025525889841119681481924922205697136971280210058059828558824759079532597058898590842088008362137179196547251382355426177596037895935629558005727311027731694560123422689281289182927556905384178683089204331331330161290669253997004732598050673447207925258803080026728735820477842616956895393391489797681620401033480435202785628983295134798424501414824847268264847117347959322746050495230816856588839921416990863946034661445027287849754031738973161846601955925357917993964247613004862730237223523089735072585936094192619093254530396275685932532539257973976534682268680535541801222419062458870969311004434697477025807362057902785679873887083281623323669220563684794886699211221552596193444779281007601142225398226941498420769766585207074984523877433018806478663087698265992002517265899693840165491318351667413577093018094809459440196389622994201667601167037432480291085937428022441325451826263877171521616687220917408339225734797125297197898083268063199964330513365831504616266491517343540216585612229409265104458528342538746228000851883357319257750633713381351798059992077122118741460153032997677724364343298472879386210066326997291324797197269830334122131308306992330538374855648857052033733057292409915370384750082349065862754973739504798920089749731262733266663210476047085946576607633009106260033582890340693701291238185185164010973696175971292238265506143675702083397607757737373367458736953417988616402083070482459695980812055601949542061596914393580411716590997709637181759960716295359685033536515728583584202359616183831892558952069221748193993832398376177425966823503945695017941815209632007595442267496871009266520651322623496285388547469063412081508671010243183439558202205799238106595462796758921818315618322844872884923397597492552183595703345539014618537396470893976897986195182228334615095724007477334665397265523655160064205611540994088748114096498496342161907898516311538336482499249140764204155066458549191413500031643233020379802300408304745903965334895069476068673367797558330236587765096072387632624597726958061505819429820350352392282914232721695121991574529445165747959610586726146685601985172092036056363911864285228336504264233446864209218723184482014393203236684663761067602612358793479365186700645874200358280514564529764495188788512110752559821068145295645942371616709165980899762103095270676418173596362637676686384191059117186236385683060425961598815082453701607787356555058708644209651255665659164583241364848559130297714253121018195820605929460260695507222968051903138725610289830307793907069011181745646400782187774457253941926999588699587068880557085897227987934313013421958346954452994157133125185704449298166641373577262198927939777226282972391216083481447402376273611525338399697558457143822461096440304004684588652182685994361640755187946073175888799170143633296337074292786182284955344329315357456372651054292090156222041482005161200755227959018466725465948289423815988076509783703385302309156857628528673581331731192966314977479168747673089487746153532578788119294164440090719565338908296441573176338078838182873871923110543392801311938630422455380367220170494378712303834073336415173193684066101052937647202465559936489908178588016885135309331410983728414634020730333226740598535338217885426902750430805179238463061786074331078599915860036007362967434053796452210644395726807410576564899274902461572631348878364444706981153701659711291710870305463784210443923347205789478679406701537778047573309295484826520585692837279384859368682264939133498723946595506973595869398186385088432487496973486360320542825759762169734905806186120922894406188333530478766322112696800484928664729558601651387152464324537497514609884514574698856944251747533305728637891120478616146639409810633785417820100797546286315381767554375438288564501696178258829013481455316916792786482723827540085834067944551411449405237684127965521955397785942171887232331202119368897353105748638658412708256467336300138896056403664467833786458550504933054268804296760065025057719108973459458478926521883970272382913274228773562122357791355113878231563491183901073299735065252959970670786659812967493240335844932069281386752336952516059819715561451203303245442368784711262140913094300710703996000715471943407035600586288686023997379415369044940838026786388883467750657191770751747806486796283261265162169345903163449862588805666153989852072046110786986061925249669753126937411246687085453167239607731415300694596341209105342922887867375594206062105655271740854403302545042485379129841747748199853547575434992724105544760921712844979041177672318563875156792062066726409424611730570410204795742855063250037835720269986156436479036187388929872654048400691523565060033749033921579606406367339648763376726071446129679277513910489299605998952455781890504770181582761515542815114702249154241513697517012543247154914736035982848952717627165701760791358650254018410254284756646174435930240034502480094797189495710272051096669090119866148203278009565699188374078345273889359214578565000751704035786063736172736462665958029256290191673510356159221358950392787782171068783198784371334665856360627396515958649696839616425329538045402212431757666121727106016057754323861393043392714268097736518373231840360683524791268163940881388373478923731393290920813434781565377449989638226514023345327540685576412903900575960453117973744502700749453273439501133534740957081362586030733088172839693180686122691259976186060535859499754895162067762965836801541039699688337459229602676105142171739713009820840868902652947768151665660928035004549981002629739187014735315124284298599689393549679367918856669043670702438855081956717551063075647058938145166180471960712124116599362375154941403882683256468296787313404097258807670904067985369062175999771898041370312721729676331001380703828198767385902275158586075349045158502398754405896583172932995005353729964790685849133222627865596807662681258438540970364614824619095580701529435454734256833649729188488184947681783969527507926732265904916236230656050905871266668978055046616978876720367672153682430653254998735506245951145037538179047377015877850809706470042000016567399307515301905629169727420342137084102644606634503584100857801801053493198872183555748360785003294626832562773612498706460713731680453503722939075263310285882578008108340953834937271877753349827645328338494451901837527681378520645167101368488554835303225094034752970932466516319637598716021669126953769846486063541755810802569397547955244294046852749250910806639651216314029890660569137766503268394345928445638244369457741946885511259795793230231089000968647754817473735181069908816421873812617015186915406360317083662728317777935638133054541587629928200549392138014760015291342253534690249337150084336717706318855959717636451090222963455062309310336548794773394584083507006511570450743033716949055578479378649996239375287090743778231688439748448480955080053114306462562966307909599074655539423409971136147554382667936243464161689339540051924677247259415441291612059926882747446613187909410864368574326468336606963240124131643197222480790787906126254792595424655340814303346077487994713502657545537995164419944314372838315530735297117174343529741383768386431744290210817851849434343900173422621603604970166359341327615480777594870631000373981712261453716265639403462983002968409614986239731182778654649504984488673560733483075446624717396957227093099726769781580201146601036667101420158166367812275121654405968472059751472616247166185047350425806485577599231880397265159073704533907837308660759534455760073550506188577324044224562577399579937115283944109244325032883571606567103430667607799293325461403974958980465117841221666788502756588955410981017621863322028840888446481019502588562200332396692597028137037748645566056923875994994488019512148150631177898822710759962842791054431211511073924552124698835958544621801971439953955779488866380687336063758457276899924329563892501881739721208322254254825031661770702800479043392870164486523365579740067075924858455041690061677416692545043302525750764694969933239650876039101232003280765933864183401197977498178850677393809391684803434722931978216892340329790486076032109490639362869653159144451421015016349867903531703097422681295308056735425320240650601879308650460725380828643619369457151100614764813565982242958417620939051248463747865318449593873641315329631288997152790116161192122234155276513032816327532112302723000089511080320379881302883944319422681423313389431785327297935056612280016654761301085464440853541129051256818259284486736027924700185470405237893713558265647071181102557687386318307776282857727660933058857251509564759148788411252548811295549913540686870830921697499822712679133644965242810145699768409226528608396306628905724702278036713216262763252660473978540055229751337100523664383388279382349363409733524875339659858221085631941712714905296643382336739291925416466236547055972680689445402160700531461744699687869636027296635070293544659554937627868900766489403966904350533700848082911468688047189987872635338228734677859787155722550036225182812858291934397187843910374967081217058353490463166776062714165203569174647189831256976447152264408905630944804124660739601895340969479083935030647619781061516373722957803777039082962830626489644268354305342096598711449436200356836617440636733504243208691506500517973692804394427742417227877739397126957411716626450349736717814360810534198953911128925045671731907841976183201678381870666820248328730702347000839743645098070335565785803893360232084856233217012842102772235865284784815345499742452019065742390001681167531971536101931347730179154132312239793333417115576119061603610251177614060510241408700561327519344899755029625536594705464944337139434316357782224411597028257068759481312242791571138516963151275240913478345369291465607859470643109841385736428326388647309873699184951559393895316706433531888887351665112905556857088496309774321042440658052403945319966353696952744762702422984030115698578596275942146786511983334384664311244724486229083717182765102507468369498999527004870760799511703543729140484023933175729258294887070261347808136784940498531227482993124404912824538792674831715869807492480280719461013675927346707335504782936276919148264987586190360636915385121791741123967385793123554900520500673268521519537360876268033269173806481136421824566426565768933310465692560575512026208783559464527946963443172938423506643221181205657347739073012544983894897352102188401108671876633732164468185768593486382549259373159325769899695534598079434870417647091238578680588342272822412516252199192531283799151353084846500001145173145220696876846568022248400038632959536579366440717593603150191018365271928110109129461816676897591824370002291713717910531147159503112701744611379499811245114428103369154707811889300299797101951742719996168148539840521811768064182182184253489280774945567907940215373416708604935308590640170090081090537312929722327468169672690177465081849448656735642691479619692623656558996219799035465742591017113579942012181119786890654503741075637006689661579506337764980169120803413302095759677480121634339253496651337707854483926670581107924728592677752880291853981799032852966916451665960934857271528332833848545600190714192547188795091033445320521375538947959275108244020877525126521963842415503632111305640188890658908395527094380303273307588761186045983063756567717289207709201609206912013824975750368473929845496429232242194129463018209092609437011378595252664277399462408999140119277979174970012696029394546576752585690587350479603973905413532335575099426379526325710609178199184866451710474521670143388801866026478467388055210497286460506602227657351224058195214901540140668722867175558322041270752882658172431381168239768121960518370885768268154230112668050518448181975110274299009567667512807711527937656929180168664047679956135342889186576315583593229617726159562667460827808150973829198247057285584709492357296673993121228477178368480477179385433354158765316546616654793444492766484116839739310373355232977160436042003020224000699147486346855929068535723393349932603016525684729930878031239481293294695971590518947529674402209433737823991051430081532354372165452841781267956757656203090558846882170670172850295959931659505956774802632233080309106248099522036723944690325495458718929778954254404633997298005485981445438725202893573778674029999588893940950304113164864328195459077858882534828753338465237924271140276202132972706649565662133164298698585303888715770907831087219350465510435949276498264584902023584769158650805813306111358270493184166479872003705914345353753141910053220939197632880966418377704322121196461202014846090710828439876909021031694831804570742414006368681324723917780840896875666148226442445123031680374948681202252298109273740370401567221264341431208365391710814397081199947857587300413573421820616564746511716262247090225831565975573329765042042025822400572968349957679475663339425266258159172897072141480327044996872287888039491267281146120590651082860043491722063951809583065378887193408367983404434304256626768414142951850996428159855150660973866149037331973254645370451379840328886709027437312392346796192826131935395560233380862209403235170436617780252784527946357501670192325482537483561034856571228408329123098858998650433568684806141104837499338186804518655411920456841455215247023205276088334182074242448044138307475395737828191966182993478737499443715637272872883932936455229738701812292130155940491707194251740654096616274058233552042657856557183079438657881333493066791589355465734930575006085809029711269720963817271211118163473520017151953383116543319439994192834949806224295866393425814295776400478005295691774032164798146666784645615752617708178379249212258771443492377225043095338967438672280741083161550027754568429699258774756572868757392554368262193033210490696116072759142701879939392132029530192352519718065961622054742624549110729518673916371870482506211799580713013062905583889115999543935686636357562880028076831288021632278380004762030295923511762429352140148794298738193439476138364191712616357288802128743514007419311967728328094344005791338249506459758135746222813966484214999978574043975112419556722410813158004323819180195061056602030039114043550251784222728342965533448230010098807916676467186461739218501017211358513234741091129702574329679358979723944548092162669902637347847493486935177857168787682554312328936265499849119635829299398226455653445736316441474089145891633532778617819086445252331321291366784317402675770796888184802476699182487137064558155369706663186916677533570747552102731901915673525041711944917870150507518795644318136082495240761522328912147350285997754053498770587209039831556779950334453162580802567153800239272897194614537358991680693535846234554449398940759465949053864285559813143148164002907905886375699769263815982647714196562632037934788011323448568264346557569896205954282148858624027893932423645647486853156110007110004561902415173379675833941896551127384260119488897364467137709338150099589392798795834121517158987729343062955639316894494570880882283916798480383887737291333404264179528541555894428717234412381039230554631602873020222979164996560984417759699149821872642560998924659924554062757700983901808371769460240815543402726986209431120532112882068314992769612192045984466694601279698355629429799986848129861170008934228772164409915929048331540844033688523713612497010698108944149102886354288826828903950117006932779766070979149830151919685684428416600490660731135864750732944316259541330851575362296723182259172931651867745408704247647265382269722125011020339752382460215489983635595816555596311606547200429688234167238974619874242239878352705858136102859530501286828059964881887219755214973628734747012165321904152790025330867266402448417286537376850025397786632530772307676609753471975464512124071016364163412117426210451475150160785762575718911204844755187458822869588446587442726074479594333176840907840601272575094785982750376551238253369632068253229873307097778274384180132260594138964777022600677094286172778374073753718373286925717937382154046917948889219731247692787882685869007314926969461433110972923396704793969640325197745775253740274129770999135409320109355420473773111975633834822216025691950824472080130840505079699216402751493810777558160948001545284233866642048127853912188448143546782241875734599938995821074086560355722235630589160004099633679826553586804409151091091298524782914462726726538816643282439042689239133295792819508808188059918521269549620984720642623775024738085446452560837008549919779300948088575023709336009149525061022422166211518241007453855877468647225706706911482979224861315790380309905737357804152461607284334161670738733552087856352079210083337065281222924706577970038054946179745076135356779683490157308065367427673312914996762703198862476712292292018696818174760785287207661229779383906903771239302693850010159182942540355722274160498459005192150108340222127360587863857957784588809234281059401509492171453623865257998952588425614534102983225427353123951071472395226569660383342058510836774694104137896920749893308272828676661632030416971316290643818304976006397457383795066532805197090148503646807617376955182575913753092150382486823805351434946443390689375866563712690107156979961572851111232281434145070102200670729371134045611791341015039325188524742640806249639039699997583716119702058640287120183463461179226204154596024913672697923601800403046493822203489387276703356695402869759112675140969831084395728665021782503041271804377949472424628537207482279354484028407309997271249256330102227042828969568014052319301332242593794286532910358840322951036333975249876056966660014129206485476988462944131892489961513804633852925687872439792020113736648209304539637220671803420871466506000188885375064909382014764984196290518846571440374982604685239307254035405241324562031781595021339106267210117579293925503559972657898304384657123454296821383187002667244800915902830642288705746192453246246809928711487320081243092425505171228008934402497611564415533788289365037424593143831214682505874637892905686763755497873775057274983200341565525194182416368442607946325329047516523707638467112484343482658489883835772929318069721299480418752398152174531344679803108671214950529858502750793736605714561648367429946290810618144565740712536554375246066885946362529945642742434324823496130892327198522394806033514279661698325594513461480973847272311635226226959752426382999687131032667258135554375819038903611624418235566332398481037036270933466905195655170875251797385816414130491199217018644256409455736945887921317246433702653558364027865958989739315049856050155737456306489838427474398372764863948503337786149359375407677289469685342097936530441768039998438330268729827245986417649320877765453737073657669523864587157203586276070226877487396026269859939362009268745589575153372145857372767293130806159371683265588450495034946864968572596308016812288537456087966593684108548306158378803222329699326541763136055040829787236123566432920484332981460983767174148628996664360408668322483402140706296457724200049242150424506217720924277139411752213923005880927576567162080372414684460379358596650148188345922895362544265731296741660408986488057164894694494034383202547106136210011776475601224301821886750292113167741166477187740972191788097386088444350726751727625731378390358861977975919080973683224542197734638935619676461114370153987273055185730932962304328621561027196958933586440500329130605175413452689898182309427096545114634177175928358155663113506347509441674242660932391561905324129532143041305433342532167392262239438718903315015830491805420306127214431410676071266250137546980032483918479294199114294376098741856439366422270528002881492562098449609657110507031460440403051882600233405559425740656205220890673186463508805162561873746426046937524814882723890336798358512192467200554730869791904503981986023651450187418649277268115586540130509560218266619109403480768838352745202983673738388711090859658346970629664912461444273469227110023668888693338409473884918161146199191340404623264026321975644847056866601792017842753713196473451409876534538270031908219920716572533331624488704799242200755412765281983831242932926137292252988770945227839621762706700114725815766556592205861441429111843464757250528671888219517543203226938786848817712835587291440178732690336821915222701476129630077484715592232735620118637855582302839569191385386228339474257062013783952553819186026261358906714953770098380824562250965019064111334099655972058916773090257290270190477064375721425098964790173869442739000912508770698562313932376787984004672449765812945498167433146940634300782324737298914822511461853069405834489851597216463628173318891793202863702430654871346013603460709495359848095078487750543234596906695259762456148537207036513561856701809834686533173948579867611652254420335944361844294357912891652283785818538329206822745506491658596910762124869111971329282229134017031319320112970687365707348466702019806234458709290512568977323971880259150372317763126060488170927419467406802480235243878083335435727936921332189984476791104379947372559215897741264886624324323636358353852098857883401034901982643031019658959647009363670602489141272553358906288871865707258843583478127326566501715362341243560595107754594792097613652647868625005748288412182090757964234115858138914137105810308863812785665970419238932397700124050753100145131319703241716299625409779098384589410258396309465296733695031869091336361343648981520831891035043191314702575456954646345339560750495687504401536272891334090250634015542234137957101322623013986719410595280413098727461083116416861294160499910201198331987398123355239074625929737686554653256013077824962543165304860811853436793350747712888640412196359088821861584001820468687768850064134399357591838603306143032754632053995704773256302632937151748442366463287242239775598249712796923007681214821272187941480923191779529280682274935471654841310953528484519595012305436639570205704487535557223426263564440450575899134892279277573718471854531918400392034477612785189641999165881735183882837240717165456445868809818532261867320181892031681481624750091429993335722220513473365521615407384137809209024667379441876083361553303859896117370111485381590111331292662154496163720117981443565360201002144949787590246744327542892875978341586627616974305386758602167003577863802192941025658968690744101159133189581261064966800324537817183387622222945806470418847024855152168450996456370825646898901747158392503576197143270829404339525134158864969541774830802818991921474418583883193054701158566105273091141584294536298263997899630864975750046066936420238975874339423265019167055128405254342368502150263741664483246536411162166663696964361755961564949163332029205410240828806924973853154518623482901817057870976272035392670299227833097107978820030777510862398219691312926889096238041915493233317032781101482270121446200764415273668469741864536750572540997012551483683156216679730531041354056824075557205426233077100015197051269552257929052224532213274553506237144356777633242109296140738397679262887322306508783626028222408965730948687768329821286428687708936868914357240305141905277548452977613763235938166823773280053023084987559442700883559022796731413832544428200425501512173161617831874736062660835787840620234310270664972945450865460505921059157479960025852763556392509343206884786151228531015717078482604997956041689329579754229571042609700174387291440711654349234589409029400968915571325973872499458052625685108427899595536813556894229526094400560802673845023419216287165259786266339071348827116943685757600738042458326875946727129740300829305957930855489167834936733729170111560203439021508549440499484363257982262217823258260005490214005022332428646678165725669240862989081224936277691883455686960514456844097770177957311399311407785092538680922526494085455113569797058154131034185056544234078980106442377700326910116768916663077438559828477575821254794622850023283856813400213558727243439119827217326237383061818502234168734550253745988975632423108291242974431491381255654761545531336801347230781719204369544402441230397906035926811558470172489939545579802621421142610238447056816670299037493086596923755864970597079051232382229860780681134108169954269679546315397411316803184493384205288824158392635501450480722949449738974348145061759597537612915110474075450068307382216160218165294282279416383168269296685857583242402015792197113289871430926263927191640967408272447114960740669783402807660499773825270503535158270905038391605419377014345860869576907136448194396799210371327747385643618569441468228819161511231158031000890927028957448079498183437061362186459385806874472062299637276982901182539221969092677689066591371286457023424908700926728497565969650578893490327791552579309611558562176873936019041195356216497384662407885808616007434945482937009429478635507773614891827429184115254692879194276786016019004092363908739101734909483125569416878982695042911893299965589773961374208551547658422061748345129237803223100893881819990096238020512193907564054799594582790647577365765478118851405578590954245651241401151215775713273024281877009032312781251646354240243969012633751317212701638038639150962371085087764615135260081385347129393968060449011021982465125596186900353484411091992039959396580985665758314810365268071267982510393914225960440817509285466562441398027852416396773632080204314762764557422311350015462187010446274881863365023398938261234375913239835930696864084172694865244732218375221895870812187538566562632540041562473552945995033450640883875044107327372094861308727552558858267661116502899683251108856233323408895326579667376698951609592682267023544686981832154791969709002803241397741977167567707735619142991998598873486084618387189082678801173072212529809243912559353183075245677517087205486616018436571997438143238316023354572871060714637739605154850596437570464202399415505513852337539184337344584666085712077743314464382043652462691464114738393468899723898751534034721932330021357419626028392380843785259248379403166565071892798806416577371690915704964778262960511218578342224984757368358643357975996588192464065928705751824150563003276984287342379547091513424565702305629075523755235236701140932995855510222526504413320703533685485048712257606904821268245350446393405440600752203204409028168764410328294303556553347527496891516819933306461575528607286628651276474394913966275177959881773811120526842237275025400935214081831229422926029256135228196539629577344670530265664537999520584714155174160827505039012774891081596738567333001514471895230919513299298111948534062976291523758101177088897250331795668734296515477261887306482229816042702416819833481941319670159497978876565900411729035712038825232252411550808288082461172978268291389028698441526849761126867154090455579887656081116067945127824535098597131183726002004844139894777045930051742418714695662449395056059815262672592396016894540776061866575134453296978591761209880376896223115099939373322213283405005975040283685949724061460441027369670915204983694100478415934886072949695100204670125497815397738276867404205018646523815266283366169798515924086075937332100071100618824808160912916219020712666845513404121015407156023981847850379150832654865881184152937680872928130778300875111111576587358167015769827341566864241912753310799467145489680015389117082589457115987320404009649072940212693255929873959258884511632076176301442405566868569226682032550001493796873156853583910003983837165638243868074803248830685685310480299194875006020531996616718911567695006189906682711160095923134458447114689301400719166254067465832118407226292480472320973156086857862438404402189404272174912308870120827690544893495706083360318717002064803522614573975481328969888352267356867879351492021257993357143495991589025426512905585028479002396979125524628101094311378094674444034628127005947503407101962819312631376213998911062624821386545791497740762586851687998499951436928053130913798894466484462067521727729865577760733386210326013619976772122138871603231653446708487121246114183359519864439137240264095713682934672681622023711047072892534067615902131405573289700687444880289118010790045416154151544965549223018247000292068340667861633290519966948264147899871429610702317994794744457479416588269160174464105280145472328902603383066215548076099016487680812112141890453936928994463921237918210797138259667324260363719170039719735046503310939958723483287380222121815555835918424012097817743054681036084564417517937233420643452029634134194474859242864201731001259495300879505181232039629039413330661027622652033822749025627368801900974418772492916441855731554700415470280928485694813396151804107092948889551800635713208523089622317016058200976137244589307287022173224583214051212053907017907469757579854294793864247534008582071551152241983084057067242284761766411999135364958107668798669721668216882582687558080763416671061164823540127279972896968191853318158036382640382420179726360070566083244208436929682124723045381131022999350981402264511088225404743911153391217559980024514483960687173979575421652760200165835894015538070897034681645613397812630143916377784355363710640980049900372537390520870100111393634279969255702374134240307844808330362200641872852693707861863097796987735029527270999732346178755994479246693687885452982372948827070115667775214617796787075630376845562291559845074720266821497454403826543370924609559095514734503703809869619230358676061006349120868985984627948571651471403965647771576108945107362896915803357094263918450841791332511583800510312571813187658476981609636030382493215230341458362250747844847156285416025321432639323315010050053567978706326636831225422869017569580028574314424171731137399001986561202911286906655410149922470401135698736080326152651342724988703096850535166814792299285338744644342347924240811207976611107924442138979701092496887857170751738083420543258584387286423913061461888314099024042483284339678304842554631674328977197547371594354355255536475778849225373631133270515379761377827075134978255100639396472413230590450727334159368116345555107348145246096469523503413110834222427009797335512479001689491915016926368168467863972803354046812382762391518082524614173350467408352929145339931188609073774808281682210984190074444599972543048763823301540132768944264469747970931876243437964562128688925025296362160118214018444334271584818730629918666251954048390466522700135913251046743198977537976870355381702250812338737040320519601506425362319858904762374483897796104407342977167633903904582065854723509896547666132413534011127173326432729527618693927004477994169790357582456409352028983644606507912037515763791187880647790654014561569098794564609588005211893782733912226640539262882057767743078200983138415149027242883844077124442325929292883595043124431333296813202095475202377143208128768047897444504733374563324533804446008315269633005579007195177580362763631636390066672792679951494858128679639414602362348058926218658434637741281630466627247341587749725076461139666583930043137662399321187950088194961866193024153651635321485502941684686774989238053065249823157471252520794200463994717991850536053906582252568646218284512296536146505797823361440193250586455159865952840264998020609772017156814374139783446746328360340252268926467056505240196667867137846590264480784519328604450897633798967485685231844897883156798944579154017885105686473664123144502782474884719509119842914929261899028923972669897534377372670693040121503054221497462777195551809635041496530479972326062169909193943773323559841119256050552619981518559831632352518076629526627880536586135685667472757544598368089290543484295849551634098315120694841798004554886053233196998985830656554636855511265228762020511849953351862638605843832289652114727426095745868166704302913625513714830523421639011292022663834436049375529119267045208245568230259430072228774783261917979701774966776475667186904155214382087438530780022916461619124536082449215683464507946949126091044553474027815655037279135668978899895407815354856527307602228035467275431434803797627226065603264129425199501542954907564652127186033486091836185540206870579456680696793499556791823279174705367892405913338367183847083595140081389098003262588871146562092291357717775180096580848919671227641512452978737705999450537357250526732183910312410509439440210719140534209586575293730070851548516917444033273072176195973575738282460131485025365769321629964885411771883475258414364737927170303938395626675692971652828155230294233013658898266506623929500955457903841709567791752529463860390849250323058720165593171252509945697041580040160699407559828331238517464812514315597132877396322202079305912434196124284392335509247651138384965075444902460068823791789750293634796988355437327494976299907406498826606166126346014353223584347683678518708928133609058495884426643736635772148411146222425343024155444395570998611645537589004746018491368696850128585142589122949704839316029394105339298681775777354548432670957503827794379296899072220593352382551865188509080199469363248145705066316163919142453138949754175349313786503449232222744543677694510423698212520505854157253772658232594177497509141204933940244613108922759261257112506684794639574079272786693059069003810060921094739258588403402832817309331146009515385327945331150940510565201505659925417901981339979182970836019642580092261179331723181969258231254503950893537824333209124019834742739975849809931676019152988176709646438792937154730254188805223271429559104900392758981795322766442136795457653249103765302468044839172968643427887654899615315189960921217877735503234097952860127349484117978151602670237087541870823824256264947255885601009997139718978619533901334434586738589202273559451157691654511016125939435248713184991341130391198851204957660455606510914453200006301860157387817148142820367438489588877062474268609930596975870338026741550877592445425358733999238586339041060350475341351639040689881974775145818511957707992870347611665288812750458367848258111125416801695783173854263442389273389379696777817914679344071445016475885214114426006352318636236252281173588144268447428369151151094584047814025386466176070844143992661831887670537280157544640976949173224918089393361638599898800991169238146700567326796362991934834153188633793961945795880692026058314516177550597906801030076070121729070342212301170436253604865476314693830912879311407947369968544355166238154414877316151775321757343805688232166264663477332969844480867749676228882447077612068472963881222432681168055760196659023040224862310161053552459552780793773086101604517796644628777405466578784855752769090810996414986273342708273245286683240216014648627008228730406417210985573803137643184126692268489559239972735240521627847612280264239597834835519732320254209423834016518670067198933236090630829689257202850858897622748999614080609238445657776294773811384713801080406177517311694709346489120029214376318680922369624433345723762941198325060515049310901964033394451504479455437222383989194854109739118066780243526504135241702467027810897893359255973342205498332643850028897309758453281398824036809027215789203927214101931183365452742268323185285196917764617535994601150656123690592221430676915577515717552922170183622785918524658555319834176298002469260290093040268339433343111653164215970443848383648931607251198796439536724028694254549347540248663103722412441125462455959807824398746917958834005018319365711709714747063655859714628995346180286088686919733781145156360878572953295451018951977961336370397874672047237816558139285255498223379992148311382314081090201645278687158207261875383356579258437069259692347713171508592085002985607870534219740506081212547536595707776031663316026693790046452635733261690741557533395039495161309407646107501022735903726472279226787207847077981036091357616117962825505222793752035083949885670728262915380624888581845984374538266389465716736285390682339276179484491900012185339540751134577957418329062344896206609953898375259686275702059784858068200453827513932365852469864598428561405619554446461591321091373492224072959418691002548742448469186882097677464784039409501261112251606039403289552092509568505741660508779233067470953377041552095518254947975353138714230306918402243922509270691635321222946627942323221435252980837721881177552036884932997797804506141110611683555462642363995074374702640455681509002665558568594672881169287889701465560792485558836557811653241650721689008474510076766344599056683472238483070545683266975243448706262646792257723622332006371237671416369413426391601538491939021302822471185618981425229170975462020541930530530174545195850838995566592226364826811108351676749968392559104283401533706942349871154418139325907369328678352981321728012983357659862793857185671594370008711090214793601073869616330113062908599944816269148587598854154835013479005819250986267846626257315835406161114827065084010090668449953471686058067058020759498058630782012329672802944363445406272298737414256385593399782087459859367051624217029721556738452002751373080221027532425378912030754723376239690472632183529373447252583921416419912178779050887592759935688396764180132209457974321823279858487252685899755867346241155688781948492113875696292244668336121377254575214403009578061903249896701594513881824137983714997420369667138017532854328591165610785270720984513410422066563495641707842506023370914635151190833045072401530102369577605567300872396736923253884043444880245667257154063479940259785884791498208968553633345186611814319832637573000892362237643705570426206195438903357291200021990906337906530625900562193167720985385601963278209416282822162741508697117538814511462388383602123907700199610901258741663693167679140861284122464500843073063049931365460404478091688912005725796164125140160341995161514053776476662372168223162322546147933082374844382988968352546515338616289256361887599827991018242514427780599256224266490746565412770036559604365643582076473203374986255204694341346205090256267305246158202468952205119895785299805600662722975336167886735519898733512783819492756889059539526087980918606970958549795061725596436938547185860582138655001147494345945706604831662593484019499631354449902014280075343113344848406652184454550312891881621684664129817685486760113227284514344405036458788590464562403114487496942191698063317219493563776223563642216697646974504548769646074381928319113226991913707484368293825040421466083879241454247826818220474377305975266436119555742358741073261140547997478856574889062333253325905017742524446632556376508719880208183687123746355153876981039994784760260341721743441448856253675275812942496070199639914979065140679587666823779268678772869676283883781570005922770968274798223275264190752405698121796854257953474931552830237348098240269855810546830093216502278106281411925062477040996377805690147321616643255341490619292673401520806167362376453633574847410685959077252244857829304236118968032774413113871930758830967740923164549850643552024529055401430831295082506138718820926471253214998849253350103194892393581852675992342484785943436530515269890043393876631705337953115342648834800623385320387947299279993693987515532917442639589157670715956594724903153587210697764199000280476717365281476777075441272693700065533498903907265804733640201543145065919273037345684943804374012870154982196502664405667530168940386195297530373645525512833395418927158667972591242049192712246864710917889000817808680835998615614661839930725245690023690498262326397174138239949885504317077448294296160450336351504282875992390418279948494323244577312959943829275659451928064562328783356002965283149824142416974590290510812289026026248596077140978043922771059976512291061051313098863053489853300938895737766433162813956629990723918779442026687217189821966158396639930122644274487099704571857029877496484178423443064196701307492900892381511666317875649850587700661731048714407986467446606538245424417577184474289165160387305782332457050692447418688098888596472424336531236832023872070054246161189198028737173092452765842776718237835247141182998630569006539350017332450528468876963595202317959078395707809203507986779257258457986326948539276164686243843222093058208291046915952122631417230274564906627198210665052163328232880884304733424931741501395090788047459381338773714622618896891870173054566494601773786849446031479264931998449124270883489581444710943787030180703210447616299776670404680763869020679797536586620902809496607578363710620101084364318707107156082517187270406392358907770816240967892063577827551572074984373288459189563128203082057594436113467887036406669566278803351439023015136581715889828180631319318175835483242407569335359531031792612069798674997745675511871307213802013393266065978220099576287060423912480888734769087962348907603918013767131283117960412242226429158065161654651799173193071194321761504440711376038059983062266274257546893123084796679793234305622789678895396416493068179763191619323933142876920306495060692890096272505599114792786258113683586471027896343013760894670458344080980222035520294356748969929143620066271710237320059211180507034823431704110999568761045944516559363021103405312173090416637788754906311135583596262841678208263850351968010305366856635633198299619197499490189678172876279262681871660037037017406267520636994373292652444966567357758671323277407468652729342343575049632894711333504424868776973571413738811996396137024565085990877687940315409210637217405930625167674173402271618826679348859518570630838810799987738202247842126889888923744947237481054348399529229856142381041044333373588254974687908378741604358200534282368246022974904960015132936342754286934297988298029131541145982612084925298184840055207654996950754305351787299304556335749258539452430206264787983319320626645425294599315130563500326935678672783663764162751894314321175067858132975226987865191050691842106037530372293803486208126412016317548991963443164709965226441381743472004029108634377161581155184008162759262353345691038826866577037380695200734946560923956180936401289972002549596896144275138645006668907205419993113789660326083414100697701816160678068223146047179732911587560752233451293441717727382214418317629919887582066268185699036130548486204012300963947731911689546463132282209019661395477583905194287094731441299006657348458840783994842126554169598187993634447297299869369798241773085371890032893189752647470524173666599084593645986713993038293295249784517132324493818802694293125096684183925346243875867704680295331175147799925637805840825573461927095725097650251443700045468799804219038812474261414785947192975286990353128940680291327541658795063952952593611837175033473810107062526782385130917049168613326385552732963422110678764257108672234565454312818510177468854437259483141064914865283243389775472377662062827664278867306214204940058373898697791223258367097993020082996394782757837306864493882888150342855350996847214009534918670871778915976952108249982168394045452394568625589232735832540451323004548809257907966437786336375922417835991446001435758257458328840350850529960052676162829951164782518501403109720329340402887880849635654783156755044694655546424011058616911449933963336621251244029010851964619526092819435579855719199324386611593112022981131082706235274425253848788177556957980595229247848392850495951844413252076109343282427724687731036612518998836072799820923150978636797732383807087724338775307850624626804516125885028606290022588493107931811637683741201243476277279557353828534714165764233019499476615109322665771428522510819198198558246946434895503893306772187876127727357372020249017569232026532585975187306331374432923755209447013393878118225427927932995085845930558161381503197537309808261526101978593923927179870616415701153435244843108973408729907417849502768761621268775248035871765508065088893814557083849385795234280203854376294313769060232028526401944566214631099682122295624767690070242778796224983493453724319626884034109377369029422292383939959448536897177535631486533124802093129941319055592769284199038486832094220482488951384367074470386034070665879173223162032373430119407246894475485362618401615024863332597164726755112661896333073188847662112977082156608265682548605689328973385959557440634425004980405974754659631934836189869325211590519947211480518486506393049588832704653275224995055520825565331149636367702706465437563467770948486033718381244252846902510729880670615574909361659194372750345380174901890372740605837931538692565810353745059081716597645503507788239612034846517104606826869641083962869599122977142063600055387918147579647420258132933684905629780419230268323455467656958358360214861197808928548348953247857535208959787652563282468664378693141896692419872998454815837982495421191730780623082486683364668018573933099508047566192173367951155074304506150974375316634094140307780491862333625401512178559335127592318304670958053977057928950498707866352261646364210659501436291383881033889770826376692799501990881170992404621271039856235299985654208038979327292030927008114772988736943411120188465159845105795236046565907217148068223134295580410739510141039415984470728050335254600066258421930040694183580876931099918516397719732048790523843192816835591119401435594828572958028883389382235562699413474187364988099715314495584020251094870175345271567769254054506358231580754949644461832140457890160296266990527839085345908710185556789899045669105604070988328162876837979288493089068640291204723051142546961468113614785447185884188049948055430928717512519601363018970195721898274932770010002335512306702450350117797905285605473623539532369633457664927749268067290297536016723678064664329658927232632220844565460052070727991242420487999615203826395085132898646008848288178164750253496033801867002626801951600294597454788450857904935906090326782341582605445075859021476896520951311067883156536028943752522337853446715103769261278675166050509108754106473747430419072612033152087439139367423352791715633451998016472612862737606581535995381276807507158020643403166751430270908995785008055880797820727464175144721531495893390381688748428885479509752888911195577135235956742068237766290909803844660789453472419349924968700057858280945627467478007802841206042205879354972976064254778884370182168349448590473300286589455847775485875121284797415666279149015572438430114673241693848949469956220368236648548087456485850761944112677429800355973781669043402119301841755966932523773646636763790149182035982748502992190211806139591586742564150302332712573506869246922719552564191273155568276238225528212147876844484441127188400756581017656260295127738843139573915239484397435257423341346934617907023447755801939673548084999122043751020454566197033584859766364050088323092492019315432994867364635715946353024954755809212483103096544810312408629692773975757564823827002795132522683978488050441575098347918488143523096173395965576999697054302886927825253431984181535085694550795464585101260224244526241762051233989961976992043338303227628319388642433669449325091499938194504392168713605702530743933185398033010163212741284642775472727669051802638382166726675310520598811371944961540311956912475960369055666503991896388612717224016679408546882583734689635466109529346335036333078663838770568053030116545849141796940438811867709720722322493475217810380729484656909957364709541521974349592882782128992078986503921375823318935655898370501305305244023982432239672678168579736262876563068728505068090325488413908264550588301498801331288203434041157979433975136170175171826276607039175560033598916247243584887821427149389148791312469364427795217248356454069364494834011636943569132006758931601318125612362878716546122744482578493524556011381753702872391412244371326508396412217132068728793273768004934396093209698143386408323360295698890264394585162156550625192524855067269672496484086417304446660219217653949225964537817170904594558790667808878326611140948302052298745361000722259994074711845953404034627205928782050245643178661953040569094370758561149506296742556447931550895791045887781603465361642070093344114314287129128076027487637050412911320542506155917132074967464941039247016431487275740541754907655996057557865395063833531955161708183706536765376567286797043331020049010273769415687231287731198927540124188457925815536754045999691096174318118968794491217948619241456486821273521412280568620802974598362246684145756595081772250545776263551209796964764002922023605282871294735113108674026959260087146433724563522497222152520413097217691944742955995836776855739372619056237768143151878772491393761989130294371255292711318353863656792479751684327802804841087695161304603307088372892835824177908181562169930060149587472239658376168016480872772163594395093538215922151109064081416771187326159223674007756986881859590319943154404863022614074948058991747854725466807399142900060260870772742349821287553109718146240904297778539185900065023989282440988710756785788490194842962444741694976138172870135097481029118025271284956738977161145300017780944479462519023165736320646609925634907981090889783420803956994266425624099170258344471445487374181742738434699951233276863491808937484755978974517082697182629888623155075280146707510737304183183564973420015001098475906319676301246611915390193112152457168840569694814630172677446390190781994245485884776931492311117421589357399188005812141563263889442548411072729431745598732201134296065981261497953206987348308651186042737891573811019817576373598988513669356239590483246630291532313208249840922520545259140834194296592584140573619166577375007436413426763928202970022450241692118738499094992225684742118390767784392013376272219201634052865750031338848077856609394929743760116247226069271276225233972537846217171027871184614381282585199740399865904922907113300107482422493903308149024552084444042123822244294318755765328816676174271892358977101705423529162661960442560630969197298132101194837388450598659363553469131198642892590641118406569668513910435022295166622267262808151920372211675008534281738851485443388345027446974337214844363930415716643157470544525539482487540315412102185662266858991772933990053623028304898169745803421756650465235000507080939474105058523978476573642804128236380279521310614455999117442700908216930169559725443723408993531976723242237763029301772966818731649672304200860269209521725674167096800760461159863394330269875119358694993203426400604525331596081323772961239173231584821293328850616211296277809327661530833417111637968133527232501617337859769121424181738612693682828473960719244287385148246572111701979082022349625700180553187928865514698256015122261775555197539659864531649036815473268284745431353473587938817980548475896624540661567298222532663714613866117862298667687131572678486759435249404768079761726097441008744648469020700285197749413624755139410345434342966110651942433337237193419523460585264464940247356216782558833233176002348754785516776476589369200422211987380939617911990100973628759256553423790966521905487165094574120852216917965557511294836695287364099976369302252607051935320771087900262229946079493549894310721536318759528522097110265567524672702463697791985072315030725163541210279404315933806045335227024371486528725541014262842170502897858207971716413406737421548197991656965556849816077767605701995994620866305902916443380660526776451221289952809014218032109138276423024291371402346118241917118773761195198875159711710360108881142341005842247776326630594226486942146124538749124998900082896062588512177366977198848736012037091765063435211057179686254254014180161678037192982842744387690862615278956914218113823681004186448820517894212899553930521725738082597667101863075364712666691577344837302587845601908565219231290340865492899132803192023220855635070259031018077446471868273133802086703470982837831501002934075964730668390810748191947188503291728952752528699705457040283680905440229390365513989358378742629728901535312861779981843425330038444210049334279590984257737057714354172033278926472968641375265876396447018018009182083325729031063195251872416034232619289100791891641797506311057501900727331244271317854646864500719256271263906014466980659710462761698814327347917929432722958371213980849629309681881507410638717106095388974503163021464469707522527460799734313261718543683116094489907557155709246619140590974094131026565288670880807884655075280300235134486734886484796691052843473851843340241078120446053447358089799590985629252793861611899176918816289275039758923082641851728916803781219397155290223859675849448262115558960347130385772014691367630643894879134088860359679721789492433551777047214011216832560709272134081492882790755632256337211269338117504536069722071714429900822935069633881214333224183223847967951465703376628939131123702895325123974480695665584361241379824943975951424145428223748769910934047198310474185516267367613180605095577129215523769908036246653128869685566071171008768708391520133704865711301627069143649454123879476205588319673937621728668131699497990346987779770137454940203327413398222186066014602028396280129721404306922599590724485937851008534218477264182736897860786479535474046725701730763527611777736827495625389430462853611770468246187385308712674571852809388184509426497727841383117428357031977671060343282494007292974419377862165283897321731888904269300752754433453079709221573304595866221523454959377948245559079885815566128490463530415417991010448520122686420477712772477069753252779306742855875626406875898535721799422801373694901480081297220114522098725755016617699386032796118363235463747313646496237077738635411912723053600816471401578732308338467360047503007096478039775693433171759216103822214769961339636726340188428217186026646204696861246370315365187460368566006093117435855760182423248600817186614347241578065696690101300325788345456746321540221944557595377667158651509072659829300756387493528737576378450498279110316302859019752905683077272815650556553887354587442436080823109267472132580838337881693453773719864640626306979918693822648718441222727181458386254180480027823974293424758617606425821652860239372120704715183445237267718415102091156137147388728629002886496763289341565949651651061461790540218813978605667158625746930153070408371723235327661024907443489242759951750764125578863692765465942036544841019745721996788177419798261555434189018875604136791548847419034903501319837048371617125791035581149178249706715874405578314714344448225900326880003521836276489011624858017441853122096422999934726379315728494169947551823792991726080111062627644220496407501640528565188275213914042281419692910586303528931761020683395898553594949039346710815305892732132334224183024767390353225819176999876679653808247886169304890529377497146316198458522016062832051632702367876742121120699647816049373796248361665212081413482019042628501213746211316735376324227093199290064497733964734489087910419691085479765009681057016310254294076701488587446428067841234023419959580057267992524994429257959354886554295826059262878716543581380996185035340650550860866435847677881222571537880425172938068245600248585532278157024837543348932889213209947618548134109133858155434592761065661503483001004821907506473606090722496865926467836315913399117890392968871682301674061822997854100142907987973185687285809246828007941017236116578198455065687436594050996687682260986249659667497731370902182412658648182735962918314168326962573820490914608384837470065247598721658039455484933327794919341741445935730754845450249388909254219249790766471064990945787147829361413160149667263033081609267744237365814900283759109005952399119564669809959034474000563889109566643617755338684970864264212121350953316277234599261169168288233740776339665010110847994741712188750323762572249681369698037693198471561144830824915356824307185965231985204600421543550171572660781537213902453856617356441033464290933393895743913313197278785645390815617775144295667264783060921682796819274991655989225879273292309366180078137106610843999501707513978349202160575882041650714482465306547244121176123122188604771031424301296997569917707027798183915508751813847165829131807855023446445263877317431741162278297239708134800602000528794638438589963180936521932570584723743702113882728276944592966389272573367788272678478637483449657085269611708681917952746437439962758441894875128442059601079162712669836218300066767392903083863599116284317603842476020638383702256914433795517954463620549945305538120224018861376766305679185808762714110348326545126651192067272496081957966948534616593248850105017670615117183941105242356816081983523594218542996183741271038058691250924857296604653906328743052869421018084595930019461815387562638073820191695721697474052357393471164844858316144002802175709681739138239641903385589553533685217078853166132822178745482473712004491987076102262923338215263813033944344111896994602540544489202956318055868317885871837014297901805665000194554591828568572764844352755576681027531273380400340582432220900780222456696995759193374170295904285331371822506598781134366498567303337275125200597566321502173353911269034287011383054067086205695428502643755246852979098598054717060859661055187002592085073964726495854375033071133411998888140491068697614521672721092153182824622147890708499019624201790864053686329392684981956736448551568208753312750164234287279901469335697938955575842209496072541691240433259280513349714727488361987359158570296909026599010295683184695375463957280478335405619356673971110046354615155174414904958739074944813799443627043826279250178095614724281970083938749167838138548750990014615431079206460825581651090064400718936354613300710218160824286715822897786370166932300420015126786239684991474686576376056402541799841094915903738865494444103822313117136478450220969999611974946143536687464386256275015736981286828042876119867536429640844975426739709346506122928501673238126573279242837666946502394331986772435352708398472781592452368057222357716145849944582631414123033709681116044055750490323192244668299010630516012722702506091932330929724928217762782658208814971997775898557155198039225704370154478457809629906189332144342633363357481725449379303315020874658105235756795486084728934772546023132836957841835000975884449584237338882659187559561197035719329718538053144826350744807889897952494462949191570911123154502210402846355631983382896794030192433126861955417214553952968775129062661662963705969485823978083875423381914145759751313807176444098255061675682756382789225354987149385961894459103554490554196795884881652214080622828055492074553389393335037045006340354670451848231326550800270034077250734291898716640856343008683754306443780168730087219598118467322667374137789812729703178842900891517025973011929921187734780985020372499473226556306859701228523169646901391299071326049541947008837343260136892721203411739043628516945465618873098576683874097716002196566341556530802095377128141680609319083031092302002583739264253309823118733376854835958505166603944681348204415351777131996038487982213070297187569881516929225172550822613475444056301566471331546462526832989289449679968332621950587110111587673579592036626134209844376990617621676641117883861187903581190260663148526039420943754195606614533614883736614569038154025856350197457032994472660467328627496828117077943160122192709598320218363002879697524849145245662561805298144459078474214432425756745543851057848200618792437028823330402398810578035305473739741321363984403834906089476900054237172381266832258023077668918154567394652150762513389266469925627540073929846010421687572051208271320598781498854556760852780138371144425526372014141356232279408656867825204299938980214060875653325422812251187804625619566373712537755555795994448374312911339827712266632687536905784224360217351964818162881253647497162331953326329484240439300689872490140984371355943172245994415536370641652081741774509870067866144333545043401274122872985096670028206737041150912291693991605530572748057094280695858050389639891510128398938589255774655571126352978064958869959551796660569047922818218567204869970770423672261163064324510622298371735639849230615729511959027970087020710195338512742877886330068727777444078133575614390012297365505318633254918386147999027515026885249358893231407395558798086686137964856061838813170482568355444994394537405520980787328185211828499267420380057989093642910690829191864003472752039322412951611350089274463994578492875524932737282860813876881023655008604842977346030041065873283980414377462832686053787182595659524321880984317708004294301299277011382978666026786084154652350185261488125113082263294539856780879344524905772450473312711507778827609409785544010005925980689630307921743505889266423949822952317331611220997313804844323045714426804372024305267018416670749383539353288990953841859339464704132962268806181700729304943925128689932649851616228162444136759384523492372762943480588692461760587835749521190263102081339106357993428043206108316175674988526232157716428395217531201273160873343879668234794656391522294314913402315483021755622095345867056601331776653762034438161183056233699279537224275970481642678278987280032492065171742222079357068580944334351777506487071313383059461689473947422419494520106230208248984241236529206650870404271118150441238927211619877563613240106099356151308631940303019826170176026387548329164331427875259375963840978618204025855168334290897999901499667885725631196520370536666764585591608724539145480773056476700202461731509013819599575212853072716544016226313280248016868843377787077008018668287799549267974105361571314653007500112069084573966269602975468393563413871446849238450423363690125044500431506774145279816004914107684066420731257792177140622841830189302737033251049931126763400897149696170070162621398975290400740751285264402161367209298463590267426006045881444797913356428571465509135283925662765413125089741832984505146981795811500373807230559782126315898598333171531697694596471610896290217543060407290861391152846967965541870021398669867424543238623943729383577595556880385453474698181447720283560398789455046431277026185765569126043567560612475177357655705522889043005855686264985965371711502113056993009011832104000554005108843657893973365218403685568847836453232767998311599940296000273304791127143855125125879282809287522032188090903756123105390106825204781764100292166650446684777767378862665830487038907601623135593214254755147564113033396857293614384809426990456364651963281130269396565306068277645642010849898838288663113429035125900174968802930282278601062406087184303298321001484348417501609747995109838993988569765549214982922863841819964177832884731043804901575959310206823685886995606379653803334106109292158460821637320604702239310171851124995289668814051807618806092753182265584616534636200855303372794798446540015080716143087742132481967735254948331720739732862170569272236747049708183491705297439605004312296992505311043812134493367086234433839283963252753817456234376487698715489588126492729379875033287313684404827375946957500924786117077384953521664462031796227992143272865693691315579633801527571480736384510106180311727485284514717577949614316770097300801589174987372583332734930990830382886708665478465563648568701128857204919168860667825463340639932480842386113538652433958013358030291583288091945075143851611446930449052314655831134196535470801466229839528111740309838874006917007846833077633556283564932224161885456599390098072726369398263953945436256808196111547617199169187599313352491418452550332047674927110343441667925035290649805221762601639427575412258638790157056680192575306031414742060513766127688751711946003331711179559242941806830044585425914408695441754877403662982566006300176897927516709851763512588717407564680784572077950573115796121496871354302893691835800967371321882905509638652319729689623844061312055207014927960016214966220421047722939323478697517060660895217582501497065500445636905012865027104179123124766081051242953720917903698134224281993323823065541127853876479739305604467954188404993859350901051846222778442687948708361625915499050048496786576521513304542735177949240168695409023624766522680431201194337571049648906339230841480860706402866287120316184891644310172762881540400458750221121972124610460779576552077709869850983366625602829234873394770568637110986754655166884710924852505681374871568650671250146880120499999738645120209551494846121198171180320794211860853974413383029328646608663505643859763252805949140694428165043702533363893077567297520095153019807240180898728444681314824498306239729293452700174428723677294673942717821807555941337814138295362618641208370382216789906645538615060050800640438492456954376296857571741432567311707545085465341928059309332357450085053012768282416876693410656789289523854296478922603639305396401248520204545653335217792027686042329038060464065327776722631557476623198134143739048641825423803309941972501397727783571428585242620565693708714749453873305197020074901895501046250275495371365663470855583328105371022273096040259699183991365951206752821214893805106941644202792763917579357500538820323346492638027572073545796669654579018363871874724491899274235536415339585009723248955258464994051437320242447062550246664133016532065384863386739361873249753394402554813300933693595252749853322385549593584691048276523156642897591470854215109215863977560328296011400739612239849663478619316256290318952443225916682720008035690895389165734455962296998140176631137959649121115264456274317349129004836183155456352776236310062658663366936022845896494663180305647413699154150863444382189047315418875186604280151805648638744451009636684409922148821453415392600406355401796141017400630313159218480896759112134816935573126508029756058617742276411401042308461496047887700496524647048062511277710852371855866353124481314475588205756538536023017784465767399636855151189146123701691845455872953496191494756004903505182557937765833094065775837420706719197382772417805308532840490120757258364401063657619491197716302306556708850824025444983353284557514319988760066815994695208775355749679616790112910176653962059383603619148795727090163367865057035446029595984041052043413381462799329965548628085006591729948539339386329564492616113141665128553458296869080630685588992736855474763421972285101637158889547216037040677711394126669921459576647011480893868100209681297796940593587409895067159780224736745832153445312628744713232981321369720907612152315561068234753488122459229022127141820823759261029503853668829338176915199839913748385427777933600866669658474391356137057175094278748370278872049542995546802559944796952097999132436540286644470310584460621659321976438646926751390474961583938904533143579326006603254125715593937759729555347632992990390945426579991141136893132786665395075490044157566021807271613633609112593363261678078934613284357259475787681052002555512657893396603932136916692117901969048955800549386871144303678637084512459561434526476637161612435732939580325254739167889025034595468829655400526639722324335886948574154357241771558802235949142174085250730516827046379862338407957029255250790383235812248854485579859763980960094952334080263802373369031055035306351920903253293265577297610939668522755161162925357914461431296760340531303834282467022107206012745942520007550314221976969826274551207899659370515604183948359518309163023805969206975037623015069757992902730915776722689483665859678843410577928943550313383599485425226315616875970023933694148562224494921073466918064604764229505846189428330608292723614928276110718185498402899275286624111284432220581680312317568857518306365086358010467319924060061696876173186532025337803760107110290725189991331635860247853635109912450753622036673607630561152894672328778210637661889305937773542510807436057784304554061725509786598162492727750775773480728718276863053140095238774240311131435324875702527737081160313889531663058008088557315707269874396773484767797324580773483207072728121587123395143646520513890465876810641339207559150590352959570559002022129524170033910254186960034384922894824328842557496865685920666136456980079585982824352045766499800624179705416038034968103958363388396444649738065581454908268617028439558960523495633319116816618721753629840770755263682489354346457501756732616838583121325055134209094976995523162274144310367271833189946939037701936105826876609196122730437262267354817676583713794626749457781761895967867154041160029199203169972799732237331705299301622077259417337635755399708869152908167817591205788147859907844310410865770499138363371863716354285147873081132913277555347875813307932078692394279607470318724499550311240418564962175728037890157635866498701276986382473152989990393474379478337267941592957523366396968181070757031828913447999316059124502404169282026579984943381054314994712249722625270365973393956784147729961743731415902195947577435454432849725802053306490935062697604201208140492395113194938306152683287291397030318264726212124153980866611420764931310879615255874701925746484363880566256753750103240862919208094104347895781919153708030960332867770068305351814058631080797456438229764693823146590317233042244077990915845852852407144777228821938308057265577336146841111268338308363650299981832830714312352290348300833359615658896256911706009878291353067146978610223864089583818230778870905141699143034637732344945462040405843706574614631121479435922822338235232060488582907929554579786609193394559155534049612449902768133071796768340491170421503650392598418230765551143195011844887739840090993920018313458027747085143650206263964775563180257237415944564179585720059801170676235716498167467796270283432822214216631623958567705022849149780452787771702898628924855928190748001619539667554392784248008996493459513826048701593143528867407060107716156531957710912136277485618051018058572134073932336847162511196397967946043583211573225965308163265894283830532849489010680474718213209859024382884789649502188070576507379661987325522578478824103865085718767196859661074168705221744012164504027268401345983441270504012976864204905999468355974255198735819911378015037517021828534099656241051925703866555853230815693040206555676222279388203398921946674686694999158141255624132650011220912664274361366568398410324095485440732339846214750438862465940043034917332104820805612363123481199451270797773147625643597872015591979732419168858266493412266917424307646820950395267060331237593839352932112032088990800922733445395778282192997803864873714502127171584284376522564735482928801673931275799824748108407385720466983528528616343898759891515767992980878297452331385280780410344159274422761378402645238480405654501270022859108019113862208218990230852178191656529892974770270386232041693489905721576558549492508391570286388662472733214483536407785061899873307420660506367349110610093977003105213371832425890875821275924179030480222732110183430769470509557007083437816239561434742038927451504646288330268986900375926095988509863322598021646252567257261112642361103678840352007370679889567442743901317860920718786918671207937596409097814305159613863508032052437839829562485288241934761870648384491405655186461963565409423149622966318870925176175767948648536805189405729471971570310129693520299443967442101221075790002503629862344525655511636617316718673175363420602667243888631460507575249143785741686988235087974911263115035454986256220144674044851117433402172399007400686236753969268122380082727796156211000727058288648339736247561393867651028717742314935661267216418332242603860585976607356983761459881715255271562337676952513675170749628963299900141185245642121058881715661820117987079843147713900029675363018155035147020463377344607978937657237136621306614906809976654786521906753730001368225484696290888485795763304630587057165629222632631214907616578488499116690166386208205451104160248887556088890104007265394057984680736108069155513325776146959645180544577662894693303850562082753196721323230081272804537076115443009259005565932664268879790935535295502680162480194614313460058841368453770155942837767875665163019614700848622173037828544678423525644892237002521863067851969044577806981725578782789561599084738172411989170753954051635307102897951457753204823022228301562292734419997801796157074338705332938127251849432429182126459722942449907765754658157869316180591575146882453480142781786139087957433950007679656902169058472163223517050097197634945799474601404125405302649602538182487278544838531338576658242291356841414238813399685562484202050096273201036269346920081488150653014111554447999000994003254291019938921900513284458943708110602018297633931666235275712858435018721866695724617595045748357530251767712923999689344389090643217691262172491910115521803692885569851946372622101736279839299523178445067069940562716656105316686198904325758389844827663122247307103042459140212090429744936923437639473393308786166288079960897911858095563535052480576351003792588682202885637599837304800853272552793950969385079968754641925294108995400525323307491944870585106583875295642094226450387061832018570973984288923703836912060829661435714541946601912967558660276488378746485910083382930102489179655236777524556251682793261115001015175403566567610773919914304944303866126402824776868759609890081626177294041720098327715163970838516156762099371710778786750197700518241599185332253944466370722886933286807970210882013419687284909246607557171424703111671344319061906619453041344201284692743703455971408331581543171027599734430907588647834037195464275671090135483377049923895209221561465836531709296871206411800121846845533522242952496470321855360891836508794475031093806968759194120771150264999230598588553169620803228250414451421728776640531436035309556111259831699967399998159818158851419878733113322635352273386255213211056588590192794184404392747337736203386711465457288978542093309942981494287042471691380913319455353643871442935214519726583893223856111930759534818672357633111402152778156755916468204388725451375202106894460994824230444242930515485575562358608251172192396342631761143868741106824854620506692466966269262019072602246399727901192641188829239662036674338855414069309837769886844392122872513165090120285748438953892871146680822330706118675128399104785743536060684653373348931132850118099524741364266196908219370513429225608857974537008982929450357062821949892561765128421223324054760860934836755636309167039275382668121401745365737608383467050774710987543063978196199790821639681062220624393829804001525862575385401771621406263149864895034498932508757389706902691232419306924742316353120230969963888819101219619910353206192103435429071015031919066061233012493404615938624218255720897453984058122641371439551835149093322614050632290937004104995427049185712294439495838643590082730743107809758840096297225485467586114622227956910491857452816610552921108536648028441731000089831056138958608691831056783153948191917603019915622136463784656226260983387785273979351724301060233048419599598732149652087762714365581692932575928073740657824052061245945525706252184073309798405805963031803171820372611552178480765108529840449439506675633028136868789793872991632733355144343977723728911235527531855489512071045727442511065224011165470115433127133372850917612736913251656901549460305828379806058232328132553153101896060429873140171752207409412263851887988955841982147619117963981726975200584492495188209818188819705162924127406956049748602255840940283751125826156088699461056841072298488079540116643806958308211300928978503131937022556566481670544624826463696034432489229726493982485470455278239811309715200917364688624128975346170370466974471404207181414207157356660566208582131204248387829468603968800040847136810058804214670759645487616176025144972489951753653561999782263640230370924563156463527528628440830739191825576274212315343177135451056357525320162022877266197710163433082435412485941127989790228299771545839228494087244679516467540780038755465563327755295414440376409558361391420081464903792514373732776695992258917899233548892890591550418336928878253826857473956846886824276634110616558377891452602347457110304047089649135039425624287871109999048636814763448384299323059903861244125295206466690469984145262837483721683679013302045968368345266496372870358013312822657438923083744072411071239144163518997400285632406512598250119700236087232393018287609406890303656424330497894968041976442036815149070772470269104901273310594141003538709217649178111842587593210542409391150378999837359153514349241065705347861326742767620437814893186212225674472845656258006006093091058989967833766113572210214867344090806418283783410839200140657378153839390279609856426527741273328853404144300947107191566251956373076148533283514314888693664686194407157028403851876077503319080725785223186158827363779469430238834104873851826492788005093427330003851078607676802648485490932082909664510950140942077711308513810042699847788853231448997298297269677371629747972862467582645902203134029335892929046553304929757798631193954832294219856354610421180154845417828358580992137753085195839905679367037694327411913729846225607995891632941689837892042917780064409108790607664957179709290540242011170473149896592500157566416585995245639697565664389691501520955937436007531700771030837651992378392750741909333877389065381062839247353047535286261507426316283486234757678379528247632505019576166618924232762604275892388518423076811197707373747117030444083905752042517795470586889018306667691852589702583201303366107871383724306895111475557310211531985413910501305718599934400522024999673872979744071818150707920816892657520646695198882859295627818273160911896992244597375040096353119764950839036688476691216505336495026746895827409690493752389359623692989037316544774417598500978016865943706981504365937802798639242004318078904148417176862020989679244018607595134726221653167792802280701771696523815019179660237081819187653715745565651322051223515589191892831474583061142750088979323121417056951173534852607333036018411494669124840910151138466889521939697938074983290815767453193194126457453570264600461285441496319688208131547264317906957949710001438657963787091648195091793007651562412553809218777423004055919078962423751373338230668126661478425178055863682561153701119847228384759937658704954002124758836115104662514434646020303360694725304858738203993036009307201404637331493511359913675615205968859516379898549541988945418965365209054160294132245994410559842247290239840372051672195899563689970876498329780001526983930578089802792053730953337831132244693670982739475022407941959441795160873365396148437855199040714602356033002829552007020912548371176196536683011964428714692081762564538729641142129078120185389127765566435541450818476199475396584173167481729728242339577008451558584632976856950961845457510923414362059179807368268743492903492649221767520413319290353868802354080778801865945759540340185465373500022873753038505919796771859117548921661192296506383218902964491107198069592493382046205767260078514984555485748452890687233518350326704183140738264550037613798476307732430533357433846341346033264991790529057922910634433840004865477770290648110551237221546351396041874717754782916778980805426972294016745418891143774144630021639682187860067366163956117320274749789696976774408501326166633490860491874881716851347073091469623757247810957039197043993482831730875307258127006850391250235018824688013782909781677900661902477654890501700559102347604340084074670089266239184325332205899212088181299932810770457225372661900497298314714042237709653156303031376261505608408310815550812045188510690420540794418517953690011300925882588293987683373422339012169217493228888191602665847821677089915615574339554891362607305436167021221453870215790654761156134364567804743486304834776837943823945730796522956135809912405249358294832071515899012765193867773563654063836653269841894372539746626409686097295045214078234538823300803070137090335890691575705269119093199699783342424227743450020133353921262113030616604348419290260701864981239588856658748451763586073622685649040760141710323680113343949180974517194909234683828860047867067366833314387294722012734801199149042461986674798832342300470375763992554791202855835650774021222017376874436434838232320267269171214876588507559519065906086701106223303522928623334662726966867212161306140116219274206113403916864268850674833344527175012568405438469035564424461391255982323343707351579169209106818362628487092256668101166754007404271500270161164134805741028694092485490110254551109248261578575267799672616335025806791087368655989961085323816265054932921770522289272913599348823015481167287759286730016806334704364291881953599259173374527453538137582650020163010917674136813064335404231751397153717955712690033644225500271307998135828293170519517162968389728724563036948175806509200020208817063306278638958055653899710389369725162888196204211857982655184247308510462697438068325654393517782982560228561010727369196434665637088077588909796942963220028412217560026785551561075950568286602869191019350763043786351792229961933292601276616677669894599455275454154992133945206167449795396955634165470425704884901098443949207843963301260105120231580636809862276482089547669006242598967750542599436820024881390626439233756109118480171905126208515601085411443858147978500538972343612760449216873586808412846807049583954151233786505033684716674201409696878901089259256746715727313316754861665213000452138045931139511573597032265405453923361145720554869180310592355949940340138266916848523942724029092659721333327360344793866367693902010883830573350320093118235730614640667581744813122742512902434784533947213564330560391420897010901314768093479897618079684823183533917664186550540234248609970526353148283991977687950290195108694645322312850514886738179341030760950127651656992199756471433303720496276206614989930226055336556150318907809509761398653999427232322809221432103992812505290814180393668986665034636586576054328236626399190006496552304820692905204126946905738480051340620664852163904679858162421497317690894408320929057099669535635285041977306132756397953662048630662583056780898906908186542243247559593574756188872411309728729221514843774253895386396272929438229671458784925179930447378839446409922071083690151194462401765759064012382587947505596137779855125937828550410249884155789975828630181400470859172119669171439538078307932149803795917096903121167560828189533857633407820007763039371474012831843858757461812189773238736899714296076902869507306650814225345437842929874212416565943995122453868672973239663394047651550426234424770077062992390829941927799833839468145157739548547924398455594323287277671205790339341034594834083612397908129084514877204210897706633315837735235525765618014509877075484279307799991892127009630577038375539073589820235794295201314286977058552820975653241410677649520793993576906672295444782309238480198536258346522726363341087810111238976640900489583211922215849354723767815983328794819357133390842091578373277974297444847959852968160652571431298137925911277765464172370687662708853528097050640336480445221705014928752687191711469363569954586981644125086407117108154729014101764713874314144831168398789626629813646255067158837093818868134314389268819603679601556651866347734106392921991348781059095012416862004312098611208105114252041968462212044504690803044106444950077819951591414841113591140989248763407648498644801896140123724648174286543133530501457314999670228651572207720005139636338032050128142285893208185469062489883120014770801585225291223777865550630280156838961965340778505780766380868171264320642826165478489721706494300620595540269030606348079237778834848601529420630480824626854004520132340279969687940972607213173216951296378639029264675671488125107528681998846787857826300680376396699495155628665313860301638951370667847925820389240793540149900788466804991656037291949342433697504228875020484567370989276110133129826675800334764479750780676638508157730723563039513946419950490125385855679506488770933996349779882841934638029403367912081268169679783390494476368751739167984075193276581291587982774036271927514973092276882194398662844249545124574141299519626673946553716106510337089179264682911118492425876234864762483446622417336215225721224383349070805916868668065782204559143409189210200296223419144303051329134883306328068382994279659224866363598050887025616367981870942347899762754209890094873484683696994789564527257680471974950607038982099772854305472111069973741995069774781368908131895895562685725461726231226757531592597425980949529856545076428573495796014849826259149916408182858458561254283819372834880673269362801683547363644102471543026362704031313425781884826785632502045510164397141929449038773620570100772770719625491846547131670446386527253121195872724149052476376734098201736717823932067625999986870575354624058578564447143458183335247839827812698316191099646739367480106016656599869276397712669905961238303258070423030796456200557685396265350603712701621415297495379544992180292312479011156233961012936913736498989431329407806723466559478658622496217279604520425932373505425501425948991545677377324736420193943571586935738383699530210100653413355045215050477235869403750032815432865038091494964733059863483378631056261173602963406756386745593815027752116384562401704436207895511582068064943759782073909784393321916913660125318620327723639023934200807363566376876272418745084222099808437617199996081189879637704494435618809536185034187830628070636661288377666989291830952026311636710142357865148562800900191665928848314261933820962477200221311818295718576004954359793482581693694577060550012154192129608915235149630272142000429080975283901615634956125115667880744922552519398777758843453715214892138830803805598912524366297880549970376954257859695745670677959475229426555388995107147965803924581134432568985328525422044980982889404955889902729127669655385315643568335686832253672398237296414991942674007768563341018877880253472122326980349899700746790868696113695739299378079032535001379252974529394824987251564767499999703387578972951785120117118259460817501443173299450203043183534655380441745263471188381698083831329395083817214312169026623217387514074829507137562415326955747568140044033731140714646543280587185893872771779574850255299732398747998453321579203980768042447660876680669017816178178399341397269226897430186492952309601466155329177429029729037609457037355822523061442740869050043548015063705244973399802425205498561083719979626322413971887920093530764217145612805801436361309873181913167645450527273850387754888871095054312385780262805863524916608134046454008099747712354187198915865521767789976790322316448461384468595721726351370356606651638335420205168101015213693439000590355340827966675584123936158691840262190738541385706496223471131693564179143163762074826138617636134498936556616320178584303254325506639401542833625654293218495533798742628353123128579810326379825348959841530234034765970150893421609671228754762095482395592999559382560579601176791888771298682506876717141568658498085231611467984824588697754820357061838509689898919254629008760082275487974527696897532704397648879959755576905367728473857545505448964490677999783343127206856801747327070389626666497678446426543933633288402748204792316099391006048986221353876319480435991901737181051360490659992528031461796978206999758969018673278454962294703858379328375297656500870518445234244036002048068365787485432177169947945516002934152780422216384273920435562201522852773115561808474873763001244814104375703422750119997687092348498002969150272396503671529881165980349989204377467711331725534332736678714775821749823197896867032203586321735261301702902168316636998265400505998782111084098852373185279965446608715710700384147043361707862814798630179442904453354752003368343590279898882137342916453653078037996372688210281589271327015455478022238544510909712935556880031156404365685738639529615957673783614405451641407498140741588860059315454082412159585973084699400826761925332261920871248658132776917642180310625465393548911276462565632868921471263966308522107766805333515990314911892222812607673700345278387869643881998008820080288302226966119615511727450316651178727889991969898849949819174573068252480880539000694080831645959091760965102573149234603708185774843002059076653301230162914338619952817985769843495036423708039885672984780188169083963740781719699189690534668426366595356685815871787120489377490594103739990486961392790628436657616827979358041614059292069579400586788066673310495433958415806796569709288277199898492496914603736021330956183725098398201724860849270929050667465040145549005636015464328762372902244684902617531371106413789680207188399415441126506186630589355137761755961246634028335746219718977902153670014496743141848055245531746610539970199380445731673585832213512016462472019518296243014044954275239280589776865297157465971140547240743646142336175135773111917693824927661455514565738802275735856850423934215243059234105890343892014095590019159607062574600054230386425987769541475262456127210640091412655021971700637441289778960823363531134047243735783010382205855480446684093974797241327295048590569272799688466797810914907663131386784533266223476627098259922027689502731022280197199701218356695696171298614653814662109535536692958787677175019838410239192101486637178005092539980116404700048514423436290804339643696183870803368927707570601239513966644949690384206026625231888726977321144793535517701418616553344371531242058355017827771162450858725912682318750291617191665551887664356879085395302795950041874670896084314483683788365937691220762006162599920162993520879310758051548238515015787319432469413335083003275490080005864863857466621287118761430669622707517387432056793830322936327958413938148984365428928131737998961378037377175215874594121332135421523445217965786038030602642029179757560447864541904809478894628375818828617256389702456957414274448585495167922194131924483442415345876453667541759285008411185239526415015894609222740060841043300037953727035360185013820988066878801533694792310255438075555922096999975670172772007876552558583383393253309681946298306247830732276217172788068747347857819389324782636282856704177142754575999039924415155465075539816976016437020023995496909546936746075172980580021113970310024938811170249920785070803453626023605936547292219193874820581316752282025042138722621191276648554710380378053632927981035179344968732138120250449311662662356825760202452405444974234293050127806682630951094159312537753408312448696622026761249455144991833733977223212117499901918264471521299653489766132990075620630356448982743032769599890635683379450234830162676493407208791748964891699665573816086109575458496930023195912544216424709284280226406497912022331610085628992480947610298532842740998877500592392967132914530730078442713491537972593197333242388031005826077903875223577761478707918133933744564322338748528312052526854230432452088253533715272593205043614108213444071632884894482180024658483897864232330283070492371427364124877885961085037456541968850094202268339952068725142779068034921402717454953099889966195330688643108069115061202010200144951022434920771016615771367340949347350952673198812705135853395548586365721209022803749864464534287342018037211011235134165870409699669456603490800930690284568874168411993823615473084304580276584890639936726916387478259952370567686593244198432260990724085873625687741867077296569329887519978184398834621907971852997807495071926021456720953146454003732145896422471507900247272499460610188997958014924313581376164934682633099075517577188923873507538870191398834828454488134448880862387316099338247860365304474836933923502938514353491360730464666105430813492280304236768170635955599479594052707577215249420289019057842305819844590403808060511723820919794997991739913462445777003686827743133322926275619665204452333923254800642978442565148600495136040351588663171919088335633160687160470639771851925148797682286346682718114753011137591516422807296952633417355207924696110510704771465192807915151538055708801544295339217061388556464475047272596990886957046094964539753224712028804123181513900391076403900167785184743215688911534525975142902612203950447512147593880472246739365238962548136435948231382363052166031477135568669512384025237460150510072644468685532450042217053063013232978145118971370674250935458305594954632613014244542030329993091945718517841528395389641475226715979429506582568436308279638354730791137224914732041894390372754276984861814621412889756145053819380470373373412597104286706016096223074012213320317658810835475256249865033030908960944231400992067674685233801365950157730213115718747002726292441297351499887025333415291199556999744547111268788711542881320159285917255374760320254573780071142843091090093255792951645909517836805330801278531784808864675065290488365377903270889490626848167230905353459271258253579991789637209160207937830448176701564510121497365040998048675701057643254811467021879157662507339898512859296449083027532088828921798674709008038238635820364299788980648028236130279210932150283496362330668516590821692103375146282511953858290130752495087782452471629769120733910382129756405075858770512410749874531272232551402989656297872382545372797892456326585364875830058359018693057536443045187716680483295073046796855576700488428206892252770141201964592896761117530333225992992742778163282261051487365698655119686295315006451978306046180855283727100497511456991156668369936247672272020803109809697901590915850122977787800261049505313493943458163963514845158281738989962161262454734553406975126325816610464900051404803096394532615722549989051007213810932085554041562529757203001086352433501925650696582891696267517580683651238467763945706097866734679667642080533132165515498610236549667045647892487406090299787718379491269028829943712751757503097548728877871402922213155083229720737261937076356876184550042049925503776437432181797584490600937186376156662140383760816688726302773369949628439812094908202128456575731323759640543617648236072615372492259213035422094763757619456602441921458709489490818044511234806000404373286014593059106477988400974842119412562319745682289855328871173062111494681431741777612467038327526626378469221589684617309377317721342203195915081968378723829826216443282108803478104345826476813999947918345397602293230366961997554563203650069321407447533207818994492469972703204417341606842645342024656465756023130704555905210866746854814370144109921553297740132958547905945062769125250072221530819356402544020071454333156103748425310940743934109868471821115077058164545141856095005106293541843932566497221216460671234558241441993962246757531200469927049502035906945421780343322095382638147802499512574108665161697801239102789649273875047327546559340104849516622242059023601081031643911979034815092469111450844816068767727829875062076991957338883356569137124027799470331370122760820805497003146871667284259763294685730630095886742918388494111220769125510880962262385671343088520927853241578397911774785029849397888003384009796628424533837960713551744615175181769060993982374830987049007852372689878860704391633614066978355952220828467221472189145617839843644841966804188434578903426477923871667793422587704257020679536714357283429109199926869113340915541003780500649210582140208253841214822101247185619744714369044711337522727990945818686809177856240527605605048546117396659751070001110244879241466117538544715684490069936111486401473156773079386917773113961996662953176114115637698712393174166242042992692510157689667230980956607089453227961276315634909180551414152966616886829748324848711105551747013366734168255497682236807507194824712606039646717657697464055253661517402586865579980007811913603734820501154894129381811136297913255619747134913719089016142002446789284567329306520818297114254275100238856202086151473326811709915672739058274167118081081644740496409127475962739341638509150548569531009709704831596513814210114978284903172804098290829467067586550939963489759970449131620061726431331160906306548944404281099322017757880834147659433179377989385556792632575528793156190650228427918350019319400457579139392491310567954395916871606979190387727047921144143428533930145827489497034643847513931774591834638712491065633235405448634404772160992824893101771066056151996535003194775352752323003014186337909875690013897646598084732695592700828837742912882414912861608085130267674858131689089571122117300219476528487876028050992686108873371583623446413066224661986886499475300229467816299851100916311505969769411123235453735369916086464941810189146138001075194739000958642931780176290649842761827828567830612018026908601805833652981073924917393759680434781875129951304846565363782196214054536945430423530289794154116862872341603278209789903265107164271880985238286662906550997179350694049238131307371118457562228645023260889851134199593807115143356093469814665587467377368087887753748544357763337933957784838034461732469817932784975022626899220249122305529338098937579670592001319025492158624750888378760417052958132782257852060323522372304221053585667179122532629332485594644527976956708690136206290232348067408267125065945281440893692695388634108179374916709049958091155875992314834240910710846970635628549990819780210070864354124222069808694495371560959142072359843807116570899761525014124480761336885027327182432445605700926912442356272461160657987509318948645265040213791523183400286599424279222345560961595097549574376955931702871196206449226210192357991766233426404957624084175423557746577225567718134255279972810762408901899112523295921242764107413872519085330049343344593849566129259486129156104128897694169089344633036323166795416621685737422994899886167582639059668946107698522209864504477734282240468814534705393959179964242563431054290615726920531223489183460794748879787160037800743771571656305933824868597202805535161740468129264002602948944992473115886625702814661134233792494519248522546042109954681229698145312346071302348523040243488928084678261702779012368520548418367822430722905240438714349568294976510014047589502354092707018807503892661824507106123006064864319858585108636621198236277124341669907157824119600974527116482629735805366773526766172461169907808737805701566313778266783365483462582871032766611051145531249206124090953791765981739369260923463567761858637211828129975749760720247635750571908127086338069427865365941149588594160915284476227717462712358741014608218705900915612415458752824973466369188768948346968917911551731038112670048310461952531131861521544980107403412270825820380417983916979226356595510138784016894955538047261220700571996347385313009967506946855095671193268356916569005061402703454267204004947996607413619561047453115316375643333264942328922613865213040897868648669176626691767833114788595777384455572882322925576873798366472127371291705455632823864010573995311769613349937503977792768371945401181174655509146869726626827570174912964873290493115865087404471914120261190838087168992985812179638430358883297109120988178319698321509631936361880119186634081299337530680600368183601008489334365028369210418597215196123321732362178923333442403329866617909147807395139126026901487878098877872537413886722867855174117304477884376182410619954061084327463001363000971706905501060810057353662385271087811427940117159665858765667955950275222880456963651423053530232145315662443206079524047460051191394265939798004359499707253716920728056140761523195034675677516050003365822364830219557640509728329057209670817367840159645919431125630059308470723918431888115060272350120059118162885394677105076212244957480121043423292125319766219323284021885120900079359760342756851785664714797180505003649335276401318011838719014206703258154305364800693171094618511390876785437409761447698347426458606531070666181973481111685539081733538266342281714600160139112250388943400475184162355236977988846392127671923914926364277388950825496067754183942119149868029876990351622503422840769808081102831344684996468165543159090179230846948655962909410923938140614848646541805536919225036583379906649285049327269392165360935335952212213443493146581611811801487164709123353210034683227437761028556536195710630739081948249268218499495800019928464810796335766283472365612844034112496100462855527385682447603260947643035168181983317789538995206135831891618997526986740061690613917912735447378289911507302960436026296456331426826392889394278845813092941665805133290632317234709558127615175634184673911253283112052125933770439058443104902474618530888242661475520282593836405900109031107320921534665921708948347786340199300640585455210342836041539531924327439912726089682506426808485727682995824874284044553883626075168951420419495371539106687401585441115494043106042087222885969063893406460612329284561234421324894163291533492677332550907058292066540127773702346321158977240696896133353425302183922995776025377783208590271802256910544104643711755807992213081525592833323093640707026529535578480985895956524871174518384754001500307955065499963778722351463198771407918517774555803322547954551237567127546389408262207701181870567276805629372514234410806586117716040389815559941131989006678693431078884055740589817888815914108855198311279157924331691141073489744933091814924453819164385817990957370768208324469254659175396448815708507029956592110691437307749117026880852186144666610556679180292564061950397615068377822625237802431539367208229934233417841349402743883852754542138977871421731672332261592868156644696264116597634938152409826023592144356491597959050959941480204020155978999311412641294594194923055317616045375828238858077281994165786297696400154881484478340222119623191083032799529587331213760573011592375488227100003197073850370629000708115110733738698793857105478029105440050274093654161551399611014393670378767505673512767339013364178091017411396779194361643610547137795644043805618832407251771651104172077723742710121356077531646476446017368448575020472382487066165927065992563494003053372669001325393708397001260682950002656648702745242939134356569149462643087319908454062895738969504372706484347503027984097120120841522557303540757752211010135012171205513828899196998021407819301024895368282762082452082060058037768866083171859061844784113562880662070567752729040970937507977883843841879631060320052697498396203002879680997602876598195460389875648720343864137124714811466831060757769216520166179485310821888223125534991334919431203013967303109994018501361242425406550606832577569569524261589799531576929465480824973802080642968253611489289584190532821294777483349532926469895131256852816396453175371307274477105015013575786543091467580177407334566864232419538251689832994873234479967339541165936678390835381726806363613028333168027758421279711305609808820283190925916378533464406185648157825409164143688672646264292044175595246340782155500064757749370207337129605286620578539349273720556147046314889300003323178767516442788522795165022016162326326948832595859929949227275322501877706769409983479023060569535793918473143211393642414095866454470218271066450246793618926544534307274073464763778469938646606197108422987294344397006060745433521576546884311228905785038605059411417110508341557321070719452737488555036778328367122190976703339579359132475972808133842072851226157192410810636284799676106498553982604071829677358459147981161842578175513450980897606659902022515899461273683991040054636547003656603036355963926225641585038283369505389756154050189537600168028390108201639468723209620918055801370490525944271588525629879693781808924567873045842385916462701432070657893743151183745428418529778859675388011689862327002223080304964646299694420961666857665004713592635414338324327046562488974085120135776198792823460074650430502746618914282375589731358826649599722948060692757027181377183817280229925699188077418581931111589031553893237673067212985180377740097010218015175919164358483502294655900204720887857058679992610039242964132534870739461444771542219204328064361103428388546478121596963729314129053404685464207674809799303322937989681874705263132696905820679842935004849828744545138454173340449448804734354226669747830069734856008447688565750933536066376457699731274880635601290697845087864165982257546693962875439582142976816332102239048396392455162457347659292892034352656493335763975818246832119195121497133769817733393380930711692905109988969420634762081403260582703211317718304688236368278559825616026928232510402440730580652190099074584297239065845675924948092331785236273795858647076624942175790261984031868658365840792951244281098383089546644341053824362584347536087108201282263349759130418438570198191733369628665928171695784276736741819824134732586667764327359659981256734788065434824649862284215912175602183856025465782346994523471280075671127724651819840990938292241445526855386472796577807264043951387557487052828474113661734275279095171788523521880727261181739871472274227857802867666632711637876056745893736132731893555992303637677008723886818681691634336513062437297700543622060107226093610853933758017467896707600749142880847200611354109062934233103841625906448432948889864683428433013668397978820241742807625250107570646740468295422300372438638306188080457432995394288983331791298768620309161710830398875263394365564402927669028108468040603189704851362178485077455331265837977749160662733048762381346526185556459643564823440442688295599356998608084878450282346612656044729535032347674900301182187114917093073580930429073799925104973227277175541895175649944281936303581997479655409201448442264566609417254523336073785184782171707210065957269718061129604076967484607543857614734015215236448633888838643926769477407191668887077926372378375485908325868558498554483894959002652191704929963513390486196550818148478434144849153742385267632794347719168276719302274326438219864714374816903411564787899978902746081260925107782282027817643302492304914734223064790932739705234006387115420624760327946412215090450771406090326950249942594197752424089646260733059991663077502185188143524469260575987609890687549545087529684254654123316837482500901578675978769162711172887569685923732107116337366641680399081369639087308892373788868049428397450070044797835015210422900290250987642229846739667494607004015062934770169490399580547427178049552176448215310707714397776452275022425738608025138225418321974207222712305600820822320056686046686475041194179363889529286743183284252317859119109449505093384251573424629668813465144709513843384811640310400062020496664925869365431540822607131312602955335581754634556910808085754906089392483178558189673717799879845746634331175590814454071213013422035529252510252586783166069987955647856243614084978064700654026387886289183683856653095347021075152032518953693620971069114242688310094989772070086879810450414504697416566511868318239994466981362748447639501641839135985647812450630017346846853711255011174810658453124685027980204597686971340155320698071595425273728405865566720459590612992285851530553417778267046519615718213462667689975294954740572409068434013125050910880868674159968367482103715971273893087663013456211905640512464655411419115582511371732718199732881540978481904824278994737271316270848668099306699765948156154415327724822688149479970263715378843441355551340997151772595317904909357418754994093476512082355620202319967053215033222149032356019628929996900761719809435667440612228469434565340653287334389279850913603727913795748660774850221985624164472008390825217140549146561826688753766675203267749461100437679002799654257209466313859590953085958127286235032259561354935185883624616186791964977962872149877969640491638742433596121727156082594682008432766596222488203082394630387638756882903123881303641172097134326384202957024535945343216265642050261602961834357746701334277805625765961609709010061880212849043882921151872907956765970573945564581733516009822958365902858205063884892819766313892036713751409032537367159121422750785638037740973490698865805247203859527040385635974790551992439160323341449523432665636108407397752306490994308536618709426551486655490947415459660296281269317804071705223498086977653322743173796249057704856714395968460305104338862297643676950790237569948094259419395368456453545061834025754348312455447881106391772523392640072331913787489087355643725042713132357214471882830929153876537562797953844122164245546231446613283371739644866275471492823449926236741508990955366621727170433692545063342278604822948310082314536404590312159840350469992317061468330647780846195990174526829423632034785970883442259029606091107773263132416655195773224337908702009300574359067679257361565467707036441932599896098163270080894003790431163605688963540990471935568664062653270889317479712006880257889959688810828676543004101816957943444503973703258782847382559960210894071570670315946427105344430115862762144434148890311347538787624927160589375696739607381499731664498474351671908783798132647483252701827802033182109649525453219799638442425964966615690704544137465059375500695497241585281865048713630089608284067885697215212154560085651034160521863834701447110660561646691282625557813555839245750087767620253890138073938529013053877956379538899712638927116704194179502904496621991761766391422225940178392135454976887224671704050742568394260714004444345058851855911354364222820578928960222941095554420298052010100980796994031876378703416127987780943271491371778705100746835861615074700775748959569767786789640135751400432137546049270915399439587283473024953234128391273257450237700155214447548285716471166063429280524795385757394337265500554084900426407873109972636529505300889144277628623876112672427167431382041824691008436165418366059429845397638540793788325042967067640493688268006310554307699656470670844147416538982329164187285564111351759256263387972314608809232994465058540674743281337110091917330171813794719657660894289080572021381000719072101697963085492932202396754214299051415504096333087787739680116610154152588252245162633329890570224141355178635809220063496676034931253543083693419693539404311361148482120093331636663542871927913574669336970771271149022579642617427339240282473913125570061245033048582219033821871243218095338722771017492176459098489920935897045154685467006994409203758772515668147151999138055477118327052336385258733455620898874642246178497210210625399171847843982557079205287414842321614142932580112078392666209368194147417503273181120895841787545868603310638290111381525106613673091847594313184291142756381625372051504609220513081990469713760141901061232696875003330566789665858691751743332649528650612443210513442970929666149134389431947113528056060977155518784814617641285602850825107736498265969255606646704550826411872588631607034998772982957809168271523388175526281067306556583022167676011805899859206314352982987956531645625131739447177326758111165355157820485829871691535159608598675206912188528206601684660874987409552450389223712770689738408440146790537794472762295507365954680019452237045146328402687704566961315206488934820414443102634274025259988883507158910173667491749941075695626184612050936107805991915512861235956746542054811591378222105077849136954095003995778120503774036329885438362942692602404915401612541606982598828982866152122740886472360082845635821194564508679862090993259264323599430719821813209392631028444502667654746365208665051600547194173517298652773127173965502906232203055829985662352250422370902797567598090524565683509395458594601284776574972666826409435092472629337940964632503671314334143994214984768853123200670069624763258767262630213500289913769812982867156271333646018252655072643112420144885160193554331513205981241437463823236304932751928014392808639130824356035754830513583287195400492202222314942513958742493167413786504449984536914143065421275715686847229682327099468922701845380113422103109574440332843901639091650298367972967016674084767532966247801344102786954798616655319214565619628354921750605599762273160873587667074982111087265043289470855385865929597772571062301239964946992708596815764381517352003756615343455443888272216527341386877162082153201898191590118387001396830050083159337905112163660921531865906074373370509311594202391533770644064538168667803153021807779407042527062213743196334958213198640098506234887224903698925367957282573067663998077658060329094609973528129278424981475148461594476942798860086999575688261376357470414084326936225390130234755476776004444997060651806294416127808066033956803578359039526623439780828408946580747075925755405521353582657865805585790747503731560973361779635246946169609741734287518543608236586811847666659499793122931802193668209582505597917996378176727642078323289281194764587071432894441332184728849621079378356844168750282525503912700866244981984231283220957887038054505288372577205614007714470760487723741383323943864259479154490962579741986883987934751016529116210014931845814907772693126997795207864507895187748490505459023400565762018143105361471119858963684965555984119848486622605928106750361745331281309129717171809578933843095047406063864783723572112353439007566512985477735436706607724043797136853633805590858870863383778723969818149504851692377106550401927342143628096617800347987597482300225597451619510386086058982116162908725985225819082723284781770485300260376711105963997998454059092500875574435222199931324930908406264890819324019550109614423522071891165800547778267597504884367645494950742235005431095116022137139234660799850702122867869005261792643989496036484560910919793778955988617915620864937776184404134989371377651127100045804917388167173586270426181152315118681808263113884100431279715024759479456880238234266221939719945120347034080017636612579802077015978714281937857025535983296086895707644928583642287316259500627089410059978756017299570903816001669283702046200844256370642016563449323564484001957100598037317159160640218957948041193391188577955442134249483279868136226555927307043616637875967551991554654201249705800389424161305194755172461743878548982225440496692061166673644507809120718601163057241112781090021926322512256364251369825837963637327417214527051778691893375156913741980769691893940221952643062054695367818970433427583102601099994775208385686791330749693214311026697401593426383996043174387655182713619272568480603914643800052925354442438940786598566720307286623120669554503138221463895629721103900862969485533822743762579278711987595574422612193296681783591090727193464134861831112569230840278365076531546401859527788561429850338100780746427410817349034549301983068506720162938074870242468983679449212039082267183002167416795536420118671159643878381139515402956819718961518580409221853836317579246432252510732009920446583678207180428154205804077615043746643256970005849909395834997009512357953266759994136192333361328237776220120489317474487783926961905161291351508507137651126204977929953707885970350456380249543232538504886873985433419721508092365251445535113362021669139386225494626585760829985853114226719617718663789086678387327396071545929855993064538072567781836274513260134098348016730615989525345498940640105353594234071460234202948117700627036067444112009494873041492757128055438528335064660063743431013902500540741098983556447332666147589574653509590967179202521135353669006244037386085786255414530720292519727688122200199185490385379673351847873239322695177064004903243267219175560230189193776763946321172943856000909931485372628124089660413677970102417419036226441265667031604022600244141825671811009023971703872527569561947100962907206970626448866720558204993602868634084246401137174490711177356388935885425172093957317285852348383701237663564669764942199262098805989277281701370345684340435588271995144996415206536089752506390541834110382155529620620229436228329284760327246581329105925136151200876158585580345850231388662428096975933597663641684560832298991511449737404249921661538727597407150694250388331925896345225485996409616490263818516056579542017459805569114630282885266097120849874816807511108468967939874362958599902852685669937211844524477863317746773880762376377965548418107705698501831753050259513495263050468902257636903570984468321202191692024165031550296756288402898685360794077214556256540038166959208849798107235627597264902250616918289436000432998959529248417285802765989126183341458587689448408269001384629716902146248731938389215248300439059623307313965502498195661732751135424479684813512850383080161728837501491911993830647455377176826203207227964703537563023063624273738642361283138985892457380388553544730854769558960697985048672912707964988767480720821673960555667289085159222507418166644859981339505156541684544548557431392837272190739441474663690092396756341428264753077669990364812477414566210191717756970300671060157136409465230160639729346436852100367430502063828144397480862985237423008936215574124981357270948344259976945626139032712261552506463396220413484218168682542159708301088325880754660767550831694168080551663617508656026529805500064070159557414247799214367449639823999604913737016154425270786628588281515873165749119903064110408877829041839004674418549179335365828066569791980808920186635350760340818261063046318879646903989329844403296044893185331677133051709370597184620574093360729140575444069219991620334577518747121703686444361261957262142320115599991711905932585577845699325432592034737216826510707214662878070639279137970994877826361342144370668071186056429511682773626277917830077046031624826877869690745859639632170339642623227839473328188326621139178507202056907753489040460158881994304049111854109738713332874947245556912016635063497734936420315028886031093884940313945893071124737356173113068417385762962227486547443107383988610320101162626807194813585751937491341473157315196655473148874407035787522376170503508134062257763493025197170480820107935577872165142298483050132647781264194953238698110217300523222037665490142820759006187778086234224242701109843765379830685297278216316036736801538079276975434974236998694338041291249966508942081172635164017108618556810258581568331589354000757082188284850314318177353321310565323862690420985543406867970611867025974183115161977186716451068655486672553974095024943685917748817999462468230729846318027347781900464560212548925183053884115840211687721692352259635520951127895114967798705366405932004640100572742288855562127183564899226826354075792091711410689891458852565539219342887012416632758363230118170114399904551363711910647907194573134601510460472160176755247256000599388178675281285540324068891078226677034351201774569491325486160653400500225305048037004708715568881268371499315983562190645385624960981373152602877475008484432876996402763240495945995136632831939948877232294885607878555793750035999655387614569653551855367963372549963021143749526077599394896575620320091551372519413210849723949697119995863405785168073972352313629566724580962541282462938357088878897269866583785951870899087254853443600763851054320520487614481815974724519534273914036700348053374972883756240183431976271893151124702458417064343038022781983214049171584055500192696603892378016779018292442442814605498950109344437595274858334117680897575909473346531492082683666399089424510674067630453294982301079068238250960290638160456537500759937916417075880386218960493033215996397703999962614225001134320850093828270899209176188698715123396799048795375722611508093946415998669270881244493551491367789893291282560932790698464999738328260556661516473125802728182882414971991085370002078575454524180355706576871821415843473545223075109541879370585651349234061381234044740290647751639930173041697396431592379037878739504380850852804392391210055410445428733125672949801838993240534618222288889758884123727902962554701592377314307922315636784525374265186941326269123985838948188036358233201481178519198389192390341939021952394570459838519656054046384052483039136978752464942487609662459434297750166173215971449573001824205534679563626780801038841866036979760844056557642456194773745690133527198606417820572452839027532595715541183099732252777348910255563690255203881701252990962610618157807061223783734195454408481291237807923337505934058418745803787855095041151384842796557821847272731159666206537139223694783693717721041995920752128409228544015070447662519421888755214942902894323778939259912184496723203273876148625971531888536007670503891685746956522731491354182094345234579279257681195083956172287090501120629542601902350266491505444878583910133389768442614304379903314237762772499203509638983409690166630486091637202333689392497537044968889946493926176519003938645775238594892762786562842344476113506580377700881348582217928914324578930501382233931739387862060927084185536203269969887576208306677044579123499692553620800560749993399537979086721609085404601025804703860308387513520070411387361581923902957807192879425796018704841320437798087726058222852848067885687378571794544372192273185340279922275637208544570017601342931374361129279956023826361815237756013279039706028532011049308721245951706691397218821853901612126503149717405905730619124716328558258182065742744100899079731711975193047925679457003797867644992397095537108098910538304331000697485989805343726929145801382499910644518690343323899547429037631979866207838378800013716093367289502122128474198339238767084656329765357562127820688490779470126345930441144404619702434531713116393016442681591125057781087626856677991116973752696675928298694142873571259430461844776399048704442810085616399860697961384698872462295098093260290872565015164333171151491500004489967402424922276693685831097704681559600324758802099385722810753270717630004555251566070018321403083182601147498120288370071469135297854552103354808889603263059728069666780684530565999793251423934665962862207241975378954611974727322595432806511578275893633440606005474176818675606459444593753400796153192927911853230495365492581877646914899496453624762248055078487440334776153555971264008037946972374837071013772851532159219413817341485185338578082403629429070924182965765615692547572874624898410470757956520680270875694757471416417433585644331350784642174622079383919846534138152636977266794268035946349373048528015601121045291099324044337844971423793383723402639441517864487198940500680085317277406177281254457573630262575198879979662459440181353166284266431062386436368369000869514584083002309153557041405625831304238579064391638537481094984342398604113347984476418768222597422849913173373755082402094797374882957947620273810907132744375835747715681952549100789291581306307604873611932279047584228172748405238420140520160067470071128513177142182512937754190008929030129035019969113733574278609729203248385246557812770102935178681210345156089588751390257648931631129263568876242401642885594753803795064223859084328148602901701816651088790224246036251088128298820160494148291521871698751752466061239123084738554007035182960260720068673205813644318658764216858922096105125462582972311795769561846847621491571281793843269825577716852311060674873645930112134848789359617547059559244545252976223917900270414265779306180462217344800855302518981801146120229187300968608706195333398144293512789327656000340891976507539493073885458007998173088931092178569784080433745015757667503643430837263371149655698425128770204538407011531062566258924450446652884901146888706093100929698398467712696750287652220745868573316030176176257289883499482960143571815414449906193479547115730166559881946104666924516589607911330494448381636056308274210927520411774246920125263494103811851813154406377560752294787799869455254362357112721526050272983207300532106718781470294216046539123775085708745355273589088750888121144592011118551673754716938265921959345672767903966189676122407462875918641952574037068925647448780337768514607964874671661707395208410498415376408943149724939373840760260223364340869714256382955561263462664305646390233430979937260683284854272427095817787048892386700662850209197355164693136453156017509324865669350929245308124143053223205850400676025892432715077490431362407592479280625725776891052848611634552731977849815740320369822653027418958333262401433872955642798264403722051839636660596701343673163051895602534795994654885093556840245461410858057128063172826143917602198242253097344169458894573651465493100367585900648735521732088284371206602613244356744923169290100790336552581899743910086318040408551811195032629203860893301228673179929957878400156112037541994595051080885731055672520236151124574354135563303644454882348303465163377309788890688732873807928399694569202976301869251254870353228331497947968838752227300099134515897533638381545554130930880151730149998650789018910029687381262529517804276955449638077037237281825979369560680324860513938829567542653353466085905903218303017427853718068032920094850429560306582655202419147661032975269423807920108779779906339673686374155188419670101328202821485497815224930161640943049118467675663681882347566170501891506344767545729839015110320570500980420919534459943109690624827785441155413990869886638994716272587674608664521945224206510608963446504361335870957630922055361298784119009563124943841508509460570704123508804235940552351114803990411863351457625504743050251205220576951943291971486058393527073821017389558601756363607849788260583521797812648370046144194759712424456924915731006233277271230638232667779063462922866756365933448452889696655121728408290652103142210596454997240027136530546511885017482937526523047261998873538556292251657797313606839688721069034328628780412689514190119251776330890134358643774871588382960815448414571283252023739769448419255748400396926338824664165726541587422865395518478978156317379903948274434484105059570253814576565315416803903283482859885757516733933223735995374076499215390350734334832420348208299187514287850857379928115825938218437229996691834685607906170157215137464507807639149725296295559644051084120738625772648449454190656305646438146726772678342540141493622886364499452406441409913968620607180558057448819478840358910735525163249423066500592120304343647667792811476361075517919625711569783000170758866949276757973120819941754590134908453746705030399821850229012332754086204566686105051560928861621053139203753659585618046598935454459988128082176235489890231164752208635677365846443263781410245499371377398100462503943548361820576711817300445772200365494745353885233683146764135615312187255634080864087042016373229355726636556467420104642710412253015466594685797018197520902106415260745080629560219413529266249714755550054299835302816924757717885585322319288543763510878764007128577927218183771896814377050907814445988995367576238905087871230629986040917298101197346611920457933923432091249531089771372855260090945136326197300364052339175563936439944654925628854626364485657948884589746600080721287087415822648543849383360931671699660233202420449220730838617953011385806882275298039216312950985081137128268152419208435841048477135993427614798419583230838972123114502026978855924304849909271262069898021706734579815550821428084436120228124745476277487710693645178657022116269655281141936612654652414387793626676177487221370013749024432715009032734207944060548731487050345039853852129302410133743100204293776237579536376609117445413200951561910280069395691797501624521522960082710561141008526946628887250551222886064125156094590387231944076414027616725552813817050637581234640929868181920575737196781711956300109626318992614036886396835259286453383718044484213742903416827340052143967950114835645269020555460200810428502404762692394162186782445775440013986337638827176533892464248167305007176380525031738156536775467724590561409557297592983052990767510862898692216197445685392795309806176320907899900770391199065490043516249118418975590194921881263767819622970937981271598501177373016062267384435022506883699119822687657205170699069263110501272865465617620774947532128095285361067204055942371969069653245734960329628467391016253782486115166825810320553691332132945310911394199213410833817325008627202400513931310270761780416156181582314422923539349945404541176294404419289204827954990221241003384488648811018961474964555126517560760687099717173777622623064943269487817672777900100500471180717602226748286162461427339581944442533350774535486740634291840950778142650171995905909863265534679639185641441392486112253105036494632611325882262539942911719440955754188523581229210962435910978239691565608272019083090506693678013121329869443910219976934862627404104444237861947518045111137484130823276085206998110802250751094979591034702438719699836313484438454541619609236393079408523517129906810871477274745126598185242707536010069517657420708568453759347487772289407485513890961510755988239915768081300137720540970466162092938346047012937938441692988799375047491391450248726162387175325992249134902878522864502365167978398553493163210914839558687466688405686513497356252638185621064815494869743069235956717619134681869271893693044001611900318216340185235586936009728604179034973047503631927389804028617678440603142664331309921047097528183505939478491799169528787818880727664503755535552251496007287070309158296212354822064106371391104443247428614209571338285561208565620047392968407033384588730551245480237645398736498855898793759937116783006175340576415592868122761263490528158172240074847018177298330503981361513652712390217228159039344438843210811714056356305410772531234001841679367673619352061854538692199149725987082969500344842068712024748892072989799026862466952801633033997277073868241021390292699368301293286720573092277256469612626955898425441789435120880838438673954661974682128978280146049303440741112273142831048273301564400317834849053282431772391273931858133708644914139095482982634217907294041500236909887674665629832207945402888381068423614257045872782700913720162747677886565644346417914853979717913329565499114433744792440743653532819944803822757449470104243706019099087274074930294783151462389219282523195222640895055831416730701350815283024167155257342815507713535059873804350705733656282624948463196217259417790000364669761315965968127804267562926748172483890065991131092584990519381991530604787993188409836979868860264170679299265817670324495702927179528913131432169476948083655356663266328108830650484450103699535617926956445187453943004761413023869362558309289198288681219829527592151460994865554290577859872112473796880938879686355914494529961093514097131877668286658412935226297530164037700808419687787812179926006632985589515984554046678283955684536606385541263543875547685962752771225118003928310972856363478118508491088489888802632192977456945087054798653399907664694535264884107229380172953932427565879877835555641629983110379636957898484246564313158818176189943742618326882559614843391796699690827054163689825373218858101980124416228146507157964188725243775828294024361013953483219166418333990556590668497627776307664564289914374258078737127941912988553669377626404527291202142570372804657304077200837923080437454111282282672924379190175743364954008737747002131744324769698736879958590534524201369547384963079576712775819950009979280379531321773673614592120119023051321381951754438352784097784460835940661973922322122988230068824508434412859029506912010025364365868844366336900243500442284386803400654728044402996161580501789613075439074648057542449900158862134589594454008097822472874812978641795336745587797405926440032867630261416344977199914034422985460337153944731179270303591403129109107413228065225358296953373770550289833502677684010469676756401691355380359599269233803952615743894165319788000090884207741792570260215451480980293200030184442434477196410457997948907215549525145730533211690809202133145027253346498463800609357441698016280781596108680716198343457931147207995258099588748611677592324370154799221269720691206479915957101894779357892249611028980499460161328697855912346412367168725426799600169839499166315621129753828487097389819323190639229580647174574886048794592778659213931432105909301876486439807762420980907512148237358955120384541148947788915657720359371830300211827040838810464315632579858116025174953748691487063466478971056991030872207767305487950992669790920821488197211874557102840519548260089277149729701256029209924303629190238281109351082016480601232708006179741742739161734796535936513616959770151021738366836907687713302116650444880139889746054702737168366371527016143578947542416911462322603052904199141961324000434446976075166720598750331543228729724720975871790838621241747089723382876246760874931612209707701354880607902240122183488543050392276750002674739553810811438938988890767384519933774470891706145057552195285575349196704151885384245000983414252772634656903245918224027554793060605128728466240240703047306504244419714228991013687416618508327422888395064280805106539068937056535991070169210043411127174116656311734659015700888380248008809708014321457022857638478657122541557039243786363555077666277486643055084132538650352593156386087096003528599855616301285721260052349857433944802711246059107105585606884227761581755618366193654593519912595931524796238343340398750860502591390803250799866797234393242782073655775693385006047409852899449101345053689948487200402300204289648210214517314024776769875016572028285308955019434320224817585460792397399263067137208642189967180057573667845703343748485672074121274028913252313538091005608337651802749826430715102148161776705377664601217366548099648425746912559058038796484428591273100836233197633635619987699266494817976630978094980894606524685000651386939906789432765808094811499859165535135104372793067406714498318018387357598623571330191748625586170224715782852558536502048617884390075441105372045002627830091864913255257660333765879870944307665772194172967491924139924739166622691996992830592202757548286125554602268039241006014253530807159310026442673913490503882760616388437648275660419040545645367601183611415458339475543018892500434151593601145583124450888951230585905913937241984775188579127764632330660400318858476641418029179180223325326017594952707928141750155659223169123798651279754948464042765637183246103717412625588853662878476958648091778760806164401638704972045472003169447179606880108476292721873815497663482211268036325016313003367400403869615824279215688478384705904633088539746245823704970586219053222299739925039114053268948188866844881465292424938100827462857539217377090837381277547873347500189286683733807008941285970826762481497090798378725299728486649616985892472988471282503910461130381687816285353866898501059660743798974331590404796055777277178808085761968717269496158604133557586868513970169550734412511451600402135780399035135980359610956450075026396293777724595280416359781662803556044999706129773063399339285667795994815575112688588110475689273976454713189652523946411976358284775485176236611630652878093823578620226583931564375562399420013385574829505749633456744203422223013563786325824349878184840288972406473456199304009185479295457573083589180676247460735092314507436256403028588000818777344851259655699126702723597419944174362249065873707184728568782752941236219297316197696863887095121352454856292715379832928877768420782267215584225411493722264042088306057813545471146153903023243494383851362615558789380131717503141044362354529418917127849286027341422770510802554637468716441555285452805855684587298790703569666700456738981420421624038963789133342219132462803135272403293634591300937616561874070932238532833275367564693999133654030355070916754881362673502847221039905060705884332558877317415479257828480718272877576554761711817756148192145048390766606788948806200162219401420831265888523901363401679829868221853920656039580851710475572173535309844652525888820568209340313997006670040169972793730119129781783506434558500138822381535543007501986991738319205629719420379487211787746351649433165404545485455837862331208240107367902382159909255861192262776836027865986070420902588039339196515599130218179409171000920190204461719343573214045715211658860922318657938851359476211641968099252429557554511007790802282717350806832011947303092101890523135964965061995734430324445382137329105582012872039187750230868818196417235610047428534068071369091825442094422567906879195677226408453187857138711833263626504595812819254046682028953977155057867183182544200596754610311400718241422244593859747157049871082991737006052992989791096858420603985867784331252323950114119298320753849995477424482336979753320160460197481471655131386503477158159362835125432331666501491613065739346752683262023997429081047991720318746590770356545072554506948472800599892273207580938610039687522886342326002835919977800274012508938509122034574408774262583412809702274017278713272544277741063472226333900977683777327082659569858189747703573381851539810079072881852219424795336920882926540922465520246662934869016503693019732934979214397103454469267651910747872527459007707098699909621703418772938116039443581999140138335987355014111703788840660293468073727045176987708686152286116382113285343995635239752831849104030848767991431440375762395967799435126926306892073311588064331652882751463583194461413797276749134975214059687290797149357732358974934106215617135050935643980836863300486828182653548310354808896702884790525121528000659456612071925447556932199086528151113503997489512953924838705454077132066516594430673584519735976328824816854528866896423209140750041192508664572580147423091623779101211770264549094370952942370539229251752997285417181414093986767094050804797644471452458745367441419595432321256000002541543734654060072587963047160308591553952846109575835103266570407688316289986037166647616047456259992584656876189062225206003365502035866651528990771002011185557070050058711398808242553175139676582722779345320577503433346344867566749172598231022780372709321856602342027619609622286511158005724263317636594764452177761503810679755773037884552667337172600579475140648605164460885732647286100081564646852771701805879957605120710111624520590319797715690665776227065451211829266368521231657908559238584087389318075071818619306147975135507683579524370939630590832114768426466131354704120102987247058883006463854807328247490351472518276269425259313772653459872155466637638826285438551931582801170453382381657013541513957435082565676338312483431844999711309497809986022903715077577097267298401306491703554813980865383763300213233083888486614394962198690732373830895897838055598186505869743111515507314255787511459399384714162255934197517573607694693926409301606308292997951575297995527087019033600778251653037200556283897857384796675479429636130439758633878764703502956600367039076193863066241733802080724573700618818546318948974731275980100703219482606805276710070221722118444537961117112825150643216339904729976831979658789931030479430614759493254930181782890673306680279704469770055980720728473831113901346304309421443142315255002257354949971555411786509885191749042706169911065007042378551413863479375861398692910134161030854869810880845917885499638407280266998067344076677974796579516942080153630341366109429053669439257115476575004362442765592673534722776568835828231386614863000315897669840104238185926581130026193264797231686850274457243408697124180381260027633527610559253871802250524433682582334349851159834443584736886050835435690362742974616785991345139546118949077252099579487374758119931239272598939627985651742978382420218201679095303416829435778102713947426557958531942268298086802722480503558666539850200880599514377431148203387355162166637189280723285535064633033469160062701595138425528124429773087671744537545938703326545801372276646823392485984195837553097337517458996293424002772686155879741304415019512693900984783149358734517317244735025789847667686453654157825733033939952866007313160721636843028616830716125162309003773988093753338680515938238730627408388098964493694812934587938163512957789152070442348599700662371509964255017561190358942186818898177493327587176111929325527163306563406266795485236912777138002506380976713634860757862845891679001064428393319483563686726879451514254794736982872406173556012823029295634429161658532378151858521903365517195448142290560040928050043852356766134320176541905003396962651253425360219970636025192567829121349967154752809629444765699491707372006423214197986119209527751054866788748132372898478041863199675253524058791338274203536935075012170478279550202456040445272545478363935613888856323691755482938103671031621333789604004549919187137538732647021536449482688683648916730585306673431395360701346791308440567815602897433601096775486386584258282128758663891692677634150336702636948499136144606420547647394669082963666517730203594275418560016296917504057583221222229540108680012320115283860083656636120594854456425641716549171523392233312971995139593148728665935825055127949380994067789875209930649532386333656342956321850659375456565936112131363148711561668535059320975620661707021294224525179857522376590580560578912367061610506522033895680192466414118901250431751864573878542124624390867890736720273663213501257154828329629525079132376733071874503701637466082631318963027149570838946355439161576139013974372120149867243985656697949502323482970735534880240062159111601789255945530402357287216521253780836730895959809473967338595745489193689299832829211521089243912528070109802353734691995931805517969360216455252530958372915031346867536380434799258915773108086351165130459450803231171172793453707747341465722795777289416504987922069247415756249536236880113681185391028384576788484580969378783793767079245240935368995848349126743626112136819189258220255483588331866340990009248711234025046564370632254337644327322669612190675687840256998206474364963625528496302942622123395858467509419558328478435289338073722356614085935203403866622909300956337948432225969654712867035348503390712409726439744129696328260874490001229239885745317426876672052873992806802993271121475064233784153076726856558277017277060753736967883128638602315675540192373772540459222917797932696270895368553333872650345667924125440458474491650161572273078086411099859239708926168370144681563781024038131455262887495686880373117428710215500475216332103673239653728052080810586912894003910141167862910427103528011421084479450348807541566545969702457094163393793528264223189795908237313848761553559223772704280262333471818076189177651342516434303554081060993286480045030463599460304456348223887091455454280783972588384432285205614515692590122644212728126547476376714190405486468612139515356356539425298510158023596852363971175370906602352359720260463012592668849197399491479836717739883834607772552632603891574698982879813265616181115350804870107175797808195720169188713436651311699350834973162845456185344961875834316775092537168253672548894778173814070222418462559095410930870078378598982143292663963832852129124683119505315083113664960388052401175102909746106727854327037058092895098914361582370823873453523947220911262775753723697830614882796177904198508697440414527023024360809898726920583867942113933477326085721951259552239420071852221406375642374208436315793337508487023815229395829510930949222760388738037966923700534201571924373808225094657703486078849401451145701032564835773932280417691554039110937183583543448293337051413112855616805381545870995369561959723193271014760815796733393287503139815224582095545073056427017527328172854110618922752582336494026137193802662511506381450594583438057419585588668322701866827093383729220845572477306829777619627023629213547815080419717498266100902361041401764759780743158734428105648064391100587714063166525929152042851749451220620376307872948564731950395396830248990101618826853731072388721094612312346422653778490511793141039700259315848519637483750762696796454410201509598319663860767170592717646170409549082002458725333600006298273047970359639831055743453159366331877324474903568963619626345548813479717085205636665117892859427189176940252906947512180425949061033396241758812348627992884289407097369669446172804823804554986270598849468036037753925109600705992473419068546929298362035282268719463758944323361575311097822575221591437936130865525115164945131487161696853507683389818596793874271654765939294638575987174337530289992418803336804774558415698033066452701464131731342472939657723309718295091873955735679595193890971301183132595448113510070548561113519030097636363116217032772902346334601148558477914379436129870612969787425123449398232962826413887417530297970790470157188508449273692898754859331033907866459757805671865555734207368500977197711666450886631185247159480853994909807441658143783560502631501464357097019324613859637227512329984357084796225159920749496143601602614453626634324552919828737870930897264400128493865354062915797576857757849096133853627535215056900797434345555331605595654189996128859009883231820566541255456385252747256931617013320580578253613768593356883503035657501894909763554422646922605221515685115942588728955849170292725244108545849604650564017069091599287422709736149097272249555979734772906103979422785294548747090789996306037769852137942222954248990501316827339590306785301214902940315827301787694631372416459601299449801453660313268570888154875624354616361467437164022318332594927673256353741866165422915136875344406747161987752711823275068861676080443316968873209699843130221555368429324180093923745551571219188312290140533832952715342626689894993149191987542853987323838440863636910425556158736591021909894187197772532520521781694476840730655535668970196525320382163870340664329024015860143802643850708564699686700377157394748880978731325484999624278501461990802781824918671077847570624373021021259935253533150729430929152684123244007718254691082316607028352540817150671638076722061772784511177019885011946844479247169004514363892563138402611573772581573486849142233483359151843948530979395149803741327308285123971144696616534152818423598857186738966168597447664794623972894665423749752223555694203258911742586425614072129285560033823051537755408360748671598629239569558758946060241022022148726184825347070189870845961817770902669315414975619314389012420128009259581868143067436588093933112656736616466310093902228122933729334597268652678532595929570080394193166091479545393341308718984002831767227521811271741562696060585078680382135303644906444424970355013988026450799446526706516332461024532836346365316418880665531165947862959825217711315650256969534004862627340835165036239344902408254888087703738927040404579637016686057330547856921171394199633081562100412150468924630751848717459044656807103083264268186210799636364799612877184083402292539382805665402488047206201350996009752209770191993988592673617697781573435584000801872819153621453318820712944480556898846490752527835579741738612703677752301081860446292852647570791229844431135833988746744935218730722717424634106582582684115117155006514927845626752307683485359215780010625913318729526220918570790408870216179212241565833555349864965612968231665539955192008188076569060149299581774100660965319377741152617103607793506636108780255595913517811408694724667684965720207473823266577616330770595465559805289053119507036079992792542979112959795107400346196918403400194280950803457933547321870262479959115107679079354463663446463885064542812281937933066226512742024387954070410921075292032082693969656996529833505930372381688975935459063625425160921787482738853411911896856130578955304511506380428205753941463213412870734341438573899072471591514953289269656499427468347366287904403290616487818235619028139407229133769522964974126901861060926665846074473648265002835415116039657383528243692773129881046925625123665329691585144792961454129433827255991105092800276949166790151077592384249090480147318274608857730275852377801657141527014053646853275428109091660695784057330722597575752211316278618265817427893836213725866620231164358482695497890016519791574254905432073292104465047325241033479241835597009663839718544088866624392970000582886185368685914168968886579305908286145314212889372241037617096164550033047182630098094695522872819067777758499230644757319906451561990967010532574528179172039982978295338138247440059346539111740027333621921468285557553614781630265025799771839672205063105548396566686416504497223821208512767432097787070941419148812091422731708743348804483500734764756634739474131348797689711897476389721378337124054379386837071211162623443673928859302222579381437598434664106933454105091231653909473097606102063415456896020768302194585148532527561540197022831923836565988125656909354254366868027548901968128740044989939146379302627821449984697156452017102792168108810359792900979305215282371473515000999546808282004649730010191592466901489989124008958677380199072993562373498165341815089388972603921914857245319812481156001873783746311816727850273743116678749548744874969884323909302398660595590561267084835808484524197517962112838917116261233271331483535166819056800844248272163083868621055005705648948783332672709440078413488659656696555587594679160970408478692294313070633200894156087199544571903243298666674435311135583214863273777181228101722582823881381490477367735340638540060811740561146565421341361097996950903680210914202615827348145355779698627593875803398803882760859702217060762098361003685876521594429297105868211494247387168983307065359988167341116133261067343486990155332389649606864338223800891551812037686577886257141804296820277980408795849099767235670369125026044971882451568498901113445147577045348675823192055766080436747301841377946679025488967704543438781997275500758549428232013802902434951344480820670359116746498227066616376389429168515015518672859753819238402124529086245988186486718463442364192922723929399620657159053061890876122409625360868437737916799829015888685952552784304483274873701706187678135949533700601714542531960636552277866754141625471263181972355648999956883450269929720783699228978845493790838949241672696701307697701740937448081359761700416236106700078153378586161467788571864972465555388238000944208236022438239075340635654437911055449850708442004561089849996181722022135802849967304843227700047622517020157762273848117667856863732747007983493118995758212472551564534499390638962860864806024525473624639607337318276684092245809036143875824216530983824367178377363238665533672795768861849543804040658367505437695626802325431880081997554314257872161929210167083631268800169939941602851329892262145582399760943533758995123955680317597094829555569338418017091146852294119900549401885512757536536303926768438956401437908132363872100378444986756436661696889227693177643328127616784513422882879061702929467670435946958318179979158745559754091223530441133891185025122605903447532403235121463288108933484529631843315647333249079500230075705201979863219507612973998315029646669004673810556091381010012156970346573040839171766265778851385289909931325671005562299340124449908298556388247215113971217057978607633047458291269800363057475472879535554667665524231660467810335382582457403797508813190886765596076417080062451306511725550882459435122778309781038872449081923239470919806780706905504496219383925092543496566546823380572210133403403793657013896755719973721162684290420860124394086539440385167650062840993458039216343988315692287328489667122598093724155406379876168971877036563277798216739151109411325476794712666353520784250900124690931818748961963340757652357375158674271861231105209720965284009767373681863070887198202240295366924681296993570782893724606464308955423397754228904231751295226981044464313282376266268573823850610339013424248235427419688172559943366918957502532047796041912078230787404847925900271673832134616958266224514123209238938898321652961972574119985258456912069400016663932765977053734323569524980747670444062128714253098529667103781103936219639008697562139259934697734935841146450617685019815559294142617835815178500268727050921226510658432734448075849243650855695508142088413944892133983365846228561790078373578980093613369375833596016128243788574818231562867961547170435614185828396187764619434042566325861824041001735295335618419865606222457403991193484128922210720192603471221279443381268751283027823139400873278179493621999505682310487279050038704356817799957052927290796888038935093529620769786272200262128847391995102918038319180837744948173965000035056262541307067081564098818285326484376917043927774420446315045700945524297860855982256582323433831737667232262858984858955872555402974979463395784455748943862182707547628023823138096190623918577260778098392185572793616248686397052110101558017791445101700874210909169706187426347778190818521483200162974472097894456772683081233267856765168796857764303195594513511007586401075814651844533599116576620635083784323640175360408406353797307856119588953534744666879691178561734106535848620585381324559407033079038462192946033177214302033008132782562989410984848289637453089385156154516381470917443589128914094184526301588362917008957555753768350526566179911307123304907807970852153685892969111426133123214663858135240355203186416396931444595434897788434627668936478182985270584363372972684948060445148525398171888107286739949315866606255990356095058832975629166324033666589173839684888283507966732377714219952003492611782367987998624303507069876279225553735154182463184206276753044245885973465040394552582832438777546802892634641651321108801970953864260063258517617184030310836499866262793959597704235528063222942739788337840406967557577327244080103735091082041145782475213910021427657044100110608808627884775615101589939120455436613739891225072346349176611979504627231638883236055312649638748068312696273358945054118420553482157886401280954867053989537623412395881456478096613390999537844809580001739715953427430816715993936224527606700819337376392311120719825716398395241020841693143468856586406411907705835278499530564722281002921959325328443158956742592766766979539775306948087006527554892103432787687101218800218913170305583078069051761387953185813885191249629330895006458400312794515933804856758124760651369987094373366814657875889641427091380227725552783308817968630293165731369991498844165784806162567575105526136839034970947755108686421275119609784321020878272983783194741473346397302287658938177969193001956537343368082606331307591903218257344968307902209737074035975855584840333716368272183141935764082093315372816343917662204179290357474105014081552441456413692738847361084429331880200623403738960249098211851234512082499273979254281878117623451058848931040888401448576097873594201315488589220508886007473793942583931992074962293316741827095556201269840626265231639877867466396839568508261724313467463113417292965080050320209279424811998194062535354705403934103996883460082658493465793549148047801507819991719617635374172282180641454680435383427058326509526419745406742412886132962672005716193991179662468043538528452300828743107911516739037784045047486487511511044249070048035486942064938572847046900305187174354807748799452598262674990650737462654001154882064321770452093935491349031613545780368226690927634252620142212765324230310045958248803684806278148097938477365834302562805853617000113918431436078948502362965508718462696370652605144538514894372191751921935094730173939345730718105903269914247698673915351005613754530028167626246275471260449448623532034401018311679148775060740312296083302843388081434663746382260247062304176254686518355121656876782696518197105289629710581470896515564498340257332280770797186500439068396814857022377576228940317758397248532973289542398383581753149484042912253709532043871561562674615224427404811581990438421118036679118390536058390168550958477790099043520751332250133868863056531493555499959016058996247750779020383747840437045262191631421488913307337985263838540774880689688002899175064986172447597547235644691607065562629595496495656762238212479510149686466862384680222039610412722687750351916467952426460554318901337963626549480064804482646887136929670617401415536441480771016690254131237576695161402145318102793270433309313704773640606098842252894466719505001580489286062253486959642967182568936538178877187960116804188075978975107659908320752767351145747884066276798373776296680677882165339445897200547940436902354234657782305216818826889904517703580729854249156118218848280405411040949375420087964630197500778571345350014868406958809338722869376204879712892028293050539008548382182351518727204040667249696109885796182844213428370308540730977255007032350218094207111341214544337449157747848330754559061961228236929899457924001623416465510958090429995789529714606350986129385393952943967672522018288791516874132249890051314865567441480593183333823374685797925583261643172413681497055792328795997914613418486921249005206198012205456526810481808868789701636700913941933897320070632009062957307854322963611581924054035944087516533096289339963777433398161571835197269097463763246382847586971332659453403562581451402440739408607194880507986551591351922037474028788969778633079784485387197455940059281494465171947441394972263812459804922182092668312178556908344412807632815487593628092674075515340106871258057892522230803977371602020919224967059854984300383524306454939150366419641581660484229409963358569719618419772934194326847333564590138956730671099355713479357139101200162809821532995978464234922103501587106782530005601709652977786705777846243577186497540923714660857167214233218453312923958054542828267293285955447570370542768786203634555147515071775897572552693716013122511804096496590198317043649033147626489350290273343879783266527155760854796040358463179827242816768806774693838238767312448210693385053291526351553446429711211425226453386886165467080662688097073988773360102409794626874852192034397569480225426486785138078683724834409412589757770646338961012992019606190906893265069383804315133349160769952889605623445606241898661413116548969496981448504154365512702778176835421000157786526975709988665402196930654435727104244840241794146545871151901933477633285116951488710486039099402586021334509934017795026085328071856862796283703580249461242181438178590231145579904128869772068939884927946194777441772903311407855637420355665659209863935408321071212077961406384977033866827544275015175696850213428387657833019624391515496149868111012826803025239529243453989092944473143562171488210492185748858327812820187020432415089982348112226700741200005603432936678549525393652911709397378289823584674763234364056715499529766139616202587650892173211391944058300817273747833128940991449841335024112498894270147871584833757130424939117055100991527508942954355969330183254071574932607656215044995518658545219391014590565052413150900010682101255395841070519000939883797606866345632486473341157522220060456032293593463171065445749200255695564795692409141259964971552922592134758664080905438161034222706928632391053021747212312335133759729848188070573103764071241677262857878265939591544659421463047659360885261377133371956242502479597453725507023164656033590695041297544205225076954971856015393713261095047402000557021455004677910741481241696578686413927040919359824924669923913947202903865167259195604860913780319940574551162776487842497185867145146210016425619128026391719872175764959846144616761226674257825860974616642685495484309900796170869669784995221735684662506329316707146007085181084212013222704645895700576691331936747657093617808625166501504361347097870924817658941704934104349676362099336302277739322963626748697984773871834109298011234455325868792153683078847556793587642772894185338277738190533000339544449312605713547001845667828739800764081271845038278986688732609161848442412963631294967876622163421020610375014343824431611745127832752844135795217364291339551601368040774497023663551902433242193789434694361641375212667410112802640512970854085059577581007795383993054679856403760494250938962480380372704516934672267047889742825039179439404654586985207852916668636216520149992116081762574749967842776380822146874898026358960790308779186046446772561327046619958033622065915177446795605254650587043717136061627676632392872295889445652352481558220845155125092215385871145714224254736922789357411815232613536319829365117285878181155251079394080139585929644134486412602917361695662765737499690973486512932984202952552606069694331314314833905336376119359764784360033542363746346767640505584995622942196544897057795994723756389359978594229800987948526242194604358047283822341092983844542721322517709304920678695043090706914313649632672285742550737493178559139263902375469269780893850485041222873135342598680793006762478319757677617348426059756940893638750077130505343977020728242136314505246673194974454058484997636314214385563470190016131924513654402689243565051264954491927327510769767617862488307874244737377356063975928763419055291412642788172962373960506884284748590759409941150383402695669025122107614380581264758814624021012093194966440496508344131730745866597314767123521062526838033443937768377460534596267228841460659989576637026716435669155366595613834177179078602614060645704002020973948310138009900498375199206623888657494886279303974812754134143432634117227994233210570748316362320605361373121811268670205161584048291233778738823411324282549504157939754122292188083118589272270957476984136614481853262183179121570630534680452507959068268484871912154303342720386439757200489811351561811904651707022893629115220166811501774688596278868916003111645777759701355885772362642379482243740153700598019946289736090872531273775142826983846748893541670793666287781672230471736590611817040992345201482274897616461279996831287625996032385842409803945020779322556644809544836611493722829438893202319712771640802712033018030695104054299753196442825795687819239818658249096162381778435247359300181761551118865236397891846958687667079014179772718614526751102767809345634957027095380057304333042258478057781133958167481850671977926360759252594172809017349081157898719627328202674841901792345943704832329835575612175032581479555462296286588759557964369834719603296580375542668095980372552668885114184639849921557734740612595428778718935273719142632750270836148856765865653199995688734267348439530318336222525396692787005606770417539828557604166929198495304116223812357869253977879852914447630771520101482982071288478014511712184362487955847505450429809381408473413559473811288906874429758731380675367765013473598182485141809084131633725732141594501070263354362379195214051547508816232592369727697183624466836879022483841440019787917932070852470389496760818710503241743751534756500414609086625318347524020064463850854007830601560363533059515891604367584284198287101978598215413742223015153902877456361343505128649710819361804385699814143317532564119842985124546775383112676003868431843000464417031010237416305314594524725359563772777519642667652236166572896477861011544805906094776246732879983209258254871193161355157833996615552841494038424555336726916987385520203215332373812940954987315993099614896680213167543969081770565373001825323243009712827083827040398648947127394202324956108915491805559558463971108704510778464732557441966832755287164439664237307070861532660217127046768039758435835781281924063088941012425874388360260823083337275803325821024781755427631106128746001300622755768765859255236243683945047137284391099785551379016931318243961418969586756110432282986505573958870932237588447667524719185606848228492948840059465482128681599909475995927217475914572212644489516027753227526673418348153574727779219626881258656839266656260777496217820382637720979091283796334371823922770085758560396913928143176468487333585552426299136460600017881106879289717465016616313440275323283076538018688608655486357268202149163861691034138779335115786662385039041492592374805006282141374227697957089248074457515490413981610375263923395337192698777633453194176691109306219639012404537617924480830409808887613380166452523367611869559949055711717610595132632548468129473072286993309562878320579888285386971669201851791019406407577640152137497008809885814721757652808375521493513312969717140625583074768384413597685077359335790567994737920586679514486141423826604830679898180434200155375477324839437724996864863575474787289647527657803139244269298209695332349941531200466252042048458257417778940850868395697222833547708044276379729372908986912483793984435571248378190674496304292161794735051087559023174794334845971113145663615860192866411211521783387104782892490833103516583227158944785599696543437868119855644223226230183579669543669977724578182786628186921989406640903323048980163269498515536737456628093925459687392133007317185837067408776302110224642531672719507199504889650521562358648722463591787054670731560024973726246136997708563744927392734844168134044468332081125745560489188445269518617417906401251188801927612454863620303668672612951987367590530938973841450083889124356139082061832524356047361137339528673766975517309724150136927108425066880952499237316218588446824124911624141820164064300476526412762623318102252379916178797461567370368334369295587434309629972262863130294889910475388882099773478820425771765214282841056513224956367491045465714754338705582019490559503603632688409799760886547452480843994769584125471824139170244400059026864368317531436106839946761541188136590499611665096334128578595370587470939789272040150083695615322081624972346428271264511289988278584995644022432599284741094607917287581051634423382388315596535049700618783180205931512211280441011033502657085219601477807379262724570095204778691688745358377077225152846477036273961860593254744442949794404667787987944281710506662755859079394461201127350638794710486707626879155070774443153028841429841262015561302901376923449618861441827196923385584346020478244224359071453080837389666259218099741100260751336695163875974048209818131744140764473597213492777731133668777213179216270593142449642495596197513561763204041518458200887137223571040149421293902242154213186651256254303175300469360137520147744707529002605285660617515291635972052055058411853883316561137373927419649065135797626725603227430494881200946818482806790628077461710805865004641271391261294773041898123642058407299526146043061372702713923798064363191466293395369224610775890471043722483731634092850945958942685821257147343074535289136560665549586892289854774382658770841100526605071778413258991620882439541416338862989561796467986565686179489035001735436540581182168163049711701998112876992985020635583431666671466052477570191394618277679199495103019070278863864309461250859905829196725498107394479653434678518411914166696355355588482187044875801121141078801362253915403847866673202385556336544979906392050944044633693946420062749812265514175584977264426628623784321479907850779630290125067733605758093524190276052468178407804650554732901018654802734349698896169416419745233280961975245303356344681032473196225307756406387199096973113746968795355564610052435013319347364953109216791519950252564867800047238829575761435148915868108878218292464410981418904170124898959163273476865481223992483337825947956577380890091450048809611049899589144560436885233831090914000044321792708388444841649074922104050666073584449966903722754561324549787687261922584165044177000982988613299101540422016515469388149720396661789165049682808134704369087803723072873575998417491966688196260756724574857614233466123583118823767199473803399599054947549209567853251809399590324552477039622337872004394065628756216243059975726658210930051261678689391168833658291577317693299307022691268301692689973922860081346384268424745400723209097068789991309807531305185093104673718656830285278157050646968025918606714031915729791466400164666416622029183653614377731163038919614550747032745770303143798028300673365679193625295979936580787550877860723463275345317954667985517288911814108507849949454167631782073264755892187138215248479017452415350622620554205252323540978832980207506899139445822341854963184146641268629167262583104272825642180998743675137136722279344480649583752573576968537301904549566840587195843703573556550687214821435410864590061865965586405470427892486612906391020232613783091061822188020774283272149172185304578340377038615831466000067986330063274396099378377628029811258764919100187519004458156253094397565804297429040798690838489625744184790788286914443511379233108631768760248808982273945449128896489534138425192688877405387855936836294892418611222356070079625160733952882174565869309491317198195486879028773114387507907226182249154702896346128479823611444299509101796543546400081808249475794486296603812375550307085583379605223596039626512454231602473634726508362600197090673624658900717425426291683057608403122273991515064847920123454890409752340485926175385826608847396985343613533317837912655426485137650823274956521006739712200103330570987624287241018770741436529151994958555108861799470894105984752372062144877039422597481348311897309177522377347787936427255389203825010982932067006597574923888889574719079533486969906521186409779687088638930697976303614654344471661744592738636618920343993146273519261295743311164580569382121057100269016308644900093342178181320511175881489496112240109090739276014803169921718365397926556652993171413307733551052895753303684623688165162851131287687761683030158120065526158722801081114892490107465448392219557474689031519758438178865547496012443053174755312485892105927581538844303444667760681045094365986967952373414462051480455135290135623382288159065414126488517561403354903075858555504130572448699198625472774661417074207854714882629489217333760851738921077275939128576087783545406969233960663237543269548219742111119881047005330921378057897935172062295962383134742707581809804263352198730729845918166717914033889541158004207774883420461683839845859835079509740805618794942409443518102883746775621635960091605242549849480532579694022120028586979512425868721242025118247831031560772822368821773118879039954777503976332950512068141658564260313918581714984105043759793786097378181039555282700909340729031554875580517599234153333125622618279443293518371633969109447792603730870729090014873722839030276941729381530184947062800148652306755010498320330759558579523987446821105324537037138084030626536735714959621677900421957661517509769823638271947801829693131343426294431996104838471760522240518209264899912008556418800355821943699465614248936289542082916288978794861250919198951847653775064135326312651692561083467011371099462179100277949642486541700770827923846633990013886235006579642664979316334964140530381141808254016823055669732054226028779079850779523251559290699835841734914584499805096994406418036764069600785304630488167385069473033032153920730365712892915047720122746826015375841428719747021698370362974039527536202095228970013061849333814993126547884168779216977710979391302670206551636150664888090178217805208053780549526361215834891170814537729884468933002534387683515053742410152391861692551258545247829714681676793544613202827808498813561694117726086661990604549873145428208709194354342718394158944028941596653119497565347884454788385266131179998455882922093072204337525338511634891302413805369539146616422140528589610417299153957955286536516356558305359326950674580042982872217870167400356446081009455028881056371592711830425532944507711529825417695933641167624839484519897404113380149838130702067306069144176538379438952589209019589120634736612189012125256838402195900303271774847284758581615764330352380001942612291765686359557905301367464900947576026684879658658752026757296352402331407367244536782704127034329525191092679506760173982340088817442051879408363535635377707690711560629675912846755589707906080454781458825665396160896311818142330672970738664986568439758643835029018128002059913061117501794474382352344482540857323987529325740553595599691408397722476470084097744445947878271644627489615217259809295804854745746989281806474547803781173658393530104467973281722613762958730399370048937315239671234425592436990844939937505566476743915233749383762518327920924524773382079385833263739292599399774883300399562387756139740477924448961407857289288535022895803744569131153527492175045129246455120159222143617826924066060904181569558736954642457168335885292910153554673322134754478915460783684691055015145439999079942630547198494399921189974736672305322076465101548022780042448451007374862625307833109106732267206119697210483934203221116507225697610936543271606706071846084230330432632177420030850136754142419516488244724222315931463819674678248513621313330584878995081518642908748020588965613799082284627863906833466285235747409556270410892418094873677407912412313665445643821712990111217717329745742834374410157111748111148885090920655075161657037791926275845898678226574571311161370050737876759723799447078973357921473536963643835691063750515018963096839828052054724117101536331738686111160261322177889656972740532335907507420595306502996918994134637097115104666098031352215805483260869679630890602795136342229467633555432933895322620553295458851847044450273566873240022732201982284782196350871820184416330887418702479662435208820938025939952677449628196133570876721740302160847048309943485451078654414772621764993169135133114787077738999648631202154272327376083929984912456021746658286049891382515516198875078694150287236066574846543746466647029172859333943847684153878179297261102359386609659424691219383182945449243274417174426740148889162667736606845067246699939663021454575906212749148996251672894443856182639847578366840000262791091371844164389024482628995504192620608693877649596173450498224210231357039924943732920889183583473900976832362954657311951903910284231286609227923814688111395671458273815023487308500125410623512613035368322477972966216574458384801973395084389238051238435752235923139747976817959767444171438076105763868803397525480831732796936872816712648567253219111461418009944485441785578347893373871799316093458789309914898383510645385087770139064750733218000869262946341798824804179567882078895362786886160943080352313568033187055499702589380574817800421908905879642146272777994866068555705590512995192926598726871918250070744611397142855850497837264254741632927876435903646498689227656903623498398480155007338156433399992821230601175851490687138034230365849480014683858711939090385676281507155120220485853913317143070405166032688437925287246865993748615627181555222836795959162357111189795433291999239879781321388217896434811311014911694862246250244030059896504294399355026639142183286828757414943587214117510865387297511402546985977745806759455739881340103027948615591556102084254635091689645739178232773936459890014003057446050129151005345216644416947497658202772812670063982540789998380829388355641036697717245813459288240279403146787115939451535867382216462240552873813269022896487204445486135105587334520664022872416032138498288184206186751938479362097687652418972975208265553163523862231385052473779935120191512271845902526398567688667090795932182370534101849351187349790403547657280557332202890812366984149731787351004687404571075020415570153350248965527342349354733808552846722168469060216168403936662601951220059619674843928853611811728749722335326882179498636539609891829285908546172530116211492316309355527870270189993246207695175168353426299742691723876244893973602399118288973155082861353985074102788231877260614667656836833405588827304200763117879595084359285545150393142901700960387983021461951746826487133600556440893279776899593917408705621946904481498623791737136891444319761362186431496762802032604006879010996687490455662911534265028621073178463026371557635444444361778308764949928966488841713008008580000357598705878462552845048137845507299055315312983172314264312732184849872289589984157157458756195509391624301366873947275369832648251485471359321619913091629807935782382356852928913139707572695521882159792991016874857636358431267396645421316345667028199297187760159953504311284588458551863840152244385465619715325140191650323945956704647322881282203618465643131011160539589655311124552266328530997510302025921546888498893279036899397578209664848324531260374219992958208242377256817828806346015122535881218060664166263939289181694108886266101226639443580435499802461039671436105321624354784132821477983107992991882663202889075694415458036108322091208451230714221909639769603738898964708161542341725324168998837924392939309650363353239380788636415340432164175431357131638896302339651267768145633658589657018597393685629774179738738882476097252839729354046195966386021919577672758210655375562885847373775441631191350425872760432189273535994171854724962754449282513116684575945196396284841733099726183260341218774961502895850418154708983944850525252574197514837719607702419123767853960282058642525254010092692552586679858631234552048419114783429403296638635653981817056535589953876752264316120817612477083182255961523198520326623729010349376047821748655402047084583456350254745757835571709759449258555667307661604092934582001633930943560592906990509321536281854609606286732993135018766775074452992998088559255375717617983699286470914031951372548963842296271937708221331743838006213082212325278867997646935327835133255873040468264526450672218370932523862996169364703194888656760542620246064178402261363021425020546681761196995161917727886556032670374453998357766975795677120455521149096977238487137694152813084590906051686455949771361196526078145182541292961928332439173302802663524118569029936798884263288204724555317393620906625097894719451844818477134648422483203120278329100136665336988815386722700900557324717592899241459856408817520136031506334723614083136611680912238806841702278730582715783635665211086636765996310469737111711592291785758456560570733560876699241205799747012120966117492397470643505840239433324010999649657505247520047712131492256498155907824365558630105278536158660683300117947933239441437795735744969325000803404385521958570094795390965354865328110597679990486364250608287679840206480998045081242887984246139889913375260567798294804022442574821666127232256365688437745481838605293897360435640582902911560442503181698125271590011862723531006082224130932926381926423280636515572311369721421674775979969318165712427226466564678670442624054536758871905627807142741350585211062229741014140545165659990916017742403824378339349297860520869041825589923339807211066590561526472495471602272164282058551822672968412530848886787131476764436289758815919305275610328415506962320592456105976875078334270664869189873448321712812494379153211608375369181960151476409725211668837699853049057653348472695726350380124796533417665586218869154721209742388103630030281114338085070159599621815754662038060077821827051425821337685573944095139608823600156038193571769860767726744674350310572950983588565753757953444635269091502733143133651679021718010210973971546527262514758933145173378294242256414463367902382240898623187062098643660025067643455164663966248816919309595474112592750755205497065785125716918458837014165248615379996707748309883506245833101540987453577179635315396620333655366808862816082970678883992013164039185630363973383120602972856365749270486588640571076318129485678632637199649002929920246834705124297193928680113180258424175905750145676761357842938180042919905246041859038195708856926796068436584537473358272786842396125014924259062460743863657907296273320168840560478516459587300026503557677018473703366282034755983900077581281000507957812541617763486195737000245306254631506548558983687641372874890594618739130447512235437734315966729547093459506110726097922180505259052868584310258877043598649901192747614283339867556710375866529515731935641672594574045355161652346709394230676624018393085105296577002761224019586209577680245081640264116688466274856229813870530453814391665111293674372760828363311713941554461673353543220861090893989164749717552426942213930614228485323209026950797824937539770039105280005075959152171688208985589599581887446988403135576216827028672256082610742169609590857416276916729247433800211488988890090233713439009703459047932789032126905994475672750404566155051409891628736649874616868119066123184668702825872747264971349344532755723511850752856171789242139607635975408794516662105568222336990788517242662318848814970727046901627250787244050721139660845579064572128311278252128172688020276292708976031078238574399082694128608420481867280891478863945298396483614418139681255239664282114402147575312840308081069539700502192388261417355102919589979059552025703213411338745264215647875515788939311751433851484361584593640413047764527714581238635721928807192359715026196843514679166576876927703762635569828829477086895056028642290367013410758813323007931666513857971393234222562849873361352394700199057725261108791852177911528418081150192540414804121226952894844974060176402987278644253086615264199714418107315602616638860782852818628976601211431258094831288742549391715766444395067100606322454810775560421917012521094211254617139021544920136061703785674024126258475952750152958664663983384361587643950368224886772543802297540085571116343158533427031038964233202713342415868090351340797152118471957077287094164465132655734107018784507764287378189961451378380978937912813022546111714478342494155151321590881502320234849551439078452201875952703236258641571748046596804828797829064585675120261085318203926307434826296693806506900028883433555098055663725598661853732233235135720634249012462527097876457131784345726159508403180935532586982865182563111478840800179168412229752678416263634196340369960737101172205798428925651306507386729003704479252557067094218659860300273842393254321900988719757165520185550779643018597078915943122918127730744147639670055500263133460990421953261402297012295367284118214853219017307453021503011917126824148088540756811835405945352918533743029688664858761996337955133015123212867469772132377550129405473673179589078870061022393881266955577671813022390440494543695226200062887811123421550782703922233472722113421970739369816507740400201548102278264837466211859854658180284363215633685834973822446781193274331029227688130252902642596497927283575080117414295007418071987988103429969946223671280804156907977766908239714047095249259210840874904750033775953510007054587064440435429344565379983857248683828785434082197501228562609093415319392324397907841519283305068681662965509423446010157867535418793043243281790948503907238876188733090313071674327968839033836048412907759860152243495549624455412632254447356942967042880692661381809622421913342528755396886800138242184290563586232914234219458804872956427691220202072429198249913485692584718416344914500170251258443798952302387521129132598465183830876036417523114818634646274633253081234492313818781161849404542828810629462846125969621350178853096043536026031239321455114793846805879379435607948521868326231040127146114374656555042625020651239694954734495845233204692218485464535923761040199005070717207958054241317070585642238652985792562875386188418831105868190740308061028173336343816162590978847081757137912981419706486689775576051620313141133712316118480524609348777609935639201394103198957880129224037773864813439736951394521206737486446740704509138212210377527279146728945233827887114572432496807907256302873428111002855967337157270497941113065381180425488483340619007999367647312247496630396299999109048756993653037408920536041043355762060482909943512760215576172743097624047164428848261236116916520949643627145610141772614938027210178707871767441342610765823244736769806653715847348147776821619853121081486637312579065194287796276589687607310781307128109824586174724902744137981154081235624806601628917106046160546936229192641450022980810546052157449153573284044310719717698675301491934355182781849333077905013714937977766547426395789909064961560184910680055600251651660669920964554232438642916305761599534931439644129025299568808273425753323004106721426729824888503935115106102205758130134218339023544049154416542436191397581050768924742296565081909537998809038770726690921674762885216061478729914655006073489625030547300090479107733513326310914833211437633587456581235642445206640871752082209566762989333715968365539056301742698450072311204842578347498725006360124555930626552637971968168233261041140926512936839087248563698190899247050732388220199231606720338625862069319517128019045376394273041592790276173762340176105773013282639239669737982695100259806159576915882562595765013568016164418507043443327010555861674985721746837017633131748867847035786441742439973350032715654257369144254336284570772323110525315415420295423602267445234250211674277498067027797200347788362067926990001628988631099688258482638357481201929015797151692887129967718040099476639305793603976468052307268302115218098308830098841320155874892437997840303713466544519955708587286416782541808955979903693612798222703339333251035929794746335433582043397576197352515231157152779303333819294578779717052247832551638264379269162819350179675469017915122135704426899095434103189639397484133346363225889968256007364343569839272987629695916846349512318679562225827722328485213941857631091149397927691888201319077610881546423058057321620079047867748254149872730694129948983187102990864751584135110084184487645077601424384816259777459543661482758964062885780015548314634358657028963797773778526044964145761226115675840671301813544286995017970935099512775023346135034105166306376011882524335222162650932079395711033316609499803155567494293971785682262174630698663222506924410901763299964629603760579021295116203647576553298957116820303628031733838327784709474237451510543498908995430373979172773393834345783426021465748503301361245477964711470807902346788034201664507257318858476658541959676049231173404655016802673265745929215661072201490423950646981577816258514920035925878149114558294613393192797348839259557732201265236854043318308319933534175434079040232753850093284603503912581972204865199789639265739671040132079196673205249139503635764096293069064633212623460165238153137435096296578495305006434819329003792635904012943211469496666185447923815127821501794782569611853943553155253822157649202344077241563249334029046119271809003719708832029066218747666374997553342959813983318499052871742865272340332952730320196151050789522126709566949846526562612019352169538347886703537174684998553131010524079440774725811519799187496006187435031624248871546320426502339397627492172416124513608416352776178302789388061256061248311643948074974252439365977986209183777131358670402588664481057618920071321727098192907945921379698280649020540452274189897209587590713506026318284545453534425491603329473762815888919610835686681842749376037550904648600918907309897195461150360466745050450934579323184133973913876719035684169071623332488525562736690228759987124852969851459199329886994792803865512812642986189966824584269810431110498509473406194278016025552427682460650654792098236443155002622057854074547541852448328125289353894837986353319810305520549745918527447155344635304648810643045708667045015679285085578078912521709956844933434399752559393975386188676332565655420790353615050572902744379085339507973854763841281196128290421115842496964742201181251227445944794354882238971068490542832109555460497664231712922839287412374623836387974005204743852641790612055792968057345238255159427593800067206870638799554262022526599188914347901230044302246583948561756958927897950169865412293109868972134907543996027930066711088845174125053219368332924937278266693935736092066537315166689352504610771414728001971680965669405700203125537371423753977278667614952448847981463002341837645252761564708827304104790766892150874525319846280665448707222122675476016411860155708147242247608020943756176588111083236686693575232014636195673809558648803276331599866619191815495174214047925023784343333876956256417401497892426502307189364614155608469559869685266021459121136887182761914969006179091229115829040864167399236281204242441425858406684569213300149565921283272552505716591724791497447914645276256185074407502003073890356954882805404740560303646340803876348597452591579842288129293848842237263435463759921547096053070502785042456730478595539536914244671180760296057204399773995880097252764032264276649697836292159809338395134617402412397589817013897650182470109196483792230840348585519140084148766962968736646251166516538137214723753135731228196007424132373554395155993194538472912382125334811170499906023848417885340546804090634540741079884862627702408965686336071269017720928972809698551550663150102044923756868003297315545945695023874490206065765684104451368038513618858788269201427106006119756308174817923828151064398186370346768500518118396529477226187072329447038117557095423371176110195157372032451194603517864908630013793378713943418580142409265403032315041481262725349561794477220944810228896188529694250134479167484019935963703885967431926516932307749433285267146807478411367563518735558341124685933328246598432285104023131331625644530833116047766861861904270426782431807173508687758011609650678162439316550890960436183755564267742272395193174255999793405429913217373344406964035116986630592326979990842447974245448569415174630673320478581991559036760301627277329369430877445971517272464716180855123808556131546369427118960167227154865229729736724970968659609714686218238219225859097680305266040157463031884415515091031066101464124159602828483721058632870009704252138304404806186409358166394897299563191054514980759754511475242527211627683773241117800131934501936181608474315748425663564587764146442192745035938739114560903083529833152856219483811102970664856712974733827117614333006330402148463455768236332681500517944264661147558549351161923379537202293213128349410786152646134933657285037568599354311350142537602565684194877427868236450989388373467358738349440217183390789153796066778640861463654845581900989243350666241467089582978638886078772440328784858388669069385787941255772040503258220251552123825199418146477940227058789700356750294501220185134397519182993345512726621745060201373561355760352472612424333744805063541951818373997962522817701902920801552487998637639046654003598675376288468782698544875690504350761958334755931251553253764342070421891361456518032117014290095115198453744954656171003540541154916538424673476531471985710219391251468624095679497776625983422982908321324020548471148594959373251760465209020446858222320730179843135784734824965838045754975622373721320420463250334374550376390836465799911855367248665740099717452452157800687457422561042073595291638466811460862348461029471268077057428310110322945979611717697770850759845423064962611252940237484769846848482321757696899095485394890766659897283328301557428142896899416244428518093914340202971498484755748199766960941735083656765804299981114487087458817974736862042492503338719959261526656679602801847958973150198360671304990710382052562431121285415665799016903631336058247596808136585939355577665997201066539837628820955368744405671696259299485604563512381723108731341536473064092172873540310539472022425681508624729400170120983524761151718451431059267976556969995145554849075244624317881251512209047677557459638313223943263806053585853703065812419622085359892522471888441241304332062879490490100740569290196303498824055788028194713184439518257893798877378916253331308585650273494752364303685370426690749987408798308235850545729279565196436380853498718062951275183473164177635076176935316383980418819731418565067480477078507706579755900290253329750341293372120277433171119557794169922943854687486481785936517498715275901645506741648540753458049938471744383978217998709356316288316177435884735124886108815432636456597214885097914525483841927288181737542642603085152310509798676991487755299352270418748102063545196006913024558938729056134461079856872109995426834535457787241474988642761223455144801704227959358668087921376043623297295912152584292819058875575237297900455718722248792038931238216096823937364021073397118730775194584791245563524702226956147429445439435078293208432839244989839749133748229692881962115093263661631283124462907380394307174609545135129369865918554038382877930173511687150835339250799789889349685682464402218313976850338830865108838140719455014377976433538023346777505270062158432303922218665194486569221378420198958840995933491784028673801253868771609872591207730872782158368717805871235271863303398496659171185443589514091292112217965308204741053873166481270943002068641103519382382392889309400192459439402644405289326397239048657131323858908483453446243166758444992518613206890606882074955097550650106965185647476746302328599919846686741862308316467954643574666246793967602132343438769194041574568916173508147755632790825018327120914912738867898868669778984984477172962633178670617301436588353739826668369621930171379669448312577693944167025091432188050171205148267587681050838452586248746385784231323350861046394066560603369919582692858688794469434791294928947749232517863849576640744567607695403277413774530646143248599329105907822186485894719675805931316959035659367785817083588606311437391960454772351000207096749790136685923322559018384233890201714020096963583798493110439426473078113764816348237465669962555150502724376536738099955190750788763753578152145725806625674090279392388250041549715581198514197713571843778332449350162447268426119302837515454220313209124393814177291795518490275109575429490305536441450895751318968140872630450686466475227870293980196597232672517492932136784902164317052510531608072560871021412584218779703825367976374734422589014216454446201829986236071012168857927936440842081024443985730397207618413340265456059606595344932427660634578255222125719583421018373404015273491922252165581603560729177386878580297298330358481383054667316444884878896976485657325333896396988646256262283670963773721537577372847503715007736166803576928399226608171558018859758849869728591873281563139905630159520089406523148444556431354870609368765223420778589979144802317048234439702969064823817983450406203688872090247097968125252393597408588240458526177188558866016103701766546413030687760505125017492889084886435236672673566960692391026161598677236167612448239129935149802311639918570085476737981744670378315665340906712697002207981989383946596184117192509079755500781884786521108680170128683209420865910403538936467841831352308161550175932702793645388924182546328496451921381220938504452652909587861840504977820778646661810251705885519194550742376112891473255215390962126431564138891920459992582961083185907491596526469717615646129412158891010295792084546611496945684556440481784171062990270229863752149469221399320347712759018381875771600204829916142456669392515228422952980854096142766848118332971573264335266976371086911995381741429461792877698418781579318571118053680502769740552427365803010255599526508838652252915673088377072742264134806168483505033470378468046174388358935888296120580405675204484986233002411327531518571881730425583838393263543445736515869998891023379290165738195042467200320237513704907423450082177043880185980655228275135243260485064368980688484323056631966555323769695631830405916043818757711384802917505629977372351435615715739164280680552349105831193967885234051700077931729051372232156925725574540464560963916855688875232667742908691362476951232940018241192671579872184659139900051964531716207005745611734274690664698101751528199351280190864575955735416214256117317091849288724547087095324816674607299068241404871551701078236882390332294067701765734779619054186584168143589689933897274747346724430252265469790553918470922295545247417687295768203571280301719013716468313999023904112144879653410514213217034970423357570069612079129129953998564260201355710218656501402728205922513817807262108386714174142389279486128631643685029049752974139372016194662091029235561812115575813642807902175638907735910874565282765471356969911583566725960023170324922406321718471980595469283286971925483704019434702783380654722217153476636161111493393746198716265294494886631943962807377370280982325675431942166168545405976622138503381014870113237404979199104436854141242105464582917519280406227611441744721084932112649019434801248863946582043731225508809400359060842029417977015492965591198656995004136109943418897661126715173984972822709086096215437162538280294362633130748242010742638415990207431807666902844290417064456451501920002258337815005278004831666060161151347291665523534885566449506514937701032309042685852118420018412354399619853240746475704474665671011930439330436079509669356181074484557175977686204930122459706489073775413191353724364788813553121123579714502195841805204829965449490527895039351243505939913310409781331297664531618560492496419145710443881324157658702999454474058956179015115940268968048651682501070260061946768911299980191969814738954185116938714787541701289331343061333496480231391119039972400492435976771592123141798867693356941539394127316199027304601979773053286584662741103845337375530722465713919541323391089230146910288916893950699588669291897849120538786671769669968422102129217031906172376058635700007176779412949209082845398327118306472858120964424613615770821847884068171686508622538222809190489095207531411241587078143993744736784337966812880909386623563674623034392785289512138208528476972942783457342127003076699450742138806482501703041008628142989032744563849805345605725017910489654211131182299117521945686214634446603365242882289916610326119691883452180820477578156257153823051107355951050488578589151662050910402984982940900051486419931764110269732362008242462172806554197557202311811343756818031390388694865662152701561232291666936938605967123306342860966322253070264084959317376125364614168228637224202287642606173243837929556294002948234142849620527536719325999047310366644871701922535716453341504546836984098941996221737573714991286309909357125080090080120458864270831803005492195573934114955023810994102240069510936305332034933888645884333679846378504508925285138341997726277157036087952844639937753651535836280180227462562948629392150372211972541611428803867415295160811708619164919260913283232666017351743866767542790477884764801499917622831766508322216056432890609550608628315814487862128785744790712826354313014489293526005159371992768423623302605772234832952714862346743555063632014604060951107619179325417088819174712224033248192019531212949584063900151045089808758630827724146515586787579375085488680842412305790663576689283777260742225030340982550997979333340548930187810694765700444779492744944826612632308708185431802175063956918556520340714548444960996305835334842957054530666623984040055272495421492573713121442500562957839788174186497297945497252075862533332412812183538888763673834380911118611674536348281140975300300282462082185492639292473934815489631937620551951766595725979413414598791024142344564199890538317247709203759672042756635552280375827600571583423486692413681492350846744472195390690979283942015623797491830929714672629309566773674745651244515472950894780335790862051658306183138838748342722610789333867599604795021845258160574581811072128360325004744971998213094913218549560908270098809633438477259301455039700853994257969154097070150793185542977809165534965943979288240576598646671998429209656889412926827449331851781196679208917321115091229564396102835406246515324261789290788241560704247751002669283704641452959952490660570061547872295244106110551565639443468998589453276041481878235227683340242086322997602791906601939014874686440808236878859967914928855273248419515847627085448045458746759165911765789437557334479031773256213488705310850251440718203403740050809032466253928149864135486458820781988653083570918392590391871043021125668802766437904990079197806054043925702914973660322101772943014444573793510863468573527908925822913923252663420923490020953355797844300388832173875874604704032733049445102368347507958495587100488103111065658339128605530926985089075574177193741716626317264096248100121416954303210912616037294297606192823828458652801090282574292916016581027763184674025775150950359637055007810267724346651001139238962082695725860933169407409176103229139850012979252136589215643199491436277872073805203327198204780309247960551885229321923209252760783799759298522967136645019650937003152430256395482175474938758755648542032912996720339962350404369226239811661101718253181475444233060118683145221459127483161106049310431664670540603137831664060849020062159724035022528807380133497278363965838532703063274856562199345452481031396292612098849986174493380129589349219745003551061005358389258761476673512750362857366879573026950400542756907540115686525984521312608431790924332958430213330220164806773724895604620859006255476381684087033042111213254921360162940810251739465882389684539102948053291139760632531398382080485568939195536589438006561210824763130772146873363407871329068839069848366250053957533269897508431991548621346625084150666447870271033576162829336335627918594459400441592304474006220021315650071442848067049322097432297465661003518409848721391979230872515246886790032074299611811411851363052711502297459792813369933803024066657677595572490898264293584068748821603332815908812133567291529063184195154521712933571650623610618479044652655901238992539731644486406086447050761208062372291100105313159969206090868390359776108252563746570988180037390042048818967136778239257246200057417410781426263679124239637483427964859552696259551971353821039917248555353272841264626082246571887323340812182242962475314596221478165604003870238699336158806009599872152357884743218365385389978662726930511663393660087272735889092908228143327012671913391870868724172375168458122691223308808539930788113030509719450897051161373880787418020049291661752361554648133430642331945101324256021731888127262399033359819303314733520011491774749306001523092381535168740538020409078731228717578702444157414120321022357377235999006411290847792147528838568638949768782008662400738629338057775556765014519524716018550523582245570006487136742265669323620829397149808576506014760207558633669249043466012849698386935204627125916841721212625942292235348353740495898738567024476101635634971835600677471894934825321951358164965619593328629892037736624112331873078949038283870198673888616531912979001362507670115381390201631786469488826791974907838376008741262363482224972752489152609497311274855859083440730605850780596230812464724039326421900310491285252716332368854148579789727553637148226747900942558157869395148675104572886879744446412798641268586010813399659580313570020992526814704946237484332964212826253272019163308627254636716746547197432727716706848924754197939339324589909471426476019274981264496159763753576542284434925222570277420203893132619841091690702328622370122775350886358432516524125208400902961043778584750686411226780445210906469809444233714145472293403499728302976476311371841485813291658132245934437402851606171213667333185492551594360725781341143728511597035899695593734172206153554902815405433223083490663883977015200072509984445076618419265862072416497374607512815542614036018155752040589951901217541875200482058459403357416519404738427412493019149495943303855457090427982920957280449655328390432176136593320817338898088421556594960705948497813458042252363424556970115898352407283716813483398158557070696454087276352207875867956132397258338859176909683122594788850445047525595886313642307013814407742969622531744338113543360125512263502362496145031685197755501645379720997995953168916189849604385478402039865781164875565376166788842830304665360077738138597193341469629008530697695691333746321254370624929071756267327994812805807823721124048020675997523316108624252408019143470231223105525810133013853511721123561270392368598467739250418317303256326873785571687248371118581237019344362498630912655746934311150546441609236811779044257562278244887028122819005380067543638322930064261388413473916263117882413627667343494311216699779209822472447329309048699703531545782950736814161665568913536365621249999371624883179563565453403947588737704306624750039477169762913606814872775403308690302189434099826266310970212872344565612949391207535232371098953273400189172467107407209527186800645353635002621095144970361785205294473124461497372003821876016016374402733794025060505311506124698690655993982600143713903150970416064738870216760007524906148650219569625544734895087487257707625377839217755114785002555315928977597380396045165412077819608818079920542905682370481205100964843164104906362061355270396091862974050609287846038397063875976071636675173591948983535863008293335876209404317816028546231464620373336228781668807882813318930549521618806740037615068247123661371923749575833887015937025752034775957505788554145291422688121575673169596571304180626219346847191935493507630585777918988598305804285570425357010396784744933624749894367534100137369025443020365210470616441412233013815868823430363701363459787259883307837573306976287599598293911830311980984995159431629989592658447964680976976204571922857539759969595607969287272076171184833253303431347344822159467849062079997904991048595417946760301695775631093803074283554724484883273513907000783600733739062632545638571218016367836680841595538974445922756516699411355456083713195483635686609465516702180314890904426459820740857500969580507974088529855751354993582357090573130918171112576258507256158364313037158017804366393219489413171436406859243471980101478438738117993569825310760684400513933736267696985521911324683380584543944296177318308686507611022807703815076487574806630644161835285306474573015945811380233723507840584369045143227883064413603294035669134464698010039517875888023979077504260622410522235307990943643782217131530904075988925200478520860928050315521744148912741159534951903106674530508098562821046141933228523678338075690286525722007814476689550215574936424753515254101478922785803235683921351429865339387328801283466290592301114201795216886166960509032855897618357955573196375193679890957101393384081150257159262174573526924987977930990710813397237923212211549314026541200509952255051472373427969911437731011422021183019034394393498326560184556455160932776582225567184504172887543657327863193526078318722463576598985126756778547562897398225130985795037673398043098602406331718043312602595668699916575039026293501983731163017382890107835351014245878590681082866710641667197026021010451507827549637257294812640039289160374335623793183774622185720533446594348104257663331090589638703573609783558151033078328116849906198067263633748774036661116098932175981719233223514545546482700579599090973204177164749187600573791682818738626952837301645984688600525135266587904521485625974778626292339825344967523339657408081062585202018984364804811647012940128759031856037719530258514265258728213909218826214629527401411055587260177994493328174589536925845602892860541958631305841464087101141894749860005857885669686606607497906081799544731978840920834217642335105308669760166822265693926354492529212828688839498818705786498085730130525878768185030145284855744802021064624065350055177444644370360875671053559411922292842810761612887491278260761378445805305046024813831648923250604208333058110021293053374715145312564116969767716474419239659096303120770069948509269102906307814309202336370180689623689967770455376929712671760065893937465617239108065994200295379331257795009697486027115608237798976426535282026592376258098427348493480254887879805177677457054197447342177034996805083053602846453228003051060947887667433626052213994620218937061116206433820418378764859707254278944040300610314485652414314362603467173157249369144898882419502454068687033877172681369197312593354888994265822104409323718844273018709926370825568085851178949768044953690446448031276128811890244672127810884390148385103792153888696616595546925834611562606501262196293710060191091918248610752368095790199445308210654327080108235609839975979900195457462577852658983426204974978753315609803194660828559721802352118151884662847022650680949821425012797366084371302390707588869771659107221564289904179882047239551178868105588594067281231297274024094706562582365200444576702348362175486681475445499848885785515733627660449920316409969357713664736086924436448384623127286057487815193632784537578241663505751069165484651199233899991088706701095198751156899849552584060924338430838239045806726121399400926226681823717287961123111767227320990042090880150577184940977500334785553240485186346563693268227010033761407675482720225405387604984649354375480285314212859007680949765851177241624935380469874982995331752092384170641885653165063302349005667554637933676593687412103157088028638314425889525499318881565693617141374095869485776873613869787915381017873216707147816007251438864144174513134503736643887348572073002997313592161526171416369097934505544696296282160280369177431350854425980248816414099483701704601763416643715996247336596374759002897775366384984793677433957040136051035756446173534885427182635990284281373089954281718888780095668516797471396733095972051030441319998644476197521700721764459967353456233430847067540249255813003952015730344110525465326455185001838204113130268830596106167805413145880339121802344583897955005159333667280073148240708329867820206175706695345560087961173817373067912049775363310649970290561578448925230552116793776150518618108890233244613039388491027811484312363206766028800288358717095287777037084590275321844187930038048984113528762681703523081546110273728748343896931658817696553884904108268306470559921224292117043657058476647638449122408475834748600592138935074628466549311303176798154366912675328706663610048557585826138059368241422996157973075516385182329856652348951202286608016331376321160714713121677274202735819406991033343179765800133260868556969424587227283513321441498004476014841434497422157294968348934927412210118944540786869985604348921252394680709067599036941121318078462812996845963034624067464383583660304039993957842887957866940558150698420132442588105812722002346575348184997851050115121272384195199018318026092747209951531597470875372104834906465086409243913736089567577743115430374287855600745012076327418539378887910103180553668341658420542904832760524191811633495587795453668630718875627701377758886020055604258863705070113073106441251599849545794557408334545397541363091230710238412991671346396310336307687791681140365266779961373757535060467068212276490581563353894343999187047055720033856105531250277621573947853528480704620280974209257073333604401162352871297502855412130392437310845780793058573689537169869503295629493408357916246770130742103045647076074955413239685255215102716022454092917986495281272765776527294122759857604380492500474674585113333135437973128311486593746574596289564086691059481004458501918327897182709526281201735049773894222201053070780455350505443854487639035804153690029194856071783902337068876351829167150683833086417904440974912889510542258269430471361418501419932764269617863772231285616210038319921451810763041976760484986037036197741320550121823860519048920316082276788113942080830366815588498058196497658517611215251515228906318813086807688823076713659386954144345288660716831136484170473344584095122228438952209049143497999093445524308037273657685867966858803992227625998936618089500202757136985741902090636706412068989471195595003939650169437506408232532820219886394985766942828995617552556326201196860512846865904845210568530268927895104384404318782067715350953288035434672429600461831982859924512358245126958859133397260305373596616707976100839427023028622194562558847841245966318318518376616239973489945118301985825599174055670300903857918528562073871615690575309846094131879896268449645063758410033081441215629970766464256798893823981594520372520237465169473588341320647922261879487872012795262837838229246414539284335770703425243946004093149099316936158648788840819062258181818269040669390083519650921821580457949231492911685655689384792007975199523368739115992543631669149235163986427513464393932535795369038232373797143992189442419662381225009415408268034681470795930072146637183321440992746139163933751517919685884904039380627765907593230921351852963318127177149089690537097860031153516924196530673465512018338334207892958724501581054709107927161098339142112041732104357924762746189553305238716349701219918439413581067177574468315603497206320105659378094969181837333838085601679760437555645195055880833344391939320976862677127445248450563933148684414863955791945906864749507821170219416792237564351976650731693967208751333417765343965109387122668689090815864471529126621812868045491630089961912642227916258934108283407543532782582584088971658779833269277672556027682347336258647191440603434602987463937213248115173959437720654974096521637000311057928639047193646250329579745415580913439514511626394154517678841514401051417183410603479155575266092449288275123214918480494285520827358352043889037601467464633040694670488290680628731131800125415116930823848177821707674894875485240375251481552579849292109686688210217636460075775001237258100903908328229645136651146220323655389641481279370011745706221035016287862890914721665551919390506893665535688608326144090251185634114437045853245899626752192312715394958193666508872396620674702431220666251708855867277349284116649545078064310407850778732657414537043374503975079147540703727334706677009983835791536476165533988317292961312343167544499277432015863104130990499031008387291694334240581185271365846542866945485481750714906497838054989069158688749388175285175128609890171696506792146752395352438554144843936131056560556364506254093602064471972321735592362150534619396487381766697767606196538255527631827168150932888218774590282325916638707295717438879856856392527783259007188788986865715349366690112505176717324060649345864923454937726602611251211277651626100202858859119841014454045949082247209683235080258943338962175116417160043331136132627642790654220077080999352640198849038074884849980528525985378203643461410045055096794171627915146962956058516432426156097630669816197736961343803298293199050480105887317973518778561165480024282539258722699979581289744836245967779838577349295461896133686008450265368079544172498734036386770900714135784961465146748936766295756873723701144148253539223566575896506359895915680151307339156752125404047229786819718524506329019338348746398908403632010759563295967303650460377324570157913855720986146528079485910632474192444272235480424912805135357767368709942627499416169806817742495531679182917865733897273957770221875610561271324923515407590985188142790207803859189321709392210515895881195328043740992187270190560363028471092294343667285778906994452920437779193379797370033539785313980941853999164243793193861696707304431367065130392448461926654171828752605151108391569010999986383516044214057208705088739744075558557894864305117265427866343293496945509984910511730978810208214954810670738560089687101633795995861672460179105498089881072895590528787671379590618002410410412050047509421185664362721556079031440850910200045032751590192316119227203359080795172002773994159904116266863913744172153407045149049825943386917843783725619599247588861734265254969458229011590834320659584466768863150582316663962175809723377587259554249805152025133991021779363262786503443901273825809152202401193302396652407849775335460018748051371515816934118412156758864266819172391580424116813816170573371608911219592879624458714235732492871152881665351944326137306843131621872091607693342150448566067367851824925504031095134971791358144082408866253215810246597559380151882536765718632478702271663111612149630987564068511644955223585761180598008058179704356862318696155730387777492325984322426895871401068346771863297138017154205382379515726587887277527130958339430425385127631096001919862515525826819012459064823380334385003914840866634025740208030805399744947444095550705758839490220102129550069926280193459509408865594558449097973518182557442403337103218131621784736511729096935572811421512293241725006872729939174181219614984014544139342389515659851289878734849125659615643876327399198092497754858544693632872349622916116372576772636145344694038190056169824824463260412526289818217835312817095705622280046993260132212667887685058375591905195661348296922437713916585721534531318874337201797872390889825701126400685034860860064827778765625706028471464812807302130248273376611240758899747018739158415277166634165731326287244695092347479085311741565409389026747666159818181722241237676820127674282723296693559578378504673118363552151060334188561689319292267406797998977049858281767455095253465815590656889357741450796240637630435948613126672465682217102324534503564785082137129893726454601417757463656489842331851812812615759986641451563761398134770645063594395640765859527617755017023444889965683359140453805178290783433603572400831657147286186876009806310280865497690718066634707543856995526022753441565476919416062642701407026046681696171911869572922668005979750825146148622945682786574917840726933896011483617944892305142455455135868260773605479542734768516392578947490327801056227270783068091082729877556448525964201826056887706139684697202344784282680924675917149947979276292806159304718370598348202140665895188200367458821610292347391369534354793158675087486213097598167727620784286770365391810773903335765587033279601592367421844880413209890629680849510057653942312747775477747428309591717089237060049821220727210237367274086756614844010981809648270664184895374883647668106300024286579313580008635378399903012165068142630716289383664579437963615241786050087058360855288104028144569353413625586840208729663787462512721238737385143019298594502695666084988049090368891279044443719377039830615907773932424024199309480696034370589090455522192581034640420470221397906658992978397359717461512852899956933796720341518256324636712014926776224323547904483068354169524529696897964442594128455376680186282448119785389930801153051706389590864191726303539701038960351958181888282802328628468642486515961129521909960924371583896972302534398379101602023383593283030040356725501401825254273985508356545065946416578314359813805154212897331651227825875437500067072302025476154266099662289939739141986244486942546563896183161952738111623875779459557015818960634968757261891079822698900724128038687074639909406572394709432846110859427461141025785370674124113403979229652117200974772768367227220442538152233943412464368592523088367299436093763846122041753755720239152579285038910416522916373475251323659906487213478320274101505225237433210497072030473580360223332569824072337176263390764852667791806526044655261618706190876527676411432644607714106977825009313871661138167814391113177498139089787300139436092307375367980682310109626509973516322843188796303916688896238783573204023934855235084629456246655959896204091524053720479893748664025071114708476536497012834275050825045410337300133840180408982676386048793275818205358652404721691217401026466917687188064162520701295851156657385488755081185288976206057624771666466525970321920455189479801497142459926036392319852149543423314023992852295337974611894304029035350219181703824445236658644495019371639224893248657034830996116063303240150490354267844441383085878503115823324703709000108791617937080426631932093656422333181426942238502651081545338749747791641373676772595524267848644891346449517915524653769539266940197501244243113514880316283610947696334541933047558241363125735481313061695825662806443698093008897563233894727997968463196479722828473274743213628539019592030933648209874967906173527565102039015665521414524519808938567124103421957604266032450630954222543981054298604653719307688716385961614804854572769324864839062948665810580866774680696488363348023431836063257734730323069583784014671807878873392049358992654397834343505365397237979053935424102431646339406655250237793606177100712899210313210368304868006335801175241653006118401753434471749897380137298827971333552019956223610509447966144926915581657225372964829259080157797635950170874532866751097156418308822823222093791987096214105419375405268746329169650407652710364194176677126636676608118953776780351260311990131155551142144438868762973723298319824791748284751656951804053847461831954862060391761117655866072127427907338144925659212467086386024609079066378811895032582779288776903825665934542695713157281212248074969973878518336683692853597236742821886846313379693585585778071440402096572446081257031611594257498140067030866905724164797095458015481464956295094080474114713939419474960844509440990494727857111832580158538651202626889931357021873774313841168183272548883690701406625064306701815798803931547976389756699170973070422927148592673627466693915530543604092575164273389317358369450438063809623916482579019497876303758454699722073518445703853262810041217044112929202022724565233639863394560656568007278353711468311778348551659847655680684145628228951958334781037619929725814281010275875971671186732221591042929405158332633745441262445631295285192579139910715445731189676331173815688558777943113676911237209248023980485899028657742003311139071273516517464980309965514649879786812961237027465379977558044241735713389622602587374669283359515400322451872592234757561968128988801383417435077538647922553450068564847489939403503057439221069723649611797921601876104870299261730332692574090926002526846509500415131396194571348836812060205828878575269282505715837127603246970594890478744921482246790304353945157365256914368424154876600267799334323238871767967777929302025892103782233264648694241643969287572247230239906666320589636562129810253339322199819248956758267046097942325878108859160832510197362639067019529472877915805341538362540657584010852845115992465122667641257661080578056243396844090580582358859205890019806300782188093200105723130940441141467602612587051424414331952386093265151030980124760628636602757586863852835473884826985463794811234106316018099242268017752411513934297994361087410739844867359133540474594695736920333995969846440051415484538519827772135228794534635174667300940004764312479043597535356925060211871627170448084025955098631097907217129140585884546128077962200692560750098771692781943438313604797741481009190354180559052866568353942383571465176074055599120392332170804075167565248769521112648420413930076955144303179111191787804817000990425343734843663568261435283074928551163557530356250150909579494627118382068382171439065749832400637764457658082979319564707116548123819069040150630463215877342183265769795621252448756287959228403376337694499157222093666148668908983319422508084764279430196341629867093328075248235057233616531963078354042224656503128905227574487734840728236192209743009421746671818932459270893023651516613322158271195776468737270551865248351845661751446899317847746514391005698040242684949379001022514827073826815160405044385389151598419129947814044728157558887900479833690345571403089916284427285760183293188444180655138079849713219574586227685030897176964354185053574751118723562656379345363144373391935894095406082867483715974067815119638758135006332926381632150761479329937380644028515464196341437431118282579373521885884903645206249796145787858309389283881326641421214810232498392468374440533002518273266309289366258217601931322450630595261040757370496013891856183591099391421930271607681622678099199784330476574142505983470798883098906336626414119589595620830595799389952024567422123632014163760199261052444538502661473255357520297787933843556852977300254895310020443222464124944528629914393322970925045251434075503793468102505534793414321836620708158677172772732243734968368230854605569647093356089554493684451177033432252516942535631660845797707447601473587468982371559112284911006396305109056613360794269299799409225056883636693694286553168741223208072858230403566645726628797049042326305200614283142370488345533962852422884086279164089474736840451744891307626568304078070004946714233636363567409452163443123919755526073056460066284321637409677159563442554704677453588456983220692402254479331111532496608023686922733718307615758589502209744941838157439693037743196420388631857477515229205212775553850735336611186735851356255075080251456751029036579330194126118803644253249175375244332639185189638374039976790486992481531493753144468721224012757072431626055330950759385472890226514418786951623948237967964742975705564002628481675804019069591997897568198077642737373288239333323701279497815694160229892656915266084058048932441382580814572245024878328702991783070103955328644215994001146885376938921419404073893302216224555086076825602885935716269754801293963353766321655285546364100933080881364503717918060031219085867164703386493298789635085723111929460228691938653320511783342492228415072336706272420222064172808227372016502503656572685871296526200885498206879509967678029786744013570164614413624770447506145052673501074269732532747750518153357052106972421928113368382105296728144365002925949308933781485561820046105600200423188611389741264650739304353992039264480191206946152269744489816938003572418777648724392180868192567336902157668764967579019520606438742126501096595982459494583806482952589415569182962791260209661435287615703802584756742250761870513871336837679570018141910436856038944013932238199612312471027166103643154735111449021809642971122666414686432529339903050508868002247531981167604461341264887757616927375707875331416033500594979842746467306363939133589871564286247533463147061457230754232007980211577956527619920986495870961903063557644356368614019541843429155761407205454259081992668168103885363943856552831623220092316478205500838744308710477215959606562285614654570138560345976058257793471412289100261826371574236606913120506786585874973579320713532543666539863953260895431492751456973642598098525388827572115668808969049675026762150633178615643152834936951352169106611031810324464120293132007623639357899213983695828341025857630922102922541590938178951480865904712650743158179665082235108787635738359531712513431386936097451607946956721276586043813757607259800573299619802931686785295358048289020824222632134604494761603478938074299677162007843889835539107072803277507914796169649296252355598536770388876979212635690262604550019559647248417305806495799742733199601720528195663749026584438893490549162819907095776098357770173138166840889169004504237178788469976602126564412072426559296462523705831717946404257487660836928116751573551737338730927565423447284443915422155037069175142742732943605072440406407980714562447412472110791228495393191644668240408827145354335774162556188937889051608559184322596221635447925952907587241408742090764647090660723581520863155175345292269638709079945127737111947795257987161710868413588262072471592493391243084201213679250442903550785526496504701858439788704286464824564722884370462829162142644652510785087508889080180232236096476894207819392565969241508333539863490129026561178814448780456901935235478140449490416127855578136449422860300817623870103692750463412265847878542949932937732384976138665357667271617098387310029909231237864147713968796078904636861671626134855808281380543183434400794533640909934608980963631945106705866023772728139032851081067336477477127338780397906969768282240986270233596864998700646102441186380860216777349814557164875680363335789954341848272140629820848071618669840530687494652867901612929341059021077934358662446113035936547880699975710003926128499699013818248983929959327039575339550287965016293784849222143492915394038309766028440512174598901192549941929226762676394615109817015625695515941608360688095217901887286949544411665345651712099027314445958144787650195221470979846734702291680460605792075584629802397289568505185681276586467306533592667165402684099185203019059202219023024630898817616462239414191236157218217360546737232827340561867955628683454628186431927241237255743618821703832050207349756967735505539694612519429733273915427969412282731223067406169735708171416453152865663190986314428620488443073190491296979991611416974204502855985603070056296996885898612038725107822399531108012388298182949858830107817575336614501353409344296114332842962109662663167486566523260840459775678689882497860464351963290539413904997780712408110435691938287191917681692796809574773711063879215445298299606866286139725714610276057905136354379471147878653845439306250271265703915164149124308221029404133396163125689134417397683589930519269162045968459940227673167214406701433716189943551385365116376869025965488630106645545610681812887732680464914487085085304902964887757629170072943111044863193584344385318590873212874926654239398111032761742197334856629298329480012634895616196702896108786768626306218183534971003989207660811608184292253272253740713895415298459981831551128224995088084827413442663314276640951373999681999439237509579076127593902254869288170624140389516315152265665450830369571708894311441428146994518465353900918299270763675576341387839806295045474530312222303212331022576259099057964091208151537722851389221712846123601589472118557857394382486993925579437541515100670515646292944552557869799103290999720428909706957558292603165113843402200884800978513750392366619435036552652263274276020420138097580649959212991846329811457612765339299897998777342750312765362074615052934474578125782689263295348881481494461394842903454352109992517687026607576599982439600465152933136388937781296819145144309501411443649889320044570457375140554044629172183871366087373606547215167183559018790241449014810618801064904842435498720266007514156476711640670871404308205489045220597482501452185484615773600327569673066036312416910945305201858054936266000019899668830314870917018286286208950483252472094212131290596457563601448185233887782634098433252363051345345879678906011378825321050962092140193224841500858729691456465950031241532276033911734885169844537455854021901396528905289548636452177737615653279300196154783418326932271409318600612289986570744681320779118021136110640064851783029944247836851678714903524398721996951703206299639837780316726614610902461602969693126912554621199394605024518316413844466066886192378468359703526415349454069963000915500087636372755881133425300560376723767252793365330307907469436049762543446401374948473533820769193846804475585972951504975772861018352282741391056668720029769941906427581949996766187913506895477908966047274998188207621168618283533378185570156646327008621228198103707262818651215326015980303775531783311110487596100822254312687441622920365234601919587085413147062245721766350755633444592733170349442553214472953764392713075808957831553227918789765433578017073026520066235023502741076864813199507459924858548271725750095685981527996272372886731893076377791646888831687184832661322079382885839969072386383454201505939571801637566861580448650880345137148333239729282065815470314676764497128585163648673047929185791047950927073004072102361697657296152644172588516091369447001922646604891178780064981790793445219490956835957433896675146120666311082879930102059440308323393911428249523852362650640385510773599277841719414355097852804932546031035981174531707350119229352730643121686622100573757861977697848871238026906487642956300167712578491273402457613874845044104586998809957198424415266030194318607956516326436565730703543905429301486325415095834764422663868870854032992703070903042494701735924125806149233839617406652650969082708814926143284926398465009114141461708035398696634246668817484184047687797314282652706666779221134643786710050009751787323522310552305907557678571201627393404854546704212829154015223666228471097342362415915479380350381364181050097724052652642823087612083119422711073627244721834376326217603256944282297721562416612489387079475060893355862287024290944810363898035114940071530329026900432411518552772201646087537162485688637401835683966351193466487337431624687157463550880661708118725240547188719136459564525200312005990219168331773549946069491724416716392123408095045756641585857878137744242915270983853319247684624273919770523912774252029667708309961840011015378384906926015457878188725433317400465005527567671990351509911559971493786007540171986487643535807678366049968445210336187643329283519325542583083669117043436931970990639920803655304209544421758697081827311513747171202916894063375137062243799776058489189673490245914287771352800370939272927504951440347502645935244058756091329808885797325456827184894169385711488712559094167733819496792725590934751284343159117621162146335468244887879965371134679390029816913150156075132963917328285364046230034591839015441194320807894141029646166869799746854361960394360715711405649269418445378872225593033957071752657911656432910790419751270350704957336205934321790291893995484932155296537131979273370684720492236120280211692786729353523175740242915776236878410629913960627532565235547520951740461137508773846793410907548744284490119866843134550764986839321690308360418598754534513372309773408828982922911457631551372193023023551102076914953298428921176695750353979749811822960707028320997958826207949526106950299301698392301119571416373250748387702151624776676427774252786475225471847604737876530998692671050879659910836821519006900860231275801441875859559547194605148791645485018202169759356898063193109315399037390246627464740054114713317701392361395442908864412647463991664815278970479094605528129135402591500277484245449996382645983235407914153720302723206639246097063206451334660173918684646121057778146356131142138827930560145630626424653074781585093425308493190923796934000821312757401724435625537139709534577997723857263328291005018556315012360500177912268331357912649240651012633062942687693733790224108864913829373130973438608643924235653257365791502671960026819045447988421528917552733547891886216198582870323989322363550648172626581871663780767541914465355897436286155547594710457585181164602357944627528334295720939496986404693274249696806384561148771406874554286032849087665790669522334538976161463011710270192142278159171704638076188355495163435880835013468165530510020334454539345717237217211233642920081774808290506135309209864875175093079116421397924212212870924370631088455091936413786289155889478102307172704350102587859063153287678026737981293362792804268726403068393391342067832934951460740739358042811226361510330357409546924191692528647899127089761254700352959109135606409063964286403581404887249994756216721875471249291739892578922518810505421045671957661149300789799235759690636482997094012160395483446122439379812724322222118557759540051088097103897619096404214527193139088643963396594028946318659546975321205443044291922776611348173487190496369675866047041016504103435669419403561123125515407170482656616887548591312750210856460453606828819558363562462568826720332996212149502613957644947655473170992900817780189719127066959822117326984403591911429919523422276313631074762119552927675937661079393120189635191214355837969538570254361787367224559871563852302437589557735662253123677217276024169362994669391878793014375812406746623357840793383230513054339211526640148641583289502626009337910972143890391289318637649823116564106108901319725148724468197720701946593888418310813768502478230958300670680100189035813352304714303359725149287447532184123835657543821949006843780011925831303861651474149380513233338207503672739881937061844627169871871980939139292291102826622455851784890136179568429843738578758955201995883692503226589220828190506273275670044831285027789347525713855011714448845712686304478436659130999194590611570527027274303363319749127302840262496857396933190716969497141872172153041328500287346629461469594254107324883548345436024187253171659149487421067822875316052643859014614124106828160548130387080448806598591321508618253525508404942357175761355083578998023344136168518739097381311964505128907216093629456667593949355904744984506382467089703057815326219030298312618624241305333895625239066099784492202767882032714268682363058246013937951381541935003404500113243148715360965519898531581420549909673181810906842829564070102351207679974882163042096400276035720524720685508788913564338324372890601461582403023100996500090010868767280010812547618371479758880312903418679927356413440384090521087390075401083910084144518894474220664507949533147275699117568942158948088100213710896348403473033149987661647273138145227756093089221504632633413184646419285076026554502411200241106594153157617285400328716432325448139980810726460601417715796640781849303386216432075537322584053435264162569134068200490706924432657090211454725271481128529146138008377699192361564139997727252577190815177102495349783421333223986528334265082718597700983510201181092452538333022428074111898294223187707880803391274197052942346734639226013359649937175353929465816991109704811561726457294028761894006367002216597705801155480479935983591184711198049900536940621507968525239229128363949898157913223095002213259318494530622192300821138421470205917612874357671172791878458251922967671482510309008763595400843750769565223909803705837107169779181026606902268560683907767583276209351116342741326482276311602718542706027006756418178581836483688971535485734136133742469676416673536653087139094381067496355548958493558450932856780893720259717612793651202130338687814296177491917387348112518287140197558916680837044773102673580263164296797519372886191351427018778738207407298051300948656754083761728830101017011455263095350846805630371558184020923393651635040689946567514451031881148402918917943279894347371268776254887705484330943831268220767116900249424809063853106608451307595927514934663021625366251760836242988352917881620585854383933140561885637809840236601988001804169528792494352066098185580955873376345806210917312557502786347861060712657049670243562190708099565189853666962016554070973508052512149177210321847022210153913617612482736441628752726699260998814054120353234563434900549751259167395611719055757137260192403473427421693295896126636473423284332645910133389424169759245885732643105203329500350718822575423688836081258671697577243707500207940609627838874169412701582229622569448572134131519957972890571674423845693025646898811027528168398347326438999335760669122611157977683963779023446474515753451997094127657605566386848356369681880655087772786664647975820361794399391482852422624544874162980892260676469043544688621770445606234693542626922784198663980746426591135363643707013147858929226388972722668409378511694556189407015449210562282404961039261722299972248386069248191775110273805288513809182134068722978549672365407131970974575283710742117801376689988235125259034996920551175843474663083189512925807257263768665076079943197954811425627655332929348732121572927734945209482246886901696839972410967548234436379474163126184860848301713238462256633375405754907961489899234104493722428460446600162735866609900945547663650668605809368656856838747233234023443511073157788905497143546319705902405276681545698129196994519039562469562220033755725959190211746318174272390321830454782127802206526697197534735474985097024609919071346877627031947717288374114415647409339483484218099859695836942353780205600982403812526058283744818889445381291113868747662525668902509089098846162931671141124965472877167213394432766877027042578584013527008838580478643564397139883571882853603303424055510841063520486168615695514200463230079003214744566698644039249230336009954355692529345001931671613818120614834728514606473615584798901088201812511059708974128289201435147428639569153209091547224345697839499264706411365900421894519345067791707122962660356443290396392305207030849732311500684032595967543568418751893801541103209778793801975044412256209277650727806223589917559016866384272972788641940123027932030934349394480897219755901998155035357591901411659979538418877464879188583233589218748433595040109457301531996492086576494979403563454116891156639542320301908473808217488677844328517627838202661128781781448554022354923613667942447858245536138216935401203796027721890298243529656044682923965417848042369839115171616240564396288545346047205236169832673599290837731378636420388328236125868946234824092869575023792934392290981110101061071639361478687926653826812993333784451757639893808796463571677056327363768113673987154120206831434854161194465608982198531743092505758699853023051358611538376161307395463695108355990395666735148067300496355295291593495906239517193332380864281750877607267032707197130683030415838403486005192404014935167260145841999028865245705984435209251222255960666147243739347602562759581515149031491444230923639060615408745159694694442538061787840066945227211294034027142765961901455651487243337546959620704170588943185827298968092978669840225336002904093500653547265701010628764914412700560984247605581616285816566151660416432983686304424737138779674560078695857569910095532935256510167926373067165923345849276258662320233847318451598571201095316655139496958914557155557790740721746478863026478667896960262956955253500714752256748490050043179607340193602208058506300309939968591985568813329966228316057810861128520024127589384478589939933272658299074098743578642408818705352438625456926666568816442243852029474013317789784696781775036831201651233468657319902127414051048788817202679266034137540847836774719527486924099636059084196546535079540229442032562276628311618975915359468219682102060323025597646563018455451708085938561494136360034583101059518512781357875291964556661472153668177126462954979782989867357521202014952823265358014630980948585400147417460400318378696394149220313708369681859999240064519902525796542125464209253306482141814861587202251804562519347295911174622038773695776987672042848401602858534043948066007878174546553349048921361190793057178280026656607135249432664648329735446357276471851519211716618475674614504964310212215514847294831391335946527149101140962189606145140158631256048803035910341273512623908677634275008872473052917532846953146237313263749715897931137294940633153296613236720564601080692815985552304730052341638404526346419782568109187619918837888782794002078614634378621917007022014122868772862362937496908936203913934762610272512413022310183227837682532133659069717431510025903988140121953092572152000912366302548380986658436467206682839889123818426057779344816595627759384843344447265542909889685908272901825499580667390119510997285506960268538779042729227297964020030950805727458295257876466483118932595918054256784126810495185242488476417233639210546743825048712956960843225079669229456781123175842533558117012785958926756804207844597048857850072002034258219254019118365999324094284753826444535117426442799448895690677276103775598739247662599071858543364289204957401740492238275046227662058338790740621398501662063861055181151152362834480494903520711910124867964908244295127492745260964195514059601129609093065253193419072709464255524524657951910351010043209028942093681547634140234656177889360398398384613272744985762456116184202699293203589119473187694904726514736862178479523764798178093583659170940149221195245418569303920048713046774421643839735636430497651338415204640239034060835862895376274847390182360175248744568019057106994178523973435660824788403244994985010404643919763455186484776304686661470752735720844211680169950068006060220362144280724424152197491446092516525583656725221661316470408811665345648863093222581373143656577828581074288178293905148586219935370326350327148519945136133420253043304397435293522891511689711562384401765059735691343162827798278589062479050773851057086585995146993256179241633301667234874924339046676601726873350199986346027394762235947919120182713186403393655429324556085078591190045849756392599177500221440719063388314554933548046540383954777511495340867067135003287151494900784233443091388103679976199054099004574742030641005133795219945592480307811725660293390563861921404905119011194993403928415415618882725801234651305613020009140013755212886185634488227982829026249260743842533520671170086458622748092785353279900372965305719551811623962734431439894467114228031732936434589814479756927998621341729634983596456817890372358142364799228638609051637594278052563876493958597554958265899802788311718078310583946924466230144296992484438200845759046841613861058675768993478511682086688682944540735583152542176904608452384965006576815403339398281198131426452269323836774131902500951496617251975296484091105204170816887097434432188357502420688756489009628586718197387771394349603165240292170314424678176470679205272391929021425446444912452137254201051626745833202010500126332283687585039543924432664523418801930020423762737144352893013184928556906813183664960024470261633963844303609931495265279938206835069001647465207755150879176888309697419825903379985913640745645905287996160154166909847872332340988120608598946679478223216645885267923879831401369808226608588413694408888157546170135354960056850887000688815618332770652073104818330499008109014145913187348108628380020110239655165786058314149398382993647445642802367018425646274723053051868520913160711210497040634639094368489503805316413304121848895793430755519636084569123814366710952138272522667427821989831448257031901975002068205776176966356318813008238307945802922081064550171164220287567522929054450023856714423059703222391909659662279536425922926276928489562957707592209075242936804174090460532780976557296145084858922318764680540332566388716666703855797089523320748778384646715905489072894778720160743032559328320713195529563274098478077550100642890025042258022580794781596455121635690453433487385801118352657409658638011868124438345539562139186590474440579348035659849799360005144228847420993360731285507321632636812785656809335829187790362176125559730303565037151276464264666243432049192175575289707529112514463763323794265125893383544644151104064132565259608577932547710200752299138954459358010330803819824911998915709698980091520681591332266215921014685527461524948795617310983140760118252729135545097103753257006063012551773427892687258754600377179978481776921121915223521884186657963556906309467947604128256379053147032966196242369636938066840071774003576367299485820799841587665760319911683451752933885163424488234448393570647989428186132719288712580597383561513507936069455053408408097305375601332151888190024295952364203384039395009016184527909258197747583015145457944241509303325023440079726788283048556601214387753229976226957850858228715727301931011231752661485983543869309910703179761677606232370524079424263575201353162445684420878655046678127606418634045123563555833574733507609065652442067462080819723807434055261791189610742476267472593283687860367831742957667637880996565465991101281452478499161973981570129850663185235235785558451152972420615495179327962988242070224563673632182835410986106694031809741947379139353624209675079380263891447255210486061154765509230880717116158833118299738829338570545287149274181628330151490995395137735308179978418266294896484167087463188643774386246310249361733837236162675109678177249071096666315644135712528683970653130600687108521146311756551096912803239015696980417989477815131181275596652274690892858919236583657725890029819321304997849776349705216131232887348394362893425822879396165064878113804989951719271512145908650482225065093340770689062055000885423521151988914380730704921839387226070525237485496148329886110026571579156344675716078643759716590643627523178338119377411926568202059522681735285955310724715611605076950458475660984814450578803282601802976725115829693771205587246671482467673063582652140751340891775137794622241264404771561079646411889078606798136841259599158121407987025895029437798081246467919986014813331177173006548045092219714906573212861795526935518934995946264642615405532276950144266739797254279888588379184843595632483059177237750974476221698235273064466103904337494222636971024142921317457815740082593257239357515142680961332998945982129373222910405351968735733613964651379299450709945995090312918531974744993357471642519824385453375560206671303244430685773020696495151025441324981410156619156136499113771924554987340167604068991474566533211754578705405417115359788855246453119061023655021913528002149133582250653996402909350893282060443873180256141316515090077042902933989552427227843642775000509563355443607183963708862292677800480000351282664682518570924870885869534114049946967749678271624784972453977648651114369894673775081530659683106093634142856790467181355599238931380661367634036897239984214622408485819238191471011396624060912705423042269925908330746217145427981659771411382576024066392726199974752629900455228865405504649437682547476160245778560368923976694149681955387811523195396670128974010067543215326972318651297554278821834343101724832900577331240583579551651040190583039075834780403843348342519470537366188021213761557504147808601190852796365383305535119659740745913934853140546700901532947784386500651804046805242783765459764415043670762480546123504679463246251904722625742938383906452336264341548143706574331725704126700550873662011126582328561168216936822781495374644421790903983397408402935358496160203426065816937976233649631493355948525989305596649684867405976160995524668289301305582905530211272410820280400602355696683627012308465839783322274153227943784441288097547043859011285392872606530556920434513274180337497161463350892269727895529144347774722179116709881330494029996693630062857877935098902739184688310039420102653156519434179755778721906360561252922992131756575999897840772987651542551493227644594333674300701871456447541184757383474527219109477055011740202181760598119483332806345572043343625872408120039498970026428739803806330848086090965547636279241523821964992683735661321199142899879006483231052414431849587172183479078495316158256263474688922169020397321298417663970267919389205563672317576853957483093099455774116443415529357760546224153981422386230977378300304096230316636290940837504082707384627812004162348761255916283604634686579631021955058115264457914139098539291559568813228586357262735525257174829083893138601295786931760031389017829719968277873847232120649721451994458199126869632159539577086836011665874437231218863418789281523810055609985597658865869702078058016456536340659462960475358351108617372435846338215839683527098118053673274411198717375285710355652004971782754565245556873279368559756499614602859685186151213591228830773361781104845030542901720172062163741427163144327364238953537959100271731417112197314885587503099798515786516531130643769537157235614681318342642126533401893779025120733973385351647301211689347769482204306617635967125967895766453121649973223962119014951007888711362912087590846389359192217122308300269337820970272034210565877939370366941098886542135055155216283257990975683695859756766452109267409612451616624087868259002294041904402415564312906227853019472562127860822767449194013216447789904332856692867943634079680976637830487612279944910067351577428824953047843372712813491448059016799727920252498277964489721555780622053741485254478871450102313918976422963205790415292769520667665713909074533589463822909702034497472036450391886763092549770637626961081065701986744725227720388756857997563121451134403349414926774032430608386383181329921027827324437664267581812460681841589075156509692794203787272639483818376229674249293476967264571227383176246761313309213113409358117127976340345778476967369916756880173389261007013318571687060432632054029544481907756730322505584683326153880214369329755428573678578795033087502419049660401209833987292425281590616084718752327700412417448890002673835903421571865370931569670264986348669676313980813832955963903425983692759041264782958858474990410708987315179995410125811832321205678586292033446072888261242638086500719105859763258929235231413570198189430272740218257292305033312514964448435828353432320640051986922433791675663893095075666892938528192374959015340012388005076484104223784800848564884795511170374503153514948406309952257560199175943692250916468030384626177908419328865933736781517148206170069984003134367741037663158927586192330336594794560189630853842063750563706728221874386580422577707763734294947656089038624906248682758286553342460223674702116680583762718645049317191846930083682896442914513129636633476529293113676558424794918427564558597924877060156874089944483044136000152349815144074932850764659310199610149015176773300348107566428789806071539175241341389243446585882250359943709948483772478842319623235176024885175697280589708844609734515607063950554333671552669022031410580317104082796619082609344760853146868026382526300367598124319541966018163932008275842932963211571992829571320365930291387645371348160898632423515342069399575902604566028902789787608385940182190878563555152171242978314337861525510599812620151790324834659303248977005390674085222438793567364477920915407453433964587422208143968206528648643492593714358968562527264975495771936774277343644321655446112269153640282410450893732829926817518693730562772582330329084587584030179511963360750680646721767267732041301821751932310522821273137183929276938924694808330336322988068784844650767045706223657386602490469950431820854531133599708682923994091928562968200931377359250518432647149391502849983485278985033929189230704301329928381511077218723294573177378111616235408605459555628575285660704878902024089826159338359602855414227012380608582615124510249534050537047344583874275924436864005852993292501559885638526428330973243539809212745578720419635520789372425483518462880849679209193819835163912967636618789139154230802723759618879245034036335590385546577025275109609912298813809157565499898573217895703136170970376897591417020231717581941148725235370049850286598959868136597204928222316242608638048576204468026171436460071611565936861658838985211216586629331589831564358268189225128136246918170413504248879322272527933323383117403665159683227809461004066212783415877337295612496472058623173901154260841526649834989451225906179489591114163200490146732259941167218680403655256107029980679674855187929739842988653268774737551071796104236193631255710372041780248985464382610673140801725065684989066631025273084533910288331405273902173443728632064227021216099044245409069016613249490940828494285154576812926350341569201836694216579377607220906968311249754790328013623042132428525779463801590194878933316721808130319962895746925691013990041203604788984163844265083792440858201104020767599459297585430944769249877616196822234159124133322336034300901191508525753868804944960627081433842422593826972375744183779524506674173531567643509485181954641236747613271210990774822465412310127836554704327169775716471849071165964406558061115157316643640814217658072742129011038207209844825367102112670614562281022472051050860484738034595195051196765986805236799869107063826532777726045578843083393346441242487856819813066217647406537667779027465283254656701515177400119152068011065582710301080302653845776067269681809982938740708703532865941408981309041755849931123946728146250347186062433065640942956836591546452761551304873852339237576273478761949855289860028291696199153429818493663819462078112328884470744320963749206113927332480087531533170288622439411691778780671934846522479781472018396049893897956861008890358364057319825259818842642014096319739006027171751501951022396027960350359384166308468968708889549418433361751593692219796504606330730822775034134923082780177216328143359471846719460465691705383453933054414491360335503263236222591744395347109305304533219859824249102715737707775655392349333626651987931461852076301687971742532365962917010870702275405563456638388197541579210993057611754204331382117446651305330642050559332629112923744994195222265979443543486298130609561446905217995291097579092549023557352334086528160241814500275559253727839854788314145819530056398674907086916118221806222182091499345714098964232130946269898158844763327710773366698868070771289418528652346032145471985894020404540276376393037735010224748581219216566404204870163768673770458775313249898885305597147364165201405187813599928898468655378108680465612867499372998621633049579190547973945527577212929863615788878185654646075867028751794243166555325934567916417753239186073724370135590610327467636402402539942679535636118371322386969459856854162148595680969924499650832160356978479761567258444671196871842744741170453163123155890180001511872740311332068597898421654302769708943584459559761566020137992892226186673737237514667417090532161560377356977435354439287797957590878883085095438515592564136737949538888222320152072447442376725611684002928366678819179743546500971712439240778023891798518585246279711129739216648579249070997143257138122472628447433200065573622143225841787742008934473343642532215960338961683501019655787852941951324290558422430015143194209453893198564132889167246584978102181415731570850640611385182235371788757181299372991006513192322206188340300081551241986937303445763964777491809203296604368551005089372682298214511253142841641877422035269866035606338700187806959498466366523668333843256785763176754570879215380437776390859804076582368507857017156428512847874717692075392693858748919324762723758248337643621495515800850645703354443686915480462484867941711726765871368899332562726689142954015253842266502329159104423432305827686723094602679776745921007663179191452740752789396755193346054223022380582514900585733647911703521347757468975411633385906323815356555473163643063187896742042947605715354599933143725884328483960881704082751051570731745439944400041716805938804966555858399058514717410869357723974854145255660370094528479015645024339215476953022121847256797520534324038071432648127556960166456363192957736882136821929011178625991909723621737956680961149624780991794006380657636357421865268243796280592619357292802521495657518636550159788670770302502288040930988838859021605949649307983295567642086948758092905601075566951556744767808274312303703736384929144612315298248564445212652410483751388842260639232488489862396082728787534892337704614005919935520374657691483378385102253611805839842747427817320596021303495321733376578390386652772990264761786703778040250847661257964973842908042294183560441390853440544470423402594343023482155583209330581638813616624473511298805154796768485590308466892802061358436229686023838944014527705361132213436251014114066090082950385994602351052311011978893780862093340647888335023964171903505656600243419038467498329635696446827626569208635574822641912928490579471377714324267736589661982578232187178668902469523586515735630222427701137260382754072875901383867630447762197590917126176188461808360377452294314084753958007066707813278216470133251582117410651138567540169844269504899147466884359547272296870562215724371277412604105044266869270795428378948833104798442048957072277135308208349653623394747981962547923585423092622662008011651952915556272792121640380497418957425758483939709594173862307167821285371910427964321789390442640738872815780970932358021939189229759171815563979909370097928935682586116351788046286399772066894974695393037714301110486695453968864734476840129532829966027479277670763114179584661264182429596397707293017637150140066782200422831400038175611719788931406773497195732454030080849068300286423929112901064056482177719148669879250990351571298175311215962490074599094903355305640911171491963963217032604414406670815370505736546442183020162334617839326476822267208810917663603726588821962486836767676615303143467439215639141060078418684906868082834954968829015186260330631245131699874279568264004293499188634664881823148085529382663322660781852762394487347420358974924046790597845726733541537713465996710273806727082780886933776061249402308459666569591985488955566791441098526426189108020503769616360697984627105754970227223514268002844460433965824696911049372878854202686653252762903068191289496254048908834301807477808954865161624478158901125590093075604806787078519587954239036674347870699472626996570629998551243874107873326173711904043457666013358380426031683777094474369181763916956056374113593084435535495211999996092290046966190105727641180564278273904027600845332711821198071271876198711625244681106811627161184931316156572333226033119289730637662359058430670428213213932280906256186825008725213032626596698308833404944870666839501950997730338808406590687229311128606616358528144438592385923241416368723231503053468760034478935289781516338974416529966775543901734162355372978793573225200097538266742097690917395383792548182621360174898247572361779129551214223451641185057936712069391994987587583523808477590288935824169086011942511419688037838990632582749753824050553945552753181440928407593104484824792658592113688836211519232441941588556353826694398968749416359653730055052560124041317395736004063150394707665592665509032614367124118286140006836938327300635823169512474901325871356977012393244375189332931534765599337941311354581608182209902806301011737757303482642344141310348800412391869570469563659881366085445212567495576022582023079001188463658309152333902810312508502775516147612595712124290063179931818964495131749934507036394976259861863373602920075774990871142150533105294126361342804594253991689645229996997230058263561320860305416112605189921760898163949654920847039458567173081454599953019425191164253311305631357344055060497874340598324472139467808265798403900770682656940708604852063221845340056172005286204532420234271332086146794146331255086706618742099584615942079775922722563264703717249401968406914217636581301753362453036292678727021059241175560316694392655867347972279166629490321192884583420730586778704413903180998335285139832167366902795099197353252825821678644333092506792863481897104984665201338974115336509381591982101411787964217960084909006521664878082449715051499925555057623235656317836422095998510378287914669038479535891358456856699294733667234385578026032513996370776891328768449746674489339171924741416504146246175630824018741900366671083842058808583565220406114028575622987257233524647635621570587699136280596004330766231196204227125901467981414302079253222016710602158432232167487412672789473873989905306558159060164912426028025916630954827963564216990937519761369296265561244780676838004637419211799102278840449431382357095068665494895974796963061847196859074442510098213788351059870100905867519277837777058519128983068826261208039129222228669433082029498240612500278947138509987095094979853809045753859506348744358849242216056062985760977953617651877762272140673354605639864945580770309094378072658435663990935754129596248903332613546344328236712652479973300001095291717154756624743345007666017408111699672136666961701991917635830945791308055606960027409635825697906913125601065995645700929760192311724500661965186511462572996866173905757067496700954225019148812390212735471115697463642641064467739128426709305137947801537434853412736985272839435207860793938818411834615473440863867883256322370435661291895403822859120529167724785837069159232182080558413505040731403855529123754755885694355629331646723486233526826425684409665589487398796662504899894993752484168693514512270257387579918627881937622502755604854836080175404317312350625024120287843393108823443325830784410521566899566965179592451118227968150964436577788679225959750803605323350338648284227440669687833424720249122385124360281975009605681892008505838274020894118826399957240594897702025108263035564585092829662985272922647915213996549650589389530708047868244484081336351046914835642337588957845769693938718783641031510210106038646549487407200472582982541031242437395741563805484882741316530760737351038572838063510468882188922022367104466125785614549403162701047122389918372026403093750749672281101990259424209089020491087958519816489107981183346012665694389322924205146459731179627797469986882684585466101965883912526540252187046692632930613173379983438638451508899665240437274984022488750814944165130713300791057178350930142288594878773091701630331160546183520916837578969860988362642063919394180522188127033822005627584819417703113013572651044802984123536907883385434332112915993963649740809867174905762717241863409162711330346225947337608278012818504778790271428015725455557730720589895892738751432038000868067660680772541085540265289009203274434538076784353506651678120380360252974002632353926625198402578247805240110891245213060163764782365170696088062054752099943086469673209196811873059279387653401353683419359844001940465279436165655065811953486058781410408220222365794014340426080069295572599001128427441142563588772240587953371525984752412130661945464173868955212644621376162576193272019238168127906299001484636418455737396349333490878699347311181470493443443344587609751170002499561407208009913134386838762931601665554172558379318246035474919834632758131009073656837087872245597514314050569442197229622714783489721906538353056698051781482011274368976238926854537503991166809531726932876703575721163302981822183499732756636456030575332086346328300737236683950270426665605961039830954120867795631100228241640394567045773639868639761407606671255267888588475112328671216758570518585615835296398409107251777176026864813726879133341743944366717284492053492711182843993314658793198149588298616252309180888046570680920881057415377405526802639663404068045485423181164826939926458853658256790989506522553451794344429782525205858015836997066199148984789835281486483781574248219488417531243981624530974111824444508903727958387020383496910725501989567696784413131718496104603720309213535221111013862539162705668141091993560961508572291702488286152977934826375228347706620594836915722565595787374127137721554097545083579279589654222334035749131391096677511175081949563351991164742126302474046786535732987992264500947859030773982171323935908478600409879204016683306910366901401686076073894396163852766426658208173803243929886589098354452014028400436553603083989782598909618629141721745515285102418347266428501497495009334192768761195677088737440948723365211562299663961323369724730982031714367674637642224875409566353043528478584576577381847267785779489702469832348533939608003769491610347887498359716377955270346811717592593213458176919717335512662190158741366621094829299744655482489783706204364756578127976410021972980192499343672921727704387775466105122373639107266367314702757446259516593748414889405908240822148084667510483123345513993236324969853711845763374305192704876017895016079699213675013097191663172153032629458656724464656973566070257042037642710371041596646378105952993448741127419209944880002750434168517917811613610485515758442300308038765981245399460652125747261440264730928556895498488761414648547948765891960947227741672868320544083699581833365631504260673177023527901666323865155291316006942109653235430339714603985864950000959004476945206095540008183241088135867364013890269112001256646966024541997411919948848970409750222207171203839868245995640511619212191261111044338817594158221047823218334661357737906541074331171795877700521197045970194855669263503115212275202619805116296940500655953497208267460611729044842320500688530584925692559288329874651250506303913124394695128257623689437905333243330466776722864764614479801462395524743392039519538608305587334048911404762549102522591169612330971238325960936636377013171901351224978804164103857605506013862107626132630357174240187675271235024348212030638093011397431079531209963829634708224287503551644114885651085203754523469437932270332342366339855362749250583163458800689885734958079251302175420065254418346398902275978231646428288443428459588945057798392880778908992815420903819424658646850028411838209075771045197905404039932913373038039367985022435024901518737906119638957978804117779712494279958815372230512563936873848627241092823242452923581509794155713842438240850031091713676052271708195514665683285394069467012954138402112808126843256193312924750830849699724491349295690014343450197972758120786665244783385156807964035774399162622558242903579529988012044400744866848399331445094613417899133838629649855718619198023685532870158392046775126880704768229061553797716742181467339822280693541476496940095572620804029109435099688748128715661519519148063203095341549256913045507437788258709973010918021998893979574924276517387984867493507429517032571751066466664536648337041585868925872746161588920739951588416788488737893661561435984628220390312164574083310464104287324420680773081482205375788493310071478096292708655182919062601819466253776559947370844845470282227589074504903995413628075051470684291642044596368156467828935104228378624175708131149612461056732911672030017605368849641857077936747460777807911749733106367909101330542826674306349139127505392027730654404792857588521863515298245273701744467668916677159674617133624642941716327835905768043489315995586491717409835156852792809134484277059970400924838445186719301904089368707014755907022671572916374294342211132604516608103012163520471149898783981103784114353246887952581049466061883257255746207702362469887246141574694776189835992831731494525678419480540194256295544364065094172969249352925927678995895658714231938537862977687832219057464561582724761442049982820878734318653416861124521344792804307791361822080935534303606505985430584605849581790492565373166873732118734658791524093494853169002543278729296320353234732312366630168807988418090014555927399498922909671458235543234476403525061289820643637514290044075250791200893906322696016217128328854424230985938363244823467386443558873144012039029019324997397820973695975599422895542811365223661351772984967190308036680400161981791525039261236909283277102273365482407481335392659078855275723244852272551109872433381324666074086597524705487128297987514137495291101611226824451346261844443308440460392845771462122086114823257182948337936978798709929053700988652800672865565563331397483204416380508657923518371626346513640104295578044968367291140582350907254428297089748063286409577191724981472955584733929730322109573678645935936852277053148815166164241741004390940837599617226785604491509164974181456187546003377041811745352542889667600105730071463772753720072809539669581863324042358822272710415370094552767770191408335000453569547090258913638356361812002080870149444714629202984225567428378905765871441717271975840653378718611093980478982220980905883458727543103019275804774989549676826409002429008511455585267387509026736925547213480204593859724035304565142299594999825994461370590472439468119518233487223685606099500627314120484928716751604997178696809797380438421044156538305095181392230429824233119634789299182122643926674119358838026701366267513340971337444633121549245055404135689197337307345431523093582143820691342519848909277279594308119670677799697417312727424479606350733715037852643297567084174380397044923849707655738015255045549277284854131498778278108206479887520905803829060278150123144685125008704967790268465852239505644836951333575623360263004717689574808883308442745071889673171465357953915425430205577258224440582447129993794138848372698609176643461913237209108504672352942922808535286745167920354252585542059406008142231914558073669989749705485843116004803835523767071406801630997051389879812605107743295254567213698989609061569930219933077901356705523010449582003209320942068598625348350811423808843322191619522148033259812851082924842355434517110324484688153352272217639305232718809587064708968069830490397674972129913349458725628036042296856588660567958123712384753301986370499927897102325533894929684120507125188596415775407186390683494618464127330731875068391232750533309968256336340548854242994163241635889706081898002630640149572478400916390145420153337396967132181848146050415141402008055170734014883986747417727230661948699451894472016420083333159962591669173489905858874237969627995915148371058302362130205855309087543707336226263623780125644325837758463231753032580413320623219847734900495001804165144280046430744498150361538157621457260149097125645231294881469436828110867748080719033850946281180405457208120863045323316093358383894733542168626752765610163421925206500408333090605664757295497168625163409811433233689399591014543150461941785803195844811217070214629357359746851095574395279086416923500838966339168581118110018221951319238605084953706740584408873499546908527017482849293105550902250584373018557026334611551533993094795008448580121884749253499052444468413021653824650628555140774941562899828437380045282333411820875310993343515552643134748426736461674391377865066233245064577308984739513755625353457690594529424732699605468581260409496008853996007094848317111459538013775441244450080812489741940023557467163732755387166784607985769590493137018822147357458878635134437045903432243542126024192426077031248728515318591567082695829118556416221477970038748487262987440447941248808410792186535657485459249580160063333804422907796759355979885132863534756561130664449564972908226096802566571381702244728472031585491317135326428394881881592049589838352595992818789233480514562218967606876707030265535106470795128699935590571051857073752651111392386825502380313386833964412733594200404066225076774190729449139578763603767524400405536939029645846660807956405537636130421149010597767864170532250118150149105484415692682386960358155213522696674434354686148723117776837265091924537329903898280269758332433303515387842633565533789576767586304392081542148175589670933938159006402038916839158379430681719770277296602538807944256027807909580885489862462184262676648654232365055075093513383611691665958172899336679082982020766981315869463068324348066755165030195315417848200266104054256916833758907093316895611934272252521219973169564411837387744249001665899554668685937177559989989967222228942722259163017843040835025302826602619797742018796386776310894021178306615578910693537491058274622128409769770300700250631477379232963405786748526647512002577893817313787126738438611328119069852868245459438004475836944257973344875234772365999442361016394382607580605687094929852488674976983819367515364127088397649560806782955465444296723980549984354976591357560013576518315061458739428367366358005624528350145240020653451341403946298254756412753558048477388903194068664545952342994086466211379550659021930857723586235552978810581375334407039795575098018890830332303300979061097393273402988052241452448971146992325006402358000523890510666140052494936052655079913887956012835376346133332608022616222912434316676155763382696307099945638397702339847331375329495890724745165664690348610528471704084481428275493486806267812576162033320405062999117452453862460284232760947623471231386113436662490729128145540072112993781736744780637632161715767119749854207754184010269716651768592883665804391341023568921484493543296233620641582002709920627923863113323123554092656558938348319068290578467029052824144251901247630850630777972248910194667614355523991410125839891619861775233931743481619696318200374638012338016001205595767337988192202298633904688028101154691696680000112763339542860181514522462836307961452622847527463277445253985366874281053940028977886994954573558418372115390231333383471385771051368239872642926672588880111488478315840336705561981072286930374273263889774102224877905102322019271154761703232965085007735831080446050729906740723833714273838806325365719046706107885502582499259892596176339679556992667018064968290605468208303334965333992117716738991297765073124991259050915014684962090041573764873111606832065724828876464443202487017519230329688183839379412976024948109947318066327847067257739863063108200224722302498893462526544581077250041706414501382746293461145106308631873235677033560628579897020053686407485378949864637581007647266575800130128668832452075360166823991220331672769448032538061734318414908007263826929791849099757432658241455247222892796027563464116835739181561955185110240797347966128717528500871409115089013269945611547971761179919026587707035381341888558040289209218190034348878910667207234237013984057336137078577051600790646850813461411874844649653897394988059042579400300906032249720129510574599839733668837012371789336574823498102896665270422199992735226266555921463557741630208528578469362181505027749728799597148315029969071583685765837122346053761358995418243530865879246974118739133948473196304081264804011444751163196116360747340251360154589079724171704250446052131540034446434535044878327231838975174605666699422646310723929651089848857301148592308705569498371745284228664850221331418485540577938998082685837452315802953467975929042172118642606107193263169462958117575998297250831277580517058208154313355442411035715096139711304143946949839664925369235801268079239190633917063866908817044945059318923740102510528771328254926040960860413551711529867537887927510349482057262971616601982383080929407782194738967440651683271053842865871998570593415150304197822901199866739957229499775221295217816706188059424252072739955375640537205880809040099377225761020294391744951750842579565351436744375840674542127232024113826233242155439978187280370294512942400052984201493757478485571756542230126328639834428770700897887892165734916464344625769889589872765991041850685090666128562822461367157057412348797536577421409686591730308976932945922533134621000651199563938443034375068978968142494507855198642010581895282663900771244880173583855236103154477629977676967797310640855422349731197846760238853599153235787793036851272845898385777838293755752659004182457870837051490126622614009554289840178449252170851138345636401120021756583303947776442237314605784821887762159941433782425249377989967580615805052804117896447474328991683364886453860392806361758069074613371542941657956649728253907220208320541424186634431742700362922925688762714362781639252869968528991050635193567712328238916103275813566110178167540665326232194334859218360274184101712523846877322671316045768987672207755739557644181022164907589097033610020232283964095196392309812476901922364753543844727017712365430751388447789819363395532433708570406688046401494171257317207834929441276769140064100087861165308443651949238273430375250200401793890289771750669231372825285634569644253465691175728676689989140569998786813362349885038452393094840402989553447025116203323649965035685718692467274459909705907943376170838799653040483043042813266545148377524735127360098870870935035749643998916083035758205734235137548714745415735689059510818465519167659664997250897017877932833616184988301255594076144625130303165672161749840525322808880148460123037046117346086181206283252802283096048448276826952171792110388636279866604566525702908001559072099320576950750614523873054421859308104732398845392110124707427706881206476733826858652704029931917172432927612212514897849187436669397623767517593284474589312422169571591185817400485445522004349989917947589081992928471734279662603762417690950055452208568235044524941119409071201725632089049179787186243472482705798001482908355659249077568912133460240990726865159388462635163751749429285877037041638009485271803534083234647592587553024740746335839051336820951532334986655394979335831023461309810551716002718625435527455068207142070731624360997092188324017183682240249470900655547111726485605833038802386641633595816284306210718029256406109095135417486020563849084362330838583233911110771705427660408744259706658181862851922867263993853572202373436839373793608443971064120501573406160796395383097288786761353489805621888287327415066386315069681154779359979975518269245755108568238306170550831622723777187529871637629663133982506617604645995393113685609731462540770133138006616381611274130049212111539265266334073682711486910125260033242309262406475537263185459344768221059647084450482551219070011038573149454674116248668721608915434044050668663797094711824426377030237500605004282599370949265016171695865028141090777198264110057501010345847901520131237306489808870774669002293309534402356033563922046010215808904377472908115510596856400623346270826620145701228340319035857792715383895529118370123817500227017633826126733153152360006895384267301941728270240431229860559372696519171849536726161415331650056576449622073328545604137024319178743757962414192261597233662414774588809294176924268906903222727106652457487079248882620205488254637844383952337968457584691432523367208753318749294468442804784664711154834778092856972212727219610158832987346552471801926712509780890071389808487779253437942200812049527759960233608304944767446627202569132527272907277741136124148820970834704264739716988490739733475264504768269401012538188849495904300941970934882844049822567354857173596247016930301322781010333891946017599685446798682145066574413671914924368263781589500187843205765762150144718833180118150809529814466956895527052594724778135484856547754182032209159123372198014651507739824352931743109524951296525254254129591072877717638050291474092307304036346184296928194422328929288899054625951600015784873602948072689261633071907498296240958943974286584935406713448372859489156614601831532661435822500146341768404478790171856255355604319071903604665647115958998277513859105433692690821097155497744760067889290035482717248187248668391038409583259032850902922103755336487253886167428792405952549491561581322577437722630792561674192103005443468608772202714910669233018536537454172617784871307917045636026128864079748798656004701419192159215497833308774030121790335279149117474172472740278288090062049911242433308717008544579851553994887107108300467487299562983225850878666079115820544174018509623511103362124870255008482221213301935093882775266338613803675910057582292356323640534155659258065917625411946934094219711911602397474887055557859899695507623961772002854860619561878581831664457908169199500717453455506169322321855389837105791894635857782284192243556339365981203349977065353437010683388449110804535382440597964034113463807676375070372685187078853133987579619640866609174255468930588434259625921331753223207428583328009811090100082080111258271353687913630877816379186828813406545602284659256052971674440658458219308184118349415914125511053195532787771217486059014910578992652820093544086057455151337382955201906272718134876334735058841518491598452671837664564265286945614007762224480648794976568989739227359377294730871834746318511695691872578685164168486241751306760780474791023612077537859498765817157962099593931134762803203559970293684377152558404974895611196575217668122943696716528737712014569083967847898920113303917463660858185627188419695361690758487998476217832904071022682830707064915814898346291355678537273501587540668835599577444751178209253387501527741918862248513505152820382980248362907231453475662406148375031317571781826788825249658243550643876630433912618809294013887109462070391326600109392683083212619644720303203817018552866575753537054025861639216926074891912960281406684361746255226975299043728450805609307761984145460042710559352386271140700415706148855408467115953609054095403132218719160228618368295082078842883602035415788019544162938209330372421719522994454644777698928631766783389892972087696541183589268595222557616225043196318374459677627322443497745615415785144560836267519626845910636281059557324262204595162663309329143010137802053451999846509338925990872598621359177744390882418520731234755990356088129081064028932280912640817407380051768501416229880772042294128846154660212685078088410917531271178623377223835708796447447280711841954596062368308008583478040273769565262948941688488918170560546037214898461475439165195417324332882812668772078899140044429520795058552133033213288171835696943491653622367946101894206115541980811253918340244650507365630088989758607083551252077857828130900026978209417502009648448986424485416779478873159719384212232142377116016067927941780847921527013088834733100579964324217431141807593772520665437518288538794448734618265070772875608924530556481745039111501360200968122103524501264354633368541541038739478072618796992596614997670921821838799596083342122855359630332189083759742757749117997748603096582559413861542007057101432840807598454427233538219764661160484282562037684239844918162392856462606304669258396784932414257374390514818267631204873954187202254878330413950698914882274983932055421226799240440400738566153606716363204250581997754682499584606558019113160594079701955274394008694917210657537428630065162270730098739919562015238242464061704390507168774595563898593023751330571617053080664991299974559513283342118439455509107382330673574669802210578229066657709238238470028548973816341903406995347497544533602707947944435696971622670680439639133736268418065106082121492744750372468170920304813442469604172720339426244206964642852913729276859272292493169827588959074557559406507170615259286913030399652534186501396619626112094394103286756009397732310029588416226413211433577235427295612254879896430250169071074517148901812427508931118539838649256524633131527085978262169122478271139311871116437763879819422384311946015191460060400340565539078263953946638036130424723191696869810385122076907701118093368915822891992793705258380758747270572808592865591973830543355186469577398221900772814640914048196940260802061045611142935481189177810534872585309531955759691022974499641343441805947788207922644738626198972243470396270047839577723244857640606228894237742760116686527459053663593584691224496922930137846347965319187364647130911344042459035330626953854781027211101145103529559890081626684977767055475458581033642891913429563187556371779203512565808592315129917698686980208626563541658427606277900388630541513098549125046393973841943457737000732103567815417559719544248999976053414847803374590786694501891739159843588065495391437412817954089350125141025525905306409860819344531169670227616675538780146508934002674572821999348023568826610310820234015821374124282913497354298658362956781894797884544107427433085114086405911220629070841414022716178305172799448150548581885824021152166136786842016385550483763371018046796207718734907327585070750201059519080023759355122440173986894931417911051982562443165551978375787504297705365364308369209402966909769338691947004294178849118396278433247053316882375744295875669182238565996967727881938226539590274494501258897369562944628815559115044594549369512994719480398163989658683987297465584180627506024289498764872980047140956613716708667601594646168306117472785930510615526949128782402092704345195484045071331671549787326934603766625130005341081902385405804676363564182610508512414557461557441640271083558260590211802537491092043303879651927192455357978815967692158750402258836727814390383714709923806540827762924045404443455405780318966618533309606896147449922882298010561332753477298309679659315417816243932164202360671880194365831094333938743775171909116978656239448943076734941921653349269007251256143853775628458281877621600331111848499106985411945518838744628316415458054830936517771211141588544003519462185833874801070535064046386207494541120178025743849325383412867273755711516661053481772187468374980165255114695204681133236567603954721907394556891841339338240506913459821237534539665698979060390124594653388157106528053202903894197920464402385349936735510739876997830931311394757756267280642482190144503902256999515402363766085803893397116117577668160247112937210687389728416557182902481325042391848291831950761519123785180082609750788874148992328524960619392928377561985587776927834091721134163645281044186442983170806773581285489660948288376030038612289386352665880614601904181450834225587101046070802359370544194506397332412524632144939177754175535290985992401829552061668564920863365423390330972240220952680575948026339713424754730584222779101977510450770938372385040938862336222648965043980519462942837887121560597121964886877404782063338873936935894171553305437405526903327313026752178572983039871979763133872425277670238845790678150348868791986869166118389735687426550120629013971431588773405230279469042621920995220192241424503943965479586998558013315851199830916049354002963715432443691435996907429308068994042776841938626011815920287797375356670827721223412910448359877107399308765861070366630087539127716317546373310718213870395920999546532964925701100153081885362678766343114906583781022882880068470266798379939555350151246036660265668835746796048396519359128066459159293924806363219143228903021437756802639170610956498910094657706728037500007009226423155813073955521123817812284222551834168548466277725905730049459825593470857513610586093306761335590792866605901030325510726228700140534862374982804061028247411298266680075001919011769053192281660247068052865049349928606180712713948075923323707878014734653268957760200845468677914247077437978255283432371297623317624634339227800280483364222373426889576951754321314646486382395414775056035205668874345557198469548218575033822233376229935135066432470633793519193674107908023974245494113526151852261487067508497705093799065240436137483786180761144772072610497367450211903457080269782542381759330726124853372337148851828944499964262904200438492769642398131080520193556452216991734899936470030914998182565935779639438902032790095137428382144596479413732391518794159265192639139306726554195481080632764865713388838931455575998062221360832965805440979746379434820426588118545863891571517968341984572018937748810462439194777928221521701798166117764716998018214642968597766633843092191272762580217073795905251054366058783242785021510365239790310704502579705901209466338623992944726797494781972489164138796623798590500165506978871224437282033927548031982191316918359132027230955714907726954405832336886560851637289263779053838923463106422685370151229379653070536386907915427047349897995031334294215913587966177896229918813713528582695475783883753969769421210026984570328140499770258277599353715685209631631922743961396549074685275854473961018000451494861478362765509170011957000220886861858778616887202695233002930543124748910620639739831335752717432758943355923677784016409538416472594024658291698515013906926393664989617800501575346984139034223239677295203121072650064211821404283562029240895697517173665557404264136855695738439964505057657033658302675299346620949326556697874187525497644053208566458542966066895093326002926668330589082485377440893441657981457835372314472999243057047160900207762956069174342224359908250154845838999456244240984295766527933953613532662038391968968402602355317389517232059011870950783052011425416409302949392298754272615141990956579739571486016141092721674326932975381172228824811884348696834805294423986856770528241678525180210626331560834007191159489896133516260127749202825821416534932870822092095608179770240279621501798444531652807788031479381626479424206250151615517026911752596803909112450524593309957628313495571967076384691091892740062864232078090951053187469658597190611350624158321268411317397771530123364410593612272264865559067195661213864981852076117035279351626322416974961616558829133229437284001108280426634791726109340820315215724067773047107003318437247081712090891410817992384360938603338960563708416012621172157481394508089689836263085876404325400698497211343421489109948220565233904317614006105299279215973545784945902422989218215222078956697844000827579221811829908587171886645970686600476949191801549686053732015285859914168486746546320702359666067569109848630603634416625140914432363550237240520939972056363059010398122758872329757185317912445112510570421066222358360538850154792478231609864804664792717712637894849878800406750930238563802174844729202737278877479273478160169885433778044967842582159789520275435454187758706650168078192547942436271015742136017680040670163558026023508226463500534901409543091778522742885355048114014124817321735734185835684515447633237954150783139866777295138512494375693918149090797026882402954228097957894842737797229582683427058178958697135471975450888078755710271057932115030609178482652348992254280302386355494722544683635938898862165407496170525027693917423238872859592613032531970825661728508338738100479468168346752946590707249295515036618524341911863358112015328716004347327428757293405465335062631022104096172917886953711243955921199711702872832893577983319918135317203038768325722924166208096915729306843518885577856886395029970400621578600479249866378135728603105879283121180759205357074171506191453139651489587975419894663314799789112772735168538376087554601805551142677867619565718768398494510726799619946057071475639485568266874477557784265443144750653133695200660934790400481543620923148134283171835788059946015719668859667820237526412998644586996925609815441889059199325609635128687780553103978539085896587886593341474394038132873352748602765355697383002392858454300712210962364641924464962719539719713107028716087673793572229146364297265084462031563489534421384122054989919513558140080576089173166583503243690916057543785918367029144313418623473529739618704641416093018275682421089452044320545017267081227320895658571762283595839001081146194987219879585162826631215870120882661147003634432187701504866817176908009874882023366717294334549085885954115712497827392061275845526222731716029317046383817385552886384355607769995169165590572059859849396872452022290398703243117785487044844383818737683735781036640164689296420625660832686740837227233178959387006388722958492695861849011463652974652468585957775673317961162634949076964730264694124535492958553369131772276596473602345036560663959627426498552869819290222259438350678676690273917343808138459708252263469724233505114060215513199989150875188679367446844807003241156153086649149476846553528485719272151357646000015412217053829109455872130098537026777763995419736066654071679295555014907696359952574427409356950707395814161573358570030558360592201680431178763158496286110274674170432910443928252151899398467677730497272086269023828289685604916566370116460532000763807405319995686134910067599294335596775525476144948335993342756774303178901287552607513555344909284159893935535285628965959641292140347165281034162792427366555334278274620967768481580669715062756145041762014842075259880547709861954426670307415056402041882216190634599911239062254829862155418426222718086760965541364947512348104971115876962947835859640249176267992311829085300932659599042320055775143386216105406623722203946125766815152896984535026859200775501962951582954046368539152258268112640800904997027258988158046698587575313045640434239457747782734554372049461896425428890909475661617470913163965881366566330541809084538295341033895989105487397935484959762397415272149706111275339051475152325019129949772792214836031777440895843212516161165732455247983017147763109608656070756132586778400243194494676662126450167372007945174752681045095197925805961440004973294063470955142687180822375981243784595524926301859379639750867308268452028214819457500663970765103117813087985407715136048037446231359310978834828686153957256396198885182250393013581520930085430879406660196584335387540136687911394876458186729868401749845506339964130633066302739904180042564623474824392288853279572165412850498911793857266628339594225997886824944246426135879402136748104350799477720965958241770371126545295685433448111358206482471548293953066687219757294567924487114577185773395335651364199331473917027326352791769661606887639848089871642603912078521839333864810752976203645716663181192863901275931024318039264525007863540251719415319069552290514106391336033862556218163581797833901293585751566918720549147348337806757583943075822774266354514365468664477184953915907979998238085085383508201022874294012592082694596492857597048899552629296837179151107319563003333380193569453390134070071824412310834426886809140282825479699347681185169644473821857235564353243892645919913377394565311043106865568004747746262828130612429376017695369910653314352881962382964868932993060762886849396028699883367073739699449917158223202170151129995937423152092081531277190262628286392447993287389975947021294191197176750497220775078625014472434370268491010562706392605766511070785949052727550292581655906008454975000019083155104358948545306494843261811035404633427728901557588208421903348019595443841771609381838999228997271263876656951684400973758685278956700328400951252420990224461530004503564616532349250497059407839672314644307560549893973743030592905000645520055129017757806854579447364285749748718754640176073810943771197988888052536865067889395654248779704783952089520241540260881621741337005996240319755736655263859282384953414277179319398326103019257675293457411760929479090972196704454843666793128271417998347649908014257785354317327234151946429633687001154308684078282181499837444462934243940799886131708067005412056908811626736335593769835074876145797017947421747661048038440690155273579857625711154447124811090580112420672905202564974415791279774392731794486185980234816014268623285907287385856185851246788325318871054224423878591955822882881578826234319875769040848404883307830460555729772735972051561210761235719942197716681506087474776922248167233250937272139997108758670037861900340017676733682725205293834439184848487796025451312419200650717503588849508651778459561213975468943855721058856240594173002182528368679963091862594716597460088774655597053114367520173358200921309365238280100303120544289017661104297015306657308527823942185482325811368069034348023110429432625808578168747331944556238494723355438733355433901887234339841247724264937727276962229926238069423423918338528063223689622726855143696819677959465930852378168140393443025875923074002482922909217187436152103929786732802033585587860959086941555045017126722286982942699758435117939494411634283553697361872764533429383306198896453617618716259709284825205609052447673630018691613217235739194712247296202573872084377315151094473073915691132439307667911485040595986988138502141302460159709078008132108931190943361705444284035541685112924611803325284345022960471738512320237906257003549988222696268722162480705741956153446559491220583390451211091837780159121485412130531644437164966805576622368778308939881586396501316439210194143516368348930456615171312986659890215356149996998404162407474984681237110838107605735831022602153820282230434235103676699122673553214720035935757399443099672748535540553363112990936564949865454538383347272920156244468326716170111425490722601316908652597836606704645132414527260092105184575338565817287025235019112725778665788035679293112346390665537672823747827446917976937586353836246915089375423100748108267341801055624579166227579246889085626296746451022094233427027142762332434722359664840095976095983395423760567724185985048316584767827649081707708302044710597903935708766349053622734635523605806349974098178060258682717192594352571750760266837887679535717834329588879618143698639988678800731500594174614026408025719041059584789916127321952464787445689097194046710355296785315908595072481872242549353737197858182825086503936913066534732197408789636054211806555277484526215822242310552147107924276972572990555495364914068470173678470397448258852704247632297355867341646147072619327922928830355315589278117509825969585551427324138738441610907551935573680144921264149890611544421894278325831360460577071021995100882742790761319469060903354716352352291617147816990054888547956252670845053734919304812452368574663360047404835706184753784426695291971413181575729254705622345664328806669495428016259933556868086817103242876566832743008173167537993445164821305012097851233866099852668273548550891243950361621555601433539741009361150571497381383271668228736206308635233098077230458017953646212220522837932198965504844988728954653395449843992628873356183472378690369800962170285738997568293698610291196056357816483661727685374294960375604572958389806853277081908597159413507000657093396961986887860563370737143976554390653550155450953526841668267954518902195614715410495102014164559928741161413199638452056185969434737105120869219807952938005625454564983602404526642478545677364716486744842105539542160367064790959867735522353837486071418178073129535322125008386729083259083252510182284957349099339801360689910784209768526071464509306362527276297043606358202551299318130410232893286375601824563802765397019629703880336368877875167584336127187407601448188410864341813358416062329539127755337807725725242929181275690256608637021908161204707149618828206509658422823382954641726817496820201138785489033468910138563489635032217298914757505057759835802711690406956263308809633042462693996025821168653296015559717471120299203504050820329069610416261888772618010577034617941573235190377411462154054498181066533497595320429483926369845233654556407133120785035053820462422514484009851052083980040132476341112361956823097672077739316949200144266683636154383857921932223511514358015794163679692423921797965597836471844240202088062165549132660535772282429180733965564686258483080138827231576420829231949594260215750540962877547865896608332164644516817609958024412370006937414363531177847064582173797658983436547352438092279463267306791462830376467286781382426772005794450660775048099914759988518295179885770790523778214556242275129431205444659143175300990031806710453100076823997584858861981314210436371331653972116180899526715657760719372215811006718653646566897330588886748065229973923324155039731671539609312240280873202383278199715663330469177693626007178487819236926126385444901751836986674552328044362264294049055887731790772300598135667761138229226440302446535475828519563744425539379282159890546201039301701674004582455908800674130360214496561055576682999024334340141466124051510953293194963819372519690183640911415873839239522941622847394977828874776797844530448798983456607890727657337733680667599889204402343274504987955888961724444385056030214130277704769066353627404814183064921552465230635315755786733273573654842393900090720015107795882827629323927320771384135074810037783556097883703158961132228243707229077838003990984826087345812944265530425041297028786182813970796119379527526518143817958300305371270175258203209721877282568147923161999587263336877349164407998932826681251500919474502925469284602057094206193796310198086704819608210005906980645211982913813725370977546024884142276459166565379510478501395317215654249005838270535930077163568849206509094639152316688527715577282452317020837946292897724134848731984434713878454288265384155881110697656906905189894161896920176800900475546629332589012561533788101793755465602985587646856454004719208064689834397579072363240466004061282988138432512735011515668673222709044849557714649811588640142598790262400231074387240437541372379587808128094310129804737749024058861486855270233792334072017273821210133055188466734171804581539529635039018334709416916199266650038163215908980573769497806020437289346628693309418323424567501555084702396571616130357609461075944489764952520786149095727464197579944681864488339041766934509197965408218420744114848806080439364675126366509144497618319235220870811248706700434559867060455610691738557373406791671579744324359464009169842166649101459306698118332902805226362437776526854425215688230252869308863876194254428426244834964098945232750578197985009983016120849647967001787531451086197177008290177144982174238960177334022598015943246045945933724173387111770870591706366754147804388954338582764719708572997672877573265531144721446596701082516478568706725951460302568130409825705727783453088022157607264920423665606396394330742293201097953522358352712764384261168579013073575712984785692035157825440042081846687154679681011255051362435445135072123877807075266764242906906944108894737055061026763192807253169216925105927513310494579012827038737979529382835783931593703724929944263060008323756283895092587373597409912775526344797804946518989156459183210713227288278557410188502118140518093031311689689243594628299355062641621594176634994082537893308952155591050367304645176404010677991839297209448245976033057341398638074165728068215519900967256018399529432133915736725101991098843236231371034277514318273649595183599787494305735960601743032000533548094509979629982913850726209387001202713890154851177420899720883150739536409965306751449872505091186859292891609745043576339015568047393214994507407360625518889280650043814619377429908535064647929609270849276773773599553172882914710772893497332353037510866801995081814156462656705853371491796397154375053803740271965746498495937127220062969069699342912038303098297173828069669959368736989191042815614867376965850844562991013964861535961437736807073155304065364299334079544091687409760525262004169827901267243760509746819475429729548520048901827032060146150358322851754885957512991156261198506989869107469090543987867068985539657994977606544903951669030415539582350844776496617761584230831195311145054498274602191326765904485036347326787520769442031002394708400928116471657590528656329006784897001640562223696482440155887369987799858156077782165266501092770338758122653200676926767470106512896516634273568482773673028559418053025026231534070912762767751895620120201257349170097197563293142269872086880973817417998854518441447754191441554829854359773117627311479891547327956425457849602854650030348265478565608777274302342318832961947103109596960497005798194656735026494982503461969567074277476254083323885979849510090363439992055490377549977528195886396893838096472358442778984560693417840125607248541308184817590715391934380253427602166975806989912343026332106534327469929433325234031265020574497358272021444044717959397552994707945786196951608022936235232821804863052809176777526566601729091662350057771784261231956375881675454652858958511499292121305878595944570246894708413174109310518994372095366633458762086071142081984922008047032258824359300585347572064193129139289393131507701678461531965358689414211423284294332785098928053837967713460323030660918674938811073806434339889499221673939695196770923144348316719124341549173247618067053333902745351893988175350409466788218366309155917193049654983831779034162005852536792822247403898245650551933437672820753085280042129507622368762839513683459369672224998068088578978231986318248021365233880201492347005493509851150216211926096635763787993220235476742275355657547229548136547487535017735257633359625097487067618515266261812707496366436372722910754478137732963877548473785345121134033862667586310094837133401095052104842430539571010470309373245233152801815448006640307961208006278958395380522443562900180990566260134448114769224220428231171837769770667779294476180185833591263786594853397575445430897122306965046338499303355415653219536354697769021425751925043113077476213259284484819357352946761602385712357098406075443206239458598312344560814446895490608994867979044166659449119131955163124653573306121508628865643261508497622525790492610932618226278287102857475622665565097384270518084782830294809228403333296531465018745962784612133874504594502939075848268713874063760149154783788847485426095719671800411291479641927093603620357591139192810963133795009555007753751115058068761580844280740257569489650169744912009877503562468513692758147975462442408833516831560766664482254592880653056368856997042303944601657861195890721305768255914033026724541615662355660869536088115603319085771639446688942180325292598358111283287457057045647495653383774890293111036254450613304552653825113817161687295785835692882338213936627589773925175146969805995836342704063288499753324165769748255908524469064985359010637121016678212166001774185429934363068206394905566936962697503673909969920534173734213275941107127641235570561136584181420027086424341307879437267410621832252908666656822624643348777620224761281469399224860942130091676646171440379238453076627670711602800842438327991779885980873852331358533394590244329846223625690073405113741640155449031259132643940581305151052281356670063274639227058342810606871482024845580270995391744659938462556938134208134928992019242827721004881079318468894154753958084646352766093231444583060370119190895704708727460359777412351761578356444663509170791273387821223045564256875552025505988513483781500056001962988176756400448015068452914936061261219087913072984218153044149126582460905058955995696306008896673074735342103579801870003113641192545189317992909956236345402839205929744765755796700013548235214513081842051364102833675418727586647908392166959602247983511052527854887083951695901241878997589137780499327612801821589922176030330117611003326142324710821751709725710733094583545640047780470715600695924212151273682473022587941950790664704746571543215447479238189749305025831062047772872713369862189761098982624396871180370903933601920127483999112425014187363736323649222659948082848051037456376067038732556604621813994760571901090329455892325015512576935874001323046104454890120375390014495012342120800649551453827762315605024269979096535540514100006618043962798258423947014349116412003656319010818987579614617712621726223194370507515192889218503469077372844711497210809812595638409743024640588301393608201878071893850481509206182163338693995080386628080326926592280711907974413550524416870704088528138034157278868674484918216167235837980214519604715877553582735842178347303449005914387821945021816060623740372957082591762876770031930806160719865406137373684623919762127063595976427607677171447566085120781257142376845703652873248373276653534238830538432312992279570950271022148001989220601531480653361086435106665335805910927195774112553318421450223764856205701195840197123971703554331187905631112340383568441105376435550762473505918606522509904061749469993336917788898083319673996902135769475598003664573009043935250671130552949841029844291742217956956130226015661883560212374213649383505054043853578258413107679791271604083695202190286075792598678812427385802921896572271461114767554073703730550042711321255151820796576462685169345843983949417616741648312283346418225537850748149920128654013908680443193707112560624873934812549842148037320555089630538946911829644940317234714439255789980609893057531424587779769264734308531134166727051679513285236235686220649361269004666621336816965007955318690031101286796484144599920032017815242274257469221540515923981421056603593877097202504440741932581669828592168727165167873038097392993029274769206416804877327208007883362162767229474680896986786220991043351053332802005800003289648235318283415669115405901048796272524978734288400344613770556239038080777556801016708365968610808713024879790806571326622185548163584308718232338626539498131728173768219920258020312198023370392048654005794189525601384907172205578387208909672213898781979195932271476526640976441718756551191384016378758248528472577072666579201696889034785322946113585398224218800424695275782431615687948653352136532878786901485047659323015473206082212557074222204930272014979562272011107939142834426808202223939171162003553505161670612332071810040367774064485630166867950837699654973277122307500719499688934270731756140149231057983558833959671175035964928216512741560033270276493915096566241883753437843057845495248011032110213538726455544088208152939569177435930204026606299268937874984437298425825475012641355327181204775803951610991203769844093542706290695412036663790948423450413294286110921012013258056063376617487756138894213499104781643121952774478650532809398493348956195392307425078309765502984576903615083244905198037028696230976880105828075828446639772779445140234393928021829109292013285871969474076816012988508027248984899456942103469438491500591870205627863264759443605809937081205315150328609092425249210157515200479059473773262593425744939162874138568285454385743152825777360986226909233326142744188216702353699233462369077011591960626474523938878985254585972082612046406078742451734890458065153857077497044936462540910576696033474821750101314838267059364402705891626387836505109737238217462187426883088236359823473214644966247761213174889323843108367191850684741601105721682358816396359199814903491246909460551488328903854503620271986138217418217960470325599251741561968358371610330714024828163775662608612338316611608852548251649006242513258780411158664414115131967049459527677905321100203255356699031405080603878965011045293950189273605616372792586792984332758836657270074923059614395521277664250023440454252758702692377454333858707285010595070273144993848796028141500875234626031281561868719803100436365307967221611288679918384332964088035080757517371315991193784714293302026245108791624689617623179862252950859037877394059802180221874227185277970580989479312993228254745385270469218724919173753194198766812616099326741849538273739232301600093903315507707055117716181441058625036452689461088770626542083425470601573843133784598614887251176609464515431077697394732716754859296144694176473770720381762283705801546859639355056671725924257630517511057381027998237205586685638616034561301201012673806913115643610082645062322436324361576968941435793648287238885049475723300703262950220822379345017790482998983195179474788355355361229635161353467306710527741613345694301154788237866446272798954479318024406852235057121344935596952368933052403331773919118275328557541950458048923812623045486738892987191680337144442913500385264596845289169333150107639115827190917035853617651914954036316055108399270060125307518568423449923947554987941966500897260484610518788335767104390264377728218240118158436794745499696326609371603089542391113141806375541385766286528384034648554477998373102749673970677904407783657087829530600317175763049576863654971536268777575028955577902597095959214358098891128845173254457438985646633288077035241556731408525375762388781924147271500405520171953200824072872335434844277589956613395004831456747192646835245830214423531047747729716307433692838080730303372640691325672939639889075894667819995807323869404918104573372247804933292839107533062172875302993575982717994127799882179350921067628037242776639836832279465327071582887247652439799972152486596882390727076506751471753353130790092332589718769304219480341084929285279706241097023843535183244849568308480596400571947864326834785305330978391888287104070553826085970862664836741925718007581540007335497538763629253000621590285516632425886632973893487096849626975030531604278803906640833478810783564603256656877784394241174315040964970523227483554628298244036926253821482224480717040240730933059197197395720867145401901171728896354060745794942281989767167591313530357051328204012922739889293864925114546934905963547823115614996669974622872561292044807512459933874985927619846975877641872989357291500027221471066585459906855302602655602555252914634939596110534153558913449314908977609439259131710046964284541617264992219193858879729519159498613921664343769923791915150943037087599050567283772546109064690456973308977322098921764880436521236173924113459443811603237753464658845498299777671471255514990808584689252640467851446404477520877698225038831360368628655253109206397250942748920755310526919547078174020407840530948111210929415440037119661895399923691674614592872896508554979126742996411667772635445802279772159318343690362817101489848824096935506346820212953722139848391546953661255961598402722647960045632878625824507810180271979427485492487306190992216703089885103031767616216743873048258602773857802670092718681167193593394895139541102129871259618517423631528662988263684418973475966505886208366365233627100823103853520771865600904796338696466206989611663257575928310563009941146865912379318173979514906678659334917848816358310128145813366560585561821365028569031076250609525163757102967004766272352702177856596325261794735802312362025594615121813163475985986284971194449948172809596136847576255721817542424009999476938654532176475102157281908502604568442731325784862467085313001605451492674203089134431376455781016041623598775963312237921548580837925247855523683149967526058425645560014101855790474504845077823259608488664032478800728154538028767508940808061083039424202719007202374832866391995721393981179662599788510769202086677407267137433388013092369169880841309517691181445267955418156030482225171272146371406575564124402585714396596540005274578410691863148973955673247030064808169041358426024497912125201929708074241628103210736058896454696366194948708897800338814500357248473622830622075132777833127852824947562714687362459849421136346883550310540865518701947210686833998750710689749627944989465684286781584149182182520699665520121057906603528716605485060310320218568872136440580785973170927232488417402594602585739466749853959082224316309265468882372369443826792083393556627215476118840000222811775874563616836012544651157747280599345604865617226599081949226954920693805791358505164277522543701371623599179007404073545985243914710434389711313918719321420526980472687384778799533334222507355294417774689821132617681598778413453536965179133468891572671706854568902425455851982806771321034323718126138454154551916613664521296938626616364434452222362496345705773226112690099979410073389690067068236413962468141916871671141004106840302768291405151369594612162678247313944826103474903505534068969299165622668695823449583033844437185161608121855913261205891917202830006085851362794805754926633379217965807604878804948609879905296821859839250614581050319379321370542274084107221860353603228995424988345170287771096329666447018451750520441976610710900132189604460845618565428389687677248237713394154676999201540200291088576369048719690634055187770640400604585965320647822879899491972184998155290328200067257548576094217196384710355098202539246017841252029575610262765024862032462223377857171303564432402599626085232112834752234755710814351026768083429539504030914945780610999070263064734238442557242488780537446581172126292241001505858876298293464267194157747486293749112706339484011888809609673583617888038678694766171292933199838308779772315982013623099178139607131619830853632170427923504508927370773118052248319819889385309774980259770108090646488592442045445508832550010793549638856343399382133500272316551382447737320141032035311471687179079162283311642441028853632722026050049684629592507749626461107964622905534598205126387128794090594792159633918719254190756668872191783028971998760499676670097307902182877024340077677127065512923507166595620440618326347332813257421044039112569172945874974407563117383865381378482905227842980714744217270160969452225756792634787023138388533754499996641279840966543585652225906545704868373068665956035709525964210325771979385582101860471376710768076338023638611846026117946474430053561829076138051727352956217830439836426024509487346028547246650324748522198397055899389818153475857310174014117120632023352501115320883361313727355672801517813525311847372448831886494211870331791921961783530699473114340331497627321002682287934700825193656162892253037651133682704303341780346709202614116409189947552364201192103496044067400984708984158089098446704427873009802588419460166048949016537084838602888791910095363222111358623503468950723429484769842073144540539778249421106614425430683452437454630322830793336849753442705363899205650851491199468605927538643333483122668101974858936824052004550918178584770192535515221680700450917911898402966888927971556706891298026650201269926146964677603996550638662957835324713689489283483886981697938757091897585057599031809390628023987047650411674596079384113531211270610417754590639822900553825637623248632463363219778606565663911908977035997726529054796655654049909168252571896045867180177017795411229827056209383286812037496895618247656420358709252355276577942651396539326187809370540780772056088316926967003708806268939526330724803379183061687346792701380678764696779512733137837086870730658100225054939661861971120289498464425513304652498184263919641252812454131680689257487596862198362872132309799668627037688217725131820027986247935383925451759436792976449347819695188969942360438049082566738315462936005750544839612899132823782869907967846962111283474671987950349379399075843941527627664528842675426595600165622857763816257488513349570861721680651848007697964722893625234908906106716265386052413599347982539223935583377068593846416864381301673867361185585459878711230943368647013939664195378406628016908871055621990590398144514248225971220176761715162310614343559131085969334725345470957023180293645903100119491571082576180718201507154037171775933802576479031790580123756350517697356598952869956020168515567983023216370899470943899612145519711330218396556869928106113871419324991979267948155100952870484164500502291811327282786091469721554599540588027831980396779871798911793650282325588219768008230072754054541977442622234995703348209478150800560682454378071990752258452896156696311465073231650379188501270511890757592336792918185618140894979237133719998868947698720983491590036738147901023068531630786458793935259102225465782513930808997524447447233257427278998649792735288775835410664387974727590475155559392053215066231398561736873538915963840007922103767657076253240621131041299963061293361018592200624424051020141649749998067580298359013097540999156745014134766547477439223305977934990687164993903891806186095537434055315547094757749065918707482168840811580387460140464808352940321020749595268779086320991171986037764721050858178462849732548005905401186041080523533643002416556164127584198393168396283610586301214158111388152431437698255846144034758976137121242873191214174869626563340878973591343859291398748573080348832102741037370236372654109109759803836093772124548836668984812397638006382734431730273998305677714615908245739301828811281529014732385483674966079082090939987492773639681461561164335854225436095843698027802930205647573413289202863335863256209079593950747015774822602672162689863544061731949920991341863424114510211348095119498754861785802241480916514821379499666804043838396329357252108561030859349291388659463994291026132487601467992811579553474239974798600326581464748208268611127987102198735452299179760168990125033273689077503145566712790396141765659578455454285691400374256642305654410294267173821663228127002703609247041931018546154717324325489561055518766885233052972243953640460745900807936884780055935943927402901041293643619228982345879277223024698893013957902636833861688014157200995681115588068872779078170447219799330007334274433827625015408398560913050205061055365231065471260482269071311781052038952473630224384444910606516023138500230435590415372767238731712550433504335225821645500948996582820362249028651405040889454577276413699590240544683078607428238659403313536349942658534533859306310933092690781643363004043623370421619236106758244597989276174199469118607573210454325475974183292547123901925403589697719324895829065649019403678477151160444836370729972662098114464768027679070367411823667705573124150181759346812424163849456368055672926205306170365767099413663345192820886939270047967565201290903177006033933130873193642686954159601973089049934615201533494186292828904468271119439600262531543007064087179532248089639519408166459161594539103332329642956643947359510125303854196461915325185339909641899229891932588489086053507448868378326889043676071793589708707171149383218201385089046981912643808876986713512085338053696379930518486479187800307004102630592752535202042114610440577841709937678359936422080193626358734599786993111639929696285365832560766995663978555059853783915230594100111020158573531840384309659405672971078461193760142001193362503395206320391003728838076958234553841979516224939233780431394376165360674327462678800768478886091129378425229285123028175146095301732673620965269198883124533243162186104905510568767730026554328116186006918014945088540400766727614158955501853744111643414384703289285188969063150725522121814137337100999449641418776524759356096210134620813000280612988807227554767921742205581937923276659941737193145597473953517299056306328956002218894390220096557486628179160605616981542996958763815308919683585431451186473872904105477664395013794384920762495725865580492680049852921965515393992236273084389713743960722584755676659839224787812463107742895697415579870827102120693635961382167698627116080510483445823107944844158373746781735655281648520574368494880335265939404804845346440247243162455893393901586438203422185944671408936382522296862140422610452816484586619924700566786661782625227780854889502471004413259463525163902822385382566161763208458189106738758627327683043585401310793204110298516492373641219241118242293026143831183107615852825337010945268186958441885765177758735251030599361103478388827100042036291864345345776041139776991212813116734830904510295923575568243101638017183074324852171325697174892178831061758020170535252474077180450691808502352917021622555048793558725391371182947283072834943809006996420154612295808538752561948117861266300014880542029408032302657649688347803140314288951038642616074307335102245935058756561968766674296348138956467339557592372712214616294415745468979568000886804285060137862612367186409720441731179943146608487517301720096177817467451953193215311583319088094343117019227283019244452956028817071411541911713171222370827574224068110872534125092949331438430901976216256562567568279260772475835164546331647504069815744401327960231365825585265511897461522877757166415001195814478616839835815114762373571980060394689176536489485099459027864864785114641462883592818926654080254551644016088311366314684943899435187690204482588860668428689076338603810763458376473387527508340925407398148137040099021649568780069059322235076015432012349141723676800076049498412205447934235240128762314450662377371025815235252329363412711974508498265859068144980146038968186998956218018816804115773103159396568442369157728372306377554398522014539139327563512452781297527181016117640316401425093249833542777950533684950322517900627530114127666776294530203838991631776439725758722951304954147863009300258895744694401334500977129342564823507766931668560643684151723579993499052756153731865511628748456766319990439135106672091545500469435662741538493291028331794635359598084479909434908955159226720104665533004400366803149008455579537050001997213791566986715882078983783666630498655621646036362293957144221961802826277760503563125211090787318692558272111852996392915537461341150755000491663381704454005597558402354446625394696474598185842593951520308013476801740486662901358094844461093507712892042828641488826977704732276193025825557298363850683749004000670323081823332428087550825258700677863075361651590743151038263264996817818345362568742222941006660704739412547068079497191962110627719336350731793205851547210261777481036388213936771405163058709645977604285819378413035796804634594409718532499819371112516721237971711212941211010362369591203907716662396413462541808888080071280445337227990824699417576994099023211947181185176469734028032230582893039359686245277903142078182748867155363764002466119598700338426819204939689490257654049286140758589506036306808894677845336888271627639469125332639922168394799394857899150015733188149259093637409941977169535640362733437221759215028256312833108076354195880881219880816979091249338771418139559568228001938145658687287587732272444792049125081604066778088998142681341837665154827951615887792817383938485830107788102605022436204139145481419931578531102478835620706871499999597049945495690989615794864444548723805420252551123706454674651289096195259099402685123376307164720367563555258587218908385845972203375390961661861917576461912475950708550040843855181279780345375824656736774865170815797382837496173786421433931836276453520538771832646530105396125545266242837295514585989432372102100919313899441619777821215227502489269850352457979464645218952563494713094829763888814748604447891516833996954454009932502733809469295495476935230592295039362864451818874348300158188370078708384782267089995957471673969769303168707266077993459159785009816257284473507157195616535849448676602745549918186187677965876592225471613565189941403535109965183865208175820215214651542954035871965910971727535162265439557908155198520316097494329407696061114843622695502817558645384905885682731805981596588972696407517398450198034446821545358823103827306565952546040792738149502540892206018675658508079888972943468906846777736550810090202344268911569854713781037696036529018143048410549756208282044788320815328260209220645075274526837063192611534063125847447877225516195374730359654962139800661929688335117488265465088254781592926648405023190795252329547228468139519083155008853375434388453215660675565943459219692552766190615090191354742604991093583826266079051382219345175457956971554593080991966234402691708331606392600128824770404939367629731979240116547769307209995142363945973127223466193702926640511542284620599587248091719085695397848728325739246874636159367305147029389110299466647917273632410407888557140645371717591359404847397878378994825447515442547492240348440327852372036157476987293274453284638789012917096575324738424918191263296845809805057266179416045077262210951748286926896973453346881823644405025880806149869447255695372761442320410780939304392557257997668045265685896630803257983429000846857429895961511176602089474775519764195215286788283396829090869528762547824272708386406323837571059465557305522511025987032076955285387092583157915344614573451497033403377105409203245501997083612135363497325811121278461047407268120867271978125937327155992328180636810618523351173970063280099034202269407435219590263235376288906610126191090989851837871749854453991583099438786814237155413991023142515487729326586641325692362376123672132010646445395324154462399179703098236104844768279128668065864040900555200074190456879461617823949670715240644028734401363014341751210604643646678399116871041441268157115046740000620319736314946298495958499906311690781241123916571221669316404738514773705053348087587211518398528664967646483162849192596915075039373082564473647996503404609777491814832399123614599012476003978832507612641848201260074385436987567624694442280391457760632143046325381074657484224480527783426383511534251534689479645380100083520830553464561938685154637925493846568436076205072748209126491806308181112659685675670363694772188725366610514909478827140691182900460329423216622802358271375602019003789742872690850048594453289742899857894674065837064972543072677686830286100539114429098472776541103321303365081502506968434517130537278379302535652363732186334389686360750728395537843093410958840163505318633675811197680811517010167073967887873258833368606881502006426540252736350470085127157699359102641970382306552838784224149327129325148573706436472438313729697036826765201556688776301109639078538479407819964601492357337565868629484003734835841119380722840105278800205787760056523816890619113070589419958720525233445723368329213454387729641086304589564382096854854169535596562718700451017249552198053294496381693009826600820281008364321420580860343296727962062195568646369041561133965831388857248594223583849051591472924058066058584119032804433348057050191404976353980275449417468202879096977916090624307190536960588574196308698347977789464602805869825441977331075757432213121153728487588344721799147104331729294753134719163798950525976138517090603292387358885540917281010397556130996029705589647508464294287257582760301962510272607924347088481637509682084740647523420202792788410344793557945789566271501961377580697982394681850833685155611829238186864599794804774787519766357974411865040772024796207729707899561537649424784849313744155793515463831965834573174344928294338521486502944123109178896046402146550959200045753718082770858835128426651884703247230025813695856774068528782164515873311811918962283348595114582969659168091429014945393752005698298260670423451161810840032565092085369676768025753042708710512762518340824092588811309277795730635064888892338293436177059291673449735984262141963729879732396002713107614236695475567624688589356799405086047248004420810251782799332712810530384742974615076973956330963190817419754525107419684961525043382314695003345729903002254077502094687186162938407441536677681535066105374510511723336256998635040720556271977565357779234253000209784695403850312667877630750363022763263631895081160622981686073916958799312006276793065362915009676920995409548286426937196270407565393898016701416588839355113000762357556172866425601398127888958680210592302839729457755820899872766580948097718311649389106921690220127672402060042585161220809495418528361995278109083883446513607772829302274712759470513541394591870655124844777227125826285948697674936254131246855422098684216233742160819443037623617492593666444227023418263893138491056650218022702504907529607194743341668994759371873253645002325228835840175986056964205604462901085231259246955578432400729947537519077005236951542782651691506960383085425286892077840702183437401624901086130152201732363224457021496080036750739414441877748010518171667364306743393720392724700710287877879308363139719110094949846030387448308091181731597845183089940809654197288885109064413353367498452854505905217830691545118571896972224357831187457229997255445880001044460539868908422372345781807200996648332075383748284414709490909461892514812530795772417119567455348715052423166326849704753590258227469322874382228905837083723948990836287583366046520846097914157766956182163374043871495665899307719230220928348045481857474283336857178151873393548319931944830707441472278871554776134299730177161209741571496980985056946589847061411595453924702450762569951307104737107255396008198834225435217615999249820420470643858681936476054160798652409769265067747788017969564856632838348532785093703692878150344808682129725499986902079877781499677288351286346538776003322319283849974865330670484113267723717201331023411993104577733031388870028338984429014906719151909793537650396880470949321707385726809177735684885871655187809268593341806178813482033116438673702183384572125151697609459384385796858185140053921124655805750819434362893884544491924257847018326231590453427278487027406401599102586664368182805292936374670982705600006677217794207574926959835434570513562565447953718009988669980091740770802909915549250506741015583428904696312267797236877282094950846428036707963256740475401625300743255033585856606152489946688618687384893225760292197530644604935037280974409956595104814327086325668154162988019845034131991035846025770278498738261916188856755562029837261468165797646164358796586083289439183720396971598618126232002712708326059912536843393918955364105835337609648167126537511721795606670975006401222635726841248257630538926432100892034832879005177960752157273714430598418425982672086572927837918113045241278285721743242278813703373404217457511728080170844838805535430631688043571291636201492861962466770274247032407234852152789400196504849403337330070822427303595081165932167500463924467711014838305003880889523461267477374453581314703224145228204729596703071875928746271791945554774256779287324169983739351247510080614917937348790818862921765300835197234404042582073827485621254288726581898730819424958784458702370157556431979970212839032474562263635939664116553681962676467813031392298420001541185463930808363564188612442824626273283743816657605276167110926695340729314430727232970307794439261945069868837072490881089136771028155047092386255650504871881608554627307830756850627114905615511927067351150977261470466050635238836818409228639305477374828130660242971491921468178661419151942171226064122411168477482331001399708346177594846885870250398434169714764166233247224313715617856450334705459970585268817464670614011543748196215765954039561626827144070568654157537306573928809164670887625425458429249615853266326977942950703595438645353456625071060467551247334801235444668803602097045669772931231782605955398956375621948297627165835094583234200276598579216596788227076748258963430898479111877900288656557935290259941838570928891094427986536133332932601046650440934593587860246838563068930231856931414193820334741264633092086648494852834287087296986240867203344807044927116393760605128909712927504209400404566535039246730266654640016535240193891005653918522533919543105500529046051478095644037732567661634708332634670461677878643939860127441550483408081454647994655176755236807095903535049101545845396839519373235589495971067106874082771973458165450902358558751486055673487193114300253817033825904627762167234019676922645153255558633472236771423928616389219768585458838177621563025861947560000107390157576861902142128346126527649842534014928962475976970301621579149481673582164626448815112271702764941666183363254599925352922396496499289415915169699666486554158741227932006834822490263367341694575897553081564665242295037912683505049442622036959154747906594546001601219349130139012948377820526654519354300558797817061022711313402484381464680324945739009090538129413621271020516132788935025978762006120057336193818800471293412990334989110855576243925854242384039702469059165866921987374546939701902232670881508962308168303082379243579363224140723329831975734641681561000665618725909913790170233284251275558325335815029082633994964735864027538159967741941469096030632851574128509796680203441047764371116233117037107548640377269764295228019997719868088835047202894558276981631428826803002327235814774669987108266374018867717359805269865040762882836965845225778212860637538100667869680291117503312591591329946104222079894646050167002213383203430891933642398865652377962713787649506022062748673850370304720894385940713276690647745339366377574683986037357124969471907750774812671840875154655387248629035854540716283691841552426109770699176904977052590777121528211153137208792997277647776481429953929352132455866754916296276672792962182773353529059018188754918048308739189187207066317841305966953828957035668195418799120844211309912158452763226364683545606882546637203119849289395078046035978121034972854848562284428790530521532615736142611995346100831185006429896773488117310039766979484322522569497269205951399308832739850973261287254718180856733540763136751724802268940518748719867274743169956409844141961949205888916322771434689162272599467349987454498509036377931211541608225032328456873657582372161768518631145859116872419138371047640820169188463087314346886389159845742490135714572828690441755845892275643218527835673563750466107871161476368019042517061039015630941533752041802147517094792040653733959917488941919951152590491475641146443984287273156102338882945690917842473270901875077652893476184701300170264959315968680745950341554470646246424002396667337902156118446227443770023265692706405011159639440634547909159332319021369064299296444918924150276947504387977209521019197355303074108900304159358713723990176010457479827465931277963189701411856804671852047016852467998851872848279618545676191569600323753935769567881351437653714680682423065823942903710064553339988855727265075284931215409629200113566018772527406250011061603659864628521618769938442812720481484378875043229440292482834300571176059907511758374755242675256134499622780104491579682995366999200948883460542633578328900557764257378575675160476174228096583796291918598473302312658801881732541644084757282926227363865542941813322813781407210268475749038520344512380641519770479789211322250626051095437360872453673665263258641744583413309879191616942136679498901144379349376159796880654900354580780018438044253759695728016251445565666437486580590971675262645021606299336526488977922567908161604085021778925018012279129958230462511983088934285904162492526371551057475918303783462258664018171543661542709772000760872393601989179015445649713045880560592074388124772088434643688901418211401637511878250127873562490469884307324089277462865425006786122524553480785041726355930681417103255762458252234624948157773465371831694365481244980717491045754872961220439291349831581196274948055880156786792711446581095507022525011505645320180464371205119971118782503011098008864232285790620089415569491004447414000460462980593314301351981588804626372782228471121698700872355465437075086891049256449681482120045621727183926409597738580560131633892979931807587099466345031587020378694510272752500117940174706981184261015018267570535367305891455827472123555118979029784864376307795588395144662059097295431059352102762625238887368528791725129946503528870445658983205402853393774308059116011306789971251305890055832404490443624016741044517090851492895482181280362988318085029278039722324044155872677906498324589150254563565851701981871657701479917134593633598796994436395069538081630882073555274470851674052177421273259276633248240579355421665144023004598112151317000221642258085903036440007154508582326127401394979588101100432638699881097444169817846852257140717311086893791916586082991112091573784479627034919317048045738554751541600067422736925398904076362835126483471797984805509328954268902016151674621745306092825308480686956548162034312065545068645065701843051112319403610105139670054353740516038500188129047862092698293602876990964937001758382302619700286173993740553912132689062832215649421519720521096888089620404607908138778872006984114708788015260748768180762919608295601243172770703456352976247643345818927810932923236907762640486213187368184976445604304605681615992958787207097722236844196790282520900534394343038563162049072617336226624053942743693883985472730913559707845771591753102010503069277536060859568426884137738639244980409135436893516125694199566085324064212810099768491161022472366876493128458230308097857676059406333821420073114967936020060271960267474935327435568031551010596757091106668120133409934602878208360202811404054907692957809794777048164367146778347163008917817672387608831087371151559769919629824884580280648583777070656499190964603985893210420377954908441949691633155580343181724049528734287791253906571430520582432676540978723099364519324034842712900192692020532649978402232538079622299745375839581620375040582567048224019128253301473563537891823203812380955914209237332581295991726326015706956699625229659346827756592141736908031846569027655301968491032927754711219124398939567823457624592661336024266209359268480531351169625381282035967607285840925304441977498315097118137701582385195583377966572901240143548611793933142077692624883807778055125659001178834194773631310786018952432994624560668106157622443599962616627078481706571087401356671545839502322725782338849604244644963100002399599413809598440606339062002436139557643114472369353204673807693439339038888439269724109007460401854272442035115144116641120655331863213386467051733749894762459470499271034892754302954188888144468622407284482953126610716476302930853276801738377954264338638222523164926442624635384533751220936548991550390041420165557413407780384913134515354414479936914045446976043473295219399191599080329498975191429737209833542806536495851231710641466709762500254906715489895645777868382227439860090508862888885795221925727808654070254414788599494345431273338466043344609079756785196337941875449315901451684636146803404711369688815666868936509877610299797114522623761052344009830182508855546166599994940469989457632997022346026782242791757241331349685743010953234842817612817959537105014195303189389095723869858716684210711322899845610903223555465584395989917044267795740472765767944791362195482629445442536267872972500870112295627826260922294088294703139161902804283280379189780291760824264966489423576632887349390552398118574032630249362947676954905664540819122334845940866383454551625629704264649782125980839624623872424409143032462811597456580041973707642688013067082370937664321209167258424773225287814094749234578147007209314471985106336810470948270350761764760131478780583443005126481317288559600759791475408869846843921577315134842727993424161277542744710640019398263882621757595269219786644920597184949695624638950863888159901038079965427143285016516503885315254102805462807000409917190311032460432075360391041606608784156663659403875298852563271062293215414354076847988252179477100726054760904692290890867862358591399992633735018284218919988813511175462928751530181556178704973491067094975901617952160359699069477382130010259222105714252207560148536885992272563467442082928782128999205278873153689002198883975888131907260412754735375404358352775608442027284397227040866709453145382610995193025489547752047053431964234943082017519923238111880529955630730544968731362072098144866187734308940987464889947736892078483495203790011934904266651009921084662763959521603900124134192405755466670219511767613080114464419408623849436863741833217672950818897166091448367250059148174995323244370246807983763511948119316519410082124735391071509911640251555571460735703675386391710877881556131210505872873658274038793736943839263540848722706070937959731000743333710228931477674003914470292213481228697579790628707804293036096511120118075955081517662199245270709198080799970609395069420616176875186846580902122932512424388856067962153108954662961031848711941608709760246812506415705119763581108394530320513722346566800589832899004417874084737680009368948740916491592382186452920902128806017392711681112652148968603441223708068790280490996307969520583196423035943209221533766233676028837420124125260262333251094586958965281231747921914796152700381213369756052019205068558012741477134229627225773606909330650331840572249243713956361225768072552870167869937110910479441185682147644821005183548832061055594774649828149742690446063376619210962779043710558822674314686338499661459502322747803669620829252928387147776393052853480118545132671562519272200174736598786948643611791450258999762260356688404559408672950231916325872156904909455991773218165405239099805920382967378031008071396191880546670658064640689320351066354022735032658832497116942181811674857200232166623135536312080275095510319479895892243920334515178161433594478944033548926188962329506099289675418766315523427039177587287185678691750008592028158868238321901280115084503051899621238395141648138881548266132509513187200215730453870105240315352130005462779102160813289129816315905715844886875665139137531708934864105064778020881668597256091492964638763442091347549496790449955472764157248419199326694181652664860969741105072082018360974930600822464648364799916460610928843823558227816182971665497258069408511328882762903731598465181806943186685642281964878369242774557801913834436845311946384108614323997021907948787257991900768948529143805426815611382533580930888906815151545438020804598971600161464755989730563610816294531411293445599677717815757298170176033934557114989812787940234763492348432509657917657786728662763475236338217036057690325146244289359425090122913557475302709235340840778677572508308992456446889719536247681619287017471622470019157755465071288126570590675079550726797515954636701284401623547423629056474035856109479694700322431113010520978233713160058643896448510190751948140865190337758682907681672383414238265232284195830463636935032350974404534561686864886660013932424351595003660134384932104482755537657928202396569178095397759470744734226181748554183302172379611492956804224538915262149472383845639262714792588535094982833437207156652222624449724248666709814584378014544400234107545766069851140203845304017876234721975311256205807072069733521288769130739834068117420184559317815682920241318940609688800227597276020576410206619675869198897342862401385872125084761608895785129754908319068415279262926400986585676249125638358393132537074788210902109722611518934484681226488314792753834597457614157345831114576706316679567774383505536624532265793539511032215751077425487549920727890841492331600934012186508815766678477031709626041403458772009000519667235466564801573589984232496766911544543811360881895611133687458596838478877363697656229064514335193165844681258651851585103957594408503576391733854436320066081102985238920972200629448636330337926557910049639948470710161865450427002215975618789485735706436334264059226586104069567044361441029303927801975406913808370989444868624100659433273528390622299579935811816995744438153026925614144886803647732139969167266773714135857524131984459135110732047137735022854591713521734967781946408189985907759523791155629382017076531871148559353695585734899469395273874984349060726389278176722519775758590638964336909165165007839933569936558162628946571650624131904538541401994965361730486048442426098976270480340977050057063418678591472682666899412325758295542089460021883179628627327052768563101091287763145296245248665808007494257151164275157802814778311178935841763218492869945645694587483220833029510420728386481689230207086437030478804084241887064631849311283105983631015236453649028075200222884156429057067229277715838357915466264812349742795911059187333758378003731715464617093791614734755501229352708451826659521268526934426227613032302372562741188070820853367275789277368650623140211516100166239318165572225954018171299069265644092527809461070036207689256743933342959943317814693618500886750759271798890980308813824286444652777360950042932419970938711496760799181537512440251683540283707213311351964494925707485101838659547581103721577324970062839383069659160696803933710717904877434868747942825316759437409198151381042990263335967400408135402670376410091712105921715201193698820331480011740383428030303439364351440189556912175390298133905574053148294743438446536218715578956078890680029772369679511453153036522877168696795102014744563346650637254090953544488903465238768958864908597316006803412673371096615918883630960153879419783050773595606361671499842999238232345900473659179494480205169534064844495621267750766258321700244477524609119796368750837157123573215175787835697665654017336118313119794448540767894867933362413974593215344569315933498092605581307781209642733556444158556716313823401500780311472809376080631745243741335778192213337164341599518121120317472175542757232218163609214127850382744633562153632388299138248582916298570601864997685170482833674677710302081573942479987588820787187578031683350680912304373297394355573418095735535028197900778103156606240119513986795943118913812202016176812976462285073460020428837069076037180742179907339210784630398590583078599376282717770272849543261617004912061966813593334997066527379095747357013402873063166454235077931968273646050426225528957887990619486216700797116169613351874369116455376686444166000307720256656952607697836101953785797140887519923520769110809012448071277120343137719366173437121863613596184743703503916929575722950854508198481121118205705952538545956154914420865124455921796337593407734343007990986341184646613148118312503490415184714206177727295922551084755217153293313298712959496065036085166739552257012511237618432972999079771502240229176789271839046987004763413468401513884338259405089639868896521583024711034192660072856431189875891817240861351877020261089506792774493548742484401516927194568652804719854993092755982372486537368314471545589979693962293205676817955607921016697766222520758725753179578394322877963862946751565641002455427264887857368285642976597432704413718022330594890197647794378604973084133804739189649219075187301633042553301542581359597877719067333521649834906207881423366353548254744680630158816694099382890704552300275232619504954489278605232467370996797349854221477294114475165320688069335165152780393650010965311787235649291463140914344042631586334130968606420047742291780024345577624523428807742629322769812221857714592667519282358541083524317761745989650534992757610902706191745375139423703159497497260578140652625848769349753461233222774611114833411721625684868580342290442429330447950216977350546433754072252420542699226906013995201714814289234778248479483915913151175716387625716822747229438684996244382194094313964225007166594264639850437170450945215305473323332534629880525890243180439824560508342745514960127778132186019247679180658807196191304810378878827066395747220205351855093363063224866650248378175777797263713797617683336544643729138960593467533835831105509624349580761212871168265855600400248300360014142016280289726019941911559288540897212654313720695593239184796732233889249984009626464048952663242804230228084642367219055510985458863643115524828645783864899302286420487606758910314204410847221299373130216981421372921936898240613529738475026643294909143774246782640641369914278508968246261556068966217201767799255941175973885124090999153122557161284409121217773069494307233454149459398277278811305342289215807458561317949084586356770781685380401407650405430762775132334028771387501899899146182088292021262191301204775923331569560495895652662788801895772547571114311329273580475123869395248049392389433409692823922912184512272135502270304822027092138941499261493334111483831299900217537140837270160034362785638919189664021101915344327212985698907691173359337638287213743025050556624324237791228739372507943683777770819139135007067112402464957877522847958174697696828886866183564512068325711027658639048434661547572934724123309573678746218184604960925952285567667016061087884875549516852996841980018463801646793394126705400305587840706109212501956329984701952315986190345140768847867211613670643007576831939092472952793630163717448495564539249973524557851368526710136488621607160031055596865783312159923686344961670264333379303633372014609432766740344199641091211948763518920626781797604574032916572588871223731213519882145564207334384722587093746658042296212320170620928734557322386705781904898233161153670934857587772141291768128505980297448571805555236136930918904987812335040473323240464595252371781293430087565067658244410102949246083479112445392691779296121594847978242645017329770285764166199130098366642389737614724839779839783878346389823819834454067187197086035897654836606175478432265965479267460582077792068372824745799876756341750170782330130881762585728181321882275544459282856418573768582916771796415967618167631509781139182747233050248615333902915841353533718602924004186930567876517304961639301886459397506602851506043935130219245757088353664399741801416128493751653529908845916845536262340681144618191796621707709360425357559920250232022820129540711297068832692219499636611384062042205158789390038361336922421803974365849908217722321674169095009897467764263451122821585216487514497409768302325883751577748163553483241574488581540711608903229025645270412296520704072792609536896988139367062417235010739220798257620191742672746997603115323112753647174174262852054321486889114334719117397699421871388267731542717655689377009714278651917014494933911453158784793382700052855188631616860437334227397069734517719997436829508713912371668147256190353542836926548673929976995668775310517804240570624220822888056884258537359450951849273382823658179094497249462222064048960561490558600560748014808667236126169539650964913022992190793082425344424572269503464874676905608348765205048822445145907091649796929555851384332982379864289018092640034121356123446689630736226964398037690812446953004667793655933417689859410062760477449510336847148382254710814074782073613572555558702219057246284044296739876397200361158788523476555747397557369286730259639488275580418881420322425022460031031696308120462683883585097186712946522492539836787781343053796930791417419144465651825721833906723395962946685921556333671754464297702074281606329956580244946844294753852980929021690500531443220568308725473155685086150876459350062798579742514396880174600561533153545458745902976066223268495042282339481080573973733097251053804286445332491752249292928108389554231969702106752129775666383647042314140861105375422499261519205900696977038515728040798350447731277804649543160746225291254854064120008135047422402156341043907506878284253114529512803843838520499848277507283086405106656136455341759023521491663641071016692330715273616981588542845269074981143005116283438419302276422495695543854824493035943828062107283518114623767326589749510720143582384707988639731849440398161489319501658719021517710588155400349331202362228153286623482411212649247202761105726851505665704198738337455041867275186359351930766005887383500225417971971555126794756793988093309147793388575429550975249643039848883465469294176065369679274292007185521039344905597515402080481982251209949387995762462624774969654640667464838842222004963371798393965942852319665596964177303372513700111156866852156891764363248305245591795853716207489969637588443791205925885567392163021296813480145603042257488300605625250315100427781540170019659275431293888661268148366348929507457803207737995727274910760347283895083885453458465974501418985516972320932045837626842489112067751356424061306420231569836830903185822276125156969992956049570024408031397400812400350389053027000785300695794189188131085474292706657944110957912467327548146484560277797506901168895061490746522476433842173803795384812014115971216410931705146353318098836612236039437121463443758599969867162177522158298228004707445416453514138411125393084437426911654498845056504447312315508051181951002892268162070873296386093412848916398934604725373848322795176502368553628272668462048860924346092057031109836143193189575444416728583622674690262012461322598786506185584079229586504831808338241951816333635648402087949475640374530235103792133926375310297473203027445331839407457162543590647325724428969347701502183912988878972501982028394024741568738581969803590968198008878814884412948376658963270638836791619512769259543642117564380471034300109266064631343629545216374237679114115090984146214084652130045964434836517738141959921450131818836599956440784611618707854128524264411872559895763123402681042843123717399389954029936527500519451188162362758008411959809270354774784665630889491067164450148281734361539545714181071022159576562405259744432494536688515753816250319539735097834790469175355810027724227966731476322166196429253605689398903250690223422504513314948201343524497106499438294394141941702606140326887428315562287365164326694616738226359048054795833852253024625420385730657320105207328522127010877293682580496351053399576008292652882805270199480475625480817203214884106640338681172630729827577035772679497913205071546484471095511292685573489943832929903028789116263828722070170914117231126851806201692715361922937537855014775378154738304926570488843978534658206742113516141163123718833740092753944947113323389448023920269762351977410706083952688628901647269249879457365125901920965587884895659129327449921703301613747133319780286708433867644799096714902234235516870239087839797654405387366061877720136485894621508556867264601578922666196558820366604336605588093903756198633577306618753584816746583378225414646988073992413171315855438580901599502618439508815467493918622375207853785248041306140094780237290720233113396625498330472753456154124201132983956933156025702861155017034880735093309852614340939185545683140001401344868874881834340209320374704419614383661743128669772695779819256909188284919932546435514867868047169202076409627274668322802169708686784924204188994650412884633627486729908374461849440608093656198785965438373737902553334276167290416720070827432136028676380136139825741400746575601942550611056489460566248673641370445446651074682701462934615030225609540688191971320786857127254984232631190335440400844046385212960812538498694712083560565102784513866431785000661025478161669221202775208071866371103149909034119273152425729415693623357226906212013911866774190113341741282326566110735702288013959126243605774016999050525257357972066866821577530167123757971508924555860142529525049503962590005277346041054275380005541628540201535658271442078503209527145448071888682268208590671764202831961888405494729739851768413085291236661327090361968354238463311462099169331294279776243393460527177497310229906118494847198667940718681159456483485443609462721228542968077580061789552605504487455841120750521395128049483333404132171131038036065262632120341013940417556354393212305308244800165006980034226050487841098640127032518161335784868904534206580438612954761892972429327962314039132190654497118151462110324507040121315988723883254176820716463812238700549262126918161325707145199309695628421988641879931561712529451741563138657927752029653883844167880399019285529205710069382732781592985950315222985302879054826464919594357438275244845823125123991559935265786718383734796824134380023650730037778228587690834949738268061677630603362722569907284137015091876528958239212730762832527524664209271158139439015366694709445395875496543738127631595189907585076113749719104095654903972435602970423051741842046855213561786170760776190470142888974797986111835251192354957034880350051633808648243612216709715107795025793010420741148027105689058589482408710062514124204693147955690124953645135325448306257950800360826371972423014312683442674037606876894691786451935185329762243812210861940251973160355598463845390612430091752098031965986565829375954792481806439291482145525880648169623752734070380215117794499368440640044471839165855098417272584709688921004171548258584095213730396419613060514444863116297451894074628526339879453854786604522083599976059898890649579005478248145662204508218213282785523852759025003990985541979737309686567072875133420017406577121123068843219257490058556742388817433236129549534618485285728531819558334331765222048569239351849252655274421475404814616760482136349500199825718120849819314933672840850102299775999085626764766554395614007040264793761384937174553791309551855649340922303624374108869888892474733027567629176822829451299793661278344721315589884005775647121521188148214641409119817863150973212192933901003403473089761505911632018104207043022711837664473839163209980349267686130665171417412552911964623945945604878527226761352305561287579097186220598118079663643635223719705421883129163178657062488986604017519251837326708954361101755812904096981980145315857386138382949013081755526829644649499863660261236542498115641829803026238227699616240494956085173061688428450026434733906060669282709939646048879856211557215928233515187478616090432208335772853075616738789646549627521080490592428812467522540112504505784749961116169631975608553263871473614935543397719764462764070719339091600474352815810606088467013589774871213364490958139937958635205226979427661938136432902429065059923383974113942575585755983896356127646876022455714303402567216521967122370446385585238977346615034476146250383525524889051785918988262642172515599505943107667721496382466483170614951687035967127584243172988427358809013635739407065711792981614036869149872797300003874769425514518479820723885665906876951511022051218268079796919142417764545851650475480504200417028931049962737852488736575586262001414527348947011399409635626625120198277302341178319423818017657383561727022919411075739741542192663400251726568600470611018744897083248551643278680899646646893269629143563155398122832493439509793141645518468586189640919701840014709857294651302685076381601355057673362685764431468245800074924517509166822520852203711867510036132446681809021157200273040065223272693143704716985780696826729017768538895485817949885902054764864339270780010302120512873904883031282705770966760498751805952488316827349493806823219786171623258394890669527449753782612581509368128921779262690834065302923166969986646608686987880288059296663990032161543295869989836803199319744953717775635753851749254468645869028952575347917656721385093223292985963214027170389401578016372316444997151638267284344905457623095023559672936927974292909430261346654748946510874311132882230662897825774576727234839749786708418437667768119682724359434394146472966941549790041554733566482184393222179214201200360613977526333017668120162373639160227011095420790973326915826878670000511285931232728513027792985042921299867711972388224858177235014533313697238834551563106618274064811407697771781562059040229284405528114095954731127254726327728348998562931999774863091474650934937986323987495393217955218557961605577866759080551869681425553726593253377764140962725092647778947882313712260995743263007213442977072873597487539791407990695046033157344955451372266075370435029773290267625109103475076403924144054553395780385817854900876694627916638112594792255042458346845872294785742309963420613882497073987679608841521205337598346088781195939543311435276353473505385301447093834179476803721492802612120032317661143708372365220751025447158175701982633416104642332857424750085873840942443866707105178658862209901619241835221864749783223364132999847564052147085830588908991273384165521404259955001500010814979900274261199749484630808089277400582912821615988543561170427656236861006236677610442777250714805826823717977156416524094204280606682318786783753118923296485226364646479763890887974091984476365056812685277357579515837065246324874237133848693275167212599903240375664680530716063494687030747398209023864243540830214586919861705921609462162245540903317690700678259816244798431257794468009885923023522303711604315662763449971064154149959392317583600624273105077938815739560294768103507238901847844040313700419542106840843199338776813337223920382399000774083423683824082945672109632104277770475307981246506280406500909599147080178472895523847874438000659096683848810311325731311955749953231611919378533805272966129267181188331147298513867304710952469453151183324204843297770724090322066357447138388641403967807714703512074760151738874830417062662549550874023513573632088693223342039311727990158181246160769576452319662650658883942784432523023500038022814202948818462639013866983860119649394653405726781244517030788007835787512962727343653499664365404547592072766614882903731556003513311003662494327909246735076896312454768624314704040950084302031567695638868459017004254025217076630414427665051252061238945093454330638535647085432674910867193408891231544186084123567424106181167262919241222489946626697144055534222602992433332088698441257315120329389686748446027189324244260348078786216070722227897778316909032146616541564036962648756522685012608146333401583675875254697105876494027334131682555091011764687108582022180901704414379774301862704643419231098578752091591555259902498090279100241279422012869870067881518284876123305476127462729176042651719810147888505048702816135453141151962485515033830847531833593896287556622573663642296332116889659628026178682685301638962206393656184186574702504766521766178384906229872944669646103286738176182271439108063425393195835581081911035939193044336285909820350759393581055614420718553967176522959855982289848324849285792523190134133561677816807773186475729856733828150789083827445893842995442924404336583286332500336067042201757659923284198831592893248414719381066636309295778051490392472427970248746936552548796946712521283272066437056629714842419558355204014536021366778491853589503099795784226842028370261598699439049530860293410137897681269633271022667206068105527637725292282593391577335238800866751343787884264016153570947144699529566922853968543423126379845940191397663632779932191268230649685588293958281602938185161799172367311964737746549808690667361727862162321829814474797251422406717978385215291452440557527522643076319466758569626746356880384081647786586476188199727813716355318893062650611412127524495755287159379247729642923475356820341689042128143568312166293248627057102218989165335784880434022352483542679874281398590769400649318303299876937074062735138881603074443180883810741597481418115616819921140565630491242659471336971979106876518747978581126387095749529340382572976188118483804167433966901969851857869488687736956123581441909171741707799625141037700107330825850167501474386397642330583158921027091991830538107525179958957622319673080500694043413588561997620235695706888403787227852323799057838730198582519092943089819849634428710345256526698216055876721430133079962783782382990056469048656523511573371683040972516920106706449938303039723740214710855759971916899312943939769870155886951192685760073570399742674300041639261520446351563109244782258410875287623113729165648306362645380878207719648923442603225789591564801464797395297216397082877884967612394840074854481107340976552838946768457291444432289539507171259493081789842191674464672051308607255797676806327868265056195757966873518946116462675259526401730701381177670689920955272458450023593804652150521238983203867007153840475833527579924018607356969173124396551878329857971183273821459193734740990189372958141342642237627161920017536534001882663748575443034802760572764433994103066832755468278891121627257234113961474637976462780178068219203254809912067268914022961182340813703585977276364276717719453486577657044927445832843263500854122896117228974595296780273683772619549575371800275779789769833633623961769216482826490732020591420462218796759898130312515707888695582289698471251228426417634139623339677352730510452812218888480837202379063362530672140303720932262190631697553891093497098636439448468975760679006555145258919224036584253699811221877993543698140749641277531422052711119651991004124266728615568456627198153405597510293396096015747022870637768001871922274964166849405959083685670897091747953162256269067065262161188409412177688910404183215871472351094932094453036823956302156191279981707412658315596954496412663193913073077787384133491924857943156195198037423476777375276588219691372282958279384201882374970183889354906895228275893133834619023217653310349285393818041865977769550600955123571747729339127469613094551348986982837709844226679670627304036470365551657363142800698741582757513066409991363740349225880839110706189395978420897610905077877994402572474721709928158164496537124343104489899377489684184753559615880382919554839196360764565305084808722723602053311071996835526876196090475708272006922117110731989851206015080911278677949368993564273627688287538824408885417391014939498002233347732675026328927853809812504199433860961406648138454972794947867779370945515142428048649639684864104023347433592526391438203965084658897033164383075841804762993984793969479868310898062278452834619830712055064860375087763508580558309612759543839226881592092497107374892545761665368040970911625963311428292242354999867496440635214217977686690020728168346013410159872157157110331914684802128618344947285226132291399682299570457380871891919668113038462799346214263480145409926489334896292205026330685479550636270985817957236665953923494386810761079853339695508309371211367490609191106339160562780034330114834373759362253939437198730250965568978490574590733086117045246846138845311778783737981847148489276686028742416432653403312743491117185237627556229518415516140034451358583712658759755499244020221782162159146342027263010717873856758916772302341413754875287343719852704446872863023168949869251140583094587832283571042868258423628357229415432865798252971799392284100322089877655872032513253360260139859606129849111037414445318368333554586527118061990633624148736567504709607883619575436563699368075710725532933124465851732167774115357389624359303672386382088264362899271015324396123012135131672687823058867516791720076127750446377799730738265524380591956076889317014443252956723490478623757743354204208219608138002474936489718630301928607075247641178164152830778728350754104760002299051514441545109994399445930592696106540155322252754930117400688420353379209003816139012879732216618945702643340607330401499109424892839332984710508580892412637505625388706094806366740813733955645556603738604365568236044290901476186740839065248256582217266442713001413093606474671683393485017729795888727869583639705218574158313739790539800018812937302596384782175012005178222529758968929040735181843291101390595133464218322144747296541729301480846809521396036996574096534660910549875987511145536709028121074314682692505498224581516482802330942760667386588350184346714023378161909962813519661722738660720781161073019857456006690361393599953234797735861099708864739294416839179424155189911970964764730323915804010622004550796374141855806428836094225627934695356919240986732347482973568412275518941511930596307316747228651518207632846554003164442502246063879526079392442412154195182585047123619444700985939718100830759517732875646503047082636187855593070691291340010262006897616977717902852387970529325079751888641634906195340538739603319794815636917094805162428700943413851599956574209645961443960288220754535307069085153228909019107614567509654233790294766220747947719099502401390586597826789179576354530439741853319663275846419015661277481891151434988306284515587434785132955729930084545888331126678120315740583618175079767804600041852606742263038242258544000535592319244213630114878588943569993365102314996251612275678424585735846149372789998234918893785158926494167444457935543007472875885914475950794737202206399324120211395533000973498460830521762426030607065134292440868387178624871431805520480856196985756396296625209631805941774991685703344941938938968971752710174779570836762647587491602657843605609768639021851227716562245091169924418818002605233693452617760914546998748167944065051714646267285836890046453158668773810344499688833810315888356072638772569108567189382131115893020940662369802051818266937248336117233701359956242081121439982364999249456218196949552659333050641426402479377763149132829231581611574490023991734568185604099465211365362029467188850021401342437087636209202173625728331634427996585076500279212780924568316240030468161885709289433231253475066161455215799962455246296593862236801260871756842741480555096899727861003331251990968444374993466862058509713253499411741574674444684823907853807543537069412985611675285570790146458666560536762887082795856511024460864159874515386426753145992597728487876111506765816289344339877857701823197283027351403302251681220319929107861076770438538879324890477216849336337663729921089237478700721916085873276688827379041532149577722846720163377872083221169991635428614155559015622964535444698399705445062718224939064056735571184906866392597244577531612826827679796243009470066186619966734575194289834845813876333468161636556400376586251756852474566019589307956792958502972128932166883817752362118560479379760485694501945940847597479251229969062187886120379270743012604218389680579506544988607492539516668615630267013716128887728076236409507434028526187814843628957637024842634314541949557349279007580468448241782076412538185828404698296667010470545040566473338120134799093491036489994813623737128589673426521385422934372902469283760336692621654728214822970488699309227247783446781168535887416226184637803990940597441331825218875420290993043168604738152508149877347443003760404382219003037498255849474891889967947917507679209643060637880505216862948978805757959691833854474301979646711108959654382609466348432426564167860989217726230713654571686191074941890954036136710351262487570114106558879723990015630808904405393994266988817671098583642947264599722633686364855285048419863298304301692495396991263379018719993447825800166844149336848040232978418568774508564554707493726300163227821700527885129637689240911065201950808298566450934397656480367915155029824436714517299150874911638032712824720174443892148532761047294874696857641886123347168453253685096566755241653518994330832856813585053443172433918334558431278949611262151546981970338948406499929767563965164391590296446781777770418227788699210164510190498666879445732270103473955642207868211450359223505503882410779848110356685942923871635353671495813377190630644094585340491035849754723325938658353050856990337285145630804379091449018032208749136202079323069010440893936269235734774560942180946275809603104476143196934860050710332442638529467213567978101826701806035437151868622481551469579842784004296616402959078022583735653277820914894422020537565419779940335169194079719575056208325297476358360538341861850515996404863550218868969016287781407276449733759249532040635636681483554409330315835906000072189517791040401139924233353779290165521279066474681207503399570732339179619353885257736600303504461878235939002800373877842001208320886326979674311551008844030922525416361576313841715261160818854175006450686856068044355250779044615140148619656829759187740362256979756283179806557734786079020568151013158943924710458579946567545695724360837905677138527463963793564979690451396499811644084726825104047563525935572957470574945602946688885382566035602286707551408873187729666439635374495035957885305633523763115888895555744996648840684162908324149536067247606513899377990197188317992300426064955350185924585603622410132969295509762597031608406930146755168781360220308322399727749860431405705175545342347171860704443489849366940221194101161368087238551354442223210804935515738908962567210575497044787603722502576817328293441121704984335776629265139793125891169356416561738618494027735684070484259679429574031043176954814953797597369901897382549128261354675253324182180046994993296642664746357656301770346068562649180830962401721710183505423254249499856726641408181970801712135401097469999025465647864276833219340685608891895808577726111959906469858668413902784462252929905762484304102040746555378914650568427185821511022324961642430251880584844800199487975296408257664601780623970435399615034438428063170041320339961969437955148922164980129260055716967420218086658501467848293909406284821063904357157104879336392751763020653978332185888636078785275522793572839878489228073327819512144091004510220857915068928050949177990967224223490900853423303982942935664531026242749054034686657090223123674381608046049155621415812211213325531809844356866182385000747109601637503726491648795750079591326688097966516564077272771571627100740742871848756990752297778880888574486483504258088484545351161117154040300403001408830927478875065140951884795787275881837925568756257050606800245875426086437411494876787878286282287717106506371305614885099733276480463395088813789552610247412595570101330546851063292047543373942239332067092949461946620135827052221645925360854691976666477101045285760617047863033640598561038789855320390018825953879093387263746889761917958002538613054865478729252013183994529896073619775057811665284364641650012363921723907182038798786362175208157932295194620819171091292885133589452974051495614731492984555186785395214256060864725245481206773309490002968895333783380843931385235843469446979201885772292513795231271169677453392771632706485886727175414410830658331632802072844028142473232430552358993300046487161657352863656399923344581381404524887112355244009602169222086682108323118983350338750753561527304969013036270536519823694610502328586501505646591909982527800415947731306102065740217138055773091013268599880880905997625859539354584575609126557636415616212878870201347385054019166474252465478388057814318885822354286272677207904028339341528904945234992158295458350831747538191147590765553359115989054720556637474840427389861898596066544477339002528225077123799828990398523737412496105847764767238683573454559433264497478221783156988045971175712464783514772263087334220500095933782300130570568765898147862500342359152692593659022336883769847116041474416184112848528068977973576836400483221821208712769458995957157460268092902109378350078851589626803570590480470070919146472975623588268284440645720729804222266865464333054788882368494310745615067145984408444651592582318590885352078132462284076151726638478682435216471725340263509624755703888939185945316132541197009004037015945234393858435304284989965113709845981388186626421666474214036938451264220839802943835860972106663829815639445740870887969758343776260108047692588757945755106620128473742780636483121943904632131622743990976344806328545594076660287913254736412844519171706665006725222981928949760803286300760072032794379196954917523116552873024936614892755478324690356444376738717318349286357527983851750771548468674115136753240569101195105603614977995064682083811725602287666426218405090641185575035326636163650535967215115314658519934299926072595324979307938658068481889875636518854030844979161035387380790448722585922356041451468944836530146330614626265700705307904015860115182845363553572123160942185304560835392342291756099352249383363241582411896581749466975516547857952577381442929169924824322586737900546833484725347507667386244261276520423220425989453294838289100330740780009031449681347023219436930173881769238715438371918958509833892359925042096175019339016194506465126243434224901125638640665394533248036978703801861501609142120772314567105391320711444792217086650086520408792395723311519796147409207313742967677863542049176413461858932835714894120228073301256044906609422577645184757941020222455710260637717987769106912312753827454195260757573136527895805568257294093567354903869293610869319838040893864190855131137941430608409316731692148798721623510241627558855435829615463661030125232048261799534212314332201311603212725286589327178656636673463517579917892223228065564455973376294070738141294753440960848350723993628178521684830630681200708250321976310523071420648524441983109402851806558932472841180905481464603861370309685739644555336799584199336701377053497392973417590477327906286434876065720168500115861077411285567699463072800310111325173305048038556947996797225331578152837665344834675733793016390065920045218761193334204646130632554011228029522640512708032230211181088864743592719021364547388844781148440122001324469779225377726159712946858703928585180154995736729451531943712674072685730515751378715854123782721327771118995661783201240578684319914638156764863364667291197531277444293009793966134945413769755158160798805173028912898337306558635879785972448933430342616395767912604676028521412838227889672143156273762896389430275176370199849753387219097429780370965475004495678403284298543643198535418819669475375977024245726259665191808736112612364885935772227449614350587017091318167528612234694054049943432333764118608464774408472105630921697837694489939509714420122333721723745976236726225316001505862176760219081732256982946139614829797343482031489041161607676223485093582721635274251536240514497562033875779083650938642946868171018820288455103559025766243950850357681127602290310791067696818501106397429175183343489858315852569771621408493468901069263435894611377267580671046002990934052639126622219061767118156669769517356191910739146301195323568182328711549020234639144390876757761330032751845666306516358823783360362202400569881512845018414656388165081331637575152139271580398179666158910802987465849879055393350090835993757929073442458877372547330471418894494536553089496193522794657651521923994387876496949659168352295173892508222928859593834717867760011738771661813456415208044558708386768345954637443512377356343726859246544761976468597827773893809297614788318224958147145047473257637708988200108235813621401557385385647505262828013752851680104685338259835815118935545122455097311420196174759329333301475202171606389925040056673358799061931213618004664751796829921320153077567293566759623271495475936990350523601759416087765377262657826720021961892792956237626715673911441181200606231516882025895553636468789245498547015659845533280245824459102414978461339860417467940923540399220445406062339547079505231568716909223173689930243391866681855082351774858381398726739484863965585745096684119139804980165538784683739601986304371270574081839162927677729499170751879694662476937576378713543053410954338565216292383799258271161756204953943709923264447381615809131342158291034906352510822348889500594115549591929694454842666538038002372523906524730891109575398884255897811432289487531450366293768568373830083583385809449454220052985474972677918377268844704274261344108681067225554994251186793217208247740912101247431774541515854734965294837276234563956494505548903138985138229448914906156271619844942125855824910847143158254338626952910430070372501516014618269504957920620673990963131141548550496169353762053474133771540742831007744677886940632041933948424581635608867575111470581129131286539733559647434894403685715378391489286329323543691012929702264137124500566054462634444116785949943843203440132733625877847755073901626350708495823231559817849368881321999960565719234923067230941984314574045919693905315123614688618424329540444492450209851164070907635767028017233956567098353739688376657604997698584179485686328228203837997369099858182886224051097224860367756495448082588405279067369884876660234839411374173623655535393064132824107116032214619874978665349988015273346648716191845701168214396939611705577737347850028455796983165889860629607313052754921023696693033515408445457620680059446603674000464783269387864238763015537425101128548056139708027534715884559017391603562502676013796787472550084440656997298354144856509851053132878194328410874400707261057228141493765891172508663912203336852191219250735305055154377593076895992145139293072852864260614590090943754719198628039283881313511456059826820733434049821291103307435127741163180967170292835820864756700508123048255147655522105961896914550290479556073632155276245815620437425646700023992938118186565966119110354401276207100671368482766335175862514883502989388748873753215447640952174456320659883694518058367122800569997892583259332141180379565602484116659926994241366003321716187985707660911882762611348308785191672730725170950282835918926173930437533318126555837572507308723463632081875999397493615995311967940617723171450610316006796673777465308315643956344940960784654622660908475179934098699219167159272246827612889256200599814436791013250433328158942313859976555273538967838191616415964304052692279865781950131873059348352028761935340582506694174408989867841966767644245651087099061383188514444753102790651783614542396780237225556353235755688073989124468979730581500294243196588295341823906907537591142746193614336408743551355646140870653452891613513033154268272090249675556426342831328544987230109101243857584925009112315619777440989062375926568996568010750225512517588436312201618143497991981989029866584494983361277249241840902979999457916728766794680198101826091604142989878763466237173697508623291153996969615902279297374131353285546231354963070899973519425947900061351414125586549307962402855043797377236312588369526086557531561080635578930785655390270169177823227458605598417420997963791127205519975836019643692907846616544507503286182770397053424434313005168893530789497546384568455475591125508948032748278161868146794061536983907887551971982433532906619382268635484387029737705257188385048934981977537899051440733754940846021487352021397643203333237888389835931226880614284317562743805437094538756306873991304736050097372317341627871066472210926056442821531295838534911123670984954952475651365867220246559920693845769549599073119594301280263264367826868832600360444622193969955663263922197821640698523504947022000304433620656324941323828496605507084264596541584183721738016158555418774532764116569310861774540999484313687225801683994914172244711710511854040659118266847869507872912576534554016712270221646386767390559409168507450877464619881474502174142513217447608006869634329265993386466856146491645399117980766073578660854953037044497032454884108102302941254220890155578135754101435850311445832811507627570945469727471660460925312851245857671151406095679069941880060764062066888228307434410744007268421117348122104536808783009496405863202865091458346780678742206620849196729069798693662134983696035793126731252014676225729126458433541514749066460058721278089162231428110155422937786962922548205680773707092540407473138783715301899531375296798210010777045310981103268919560733950336726878593961766100558097715556702271366145796733097647763268272916109144931211353997040980591621737180938956158524713671713153014608434719592313531165643792032723798402249568665277846006224871137480498277878770062479238861483700228360865870564649685023439580376546713282925280163444897538988643736122723722154586644021169612698983793107974387456126924077651864366513596378383425157278033013699042425300691003940277422692596084184291751119926900185439610963851673532383998078055967775522149540625516976699124849222828783028506065366245677217158386635001012623736785767602250243650098775528228417161222100226519571066949253075046572326070110330254305234743520862572640803577346753972198389322373295475111967821039458731614882611585649397465612846646188779745595791256032657434641261497167225855374753361987334757820116046989664012840145662020816107218928759011389855983500451471488719102477179567884303424331621644327044222382358136174565839273012228179044309125864090731213280869112568338821633825168078113965518356212350713419552089447995614614276364001942398939498604344695389856549985792295675499220050820601413802938385089025723880322899217506939380844442726932471333271948404932396629416077643407530883326583907562842889062149673928988915745711855673714016373143749052929817566150640974348580700046351455485294622173475559603263379161420356150204409046218556083042294721546865321443996215327715279534591452533946603362906844340964758586295425645365269955710494792296233881799841581402908719511184615677165756867991483687892292484341221921186440020993210623556327520089321073814657350705613482010537201206323211708801962226794219236913149907653000548767141413392896119534178045025965517193749617040848006585144150650592393547386739827246103052549077978614757955478928449634921390856857689045027085140535985989577005017595462630066277848979490521477466666908787432119411408188958432051466242239063221883483609140051826516893457090335558558765464872236194400565934540732560055488597575114795936756092971308678063218675165433151778965807339459586090003210001347058650168595344439273222687110472364161364888370395254258352010046753516682442090135539146888845514944245504278652207752329092653218747222723157379718953088201658623614464433334616153136985454024698946270660840462962679953052410116248589452050151037520858625837891601319998369147063087509149895455428149058791560291372282002908364582183499575369545709575268619569338973172740499059518253973299520650151488040754197864849432869286524217520016980561484114586295142834162891912599800100928975658392458585093926277725581887794023999380989884208334458865947296771516263473533601754796764490664383083345550341661376184437557501781562299986283886690965158867443324809029505745231333352454185568950278622187089116381796223762423006184571050631071180931465587856972795445213934462263960618354090265382344315196603226618266668183605453817906678980899026133606060104605928536565914502009247932427810625318410253583756411881691136504369735598619750303765765454606820050413989911545887892345397995034213481358436346594360951205254648259219893235587376602335937866019067377255678164751178915053414242820547096926627037859865706074735770508073057797409721951298334358378926939136605568736158099219316453670794990387334524127442958118182496261858145218764800817128763768309991630860670974072407193429981037575662065154292102981605710073757273367457921305404377942541172450691386548703702673159924701736749998853848972083143136620406647327458172990889750313185061040732849502518954096826953297407167593695006436175796255156438642834474227513310851351774988908306148305797264848898703452669674115528110438870638893855513147688855566853688453844038240970588858854243412307864762767897432431154543958589923206221533922625865126422088192427795909825193606167903805733272010196095211317236836027089687086941674057764045878638890411630084498536687181000800442137729616938627679003930832396462051088072333094568810224888437385674546889708742996748263620248226355461084320335142960831039149616288410294070135597466429630413861515830477675826359909435089906371734576581831260287335412196025421419036844767395531182038934309661311710691970492576290399785665757842814347140128026751804464262120182410786916858686468529826543672161759418590847039201274116015061044578374622171299093087256788970396597757054259896747457173255912557906246114321413208027968793016551877623836803354929968899944505037014271098603159438658976664827704685832506177274282614577035321413899443868392659830064347345937550838072723454097102914159973320886169069054768869927100947241828201470181456185051451231179225032994731401161219832924047348316654487108063457695640217888384970065260033220258237504012899377428778785367530552024723502650489999927237087470393972067467284392386675880516729195578885400943582661501730317844363194791402762444065464049522216836692799855782130187323105512143731205820571489582356347954334940944244254021761554125056995996959198184891935881200614923306103804371438180124397683697648263072607643596469972378525431574687804113563348693982909316660582754728801730552807928257948320166068276892442004940109946848647440981182453411531372126988217220786901443715092817831180661958675184961445882372858169094121670049940637335585058250907885013518213506722231730899998420947555245491295528358546842670904696501441132972583708757412207659902250639367465097718770377491341838188365666044005948753876726954310857450947386759541422625266357636287530025978385336711403718568025994928086978768767112193217673338335619783596094945378814435781110596667345788553135470429193043328102330831944125378633279934009635741823368176111310784757218704798242891705363995884475918867446970448438473075093279921765549220652215695611302474209776268707688262805507269064681449961177049673732423722049047404464824534604357142674992796526141464999880334623155915876295378845881664019627024923179838172736198494061500904697622461475939316364274347839937592082309221336525229879111009630341379664195338364207748502160242284350629592078169183405874496238316423642113225210661593609037309617283643078670468041528849521733064464499147893677516474842287853473951621761903630270607500543883864177651766133459063844734529516762355415749088675391344399492799502690289827353298596216487425049290384615429575669020921972732633500591952604777293664274030303325480823135171070709369193316032094014061430913772905524883209708200695815504404059697549450815752333352008094606744474847423198722994599100344259336385684204384211234900526688255966089777430637317203726265911263846843292414951415638825233862821589845434406613675055397266436774287941352120889457483561950382662637661887939168034024139707337587436553436845463226745930174306142424783525207851275083146775015669917462416314289034687267866140499076104268723194187188671037809651761914404648766429919315377817041625360638619917900426233766869822881244975915944263530267914657129119169589588375191121622310080242897053809530756786229255584856755820768648206565179976823757212502835115573941981768711799995658549231032480244074940531266127275402964212796783986285331084957676055013735027120162549167527714844632690438531728576603966048198402423390691573040783134837277799105378825840286497803043014255437652336579530504110271772457497981672671783720436739205470101136541149106379652334186220001251445654700966430782189467027290764080978529649719954287678253006124684535252456096080601464027559320903368301314331182287918035252204487930870045241668750648908780236991468979633683454963742584779998063804080033784484246755974466500053331920579034928638674733711922505987096674240709002781695410750683085435296662561500135422618654649171269150499620740689598634413170071548897806711935409860747459857946009912790101179018196346051195344506817666764798312882704372400201222950676754994627864152668655392660074057387228737998450442970541582596566038636254270817344194780193267480119922628846190891283950976931047493984578973973865027963765639394970465943465360750681518637831657891212010744740296246275678064817388097975622122533718182526105459997677027355142990507540650409440577609943112103736202284064702372485787013729345198162194562855654517214526178923454206934752328932217949619387851258719993414910875382083617601050183890626013780429861263563896813103034848146216845677041491261733726392747749913044761664158578899047962985199829378956589136108503279394266702719755244329029754384472774683333981343627727831431751482861433240183950235299413768837307372059103037853245223612643603343656457542227202731669936490907055392136517443362361280638081680776319316408666864926962965261705755824342728276501386618202163546299954362195923726161773039814620072240614611167834506971329018041402532895553683376979510664478630453755733596804713900003073435471030113503116860357813182519397213064014238358864862175631314982193443689899706525671746804011268019484237724221364120824050522703296039948160298129063034317363610617629065424164180655030160173435113422499710299741955159060690565625565947788162698628626477764919976472110082384057600793871239473130153236625809270189836578992461396349911851695412298753494984028222957077858738653980340311396456648090543066579729684375340064959610803476393754550190073816597925553446209750449477245588643659291667326102072462500756322383742006166470945605515759198669957066520601884000679365699477373863900419069895004769356245522588977428256451797178653113422357265228386483295312931750465763833373425612530218624828682761498461529235648111791234870034881703678809956563322092338516764780316440165863200097867389725404752403937561255770638569152347076987744217245391587647471452376358394310446428856226666095079029657114309407296232785653162393155575214744942057935456598437348652662280413715144242574668095712177530619092845981484216039578009589896803710987015714619753596838634060894573400516510866165143482555240257162786344742083085900466719766776727747236377074931742273619800185380109231460041716562146164250515358560821317898942611884669513714863020698817328989398277623156543014145621068474292939758356131959034451602855645538098515483321684138347755920584661446014203189473142146535665836118824501177854022401098479393162670812249125276827448531672329790276551383624532527564573314961203494818381668039818541357377654963094562617795032974517366028447295354297133287874812981387627558791634099806257593819458309691689446965422931717163829447743680586045560552842123560516973317182166644460727532082372023572855720574919254502686068944734888355359557804150166182489971370266825076096215010866761258212865086329892443138814081843025255413832416618082400544763777260346249711028693911512443664647443306519245471890825659736200629986104615307068331050418880208959399017149077731108097331396265309719014139586041719078921945501186087207348361216887633097880959546935897280319520867045776415676943385769442148770937879684653822054698171641787097860581649392465666375903515553305428918652228996729035925683901452871147200484519865217208203111754229680915972563537881843039341218048202807596699422771339183268264536493621814229251242668151248080513967555596831766579758526921577001429260455725901321615517549513866188040942659176221614055035590055141638842712049469720647319182456920806782927203769175935605766510890713994609648904066101261133938383753580590026984569550822167415372355642507619074872107300338325669294531178782672764643053725442292032578920289998826660179979994630478427077416966884896815846550904821722691783013054198950656297856258764413107098414994669444362929132638805833473870919887500306551807873763146721402922569375956640324574937943820706377943491779698079975563927305878976982296100012725963598783449142994715368837179849264637134106682951648604839676351508269613193628484303426684850060500318287376868839828976071561977010217303729929036059867558280742386799869902436483072857391483096146716945012904925610417398895313412943201093650285570125616973866530319704800737162617436029614696444281323691106099968249284796088359549278756810297778199862163248248173568744706363294093480585172108738398071606829645159839297585933623923868558724003201522496434458825333804717261553213545423532375126124666528608137871981144668527108545521078472837841654546561494203931788372026840373221113939063509129565177348022841475456909740990671117092047807437855623007389492555455010465881163723241999692565860365647262246466499539000335440627284366384440557439766001187168533163517141114243132685141860871219197189560940350639959122292286036998240639258716089945709021547156879096220601317016446149005522893801411892590786443705610094776268901124566371187010329815906972319643958927397252594332379436010937399264651465422451229734367953460765461813268527929085310635903022177168614592441638377076487842083077697905900246982286851555914755129393060643467687999825500947293463333860527575974341477692558263851054521125745770950439947076243752051847557810988422659571920263326575227596645542879920448981393982415707693981703590927556821922898464104584543590669754246291819382425583207884822338356248878923480046461311194185189977203881970746224555062701263285984064150819085708189496225490718676989971179843776426685774305258895056225856016997779599698897348982144562483107895123485205202075512453595265695842940639355366475560981431643492886964651470963021459863711361585231985290717034275200319301473635846723588072444615603662740313773904677182660475631954022533145150085465582357645710789922350064570538609149846420822999141805058115046642135260500099855041624038786248056298450741111667812683668605528722158509174122636020283377231170056280477715080408435025215065557496780498179478930163242222977103368215789191862261409242821989102721236857185319932150519088031164597533857508938961306600391608551870660999588427673829156986365661859029727329047924845162611410358284685175656099668023796580845001908816145082191641259018039611556623262603283479945909343400651913378955559591093141753999781482987968790965822185510794372228490371809356355790963039436660923727016335982594804124830866424793311662638016940674391539108036284277712460965245063731849955647361595157476277199314156441590575536775991052466898834668375070123025919248270552455430955128339786092723451102291595501122226717870692131221778785507631262598667990882118163363527514553728410441393241265291460400339667626167367688326325754139849356392739369613564928400338124618334316347559066505365968134813228158877769346236791540686194729895975806305677114735061830120122454620550282155519098650490826428108187851104262595455187793358751536772240157821733987678339295453743353020017267437884396380966881380544669918688513277603563308964943559263086034287477289369125785176504562145266168544673980583042330297279897772467479971693142233251996082356865462421150405787289095002754551818196828131524701037646363940390237157880983344287383034061910454800618868032664906367003741292899938591023913220252400056225942938860173711034403316408602206342514036505439432397332625150293879256153844422673433977500895571071248492962021822410076140760966769113466429756951282979536183088158976093063835970621550798184334081394192179785641901511824926466813855043156120360625181927940721256026711634670150681236976431770333800565261375714557898121500991358190094605424816683267349687409217152779583786662481406497611650590194761871828216338377482535619693810745024124588433665208151576911426995166644846566239758434450078858379478390385122918778505745102506279159174038079817068978405025765536137406821914829987590146965470942220406443989821669750891098831502961864391762310242427541455162395667269589138391486583586264448971593872643198245272682770445232497967565385789150844044649177750345562526966074838801224944138788519797423979014961312922158261274468238359951008061748102263459842034129237317366190840497824547904015400136123186679736133509781343402063882052026232154989520145333767281276084081001303344962192171774983810635889873396140007157232812805468990686739142332948600844181837606538776846817014783026639581324542126659632652527348056807407848458328754931202533468167881487372873246941299993343387836902518771828122935825759241626878601053994192877224507885416509303353597887285485501138016973698552243045241491360377106137717285260615064135273587523602198337331227293456559308228656445749413901108649680487054033091934664093618285271457711028224905256237712800765715726896754767123366154156884836961286860259058529307620734754692980092552924937009972986165057890701485233335168330789828164683622920913842317609917511363406037400224781977753021548866648722254867860278235706195481270681143048699396060200431025681231216341583835441629085299779689250493466241540892085920789024835952137238870180240168939359792178336774576644793275128055292231793705938246661889507025688987546991120288350680550668939527584139299774556112320793558020238712680325726933571776123279711050387643941549447118854536564821150984175401795746364205632923277083525117014747033667346928693861650042604262393027324257363261014276577687115978288171510498805971611379044054079449969672205108658959211256813190558859118199776866171785634025666263687559118320305922426369516667245401376855941276666727830963648668111257135660995097700986828109042327124573751547669778081641196759997161748370444329930780930390113713611576947906835079642260708654757031989494497394831947711957798798925517544188230834260390015637950487653885233025542131261795061898163374960545341504416381776940104317711162526843776152898633926949383311807986841686123201562517623407254442571216239703995659756758808146140005710985739996477969830682927789510582643421706463845880414291525566665889091761061869233550654861150917210265898688018658968836450180451947936721645983323621435588989501739453194427601895190934693576837447286956049903215231469599287259049732408551942124439756968278105752126103745109855637746444022124656618451266056712352661980517662710908322312775085206770041534499280935138548125958519327922112466801421311683861637970328907294714981790817202481528537949663432098968708873364320377142518930756961912019227520368899020804399009938000415013385432812124234672391449811645769102905658258403751713056433235836174459586301526572340761326203041419675376395021733823905018954593045879208355657261568682630974149919378850448941652914776899923730548022874517397358174528253883486767897161549369083735451091499292392360785295293696361248512854187948950168553484801074704114338511285634875104957255661294249105395590026430701601414907279033883238685870808593329240803028816909103307718744183216381149144409494240301134761123261893806554165126100286160796700932624552843162533633074637492226108513990218941293195815615465215551836265525718184812805646760178753463986199995804977275134800742605303652103490903333101194908019277380693975958057909982599308716744173334512965873052963304412085240509877143899973634364749996973790177672738139081518301775743193348424444524440635213210734897171215049662715432552187446507340495756646373489741221872674597956925007224899010134770769172388704402760685632450456225559696023866437594994108251941821574982453851229902120686768750831999668978891439395543437710704793571105750259838591125824121665752474285316937007095519388769775656618452595777398211546776146512500173594606217439542779471544928340363858478669359159314735118041943005881713409196782971047953857779945960608482461045776349372047755286527359501052785541827959001008654772965257742623431630592528593062328016943150824492859033908475239717933725395696768178080957636672753196661206196554557568056959180797282803459796225720927515984766639222288941784609745541409572621002266336044180434645738443572005013406323308320763289854457346090463317726216116705565997834475812032918368189863468236951847438227823665040512436210294030622822731623445253547292933789250786190347952030771161308745232378471836059250216815424654026839950091077291213905373308193176819931486600964303934173513543604054083969076723469714116132040349698783404415846542271933306192580774951004587647191020258999566300208952268476795841402725946163897500036320037717410909310801848181361662945363973904515319916349684934118038581282285036865469270675025459994106666043657977917505917278634212710023411004935092755077067522122375530071657020814996645558571868749185772751617188926622396723289296915687558296438853513977260533587071594400120576240169553035598271833110075098020057024555872416312907548975585445160152614733694255066146921595489104507439313255083045740594847444302117191370528612379844418473583842720706381540830118981638619494790778395622740071003084584287333522556201897576525715531419737017539080928769259054220713092862687056192495161361032103216427910369426491574361488712972915051226243802591869874916578374220047791999413935168659406916880224552079022746573200143129775848983817631797440489277632207050270388531711864344140290137398251022013678525502980877968340678042279181438619254490177403929878390866451862068738985763582270000186614248760119166681747263939691402468590919627858032832951480490265188173031619754540084244211919856655965404891570392763577763330505417799810359576869614510383463062937824473069572914911463970145912190415759150198883366863712453625749272170447555452182437637598695863401967447395050103681807344909804963808425205202802113314602221611981225244245405231573844353229919646248937535193876944435810659765161085434829479773700415648075240010644716168473606670547292690206123312394363535257114305026325197807494318949758836499099365844749078563345946439350098677704586475437887603464317773334949813834687586576560073617441306398007501971145621654209187441016912134253619371937889065430403299966486615801007881874386286760902492123720740267126176763145584879021858801176677656362470348228655701030846327952746651519277329142451789043390247581567151600003086531216322622613595809731616142626965838879782805936715252766204730916544570069863818208525474975642911999090811774029839639365725308821992991529274733545547433326988333298077256128244716831808325253627347039146355017656397632378459737029439438269014037261098539737518528665053962143675811165490114129125279177581556371836919232302966203926852668198643317907899285146990242777456954527328640335339909500231264087032935152243529508237503658856266237550962759979876185603796127241104145042543927681010459288549316928450814608376357330946653869815195706662745119386712765839239760562641267105862974686607510783800759425192468372368770922743473149323095035142468603393395877799313080965845624796407042805519021055559460086359942049948056775826975549102292094316409821636856928085456709739219067970167272385713343011577343106310876129567781423637837044152582736634077495734073296163320955722048866718490714811148999290991667596154773262164746567012239236241152991759466720932888060528429097355108842966746058229664715247214287913670952185387290313156431603575565921136876646938021045429219845004178986662302718206861846123096770042239563302717180076215256007726670247777485791178125472035673527939628354551590654083864799214121620412130985338393681583645845240089975104947136111744084768113716162125738336754172452734905244581580497821130279374714938490624276441446275542673363922598158678102158075313999671055810946446985690020767153451573037918606105778568103493818217856955404080061885965951699031242073134631199581146299823191246335020845301955985356579137308536131412790411786677716648707353423869161099891235912757043762646191255802841527256012661543979011330884813909144570024700814548958504363688274586571712003356472301408126640622200016787443079311182477937802925557151738007777846437461296647108413712008994426059520374856102735939804577759320386971417479207294300974012067459456122032060228860282686863338802912034078111471585451675299594688867223763181223984918087698801345440401066597727355401786481618830222158258839374296006319812703020545374770011391692529912825417110231585309131672606954667044238647052054372488292244370302766883896806855747261557989237347547894288696801358721194432731950205959948273131732185343740551386481592480360490948784569203647127229238007119108972107563357481204334443107564813250365211145669700417830461031053241563826756960522853396022083639470412602639399476783972317271908336753301808668641327460785593457428302910429000277001118938139453938252964131491865662780878582830666846542853080993011221303369124470277081439824987113544946165862433587162634406308163199362260282878484054779091140335341783725288518481949051922214252816640098921016656975624732390278697582140365298692357779537221640375050632097551821136016722477432453973756867464302001126351946391359408146002396180903308024922287537879505853212958695554478298732242531086367828734157439164966632418554384928773628347864065560100424169963380674439207836004990992136081062080404306405156874461085235349567043359004682196846677976502492085553668086578095880627274802259360387722946912496462311901791284842048144715722400559999797805913137673569032430923913317015383742955834075543537877621485113822636752925763466506091937266024623433707566420731511074630282619478927084660548918411926663156297726705896867105804778017076440290042731687335200979314148146660070574816964785831866669650678543085626444089729662416149826366220672208233914609059531797560518737821277316153035214430706241684534424320866740059919782681253859119964646569935732845974354477825884364017993946849157500099485065525074860262249698777073333114007237751120648122882389344588581691370645181688762149974466599132339343393650358635668700881053284710705788400462961149240138088185586538664048349070561226917419001708188256176116301282920357088445394062851791834082109712669413348870525261188627300960292398131090890568092725145646593635440057827116740025847715184799113095403824925411725534175858112139625793584556904847294864350921919141649695842264949054671710785784635813967056320332694210197204937199479852303706936756798047965570355943725209764814739989083480488995032517067860249217519985764799062822540133280331111555284925161281718662441035047991742806435924630291846138130750925886739592680054526062570107024780175100812470972055308224322653839870151795283991050206990719460932031885978236677414569853623186825104437373214092457227738298492443876647533897690634201004269839076692963880740724489130996220534757012212734490386495012501472299471975779003691649115268976110916335502758316609084812138609644719824278356547484975177500674240477191660316205372128993649368955422575253257458339349415292571413728147251455493273369916451267509206670319155591095668070017277928444500097116774530774763271985733837282229077367032366946825552615441335123228189799139425377038614717395619283293106695333274014149574963494550811829272911993413447910020611930928599209511486725023285923783284331560136835901479066679687767453967176791268056065292635028403768128131656547487957782084786603374107514510461721318722917305837103456809302320593951119531958238691659944958191998886928708913484289469149293361064921179677320475341438020156254716805245852459599147545042961534226847096800440965878116046461994622654345201447852897200481515268061448058309487203077325777755567427706952911774463759818135527933812545358799676258483145609073146456624174283703050293123904537022799424027608189191954241974719588818420913316667059834580984212933318435544495766584581859526872437568299414214937082236975278688491410382880598418049086238120694734510828442694011770820556318739973215732850288727128438279433986334220249673552160507048498143960011346819428458601175307879734892456214771470675300897859202736541926939308958265578250257517166014314337034851141750440795991634019069277839397762198930787617243593221086715459776773138821076345267540243473738550149610211623724480443232591635284475782889311289730174624696907493580505600287130988375221802993543390376633771373171396120369217835228878948312006145663459822306819050147210824512518464542058728957541189502686618879102303959739044653853786361379553798414025870836815302243536462577946441599968060497876999492275268640581857930520371784274116239273040685326042488506400861875703013578182178422306393869619780368600215226699659566946368790627962849786269507357915189535438786320961580541803504294113221381516410067999518331117179515350504159042117783088927710298674223218888107631623938770831739818589714707503230235833212592663049701894319197079655131385285207353797839587293173599755831891488433761982203268181309513075065697641650162639520252927294872977551140165013924780494401354362302650594527805744053793988032420738090088139212387709936452548485452556657830032220122159301630536452279694879652263490718765554941826516751926477232470616573865472194711946376648124594887734026043938520902097459744987941461830989146950701205859883563078414871769537234153027296919957529999805421225752961078376760554507079672970751983884709205497010788601628760692705652506306704422889747232984011703085704115571878772434854872917041847592660556609104683344717901778869907262663784874139055773447442524890905410395516641712032455483722353537074743452287249392014636814529109940906406445595687826633865736919008891526636217282601515634857514280157292061011571484729581578864964199047313297099399257817606363781506353927090519167599735002289231764531357940447139958423388021961130481380784919163442961290583125852451285034842106836007174865210137470864366919544316224544825461489583100009190931554065178432154817193417599364057609966029948937439446940674180123110904386763104797696704914438150650801927379002766850762947422726550858715064432876296881017849359671197476961916036335106233679161636228213603545047990333544344331109987885292011807516342308506721881896976341712011021185628720187468991407312163864897443021928231945644373335813186561094326809524718923287323816009963324753150573119100378374084688035815747422598874758267906314060191229133961322184591308298815898149449574083648321127448525577337942794742639056836272034514645957508332109737429431501451518300481698510387275013568304587018726674670936433016654362626861821478349438666646887893108766015204476769556524327214805564818317172350497719584164493774328311103289178257110637044751164274138428660582520666911043271112664832407419368286870901993779388004776055277066529943037157847138482619908225190785626366768817907004091715503194605002419967929275304841298337057449129645944221841031490940699187547108078354721480876611260644321771426992206912986202675878507576769789227305407686043993555465143722125687414373943012374373428566821462487161029674870401855442376972784911274145032398781235632458263086050582746196276648287813811329298341981420218528037376817160411404303580556858771957917398393644597788803475988176162529946199208164843877191167053404753681702208290184055781590677879390203189504889787978180240465333010434517885635248147542988872638315648244058005095402480973904300800088416547041984660838474552291165554094725897060589498587940580724498741634802373127088714574482516804943953513432244448868035677217072984258138141013386025382095283515707443351138555200195757928178525138260326550526281923839806544742594466206287428536976605185403367097236307293121775205606042964648764105001232306445526396178176387329440447559599640677943731680313156979115329215329922964076361975166242156300264500579215458909252628118561528575025326943342323531984686264850220779489283245196324458770845554404752376122279972501763978828147539564277325614150710297720428888921477711731619503244460848210997932273545929394174361809902047931484498872202530570368046879193529147012634872269519583560750214708575457678072686618777863798549583784491731960057541271264646700081492416923582108559416276368861852010268996082786393831921142970221756854661909368894332023038906573821487517431981701363820675789071023171372214129468303013434195768793046587406846098229979498588709195318220122319408228925428195188432848240350736300182602049114508772377803340859130120612898307851648439727637303251834176238508636826714270459430132967124873962910864727547609094635219336379426067732565254570878571115110115772151435207719252056890000529655213257905559818124235669987768432095226248663812923212884722157024614344345667928317077589169413559162889980252142730981049521651927528370306521982176384777639314100084088800208548225829716760814155040064993424107671506906046483954585311454198945443543406884543445658689910055407205056040441235900464315018326199788731743421487062335752888957825990973287790337996663341326323834153979489104976179765556223419468779704202225039246754302569344976127396793752540243036315385984814462518884440158211012607917249822844333723690585641924437310937400629377783300465400588745182136088087628191978411810725009895012294710134648087589068886615475505652070354720374818008036561256011755290921640127667554127241697605820646869980056212638753131454246403046333288235470430973632780559016434905334077651656107809555664093038244917243315607341053315048814476118864159415347745751481048616741194374533145906482150598677553569714819851429169450936522816966285423534927378606130429396482224294750417698451243160346685799170436958600090984597541605303038527415566268744160428211416683100975431467449891059960573761908566271129493634735406049629152410632959886636018759874648921258759665254782429612128677322480411843899078035943237760658103495101622754132663086994098401145483077363311914687324039732385923823126887475117211034153222514033210374188534806745918798866528912538983033232446729576258034343790856641452516706285287119748069087265944762273206959698165039478683791845480990614351081312458315682821409607204974345320139831860131525965088446833870140142568171973830711196135569472673363990243366761153497773679617127735846065123562437620633908874120805355472696508126065044706792551577524470331371031605465162531827036566317020302106978870731258379771172223356606523413622819586756847287225589590960532180113893455297824476526953991388014330445523011100553057392047712213231744754896938440575873391123878676761628592613539482710002648521910013438828668375336941415430347631076908232556269201394659412769169115489948259990436489920510145106403840372028619154696279136469592351063831061634756355248530164614949170741643486393262885530905941412910078414134678125258212700028530534883383116363805962682686033138843184606210210143265203164164658611595244757678219288805934726189245136175858946624401386748594277024043730406591873652625594494718498394465043283298605014238924026687254834260008595510190108242899786619878814436025017356374549701465944161700193250572888325489594711784092985173225211952117032771932677827962482461564910992272310620658174569686268862552019848958290030097797238174505152675001151472086258067301521478447139718040232624686923925933837519878663430727794592628848998007378853985006479376674407377320024956573154413403806563025752889984192045461242164860437726020796319779556404636045125435345047384101955906778110639039712037840346527748868310890505537859868432187971259444776135422808864426435602905990019383764304904569067750701871570005375983815425767338239482071643645767891917431541200446242980414149593189820861426047259102375184062275860290655316326376380021870143991473295498595819500196960864024794605137848316966511775828481434850126842439316463679523067769932656091545434180353346102126017743350403786953846547093691637400297368156532248876841908912629442242864256011704654324783137568278519486003663252152668820170742758923297112602882874439837420954940268068796120521185908374350886038784968217765973949705832498859104970439103113774861917193537091286647326329606752993322450810423448357013840273210135720258377135803637275014600551227683838667379127161905140111138064631343751363352789354258936352219563054966015241258487052649439389589511523837149929374068686750572506843764619469577916191035600425651078396869098961326327771115281212298100275397925667080086428442325733376599821275811771407422421578098958485986701400835413817979208684810592873516267052918733083620944038378830541769284614671495989326920758438235265756999938214084540957339425728328959978703643885196736388483961005657884774117943483296477546113610307765075505477846564248073872772758474652864508998819471081008646623547039210914477357205026238008019900707800198361307975296844132947595360961496900637400408207191294240710632567102626966292997698094516129133282112998150975880553147432626649201667938827351270455200080436722074812967416418076902197277199824421748402805120829077996278485505593287806698771638636986045159183768530779128701077624916801695499941980423804847884638860985971872792746009037877900648280653630909346789308586743459064549623718533598452630776633561680588748528704184736430331007187270710135344044154610070591536163255407187438819723809805350634834120701730713094446027491583437695636720852852032169475184559693608870478189627896247761191068246810944999413697860553672087087481898020313677667392802833119957184923093764683856119201476120879784415396301321764738110151420529488635262337668628114771017153217080086411424082270896708120941788161669643689679213719294649731753484475237693740785868320186769479944868326491794073710612807404563692933143150172294124785009816435155936273004213796137714984287961327934227661169324543965929198604270959769814875961672707103606204814822617443164791333423514278417171118165213901425555415514863798486242608450165331067391853658449241439891060238418994553756983678037907740531100035103533457810352889248439005349125353749064899320093394907296451871889737010439554498516317047473299040993457858151927348285106110156723669482064292818367197554750381089281350740617863153817508859264242194699262150024353582270604440714013035552765381453489199543982731853463066819847475361211989024437860163374669196836103710368065068409000189105386837643885765100491422822934536822351248693594678157492435277802516194102773567576347744059251436048800886332306794553712594294175086806854198777160000750368471320049423822940989610665429192718640679879271825681100110919032801242736660005770983498225413749188421451726221470675866584693469902380284176320129255392760756460814402007670978261394954827938757770368723094285698447179900376866350290750781234457894875918603749224812949017273919909460098920271694487123112157975103871636406453215650743441901018938270509121559961655459907434724924263709934108760825864550170558730999124052760494358083131949921110112014374027544227325423883992405867117146142894577532706435013883159660337034021037581135454929694924793070699943032107069282509433739612329046773364473788559946676809883429448812103976172598320612754165568012189958910457643178344602329901029293349886420123345629385512772652897991954311609135212893791253370785570673011583134496327193491455845587163413762743594429992813467220397647543237804056138256506706171432643858514147368494401336629192248894098684302009539251254529296145175177158474829816726728826224949549407366471944998172615525313035132059040628769988617030077676838676780943276648876858249728548683533725217428614940299226866859801438871123857255555299971540198799996620939170080895171592743871004764632622754400325812866514631210821880153710547817064038913637293489293078118782211527339841273603284166988178810431872987771046500315915927523071754516386058460075682706179723433599878946273127912255640476236749377480185739953056232221703865577076342548888420708154315749967037814516383471053801891566370625000683667545581829295798026408866560500966117592401805598011955781001896521267875685092416550189178085426189794627112580291839571271337577127255873543923663887270182282732312927783768910714540624633469435590459733468025504340759918775591910766102778943711644595223603680499196691713890126285046385178968809038801291760739174212055629940446801500809682051749441253747545899547012931228216475620937915450038484553428435975105314776594476252056173910475739472171831386134710456930551389426419809002556144184699806092675508581664477927841854140782537764493466535808511880296526325479399891592377759441747049964640356163736544857205799393766429598072000955222583829516339336957550699316163653704768428267045420990365876708896028524724019420518324540966802716387016168050555483849898298214146198031196912103528333641477314442389858535248737899990924540192430810536766533145756916435824832255984478749491736940517116227803999841415027519518785110457380594807640326246714451257145013784636169921460409876893614800672261124947628236512016750537520002135651889589705478544872387721534283523479643603072898771923041197798357778682755632666948708623182032780383355663013301842400519147451199334473849326928133017788959213237516257985007390113689262884076755693791530565205059210143153130381479481896700025843087779639697650309455180607851459198386433327670062022806807436889625333121512630760303604962806601840129881728999175642676122828297053287786562733320980121175178686059783410458616620286926853808725703062029950395235540895602546788178048187915007881456269878470113780489483591100056747167076060997645722406910853762979147029856734432041347786538374760253084671546568993115595619001609812739926397946359605580852398185077214964538582125344161005832952024413911031456042725962485216987259329004463586274588006217894675290582536336566045207474550208696747775739619254174141940109939566951848719590439583160853713567573669907265302811286125936271034865884140382009629637963664113049855734825335820339051447099170129379524112752559413467251482478664976216456595499216376923369475534667582168190137160630725994996611398467513405396930381644103313048986378538060272286692700486653195495536892279408753946296453769293751464307799228178786414599350026226208069428223318771583897083153054360602602233615535884311672327160332784859223864188974695405594201120653537997039602948642437772046735898088097469112418724847445498293379254354140110232312788780738366202611318069255883509525784455007575898053151690557336202241621916586449052811359059546416357804681117443291574835211465550644894877853449301398458670713766039742556758218903406110438358973073956867437587640503884462052623437897089840926650734447459327431940613160511171920966189774629778144978227079015021805090064857025896154541415842172893835527845889873540567726019266635709844462577713287981333666170393654980022906973660094521033493092259488201211802711191879840544368658908897197815726591975646654740359278716769202137203142268915320887968641150306801652300587775670276865009622904189350604360083896835961555631428956089882304275638763494348022559834089572148258917878917547356838427757757767931105329555460145084589681424652068255802965591424421770574016872773362342352219281166673915455285987381841436549059136497441720112191672523964340358112516345097950265439032147087345647720627650222530165261669176920821897808162807056114437885713962177825518305008129451297249742612103954444244462642228877741198880865791105231990750929762960249508483989225610626548074252871039265491703594847282600242241418377710186527819492244308699544897897111148783299367731156332200923466340669010134034738643052453257617674524705106921698382392443730345748908758932617619639638444787994813557850314712379819209340273534366313181095935748461606963485430903801885988683541250538705024949723249389803717700604935814342663186105875622854731203847525927323565875310568314764430688480987171040142487217542648251265751540909537146011980490284538672291782254342105531188525550213095592322630480308245254291076147435435450690518089454063199111515247006442830493332359361483357118394204085694468189790906645180298771622736877540778740747400754975966545249043269173953773134015052662106847911174033173345691848195512500961770858533609864489107298859030065032542356119690258378468112910448502031488605360635924307095372442667320080319504374638084995170531149229844539819883993097395618644007519820736523522451912902160931228050522967529089995906306351152534287253456037373244809127531312172098279633885331746821147549309580397723701924531073584406944951094444472708002434224586964641754444735609406859992155905507226191895756815851184650293499444738008545566355707677100495470313020539147982018002358497180530136584645335877607000246832321350745715781447710419798147387390213497334204403930767245368479886820499828338996985786665554792237548758136479449998166267438763678983695844868723546529812252269809073419298075913465429124883162811594575156847067786596792366674408740735718942950204240118188863224269893251785772454646162478981169395671113069940997338078141317725208162364318041969189776263242286769839182882086360215669218867088204193187541443507684338702697199268177058555486673811780063143562938335584305534366775220931248534310664742751604356317344487648914939923322309883300351721767866966410342546547417967862123243527218569678215930281914009516281428806371143149625949066564827460403931278019584172201371616882602397678319695253147659377970525033733343789507653667818596123136596369566091783185891674248968645271183604793117292804461067979395673116908375327567239907913869096420472755452206261919782361453635592721850347334977866516411603926679226974951128177866491962314379123470959265530121972360957642913188601983965365382331606762423216549233464727076224824048429053340000198259446723368425414432722649007673128041888167422095663342858170170239771783803590484937614199062749014161260390442457018446337837449524570880530063716314259004904777430128862941994190961502952677697832657143015821505470009904365616198010731903768998836738863874832718077604827928329771056439442902234312043823335733178759724747629541207598858110896588339169286240355751697915577738962288502178373860028324324755918604154586388184618024593122856723008907593303316719185308104920033372886048096127298223995433898558063159808563528251427275134208981270065678723081760713427662259147298806636862369231410364321705866941304812960732023547651828683929528063243547950354197485737997154782598269339685945583737477686915050371846249558656826167880291898157789561902209077068002534041747550817923809712505620630016699382955966254513885499595285170960238561349083368850216556681545886031884466536330809588399669012551034694102270851826390855778832323988519181800573817886171351325086633337161842249282355784591107159141732242806256330602969828553794097685970990015023314648912656168383067414279966908995670557775176355471495608868435861263136239566103798499644425501254741689462804093374647960351390479510848001240063136065742906082957525518330397721580896912150328054046786537742822303869935879275294672406587274825003953229203532470647138456056774171772705380177251248132019032152050989568174236537827431536390058591527697353967960497276103732727813094613563671945477641200967245471853714058533037547633010980700661709054074439844281819122458409814543623958399655827982750415250425503160357063698603552875499613095295243205275147041580792008280645505935880179886625821963947749867940322388596705835929161423877259707314858651424565029783886709066962795728156500446856077419299237931378163791605090841327859383950912220126594774749701298760626831300880339382296455986154520959916844327955563752238428854455135603718493135348860259832334977988125348814951507565116195531316174092679655811189674510918474007387400670379494467651728253474749111805925897502089962795276980254707009424300807988039594922640183284037917317225100497905187589289797620617844529266044950366203942464119104200801185994022213816651081791842317225306501994533768224631396757551033894722587610096101753959812632643581754844766182072505229221188860275835604821013500343956778081082776704534121855222526932193519232793519263313371747056768148471108138970311070096444667507716312401109693455065684058917251267814624786841053291994941933653093136861545585568909188123404125846472147113453026067824288364457891379754057992490340048504189791117347552823546196530839435844052286624156622284180222029696291092626159396949283972812949885165818126127429924365927804008586627249307589180187763345773111595102520758739600215376331293237908288767353143619774365416140970244782304617371670272100568553069679619530597166993535868818356166001685037823422151334386794270519519080662788978006369563040232545253581284672792135672579365941999318735966958099608830385250345415412746046931204131409298864750464582682141177118101293974746509257315469820688754783780289953353081163363804308944268151539775302456672535658100056853257834968645112693073911633041770862772045087383239691330217814237493871182232326809540459672601999521925352033828210913124610125137819252431514144823069608072834061466848966263702317354848984975885046964433229725045199915396471699632739105304387989340408208421383159879592818597544453711717446563181708396261473447387585887864545312678979392368048636516870958719053713383485339067492586059418340765764339836500049073936857450172992907553806338685634169397120627933649599328574592341151257337663216166067479649203097658410738544597692681950432907876310826118249584396492850373234154070183509332038990328626908313636604808049789086373595069637165811356156429813646378045595023672615328018303423984268296894654323430830324628685390987116806899639125765794978691229209157397943713684281575967905999200514931856437143055373228000145039038397692308042571046255504646982796180688269925832412939477249187938262591343525948500396432563933904571260500767591292297342357842666907638439802485756725794297235581255950897623803392473427419541711298973871903960570528844365513178634675343427621764501821072215743219635359853562526947062990310311225303311805420321647375458649403121506234860555545619165573858503603795671291499292742566568764270871096046549137509113034525636869850643878513307954202585611828667611557563109086692807463932133776218823971385110842653126680647183772472252985999462409306862284149516343493393124877922348848937864436581732548015644903068339546464298032198011930702063029445861731212245395255355807339712034828178949056147758269221799458398624012349355261640517274334890222961121017189389217041400178597617167608696248965716025068300208375391598476254845750392400486502787830280126428501788005482746511460625368674367730563104892852690579160080090063615005243665087375150688493804437194452934644515680692152092195672515594595146792070450749800354009759557267716964390451037404304680840070213812014450741075563971391415932181702516239926219315746679253619394749821201479997604590631426531886429558308964493322338986519069922009693495747016400569816306922595915067196584986475200642950589158709987209777152292864846464074431206549652847643649428026710379514557560080284483958178882880297500865330264467422556141576132668235804680175437301693649615226834451943068652460502753991764661962177642570199753099409093991554193430593386013301978762205930945908651296230837031603377015445277411286320691056837120220336216097060813857004676817480385477198593170300247319416605780904241028238012693864247633294651928465587149343677143354943622626319474298417974127791494450791875973746843187075549764627584903944201446925599071940800008720503516034929224241457375628948976322066197704246754888655502336367773188401298012851254683463143288538425444343172937419142513929195385281866633686183192916474602962249981012699541749430593390223690197583535111991891426391596975532261024811745948072174479380396021804751971127516734529453209749444298638461983307654029806169342258328143645404639450147759235077390167713323382201895490520956950336656490847982176592894637638926007110616745638603660553681959519059224571269004863006651754785547445293034607575063624241980560453261865910662820842996463411935657749386968973134412789140998499594363223430248688209284378199566071286063969411379733027722412405272712747734261845192458207492791188068389566429964170166248448416045595165090853587351594466654910924460952843878155045283148367385531608993078470546491056070207535955049933565190209036624466521382556126093609022077059695633273480674299880728280643397011297942417586416742288896016039292905147009676455804591918061945118672548693059897128870749666357622957473842589391766089207186348210148249476311274425802655300294705913092427998840979012941828598894598026372534393913413061405878204437779042507657140947177542530386235913507875469229212199964170634584843541782080151983291012257910944432175859056681564188467953338002051915828085215257506152427600149499693279995567491966126233657569202566494180997114736915754168151268960868717137914406331442381810711452294073768932490296699484274463143468268214973951551844320765852221013563707471575132147867261487380506949384479203250185821722797782221151230525797278354525469022619371318020056510046578845813068240679518712527608956778113728531307183198825369648133182295098308287234156351285544566572435848414863564358541410338650576867756770679658060206012905323644186369600835718909272868789165178336146121655304535773580396781486928394067102819689723229365242219266996424918489250470846904141443053824553687778916583897999272689854985754857657881274379375576009413331057199566588484221012025437711535493038259026259840965562460612761480861568005141825303054909776515196068735941944995331595383045252282091859936097841134922470249214967458535635733408875457871830028194382060188083660702570101462056921515672975908500422002508055635421312590950272435788631009980876246819621044084492309505297331282519563590498979829554076307954393991624552514163036432589960615819062608672705384934832770674609408960889325750241532062026304654769434408994951677769909901125203344499546351845747836984799081842073421490639386686698346223837792541477927419138691842618964398897330485093921861488470004359767084121583483599229493511522427327211361878175814053982621318689671399384705241773021588939056471406946564978247878680857288455577101687507364107601579754791673728841094592661828599231182986361622160539265952153290501600811444579948659227637947892707667648623534919083964281160479272578845776921351493003135060314776555456428649194668399443920292760671663100521116465235690671243140261865863815176242862279609745857070843901639007823143136101822691947490732673378609335912961582102962423218541925901553995551742172932154168555383559956347546483128625859264650610312048407445496477587919717182616552712618825106292546848887233576689950922552391181226727639438080785009328234526806255994033395965409929466142590660928973024840714858431763149608342267209088478623605080087268411055732126174691863110183559854791850082991802972858579097646249498231408274879772099230373458626274120437616549820249288419971480087537896715068831071665490451951945799190236536936748816448441867908494937262294019161358050312007807607588141126139750100630471949321999813663736614859700776585222366971165451078928176031237645855999075392503363268504547232417733922837046347004067976986375759201833409023070010856574628185901184968685938182060741365212293833010476651283207100856142054700424906177368281107069767171903647197275047754595386875486380162931896274719842457826857442575765596169504577668505414046544275270536542912438135448420674961340200043507448502876797675606772007900388332701218372037292026601282981790751809250115846887812106645668799459433249268116706731044914337211283912922019041403539411170842964860594436065051259122144878980120527239242803565163811589445900854558129887242742822054029995219614409877421243469451169461051501435234995673790519569725916044493053137522403642960039957220868337263803009662124588721594818507744733865419026566560672776665997959126121521385557267069531126897593054325506695182537437532181250932797571579832221191844818470343920969478765285844861937797765461108954584959431069358364287905114476704666865280628341972905656556171229881045425538000521572179439575308812214957071228576014354220978337698120746630789705142988008731411388946571539974470384335086707316382154094502071188662634719849540706047736699176202186107307836860120528926047739297694131394892000555876403803974575876635599592798689742756729046155768794606919195354246337716461835393119769800350086847202883663489412249512599980448895384234956688188709441875067437372446103690700811817374803777496494348249345115132764320990902782346866287935839906871276633743825707638172236272491832968144181255895099962823296210015538732234032728657874401364084727025060102528884422100270268288209883308424938648503817638521545400903173901784319601539429397913420605342034521726971279262746352509480841174100279204730026167782899853018066257975130591612562989156722729272051321492775196014029067412412906423581757222924205806765993200156155213430837550893217206188640555293726779547109741571679212196578433396146561216381173867969656059031943540690521504575052447124220670407653283679636459011636902203767644841515734878003604592963236439958940267392362848358595198017614005233290337089321943261197661030650313083310565594982616444706116771239324901106947244202758798571730946660753450930265594679306018578022164873733310045586367538458123138028606029562016959810138061351457264747835838581735549778049227086049367116772569555459490182364106760727592439914824075239180081472817499408183783146347467788689776074736106966653156078099790732416618494495865426817812397254426353708507822261677665538897580069526394910759537092995071186073841760240582896662351837529536901408447900611077289148310857922647309583743227629055435873810692804800872979832746999288335140044676182939774057028812197865269553976170603103958252256450408834501966830866617273913082806711134267907582250274178126325792087481628388973175832362658189938346809828025020507264816452086963810651555706070480615460756079890431173754683267639020242582128478659088388485208866458066874941021155413185823456593198971754806605216312236554798749364276027728322301004693540383911304046654136166762920198138948995768967022987621956865073285087304292146791894716134523040895312788828260414782715229823812723579221831737949200559368237191141551589923697561092686253810025122799094010242265762860330010837568615746012288372440476781121841137398057261146331434209298127278513378496178191596863422209198142428859275916363800274213735063441040914243969500460751997887950924952578027568311153370675672699351899068728412716107601071286013042800197003613832608173276993821249620501401186291547568520305911710325636419035549280221257345386724307345640930459421874845325725587982611287937762527851384803451033416141937011488542971379821628516717297655945040003860119230530951098648557089251098656414095874143467042030147604524809609915345897977960596814873903755996896905160206614718741533890697768005326907004208067997080797616708248148563506785412125019990021664762758617702581529964516562989447134647698013425092137678752496150464549806889231135705265278059321156377694703209357432529235567440902473953739591699574767813593168470862013823332081621834455096699540053980644732779592397292478010683845898548025615315259982223047079494747475305484507582813312063008096711539571140875800279008850956244087164988147801736361535035081031596884592605450375534223404213892441175405335381623951844166475845540758969759869556696572886283579706297471552855749695906014431408848256419319310401083400868917177834576629945447502584641280847318102693364713896021350713382611087663814119882464203215385910945024521932773027041775554824264420301421674456977424553736396791556948896669467015109216338657412483849190950743720716171009193254076373235765923920311951016442063161516068043846197580895214907233650838570325642907914321520768722418948247219933114705062000366681257041042024322651529627520967869118783550670976239296524535912809907434943574337292607101063751169303146673316093598305533655400151777327398078866824569850405029464018775607359429115505114971858230453720848466176584369897356962996051617063020514267203482558797114532265972717638593897172977220524830147158346327365823034345952936494677198437689235154638750916563210330308214649326093228359791455363120988608833063913761121107504750858458239398715710019941841154113798141039571682103546147290708604613318276558393934382462754544160316756873420983166652411641540382940257822729420185408624910813909485705149402199764510501682177874066504223044961477611785649172668018398746943655414686038064186772117226643966845492521712071881817459792153169443476976980374419933372942069504135701441233043173652882422476327480039414253694478323374168659510438893329629580653368978714631025768790169721195394941837181254682000484096869677487595384334992779901854698083970700255044291989408935126901672136880178068238218844044606979599370434591860861954807466697675075958957587387899022277995309434632857726565376794254703635237293093302035812339978406743272717460247144635172087498414100529074497625660949686035033719842534167511979511533268706521601013955809052034396294218973378030454619746485957810083435316049110154346534322695017262826336185059968391473934057121264737502947054137833404867917210711449848163159622418961033167505808010894892004132268856295706091893329906110661953355170798932787532539249552127999445574840457968788246477206787995252419905064925257744333152281233022747083507907480373442791047813602997669920956153237766459346620411791131471435045217924062284299619811515053839481286479951576190519600463574398001063534505360845337876096894176485551273583171293845992368889439204971338431407924582172187034260729019569504499742902749234527661330756118709522369294376831552897351039134278011426836432560434624467282397476806603933245495874614540075783498134974964981498353171716761750063762726223173180891790073460139749493149707156857664925936122206222855185758736981813940950405399613471202309049571932006643554006508926661939858384201909425023318078529717366952517382575803330786362695985214638787563910097983218280188500034731011617616390403084341222770016631318097104840789876457639521593506478930859815306466042677277731784137619559578482302893521501914777548924399194920481465548258178530642288199523359970728160047526792176738502504236958491085548448914993655460320072134739008626948141683802763779016162475119726075611239050048892927721665788198022472773560270870694367675971819087410082517636238017798891061062363383090442971980511819427158771381956554572106329283662077049953583866698403587438123797400363023995561126000634808875686979046448146879408841278731431591282825591895037455262483946858078864273120106663953617177260615939638863809172524808757310600202178301615857025121586765331527973751377637558007634429193597091730048933814250058091613542268949284060721808780757738518209616620389000337136851000936624895134502287821930386941481602846120100390915379281938971215538770694022384451598009506713179846233192401911300552265637409211876060405387813881037506901233551725135389156995228760421489148652082968600373553717417476293112532674544420906419092752177514826337858854563410195564409326537661857960943470899109847414161314842031417544075855036482656733694241126486141377312541881894668837951381916562087358962235339084208429305387971153556918292779423892563739362506415755341065838545438749673590591456845778950501508710454597455470889666225768274827521487240636042391133508006018220224433422295896241217143390913305387641921594783054634822203082745929585510109216794177833566387817215007821348254148757331468886566718483736620781299759498547203034421038748815897368271687282006770532224542108248655728791236521384645080247344501333888115806209172423848362210543803299951641286542915070925284638468259374156602464981002462778309939295231915298134697180710097375997170498623630970786578386041247801862299066852160862214438799974992668124181904870427140005058343487400158234312457355396856028833840453293465670737882059273816467074783159204599633283471552480042504053804359945020876114807015543795690045362604976603388075795296124399459511908548930496421093558308291918892578405192835866587292813931139663270893408192756886130710254598830651430224615513745145488696023917849368489608145533972159751734248116839089324267286295713374852299540207239781687942678561248780763053852693988830570923274282647512676956969165881309698885779253705702480891396437180293260911273998485828185138014603760536388172674874098519913535777512801641844324636741902230473790639469750643585317097516873371456798412362644524054555021790097774007935084834654657559511820471027855665741684337130279226061587102606823207447237452228366780866487815465635240205641672153594590111808656496828831389362600672568015583818879452559299314674256521820084233517694871721082930232580214320915161399381941184118114163098487039542679072806513387691551412636467422892852297838541332106258926932995180901535519450630971512309631787113104556359814738295534560800366108439495600780620912909957730746042403418676259881857508036660986504878281060662987756708386716344639503089534780779635560551686138930256161258179541683006153917928651333089884308981980673595882826307271172439242923978312569375162234892663421665132241582493972361606305168743754663266240878140929036211832314861139307735213742737219280089755381176249331551731934455940236251443602906669444803815443618372435213058186974266242825174465763484240996069032097178654466432367659998151116538195070379978378634470681319311226930739539234153719346462745989868519790916730115278095326506333997355779647889029175268439578758842096399657354222574745522123721011142586991982115493151705987003950771985250572628446096761120982998874157732268537178215071266994860345010754144049554136793428850388563345919530896297572389683530251378299704176249955071011534778471928826693933120342128054800712222267299011786381277510123806736564086694747479596592639516387702505873250927891954400319230840446062476591581836711371721295944466861604196640103141253181785043295628316595733060742810432472085604630080784956950494205658217756835101323679597763003104852624277403138503742362020169948127742443985369126670207273803933504955967127463495934273375706743886492500085534290946253254850069682411177231758656905943313644045469257697590605037512337490957137273491508265975644516967638021689297451091579365397078384903168115862608592974442282445305360151329015493260222409722917200967589513143663196056304503632642543506561959163905784470975104792263297494763760577848361256271612034594451550146405524061451237730444150024087640765234929992051208030433432891993074962154040781332586180002030105018674765761669524742706421527167835660346242154686116406690978086891755400051042004043803782744438728160005493325698290361246979377974689159460693159935913334357714669697516656493055797806878314763210112044659649270630790460258373949246308360951703810911003291118159176947634301540350700094158417898359988518010918330823800711115167832263437997978127859077658439568838119513893120766380669951118417797150657141974935525920341419789443709774336501716646777395437158257981317345884173045449403108676075954758475789404510885336876683207974491085605663770797048766706844091194653595860426309196852898580961127098984104988099000203835379861872410240769892179195270040134659561936560352531907260456488959326183988798314657736070122538775325408480121892863311381484728953700251119665850534441702567373731126606966232366451715823440050313901365116352099186407970537476828585852818745156482171293981570733199952914908478511891043926453347594419230090334465026289886671220087167223416797672849758543551918798652942773961895429678779451972485110055103613358578923495839279425398752638812912979656164676061129896588043850263181590077195991723551224215838605973272029845349439969156264785649996996081950096530109433288347229317789896451611979377986405268240830612507542397336153918521737467552073411045582643119505125266417859460333636134291419542134170854516505122432355497811556680811305635611402479626149245023297570336280168624572552582016923133189755459137803191953226039860605377646065166712511228093834135317137866658760469470789799767785615281054667722686051096891771155420971305368866396540393474833221054150611281416177831141095370156803854974869198945527847159305379210524054593518027690485829432462738810981926233611720966109713773717503382244258366961645067415304562705165437322380430871374786371028727296316204579742525132879109588040367238266912984622596272962743331223047112452183105020523085431871282558359256203196432810944877835177936519050928650045817830779483268247761833394270910924012276867582266695962642136787442785381561895550630304754429187488251872660049940990175944561399758193413918632387930359433004765197024455093979509130908129141946195741501706947889467176936705996813615838370505117657985949546209564340303186023860783813784638628614665523475031605299236251349248037298795731410794214807102461975125411043425507969128506006883127039508563477982605477256386493491777007843964548700227740926402347803133921652031053408770060216233169701613081294167957543779362241804285690446268944397029355418746686599235689564669832841893300701233571519307574395572922063856693143951086555632117574702526418470424050039772085519017656402599997206083005667785931194640600229759382495132219182577481749622213798968548111737207500642673852475768241314821495884420691461817242647723163545367068659263021585418090065683378666831290568088262820494072438412688273267952467519843686242054315661387398364471937512325836889748271915747248115717607481185329379604518242022650811069273124872049398760876736451247007429974906631295191741476916989434823595331726980623717659990481126172082912493191121734724662551957988779585864755929300243578358982698765884569465910325619310779072063968230859909543707520330436298653083600354892147919725388171943286317805032925480350724572097870477303114191883212729951011037332634642487839418534451063549884462313540243313049210868062730418107293650660766349625338378130314935672145445000951388611119968604688545160396846441096268781036108540292137012188734824358997531253040612990190719796407994109084027245986855987333068834403868278214651000556421254597427699746263234049484438883261865509149036962319489550033682322968628395729367993978751329811681756735366908874433800449839361321403676449402658080346408101338273742011302424546752809853174791061100366745909416591933359534701808136402058394987360867090566262068580162530575764627676879361555614068900950020180419122583497487211917410844910358245121671865226340331285575256265805428447366533277951150427440891993455429557149002500938291386666835271950336349933454746632045352198732381340048021586918040045799902849047133308903646432108180273262570427293737185148409181739844667704701986210933882939076036918067810920107407706964448172806021578366500998608923336000491903683544485103882764647417754465507706131659059368538636499591771680712175053407234375467509647045822037075266939661428294938929779950015528338358607667582243016087666444049058520452062014994766612819942475574488419169102532656918015371369774948736452809231968484708987690326214844034423120748507431782175199836224159017908279565332080355695621225670834492299258731100341143123823812989523601129014961308477556101170984234101148097977868474811219297145645479044640927595865087816275834352575614992979295818577364733514661493460706699493521239352061971165601733569222501863158216177403551677894472306133746711543216825826652996267971496297712827200067715469288329760910264569620509183217922025059112452801824118440120211994121998308112796267028094714699463112408745717241343968314381928679009719702359224225814374114244388368070343263105015334802732896952810376609256830277921177728204186965712189792357331289685941119187870777457983436654947778516219512307774865316938313877803961597613169093763097848758183133612200788114966091295430491686143180963635882167760532868631677253098610852833878112725420761394064744186915779426142463119754756018823569621820226316648812344065231241065560067973225917342213924726846473645244120317717671202103989556439589300862065028555461443996893861308324143708028997269142482413173843680004057915594108361577010083195534561683511111148618178300283324094866512811450186905924214614873048804900053683070859976037829835085496086737704806538845727512781506599432871460421967016486250348106839566689789178889147604136517507962499186892069243185956479370730660471942788053289858092578981092604984797068577736702919133315169877201160815285374347053731338550309530285310511079852862440387529114462275315921298044429477650524996842590976482482980031301776314352904309194463373112337872715237008627792383447928077296195225049639573520751621822945431000817328439230294608563856423838095954859069945919806575517680455628095668165792128335949324327001893110165892857465889537318957949755511275504279662268480045494460299458916259312224744153921530611201094343176226198012046156579629265783464116786141448628040242550714245164002859101239498867630986168312159825728236990772761107512124018242298686960018939913522777741313293487724555066568568722864620935708487914907507264392528211318542631868163256573806794527265586339648674706079749953737072410715435017985926883939337610210459545932422358864264552340095990123129079868154842176214137221462863510821216905409707978807570427194002844610576180373392321608264601837150077561162619857790727629691510082869979727140965245335789542061453109169575008374309962706783931902682541067318757686185853850872321916815849771645045691109553660310622298046119766273348688325753051888219565775119100714191726479673288364511850292250993471238273703570472138254032811093531678891290889833666482259484449963080441602723003181796532408653695744802460222245686638615840326938345530986929597546865191299791699549578310923032887800447813025436373072611827010126622662098870613151988199159751555493696194581745209174428628483076903057186725726826005510536077311586858953609580364626577557099847946262647979809454056309481978935360865375107101251542657761299193826706770438267070623279874511315256297956308446632455044976569552167546749044673151536880987938343195915034167581031121255142223138963938661405469272096536251042702278048471493869515903371917707308657324761030664399699254516788838232780298351157929648691008808252680483402370224048152191461222915401963374122609451695081489325347279710302885767728321827713283300834115847482161442461271156266655732812697575691695464307477803245435209373851572015213086907410796064663829860956659679724940693418353284023391232548060274834612366015372521104449301253902553683518718264987080437094616844927544340264872728109994711180417732798702684964850737883610593923046987613180848344977412359860967688466980801728078155174643291153634694964086965079165327927058972972762349204807585239220631154053759661432348947130311914534621345899596231957281695709185372224178221911455808917489973280452853605502477950456044313375622053552530284834317214231786668749818610576213718316230946793041716989542831951356395762685302018248392249759089884327508259573084409199353882650055924922316344891780496203640953839816159757853919054127210423199582171325974334852356043731524037764451126281597964128593964561910345711106234052296913597909974477421250332571969448815244040712505543906962036110856002056100541459084219286222524486447061681490865359022526089369097071486462030283413221891149546791241874043430735426177471572399649404742845673919216581560061607648032591284431340171758590863759082579227091565389627142535929884744476150521396666241007266537013455548046286666629433935733526265387001981524114281062977864359677108509306628499501311370994049758246053159902540666814510492646487391722007251553711285343627589523598632607491343377612272208988503558452153045623717711515163979595111035203128756082914548121820695950598278017442099296841478011605526751760882487173162661736474904619767701076967927072800005075778720602399557139482350708348291809648698295061416352489594234103932534938956935700299056634988742956835695325486478457243808006708342523801239753910440743036882137608707700933200743081423825290131556546134425821278001080301130070980225466595117992946370793629940103924465641734726590634705444733746010882421222448587121970074802888737119721181977685949113745976050160241339477127132572702177750369582863383739846831584708162037333004689635306023779879466531456783191474555933632667445390663032604413745162890251380500515810205321963153511995740556921152911937890577817851558242791333601624974928824310745887762434486281828396136963990954137720746464870374058005442108555652885401765425975634006823504856656284674334141846250457370139672942218505265338544470071563844003483914715228520595526890948818142435292067209561223814832114226024950047815600725851911080651292818167716394433527871259188265197870462560238069069583584329070832638860443704865637134054019011319801711551084937220250793786769556470265641037743310280553973018022206922994182445952391384114405480012983613074680721890262611871844791562710791929014123251587576768938072948557226484931783887838580320212867167627874774015397724380263986146343544275762230856379741536742991065391574120867571152286501453290185475473621234056051670717477650110217311415035402226458437069994590309242117358599733598316761798590567417412660504484456752305213946193089952110967119698669255838435866600950784693503270666570938576819887207772273063612430678616465722113190171787948203250777816213921424714388335066705557679298207458669548642610001040381166515725240998231087754780288211722423643969861534431051082724343142729007022654314511896410910362396434259130089175378746686883343980777542625204754620494855615479602402240200932033587591115686663441327577961399313561273140742057777632115685450426505525107440905776193231105452360435115840145126222153774965268144849365577997513129311287016376928853337779264344196317717406989523423684136655282051851731687117302343750818108758454919083326537160602122453420624739227709168926500511816688384280378930844797459212582243841872734506971418409528041385567459467473391995066144388729554866699887219011340532146497181762863216858847882496339360821620234562608911709391615607508779253660174800751115321860063697662697898524709140353190460315553299565295188089236326239477991600250102975295944199906854458009521788318343089947581880909314647837552226622178461539917337421027932805978391895837776653224699138366781174950994825986387255137305240516695020653770618676948002152633671336542230031214060181137899668497800246071612416828999857636543426712322698170626999877114159037708857562552981175984375893964022771484216250516743836808061069079447660734732005982825334061324923065924564682559774314746023013407034220673444062815241002712013667311440625028693136241806082383988503085021636769257443756684552390908886559394138593821932646374937599882911354161403566194125662116448995354337841629282267059679904108578456162622582697473345213726893855999523147631283991278361572655415602236985228961619702655883127608625576550170067101763847550263865690732470867800043691222663287610570300634303850937554654001267773451749021530458380026659890174521355654461002312820013694259070169075478130878805927547216216866954285902878203180265292305583927162345159867815710556738880037376553565004119090201585929765147999384297286026654806577953911415800992442757739839597975323863741707635508477661925018807067625352531197110615571459578365452975200768510938006521349682595196226215337812831195483564336042071391617116313438213687058529920439392808570687176743300158415524725716831786964933291490827361544319717393665237302701829920447836338502133285140185553378448202599956084976286488872739867131254397100888474284710539052742008700368626997478843075604897619913045392444742694399349064403051408382042194157708936448067875263183866550809743050096106457489158832334427309286336864034118944865679741590492478605799574567706608066770374330316828877142177623301332646310546723992089239604122962830123348026301573169522984635918491669216200950460747852321514067551203384320738564343723629183855124234316273599563138523738033178194967734651787251795208789832296177000951569248972847340439573628927608084846326532253201970737071591879048998679505354689125849096187383983356617371511606368293366524005904359559184719232559216149823335688155218177154441627080888739004957815748650703850533930417430197679474796075182253491924488268278538091229037998629346445315769426848342917118380299736322449237454921860121348983541866862889857384939885597844479928748956267572812403216349775336781534824284358284218030127719355177374099997316163196026366131896129058628806276972832870676018699866469509705789444250475097864566336533327443109328471329588465994295189436605774850583553544929717951377849366656506996933714117511420227822113824321783063684176255833078693792850208360763289000240665760444281525788702697994873666854875775622756591973740627439276899068158534010338693486916327486653611641953140824834775103293079646288125997720375767672641666692384893888588862676105022482884721461507732039658145076708593760281512667533376283715482451311919759643715189537211186238001175612575116570059619932822178036485803522212209818325540156767972905063647193014104537202930414771160452306155568690651262388541557770648965328731581212571382135230128243476834292323117588899402842673301231650437866135686561564057007874145650258462231591907008001564983274377449695754179984955164302533988488720687662323672891854203046550283622494896729763730992837599405887391825318831606266340151700039927839007094330510644919132314011199420743349566931156373680912838631830482164144223727566291237930340487876132952889965203488479087641025952004933317414630266649611109252211150226795241796395242822558309255362909661343954284041180010929694929800610235440939384179422146398370525395041123544258501524741742439188389560618134478608745365007914236441356852893128413716884669653630106908036511594437383686250409479749191516312176635539660992485934691134616974235261754649879707025184574152705872841053251220782776284645285944219034885650029740932706044341566949904267101706523832136571361968221359736885550617132055344039322814176840659326651240289356376794482878300290455472745936116179017650932739135582762786416399552151324395384563448231994148535318870329740742463403631845159477410855264913606681281498602431480212041219007175903795476832847067977985320169342229223293183763994586141570045580604612162863744050893750234070641787600085007835281468928674410740709950838181308618926411357844760674999096845752506440565324772155300931355984365519451466485225962636040106611163483083688063847119552123413194157702843342884274208995411217608476602752316691071911231188785343016283113272989619318263209198442362003783285529671633055385301073239838085829520525242853660616105453242078517251241490613897755083592654849547708037087835645351947508085578317599642685410678069516790258504058457570260196105326840528870225274811687752523890698949046600905335718068195688719244778320580124687342564930500789616143869179676216309130552207452491117120270317839029454352462260224469906824165780747290983803899367072164294742311531001652224587593470520914120718515697245291146131139046531244594667293984188563582591658112011384565671354353572049592777655817949172430815549122960823820477095683091700494661600846866369244933061897954072002183087249325385430650956259522701850741687798183471537252525193982860884953760314072378277776675333160248790328632818010802368852488683512362834281872302466863738081531583688444845134413439414130677248782508743775140578079935459855039802262067318986241731438565812459928161606547139793670400281513814797791226586827051817255967472920698062528040306347451244268688087011904366488198596169834557491281993870987714409529099440080087120726462765994127971125782706526717605307278299698479365787279286954259166675343626567360949367945030406176627126833811541971176537930514135802716595117763111742829543863652404528006191031492222262210831648684668487200658596115850955191722406781991524285991781630205595045883165643228495135198702547702219487866107329766817322062936153184118938279957509206691961930008315748679015047165469052186269376713947433079926111130142641305207652009444309845248009287199047470678950642393106945359435363513982694450615435043483877537258496221335154927376348197601413073292771189990441063128327955446381592300326876245217275068912487096543198850491820946677672464284510489224877710640260347613832105208259708167052360861947764686683120303584166859625806416656157177559518143867846769731385433211178141389565348311200916165009448555620370806079178440203400608251964283392988355018447703795007275970143125012165531819754423997136739494791325519991128549417700816817840829611002670585160076909665798397873310721836633190334752978121309623219494328636126020260230355666536717683128819285243813959632670008635316903217941552120264014307153031704420411945986120246321403240060636060300613641510487977345651852138910907243168119717006192143715206531639556519210267029610960674326654740903744980555518482793772029150084132362956205904843002847331338328702994731113539923910945639264573835213588975139961615206858120836493016349816555159527167942694724391698810114786027857265345278524211990488854960411587510240696183783458767742253302632326312695435373988344441334920565722862497624343497198314683214697088834638084292540322043803146671664804949406873789360466509397546385619831692366763105577524209732552428081414611055836966369947658323312412969312591066057451906881132451805848018328789135823543811085727935485539678924789131885884512545733579652783180347071351697730631160365463045479984294624402890124633353083778968709852589577569795976562928683381056029634549261955231586825911972881830174344391424750726627745405182654453506839544573144799107865591461274129662931521008644943905787926395979146506962141755156947652071457651771209637552016535722746222732018166436377174861335985835188363207408887463672681932987742643625534234519885467267118666273860660521566745575033722468055331571430537899805162044243615320506832239714967635781534940052110582894378107387681283267777402245472295523013028519499129013909349152181562675880484625189576229925217711276158795389532810106177901055167956264841226247436808928997985196030150699735011121776468440912767892069396110076195539106589800251615362152219781707014646066729116362438657598557864687081627437904238269545479394107054567822157809897860062965164896299976145345793705647336314989555249909025463516479438702552876970322714162313877593329078732984183444499990076034148454957636690518720614227661945338308262343391943836727915888994543582758524854819920050499399546407060131194061732207902228582201584534583470969892082233947198060402854934888314787190203391689739014801272499191501276138528997141829416477130014104453717183034812981297960871499264453473095540440046454870193592630501116748782423462614966622169758999758470899803221368605081579176199388109536165789065785950047700936563802857350873010724496835507984477990746758338494575071354113485061689065968974500707504688881599317960765378476625226747252036445823529433498816417494216127992579796900924573793907196084485691297322857444182102032048039040827362878259739931299118050746999959690607474073317058480496415500530573207587598498770973633482049817395627376473077238801788423975320474934005787042606678991366089541345621309485369316182097215396800576574801978726294748706388155471994799945337808708517642678214422651721509407776784972423053682688573737645011480830138381733347030333804864415741762431657834671605652044896721528282746864475028888226896907266955507686529122722337264265922750597365301314882094053369920568827622401442370798387358353951222376841343309983693620136631430413410221632566136728546868095985891564373130347154978207421983047278952187184815330359074884579851356786918852389582816670140034086803791093878091227516942558607036915901705493631994489589224973335659336115307806141563446105671130206908552201137468055799388074654689010311502393085870022417898722207545989068571066321881822352158827956249123119194883540606016422534053238694578915303435015282839269147510156360764777525306013156204655167974229433260904067969881636721035328374650879649936928920376343301932426185216830743123677158504069609990287249908657308427477264301549856120288531139437622599206573195680739762410967221646013818765183603959524828151675593063608828779566435178162295634533430540516207659541720528383384575644390737305755772000422154625588692999167645851704051467086658127870772423060594620854843908560697640993428475859877798877618736930992098614122953560222467064641215647743608885996328193875586192300507444599292397861802891408462771826668417151075280067687790468422200592986997326789634013832465781047689452003761107848958330502776284209936011242882419305128445242705357362928228439215235712569214554563160517087880523702098305710064433340072343901804677018503955610629205431868501248920012054977668757427499537999577078843218915386081573615721384305079163853480511875206598193902293685524037671791170705563847445221297851078464454284003666826148558222069206764693904347563264546142105960159978802693757176470938423645188133316308981012524974758090922164191855286365359922520253443938225906358840621819660813181976392337461728403158602759447505576741060939233889589421648165375827193657473723256548502017963656998239114500095739618506601385008332302710583673395879309669052374708391876590202192281072420176937959652540737077020033368643450509141922758057266277876551948498091822993067961191723368220333159643439173024929152883326088010676822483185285951711667635468377361184347646176223523988972918465266153987381466179273685659917219510974110844938878302100927579487094012645199941852012236110818410078378395711422144758276059209223018600296876391323163512342785669568203214668785867431018834353000176642765949637439334212601100768016701601848752001476271504811141225044115859851617019224984981567799610295338492355080866776591488276427231341060899019482436898056431021094903860734793908548505656857021509328392827906102366076207907612367683125405222209830061560878753041776377294631582346180953254702074093146164030363251351567496231779951710912932101753790984248005479886656018021362558661781405386130668289019481347186698270313471621692961269806295635584987545799758952495918712842901794006030035984660608740714965109728629057298444551589133121063527654724885176041799476514554250037087223686474623386722141923040553790074306927716375018741286533835626930809899414767599154993902678185740295273039715817895726416490071516389340695278195935968978251827430414344294801173826116301261824123680588768552224513611143879796238501938315354356862983225023870616901082710779319141184074931995635490013812682759759601610543447073719052475542276465208254769073098860705244078005330554809201444818595102113618144837292648361675732012824978684472674593116498938158733749725304434386423339235818128716359076443851592211874554837514795657742424349566970215950348009837347887323175058803466793880379424026069826507024123429717346649357965803265004731512301461015276719799463642346560471645756515962873804923710561812996023763221824171041419590605997840144820894815703230371287561723148146690035905529685618851739959402495495107786354109932573797984386754417720268110145314054500560958072702997979423659252524382524323886269637192743885353877531669202854128789725166248528326320252047741280617438182610562149019940505382949107702165514956897754042451099765180387027686006872500257036261416986502636837258210487706872646108719126886381940353375381760102910255921890532216870930001908941756349715981780504111809363070010535485001027698895777130895374397733222598733877199367914845091925912823980050533165797644272629673992121591977481632989000700661145678954153452271293740172530958194702407910593554321347124743070453896937466103522274697198669196558220546831961405560520938275672578829651415525417324438939686909354192954934761004155739777952311847120642809500609471018575098389207479766702673700162057083523987883164019817357583151918473056776683495826610539142385218324088376036172507247820344533031977108617938840138188996732778947817107834678859396271500184446086690485070336521434576176425052805122344790932504074200643715929350268564011204907953392640143735792935026512960800105011707324123069145141633449338942658737534926811200925871809087467378588806325912924432520923975922609602248145349307531873107856914507367024558239318429461243462726138662803233978161464797955193165441842534539096929770150967272633810515944919239449530178649065831139713403345299928550050485000412271946584773159112769904480467354472810149308820858326450634239141006492664338841118025164768514662756883272280743805838938893135784629797693375203874257306445042206620298619876820491947120177927139904232111438616084125322722434042556262224740973974500777801574905571422696743961561096765718100280108508847428263751457154146279470301073848740940330509772287175606177044392458714900695961888745589299537430686404356898125241251788527841725023377247894747937976313318949801735009777219730121605142981669425529975129805778781035512262364401578229887729871686748588442487238346280234195122804514742183416775157981122744059439990841373925891087853182247162017599974651103863341264609402966308910213554621615555466786621658466702960062723411270792180869738173615334237893706797675274934495096542264661155359058452537547035994619068006946197053783312587549776543002585692787413088749168416644485922909191566749215394783491355388195860453840828819495042881605080906195298833308847231905241987454695800741682819720269982146391937162484177797582273464810638248477103325994153190569056769002215792250443431039017666963502376715803628193089712983376063166028316153989085191484709366777239502014360752655722145162822473560984313974040122177330206142556493528650655353398390744769508851800393337982262340881821323496650803642464078952793159317720528870016344761727914558126182128162055676911936962651385117932235447646988322333952318260250680202720855577401088104480163198187519444988466683080058257251590801366945486059931822593693553057907006916198308486329981000897708007615441598344115556529396460614033680788903233944988575692432908707347553261137024347871836224674340435840323327196468590897374370224496678535616659112504257914794829243932020125443892840620800305594649760193028756447033108724224688700753164771548462261937934092377427748970061992932135360008535896188096415578954591434463882909046019653769390435923428502893535749697604654011666017379574800131282987178014443759906043993237063843398864562425075510942593783194335098678882763366046677086310738437203794418346591263267295162324796721582601012649368740831566548946914905504107851367859364840302042435450671465602627976182157147691521986850824696981108613981687491595245587483617630738706653724928985648342196122511538224365640345816283599183811654755294520673636336075908245208530596515350645016119386495605821075104447813809397178253499038705848383214354180046647787189627781398145136124196311820019885215203291271947964362609931552465096957715511526860519959067830032576567572124373000515765492862949415930727144016491325457370133684054175546521763585456675794166708987519072556538756580093633347494892185173216430573682162953050815647179123016095786904311601808831797264268830032476291777899698323265585926333479205128434706596176967815836837882215186984431483427647836166806905467175874735905356148117137892167600558929305393944051088200839073164794643036979027038708663655554957294450281580328798121221226613067807273317638805740407908844286363237864292642666179946234778440349553967684378068600757881873137048368653625116144549682793812705559981248830432763852258305379642467397284440647529691281984226873654057831778320278370356133250440661622659619431141400768852010643182579620124615844994268208790653407292789548001286348692399833238321758377891173163978774327222464541598694714522293836369748175887776845634456393463798951368493868927598078574597015494185297439029803576741445279185503337974118216541198914801234630107142820214344003466450992350321099364157319663850536960218089633806999464623233357565196405585421023081872765943121909561275392991954478779983317740563595596264613763341830165786048317538142131580132541820881255724055683130629235571816970283784058530552328063012351693559333100690826704004626893205767178709689175506414003432574177446316911818564976192429026594162756555937346427925343167166049156990942717154914007008411986580165476025882532533267418972334301859850444225467376125738478769470880053042428922229325193315754612665207503641660301576432242085738851292053574915903604917825648962404810314089916310941832712032139410435565898429336662240105803020288054104152530394931725768800329162950649987414772816843541694877810110228910188596569025711577651836819090426564804305150745402142341353427611088955697131345718681515119854016484005136425349688482433508663761978743975233077265607525110642381645631148970916435109583451818203132531581559953762035944845652228383195037872042091045884687563659635922556604911279477008187718193111416508779867736165450713467962506413086063816256072853977180050319506072766661623799617950386055009442107535312839950280950737913495767506540711801535826299491203664209823598186732379063017412025818741602246868829159499453206349258486030296736856906342516598485927898204642556611696568209524205682552505892990117317775799703049062334107582647780694448489223070461684769427074851606796046976157888697837588810927591164326150859876436560784851414597066139262438797820817960628308029293305765842294468143284303076284385383112915558131560265363286654064347237291211894487545833302383827703399641058320883879861653551946893114115358193535469676138857828639017456415266578716890741904005270465591445696178679967413718723031218329285649518619696079905616379884446025358829217868984877998646296057411592743574191647615377940118502484315999435802734511965912414487585954024993105775546217682050568823868939562894284893573530111750287431225788450474884087401245977523408486312552592235446549074439570387252304563076472987365674643264461963163661355277235296275242052759020526808883279022382136536816589329510054454897768969662924257633525948010926733986066536604539898932934328890509268818180716371396622578417587421114424618992426267792732493345091581305479579311593074631694690472326779939254296343979937397697652932313197287345569800828475671588152769456275254751957421941085872745387982113830300813191833672122439257352999819918887564537168404416941943165372636121234812913314457811652423588242356061452016936708370184436936092377656112433768105242171495611449877580031256130134027757028715143258977705949085180422611083116495346514669391858677585316957643816891525708214457467187407307771775298225755019780950621985598044286523996776330593252885026148618102352713378787530243392544850026279295861331239301854749271995720284115981305358610628090423575020628882695288857977702649012795568920438664342809399831966044106017025396087763027244843291585805706951895956727029203492249372562557543977842698104581478504725363360010031477425003027900880282261064892219253465379873168748714571120013883975858474114379839936007163055823837111790186360089314587303100685293273239288590240458699123507645240175521068627580698841616136752674111130983985111442164095514283353293702902367059216934208277678694835790579411410935065792015637725909446946933810809515597677870872373738600090469613461873361997429884788377685234187631294266877250394606792785081142452883647335272184278011004476613934846325538861934657172477426975075602788813298737366312641844177500102182623979731407036288629105017823647183123230502881267298287678402967311571944743948956632391725744049201979756454846867439439730073278693573913802917841461746141707003448423991655543384372621207186538344553777768734383871432814933349594896022860832237544555681111704401725332012648645765508773316820830155639022547482264859812290939665616774028018453948941443320283624338787435972633703857909283657258839729778937840853101521024566490470810774629106491644213876406529660799990501925052334573467724609413865751282546239470237151901403829091901349720334573878245690616921620899851510246230532840264162685252144725225838532884914910141875910482652927430148525167501137288233174257604578141629578564829785565412238278371446360806195728974436730501773978441138944462476444344265828162423910304435256153276458043955012907168443677997689103831367450488476995707808647945592338837403950813532435211648900078477999184870987653084973451786162795934543111963989232135588677088600039969661439167072212127656713328303054106620110502613190646095453605023450480101005453978967051794346967663444349906336900471288507765165433251145848040642822060306984999280736023045617442277123162874287348325308817918380385790522658566479289509953295733140031053970953043298609270091145230416798583338721750751795770739445651754970743738141605875612465979900275847495281883053471395052116559565442743813563167032180645063060264851205713099633458733533890480638783034553929999666247488735878938725235467688089188089340337486009767959610415090374236354596048639315330026109818349954740375933542586821322056443444290151894535461428678969966885895341152784199863321724105464806110322934624019182784411361270821910819850923976748707939368129088973371982793740815082975341374906371338959941567464144253483804693759589367702060721171181289563463774912303471060199075089430435453589469358002896510917756280966412525457301135562304958363121554018730648279650736515581725643800629018808723499690548121085791289848987549600846852190515069504158220148912532687802936750804970782944170418215021794261720568061291958218751344942294534821833764414048498511969509152352587651298051908069934470981176113273547135096676312235363912368230968780721926266007752792630843009630596202785319630412256642952299609295301922461797979938469236208963984900989876451851498287547491493329447651459429581284258853388087754338297584792997842139083778577513673325929236836699781235258808813647884527693732817179566195860822936550205498564944878813857397328459351912774684996547230609119321268079765110617922947747409431826928536978298243703928545302612561541021828672594268314744729471733709459366544855780850808201674900154728912111642103632751442474711048900981432991598304595219335115345072009997889749221102827800367307449694613585894277717901176667893723231785902877627868403199456895790781028951654964617583396429710622780644308970179947991042293841681962450166413312223886878790970132942234767694153915905625333975360540407932611475556260034346217666669897029382475941623931627170280080381545301415037881621842121805899129950351559387971434446310771026468225654552260620764467223605261226177022686171111136782062924517111740451224179610004629363980416900106083038621312594098780033099483984918064447567090652803666425709010726465646008216633285139913546114074208654693847587950021705396889783677688787170429455849564020693515704274573179182653540897712117349200654473492752453155087918759906450379364612416607639677024808768435088940515061068490947888670124618078142930045203471982095629582408328718489325128425206498713353627183844958256995829628902549525427309669635085991998249882448294071048871283901194640870522564171851877811977081746296975762362749759179736770253815957068552918564546324275191631617306713134891641166787954408639818516140831460892772546785521668284121990759150675441105102654514901556039756103520172599735645047492500837386449227512650679769125435616102342257832133579635403610860900785110347033343077892594038774944663862805043940982158512531970557369282123750546324591180410891920615245573804276093637232608784120352432147482858879141514888768791181296578549412290545985498347173304730508824012499942170194916181621936564546941827474938189238907992815404030236395748300777002637874985439406783486150408212218333748652748857124613845043172386023423380977548591754388557488690854024984727347680913632062126360970430846119259603345953196493720871512315592510111591872829157789417226349393411628557652489168919020716729038754665600136008630780037211645122035555675937062722594434691697246256135612158253543903504234307811261583324101955127411588288608181220980366419637430296252498098471766915608186206006086590775950044820118701163296811874927994024967986940673202913189643692831477500059473053238313176177323240501015731479883878702891762783531527819323972174046785328807074060692944121017675758069824842212399245361275928041662391285173765915121085755580447038745315374784164710384189650606481728267131188018196116044650891054235612006943784715710804742163354571999008303371383365398858695328582087041936787599024826431422573018445435627027054477657972205568971256498967989107697313796722446774301866301495008761511430046568669095529930371632975526223355144217661029648646435658958728694590318068767857126879879081806585743333893642845634230337832324038381113693280101106559625742793506771994002069543083708599395041926212534285262272701952733417075754143189776108107165799643795269223582594896826985850577624666235198970409081625465031923689154136452024429687148739365201369065172124041543058074922232760042226310658193348681126024066802460990131711934692686823082274344993645568759901371689546342176316334551909430272335747790518152553152047584176415026870297607969359621685602474320350098959236032439319428620069964339988093520548454446402020671042327152909353512616689792887979530406111337057188594654461031843085802746057831087836352549813907167455481502105544940152274517702948795114430527184793789680502431469263774592461570648932003122078468034602595019104006422722210101857492545431919453087743290694754381945716684902544399450177534494980089052587780015947562414883997796061628752856592231030763129827799120615965319350822884678415590648971323572329616813732225230749155159981325446624199475687374109067577788245390301212902870383221821174451488833908267367464074917387268245605834257198540499673897552044175450261527460760713532319375787233098130180756397949362045691765081625666936272076144057829169163614883451785987068773048122868191254066790703470131360139197846431848771304546992644621573051792323122641945244808259557004957632977335831414350428879132688046208745908541850591373109637349806474774468006078406296351801719624994176597754385498015983170780075699239071177415605274418240679572793772944424843087154383260916281919298157401794715383151218795125551093633617618420737019171438804065230906920763548603275132497765834176906977861800922173792362576178346351813560738879873251187667278979726677678533794088361865867347522500979934438059590601056228260959789802510558837480298378983148279130943828116044255932916886612842301777895400018016859313287820677180622413082143324261950520298273390934387080211576511822949524208704954550019194727932579722341259494257818908354154857063432297729203417762032097634245371309467211549839160855167363392341535509627912724109544793933028431903577904424364035283824656560424987857093544967258384660777138964164957637242948225801433979014572999260545321185673552779062738048104174033905212116794601941515072397234281946319370842395827688848182060246387539413099879150326289593005969654219623633187492009293008987602469195289037108284487009682061354801555305929423483272382081376158854962359852814380860342208620000037516893049411631833964203390975680882597472408323713834560206982923466689701049760804051106874308031999221955873558403759778184258081995973306398314168707256769255822645266625789137755624632930875917301452401302044905585472173074388921124644919419523960470447585157364309712952349882146366070414227408815773405082841246986865875017526728316779849914232244494178478187981715670412380942970502770358289102983898128193165125727861222541824523127903249912714381148100038605139115507609411115381939832960330749540450895497421465258595249573345278112415019873835918720711596848003145571900993697805128084574792297291046708394158627888860817600171119400458956825625292124637607364672688653076488082453560004566564997298631595615190994579168137084621825726753225376861362330385601939998744189373461623829778599857759000328448395242492990952442219061666235713787448131417437478166710551817924905537443017589391695562505191079447606340014475318276816972894416434067831785885976087312491140855063097947393740447496519638283645197208770098367703540143619371156382053348621837944966617747518192752780193736335613341099490294340163083409862624135663509488795459672795462770199129651246441919845588845883682258959226722521553878635855989841568240831921078975081062592172202179440374632204294537111798220092262814984039141233892793682469884440500039447113765971619858093470883279754133277196324983183154684356296978451220345085231193825264803402063238425289954113070865142737621110455472629123902865290443474138517601746293689870809731200971201787433508454556129739528911409255668309702501067728760899383837147740108849345388883499908977594036065275319635522022980651745388868080981445137140328594760660274326794815325384199441113764764956579472788336418257028489279442076664545197435162651330694524754251364200815604448206782514401329322375823335527791456808154431281135103101040109134994235769811470775615774738506677770546382747613660037175922053636278753972711793850227709066686365484608238663895117464785233713832863751560865247313672189449753024314722498545378791444155631717250587495418446554484396634978792497182459647333512859646089874301245990035073825727509462430626116536125119833341736777855336623211663756929385786057573699893562067210497683172931783538401021846738796642833168796418934695248355727306718689784289812124328213570796247116105460030191191400393791140929456988792899243005553404000652589976704509107539200434054512962768784360664374345455047017343379199487173311421365834033515886135981832734387820364823405385438395904801599572941231387009578160070233152161624717181187980450838274196698313649487446641380155181378686558802923978526244994285447313771125641346666463261203960118208719069624081564975168608842818767684558014584466996823284192561756399208113925695110823473867415148450604939898061605861056249438636523513630841371098404952948176307861450656576929452882669853076930379014139192748413462305785897669566443738856673311494912640641674421078092978606553292516319073980909195091403105685044104453696556904113425295037872566229749655285585206319607545444187099615446536174575601356226112979573445213281965173816589104256270508560396770233517363935479236312862390011527710432277437174212317402292334137884665304266643201277202216108241148262284020329688996739030333648876276219947119845052561914319951384481988841405379699816338938152441579268339933287059751402243506481305842453252633967450604512956747283917082276902307868258940942232470860582640906694249777703785536990329403701227847653545100045105454935882081575183265903968837340381036824845685710291716626343422720244502122458924518853209486219635900630175297225542581348137258146141577708211568465663395764422032275136000556760706019152702847238158696799479459707396189810046598446042840889357980055400376951026104141304757967514022367318458933462250558607056118026911864494471292833129799452967439394567626483164133066873660975179132255443115564063809507457216649539925992697605913546627845122055753476349467214527221734843044236992182429204638917169548537198480175169028708821051552938698400420699397050747735850991646893769975149672096570438452977482023466869520883094106499323441926590934416531307584703963645492571200692389264419243871711185101827199277111986076867062753601320629013227882807581881999721468502277677386145981828492926894467253132257419708001417144489458160860729733134411011684940825928915716432317976371907801785226795960935117981855846734696631403119459844332158511405257868387197479756396129045842297617240985348884669631270365887409850702256539069022301274192857198099426414275618353603457130886200774265675801906792556282533085747039239628079586603810254953257822232932599546696466479348941711683082881030740245291795508167681119819368828499580265962911158418201053722124784978842169294727290355612873898645008396113030979996504959463248082224349502981990554417955238584760921011614829445990232789244304795472319994735369809370102333275501345344311003784472334008317503159045361530532756686113790821806054161106540292143328410990186756145155603412860144793945402868673225721332939424756572745189937262960078210509029769073481547108700507418238856135526031594599171941383401220942056215787630190716079555220835886336511980139506822051159353397666116914615470376889040654898242077722808601775590938697184865464580799657849737951889546471526411557958495017220361210258250902422653228104051136127420358853140319649392349980732925627529005713429813102055435454719298393212040448563068903596721229622819023711661995782973992496650665785873483111164720202608878206463213189283236662361913486668188302396889528186308979158687471187030459740743278632039784873215788321385600809524600624121601480221384022209018868052630249300453021798539777584263697914682142651795303367839381690665522706038852732861044868139171471685611432005639936506419164176567819674147135896417387963475192275067008596379953659902125174092340367889809356192545374791537659398418265482591342343699514882908089271401445087328871582768981618540318617000041244483267872091279904836947402639048091604706873919505975444138107107844643986149854964716550704394843276322421106997326389111023335178939004448751432113395376330109722200786034106633160471352674083733975686531682048724205106828712035671301241326534816626201717089423711676566847698766972229466913458477091395444714305433525513986389185911251639131647182039453650224446099091961738132848684688967625125027578144273904990703154001766700061998229590381025766346960017625872806457430584213372918474230948452794688235357833378296781394918505227579643050282528496088438744215097262926491574192185813742121685597764791497892392001029471282994671412886736901102824057666089406034596957821417894468984268233234277873216556541042367960571782055171494753550687263252304299094580913377728123412879991527948649603108020333295858967764399004763097828365184378398124234105018570366591578089720745953979680728994368653390359423795053311258420678195533560539366974267090327970967523084492782335818517148547119839567763492111539240986959960213761969145384021431783356417700273788472896059666391315963246789132973813069397164120666730029907493820145436542009949379646366893336527013437229148851213850559220632511447105048885455625521472647937048494135320114974981372383004794373338811105242253598452380611896483991438277513255506524694226206688046980845257976955116938305112398906554954632233839687291885473012822243349485707632315026810748509045567831864211868477269032256368228214968670118996831757358818414454096837825147383200546172244331098827105486328423024796291093441349336998659425778871329722041872735504583468565697117723482416825771306422938033231529329713146341137956590478933611643122352179573192212457102788694087332829192577632795522793820134718049694364675144594727984061281426416383851982288543034861966772016302650470191309748497026306343576075597952042663145996707609407515705451501455641602624876958276832943833836972532376283505299527213929621821123455470352250575318446867013251229950359880579844656537009625449659167329493280503579906527099279683025798531341594588208010806982541631461226312522636882915739959457153225957255539163775746740483304460430844915778485847873272598453114598080668473547670147077155243674504247997386910237323200836435469559638153214010729647733349857890842904342125465934197553212699477163287602508508727230789713466159167783929466611758497761576572138355092205626298912449156628663665639045784166379986950159997906258036024788717245891803744251187856832121128863095915199468847035411932333684142183679153233671879732919930445472329904566704137407070650010903452959038067711346436175582516024180390830591635194432188380427105238705962295977492077119748942655008412885552608626497265726071877032634976719514881543615996073616184010801825139871718771342843540313438374128390910900833278926154129616721377738112797378966527635128553760156595251900978927170121080200150153020953287453976135769839060103851755895336715509645759524349034977961244325686649771175314687032110354288818385386120400375428146105345801500063400951525345512205554723719687867180263878529709591191200626411965999348148938573035016431099743356652988388191671851958916117060722794289978858150272249724752203561677339066792877992178344403779918853322461636439600045756814321631651700389145085928927411623304666056657671048644730108911585909176929035272761365095154977300271365169416910412502789928086985760631823309906222979132784931313756898237038602836623927333468727567003758632389767600619291318618593169929672526909058178303509875757086830610512695756216121476393117872279086754468156087036617271477082199149435617304369504672390681171277665534988219171751621390316767295426099028045838062901401101691793520876763620590825796006346492739000715910601078542451970269145029989831499326848068880336734937010224143693313264143923231375377749140728178935029622507229287035448967297628060301909674770147620539476760518257877526917601083803998904049081043072344512370660601102685606414530286618057712770681485704890798267555763313462408258133371788644998610414645082411100580069951479156752660256682161959056756674522167933497130347026733914753218589738884148809777630972176859453849326279540855998656927200428295557313382960766289886658896043303494277735383280070850837895659613594747103412646799854458375111812240562597118265459661744444200035612269884603271599844319386273036722599171571426847296674655172807892924936283163988169554080861935753668383349485540565195707954008597722119870296713549579534212762138973719728753285160248798571575331556670220904713901274630197917966414431259389398999532733511645411301621421818473685081859110429343791926314678859675120298852764741062456481609311781027984781589839330786236519064883625588400111861307654486442820561734054677323046875199588325435652475265327823372729739246473974109372508773417802173545306562890628933667197522881908829534178376490879074178664463598611805674628448601113852559230159320044561301997347014453237490436006218239566295770519364192952067795683418145073234137657157178567327137046170888710481434835741505087699951402198438626593537647913477420821739959073317070517466442997133080003010544774319888702384254713145733173839330113628171384063029873407433890708173307821971495341097925575620560003274202678830067846363682836782800816533559767851791046758501926187689954752461497014601717989584050462029209035486460156706700611335423976034848093964399585874595878144453504879794366642984265583342075393346192227094219568488570753895355948730184032596249998816215036325261248060232327527938323655557384156523717693191698703679420944523046042605543677544359302176123786586957144027945884401786023400889550151190125904892070226788372172735691976417370472504721714923197349731008593422199488431421405710763645258981026038368555663017929640839697914227934867462904764749479675144501053413370995935240003097900059217720075239970666951823026919043779681462917771955992604746596465932162130699180146437870312342352975156204623429662554648226723282357586853974959958143071204975805240506408194235770409694871087567895099750101324714282845553767451901983030328728388031455707290989358628586332368569113591238002417381671368005899754167035942161431086460747752789652183484918089253284594138881682453390565921295347348295890602888842737738163762532324851714709776449589688639018677243736030575640691776305937436908037543575369114860608665735649596160154240703292441333173252121881145909246546682431076231323175455517413131952226456625117945839914363462321788098962763345230288820590197715437603911854745573002095253515622840350829861128426477502372842597287795906585027881971444836011712027343952195188843438180311937877305220327301008944769696846021639662886943288323694379804940920044458568334172894153230558793710665122336466527691803737294644188869863363001271841805171161483656838500479258966565507747656093517367745100046499176039669221831017862057492014895122155390147262875278889964168310801935926806264850249510547729473003301130365493013548100313007222387444643054888092492863731268859636974779939201289749919772422571359106420541881644250586905004898776044394621023172945072000319098160359338961977233991401619684062768773729998581381133311526987710920132174241553399508564345190835608510324785814184776063973230309666078157898918353694931453360067331827473509777442736301355864139786449580714423781504935267041567400653675488881313790080089274995385992538918834897953067522231394659856677041353765226904518770947132977671609920173415911013600896356633466976379030558134649000748272555725812417605563381177338407191844648662661406432086920178828257493029938746478423640395468504530494989400237409514303972713025302401240774858557309533497243931859931055021283625621655874123160993898536900711141710400155474813427115740024138796489915455312569385684957915133370288021059965887544615395773253314276184043406867614046318277123520499297751544588613113995697154418925497812157216063870557882397183485505890712633042657368604600646320359425526215445696710044672094723296022629711047204152132581013843800321817017501287807483003192866473592044956895940795030925644570552663596030727029912595149576559695921848861424584645045088631946337309770177164699444987145852567107315080506257212255734218445936607352703503685249820650240338928446239705707195595305882996187560341673700353768599710499280175798774216056771213308172568771674702991548458316204980943865764348805298029161461330608899855884617915530034944846330980222694877438662978577878959175208083784589829720375597446861692657171205140558645378124613729033090392724599091448982124533712254230979280528431967923432249481984881033349169606363916954682049580365582808524691477041233390578352701819729831576118278790036897515952602141787785851177119790407346036178856148850962401608414231133955188276452894831315787076695613640465151835571980915037837612360045721910442824221332761755011155810956315142999152826300496405656082249777829620767175388399562154267010299289581577071078845883333015984519973832516097813621490426553868878387342265150230659555186277625614151149861163070877994840249447870263091821512130806734319174015957989761466805030931886237831122877406886367853516905533327783485898704397031505433241684354350538243950481736194313735186437854566610762465222434572110210718617348423013883312155615204767318188225659008593159307108406618169528005890762697387656269850803068989369087103154435398478911861689801322820729500525968929362436496329563368619529553119199358397309178442191438821776941850865834401223512582701918914759457799552758867977763178815502243805824946992820228547514528439268908639954540213341216889837302965744191552621320692291183131810010030309719914503238820905018979506173520675106404211031256678690271565396228487104746049097449966262606102238642280225512966951164156639411364919711353382189001741466637396973903044465447895069934517896236198714814177356385050423502898698572336233420120073457232506181285407253965707173187092276309975492675334147677716093630247956703916034678846418324404493760929291738007089889049092337943110478997631509594542287431446988805284508719449292790225828675013068787253333503979220752741776723910428993446498973306324286292296855129263026890425872811438225957008138510343905582693787662857607034896589207024523796061230774245322496780846789827186400597557372630503770644196732427860339104210392784319199658529897017136375617534393157780552459018371592609265916599493448886348325564850685144840872531819857674525212139318491128464509152774460987036857162866143611796624907713754156784333224689432693483338037591943145865764660322103453560636731141551115180166681995597851349025592157476480314915224790924407590602492530598758303709706846225243517775219090595298419624464285508302189673215919531355279182989702566778711069935920013872417593587707209966933434613210725774786354148141239201636044220158934781326109859212241067616421178172350353348225310068399358090778172250788879293613092396834577142309483392422823792737044727867825995671732837279371410852224958974415593646093157035901493423197246561807093642101461419937441810785175167483279908354593715543469117919911668712562391212097835005301116073150385813311922648047928818692169286248871281503135833004388456470859223290096493080110733537668142753646397385398222227915645930034276696200605536960214015381691215031913952709473029078448982353196146620197279062221353167042485667914394065298082870524538987049881747678344865766221117938270407316667316864221625360541934648234522997827536847759731539496077426133768271422563032626316362063012715469245339921219474384320808320285532511583910573245755795771265621035870611479056746924652374869488935982490131052740094538504378049389102072950773714161259866610234992996278080660073697095364151907310290376482426809304779951931703753143444052118348376686748955097959648508385525005775029974328284114345255973083087757621275259153853202522880072467741898221188518819561576390896718569169576985260264760351301840367648878700668298245903778050625026964305630395265346978898942114806983075873475330796531956706490373117062868271464366091958278802428170556898171999077265041909523248122366724127389449977157157205909277861037240304290117069522465335613580725731290718988929955811630186239381397116949322595519156443001420321328292160230174730842008549857481003422893951166430882270317499880562850110766341513933209620346842482587332956431132108539287582973782376778714283859456179162358405505731028386582376447334388284227401299083253540084476117910970022911381198795437080288124728126850308024228135854980426407680723458876816210286609941183759876218456584637488415664424222882314566864206136295251817494064828644235096102771332949401772895636077384295235332875484386736472831970937693195285330747501894682894802020091771873700446646914264374510053958830335148617944657236095214647514802750120244815787224267693209650217814704582132456930088801190132850909560708773867355809001209206350058433280846003754476081150586583609753816099463708033854002937576311381870706206376476944255775197823873813942001344364845621289636463433274788604053890417451887561604228847089556758980166800337107313486821580598209027934710290605996704753886245870361664975400869353141833635498388590649583217336931287116126792186510709962260973955239858621288923200188576429032359230035764825261436604491689418584370984159081428403734740338426360240825482672569270712239230904707776408643463192504799487929599104295580770422093932815713523124890414781375799047671700233990371489611906614357599014335576605150522848666345132925978490147303886602134035482316328570261581788513566527305782751510243946955335167861378104723851490995637420205843330491255770305697302335719830544948575210557066236361979208682824365303052941963994879336192096605893413167834554940030914081786037602972600209271489325062278950500740380916149436568579031634852429208915076523261083318765703149408881219031373968206483469703987667597476016063781451308487208075001148743417144798238409305892015159443055857796494084798584221234940245799570969089225526260471402914626609176383986759760093496549063042072918617190762117056388287980859059533367227794067911570166196110495638232690161175214359288435058272558958547253852332986329932072154049714280396159542243635743324532195904590071985641364973416615338374634794874475548023451736791220768522105897193707997425392393142122758917007530469907763481075197702481422807788613489901387181274956875967779396961392513402319142012924234194834931558755378934467625717258593788041460741205740424001782921249475250891134447393803285459231767629253550143063186289985002071228771586948685780056531700685655930370818053501472370558606019933883113637767178185152677954304660770314996501603201475164545432645807688336086163997427997740323301818192902343414417145692030240203849760683322404407284539739574313261341842853524050742373650761209093893481848401753278691064401169349380693145415592455371904759369393519115442541648528372158973148395073113478631136645166245221508713053462675015319438527968117114459626671262617402407926054426849005819398902339195100625931876163882111444261975962745768699774518675776335949267607287838277937043205187806913743879012960160504320908645915445471164420601761931780197855597516577090758817358589902384741389510874273314699780639339397512704229587502051725913705344387531356551864110527392695050697807002966905680705828363304679916459764874587817146145661845393267227717021948417786331108742268275962115636302576266776867505330677246395903010457204287969890533516058879220699443720303673205312764297644200414476419543577913683881123825267189373774427717944987231630912910212549852225588242268989917584392603067110635951658411977820020190479080212411621310828767428941068207057747205158636565219096181742102791333671984211503999489061421409174900796467622046438812657339914289626517718066202531334292512484706511615020398078179902723063290628723459579346164433764379149126719778238116061259123653888196038092216809641542665930617707208196354201665656963296049658702981518422962192493654366940194680705726380730851907724390780765073552852140134484285507302034115836061692388669829453261039362831197469321914207051024852182883123625723333490156739263409232783185999408940866525617652697646508674530274005043202519095951123643310807941368617179141670671846186451317708065628916415537726915503920169845253614421582069280946513824412207022740771317415349379422187031926722957637459020933749870648532641054867288439192529040592489822179731021407230698305550286359796111662602434452040103141835678198362243506589596628797131995954536881031149500780579193355883704956919044739785680682812925491353382560240442983531018095026338864819686402173186297438106302668500246852712913603461445905729115888131902039824373088394375775156666850735606165281850780987388846467371700627065084769550245005929494671315046770203704444866412038005581612954042997573240366612270650103736119855416895476971608593800739704279747892208759970804447732285795513523466208762497197672323861301925283570482174033056948430474881121111398093737124770532795307517249844003085598383571260150328973477834159663031612741863711024158849912282834612250589325792303483507874517548618076935635331933870453388428292187266821524755417769562238090184312731880657772137626207903011292690128983188584322219168118162530234976945086073028407274253106935744999908567027122645997981752585210014888148449462681204845264853066131316948753234313939363517669517792713541551191259196097771494865723826343091040361395976372677714038511268143119876648466849398883178106559599359175865377781450135051747687797067297988677308569612922602509928442924413976772214358756532483318559492362497103224975680505868581509181557526868249956879144217487147912169787571105910098532319095827307898782472216319220171284040317594195033269236623804059247435628782631522998046353326115161228247208692862261942749946281852439019598385935708907488747401226981238395622974980724824777367870395525048496335106589189314287100080629127546051626836833281049747454374677377361148097228716984459160569801051844314690292020185868189471674525052879469440350375880435280828552920315480298017935535289688871510375162039929014645931760871247325108559313862452983669630265125085326868910648235958035808223538457549703772031645632396897714111532371109862744398374441549335456546160892422569870086100497858431666563011352021110547902450460561474578186325781515196691747565626052535148856777355452847510670837216621159031948720196618131277126053960013448698306151578099278185104435732651298155832207567133394447623736598158176679781343522524096491351718053864687546678549053557441872963968556006164406521644663459348459718602432335257660011333535361530751151905626669522612662054155118559654354789644323243013531135775132134584321192737361396418479680567109207325938502718573779694997072864648890933410645310920727025334288899012391853967054949965560813852002335934160060640890613042588381629579934761983013360228043877610018864780807856658830329157895810060899981935780932234141544604478420558441410228447559678450718039912327326241328446211671710829226674395481635148455385186168758409677780058359095889740009990001077017591722612521461479568711855941734782583217033018561505294035286883360422377928818359528764422319919405316007835123275744720298355244604369075887466750415871048162371348138087798076823197763066746813947559070215489265712230740223731634844084384790299223171544033968234367505906265234739227934632733059442825447255910259239786098371878297608757796197805519495670609492084164246642789135802817706317745942233884218081461404161930255456351621610676690286073198919551099260996599211884390307653681052824596101818169577025353541180760307680602086100424869013018359543403807206162312547165759462591234041891669472247962060152207462858473301668003079791766825813631818125847424527783427656217951381690681196212809599195568484382124465174625079017278205502233467416992308037790038627994625201469487082046362430803494077012293251591860160503945207423824281058339225261101620532257939531986610932639318490091492268737009812173474022779159771726035394382989265965827988197514916608143209385608234723262579997136119321107384844093782188373474746267373573971713690138658039148091624003503613807721539785124721156680351755817380940154514465803547075989600447519292369636657780159067794638444429391289462935733989617222058853957864021993584498133051311102199130404328675841834217133618134346755538077301920638758618554975667463498088980527596985188834695100716934566050591108807819139870114085050975213740641424358657413883009537491247103432144207769166696480861644893493593630411840473446688748114145503555776338765143962036316717988424064560338956993806523220071559376063844598391635401393167004430448497504947745317236749085919844206589596071890236155807600548607067867494611118232570723203823952538535345521125797087169536805551222723812796277316069361140346740323018249046425525173835800134532568243204008625796097417542925749089607716658083545996998686823700381233198389823956696262909043317451868585411253559282736063598541155869070486888646876125567732245524954075480874517497640091263966363173806430812493358889026467888650941308741346269672090426675164646535732142640000392785983379444875317595940421695013461475834351742098068156716210072126662576239252665580688853060093448323426964613157206462504057583250090572849907083337373830576129374313435116727563435472000190145808361032230233046887138009082530736696289590690015343238189040608316443944547875061278215922742797618523621483333386265316966174922613678753220926066076437170510166292831034606020667204527348221837313629436481279031320420040592842548077071096920208614084365323982734061719443689851789327115912105343257051916955691407864567400383314197340939848109069756619380990595410286401684016060701769059569520235575718917509768108181472001494918676672003771797189681327173347864607886481305136137665503932747657120291402327583273780423898894060583011365171499376907343511965777590694325938193417548197057504486619133368960984779977265486223446620484928201214633351235803374612264956133939456194108070053466519950603770974354348635013095058171808898158884798019681537986478614553759029644145316254048675499622935769153825597386920403389072189828306064931094254068555821941198088482407178389070227061177181707675236616267992959530177464953928707785148841151403168616053553672855299206015521827874695879236115397016127469512326970450724018392971800010326827911508919729034786255617671407290476862605299343605403806304899744564692773946342841076909708546176340284925377499924284263714437264913228400944116520119425804793602531114718303766764997867269011661820046302530005446741645074830719616254912965885013082757586353008853750683712483893066122461652443562090702912377121543780545061869339006938949807438782266684401905682491593365715308822577477673957354061280443756640572357689133382436011305488088305378258043100575502070288547223166042091988146734004483278516453328302325714389678083608873090248903291480365931891238215613235977039408699087389958164949420156961571567463499929106189100404210493158686615143232918264294473654500947951842674367545799499753314295572644833297381802805346185802796957589473771483626005037532287812722352960667127256858305969320233727492420260722227766322968052615913800899525338043369027087569628963544864152593884657705806405277099315836627303940676806180227860738371007275131364549172678822546150585722001232934953176016805542063020339766327486048946466867523072816300610449486623260470800817195596063731948972823018802980131983953251540142891094655321545164667505050952064819237022150653157489499398894990726024437962109174347462447095840478839237098968489008348539686691224476656415180610449162608089629598149412708829965795391522516681301404058877654503642789852812820515100403092619494631469119542129726228360073083016832477330434524907281216621032361096562613718736125925323518719783404028580549210628680396175401591814728135334275089446854077410088772110117668063493150556381062675603176344489397611301110164806847083049949267896357628458851895003949638525550833478022998942667261057513777773545960257242549425261731985600871421496410664242629330375622012966985554951976339572874739492345724106293791647736010128400205451520338956274226782154264458975184728874946970095164100838566290207600671480577130184972955608813072941871673579340737179498440989725945126103481583318524360137724863779055157963700822231066943627301887172120495932074169741694181865541521170428641721124258411602540244637939303067381161360607914149317790083235406796025190900361627042388055442099974382383213253434436188035342506947595028092100326557125329447178888179998901752005078083796441420870390050581076547383361973261207574880889062162373661625741650866134389001710069415474119769787445529286460764831690947782731238628319934350806042837710176248910916726336651788310493616131385358530324223383073353757756854675389068831758227151492546033053328373468094453086398650243387783887517142577757037411565143376242313120445391973209198845992631748290572893972649243452405798725583201852370623159626860259800978104076627790011720183568435173418852595726464727442080251274714858913130170986727770968436971847538640173764418569551875256926347367613099243183380722250463855278431657810467724318840747130199545050973010419752712505525924279091994847945331734578181876412873451095003797427521632827358621075911168947816092938369644400351540297060534826879374699211262106077893972405159894389148383422803182264882098519900733093000951876720855961787561426314283288039513154090704407717047832956396967045105191446409856012700737213604852475783620910755390117352379661698852878207673176790333531036356456997790325957721808947077715937250595314844012500428731627658395344451105687911463820537142906993887963517034019162944834058721617733181196362296517991775579222990500360778443385384287972474630284160281530488847272884038281245280159338647532556419742432661105049591024089121396830946087941281282286216094746890135808727042426627996492780598641579284154351976106894644920740219474514313029533991787250519148560115008569202661062000074341033199454034850398870554324278828105999502853978853304018881268285768701864874700543371432915330781566301822301798373368131749664362334798591750709853321468671236458130465208097799437254563200437274520476729652032442391559221111071261810255849139850706469239085062419223359790320463439715485652701435473451894979626058281722701924641477222775941188189833203629179823355432153261189796800854643593474000716244595147921143471067397363618924506160871064369422312604581439011783698152640673780667363801890536109566712310839850437001761598784261492086881592134794737049180349727015427331573366790393487929637205730409859452155956260371044688589631174766422189485553502890030375164974041354465619913737945940324116243217364884220431115499642361096149821039026451897231223566624031550540425794984453033408580776912917734172984203213071139721423487592852864801730227373805788674637118537670017538285862713152334894125509706069762618035008289076185572611036793074395079379661991163789868676768994528813498759751734667745726004593469886603729227937245568073635620794504611449966545550493329381653266749252111619129673952489577393546786665819905510375938092756770930666050135725272623712960834899498308657632421772971433444702938102029827338340273876155873446253154318939305871135388982287181768143072794666836237337701864350637009529938621557294849380348682275439495686589563605311230677318877264593880722718482788743347677252493965048160818058041775706851544122857595571121225018306469760474511891068651483591424584601166669704066154245430342219682511862484494022312867417238081887929830495994419209901719118205766160684263384883169305926190676058574144884835702662561971493887923876534110360418591602343076731468234932466877408688486621254722911169660610782500221222628621494596359938511858745924714446383566979836679805633975594725834435233399467843639955492338083370999461853337377118778704071116940765320154702255176025664103542624208293418136403619286319184053422826905441786635801904856333620213786237687525118195377435536303593106515790660712848205069244307267714862142473743255364885871751632077515707867902712122338242098698441445431193779350202595708059935668866779674441510627795548833791571182585117886583288192070905235858017725505933339366669472980113029458875773203426245283883188439903977704621010975140070117992227252586497055490315147270443673450490997748456974999384706961868340141136796376273585198382348921073476487122445659688090606879954630287002901533548571247803721443776438476415038640320994301733384166735676056223173661539047159577333253782236512511202533211635429663822845564882409226777015568387705540248253098217911367710859369625725957920413603255180156715555878874777296934030296111651862043135682592455975226773879247825581762670982430061575698206759761358895641560603195297658666095848948333478500872931586806717906426420296130014282599166998324521699376868000265211716882680093271246691785271482878488561945753534992968046830215706429245649108898766793503841304637973618075412011020374047715437086253257768237752415056927231903611649868256503315424906611446798945811870449001242305027991548106151941080440318308886489886562233449563843234422921388931865956732641272370786553048098746781851536838694424517074048766355917830149723295949035885991663713676955387555731376560818995466998464026856382395776391301151036317029071434057133095222252136292179915296708472326148282782379250596762261504773860223366481115867575486075959673858422380001367422736333293495162832252742139014211981187179790002011806603210160588768040462580122776712525605010346538863306008256903094013268668748459612557272923441116413359648367136691151475128631100780398261353441828019517327153933142992527014093102458266495701675851317263618167969889971962397020046155669677501994079089242894935123961794091514589585583053708921450372246672545757669221542260412709379235117008910017651187614508931217994330986985323794129996305425248659255252951493503831031395689703823964041680885249632998506996208107737017150540305507280297316804101131511459797383958505343278719733311072624873859436857753628340879512332912102089970995315312463737845575289081976257798550237422320218528300946091625353632361341499135790749850648928917999987122355946671087834901245779207203748873469810123235592848060904269178237880852421090630328977837793343317514758371747681125437253285494679601169041712026396339208330193681969481909124467217486425407603901856485693723307270563070294067659145248522079482985529819856852009901640941923920645148159066124645626360490811573838640351425724732435183285392986185119288759785758152752654743356613225548452115320985990729603352528872173718957454481531738977683937383212445666283363741997248729338062344816086383235206555492358025052252403395200260666739346427754273376063653545295819955793132889846691164548054154667364523417962635374937868154911418741770941165422439144690614539063150373221717532536695206026216925164151437123856528802647968881910998591022357656573695268442935331077169057035002001030142457240206346008684645134163575499190411391019494624477105467222083114444359466061461108616518068226364062329055286382026901824954224797433679519904019262824748132925021975827106990878546476202228517193477796007557069620841101766433490045949650607704850097363238465574682208695554046982419736605481978320532826120551507498107978151464712935870618331709529670834930455299812163397511235962691527716832253555352127744915654746242806402747740975898015804365071798734802686022569182989766496683782771262114851351170132346488666152471172970644176470869391701203882775722480274453572093311972275289657964059585185054464342914184072898247651593287343840109171237242975961836293874330064096723597889977211904014695302549542544767303980633351388129139759159945172778203750054311257047921031916509807489526325118216697892586722315311547301128870087810101254186100648062593000257005053587803972991369739190955642437996782158101237320618882610415799688341427918421800916376771420069792955883705449087303191683894815726061078015312839644420246056327123919908206126214546584289318410722111384012731157541885149264529642866094765811422752507862947264893655063519945056208911637567901026235874371681482243766808932083891899098661436269190922867735151852861752895168627461357069565060441026505089219449522291866317549717930109135957331019181878972212482637534251145273065234418210747908142289283291092747249873122212808729068734356559256746542519429558234566486659182135799360474694786596493917624785081094301310550300085302066439858868498072715949946241862650967755722247449212606103704867436889169048049424919022604449216207215937505535084947913343754752678560571910185422974164125849689323883249036357453434562610233412063472741345952370850571957476960840417660900656051712409346621210194138979121492895980120071220656165858405922322218777106517678635510538340135517951199187256288217220496454568259532129899823781655846322935191202805962139827383398842250793370367177819130931966486065746072267779461167942868020256508696358327398218642329857527721836782195968717454553370088329753035890370420349065397403063067144745661372402778894663792432427303837315362364386682080678028391297487745848559900659874481766542707308375408842537529558794726729182545466094996235385835868577282698180264840672231029931659430304307722289066804364154684882838999919861081502240946295462323444434697845175490477681260756769958091416438331017317588925286335237360860834195790249582568279804276862938734579496062832968305882794273093884991599357785477046234622290183912830580030158074230667193214465854933060065996060394006273383398732632306367789200844579877617638707227864097093031626021434542352587260882834695360012909151305283573108312419995413840755296269658536775329739420647177061582813739197396066713489554518850167296301928610941246947425762255292116253145322608316390090784934715795401338827336190883594726077905247842048480253963112528103055528009517583507512041853852712558595137096494237535199329512731638486726774022115517623695824974312363570491279826199197231751209719827943322910685450743946866135788745168532428010487547571338981630020762337973601078738078548374000377046969311053249799177739452419261810555662263801754647525354581457048544052861857236623217967854675742656486056605857645768940906024945391920273284895083046832966759990990955088630843861984556165608303599955395365163619936838709530683733014503342029872347598049716970870073203125551426513773875595024735034256930978194697933445938197408532478851374592448147027529736672736146041944698472284304171874915900037876524701532726029221238817127399632856874751643139699780680652940049617971770495544898327298835863877502706214046888190448034974688958503557527845831598808669826169507845902235597733941498842262103293060739724918207793787400399864221131048840484783937107361505770293449754860096414507989830392704245336508391173669293579413174072257635757880662356466060503776255501756184269355898551433857120194340249684172291518378469893488564633531846686141072950005602440790024264753887308889455435910220918506379947261480197541045916444635657318954929672497365803947924564187203928129654275084090047498110721345488329930928909438849049912890856128643193534038419488000979148290507137929228228702382793287508622030933603724343977601071722970161990345758600123367417633620573297829208929206576935863487650189326025468102618007209082238691904803936568580487413892257672608851439167614258518029957639084071860405675012511945295969013683178331907132784941932824215357726982616238406973883513322461119932453592827119513098896836863833555007180878264867697601432181125321239785153631048623727229002553023104533236759940042134302866364780005587781686472835946517192872612880241762801015864102369176498944228246322018396974637764420204666305051300223513244540930138255727104142543545544382850700240735421687805445186670531623687718480020635524185094197906774511134360677820709424303417501163424313792375951981083083259932130023864579388385653124950555875310892522578777657744994298529943640246740592748114698334028613465100241906781711966841369196234376650910119253602101022870399266184841755836541308209953424258501795335232131800197855282369164894678431723714791436444440532861938893065118205230312258308050072788420174610068166486256742372258400305396691165370312792212343281006474449232916398686162604088119168142245482866350727575290953021912774198106496200490803609158217288852785365020092749524054184582888110120907043271027881110415075909992879565668170239171755607322689724657641277457199061741079852865113150522826653750287589766756954270687742261868001056246116873442438529336964893034795052448026783785345584234812502233673453254702808686056349510452427614652974742640071831253283979278706274277326406450707449517359805502658640029939517040080941797076226418412872628737802294318533434592795188125454939923145622541628028072814044306105919546357885463705298530053867626839499951489666508754260402762020686672755721272503629813601101765333435945759858609977261184149026734817780085535074808070819289956770164347354830775559871138860921164028341457183527175144860726360261224733752094741382847439370110016928677757586788842853016165864557165304618515314110957286217966881197074444257622083162338360145359515692184585406942179085198264866702670150846387884833423615160513647699922226453262148429247139347031643931388277670001691768998974917398354826260354140856330392129521874639404501870294362445884040816226110111054203351015155859818412646412391965509600689207507003849357693843015891565046688952509691951139118993894929271569317186971375446413480197466976400283897431046064183205734640828833818439568622958633978792012577444042620761486726433876730613505551984356809892346796468490554476958610431869552796799276636059367390334382567000455463561552568923792783036291712053600403119925494044169492121209108853774016606496011821494161898127713629157931628147486072785848794579817543375045218941622134790503647019162343828517817451355391290838945234927055497211836655666524623674724286794554065139775901800669019236707972744067603032904267037338854412766190770046761806533874292466294971060677078726987305081374798950514844314847702282222982448541853345654468093104302080556738386396847511619460467680311139003138159740180176673301999314902718141532416523090377246026291453147212854178960109556433351628314142876795049193635168803753756975332585469485698146508335786907741069043783975797459386487404222500864037405170186894304309451961138279677956430838011011247316115726525973550638501745691212959583275443603956651220144894251177961553170150475675539973498425297369795127422100330274443445578286341833227411259505751911279517166942794485297181368145809350304519499138878719624072469732908921208186613820501730195312983282696198792644614068394952414946487974726017271622857364126023514010387931550324761332351811780330336508247664307439629599223047383180435774411263778993954974643153995010405090362550208315320417870910721297962363980938866694177400166356914441076015901725773803343446470607633887814670363790707890962330735764599323893074633956295713596885688182623329700118121735360372596221919878329509427496874308721947612282444113348266911549455149742504548108082244557986185826301387372902792313451600088656329689678335251330761153351427763657574082140141875720963249667221955890990671530469753874629373591521124595675182853826953785239417031660736657877151089278338185394034168748910864442199965458745458017263546793539792438283292208872572642892609183002430771536417660395828588484423734180407149974908559571098091960675790559747599647952981298459663753897467271431085267559815271037465206786802459418618428859232744372255179436007962178747424002495864092989232660358652434501577242888677487064539955853786883282269437682807828909072826982521933182751554352945651745748308219406193498138305139716076085042857242897772187706865764968249626777102917819467963829062184154020423509035127741464767072607042256742667675509557950915004870011363574316792409148580532938079325502705320286217021669759914351453561692821934514155230379334574127318230903737602086350715797348212177802186198459457527948909337159312481984690264181756563224893992365484411666861672943765550752927566874592372520769423488643828697341403023209769509766924980913152151757187928222446542290025328638346171527306997205799253629859925386261158753956676026498755198310739694576428139296381656215303010067605675004518370077241515123346523828584388005287344918533604621289097380715063518066839085877578513901621483955594916055048067639803998322012828643560637215636953229516929250410994603907315226255662544234951888592098032267120306241110158999239593910019320908006836456988266689766835698702452048909742106428429275974693409743524964912756266109054796524467914252191537603310778402822834055476859095288296321121211600431704331291569503290456435175554316729391483095084814981976371492072493348265846080977263628096477810401310497937491384216350634283835606031713758492453970726834010685880497168474068586740498842232023740671347045797144799326611224874665740974770528031305066761664319816043482969436937656054117650257561710236232877137547831430021605566390316513047694925633758859168551083553977961155191706185920621923171876564100541075879326479332086487621655975877066816581298434260482753873019089196882973435056353787213539152897450038418744079982702168498410190884530319172117563485193346483152948240598079569416227422706107835916315197112586808767227942838401993731965277428216749251921102141137537730224189865534437693185465278565889420550415114797670515009774499782217556522902112813358695020628708284674440281660641083703317567225376747480848903260842298705070319162598908503277810786055335544980245266256716918009558453267485545593760428904512627845023603159283961298075157162374355161950547446539716432583290045683613597704237048499872096627341132019869850449659838087731032602315949227562745822278958738951944814769147658329081059775002584665799386109578458988309711658111472621179508054439521454599454432567770876501871926397903629544455950304519814642360397414371679909071223110813809144786273451383424352576984289914597181135515907570811934490735369976737476095856483038478665999960100091202535927155089460457303685062462987394205139537266172482310399175619573020000099322368910010659196224629112026375535034107177819517995678938779389000978913880106137811261659411226081358254105336626225668417653606069720714606537838656445831425746086054301880075209095831450977349514877738518148902245141592369173052518798920337707224208064663844678285297980808571122897516187213551700456643679095591828319891376053555585194524795353415719662213458621145700037633190475250975917844833458414034628357412477292985290004032830641240074530890433044389895178711211702607774050409210965858124738568855080238230566047164761813288214136891865398421831575893427124579135812989305997972092718669352065797770485262338700216841683427735062773727778633911490591418943993279129608243013928240053463676623560087589034759023353381392793013023253844401357825075202755044557801308192428061590166356228591645093200984167357516048210975476521250351613081979469158927279707453526878993889644227335545881465102175334507192568868772398004080332456466101731421129735816382177517623471496453103668671999203689457073826763671754243150867294869253284691069935639224574094298534583550968963138832212318175618805588008495855508554866332020313610475234133821070364546913740505886091702208418673429743618366480906572341242275658658567566874167802342095590210901532337622279157856025780223954727780892169828891404437278357263302243180917347176089746390638464961522483541841391586995812781035057322785247515650814653365633657527573878126030145396375943435275498023405683357115748386643439321999254792203956083522663817506651674848613221365761450174621828459665839318159619490238539002355489719647627816669537467011924555701930070853550828647922138807392138888796132550302547055381936829111638987719472283247207380186743511092019738119896821409424255499285245693872350523682104055654273597076620266528451596375153594536184878310575559265287974373089338518020293191650769194358480468886632166722517746296252897554080657187684384975302866579064082681368898999421695249044955864365327314697506951525035571708404519707496073052097562888105858743776925269199486518972766715964217379694707888110307655334946364591405792725487064419120519041534033182278460609097578256937370871986119908541581555799431272629584678966013806168690169841224399412777246556869565136701807645860622016852490987323247700289291002982535055461737885474501599001764425164478821019950067661728077969037540996732660099719425547846196315946754230027786878383406633141288955896712783408974192140132539392011131235247155742187945115402650137145662040763115042432802240504323658184151990793788450405093290029393028415480615809997481524725566904834306679520181922030925254148377526232331841385147473834511531857426898579533918519125367673755385982957314199706735979162063158500338657579354300585324821183049558851378319250609005559827978709912773727693929055677384756565341169380032131980050601995029456520179967770742902761238557274240067693381977667820289341982258585903794986626402241175078671135393571056857188014472957981868535198254120906497902057828489092160767853074549020932814239349842568698259849845514674666506524716994454438147767595181772757861805205033710585004258667188860724092229931816315442117936006458812536284297657672037566356171757353920744623816472803959930581668644468743675110399055380960726571972280912358386352278175877108397953302459067616957215537771342016221172768973113251413594319653710246406287175815787425993546933499021084364014544823890186034459325622052027050954461239553973692660435829065694066904208364486942665924884782159606466549028171049818061504088097654064592106501422375209691115873316275823370186900828582561857219287356477996977154527144671213184780260590715418949825428527677276152529814222940630847841670735647556180546249699000107126243738550291118743941737611533220785261761070033969553010470372207748042864160204021216590429776070049994190854306526740221636825383485217880359825030985848617668864389915845654433553156570100587334649181371802098337660888950181041956366331583902000906131868572375758496603227911044598126196964326248840271553597396503136968446414507268237759315436908073040350859535604911390871549736804195926861850133157815726439882319244311059105087338073830277372819743897884583431622212213387020748135058459697716611439654476982363118054483231747040224841746202875125263370086249865212024198044022966306970188655565742209576051766101410762891633356414897808250212331610489267008105178841526304984295893159855344998689746077315657535428498198557019340099244392239966340789101296588073076614904342029704618703309894726375003055244698117211519803913769569314639962777343403194860395225322418720079014432105308859504397990348843945000850300063670023542639325170412807421048547603701358222593561300563192388325075130126269404581164132011160958077438432898019627268489838842716627118055789122799202397106785395180357362988425689706626939073122915554001770646306338498801403728675570504532080116079166466451626203687621226165507756298915821965779186662952779821094229774270772151232414093995416753004253053942456767820467912121967639316432897486845903880152864370847815968334070843571815411686517763834684297255420314644104225165072722347411329392214258242871004364343668199272586144412176094895104982974251434123570884639619877321354410739312600549615082538762091683455038407863938870059441587413898231807894875823292017058154962329715384892148360969095860461715874876451932723630982188625806001652836963820236820821565260653008481374246923792212898425649112386871755019238042920723822042675459632197751046078820109326356590653316411529197988101927306077749874981503879293660154521899065861999043506317738270485597806034440299169072934706952677119029046066282736222938494971228012868155651077853344099089949167885856135419095943748499232339571902317033083887749619644005477924191605872785567166389475522145119486029433466309430775125622226599496896107463987514690906426608007990574357706014657788445722842098407773490242862098980355861580877196073983649439031196047869337363240132152656064674905643475342507268817950188429673256001604600313007913878165418889970437634787931570553777222816526703236218178929914483374023578127470876140811677542899479745463461745593946376454833931540503548610714836249795428570243634088322379068544563554020531701308709902950215999780089117711065298663544628247580136056189278345786831061140959786741343939025775147590494122134790031349851722541235666575330229409577295591658208820249366881154358148491452417896887536173489664230190001659168879549687736621324057503641329407531913788926743952435581016679251817067464425618870981821249015977919776980611041147746336292170488834679142741846190264513328078747564099741316284515552762091981789582805254047275485001348618429773652626854026615367639991666660330588989534865594331571711206005833641570985132192920928796581734340387904800648098810779704263864662788994938987866076271172114885048694879244672676861488793301880677080261528567355008094753582818204356984866136304977262030637211237656919359920819931234891472948811546248906396559063783107802790536009526216528888125021031537179975774934088277090207223443943765847788917986271201154027377417544731270040971711816190220354890809990758771341755477090883608005470444425469322008730796854314046592001829741821166920078502019128679805405661299855079214498638408066799973397958870241092011212870807488415293604290671236821759575975584107079125579197997811440024836062515624932597197343374617860544288916302349032253055523742097037534852051715402429420431295937774283563760119281990723470763602131351076739916156992649732856370362864101022708646108699766915394593105068444278292582914486715737918454162887046387651040319542598156370281136454528348344523422053017172967049469135651376258055979412164164199670377993726703356140360608527490473567781166058070008327893686010918797609980145248886196281890888082134368942589254546185375374895601114598828509761411511962267057292977624260797949353857751258717439949130292646331990061037410391640342087047091178633394523076824123204047853107982817723832885751998181446901569882647712494432572691425682669519366114989807915291841933199567357822262445567237006436630992185472044228435328718117786854982014304699509902369743972845418269025793569391234953883701136323515088366072898813737554194274040575392284944964723932355536497958202210793107958416422447820948442732101977935186045054376061456003326401408522880255349635995533664054951435374337523977385362514106841803351983690173450147856749626304349978396387980779777090158136290260571275319076930453905722170359745116814606932445406981801639069670791337029252805783624942435028167337346770150977578477136155664923182162785577318188093298441669761215290002833689802838873615446927609225729757304707426478120674352736404580591478845679631147813528880477186869886131274274221218885834590150575155630263559550771025849870181379852322832780073364984053758102896693967702882097840712427575150157165057858331256878177880816012542991837285327139769210656082927706604551851522909559549802693099601761572895327382986780249857118468189561495806581039140684462764952094737541700639108973988669367029893629566969322187848509716041379163247541085490064054484271047493168477866279909888152580197670606670196050870661636059076337874866419252561173803084457864550753294778526470177026248964380930526615091598358534421750547238265235748796784939590571360237975610960752862412493650398539416184815486638349300264504791976980450534583274998601272191921976745910360373533780637831542505120092114239192823301815578372596980086216454643179059302883493769711616673918319901850403583342832779578354951346485569000143727342324092158930115563618825193261435032019429133880762343820926411768385290861870784636714634957688065554736082197175964209127297365846144443090455687768714194674207670006764359589968507764201869498548713375188511156420179260242581482076667341013853327708945874322806382657711776883636358915483538198974401364799773693987234588723875739517331855981358741279587396049977582819688574638262746009265301118104189054493658483621618464566456546845553210062706722706124217581024771746401638977006148982969787826786906395553739763652695418166376454718040716869670731346529754028174931642896750368669731144897905928761905399259549544616920259187326195530765213230988669873581925280735235945049401992786613593251984929461022153788599482264121837161731063703005791769239543827258201640442027312337823356301504192315733247247088727915312259611833290053739890711220101157702217295945825390410851027264345002433351192188678992037236501281043311914646282143228123500020941710681138008007483942223324904873810016201927000186750868106081830363523514259157926584905097892618212364754973158023235224008695123426734427171383732708258586270409694280628809540510042141771445847978981180199159048594390523087855110596786675945866414072523626818030383605794519527901664706374444437037949151652381950915963088977573245054087406399393695703739692459724383950490169382624307998579115440050085772639434451303126637352769668747799923770893710810728699557053534807785471835079776650536328515966677756559581253124523493118858025556998279494390435392916096524243652260456107062962914777185774430142282498875941755296187762471366140508971385448277855331745115589193187849688546589703746693668282488471687000124692241184343551670063740963222669025217093201196892384645016408626242954465808268152762844833919840906313776292037502682077436299747617145523236969800140183632682051641970755999100621763552208240431387870732675417761692294588119758522304123066402940504118905621240289499665193805545765680430053703656417453376601847026570198577761787736319705600892399896650357731547336701202814029616741276692859187077438127783489875167675121940675289565979810879833739941246949878315934296576874848968858264764647893835086357089533284973764568265599680372074511867858466714727154605513711044900295296802765569386467175570696453933770161649021235983965001053730652351407231581945794022199544958730999296545246761339743176243093300086661972626553327755565927763539390803703589111112332202962275755489317500814814529170923779055892201769844937402222852287483150186902197963998424943077431379312581828834667013202745160706971271882037538988394652873271062175744448451258715813805292554817820819505013526694962159251746610909042641155047199385724329793739165667640992368097854686528564912834677507204989404197389415920524155205611668945327721725463028893790301666525035283063853467273166772894224074396070905591867604750869980325401700900005889043570420096928728819089025597892522255470261622774690148541169266347659304502498250442153453827620553896656614846230424001237008581236407970011346104811583663437830946694764377906880861534285082543400467391351306929746499716246416816364167734060520469908692057595686707061314440797496586350792593905825828702445395812952300260796140302142361928854118284120878335457914299227017784272980327520042345335833899224157791990071184187408796550872765420151574689223309367606328475406564325979560689355225145950797877283101057486453245548292429864878786892305725113069308031488552844984462108641000430557117101479585107236708277721348722638299588983999725453688323690397770198296193534924942855824435948053716481600423296482485880834486744009101175997737907144390265557572860895821731371755912893907738281986875894157085977965182318274137471180428729370907304789262844677351035222453179747788721282951449447176873119987906619658724791915577819535001535825115999837099073292443270149576067701614243216984220502758948802048690207577510990606594100135500935760702414390184464700804746320506921515415233042833633569988036211273407991118730280384302688459453030413752599592060750415731298315989444526146437647063686297714845038443651449185127942221781933853175618105891216791283867276941583091708936994042849029162574374662081265977154203422085958254375942736290124672684545861227895232227434450037723774203059516688046353699811654181956193396934174825000990708272907118282474169682954003798744867657186643910055287678808429249153867130637657888748606115044246085463303333834866169853482336628601959108146949480013510639288480110972390232387797501260222180481836985057176033362397076951492274607189747728790968995187421962499682809003382243414228013056571933036092574051892105670055938654332566653625905326586436805968495851470254159643935496292596221051005462786372592104564157758053448237138230066217410091567817616568227095127488052460925219522055257895148208191779682034228717205338131113322292318608443808070814649360991453239488392983562593018671002924731014375681761045236175928026422153714826416198938070059760292889068339946740125666726355185965259734218302943663143225196346270026883118564845527050464921669870664141951179349971546821737124949969886599780873403607307764243820463159872613784688023117681099699048013211089372948662302210918497928232149977827819955108805181489182195995832838762604938903105260309826540755679423303616192758764800342085742435490958741632509920798863781236674657638731076451647307455037015163653045204144651786598802466070530352074660966717057231810298387256131812996362465061058748002217306290352087889875236323204183847893959925135536013849874361723672331163880663587898868888856677470884827445634737369895299779670767851075671594985468400706839197388610656586059771739979176263791995184537533206638742355719223999006099262119872417883491218441974545219927059757298532328038301911006629888522725423310193442393418245348189519550833634770336745142871918464320975839221126723694982248415228738790473037995801840571857239285312632580367701314382548062293203301157935022099667096455487253867472149972943522987912772079084277784782784088221117816151812246661477319061365845855448142701537533617424983588582967232538673144147564571158729909553238194096767626007916506507187941434122954177203951648391993933284823944857931367353658243358072443031741807096861437683270415924909995180496171744110482959884336798436400522719775865735362447305521590608828496306369150009039851369854989305726844140101233359342263379266930402268270343635101084647393205554112810217985597805237902774968716294117134121372623531324090169395846558681017316281790416927223240582834722015335702488334939085813630325737307263756625582014493754880917197042618776245042872761308990985392208845347228166768705432206317931878297294645838257470757408470356876472032836764132010157931219233260911804593185677385091840063926498757171434357830801560923643508060630703155526383381328805930885109858780457665248020666651739002487441085895411730162698625170340727884213687644727520064401708369449959218556321689875131374303021428530605735335471794450471895281294407280508767909012017421854663946115794503993670025025511969183949782837126209402890059867192387355132105737707555264410661611041841393900113450867889002111819688350019710569983365755371467632709539310000052352979439834369882137026352446580365587904707969393609198942237408615617703767103539257088617179496584546983222930291337523392612612339420299170897526134251493635934843511126517915966126806397095882875764117733091598748439699888624067328720237942403932713893700412173232591099918922608103309174768099878839292896781037717394319104836975547957745526295054158625780847881201991338085766225950403575868478852924234603694770392528146633282355274187472113041122069598934482262748905051304656909588842103063986346919772642237701436050812842737440888907506065144035113070900409455916647507169007323792107347171460804508533128675148472297875164585799941307889078421238982876584214363680558861030812794963637697016226795086061823391672397880252338518351896712792731013038543932123273758893192276604223898261777597709674538185520743571796436422359015750224221940947216774456941968726886383839347236789287418369050421102030749254739687206062887856621733516199919935342973463856603529075597364037938525883803475915543941835019526579204232429816860495325959435325669635327871429049578287241975663171439384271359755957255909272949893095012110021222831164269867216124040113319116605161954715502543517649205025687639387393460442399379693540136150823299997662930802165353504996092382098393952805920803645421660232186464136202619046533339382847098453804462269993691097644636730310870803738837669762080329982381043605717730021874713795206214250936964089116407067509471901474102656534965541331435233706440653347270822994677446669833663019921663289476356507891794097923270141168885523951216998687999830284634760508098966843142569994417098153093023477274372259706041110744613594439689224259437338933511056758777591168296561276568867250415169170319112623732569236883206031961393202606841742430326107920432582091838485336064595319041640848701515026789310103524276676032999713483147937172837973237326803190115144305162501485348768996993708202176463552586117529603624633149856266251671941119895752357556721026291096623479920398467730140013721044286831399632573993669291642125389916437034249852046655499521595573076036413442910733216816973923234866825773796660138771182421041146248111187680486620356446623185870217649348364228378294809276547333524141532026206600300931026994006550051362119789083946583734620835805312219583819558558242779079725468238802466417339556018508940033274273518820276400805400387063423821359700684035845931811419240250936572689799836208035225437942331402936626743522588132450911671865060086499900120482716450461901927382410079116784674225438121464867128777325117768675406512877402896415723841995574165958467918018348907641768609954326464327483417002184180935607281000918007976063261432165754288364686662394580439699285465630221620031524015836972678729293460688447660490250816764066636288540654993062379113981685028859967589756139166055715264428986055077275621895834741904938843827115160422503780978875283642705319284011762970767119915269134119169681339625338269517611876493253430622084959382092792586167169373362553204865854027149121015947568760485323527439185926774810759744472323111102239442420303035281117338750518823644070201460277847705297243663371309481593622700774940153394468502274914082550718762047367506461634952628900664725745799733049567338350121258976512289124843650034836933487686583836613987966110948027376719203843725678252954808142545091850476317131088329206612768641593536947663001484570779635715042212060300000798243534537059370542306074070220733261683163623363368234563304103212202263843265771414735176966422929513390523456714504659900183678124258147310398211389309517232873760946277679940632075690867658355664945917557863847276552820902959718204330400352400536316593069591761093818296114708765887717576303019620008660076886250511729891397408437165220200773964580609610650294319024565216982559989873704462353407888956781326118568843502919095680121106254724591585657169886629926393804756089669117336996974867687233477321555269514066170282982360168204265960295610611562406171163133092471943416543981600962678556652700985328710466556249673051330702301289480337655523001146181404124815012541341851055499098715128292366575235890944628103575032236197737172574065819952720181996423660215045492989553655014384233160346909424582518425259053270056814148978055894724372838038836709948193849256545492367820359562763047639493897160277832572680859187583019684929819832702061638578487627791377475450038106238533152495095841037136295413247199473108548404675066752894102120415970158046027717290875914348418446514539486284789610388177470660816373683032131430694024721544352607671633668247429377113218106433755088210632666171927401881033907693399475804233531158877124453581795757199969926044609423196661135470825719910000793214678723925530167100799517802532739631945151832169335334344042352632453656483783424463867965417064087510136322764889758067590107924138303940944064515198021358189638584008715845196867726211936420643731618021968533641394907491139239860421454846997452734071532228323579879479769681154595581647330686405779678520841429637635191514665535591628754041883852756130938443985934539629482372749679436239241838032617542294087945995513965453576872154675029292239073829072150710036343924629561525110048330225813508714929912023979423553162302346575298408884248818409091659128670120915066127137788294673024421487822921251550697678444736686292523709918377306558020717080087135649800192484829110108169803968162602301327239819877806964356500879801186631223596050080607907860236014159509634951215958662552157528242163843467647914229749829234206058425010036402064752531190728360457307720208076285987415221101076298377003351138501750087581393347182624664995215201782018227464788835501192985692882471900202892894610497085585236297522733864756524779461917057114635365453967972184237899741215992381718218419606979572038585628666278758607118424464723021172665558780602112487482610305126090032508106051178193642767348349394116550304791830613098448489205989833727782231805597060778088782778799108777023815363457460747805329195727615102772736311771297411028863977419160505134402798278905951873728538355057771096896308007559428020167855866626384038062676006218631815565973196667978683050965655073977350207379532245897886557086757567365949347688340432139062619971278386997967786904736371572376482303945608917419505288498186726501247839651641605010949510469937520150933832384817123631216674744285536593207633728612963553916410098910779846449031698642740368938504687572159552486992581926221607929360011670772755146155975376979141994367436224875928711890366159501884549923622110321475647493841201913437922956263045800938231355109105736203718632232416400739535220905687931554923701506465108658054325272421174061443462259887675421951421206889930790791798635243878662812620470457205242771437585074748943851795022850907949619962296670879281119826346287547087116080530483339829016105540835376041243163906122103374437573727766054769940606031173224796720420083099193243364235364943861971847279247317078836805463793380913141940485183868506597533884993304744231175385609666219249168058353141604860678221211647470615161334413718732996468107392653564978586026810421259484677729311153171956514166376653921204943053367197272264868187981408841687119229602824806653279748634952682645771401715433135750513911356163973442410346010880322700510420406947682356529458264449846560745773314209279328374143302522464491831244981719115547950710307376380911080900554911920860639522654171806426390754855674585767854706169834449739907686449256293959760155398065736176288111567706201448626795315097896136257110623862036090386690348306163290342663296542396757796272447980328396093043491547108937047720169044550624534788881076966111189528443735044999104134431905452258300795314889196396665686662746739234273566408057826137512357297531067236799758430069740363285058393187195072915478418240221495365107257095529525455870376712014140973974508624000909198769705202228119751514348627514500879923305528801092213526581937456160765098611033059997966927400838086265835622852174049799513787247841482862448210787863634677035079594682684656405371964056406255512521019620128226966399724952016642883413632079010388906960956726466195766332971230208492982274947755108003214939761029673114774811081722696594232143717453190847133280585301520473926461160546597593057889631902411354682355831460313764812409365950923294095072653122668391674250151892464570964683709294750836974115763532803199201039022886074190245843560909271853827173137583829303329794232450813504236616513768624555515912942001926105090668248542072302632349541125556936569768873595814827681583827165459901860043929463629573469065876434103831505849122858666785055392654835541034303104426560407990867592433298331410114667586334062855073422383920453921984312592442941007531441844760208761327544198645310424724154571435278557171061466841290914102632907294698572820502299374699178733710898631708209206238454024126210020289900683554722512988627321910175476689075214231704764130707084995142964374773383310417990711579067652278595731078335010903068279833264471760199032432934877697266426550773988576898424545572777870024835233566685415330333271040658622467830664874865600579295192219469136830282132596354387426391472277447982385767281238032081246339996601665052994396158395805226384347609693495708835012846258289997504040874983758702614679903757332971006260022154560681925931451519979272147976561386860791523857848060590076832304816247936424749477101703084038706997396223185716953281481565712382906656112726171398683555319510819886813205206923602839353001651890082689293239995431251202068034236604639657319960604135274753027321285962473319081699998227812747950884643332636881693678763125548653504222196943832586762271269612167591230084013089307680569693882245594851991093299452907858005122896902933495776699580087620945334840111927943675549125083885510213226975547481577735410298098205588278542661012303331360764963331900974024311142128304723121527637496446462403615310714184279035605386401394452088373875766406161281815744172233320195141746733464365985625530276077285833212798662872773201894940454874361954266538461913509610336263462713812043798545393533694926306435157512072202288106922867370491834593544183066774362986615337463918543101316889792613326532384661647912397380139068466535025913856145373498801138153206798950149931633433010876935871739670719074634244492184729820633609484546532179633713752844600037707495130121813867454422287341965606232565676994641864611511312810705005304822840189269513179043379352293842726982586365758114165035250079078859382908984696620340131986754000681079498480135038773677505098697900485293621155863458889201308002769936660428039529081483033850475083650753214974064036578957002502838698312223287845797784539857921269479752998442533857502812522134870785236400189882579103146583291791159034500429104958249327515482690280887772283690279756536097173446023536267111000390084455982678734121596759923806873229921274516961582879287359957585212473653489717344303670325631833767167849379475777323181681211547842099406442786713080455550168253009001617710738610174102849387069803656410529912944046180957971950029479993507071019180887284099930726731481471600245416662602881695244151824689325238549456665334091376458228944725078424205095031806551036364577055917291720895106785558526083793436243934869740861993273181416941117399305464997541510621643951159269025902522657382877623173149369387779563020797416109831998623329619336841294253624431607285722711023731160393709177082247930891078448270324097947641601098022757793910921076465185668433812262415873159544675627679722898937554708004180319217780465414035358557355457665518313097696317570833696739048103968885436717981426612590003165086688663442402657942667611376502967540752296410570225781762818816739555031184241169030395754753187835626259120168267810749115696476688027761120991687828011044788325900389631087569259426269610137955255715231075795243252347345548614910427510762693480380572635795097277902826599732818079462644080345463033153316493383340238398273233184329186967495697752768220213486311807858923802201682768648686344380763566450682313845277551868294970397703416567979078062312924367240970664719486560662754196930821530065695031125817612320723057071594518684829137897625941508955146262769152218072499274840314009580974707502067923608969132553337945964823885156782438606472779281326795093953193604721779155296215016040146216556613083051086766453182360249474112526096818326527302553659291450554159074304220272702235260689117654270448556110731242790204236206221910903929727409935488512049120379036750259673955433783322004302339248662271222129343538006937736790336535827693954618855612919069595127728207051786180220044587710063661097165303873066639588986856077898462347051794231640112104325969824732330743053747495227666810472891960455446119741475541927058178856627225050125963419045626413527366165214257242672352105659203027363353372591572198637198909754514087130923145792763234530198963441627124768364367770091632572731059053883555750486870674219597677960872774185797378891353954391860857517560420833239636318029715223824722284010320724201866051680641103411548714308180991156159516037495274166019306863096845506031379428582876878966816664912334300405644742189181206556088958528004881986050616629327716037533705205810885756669104334262265122352311764999267071679302656587661714480751560820621400683954365877111815109752008704988719373371309519137609750759327858436265298800053199547611826988621313741366137450622566945703828659377047507874321862026516032933989325090525259694209809300996402922325950411800744096499174743186843174993720811937212602998179617475164882304108329075589347971845493093887733185700667875193119416249160998609170688095246167394108003613158684854814082091904532953239561629757366984081073122179792785617705833518026552720456101601909734857751797659235551035931564256178120587130537045273027853136386070252565841781347170509612268298775959108323004563440795938122376192934454032058714929746995269022569544980673477510986607611109076897347800215747947319270775695738076609659326120928021749403190019376356349306277143730833572194680478841817910443297203556355315343180276078869407802646591411002490044050032740268683262170261549336480109510994780086778735579503879255157124558621317333430085643722585440072549989320313059612206378483670856369505741100367662763104168776475767477857038127035503826931964906087845817570320069271030629998482308360039673747891619612097766607027276498272487659500967193382268932487669728020676074513049197377597605239447144744951175571696800853997028696740124445708542040489556084442767526136426757132760656014425325028810706323188326164938787306287082140765802584652003825978915178713200483439772675604133296351011532320013089847089174202386158764965334733637362583793775831165661797929166747184072314293790233802648682468691172855368793990555103897834775379323920248681210261823739900788308016341498882730386369689440190345469014607931530736847869086027588938929338762524782626673164666733326222841907093260593350256792218379479811413565345247561511714644691887670205821398280148644226223860892522863081838376943228678472598551889223231167247737288451639273565654646445935952334277649142617503726016145720014177195070318769833485349720963628724588221978811964333581967233439939033813776256943783840028809535571305155802408925738974930282277550738174379916591639220191390067991643689211757645869791284822044799118776896369202253369747154012144676725619227911393110723570010940216176489499074643802357978557643813863247641536699816241628324150241674064191757127781151060308098647945163474522635868706466831299181227490174021388611151193933115822111798615361844349396321191791727026007443602023279860087213166870256048881524125631554705424867437242169221915063038829090049969270551072638258002575269800134596033688230366644350214484448671252550776278501006485909416898842048322959259401631811039832024383270476252331834795343252812744077877966394848060125055803905729973738172281736958257908122168351743161256648762492588684827753266926066748310789847579539425569937056724092658832938379218371333907390031691893336323721332125815046727748358414190914789081319942763421686237505241999027803590521702947738781159559005965161548066475383638651922454020203838195915230898955415978685499364623804537812721014015827222198141350745428916410841234458193789308655363367629730403522862275710917080428064673462843824638999239089014875471157890199726107697609228420516758096176831903702736112844313343788642582074441124692175493115826120995459130488242321065733123572070961185540230749929315210611528495505907629917304544906653196531019741915431983309441727817608295600431858537083145672151708498774089735174708525771911768480487556384282487426531107813971574554363380619442007283555430989796896314397731838476323939452207370894479227763270489908892530063878956205085668447870837968449442525126070762011877298374222417986400918221769679044777114284335172324644300013643482844095489353556765175053869597500145942633686552740574632997725282207974256638229222979357177224508847061085081352931823016076554044065301931173751259810098639103389229031817932347066292572393206617621547434282041905634180714194722261670631762275588369038599138885904845597201590595612818952308389649305109380465197239538636960679922462008911527369593873821217387347916244369531151183129171682772849235346634920093963190821807866168835168259003444170668892649529807369020758380669939708529537844932928776284380051866782927796130049754414769867862176088826691520381867789528827890677127506902871093621353344202893366137654595710781963453132571841153892152620869222815955601877041061516231412915049442716047386210416874122080732379895894407328543090445906990355371012981514845849838848801190621479598007809803906162492097784243165656929316756140285098363563929191506071184083174562450334335211011367802207261884362041488743967575499912147778244068283707994735817377466958791720407201261829938082562080168352306075224138412017565726813092801727237492639466887691097313612425781198320886848258308999068834221560633898408659871139394603001848970823813231637711256039075651873081590474711466840132584842509290692065802423828423667685079579992211613157885014983466777851758869380066226594941522725213944771956810345467882239466688877856258392658348543258708534333317427208925349760789850373952910709298407234945640396203278435255471506092568674780968375529934255559016231225023600455241140805941579133815015810477757605477894039054434793771135318953888230187263740785009202043252484610539437829851326848123348688201094386305778683587666630388190334836060538625919073412854365129488908392544978625153199370452933026903904365675429343952117546724507564921543909781374607624323241426120991020731893429344320305376949342084842675819214750520993102468470992814666722453342323486659596686989068854194598098625038392964194318079337046734284492910722435347241333872790726895315990999107803695311176811793536085208766123180630846789952184172987701990904563285911565765413358204509190733660543710010095545848217840128379192852692359965539226559203451770965402285629964480440692074800458787148497811572931869620041470655567563493271538875668849040238112032980928218796065246720411495391124096024110785399534853201512132344234789409301298290445164008699578264005836361507754429132789475529996554856839928126380369449353352148036341882092138521968889216875708477027741548360633517477835648711423776743702770556583510926725378448368876752971213320973394439267231165181866709900627756898539599990341450973828443978821357882606017598504368326606969356308085417841503431572752521033214997604048054884411791332455477999973958105886356194980902948180581101748007510151890634724762961684382350977187653471155475943924890648881613153741955721680646721992145600158238779072213661106123846422846214903081033128603074284546527272326031157927057955466295783860849264915045241538191994052696784345040667097909273739397886210860661638466516394211509800399275222517382263781978151047577711837106306523347372290447126775628238043912953138434400885258749522882495881166847897858315106320190760250745838964256356919880613357912023264428368853547199141710455314341380123828584035620759625016420157545227407254651347526535391089786658799104623051468608983384531885140818115103753598862702220129554660909674597742789980917770235071881668112628591348273425057019309703081232268216935621831769584473935294866949457380091343024796221558145055794637692289241561288215138117821184078714347451486827748825846932293414210678252646149941970541699279850656910429172478935632583618752065173262824253886459939173597410243218025983280236083497727863093911773978170868895057846729883781797308293163609053566660987196592948050955754065029463259495294527884410063644379638627733918969734396398341452072841444593275506302787465966499908320612038502729255676507444597218026747885794831040664991959531166476496281842303650433908518986452953012266876953629553321905802172989066862344190983702549057056192784339357391317165821992920263251453081607283092035076588822241170036168045372513890830637046813831079521104313035519106364374293219654623261923703934892162939915410185970095191322607201672365521803680597883470211266230358193765076959552943898987258692328512258056369820887699490499087647272482634484014636157244590149784355943837060941848005834828891907118472017546558165187352914448967316671218421561494582544626979517588637483761405002111137289438731538131282943029893438860444337515679807785744945707070862127212968648741502511899786203003601361103673581354445484136652438896302158987159447286796679901505933103958144537226576700331828479716465786735825366268565153237248846912105671862299691084231964502243408994005115441670236108431928292403892574634497880814788644103795953196475296773558931530056944277679456315094439566080551686033056788927890233724309963717146533745844346789086484439667089963351114249762734244419189351868610010190850518496755191568284034661086767033859170619792190676631790497534241574333003638019333229907756309410677326911212658302360266584316588034089914883498575598585896491212101042785157736117564426213556948739864962370933927098999276978971538768874530844183427774438922948198862484943748759707475445438036764168536800445658945923072641140171917498473728767491040701694613624096853305744773264312388619405252180845890605525076927686199328689940399946952028607635781299761323933549451315519945659657109702324736864560294357316945636523268326177511564257247679827496717170364387794834457660217048144217357515336394337922413355480903061193716807213756498608883532289435327610679706226317510897198178905417898965151555908323291837788110279552417835371350280295308548160253481848361738145115204102237179332649986057565768300283439490013857222781649211439814017316324953881643955044619981377943642992200774954498868040391577375017147408548214941415199622272196198622415549921001666617781796442837327785309920838342654740588257004337156839907430915819004106065046656892820155211829445015150111675714222690878214714714607853102482700565439808114329889354217686196874070670536875328807155573001268964460527510565353277793025708717043371975479163972423841839790229962088756683397905531422788349186347179830613280514631527511108146133369122933935024119722104899184408489889256197089430461405857840349514768355719652166948061582583992913254091530382215603947026086700841141527712626478661737454640538412591007445263115450719143083338291102219092963931716952074068715785950752490678227530443499976598818853288792597191041797161004475443114158634197186930067344535058054136500657440477640061226292357312738811694615328169026657841492603793927393761434447872341781847775172031072399565251346119559905739122984544577109205543273309567995359756375715682374702083077791606447748247342099513494616269975003280501884098059515387507885203038818443430426894378624778656944433940266705376232468311230752958141462128143849364224239038294738897041633109644411764792730200518255248829057533215585457411677577239478668446738772851895054546747890271389797959567004637995906618799872412149097034118585558799668945947050615008752955645445663154906652743367410011970692453040056322467642531815826799507680065582937574822999066396955687088931760531611364947594880826981784686583157834415009039914028180324678171211344036178498434422137809799640259437327308497872659170494667887675162514407552639156757529432320278853178966197361350861316518463438107650399129149506077093559779411464489532430423113605846161145102846207133737360698311297189890631918145226821949570514827801011305861003300156105950256271202601958644562642873364916245435967691601643721538087465310061381726869144318109705035437191896767815754995870847800787005862953061009836750855108890538616783718418966234010403355600453982851561503323570544344475554296639211679030619996318326374200076802992767370183558407284178847332439543353388861403389296647363759936927516340516864921218765924393388948096978098430662512532084465817199836331735048350911117003877042563153538906910877287738782915540785096866832757975864029993808284237961058342793102723550472260203758097051540315981261979037832393521975924065970030303183983286496367303446747222086735947749607159354301351709159962809636386231348503895393079066986894408255347255481825003157290425887775647105182561572008101093708862776781756556368656995031099488067021419005485130672906075984937811835454515744057463742858852506041281517458652503001216739136796221771660316674774512117800232717824990615160657460809987168468965896301997499669258382271082114754551993944172322164273678070745333671832524992243740476864910279509694039233665609824920559299045821858821311152550294564036593752120810533683135690337293247887843110927449459711501108658045270870320848024916011440292569201710119372639170407999365286563879463718933748156134266751434605145850704703876531073534590581916623171242401426815828997562925946022670593368805265525251820290816013043814524237045203256074935571645562296796280471315534686791768973487732189511818683211876570275519716647221134319787081615365714749355217447918426106132767379141576252791086444815466153372294900248781213875383528608533860752540567512615370404858148458389870217374826391882945932933767357776128726959484358636294364609719587954599872512977357512306707461018947606982884943080911371940222577573295339174566961666614357984905274527595742586078263700310818804959324677771112467528781271567509518945560776543631976966396786257185294667822198711339937662255598497166268917922321069958546782387538547160047899313166001921668454736792003066890289495431237976323564942469913406821300919112872557249256267662740472205371478551894422122251632273887746524180621405920259244945407971467024777199966824098420053227817049120447665220400373426444369181873714661154673682877522188903745035884419941458469998261029506983541655870496850244573822830187641806474201575899449904237146496719046389281397724500918202255202969117873651254484148504679220523792792895660231247426616281274388333501601708089064242986078032920866395154606361039045835007610917567108481860052063538268812670600650641045761144618485707307499884355991417188488526799735497362655333469073806037122333716867710782625718448926099069229659934698970827173006951263636558514430766468458073500542397445666389602432843787546416706780761475297662338978217949098234556235717363126207464826676058065232276740569272667517848131690266767182039338820873259810288789140276330307012752400972381577522505251227969539430667204926591557538395624527261723964522782762323388560586958429957822910752245042475488632120308131071176772910157161294102963457451106930684339244766516833086749644355049228716204768654835452856717515737845967610631082863544095745816499204590592392707158307332156317249076875684072606019959256943914425769875118253815009592896150336782710081188128756376533894602522699704414970535115662728263256684240134582960878916067641403793882467426998612633497880215936823358592780568311597435595783882931405002781308951508040840783795176975234975927457098655442700334286450934620761638905317310449219545043633453867294225182945730801637896992528211112866241659533267779607088651096148208743350063137848919178167996628213052565161873066321710820367017674149397454282320631571548033966647987938145215804036156615145234735290454717300639331783497791926420953728803165285043135233134044192193537072979500658864765059974167545917377935712862268173040887939243699844173319475086946074145094297274494224618590822943828391918060500490678996657905558963084172627499831985016111540961800456828086695375726876907230245534240381374891826542868744799734873935273458170436280290824735398451227099536295937569397132703986770413999412530212568064861080924761679400648407308073576134164648194633299442473407999808871968552648385944842632226531345084404797032260399209808060961611921990902920728447388715803403086823412408341561979834278939679593411829634896996883522426655195202629385285954831339709425935277802273884328788679054473809477939876140295899883028795075515391526445452448555308039732277355360197141286956557782438595890465897662458670760532237858255875862231444772376417540237207957286144299503041391521952841619306855554193007562519021451036316047090017246749065065847694813889815569468919135646737706867363190662701150275840173299621041434356236575306049938332712229568574842364280651761369061812061701350386124027831948142261820946412816484532150324390549046381875333012465445902694507940645836268405110851825383798665084173935654525568043137158425165320847463314265058433023951200430987950975596608735835464685650930505449489007627621743906323033847223787472355450687674007868342434304019778449996947881520411324924189080057630379624508179489350523540788794753272759708275212381035868903668813064567181083681509354326499344383152843305000662739427660720864928787858760154694156756529116952435815566645962282879922378254059500336406966149199141669742689510536639506759874547901091214882161708403212171112201096860664122997747347951665888636906099759769749002933304993288999101614165645903008974443853458971949460715131579696980636443105041824802506254458818153502993971671784742617392882785573004815108985275772365164854106680146914404880712256926929306114050607210678130107403771226552748798490935974766223122028508070614008914472008415105700809944285466946512747820858515385748664874385793187279372302000001468295754243080011608486588668045021366564718522494807834302197717598227874678541444491296922779813372098220913076947932808384942399036807530604977867917999835957541478960729087296135960412900890259407189294852550081958283826008205443912195650261220952142103123871238209241960763996428599098424594339788587432062979165819619249339289063103906226199978343016010087713805198484520873395840285693833039914188373627117772673785744360731858896836640788191698167860541923162724685355101708439741188664686232523445130728139948541239014790297555591169265668107527393341675251422258104263052566605496172500949420560937575655826897680486746158080040249543343201974602888435457910814050910179586738284254943206813873939286052252565851625239051892636287809502001765484851240705625766112887305000848629690638250647924141447767131473729361967188628738757542000492104751243648368088376527381641670146270216152073116858813066369246330077047516035969940591554244604341622443161099856560243561185531513337290617999397531754001787030732085482609841827731663258498814166867595351867752849633731605193754636046697285644370294138294272919776373247092234240852279879928013701299995944202873404910131094170812092802447340592641998158582582496182959767897752994842262031504835696282479521829394086719280658044380424271589832879847466384649887322819635214962952224980634789146830063378571323913196770207089429269556034623125474355427772866891506968164237403981188425161964677771177214447033302590834359827097014339892104422550601129874169057815430260306454772500187340000889189674192554177490399268145980138989408442353584056790909298108811358897402997746061883076437184047072657343406153335178337516412551390649854789910314040821456530040144988014686060256163939047728025035393626331054546491156884928600733451573213697258255731065601746713637291852882236421450724369686728389305401706625990796155850431654564980827848345643292023286130668738262969947655482258516176602515387015005224284327209794177818003774124981896741664858905464868186257290584325275571059473726994133181695154978430885703130996284061227352760388762717515320909994974105136534617730219983931631753065533749627311356912751941701745440042920047331713980566554209457676505503033151778823757707955211926619219024714623532646754586491333939883398000738050488710761756311957622625711399474309927448855869530926925417617567250359107712423383547040188525975690626180019591993173002751485315639546099507365946138697953186608826397458615569557289828843062902326272470061015090768082151121720944422510887106444837233118497272427019551498259318798900481303332651340253184261236894406584627077491233491272338111339132928919987716037330508886358734637956908334911371735891423576392742971826984810613065410051277057454341812393121202469741385362465128988598519771196450685119873196529783415584220016575581431109291935387581093658181966964164154469538863763436533696140021535016405992311533616816751337319371786243088005524998852656303854835960063051176035093046460982123000237172590965070520888837625144628715469750358606868519422793117382394368914843521698714356637187422904810036948372865023489630376501109075760012365534749548260761200592658965180652037965985662217147987081185254391713409226939343275944739310402294022748142682057484299852295322056851246282048257728519285113283374660893596299754248245865909764447720360819638345281275842477184774559796374132878644876776362244816705087085345291437769946439829615428393136482220883407942685009219433620617926869911994008321784518561102780740489576420638989703759602003391390924450523119481042798046373510008901392392023094669172658963966994350830198879005787940049922591153704227105318284955496034825561323815243475271098799046502691531319421590887534061654801102493723334687384402750293006324382517739641849631383214149245787820861359611921711066761856485577926251881862344293875255868032209487758926688884099353670187542157701119363100889672879325972593201169974815712467925840520233598558281093302410490562466609305618616479676352109425229107814015197939538565318782549716159459495763061046495861349870810653482031825037038698721122627463183619458480707525562792449278700074597711283468060470685412302385032184335797229284670378526344772189182423915160449842587821016060048153969242282703312192289101418676616628576077944943257107151773924618392410039332906508093375684841232929611838832025359782020852624629098985656238725404587330718224296961658160704943419826307913486861399306745924046670259642342258250632562789666521574330035303243289015593187460982599211068225830175619672544714151407635203050937158618153365534573609193273225738321415162552033492584940486425278666546702923834349494584494261531120105937509414817422242831427788473782879087790927260867255083986267204489303418545317037379648420224856363984499226043215703975957931857346776648718312572340074490600577226099564443237453282221179248790953028720452046717730358864400684763813041179997650572169151350698313381405701562361593968970558274862525335481273589280554662207735928782929714898311876096623814127329738790051408770884863632415346476359387815851941065072123744792061961444986723822764537951537612613935047445222385290127028544386473044137890694045082934286453151665530795847485565248237269893515798200331047086483935484597611126906168465943736642663985931986508187883537776263066748676477957653489565678317746381753492782393645628235048575477897482990661241535258813747642370190872574347696696965066203396986117005296356875809729704880607873834725721736475180884566190800133761884298245662776060031347871195297723121267183937934371297092890797460505550085427689324240017684986541770588568548730425621026871190348699751052214186298423722020939451076312655580685606658674018471175656328537458012377893078669742989112170741368487407797639698988002806240997989975189460773284569142678829255151023406128329125784841773801821072946971431791289007266556710364478330691191908240779301702941129457998415707366228337122925930232582660751065515966702747939416405837213763266964712558059038147317099065858949536021960797256061465801388348750717793758010141608488970611052165005636820441994295836783946717914752729035509966814471549550578462654188853087976796324169852712803657190902564618002151930701221453119116927587894290171938964981602496448987752107456591861514566959721263127265759454219166424631115319292565630573033061938999815378753743778119857767589406765044161747648979138235905229675802847564247269762541104044394560427211447811147938414496963321876139898896263119560673556905236779446350670752156935130164517560908600443950608101498372974202858565125804788935459925978488230851789434983823279731580387507593643374031906012337777168945282764904053376894974558436828303242018101092969671379069169198484491053381623443200989365084703052558082552874724072506033592849939389143794179531120560290623721943416781174270457571054438387847883093377686931977450563207276626244960323614721156493784065038078640058855899190489008065901581070756726846862770884712815452650068547972899103405138082779298118194432880436437980793604232308018661574927902478801292333297347326921540688509762339924709510274164768688970582937079507046756780987061349542126670843995583695055225826718740346970385611944871654813427127926444398829907133423984618638717979171190754063435368729971760123802118753974792465256618281619091931554285163873774121801149685101949438451501594428128599978167745973206361946891614633035839139597668819644493000149285087203572062120309820317642518252832356870771289210997756564341985860288606382790522975432257871632430636623969789408705766399824026287558088406658080008770252334994579618857996333053856029700857174395950342832741473834491077910987038462334663682839339721507361348597141144342047487445549945166807439321780505490782788441733926998147625524080422345867954923259153443328621449169709475582388659172217996562786006462232738690132891214766796972359551892870168206040434987329572951973561683630668024212226233036984896296217559908807017013270069029031003068408696388784862214914921420744677121039669627824415446209784488654856525687510677399044814135776592241432553586444223480856210902467598525004736271547064300385023082866458927016995286815631504857872223373034872855219749402312274287571152113877841420562952369964290649079784448971957878180026442909206221134657270157416294261595814767262802930913721624428244027008868445418825981178619358681790630902622727442227353499967534436068006587720211400042343335575823993302017804204770426112935982468255921885331765673187340773632717077878169789379481911768451266281632048006745748023885138689481857519660297631056632077343846884497084175872117186310798898294670118393118814734249792496615873206113817163463550663618160017716273908089222751862577407078739342903020170132621666679806051652478600149536927410259511938582635792758331625947779663235994998865533842625876862021031995088771402638377085846300408287946426943870965796283670748064737679131372894946007091750499637149595983663499944626184255997122674183073576835297195640727158554390153127186997474681093197064468871099075325913435154993744579104625168462433077327560843922579200333484294218924164286326376765892682597451769896638612484049977345288401724766791336694524668906927622056227079984320035828591687779506312927885103766386145275876556204795617051477823021349406636312936731448428312035383229315896015623457439090642503450600911182045096035457698592918619320732397235946629841179086365587734339012534452673903834038200240658155115916872284674541786061415113559971181622184651459009937282072337431194116723072893881904418870796180711540447660232365827271761492596813510471067130861633007277786639115204803512691496513215143513904260545555092074660347777740834439836620951558664826386773541162974816938963674287777172968323293504637449739433420098478520304742248125597313825598315716424822193712169033004803180602774507155250969196396993204736784745054419020521712037257008467250851790967542272341071176632671644244497261592501015339126194425071347948540953721446928133096169672377305386571460403128751071886401915117413608106835690295230900620369306951916333800333346490492391752442886684434738527637360989564056181099222188528419281906946946917936113408662555634062471584977406274968154827767627178387335194287615307796645891025709871215235029665192061997671014870546158731724833451741276677963623015278849219773591808298301342166553498059551277769547639485237262267665564574244445556512585300085026821033994109732439270465077377912140839203499498819521349738927178778102427074897005495876108011669461363710866010794821193255656429510445882468846030655905400309066212532235433106852205239170069614485288995999696751780793325198909183990847300933082067635415692625083736622228305315464805799268612186159721232288153459323171461156273785262097367892049575699296251863328411873320712292081238961468933814648197613087951507407445866065546149763678643280835054523182487911597433790198501709523293090162447060011044691746384952647605913773426260920759336200677625596222690759061737580982639394659737933105723865514044103298594981166565560343532570840025014320924132482468773357065627504279439528954963016312928121730388725255636653116147356865263082172587758827002875437718091076743716787377913501141493537393818444029363873940298856409527604000420761557652822961439584466991205090574432040507302471187855723165366550179115925328774420333265687058556361001894781195093742750546170410183236682730224657647329665184485713950979337850151969632965378074720665304796701579941449382445606800275264521655801303565682615418642731976474724138072299188608291383813069499276515669229491450219563314595529039852195190225923944938584801583425523491109605068129580527227340967243080139298857133488433194538962301968314225898720804047445260226863459574787235091544965888682409915397480006038083811330378110974975933847106983506897095026001649947338765625282240150849594189221441505941620144587554692877815479415754876583795364201761618727747950480244844491936865947026035950912371709646773653871798381017827029838121507829962911964903991092097342305426766462479262609748316291379964032334368101263725493562195443846965399639035335389924903451159860446373334090290867215709857394784266831974170605186712355828290003410191755693094900925106356809596953235466037947686244845923928936066478987527489260358685877387597345611713945219745151331283752147280046952672931537239551857689676166088124927909714518104195810435496983058930284215864471946781750385553184199232613408600423756331600807759712144081084828319956158777796315920541274928684036880042045434471505856436848812700752246904312917955580569775324464943706447233006329831455568880418439123645709322724635166952600515282469901303703876890186397928240914269054473149510830520724436662261582673573598699497237565454773172343865406401724685429958564365554630930661291655356604354859742838622308710797279002665028661402606637396008921654780771700009118235252937373577808368093991803779729154973534578845568519169053969287157939812799336767650591147513486774553414736951824051030699061186860270591888151501675826955473927828534376819997902712038078952249985866090914853863567128014334625038739873184122851325944547061534150385952411596362085329920845940920806688226935716512976670807641860472768722835971342799855428808864889748503521614721812272143487014423132833531356077948754133229492747392367993892345049446918833273188024646592160602191345403245397456939653933612269827614852101024686876352407434199183449186194684754219867034208613386050951225752058923987918374974497670209608183894192423684425907961970766705567858472552765365616826578090606776624697481658810077798037111009338697672231981133314947968140367472302722167155459531116326392619818178997600272792754800211643194061032811707708641835980886166401074932649169594325276066350869861188551722014202570514558317852660093345626785836020451461720141637642904178724059463039502382135963566455368077706995846842069602185789060586433002640185479974372740875453000708705528567233216135828902055302816972921771454975210697243854316035504939639375448611817484313931245523314142083555123091180126258591050250617717046531934852421803332307373601329236642770050057517282136482258183754726934766427606681856108027887961110826619531557166651885066675332027894469780159750076255506569326356623992333932947630189565149657743128481333692482013416439929446543604196897917020779333301567814065882252714302261505788411322491758908114728408189858945574173417474403800142509131861063331293138268655779548709514159226327052519962595274254599002600271769758390992044575261105548838907068162415972050325881397308257697461797351502331594144287707716805184488779839821875517808027325373350244280944593689317707779486748244589474406890227160894444062504910736274534008030009438942816727982061789446277813203911293080285355874230682794792182845310842249762502070134157379753229784216939084321822112013665994459319999886917527737160188305104247719168416027788705369267708977378442500359081859180794462628975585017675454784186383031248203561354742475654742787998968822596669662909125854049113440720739474802197508114869177444861541648541167102532508406798052979685181950499507569949493807654116973626184313968037622783762684668456338429556360833957963631820256052528744283669813106118804760127830124377089537335069174562390858434271710266540333420162549322066699402393189914461949573796308298349379137579690809260044767174641449757844796559375643638723413460489440953313410607119771393797191298433815217730985538175708265417112659591571499257574449435687460386393291900954846599901731338171452555353051508703717753537599581046636892253394348918762819794131471384317748638676310925343844613964625645783393503807468908882495666805606013647193750228545834294916002205278153624439664793676436008480489114314428804889409345276553721299795853275822797856042730049088447697856530301991598903468648849761996295343128991831189960627168835058447731436948738184147596438129245702862909546196295539932352178602474284836881341331686613868592200118797925400861017870894732235171632386122016606534804307090229349575681590078681917113078951673572833848429465762833051072244015952972788089939579159461344143984555691667808640137477882915597249224108830822260390122422900774412579844063082406124509872748995020525687212083170319897478631683952703579386699526189025099760456161075444831408258398938899569508329886135905969374859699247609771220522572692985293742866633360049401837466689098056009899244020692150354800454232676274830710878623055000954552531080744607932774629003453375597033206243560039017161770259073914120895830183200319583689932580625463137054988839070989673797992700219049232973995441811330231923709318645218911916583681311103722581889171429534071771621650594963539725651662276907410376950233108666845889958634096763370818584002304540640298074535379388800601784093605928973453348586901833247984773471927516359283859024121718117563053567903190195073093875457286791626497949096435263653789214594047991674277653641083825325402958285063359401753142068578302709093622528114630077436072204293987426165676388444123858553333018863332253143651216224979777520044996882180744792927962158325685925482797686640491097670158251586423009026598638674320856546945971878229350953626356932333130763605714268982652507982577787214589775049489678775345736008938937417442858095024997188091356118863815065063832281621294513360676971963909815686912842442588765353413241459592467335216946795014314322528026544780851889517210653480945197581645653343240521688405611940256048082009436425224661539659087042337817237793101345076793973986545171930859636325305380336714626419403754141319290491538643327461918773067330836569538455154303888733096767687947059131543570235557326930620045720145787567680812274398015955083074671895981579794833162935953108253293329530580126078979334639449842939905036386492854259737015362144549396864372894247905316614049789491108304138441804458961605224008544580862328123844480744706748423579558833685750524082698080615303651810416778370076320255717484708661483900694820235428793900418753783385521926225632773243737742566336535052689863407293087021448611250514078120087290879423354793684270808084178156408716419077879934056089192697968738799966305772318174424636410909515089219431124610445076069090129407991443218843657209098202734334630607817367159738503488161511567359264164547028359338002540943090278568924668167558223099302499804276665349885226414875780546864315027239631781832366739787231414438691847683822439071445901654095928878718682799000922015362070976586304336318711793276089894002077193255204804327747407767028371397619844581598180065861679963604691660527734531305605063928088737816906742358555930486180134665982106691696072294482022901716487805762675413424857305642484424261803855568452075133771099344598441408820954345603015825657476901631792267097706407982805675638102415387464625748700677003112914929804783373678643392286840368958174949459166876331834793077759097015347365930815318000129521791584072945124279149987670979524410158700071596312040347107474728305965131709716428233573628109695972550504136888072837298746296904797146588426758643070948269926681325882450338738056399304273131692099897407102714212881315436490959095766810359341038059910446083789218084400910095175483259864517553597186440594458480301889203495129376780445693156242515006089275867688736732449749156161821926350878894409624712060311980737123415322650275192042401151667061152531622716760349242823259375607566554993348362710449779330201558817333263446234746229134306783213964027721439776058591566178293015645274283362889754379670528683906399820017656462317874922112248323571472716230302682389951127513227636829593957821544940048730799379287962224908762725675327905942392962589964091694903758396666631919427854889849554083807824170092409890920762064440589143202496434889916108679785847000113604937501429321601378379976756852172459987887379552853708550804477497349087455161685379523779605683540903388302262804527455714529081910867594428979186579356704085494902596456638391783520961724159029428425418219515330163257910212861686385379881932977897239605089333327503347938330816686688815223740122058196096013454156592367507435802147154628474900181360362664488318987354980704483105699718689965196027381688617735728138176265804975275106657390853575165717430710750809825683994984581088672036356934511299970160498416753858471261418593350494083454473226213451372728101170048704231772992494381663992459111224423249331465915395977780892695111517708694712833252034050697379920437825316746662993301160498923605638621895984318652334803310904016912942584999190916834990182957868374882395935677422291653248396781335755931706078284225027516705613225631547390190176876484787911476865764369038141256141747577936061876073452514100272704461332113746422164560812089659600135624710684906477114743800630701593770729566421060040840362520384826314051532847454794178996332275565775986537621394685059209373597903368637924155783615349505337445300483293369230084738277148489728788114014777930732474534698659224555510762564857307250855504700702337503709673553317365021190919507871846012381548734482801870665037798112346582064732889646317839588732800754312178187022335790295058449671205709553458861306463182886752967833591328664122066525763875581792320851322577229986085736378631482241052373169317629258703675105296077449073668846741564734958637474610979292930322220739415546244031822857555688160809735466057926824149655108224371054474977220446180401183135206801389995867055830091987887887467570725044441337664912021881613922569307277161889187568446700383696180934165424186450031873759151371697225616185158275178357054263098212125767762711071417201665939500605916480501838508107911259807907212049686822186730949687498143228899221413933320425463466246905506193050020673906958245784019373274266951078807358260254546697004570023032562459358873333553663605445060131245863124328638497466317173060785266937141778678313019446956183041734152790899974358768729800023223276659941236271283666513211746731245930963822948665628868367178525902197409135428022637370316114098281960003663078080820180779328121117691597725773911523602821181805993777374939707072023247149070497937244385604191371128894422025211751363850472292663311828325970715401832573404039348757062598049785574945502157782111906851174286651724059803634014043879415611581692682292315687177686748364544389588477828505375314239416064619536844515738110521162034642279711380413669446982661300869422666610579783707606638297864900579881256240229979504701909374547952493398904885802309267471314754031753426220386982826039678776235286135449138397326816220417284754690031841538712862190096024032880825437047986190003103657297131794892593350706459345697375715024365215820112981600025590489904286024859501230847162375863701416495610214402571079612653849184512073488462614020365085804304769235059297315690503770766490476674712348439382058239713080989232180231518730640644400652715053886860473415848508932416989068439983927248499839853964818984796621016489967732178383670710210285654235773665653578630817863732194544632627414298293206368751911519215419131469668834330967123180434241377985482070472704960822352159510547411053605896885177321932390298520132572242225611473152242938871636613093250200833219833969429060792018334527492462353491946620257838435606891536017553660721429991001777428525538039720520532425446536021724556030110091852354910183140121284858441722173566977990068163700761752159684327123816376761304595573147277200991283766123868369951901145516347624021087481585163401570404211229671254272997194398829192147550803625393171115383593599197112760960657220998402524833133484574306256868705753255430369709731818090759024754628666806944692756545982955516876944960693089752350928721762443231046869191147778227559268141704740531337906528872877266060964214597949289149791363052723467344780440895075567999040139078441577187710092403777345138275653600451105064007381947373192980965542020144130439384630138698353100180781830075832254238395224748957069670969873945665221858482952939710062218415291340160295427779188691968512696535070922664908442585480868525700182585178544603294563134859642015325712724436784745156984450208592162733801005471250307989828751542585863082749891337591671448792195519299222290183072991273015852672048340193123455484200471766642267295228539555198883635760063156993387876757408752426658505198465072812110573050560894718745153738288361608947660860851817993350187654727699041709832953039178384558579956141345744657337057696446930843042932232083642386664810848917580619871216991794670799764579107150040327803776718758029867933953621745947059570944326799088714759128350426504695416320725049945867002576568417310099892965358807237623170253888981511494995017113176152704202041975648849281040951386836256961090751165675177849939235039451096185332651509728052335234439595061919383921760341969395546222039333146263754976198117832261967158544913306456074557173332775116025608610636639441995043423847914020184497688283967598109048928814294503763090533810624449413947492677317244620273710411105571698661476323321612828232729194425621401473317664783419630136000188020952278269066886056577978517413891351571446190837092832135728738442813295068912098505504579228539526291068087605317745238814393990605076756451130878867620441488819703963148720649295713446771703913495234929396100845375749216186702645848436083540855006105449605159332434210031771002650271674932577650326948977319758713757284743332639933643118602376366567559950260068324367258733413507427784443095918220144906759569533226484025192523559422291617175721797248519161825247859299879317312003589379617710650564370778680466825408425537803739966915430136925467273727812713073255930856074900863457878143221391978445438556977536340996040228412081265053924803086768953950519849844431945085739974203342943101999422773460991976376196589688355844661994380770687669991415849311688601032600604621985526469064544127214274887807613202877679500009771816955944671332684800023464192003040118731955767856742041920320765170644575207443385019775739327388057756635768068224552592685363146030555177239633942239371131615918668608343481083321437633564743285548851203413271580969735044826386819804285804590933036802539604280964707787635943092341487938228101105801483531036968976711272992774182658354125173191795135707674959686902391431404078986302658844230078350526045987030460475894712476036742440175588430247983775707660603729010950806532640306310528626028695243804950272244088639617405693701761688611736256062300439168979873404622757270167025542143495661332880778756402973110914361369421121592308867148003399131561922048137848213707943844508308046935077595578066473858858602492365764568261529777374828115804177929452100279659737635073539619145619647907940268585936230921986394518353311041748255525554027591388638097304735260488152194751353894559906940054823555884573004689972423567943712463330875074721446363564768222512784182332591459378804456909602875178209194223085938876746824418064297007922288876795369275397417297437394850906765354011153806723794681021480971772001559224056204026139502717471147940719864692675380454867563071450203657182668318107590818197765018141647806618861538585035454869763888341620859853520407692291314685136653566497959218442672828532236506512465606568312177869267375592907465663939842572264930477289445188437964794033155763938613898612051028829298667284972646872159441216085068210006463703287364633159718555501770980685143815006291391101683239712243983983722850080499850149566752184556785786953318950667260765390073889345211089918381722253382319051482935939518086211792498347395573466668808391810397313710466176035171428751023524820980067253812380954953676274819285800012297310119016455834317269858638697342062436102502941776667356979928286522034699799689988034175364904542115469803026032525552221930583745144558241460969794027403419897634102116218100128375691331557377013554090686873980502914933433906889079088580077870851367194755032727240158830768285698706991079995248046618170541706337482549338810620356901631374291277477870708092741117040190686763405047645585217103039159967156299714450065577218031455529854596533600206718381991013815456449573307153976688667069035952637527242619817594598850755420649027924965229597949798865819136376650302093867548106623941163363724634386576650169256354968332385959599933701071796372389435589511852657692962849060002199684851820316748386079990083883243981548614573218147256534340859965008361663126035083369283608540944413398980837109573541888915470277443738633978659964550536347110414455841593582499568995974952623947892751193094681702891023151718690167722006582530904311699868719925018859217147641875656304749315240798176708051482516108383360557985488498423589044062984201945918420395466442414676669522451266414790020460726173060733128545299314849241926030385269111707769398651058013636657933884829192954592646121285983085308442600445828220369018807839092568495776265384889451819262956898821306857102510674793541856982529983079317402992238152037904322058289541836538903755988488388872420994258497422496622041083098412625680049362760713005501421094566755033828125898020068063126952544743553697121077877041353092222768265571810902808074683295526557277193977222961319003585831124133669910861389967610853498754596035401396283414546520989884104194707597111557759549779339862692059040728419784751250981514937901626790629227905527244682396736951530703205262946349213586032316348046052982573197536749448150035677454576922682426846620581043198132516833560889920823923785449252373800016308849867262661896115472607158736431514989472374995567546295777466541556209563154570530336885374277996805937071794129173846549479210752223980645218538253318858418558091409216244327340071558771711794484354792060640670049281646628003844275542934567505758369461896045571599215492430948403257464772919814648262698923478303438191115725682107722509072210621670300975369165597404587618334663453615686964103041294114931958103565162176141922176993474765285039355658192132764953688924296302512201276271661513180017835455703667019128385252545577277691737654616728442515165607881595514493188071577559228250895318251344357710464239974235796568148394802165908061446134418241240690577147183975804056169577386865665101064754428487889632121682746869856434462034103296963564822576517155801016131332905626658693944848684956333928524919924230967880159664766016898309813254050746375024236577108656151165203476557175634902747686477590836570973400582329989465831832718050345245639486403515477736637884045024625020371887740774837027407369073768976257471269738162531835486526679491580717757780626220648545995843881722322507876546442933913547679560627017552993057771350136708158134935840724270170111768989101535797115534878058953521609874221536071403836299338192773981200855352407762740915763959686904527893036318083543486896284093970874889195162829504712867885732541600198906135615251529710657923942480910050727378071654981967627425034219788071956134070958442704553861667214828423120278582916600144318938914609240827158372272865117789941175455461303563691109722085106343753201691384406427157327017269939900604191589349369047666009583630468584023160392988763624711526612505995809867268226226201508994140060641663989607487900048902864687142233928474079079260986893608225642572442030392362890311204067661240444788838867127857455803102855825212504930985069705576662705103385102850344196552075150810344377162808649529223424961302654642325243125772886889689590090806604651173923303931990281215626049497459485578309230829338817174487971204568515705998766941063155282502357750489693458076305398661786625548562386270580499964746112751117578808216141941796842760550647451689857010158521975339827526913014132655781466977823723535808668289458339427634964386546674875402773284749688552081012724102334938641531744723517860385641793842138795377503188608973818984667025958755914725021475508494332250468733847621676862431217395243674558761876211060513778436745186791168506468568379716629904897834171190525676388366000786990607945882227739211593667983014843441779465684938618355594808941180867125455542000103846324674374893522533752631950811522040864261778149942829190080750788978883109722092684070548569628723100527275329728105699872807344512727273495611314398106788719553200312269835976561442661424170397171165172729276114478133015096395275845969376710544532202408796443733935050189348244972102250738540696269134393625288795514437510720931467594431988437896279983714001798133044448026419561891086840258711647152743463378348221297796140820477916674170359100643824388839040048797419201497902566770764323731047212906506908212705620873954523616140985449887354295014391797341514696346163807332739306717743497969894932973394305515247946609454112110794018059751308127239260337151615575285075431876867765859179820074173501462441653110481090911413143472594499517660611414497616894084931870272257255320113986311250331872443707335007694758811255387979570395007285653933238388271736666077417904100449771845576860449958590905886887757774221491361421717301694814442090990258099535361287312035539140153585365275308897009238979236675045894779096582862261023365302110981890684126908817664556580951532853870616559448542889626868192612974595917984266811396225006985970087207589203928088443014173657209787134115192122497002696288540232553705623569814454310465176331197202842346915428799567368171852095938853522557636675921688581246176214132337909367760743174601894279467884557924672045101484469622975849696299282044552844551245267292448348710591567910773045683508154761331822528267635478297497451329257878291082840277079022056298509926250572113537685661304835240417434209243959020456970408131829348809371337740757106546868104180462291958425916065925046230481123791327155724985503958914235253085383604665165660562696950056786720997862318648269958538366492146987319760395896707816742933006448099944252946969418847346141973405780323862853267044687237878715795156070343922403207911748965630284180371903296514572497426712250400411147127611712074946253516105586957047757371872027777586196013067670598946392669440756239293209325964155451060477277754130995889061485917243680104903460388986524018022359415713182503882142398304095851025943984559100061265350868739722686746617863184402507482864500887683477608838379542124890861791705603348841030979956864337863257203600322107191549382982320909959769157953687443338679695175455707235680732771222928559193345542497808699922684393431336258660149248073225269999997890352764372099228549932282130572638485670132204156576516876648088599853649324747464133152227767088289452219413289542133082290248240801418284276628864493114024259226371175864214857423778447092319980815045473730995130352007964735428039173555521398152488566063798139125030135884807155456932124164057465375606064042905123671277481435234838280670413845113567681053196629221262302927543099906499336531968843105928053795931920533953608123915271863599709200150817443186789462650386524732221148793572703971612550790433649391455385283561997283583562673713289333848701106904878530669232359339377438864332479630347851383414112206827683611352258800408929588321460161755953055059714756740180007993307666662153452483596989884041709536689896581125611050909894804482886177186624322726025178424269017173380939607616112679857070663209275418481453901408773055972056604616208402652932476797403566150531002847034860162922145809478469500265187991216260529658226608375534968414247921349082191201451449883026601450403702885546585027307237176307282431912811995969576346067169879611988751280415840698496280308140679675300529608264097090209172556805943074525996585494534834977982363230084890839869343046016979356113946731913508764155354972309053331995836858129366776794485915441894136332794941609962625069562165876178973778784288667185864951272012632052476150324465287842116430085792751488774162525988076661405969772151498027668912051784139858354754583260471881585899012178079042376812921815033677067646419258252524066185597243109847867980899951190583172368533323434884585711199313018904182542942594927304466087449032659986383692138670648563027647382305634416271210628892760469665295527790333180966027271454857064222954709586216641868680672294818287258264982600080783384765423403362299119720509770109821036496059752720459929845740338671412930365692696264196194188363352720814741272017834767967381357130493190923262392489553109384885342245603483102562672345942367230344475934699833844989385371156850168743606572880793384575868930468336353579372871418481409109174833281788434931544109575743890319540527449707271906325436575633944847337668153686599753906695012418113654971390204924612341427115322438294222208397461986983136444796857665215244581880347298751419126591198031200746692686097255453443063205189920703746862765407812421812226972642862743039990012113571199355011250727225743415195364574114032753737455913904177037679314331056301583785966230768857304881125527681996340554939667613929771139622688872088416231469640823627159592416863865201046235805075251102178679110138683414802250024843341192660593215307733548009408624897985664680759024310953752534177487369608576475556393289063325931816417897653705888080617038360101475300021087658848375934526871217763695806741548952865027837574892820964617325561329990013580655109102595036278245054339707802873226215976692303111549234514918934575248760889487749794607254295133178150417569895266005226217896423916172623176001711855157119836477968034190223094136312063426402642228847397463564108810792433259157514048579599407103449220109839653025601298622535265554288630484817527173035152044254270296943068547032850490003354051842936868652050144997761842918756578515446886082246434772067662460919109712961062264768685267915869650162343989626565724999622763581259768543263420617273783421073102085407528315249234901495645221682902055112976203370457324079206808629852107438319145491759168917040658561888422910576271279258092962796943825186302784566310499391228524310643945453791059467114856374630752730925813620105518911680469650127296529032609580540016306518290468496107193469254719416825608855101812551341966182971807639048035938806748217915922934789373567081405394947598201218159346183586694968875722272341390336226841453484432928115903563235144045314463283322077106594691590321854303177850837098030606625511583888342103171222368610539608056178324734241883420484521249923250675261234760031168631720202419562961077868001375412116107625819133331475756006072012500845537842633814431549456257845895558482980578384196682224764480669413404141686358646774087833371851023166252413437611532643517680899192524430253280151193855368298290048364187254681635393465450516314657147795428230357471489672790672549578352919877144194394761433320901680577794011035773595512498487666516780884549640280833290057722434606180400896686925664265556515005901484086489766807430462283386860785066195843593367668535793168083680496359796014179138783612612935114223827581072122763380381720948635537772013939033476426219108208963841225998246553787842786909072041971827850417629089200990408971687371943189446166321214404074680730403715764483866888097798214789492101368061392589414324579996131275281234600568360079373319872740405408680662874619378037780607006126598769882624777045337791082375529749081017314797579584091850622758246515293306880446392579104318059288586237000417008382426690221469787615365800018682910705717358112788516738826592113468339285778134951546606305591233195852048506107732974552645080173159489965427648500668360860631758826684191243976596726821945970070274924527799451745196269546949904003123451785861184275235858102530932734107130775145553475584594014250296582308328827654504608269388022152543647714124563152520892690548721168835746258475976822263774159943798885842411469678438913930497629944085329385646260716104156113047857932383613078463479637306205414346532265709366290580865354119100363773636378937834212150510477916780983843907482083183138136865799961767930631652355103717503202323988839964508198143505985612319520063086520533036477911139111696443264755068803385282879052043081559611277950773990255127300586628761697077851661144139145238204479516124465821092828528757456418444901451366837766430050917411617131863747043122127395172274900704858859292337988531894561629813857001324458498652291522972050269471525597711498393291832844643847850322081672094009320192977992859850137085730475104557287905033321814536516081823421680201434928445123635630120929262649927767732825674230077924580000348020141860995360067185044683426176251908766126491825432496002861846879855063144604680144014121500647531986429074163142011384492542946915152826269533367286469456862089942171274141913458335917044252449802182358103596210431512276522124942344367822976642569498554896894918181438536682258691251414748238421302784783797722959130400052096463695464677874937716168232286137649161855032145816042647446109443710088696807019784949966073947463227393392003488804491552044681397143171561279537043654880971306197666983244361146925021460862603190293878032048552012862058995558358052216537663530139381335054295322947817321535758420829895040199533746813202775784493359940432781554831547936084256356601443883372327311668527063574963159617612083538342832026709198396914531176009302294545739202944930820644004634178042377304919052982100539286863507489326580427044517510162409986065268906233168360776095760612984597947099550125778910218764299027435074029270296194496802699191806090786881038780189490089505648647072051013148290096842506437088867778213586993289072016257957662125117901661790821329490665228932042646296188789818958839486768768618113385248411773067936370325946293074582456155966408814043790285685870842570026350554866578049128158842853195937544770609113007623539948340177903771127559494948282349740290276945458137639284630189736468182801185081029376928201710343988078344049984212919782540549364126538292014833642195558030946806391690597280352311674984590898557060677341269819915722173505576597763461556591521450850979871723175630952483045287993625351677158280999926190851074314827580589682100545901521311722204518621364162292582215240771343149362551711324210551845982209276072362595381309600831146057910802418848812615939182668912497272133582805852489382544452712791612917554345551386436449167163970968461399028625272629678638681138987176974048782001222625292410446445138667194149618974400474473577626841380832055315528761154013351644707008179003686184710162367270309579507829195657724663766904970818065568360023649767760630582657888717017479931877686232934768534258613760348255889299474960465058053895943056216032374070276747361989515775220156353883136290046931014767727590411363848670632897833276001503133605576442678092974060694040106568111430259777784478085556132867636563552824697803709346341729984896295975818107521246562922790875285917045253212294883620027239247446237077564613032941236214221875399682077863329400040256837648701888076827035895286657899668521573653757311943896351108583569332516289625948694822802664370385729615374162004213965815856997975706484014449614143561159039442369229062526417581733199886189075883922224716831387125593616583479933044513267183741640324129662859001707678939675865685182482063430520199216928365296176115917060419555194080145096490770231579086864275628179993737688822488074452770131033482103761675312188639215093172062671891133486041231556901191620830448241242984463834051385877814670818883158763578714303011273232015665355397285214770093356491303457661202539130719834591728012345294277446457289195356977862830412174460885496031145519613282777438989076964248063944148908015310787334091365833914677068006834198507120847616349901238801378203237623898567631330622822979896848776207870868828500810242514216814060821372696134167122674720130980581487926525011184384605976032362534049266285426256017588227669417125395237633735648541379464686407645063620330113951868762483117065640142343296745333740505683386940549008813167821580709172417510528005736995115764611783582755866731397799137750618137810051720492941400811516213339143450304241313764305297233111529699977508070236663456202982408748181731149908022760866240641996900909630234193951979974244949618754930392458147185208896577052708078928534585050466564182738341985124492220525592257474608274071922455375546850651172459084612205594526572153745330087334073915906582293956640403654305605361302717171523339112957553136565479626826653704712709273295654926380878077142028409770810993691349809427717399872649129492172753659449087753177755662121145499113702004323491479332838859616008521895786195083717550283766702243898759072839485913095667412571450433295131303857820033572503668015338486423439424325591639241774364086420134091923388514271524506505155862660830237482588908874061392870476716532896806097863422330822746573322521775957819249921098139539260248454998712117292607478579898715741215115447287280730127457639671365553201200295257950663939744824823622224145359108151166496047306479906305190109563826726906183363046061990186099067777989529556464222155812344202744819619579742568262687557125343559758499090839283951482112765290233839006619208679543185261976108518064776471896880095148202587159291642198248228188957764942343532436108979498427153784710175272672036270177631873963694234064226562484621268431818934982178175877397460186499922477266662886618633485494908058765729359285037288205948024296245096986970740789024566505295920619735570376780702255791006500905088568182010657089302952943883878531167262020191685476725618636083902969719582548180132327956172231631203528175668133755062492604507978298494544492435729838882507059041721060231136302732199004927003592218139391722156839850793773146614779469030480477812216196030938999618421676746346611929869202300299404603358373873441173025668520238447076376652198766566146282250354237605639872287471553300729063183693169909969142062283905787605774298115835405794747766528455486909060591477158985965585717468922706184194416361697876542613799903680923110573970489438382265704811606458281317283599320132525148683850863694901818858414522048100753542247636201502429127977736031951370002338639080288091758329878017333009400191522848421951003409338794259254159617877116788466934530722955278832385941040077549339504981790011985739826256029236289591805833707620301776802815272212079701598404853851443004948519518291523328872452409267072923680018646157531056279720867466722790947642014139984901558999217354931226035030644731716576127128768550188288799798653692535010833325979403665741760760779934970443966197852539768414126561570337126044790218973420705788177596422152204738150389785770996838373992420296724307538384495037073741565155095631910069543295529911034299633138960199584212769962758176666922206069469810951995616696988389552594169224506620677333203925373484471274205315821876063007070876046741717086516204779290800552913792320497137590394936639729541144805383464626717254961112027460008835658972298490273615513435578088646210326463208989636249897182846491791945414101335553641234969175903656926727321842974779416108532977088724199212550934424810650419507077251690256258972444370389992869766098596179991455143374289392102174844622756680181101360125421741999622384664457284587460998107247859443828768377700377941205813174321037605527326221445465553886918954557546938222192441891088641328430238419283936741107311249797422640942480855737040567047057039646572427041459249896957321399839822323596886104054408175063883136452814140256539969926890581857720896721013165598635825406800521319089591273287355010380069048421905669673537104351752212757941506407285937693576306965332659300870863773649594766237606576708784953102609272450000960650453355116984525335918532255708346551234868251491991511234338958227291774361884303675343762112330742468415786141669704430164814661653880877295287088281216606267166611912222418759327473882773408228370364503675068260171259779457579223848378578262013918954621034264020903428329494324070910441804213958031378572767517023444039055087152475398419958513288729526222126130103346203166220940309244438120744960822915376318220222199681421294397922103513405543671217710308130223500453363351110798690071396676988779130703752584173723841206998419989249852849013620627209976666536300222300259833662136415388720989356094153627973446995292765828786511571749209923249431893162453447345907055490853836882256063524426827491447760121084186599212078869040502540327540305702431179408491639885220997389860035603744913510576718335116649598688265637721312967198065212990960816812109646595255369099408585307611023676631819753768353155754468499241663486979576472422426833002759138317039734541291754836608425674480404034483587882718148354891771457618892648907315739481508446231075255032944494858832215932506680775374261612599421656940052907543814343856487410507164467224628751403006126909891639540803165028808081543453328485909227643619521714648563474101608957762430604660850871079328416510974042471717079425443450809602975802207692813546385474559378046678891821209970484963185518973535092841380243723203414428724682155498540407906795512357957698255969657079027417564571381765711927052701353957660639051039389297531985190754051774629214763470157557265148493844554479084015873979756102105123984707992615145247914263709382001419377422270792943569696241489062822715023649164467587393347662572433310289232293033356237792587315505505641958720940258392395448837798159693407778000218476782978337745900175016606207276726793704868463413771532909110205031169706181448928062072236954964833939361879686928675660914981234143247087310157718305175289391405645963542762320605434991804227706380784609233964209576204211489242169846076828413065180271785757854434817243165651085771603100835278789628561273002669561796628038364829692681675632167402550536266542169101140969637078259930480073341678111626284735350092346229500721046616270342900941173888688375956062431223282663874773061532829385483189850886885099049472637855365651956040598578914041724251011750984337259781942448087492671039773634323103993350915321326662336556701438179800230004754922011490056104832626989759209384030091271720527666399512665978370051833386910400631242518399809579988611780696214839826496340491575111854845552881835341435681897936042474060128243653267218496940645945871312295179325787012718882765381350280716656983434543648175578250247340699429057319044992825350667883405770688772044480587180172567711508249823203393507821658779584474873695502028367459257440540975108891684314525112231064556968241732475483309283838519183754029829874209211777633741974659794509462142811970926659360258306465958680592705885413193492042786095380701144079052179307354636997947574800245137095952428366148728269609459993719458617516175208092052550669803891974759616419535857640507591309754359315675895840468015634581500267163158100052746515417070250742551474350326058883774877427503388084802120312506629557357593436935462432481897286004887031874049705225411943996225142754173214200060645923026418474155251106388163967977382988144178755031564191521180749703176459149824537131374431212180773852735432968071447555290021181499550087375008479567407202889498893179709304525982139385416316633377748875930180927467178197048423486281535566020194592699190028555326321842229599232909468054783534332965875281152732652075073653550419434686343365618656586514126707070485505969662925790631215923961183317435284962597146256798950368635811161504504239175164856573339819566883608137656070319788275417285749148896365113361215185124338809863645606971481944930526667553589372925668961321634917761737506731309197936842669993203975727789119894638944399555852581530234370646967001716715208924116541493495768707627089030277022734968925456879231961801955738719501896131191665523859539532447925079368117955285256849209394319492412515672105367987426861348788830260310541316983290780369506182896748425159855499245710919631376796523729546656732380439222953366904637378127695490462275263074630626734445884035187654448674868701229157492138019908286890783568446276394914258280209012982875726528476969985006809898467148898475311303537589968471989292063900114869919539977699617090588212719556807694423658599033098879589386941774165999152473036477420434390816894401445494269246404179928919229728805595433036871320481926066847705319580651611319580895815450370466542126103335686637270438785929011560581254865242513757607151242819875421601498827990389239720143193529845770740550972604725283371934910245122449911589293207973221883414601722010542976189558725818491801715165610972119308191219884990338861110572123499940096151997357131317901315418561551963772464754003508259726741370131694714250131657015941251267201461880867247477889493833396670648464343186952616956067197246618398283172183299189620034935334903216107705868580500556385177757665733147825491013109560243799207566625748602818761776503494993713499940987535613295462154265264497120147300344461042513984332661849318869087827668965855660901627504739634483709140210782236950900246870502738465986443869599203139174590248455937131237321625481024948028259770784790320180350192593901484609438090051567061377248818460131094846275979508148602822028898496605061709327711220692610691933525832513260501425478291054481763096063144369827153477499997479236556029296918703928332478604787094133076169210469623186209720885142671878020193492676017473310408240799275159940777900870859428938351176816208354057863904891510357817798699936908870392394600652072701412187204258156514030703585408934091333192712141221000509382053182321610470468451778076201380198350320292255602735735370489514374237545400385100020269858756494103413502003102834568127518390226856427825740269316137707512170654259240675556244253524447270815263822275567025073890899425500438713912820206614921825611538470628902708026774446822868331724355315855296941080221810845811584570530575639204952668698227750588138597765761608071704012455514074194083066250092143353753483754511303977309671287207195009968588198152438051800540086562179730952247137333012961685482255248220018491127405672680294674672061955817043467392954082507267721534306954968185271631417292536776275311870103291357288224013784873345627455083920004131204487326544245881955518854097976847863670528921337082773122531846303406768714459266036440356866759559781168217053126328164766460202478407684986004771696914415324400258488534004397114525278377727892675611215155345013130136020840002236969323349782844042374501193941019084422484090561999585405149842335819482707353967472113529275097574078399142097118548270087826620577175656117157817951997243309947243509519909117077051377071286159280228331835625951287323955206799890123358186805171392134121076212889036974171031367641256591500897587714383282637470503685235410429970010680766282979220276860973765886241558751966750742397552608171525676010538831411074771121949809515017783544178234829943050947219418649424842163904953623670398705211116231048120633729153746796898414282320614456984315756567348700837749459272778861354096324741190224152781894565340812192488180542007780222208256268085243350900786762174902400726178036872178319584832196941765989914676011235502438870824324519692415294926466018289940869675918125797460820187710726360308542511204572213307643271155447387975981851977135542454450986291485538021261237468533043315113325515659356809148491497278127208554801146572750190384752596777074558757971047896847876934339022635990067181914266506073910126853201955053037874757007938441419952618869397404293422183224355917629010311876507335687563615685699638320928130309806407278675281622709632166115193608723395384201794458997803427699562550460980170805065004921149678436999013753699942861675640085706299238118532970898667835111474725942756659138673465245042793941381761355803643858881681313713741031226039502320582040931007482867361837446963393805077598069408561615103213848750857479858031404435975145301972719761518609536024026029521557473923763091338587588447561670140507935006707974491917165574867915131356581615588411287779810375999838434051141410833517148700666097176618981938929425818679906763097527931294377074672000714438308455598646422793604478311547494237942323151815117777515110084231303946750061724548087026744765381977084132405425442522936374892869556602209366510482882413480437744056436598968096957412789398397332755004889142217082526942201530758154840433595674639357199907033851348325745483130096743534703496858215458296686929184227745609921929986517301641639387566221510117047812111709656623935775845129475662853315794720361098063053566543249013339642364224656407647447232271718164433301932010766128702170348070743075311013957014315603484724736228564460155213841314110511169476398973362956062181317738994916769559642674897069091961751258553922570495018103645995688538640191365006397746939099256646437696229697587052252948487255623263693421554259579765297326780794573750050721827045479289793763502686950447868307390830626486980584817619104307263520233046219132250579295842980531167730436221885169168884045380806393612598431508545212633004929103873230674186321253180934234714922472973159688536660685704007039205452583233431907962196373087013988177454756583136141248553520774481800776985961583526938188123987376258269508734999451443121217370717518563672107801554184091513193158938440740625438041940077105694216149648012114352689341614929770215857802081404510893163966211851958393598446670888964512849384550769447459534490960994143826282984567671998870985395245584840446032737606671906726547187066759359765040709536436684669600888780489303128167132631252775378302622045221160394558719395521174761007099840710721913331772591288314504979429092276884205768444121054988038686967191805273845632721673697616940619108576083032271878023497478270471133379553181106576495989728492049509094188370741242098041791506850246985794690558572228150432922529003044418453837426911548163016413429473530735898046746405817914439461843140867116232850385254483202821293712832938525990362537330997725833192451309777838341567636688465066694714015808335427433224623363066492601455408137579991853949748398409353850403073618690097846425786252048878453470214077577086840030823445046847689972200510702096312508447005337330908727898310101671883687506048402706098504497331658220550721599146727868132921016346842849777549592006502980742797069225799815497348813246426806305680838011656163715163202376238715039975614199319218336676597624669975661104252062502629588424853584889697418135566421245682901015432546328579912833231483110437488076981237613043231083117877278751727804471164229263632972543201430545774100886888813945417551951608886457139052784344606426058022101023366276783767797496702642658305146802324327801775123335635681807555387340741920618602301662457899648541473462734143532041633859290964759090426907853873430687857211635584035199719587507234291160644315103894399341137617155598104114971858551837576653557963392651050449226713731420936030069828809236390328993787574863626648194480165088444198244016912541738271762171521720903932300077275410398615924569323273147021541062093344253055636253145827752995255153810914251493707177215934045863026605093912925853524049329880789260492985157707577239289223190945971172658594527340032919641615103952475690284588978571510264406114171565708694942794468323468872130850400659513560760348538754092330514974053045401465859999401421701946258405689425638203997212875750161279962970107900224370030195915352316277787294209880424800413675336913899536433698855444525176658574211990202654716424726343708308954118139112235218160980522069886684599266710478826849269075366643219150077563923684713493760338337727682284303445259824824820906209353426559786837328361999249349455482796999963528200934993383290708878605122738568900597686792468920497805809466755918023855484679571331002749610508237233385709221434176888271796561495239356647566783694724399334734362530726409399248611113329421167463482831437175523125899169302697520699855549040455250970233583457500152624710780844263174822662873074722175994631488432632240788207172298844939295761097995358560197585400473354555418929127430627303895757278685748368990363307925819427098520502415722964267457822958469777407860433728827983859750573764907085050459049303750601430514158131602933970435940394334093588998780269540761094016888027083205617995844163311734732615769548121549189652663287934117299598524844214611729548893790801821414798690227715983896151956988938873147203648500172691115376947506888064539845612035018255109504394892769164569747508418734887512511764828065467165557949132130203708993382088039007468965011980771862149771911779355411172212760118769022512851932542047425481088230971165695822830425353660543141529932385543514029246500372806738439471016153879182734686909849243346744382373657334258990548888460661074225174993954231325024366595870100817259427266404547686734936363548505055809811061191973930345274933013447595478976456280211277348291201700391681118698590398725373464817092490869229324752100984222475174016025363967898264093021579636872503841978450515837407964354142272456818588719633920170006627349112425773586734075353657748730476464798272381144947295511554315649153661039286680868683995743817119307916075266318130057042873611570485440896494722183438298063836601319572014102905587122355114213430969868500555456269677352708267451417742806551594633826955758982397457275205037101869011857147732462382167895873901477260296186679874531103354056295551986586040786919845319487233405373087189754065595867095275789739405985076994224382184101929192717007105573897799711691602776093701766372481070542245844819733153560275818819616447615308455753455213565945324016651645827690516960777796720011519656847627551957027958305451051837079283606188091039394208637736411776923459781207843176680519598673239852304546935212728249638872217781175526078866001571855412915925889352404094286357312006461532421189889610568035796174901709685726628192927620761318677204860061241719329848748383192673515246469563003802450291920511034304116275480396667173780861348749734302582564307977188915758131673886471505287070137502204718486260321439432619984076937175501283377177454953116712950965658682694723417117257086813813521973347597598937703298961110208386030694782698686167932203265069112945779899904354938604448906155857183787791638075117114707884333845668318985573373087688068261440581309431474176868828442115793335274569499027323625320757107100321936871484430528449507726270441438516318588113087455450366333840078337025848448007005898410585046249171399034525835909186668940505343572085517398870943806656241018219556977069090067292604664959194225316815688167002225491937805755760903246925249352209005169639291746782435710501881223543785127407159664208676375188689362964037626569865379131419887848181154815862025115814564146088306645865793677808183281534354281276080008190191701161501122886015757578344098559969723406885365968351665384255717961772488800994093679987363388105926438661407157069322820050423219629777322284640072510333566507347511697748945668462647047626297180200984726803507063141933121060380620116926431897830514805349613333731989482770738994687796783804388926700050722183685735563209087197314354550194629079653544575860135336383004714512995562556044691272102122686746595842723476117434847698498601239643889593848951879138699764115499450911585183205018316183381698512165792080519819237378740701530401546574622621100714811490212415799756641426138526062552147640013558467579121657265265187981087526314487009117044466408851348555462009552462989759621631665561570831761392540937376071183388583805360550249694629944144416061270987497392289664197977877404563900348210823289954125778823789359821698151827573186036460925724581364091191976314369513685351192713320033723306418659028022000471955455126325908094832045630362847740051953973214182432222831045822636853222025483774394354294384958252760913162155827301769968408131149076304751651116978631936080036062815141836850229196150527529590459480699582195762566848114436280128218808196204073106687428699695973667126630296551211257350215302429456363902864679846186375872192356006194942979776230810475370426476458790690112096549881164555171765875987721435712245684544227647712974820026029341046308841175522261457472226376668794636166092308760374580911205705182969120085436024827274961493086112223599446499111761898308759324026741699156638820076073283870757437989394997193136816103821910259663723401159224435684173082503056083275177807189978662347880350669243443021304389782581280664901877827572112880068220371668692242505510159122551086677896227852261046804479039229634053845202468002715022349249967605104031731637633000796466517433258012024183091358384098220786098110464277272045015218768249563532298887270880280068852446966727768235368336437291132594906956879265586164509385042782388973380127529084511789589860070533180940269809839076267852881677289794792152212932651088546631243775757068018147789968897170529603808863320541146978801813888597112009470229056287619034805695846769335347677800521281319616131324781254365756280741241796271822143911696113490476279509689916811452875320447308637466643007960205466875439172714722941584088815751076331975933745916244642384736781216497073598780131881739897159914720068559325845788759628024730558075516157212146428176696837295441759670819052845951333527330376555150699843863100639832007551062605961244507186585718555714757311349389571692877394565500116431360887461431755469938377577890882641681281877277139739607674493138285062032656051022526949804501849594023653319020061366096879187660045477319137936698264520435089451077818886409977473815183502083440283826608148653657540739860590535172905614091884165354335937021217967386174723984473216834413656283125389860645930374873119255873764730967544172092987166263348351764906015098386769580655834364913820202929164575082648888916211569182431912526634880334363653280583477600956314261352824986735507917798302783128556738419360484082528478528038964904084181532185350678182137800544769625128689656585479497353775210047375811049521610087745682576284475683266971734280749773833409657123349517736888970449657846718659755032836719995374045494576210327364959550715664733118232813252055728544861248308925476912731881665468664819509604565873114181060094534561765721809112097466791095070366579272245524140687488826602114373477989184508575938006266937810628877269405410949654931395750955679898089966219343668493694615084657455345977117990239950384101927820688145372913653508436842022171456818673287734853451461057716765258510413410922199098553782741239677584942851101749224515478780388484169396736432922576254483056903484716218903117424058881454871803379774955485917409692679037016514179964810869745541092030317923445957762406141833787031557945203179842265955486894207112704403790365415831567391745959755455314241639504924623057501835657384803886904240469534221507049457354759059761642387269222102350323005303534148255089598981874459699186330536665495866127259468091212012536046363337397840479606337695477651862327261476703974803906460210215145992921464196525212938403441570621080109117602463272082196768084027643924936795790130801836103128156843094029866013788761837718663041813530813843360218294243166551699059562657892950127875870933145141101340300445978267943051472194974599301631403851116851915372770602277491718361504102700108656863565953167630575341335496750965779502723743035092755661548433831816739234600397636951907883434739367247454203452910513381844850403450794881459372855390658686710590472387490820732835271546433747744436580640163709419660019307879987996281284231348945457111717091287360155486880633905699726387267497554967361360327036161612842573911797035090722462190545992277538942270910424505308096751699985003186636871981046752233790536622479348789918232089510346745530444449780201141799246274093465441483801581299455713416144038942253859262816897270321674892051987678474251246308614212479201436896897846563841823168524777080513223816278944231359200324402724918622274680379566007163255288360452410603769910464743246154321919817734746568766476179779370726199879473144690780224174138200302185647950882653951534726459577192958368360582973331768764375452173354179206475788315417792965075222790573033360579932248134459596143507765629039181220937922932275799119536617044507837501589780014472681629571973492811929262275006094472663485399571902622332531579578854987431884087248802676385669685094056882792839052248172005153591195225702150129423735815761589061200252057171086901548283374578982888389893523170196108618158265369757773971998914486716513704586086204205450475921530085089982756263312565111190998652844288806387585896355896787859538305413695766353165828438881834627102374611601214051012521274018209005020626913912023470044165923317486779991953902005982604451929650713789873122824188361171827463142299662415057553686649949955207424473392726030236975924516439973401627425776075972061718166058434976538577795768776269875995345014218649957864008390579823572680948015054272809311697558821998069480561751416382765116726483547534974206194911434213439788961449666986113035349014097752845534090392988494149975514046448790448043534967978593883863053116022166483207317176499511803453261122078179440770475144559668713700580518225816056576915391163483484916950201451085312112622982749541778903264354846212685805198537553947779006001752149749364070706754676174766851098306367160920730769731794988610300927134824613729208236138110617861507423179015935137425826144093279585982059912074024419832351269566420320366302691439666573236045399836170245881933239293913484627447946206940372759136977871127703846449920504412334506319959826597125335509059297128160444660819615916796482375034514419932704709592754312177661448882605295598132481671726903727097493898592901472396450471945204723519357159266920203489397032824194941484177539782202782112966178446187988281013686819965236964158125644399492475612300300369612769637797874725104381568599149486692475996227444008187451976401457726186446174530632284418034889944385339849118739584755888114963533046106198829515328497535982886754240460426212408862936697027474155633613075749905138144390426302297399151924953705822166965262786664039613017183392633280613114543367726712866270804175189264012096334077726195786197972176236084205100243794161985232713849020803654933000401298811855361555334679705063994239142663199755302075200030249679923734680713494538546878819551269042063376997647603389198081842031364898183381598040540126153002578024637993641409545456832506101066388137564502701186118172845304638867109324598782251045858005115771664728036810514414386474916564388471915556523345215563520188239283706828164484538735149095809137267038266682989606117667116122249879690558078682619104527353273779693289832016593998281066597764517129793779193546624972298200645071197809456749147778220372207941251261083452242347297534005911794370822779485040975994093230339444172959468733368588773021325403882333973821362161281356935919247961964821840183812357015356414924438790616325528523710883020390050462845013144114407402846004471619964859289036753048797326550977919428313700676445072163962876655482948678942682332619076914890649025270575143573441074417802253297803114100781018441556145857690790881843955574392306804602825917566086127953844279691407777330474735414209032948419242066127696231029670045086882743558174460781409164942089611653404848460683460281901826706204347894454186802683720118890563966499234884511835322872054844821461738394246766895416409551407672952765618525927400233077160269727976879397166179458395195565190584116104694139470523587749225803930637161003178111469886643277440127563159900650392131999031385896796269576833892161978288402821585287459538541375773835390404352012748992882464351708960300984086344870209452904791809127728966393163992013806549104835272991960518773419990068448962900125452040405512710171344392595101024303120019648678223471998475300598267691851847318851904736819040816999766394552787711800158698441240781605668184374057404519623768094192636407902040787467031085507096541207178251401100344204710978601272376743385660378591834196833787704198384782765681007128499268078877203566743003240490251988152476735420196475187069786040482679019036498604164796044573493651591224198038716938127787086343545315897422328070909157296448358913927055506544895938859753054629014267371465007244314984860188112688902118899945379859114333568118429692067495246784177692150977559797783026747631179791949415495915499842352568351390985676412072544094643589454737046182818795632735232376651128111985706363640662900645708010908568888650989053972111749393038290332903508827740747289278044002974897335449019813089696758085874437749721389154565653229626050816981984751149875019450095515232466635639210534331572241923373614517752354293252189968746245988402756653664674313993767185209364254142779391014159848440643066383458324301138047725979397594084245686318403400309099440736094817183393080105352204194762837092761253728660880228988961161241336708543784543474608290468953587427334759547086329351136878526192211616570938093905678552700058198698916120834672448578083774976247605338703421311339952883690104982673446925293494904516549313580404015785623223169062202575795115042996492260472527681960850202666692926485404847220457609093552111028213244426209255102168338879628112956081246472089692334725750553880792651622189561307452530097163958158527440223811429805287810516605232895552298768400444881168030335523345901805360931687702678440314999616509171064993985964116069864631526387282153234751985111670786191329405520035775575024712926817565380895573018596086571211645811819297094401190046154665933405983239401120790514610062341742442214087025532285910098073604414199857175383125006509933310182133835924210421432218473006349295436690616463053102162175346010688009053851989061874576568025846513421552457917138208989737100764551173232650962156182845591126409915401282080694319378263407877081519531985835478419998857330832856278856729073406542723626262433069047150882372672851456946234151819748422721573023817620572391096085276682477226320946074467439370245930353697693352923063521843975541609731745018093863745970815485918886862649724050572184496348922714781226011827524711241092773940282974498480179662286950318487103567189479957642281139919113413576944686140707248760704091885044360969101187407672611245725567973005283590989773865161711221395234283907967782154995224662926868364124376876993408873204375588721694891482662619396430977492280084876715224211063612623050877232034469162714486350014137092133602297300435501744084735846871032915380601070251505178837725148604293495920261378948468195045954642654061239445219919029456734058757106830976766295292967515217060899928507282963889464745979153053517053676718348930450667138578044619435229672761097747321979137363319721182386012794955593387073974345266332323723325846163653678030726092891379903912231061442080091636313493046968657579211419724822733309093762612342926211469506884314553320273943267712368333771420436747316748979257425444747879657717167778351127982339274131094605873090344898933586944680194185909851764054120001904706087507809607422954126315045779916419307892233136767323826669048955199435398593622724916385194113941373378696962081578726728692996660461535743183529818034175710718130755014392833246292731870058363411189872767447149257083684486588997801398988963818462600018537224286341503926260980899105555986073469272866099263514253489939683564740476682447804532081233598621472935993467643573287367533953771096379349235418857252764674170007166146235550908233432117307481441487782919109065314163252109656213453401794406664143084798791389459340606483585835346985905436320095336387396411967085829972613775408793780553980463746041101389052323257005619794341652186808305250415642447709948421802800152703943855177355477447550089839476441508256581486924475105218573647658587997696264292853612716617359439816102976519673151314716007987516032423207376293805581699189681992032781821565146205654764814937856532012639067878267191497803409282237336597166252751600089153561694094244621184732201835672119815499657950959209053094514803856513996739526978768562884415410200384448516931027887192753344267671821493745350064120878129391737008724490202430319169752977865385796406502064448977357982343669951211328271903432312170555356412084441327886815002196963885604907787961482488684592047882761078709241494209870613885532947280202628695414894130448240306240238563440348414586795919047969639678756434469846214343259006890174815520605041905942274626643965239319973144979222932023634144561750323096276651624242455481789157586281403814188793352358291704989333399868955852058865631656065815554089927507904501904763788866168547005763904078845898436111267187922135865637855206806127216306752643338863721531400298799193961249287653350761186920746785866983774097871105835954055901901596856400656216938405959022424430332542235779968183733325119965850904204106937788409529180382859853158516878022178206224648404196024929488307138689873043941287284885195072762692340044843903916006475763965262659074781623515477140093764465187442037033139888670193755842903070049188950541219534523897116336248159494101131005232275881353213869100378897699183241670350939574382479430349170155506120195328899705562514549963344270099895893800370540880818431147986933662994696717532998534096721879211131417923935923499202168414297197885948694038332244404544322773717432823785008459087645748544912716677342298135303701525419498727482645265499163122972913534125232961964973103225742258325465297527476310394332128044718371924289978822362605379605361211097540554385780389906679304325028093853766334236316613689869564609499168890357274193318160232886017338710834617069856651339870032455191701642394832917829031666077721986782953080383480368637944026059584621682468060776973158699180063171267102977055076049158176331355011603195322681859905434588534155349172514507450428263562406241988376432278491583866405358584578596730892385586467884974456434328256809106869899643122039551818270335667506693780115650826994772370127529218536775218947060108798972616907365983037825195047420784213724863097289005979489966327834198635851576580656126554102074562346533640860438095892929123102706997806592308610421184980942992598808562445971075763622641754197481260479586156601345750640623535284551960686695390514313367825830561575667456982434184175406048476894406123876606095896900153815951827305025534396446282063317885305510500410110927331927598133004446873749461027118729710871686015035903552400937919354349917553451059932976813618546942335981621466236675521581894232027008563913447299935737604316226673171156441199765132835035988082645115811056966004111385835843367564841297640659985732033881546758189694013303249306599038428517140707739802890895745216369280480964649452964081584281357934465753848772561083215093514811893749421181305403888069500731354721107299651864793419808416350212010371171327990602462980097261453894537563667149133568602656632133440256195344783834750731666529423603210039482590883534164117269831041352720623776481647146589726419023774559523454922285538613619328476112484932688232433586840051472841528427913411405811306924137759346382366639372641250948405452088971551429079850407822192556569482224152978047488064199175072814122856478000063585199992261801514185623447965280830324869544187444539998702745674258431760317291914031999326898172935643287685159567290892977410876696728349558231469903856348607992293313236614491827952511183744378388510823384701850790123843866472153735819415300221228566422910584626680784203725379687287339211244909828189763269913408075416283612387634611850789866408592947539933420236293007175619796669499040210263577158753142785852562096829236820852133500714342593762173974557287199832294935828250480388581070788558082319006020358170752107306474256196141569078456846535468198384820110299133746609036116248880453504472904000713738794034550758958834578464249477482692932640003424446324393475838511201913429512650135407103432324145313269971172816337121614153254583687051722388620756133909510024060482271318331333335066996859817050679952359005785468098129737168056181729074416019236781459710105253104163421466210697735042485570511489226498709569786169431523380201296247947665445431061621573066932190265101325014367047459733397172772554991195569060646114049260749833348204432037017329398685668803492036653532608099744659772875549812618612772082130061657132489367110484443772045605148918579118350004548925088419224978324691621851893974028827696471115927573057897030608629945557734347932483279506770896585890661491646607039869033536544655565352612502927239362580200563537196178851488287009489148185889716782527579780418823085081085423572873186943419500209277813184414419681458891457938234054570921044174856649450175046333291103692709506853466632894412634120839065009360956649124698204775613018810785241939366018261435111232084825077517799654953830669674581743730223618326952298653135704064010984750376441107029489714678558744916555305905046994802677619536830159074365787324050568709247873601308006935292692225787620832359852726590551318839746150086775374532673441851013422127028274125110335977987045303582072343987747362472031997068685270822210706003106697182592351882684867751041476517221465647120393811953727244884443915687345943909360378811570803218426920760362930517651617846756958104249504471831539520567454539250580952859022928555852737148927824516645436546959461212458169432992615431857605569549341742712865485449074242877897595358637378254063169372908610588907155903342409003277746645305872685878431606692468369526065423371284095895710052715068848777397362376081947736336921702870932467863891582099495663333287453022863661955825371619695462659789969255616735224602655124555423970520130623295017757893942023542551783575969825370175166011016140434699518482942178626933181991260203486548123788863898125686778577494753814348682527684531989485610903408144133236872900129503911008244833465789664672448921308430969399184428245984880621912815482154513144387680939235405102718935825347587673013470631676109480631701544996288497536184835071130961206548806570011296050536887952380754181702996048123181049793958036513327692375404899369218885715689020842310575674917179188295819122220295342748507942947689811863329643519291471478434013582899116900825808176104503180703656239205083927318548187955783302797916560199933989605809523482543311460764775660425020160755835921287543124655421329425389160310129165349445952199951027218965854898987649976647302274040982671021127820509967586306945225942549627361729378632667064640693683171616464500460014475744182893955634176281433355347564424845872993692758872578553939091274882123492667519709744580370379597923537698352971403127648009104400094928784322203667110359215246695186092808958361018199210180194058179142830582454759027251128670808797362835797250874542423020705906492930323772606800500293399262894259168400550478412024993307393659906709633814566437712509983340601898124584446249398030941755061734989729914965585532608909718583149334118502674119537355787322021404755517689055724411542003152406867492486998718615563009933275501851124705087018791765235371809143811915989936141311119769936647301803182407648884734104582053011801366233265216987652984996669593800381368207239684502238522340439793249988321561981147277470571080749612727289291019164317878470748769239971473157651773871128750878650401258812051775685740114322008109355251805804129115940401350586086386917415460620868622876886027790180998293849476309865782896346240577498531637921655686301014393144750220892932490748263797847067996161032847744229936056321384337338625209985252530898019379551907590147349884790081801375017038548701530958478539713264324916969550657684327698022500506586476244148736687756909138551189450836104552357239376339091331193150346028380918884851309385608198764948599081046288495409046726278868531926602524176390519245433300470224352708440591396341340978079492163380565257581040565977037693834518562651789878242139576134988578894361565847959774004332560765487912108121964414111444045518396933935731096808528428128342721559641625737512189058636250900310212209414991669999028774659477797999261121199910947668785849635893806651226207288629266341143516326084634342261751669686611683961576537755547584139499339545900867502475888023256470855317450197994209896918104413234304730617641912826389502956641625007090569685014239512719722606115257487905833175537569431053898105637239483555328200685290680349366276573113348877412571636660206939108694855097182959479415978195390695462116804084570657847714429499620852487347476961609079162175234746150983040317842594805207455565599402393477179578545001609410229523120870021333062328005817706819043062551239388547094205891740366444453301647339262765165269742912656942724487079192248111207685450285722259930500796632140674306286934060672761719582450667684915615124603261643080911330542866565693074662441839779177524030230352011896641768557186267004906283063235220101152517353370290601050102325407794693350642578172371788813558714713087438430111045869535850796454244258672877283631028306948734066267940253304215931158337913168389743377401729180830159935573288583260129900769935727565099468764539110861297105554063195487604765890536911368074107190401940281762686832780596644950206036942708165617014540953660761276276226414465818809432002897393260242711529536545784959374638436753329904773222709146712459223356221536008146479941078216182303487026332132116172854597329667197436550881149394082450308664034366663420301089916737475695295492260825216510535943760684916962182091944497644439222825877230416830632890224780579574463866534800760708098615226403416494079898146579876942021085217341070995484016064192715389847292549347598182924069153254394136517677836722532413211469005034712115452084097547994427056510087493613384697093139652403619295796215836774501322435652387619812379032508878792084353662604086949728817668662006186489776821232667067909557141042837931254877870468206866159996063742278681172481817186529407429873754790811831598724297454675463009146636782590325087150427859388800432076013844278500098952558846802422121381446157138045731130814707787192251351386784204077015043669262831583294541390290626971525596442153726590570908805386309594996692536391849212766876428014085313474530398012653816248424350377973942687339717054649617962811348141913100552939714357734301998425966219769877238074026019920344447572420943339405070923922828228523381950936589856702320183201746297641998453367681823874947989433927564082049512571778306294377580491095120975918023547629464663296431023012427593055008652185011300616854277217114972967705268123456261452353293984274216252535672228754120454525174302154592340646902357156545397593777313845155079264936252492953315792735269594760468940032251952549490762214627772273589498325003489908700309260075769883258927785816961698577521511781303602774917134011670863588372900416499564813963165379163314384826891173216597965344890496295736105245862587721539846950063060090141793894286367475815720953373443117969707903379881941218069626172226811058121535146404487589587289886344713663001630859208786626796284562620454631589230485579595938430714583542017115666421245159486281423446525737585287477294574042681073515521096332070665763219303190397092207948218778345727739606051826963666524708933809128733130163142766394610317857307600967933059236163691492383947143843294803587703142916696834556436064909637660048352693411199062543211441958130034121701915083708410837903629595896838458407044736434959419164681161859886198831827947135179121114936097195305893805951450037497845581278044890878614807831178960732921591672831475615991950371799895389088376363052224793487925156512092954132957777806562467211469105046443851671884200431955337610552975291555542608308837180025506573020504652692404721749259406694987843816607898831255730213382277872806962709301316725741928784037313320744334613316771331946745021648728286114109544558750664524535999453995288604273068462851849311277628167698837869414712730364664479159916689004403145378948519456167481358040190569577760082121455338153909383440385519745603784909766678860862421219775689016546446268607744677643741615047538535813235127600383228498095244304464142029798078609260978988214909448971180076093813627646807230947275065416719947073638890370397271400181226629186579436895641004612106067961740873228581786007674767667728955559575978355558912493180700646307197176935498327585047384995012880164314659922412176398185332839803603666844702245862304157162655366731285531757406559001083306572808294387813174134674011112472359146096808989879365200022663490179528746556298493911757215974288245663809691683310271668719371121002575167889870726133087815427274984777743638936506101007050925512736162187346253134678805136677408088687032339875796444585773685444387067912052437384983127716135444615388627869356488879535440865978220426469897893331598837728717485334013495089933343940329276497303579710956810322740970186113033801828435786988559587472306664232311093400060497341792462969929384145524173905949377247277077991135622829356590428471467034782108195627800586682518608166107293195061023453217025694366029472750998617284336701027625468461294671775268598305910072081491229087861159012212626977594058816460244834914380581312517246054910567674937130233925109458491197443087842181016025022441142607453507885373076271695269112952696143351366689606231853386202856353033102469842012261762925961977294952712716038651589546034412427546594228381063661788774567331034428552786788503241672361027867698462774078737882356633727449416615055116962556845683505474596703428445159915224789966190839921703226950988442377883865212551955881238484194758700902237245376451688841119492356022082751191814151086817583017540174958860586204926044253473030042182995753931680600457120614267279918283564257129790934440629356317782979386565671566245471982368127106744082015488066090077928456831231646119664808062825578579885519478470217091774165540887476447363828288843677548738765753964052511892646012552698021477259878836667245873753884985885290777874059557717307084323653824299880302366728948838084557222788327394210571312186095815494902841044518337116551899783226487148065817882785176672612678227485682262293423490746740892469812684525366810472091637046213434846136070078755817957143395064178702709332020204625308354276491147899003925499271091532598738937823300379839051323513302629543836673924900407051351291740506057547630711772504030575721299092985199821850178445056996664005987265915544138130364985537816297442431504791143130362865310432978170824373168531738780739147584890429980486211455522063114176026281473383798731495418424385274107968563501918010652682613170042289506605195013321222046874865900500999273007496053642356283421034090360194231926898574609419898874793392345842060646900859761411815142203742079901770068964328819465654476751959247865888860938591028499421163751002888698396236061829493789133501055291726386667003628516150943166331926393647521482130914083738928580918927629200963040244612405378786686071192284493083502021736608003345584262190774440533810154422209487640139908832751272313211063941570025591495488513036329234622903234583588080808001993943316985406098548121714843823497425691102469451125067384196922809729223455978647477504374520637942657946825261575933439978684421608349010620958652827586098868128331127434117847094691910399464519524702185093120390408494714820712328001402093764724388499137633690757044428151689189230683182403252978772091320581583633855089145345082769792867236673549612405983072540880986160854048230381195751470481911868136252527866200633763008908025914608756141517702664613354359985243156247276907705025124184293453622555225896619274328611074276300320743626778224671296699066094303579775239772899094112336422857880371813821916350441662039880616176064696475782363580204684769209515834184463399842147852377797330574926070468033886820356088005724791250534026995720804648793980913713073486639168794043856325331558681458902046875568703998619612565286282026068779304216207374132521934821000080799613724634475304048968054911704367551380778958086137422129262155080013595799277163706061505718332588562503647524320650993489770383028776955425236336712200936379341255586423302383028868729522807879565437701126933922124822096946398821082546229017729845429119436795927120777575145461307924932587459088623697474703742985374536614034142474619930677747886224140460408158884462486651114108548906180837992071028461613968864536014253715738745658292912706253941621817056983921711054763850152944660084497057861420556434812369728457898471853669474913892497064042838566650228033922402191296288202962769013576961893911120585298270577708172606772029957449565097096874450094415171160761997331438418998608814179841430905919486403612688539411508695435398334448316748480208316271041049852521857437539323763057134411673738457031130879625985258946600383313192090348632057288508965890678149249185058321485099072717543653020052933655275022442626021561746916938007906999666320837627359866402071218305011817779627086928801731259353709486491349067526428408654758042806583594028435237492981024786407356823433487318772506656278778327592859284706599934640067219598974723719854392171645074551837093797469669202443339015780288952000241422735114928157436214330543185759236246550005207465025448443882728556015045987378691276382025542487723817394549440576849500618213155007664728566611900131002416750397742159133145736792627908788397123830184126023632078303009518981392489705868872104037372921077424776725364535785749020914003347227064586367161029767925990396467585088308465199086386077278705360689771721163812695114030355096957093374610237186289760543356587142604470707199269108624319821626255341074043197127083503422104282610932165154978809753760125917150743932325123173297396436090917475233617157478891507497726389483571648834953747993871391581201576824468995791467226811842601298527711064219758680486012640759426427853210211785114267872918715469939891000385562839644736601430529428246829101680333299339869188277614280852922108050780750583398264140225984320732443972175459363744080902893466786847330021774042355927352338683703171807833862651353010952112157080783285029750839180661395465397993622735648774832571819452685784803779272495277626870429594870628764647921093139861579822906795584209618437157822746234494492761140811874924190418969843582198511076657993123033604685938949165203223828322323497681567806324328365136836541420420612429788873607519641993983003674553463192341658249572635638451624001666981440332412706285491036947844058733436347501497753835809526716301887072815075882972111687513055529203111505052403627174280176916998782048646681705002886560408283731638216274119498371953008835637504812523849147692567946079235627890033370433246244686992929842931809169206549398232383784422384414850451848790438241231695192295035270064844669986539628636162261184731781611393225746818520536216724942082996184626158083444696787000521361810771756051687523988965445271237654299635228634146624040117282420315840086413855523814192490132836200984817244536744183364220749583168080692636624430256328465027155971687377213539892287346551757449921033263708104221156896861484212506201237481389947533792646609017631755898916028866271318569761676167815223551726400876129341997722540075873219490569170217687016972530553419480399811246739739395349135320134003606323816230421015633603505487461927848079445725808867445745921023083322159819990858968028995134721833546845289477364513594590010670090741690026546346938751668684097520954915984621777782726007612414550616405049823539213213248271103547585189871313620308524559665316772613987287622278756578577966871004929132702497389643741270784961384914093232063745089537388975355922576882871107764120913820378408666104793096640261633262248483691634550603771840616073254356656474531626864352011234805393578309617910502607513118870789974768707067369732109414670189279812642283284788504626283711933057583484034444048424163750335354255213647284356086287675938172087179807130001356169983586913960133201716257055653432552114475796811643184619481620800459216775538481199778083794099119969674291226753963439998620864913482393305484722775437925139575177946272585272494915576999678852402225012936098818113669879113898860532518360866785835427044775965353273784461763488368199478698096973987532682040308090955453649932104801052366453471133484106272093065474975361875686208453114053986307243418708081290065062996348523357529048222098846819291782401679629538524367439160970432527110549044045678430598253539734497546423400939916730594948415632780461678862357331568413786225828365029423668132235370904156262542504351707139233014597181791295723303874285554936210328859969126237291573859492386872418057862682504083943782576884340221939124741570500563407300481194850893743963619846290897722945925976231157013659557916458803953026878971630409925286198318403272581568519969178281040203936776941980302020552565400146606324642208423982903774249954034080849819024232343335393515921139017922587560059392431423303733326173616999569581669081433428333026248601727477506979923271492946539660811315270729046451898775777837324395144146442912039224305507214532019020879388823357135817286317535524927725475624164610458682131476727652176287606070890937449912445079474552510549379051830564022638829516073007863852149600849178726143571364910642490986488154687818913698953858738334913610737223054647169429099064939989125593472737347802334164655869461695190683890093751744257058496041589515811633469000656569012050653174245554061220156824473092570174849230842998923068731746457645483651752847004371815841744401859130243533532913458280340138887848081669409737514928076913333522845944556723672608743438808755477533806855104642822725792271231024435806069493578242531505980747773725801560433271482437330044062475981014112133281714279584294035489995396064154329096368082707349359788984730629039434953595088628352749471814301677586022894690965946564587724855331541419738785636337047108200025461688848962871989182273256660662599532256112708879796382718473782071575051520681751011272325719566809701928314662926341240858030860236970363498365980546978972936303524315371740126564576673737530018147509942839519966972448079288021671630408858684418376822147402585942569669516590437969697203587453574193986600277605908639162206155088034671307553493346890389419535837702128973885146055121032902937859970474914947990844540273704935672064446722327261390450179058604503664080415173000143446992398655862222113157471624086055890968110085747086015813622096250955337992742343158120620675706034017500359319358933349680320994149497965653685020404753902732272337287912447718968074882666144686744463789926888530860988455831488938108503939896638163958152265421158402612772904348936092908600597092964544179781250043229700725955350447938446863194409638904315701364337541858462132699912609315934847310330300728915676514820667308140649615577130017488998136343658399104136887394437997975309095903214361644480834266746283880912724264897993925846969839737519254870618088554614801841962529504789112512541654485638411391897454516105548114637779554948397030561630546603034992199604982807406576173391629612820058167147938450009654443373707608016351606895304750906832742798006978666844087868356408398392811960335744938860523385129594516362346049345579151883058569334539855492550614522858523092575070710871007733174333184866465371608786054550638118317184669347743507076040086026347637052847997386170084492048728166392368931166340608646020936243591785827927225218130162899554211648923940464648811403748541041206113796707052844773960214162400901972158723459116328781288951391876534047120796227705355639823749105655918227450732753595342544389679242773577256709586559564859619875417015401368549347613278640662364839726658826372524414736451958950698485162635700126798519066427426068616140259625221416669520398585092734304295761168632791931087671029231353250382118562974424732618077338669079153396635518886581449649370038205372907016983491660799729705134713103868115276766906987891708749899642162819986413598500417093885355366964867229062780738928820857098009015864556058451190036945953835063675684180251175341370444479811292580224386929678980693200399302985375487621769987403157971477414982923009155155244054841140615939693310759562161741305218108504412041292893147087195780287150817284123394697663802887498223297054478177286916496062822222015335328659832120592792339091303086882791238351638520581098518197720429398316650949554792868650793933949630608925662488446069127939086455828633847118277591115412472628213065130284776539988025169212042669965744925294413583573983843243240981161103532387651638734501626423921242319190294654731949036596796085877499002763916824016531101923281781829735512241162634995059200117292676774040116422360256711436828879360868922713943086789267502800726304870230546630318987826415628592961865100905226599167988534006496882250183227439899429208443019168740819032667953814685080050091947605649188534892741341602944309942960684031400323464799379189230032301867149414113566550630487464193642503582182125364737143906858758887212909006129199551568744424850763147920779021673215020302276027492776771758930167192040675058909752939871422322611690680367444995534591995049316035998536884311664316566506346798491983845461957744966907790973288421467884620439207298381170852039520302397732002971675767354562536825334369605504128649815365638258521241338078456163753333563885927474998609261641461706941995176159400522617448831886786269967177910817208782525785984710619318899139741764656399059296227605531911329475630626438224073570681164106472339326800660230286981654263505024708347616592939772863936456952969369555573092839162091678307266016440782702682281276998657633220091911756889141518056006488388850227799079754230152025395375588321056855909446655531516972013549578791559718521804792081843418922086224637851674103935268357662980549140013384685059662002812841710698604722803006716037995122989379759414979651029311247500842734175132711353530814723132498933358181400505076186622356911855621830798274356112489143015395159332165487225815671662272952604566104529699277980703543737241525949041190979029447459727581144686481642395045814501393084406772327013499741841991807025875553612060354971566546861076554325993635378164587348557518247395959676427524007278167836108378999184586181071115075766557676290676718490663743461425830930348016928016025962749741149293436767659405528497958328510056971092027117643865447482963927863120938863739074175970851271358940377010869903802264610713667563790267353056074189419445938865947944579685794312436108377805259889749324604320279761100588687387071313298824775327808790301465728538879207925314315559370062804384420206096466733039552132403791224657182985770749317469151166768279031336558301249045408292304881481719187893915371627094396188499273947961716379843386033099782604392240067351267080912721412219864084929209254914735217272476772380600472565090295251506972425691785328146515249904885411983239390148599243236792222007848244217486319040153032180486892470430379150007231166756017265361930362981676646308471752724741934997281242500789767675633583416705240988952356010003950430556972582371151545970426278194771083688969860242109307213419295562414082116587248901975850574159946234844538566421911831862620986449254809133166090159682323269769332545576814946865814463447978251999869919142097838405257231275526958808842112577267806601161345059393363654706287437132504583202721472564404243678389371767545467179820796145664359059812341217370113541782766812231387387339524996158123370018655996763878888728663466421926344890345680842203841243812130035854246210617564055794933936049943472674421644251281341226543302727217813243484634514453319425471935323367257066219969864832201443398071514255610353458754851281248788596791791412225384621664819848507411345101454873680585320952604754971252210783976769246690660122556886611276371672105015519168312132390043038473216949312275636521374278134303570246485258486122649905257219423641836854505398662668092331008487905041788570497821905947003520613040412705901533223967486271556020139260356661768690618134454301223057488827617271938434407607614648821709167626370404994385051668611877806662778074665465270396280937688298113796189576242458656991221885888214903773058895562654597545872194810965165842979902314185387129307818226408136960441234076587608806432728717349208913843877159031681740659858730454151279487312182074874563136793820330227243186434296081956386689263427105991020483762851778237751368063030686765169431135962257043864254836598814880958738594572732624918727257558588956409208435423716681552898132620194755897042288772359968068742670968441359021934194838266790374450683503536303472810380518031596080244344303728506812309791578864225592245940832038200744336527849606357689182469762819091349311990003556563202400758257948738513744644035348369828878453114954069414737209958358027948210352027870590077011359097271351492755007071684920286032675356974515801503135385846049170086669708171713759738065467761749394575554722307843984362259527401462689274738427777758794028564900162818671494477017326688442690518774519755341440960414245045174283294252622599789245837860929630217928160926014633053157275159293500581392767243721301870140347679107838152882958674524141250506728034169939096348497125583433792418664734375642908111655531082349305706332825840273865714478290061023158716522282823236127898459372746044596573790456574915041001183106325020147278388055761024010099206752419805554481817937128242566380939387989556781855578366377217029875044801584085168062087190717719166329759590757569157970720329056971342891452609385430150689190096331768205617320089456191359815169731800624955560739566655006843327550411240811964040527189157149627237319801302321755314045965062158595346284939921001353253325588804513891762245311790566020440159281815142272458822834813281067420579320742401213003558462131833966112155292517736588982989817309928010279062996964314714302588563735387964394211871198225279447204902175798184743711820240248354707404118664899960820899953623413386304774616163521434591601225159757401453768821523560541960274238591059213276697783248243130213644446462947311145085904810766506658119562811920644874893028231187509457106074871715818353935094665424566095631865077585190314840866385949787441419642763713335658437260441521360418021846897523335661935830829593082784374109437124312731153693657435259588944636538480033414554858713144525282176587597095086563667877516657752780403529981511557190001579512783082173592024584093444829717813705258166139073387406513717604731882155097195437648754138295206783214044746589458215808254722013849610752036853198588339309712555227792464445138958768572491207980835093146346720960350171057283270002476708816898870407763847065565945607272214022563578587315492934293225439918971652890495102444474325293599513815961749435817810221464791223606860224881893922085581451747498278508964691175185272492590463293042128311729820776234952592305214368240855472536255933002831888045341761252754614072236645890588576579733747781359433376106030575990050020563493474174689599691846778051995364908769040282698083220725699949375748381691560620153279380902892172976230676488793057601717164045512807195239375422912079289891701300323670428954039302432232893858488070997208965875387663977080478988738284041221775034100858042811552308126132534011489800377865006190152561663920136643997432027724494567146800380167545763691781791507162725038827380736290692177376849738245212298404875945383610613576151863618013029340618018409912994110284335268029080434490105290358679295086866623033881958855914428268207338634213856317428298822222529501801487328370143102731156869407329157523562588460550578313312390019129395599055274741759416879731573502183067648618320384078768504069507065062884706639821009711387032937616072982890348064323935623905013727546040037358964783007305482464322842808138647013755237804927476202641295216999798545789012146811070586671006230378293822149079041259532860100608076088563913644734445410436243568794794077745506669207320208781113638381354182689834903168129002689041955262412512816417413921977890740714798488309260829472235406253220610479430631174927030069049683314050615399615121061980753272009980572797736796880037137022586459722253920840981660350241144533095141779863281522343917995423374310281611773654594873786752336818127432750519419148171944263611839325179510961782382600895928739595472351522055353349071795899208163809350889940668173759832786934008249044952314126277804751456901697509725111752647001879068328081917211933984423049154362202534940605683008853535127097612490989911159794321975221973732792613921776293503861735194733376824719341480902349707454405328064037682328911914811127513586821249429073847383099849232117343194949698148867798370670360774710010723704544360001415163360064027531279993058743034811007428421839158943912105647160339989065132351991095245661412123034117399485359064451722117564960837913120070271972890220919553315133088612638613595202944131522376825453744799685369962207842657944171966501342827545362122125911909041865502821090881933481949738717144408995107637356472739605972344237004857404916461455024669014084884162492159715059884402293427724655770237306773896743190060614359967934749694325295067874273505871104011000423085494032033256111810658423433605628797130328509078490320174175768662790448556425759266239756123700469356943113453808796110687867400512377366958491277368614423681601014441129036804365855394968471390637335762417469570820834587067841364505535102843858159451596493216001153600480763952880721241170431395877724714962132810126616357966276523181505683844527342128495461889019491036843946805638900485089419651671850487435931285054251751322227208442376554577036540214228581042436390630132265777436632559325157295947083274251752698031724045622189586272755488341612648758005887416852624607015388588833915612158892500740369924430033310931175388267517295303170657153043210980897474021555806472921944123251008709923300371426455679080568635551599829066509666862753415594195271766648141179652561243668468305714620330326100942112305776308031253095978124520613799085715025092736975111566639504051583911363845106397709563526560186030850301100554261966710303568998798369977144514323097446890237357061986976796041167188641395777903355383349416967254639434451914926996827788932902427096483859934776016418360208325643453394912755015861174231348260017127017016185527540303697809687043747827388101470113981845408251130825833261460625186186089764813523243735978032586665606339741217687094696836726197250999917482580617001563594384593762230042709064874972176728904173124481270971929474050867454539920696392706272461482935266919880189822837662030186849825687956260228249224440156849331466751631439945935486384252956465615423526885939206083815462684122658054708079255838529255380004408275155919195789290550727702798124352392686913367974438265012237053169737420894229415088452505310163795739183483440146614468988962919395850927517512210980592712361910334603219426344200835350522977569768974153926984542498638244584883872276018225020560711969233817760133710871541922423098579512436696987298280566881922605484443076959773391706792325948651505621595768564790124259522729032345339739377585573941436221222572321683128839910260837963495965791486292887637441583682028734635334439825519503508485037805294915020436989894649670395425300033814112936995604149439631344563208740584060967019665599089417137323615241679697146228190042898604835023107575260279089732554196264283279129717584003808822538179338969209064293094944132868777302942151086037203045601611058817921642559490232427787908180703310531274951367369597986609738603242445325334035692829183100027654032947508354511360433198099089767782496355620778930573335127416550629168901710497187369687469843241509605991781798706971457691485903793586424255859133653675395808806759842763498298666309833045308934850728277743198651576173353688477711639065642088765157290441963472423369672639743101095807402675484930779129819095828518203858310052290079639705649846097522753548993886643175217042133915149956210997627885098957543678869897193404816863054856701585326641587616212664382228204492768895233692445928646427769082311370808950145526142678060062752788102256377252238334300837145135388065897735568089590661583419911812069784099595012582054409612941752351345551952947623902784637374148163049760187209460613249144321730369081692690709786678535974395699537136119893621928657720749552671615109703440522018289793041860475393088291082919473220923568099169966905311225609094963265458600374911195442022669937041182960201899747712392731991196030751362077080462484162582790752586180848801915932936948272967673900103348416552882447652262976086549208281663137988657268112314852035642715653939334436678727563667659708339873755691565444649545847976150776264705050626574458525316843551214532030953260286152378336941374565977091770815844342205713090775286358565566509681368064933707024885968550454449419708094145521649321969460752877433371146027958372541574888331271581417033508432910372134181156032068534117995169569088783920559364513876781230524565134218242367972489685996346015582061041054732935098306577650095400778999906853071683063469654000703547121775721060865673361977943200578435390959862956051140486908126803002137964832402903808683620944977420387093835220107951836973289222653927275383476459474137235375994525326959871700033284836763072635895534937911033189498348773954364422396950406638583884142937928326631446298680704266249120822866025489653036515598593202956660367324291915149072441207133307641550473011620733573498764470237370005111027213640295493751463769527749872709441110253748491687322007301955741178774606321115249332831822159911055881266228652184358496907652724671582367300722416555337346350133534023282627738508113236852055269372528335363526590234303301243961767781642346789003468262561900235533954775634068090809499174316125685428284535691028624034309476880790470055349178389711304143900719589800992653594677072343186716538083661156860045354422341073533247357521775509242822717514549156257231758493633764388880130684894465024632797106906134721469913434819530988117171279535790029988789317022110406744664590820512119260621000310122388493037642694682548732787464964696741359392119895963665659582605619761406914006043872542034900443093694077352048590575988128976248783291812425036858487948991914533507599019037098850264369089989939512081717219794336418014918625517908806133435354156977083202092310689255949950592065124574380808656110727633359119770036759920916614868621529195368462947514301926037749882805686792202518948141301290706738850006360969477742170298352523716450767746409368443588763277486359630978232369895895919387348557617696188571799172841382214341468886281982103897954328336985145314738086830161079647837855827379520674052964667170697550565614309848393510112992467058566987230956503969011897103313470161347204495376426518077330640320830229926182576120024116163439820680999039725068871633008814950415644251875123078797554750686826390802687681039309886344697536916858794413324975312826466660802620090870772324553354087468112870537598043014013762438252198072540149080573704877454880578402681679474820458938086881691269923240014066222816783897478678073431216914639828761595066111422233917580624461710992296554121665538153908870115289732803725576237219655860093865981922726208980245614641745056222191580180777133015252983151538384872973056562747457108872176824563566221665841661869389469784954654796209041987156476788145269498487469992721835916493776376583444143103154525091419084326502925156174941204687568802542468585656738448718435227084361532200257953440450240130376524331260858836786713236016199878804789378085429970813219951490854349609594386420303892991686688787042759346735406941002171836534163437980870720163116307661287227058441102908752679079416067510322405706348667330966414262297664027813897621015931210543753511566139536459493060901354107129896422434239765795691840571334060125820469804876124539447006285352611824489961100666776862611640575928886527092454456814466198766257692629912868338612763192573847266867822373087650626398081547965192171953776772049075261145925205114822081018532372822623991393692376294537840948175537021201975696260987785789118401287884404170993402381299881548852182404857910155326504494418054056654141564325607921487174902894097151159731475877596254300047901814176193299617100822300745818289030185570394819584145618447175793141775762179091630822297086132709831617654492136583715786269467410847009484303324907556180636337760438036276624381666641863868585615911022819951064286887656101370223976092391695395176455843593540004269686181082791943039367242970418898130381480861295124093383596604613823996886996010703535992700362552681328512757727327260215525861077644584473352750227697387580087064991131185671479334281437724823375446477720589552060546534904941991276022411784142733388201590022849905127009751460345854258446321134095251770170447592799870336769019225005839194738675379827559275179182034024589475373396666268358493470829315329167084177275807068029608521560397742558569985886117026435312199000696095578128963331428327639598592584348425793288453562616432728622276652520704605961556278813501023571322718415726745253842803179618392915443676103845585779112589565037863922472390884988001950974070982560910034396316404441531905219347852211657644841569045750113895109684339623311939532285076093106366369750389774391339295725704067132860975044295645413145923135733527488021822208102497764972569108036001451107317114239135077856488530017347697714832477100029533929724484676406539990603997215738225889186921723822466249727651665175203044646349702359666976445663058765196271036522860530290569975816923420070612192517156578128903387456136421600179525251663461220468289923774983677957149673676579749740824466668142556975349002547042436681057058909608615550423737164207356640767695669538107668152814153939977302407908893271483514683560874177347821017942675396511322332327619945837246550207683493939761948938852666547370381616105723616759052794757068497925620246044884357113465173405239697942048168598768224412235946776235980771511682023088634064964961336210804630944349183551552066372314449820951480104321795684418522413192038428602440012429959082750988545206376602182031684882563248676476158673179553999841952596647667224411463654992071208593443539877404723232584253009063170489700612093227258303966325611828071171571344060348909772298134008351988830531748158177275598957403193111238089233407967645815408444490598783644893433783952556808616741328719627934248961241305806526498768325727471657570834568456509905179811292192733944017540676387718092280703159564618377916585440673778715073421166635590352376068028260319313320686062406329235848604917498687065258477762499631054486748230881895981280434242196639209949525329260990156939533078424335006923347260085800746368120772544890477993863197304528675905934791193411149920223411727997014127088668488265965256196297812828066672390591680321044266214739160171473577783717914620783286979646281560170220788547120189318001966025347362366042102896944112712995612311536831445176127854123872300806771107195869925678887599810929190852768724383960894447828679383898181440301211200290071307069475439260298577605080634329700855104672253380175947189158549567416476770497368012850597592413873630626568567123000269246195795409850694126570593160434663471443777454536899079029572909452100120009232371937368832882659415065538444580980099391652597391430091408117227071998636785118506469343596649969737376012235463054297961536356822050188244387015290900814814492549718932239241826785874514835086014875247135997376732150498727697681997206137647071273085241438284277852197186847006199411041363398979343563033430731694466347081531696267210538430083675593573675188854306534621052283897415207809589981901675255468287739347279845264580108965946687067719923170594854594508138942814282393398779005640593069805049359560230096580274576046843447208526688246771789855903161667640042544230687254764424320838335248074543354346640927452518956442838147557349817688748955542906577737184107894861530253586655343916869634540309722455211176323181372024334880375546946605615635617588627971895917008867536307918261355417827561032660360462602484326273073558154102531662458236506081008452775028397845042881110253497574629841336937835479782161396825288545899925173499158345710462841425655000581454645012782596275620692507449637334748781603458590168933079705043429190921968796018904144057499090444311386658881977628970108867071865199010969600243414207066986534447036626972530653058104189664574796718161374494667144521732099004987613793752841543375843869359262281847505682185678014343002852311351284836610856250645413487406908587203612817075346463529289767598750068872046291364217051629062359613795047077860963678375509808735840274498234749096263829243836969366837221024493896561291557579787735571097783643003724528097635445286177547940902225169882966477524401868054284972229780328661384282015461803205395831310643323521224850865620058342754670264715661225052054703223665468655198465671909719262907830140368958141867637644817146679219767856207931544010556765875903717334448224862084333119815477071839394085876108072760472161542363667190836022565578354659737628529105059273868194459707574464501038592114661282131111047441264743201743360672943195396081902395725019085236216847773484756939066369429277905868514482102952808789191108216739819624926636240249778819205405956554126749073184869747403101087836972483008539241389348385382068887979138978749686933657581086079141823645562631670628951565025042768302632468411290846011101570310526206516715738354633421001598602604886705720429373670914065802867105223416910158391792542295378420820134607990113110602341592927785926439594786538426616063150964684348051428786884415872583493969341239169443725195745955593244529227439037159217048509258124242059343965573716596325581247871940592121938911385900837630459517284603800266184286429999589631551280010280092539470519112510287583137918141736083544118184928193173207713222181641267216306730357243678905810313355584098782354859089908546585293185074716640253122728890391200902930037012888056117505423488871723530646770347629630715108242614171785604943455518590907304595856388593596595739185752927263316066484451001079721886877770491472624340595414903788880107282601288892215087597720082620661588887779212239295656430174594692752380911120603994188264315662081215977959887073161804359866395593259422835059482232767268842279074733605688970717847347632799654873642751503966635996408627336828676751843825089473081185314249326659104563915474952743310974454029585248403530642102606554075927421476617747418995980524211974453353326639600823448546071972490589199961611088720118872423743428883552570653365388330491260762488615253445318096938576562603075087250498092820113304840827162068605478620526217768938769264271818453545073863121104313502473158340513226660165922990376795408928827816453531453438362527905549388492738982092761324190496490336358848065537260846587456593512190210941222068171557342025068897028748745541217692879729271376979761158283150963272343926777380918795399337017487602847213921530561847861526895027119320955601673948542209101510180161456288652585373313356051315666687899186989062637299015536857753514987415470125655562755962806715685351551989310544946648018867968000658842447780512892688298953373028946440857045284609651418580329562244762295182162464967879643720521132051415647990351745322919335487130730002078954834646644185775630000697041459873179483272531795673873222679822406292158532140173075992932638637971654591694120890962094997785952698416794401155740217818271988240772146863752138656808530314393092470311693078741182952683638953846845166563919360805666715476904899835399126522033209613972660025363560800338444396184738148431122358308071741323885390989247112821520879692284013841506448160811516648408699134491505561295844298304420709954198920639965800551116669715059967374192860291311727473198935231598211953559046366992623613165907957245922976149464821402950570565543541328296153525859136543752248502924085249936220429422472264775346724963341645812061082056810788473755310749479220383708074983013782431507251103838971067905302859687651028518946249286103543370664917208784910605186722138815483345146961306580071820088164410569264927489122706219976330230056890028347906490448442567409624821724086526749340732897890003552800661133113795872604442816925427098362300763960701167499721578977419640003184658788596682413369776399456679114051520709718994865820770297052010020637807656778199571786103726383577330284908822197115547934862291269699468565909871942267533325870682336283845783143950372007460885232652063034708309088819680123197549181752992088337055338077507726269881328223183490650786548132928247883500612773631115388197947695724407899858026305587238124355263654453578245749925223085826015173436618756770350083467969575785582892646693696947414831019769223191470852609636601264074582682619080056332886420693191980385679958763262637951767635959818396772037856498234399170462007585747410838935770955018081660807712449865428022254052084520578196023104781765392289762999563523050927901496379993607015793911612741211149490986638863210191435027902850195560960173317552597686063972791487865672760366311263380716543097320122475860534460336976612504299571317360520597774605889061290352164465005156498063084037833354860990961867754994852438703693625178329296970194141197256763057215237790078984258682209439118480708731577662680598736898113237635154107464966099080015114710664228509452993613916882434249878483436528586289903698893157229324020227706251695431281103903665762712006538740067776214466007033961652700576605821305045071853372762189880232004075201607329360715535808635741597181355882355137237786600702429931815503622065475305325336678092883538886241110825086147731409162038011196997650135736798844623966875738535093620936973511655774250514951041160538290988908581884749820191128626478614420323174051148592971507165801115235100855392002767675840683861066786940336741159757255869789381279869781383010540745683672187393815397442632273885521708388994035808660827601688816817884403199625041096476999146514212181027003773278335741839345314299420970450987735744405627263255671784405429703903834194557903750649206547728785247118172292808636686194823506088525058956924392970463908939712644317168100028278067941395594530299324572946955958477169471527788224670682377944206530991812346340678245970167760370596758766452168749360962306529892046304537579329747926157373880032113320763653790953511651498690889341752946090597562373730213821547242008435404899746326939746074039114218946358641408947284180605507063565856795721711561108856545323769184605083891396367504051796814358250033754769649186960799831758269802958171729608915964473644239409384094796297784425100567281915850650944324024217919873044000200953307562846422188068355333239082701222870909887901711797047691974269274118266864362075955633565629470183314178217187771565467984401619622411173993045621348410139755498557892312578672901427583772292609214324009029545686091390115679868519196913783019733068048498331261294299651207232854408677931213610688620357667099736158587820054715827083296778165094295631300258696701683906190328715567594785194654779751432455897871816505301280810511901162700181350476171494391760216782908790671354344560226125855344749390507569885509698423135144074835386432763529457978050142968676351292769865689019350162702908424596319536815122909342927012069225295484256396042253106439093964791788132069668629683881857837321966176593288973405662359533435321439334697197210279619514769110544099464084274980111763935690179324927957755219519172342300187885345930066487140535078900776871474626448798908059396584611849896992766294437219175101286899943120354358826220708968538991539720138909599319065502728693199423795055223120902001703716472676392498396334436032478106092159327158626107795578516539215635519593144780961539054374058096314251194597570828100849820302145155385097736044531158466575205425939248591149025905209450579866047339724767841449387511214140613718497061274203463197804940889784262430479885774035790197796996506866252925699621877552878586347789766511966714225571235623082310336508451604607931836232244496991814461437684116907377002668412725149645178897498221471223878995058959636706214440200223078513964533041079261078222588395867768421911161170629314478313324597543209004211861948421270234636942509596130616367656007757178752804822493004356711174856244001448715672916700339647497222790897322505700823981511086779857248850952590142740213224625102419335822432157558707885177932460620178577713894071659303656681955644843523912823420682295146375227697033176172139863742252951500129213748134919386942590863817773285334956942925553960935937859835264626977851339349119585979907942362931629918605925546197917132363403174483395853014213617447911749246585907612595992720901584866600806032689552248193655130130552247144847684532329488974094387439142760340476279211413258227524087376557559343648529563801009425716568749708663368697505224196496689284643932875499270161811697563704599350002100642802286008224488737315992900557387126150993215213809478005344796462407787289548015934040919110750018793815764003624290093833721043708330389672679083180086025530313322118302890171521310529409677129642672850174758419222471180626836615726567091842021916721064343428961340031028005140945221832070908192063603638920666015458311693516557522927963806846270865024785935798330310553422591683139301061094137839662219693105789658327417149165230352389985902053634591769937237202288345751069647477611233069948682684372661518909070435014140446258212943929867790656792723235154881481187207421337374937086981682042830848678113206293499805610403152348162952125195662365503280485733102271199253767626679160600921579062974171368185748661218840006641796975422331294267993534167660111586107223799350709519818077186420975386360450195129135202748112625704722930738839956497969150884195523674072467394322732059747535931733161845870621192724692663220700959353751655531925482784227618533754412309571208305256757976690742470978620472022250683293696778375754304542269536817416937969903490704973973284218466310558743551809552156482716291777354715682586251653356876349309380624422199985714655425345571348800659184600484407491331034183944831967828626896096591900871677935742306025871272909076912414586924404605498652060507116966573220502159284560698494728741479310786022284607737108745153557353790573012328023655351828837475703952436148182981031459369501729231879955118441087628612383405964962646349156013123166334156718456483623313013456508961262473125834436254792682464030343575265637145120698867386052709338706329980414502185244105387804706354820504559960829470531758440225517834901125057226446694361493668121679547191605011364083031593719548681827115277845283362856080416716031638882460183349005301486624792617593252749346038560854555711882852993592276335008061472529105070924680449355879590613717030192464211378153915122663223869849484119398416289504211476348083775813051027464436545984044363126932748777418218298393539414775261240833934389425114185985929777593899331941151212495809220285675463987067253381647915254792323089923786463175123303762258422293054293607603051905879584048893493562007816060425077809457520830173803953828982317504678149095268014656657971609782734790488674586326648566257972775630595864984405486316900285193309389562132373093465081317398108071362697379681502326615926442255019737175794595809887928932825675616432339311251212056669963666050894041026284252799307937999416934533744026686798014323499891110495831199429971783678732618828305936220578998896232798097073610303703346684096290552549943006869119354850951163308800265271780256362920066663769543534661638575491516364083185514074172640651371750382868924542140569071653577670140594725546932704596309537461175882945374405159104590226976957103547947078009596178391299492849974008131185463005489379654757021293194997896747899781564485923385495779510087116825414138081506024252140455566530904182246032819737413999670482403262131277076280306698139035139211788638623591107986129347636692779189685158748729431790892887098530653709772163424293310700920999493251650714223157983775251297053011994841813153612416650187046009411983592931602403555592239192051697423230531391443048311870132827978549821837881998326570530952062991408222006299116807155164191761130001827775658431285506104012359977296474695182243420809782803883191901012334945850098853294866011852189663939873331341278301190433609430959273626323620575342955745952802089414893290449427336911385084148014913790661733168022936692146512374443916731439635539430385918834143440607660943071545360586748020994233016299001682559463886751775608279449515750586033569859024906771679783543007087802451643987792296210927449892179356534960972899403085880254522488789927267339189534445515944029886053845440633002942429508151509026427545120345075340344840634866845956847398483349243410352967775465553753030370207204801997762013821031592002333837932057153007692155756770929485906051463382143986657806545955261560950449479392784188309305111544858730142072481243167252818190550028131888335275290921012131804119526760621110662361426389021747097243794717441763397631718454691834263922692596152230288692161232166016370215839214898023470910369735453157936774307600241173810604614543942520422636757762792583213589169824225868859265776846976245716950756509477070598275349922403589127510745693314150941437931171568995505534017543573580921098361802366369450678562362392459413976193034912544591495924366686411729221157171902267392423857244460492759484337067297997770684728847933124380890221027539819616599522667647372274677868252393837983327750744422718465616471740995449743032172428277208907227703644262502134738494797246471259223763435505148807517562570999690660544670461547115353061418583223926867987070658707292372008666867311293937910557093047812843486775171880305390305362936427034557279814229685441560258813835934746208797569887473147791448969299463711307298766802096541489064559174065199939579391685891113277057516293171136126217239737243570448060676403630825121734007819866234129745739104046823985696002979081408887925819859846962227342409060416019646524505275265458170419702077473161155718941993708509922491829043504390932149991924447605641117187633422735698763296191463104919530537763960551373262613570337727163721560979244654722340657836113646265386935641509519372820671049270089325445998034797525241222062468345493171817203799839416343306931933252284812098882826420072774045337635812252651568131309312233406982943899066353431985009751263631467960958697958401068555742027562995424235020176266852999914637442931787730472903702421044823807325049099510925446400814805500740965665685711237605449586913145214256111578641246682624331600843120676464661174902839925411786084489382427421688268637006081540952113734223617500886367805430739587830163006935567733071115113701111172778005582649746169528447766401589064375058229219922198100018566907076610666179946188983262372387260930447382214305180640162766439363411117309619785041692777834494434898505344731286634831932304143133625392246106983586965149066057516272631649574285457724638451499078894714638959273868055411367051653533150821511523698325183607366685994785085090245874869015737939401580680103651155336076351906354713002078484622243510335345188867271451759645691230210722786372747689191918246484230782166801102946066457309484223083192740873348319787341419656113304207157553298491545803485801364514043595082732235191635382481818520389784517069348169792982643572926628795013693076720238771422461341648353619377588774590727694916543087414606195130993837478076704647837401640002039428094950898004490719333240492820341101987236468056330428084961268632864952410316792650411779522187179032965906749423058432227985481256124831275412428369918637493622855738542523861413953819217123186329027944472923543160463772903136475952559408041051465693138547181861335720804726130455204763763563361899479159208445012766070482574337673710684423006224738553224920382572573845080446887396454484386238405054625983780828765636456926397857456232407012776992830084541046888150556274590113953673995895092275995013062839452144455113172291986092359295001749514721522868410286640923389810459672094656124153686152644265914998212127529598664559880231618717190310164662799990011950431836513914297958560275903969847867649177416854346978173858357237132869553257517086497112332927793055544773754412147454010445109077177936543510974556491822497706589442785414860827871327395469005004600606612696376259697934911938531675695719228235660973595341751592843512630358396342892675761447217715318829518994926132440407655377782879210225110475454559324729799791060818439647939362025868572858269369034096268960373975402580162871892943864917287260989867524445215224689789551111754040663228583937386697394215510020382196838126456877904645110775056425540217071282638944274722865746182301086606510075558634746501183560501107186720684675220376865965131926802987438303570703102825556816174729316420088521842309251529009521195550892286152921368892475343798601106323171310875148432694214294996647822160669433040799805047260025286055317318394806555994234016993579077848611912667565425472220406762833034616041448349729022862735283648041806549230249031251852092872691324540638933738709632632191974678022752560783731526933818182887911094121328423148917560827192954391446544851739139025028765847287867511083705292732916267945394325859092128676005546406414273197669499652953733499842297072809502228669847883328457827844392278787078225370183013013173554681231098628846529373221063726807177237664946458875992948847542373689364074591184486337987809818827533412742786348903068945089063865318244653952071744512150443964539496976733808756819932434638593816480293452305432255838024846668813188156888614838407265577636473290481840579956054612236701899408532687219832435222788461396212152578358627415371560221277128751199327459258554403762410396045901934678611620450804661408443907215999009049570937651768887164566560691921167969709568946370362859681887280161744729073382781025042240617419276124420686326542186649915831146128871855593146188340394819203093996207988560707732820439189818297673478427393775148434642117942151224584652025808384590429884331109225105229640755087175405191406399964407753928067848153059958842154868337625868848032462648023576863543847216284484176334636595970835077093277646932713482853501604584225208574717162113510300418684872196357941538824023941613550085019552892758997118241658800635763195355387892403390952484902323425325312465627452977615740050395841851486619941135625740630946952258419334936188033632121052065394157153695140318873434870955618143749273787970450524429468480434793885558255653329738218143280966939527635170918857537073204246463890891306037861596568336528161572172967526826795810980435883337591897790377793424190621664180237137745091309337190002715852227503204781349124465903716485313892814945853296927873048696865657114469843349117518926178802798543521815277960731250016795044242187029064995989683529610717935390209658201342631664129758134959082108432778403728362382462321791372159897089595092516613625696754897423719415910517763369788415647058882450156095892360466718392372732414622402364942125482412136393018961974866276471591085007914173707459102902575582563237478232477686373412546555657567236974022826640542027060459850091414941213792305999481360979813321321179827674137971983658210512092674481432164375119639550572783045447694282531739393388664787327139854098850798848525211484621678328890685096636851181332894027798502800284934561206911976597439456031660260513635232479562557043194074559019743157029511245799987282138108021994439465684842107456742432671089101665071818587023938236423561230917771002760192819706659383572542718077398886471745276792518825192146323440209676871090781225243854139296245099954198486480754192918247418972041988864128216805528614141898295859402653383157378137883319206038718162726557810946203217962981946490533444451149838047021351196710667194385719484225193306455716800442477765822463353156280746626977256963118656968292706320795914801033827628001504347638342713504762361973876801279930093013530786558103414288929841402059296103285832202497016510125163487363242691968824573834477478997341437540321124699712598615266054407912241196608872880518232499110863297178943276084154919164278594380400614907799928403962958185120675588204339012916771783928326180315981641936191025880697175747697299861203788606908662165739431092560766718477129098303996240309819438165042205020195114265794593509858148509349907714875591017869794563207139330504227604512680205426797286592664228345849983703134820533739722443336316180033663323875344961692173263953333829261652087888183382572298517010697367410285442842845723834547792327888764686274714296166560524308202278906102790943770171179322392203585027332737681295869651637777496592164653418365134858863132533360534493404848911538455221131198132987920789166047118582882156423320722914030474676069146233060343333483492383922484572212726718970780149736303877541484142850649013768416972047723574790427572831758359377193869289374243621236125650279613620000291804728984869890099232238579455595468984088296322234594726708601512739954162412025124394293853231882758802329316673658463267829707248801282362329266646156622450883839217714724148366037786792942732430624438621513000187266721449773799035374782366417938391254322480964674420880872327250141712254105831954983489131469941576577674659082825628524117233895627310218194245827599194342497359403680192686730099478988235429691660440597338562085275666616270110423539468366030739662307143415929492542945344555554697140998763588519797918371432899629092748440448748411536028327506684690603472960299447381888683833632051386897662819811210037907045092180687651481321582397434512260070812342483143114203048559967874074131537526380918113356086768168121029619399919989882094800692754397927960580506454619723532850311725052984728606850085376430671217412562733742537343667945581944107806438783847777084031158990335805009942736792287933341817150119772247088372008517384404547403380636641266096210336348072839389353659104515023569541711719722675271290485289062243531090760640143786410192739956499248192757988096176534973337392128858135300945221565483462711854694233202156787361981717943587382339444240125236241250325201941801753360142022079090224593650705658893926712858789080338309081213982145299567498668201003560038734021228819354448825161200602740401364445037402841926729111280682468285637968649077795399731018355050845774759108522745037335951219914729667250339096456133225539107091249056671103293898751468976095809175850729326189854856743613591405547649409943764195575904271190919963566398891985261234315207847217302462217787546476031183752177918446865568178546100221612614356060215450316472045911462325087568568081599074067219894715615577472421737020680932963673870423468309385689189076773598427434328066829088004279281733654460780612668653486303890274153037668859137846351588910480499957451410524278256439481345781843171190513780923140788922787946776437089054030610884819939288893993041782023472327523870994043313012958415436867487643745391938521768503650290469499540849560559935524941450390530828566957929120941319207628680454056345508046873176948237105978162758978265233299697384609406760502331798639847614348836079607222140592807846748413972754080328142492701142915659073413362796684771487693909094944194175015716802202973640759534056370208150241573278171863191858413223372677422098743250671016416224465278933619985055928058475474899311590504431387957170906951030193380988089922567620177995373164936540950752059800552164234423204415321558557804693233338899655018730441201570951110032584264852500175348738832077707555924529512510817763464332086821326648849664586087148032333138166128257146984170969383345135494611739688027456077552141611849675847167260030703587492318353371096178791733107352480202435562968030396048805762637152776920728557520703206752919691623614565151111558516010320008749462425199818760841998961901678947102547235338811225813799993014116760338391408984917015397218279589904679143621038184294043631883279653409800327363987312060178562962717219014790492689923607119679388119838268299797146700435109991189184001229248202150308094753432750784551952553990917263949345713849664435765204457516171360631636115302898789160097212694228374440580610642428630266369203281153456750460620853651311686647687033544907729137258775479291296473244388252185191952266206953153226351793569662714696710476741646978578461857691101799578946486113358850599926579112081698850382053949903109905887252323060550307625556813536066122790842646039120633754442230573359233176032394959522293430791319842267159591456633176615036935641141443993008183168874847661233160060664627955470892735615272102133678443298243985479139681671488637959857082455998468455022020758980807306619641176415323574826151554030987596249751303660903629857273528189276756114424069244413648474815168037142865133963509668554053029065979920789510628475649656813415239525985444048556662167694710459682820628393924730005555093203889284665691736854162476918937970511186919663484544237213032347542125033800026265503595041662825891617211628189559312093063144579899416394128330113420271095707643346039807193879639425715882798102225625667060378868011765148375613667971929219257411734629072437890024673114828267380268408699934407933844415326740078645405121158160712325969944732847557918440767635114104006860331566569086092079039950594615152429611455988891160288157575585187822980495164922799231732340411850869395891578687672267498622609497911868318061689134137619957330566704392931879806540102947209648589861246596320683346926067135706350225354344159184150873972803161648524255295570606770491236137217763272978060844015003939002443783898416677376674429042541544744438482163896446515017601805073196003533010597331766098167396854222932900109235358350325616978460206447403304422570367785485449670577275774008190329038517959549896822631840744169341461961581211558524250254797286389285336282405985553677416680530804660657052198120768773402926453478770269015472189744325172803367683842408269593289847537067624986871259078316725425196572655639920651760059112067426698501864744860247991642723081055729148432019193052358198676447124898408364526911766835655835510331870553865121927300137647190419641118951057516161881424623738612632784083427634922485316461902808264564516170216272202169048924974368629140214371816270666126811483525933229324403708411625005819787850279583471050800740858112797428275653049439886052541519382597905472390991240472492078245788940590991622539054842535310129404139976722636665930932586177114374106293388867438157369828292473637958610884665048607228869380311989763899420242477242236160505392233472137330929416732044127035012765072562716520318057349026230486338507804006449208721094217447916240861894537420567954899347846413650740038512718102699093183758104064961029965204406497291843702559968343794060910277436608317846247468918339273684903044647156028112036153358731449898544698088373926749381234655683905818944154125423349320007761623185325032496286479803972369632442835516865813604180087405423774086744161247338092835227551250751600959043726728773672334767277737919012310590215975392725527394439987645198706351201274784322034224007425367755414854557839583397897987371694487451154565840827351085871844853263553608288082267593133387217040496403954033673409137153850788789076384497312855290863919321929287736922718040696651085423329876040366595672073195894493309158217048382076176760415959940405477756639082619492160583367973012217600304587428212219245047244321519707181866924196399964577754325674354676400687549439783792237277946775074198583494041368101088077307633823605547720982378830598023269037925965158493950388861188577579916435072150594576232082012914096118783572599331289483880049473711087409139394639895036822253491703312904536578345815114163081948731483939163467719591913985012421917115374741048231162116905466372955965391485662531657882345441074195442089607848498648062585376914943567771812664320697402868089837005571746993382668615659475352533763704963658066796628579920630894568583464345886885964373217065222251305946727728967830986982153382943400260580575936086595374479118490050501080957074290992888507360246054443731805801313631903823608613737651787369588799393345984688211154089734026557596776979787145879105168368763284153533321241293570811237077434069146470601949988892020384559815966250126758164843178913140942292670437176358038326949207081482434670345764507650651599770866672888641853912358982086114566406236211371898876726572794836862598812132207221126792352915638593075515556582774714718798701857395661285424531845975831477147730847626945635452284075388646314841443935676002791742553433521845819141851738793186923415694544298154939546835157333839246456636029866811378505576950157161478140125488586115131626832868083594686284946479882342474395023351341542886032631875087713621484445311654085742311483070889100179245738760404234062464347888796152161605638617149068147464637186008305975202462530693298220299000749268670886418215223023841468016978588010807140358020282429872828973482678607417687705255931994423325175199320153073616855586906014323877103291109628172432888131652788729496611853425714727643865731376262188381313450299249653399420478989485955354592474157449833235014532632443616771615083438811205777957636306908650739508288986860511235795103544768523537944648855159697405680991461602401781401147753563467906064245317960854057766068060238863950281757935121039296366512283007163850522339372078655686347431520705662419959099566064973241641696871026772817221308186636124105692958851460138513928859910496650406420200462139521508858850807985354353625257485155069543071825903557847255865712857204955658593435470919875546761887492194629011507186753196955662473131533246880179529010329240399409921834185945598269683096977381525375208385858547875008116708583092912722933691570087815970615088811433154710326539537200520290977227296886511955132388637590198497182856949082313231323462390938566657045694898142043488253540475756183577737991924112022602261181915006757041385885393481292350004528881437212229884289457178756164261842137558498919883115807024582083858729847601467914221100147176874130327281095352832604078889157140207352869333036772286799699484708417054855325394026935101336112803616610892696980035364895393299356187500041875217531078718011368650122972857466836236975430785721267948252970503414565962045721474584174430020505113322721316559904203485795869646805395168450969815778656787502127240078657472759347904615977089978275915361092849279844809306652570526320254510754136529779337477468019044460383417381256286531384581040617421869701613177150562276488775828721908355349038873207599741533043928212634881241232182459979254772482941454747965260862572531242487266906942557342959452210678825107617220042321205402211257246748879673918484497740469169838646981320742443328779679148985563251982360946115647494195319259803685388909645720128022407019335095987684297541848140206568146120339431545915014014018916343698297056388711232661348223575543748867162362191572895527359034988342610937449260589284498762914312306709378983168669152394438441328058349714158196820857994521003185780463960055548173556447960785091912397308078220157089592326219204939646413403607708878429886640672614822789700948354305122153761530623967661159295018045566856595937208017678904184914558006405516717196500860048939655507788660602391389961894747838703685618849946780904267775131951618316498629321237034509176041859907351746246730393879025731036689301820938617029845048381095861879567498465807944541164326217068306200580639593254173468632972314386912085035155300869651996538968913111298600927084936250087733985580070006389939082290577768023556702944680908924627774144944815816121752153253830962262373511323328431464560714088302922012279468047500123579170880241013737177932334012278735677477108308606140008797337433990920499988115375248398216110499595896579010525819510996716630798970109201241717250207088706140745720614558773610674069742451615709779210522614969204344058345189361277849964334560510403588081329102678386330712438504490602628001545151524506554718439860771892151942360448872598843528341657858799899254552489916478708407260365679671624824811431223559003257743745620047165935711601311726749641054016154879713523699921579924897995809980445004839761595261073116704016409077921080060391321499222905199330072846283269103302480259226977741002761296797499796932687091014391364624396846809757348410335472876013785282147031904993301927878561747411772257549335161129957306679312889032697796339190383682636117212386516349344294961094049042212241054876748411782163063888207456610422273193393991536901073174135340204053769331166818051661616332348799919783880214977767292139406108995911873091739901169611418765065537173286234793121965651193329781041226824449934393985569044758797807354440596966922152168155802074482438245905223507156826339831185085912981238332327295767901701677988444957069624398471381522616827392013003772419774664375631560677868097428756586670512052717792651729113319376359604040239586253582954018264577046607402759081346235501786170689737886858010028680234330318492608432576513268852388083402292040895164403046485401380403941158037946438493487942981617023176951984863229567928331744125893444432397844739995249243285638275542696192922397851000284006974199664754829470668110968079647808210703278871866266241319555291600668889465868057914877244245778218467734785575362409910341601324225487449528996194511370114330831099435178806207813365538197321979737937736564210043898048192747452271877502798766130649679271455148303600513606038226806208795418724573763025594898097163748310013357776669481055091796311655678227123138590714122652997720146810063792759431330458642583643779548944462284408791937798573787968460337596230398212840318603394359620382027071393181496339386236335182810819075675346758260371406508653385933662501891193623524295569434550452005893386005060557001404045604755819611126949889138957538680703854050545727241521337013613554053161751613281727853536336495702806922545348164723062750353517359095082153905487195662410054055904452279197581049568242931822422072684964395860017948082188172189289742046538203234569706879852683738106214372386670153987952393620985473723029165257848893297174902818963601001963820106977626699497343803564566893842060820218550256470256058851207746626100763566910436773458607928324995738354977636853522348401802510235973364793465107312234355157846565295451285080665843573613295434925824708366325496651403745514556673978400266671866470131413191411390136054357638881031771541529150230596352002538401194924816888004325197098676566590056440984896470735135025132748127789467009645853085045925080746314141266498387554170571745016143639017234342775797352427883532504729319037069785390582167858072181092762393086816625318334726806105273621087876679773530108641245630615738533477001103364936867105858709788706884438030511852221844839675931917218381843909849860849183059491599774214049888863006163259286318395864915898288114253192987594060932093092318736202677670948419663624458331141250011164792222837896664283636945374598095010780552073100504451635009307664660681534736323720998321742181429919701499079672740078498899043227626052573408288379633765981323478946782030508544153148604654092564111110369695752373716667249144564400900892897898222327903491250524068873725786441287401964122820409481980944074588335016453373793626200371675203811350048827788480593356959849461285621154477587049519538834368704122555878527402041015629403969770071686371944054270089331652897697831619413724856906853794380592357407611009084483462666763561933265908886276510255193561458657394549886587047298389674879305713627316805055988350888426337409032083517955057935772577287215997627442766786291901529936356709638214806209725852071964216656598241067670508591997169783137352360852993092716886831242017550197015579336833300872126813124159741251225264119102205003758761205435616455652160574073362966387359459234613568754057867878233305977738701023337164281722554342102035050804749181493402690705794999057651695788260978682941696890420852306620480162351607913901046338963917581072890601659489064814089129690202886863640225989577229660971406482468475815216858687814872730469494012055521489078716511271460523208828871006962450969542097888450433990001039741201827705442999030190185548212085319408868500067516410476322181327988542591849013922865515953394361921374177257820996241099135789490631232349789054099507087012746428404511673667745680733496043944313386189382354494338611375048061924214638208853220914667842009340260883124549082863036487377737199799080067643168174403534117797047506274416160847837988559231145552206917054744410341997587834606369473141723206583862091326938041077265538456383706736784946868477133160217553949241552362690770141253960679240702935735700124223773766747012672523235438336368858027243664794337397634482331282505144219666835597443848838353043786711573187039487547059350306006189327944540849226211023109748467419505712650276445841817088923243546481240329250818248333529626667726345182914023303883870060336162375720528158581472307063914722160566619760284467215813311113139275709798627602492610325486253527128830073987702826269821166808121386401727439091909111138479304424942633229749613008643153127369420779801568828634339254129772617092450788285943884502308599147600985219165528745193207973080525942294880204759794838021032581478765474697011704499140925911842477663949849068502194439835327478863956724668754541514885376526089052556610157318929769396673073226339732084090809941955224761586795861763232881632292035859363034965341112119602044669064978550259053504040315168552200620833246232126113086719044146517331703810065135587012990588640752786014537389649883512832210875458173931643692249221885047583052285268956407420244891198277059568954637935455305384520589914623320166587500881806774163910165723068827244819685794025080052612924752663832029881314413705783983748654799372320303634317529329580401715485654215487097102672967455234567757912761399236441084667329758199129790766328143387533913708587503626311267490786881211678076698880248338801658736172954034230510939218310412019346451646243163947114612808185838575548703572102798842275911063214502948316291836134930871900364524262771665035955162933948971220019709394084767585756891944657746592727828229732094182049390111551362354682632910379742359812914622085954190597919735665363229471663541209409377109209523959746513708247582269777424322564542942708930340090860486269550561211228172230869316582234367466093979672713660916255799487175247976743263458256068998769915171404416757337345966766881089415095955860310097864838964290184573711256567550356062960351571768268038901481577762175509275776805533820040706603511161143545900542369929860676159346562169207636558304848161376347282972639771364470275688492687906589937178988647117837246296436088252882106414257298477282275091928625174463516057620936558436483035132113156461770766937718856977842868154963254075947520037799780671108417400009229178100716028560466256957147977239994023866524600838363921918216031797075580747232346306687407182002042415339133070217089474103765532586739430697989130932992650556977050481037689773670858599532006581358907296945884890999265961449119741831984415903432319322301130757969294922721079631894256637100993467865923446105400702559886892606664107331342037964530774920571445547208131669282277704411634581937673036870443124719021403773441431626319133431580863246877406831043071073882580357292718867519196993355583338047579115703082901676275961559030503458959180058553390562814398380460011462331184875321367277584620789846713646325124047259607475446563537790300994425036241138659993669934446659063300686107824145355743337425947442011569304706208328182766880710874377275612389477988547949465888786211702957821907094861814401544450080255374068096128611431416305257654445713719067266649370557611587377578634200392507586317162190459045563647623854342191225442531400076557741300325263282830912569394772648883195754113896283993340503030602269391632316891973572704865094987619348754224858165597593249479954918660962025668845049404773323567376601183055562164445894049086062574280469438599825583946423166794093559172789744662306222857242335453036857621217023164105165350406729700011889784790272120451717544728875701278472218629695988078092186527972777762475862254502455761527224264910025216549958954587256355131781676141700548228497631033779670775120008546638261955210084945858386665803969791389955375184345485706208561862577054523130488049135984297323010384459833053452633395509571982961029552231827202500793839762520842418600443335585008192002210271067848131262227162527539298225979961665100673176986482510289079910232606863059121953128279155399933219260047001936612737260229853302225575812926115818012776584180746105863944525842353782027075368047689137396159849927824424647717006359568606550889329522299940787930911943545670607004595477473630349547187235140151356514982236261739797840224401526332562210625820072917059296187409765610654000927991012802739435957023204764338187537991107822945402011130222374682315067308402807111757680127392244880228620402273631742194429274843651685051123610013610247506126193434955965173464353092755785462512914738195108269267550119219602461561123735950869205247215825340083430331028783055852015104629890431348956894757996283526789618765006943264928630991385394571024838268905538943246775593988795936716006837868913507306293750957187200963943002636302957244328200421902527496491213910011754672567075791138799667589426319215377461856550177593977415764214275255453145415305655826828218057836097535789117588064924902774494771227618432178103829374614428155739211676330271979166638728448620940887279606429719071711713527761813707072004137852412191753384733660115544987753269875180480773870160924012520534801372275373434309269755870121034353306165491340524884528297196790318066471669727602475038190620415222558792236948615249431672317753666467548032740624162882657279153833240366911203377315638838173023774810157952746701688118506258459028962039926948343389501450334692437159339269373669777829175353774192466594080947577304874900192557418925035613871480367316624795217278199859733531464484435282430829859374469647505718219941689375518313025867150242682795377860689915774756119663836270592208685656410681061549411687376905254390210534651074583727086425473731019721058075497133870021446975310384897716500170195337851038193501907158211460988098001384396513380150486226594323229880129029843257300363122618006167173135588614546542355500393841409231625508890672775604140590763158491582959497648367898188350741162223525176518508184680949939631178135747013643020311499576896753273799627136586892475470631656783084178134008065006591474190647743118129503810067153711554347436099276331224889065608497675241254414745979196552815674004146583881594227666359241310358175031684867910514320592665693577408092325915715915409471768776571096001503157891886831455634441005958578903516240029692391874007667611955156065032324094840510165271159613918009753816550795729864346765953059800179670475496447623021727680950667337306403766124659955251783726126572421815403615888976120008261702041506363229585597148121778863502333338201673806866063479134144459303134744541995953797900033429530571327018831051823188899386056432377065307701112669848659981019853232132521946247029470755192655510286429159454125550393005728504601186154469599060601641354266797627056650655827387645661082745678141164865244139949716450368835160619996358678186506254733293838578639584668591481999596122354086925979237971293078957814705260603703057139772985448763676497284442842985179767486714943608929805890939955778298417120332681949049456544503386390359840088272929862827403109962544244395798705906580894514813573813247846296722448075163612226539259785304670081244837729718598645294960420066653584105853807576517222551891535275196950789102694585817523648418949786395919938328262823231677008263363463479527215379412956006522258628324831894767717570449883845789804743753816525802241414961003345579509361064176626885840295209380490376533683368991499349155715978481789225919322136543278358539789215003374793496919598643888131803179783628690702653304200506876324094581757894588129473362628442884186025838479597263950532341019561324314456523962801552795894818832999003334522714873551548416886838200412333522238212311060834302159055431435885760930296410688027598943818521463265449235548217227224712798762321645137870024043193334660321652551127970790177250663856586281025540114237780397315809878897566206535535217382705653748037565469682411374200532392326628978630210269423317347219140130613723823471699916300589461090384240350475394954550393202736877258153010033740537494964043425168997243543386599170857748333539639645204460321320103911200787771366509595302558288435860787594800961232264746509730174200974117799314024116106671772569532208362544657018178978578961531167774266563364287122219635294253442186674127374477146720235557195836510781875236457415794354350661967267914076022773058771536091074586032936764149142595846486824105232717566613709626910009377814890451782992377487193091871076063504536531962763910369404760030659000221233494348114932042822810389368569296347830108555908072328922996390302450582925580332852548305278423088862786278137612039178785231592946675088825845105584508750174588501911427980042251883505852618772641434658105617559153424046004064286623271334430101393402010925733932999386707726428917094400828098108046190907110693445568511541083747450228241526633763251449733864442557711131599730511282681160098729161280435654958406858028565487045303261651276918943429706535617772465990840187418881018886797712850709309610132226086584581792030642872420723089702613800801209977770448714618774028514665582607418497927761374794251042183282725814538670787762971683270164070276864019495485285260584997511610524933105300392883599361832520742727800511112721008395939847327530010462601706721866141386916681052377637332709636990668965747934620003490358104809359344016168515104821839102523735942464855997650009328896219032549439213613867273580779758035572766080505320977965325054362546920660200293831502298475468550016249912466260731444573692320700649808101401952500262289190118980990561845506277035462472198294216115022369149726858290375857366754596767523330212590835830211106577557339982701573439893427233688400327318101297218123606594542284463598713046233895856872575256224253319463473616224173932884179291350322758859707572091355805257169165598548774905261947251749117019547755102201298923198900856237761897337758315908852627002937741418823579299716902088319455480037636915675072905230916884248978630075179907915092639380528134198361851263186372052792295399715093852061841868507834297582467205614384985614731480941810763881458669070272822929679826850092358349057499351317058599111554391161556171436079850113603610190659777254884921821672758815279845501443160120767564420482973962318377405045074059208515126419713212209457449266790196021968664786641610987659727117148068012244979448144160142384310760750561514691554199154109274498876435123192339370770148205573889010788266551934714193521478878822928416977154439567854999473563601359848088000416073738220801960951010660523152416585013466619213461752921116101715188964482383983531880905425929813944567468755727685140918748606023976216171279845312947920410622695313414505527110206141225261232391285277997967945573579758165630412666346393141846272807027769589653639972065165055615558696064748794193489578827762467899420060052818136715322087954198728580300670825797441549721098722793550961205982591775376259371975673632599014948737734184082491695432051719026050656129777128419806876795303927484880572993861970216146823601142001927091992862381616393018910037626564675013182391828129929696984438693059250424165705058528851431757895504069229126043004255119172862787183875869342149797679986119560225411976710238856881964507967963901206619032416222637785900472637021598336320382970247127429197222067027480540724759975799887010995354037559500865593993077262499200615905595346673427726919075988533271302309619937797981245003043006218926878064047417754444794216523042536570645410449347610542062768084585982484417649516685384432188321165845470818301072382051970886167708181496784568083375987630282761816790745453923013942024791498017472841912831974383958834728098593400456513523965319693419033525265909490790546868775244910587063744272505415740668796383364447857281557517421396077357408919679773394502557285383898695583436916311395266443443740433240961249927572155346995456524480112534440937616634551526267089415515312913334981614085745401660326216237255723398110529393063588966317488764674658942199628279866635606591599062688561369269338363306587036221925553561785794705215214133665085159161040640401254832073050323790659794331293901382508928374538100736304344601306024609298463557763718567273353706441304281845877946737925611516492162440342454075273609766064075988028933888452828747298517513007433913690246359013041764206204724126911147653893952667172043210895638860253394176266256070739718241279385196139964510350217165440218939550614664151012538819271163466847937557391445176931371996248629693668619373946925676555675732781827489068863943210454725903731606975007631583985934667437232778930715961444385095588998066737154928826223989762382268043375483811304530233330617080248728702606136573276707237000402715901107896878128901609998181622198961590314829661809631727863445974223219157761362176047137906423615191098304075068498043650313862585390528831670394007007413541416203934850875745853086479000084963502943377563827600968341292986662455201671813463415523226531559524542303411302891881545223184016594991903689729049242901928276997966888641711801489360249942450272816963265642952609580542032121135339982072862736000892748822797137876064826071009389183220667877529947594640309853818631934387672944558865562541028235799111936696671010160298313737626101298568092707827495140254936586804001021303896337042389911307635332458657756870169325249919571727364623625055519299724827863464245800974053131180072972960408372962280256558769193882692673001864992483366738481621643843240614928870014052868479233085716092115011341514229302280069501130369949926638550419628465367988898030679374917148823266179360053365267859796094461842264200308697372112997456924219660958650639931947747178677159872493939163915651330203244970123571354479788236894588603846837459012311191852823383757261763238621332724124719370283066962082252486610738443089723017688249965426100010982565678459702716246276764108859080472886960086780972479653323367618306763767373530952256722308613654457488260169455461048616053559061863923419733656661202188400109806098235047352480882650612959253661267563493964099041658515637702562813853594604201990593888839989337634947943462493825735492741936908440180143723538221846599953065372689689312041774224972556043826955518546071892900438367719976810055488850396012048782467128047375835454361613656338518853229235211002840000246729232018784758020930823734126200436726350654126982932912771045678952834530002653829662538228664402735435508609294345983759611116684457829811582057086410736890373008281020810718776072607323355110458197577266500610979324698149063236030061041004170206221815492772077461960832981362986532868571986074712238825410217977477166192506702880182202641948507276982704621614311497117390191385782077480888197038459517081990072924269910017829284369523309167676182131171334293584197808103436068543110796172019853217214382210332932930494103353702115103789065810790238941723735319017292961865987947745950864809052937587017770130587759935340294761539775220276087443748043592278867306490783639018409328750830447488620757088282630462488750766099116163013608983653624680792240909396049536888424360517458532246444416678844066703312220485395567647879729096411385035951923614337107197349713591295788373249254009014328453482728986395347709595585022517892453049597790062540511831662820371502060281733778877657326968632626941933498513749144389867171700846185546623451952901082001320819818688450960838224748818783571851922705976331260378181217900809656060113056348778788969390193466567134262758676574766484892048092365283380796470912182310713321382363238863798098295600006953974390918684721273573101748640444863980696699400344676231317379838887326958376190658257428977462205948480703296386055346558756353383564005931156460960351699201666720467952490982962150074634416584390789110375143857707140181650858274169342585792405960786739908777653285664131950955407123559045545344390417239521497707920600081202376118361501982950047906597274565532250184705118870658308884746750075797290140391383381642098536058314283619373599264154958441121340731466328808885926045124292721401612216000976295271954645822578095092756382605436873208037876575404153756187160040962388343429736057648775117347456597759653477076660028401791357003178382538153186375655996996662826737354396878136717973109234636826012882475076183475492488023985445801495154103595387001668160351455620650172061219255649621550513437465921124175727753517724620307572002322401700440654182689416534255492497203964649779760621307059652863080240732371504619761581521727021396340500178997101551154725967924525368759355349575034086962507258903428188742521739847433291626411353612174684319866679897792339829555570011960949348331551114066625558257059840308783186110867693061704423232573226041875520953671480350049292507295154337539368835413982119843738004140060908956229786870602867731314772676619124575609480094280514033807542531618102102572871096721059620122635525934530586698756595203634574791560382830970650983718989659663143626949068502051155315592247221500685363557869259689570339756800956137454182272569696048820343808299827721844773294841595418757905343054487294643750558572000772429850365298509470740844332851363868445429079233951507327091688976588979099584776224900108262756096044004704368499968119511220896359999041777860643373349536972967445516587440555897508560491514532705294525596681214476521812129428927021107870107020464596983296916220519442027153763030495432814499566162572802355117021484998873654579718637589699336630233576138642046589520864440538307432365181623966211649519730807665380144614249611297440405619478098129376650927202053876865869858793349599073759301688804452482149115581635047983964198865257969430145270722710907813674193963567837671421859693966708218333476840388299819608632619697304342104219806759027233543289362787693436257138229407941455371789263647472694119432508157225414956494185294758117445436856414723818560962150965088155576532775759892058789591922042649118574717013731576526298704919044164294128738694792499658466521552650876562249694924564843026176932671747596482420925977485138757853465296427558582237587102348552570784693664291237931565331467604780620728933911740580577482839915291857251978442960594989689647731428594678560636940985578922885561338592455029347326453712247328521800090066009219843997047250503392944859221362453964647873967997027877985914667822436691546427780825827113450288917994506646788970790056678240688599781434774168729486977158933972675054351863227903933674184023080710717165644313091617536202758933596182854858545917541756513156037246050976849553183702961888962933141867131941607138335332476384514283237699408996944610275014589509929755109381509544588496404421065263558330057097525815348498172551113498973043760836267726410991499073393372210593510841889649033414514871044756239065673213561093847799865138597447024929865581914921992501325322303750596073562982317753251865526364146575992532863233911406587265492721957369532627318325159399776950255545742524015573123254889361707862910567624652908834188488540101623368576893452158314309464187266777827926799222968039386511751288247355768883541531208572044209961494632583300965359942306002753276379704525857649284054458581104335756177744917723070789556277968694322218607890476691129980188258236073639716056452460191387977154506657560369797117719702420367935994085060581781412682815967139347116930497816264529281123685268315435690401106128901603843036963594856237360878877536501330683070329730872086202374657185493146154644442688996615585473413985492282326488888511195245741313315037079087712395648425132202373619775541023785398534409079212125083880632203256790773603007716724096291392529803139088066029607128489051732118044044897358557286961550220447072394342533032643716973176311781285303808659973173555025672833360458456134150096727188742366128711936507717638760354552949442973549995391068978504779034755211929834549152119802761774375907294008381654874738472607105605110959118859472890233396363162370218199242384817244684079084719175894803843576061457379545665321868148481095363370668906013280814415341932974800865121566673257523373944504409133020059133811156992204859484551441584220549984867177239198595363504920619473311062054640250935736024762600400311522857040468161185026957212834334977883035312735887396513015410822356710615859064949818682205963526735657301387071798991936476833248182322858628647381904095348499487545374331693882598148925745615949492875111934124564953652051312871900130246074280362452035606611066910861839645110791861567610553692661389600990767946272911403574143917911623436462080445258371253536246877587221567205183141858920033715806280328327602427281482973464566898046043152969119575672757494965654983976098550556635975477169622287598369185313155205493617293790102563436658456327576459494778779477187428097674033057101971933615339300779618414297765093250384185975856201806911470357950799524314913902285186427974070161293590762683235355630702460036313966442761002392499521513479400514500285842081475199249067673954370656358733281042775644210316574362664539131021897118228268912013344582314636619820391789799087754108717291545851465013932626445885538348339585553271801981360343504378124200151254979193899593181568355023632208065848751770773556070317011732399068201290412819393677403276049459108354677405186134942259148878220559144011341875154958522337160175623791139635296513392860852115210863490692739882278133740973840809752974742100507788368237127010432558607346380867723049031748310215764825774074577036651686718008702070377938204305625490013647074554560219962635937732379408208608091039305254022518287845367209948117988638417652059404408417715433698821963585683520156200986364618113518738269969850310060663619135666997318697249356720987695355385954751194858244783588218613744782012216429762442948836669849096977398617783958522915533051302841364837486997168180290715061169243856340352919112286748643926767000848823442522485009734082532030699517724994214221794615966697967801454747865083293966421168174820485010321780039624807167235436682127110008139473468539030600532061361758859551796187040826195497785110985209793309083166121755390797187560996438093961841942213451314752447328753073031152971170394380688345558374308173246514889782820660930398965190782611451367987963120340831697426877213565065709530072834600933368142186685244599735108163635148934837450166066602805856910533103149066254738209470646543662838458959863230780949763656731624523451803920777400349935593736241136674401635673383867345603724856306777270610783665303315891850438166727543310557087087340899652833433726970484991401424823405510178878823795623874116345686368682858096874789030445824431009259776946054490056589920752240603499368420914949806896704020607091677870420864539796706682741238812775836565892032235079222562273555156383226960326028011958071104693393339996340833390709119259665044024565956914332534542168609515481741754589624907458306257045943258909648979406757701713793683793237022006391271817309824385621300032589613339992760839300083826275445200518853612277567294089280571011452734888189326494771003130981746331629962527649870470606320440958843810512146224090557660893728475680438374519904284304762768733973185563408039448597038541594229299255365543718012433240811682038540746555776496230510569459195475143040929556857779027011151279052035517018813262540381942454227378430616528437351936563157618002765109452101521065411229793915588855988466307303097252657938656364815440993021901199666364927832530067737234631725057677826395515220372489701922032626672382588699396161382258161520403373364282107840243130047486716846408706822841327891979285464205667573692409335022893630317649099363099321957090973397126490370253088793746713553451222401395166363525714468145509877609805643802779538630527750887092894773102890578580949310096764692750655108418794747265455492644571423603797625252098187498041406296535313237021802703730435525071845566039758207862527286749643862860310910739384979210288068056010700490861211274551938061830130785335511124110663200276552764897740778391609710228110203604299681603093144757370374206468898049616294176061622053552172748441956271992170956862769691248748770331222182765360457978262136547716610269099451416443795721016450250896208778477590701170473239137728185178967885536474068567286321675367106901221768443807943356762927464549390445495660566865894374171920925396571148437541665476742000592373431446814057755590199603276523973776952593639759638836777452938640270065270513410465833104154671531655286935884136608676968634779300143782256922691995027056987503662989607659916128203569292254177281223789385439524540776108760317718610783776599089920213703885427441193607462832266121882924700965138663994275877467727536578882157782222708295034724645353458258604342725294473436030392065945676720169644239562807836891347923041020306200688761465544200401394092788313092010841749576146380946643870483633541146596082666392595631271865069661919130975499289005580540561565220305180633846133421974946509426616233994713609106982536036626610680421608823178252327260783815296008964095709456591202193434644072707318584602638055398032518410489664251910303855862366156203335565125763713688905089389399586841550400867936016186001234678775896312719318230799563411351909894858181147104734558843758682173103858456070120617574436314874655175730868191322722035437555335210379996584276437578792972152916701406201984956198793704213326435724054575407299064526134557439060050832710225003315537493790772396993484561675965100941025619857402377832025735068577632847794343532592007713296590030249763112079693937661357162124394063855892404965026077481887670628506015421726289917638357724530286138995193582501397370720532101703911643230463335948611280231535370500872109070594892893960891391576931678220462350444907873659842779343595059070423845130629532620549087974660540170250026497734923096498007649071440436787003589367186616699874961082891006932034697973723032799376476365705412575946773623915471912460912972135132056689358582641276639816364365125840232647658962680932796787777151498164744499093352662155968224535426117253456071851829960240536104565207488334818597465297137460235092637079338906737137686748023961821442075220635989837850193873943336893517594783246311376868917231985437956881630702465389939589179396512923948546470818058679302804147089158135036384087361491660976545018473320830071260603351369194419397674291791057101952487268920694478881727380316111813836996528221745213062137335801132303562712732081230384497361408486479362900040506201007576341538161174508773525193345594605279760119381375380975470228890652794245211732934957030090916519125495191446391925892713664510828325453249661011123605056978514070878605012151353372064127956766196620163540849001822647538567874496157663897246953200910412947849678174434577303828075365125564316752011144912643511464526177187529075935764823574192506855292111956460000544497447236267976007225312683082380663155949653983932466100816808422176984222314992308971894466237619833252627755693836434253202979158812728395702438595769548454388808838928537286201370112893431215000630827546425681508590831523940462192675579701065640068585506225571413808006311860582808575495786192986159369251915587392135356409544778162544632760965751648119640465930992350509790072410238891441277399908955442998313081397935025415778221966873050049029484174509983537503862598139834044981584353784414819764411683072713071012633494027697979365941219119642614265257810809426119947003241054207698441929959329315621571481864114251821830547327635321859611985076393410551422084191711588182563471177647545874944960551074283223588980349027495042957841933339087894885932089111755057426378703092598143350348186830307342536450625814005794384554352148692373299188796295637950221233256861514865032289520476735278917970211461778667818209136399814630826371686353272548051897103916782001352037730138414592045879310665159217713442067751402752437544241053373119570614005293111971437563873094080872384538259421464049892871672464839667401251900693948118838270237637821054957741356007151827274371111856903535742874306459167501056715628464131510928051493964687941674855664263491804750338086953562710826787502770739688747434916219982224147481717524547315578842987740337472207257305395538466944511977094823980223647816053111993308877747374133834836814404976612008438275120409212207092262082193349335403937474983765432993281408792085411698774174217687294292963487304370613070752419726335001267412912144482190929012316794168653800298530209886628876050360538591220804994354849619863132908964678143665350192411203285653983379290974830319658617505153342724698457754410489392082250847611687447063345817783109179420210241168667836530561542801850836032333265360209454878312532608115254748252196044585614154269014728269739669721445400362287880525913776528540977149870304343220001222739296444927581450488302301218853780254152854135890885520689542047706883022479636580808651878745533117001111618346940713309920508389793005866488368511518570915587163535151850887648732016990681124837541941671812332937964068218647138769454499008387397012851573334860081198507376267091477018061459990716241115776266659552459394611391061787632986760399719165368764536500449134913539959180202553518614460909158834328257011555640522971483852633208495385905200980995137772857490304654645788361396652346924801762526968292961394988548316231944212579294846954695412117665144740597540993126142059437279725225909651900621658505948440519428604534988506438232166735985781172805538129000912113990450506204265261222207986804818112294814200421704103636681149229474562857772962484799263438761072950436438007157033862654205296769001661419397558281484224975558017047526789028616099745743345504141875444170007244064758117856335471925888652715400425754394737066856770859146242032668950791556821775903600508367670632615449237737576934462790897226146683282483757424269102177851589292143857488583900908102507270533498428384032375328620734246085515057340984443306854350827530787044036352145802717686223386078932212723198183793661762219655884394155566934213251807955858226083090392111425634103525761517138767403462491565199295438836217487501060373463838902123702396959768171918346194767673719076239863991076610719094146771445378086644699245548318784025719361084732893627129146134735177777612637102954710633734053785280955105466836498462000996179905883017823433938913250076122858628721053912166455742077109150940306065270554641681087009521015230261903387857462271967525815546771164881324236507053160750317760124133615013672282138182055614009732209876477514605893044405164586859970054680043056809031445847001313869353406520360163331051600176321750045495286956183920512395727201869248723379583945450568234653148707277969085938167995786586906550630463440218261144741324594181112268725711193160718967139901834633199084497904928069518712025597055197941415842151437396250244029591153265510619737526354534367211708452338628882665046761535355092984093887845081256900819537735060371195461999495652726174825958940413221212760827430139771115387246772434028828070949055324558824474704241956123352900621150672427579240513863204734985594531238673226202599968680344650196665140583100421512809157941432772671782734578140162734514873680724117827339103697717876007032170355348975686669474616379262343269110181768249466395072139106578683792919698406912554693128753400787476891709770615228595060486349608819101295496065550413878014203305835672142474050895668178287094088111423274872424197971175168915625331338736156006102942842162232316373300234354541614987682082087881288026110296245681912044458623708754954953343454880409538503666379215659772591870613276470367974810411876439063221667622990166184696687465781993456212786636649776354936919739472083036998799770575297996185284407688706651707881951877328769547443841339548656682988653169992392691477897694138276288326662188082197722511342225664027502561442330166157395242763607834654241637938159051575683863854569480425240513447052422150782660473295263337196855379977713685486793269373836252674652861206536885910544177090620827520522156630034195904415260399655805022296631839235965354026257944286928133495601131187597699681873132432925506129378091879878118590182762210117089497610898662419997651135757983838274604076221543441396977819029591748544116397965118000302687079369806104666442293287924034440287990828207480329716961972651095475779717404942084644367427291709578873401612678903017989657473555647100178758930995168592772144869617972584593116385035626373858834610747588091567852433023048742488967344708046719410327285465216956060531439538773583468414341153241108813161058807001724821770022790762210352633140440419034269417535142299045073207501024953146031573459445720298314212317500010837600601104926361591953466309912262739808689212306236885356866468242261811901779070284996996139629085620722104199604379783892003802655285339905332431183371072159227025212991006815874270224575514074104882881752289627082841321292427689949736164413341864591251372857121441147067974825848713639018953074575562822954900706296296910388886479466639421365650842574883062496206278648484737216310389470910285778721851285140642833420784460406843289213677700822458248554698206123985362308993975319139122209536750007236773750301236799275420390846457884072921110551215030343019547465250998426977320524109502223065526288359449768048874287105781798028757965430180804495499116631066414222115284638418239037387617721195618600000315862122901894684808438936448414261826695359628794348661049494406598774124472645424591072842629839371217752664051944582691244213723076352961298833697860407585652932445840505892423997580832896124105538912925012729962233505012289654471477495387765094977431414961254668581079283156519816034866667504025529874173960777194294783063459427628937943562706754474492551973932428520871127487775829049926776119096134329450244525615089556678170736674301877507728641726741403262949360822740088806469008987725085569579772215031970927784307387834949734794621789394251118058262173147924955497005804228080625941592433102027330987811098151610967338143235534758676664436421544385824624743707283460640340740953040556524479956558928285098181942156540714133695413428678192185363576948588813361930053347784705519247349343993491968795189974954796704363025512943741678691275506917035503995675934715720306300262125501393958488239672659310653725656630748497397693133550396811222423235003852600888191034712004330074187358194964384755787803319181487685374416232375220648136112194218797249236759972535551791971108249978765156037793280242540225559454887443007749862488411418453916576634083999086969612428616907942272460228133988299408284007459549071188112132174082586156538353165745448476116379682669229804084956062066185551960993455808876567987279061006323350135637929049324260723618067534093203414525317250914940576278646828966518722434273474639845529169565438618351151190382019294485712518822830486944169096736522160325655626792793071257952727992098266974123238578823801736511056176923897684236208262264709662636750102335832644128068219260915392611463435107730101392214309975098176970807625865774157514792341613668057340971198726356387952992440775797073607823104488041115578045303375807444689030023036978618202560071243070954868088121399705282071772357624718494265419471721987805253982426287680270221311498500982716098091823725759858401219113867277881434496643855115028239465860990208968279097111852661158306294950830679850763967170694464317553940929883434180976647662666394985404773850558944503870495321182151603352348007523645589493658662808124115236310620915410740836400891480194902954298319530094618843312316786712015456799774928652023208910255504986335934177358890366651022637784132361648813059057349355722684412548871365121263686113839860066622331885156996041549228497024505923887283220737583245801978456527453231294291245501618041163649747915185485187567628506547499288399094871287760640782275772661313484934530128621560727963950772751125710123925869625870657915592081263201561384082830673045190841647588157865797147077688991374575106652814028408373090080938930289534081282828767873914635147835529561961323244081277001164805617607317516998162268521558781934131247028128579748255197004163980915481523638454836473137726978936217945153021833836975569679207271244021302722509570416519796220629562359484914229649626714031839982142024928814091603821708995509155299942911406384653640645009504961871554605677248155776606734226980154612257582861767225886433018284105967910243669166706481970900185815221732656885181176488939449793237769044705250249751582010968398272278057542710847812493546791370010921951358871795981883525951425330128109916649824365937063992923361673834174055597238023947007516704369068111782473905461476444880285445726004563275968901550736302221110646099945620457408844439373298981505602936746607470881632287198041790163205686864308513837616710295749552920657134521415546010648930468795732166482986040950286891923492297513193785196906082776344885549007639440182044477442121387449043219257781948012464285038629584160519168144002533430309626462447560617424570241549801993253794129421581285115526646085939854173781264088081949702745003980304425417469289292293070126710595204931865649221501197608682806739498332454787660746786637394052538835265376831439546197437258099901063356779506448829206611269413556868541334228616768246805877560961589963560610937713126345359678539346531774722768666217376355099613813989778927800492767233292012794073486276420589056889876324355074069549824342407780372245481762432784532840623730659285832774421160583744964668071617074617698171344871883147563000268614904414268352124449639951632672916368102127915154541602974568507908689323840350415241259299956589403146767070033788749397367913980503481447301896725239392709862981707906333400229738515947668145490499590532025665054053816437322903046477182151633307505004583524305528045870351373171491760607302420774349883213467577876012562899199589144116345226395492772265836598751573431946147771512242556970649831849626881563483938620632313591169933819194232122811275852834295452064315195725456372483397305932511137506287858824899858140932072298119275763063186985027921178144711426398490182016026617134691451856325964531299973103127783533394587026158992731051600034781998333175191200590105674643901027828682661951949306099415897641270832268434503202859344023188667616642972944587644513736181414615745204602587682253086853034269545649635973931371033329456941809926011947316960190120248204195652805219327807327304464114475484120719848607277577934922246409831791415303412599995086720958195453857047894948012785753458046282359351935607813500121142326501855725808376090484060929478424974211048787022310766600978647287363002079321244030943367888262418972930380109280621819631853759485610679689932759222474244551731657794880008618337146117402218266197147585603992401003688082267421388670877715244082524835173689554984509559145363373968826730425694737445099241166162961042615653679747123750273748023777435228198615890827862871310812023294749617220401056857014741775640508144826028349757201592772723804892665169935763701268934227885080430839770462573404861456283916671236426184037095510305002041170682308097333872752429000506962972443986074118108538987415659838987280303034403602552427828269171639435726266927874122634182261524384181794575441624988270041712343781191467318873451928193612020439689503505281507537151842261568540230908357490896065738407791163364522131471007307289627153082092285879671928610121112541270846298046664004666544284116445722596710189959507026832526845521485846583603462622751348128149146349349971969351994379105822693715267040803691892418926263357333746174940067026156012615944677487579346246208224696184000827372680720347190632698090008411636854392025015930432738310076668478287943563153867076565626560057402194350333520794153060455293921765675770479398276883746828079619210219554646632810311712201834776865854965868422757111976865360891921967209777440120258690192852504842039844968835323995178328526692735756700899491150085878051575871321054719266876589112724107570940660805317117245790009735716295811550313543973467709238414949248598348622991793831132847041628969153390669356689253506225641113037568721715714945393112629460262923324566088183141055067399698271187940314967610230005244421911701707317228069975023010570379838570894843060811737722125467164400215560277995065037779300306334239980092041623645314693515098230397284076085963776454467112984076113816240819119986473192645945209367602021300288304473689183631826093984932170973534344809796298115137930421242499675851746255252728168840395462637503564234945148851728413212080669088378896594083965267157717469856671728923063711394818378990948418719976233175901741081068619509275424570441967351640449814792899612489897092469579166777487281382981360511018660412405856872923797565928827032521809274725811695274430532114217808834439416372675457992916133882724311269080346023028803721834881395539544351357490378658105515986214899885956691910010174658729501284157103532373509486371485624352605852654641836313381912542173444646759908118622573031687702318316436176355365581505396537786625198717152136916758911587041408356339554677622136518092509166857916829759442882319351075288784767602816815819532560455993375266268451078433827740783639570910810998538431865698309979683153728297005066193774501824534778573025491167122905306428282653477832384495553787097852873678775278748732738970077781340974031477813188097128889504696603727556978900175743477682078756273726180608820164481139927540121776470318091412220409131077842531115181288362146595891437226609506109249549251643466713437855556735366413782239624482530538855925641069692769659206180430135051850718890761757129237710795206055504065495212113632208930567786256920301152161666677412360022649323393857715449466708205684100191351164949341057521558144946556061073322041509531344575840098079956133291074316766884675715593087305605455656901284562938871355924996729044955199011412397033234186314564904829683022338007382511855129182271603776276647665121353881063267320323647127203236508336540073072021006660339133756639286979444521510626654078547246191530435892398629011306302469909020338104336224163030024759361003956571421497236585334748262182222095986174793456730536273052001518986697587267560329612784036795545636378170515625616607325345617946206725839236143070994410863902294387267122555172402866011259781396270123206436159169455594257968649460867381201650451115779739616071441593697487752272897328425994973330938092091741253764682123071176367267453112410707453585771847131722564520582966631485016605409969029062338235274610171656273085423065465788150195287289054880494882144534563371504208418833558037249002355376283262537111346362778082887021545193750148525351496567058723854675570568268884617054737907309707522835713065687788918707491427086526106492315637512238129939447322369771352367541843380199479582358215893642143120593804441081727270080060704779432392404876962906534828090514481311616116975337638190821610546361965446380953097602413704808996886227277486727794751557590047377265109535306009719121522990039063712549369095476019956134200285839073837066790666387611542878687263139015733519919208279604740736981613801202989506360600991391712724579076704373592633131369864322849200219961733382373781163003276026031284914013946670581670784983658076738145599752830738199629367392220272270908227651832693591327884523621274453712225390566661945219517782744161713206114011384401774360543935157547200232853170186891854142243389189068767770908056112520165453957692794468071756266032185961075487067766704862529083214932054927965334871004001065173827511106620676123821518210605553260179661669336228629683505009191190646129987500374207961266581167752746371517739737776500020274000169412421112023585994433378759996935343402864287991952067835906395111581350572401739622880603384832673461038820772949285558733302348170955084369543577272073476113667758200928652067698633288512045487376710545168452390398556555855694253674074433014840151520296065113471735665187187461715958890716974458274040602004097854987479575434553807652877792867018451600707315805982136806051162459221462704430564627209659763922643848246311594503180896173608924829476667542942624139435846375972387922731806568278338892423710989628992599081447816527723351016882802329317572381568228564073032759193337326077486085926598872837773125674020393960638232820564640247936511685756700926795539757938151011788666434596955155427983191645886694648931439711989252120833864442005985011058312156931249788044191973690807889470281251578610696061393743510557645508447822258108508470260078365876245917027504554913858090235484556493058411982115632286721198518622658714774781373253595364979589930348648902679822631393156593167091945822694530621408953389002133869902352842455040747270851037472889684540610709095544822291098017449909763105159191030597888509109923898079400055329021061226036392071171117151374749423425197567741984786004255914226878949035938982058641032663041925207133671156798483853103625014951191412369779391709059747713271219701338421223561126170655373652575408461302691368534905237433788112429576709998319787653330393257553352001393550433130844810985179947032872704928702432770346584487361733725880460514128808417314738274742311501368071939832601911697728132445040652934513724179547694846814083825738182273669911076371383537227706617253648596835312830067131529520041635714749215436409050127539753355580451926790164525463026373956000201741425819302871362780605119877809948230421857338770043124365173511142956428210293534442123923330900288108402937433689227631090870171945938845608787263346871866680255928422266275581874385461612714159122520554907304098594991603655819338448758821728822744530901660497894295349346808015826457353932179872604382216632606233982442530407590760045418182161656321345784503319809309003885361215700966232682732425334258762158281065840224118142010553753108578910121669507220439606681056331755383692872933223623669638066114073315301919280186055080180159409865398553397272532291041039096490191964276628802261252636378324677212844428941940307947316091866318047669307158319011902549653655669833726513170287452242423833162519806017068295645083061072248491350589468146566681965217658573999412310891374161039571837825609471379430860318903247586897907138957037758187493747252551913125849204005551972276873475817566385122612906166977043080288437099197449378855522558069438603942479489673144760740718306990011251972623620323881430531578757097098981139135719973658249249475057673372531470330356812349740940922533609196829698851622951431020421306899779860608131316888401809740278700548923643297750103107831853174029622746583002927740209246938820234500459401713570421648778370564820598372562855258966319652601839623720990835663003220636934169900514954335108266971443152506073062269668058389005644527842710239427791776850977454495945383540820000087800807498350214684124172886060502010019835635171483064097748054930115994902316844370735658013071804787298509199557507570105325322516973565302648793801233434698287809648398594505024502504927000489082071076138466435262932408492457634434402328456210972649651891967611772566416204143218543201832634382287294666579645965396495332230610265751651158187193476282244622672986285644772525990913317325571587465719049339555843574886698889708926734310570270867446472413531573931316653524636076098301904452248786301081613003040606444134047768634070852921146048837500538082645295201035906447493726621106867552950923328711416752258780537678900419962215904450893882701165421740679463298778879141317177953382611275288427872348007782968401276104616715278815306314456878670656318740329791471055874977507662577211674609906309255037608045084609500729784695490409063162002274727239726860163457426819316882340445766142004564832083385141393126353138409985406873657953308891581922938720239820113572892423282428104333332634165704054229284484555454507124143484457163052070429283933028665692880315718164645081818610771697622256941052967829574125375901851207626446666996731237184492037802511146708671680093355546539463001681889620988217927275210156597247939973034644431546140891770502725478510123629200499038658357455650865344083119787048267815185572048977661375361016573929345457432250871041175698099516373274538331037679017496727364624786649864998795529972521902651231911730402662271683481952581329155556894836641013865939422560657706121533841908131825470807663333662120849665258415099977015854842264702416059334774635481688575872310108096455082272774297942406853340619845477704444946671122103224578429563990312756662019419124027145193534553489409724982405210220676377070903937760087944218365282061906871841826400297357336536684736878621503519790138597009377202700840824052952490146980331734207774750779814237018577188815900149967687863011823841732417863121487660061183741952785211900539102538178831793734175798947944073832739177385335219318945720123093689197847835408071619245314472996578161501898248020171657902476884127564099648962276806751479989706872306984299590988069691039562063986278486576247061150996465181696890679159888095754033404248492652239462757543735701887187134740867853987113056061189053918308004427374422940648236006364995981119022725636500686090247187962142059229877510898755072015425050880618941009381914519681705467466097163762102554058247243787484079932099739388847240509110259501308753854473490118732672124127867437326710566287724433646679968640108115146296901187230306882959759911105215387916843263999232831296129438832222886656623386524037142246953206578308643628825468238046250495323510397559954449993080158464568584473095866259963233462841976440440048804500951253395354750318855513023252141696772170972049616576145294105128262162191611797210922149320129344774892470482820734178064149727371375873054858651883686384090353710134209306984358816487812072777724678834701693956918823823065407119629092637612954156708931524422460004176064673652695921019125678273994906938314518433954631591475125033084714382125470009601816757728282969057687109942810642513366066447890938151380302137749622436697869899599841244833739092249920146434679418655953020627079183900020334372923607700036130679746933491591985048846565498167204473538020227171882608859142734389896536595267886660870493268364024037992197655757512311606397837260312891620941144932561799313422946954172405689689426195687879681918831369987723888540399953037281078889536014156961100116713943646874080343500356358145777046652547832993812027537911933033919139433243281095470212109821338544626395611908809555113001933778272401818472837635498005582733135665954918661334318296026424453306588581483442149141695610589310237557796066726972102380586705264080960161697494770780858627095617540840210327742109120329108602438753788565695015010145782532160365967310914356672860957899328259265123022728412283545370743111791267915521439123772974751060388715286733518952351094763504543826526119430619083192838964433928573015190915197410720178017759857606751421310574873765545658829365525560789893291944939950715726467114829445539370539742751019892754229371348967036659021287141756361709251610012236978297402750700059526379424185172195476447795178845605269446821298885374917227165419104517334167409304907721906626061292097089209849703930690269234315456021176581310403188449825623804323223230635887252549931075754658935871837171487813538772542934302512719286298206236838611378244426995682599136916134850791092280712452216613007088723392573109424294514434273622398576031176049592214139851626760063249490288924868694676083099469722284130448212290938147488436675993666328519539816602455150666837493726471300062311581271071178433589234714233444008460440437001833952678614398988974892620584634162753587671950140435740949904588205530846957338239833848708816321250109099063767985221153628434170373002199988866408470445254109409745683061982139906319854106260297412664802347604054576236476913441845007686202410622940078726517854389572078477379617823953135543065472654558712119594311779612260346806944554033808729308390359963482308235358639180686255519654767661621717805250693249169253284669030761658490364165269216434753742495763268403953908398564901612109271094743626547227289715106571540987181925843627294129747500275939709186660879709958842489476322941190532565127477639533190617846936062390159266066902389135586354576796444567514256388644103626175510191794099914432468487329697830751469579158796966728401332968484505665276414836266961116478448883293811854305399151518602951107036524754060846244256563773286311403645073206857055878689597391710149458424445816839980943110987634563654266563515102182158299451494782592320189206975959538366359317374165548953745190432072174425628567399072421596036666029637499871398452996804847533996285360320074574652944394016060583092006316120796651532852320499367211741300550593598461640287608211653920787936283844132774530627183499808405845574219238209830076923164158517760350849013178242370279545228977371730292962963468728691990180518895768465079633285102957507589515201751938738086777808676908311119492618227348099230970438067379187846669391951200703611361532554479289732110085017829644494748174572603168075711767035781410804841471681080763618585523137148703658614281115061573642597950233912376210898798220067414356560928787718397592550644311277023153470370442919350875075570630186904596538454094738893758315536734912975494781602973119489168586550664925311888803320459790648622368819346867678815871546259308377620731455316266560965759611994297045025263017950742973198680276980356279360252797807831405556043923941171399095641374988126685443744506781000857906560769821133642582319489636045293116982227862185747455281043936552647847406585189245937179286129037136983711060921381818811850163173898794454106074674109651317632228779693799524268485818591813429298918954314438270591456218388517964855472943696846146835786895496244724673832380972486903196646313350083351083493189676941248514203831062241931833728190457066015960788548143463267755411932936626300116293477098566816060703031721147773288208843682142609133698480254585287742585614745533388817403299255923271650269839573738419688839847650979558350538762977131732831890357393832559906383028546875684949992148697745182735754315907148380164902303826099332346559849474916507174993809937598433202332904305554904495094421304528349797479391147890375230675919261195176451943426214090186320635878022062767423292279715844178692794565288783615527751603736959777262046122259845953317282810357230224562203700602863939263221272092748008715072383275627445881950755377052964660812581932989636898849401883136235591528426856409527205112469947468825030756522415433217465761563571479717527223004964136087932047760264628363099987665090573968952952899100492834709041956701460359624347266038710183589159281418132094335429858750820582458956431757792140506460598604717404920391218241592393982198533307600503590684803955553060143537282760799390980279386622945208387954546867329970471285904898425219118510345202826113500947454830430500335953106130469626980469026347764021187219398483752114310210736613976588969931362021401767586576409140697864841618652159446084917346213920813680771439232500827759622996354817573054459349272168077281757803861021473648373365608251834453174796082226091196755342475016812768184467614796880804837679374766956469383088962125869928592734196818090282634839953025534109476170104046234369036245035758422653178187106346081474370805230677109459555741446467682770914051358611264782261500237822148815728169754237775448351202275945634483313618469201935184226553269068012860100780451190200071530447374713934012031162328647993832134360176068420886201909945779419137087118926383021002960181541779039371120818262269614765217625275135763666117183711326317431999349492999681098525109535508505439764283701915118087411671118743545561759598123931180666673154245266702619123189656594197026588445218927923337081370195035494792618377565356834372961433160935610101903807650147073802256078275866852406638567344801375520065512407420517716404803463163443022253333474145156865500674660079056675747613333494451306054245786499143951387174271894934508290883875623880795022131767492274656427090931291836477843293247647097227250126073263475308089432513186040427181552429296519537638146510964913506190751428892317914823057408432282176025157659319706291070910133217665690903342501663242001510169820154810992574191076646723279181938935848234548193607209956677380276816177004322763784996280411756865360550462994700604672318460993281293922287551466971040744794180256939748028570824344380993613304463726243864562029959345972262042389422220005943296945543828747889113691442610059319354947473996785174601380299959408694059953831005606451444360797888367028819431188684937496970948609276844163258588155548428235695584207372464712648788543109316153429813488916602500778210810386579393629700815234236094636266385068114469158114546603985457953847944475561693787629347749519638252595211271206952372707300034565961620007392455263699983923205680977958025268679080641700845113946034834533271601697005545741420178840530438046579908568833377201342439008739752984187974182464777389363886400688945927334562419914190057576880008349118127387981236873772398052976424714874109932819064824437229829088168533141859904474801323238492945870118667134627105326251686056279506876603755809607730002935109638380575261657129245013291480523386834064710867825911761370558046518031468244811246446499832475234314177415051919069662167473417478685466641184240199922382145195052682142266402881289063785471030065443437249513378998426812822235643995308855045917116363262838446132621146772216145601783328354027261138834579357879054856622237313358359342378709034847804952779744346863676073690585266022587266940207393638489124945171690708150538169995599969799648062659505908553777137494364491689350851055068837119963871321802759686834092765472519732599187403823031926082494079629124213100063575777585454505074599082204540482599477185622658031615335537944470255108158889976798819213883091285952889748597983471159381922524121738403974394967670316997027025243704806467892046002641981182649565560242251769476146676768515246154826452820821274150081982704727477600170220505977779915289668323415136214214166558569396292960459681036038785399250480826942968755089953621581723000723665576359883406873463569318501841936565294951718925147840198122713863747899634908105383672737526220106302206510677065550910568179922009723094567936744730503123027595177383407312723091275189877172490056441578326514778702930707889676366301988090143144226978984151207584985971958829796818810680697677461619472470802842707151500724177525426000296285477669916867254719802862882711772568299431782036831638696239472264251654060462034760205120596164116466685372261400907468143576683165678138053464952966680779475118984333714946759090053764279093233303423957666709506937803638395950597836762887633148682846994772656483984555381112019033615005689536518878803981424533730767685820479951755463681668366048163324128952096318117783975871729967016272213098822659407370330307183138554890248131175341500772471872910792431923528705964694066054536674165580548965705842047772604802391766549720611193864851410028609652664900543126114016160308165486211358961271098440681005508705537684585170136238409468645116006732288135691586124874322802554385500729768038609956956657510939271033797625773365339115293629396425388220400811293745310439638241228077654175208752771884886268595342645712922507429151845917805548018403711367971667281297087771946776581066445386307544322191771864176042465391186921682679638604077154662395617252595810021233647334098039309329723765658954938987616801522270016678270359244006875248777910051607913740557494113062079967414434873557162481584628330394932625620498707135983834257061067753850010446461293284865076684581600016172337838843621271431042003532367514528934066696337466556619478003544378354960624114283322734016478720361038023385697416688245666416576331080252548803999039097648214527701011844865893360043554162306331603897165720473040133795807550159045922369703779089808069299580472524356756501945898535232074586366744097134286064380645881937034437256458857428631087045618322755166505322112269572377961637112582791612141315105272063824401287222235765320322145386709575070500543146820531128578546904319138572149939124094885043333826425139706874183979866469200875389135774098993072205632426916835997018569171735279882515210620163928321589343100721940454289354028265661356986755373118099208454844732233473498807705914317394422549348314963429957455425018769073774233335109622118955197594414272871083914078005158689797474737989130877761033187429102329192016059371093795526932899820220719311633442610405658802990179336601787491196555035815335067825998854272352319565285933267651248102431205122890712019989914109645867053000410829065035689301321183927367602421840204856382313192321589912044481113834765600307767280545577136160195244826726179687004220244565545919850636830045081810201444257923394457406404925272041982014799905175974809900818510471100400433363922467616031905178813765756186745424591993139145811944241665942306803659330722332793132749021541616696307184229390793543778615495867816138948921678120240718866803698023012102728628072118767596838923429675871631421624416446751779088144384168327598431957706917878526127209252735201943877503385910407389981478799394072384912839638147526267294601349817660250442755606955874414701228413211111750672239631040983325062816765867179553744906838060605737902683869567492129174119499172271364778308471315152191259250002660376761497415190897295294660996099827143649638933759825014104161143332322085420786521473725272877826795386836947834076004252638533856142586369269920356396098679758682730506228154272789177181869354860065820025260047399130050995434139242482891360374213810859757148284239091606481260852089016241991359452992503173579546451932882198355962238918582080495899893313104697585189411246859078402742844273566084701797792646755119881719909689155105827917841422863946059118825952846773243620932086546249323250275228654549448948697850412960406972069129922911163025160333453441471619902938846411787918126634281504142304112950568842870316278974692536459159080565717768309025285347834825292519060111196093667018783295292745580375628013854777019812580275483563423590149911297297813017802264414888849926872132471209224875236973707381568813881356283714089490024861330465567597580568568027074361257266310075537773806780632557272554857036227234343499549742885448594412091692984021154706197996037542662412357942065961506513597313775833901771965396151224402253364488350029013326732317936044261646122529460629454478288680545061438495902723159511007683100142106729930360004771206677726602597415126401105473504310600563337844165164777167525199154444535923632143189091847410347989084997448307797392810466762455231871178354688237656761511266577680588821559682465649391731131347813610779944604876835716868759759721573272835751415276766589884091388453868624010948979947198151911722159981423455775189546980242284424196375141966186686868752608106862711201356341108329138420101547071632605017132209907728541560690261304353877865708932567492128004762371147882253691555048567724604444712701309925897505265495627696633263046276462527616782277388300439656176462781804728325408429886798388499416309974765596714989252517558841793882700306398439272545173178853083855506112918693168757495817224209155602306125464434654571998881347499761043895824659921862921085285792683571786570204944094397655981878145718695726391577187759724610710420057561023720839352357133985149676636993362217830824111702526551022662504807965893955799449464333698878258932873142455772465130625820979182739466334233265196757173751072431691939385571784678269993094378686894651535769660744403463728709734789738764383848339767735720375310908515512271213752468917573190703587448565913790954559056131667293305333225603986008487003160778716642250665915956768424564693371458122625034350645520264532596415318084143195667760272301704767874631554571770517371090801473387530632370539420655487534026596487084631079294153112601236706417484677987356804751383597347160278073757370458659748894859365461978306589807031587020399582262385471788185814669171516322325274764454377365388949326537570884218953776190859941996302207486332869734438694448776198190871465223790436191284879873808631038946851500246444553584672897587177944211503232618291324461996723848016783286685393954941569440587699027223437484439140958163365737981481567772888470307954095571394525117672310000537380057947510315809211325846318328326890133064151987412344144464558610936568293452385072483161512051212680695825378171430810702906506187814150070843487483219710804211574220531184865508712882191661565083676391126396078498771143012343829268034316768267551927473177170945867431881948656887507311118073272712071112763209966365275921850484850626033279689781288129760254218547592301144762492315430536324187746399738911724844326651113052971822429639020456315960235682672601172185234966783304405218578159768840595072958792690875100554319655682030077085861119539632822453619437510999974861950875226884033363983951000006694703671563560675851324713274477121124544180431063390733800873243013549274381265648394977543628593757660697620388264535133980733810691587213545131029852668555007407303341226185562354292776899431311260834427173621959578670411796558121334451917818031414458070421991232470805371136220121978473022918917915958489650313438799984538347180568659592799552939642246275999096989525776330838460184598903430684619440645926265924806385712515892808061897175740810164756224393235568216278491301703419121865197672776254076091285069689274782730416849502779507113327946670336960820960925872094183043274625571157272656002914612702941824758784296214532056700238586864109335486957066254508688489979980746592663008858419303259397955948894855258562532681785610531638854612769587697980033282101039961118537631577082419339977770535292254333704016910924633554393639369256108856893823877034323483048600571618638798026358275431391597420151791540963956982178599361674494778066640210334934216128397917220044603058474938841972073365303757791388189276146802140392573628219277332043415665124405986921474999547020574842581898370300665333597574405887344803281088603713983895335078263621700550705525006877900267111742742729628647945449353813769362895429146104694202758555704753849891967852665573125763820093148787386062294358244104055896334383373719666869435513511292437184060726436731311192287318650207072277253347601195180356652397399161579565174034322650403513023280282307528135195810006820246190805440562269105523345195965957759244874955366420743876063711306723931886226817980374773213271417692466914401093288078475323051669437101620679984576099525212550421524468085657557905708380105994384688891262665008219093091461355800525427945461139891909075831043885156815472601058045400650097082340633152561346441922816471835418313049077022534316957502840034196684749910368313207793635621347604355886456905574207233275594477179060357222141959105928750771004463315853892942131069806365350289181547411085457804501317329983384603054784154989454956665359115365440748978832088881797722920519562064811140056436240966059063385583704111645189111275976591543481368700399003542100507435919550100803212705831515514904621604393409801429943840524517339339273018692865849819726018059514767580678771023699836399225025598352505214504683858357768963639506149079793227145896200495768247200781804083115593048980370238873675481352301145098257244717763003309470626462684173708856889785865763860400547706714247652225464314901371732723900459958556233253120641890683137063035511560709963003463452274493201772753299796899556874267174743470419662156174885128553789476456989800445996932617768798742074932180925796033580559573636589575376130577068780660778870818970211271054966349881557971241755124936972051234096355747296290449471682425452110292125567919504095173867504700042366164395524368617047360637844512799110326009776401627408052279034027283481091684066194647852581111958878747577035751848470562525137175249226064545843393206282664614646310556400454846613823734999286818133619508717246868395159473927967250317210462988141990088224695099702158352828119929760798233159326348267386457731597385448543320687708970604822028132853605897226344184529783437218100319217723190748238386827839165049791333184853198111681349652937145873583536096639801940959598662051630368006981894449984290085444182750035034415819628352620663613476011125729284836791959196135537658109929103703207069230724982648767849697062646337145475337786011788119731403993366864223800967857231239064261987237570075489195318054629265424418887498480006716789071560060750415958388874945131627451262090691533785171864411863739601151362000221436539653052917903311115953222768652816736894251015261234816213147488390586530328881988889888858802620595607697683747725544133785122740711332920594179595289750576055615443887204354558179832341077144099071371067879832861778161442348567474925987118833305671641057527259563961247371744910567517605551052219583531551021560298593280155504024508125255679834405040852813189931656029199304273802435345715257293981844491504734263214512479914416609366967710487302921602820959136592172190772771285791344247209998650969687677956417412905259534877435520860653706510803637076436001199182842820108364204352672756373912513540822596253724124287406167962790968950783929978000660573147747349634933408751248372163496750788693311941610018241706669236999085903567168885953547101383713460169336104900717273918095732840925149982124370776042776475528361562962788317271807225945174222173990052152640708635052845778562200687347210906622535435117553027815926693667028583579110594310334652682713456059877650810950941334216791755560969761142818974200328937115785268699878999024623853078218877057162984241034130581599427721644374269674943671005945507273411260069179267529378171877675659505233942202175459307820095437646841109383741846710589923444069810766257162740634704023149694016675291930339558638578131512469669503094140841115139283265543947785958815265204819465094757106390654677072404502673154068856786003299920792246913680873112134026011344423108267341618125463849609114709367325528101320589018064863847286621905492100891688717446962814007347029862163462227700135997343324493673898312014987865391927483182909499315957823187235957897798503086611804212118515219313329139524481716023783505155180758741391855471880276567931535819690177423422019872093206659012716766919626626616472359200992642018153324876221128130513260791954422969445429409901757635525636002783659531367123196762854101426179789325630031013379691671147517546187752805714367228348371499040709138080838852115040786011144137164383900542503916659012600594772766478007479691280408302540825983894782774278820252086274913324894097344356089630400467022726768829379883920209802720067590776514864726838672214224212553301901266752729093288719188694071097000397651770912718416518605271149037254642230477146445971562333474249611731599611023564902634799722697046310322576183838012809878332441412189014246462751445368169608499420889129255818640109616339184849137359695662241553863618121944374182018757858202262514106484849788293952387082166367916652460661479262697545432974639099789114523123578476988066400534195214105212356500439918820009318654893326222155191556759007985024247310573679297050447244540256117673286482905469244410199090171982911324189367014192984601407307511324273868131812380854241513632732424577007143883802337042376427296658577412016078492638532209819062196355897522057356699909193139831570997476435211408879650313389366503897333732128228405301076342965734558606025851118082736451316605561634841165800387118107419033313384373250573343955323189152447636462723604929223837738548996885258536779681913642883650615346200692365905475265428461016850504885640508053082482468861799305544893094442451881495226083737306940391111231503999684037014280127765225262422464210631540195205649462826554616500943971393515110968088314215924303094953540947284188538348530377076103832520150825863247271408394795365053200962034391254693632173788825133595021342855032674622542433773555180684315357668666039058043283791369708198168869142733824244634271228186333285892245090765357959458624210915089185977063894317315405476587654127663436769796443995678080327732545305475469211122264334954918820993352925177667496394453174742942799368708246348548501651029190829485072768449397423790192470544671644791381389335773932035396942956176835525199102806893909171639010499221412725223246046251849653816196486996939185918562589361764503622028222732808083000727545606027525628384779834906721752732937047659318582688640718342598744782311731461415318218765223007265708965893194532786431372570260971589874636204213044786515908760890935433818171413905653829864363636642916614270658171297905311569121499817293896934525222059522879551787136533900967829655048559006399704671740128623604800580250718083038693393081430288620849027682015934540088108058519255108148196263376567395288943634915402167932043615266776029965113898729991436599815287272465998798913771909354983431205756810753947502105259273097861782650114609914493342474891595350337666208079750000495030405492668327726968941755518644193469069169153006984860091400628118099382636542391385064186562530825031659178584857427708574896671309070944163080006633801866766103180213299763785557082888965871225210236617433314161308279313796037467206979133933800329964370586791999431564282431682836310013630177969734219414186503321140253986118772190409177475340463369098216053223721694406722015399741085495864529340982660045655832199844473671637301184699420458021798912793269425604117557611623610891454764969010841853306729160296601833856201428461508067854304701080361513383165866534518269714833964638554312225395737563808387725474532464509915094353576259411652019224720898624010114656619310717190983393506521948496907450938432873287105065529724702156957830381297015231129475892800540682617314891332527603872014277695786153457372809059437908515215321959186794817935816964217667129765837906741698661745044762643423375900822666273847828217382298889423014377139560086414444208203284554011124529984092933964241536226348202466646028521934164807422588718338813092887684810591610026429633412922547412999562065048263309222098105669938212979942892054956720656991883129024999881919034385790620876842254785244646095674133484457001792816208170192539820021442114019394927305024543589659538692487795694808056382652278058517281680089119398603871153705966265500184843220872239799289224104251460400976410743044053041937565068285428676911853840882459159078367389518898893380203063743438030428454184503488908544396709492556725275549617445561286474736093435074267489963206924955574756745464224235481417527313222656994935258614428047903459784697191360350106247733596688228212160581866462459375887226304834461944740126282491890797950817829717264229877640367397987783678358470020533292070184986795684016274588864847060535126012790651421873158217684737212539914949231108893855624567761943253851907760229585206509650009670649244681285920946690486501459247810408681531539840400349903208963545200300550710105998645554511259956110876804026734339378476178787603398459777436400934907926047970262590602542821399283359199545035279570553781410484092534812081384246353590923435964899950449964106480335862860186023502572024792088837421750375416303402327159196816714574773137575947140205413797612116643093784301633238168959177907467447563326332637018975401032414360168765274064518840552667734143481572979824461775900157548504598156074443553786173327071375591139562950146018222434946899409903007030545920752958691356454981810488200947049447697249272528652813104743497749404492778178436693290447367960532527726350932270843390947588695337290433192226099862205691250386011906073312190455611720980611973405224140344087141409456049189429706893175289934134219891354447206092550849549263644525412351504100489083705770227251052674987320945256945204507016234491741680599690250429997700965228354417007725524369541357560717675434720187180066884145810122327430619611575973926282376231557148216735983682976422706353463585261391016340309938693302430634117554052587600067319252012122278401847436831309707626809030404841991386990695295495229647045772156703424087085221864470185217324901958826664050568679043705432027645670703017144241455763367558718337016718119916760351937951422290729487184257407702101538956134683169101682710729235492374840393100162491833303979385967414362008651414133877581191795009552032534315258180069491654287656267976594901683719355589504702049133668231188288348308261290223831012890823621463389432078189935944153394212284837140050002373837998080282809611082622127520728003288846516537077337504387480747957243376067447131938563547674040805628779499831815570438047033758575842224861081821676243387845718874685991234838368369196860015170727173517858507563033907060643760921522183765858799887884507792875966332669882147751033268781554309683693175266908245265733403613282231562258070531842957638404301986867281456394419739000869680602872818245700631354616105527878996305569807223844935232931780031482940939947477611275553338294630210095671953285062107708953525362106794691861141495128001799950806818180077810515178949544474552209665643254326249256385613243410149663271369832724187616958121960912471564273500667897943961167104314896131575092763109098868471617102178755327801601977780032187205184687320365336419868639541409357567698161882309157067262734939214073452913719712866440089600081091176468932398518409739168692605252522115690847778480585383165108628744793390177811904056687197387105897479952666372701226630795518126799950310104217219649460637839960587525937847706796409744764049003724284698547554316939873895887648742052286456041930893594539990872574974679576342578585590039752241689957790183522745915707317026568489638438929267534621287766179396703331698299788460113618111121875474973293466366298266202578559001311821631634210687708303966234881143159402173302026989903979728053060021920801792564372758757354262106098500451697231747997395117486909592146592754075202255441818001173194914030237915733437156064990051702438317103924353121480580551504640073800941958489156074541909403464723548101771745289613041575551229917834919102431573738541794339319074983776954961671050686433672401673179671706780330884724351114317981807548866434003506191136414994066209491451641711338215515370653822630161379117459826172384128756716038096793485125774275292930360925233008466192684881915787721688756462731916444779160997704175104812464372793423780054944189999939853254546231586810946386810757160798336890601869175326230440481725580382279606259586726957386047889344275421572928375747847068481067094880506103073769584169619707519617348755609780550232557797657964357940540508123972190723573637618557030154636877027667862708864854917473209639814850991534382933206094170913686605633296271364096299835953318471202289462012177258718674281661758326376324618749688495217521181998196172763836702996862674176316253301894841264231530051199289116724706463531072433847147193105839755482580107301631064350168271579132566425135642030806197378484047591340912192259794755415647658883520457098965740112663849743044467684080959356925305060943733873251330807079930270840947648337287763899868710856505809372548937416914795522338740672194309737492798236976614641196774318261398402516263835567497938515338849552877236641562573424159760157905132583476944414914793940010864749759243681519559554674375773747300905176466281332056859406537506736733191582679615561702368960938063095417772332888311766275429146278575783723338487337822736798829072163254229396622573360326484082453047913454312736208074543400979048617014552338934901154642091225396607762416639839137645486478166823072780721777793002462249737924213046187991584820094571205055666448472231508572842285093766134437599439103316127026937808140204529062679421081157263156173834852783813735059874032327875746631710501934330184357639791106360406512203907742599854427973764636007229457547322957456155054929062174020480634205923831832569046653027722984750923216366443820276982241905352439032401383241040869992040251682224248118048136899270160243981855601417069348629266554986102089920772499697349876525591057845010750981881979715279992170524717727969660241182849921423775528005114573212926982607416644875437569645546372225684993740347589888854359440351005940175815660152123823107981322484422622820775465716652137369459725801827874282555446228660688271640504061192170113468787508548841212945063575394867967988204828764862906520116773138558048791777440212237156196431242176152958465934205845571836610723312011814479603003097558366763899454062432017456428975011740871289017376217102712316896834197136295067690606884345023979561483663629657766150308424013374742583978289870797957058944080561437507021381433933269233194004708491736170028585974600973325383545925199178697334815974332247676437172276328718070462664220935485232094530822095160039944663491235574326879049550916278760423650485742842666722389516860326243886986578212713046353711602498602055803162148070300774015809301996903778930835055849157740065251838153400817572687260735311185171075071186991773969062419247441646844805848601296371050763920958506792797941424172032570875250737177783183812553483618298148687954139226582321136908424832289136964875416350507039780030922475848372535599419106833382770594293414151769755406679930653647941304594976168385469039683423293499704938333187883257353664473798296257210794228921311853451467283667955463011998013472752506279001267457748253619692379190665053085441136381856064481249248732376229299852107327063953716249306350947153789702255639447440695499175806188130644325393055996228612432822421895641969088043070305882709997276723003926829585101932564044021495355500838074931983701188070919817818210677664929281759654983560500040605293042814366837028978738185450277414217847736712725008314982707723091673550310685610152010040606910119601901674321285816053821600590601093047423500557266598086625779478389680102186030081085357770361212745100878266838696091296122688015221839117449913715452287382587963689412344710237606936134484640095305386214178137976522924253654060231694724374800461233534082238719700723928921656186477327332180181967838360446473628228523324072121650339493181721287427356362034572310991298916582808465975958572457298139414536233602301946897299007660246197989003250496480809747132034666752060677204183645949611023348422698496276860445958144278675348208006362099486764533634151754478744297213504395688284196198642664131547798923297080700913532329114689092777570085321337906745309918401780083150527269263291828180411212174765209090778995359168016128196689812515013998510585914959510723565437602420683195752837615122390356156705527011475792537505056292725818363595055175402052578870216324573440255473091354693754635173746053470768361697368981822335327927628411838231640403153760731950340385792007989647762072555095420116087372418696812774643384907089470210168720042088910201903905100691794017896419950497789409833924226531836985681951565297019134671904754139623097471088409062175368456317874472435469386638049010439064680634304993659382601744450083384708639684520829005941046473955555914853887816542487483602364799468582789584431687641536369889471010806393526033761833056324746433473819325661751488812304519062032659939387738384506316600591866303635329622485122992049411432605218280436010668715844215412145730207403491249400472080587534111617994762931983414157309652209098477472065801355212365779958868662797559210178869701776115273444487088312312406768099482673481609213740801889498696764826572125037568783383448237638296424362086730064336221023342743784841063772799421900784772804317134198095742349005174101939845271448448538046943556088553765237370933346081911069401147381157975408150359903474420314241883336726769948448227896707662472642893265971293746920806558787618327947980876633850422220949417979708208144450952901777908923210896714548422034581056323266487309385239230046318889695980437043145781887847466470901417589359497316265264689932147628297688415897185403028626191516707051714349700505582965778153218121670537681689794032220493246028982311277733838506968319244121790220333636128426176166529739482129378632674580218824345096004901379536051048182226819213977217181008422717683184290522114417863679755032960755940273733100089086892672135895498418564931519285656861364463225549397020541955040730169751239454554351856069146864259074619989078021804739265197478099994113291694329819587874659284429321719149958855219897069599625641688875554582102632225281943637881072258137220764412313421017783310220470259474941556129504883934986136414729632450604308418605784361605681636085886155013058453740125960473769541062466675324697595898344473960803934833200092439572106525289524781325157232400486109322997483918533022594067100348960353730229372594322798299347512381270354912384555187578196513279574772183822949934150872446432506834545024322872368864466599134741643632179004112043258934970501503178583144251174002728193849431486239099807949838167162382423411907401714447152037711101646941337088838909283805181306315627811340451325904890691502863698791139437792453635981862482349229081588885206933970429313696772855957668946889798831847857812757913797918639833670763061593391541713600606007150711957442054032314405401303351039086107678941970952767184974607768247706788570090798027459545352009691409921003033240031214275589739534919178236282896745471799922246556023195542123188676246932727823816241490093779878423223603789795647972915573739610249745318560067425112215655110550480704148300652915645322927024757801653109054563549571756815512840902584066226826380383922971774688264188456669768489047826284162552467280961893778840646180384252388765576096057018660609529606858666951710302507853638436828599941336927516556918497600782985745736846970219672619177450392479546532516527843032244477159468985909993226212788078173109232259273746993305029021562892536379343857604048036194876576625095219456116813292169020749935165683628530188464590265524330297742422764557985862509925745682366851916962876078858004747080178883665843555241358655329701520398895489091627036500654151426558471270968276563755069803333550355163176546360954198151713101896337083905499807945657182034159223804541612598689262464202033991957198502543091150657011456784178833428416463838184774780281007745225480563251150056854295349616724031955898320362180427995045212444861094038343820386825644134000443885244413900365411284375019257406471543383753074993095318710494306894328368006146586320522355451807260160101660323422927543093336003572347216787748562754117505822588858677207218864277191477691726081253558210028968356146830003851181914970349326345930130418055609326236561702266271336425833912348104122651913367734182742144020966488727451816267770015311659934288916471684517206842564116380945951191879009409900128556801485095525421939491042558507799187166606173471791402908099093754253293946668158394629751761561615310024931690710380686636317329836774062521770233490499801148901049367106724404978117712665364728755845157788829752829668962295128829348532522012293313269905305566928036577450964712617071002185024427234514812424928550432607554217036330785343278604914190465816301187338797387522577927852792889462854399643620333026219179360898995939092795513897116354259194380227280280865802228808644664448710418764384084980778684056531018610418101579004749471570280315927999587891983037886136376826698315452947395335688249817978294843970280465948774056784187061261086677660174958145027112867263980474221796592174971930844045142948795654752503214549887243805431147817024589385771311207777512389538496163391405060070414263003589826410970275437925164709895074869062195527906253061717272439564410283104857584365651680272410545605396022698223590869247340793428064008529544647306999517437342707150122251671993341614524756919820061831633599582164006189971164810103909218233853616058834269561932168957461839637795044636299492026057339547560626363318854170818119349661086617441269716471325732074252713500968942965861038988729005716832823755471700675712291730150054338530567505697946884687018597424591034317784445412933295038799954922420835530529734005864105746055497370311717449697584187065214011306519968944118005824290561228055192595460735472414332605694374994690543258298171407660335583600043603571286133197263939712026392998962115861974004216208112760461535425527927813041523607551640516823231100310952685515825390337509259952203917893767534148279616548796277594138863091611837231942410382927875108828376396732427821378321051724887182142546997554976397034950790572979763203166092341243774748434135001429536749409932793256250529958078125961227086039429946330782775515554147397299904710896082088074425929157619780499661298482626274095283869162151973647465317306613863266328023215529042904825355259635780850639544808191625757453558452429573004502479852592573526572522503804054911953200808717608376796398893020396481799854817736126594957549548594365169737071758483061327860219181728107991682303381128208532808280738149495103181641577351774563031084662664181351552325060573100577028854613902713910862835052855202368995556136556219959743592406371979343780978375078755511246702486889283478483094973819340650765386224575510043456338880366651320728870968622860291700106208954034576508642601689027598615703593151863323394235033540545672513834712706836016700925750703695591366022163968808761777005404520818542292051047241094726080735213249881955641278209789459446739861969737630979185984174021386712760737719361527019413190687371105088009102358625355666626670712584316305505578949780197385952017268420528451505864734551057600233471844681214677038883227899791845753900780608939179470164096830038824665744980612767020329784870333234296899485304313759375080536538022572763015870659927264640460277411630209961494016150815824506082107823486525237725756125808926393974400519919025351037292727323114767154906820292976498197386186093327949954472566602700501619814584402165950947782771211972467628572869128404304036122437567264785961905633638220003554750749462294311701058865055084205251511077469543623603524309697484455655625610784867965628448547099564863810683510794174601422733566429146239711251436645666854536478476948240657765653718024810926673951824827511117466338190476633918920036902199104608693727705786454839022203954821112963733924680429834485325756917790027333873300311669328025639043889987574248351565413520899716949511331260945949967390018236279136209694617047511214075927879401185074787084424192471818422818663106529131562660794212481454379980133267330907868612189396250679429543279986441337156881840841991234032876878102267026067088024664640771220331427175400999968498636825637343474709415607714910941042539699403943174247497339455004011135917193012780631128397715651227478326512766061884764357970035250340908096907485298659918908116539784856557114562806603260546699991090893360533542622116368842605064960848509611387060222114553012181471757108265131176600050821813962775802162191276735900890739746325317348492792972571132769703422443765339214961263788139224871221792640994884436864793526238617583881899888172395418644470589711780555501866847519641450559893562305284244635337171656000668568230945392517850897730810670848001364237893218251444672672422309941721231190443262652590386912220040205303180804829165423478924733721271625845110069839610673707494519744352623001859097965986632432862904146427213993927682077494062037691396337321704108553827614333702190547356209290954178377170377337746757491213898334714498364408813564098135241063636054726839428337878526683011808569933722371280520715570288997922457816617676445239223225652791618222577873525899702217207171580651377553881878309081685786091043496837821974933693884554747965662187864057801627001837671923957216892068089559209015548631360518327208986667301880456538738729632351676033542840111074555144129563489222159299413323327906298972798353237808479079165284865099482736675208514050793652991428552231661907454312064084388102481508024324331645860222016209578159824733380346151803098214235395847059243143058348367073662466620719566437705913146914466346674195577592310857774858135450111609387580777968248171277745469356668507475517508047576139478457536427669271599945867519016257448931018055924958109847700623125471899642790316191794469128453486498755434861855862870381661754484997967203380016496250782609071819305584697086254259233213270749530961533757845350113635784164350921705200764252228904022154812190879922734834117885338793655647627438535858239746129386198239615920735186121491790911120534065960442909299347897827050528897094967111024277667914774660019184773304700500566410218797207530870471429090751445846941158724825288771697023026920517556791777640906781295890165699021364540904766925984726905864332068418549969438037176807634473261934652354460824414899538017085887491782273883397411885359455587973537672573986105180183154288934242252907838531285870806063527998525876427608761059197667983785179586398138257699557051674126803421460573884218787801692640391245681366820935752721659992633217391245249311161297294386361432316020628373851351853442077366196490241740198857489038813051456099767881335679368756131266270005665448280585162563158459066393615326585247386703309056325162358782074593585754063904669123271684104513815695778325404784661062085798621678633982043514878401998477125771829480513942634950019794863361414657115759412732773971320396088183093970362203816888347996232811948735949070171972473669901868438966048383843005636057972781595398073486201384837714817287094327653851951665183419670929583377152756296784239522663725998803751403557221230325367088224843123454933729943761333431492049294054354539747248430548781274406352168938140221318153131910110087205931312562224479571707583312027354149553768727182290349867065648629872597548221393989967391757053054218641551065713782263778256116751300484681402182115995577613844936207297626445490824378871831823584941170944168741034629099293119071028872937856886459471033670431780955905673257627966384560017872664085420976677348467440709749240523035812480869090159017653267873801238524400481106981173978665421103829505714891121318492197812305976297837111855592426452708292024281223210857000895100338073491827593026017849270443053114403730311655100708121151555816080425847267142529612787675416630472279209003700726251544389951413007763025069536664271517845904280079727200733149779620843413322645091947328301283976591700214234859189888699670374077913422737375921874088886080481908537553145258468790713914250146065381857945505277843638130843602227078610808360168342831503654437063353484882498692663061365442280474936632099426723642256710975620801002449375108490733797824446933558569408137118649205816841664550462541822436893502809407657473595627041792965198978507153665071308837441927162162106245874497872506237829180850855079712648954261383200639822350653135446832195351507064475281987528017420438772868108324818959395184540176696185046914911423862490483312271542055995742882565001957086535446092505761545435350331475888354116745466935834884253768008196612205571914861743355478136423436363532465075448943523649793632196055024202905495361716806294265279318752114620448528985910488476510073117845696740461641255265461037816987451307287903006062562835345256992859224871731631334283414269638726307435254986583355689448077453535914624726715011866683332618089449172944946538805733545212883242347141948871889600715804877853844424813326236746722103271822468260249240321646833570478672123449792240695356612298755792816822982595428887594363667487644653254515264431437119316833630575015262205640912036083606519944860625613175336327727585896670589902199385038774721743097345868578318840736291695649070718938669880579610331763672383477867147234584992076843832611011655546647927575460026035159329887264300474536077458817413347091360526043381800925502832350878877915692656662368242402116984552016266526818514057462535381351396240795115759753001914940296018850843595575532842161271168989531808003696919210848415969513369504507794186728885254215965512789295157738643006581000732681654523235334914628589025192643361829746512884828185355585788417009131846926895318499051010334405520228963619636949435424333475739365144672861602739730242351553587181183637686600456266609124196305322997891221850179041656438500700361639049759226524630409068962593177220921033988827323783034396451901444239688041004047674652927524151652627243394354416629033876131093496542035440783125270364967243101466802936549550770294433972531806692820458308821131035994600157935908338397174902072193592124853564739586211124656943121900680857716956214898728317235708325509021354208438302471761991239725735035517974961825003491739498677503377857181880739029603391669147941528539622098504720673926244331377820421579355164917740011655054453496253260371335648681349045251128878199208053530128488146178101527668279938606893005723282562323632005213837215307125008450295729837836607011316288093459660069152245419760965042653954246243656186665430046496412411313324619320235782068754361397887774410837562224111525709736150611220263499842550509944552908838187651990010298587960559306112569718872385318639289361198435118425740344654285020924973727133430041089478707006932701348462205481531918703794144847023687785175291332305800790948329336282844074278921652973533534081618336999284818068184107882890350453306771439914073981489429459446138168582499085612452569781864136052722286927290540436657346273533293685362665836989638634694409973115804750182855318942529767001339162170272803453512584233692051025279896087645931950653382693988260151184485832657938794356854541173369092786588491096779889659456729216946428317127377721418056787871212700062620806700752325083237215177130549260707858124176662589141959096480186589420128882405863215274535386529355366360747958432666192931855904637999874408440461305286898376244766829903361029685748297662498982128118308160702233450113100619139927963100043708414814264544652786948877133139753237041857833675545925466290282048251621726818830696521317217908671674315834744154015541742981703438302341473868774713911615369246929664121106211590059158509182051894997821598353245837183083216419779872280636197903310106631174243680410275964400244478543799196076743351004593021916112193476009569976740263491594754880370326852512550383311026481675623539178363987153435356752076277199080020408794821745669914000218558338039037965378529337501439219998305264130239118069180410967794979279119744385598691186793603848068140898514088859935569689492068885271794920926010557111850938945571295680264191006774567444503259089150070336027760766831528128882978852326292760260357392800141393878426407560606817478615989910813047428636233772441809583508737232188569236575756273907740223779642708069661561762789711491031075874784299824681270143084392325823176725843738013338423765776751192702014734147382568652435617246007770581726294233125245323102495175253551920334722199949255455157027982424785110721437760882641576197101889215244834960534738260747173609664750325462962562034731243680609905687445126642726046859841960188281699691072266080169354641782050467182128192185255623562171697882284102754825092989933523131491774306251956722945580955299676249576134311474437480282678482002768065679614290602828591024413719031459529547370547261334452742665224376512225333574861274568946781643047111811087402678020814449614569960003221787698383738013056719057168980117408424910383503223898659300457275792577897944169973510469619136581024881340670745075762309630108612732476219710404992090543164092930070541396960875974750250696264307564232435532079812923236587773454419966164025296172204968116385906349763763060599818080634580016937136601863463460029004873713449452101916887062131123349943949519953192948218943325981137937467251990299205665262761821228485291624870574704376124795408147533338669271820779277637495417980143103531247891569909063371847381672772060840081867065059760216318606706203855471102773387373804060414424971902786597581856616628617245834842472626689229073951152636131110204337171154448427127656974829306436995004642723855250868137224188511770404981888058555313338412801191450657214115935285590353992312451239371541984483025393862622438070836732492346578814125347754084552828495281938408419142277214069895721434635301986400605614087395405351476212978157176517275835477758792714650378306858012627311539507214064976097122592305205806650446264256299517672322854473797860786963108907950595467317994191887559075263656903224391300201869665052244469397184823443795038812766597567921925270019530002825228690041498333201831749011158416102333459714260894868261422238213994695856157014972279609134730119951503198539643355298121037260358830628548164987271949656778597488316501251844298710178375359210640465619002968997275732793939670608734051178862184351548616329106929010552303352316830576183509776468218330980791783980536353535271120025644678015858574088571021736051051291404764346495667558452377766029698130703521747547678979496117370326919382224062385534007273810163588780353291670799623106608117648614101139621763212274791430634487982808127844686099825899660509138110488522253543838113122884588538827548966397258709086563556939992494389385412244770758519792582984123172542922562421619843337346511724101544331593721047532384424961462799872994709125678328417355543267769955276756918833012547353502303716097619079826377589923983341924508555221864111863412423879678395938681922678359419759403081531972822078353661918662009807508342865989072336741651693556781297917165907196450434665889878745468978196223850511654157627066185135248237774270115561754225469863105650374345300230373799080305218809021198263168345665837551179182074532183513421776300064524236405077428161271897778545114587046825454918842676254206552958595356883654814514430734054759575773105850155705739679700485174912893289372521054382691424480608533266069924245865641996516951044156299334415474742617966180955585087704444441440417698380373705569514169727225142955026869617049411434847489824835133171294217344913145374974817658179362562829641134080086837478919960728583954343459402813384180118173580317894238602871437675045735450464326986327615584316128104232155870198953026970175696018751838084995182127940780860587272922020480377529941449084223894577639993913776681961206542016963724417576831987626454840828620488579072967077183151231990865972894053961532423361746576694779970813534889452381015778316089673126535632879094128480442368448612818967428045241530221737936850515147788763130648158395522444482421161613981866121285574232585826900347024823526554858785035081155735033679417245208558661238692558637917115113016172508767503858205060497707925498602689862943899447544332460318161830497704659951397383341122256734721666632374702338963381910780928440899140475716285089369301308026315204545573084399577355557688199437143396584503298955803423839635278888816702998349661332757349338987606337160163749039075401780382724638285817120850374907517023872314700257156597606420415245328212060242885171471601041973529742822908891514082022576928340708589752469864859361317781247117082400131302426693891343238790794341155434187595214393691500122150305701196618625021316176462203249682989091778598262538861180425401547856917700365568922746369863816930436403682866851151324389536078889111526070759859743978342868540582582970842966585681012757802854157234435897966136794916667567013516270157597254494182137550125920216966499930204680371664910959624521465507793370392747830875221188622142199399958779713760132652697945712347848482353178457186194981425047223353839672113632687288232058965745733383331052046776554178007861270943187462905207457987934351274651565405579002008582429817279774612839603852459460104033361718310102882387293705189240036292779917830949658256428716930192626131333774809186196776537782797663161284401823914516952091424773112063322381262646986955526936178750048888988782051384866669578718625136147018588934532295871277221291362081818854935857586602690815708794900719261185243504022104884655008927611876799287393003620312569112625429120885124068923124656548653422876449508337064393624056864973803030338498484984107486536591958479965726889130302279178791298590534885823161712155443196907952954202925901843360876147741002218457635331682692408192920437675721512584877170015191085649518987286977210976965267103137576694559655568936051813918390770149772013788481690365582628080603994789961469180686989441313634975241589261782605219697142571044089321313989175821049891353723887685875435241339974691964526349154326313560958155076756098478554832336400144955153925549755160366004464398198771159371256819168027728393457928829412226991347082709325375288281348868388198505056753648187894693701235370562502304163595978318516525585656285122565832226257556398732924751027762353933046411936782102095581843918472168167679556552523074217843457247930588284605140202779818415850885591230194277339902396611806282533794832149081257311503397350264475535123377622563989741435862385895250270375329478357158572784006015497913829528128520315459904375170758257057150633007227297117444600864860696086696247300071011047521815673780788480698480720393282754715029863217176103679862771364283314316128923533434454457555706611626899566502479071057040129413591020643559355987852579815297109785072550262806420246992161229722980575628901860618898513579215544326865507933144083749865744021583033948877293969426525806834220483169080364957896304826941435883062026991661884634224013371562661977993046947364122461793624044374458298577466419450691729543246261408438095025556282358617602163670436149678100692700432082706416415282068189000647489096818192853860646993059658566941511621355531722995100129909511977764339389415162273482081352016213797592253183293467625085750619267276306779036267580287795157944362979746779876028071189918548567023167856916525258855036058172125266338208844574477050731396150788961386316446035620215772933527001833363895210144330784642278423608655046966240273712496155888086101355291502949369176965551088345749143380647355744896100799038387173945061303805405738585389729784457032273546097163337991453340598776998315044970057787249472453008923916817480668151652160982555031419365222725018556178688750978535813830334469428354679951206741621215856681687746098456938103395254770935552732711972279799445537960049657180780200566825885693864453150203262125028069497871634623720140322764753095875360289462825780305909558827233135599815789555484598799602814348331536185730181035656170574958988440986123128212496327127961793932519536768440004383102061363608533733437554220515097737671610897739432155658143327056568523270220490761581945288562098503107371858464786668520044680709565351214882072261142552422065692929555685021518877927455415826038816980089818558902818023699926669134448108309567499653638602458325602206493590575988292747074396671330898364466129644646236582610886148891903599569331951244064030438572430839317067803350185938006101685328744638417624364256037329788152319268645741351226259804898565587732316755876458845644336106968838810245060010659463477993679415159634962368885461381313170237882903498106273374643081946505515329968568344379900990964814495561909061457733715379543844340291467387283058172200975056313694810719697494246850066875280188333279692801582533232691893497397091365756743058075706568641741440030282242782615218127907829740664750863444198643529023235805985698267952973377844784264110790225728160179210951986852751841423839467904234791761981188702299513566688265179725957109064722600077601299461970507688621543232206801276236562317044400168019427339285430987537797653245528956705911509809200331886685524447648475782972525860828072195601347612679401943307567098843172279757834022236548968147302055593240173407592329990566955705119081342325699911270603189007906634347900463577810208481027039887015906275310637170225000421470548866127588417982892731806965600703099610876890336083469048195573142912808348060155247047496661442658004528866926804832638159354312622800743994846871074958656137466400556089859776946949675092159048894529881879327043931337442562763180692288582532909742266259526392807682195439440923897959224245731509867229487719940083693335802386025393687958658776697756869682569630663543164204649867735059797262786691092811693670601885435774552138216489813979647236828532110355068506877823123991031010844994019364534363824906312147664575896671324039995711511681237344281679408986136228807897386968170148167187137293637112851243835233348322782399615844784466420828419234096307767455247500372827622527515788923916941738145411470154014000714702239722448736029984198467222182182948079194795600385692409107738213382651000232966211442916117525433101681503117016662648975336109023265367876974158031551742442635110673996460286435849308394623472772775653876695390889358636754986987152668614564615868415149071903016718392081446575676983842253921307176737158944686995602024960261317211010425834177793446067667946317936737307635992181062344774765117935441340066547675177285685497537839992887959446140054343687806678214097366679941698069292282701897714705276763896873824680817767029045819767237751829931472061635620712019494009820681732632998999347201719700435253111907224373314487613201531202470345372614054534473697843757024695118939450907773517319995534674090392868202593391120985133767068670259742544906106544430881879231165146536911355822119069379865580341017521042681659542501098557972448253573649773640182770619373572544629694845756129971448463853288361676962653227416920790453640063054488527292605964705309793129517091277219944769030426941164102439024514253684542378420424354182379624738350732170723060640825253357663647798875303187907471149162049472099513195742851065579612303167566772864976398556392709633293370295530271353547798088316955335981615627284113532075384826033110827065362466281326990819562816665287323771447411396142099288143765147946063533657452455467186291758734054302822400846073618223254466945727593670774405380377981781924425404845156018258302086305341396134549294003508001740476914935479321032116464039605482489400654804196245929689714298253626055345731567499894500841441799933455004785646732699119696125617521746684057583512963380549323660644550343549592526012459391665350936412627454093683189319874944062153170198730792339613569625492621280631591909808828625461455530435055867758993253979577665721663621375990082797773989206228964471435054612600311402477031056215882809115065348191878689191040299700022816082114671662915973850982245111397647787418256667741309952607164414120593255312597588524836632923508731382458159475018330707333746363608835494753305710626737602114470589309929899404578201402877819579289866590311160933573719291077535042496075217848049515114760207488802364700975081402890377936282858576306092004422379916558668320045365293799245538304111379467488824182354925981631919046590552982155652917754787760113859654698063998812968402325300141485768355125812700496113275787111893101593380390684148425636202325297630281571175395590528996618200009536663232651554893755129581727086004608949072133622961028107156544212246146656606535181663191254907825004986651759477268956963832595152380208335851864456204470802891722640397328357813468374825966634257062862594991470419555066191675011255163941936167923003700615104296965624753576008873358213682877132300717622021471245635732459601319542856061376798633252406690259294856274552348821868920491835063232105012044979480577664987987719591856493315310050726329087254162984361571145331422534241553057580965193212585614932442851825806386448150073809519345378497541699713084708496449022671558461099397735537920683526531695682881825539604253503856106340904755108861379957601623492248306059895068990653557666541458207570086022258582827654765209939708030146581355002880886200039398734791254417947644588498697808763718068837495726481576932579066144805994026051817227463003214409900197213793063178684120665863865120905125926715509609420194300562541848892791000083236605355258293087516055843720431070764309054082712911509791237627902218113597673458145471919274386799528485751251875293654198426226874254276448915322347209678736420804115289561174372310888538003502117207475537179123693903676158992883214540072818930362201919920735851315148726400080506327743055320011176038129644989596392762797784287089507671672694629837552931587992467401267620010748343762055132111286782261201148388595947982348196311612353202579036826695956453874586874375068889879973813762355740277552709767287512284699353281015683427073572680744870312223136502736575932166644755177427626126009654749917655638458009164710280243949653805947074935985076689819293891923814337837630740111642230671770794110022328321124416933904915561948927579427405522861423784894072181002674530352303672576537300242503950240499169765610380687031999439615364070232032505938444189425669694214541948122662099266752615187316777597637602350056395685393788263415453825171120187913662813438639145521049102561902534245017804684046519980720092370204852487791707149702957998120751675342841686895520570545042796726924194961851393123269381300322563541069352283702257181478078856542242950744394274369260279682935721815435463548816473661832937364983595716339385967194031773197046639731271610506816308575649450137678056291507177580590246333413799585043801603466726666075133206430160739592301906375796022655083990944728160423504074800902894692985900119638072858946855180761573135750648364979789841723867794736167627433605347258290754020001055215445171151501695340790070951976454368369289863737410275195913858121446350050055050154072827393847395270096138436402034653454277572257376270683188474645576599751756161745517936188246369276528502484303113298438451331596827420444096860947338226333095347838402747589647023981949276606114057745044192323044036969794067177991183213752572899381832005692249560722985329455869787236403365223287384574183455965833174332177262488545593058569913771666745849474538074280106443715675294274791491603796519217321492397626529640769106958129158599914678479815534827233560107890020954601709120426647467975200284222949691824722522436114605940479627737133494279686829666120241878220272898825768784975533940425854455846253438754385472971269066397750335820480023996650934850780152608218582375614309443014413990991896833777838926200838243828252619425528348994298565689547653400016994009849907960726764009465204958445087538122810295372549611992228550500904744180337965292137790779925371737551748323108692499619855538746593584278809090834840603120282040678507680895099996292748240585046757562541806641472030862646410971529189575161335737612514910471271095689244779759348950956980798736840668558835752129084359400566145075552561280043309035036103978262688619783837644597101666627519481318072217018629097166889184894381479306761794742734884683288358779210747359293522023243885954959295555572386751510066768307966395093174164385062901956930928103951014939199108010358459505734063022145513879788217636047972965893020115487092111643100377289652036181666169344714438536175513679685109445986738887173390986408762435073386100344851467743773493746559199090273946368517062260647335278886230511570391298142684743245296113931196404611407739019967100752749625939609250231201979798034357252983701231292150574619684661197567731237011618342733325175554716451566462242523575142095622725431386859554876032021403117303280103280507096774317656692964517745523642441500084652989633730078468615140090083949000048755896880827635940605692692192568841744146435902870432623622201770641671629751748326506984615214118829582497675492113224197192713627522551382449067874416333779581975978903591424408943278926424294431384301372314096440140165705622823098297754939199354792718202762992315314752930352223621616259603750418773111431617040581596003051829519699445456604786155898452417381896045873850897133038520790160227411924394823479277393997551775775380822404977691055384101706715993298221892883525134040789039327531301124605838730561405709782269221901620277913572994131960101966408610151480568375788900121950425616413559977050309950185845565065608983322799318247501137624159341635541071099914152599800750894771327807423084320336278471618068433080084577029076775566269099658052285149969437050327211604850075212470372685608666792538583469385542107295001084524590489900271886857482279718652170360841449590087577428275822909285391249909192803361533150959443529150465284112455267241781555734686364913715514596846785004212451989298979653169438208222500453414904375528985580718025461809352980887531589465287772671149072800573095664366119482670766739821304034493409341738545719042345476435746720455620198144364893693814520323927985843405894252243284202231540287684815014863944968456010217392901131010688614248758401599214709427942578780016857596831118957411096815613914753970902443942750649055405000685150489205829951853852776264807233955971896163851558177573959906431686895190158762503322894022631407902077000378989247199101137970147715100941744665017731350227302247992763592997349369233424566600223789236649966501472875714582788299636559121361735403709972360409553514221746959271107566012001351278694610539440220135699448663887324349121705959807266738322073844923983638038072383977246459801273724696362524955774053533426951764063950747727731239319341920309945343559850883554770458217239401165037943818119908615011956375628538627226621492345834019152477590709687906322692857727334495595982463865693685678199524122117708349645575290042081233366318856258263677227149364121405376516182814478799798373481953247647485495142966346696186763533579173841939018915994351533396633657616822302014507411117994359499234698551343191782330834926288110658400698652021750628757742907017547212329060042797299317893802598469180486026690830064913397891374543545514494632454187796683553967735873166916478027700911739317822987291206453855825108484461764853123353399795732344559617025113973045265168962568954331944866082978796127982305035880381394640985700314236561952971967090792950714364424686393374344796761158790188203766887258666949455543114922147174531881727608237647976983639350056126959846628315250793227907422776120786225772665733033785682641199258883019424185819176756346111963914615647905041831265935029289442576297298815006763319277723333125673000068790855921261411836770349602951518402051986587209101076635808765106938933460639699528762653903674312033779171367850977266090411981201816538967036215887634048146244165023827687419379150528998764089520365116389566742538003118783814131680152237203126570075080032203525536798911987346894285908221577193336009623909884525156484490100111847617035467344203312964760316227380345142938090537528686319204816722124958453672078303119221429389778761823209316570287778380789151645025555870495873850714615070081365950125318412792163104554493635825754721459832276672569755100154612527141760056459092402210490561925248354792695234781104770434261384994681136487939743233457286829889946498407226928482154937287719637280993171494939356347978714547919292549943504644207399818094454969838569499816673701168160100671923197799911270802162519439939417095373179431992775193977433462955110732463237997816070672260835808322122956075174371611155967118878850429238436314164249215302789156765367363344507003874914892945194532417260892125416953265561692359863016096355731334791828106525172807710611947770370535682757992800110142072548107522201427050122009868804417948100339711131384968705334934631917725496155624795438284377354142650281966153087997756091717317026881219866405966775133399271973122059961174812932262669107576829762981883736297850739501623791829875590963416435787484111696746038526049170116204153505563978900738171823228091751885981086306199461124614516611847982863726538674697645364752686952112951606147763289570672187001450424515496737920307997829365610236680051030318267873077949389877919121356631654468820866230076510134694082740337346005703372970289831235756130810426138508799157559713405065522009386460967737741830095771053834539153079026356483999568014312327549149893953232142022076750317013920076499647565234821352221952983553036686028518327349039859028316762543150516457287984938136715295611343583291656761023811397067498066482559000596176229831626075885177825152941560799406306828319138954891086196552977463174882999396401129716657125139428562347653077085875640140645749672684379530396295956806050265001699112483773031615112542987142741734552997185863086146839287907426193274719369376169974920796003801686653336186534110483817826788906952455181983075415879925946811535955307184345526460901119076622357004643741583618677671952125066214573798879633931863807475890613438326911891273584917850113224315589134287916564700971131081876844323893494399331520532472657839370508797778595666597755161541315797054726637376452288988032219224091586696535461309948115400519507313236183587462780856230827114118208337056518551085568289264881728033938448438533594468759206416583477669749013971389373076912136450911226689187316682961838608295104936870756622013995977183794976137921191427926152286255057694878098093158695052301634488488603558897851116031887234557118724594868026943293259288805987294423437090710976694898110866307759327506756755537196926447327415872787138744600455749812547168389873953011517927355893869523442906509205230457312190157578634587612210783355156916765352392298163096356526979553387429056636003390237287758217015722423427390669444186751325195111887107353342911745831798002726402897741441766446698060482920425638143655324638442157355273931561347885434044382715433191360629484026117680744825014232208996253098030466657698344122557345431435874996837333975216881129878305953958573918247798209052760007608014313232492245750661169465016917373924403928594122795850749295341577388238648899528429775401356031929379889907525933504827360449307577948802960925126155442182156666485485388889334952976143210253236255472394546129071684212338019730672351675970158458640672264016241869354764749236836416364787604914546663136789323629422447012198599272622119862457121420710564051310349179392102599843503271289410930629516997472839848102932599578235226822933203259133124353173056882470653075209958437940101488851985544730500877536372348527260053600505317394225453065331048728529102066891961409812387114345102299038911865897426175431222466341771497776222451415950099505333997152936568511318742317975411363210666777645103435064375228779585425735094900679902897915411675915788522085418284541564675270549778187895256240990435327594850025036409563890699989296949697468392276858100118611653553803397559233708706640929770658361570340334648903555579640121697423697434338154337806661346125007105550471077243668522471818813761078855356758784652226145042535000084887189770341580541583053264995853194314644912813227896719569571147521893017294988955929765188170859104708928441516292800904296674987289236626535010589989860364805926454308046661246791262802116825171637879402187962047932073080815560203748946756908483035485195638384223356144535479117250926670317263755051502790270238593517412411375643897669918390476409116642068310499370907501497287899940366452668459835396681258233342275220683080375283033270757069845334468840066922684433264761440484010483657136869987212202982392208012402740098002660185142945313302444789231514998281240905643326412953687965381856580422104776789299927540450942101600724756910093526873915776555046261587902464482173996930178952195659343756279090548489769973033031015969298423586234354254829458184596893835510599326886137329547110227508201638419884367957822377346019754860345206082354362874357130770641427891279338964180710325589952475559724104376884530716660655294365158051611371428593193241364558595076394806120481972042689598400403114636599100010096002675145021697110149927667134008480360753084639670817002439216109334630862440048326471139816593102865177954021756561444475063946421487797522550421267242141501242354868626286562012412340856940995875051060903072369638975337356878232665599187586953724544422549061986972460769536102344222575890919813180009787444464810821809317411802946897159728600242463305729437404065086304437814619003394346494425625375416226834481572973617416395906529206737566900099268643326305038222504248198695646949448304901185663264421461908286606197805647763215284836379285116093772471003994700735504307245380998533679214070094169235759773189350457178251790656748879644643087799260116264601164380563541052300110744796354953309430507763608389923891632465451736353070262563055555215367078003700085107525102567068895237419903014451301315411080480178512445295706617937053860971445240888657296502367039009264662875591087575304415089156387093745541034035885205844590843762831386845033420424730397564799350654029551959044818030018461056750360185898757546455324011677316029948930411528418651563514325107034751800938554323775999876814530037134330655932460044989839219182854714096772429513605378531906643202770311105168604917257600862874890733487560190928668784497371311602611039912508614640564810366198078499525182158274666828898811974536472526050461268825214324236916419500467881479988766485332246157848647238471045909129143492685332338526170327174583450265248975589557128164990547668789551817082972611044394233271978042071721923029284107310554427862850792653133057467898439213668956478063943361708768562431035318951124276155936772489671247918221698292578351029991841808293498123791723750844566012668521250020292652258435980402777361090819610787077559742227517345822149428506451670582689301372522254896569902908198869763027495006354522972481960247984704657152967298404976508368079167832331089695682910491317292715512296408227050941322685289112865337180953086210877365563661180620457049575244674794558449457856791444344189407960639113366196500457526659141249449378524217853140533954986552640226047698994784022421250034403078794758126597419340257015313590068221571153476247294372685825444403040101050470427342361275140559207156781135956955474093281206718507876218585049547834521780586025344384588092038673127833491341802452014212327434376232303674702784972923035478709187267065417194619297084687118360576600739114113015724987052236130540411523352452276250498893705517987451898277838216414822818451714239580921266421922988688812889493112523057135335912322309194681163326812012002685777788193196666679812626297193767010129922857980525263374000771487063448856795080549045879646500881591936816174356775111489020543536472062153442426166876286426416337535836678385249117697413664030857505269237519813921182313725988546134901421056428325706360371256474228701059447978783804733324396644642919721455200633878968101573997285035326718524155006169580518316127830388150055185523206479431863811003055599651164119282872045725136912996118378248777318921535646715681024991116427845728535878310723653816806175002074205843621955363925460096990091572471665500043276757233762890002051803233417373425168987077382987394254152202243853328193594509982051362968032837678051210657135376680637037678038218440347579237196180348750007699917089637827712535748476528537808871421192875379445967443429963847617594613671918270007502592516999103386161780622698661975250872127662223173648386095093451838162116739411662968013340051920392640625609345967893460906020127644718252620004509810880554335196508036507389553805606152488756000554512744516744606583733004340477450523311155813037873820937017009088003975706216592722068927319219292659095895165128505720344053215366602045413198555520370165526991282381556910367690857497841187647061358773432811517667974666305125379295022143683135402261246586230926057325911765153649586757543657210599908174698213351732567104263350104374804567437318275855400423556464080658690207120796410854506058899783316084031700305883792911981302161708939615055937960172212812023025424946370717749111604893496593494887693915921983531029682072778283764567619095041810055378882526658861723922847843760786764715187098836297990633427168141524509659215236351268347451714807609013689956235849903889725015505661605408832657779401487319884884312106771866020431815339430568806480434152343190224530055219549974307918205556297502402228008503618260172735445939905288166423581382527935817832048837800367053734276841717009395055248751743543017359709323030843589731219187703680966221675497509146921930135754442193094971360390228216639342951947507772647124246108123463309713137174105976423302022394513555019861296556816865306748740899143576862236177365115779520715481116908919890984421427013272306621089221354142618460576346831633890259747788936763587887705242900793978295892704644595766128711084004495591626675328102322683079762963174833426682946368974140249208985402298308381615334093681225842730168755831185935144635721997835477775703411804739157780409879714087052378770825304814424728918850428603511896644298310348070486101723978282156612945084753731024882130461878347485692470144833659894244488744965656939627913689262544499127459041656882213011546325740294689044272124399832114790096439351069211928013897012821814706649865293868408103213889100845929573032557390384296480856526128362625333879137149202802595016938395424474563281650093029342410305312523083893848096525810409974576627928346587877190373432461871092395622587569553285401435539640344348949319352990123884720315720079565412048831293668533747124571806566481752151435435661525424803241535532104685818492933215259431953174279592557036984463638543639336177606146388876261272622137848599122976850537673265122104561449901954142504661612479569743102356231525230034625991028947980874582394405455391346960779892401297072036642047326686409921087196701494895645371776492270805850263738630824862992732032911551150683545916152424370860126068318984695305382200998364373870368782217576717440839382038398585710817069091400688113358369726115598336616347000647114571146590800013637251601404216318569592704162395122347179676773795805592416416603063345946527756189422437132727973970571870738399838436295988428951580501216055983553658436202469611640159930278539839705690376416965731402029981084309056747169807995006698795846189808498282580966541374543427343942388253857291812043479235574540558039512582568894368540311576515369098220737462536133905518321420009770193004656238292328222195134106427540681319353096694271955656131119313944276629901098095902308729739851074655274929025506968285524454467643687040094094325032501926271528452453985581134752206573248896750996254347031763241217872792347168334885177768262919494867603690870197718843678410371632454805224481700160290670081044717654592207212557164024978074607889585224098074499047037332524374506866543699891686234688186868374915459827797223382114147829162588892869219532638856852327986544457992668828102684373549832228594912080784130051952621940634477268362539284595783295366082304966429688306582264304484311409235934792155075150196066591149429851040909647050512847270048133843961675259029899868142182762415010440597746871236378041472089687993757920266446954560436955678920169247817010335547028736573370436026514597966600981628744306038883729721199481158262026428087067603786988044062749535444788138606874145841975721340983989207314907050418507333775394627435756408325258796318807159509353751677431291120174919875638185078147659752623354456998706111631806834194588024310526927216296529221047229154114570630073676937815532292721601218297738842839124058827337508898445750993782964641190874374742906727837396528727347507787713466509835158996892997425193045411994153215083995616464730198878410507601626697902361406437232377924724299729538653200163634502488726949815273618042596606451446586288559947410333482287653248934050746848504108139469613209583384087208451122148137728912305775150468731858160569817162731323733628432470592607927603352085783494756535712314935648800343656514377343627837381195215166652789076104070284482576587252561784867470064655602020390282001317373598973654999542589047967051346067508541173516627404352495840943357581187919084932312612648448295523658682732967584844797909871610131803004247278831184629135983382181398434887650117573312731168765313803398114582090345443050870073570941722061209517220832249366402669937143129601461976223363038632601908256800353594056454065256479784297921660559333866456992959863302206584221028593294317548255196266720178577962735468010618128333241535985429932665818748295394449564120333989495939702897031061536410641351704731435885524946670621779717983110717149401944361687956616050637846508786859459712545935833513584047152431597619146377695991707770865361475102501067378093789727673424024558816289391577115822107925747157517558755358469276567004901838114726729731956820154685173882728239410812906570826282766867370960860324437519042895312996913072959078560416008184373322927147139972011029775020633690140396532487130535063667230899620660528722750586126457598515442064943685254007107476044439158288052457706934793009147053166688010491174635866835309751818721846370699043722996465691204452782514077236697766854111218596604623105947790347278108756617770046245155530697397215632658840384251972892155035085596177331910133785255877032546164732693621022683157522991209544505043237796834094535369504344825761169666374917681701877499945874082128299997762962008197587442372117591928312499225842291857526004913249517198161043522177915803246802104412338580935539244872132495179795956249509056868192418217695702074701569152933928304605377481356445360065615309515287017538704121696570483701929077484179389515113054399099496102030282632802241664167534982235658875654648674387576188113612724148364840976658613305985773818016111221517916575974798983481503834766866189043899463441203304791510822628732369148566473428009116093963118527020607712489204416320172835227537203149451933856117903440158431383429164247633501466622016655821372951681740978929868486562091282583037170826860817980994693359956482412708340895155315526417745871373810019714902011639607187033783189754560077560090401961999201313510927718796303673159861487372769360271266264964859078307958432865011343110593464190265786376745531616154094038090956040664094805799573333844090210132846460866669871956288038951752497349612973718711802615927098561581451150351738826031604905535654401213649997824592233904739964983559235696261582126926122543595055527604753449655328722766089003748318888441425894308947547408565021652059351455442325122391728735593364610435647648347685051667182250280795679196868774815278395606642042088777159780761570173198690992543822510950621768656283445658876184513503283507294559186857534651265188083776787134698287218585939958434695063204542535337764826821904339466109578489101622702847117622972592207608612041434246273723747272742071136958436173994581454101392272060397735188911651257553876398082846942328402257710014693154650661706667331970312399554707664280308496593701722596219728097931104209744123674813858941775465887440929678646701054774724538716956189407540027916791336896346145021392090245325532296994814889835375695128593132454565958301081005962228203417036742547987087423662089694469557287094697615314536133834596801169825511867872564979316828391223250821893192417102963828919184288472118978970110342494114188652273774548895524784633183149441961854397772198581912587304002196753956013994386810117366386413337105894252550236686693443990307400714234822800999299922500980070259620183435527455643499956822519099247236560339807648959642998349615139668947246858752310345080515968863075663600707748006401904345506699225158130541314663531625473069281591704787217338229106383056653221161497878650993937634297615486587332292780385417231776712114309949606385889353691311146681451103631379948604914998334735580434778341285955631201629038108279107913414523210715605122142131057604318277502143145472680680656059287578635084619195551170947840441163675150181772300782824854664151715304000004830748833862869247188094926194306063841039758834163594424992060111687031407460369279676429928470748755030635945022278250116249211296993616285597544964676648356447452075205176820572052464995874942693503918853398318426339793231136143966810918783101617001088998835443978789666773123917447417422797126162616807953925946140341083500555165900195060183592679876131774562978410987283548824404354972957820449581010389717751608486270597722756278852305300038287066453639566469713501632146547600981370772408201931465640170286655887197762050348529029910010815716194784223362294223108369404225358075106923352594987099178058686667871283598001812513107316367217798080487264898247976585169087258297263014437137726913688638951464084607200477814178930087993673806385585785963295857187202256918240250789977181283990158342612863166996270376686778091426021580275908660133508495744081251336869306386596219332682186164861043749579851448984384826709858398846255901800286068947011906873942577925144959489172900885052488332533512563118927878970301188814155340986410971724465775451603235359661438718821168657010349330427150782927429126772378028265089869559441443405048868853859627804957791499330347472355222053655240074634350209248938390680254931077748000493491701388845707803301560674701739115955711789677087799727501815072826739648144898419770129700814176345716135051756798555637947158421627122159486406122281011187574597251709104994935978479142822671851072945633263443270890240744918851649509772741893794344179928444303709836041154905922145984676867695761221108144421407959899886498971099923159733926621109889209540422148366891186368679690596760967156025206209084414596068237846448294220895887039335796921237589091926835122601989792604220745959851503090653864636094019945508066948142288857662791117327965994978292171866673023368280231323361321242710619905444386284918574498310874497912293914146409779733148807578056685372724310686360266103630212079042581538441547231584128461335220540821602768397007668586390869336490706567910702194545412338695453429283474797645941811436369728232078134843408279697423028126387767038252504513263341349098815867222499170156909421093016462094208836113435398203165968740725960278745554507808876515516794161738156545714949160641363022494136079151325632942919584807669110419228722874401620848568411658831573553798723844372488373949429534291127383136944325223498315805155878475054506346517895402306911822135684094238596722762777066991928873658961219884491707105166096575772076772389446233858806915037746852111562245371184081673486001964609974157353439032434499281981539362149247249243688877528496057307054685565038325770519346972180855807249497053273359554518546066713327539973238770108443005097561692911902999049657344705911443653135502550572586076910829063206660046940864512034125106409822570510825188545280855932439706593324678195825553877937082477955635774877804683006733926859719312610854570422139064604016959911772450752601873863516471377404036664635254972191177004585229940289707065257249541458120521337398651788923829619240253081037850087458381022724260982890456778698644358634607798215646153137587105615327858198080564504050155253994868492377803650301951063767936507927184136992807063074201606978802783863781409311860121851522610882138169457830007620189959514079253593470064201088280945162711330938245365805029791861285310927712304653858975431818911370878435193838221059340110848616617605061276146979233915753737135748010890283819440450185280370306246861087129204454870176536405654019150705166781919576627406045455245846324031541503968478181208123761090089449597726619617249556338184044038947554601038122498458008070990567396912381755331242478763484025424044406804234358938501206558226394340780370818256891603763886241643199215831780325177892941279560192210437491568941672131782043358130181070027095925222656055706829573879803369108675035990766097437019617212005597780431018877730417244060161317331457868422158460960307788174737520351997640007600779391837685773589151128461216943447223778232854429476056441597065052977786910022260477611671867537701831717585135781039880770421996837461415388812932076752335161581190132609515812003477185491632345061567305278940217342724462713932902364909537091219066769774833621153980545895180845908016103473787789690696438601466313732102506652204653143472734682625055382864474908041363636023896425746103648447113071388421601273972968784321640228125203812591954184458264025969829249926334947321847265934069428188895606155236111863054254027227704163263875026389463394591578858317006904100983411466309740341996920210621940186950730690701477256781083787191883955678359533296279387434495324680803442039432449735556792433665857145420220536730848834513612557025887250278247503731456279306915497945685880414294444091072406702242593811397340201709907907252103934200000710925373924614651522853920999951782050448022778312204531216154781639019686674766337528479405869564822103803596926292325038070625369642537854460378086558117025931039168128005908566298429784713581189790737667793548789761670418550366485824137301812925282576639623763144959236055024040629146020457670567160117240873660910209749902227343771421899175254799457343606928163032525898898078243133062454746784493776487571790361912558363665828017322142358508281822405919741490350951613721942282150030496675867626802897312317702986219685958808091281244999903598508276037563722128745323164395610205071089406951735949541528192392678808583139190771474195400427267195711879426534733400656090570915453819306517444175489556731748681195226828295645980068338157049189229563732404510327735306821050418344540223033841488207522245270446301780617354312117740014562814909700586581139727386439189316867684686042726937949830240395911460497703164578679958602218376120681837886153925993112924856308516700253129693530360206218032736697396079202059835888955410532970632297177230471614644195758458634032231922264629521648321311912392372138079475227764676019845608606274006608949814354371165434304871218135436208432610970724098485777281125312111818355235941507483853420313607652445634412858129546037754147366967822240511701853011355296296454702307215738289396601715912130898141688026872404966576010953139712573346107717030828043464606924043457747880808869310567427253068869406791536599411184375053286986261178903901199451072268333209516139553064270007427828205297509300768492111593038590037809684536374389075776901746568220896615668631681781683439919609589825625466520008829220640555953137190551363312843316092644373633652641101167372341340103717986560086282226759648047973403255931036559613218827647514331196757488602453465729530931159609317602407025782968661335031368456710448290580129219873660677781256479856878748786200031416401445645566705119095119971193948658979310822877401331811983084280292181778416810768255642105057589707820796388099388723926808487224089524357201965154806511925667274256242560029736955318869948126627786708470123139188790063966733975474114127212306585271146232262567732046668908309538348671684262568674177133450982836712612091750726584646795786908300702428010615046418430279356859864681167649378277356388965480342356498403080845281553974628083589340951963217301619366507432926110360017697556495634737122760954272847056417678110221865405001888314476831956669174884648253679229386575614269942344790916830053112841816193104604262063887875323833835173985709615631951795638021518202120293903796654259605170005718950407907785160592881387751399334380842653148048035945498970537888429331606666097234421945323072250636451095535468876420806083695054402565842425165354678361828009085176913310012652107282768536269900241455223146153579244272565198339646457078839150412931693755735148965036533936820353204289662782847967772128925219807761560904553380027138242828250629848310859641128328695282271716119456603923186777173148454106064901568075151397414211143108946040253047731696879479983312207623980759550658528807079386213000376268526415611032591618901693457640607834738775148102288077712923586129611744987227478987573254027088568801816056257948718945265226362497405642307952009745213091060841798194218900277830055348077535015977765262474602622542738428776808887383091288761780054085805899752793091387799957365616740699061248514686698315474939508156323136347759221965610825048476651871718409213098811407734753581341607213806258688994401732646711009382191892842380322758203461010918927845945578582504140791727144540294749447551178074571926077456588332211192137974964256838451466274245109889053666647319709099366213864488864049734578403186543693956171557175147341375505833540240312084450700931265939376749312780406698034338229950777801189880852836353517363747874961541279953930543498652178198822492393177603219674244175210216087647989980619978134148903246890065542722409688102927054858295155438605191817800459859102881136065291766427810037374516351541395582865249494575648541578419764512721517101821210572398100825115529474548681823854102093688669392725414690605427047489256409280695096631054099491259837095054022361933735923727866929474652656744255612447109586520019829887859727106079833133508128453829542327329547799620370772219834526335827846907277518209718145694045764656642412985695130614611216561683359363276189960545458220991648107886996324481928191986248479879057074090577817346292825352130271491350750057419050971502360781651301822996754588386994824719678322544492290729369744398550837740320256017745391108128137869449829092108242781405764979429047887200951209994806597436208838358656444690622200867090197353680696853148326843005091432738480156181872111109173255249033596036982087033886966576300095537950554498887886726299903774192281432366967873635926313826213204320887245227939811679768098270910776090460369561623271989748624944901199578527034987698150816433418761723218918798839382165015156808904132325284174032797626875886367272273145908275119185905812234510065408340334901072232249332252440174646405166904437985717096150512896014473850214134628189535835680273306331523377925926692990674264732090720133079746245727627919997864258880105937494332324418365328686350179695521773522796052929075453648342494368174465906866877562423618986786364459883490167693848663356508010299083712199950930348747364594762450091064430543675148281719066643958995268920234141290855452553143714232131409977323170624352847411008336349788409410905556156649704829413081211623518677716812150689652327931683954321339926221592490676236580247884426848761210178755187130542549316822981672893400277561894430986821702068219494156995864416516623753442782756728281877377795501861473140640674796453744985862006601267615053313826601543303036875374309513179208516052247181830935703081453857394747453127542095346777430513336952941413095315741731548948000703982355338244345560665100822428242502811762643233629198337058655357376286382255472374029577601966633312490241996174918213691225695155479196934254735289233455812663957181594883487378788208855906479413116275752764387370607004897628148976032209316964326315683507028034309061540787279973150619274566844657527366519786988754215129769333567015378759989689169282262739372811853559562976287878791069831263350609342040959876079728401504322856904101672515922044006768657571915806671250171375385557020885214728928312592797787374007985294494456480858612234009478969991369967065524350604935138582720681814800183623537277723002655881455617346737872824959876662066550327319044228207325724774637172280597270499370071698121385664229550857730872165044291386580156105329468104826768918857727828122630642357919621051408907645723878926596046266409090441439528970049350946960723750155448363649860120062167655573379039879266299128690916967150529541393686759708912169422247732756562707913088289338756395954331356846642032117115957725412680215990701031730469218159590277813533404211355717959007274262874095212374743985411136897013506580341847785095877161130917355145052512472940493997237284266519798528525198433268970839203048685620531789356293716896325129218022606361594339826555123270937457527710907836111273690550682101214342054118349626449901402318349698703459055197732709082314063664736353931132285487459978349066642372509393603061914824803187531110409941541665707944041037282072773085427690522159831955571543208403570799724884644724413347586329434210869413324472485144916527744597092521268172169540503443759951827254743540898774786624521342689706782189592063390636598216167080832530386000608673857883660191697833258251653756657001385325175381028351891049881552443570071415476859478121373001688155527041001803771074539868759082080379252055602905884801046900252938390924254620328234795852636272610247677594100989096055167314690840765640599172029445737522791204784520225854101327543901742265173517186317907637602423320833536631986918963370833766287106353528933618713115656353069057153652327655960936547250015006909194793054199372281592734953341647023285093025276307815672635334155230869690742692397358102349887412294814006686901920112266495440777977083414766843379082180256620727448701199927352018056250083735447735247786305063097513282778844143465591516525346451964723825370078033901894209892166420229753644884491550092187648558949433149159270063144777217914130839488614851044385138587140060699028431599376919688793893365255851076351692567862463901638936746886754033765928754961207079805505643716923067321198354941729419115089025176009842811023950722724710018091233562547632383739752188903475694473151659731806078252299173203097314912565851292093545870059795286524897731446095103777777053442867687005109237066490149124286139419372299072024579817057352889315424655002832123171069913482831763152618729170573595818417534948670977452709805487705697162995455711220740025125719816340372430734618729100836266920761475997112315246441630901820960698237073512369604209334068670279437937649064620261020124341830721770829591049211118752110176953746756288221635657684924298060018172502306202397724713633239709382086216166919099523677777484814543450517177587670469639782290018370748621049822288097067631657439831235811632800258398813867155606489199939042779326539294149951744117115441399954076433105185798867526138809962661332603371440594959404381918985727183216296749183220836030041048558614809200224758971351447361902691093114983541571363518428257739637019773977951482933214275703052950265746380401512710582696044264034065871267294942273061391384713818612613406812786375863740522902739773911856558637229446723437556415705668943418040678214403862820404712885688076184639456657418014938238150724293950953848347469767538350840427779131721545368523514699143427984711208839294632591530187702647994808171972671902922780134488511906735588881136520533621685643155960740933602219218940055811685123008085893430967670716670555870874840494025457902620645303396507104973861369757035975181315339526323542736242959368434540440306657587874490672639129816088898071280595361742722733902076714547555249645995115785405283130217709241032894842276055570677063745072265427983357655989358771180218163515217931750392383687272917303186125955963525638901894581373346254491998719475396692517643144260618822514900654984237171319982058400720562419797099502927869377408033856814282651207973197245659191453301286920024715050691475525990482516709900074725338610761103485874406052562099717553712217201390725768986634189844647366990406988095101455892999591531546417637615197028641875140443098737777225300540022958938680808551742439112183266774380480771854889591666415603025445749094027267809161199617681245568869471319429576274189289985194324608534908412291945255384196640916617923547378362892190674361000577879763873500828175575067202745618334799128379332788687600077424190093330980199625101018233591322844793735383688695244689178432031982075228462409414291638819752748193353446863706992839788863239126600772725951328267728570760953417572773979548004725098465287583843492019652732254002047086094004506670834862265209439739502971680207630653343750630182277574070365792933598999793021908628401387550479073321330797081174547260623458981146321960428032943516938910170251143805614654155349046651955811333580614300455345478360335025156421520045925310784754426799865236818241188945482964601024299040251865997230480121414254449067366354589464717082937821183364735039615911563466292589323507859553449244312184898348146111050646661578887465936131642381695970831557824170253175319571119036947416445883456454535193517074463998808207141331644428853286932174963628409760437933782404334162761155854663330276360779989356465977037878593176744008523217988526641672238766339272354507415113753304866340601181907634316416611781036644617255644411335371823708793730053680505157166422887114384378400175079798726315229046525312069532144949755798197798634828347457526125844332178245222326024968007670114781385435470371187290366340298836893821667961242386976073243453531872792290033146137611898865921209659272694299241494127411070959398160814387702711857684365105510493156388387606012719504294586607614363243170422644732821872997978429351017692573947079067647368861050180937460333813333985742231509575858304347108929061082724700636013091248981082889520066721145974446257019715511847320956454759772214139050690411963841726186242443905390774987729679770789758533041460616689741910755532220865666099653711944345782285151285444964066590095125889869681893808838746314981033605546707000296686333669905834351399441005565447568626237036830857089224883225398851391944706161181660390389935815750765424169580816186356390512486416982889955649684768062399569965777338097635645012633476846102528668579031581607644916771206762694062856347340724890354827154932216455787062669469134084943862877006710269906625602873588229247012905528378204014953299719268580162960484579683882748819095896808553052925102794625512612033405497462756339080156906456359133901736837131912506495105462085285196186716233214221280998534545717881533153898934268896261581228347454259636638950140087964373630995535008024785588171123029502325098841909451757987709631813346401656047645419647263092976802872653149931502939206955252633993644332117121223627812326671012690818985825237507268115526969869090014338454027421601078346573258160400630173356713853580769874549824949637751262119514949483313867178828650575397998284701611942599267556289702500139788451216276956102351613443052977593043608931813655548661994333351823068561229250031037793597024125182795296104783414756030199228631479551948848880298370090812875824093954100514891811049545670714181477964822024120027272964056273162401406388178351217630953773803608953907446256838316946747619812659145250276898711574474638921573823479616913172958184295600597314158346595579451801945105906262587046185097547077340852637138135354051572120919440547216067822371737134720461894148763699957654530416122531511434971438645272945600045094426618616131091180639808378005116790270938931117039584161962655337852634092555577126378981309359387870014551386357574673006546449138641443183309176324892385956048804938033859256350374919337739948313473375979922092728844991188150884168832941360944960343823371303828367140532475280105864728593337419427437811553243493644615479099220916189770642391299189216124476076336228966270895877344268135163981560949521822637079482621354061149686138367462385198549256384771436363330295796145586985956950686886060453229015344676762216607182717083704774519841606810282249724137117004309482702635470751008392696176037397599552092524192623886289734905058901465352080912314180410009254005165394507072063001992250167176243533698890458860710634966557108559054319905158487015362806329239516770462231227396087851398143720011334343209385784694485687976311970710221588628490026350137980618364956945036299776687048557879283769548384000313515910123787813444569848904225670902441865508766802977729934410786505623243617059409834381189200275130196066733905137475715070425482963424845855027748711648724562160307912825628664485761472747243091317018613744101612052242292738762000891907155390610454581595263774421623480123456313779700207097356039152139722533011655323283673408299765860203278691338275810747625581670086145827086145148383340578976743130837002692116653765193108182271908393755254051326319809493315085735654748850295622730082607750579058888933028645076206315553791563430173366444462221746027877524704623460112664719639282264926180651582302226819136697408344021986290102224122414071128471837283205572604263099170221363799078739721367457954107161931872688009778208099385789561629526829700891334650142453829293364577248298499148462697788378402476021877643184212494898185711834128479598258268769557051096592303889768686515301965182726505168374743376080746460707688881496673287930286896696476500505866451905499115736068075653289242285147604934173881032941169441825652474532272400759127051134739484327755644919347898738084555956546569703381771899065604954924807425306184407753203016968537608074326548436050182967405034919848742013402457368285612156906341842917496363242967505630713616890324787533515354249809478447465014421649784455316411650402067854162849359100044019659209374722588133613138158109661676397402523916569538236397074719709204800567502051373282267912765703808646706597306248043258596224604912251562706586383228453920019473921983491467871302433272374367973309078720085270766239348072878337540274640907090989355069630903810506363511269611866263091188062714591682321224527446808032534362536296701201586223780763689773978375904800581758467632680185099303908352306455691173344254109213356122208223487967138428466553337977792882760695888601220082767709092201417733017408840383100170875462502829347913198580124427007277592362407515281617879112769900355445132344834218662713610666118323537408168142410249575844401779839555907157538104719286752468727649856257597305665502456982471122825605412307285960114619658981895025124808988102691296795800647036146643202544518280248960338134421068138166120953223926275658846890362751656185899758495721139708209655149912035425668618551318712649893596728186863195465634490640449755255576498952987138398185407422012794414195995352141150851525331018069358603025751495858193479429488714571257514599114816996728772669129759794955027862548957712197944067334410261757765834360616610368925610998899381823305909760090883486889296632844438676847757917612418050452709490287679912937285221316111996906903847512787155997676293546201586958470001399159399499774608054122566217150396706151914342372246934296368725195174050277342149435437894547938941961830864215503965954572282598670446372957486933700386327343401759344895582729977684536868947637294170653791863358517805452887246268048752960494838085625488780088517440256662709728833177916442359914528079613759678035361766025343025233176990593808310098311195369698625919530801814137797410324778834186632320345736987051406900888564667572386619618086207439043894797354931294185735918094658575139056314781076756544932953916936673254452137914828376058104756095295842662699405269093555855611799843181776524133280925229699477478843160382747302637788089107507804823325019871821209418127062934550594159376739570851817254788513599879262282399292016390318405277997721996799890500484540599300863942833147515057218564791145987348784228174330735569959452539642088483832335341905005182646139487240532469114602626300938487518754818647947833557735745419767765967667915066379614683329638826560687506405445695714138941979317059554112523813682845069533731799479203698613958563166243557151949401798205181968234384430731369334480794393097557216857826452722684717269104898679516216800629935165458734646675944606309640576911453109263741782934145646902807776704456826936525846769022019470121206810212309264146889876752148272333685325450316212441864407301613642899735900465222319253004555320032465499707054233847032027796557124390738117041120250974445073849019061299756331280423034826508674661033582296326765914833872896655398076068612628376806176979009463916431755033142973898221520118300779656068165822074677390582630838884625452775691778049477656555013055044213800805263747513911147280335010372946890872136307515053617579036421330060808529333853127699174729018640323152966178378509214076881072288914037420369461783181258298647533782199638044615785369249008989011803485357514986764014387376460674208203721164290888270378390039141435620742816353665625013772784385075877434971477947392638790542751776314618258316151339282899365621910785684621288359905838597760768883529911028298396151713104268635881493241601527454087046588742487285006976639122916324436133739652345302432931881887892206572400841971959653943873601962545286881511284337434096063119653726553608501261376272711371072977352456520779416590288271498021432287654120885699131427360631982115184385232824636815323085167883209614979385906420277222671417792213655484715585677289287072664901240308831501622979533617038141247908003694676357595116644309450402780356582649567108455616737896559929610069355355189008395679513353002877171585753185916691923767383524335464979540419348348198887163837951829761257002197486128645379964730415311994097327979240355847785900714448052857491994447277810805783582745391116152707067312977782900815809772779790684651535987744059328559205988994650602371488844631764898155699742397203444828547724157440443306154429743110637826652796799178805481465238749399831238103052826747362811363122147659695994585690506756817342337885647341771354251091180234924670920093113395495844652961653620360802396849494413714925478372279354954618529566353513719788061571233340151589807332851760802912428377505608868437436605113960862083561476502239399132976252526460177440443430711383762524182844669303697493612520832901828476782379970236771646285517316667172815903243386773948510821016073277195196453043319461931139881898623478724495927488167061945693634398241986690250436032419119127331557695208358455088433588573660305708325858028396907408524717714675328089873898945337369502059812888930530321519152015157714312040917796554886116304061435712181276552638841342847547694425023588565646373337436684294573967349735189512536588130373676877266959229640103478181393823320318489397436542872581448023269956069627099381353811969654025744240409119654682858597138578629226039093460379875173688619800418669812723641423720788754486272625601232004349465998581296514938394543977129111042911734479816626633889324115996951471638069651143445645386611712599022630656630614700995054301710454217034092478442036803263659501162288100552090581866666855734160302661909168574303063310714311152447124558765385624550349822364555570117393307769173286687710455569992342499922790609043037875855720169099401976065561870478882147682295145907827322044725776601279761688361505510446993743504744464319255745259948893678649750917073882356116590015673143169827549885118607382723552156137431803311442189919355018532950239757577310596742875937675331320638735618982378737947170589265394041888023577266867906825077106540415527557024071552448872612068307739926418083908377006431901441713759461511972072197984959295698952152848454652520028991437958356077141659533922953061900042333041129226906816904605856195829068764434200500358829661595732013723062000688324029595359414170829139101608179446541533567098814327652034472290329237009350690891737100486328365141714406192729940460219197533836841363646614018531727344550339114211946809979881099382322071886409000421416018019123443368248036730316644283284231540039287934743584161254137146378835050885063778195756319670898600863296313700152324716924933305764366412481645436391054032305971771552323259657699308631242322024046634093170851594711247859031427475717177389243133759562794028138682061282986905296442345604818242823622399817951445149352401510087400762623836382930602013985500061396279045341654749806640453476145871207209410788789525601895666863315781368450653761015933382126676993152737020993041720979842331527884881387361240439936475299704693743413215886188526151648962939611390363101327698122867421782390933587078983621196451114784832329803330032682075452232685428205902048649645902564161917729728159932798075070773930982444163693191033084488469305575305971851943640010400934747977771952082863075108315271366327611094044628497175940681734641050669872078959284365241554486242090094284315832173034910948143668845849114202751544372324587671285325723113219731169293305598642626894332191877087186000853092657823495787012296627414342181471548361991694016194943895600486174145175405852922400769899119523537037185318756016543645254491331451911053824602086350274224356059860344754217708166767961697459888685065686573089051392695836157119881122970421865777074972128781921004519538408184022429963040984533488470898605718150425740615047280329328114596651138970969894263847580571839932903340421041795378554424476085003052305560720628172393589776271166325217784423441969524930646422297590285839294863921641301399522588267244031384642695720621639402507455666600193432599899096122492359157202905351584865916438882503246709529078183220895438270142572929225914463489646054295598777138121951193935133459291842037214345229868701504121287440053601681597764141710675291663574952705976350470815142808441038136282327897194094217885207836397589570928459302150670030880761745827937508927588310707968665729307371495141297157600044735210619576216676773499953906975737202649464136247894504063349632854606314709867988535890108043998678847241688598299303458401178590376586929775000646779436288325298036450513531528480955497764871012477518511796616655150710080631765294856132500842139099704875557994849480349109937983981545893777308164572514689316756139195133401611613628197150056569823575351552214045661722997958038926795665811220082760558283465320622607704640253565026060510177820679801822930997776554951971969072117454461549234248675485717389601166914980555548231876617312188586708332446005669611000340553140603535988343296185570280765996308530316038752347561804088601137583652069097909885797951613371421192125212301430926054002417280296806158902471213890050487094210192205502182542060035606696589082417810213096006965626159325389200855671207314008769863779145621320776865787798497799579675754595208076449753097333134994315213951295393626740286670193582136466998128970906054598118887494133757743361386354155753466631994991935254776732852644049771008149944374081059651921504246028596292974345576900551795954553430853454404424062306644750977941451493188183875064370424557677318482206742554304663957957157319187519646424875718454550087740686501656402784427796008910096938176604938269813013946270597672652002069233653277991474956528197566547445549690417292525314797284386221530109482443580662957328848921946306636973054052711540573043995383366727322328158747474912227195306867873159798254438032728767612456851329822983135221753052652351735131515668229914709634771930097958395693198977118068342849162566535977786047427183174364898749240500180667203720570012729907090747234916578939243373727437448343682079180837596289335896047367021086221931361801401666170553854102087924972225071141257057490256034411829446812239338841040875639438332272304083579357897962583045564923895471039351987319885579041105640373492407880792476312519842629422295406003981018569264346140946640677136480836779692679356515325823019658531819225585094554661964181565468584303847849919016106555882040426610131579734112972398586768803273067868258151859075758529955694850567665229548291761239231175989273009081859587986895064408603358732796711329305083610245022304103164483058980990440881767932872908470424612920159959099023105607757082497296041293224706704129440833985780182651067338991180015849355743079770544817000268252706247645379943591858041252755414696348052869818482821890013868438407444635741670451413256302497349276460520299285953277612594171461780403765787121477121356978466908911530394446508948880097919705076866304685407855351475279371748455523285603669316616416655315524712254312880744955106594578575129858055065703125724215768553481041186482939634141285518606082215890166440407973981846642040361676072790414287008184614539619801381896699056056818207360714262501477884512476145270280663496448128284381288219363954085282545535724259489297620928978840107050212951290491628163611264354495927363318156046200158758505898213959432154681698416530686860406310387112710246593652990431377183088286276699223449485446947355887404458969828836507398266382435804560973818088039639134975644629796507914655553065203597395857822581531432716042800949177087169412767098538578332287592115641211274735920845766714670151727013679228443723967542596310380400371106057792936148338010239836522329969400629012362884446993694035077830794656811822361945858993159503955722549377324599650925093682894030959445808499772553678194892925846315518567121033602583051509298251331011941100077500610092382960661639559186028187803221704267548421990431346528429674067465668319476671719352463374372097696278074404370074772017744088547545893568247768490639774839922856368984921283857029898610178530198551728771583055681468968469275783302328889449678691413442630737763913901680714747729291079471686007791586379215988385319498111637929338347375214854833235646158589613094318298810547583210030901350051112796059706016532290948264044387016928460522586886457642836429926851859333482191056346491299291300528685849727453850606134821443931137289345089944353147676130122883904860735885666231533296759751163305502956687595091382553482079422377048198276540453366128479022956193640031043517831830365782784898372752425144362801689233179221292210479941406485059740045406777791508026473311921090842176512916263978358491496313526713967765170861546765819341524927095344819240778370776605868740635926232744043699156378156304421068717743525805116108824461449912656889314906837981179895785055190644137532998206637594263464250142675041110711140942045228771225786293712265247927176881558421868032207914502891271012551929666214818423646728832513806310408364829798785727452394742174273154614382099442165484786632628972172353582048786176135506000456914977174741578491024800489628515117263097753913135656592804682297838495085527610778248782651489852484935001572181447758142506301190445576136446800336442038270152767749012882750503792521818523563432305174084202232073209569704490690287290914232510672692576082016643975809619258362167950606246750182246421474852790543555967117333571508760512184216289362429136712941058645739208906795774053023268568308340039413249199044081977429376357840152908782826372796591702306269993678435133308574011950307762596438644071983692160681376853604046181395630160013065392932550370676074530134908544868491510279309459430564454348559427107885551029239800823686161714508420740252681499446339517343974983714782911786431051636130862373091834824730484070875531712529636904613019926503795169281472801471940944965549693984720239391880645571260703093443003597062750912668262814296740456284617979995555913709190036639709924265056792313053237388581880941002377844068865462006106859416926981463875159879191512724962144073089679746259890515100739276053760222628692709551448617296010816816985827336347858974551606250466981821864638941067609212476996917938342069402655622251859088915368630917419489142197872622254827102214642846937750996319698213091401711956260870004333184203007720525222530305832982545449533488584089194148923095312653426891023516841605752842242712489279297376370022683109262082279144790036837729638841589734570650103415921015323247178715707721719458677283799820088562841806519412786744685797783213649009849006120995883609532571095963469323598693209629543811041572377450351960916920166084335689035994910852022950369246469048060073636082003443996235474419899536139305683715372495820547031362277009633399255465376450021447079335993505809760187487573909495176009203441394411075119525185527537527152672926071972883596631552313172161619746277064984017251516640588912437639631944373736410518924182127395724389494627441836272225193779840877000584140581870557826752037801981810497601378497826552950971510154430725034342468517036259675199663486953548079741158153904034154801045144675969782093104751678192284336239258414349801065003738884197731146669490613998955239492924536059523380179940716138860715355891395481064406482574767733600930007766214994622679511871813032148113437444375150200291289476718390257387870307420761048161333683531728354796615021967883720811125732174892906487266062129143159105698185670512446146680427575561470562778587243138618933058209141360045657580605994642333576369265673183073903792434875598736884373220482500245404800388941560798585921456164238416057332803134543712111570098885207410037865525284095378422754534190093774598709617674633928224098248553728050998204500165515434805024366080047614081731643527014328804202494579263110910651000981975889681754813843393288877970110148576464971227615139692332622479922803713075979704742639097411196157456149821517870955180204972381434759460390677166343814898740447586661641357594861659957495862083022549996097469376473444401512086196322123730226573689411862699576073499981731331229636569138456364039269107554701075974742475124752692133686827796579128495622558124799371663578009116234429828879555009583215756931905616528306384804253154325075731732102712840043777537812563570724390982467059468656259338322435485813388172613792157373114791575590612147922740960700040124836322538709349675296862153197067356115375731867675344038774661204918772104293078387400752828955912723258796061531250484340191458427122383866966865668934910158837126623318041779900562332233069023211150917470637134089833370803125701922832479323259009215592973002643626774319498457642577440731266524907509174464670844825098597379619366850216033990473174955757271518613619766975345320021370764630388647870400701292827291597602384735499914933616560958524290082853698505846098525179842026432866239854022108588498457960179436037646763594422497800429571806723474390605462027886631836677204933768278316502095469662792356459546605286587947815337249309799545783394414968444163268754336167957385169019390506503798081588087415182313762223276210820235098467040489336737590856485618075375154222254150009709416021056913164909180263032854439513232337235668214991080398129841296117423933037161364483420425605384902095327625438398251217513786938711508770882648250316756054903274791214782256667403535886459761373398180111763386659632071428164561419737252950080283956592438054736721640511348884164704339285382731110833293000656841187346779923986732774726807004947535168170898552191956906018262389820003542704206525573141812049285240783846377892183220784209566023874827332026890041079848559224411922883315788002192182391301246071247825575145780367313967066704689155103757249973329590282923457189201974689143776326356115152932919017008016936792042003340109492249581599127719691955363690593241745874594322893977267162607999608608093791361023271720206415046751294750523207061620096180469460154099919175361973078700869421675217117530538910578469008120264004009088060186174702428291555038065674353399257805886539363906983358054429117829626120868845614687048815938820407232031907810210811565958798229227984008655970069576195157016358144265179356562312562259405383913085504005094708152884541903936090694980780781133365650580621364774405170955152824707588888405223113240634187283122126724900119714934996888981636126917336009095182119342557006755033807242234942700673317938147749686424167527458461881269063602227882030083936048598326137787884626997443334518874024424322574596216000594974439355567416591172485315790765070863371415446515851635721298422313865536885944201836705775551117824656078005283008450201152926781914757905212831665045987144991156620841495656573948057522411630018290592149010318652974725204690038935849000475322401382852559624459425249588147126297293694904091133053306138432929982147189086545132008420648015830307657696555209261075127937001583312212397204068693798629290158303004017495454231627258780144007981889300646360381004517803174916323148808220478542893371399450969029624665034437875669847757675661935129500415625466109832842480252742040116934853839544416270764732616475980287737173744286022023807507389114889826172698085498109504829700113040320382650350337119007494843505400240503158199331082446930795147443561217848952820085727436584413986032842107435256601670127001468279873093662417977239610302187477990559522801626037179484436801391062207981795344696585143286842683843263377344360791401381835613290617988076726061481124769694435386517407744017852759198261625342409575932298550395840246704139739192022614205273016534798016916690883448066951643056769293092834150878634025773078163801806208242943516484617631647613187010394337570103754467483816372552679431076938737282931937474416650485686022071509715607361842719336424496854297685844729906349708431908147629921294103657114092306242638177518750863405208904753558811852787603220077813861670200946137894043245798241740514157860990340417702853803602339078988382571469044288039150815327534014512319146962374297534642507991369792282224082282042222309726507741522009367285496948111645177770878363766331435510993607971778043863516961214471202119000796545419936089629458680407605727812354698245901096943070526036499241738382992878375342154329569220087801688061754355606353565488799695534400533055370529846533403463990861038324988518182481134095452215836124615544488606702480336617243018238471996785996087644983621258666548896445571160071419714245870703774614955008249914037348367977963302822122916811787960287133140674798285740829176253741749900089343279768976079733973547753098195780995872097285208672523110132747438189374565207365066440650378600135762287183755998264487236173055629795765195376340288121224057913260714626973829808703343857939932580036249256704207776135647517669198156453065598977401576578409321550017341475724683570689840577090485345693844809796434825607422692282245768536918603754919708014002754500230711913695134329019412354519676075738058743905815465185992782287701813045993772543342573972371280774316245723371511057983437800053700374654398062639612700890093637086547175753817018822152645212742299005041053633491347658590558313042965728089221613592968715271822839123786449402955403413277645058469119280675365740312958406290922672064566764981073975152055789194464252771717038866520630763290141703431152213127857205248165733577172222273658730029567419329811313047890979773879866225888040336901339341278357016900311546610630576372420277700264999117237797634999183472144293624093714013114162850395199537283017669515063040980060799744790647820235731749822849346906680107630314025921126951941868231920486876301000830644531480333488296316627143662047458094781389182344731135638736151382177854859198400813255887045143943814383539363783621757832513263646085435266619610842492226041821062110895127930620583296194772724000735549879597505752171973724731830443339463035261387948778092922175709806628956994496323672446584624612427456482945376312337360022302716780523162638243798326451689482801650861981183713164732929426336452999735473852346995705883626368350129251025749233598601175555675589989607083520291415821207577492860964913006654979654993556769787337398697072665633075904611038626280893702846936832633256138711930322781814887420912503525757985667807809446169850151764864527372553514142964179998569084593609608241234240665657002001817924963461765391439616866441866260277569450023037752233057605663959505973045268479334020255306386527367759071084422520249635920397503501513791378126889709588434583876776698946037778560032847385490720981572368392351168737321852869973788599554540081006139776552717225969380394792031139980423896231919138791963184596960090373739978571132781229050732046410583921980880600388716448607806665603178807179736835764044052928469906515831347209190777873859917700290333252958806886490842092748360049519574290711248226683808610136470896163881918463827468085021380846344129526583808050822341510315631266864672914198484846322402556290173461119427428896761347897470400145476430310157628141132777175943584302448838144342588429367854350816939730525660092256164502280151050097848544185655622261311990485573220039530492300734081816034812954415699305790096470902219451949906027809159788679344996789754598310984090005360085749152332342108160914793699275215860165317987929508497929485703750332391475877885716940981902137494288355615665303576556102555353995437662412326593464325795251568408013113323249759477214067732887447357533575927772227884461036712601347967470579246433235531885434900421444995552015953931931297753625773969955461717912926430463086752293140543401995900047880445183737434979549544955851841892489042794727842464566745356485228801923780693469798163417981865051778390669499287022538263251804066863280337153095927424452984944284849396737198333649965973670806022094737566791727390431207015921749139360605561284678365787339136002603263108222729238807435692371174822699801917247283663410812486183088467537628759813616772456665901811040887306445965567381566571792112049699015412603047368160777218415347920416899612870691069984712015264917022995906709323510381036434059025511228329206869167247915096025978752358191540511740664833337684679608369718284277748724268900053262505764748038579131474574132622556105130269023774618501889152922404566970788491801708226307848649351323022248728887013724628290554864709571964908740367315032752966477320451491447743078367771211712889097721256664678294961578356972127940789946616564361747842235348437663194686505583137021101065102562561079484672445601692122310550760350649078746897690123184962100884235996769408161978752757598540771780235702851872852384304317529613301121704281447608322533953424211378566227157074539217998331869962792849200404389434683515580176021340588442923024811272445371148241623864141677534541855231748473077122900862761846115879065399746677324187828563365731396112999937425913381982597416938961856236248823342866633162183486555678324466993148905002245017293665415406683732999543174519541686806724524765915257591252157902622134228045301884327591161904715926510793965337041017112444122347804525106360642337582308441611249586400371604822403788403799383021418492602315051463705201251200847816139256542069665495031969009629728455349729705813543324674761353834493719436401576226381788459194957802080900349434089290162809387951070728120613168950875446727588414402225420126139547654744174892433137554265660992711329641975634478584983799522647485156040772548203104776724833553131228404717628843187534559840831781027906906691650790685725130348644115557062915021500906405050033739212470803592809663437756036628876187500488423815679673283258941662522889820300491309565593071387362986809949160987435429349086013024035976467734060365709794166568924446054181874065990726272001814550085758749762649517406260532402596821629270078569793006216869276108966550780770288416546541289758353895962187180465697233778899228073318785621470413760818726268395313819953353700369785481190180231420554931295832912637179677604371758685411684101932611835257333057738827774623824261224537689034984293992827124647231217499470428137497002053714244224676500034020387039643866613108129499914187764534656091193981456754015006753849045982488341152121568679677561118565914969836621494866535573970188806886098113245418418945205496753771444592187732514146809391531532562023626387416005735614458374186393556092946939420193027998300727492560467391648901079574464638001092635612018604799846810446317437505256876884354857966485858966252601114732655347846713579154562975414767484817025843528295815002470075246981306546309015208884114258975166381312445532498330203593581408229762195704542499581344591127753045890357171838403967055924510705524090920446410512159956321529666510766284261410784307411270955474368796080931279321571749206009691724662021515204018185328418470364565367781323596136891714919889909443978389080766874652120141761559471304265288805034089258349530679219126517436308709966858560927257342997000459812060238084814859479895555423790572625797122552819208423329018402476762883947277946515608103734688668801552693612896252864587507930372608277421266712392844995998415397760860786090073452611732789027833825443680888133122734115803633417789142242939868734796663255208877271870324692901189401438191720889491883895321003380678781933730918907775681165574671450022716996873573706903883283063889363371186464173356857346659804584889653244850643236626201008393231115758068911030870958490669229788321642075485966767326438398281027076703198619558400520105256364374725585314620530909632892970261765220117372703220142131769430775867670478436277338401518244670230200221748732566369004391782605566896942945260344066266713164185685873665357108658256599666492991879766217533221643021348587727534480381894987708727908443187679391007111374595550189904493966458137272150252550219976254596515932465334929202198946792425055605850803604458901765683567303269856151332331576604392402883973514185939681356838129055844103915293203655855835694323221731391204480280363466616232857609258689417982943466618513588339063829230472373963357058796874500078513851618787012955518966615131753026792033665599097906655832609748341746543680198380686404428448288473904488225410276351282121123367458521263105091760070474519747211724848112064166547314727681101258352822849543102168373499188215354239060866374804570242518061232971193054734646606229289353812876954998971748303094060640782199150560454823054525647920526095076643583333025649334225478527308355008374568616209774559157013893603387775768790582677704245364308178098579842473684755031891568403983118075067615206516426696607113746040977356615296563411087268889235712611820147080982587941790760418126239045679585905948504743167790688485222914912504849462996696970896363696961171018179862230964299579924914889186424379891969820466532624089415077436887046877441148722794620049348692116342778079023665189221211546783840033523547033209324191990996978578220065692054527717499643262464524049497262440943113625391917397086849008513921167063870843826427576111580238276528716750356588316162818728160675646961789696543980287989066536699525496316735013259852178120929781739046396886580827023363072650581348902625385961884600479385765730608430644639111501502867476669979740077369041270044934775996332266638886840809009383968479109869799631667344435839849084639353102138509525469384110096096923724591047102217943627064544237619086064202612110886078953261717068074140528239548521746014031640154335636319033295834455683024062494266802959685939569323056234718927442012534095842817517379934385912066677847159336605487665580456016366867954777789894189635625428654526102100464739857182049484177285996060476592410948653136892829727245891893895847365018817143620499995528902782843278215451568516475964432723224692221329910427031107934826478477092642059262281813338316656590369009469280881997826492523137236577502794282615525410507383002628341461221400954859884556356829076714436965966872377464924031514402890753856854841829795772240393564654015104032527642904134516450344356073321810471833881142967457342644249668287479792612878913640795382695920985806253502993210145427010229262381568517822139846810724544442685306297557380287157417663866382350465972965711876581475481918416842680873703661060332152490780319802835082767730524242774280867799793065992989803306503528822703397225292162203767079625310660026847316826881578016397324881343630797791124596084318880200765795132649160023239417950240385240776329933715778349095209435846224619017526790364934578428083293891051263679483901930910559042887167415693001370944946906392476408802900016203017744602805739910970362501448768633744247767032209680939086475468291278283579795662807969048652312295677606166278308040483507798762522805213044273245183333151935556509920751142028655259376716518949122569683200993377538501518495799010347022832297953242280737775519700780510735930359468519050521037156939545414467221696468173928477545571360814840432974777741770537351275430484245715905984147674984795820355233960507252978152286749810082499252466751481197282183353697402012336570742420709443990491151597487509849966799921575646531773589095222263329353673729916908794945291529635648026437197368837587345786054235289424023862919133622148584283511111254072886969879347541594674069014656681012250574971187812392638727782756462100843164222336355213093803357538635402654146922821497763207620586004174410567079614303519433696002156564608064962580807496818795056924526372550107090072475134153905505319484381718672622435085546698452997294091774086066177594758122957538011563074021501430061394460085509933886761579464662376133353227173242856843298545597557497295688549778835802503480774206032345693718067752677929495615575902125152868126045287357844743704535348318051219921433294399173543301581309803378631026177082710923609175283348141714564192687731775492615457257917915492091686841183925064595390019605726137656397243568665427221438182138519194766725988921924787071876113871089813025383089744424691260787275295982154265923126044434797575581619696613937315228967584255611339622413224151371216158101913221522829660913848414864352428629067628374637502535950740673421416475994471599737695624979347574190327326611107685500881637745488896336049203774799492835357101731200499635208296972839523516313026978540901222254041052232203497129965932063655937095087328194039407564815120808418907466778250237298743352302926286006702840787810033267162639520685308402035897183223917790000069855768137220021345921346853292459191137112448431210162129498464081704306374469078837781981349831339532018605298851039320175007017109597159271957719299756628375156566970933756907763793212169593981241175379047277221868922432144154073330440714215971304244862777411084369458425197175091680408718412458760971187862630287618978731862010446773699940317305020579687395001690796537506680678471821677399798691160904905054332388350203213096222507553918904481484209940230711538543378891245656389264615565881395790965200450643969059278114814718423838927813858497430098275160971194915492886045680082580812334232019201064609450631851561719376297904643914055155123266109873603038032511926076404090297661695379141955302702698222149738565703575235784764478649823000356882991279578718320891924763360962355541195859857798109758937436122238166999740501421018097219287235829246566359364452146140630216566410377692430224662096778159925388459819338824731741699597868231247221806080788853519503540563169190026567248558977442234883807229530696275821981915111177304244995553467228707759736321874826233615054726259274135977821229935595681165970741294723000584739305102033796830363829453132523724673893151056886169979361647268065590735923165707375977152429883856349077268029209837261828897977428107434104164012616179286381913144254933142215845708309150293940710530916113081525245468059447504341775868375993392367058024783895983086520179225252798884969676959111630185283621557887585851444665629838830236365646069955291233646114207261945952218342082629062457471261600958230227045194846900895053666874075612658115819818693765479736357146276398956934633674311580448969049050768507598947475290225726880014812920851755040741210988526537902944509245587254271301623549639627277609700838791885783823518969627960207635295725171100496090984584719252194925878109115978090288903621352957155409479058742540535124383413674578382126055384322486682054422447182551159521575508503826099406809616081086065561345185444438753710974535397108395723578123465759564453598535626987397244719395284685935375850914536162565598147277811998995524185125382927179419662652716508665458559694158325741891071444699679979192237329513771947454448800109417697588390447922834735477068969475763261313018816215316214690232359013051094211549474672433791591711232248831552348666668512894649150054973630098183432559447214079474077302474144230840637061117404819967923856816604611370355641386998123986647154339622377146731994832084342294782922351747605853768538627631812598513314315898876902429249272128534920173803962817618730762967849345080215392405170596219631320248938496528422366128005949610334439340996997386538622749644782824346781001863796577375035382857795962622911950418426253644935803365475773444785828990678965177614529656240707168522449612625340905845052497799713695309156892613637768822577937373909173485071412499165022607998574115003662622891488318979581601851557039910277830245871155403983318326590296613552921967450446847953261251298376696787687670500887411490285528644042895364937124734538460805832122103072320109376404819382460633856107578362635265199876801888698528381194455526298071777800436823611021189964965247460722613649623559394084984129352159058487243871369264488159917821347802435497189770859786080586918340674903989906158166121352368826570109933148593187828401295162748614503482124727541721146295070162204542480149950228834919109288533218550423058213452840709729441714438672702441892389081314874958063483148469787318654053519359778395709382057630234065508232130878174705535578823547641107460432049074090466199310061063609318862643229064142170427128849758273989736543808779478522267242422942529124352767924313901481899167251199896185363493690449423774408172005368234931865968082132605200678448390493746136686736022877884862347988170062686998924131768620435926457363983120528238508548695402516100667411402279263283245488764671254300857656124404647092296552220526761084285237406021211425253012498882929259149261084477744102055176006220057528910112763090344525021418879422873217467940055144351424680370210285903929779817824811456528375467544779937011043575837473055697601324217486262099610363501154013643305152315669319946175797386362126683995620638610786810036894079195724965116389354015371119116233022317047446893057811326265995172612272368073616917939498849360142870346636306794199395243625655558359486766895325728434927327932248933935881125620646581357347048584279397323900653477563823401260027420956951920245395030735315869390433442440664266673376460868744839810606447064461764508010959667635520579166716417967340973920546961356732698979057599747015922341718978171529500540440537112178853758095491022735006706739010592941530125677321681941256436378708279034269380769273630388270715873092557061271091531297649548896763594535697842282685935835265155003334381458329543120587943587806910519558768147978127932378937845762252651703214248180171074708889643057924928583229305934479767203272427684535095751939799101129489542037050461214719236771715261387819468277603105503628246808233599485459045808572868171059222830160370664081066455780553415656722279797692559485015462028790494293702495636320880679263245655930885998429527298263995254030620687181130058617730334826107512888217493196402055214030650030843961450318721583910053424886892004323318756778953853472988248115720421868052652910357360930413392729629898184619790838499781381889174409909461012134115110423663691420329165625940670761943755305358386748004860982104834104303915111632755960315334650142674296921009097080710480393718997238471805070613252815379802033574411460018752724297131474839494613540119883644062640306248350801291812973426887736500272329976701640393397441282209840169653730801344222527172849327101194567401368002485211641812320897839747764039366529156267098673634277813672599098389707016375003903414541190173913227363859281815779286303068112844984445684820775530161052885646435688201327585187988116308113149113921256918449187229323280441795780819929551339717762433681243629425387368375219767284106485379301407626392480468798755093661706091060498591141611679529419584520351080446885598876000586467459953454881228366044533715589920645506063588994367023440901084605830752092122337287690968195663640052594849209235435282783892135926628915983850555612911586692981914859613383403396317252153194342488304830048374803849333387202104146023448343827924475163475868083203435417095292890922484832143697401803720549131846196937988727602563314778048529462271887112199761680623685841726959533879030102581582119270420871594308896666994455926151986595488702479709586254235759503186071034184477585484939890742939963670976021219877274194975691740904508927762809941999920918797700254174134859553668809677727142661720216825939302989563462045374162932433491562702161556832218460415958706059880367592805155887553687254418287497568753465378779020407916178624368721290620134880370197421189346657500222776626357145264270576405024852943103817135416673605478984422313085791324894624948380885183553690585656930867002902506651785710282781032688474410857553320468661458055030734894496334322181436714459528444083995490434159167416844733551808123873839203429523352128734413282323080624915694660687692780174051016597926827430349676548027441415509090432942879958219937263153476010408578149303422553137328565535792824840552008510551082502919164095417785313779321432225102929094924516527947430678956990054283094748385044544684762288136897751833500726727672243771865190583878055794055407312253864519287452679245736007203880915626957898924549863908689094128122933498330101636774813717903495408747803113263036447092454922603804682605447681959353473374936731732786137840257667449617807464218049691317897179978055562153214419668779064367304884256008330627365021334698892221973905353456930871871215219079655704603658232784913969121393400848056106637201443197735919564086607864162335680226781365994097213573591230417579462102668440901291158915539923486121690328178779343709897543057454736596125530890701410975151153000890984413902387327522247824518991073675919441098787796247577559565240796457153349693237702625362681890117700535700616185832453365795298129657609763762669457038524543752722150794552634549225299406120983539070161100859968960513889926489625816583267365174365924243067370017368120932059214401362899254155015452283920155900624274539794965922440960710538221873891860126508010092461032999450859354774606216302207091891649471251413816964018168232445555357281679043156961720361038113987365843116521332783511862718599653061685261091912338115730851657897986182343365363826372416828928750651206300326146876932186145156802537641050081165525699097664422372828106516618727534541237300001495030792429532588714948671565925986637919948718502331125767736391858820573108355149622210541095168820412743074103392678636359556029445530881686109162411434551413270895759133985312450360213609938516946571196749629823111054875889017895840866450491820010978500749347642878848199453657967041276655117285396977225391448967831551369227808647193368905184617662663151872722197565536556757804434821427238767042392086107104744093336808963808455648885864097378621112758192787818521939808667150020670455572302260485433859973997818531833808815666973158725577472908827827426104512567585283944880910541631238687258977092247549432180677480717883312765669913862991767199671123704998460597196133571972281645259942406732454935464032002955779981805687776225760672745555922937851045185210545714235414401952011452923220262962911807031945942717176702839154553146748096150609841896913092716890279580919508581237388610937569598233988855005137122397814613195147007551876284292416507330909439552001508199435281860930668133717959916261616414729777507703387660539202705845841108251305268935193560245449819899169273516633265505829408717602224441588765424960413324263228531459120890355429992847182689879003515434099424399018941891180815878805666057583042834452377730126946792254239614989933664708088281231156825673363265843965288006805290677273713510626915357702298893905210045707216978596825103241842936948817282809494679995765197881602426894307988330508731387358545540811027414782983196932024396407034053761361295329749652322501615596171460768300055746521460363156796896512847199728095858229556463954384591418757933266751991199018151621125636072039878570227069266511960494395813002273276625313026053854230414889266056846501558301441145477712963258174221999428702956572964948991806643842330806090047649615520501865134500542578306428406308493689916900059875763110524528282553446916215154480142373532025248441364987316661696489184328239204650860722477393529852170743797315893430763226057956875096647999750138167452200982629073745999116048810601920594790631980090114929255401215844769198184026305138004362023932124059444306561796507062994193377227318206819089351405443284515327949571301259479847437937815822360278722018733727198624333693423171374973246195503999747430707957023671406467031437056658888827691620933291061953300559530947311173578668788965315292892711665846277550931339023914853911796758915668253021026539240044362006230712997655040132250817320505663461542476744518893876341278373895349463872886543408905042746591561267111662725294936663553773557212418253390423780255045514568870580873649465288700762908994050468427389312172034498646009140522778671843994496592236865895884484568868927548280027996758706708225991637161133556844783003059067204759755400102248614122110882952444293704094179909765816509661103707010271458083300728820073239513409312286318499959991651823211261961357427685417795139281491161836149466830728473100537135027889790476654962625269808781338201735692624384755350435072840688625795398264868325235310611228780393644678747104782357152690196036890837486785839822767738994477725967455340766935445578059346151423239080557952189050110329389868044549031420779988976003819255033401817511897563429109600187009060083367923093486450516621686262998274440407003747532371766533682417403715037286649969710457302248246554730004480279159864558693148558808515303230520493946891581954228105818642797800883297644732288130723987252465138682289798516774323538088483991560070751646572109135657884091600025871012193315552708356513262245202740121238607785135634159651455578908684345614177434629182328749984575445372079612013212384233806154106647050621785704123878825017052135552698518492057396384076658072228907839284610109651894396396569654250682072172457431308242173379013672229953623770103758654865884246925178813402859906489843083282740898312912602351121363882121984657407453449725361252221751514781180809684769417480008322086856478210686602119489007556923211634408196956171147945052379630201744349508334748514038582568358866245183549663219006815297135250698642534103146149001231082954666888171876647997208098976395235905722942621578084742102488640427101695520735160141948180377743806005117808378070551707794495471485925106911344863849774493985623253684017212185994793807623297006395540745112574802768263822353651275507709985019562195469048479176605355598303922754365554315225954939285330522632016980416967349082219018597341508943436619229824843447818320411260534407429181114240672102815824421413760624071944786269027160613383431369769407265205563276423920761553843070934292492061939231611150766632574706327734084487109006861380569906137646794300138610468830790205072871543406776638822615249907548034598682606636576591382245345214568660650065074962727389294200269204769587786367505406667859985064745090640240961918930412288923525439912560435207269747813198504175680621883052650851533650096843019528499855985428591820092106974830181496300843206217256529635510404409494337941530764557250538470077653185056305258301262912268013892897355123890565047525120584707216534325243629310108295680013247782384811400745238249603341121058152030128581899067077080262527513906733236990081572649796297979710517608156012095536869200170300748792274078943833155806663234633815461279933647400353108466733703861310632817903975987818439385299549315533263786518672615455970738815489217486632281262612347389972961056589658198042515644433351081466145540799987349185421609391289944848553858550734268399428499175738953417978101374894581204257914433866324243212823199423819740012629900505809499686448530048698218313158093888668277187488160867395145735537688484638315896706725106954055187952143128924390849722429531213134672961762616138313101860314666649954616814493140978535099059565317375548423374244454678579336447201065053865924203619797104244573062250272258946290467272953493820388197928275419387127613275972481482548987615111656795488584774168957853054032222875065503765564532621007290326906197770403674627728862647842043783920424017480859550309284723302923727413666228693765509343861875007015728778352889656870537669169037857093613807954174154038916451909177168580053529800651696544707647852030356816652246483459127541181358623340097929889056578496481674500198084062275085152551850417801719544020274228071580545517085063890031891998967307730254717855637828858945663128559854061115904767728646309822246296645117419080475892584398823391728240624048128653983529708876202351849176864651666156661577249740992745350016804512381954449772975037167479130360911612653698742235478997513831215496776226822975519074631113951294926069225411511780690056615780252657943389221547925795378471232932888334950413689644032309295793733521453527024605484715814887543128132262408143678452925391198958361118640366406294857181357666741401618247700159798300255184969339285577185876671551336011869675496254971473454431010247728785303765241676035739915581345620148812325148125805793963631261394697501483989547996707942078403160158134696271803823397415803532775732032529189552677469344678321653012578692330506285232833555652556201008564761053618487297997040212959260895418132909387455169208983790178112770595833198143847349101029576189377231721259995825153698313563483181708607244767460071250219032100989834737929349243075004117872008798063719400507295567082968410706215267449877139054169283948576856178641135152603712254009949564048113922985174097717296749444608767319247971277043821893622355056991789499999284705326177821050320009496918959306347559911730600395955297073748485956884658313713281740887942120305461710474405135679649071743208879245691650291942701862288513882872490658472417098912164815593939977806116503251308158504985776489789286743199362142360066431329005507038905928171071243497364392474310888652311770993553592198026480126915672017267015265399587204718555941428890478030381061227378370792232806679496852364208393524379502012282479866328499149089330655912205026041373588273596691241651790614789932674805974491032848535093001220218857889480578513867699006469656829199343003038628015437162840934271253651133055506363618342843622528167523544045325102354430916480930932539316610206812511617239828101869876631224696296010925176574489665197469589534068892479739598714736272511402541839802315895023208729893494554608163899138254517037347227505689932789507098715992936402755903646340523288019837053631706388006501849654049859352665197977812469322564619145834582187055268931021628417327046331733717247592555023512083137322639147155625409804647550706276023537771329844712223894838682156047129546565744650903114888185656939963595587091654805496981648305506018428563859231588359080873553950119797670369611831122065586876242472010618934749534445969187052628385089151619604380207128491438299670041439077652756379743928966937087021199609779491187511930290861891726344136533178999832496996960505763346446587800323210531717831469759153999978153928708508577331766220502902043708991875121350577974213564443973053208383753729208552790553603042684886413261039024159380239816288189477341581028112091819202531486070524016658334985859289743079395996602908002710696861823552898974574233583523807572759797247684977938601754075270619122943069304283283656256285632977273114826520597875700693504141616861795435933486260121180160128110248690141943091794134029507006994713537775349945096389953585337291553212593614219294035583992492203975524334980100869821152930334165836508988589315896389229932115342185293707817051506992735311392849974676285665381979522174646799899122056291758409367316167560250911002592500562387719354902178454569496445340824427527769314858021665037328042066907108723975781950889664883568226345245433907833138169108644659615106658060125754698347153801418393585417631168145530887195513733614957009790406353642778253431148934143298744140754708273665953562345727883540398428096556659419146145061952155758066879297675702018687355665808644379967251088411961929562898028711635494279367590674535669289250032937766151017061660434808161632441895645565183839028700508032926223399378485495637093146366103749723378714412919027211295468140819141535374671772979444040355527490282638872051762810851298836759011736492086917862289666742923356662988734425668079242099059977981084657022356737379426049841530186786268162059306961084849539821609052074022536904420212906461823415029437432945866417979067456233481336914736324752214144985025327809265094116985876113109048765959066773434076080834639583695761131000807950923725368775545458069215262603981734758267850937213244059752120297896290149144073228041727093214685105182469180429222043463103565694775135539982551245340635243084637719464090973373959327576839771324546536651255863530231289382806752442398960917647931662891030376991992137354354762185385876478908135742346008187782280447215394273531150006731224788526680201322951735026584764842756929920298018623622175965985090780670049258021298950020329505195391557396493040333083822651928671780729117698568799888120187365806155716203949070509976189290712578599449705468130740062713213056157445802089486045189692505119687628233896589070925282215900249096501007236542644717833773448575718436536871588909224492183592969235504499818882506593326956333029862432738460850645574427224520852460206813198138306518600502954071897752782362155122197056148653364228203784581038543870297331892047777903900701960714257636450162280223785245167491422393560605978978404728785185922223292899262892812471394984418132460982879482193484730508922028215371691698749037411663059651712210662415741504380601267425037786811423339123641809769566881827641727255356651007263452054533807219519905973054619666436708787117629928269420755906785244890965637213033903871520222840042686417464522426651711169008580811037994199077329534442003478504481340114023124142373332529081999433579758300576239064188970804573004917316401381768698316792891609949868970502153662462905606348116656477213735129808529537743837083432802468740827367242440142652782874524585418689164670558265137300282301233925878189839039272285564851219213810958876537330009411819390571522719093995619739197083516981716582108159729463572138315362345463618831466383605748320982209672822157481553312449949383156340898477068983006973867456668630955814422413550426836655952349275199298147226115649726983459198941246998563509593140635817027560114526598599334452286700514370443178275615644097120936746183974650895908251561630967152658232125559769834089494983689594759771146705494855733217000490021815585762038069636801554064370862643502705388602405498469083102976430838048352666942713147136551661321700269365146496019498893207524950202757736006018421002151721042302858212960460434031228546230406991053107502026420069602875544338663063658016448142732176882617089956421431211966228508311089353706128125966178308099181910968958025192295514692012288594871513598630761762710676617985994677273220381755014121042363643996144910224892240882759475119820165626150280388409859486777346962317735070806750147594560843921403762376935402361304542330968989755220940443992401266225006934158400725017523307608839867203503404221420977463124024550450731016083948185117097106657541547037356109405264308743340076634300029736991684875435528067198253574087008595298528318195413848341756884015303472088545007771269028869237843971551928747228586680564644244770674410342560601701700467502211616629466525953601016489644636918198776334610784890726934945793132628857272135492962534434004348012301890070464121666584173442459674975802849431955075611481053797138136084654711648505470238590153435409671950641797892187631087423062640473536372528738544965417274931922227490124254654382959145549890538920737855391620877030845194810090004770959451717719084108837977495773999486100237451238838381918151971213825537819949118674621599347633259194343921008060624892693968801909371523520287516081820653263759818235768159927244521206668427513820556993768622673523184236895460421659152381045206587082555071827140173143437193419474633248216458956522021918774047782069106158039793887089896277132261458902834373522442678612697638450759925278278790232594655559692035131276525582647804578042780687448891617879530877989121636434304590792352042774704470354655350982792724385716765742782882020342273972296279597962271999788481661912676287075366587374045349099734058818491874008694891216074525325530927959688466088462226815672868398010651783621308059117098320468390326629555655663551863581963967307275725330922948300327554519170580079206782709634223280260518384148831986610410646580549625986354239520047161383566658873101576017732678458751412751625884032784776475270141236614660864276563366805149498606972515919690024085712115178744640441080173383179071567078003546634144777483485849334815044637181176905568800859677472436665131750807479528678109903813150666694930909207776676597120148988148227054392933910640701751780253921006854312812633363492964787539106201204493206839312753151195933171968503896217133781483977318973238073828279667372857101658121281739778143849473508385810106965061730355395552736798209077690357817580269001356878084827517585467847895668904294850495898531429606266188150516001864123615009044059068752209406849982659561912930443453230878890408396397995250847443001270158841082268238840031020144339216450437110580173984821769048878614188780700018820588068479892875917050140251358186567823466413522227668689400427467931977354132166541540143881235992656226322470974297078252992199446734873786522838147968977365772046065266226703281832928102576656100699779578308150752461234131475523291131809747360953967025458564418511628395536561144311116654224909008156277639733541536909526475232980954344337383825901752864849246743475381969088831326343991643285537161635152111748064307716290043786710090182505255779607206946620558084164828614594768564763383590097286837900868908628641935808788897576360984766268372164688769979565448234285458433868003255872317067768338569206348727458550811499437798628482389020524621398778404606282142109049628461100261965667495340021019802598784595612576859677661738571456806186590297593004816937239919227146708196505844112950145218353121997081863524603850759969117096399318056073323005218713996959499691972062932503964155882682921882159996630067640260787808886860056793768225677609359100439659353524737127017196534557924503148757297047842567505493684268613766347293990328006145898245908796085903919182272723970695116429945354414880671102925396240814584832274770325262592988754264271138489405990109091119709766238183612703054257580657052788033499930020110526548824281860394056061528196532555319756536049539898077853006601407280229152368867285660315033881316224842349175431756664868384669439523633008554898617861403668572801839764936771174878495434825731464651847839407773458874632674177890916740885590508364562789540671898869921438844588394147785393903459621124168627987621377632807753367605128896799938922688166151102213351025954088291164853746192145067669918912542330646210502957550208203758093045743662882581904630854197648119808039398170874166799868981024692324990412072535683142137165290495500776769776738230190619394954945301661388440910292407642875576497787077198417475671447962296195355569492070819572927534023518127407980628395786649422596456856495719679963602977953026153065452983151342663418421200182770161797338017109950956699528375603204408177619148825340842701413752425898710591623780841949047498808769764584819171006437205253579459434318876015928370337016506905450300183945713787139923127722259290217239702821294897172474656933667027402703906539423633630877455411212070732521356386575455236015920135113583088374506002420165717084410297837842067006825999693663895578826080949773568406899730643387923426983407975743102598624752812803358568450907593670049105601232693472014051831341963587542459167127700334867291787455476586418203247872451342434302355785760545337606710415110898304080256007826260188604972163289185668118747342560574869660222444337796505117048637500933577432180864129033102131082902775152624099666786550632850522582867986335791564141530939265880954326603508520544043700313938713001596778699690964067125373707666154718422294017990962938968621287654002898206544940684676422660992106052321839490431964851038167227590546793695868245006941262959641216178339547720092517744177488059143145844279060300581409495455806622249893991175547745837867315249571663804546243283624819868422208190599922697875696581682486252023844674042565079167769252931911587982252118533897846228767524845554601746406275200794253566831368178058323507624359081277718640461626764883615384520696559240387425419543827726347370090715749715294817463562807693888346118975458684501609226113047912043681676431817464086557636905826793972948012619684532615962133821833343130510598548406591162730916652112722182323779171780566779742688075992467980330898344955381599838664348422120920865225827343614651762315025379355905008919994095385542450144278764452833136613824129333004780897042847173247274856733003830156976583590811018135420539538436561715325058492344195594780025223946566699756831318602261067399203420274941629606608204460486708081601503743283932673858936601783072887390628303902690863331140990128086437099563516506021500373985762612762693969417822422044393921998178378314757467179954019117045064510397796994191651941432879538451463438567065618913751783273625360551746773485974661491884177974432527158631361200708237814063616045761099641842639385583689914389054856995825497310816840482298069773391573181171794942636454780318380612098451836845576570384225586760987698498370691601732259066492746080570934646698874089287290029007406980706527722228498930364744312953993582549575325746307426829058690045394312892148370804671669913445779619411777158545154360615026993435474824803408000856430370682613838741452960794393489132745631913213400063418198172079849323016352534092694301103325819648531747546364709334523390606947885946505034667015657788184203821144596836292508869157809767575352492811587765669930635482045956944094911979788568007318490558865000700370434092749299715954731104339248941178765276803724181945360175573042154795736486515216029278813136922863973264520976784978061544457863280158788767005679215524265700940868417286874653732337902659329714075797948715077057137579245055101437632734151682378107391815267390136388862185671614474063004637933897204975354826500551012527701115588732076687987065358625654027218130275191069089866721730645652647766618964450163377502559443433146257707407566467597219259784032735653713978121946670072416891885202738157416213410932509380761798231762214514969529311057751149502056971736381994086155668181128592447912482228444967310474074470500973435428166827051233827980914235072658393226927465005453074238351012338828385062341937608776596067117029045657857987234151998320453857115409410254782388137150724776732287191141556584417352687404650389498815830857774236242002870564719600455701220153430405986227206844801074445455927606817078973458605044043604007661167548375012871289396351178964191143228502702391123761583961907509106540808430641730844502086819421841842047393826724864677070754830338206576034443232581242423314940035154883209572014017317972427007451130649115192830745221874581721222790584272483777279161799612096267538469665975259395887936034894587629332423863304559263453797438271573343991217205398934309667275594121217043359871685451225175109716365648382357751454355545940365791480987175673330758489373758750076088838330720874336414176085203728328129063554173860981039474256934561033949905289947363155804369079163323226436443131824067383829841493358711531273906595239602306285601245229142117523780755960195477457388255165510294997749871867200022170222145614485368888321756867478802379628162349985182304242332315423160897234849274718300686270764868602796584041626170852077034601548946111714080108515611489447270246076677598111661713640438979665724872296974122538481410422513184574492088384852737368252832622196184363505113433480451206863709909862743444322744994948987658322177687234415800336755370055093193461362282335815654127816207415637211824999988561793552967286478046948013851898490382933072877068427975104661371894855668578012835812126665195784738993283279144194451196660630276707754941336309286560292353355780210063135117958122308209636511498899788800592929895120841285335932224832515464489256047857547425291184371222988850115174681210113479359601373405896862920844611056586519346520568027480911465317566610557780479429210815631093605029888422107589651569140730359034950627091083336884598807091242552378773788659173611349285916061168429111589907545064212469706965959860706561579901787417658377781562993171956750819978825460609395678797838379411737028075566339438212678501663858196112982989848084817399504314755944563106874570996316216057770014620485827206124601539999014675151060222195126296963222374671860209212555872291002402907302187841355803945544040252389743433666434992287486482572504597352449487382429945472480594795933334660959007678544393997420560681528155076800167623116905205611895545384687899508157472334627326761332826514489586339438834513970606593945608854369306175048052178982486290784638065258709176281280718080732561038415402678957291238592043646577984198159931846954571740718682998536074866089581186592912906453724285618162767654155668028781238632910166723320380152983719981932056975069345947180668628693969976335811952389645692160866854648503922382855093872965478119256971798242070142353186807553497094882335798638242480484984736945193338579300342464823326328405468285054569041947204921850575926751475353392296134888547706774972204177732517510369175142420948170091253263327605584170144122524393867384911803252268603625545651022333006614933521123501243240873653391396169821445999173994960253556949484400253879349114298765760750970291288800252220920933046700607435712695072332593149843410758221418217162817520093173939719375668256562539836381879742110397437218105678849388741640359312942630298361262046634907949002312235815048884097953600880308225591674924858900490979479619360941630020202140409475290611165433911090010206067464162328068859303267229076995036072676320349653406063553238726111286353692707068680002368793770186207328030201455023850132002763008395381725865894867726056151628860926442956371937342210625475731452976219965311050151056882564622667608766881526508853744565491552819492414070145438705794081089724746946044754623470644836753586759137598550604201938199081936953545160089282646343251378365238633930049963838174941678554462981038309247438395279883131000957899615275555808354828529479095032334459492792243469580360656238454736526565207789402827643752948251370769813912004973207177825775291648618126440326178883984426827373161156917712289819057772703614426269924207773689736249210506158246432108645029596229973829513092456587530460481947719971486219860165327414436246301475536726167159639931548673075160836349380992422101117126905756956144127477757827983514474692763317052728507407529921088921755130508313586875004880545599063845514706739514634322160565718708007192887052746685285335490170392345442617303819737766637868141704378427452999064642649368395061118310637215319687229398209342275468335788198092303277458144888951606166277525034663398736772407712585694067265047693852818400947019066777330739491153047598129067084898149890078967555338675771858583267459500116388081075146429527998091464729528244519515079793721563080990174137372245848339533470415123207846115228308294525732036773301829476850135701728243497489312079856695950529181865624104457604529397550201805480845391247073955274334326352917675771755303499500183920508750907469769028585612857836458926800088093346210692104865141499300795374484457605881188511527426555498385110870491682325759651942408684023677504536254519071784499431652646739125673264407494401180806592935320752988108244591451304192599875921974044154101311282985186084308699689566618902886135697743226414342961838571359995804357237422178696713961120604638149312665730658367454844611670102016976383065346851866585376947087462191700679886768640840869769354852944945905392330693224248365443732805923067799520598077935628730743940804957081122048292744929974247986909902921804106053796274851841743547327208994047481601706453370384234850492435543305594265969781635646754321822437751106297279182663967358070293366600461070295652809079726136683162894174407505597311332103203910718700161142083282130828094516713899810941079904074097344470947522366733158162255211730673289152771921634985676884232844575302361484250746584703145949728880009140976038466570112769714019151114648602171215268676403150842289240158508035577508088162583675957255622942601311864806432973277565398264369608432548442577433285977904582912526252377380285633683574247109975689144202566102557171949003296470844695749238922931633967400111070948084388543501163181921323704728807047938178422772714639218424301347440373823394894494426614549103216229017175401710404126450187618117760221760649362586157206087754338720098099007193169551314390667751914485296309577852461598005923290055060979883836933354668604048352364408165692046638321888464323338028585587466520157771135993407483095945405047449368566395215508621987933878941795656261182033468430214648088050815884043978036079148680589890496006380620309480817464571963694639851028872800835045938380378726649202632302262273186933382513698024180470137972240028613614651230797242698295257192079060804727414522863026155865710036222726301288184219641917278940014323778775463134828861222437666191877869250900714712801907133914105384936389681722317916868467039760873918873118302649875430289144423800913687044219652975272483807398170583792403444205501633387862235243502144304068828964495639835348883588223924947794712808129306660607798624061352175597660181419134130505845097056074721530272471587485831983770480668243610466034316904012184743807126902988937734823366298931265154596796311870875668771245556169121375023679012852097080924490451284263573152363184757869737273932925403114861961416820171852218056579096341867857535783718400988981187168328152543426583953881688309111662994248830835304367195053181705727811330290245943094564342218807609099975542370722978440736413029213885575928278395670516398520230304122653741395939697899161310731739934311491775658682035647557539847858803512391947647298664271043222148178069332121594696267737045188772530462923747561513631958115300965735491164981490380178127335794504212707507976902299577807672030115283490726459388261251954856371666629395297771958512933282239098963015697662314537354071111057479905991591286964580343401446930386674892785549676528872964020836988993862066570131266340346442086608001240790520087090794766126238296299334916578905510909599004133010892760213580744216435235473316660242525597588668660806397628237368762614945612652446916014282649514989457945380539051695953052249616225663298848841730531892546063689220560801702153996983324673991108043321871301463214166207332308999855943628260322321329150077411450476979897211218224256607344905532575086232902567867544230451364373305341948060276096421092401707557328155488746776859332840615221422794173805002229835315446843430567198102515156841560388058348647477725853263633886603376270133879517516682195653632112158395113276709844280055779429245556098539781804595395085167145905109852677304434337037253982239639169022933461160612248470258741480936839046865179026233008666029281306441096482606451981358385350779791359134689954362509243654021506250703665771806457584627717313404075284043032896305065874983167846847907889953650710388745581259670428049276344294882628642986147197020085134129733336117398007467381396449019623837132223072325019492988324540226788902886678154771573322986398245508478982732792810047673720261408407834373332347337602397455777362624217537994195436336254371732290126893374824815853560157927775106413352747590719668414751006838304022174241122873431467894051471441165497125160133503314600606984893811703158853446495335609107115288007612908452022631141382481126831326993649214542885618078078677034191060069236476195083985261793523113724784475596647989396514336799253177480116301926865024528037296107468844038831291786423019688260249270545686474489724251424089846961760815730491330047069824876504423997805006330948317358172277415473799097096659866108319058242290929904445611396983825843907574780938063155790788648423334280336942256714682632482540085562941686644403542809912168388597935436052741177287633375803197922206596139255951622691989574436214907292530492659829273644050929646027810925891392122829030639192688694812961485605577918076969950845185099715926956667169109458607840459719580645029340751946345467290052611279162298563648189447822409369559420493221994038460478515954437408940351698054676149645521981537542914166690122267027424032457165230163524281082201751805535385455033783287339758679933713842013211985866858835868989693250953272861029996618696740448085895511209525790721736936772472322783976724656166678788998843733897707440880899837786293310014140423715021155403838521094197242750158893226335509297001634024892213954346286202423114318217907807663943645861003392520077290858027797627147730322220259034077768333434525573723734121622634902308635253247879756027095189950861619626534095941611708384886028140150078771168079406525551238795224429845984792227499895905445988118005664617143359963788655506982425449251718231148010232442250221850267214521238217022166202480862545664950901165603172337446586072795941766452472260868790680807338771071265489892474312863379208596011173505068676570772704401185940121572536262000012764742837895633871050875876689004877059450053308601658690942562483524454760038463234041340546048113401198164726418276289070622382240741391156358521788209771821091664255169605552765442518156406786486439716348809179165626206374435078625422749808725596435857793468761757354948682552728695092326882089676463323816565267041002611547469866856929027398792939705725807258379807275866068834865247220647990151991719209836222642196210630394359165239676124493722218463541091705065604324153844679159189321798149362412285902339137232240105366188907034893004472125795863916570699003210355445596380271861303587819036984500869040348672153678457657373305561459080402029135456723241820477285551894376628739243549035370902035127806780127167438027351465926575740891209361647165237714653674849242391454387059686891442233607920222318113320368039230250916026418233714664157195995839060997837847587794187630009972895733201307778196189345143524939169461062195000526040043972871779809673576418833710307458752072770445005119425775721354592016907388944116265403781965158785598478265550061633354611744294554862651611827000667547863263583722227483406855031881257895328525501064255031164274858268562158367318587510904156494681987503838914857633720777306842931729198724704000367588232952652222306352190387981092508648548788330304082810471040311115085534403126899382955235250510088213804369269496940148380183946778748956281151845167078465872627396834536565643764560521755185497084940187153919881921483918989964137238375123646847794316664737825211355697044188713543826277512009180061380273520086180326836462654336072680414478453089554184103813415486474983289212712156252841650446441866676253579323339273556523586344495336117270349171297145329170383247551583411889942920269318772019356632219121960729670193271799866550452179545552942994150069792728232996164769316142896300551169736868878750003063390288750165600469819134076495356702088444438751594924557747107048785868855521041266873664058716225285610723333699669756273466762258617539074978659115830656287695241256336833051985186591207959582553237039803658452978255615238768508124003632557453767881490634080147893631339478498921520874242800635706092569120816810381547568917455905379937528420700941380257362904825086255993828134226273834620301811026041896200782134499515816590733219462128734024677877921177471713065900039483346714286590484872166692596950282978256766463193801731345685301461940043828901949194943283533000184473603336914496058649219429158201130351480263456197829920497631360874568035195244785728079626545940150547057411471279183822174891295571345341372384846595301252436037316155638991924259024340880472998980296904344030214175944251256271350877473647546716779014370489713566469490320269596149685478127881805697825744644508688067229419886692874962875235616192551086669481456951957236914935102992329368308172550672787517545346299537310750685875620950718496091797172524905106853770831587313280409159936647296236579409149463473767964858931132681495257841474964390708964166840179682052412112652938339400296301458587801033847515073299198584398164097426576059665220822422033162009714797814571867794670037632172359689807848522129273785895752973489526043955839508718335068730799667330896694260402446309764793250843027866631681581127342684150075374901254825596024894089810446307372311785189972474149395661961280834268039541651498697962600803480646324505071763722091944950713251305046159763629542776646029782719434664554605796203496443810026102529020316761479478443348575654487176714232182381167325458081255586955446199564618672919142207644488083153264994537493329946620975862775092716540759245303512663466711750655013869859852957595954608416494118186565619028496853412026006300954739984341067329354034343055853298615163389558474575151401985411492620546197688351760884689698169978572053998033127609792788839689168645149040854759997329034463631665719327791178139023231046431648627137706540934973135044691595559384287008612414719656500857874557811056331621509148597378596597094795350895165878897278729536288940786140482047513656599038888115669517800091457363067788043106047949770389966132860956619141485515917636443564129029963313594766411301216126998520741194283211264736676495959013250628587273660045687225815498923679296561935975777308772583980373381770433949624908655660793889399693963664751055749119984912595109004905374957732642577066060970492830197672788319110115643359624319369315180563377786033648010660723194891076138298587992949855596506144073954481384629554012369411633048168803205657885988984413495931045426191507946987264492770942087128441017822823087031816257223841872223119472384062003520545104177601418275383251156578154700339596493475689121817592408351029528319946317725131075533269302788593710106609567927229216575919593054476856049257021097544812825806809977774333549256355871804849137258896733654331938537270031433266276796134297484084518176293290631869993190210504994316649028963010357358217924164687570855900428078458087259210280924392735142216593954178681454330294307616822050817347149005630014251320445589109462276222380006750848802028198847985754787640702440345374189121968529843605274952244797315865289447596983775617850995543189145140910537617606811938913913903676823149099272435530856917276885009698115470974350740851789119370916334702453773907095994401869930987474243128746378503220615513111695170121033724626290596773165603458215509150738067932586496150348190217038283581711848344056154589129246387912248931022686901284475980620218769615492853741186247560360028154922612349639023575615197718771060012473368241826922549009192878600330760757446376329173782656276495540842830209080048475105210650353560679390059223702048331203075324107622363102548333674931748714980068702621734527666861535131431466388474252536879857779210463807348571424139243711684256348923839494371352797151124738458923781511932365056637967762914739778102707840864166423433750142852471296461930947049638954693481735683716505429904603922134513894553421766518855137990549242243490738730308291209634649917600824209932402426261977283749902195513149419966394165373272905171624332315959153451634842982437942676484063993258369883184237436818529769240162560397225378441988664693801344278805467323196205518683523775018245057447191798254568668144939874382808687766168516109791383531148611093645257853902825737557685907076484096212916480228771573153322457401185605734256369849548355456065712319364258350152424486790399155294615160725768505213566992275255312277658646123049874520271856635228542524085473309795392638156807650011126386233837965351999372134241425060398194606634962660500002768516463829647816946595305971226954399728157509032426144394940320269224955889539134028191903352080151711913042310362661520739388131156591742120813035087381601945395968876718487400302044394986328371158848778992815373742775441548143870226388320612805876306957545050269387323552516239927367199691918923595504623257248175888835063197203091403010492383635177892294836290946715017223337642645783937029633433326336222818323929382059548653032817596131577204645324203347322359908543001629347596995237380408108757094646943571420796253033286985849541398113575950741316187195962951580800740634141953438196878282519564339797814039709237178169631346781356159106434857036313438874351769407666969034159779193265976935210190647580506161347697823343674071129422715246751954654368140200163442947319652046010684486508311143904726631124224889782602832071095519829431502677873487032164115292273416849909862985582128470481349937208299834267563928761798833588204018737635440108214876477425476268436703959514584106616597043985635284011283413943603739461857976306424473958613579255279385147799963295343141826235196267064174025635723001976500818173914335318609972808192965733330212409789115293975563904885320740733856515541854409517160863905029802886809124061537136753907031391875005570052165938042489185701023505625083503727203527218552197802629298151253278466711955490071815644627180802527630828635400503030197513571234886033611743353139203391446930887243178398175928392187199182532653167542245147076516758232886920831306702310761511745123382080989420665871630292974699463785331904346885724666258893154720978362370596385767658361266798948834540151958204313998498875747005678706878853263876202234593689357203181918607437118505149256521496361855078053318827010438444632171027824199841421256747806918933809375222301074923551654469287215207318898334079148036143286253048165574642735388494585789108608633414660862215076157890145534623995446676867023962295293593236831771045302264774513765100578572285970719490920184942345874531297882128432225450715413495449846182806377396696675391497138078535018915741906610345313646911718504326129110372841455807887743366639354310953316177831804919520893670712286371050413285926443270195869559706250421656193229088138657667044881214555820858497106191957652014848784290511203204360696783345312647720840264826430031353273626263582781979436513660402609929873874836608457602368604039917398758125785130913661447753979105936442758487817649765052551494978116421501030681858322877824333679429706180750623452487728629498068321606271146354387227304824959148210204966910815778201148813910135610181694434566424411334351322997251604134307162022356245566988088875430624392477125984423696434422934134241936172861925522398028280746721546662932740193608129781631813706923549856881567649652246086268182331061012929185951912721149936963972946193677561105950449276927784609546630955368061150078661170635655884996731591394950494692560941750709586070357090075326777898148059730068550931092485085465718407422546905052486566201602165949284456070491124675795388666780074208083764700102351985655692728353887415859865260589576634970305540267054287549716075791715941505307970883392655835268945433980887941065068667529052465273146424156971527676964402025259252211681004106508606582821182210401465625173406172653373363098530615330685958722278257875839533351682285843909139405864117676696845610935232879620294597382870156457074431332419714564016895633785938248701139522905781390170595818982089802604763254621183758368257412017257933599922626504994768338619925037294750795702722260544848704871745330423396771051560460672193137156937956209016621803711953545423019345195055853207246925065813739537251245368499115934872910555274871860510618325702485451447305427246262990017921491802430700125911541805344880624366482936781305367426010428574920284286269112262891278075735149282451871736134524648975144692325974205882585976453564447496320623696389144319670653532845965126962367631688164262842393354941862062908585772472889483905467193011940733012443713981051121990252046860313122427660304869127776197293144038295538225787551259921619332375987898452315546603741716468256985484851066914186816675837486362121905802638927894704983964953718189980173523197679672999094435947937532448403262086670679699265674297839099312692334506728254998962608791756498228054182607193518955887096731441172110354283285407114739098868798584256607647404337950935042386268329007586109151652767201476995614063520311108923294609145842182713076892732917670801135556784255920818247655609412079724991485440413964082378186729903968076981217150112717771311801625515155306799352668061344856804759317262820963779803781376932180174016232317702952567418307935526519001120532881629183767262187872543122196896707210380219464246997063542757244947296377156079808124134745683588554032854751264739345375150535041212994503275510394729477775384540164742712479288636752156912576350609967988958945627438967707067896845868821030292441580482825930219033622346414764748336833190892027910093898198031393056205548987336607409445393537096495334592451876126050159078458058748887647916941035196973663610541870467437808381816901064434365814451649465954216869062159151646121230486866107080773002752815948798009612144580145621626969946237349770451088861122896095978959216880189178222424981073412956273489957010038594258019217432004430651518966754503611533105002156595486375070877813552373623380453851239117533203432745616286703711519054658114163998700171521064299986899278179783235774670414569209470161684243645548190999978576505176389218183746168883222986495029463423326608595927412460136514075384328046348269105359299403754993616333892443955973497320551255726924611188233135970517867221449879127914445954647742761897098082811966067670213363144560528274563645762920568353371629368802412408317756326889104424531865508178156014343698522366466966765989655825856251495009023153074104616905158758146745780982021415365904546611097759240225273779371444111310267921322862555258232122375789978239713181851241091227674617182664939367057242741219207915215561513771444665308043065072044427919182725785458170098134912102881514958445107784714538823787253603973076584749071635382251510807206791792580711401657341564232340577750359399269851142810947886416137407680715538818557631202066049012258260514759989638079993190483438245258401179895843970400456530739882424903044917674584151289743141623268506858380615768787053094905891237263593102359584102021972147240991242178493623363997061340413195683725784475889203716087088440110342212424839772538454749042915224554845733694603660839451236114980715935726692809854504183851502525959323163001066227078096276136801047843758558338394177588521546957716513983449406708705177576901602157685475314785633744834768577970031063848416794483948430810930486472760482217221258085541696645760272079937305298480135442178963116575107856873198871720475745552192179040304748303576512724769979368267259004294304770177049990604859033338192855888490831839919948561388613417556792253852805976390182486568550670749991000236330761459745267246385888052051693589247556641752500681007017393545611176777597193177255352249749717070760195559949939882697675203608815304562995410918398319695671472990784323037184331974847208053479102297797708552736325406015859700575206789682019047516146844593414601914701144327397409402056104432424629235545413066419015454438381833583825098643600231118007854775409274623084627710358006812841887364904009336634552035657459578770148920568229355839878668594652377326901440594435172956905232766668870253007904252063065767506876649631290528619318847241205843257287564296331315980069147927009190519594551342158739414739561294475321938691316755534191415142091778458999173013393964956331318143418551797768218471747376619046231524762512846588703286285985623517536372424828891923561752306527399202333445525193649467649194474772700116694343802756774978191546730457796991271723839293273394500926080088148593205548590671422215320580812011452052935562222301784824187540669784024358261020682407003126760698434679807844550204432464719586289459317226734430793164095727480746197632859339354271705792820732145207377745735508698963844933766248644032111204020499105270336049065753636317403749842856603657220629095163908915531840415609562480594991875359739148172019067437608299841529569751567685629288057898395672675275757299869479162531006617762474443593990866378323763799070422173645032715516880556231837742266073260322580702826144371527557606467523391039736940182699998438398236751663683237874802561573422267854178503833023238810162912639770664293589960891559234870459986695613354720483268527272083195115302350876822365761721190126507781669488127731224915234540153556675765560032980714165290125279290354284431734478569327227849246404613080125825654942169918366584444486312690349649035892598507068188795731833678388001184077117810713640640628401410121440379671160794577259563108319826811462971652650054368633003947200461816687487136835343758795792633506209874320052082498924125219998336502265620822624701770684533156504527899241512664114979409038431186828182749300903586915639886743438243635060847788884692726537385757292265778960913080253637906711381098271834216279844467833650651786636003861386274339779451897424741634894593912999573445191668852129396562519004099932717837573509619641387117541422770520909399812682468402026260881004368937429514787196885328979741340466897012896492512073494941743031423959178385373549172336346759090742015093919103104460833217109000457096880649622215021298955644232026395992005848077996310004622466594109321057354981604626733700952696985188761192224829542944797870471534437031413333349959228706897908276591352214267768511548382232155181740746915409718688657876916863424748778212845019440837786515006363490748039011109971624318894805647932127291879359629584021560167920003667914170871177440213984138329516111264520136225399147377156579621783295130883850408976537571448612013961818494123472360618327861783639786861387169547006629482282608289419426561692595860949620542316963161944928380697772203895551375993099565397979720907042041947637257759679562318415308871273730255301654172014680427024353240315977729005660291656722502255558070444382472751621211388163598705106781071087884996649555911724468522678746826849284021092880593474806655191612665065955724179893366283843340601007768725428033360986590781028042032058962610059939728719176012372131461580685506658327574172854538199350286240849928380581064961774797034860253869070775028227715605151345722673555752961972093571074831334794604253008133997095540722620500396361830726880267779631176903978084790078411298457384555343953721806706836114243081951490099910133688320712694429312386352761370212959561233215966121082482851978545636704021448401033962050916397750191946067825633047955778291513003509699024294236010012821419684023962361872033256638518423826468256138575529823431152767370301769578189442203225036776665349173995248162857115682758863520958470157473501950543553428736161184482034985724314821430278110444758056196480057423737064555861124653564299809573400434054616776632656958273886015035753110087660535015041297323882068972034433497185836432521039045178214860403991530300908423337529512327909521045042233679555116459350804916021195601421174713756051890769302931493318967297463129364443581483974507844559136706548578218778221898077086515803056300083844797068704249127432237431982225191200130915797889305117194902283781412508594389771255351194397462683067498020410245645734198448960114728085105125672085993487796678681638454525835682690690675098647125237932088559155598360109727408738070946021793119560595509525720542553045921127928391803324154754230196057484016897813671955932253611510248882761537150879916105064387403103045137835446932973461948824118898701819322945255566946958517747690663582693639942021312228606405658282455937481017725772742306794197545136903300232426765998654476174698315685507549775366247659003748461279071662367879778038436224080844970814470840834537400013164959910478478903641236525827149719242567224959974570497568384081668988108848506137831196612847304637543284772476576904689801164497927712309869247173478877758195811616631989780137081512292388456668409873092595280420819308115841699534497529148263505476216128490218938514876597002059441297767785573001542326567144410696394444829853323782310021276020028637658706058225009732287581642856007543056160136099889553254028663554574315057668549363914384939120822038137082760466919484673331622317993712478716187655298555977302602935636649647157679746530071570591317383866286564098648722805702792864504041221563178840665957269816824773593303992201779013262313083721236973623451016564845868058239137003145215287119876365469657646987101982338116240289078836139273384753071484439500100398702894724026146393664541578199053068944540171798557368622034360705734222489342300864546907641263707991690236004222288041539039453364514998915592947701826862726632659083395312094615825857757972321214983159455193698069730195930428535813881414172347565565881210231686360404765909592889023784140333310895719029315330705563361166833353354985345728612746306921802969660354975321728757733495343377049370647385742969934225695828882885890358139857860010546145428884260947929767870832043566496693444225410907221233709957062551972545976257134315005718002278214069494380048400843766033654156469813175008442041705937346317376463435076545159891756063813362421816071687034492680790390321518661844733301950853760523585040276519120379173252425996800270180007635510565114263726852344622397151984624315841520538270346757147373865740206066590724800148683886324381796692449654336307309445827336274017931802024952670418296091684980368889749940772481243185376685976429497888685839636571474807347763317382994074851221989503138236023462360347560759012361328356852036185764699376860457193418372109554237168787354862062356937028120395299948085622791223160285644778870019656247664318810579251065996580733265395913165946604830466836316974830921885318153616857722563231560315968977551342175246368223691518684625560218221542299722436270683882935532835928778851818370309249543148631222903494303405411624189663269736936338633518258959546725953833127827929372692879051068369301990933022788883054066860297549203200031767497282810694792939322133371064070624664179347609074005557242598444856645533989001309525825737693779629680709929584201583787237414987628319246127338962947260258484212473149130834091791120147559494431832482268120556722337322900674239706871081265660075807136220603410550248208878632554381834721419889912882665414802075337948612253154113442754892523938245878650900262601087594898430243106229015003194976343039339731894889203369603477531906264094134168785431414652468159664706009918977713633291114427882381043585364200064614411790677654459268765627450570536980142618007127371737202279247468954969351666882684998821486874515966149728614728710678645743397802375889960231751497957282057642006069957474811890212467828855670246731998699812994210115900985558206299165045582249344423971052540552307019240853645425387134846789194800667550915371734389167776647912169504523056189624996921502327798547636324360208661448304971994280286074884888656801494565360570629515197802864242628806895543236728304288595682370515832466965717482567273123340752363930209062885257624362620530171735923235222142940538697829823135161567173529507380333713580550120403182294243309424677771576017723661193373705164351663985585030106835055718043221085451318167126844786781319674626040191268981265364428865442812177949061640763973802384819780268249805482291171849745596993182247396257271143407380934010459194522938341839982085856939491239039956314459820743003540811697625796548376554698604246733687183274587327034394016612897592897580925893834358898107827269988992349733255183889769460272228008113187811059130707279869365530505952127830883036169534625692758863051150396119574505942019790494724294284469380667368328726557359568263343039005226106544822766755773556549321330648148652145418885898539885935760238745679840802919171115270705761513972733641572727657948901880206355554528898360730955108127608999139398215147710938558028791552723336161900362054625210856684701375693837073993847324850682075269010124742698324805371028171342495108072538263221335907302066505049693796120269930955556707357479790602277692084108762988859514819353029430735498636803468779804576691223992372052571282827710027648062556803179030606081014935677003159154682018531736197319728249090167218183575290931078674954695926872459391971784828463180920819689151325925644386924431109529592575161280787108257360648365926423034636118234183348745204065264344446063471232343015178653258063619979895034788448397525505526030662602972973049060825461176596462740326100055768091074100496453788112124775173250364931970938752415051062895303812477418065639597664622770631344460537220214955204264961692835273984012929683205814892911316117288691801752928089688711125769224524481941502428807251687920401922588625141607226535197625323991969520565553031316115046985249256904260188350818383802126653231724673029304651836560450744714627675655773830809360373041909828827769692795986869307429042204926131569835487562760060938182735252434404100244532180928276775151189570142045484214043305265950081173654610862823490400334375700697189616906624442833837136702524900377587622547403899742392031218156462841245820402924898177365526363032595237691695661855562380299667798824776911824651125916675673053787785757941744502469473488601381847275567428923245115349235542582730184151327245193132547632041238517250635008025582124199184465216175905059750042511378366972691512633368599696356792703157704737746461558947546100181609491598332476928239693733987624841973483948691237480353957732667928972262837917720705840429285529490129571188878202305586048097512404893397454828894658356194133711832135994354538799204124085240301463298840572596060926693723481421565590614223725724676211453797943451121655976145959914023910045258787191404235580308888676933091208233151329419901593812090609401560091806959241250234712715729563373570241327218684126456160127919484906646958434888880522741942132032923740324536365447957751191150986247842108675615783103663120666090938703452719206324588136271421415532619195773357293723362049897048436526311970385463594506698729968776663261427518011283171003649235270751193811202226547619280277697040050548663711531264201347346520282231555710075125908168436197462823444548191289563764913163928431104593637107065226022321376196298899664609568983823225970413437607748302587799359426454432133207320242864920072896302255110836845569209736516215356283024109701423762283383059518783365058105385468339317270179785382886732840032556733053960366810747745528202954959105349311348349181248999220429376419912757611979711264484316065012031963051057888398054336903081061183363764226961682421751026746292200620619121211694924641421092797270890795841719036255961370511568823570275017493683822903254062723946695000612513321640421253696744785662179885822087843059895496213942058465823838979041719387172449915102518456251387592037672475557534255323821094839695165223315349523483457258760305493477371013837271468008052509090562232331186639873967538012626346770263541082752749142699153098658360890388683476273128829113134649822886707074946967917631451069249275000580593259408604356604276299730818711874059242798896771618311066690983605352238519395116902530772329084338125019507700792235339676059671148270670209329435384832289292033121937684162151799231513299533038014812798663537746856398560972087565404384487335525939932924353212419155932137581233698680277200260868251426604345686888427665209903556084079722335630278735134285419189522168879098077285616712717827562003339595699198964601789668687631335541806955307113619845852049975344171263410042426140125814367974731170438068852632110752661734302189297366567495146059498626740439282762681728804741181247023298403087464054362068758962139114358360539194638993804498595447653839369504239001379370882229782943464421387067896637226513517958245710899298527558805719752439392016143224048092429113868146122876263632729831569601428159078906496875379571836798674345743971586813269501946069182811481733828899769730084910481258682752959622652881070090747884049251156911737277543554755362814585038095482702626104719374495333330960299692543776636912711455642566128141951948637861621772445560876018556259100331468432944298484020261633961834429018001476869199812881154026940072449341149804344278341125905251044493238155898952697314278322182716905208433422197115575058834436402613878199930665889789419192114685599562095041853044303671359856984707158613318279199016894635964986532290130732250278904088838162223514835637098158106453493782806262108417704567231488035497784224790233310591174408207486083547093843140408642560966020651182883654032488462486992951978946751211244778677105407125326270984976095525027225031580580050609707353894504681364485101499393707601306428043134342688660785611146468507933529006834259270886345192772280015366922071802987799280044942910188930172713057603691376952960540476937626389076985238373538338964543707760385347703279621304778124435213824568969954709766060091554218371438366441032887829691407283859647453344402878247000382008618359666318065791784438374218979740375150869743975920979865398215893715954320154859889095282128124866595940003989532754267851304593866282234243617988290867199943224147625538232631414382813161606439567901269079911321834744661826498588287011601555998243934120841655840037163635143787726805756997380804232225780081886476521757255167217232201364017824401279126434011986500897954545132544617999220737068518820840132622154076336377796661858877994502351381540841907804464991716770482310186116996256013842328549342084442834549466493099615958478435808203721585455432293820260222216630841384826790770912397432372880788886125585145278600496742492768921265230892925363318342327713219065246136784289942776534157499354732600675418146928615354341323597841235560576188768328094851139350753811204378349258563655544478559186623054829972976351497926102561597454740024475606204043797518044071041167553067891401629571860944927524644182375052263572734787741693960618311777786875644236077474485924142956277439173249720740721182380597638044869863437361321771783739632880257260938520692417470521371937008274420554185905684464766944334023081001514827382870121541632522963114858651836305086824238386222880470329058263868647745746427947490678289030766075909404794666999604397976291701309699207638572276495238264837875395644137325701438923089602154567897413611019221585930777318540671543450357475398894140973085060903320077966084934936932867414235922981742664636880755091360732938084826744077094712920603736823042914911134976187935680598774723925290693107738375347394305111088803175280128924979780763832416897253593048240066051618358022737742679485519803449576293441586918778009593393571680838959339657715828860719295108923922168377275352666411863553482764781053322010790881544830754000959276433637222666010593032130535491804434096891845626917053053705293634513402209582222170012996062436376119741632453021578758971224053812434448606121173946809827739312063876286391285985624194251495173912326850297191355414825944456375783303078571601581331552189791107468690421108166186304177095133309376277616612940181135050030646953310694988607912222875109231238411169868982825662630537639032536896776311576215998589167581994641055436038515535266868960591603553133027215113523474955157524047919533257178970624703850060936301285533499873598839169045588832658808436950478652406561547253795955039159974226954864992082682224152300479258040945992097715431171951454123485024531615041052582657157906917779370520614975389383973551467209837017154416270428025385655554576008952101601285567351592474358490395305846226696645201277773448312710268472027950130046018144321223534109082854312407779310418332600452830854170360004143816302079577992759285121577939657665841433424544600237621788019495748079130604363802178888284889592698492705193544004298497896923548579169090480810509808336012594531845636132107135606929990279156431371099311651916604641625520542997149316511913113933241991872965793101278189207656168716869398752921300788862502478430636999594576123288916007302303008708416853443127528572411539998428657382430472268704454442142341332542570846756892283336405286446895432253419594813034571813097428019242547511006173742219126077655632982085783612545120942595008130408669760001013523812199664786714508049544657979914716570143450235173246833267406093178259711663959033137715301058531070527818811676788370712066053690385580719574566366984834247866292800924540108733680759220331613107694354520825732411250675005632589203808790977802254033289069809631484595150341173652083240105520668212491124243201157860900565325306163054502610293375456605200029642560600497248093463523693242021757850468530808949020557868895716985180961191166513127737332240158247405627076474006516142810201815719256382520876783250587281280432390653463025678228302946727494011400352292540745795859202550245367317467504491393574168800417781728782651327022508534188740381319920313563334671014968444117670398701989893334432788893524212752499901052201757268631817744354248558756314117094401752392311127059071322137743582312226119321099885875539488265660198525144844346326133370302255480753621396570185841567300553513588246601978092819072401343119133884844764427556141529192345297947041933358775754921799703797575716397178798628700560226426578264912352243703425429526873614745232218602160568135537074294343679920424607938244661962267215814711768844673151582365778693327698215268905800898429726921819796121856568949309833693292622775036672735998993229908905921153403276915138350238984179706036065592990634295626598962014188851950445657565331577344099805299939733809088392433590686093098832010015265608267616432146386829036130061497184687617843563495152181146291009285714885236426665434502970008686945248400833894201214607003199577446422938040274697989154639578882726127668184755463857966586158816629914992395707759889378802425432184397105544788638699395009569477053719502867101342210090774278888741858748447962905897987810274474467402143287840044746755924129031957232011168754477275791657070677309217769581258678055761832858021607150808009511104796617150939155710535835101755834407976070728532843332178178436428253695503413411619052490724379575201780507888001714414460358353514121106479994183486776870801516188159554905758916059727207371505790395155651041794638487843182172569516287573374710774185970293013740716268518775354187318130109324662071418440754932662361747500121921968068643867828717186240648066737362433816122165645699840310268351763608347098439270316245392625886443712913169471282762009174866630565156836620703153550178651379658953498363098736401228471879531633269330292586916119447132664833782324445648580454622901425711126495036667502958648625839173406177786984494596962026127915815356408470630990538018272590319842997897632562247984411016712883088945854997882279884812419449833736607107998914317384989866767986055807351456243496809815848814369761349129378812272620216335314792166508017595482138674754361666416454104778296984261541366042158462544353588180317816685768083444142858464591779144498954719456108746630353859633981366160831016374916147961434537235294477789096817940464643418950460966873705572684361319241346802281079834883809069213304692935849497312900922411927982188840507595872928957111848673679615997047901019915063587308881476158962654694148010483740110209358850699472334393755727978223495312408966079971517819231616879064137455177144555686413792587985084382916424663627062932367540074912156907120342822667560281239938415953212714453353785151694873730761741063829857325948085667906190300592291959252078753869841219644473902871715710010844535679608244290923989598881669608257241023037905656040906840221475364028195179461098216245086768931172392000436056096784723898274305524796307872877647147548048033394464796151925871209204967010769087559604982295501927905386425048190451790180497852256345518694715621609595966985654060515051960641171498609790362247773768635572067942085742670668645095606816646485065326212631294395237469634856814111097346703857867092119634625868614895341007300366566440974083375239127836895686859720178522365480034532708931280000062517424710864152059324032163404636162412507082247240005834564403035723692243545799068105131875582094874537638707287556503507864730339306211336942470154382758838886334975191531816119705292356799307344649404066750070858513014427785306993460359738306720643846314758561310416122748305523255339960395449046592010009101816106233037281758421893617878079829998014415990012755325922199279351643375967858422577074345596618322966270816393284210460098518181763309464792757800885582252418149345823180850400846311084517716150026974058462480574474322820442640471659989106429146546020857586639233909321751607153528826639251334039260758506896777805430487490044528596872436320171437098410003049497605968915098148790774240047980337297315789776032129823309572629662065179621180062222555873691902393023593697047182070635998161529625342697458374910753980015664187920759310294626016865068157437323134505295466149907416392799656754378048187667571792222364176919353351385714944566410013957240358343223695872772056473950690761800109784566786025868472818881008066889134843432409346935171543731134771414669078639456513025938159253036743476240467552256041853123556239742136523359513129019859132670252013705921721367504390553356101224563818214120349704190494992535353545323196927110274082278979606519227945778027727555360715006338075830133737304423773489747089202776456253915153339048908587612084725378117797985089052248398817941002857578796669550898330517486794788831606156585825034877194021678696042002852471426016330422109054452504987335512997076031076779761356855722162564350738339792310968392490140373195584058780968737268422139163687191211695016408470531184448598079245150602340985090882636878591609384441540911573295326995323869961935526154406136993243569162135098925426372509344482665554395231241404213119264899080897058555067941376781715936080946299133139935588550710291152513153239474242937643004516071301971278364050684299628207700152351294422837464180842821323458027072952439661104487946540550604761179191451752450629006151670672638345937038149299079704803939039516455762835273127946931070942883525362079256164943049873053964866379858921352829587295717587388671941723605214544123673110041598353070668699049092541500162744774463821821547248313381487361033217335588603149453536447082126715674887273343600544647271650764633410217458937540299048079529611230349442140599782829101630999239621332426550093422988053272756343128773953391785448254084645437536536827050134573964754855121585820895654819796852760373875995316217896545173900704821079927993245676345133935624710455577152922671962092127012324674323112301454614986068580886293475179162283358059467117940350828515194366624320160309573217548903339017912179100313844051374435972344525814531468743603742041365907194842559502575685945979548094558347274402142812095532730314417380383717425105881903167484730649117688503595722281986046110566200171486037114199676597799205927975241097661972529339441089449657690615425024330654474163181740142109677071338141358806641350118437884867393081913688163238784502578766733820278202995456873601855152952922087254106115885940901739301175492668025429197184554462332772549395068147989974359794045508559484308508259343641377121060803076488031647052466950676010856631119022110258790619316003673058214575185478352290982591174977170415681866277994563038111113437887730992459591976378983635105911853574591833853640396811227905649759009149289247307368230462747672507003456487031300862613463663994340291053766372181178438981527685602936095800224221668887150975231405553213920506154062219417029797691683974085772322860457575859822786334638505347476313486084873607094625641171131031391010390434773860011950115218672097591856998309350196345750386972299936809950272438854392699655160595972622993229002653364410207786777364817449999081092805364552404263110791695747407580452074707175454279344967127072779984968153761524222071944212330377981900998286339876039246577678377034215967487632635127969312936820044611971875890898490720337233418210142959438126238415160511577341478746323111468708357435186415422580954139263254552633351617317276461661607585276758145128547418854334236195445952496082533610161472172636308550595013412386023876028655732549516063726962171178065273818442027005689077365686684079962977423430405863850489033162789284850531369446482677263219037297083412931939491481998536839361315575875012118977239663236364512471364908464092404087231272383222570488843397795161959910010663835688752210551373234258424596235199463397949362892421966588189812056866734140684921061568204775054157776471576179571585297065455438971374913533011459151668499065696624221654718707707214800510892206359400700208024268403193585707563948276254957509248368017918063944646742473288001569648880141502288915043247386718712392735639332823944878865295547597641334136800959768043569249838691576304511216863009379086347306246409412092975015317385228993883092807893760939061084194605033786963166980343259239360314263711074357799382536727948947302558577722563781593323736635724280344905895363971984651042885765981174489606619609794051533193642383727829861727665772390304316773240607179806350331565429032861846109842608726646030503050063754463716397951305643204170677841096604982031030402713187911079356840101191799034295385125874815692685324304042800515027859321241206322642199393884659820526038172836452902523897251161673567333616767254002831066137041541887782796968373971188728573807293455221291750217841773704821185861784473865890145586104073253114812940812302402321987501861399469785170453184343663787549454012165295926218545843739696836337371557339276001878260802386377470793117799738859365529633209788917601010910340977305538897530414029131039884259909855447380805125595334382322966921562491260109889730789010024475270278837045148442288281772924367988663955447012904356649449487889225687145656498754446125540884028696537708465261247550599725236943115797962248895411739577445685246822228607359784012099145629532252534052989505901890005332543341071959642636089271561848873349011797904806430191255801380337768594888995889025666904610173415725377185578341912549243326418442341819991962558753904175877265303332172580500330078858788538757146555302694608329898915625988187888454707820921853571496258354037288705606994703210601437884840950248087952103658812676596409450013545956443458215631616549666956138167960302328076015506659440263869568652692605065657914000999343024546778762766121115990199895605351514988883828359123473082947257238205295734328271624964080745625408268618100346558296597014579437582267773258837154904874306337732326794593315966450030738637586153975933339885984529507767946793933538488140689765375010464403915414291515231110821658538322439225349346163745483372361888400344975852107553837744998134289111079953601023909500532567057988537494609104151708852900547731225342868377147680186663190201971532700406594832308484454906296993797763684083892271465493820115128304922691352122296060221329421121998463490165522204481437571763502859918105886635624233997028119101040872932862707090483053910217635601872795653991046069676954511052003271096270679336682204788090566645216291145637501125955050910275577902845825422032491618010096011573759441907722265543795980380466451908060447294681370191996780822372709138926980209685490494136706460455483589885313755969467193473153728173050905162978637980926063056625557568671344612223059442687321473683759179984237208707586188236491182050040801615878560630818865783684528837684599247722716532423736888867525712171106544431504343335011406180438803268840979739421386048572192668505185480599449012888937463038017730400773128713918743179400586373888047787163589842331789018320781850881710002788888732147210923421784905403232685870297361718094374908299596904747595127531443784489248782463251687851829557535534879931985646974193858202875067080999574714622483220218515222825073033167339083239659287063672385677417702691736976221762244750034857989611267022654198768137525454668307483813834046294895556412389422070623062961640851363192028980126645159474400578406338117343692316789035031829379771508820085033819750166209526972033189188576979132176076598117942773682179530779263133144146988423968603757937437207736126067436457436424301753179964555304317138482656595833869839904767018032755432192720859460252947226358507933136106062780948371403161453087886140817569127025179566786360295074740726507142509884763219377220968972673485233814711416935838092018304508513535547258501731547766571893776561614966816383105444952721775385862629969392883246254611574728204119731771924912364073470275173403793378786786065256232631392932867478942358200022684348015532900367338443293909994938195976066088470704582384807322655425798285764158369766774732460022164746014677982392521781569523317633588212976542443639483371835929514706697811701786668984583852368016001646758984831085837951683512623039214013047451416334835644917130208119815402479550850100554043039399303996776979441230535016013228910111606756938017893663438821862203256583437491972669489602333328333402881000212617281751657877228785341975475457000761048122134914139412336673658626507033957477650777867906886450390513091834807439559062774164689675994514704376208834019910683199748653407706220072963767794772886473916097792287152472194742385137791865599253498798691719721773516159402414986369846935383874790303938857813962270056746249614741656477249855347875808382529424547720906252802911658330699844606951856368993439347542551269096420359116502699610854510752042613246059906291094802366969130978323006109587732091060844728404865110001137026741300361824124967808109020035694353255456583373159460187793665874862272058616583554821749779710702564257319928618046014249698463939011728365118370862540798938405483706636242358758206061621843967441555921557450452566178672613676939294674301395457767833639967486052144667254843393633658766922842455651160470401621487197780744301287277801890319925617845062210760789287762837461967904516538873354936721470632333030391387672800561856869120048704616035211175561891982372959484168868275199797558671625714096804556752707360481956657720399487389580155741958946780779374174554448525215174810140824776617776973704266955181040797132135514811734453533533524463369794199933641654822718348151967080980867561942909975616937500471462104183995351103300632268277506693110489043073387019621865741245746637241919699937291497359270058608755707614017319076516340875282533783061771863032038505735898848108332663544750218462640637746964323353699839130574469645271815521474905502499557464737679997444740567771879296812956555681520417558157868059232225942954044358207001832363493402132757962188220804275649026928232770316045473211995181198023991571272317860647803672888012916878557439177227696124157335163629435424502989822024587443204489577543168096134405335755535201082459935634899653257683405269011806750538231906262255251119975343244426048419666879598267307982768542827209465348913356233499161400364148897233879660671745569433819250040441790587975243410734011190250510024515096054191060009127095496178101152859982804199661129882673746492792648768412418574251656649857811293798889392078169599482207238845693764021683660288782568873552286750884236576574867288649784849257319508892102393175116933606613548996505874758212289712728155460544448782548943643994956151075241458657631645236211137483734444219023434714761573563346506468914531589827472015289897978316599744366263662747785452789045949767133995680554383396484619957478016588101247885077231001746178438594548863204884865489163711055745485808186675877164034670504893396778643019294426402201452382853538931897911193787948910303019375962000096100927862102228425376700953980280259970006009254588905510558236725155874635813324671083618410698099439368336661477798136296325124771435375040166664095679657518475252717730698547381907856429974164532380681583596236089643441117708396586640724795703986411161215204475410821872825509405561638044839159332701681667471455741783083097346748721534925927744765986384224922461365039127112531650194168500619443446291841918441909556028940664891992921955538840905117639628295443429136501504735597363219608447496416070915897516238471614029275356918196471965705051363249231777465193731522021063483205101383633149994268085562804954848206096854059718908354835545441549827808716887554732325759002205859208932962894913193604289750315467621809039594496074884771006587037738601793126198656705645947458962194026334081624408888085530400820347249651398513041074561584601701969209811926595894379992979554238177958388748888501627304642231632076890265937431373695816530396118174268837332012621029299100696027487276135726364055748250784922854145474960670328329630847185616734757891617262545301046860215051901327825696934224264377947344717458156775229904417059154182684245141324022721549990737905169653395599786360160298707013991496554366707077740927285754185849665863684864296225153951508017417151992347372742495601988520211635980233269826661626096458728937395570163217122978845623593684570619790531413026172804703986597738772106369393073871900122567786897981741454928125592069222706547226699902265275924013574760326900736702680561156313088251613915755118177092285492207461745295970163736587414751448166451025672568723404242465486504258703416807646121590337121873472762975539962863728179230131688169078635395793761198002483409862380801615939071160910905149901039999683435612298600721465538063907874917711393075037063863077605446409439091426213201269445119524485562304245136395633844868371917639671833032461876338965164382081307101570512761899834360659923572268953884777076687542306199122939021067370491763906756880804327484383764548142447226109663630869260684932217479843505183828413052403233987908348707952663572421617700250591065115073944649177641376692725394599890408045186446754048972901440808770235752050807862339679783306254235164029229150079753795541020474140236356788573198831301525418752332652127325597145579854744489433158029933915612468188379922474134443922584890755201675425398987671551907436387344619865979247414562098412570101944492575917146960234348457437134982145125787578641861342435649810307330075452094234456577717023159046653985039260517844602484366434478492367569483869241274014255081933843686757997350580459600023400388255678566105482195287984674494141384672957240304681892366166995967445507217112430830498138502617954053963229197671483999355542450904223111052728918485506789825835924051476800802874608726049500186352846660676849906526250003675289568073363155097285815054930082286344987067681409391069114802651316018398058324258052136903210748287588382245071076426015897870789659758790679267576953038526805819678339169394847772274506468138198270510530036974308204997317115391572817362769398820339148114681325022363055415426268352620218820575737926005948060484217213781824247755396947172486361854625504667644354429130157422828112331224759586202191524051510409337927569288606050013129644431676271992088264750685285826929979503639270588644188016629087081321287009040158178361914899595092326713222954023582529870524415629874731452410649282951746848744914465536125615277900928618225434492847408805053342185015480081427716816403483383837134593630168185377638940772433826746627896242115766569267671534731233200932555026184320110674821180971533680852743608168432669546836128920486331247587367404811642111039323907392206952099557983452985916969340489076255521504255609712223819935018525575234458872058116287556212687217692180550398576918008167849547424097855505965405338462172468296560614077251328589358758177344209135643300254761939846202886422908312431582954140340471972984507679612269242654299934366596956074797957706010727154066463664512009300204585362360143340013827081620496900800315263725438303371786389829790159953836256716032751024437337293884342228498256049541415957568779772566097122509147029800833769354271315255744255278031692390060883639826781680698771927661499543154105297079764402662608485581383772386452277031919930365331850729408123986141442351801024684722624915064277928980693395317055925153805198210920960126073193446234266999800542107077796005797325967092759852382270595225233784257696453195249109133057122909950136951540986008891700306009832717889396096179591184857947977204360539624510643687622656802815587906652708555284003994886543783771462830702280866850530454541427490639097872995948063328140848790952921805737240032518241623270808514732342808540681626678865583270172288485627389285842665157384292338349207154124341548433244651871070103127836304005575047768664677211703957471835615075472797067433752478452685127095763694539279461187130819709126347233042940444814161967706385464436214617058133230986970038066850845106272377871360118240903377832072687587459188854846134972826909371507749312405274104300564013012225540225785699482274579161543172644134449855350173955486774288772073351071016087163001098611126955538473902001587998437748204368626206700408582753788086403712222748915284180242273288024074568557232275410479908409494715388807855634317101066359773503047042611914871895390674504678689594056473090292955694179822997018451116739463312883221407011111831567295080949206810173045769382245594113353689479495470116827196623349261882577341846874562436620905920811734462161669210651018581005596767682499844781088351465290047149675054619493495355339760972321470082488940063203410825591544616776719946749741412975845688750690653852275967032362058571010693441559308542718420515113122444330397599679509201511872071231075925264390719993775842252815769900337063643086149143720518004769332786641360018929264166115773437792302038636322495553886812856332225674560908377804950689417155704356451222060087937275775052610939423255672068591453459659666007941657062213855459750524894441758029186201092674061428251236006780727784336660779784637417191922644380171771697794833795555862013499520602109902104881697318836208761901830533024956678579952290093350266652471613402996902847532088911071543615019022865392411876982964319763159625831915600343682970870126727542337723557117003512896692924514530774933175799262396085117937179272140530472917039249294681251799047039787482752862049222207008007246940735766578524805679152060093080258692550955525260004624255639386825714793718732795495738199297205074340804541772330666163976940904587583606605447164921364407264805467394158754396820153657283460670335296671740514469393638915478602813262144945169743870356039818593431390710363256359563207629883771761931404829904519566652762857141225573587901966381653039946412103838071199929542667170365346782936322324934358993051808823029557809221013436120521279478432070349794312763137138306597067098565506403222645813985690811775915066750233965287723823701575736754069784970596954386798575086449670895288581479871983813784469301464141022710240107925011044638723287056664884335564652955676077440007071604273842765778970672512748501621311504032664616855612252539986337214150691171789692054756290972954165701005858428916603954231043034778969337891026404201335647064220291265602242995848353229335245655268625546231379484421641237134470822068594975684672724625350270716265986989143376481092972469004353797740219729419737404991998039048726818213790338898119250740275567652153329340794035245824562701359535034005572872041910692265233177784843064773436455468008424857743124314383783141786552406883715493388862552546543773818394576578714358001751890070620911150742961401893979984280947299691310860693126275001153723503705994890904481472272915594114967585972908416080316308715486578548517326328076173068331601756647810339569854211790146109802257624144451492051836808745863566347083247465820331824470628431857101729408953899176269490712244797901284302144305368066069240780023436677269239305632225507422958745979876845769157398528385032454896157267505938696943237246867015390791828218060748559565620251507167450711866909801755642519787764378033922104541213369827215351086947958294748947821933317525127013219632191699849683863647045655375555810883885686791769820521190498909939659693044672603249535964827960001661599387675226504757376351370745794074405186610436397001536980216305828491471418701506247357117356420942361270438926028123023116432589888247899004677914184335394407890079157581633945198080271177592542338712024262384182603504095660221586760741950085865387814606359432999965359593450695226322036557339570279482872319695016523146286123373573314152948450377389867629542274000848699458865899770654846185493347552194809594560151561525967274110183007436130819258125649330473132433797630306103795997909587873996996086134227837013690090650622268010521149524297119201534385891150912538414430193646121686246555668746752995919387491888817447786072434064806515140996377845062806426606477375368322134306653138984626873379908882199708532779521577534935923017953300333196916652689939942907028874759724652009517021749404806866202379923395834972858702130927028538052959298231055285565913561925676642125971930567822659588170014888048235225963502586860311273574266584331947335017357413190813252596375865271517196015992955769647134417657359111044319924079553896722415427865661101266563633789647854766325047593004134896696245803356611734916804007258495399697106241968609480564929362116685256970058957048671214083235186223974850452184535637659247804802021046276054348806652977458635452021224327579001632022085994296700305834015468755050255844223114057503783014169854334550146449604546775452119265627195988727940368114082648677053740212758144917368240098826827996543800173228745032919014606502187125789608016223626998301880509882560027710146308258370185708260481685980086031568397872790220370465336433073415100236998120712714313481679888781596714872186349981553464535073360429086393531937229215448970874647822878862318760482244360845057432112564961414874803755848220126976411223398907105174981323684101514219638180092137852886419512937458875567867832007440613870811047107033518159159513182934336156636738362898566127397931692675293074166798459943820265650634401903400687757152957569335482432609842286721632874875704522245091941768898909664367549373916845554864290292633011291088942140964430426938524813235639821974062174520958758390715172773383396693719312117190809301609178259855566889240030935322858061461169790753671535272741378616562557412101380673667998532842005147297184079462427481632717389621950912323350094233571831226144190982481631348506117677925362301834888407145408306836890804047025211085991002120269636473510455548687272131519208461588262817414208177503111017178879152622108847941431486770241193884393834081641161558925219855301696929258475205168693996564818022837395385587293931149678879421125525572081827811308517155029753803473264688541341329012927412712019628554746405982323027853475573691025457991404062835148508644865995593325888436340146131347520833366238192790401559459977596461423324841130689205680683763654399931074285022675546364605127908450481650343455473267204971116462594613608266496740969565307701653612110040460697176556233115720008725918655100968568304552388711209255710561897550194246226864470124144224815548559837975853432890220757916595786334283117911829177190936483459462507016811292548248403348829520685195245766638656174518205509907298946349402651798185613922088976815981028392068545506144151003666498461589405632737932308665920893097959951551982913112328481505416889286382911577709660319336181198632474600588862331748335023682773289516463463286990073071404242033330618895964470761920613972049671788499159705789258928613725042706800394267520072067477378677909695232654920920736281769513195668079639373521474236107793908933205935906123898016017884030693396212650580377029728762618981967651788970118958481546437714307194637392845627764843823922569809323533928221491864156243164647091441618475454343993774118992832315264647523766968991695634150515334804215441677621792186122103005106204012323123020324277712381136527251495491992161170637376897441128281759804877790522446993269682413914127010980207935653457639223529202376700631331836786663781374340688626660746952088255944157582178670184323931087459405916332702863965720565869766255324784046771134032611138134674836382499572104067348335534079400864207453526465180886614824055603239437326102219395546600199517136950243318831444625886624180020203851385684575169892919540689670503696331354663256222960408179845030338846772827410863043350658097212111550730099264335253630309387714122846657003157464548015115356672991764550197599824272658153630314134488170783050764598500136367583264224216892972654934046509842303262225822382167426083481264079928466439679522046090942173221329938900783390627213800981363977637975437974017899921271407915192468675649518547194230523356054372644482490630316911531635802112693599168947572494058678363941984398819626474732675684503356537017549281239782703964587111177188521507347108036295705317613646607087665117164288423897486562927132298893235166900142267335652952807729907061311932859101758209049463821422824016872294713505936884405472165404917560956550345065935953407384112613638314454740501118881498719714822315762431322208434864788741764894388132605392390020169797484967975799520326842264180992393347460847074586926111599116056952171151818132414400542572025407715281400751788983907440653771173682528785033314678313368979007019900740923971675722658991910407186208164025060162647971320409324142986525599899696434665007294539859311316214182980257627344676944714202427408684318275563240217664610560732786904122731351955111080993902983275933719400667181395263476333617431202957899643351845362621992120055845905574121066098927172540748907108224106865218355785293865998720158346946184069964622386673706967858429369074753979829119475503325752823838332162039773073622914588325290562842194153189848621976802186310562185904024010960818959315321337864836298897841695330003724882712478332273572946404546278522027447889203146745749716278643499299318458297594341835861814729513011963369770549138825923190683531373333870104282001674016160028317247967248052203493135364497914988297514784181562395803299084838865206792066298863338660792393183880036079663046705550049559458772993484871979975983151221243380789580303356432989148901279309594860419373707153263525071488629389780900716065899029667994655610206121325076940190689414125962680989265640102753841614553566408142111649717170429205494260608648689715325622536833326880996459281356229208199993563523102965938997739133082601710927314733477034494608156926993617142070916076751023973121310029624941944646602536082154089448482438928912361378233725544095656950441264375489257604226250687273342346107409349839336765799076689680264914691994162965834142037581673506319170953380754612900967623044609038038854362741666541772111209813708196434945665799672245086881899957870311629599266634376177400245126173351415237849987168472250881061828748740920654945461337318937415982869629565011479821691387503154002646040084258141975242010037157164072784129167128758220619481009586821774060916100265212684283066133412844682157294243012098073458855365454312921580528032383418252649546786254874797274244532268971230537335642000141892122911544067303927407978399860194542423937107652332931463409111866892509424173639193501291430932437318081438495079597417460475272125488930401039455736203659013738759878118755456236201169833627990084411683207488389082242110769056596128610352187259892455370220817932693862618471484902298950963651470378412179543007490057587109608046066071672877152969070613093444177556546039092320331483475585968507108188575127517799361339462140713814351114625078093321802956323266627588268068346146443090772333493091658411490416715465723853566838227180060593101173366546002655126939101416852579462222656972030861328554077019411770658547107669846957509621279469820591990832718382753745697432741352327116142151367740190361770589171968323237133778293768176438002558760012598963950920016521999107196315866078704364210504527193741182371558021680396573675597562340262734576843419493587638742056461780236428424332459335938738697343173755909750310332785896533802669528138627150014689945509959006018217099031010849223618263079724466152277423326187508431921995992754085509047775804339385453057769875653242292757886128638186029805116560681258422625826652642698337613195874016830801381846395794242303682332814836663929234813502708358139427736120245395779054521198473266822005465909546046622200806915755477130703226557051672973331444610765363768053906720178527091532764175679730274733345429343145100272860541898809738872245683955588123065386953062137798297762662174825111818944861383755352751564293878312364831423741447884879601312033449460422426801372846861382950484833580488759636807065346320190497692740101907493007268351837252759203086379209027183907910924983659700324732153404145353562487600617875858864974508648244293853815832095562272146128740411994837768441720631358346308445923504831174926945007140957434017721485688045515296226992605203628248028981083924339564473921292718084863567811349904605512045131377844340055546484591154695229013530209757324035360047338794785433742210697668974780808348838933701931827936551309342954680460197667145984928205833819957958420331928117143784258172821095951494358220416928431553855064775235493332741132301566929495428238580519852635409209536579412398342194448966294644222330471804842248620367856895516934226395128822012956559284739097438049201818137076920369579563001781361553692345315887673374618247795217008791483248550400214650927593200115476734631085710864720274866752665204422913264733723990168276036374719617224775481963012934489665455660127797375494451394138833516625076711316855286392986947632311774072922926864851377771362094943981304696935551356728204234199785311843630395392381610943589799583125871969970292579273117382803885798178770889791036877515282590872518393634977530992661069514839654556365107977544713018798470394180553184896011038030716384871278453325811439856987354878217459600218481266144539203447485186874795999558148641003632724834264501265063375896651186924797805762052456278290298442352482523670321448002265372583115912053782624679988673065915315454693334658622957387697172818534799819500582544374827709902022157446171358548142408465150151064009399616316517997373185603364651379968245121886568825161862446318413250778345499816859235105051150467371030835487282600008310434946552706659036837037174365213756156773700052559475234727891595887484070834225558649024887782483105175399347481446958148019227560647875796014172336372505565599637481819013505587146433860989356904569848648332659769417423176145298451744687701878643224663325769892996165567112709809334323715767009541692839175316332259853737477518028897985424454169056451454476419869495284925185243704093694672247578247440684928673795249209668985556034986417432326136709311827976568254107452454281290204832556681958817926651109102179002844488731194413400278569948937530163076067156369032520741529362258796397591667081356274966569221485985512215975415337646128771084528080252236860297252272904158777482975521722259866739466097631699918142498748747160966703402951295535400192722725166256444296940318378307670403436905109679519863011118395826610993085297362031481486656570790261018618706032621147035773572594607545174733641042948024835411598132328649713508366438612319384796066888255772365056154386282804489403384311732006669394967668218414703289538000400847266171538123416323771389573217614370916959045496819908833146683342915299686863910025348438411151547305952109384539078473406325015474503002966676642735974511332608137964501569536234895412688225055078149247324008456646248547827423980580068081424656704826692748108473473540009647554746364187827655734395832870384108146117655710977653815405448538005947848330407141899537567570323242854407286742229448158804244422500848197139916734962826550845350821828398488338547728245562316378316261745847201723785963180605530931227905040501832312356495036299743469381152350683882149061882797461755295609264353443242060644966545526687577402824333154981014653252295467868170250177122869633486411854833259824362943497749062715040064807560843230484692400664871193274715341648082761654305205163090267809816274302957136802714255349762723207252538564573890425504377221527517394292896580559661343649700820216281842876227530403386831769736086385570998703529018570648248564651463768265291479992010872826929432249858536099789390791710739033673141665034597662470298780693625885071346288483704465518831447466067145259009872194227444793189487339932724262334896345606284050712091665234979190571099715817766788209089603296078492838320818763601903877056099467085734519958694308316708895759859632945600979382612041658316400744590502075524206277896709050060498155678833140253453162365038057948827352568020557700970724874837832208164174621359792688103577512388721429097723649881172555115564084647424697650683427298752028670209214071374124482091372656465320045639609033618478555952621806554355518806258936582300076988268232715677411633605463493635419392649781328331480143663268844212235592689072623244156725100490258346331557648477404099795017226674040349694336466428795615877634157191910535410732952802522208268146255566776068788649691143268755648495760773519859445020759652612658093067935489821541554829393962029319956442935543773789747556814474565375808031965604808411247635437733988584338207590497942087047238391110595681173071055887690873290217367860399538823450039514138638106804147667490152937824838517561226304763646470644014255133481575923337591447839325218553854921102574246060992979236131167440483500487227399213833841046184616958753488459393852124032433945486911023512627760269424545647653796694197512454236896736681431159466147231319719082737025699603903958943778404443781873415322386691801345328757317233487500190219672785296361728541180080887602773658927137973029706624907275902737777806649429219646867898713239555267999857336328218588484105024020979536443125997256565723440549438691053027604903766828152807420178270385131719023100572018425966245217155241574880280322512107105537399665215528996969594761151440906214801497602904468479155890329423768088489830918627712678481709969840906889542227430365407216363421585749850862789554937370226073034619461520902124437298617284242697053307947366765543846278173468664112252679822265543650200380664677157014380159878302768819765144360019825555555003543016235205208967115451877571485930594129292332051108540711880990309015663835170861987708875129961628695408940356083101472057211329234155354678471266128762245871493815507281790426626007852226254325152534484956639187534615061948882418201082576804148828908430500412866289625577217454248811094050364642561585122111051326767153751172044285849999055017314726738838598402161111381433596464880075682171747266727280688499263146068368613769902946543914875906051482516673689233869853132683845794701167048998241408862136503036078075646813761914085801837945217746703708103681390225614854398757115794731623920769119016550567293982863114900155977994539044420765181454825126107499428491247465626636879090621338619973318908990524446163373294559179445576957115137269544728586788690095879947138660891888472335727730754610405178898837284792784221815492410826910739243375558996694759115860907405461223747355722853470238727678300308839032885009187904297020537317406444106799307034950763182470275055157146331869927661802573983247785839950813911849086895818856252956294276037604894446756330224662648968868956874568800087121348297557510114056025859153522292654399131853712107921652930446380786701463865549893352863549584251283986543687670507664091496706448302408503177187684860042101111118325861728741759961347866039598053577396228549146183312647846741417310411530886802932508907534258532497264388134825349330798054162899664602208642809411449533019977716869797385456626408818180546941723516845635058125229100354707320988981440200563714084069222759217979991031490875910905563812595320989691231669554901721649387838232847352253802775841945144834010614172111212646100831647105959424665844371382813006971293252497937100966306901475104889714959052235363187231574277013616311627016753162386530536933982095077584955192459098964160704700334115458504682074789582982884975975456890886445674818823628568451284500811781026635397068285774367532266702334067624439964599737026841996265124518622674914832140946693066134404058707095553470311106776737472061623330736572959055452495522447940643841441505859238578197829830870358131468924270745015339530280086844565476431149689607078359576603233951346521490355064097243820553819877705437293187391279116528379677731222399904801068756220547203950397307194794081816197951804345936623733275966248491279919680174295116670992908070670431680700081777397231397740090328831058411725005017566883965577652954961499529871557938764072861286397629695908679341293084007754320710681618274243536682476090467240532920082503983589558277673332758132073590919541660812780298821082792476024996144932240707687008822410475866492451515736040359999139102961193754942604674349519102508919451273612484750445079601430996308232500387130470213809572414126374537103491815389890277327481089566127701614094162985098432207469556290346665221540632440959120034317957496316909829968110897150284242836220847782604691605008570726241574056405390452467328300457062649358444231232065333013694834205895611317808313917713491085354075281995897880708179699751268931348928294052126455660996869609813386912045765975575628286424264927322153549358696991367925892507954604527798980534506642677044200094199154867672374621414422156175594871439099376105109167249089134806523621560377344114762692749959007535958574570660394472993007417472238849650251322784311610316314080205887177260657247729269742622371911320277084774502846156253634816516949023212831770341197184767067127439513375044375134287144875606156166211115195348762810908576161972738374979670670595757685246030518422493736058919918779409647677688156451270698005089328971933882708631107064025032540912761481603983053097290279408985590403932716311862923933310217893776713592124375418134891734082155311860052527257068692775758491047480407104059905918384778772047185233671270880951741549287232926707746627560929864151508985496384565801292728583714266459445555083468465038084738407248205147659414517816811708570360520528683042339712475620884018286800020354628061752275845707389810759601449707477237294667088516985243711611940493036670310611377117420846747050413581183048026509645050153585750647102235088626481167645880971802913286252310334198472791080703612932660142724410161356940857786104796598557188842378215699158458010820850531905046640399297624134450617536011266374628920662394690225287753270210875929305892536974455995613099143705669326110923288807780720669465255114274302845363415551954519541790229520571053602916036208264744200551629253123051900885474361117072687072014570387692385486033025530923526361767704132582447982411626136086750327157832405691915375281946584947501731642585345711424506180477000276427928612100969531517189660860077187814210445849224953495515247414120102474920163535744925591502195936429851695642015993508462547396657015037003863389459033718780523374820882429658533701832412708062377538526262437322131244641247751055113818912950298989907839549354150505002424675829250549438618692355897283525072102365892003848072890072100957628788981122929756059778210552703315736875012117298910394462593181624850810130851085425886513352958711418843309768474906364977928315149272325953549929134392580880858287191643281761504957853263785132698272328892298814250829651935235230371502694004899705737145321266969518633129037853967694611246839154396293904612814380026878140604892276994586231897402161724907479257409237129713111230651091692648035575895649667319585956592110405596592288201787750980760132732059491652932177130170862665869767498693934914288115746135213049076505602550801358399654093849387304621719805002717431493338593866332080923846285760772077731234102209147230225139469350441444299206451262179385371274353603335182596176648763603043375746783372594900191627641479769209089967569390357055411102153515132280498471450105551470655809490360549986991407262214296190403499644101696341942157564999693569176229633985855595337182878495973505502581468194130888531492125927497708630300130548681771146594201452617657029399499059702014748407194037562366335030858477798249873265552093538219968290528849509356366863353044860647546260247271116452054153399561061770714831331196454437166333794756231713236769375381331752548837822010687460938660038344167710379705240303023925724293653465056972032054233841409109910862315436763263304293855480095856127367246764277831405279770822553141361987883237595923865909113526544093693846508505580817509087035561828454138099391570911413967257615156213464695812483240520793555808785438333091360720666320847029381806945455820305485981855319083632158899296176251300540039445185969856053036100206054143322936910447469756002227214504825503953704270989076459928587338257357099683622782331683673277026365627793674369692045517036008089834597681696686389910432498975201848846160427603782790544606276265223910816633431421715941578218975882459633922039289853091117945212293972085591807280398943435931507066988493454615910687028760387016356151725677101686418073074489827026863038320983856048292332113137662564302077566502994530950058043767453911270723643712735064927185568163538492339584794695168858993316845983823373235682093459698606639986170971036575335897506740542510009928063893579273274242833052778020400799235733814081085589853221099864419269998757336403466625732135781213699195404842367877216680719064862484437242826416460916267725018478022510429623822873107793909546923601838005232202095311699280923706933990530860236279258044767469984048534052074503942769426465109203764948785224030690981464769951648819317602410970789119690346813978336532973556730511442785657930693678491246802605943325418320416262597820200651423726001860060198744886855598216423105642647134118698793545233022685961422985221393175027430026403931607244323295036652272451435797898939883231540282209467178877795631409094280857943722365228707363803286468011158467226495176380213192044345519464892438246634108721679712992751690467804515982965101808946277919621579270787212524760993663121176034133693621062467193450751334235153981546661795208117883539992975278772125212040142729491328584323929981493798394489955891338141818442420619415132481001970393134154682537800047791233258507566677759663035080785622472275950811642624372649038016625204276373094625734351537147475384699257061135411106335271065057166494240248070715383930186263653882327347895836356794464109776121837715085141456938585688075767034648140384575919514169551301665180997631368787203862302109781686002713244212782182130328881514955228052631276427731699813039136515042321380839274581686359678083842813704484508630043520941634077248385625620369165027175669122079652285849440160051973102346704753677270130805617007350620888051563987134838854966111916190855264311026844125609653736828517148992799212056944339401380544069071510436934841186584904234547298205948177799856075028983783280098482032536263441406379550555667809352767592348379021276077517239983230044321550421906415557773631895759053255841293603273456567587209469451073838341896039078712734153552332343402561634751404244506284523755810326959471364424639138090902760269092061294186920400111961719253538521631970837574200354117196137157474842080324216445725589636705026584897840821919487870901655399728023908030792648583816565976085947570325137102086412931155925521117448702395273668753376831817402377671566204677300602380048599714803109986328982137975219067686515508101564064724385311102089949173796493191348220815851026635252639876084035811638308499416233716580960403194014344498994009571888357222813710028357983533768632422218479778880919150179394416684916915717399449427230257289989466498450789103650460839128064875894913112206055910887202529886737989998456214966449506819407458657256813524526124823284316282123218834857535466841885751640829146161329924881800968410953594561687103550943430508867196706523049048695996648905142616208359520463228259229490253781660160989543179449184745650140287787677993113910811558507354772151021663679376085439423231796925079520503364840453988640333765543435502434066086483227182269401512807063222639550142261224295216493271209470767933373575457914668006262355478478636510534066906161146249959900518335038210071129357086752452282330453689785271090610947558980326168411203871346719838972372405050154553384837867047712970590637296467459245522665715956680749059152738740340537472387275443192408662674510735810381815535738618313176813322622446667460694103552113555729186444798655571939326166889387615701293459668949412361585014005438214394595912084095330288488911270297567538242980825803168863854358788844550199640408787091013541528574477873821796947058188374498543025180205058737152916939572469356073829407826021376328586062388856088782305455839435390234384160768269008601118871842958788288837719760641283097733024029547696739244543097044812371925292339968924264291035415564539877182768823091441774353688356616588901479207497526946857959419806931242734041565125660338876357135499575205016407990206403397659953965269274824970606625808095210424273506042078473628187296402507403959510770193864284667482166400873097955527127974451340354703099554215600960880165286207059249625482345197412671908314731853935419830853920692076828235944973156167747969332093110923563942358151272850058574783837039747688094998698382987411504040513830022635309521441068968411001144257782644878102228061128992931758703204257520753696375764620789234707308704262366742795744645149810686922384224560150658610872675792132298865350201602471287662200795461024456376022285737373823908003607234183495811348656059723641063123646977221162000658804755282581400559119829517118532534218010507516387297232826109976676523570266535934576958539704309794208479790046226447001877682704280626837090997701363982833668260454653488195724519174832255922567488443763318887867192035277316495621226114474509611975946081796210458767390691554923756708903298718201348474117379507380339629716944174172792773151301246762640823891355782029091672539857540416052087930362442679453957591674246353652405172680749575758033018126052597650925600227773991159707641944494618349715830990026241394047993684396704802707759797852356645143090018805946658704956044981939159293341645984301133254770951538679158644716585753088573818614022656814563731763550488146479453013021258824685461917273627064963638428217345064643526570891537424592740807268003874204635110792211788852363507926951655585680814633759705458799666807780332539771938220053956740604846792282667049460536071241721158317490320620922766706755931757859146911392944319495665557285803229252390779826569213153302128685187524314620292121843615832173506372151695986193837374562377464897977088864655935651414754830686874990655870962424905730849028519917808526288855821164794506598962610902975599888689179119607745910126376778061011028076045140835692606764731930030153093572474340283822674486625835204491119436721070438544266715995053329083383012128739180996071948534646850577755861431195248292359969811786727039153224044257359745244521159241564013163952074487498627650374278805136211824096937520232895823398862393508703319115304393057668021464072357539627578978866674368265810046257390856604039894364745477348943558897083786180362211843663165570195431591248347477044452806793657099094786913555435944384992659287699720805184799466619423898330071373134495790251660557115272962968245842564332775259756505485557735667356783397040361658384900898944190083771027474087661325001329748944164903367434182278669780349209778631977390361123424499184551988125725805020800299896447822141281458320629055200363199068735880493818575749353817830674631127305485947512799484121977455715490729418657022066264217388059947394241278782988580308213382798918975132233539258337735345486057912378486889906826020286016616476822476460858995313390630962990959713733922040850011818118107904020048064564778772012797735738064893383895966591817073832322539900817548531366769239846327627531187966660651787737945303014521515714101425785455484772813932180733375387661965354852219910492158699999297586579380855543915557637899483915065510064840825945786455088016467800039053583782241641701221172117488160879316356541943504628105842495049007126474357091332831464102871452530036408061134543006779613909822131304725563411036997875501499875256288084537210458328844292377412581163816402318023649910287832405589466978470357105594181460771281765608428293400477685684002472551348407833202205018461812614282692829034314950376602218991083006171016895306846791839492819532546814475178098262092619684644562307447411305247978245548770959009356517737556151324181642298198682479098177610598386952715728567184918511844545591903001536002484477195436894031623482732589609792992429582131302318312852355284444671917674299163405758398463188729652686981838181456068402207099722002919512264754686601134879073019958232718576519128429822911872588909228562031837226500156354198684508199775922599493705074979780697771921233540939232376503788555174214348422288056853356797473543756211421080938220178540899863225728258246364288917548800075464598100037339666233674191739834820905442089003867698456656286931849796862330212282935359885590222789232325048552472810479302099172116293482298950146084688853808235616596981707579308563802752363653751595044308715091101473637242252956394087673731359022204404352819454349857051215140218936694084699252062717144271699620137236736415402930109209832751576961277914840630562664250037185533368581952446284690578557728086438790650858402463889784370457900770704334642011816304988278772745960278693398051114242980057483716273483307458745824106806180486941178290516259875519610158304450176864651102529863960765136028034043406076220455064447450790047480138428645436163643748358450840327481548497837410271540040412024235737978417606080578787706063072567330482649033552860172312489640226310975637255726067810315976969672230375039618137769738132492592971683907058507118819745775709809026884071437493241988172799144149463449015921106198434024962727294190810561967589617436107363036476359820406492286611090071323289638141804344690692490643329061023058399073123986929789248280766096347931768047810560924204012731177908357437292331653198678984864676685421888005423786151122753065947131249940581750785400272522409053634439205026947368564083759737047357629598064003214169319880018282788464116390690959217855788738728938139151421094696208889550021374269057232439934609070727187196704975638105444940646347602613221092262852031937300423001635069943403020618570149651926827937311328255588335122667438454086209253546266956084253219710538586729159082731186083380557097604652076942941329207818337555584725094217616678177436706689194540794046316290367472905176710484296965921578301195528606687198596000377617538402024061721837197716287270345286398367855961022473571498129678306742020616954200952439516383215630920774357782518996156647215790670943260680633569362237042425280120764078116903734385816911240054609036972660864324514644158626187582610490240955770487413450493360315849411119702693978284833684124136159821475560275014361759398653235192548491740330511309250183180622840690874192488990230576237483096959524583689224930986741905801374057110902266243943270357915127239741750254204784380570321820169068568324949847920741495141079362092327975261151932596460299164822030979629896840090243138437445025632033447438147308320830365406926254549235384322711707162776324315105915286216063004899207169185646636106500540663044603236414386646679691982962032977140523285789452657894712334151091646212720881307234167705768430074161750794600296107135624545076704344492489309828100060822270659145081812702477794421963416109922666276755012096420691820323191938829217497497958191169850928849252604845544660722619058931503401573634983032812833277794159538246175694559008136997086139976528044605882498125449915532222243225229587278793438987334557121556284718588947807334508783825587426219725703383599203226270432706669713994021320465045639193274420751502399734411182755592887182522278348722093974756631868609452884491705975497974225905672740274850653863220667624315170448375383811614338099032202603741629211278867300021427975754541434508006934715025792939363871255271047369094614854380298887543603192826906294302641969974463986695509633504348149130254516446093280317079904443902319526010317146829746283583665312543567024057827967533191970747199017735570411238661306758112299213116242476807528651657614074065876769789129685721168283201452320096357491400061369538722441351859867989031899089506876731590275768921707203263556248906574408331251388571093790124489535208723450137449551425693185303086522418525570274573687626930092570725474232842908207595661898352774063554448288375950598376628917000949978400693282905447174552935190441619862944780877454253378640829664475177536360280878722268903544862928964013817268104789765210995815552629583191887553446172235946998398747828487369797092330361834160035232119502154718490177892341285806145770038157824992965464330776916815103296987671061552596239435176196631594726598320365250806452088269258414617496665925629277857005834378365588271033587483777942902411374352103004387374866555048654899485729897702747133245363792577122060096221001251866173677332212261669447127753485898138407596618132595939997134490511419611878494405242064231658661558235730372564107134335857052006686657812281784461333262268399116964819977442975589842321134932320379229363864491061198859557816354502264222347425474577482378472495888603553351590686239509235371612843465719100205390951920505134401992127890940846082063056317835268281436498971155526891367037671938514077056072620124334720802151345825331237648293547534092958741202882032560146015029178379704094276049839179339736473926341763963137263070085176135283503142378708588395708455663001921202627098321349601430485602955022823717295583694078454102710363362149722579722087012103169625283617738809152727963622657334030705590670270157232452922450038493249907233157144728059187968452288076418089030830477866293444563314452074479403746412881237442923701509066307221244084087838792337304163703987948863283851469344017644602324739426902818096543705828620005254147596405115603980900597322739593717631753143770409504055186013080898380793427447371308743257134474371441006743184397254335862993647018558382926114808276658071340183637157148782246570270518706666346925142553353172611796850242751893521643703705926534801510561102950952508007380648173979098445876443294102873572972070745005638316347012746675880793281568111751089598746225624503009875050629026013905666749603292759980598544115368085364895189886531808425413922734756773519560397547257243690621860539630452432684428312772268500381037917174587143086598639151351999452470823723313719991557077831411310773019656021985477705901146887931890842343839518342109143838649104969281508038687297281624501887856228911167715692087210766397312605965266088075440453851537426863269839087843631120587733250875852678894910217920295371472146387593276074669019225996042380975755700792387708337354340946356059097452017946888088158615929726845560533643063242325395265121220692124673269635721000628953154626304110482565423078695895657776263341428597388052305524926408095556646345540130554196574910646843520168520581120553890417140126536839994856297158934983560919743267216574722221464675139577925970704666576383211591170851082393585409546866558201199843541712946607528747943636052571125811158814687451757962531659497287657363010403823802541761633768849865182952834349763745207731626431630680771661823805516799885480107151760244936727398698848417431179959176901043089364011301457172836037125320365930135402897286950757318075450189680587118089769769082638717948824781786756130715260164538170589750113123009097445441445420103774306036772918895682941539184147611081611285204507508116864787863316208592027729405584141149305588583044535315548690191423176782467818719794903828300609078550889068946386242325098248768705726175712436777315215834800249589242341065096896811758293793125857324268064675247037899311927774050257882962114061460240923046415359748737141363704726598576600798620434110972549300638280920125831496277670936830664188832388145391519034184780968273859661674197649471088104846931011888299050908339368032416530199276334583785290623553974095030375788694094665084881307772674973147897681183124824307352215921297948915851552092141677215546743189478072859466598196546413342415602072554427884670450510202144622143622772897847764309880944226503730070466913544086053636256574491619039338631698594037978015145388768818969994236871798523556256149594010224161961504687151514598196141875078091932753174582027716957202828947943926538657055896634304552385237161146515975950342676632307241299805726603634418111687974924957535395668862151733437791203799165534083903996577984898405067890962571286711478706760440941267247151944141297540108608818511787479221123592391374418817179772597873042517268645065348393950965121736826855701816196477842775622810436616659434989999448229920223078579272069447930863687812800885378394012998445699316538721293815113168003062078188491599890132225453436339619249562329814891885318099306924562809002363477127024654159934109289650697461246269494967721752039158733468791294695280152999048048478420577805111582819107084444675176488340949823423173278368140176438645044128384672686752493965438288254580204673455845705389142023087908794126746419285983244557456675014987555869915703197921729638801336784280574648022400969002146919602025961239522602869790572079448379864491021988316083737728239932545232272633229294641084617927417000607433802688054267045817516826180663563999666689800851800315460463658972764723069273325220286345815921392300508254522240340978331800433804412802029588159526438906201425700228974478173079447749878715721245956890287629907710371490501124111354124937055980723229574858435170729339894905132568710520546702732541600262916024127244316874072030177709448502133790960913840339366493380511904223897469010590907379484214744533987132172321031010246147344607715141180439371815643760892081325257560481979035993229480079577649408245821359451506644744428028035324035543054660877801559273772111956312630321855722360322833252446303425847260476300727029467356433385976909775197195376049868397177884508927808716786921816005361248728365463825735916902951358057407545000827528576979801107356213540018660671266188771731436752016278432608142048011296492751572723738078838032730949011991357991212772489987869056312403512534304859089540777229018387902616624513317766696290196429232053570720559969005501243532565099303850093035985903044105505739341563300908725994934745636394411235948836319872574082291637931194331848533748884595989196401972357035410317791183563250400541094457444899691921892964589328356956458504678779761250577940716448755426475855095887668086418519858522498767647916055562549182400377662982150914562991895202583438948654423541804865323269117785024395223178689898444580257382086040548901730841046390036250733902928809554186235087127099470286331280317189621776168904888749685130447005724616930260437519649932108446248937818922619687242602764388569119839570992989859609854758019317624225297641278802284870018767150265143711581622055781379399391885969806017993309495747376547082652934504700339942423990521009116214064557761103283459538808064325089240844422840427221301931610619843798592920045874471167809283219134266299784486633905538851963574359369553309330175955979208831592561018205399414687585505101532185757310544588314615106400330864449996855464072164214637772149972337915824451444336259537395212817840582261836799716868497635734537490160247477650736476447529714024362450561892728833934581683596744633959718891461516115365716570438224669792030587336273839219430857470313776891910436665691696662121898557651494763105037310348847018757197633642651331377278208743148280111247689265846186534675003756824442887257401372051605837719991236076356945158145514051770586406518260478266761037853182908639448097772824114280448300314841360101296826312736336438944426524896522260671359300021152479444430129311242331436660633634862037940844899705179894250299736535739828609420054276224969664105464621502506787639379168291494810066624168095302656527712951724082756152349669487000066142035116097174167910455772155017401789403716046839986012159600634088247724149098318005915155538200101930456048383269928070759341117731290796770789672658271571680065104979516734154065128466588147968629488312643558205308884862319787622385758092198105622313243572141443938469284555462809499331493658344878590000867342635655833557981104375911353464690995801987968386083166666541265996292835554908109916995525672623427229752450499320130226866788007121828729543091272851029167696062345119217916222281736670932058498567103618792057917064176553203036469854210337178261083548895803274846751878262850626502549496688280225869517593078728616462261901657280961317260039476498622564220557522237546669662940644296949829305054971510209862313112014378421177068220713075069421358091605378089084127790962970334023943999892597891502739765929003819609229072523605079235570809668581075887668974212117285430039669071929680894933307027478454209464892770463718292589091885135341180324005846208504145091849063274731032881173356674254607205347088527805653475764218449667470062207971456022919623759326625951553595176894069947404911998370966251605346536819679119862733396170977376928998292689948218734263288083493837201115771275339700703690027722544486052251196169734872150117761638050841903241239646697657873198463023493029090931473311862763554001720042724329513949472242085979089976171103367616257899842238694375638001702916681863357824940772195096053038473691830787409349875691504173101354793937725111549285601798231571784319371624595844340679244659887406974271808238664188838560281819076123287305486073175036541886605385939622392393926229194204485469901288284497401343161420565716116671533441799358254075812106379767977203774066218136352806676315812260113936224930846572405646869122988785441567344238908541310435541742768761735266330911780524271448567841258968935308816235691585773390680959203351038855561453948869783713268712402897091012408669097424838730804292133139678285492151402965594884224310459735684881297130905813678543741250376011192420714696036187616268036698442914573101194056743905022651489501499312957483032376031006729616079600193436607439959922897583221274599423246573884116867278496875573405737829089531071657838140561449500891835279977965293259688687286563234600721681700705404820032463011671695424600632281516312220985894516008527109255481598758786314105063292897681160555704235237911596809918254391020676653281549762593298997788329629525159167736056923090847911806197849211689181283532866726846073485885309761413671667024088034228535938020975323176146694756533186932845063702650104534906324555017835120628700674090323308235385765040147190204017747193024730683740006819355142149321082139929500514182015333369015190126474727319753879478929354041484146864845497200210002359291044998326201992649945776524660101909763607818725508943028188291804639944355399678403563179806971271566210616430505257131687372303686577664588027370938293093871793696820911590972161114057740907377014336666673137098739867980925565478225726247980805592523501095426877670619781604582197867091286719382978092576298190965613312511514998962810892549929294639953015644263107514299069550572386544227823367630010487193417634338213014327211730400492597588873954776300835086208895132538466168246261664565751722560156632956147508953447569016360679376260108746681380365218795805046125933831219583805875349928571851824641202566107593871166048680860058414002903364311432555935822791347557080126648602208984913680033543149892539692370602089742438311991550433108917226979944462651939694719622551379693822456859380132558806461051433347423070170301498907449271445479940025686987604587791994556636285157169620920239006094179163459728548970921857644299578160061277461994271803236032079780595782789443673925221202068092844159349997796071361686348898708388951818740205857003000814190678027703014052185596935262057873927586629457833691995289567734571117101079961044971136059729463793466102549453490219259760507546581116886579856457799896454939954413121340248579769940639951820323787644471327061796470554684787192787287121756623614164466348615600365026625495754007712413168700042203289386723637204359436411995603137804507326538226769680086812397188548582511875367507698444800913033087440883519146700857062271851219877049882525777601352856893091498181455154765587619251395018278186965355053367797999983907002993211215307181633789361690278130827652948941293892544301452614204797816489847876323392485527041583209585802086879236650400275915601831345281952854344414833576749415422316647521190060059980501612747808742232976590287085247232817695141204007254994269982045439715066925167351558419032793868852149419141378040792419874918623975341185928874226648917974043441363938193887055965687320413634919306032156118243723436987487902835020513480888146016949409720311208624710438873388699032597197300401727126115119503725967639674316432818878024477370776285810261772046049900523843615946695940517066513159706131867481959272333735831563244329035231016946248715595822239586625475047584079917927016087718287054510909703246397507966447426758385505476152362935462346184211855762665942074478754993696611554369789657868723147446789928316318546980086346035826228981879695711914169410300881525863296102206274156354952184352588946891449777623789589156710665434289112375499176608563857339909704923169191986681056454193681984454583230255113947911378831633277120179634924899276543686802734216364329421335317858761571125120159942509101526542375406914837145584710433850530993475410264781301074122895321737908307529090585710147020593888183593834658491350451333895131619537769014109887150769651649268275824299156245671719553809970682089676564877741556331961411036201183976357706674530785261957832686168804086598531579022281647362713376751711275853644034230640625011074958982338481349527055849752177349966020507289895234055647115594593342594734713539884997015756954408768162129980950711138742026274098933007527190914565950010754049893840046351587471052561468626703308695365776277803243030885044632975559328545266385770255447210906890172056435639336169995417841255656565894470145482918072463961338180581687109673768976690591086879037890414549547273570605139905016447794452406524000350505490749859797791510999714874564252359530017002287515403696410847255478471607301201168127800479268026525532905799304331098295851017398610237880979853882545358729543568708044961395905772901428706623432631964623271756508832187120439125829062323246958276561379806344040555526244270749064091917756156467462343330611050911841461170227732814277118006131143732797603800423253527592029367836046662960168498186587270008068230745870554680044130358948024437787006848922201916851380717585173843903048897545269646384061084259567167393710306672660433495768994757433763279450541165696154900648660420512830337885491341950586832422944646211594035952442574572816705494357083294820623443693939471478044213069753680906814261612160098442546526110651613463427592795142471131992873363825656870815314362643676540310575687625817613406423224073063679074149277913733789840055147248545463361196553098184529661220563061931639867259737337200185919766324854399411017141897249701552363003546989502809175627465370278341420439475255116372706438780629381036823229996312940491536925423202735414039758551403092086895290109075984182074180686410654385902892015005277470111176688905143150119671229213370178062529959928251517560380188731170249677449590571436062560862185170283008982168819390128071726997404653580175053048945009993964286739296150084660168652271705874180257356493686730438291489966841354755685808403854524390823511654370806461932188840845067858528294939584982616561253197054702663007552221081540041322837134009799688873167899957725150803266133091266831202023636644288363361604794964858306879072673343666688131328219161167053253348242254973765058428328663990829794714869451725558697039405366600752367910553125547139282610422824854609267732614172648227381465380724226116325317513970164703613744904970279888798876457066627215667713117565331756709031307591694164844748690264827472472298853484867080213696026283012159692995687246762273012254463040552101698840507827199586461228144290972150443328755274366224726002380373864770500331830480919445140978105127138674678074946657369647921409083258344119438093366127970509271126058237223326526915743688192840281093777460428807458609930887403765279416311281986690185366183119190463916342843486399271772759417113121636846201581420365203451389849721944587909380877945102518430102718227116378963092699186912065071335802171130140080491968248768445549321466875321368602764458724602092591695341232348408566842437033810005550105101970496759144734977045351227551410863658448774140635506697686782915195349090051470664570845367972655201781919009846741400664356179582789895388455501422641412104774453830991572478488079264660704943128436606205193378133435210036418122696465418246456989962403655889821184503410055568161517408877928066649667123947125182453128138187353492929692294972951622681175126557563348469905488824264912286363756519974511927461723526253306557746437953107437623112850075088357513738756543431537441543779782121375375669188318332307198046107256344635727755416820082310971907365187992915713559559398997954438354835591233767533673521711011375209739721879225394308572778418303557112925147006707138162260951601309717483407056880575796864492914639464538160458006775529039490677771398487607633393876867963723167753961893819082314481147886949772886809081496151832323793463757651924711081021048807861059634010706644235706626831050858910873295400161834630126541784319886142014635471035282462705286830999163297404320796304720701834503884494531493180176446503397475569660482798933366135766021536553095541586113399593073745639310681220238071886476727487255095105514123325990069206305437326781088601346974315950777362791231081612242897451679529358298222977580732827538326592237921970912292173024854794834516586394013133614905902799696260161405704266455156276680138757357580012551889292370684856573762669453249061903530751505660271578255779132428578769221323910621115930130926402749939496731186571698228566775413945605564800631999644659073710904684359241554277702844476045473713714561172788914299825166957958418508319067210544650399383710408402994693027838207941753485373285571164686870123669275109465413907973436813026323059230368721139409427683273712778671519429628456178156295377868222417182690417519208542022738719593611212122794248243083928499043220506180958902402653476629107293183927175710569138259922016922873972883273096660129670185381860522026582160681018685003822493093953079215005873984375972236351026457605787940908568428882932038988127665523137585439785751105742209538896729438373110707365452119825054579334066076026139871599413808746576821531227507187982093270136761019981944898817477011169083187296329270316132346954562305283678200872891558749482825856520160697396913390340185509810245594180231288231799335842952054075783772661807101548405477136438982013597007590558279821244904906257223072514323906952143707034153632931020522305741145123079645137305433223618760656016035914152178072147109093381755787395563459946091705026877075856121911617153571918134331186542682237716720030109023729656737687762345623566441240238101000151696490266871056724414019914528576575402803940470148242286017146892658668977432836985129450838194009594392723907736982209794912482905581403490203786768145821332392361923240425145272758675887307074858297511283379676529103677751972931535067687755975731876995294250037753528583161131237666455320913921145699860764735314978614374864197594628013278972900664903180556459392318080470540033343141142056615542458361710200912777003860300627859057898554081382777875858287010784360080283143603857257311038464352758872020771835729892487427808291500198392510885488770153949953323572813159898998783584520669625183360685436397830048714844036519130370131837263829969374257838149346402629279697534052934781226440317021584128182117472245628286080796499304300558700429231572124981869374571963724611498376258263897626983770448890005083360623390583017858657908487315654471430755090589323730797899512547867561430953335245539402902806525551631906284235305303286119951467475998605314397033510578161903364322511289859296565263377817508600717197837991906325391228359640736127430804642033938404348803561129265960815525105818728709432114076624271173438565002943811796807085157006868383385555493879767241703388201877602726173356916795682257853534952942596176068402539950391686918518463597640743774453282380746847079627191594296740200372322054853986390062448375432724393781617485269578429109965112726677599357086466488699503683830082287737154006740567803018671796834364821471617597412248678272367539494244060160184463253806803421324311156308463732595327801066897815082229550534659283579397552005396025123712529382840151848791673083029953939888909412221401211468340902987313008902611683253030970301316171670034832613103778206268740431698783817725942156103137949097492163159315079902310179046874131892217561486734055753044219709053204677205851917347701417982943700707292087285779815613019353416582507751966590508982522551187940097638308157324108228198069428166033736550769998992493014674062379648633818973810385537123136838067834107155912084907573029085540748954156755420226907052766280932405553128458185322152671543568662449221223530180348863628698582118616213379645197774195940301266012659932097657775089428691065242860312798956238701278388004913536246376525552438583262057712975663115183870543719629727373082926584903802859595180656174829378824949179678536692584461599725299474145381459928210469642723024036684855101579124673282823714299261623350870073425949796556037998868974002448665121104397998390390663451690315093832071297049474712260025926254158245261439761760346402351299001294888607986053570125084344603987159931111703359031201180029293790241148774510475354856412796822531845342505811520561997353862484098063700524929756623453160588345060529671767786403006883617159540537260889396546674123421842636501968021457351134579258502523533370205907205717677728615719358974024298409073197289972170474958254856412041704633106472615326550516358374565788285282612145046996799427649515104089450965434617279235306776820546420411127761227702705899297427366730946832092703653086646664221062085168784384293196329834317656604055598760706851713349537127170217900165092415601521103456320694244763585142369805121838315700953444681110483735373927594229473605859248411957739036481465813022125049307010811049524413812734864494358918627798273023414059166633470544665831440516423694791578707420855577264758422818854326848434493843044823496988642865800400675443505356998982907903388316915945530573685417901029625327444047289525438624744338869649549597559469271620796265520184829605857212631997379005407292110700749264499750771085920501164693719793715679069733096347456592936025519630189042663251819611478633976972636696346734294385479366858476163137380920699516937776710305817581856777261422229654674378052213070956627040533287724252119016580638025463939147226795923467290118780193610292533259727039014959020364652732538399563530504498181961246710496131010876539433956703918943383910224108682642945440224287264489027573521955281369334325574797420440188853410960127748921097722273827297954998371794667183188088169894370671541150249356528478979312463427132751835362175912945858053118783613212706062498757165036114066752558304961383764299689202906864430805138987169029762052829067818615470096319147181550888554967148960073231641465455598155712909758078869558341086742244562403634732586750015476031372774734952099750602431574902012665022707604534445350928656378723528789639452354472652618397466191754552509082440893684746563111874931820725262307225413688567604098913224507851329919435422045121411715695409036367914637436320025475120307832262563824983695210355359559220090177639183740126531970273336792160588470078580699414315845391395860873346408779304799874534873334685524628440969448068788077249015608287578963173600459044727739314210599756043160039376529200704612233836385441866590073884680524637277890250582005603185821370338790828117208580788890580667254421226823579387242850724207286411169650926307697393169548688561746944639538487731133431932945035378847204766931947317719422834540700858742632213434923255707143414420242324209979230802693707053570063696080167986211850444884583995036898043307984384609413269568561007688456356091831407940724339662477382821688457605519942328927861965775286301423646959464308741622140300218691469400548327722887663889709534438132252303793191490411396966681351719221404520515392998773033057861687497750718404098116535090912055258848965118553479631186035770636474703683508342988857517540608391208453715319376654482513543570506005827433102823571697796217437613316693393069986301682908526555831509600257632595739680583129538534566805102102374092960648924734278083755117516890918328918460831059383867646005962581479017681125197540803951641977291660723476457996245679915911907995690222038570345695560486852762640954559971665198620032822462549202360034805243758346725395648709819990563288022937474250668610209042344710062871789775074604860909536074461181777169798801164847812431732526797334098128950097872613212324905625033467296466061693944334188333275998737266920878030696959828637416822652897453201111567584199421734933987077923996406396570262393090542525425732026990882804369079774384674806498857899423729003487193540038498555972844271851534531149163660915691316046343463384391896512903894936920963417630557083680988251481327871631075574058993429233086436397872233443107413267559840436971694066979700606120599514156484244175324398641153996016086462058543444126061788314744759349265841109761438349574738572100551831705646760338494960178552674956859785803313585119308756517635309111749817322378892676772497853246471417924527934101050997055308633446278225943061288339580591525834865977931017737933410287655355935283721451818674252091357902166330735289795811937937591682332531535145590526470268244523318976824848019015006142399648606663677524302617165389949079989055126702093971272734935385870134244543130503890962420604188196194306247522275651094719874299482452109287735942783198489969419341139201103746075485598980369554944538072480265869658032643596596292958426096336231491765066912194875246177977333088318967141582363212706869328958744763133766114708732260745991296387796684570772859951509941606358571653693391683278732363092117744625104010896362982140985544569885516343154701846705428420788639454848301177093991577728438037833651731978577018341604446989759869483173979796915129224672939769738183134386172725382590342742983182144046570925342016400159816955204658860972628677430748635007062751665988747747048712768871644735477126436427522769358173266516191254136856918405082153882049510704632189769358633613009951962087799855187881239355865490138804689815696982177099180020952455013645771172768989396453143456038092339519918747679048585798498692767277873775146924157788209586271146562858537408906883821998726791059049626083352733157832870862308087979249468669109391092168583609287554945052951531620194245918550726928188647890824844929256635184314297177657831045137561286896721402496526774989724417347187015306388464179562057304238975871183456190641310875334562916520354671503261346555417073848624420488161443387214429249154621360092328857849162910346461249545596420997059195735255709887966333627496173474226415082849037671635628077041752136446713807332487667571196887329586396256659267715581941529811419684015688759050243123915584421532646859688378750212268012212245511151815077560738811297528098647851624787922229071334145545031258772828742709450295969692636120060091759250107261683855776879891229280006730610982804144615660434986908951235852037681615832279682993208080648775731300067034178307798915244048885289131530316436295544942953402918642523978549788007514247062835180659208903311165919617183607322151843196487602081149036982752028708810275864812525841347735639319733321563633172971972504401703229594126729062731811505001595153574448571026431508122023992242147520836590807978631240896056133716888830537320084327093920865081404333481987708141466591604270697271888327369716424073222929104503351750323016657918732812069792609162645751397877350858558967599375196728594006264216786432913218270313672013671629489318220007567017673255340082538014750175307780935726404452069882493745188152438927987809918470936557854099063123934644819875497282479384388113731916460078698725468724444633892746457866751150575128352426659265482142388699789543124294311086883497501743547825885465057976387864496283652243821928706264382096070219561544485047641489044214515386771461566594594773972189412907437279080047276088370735330613890478182477531910236045368660916299473812055876599274492304105607836128752041071941375189259559991508274747733394995652034658852531592209964832303237033388832645528237101402965082398520612826475329963017515196630987587969059352544509710753258959553824036489302479680944285527698353560705957981936880942627305012159351151960733751630226155188515707196623612764245056392572756066781178565369700874069586411800849140818531526346977615878174254377353012211133588775909884169299342490121667776865054717476223275680451324622660420601444360990943573669620330383030655844884994042341511965022726041153614739750334218338621249301065922445451260046192249479052506004528142820571660083512321002504832114666501010858263248192014472775003958661324490622433826595563038543739509016264048453291337570893150812487103985068055519847200847804660858834577132831502207237718994132618659041174652353717009860493401707287092783879663928939766133666384892917717699506812813048799926845021962103433709370330999382200185948892603662715442948037902107958260971410816751440941029411259194743533218838235919512490423405218650963492562242290410269266742188504239487385863216544386679784620789149062500557671602903751748006967854123915013668540895170507116080506886951427418784532408397808058065304436315792592207978056038829832429169447052314018096988789373716275843673054117745086847420877307992415811090214020185365494915650402474665471723733955200719256004477544580740103811669567447380407200152551267333469292484564435140722332852858978189958900799750406672517104887635694184604155757516872714686210771885547842338018096399930433560302591378316598106953849589078867351897897292865630818782934639903334173562629650065829446460900422395078666453538266496294019912164475676035843154846971420593854741904930019279034491555312763361197295874130975400476315518659662234922154098666446442656143243289691498907413277988886675163547634590022307221489091063430880987162554262388622039951680864621527062831983257274667951538888822632633699113580241538861183391270777180137437829008909253065709148210934247131965268993482592928168967796498730798120394186942403164179668230097670168155039566726678319168815548511851628221396007907715014974337870732600350360054176078424100162420128115834521016651347728445766464054550658186523066500917917184607036770916635666580838857906767460031116529118707299390877933932260128391988862679773569389186427161805161809025797368306104298761478641611439119001660948798242844564383543171733928081395541621602336350790980380806320864455345334647613615012956894799898757394052914577162219689799048941265181113698296019133956401304233498918990532298936667992890249006110426402642483594377847211822350539845349389471004515892082273101921748716805686724238466655125260767849426513649272306719945573658432984729634655491097121148851743030689637338830740570605382906792304428403360291001519325559694798646364264942949897360396022917878331350913459244986890738381344727934377054837518046649219284629125161853711063718449259701540983160510398455841672023859872961160967567400496520526096735602836435335364324601839833387144175107162575252518844346141254116617537098486819838420872242672756650654221302855441819386195921043578135479679131339123433823286292012360558490894207637130220084080360975744037905240217849306521676181106011466113433405065060723066034924759928816589174690666163775129671096483795316081785274596577068401491753874965882380186551747582722188553937553530675722299795424597791504077156268238108759163793953476820450450055746142080634794656968193413439176832142438056404009821292251736548740112256062456698814423240912889194204657740802462180666987268914763938277046583380871242619936714165925977041130205314543168301777660403288115382143596776242639655683265312111256490505986797811775209106126935667471970641496452376345831603363275417936477150542835347200068127624547757875232184793851472042986568985331742373729671675147489074564824759181866587246512345398739696315797203727607185758695347673636433076220298897015148317198358723165934607574522431362933027255321276861326861566660312122383912474748084143325427365316007005338387444379420456729472060720215188209734448805324494097826632687769486365110326939276116273391063162939798456483595396937591202116334521750729751742081087238989027325233005342287133013932800466400270208805707679961901529172230808218163405311728648029034425312163144463801998546568891534171615313872055662873458662454904943865814285859396946250527668092917109503797510186540498568920512296638376503926468410581603707909025733456293230473278819301919270049047907148883144645257346818966536451921571242825330099569336776396468637401934123761410075832876759233212333887587241462451522756201042406748900042557449771006997225549734507996576181530585864315961501946332708011634752071812927403778027311313706844431771670557474065115690804970361290089237025007491575235062472226936179171891371022211641136008406816137173279699246390718533978021866742062029271676984678392945239731211176823806979616799293488471701159916967707238128244721341655511785497810777198516312058083801907654415467191627959011471646145935661485692050347889622580155796633398075938820811964866018072902273002531019866271897383008712570632101259484072621785690112051186214536671799292665317422068404075557106223801957849854467743778017329548192201652357151964243844048462465122866398609894877924245804202612090118327197687616226079433402532758733815828574971265566313631536388758179377333200415487154838655368194555562793705675928841825615693087813585262695750388233247612664625578596357192124939388125157415508152086392493085537135798387779953757433978112505168812436708818126545426635943525296552528135446353903339111853443494191778062682447207478617038918216907553011860507838114752521805981241029293706410544004627595194220539460386861774715567557698860597918208863691507056374841121064333476700401433608788850593410450891601739372243208022895734462857527535153145815024811920861102035376447888865678727745301153165612959206924385576779551448807357831097200440658019757735390348965452231577347722487066169027641612709624430633807548977164968980829564140660547337469848565003383619932886242898567822642301493348499338481227617569254659725834067091214838904185626373458412695447069884239495616393435004256041547917977143396858652528483513411076145899769218525321254843791759215223972097833713344539634264514431571423439976463433288065153307708649023770931387253365150540049257731939004055362372849111723390336047360879028937702991532816147534814718204274596633777387747283835728403298399227456225721992962568780160414067663120740248835364508106617217492055838151656615177457619200080251733131253528916185941137331034788633433007840954633085168999703290124286444592687636478226138528676885705606697916948641178200036824797019487549403720633358690857112338596896440508300155604495506133204442207709448548190316085884512196057447297964871407480849910899320400090627178836350122042752085527331375915907259911701029518648881753053658582487961048270243425067477628590017185858517181791749705456659888001890767366823633903550033794572936585978314658472944657275537369914569896452619293123479053692350315350471434917814808540617696374656060695802680169803314437691668407504370439217662149011286377263618068180637115397291398697800672120905562388636569258622745263966384825974265882677501338247169190930570606964644306160608765552617528703883420492604363829844187038726383101251725218127083895236221713042189644830014016894666910025671167253105356115809797428075714738925493975209064927229013956795586927922620249375556424602980187248153481651828775937807685875039059592521434307812772744285333870510789453536120479550016178130218054821850834823700468282158915300996810010955473772311265171440389616790984726949993312844222936776423404144451675849504395879477254278582757773016782428443881881720108537883104225429785506361057034375950965343726528104308654594070701810773484756489961895679133936707227148714392907522693344490276036629882493143596915706259078769587769441147581837687403088676925207485327403694532945127011338246132930446155512487977182229762419870894790727805099498868658595925933644929322541218544955319791684061125171546760881041990023907144825519781811572052530350746926554493724412730416548679182491517856273597811917764975919453679325541868991608175625672753210446428592161608484380180339848870682005981131432259958143446233460655848233529726665981328061018617349417175154996618130068311830108587191665655573360284867427210610892332899855057812653075107203493889313940662378012756198411513102603303534986131043568939952281697833989916830177684361232593213328702389190553026279680584293706331797207327188622669526086767076013663451823809940566820525419115599390449594057805542660069117741150929694052168176221255796654813325338388232431067107230798229712209892756760596758666211675490097971715469353991473767889378013705453453256160930032846435568104018957096090963820193099120385798936515341881666411557824249420663749992635649421557945911562460710207909225122305697148321716079174991683885810897562431307496500181684978870030951730712724122241483460263706629220356832694551521479049281582355371175723819245174651836237072415962635938152017464284317792741241607502014130594707783177821287579660079046692928356051301188678390448479406177682919442105531454850583508920328470066324328219885424177318550151991915162100353323577223761535933311242903322335657482358735129078857071047815299016369225829768288788586212701769642270252683407064153484445301168680712388183367510732484540816778652220042650003663544159124078938825669024226039346642459840399359405643739169777324971984466560906891427459747960185779232676734890690247610426696747466699850978019804773843617923735811071854455752758096638432563338131718961918189850475781686481040881593573838164025191940850421079582696868580496218677802979354570225965057519027561338446142462966938967623008791100062590272211256966865555237992770972793916201992194306067226303000271638403536559368929063527926489040488648769502877215608165038193619760759826083691779853154664879392680454474916074175924040522618183297019516477965309324287086802149143457742955366868921827713026042984554759339903729156717632385129916992549917381282141551860031553364076050349252040655489207263712260160203699329073468294843137508430639374484892564478519375334983053633941082042200271787146897989982827255181599438459963688261220180240033792093289215636736413049689641824502091313510024289378973550273082668206624436901028368733450927944548409192443133894485177498068420940192095063220981691929869097302432156137427790238255001454082851380665736091853602520746975941485197093298514524404782286739500589468538682901536028813364900155309785104534584959713016745432961552104338939107640782659277695601841398579196478432178432473811454321490538747865918786872491779028931137027105253937013862909569726477257028388992095283455384116091788797873499423699149384467707853233919841287823964117364528399876077091856600903335996719506213630467270406458300557938474317377573023105524617721773634593204358735664306910556532449957909028011862151031396777428200225010219113368635174821784975707133709439514838894246244299361111306806993103525913412604610659536135879010572202101155863333170420924010914473867224352834121582784651580547011437658429845627015841752720255777706647577283031418270560108731095440833137094363689193589694775435924060955086806280010964757282408640861165561461250713363277068462858412841196481621117520203061201456062120893152161728040366494040186238371314416965222718923965744905191062830698743247927315598962343049686822163238451938033322789725087821439434182692588276148269068800111793768966177745273085326439544567864579962606966334403393733082525289965346410999603140970317411436776733499747605688761908105657623203637907109610212461280273945535437540982639557577287381368613431244393989400716620678197335796181189820277047288917635378744937786322418904275204487678633625937441858722377689663960274570652743916892981708737863730490407185332766782330527764584964010270972715401257571913470379381672361801416837863970133266124152714569032814232670854101472470484050486915780594169405481312265278487529530055002032071291779461707890229294961453659942346503406522443780164017079265478382049749201142449481121385958631998304602321796743516466133608398620539348289803790356015707666533535633790111073837146052371815450888530640850432100421366648317783928758841610324146235856290978997694239187224872752046906912220904794415621143720762887668573751190779998103918252442978407770200486638563136680488686056896970845141695581681903707569690991992089179294956869246553389203627002259891346834567753488850550333778429608467512581022311615401636625436051145141920279927014857930149144509867077123326465866707732244352821424185709818493142169160482747756000800398476982603819742672506519594704932684129801530937139292966517777551073274183959039186733743991168524862338166610922618783859066176737473976425225533609605575752150565469662339352233602114136090721923753768661846828447354661077663994761110560066541686727120380569434125473926327152822113373569433030376876764307088471182214227469860586363459736749981713733408231404022235128409096873748175933730383000467233557664328663102465966904245215851747664779627480916574169375972030689665444215451888137182580017768701598087307945497332705391013498218994301615394795431863300433208880838049226721759372801950473973480769573560384104781248048904452046446961847424664985805740266458356311102291461415612631663977691561567971460672887655306732504302529765585340465505466248328846032371802498245919275499385382256840819354773675728131788714598406896039959553668165422399091953388660940866494005222318240196701131899556135702327548751525628931399210637115443527282579055911818157711575419393608792088299344303759124289006869414523400950726980430986493773870542597551955349603777995214550126442889356540635630515877457476049797488053256987592510994909417123877507657623229865324413896353254337957825950926109000738938097254541013678251797780776715260982186535357448541460303726398516137707792052590287939454030692173984867743660958656536630802985512858077505249426516719145017913764603218416442692135191032462656011951886211349298206141903666720280678243125252099056280489805267423400478770580245522678818863967942036619015794805639864598167085395318470679332841066896938082802806731405519341005293635364840400916792916555886562446672040673378684502518175255253187543289627243808148854499559735121834225212604384035120185833469417127938816639978942996666031296160396013326353198359832207467821807663100674122147350670928101712906555328879696247096319606966643604350256831167430606832019026332781869359556878292015816785344162117820512691343384816521546455077813461663871244950014133512162522176208131533867458354664040852849783396369407315575931822656541068705008650521093013373228807442993515295909000861612083846399989349779273850886805040569161486986907574861250622777977813360455926899761739919311170716117581885207621056779533120841100573676648179510772062383875152673169987088095463227637385249467125092499892243411606231263499654812921161869519663118083369829648776989563823914865461091128104217250986577423988226576605297393841909331060825190433942936737942179272657799998023652685609646652210510685745901357518046433093843521514574147547809949734005426580462294970111614971991288564422750622408864208524316362162920041392199520638654045948135939635391910619127904039694765987800591030656735100473844593700919249923632770351756154827212005027809022250107935786774048743226509675759507949996760925103594331518366305101593830435317478365453500914619879394777845421032511612138364600952674678593251532474762351031502627037912920417879703614694573166621727556320001829079990258573993255920670790117962049781819027156930779280742140707577800406327100335877780725696837692062406803541940219164395908656598036277590193722784253030481495849115495705498156860887496136143783531345061219600372046161656681743368148940652114080631252489408981202954448097883721825800502323449248769955042184881113413730682930890876873004136841526454683850398528987468798279744935832216378363090716584964092964755270088310335423136328934964025597986374450296627516252148509067355552724281661653791938552349738182870444332161688048744528666649288964069161387429513788461437606499495988260317990858339613833497628874460299363357416620168631600517321049519099174150008795058968463016500368555824499423035284880872549560939468326092066628763968941822405737578071595170712369717307192446541394071316639698122450138112907513332258412796151277492339900681184837191547211415654932852418141985370550810115915229131674951754344528865955340474436455498701519028114630636501353245565955975276243499148652443089955298947945303528806113806252302979743820704803786240960705249190778493081738402476992126580164559170637494754455486590030131489534695613334092722873184739801246420245663877381541297391950053102908686355301192472652216803332329963457870084934556000181931727638609498936317715293568598143168912111316380798163233937250863266258633001245913761874573104743378433791569594890814664882054618873339821106317245159492296414865308447501330294738084260439557255725089760106240642519230432817204448420934515463360003637230856624242267167222894037396528022903844442785042743449004536038320720764259474844200494354606453164455150987109966401173146318985174207522170981059193703851339583004321358731462225400397433853444812539310633589009551178675285052723569339554399906349351447583428646765173404860698984390289758298255249426861628644215558124008348902759358288682961615377607019936771630371284696008244297046405925869896305181397430418223143197054317690995308036463654242837662374022522746749766673869693167158451838464572672483881128518082834216408788661066795454268281405346772125446686655256476267716791477914675609410315847777915226664704192856307527623435964171818105404727535025821049740757475706441649692994497819860156712485501083931567695237459954246039203038612185208971790932723562615578194026810041836706185967723194398194770928180508911248165702780186277573672765908049295591016768340743453624512745685445712515829836650832489473521044227262025475374473495143895922256704294095233195233163032733336436988607247365811568017507466273149853438355935627787104211829226018607996235348458580887578575308939073662839215033139567046820832512596068359398799594782895171966679607551313421746461750820151284758678210393491582924955167932087233689012441057071472932164783187548801671170360941722468313239615550895431353363803642483465842936154276951913012486887775557973105028301990315526212751168742342374935852775688825486626996135463875021233481741983202688245765142400189429563034076594109673582820535368737178751019816526548580854907077150314372980450148909309169542210785189867351753339922028896477029085472144899404135851894328942583333463590727340574981754409950056151113001075704768840496010129311931768643449694439493863475531745933321676573923541593937420498457849537998138565392689865345483888244934569410534185659508434631027021978188139386962497614917983553812112652909706438971771386805618098440786339461971166610541319629387901600195976776731419797952994962347359750649958175368468589276664337909585252140822925417581839143452444813287934914358363341239201459671140796569923775961589221406035089177326732484962648303483766447416119084403403388962688528666441807353204454206238641044653997550365657767093759454901134887480623653965851262387904838686521251014349725663277663504905629015288136120977994441328796348267202406887313812415471972407197659422992558517880472311635189304656889063091628296854200742855147464568747306493636743073328001804514577875311090522142017736606891256839510956793859751598457422357520487015082394703878805736889869422478549409220554697995805300880914034544966635259895830354819503675513282593819601990659243754964184655131539556768579446027771388157270317124880300591736015078583005669043162715105459587034553434295641484015012569846381686501577315744878156366849865610308317721586190941953857513723970276054110216923932060480616244281116210789195342044935124806029980282850365319332112877254432304940986212719504504292664673041750650559335484529757784195727910039830285075847615685651172312570792560214880728684944812645582351460243006580520982783033101961918116250610013525020646461934898947338324523860995553594060984715162128850209922077731531415213461456294288311749898836112769852939492530081438978956574988861908729928398052158846710817922504753193302006105719730649304412480589125143071002397854758297649116826032007241364338602306034173093623419861470628115212605741998196332419090891220814493500558180382218103996268057035552172024707179435984403276573608039434163071243835418899215315517252317936003768639471435576302496295198316858181291916304383017416351505116954604304079775766314172773240333877961444000036008763119530056743248357067482007436015633874504675323074050002253411589959200009126278325107573500155823585782328385457160251547263661612229841031761858786652696397239186436614274191421228095997505633618968666399308212127955497154316149526908407448053356905141014881163025307292846880813593454096820988500405469063032346155011559820990146437740153098955511721413364886665071108619477027959769812960330912722777179881883210682558681461901694692158922531800409909997298195768131987433267197398298531585070120290070372510410832380766126078931995594751067509224750533215882461091731554425498924386667038701921878505682689348440380062354610983598768187812575158147836316362343434394332590795264314409214371769861254212479869376070713962793327548196178894687347903730494382949152432548657381457029018472747121515742792671540473866336607231882931963941558675157645286464405643033061662817934826209293351384756445367785679159472286348560555813717977105948147760939069872715323180820522898956323520742106488203341469563827474225292224061552324586011516502011932599993507729827236773011762076371618367376802737857653406579243085480582418426288377475472494196625283068912749807516927151099724974887636301515556615620338320804336457264108611942193234811459081054736640988956736289044184420572493292876645457679814462038164855046882403737521060910328400419391135054111243675707775066440894834234760435381104347610106492661777520094618732930265768005507629662060868453446488970508201267256257635675603151103561930011308925759127562042099890313753328207618648008178305963884713804394453571205137065176498899358752233096977539040812036426295496158076342253213742193892310537437773922348196792275309430353274049998066107810007447484761535703195738704822225117495157782080499010399872305687146427301344192395188513685144369333222285711982879102446301706769005700249207195906505775718911933843074939527202108608710257876583551946685603349920082123201325798272059368603166796926333974524964479222073875271912834328545992597481464107043913546467408812144163138501451327878639242248125918490716926566508653391992843769551341211936864575304481250441445958314597446097178675513470798024445421639740478686766971504245463805806235118940504164115049000732924978179570507615498198301262030053673376531647052665506484747563571806583891083546468491677565820557837618094067249883835338344965684057448116611954018305268917482933567647457826791480201257419435263016174749244656679450665037945428514291539205076697810036473920205744477081421964344191067792683479098470959274253186388978254799447863833239555385561760155448785637533868098008909360212249319922693343564614956802916930398266945882010596747472974996199455211960378900965290453263916675245396793668521621595172043447278594406307287761582545703764707529290903346514053111691482608031841098198104867120567051618577470257503876608398308391490384885898601774046965123384940882056754662886186891450124769968478321017600998863529140322795871242202412911845629820303070511257367449298643394670030237344555476408333131637055852757413166454215426751741654857546225940353902176510620662415885916292820137411612512001717953340800431595106558181608947316750250905884338202959063953140999311120182087718131604946300755877212036205368712202638008219004330224863180050518936791232538800584337755964552460423490626734992556730830415531105078050357070428802931125462361652945132258119558737243138996860869050554850932910088000874473981617520388605713079075365639558255569880458808596251410945403626196653475816759435802245571355160737026251853604933302473457120290581908718990892493873399364204635951050578858362473228255215779159194536334545922016971689213558677460831454718452790341213644549313350725779024814998614869336290483066137428430328749431907639599406445927793155247680639918625457884987073207876182457666311633981629333944456370632105160230550668136470300813007940708038081383433318906266824572373349955453613456725280551020377072741245691778386123618858367862206457147166596695297943708533504149128318667117260194482954726652529490829922007517495913867781721795811148997864467881270685897959162292961342081372761769319642404196169547404964908602690742647561853949316324799242283112385719988917566809644898085954341918218844736874948520135996737228792739347071933446043175807156556542599734649193498854121902498910545634622683238452849201641243217256216455961785047326121859637510732738088940516448399348003421009820816092950622670289105247241083681402242619366266141140217342150164138353039279571169227486052982762922598049989397322561595905742882049365385834934833299976170554596879615154027065199641896947568206774858523586117588606319170601566713059006285653469652397877454293026987751121329048353998105860535060956907874533058543520364400612047237655701417165826838461346558545772954057911150828544224374246200454254661534847179006756047328516607816542259041823193278738838241599430185926625318043870472536507988081473969785100977995490488472379939012393475723949891679203765163768633187305998343691440800044117179719706352329264049472697582015198734075126915798206408254100925715778136899330631572367890407266184227346573054026114584633060801365138584317215282738177241312020514960950414584374982609017505661159934145587248260433017386645225247984063038171225524966194354129541550233415400303905714610447501488071440560660952429538636982299426775244357347934967847947077577611660859888518599479339949668575896274246692553954399867278194154072445512320972570281873260663371291060017198004958651232097972259489294865850361638806357045156088379850874723882633952860729930892451877594864822339644927577050142759154411192920944214036489225621494771053499599662988964909968580925637289518511209948906956200005948647136226272267742536757837244281327341299048451235191750486750095496201474438172012357007482532509227079234222272124008492145755030254878553019241910790085989525001912279809929795752800158082634347757705844622968230988859285680630114809252385013446813190523295349408384829264445403284069024413472401801278671646288189623848989629430134706244015638699270306232234496379659764940898017510569111543191053097134492620045166025585974937080254574510817407163252051609702686963323240015144153752650461224268784387666041659902303689407953517421439009185519860268569584456996150377545639908250556795637599833261763459547695287363076635994811703358703231294737998650414309440813840961289811542551456341209809495865535071577879318473470786838921763911739462047748855504660077231049095979897256872865882618818761639171743713999343938134483811416777662322473403360826745438426436615008761274787001298806576677687116756687565810616244993032370675182650678432802236144095770889917857815969685779568498906680323741316584476492929666454951812024603438476733966443299205592435216415381906863059062109804765724891024208525500710571367338973305398878381051176237055313216907939137051728984973143713911847072268067781860395671898254940470563566992090745322879813011201844227073603088542527064613854709057423529141205871341250143252069604243280391640547295884412704874699844032807813982220409059866238829661618288524751760985146341255188810686361081082390140808314407653277015836344009099764541069576216882595985035370424470154684306610396823992427548634721837277216154729235838557244189007613667175694683988717523411796735212680801894409277886412453659398763849026365148741762701473773417237307842752971527461230938508257138002850307402844771039917651643010362083676542354120967028809512853903789333711370324962751304778677041349395020771097565434598531954385668608766645229071118922798387452256536160295456751460129882848772376427393207107552747074615496926250388121503308630877114658319879554167938711188897892774017424119730036230870206244049908426074738314194585835776424537907588891781885501683044884778652457999744694558721695542465673243826719951012683203584962056960350485653779438967773085150398926961457991341482539237482258741627346640263967553211676482407130690489117964177584219860158101511245544679263775733760144922940254817826605671649191777215752442306529982697993897622073778937743255111467819550042623021419338614257213291282469960297278203071538216216489519869934459719138921428564787450941249917149800044585644503278982493449875629413600764398754178338998300804549618999321967444294252065205777451274319194593183034019494407692458557255478708240226112697196332465029250248587981332038094553016371353642901885871640647745556657181453010679545558979996285820044316408290621739467470133703671821591622520737666706542452552677317091526284743699817571135909319868429018620692659837946529343419136590453712771845248549500058494828927884948936365087050950584584932639842277754054502761221307720170255405292960060448878208926531175865643649892062199276662348324050089909339052051829254009954011183988041000761515862536125270893718078510307485357546243608226002974876830163862521405981070009421942970546328519305207657226802189352607301780575473918862448048238704479782809238524672196769081525108207119862696124988282966776568239692234068099567476137802776359123027947236738521090365033874288565076245188872834302956302948110201023106848579000478493907940429340697158524497602371134545575956908960240438000458753486979550882041429928964177216341266419297287085979539208034794567034773571862148032063409268277394515760990411827098972708289994627755083301175851094111884469213728474998555757128258284874590348351503698623272134900977887180037754376459031755969565240207892218724094672351955241264624465929058107829764377764322936062575568323597839418586883107732393739291161034904988395964347440392776380564853042490422218341629280405759395933928633470794018850395233479704471225773882259968772278085441252734037580507241015415330128922187455705074564128952628424213983076657263554575226376328845796633623299213738663790886350238404211954240246202794505310506704098553475045454184856533882392383455734946219964545102624743617903789915405732926863615084401301599784637170640923267573556516747313334498273354820294852822264254415581481812911354559367787854771696640549056186721391182619820586259976509638877222987111523847059302128219323286129115524629984918462656981424056927491253092328806188595490235744406211583820365028395500342438146996168105761484620344507420685758044442876855921986319931499115568955971434164222407991253883148024580359432471429575974718703179806581384928359665363818992286283475301667352594121867647133922319704252414231142112542245130459385794048433864432643875693455490077869991401164351812410193347556283533619658693548309812692852326564883540821500409998810764558528156257705008884394494417971839218174713895541698874954549135489251819293038438372645302872649937916577118412799981895976464540680918756698446232491503192942335458485002704338076669227071537133365938729581422469802128152286727234384332737830807218104405774423409576370495325237414481481964597509188432995382394004542803637473533294086252703997230444767587784848828289634386062476428683246819446266018002508136300498022378765692008580125733867570106652816245296786106038003021977862927731033173179266387728881531268505311628793658057821084380021238776108478201298923843783056891147047072767351431276669100054403587935474580139315954181402078743673090169494195150840860587521110419323824420553164216105945838390957439204522037555340883942447772997882140546462287401139788588287705592344171578837354316848714482649351653449451272969365240606455314442560033253581055430095268822412094804876555864735559338828181750822518568391127879562941750766637721653299676138652502346070565851337344911961688057765251108516084257199916223041149578710542462479083381982221422643892561977973821756661536346958487115682752529876494840544248286394502115696985165205604626501044254993632855551590234977350512730497984430329680468387805909039826841133759107674399488862735411487490362273627862272943706385360321338690982086487761754538421573145424214120321781281998125610188697226407849358022345888821729462755254653160126746123620408787931898865206602665940296198586312486307552448788176108972596214968932610612886945236148843121084948697777356094378600970571762727490994129637222727164582572545208369655606108758974669537035061219467270435689810009183502875149382187308957321871838997372329358910500459911776775764966735788816988408147082751740976211667439021460154570778927003377723016135432651845063809514554811549823172844121563186494904924556468515070942887861836886070841118551185200219107700806645255440297751234680425266561409535270044495623079698823059019669194341356088281282180671489110156620144870769171914512788485879075588512671739818636395976943856624262243527915127222123197629758011238493730464677461560604160004626809151935534397140638649756811743094229427698448860337442004927341952283860714688369895598119380985742321326041677559444892512939908447346523051006575495912229047285172898451446077387660616200164992730064070929127268239542806253646265177078976549178127110438105798720183550627851598351588593078244267887970719950742440187835237978437939344094446678879413378301496953599358207592177811464160715438649872479073437210031938814371796036156405960483084168489783824232850339020117421841937449713996179247430539372039078390477291063262370013460036468530967769659315459526713933263092359343407011430898261999859140877334270425222140012543808844061712731032393029576138882808693655858430212407242502594033422644811505828551836671143910459584373612695449081470657479762148014303509043172839810070219433680274360858880877396498454422672011179364334877465039265562859281044136593549120693883535196073013568237472635507476241617881598989378027473274172385752759510411446794594866553271393360956805881118792816656891621239076203978507348682721535353796760448016511534620013832316695466538009845467277092063639352160364448122082736905957096305009796825023666202397550738768539568663087207080513755627204408171049609727585360770149066727149834994764737288045785875382380931731776597041172400450438178659105556367771886537530133383852900173838216143087734869190597656688626211078493873417686638231985836787908729582732764131429002648725555427214568683440850154276813577771960975392065754134179711122302810998179626700997819670874699204721970384750797857476503975064930737367419044373932799436197957200675366708864334710656067631722512317045712335542254853855396096141634403707841958870013575840289084261706219704314874804243464481030224270763062009698709786869111199967024355089759372156065105517767914148232074290127707691167029501091320227816080309971329868828928476475522605939153946150222826839986762425321508069455743001431604859764563513509516625750703635787963558578927745812244796358540956216726104709582597131115060146131299952854693513022615579212867138987355599087960652739974637587131737326316945542944749487839638448031238668615916029051572575012421163131247452789629221465589344759153102461435182536067088399878019061508407460500758670467779824695913716500730590411474252515926813522655561903687581283929955868466083179924854397872977306723647076792046954381390577342890084831226646879702667932618360381166386514505265600391702260839267710217671080314028833976609638710696916453960442583755813315348078081160292499186456221806925202116113636633632110627823945914059840403592686990154502308820039425523307217301473797680351494441319672859343595139868373945156597462980759771501177032020107837051279356253332374195959710861780593586764573513172503770247318190148184613975393819691304959039481564971380590381415792729193911822573312014691797664561811492040737006037090710740802770077755533802821517831234590144653878144882386745080849682792219592493651940359487178981311880285033926362937815686697144177991176153148959666386587422312996269905910375270699129392937810375789288727639531769636153906948776993407751817656774416994640873402325839599999676546342537252134828183196761809263581959228768238476397016917155887411235838525018529596717354688363548345541396837076367516941600682787201227114911577912713872868320365722884182124082858318214639774232348319755638410600969658854615426647191605729389325241759494395288676260881543758304460056859950468824339088986513667382314012943703631906997650445365033538793780128212170054207967694004049378224571490273655302666114559191720312445168950255836289390795932800978520431187635409554379164084557613110845538913753642403398835910420235006013702451579845833053500398256690749178614316195393581452672630928331027697831259945382321402851692880564877578109504195551831996166297590983855309145404735421764857715145071915471085723645822805644602203170435558850378410936382768884945117893774695658240795752359044933805849552866403781940736138809458299394841134470190798855882409102340532284261923128903185690179334099501575784037102500393391210410426416986458152334188354489929989647102537538027030434278159012441574487297540178193025246319507418941249610269100939910710496916814398219408140729164758609322778507493578384770313824232177296575479991364199597329342221951352660076217716094675895423246786169119183649700699783796367021794038033161225115983480546224919389678075425269207039876047899014948256462950747119532989703104877364619692664645443522425426616098636487668532262717627706191934945555576544933675531394278928675490699958058690002671424819032643705026521099583855552750371164142349506567701260860169585379610731753661327899649578811393651679510492531840591351937916078038841603060940916295720634619108091715261107233376824062583740846767966430749005193664759704664619595968158243784518695423787834225048827016391455392433098040997483032719335289026834925655306327302201245235911789653697216447763700590840055208408063553365146608412347536380761803124439596308794456682888943917687253326330370067227751020776913152755579895646316709086824264677712907477312823648617345388388983681437213066861319160440426618475195272646266969533827292125894121620083729851032616742926199936469762481163139230390413786273489796987687000778824188837426932265731495298765582649649253877724648793377296744095724218134656029873015716281873550257676958599641090100058746877996505571879822527588153070591871775750085889874387160068118351374273431791385732019056954836069507203782481638034216542367929278795357492339352827797402281909144725955350043964636699665936539483936492342041113132498627511704009149922787327062347642846180929113405307985234973519335075479136856769543384845601393495870162664883275946265411630853663579060972808044525610532112980273472741629368231629128735381830897243594184011010619466644787229977505767373593549593677398755326120331594281072047742271783837280587854918005993880780309892680245436353072998516958681051892071674091034378518462197881639362264675177307852986533966294317203274192739891226781832561303732027032535904724676618418765284871781987813128830570083675620944424476373153604167391426037315424258086908211760575628521923656189986316329846588629014744632271564601152226892402376594855542221077691134028092166042300817667914846979649757637719379820595483032018986661433368090209699617222345358942760287235970756253294309112735634122892320007350375658418367230191942518453559677879813195304459985508176106647550344935572992209088937049764575407435199132142043685313069547250935566733277899680137908495183185569281959497475762743989591957175290774980458841228582066905623533536698717969968289212651118775357181268005529699610549722697676844349417910065226412693060776145038246361306925883738069723090536558378512358952285224305335486864891147315265173888624581651057317369051948937355588682941730988266991591541857033040815180063711145834705113112826349573562696627610306259441538368797589021265557231254630190265330421794265790009282048898139112099883351186681473549496280304417378677549555094402935517280301185759161325982092284142757284838477800082286916580301899384135040354722783529850766155334028872028271717685513433209355353791123815953466474739390569473634199803071815146274444029556188044745862471109376901753957160982101959788570278518542527701214549316093397004741307189681257627755082769912949069054890565846065507112189581562752886848681051877141007827782270305445235271532631215506679671253201963230288419239440285663220067299279208087443719355737031168950307978765915009766924839207727758167643866199973609583251774792454728768393364990448153909625065154752896480644579540002374715381057861890663494734241777479831263758247805316659702038206268802610353498624901222853087497740959550454669589180549270756756275887307820006315442693704041387961412644347240366160256546963022866348819591475539680256289539920307412489860139625025644435037652645521956472901644732948228576951132382275268574052001783018850008082435684668996516902251504907799611598243384814583322042927134445144153946890670952879961887623477019474942041615669603389761394011938671494537657633868522144432084275246162310889196978416849122250691141711493116397809963425062308226671798869392955919259032998143435879471378642427914423817367894576480024734493873873241062358189405746766775418139432458715802020721867927790758563397336094428443661054677313565890701172074578063315092257438110037607371901626625001807193159961787614380406461448511449199410950073211994391663564349324602751426182175196872969094704037196736413994927971548380623925474645396448553161383765455260424010065287193263543993701628745552654968042428165782058915500374047815929158946783404707451259869352034092111966269824305220219120780665516774819199505203197212945189953486968372335964280517084971599244733627480076474549769446849231152827243405212626649360673492797077227034955679791151964643615534609575772402208199675305638624487713196365655621533524879144031463683187453141292091831944032386087368146364629941046776582884764025343858568700336133400863751036898123905008849486183366908941297706317457460155048411640229480313311884870909028375131912471960796063769733520911499690402596847106613767703643637459842452285411047593657669498692037371835976315243264129751546661878211170027429462302793210210076219534720014403629674660517721198419192503648864548362582028447006351035706831165531076964592827594309998561616903359830262574887536874653576590432915287108589684460051288558951807346189556146866006523779276229579198464940535928436381132889220903235868173060545733289872677356253945896899370994105283843919770031869658916855240089337034782553555481966771360467758362026396071058631348013323267464532109309539804433086811517480755119219412922071853313298541330323493609389029044104595844122309196001946053896079643353911298554095169195105895934538629438817769574858365889856273821880139428875744840498445002497773461536436336558045344553489536184786027338692297658577822984155974529918304169111278318454916274749649404499591974630556365253549836620291822452336942948516270066789228469093099518195765404489946698938296031366129317289054632935701511051386986984136079433885743618090526096271645512050292263219157856798395411184530254954048322932283536441430544917208168677946603541790201054576307357683530807747952062340147395091774597437837341740149082976586239864737841897733370560173078862209597505040451685959609920780141061261815021816831732143460582686131152649752112490660164557725876288964936685003635947294915152310645554979171760999922591049075440619669508613363313992991711773386719946590332424628547267309849117844869397930918462616560213482794393248886799700463344446431828323164339935839953025512928317036832119833739967312595040155250806881350278723299629185963905492433538471250819639149135524432130812941545548629228640909479139137899971928460972402467961209676877234860736635391109042431335394944396447825318937864389277843065991589583697230361308308131406028889002386791053070650095890155889616972490592556561727981647857445842581154803470677036259909817703269813348507893631634811476201755168226481940596372582028585832320190613500323821147131041806587298734816626904881709640300569955804630672706034404780829166894678142985479062955945415606714196613041960624285504704996345043787339529084727913233650427839373620044452969563041469839543567773042683947304229386010384322916123344607421251353061378495882146452099452222829597954117023859891607897090918828005343997138860214826372127379941375140275777855129649745970153213903566856771730664153955365081017395266248371701313443746983352425054040321930238110868555582688547987718939092215872204404600376512827953819383144755302545306981638722316053249519750736369537292911975248954712675394874063218740550393569552786141284320299023081782568362358193558583963649024615485279907987040290701222911094297585314533894238863133639228302339563506351451414909661433335874407656312800997630473822447110323212857120860967005926645605172864391424225090894006406596657486310922631796750814039662017071673278005224999425972182513422142183167255804601947368184077230475784387440403818338726478363200520588203725278681725507540651636207634320233382060657067138275358336779687120416812424263055312636813236991653099838458516711141839325255831415008827001324992142154299781184248228368715442082814717733084216896108977836690866241796871607765077093997729073685912485351318343550810377376702943532692222598546941347638706649226495442307703609087000454408831279486758982605346596631711518512122206944830415035781025894683181383148222444092586396467637306749889248569973221636414871418101172721097910544466554630479159027253688061947021978600244389305572665383316895353463957073434418645722875886536136777367739983527530304650851205163780288223705374978487714709964810647991828542835173932053833654894106238001316263337310195985407734266807273604908007337664917898087763102023642974470496198024122930267415612283393663000748841570330146118087041925725336638109049115957932404190380267263007126165876143132058149376271876625914497548241638399236121488912757895168636076692083708546374394020158728083016589992385865969544350911878753537705995475824256834436641479569581839069993752701133203016677035836063989524014652364258267119519896736856031918715100780850803590009008924678096152461640749857647475285067111250628091918838569883348456066721822257818226534354162412851909624896766873226037233941902663837821838994367163063454640126084565131775678081199518521293493405546253436845015243756349067236097950989568871016073331486393095917521896138635317080218284046676373512621359148148759618673721486004231701081419293807587478578403043782797069595724960015004686537983875358166595227283104300652286300770882248212509962426613027097364248945254563049679253199042927069331340618190019362262185852574375588393157987146050332322676457117039096054934495700332145128911155317085611259166618218928694933776413627763156177823001258901323376833476135907345353074922125304570976558946411916668004965378063958294391700781415933180803048806564390208940149362710815476337987252995790250946528006904820460470335246834285140380880481033654387150037488959227673681977384834800117317200176801367725341744900423409396249403663349236427369718891218988157341193933927116654301096405808834642441923788280796315559629593446046656085820482242488085034417970027321518867830677942913633356468382962183108332493095405710239406646767915593585459476129869127802021528166281889249254007507279251196455158948991703525582048619126769004518337073255548436380159499382531306503842270271753220556222220414220322911700391785323619197779404255610340026081633084602927039628699712665390481616884045010896850919890338473136222967313869124978026673396120106293983172903757819506747937383164509071957398680368103276889698922890159174825702774327643117369923573974839918727516513427767442448679353468952202466779618938712231412265816666734594528968185674048655538214838779603770297752212102919104680642071458934580388772160370523105105061199164171226137385862496230840391517894919298789773284958793364901265657986624009891390450225409743440314308301964472521975350221817100972139860318986424869003835456892231717646180108536611622307831411251309736474149406430152042994291881555973360050656098288082150260709362883948178680899370068043198950872334833263235938302026153676794566903024247712725984572404583239206684047157009283324130695533067364640538663033834752460831312190480836374880435698381853108447068962650223387366775496274140394143882806053758030993657016696668212334219642430785070746772097095996951001655366663675253893332028896453886888823191351403107054801609336138598802450739413901394830424438542608260573284698046723505995587075695697791412639133903194049666835945857375458666639874753986076002156168409035731566606495679653501652450358972456247873671392458311976521661946388992243841729991801500121133632257495545650642066613536128681384787176398912729941480303331034277022151383477849704386891970448978511261833650082845270486003685349408733785232304286320079144905521442881823159768835558943459746279932225520248987798841052303965713856173992096851696989536774676362155721565764537296222516972534529307887021212388233241016390914341200951671006271991076772667714368977519364960588271659541817775822009882805977362343914865191882642532472702131912001833797023794561288272017957139528482838099417662396902281036131072867305688904185183567492559688355303439738207667420049539816393188679571417248266204580083741897558106538641688221624678560680194359021173588254711388257764471863926007867591616593120838269372383870994666021424694011898856026181120471798758325432751901324237146149224841824119246742526744971260310241938639810976238097856000724099442411064617134292736298446611425322035496031133235130503772131784673867138384880759619139202969341480106047697398255998199077701592621336602677345260194115885648280665464415095395294567124975825026786479929673855765099875972692969997394170333184492491791606133893658335324736841497779802835357423822787488567896984110589557430394331385468910345369284208127440492090181712668649997251968430624849159089849303202711519856998375845741163130736565475412169817693362427639747358780638422434340767938744021962733631681984095449105258424031202533039892538498557373082353748196902264641547970874466631556599745479200655410343994551678659287331939239334410037046538958637060587087420048663384646134429003873499644752660324916850977062518506457264352747531833574050352749092976493425937757781197946590802250885542835056663273175277390857899433302679455601148518824746928187487861190951825896047437536243301536964266924288239593424071092953321202405605265742452348174634095776816798609728901249590571011928253853994238225427795532230221348975657433070224286316403184167781598351860885202540534674261759228769922282935083503765408724421047985086868861208478195032232504824216524818830179113272070248304945351489259292426586772496954142866851396979220116383900947128393381183318881834239914909812230158714998862146842446074278418464165452747055432974123923303771596663571823157904501119134128390527101479923292828808835850866674171522604034950953396358705766462222980186138788428180654643279469136975844224248580628277178651421907839628653284871776134302675753923259238656951228867875034021855041134909794572616847144972587166251379477019739965698041764672025848572024589668534876255356031343351618263089712727763781730095294631087580793145157051627858279394140575868885613452703927920307245925238151729336974382711280598700868406707865768517555021802478082363983975559151886704621850444200333790057856715201445130465760361909371259013208169469551806925541396120737814163294434090781480557056653053430408676286329869147129763230434263616237654077305140692722009707552820338262624943645008739393406505580813551235818884302313619389479605048454871795845871937811323966398127643273150458810652879811908539550432242365369077472047481495194241190346193347814799242625213742771273329400007567421072650491828103108092012390941897104135714343426889346735367869679744577271845937968637572501895222613132403726105259413062061944186794313244009893908735721168712908665310580201100327827311985501952145407550222473514020771286571193850279049665453989980009588419348747898145961282108221265339404338252268088082856344766625329320811396396845624451082932641355269292245939704251867479260341131099891670576121682097265257947920666027369610388234131844351158064535499977773368474647609838017195622956964497628541573641067805410829639868388507787865382554050527241544788531897273899612738038776889275301952531439799102617766744872221849715274768536406920902835425997582141318135028293551234685574626098465384578220163893370624368406133757030981997671696621275866643255816646654393937947629392657884869271562577825215328735045109900508564669393612057433792282057025126525840919575735738493071791825180024744334146812532179115231291019848454019834722116717433759302128304104253748195425154373966508028670408444961609401896988734362396647961035303644068538383395566372902697358564187397372163381047556732031341559330485020013010483129607858933845480623969177183215640067109149799086097896635303985864084058993000130510275527788668330831879084745143074067584947183260699555109197117985729622180489024521352187790757948474645645647697983491114718132075208167411595583764513945515033670255035934861990314377057380962937682436911422876283844701448133592874566760975019278018961951558119409478113696412341438850102164762468411686169767273547395113772968261302047812597234507158170134027783073067761908573723836151069171814797294362763409501803227895307137990977507609349434043867013996866562250569359099672517074436915562466757737746995140140369646296737501207471357449058467898774003481093283414227575581688835340582446311612877006531916747163065431123909394672702995744016187727614027199795371283449126580505040146803433967860688585999831462632994185303263906081628425175659358350557270324787647052017074293583748414940632118803362191229910727918388926074841894923811856279153818630804564628749035265329841708445324983846992982398259424689918861704302963861917522227026413437071973123798761426445116214202569151407493947454234183753017155135557001547926279484916140485408272295707945073235108788618919772178842251186235234456482240031831629010548703270380125414400283575374193523614639133421946795747160782377860200431758153294169539913683702854762250843840205051682980665194996744317434906296042489394065979082992351361390683087664556283914749259524138297359822187220653725721233969597536885599247306159082637187003536931224326324823436883788822749824263226034458367892612025961119371107798681355187668823246983023632685776725535554158318443752555014300835950236917877371396108717008577966781862105257819398181048227081581020048455257233538500982777461515194349179819112837036549780757982397191608697896230827732615285994405172409788227058952688483123976485446649669408192788343707502011585813802897616157402313892095472416977278418701117889636567247007429130267252810943615269830883214005182654214781587607393472561491526142117558799578053672973832065173239093397234724149493747511442168599135566446130448877576218848826673374519344906390620315748015869585758230876523515821461249111078007647482140308471826052137238937300145676544306135344281982361194948658958444925139344700470308956896562758387543624202215172232126945630637966736444648147844754326569341642390970777232675944737970689389342110956508584623358189606509789997768255507354288335813653203981237378135078476907126010527785931275513764879377251300282800452001484676237450826085071654851780682458380678076925487597913372535840805093219685262960149069786775768014130770797134139361893362216084471281447478767028110906605307345032573841349638466070818325367411218723654727291717618432265952941271588684873148906063430887518853357284899676285571139398618177300450421955225520032931488800131982841643605725596064319408186057545193917430309335064114535491442725582768965014455560297630613027890050367491244539210274977462291025419587758975566177813722644985112292010775649238039604405345188710540268455740475688315644812504037165141913457821724180089829557240469560168626807713813557242966431796009006788531209804519625843327942808965633250025651571878826866808523258125874045696566070903155692466630443597916292758255502964546862242172974537579115583600711949601188103466707093556485193735588271474822034769721550219325760942704251683193235537639357458230274284880063585539261020396312096120383198735609478599507262846806384400819877236486007417858792073289745076764774354442710863818216936091439219846199437437880392191335660000418121723650333478715325684399343484567437492274899840628147233863109936010428461169266776983210705767579347518571150561040820202684278736478527499531712459287125836916642051210695285561204736555070895014852980705641128758912264058011416768300999411202529477498811139008680616687954769663798963905804686431548246337118685157053692952724913001089276278608290827818382156716317263550420511178414193151404061606301607939819144716123630895241242447800141856072671165702052773434401388392608913207334010260510106433061173669534985455325249596964902232358063965561772283931841203521154239220950010302190740955926490786280606041175067022779218243351935806691933385263261550516466396444832508811099966684239616794867025979872362486554501998121588744602225080416498437832928675402724537409956534536188328113475204130569639209331545192575191517711719416364603996196528128557872111615103191348046021522691608592465407774244113458477463105016647914197383606818441979326318705906768213763789154165372896274488774934986242358144382919429917996600522026882224286009261273252897049152724404494683670981663516510273350150993073176851915799519160403272534136963079324831769476013114820338159897596516918903219536141787544503379541286681752701276604492214523727883189316934627554752806495091338497097585382350016349610762604164515775044303493327310298110690914985850365597363367211572519261700318426079556328098220597235308064317279822990713435936490085554072200341066205655413888439273784836195087899817813693781441474870292890499863720326944464692200168558428435654243379337068301152407463885780730533497086544600750672262271826478231445087484755584485618190348183173680228401817175671589435568187650192437174930991255921093129669681291254187352470030782975856774848869068495104884152935986455120697989972713991574356361484770386586772244472596338247361025803530491888925049941114006655564513855536701110621898456689178833919618063768202724727687526526909795601952137166199063613020827269871758741855076551548249673995644474566954080027991175087546025799336977428885031881569829498947556516860124007155007553905331059217383276691409028995106767581780337475533971827262674810890218517369045983525233440155780235015994615251719508444799754733204484088560901518536978679638012208265468082741957938430958988308576628294087694341960367274791520613955614083462197794518879365314564761743258930977985787815452401778944107775351453814215734358201559434605724258122323149721331323488946382045542600823458715235678141066887830271779012835996150220610651477954930605643129112698265038435162745597967150171559751076957217473774798992897147969304007318067424825608999211590954274530372768240805694922305478218481346668587611852865585267014677671978600190414168764932964703532169593732630202540949192979037611177192757335237366891643506638716166258783208742385293948647202357295285415055710182203334272268669181893297775584206375683803571023754864946018966296248306470234810755452333878969528241818526143195750632639553391556568450836040255301662833213591672546033147412642483354305157595620924650987671143786988698467152680068527579341873159319497436471480991986384984771551255069221890126520551804124453429823187423910791899353925443270684272470632512774390320068850926876131119343006805444389259203605985451794031553979469320907168997406981142480330549611280689196603097041517212477499479165765562961992517408390489879726318108406743301632941285467261821656376000960471328025206178378918875042582550576179869600584783611307119888192111645360216350092863697060255004098368077881069186155530065292097689325322907655561193103506585934179743743682851833321421408764540773114572881976941914005930370441529337667284126101249761276669932116908934714019321438213902586343764630520790646500693423267632072798424549325168341476045786482726864908742525208144877636350624212053944131486672145108272315693507368269995294770513408742637137826889319289473486867776583017207501382000485460946927602139722998631830456588731503558562507861970015162382576894631881348778743620691482784033426528011521948069315085659244664510781304957341664187233228908886374078091981959458234552515803230940779027832344871441777609434627486022829396928838326963305847299212669566429201832238822007891452659919561105614420262442130109172975918622259092540207846247179252106649629187844684657588254730020018314944653013767360126766389904345398359787219810311707370701879456663928698008721675277426241083800454299795895435402806278366903871684166089749035186412629667068209328333393613244375566587548545372003252907000764482188195227948020014408337694857054950932225738328161369530467182108942167980875968503497521949868924045652481238870971058675377394831063067314351199559718426019801804907692577855802335910722014524170526368744607803575645233622999328205614449704884460692020209833341770534543085203741403336597594369318411587114318061688272994184868257652328394767781037911070862554450071958102558235221143481172491903925683838295209089871182409923134976245696262757130336281792579969322091509459443167965950519430406380807359666833223876466139565435333401071157677338385635030395293614474636191646047110134873299179735573458019948792904728574515947543994643761305359012565205964107337667344126014136746332779390944732512975877781385529000891114579763031950974172072443457640199266710373703249220088015823017375082253802170053609589882701307132166605494860503116013204214833588341045070964218852768881399828804767393164295942620340919233628310062430655065872517687840159237823390978677514289889549796174253797805986309242329509080497774612012002857812319954398314717313386964281171016479212552364562000729074929717524086690004564807238536850969710218465465531109226136151752270844452015760468805598738318551106089723072269426017659890087887115473981236263923990693827380418836195853417395534806589153644501570933354250767415705482255142009269903881717201227944548680504299243410211435688326429219063721918260727589109702647396539399330520066124465946814202204269910044324824060300196771584641485796029735200082379628409981363955804585580274512393434568786116078561416842702253577368837196562986285383906302484369178451550958191181877644811418150900718981812777604864416481168703206934675182503882429946276510402783968399446137911437716507204660714500141534980598983650593794819663274922354957750529081034848555807162181952954046530600190266247864867953822752704141468522216134469380878081473133026004565448252710969051003562018309938567377001500432486728797190433428150498236703758567689888194266613669318930239522673909325924867090396713824372793505774507920358514152235395235147884332878448539897539095209740541346664167441338574589471395638594860019490761941389688040766861035351997160820827288910244020963126141352904539038633490890811604760094922039765811160545914465973826430451709222925455539922823263147266082971643061164685831636370258542463124407648194129703913491924881505090937640993646973517713273862182296265527168322973549308070920556132008621241275060273478938826057719701649653777728424090966999817595453970961789716074539242082139217300936604844650059018112949704526595518451849320390408912482126039809027841318951817735454380625532022710442661189749456806655765402944664062376179260179627760527843239324203028198081873421139154019535303266346314834385978164858801559089318841971501940752469736743194835218062621653268522480567050196698043471862600464584386548442680244069101731342999049591149711227359196486563807652117248100443166001958413395472444973951693002595149351869023632376011473568802437863635193337539221860219797772848399630254882813959873037099470569459127119860004131251305476735472495084934912730526519948488513858109280157428157617255396776194387891896632065139723366530319220510415723446448604472690911812598749296730803418406127828472096063870859183524692768390611549438338545412624339325326845999526964558428607060771356958651220619595426697874040064157737529737365646917145624653169562744458371103512349523760059367610743186463399006832926912465323821614841857867217534399038799666406809616082864843233839294511406296069285583317100698909162748289957913804390756021026454542749889840024252790768328368178100289668067210102139740392729778497155873267301269096828296897386542576056076202082924753615540917431960482928006681737208812358461155391560965005822964640504028025141408486467293470336538242905077385343949832300551966921338842312032131470047404088484426216803427410814580512380949327813721752885106614651178685106227081882888197417558455379125525175956857359559945964593048064267095005283326387589352571812721277567060591408304754022860876152337088725050454192302244209022284464335369061721004312077356768551746360074859268215551213041672598571267403777120262632571488526167187670194060378505560853899373046701944262834554349517819984553990455593659203718205477617245667185375955878567669664256148790623153274349188918999594177028129803513877438135344131117518837807674090297521765660702624991161158723515867229718349213787456712094016638858488830233937437186084174998166619824974420956489213719284173150878989040401865105512329426273910180989625310843267391479922810984064008778103087843747633170030194938764798953531274773756203812733966135245310527633990801822338230585251069249351000322394781935352522527567920028859278258731108592715569057630221571365290464170162019492180977473347300549565238034331515572493585373198901437204083277062537521471016678383782521249524320141147844351035603357834572482761521155102096275050792623801490442797569635626358603016152685191468654154627439928065382324444407264603929817733069620214918949459130761616546606671671205391392502665676183544449450300331892057649545238265904533520835276575034371876256921791053729731179879987512085408508250808533692142255204886656296544858007715214956168837421672823878449240953378180165536494226610937318624524780884577604442371583481206215493372329291911594523684466751409424872502452102699039228858268154819734489401343718679175695942858003512086040587145461709476629292032928942990365532486330707597175744738658764282718189789853116234741775055698469073146976611863052603686149232938068530562766893951950096182964602481701175116759946516796850496428317882435996539522721917186205725730935061138174749922475105391338621561421914891256842917108635722561402870026929977626753481159785019998463011166399765798539718482582155973546900539434042327226490438015032958760965342563936740058660061554501616302584716345392392973416793498199051184507549408545108999850533431197585014758681940773258648279993780192090836020028926836723347936193555779322658649120682054446960148607360323378456825183312907922740649558658490094199520285587134956518375538606057951041437913663929491780492726629686581871624865125399271695108410304232233759410728297034150346851609724044262506435716368738281389925901357297963107173415212493036859185954695662293708461284872069173157518420341578432672187031902751362591794682333719496270960359828453735218577528476418992582612564660302182012860880493992008300751267476784476509360789172874865738661742215388875270669415802903278224636443688574060435940090305633648209377478420652711165962070257072471932824997703966209653027587774500942577513411006574162957768345674200047041503091613368097057026237560859416131773939031425011942083657335433585295521463937786892803894470799648215550750004421712316433968819322824238870516175247330101347276889322149305289944312411657613761699541665252111161901654747929636671824043471016358137271473546122796331812690531780201823683661696508480853686269107956781421270130521027361495157366422022994577238365253201027207363212124398738239954108288316293663310094236226358904473609632192376182390167715673919836487036003441876477294001027254319854796362322407098568194801932561581270025770665355182861197436261091253093214487415168154651631064008927314682523232977571758767293578129037442989971776560239627951385836850010988632042043401830469646063968672497555393411384082041584834991955866049040563185079639378410890681077563596175331491112565278148923380487752173797377160450869290720691874507292141186324489267848029274612293320938489938588885245894252432990822174436549404599619796720251105503658669490521496002809719288718933733415423857020796449881134120381111610242302815472772313013657440388510647064713895229805716062964302953141756208659211892893765188292904398085425751265972933377589632661176239694673982688774998005942522236816615896267294574522667071797317862308142631458343649325966394683319131925390867667864866209553913150978312458422960306745997255416523768908917109878018576016080035066745840014257298687914589022717582984387920408004042110622970220734287959982015214228788807850777864121079607903356115076077713657525586317287032175783799320232734090763019597991446550042714507809823874246804976909532461869201152192941457494977388945112266220027298110401557423558405950744435074358421099586519915972146164558612011570821365110789196510775865548619378739630638353278947687354300054401026908661389484123281145728189031125475945038843417848223837628142252059940176349435993732261846219089473383955371273831038268004777136543072440271606851740849454577943460206533931961724197679289227618193606105645223494721518321931413507267452876313635470276633366846451972028945573217513891241413020625360830358687720859620114014438646889531546600648932894826187378432749030572651173455349485040863669981560293328829515291853287224063867615528630143949183310393006652586697032617984400113871259856482824436750685940013366773774379576556626560746552155424448648891532642670613120781359559679630224817955964934522001141241411471725755864924036016326940437707521158900467183132884733910411702045391568302496383372350914322961983107146598215558779868183046980719428626904534000264141832226056247903545214939285685432342918511345178433026214257832198016704515916595502325224118215697197330011663881053241252368345343731907172587118741172983509455627824641062466951747017061024737615485625526239628466812483593706017911873465501495577651692939784061989852197490809133767889628408867975004832875979599219555236693714328872658509857873887401779873803696404145578820032100625219906550482769419908892480807661604105294145168129686440554894049314298292528372701411997957575999570338771450067891691171907615747807575239824323791473515560895375340518314489491099522546927120483243670406725799990838231828091273972422947240611107398440994176430326005594662701457003828841930023882385792182256827807567042710299498102284775694037623506853604420692912409530182982361198461603257759915886334890497550688897431811885295020156905284165528861771721198135322697660923124662465016726622953618700642909877428184920974144318889746450103466712545461397209525870661959326451990668163531586601946105024129939102660982394165535927082929231988167076061371337455634791912254489614672550724269015745065889756590957331269071418491587326025623429090331254106187245052604356394304845667080388677844834828010486009600697618182065273140798717490971348742413998182227285900306206288907200168573729774960627276650023106852696183704848210109678614807624724403282977916689798146009550774468208185074976576159166797948567096449791812794197975659363058280245971459628102199683780708439325557144710369156899547737682575071494819900530871874090573454316813844511304298694684235670183350071317494172922878934247544557515755058680527538658464058802693328011750795714862966479093382512808660783052247703066340175191722680620260791958699979709201956465088887988411497820558873001908828118117548927777789168731590598180425564433658633619944990749705902245421449908821511144619992297951504122287207223584546200531659497947406073631734048924169255720781168402956848778696606323312175502535639378567904658220114441002612806480581503978827639558546891017318798669521563178212777564233324374930558936971847567727872918861841776179002284579852942363957757282350002328442914541927581698214179551083873163580363821264722708594819481510011913823119936380134522077222852604450972881336499395018864299946880739233248920331269325322963459398865371537670121262899263902585143415539983588854643783305506476114576367170834220428386994294690115469916054181689543113235710310139842755107806726228469571836559257489401975379161743644613170379619906790356982715278918316785485067196263426455506817100940508775336377548622034549019469008354942458616599179151518423589544250398578501745148695201400413541710908421867878666034157079283264677647307043064382852534462106707795397000002116711777586398596227707055207169381098860143387039984920134262718664571631522704567886411163971879697563457899076394758123215551751445197368851545958670539975245242579609066927751594554367268704198278484990607752420840116945517138975491257450934562244519220767177762467452869538465441155718523372873047010236576695413655035438471236263775475590491852213983570997112513610637805018442367464700982370725495135548118797292136759213182694938275266773694901000851202091134857566822018552310791000802892631844187618493748531374621231793201266789160919302202490855116650051643985610070455113334864655955785083176355250063322489075894760347296829942573977310592049658223617342360106743299713614188953743352590954265775653429812552763474206127099746168737807803144597161229625193384648961824888150809120768402806802887003204899296697229598068492293004150630404394469527706685295987537189970088186962711940687940979310913134465033437649842766736100848875628095789725638533326505947221420811520158966293299804965916549866695834413291615884670754040230791063279818668682508500953951382493685813579901812485854907223604384595715870184093061046046736702148474215251269208539322459025741959134295534056970956140946340557641777195434011572562823070413717209959272163566478243076226668603855792772093613355198891803096748111912516621402385369841195776589400152991212102589229732543472994267889862342550397137773182105412969300210741827362550448479182020787150455165143175238745025378086321412240250285491350876515689296571883052204916571371940367028497059677304403364187258061036589023506885897765893403622795061746018547506125439897125881702138028894007224874422408769670194054241708186491421623674210246204791229085025404418590238893141544093014424976235141662768140768136435388820083616072801916656879740593950224602750675819060835500268245034427790919425363265145763739712282497470907241591564582419302058726436912119909915466598736303705442496676882991346824348397620430418952958210018239150607795978518575140684803532012618645783668214223696952649527890928030331806114948388109866199691439458120681557095565905367212790903368185828697946906487734873674938346505128510331552357742166756120917619719507983906468431917147450932996040655156967002188332595906790629236881528158071876844007236779146766251429916196473086150316125825823763921781627285392995008317259281516689785443467061369499451713071504577115268604838927646940913897720074815403498530446043683851450358033003973068780989671184609625662323544355060893108521681797374204425304816205869601323791454983966879408497388906302147435131319989685010552639897804282748696270883726414418252028965837933196716846980048383755125278465846169368523559542068740664981450061909942826616622741254706883234270247815635095852549994390647044750342013458093479170536186433149667016853866086603646919948467603030593554504924280969536687678568703702180011453708076673840384995880169128921977713358262979020140376298624128052333089698852218356133551506398086989780133846118896134828285358861663789674721433702932334380770945846535780946274514534371146330144618608792772482141419016619801617718813902630635791938010540277880137120360863935596385823742783491588859294577698596990744437407116745309614987992083612366198027872375654560385589258720939310875278123244336873594178646561180467200633035613447930123460503492744776140050342470317310585574420334332149186980835168176661719221701292938533513906467155623122776672782665557731342003128525918751425542843943870954535146616068188514565342759382847273823982421947296205891121604946765148938558202478680864892007191202588377656235004640147466380698274186117815493382717352764333225695428187753755730378893475135767269648756174094694798917520095188095608527513881774715405597159862629929070333549522318475210146149024282078855707371220779764268560601027889141856628121133295980905043986747224939746923561451027451284522559629561910088242344970636722725838918395868687919313294992186792915481804741638403560198548325070486469615106838081439129626515563266206378131547906865389667182482945199445986286207695641199518425044598153502990644460653105135049403277214045609150734406162645797888199021738307339745852708168881360685952215160610291476116845146556606866156552597906460255127543179870731018933540731814283784699100124904713611326972018540023693974667651475933174490724119483473610694349641306420502841243199157078516668707756003948908252851261672267264486235259547330997015757323792541932022157292659339146662576756838915149147764135335376456184472764797943166144323049151043098078752189115207720781002651137318459836232786192981938426636729275579957979527000334620807572143545062495006162269757678866569503881131304032915439490007752995530744726872370170181005323339378994862442507922095746887806281077232825516084439535408946495052394555922330512861591562655838291558190073495872676638568093315590096079880376991987264070581690485365456127620820410277846464426651097329373515870600213383865460954963145846509082200120660262163329033856050504059735574099348752885417888895727324483019072225349114846996459425131249513764268040731560587648222463419446010112086608096774292552798448529713700970207168631959564731640423108389751573497963190056754787892625205333020082981399135486703819821519304292504557585939380690235915665028902234848627297015419021045902403413588420786821404288236739136112058720203500918186247372384644273058688088330597544644709711171336229991360072030630995059611875316841479344605838203224467433650607280359712849396889244985035807584157779793461736017719035500753209879992393294734085599689767291298849113568720943456837787097175680517189420230769282291830646036115809637112827301241925833455223881736747500461830676185195679427955088783348670272597851670609478143051252125115649155821357837676568480676285693552697239860626406189757666006484093694048774065897649463896067409428464145048523449776695316247565466425410569573240852241950967823680641893263483673707781208414782845696497061995345632069077725223037729987427931285746564553070774162692250368424703503730790588001020241244643675438683595894073947759502214116838264927854653108083834754065354133040489466075140286027191377650293822583024890519882715697927633523570481016587107256918813317563011749611269626275725084680505204291128395287411960344888995365778660181859892705803280563405038140177009616289859194720917441092028741700351327145722131211088471589531771031179309506527821110919911108555023174104447302089855166130093083472418958408259621730275369143670728581707868271934172949596177235631094843983332800069834240906373399860403881982429848247060455478400111660990207099710339875216848359829605485721291229840482987315499639620104191962131486595505285338568467048094385766975994705483684956839496540428428262487051158345220384893896455684446265311487005705170103697518903166203423781385007985412424735737017230026249509347716593635584588491685217454829930831808961263235934589625344297105498675499414183804952140788882850340954400019380336820600134451335020294280242490082130715183858676889702518266150979143966836676342973013374057753979793343396243808230709091627454572977810836358502882461037196475472210038292735111496710873377046198079158589437987149534856913048650646586830786230715398601589218030672304582173027951142631528449833733240394945186812368397196946715503555582981305251236113565966998714674248884396244548658980018466232226806400799894321561795369574190213236298691566972973045582938528934030227061063838245423562886459225785484532360677274497827868431897963935586723772817978858875359442188275950193215217240777065374295706676076768576682739415440690917294151199431543278980794375744547545395005581599050378360756474555133002363460833762848290580188361579405960266283717066543744603818840043136516776148508097082020741791410310884784549043175429789547052157915695494257171518277574981246568574131061661687774391188965156583691976845366674691071816993750214210594220593703752723754996582787143070518538359461449105552585767359119981289087700098843754251929621517269771846085617052811750541034850784932824167384580688216500043639950728502467406456132192583345781377499815122739498633444506962389679346459672833929413140263909660334919932063122345339790491798050381411654212353625883326462246922480182800372218967507194615538621432394750824759049424269317040033747571127279879760090122854599078906353755006891157885565607275606011659955364817284020186668847023180479496104658165687493710707979934906556340582304283409378332993894003679988349845065818390145844563373043661346194636768071514696804447392216239143935523976595575394102636046648610700454009323708952126963275297579416954684415676760931445329979789124901896910586993731834898784777593223678333880444833621047853825963280177203703804855300387232545296942133476272552115352111027898555578689756150122855811314757862678086712359362735686720778413901623426773387447145525423543453531343413208572892314286633544313128185420571682633071873046783369127975403892678320487723308035708815165450925522973264258377504850221698833489314972053625695778453586038242524501527625347111170713384040911722175617771795125131439937479304142609315881865670177998718314067447756021154389712146814633983697480360690086319501899162651762712972724327981800979040183721048716744863265642904101598411472731247954192953452504284606181007577882843557143739338892180348020957168414120765510912252920698002528402572402506334863457548065812058302950497654972198595538871008361213606733619714038760917440535878100529102907391571900091105402859603093283491884516516338571049054257756195900021117840246249344481767950354829649367556696338022019229504864225863737209929088126986790017953761224337332751759775149049289284344556880116597671612611338377280569563102807067913302901870028915231194116524848362165729011882458231006534246405194809196999596071172765191707091198761710737492035260136424694730372331131275180391866024554254750015614902136234232130377865994987023168804489069342241204697725382127270543140763259581487200651107547079999855090940658751137041476891267823808531854433392592373152233774153960177073351877660031449976231089461684399426395538694589575971012299432897803016102878158791775907904483325022899797448309206790858218570384330926349272543716120996509529559046753984626678534998259770172572682976226688005263297057246015083537590847824184325494958646339176838975107449367012818849283011695223630213737317706862388285381111656355534514848066127291254560578421371359136570328615902827695840522994187523628584227656712558322386574364573727423712129134476013594613306911727548666044879743237489166918720090140675725735547503546857998529109152902302336444809760323197655738927284874547612035463138740858927703433813554164585813287003041411315830843594320856948775324481293163195663335851668614624512093729290752667621107888668622771130429539252682885562002924953009377050205279364836219629094880767265633921893946815439234264949600347460930841415493785855294741771129140841190197748319600290450832155204369840197571489069394771203992930532608869359516014356143164271408924107175131356405759867951038004541639936167883934985858908697764628118108098536920617750340934747706629009858388301947474282106405165799312073501672719080553452483511058934874693412911273757397840174119493429787621655846026079344859939928376661351578337605620563542777267945612061650526539827132494073475496394810781367817065174080431402348111756601285926699120463769848024134431198372782752434174564050810067805294045559488215690109498878884522538471160811006641660544013061187155698616311503862633658327736777714659160726972282746475006163086917473322560154203616413481883494014575313858085021896030894976777785980099349074911048318372413534315972776603893897238529581784780009085405754316832902244242148017650779920170235115422053025645481365216872291605655739405020700045407194246677865112633349074653944473718050137500016786185352143080865769205045855911048084179783442148287731294680330805958457339323038760114916723814641264697528342068073361215330574856512090436740176903345378320531099490973240625735973955396089414838096472745126341655311460414646080315170743863416420260989685879645072296223278743355430465246902557709744096874262978618493858601938677033849481098624557970964164485442350236491710484410252478247447412059367977261840561420749503339354831790504243511148396624154628580377295584120145910293037881817540728518843312443154290797193153335450855334626352158475705672934476746704362836576600507453886886746094976269849560780667915633852095065924486769651941992993131303398370744148341058981385221887855776440229886506053970725338493768037738929141128155714876805538261522949391879783877143012024640372187827715420327832020104907208159289195177327515836293542871689953076784070509865819192780647765492922360465650222621318832765545823146502889365895480332652067654673185378574683151852268175370854295889619139465531329705193953017252274201684563695052294974190417112698763728798114750551225619673716140005734181280966310771777764376199952720686522477007765893185529457729545727027594603241748594492020224675335197998732111889815319347369266367570981844077449456574285623522237978837362874508505174732858766691574878677580948608895401602613323241956003457069663100214510769281797447568389470378057689187623877862683946105661892275049709250114447735690428437412043744921019069514431200139759295388750758341960532914625313888614169738686993327517395490086272850513809391764361576401452401687630423628412414450807252493355419062573125200656761987855493736930407526847282306298183857132242364322724421378381816557625148319649842772888672361909420135495564803948264298983385028774901226250389283552335591699233025624371469006283006508274410368002326029995568442035188853219822657868242440817579554265200140626063727161778683758603092563488840047717521088830193610692512751026724435054246167561487167732925384395568675437391671254108824928397079049094148925720454018766958199974509163575550413514383617582633848429715033510620521208160893103943221666275233821785235104308946570798631471330526831925172118244268880235316676765688993201790078612397444540120669856388740672971106077299661296952776703402205470955769922946485974406637170482959285432201493013849687449360622510212164035596995826368634474400283408477506505152145236129079968364949271885691593996184054937934081235510631285407795624818972602620054048732541983406847327792076268107078814209547232384459809825582936752029424269336881690422897237569367591039375339800725535867539013794174769008237343557212063466476505251184714919346484511540090422442631593158814594488459802946802867948302637200618070378690731506695695790931236323148455039949569964679861934866498988130191096382583412602929535582068966321237418620845942680433005657908899449568003306901165105039254626366213252129860902222997886714282007455266543363808752510736064745044373172107592708014869093350502606676662209879811263968688927315139937009776937411028698060908243675606653684628263669939410437174021557925196098878716172248230523476759670333830225857740110272162767644080462615363316367618102320819465862808997512826239135394646462916267217606529179916412854463387529113402008495764428603527291336244817949968331026198508086734966368916456693796541152089512879123519460404303895271363570064805285638578817688047071401111729427667012403888683499142053348520566687882226706949142225704261018768030355607096496443602668807582070422022315805381481749317642577310089657495712022679040087179342571462183360525450078451681439291845505707321308662500175771108088460505317864448997116815305368419058572775210681267082337441853076157443050580200500342422729980972480378208848821932185274680494480654278115647150192340914954508940128431672114133282321395429224712390705321287035051324066062222191950837658926653394642393785584174988132558574933776808125080294514310737156259539246416233211391067743641681356057443125158611760702602155838486933389665941169597073279119930050492880843843047860106110361605128174459037426140692455126387361163111866179847316705708407558232451183064686706035189774183337521528155248029396146935466376758607737556138781296632889778050804331830296627639171283379268983596535644585913919203948136128607498998368083464104456151047691962748378140718853462545443819962358941715553324140863586876729377660521742207234396504378361809404455767967722170697962682289387356445569394634439740093231866818504158010487087710440706182814911627533097295070074165907778056139516084297719985117983453143067108792644431159669076204938417912557559434758857538053689754309642687599134460815397435979603639845931428395738851819243444150844353153328081524766412985949019004961587819241184310158382648058925611336298217556579186515880268830019112412199528541472500768609096868086659402945869549448802072752898786744778776318386217806174836292462997239740844059083671890652521157678691592113047738049522335460392023956904314384045807947113491210308258182022442543201794900766435918147125173325727892443021813099581929708594844336837086274316077776021107172132215314582789655389664284120587393105534072631622490923031494211198143416405803067376478077886410796760976886630570319200990558308380607088739946117800947413337195866326459784836307122431553435555529354494363990915747564997543589927605365417352368432282032522464579899995139676338767543668142114386405413184981785442457763371937779953800895212055266824942966911631907213388143731268370413025315511894297892974575905602344395447587708756805228699417122102670538469944977850651032761661703509104442477839372891762575533139839694830928810356397403052385537649822239061647136184184161035849400282188521650346294259101525919515011156791174393657913821799572788616220790169625824080736297178663433996950546196162872918486853347522310336815388473403312379305944801469338657848075966966950362782067819839035603248616758408263308048204850058080477233645463038577354216855263253252358840151266789180463370030682756588828739371704581083167152360015617939754963899540877431100998606947548037132057650760813872305642531215624715509353161648252685996431782866314929541439188597233283772128143027318572888721037188516844669947248885222584581586870261949773982755822543046517667056469725100716908986135032411211635815112048656081716174809834507151265361611031018245678894101680678923677508149273260622295776314828205934779459387803413065252127235722210216516114569309652292107647843454337102035963378512910266897178628685831210704257877995338874652006280326514743834219760011464752168790096804721991807540489962245074969825694957832073376715470561098259802047711850957302232603495078037618888705498908158792929316720525270187446850842628886148033866206570901454859250367632891541665613528591226229203568887675796263397758817281903235699300242671236314019000354321001322147947830228392569620816673193364257546633879585686062091749410994627314189973519621451838448855717672339423045428792705244040757970800599596267506592517637724005251967674547313686362301340884358072439528188713010335001103175353798601709627022356916619449046226035673991053252507212844724293108799926811227922749099883974415247896603972422751948418025081541637699162130131740938646889904494636078141793098028418526446498826973555977688132646871055726569568307896264315357253479450795871824039298671599922826694961659648116122617689552958272372465879727684005952646735810917128830620583417323007029796540311252924355127175300272447582286328111480778272477020736341535011604052635936247906730904282636018434193655033589905006588026897480039007952424570309431661527468450491526403186755900526792919103512641291304130077494724619266522458018474765860368859271160066965588127107593410231307203463885782658100290917804929147999819522032795576426549742034766499075529028013747154119233874173898178488513131359983259319975252051241093691927842063063798897314070614546203316985420697836880713252576896232475325238689959080622623863306632532541177154173105668718140922426956440814405409926121633082004726682055113559266975962271311398364069743763834081907758325685423908997454421339245717599807627608630128612702686422784094843663615317496879925636354935498442444669230416376122674576037121963315282503761117015941817234378114792117221749009971047799157005617858762113188599793238462821420640053038161709290449076512206555337346934019525777791883371422171750959567544613231968121303100702858817158129203041660559192073134808088296203403072777417465555440201177622747191517096472175211386098292311368717997762533735434581223260982965327752801421795763026831236385593421554749293296913558375483297627391448613142595937145326216849695071729156169407129567608483565194260296478207340681442908739944338577822910040001498130841172419544421745139015927001988350725071444642372083903946069398571359318266875748418457586570408716186892566262572342862511092181248721444490179385768661143495341658219520188493062216098665529853617589155822844411592383348682829569292224273752735996671485142156789021518232596935911766280022890999014387766524137603432364589465439346955152581781668084828474182548062834563178529771860765675118913852711477099156367931588490829330162066309442845270308894212634010809029720593048195049024837382217432615468802798846391383307662638075317622316876946943652920858919281614899613472221019203489031713690027306397227732780306411909754299638482610217012120440520336702930557287094802413327814230446360051396891151056084039167002860306979327027064955305305290634231530666081633080560745009827011073618897055688360173856085425174735994641305960763740664091925778951722219825344841594569299192834195940758893739144220974169391442230412516071353553287580416081819989991559884884925660618954190210542784471003149646959048049639747307925439262687114052639743557506548698847397464266006750256584277491616440369758654140831765585051484512791521020927856564691065313939332093410708956885331619085334836667318074134445773399397371989905710101020883327056568708463155383818356721747476879247753315068847345643842274402346946738957946688237595569194106749870635957005080356491963307124400193702533932361584134203219887631245303592260067114109150005969224766630881330528771361467757490961701239702869664930136079722401602918036069695990952556510391693265294577183123206629805199773982964284198732509196978795107090002738406485163313908467376426865996524706611285658073586503426401373689625085900120830939187537483617446285597894816462596735328264875778043696082843093099935605699600264287873683234672018234238360929337899048649787154722146577031959435300772316029178822189488642720708746388377168467452449197025135124879184206626661671828575459941604304433748697482122783098596042601328569488664156996629673123948883093511778866092020334441583029678274642869567107922556893518291436047221315885546772132525212058689630238222667131038162868183315599304200404767807676515075759775669529824187515708447216913828118431625957530719602205116552420737322829231551436471790573845169604456910993877554597713689902077175522207368922047496171410395047546907653369822467444677946635594853216020067886235757486374455443579720997002689311907286608318500689756451110188752845310688508938976980371288832448054940691854241100455266108721989146848543698302215200809232181708567822707996345660276606304770728628904160571033157301784791768228935411863263479606002527356414115703809940946510961016109637965121007678951465838602516406559969506225287593249191104047373513572628244066995348405857278219002491607244433810046024454257032134850873756281442950266950716238241629906945085970644119807798601530088565160497596692363442891920342692534290788609326628012973921859459091767404045523908635511689420257902321202935783221489025140534817703392540471361511342145206120473651281149331661881716410104260834619456088054303405176710039894087240430403066590487039651032703183667236368978601111406992200038991829166267451016478521317400346705784766984379542249455801237918347903874732183182054452924097536450643697732353585251877985303492376635569299744036762864737290684513766311102206899129210860882255569833234317589578879850299660466929784876259995655437372157664940030819227984159738225162711229745802251775772507658711270133723787506988044865750165853400849991227779648691737274782420443282130399645237622654123682423887247635669273711228610854615215685319098538457502098918292902025389051384701574312907286265503725141300516133843973042635028178450410432845356516477676308288047360014444142520472340145044823220473250874552510953807534737230922288827695759846289602012118561433696999107218430109237168182294758985420656350436843841026739005119765657669965680382880400903971771379783402340970860632681053860871771691223403128144575748554818527242463563757554751464823255402430824237183927869369673602540760189667227481859463523795379970368106504927872187203337585980851445411845627073361891808504167997498314478848077591524942853790579970755504793613688117742841451330547458595914179969146331239914735926907473259147575583993858982987859375107423924011731876350823333198735427949595921189506141866799063787210155229666133627788103793183857612596218578358627215696666984882150858830201670761656251822312128479749770974702634172331899098082589809207008470486744142593560606564953816540504289244102951486753950481924381137846223769840762616826426153760971478028749934054517045066134452275330250362444610504972716593921667766512818687827263505001176282161501153300586254102515696032293930512555237349308934331888229772917797533916600861399480709140163426736865568898320765791015675791255467420183365958712718360254935480955262159652528092774717551083889301986934880653588080946693359336450473548610390006310495508403017091937281072442720963883580055458095750394090170703583489157442949015262578401825536706642847007181561738384490236785673327652312595628590421020941332996014514577779019517753850745250805682563683253177392538168350268004994575898442720212715996706403725787969044185341184704588142865084838697475253434246511981517241108021405306080419617943162097678723556948421912959606548144184778637897716543282265862688402897597377033429813375652435652964297197396470946198508182650748799578085770588828229817839116254607512397910283619566349258005087964512167745834499050951493573918916737746173263642283672561836853145561847069305196585068422037893573442218026959756620056021440024178893130186599353504651813502381578229248532324176575823074394191818215842459293652341908328927871536608147579126659412743690105585623888902564320537098270901090187817461619042047096437273247499844561689815532777287208092352003263987894911058854887904111914200506348514408473176015634472012688922793829925143026123262213994730415152129039522899480504207011215944692182819798783505529666768056609387308616770756989608152915080218175867050668724478888087396660347380855269502602583054935392025433732290568492617698898719163744128164123615247570145938405835524503352650239202787645000535794403830728048516508856045513102337988349029055373382825451751485872673909309113771159768863719521386979099572122292143466909047232353891674607381059466961100133337926914739443008710201164126683175836819605018985838199126167464846241816645442202653393640876612763944503098645730439568191943255340851746515751566147838676046699206141815109721334036512143527894552965848563031048557853584858722604951740627859763913928263184439788748745675334055331770494116480158126957912512043506042537243378746837551023923536099538014402180424548106301020773886474739179242742210924464190740163366535832962031820083000225966896680190365453087492815691916569089815519405725535965805459055995186112917795497732239393577302399877554426035122192420856101652764466205364164568390272269842853109515064598655281899387519191773608357763800519612994184290447249320883685274086690216947307867999201718026212620342358994051535549974198357579023536221322887733099845687043980766664276121192609263363674532093419512085916904411957348455705940029332618976675552351258491817458717244307963895809161723005070052955827115540351405567357651737122264616201473023036243461627871546756431943048663330996838353797461959116460807955974684342422030154642033205853038635361364135130317852845162408668299392968149496235431952613669928621369191831049180741357553599876290392936192448529572839866610740799422550445025650410559966635803512886340525399265050961980587773760485702641907844920536390256058026734315070977667159052801847870258818125245764203758680792794795853166116188427031293026805750432965099032082806816189657517721440633592483988250252340785153553920717779820073234964576951134071866129551214651719073354791393747988669981574623466946854157363457214335042586097536944403725029107753870237458885342656272592527902248817351882012516885815975396739254049965968360341624761267651389702225471219509893633179527495285472964950605080049610272067832750317458339583924659211028269630455345967061870366020573397632786736534064084927957710879929464033240705502936098241252361891737520145061114024296540229415439933822119506525527964224236160879446104700861523365492047729637931474900004308055804520858527387437642535529278130002687280853728524901262268303190350426924983257448977398942216822945594662667288586079210085647530669705363968393783827362557182425842931452546918569218944053925176125819211858929126180287228279212770670564162978172801288292487703015408255143046781950726496672572792268339010004712518086260199886865722664303489642110624441524246873360618126466127194086006135326945760180711432893940789027870839712903642123922612393859800634092467820162845663455680761160047534028931319569902146016452202387475991341669803355764069727573077098467702142508371465927443534555551849452942685438788967591318822514079205625036016364104165525612234218674160588045994331119668259604528267288405487679893412924214638287178350039378807536804904177955511110238042350129625614444118199034349343891793279650848529655835207551877071622238039645985814798231369894367455928771467691481727244806610443258963395760985398399538820902188993197974309876672334928915661751822298251607288543605090914282723512165475893280410949858710732597663472674856955534466111217868669299938036124953957182765477343563744788278167076425910972929514755299328570453697001072263004645368504044168071796604278124486865656792346724242691471157356330445980229027008251683383171186359291478252983490645534263772224920249099002741994605250007385999752222691351094674798112325968408918063345191827455764017123172224146313429268618890930139584455723199003059092016418230481669345955172717697397479031935526780856421212249765379121927965989135812461464234019017900005480892846649546864079348836380147447533163920734081743700195157212877643043193501202032659856035782326873732683892580601180593820887493851965404710055788265729664156226266321368644043442638589365933246662191076435567573187465239683614075076328129483780644670598030926015283629128445668567412235478606786032023950507487183273800803074500652525522144617491706490225292342882681940023347550133532358162052440626412192707604563789874303275328236485691336722704459703869475362145781037590628091297054304256098451569510369472863282374217065891906859323723050537452978407518859421203460003703325622511318816524096826579426340584692573821395754210407581415687756570176572175497699200111084143336931198983270124437790002225935055774670925993909887322482517847362182878477746701107365745383278448102374546753848650117186443383606802587301314355784595608620315192784731190040050800888881330594203349291416544261283957043734549294923463989656150992515924694729091706511374430296734829315007748392959578005168601957921349815525725098790097569882727983610614264928267191121428419411965707388227094440824493117318933645846789821601610575261069605971115304244243579871065548802742491957578684779547290212012604256209295560665993325070361351127787271329113269443581804932870450209666144218475674472538973100514750551809145140741463598580885451142318196132001103086346305412885683094954187457718782613176877400123563187527591898876350898006981887456555434439244868995546200171161808042377004925798794554039079499364727031265840814441838422523353112068735825797265197952666030168635723599370034997957380765679352989397140779663885542990028746188273049643358679451839214025900275320742499678722392965114844421824961452901004568235396653494001785254566877840809429218077547831294700454423217021808129510520461259845742069593663734838332061423343990562010249655478661265823912012413646362582822620695297958226893396403099109250132219574861509694632380970817239686181169714294914526657901435817483221891987024206698678964416725800319736239472517204803885425456015049322510404021985722439461114839008989722207710321375518298430683697313194382114328896879367007912141095848304776374667601906082104418673512699525891462398554014194287432301359011535965161194553040254507989092488747313997646183250318040845340048730607888967002551386629944162059601010583012729411851677180054038066829932118507630617819812663940653459721223123002191182235551478567568930329995409447162349012044459868264816915736760726608095400557112833726599493822919532571113320438385572684078021014792494203776784021068721096419290234241900218613125388509222716407890428259725510836368124731841535306522515681103502985800069428629513847210392869332885678961656527227213178865382588840745999182603955501982966965494881307295008667155639542328128085433052601510136180902844607837481338547545533322483751612184239346003403332388507213022658535696523328394688123448145235695352331499534450601160617060838997368004932606979022000823925335791832855776628067092260589033516354450283467878589745712663241019877912796985398592535739126530380894111522442488985906269975375851815480903197151388472115727112149954797651046524367971483173637693085873004517093245740411025137547215891199958846224061451689939140915648689388661363679132357746495360281677305902241342536842417468284224462140329773440738683137967677604799061920260871439225093544795713728614372808666300953154995869254546420065990457424283622747676549149765213838427656887588551848251176751799305391419713452996290933107771153555183887213685066517623900718441592434756529776324046504133352608317886670904012301057720578561672513205828819075928133616695725554196836159118597474480135813685089700480121259754956578430309805657371093183300433393172073307044768768486404783502897598236824116617519758073637033349558431720782633863782516860800183947379934470590771454463002670668141096975516920545203785097652945860163490027949636683085509529097142721210250356088741617541873591226893666333477291172940536145294223856511065087859383939983329914180769097454436945037105321714704206171495256050433775320695083192734034531890945182703948653250595079174228130430229791228999886313583176614576875865729521934381008250272395082954767530981196505069137979806035859192388530122426333426285164747704399243938101901469124500685810887667042065263071166710441350392465683226551428434349139846776477376691662382064668532622413688925484907964822103109957451823118169351462953766371717603846812200570472838818225635818706999025594047577059567313094282589888154413189339317702804325657176416969154378949513546967795387870653035778690314594210648945794427128906001456787272258093739269364528893249327512978824610161866424575740123303989544836447870861987851828926608701779164431053315304786614469916835692064731003998381628445378770745603736260553502216577550283681133685637235966922823777823219957134110196694699044388009306731767062080414455044956688478424316626110590134902973762739642801548502321634999069143414183115452607560714510571387037389832383719000299765928249055328756680127076937775822076492442244548451477996917656279119791397555558356940208108530395641965998751734030162616050141945983107835939064410306324114200567589183782958317437508438081331536445564227028572073067718839335531161444109121793138707722682051593494408540535569387904482395440550245887111527371052896863561114197315746904063808156324944996460971116006028116684458238966568737221621362845767515668359473077198688108569409057428615890070454833003390589838142173450199842834350756731059980532786295482437027268123916099274494033595807858660278295679002754452344960222669043638531934717667922095714760837643183022418308646047888070236016920199750414165280869020511467803834057580038494499075058787254109324153177706297028667672677284102981298488360471602381766933013359234951264780579767364958902722964585334404901053408362243657201343947856310762562266840964204975945574461927196115867947315511393807016052891975667075187335225797657642755239345030264274655159977803733597589672797524427632846885529245247402540239589503351592246216695972929731787860776740150349918011508821836899291138978550758328634537107533868859838533419500325658982221325011860545032866982830356214407124109379470028060493516919012766425021047191758421085183616832309057469545102545533517386578979413821547792072996644231099025271918686075569954465613439182788019935870187813363141047591241617186861851632173131108431171005641101550789894180688648447195417509375722174209264020490347287481841867858784176184307166705465528557887306770909851424003733450351174387806510943412042358007476726306522876165283162895212244986151128354962111408537939124097031882725920876502206990772231981844665013072620138212336749238598048880856480672422777267960654081583314321279316937912711677055609584316896186977271216538171563440124702120124689330810295208142635961373339693428805101136433186785298828801271183658284033591930665216773500860027202983950702201845219124308417461492489195589453345034778329032587350323315284697563628193138045040308361038400610722674028439040550225276638335601823302593679680037802100768492506383231442135217773340751936827358569004223725123914461943353521304822030449299261487905678652746744639677804470010666493607902613718350499015547030356370133268011084674690832228699430453480004981475088764698924232828808989650421413152257049497740185720811843990309066130749140078034425853933149377414391411755817020618360254538247762714149485451560962011866298061998030642593134257337316153856209684786897328250658103166536235137255050978828211885173869180360031983129804083087969103856533253589647766334002307285848147986782775307905455879983729053011553800867997655898094812193384692314142870904291891831887956343531592587605306847347882852363182975909570673653901799602157736757933552868550919543755553445485250696333805310588049900373919810136492954931187958035314556160293180358903715923571185482270462977303862181270027054966869475685232743160512881847874882124480329266793431743882082507133764972089321159290448974439044310991806253797154819058206349102078647932197462893456785897047581262320661672158031110336411785488786252822306063821776953670551321902534024901844278080617021765818277393990291641987343943058936357245066255408173630946331785054224166994538879374357622276666557142268558798535407051550168891069207747037560988056595766770905547304292618020216044875606716133435776261433829679994464089869889932090799823262526219071229022421472990844409092539853320792719966535288621538630860915389277357964328817378300351294960834707094159250870646278883886626891485479466087666344609722703792560060528089221951551699232765427460059088937605049263885445223474874057342073371945255604488445532756000567658136244693183151244697826547105478039562100703937210676531172171337300745154940766105887997366259492853034650799024399013328083206272209138550305043656016239451286495698382871566223828560148381350936217589452920876516032567289061913861579985809853164038444488220495678125745831715968735138867333346062393219906659053348288031584336126524073265461056155855206353100130327001851413540440294817394129900418654326875743553723444596814827859277855778480716529959461840061444586455322748727556116138066287915713675127404222996678816834021844862402877747223196668747347048427747167286002969377084689060868150628359241587357631554321809398054295579189753332446412379801983570456314540718032239982052916124109545908977999817131896878525562723548094555297983121264711710262078871231430806546255321606888691237733167581421140430138855560359382327258476866428089074313344879175572987355720545689598609039508694453504079370939667589389849773291142131014737920281112934042045856882526163228647936396315371578969152782937575615004698472153110979523311228898107201517134535529505793720430030246459499464798882999046443730406204245360516013453558843483898268106627960222145563179728501370918757357667608671810399876425933602199133132141965044554647747696353677378930424850640840361790526200772167319911200662393641288009011494715495679132482399621526195459017841226922366923923662411124419592090702492604109820954789794881703493605800423224675959671997339740984826993850036450808960605904630698397681934610250384033110075988764579358501437672832404887524830935004821663988424118780233357281878243537051013186059868466257198611016879906476727635336572509570670008823984875280269026276331331638604495012502750444235249755716255124313321613984854903159896686835652618751794709863123271371495190879103647012719400314359775696268978749730143383218074606946929670046485975604010654150518359449854239921400728770917002010071745134189854057420068061839211884704523147674614312640941453143257764918852903416614044760100555316797494070466956623290769241928240743171298506897876389371374294332830878378272237545277608637319507202930692061065609826926940020998474668952111082388743594934922776896790522637606166971321808576098753506103194692648066590039678145515675298779532293174295257159528343362483735533440845827696119848796411756095445490230886969719361992568767743560409397423850190631776240797932884873440771428554403691659389447213210397859884292094510012148999109889216439582534959341605095815702972615043244266466241110926217598701327912513923590910533489382715119321664146481994950670280792988349143725402078065192472034807963053297198595031213244846881487352015338726311725786287158910918604024551034846802321197734110190600455379296518451056713553032217261895784618833286274249148734112362042412386968030072661115235165140983166586292244150555883398007312634192489916228167071842502576778109605360230954807738297071996194252838682013131415813837587001431025482446350045131349133993260897010270706374572751298342700780574723885988980980104981893785262064000347875776690839802187173295844584818824667009791169546787256530445872166056609472963118503427836131616989743336762586982363612636552692533755690972500797716083539128417785174773570970768136086943621155787137956923029521629708027372326391280826936592964700029952358242492185511671420950937564487036317734292741540163526939481443179418964944500089447060377479434142392894447002793048741001334241692629006746404709105805155622330400803487020076648042727613205841774591259123899166368752224562342187744609091099881906415979916969373975487271631353375647140018924598154936794527081144221444017680308183182078755296956022837778270102209328796217925259868072075217597332643867775354701644666833622983125076010497003086644287513986928682231645101491845894338280377756056447055619219549762742572344878440497777170050040030433375725179283654977211481234011375060066208957556800035632558445626930122853296626854370854232994133416258327334965442553999036512945975407451976571443043807320496387515821279992146772529956805917039487142931959262780179715635185226080620501466271062711119456380805640704362433751227964399544001178260947843667365759136901713931048504925683082863117547438867797207393535796423068380225859891922556566694133628175037515827936345446214364001255569050009930995104311538159476694133146275923983048172096701318149475663901108573831703292829751387206301553418443293504957443241658856972233129965915327948406578253236169556334610602641360212031115140553755532396519739260816891725180512193616719900738146212753641816356633228893055705655844743504082262089088702883477215979122716477337462001738439311633633739942654235959439986744759209570668242591581015211911355814284761671075649119784030685907467760654186635111794586407549755841569647253625588779841056251160489687023272122985072092125347293426211243707438457617685846970624302880812571170115748463678877066429825924486548296174626288014749008106257194203869720169724161319877609704570244138775340484432732856998778365942411666645299450536407883323854280869290105250488617812064199152895801325708610196745688119817463460755864978717628593433509181970675349173271624273003150403199314314973595074487313449696979049608767953116751394500642856105907352048943890245206457640609974432171553549386134680455180338201077885710559167693802606994872256343659787722033290323969984704381094237108450197155397935757856227875549029191886654774483522823055768926423873687268260358395967152649907389414511232730698636280558335785255350222957644952994299885037654994350872115521986493055470454023827627359458734840852871855052319449884883017931744455936464253500601348208140216272476552082138986392000647164531945828936224233491514522029973370376882019690369043519186206569795405983332626166600721062030644706650063373187557216164645352553926767473054905598856893882706332043721028118833505956546832026210878013231774122804820778695546881163805198627763320707901557067674292495343425315813843098262225150451766116441407871149614362450488886667922150436762631940568864943257312032573911294370241182091555421375927494950432439697848579513014742410774343720443362331214667995233195455481011942043339490484927822663628618247321817050805881510477972858684614085194818758345350363731238248107268719824510269705911575050619825920814083512221566763911013168815223902671765335568957227237276568372286975270201767846548652803521228352071270937324577714571734829103289628516676723447995185028033247958235477657260442548727166859958900944178842833303348856576354811986102128507680588069719215615946725219680033430573096209345009907050398967095082418686780645709858033886553973216788660708191330182157026900818178146739796666353723754141094628252904486162878905713963959147090453937750509379189885577255226269112339818291808027253402366331914365068598453447731102558085759352032436067667763290122135479878559160371755414618935245469525979905889875126788590337595906207913959631511175399155246523497129073324164037460189993053266274388587368514062676736459933042242233935985017089137762940038913400519689423828587621220306352261780314877428959572813979491288926438604685336151378564179302596206689028543924524717595617661776380955877691366807022191189477617404454418463957865463572797116002602721235231717765221571486412697923894358322382269565065928438355645611926018400324338251144410820354622278999332129246317267056307398585682791359211746333187220294465979973023218004881649771020877359268113313833336855954348916485655670805949973931660193073288472973980520521849521701159785775453839872139931655351752631763811297133526347286989454196652233767681096582454618540996555360004649694088408886350282442615493663973095488873815075120248512594022877645451544790395924240883924546229884197477459669160445632658939750661594037108853211092164692330322434142905117953227034404879920576517965062041795667193378275149665374201204983209327555842893139505761513334118900185750151092991967653563318378394563684080247922811785448059731503007564359406370101113912707448923183001529733632675854081184929169185986996075791866951407203437731418067976556476743186688608721275258593030036744078018454098367299795617275228681046853957419304222871002281904182892829291184663259571295934345762186185826233579884675814335925430702588128114972883159802937957857532338627962354537427023807810154087736890240907119072136552226440226390040597647864957060965128000598334204997415917316420392441874527847114494412976335653231753167493380777933211843945253300478436137349295144010644405229222996859798828783159589252405747139999115880944283719300127837897371760695837501978920101396631877388640303006877172839477521199653970650034370845476355390649123626100954179903388508706253067052254437477699999308573038122959553634239538078858184071664497156337781610737121375506931680104486063208017554651873471990234228324339763569122090130717410927660326194302783391710659457207970484555976719647172375016673881945168315165114601941686928273619191463209308680358784982949244332169721108041577353563540728741019809140537224621597517613189797309214225183759189484801727625412305964662851941909887550672875156751059680738151596674371374505530569955033117638584660562528967640403890441273426634802246427255673665355821353113894940789168279912846788998513529643853595498071104856107429958420655819094618268684990840454651384012458517812541307744662392978046333746363959585937970274619749744332455688219570356475741954770738275082813386814880030519660870827013479727907225670506079416687099130110730542980464551863933777178779050425598545696811494443591116767093363325624645276149265566540547267088171830933987418650232644222074355588386662219265700657461642663833431326021584604002082940188324138728549537694554082855993662020386138804482559774158354388878180734988120354335950856757005979149736056882899816419611761782553114500072185563961616863535277155758828979902038206137673953018779898124702636223369485824330945530273941173036543720963461729849836510921224577264473953188480638091940715782712374060381962163775178838087606388353861662803002580539114365496544121958361253624132018972440173698282755559352825671892443880725368436550126870313302304295475398737354467022685117815652450315202732869519515216965897143791711428995874092517260527007111485978071122812644272767641931634104925793407759568748508271787207298831568918106522691061361773911853627538847347861275636870266083062943418433769480523457190597660718553000945115649404300938177701806445035862570893161399298651448365195462617187423872893229920255534219016108629581295829281341830459907160718713088360148181102984840749901579095371848284619393160266838891814557423962041949912463719543424388086029911451971014670516569400674128141870641521085764790745827111058477980639192422888833019435054146202106464300355485668258460721160814141994493634739625069062217294117306650204806234333225591864414807578959175927379116072041703260027820118257807080266959069738120822944422289495829135389408619332407267643290189419277043444731436974466595389875267215943122455896717509999711242286425704944974184916409765736232726458036241469764361457621621858214141610835448964780938522554115967273829358712650043178161591022514591097275546931762896367331683640513847130688548912297238843918368402895281058326327220991459195716150373135672327617207820413395539574953823941298592568290442800650111995851283658266622511440794961634979895338350544611065459379959045923268030452026895747915287949894740304876059822802688844564250226461393092651478458159297152679696236269917361841011304114147801312209819961520426801137480599151348469195911156478807351263634455527047699319246413025578648271546745573566389594202997117423771858848143536488769702399068777556297955860023059608461925774643226300792150127951053762457873131252054983271269911350047484950706276310030475964924406928294578353028817667892759943986386455680203772850043948030766987983603908510304270786894170859811381824769080541440327445584031296892918436191458019672358568324574631095121700753419476953121580651160264729438851584893844465671251855079243836386529200455488969620486938102480139306795143189196329123722565587539131491214327743704962943621535788424681587748663926073486920878944760440310380861953096895052153686298149130356003172348973495041971598990889351946283943640745132621597646742938451282662061697141642022505555850685406255658207201277780074570004602761046948229436700680331792984657753448205639622030265351650280976184254286078593836912924109810996770664167987957722126105944090390057604980227180720153937730543388782174793588751193061509510826190924400240367954614840511223133951576263481978788052203876662537156090135983604735560524136024288009968340593730711910681439064410460035940491496184607935836033613745575513162903710355904835195707447661882238498920021361490718117337260190038677531319645082062843321527703583723413747898783827881558246090427212237532770333865589163501912166723794118576644707312773173475098741920600066372591129656843289388784951487035235211897880142619655578352307757389810872552517361823293226393323907914135903742116156006868674098585648309035082210244171231332106218836290751258238887170642927667046750747610346984324686082827067331757948027784919838994464317366454797582872135548950455870823102902997884361001684124830310856661411401018400927427071016426693681200965881494241303986943934050061119314167855982400256097025305285490776791179253321611674939346710822385839534829419686158663973499035485781723119701742939422430804772688827978606812817086298131139917508927721610040686119762044835543430527821181854575439280514143236551314940464114244748111775360039578548121225640589967442010211784697007737299841602397835111569013741749307055437968167245912142908404854533594709015773033210785425529392934140259392451935091349158383221355816220068311850798450496231678688576234675001185899682201197242339624050804672142371334106696521226506747967410285347612086542804386652848540089353724217396720869857366465002938574109797893149078332039641648688731326914282209293282378858615975601387215878093511895424233841450846722462273577065024495777160033239690481471967952464608958549202684407609360706646347241819803645739625219311144328319629622703123581920121610999999805010359838662547314744327079442876259394161750253494318174695814183699564342991862968928072227936238230810935263344268966548924402426484793462630404097815965094218663295569993050980299172664211198910211991667152358850773012661709707012041913398292892292239015233764084896509736754748577166948147086943566892935558229702470627831124521935904697377644667949620579333634579579050186750658951423038458713880541347119310114883221110617158689358348645247292375357804464394783515790121504973107643174486682327904496719797919882654393839801522118291617225941935095337907102636743585346976903144591045114399398587898121732642280289250236464002710505398408817541730190982757738299622858175035687104999592564260219829637662860165782317786017907688460455474354302976999074822002105262821570476810425052929281478460746963770737445599118555755406571127466767009642508973992428376636539219924289085014738708694000325662412480224221898186947098117605541350485496985399481880441849007885410951101158020859786543388927963760950238379615404799395359196405096901875319645036608579852097468910932434044384885411065264052715867014143334332787455123120954566603737943643567152292456666880159677184019601586634146338035765324206284679645017350652963936429590134769061470320733932539467628165079473282556650585467168375478877833062164437768627259498142014477977224568593623335974670707218256871124336229029644342713197517088550077950817751053645199676958748722196324570791186145019871030743513070264401113798050397668144327995576796986685556778221116423484193081286152602241639302365749670927323026635710847535789387106501418415616368497254748740125962936508511150140209845794999972415108413203309043916270918561299125169543235729393633294262741859134805649872529790343390544576232144376715825747718235247701027729684983951848523815967371353956744060917754604814524564061835356643199063306964085175930531661870596925857268137503298659391231047533185020685669306870551696134841986736409344138479121289639267620730043117905636687415441888761641168189122965920180649210305354410491446597853347442395508826148074851359066781479874111810268401765922226358459903425855475110493286015061355665541253223277795400317274688821236378707137531760848870713443902689670293346897593241840133045648646329653177744357142352479540925447121063863762333745530470826738070342296761107683865766378719966183344384662510184422821358148718346446216522094751078501473885105920103577883152421100805524422764676828012129733050825208627338757815939923309184716091253368588863819916822165256639082892740457957268668740610295153128080418100258674262680717013009485992052850499315180486840442607009664730405323126941509311093852064035320105786504481514831904293555525072648362649837227734851382804908106696287194737420620503680396544484945673959945758076148316729409691881062019004572406870475238353259520411986979410788852932266199894626406830372336262268385805185073707356557737137306274770785979812685068872401404816387714794211336245372623214023122502774633336271211248295886482273486927807791080359280627862754505794458794014900203272919074500047222006355954404005312569211962303408832651367562658818949803372319036355403371933683384138504779438604032939281680733454508038576830858509642817988271234098237596692395817554114009674291228076664563215066458126276219578508361360044674395623867064432175073988288615084902248157448121612826751423483979132597571566861281444722934535543488710224423281351572712236526543368182890347984727183787086351894851214625408155847774589994479703077346193475483948795355265245388647557767079261775078532154363636453474763246245940892394318815074622501048360550285515884862299113998180070731554648985121065976351362848792585393607560754800603903047207171120191910231645079203071315940173592235952837925688830962547882714118879823698939905717678948711219398399604250275065399618946021318848026524042105482743121709809967884813769664152191605814378596485321652230849240740465600978224794588524156386182112405356835524963663804632598789512383045715007165012535429614674038125305853346531192032680329377813130033283461054971346829494976964890456364905417212677613508019411144391938151533090839725979525927969669950195492336192888162049356884888045675269288799953482728987141565652089467541833125552435082977049378848943729421351705158025567347262582116617089971041720623209296466013463008029273538376579411685979289973775538754856202197402411145482338886983013489297869053455929945858568916121422800839301391490661840729310706965266029125751896244711640288628740307352362625926671370077458491754842461372614666534059324476799539101446230433574942851055638323372698570409683173124209332492776847985084743868044146375664487903240575456326851167050685265252607645480242553086708748266251440402084817264227039992473283576598569387096523864195194213665785473306600425964786232103830557585390968673104029381388719081527342269210134525305150027460642883498986707895776727821646972043198229994820609396004523689225416821876326854219159851780814164707111489596665611726109925463342184355076583184693496070678876485382317327449675830102442232399578048224506078966709571851089249860841705854938426304863013998482472530553417267119432744455734597923676698842637878679685124542398086472655840861261705432436291525415731020742411925515546410165397821145628572682610656327497569961877541891372162442192631654463870683513831919013559076602867867613482142817995539862555332666954923195756333689449943953038070737856954924541361607572423444621210605347892385739277299689059034960752628998991337675374412886644524827915302890035178398096072059917764645588879316616785592039812404433670009277538474278892646466565627594299136521228377648238909088420391431658016093100814542316961362400461572733673890648874018196888699598902683598431575976056406345396672993361246420993736159381528785224996403156203920092710899185213691208573415035438619944586942604901864808258415803681238454979103431591736669375253973480075777001832050035685954364167625959500745775122063522827226230175324287398327056218261391467822523529079229633909589319687541551951989012552902353654206343565944057963567283855584311583171223913483252592990591193009647014634772446875913672707012812518224798002421084907802569710763721046702552262141131799261278040108961928151553214504730427976463742663766534268845826329354988912317598048006464729852333987014783171020453207536132954036002947553609125790332915792612438479769728061290079622480986597338304505742035136201724244137727640584010374157640457308211247285955172242805937072650426433294347201017669346344604071438023054728984299906953929224419029516578736556727292075431885128873344786206425716966038327138625902351222604565917462693926791010222330348063188965342531107509359642199409513754778006992796519011959909986948502927129612728349976055644185855843659855510924208519634876099163503683368155928057357611841798388653356672681936787515083904639952250650848715682159986362306487952891340570601174290617328054294508150863399450983032241892139102736574396346622361654171915332244803013488217673617106989081928490617917023257443577334088963749249976637238412674692405785479851270975597862249736100479072549081897215244623876276144444595253759213016157962716800437974681991249498198397979781572388740300750783839513286342101738162259199156321337662889697648320000285587282797993578333602504169870149416264105131445017046941905345657687742813357472837200846041925470211798231084673117889242345764536738412814736655467203658405872937628965724726634384349422414753034979485254963945208040160896236057244265846861829654579508362542982184870400930762837584253408617556257992905463082355073960592571233002850647206626258147798335947114771572522372747485847386388094355343739153885766389681002696657365565757603136820998790684660291406368553965969438356498674444964452871883741316173545862888481243772540608820816666220400510725009058625586799158103001679675416878602196799970042810666747331402248507774740256656226230604198112088065060964140659252314848592685078619741816491442692128873773358746424380780856842710353471577925530060811845860843525751618048259405639865058982024522131942978613144529390634076056266417181383842600699559237253307720307161945736969788082077806189474677004009791558122040767827783873458328410214145611594216365016891223150938299497940093010791998929835160621118802644770063465234749839384634384208839880096160119241214897881159190310584056267601333923435650836485477562042109972009696201714091487168946921633027254631904990642494606951330575303736131053358585044778585229049280376844242366777056177526009511549197704966886349008969871781258790320736966708906529367982830495929329667589487781880035757860935925582371898471748123787660415739071290932090238260774034904005941425961532690092379506095877902263104990789767405741533945786976949549586199482196539887278803497663950968728058914321432076473723187026332634944751244153041439936664474354791174619298590659302642469964455939924620534219257668698573083782853775865466326358357213182421371573886972559040179277061955775148055981396477206533434411716857136883316989426868020232192155077608018128639271136749828767554922453697620351887703650309276267211380229248846246607589130566547150786941188457434447802178268894483222892750695199037819457720778005477443665049676284853770951278370651577228951123490111703102010634343638155396883307186139218743264625300948314976076331021181589973913415179855531608397044564163245214158356234325506274419850060272712637292750390165340903127524819836377993265288106697516447150810708044786892111777744010047091205759809265173795284221629398205999893036331498338136967418985339955255237871636263809166302629220977559270532730128870513070721353705091799596626920124532226237772494385825564093655660338827203281465169303656793566641979868954679130269742639520763517262025741745838773403480908385559187197626402366460573229986573923826037864102202722918047423401832821542933897951307318985870347945636229099852381204582010598592101308704965054997624342650950289326477314654248565673850566243099919903598951708762946899507088499567146183387931965412761667167543624741435981915521402822190677967430971925895118734009076128891521398528036442487647611249265752340488067059401648101939557274451125998845415334414005157529986811797925776538162194300915684715790570752942721991349024340149999808842962597599080590808119522568024814265247585230838737299672139543032097774933178533297754486967832117697133990678607940836089681443126238385053033654033640916943106106715406628464006541175915709254120821326123542406822378536040490514105757207043151297534503056639120451704357879403288181268039944226943320975912829944657503423828516052235389741009056658922902107139285842690559265388464796965274758426041020331118847631790286685480908485388949986919091605516531529290440581782605917548405351174404942615338228815809365232067119103183877130700160791359781669883369167498559134815250425471979813227128368015899973253164754911125245326415646051872348755462207559789473648459091332597272980279206149835918900465355245203456604376674302957652545453022548602782336889578353111496807920465472872064797900013103101170062055390259769882252222100334389872095964949109674248031869272021159948096901055101875916899777231101363492678914267499035590357474202370373432620810640193968086628256779710420811455937737183794711017728505388758983544436504312017282818671101650154600871757301981269352112079047370210448082144077749026430142502430192390927137933051424618845917375949747750621582932141493109921625084548084769969145662879088273702142685652782348002975487448476066083642627541776322526693728116768082123467015220377411000711388954434224852356015787476939130578061926846007901501559286791847306865149108644647245727230877571849969358708718048504165328200404227841433613719819770274697840439292154581367519830229699927838133722093614411713471508671042508826424635400194272478851038505988517758769323314617774717485312769628110206766645376423529839189993466596850362544156939194983561575799668354095377130215212984734570602506824570739672854526202856793408304062235089484566982593938954051035691728106762359629512902644938387910487049272392740333933867063790346351684527984215706461404927602695216333775993376000413809030902051046509855811328835388593176755918458680113212343065945777277781278886356756352151527883707482338696768658494489525518000297249729569670722196436872470528050963455213622165652084018808445300525938084462664763809874602151579524394349822764236665796892633211152056498461288943573598867617160886019698502856537284193014512399428514355220951439053579281253088395370406098904432207667777549167428489150714288861886203991823306333377155496516947587388009328494507282298589985807426947354197736452567725257623699909775393685634766801864000524040926942223320137521959791376463961390633114998925916462768749503459199899262525796990100212641230889834871666620228112000298207295202918292602635927330598515651958708186378179976569421965104503442046006169816841011235585573061790061791874388960697617284433267228155137994155736213110032859197235162031284025706650580533022845632807454246093447426302061219329629459195235827234593594171617322031693399807946855179780333549341588184871206430714309654591030114394380486986767169030276988789823172155363018918489643518790286169057327461218265190748382612881705254395602566167061476741864599663691603403222651445861993683348828187963808153980311233630784543642323812587204807645934100179988177202154270392692034594248947440210835719844481691232732140881273852354655595880518494327385270270085275091866051767910437037701565842806227158302971944954353113357279398802471891525926449579924952735422320024816536522774339258098606928990223617172058494706746029278829907376200771468928775932274467267260504339123248553107022699440106091018982483998130229064506160575102130723043568329324026489190869443616923249840606042829608244438646103479617663063805578682528596288354210384682687406836187225427317484086630332632544600494668617901999765388423584493336562711799947708626706766485451395963490338305838140455529844137745404256410904659838927163695083342558338932093702682736115379893803459383556491277457859941865754575797389142130197588739158360582968999660219372486444250631947222489992521672255569980515853036866538170247231623056935292612022809667137573263888543026963723461759832186615894660538132490267803760937203475143620683215764122477844646899084686757536613097854024001775099227334019712922053233207492765949458794255334365605108814194961332011496741742625351614211300515913070414103486146548314525698341868492310706262538345043640182469649604755737741288814952172191546056960345012106906532189098573488417569990324618171569435210796025738259555789986371290949299954836535860666770165542756749137579948462815599619426645277144058984818402492866096440222034000429977268356599760053454920720403782232278235881102734117589873271067402321900236630872114320733899759533929877839487313625680538431083110223392251421506104708747655872565417541412453082748335580794958119486028817455535432750957830204682262579230534081403844272998608487180520484617109731026357653292006099846948797389671179387829264939675453643724427973516645386197294138073515718977710515516542516762191563674359863446843049441156711952213067895967568230294530668374416461160502459174538183853298956709171921787305624691196853390183410713443162526301132652275012195984262785246961553230733820137255146340834645001820414105551949305138675369788746076026563753513112578787340006691546729822597330188869980117572592585375128265875660833996487694144806419900499059811322699973122972418314917316598260894573755488292699874957519164208388562716723639944980413118631550805262447708682125616546999767340745574806379837385775473642056488369131696249016667535757568586216260758215437307013323927340994138526531531102097645426433131071781563133507110060771858173633604416271560712744563055488565431375725145004594866119479906119647595349384979794008044812291113177863582350708966529753815993348460329940619545601842095055931055295065639508321254663745531928823611320768531222729517371745279140573193655712957421990086469881427909787151110322494685476787462319867452105092053897790630957496112003747723512369524145643738988570674486194480498408825745802435358318008072519389432636290074289646806629918255664555991822797719770468209816863881732465486746126450442515547382036476329226656703954273041940977451549174044610475080738687169764391985977807536154516057061428747237057876859373911884847529027848228774561102508318569357971906439356750858474669323691233143314197155554382694144888060890621685229155101300854262830368925496625334691606473785796776619339728405512803530828665367558299683694826675532729746543862980922643250959610855459121160356699613545049169828604331244059070403653288423686578106693265719790157370120135207333397291502396795664495309534673189811589086407677768951568870344784384323100220732669291473584044960343147078467163208687967737655971639817791333687231376420276736982451652776296975633210812523030415596368032162061370740873750409526547036168696010546886333398870930071441890644283830406377087853314421903668628545528855783469130525042731862909249782304180979377088581529544241445063975231430903231629286270896070359327244478104725159133789755326314898572886764398050526476789622217824348429631179731196129150828963508113185339636607796351629745386375628096481821171218821749571207200842075621076626356357392770855136947211731537484419364841598570987016544951615155261926279279418311428553531417685370174679812402263937345203623051216997087136995366138272816402755811717461233478131227531659936712573622595021429914196013113250465006016047881478278959332065323288793054553933062640997417349327974850910006482316550283105348804407099459188294991399308117730878262392179634677123257598546552575094458953942585525066330083695400742161898169671140271447467327887206654394625421912074800350206519808063119346089772296136592117827136565635546868839653229062363848356213834362053747864625908704550516156625145042468020421877346541717885264963154460025251414011674887115788533043528924818138158108258928953709408731955399937895806170663828802763007571103832905094684946393968933114715026862141743611594360896103346838095609905886795502794448161940911318669460802177741333350328547816649294960159400642729840164324349893926053912611190887006407405305731547301231190602707324626859268085496245497424223541105413825050680134621171884487302749825927622192961315167795586443334522668167140844968985614845107194380611875322493707113473916175485245693488994692357213981952052547344744551617699347080487471207492038448081293854737929862015531024349871468953520553343404889779893852591527852945997370182585135857977280567162182229680994938356747625613977378008039922959852073523612147138321519033834738529182052782339135726102868829805771343332994572037080785926439133993708567859724494167754983495034314106311147510150357400577606164212481435409032996373718152600715954232534966302099959733821287469208779226132793738457583205617451934279835818824042036855826947897514451763319598591969963780851924829935133834208629285973615838282695100888315807953308687298381553826199736220594159195330671266402976928474870264355314535687934548772976530499412791440073109448671668547723377639585365291289187656424912450955360843030255237590851310182401815969837932450147107389099978114747360236462005046867131726626824783002723646298576267258568589124326873530862495944035156408043960880431297581669554334174829945878881427468802066946818366491649915905910548830181461285806239407746426900734414670300135011092396542956518325572187724836290197335887505780113571009180915237565012932462855231685572538786353091432167764407659443554745168540394226332221327787510769314395278341194050089993984976984295239249836500491143755212736742872600563249515836871654197266364572167073829967704212269893794646552957376600650026633937982318107859521727214180329346593751351208886590719211302139411061251145037112787500048207449206620383552643056093602150298389351801092513611465637458832483885016168409727154432249428702517411221588297821188691661295098672348333786931115102635368409579144397338087149121948554875558975324052678105777375177880103738899113500453383302803592939629091816742489600206242420146620490953948547694306171697575396698578299952011657273614730875363079756831524056187753214663430264543084595124072590133699843323551025424909654320052769226682749238635492432398120299718907200115685118783239206835537127740907034903898235896235321640046950544366222342102799929524412099055707226729719533707864017276424629913440300416416139035054645334788835649910095352684581845447511713446654241673805976862897291878332050031829160843143171306951326900283925631399806797631071635556735641713428694663751244853678122140351973835513402533657728551575385503831751268872593186998801025515024227169713120529272333109324177692263726091292375150293650830240123698692240843179756247626809337924106307487089186722361782159559328911269815764287162902804796712845691220906923162223005713510673005661221341387410638850435627487226117820424808916991752504895606975703272051125516758977336791153116192828546014431206742927557254141568078335843976182228216908365656422601626492535183853385903020639375533334643161267159599322014665117680964964409992708520816895264661030415368942271430916394673301715389965460507568327049151877765958070646880483331839792761982070379594622612263912582761019740983527374687755780586868094963888762531875318546991878922638017482587875723167494107282522503263076926044924665727397812136081773625555377223755605559233553329016334057405813133006262879664479139144739582403141804435734298694523737793607558333813749953652501484308668046379907338421492144324288337187696377799597638807097957662382892598349646133008319462223116319365626793962617256002658015955106414950977531748130069873956225666916522111421762333194358461657447503248833511682844294803526162531927951065907484682485934688137963025879015740693848134241369481372836394111818300696773141051911795136967059417970661765906941435146532486416359244002633060674450254581354506234752918669253817338252432986150554252707505680824720726407202899855098214079676422190460750249129084805325583125729369898096633663673245246052243544089320978156849181122884081137084618738239912595228234703025794201364153516731240588789891457536385291259339213045687756795983993784264005008103200631249790642762530678177238024017639703279587231647267356884339533001258033551036537008593151716865753029876471077461774987658550728440925901853445106722838509307350387097834557090706119379659244105893337589171605199029725229957808404821430893059969241293272423268248352901533327009862560896318303329676862500990607245684964381250991659451242720051714682683228399661866148868331215830223177746627407838045923723454555323468452433805247889341560684027388210855909208231239301344719733125132637924141649424932807805741283250855486549404897203053138397201580249313774943113836964971351392797943667558735538371743954865768823791509496129916419837636486843828862389859383040632050573955696466358094062574986574148031477297446390123045830478352595010856447430504093979464885803424141722513902692555106372743965912710087559930056106943537242875326851963896552258753598802643953433679049097865739601120465908370077887041550428233816020177256361519741666148742507069798452505554811411673426701388459450200354411483270997910173925225577661269935298803097584169257039540380133113290428434947900278392426592217778713874244366749590087032432147793671824256418882367723239094305659910631976378667853910598109969276221133555202442909098692283147973942494902436235664950223757324090983129713230565818754385056407951015592840594496762626880101657307130894347500984020140352095808703428766267712043421345840617042354481531811883885910094193868876171311892863440529697208468607056226016959730883769648680962598887089220640228692774108043304186425963223044723993113028250733870895343711880381626558839137858022567885772014385951158974309154777801115215755821686586001887471147738834084532806280877926900631122530656556595853863607616650178548079865121591049917283392184817442652510323536758441975012245176088292863194921282613106448239445203472367093607962631473812669336460063212230128154728924146137424571981798677705993127961961047290439952926779419256483334489618523616732232682300036269638824346678224731016882178530224759921443372643813472138409077021766932118560622282004290985066884632940456352552690367513814345612291942521912114786834052827599314312150579242337245579254531286214379701473952569190240541036435531058608134254823133884602351578277837324788847331770297466266563483822912391289738168826064050444452949434702069602267536773893517972730079439728806132429522310065626041273704234786517275993552217090346957202018943081507751677778814556363657015000326227051666074229677102968640632461606647283703642889215639791515884018943047154812121741093545451224753112097347342228936469729520004519768695376726025129600702322464154981154747623834487872536259624199912466349597178905756597716947339752690765622568087511058731921444321269790563251384297600438358364941813199888740202550318834960723353760975492733774197221417847022977388043270433669032993392116151702844296137015084213332234007327370125266489799695489956590552719994373866686931628103848348069201498014509444361575482489102176080417400219968515767631336744203608534062365988199956451432357079590994838424152458582651230147572524862535363898247691437725218038476869015354422203880279751514666049735102733486903252630445038760904544619538615037937812170398008385304426829359411208832773282673765701003233828293701362592227212621187117615785269793595770801759117704001358490321662097794353542068514719630690745338574660628478248843442615276169849053999408114984148712933399615130914442723325907116578502954757600635173999314420576437467144820820660358120654906185541272748168283030257501190536577164555994450075263862174296520658248593195271448736430163588452090109010087529444938569852297317805681389510195952249543621910793339241556751717106424649166509539441075383132087964825257529334276247185862243085755413616694966900712107885190283038836559295873930628150969772669691810729703231099346492446749290685070522530717231230783276453071899223331956634642704081176635837287026826776197542391111622588903529267904522470400729834276985531789346555831443283535293378395817974443853670754026889148759477639193508829246004385230218417521601562846183988789171086049655408783457838132872755985894298479726029651297435212845796175983366833389109504086374602467385634478928726400547252691474802296901069010681951916197348556029294074119519625824450199566642222579820143899542265588962967476687197261554531485228669095106113897141105959854698043741628871974266827568750809592401705293974768954201818122044747752342319586192429008977708224021560755820023686708088825684489949878480442957632255363805887925216796960632475584635630586747710253965296096664656488306978236087860035388773794409887486370682880323145360352328056497815818760239066194533404315428806632400212664121739332979272691315721228532559869004129477483267673296366023367161918962845841987535076457105937044584460770050762728380691937603804405957326902447684270818885307529586272591114954391641879395235916521331667749886085044158559206655924341909500214182992345226947433135588974706825855110581447769043743614351127839854937208802654074749947562326582396576300150454701316403876783791846820455022056098151730542384650037215361919553598619991480975786840106315760971260812620854550968584659887468165016472646419470781390626454717032195669982767853237635529276322561989734656634477853803827508190772887842857654598313589784727020108922245052857706544087258326059713694355821504812367784849874799155817270632661210835544482803902345768638656363018466267462239892388885995435796894042286457147633064612420204137046770002798346635750174362283010087538572835047035482541713608416719149854247547870150728555805246013902344650558823482204568049849284562077194783277939235207032702447590226834290259108067982596292826506642451551774528935805004100345780449481969972577905931477221460511190519428984608018921666433847043978656417256854340358391904708199008537049705304233608713812567015920469090085923353909478886293969765772228999856997709876620160839408578245441127385990958358703659441880857941776367496703436028372537944921665173655058186104397636838415878615744888398967620253603479909490233592895904823766678140980216018351328192478458486027428015857448625678544097244106058478047831126541812600958627794758733483603954028209669554808235792965603871688960229609633079281399441777016496151000978772030769536664748891373941173689638499196554133359348961618243886341821722585161115202941989409862768241183008923411077606704457107097969893105828326953912369812084340859321744032696132181099623261518754698204175514557984625227349940875969798667150639277585504795266684370727729328862739748745147097021866529949369603476612709280581102868117137510137374340849285561657342578876593472787554530202966994828969488207208183023044457894423129068280858921620406586784856343253406095604692981779817857435365781987252534051248543994935626401774555215379546782001978469459477124508703345605442967797416411543823783628858980868691112777827560429742879605704843894349185324603154303328028903114027260717403749106180131450166372413091033776759189208554309424480464931487710273843462818668463354405893832187397078554969909461492145466568750088758359099813436869214565922198798757459792776431368522635081784644597067808983857564736586542598902707873345860227754554291203253223318587076636331353423447062081432635784384978495956588568755573141731205414937428047467055604905540843705726762617793719176010532644730463373633463505555248536297027051796710019254690251123555210598470506777179092504999686506844109360564968863300465134253879958101326935623394620286336191487208107967720086660579893785981693136939477668560290892471263504596437875362608035706998503304666739765772503331883057404516120666945365311913687615136550166016766338092279632046881652919978894655146748295511024102854805702968095077546443592536693443235011744940672639678843526131176342528514242215092246526705301416535796603975150967377787042437989765346327464487255323341611511840788590585720671882308934596264867193513659942669419764832987848791059606137545442514007918099067777059054313457346377825456429100191628875468442096340218166287378240625007662663303565646337892197572667861205839446105435539648905689891632424987658982699661818380968661250800706377265632794093203150495691374909532996528958986247558001752209726977773972737705043551521640611985056799093381787575473359753497992650698260330926741270638200250911250902565714843522721652484787398449036638961164191137689234304992402838374651315241490571589725655109553019752053872845989530721069964618334487046158928985744222915620903295296512309249629063858233866612357893117016125071718139761121596403820312342866250063477265944251266762832835726293406283882370409093256130424515572742094777591512205038102845808686704398103371565230929636210129544705558460591419013226819492796465124503722468633329113300501823086993591061340240631681181876649954682525886940269954369970522604814106000895666659308831944869216286354998044406473917820289514622994215437896166986201261320536396597159444444373611562811755241264989677759836109357776083494262430020753219101181427525206364379723083800876849784865349737749940114833589438198351870178786655153851260216748660438534941552815659320353421647469968830390941995303894010087347639028618381216667283436755556282991370704020307113171189731772188806806276519844052501672742740342291755350342228118027438281932878264681734481268284335104034708817597047418025408340927900824123695270267701016288874648717041344148218254417223481573240543504340324264173686302221124011860330331609646974939299859118183176389729562724984935070293019315449026415881966757879486933615681382009602392627943319709366831906676442249402967441853787176709818585846157360056452191721065367594566631347964587162954961892874751683584201771331367611832670430663119693910181672461849752773540033342367194707806055712735195511579126338317313645984244709090683827181369255380465277457640443690768821242870303172123737177778955415868855470075725358569713534213952556943644095242546965870785974931380921648528355321797336822763023823083547953743315517431320360631774084245036059487081748874850584914499770265185054053033556955396933987745336499854377488159995666115122759549395606999113334841964398185191761501547660369554468786561328653461557102982017269809550222663335086101576900930699012473480989080465982539587989350288290582087841776304129183636596271908566267418259567065453386356605059586266852483486643583959780618994079470604413874427455530463264137571466223833951637520714448889670837676965995415192495917748302575046033996854897892419667559601964144068255305657595328332194003202452019560098634652014508202228531497525450057875796514885920582130664332253727720836246710372063599438417141313310372879865126189634373666523521345442035238345887320975609563472572722051724224509120483833030206767026572998371005010449170420860656846854844105573340986624498789031979560309454648697784029924527821363416619625515698370994597705635358543825258782362459896417961818326665689546133933256761979757456711601852360339197116056158310945801915723219982533497979804906196728398083481586507285961000556145903539427762938352544155935902667786209020132356563613519672346154916159952389309576317226788966711923230097292421848398025176173640026650922423664599219068471540455049681391282153832242148835325660836203395326115358596796349410420813782103689257160320280808165620584800247795246296266241764977460320995596453045667091055918135737814930824496129441686825056825165906176231997422061621359714627261080227019692612038996055775750491781419170643997386796495162548561608512792774212511293450840818162354985619026523487217092809529213437842908764064413351719978103456283242862859738582934017749843394081000679975084891290929338803582318859029310132612831914418097918239275649237257217840918343644167621641865090604993743078381620092130508898739997707613501877400262140060869587966305213876674258966254629375063158166113601442832238721381407871289223306941792393471004195443529639971600163631392949751115968644872731222436949466090430938907586613768128631738672944552945645522050800028411041248335924539294448939982376770375866308080837444667407637367946434855234898963195288290337301947752550820320592821022339465420357943349053312249733576207212187880006749859659522119587874300308589046742573478622128550715567803383304855538323932426468098339913323034802291787867300142935271401387688285468232678740802593338229418985304276270828684677374606203389465240657941839006698193687942003390972159147143718881121841317534997770394908083258389630452040040011414423065369693910802504644887823724538838173140619645838765603587342509079558117102854815266149184861829897388439810833983535273225854519219773560480653860651569824296534754945785825863536633651525117010463277200087006446143138062099548701973500083007206736081294404244573905401989954036588049129521490812719680441753466651441126937793768540860701030146986527210869791015993259005784150550070535512377016198738918488299094554162250270647930336466277732529019574611567512841017110189088410376455994241827936385387280976457605094378824831953560939488031257817964021171733456716928757803517121823257254641571865253390756257574445093632422052057892110910468381557398059503598546432405759971306278571322096133088663374679685614061189217791068556641550930668789655450657008773546516193981549154195854507070054195436453642956382232636918986412306929467180479485598322777818797334606992780993998202353730760065241511489715118477063097937007997218783732976532282829324925740766141073309373214194758860208282490061050531074724785655537295954301765814364666078494264230585382366793782880638024125520649258954068416787405984846418921339144570360267029417628667140921682768633161392352034577548874922894760712217867947927000328336313608824057208209884337192439049767915821274502212439698390295572647507383427524447412895216670729295703502374144444279882169625776003140010471754520934939878968672022301438488753067209052363082386494904996177082258338740963193445190277890862032367656397013419547223255185693491622282773027087410069573899133967074505584826783442835251978610609088577464385755210132056840312485137247340608405737085996215097719441218548855219770508858073717524254524291206662523999557181202079763663749784601303627284893871623443186088288081368883041090457249334763197732190609205105674148039704611601294442651472801868491877918059088026498118403675406762698255122271072594349180200049950467121997651589175192035575361178506152716919202912312252979759546449231482631851548057747196060854501797945233789832599916799131923769373381570424964067297141786512206945179152140838316687440272492228575935423443977882009465045359246411250886822830355334771309289513560652598195986918654254827142908950699211304995859066609114108197565086716022865305335344872962876708620855079085478070995087365925599697450488572285307581681274845748563922077866711265764439248322971617276294757924419572814643758309116342247123950998594791101656065504977854333125159262204769174591873861189956743374884451163946206780213448851416863703928471841052785603888025601060609712750589323460002163198763532021912775627202113425039693825415273243024034959974618539310986937480416086194751943407896516771671193051875695528829245695411655742779160150132331122813854544996650569841023478884281300700448846053881294648793033032496574450673786581028181092267175237261580097727751061801313963706279261998486357651905962106665116403183091244847614291497587480735551883877429875394365000857356649267076919286866704081208925329629356457089547318393939291651677901237508299436854925922704246908905508090422843135491377899865584378793847181181165913310250793260508900938292713608447513355884484543218747133867385177031572523348232667187110349398041157975288444122176420300303521144867148443824966541477689216939893996308820326491125647848619313305410924303099848705352474177099619677704352914788354273697181707702123843071170368007409097870413996544694515806521634694280074499055829657221029501447195822203227603289867319840506711877186672778165469445758511905152677965417285507549051317007163218584471042015834831359229356061126671812935777990335428637066947009015513737621445214892772800273566167000042566594590643898855956786911977027298115150173662797563886309845176551028697374268784116989011529371452193736541139012656939802073910577489890151005868010890692138574517985208884684413903007465461113126077792700546000314139133494578979452489507309325960269689674995560092480663338927635685599305411400289270072387854090892990375024040408223520650933425519103294639759015302019706024168172979078658011935551624527404484053574969942464808159161148968205851512098111438903154131829059107249406315105223327780558218023339200804580026192996347916047790185698664535326515518232332100632559982766926874128640374315505390478198531450857438126944296408039590851738365840822732463429175735992397173095297712574941374242317322427974597029091626800412846439273669595923790172419556225924197302433279890798880907397068527748062126464728397201830235124215480363958023878881434484392366209484310510902217138321111531599893204161807321778676472417868338388221148994051644637331779250909367919394609434682696780391596364492476606350727480855385013798757916376798114896414885608943406725492338655714820623881312295776417037440244135399687717630026613892720814305803362912966926351437962160659019511901239625095274577541114628569596573916598081534250999870138432924696331629329796479182480930157273784922731037921007013920261882841978313161890057082400733939960876614938507712232286420430554435570051106388809919070884631106356317733065504389910710173488080707958535411104351434404367585610114423723629659001744609366227944044213796672235040162130618597039325082109489540849556069909940216015875827014575481027052223532906732444485453069495009281312132941522715365519203481896044407397819374470572915134353506987348631864122730787966213045418217741564518398351832092607049491253699586912973634513439062238293118823009408089549912903093073909197429178636551362965089620010357602167743046192878471006378560832801097226917578279888861941845440235218248538864798306309093158824242950909666491956290873199474105510968318371751661855946554291857126215880758785613493297106574245881123397733481726469643857783495401045562704169564634517047497163848241488339669054116961170588780937839006771571722803309929999424761480450299557418369060897559307361804458683221947081883298251666057470034700744900956747369062603551192377061908287714538952745601132515947989836078589505307717829121281354129730578252689607706376167489759590900107562507148432277054684619729856853886647333164115056370142001262731165860151990130592133205058133391028913231349748245208658154466218567461460702207120475912389309028098037250577947463675585023608522287628899857143809990757313110809291090401781127277024753929412338884505800291368052721998507296912306822525245555007490981703829228978665796739279063612172245691819146521350715302042972250391853147897243709000260186278335973362278235255399202261722791175248246335054774779207415965803890798129021887053547054842486827297393982517923378676027908549076984446288133975333677546637756847320439716566460890815567883323457738712847828388251925820433958961134937420861871003754641618146196456767000979047900685412644617125157866635471205622447963561413414043604319719240718378010317363689147527022109925072771041221922487855180756340996357957900052789209473079388183659724024337412593387913240324199300529793798347475764642515128162054227054647854998368780201571914773986803248937786600783513008902284435917193964177650804716844959761598535922446051947747979439960256231981164217291288683865398333899594303053258188044260817379718768358986621523281468817913844525041128463770594402637684583484972409218183180148743722747484587141293075386716382099567337275233584133750486454795384304819697453887458271312865739674365502352789456717877602056452074892488780471334373393927516019233087686466414173346189623725905297004529015885218471923687988582585390391570951566134331511511885644348052397344490889569636806227089901200585883608826582339312173566500201190498681717792051142816740997749518683261781183800092397658939260240406554378202423246415111327206497064768675959964810669812142229307764958298279305099046309283991683066036849835070090228377092569612959866771925081490956522643864289064132889697529803215408106203744921926832453889885572868799724613012636241258998202436759414604135297652917115012022122994537811465839443822287222551615959063804681922053326249850917908886853047474765795992535623817154207760227686840073191308552698294001343792610710536806477769907271075679252269807320431029336349231959012853893483289048278015402670359287945311024789438854471483243357334069176012189012480268148835979518682624912116992265443108812536433418167215080668021367282141668667530994889217110387518593481041034393836129876986185164805619406439022553033433584188485833922673784216604978677592524498588008095812324612741683351988510962196007690579568502729315525727476822087128697306855059182153391266566663144904013032811798018099406743351305301317935130734552278694698001885424799206006370817565398197544398056034848212405158965740148909157784047131092744242231516113484394204445471439855370323267589837880598728609522455406924127579687201551191851614896026320763539273874277547747642171687413339891736022678909707836300407650390251814350667817663750505057153265970868911348543261011692443937476238008800929508879404539547150557113596971099849779321417916052178932031194426018975929644640039230354215636272612493404972639955576396203134353633079334642960876962803091074492613795643501668139300489043340959740519545603122819972317601145055436843321766555536810390888908995858831951706743810188727024030129624476395495684380738376515327624078203903763511303407683909561806063625275016099901690182428028732152292974736766565598290759195878383402460947268274139000969637659202569401000304834029339165254409563693957297983922471541105077050973419216018076550988707804598350186259434486137710857885629671206247220662392648797919329280202405188307736675642901903118679473155970398180175900200217427291703309499200711293776874914442104153820091312407534245056983447374323716249124673895029765626528350693910305391679005033226865720211926308529647899973123436004275379064023891680797792390327636330995402916454543808300355649761101455744778351988999035818374726081223968937516661905840195999693892201562576817689207058344444284740787521380122255588845527734734863774015931574725048459886149783787842127877399437500955335262306136078315240856365128342729211826173184550558599822597111949428461069451092262479588250229111706968425890150570096715434655501114108028294097250190791034810954306537785422685297562037727626715421640323696918880012827444730591633382847507254688998563375543884191133661165264465532370230935795971878977864324611372741691103716149469392662447851090271132603528023873951556239437327945653869552598570554829888783739109984893357053692703896798713825969864245491903274847205478147416807049026460164223332931486579338120658439008175419226301550905585402873477630606386639812961800171405607229768648926226598923231643481970205763939841679051057928413527413518743848645008148976900289683016577104740610079553790414032746493894490782999740648069948673405563660430997028535529616704397851212415485946160751849069193451220726195865271835431155337702370415245043897436401310970113624087470340493874895179858236876166786956320127919142399131910271149284400078442759621468030039162947430048735652936558184029104869960277009256742040025223719802312893915524578234708273303874475557869164604271753751900650320859197945618581816859682031955478888422877908965802729901779152885320333140176419745495353697189007252277706010341581496255539220484766467679837116712686839716748208129118204626137122533807212526948206896696378635917936774834026739751820829243774971151743765765421841682293141869607420907692233012308713602397093600408867597714596425706034595546996845546629021047705567461102088705509688490124543011527531857008165791691408515693031724601575734183678316555158150900824682028390481616785854247546884667558867854964131223438712063790232742552654644894871443905498612657973086372936939367308510271981481649056971618289381722908505076607314671473470872985121497258599286207577691375884317112650460731523297729499987845055975110274684938329277770250111452040030965784662458547611902987798081174114019704139538644081513740360188874275815732502249231499932875746570697100841404146051448013423613707306730724075987997338665837435087369840785142295311025318704604702376043325390045776191598397732240794182036648240798143564732345047819839899247622753647734403763146688631452788453152815836050783154521164794989531806275943715468142538745322561855072206038823342214238696732293628701582541736285091144194127411854783058330576843656709078339066122703830427352925682471205084122476017471142063776586628529197632673969732812182163568691282863561575403320903103245718954475693624598793975021745669100493749011482776293075397463345654868418453300953033168172924721546342574924488408184486393329596648084543110015158351373089548346265145476979095005840230777308662164797929575593458421510647976240559369981444677788958946817104815003262765314693568264976807636507930443544109645654985067661511519297284690825699440266112692130259629313977500234640003352140025283584856910871529946632438938373126675582184196136676962923523666019236782988197144140336785625789127308977545269921819442248720271077547051029433131772599856869307011631203941795490672839904681330906814699350730662738163575981335093577002233636520280407934114156397910614499179255559072464521727442190393973567808002623747876110887949030766753199037595546281725208963522041776309022127570091477060079012012962728390728574516550847325579779674179730443352242955260053352348004986043145965070565571290046949546016415726964832542006867743098808185172951496243596404911141698706309234505657650313250839605085665310125436401556814904616466489843494150808529573738498480221857864482650867478044856568951275923862975559610254010702177936703602980899110673329764730782754664367142376595067083039488063165182402757366503973490202516490608870069038039943300302075284171715855677197205757802355475847992212423064088141790257320712426549926824027990457823479820276933567675936265497155676628156907383708422639463849890195307728595260667184557545133183661101293402888444769588678802213896543634553382683529470978252093040532302332401216324146128492738411281831058868504553741948823215144948427842031136467647172774220836949591015315131331337655948934320235646026194789021168513300010323764358476275344244569493376128330387829955514398840215090401001502571983873261081579802171600885191885339246565687245096166655416759723675701056940135660151740476758927015576361936240659167284252573863073122955590704760970405067497421126738597999192971893841890031960770840324915791907414574938082209207062198538300308116971800210281565395846492636217389732516126698666444956162108452040045548577638295500867274880985961588291375511590203221131093332738835660091751779954056894412277283510698821285555895549726265910688882593232296534307032465630063023602360647709245382532466428083513950745567113091267858691910963732027796232097697066456168874755895508063450153937116830302151503306606290166691235158728301429177741896860399520682560729276707045805064204535786290759872128193482655408586758171266368179458229202983412912193080258642236316130016476265997440801510776169573716260131485178952200412564850025640408659054735977140556168498630289079969389839903290365463312379342838829043491060063805686283538325344503361913025950710710535565094832575326955830411499185048904731612225341976187893033240637990493894716336124613324874371183023082272201860039997895571452668040254813989542163146499835900832585195980980210492023691258757669545632451811105776909751973133159496491935695290650585948212988744098485979219964945456361191822859515135723722268609761981853141952193770195781876259404512421981682005684110727868630640126321125392989669339740086043352427788505404979150930526784356301319305340239986047209903116773782870139837765670645939098769464145088381616408654694545116947327598068430392418970398826199875020525123090753946789116229886303574671446646188680593322390690820786575785561760127143959659441361558157484903155934749234155734486978865136219670948850418095789684370896236216010469096379278677454352067800233598012717074220054713557962664214057643664614051352455369308232134026817180265035035717951224586261726058851846801377987733793035516935472292321151295650638896125073039580056730966685785881972680704867278274390963069346437096769645088704185587910685911225955849428499443907949732149884380083798252220126701749356149132554336867834574947943941037278267227669446329415731936593112244055673030073175455134803228378024425085947239744901703759317062512163584542027154852578143183766447116248149358133723945129202294553024980761574054973958112362629292334736209692122629799609318806735629552300630483095679565836665874006754541248602162600723771493223922723324831205639016270932411355158573458903003013714726582390741858725062981713408931326368866361580031607008415103336126692730995102229442535574347164125262464889347872873942979536109274852756725749635721904047989641586090585811674182126330242562087840334152087749147414398560649161254787407736411341960564748193791221305013908612102924747272355346675397800157417100205943119152981760537688871483794393564427677306698994588097033428444596849857261869822423870314219766121182061473970684467551244241764450041378361603283941041995714795622682361625954188602579969523640033786827999046714590110728548277147510059933160762404786568995212868440509686111512009246565970272510673146554365974089482764646162271491076012438849342394850214072105248207452285209900110245734056663747610184544307679064585352628626060968821453825613274846427366268855782791595601538504122649308466164082603841255030178057449023917509200724504580716773732178735700671390781858579777544581748502671880953295294106987981359910821495409939849783069800718347967666436929639342108339865955260592572309949144348439940838991622103036141808910606546680312363573260786539259983923868283300051638051169561121879417935545413568105421800727818796324184940255647687539897507058160039914092318002437398118285472195884932816051688222535482105941942518934111918459235429004537148518274722515290489109700389851407018452731315364436320183777514227738759009667514103324468223388724953302917736710769922604867525904159511198157660222198760406635877443922519622652335727166127189024400370271524201302625184199549661353474226510996154571197865197970796673249789325683671758976958224714405132799250657121683391535423000064572228560319658214411905130057792706575258673235792546972237939430533017117071800641014758804090644506694563930341579354403802691621112412281524423947386158130735894307362086659032637125230238051582953843973471521341051032764132701649520711746486830480288212630072337102472231188871442696719165243921390233816711919964105047496838091974629804193424401444366690504882962166800887153677880098707109842164075515518392729574309334882257303402393908246713793749901814848163072203681606263009716922644530883195410845548025004558563877447878625305903306708953582583885189406843550724294017062330739505431741589053570440294433985201597753538181742559644956575863982552106355777728199247143300518107452723022392355151281856374231662131994527063274803384491437318620864334109600426361309469676890384657942476465147715315780815149849321366425941440439501670885916181118488532904097634862112092873358865727777084197558988081881148694953525938833217588986190018832209305711463134334874556862475039186089355019653168883644302141468129261602336083334118666223767177530073215362991722221239726498667210252091385283544423680403540991104190804515413215747579144387113005267101645583295934374742016014277728869143333158901453861950824885692432281667060451716489842569700790491457557947351723744073224554663468629607051864158992069142522108588720685622428198788646191491207907438729561696158539124608050356412571220246029589990584310832591780116911800269358118264075789529445589020763189896117594372632046342220838834768663522683762878320168002899407982200038457737412292537375227723759994589240559141585123914995230413571609003091915304266498086148482419914906613101304407362296050956892547045823563592818674320624534229889390774622205847153724936992393736815723471428480827050696948193249963667210994358924868071328903496370115306905969064393314044586193774118852557312994071432690796704502540282572901083734553417757106784420395190593886967601589473657260097569953335972747685706101531458003651020062080623904065906799710994712046327581378363616382504286889927823458918274479469204058438751650286332356398017613934435330909639343526894637026041142228686759980006703056881795550600680168442478608649922069739030995606505076920861765136852525773224937612128928005998259931839103942004504943879025324573146606124126344038541448641432247488821441287960390002949139544882196630887546399160684293132232949148745567215460714962647266814552492570391350873427736763684749878604712461930429494268099128746560277378118189166590739263519122275081162278192151850444255875186208690192408667912475643888659079674503051696546899036836277381288009861449055583604504537873130936656605373832782742135559849242375783802534896584275762223840863022950890249922982493094922062787552784278160994364466743735367650051868276887861493880288264199526252301679375303162281144477988491204727125162891356616840071061659369407370190269962687539242350696087190051249513178309004427175247258623259544458188837221846399536668347443216247416813820430393090818614868111397425963574311305172560926736911378199028941841876064127935151057337800707420100689569519389543382250126455361779734812292895384037121350204980594641251608967204538393731268484239661028437104730989691702182423419625590045733564896430723254525879938532631205229249316331415454508298705125666401880251887378263774935596590876043779361855508288479584837529012087133427269372411513582494424842473007515887313869966778549169827428877129811269666352967174717585774741283139266259503756705328647766412055132489414606625536281634083489322800598820468506434119578722008569903038700471876741776197593435001647868022019454485643528545535458808802538882973488696118978247621360960812052566643571786752673467410682202567966453072165175931690162585337198189755446645050402888472035333512003252790158447415497900016906855460406955753270257241876569612512294459763509492196327294905379411412014440325477096581979954847386915854363309245298899118997192499091412501515300559558064971706378474109217286541773725112641127976333280896282186146106839996326338936788294963981845402961957494858171588930555936603141695328290963016477734394535249297865827474185743255397910362815333216528743877036800274812660257434443141016515333081625913297664279494357832737051798217679759637871998075991741784139281098118890085019309900801647602528226610695646809166663499157504330591494544210964056134144246251543483549737673744887715439333073357002400668347143423957334756353105142241834366591544230815321904648581739530065530301733351711693616497064533430876055713646899747693165671624069557521022096086038418783550847803174632592677120416172611186763394677837453332419900060218808390747614507473774121607119426554435358766978647926420117279947015328452280611586042002675976542515147738513041366243095688238189656731493717197075015036904030757026669246200224760742957100074631838928207554997456577984908371901870306000898166600203578087723269551503843761034710592601347394539965325221571458203878966275291680008029637460161166155693718116622989694611845044968654921027930686721833026515716609191541574661862562802745570729718424506365197769278352807029099590799859955144231665369943290882355581722085099711551433483003061160917712259877149875040873624317735210225188254462316184092020323205598166935593579718457634540459487761308389755676047192628911547543364465907438816595446996908839834387807208200263282302520326763430997878343131763383660918223761491588033607253095043134280109539246342937254611961750731291305593132040636491160253838968832961566250135688703761211472182762518008041538422603865421991957383477229842848745520989361808608940416500242461774277389997405468501181865855555456055135637008502636662130706919445824793488634491630068900813264440830075802055817444586868071294640372152429126857984261596104242128630297094284950537405278955426369079612031711874599225783186089124924275948528907141804890982174132440872848083304911220693210536056844577704581902997613397100359150340207721840842737933185063839173593178538430086860774334453910040164498593890545819635057595394544816471993980748516744113173020132494599421033296662007108925216201364932675520069965510799244577160986722667061786518587927878466300429469119454390444415475551854819736383305037088956244041785597050971631908526147144035651556878852515873613718206706749628469880410556119766674178826841264934161781207464138162423710197133643366075938778787531770379301688273469296679146481860610057551010297575860686243810108623675554146801821808998271295054912990615699266365176185437527221254374050307841591321928107593483066926190341599652444892260506458983186135521661302094168652212048555373112155423256091557278046696460440658229886442733061869589590077608164800979222935940076742197193456102091577169622184900235430053573381387590743122172629120893640174724669930751896283717462292474656796748869952839476046128893096010796099292435495943040880397392201401014192502479580466112440047795434290509217879774276013674047092239647337610331265459587818083270469826940080290683199079839976562141633518136835450596189063060059019366939328214300473463228563831566736952677600103494642335567001394173016344747605720006757354836353126853632439068048741190644658671587166549714187346745549368618909675481639810259009544130109355109451503887579883345302829864317681593942649208099108628791955842816494305286233527767617631701770729444266474580946167955697038315488489798576904742962233362520345006759499289056199856591704414353592829746622447768798416622394264988295625038442122708886973794720017809808714468589010767598336251686921436701840529010375418522377901499194443679740227680593396005697492757471193131663722403464193230956414159935902887087134636352294649807635723001428863283490614545391323813747948054667488716086663296310233823764926912451424067164675972544123692409810614942590340689295212104869232521378849358677455987672004998790435701074919094937959521224301631913096786188434096232597785159345882090935352647775059747212676870555864275073262987622824891904191105823788103233961999852018619046731474245169992425620051560506925150296851666918435368015715714753011647003662694888026395484878162094727621924226216711807633928333779848904000108321736455533228733238867964947085372979617853364913915344416670072616573456640032713578851434951085493152965893093870735860180302317570048497906348593266170242508080465057489681744893700143449289732949812890498211557614107033824064696462602015958948105340549170606545948833678185820328272297857605946160918720880315890989936238510745713133120458986666497054120108768460670184787791706144684311877790473023127540855482542524840537268112054796004551110020283746877338867227412835777989634413180637805039808145930020767604930536833924236822971661834715506811636483025097776766724900181471784370951929255570728942988896692422968989248703912954974606445691174577856418836456535203547788243262321538161387854784465930704346151381696779083653189116161608796281426714405163030321685226332850540413632404152213042400401245312602941905832893106808680516312617872929962008267174932615029270585255951584420272534329180395068746366225905048338018638487587150518388107859377864036616654588468224271538904133743796901812964129714407894762852696542122505505564730369645355316858622190362025269621135054954993385469826519166760836494926353970875058302399855465703304797522704547437567797104387938423236939261514355158960928945019528731580729339749444634816152888727564306009676598879663950689876611891431300800775432613908098491922849999803812415851299109962417564563222565522894375058066007162310721742892100560333092940459098426986058438587142684799448330736771913094934451561779438974264484140904126893316907608926664809632497530200783567353262184380403717051494980563427712823463460631597349128113263960271753579326649343864806702973006354681102975009951569922591296426050242459886817469368533998292608289566706020074055513714977300633588251605597291533727415000156754348862993091490344674938750520601563569559647373729672901799989617571172416809424650289661386642352348358764372327919808705797230626796883744412116742352448105317198636796625711115239485060121305232222235665770993873484197051408805721366610286134520046779049802034641385981648791326522688639132593497806672645367731387366757616431187824170168695661691110644616446050071848398824560981494751590001244864963714502175219479334223479447361160941881006201522287068099521211896701591061942254043591167807615005552304908563318619853787103461562780676435919849665913939908532187906250199802886021237152871566115532775246946656403742384435490529384102507200337723711782648430212534181457544750016433805520284767666672616722165819488466920532765566535148047534289560385276162408661633329755635783366281096550774622634191433014716926577498066437540096205282686844332025455737968792981799614494420256804923666985713782216722359060776266050101149111796992854157952211714476371978662788848378269621005671702656559152752902542964275163042721407392217095753983116140985785681994169326784951181631948446506023089176823763513163758869531742983170558957825529720003932045040447918748610761449953030479739810689629285971531065786819328151731477329604075402631244557206797378627053820355209199082540298139644002463328303506126704801964496393873433609984035213061030814609188885990237899136085932115636191310478832523152153858852220818285136536472603063724429395348788002489757304798467763303100493801824312877465996507383500914630540497297911531600944575709836290407321122175835805929785411548295757419659246544106927370516525430818073216533570415583774133362335486737266200670926693932208745145412814644458536569798094859658243860352460919953747453836230359296219752527843182085078451022891662218226797445610793342436411983903733892617516930051915390613703760085405309697383227000755780976832932103900829002890118865463483948670196164783917573467334353545854476960840459240931619505572791675293115356403107831695814231715673147448349077358364137413759711474843612070676894412346346942991952605221896285015350833978146169497336958737801889825148296514125644019592424975979867633032145039962504625874956791997386525881183459625178420076116496468124725795519244246502992321093720327108958964703200027367963206121675946701909815301472406725971814180528762969083434638012601848052717823056121588396594272103220975892750953283164229132443899837424124210753113574575367637054752271518821920168442742089574794545875701072181622958459613819390283334399708066106297012249116199187051158536291240971474760695259855094989724474843763252378754531709341691588734982533276481653500622894214511546940686385046225567039969535809243061422440722749072420135909585867261025798966019377234113821341119521394656739536422190169040909688215060983342433711639921941145494592607516003053726535672933771541979938211701751910244860474767017119346330206885742277355599980490241021547183125765835225686937527179422183092815074395719589306754784783226434468870767308320229365551958357692252917028562357700757403828356420575170845518112943567904667610031424422748649098364139166795451457913366709068935171573638715650588117947264270794238324836061476528781531417252729271210930849127387939405104191810816289038632845318054724065486724990325875852999850592355749188038022665460506433057384004796334034763761744129898334594730685871758309017305341072435680332489999668994172840229135560773624775181180897959985280656697180770748861587840635796657009530284123816531348023050553112081489642505941883045446826565370953869942379912790218767127377795056438698470303008158251186670248926100226691921328205989807497521426488812397862762808863208389873432482983558441526184867601675928477198055897605438811032532025629031095520041104092578626272894253212516938693856135781252209235727207354303512437753634890574668064187475654657319027159501817728240600603557594859064276344634337197470915694551088408524643725977792618036836128364105899337069028732028867055206606960465519743953672754880964508371845436492701951824857128742448354657203524889270753532470976524796896851240190233450196837480246424583432460756529554414922220701243601391356305058343846677121847671838195432072134883147744540337711936163179564999306219527296001909172287414668771575826397526827504480171164674799802557904827843880181692485968763198280044765942389155930482321635633524289499064316267169179695773825021372369367108354404613907513830395672514514361138242521480827829089420763027613850181348672413262934628602287958502665070970914985742879478874043739028925164390275060405920721980824846154091400868641600566468373834716356430800866367204091316572694848430682246870111286403987416957744874576669166804675760217983315813176874616821858407621635465951210484219608421134145517687359654781829096278323882768679934950721523958973972856223337932741160504782738689255026416643399437765844909053350038571006688753624806934541440179987010210043523379946793457276372266904748532090971530489969959997209679301301679921537065060110226912020406435651728482851914848838923303587778019542396270756268097487628389789331722543826391822681418161353829612704132578149445223228778771579242534217063668141729763159463445379470729862231057360116750921354547966386922559683819017992995038408351596142218692380162728148478615159110014844671193976563123866729407919754535004460921806913037498358141083820653669558145318862771818090021294812816414996553257304660748830897319131796055280515059367872239197052520654142400582291583449759586487531648990808940048250751371763661650088857430222455044963033494984732174556913709796769660566446130937278130971070459000157093959792963153223861441047369085712546593245967584878654025412631390126416680727190223351927326094646843752333873038065558210957035340931524911378859275764232926090291447273432652788140901728499612632082166708843214318400447301798484103392527657836020503042308557209492142112316855662877810496181109907469821463172289286335712915687385668979618139057596029450077811136680479398875294471995535512470809357292498726508302807698165888908303586545521052670828445416314792895218443514388027413796499113996026136165117856924383592946331928969109465722461078355642789558120882316111471106186531502993283218201122449745717683820825006297086512953575206560103097478016113236605361413773152371331441995689146836817234496252064465197465760059401923067957084779043715037143434547337768390041641067047789457100471047654481277855588665805719799108968162485178439122313555023683734229240165395246079314717118191302063959460161745306356331760173160724322190470708790867412074475348946461982512705364928414674696343581421465474046306874141374038679688533388528224139750723711714808692611342383792287332393150673971397267009126864967331008706410411690562516629851904096938690196152610349385764703461734299806631449577120545162769179900361017658854304425601844654757340523670269028717187399038645000394080997015679871619821077361303739888381402136377011586809806023172491207627226240005999058125477305793284571839301263693598977895480209962776933564265338746139680416464491207982311403629074792134685869629342804880212353557339497701654717471115241260116919821684604378753046237751318007572944739056573596799176885371603015349304810964313148562603694623813873716458506051856088901796551336785432347456470198626578847595704396245769272271680981388621744719058747416768974953271241624601600070691518965908313471712283609458753994563785669453070000811579100545404963790057361536727928786867410121797177871352327751171716322982765861574044253000362345439395553499954600317997503625532589518855754674385575267212736584785644668024625366475752143115507806472066730743979733540300803511651040787331453990770975755364926300609266276393444119156615042674797449635792721490736845274022908390605446545354811578257299972138310835902857900428941501068643426258433263013845038129190821418528730796518347260284562365689454488533110728628193888580235541178012112249446209382945847700769347791537159864694431068733315378296957038649910854597687882849933893186312999112176157598569592223905785722920532408598417465710171513466078357460427200028927327697668352527840528870828947196199617825646258490896233157481942413699756948312604772671294049799713881409858900658442087558693664518495200877374576439108043220580405469188432442819312252451751962599008929486721125726673605105625477086634056415804623564510300911684635906340933989316141246048854010314443005732566238134542140802079632906354410625238242452737048657672922495262838057915114234701356581380390205825186241242662776109395649730716960930914076824966299029085127098465321227733672314608025455461317862523082340690741688638379072998635250995955478058307907353520391790552447032136175295310339928904839369729336830968139684921054223605685426447723302230499064044471984122298002452545093546207053248466026443971238568579288516176120567165136934976898844179474769231202218010725346211237805074189504368998987855902562940450662699698628180853196065117856611420713684248307968157419333260565181201338269727566794195003620548572741559182363540517521632865501569065971229460865492546684449075039121485408313163976384653777492356610425889077051037682515449367587228301781806799511831364811988486127799229943607530036819668838968429008959866113007089217466047063424016334608801474990340134102846673118208319009106745606205935668834685739366989854145622280400443933771859927441608344509484850882583164305052011613487190223483962097193977978246902677734546853068276084209275785825202423797692220414541588159198488229735936911033794274614856655405163413036054064410868917151457418714669930429643845431938522255118483525894326887527226862114590833641773598905841225909311976710731504006570394501319471252543504954396330712241345766859049735419652117993223118862265399006212471813683826913089887703834636888514149000639405922837911043517717517056665152999580227637049325885800394175979192112799530954053927462999370880672005656384794332072570407800902671509676445654147835484179901691575359914112976904975108461323082382527601570264148729781314307972293458268145057480149048467568845469482482599291249260718980067527577110942529171724840009706708337573960457877805207588409316346557696216274607919282111657749599449490193573234961515849037834364294209623597560776703967216026890390174475814033629913896993015089184256234460340589545383922867350643435726317620522821312651165431568771750329553586972405893735731637716782469659759348664711299129288705012769024606690030160085498012202219062837096005650036276324901438417772893325430186276209488087714196779295405065070071248309613484414384858375017763903283968048077635638421914236377189137607439259720691734621501184410423521980317785540071785728617199792579471433596912474062183888537140639942327731910083579681812592270712986158861968076629571377980245002659044591039647342969922304468339309786533294177549308882926171972109021876498922170418269679570678720409923118714271915384937905627200010359262175280688753384318312897401205289333080687924948339777863482457157766994715180519000153742414111007825273412328013317199175895764027148754577572498713515548726221818384777712521666158652729850913124131004689115408145341459293687615482959890545856155677250439405358668864814384608693007346144194649651985355599819529023299326765618782352844912418430415835906872530899185925896065532470138994196251921482212037695324377314651286042932592928030895805126712550314154380556518785862367201909027106994076293274355401305956352299507687083767344183918935943596362614280713797304313419094388979216644276754118062297425033601519647721238403414280850630945260347026648279611053156885701371725415910977809964466288416171547431519998155529112667676453963087629782494504101124434288178973645653269637872805747578357701768927623379035251066569135718261351852624656118719606455824503755450786670605693460500935675132882027426752391350820251895160741056626882769780594899962700472865557070060856512545910936569634164419835571319988707837571666350389506924762466686818647893467773832037297573852165584258583102649444390848470929590289689335683267454216141242520044037267442657546931845070799477769318621505326168034891190038698098828230677254646416153935760519699483621434734182766688877417447916364827404596064266222528664584706417433246567287362820201779570798008400492601905102701128226569766743987086283633685990542315615870865949335275716822040326029476301862072801747689335165018448948994397960560998046154787413671328521130262577198369389250473978960007639783643490299022996769019756318724400039247423883849955558840017151727023813602025812307050304188000947100883157586709853446796431716769218005428552975992788370386403644384167095461777079121086873041065626972273998978575145031790246956130439723598511988105784971060061777540193216742667555059081805056550854550967203533185814202123293009787343075792931135321317492025559562035095541247177172271891442757881235191319173294354146205414895387362177546253931140984323099321844584916884286624840926183173242027045964745530367993523530189235179667592345842799436503025253429301667388617767999307284020390462772871182569909843388212239762205726259279731477475280529107149032236814761876499193560461485103572142955283799877696087801269362688733975894771131062356316869995967821821582319297318180596578381787543649754048194785359260176177829426368394104493020584840835677021629491640914662620394922654246615873570902374817587731094688885280274532129363170246066590383207239266165621482504569147948054108324615791169150551707168180013533676293689550001261430639096971836610568584514890935782885161370743665442415996425354183954524095982626902657502361253743581529186283112672656982314670831573549042851479396761680876844299395660076007655724578089465141493220230607339717561349651058276858961950408731247357869706381916192642387512478097057259014230681941782861687500040185414637758798021472458180332962251406717185762842735923792471547887710990681998812578264669533069272388696716128168830838648669532801784881410556193047219480878226475772460521772669310776033857173491063428366328184101380855089039408647272092864724921770600596428201116705044991002770516250265185118244730750785062599510324703838622711876754686505325065967263588520643053336399809757500519350857583774020424229504108257718307179646569219007386635700715532276788586723690672859736281706615318589230589888318876754608020282199408852313280188305883363744824599858967196690183785878489041608860192589395377235930707683173723194941451927494040843739529756499350508754388688342632581426703138262891248576735926865627445007799666892187665508323558886423119295634216908492187339828392363751073007615828459685509711786856979213382084369915297220631280506488369361225438719808735779356455036052684454109837416143032414718746841336969715634877629867609029713232060110065758631278572151633108767143176642088946895745623523685913454692742405592238515863221662053043995327026383923900607560021152010026662156050672987728972256145401600968970788484225957144909194846820239982929033670463496178961382593907550756505728120326459108895384182765938902115400269121198063086485457554178523354005509175014675168903774856526196445324790762509521609569640105068772664876041916439291294896118791214637139312796042776125904723387582994900799055170973897725359067188129810818363129658775667163672592073610298952003707386903029890820674216845601009562105246600237253345892124615707903728698187078123513182232946840139671756881361915466223148699605717985452645728808210569819716040281010425759256814311490522217938536952630641692884724276504500857625132914413128840358859459152464562260031203776687736349197057167761591463528793791743184176667627679683542645426011693301097916424915673745618908384519152912191806825220089901876266453992047866639361709363539547649849303034747254329892245319308529812423018796806114231164488121584830935536971360069251889002080702278853280636731602964579308885162667247545659176141723892138670809582185892823329290449815218800266466496222219674685538978260263947110207951192523334774333688961459347209194663415282289653426336948739948571114824975901661669695900981613314601572463368626498357839021596202767171343953056471883866314653821227047574855224158429422064669352114523754785610025997940662320191026742774063390973840834771863224850341854796187519134401319959355201471913836469989251336003573849911911540030129548463751621858032829951960325561945805997584995580489140631502674645128918145312841993114195847997508146351215566621089084843171496650051706487708978631306320151219653991498394243571553371458501338443294570263788595967278885413374933829195119993702136416278070629283941750939425007021300552554661439419571722798932778788882653953970804575822428119201747665703510058400001324146291801242026166888415131246564506665714024566570834170039931024129358107345794616551998746884073125565216670706039493272531789134837872696950509875075423856383067539787193931404752831210174632481247872741223970890762613219490071833564787637272079744797595841374295388789694090573172454639047754767341429555780508808862889831577945140608582169655198139563526474451557845368155230022039058542209349322662844870061543632212249205256556342888179969555853347966544789901969072876879192590092784616396110676072823574402037095296480797632313852598893769539633210523001303551266441715539049598522241075009925241951905493004427464287050397279997983405344254269811278998305356098018503088663981280632156699214891987501349975292354182022822682500872645409191611520595701825868157814847072935897297647206218723822493079860013697356051940223184383641550511914327195206737057853309876183540433727873915638415723380676097755284751362178235959172879655823737051635934206050558989699953667335085327202486147792943296119846926095409388225993469747077660894021418747968266898277269043240810858776331980014746028934014014602386114298086841067082420740376505535228878719658729132483481869362868341163688596690339071965228252953732106640775081908824185779491061038029634496793484524347102028187986107382677894726028656541546275337495205032433764800608641487438122697706352262864482612835232130484226226423495852015250714280999421576936785215553330289245818877724803185070683868864819886961051228785380957008405213626031817873110545067324523924581947564838472798592780898034955373141664365170941496712426415979999546651526260947541873027323609423248057568240941726951741527362241728004332076480906640226982828632445027863884212249736240642229408183006937504955289455838716263771049156133478211747871331523815614465111602334773711696763819534725282881967836594482091661897997568132348870015143719759320359387221313430804154212237365495560957668300621838564608818068830852681004884767423526409505462136818392795249011752005336914308043567645124682461618028630164073817034456982486913087921573498641440762607998579333657329185582232716765175693042227453883472193188337423487879189577101059882904269756310814847256256947506264225770114061879193921604701252139480862211382131234953582682838254012294570715619015676733178108004700054774074643911559732589577880172861868693439744578194384305802145080271991918554455157795090638781649863323008308988287091215868772298432145674088516310350801660417047562135833900337292583040627969716053505832976641059467513625550813589205414499187596703073399222430667705574085582023594104781566614739684780834958209369056118801107024870773741490920945078356988262585182136016303426512270171678078690464692882917517637644529100763438029220838939711332802264214248514930108587922802126056970026714611389506238810667058446551966647035549502056154543599657658999003103009638900898188990374202642043229468133464587522406573346139011803426191587129015399546051603758426380201869257149113278769608087466422411052486309835761083928925086207763111627592876636379087060629667528181664396507338296078898815590443690411349026210799185256808920554900153397192883170263027851618716879621495797463432012962215999429980369956347340671343999524175520282958844773021848771121988287630538867731901633311448032002972438680837129785315993334306573169610885274972479370849435250229862556402282243155131052679582387909845993020582462417278458715164593297723575220099206917625047919198169952884828945791490577430651667214514161246177746111812930640455036688363632808302010150851145118220499019017736724834307176484901035484456679158522357369608511950611569650390982328591031613021105055041791716930130602144477140051236663366160900422401305016856394680223840186188792236523635596371733600044673186891680439853007927475818137392450330226775258694515398729674313953428868983566080941216417368504980551285309817117987932287521203066436855291097161672607543126569661480410812516327337619766395328846372054727817068500234526962242542810855333514529877158231916190216738520118803237514496866982409418827044462961646897050497702574186139826422812476762403807845320373277196742733590525229254859694286457739003378070656911714739090446358697147739630319050290886080782966372814871562595344020163494562090194383814143747987237549113623658638115634744657259473214638171837699102391839046742740652354672724866632178565632486042242741324522246919953516129592851424726433787657191373931765118686723767966986722947457769951890261546467630869832487584198277433041797055095632888994127829223556523475618601778887592201891761696619263929744463158939653643322812377975600433480552996895833374174031013863879567126144863602953782158713734177799237594963573049138508767869726235832111465880541584879061501062080487013355092987785043279519099655947204120420022932253719341374099868859264559122294630883669720923705779253056503795372655220855801450348000800744625633010549653452642361130354230413994560268721904001190902720704740712158803830427666316811669089963546660440061065257483961171646252558847044371580329305204461175736871825095216806614803929358204992659412925775883712009562415822473519456652049183806304558284038985048528344826976339063376639915652415000518399095771404034700626400245731582691085299627085027258937114083749915983706808257242636244335753093555508255593890640305905004554691743358432316827259155124927654036174413400969114048426979409413610960159177969242895052890342152320221579857189160253398699645089038968681797454242480665065669206739674306265707603826176894007198538559712378136625159540298126403526569306041770012611886757637332313524286213880488737531127817566211317346863297495290936746242085298315139922804944601109061286711745901031556879609013444433565518352691761250448175867459189944590791223583704220978433097825041567747052080386113715973031061050719869594680518859325946659715498486844903511931752369588364646192280552525417332925001301321333147965549097030906970147008842657725418002328442561165931194233590374541431762432928911229926158215435211423247443250711655563013637474595598470225226296037996312500110974706864776488514462045252903344059335426360005214767857841475072212680607853005247836271511762750643498392872122694347891320159584790259203982169405193169503426594041996629134142709151019600317169142290242447239487774685902287568926644914075345769000264387689147578571894926216630791993125875520705516306961778389699651582156465228842658750427626380265011887662846202508889367821714029754678022042705739935347332319212385507633641296381561879028861295536910184332489248586105433348980293356450179272419406765023072945098560031077628976336276602755326218824699273829423429676549950753415428701731261356171989806677310887511814486409366143904545016896680949911680789578821849431916911558545212209822919994120873083785446735287199646511076724448111891025315506019689204927012295460802554436299057255114281756018172313468907466750539083770378813871380551173573465260826582487276131743709120972108830823929991151072133124135667520959726411978466476584149814039798034344600995825014450478737976469896194644171347679912860628968283696880089468656320708895063594457941585867575162636894826287968113588137038089394361444754713539884241037956796681969772655307127595172389435208136857661481244086475516351290638737027457494161107095949289024667338520655611655439743203691692408566622188267292613828585701926484735367404620890486694232047512072950602498978527630457722206016648475120667974957705359520389236342749227523801865640557223365137857305433314151143455415682210250719786577502667214087444639912604962142462912043947967928296778959585831318244842399244473239997881208708458065961815564528571648449774532044888305982491665279753873937521839324906618035643103010249014959119604046962443178864667796662135295939503058651247212608164781325050624763589372362630828280117113396951605330079984293656330936189903907839084425734667025569613053998490329370653322268823744185287749534321864937682246292288672328971767534844053766757010339838428266078791755683347875811563104572179069034015865141191080253437765809407515651879532412775276202869743764426363961802565993633667840172122369797944099413687082655711237272968363833404519076570979467822642212207045125192823257108745782380605800857823030831811685233988574633576758742651756261965527063603610457079621087930779752902494695781140534578994231606002461319157397017182785514050238679316984850601918308757550350611848531664571351689063052097187606497396371548821257060364986288463589392738731474407758507408927856613249183841611046206760755130515217828587852364135791975793683190018607016083929580576057969791936378222615632367442116350355601414324830811972125498527721598818153113515770501490705729984620473113428043046588086931586334560870737696682115583467985894187961412439476839182127840852017359516550086927427198579784367442348271011295156302094783511124991412427997348024896634060253356695747516312296083602613576344805429096836515059160944776706429623803090666357613647954357740401943607960042093444384554505394436921528501319989091171654315655431523552088723309760745933672796774693835538928657651612176848615105308848355800526062979301425469800144455194064185593100134043955220548754204667199541930916879391723260612506894896401202496631526105052347526266736191515534728899174510419818363080906709301841803486440901989892172637845861476982034140073613482882809431352261736027263793927035309977011036989010881099044242103983294277145043685442866414242987210180261376933053347604759884186933550004648214104721251025659333480901139313652365413915095792185118992128939495943748436015805879876711110428034848706719374215952564981584229119037737816726403003831650503185808666099158750612543603687392742525428947605332406377928086014048615381091778707170234741592379129174591758791538678348676077870476148583950458504032656252328849587020225064217175392070091274717237261927107930014805803581546962023440717623255783228267006804398842825925574423150564576607900646151467892442080027759866658592305945240156841031134261166996779097845398965700146261747204187304073627658651792354029015231359429610228309840861276453531517647453741428646430760602117920335237344879798498721096382798343926873214666886985195629204051133848569932603180480647827094840275014404690981096239078321097664831932406865332719527640434259916657973486393930522126580782409437914532355999413821209956103925336929514922886449715845975261051083774057372158170135707116477616763149734002414229077210975676012007121185135648150735353864251428022591859790910288205836605966609868948958081060458322704669059086558155629686439192414594292373068096698067682234904663565124594976102233013756413010272913223003948395880327373790718640678842408503792837445757601134636801746402499229867858360363108678138110504691799721520681785353650511208985539265300074462447355150328947302358667961622475792364133347599347011375232444965136073165585569486208733538695338680668025195245280772211569879487577362568754392522990401160809903945402401252671016240193232213238913525750210636209620879690477792155646338021475716745531239186818234276867547500449636083272423621363325931154222689846394320734871085181595004711074812837613840753828025291055170565129474967035797776947042769939173056922198342994965198469361145397197180962931157663882893900616878067219026315578015704023989825671654701895317819592185809420882144494805811682062916557985506530251032085499925850330435213098781586087708741639266498797224813939049759129224340350859442463472002539009849171699904084271817608840484741054600482593057315078628634553557171912628286631508342349852216840763103022237750030588959910116947696769159220199527372093551982556735801325597484517768332378907977151062884762206264156984050389827118675098803016929121503227825640849158164095235486895551302501271338507714454360362819706420449574942175337006445858285810875202574412258118623012719807624839663085902954606304959516622411749032014667911170260943330457224583682259544169532592627380317056293797134416911648116812204794389181410303078049931893797003435169291201831152868818400226344987973098868965259326851237280784879599879844413559453373966914979567610800708314599462203573584470945883297705592447461162295453645912979839379168311576844556593370803072749831953701458178652482696241363256457897758421138751420980830900307299855085828309918935546087522478659909450136408491497107339940148649524058203439675636332467690064022614615782734216072864757318794172645288138934134352818517742343723488741885506416878087195632243527861161548821534722191555053144659960321490124136633099256525945193959281873587712768082443918600301065091809593178531966907171959599192120064244848640757998988224746268955935652689912562444878537404220024181696345176631683686237248095326349476538872814350431914736096336004294752833821382609366653481556778903758877636909839626111128821772234471455963980238410130839902575439704988080557407400910202791798523086018096463891305293040953984867148807264409338861583303416311363400282809269266136105157920268773486261371380428391683743504145844577380471548154323188780766778710030937885228728910087283394945364689620101888187612820770445284921466652953936733075668745408319315132535141056931693177011834131824668766813725055431514856216030388831665017063343873440192853750040705859870847046625335544102447521791363068958462574229912356269215017493424411652920656888300642458546830323265215102644315237335694106603829921326217253613729589305756701852874127496278306935754791515980616586507460226502299887696615740851888090663887668452643828773833701280925005705508667065159505769556019458877044506306682069433260146673773368942019666565661139656804251644641958270538958641093486017840369602101733778570268629829924040545311785776710089514508296489178354851823538373965226949795631135668547244108096830177300756718059089863947793048768879691168980046783016331280857729527580148786419244723980825698467513674835785257345602416366891419188998105577529240716113923687422500088419737258043391612642707628936756044819962374702034459263103176191895696290036546359745911285502159169809368376263634472494410612477035224090923378486038596675168773200263758904933801446803348493594224187719835774135486194552145500251175705785199445124257234009683116864331108760687512502801837938659039272613925605782456743211008776402179210711271789434690107928307213764058115961425574322006873035772502934016525851658604544309211978565655462619098975191734478925443021451264178484589110642174833669590999416448386472137280184229208117691079218124488450315289999490104965134876725231429621136034759970600605860967068134679602186653710688240171059780529277337516886875038183949084598509972613521898490863096436328344280111777382140077287295170580756514800821257288288566504080096940295061841562643973148025023245766076581222090917225729332997301712678134448503143931058835894389435470088074534296447887219151550672650201922395346396522407390795990312130355126817005752657316411658588357999628098290257000013169086476976139643106636523279073875763050898324364039970334869560988859578921128129031601011991617568423956705616909695344647634909837939842129514506226374971906406850648950685874063191614481154002494090399155680059189475348271672288757541771599401873155277867243350448464207779191053123840038509179182092854647425888158477277971947787520210854523846753405305185932960535303892570895271466491247581346220413380858080658901423770245124559148502109652417115877473808528163629977465812509612106193187992051773505315225838008544669035009065448893453344982219241393633701527075215322717408796374825882988221002987167320859820360508718361345003293612832474578557900674143633840059452348066543143593441847358953946072483058866742065196390799286211904533726170940317527306826667292682999494103484687467375042541711077319998964566310637266719911525219391299174663449094236390735559880180393005715199868774172755472970399490944890677223600137878250491273813730985949064470341596337633107601085093436876667849210930272059269360158280014358742817237901424450397228052586125927050878533773600597377246531903555282536091026605347917720275445650149381977310004454870691776995707519746209779854785136219757710228764267416912723758231885490725237209906598238927065433594397270323569142858827663384164186785486911676985930075544453124367891491281603616235750284168311668823498360575701966911451741782496643695012613673043795777352614077078392574696401809881547321719374290688723621648450343191438021104288932885739919599622452717138751146384281118114383679290240396391407400153146688444024208755124555344667639451636983485611740180616456965452284021160283149967415262250074554659703981537173628219816673903909972909366536985507024296616691445767977802989816925586039623987940135376951399710796349958209129963355373452063938046191394342570084685620630813191984478259720587437090024791429144849514177625022398377631716925171759186681981513027041017241275733337583724229979582608996533368467593772318452818583281429929348237694579364738655160410636224598029243398934822443433269070140542056615592842983215909952189111492106491134821710164520801590066053723984920581192977063372568290412691921958247508040350655616604628711018144675598463549934445727002816417876545444869833057606436327669590006710934356861946181673040718629875565939535215606569518643488670450716222531547972420246600122622735833626997760556268128219046195470361004879197533295310466790107826960657923991927844106319724406957293951614707062778793356928485988432681324914599882815095180136873825158274455873084391300607481405385615732991832496211293925921042852966724415477577829631423414123180463198575265047057079343251815897739024503774589585940271279209921608439127960837143489128084846042381097949693794771968683696725652448207333689126838712992897969955258490015676309422127643079010095099838568660039555931004039278292617590726990325970399708286148135894814911591443184091299591790180771816537653220556320792442665936353123305575663187789630144034947474987944156836533822132698587161467045786040871372556029147664800243720947907333819317167406875457671766121602276473748230448381955800854314699941394649743990052908726985018721102316503534485635162459758688723571114669523389043454508529785949779264251566228263563499222179233846937995439796907749925114440350911770486690272910345558985911723906799546987356025153540135610124221252866352709981329546030097871607589960740153067718769057782781356392677595769333430394531953917615478607554893334747845481974630860866853400471028413033353778872015948078095099423770910962491745410589638504948606126891425995995429524970686985579834256373186833720918123660826352753560028747210746539400179207962951608435439314192582121904257609395466938213696420813646434923605744752056319180813643844426859181809915566370584927111877583470301195706449488826509973896614159213833861654703404823217490707147641983313831750183447015715595477129663659860997279095746863079567332044506330804095740388757807704730570397711085181946345929068521871140078792520836987507846655288014944091700962589650765492840408529031517099867833504346611846471183342815990388659943656086983383261525385897774933615828831177336571325873777144899933245436382326578511058142625821749881456194573401235547187133381208069832948008019316286935565544231573834645966123526412977953069853168229436522969490476454450479827027585603771264702835565619220098837386558479569954947998510661240923034805845937135682555733174955204537133072372704866830259698525338934890753641885511790455583865094227381868984492137960239633930823728540028364545711106999834802001206505806420254973352031290738323980355468129543719373476556126604181292594045806589834173635518828607194848700639137610188610707968441014489533270414597673712148408197808418655810559311483498598563095055714950234552334172893940815492755295609112219461918858498011616900535036744529132726513761225735098391307983426616923273553602812699921250185145732876512244627420416364983295973643586374332839586814063733783127508193061301578552443558374367322509054076698544469109510844761791670220320299822267246460032696629148352686906492450149980530709349506277613975649332771850729008511818847445679605654179664233006599783559482892199128359756551374344178534931284910096180294647040852559078669764332768466502951962935705785762144270122045633167720890870894398733629000321965501199992562036307531034472664402163191445573740103296563337019061106365981244516679394617134996658283641545760167791857084713066479441083703019201581196840323538999619945797086890692995989651863537075222173834887336365821246998327963669610446664957315996200826342273394568252521695491470674871781602417381979091025141503891439192641231731853011228876093259069951513004006783215941628812312750511394166763071288160211527747117998642823655238722536134985773571860492364365485581087518971760919907257022387249180389649005751030189341518393620171613339282749306728140413653861324398703813427235869839239345708988144286610275902029968835492535482190813788433336262833226812359545697908187275763204544998033219313239896624937104049221208854675572323136030388256105466533386285333750875812641004567258843440878804588862925425786510241536162357329892040126576950810311241897490645928831678325007225204221520612430538456429011605050723074996222693063281418760705700706157699102013970015085069521216576975566092707334711250283701542519634073904327800048353936082977831928740606472103598983907299081904737257183771738479810948902817621884942469141895571493773288788285942872419434562745134821277919662057940289181737686369314136781230816711116649071148529760946888082679694110108534337264382148485299469967156842102196593328937696132271440563758798411394136512421449806749255146664195152513072108387576421889200302330855640191358796543199212075006409181438957788614243517541786016501406449784639936319793867989097967302744879964171900136978978709376109621187799815751412211408087324275682023998917030419311919333595035684571868716311370104610893236845648348933861666498779547026550030061846294417337914073549930859645983037327985714603430511890227959787269462251846798804579980807284718815927861637756199650829376747693422841749488157256713435469388042824401176004176783902483263747788959630085209248932156675270343781207740848880143624090655755227233631845823056570395605974589312238100239540224492103359808607808996658006932490109407128637726678810932045164769074485398963933520095467282448985687117922987478315742319903476240937188634476135836562205496944593392872282598992024328974938465018448686559867566295506584635003990055852815008271054897818388783025551917658413819441079955782449675461078891200396401332622847597207481901974200940533758969426347575081644988020643854046751680625663784473160309016468023853224209474755858508398853349426129149628636167713142211909922346287134455068529881358084889202327730772378676656446089096850562278980155920807858415771688570069004672619370088028727819100792159268189204895873917357366588795052553724649272216687018569367212037929477824111418196859310952962386756776658908135760293391040584720134137836400463778752745298823875965932019287290046999402891546618219109557381454018323008900345655667333327806510893378790344619165680110517083309604320749767365504399037792980958252348973278263857974008635497897855609592528260496656183701253272701163867462899104096170191755931276631763370000689943126112121238480682026063595062620303005820255955419340352547711178027799068342640883093961747284443497678814610653823725332265825603899724164859838516785799231647502675507110623465005051021130248944715411291885100957138984493491473499069133119429466332071747973016912113066023102806570608381763426094202193628622133948397617533046301306551813834578168207944805867444971149918286612258550376439783350764540578347587554045421688759329783152351066642112852273015182371989170387360280023124434227169010184452678123377726992855723575034721507847756725436223103346820697958499738541395451249359316579565634661841993883342930165909898280528576639422330288275618071775703754837934355924674970067660841724448797674291090273442378363607223762157711014504051019131142854743481393817223551831715519913019860472413195258971151904506207624516084162065955918696300306777511663030741957377292628009392273953032709439154329224820251470539282077677921766600019356859480407195022549816372747507425871510660574105955768962303548297721827165154678114817365571891682782588231007538709895773419752520384854561548956686754095856631066365947410856347299269235436319128115976456692355624904475550415056403975895339756546224859357770750847508577946728513609551827823425876000233293058623966152232517589891323216995305121409940065483600150142207731808293111264741442935012001305394002598387233505410409534405071295274777831700623454773288787173527576522436990631345250211722049098003631393622067694235669771862761170172490283393738411499659665768835916689369122110645580328236565674736427778150708930560748589840771421056895431425539833685811852973061133833764698826616696517093803645563461846623259741113916715595959359289970441403435215645357750213845356071572087726204761210435604741436113702705313145902424909793354404387012017196969976424552450735670893017592536945850198902740044798238490284245112601649159719423170536169250915112195271892518756939947803684345722249863399634610969753905192490147565602337004735512008543277722589084297727682380595358954689395463227453818880667421820038461957934381920640254666798845044042804702523626954685872759648864193271257502344843061177679494533579015140755269128709044080134934075022538398274646473028016325469847472408368045545186592888002751363872840256809444127971080578513172322819692113894852881970228312566532655605304167855880799183624159664937514325223949176594328402147447796278259798426176446232036280325687539937111950943035466221515027449942352289241040439120244215649446295762595790370915612762203022725585180681755807941250729313754441472964619140009666125373739158221446784081750607876654987708239764769103256394932037806277736195988797049418342568587580873652891323462238484791461798578248049052011747345221250217651407851090405675958964385788425593599267174791738169829119057465350745447868492741746920671948022106554534454797520566656377247674810806965708678944491035073649555732710301633313624737084112265793791753644812892904445451590389189571540209006105653407284831047449679528876513404883745174118777112495687818298880166861717069493807693280214197402133074018286986989473946328613830723616626900058833456996075578052105287187013807989913868406631105619809957171334060650147334897652889133178438133820303255108892726995464487235202437915231734611401728250136810188388337637771357298882606077638615007072588854757596020511960715426129865146237724704965224800898512742358669634670821253664921360692975733696978393368245922799165415213481160886708742287722628687573581688191115013553693764631289304909729459012267749167497123252361988254210097622395092200004682345972654594437997819350142483734349327487071828689008933867870577011508010840678321695614413456253573938063880172525961018191880153097711914320879808316997917124459770372409626331068671280493055792692304381383911700600822167544345882575353430230448344897783812870010785995070816045297138583999401439873075507784553153176773408813012787965599516175863467693882777298761242367978067474046261438443647878805395545379342396190035063406190021469617383065545538456429827678456004364717130907865318263222810890016625250504480077615014389788284781710025684221349721892318704114143500371248489832629143501808662653708584490299076347507212072176971579017783625757780201147801978599395443004231647340447587004116905394011146023130388183641359668380046822404392436997718068566911923267007892907073620329000992817317312230860735854354975100147822553761509627064718862734760055156936646408691678383454998898715293793123093731334066684589667887087033018324745554082381446257377836453533593801289151814854403073612593479254953235173864016189652679609413324257698107827301470543615806501226836109377075703557946513629494636647201341073792032964919868170430638808222040420995962252994172152331974453168385574879469724636970857329801407190432238073051227908537530647943961479324464325001361753484997541885599368343228846885237739613970468665971659584442774004186597028676691298765030577048423003060961438373117895035861721257204237365411195867309644992298154096361281129180524220973609931720410084721442992410476645373203614347099328440848712881932504364523238678277017880466616974017915692822758708072772089278606981705402005982990012108324424462281135994799917045112554051275608265591350833970181038402003870931189125396413669330686717058883048895528378678444311825302333350704524224090322017600458980956265035300242725855363808173718491029237833061430579175515006589761262138883593013436579310845502921976820448751613636857638420491052203697524472465224610589104233733553228832646447391717325326309381138966177704273499485312700995204825541336943934170125071621200305672738065583572200753845748662873969844887739332440412026179219673822901292048325409721210529245554536559089291399342810563607094982095299761887039429379427175292880392492769207772391775874900480733974960046809999999735562686723796838505678514367625830170646366650062234716449804086818309228105989848210680819535891148323552925124149153898678807356036437068104235534835804385296103983460604565741290216480251155402228140220865477060207881096980296700145723180949125435277844227011457768903941447474727577643217003922100973385536635600898728114697349599839307754846088637764657395783834261832311758991727884559788385101612101997969753381502129505202919087600657810804054997641855593087322426836177766658460006076947746076307394247436484918273796565594010038552442255937075894343259038513574396220545342998071420317793027800082038551713121439134099458891069008346455907223596400232243929609606962461847377234628192883106914312824524731626784898212210534363996079735844119675585846410133520951662371037772356298054278551809827969770929181155626770195750686399773916818596111230806091762001498667191921168767753716279747342820026427395096232790285379588181053590259557163835746117682356640183184480104275457056101168113749145256769292255386745437507517988087652724290213757264927379376586262669496774216098979428183972415989492058402708828527260386597494061983926325708703664545159897034390571691711019369840717549208811793667607782873153996469559411103435071780834666753441949747057519598287858018454132487566609751332256081304688371335315993389595448396426197373410668929080548058114812603163776795457810640481899873709140465934052152777005792325742612992166780364290755158011653530122149305005064584388424598211092814899348402551832907603111345352955523505625379750907449804143300331634933810433277932518322988474798182229023187454127717566610902554738900418449645827783119707259252207159455291686264142552230759567889363005000016755489443183232042242514773414029887022863043472592348590408397869624541528581775991377131524175489612798427247717062078922849146868129876546573206004449792255463916209813890675237847404396128117357408736797366194181560582590130806962572021556841569136656114897526720773221619745774261751992866795227182434550947938160169410794919871101342095557294120127261353187287192631088688479003769504681131713324692220770654561602914096079417256859333228867662644984588655928983687277865960845132485900985401285146615899347514226596691552849988169902905227363211072829387217259846207196030132213867621346707409753471289466317285567514071892658804685658091713225241828458249355703375582657243221499438684220091831337730559249024775530166193714531894711760233023322649140041091817859381704730549255657159110666251429039040761959673485078703011145669261754093592241003375260606370738749043811526107418200724753894811366203373106536840320700911232453751921092149957545336502337889691080520117006475239706056329319262366236293122902201141134590286257026515884599187983150715348514930498513573062605945283260897153816273282328529816039658974683707615651616745400558069898714596327635244939807497631864789404394907823943063362035459757931989407425152831678506552665793652821679248579167034620810429307298500256996973596875164867765080172230798272840661534885332427949075786006186875256686756616685209865904665753334480583103583202823721937937951388515631709214892327765024129792548360855875738810501464470287433153298835741478579584715848766410789011119666905374336865337061585443929148758150141533563361762211314408671255029960678819408466932191550258292964494471399314555176384419722006748632720236495478242878370985055726026653306154248192538700508477394396692449661064776157889155404160619244242689784578358221677694544544764737147957342925849113065074077863433459063526558975202594863337700503220627596773131085229566240721080689020322570006223768714312914793051498415292753056685732219799574540804015578467510931877646656826706456466867916557192730661008750009099396484766756268894280082599432077720563178102804879789019740913025542173748771972848840924795421352062556669705025395255832667121429693342506042096570007731887129176042570748086056821048205362367594406324494394104469425720526110054863495198095474547956224363441797062111687741553990834912912093618931179394275270495599102602396009138358237985450228266513896587808158411658729534081626828148323355872834231168992391323178855162310355671947104813764485877988719876066227392150116924402530065299413262017177795141552890834204762646514020041923129996879455163628699221663494148652069880028717068003024923443103446447661993457752195354452379585774997876040296219679633669259947127533804800722883148897966429040880600740715940061398380112674109413326009877077698521290853169374754677622937673360379632051000635099292683944690956709517286105122011543314149155039949424704335987410209151833347788622483145072447199913503195869903142410787901203546612917346589655297996807940943927981364165893391326432178795727748936724923573165022746424408222128164862944327438407106505760124763326571183640258332567464660632521709411647757960147389056046882758596621858899238531863408835056193345021601074786868825862980287323822699423022734586856678684174228284855477456472973707811732289677243308362370230712937718032138694358843429463973571141934617324926325361681912247964062588486638262140653585605377652257683086175420759143085901423324132301731378968583229368865624911735293383223365408290605084111298792315874431044386548840937606161056457687334226212517495688109796306934586166062567458471905979184223093569358399322730196776635798872896735099710971233378165608281139661723276659600659421925155722339055185561030880804243625642492912876232536090258914638814122312598510341634564830756911453364076191148272486275225548671963291979361407624328233081069937786953302377195055312433297559407124739337535284237609728796411547826740394360516367087555354385578347620542155019244437462172373393710906556865449836407944003731852649990214305653991192396951654856400608037506278617074592176070587581806684380915867963817961585850278819432541481183885803483240923117149306866566504581360496243349704096527479503093118634752206445402720149886145926617525292245130491825633318034023628117638962012162076452304906567788521765581461895477455571266223631450888632577660833982100008985296765952189804944070437774256230601879780501071497019494890639593581221250910202324820865970834592177301032778070198695448074331333348363924099385679571403969279840583185453720334215923115200690347534401331083798965509203538454802498832781890738815763276231049320986171960029862884137411964811996487263216553238415358592912995112750661198370629014152950263524556743643627686627974062034902772191117075766402675817655072958605164931723168234554435739644674827239511464871302735604466137422304564133912720858115595967936968066896652897225692071365502964988801381444817164946000785065845396899981004530898510572901793222711037800062006336554731067552254515983090667996830809731324914399897998621535482593305347911950098044419441700329459654216154883289441231774345047929601776833592329881407458643695274476166590168158635017544750727284765658483245885324972443964609486594621974801020198735214265321564354153592874929800827740269732146217894642826258820789042891969812357407797838884884336478165902863985976285234464726976985364590653166271516841932192280193198213927513621020172837603893343762305185962003539323529791697214062941755652076087927177170083436653858333414139800284127404522439312107332699879794622015995985987075034805599580860789256690166433613160348905003905692097664153469585316986751022923491937367430595020618606485175674167633704294230689382659948563108269056914270089488697454122344081133606259165570678807620910635373410451561008195851683280083770947819003083928276097237804177098670361468340182438208684152104095822018361280225903015347712511062415171414932230753059839726395724080879964399600948022664752457111597011082631174054081776559667215006593643105111401742154571605879160840419889935589766598398245808559289912001117922985613595033616961047145516302458107108105909346885531630323614901291548369407825235549544027907098183706397163174774424506668231565666467165373365847325635778461848832602251291895850728441517706979636842632492036754886030958188705551013586844668143905785301410139940893247933069701349905548279585934899189669488288299330087465595631964607883764311984655224062192223647495283815834581879498046559070096754622416236768043571711375674822531890072031648887759811273594892811517755293449174482227300810058376448537320193327665536522897368993115474530338428194047521903164983454186529794720625227509563912438362157197552916772077801605804867093011268195389730234392657537701315067076040543927827174712997970795926019385965455061001694953591293851109243946748860759730055719672258589696987005550012062591894892924944463177068082115852395642156949705024981962208618972116107385595940439349584569379934243615747028963249765583338220799442101994497907730470160977724442059957720184545214018039013244705304981761110288475005571615493356175328120404787383571734352591824923514407374432904911345289280190776632418549786429013966830843600644662401006543261156530056744504735659042799241074310429448292495286439688955761832388297060752174665609962989289842554310506073326996674735734043442633740924537286640662551358149219224400649731635245060698189365528760390592835771328875581609072215403118161242415107865639283495713281163636217418866540945145705717371334800814089099807647410524880581432941162548206053456626098538537077579862470119683326304236553866467634384541222358021117494383846750660605086237283469116341829910782840618763831434217436325728754688420249438794643814845656060847275582403840866531168664083806398478763373592201195301785497737452670331489315742307196039085766901869501664280886479908076146746799686506819270780082809550178549375187970581586339412476812600214134704881614742661758140852140776565792506374196143488284785420622426248192142955401684091861803213114113262071411175727406389191659372518433081507069141039387868006135502452347164459471926446341517048403547595198316436803080531545475738100510002337890002392273355576091220622041944946322037246192881024053250629470372932610935020812895168867040999806934016403561826958819611920951450139711993018450650033487843237702661648014605505766512611384242592755569485629314522228228102775639546884171381848480857035009806613649663417773574463349299140088232283921295913827118096991469148560805040328781029656303370729881988590949069506587378841765382265217452530600985176217884402848264829927228577397557261683883699057331008339936632298602120091410034999195329976939208545141863129177463085784688597115484281218781508758539826497640735004438680742020098498033980389512857549058869673380424369187003565157635200229053747739577919328142748498681943565441338492535460383018802772540326298781349566754479054844923220554696160875856997942006283304834712012209951731298830193640292222780783564395978466215067240067700038401463114010024786702229627013350001203648631168132759109762252180318688366624591408768367974055061147297355227364719762326713306804440832589936605071233530232116938455780509362887369435228810352327880099875298807762481441533100879248964950144537858207852042350420483728214116926218962142637824629626024319147050083520136124081333476451254313689050706059788003577185146215285825472235625381256824254757646581717427748582710468090866075004936277432454142319314794596050096861969930233840680488966524290009485593309170428606326928846516087865539586715155305690669078149351376021692963415643679310979273075410534192412487642593007459973712374770904659880401192220877142218418257539407782037244885064285769324068220295231445867451630385854607325688111130215510205056246465003168114675181909139067874706257499540712837406395298152857957737171532115506350617410369361373855384652753438529567783844627154405123241523536792288414550411908993391934557062982807810254499347554912929896707618421193517137146655913736092989818961712229127090036619512513007073142638229464973596171599641388837108847986012528960037824233950880784458876364289912364019804290915982939239959744591014177513449122569731680120178353479764643006805314667802207414159876711067870464587815879549493373259970342000588941982161374527295078514938312824221102706633400424988129290861262708024464927634891575370442376398351760669103493782779088851047016871332814218153284335097396416371970368004101019843960115284463006669079517285181204599011214494800456969522076526405321008369007490283714455689273755707761042238954539978626794580570643725187411142383633458268190060640917678231814397444570812311057530604138920315014187826088322025487480350447450891168754886769510831562846818110644053960414793587233815746373608783279040431170320582669794605145806444896812780579952879797047197922104782439169033943389822094330748920146870068026007736891189108322068553360704564860452808853844125858388291329429488338690548640496784560655828461063175504917357524319654737666101346395278261202138576341639145767502050109917209440040394171287206886152520491923307341894146306609067681691269103661292338452730495970675264194605685772892118722330395053315273804959903481009016061461034690708598648258051272387171457403521996526616507130976198158005753543335003215551404868258937066999066398914224414247357549370299714903101187976747025511470777228935682483466722690792284585507204495813541453677221594352309650336311426911885259878773976168073465622272992247854262130441109173803687803335725669980580038427170589247880246854940896219568847253020224685795410677961487668053245131777854459473332144507887363568080705701974912225550464035177776798753255994044890642283314984260398474310627664532963522444218586994134283940429395518404797145277303797722879294297325591973602925967625245193289130697188613195356788038990109029510390445418289132407776822302360346436265851967733971296196004094832356598284598827446367721979550475628711961766935863270279675653578034598913950285807757806961369848144602442035147401537952247275946634207137493869023075150298739073372817252588257279151742973702851694305282340690120318807977364637048835206972778914041045827669674279967294146236995703905797775428597564297320220368118461748273316497344081923180926753457272516454684975947237373965324344363923354447099896998411750213467307658020915857298593929324370417264814597567621403852141210111722296335069445421036785157168913448127141578870188259545755024867026881314385737056012338780914829094677498686357807136462012157178683687862317916751994560871138140104042224131045015628960931944315895924112668571566430419208862200273862217716666716475387581762860532011332855622801568041142032579924874501104493545960909589768059878969102655722423924951218254452437664762437368670104158270254044031481490443220571116920266380390188522375186997750261607903565155961984599934705567474736531752609587156332293896811468638065882795355308730665899751480406644265849179055670569743255156348903740841555869224931168693903196959024750380478935641176713700196470176368748433399974808752398420361280153857708037674247315526248327331055837136254029201546011190640206083786373613366656597375174465819823061716783584552970453351974353868503260392819748578774007421900580534236038103801274091782772316417196501296157875814961904692424024183569539345288608938810360851251514271266169726134049747067677870375611730276839752031492199365162702317857847458818208439517139552128892008490839968066048235538576952114546596489281439745862316590753237815619541043273134801314583019470916862570142303456243888317329228296626125018406088685800990157830853521262990562576939592111789442735707128794616804992316455374978459809996048229900621274460543911965788746793448065111432175047336601669498150480829508414475615918525718237266647985933037623439269631301903936050360425592174999482601932564184921023252067843259958093928464423356220488147128883401018454060498069784780934359606812190269480887306809214806802147329766528105535620540391688862972556798129143745632937617473555909879940561219225721250075989637376501523649046824127684201145386473355599434433086785935293596535778375925637017778577589735024020855094779853811392024566608787292729542622693513883294300991128247847505536846290326711951084500127890094266623476507254285731981307470802607459113006483627464270656278849772443217651212424894044975646787248786162987161089043192174545144329113787671558064223976474272590356897168691219139637944727497273974539846015312372109818980245674314194068685460599169865931655785114730982972463907293824112735874352144137382532496039411080177618435134364643987424171439280794746809004720037552227158934679381093252485598147430628620988579421869641204830820566923096744780595017735253570840257759986545472802658585189310022172966366986123065392785987133544175194772080264596575304890343647787261585783830065731542656830624701993040229283797648393821394843115195662428313281897356936925690415394943396402910464314868943771521061364539602389110285155388326790597825721152044503169604123019970739458888376680413008178858428994497259748064672994403679778834449373945646678226175521454141366352603030499760209725250974026690575100624858954698441105022224903105900206690276908145956674692656842704641231437624940336132733054536119963020111402462891955941624048931753676600080426696464294615671985454855189835837111823448335669230654054144411451300733625218901957694732836863548952929936274839220821095630652354639372231005132261762620203330949456038288871802503822410565687300622201795847577967403611024218868884364917187613666652930045514762925887397621333950267031314339202905112496843549370700865350557900406965517771633228280753415603984377540260030445630796016622733692661203684473640703697949597586285966955135408084795945193125189773446879114753127966127101290803180811510484691967707624105774992018340764329171876428384821615170873803926533094345725005750686368319095296189989408716026893530715210073321741400481770544764418526982330025907411510209849758931237418924565212220970679628386016938560519568318985728508600028541922884053968545874598586402947828723231179597317271364317621420245892955966190894095676108267121460731851459131396811054009584819678669669743293362174696749222456499708651751549063465031964288251547757573134144951103605400161124098478932049963795986216515974850674319751839484347358540791653468452017216413856240734385364641383961306291412625694860126942069936627769633675003857525888829009718386980912356117320495391251956474309114166685583292446625470199466901845680528429958434850872629506226144127300859234775268796067869189523869692332003315817894026389088595243700367571280364543990910646312093298156198528738393606956063369317364139003637963563809804893395940709978307095524140416698452577562975874813917094835490838905508615971135790955524221238340021224022723383236302243829209822657640770006893191156371204744567352143658207843821920513946534040635279176709003915005093505935762416131216306383151674637322595114116966072416648673921944941068738258362756053339578049418281569174057279781092464422070078196278514052038285133910231890984389353560523392089403866091503792027375574830235251100042953224347646904986340357344373596818205475845824460288014411476145456142956831769112091989359020540888211641395837936865518423102533224272936026220845818405723162250176348229925649023105133125321867621800063798066109970445090530702402001936711787407190430066042989838810701878428454603721345823607423731951412642513986540777348085735790656654990520012862232203094691195251439277986141333585150111480166314068165094213274220513452106131545489140981258285021385976876894998697055552574210501057860930838970524120546746139476589959804183295443947006551641424102810283561450558798595960914768853520090520289104406923779524996473397759386813598145818330839967323742978033486112143343389585324418140065982383927260099168691222206026152059920631477406715816014862670470163096606624004916854633909235539791515265255912764533914430479848298809032741524533463807649569087745418743148487090037771080477251513477788954179467651912727381895460318422491130751203060038584674311215510601677275398192652235797795901450630098152140023726050281442336852372472142655683372977338910398703492296232557609406343828344485819985717012204953881497615865169805444559891717803157029628814951337949495446079459706731519630694874975903564172751174074205476655927488322816654508665979239459814616516214740520933444261313601511957234318907949550927041019554551918000736052061843335702106413205715118288267326415259949752555271951007592269493240190446465331831145834743546464345430006676552061405125576779168872676091479595097874673866936249398451477252212951948503613530057339102298157092468409810933048207951816697875842806409314977552339149390634418400050637527442117475804325442837849887485169102263822023456206173239496541437039699288210733943034343235107033199485980467033349990976497712768588353831514863134359581740105851219561763588428340733250275956597804355973730796258828040987604328377266559641548356444755832794586478039756338210490510362083984439841295388210452781101365890905920032756330130361160634717920450362288899536946132330431134782689197110367082282067260016552570149524656895044734171826316734939535698094837027242374617045211545606945271215336106944268748755904438716664328290703106855785977189465219952917884218741678942658123894538549737636902044972828120028609020825056533362252592397728169088731727079636301338494630631533997547111494815035132850282532840368608535321185902440540750460479838081704315858378735354083197084297509519733598501904157525050370919602124272105126477369747801916470226175136859446504846960485718309483950830829114052492666813634995461032908195256834779915294770585212745861975634809776353805329869463748998854997243370167304147428009624561411498562315663472584793798425781337611087639485708040370235778019607368197007094633192954667863833666735294083629845825635320719453538265664631757231897085146050908012936627660989922436864888284133884043156800403928147203655842898148799066086410082912247339615017936652185470985369329227366868594693834611155126027676456861993083880663931860904104669214883442239036848462771136775152363885850811614185293829192243054288144500595987059163869371430700752784456670161363739821882307857662836635781717825341597372106363415916131580806996977406864700415661728164025644047812388634912387942977089348479825794480353863572482678880175454827630497659134286969331933868308070496246167230633739659852664753758123018757567418195262463425812888306598392378269653284473875045181772467379256867958480795990568376185869533821653812341930894535589851803610858250325688193462133549801991093392672676360355478327908504641454972131541439331937875435093812747008531748015663377316974536947049135102663112133964934564979196150550277226595998835856728394888612021637676482295444440649668761033691522184557478749605113888086162105311995039169812169952649513530394071267687770114218615448996497844131587345238076465020565809130757564057270917675202603364242981806419392433276623018790592718434384563288823649091243268656418599989099606990054517715452304218987851726104264464801830054911618249075550043500645713676037186438101921303121484636850303933920432117025569707752735025544325780320854415843542751807449832152978647351119769596178814089633229999525509887473522465302945332019731573037025368123919138339882737527205080466492511359274252359770451529887808952299697145330843043526041336632468049751668813733905452327191302056443621695432053386299379024606057565152087093585437296101379781902749540054505662121709031584317227561692256244716079213571256730777926931157913848370791767905664760238658646551229310007526204480468632703446964322732645389948650672590466703259613232753547216197577364534470914224255608945618459986648118904550316375179892322647316069867591995639160329784906833499481290811297183015030257044878229977584920876624632955202894462791257724869988570594677284278777367639260119590623075418328758077351591110367431427108139502561332153967957601039533302584100336006754541322388144437514922902045826433032430037714593360407977451210065514467674838060252857096829437968311302180386220442081158246683556988386197592260269891742852670165112513484476733762077158758475066955291728855583270361386195397069695773774761354521111687038549087752111551035663040056418924511656297636947377596017392791631948917861442420204610173227854550620149841714677974178222339572127222559313470264155186916479196201912451833880045932113930630679230186763544065465198135484018396986697402554834285165854813135982981313656709069614456276032699468914431929321281919447496098382152862696386208157582133932581882938980167613354207450097039802044387423306468857770988779476433292200696136275682929545231534278975273299497585053879576883679194587925554162528594222527732250021803353927639720022095748189616002746421071622235883001656561857416097338628626362359116535086268394023183272101773968623488939426973059168153422416895231150417179719216964465773400588059957997819618874031110273953845644417762355057257649705382514492533489970555778648372108324462203704458947688009368034168984150280335310318871509860542867069560139344659965031004921313340673444943834367793136472581937733476478796293964662615048429494042414923121312330951694486833847787483590199492983374483448746129220457067859423265787707993535909827254447320943000262866962415722681791318364796458194353468610391407317045802706893991738891471712333469026277470397602468485155126637126577305404404460977408876750408637016650888746917491707140012779826746325720146955272145980845448112972406256896501062620291183753993678843947091125093118844862013931038943627613841321843912232007237864533621828468004520290606513059940268258463566517030547544107229946128444280154163189865256812126792281835642348379495494188943267501711743167266373449647097385563129656138214922582061612514627615016237475549816685227877974288214277393956809495638756391199171139859382862963959158849343093108733241243532815949844889696781372037729223596347231202036861255402896319550147628590542477820581849808312500250619164650970550753971712417937777468037332377287610965323888872983227285281160871580450968923688872471478456004668888930792612842799326004373577816644966710762380396777568041636948508022031861276144734311154836045764763733599641916321851019077832732384422589267181495129289670291023599498101411925924893306007137460607435575003268515803231228259376633086528090997678929013708287035738256725326427878318035149835228108769083314941823719982294450692147756546939638987678452879214768082681121394063520757959514933260163592680305147995355836895298477339652110965516983967560481489332799650075221210374400081502839149880750622849170000991280797484892550119370875345488771153157793645182501135792077008772974795774273608737897019642400860320087562684558880796780895805704015787738598572591147992585819794103437710972713180091077027514952232266640774790649137273688533937643893904692030755011190787241412191765971199120712795982413520868613265857580216402603773681697934742025282047347365949673773317831268906442783688071509166121170515205113556723641846837094419628124399623565389712007979808275160139907331077352160987658851305490805122698430868248368405822307377548767384588885114560212181867898524381479440695145090282865830506396292330596642659143167596619045413671142687276294102733268927347099968620577692744305426935955678914155898283090137689050351872515675689611481113422792525942924132310026699825547137416928637151100725695153442568184478714316585016512126053036789382400350792088551721635270550776011302351463265165236897993318110200368335556177637282471461296517274482326369694267846232988527640253790236639419930926589761726692580144427994388605644678990448646324410933432300178796257066044487037113361572365152538506959959536361328762373174026957344562041148194907877135430941577370046458058466474567156350987216734347751399578323912419751717577207776632699595710038291274905021511273471694674299168939595410430780265925245075208789456764012988706076008869840075692683550334933380690966421595030461940494383589773421234078521534622576087883178280381070373866692686018221674071603284668303971516779977263976085490516643618567614139145117438314764574863671533063209522733396954764117504177826882968212647526890624665689804567304341376618052639442089895370683002298298111929660938748744269666033472645105555177712674336116423515598666703188073588461658028618261638776436525462279606787784890453848238052340268662935736932530998023535243711222357362783812847771491055747082669589710655606703907713796354906695471834125290689482233936684578892709674793652074588103184529795686063696203973726129519351973423072200844990038121831683137517601384623717850126504272719949939051409795602805516422438946111193716459038212892918339971117319717512035360773474856660902409262236028492586306004521197754761573433176184585574463822761012460352643066736193225069433655052187990868790117711082338250829260482259183212860572970459772145173137720472335386779559181621337842767224444217438577836845900537437858707146506190632990977679403866773221638951758035373938874340461535345966630382916754447583079705725671424206775870078290757668632462532588091142650838644971919935737030075732742820692208461654992119667604051061922490421462871302720266904368731692633843180551903395377121123983139464103553378433436484371165791114327854962898997194783964584737170255674786557489490152228419203303134545845130905609613593207811062217662919803258229686218159027406475826147700075734455612687323672059891790207681218632996548000521987654542181030059341909013255363073255946089832525474934697131926227073234278239480034278569889227218671191066409689805228610168000468541541442644388418000798773634613631823376952509488886326572933736381398260805171935898559008286444874821160967487696606301585108337456864567864314708646016554545637576778040272974034858837189147882045031295719321548803440830476076704053948490481670333006640778940784342696195329701457709276671865101238831473442614728420532943927026435830717514591836373066972486964156951573383992163460502003677786787451876745516576694353342151216824822715726546846482111696199071621108229821044225214840098972801041502304558449190653944737737180859549442232204580469241369979491948144688089585767247000639231984071924155079552850389565951959873512144695886371692915298338260675719017204192708640485319196335266115505485726864276292881421583377710872332053974088241733579329334988541831178330152224421558159212285420916021243299952613890987724668256529038532882153581189467945871418948504195243499973488439836008396130246740144182658959735768398592879234293463095738509421973555399693104327769057682956456511414502183312324111878949853507705081600548117562180010453324604620140508336458426899086606355027000205532148306777970662060414231434988928858719287462760094688936776349783733225043481641990437211557327358874350857739082624151572776199700132440356344878037775447236013265923758550110270192694991152983359659028649433930967855758876666076257493443120065946298810224867508553755058007660015429536036735162961712505778653361914184663424907202452124652468333690684652119672332818567976690114760545798215751730777779014407918342381235753508119862185533903683608503754069052099004356556002589138260642134274741292466920680020356056254017704425408041057546022828435660991803009347040604423140028958582981363002404131247719695498843663460205442340581624804314226189925918027545109118836244326861768226183820289069334788801624922871874426419479183102503912380552138450957696999006473811454114204313323374142167797141976944862432996562092082983300164276635666602527303537254084090126189534237812969462219106329580464630008018564889997204963326043632082602405821885820771392771263304945626198022316135418225039924884401157162334783470831283912403619852666659428248648312357806253793731975095503174202801509483409959025929445997662439423065730003157968414618046373004483033270006431479180008941383500639690953066622305853594927656626130911560684616233744039934076654631832494605031922619739880006722392105468279607221153218856197449432415745645784295674505324031608603133024908677888889076460954657622530025053463423602250869005917694078277005938551497828539963586390985099133568309705835919987318583992460135281130152129845511201931891192465330685363511042716399212870881803372590216560478908551164025265711118209413623308113073712070095524376136421166647161270103172905634309556164723802050630508773527135901253346139481469623322533814103452557910454463380611655001722166662595529705169872256103052479186159595674540906199489622463477486921736614338195070781571519259377668632058280560729124380618064512148728855536829404705572945659605795745311793169296391680051601386017876321974164212169719743374501285477887945211205801059579795640891481791210188721184239318543015737193483161768572773901607606957301125325120776040223386714239611398447599299874072205532461832134157304441855768684032628203266877303654606030889555110777449196997722520613094304907628301994551340294789020170908936266388228901963891862182238474972353960610697157050821655117098116506130162494780442557704679157572139656525758093659374147784721546712592665414113475417060341705496199701080466441889681442813652756685433804823402368304991343998119062464837248788303223731266878260842341247475782647712154502335067412764221674062303871470648273535264282903793168519732840594627360170703119213502927766053332846756100503617237858172735414833781546621035229026381575640118589184172814150609588512729735640711605748193862159418915615764533099429104652913132978476145368342193330603305708792471181113825926391547276266344237613173448147640552150485343191900382545969343260190384498811700573575520583834528163304261874706878905502924441145384625717519653459266675851026065832085703073604286872331237537646582161661981490871906752934837967556157675948036475628705660791097782968049978312669425146379452795540801174767530517705238165403721547852094025904976174831064024658451672890367543122784215081029484443623510055735154694996437003266605537137527158559707990593899433101241105791305375185310652161535586199062297517604457150753265008777277323687415838273578983720064846868879241959997789352742089341120582062135963464212338405577731063538334515508897896504489387456017100479709898810098248068551505462516215556143183373065764540373517569993629169833507502542469173266941310802030595926237851111871506664121636244909078306270760339037092910672311234154758067450928974632629514678625257265806748989652427382184186339715758750777002759052420328782647970929323610503587049424773539574146549542731105098715194575209428778646562272825235201699082433295621584428384485299610415251116163915230996712779462632157366840720272157504131598101476059434479191779491835198715724133754946260188359979447423285942916108075485345814412171717775574118995667048430003902574420771294996600248035562555975034912546216960734888846063199910693812300891441743551870736120691770772782364457931661664925267840568802513155781075368629450835134936447636430614845636279144296819056247216255757652482275850370658040712554430588762247275763976825321621357772308145091399595671783393502773741112140588699854367889925500641612332331231508310044259435685350013113735596076530132297030833647418042370153762258661909125557610665622579353365380303330038664700268666662618106081783155045576508509013653478664055359688737429442099445793384270912997561337631811000520729037493605422741257923228809969790664868938093349677907874861056808664792885144046306759212098192168519211527870849281285000481423201351512185185192519467305833706207556369926097223558734097839318186590759457179924717020374031938220337541154782175397088028493509862714657035502286691410489326831158504151350107573505400093467197975721016926941204660526384899688936393841512497379774387319650504088857094530274896734180735758753649728942699561631677385318699630229727700361129602437793869227260553232998982251879379053342892206984992977426789568860240591487114725966942944386927521434383283118543984657675134413966662213707947848202222210335421815198663311294950828803147125801331630614378557446644028491050321692804930578202351116050178251787585949930234829344055575289603762366236721527373934614255333757121235338586463168477597390950870698846892414163122030276675437157323773404274746109265604015551632512816637627258875562139282039106399273910449199210649943192628056151684368972277495506447520864540812764265665607549599481235122499774158271765716297478839810155118275580926459978648499520276341070891392959892310879755355354434118990945229515960991985001182342913828152141964243113522341855640463494834366304799986504110964895431547848337689835085846650049705982864324931650703894992689357714262245344639309813584460283906280222663709647630179595239165433705942995606157263548479179673718460840934159837579750317616233223176743494240905899334948829253031700232893684814801061962204450798351175495162334458567753854033091043985250473473203336852480776584176051472447181658608675282408843226374578286446130990854494521767796060818950062753507185418633918507957084263218159202076913067393578238115392302586809554262753569340327791572904679983818622169690614854117838584696531792947462852888048367622125557362000708094691227042004926269513478579286507547913664809804964541681947445532480448687686727042575929372982867040619639548101197663571686636924549500094875516502262958373422644535968205670566342833104119511642049674020798923796748474161191349346329825288043684274594252923018349973286128022161810377340699676836936887543618797281814321529613009887175395853712943336833992941206282178368823570991437948183606633723430926464081982742090064863480827279579843927047940512654085356265278318908136792347874125265204966352526025688138360752100854974211141190342193981267620122981112220047599379172193306551059868671177152435682996139434189228935954696732794689793890611125446742684825806892649370132258437028795542320310933737200824133139273822837101132716439649799776281711201758278474556511374317888104852230196960721823022622554220216094972599798699687902256400600968739375311281781332990539577647388725886037823642853506417859088912856896163210731126846393489170309062431032664942114954248423511595016143542529874156698594343722298774703676985791990798225354888636522757793918483341107553970608255172002622108751603531928168155854927643759880329838181244156376641740405702085721684675079091283451740116736572629646346281831033833808807605555330954423393781824793526335651783126737597072295646997928080040573342356444616834774253730764260470183787176004266825047562384946202418408631942875338189443075409920894546128204579813931629627439195900580372477860782005117610734702254903266255992918393154723325952135632618391257976750735852291169050395251311453288080950029758146819868176105438799603022879813661826024266742408809916982288430395708298173004158540533751122914467767081458416188938611919712355545466697878364851896225800251165862527736274204078298186384275478452158359122555612933517495033983252558625763946086206938952059859090400559013297108769437255696240905690860953326813192645504046943240532334611088070956854013507747774770027220085107338639564322376728047741943835106978412025154250389871367875291020163922647218914475587766637691715516570252539005510893252910187579681084943825684646986019473008968160686761205419025192506762100028039670754770603412136589269852319770245315597967489896057602978375438597922106524501920521698434021971648156981474047114985802623227102544719554058445700311344136993908430974522805678602207120724733171659346019482780597412223667433683077653429910080789596240088618245672536386554597706750396343480320705671987938163733162063201031018137751506109629316937022283061782514884340608499146046450802005217456087489055281467034210373572261575313198530438809309197311603554992296306024513479089476518899634582770993404097713565910698978823723684572122903669188146254055312039786171734566735989791219203594286847783897680273307434912030445032417832560093819968339522320031930856166304930586155211848235676073113780522131982688110061489734158709624663232696824565995020654647682415794869255905146610891052972904499607095189560815530371433810627847148225184162916853980458944650984547048367403556141711814005876179479832807625025135871896758755288035983819325054950042358700806091761689108680700879509689585339682094014736836771171676822291708251209683446465745388263261029292657872958518567498472255552403912714293401106860785635143318142137714834232594407333368604849513247313672516045407662958827052100647473316501918139833847779766571450950102581559412954532846930042100890933641025380506165206435045330945322937585568770401644344792819328866192250808044594860522144976018666195617555696289762285750662879786164483356850680471253555056927671612809119772676976676093431189773749171605801383929493783553741412451276784957353834893974746471618785676350022038639976466534781174646870765297688243385378421528153940648492338292973839186037437846699139661713189134606207194378121830143771013743131180947748765736208298761620989389271726875020532017931349112867241178009196358344571884490051968755356594816584591253725018430656771183241830103235237140773164919701554494342382796627192176443895880697470792283586469961885624336948225915646753730539926288408300272025552006355728979926656693732906789128998765636051520150775269792202831208361307046874284683930321802820305440014123841366116737372709146084089238117566599345886766251761481645013395619813308224953466019402915726298902077867830682555869088363079500647744940728415462351172116236032336013833709572104501030315597906317033303792905964329302094276998216444768311051408494823915014348656858757875331231754058444783322633012539999177937165083235115647648649124750882467784435607243321983917095679377179799595245316265325039999758379564124661133375024608587854263535659046301395037901753493462988619067659672581015286924233810041756440764737035582801620418539627044956192738439154373639211273771361967199776590012169287814999328534373091802278307234272353804840233324007817446003559614400952665129031053848039623325925554302646890665596383507124711389740364437193578199003407247881849076161523834225567128641537636351714356153690767190448686614663533709382017533932544026033308891527827103057528268190903578264955492704733598990474704832341162287493355684481888375547686073068713593013272197010355479988629260272991713691899294146887827401519792623305415229565265801054367781855174924994269822346938428737156982264262250399802341829340144888467317374406849517266302800329139298147367120436568477523597845395973672294272574296555395966076729312189429577547512587226831348958217202296626616995040123640167249452818887053386556174092582959707874022123934039445869846240282210409670751791853643072478655643889147532236188140961493149507374755202163913533845350678857208503914042248768808608648465221104103367731103033589763224880214304321114529478683323306676215306337524959851109576581822584914147952526511890730936437575955318600477709984866914130045606981824933184959437748936996771405191091596077645762322481404884730035598355842745904833516106321889095751432778421765787222536376146940586262273285174813013144387353421824784138171228685979393797037708339695287945717053368214835317062437031756685951596247022922939469255429815735464426331909512889021359583673926041107704272348801514509407993892147366314079204770195220387931933531437466452933427647316379407921135323973687250736672569780343711327358366762202170637385724218132552571798584834937625408095192292707281731947774340817304792825174702473467717071605047416988690369351291778442036365008038134058121442182687980480268165462090700852929665866083898475915340753423142120719513930556576084790053282623126601446563481673656205741451841753071572331085129868285730558488754807940868732781319806376042938050080315570910553716317862612343097813428913667223993531158023804893770657871792620074632421181638695442989089496422330281209205895187470979515881176618810524739615393667369911966204550001779447841909894451495508313453516305509168981586619636041508610604252047999282469320241943664291605939944672119397102146253630089814636218707613190490244362625108503853865817801903656353403842524958500355581253882377662741851610017147443332627817375813904279389346118823461940887357265661247143305887793599836222054761381310001636524014144072152035664057280439357400455789312422552029887723513552476925873326273431548427121171405515553888088109257596322422196553031310101192146858757920421722226539913780723487152284431279403237029762875885486341265025339603031896147140074859187032797583535656129652078627650770116832596990270590180335378927198868751223978561249921329104364206254108184385222246982691546937722539562626036368388658753525007127346018888681606224290493843002175100932933073041825333396157168912643756157656222725623493240892601505220425297415759829886017566569589750861841063179282986980159758299486783182331021972513187366372086690983019373479832848239601823196622254060755660656931515549586063260570983854413140414839367996043146895169806492181261299803787341498912778679609863400949962734292437909892095606671104007427577234330183225714771481751558172001962712986334502230661600213044283666812597969489781121824870927109843695737504626060920253432617811934425112208806506226041506914437066793203304146942410835792121254270118309807790032059285229567583955710661654935224201685042025768198468014604812310126128315132509076841309689556166539396486689606612891635466479988652974159556421465689157520359414860473728339734682219518272409912562226968162482880975540071842298537566367268061629308145967689853251862847143583294955472359436592178046847832651820237701887908158371558618947024119441548378342513685448434703323342285634973151017919992350680902656632687840116224932217610971905626022700760619765175935345762781367953545507517830885846398075437018295718648713121621710278503095268504044752877081673459300653875970852090284926741103272861814616556005463347326541739606055694182715335148440667349760313244701177133447639833036924370586810066483890762518693414711437656931857998446243145808741671358324615050968073106104247610071862944979440096562415818768826138469537907803787577102127658045795715649092955498987836060167123640117637102481793808552269335126612430991503485558740303327062206606411114880163906936040546518534553116475626898517197702427145318346493698979649950642425854987398306370239267708893119834890414308542099325850891473363728351066447191889142924763487947155321883324731251726896695960096684707860891682475605399014459493510199884313133816652553276340898670038191952133167325715071288447755967579496420705515996342303368527518888740378435203406749407697895732337974665791723552095061424280094461895398329720597491555810607690421060670146550992954542626142020197302925650318281828820340779819857978363077408825416361768910923552036151960415070498040092674684148048975063540314991390258321705611748017268593235170385210424703124185695159476404756026249272356234721114696654901664689391123698760348791483572047401280393705852759837884366489429788629411773904662930801682762598923078999834101007941085408200898203900181194687349430000731227455855559671292515699970733912993406421938299328154167840495781460446157937329113233598576995803091419846324721937668067543376033662529477615884608516087722193161081831654514053964959852827472512026197077611841325969435123872632582991331062194371906827062425133025350310270021184497262817275300380797930949850280562494773605203955525179174226583841036329761801735405113679411937186996846632355385547373675385292759502715752295640737293569062440058409819367760606902493017048546486077406751348555275243913991730030196019332126986697476493473137675314556827196797221103326565616585448433500860149490202532972763267394774213601949171636754108385706398363423513378208217160669022674558770153526893554905081040532422353305921265847321484547847166782146551269041453706822156216783288762055130180526612706342502185464128895844105191753922798857079071989363432260127195821382109251707975915155283609611526490733396184132911830186364296428580952959424488761133342179965866327281666491941144403616546725947994281995834306410371058057266562494041879105966718572383106839617769237259995400373123199872820698554013165026995483166407145900204221357916566817579854603726833508961915952340557418154061278148195007185725545369023353071317641630635084221693016797950685828115581993772511654742530377332823945726743092397138118978746187709281913197317051290657248609472048649175200389193258300895401627773667297844490198230513751295868142214366108186261663160367134918680822220199600785676338374777161481638492486280613677288281665613865398890813682035640582360845004279575754419524428120133615668640421115150762554089976666735271370444596564938089188119326436400836604315092669203794754848237820027156451210481191888523299261306641887661018934023526410936925827409852317763848203223452493380482146073769038743632566137391804036582023583983185166174176032473350429892145204927951436617260979813551755364911612720439372534034687791776894038300337678761395224161550097729147302260004069570486245528685996507871720503159711622922813912117952013724125435950155013372537997030980887240494189454035720378401734422514155941512173936552191361238710913295913134925441692217962697821220751531281747167064738568877922063936527515665739945688973748714282218229893435233360363465192659453478728259578803591160592941188594114083493675999728211219629671785092722480046931317604884289430826958488594396382088859846417594923589503707512580511710400432917906222495194863438644795132154842261846400505605385502822664406716984560425202309167663107813043971274685043147092289880855141356063678971926601266131808174573777165674876411376522518323560039627258420283955108872735008486184184468008007844347198950105445174222951140830846212094607325144337599661587992187414345885701855076640692783370935940381469727540990642599142027329289566515181127375642333307287573063443113996580403902218811304712329348016222888519325655228921453916925149434488760784384952621914846845796658519459523846896685279466286736342345208912822722951570959585824223875596530743367680971246602296465139913479789004655904174305672102284297777192305283990123861588708405832991052758788864086128242923372171653508328416585603488455364195467755167950841986907124489310744549246476039441650581306950132729658000790357175189883169656645849286125285656956262366716149344233119042077676985046904625516471476536107674651215944360726284892976954050325251899984883408502454142955524339296185740783194665343481135118779620944714620975746287426281853738900595890431482718898918685551958190626482441645903052291503131309116986528119383605114971723081233713369747854976808813084069389593600198780230339348703208467933949067574850772973876724749322984420692804847240951043891942379321711957560989838152449843274461841361469592612056409459116708314140666113287472036753345813362823969758912968059740190502585595637703043765971807941083806929336612674145493205609241859003391002108015889524353811724661083264521355414609804087727744053611380989409200757614699240986352095357158751709714749561083516339226598496695512033341662923771360491433071531880222674300571622909520734418716991937112442123449836552512333627621917370327707284373434746027407270548701600198470190543100004740682773225915791810941566592655145303675000180792677622114774767796060440605476126085120533754556204492849984723692209814742232143937164933786371031343549632805213256367424914060224126152284633121473211004453551120170748552654260049798103296993632366702279500519221927058416750836739508270500683295227817957872011008808624055121098516913258288869291872413948401479511876807882882125952142119989114295424999105585864216171267432580635141453535451318834051572018797529344856044086282304514607337820233473584216428762295130260533144878192396462292934126465545720159914980572715415908542466534333385206592074912223131711391769820466467704105570808389049879782839451117946166928205151340959061721383809424111656916406310659464812967369938617352502129236842792079447795321301491525695078877732323061495147417864827889099005795864376887806289479116717163455303331044013315339116200887243224882136363542041563798814741971587282039499698515799700144611722932956572152153069172316937272878863318593317988921814343761153839059993528282429375575024147576081623265510267973341471449116897430040528740124466191272149767115292061379002356316672859740168579607878175114581647821772399668786910808750502596319387153244694195578078073294708980830967710305431477450932764249498176239221899551171290840107809441819534116324224069344282145462407839058813421892987181855183551781499804806556458907092042076618032450849735544774718329161628676094436082265570040377805946282916433486043853411420458885948026015077906555129430687317511707856896210853913799602372099340116968989826088884355520932645218474287727273404018408931124913040408140381085873723398526888183338250353577122703535842860733419901775864033316736571204329560591992012840132134776037843468754819663313322113320031494691689348602560571871868603445368331585115401596395708962308988759400786919002242961951683675961806427467834031139435822341598252463830949399906916970860124920043115213293144436261194867290186054152015075247873892135148147101272627003958894701111912445070552265507885190013369769993023665430462653813895479487081092490807132448904721292091929998101961275565473623024040720792829310724962430113076666972351648809262922869754340440610268668231092209565119002060544209353136318328000387139737382239032198720633886636599764760867471001382334226845224363074766186423920814743234447195352913550556002510158205394092261684246762817347582839748076267755596794021605042248759628883915920739854986626571458921826782535272331426150840700510092872848253300449902605243703139070881345765948844021286989887312734795846895758137399762885221784713475830613006814130168003088073102030006526676203656441168092187262891742689462565738075169076466553656563108747758734681090333080530603454360551075681958215924656194273942959778191538766142769866729999492139030341460948453793540245202582661276117922674265909061263291042794878319017069901496811649964475639614219074215829344819837679912860460720457263537319602216828710671818558237306684051524627137760843660362559804225379113252760842569161379522620040975697190589485837123942574026089635950536549247907874706519145362061101236624425655838053317660896410792611139606266003622924594814634546597142597487350038417040368730736038343645970224184071167432958673206330266356818545494023008890055529687165547072780102123581278052481360487048987893224827332415932733693144181869233604485035909881574493658172385423478120636709884680045057902911138510614032624049651876104336417729766001632675296240061633979474158523540389307732010751820265009822790675308798702205097626673182704048488061373546828663656950602178839738200896175342151723533904444915988613663017066093480456758617854375091876457080165563391975952004322687174021075255816487240809154522675317592634312165706560144734975689350134859976718982896010831753670423661048309306577781633089999141175274954708743012339710189739663968741590059795097775785404808859351899567833664149581782500478637873294400657634083072934068622493129664689202662971147646689770438657190361821719856007571100280946078714349794227495388086046035164584723507854509535331394459418861849933553124048969939171177445206940694579625567301526189161118522443586011580346633206134786400832425358210508246309370895426698710820884420138978598536253227353270655551543528475357905891142590012840175990967187015811468613883599963872320523975537215411660867019375667757318128472200818095581285017167359956066078823095857154496403382530794448644707630353000228684225790105073848938771728386308648221721920248514209522457017161844799925442036429641713054071651221402975516521458063312392860220837764367494287235809475638268375404695018311024314772848152679287018958604003757561064964764930847500537800168887805898963687206471459828129068678457039977091849243351207120483069614052267963459445488132011656540045108860862698658346811758498107678943461233355587711430222425262578862699594755250467366462454565845938705006049921693461334444833830720945260560449029117972898483609567769802763625265510071060004805111636297074261025299779837820265355967889864697936867933469565345728675721642723901201237896498577729994404167658436807781193122517080826618672210376213315863213861789583174668033895453783056512453053186451003700954982260558951443601587628999227273478646382388671148043300957678391981816197026324913869732322079045321986189255520475930655686326407380962448819957882367001938146884759216804479971323406229334127002429072213184457391222603566281745271444958644457606833767003004796156105610971107708152888484521359446780931871164458412561189994432318773507659157594897736061737750309606433606689293623075588341281649709478152333310133413065851410893689570155265663685988023812419996391412799188593294483857523178356766649849748208069665148412162665340158784046928754505139359232054917605138776147455673903502046165226579813792769552590231211600447753383614622621459600846335456672038155156680844213693786898893198447122998846174185613041106192228209122102556745475701061436127942727313341892470918698670590242002699813790680577711356261999858795951939224512685400407215244498592386219463718159398817635568064668828603659197594835393645024217973363607831226005313995442322785850454494014004466293528139948288780885974782259384470986346624479301865388130131977127537920957447907825031565622352816670900663929605952442999899960702985473793696559328219690791290301475644876489096319587128739310707626978430798718557211971246216047715515798136424536432297508678309213117529904670568327960225901731544442996439238833705523326315993602529060796289003850944776138249131762887641342048314897535967378938467837153601898583950398808684312579194857728323765576583325969307195902750393996528206363111180652678805381456420985447273630724473035137287018525959228009515386181828230157716436037362148866264424477951909846863275020677706747441378446521635327412370137144119384028917836273340299056360840519237133093132819669930327531587390950217612929404803755941335922368793049572800200490124486391677325192327884292221544889882367695145584653431325267839616281731070717641815253439817758315684745076623033807109608028758560984540574393809953806122724222014838433863562972689931612840096339211511452955641339946594604603190130372809996581764901780608537946986186627080070618913783778945389983055824120651154218219818796312460269593012806827130727264971848817576352892781772720044292791254877169555040717961151846840524729697375739937340702923418814668276144128107075885588167861504551718657537075598635328162538295976746190350891341752532829310953484135480825216965634590422515131728176767034100872353553918490576756129210521094891687635041614619537797096301499185545890136260308233024886018884620385637094826825648323629505400289700832558521094609511257870364873844055722633247311442957980565240573134244450778339624544199281822217626393588869299846931013003221029427957443341893772641254894541622675811501468904160091625646848190572528703924912887386166039311461617220862121572622036238772400211228702398367735584000360926891867446877669656563048259729041235283561050527783576841233849120264100120066553957268428054058486086050855709282144460084068807481221157564676967554400368330184289124089696092681502954452667194284777222026410034961609069391799317338148282138461840085102394297934592162235462049074134526292767785911381788080336849130684012622420374017265004818832344540826849244821154972368517238264700590461422472064140639261091484289777713187053948505809545146395915857033986337827906754746054562742302632957951408086851783700047264599411731080873456372444145925170105164910021295936709560240584607574214332167196336951348592480926476506871504525782105038886861807534611758386741430276274040899531871050275871372746181323434945372433484781570379301838991470417514230918922365574346986592212693651529531254032853166614995722786195540678420210324121663089008557774809371317334739569807977987272286004700905371329412273897803271402771768141023579956871267368788728388564530021046798087741056072182180572913563301072453515245231399648045992845966526742260354415823220988883604812450674485611191866347231648234544498351608432792843758367780184001890788013466812157039459886796548517087962057637699566236971924311897193886030314366667437220737843491422322976816174185492609715641811742823590722256022711587218437396197610055527883625551076221341749352833042941398083251505102260881910899836040542766810420890608614360242888610626953175454758653236108114465109357981843124705031153978961751807252977909371561405713912633544528234948592562538303210102747234718634151852767868976352827881021778052686365725135275510160950659094131912998539619013068816697974280505613185843967313793197032176776521101435033094356575849354790199369787627913485528102421124777008745563075870484449948794883531739834200361017302583437465210692844181917363611636512048674306951820637578988900767457652001512430940948747898616128226750479193118021230932075064075713916234990632517191865670535337133951002369749334970843350109203752719475796162845925333275371456902826319214076356611473984875941137452330491248394704940996210872449235274873612264036396044516400212993149876184564539150032289306698442315665035170340282973915340989986812948965565809509395899573900095915290712084080220822597787519268038134900982501963540353597639132045272013880400829687707062193573831567781259911313581151435862676870614716903636769797338546761077313840261506968104726981877765058856588150979000685591395500835318050458864853389794883963138696352686299137624674284190147510150374942004975638389362974454568067150289296219852811689880705766123954288627478763097305997021906970050127098411063760203819946320577462719961758696721367553880703931108132903928489881573486937949645671865381920712356322368016957921506499110312411917809748336204769432119464087685257958256750676222814731027311943717095881848799023366910835461817164580430999949387852826087681029947254648535372219970120671696286442714547507850708057124061620154643947398594872547754750026748227536383689852299817653278538958626843126888342693856285765981442734927451258718937382587167764940793045126025079610014051546703528293298789358048763477760068537786686648326544926362160078395192313009945958689738028204164909584819940549240458584958145175741976753524474616251827076098328006133732455517187541813471207681464020149570889669204892778682218351935007804472963654224105157698646376118845437759264491852184779853889435312057460772466993734650633110097688439231707154471028563034761409294767402076337886962382326962215013870692116094462097883461192836178476112181884440605485275599358789701540245637963779864067043401792909808434806499210364194804423287671067126500620117638371071815150972401462879651429008042285739807388779405343550784664297873131423355565729037980803468583743873835563940102031655608288646755208532071108261369089045514837986074337746791700350534909001868311227283730021161892971956246529704421307948775861528415269040287630915596832632697470768895317197549958423785980049296765060089507620848752854191368003722419184408836424477650322636998671191491482757519558746921630199398887518584908916240233325296275973251707516314768963628038025378103931300355023798865283219147983368636174645559914836492705198667208226402169163081508037299351172877756793541432192117440096523839483753205863474768563038602819197640755991673300598762793455320949236843865154747435625294208037422836197337374849352358314463324971373750866102364244276350588784942053480692659296495350698273300140572090310812204243806665071206513718669473780332463447662107220171188511462437886615928426495729287088657360434254950362739665269032540250859968579458025483564945889192585509170238122846099255734743830270374448042190633890659254282831772776622170017832757616380015273108136436723485574201174922477691807016760187164125326991863092839286988746667905317212543804970722375785848381157781697786830290163918311136696770365113627878746879578946938535605250743349927523608457832991749426986907651014069415861533066196529264130549985372392452543175764754247734451425648087623860623887190852322597982126434668684080137633169683477228772119311561998502696620517476316539490005261182721108566403344139608517668215010672054839517897627478734523656459009417152404753469972249520743956166744861076182741791964031493200811920921612076643581040382044062242660847488102469013780444950956829820850307420497112354147932050301373707024828865394018113750976587351679591924083803710190897237442844569859260357040491266576259547873457985480123356874025073603989612556600054734497241265953114346484201162218006037835023081912031827852984160764509736773857270727930100292999868374016418658423960787635917834972857368559612340587029211530676828643746201147057579133243455124393863826307075083165302110725325197065144304444803724739191606267842625176143020154114956090907168501062344874850305725276159737649896406475692873262309825351723486428693783559830099381231065507758249593323125569794620892831856707382015650478923225285731998572751712695258788490715302913713422279438964761310035013934704338048966250570918306017051116350945610621755279082550047856544960738577860889068388331298785479886140044178265288481566170868281741597994823946234856894001747229417242086632735868253151622664333903347601163260199699386366086353120212399909580485275404675608535587955598549070651374718467029802159335384735419877253313815292518700315353957190022621749408663696184965006688789985417852124590886898122994159300110416927908584042460814640398790870914229464808157933780382666143980104741117664731945237789137444470328451499796661305123592904666611361212024134484662419945341229869269053361112695257377764592731381477156860902062545478409255874389488431954838089577529589152681407145733032339721424412343064235865660825469689723881876339355389142283800429106684889953928962562668019046352172273814856198969179470523154648809678336043828992773009644904574268722325140967011939367567991527456679717043345705384593488595927567941416121186342484757822029130851531538436193923855156898109388662991010526147131956400107871070877187490138981160656419554534307039353660770466136066671606519695283293473149284371787841206186367415226187864550131280613857352304432481863398961307955549120809798055149354549674325151261158891740596699261284775891824971178191317595097534116998497397718929941721714383581130858117012667796661254293159794887465139721240125370077500547876409676275640271143006624845496420854701775114601233304058623533249180396400269557754296605832775396123048472837708391974798936177774135520912248948498723305864945076049422146502367574950259206161569710019494687546757004367362612723188217948768431802513210108336130423163510164453472781672946333489321894939920941064192944908356126217869085348881910033188096264082933130857501335857944014800353212390558921062369112660766289789388702644322686897879531906362443733747338250897076562988320674265590738605017773745412385173699070568461431658279294756982848801922554792800219763326057439997982225814352306363676941352538883123496029796460702928547302188391472854749059201491420719259765044279371454989266820951847304640055827615469551984817478128099580740431801658744913524921573195736669229114733608993719729220595702038610293957010957770785605914944198796966136085787952025933677930398707518345923911324425239351305393901130327778725835268804329473739758407805882288559594313045138916867410457820187118495901985250162162492625757232172309655220762807110956752326404928568136697403971314737975228701622531595073677515678480136612174353108257651310069830938581411576326128064870020955323702654142741783995425452031074672432109645435254831075419467369952307185746188864119735355095442182588908911950946195298539056759956469192950813626628776687156750474831406344149003812111270935961086517095422220647609990966693220498649973364344420805756273261783930720184722976667351367196880394142668408082433985924986172456853163977923068827765611316855581272055365918731447846037211499997724680247258306237489125357747957844723177997579683672475616422433767080734839536146183686756440905328073494363672430291844112773743261446568456473459876832269062049337134229652687749513699492129559822622650944033412668920565876252523449273263517855397551093678175540694666507159682975149315216659680841491988811925419093974165576685380959475428145446684303842657151668216153633460992427247759361966533953520274640411562926495394543038490731254974884770184826927823944240441516767177240435471503215663126988520193148465132155455461779424182482644807169893629933769078889263787680020108454474508739554509520541721244873743409052810605582752607488180940517131505865918563561969698005190313925712990476804751861587475604655747002032290827486892477213615724849472912059479684335885516511161412245940122857293406945303213598842082296680806582153256666304523896873337882880057426324967595246561578912432364861097376402140183444701689195615367668118039259409745835264392947799388721346156092207515173950906596091123623362950974108051041003073021233607662589076393486395739706272842881615798391865382799950101163947193133368343672558919165652875453460277468321389622108461439964093778205278685646547209940480818313962347469972409840183451361299607744025592524808256339511693462260834388612674963446981434149340197973139540510443209740553662521048372664126817185408199415295546616251890566972624023855608148324537814483649933943696316836413519205810517410219303002115126477397187707707471456026868521794261199342926127419708666190670558799378827604927091689552435528749255791573538473941459948801603164881193654313487832989500985512328576404521928056056186651904868863352344729460860937275189465314237720701536703349070652477052529824333026438702979147658438529661864126139210015756727806066752633046989018205101912322361539971122556872465710027259847825654043944222204979353656502858763157676161514824424232290807705985475583811791453215272167192583512162475931653363684080807975360915701435430725683647482847522304469832392125712108586608774063692896169851618354319822490337557470747946059069911892275882962732633481133352384027301147857043112343402236537320682426642995902142995246218601140667035888182263593665172463177115173800962597481801400650298592969960941974278135998463934544388075516426627266107777838181780010741431218612691024140227698992936788663303837993127254976639190943814544683295847532652798007476526239580733244715443357931482877726059323177865680409260048951133239171646468291831765212283962768813756040809439581865540762355164876300903426340742416702798022806700101177612779704045305219568251071298686001938725298523325417757976958092398752162543678600284723916945789990637035703570105767622668002050514624051832170025939960677614552793569664675507697716270130796657808304768235491507928802413306486415729614740666635654214651882893916080588456888223055844230184407773676808960456383291116003504668894942871444610692558793100433405847042914459607166585062216205415815026034046789880876737004371522002430771992158947777942100541049953138520209054083290115640839926135282455211182593851131670705250252302422422449238912162366342378842078928117445043142806410361769639173986654898015333637290027218033301521009492586410690025107862215084824440436436351025168581126105428812311752798199873662607037631410327419721752579288346396531516304237042170403363205141754999202965643744966845406961429081168139737088057656524600225689976898670155197117272619498014810350834549888375104001470303758095187857601869491709814791096020831308396413185225144127967371583613396555542073069393304829685388783333468679797820079784564756405827372280422760418530701648220574963733168021025937114943580337881314952008219286589756028364656058136025811082722191840555595001083474666525045547584378845315900461001833003146267191423243412536455407067128363269304023169650804134363580174578124287964783765353992574895507080501348421171147103714279062974705071374405639287703676986293949787178098944635788015532579694740401103024414085836098503368485041912954865326613373157537033314708440675770288020847791488370016978227417190075931645036166044195038236500253079166933113100959978011941385413286279137056502185160822992399340514235999563782499715145044087941423397663338541640228547322236507696934412424857058418513703512363376186604769496017870142644490882650587345551787425666996646677704944997538390042281632735115652342182711556277743576311744550841388510453346858694470429422972218110207875447960982785149921937338948659200569113730496187492742539378170428220750244957020883779104965631638722581135126640429846997559074914636734405398110305883388788719207463045797144413607274560218578483393127208037542110016530381179806093274438342222599708120946572146772395375625221158420451918018255869787797036140353621649543254060931217679398052270956190450025707036995641278667534248229535784061209441543068166019020730425402833766515998820364067673234495726532309639985829317761337261601046456670561438058595884191964307864307072941006027746401793743489946030264487148261633652950101079757733252779750761293480662659562055841941105547656460383691328025085826333454139073675339373280531985410387730149176414893708264071173123602288975866137999043736866414141025569661070824952371202430054239413585261885860802255348681680028498278272439901202724754193151812051034228463735906011475068716519096526859239235569779933688933723926221110214720478510378062627042591877617565452273533129431187499795811976485038722153928044196895242753897678132967964663223301400718559328688202951887041765778437710393985234572259699461322302526455568075549860190648753554141273059146551763428023340148197142823520524648861114319428762301672968997360178734163326510833684617802677544811223321421358721627477860573758442670506753225650920147892020893825495954834029979042215185639297422647134542413638567911399001203944943612170424150110629214454366700025704432282735488409675779637098313031242353167413676029250959939963612873856475994449821039391689090563125180483126656035911488752774417756572654655784125210692556091325279892266143714596065039426063917882046687322094522533177444221337995734409582002646007244891760643667958227019071946584478945402901792636185553174120983040835886086969462220213981239465880267393647418596104207013114973658215556401426068965763082918588624603233642757162303310871534996054947927333018541839008671927297750304367189959304490377186905250399657522452753331433440565967940098194439911625272973081987857887570590563094171263805046213477112487395042115175315864500639865421827402492897518532904984867918413486217540504620518253865501920733043906998685860744662382235833513101789538135140662305643447731766203767594710788701932066140220785998494170075031066241925720302013947064257225591971936610624846418072747935734920010580111021294192119296142660560768433973069306172841278925260329617823209486712785288511937444590039954404991999867170477697590859030138756873678452865676687023207995433901581182868490659392478475107779693099195663851392630228967642437133739966856487854702139469177960058641503112414692127172103261386139777108138640400530578900695780442269667541828840268051562207470581592085562932856927544083372035998006764342248111663737631598034794164798565510600607285122241061122087796553332925078219710172658902830841644614954090046278875442781047758927745826944265679430954324470053505006870278562223032163223560417696309713313528443260316817630646525177955143300905196824358527406063261049922270812283732012280271010064077378726764050546353072046357818342031764807913191025156600104074196929205144929153636853925795282309578803795751593704907986742898885424062456232983679658555721727404800244920169619914471442874428084342458372715563627617104007020963731863024373283571774816891973519628139504809990472039885005073779353260314331426004573483100860445436088973817224536493240758415897862113482375957993987430740803038922852195822023900717392134428654212978608846675052314326599048330532426077608217021718529612147507295400876911597483117578621926583255467703887137053229102915565720478208034694769860352626765426493343042877964036480378316203064015320349611291503796424534350221425494809807369815969685225133879782141931879072728121469299634823409518980266652556523955077716552431753875336693469513524408887144743620291397945410785909701805112799779984198202266251215876510923758754655675667306921905604150778234395458194141285539704079232951654339075848359236317735849748094945285299200767843931714017707942747049208404786021327715438899314984628872229697271688433580632028184255452876928920282148577895711005478826188835143432655804935611970913247737667910855341631040223079989037852458783758558049952478394463061021285754883079887016849644505907560884169692195179844807586474442200791243428838709711727647954268279088465512321096306951182244234373883479706483439000274961025563533821371883964113991760785833516612271383887041146288012554452233189694831875982336473273267909720039284216318362854274251210603934469146231537237485225810904823114187951323693374143153014600353922455327940584020489993766117108190696110058656610410192945611670434822493701895788948870201245136996190681918441802193727160050187152531399200091136539703539666675858147402676915474144203566607389625832254949226886383792293683833249013494847913577476216245346173476617442265004817766173658449010415194527935199466758251809524812836510769401822466251319293634344300007141032045451287290234052419674196651869787786318678128115885990189478077393296983310222271124428688100907905154323941846281420259912947005790676338265681805441042344212389768234944644076189031745844094197535073680556141256626618190544669826564511924578455756601872363502866655678896192245598889037458061900292482666907079693518425169733084200658580546259394752579393440154252967541876331776253801862153558836489262713088530022185652035792496192362088990003559462286447293564220891956055589088136786054357371352043914851858928801250318487809103748490583402490382249682572706552798630099136871140422398128599926123362855819062817690729891271006178545722233805172981332510853420273310709617701961224164132045246581137802777330990604028232303705608977522160061384835480182428758148736541725534925483562510864197735566028896303069666771484874734952768097097803725864589547919327551406198699979270793289982296167983785052439638656324077662267700857546230774183746338382793648227822138719092687154491279192882213615276599987309203847560472148012031339173881642645105602953518187156669563069861109540749054960901440258351775874727090131759513383738315153144216248110463000844327690904366342140692925130505414101269845354894336342829032159247699990252306694552349136680525851430777810812604510385152020696899106135230706175707011586112564601723654532832518151865309928880846506740699896125775771395607648848292296675031359204235270115570077420927646790304673593261644143019657700840442304490276101233404489993032542903450450718829471701215804313032997986054318550823794974701416367611057036643419642119440449629724701842461949122376545427889574564082287051593280930320737177426462500531903735510361369701294198709570140892038344576759853591738163980473815577070727099775701443906643000457982079301596687674820615133390535693347932943909218528502561274999971403894584816747473506383196871778243791393307704443161390297280126391068383004622853237425844245920033080389898899336176941389349079815345320883392159667857812623168296330192080785042518097439753754425480240535726002851823798850894822181090007146160741173984571862116421606291220099367235340562422011411646936102322711714056896243942874634283769860577327198830254877586991861954537247418814311551444951340424533539885407068030074118944278731126007212681972431795040513379829856871831260090545822614692347286244110640175823858472345450238693142143167193804204323666834143250052980799275674268192739173751708110959374261506449394681463963449313434610714838873243187645480805537915930343258996824255553631540880916270492236107855723299611100443775157957723912651663818556130798106154917055266849113638359002887421077105060995224292077765238092052914946707343582849031921944105241208068288364981053674452603936579476352445345325677285027688096669568978406784710508255871229208518184029424818172069939589640840515521987288273615757676837169342377479312556163805107040214724883013186709901855586143492592190596756345005508879639118145581516856330246737817251242973140136244753406643431126025960332852337514276459887338084438661582120996573234593439780473509867548460990035621280895192495919862804312609900537715352125144929314542787131670529137401757704037812775596419674821229181492506873845358106273960396448184567000588252418513140686936354467308498410388700735624791408983269688938672473395165520573152571173849105297751924867839090082890084603875933193699092293548657830098963825799179558600803443131839547005949863075115959912211394334295293548194403540473114793317464858992844627080926156291315288585314601195814411790552470265907931549945629927231385199279838103629112197709697512689887140992970562802853206956367209705479632274781507313193104638922871756505501275152164410395062270277290389272190785939787682334128295410490346591988721885911678128143238334203809599283973688711602866878748577347642615301311351851903022343739424209492800961006641967189262969169720506245580741705992663960234971814548096423841996258847648572294519279030854189031017339047990475893795266637031101368770985432889036065589779848179105316583437410889632219789781021639542121273457378201035020410661324994312310091553835228497626991006823744972493718998420700686409004861675688006774789027434608274735353498199769793493476215105834537108988347700194010433122784771011397073429559609144445072988863593963740280481472555537490344170086704319045095134785755696149463400964740063720958564556388818360089071723390204993954053735045114562235269731303729302496226218311120219419961597377640125251194190063727394221421423418887213342138709722390004280271443092277481817992452651201489818727724945468776453756635409148739815612597965769039327711746070912031170847566703594110804807366472666538497563968108805349613936583662656604735720526874374284628528981097415796421960304116899605070837138699698229693260652776029605373891609234168585633313092941818078488301980002667598849634006453254861630143907553110883347568148921527635614638562237055473532844430728502835192127628853722451733106562699544435810749239007942890054996765478020240490488885260796248220825713911980965171563464335464641299914237986696426468752565896024534596535369997380319761286593642089265893044875611638392334734812198693380474710095186950820783295341950305350504030411780029917377552425077716764446465216607608676064612038427227070793289880111516225450959740954778971243931076517710042569167349795054862390281905883147419293307420178055230085604130390981019074464746779992264948132768877327337887537008349612010615969935363324878592180843525797579906738269324035879455220257370041000755569706603502236205305678234065055219347109806870609589616527231710243068178972183395337767415421430838566475067742189224633111369827259612843609138297235492030067336645348916945414524927043359958265092588020291310430146336056309747914099733848678612184093632369177883495918516082945350836889456396762325968462019810870775668993269280258814743727349804532882783911959242753217147485827831595116536598698153374571804658031173370044854897340534150625625200474893277147635586135754499290518770710056738447236851917564128096002683339752909243910415892552648474847532918939673405306917892236663454286800514060579550854768178480008147730787353821223487084408669693260913537009046081626666377032091634915822396400773017750748034501012324876394570483664950266949182050973462201689168526392505883717488112459836840782858622871213846806333396460676267253724965159297420122998215090241570360399531999817512446691002973088295895752644364257809840133221556465882607045768688121572344077677812252226683486508714667880937384681206267414157389605767315407763843417612779582612253982075527848651625628324027415721903448347622951358907676923206439043176195288035979358030910778385996096673845383813929719284376233219439724294867056178004841889905069466198563022185855252891104472115843812387543896590698223070499332515872227004807723430656827120176882780170710766440075718306100471168195420621982073589587013003933441926674548521104563855916462936372430451677458212643861955293497301539377026584223054562941909446560516691699981072347017140747094524555763543614060908897520538588219701900798608773619984000216662003245733561393129653600094546342832237440968442443638407320286639272483069234839720288652685332094550883365106780372559095321405133111564265475429697683193885406849323362555587796105589130772914835258406848384080897438305434510195729459573861553128565076968718759427828345096447351306169893146241457916941058797610166333227462710268118860776843045988122148590571684414384533613292798020344264482386434826238248916484109396932520154650358262511954993365888304146742909667214367413612809179928410989589055718833780001778697064997013918643752005531550546014244677161697297989074737386615686012145678387286252295319836078144888249908444039100739840181130493999699525088649644968690918377896635858008666184456309986572209022593724127873707890128517215042220117481909102572132540686455172045748630744601647401905043515404344518243368805783720119645870779455668853043754705655955482221604405341578459860742561355422213509511624477163673505579031477879444827793568526709426802679184303390264214585039562553769310564825835986121706789281138849577708818721773509874833260909060236250420930933843435034588056057588817445655798112759632140496653926662616897680269065429835415119866225575848086753788921975887940739803702431975356024657776372630526875729839233622917114379618168676853763276218115549828740423851798200946529361561599123857818382917415352489694811994057316743698275787402513986110507615323458362840541917009581714481492926259524286942173791827837777386899540172678280146305091016227369269852320258454871221229252189196209476426883633516412572089753315642517331194201416677758644841633611703794893828007209679781576859819675714653745791992094938698958591895358606860985553940128924643352340547148250643987300451677028038332557226485398999546777473999060321827677473924406516914236303518949928193509422554639172067069076366046602507519708045155030308094010006813963543323395877259095876849410802201512558276141406154602095180146910421363076323101909775476164687678895757190883657429383800163976759667611286308286475709420861766672773051489544614823620672760399720657134183215475494669165486677596020200516345098815850924138750339521700451149459668283509413572390897362135706591377873037753320923735584807169927189764015526119638619937005656981767381035118871061054273965871136671171209790694188559397649513616042393468957337091132983133553838700390579042922925624510817206123456799814135715077776320374042819584463468893758631733975237441466026468914491582937099597217747530004677435311790342557155284331514178868212042700779924996742241599709924831243360529202039402927139596635665729612273149021402370274910502043354292776314459695620944298463686104620904490220073637041096701600152612688472429207693021236805538813662922662648573677051369315685692257300821434677814129950943970877262708024008700825860940028748065098240426431953771466392595999259687535391959696854433542519445789390111833377145583321308045842269457566334855820275558151405393447643970678409601101042218769817328150360832575176685637925440979037143636463989726675753857104426437487650574211237340584366556449527947403807402465873518470164125089669948440430258721324106869097571125215279875310036637656140088371432473930227273032067191425958835132349728601538568772775165670076519485589117908647010054824488273682364780522522430954750017527522821564215408861534976827357284194919932788278737038644569374180049929139709233207023554618815228379491804114212678788374648778268778518231760057060766184932249137234060579520035006221209755645309359764327353972561203757458912769326151480343660370603315662755713957328588811257593244220855782397703446775985051176698114429891677638925087489043267704287377999576845341028351254305472900921847533958146776083998242622654420130376708290001141579116612128902129652008043251404475461198089243345173386181223513185322785971202960852366751575141324053335649207609224315039521612951268421804504329555506458018620395401232717250993336329923785840772569446632730451164842794045450838450348559049853607549462653714358272900905826938299977149219938535611523099226774665263094445258445582797742364091598453683753698007807982546160799849494527185548112926438283652184215989921152342950508419149613471191285382919138411055688955300857585762423185730355694046458722704250090777260664533974986698092908958220358239551514166719884658567193528487028836672911313543861318944245733224144703657624204366018055543749134763990320313188794393907220515488073255832099184601957715272399328805505272230016548933818098186743983224532924830290470160813939422567017010604717400590833667896554935517342984889710145725264341089098161522390865076975534288363471839656177199393176825727596127559824860229472513508089820556374630389893011008176266998046426883331204402941206721754505809579316349015417614973632896000765458523169638525384711795105941747128662858796566572615139144976362907023001787261660693860440007515149922736666147234031341557158999368519390370837578938553772806137131849820174502472189983731940250596552572060436120905095959021230241379457009300542518953898755311485332416549953771409922684055030557730525417858434844042306920707598648361210062075374525771364213196012463302953171156503171194919079232635624366545676265841473351098623716392641044102234650093727181363113886324625724760169486405828613920140445531849498325236128336840218291341188238560260333165656369525630053423600252037281819960214057381808743084955338460695943754811640571059327447105125653394979138285485099463513747287510518145201417602837875315197434561186134443389921211348659381328629045807114021024340042765941180946273690398402755765733979083759995970068014083378323358285692773079468985393382931091457760759277158816115717586254057472866070789684621287949977839300670393794417507445915174318865697206697678104464022058489497590557599880712521505128535930256945206523119506171194592310483310292061103417184770085561188132913827414834596004616618529101052254419554550754558432547008893354407468642426449846867167952021368511160522314847725645204228822277975292412147280675643185850654658264524393401817811591972694612280730462023930741561416816335693555733047284373982993947909040926126830741815741394545299652909267387818885610997005466654122836984752898615378405549034162357010915066398983145999372361911080698461546528101569102740962242365524808053518529602747514623192463475159852353564906837195077012281365060958591249246223539669217777426990681432101948448427843362118710899305878974537598532164758832112271846944804569430520768018792748614373189353415027508684639445819842015449928378245751128134216294371510765106631675033283512218513116039598957412580594158452596405874553243515674407892736488827678583016754557902357751006076786266916104167933461422798669961632022125942804370305963577724684391379912232098869670582086908677577172141948753590139187432508491886827515944009139253256794030268191321702801861461796867226145674784577745050978996367752692558187621759610151650394232095454415890400090473805053453499863843204125104921120066864538151313822869768172968784689324757763292148588262711833161466233078846149694102459508136591373477357073707059315266199722185443450327344001503591230002629844905929565593470687953869093147656948219928684211535439107672703934604572434899356720545738981454138490372714997677047822134115806040742839342911667725941276392219460395004510941355172900383377620570117049436147807762354843417590721119419902206364498577787435546104564215966747089191484703601343598878119806660727502195422926615992847422535352468217004031580138630834020222383966007747734696167587789587926904945289433484197700334325109224523461984173012944567390739863644643805400644645506074399303335557527492703050733856646009031607694364555172308744152507475544496593897869703989546118887109986804171122847778585094208746446278352546643753162750019888251112796725073827671328799575647674816600993826968269515875931079327922230916744320550809649831112979841253995584806950019572476603355420079590959871316416339600855783913628165460607477768683143959860657079583246568002278004327865561544246928514333797632636526316997662981507216443881777654214489203786178436666600494988173423994115584074482432301375604179858309919826181822784382229615906654298310291950719518678541952698924862200102314171254990166534677183372303798429654638072584078332914654635792404942332951123244703562817066731815340627503185429344784971809497487566053711615292865916360105690815421678663008884880044692801796731844021470617011699624947263872571104839713250339434306649371847482978504141410207979372449702580732517282699400070151200633672044256525496192357994889261282174133079527852808434973892555467112278400661886517958131242412078877209229275689454649418168333245592887799405375098671438929548006163354777522471046735794955153112845488461963421217289152908277527832372778521577722208341444564342847614597026467165861464308637321201922815712040889372866348429711723166339700018671607870953620314017222774438800604505925533401542161925996668000227646665077378156167804331374967049029948098997765450933281415994199854761181879709617348549746882954439697080503760354205702771975762697890483653544061530953691446009021624798990042897995728764043371900672138846857028818761317924321683676215305188840404051016857278896595556939570087075894884891989795664315327633702408450214753715370766775658443307627321437479179044790879916544130459119475519079566393040959806556782465344314844181335198000271707689820153892156604170299867979087959186040532769179164327103540158448814396066220930211889172232785324771555310556753558709626862206623991174967756594266235412013348335503678456647892643736590488548365131618039032970293273344873686257031751775715064856916902891807804618080206614842611142548526881406610812020517599391181997653220753642312138746954427058726013731945307772613895556735834387131524166593693273709048069269527007511353794644104848694185520017876300655749167697668953589893244526040397423425847510134733109489753048935949601139498851294005475437687369062966603561729193979181823010986609348266268413380200641409674207880898243764906469067761768758654437332969909002349911373068138395453859871784240356490126696536527085146921811340607288787556694773211082523313053704873292975981785031147615353121426439668026563308997364487577841037283484163399999974315569709337369763628324657714758916276285189169752103047607804246510897807293717398771623711933414321628990640419439002427823698583264297483528155699173984245302012540928490018155239187289446975525988513566876659084095285627636928992241947772905593234515588916166827451502562732508749645063629891331948931374408869161172428134449353034305145837549660120521494353833379716675162029736134107393728601305737235244549200442365061521827105325728812660757464421554705623276686444207360171726700148988498889962670038433192971530446076290265560834763015604438894165486878493205051259427101800081222262822809158593913630338587709426726691127258497375295408475202723931372593180611911587186839169339079575746620395744993756591276122706103575036683809670483286768924071150885383124239523476871777476176357652629783855880188453825062593950068539060841928364883644001195586598165237076940695598914983070380233952257598481898572305956703570030181564276192323495035926210147458074134349803031184053197294780701569619289447256237554928869549982604842079257499300167141891222280033898123400183499108476544771398446598202812848614244356963844273911598513654305812896240362862410528142876471567728321481200822828211048571568434230889056147949720771885184319245444027008104147527241544185475286044802053560732186360024377810066758448222111650828945508312633344627885369164414249892606101297139945206844711560594064020536488409564803416445816461215655423763838119421179868507073649195559966933590733390666415863588216489197878531125781687772507272150332739868229742994257423823780932516768567167540295969729651909408109400760434618141409689876594463343850277433468105491631634522308472840528240672193951109813546048085304427680153385864593235661326406210096292227236649303461193965936903285989647249619069407274775181191192528467457164285588070503580929256043767524575454794930365242309939371508833805474628374310556240569153958657568369226872171485114765687487023129570224514323509848929599078170219250178555972670870638149169909682650468087677626415634906600877314793968863791097409353707359950765358178141228967363257777552980705515739371629018740945614781029853428252735918841623234087826863010135024044767300921103089868750246408591181117387140452583569728560459325838972969822453506068309487700791140749138969825940594640987792600818833076473926521485368472998553322735104039662173464159757196365265328890167534390170841609485250132162335307255422625974868097269037047227714633787804721371306315584536774811439117014928483040500042597309914312267834586009840659129064122950303584897785707057588276592033180809715896473946419108058728084514741391467885204079233009593586716835307416861769723798618377072440762983328412261376612067561451454953721419124535801999155589469496347412864188717693723424786105297293737903242988522629671738497548273304721201962961941972120448993974350355036477389245148226595980993411020187924427880075532927200102297020220834856729081259325167232241022722866114412968568165558923313612061331151669728172229954421432032367858321185331156869775804302764800083376004225459479544359842858470374278546215587358405112721835821706373132814751278032670554025797928965918918291733223507149271361105124786998325585077163919657568349749285947068709660129528281405374227768763881416944444718166006842128081429741392661972464152052777704292961636646552632058735383075135183341992040663902289086999109863991602311956648537423251038257692366053096880905361715507516244669917813239645400023561257401230648084126502171344393931220777059313693316128268569175734084985501222634112240861720700188775489415692450728958250798307097139735465901903471082179773883471961112090656467978802173648888312486412061322671551595682526957445822511897772927803133284265392457627362232302599002609345786825551056279864983126021310946869033683848892694166218351028504795515457221694546147732678046717979189894602039386651712390917204885521880170635166403279208396473342925390912632544050001465607315502249159036604273352707432885086405111588951033677276793489913988427625909377284134802816114208153794331960206949248600311344241444761936219507808027898980954693352453954992808181753729109321342142375259510883556158123331577919442848667557329520988424940662260297401198475521829713669611467864817197492137113816606329200048433799596170554394033972002670838938023624867233539382590675192981147061568394639677936048958365552128717123727317539587088161871841663364069669066530346444579123276795504536139567586522028915058750733904296755620826965077982132698899983319963700865799892598865617594006926919391319794423612673867380325023218728516566340026434274083250087244023013406548579249512009085990662097372338187265665783286153174484421491678325510207086440417692668901201623386287363977416416016582139075574634757288063694086645564127999441885761626297963441874387565009691991887937294746546522003454251211809020299923582929658328359457012318877764466930468809781704060198926745450204100312754591224308103375527737140480675748858834391097885618284619894370651971893847192465156038187825251072542695964251029994487608052528612803017961451103271694124316221164240517657040080896620285953149704843068423499595426047946271505959735898239887795034254014866457634074782026488674046186463257885957864394330980295013506715730779794419101271476661041434194573836839655330106230950929240856084441320636242011341309626736691064591360938740075025726327948796427158706459066230156292298814709233129617998773333718394009693187260642311771774873890906730018525805325674065564155019985508408410226172661041647569661050175195516531062328768451135558090585091543052845404314110575533171137639399782408934989731261879082901790580802650614652380052905637678740174173377155741833477293112982938545115477715716052777373517960006411334297886566391791834264284899301501773171616033648554555298911437616178321818059183862061413862977877629204527067892308937066195701968832341655660312195660996954915107438994943480889851639986683421355053145993269189415956377215384463429004962895030262688767647798644679655214849174172845303400515720666968559988368230957965360426045566112397197064724442581501084891263234989708375165763342144928558432261553242214480330736733854530932690889862911059605437557925453220687547092663323922733632578117219085423848719185716777173204555740459022116352767574099441868350976683510317938871671693340799865911161596824718036165844134480886775188324132275846302987207195458049727566465503756009763116828624579949026621721213467571676196463478107518905948673732203516898905251345101565743938963968835764432777907103459216113903817006284171113648585216263451347268774551312831361458222558062587198254113576607187129470171631276910471728680859129682770651970290854821032175103904609645391508029524167359184872424659358950975918527805860724847817342100981380947167355778933958315537635483506426321300723774344487977418124822890600337205515656873862241869507526908792867891663295973262938868746851077642831015735289579515697398192459686708372922885181924883312615553515742336077282993665912355126893639982528747272177716357394341534281109176132536714030757050652217605509400924879809571018894175579078040024015977372968154904722751737484346315193007246643632935903136799182366026863526012665687062283194492109234829469069642185924740980269589771881071387665800909751965913558868788247619800885620681365743029851158013982095824244214846959684548900553730972239057602743628309426714494050431495130884852983766360488319426373948652161123525585741778939747442641286679503240976499860048224312382165036043113665213484559460707212407643306395863836665515870679921127183602619848542410232166681152522684501023497590196785252177116496175729234838657980922479437324444890310007806308895582038120003970443230362562445994314126916618981475650056886479278020666700242673843171928521679364115923362470765844230845825357135949191910683715721140484259481110246942436890172812953485547966123941918533318281153634796955138307192755867061005786218224358116916768340037362052189098253869999022976930116524529804104848314425842024171082655829947820806487493538929820784454323816430620707760216319688917948137631390555008726848193592219115033564916960126583177115045899523172017386455891196120910656002651752823094484797865030819646464932568057893126244133867315277216506503543595242278047868034178187312446500737058997791584437722292527491705972832656300677815902091632774666665508385832249005620185815220388222797433463950344232335303849300780062983678352509014280698616223587601838695234293753385180172512123286878456920506270995970563565303513023598292183657622729309575411443220741404427492254173070014226257592391839707546565638474791078242410373365156799623228740311787990635355632935492750056623276094336242801946840588950585656455943012271767133778942779108189650728554074877359403063407721942461037028416212147142121350384541069474005799739687801621524243745431276006775267023766595329902033754534740453988592877548094793384598939953486041008842355201486363549163797669763491392318373006557661014700291263356207378535142906806012187431746432351276870890134109800639105807241012542062694142853945381044537686265969395254127149060046126858085285067537955678215232982874068358115135084220261065134335599386437239460294267000236818824121897028261119809163340966953561240101364797346962382946975884430833150002300034111774278024124450191778772045372393241396754350120792806462753704967099929551527521139079661028443634670717187580570633933674576355706317170818085417785490265856256007206235089960192440245499052291221456684646422433048307317196024170457541126518588335595193601837339076672825774303242471019483940777144369741874828214030061424798501115096388402102240851053378880319841800022413220175905912077893589519716591747120283797248169692387181345130907194608391192585311961944731660987088551824248987323419076839847729791548605544693448932837937648891050184850095776343855539965487045015016693657106526950704416376766579860608569072995385763111878430600433344036794546523906237234794264593706842406252557074468340847059743694672172709012570728041374486056944025101537732518390174524515294848538479831213260963336827607511537272023269528529552749591006291283630468887315655804191469631578755525560890462135027907866666698176959485279445660452209759435804924540990690591851667870531975623199791483061681138031957406066169701716467783596413696670189414642268122906950619724883141341059828642271593652582409011418963250116844370952800888308001466644956071598588005047003177994834198589928873030789674890517358669198203162668697205500130686114135397951645096912610728763388519968288263998297998342113715364318485354069807126789685747196167680819442658724655366250256498468765428773356560753004263881996464413632775461946323902481037859004923717564234660143378344329216611636676701175637407453764523718372900511117923288968950717567288677447153356716389452871201251436569964495290797508798077278160346796848104942667110520159178893308024488278808250460420693746593265463519462035703850087410887943446220716762162807076945777733707575923804077991676690154573651196412516410336177151619932538831471422937293213414741523032127038410911458318829504228982269252179259603783466599504583842998909182306355655473492272605390503937772708892984432022133322169831322369064195026949316703305181152015218240259577201093135847267182447394356926391756539617906860419426091470425740510739549248610333584609471017612967424314510954436231654477647628268170834725419182657342141914246627747449253298822049580098423451314391917054289548228270772763570574814259360999827281728142829941268598484577730891701326932384165924550683961639508873230078302260196596507360239011818287073378073946522618217949165049920634391295275448621248103984261702639696200684413237985977800531348673490539918645760662697447485441062073563250116852932306893666588847752444088772457297161613680789561704161037347917449707106508668929498201301148598922998427896209998654152541681335008326313086556412258474062556147342084465662986460988329872679960730700667076316097490923140048584747490850909211712154011208733437453252336871409124882277649615008358116635959262954328399801517881164327412318488323688514260479635185799534384417354811106276097450950622722449471991969386167241700796096039016637753262306698903285516446739828234221034485907364897688142892731843636471029982008075523795450011633029955897089081908803336422231850005638766003076915980397020595475776524434505220963359819806991795606677742039742574788352868125725438346427174663844645249658281864480964856293641205380979325798760785768798716505272233081881231992997011524742463657661308402104614491758790415340097055569962233682894516606025271540968644493208316145381265456097997763241113909681194621803862364088908049355882686700159823179237528733399794526321502782124918269354164711231650499537871279847881547914073481279117496859531561646158562605768016650305786116454041974341420005431133309025554041741609187577567523817565040236069980161905047373197717414480224928936993688659992539103493617992840520291670323510224328315098308959970124612539441911619213890460007742559604851908609348730192972879615377168744595315756425393178569392077645781634274528837603688099508627274392609883178141175998856782584704935470496822610244708382300886077389728393854217125114169439018039789838722606722977615224815851170552250640582227333602654898211374346620071727645405884161399373553664898814500024213193527119494265421534128277457582751207168968621450330317844053980561914084753994434077567692972732972837848937401692230016233851198360298213570754390664067921489808198051307731847916871130579574929018994675909823717105241323560637294431571706867560368186425421212930504221187272853875422790899440363910373711207849668462691204346397543318818418380920164995833298145765703583407360208894233479862667431175419852773029097151405329613493102893229127134112344694708125821446065979271547172903956034367552288476637569136443488514299488285915938157719747618996687868838803577805723787202236374835230678864642563216086248796651595523437439431873911836623464670607272350309543375154996839013300177209148862892067166896230612164774999993191186053608093507053367173558082662753027965987285077469279616941729583434581654217275009898215639470395699381026950168484020346549907015526342418314896425267196826987952445204213340808310730825496811367115408441830918659237701821401148812659375119627524185479932272126470588712457777571406308897681926541287869491479278066986455602482812990903063230930046670939128360610356298429982575826711829661984496883313654108271012722056164409956643435393044263532696728509209872892354752365642717210279546861552719685854620241354126204442583404541728913578115780750320991739333684663971155379829407570290417345956511409934161430225416727185665803095078988794096652058679883042307794816146990206068786457980613903907761802152648150489936456613094362633393207955207861922861248688589578699743004262889793414509304502854139339760755435079093036369983273420471114907933708376492908583788582066356741503582789158039202352284426936997076195097278826767446894856357247036418011753802045467369069333587262344837409399167449897914792126384502992741088113992187045882064105982214469621738044629365767921018424299158596099295542143043093184229660665273876244567776015659743332465321826930630605340364922180107486496619205073652920783515711434154627011289969086972021821597261972900652338231732833545509023793033775790740715988759422673253685511994642081995303275445441833752622840773296612084885478043669633793264919567617797163508534958949055137535758924400078689618121082608047585162521821123113921060822659559756934135794256152164919999143969512600401591834132663034857531413186442536972526542918105260178258290926598602304412275192718625950552256666875000604038722808651243624777974883912910179359003725180116807741174270869025906850912728486618406974415943524758583596486434036740220554341784249055772264848105249366971644863854727720354691135919974381570788939161689590437583279935853681032048221585172959999297930819678286868089156283815293175218792491759753467784997255394358564467531719065522451748376453991809474048789133723163875632773747204521894987988928937502124479440297249254682532648490809930243532978562360806371609913187788295844658165877393971835789193534988651275027967187059931176037191588445841173395790558165490013883959144262460344771444794940839620368687978516257168069683166910022498836275512055823762054072162872602546966182875176893653267767054325927219038302730718001022621587882965143020590502433936252488697514786614037488520044541007906924217577649227071248218073704831977936733018722371536039664202654784741099049048611281892347268148241902450098556226247029967643961143732889709660000396472574861372798466204514210498751762483675834777900909957548157513234536896114510620049239869797010730663112949575572312171431680085402177159768341463844072420195306807481515000928822821285668954371159776179534775922071204551254018359525019805627704009912737274575916327737370320518764432244070571128734560423766862341986636268580825790053443054061615939261179704220392665088843392862543144478763111375458036799971833356093114685737766836196150868273018530218425486517293529939731010511295516059278568113375943187055812274514543404436179617523425113295287541425942777297683894427659728533791131587480644090179490022460265613956383502146295846032074619433033048093985304764390041225131029785670870660995919301778487696095703484848769035005139267369116047069470393667517029017068861276710848519832137061358367552428893006271843071467827611548367860249405198796622707404821088749958999284072569816373499250884166882275890341199096871222148276577430949543305662481538645158521539524926887199893712943101261216306011437992619383723288789149124844096624484881900667270326192154493901000313851757833303089770429144275028281575998727110702116865368416356328073285278887930768046639613408218701003631349341048622687875841347187830018644863257522235587863612573275817599876294915928571091933410459659597255457812590736083060378893549913158306610640436971115345172254674246633517411368070979084892858949814327578002496586193165853541814498578690046251512183239906187560684175107448000835990997402285818998551259944112367577249042281207930158812411300830908453158952516934931584156254925459426082113598513221490736192463516936466243223082025082045765724327325003755786402304870333647207874930307464602464514524050532754217085111975148242224645766390207223182468240337714957439126530131466156517607303276319995560066876490851861996395200334330840713720651736859242513045460677115656336690270901534366683212980293343213072011235731481451631735323005107079553802258139490921631467309465017515943575647444027472731630981484617071568932473272473138912317408653597654587687278824285764574516042549524653656193948092706930835703306807955791093670441536689363128149952898444922481109700581521647728153104834135467470084369680265588726871959892726120464621418768422546383361375475029235409265112808707861731704142455065012376232788292570155034589346455981017894901619206451065403009489067797582950631562278782321764078376682364073737923613053111980003778292823162013827089038503429405014472620273660844870250900209001482814626286886610952306897888745616309965279812622729001782278345483928935429075448904017024970098620526771793803253392408682507896460972481710893189028316380531204914189951563259145944661584217666765441207075829028706644948745070286907172544742194281409402339046362472107542600559322402964322917662311577875480448661455720448299916232027907830841791871065584623904326011970643511747456938957204994055564127416739598650711090045122568072530383818722611405562589275558868335421608816206350787494568672129516452052518252951276522834122423744392840916761603614587853374416328309926680251064737567858316788908550645070549014503630864437213199520396724813231798847838412708571135556548749620082094463346852091510456382908319754666481860569612709943397722459128754828091648795255149350816716525176072707922269777905437068863915529441450123245034818297850108481304990644913380459703530301763001469691902909690172043765245823771619209483655838499149765923794012437707080961080846188031362857604519843709427982795272615802241215690117513595936099171154373544564791157954134172709059546776974916488898851937151165725765320910254877752088733340187913904332019433893818256622878979466389334953540620527978611898507498445622873711542922108847842255223072974520826855096177841078322555822039878099077833631355973829191387785536892040776764068323001859402759386751249446540422533939920581657214091417309521203103450132504723433437154546717843824420508044256266968102274263487697519743999777419383005688699592355055884583603336705583096891462903455002732546703728838062334655922988615046155423709926899915319684403656130182169611702008269773582059075899394449610958738049354768895570778165935470226135413227878442351956372537231071129583134550962220487496068036591864887913394913040036729595199927021809572940656425373594184640116839650373043204768252746380859737064804439708128995537488953663253617249686718715604919282021232426652027164590059763854448289293785707935865833843955082417165167312046644152322836385290154053242042464004753254845642983390483788816573735880468105533042224717089143682457528575041157037620988716493533915765639389269520574261959627918063862150307115462572611406852003907752313512045434982816902737952230408235944918033650257859113042984059965193386776631700628992702549646506452934398256604331268060066996442883076739318330379456345796020579401752307844925040882390707782178073199573380231037984529062653897603164956841850936510925614392987258628330158309929571896665154400361755077809744432856577610763048828261923151425409133831530372896915180576820680669773895589704949066262611329603403780375087418326894053548045312523849979750255081811765165203577204328302248081813378437327660801186101932201617059718995724844039915846747430965069473990232698585484468616578526842382144135898355002987710598383411854295412760818993031514829060510380388629971831183382333937802077317342948352819723119802112293587651563421091430104882592356478283575369924156281069293642308844906292222118092644453524279734468366863906512623349594530211595399812480561027806282620965696503502569773891062003099712156283735888841353695996757071319564597091598828868992434330927817654238514678205527661058850765840812018356591388603532620904408624051354672743776920844030607895832391221567912941583045481825663092526300484635440319175662028580797761106689622650401448182100913039788171427477256448468088427550981438306667375895790038573571079397529836057805546192778310930370647053604670210033746823518253021745054943730515232863826137251717523483058867473796450626333029019422566776613393513766442461090271891288520166256230947763625062519809897862230968250897069725583307678564108260263204831746048970548714430130920885764444671114828807462886415865266654751842797203239586276175974729766311908935361624504966506291312190622924743253297174331277516871781307616201763299146317825579704735106958233573965860310132201252303274108925189854985218379704634959814752792639687897348101567009616662519709043120724891644277276096254173556603238102787432601079970986649873090416129736514679296081422604862798484539613979870970778030209624544034071796683884245181198541402612213408774374277795127823757795197335233953267351137760611818828717221846149266885013553233461975256960494951842826618155917385781853354603355969228592216699082195840614502672813574043368056930072172266687560817706694702919326785971480814637043512666671546343253635600948456944902992458777487110625542535549812165891724107205764828422412344666397221515428687586740299955514402034019623392702222469296972326519166536039734839570125538959668396685843597098120035291603955065679629034092557896375777067901020992391333587831537745282231832936954256108042024028461777024455111824664304412779911349230873181310801903430389748416344224766397624776596694514420940973793215525181911810951840343489637523199849189940134937469456478661748910733419896090739438809892683957429554187005917452081231236920952295289593543844869881325551342396791347791029612660288204762207843763154344917167490881875892521513654052685329601224384491945248498271589630705234962542966857392789067901125053801786111473066056810536452681282183435242140474269933474914635090955170742433453255057208872984398042548007543964959113810643978083939180000800185271837034356570951409475681943124854623766772205270895997875714407381022703038690377776937287231744174853450689341287482544274382553745674250142298289288240086223226037209298000181169649062571387191655499769161385469829997220089438179315863593983095443905560023339657967074436371837316606249530946356893100719008141439800522347121369401632906634490554132090017283884281437718614261019469015011334554538343331818116365677778019326165226599014123298457769003181244790081998407317043657746043929684633669782053050264692336134836877462633280784737329008223131969481249057270973565811450040086181674358760927034484794782102858195279753820704645329889580693867635432861901812323074067011187708067648149076763612953844639138817691435963631165218741894198883910033122644918611511454404903591579340396069837403948341397550790768983009107194388164581868203547214782920600250508470039911248220234753103342568658029424954774546067226149577248450809180442555092655514515184574968958554149903290910337289164684661069155847683277286235705319772881308716971117080556843597076474687132860340815568378026379734859096219563288513735231223778657874533670513540086487181886415178456331047639271421703259546765287403812746029028834632115800487709836770248405401211486217162345883877208914583578701493061294926032731908207820727762151842963065713372784918611726242060117145343984213761771941955478345043507513264734572532721980557114137276091608254413187427359144782016882601931968772656728568166133172214331126925425120950321503344317835798640038552446652046480126940903527353984596921052083480152638295855031267815108952735974867604558241667871536464959976284683094974892740335036808547521237715702597134394565397735801296364310043954060142806311563719146357360944905205960101845152576210670584894266142966837352133856088813488817776555336460239964565658732758702140310540127698435279506438357438676714874238356249462326203484889409177450782438203916099551278012369792205077157619718328020759102039895641952778730673205383995570350604854001678926530183003917808552226056322612050856480473966957282276038279852662899126167531038336330498759002696369539596593795440657424879765080911873931494913701056570699121804003545275643511389661458991968807828269642098586719706524663156044281703984884902864844171525136640030022594461134627425126224695783810370663444631052556332808240133888527738146072213124640159817573475724715155051011792703469584436799226972685867278321311233038689176965706846936175417374283890745235761359745274018289156520837795456044254423226076647203412649846215580328470440858707240789661981559748938236177951242766918156382158414311360983547120274525717283493881679481412551199917106451122700271336029725939610534008209087113858568064629541469643907768636025987481942667226556657681306054727896199434607331433812062959680983598505690690838789734722826901423435158676559924104663437733573803811148924080232471930171422485436410803157647312114680835414702886474394614005331058729080368642048701863144844949933332476783114372007511546585864228151833639122709428937561961504294581351789047791316465254871299629018963630883866368072198649724181090856362679403215288172120554055556218253047549821912965498052937542440813405800849494448946061916623001584074237915284281378789171929596058369233737847841594379772015269744397117038024970927467199130421096250098878465100776645174645594251062695607714217608568563074846035976970093021993226526873649280619261182740984720209964500567261134926448532649779376120046793418393100261532585114203943361197672391459083123489061438703031664325768267933800924771283009780913449189928104734464256610081284244786845085719103586953734160980052213263204624892468225403890894907422340604402063014277163680592062313114747064161013366442826096411456743397229722956412631975970907535065880453044429734079065522378837124712271643713819364756523318337755826957653556639838074061843453385937689579743207098384655568890809747432841957163059029292763883113258444330961642645876717322502458336186723995090570185129436339092453662550400193289129915172781156119226734304247463417260614728262841776359462220582952625077115694063946788951096812758078970051527276543440306579082482701916245733427943709431000002591076487957808246797435494321277817538859467722780476617645385916328827238293252214277423170383609348613034867720246889238496355669411702144921638386790911476038933587760543795621394676648115068664350645041271429955952821271625003020336164457176119813202218029531154592665889246874373320790133665972596610658630814634923360786402487200025925162799647092727597140787853009556824567076830659870868620689248440459027962237156040797030603368135055892661169437046836281876119031078823872486209350291586850813228491684092170399354267153243718504033027844065350582720481864575435489738977807944707215091586986161368852353751022630222360241310945338229019596055653925122017324162395947838353928417397892571397741208158705495646729871799014819693826062196242420544734434342325765584519782140699835411193905502643696879761408577647889888649004431110997882631476043738994040381123019883123141507672419535662615371600578045435754807174990251180026975825076843376114171500854037733592643137125942609138223802409393603155761030759146337499053605204392646321884005621128728629096484760977478829712876744065389357615740137422364562838759912619539585496350492262953550075368512488345021530212586663289673124068084287641056657283339571312521629317798758918397137297800173416890069127868844484056855656444648609299759487894777790148680206280892074470077263898448457673380502307623167002340600988445930047341027395530454834283074577755472275391691145881636462409223237413598798056320035614902371015781513151323106969016208875016253938405479135508490414863524984760485703323304516718026580921638936780667487944046091085845368509109184720125544211994185449671868135121158139150919028069666149618979979283932626935749479992880068575786997654486758147936732185133188674465497073215747226743129238961459549427759808312805793019374852435173525096970383349608427465514521682529458924173614815531226309162749878573967036194440047921648237332712293361910292563911718351700057863683094899841357509134820742380290366271352087427677052280634003036562928907315608697225156017370846530580108629293553861023455364631434283508478721820994603167039323918767486223445626274290521181698329825575838468382395991583281125185668425893845421466505990918564469006289373851726819282927110311987454890803631044794957242543191722897857847625316127232493835577220327565648461528208705530848300724000243345199731016835794466819615554231710675654871210536654135733597030919090386673235309372717470417078401203971684020716414708112409365013935779523445289084879370500654504353775713324074134953545435313093374278881533281325917000381891479806558206123525624925439058713935401099618981557398606096533205309629538967951238786778003079048675413772852351356730390009957667066097865442661477382495834371553979496720591566747886299013473475358061191624761307887352181987038977824243025433265821541584228713168332543090062253528295544285146186567092533816685803902144232227366485095562724089023526946784735687762760622975535308546228936627857585945087157703333080269382956471161389558381752895188295998230202741289528222590792453583335452654638978666721491452451729338160085158826140281163978032141767545772466790942907635664028021888640841870816592467951332308472912695828048134200752275889381905195359054834383442571805704716589220407498038350043431533769961776247923600390329137954509532445516992049719623610954212995592036546764329024618005235744826962368992935216170966126020939934282250600986946788297502237838043029042672255512513223054973749827429477828495939283558020504629307994147240999932411075330619470251767312920596409393609429381516856009053877988473205674409698092345956068697817638580722976961083821983121286905727107497029408251995430124527288599082971623771984047718110367997336116869115405936559542008655180630282069582520903760683261429117224712399484446829090957186391435565004792062859957288062819125288991576577517709761336669558974986268601044438158562827544795457141734320041599388849408475716949630218288067514361727448739076838619466838516350308746020536887024727543346709425156810762085047993255515630298281080665512651998202346266037173866485620725991131912625993779127936388326327044300444025125492063076360927996793157081018060251707028374647495217060996459593775391433571036347762133118118101732178425892257465233581372734252012266191015454144448833972784763206159440468075386907922000708415457598874805983851665918122274153454089229194945529876058465978291893470623210130204410258556139231159796097268349559266417146125027220469433683306344843141578205970314780631843347105900461197228268958181664971518771049523675329506560308636553150743667915386243434516872249290144339170910412009885105122739434438153390563698587946750565742900179569833137896996991425543094691661714847104369700055706437116814707291876243748489766632271468004455321369862732440529311488768620091110881400149628279986816517290747664314056257031848079386775642838278850222294715017149201953686381623549777776299319641747932331598678443458135304718724013484469481854718571106914399391831599982791305372998110323988014468777225309816052707811411060910954514676784888282845017272598845450928564234399528248868396292330830079178064388827470070293825069030328015057283646270124079490712106009216618897616186446070055459736896683277053916779354713426065234743964940759208693793628896449634951936832922946136889475430941553375087348789845009141067095760307327839734529319509122957908494793055655983416142524789598543130978637940012012632001227641074413162429008006691046947462867705269513081151931207147715007620603793917704679655236345630194273794831181489578560305315811954238519354770146261165546774703558642427876822262792287850276778531815935598078046572804191808562539641743920700056036243769780750731349350043151925596703736605771994447385850343592431070747294391260402352401249866481953697228077085911685850208204746786005603143166217513479587161711015959530492175553827066047678273153422385306718014635779815311594124238230694062896291467637171808872305064341218881012240864258772405682304474882704653532708182729418005773929362118076255827816376431380700272478836931766633820385183444716317259141121147750689443394562615629808972793696060119446075376887851636584143008783451200773643574752699205688612073906126353856637373782268546603925786021861780235828653969810832859699059283146625274397774349447593963289793924958819724180955237686240309722632031458106671461022919878893798937015120545391002031179692186282989242807257181504630974348588526432634358856014425477701338478042955714151174691639912418822431008857196522575745947079536556377466361094624099183759920867617013904993116151906501206139046043841822854440126310057945997460358241117810581411300417564010875612614677990248642784047118611384678550111731320984842556110116983752172143396030856261379308722089556486458628139002212986869700690977626232749886936007569335890358179486736701927674339343167040293979942596985996788989347597470216112574006603291835424343162407565616389872700574585761404813049936995833087221031450916021828636891179557541094585340165837192820811986228359367939413273509122110850971241483126139955016419082024468572972918505947044283378025776709741046177578875264351300016213711263746910928521629647594322751176803421397373075669168159306019517572687240702535908467327305795854393230924093499667862745219199159707029023271701532565873467923158361491763410274288274815228658399631799693062019653946539134012606951501888200978980007261700137031479152342792880113081836900143106597223694477939673099429325943724423564191645106494658941415478022744125854445676447920852791698732274629221935536462212345539721987726942239616183203681301373495116533651198137798125101475132849353829161268668358817855809205855008717532856357423290286652619983121596878964858112415596767283462983821015403592479004135563239574183080270733602577521546520552821302137552860290110319913803438021283008571371504607456401999409584984603772193608232021863023906178978505124618510756744152897303827550785294757775305602275469288796683678415365951141881668911935518452619324727451035444299820385530281332158520211223787449314304227392549755693888024092331687516099832582898073548607465968759789936659746833161311615923883865176768537033840498906494019412397799976741150203776489417694591744537965862510306849408704122240425248057311962622369417727710747462258511541154165183959619377872805675653900820515144528405785515686573092073330429376879885330564174586152840781984880208559503836203627744979139943756245677950121462779341476463209040801659912639665926748487790052941279769852391464735327636952659051365403099194008510819050533584997855670684466819310979452575414340983594794533180116756748551826556899834250073798840913399342483665399869122310555619724730370186750422762124663469900434589580387894427860677453586457850355913234308592357360225169740686827891269589073430155028341723297176809544818914078615034969182117494043358771443277642888765789168712261326058310895209926237500313239265638437902669215634667848647491630733036200070340312580224988078526603809219033411328220718736642315112622744627905248400699130891134131487272566704449748700575574676048223074400977658069765665222703039137868667222019832208825303152454107138779890828506654126125336307155327529563290288640305794615395038041139048802837088202243183725943366900267014665854714312168784576433360717650109457775190209878242296783288553475790095358009506105412503968705811993033714960746459882906740710617401192825892345176106627807279748013821521084520409678612128988777225792043990778058549162312282590610813767434488106486966391559424441018326376281883090557345758578313423252479047996217222829570517551148626613745178648087077947551404066734223231937595153871728748376073384501620298851167785033406435414685903205399581830817727503976675281992746681904096709734292230229170788722353166204300912783419839824731030997365679457119519679917431601091815842023657380254782641444560558731896059664744427617855544892662120874684383087638320245831111215755506147870552136362827930275892028699727899896807402686897477996252908213272644329861129937049975286807105089968695711483804111256230103889817543861400603436956728983176395308851547584823123365698895904353048612719626044438191739492213730801370588134575465730427855812915005552974330804199838068117118553855362333444406909947784121952416166275515383099548483296922031410782301139844136007670872610072135134462228744033410997989520571393363981806174129790796520005852012931274295236935568770241692681549945168481767769533722949556037320989552569498653795205341882362104973717085395605493658147598014187862219183982871381899450993808419524477768534038776171187704085184441654662037621321114275042116431894607103091463443585104053223889712446126865779471208121244182969555846181610467983413782814698532915547705926322311307255513469676213463566624645768902767150460681288947002146724964687934320906461812019473393900882663114396019108672612315986589489980089591773304377675053779470211207361992128781097587524862143534707913633244556265390867505051376521429323832131252834450508772523016175885534285182665726222412470823428949998660702272782803761774424969112399370551089940358931126133478746579692513275390303724522489296380160192568184125494373640537567116085053435215548396849464322971728679937190117804894967454154959886469411737815508905514521127013519973772081241806128485159021458158163642505305974981972713158919204345467630326568342324454220764584096547252372274567874349229181839719543195022491174414636765782581555547817904376124711853509880528496077793383456972360172724164289754483830025774292584872376297363640414520502483944416770674157198271404891734095488742832964000578607077271473701210564890080039649949117338165947063272442354142324134403932282350437021627223361170574036147480342635946830980078755227848659517380342960787332806395303539578035194598006184977741678855127778361161595224535081178946585696900100602306854050758539784423010060718924258608390455148505434906179975237577462002466723515018658554488442870572442437866047150306029424515611246942759214988061263190413161487323772449369814361908765515916346350544543305781128491962279886337919755144233550342656876262919026380619217845925072963606431681449878016220792794630925410178015646824596134964275704117249625942230717939834161677474648757154383733132370930000757317585568111613420537492308638437874228668123905676418892169822477186371934719337815971735333373343437892325006444762351578000847383637379263726295293251077887406257598211288054919240753407473043634807066664411237863049422300336860689539193858070043385394525489851340868055181818283705755739178074180026543879708978111952524100659147128364759966942087344244035615585409446324828946744590222921877975616126818258603660623609523431060475103230147096529613168226420776274116576301188305555164339716294168767182351186182503846072789987217254885190377551064664209651238182929590689244732212067963868746506769882005612847968911240062137595771623109098494418468243022066962995157681712617016026874278079794837693108460620603333379414023368500009008972356202178755969438863711933741509493775919807464598621920049164483871083114196254772918243492627140647308480479282341543163711556441948479115764293020659286770068864224900465980541316861031176148615045424318051194938841016170825800616325051902067159579331685443487703514760536703007409347554204044158736262185322225900409240371722083125724790266272357382433966232560093919042795436622208388107985433167317454254788374475208955929091339608682446000116650061663154903136993897671662559966515563443732979719352038495631319892138696644226063799751757781582839808451990958440672382195639689869865861065491699298437569920664841417387325542840992125561090423088103234739692602835500987425091418125875254326361319039141735667572360684862779957779665720955167975749805250578921391069718789482520930706884067158060420214424670842722673144558753977124258919741251447175713843949347808095989344036129138407665631771923532833599625767384421653517739798575995601885529924395560520176878489284393322214939054117558948272949728836378088308346984263601652102102753602520169714423600988632438993581791397223670451174058017290891164062314999643387999663247597277447779950608643847068846349893714289598918269089828354505175539890732212630647869143301419059328633264623896465237525262414317580073389279440529754558739361709431041812699497982843910193472670985862338506308141339963919311645853417123927310268363574375049259872636162440037412811242946316481189477608528802405773898532271501056227409018482430807159245382147027004845601598819693937368378755281377969484987572017733008269726377994412764598320348365119650142441115871173347082926585604765708854795822896411583508241093213994975358001302335384871066157009355418613098167607391403607783530063834437033607636191626556029925378108656295818113991379818020197323234080623029562453993010829441481295550184034250063445114324996672980287789244809827741195342530457079985902643904051428068990095136207507886361903755760666727328262507831023797668173072518056475545498429968512258033366357587305725936392380447714426612750035618683815729517721250790042489544920664261849079004973762356800325468653130982615057871448646041429430168886395592921516349600075488401969032237722006233457628997387897381622256324539125452687589932815225697765508463983525705368830034150103256829993178059467385193863488132995970368852176908868992164629996101524128028005602710318049297545418569278606705780663557172238285419774251500824516251435018171892080221104035276449618662203924406183857275606047372157836009148451390280563770757079260718623139753825042670819478875236752417667189504684190026780964273813047708108427890188027206799840612495731193746327854175678062967592259456340612658926095970120657530404376870355010476177689873566159865993115057440782664894707739812396438581038212711035602096712811603127208375519327849313437184331492607191188669067093954184994736810060693358454334363430684008230233556686282300849590791891844538098196193250492044720099405001898589734559448131644074464316823251944842631205786457285009956196117263307209261385216241674965995244818144010541916452786523817552664489089934064029923331818504828895708819554065469383795607624648477484528426671395358978513919397018943982572233891503917680821190737479561478463940348657698369951051014204003460545161656603523090893637719521939243225669557182175933124011914233633708996664061291666613324390537963371248694221282306976384521172891040191212455302829684025101441664382245507635190545053027242769051539759129497167632372936184079160463175319367842198812286492670838904722546513329240032318692765258917205177397766566825077313047648156171488483419522971720929633238276063483657278230088863589465692118791276073345442753208313870245189501409262749862168741559783444934681691978476636116799379370796559337358363122393025670982888671443049341927825740012534921315940386655888515016066027981217828436000905642708586528003024173810906282551109181970014149716385971066571340041985953957812454109900492265857884803349597663694673725803878627671364959451356512263206980179834841349166868815965534682728850875097975009824114797867182783241972042388840855666994503162949353590379983307919931011924533670796608726928058775831002181976069477641905268502517596724353217369005287794563323842474043868825178928843098725420107699161432735523150167134792336211657397546924487385593906205386683895861795885246418052670185268030938061097594342064305494777773155881724842132821802710234909245720743112241912197586075778497041243402481178931938310424722969173489049023895330037670121282374286268386215341402330327943787332485633750633546758077541997415297619657542306949107136629555749369951230315941793692663254299691579316557989038677398792006441356027878567469223568874778878168708198160917695580185252974964101117904116169550627361474956137339980722789273910615864901297318256403877154300060601347529009262994543806238594462550882848069251895432423114501316906307563586070008829251895353852317064104834660772144764806244709617955268376209532896972741451279694647020255236602428335128982745608309939974260541473110717633043529810574483698181281905871492352837339214584883398268408177464937876541641096617961302415965179615567648265755811345641505185300449863488415756254381396894065855229754647972107608011774622439918447478229943181562728725817504306865484774585319063474666141946141433056732677746871595006238097877212374753439171504166790647311375090867596984456184196027217447972089987425874629083711895142837694204519378029180125528903361498136016688289080268944380298182407273769701878765968419338406221915559782372786312317166032370191277978098699373261238635119165765877264314981389283706438042620489255224846323874070662502683223398685294721107408032964622103152041530829659227174493842014145054958662228379098405275015418544817295418112291643934723495791112680777644665030973838437701442600918602236737868751621651521418624795439186652035430118906476923294875119674421756118728017846604712242266586133670059873209128682641647259949433728227361310976605331593038907309570635609451228436043951476172000829575871959431983205081465430502885160929476877399042342605712029713559107383738053438518530653152123507599623614142163199788084699722325203768712815371542913339863952759348141045132870041760455654218664299908112488452952518204247411987868264363718259251457950243041970792031447612254577932263095648299582298651995858662205776114716027656453863549556389771765324479841958765097064686474019894333374857185598632934830855169266864661075712617091680949326769309101452541564183310108472187452567315588606516125477472145193520539024754822068919553746139135757205567642304730496797428620254884462799137053164664049068289515341683519322534161892833565191961060785498657518544591968514068456907743456195710374801889970652863373596993057403409290344453985701345557222201265166832921621173359823075001505155039712932713891196827980868832558013186446057539253133717043769670865704342276067758207525794095373595867351642968279787459732166791481295012567542150663368264518615367668888295528190694077203347267128493070412607796172642168920239206283554870690104412593969688717726657373795480220339002649919006761889039746244237234362183343639830405572835239144708465774430078747134608208062922782244370421672814413341496973920566367537324253551994117196524390617790060409538669084728686405100903454376655575843139547884461629386189246888266262163389265600677592419330533729240065803990206955641673628162978473590716616880878663481719818635405649161242493045705184410927981547463125869440182572287965146526007065692366151461773108568293156751797952335256405323126059650699458709096040870371060766892945388757612438397682383406077081530176306163254741895637551458591041589229318518386171000502033367155018060259335903039456539829190576155402019732803838686751669298135046702202486980723172294835300225052249486978577157016204750146150963395097373455891833228412166066420242006500826239425168921342908579083820323697490710777529863172358734079587379326773124319307399767778322229101303987806635682394258367956141286668679887471470504966372076785691836498803085443669341302860805310511859726762117103672888810277361724455049896457721829878218197377626557470195244546247687454890337117247261552055735502063402949531741780698766991600841857289104368365636933377752677624960801289067900859492201551717191840309238419328676528461423424287044918202891612822264315633143332968353177877664406676612778271964587009951532953938516405054823515263820448279207476076182895976327709219990215624621228367540944885333419892165179401711639792371811854288961919510810276767509364133977451176917474908767101267218568190704985580737173409870158789561176709008386235243417524494544309132579359215956228650385731580314595963859358158473403186398121947022785820176800840018591988702113570243240892385844928891595549453083245947370979264834678971745745967586440497643255948544035507152671068030641783936996698017573850754224955760142664812272432640194431059789067114773693522962808607490705954778722576080833770122233639665843402242825004803106789546062231786185533560999712172108773336775219500288986295364941115722129034250339949478772016302995624676550376371228883159755592117831402978460861465512739552245009945363520814807882601844018505715078216933310264670513602975167278159261771397541592809996788010650819080025761073040843566799898789122486066100991448793810665027909772136910405776814456185559088155452246802485743126935814715429160218348647854030833942515043637344226601738968841552926463198367967265204098528136797872502137935393281235867819849914568331989580839131321526924685436776609408458795388356744823264500870979340549921015369642590022354924042698107756460266526757624888928872880783768033181035803250913795596124029183598403736397578407151974054246924961393284780550594382552871032381443785883882506310120423906066930501987754088366781246399538221189820145410709033822585016715209228006540060927168535881726048961687805714001650372474197476745044450356436616470463223318104099767047196958537286232196603658933373260545538607407654298385835849534234670548596719739960868689707675064367013875641292039116181386396830598617053375884969127562229080613416020689404610712446364146096474063150962603920635351608960128165922534703558173044655324784012940837691354148066392810126512052540178574416648713035677805198171514609060244144567987204777671332743244190479694234628709614005042359539943703258820299776566866086721157720682028344809552587305588806185276402845725202086327301161675522394548210742972262291798429499795511534879779028068223062452016917486613696299358235618199282750908341542711724776419363342939182078579021634903225760966326918208113531770335618021782303605336797465678749406129681900847452884899566772173641160885201118035843568590997017874674465866950250287795452083674636124458461690562057772664076136339655234425977030916031889028321571993345684960229423946595923855373359568295043875133802735741893703188353038336188078951175916441913179018961788794590182604329873274964185014256413735462274360952250013759360489923648567957066868848982872989613231927025602046808754756890326228953807294988987683416710382925189742081139909863829959922017311828621608418125704305981197298560444500651795411479820301533625308109731162129553746325045197562086763522675394788152424294264660297086415274621712189753488299598260506912480151327025933402117891061994785043921704237911862622766590875170702805918542738296186297129162195519038251122262468320854019268125704283743506366899771093728144755526831947755951840254107362765708599001538328087939727104017921232280499103680165690001030772121781030177506812321657360026283317794133098611113400710229219607818402526607677134815843591296310561962776448323051467487437366152380696321787121682166374981602963165729243392767715306811152117925056792721822462636496426579566261809000236569218478764325828217763837495524754270855443888307880006098823616327591514171505888069848485711360364762006973793032470525331013253402932464231912683225080440112087831392878242850471263327666110005047555008942851651992101968628012876952015544428968672068219983583524784608217330371166582073561600961021802445142333928725903489427779727498862516159615701646516557782038964274617213584239804663818679934445130687724095448204385799868184373232793528192293938439951060855427313368150978011956831506041086813694735724078993307929886125865060926496394212150127907055710154364598614983065992536831756173979837947967537808754732106079872823152084015821054823623371230993450646899945617218890110369463540163653995831915211935665562156105930441894495184589637581580640202653531789533709113112737155710906651384049880308538020747431611964880299430650653204230674301946998704333950579674390569098946498894255177889001454656094234839233886502329268911891221624293228379760395372810303178454257478537521758721048765585102458355774509955630379725380302877854522973917882479650900406989286451355805584343227588132806155400414438730694717032505887588308726712826225110080514357513800021870714911521699779172721623539093025229052952230006570333835012492635402797274997989425700287324335700942556919622188420619504095056322976909661600544302190102169635671079068506281818973691632987801011930213691656890109950755807224059640003315140288766420754674515562273419618848075441624432780562337279698109394609655684988359435095193912258850566967584310800817389160464018989482583357301209996275815883284090482595871113507297383999328139142739357178233627409577579703377644565373641742177363461432063860636319839493107443522804258160886312788195255794835180385473493706221498949489181368829037873079773764526122509337127603230481691100646882654064034655315725056936191651163500939388820736534506737864479671298802061537659098397021406070816634645295736973165260573117920426260802158956100831566302225745051097364881106776220369204089478818526901058263097331060427387770003602115686420475697549596296654722251063739229281095823896382093358973788911722278982088317209807544432584159773506663607708251814817682102729818835391259798061017334906080220479727419558819339692932064731005270035080030561097734402072608918970594285882235029947597193805360181667002279949768437573153461019516107992138156746133877460011772416531315832728149216885918755380493027709957784329677601553140820052610020000893157036747090008172461755410678818820606731892792201249191966235214572419184800623076152543663986244043322653376778737945612173500457550373330947160275984534476252726337627106404058561897017812818866182887131168555927486388926949668471017378037988476650605873357227833557912157866668399082731896897092174534053245441666321397241178017910578764195157358405605034271482919560329013268036555632806603375251393905595804764140823366843250900346199219223419225609732561954594494753779834520920386268581750894656672981687722499201656124093308096022490251091881870939811426998775112168232062252040923212669929099467396011165236418257700805129673227047363182291583746632801192383867130765940527404053729782892852875586348916727264660032402987951083640308598377315956571011027728192320185064600890153652518825874627602866153683695696912464386523651133644312042926868222888025067244865221611881464490753089540547321905369943288363349848439363386928094073539770997986295931442521536724551499838503490162639984907914182615787829945657268993011588085439220546180525934484649129030697480166283886272224051260859130431279223532510730566430596005389034188028639864449553626808721711316496792398288428422534630727527410823034531699700231800657368450702786287359489150332733543183154682239679252354878114792723818222157725412735157444153302815989544934275103457536176558549402981961013974468851847861799679920341695302082171227183191466946594908766810126835648014982154538929858630305552872519347997151199201704725223321229898604364646076423222581514732564499722466102986213525482104247820640980329241143983126022205075248991653171193783689868122963541799735531173860029842577089570506855996503745664172128183764758055410932755534068360733558162369866840162022118944662529708215965164422790396841707638183691614533088093929144352338082272151266216136373604186287098005946008771825009589299790099090480006185739883260623256325083849502351405491427880990103979420374804319512442427842429106375992844792003490359721279153626446794317633056557023404473670548884415032628004865075313424646590652486024547575025996340283868067240202286101004686355932537252800786413238025973656901278254748938162574893032784618431465913784556884175108355653074120408413077316274513142659665233483865965694410114701310464257051594793991491549645525679080928241763731376267931429355767003172513714588144238707052120158620781531920871022514504829970375860236966353328098353935184940812724674259290976824779517631852699101595363134450882886594746767854698381959118193431452273151580318348702799099641825638433581618490488628901567393346547282964241665637136349564382207924715802733054783590269371930949305288112219638471626368705655327708787548876727514098553398765557398307106012219041819031085626892816156844450980428304506324609441978350895679258176540537393589679640830298313652975854335003843331066454185153360718349580957057089994074609466452147089647482324629589443751995490398219731379836628742553181054488383321447427287237056438118894053407774990230085411358158465034253610416294978063176080232403840642765348951971252953085814111691530393707972456382154433718619541876645498266550184890819328135867946274671668335379402558495163738122033213706851762113906354411996868271057048331357533423181714755074662276214047049686735899274486055386511227139960377178946609748805004658493850530454483407621353179198349347258975480878054129467211962398673346367032275394121723014994660635930901885874053745625493130329248341434685924851005358195371168494124668270840731320899175238281261411573354163464577211200861038408223034694781958905641995112663722390053005897383100368702597607516211660090191798674383182326131402102839663692593023817295273835195590366307121558492793308167266637638879234925001370156265428717878441656458250007173606713415578540008003367556597926902502938882562118415117280302654265510981247748190300622591813166603780704336853691069190025143306395240380526546684413055801646607501491947309526758753972597930882253433707434279011174011690967304863723205453062681461737822516433480986672950967547450643099704860572015934634035538581831652516277906001270614807169269128968031717781644667613582275186839597758183839573063769771149890351826497256741766461666127825115492586988998324849153287249194092852071856343328836514351763918754412233314689315672001784491722180113643726149590132315385404562181132856957346800627600961458730440390927869535128245820264483968770424191396607743452751548233502011366276195072888437981201855748728238895106560325709834855661320807280042292893470290613933719211625545498854937473612156537224152940833018762528240717904036802910529616236611422017895076538694144249402130482028279019973837810150706700530469129573190548818786726084007478197799693845870651106971686548193057696653926957346371818749113398292778731831377692551224180448400761302629415377894107126818850025279223957382067347509833786399862056018711232670831529782654807748796642783677643689870064028293562190557671773787273467688252519895573877393554770524170884250595666313174262645011429042661874115471610192848106561702472106429932864306788062557971342872764450366672539731427251815492659292560280305144903131229196381516360312230592037577248025114723382624363593972476806152811134003939972834425525547599107166900298542985297743289735919572513961829607831949648362315605766633844020660845134798421945944677535888701727739299578332480492470331281576555918635096820813919799017927135021021497420884310744267232580442237124110904586121331847440775198717590562826278222939631374030336120235069174488837576565074211951380154654136740443651514961787870556746147113892579279384517405515194990164330969595968662443545412686497747251761512461527789771872029727936210416446979499937917369289249884244065722700734965713819076894789529836460477074751715473683508881293132484482951776995535181674810890232323182575273775526202160010310893294944466088208237322715584884900002710862528345989619735216632317157495885204874091380826886121232887735268825597565820393406473110415278819716731861339185595770457560073347364364334012311064745999557433858239477360497926672164429719310954478404189461101903650325496189581839540883935262660762926561208290193028093129517462170926797673897504434714438635093314441968387172912201505486745439009265017249351026987231801198349303647674414049201522026525333174863588475214367113106638217710017993707629950415580113899084845142197593343507255291788085989720456078808887846305809618792356179362302663727652268514275048597684761537929199815847910904099970170796596691110108500829533952567716347262629125891416845745544572439915609025714267393148125346524735898998104424276517595831534075291769145949476588689022383573113749294060114068904605169100561049783871280317288424252371232398721762950263233947104831080127330481830549565573088237849971972712581522901097350710391092697323831775951177220511704934880271953006429677247033319156429674734268387531747481139213506314664931769212830423515667305022165865871842789932426571909682727320801310761642577255822017918957496725714629816167158897565710752503222344783136033036420293909417232589958675755899156950342792493306442249200340101388477401035825071239470106007230905710530976305134368916512127314253947621330399506799706144781553347271503626729004962331577712909520509499721999752535588724915727293393334982276642553760977859955394548468690900247070358753758136958699983633996415426307992030756573491014634312056082200867185044028852285425265443055673352825991079042588506212000785519836344545121015896071500686778034715245646884678335209774957396318670617874635656787945054797556443523333109340663822441916835335540689800903514057066736606322379161388370556460678571994124441107413585202645209574650394106966724556455492593309784430635919370063931259741509769724179352788641722156041218176874323242844644599262709291182863275235445474808797028341017240722621204768554500892757371026669084991208595180464943905640706653679227913228803808470929043140954944425049243016864940918112014648978158956407974321869231116964945680327956265054153062141067101321664801356945384507237073735332712532214217426609472274462844569160717591192100254805292537136612513177740227044885518025254194272045521683120142837199940848725454646605430549043900459143400494678855956081424904834483684659885408666175269367112852605322672377866960325241210951553709616777145039197057825118442846079992872486964291607957179919597989564837521688398551915046369676786506327437499576377108650881415822661700664011236603561753566160414458894385471797643816266495099112319394151150969095978241142178332729723259941644369024709281168227046235220367379025495411620245266709066487589424698211329305214732333672287479069800600949632539722908597393237773992431138991190608728807210394482529458700927174143259501924653611847317850560442408130296810510430263519930267565695738715166717810720188193877570472568807137651914130667877238371440366089710611609906714531168924766367464905708944626569687342393614494594473722797529643267967244729455309117588936957530437272205998341481058604678172701896986444117345345873876479293762458730248519886260842807037867377094847242287302357273862607556288295897291414805442871467119175662535889599593997080258689877443365065639984775062315503801701074854429518305632945765411425192729649099553118976088140115872642410162418496762385060871339840040464381869622094812533969762740335565008061212214021709539840350341206262133249654355573094716641929101468735354616193949670904387061325464281466500579756286401712791398646112460093777747753104521908595940946688834106554266560707242456703933319340431618430542159644397480218818742136466502325339742103760010297385993037850372629684100798740072743336823398699371023426741843173560807736725391379470545474204952512888033852029949950999342140221001172384035826445320890282146391492153795122422752559305649269037995013727002534661878717325426048032139101392579838679645385253407911498845304195233640788066245991059311345932376829638563817183415513786009666078655702358009344296096371054572883718442435363516191289091070165154046633661481075037439745271252306748122141725641774483200925826049025052854852772354610197092170891425053382900652795522097179521483390178154709624606726349814182562597338556602993863614531633204750802177899600811221127979732463440467617135254805142640232364706218141659729287073262916953377454686533068684083038785568193826404484853130671937551641281125725873063480906270728473671498535026281381809721570237631280451073055279043139232310877510265345570627236765814714358577663176954362829952736127085932772884204444727613390662354542881049886261921662962002857879210566238474895747095257849283567606317246978152074502819496677274599431299421792468547937810570919576375297292204471769597934829783011140998863637483777845250339142904625127254437118618902156573246401925621841553857138034083083096603960812800760630492833223332981529892959156290163589534734074249474920006557436164267945839215295637550406485564021265073618866988400492875333963753283456070212646303555070074724275602624184501702290517707167248643005282773373313150641439637814782548340343104923842692484858418744761998160710141532987068487235122883568617842637601388001738142508690834149630379174480517066727251867350667081359243797487571184459047906672141242560757809663560142602690288847727489524914997084383039355722028774772228611009410112441812599412865205766244487523256406352227113826905683390053479139863153898732013391489838393950740300195282285054175009094447853036376823339906152317246364226476336244639625018954182072703990325435588210720820062898628464741862250406810827344336051244529732020040185943215846679859628378871301194288864602790041606609952198162731735363725592781356748767005807379665479748432397353273263003181860389949074470697500170397828722433694106257032755521248995786473356399307046694678720984914615476173090042734834316266481815241721903735138842086985026430227495143556076276045841050976378835987492269124506146020145721309099412069950643772910836040596350265753625957852070230430101095981886062940435489398418409228095284901690173602767736456895134553765727663371011144853741573066371741116632601131138793790124287650081152761360145494069401589246164204119764383871646330475275649281444872965488852037175621787156643810336601752449511047652812487462302343746995364914606512418277339408304665692232382289020068591348260636559863003270272678105295564631150036453022201280055445348282193905163085730870511921503852596844707332276703176174943802091281715974768800106338605211292114226577836779816604798450331638629264465943152148340527467171662072915645514465602420994089270480926706934465284859821060344222293356287734508039793123761580140830010080946024164946890004215722909876638093692410532201410871875975388318272983101410453709830350575274275278938261648571673418104960710277225049260085907914050873100183760417682983296306989029033649455977854612734794087068476143079388688992344700360441795975500440269584088456068903302407792970075760200079964034351571986585324668873151816075975142557213959548948304887718181200584685363979558673914748700919580826397602213615990515346314083715931866400403866718743268173478732147268158318995154685425892968839180116919686054923716229198621285765420754274265706687611722791138786976159531803157591417591413068103674670095501265243740733826725504161061324699535970601466065133199505965484386749199206282389420700618124576421236549465258984386481911691133763067668778358894327072935950398899974524345441064312236722576952283080686306499288533104381862119378610866693711377985965912173809991814781521693637003100010708418989060870208531197980802996011220442763435863716578009296852905142143308189414233547468107993236039859306098014957221613290654343380662681038137328579050921665584240491957655077368168547069258964401940558633068277687801842084024195603438564312357957911973445023459469259924992112390068186746335885676939162926849125738536694613414091250452526035813028640635693293935012393443215847021106066099482630646656363580638861935865673868097036956645457676730777191585040069136696917669718879094414219528444243492274617809668314325729157950062623928185772082420858953158938872672653995390433712648364612281390375926976531154194100203636615919705122823817626765542405695795666320298214886421646433847253203925731263849803051269658011004990268451915576715822719163871454487277809149593884664803010551327832361984783537128714351463870275007489324990280658152316016770563619537969457569619295653990092228683581778876566953407938158224811918531625519909205235588852301210199552827067106938093070263862406631204276377151299272216248909441672685883554611924596354050791063644116273219331501984055451019135416927341831584159513583111262033867021714024138796013709138323378462025891982870528617474477211743557136258517675588885971443081083229100215633311243022711171594652166237589646254944935967602926633840705239943929314550264721546493067495765044939228383218347029513933924909833014150339827208883881013329719209387480529701749351656090860184432859468774209081822530927714155824071443200271434292076601201559806537751002919187422533517458010495465893406180753313301073774419664527200721815196150251673404765235396684444490951086360315958575085414344213683574666819110432344273757485245642386250209940975655350636885185767255800097031809225359900170897424063697862142840474822268403670086559154211490440311359726576710112476806040703962359796627694676217326935072719483649035222320864627783797274684063133561759870009885148748094385848245610633451936825470798863216443873295666768807172086753646956758114581952689050475978735475669665058678231316922973487330455477129682138676928976417235998129837091363646035806656975851252913089018153484156919771101462714146096087513319807349479999917209026689558509937738523847456341605647988845198597432126414413708345112536110911443066133811593406905647698549968050021110772376376483252386955327354224827947596477518870135308273381182627542354330968831448937850929340782351885315649738435318278378280382931075735447323692829124593699694741395450565167861690232505063228209338410593320719388544211231837076182768052956922673024912135137361277536246520924670878389652547563404327113952343173616935615281896472946864039174067686459126442384832926939346015537906108758841291153731608010698244668084760585058572209521906777203959498591147900729380282657032050812696807108539924916883176532162644419289706069521023041960886788501875078360444830001460571699355141625898844756849501631064597654312813879378513120321662116653356387928352038928081866840815626178973762282663876493498908856841843255842901980356896323654192338112766350679646292934098408423583993821017593548096858764500219310965109324568954562960223346593460350931376592603865117664510972648698468302765048898729997202184377566936946866380182905419913772658249575455204625146589618987649020384716961208940291017527108121365811646465814101871762145422685384552093710654842180019054339751454796121529143968187526179285110838014265835824739271120187760669339757872529059676746475283689419898724725866577018149624251268215231271991165201828239699929519285882810132738301313072530556776768881866718338423523133439805234677689814389251416535398653000823788099986768815670210300705380907964433339223660006985973698537182455515580828691358988382959760727721279356826023099741944228323584510883462610532584342044595380938670278098983978051754433495774682778612886501532261189705322509976892473310446826917874124021901461175837593121191811428172802540031837970039510452159803739771389038199139370842517884707351727893094399760638145066205058705808052330546451424315987348434155134557380658242097947168188719130948304348028045860438163930078925062187665702661163822425184603902233862429896002784611996208148785785245187877111273863773786263433862136867585817557303859477954775878464336060942206560618339057057891369182949288638893839689720793246458952557201056728986051673106362042867650268629618930726115737041791487468748479161079656330198662506017422140309470442578533744568526498292224018388809853743941835025580000641854375019282085204965655955883609081321542734391324861077235645150903230945613593220577464494890686689232809362334024683673868609415395690518696007233505349551781955267494516936826400091163396049982241430716952530134234819209136660244165013735868160271159338565124487046743282089015400483451077687034926300597948859138444095335965027422419466586763318224093407044601591499198820952742937152481556332813853978765322853504464273533274590359381813654197677222394603762070675211949616463731957664083438930383986386937578120624353084673690802077274170663138275805584262968048478634474928309006813916266858174030056820776386121581922912280264082514994178769427018226720156347880855202273725032381751683796765616942697636984938411018490421811942702129500346776849512137776047067651930090818816968294967806074072792115924942948189352265495576454331465496429372344773173104215530153855139411208913272710470120826521241605796980632493098179383833470465940412999556421315838482861776017363217279090671873371464896404267642070070825908965970035798928635113232638094366514304366999783078861850992729185744168615772824086616974556495754607732745207842563200754352589073426978821295030644533850535550184335231694682032469960803540949326300281826098813691310152534308688260885051272273097773395753971123589407032196975566578807686373380299518166498767647243991359414815486006725111254385626490268720312346295780545326717716281179063796980571940508965579345257487871044613118021382255675290328543209905047657533447663341269910601799679930379862874070074567145177412743720087797106733511701221126755643004655613943051913691679238597425986042345945080891888856495241060178653391197689856322693089094484959255130994652995639026603581271355735901711895353857645955066732088594927956915318604561605913013263470291802055674826307454351058230678139162901688867011163749643397369998796565438940803298503336796287155779451228433764981799484477153948809984033596162430064654254560198415306387845964829445799238712643043746507517322281431606686257806173222728126466081106597048875884549541311718797186365069701573928366055851512907226298918684947283914623681234866745211378751829570854957589495481273847681199148792517847355832525774738190976357656768834571104226915897423805931965138799283321699788939714757392785323554683309479006118049251545784964710158247830509278091742508264542745574540853350998684876182375912004782888627801667740770130630668921803081115598623840237299526440287387534165317365999489751330705720100120806496139566837983068533075338522726991611209511116138129614793883632901587163215868176742460094754139577820329772992933702265939153340150026110720527335700774102583865763006970366556615561643827042817206202814751320777815743285582924444632574932646253584285951396638713882726461833055460243122273399892525081499962887747565437168675677639337768541648144719849282821995413966408572239805709002544636275491891935943059523137451618965776752281065545405816747955761479796844874657513623280487062879396740368863950574194028479811519868847343268622222365712077929549898973144421241960454652033550785814826591027382750039189279276452439063875641737498357986317929552607261307521105353684487242053704346813068908503807447325124649180329199239545132454664383599749754499650818040721265562390006043970420863463958383565122292729616977458732702026464670003169571109935595029326709564327754827045390554655824338022315433018701672961007455164867905219300905564934450922146990476416676474833837820829991017029046903944890080507777679613707698949911031186573916333107483611833238585797375133099740988176818379984281173232594373956620708449302940178970937550890223995796059744437322382585779175689142666654048023852424872069308386199763202357997679300656157477001074324269838524905763271850765851610780841063856227784718800557974784431443188877111747826928138710618472868532163459123224224923855410916761354138001457527620073652083777204355735589973067052927048960424119871846817563551987599933011639883171573864698787680366053580887402769820644163890232568544515372588222283471300574189634004094693698046933914129926326534574166291099655536064962048408461249063152814177843480506905396842677160709450039236277009900607621657130413942737935410062805754110013698528076126159423417274136224022986641840805230746838912595762168341181233151512174663170942903972592617919093666656007816339867963416241739285725659744525964189908131021750476608481717706843236528439468499644927388788086918621838655088497803083926895616472396157746302219525307090489693454662056223548278743482708842197676248591452173121723158444626999117254410938559877671214735603028630025140575171247301973021174205762719869085153745699905856943838068383735571536269891422885100510222847975497137738584507458865729663111307135157832895899507219001559297786545437616820839192129971553352399218743956681496937177488559243129553240633833297261406622843834426715087542014077391150510412516972524050209262235996650178478165498315211906330931490877611898237935204683513351776246777567927622932517771039183141311803847679772476223649852816801685454613035583248706621920132003151790001464042306006692087275382720086663317429772900942992596427832478913505770811668351808843121229975606674793896085331641901524475348128171786956532689546784245499978919801368684950578174978963313875450379627130165428976761378865376549265384594194583668423012889302612329663987368251175012072116334049003060165009995864360837559306898812336934037386768412726717995205681405614584901934470333560527627498497766021762562692743773791597837284152344962045533012516281066113585520893520618325487377941745892292662496767636283444773114719086174215684480073551493025343477145109638797124522626855115611894767862575988949137979907100733026359611863523380517967744730887796361765733315392634422538961471659739115491289922682754923241162773478988887494850136884357248983254977373043827280673230161864632561401335756967884251180590592809093879428054034902009561858655426519319386511088594144776695805098442424752651185789873897334798583329367051341330291171682013448770141795346994340090075020228720239363975709387152292823991009290715265359817750121090194880432063058026761941344853574408873265932909794520972679280647217682061796622949434141109556340235937079830661629733720646591596443449338224016983934033261540854193765681387008319511377929804660738935627628757735119752391473263496862109092304036384830585731044563569708639181246978280131635325770745335535489265877660981435130734791091989566291203708105321580453585027825927705298479414984057986176515120941388505083985770279249261199794360251761165521333284627875838232059915713197918118980775024111822499634088865552072115404157712136797610349032058537071676072383537953304554815980239256324862119309010895371011742500235123224973604657451807130277604238257330871066645327213172690085572588068832204976876485983992379502371513250727353716712699139595339222529969899795519469078716757680438026211750703559461112015505398383524520903940037404351266158597625505697338368067318112793296882280512329414885342047867626710803130418803496060742929533082880511232581332574335582553707948418033510163565524659437665611671499374591254664206447539747839148555400263676764096407271008664755134016755554690044970630748027645851787240764245867382207570677307735949611689065473324742352192307766647377063168851519788431937435003212339803209872345238648078212208060149830992046021167483003951467036018459180853852623505965944492715849216667621868902367506308284550111200518832279198292453459069052934041998010715950682180998834987052836603160787543829388162763000841391855032373986820738973897211809470709178427986490615091404610125990852432969118766267843868401973539343280360119348473650888811803591425336610396896643146071988808386592086614408341041286445512550547657517483384426154633647119600620864592510833489674317620639922090793409805100644988268893374543992035897015646953692224688624838919512579330188783325675505659806828984561856375832054062206908523172705047984415057668679260784204692759235772723360285588916268200665832344494780348170041124342197484266276608036578793237851342393354405180072861295798190387669208492069904522318504002023187739946514674491428630036231311032553372398841302511605543419281907342865756248878902561838729667701346163496987036415469060296554774183417090067280774994145446547347936736754338102895767569736101201142743244338138847795801819342300512888130641942955626611770331118864005578286476467672161395427052309871093204377409449894821554172064201805486268995832554976054463583490220144275336231442672337563875928823806260316465368261238339622019027323851025911971433619540896187062729060110116098692560025566218014573466453117207882833060562396409261071644388208575944234126490502511929016884224420493434179901363644640101869988850878384234801068630552674666979398541398995177035519769844544639165613969091365787739627777630622526682442180498436196313429139860265994597710390825771340110046733997100971198515219785261586816829189078100584839837124403980797611723625081103712440417268740565146234706295810725443702680414609522182013411638613622678390447238780076179701254328902469561778674013725668635051097554945181487365085354611622808352728225315252429142024429431286110990329373703652063843034553061238582683873211653088591087879920656896386274579550077509664981675346466628448208862077243796882005318510798707147841689360212538033960403121201016401292022991884727575432760997890837009497288776704937803241710403325836651317374692957122431709008287503647841417823218346974770185660334470122799547825904881667872473117592050536223256771872479462500575581904980284605195584825788769079826534923031234224165186791973623121780883769101806812826982306094239413590312848979461021688756027834648050715681854134426463739802389601980614542154145842686686121176949726229828513274688654965515715532960419180770722383578188681573189899481463870842338801634173682081594211870128024610033657769347429583300296220617849230864577525031668179479698698670610837940494629651479734760539871606953672955760543939697304515549020786903671875329405289183894448398581561223898566037147300468006119737404086891551829313736509966422717145189552118904302887512501398169852924355431258643359194474220292919949742438094650805110001876137145845289909720479515647466438431209319942600453851002385361870040876106861467383117529728214768708583933435612905753563675147330555747280375002466362039318767944550243571345918708947209147997484340573114673563585925243145089716495529826977570002112071321623759376257572599333383455329858795292032852009264757324230134214884603195888426256479658626327600111701932090768889347838522787520362423649153545093549924233583353028839473522359803912719593564212175711232282146813132688378556834629306632678882668772633566327325264049028880792148212410371077491382523129338142524696244212515399839716448533514007015931912626028369408494365846507453955791109811576507489880212112955641759366602000429640652910683008312668115134819201469236132922373678343168081989035562196487812186542833850086888792361807570419711808031558958703334152826870524201540462281447395652408863441335633065015586734762517581923370532610364913830547719901097634310447592743129268890181156579396345263185035780506146750132437974312903462728246998140318256497806820210553457825632801405458265131908746453146449370685671462320952419601654027080762311852823020965680042628372821716541021344938989317770570310608140923039068059450157990950055594147352143377757527941817438648344590167874032498013353552627469606492359493566300712634174817262113974300560818238099988776970493334143125034889058390145447050025862998083554841380259682632989424516569786801143225925674134784215840765762990129435964300536222980207616352549578519958071378311093854486504581545881817882914045847114415570319874060086043346233157129049990570194261698803087160027437949331511212896952372518597189479946830959754265413145468806465415060384345303252790146292964168620100831955287482564238790409146410878265232495214892327395128965398963331619033404451522062483947202714243213303970517329268511620742616975488171743895138849542723988542352135160308039351514875249199787133552811884953900412837345657983147621053525479283991867020706771396652628999879631626712075549609481090028522510102656967196518320404608024914976877261012986627399163495752193883743057935379465673465481524187729461529826548764126854460798091517438697661900961222054989519773795088011399457190993167800212233782275138507711841713008624799514469928398557973188893170652013357017336285556622904899457001546299318856861466872552673480633235968211825297081347197146839441842128962795352704533808279284582798334790600822361419964413299819155204281386836419278088355571955391258955740583078420764914865465421708666143813200875149283206152528162588658341261167734420641243983609822702859476105735048595721201900296947188901131631087934634220692945892984108859901257635629051165255927428540868915145854706173493969921488728089305464422692136275478213356821509396190230264750122691757770827899223520553475986211024368315342714535644133884050059150020191216975861134824693022671871486185831234750385428363089834200350864279178888537640131076485765833676873036925817278354238920504777058356026032588437783380753620392241113405730192877023341588502097872322039681844661325016727748259416736475995698242311106912489122450642307631817018403924245882798886742540190455313804879829939909866506339735687553607980013769875422434262668368859524693482537825869266362190577759987570142804401575669197947077407242226860174443851077943521143913084041341781423903378981274887074085769051539802830396707406253207958590740446758846730329637142187863976874648501725275428426694047908059721261493753182315137040264636763606822256788408545091904736583758787366901737123549607577363927184424521128554114519429162144465589617376890654184959464369176195612091438476610994830467810714689174565349805796403373489167545344644811057105715338707094353488210249317764789059624471407639020654916146742605576763500712864036403483507917145903178756440230816719858674156032243311260143491396556059303090114589468138483549863857494667435159193726989572108086105374958297616563208115371573752799245507957281595492169984926455116384434836989248396788966310459757628402772761768209972486272156947888596292725626486829727571585540032387060861797129821347980345715969966265204534561078707444011788416415326473380588681257940822753694118045927254552977065161853242444012382242925246378481815553163476384568601963047089823449811721481679533570233310230298121671691524212202083278269143917106356476671915064271016542644331226210390423727648406504406017289254379102371780408224664323354621860612464166053797003242197196929614540444701743382897627746898344053737805285280896738778443508205490654087048453053676493841076208088442998606219587075086561076903536015625902650071324991668005849590895695155519404507990681990764358806436089786719694921563444997765871275869653230731217161577182705943386437730415232329897724832237493980403319147702961118628847282217955527925568532450406411832613325832170501766638043922103896713350196195579859528472236244610089918166627597029537966446713758514601213742961805081223784514840168000699979208953399145607170807621166669495545050168868576013085209910343671901896904128907409963237550474960194060173808495384024991334150422338657090913264360582676803818070983451378655666708467458933394512147825983265307543547843906223586192058745364739061475133843120812588820286953647992491319972607247705982813647319847517628342302030605956099846001830700364876871806963740061311468355969901616513435736208506528154676723750752756528524014883539187665956392336460990892425036608877696409742886205642258350024303712769293746787751728562045065475872142536485410662235143115421843781715864496578072565900546686752535656037943307174806076527242830764251295018362796466316108615588783162365565761712079777764936802932410806741077859150256447461423172609737099465667724809560670954357483269661691057913364031047184216461216652052926388018061536608697905614897676381345985261441157896643591769818706781150432936838103153652822914691372428294758424388427623122840714563191079853161277594318816232007747527420539799232411754849869908122596472358874833646111337248508790095483466687524544831446767422871627359462790994721801171970436186020250800814324892646457755056033585940047045938301630147449742106378346449182098753229656045054242284355927340196328674124215295563942804839360196059205525179902353330300886669111875463099347730777208824273627490936351817879623815643970593056479516167562081184706848556454658155288920387860721470574065079724585072276429875249848400918191956263715524457564095373652876281188605461533692871220130004903088065752437065974463601029067765428995439229399254242344704300947529493553930623512630323442071007907571484608527691618191905084734002939854211646261647322943557092223039236258788159662725801194526966363468083448634392935902115041746892490408348033842720901598243244613331197752679565202779103286894971085542250640539109395917896166444545640902517473959586042782716891803587655813794398494629443856892436540429465170137147639189897230159001454379764279096365856587375410870758959846755880672101253435082809327891632540471882500006392664140425266189032921579811196180297573993349236153504873716532847087976409609103762423748067987004575055537660089367599346548097621474602413363399563190469974612241200028754057512777981197930008068691699798146318470514727886905916966532192995579651574278158155995254717004360571455224627265989599458461590375874035441067990798668732761392782221504647588682851709753561113910537565466414956323403925852483517201033928895668806630190053767674002678917545288240630398573021125785965431223013917660033463157581780974552670879073791249394374319726846582500070428983819420079336826754147702247097959460790973493793278646882263539093309376663131709414906259110722262317103476985824097646212073553207228927169393523785660403836023399175404676307149309899714921088952174526297961299658535173968206958571414725231659804500891064361016627692953527806875056316829391996225613435729792845765019724426462698127638750701072737322453478555996726097327184266667224434356177895760507514457606001606113290897466973456343202455690331720703491786093403724616493884400313277920519939801115930348231632023702276521713098935359921635721807877824232069720592307986277623518956000118617405087803573644688319438323829668555342165882914919480406259782474332766559402657730557645583919803707493416990488061524995574199889661604841613190080740865542775502737145974770937519935422675403557614750585018886802008105902075823174304241647774187211133944011185131090888370680256114523552114832723808062022884563195810037367199931545464669414931682156690186823896675974755814462586378363341295764944778378566646852602652051999519776704100407069906373245765847941079793803339177675959244533350111043561449866658887299382237668054387440781569399220828486876672684287100369766644778383345909975841043705748527955038320284961740447611079150667595175640553048213653490024269333212113547532660198800068755184763661919786839178026561447054577129100687709876725113025307499761574107526498850976419018402223361690335026995774315967981131583850425695195936291884169020708283972041109619209297503876020924658793048506937257332901148995671376841783754913464919272750219299136317721277267614849749655345848490958244936928202565965240135784705170949386455337275629198434022307094182619064518132639365450531942722116000081252506703261361358570921219289735721373128541428433677203421634096917458019086973555866705567450246330667810819432654702722851064567093934751839398494686776398028145669396841025761603619155075024456220083046829817311692619741151514019990773144370588673229564185848423778236734256330296927419477094062782666892715613718015621463135953828618857075897417360729516558584591150350149012604892056171732233846561251793289611433218221117801441280588911475534136843749661097457994096274603279788576353420502376714856327043695442124876132974176046124399834134802796251462039167019486655136469851557982965130270888486224280788223950763484508684772870804882977932650939508534303484328542428456796752590230368450760838394619059353538707729140832926924094661719867470754266809488286805936520167284947304988215430651777698545282115375901991770404033778062952379576764696376236021209276925481887161264949064809455475620760859561921971193769697854555594411917927194580589604533013645890393653520075593689284309211737801110668167808467281938711409296136458765440467902884356800852906917264717549129793381777557363621811888967625325369278895840210806922657785838123986049372269351949313785005355792934226129057543632382784342746869963404171382195397993498493904610291238135898119514598441222926209650250988642460217897159620771305789243157906468790475536863963387676213541029317146670816906515170042389330221819109789785435397543366275822682633988222277482241570048878686055096973715603379515017895964038956331234185809385505927624369216725235449397822502523542584737925252196948902093674094725484924211223836564258199269063018805334830639617579883966303820082036675644717818762737597540204875129270265844678181221148978879481294621486763352534122495850689698467529506883813445871297524600281474855920460529794223974026146273373966116050419391193743393284558109195116355514350993920135149410074154965392781609292755348226754811844433796783524281110666959477482315655463036332593152335190838596971008242792205172159168863996346910720217189250305373142854512755781010535922753026543596427940928622981768257802526832957661581442900807661942942692164120006862158721331235894413302514221923526645271030825331141213912818927551661826057812853151906047912652447691193029070912251615585601747779251606247491959259986448117369664621604116053116306194126336810295009402237674453940566971807002895855093868465584218505427220217063762531646652605141024038871262792303139908506813878227469287203331630439391405734957025052958375213679919491027906603753031710751528196423124012723879027811367468617251313857589143402526608069514005227982847473531484864359701539919767919003859589844157423791702599406646092055954181509722298392436149823898023385240982613435245929416401857831903007553407372205273355297160285967852427367228188464050643176886472348968456534635793164584853582558325609716844814074540371272607668921027540600498231686431349676519045597481745134465909015370465122847175638256321901570858478322244822653920090012532841396776504727896651802908412298195186275014165832817157047107502693108336245935116390972284106179433975951910424290260402182828001161982725805535889736385426387448966834586689187248218381819045548582685852536026869892063441823360625577214159350603926441948124352917221992618085266226784251306165925121671978445201640039193554967639617211060671348428586258298809903654908607993624198150197825320769087976752148536350703274035914936960335369549954280558214928434926005513590597268532674321148785174109307789414159570450206021308463805431953671099609618878640717452942223911589539727243797741910312426441380381498723442721298918834938060620247527607806271611381098858542372932534348939149754608885129377444633206082921207980749641603245088662637376294215740864474271938372020667175745466151924172776112684570771555615880015783611549455867239845899435301746603372632523181609634540287523239873983557916770858265222005288065927260769694872896965197283838042852015268586495736229284436720415611994129390262595869017750363506173357988308223176664588430262665658336319567085888510019828844692233829852478377281823699000386069134932502012677638863912495176869143545827681442796743943911280989391918536303657750001038743738879670270431664321591492294463492575168285804280202761327661865668875704622476423025473373517296719170960458211780493247085555672098608440395624596375756381139009830305587387557132246630957131332614654203670486173684010852624719087233846171243179750654998958922456396437330583300065575085379139649215946201773680959193822018777822323957403960640887511389476616513329719045613352854759751427254998712424495162039809538160856651601899753316722947890219411010411098131388328565635201121579712808308676118492129153211212360699645734992023687021857322250580493245341964005774944866487710252217094465959669237997080294790192029069478944715365763297527506663468504466343006419013912162740330390095739624648110068871580700733984187532528100556520531097165498498950904817553270886569202297360404990806084333753771908927160526406095151861028658948308853667137059075253796101283254120863974135593613625385866485622738520361252973848776198781765043227770948674321239553998808475291123510816035354295651555459890743338813607484909128645907964112143898349343168337292787045440903637858143020791802693827041832864145124480933094468564120352205637148748630280692594749588830085254641505283082203648864758452115622818181081299991217562210672646628865781169464719168528879925674456649793509129644586986917677801092855354661491281908656719304467786899855099293566218160494564267081219665214440022382511319546085929871289585389323516570787117052676951026057648450065194885610158359903934118595485949855676298573517261083100044999896719521731769574543763953393948341284072761131688036294251246907539600469369251106822660154809982986620560259936995673516230011512201800083088288043192092310801309781150755711013918385044950807074117611700387857070810404360580148719740920864451787011996458065105457746609631508845489515268475825482030298644273080688463868074814662659039477109795154010452744189186077832970377933811635862915275738233851740011812483359644328431875759819705535740577803211131318160344171088537097844725390714737068411977352362502916795220259361038855938490304018888040843026549902721380276347242644643169081601068611229884798310963442234054588272466881003664431167987278923054105637173060004153443421373238292279766173612129322367674747876976364295333226622769249332904181335253056473801874489695956479662004547747157096975574228216270202006735993061340242200787117324451978686312519293409433375375335491040718697026584829136735473639818333986544541019745266415621086100195268350241214836700846062087386271640771078898582842125289050397991897241301147590702926383457317011390639964601946150384119991802075371760190151809412178023081383438379061297332762855623815038456135291571758926478407948498265024172846246900676445990839784948803897447270888888495885474819395082218654301233871759236623341065364651737539750608758124221964139458526977984787979764061870961156955353514573185469264862513693999499714771568188732809768979476638016647877773482559093777937510432124299707298245253764195380169654026767973677287145453667374734429957180292852633296965149735681259642946725501670845446165819634347068605731808571996114932299531177492037225632764227204793398353688914801800880756637781980508241479807397308670158577936589136964235352266952424894986995679144900948269077990507733059644733298885314741482351500130915254414023674330876614937478947235491230300588568259758830957371414219992477717948434134601454969258591365175095968154365017429483885667801165655828150512649835994843233207617709748719950338733534522327847038062664160265848651063583900780920171926097215915963411262443327493706301767614253277162661399658954472247433215903919356009624908463866396203740058145311170811399622503284941354254541115911881851330117184361809643607481080292026481068745222868862263568670764547103204551010552975539916167901516060417879765643609176036851659782806721630882449534971389336755400650759026363234857895212168892687803102309614093544111848628585609380077965615517423068218874361078039595404091194331814670769811047255160610014875791194423674185008367424842344883959564178478766636647958352356953280896993932759251164351020473841102392323500609649247489061760296207512208149641464795584004057649556220838474843426092564134551590755863845890711451062752345435311953841947037975254966221708537457015009156242640301360062095936631490616023186734410091822394459415415600475623610066341843287429199716206947930389710868013768332129061011598398304191735189010775341210055940180231800907940476934006589124021337396499451308981671042580237096645476112476454424334829240959833240017531874877832009948462456326454713233441986769764479128660908437835168360213133380874711941900293455824730688326944093965534678628335105547959473081448865756511718994424607178850130937186885183556438679336567513505128142211800087578396072008818869800577581509177503603710804401252179628426776813966298945455213816071895815567008656575329735240885395333566787595380692058811114585536461548359720657350170275386637859608528638365925358783032605308084537442089268760854703772553922806118935005221061049541237067475315513699445730682453949075761151376518332311418018097597164548404957039470695596037387432992392641412312757128595502290752535275350757914427210115681548230363643710172342328180325355286182435767256727215938881409438103611365387405240248888560309203608369815049572549654984305444343030057575533644031986818412251000876302703867512695966222739006716277496028218030778637079033967806291427825025275635300336498691814303637845373814846931316756757066660156104888439866777254086741415973397055657691188026023410970651983216043748055390589379624046015866745384930711109907726112839551792446984773733167211849170361707775651147827489406588765526183829813791805925407772793989576818664851317101241092357327197638908467571185247917019836250020232190926387090368584410477027727177076919994415698157129245920382467724308276693418500269948225120890732543389150777447924015605405667938921855189559813089424887358463860960801269134426722941543098210541744609847986454363471254837348142865790735582956990902147926282342354597327591615754786811412621498608395945950864566529716039771550596440833603321064931011194645743405792087627164527730446350448179064506454398441425391958234303320727211153386312521377947980539783818301553202846476828371373176618387396121015403705114805265575101375095585648871310846472925037155849451326227919065517235732790748660404538206406681847796934046301113832090930465831220567664852242873921955756091907122714873436128392715554717021409438801573578839081756097085629845249848870104424523009394944115889691433938943435800235592974337348808227358262163006088156318915244610632248072810471175793926048927059022070460429664394844888434993585375585669697686428701014575516002627712337618488855697437645778106763477924752512373508550551536418596998439251454652615414546515294261861166838432070367025055175653932513619253193748087119618081196086647785373009488684890905472647972878070718296062541755165686916817679770960952824636356744778747775568909593317322130403993591510935586650839689614025984700960248288368413159237640799775533311937651186225133417369699175825960606530276012131092030450915012117034898257599701635939234139448183377217631727721167624696509308124797298681316655753481480878236222910107497481016631947650609862504971831384021940938810741820022628525034035362048176090278303971449892163473890516187480571912309857257883352263226327429708498417939792886655151029929979981778732406368998201869909711005356495100741145551651969679341582508521369713659528318414532183171825932273854345325259187826290199398247636420471564982547735521916386918248858535454212449466448225076723464337037260905316142969230048904006045663677903061525374180920073515976232101966841067784685000144026640018531220007687848827632669436761768639028491442896069645425397179207222129049175468523468461994257003404373445631780188580885354608179014120096408923696041913040966120657331470586033747350118710639962329196103725593564245916192475915648729644924814270344731143011333271151020418872884801430399110944834821615014701893399330173947574496264968573961078025888454922533980547541999115114853090493530785320478358212008689758592536092921992779009874764530339769568549791141780485989717256938780485772218838652839495105131322161654531525913249563245540863185964402820573111464635257185888800348436521382148213784179574395262993891322348270355992637163737948860984168972303746929102475341315948834463246603854395298654093072481191457571363849366623248387235403943598471258283672487977225318020356947710940093140274242655670743458742151504979781897927325399933348751846988746524540198567904753027656252315122754842323430383122331158228788124108260141680689952662074135481084270777779848011177620899435526882627103966827697662462613090352096357624494416791716486403132013634776749320283581994122177299822396667119981011238976125748151484982253969819342553955681270038320012410292916820594502109746422409884619700330065876068442259306746994784986811421256713216965056464450830610281785327833940674922465695427759258073588601689750702611265807922247021623159232539795729814878504281229039707244510274825444717677267878817293567132043127828832029634495971720153759701173910464523482916929717213617480325219851193085300398339649111690506045672841919915720272174033192426617380171031650747394441539724631227071970705938742709748882597942778329014534942695957273888202065816965385367248624609009786223725952554543458464072448996412499813446757726923549935896766829323314803851920664548681613058305571036913864685972742901546144011058114674372221976568006857626894149471688724980336060573519031819596602661426556252572036402429449342813844010554546050452107261793023555312304920647836548135988918182989034376442770845780600392919824543152605364648376528677097472400605159031845038305759205617582258686423328644924986883551751232547350640281483719868040767090186307777941918518756684736773272727510204923422007612397284034343369259492873334007819270408354172337495155146817869612610128900218406953622889578768346790389941584763790807094988133152595874145101488693062657290665899551214444228044788209910554154082633280369836676404475580891887043245742136132936534790374599810825041193623045331015151663914692547849472346556893795103802372164071116559926243183351494762199991245615127345838902837651279606961668417088420248905531706574457916248639703933586335672315836164079543333792059045113763266068717501739687153588380525471463647743906020075825398791687147816325926909926485876837158175979694522951781147327708191617479574024327836180864632155508876178373447981547773294164668263915310405981152446196745886937932142495411994977529663688030712714219928379631830752191934902749240752562516888771794932787758614656074655701293706318135573778003964223613614347275888707400906411400641103640234196537766646448276646593006500463184412652838858207078560067903296040151038114491995810171742377221477303005327881271969508428853379343561142683061184981423397283762218664571933777080225637569380410393285042653350317387601627285271395797612167131404251646413255752646521583646733597161258307249566983657567191561600268467232695137447786003790636866360535667038841293222661603447849548586394904006831639240168475690599727349513010450308507782537595328712161326161860595119076110090266888556094887032327668080768770553871168330582803782217193413163912646474730163929465554141411359287877843033182375171954825827125846700108933112211748957976698581967841897432793627044907683436185613437452373803946209787568858302741605511254094003341351760204173402333781628800966080336831725351819302830260451899524868557645658657500529791437508163255052273736863689048055926972208502251130915652475742921500353377385645721917469318694703426532863172826586362000262013452535399139442969505923964332671206083273385103479927930506531194532546550271767369968318999433226359704949328538094075183487156974247588655443701450332789711833899288658182237972134714612862401915231855540367304810753791363888338359067152310933126899097398846035791720084150441199273113488425681719832765019372648937115212407247154901941545632824242964741878081659415282305597485312679219866836825506118008375237595565876067257843234135042851353398584874611120631801207897154285717997024405959705709667674685170965637372371318920990145217660500321702311978720989251285173784067216040600020418349668891723987770263231219437414440638089166565411247541706169350347027185408757061032935265948725919960449119845618457925891578709049158819303115741317275907399365968566585283872805716120512411502105057319478008071309373773239608964749912175565936756413475974339148988582363855182567875746158938294737371082800791160407285371573374535130131642270663782658968573649607542315402462823030205731472084570566847874958836122392694802325654373281754435354334656256429120419947064467583066756380586218857613666379857342616984190648805103487955812384800359903054724910608786373944248336357508405163183671835106836071768271457973582550332195382270543570593529269987719919388745766431851275583620126095109746782574080456545780909943029227515092606161522079265639973979900337812131105214309779176743561702694720934623970721131669798198113096048930876386060167087611939395119040501663745191794802659601770735638467553348257007547373279695664458978488519679056280684893610501028973462182648294469239178786790227505931757767748601830160357760322595573266031129796317878273558882534425966720573236588676877022174771269152664035263614301769865961630641450635727190117049219473266557644239881589953771999710493632897832978424245575725142314571314719341621366698920073559168436338224020260621171910502852144826575352470404615813059584088989093094886558507813416755295916845623869097282453066627091567198708477497709613843451396580059645639040062974953763251451693093884580787702036237287824005297096728367166699515850435680360028918060670951213377461268777799157618318832652039685023519245778877297254851150150237853375712030817263064867605454494633489479489906348003572709102056521483872297274909806784309936295639879424810991358861228205146854917377000757292086577293868613417383522296595909985871640898256600361146794285558596557278927308079551588665284709656712619230003075291838851297880377091888445845717406262483416329818116540260526698004990175812770618057008645255815452890446022550371903338100263948901524136560154246582806673691867754037283024360697615542434747623296933509577087226218652751464593078194195881609690106466117983364103585837944331012698151268315065794179227885126684795336932501106443215414527085676680818830487337703901048936724394884653638059078700522414471506820581958090445227553158446906785210008375874345929065714940907387454357317067834310758719635759733683139499458624965136908439535961595351290093510963522272626435746725141299014380780054766466238340152311292866631312101237636705749374938367303153921007216773755636319261934903572606497130434681195709400732129999375307509435913658220336482300366535522938275887255430530573166105698817187936964494562831163525388329450723834345884896290065452372937952144490294048867551794525857640749487560911582048466822105392087100680698473945544098498764226463036473126456520244272052065377484949731845940318947333411581161149474936442296426748298911902008021738343417817165270044375824251288701781258976502010060570802269490780403568340371599685591829198218757713853287520890145351885644359569818723016420019286770354647156785565963665416616040406070048780365935176318488173443967897734217349398051943081435980414077357791138017895781168500093190300456438440438753927396658016674836435653489166294613971383638001080583196453921649035355454152532438652137353010789563337305866681040450305016385934408642046528951003671342617755288813243852836908902937127495912804151296067214355190036457175602849167786561961697483868432835959367962326307920126042762239776999896696000825413306612210278771133112037518277071790472874320640338828175753426342920107811912643882858140582485876532287575617576366765632491834927791595941395278801786394163822305418233891715306789190997084273323383803271532272398215845255825943424782743062588783622060323680369138717331046398675159532348825645310363872675196524614247666424623722761216629822871144679563183536333527127970132567348513999401114795095414132508774627340552959821263022458685296641975312124467277078530424821087922103435023120761200688254015827720571712380977251337677312129361209057000939818628044794227212410437065902500277205190230467996795040123671235835133661460968690375956215474616562385569726217759789075536454328577514618998934558848221504952909658174073305428663798843113603557513939792537790198029969152216895723323267338605959695729561065348413492530767726924243124299522292773507662153592602716512180557165275544519003294840935009432032284099258154513934016105676205858659651550288945138706596770751740125983627091582967778583982115105934281443111904952622042080416039446843724458727953787627660006376193656300217152861711557146344352198668309561503037324342252053814526771923517089650349297854787499264327872032257853043340030094004058690866810923926459659000333854872194729318891717614355574219635168056351507421379585290325824058125178700837166375610437392649895930814368401135525731939968065302439923394162658254014608597258006022206631348340100455269458653776509182300963017317540074740421265715532610509916356486946283533399374247085662332397412655840116478144020561015175733186679887022863989579508924705463301948709200835525252079775475875817364859180713809495401146417701506593706588150718397033077518810859876696348982636069925678867572380535509236356729429472405560204818062771017434299915381180867079310869279837163219371228786933848485107990541696718024341054604021136430201262165348570826321676727172003978503602303588827443728982422955534557467923592727019873341184190228223937875099362483451790521847980191330139179827616380789471367208868698872506429288202865137298480535514724933203443149336287509440247311601775154297037779854071608492330077539472809223719386272613187605904795857305818471889789703249633261335583004447665671716179964918245115390304745741700071122329505625638528141453086588084098242168685045490556161260923582708369589927957631261865599525327320872027726931798732513258195251201258611204024160464567439449060863914205505749921638418093946951337583929087673227117697244111368688150323301666887782633890548167938811849390351681687080734570421287975251096282949768927808206163338571789973496312654277944985606949131563035245805086609178339578096190803759964812307097478424139769123350435000021095624993154450343215015294715903157916475136997721446460667477363165888843782010990666987491006182552250627141738290717067852451242564974108504254557021680273423455650346869138992675480648423202531787666096591992473277305686995227899100912999572333474515604938104549308037414015486355637250519776413597669604849832023733768350017659108071915976390718161341214419755647154482448867054526953447694140999242013784274511165883731323018747593909718364367092283733351871353405609357953940800909001393014125983698714653084044262097428748958760171753864053733217064345140536269551684044153955675473687079228620151299442831679229392823693089175426379708175976710274087193161082006728877923069529280831735821150054254726943974469463554787000529288077070135404619751855108683520040740295887523473472385141380410789004555914320865133174248623593110628317960412830527856130029738115525555733630858800091843827782989981013411056281940462630639948015703407809971801169074159194092923290097574988266558643564006971441547907933329399707265012462879800757453538315541206480177128952337621322032537368324711775135528328617477879581821532068367158649981588878214794791491180582204724510281912075818257753206618250183583696141799588228652584393171744245153774294682783663118597397828898923277504522944304875837900488963084383440378111082315570568073915370919673396131226628191456515916939144645951903283415506565999198006114575843029484182303396785684219660678723108968871269018993913940303259181808242595763398781827513034263047505068813236591048927474194859465207444049152922773347002357958030853594779017653521995017180564638529520841989791906488455159616331964640747576490708218724132698263238958905388423015231768085496782027851421513097777675895058618671565717656082305060221217361389805705478011873952363910931935951031805661000665850525439888157173175012296731263594716686998143083051935105758158494026162386640114946900443341146463361115993981147919483072377837882347578078833606306056594855840187535315568161712926526471357486347769278680207768868676157536217895993646457339495399925949882694965483176361633353953527158986224956677687629787280643303559864857753169735075865117519035349743829363815510458433903132879356534083979639968417240267261548597485095233262625116882645769829356461283720093969976746054678056196356148803344900487271355747288269856910954958965806827393236257905973234247524984282407193489903408558478898873776288723370543598552183820636511892894977828732164185374914792294237431916369556354795927316514814642304444847226690051443602695104964342153331959091893453822048202601297829302272309117460231452060212313673415931024217363642354229221044075119236931805431624321964187711539259202446616839470239893712228695238170099226988557980122100622886789954669480473846899272705109987701403281209706022658034256893932906044907717530875217230226615216345117534958513871913073864616946125693729440278933810218396909186715518181616896145086291098806847073898494304945308580588136610080156308476002212391842816796122163034488640679729059785578237559892876842756879999780644747824363465465941385159608521026980273100344764440730246692389848994420172656593439799349308365335171899146053876320014548741963411280256331226243396752388397748457037227583222914582737074591035579024588513874594690784477314201107212326537050602179192818263254389569315941188301093773987079036497817693345586652469320428817363203430717687261509785237804332429828620478361105766426086513766791333948853471542879632651035878103941847402914963483082097811638072676888310024195095495173020896187331386193700999799441903693677532372974196496313897252523775940891890980887658108525910168785963547725093960862742919685053994412045281882883952876960148790146526218696590035774172908187870742264719561453593973955416512109540310168018282436120199281535719774782195402425353205154851866263203032089880965099534218582614784385872515340269628709031877662078554814620947914326628620172257519294296945032616774067325932375271896988213719132367501331206666675602008502649034462954856628237503128913341946351408220085105941094887373499439732282176113274505287443991581405118597435724189767822330146365326748488526720293616832953417907689088340831560089747412465501051488314626784937040294937446600660537674526297385567403778553098797903195965856061516247198745925719869414919287007096039542980670076870606698048059583210133076722687381323745260898192311457619344927750146151370182435616847856675683824486748670844304702755538188573950656680663859583248478910585305043890297930307288212740249208433232345726485566773528391379878793899166894095846607999938384017572570662221008978325252553483768635245079168593437308014723854499939587835380703756917868330202605653804789430169895020860061161234952063840960269109785420294377643753630717563697569014317062867935083093741096299407225084636606862469184764429477973177466995796242081680688100318537537122069249586884592282329923700775878567980527550665808615750762562196973149495000486857640566196415821718573994993160626970649116390133483654732742192300299978740186893786381963832883922122224330172716982008754995453480012733841563602653011483530058202659961379021631373826112966389072668946993455185260840534964080416797404585654314562812723793474198971092235267662942175336647096248315623313636870374200224518698689131578414688474141140883082036311034098447681145442037121969713378570873953688412636730042393383244988828561427413051320848034284810586483530851804663993479862117429422207189343630762184474913412243892892045715915081486846572596213496044306426105088626944383175213866634420059244099034150951380299251733086049008384595450101397721052232561516420490164368850774382179019785316960016206182590984547104441656235929884143935709933033879147447732405398632862176647279853908549517942150545503425498965643176745226490351563665345339189897161467251968615241534592419622079674246415722916480579237129237318501543695731542910558511940410627931496391082101702084613794996339889004196604987604907796591702159879681312904472814390728731436029312488896467227251104524421488275399808862648868654243511699265724683822441094196766166282602901847502032366254318534079719678813587769968877115454258444847166517212997042373297102311150291116329288678981831231638762193921540503981195623956330677465459390879802350719020210131963477081341184505572814434593785058424006430060371246902385760830943321553439684392324273461930532376308882402556573382695502069955285385335650863485580925208876524753144295411541949979815708287932138838459961424994340288567485785782553926019725710006967142628233365390502683886446408415909663489051740084998797262926229015352188398188849352442145308247252144192825379993599589061183628861330181584340944480106717249484200555799309082903324394045260284227629675151383850981678296503997457748692943221715475150924480287445562984428177857054363497152487743876113882215057832953382765592036801272796421027773112731820312727502836853329066394660213279645416144768437582005567747613124332820587017721864630271914655079237669523485815379522242849933847214812884742514771537376048035015916892233909560378309743166406205570269887041381171295723812166086351032023803224555713960135227432864581775785922854181656447796538640394606945792933183296129278724066713671171335334059910634481213990075257146566031162333085124739107946584345395543058010840710229294012740293234134541790847210087645857616848380083735729974827496912976105090692005488271165033912093055022861764228195456640839925048512697392546988912977961654508409649519766463724672370260280138036921031651807915903095030051149304875106737608428959324723082419549610566071513556071180541217667951541128625729989292895613607152522836367677183529013003496388354062119042842610342342155111506798008496448974361148726615902574146781332263396679322564593701140435931417489251757516693715769204436675579730776260699094155661174769927901390140174634070293425105524768266606452044951567174958358912811779967108014171361932274290107392309124422812599227691462375353267424977022730942480481534158822612505498560375038073047883249011912426094631126780032455441178068456816935290394264036085625674862666777112472362031800134303314791647046035450574355550488995892444261067359077782243217598780419384509353988792105461217222738475054812612178528770153766275132012313669622194810243277560103039756550832016850783661281800433146871121735745866242612697015689922425541408131366781670365002166079267451651937357596741027406518351475333805273928902960341533278258680166617937809768563217547688489342424469197526904448722425049546288634925546034898614847687668907630255511044967238631369527552526384290342483461323821326786784872886220652727643938457104998396845726007991072602881000604360501425475996436632279063814819740217005601472096298973255632617914794106102236027205588791694038208724481399125828762293615566754400044110528075943557112215788653596318687364638466029002244895955434903625304500434692500338261266723862659118359562688252960324582000150071929218417300474899373924674018334800380783733117086669985904742485201673211235418300179613037999527296212152127538705853071208822056740314480705337260261550122329371730924093800321061867869996999980467809199241770093356159020226192746600900789599515678751706270353411820216227036269144262601130693759779985697135706528987743238406759669745326052258379082878072814336979951809922865144184490117169849680643820691981731364324777696850010258760716782951603412560256320305944774312825784106261809040024833274311624597576455645545748321299582389532127875178322899454047271197047854529679026205431124218432975183909219014145496121295949359214838166917968875431384048934051949410693710710105144555286240543594393935844784080632194858596852998071228610649453118248282207507981958861695835116600918111017401576317365766516600544408381811191521234787703379958933948124837084442621607194579274423298708963656209221251948894078340142241087148348126473994252181629690793428075801193005237235894914843269530486281171196095568927251042825143582886615421472995266187435341065264359509018354223800860746044088281536960805814060569939189642084741332633358271283933101449252386296575247480825596700901791038928775450872516742533933375523784029376612792131752454093453017768173901369233504601673766121730755699819080412912628607335537163062412674325470444589805404824734248267045337242507917763880611740157796111741020123016471838362117769306637016063031770092332206016496925189428353929945280519299148146858493809313683341498018814281074502213043363893632174481634066810378315092949862381807003324911138372773115084487630503371855085936382235231268346994587821963800222587732592130052728069700505630903373754335765417969135288978323522789258283517820239854541684870708920290070519372152296559973623353014023082913082406545563078080733010296912994932339881474427638500455890349026029816021759461386078273570723872676038094446341480385918913905977109162785930890787167866913207201275333509667341619363322801430869045713068215625104124001160538098017897401047775567147427629262704892243923486100992333019096136363231576714853266655837196614567144356176111053383269839536117809304267279935125000935915999700617472126920558379040318773274779317424459188573070038605127797642319451672543230941729100158121798145475074445301096289824901827220571792970957862836298332274554756307630294201996324312000413445364496788289509366373761467287461977905042794243379686041989869851247055961462342010090113188126189060340070034193419524638084901946553869028405954856858733920513557418271644508704653083159626669520588299307663105423428999651805930773138676925800271364278695315802668471856624582245824781910011402150371283361318185730664404712925382351180993142402233511708769903487399634789915681075498595068171736140321307962647408835239992015963873822593226148341368828713959597590397448436301234795230774447683829788972015733265708026952022597376434290832007905815729397217501172482209749429993803317232405091248353762830212669472416450428330256204856913396863701913499164522182924058345916756998316018461114652230923776772274673450194390083721042379988281235660646567829997848985633628935448589576617765969679090672106907478481636034962347274796778938114137184201624065545631971208672440566111196963812923117810326937988124671449985578978875942421404582404140922741882586456743248841250456612333492360886809398769957426769230911634032651514161565506718736884705157169118279332190724153928476194213345203618650911759803324372190233691311723459427998206277620703902567219194663063026233647037848263372150210974416246593744135378739035236079772591767553828284087963491172551093272620093689325716122726424303528511973282894741695040745007828878736773677531772567526638803751738282270979369798517078361193290386110796880702340731245246640468380862932937674572715731406296209235219252320379632378004936989786467206517490202028940693762376152867207089408733517097443354559414025416144161183064049075269860401385236016217926748755544172685122661204986757134211849954400181976303103636188137796281075049591818054238677147744785595099016294519989816985797348798691861545558672180199174270735576873040550201740780733166199700500716767196273888182057253610090081929033784921083634626779537389767894950501063933159046819254290353726126968085989864952796145865025642299932191050012409185680298482274311598722254724474069753333060650524929648506690408636448468399306957585291287752662352236477200504762167331667745134290406792549858790530162975579561677576914571637981987866822862774972205970915275182473899406951441359171075270222651536505874019460471234299548925532741074664622895116257943111864189977735721384727019312584938068197132177165628256841917638687930996637188898102545346960300008887551651530333670204319485551474947398550450623829982722457001715230784088928152812181374696590277206220747685452882911048806848092993679184012047092579953758092944365915850901329747857632251540591591629410163319605465342636582800505744249704894250847272015916162239205395998996113744824813903680474736695560547246056666703769602012762621735943258847123752879369540752760578869540008983701872611285037914748796559374530114189492405550810255147339788081378876467779468008044972779322572300796539237711466198303982791554474199491792493590530233460669131057163325061293784778988441878632718986060680381717069222967790794203039688300510544042173945954944452078566196614096507753714790562862124847965871396090306183034674192137293963556002181222097961551129418779436149520115905578456680656886741971768628542559561387441354789796819866356958114412468386415970801551950398633139797474061607797207456995376396628897373955453791093632333593861627067850091154921706754812840900531998368955527822991360662255005778801612460764887704418221118409018496906500085428017913187273001680362688098465147554618356975627485204984922637819515593426508339979785863381568542025118878037167984434050954288632516103303925308580450174900870996550768962831489320059167471283348577453674276505923582428911342899085574152374218921288080604034357602704041025197868279162261392327103673349421000072735501028624774610143564006783015407621054452897365565127627877068394870128587852534700864135640652152597423887880478832464084854192217995008928215821899755233951147280506491212969144825557590882332559167576648121489063777760991648933572977212628351063392919408431869968034785630585195927577523184754352748431831832377248459847000459954738327935664979682266193771502477141370877123145458005410556946456850481878149084575307761253672878276428928688949550433951700881274931266609380005094702775775344563848979315903711997171466153763027131428364769645745479591961156745882630146217502997267112426484069392854637555472806467455967419627431914400877726352226624541617875263228624902216400372140380525784453363618551837643492884977765337939543102792224522210878379772394760808257599778470754679776945982168426057682586080007227318355010855657165967648101528431226484280746186786662868547418667478741520427009722929578318558098277163404611749772946743111210508002580302276023410827724615980702421976989248396778977866647635662043380779775943702673774279031686086116023931814447990137026749394240494387219454265923264417943942115723617506105867593397888786711479490127052267794770199674779612858890930804236348329337613265448936474109180415441525508105771124754728205529219487972905194580171579677173752679954305621544096452175691480951565930542741997508271928192032809984965142543277061716180995983762744080734186748331277493950463356246575254987824941556424315805044936431572870848611328898874905275402468215516432215492689491044292392381316469930629736486737347264618239725872518673119767803154634391445396314518983039440865096546398767034706984179652822953221902895126732022426665011070509932681727829263513084928688640371709638726335599636106886468624068148338492256160058607262214834447132953872967044649001310740791636581669448683632832025702629496277665992741323318137860705153051119774279319241492596985797554359101015576241127268706938707501027065547965460576437832401752656454755814624292696764050783212164673575668379310744159484788909893039032927492867050946109988807222098536959389027385179469654451527109850620015212594173151561764424146230307954782089903458105582048137776989754948188040526107767948792947104831907170671952757740384769742583931723162096810475885118644654187114472388171379062485628970105365948936481940509542007064655388406505001364437696904072716707351025244041387903609687403602448038871276763283749848924106278816777996020962944221693249059514555856705398249837544208295405351901391258467558176475699505840613211003496783683269593262663278370060046324663366314253762586000805555426212498218022351541026876823294554161554852888069260403679352430851544771686434020152297636203692924514962499250392667887976677393520942190961642267508654083046100856681125499897446913006470068988285779529858848847262411438476265403919356980513749490467487994394260633282820871385463931580667560806139806113476928291407356987906162864199320864554996860136067687090668835124659693724579052851868592656264978988106879160651646146720370925087145553444525252506524707063319797913375677467781693899305055238465279894853370414814642863146315176355026576214787856492087543470798232850988650438695486504763752031480600352158975030655937481112636679592170091849968985872860946157267650006946162319374653724786668356506307775680820497499965132838927513158036530709806195857103513652102197371618727843070737349438403359136084521704687267815932133440571426610923386046143111722201286911072123212421138026905920000303193873476285222513198784039401376137905162638421502779671007508899312797860392986959446267310291524173735639628471036292492799788365998914722668447262913977315094559273698051476984751459728365748837476615577361029947493135223203396201954926942944073372002862551095653531610702778061862758663434242204405567561990131900561475399098868957656539970115448053181654451336586477465788010242539593664850710434597618855334192885176863954285531127012160418456717491103771983835670803645616213954692150828810205920985657416187747024949636520785721323642121623841924679648155753668082584981328756154697699927535575989207379286557632083784839172540141077952858411327434682480641497982897909126691346952957448948345720438534028428235300855924403791420863952220469045736600489417956039160147491326090418979266318990554866109493533412446598326395388762460397656550562396847867798437709423630915985385855641316680573903519913743588218037442071250771063508286998365708670471835368120457571423323359991078587011516448441544057787806110586139712336199380017087162222429298344176321613867501771167876448310731458179991969488369584145988784318218638901438829903805377124675930377382304468971070737658150900411497751707739497685171651316990109965584672510852791359749287995747506618227935950486522277512180644644012512828861295282838441148210617259450057377213099355382465717413933956677390865742323907262732656060882442746896897711112928400834011871811858183097151626477428063722648021709304759872623510502609726840075025115480896478177549471585697702516719138828269710673701051018860312975891344397777814812022180694151059238435662536575191760607807376068869574149522986231936555329933950559402782698963417393136411281781137258086401437530037751921973314249415883519397728792036565581205655145084432724896391977882068462676703693863048545662272780612473868001831859348064122385361550461625959851476911196774756170427677891259685756645993537376177819048367100795387025608545824686784329032180553454304114180981697889004007008300885356442761169998753984842719658824256120235656785064647931386880631942788561740755573919583830746716156222862192731989026371635124335744166520446254909970927349149449726367923309018396461618741368850922457851700867734443093334112438211253671396406919229248236581284133735581515175116954602964581090928515820572147524273140224965517807283072184900361583893388753996136972994030148497541075781276523645440330498358908333281559817206905677078783566712707266168574287358281025616578098262575142240639358139970245249944955514941130371396429810639112272765388927016360300992598726703703136229528489892021932662805514379597791453664904066504414714857251121599502629994584928860977791946102212817644127295025285223726494630550186183726605802325726090390691402181493254798265849214511216457515111387804990078200142650042183496911842509647189800106470179991852918608087414787152761436807095337283468724527593032100472697883164015474478890187762031127048316487412922667496782402655214426935845087817553141325555574173338791139583525951730773125545586173681741078482914573444380129068320171533207532649012492283467114106863343793906546184283637623210105404676697368643405822816608108857014810926602950455158455005148265900419942115364227279940265783136213202275494152752600247207782328083848739724438928059905208827470323615424668097435114154072322960702681865933709663378848449937092365399937777464719831882919694234880554520003428923777957977735623583282653546226338531772906182354001621068283798830052441716769502528398974496844859762531175276884218388749656678668366945781569421490780440771719550175275195527443607451960843867496101580996276856473679936784624824911135021777016043880024511626766359688289734298489863117988008111087801875662765119432809206549267288226913772475156377220549373955072204754708718793472618679216055175708069683476936694786566014178163644945848576664033749132073210267945616681506409259760943087628554604067969789701037663795787984478019683578516885080482070036920454213442905214883283703893151252405173807930589401822189924569862379140727163172394485732143597900435466190988345571574755555181788516910072595983490027834250571885746067312255195110941452335234770537862639634152135863255405806154050060983104353933074068089236870186245029141588985915472624148870556958444072907320234665166459708021435407840377031491669460265891322361021222881858071059925855244160995825866797030037407354002573580695742494941222916304044648327353407407204279475172596017794219297671854785765591472538473026885887252247986010383889895707985931492719656312175311408952381557954459130827714435303024819317029252286155561010498198031350249289208197802489227670118626681939862629427626345342838361311090037644808746898396654035017666367713249089422961542828423167493149065012311441504627588741091344550924711494367161414876939507285656006459787476406140015797615569746737451274784616460689632326504634930228202387812267867224191799466857248831088149074941809853977390305320248639108357052717158754744939543629221825416065956167333950343036375500373443506858681595424676002161705137425249824191585757154011368152594027584599867462868196646634791932536475355250273230680209982946144857589656762663852885776580636505287708678656285137877626951735766371102590853913014720974098352029690391163321312838097251049137141579420409293040954395064044480070686556345957891174486361593887484170494514827297131178429590344523573034618411757403200835414118180002927584528060324298772657334786583503829279307178712678668410948103361945409147130920346010855364192718141366071893833341322117204691293100311401368956301692415344649512730847505062192831553962095055416714490349353708090413489094998064442273060286439410727130794592471370752708634984423145030760131303057160029936954673451352382233563819274819388769295432732408526053669921006609470409930944670598115830158608491888221431619395348015824253961383585407857952710492404417756644155509832617428447023108179475731771968248818549381909785916194378468524893166787192954522039624687649558270015257365325048922625045698639543789847061218361044654215084801717562412495803002384925668975173215199172743833589510385916659519842064284093477901816040432356838246495249818617656134810547429666898121145025427170663717699635668711688312089958434042817514894520194463015668660410650957272974080939795090767457675448599943705200688054343042229510933520271740012180944565052390957750428254884385218249281346026379232526742473858835854381503538104559565699248593188091248467467198021712510404906476487940795165337211787732455084141724398089154821170717784680153097984644423767003346017668354949505606080433056214746609323443469204508239985732131195554144740000272459981167673935748755793886000394465809877287139621810209915630082393798982792558851622618691401650902261705374816161367337293418649618797711975842011683120091435080770979573747720310515538044903877673817700198875548076448008974721315212355966635870387164894696825029060528447120186594292576284056784939755260702577698339117856319861458087346472741977334533759496393778786866049710355312187213243314503730502259718622410761995233473975443931032054014537876407199693013434759305758576540398491602062604298399227100298853266584001413510673555013207305783324736818899320284414098513601141029482575082848748744116070807724158963065099793267501821306936193881609906579330995213321037490964885745080707567285635567143642334925973858388606980257171499221357127472513478534062809048644129098618839563552793508836541205773172135059333753979630083130117800623814806659608288999956184487281951978945757828677182211591179625930061231708397876062259562566193282805873350851267037697991907414567030061061522191348444708823423027627587748631871602471806975024424759844875557246142630498557987020931056979838176302407269638909267919311115028843806674409025624807935171165674885320657387126951223490042529368910705938665053044063611770340986920383057990578711728739069150173163074929671138659715940009351548608293561548554419235538437494235752184935544783519749835840135354256681049023295260698450362314876709600709380296227310924578930984306459890143395398372684812567831849386641374341405958435841683765514155279924307210166696018038071372269248589170558480197389565481764047626663029868301662818946148381718799200958958486410883912610229967127418341468385155684866678291812211942482471153819832280104316092454791815933972557094998626482883848355212000690364091219707742754285664987885473863876809829307228253379839600914991211139715549572172857486472706452928297389888253520141816668828108710649660812089791773385709948823868862676958166486853515313050329391009565324609281011333958163969210118336597813568638944750446838269283148906765435717031930433728226224693304826810776354141557681616973617491439609897449311454715854974888687135399048790061599643907279528546704466950293376660734964130352727706628699992446903196844453467506187882577829500094092931070520002852588270162465711560464926872217822786989355738005235532337989567592190294413496574115121915845225652178638468745190067777554504994018473232723780310721893139733755917300076115161290194486195763908220606665977712330408530028530731085275130827655064422897010242245823418366354327733200524139809996560980072416722893728471448352981312992122234085720270391658443249040427797630000712972270401631736960300361385214465564518634106761505033303682822224550378341414027917202787752345915316980681893396965594193451693070369489898923390570555078054531600846836327891513304286312195862517238275410410501219125817106162331728532570893364764676791661036402024733574084325774047401344224236302707140715828554051174873661004022908694992137936348611356737968420068438602256140881708074973959899328755636548120350969896705139102119753732377230129562315320861988429874531947106103276446967817338573294969615350329514385748316623991394750561290240105357719984154954880645005941441855794400319109913216330532029079869252610255097366709768655685688503970669518912262647854629756071863906218776904421649086112073843166251862507547926293529916377423590438469707623038309160907324682446836626237499623250626579959176184511240536313919475067790116838528259793408557776526358940773750965165747787084847066500521465995267175694942346345723732346232187563901263501306488663374250850257168083449753557485302833305088461609692803529892938895637223690784290690625204943147537622525990686277690503224607650558631186511419294985017355148076296226119683152358448243936334147224773122429035407423662540593922216250434347084589965940841974944294654353858968553084967355159310462702031094785972649853762967070000956016520731112948073386936224088716031811936308234113039559009576815492801445420695746367829437492452366848698009382248955682027779397455301737633885878089267568701228717354568124792400231965362571333889329082339373483089725386627856480303188080556484258097224215794602866181792090362393769988128883079754850945262119087726451578921948216897384498191902427804602615764179091593144642636986749759161056302905601146123961402488929881420443548273016524584858809786364566987212422226420332726481467295955651114916932920631111423735372096914249145909488360819252263910457183766266659271478953879549612714506817565080899025207283692126258462040525670216466662401184920041788789563535031740058945208467432012511862742546092064105722096901290484928971183614406041421946564145653173237078042539869112243685935513905303073308179384001109530587460467924558563422101109373770448930080933388295302083014158150314985937905380763806838702391149956336912585061426829844696023612295913030126311300186512081799176411416011569684328792733923603098737270520699623312701541765612429390010463723795993739304725848782891870405259317499234515690264489036065731517316548988079715838350167206619803411134224520384654315803982004297609037857527007367966505090433192430457247609619965972091142555740896190386257004643944849155153539304542533933640020379872018379699587487239942858548964413565570701369589306560248140912593199406798177282040233331937669821920965604834383385642307936137987268860255775566843381597847987298235711234431167225629347767704307037371425522876362775459233427957541754555194113752375896603873636904977027547275834606057078176195469230730419940024579972913852789185437888964969413086030982464288846826084186611329652096996219290088403919841537924290978101171606383489590656461755096056957492267854619972467726627114109869647692431957747272777034037909377216694113811093708588373732293689360114687081686374159152092639004022355323037157231781624542911191717326366263349958797458257603727248611967504047111487182025726469838292344532932733289705889665330523660083660561325707087574343598257904572736339144135716686256954493658477690555995858778157498561228108507106371570327056793169922655483683061326723615024178298582570209528697682760958092135359227840670344262266498567790584356466665729195841957407006985529645338193785791134764590194267745022184868195697775793170926564638935844047619761060821160864399975253780680854191425541968472459769651561911275208435522303168126745398126390561791891010746282344431816411814871924687425983440114336235589825525079185264340663769673373915589545451590695414023445436966797262548490658068353659650124877008725302333316346094032254221750052000235131261991394347396078231208055121175052926334004377679172362212216221513766533783849059093141078581506365481169542800517626492400126956383687447401170775781218048487296451436919460625961269563505090015143671881573925163756844093556349756602472682103929893616710142702036988756931017412719553544173135926116541424210276236545617541110238341672639769684570771051170816649159670158716835110701515771719903038725073744018697167755352487284616755042727106911584020691006171389810734737530521773945979635762386776234019353840660346173793409963957169255691705128378477848875612274062595957210000609626440244669073054384644428677922822396465272729847192528616917709212450487324072949886772241134820428302658866322315377385526680930161387329892232071768202896628770157046540574961770310524815974573373149343785721537425361781782706678144320997955135683407421056732729868040994089596207055883712001678687601112397362325678409351756750918131203398683370012003164864258029261761744371730291436764128315392304030621422027124258614878051051409466928906826077422172425855067109075055416410363043222809965888772092490951375635397157729266477030342709139738640910224598552281377177444213831850966934191366622400278569748523563892348017798061169532288790893511140718619496790539078502606033561952432772712557571247495599151790250804923271189115849473977509939667926350277595188691712239537407889116192223152585679080976567463252287583565306804351182902395174711920493535226120578161076186170823058740583715263548868404921272398996443473960401532864929836418571526135153584897112393430835228996576950197389553690733820737470205520084746406294142578415504973131898934632793634818984803885444239649925986212313159236228529039092695149389700863088515017703621250593727652233349705680931691620416600186706756224167016686970719280432014473431970359248217171090487199872432469840528444958966012023911967824451997434013972839158573162778188792218237057137873350680935845382621845923989918902572111685139086472882554359574905263837388567270396592127531455768892829703025433786453061058036618989218240474188163434388333342810064699329139416871517307756714077561268252848108112482229525699190020400375983570174997549745065900802866574255495252598623313409423993327019863747957522428056405267530987655945213419965761850190814968271169517632089337005763992469772710611425256903258811483858091512665106257878105322356447296967028279130044382189710379990301302188530796591797010504573848607957158139871307034649023005958006879585511579110285748701363052394927107132217719100541191325281928502281733078417896018000401748966091740436626614934724077220413006861701066589778873307727413361671736860998524596110962075442576119087834246848390003310526568434391682766305162432653091916333396475746692001882564422489117144946637452987604840766902316869720900296663478712455091557829958641408835315037240366166273511723786402252032351512717037574586220953098416084374597432328362631805565511358333361762142631921584804916066871126480820092165434455015622896114551624857985041961930495442993809855333659117341730754745658366154747297896961387642513004904082187454353353669550463123712453748634715435095358638089180791151102774345751815979672030744994661914068353218751087175125951930694144320137326921426305927766185251822374685254567548684832436636498691787466420920005665913502381047466475649606434469989875453394945554923588603042093963551331782423328331551899956274977361744981682921582299368914477231413608974923265647270116050508560174775942849070424439856516172604305693894231776731976627147814987176890797870774902963022891149985858185956244611440755454551036643991508162842633132045932914152633368003326564175999300615473737440414406017252763000294755566507687186728738474287361310870419333952018066794104098570389521493359501491868833060285568519924970598121193341192315641741680497264695086429571152802226321977480655959136424364151044749080120869196145188404888968201111433960069511716763707708401968121061069694871171912401613801811026424212971921488799276809269522149357589030828478978977935542050030211403729883184963267436709519965924835433074604705673106545393456091241918660494287313133912417091196621659238713751948554769173359995989585282511679718882097103026072765241786646685053979707848423166067425494325054854575089077176482024735563227293662700689849821357063833928599460237637663046798370705362993108522293704765461245169536871480228253978659640819557995322241894314159501312173060058686738862939339611169357464535386541464335305364308258144072926849932066006134856018671747184903030258767297677838622648262925477724631607304519161713125215828025999876537462722781634680236629322896422954255641980055805573034655152798568650987926071408841676021743553918514561901320013931088771257464672708571365690064340837598895562999183903506905740792323884129386847025603793594464099769170474955514031758586402192383238022434145559736150883625780083949336443963096197488132581475487042728668535518156511413368087870473768307338857533732629816319083880333813670992754657071865919749807535974604175798818238843806854092963635500878253436569271199065506998506077420168374837859491733255230183550032770319560519728536932996618966609523886821052764606653193074287947071073999480110697208709583360261126572855363838048404490739684427711977157411805092320823364445347022799026157238378684386906859158239358285142379012144079975098780056150707584513781299061296863480366703143414162104909677128759648197048989602203860904931396466416638372286965065013547389722654694193489555570920874784649402030760083249156787457384272121032982146477515295754196772927179697285870809722085181105288488308201348839432832311053944978998512606253610261574134972049078862130257657609870621827425466473573406361199724815066942478779900342153056955208077801055135383664829439260102448943101035110943432451931875370210637022589255800914724127507994637103460386781261469328345207133918216058635725599573828558266957891301963598129283265243628016874227683817660486213576245649911855240608581586012746084318215575204954655120664499307204780312247296042429428560620223920754110196800291401236987800010049182034163503616816135291057155861601606247841288560608519019086026421051038090240820958712577234774751891416437311417070258902807390334809140856709919436681014947751761821429009818446151774661681329199653116700405552739417850118905849952482867455087281143843737754720046473809318318642780959972572706171822568038200700070340561610849629262041632153787992506830637020385390603448902913151022694093151280461740326528015150862539575537167315224581909260632651371034368710676166672892593109049116547948430494200877688719706160908526392149212567172063557766911861328606016187172168601205110249819764670484400086995474229780469796173218473734821144975261365387581050037928543759383272454791635469539052098601193630761905820995451822430223953727861253101361726866968849315314817477875201693455416900661756897528871954975490739320413584670188008697989941701520927494885076185077896731307792334520792997194987244653016482529533229728887107238808252859545176646801533718086924554534997722412947444581105214973870425192539887317116270667034458249996006580642485676108473248347314340897775115173506286705092885297587151984261328044034439971264345400117950399785138948677532532000441705673886041155076524451407356658663823399603037530443923821523791254142499494463705837216252076413150812214333793932041985662885231547877356704585279225549457503661561512555897784307166010092388925155616490258169543407985743703101608893233152768026170971291471054738939450386041228431012749958648137159679199952593583748361324229546639018606955642539194319779580807304092129037064068408787230132994287385356048988203537885140652217593266450802051156882908433866487637921857263164527064194227968881183319221126253740381983957388482654479987799862441806436440946084560641012212957886604652343704413049790696120973189739768698422910919087333060696996789808299641918098631951106883357556893196937926668743545680071678749948503598087503386666282834931864506849082694027774223456443599455178318011384217135439166407885240242741100954105198011258571648663501234989140049157604634268097203877784700601683128925558976950102529159022736877946996288078796320942953256042525871685286577567618155245231442665931105739213588435791594139456513683108119508515313707179546894102649577731500242156745179599172211340305548186901430532609059028947781749649814854276004935722595373519797491112901017361097610767448029995993097431702032020363898080564051039269531570741838260436470465461810492175598726258252196025663204690822360080194787791446746747072494725799882588120475128839942119992876829505352367908448158887757339453836399179331748278262102853878193246128338271085544161371325010331221149449505980160223529292001963029937855450686063635006462937653880787422141452217150718260658029572138641528860360824866026807040234589054004535103522277053657063696967923932881636969285142668645429118523892270619507067330189665676227471955785601010389372519518987718884580979278889819385629841409727089164528870128486988561180846611984801326346646230596991858489802121749873430274392249976377613950998384889449001906893397543771530676400363628903314452445185340402765224427927786099682516518284946259402001277027554107532270117008740312876936809163321295425067422709663912447077600180366583461812735776222467183018951698211855398592905411009087368558170071938588763242820438000659551004996357677807591334465991640009095335605210741381811405550778582013909868162561394112958093228598028633785026706504279730551705536348359736035948933151487753875877875902525665471193341267271421446016508893802008949434385036074751677211930108848125844474060154190826656339023411499554740002975896362585553282739033089414201187513399426451827959534140810672409213031154586713336784397301577755971564328180543645401598124126733796610556876198961873022925615302586497864642766545854904614403697327714984472993318134282713668294056085681241285029336469764461397731583549700684812239549060366670761075823666984419822061576462245503292083768571403381579762529398149923632464538865374706117164843610086052588533407534997902566592062259492517133982531687629912668116031793547903019080094495242209956228901418726157631034456566146601786133572276177300479711954932596910507129602252821025881483032787104209329521081485044559329908411656911375920547422448709192986592298714582449068467732566318717215176880437678915659055831473764483592650777536068083715279331410398493352313406426923305048632130826083213412018822576777855623299892422564112384561646705275409933114283778561912627563107527088444712717961624163142789143100349531423045295400956558129215415013769567410482907819503935426456123187598566355377425495747635260268471634526640981914923240304240507841097067410599507340644003479715661345322750812488352724008231977981405369389829419708166880177968234882256573150886631033520568966433341569405154185047389800935237669627921514307320858240666708996357346511065352638570108613971287915186490906411381851198885360340032844367965406213745730314114210810260778494046645106916552203869245066839476763482412838451072239932749539956688441125685840854497388271409454103938459121539356376277740083680107248179010507483772150315850997674418264451713779518620804580501022896782194736204887389243620091696313501330879363296459482502493885669741892589812041940837871977783550749587118156222433308105681650583137895933973514491451049869111665262551307777846117861097025147413540263948086249738606784380821591910097827575471913674898459907012090838890994874791951840341223611787403411269600417830497352062813764964582446191197882615539871489436515864345361934515276451602713945652072384826297200304322265212415706473991518001679619244071913666035222903351161025389762382409970804209488013522010278666523508667820529191896605778135554694652072152214990642446161694338639282631976271655307349672540014359475773138830505044782932741756867132920464216163275353670633762429722830997167946173867540339060827493771281119389813340964712105611562973353528649121064529069327942759033191814994924203354206641325559789459524250149714559597319965301026817826477799870875231531198793444996473846599268748316195541226124171857571574894353413672954805015902427091739648737452597813867057745957307737396876442093618756696084469471554215693429462592516243044157577429934068776384277731904298641057502269721700273571695322230185249134578201527808068955131483550211135238088609425802546972828619262503219677753182495316581383266537589134846634548927846960482886840007279031977261083204005475803410437245561958158628208011804801733581783686835839801767268700415094425925612763517129413661162033560905212570778593464910254919683128850306956391157718216163282932170401036395928943886899531838171707372633318516679226942498717189515223864734519576476101445295096618750524305697441550364685705333870244742220136394198157902536198959238009494915129608244380113590927960826040913520483313329276908346784779538511186507339195339233991839572632491709340756742914675920469730705540723736495741725449798051915155727881929850065594911892164747720605281577137711743898905567008493680652569968950779587291012127390064136167345902748147632632669454519938757804119456800386519159838459474820885526670577368822573765626400035978146013289665003130547375778668742804135609798891405899566971163154760074844870724876442982260726567179588589410930742986443609274052819186087748018915552425661604991114202012981732361682177388752084665956571486536312462849936510606841159612804953911816316546393228693084017878868055359201945084517063683443033110337644566958107653230313865400220048064640012386279538534095744802906275279286138576235563147550377289008213934145782207601617617846921007296510377574133859490372533639486865770996246553683018163983431491388787321502234052515026888860273394760786374427809597275850459544464146722798609527064641261944823744799482381655226180699980824049118553501380826261342162183645499167837588549806481865745020021442823843634251920410610018878528937547524294812983216814547850007673911846228294457199815075235615848556727334377038420957915135239745382697731991831546305828521572323256069912526721979255543502424921045197426955317847557900072482643873890859941041144453948383700909899195238187343301449463574152550606198641850013352046808127500754948025222273937459347447108142609153199914622441591177494266272966983626655210278452760876463486038133367252199503852808288450640064551137338988654136545836952666480016806478330624605208376888774990797076994741529675046261809265773251106386578704663584834660363808526480366583124383972053271852867744670066289702907898424106999339386909137380226633293636478337412245300468449180364278822573778352876066579076121069871374547368004799264511121849707172281583766916317013871319732444986905516288965259443273863584230463520666128775554257948011527474178062387868134500762086035178407217581780363809162487513089607479186998737397477731002743809090110296407802986425245235639169142493520375723850102958963599047958769039111354508181187468028454661147168082287426085698025761146521335622562406388207740645515466403423536557331266414822414424621703550780180685461880434754001947094243878539523037539173389397323351141372409526902055921463588071177510539481960210355908383927990111432607124268140276229348929329354672020658387805463593444908931588200277824080357409320846728827455911160924746081132701766826438789144523008748512540260362610879118392621851095242441873104771402604216762079786504839094999075256119771480650875932323209992767490841087329378556614098789919504531374388815604159436362551388888782441938996127552597380569156301888410840983029995416994959263953754534582789841663881631882733559320837247879488184568526626948485888346962057348613146220537883702568119404148433885379219057499058960978185811293825863330255391982608578214948629422430113621476060527628453735486923332226866949513735859801443982603813885888613070761338951870693132819763312813926553006004851030961309769965803889991811416809401965892030449711876885774844917844596997426514207531820444012969836419686252823640070389034576503328473140826916235816612483379506074876188372486611334859103365222575487327208546956847222719866672764277974630855801943133375265872069218677854099776145226265002488186654955283984729406175546984723564574172609104371421778771748920836191722149024676458129629557936309079807548289289506061609732842189346190907300092928529158676407882566234096231148670970393268270875296853554692566089214948099806150255961962341898614138069128977146794245979550015828970918697394202004751000287074879777254554258610944902465550920153353214895075374682126812172640112987517982473118678886382631412098426266208725111032543410247989467809269608808277585021025305241280168808774130095545673733886450554074235034959669602850107381651881907215139177934365031852936743148118531389353182414550337500276667673054257028519758746291298019042538407722040846774921211241725649815701798043071248324407123910203977986964263683993911371004260506593800173532188288386812812273041351755083535981748935807053739976396455030449555321205818163711447754308786202955679157812418234530546197388681002686258106066633701320930952432589663265955020502778297259581787925363852175082868682197651244819184171379150732236639158460674691073915980052220106696702920456859482154139706121098286700497773727452593150193096386777981079372559807413778519906769006522692858135741954689429350987016542064900089852096866373521047465749887618275431951799017232643130210091283382352595477753663118183342847888917486622464165054416197907743217655449704084866524384892626294496045649025259027559533829367238189779947214247620220364201484974682611861716739204109226138226650206557768331287081412718206117731737755940977683674818987019570337518029274291293018391387714986693175681624974333024628593067188679036422359468276355184752507203543017965044871741264370354673259403258750684765917007985278599233264975544922738922975386161627210194231328557486873473385645084308265300348553665482037453563020022609204123988772632033826136925782097861730132316955095773703315999453498366146282639705256000099518821861219081513789445848755136154847476750406160620766888629245903790995974725797884681707489002019791485754472523769757305580649850346390572101100233122036890898696027921057433818884703447446874552088851793440701798194238529851621030628407550842746398111103740628008459011782601681980567202875309621704998801075729279346949853705078681192464262070773496702214888494296045800864454470591134361310276557830307282902786475861120122671170468976204766107729540118154225400790346666835545543228744549494745240880599228476840299327757026787418292288561856659648070722447316166633262655266570926193165415951379935982962585108559388784988531766354032944102831224485924020153596411126821070104355815106676746852470268732239798323006304366564444680264269425019500481515917711674310939289854744964315191255262908242466103948828423337000076194862618167475581294238054149518978157858058738963429744401519096669655862280540053307031086866901782747367569384427422684327304118292997368790307032497951617732703096065193828680421596360681521149282955065237459076082085604105961516046490535856581361101140439987965873675741874234100746464803760430044787814719100178227859703826392518324948386706575947968537256544848000892714813820532185112745992035498752812356320289639484635964875129504596066407512325181550866598432820422398056610502916971380718256232414035985071292529432183402143431575368882707857596988617686193352888717220405786732341754083217628145907605216714594101085328949706161102435033288837365584112308713459791268070270988948452580180588829800055028127941791685176520333572262544681937495589159786494051090990673090454228001619951589079521400835759622379305080438096145453836229254667627106614393377262542239065736074632258901469547694094755772289902212580509909769441426261110285334682980813608220994218078624118513534563753781636387909461913331378290616475798099984196731523686372915026226334807786305070634811771418035307476837250140268490123264110045955547702117447353527773988141844488996341609427794825168457052745478517992016151410406728417301958663524087575619876363667735049044970401614294104258280803483349284291722778129644477327025336239966212029559725109969627281454982795123671765196789123474094513884874272738803530277181650488219203881435034848965342009375709210112161166577968714499885990231487085134741724620118335987308183909798182890649288097480500557701184446361928050152723407217413094845474991934167272612887964017485330944297038171036020699946224980139123170228891789888704237556525167669664526771787024163919695839958534168773967810238816438374963639810257192668956870879304513944676364707180870515790368893913791728155513512884451989509952160881499527184357761275786687571427594063894843688506762814265715203173546544353553654795527505560411400116268128484772211755228509226631265573750579784970539656716470118087136325701640433206844626950447903058557177115933356003758187731934458841313153265014054183780286145557915714200370835655974627287753820383509735969690043272202432654121692302540076088969145619059452934893836834765376382989462793694933712104329434254997939026599229362981446740095679035608842508853789156473094623739846488921584116815229124575555765303655320590773660348779096645674406022898238305045095041698719213928918450086621470208905026567691234635271460055868133768312881977445619955535651136889070800108398794860333422489253405505807414331810988057509303055391793403445391916108805721996657777266007767624107348606380794926240610921747229361429364303485345497237752380222947318271179448825527941376233431452963166565160151525812598827793777493652993081080520076752428582596323108510879770638492466086073031465519512358239287554268056294853476077436713872161227762621835833642371927863434019153887397020263645897686458091588500442846299694005128990713157675481694967882900703471287153413156155994478536658758642572066178412243766409069374552035473662315811122276876486785808132906386993480384327020403608828485804745119566624708114132449351302439106706966758610637262402596859435747926567201136676867321459612166577443907277331992768321035135077977189967820566949543369850053057640619812776916307334739185378685408573609313651763973061142407055076235428351845508302006066985827232338634886894125486390225022761659854826717329614565915044550163307593890227844782729759445364393961686474550121671373132616003025909121416838429125986673900492168784545381866289459079836080556810459618568067574243886851803328573194836243938001645743185279254790437896553149429756714617278825490469097496517521619431424513563810060333520252207153386805739293727720111099403015996573711572143785899791641388713423957079697744651431796410881899301519419519096096102254228650774858854820743804214576813938685870113701053594794522532764670347539718060530964858219206609669422840792682364870212688067824107989322368030218708213341690736460272265061805304451930943052348557941095324340776178114846128125670048485592448637920968714156715139000106351376105817999942610022572072076222833186926231127932444354704739333383286115895913264228475676857776729854720943803423073806561880590914057264000858839859557189506408436651326840258759663730592495019876746510255396035995236073817645266501726926397311617572793704689133642491155406031320401978806990211349393990550279131582781199259449758505161527228785842910089954520758590561727878563152750042041715864026577180113069858470033047620649569331052464258112328758945070962496102895963377933128575007750688089800773067937196455607365274368781701060987078869734955870723129825752241063142854935695031634236446056498870123866289067447139149882962529317076440500182149046738137566088788799896581094574403325424011276461055497001733655230434978891505032094337189117456882142502727460160616325978682519532188284008910609136466861559508189197729755943995082146401020396096253895003246214473773384754049808592877613481735861597542178362285127806652310352901487363305897650302010534877460275300552692343924877970431399105397580815884416015331026865289678719671203029358997032340262590603295024844082343763361080222469009070231750695782791109462228679878497605236258428965093297161484871107175071635099867436443530615755217282190957607876487092040186251940780009024778730264096475125242189389928336318850201252039636712976637124948410913728999202206319328017649736681070230298279457965511465545876310377812843945443831965007248512996229790666466474615370579969121102508870518119472382357213838668733794030796944015093599364148383437852530709669329790016273866107503888008244722052674041058260897964931096855898843033729806905383918081542451022160624996246772633939313860536272162041514737727352650447292690510310526836595012711814513194149095422018401980225906912761242578724014236335573321994159606347880554541482557154081882345366847894847106396450027336133446392471573116245124003877608392035034808876103460409661786301478878623388828751100124316562956008096161158357839912757629432819378306014634039959660650429590464784621364332276377973433883166956240580790242341410215347356272851573453904828698152248974943654623821379407958831517165600690173004179634250467125416612483520465146870451788063478942155353354531729763075350369735485396238741323962148808003443277508153532635311201529524431310428943220112196973276656330506941999825238400800223264645528308891004423469241391445714723611032873136365585559668314199148461722043064902186256113891862561524538104221705479823003242962988291033807800613294805111677318367656004366433694988905642265565886654007304396176839312590891307167863987946670681778556070956290741536877020798421867457978356497152882972415160278848252360878111042226384432096044168497494532366614561487373306792233219880255701006936726845466306503349078778260319015778992694738934956944538060197434114209347605402704111800520878727421213833122026818186156393307242149098383671677631673441017226984079848385640810582787872682668487232885334674289535095495939111825610281198746690531573232425382850024969792994776289495733232897013082912369735604370373666994265761548997121936847410420809860769551878532433408342400151051311189329272508350295558958460854483016260544444242641134697359716846591356832537300985104816255815097368757093247156029263416356818801938761727388055700156144378932263435190545334321691452118769558778093698666507893525035007708543016364933043019661833614590108563301607167802719934926929181421019340199829130157004221501702641643178674182605057272188784273468583234976961923923806861358709784049165437753393253619235613793880771808730881663366386179147905176815393329072987853717845372017482414351987712838016714140722600926272500562196967581510624710454317876823739938218542316065504696163021732809719608688782459497603751894587045710220673789207295571911330830191315323384418989545366889713577425145561237305063105449681028246679625650034873107536999005223903351646229726736515112114893691397499414888836197432056966796025058306657519468896051219957007872579602102057598344226850004253899297659692129982261480267185965304353146707652943636903678012111541542396561445814586461009196049137883521879551933411311395516616136214397050101792596524974130265950506527537394699875350573550050180827437293518868203566872220023279965923349448454447266389692666824117742312826101341169816097888834178003520284635739322898707436339658959705426161631252971555325591026572775405546347900652883221873685387939244079816280104937658919651180197550020896439332417693577896213409488788323809959502506144744138254316884961206511792858385037575018464339686655890904507526147153640530018242451990440779115669249538263980811428439003953720411781036580756018858518461848176785594732642041610600216959452217126839327079188283039815913532300296125196808773445655937028428326826688860767577036968643481752262885160542770119950747407331939928777726306394019222452818040030698056942528745867300633972518646326392461062565157803864131765608025467698916317991705226723570810077779370978523829871853842288114582512679638651442290234207615103836989210526898249027290312481628754575262705789399520355683103058072146644017146005614363147568077482365572448632732823537055160598483681435576756200644817681566512335217979665405267127778763446579935923261259897582604931367722091808672006080481265167769555035957544727268726113166474255232230033942584677563652571925815641834323217437364338618837180891624712468470179827364783263454940041643928290753408230013129505962358462741140588225012720459936427266642945660527764481600517775746492880767524902943307374414740711917399138250552118652878161403798133622466548000194536919953491693136911698110803332097024363509350086849573495480761753586625097961770159737664095811419599969098814650084188648275736119900628672776882583729043822005783798702204497672817945963806541155620748943385418944249536855201715835330172292779276033077021844975345148995285677766877297553999235049210869180534226780381875086795034947225409476133205272657971983359287552641736853694272347625133962164694935168521703100711332505724372102658771393650319245442256543232067800558252214640830161604099247072950831084967367831242127855372438137109538563962824912064039419126050713220073958223100822745416065563550488509666063992928692940061500093840602594499056164540803834416095951380068948758135957100702925227525391933925431591547576503930887289490665375020334468552279630444592801835542036562565828945782927939205332445609992936333592857376782042490764582108224823256400430310886029400221743082164057823553649599327199925868046837327629243968201414517527779712935468812644303445630645397677815724005707039272943211242057421826852008822585171800748741105950189190875058513316186000958880118870675759898887156461951957708705500272172187684595731740754749353245685597976513717603993117755471873898324739399386165078241739054872791270433564828944182762445335879372535530439731835546382279807978331115811154369172710497151145155964821334675206217539990850734675971402908047473952197998398931218135726010636480013208237183263367559621414956164410082508777789868499069453808242131651309177978307848060611680546982007315480727048563940913930582369809527206969700508406766974089948711681629758607202960570722711716339710717599202577686717422359878645823815145175098984153337493914952688769192340025056406516466264114165763986133016677123200003205681273985729721513877584526577218140694698071055609941893601597854589253396956259862657829401472407579022712864290943685333140169397775403581773744328516967150008343740252596432882529277671250433542824329861084285899253042100039501353091188399230834011367594228175796525208313095686489900170465171101705871945177850939650520314843941419292300512631491044188890971856736799433904232923549562379926153204175967277615241693210189936604812920073555825060614118012247124549749981612125210971906812898826650031476267590481301505673449085042266982511115912877390131190610318000652207367701378565734094761701692040524831116582610952314821220719953190651763361708235255637014145476537772732295533513288560773734780065281852284972335982681732986933557009843852910576353776016667051713491056802011472833436321515098993144522739484271627093959995747700620087316178926161038945125134183212184859363654243402691217295692813889505090303533498566366763903602212829438646859193750420295279044284070507305266116831904858305579414773184403671590884920185185222862608004994675628866260311420841944854218104757956431176182915675486733488782987725981345219470876456965965223432427868291843869903654234279487697284062859761615807937829495402253193912329502925989380460105853780295022413648152611290664100593730589246141496842145544934119308302156408920835435327778426056449964547180773259552226939113988590149121987413210240333243338050823157295054221062843583797920371021380496461243224177557009677114165044856102670278534629256130032891996293010982532630789969515859838807340141610091300864006497708065696107617342305456741190375832461670226473662408779008472262454546984776112241735191306497768268679647725901826722550993571097140784088946660846553392445134405227155613154952029000892767454241176266241420123295536770252849250616497891958449453715111277457846109690589254712621260501041219164024669361083056353170696096882191148419558449906186637176603504892560332522608720817934706111988343737397031437975412301211988178878387980175943673661298034672357679896567232321310105229591887776750337980158463766325989626147102435864204769187033958056561557962334227173751232083413947380020283432887394010501976987797347132074490291986381138459034081006475790035972078410678514751507180987714478438151274714997116007993096807058922614955606715756186416604201187798817476766105835380879178237189993558177377762326754376019834226392715077323393402422660662544100112312804110581411184677571223380690727484176669482887093582167251872618507054960038340279292549761243348192086987954030901328747513353215580669172739462668342892320519582292158337597321697335874031818112714191716046223573381063624703517244860080180564147374922419923548960158154504602414646132557289666926145522243100770475752934105531382733932530646496936328828884566215748575592492142871852905494891646379148216610515832729354478420398050681883985994455582719728968032884229342458450366768770721069274149185500447153056028181705885366589334365040416702350426180687622541202621903866582154149599890177886716748548787464429460635694562516415037257724034371248831993623646892794010910131959342374665840574951920195200131622065811927758722542720845044384764044496794082763863016326416419841506416282788970518217119299622641941341313171303141338699838501366241196220235504517796847853274647378652332022492240563099533084187937197798562090293001508369368529575967293071646539726434034078331096635697757151028543427879300103336939933126585704085860453445836556412909428344848078557481851990208077138336899200578066068363104549242447333131275354213610781974225560117812351706078279573898242223618890019670710103163763732947749856538379158024220777652038547019064376403149501952553566731778328978294562884636822967167686197242006414556614224212923095823902467437376443866100151416266722455101452781047271790169977915568428529485617970831381207106911160816319824035853677534101997309620035615187605623615895164116969193702405059995552259221898847070326975595603250535672209537317466980435703607454587537060417584742906294112052158117010199742046508812259593034935825546834809604077012764672566461264521237278824779012610965892428601259122294272610269759100530070494948632782642199981072638258645547213979442342646710617355450121274577843708134651218280716397744404251713842366662580541308861185192646843300432081412378203755170860144769639894534187749880094424229617102479721002508181833146241989832524991197003962588115357722506887344495652617972802684155738705889688335322988533397526789985782009250894430604271634747376569264835930704019076615971335271965201413892914240941102933944303733089864792544221370353087498962971147825556627882397379897081641478458429276617282729139730601798314709620529380382430513345842825270121171745286268686222728059438339022491865360945770326207303090714624993993907688064283614373413556050678442506895001486674198969615498813531733917562933780732419478414048036568100658345313309392346206636651675394643663082200037769276966801925541852728156210065877647394462301170780716747462695753558972628359992252040141052288500362324694189765502729185729957477847307934668757369703351955053399560671406426983670852203228857814573768943986081265451243278764586373581222787515992310514065097226419167935919177801747989238946904543228359889252722112247697356246078660286904486345681124738178208154125966414478780831984829426034461759744322156523028669947978884488521655985125159417169815360812963221196413726044385205918261687564902587496840523798247731372381001514296150181249528301261816836389239132270762507325033005020147618367835655157223642260023535215369071255566995007155273203327401541981808995177433816021296548228618572214742199145147160764956090465083447661099082483089328012252168095889348208655881557813814427199690816824937721300709790017383558834062398946447394809306376665146901337656467396545026922449480743931270549771406113543125929498194096290954498237237332256240426453717378303707386304347375394056117295528665365047642981208538796930500214795061625809324443771192944130655251254389331857636346594294713463810344505069945495119228149207212822165231123859949694843376206928798554003750701305361403334541819454628096245865702058884516824350545506152576197241505153533313320660560577148499991255226798336410174644478012203882777595037556246194156053444349964372106507969881137386703501922753385439697530352037799685340087248542576335133493520632592889253469396715125887033331346998154935046580467034382112157076185678465816070153099219552583305066952887222414356428705091429415552065302647106715744221192714335828569886064840011719435923757063596922704047839647823245191327339773011931700080958177691629054636816259530727368792747206913727563130144129134329276495951947387989646323390466154693088524625888405947658781441534087928807024793937903410979016095157651335718182088090437870102735017953770212471840908589981851535364909723155166472989916008445039032210434312652088380915863543549836053259046916573487153794715698167931119243321245147269295294004200651668880491739863808454994122136051282307827861448913281997811033311269987797280625477353855743721394776912061329079181537546532578681593737981552883703914528628922175981771619207907160117263480459393499684566663462738962590067883874314096172798766554064816080522629247854519884404501296307923047773238209684549181855756043111124616414825113130492104095084343245841086403449343535897787054189411880564526253747541041793779929171913649979645079812230060308399959691498590980654961212966694833854365254038433654733894411779657601563408727876229659917231328755642141054820066936081457769183603887744041959840709583655593744915994135169399317408599274487705071851721015384600948364346440466034403701896455687682113895425016139675022728783378149067088307410430172019547101142409619878639911850573492023465716761121348595743079054670952345589008730112361067297807553172387735210322900749482086301097074922354411263477194634465100285410049951848352462139412780170697210576360905970712268146097419219407710533694778587387648926729290251619925729832102680979468994305529164140679064942107623119557303904246865644562531047974829178413742611158865088961201557541176458996468784624254490920358507441393446237627018630478343120452815319262046541415713593299616937150114767566405262895429921101901699243223575604307572450235461442244165818490363078151491682135348276085530341910676007679723777841123946487535915685102786589799695925613893743594224803889367519450009313869359828926398797513388820909139128482246873704747187632841258113762030069180440011707443350834494801655074980645918968831888041808234789195199694019593933267245768047400950548099716767134708712406163107067406628910977590836358807339371011063491526641637045404477305340868372478632077239422415693112009724386739316310486259581926870024178818055439808216687591092156742636473785849962193634363291700780649869597859859341537587393233205383231719901336329413975160320522577845045419931403565474888718887956991874894695028310270224794153504878033258225724761428619215071399258087351513555984296281385397106556986781272980982513034621910309583609147320979635293591248773506638478496281502337701568863547521420935576410213807520883449971455187040289380226004682734174899502594882203030339274466102738351411316847794815926038076499661771705040827927466136572607786088044134581465777403060121923673308376899575958961405051337100805241792120467264233442051119706427774581357007813154140329344812694664891457299789653445341572067570591578666819667620271043728848816312831900921973334832431779025353555361533925934581959568407777387373719326708333260669235665103425837111494528665963933008837184141690179417893074393741596941753585349043897605890365277789079120326344633927498813070926930558269053183756187516450384957330874006556485768046563636482851919193809718718633854050524256772300244563201472833191609749113484637604989068845093564043304934728956595859445535557792172917537685896249588419626999565947569030245562346436441821836579594363628734688885033932561881980687469909572116178439754762910707622583044079854859988596923625912425429077191314862701189906081585505632859932330996874561976577750013936914566054850674048554969041131418645056629603245904369936916188644754347045047789696958896037993909004287704966483952214666703422785533828647251332878756556474320395973175912539343681944589609036876805287570336643263162188894793420745453430673210799087100073815886996212631661526552570253020478516850841879278676289076919781594674513300597370526824514827360646044847354663736822873736830373091371083159262219163782270446304712632573827804805598601367789957283872226290474107715933977169194799987231706750273951300765627088484303950582024057846823931702129343504220217655108701531642606401443143242365332637082760531669969565840205841274405345526687968262288255827149778540981842511956217194050584978841407992077861151000005636033219649427745840236304652161331611771558949862250720854271284135052703367271642816236340862492215178589566132062212204789094193362636145903705524993665596755085909148543679041900055703583588304308310175291500794331860341591506492228950173999390426864415463045451997162526433587715957319116004576133823859910602495228558565500472536644450020071284183350641746806916657951201646151814067626476665477816239041289600012151231232175577587303844276632444692498471647312101845590382104109879953290274854898220734470334770004522258938949874590480260451018771633934184706458889162845249944609034649193956782146249780331717402793068362106398152382354290390751867767037256586760524479175580855706339585667270227617652494515532737060198848687677741803636665524085008660570182765428519593665681949732889195277903714614080227720824933308245391038964860823168588251507025023068606273839061365776972629910188824207051584866594775148094251878964338470104896114505538335915962543706540169094713558727587104099839193953672774463359173225959958545544586426750165876906050621804020831333539160962769190047223063122343164851056954297709726981752438048940801328248333836942615098553114929894243352288275167965085916414873849042334220830340228661878935545842993604981749659035584677233501632686409360383220995631375363889700960934535090454924154950608921336835172434359535231583293770904611430963924339485262467968862192215016253059403967379915206115105661518231672828320860237120313148897430338154367889611965872358357281778078432769932836937699702324668095852040688249483481259955644730447322442997463986515875279833044553431725510171684039171586825098635610150849532098259344146283247720814594400492121010241884940714391492619122638613022949346368644253185760955348464297220055259306465105428549971047133824812602850893856023637420380029214223215487339167921798123520558518528970624207430442563304189697813061182671658772477230659171644103986920110313578710893861707134447199897838718545934664951591448003914763132209713709460446452246864508216804265614716071223436987858456911011793438998341915611126785830372884301066110795236707216141143527547281424876638739521112257990741533136219951811756678110076679507869908511082508757026275549824585255070277263844989718296705142906360447707146307842532136406078900496204469726495832979226174248160510315764393007266441393488344478836431889240388120616954200864253478735079645037688240920116615903214836338830891904998921263510734326077061612942848413816082534289773217490140168030908759682466475950745449655550042933781731870019482274620923577873614967097072592415624291117407747855186452602489216060628667443010672295808483129107062560454440370507213363964269587693934239704683141081259254120093799921114548287350224905162197494078486465759849313669953995899407791649239919224040907885285210102603475794322866116264491582689734603132890806630224871071155499582387840083646004486825184202724964645366671534842560750728357352589467464685839672163539245590924774970499101308655647407006265611732181132839619915621164119013974983239345066024318802194309405555631066244600273693459719029773878114597420026441804138868722245567001000052978809749424773095065833403379831608681600942071884667167489028889876054437999844992680670453446322832993357747851993172996529225787938252020066190982292421117633650209645411798202778841002450669517668783378903823001502488578390746138444981948065282562975944538099540498200931727938486541307618894956765742215425625282789204866869714953824447378647499756308870573685223849283983331721642890203624486840319580688213002952692853856426091062581550048381241423536177015892096581717428256650759291428503862492698787811813145961850561684926053320458645345458257785904748257065227466576043207542892088457998639928508798803931541857935801467591451753583864277812611446505740461184783024177972909885894183410419359092199810075145543665564305100379897523321079826945519976536139647656794801412944333603747587469406242309282408609848928220617197993350280355086556707559392365018394818124310157606409257441819478466443700852838155701597105898291151802539127714788116971067548942319298854283270811004430524895060854011428881720093892103948678077207098869663042156111005978664662091336184983385762303997427943315564147099349101764589772733359522395223138555697259899093658580526620868606675608654087953668896658420309244336549253244067169906007197112075623090562428638235183594112927625453634604909802072060550948579585951441388596190333097557564665669427666134185679386975259601343880268315707555831671441469738616213081528632619921608904904151802065173536562563746420201770696732279697074466841123494141657666506139145182029461536842313309513779038701442187663682088626044169029092546558371031486882916256915131362585559189115943369916083534895554689671542736409179446380149445805558701218051568666847294549079208839368928265313831809150409804839546374460290284472805165932674716125128627077485429723676345788753734920903314888796251633418208943741215135307620544896894949698849432128605189516334263004919698193404450685686487134696658629902714760221296669107942520056775219241465548390614150981686775319005667175939715189210496629724077617848304874027465308793025792752506476266538453299129877753347188487339729342226229752507331080135499454669552309905443491122232912627401755164529685912726384144061256663248976107741931124434788592222522736484803638354257101024476999849963757756375657241458293680958696525218123224061366700869003962794619445845980757172729983326562548889757908274019732380890208042943016188182022865793219826351495390000902043848429099854542558421054098756436955738032675215522811599722289496341731735489260714133067513057716178454141421032247571327655145880340969584359198572874912677253063488826547225267291940148658400859282596291837498105596274541669441905390498725117372017726726151920322505941509358318396627515856427790781913643251564574887651763200459049720215527772962835686218198648397455872265910015096400241422748575486163008247646519230600537976393935711637007105841687721559847789803240500339857509027833906593917435361063750115250777919060208981184760764356806059619044341777824108738639079952713748410221862480154421160876321595309177891932219475023694325437300721116459064969186246656758189061894013886568456557335712236936788833867060066202620910402558930067144019872405568541499459535307102827656275767001816224743523954545281828598345260795246787456513556101231696415292953668105965493402542886697755175345425806212584898320106411713827673860024449819232836761238997385997223403262496092625142600102829769359159863147768800911969237701696675480813190874953814825628152360284208009386897700597519548139039880751846086260610892859349402905764915607440655065305515293553658761543769305909477006375831845955378608387771266095651817464095025778279916349536367117174088781431658508532835110496596634158459396722102976300956732666121249043102566174358991710431766066601877223377118462137514870240524380283187076690095835980092505026010384641931579185099337960054945036109492548107222524071286944645091693989819189363132829618215491424971966960497287677300806453045591158289602160277954332157824510612691230430357792191055092359544559535138744694265618600222830975907673710321366444701725921270101354756996131224813811112987504448674401014560259028269245836350031279460333921827845713688170818183701671649983457178981868720225469781128518916748766290951072624202132185489758621833938560392701690220769158514425650497148604402453022679973994587380066859483368109581955603977996895034649054211580491607669664687306027852136151452615215645037816373010020695051991471780282924505063618883564472660852143775914970663620686009215577271186175226236539865367901428736875654481198685073865256573916210637219361096845583038803044204016742060623642990674844215320885254511936597499056872932334375880474590496568102660081260493645382141701093263969652698840576215261373145162159718535648983497261576167772214567092251728388855436614990709136407722590998779479899012025899418322100358821628829210615144444725503293992877806675143069513247218554700277905379104094709166467584939888442744659978978087974995580506560060722302041052967670293055493293533091042565710075312073083275982351798987891157817993515717177895976482924285035529773482267327790347573944264309159593429794122584937824519076496082850637696782615943124804963320125621627790025965547078533113974167965142650063660670483820913814014045175373815183495710795633830744319365805052995430241314288188974267179391489813892305629045138640045945157841328061264781209642295550313508919543892403873595849491997936356500961909115720709877326292362613392927152303121773744228770287760517052499723007440765145273196721272762478389704211513359828487081216590618905840366721149426829381573511874617692778488862134710494513769340879866759653712612277834756336977121999443256779912254628002529473497932505564314806681491381183566624094052417487829367157841547170074771606946671754537503860321624737587391036123849915588802183882173451927226738970239362666032325413552201497808570128202335482998538697914812951432431516000780356435604572673146702223022732661739131918055200121298535532614366247737620191781349740317970943628122515078142830342009648376874950299287293182233088111638454233692801935797356833873505588448778548214623363802829605362411501087568029963917170097248978914839731661785913410900472437639716411358990932733875701184663318433635709009754542569571081858789759380532484354633707001901361580547720968766468741572935901369960544518224914370833352085348446312905323622405965265015948799944857071763746995205571467149320036426929837732748895333758433104785691528367879351552148817781650586502135161601440959801610079896334989227604109345012640065707707773832211180617839207044013241066173885581115938080736941533923612898758760072488921780603192145933946501688723551594394070816313191580554372020614598972421899543078035926626702947193404243964505342267556256761546942271938944585331104729865946051882000518544906465212420386295112974952665018015224204910678299126337833706898972423982949301557342951593242901734940257651823882947376224224823265100021342829638000210695689247021922882092187089871726214158675154264550867096072064509184118478946260115672646148981240353755915398121511332098788137159500918424782649084069874293970853235135834329732786298080769086149821997601908159499031520262233167045495601155313801054629645049183696974230922658001007523583034636254608614512668431306632469000826733225265733670960386927735270452960262827585406113274590380323485882772802562716859272756823143679307488807160390514655778182948746383094127992772032550278395586208899843460642967084196230139122599919810919150847093972694855776514579606641020318380145472699845457607698974916206531022391581094002451962094061974951624190266549581776793426506468133564684435111190406148887066464375303686973857855700311665340755201584308983342691451602165238556956870034836390633403826822034407815371613247270850869877198231922252029636151128798151444745583569456281665659764058171193261855915673178074750017547920507666715519007767356222750259751112108925752988255120274561128988324592889847753403157412333072899110492881536415542145153643210005098283832148882367736198582371457878610341063906211909168459089882839186278359708884087682787764278631054417828335237886867655367215970356721476229572793586338147514003135857707875456636435478707595910097783483867863196519643917078445258789134183068202699587363590514533196058992918971389536069511710432045972007547251539341388991718712701989338070596832549211334258280833650275800271277226587813947972661240252403170281643765512089803187131713894606732351730648796826650073851616453203316599554067568934601019846467716826162243969807331916643407131928464784451085696519339890008474121769422895615363732301569361572682405660515812735149622419817807388199844576550662878029553725999362913422972672663921348489942886526856048753997526699749825865524283965997907668202897551989750904817628267178663809388531766483134738673180964710745742490166893037965766902009351722990386146797291037393938612677116051323323126903968434051666005082614457580660661222401068940451172040289278775543678618401631476037511379024982976923446796672140605390007352900556597041195096256940602344671817535460833668863815767329632342941938874464243904494474982814197533073867336230247392568982349077843044799546979591433573308568427526547988323681849913773552651590288331543209780145606813650599956683014257722260123313310699237154819482356023844940962505485151441341203851826660768373087423929622241844735351875943705745954029912430212941562559343177232817376958864108300478379786440063838431315751747362489122400478922058590403557381150222696166265370324942497307146449891005704020286486756048565091329770120758937295251084373055845374240651147679005101679500554822717558626436574057794058940725661743194021655762696604247825204524319311851980969394347230207852938806124704303557455482885301488977561539486543557091672038627565328714023734680383117869869703165007637021539949368923081823065372278756222874320824183636387840023019335691659501580166985049396491293065920277482661823614705763719900713160244393970952273291571148009152165226910597824915402693433192384471150586789604361292152690093637300686667033738354273274603580637548782333875437549073288780467829960604619982234547581305323538563137100186047059229296054619725771551046246778926763118952719521687805943775838125346430008482713879755190996725691480067622232430773409013976822474702359859025063144450887729078833323287524789230285768206585900784798467566608819269720788437721309965534088774485547017348449511095436120813593189229240109329246786459419016537059727406321515922150628937145850999379809765091038093916104718466607714916008118345135119902395599829314266652496537999863850045258610299672238060602210341089385960118469627851256349113387315312313293903960346721438966363340667437767843077994418992294487966056463516737338393550109082698152648790341208569545346594496681216181546161730374763437433433009273470560598368864178163938845413923371561943807627451558858327351512309099934668081331347344933679064061205470404432720467085654612827468760762005861480731806055989833643110349949314606220849318135048610245279696139189093358421707352334110167529770381151479732082956325991459428297183604822335141685058653554501548119912622761625293064212982872006865688255192236812162218373640560144263656909970141190427486375909813730858875507412235720120640230793447643758031931285752591425713106470763381059619279289481953422022388449762954805408003323971563934661706258070185886902506375110133258842509064592755911016334069376520212270503892456429493384066164903391133551496039742054885172033675146087258648985850644914448036746771120765184279190283856395347261016712674062142886719343906591434987130748626346854941317852965165685611590017056906031512353296437979950110028232704904391790417443370249743741367394519283675685243624405232138243869169576512461797160747412445008790998160837533005519799035417449054432722614539372295504078123528757922557201101831669477852825877562018460358745630687004760891472337112878800276136217498539931579364240904719137866504063019896372417089569221133790159578747738424281656935349938313998234913588397868736288741692273822160840707113657503797453511780414142969200061885087874783064461490696404343870905714202272247321055900464163615342291524080649883023506781770164197303874528174071385229197836365776498667393576796427908591860978388311076906531570052374614877089978412473431847295456802864577685694448058910916036813703470637792351155115047877551012282372292839877226197214341387013911111547071118201620120580489226034579789184954889043896728101909271261091924616079089774402325953383804932903074981337568379011552098445206799597031910224873299156766128009395888250390013095982912331615563771648627309476732374224999790834825877984799830171462273002223141425420387893026242485724260900318087786342564478655462828655941140147103402297546289274999993171801371636825197601935462753976415240772559776353870160851412977505731764988219860884114279766375391517243437620693508442991733940491033825718427584636770966389882954670564424759918740873743167056358930934862828229627197904962535218466155295420736709796919893079010406298168545168792847831014513855063757652222240196500123590122513878806685952378215862498342030978050830797408476408361634566795575513926831478054781340617962697075429284002582416769488220478402344798334081242238244595612733470923288795943158632053753613908385212363494908364262042187026907710143326283030161938968166751192076297916115094142386487054048805335044998663452083824570073472616721380977349844965824910771262763010107851887049962001350841458839229932054184702190707710438208958375196700252423801737973808103631029520465372694966315651751267823477990140481453190088057079300684036943352520619976129415226328566696987549057629702271573941989458050725733264168772089996133009960983937104706793638098081744824450861290894445772391040224325636678136697034016225516573977259968874316062390507469967622515541437166448588286151238754755210026230031660503545251257032349610841529293815041284519951897464790906753848395000112150294962627732110616647538424098039226331620780289553005302920169057800011367985749352018802202665744719392430033448441341913134614088049973596675799622254335781170901416397911655034535890418377567066119742023132726031495420491923698781744261046779045993935489450244674616557650186002131735996605730065237606053693603878614333229883874312931936124217347936156476019743405600765232803900254881920158485793749399526186556695274813787927952203630790414154848560124716969800038120899500856702038970975782938081120483553936698464125159661724446985310951445770594578472795803759959387453946432746406379995858005548845041813082881786811043642538804648671112726647315236007023829358310861257310619953771380880278242139708243646842052277924108657351777703352980852502039173662250325603611295846306016104857510825841018604947538880817358564749322617497643252015443440028124674780131248737606198260637938633513262331055006895475236038555129461429192965679021416537276079322991920431659824490210693346636835087143231816408030696570417819604035895462620694276952992520318500436381077474017853086516707227059095411094856208846326208318156315994311728506203523837530081186718040652369695260397279866451543983792219435800412876378298100256309033557084282324286608613765663147627278385393596809655364525595531090253837189743975846052823010951426297592299827874662021908925674026396026608995877059396958794195379105022395220977075319262010063175444892875635710194112949409698137958619019604940088583773984768413851868189456673947459779145483539650055862013501616817568146641877724204026240686259970666244083138674902004310782628972067965605598088770747305127521894094864376784882450074943107454372767770233840734747580237187801291748996096089601203602946939379161619085339867874337805146261640441256943516296584943433081690076065946099416772765167754152681522099383620152544687537796231362896975462650560283104976359627760086537161433494478699995877417285382796193778572662743214500576857466093214446078869209083085843024480669129085130198140260893492617521989226142708547322912857776666342673974301323732184448618226265654336665138886594708446253942648534320081357012948090104541046360447111707319027251342026917699137825181752757410746385605858824986177320842044629291212543406911225671990912846216399793935606891121169919311931313102510752463718499146918495223904571582006500321716672245965300904987302368573260283899112807376872186388641024619416168312126122158321161440036799689079896855551557751139670065818574085261461627790826072304514482901151141240462861166081877974589950655592757955776412278306149143229297849747329103113165448225585352547636548194540800857065328810066757048800685197289100443497283397034652616627126023274610492201546779210181206634481810293482778885456175767121022348158734867950183727206922767070268375269083043724756345636648768324889598826167874686103833209780817896748724128063603375485151669417371951815897388786488192264781638334693693995105102363480789929722314902356528696009509827432761739887994885794318878167894091376781647112396155157571700501295214478862553942251490852658965885732438701410284657137899096676338857438047925619458457339652163663230785268498940005241606598931591431567270809520191508853858275922077715572970651437337234615245473889067571417359874208633600562779876076303661496522642675089917938651962238021112983784656235773108510266933534581967398022267234767808647490033625844749137687681254285856433198270618044690269975268376308813698647523154376534551433663890938425064642001780259674113350410570248793604646465493754072566148797652579359139791672215184610112021039162388049190801403992506947469351808984941089633770560179994973006612817903937941729110203683326051315613349581593803552068507076395792995635165308875454137538034531372550398097671578730358181353079482292398751856540371320745988052484674491829317943183261415117216892604117294985721750073447093351954242616353832522808453758340041412002630783197824585336978874844648760877713392978147386913202570336627300756382692997816825914296621320721714700762198705080219574629342423203769434938499885041636758048848516858517582800730084155778477971273462335582628633015355878511067870972933684217351715390292197900608257290277280645690664077677802922749240711046714145575100125293079717251091070601532467161195549487958695243075262599525645062502511474691919254049295643296697532234925578735048055775431738665131145348034971128655377197891908008547197155436514275762826905214624567494619680352107916969337261351522481558395797010877708523507123795367366137856276661093201850574161679893298797450401104797687106950952880900112863370558145076200802010003089062134751320797062903936684286543795730616690827229065066940525322449744674995665834940743074257926129538821651605309576746607965312939274331062701752015474888906641553054988011491339483348823623547510464482386887591153389264933023521025743725087709674755121330058032864818268074660612011951077828196750970622396698400986737444671776773702904521031804956430144011324228322312683785452606287011472642223281483763226835369387428657512102406729417451928949018697369362584885209979384713513623111732187934140379077879245943649955973604091023337334849776049208070253193242180538112533449815687806200470334507084778680207732810208719341819055236893975454305855257598220927053863527427460513919471896966606793495261323490114574807322988628259136818366036582133360447637506577275216882554907376795704554272895326052184244225370783259354134868029101070436642843105625677525540359714709394082307290776576477395941674416138732061429475073440608005557621099173562045011924415481628726927434579082839732035786672633564011531183594352888956709568548467299852910114218350703113043212586772421221960643019096257706841831610604484438832503593746770136952806330290314996001112776057891570206320828948943073135276658430356212808310684155888755714304496132929485479367807012688846748425155380592388016102804008993410901139843123261742983006525331806827596718746010326935326252816265820148174159955961137207024941826582439909110075100943213744361922981587488271379994938039220052502096881524565159060359027718663522422233984377123559550296525125679068678446313528807436638902622899399789783710747560698957744848519995823953086082417130193328108195299361820968627215823912606509676936855183412948254903921289496759550018817955195038728887093211441151460936815992937813384477766827921137046285771937943866311338511335445107865481322497530097757503620047862758618574627484413186626227412949338708823011324977682492970548945943491804407252156252026643831573328561550755833022985041637472737347383368903409563668496439906170784302324025818038653700819337190533160400830550312134772800791941122240605824976163202554581946296755617311176602927311926387560588710900831701457423274634441991319053821984484320372730436041967867405223333732372713323973658010146924209221549417350303705453053198814550744481403024759741227619974726634855248180391907280755096084458741223855165563364918075010096348430553521913106753020549359558738768441541722450407292105334299812018192509370925475213754901504944601652904595896248669223520627501923955217404294247398673351767743197269161616063569123287091090176527479390039797914822606686660813632309372051426287586227057246277717665586291940036447844586532894006245266716291433792716122948181291615303514589308337841114198280648621235977333844245414873827282837776582908390986562545634920281920921196182596675527947477938756596582468998058679920184643245232690137149277790144362833568623811482863768922567597741604223247382739683341889374016577533819382001060022632399265625580998982068637262528440048812511356674233762408232691882772897770114914312474072763637671102536461967042061318154139135901248489782927269751948317893970121556559302044993868022191410930654997295049771265017578881930506421108085465917776770268101472584356325213289861224800334898401834666113855490409218296824460061014664020634385767044489971431023606285691239007318824509681746865201132044858954546319857569519870079739360276414218227839520343944271025855680211476639391103846184254505346228842599448424682169788746226554553563069558824022956533983287593904372109906806985603147964857957931129891926476472601005643715455723582803079344217880077191293283617379031020660616269195683563043056137021778504983414093531520892630738208115613612529008637062156572117022885609703360737414328371079631559403991346460530037038501754959741315338170013539986317198398079390559502757570282793969526803268689544179962839854717050169316961731974492049220520427307880152953322772816861130696144771080216938606327306051477807732818913673123043143401736602129463856907323136132218751203168326609256544904174514641386875914911182579818270022048938541201266859834923859969638313208100830782832955225855477188120199109401462516472724210038051865936460453300814392829827891020128051586197955850919608900175713849126222362751838298046148791702104475443418617053683085886733095636062833118122648532662042398306073506168832347317421105118837842327882443008135530281642580428878436521170781392094349215763977225516183070858731083408193176232336302770349872205638946391113349044002671216796043695212062187010065236845978382157623346722423026575591763461594717774913751598535262855738264167933409593313813519327159000533335046227069299387816115427310823262558083381936750891463640854852286058306098323958774694962697797067658629960774351461362154816018687974055534911265992631830821912483469081781606556580960155828417686407714871914628376210174500813915646159718207229486397206999257864712980674317348733173957076901942865516272633363129111960071304207402808165592563561300241220479464538092885322835103964467502387757003721774174985605870263374348035245673744748042199137417847514398206218763989470980459047965811553023645878427197477946942764896826401255212869033369308277076964278988135108581662412545171430508819140218671519865735147743126668253543336536790986999463153848123849205416466788264943245241048553551639724688209131842277096082656780799438210526186149291918950456792861503090954523740800315460230619657696525337244844061768561094426162784254342072172415779157378152771803520310471875611949730512837210786111473324031029896476355644625053317776462533224358907895648075245164197550906679753760615680909585934123492971385934106137464047559576997955272339827424357080997252042662416342834506852183436396324804572987145964095657088728679184978086317085340984145155036180430121660640550726373300747414631329565399317920550468053451813082749900207563610486560600141922083501631428210581719225551937846836886221189255775494439396635841524373027125041901533619158770546423370190173622038280068492023456548865701727375719944189467234649932583598606149895441871727044300896445558413223759960339152733152778142573442379003448227669233833623916133969387775816912129765198657873914767566852123462648525318156437699081679201445142091564491158510295406378551093080592568842649934067545058167662186510970544575711391968196920198724470295050532491342483270259978124146695882810263795196905115956706408120978717988783984003668307666417349791407349096451761727029985610566318235056193707534425716599675664275668535944073858678162401762819840043662929094804139511983417514510763940294875901681094794238609534748839981545335351610594995972203391443552571598860222541300497601249032014227698595339444476692347475087155214360588669092120620720115928458367977431646399278402712569558069808350513729700705439878368869773540308263669080952142704476809121141849113673573994032649385197895227371639962915129713355519506392804646791261074007355177547813724206912167755990668178031928163099896303124223909957588421406255049695392931626378616608144744034300399222134217905157270959716383602667620247286489494654075987713768743376375035094105761354666833976411808299096371176317471517711766015739023576766008813267582258548385894446945805531055247494124502590494933313516870153616743640094812519021977497732236067556533011448157231612717616627704550536382767974248740272357199570278241264115100931290446712996926574957928937821897840115661372943684879838807573582487877115094864307873555438733796212497458610027315950696843257769956349250076214245913318578299331713714088806382408159635620333183518664500199048782271497991758236726097418642506444185165683409546258659211777523294278940411858391804343377447060142613482296871924479249012589050102784475293681837679697324422949479388267496072284958615023704221240404432422332463347785123112943824496128589416569823042711291067069636855885345505678187614765143299298095105982793619311206817800012100383314397162143515080513264802033147774305053844880234733742661055593962273093932014235010093888260827955565287106309668862347209648540977780925122755592824443338509293822653017068141114986244263162802328521399477609977543610028274866692103965361519523028131400174156585258156791413471400488546354813608901276799871272116231343583883061517790602301988746037563948225329785941172946326371020157793372699153874560492722276540726032378711900166174153922542046011802718775153810153504749238079397578224655558457261453447463444829523324750044102888045399745458755823446684995439897890912810285238571327966390219821819146713486777245083083841186337745139984865787431212929338759163379469105937067074325356602192716750168562409558667183572249055737313947725766390825286732167240772074222279251395929327003556245392337928830989243141094554549064253964854784504025798502897479145851323621763584666148916236267429428143610775273545000328890755240051181839758887187351277511559541274485438771849412509420033750879479916135828955854733349148478720887618378241894383090363509086718125238995902427054322702215408877854107967331680968203172370575238036733089613425335058414573863559110063014843086124268055536623642781564907650732628493425351491230688787394710245494598107198807476153366345888476591359972803463756646521993487877717681009944437955725357824436341662657764516914482668443569278656228182599709615286946520030645852160735439599363830420438266909526288566644385924072510236091721060821154639055931537145026254917731522233781118036209988440574546418860843868992196517476281978562415920995665297423092445873007080305312851579900298062262725858890150981999225857654249526841084055536345760921318387230301241495090870319213871549930135130100607742748619986131854146163814695497214048090813904029659057447161459156795475310975243925557862406123412505858714910780115677322088343650938102626343008938380615502607797776302363598129181549864786561046756402176261192502100121737855477009309549551655975932489082641250984956710967512234636158669027147013128713355240672707091114925149784122407320216992529673519872517860836731946196239199383065672904558587624441256240162824933677125309690935393280977457182282046901021376776760588556205784975860234647296166491660001651840410035609389353677890132408725279675008640867714409195368312147236322172387723618166266261757521412037678504646111047702041136557433218372654273524137328368246873060226247330227666191379855694076202889664692724242519630683279660374604911805348492962013148148787023825253150707237829820236495322069591095969846402290501443456225396290656294808457373988433373418265622074146271458099263165650469454969420559953072693478376901434357086538835783314565799128054775860084229610283453108619187279429191793261337192201628471683961984632681676102096762333160762240899794763983760152018337130844905512350605070472180822099787275499364036947570783458516411207187706112610038860923893541900464423176743970968966623721459157042152480892215198726352832659359456897832009503300658394008549366584669797921666801996757420160249660766455298592012489426469837215458700051003188161429992265182235920759343616167802556277681787135150342039153356373735269716481000590591736390890567505154987990835468015358419620965453668483028210682969725648675149047624804740580125247308662101245274548574375114109069676902985917734301698976321006912586384008621145804330854855065165753967072776700012780710659213928385868247801796276035488226302595504701277393900948986809025200301395746165159945742422238304480675561084452001890074124943993106390070260388055474979370725810626571959408338423839468756507261671322888121353816121515306235263853605404529540410516291672301172728660652552336171975660849205613103630510382546401321244995880547436359935828195817664621635616077852747161815634867083606008523001449170997341747322295272573632177262057169343067005138832531112771236658031164770481778014612686400105728530766669663627648066097060950547920381608285167967522870383038336433471581564850188823125327157366807311049426997353607730662202070401449639521624339599888164373703541251305580008823216347448624087256494865573011807796764904499019543135758831961955710549645635036450615049180271437197129928851116872307134478148592719438006863480180864307849024300116536137269709611846152132318309403826833087687108305362620425892901109222354047777444704979851168170776208895494707619777848177309591804495359864546305425969531043884163143328438489718266913383841234238235058067238104091436857966902181087917744543285446606977120048509121250091792183680697641249720214056659207216423793545565666358619730297065889403677880672115081159857326928599475928921077149925704394196338561189203566215817061385898992075247593861657654813024707501254438276639883872877272459481273409756989913357374899584453015214558783511962534313091026534560699217094015930616646297654833726383619892717592026559500167385315381805159083063100719994026295793047998265839378209228083277529701173761751665436652409857791733353751752896714841335427504928504320064987937749496940738586310254661556780160050721194562791154555870509472772495178677712011192871076590752204915625321024145817909783803192158816122272308659979143778566337729524688101559816057788332322855115697350145503017329988045704760680435868252731544994297512948160154209624290702202273310301430640959592708122065210459487145844303865167778503675265483896573797174376097941704688541414210243213133568858550047121366626190297848937143979042020203111696922632637365356769645235245557719304690011645560404308395521778662319434592994285714320200709523455474658971323307830910482550483580951151080104694798675477348833131248976452920405691134068065425710809560636735660321758392216316616821044996227780590829734829510882777350016766135100406571198306476285807710459205538504701861485740568924132552836548490046567981886409331789708589886307364097398606302782021634876167367275129500528783889819697263965524336763976757932663268679864872965189495657272408383572571513920760157681303815515264078856567333187200099313547722759664632549810979176686055106313895156317798157030370558221013579818061229028327849270625526607776550553386652275956243948167961698033387190123483060128458164614064323470636470646313447849457383656125227759716981641501623534995298990735578513456912515020505253444432460303766204018418638496011875274714046727229305829623060986503549844663524187112594714709042790860282193724988087357978314039451217620326068749953725630216017490300616494781456948424067167814900093809353602343209860575045108208699715022793821622316230743370387036584600471256286177561931974595929230440099788629592436254083972616794954978488246295688881007415122456215178541731789810172002541903753548779560561241350615557404236961027213041168377542699827152702546161472397704244686374059268548644982120973377201119568442274632299526225121076011895803227972915422228715939324141011253392556360610519311090964015014898013364638665668957458294210205498489749045774222968450378503641168863584016343793496075240842489447076531116383732076960497222815926166934607553207646362491922672829052448414640842286136037036135675121646094802130358255303540103500597715750403543034036396898144522076660622787640050793379741507881025197739217734105095245130542786701439556213072548655966205724754964222746648574441658543038926801102259104934469903860337651877780082386361243010605486594790495002381679879394492501057917471478133780899007839835639015625172588600379819469134495337927018393164618652735682923952984896645956468664298957874954501273934192694063781801775613827546349079415609888373627730742129306941556699623174065659587899365188366384562010979166501074250946437186314382805925432442621367261484882067057400631554364162775126505996487552055666893176596212867211671274458664250052178616530438583290883813578164028136119661914189478438277141664577966244103623451869349803103886781432169826434129371258008533659461026343889627144500018133272689940700998301550174227808228672149296249055735270769643099497205871230093818534210783764102743720902641517839965963359147498891413905918556435675051765814786817229675785165638320452821970364820197749215189095885555739608574360775474870000253926755580038644255703019886049133510987751261978860191692068028139388597989015461530275438186398976102313555618752942176530187997402534238226627774471430761387334226143082567531432467784153493347661841047825436909651596098699304532893681321052948491607169034199411049839913322354019085708263996411519552049282861879306914021867540196842087821333790716954153100470815061668496658462260654454990845572099274012472858752679598953899729299250218999865791761259959884216042839988379273840737536642030698129143257075885898129518814174517301979393148503926923291698601979479555166506599935034919115060978384359305896216069806367118120443016581521610338783338275287968925579507872802042115024960642740144950061748155579289683022571475771803345657323558628942469387388800323151576384286470123650510736615276479866755730175877094956856474302300273552244024135954584413351235100167602497532973427371826518272366912971822354258193419741821242414927743948922128090569465437777620469614178457004090020504272093259153301994861205025957122306680050385244819322979954648459313564301079475598727211988762822157789072895467291145364803509664399664366031775630845148742936133934788993014725581595410276816583765508952157477208887883775092468964446315711370431685697886245196918514066937588413596859688179663185233068887253657198765272660171706161321765790184360273034928662038201450266680139268720592579997623726454139176963519238950487473989146673984029631796257083592290966940203422610375426122454628447518991383858220010146903298500779700036283054596008566008512913520790605795603350533308047216686266256688817537338730258673491772957826238197966462686293214918783706475479162228820950874007359982878384556438082300044450164641137341660799761077172741319177087835278963710917599064218385583353687020893186810016096313453008137331247379892682136516666517998202217339015801726660848995838390352809770337343920094474376027273737473905295258412241230093284515977758313104805673015912152604693206550818190694365891924197228420316505336812927974863674991636178040333835953280483625157252898390763039941453559352596098376322944450859782918088365075938939266627837262475737070160035196550769013001179274489016321590641934579209962313898818485957328576973703058283658013275116747983799984992762012759401775614051913824787924289651872650040789593065340946476832007875636144972067853940928448726011076535776682520165383407763702376556439670826756111546211656590832393291452265690832824791128335044457118168566710211788829019148337946461098688129161719851424968578346413544485803848533063556879052930312509359659389050149865526360535253841419120900014550376182701627789174994238469028895228721405198152008369131641231468672939445441760907684340716108486281384632941734990289892148669783898445887844566985939097353559508207618773858199902943143505051249928984220094289586416032447082792335326829683875245941237756074553016550558681614227050035376427486349404059939939204164074806098042928149036099416795598995191699941019499913524046727229671769989541980420634933250293278124973080179032275304227877987997283758577610330646802474959238999518441155013619978289450716221815959994748959371514545189202927661413080643157826985982240625256653826350014940137099373468341204581255860479429008231991558358837770929908152141615641101410055405959455525518037949876333454122697289219911252854018323214443020199163718173908417156999289660761660698980958716154678433162575250431303034353330837095468565869461037192251966796861329077391753209735041809678165095398231459694525247324503800250525557824484707895670306976649168494449315225273421985287935067157942331490306857553592179948377453715726049718587577046668295913386464654553057106089916077022144092627569751242491954522049812458174677548307065495279493214867765866747076582129621548709453301614029015025487924671997531458794467912277252756865688876944906310509049839337371283862371184882289085978561930026709507245081741577296579368188148597438413149577733527051935768003971493135982520233828343864554632260141873821863476025158239655781234893228461171035701140206662223299807349052588088427930119720582739536169951663995277816166272826021382176417974133164735396799725422704574367022440754852575487547889007419819152293431726578697928903604509404121286254560732427489267352422739085407108747502652999825305079994598142824173233333308989477490513663809384379746926575395457630760823185060259618579960297952606028147528746017513944354943064362989970883402187609037959965537807874910052658778498184712286597888985846872210840209781221848020395353509812100446916845485050012597999473735579616805626024368798571352420789079265184362809928240487386248239173366128396490390169307189391685667103844283365954613663230071337150131833819339767750708300323708295746474653275764092495973434230692999627693479696018130569988276146652119421228031508015716868559890582233376756545549945374984841593602408906701851390654066453935599434189103063062752203694740647180275512472229184719900562404852476112711780456530084129929423799292405107999985419956705488974861490654151211029842325554472411609149435702368590770854427306477952004494954895815118400463182123282843366441263766254046030520478960502454068468276487551315838296040783629114605141170768855379523532229801607137287472368942610268053761636938451064634207987888219010627466144055375520214690289314354147080584806566283666106087454069914253541926382341970264163689738020486707566386410872394954251276023398316871628506170730277556393633284677594409827939743093940371465937359845658958115266632946258931782118032774376757755190279171234411916092018527624833824472557807528663487203197792241105762180493174060518032690739397247827189521428974080455821207978532746537680009523596722316242713276488321863515167656796774856211455281907378977611694075578445600123850186485399222394845628586562418091934793221035546039935208573883027683400955122601268449996194836305657826189250183397982300438630474705049453401591839018743791944191295197994992272845208323560505489209855112135397914285924532418614234567163889760690376539561304498569653718133236096245866335717040179027831682659847815626613390119277915662813124699998460925343034752945825047120056633417323464321311018401482544938323634712006204712219541535542826945173584421008601655019386940537880981399451865027606682912035072062120540761093805538843207830468755703133065868800214649351252062137251308217064370159676877023105341578560270601137602619060862108941126391757268770160747394360219022663156904257234038814244512884949376207659351760926845938974579016966600108163433872534279123318147601132140058315652567634494546735866809881552149254560197182105039484074008286433804398111423689031716968347418842618420734670375909805514278050546064895580085216880020693671701118918590348568045045012299161199287201954974312305225707606873476927641106385222360131061598473992977243909660493579398485157578567651472016760508653610154144301728844202419416231868213080563251500964853731573478924504437390186637420891751587381675440747051557374604682466912534770712597043320850060968556984549411836562418177321927426549870405092356361091234716809339419364971266372588887838092073543247409466416229595617172238466243295033323826554537926018954645938328658502156257685886898510896840434845817524304171299876921171585575265772207154539871827997760971230227895865148140610407505784820409094851387308052489299392081070957690255235228719113355315623423276404059209496798689088189712759549375934858903580601695028052445313379176833622636625937847942094060420272420466405927200709198665164490980588845523205692061010577761158509100563038338007986047096980878977840874024992655352157911118642870082574954830487804377606847744982929085664992980516285445221877262103454509638805065922439735911045287466573490853437029394710899143779085038382056410260831998617987107599563179774018761846200305334704735021340804907430849050876270704954921662809335168107169979863214649466258759159153958551013204412352284492813014378854292818060472366087856046128675558224715401644126667051974138907535064771159349823638657717076025352617678688764648313642821676396546763228565604512092897350588801140608273618975747937511416232135945050873411218187445835521384271131414531558244334600239017266485225785450875840720843441253463524861945448627981961561936951562458828771967165993421262739330982611333136621858562047649619109267636657876588445308428292264779229471849474115676055126788248859755955891286898833051311206302740163906784965184456835257303259218066669592553726162690311645797317624590096082972256845075818624234713570283303799150451885035628649363072109558823410837647392044022976667865809346729122008476392758659118442350626981102594426901931249096797643085434205248083741020746650470769276907256224692521979364563920522006613379232594762047620791121945970024330331871188367836398740394054098057183595986692717499718196337113435188804222125061035074427752829055856120476942603661631062298452979897211810025344692711105295533595912188279030165497169228536245922264590453863974657582857421728040257006468651481574292768357082302865768885389032685296507727858451954354025731843159301077471450667757582117118636147148345046816523790830233978217203088298340272677283957866179154599945282687505825191255711529103379400021664168155476050937201511265784214736677865815469626112296662270351766086995701086927551836438807803770537822729412719170637464311430596432412765206230651835266901285706647575171919935935384738933991269799269779190967318041903630513954615797210164181392687903066574524158382097941031722272610835985644042278838620796385131304898622428497071549302059532997206264366343391290839654602643960877672942875097596231085960125069650371133871014497303581167827771146597399458466673267564509008908841743283955115864615669552159841524018871980743100622679685355276606330307240342722204738627653925445729398948426592428511019665231428114599336435570675374194558791611825033813622524583632683856850777559607345091399283804821042595445713189439325483591733065337499362800656036225594519523214226805218706503926250558469146677768783989371851168121304909084914586950831870657073697605462489551631561245541102725207962986729777545297838398873687271320871644963494574877175836246259938021960123270242968060325160676399912615385003983171200370440417598293737108830991176160901226937586459439818090383439676688672868146992655359891712284954640378417312690371937385716401133908645103093838900112305368151970872368081010575019038682571275052873279767996391065189486834350329560465446987009115673412284956870981953561056157267573037793288307656648372253706902944346979578900879354483611198348288732206829311990336558870655576326133981890845587443165548216068339136620042564748219295788254506640560932169522659812873157332685892463706980804299727486064916430028485999850225275655647272328536328437560245328929599970095501720496606961284791932111910911940996821827258707365265758749177008065342488154706180167321265353476711726765995788299209262043504413501188467321977421091485579277196334377484146042125507488739735277322915636318931416775874193947348795596218304800641413591547164524265785940632167850054215599648049619929694305399465300073220095664220764884945896272486011434113000247219873188228073700388341520427565759705065146604352434582682371636444935544908366773047719520670381943914456753158888232430032865971442351604056508211546391416568147058877290355101996494175354175550360129936150608601852034975240960601255089677281653379932235097607900051846324565681547544835628691323680024315739688851969792193287430135683191565732852577796335812113518726775619817848648630259589751975765118249198059467664776116087727307033930161686654596151524775352707315555882644602402343017436172075550432513682065302281329906500141838571095153560965268834384630697202515277851963736133850185611403997696983822558844282679569859947455056542247084647848439925404152176995895990616604759212834017309689246305517984174510670499247112003986637794847132458936905497073507566722173910190288371872522931625694232053702619293582307410609409682338883889101499182644758534262298703653433621158067900631489014972749737986024121841117213298613533826732088426118834114681350845782121130864322512092205563513649552162232917602303144691456522660562924363149709331110728991316943938044358773850336795025289084681921914605064686744106521246903078941360413998760793917067876287224988574386959039829164013936342098103986856570740828855333602192917468352471691623812761902084956801286758232488793916622716151888723814759669916493445234605619741820047294348273140465346439630527565596915376212598042500982434239967303423592787587863110324899650395839811782902019171473199251713272594919360024565443166127055791058202593368611319103556729106648708503545641369938507203668654695974510189596175237397258678242596657338627356698577359995085885453480695022308901949791328780949706964585100470595003768617568298612750196292038645336112004424958778351293494998705213879792310773179583216936976626164683408331427960319716589364868282047405228895919070614732216986372886933383823061077305690839106097551492976135989616084830276184093018282333425084982992207234957573084814437460116611200539191834049719668248640386570639776485635547912578241569231435435226714049747764837479410841216866831713261037469556241363651793407783083591851140249321042571165193376963262330629815470690650142240688493115322121186255425780374272835683848139467518880038985886361575843178662303818305145330786898276180937457292446390390208683557178590920282498286998611928678661440112540596845335017226056039559358170844715760380085332899436538943298530718742049376390808025454448720072719789969555278665397866229941417440846093143406450635481326952556877934755081777101359384108536028573686079985955583888879873162242398349961709454254844996082888769162669329167372298029755666985142945088757491360712074481790403156647010157763293767279041231068522738127558514098529362823114917817857246771077145174144653900812463479616110376721786583882365685301234528401814746239369984943303711980685821613537596956241496922275714514600407574137317778081405773053510630171464115098936606961924712607338936171521853719874381212874286967977701109016060861216305871458084635674862088821428934486318611695345304822729872224271655181840568327496170571410251379288283799895573237269306902863136438016161563767981042620903600164923136321835671498049403589424848489233578028480992464795042782393557585142256051593279498352703839432465721265166205755440098462048639361331601212454652883481581822374714230194700635933680236331552817111174173939106352410572027025674230139644271759054952976342369844165593269361579737928819255714032053445912431327434301592440984817424249844394707515007782949761388427391628885204991533007602430608204305324271174575312214069501874056459200474200240951040637158504569717923205118839853487102394913429636739091025985152966068459555723056115836218776860742482123515069893924566803725044292449354012706882432926570249218663980169128031882699937626832336300265312992858708306425738968330420053164972911537677640116196451944678300070689116111175174709096550054109521717282092605747774378722650980932103917213358192205240474850762829295173416293341602066644379902866908205876548649261407880258325067972770495856867898302288255862584975281060463714085219824990097374521156527399456963871387275887418410003205333954180607825032951793654977713931285371494023076624748547601411743384928670356436839376397846637766515003633941893955464057686771409903575910433354333633212817080049954183696388765652267701288612826287891247778702659424016279041208778537683983534208234070268993734260551995416845039147498208882658736290084824110972477249765073108790178919297246835716225962790833288410073984704429401147408964034516440863368949617035631050081726618306981771363255001976008652699968112121595139793775420884673122134180404799683419922669260193977424479037312197890134357438419172506580608104860837830901261478629498489490139791638681059943597563891725384042346284615541579523395815728222866152480711934136238345001073703371046420717716667482322899451148548765896256730429856089582600938393624109086272920249127017958361915489543940435025209569005207146076981657456288339268330415033878223004934569659980881507223461606575978593938439386489214984541187250307710038278931508354278860194522093339221269978303310672138256620720750782381413167879329858402852183522267257211312535778862043860972100378478296959147693760130383605736878077085591724437594270065258437112718450513511883586886760067618903972553375234864267076828952096373711084705594931722369141611331141104209059719703076107727643103259037191537785267377873285590506133050665342495636028831016703199687267652448755027977127937894531461440386343687789885749860000998391958709285268137967204520955973291299077116555040527457955069632828769569721207443801407331688887144437447373966132434319704161009287899240166251314993571987750463305549510265430322757228236808990946844208452248766311169585711090356640554195845585649504836070920994492028298259860854643429629457363136817230884834164230026616623937919337940793598010053915063694360684919847226719605863398969368621586492342727905296968836874406901077731618216343891585019669685299514060409892420496331806795269954275975407695736009017573729917761037645069646875378903630879057627719101345686117598917938715217074189691957823024006131940196195664722369515026596071650394733905014430317326883736018376890899012050794007469332479999248009965382425971523523282301908329700439199200107747094068652990692071238790813778116528845170261237285174346950760971602885291803692399686129611923493088888247608697213298823322767553365723285328963283040680717912254187176200496556179305594544014250808534285313077581408154211039520424125561988914334362275703570131423828602113345498987085296825582909910141166602523236250287529944220219105433902405070119669075297003959951967170413368548793832600072863501954691757458946721837249194700622046195614545526570720786185757278267159706240427096444878904550874785261984845510798408393121749284301358338491198482055633821892495240319007780295566642927531951132314431153232423872692479608701739773646729196333545969055817083580502888722090971277169789382614463236110877224083368621753107893127832458036469114452726711426334802568924508624423089263594393168778480245101654431985075104359756503494951707287773616248622752829335969160177303179100792878078508113661482573878427112211044101413824182203751184613814340064099459397120761802768523610756522465793790108505418850131600726996273062302068706448710259417566280866749433970016741487886415170587302048587501551498371435398646370322201487147773668341598016888957466787832073076980686836889723230483280280923805747277746503593543635141653772022914919712883414561881618285299046645204439302283417835648610881025305353777921891521592056326067214064850639342527164175458478861725323712126635957392953753105358946578739609038408732552885556273695414516805689273304634213926517213722116628248963329194711345920019327995250645039974050372090564464283611570123982326845901790779706209860027759582703493572884334200043458721313156900209967997206847396214452350129133863846101127877672860965351906991900942133431009423103288784057065175197548937809551976586122630181764525481386588970646288361579409103533051443077628393795898271793644867846467738256328683740966529921482999673442446263010360786316597806276519233100299040591517912509864668140930275275209141619736435926697172813195150154875152362246196617040491059317351460528184828907455500438675311445204563659236075096430018047840300917605702026370391317907710289316226798652792911396244221107405212823996870342607284797705974771454455804503897014357413989236094225863470477089129706624055873789162131516570009581044297093670210491830164831266545109159017908241306470633406358662345229828893757583479530598291518881931463472063419315823728431845565902253690235592444419276428979213577586935263951241153205407657600708277960184787855531387886154515506050694056022605833692500226334513605087463700778763538494739814325132999095900565797602848958100811424519024088548937774091305922460863672004824686248442007541323215727643187136502975005489672403191938554781584034783513588662058972130910102645860911619054574138412277933642610207891777758490209913149027485441338077630659442315847311841370983018393119855149962215060848353899724265318160508680063052314883350024997740485664002016499271999983631641939253475998229464851316666472562635075160887657202342089168942913895449488998697768717848430123111669103191053039133578639702529699975634822869912879909397472367028989090756894494569600800248913799373512197005037030735926548240703181495929979881421514701785504444636029075551829277526798480782226355673483975196883438922470664051833111467305876369627365542518259408786556584554216530291660163409628509397655765147349391394849468682556530369971042787209667072936931131079939863915422155866843129683936355829917776212150829594105890695849752528875465148353097873063706643680476570730520627855206779257497551300156342146689872363292768346878541842571626353272122798379054304683911429075448346315786540274591516859250945085805662801699913703861941280692453882484496542642203318311200525967455124727539659921763186569955974328023287828216987745005463314152123430406371988960670298102888197579055931198617265630156686413785762040509238040560396856100017774493759903861231504221953435434573565645766886372562442305971891301275595319475564713336867607525386084895934812162892187933289658553019454725314620267764497791449556735230243739959491621874332589427378138611267481369991376315684618732394033916849960496103620581857839178522087212453080288974277807585484395303909525807338090737260957555857222529673796212210475573807140674646496114160948062390760800363476589509174061004199588979022977547854058181877798759034415631157827512951200740188993176862054618685723902518985297190059529434769111136993902537383685695978507299084191925080735302288842520873676462461142045366467130418954386967016643606602477910156332936940663910771376041399112935679400681392896744665448263851927413016231245229961670858538951169336369061443401999352852761845724553387515361233385430543963872826313576282774355469316152823045496729340593906067980313507310046078834709908174339422836147444497986679430091762942396726910594189608812006263016233851437491466509718367356174283100465468549377257573813012930243117497316165314507439382689435591884680389257868380239411511969912909670606974468192152831930915913974813716405561393906139851333306579207862757292769550158915099742905451978092088341831982602024534389547893643040980382517907934669078797364196968530241082141676227423059379741228494482015899357525607315805164486116860664126918133938852409758295673500796221064116382588029304049703031020257086707074025431083571451419546169934043257849718409018892882445055134590128803114733530860408810244233550119304711497822396781033035419989482694615483467232537454284765338044317643458565123676446998516632126830420846546017140082527139835924798307058760611370605122374171072895930157151782603367905256108475414636926118872043271279587220298415980789533961025061116680579995736067281029516269414374120837568410422523457167260986068480051611878041535311622676580846495372600883421481777434083982377618294528070660659730271914971641630758660384089634898763481006197673354638765202555405350025599621030592963392938409614502307660312520186587923236225288274059478859795014142057970044983821060367155507002349035063319352754036036015076595777078949432024186889005704970998523488664208261526903488173672639313154239942529895524010526171465751840685398459449499125299441539073587519069533431143940703422666822670705757375443144267005410561530672865743458726005833096816991365816896754855357055039754943806475819113953626791872432565044203784218529842394783770854664568924344212497844058072858330685781858848179414582106120290134140320348473920912806934542122191279665154717306823092521073088568170282178076679236722625025658480566308941451464152636804321668614682650920907744924159479133403684454611738989033957389128290079388478157696394790149933781619470846010960483117045161025900540837259378774469669100764381007917203925454065427082374389490074944786999124312460469064485213742595016486272700568864202721114853905253860923840952945568655166983240458811138109556333773617502053858392162483443316018012823998918187900826125107431161557133143573877765010824215727335529825610063798344455622420104652113894743663993942139268507908308454527753834884200160981703628790546037912551783983024089597344457123695969715066237806281714784578061373527986640138617981184137531501284161093096313599937398203076223139825684449900366822408726409337988453017218961549663864849069309775784517964106032149067908737480437661962164166713248765728128364233162191357024664826218638581172245052340026752556911799156875389061128385978439558404871675662462974309438746719504581052239001928635914822579017034105974434661054585803465549880937842100377044988085993908083427758302640950853654796317733676799131428659889105619600206231884533619781356745611196092287218381575290359318132331184742264311274204052574485944819448610331865675787380898503548953016728863015770371168479215217312195892188435717160992405742280624642885103889275579162876906126326199828365886327612104356735715396068119003421543321809086292373533902208566813101342089144269909112016304295847276485863323695881433554952526196375103448372931287142810899828959455856493812042772464875623817833466463552078302055822552704935139870215128159499450492613230940136503331442385928401132363380941166096757518179736829169817228961797903916858816680489965820228976532912675137126247136522375660621093076058403593755851505297736781358025158181627906294288566839590105118540074741794304475897900230952654963482031516270159016189454367908513070661452171081158578297871824152780757929827234046509293244499155085091710148133114713872254150698133079184396670630838628196121302013865886983857908467882005176158078092427945269484200815960405311083585538856851616244348837736484099510862299346490706723138937880733279871028997279615560262746812432660139502086521154973460347777545242359376729714397850095670845543807086437506145392553455449712906110337940663559466948790004429465462955973418365361689637096794623188071696296727904317436606246246092739898528764021817717030786851617454356200741736204569464428867489713478352454738900030311152000128683014337523229412721841868320417779342846380460533306711788285571116218993649771305645285703269075562946907466450787599578663105633630371674947492207691094886404340847147477363857347547217147559995524917900315218285419328844961902794931741413660434360116731777270140570199676278174441904224987120512272923283961527690645884890386868554959363700296396830095996033693983892851457394443524251544339260984825603329739759864047758394705844291448575745760384781076979017397017669437524136740969699593952287761766391820965546146098704231641788023165348399818489128561314164196061346940858006418648006318266775083132660959024312146445238223779461951251589233229303289818724042432618770175994535265889168339802951703650993550996671900056542281832246929665704017688950289340785053287632777356639510399819886870643269714849026086609980110372370711951667514976195407859835028341798550014165066559182952031994401097453934948396472657109221856897143631748411000456938030313554653151037624733054593242956486160680485599171283759483645146543631735115806402570704992181572230417809542937089686536484354281975292144205319220916397330463156567228643386917059411576753517562365232066743829985388924141624358916151835170375364199376529578055513520282185551316949759265322082134454246507998188732545203436978527652421362667210434900469405755605235272039965523502574182754506981792935638562130989662962557397975607458745806615947341680860992262184377922759128955544947013967803413343410983414203982404601262135849722758168880541216333004324351448036248699575810020409322032254762192093399024026095231472847130506555523718109210867002236541098206577447631940601583165325052824143184950994818608292173709234279642130900614210819954177998421722779837472048959234372660024820062137380076946616757848955569482259791788397668582149714018690199760578480787912407026029681777406961368375982531749846425886352256693335670431377825002326026661283183799735130084430687268874388283908367051622962609100472655331300333863829466059953420723210584060682576712164173646614507037337561092127260054550351245456693176983774610767593964883121435766236083281104466357489254911798753904644148107869812269001212448510615236681828670645051872141410471743876017821390188144966922490173911694211024705648355051320545354250959834222648223358892397181472830134192714073594005916294592604062508015771913127883874148070988768373920146395936048087152445481410540717806108729131704389576619427443899402770312316380239573270323846502969976966234261505403248408870963284194760964047395835260895558467302084381721072855389930423465315335484662477918083822696617302825685136219392817887545313201874048907398365412036669312413057648955473295033138559200047190499217427321868517437684714921965136624434950246356421241313018381298993747865321418505079254258840266816492601671127480637412936384526536078322495385275613306951543331164623857810532526458106729072827835201585932229448147351963348747211928825409733545207242518772598150287331898243603986982523343243427465692941700192865493758847321201731934520680029954863453047626275767398603137796499369567530666725961061167641887839335024082273513813527092904238751965564007574062314270842613309092255230846566891680360393705104580528574219031961833572714197954789386069900097547609485425147340120564595768311077142429214129733914905288328818430773591241439659217395729169791993540147473055614543728887312907711030097416265710528631909318402182284079787057957294483123230543638110761480956736649887881888410849084933482386049562865554216567620514250653085169814791874632089021603035270535561554558960635655305602926192879930717923850537975451492209358920310661807471724819364213705542643166551421948257266152154397600799722580583719431798310278903976108560326288689241547011252410399206962446756800442929718746593551252405982009281892477700078862846214067221429084367204562523664205599521311706740851558692946835382436816371931722340726003926506017610515772673411040409161786540732340660609920684288134311337260281520849707845576789005358003665491881981924114523024350422593048281800883983005734033074298816712292071129702900187218341081345763437133851370143636369825839993626667725787992711279574861647234401578260994474906777474364092310865240593795716276035809502868704542847110008976441031967254067477386339213019826972899086132210710407511942664258751605279802154460024535441197661174723743210195289750958362993917357261302703584031578447078855524447970089938773624164019076474947545669339750595884138208430075418275350880534143739185979330081582370264937190695128712380915120693217437265476270704895938444183448204553574943417685069686409184186420221688539822200402829705925875705310860340288857290866894307810389223167353383404909510167277586273254851961856890861678877290159017129691999867933629186589731106183201814683868204284161700704299621199547343917435910330276025587693583030900215607096369917591104994712449266601350010135078764563083016449246975421676554444108742765707592241424817028193870119122314623185969065999618396578184352458899046570810903994061556666963664950149832481563623886020687658919432757732221999377566659770554295039828174698069981822469745782571680620110617352168427504849335556430295954753996457002182917001307731675789213650019969430075923385012646199717931873212722962203552589832008856854592958672215578695185951539163250179296291035121972067740543148299264520035540312890819526292580280236446141165806972677706755663569067241614692917777808990854053841718415081915257778774807504806452106334458787404255690090454268609339503185885126876651373911948327822423085671045719997351254808183844555127358322124213161302199104796389702804124544889867732102439277869669593933799868113648904828829356389330194820433314526725672299887628861051415424002766574998491361020581480275975322353560019211285841907388940154532095238969350425525831057975124870977426804658395383355045052460024445286968582789457158304575323650311458339278571222110445055687547223869786066964618182152771345355495794493261769869206980514989660831813435938424500754798652686373783373817026331444509706728200477872495453825078138390814690450793581897543440071526616912822032547824620524017921540031388283104737733300969709189468432775434296949288554607791117890782019470078669493249604299991841852290778571027184025881202196449039429640882394042833716657114014231008791303969044972812549063800995172587282130012874783735247836624511553361667236521809353766212100793047836818700320077761441880898714837563757400523604390603340640771447848566475043931251796864006612806358577481260870356993201578098263963577773932027200780555216900617591994813594864565883232172823355243110173781548178302879946431918327730658500053258621106277372873669022544545312124244238691834302802283609245914744189159376427925252609996650918216610981453084789641450030901758670766728879710735677992713867344753989541021912851070377408994231438813930432337154103247742382871809243248768837332797463012193440086233034835545812968801847955765436803445628806819174754410499192130271229751872486572343845946250521630495970501414380012429783715966760721015022162343397723081103279789651881248418246168987436434234326363595108285288766629472790793204568804656634780314171873445118794892818375733545688768939237001335639991131913029738101665567873337323742545974124541309186291300417627501551129519415335958699413544909831107906701986975509199876941340511161785235878258568660309214679639748342316871292560308398127990921089049136751035311922180006741695228247909085164808141623710836779187881800864234925386482138228847358132153140436729944394325657558730873871964893849138549156693107398790401070126533830283525909524527746771009625143144602874293530403602439000220635691278273352387223588107763908229318449225612693563613620080558660096603443378268752833628716250031997087963673422647925399202559105753502749263531618954094263079612438633855349323784645530240324383969032219189260719532200434087248836622901411957992121185847980156042642262853377919486630491715499181979956803202811099489142737842978318264960686742627076890644791086191296475242169215842869090616269957557804590757053703077573077025252723930578861103684125846563538687232577191693414790785841889496059646138803845873954069903889229629146750869808607026040551503550355383274804572137999187873219737606498145900347478089810254439009908254198218701218845314105560760782222444343390440954022347668312538997760205195943270028707037931913068691592058873401444136878280082653131022810242982266083123912186592123172836373895057430311172658955643964953667854380680670386201205269077168237118153365535812094216843926316507897681945548502497714601439726502275946168912680596387106197899671555770543752104674650893816438776432940426856295977934715402585829949280278605456364665076226303413620548420253641970779449709084429054598444432797794580452932370134540018084006070191136907000484746924082665545467983132926125118477325889400897647153832070609647204737298588329447997122709286061644536244172869928184467485663811465615817234017489449868447877200337783040474736441046152600289984638432220943579910716895287991072117794976710619779184646840138682259402814782156881425289743220915566808923349934579214927311785023786592499560137108007725032614227375500103349210687133948589400816461842001612187666981204218595302699457264267074198392389781207109712716052482534208599866619354163392721510697500931513030897263104962806472491433470972918063277765324214733282966118116831738518630054238314932666469075999795123682596448250086666404893083733785333296040931936257438525984684437521551909001293258925943010950823654016249365205758186250160721462672790723376231306143225328274234079437641477543715996515711293588648032651162183295094817250781049049658081393093940904716343258378767055507986428804386836295655990744578099763034034696676165237637665367287416876206282320748341468404405108814203703650884679009802098194959828055124190943777838098150500681585098737305982219218272857068246052179356598852794792472388681450594885666841951468479201752869423108049066335309087023326068725582582891076472965246343479453204457767346773833480921313048373001418512178885618555321499089289538120544979466645746959357300289509304457405475133114743552858446387638974949850043918496974909711909902478354585246860914984684913489372013598006438341278034641200368959031508727859269240370618877072957504984567457862343176990006336663189937253609228051640591703364185374593534017986525985387692864861540460846356162935533923422250636686713820498651970120780702583010044750458147612878099297649805226789460118104002314272003688975919073984242288697056623370325552811163286933987655734418949783509191917974120027125552667878477170223838614841686608803939476051466708042994594419369803745444085717004623090357461139979052944995007622890437267948922315156678313795463055508984557331482626800707691653631877613910536196428596968752516757771605446057848132864282490177393422542216681474443687771595827877966650676422300996307499095929949768062332712862021977778240180112793162777033422520847293255036860073763373856381712512872199197360617124796156164920463989792876704016496342999997951188201610808901763000856451762967603957721596065616914313322206689427651234049388410048489754583394525888032134149379093007369166627093248589831788077185258055719766872694000971715275905725022066752010732015442018744546824890891946197352446690016811502075117920860826586500021367474123582632976489375693977289276298754713549577542290513434447229431305340169353516416159490722401398806591413486786032171269538797931307293122532563133315435910015725860083810244211208254396430095432193207810456128945760981791246744435400591605498935178080722203726402835216035003821359571823195259774233856815094135335152824324860796299673879197983691366331845962835779834299978081718567176840147598055437361737513533074798245772842043852177525810381867222902867275655957376419408023103992735987631134730830673625204217601739748523142459677049564999342075921391289510011965480701721461999807161815695991065245959410899698777894295828549505733886809033503886641987273912918987786078241915666921368796924942809488608107355508661475091970101988058950402800269413198014206376856064656757934730613709892223145360742151011351807821973980172778632484976760691487814701930559986321005659485527797530934237067251117420944858407081447110369422071626380390844655755243715441310884600861425128242220843320842075172527025467024176521511251395337256896381813900636831549848353279167472469527843210003860639160536823477787122273223607036271900473566346376192251108003538386868872569196868894494667296143507362584444487179266297072370494172463267415151856689200099821130701121816916578808416085111191189554447878438472580829613395837412648147153124623402726331278761409075100396485245890247349524618128557748137225488430936666930975158769727169255924187851025269127669125243302451298859730152948161842536614299153468360139103131346887991229492352752997255200868319991262264482407309023115486194556146096514596967499072892537352465192760594492904615165864274897785675421645881204136304009705541224423928745643090035276203026726672840833043018376301825542345524483523752429437170750754017843396049793473678681402156459000264164561470617629656448326774054920587497638941635901481238625773005043923436045902415969592737618705822981406611615040643428197036952425125755872564262419034451760153486612168015054675572427269708530260171368942585499200739722323332902485521887286752488384326849694946304990462765208294843569874278422522166891917508943873836529758553269514589531623707696510918282205013965890177539715169320424450962110943494852784373877520797038334819392468566137968508871805301044015226298079292659617426410019172244569794690483934543312129356320914642632571693979665009396105185755152423835434054587698232152155180845818901253686499870987706012855506612339698536076886704644517143809639489205076814211916387275955457332682130270234489178741033822993820125508212314664114913487816211597777339971299180895009270638346320198174363780564010689639127321697528874602575532970908832308965036861005507823185202308435681125780400953799827289982265732455578216775272247107086079546540053074945406459684852863310403528521391691521489501008845124619623776922062682046337386029347532944647729887214746869692126047121116671665390752744258955114983340502812822107467729130542695933617681392789757675918960904802269770831608436877354221788476530580874722437459370641242577481875265893613754711658540680690982284990618642432339406401242778253418042907235342486224928397978044933612475880113256175040946818328771774756970403244367957071698047020766315433135622740383590181812952699569819911543108188583779013271681726847590867463528579256855952150328008539170144140302525275418890354476175637901511019617334447942467855125590770924297615934953459472938210532570171249458471248128839061699964265784394147709262716023830329972887668815514018803388766568934408427440959188047656735611984789904008568365647353172542534552094621756819089652438338392109249216609128902964414550831141451507195341217568483080199569781048797200753811103761623539870569391335581737645399738008558763177202208442380759050596923748853163043870364054309690078754796434712187874758344137830116610180154413856888130810309332022572727170404784977093846601574605642564731962481190073047257763019123444994436836609739443695855420391524203633832747999122716265946697203131529545300066450398552038946038941409466125375618598181349123179037646904295704845128124611411639098660120270606918189745947881689240904972721589962150551277339418164636998112125692153940396483644963415141564214271234979250109887680539699182746222498800626450494581367121924521960070004131329609081321431196376967521112516946251635747443242920914445137761245193821538244854905232015401684519723762557300551563797466685071172103065322002669288905494531429446788029369809834966306442272278416811808123796020437900937282591628042772234117896772252680077879929523545866467916644866273232433499974996612325602736835641725170621529074635229545184244176681175250927586291332302045691923889445139652788289383665354487914396446086111180035676077488455634853604348795926445876541293426435024512977547179457559941848502658509686501761921155652756304304162326638576014006493670420987373875148148452442247498212402326415960746986497157850606556795640041807623633153674483853549142439511263197098978255666583254603397872325617282174654666906630452295160679354396029230808397227042724418644773943893342263309817757803114607975115715593291235586373283725343980306208591918212078908417328268570338569792843474004358641795710030432810524663432259123298228675451616990016366455995719637995147959661318572221627642794008708359135811283597240314091227549522401222962219903440062397963208475635276820368487909056511111864520354165976188148372100121955779631957681073649083938519242409239032185751127462547227113996220063241510558444874772956019013960933682539484947324857063828492905655586618917404377495788243317653567309602257567841429135576907054587820937615879735528800224188526378995437716278317829376136819842769623187719392171235370726047641653892962402488184284808839197694716708943160699558159077915338477706640206765163856838892752720480755679060768924886434634781791770867702453046133856579875520644396490097175532795095785913091005502713612014364126665645289817506261364953896762621431532058370954425142036529073595871916734954636691891018556726294672255235081584248394195813266101652273951710440065030784684395509785951543786653127925874441451498836143355309977305105635621286756394639949408473458059430725583534502780415511573843955884894199419620671105703765672532063658314761896586155248734337650804200633575454329320756439265725324875184674599149549079681444305081766398705867437412962344276626064584007113494993422924602772394207637509467405376673362573247174899032472011026649458435806056007687521691247107392261126278726960551245620565571945463074690119120572794554386845323070060252491555499538499854958441552962732351104818267207170616422616483557104125196493684954152936162822564973141854665238424075055358667454186163731583896959906603509645138305320993561210648797724971711452877129814980246744387194511271482068494846416783947305155750106118558649667912082269987715969342606393927653171217566032393553755820836725278616676055556369943356647517379057267217101151969473619987969574504979317525865317795009285434896676439284559899910957266230680830967659677125953086690587654686600547964384218774911278085285861013668128975188193780105638983977576523023156821057379347301891964640615146432362139768029635067440904177789625769427399387519595760338968715292561619881940504330135851649428393801848453827914992348764115957088122103940962364467476387472374673396902195946389106765881387562997154401489623408764162417150873141044541294106780008851576758100058126747235572962609325466542807800397850255615480118722960417616824805315754353245705795732727229331028065918653919445795502114838218635530668183052243023512340393203856243845618058846956567168078082955516360225991941481464272641300135254344864862479705995589829816587369019022075853241942413504028047624052257560232380888300801908678426720013898643927353119470100814476995115917121929626418178262953698295229281997784107904679929769548943831346427654875671230998572078910536987055604279723801082065222090444096240399313002062673832919024139526099805398801621949763391611245755373976403919744749739264345838885191681602989558779631078287834975910522854323415387430978730178626790202723000719151451871689544402475810965992152198976835789605477430633825998197260947751984660217200716768603580061946003662941435228776290046236869758093452755130664625188809155051719635383325847876920913042600897715961128871921556612930533698900817371277426064323151028282457471134097090196808153764695255754774825994061202234272224217514395777093779958786807341113443821055229661496684700694461425529791808462725318755863560550996989709889054840663900345694734564689601553508092854232736877641280464974080537688336147105421784413955513862039994053625339139099534590104539097518107495443383195644970425632793285038344746488465847935461662300244942752267344999411975090104915318049474879836977716846140595711182908998671932866866310217203753279513339566179793529476268425236149291529320369383284475801060119855493086862971891971757938227153047494387028494372772497089169060640052970404166800493493986989268706079337255924608575556831497904885106507863048185274922106816389746746530049540528079251090447455288678075829549144608018161412507184941869545016146934779742307312191210539415454971169640730235919976942165039575641707874056405646708861829005543012600423152064208588037921334243242847693011874596589685779631784657245555683484919824728419836975558662534213472744735326664869789441932822796949261443070203725360310675783134417924049006036152881095209559216659563413215077218607643413714999125831255716618024651035026068550001890017067496823073498413438113830772246943721544022644340409611165496707839418592885913766435418584542602273782420971019213833097855261829587662044755570988412113776707798139052777961248902644481515352258095750523311020908087961759422029413844988577440198775857768921640021521422373420532452045314766107371503006864243447311348599155174813835513173662293358150301967507013072365327920173292725519781229061387865965437753690892890990303503884225877061502285698666888375467048206897722815940736718124241486125178212902382501694478539374889168215866252172001770940746382973648967117525091210874072615240233844479523272089227503056662865418557973910227197977365491536505521653133691269487517124603704140178421447420952816928199064084971232526648034982499474077034769313246227557410627781104883017058740700809019492897847402797639361009161413431501588663579437718005986047626136626717962365598372896732930699624472706029404749685347469701173554145212012261011528867298322763330756011409563334024666199126593618660439457709998233809332870636199914317210298087213691206054484609316230341480887123274488472641909584810195279424383651071694578581569849122382489455227258448391959183851210743027995606286073077330146273896634325539996191161733892395756325210167346620296290890712341668875802173139021500622523625543254568293414337852493798914681937787537508347146215577151036632887741142281172333957396014022451067382663233549374430540072837231918557298581527292375077897392297693150690006927248114231236144485363824357756198238892017969149125362934127119640728226515648919341811983822991621838995204869424368727511992669568535833237067463167448295624564551537174001665989217598580595229776981449615226974033128938204852316056627919525557281139719683697367619505886473015085982272916012846103189485726078762214869023074401905449861554515581050678703924394305271430970763472319607555048180487003452686584227628766774602116219720729143062225871121331294690252782261158082172330402230734105403252873213612976308521107479065769854600647943879095195645492875613612686453657204485686241636640788554164660500803162085449096644193327111603898998212736295992278624851490324282244042915692110520558837651147982076297033004785797063693153663036199280144036951057515851648377382984724318580761792297955563999920806175579541867263972014429224479064551654939424876408856557600297125947123392264040576475975638587385855365053199335484331198782987709834070208116581083672868555470396266943111461839353743285493740323222893155772324600867447872908956889269666106350278875113615091101003202431358021158296260953655113079575036917162679565223589037353284110641455919223762567286178006289280166058798940460597734498634817888792718468040031825589417467324212301331168215492757507966339016145703744995649354288178374496367800004943310683498829499613285180075343912410656761954570050350363801804970189771774686730960753336023146282580754351859042005061684953835163750978972811057357209129570722099128143246072486701428315581563984445892117234088185698899758291190790013189619643693372420495478528571094849770270752999975028563281391431638629283513897784580994008124484242001038326846823430534055046158719866875091802287549661710037038362983644040607708032123711775844648301733120699554973683537522537042877235811296636374071222503929720633141913409189870181769467637553270421994884411913137086373435901755740555136830627119344401941315863714794153291812668794592897269889703973236933757200369576163949591010084543615221089324229606291466623978289480378439987172902442294405646596585325674257058779117677508055377830416467699595537206127982855443635863722597315390052713211713156467852969832562877398709124983172451601747852931802108270342839426712862164803561354662850956766063491155165967652700828152886010132060777765541076980435263599470009848425177429435314494650479104190517823510266680763294375199922092475424857297089861671892906069923575419615716329262636355548216787337435542464991138267022509313525469967746973204718528021786775171949294430602465017763194172288956483096206047585701438545102210751883399914756791822791737433532234933412679589310111903935728688164177119760012188318175160889624456058047251468903393127361194046363134145595646919550216843231408710356021786361733902946935358542690630460308227156023284346069975197155095535693613677590524947078433412906764523798380411502905659335659554275124537969012569339569743122987862102191797926484855731707295393149251574448066326771810631225856856347648123502871893838660749898918059284832012702908389197484770304849258711333302158875383373427947948665227129402478630747282843605218208101032698309923969773141703141064527465447097403336466029764885116954649134405136625453593245184204787365249346433338178644947050084193859525178042324525865078174304006968658217865670564015711804085717579476376266035056383922320027213271115260216274213638530536656796582679611849083345013283791008636887800527667560183496758342136258431645450013829676771700848789079365516458648092408278801522896621552526184819704784746743760831852090590866211392865283256753442574661334235435760671418520949881945598224812917032374575228970989155181667933644794728357866877615206549681996158210197401478567485106328584968035169784433581323786414735939011989560285219349291113627682913038576764123969875805961198440685021788311888834931289494659514675397105634777034386284167136641234684675496621641041609499957960931048641569009549605825684080161489359938486063038663980049903302270087886189153782182349521793885490941351972919735247329188144336775115842330395389932165662879601732577201279868043376463401327708525466996227972018178583614422947146906578283409003046894320795622423384324365293562093542741483749727558695388677401950410093941809170329812088754956220552584314527824534770927221554324144682996673036772888713760809749855719285847512429032357749937882386384485781379875863074297437622954652512976226362975844042772952927215297645284608321665811623676745193911043592780331308431445626207980994937280397438099844146238610804800220405243704159714233299912905557595194010421417781206691804806550725137101886271207457706940985236376288203506285390670312450467986691000364280963895409249826778309704720508327811629653494378148583164090333765617569796017082727451627188798541453638194704960852840135437476070778008357147643906718847631553571782021515815977115044988659969651381704271436225735206655823249747487813575407510451544414404503044992933620311907210171527317169537895398779270553324990846854723552981390139494081777887255719093817368869338267357102800516586559818522795495019522087901751570600097668150445743241449804152333645748854334049407778226952196116049763668813943654837605063460562402047354215142992403869525210758083302604396748860056821392800713099670946074305658747479117625010294936864922011419916647039920900389928272293228782827337141669054427674956622080963867983388369265254161170188750303973499719422430143002519442094560936853772874973188495643225120261348685817747336303356367155837923132997862439018368063998231410290392286877033379566386487600167229611520475526220352386944655318877562937953061490509648465019873147874974243799544396760856553299300064380784254222046282299011463246774491478225792244935283626809925899140899659965491405861924798682684596202080763273495045616383998550611290740694872943910549936591364030160842572040616920298709541690522937964301682021209139020857538429872866988270723308446421325378739294019264836482121928935447068287166388016653557646381964339316527468027546881897936191078375677103136219602601485872884521321206894989838109314849059672991462521188473050732390448073244929446204605235519118458470172253008089026883050977543516183603449475304846754717931604341097464344761948447791100205925654764290871318763924917048813028326484247971266778049612420345132304502407766806188639139816740218114876727241520669510963259379010062748050674992949248028806840634454815502110836349101664099648495891999904302783139106559845188428962857995364649792321629800472413710997394755015365184968912235722068761992114115916072606964492063005116218173260465205987748851900477104225861710459656874121730833389046635892545993775253185554446748513578433676790538867086767136183933827351702121092147477707523971498935993656696847488567542698319037625328070001426684644926831447570530629811678215148342433043994384560334986858729289625300973808879036237483297110765984534593006538910744362364972482735825100857537028381037707819173148885363012014257108727885215104019821414212685455714674514728867535621857115224593212505927182283490224072141569178820985211837348721865673150419949937307835493823391372605233435034866208209902037277704290743534508653678839693109224125461652953949465740854481797745219488370764814992611932185719389831226814610584064135988268986227543373671387118026271296170215631920820791718238409565796326143914388572684679075795309656911230044444956410504750121022917134680715935337927384862772112886656633889529907382269396821846742398629322423252917780217998580570903567279159795989354053478807358719218088895876126610610524356902545314011660002027078501361986485157236789968101314619037808067311920194496694570235510427083660984264669044543705924582139363507817297268435852050896013201053736397663488435329527039780896259759289175404590413941953737623899958689145105934543569708236153612405782641598558490244820579836110099193272687146830903711154007020912412346461177430000176301304472270645729978112220520296970877384459841089142748315273828541174975558753893885867547339318097233799933624849361753095811902963705682519007197396146964055126462679387695495921421301216127441713414211829544902079470443994125443268478613464864767263101009436115870756670848521348347737736050578034190732464827463122204282374388736577174420638479998910869235713165655953768915437579756082135826536097094638781026115900342955089692302090986038268297665434356992083387752402380312635460279737711767326178419898146809988056627396136086023438424819398873981999152152141464127884447503828162962101516272713238848484757795973760039099298537921376935334716007317119669148830272832363414583370036578396483739633719239722011808659588097637718422329142507030016719702265718122243799520192757509474382459321637699905374043716402575654093490378869079809901784586720883900687675545350656513999620182989619556970758485691633295028081391203110602787607536880607614245946185423433071480173445617146292286654747117314247211582939495006778697528670259774336915436925596771010278156522112775833574484900995472040561215022921904830390400014115504531811794161680774504977562660836242477154073812980574907641313129339392515383371117081468612390395207995888889585854556236157608141427209526595845709526126121139902094863806144726118832996196433810421366743734253314143442147365121698776018460020224582042549250346330749948636539896216246720276860931847628685827573269123612984452985471378736054299694707911600017765305879275032540547888635412766805628656818279233909367491504906837672050316468543169692771193742877974896605444559796172770353829053286752924808669716193094006822154301438443747314651574597137410639990786909661554144567201388093479467733220755941558387246279367174318929505130433940572503340283888791595615436229831706516776387323245371908299658580223926421977058180241721480561318327215079904109655988492492495470620828042959891473823749881566778734591253699849965394369958056476729711536904854808041938110245371441000232822839192757820182923071383974751045436313564045345429017577130279308354663543862142246621557561636265400852272971045567629586006817621501412953902727362282277778642602379399858056263413076014427779616921965651732585157587670121204782600298758248769769225149381439034924183881943296200116131735410390580556747901271777123078264756811705331067564583884175574651845073411389498894329427656853964632454892611862027437644300340717405690253614044439037798912560374270871266449000267607810636623440085272438070188048619689619753050903109224571189952009968434616875940621945183864845686825987444776219062625509913689458932530181811422970231717481495362112053875088858627911131730953061128552275576883088023581353886358116766781123927931962264419414785434250549171613450730914245500611365095918698704442585886910666493745866807762026714363108005256184406483291552332822886127824772730451983677289738010749098426957120430450929821254290388500355683972869642799609679154318939600863845258528576052202144080770192119226524079036278665685445112088291709527709843583458844170518950220682702288479578858996320936091178977753066913034061295653771238385208819169467481081236138031808711110637650138008871380842809105035156116719086042532365865359223046633327614766910785046629022400883264917874332396934995703945125236432422274448809865113461035280985226740454481749744257141870257264731953222599290342843135147822969113070952647423005852735884341022765112862454646313219382393228584189270081039559346732170558976288715141598055100298108431568803894802783318760430081885452969772742892885855877111875968746580601023417661688134761287657745020770567207715665146980264087014451686861842407051523779494159571035523694620034558839836653514580189707725369994800908774233526740281750680649055283327979173970150096904798825612309920858849918282383004240969296250824422834851809709086312193869523470927759109254226925412386261771843312720442208029253206302685117582698785160275662827242205487034678426945725738210114115413906439980412450240230295731560019685748836303123327186003689062024174088995677493926696926391592272552329842365318114525343756413503323050722395664437056183694655555689463797430917201339361799187766563914607501805342101949684738514122928423064782768048602975898180017248351290773610940228524162100669502630300565402320287552063388842595984702258124609112846472333785860375546477508243211470884481154030204540905184884105072463085255947885589831158231548028771731513969923159276528196934935902480208970947805333079802473093716490082556486144918084527750410820549655912889619348939074109764033349666708827479564823737041863243101345966386085661807066145228721581040162819356656202593671105722648949474810955522916128963484222896841492045397712705488214228155396674161229326547588695521883421686593700209401662157427140481013034554408303227946751212207056468931597122190668191723724063462349010233053166378178547479507252313423551472310441634944223514245935202980722341907638714693048626378125206718547087118710175932137881467400172017013711249877270634067439890361997325713381836458180788847999751597778775242979445827749792141934145101823668180793862349732960842956879268106097498015622882953657434887102246410536836993324172239369415114168968158573653755812233623129246984674271714730254517804391277902531803304134783153976121230889761400122199023733430271600841327714113494902059650082472188375836656086950126354135794714127709937609497525788789091249105808329287981279146581547814709393342920975475514768556150712297356366550197452032724667058664050574831544749993299055214458253659821999268064793891352245655565369471822395810360940690303914135765853436942846415275610269173527496029920015112711219551912672008019235840097610514109637982017950744097469817808131317123136096619701827049052531937179423669786725839863330726900331707002273083240417438328580590342945671170898338004178195403133134077674452336464572018008865700347796260708492480941205957924385077788610132847584949623382572146555788937423728681008713748714688125919073620345069196823995294564560826247600712621710082887409746271781455429626913153092800080810666212032792569147904467977405726110286715699777938876963230231843890407203402112577612454690689638218225534984358308481215181437058188260811701379344609375289113056002083802575070556102862492312506565175828095599332129455483385989938972000847250984867639396246232603521488061483443432116974234767910106952097743665788157868697891111352731318300165757715884058977202775432400503201608912519997662622342966968517089475605236758766630038854295291655180637874329218677449620371893532806767599421007111932808575069270784333074836356787899485255959105304503829504256376932411578401045176179057585107666211257707507764715874442588234261616244370665726252076055530246884128760121618621731439839267875290484204751485162097688157923484165242180788048841084233378887821597451487100136978165529654125605683913285752501062845679492980579208568028052422958890024097024884654040689242667377606368178691899888168093975583415971935791226406719930335962761535175220356015169234306954845215525759048263291510586815146443843933089153343840001173823904787145593294625139443052865407165195975587353289194311263755995546745435331105058618667732913724478126109667298168751121513568453206195046520316123811496841973331205905679318164589143915617661155868369020168541823784208158412685924910580231719761838726284151591675202655569937659969490474457890270201058922637751850521137219732240721858433899652200028995270825521294936065242105124762169748092956975795491498260671763550979441354686529730191757933709811954227437662511322386794186606395827086478036696644500456259802310949362631351241636509590850078847023034472975218292734844515100870525695230492712967969906199085510122844085218644178566320940505058192339904303427754481440806465353412275156410328926983750187792196800853210880601178966856425655665133732648755553409765418658428319080276356523630548344987634767052764049079207648928751670520358640402601548879310417591638482970720193441345719777482883443638268766910427483602357969401942462738976582395159051559514291587587909554356819195613947559475443570831391586100249851737087015530479966880375097216232205628815218091004888714502896614037767083296562252738270699700391084542821946400660881856830405593241153596920022151204978189477042325694065791744432127539917609714543464049582030441552157781861990142777356885773807998331193221172763911904187559862409424319421396758954047012051526707240634000500564103607384412363191358417853734056764897387637598163910640288937403041095387552835530315586481513797313425476391050214284378377773554596518484398663437897306601482698761378920666236022579843490800673314888232813977911427036674465464257140875490938040862372028081559288035177704757075798863554936278421381673760303334887178504989510432912597363807386959926717259822543073180003910646064894897814663009030200083702546685289187197445230422832484458884159516545909740311550650188665209261655030876079561045609321217363237909144777195303169826185310826811904845622828211038345188947460785935073588401609867577106666612432793927813240402951649034501897199685666684645115290679906092384083032577002973833182186429440732491584911824670483056360992675542299968004471653638946059472708181276294604053484342469426093491604484479891867142899138773707967317857769002033394079285570579948927918007139961866795442097043575372513976581353804210940163717267506774039732595489338915439982549222687116302133813393805180893389597913574259618676903172407770889665186788944541569083740062165080282768409081618548513876134845854989559620728146413452758943084077948781062281491159499777157900923990031332246959494309231405961240085282107638831414633805298500874943684992633722650677443449710982805370406124077657765933321142585265679748979343428585136505929423821351447718080986280338226399649569602894249074855319103676948502324033879121826847131355517166403346453699462713845619611913035568798440857405227029193161730486245417877815824341862156903091169119831887701833621248960340334421131844967225869599042858948280915845498983992729348697998935963832338193851220961058062947362402015883254846904440116713578486780148401432216480404705902945522267892206368848200979348731119794305553326160707153417830985790746102187203746050114196553952739204489415232943975591167558884544906279863067792056575810494959095820865961339626598524853510621149551424732347454791620124733837506948212878884723426894178219699133271592023248585981428522856087502217158248764177025167497225254626935252320658331287982235559298222382054167974729655313349685089883870860669772327069995680199887811337485396383846339876423555685269295669091129532006894296061383856354175759028180143163634280036615585925933683661900997381545496051262457252272081394142200483895820388496834733387169084675402181902976233982235781432002910234937492781786062055411978978237071585559206023808770684834638578047504662965138670136376555758400923616871709270093331545097629896443138344676764501150609865355887379460649417236964794700549989176725335060355177047696942827991236537215829252460441207800312415205622715828784811130268988417983928592749004391093641424026388893461410419085580153101886669014441133973433681399854241045186924094598357820451593027417710361350994306770400735837968098580819763031379829199919500439593471542005654970802425913759906165800760575409793517723768075901053925983845330404691635356296233927710499036510895763436827880921334050971011952986803519785114421521278849139882913025850681977228581404498165331697046316653476987852766312610017241790313111588868909638928432246816127481318695764787525843987123043586765369795062891210653750994959420478571368996948976700710221685529940281352347372362283178555245768702699294600507002867762544472028086905223287467793791839823728956146331532976038325757600088563962874952217798903354715592156877591363677073700532937885774048301879076666066252717208501521017750606745193071942904070321891496849682315648401263403630606649608919629563391390225213170454506524937256167771003974607084475178353893123300938402738816090922231296198356199250088796903179742495073518157536734123186821910338445112793890844166516444078480381788407675851251589526864754718375107607603996569031151116819537635950776057215547858758093156106247075093933831623594768906715029593328581045495364762234526206385352507194210130465735362967984426008243170735051677358898558742196513064766671119497954426578462083840166810256473511220052950770521222644792301443001990950972415044166578956945769704626750262221054406981532031942577829838152861068823904403141422717532660263688376767523429871793163116804374534234638671376293284167013079888448731553307413199529160018962303797753536975151792393842728324500849746144425111243077221298002595930070576247294635604060859107495012780234044751491610247392725078404394184675494120531772063367397831345289578596742737783031287238425684694191713711005834212563573932631171560345797350256522001142257149737358665417332022883834798946077521180582761005745688383076730632958535692219439425209757916284915861789898413141081535720344712463684175684524468501732976616805719548958279351493728429299171052590609364623829853127650032713591070141096245963386216934253328881466216725671365346674526205835123361432455437907224324853827818254716373462572388626565239462609789023958909856813145035157155785010078851985457340992110858913613015440418013710593584372419743319488645323751228496951463312851667838474430574670590746115260944752798248223575113230406794820690972718700812280458028942166997309155340320660895398417437216050019494443122335235573469761825284949900472391436672872175550589650609631560256966919076100088744522864244904337087323678821770448017324461026938536914188142531204004605657060544599574576425229806947565102478467204250163638824068233210905722437765581486913504457462104445170551158049472724783717984352079755653841918171793677353584612966438264515968379947448628931635910338786854676666303390648245155789712332475717433988420955722962958162611493288503542743991018794178541189436985449221541652086876620632476867140984240310677869641308652464853299962481412691938914939622491495256152546226613343815726984397677673862601257399434051585210686278288237150480375111204765567165104277412967478937256871414782015726182856735683156891389486385379672705075228405642883498889455151718006781586539016048199460705566532285544723060132040836762409510359907163824076616508029595066832499348047778839436788734745804274767052426783956895787961870111698127532418386568940260139868924766842132748040545152183354759926712321455021093991936797541186401719824207279924841386480633189235191206819296366006741143734743967280565053335773701456566857895030279289919606637803608053171353916833716911722095738625750978593710072972581207299999315402027116787377412314280082233188853812357623546419057445125072482268747674476674726022164705836619213776517840155718262561450114386755919839140482634168173111850070927068150243756681823084109833724708992851374583396694275880057454287421568434029022965665174915312732031441828004098144433866080237478855444527575648011069111652911520776574184184546007248654067862148699267163668474390125970686375302325131273840374742044179801248567892187984891842744339640617308539001822534224188173562225273179857039181481566940090619537274608321738229585403436231767873573720629847180968923993335306354448328146381354529740501338061537977516740932991753279943799149467061410070105344698204551994672077703981093243843481824023025238932838368195315242407002892090662331565210874156757382567963679556614096571066929843695638563591468764605733992215607666532866909152452270399698209541116135330737151582774215537262249888049233052939216590368203029812782076397433491955459191874613096240491648502607050812702039211372760286091303336366674209914927623220725900009032104588181638145019413684065805689374620847790164538324901323837931604238145270839558947767082630479471270380056622254555468505293694257569735955732634608473656723681936750612280976341162811818916142095812596549604825176704646380090987608186535435001049133736459187835945916804219713308525868711875047363512913129328113875914036995346135418710813519898703859201388094215056479514284747119764479392199039628786793244863446254954383781595446532055634141634306775219907881285324294217129648607006324665411314397028181937419664391089706519182138553572458758212625223801387226700901647740040817474556346820555376157339929113776537202534087143724771869824243758960410602898927765262397927476875799680037750372020557707342670085904737052686377934474098498282089709870582022045465978915360238205191921860842584962699483396697815574755462631183795908374403404749304072659865427680136399989811152831100223977999389949112528493945580899285159809591697073773270699020835957818775363408461837612805819876427325691242633652631398637011382031330943510570995042973741784293028424795219938652936548687575108994201651736836559142837726025235684198348600609592978856703005404177240918942205445297518880285396391520971424952346859849349250787590642288996434655565919779123778907607772167249283976767500682556696953934510643723996415602255063622778914982125511538804641632368972315570008779716361405395816339138279244793203805297271488994126509397945333557444069665326944766859256390215053242490450633014556338915218542442420658797702028417432182427410552620773925892888601750443284015635043644336354209980427183439590297944934870824207793709401171512377426973160938976340777048923730704483061449962721877281918367754206139821333812630497132098904754059441198924742393683342519966505450920192306593685973110112507724500459652058343510496962644708076010547181933327991391508944761000665415398375994360020740464105331787929567161751847658259500525476834124902040575138949253591248294793999022631426973440393738284518370055954448974974294035469757337382645323703509122056059945586624149391559749325821375231920728304575465015178001007985633752036168559401894454002822039303382173322564995895847867524902383907717784856449972497130081016702574289387315650958184271419899161175420042451422731147651549796444952497225501289275169720344920914187867288289335944201525586094811766775617005477387415206887814731932846232258029945574691594118048155414064420685129981116917482015339706484867756392881258796384118148704383151257117807194821826524946716387735430537280246044240629833573091242725199074024362501952610106802420848327595127603723189126184191540281568779274494355853144600609341978528258391121050980943923812169111645251651695350254589781972474847879480271428475728203840924208429860576981984905906502868968546814638705165684790617426469801918188174649483962330788029236168953232289039437020352381587205948627586578527344605519165507736106050665286309402993304816541461058950354721012130946852153034890075567977394141550626449489294346859763398211583643405183824621659845718265447941624005033570890119141977816042281658772783654348684893585675683477253741501887250788886615864405381224060286957722018762446519328082086486395898937974108406039202792642853456794214498129647153322744648046256501389038089712356482254282665039418700248179912675781518369009482416262027350866677668012680626345390354243925618108343330058656405213752899046704413010617071743885611637951135712489480903385211899769973627773560319546070592781006480484421842742527847696593614877434831185425419156924046312773039045267989200605277210518734566753064096530662543162088810461279285149410916955176548971435019875578448873519829719939546447206103353390349448908331345857725096114558342327935666374774988251829394171790632818938668795197170359198320107756327833725630357541997769182533239370869212521026345144568320739283111615559329884488893640090292927431637483967186861789772183603969165909124706924147492559286367504508300196779914352124755326992003068924843003876705395135547991966000010158871453701784184776215036307838660688868937772813424267335779610296777169246113162580698661881028237987016032582166148062670308783163453496574358849355154170083208676240584990945936639571700530444596805693969555374975492041727430124312447260032435962370342639805548596234310841480115696532607821186625989921962723815570925956156881939007603956743039667376793510539197692283738148563006002068780651548306543385270747874891930625133799029153171040923693894086252073467542205726086005619125643596548575153766667895462350227126820783372532695273737261969999675099102690027790111145048296274407305777757349719391324753616589168651926443055963672124465888236191376455009984942879823218822432005205935447910943131726130214356527120801470778841581425918920706933221531134212714994894121479414285032258526048206305343832188153844266940519809122351062399036777140249570273899567746225484402448355885015972662467056006882525189743876254307490389296669974753152917057695729976348651041142098230340346135418395452063527076384005163538331248969562364334132867017156982338100588204479408061839954985440329820910055641312333562039095303536247315718000513390876897783243073631776963231313344181250787962983135108978140632612638605332331252098774571772720023065155468416136616469744455588697979849058530604151862530809081500305189374248374546884491964184103963319035293090569511552219980719215318692744610669335243658067955331453535023394240105226085483317728039067823905943553312846877633013054607909879833735155873576447547941060020617111126069495323594890998269323642539010409117971078349462091959737356990618460119637321233879350309230157693595093795030244147316129671055117173014462308092288965675531991824675697956677717672316791699004336299290972969794410535119425983445075635316127095177291924042874115049652986646840002879544250559782602174121353474247292612668098011889202350238433823503291438941276399229624120733173094823209778098501706625442219218844847256481639379629607340332412541571174340396970611444370427159202158518064591443705352994130179098600393232184401899037355317193492386884766512510142515471635155871374438266063001672105186575667316421984404896423000182905908830239812153177307820580074797693639828460525575496099163501457665420871272700266745642749669000216236084056512985139553161843892478542617988536263298105679545273361923644850059684269188004506492358777132487134662269023964039821840383422702714174231432650686854240702823930637172592241107293937915520842320686329654757026550945870395870655698177456232432597061771709805012386893861867334290219390323058183955304761378197874025900298321389564338868816955920355940704385086695443393919152448236438399929143462646547277117344825283698558606633836108616055172691257930989805382029523376165072607861302034150390209410985164931189315333762045369134129089944791148729097217464417204622711462588636268873539934803630604670651912892955035673336069375437219007643826627304808333223546707152217849304843023331748314097484943052125516849123233611917467940000090475680034284149314529319738342218235911305337257793274347251306889176512673954393420793578391369634007711656238883331999220894861542510503989721685117110609319593991867995437347339771816788322142584685257836123438399528639909092276096337898250024747147593744129357954258858514862384362101013560785091136352501028572159943175984048223389570211633343936884189991993830008962757876622250747648972109145810619186176222437329122201380690057628938541828673267042382227313207541357976259880183928505137167721125492310194298280128281950819127622404615187742673308212513506620845398797319406525227948453946538354177098975554637346792158168734225935710217502135733107085288667106371553343606858451203832522389445566145806520553659107729718893695802042540779198730708438360488416613476297668085929107832728311166602389931745521734970483707552268066392876198804045711722442678868157402687343814424455801793492618495538714935114183615554185487950443437086775939414255909283598118667064457999122025731654273248911162053064983739490933641914409799786758216426529646883360354586988667478692500214663600828609449838085251853588121529688443790263233723774893258314028695396500648899403625806833761835841915144750419974658495920363060657089183369408117896447645903278382880007761831623384694157558205124675960862480450691377173511924077047276232890789724182469049317805507118575920847183327121383619414419152576587366522847930624281900034675129111022691235231362694000259280722557051565476858493078186839542987964192173231126856044887126561562533559067311523432534092869144788646881037183696204255932892036315940822837393571755274704491696226658628105462068369605035725976707365775070393981988989766030821769973143592725615105700945183051316612886660063797146497834684308326385420879326462869945362486055157666915700107514333954289294488101540927323684729437924295161190856397431694417955699198792047859556055662508695789477417052666173723986448360885916616741291060591233749095614722555268667323234079857972542255265777153340700470825697657381738913121600831041988323473027505571134749981914406116748683631375037754125896279501914797230918448985589753266538002141983925970333327341398453135029446556655430724951100517129907485626061632225192894189339910460307931023649751202522948981133854251941448598571946900517836474929801831915694190213662423344555045781255207669307721575957680040567532296488424356223988890571786955564662426457034312699920620318875176601950508019723615334819232823458011738143560172579324336268647122465806997685444440219955570638073561694873904687060636881596354684332916993849178922887507373982454044200797935169833819769880304506524740916160274001007602694119455620973400009243158239865831545346801669253932475199206464485933531968931517038829601873041254464072419651397191900109297271439285125640590172008919423533024852845786872589797406985459358308159114465103499550249149022785354884585165324085231194947863814422574700245205635708781836932534022539340661705244171131053592923928135481354360515065674557110810792391181961168749918156235388382145935562794384222757969291889468256303863898586937595374719283485729396823632957086954485029701071711899601936392291969435891217412202419218171878585975626158610200987329056699412935642270587814913082831349091275671068246540867470592551129710154855527898234405351370256595952144423281284123618953214238339872184964168741298953825503676422239233573954148831387175124946751279490025770546552864189261134057466276982327162454079057033141912200024070566286703415548426572817445592348610678797972605360350785861190371103703095991672497583951959163364750148877479518343467983284561804174086215629913852005675465597542019822907238806793184135432638194821165251409039680040818269755762022894690564424424323117646226054085338342136027227410015329833364790619836418154900532813638826842376191368673106804793385910819386252741720638358273437459349007560261214432144875189450150556029934898827943782807627521393565738426810994101964153843776406863119754685934642800150412657530812154886510046860104662277702282274589411783785320001687924114765512657271618116798796669426590442480023187198007154614502539687673881773397920421650973850935581614850089122795660170141956649848987532820112556979085029000222505774869115688317340858570565700413590575824136978616051835099509139967768268514975265346903335948784586051256258810715075561966428089164590744195290761542807417449768784194100103853101402283612865789154381739878988400139273021623345663202431999353123387856947097804501026853266826661864302314166328271680020762666591130334102499823719442261942442754652613069274718736680676038043695664480067046162173007034513009885654684089555499531481773254926882923883267235103865773037398411824899657304407406966735713497186644027358009420810525376546133730857534155331722839901776717123451255382045961210552865091702950735523398178671779877908788291424512029040300432130023474217077994007600447914123615053239917006343312578509390166285019735360246685822232110438610331051157584288543410647953444729018702763196242572570986745695292624104716563989412025425471313340763852470995506544264906682791994621908677437883500724229458856565267121900863712793786641853898573187604631172495628509462566396277883615145726567592799293307134304232469007126023764561051395958549256204967154348628801260349613807565705934964292039900038988590757297099166684187390821641208471746235576300976893205455791963147634112582783383425416028169905804387680379690135380885926835514804108950152280455884356908500546897312112251364836763063426105288796581049778129934360206515882980153371507091693444938725466110608776639135527456771268722417133618540327867051790456325475933919464961340094011336381632459709046307021309449674793948038582550077360224912341965250998007302851834882993348701840747312591653711034087466686398074649344455120932795755929691136093151081355962642768909818434107071086309506961991401293462631701914535094335926745366152853500469038925395463704867686500427366973548206398886498568736310324137722120510746489893086535919646721470434051462486582100533705583177224315250947602955083873531285049978894750790232779399062080424054815175265525094282479991217013136759354482949227722540506747772131344854840248134042458074185077288643072117910530091433074322160976425976401825005109018020606234790415142820374755200826421582263430709080127848752190170944271668183912517392641049361082964133405968492483834391214692391853104694661818398001931089887437160091100820533650595904073990166172349416658086736901259138015813705200631588735663959896318239348269280204801750244393403306849050460965082397682949413339847695051007521068441321450098333255875340071964248840045437588838783430061494773557541366613032349922626620416848487613173185604308180586510041514754204698651041860637488555402402665867282170791807215309214820231580627504256207981007889082984127858041036471201544603796326120327388432584992799991464837776648754106551186508345377179982995771076755565118878696083437794274089870302669565147996609227925135133831319155707812246091069175817270842612057135027436823199310187213415924793304789354565168630580551824095083802583556248944991072395187520197929389680905046951223274626097392504756164523894659345235822476471698100840242276006004314463680823332692687779984149207416624959236466291895371433067887034823264635272436444286564424199748213430573213697918106253107917484007956816746023888853673250325046890513239429961945669979868709381556608260819458443405852811659059903115751773652453458382093729546089845957619054772900259549577662633619130591924750060140182201487738183132457395921337369235987684730589592010710892381466897423492708125968825435991744823133084621117524285878221804902337677781867744730915496558922975962434525532903683973490335912120348245179097596877051539925148171066376767029249525197413944289752818448755248502167635568693089083943803178381581120195821619610564542675416676497735322822261225473310874970981617227284920474750723775659431615347325640140113729043521381132363827336268505148816845217187949084756880465965335665464587033821969255773722848200695917086717741581577840082629135287510894147761614741525033089916302065038794890886506889829870189294131927609110001562381975721940146025846142230949202894587736554393471750440407649886151643751179233523065745843890009614087491802469872123676738934487934803635055985931305172894939671417336244407232819569029323405748355989851326141430436190432109865645451745123476071230297225266974677884508763883562743787903695345750421777405130944652589228478821693472311601672934826493932212768807057119037892514163251093167518290830957309813940815105757109350981748705030217060740615538439239616423904369010905255667618351044770413189372386956566715749176130529270154253439425314493993723547450055271445506742384586609469902898293870827455774236715725372621774801157234466300196873036334694105630927478842586394565822957098619357169833511152177471700753328429384912466673293619377952743520378865698589525951616981150407477910434735336668557396984412773783524425739008643563401354171640490943585553594112924914099491185517441699181639288930901060238016457445591957939736792023039322362317476401548468285536925477313249672342631936485638110015646296644750097562241919450179011040252216578791762447974543959839856773107648248090123051145408181426555675222892183161140145209496656105693820831614843301798600954669756962341195739750225771555088400602714915805111298080650513919121421494443932825874558443555227395641925689046082070129605119950918468671215916755627049484908063554922253561590015601813162585686339515523637417248237708761958141098999848898153238199159685705691173189292927002939402131688924361069657226620049116408594814310989977209631251017583824957613414319205012940799123134120719856986583212397857017557658869396122055661601041181267834238896792858426719484868710808128819944646738610889231748758361300053248268614432473732146666523421645172434507955568221637558328421938789233018503943988229024010266015224256062422199195726235198993222278484907635239087797372173329620582944053251473663877800986487853871860342163362297061998721512325171766073473675363827801124256109350296996565399016207791212198222976538871674346151055644014599690364005193666149673441273834240555613493933078512103383315910394790991259873996387765387070695946243919804758621774946955359159318866594101620061202776340605280473931321466746875771517647044130705723630460710160908298856932453455697536075815208921080110062254271533953447220495248774373543700495719133444268363562670337548188979425154594352072823660270385125849065113903391197213523652857726951143052068898554382911771714500742994177775634484804005641902269930642902964382763348357856621804794830413039173409848186047589600725299233455790992679339475490573223519418046611423175100271518989531838007604212012868244227774165862712352068796213908892473351575780969836378671030882628978216187774916429904248330130717758001316544164879842113645300767986427041330850149134268506067884024234412178298691655632453942345833457515637063007507984890482954031807285385278270011208825966599884531652607498017189198654318141153128616788207925892733324501827827390807697104284121334345806651852074098408138246234472751900471752842743649231488602047991308552726934295556412845443712513264650269348927576261933997410686298139109543083761542600430395254481969045510708395988187112068396810372543513475256734876009307446763887317768184789592512676973423442933913104727832239820532243037876150609430268629245052922794681763475230734430074053969656350535619540117372732715496874529248614171150898347310313498758783854323395877573268398152422635032602119541058004014783214495583464128826695990071426998511181238838705512119767721542619222449707696215281730987111542858984624786387728080060114117607504623491446632522272926210878375609517230870503047192722945740497739273035271435118761543307938923286501173027241027579761264415350643390864407726073793413553499337806618773942446052021408982712891742253485247530108976255080034772529301907029257046452987454718572964698874726035968697770345191958151097059778460535582727894156260165127517601183973344901443226973543220953043318726907163118965463133556298255117241000637694004831730387867087261441769833163899811949084666145421269630290927750308392838876366675290983097054439461419970976848828565988779909953037532332431299974287947592325698542135226866701204143211001814428799640283769066010964836731865440028119381468580705607102637219062998655799244187892952847364208858409743414755626786221656616775186155588103475043488928748440329999130957173167429725344302323962964593545464044375543608939086748215923169451314790838877214266347072054290097501265053050107116824611864203517084491995680362214642034586202654290228456817978173625450469431365184499887800564377399085786812939239538365559938767131354771348185242321234053885536472285019165815403479419586186135832001731685171248511601593187034666807050044408611471573528991519359281038757067773450015387462347379100939205714242747612963412236676748060585264773785395665505425957142054899242085968931312724174556766106380155614504416729092058938037261444352595938106600816864217235567224254791051602158160366162731904748069440910784563958198930207932969291347055321784163687489698091673390858292249691905203756237926490821729961565685337311791131475650170106392460447610469780626172195345618933635912440549033315172028216244639258070933522176530347138597298131349694221361372373151235567485612808618226069113776909415760789657978459809637129535890165954557685745183708720675392358204870258364221224508333566964039290722904883469866584600676459213621363545255236222073304947251746812572586562481691885282872690279615400898664452363680157734839967881803409950260592448046360907229893690332489063939553317698317019260332236813272559351968114517313784499100445882469371694701698264225583182394753971853790147468784907379238089662972133461141520412342356746266169573257568971861181723390300100346448347100159954543924742998560049909631444153934773739723052956652464530617907046949234788844459805868960892423882853875334491183088568162662606203895695076436019876033425695940661455393854118772611034855003916687260648614577276369264073142757224600385983954921296902820393015039184862420682019132834029868112263510585550640302774755159798120626893921660218453395261699104843877831339568340428293792402932372901743056403844230622495023116992691714074333995054014998360674913136506535732239084733611572140990337953346814067334991964571550768438199461291151483172324584669058670252198368832064851449128827262573712611855705262085944114577958861042350426087796035229739144185143654153174850792720046445586558197440010964974044577630523495447492816078128414322477042896890981843411461272443848842822113716965783564391160339551790240725352609541593269120631776510391391279807057108364472958288317361489235490322201302611790114285106026577244065735013831825997756560769553736008524229096011440354598477869925854720441509264228127943447461657104072686486200134025700667502389249327464332707537389037250969906833029883562785809563225424862472708671613712195796141716486212002675584926559368642408563260397200705772669021241389579914562262138249525480956120180169477788859295274113333213871554067978484428839767485080111102564741761794845915391020169026053533844751725547356672913388000036061768636225620625160265287447153510877619737061281055341436608363937260186615656299313171083948802578747102997177571579424470234065656662632180970393632617646740677605857401846835405758477734800766780941640127347343679750367975378912250035122775257726792303947388456524275924415177485267374963904998302551159785356300589139594382862937313526776995401157288879431891087166338302375214763854735769588954902155324036978121673798714505513604810202283903444330543891201889704966892319348293261741043447682009055780180691999493961236725915836406026213226599101523373032990382153054927386226440953970566535741476251301007033067237271069196350188851630851780566462995860022830918758911890518440032607724609655942737213589848568205196052616008813973536837830280110856037043352773669926826410193419063474691357349448691742620941798087426890894740854903667984083590759902188060783841567918009719762249244899607768089310101570413050547186962649330041636874620549288801421780773667179969292021818526115970712965079043504176138629508461170320681153545558323704698647824668151408314150981820486699788506715587140378497066353883250387755616716353136559022468024952961828795451843062546265110921499548694109343952580334299916394171168164713666477257172315496856200593393195624338952154821408938241273124800142720918506479013193552410023446625209019969082801648285047224106880896134991295293884002200380260802979225421825612331168344317260104435317887203525993378543552202822612305640678918856757778288712972837287722433808754733748634840865310383284328472145582455203560924964532634978550453985163970771772153433835904391512518798031296975059035367644206493234957208168964290415824845032782181095701117331856494846481341822353211631711647831168511804076350147907839345708057105183400137326655401604057287868764146977572079799426407579057596797218249295006536076397836717641813958242232103233304751598214914464016331155284324415012096771879929828354005913141059035778326113479740947934904350460783784434714662716998598865572592276443934790074372451414474010628497971937765323174494052101159975069106040823011338578467714337777764194320880043251291392490591175482559608701254452019721358743948844152376109799118156034757274204437271252234943401336268495315599592512281582212205740057849970571588081141134148960307517182315593203565214076594859284253487244341239756377548069178612707925465424875054513497969883734156022048599991446197596494585796111345966374245574465834220917578021793927748852840081175425334720391265726066135112458702333669376618430049880116789796006335550544007048209943232986635369736953355447275371339588558292909787764731306299355112695242807225858250034638722953578109641617858148489480140686089357578547657163250431890922552621332546882868259703307962617205626164483575871694520572868197135303166274094593614766418796118951870746201020308423475832167445599154230464099234106459809207709234816398485140221164621078055883633217128422444886673735331019427208580329392470564986145773508334708882992984975008096889441558084993108040426921710148094426880601795513867069731119274612940778115682700956478893128444753668858491068704789309478570927122013607198436300454784179294595555381848948631624818868338927067514003428815656556034365819848033381328045726269334791798467638088251413402545904628452491106878008805345433169551926622531377427640575446803555814258849525071760217729242493517238694831269762617806366727020429492438685465979086109808374781272172631078543404607896512423133188568005071969800289494758815968225931979959603734011686445447165325791969871022765506080012691547267061920532475503837545927099801221609747560414052971091555028988831498575526629887900293490439819203796084062323539940178146405278758086942966973731232132994360735253807364619753200417001833732748963751243517462793742423186626719153758894753137487748452231704671385738710554140549744971115692505952999243615781260383154888238695472040483192974946917947934865099526291119871498786809020150241239565594423120798869365987101481442590257000725595790639080613541172495546225264851268782224066848489417399327825277973153514295876189086492006087462540888233570515785832247410933076017500395010720131664995690662250692292737648183419853402088648089458617112881180561875651501151432377381451806266197007261045758390665283864716134948370674194502573583723934148388406080580391380475887459865382373052296818773446295925271820898897205786035082784230752765185312872002173337501741428270064897443116766845973882511464330069799024180354660951583288454855718776881559028905610058681674480331377553033904260409003813920341049565540291404535647289648439548818361140144301060386363169711829080345572694361294881116295139475734306442588005979315682486074838282865194136557890386217455069414575916079085172818600925381925554843658508780907111958425068656306244428955121928432520155388364446048143199968241667151814169353015417825903435363673742183318923491222572314346859849314264420947550072758152931093654832127622731186194861055620918361885926159296411386892355584448871306862122077513925382370282643702989972839065393493787613271680624097876258199113821672477791285693741606103419972642231613393714768971940558737787648884518713665368901650503364209215991543775094345911168010823110924488418380559271577529109126704097204594680548191370259712400119593268731945392414134725493956796326652111155191366277550543387007579756608638923922476936368806183530179009713440650330359075879479094437599884671077874671643700510753562900716348821752540953277397368054810451679678341655275542654811613117884969415848239804605825741068923426510196990404446802883542846529765343370727122366085634663309646386892002969095864833519832253665736290758663984961436454206932032965154301975325538710396587702097253757190755948230776569411407514003980611525824523079811692166823710143000767340803913168787963773972034934085331138965225264564387898393365702737742938818784426030798421357422134092869480064802532773588863703147807503056268617145314276762746185684455241065852353014712876542447834298029229186458394000493107732438031341617377906368810237341289981120103936604766076006167332758541762895094782486497378309225909359518534156103725519705143168596856346816929187177330400417971447576423542658638337588052613862861569796183122192377410925826013199161515164421867577057483108157821911899049941356951145459742548995242178483681463478470888352953226551322298182644819126418139421569368162527814796721968188265347816361029051521017743139351904547887950056561273786383449925807556289197038927461525169868709656526886335590280808230688993274545042575555421736515247895308205691458313608005359341166711104539690861054113101337781196260080142759658975669320603540803300479065092892690995362596755094344592405394041209355191495727584687404521000816188277986628960537275648329584087359473604076700598547831362404677036877733420840304743303136195178605986224539650620005137282727153751105520721456519399441598323001602913605059693027744002390704619996388194875528117125889297083266423818237132325995873813024261361730580229668484389640890447701531921806969656747026035769543742856552936188342555951505040765410468962178833742992684420845986747815956459049770343739369022721682859603164031301382170926821359007919361585845036768513411850864811356185573017182029492887440163003295809946524564491355005739131304140409832251553440295063784372500610419040254614067761231468701050233852518392542666127855651810854792375901164804112833074469890173981888555427860363988236685197826341859500223189119170101633944663558233341690434648649280004822921616240892081047787627797671172390733416556481195377314220129116755414937955575263380823513269115261841519134889239729610632754764893092733234068665600677326119262326532643374224341525173893503780299076057382486564727294136058532628779553008185597874904437787685609496208124195377565868782546146420387781969876853872753988702594286826352516843129581448567403203363030883748339737220191161515928798104041121029915438232956850305440866315115553486745264651618474565269417307219989220064773985681523076168244078195823237392282886236109726191086254935959265757777366493939020404463056896906457650180610038581082376093247128359439719586307083568178135989712692844893494436510207332323617204687870493645585719115676099064943807808727072107068774495355648290367268675137734799772803900559088974286950845758016051095497722854532754463671403406216054679443340887067956102932161382816313127194998059024999774018113168059178303086967218495867456258858350012817540915944101805968593808861224034482703365948307103054668097033576355000040422773982321423372943073709908544153935135969788153507691988735469356545163314316181862356721023979136766487230769270816362362535486471270904603586883794076270557079952070477230756164964119319147864343950072556401564640835879654522507159011796472923063229526746291443293736248547128333425521129952192440533582431932352376611095165815083278202574719704031863339835942729403414897100963036474971354557102385993953321543305949986642585236369527399606388200426202555933880151754166911163652921181449891899063365773167732597694628393701676997469723753355789030719696327304010872994350685728175236506282423691880549140667374779334639830804946440747774172200028608386233603563424523426303089555377996048834766973891081724944351568529608414098133535405179168120723551758580471489824613584987487645898938395120161289774033450611947072154054834989736306890378022087535552006970789907764314739292193989322124543374026956191283723709771914139426594671301820532973119488113576645779900150689416494310703429940479475952055620267297756743778731409562422134949550584813132781111514659819416545413782494367586219791284561297200023156136717072916575138701056399696512909675769293509683495653993457347572320413515652585990552877820911036159778050774508940489435830803008524208221367908582825687710100168230841300239842001853215941551119624569496485280728924332196924578845220237876453220871879012411763600081728827204637538019922534620877956427254424042596850128042063159228650055390443299433793052490871084426642317057752399586207395739920737690622760419586565012198886975510126486455298215594173868806263655035390042644000008761717253649041013725500510487045475728898094002995510692331412502592597387877365627514006723632286113249332339378377219948851382344361832137641169951403492361667008227295588362848513146846673819252518984482189625683983285282933731817940660123342640575742232528163891091626019255909275660962610318368408502244737381399280532863433122914404040517039230338867173837584055024709967427759662615013434819109049801902740383076840888654146064014165667691848866991131557671845031401041369945954239886463156088406833015210614132680119025261850553198320199896901555649704154042234754877339959741580301394500181134308092654133110025743021457408006891566952003798028995160125331957778001232107082244340002809374747484454345545631773086034132486296678703463658148497424123895302368461175190751514388440153885754587329658837384142840290011606193155538381389687452897078408048913356924352989042508954279885717716690930779468653450399140743818984335179335540316545934703268055930608863570832761579727754113932431105434898783980302741859945461911428840427701237378766506770714564521338863663020582516992546338614731790453771421437248460925135408765479799573313388674626546225802685886392522247991871927787815747862699434271864016580060630307661625546740180724131762755002365970199273373718940034436299790364250197034960556964176085368565627641144809201743936923669065791371065800777464073458471176447700910828248504007697203411322372749761284303184815600628771400691220203654864284419978217934143686744452714853922457307704455927269939794481319943591600334825853042470842290816845863224674440051377972738062934859695172745793162748476470881080820393936050244787682148912354176467016274193428269879029507039941538871357922658051189152714659927253968184694306436486743851035353656061963735225779968118133656435211563521774435543543506204503910899423393601466228675648967821380992866394064077071195540096179628485586487931023075123806019872700292094625994793950565641753344076936445117311054289206547761300096946014987093661071388026543624859789310051065268629425340487437819001834062770041928901512936705803983298643392898806317536902997824633890866387837833220505086700191711737640174039658305075849705079116678562908144607615165941315998629217067010217502149283459675055674583884704976194893714639780519172211244453454311946687356533714454497555523901854948997441653409635653019263255639915829839152737448747521343046324089507659549712134332510556009027369107488402137860177582183639392749682284949379123097140148604760931811641729712582050406769288855392182280096713646898427337283341750354295134433413211278608834000727952167430824723208882060409361447150880466127536680547636239026911826284804470409949477557481571894622485863091514599339837065750976031229924657932476507334270973585341508566199580320044404641758298140290309988909527306263149288751240760368736777666900969823133384321253555003090354230134798883890533101232496636756349388142649576062828976888425005504001839746144617749044986404667952770793928625404262895448122806854757078287095675015986336091749973671078511084512669301054472099480944772759346109203469639202732894530294891277550017964470529961271326908509738057196608370314276774976344674876197658088855314869847014203129603630406981023718580453812650562052584437393493737342880753418913788391490450386513127311150439366254658762989470866684245653959464149561461117469782253598375887125467217208910080916603010962640377978310191745477144501467255584303046639971173850229547334748502422601778589724833349564437792402648733707344639139005112430160641999031714930735919454788871575765479294857686344755779639353326120346529701149932034812894663821629926049559263996577624697594166933861526376300951909111076630457295203552828112125615995338341454188033354351025264900346526526547542941318083871944602496053478049191028374907237096514667005625894738819130266828733976208962384141460969150292567162453084484593878648238584302065689322562602576603829776842575338148018318146326558749889362634888100408582202783737308522930590475804631036558198674568625174323764511414616617071663033306066794830525290959373897890088386065526242805238260982394677368229515994263287428300463023896670007231312263409631452616236981967264961957849679073974417109151058172135654733200504412511753306851693139504059334980429661075122863065481761166530087644225578283930551585677270945108039114881745132089681993250587579603941744219608463492721222611331492736531672729953872788459030824541649023662470880010799291842348053259269407908840742369596151064673017606200596727902725218239921820034681125037051244498006970846718564287617918930996087174056325119679482600459678643786783627220458401474656089441928029615013783080219702760203202153624435149267196364655090291686022698204860815931060377422456359524309103999592703109466712708081575632534286414667791670520912038179198471939196831644508934336103523090438627426085116064587991530224261021077922900992382384038916629640367690493872129375550723629323090929255638827734464295815885108906433218114131332486703796965840427504211556080594738624658298107104120563788540744540599373385538292664865284299277068789344491506292298341425790309284112949859711905973467352207043376492185853027852826505119856848868173269279400041588422490147473813425881273477602135861152907854510886811692503712993719538905765271453601544506978280620172303952816856135402312844546034781699467815150848998145492497896952535818554306093005435408117719811368276620269915103652589950809250586594511655131695867579252683091614572076422336282813937752004207244958691186463011655645969004273241546240293320051127572585255908928349364666879584423025236578734373748674302490631494341909088672081384317189313023085629439770160493631378721279922268998072054970783377251055458260472695466582973796525714723700590530386902068552496531583783401414186018134913782349786492243045573462168378208894756349724660220210400011562858211830933529188211550322688053789596011653651402657675003202273489820977655403685940997585324729850893977926978879737404594383057926171184768518051133300303779910431532458850222891578395493918201786438693077874411555500056548834237458771489848909607254756102770796504084815701186911474325594392947873980581275578978686230933036558716554307518489482463810685991681140621946020949281541814779151711406655407881945310325801186411772377947307825038666631317181368371270941517299273677138953177061733066440540105947597916790585862762120372389945741812707750577267330133978871538625417710960105321558136579944680672977694693729336104025549705433243214608230432240340507796709465596117579379487172949391969784021306516906151722749863738211764121446135065626031844858288143100521343641226613784274919938566055324976893407723068150634551126100278908997026398785918727790750206066098639977760351025292637675293618306253061886180073534621508325550392041282156579000161577066933761629307827327647349250645631193036154310085062890391477191561905689527528078586993695305858468636469549500155690258825305703421416624424897639773432663236663647615177633720812407788392694508918334849076010897427972245174322855513597184728414822673521558438800539629478681031171064701937628194174037449467907069124881109959272390457579324919749133104871597221917693045153773185600891556377121599063250830701468278425589727489554773369229386349213036828731579961912640096501486889019687321764206088272125053934939383526527497029644461422685944986744465946305690089399121755902031558810577758370806282173948004906040276527994277119796809303549887831667055063189938135479392261063558804326363584781782926229204392385524849479639273237451905020141044308179768770876204434161688289822574138758437042742771570083607515659847387780914333359655376157045397943639390683390067017880750926964843449897507645792953804127717559355142735373328502599495138029639852696275044123732141722198999959557181836013884113883026218926990221355251897306727148335689035631283632717757838727586894508927342209993301367795385825930380747410611449883677851476339159073675584148357109054539061174124070629411696047238722154927601555124721201169875525419073413476003589218973693457443879450689864574230081850117568080724044456357671227022981123071415441079265190107070331582442866332415691983547787051728870202953229214787507833367549442092110355326323741392957921509100870335823867714592727655043945228123993991600930495295233887657327980031414129158494703988880400477201372984294279806562529500879390005209184728301319477802339530087282716469024642217312654747957933879123418460073132944945282148303745111728333212407023769581312230719843427597217128430347817880653129310896046031169951142088796219060830685766528241080132396097963238194121518504702124492133468085538604024760536567595778669096019534914813842863372012777508305034322496531954448879939682165529894764753171491004575253973123162433184747595265110565272419826957800390104282913782243816806495337790895579380547135736732547208431521368843351117110248651219540645536882136692041483253944393104626534549049733490732612446602637965007506599642721784135679310555533142894397190900027473607643156721204491535588696781632410524179451849082925198830970531232739634578572032152943521282207450339736984310450640059740197057070194033625305617810334822332761806139059202450131846103237479973358644712714018191360915983258061072330787818002908262268018013320869626128459602841212382379009014074384854130631147837353822487724863025207748458108145783186773046398652014382726022974968239310698606409808481351832688421431629452398928865184145004097644254254941026725238632923895271612703383983446681749404304526403819376757668499619111939985343636871523634732305808572036862625716369266531943564185379783724529181943557104030149909718084791936493312996074190907304067473860326666843789452399166925997108482651221835933024542240962530677263074468867827490105336543513266543871434624948057873857817447401459080760160248371407337957691572053832102503143811018391875027178219466639191234526222341406558092067999812348045101536441812847153992256731112379794770936769044073475565459576775320472137740993306866001345460117968213856631749890463897374938917159221215210784562928509250687338926999625019458073613074488875006243210077052199870468631544929635403739616472068061688534200115554715319834028028425453395621452166870089137658872242772497380895231026011460539907794757604125214568199047166973637209456814947495247294547119656159631673293714331602964797791076816504191785403310921934645443554191032277546737643261284994511637354096827852712598692829489373904801883040518995033111003471625223677510370516584221258241338449056251042004948358572053677278344537877068451605048536244498025306538267091091196599464599124647415415511700720537921200262455523133064847331180347593961721171269867194041054177045570217537559844086234162099018865692955391290305082113290269351858983493140839130100365112585533216335992902309015878531651922432821723008196462589327300995629548253889889898156600282025095451501996024908692529946738031880901504705494822321512498966778958639390567300751808045899839131658947128535505559220966751983224694076405915403178439301676950412771085693112525938341407937317181115744709517301261575052349803163481421200417104086232836792414403626823570676801917247872685720549934148690967830439491741235294604200693332660317108877162791357681816528740526763480547350467628384319559904025650973928460859515003642146666039531941908343532376119043216976853391882782192794677213794822340283379373970154609986510626294068758111662960389841850306021216908370672015340684423441034271545132629152750907865299962274210357392536869866490454656111248300996120403786589990042537487840891896352076650069266890564108495802185383488597856963984747103005719423493651500608749117308775962137877689555808785496577171666810867280655011834474742551451180485842596127713658113677844607445161472593588669853201941624179143048746010658940596548140082042335777109483139101052753432587486187438382003519272307789671394949916865522090315088777327220734750222788037020629164430962053418128601755183125142699804746022732513174510235118352456221274683879872099646325034672318033850428422111885774042700443393216962677591243902023157929344985324764001789712638507449236694276612361233999489590430738701221067535249704184766913444644682262045475123388975221940277931742487895672742862384452253168147512405184439829502089150070513056151319085612034842226797910104273823535011886149932696101899334005925320568744922909866098109506920830052887722101977918995719052257454972351694786654343755882267744779768608934171533012874968807047434375861059285496596076943888694945406421369678304824364700066877645177677422137951478218438419161136306268287565177107175365445011908809280148930230376553805170434113090908017588489629305580001291019843489435958491525327555828682723080554619212993803257192993810645684983103899634727473824123803043787573078333584773352205878234047686891396928434041909983812483232240115475060779500206743261428645217941811984477844469910041957660057958076115810114339680930441597984667994848444362542032727411919213742616189074121600581052713501617616795449752401568752384171335375209134546870650528579414856203801415378826951355537432803470474518388098784624039999310298945223883658082520727112327284443237827293737727542841857302982648707081295617969400173521793629534653925068844788926479032950283463043761535839057743338202718070539432229958652520472374690913054760170866780012550550920302817547850004098519559472497930857267933095825069920978752313213440143182566266828533024949426431083219362559991901986348411834192932998127896431418910615154610780671890429017503997715652294151229241808453336133021097308575697734706771756270036296005829173248175687111455885894562220814030663940202907366757390114204245738423799017005424483654594405581911246436456379307214655126714164784564386029888968440160982876663068701138974126857325210842682111557862526913905820032394855617426491968903024679811703197083305241047995426984909901848933147929306013049366666361638780158060023423516732899751903857939887648537432333981353928515244337735388585319290779282858581972531871707825586046608628796453465995681068606686659950095739876798672010293694271428384344794741936775186057859484513052478789342507963093913163751900839191528142902234800961266754286068062428349786907937929809371056460713360818762167509196392118641509178099964902751578045358268739586870640876123688344915347087559298887283629868517061833354983658871354670924806946583029896111289576018523857169968531560820770787668851096904874369027470148406410325838289396026533772023974282772686517539269761749112887255183314827352186551437913694467807236221578743599389793009571471414695052804717799774382838154818544011457269332167315856106804584339621343671191482303115678156357567090469736261857115497441331440593323202396994440546820774239397400960051988743645859225717807903179071219216357606001820678682250382070754062246519379102091633381558559178407644734404958575485672728868539680548811853809476693237871765491123577049661217234916770379184677490052298147614547391926021355367191471774620921635103793314834236149677539489228534595936324688383148764620234995345337471942851227958207540788818156406577416357928948146557638853623366906377895376554831438383154223572078704224843791681378573147523837290867790548434774330246631127649507940841620259922183899030458375981626712236897335763254494197528020598244603753615115847836958214466757507198986037110541056681732919289427112608757307020463788367606754475554511843800069658676329991394882152506515615380469478728184871672559215566028969050303694622401774661171039576797286975204609823843541222080003991541556865832299571396350966922740882570130300583613562027823626998738483416456828902298144074455847132507470832619752255353126585254907646498863071845650614406755131247498110993006854746494748959059740839490439229218407460222707453808951306260601113377275137693911712797635154138967558153843087019346684919319609200450008551462574487457478733565227937391478230487497604807407761057963191736514803799262170157874199210812704488549101103975841634582568981786583579516072231071138401848698290819904140985109771549557643706133514011247141767755436712211345413272709995054309704226354006420953265597079085799404937561532416991190375888109288457533807740248185481330687660189373934484006177194707321496863637625428929073876460912108205199762145132409730668262996725958931055234055617163782300686291082107226479069811705645318108487602771589861076417725643891421793595612118142413762483306320391668650881385405660156642725871094280165512933212663347713082463447496683882618287094964339796509328847689043705418631124203561824630035279954348308928975080923842341520072692391792475457085466395197524986461933388204590589111287814731717388235144320619573050353516199999104374786123327733325243309982421047960913954375362613413841695774874944652042722733656352233490400431135918741870599044615203650771581652353281368516669565804860971959310959954342145454563362924141328002604808977852726390284667276198335479812611726228212895970274867165855527485702780137854699085562014313146991114582905131802081120123568931101083870678351242546460507450715714405896042416919321636407518902151011716526751326453703232265060070469722487353453487114108803588442251502316533118784623918499754895976106171862622094526900119720500193995176779880865536204546424683133515103022451148274077005281067660947162470716296952398055337010070126124078144483255698084893297563881490649480015226361585595751986585809891374949608638283229814749004229548975315833019760407247012579817469958932505258119857032269937130768088139450484140377174715053112176166687679647699411032625775484564702066195681545244656468691618826256571405449757219664785161623829300839298520579617203565120344982676213683305813925549199894385827205875432866305092192673197947320466922394746706858711695552797650071700398822757457468302216928120214121016057421864227085792573651382212195582385766669752069092770093778146565397979182501290028578620311928257045673806641867851875965792153540918013850325204380172304639673316516168734810394862231651401497455095229586203880928309723121405333068340282521603035288534736823381090974004506870518798516868408328220175669456097238199467171027536217702704937460720774569867436496034655197566459537740358764751552738040611939721551464674909170975017112127060840275232832341942591791545174573453069927309231961343315365571504840451273567763143401719279693963175475838702091333316674233461852167497991884574162601166343422220359687425899776475689305927552065722401567012393898861335098421620699659169729954316243066766578754815596282205865071426594111005714585245781634125177203994281535068136574112326502030394793013939685136547654745498992902138881305153974130138988833340242195615239366834672549362974713559827807472360838776497041702319608378119728408206275106072278525034319401068120360766444251400017342044140769948363113183020416852994365161123843028519198125072233429992752935313598513512603894314337885922588443558341869734409763508416331520703250266948758740813126060161602283266870228284846024746062111632054693583814594105526583894705119405040706560163782965652669623471736792270721046594302647368497186948834213020706709329257837140195151596059352755878623976210614124470533720498088404855255485801061337691397042584811847513902790035776251284329781139007365809759861122467783714088158781907866726667479153144050656419147083696615730696702896761737049170714694944449685515497111785056004608779853238283412414132663737808705463555186641687979691053025889909132735517924583202707042219086201411163897961979244460257258426307357579959187670062262843241531521823024077997698354774118921210037001632770057377844083601960766072324023246348918536682596847641975143940151039183505779679796693581925635251613195458479255670642356497723965151764256314548987267553431802182026655577582465352060510849994588769167470456988370822680412613178438609575346320872728648555330010185449653429143392423854878798832262099336683833799706859620728753422975242458472564935735384960687415027354068522563951072281751718827733721753781221024498992057680527963544071975822416423060459461686913224721246520873277404719150968782941239641175103970619997213729822082552333418936551503994058764234947468873334739596112409291632851498929160135695070349612750711976662271765787686491701657061457006754102435886227901908025327315413855896261131477150177802447202910869052025410582568187436879781461389460466068075266306526175751529066305457516788770538548645146788558259148469342366364973130300453062255014424206963614096835784444606619663807731622186351080945293130421321446764891870377008987420316781574410445410581812658447792780193880941341257105111946232258733103124039164231324626593277316200873363130778114011554208430467879393769499709083966157984496534928574838190194453366530244829818134979107252138371829806416965749179435636993819654232710041018557302424758927212338255448882795322735192686914937532049213274866177133007035827038824454607455438369450923493611821374129074548048028874463937501350616293178338896175564452102017437397550264554508107711810110079074631586038231829450785459282857021105948903995828938409113455615782364293529637280178510164375012196305034033413845158522849343890355513698824916550376978435852635660535696582904082213715391438648874135332703793798700249269741591416131258623392636057019933841135538577138529063183797437745487651102460413623130002799458216742868781386597080420875133025889920367410390569946026729125098362459728310419909618832905711876171882824346495614182619163882289963288118062111527576509754528160226886842039262135282856462850801071956221162373725389594542100478461260071858312473524196105479268352164914063742267327554901934418723035161996014004579621669400194427030630227556520140650794863868363869023125355160522379157382747642611103464803065123119528759563552902347370639500881514896167883179112913049650316043151458579602262177174780146627748945441053107666169092086946914636236629899084328890994690051649695065610134040830416237982111659697457255759514510941446863351147255359333619957045134590755575828597256232213071772029304428355817061855019497156495194404293571584992225382055780545309176703686938839818962639835367759713661933089359415624969501452483141885083048252814429871752977974661614745423222911258592344484310735178610157271625649839948989016275798228739783130367568407605352464144307539961175650764296571459506487629648503857980508476035463831466229842279347623281783412043426632438040618164475174886478953444608193084094295979077080638321846986165395707314313042734433263364361705384702226968561171945039095407002956962349187630738567216192297448376272330632653231724582514463154396608056497450148486225219341899828629317580220768413373780936985358204050834530681837195281371399129761674428558025744149546948466340749724237933128767898353223394509377845850391442486379686336974250505570718906861701829134321771041505735588427697681874113597970441391277128878811971849564951171164148058944094952252898531477158509695711320829831202302840634446332456709456752574664695060991076194224476433895732609431221358513290572719454121468859320043633269118082653902189464836510539670238797655582048912048755377362102523782219936614657679276410204244237462716115022064089505619058181293105104092166127966615664542791026190306231918574168954370790260325526280615502190542435120066567084827344618107876206219356676633909029343356748679375591815688739364504761660454986479060384179575259562702724318774742148100756321298743958166335551458930168177834111881914715718849442065943610246477547474114751605527395184919494271586389119952630437467201929339165440024207012119969563628915472415046553555837130092443147238467888823958687402914659200837721120840802632332423470373301689452849260798348288780318779014515554433870466229624142529006120378897035531646638921816626966298883992252586142859679845944127233555425892408162082984555928116716005280296337847798175560074028931974890970407547536238361613888252075455132890362049194820988998421784368347739603978450636453429556489510792851876654414543069759405956786951284172644898505336847748470490288063676766618433661314556669975407882280683687699413057453306711804881754794118177214337629244314038097125317698173646347367347610136299226711219975896772974817884616241436340413169490124002307814404260229404615733642408381455615272584675650520096881821706249737271086647658118046112228278205781310597197409677633723495022912163833691801507115657736157322767267226788535951886925881529912823743072370684682329864787836568916502308659567156289081035966550618148503728306182636677623576341045395369679605018154813432974968090919425801248558486641196663058812416059940253009457507432058871878350114962289804346068848224720491349509566506395827525739511469887217366923646085982076715347784253560911690094811273109124857018568402080473881943048064212743950220969384229137653185752765421133974577490064073905515332914187734197180934780349710443133542169748197935810246627728141559034811390030035543550772126092525595003449430451887162693177650749193013807490122242672566093236725479512849789989557659172628205543926211913026827989549487882637181257672027908970319632957460177658892442041052365989804144186286537481536644555491160918827141164834046689710960229197114716693743676085495622065496171308901044784492953600847834455722580066833997057744069970346184447363124285636235291540023146458681632054433476896654420375820638114356682416666628958021157326522624033560180684755109736940173427392394505955699907040416509640488799443365399345901010605036415245947094873022938744316526803846718813068818178938516766444240630825083292774367923987124793165888804315724818640068561496587381305185673591886304002561713938335844643138219281347321147881587353445378096180160790966321853153470166506282641164106025380426863890311901778824449831579035698080342858794577992840047778149986457148434181220887640702548486669509002384798128313715480153414182214668845078780803014349115005556651894664840983281624217477747633700378811631304344804492271233856674310704305763950999513951604836026699892282882799300358221823996068176000557876143545270202166013731503976219105269415057962784573783843872832354916643450009408508012759800300342413985087740184494868449848811326852832419488444762784608662799980707236448042047758074252694958754032877290358868243866065841723037544988012201058650613097865602975487186029983310722159687073013015874017812005265307934631528612218715994736671129991012267148315849143952425253452275671849642299960693147977255312347376839742836709465008768967116149693181305177230094338720172544358458921734241361410171055072073609536679801803150996291302771455882076925133195162853858751342854012928017879786502100699589874706172661110643733971018325488831112442695076451331273214623558913911446950516552413649803787650891318090686248134166492478980454503144965326627405458206318117536202193580941987374310477271705202402574755710329378516954145476679042536655041769993039577499400028074774963204391500051366204636211266634925803491969758409667207878634498614652035827127465495688862277271687131688748992240115202780501516375118938747704964093907673156646574840792450895777168805726120877043966858914945561785679127357488414929300671635278841659946844494436105337894926079827839711537550805574313788380435405092521781191159288999329568493297615011954338779515018215391499329051872695506010897643328806153502275316239623020025840280313087369389011634836748272500275848311338903151626242883083584903885503534727796287108627928619224637013429769832594636172640094100290572556440600259513770765244849022615193632094214100360382802275430854625100081036227749307179760171323535704176445253952206912203147518595946035745223682677190899809140829390465682325773650990843868295205267183172425321547875711126921046816080510610061417493289806090460210433181362676444999834873695056006322330406259702996020057243323480555423696194542805899116999031785267479058361313140804221796560521591464352406128119861750616920232751359998780851431704702390405156510887929046505715265147782057293207557173495346502428414954420719058780849452364891398641559516235552608891042433450102407405600400978459131311622721640941113183308606123933914716294026277719574869099469220498619354899697123996629636024581498060932344610365766225553063492021273430532149089132687679707570849913376129699851447222104798136567607956459422419035036668370473303364186883717231991721596592087224462529953431290117251038883463277927064543770779965987495420322632437662049714883540300493876825663922067500095961279354505217955902436525664013067417144300963166032301592951473827368493438026885516976347642591319304709323571511095075100151981520066300979674804022259839735014288057877772941172547341934953031836954008913356773432246284283148123826956359077544610565748858410089885924295761248643742307169450685854292479193451474968256680700251697792591935129132394745161933832583787016366115705421345199818838300353031476174006402756895384217310530979108661342968190816269265525008580159127545057519680612002241110695727269739315749412322784739041596342802916656039592946555809534376675388101523862102634742727456177809301801890249266378797034354166191938507125044146430830440814144056535313470638136382408516268557280049103793618863259277243842294708984741948177423840856694891721656641796855964360356567344432786286035502885343749559184173003162367159415615102615378816970872589295389591286325338624554978284180607493619040406342090095642280034363437636144382258398433695339877321935743178983997129812795893303998751311273248718014532171300548471449911667790177991073817319789804845295997896557128629391283276125893319574192298141175022916281287270289161771785229226136453338330885256558320970234039971636234516340011294402712056753741513674763560361900192066758901719919679490512840806461219495155023938808902862638699347784422419141674225092098396901117981371117681415079963821047817177767263837331237840621218527514954962788320526679955139710322374985497343396517838529111755527544239898236380255006995491045850331708115565848976458806478230710632470513529446486044122554265185895227224149545614142024364226665776915183784005487802480935000211086288912520288967132604940443615077071152742597554054771895349895600397318251859819136448157285462939644759662644483770104000688675799674984090191449762035724599326598831017375741798300785801014518611990660398151287346551873061583107967560854348445659441370774369811446964424213748784626679070515929402040614726862857977147081868332124759325532429705550450840519659621617588086626597457358019093023297656516783578371897826567955460183572869617682247837101664990954444347375105424765499890029078434242399054898644108866376514744127673816205797482930507601347101018214690315778754295604808479273242618657859929202433328022433923205147176444667287356978676141350775436480172064288979212769812989461875017618429453798595630549424407069949995833609900786516539154455152981256428088126545017558771832510229603540357936513727835554550830360013687799191830950522248623593999978230152878706727463229558544236370445306469029814168985800863147617189305910714690251565075914637822788434905501646820462551326129545783553504674090293528944292091778540347266382150180582128682276340879276583757691721846979568943495410254008701975466835315726668103391401213606548160706834856109760791387301923234361244044178639960163769874242745578261046196280207192263205334099760450493499212065952144264980998881360058423706737929255052350478440321873190019703034827076610571526671701045411846993398280079380581878164397536324635314494781129248745875716866132685282510231358596638664463899821152163098068143678574320268003884214114407283246445886893488045385569900245630098523684655935817441286849656769675765489968725177973471637283435618913573109426406536374453259692970543889166450282860973211123422760271748496887705340435063378648786732307520699426113242707198614825289674572721320172804491350474123353660369296358820522417950097913259229756953624372818430245783531704946418851384277282940159149949507686537447530756401625552472429656089659105372194326183329285211510567588139552630134407860666423613137249681319693038461730588844607339365370624340782826886197002131062013480761374241116855711153019022185974924120735238026913650008130432991690217859865855156083525002060723246399162362469059923686137638160142144286455195971981309070356686631104766114187791283264741730952345444682538285766401169957174478736208964584140706131147846674695090481051405567622506209474317384299897407552287216247783911726797705520959554913463341673969554427490758272077932857599897751996775831606162866520356064251920559320356437059643179817805840943601587908062928847991714025840575261895716782852613468528025117979691994642398420717444741462413732896285063620516676496182043905843342019621301007715467946363910664970273499708185593517390666424332405177360226325617509591991044891964628059108907930236426235496903971355025022031725289440653859014189425832921338973823015528555044596767558916269475821581201543923256516238379355660592402891001352423164599318861336243354898311466932497213046112353683482857664229708037006799023868134915444008178209707601987502161549560451221837122547119346324272594180163499706416621732470778131204275441111021288191420817555194923272506091891898965200512041117179042738003519603536906197900860656441585083861292437129975923801763012741181409857471015621597959729539758440952819513225307488186773837661091839787064480964229856907279101094306223697289550279567806004658948744485899457077587865177319857315021147567519580966552354671803062620870221872995501004832315760200230029578426750683829863946701040649793255904610298396594822667443901516802928811991919305179039177864073981628428488937000268580501951929974902747923280909032198475031927482553907255445147659794573603784047919770901944990303751932753379350594154109904622439580729576747061837098495463353685731233868600261589468505205971062254308682787694699322701490723465622281477264274419027982937389650514043782854993946524063202857523574971528608677733285912035852083439544633261339071880896524851659835024736503792481232469208758157344373666757776959949533251645376601812842566330927142045870220534009771338531193220084185933826767137765575272639262678215816098820826686061341960204607452315630925314850353061270337777540280468812979783674264946433928588555075373151422830479169349526035394966571404327985507154740332942163248379097282084863387191464828723204299751049300119640136506546742275867503181934144170936514224026124067381385873724771856520775745478420360715610119155292902550311210955675837916824065646688739332974888121861660637833010539825362907106853029195299203789734621206004970329450866135680788549006924543873791638994490720545664197326253623074656982609291253944038235376704405602871439420481057354241637672027115275975512045549122964234430056664433068553675010260786531972779981383554780723955204129552183465555518304299129404455405214287996237465558831875892828300039027925866883071625346133641743188084371403619108733328600560296034605636172203578125396689900068325721383866510243989405584893320531316827070598197356689531252551608215427958965158887485252652872358454641043069578475207688893962889170370420141180372497816961174892510688256970519269814139147271251925527604493718678040021834502437090406536601133443257865290296859214811257071087821874277227331982692235841233180095713716441336246291831951582788590442205671615983064724610435261685672062364169121588736901861529547247582398567351902104465925401045252844213048268825850456193206535344317735260736366908185758369004277061146519371131795259422301077279176320289900077334429973965101887551346836144112185846726998436104479748932563497606966448869804459690692414128732357645521988619177979772383829421829503038316552346697149732075156463050886776695157459793544453961484389248289653518659497549733929420773494188745159672179776508433661815969753203961170707287060291995932566312052949667052816575192854850609311424159669292848876263090851779653060663101090235930733835525525325412619808214747478859674055871384208541718101181173138260702903597088464707229977787933307804914304467814952567312564230363979190404113540048372121546238452778183413938739791178332304465927536612527289752036955438125566209360883546463190002869945247091816431620330637681755420565320607046186109973044035420922335098861561929513842963412044562264365134578785333307878281739541066948042827107019234771437669579939322670618509642560208581213453492026147387491790407306579057002838574796002894302583850666844636926631206003819370176448029648161121845429132715796764679727147175042771788631595855410998404878517774484748546822031482356513399972110602336708935535487519023326135190820611573757057880467654698355895701643291440302378442278302392365872824393679926257949280817014339368147726685152327323888618864036515269970933316905597074619149531752176846972408844888617427009770279006415874347173383874625811906180534146686180951227492362020562361531100983612363825569033687163286539187645353405880325272515761107152517804028151291845656665834221451394180260210202990079377971749172076782348783139825672401735031914562915796574123680274328710371711540710852493230117471074550564095546246596132579931849540573892749068103235134717201881209726025153751573429004994989941064660364476195514655202536940629254812699880168908408248503132813194302789100425689621948582951366255700674384666691149715043331540356631405283853132385000791938931626199047365327487827589444106503370988292591358438860260426238718963402906544716535916642256097405501787593398040982589462229179106339034111139317119608998721780284969464988957433399612140345482909694312108478441142496610602343034303277098141271765686357538695233112954363271919259628889826632687104319661904010711386908849972094974783106366125661530079927221324105293521827183415547746567565305919333774872809441409255739474737713698831116765182618651211232367208975967404791122102571364300229512389092085043180628693038709734856121911976964772912150516134200289137417299289542102941342003120370041499767969059411777022705989427715104559564972554858874092758933970070230942278496910741998065405249491405471576823882022341791612657579413461735984463968406830093197990041361130861929111261535160362740061843697898244333090851880561876852478948077100603932158014952671882464512472206616473393003901158022226127481557052485393045541393252940728422222670853831353452222933005886409976782811619753435684228981898295009448457761747230054037008859966804419807933382771244756834751379114565094402817148384197316788609086935080392323368501001827523192863356517791542016477168789237033207579315209960473295339715299731791718192722881190275480273866408788115420787076221637787741796386884686420292166608192963625279102634924503412621618924201450740485950838289797504604453793054554915860783486627547835592531121206580479109778412592890607713351256060056880457939670986642402306640407920393363440305635171573370521269789732540397021707935602242004605865464279957402176553009341506356750251933697915253662950042241507861833850679979486795096557327360532783591656320145456772133390282498419554240041513935305196411687097091779132912257186045610753004189199887395428968679757821110588741805082659059205648965580990703650211315700784399547378182344036641834039655142638883168381678067173128915538065881768283521360915848445091068501273733253883630186949540842214897436540855065534861560630492814964496245254815762196414027417933600085406008385056597295680265709746340778528066575801970098386378018162237624861525807857082789420157533680268331595491853268488428220096050708962919285634748761828833790092249582212462820738822730056157485172706331504076393545326207691860356091772697205597546445226435293255066264780906850981628729800012232117124899113180234702814024482108738135400424632980362965952875211125517007506174248183264505376067571253243119429619278571545200418260729685393840728110343723933637972495080255100687904466816986902100639897941929157911589098985505985954291625475073370393263559842320256589259875505593921395249135294824747126051273748464288317580868932435544330357566501877778713787437947487285966321391674316098800774595455977726457216336863011747604883074271977668811187051461871431874794340133793325765951650720188919302506906685452807672714176180384492011287017379706610565835861818248156252665214321562551506904449677750923713432847127017062726048960926690340245437334114624285455391519952603382340728022875313481709606996710696966331379843476669209670241509234520235834947441938227435572467632195607494769389514662931092445104199240496391295504988190887767459289939606834620892659395070445047759526647375682455269582141765141501718376987639665602588597163248068993695530966809806318842465251763994998840234273665475996936328247872814621284604925696526561482479446398286288851502737654003202039019210953159442258842151354558983028933841398401181568405228884800866260118318921235395538730710716992694860899422878541109054985889113113784698742888204502534335625302486739135756357155474361382544296681867177732917334565819491111361252636513917657283887392597694311917451392517968070033462288996146374208817361801921141601714396796299747911680163354120668578179489461360690234455253094324986276090771554201336157528379890787202291659556105218598085517427844007511296371279797058087210011346334944176071735141154324372909447323984899812327124565780503508989930475715489710301754635920355518321038353686874144646601965240791606446036185888608780769844827365051764278318902494821885737348323169969426201155470782599440016609579390967678708966784636918906733362072900110729788305049509014480035136672054284942223985580394282516102446795720062932223385380515050019043284554198929101879557701635067490627839405288431025001188054654595288664511556999158627880388723063524499954680922732927406041803570840508294882741340251513734535728487877740103057449512039133654976355004942648273680934283896539573516221781771342155643477298558547800179359729073315737649766304888227209214908943491346694578333095478622633955063956739510929292868803970875722554162210609983372688080776058622384615188403336614837017650582239401150689922293181657561936547842603097466056857348190473897704175193852377440113181559350610021037122872590653644680646881484916551412679535766408068683775522348232069580670597872877862818757279848548289710935335409068140042400912316832372609214951909124017110485919926794949996268696441436152730996028982137731030167853819563862033348886653989689620184870591242697055559863317404456695619102943251439128973006409092333413421331270516614423304421830349966875012457982452594297893060477205203060386895295009664164461469339014348350494920794222858015201327757485033972090499475846444204424893189920267194343784581710538806207825475083282975509875780157319418635652261563567368355651567965175040344096945873848859290204193199668488098659344481239723969871763593467980120322958699250294876945246045167950789649613176911295561805530023996707895888974312632032790020552004879171807692382393438456199892573552600131726532188328928549207329651968346458391424705159730374938294688244733693287724396403621755777931322474303528010105778480949097213355809352734615425135370127386206973204522836803689649464470825104607785357398356292535925074061347983795926412680163590653151882094339218854439249261582917866371776584801191714920212275780111711601822861146180654446756993927245409944617048532111614853293055736922070199932164332268170770427115341703199959318459060195991482699057474935520257933014359613924431719858570164187408847283594023136424536607982353303713806872164249676279623088655384169182451690519014753807222127148955567717332510541753265804157563831059621693189653663135326051961534406090983704166756077985231537811798244554100480625960330209848561272602594023666694225944500200702750748168431676232971691722751952566095737341812658076134737280501997800310391182038347243655494368450301551926754922491279240586519072189636979104401078955635285539166413267223315093033693291037241914066174260649092643850128349953733088496401116286979437075842800456937837349651616655517110478944296270852602730657893155876147144670546639651949618077382095529023615014490560508656367181349246825506988388946589214511649605387967286297679341147987705071352445007049588990824965824217098163674557386537356875314324033516745233920488892230261557743009436516787261706952275561680569313232461200946884750080916320932236280412822033674186268196950106774496359397110114391277238842001004409115943316261161645327320176310460745377733812780806013515801390971983164237292414381892550470078481839158493531073266574791508365373016995654958240527354254508943931485501493695798941681557881151878433150601405649777729582978739533987133430352160685821792664432510276146839365953081742165622591599303815119581002554084386018853310759128444652086745536875402606722089177652365162729961852080284101402226379072965313295378546573446121894300667475141859843403612502859853334728749892013909205174568873324372443853546578762131795740571249916719068296164346903895614911678886165614919203066919283593305298327729063347649657812420825322542880125567826981711385041646098387790392055455098218713903728981565009721078289134667457515445246692223703982508145445552580510464031327007920900049825455488326775679238536983382733083305024090127398205143195147517449886279212557262909245583681226347885283181348002874235376802248211827027453749748988513277173038846480431027477279299580798153985932508035618305698287072950041312533511382052206109268607529858807500641283616907399090022284222544074360490220740917748200261262871154310261134562916587464606579134235696532708758735647148545269486480611777462775785274206688373650941406409284304254504530448071777398372289400693736748211411771883034333927680842525208084818835921532921046683994728403768476808351331672289015838298412828949109170921915759409544006404197367765350332374878124575034240668886281333819167371684190065457746007563991054083994810339708218278795506337276645251901721995672294478661556518696970951489134507625037759550878561572964419229023483616668570706279020021090719536018734434158982971915236331320903677114782838114990522716598824376188217352560677520434881451464042286603086680030564196969178587614965099613959697793492759876042813861785224854319974945412804997995799864414445038458993914277751373442181199933460045506994552545367146328242243560661362864520567015134065058883400395919996472391484068622761718298649435643377131322349211198934969204669584138602683504869843445338446156907622447785521546795063850358665128512371622270839449437817380769615455666951404496411806553202963771654260969191623551618685785124937507724899085878898618146588936749644037209073095582844072573738015111244415095078847497371722821137087178694011093660950862769214642380493877003666101540378909136853216583789372054337709671539509057697439894662806226108550833133164067738536557374858129280065346862142693378931256770611777138510403562011003436356637440485187658481325889310382520142991660104149186807319695747078782882804269218564539168388510476665951597397081307062223132326394495476542201026255386136411764055889413889902100483826309330748109915165288086041475859247247379775561353425630132190989502088542544157780192064103850916652751511823578201053411137159872708597728275914013514754697958553779992426080607809869307500400800356748520402837958726093209217195463421262106779563344226194004207969530737092225185423776629680610444656053594587662113736146778592085356188217541721006620797448272715309129681455904583633624001666691765767602484177515166663964522167445210060061771456605957684439719949141771132234666677504588417346480814455134399381115549354226735428868598113806027573790708487205271175485691006869429942743441489157510348991978817649939699552826706040430113510745593541626045008587883218465057844523446582072548293511422555591872347545785619865452581412515676276425807442125691137330025990227439387816847892852806251686182629021945077370170231543013131937815514855939999337250507541580118384242634485015939785134525777550733509903520276282794436882659868080408551021274598121748365209592063509565684491022783505651545068284023107600750951436847444667716799294155934451015058818844153674598200477714936228132879606930668303181916135219457622435286195004741448804131838879458994460429916400846244295797734226004809503074000484724516645707735255099017902991512128572767313306605392187365587743966719538903629182870583389625651200177247648177088581570119216754143473654952795788900213609938577101603832219862119951630409217345740832674686585394268590926173810537101569674581732617416202308945624588009218736029024754826174681157343421014959535560803639235977585960221352278995244120048340407395888133808432517969308034246430348427798882165792674049366764936886566337394076296539748806446315480365398152758046370950794995360540795263877157865213131927863379231267746785227260561061855060488669676302957021183816223323930807864946504890483348390375406550343345647574756353230422893408598693516942400863397461636050537461601936290042704763768082902304845141532202683461613934432706092269593648952529961919059332838153334700596004327064674009629632253341495861676687465799396055540608408576484942486962109020832208579839591646821092217922075339948825401751117316259316691911747693190117115767590056821769767634310613275528422807631531751893236360068306267639031274034226479105831264533039182493091647136352803196997496467102402377825783169326479357094492860248728521902530705375631215026054501297507560393487906751397993115728557621747546237464529878785422879183925463664620576029513779280697730160792347484994821435471698524794984613496109651206843503358428225794373714301048961405602191892717063540864824700575106755838118127173529402489988625467100191651973231419469669532200429705196600702967499457716378848764724399572831324387863800527296384341894574176890416252456858851036913640510813154240655629338026187860825857803004234748547453496621548500251276412447243097442518322274904465098568916474855702624836679542264579882951002455255850936679214997660251246500111248946617012018090975361639328258792164703057665398686084991039051456316533215018654513050196660351476148091675697116847947970221821346393521309319898894478121336814194403165843151083366184476450155584688784251750167121336006585512495442720597243227346239291347191124264306297844129502335877668752770230311358517648589898401458624041254829785081283534090660747158414158139410796986624353552350102358594904236015228602687013476149250035958941981931056485810273930316584595437378974496421500245136861210378429764072245351483636412725800732028497818798109799401987784109272451142887849406532381699130156968268413002069869398898037479960756635533142422758651271975927766932859668515771880527800526804099008007907107953483793292926267992693497186405074748297739679827650400089093336911485818581714326297926865148400522977163493910665171162345001590177241514495704625415355789276353176807564153934760407924163558354868068298544225489898366695461306462829804151954375313844288115774218896266043069331071154708964342185594357550566232867885571334849209174191866807237444480306977833144212675111370403225778738085422475283790742073753218680981037443223067652045362877619862411839576021034718115010319659797500387244410297705065157747417789568145793061128542781155996440550302927281682306818837298809081849052281805743948781838022573278040555560234461132760071501077564018373731824597649948462279217970051477351196871508600075051812707276381040509938027356672070751566152391462322068455616860827826593461347112354381627607067917553099089821005944157359051998426088700685162410346210839839309915475949547972861244992275230824922328742475167147344176941319443009284506045772844344701265841796076378065630610996371985697772516323343924527838373563284848441284186016897514258889938032019089874661023590858054893536240818826116129169507335703068952971015479159830742979061993883702975550778989310341401916917609267355958176048574278643695947069779661884479987904065478386872080332230406677116402369956166465015963579328695174073412788886101424023420120255115427562766423085934824567165901459777178455022839798666005448455170953490168191965912725371041575467177262230471897753125502233170566848942812721545758568923496461013008235143396582132736817762205948878120344247680706170978000817917514915315485255557182829385124251317799256297646092669292773155993810818912650802443141256567355133257131433673325669149986809347082382625181770292100049250555585813450578654092807228852923919361784880415200960836933898453971368257790426871296495694304132460053476786578793959200116305362023038378375484575934132817783455937199740967436349985027615890304887955617273249004048688305738236887774885570573886277863713803982596212384396869163409304658665995192353913826249907515134904170246190991019973322661174597171610391860837830156842680570223204893257002557475656294855561617997079298018927836951383342134352001647798523152567079261426895110429422221292595441540019747709480720969325271050120386040114678457256975052153028733108029159088908476825980062198334431395981925568546034884511480504954987909882913890622778390032864433882196006804781544771972142118855310661293158346156685246691846815221634684674292559528161517742962794499198062302332006582551269240767288128700974019084775782061308841749366737912818561425837802036659770738028157340119928782780940857070455407804621057226895129746484770121532103193196116830505261365662977725690066239396275809026657598333388691092448149414874025000349927366624097697290195034418326233809858429123199351143661800860451563819221299179201864274195503987151620486042610418682767461860640366204400488257732109350698731427967244643116186729238048321273474243151705112396840189353987043749797689713604368744587382189231085432159122834927495686241552693315320801135090524513580243198915385760907648935378173763280886993563640829074803621400880285814117245667178608120418772106263729722373904289228851210774010430951077513742368390152931654612982938485230406710837672847530090436283035302181199846903149509887617165021368977149185056509243928443436832227329866707834968271714045131943473196650779348456339397144467582439345407734351580930985841809531385949173962776910438146421809726106355125404945499258465793743864977902963281608192039803750430164405073355698201410340166986797788475002655385173794219674140688892406143701793881901574955568800557980390578915844299935382746494220148579032586016843182553908489989274240139738381802905286922919066668973357450373686139953933424134729927268271965873806641824888297934750990325074701743112055660127260729310596951984322531513134287362694513270440217085855365274737322163965275548209584951019343158518564918665936690745659294928997752461001397944856837699885667979027521426642235153376570335045951855002025494229197008837370542648567648768102216723558461161401728393059132897146410361182804830017330282471094690346153305610267726238018151041196282550888167241831567758976088047937752576201763768511356875406126387777527274698018620904768657019124630603094010417579443558596749163570362134398750815031040626066766146724322073975571329082759291988396296069208550758187761426807694723306841829386953969375488193587873728869181923025009542145036932839161344729443835975570699634573710599555820619333176025908054362999474866985097059091474605988347978493762450117184731595035824289582195794825774497684538609961129959799368168711085355836497112091264499331633665148998677019899747196181203483198759260805834121008408878538940495556134089244155168414748200044888090143458496784546534464794704887564976454192961214858052604560128673403161649464010295992577861387259230423533708397816383078516490503036603135701041205006492815355102194805552120344933850494327948084410395890674378293231794732468100226365806349893123584377981529122183642308262569606739221215040012034673546660469815087137840466406675578181775984983670425616952782498367017390210256937065124728070756605270722062109346376096011653198672857624903820812828103817356971932640894999273340418861609376905052091077102380604618050654887853991280087777912457697654948810136360427706228952419741257542656150517664710920825143846284565971350750770469063029689400728092826036784511517787150322033073344790174203752012992318656450889068871848448009057820819567065085954570911599440190452056128717924698766375243873476347673054903432180345362644457259832624832025676979729389743009030477667826596845355149977830549637198776913141273080789982851669468964572750699123988127661723387320639675594468946040054464020809711051496382774984907030447063834585111364365030707864973566439642843872842716318180311096536608539571816502552882292796800077574858344391202562193934630359105439185766961781982252200986478215695414795406074539348648750011846305447883141820620230530587220086525957315757104229321944430785542569771540457737225432114346022918567166867103041264069289111883609324720183070413786219287172246633332579299859005710501027097802032469533864146301268337089154770572377754350959307107302792778063054270804335177420355157930352754964031101414817518784077632683414709919792166230407500460117361945827499922805399487099437598296839654639733174315422551274587507938301501372947340481545710109403928280950403332647541930056015205482553639396078830810215859420003429635950065028234178066694393737180449176725770416001465011539102777770192520190010487362713724127576810845300438082795077854312351458940153504529273466674869060714131322690524076831940305096903618335689741045558059312352856899943664864645358899919484178925246590131895027173752324310565037417050608222504050379912329102616270497301127923933352916198696041561776963369780734488020816842580910226912824422731386076542239780797700012944765233621360752264993308474287033772486946025236135181603710371152636982071847254863898610443013249136707071506221902594249298270733106662485525536917734887695801597740426292400480220881239409498702920919226132925923017299383664869118722680879529768065648841346478753738848482105553994621168159345775704865968273132993152005204851263057026298718850504562017220940769823558739167950238665792226871892474690962020673407052090045277454848325961152319564555918975294869455982626666262435923606777860189655106079483252334498227271536326056547299752413472717369875201023142368230956805708055819523485650997756769712804433541747855667610200691597961872408529917169954222721751250543040517747025853350261864043751931602859481133904687897091741419706998179774642340105815475456462589993889972386405178857230887265797134149571736297587503304199759342067377999960828883248556201070171148932526024640385692743397751938622177011564382240186723230503870136275624245513957103619281139853066716334732068736196481672725848303119310149270482494334888583811952338786447979946572904305572974747960171081521762292758092413006262520910157127102287554539685608850942550250795322094056814094472533353480037553788911906884081399777567857442773949703538996676671808681330848216179136070298650827758128840606782772153750702327553953444237738686249985217925166770932514925660788385316651030198383325348975373072666900245540301521970179516621744133203598334733456795592449760661371482856406228364944654552483010871324112051998577969214840181156929622866353501497296426636430624244451113416827304049158667560214155916521517619397636942493786247432184368663970032621444731276419851289067792033995715833446550815402689470924828684632774472059314875712638992524947119544556677695209695628245911695642007752057925525495196938131422123369915226752211409430144398070877445726450315034688770335114130118867046028938741784192039922494579261148142642671175290620852108637685229808879747642382675902221915147627319313182869279851872262306354284733000727349433004280047962632130570751639136195810787660913087407493087559611537968288081194903265671674516439679940319459209702687169520768699511492813863961029396261575878746515193637391886330684472962767925111173890319547970086649304384196727948313838427438334632451776338131380231828630378584127209917016184776029373050898916305602715376753309670558356797402071339117946760331733381929686589899797246188185648091968146705454239066748123252286012152411018273407726045770842679723493290627153252557682283355385782778435821195153495351764051527226236687400588832267350116404472631390413547122787728546213939517020767385149386827463922062679031121668078902351348237726329025837551000924953650180391213423609769765127390602142313512266232175326570169412374263546876967638836633686898907326185837762699518577950003228254134983896178771236675688328911288133020841921310660523132367847083521047526064095288676764511938532682635593521027463879789895228739155943579355965772063055108581648903162385073759138662682201957772233070235095000407178391486205170864828838326458971534167889099340452742372534676898490958499878839847360362529839209025790720654346206373627741249045008139360124132042085348718219896527618013046696498806668335306235409642004022474396639964724233953301441008606029779602633345619800212664298203009151367930805883846087194546555248661921090913418804832605368465849956015265715607359576169360749165195275228568577013204876085836826772059889895234091135261143880310874218690598532915155265423582280507460047631314754888553739378559961835209110144482735074866486266093545376261741473889592524209736413017120700490390521044076614718149036012835614830731270187876940776632800919885185931465815302215980221401304650252066783861490019009603019188639833385849341478888334103305795967062796783031043879782009338630966432065714483773863386793848661423047752673698777473436637476449042857333978143660042086685366861329050747158894223267631863389981109025876083979472917467572945300299671289455291303825005426924193451709966226578911885052068337567617471376628987831858836543403234105781636423628857051881925826386637624813653663685110123409511827437188150521748180331406919440124328917735982191182106629031299178185446000956106282983841270606969000633701281302377452958115657398578694995405943911187703320076690840138772309687942480260395312353494182001726516224779829494667309759738033031253876386655789451453671399969752120267784249122992388062721708502118442541824605169824857207580995113043273178152183765377530956935268270092927864455470228942601629249649551280856174234847637328577570346138195718955885542079662975562308944580117677631164483927465389109596978675054975694094797543258139843699193520208418274722187119342618601979142856215540469780878699888970703197410913475377494564648714902819319938118877839651595338158633000738872342216128902603214495889041671251829949245814279208309946605109643929760486336254720195640440658707115268154064283540024116453155671426042150582043956772453510650628648346460219331307031050742585491659217514558414855253007467839084221794025419809163782035612640022206373118781585072217930882462095699400216067021306542950495686057227765893271191977534660826730393608744270498791465919036906570518229922731281181351675684637613312397087271982034889616589538405700694783168863305944134479935322324043800193181741514818672798171706575404041952430748302666803765063284272058357658593678172453420603581906842904918895954056468794161421299039182377503998631191851539611011811385482918777008296504048189330551970701013893424719940996157770208044533558883431659924272449094223450525185622412451595728567576484786990555259256792095918656006593717656521298267973252099474648571523446501062496116275072236396821427653243181439182778463076164571605966812206542348770761254593082584433273817671755214012084598004022439193179326823944423169618966517320410073906633714684659740212500301309009363091775673283994942560479767073261256277181381662996903788746658995637343538591538109855240546264565038639730159242810585547277907376350987120337262203527567106759265641157731222698961567318096665655943552865664532680476803976982702567216506766525745749392324062003091076834542871426533884409844687200785154914853550989105315776490010830833827641925666810756042733034149614615967925793850223565021726256616131086259576897795167641417866003753626242992042463858580450818189941143090228798970580092335569861907030364954463899303044663066452181488850188754799382357313193222217129006155327493327991532426000442552111253766165678507218913687396154546741450060189662013649436971366489499984998108769872466222142239022000522406376897487104599266807430220062160630848673109874665493681287320119191342803584479108242890720190112388859552583016850161155929420978888205166641748606060457484853058155577413052311380210606435492925814653711191202323811940185129390531879912622409060771121053930283639751359548355412132357348471894685363258024186492789530106842045273060794375376897815905110576524705814196804445596533664164774397595414978396087414807985550149859308399406251798803720564356186754388151104559371395209740678899217078850115295176385543675731369317550628162961523061715717083126354660879579889843860912077272540260358967381030767333727207303514633944264699563607875119629636739872761206682829984347308259297522770639324372849164028721130240054609076747820793489591406960786252069002593106490518946346479080467710163919819546245145598051445525299394110164276889949228290070415514508746367592590490734515856869853973829687059321962198681756746803502393765634984503387450538624384983676883410181155052070062379595530887647040394135142484749110080673170030954898323288867771616067592090580169483155609427648085663688116548783152666788242003897690805194756558782551139349138063604591385054855038783141529186222074174419858551694732223202939002285084759292552960687099894313938658018672826537298051636840524270914702592396018339230942874261931216501561641304521232588792018273625976417405197775686749049391041576188893541925681441406927004214937404223537466608115043330119525698816942485086502254321063142015339720654113865310585003396446238909342790835695146072875734830563988476540260632616036377023869050260223497092072845626098354680016889640523771388398709491583451763192163302754347856840494550361303919572757952707726823645112131095423252684433771637542862842198081549530612136047276987230883435120064310998460319670213585243864454728766613902084555500313557493709267856048654718287355180634867237495666964984376291944205493731968645350153661481112332040556858495095108042475796078654852582097892520152714112311184932861496051631883093613559072494452442909561530379038997139564972758532117732622900810664120788011094025229789351678365616498738846118486918575971898842067347560741716413376037320849239365253963516477477432959649559217698082255922835228141203682392671672143358148512680050475760016139838933571128335189675209044948878446494711984781469067192953192380054971537595084750473743176668501832454561140837380932605012870117384903694599611222962123194767946215932819279364887154529086607630493276509106579734134373913579752007560425243014783163320793113222539851674653343793808403849233733845825838684066842091631308073167210629040336191660006364347614437985231135988245424380372163401071229114853624764604904690401125417831847301778016591655174945879923007994905875745084776572375667282845530375856331622061479923041601262483462484192591079020142351650654007759664029147887759268371605847070126718162986390777757098743200474492212306632978420718736224496930468032521765477969708398828554607460850935279658988405459541542223236200587237414372742996302091627016477016503560038184769949152696707279734341509462592115000068303442625100569924728995913662877027010353987531882477459601115554747259121918648531584711806672415058936046942687454146326938472399702002813699137813642180221683819988217278872785348327986522333197848030063027365172087883175913479087361465866565369779216690910802202524143087099633802563740351831066581594065471944960049995102715638954219539922033978685200293578318968711308588267137740122873856480032676042921297087003864664096928858725022791242746666754082122719157099598229461596966697487857812530085953108406334666858760977864240785348231430219744210449873559233303826578863878477929244616180692457906391219113928607883015836762803582923208727297001094562362999564272437781717165309146458512480708524271852362098432828864300986599263232909710433637765762589069366413772421614933635831557532369435477502004818752059861359016130338982613878566208794497768866533009648140599574978530886306720446223384555034348670453947827817680032494916940116053949859438552240947514439170699988721714227425470797504386410677139574317437193375130231717776253540285632130623994956399314842718619383482949434721751614312925614233893097445951697259796619817508207378778350233272762648802134295840892531755948616105801118888648164039169331408012679510700858644065165780379317300579793248363344733417606803298587088073933960465837459767841281393167152607135743701179871461532014434515714835076462318961072753345503142245041871461570355378770654062478543421328484227695203370630533970310508775202133331705277227398713159437428148520662251126632491568073999584331126888445442378750802810723022342334583376265630334662078324653623832464979160480418775831954537097116797223977077091577795630925548405507339292057459688982273734694525119713079477156443832024637652325608724443633760131309524131165230433093656685512214001316709527459790205667672531151885930178584161007224916003690406724908419018452418044371111370905619537365545361688038752253951103422305168322164362036299436252421297531975273828794153990595200404901575475880958933468981821126052087658782533645842011071900989852524979917473654811372100771991481034346965300733594281727019631244924727016705425540487816536265905768211791065982310319981468080425790633327277145224692903827218354659348230775651210047522901359945166609587594289266636045913351163201052142133458253014581090888946941041031146778212548463251897003938204379181378136848756163825151239304449670189226248868944640957721416079722584528652895719568522075963736980880889132608435466925607790764133259846029283427356871119630164272741211543263632659875070821424663628274884381250340780309818469288558151471710188830766946366832900303170543065777209260168892051387789738156531473912738626861039653614457051001172024444105496914214915323609108715244637967148890931534045776243368546178219106469021439325676864247123238107576375494943826453215309414486298125384959538593829839910540777468187671728604762446729912966988376433031909874825331733723631899855929395867911701487117956383735134998663143330062367576879189500417906311323917810342971838583582633504723986594217287413821888860352366816055336944281187401003037521426955130643900710624838897448294157651043491651633667272548620999670898925572375724664477516872618340150316078367619047559182689939667610232671494516710922523842476969369498468074138756413923074693889771246394408606546477537806655952897839458835797184935488038614034257870732093330378236090458184440882882035277671872103307689258746751144553599209763290338561444425247493580720617308603835940572840635705299847777215410719391642068289811494849280064502495801513836391745130454522861509353228279982693429390125337431791716121585321831877053305981261094264458521553288403338313595559422922174667912942700008011005665508428092440158401043721365264845664348513069747824787040291106158853105592312395376349037359322195563051339596485009357155236620237925921854487265582408559398304584128841450539981733759696628221856100775254892211902115348204175402955854766412301668620617158349010101699507540512537143473136118840952342595191626928994884872197110741053303196685625306437998430342462287880080401837387776364977146402993684882117603374699249170504713340309643602204130894905653203170780364626703803428615864844526341521824914952224804740639332242824898162573955723882570102272747411674251212261454735763674586569217575251223042154363675814908693084694711131571486371102924102343199824101280240739866586594687314536358364197698293281594493492479265232649488213985784620267592165230826761705800810732281451436384890145263008909912753574896345816211384436216014927565992588665337611037913422585746393090948866928509088430446807968485753028951371415953470411487767332113779235249918594551924925732993478072492494262919157469687472265593498200975404795109989001708870320210382464635024730253063417773833156823956853467828385421621489573312630471109544949815325788521603977733074351397171198333435155206986039378888709724199348809308246701108868755892624515579471657101714479988434504101982557573656344791942922420964477163875596261781445668857986386748299216011877982053571264495381418397908356488244312560247091996174579500180531335477074991184381475977886437343460604007286475524384511931674798249930468516113312006941941895178631619969391891609935531658670275390082428855322331696746152236736552060738454625523513593101980501542368065179452601825345540587387508785480902027837313986464513477866266254137144875803486637522598361895688193484942631363296111546821845717932477523001834570059892500852681102849839680187320151815864401000673798152227853850125209090978264385938551161652843818901137912699556230916505224802186032335704404590826786000182384187105008725895760339796960224957455266710666702665947134865970164131835900891692559033179079116245381942092942456050978710689812922408570641945308468340755656828553602997320227840167715051029122361773987011228558861482209058375409599198334048540696833795832153417015724474833259570729345762332387309314916658134034831048746059872124651061802688537696295532355439165188596254399820554645910280498993511155795580016878936126692470925014108100568748458171015438335592434827875878998368149373913457431653661727708754556941628901890080691315461774710967248026490985661198122430889428495111382639722316724219256500711121421614671306421348462464211555332023598505009750846553614199199635843042353714775745635360324077698214358684743980330296386485211548511697458110419682638644850382877638929015664340729738208878335063339491670055398065675610218154158137851401956944703914691164125752369397174711175128860794025470149855221301362042765584312576525030788679376498644608411860501800012221042932166398645647056869464020072976231835375659570726877908505489857467078509044249588898481998233344830814714596701089913332198219544010021833515144174739619146195592706919936913967836277749959628125602528996322913280722900121662991543504922484150856237568831051362229000576214052184938987226566581606252811783606044934170899289772231558972189155626942420878836673370134824832537645819864241769862796367236682218324995943255600274437147848974089287290151045060944451808253402794507777981223912561151196237204259933107429677491888712672220726745874196540969521284472560608013651786190545856469871916381968487811787162171529471174366377527600480885050834053739237970428751473728206203538779635286691259585012317017585030180072449161509535682954457202180165235321776503698208994167756171374564897386553318667057399742552458400052833440864405662289924616309481106061830542439258705239057297754650520873091210975421799042790369105209253322404670706536044063223209054024544015698014085507829183873315651912012017800901659204865732552427176942611832673462536710690910250823279653640336191653345570004708852372991556783741734224828529563963915251387513739819419775147015577621795593183417194668503408561898789315878745556141404990535443294209751214265461100318227801008801361973992529599591931721132024127089237691500223759209186421044577813556035905016761156970274146470120215360497545453168092952208080437026634888001663391346126029999110170510033578910539807913648563664840554053171951727074038307592613134907802834888820766570778246511140879401304424409115053837987323130383012424320205572388041520386901960551983325204736397235880846932084338605212644594682685728849408383071222586008180645719611847291215699200508758065647926823125822654357731020868919827452423338538094452400345267975938611071064771327986573407912974272121747966069613096947295043075701811385263928044903983138439921435765272557389776234814839051404026486121456980007271569252109497760991944877626057762568784171619389946584293821053325653364654835143256860582965002520525489839703789844909262546368270550190989766931812211095343420868334494853763249262645775196685245331842647166788245041394597216484290924680474927919702195314528398785798261200471173153267373721607406828226978644092357543693867283281509238496070740039070798404998500036166982520931529190120164687604515902054856435883976782310893715091403842456949297506352066861945611768819371440423534017301973952995164449259518020294022896982873573543517063110314846097625926017400423275299803319473820463148195984717544475187194981078942893121347054290769286977879289872185715435758800267178120312502281008902770014499056973425640804609321293893552936303876610111053680102005318695474904317833804077619357605387219422624781392605566944486281740227039903883118290324459156329143260742464430487805082002590225866477537627613249785104022939739391800483938086102748987832255799978441723635728737943791745773340273541179071166747943248927102659040435947244666553436730330749526840323004158842774112216714026261630974130670163048503041637925509385027332730727098574070005266195437052758963363874986380920448091033187007531012762382076966594582596691306534148135249164463601246199415500305116587694665484207389104968215818431204244496137822909362476108035642194639547447918074904076578222466854667979530769803739436955276765500541855425496916497377998070476553712755967509951525942212093660290227770518296589702141474706651694440552313739502827707332803272421171972390790452577795627433028823902661383712718761533333907798272054932608494731388327346541074382844155090859340880175318376500137459736396428395369349558344849996207434559922607449100693040279558385024255198574579571290842470081474764412587383871293791819194810824169704233567548487247895578176184215872810832496069162096505752739218476650361592151754853559467348975864287409579511556834223138381357287756610018170375497051359892440799725490628506348616181509810316895353583275387759266017358835110283489419331412873275195515182180496347946616559690741351865050596967692401954308476632236580872568805237430713241210296210850959036515709724058381409705213778381495393604086556672153696963215042161203007366413813616331599352871971438518024400192415258696495282797926887296230982389529373637001731919175093846818554443002228813997311688865319304789226639299584694400223599192908747200179815938690340681537021241881127765935205529093643415178484220280241251745701743606359890072953097906330039428577346823936508199742587005864164865870487275371836668531262286572542520910328103234496615381206411035158014467279124924263268579084335314013817731005134040796727094208742403869251325692680604079390564994878796601572851398506532079529928339790900972440210027478425741465769635293103738099099261018611104407185295214092847565744470517276235797808093783731543264809303383151322105065548557422757580393575652978622439978759241351157615114543608488781421866683053844440687047176402956912901782380689798599297204463916873076913457203699098887744929578978609451797104770031112718500991813873484589140941574326564053396979752056791128824356144631713784765429253909053491018870895855933336306424810747369214036153574265545281376207338274878762751345330155712981065718603863908459039344518457259226189036623108953905506395472354615656632929130064987595979215180887086356925695873121975345512530241348938645241785541030688606572300292543949640471425358157774505681814547331956866704638132795597400438124634149016139625136999128977339787280920434003639619156401920692136842447601024358314843150808141146544750041742184281607970079426328425196907865230776974685070922409855452924214817854574695098820947012743390228825460164867533559600529440074666895269785766771376012773390909193004536148508399903372411068701363806140516703143044051373811526346261352979351764131341085297634593149626560111953894850703536990216259551270495729416822337411267372308026731228392751624380490813456267206767612827746291737545359696734101012531086537742542912073736459109931400278606642601357499197088350537246711760558646835871226144925833538454024961348938169314021916253203026060658790519998842315876528389488581272010452975365730155063497710548656729611693373585607155354586730871954466273354963739203856365846790196706778329110183769180280422846315563928330189507928343874343800376032342713861962408370500572767978472049483088687591385627973314088914173788584766290291808402352323624941769068448380200978494791805079920234576514164702326318876370080304442020489177004214740998988899120048441900360873602919559104143494598157838218585661566998045495764332371748414392130489070369923231097618608126412179674401728222314023642117373081476644025218981810446139103134674900134510512131742559301225456797651527741725073594954487375512541013962999614018202937119185987158867174408875833955180111249319147293473481094311938737806637653200730030862563104605769335087822036499344469266290339003329314283324554293456438784886858908245011513965770251022428277617605350062053025095234258681767410442379708844033837572245927613678274504064172824786056162011356968041838501558768560269111983729343836736578497425076482816829809533206034727436972839314572654361180179398816100959293359147741659126988224549770812080886425545961533082044000102594022861379826898658079702123667118137358762054061670852690787900062703841606683769469890057544812222050213354064108509784334623682147310531501389839896472020583141201201525237419913129095254184877465400544607386296407779216162903647122290006942991823203633001185175161980055191343633537440581744925300068167234057115874044626731845740843660696876094750241437368117443270089965241486700629084259709981101433570920989499974712457515135052243668783866516066840625479487772186139091193950840730333564045680041528658844284244292378105958189475720383841459712036683221384609567675854055636167234718178752463585557243711728895310138858453347188889156480879346182794591641454371346815167412111803476650412790981771711399228213965156586247982631459199093386634222487146461351370817590362498261264220023572856523600559170695993388390932130533616155897056382132403711211799393571427708077042698957107456244711924255884333668336083089927419475523132860068061093049139890446666983124104284602471868592009433614761425302444370679604279056283759865087126077048563285169759922151592627436533770325725976815414496342975454391474422696161469042358723112705722013453667614934447827832098168939602620573798871238949768321120299200546436328620514295928373434866736232234815392570178475344048227792522109106745385159977079140028800340018602487359802000990039906789696365928714860096009988216152841813859222846269239326458130581705595955354664669529471086627173835851874319302953790507904123338992259959270419833663228759164315670588635071851900630177771846997407432082491764073922026753013989380653150028339052374877467647401444019964305513451620152123970609681181909847948127430414491970363407897337879920623437014248402158002147196875654501093916780383798878291183741804961349918736251084562124235482102180143916529466972705966413662248228141304391177668972519701109573789431483704968502846199591939930558697367949248641587285018897034934682973028724092818295275390970763478899305324985160007450741870349193934267766277188439182014374697619154321500070367984042238048032448037524988517962048431887396557904680721751290289512301821796630978173272087286770066638939575360096494305778468246137326024127800175901254732669615336400905142961898640161452160170822154248033735856736915067801265612134901999962449852839412999859898074553194100619711848813438445267638526557177626007829179088917357597353978824478941707320347209906692658763878664483864043761126679973441144702059763376263233623501833291787176927795756811704236740965014110676707349539943197086904045967535786027870370642413607941104911300426268933351038618377010244586183824801258008128389081682135757584652258051001402063035797819388560102748145101398387540376605262562094282560228572104002848538260536423053423298286692702880316629455036161458308900767819007071694391608910029797746833113872791688237318702453874444548596687013002674529223103184914101000662486920572282909750255850463770182737214163338117423067816163420964248544943592198490425756294745214879345611418121486485121027269161639284438582955958104890591041206211414104220263673566073475867736210921292708172229313920879142547316541867923865054985693769148319357391812251866227530117199290393241185948223253032017914219923414645483933891557600386451888193462339630503657129837299234806218558539767799864013438256998320941087973402597680585852113593633931125578559566063562953102944198377762962866787915869090820387298653261275507161672703195699214443759648146338035367323038016798279097302700912950119640105857062415378087040183353115051693564411474014098928016382637367581131259702927498821305486154024037850430579950590444899897117542464665341589508194331986459297378522070293943850716039596394728595225586041712893010672743231862106858211111906458978643992280877889696019972546321696620922166943437308470210660713895032762820504019129641598942647140206543813914977433136443797923361078518415929274687345547796863233773449651692028927163971035634548983145958311226541864377027549784915390253345915973338857974901690131284366213434860329459982255285231984825409580684410049590463015754143205521935989459673712750294290602860285124909167780072561349943624711976809308268918942286274049211394675534407200172815954816858756822086437159457404440938020330529181241675083603879675710327841155584474213339835487143385611123813139233272843032991819891190466362167782842511299617336658863862179358963404483992586607153638101346691257824252002325215377549515424417530483533933635969837211529153442905583293412363087838634077776833617906325250818248241168413079402134275048733702335138403635795441683001537257369494204685941097214840716354564014842218561549992902167507509350066289157004324063607256003554895424623758379355754488905129480066986634115965906685971881423967049635347532589940571102660362910053441591181857713267223562946138780638002947112705328310837842109289748950473579369537725559361869403840859885020722612833946059108369593798874105854366647348633338078041314010588132650897038055740564386420411173620999287920098684193964843690480572480891876531205525176472240982676754332004802888485396587281849114109879230834275708756766649191356610949532585665034064693450362782639136812909459086591679950997787850519327648193191582710045041051323229524652499863783404280358903281747152270655925093029056758914070984831600032745622939926060986996010322622801308536971813490563282605707206735668421520635246450219271207634613958720818084164299555294652329796258640817169066861144823338203024602558433955415692759491389908769644206046992826804226401479780085758186153729730012366338823170582708208259474790240649680474703786702312659641286595823002179587824756340786364949888884645019476506424091447776174797874271681500526081496391867233598036298585428114314533292740398937909828042477490680577351561574688801119642260617194326303005246125738375446074198589084653379213488594524430031138202136690989327828419381076957435352956938008926672967780229116766734375674553962309065127859267846039591593502016205384565256190744434805170873539350020550605194794255313827550373356221686306904152100494187900875778148787417241616916549594897623482261040052267373436032116271473819256577014082288953416075427233144495420652307645132479761716555377255356633781557002746906885619622469322971537194391315346979950497979980381021377901942536368485618520264872527306580363897345479905403508319858524058044393866937138957489186623205842959959584019952701167416659313697520743117458423495504407924549736380321149369986082919452094113439508273508822429058247123421610660811504149890878129985733091532425337301994341608928330731005468286755362685441764481311152086743151312032379436549412058252207818056566997916752440681006080321116717004007051848354568835429418248520991715762903223289730228667212806519566198095057304351014828027809567359441168170629078425217308964029851982675918516621279064810945972826404977603354698751120980639668870621132682100107283052088100627192043633174740676303183835349825382289501011842612482732722127435694364597474375962134058352836018394302581905273030449561000749880682767175641656160550861661225259508491182493200789574221336543328021117688682481707796288425104382708508652370522329012443491760297800027539802087741945870821951076561673593034581110829702021673583650329919723114455182673140174094794321045350986985697654420073597983430848305575155307512589425674420887532679902355122403750929623288844552229100093350660779651910915378464378912737972340088353625722234969694611160674705963550412613829485232304469348758733494908277356797074238733235687655466176578908575298613502342344064373463915394975889355708392559612873825380469995688147022951758281458334367799928673289078207111156215312679020431186575832797908293495916350413253315647897389287636070356171439821369884722935487801313593661326054736791665312860610247366001491065387664930951020675995062713827725448706717508149865262141524214339439931725446319644424830238416726932520368089389371386322293455755527226258438245718990843107784105497029800963366195250524974192204067279932155998531275433090173258614717975213704532742609620849561240434923136962353273697644967758428715024880600506419987047941717903918613208729358879842653784841772777246756039285148350912621221357009581435162064192611722821112135084265129958037757139207273030436534096163254897631598862823365107495623036378879796858375673658560405059085677514316992414991642520852381801217494978883828631756485979203023680688964384138012724611412261134063781742413650639254030248583683493055040730515767850734555536589375827772024737691729201291759898082462051324054209905001796000104675046566532509801361654071842455679758648440001690154911977055982526148668209100666449065567428361292228443097356133072817248742843272354932580755481246819854118923626505909793517942171728359784071490241800089426280014976526144710017943009794236211211397142815552468596112373976957602090025295888100693946588233149951942463157415045964827299622537463681235985758838224574180109808116896589009743710878372906884871670056669836616277719804319302942071538681178488258030652951431687307872164399495451889746266876217661138445574000892357049088510659248076939738277214107232856881179568251962387734568861162783809580163694540365241565727633428685965293102924544525917826710550814048274505300469954208316250835824290803624782567135124990165352617916323708194976360947662396299166526219050407220334738364529449122607913182064694638060258639492285853163845766362123248455797870454360411372507750478569636660988623813763090934281633866251314851844642389308346138238229623120841548058274881544683300515326966462085244218956889456254861037297951098720292054371372945553269995033337629161672846351169280877103806550335219323877664600113243566322146496757120542965659003600868503766724331184313241020794313160395956497848595012318006047643378426182596355198796479810030672920062406146589762946439693480474187039857458598898708854375456851245179876497221381362949713495277082078109544661901554939593335453410286205477443219486378062759802571974636704833438698709905087020975569000665592445058917373592645866985144942667779229394274749550783661010207278283240722567213953830318941020001172138381255299575198745485161638252142955669959335851050969590046476609082372644440521709013937026113185926602457356427847610213146048486782422837253191877130512156076092449989358688624519495990233979224864746316890755148714350289011195360810803947953041466134666655191216810511247604847492753532008005779112579578468000258848386505825447442183559372470561416846252429667940028413891292875010611316277392807780417747708334922010659027339103038077544262811981968614290069065939442580647451848303454770766999094887400538304096443307183485661928514564811197410807627186437978520236897804434911723056590687649698699167863736560592771283064598087200711251039313459189789961492401598317487416208613757278467800404442592133271474966599496001487863018968676605925305679832528721348880324553657075654759339709400981822366705339400002660459760757235895318202300968681501704515111295649217908261694242356495421385467430084763394006111373501765375431414702388634524227835063464470151753911176820302384355167050582554217297071519193049561617555842460537460655058026306596638017264765953507312860356202147356727231162307685460245071137034511635604797587077174094179095218717831550903138371556077204662647439926172103737027366818150747183169436953760237513054851045678896073167917616439378194828832476790146630761097313350693443738885361571947171648061748227022185120874240966683800404400494195230097872835811494786343756356454310035375281437041881732321688989274501937338994179393404592425515417956909876904146717445423489435076102286462569857484578065731823230130354083944123971543126064942606038020166484046011424133961896086792588772603998868829107741249621279759200922887856879739377409143546157589479231873468231244812154623157220202803956083178499679121263691278886994408767370317252280110939453654036625178702087642616768798255784838106882703739668924711384078093200762365983036447831480925176189916929289117348417081801937483845413893148156172615414825331494192036463697810071211402071399077755771071438029158941315611171662204072134870945618500056919339386730931814317457092102382260192537669419295304435073272269022951337152832275643516460569698115664570541408822904030856365537549647200867402689726282820965880884420319372461538522599072376702107193736361875921379962507827543533934318250706778448973626040100935123736483791324567249997519468233881569045849988850558733913401337076542538327200718614769461645919638781574185802794069528266450698476579472527369948144901593766595188478523971310083753520311658100475662416450614591759963527855973837277929324593531318883885536086449743840344963390153912712719224222225826026752294182115018727234862861605151481430621683943481231736684405955756476889338068272933573092209078922652812785747974845886658138269893284007542506715269186598048512332817679667760128514044379430278769533058197350041037144469155218284276664020110996125150689132346620662895165649328406019741767860179176132386119692708648611610528251288695567244066593991558866517721194418422742784558505310440668608060364004210330395179464694033051283148952489698503324044948460895128606880192021457850190063943693506031033579973317140532353339054175216805868052798357033838416385377984621652405870474638375532638427113822476943250658560950102187986290636165508437877297822047944284008528686805403118394952089531443838926329785499128479434501071633566846568994203172744791475337093158165047327771040168763088170512216068474605995390955361172368382578771445318947134679732697339087313679746122203856727144112880439102863124215897081302495444729320997644319529642142036455883380781717836416755778426747454745151035713358156389631753723459328624956649571909123404489999520852525572571805154486722139345893240604029661504677673941322615412037764189641652885567143273203439467471182232122163856112299764258712268667491008218029288537755599835009974044394331563748055081771456227115959975814999333170345673325511873308012913622379553678699630408407738085775317300877174770819032349504172155794582335633709947688167327156386336371508382666775225159382475255094051663845976456609579497890800267901309792860218071966960766844134538005247774424820448828234322386812641103570378983073225596056349738207700109613711996206242495005578643288799860397431313825493799538461374588183972017242495484314789263153292193714846352789409438050726341950363401211585267407763743179981371955674023641445737044030354636630097432907479980571177992804178917353777717742307086000539902827260059840739869052855635352952819619938261626900967160424615478575324815367465223704584209762277977161197708582113477633688222985729056397763637461804908078277096322816052306893296429265552437517163458795935781315319148821374282345002255069541722396910513337888536653114412153737184779860689539788328388669233828112177038164216767864355577341068978572206600547690145736767213717233980183628544399199036598719378944364497024695312954678314161614794041699706137889236547777113271793518534603226171713138091719451983724777660615449696624519623343501434250742335047041912875131312540172526278055244683249525641543849545078269881701164999271709389839899892728915521097427485951538745148781670742942696919957679489383507235855601742044252691244094297211696657981409407215418666457606143802262839206302933627513205076383275190985960269550623753133021553330977199874747850751320801033581795711939054265407497957980797031247295669485313330384110551686030436957223387411578230170779229116504203987851032830485575666034286385140854804009982287843449217500125715871440593136396889030536744881434206620987951679132548977956291705853460256244396507620108645360260236862511122481730319939598004647680412788886378541143806061007303348103089535547392827359079133721804924911467620454537331974925059249845067621846963158916457643662231773174458509861552500891366539128968529782192390715160577116516038637296284822431269894879833321816751421543557225991371116028411352373037187265855961220817496809020140827731259908487502695620391131210188382467812602806752271271895678548102017108451173769313913165986713589009132054896612131634810369920929461841693619732004449063465222935216102642500569108866998318853237286760742396674091737872458037261480216037180135738797732206214227120024670381679156389333265595836619424950707892958910661882192634246262685619084906644727478917996236933268215523617118434065569804322597685945833507204426570830798353562882276508298651962415217518558370720786836178633657810566954140971800179083877514993892752847462083119247284820659007021194495883139549531564750512603824360595032374937312367857953553793035222076462979506056129666062827528059085422223721695827011515690082935762578804240770485643878759786298500904940060967682919905595573686534503932385693278835587364018439454837373806245386683838457090987681988564626245331321481666627558688472586496408621611641798748241339967364371336376030257848862513140836284394295344368579477921451897566233023832486560995868509990751877919162538043178070998472453861809865963907658071451656047138659776332861483476996473493383033493025617281557883578311552846701915794724247578991289788366731869661101425588020759696240514087690511440075574692732414755220469904769037819800321731608261515066147452023372947265223110246846679689152779932208770547603249035332221175993961633710161681542249792094832263674261787472038416096681552417730149911478721721427576002251340937743954844985682950564810094889915391778042339123998265753299635710136903924833592791597026986428414543676456742655291372670479614287538118828069979319490939959167761672869757090568244095000241216831027279662016697690446867718876097456980705073164841988027818521712591434037089871575759957718983532284911971505963403772417345960711643917235498543792609571331768367235828866598028101501337463999200136008653486626222430342933130808849824360290370371671879855473614130784347398255832481006810877295553381779327759631655156407309138436170298630525413827657915896326723897011603168209982970170546624778075881328826785476280311347080797398120833395268040014144376592582368502513351460634395118927192175186377562660509627070465168271977952517104826763510427411630420065192451068249616182664822958666233384447086874298438235515147654495104464724516356736310715795754604964372678378913121649049058785099516465422221081309999429824099781529565934166671239695991361603258227718140636425947545370940417648570392979238816879585231178942279828583164965653089757741584045671671495346496906266696112768236397324584592495581627736921265041901645007368985673003058318627360106745451064651129452799028929819904531423447454356804181057544145137266043129854779095285744235361684273525287788313587685863189522987481649385965693398790843718896040044164226078192923242152865320987941175369445182156236883793194206000094122014749715366879825697281389153276372449416256980259461134642867885185167710944227569239006000402987446785808198482362791191377411801734364359982125250623178388558811438198098182836197081110275583487117366541675820471036387532044963820108730277991048806306400716788212248698734999462319572456592183489380801332858806724846375910993100161328187516026067907766418576594493185174318206385838805477596763174487340369319075686078553191945087786279519569693938264730618852979815721087732877000428683885817530020183015406315688279505284097355428344953701852079907832613672703473979925913280786240478925706337035843141362921340032547359424364229238148740745593592115575314284467305919391207897504552834627190577938729274505118118668052824821017771025993004478875694364597520147922341530681162381155062509071718802912679214480364787118642963530240081041803046353215370247152005737766678842756345901700554881096697995785187081169241449144341537773987534746321828175857857532704928201979013436743911002099544039169462732852130487014672384569981421605874987904754520312457140156080367862014945904870307542945415003301900181360966988406852070403076779516036007538065442760541779939706862415989026003445658989034475051837683482115826878296352149700437884080707706490085198116798740410945722457829940818714313990262383416142618960307404801225338826152812852479544066539609407593875743914225492536738373464218479384622002324063301962864777395691015129513495177897133323020915480200765854694587459430880955734125481870837185491380707315747261684973560842165998632934193928521149279552367087833687237701555648448191917720601623491152221388449500723638921021081499968334798474818368528934480708903468026459229758555961164075397203447814561291597602822066668206201090290561102115916515221374759914668828268719682417494290148547368765342203341889858881895399623836310588993275673166512610129959560761839770676760177926584865100231736027260962300726525892775089833698439168182617759908123613520847072780412667699455561610286167015013055981446014247914643329789202839403060464602804874594664408808806289615674675914118627641149128398524166377838972764470444554852492762869226172760035088537349552232481895633243361044980431878412038523947082359095485520986566904529957557422830352404456158471532258569439437049617956584360969371682307701953727494251896744319667742872792233043583183962252903302168233868051350296312477323798981930343038567127892941838274882639651276727442811200514271677226055804911642361216646666611362907850501836131747357776338899826552338094587639119170346631038977870333079670196550133959615904263076082844646465653285578919960492609250734586979285851658712916352166836423574406731714154558796382183795951732731503973003241761644504196389589754397227219606162043034656201900942456104246665123667916606122292185567449255305658483428590667542635088288724494604690978735852933088073251569509059321638674673759882117526132175520673223855857711566687230779247462708306013278224715539351755467038250771395195263967356695404836941425318552699724196546350408169069249996756237251358224595814237428960116471459852386030034356184666332466624490177157824554516708824798065962392113627674443598161324331219598955787699242160504266959187541581287739818922770084775083003540899520272216872962284250047653835042972483427857796889132708764051257621983410623794116687784699729182801823776638828325096159734003962517236113036971266843461008847408799837870335032575309797981975060447844404363854533409258234556472283257362633343183191835853997736947229990378662937521301219433343816041217148198851541974379298753683862220291218128357795752918342010908732891611642451192874643879241990378798308791861374669423719644144674198288335155496995339460344131248506643073312203180071398034621506892313650472011492521892512024384344701000087787221442793929531929506035179204796213875568815986606662661553301418827231420894481986194286731736709264577996782654273603307322480573397888928830057237136583488329159892180836123369244925492792828077865197804576201691438539146912949036753055728667644971549860087623134130500286206603191361252585799626850178909331390911764928565004397660678718669105973368660654918589131669034018854857146189885845577438503733672585697696164858336658387819417604226306516946147499541362168478105825175762741038261739817232071928294694230042770978512138475106305411366352135784740352902884417151668139389963030256728965978209545771566210809777796797569791293755702490400067613683317739272255866632931695600196430505827583394878393820978446539711161437972088964369597019556187080239898354184667165345322772096278719968531269141120207733565959937521403802347154962615166606314442098641370504910551035397627607942591556356697769720157176584662710004698922436104875516922403181971522137342017039073758980850306791611778695642157817489240448813236307921520991921355843179279027805692817136046800267089896976561996458841076800410510797442653575440968111101601331406257718082662083865987268473533216980665849669437497963814783324021298813737999032526800484328826897951547493692023520834460482136321531737750626713028789165602633648694654967341780237203905655113689391303396719322813958565505273473172784462834999682231430608874613911400449657494722539469090983174807349272973547188060317486414049010349514217985353573776242484054648834996529763748773082959810966059742803275243495163568363660537983364581439970931348137491822050189931266015624635333389017942082230666812806230723791706783147602172841925620170157890809338099863842561893373007668259319355888769999129943340560776983930514430665597825376394176240689861062817974187410514518090708999914722390794783362633050218883123832723234728511545431168305116672513672959695253355367162838412086377307183728769798204675725347119779904737231876982659977260965815647342191959601547014355872904763409502357618925537741128900762111787717687182742432875204036608924339473625953548618056897337635754062336703774199492770007601071209300183447683700892735403831624675224857165367950032641227437417423772170198030323572580184888950858921771183779388782369507942877645476199633971717636807054554085333502947572997346740884219131083273029142036410468241483830874911584104326440998378158740718604993750812053213640859296078641834644310425546003338558283307685678908623582788232726134221578639908228030161570097599641977465379304638984947753136426060142931837399946241768220317015033023912384312176326685556570658799684527831463954956020543580064633554446220643080534322951114497642913973379806693556876974683045356255087427102510304939114768020628571095344774538884889642398442939496826608890860125288645876616925830541914109972101738338162051754505923820177467386452828833408085899528063949523661936250813653491149096214939874718254634476754898246810153062180545054644925122812525929992015166890494191884120391168640301252872153669861809833691775700090079168525310975906217601265679226913913910498867701441991067303585060683581378911510727929175514632571918599309516071949144699943439171167036988397716175615454624323380723254842655520304288497417687807366639312838445777234068560660652863639076516408663568719412454136367256028972870552528293385154143681250204008445839991800188630098030479560585954158493694650310860195426884258532373236458185344892358447797992029048877980062938923477051739884314889873988784791671144154694852594720396596669069223214736310427059608051341969851266173359702411881433521638530790611034699692961394800590827993704566961157421935268675305302347280496471157335003628297304256537344570553281135341717520997241158526599763089671174164531317369926085663272561062068039519912389035496032801358979190635319518982427602857517336347114012029663228937757285977988004297513802217384002832486991006176207013840679022401338689702705601932210376205311202373209515249895459772399319710299209302910295079196565488371401646439323759490750737641271304870074840441417462511865494593422408872863895562669661671422652028177496764139202312995713699996859186371283927732780138911731896769289009297591291028270800617498089061361942942199411623182642781783054210973147010025485771975516030764095883027559748011216277686729502611954331740470869753154178398692877404874676590958894673967484447211522924819148962334783793720749027909874649133089962503166395350060046890343377550688853845058702974602227034260205250169788740506042143401946584424909594344446237574585999370521913415313348973373369567318440859085038251253052486468340160809533466368730626678236693953647262646211384864604956390542235149314516492113430257705353495155502864009866072253338278693100161840490674607220771911467178863954904517084466834578637219275737258528474275886739882561069494646086498824711092530760439420226708027569767777277817904665998750618373356600270140812304652723133753142261086603324508739313287746569460157480383772559746069574711476425206236799659361619027326311628597036226792785098263312598354207166575579855700070355764372019530095979282810217469371705949060880630240280249053170909776085870373313291419203138699830467010308447442617775535419065318557315342107714984924433711309836176959598038613676813606931310403387474329613115133527055399874465702489287607827638807629799884499596632094252343407708382402004515550726622811192029085403912094599413944669495272905499260597022982043631417463231332390100773828046995829419574405666614012226635702824624389615960895486621310827780965873474081943654783439779398183492404919099609321819645207752852971057863199767651295507907073361014269934249644605903734907723999573868584301933719474411498682157783062496830797315122772416248033401118607189564562922003791033832068205082404947227027936310816586919671160938377928351687770642384320685607934243249483543752283154087699237905245477788189652237114574203399896821101145617601999851271229798153285104995887343073596513568220524465036072786671404530577534819383850737175237560779299537099887502416759874886501327196382432826843447830573780282900584577313410844447602554019437583772432958471663008147569185735358074923197536856159150025965144574967312512594059700792863300733666815939728732388262585063087610659486377992121061378591486396870956525738823110298917469741088146883903149910749289651654949701869649915006159792968873233663851376480836701039874763877100960395728950915464255941683088802971884876123558828032844115498713162335978382006662233061912440359373461051228926018195225567553411529995837048329502099675262964208947791553847998273453652899680703063799505111694086514158329427305058711028276661340355050423645665339971890361963568471707634105554518853462047108289900307367871899731027722191823427864056020743121390707199722835832429297715132797125503969049453212383420183246151279697872893256816689483733225040740562854420744069438234411205090141770437475701404223009627139477301666203839991708353607636722073646504061246884146938641406416918614856633043814184352328145077641492123521300335970441632474565617909491458451852079893772995450806707609953905464287427949018607458370260697047136641020392230602859858420232746533938059695062496577927916736185352616480183891100376362994757680906591153345350722445081188674410410606903770743474875695716260153287363368983344993979493152176609056383064566970843525150474043656323758265188807109467395992053019229062318249535118761051230680373169188288015754152065748853608940517691497753802975761030075018940180929058378313246179296178128843740339982074259880640979416100245719152152298116536005118054020965559933845911991169649907396540039872840130645765122880842452583831189499434313609347493140445334206664013680936192351753024526755995392369164513811950542966561943477607438109928668309839935810147901690172051597490825704219249537705197313385955350610908585433944807626367605063909414571514621961458128089179181432563200654952790811246914612114174763223423875002768837904020263561982825301551532171406262289287939540889413451705561278078143748243551084621196085755822747426083036012579019420395595430591293181594394117402975325660939408154588256210685802952940588824572231856180884674608986553177627453600772417306945714036072748117225786794534617397153073356528674650566504171361429834894627474896096907508523241541784547666761351419185380388257840231322209171667977151249490888338188702120959359936190927077364099492170759114827443386886886061666756692470124313372292275484862510750396143585796432322185299747406005128393870749267071149947976376329558539855546341199498993007769887456036592327770515767362962332332410274779006250861654042558435862393300658722728586702073544086792428887970735289122680249240990514188461149096805117555059928041232352976707538138684831039323383476029579064393326251402846335564963498532870135266475005772073521511631445686202050627276378467589945719512924540645708925124884846577765943161148264273525363744040312100216827365148686557466529239683348606492088895433896542757958896370016418276276839968244993482894629939942962813986004275265933697135172411801970599115818025282832099640347739106261339840905500758552860141032418340943954146216998339612394679041889808870297441368383667965967020410989742991623908257329702620925967172268853699419601330820431578239286840139487800179482566145865631033774766110553412640435866286169471381133935466568549449836714550200103037444990387988384072328478030023890682881026957834200342022245364617137893591496177392364644872440480912598793345791391449062256998286887656100766385771173544960525388596588829629110702150480838181846706582057242607055151920311023369112943946953885371595504867416662926729710876011859518833520620991686887938203812576856027601095843225837237095683721392273050189072201970712718699468528434394296319702293932060975302235475147835127932806035596379295567647635765403864224405553293192858335790791589906015106956864607065000034444585388045062682855572329362859280310678999838713832131222250344514720836326696806455677175180897292524780600242063647317016057057285146157244572061298149950515881980873651476226276183525487949976009080609885327635953863436315861236793872275891039901666556089151508806116914015856671928840743170353828916602761128608647402635493788372752119349253018135510222681513731025069998859544990397280924990703627424552005093130857012254226491733667236545994248370473979812201829613260118203043872759945198012664135132560404448596975147280091660631617008412649387992908932807413673135392601228884885036334585793056107759550368426574387161227878765354809262690200409924221597973973243960742095766757710526740965161855238826325235936565065167265744241387586639669693301088922628825424396728871430326670383693752783145615661012764247943247517501295835418238906165323688023200194723186640708080767984454627292525021025392460811835918885999889310831331192868531906489555068881467896989034292261630059391724746212170123571748406188099025649173194354299217985160596320148580262498500617741033559126345946019261611078140363925949315067352776127767918528160718322180780485000203610635246370730099424091050473506764163910807034056740939668791843650027964480816913378983141340105338801257317729004057533760525116624708224090909104545558574176006215566422914327234205614647608067041082489580634496389463238598523958339864842616071367608073762391096139230950831155966884673090246797417096751374187119459564901727527030159492277800844460360587179956280678169253887889209445925664152998302915125781705971827540005783366493291270967651979673671607145225469783325514469738508887458217410930913825009164017250551403582553039899590724815991178858714308154672747370068818560503329087075114181781337537786353572165983326368437476517293168867392128845941978820776019526083388440262846571129448737069400352855116335524673982136534382669648101787398086283003250007213761088907107443448805248001199123831670659633769944559290264098154513400425741435812706296065144896375824465517901084695958687182671960996169227696394014781428868736112604979412627292246509143581647445548901158644068030727495087977563306836438365553201617553679361297403519623312245794355922999100306468500458543612021851448355425216609702476555679444509153586698300814551767041611070288436105390969426659637371052440255843164155403221682126789814664995731965680548820672957165980907987927763273666518038653746888283122799953710594305970139058721182288993963445852868395085806916574337538855454663635223247995662350125793900703271199954664831559915639543282382066419447894075627326739829975830102047633639534651081643333508439645670579779305779844044090892869108931245082637879964932746025769346464413690391036495386456125054054163486136951626880612697949678817193324912839010158613927300447318923008672642386277495950888696434713025172783806499325440679941469135519880572512142002466040907271323493988882237729445040751943104841027769206977360755758200611436083346351549844779327100939510708936828491144352870358601174174459730479404271930519872045026319933006347573057991800836601038644741719664023422535124218665654282519227243965568863835867523330262967987274033176614537576287901855507377593390086283375904726364348002932573895883850373812577694904669400821099829203478508219022348373481464498177026165744704363242124305339879684372292589509546263630094996363817978932776420308680171790273707135560520925375197260725774007470768888557378489935557498249641117364217185105284813910720677661425963245527282079880724137819369620141394406937295167922156893508707404118017839061034423707813406034325165531365834957475854580818959053747308995477288349786614216675228620722651972814720373288259458466228534011253330772469790488730188734786993733928162208528186161050484043704355881101233964182424499710623840129022485854642275907923015655183120084027150445701151860371358192037447585937651918257998438775694833071211254190229052585295540670578817158557003108726024237339296810261695746230969749543774689350241821793592464274327129998080546057097445793476457636002582101392950068464070737115847053164255380831622821729216236834117808969731290428985805448475447121674767242743042636225158402310401035857034280933739582362907595658760645120737134931652170649048328665147335326180388153467678473719147337343361441379778576439946357978120918222709702143619833631677220536494526385172871878945560354039012254506208988527594773430549143191877871633475417123351242606265761913560862954192275657666528181461266155129548993990129698902399437819585766529636132296248752987251034127826522186891421885319879914640310160785956056730413052071367313495231203669303677323236275962813514001943037520884409975131023797732798181662480591563976202346623009766472873542499448532056691643624795720744619495857972175279200503156740607179521352826266360040852856718740694083533876245808656704360937223128108494663262701446590736219092266999297871237138995478455633309412131265234550131866367473194919903162469173979583489327928147112090736904405730680027415129214859434449982323922443492622180068965731937554564476390924196875696586654976167582152787937907558669384365032604560599050919266009317735504595597644083743515127379950521937229497940181354725233193661322107677462546447103635705608469921596313272746494196454559994442569944681145023613796905640151235016498482590931232063526734035817907007428927531537750227271445695014311690970822530731616736306581930407976138215109714775136704502269668793520377809355868276307435240716222039917474371375910374225349772041580780108832333631695068591417637042538818686420113617592199174305270468820000282040187692257778159507628240373509811389472613658175812873772372015956348474975657326676538354752034869765588663095958179956921885340195896190208882664618684572760419409737507709467951619956368588571748231603043460649563124289921979148920284893269794320248561304814966989465052682427887409023683281485434322785224900044849374462703209587783090736742036026483842580201679328531638469820407779237011422316496764321330881121579351835767421656678092992985381757661398459228299823755265936642203629226248736978117345689787083739657584483018953415150230387376030541902538270897678395896002526371305751176748145426734506629937123442285031117081664637744242578046374277541493187499021223331474008927228283501822901685213467512841194500716079054453739743506889011967270821933610493294655414762798015884203922657799713827728696483495488195031692277635303747851873879123427141535280070651380229522842241977876307478229770846938132202430655164727868161014368262772011242847280971884537155833868289121623906877463562332239572223267625911283988903173768530755483315812653472019594458316584131694556201842003300565260136815127198170440452321822712366175551209168561530170871575140130153797744180699663104993418407954922115969979568585548148378340195482814711505310152860879878187723431302553467963770735510577814926324951519963191814430194711058776969099044641801142842113431512452236579736744623057833983948992061184701616470996647517909654299617377008131832221410956265636256365904277218670206716292724821702853869251184488850031833577469289754470772625202196092760598583910329871237894510044821602420173820346739745793791645696035463650636105159104111952719131035472284914992958464343335277077387911733425587288359965438344042780988432959423591042600426650413459992108149955237704497913043243457195382383537998486396736147440808373891627506005410337120893535888756913973329975755765507394332411658087756884208696202947804367749600082093763400871505540177758988753229338341320228647137466413610610426732317666331643318596402934935810472512265294754505644345791537321040603846508910599911981144678628116010803021430146659673595120109823186292299085396387090748651150963144697369554409787991431682934755102804276178948006297583928786109353025010497290233595346660852853789512433926138493168801504727930989180380957304907420037899283788863340074464766621488364676658859263025784334486362911421113855639347573727851118857607168743066655277234683272932713328720897948005265530313478388671226755248592803177597973826876861990869321766953036322591626176165707171682471878022585353915084675841636306568579275199006666304928222177294356411607663796371536463746163638441334197773638967232140825071794421798176250022563579207318272829310939972714681569774217305566924494952345564197051447884222502089660411268420861748074837032273960736538056803490385262082305791227102692285088768263217203773010727472231765572415457177246011320146867440796631814682657020702518592510642332514403972610717189774831974855751789592051255130246709738375508515113657898920626866004752771438441484227846944238479089410849227167131646077705630304872502281268882163467427251797321570042298585825686153316877110371513963518659300279401973237646044401597316140161533369893226172557175365523689204781963151684588834272035773280340567195389598089179554211768551254712100488465238289640182998680551700777835481303961109127669872462039003502672343451071624940940910972752687191316373222084786024174758805394670188788667107848776932743458257453123719140120498855945392012608918327393803192281047097164066998002653250299002412815398268075134324883345018927205930497985033137221973629790318818431319665718067528780486492084062126566378498981375683962409524002305862734635907914514956725698298272906173541004313942037953742507026066652691427961804859243380354161703575862170668694683423653380927530345750436717496679088030255484109628261656341529443458753559954049565632977734351244487719006825880339933305101352332996058628364103890913907596761150800299276392187158846377383299462169998165829405503893446655144936709053195990991226207566996890603259088195208534161786259936238154530898007082317758913557066754698287630990065929405458002408237380731047789171014482805533416938738030246797371961483169664681614255272271132254620570653229776630150554845597684901417474899263280200491177978386416215628288515858111503821091778151003202512201747607665335521987174693730737091037553840152648132390453447803114420598711591823805992789942048472470291419913586301461231220803124358573790134841149851995118834835739985265430014447462903634286419327039268751783711356266311086294111542994161444724639869415445957329400325846773803821676355488938921814433353359544696965300087225186680334733437258238418826981046465332601298868793166106665906236800630931129986766568665541645277069475431020584084125345707361403561672790993762956988346153123648047568227863037797970846270728653348414743926449155514425262651271807151041299895769740251365568837855662786407118451280591368179377165765163514574341027013218372469772171431291659757626412273214007698272248275932465107235225245670114602145292539664169731651839301030153066217395888062432758317860262161437603161719409909979594087964393525140875691762122320670399192562359130208762883145201061797606157075601877964494650593577609324602541977374270769390010986646392703753151291267693415674070502799319324066551492209201945969654365515456103688046925413611066454645958754440070399476192576730649472913613306991751692763437763808999907388513553157163254213325726719726001981454577787457837092169777700147351109002763910537635934740485501511340680086518280018413974873275666024787183559992021973122857096065089047714527224273679467644171663145212100092818521446013323610569348510516411917179343116794656828137933299321582482435838152573202564448209257028982845140112511667185161762266619817201738727401683254711884603131611103644902093693876325152222975682464025645270076400171958793407725936068923392314009851983992230996198677569717337227763739851110816955294860584582741796810840416932892111816160627419688430439806183075851009276862514914701734884734953783763892458808468360684560175146717005913711399075550329506474901602660570298567476222243119865724564423842115386519508204763915627126393504915705066740484017243377500553774465553147023446638079872784134766324164392012677802308203220518141044082565854600385410768359394582798543114393957426836696566201854529346929411950447024359445766185692532909768944320366488650338971820699460697595407009696622324434050563890435659813047628888382135492209737467153974168372575104608331859624954272392832141529698649732179214923053923659392438765591171238293697432318098114783719724296312944670414537880486309522352407852260868934751440350966833563943497804782865849714238399225731795743510388905300375665344615262181106522114212372617627297270285478116814099697980888796039548929139982256890214951996761733981378782975859790637519539821155026040508015175390889983483227199644195629600927785908933918439190436467319180999298501658344678526914700860461632442261997620938094001666678270655301089972426526788069220888940386653103639240140662369432244866358648823829439120046842192380310341819631088396821915054197346256009012467631274170646213080805446422019719297533062677778133152413056313461252179122553336985992114637771002678144434911877649822975504506900619252889078912170666647825338464721491881521857359982558345442689038871199035027584247795679819063633486399760583374194020852846274824442848651922968638090600836285570429018221543756669014321423945846972516856771076541735718697914817153038929383343128277140177131629493104145949211126168367729717910436881365658396051941090409632839892594515879065039307447112597559602184793579594307044733802471578651204404136912958025103287872920078768597223725043133828191640271328976355705290815653199706386746097559370541506081841682901850600956895606105743635104112429928016314077059789464734944183510361525399846777989952293757996471440968326670708379952671083097840856245020010128141599239914577700045442016279515789596869458811159816106539245842266112760618287912781687903857600879453349817393664479131359835555430288748809417545206732256681403593361313082358781562720784616708282505823443097744295916122736468805902394645434255029101788494601552616856589729944092883042558030613094481066203698493411166933829309273078684812257616957809566543991987512095229802808429199582038734352929502937507121245669826468751474508423842232492293160340950316016010103389803891061585405672472091244531948527074828999457559198782221066537439987262508351139223349027712007646575499209308645346733821482083985296591412997665578457750412166523560502400426582816449200596452428819892180371648554102353065844989018166146093497713468304797528517155504894255016933332239695539425657218022967135977349026056101614803935657424560571327418463171423734061985247326809896116699379293922598850658905140879859470264847676721918675761675096072526341346147406538168972795012870263943252986671511932303129354271215200296521044501541165479476023050771905021714832622909348435140897767064071403719394494344027306652772371771959742930601540620838974201493429784045776357837888770807588035175703548983381378139472374341324010009801116958489992009630217399233272730771676885609368008354776093387248650272216584835849405692055753966805555716927153943123132000131854710115229476443019690526603988151537347060550105587305676736557327104522694238815295054566056478072611897536090487523126280603872246257998228410728471668618204973016710709185854159692965109077803145892757462014227874034671045329856117208022751822776073683859500663338382588773311553823030747090925069913673503942835715721503198910284466294409852555232430074453379980972358433398090933407987182016038148957658026300492478234780200899079557717491119956903637236853589026426263610882339074810870193779621011940719182832064629367148350052942375759545947953172730842406490409170523447362833344243038677694135766905152552128143611278887858003093093187402113063926695383183859310947739940313257205787335717483443945710189852482310017322819118043580872313405646831610755463339630305526774038464877213963125594279928062952456348914184526617580734781692550384593450335627415033726222547390023815749296685684722021910412580924498411442668369767810729090125027994242880708125110418375670952742179725059227344538607458116181365392154593938756447515901471291443893141031765606039244566397465309307537300093586026656363500452240994040013931079747982588756458335111874020264863900450918873853485340326968113236714056099075303557712418138329388657630203383098779834730787259178565175563689071710491756382220974904573675412920309100142210253706997747369949680199873339717479886827396834260138918578520573032535674765240079279171255717577681446397335234467319934314684187598488715055953142306693924889278232972608988629367274053795090983126284738280631511286109589414062124115188534562731033420160714568638311571185640575505757196650658056633597594361850023268652099047304812262696113213501524668866821245574856968212430250533087440849916167789031777586923071421915102637831831516348208075098306091901017918571927015060161441678279602909475843593149984354374916874837536513138947776953814669539759827067915354078780923431803112490813028159485161599320257339104210211900177525241751807750663564017751656808388971596892620617657801504325133205958036885319619350564499850423506142902939151750644511513624262049971022362678965813212766275927980601653409845654957347226302731956395873948100659002058183920722189544733629862488696195417803655303713568007864620711521491751593540077067378920112466113592506492834707859377948438729379092580399278720785186656378347329818552948872752910584757948208313707642888949180915965492582998124555412571152289489817866041242546338819544524678927681152464185610885955231712698065768435129521393736431150142321587154768302772285363882968240890868052362581092780585403361168271252076624872209074547647727232135224430612835430789770935801732652728659029606084671525959869836955089021441618099352638216171148831612054950782861620872250883802455264112926216115538110361291729166164671860154496745793997027879748726453041894380958765986172074695470356494134736389905463685421742221725125321846883140542900647245111469241635821445322708283762445684770056533967196910153088828995946041758172911312513623708566330954206503374972760849770053257296559058947911705985334955936047083605750966740356301246971307431556714341596049719484268486603952706404258557967805407739414514146368251822234559469481980133359793942055832684527166555799603662956096631913862918160119127101921532657045853026154509403241206814380874693741399901164382829865435557065352243674071290840220005270356061523080844151182838315729719514643678283454786106014034570354565790795805181884511288012648208423697735599634515235851908008394023928286461376595414596136699725777662242491382925591990334862752060634821776849074558078409427811276343128306696819747737004875239156811988041414160572798907572033521052501073573943427387599294897559439244856276129390256613028495199608860282624258224804604433672401462599055826611958561932318489158652320794352017865300593126410841929305925969958495565880934985401650799907725474118963712522911020216398126289515260048585818544405464724205177472578486155079963634483771893400707946360990113684009903548864444891537916801988620379704865034776540815360319851802658174699103026928164230305141004396005894560367419310433998481329884658479386749994252862458147025221707551184851758925066965337622337588643960292385462490914725878790756707019132956564942522938484291895816865008134622813720335224562404073681592329104685948537211971813887402523831841786385525590659082865900542406390455939420561098264879177211702958673282823447754244585720669211927526478558994383151742547837494396592662552411427988464073779286105916692263602814348565906946825824528202067292630241091127276842786869980459642561872995181233735730731206905942019423769157453357099596446102815558233688330072566920479777147363929677379768876843651452713277233579661595399247886276825424306907205045448233130654587587738740522024096607870909693493793893486112195678050106487580833108903185442818501480771836857550753309019307024521127872831878148241908919301298779048205663722766401125201239305127317768516748215578743791416391773335717225546120984317511185966389744733040950123059641234786474199535401324206717339089172310727767886319633544715339932695680142367311809714273441589624829269692896100165864002228806654152605054277358967274445673473628531276055234333059030893970297153526655642991397539166066978222914704830117613228138250527771706724679156114611508335791816255758538009245310779896947371996162361265112514411184067845644646536193003350614957560870556755851525021087844863181041342403500506735396382878031502793914008353899593040723984711036723652865946619403293472799679254574173163192142360862063386383741066394599932928698764178464879933391460590640694163646268152051986122850086799687832074941526421497414824983808133252717241464196352461734259216153857590774345426282185933167761088226156658440782134164137485579741669334774717920122000968220534493129139871918741659968628565941118057916530740315561625758240436687378933431632772389341800938103470795790528692837509559729204347745836189329078696313215792472893473857652325723754594200382725633159360669483886458770230296648951444960837856304042262907766677945050322545803922098993608718198633076624524867055323374208233630897777362392625177605104459346425956988517686450668487957536543055697245024132391281142786882803879918444367396866678859405867642972947726241970675011321347908393482804407703505515198039307323932249117447235267388980077327155921907669582000291174687148838982323177180880933082425472621402163516076401376005535417854488173859478940321690845759951313615759041854788021176382693281007881514698588566266210964077826735500059904085779976518525038839990579291601240804589187627684755995191446506791760144378213807884765297710984881672854399657972328374647542496467246132234593563113688844653792947661924776835352095375043772205557909707489909410120696404113034815435498367687134282575937762137137684584550737396393910601626243027615185098445710313378711390095876835547961057390023917338195974731492190124861404312957543970738761741825862353035767628792394135947261357905513985199896722088771699182811333240558368633349899911639607313262515341546688273254459613776631322669302546184334389670339974200155302785574445968625832087781201956843577785175194002386329019128267787082514320941600084166537442493875646272332952915833064390791980233849018932454830561753405951088917439164007765189488301607118665642503112995038323300655346967613576569445584008305198842992454593605989579913786365583294062292441139913259017081498340345995175948659609680595494607771277660892957177501859785611245878196760082941026614690781637971244275249506595676152280732160343354925763692608878581516383409096648942350049183533726989566038953773160284191870926916125424997199510411348527840311936364768291353822947202996743559168242822166309633834307237709158144621920496477445684348996387036516517292688936125740926696290789570777802730562791044726169879368543600776728308564741163309015461036702154383438764851853225485583699340132648418734367961999023024559901485854352509038116769882409519696627101183897072480163258912318601554320624965035249426111861348943417149150942311063695918609707225070994477463460586522356692970231334383091164153436294115008117278554021902910867160896270165212922258303392023709214037530550522209914271399308299860660938231735097051656227240715270990745269624243678938472635481885702308774937272459981667644190550254917907827539425726450598404259133154273820399717467294953521549415332980230247002096339385410088678899757348445525082625003250499861718418422519351250635398143120229756433538453626436499511908971006274887544823715111427605345206132730256212479551869349118741082004440129090838642352993775528066804266153948405610344384585000970796846708359037591512279416009492382198248123286107103380363981157110576202121230269030563656977844735144359661162369002580059270405354466856785218471045060350465487528316871033444321778905157222788218842728833667508626587384258022228911449780009443372688389614680203435426548226502683376320790392827443068681532919971201963047356843274203766194494074083965331701751391367101244917256851485584266264441089609539271769218977317113482341443802881962975060565530126954604386840110713994732211084005420775208498257560789687335216147242695698750008413606514934452035446477662311874433690663540625687296974022399439789397441923740913162265372956617666027051721490984475440465020701772359689295497686154304344917048459128549152064741334386677425764513319399202759522732063067384930893024435910671433661236516054053835082518394540926409122984395808999218911059547561198995876789208788230299621347741557939097941111284901225604036120776276225902384205173484787925556116652748202185217672846289596276683630675074046330530842916964203478767820473395550900035219725759378883304656107598919008062133724062350292263514795330411567593601176648638660368507022020191799811977387634618367166244824698595692020292308846983541363440187535222773829046474030884353351053998843578757059931766871485417616777642591668959454953347438839653457324223607862410585924815340221203001169554388569814401264581441322917636333091433474216393248875736421199599134330108714743237966838679869752548526443973703656068194069954790002839067490093068387042283298277271448104154299869284123423385774046920550111866597661464029828682719390752586401973744538686546454773565943214737778764280392502244500815876958000176997737009890916534158293412372424947586798008097175540820094358751335196898539716506825411084427479975167532638637417173320034191210274402717870509808471125535838957340561168234825881253344552225993463125589710450515415759498630681797117899922011572400246760794589440979780699166965857713523140643054870490539670164756449763542440201104258211612879737465112991901388412431060494608065423598332724560841001933181829767798022575186678606186159976601327470370767277594616657315939516004205725694489189621924683635884503997183478278775975511028411849542629380696234732201946739524033912534945280090514500594182569998696152666832381691915917899349633996299702606169266857684177136087496784324343131109083089765698270362597063899384724373128714733001670258252484788971051926644176463355861436458604063105046484283579047211683904171366717765825070262166702272103386292082529267042960733023421683468519497202667735303013323155517043142548151510318304839104410586351302429446797078603154038824571519684058169798364019951727602671200099490558024391570842067268633285478214840847420100139130183498726491764697607545535002847882274308032866215108538835873245009861857235586496223036225800160081814103034101166200122179106128280148361108145892699139543333283114859171550338792332614011662860947857042284379801907813724695507925796993698382821220258893130977346348917074610568092597242159820060208456904737553555562483046043421088686127634506239125201861899947316528833189858347135513908751431827778106090730490880804734268642493658977034938650900974638172441487051991110118904309562762039119817438888116612214602986879619705690893665286508488079104569077328556360381229776411405948040252681794341695292937065322126394258551400008395037863380384067735415373937782998449721136524462671022847626912261105057856187259955160794012332954167126090328073435466536164575969693048323794604078486979176832674443171184718858341424655356854062241925131149700977751901955159304881430468941757161782628151664243291391299965861264704309414039175371941157971560544754217565885102398209890926683504798071110993983392693237395762242557847914080887103543364297762569656206160323700423219211758185108380477059869698645101309189612599421451698221986963189727518007467204921008741228282200193323415294541634397983666941957609906794879465500174043934672293944411164628677987655145006563737234356369191674987252389846859895019574310822349539668890089460642688731021002363123088143914599405455079448362363983734566712954352794333443842672115803639353303744173371020665860607892366275211478072000374072198922832663564729883446322939039741960287586300583467421813509557708700196353789217691297620303782597482857832665034405654169040669945876629235163392435947326715603389614245521516727131121513527901680308553351854756029153871256868250025261382933220368356107794179077650003413122400271477068777713270451741439689377925498433211606919415385788193632592510407588318053888726236913444426880677041265535387219579888173909309666847561460159940050297002507464027048205818702478925223113099557829350403735737774488533617644341404450841558884797792863650599404557105824295223360109806381939539353926157090983950913930308960792532821608824842803749509382902781412234930946699531429793626162478105407597398821913828601616594163734459085452819357047755917384651190257542421574862976440829546925201867202408465861840953898525238708398798426670008429099372691131813939970127390153420585034812146923391213690717241631274010266097323412024640687496985694956023847142177072954317542681308408787325645774779838737189356649327384331445762484248567556432200661759046570749676472361144192977144735609596803907621291591438806532291027664421743106861979833805764950203489902985363923801152666911328918863069184888337055588015129315795054608534865359235414923509481824935426761572622525672718312834332871651152083248075116781273283035316553782371934810064773035026065632351212443006546053173659702662096265543510685235380356996736469130307717634440973195984638729223326351696765981411894713646192123711670779342137845500097359772308154257896995277235705949956355589450279556019204009567966121091368326269295841613366876266197860610857776300000213596801442237288777119891025626333488124800591065129269062158817382266539690119571870403802258469621576820576301189663526637095709458250109211001958789208061139240236540945109293250266755692997435315144076326788249884253058755367336346039474366617493186531960992519119341854638683260445702760951259296723944613345992728882668600695592094213279730310753581318594392923308216899865136648805619895621007846786712254515063316320093570097741018145622140234416032817452294336886798799993588387184980820466679293787470109844237518434731171707298014573904586322351256018032293291642614448036736726556099628010341081013216873901742281620933110735227810188195027768437081578366795630080323414924601321453742480535675976759475515790816288734158875114207141763642051226203251114207940957822015699736620579567701425511402497451526964056785804259495067221518036229837946354668235575326193720232582791953563363767741922536241165517583433263813759301125652545751135182026587944632792083922201499288714780851244492646597865504933724124988993623846880670117336092731150134025622687130699362151453847785513593991000208946682727563997986796917018681738666096952201763190011784300488849309495489345104848326151683162072164047663133331836399494311922634699110929094439310022190282390383120672156630429689672483050973773381675188603335910795060087278008833453293113492068939907794020463707818074942685564076542831480070739538308108659298182483063476789713339125886325427610146997488753304781727757565914452432529880294847197618418843492958153013339850700720614152729359522814252384196266992084844870454473709299235850934760357284223771027656439188262481409104203043441693969599396138856273216661311418554041457441865674008823938653819951029627906779179903423219683756265710803521217333172206127156777860705480739523601146243900376819094787319619378676883437001559526718223744595312812538639307896423373791533160701388730327038485176781098394754697142683190947676964785179969513694403719495603685081328160553595393700650439032585067456767558299657636871740515052411796551041733113842816791936390859035485783332125868782555855920852090040904884289456417655820235242247021931375206897770727471295178077352425763802076820205095297528619772038511371003960503524095898254987461009031355988560791939239554209102613152685175537254233584106737938952112624666297512899520386256046468151896373672433184564853596285083541666909074525981207064883809619804154513176550332180392569406555798348989237387812678353616945125731687815343976809718444714210970471290203851519368411870583598471982523918693502146989018282616611455781830567959090012764352497604323916259327673182176639084181588050090628656925037218845300169887624239194054041073064799124374707531274112562928049642610371719328918591768550297246586751167017023921438349556425133224227131442004320271755463958630347013422442498149151001191020182373481234730853019587298514557571053783803763414331478555021496284939541704991704532655367280571694139648387960650024594616683356207349047409113458451966802614007266309917733521145451968328191496963618308941039732647430217638024427495781135963522123519071931800021205008677402385814999266938707428477218976614935208957063551640397788886092114395250526408513106934045764485112689950878070004828390958485588714083623154999394080779585471179575362070826173482898611487715317698655416136570012956918687525941217159297979905088913301038832130002347552859013359909719996318051038351998331013696272868821357343770675962277612809050785696362587432162733677397835865147589763548778717170333464421404816353538610483410721780419026942415384630412453956849345189809522401507569953286610337074845655297096864155165444686437540609594597743895935934650936296302816618779913209962771851482308775252980614707412780281141321371093883657601589702552085964534258473936025242548982768285206474960406925414219723893278617177839865882174229006636326243762674658854545841855042011397703922628903702650542089385453429160598654762669629911435983402946986318776205751311708781629722763226187401361443682383146518981264794432660397073139306852046934314307512284227301778378951095634244256771236566627204953521738907326543689369762610608145371751497251873239450972171049636165042062144331360053333322231236477651333074194484472720562857204649214208330683594025842805437293616575306083997619744895792456997182845281868422805327581123789225628609591492569567362615060564865468962236949499287323903703734688342366877942180843151222571100331553701180772661615749496948264433972587881687077796540349276693996711009524960087480243881771183248418835677556336834662790328499722023942420683379684701074418143925546571887048490501246456300694521049214797947569913727538988960046589223645878361301960295525155912165156724181896867523933087193999740014847247218809674579161781678942777814329769106221619640869104429624019636627627381569605376694961681416233402036113398545598623659525664552950319623038108692608264610659858090682979045106812871238777523772673722521605520296850263760523579366026144477492795929425580870118329141976536919436228206578971047363654430861438655681476981260034852590105944306451372534020293725908174105396202477765011120215660641508515974002477008599142239130480846398116151414394108567268538754803933797628689604892182548184759307575718044391399165070086655276998137725692696627384597288944167607255820625348585204326568899677739941529410060625522957600117832234758833840561738235200334305016602010814126420205814163262156168631866798560638155946787828873365945818534479986643902258116328228159987693663987900903086999394707620107773635733462174268555080485446106765359177617122809274954897323744349440577879542567621256326516534955904941242047400759921721490156917373816662698413590940627614212024572429395504601601169569656424096665039505947976377292926836570228774938497089585608378553804009618738598376164340119413043951055037568939142474411952586590603442040862989146336769562353653585365962144810806845896797821821369901574650537513745934576924729778269889470743567133798022609344383769897927884983520524844161630799430038420487905648817788603938912603428766425740587147850058741743964198760184060768200689889803840300398502752700951233366070036110080556763120843379594665406610104813782713096275370189558493510155163910001061598169640956830788216960657674804067160402841372816370317724649187146835065721077957698301385748666057262426115256703424904437479739168367797025410639939492739690039942321084229204682272312129475099351433340836901727211580232625972363425495790904304368735011417827389619072428795395354196652840459345092374015600480763829429500082089973506414009087405057374812781392553752890586335264297301897767614248655769849899297237918020369734884818307606180109196001495254236326318233083041766908305060903231473529638028632333293098988423229520128482221534457409172641844892197172540265401810390952435115703154383464286601551508429315059246494866883535137622902979774173684163044233071219735746643318743090757748363557516385102180587436304480477585984537971689075380568984058872948603041636335775621203645993038686456070524428868054339188537352511263697979751131634233142619638929149734796036627148469627945366800672600245258618186984907034882253160950601749160568959292692711582908266038586723597334772190502523797284434862066564493104760469502440321852795938812339067073411264895407871720372711066639671563681531175504291415147868501265015556485397878738575755959451491377636515655740219840526437544767156772754992016557387790782754363821250408710491813663137545029860271346679270691981874550701125941587694770678241799553067536174894702108415333753696084170367212438724249392324138761115583300152675591549285743293537187057996433844863680264842800471123842066563443933985665491179295958974239875136849997903454243165643414326441439415952747346447606716513592607024692394979679825086312393401426841084094910281005473175939758225368728238039095257183101955463083845205542513778688025938807455166642835091598626619497298975369981793259059339553390501059736456900067364195957153289923879838395359970048428604394266495367428145125300774373536433850514789926274096814224432447235297095813242638255137196671629919088470738000193523222632820924336829115440490645679390879677040443659092136360226943304793733506424032189649834242347428808240543628655346134418779590658422940980679670572800209439259055385259149224330528170994164747239900978759453631299811870578762129190107385982150577746193094471841876634330604075491244724981798939354420320865756106008078979133789781694752464118989958034936562661365790873480877179274137707807573350982980163550077902896812414671733094324573371339835037922402703735972723125326882879290493493695980428635497012919028535743844486014670195583184840101143741477990782810551514556952230319728848111102480386668011042937817529752896090364351740987348710070840321444070179167723113214149547563380048383343466195137877345483745096062357287005392748964215248068742656591258398915988335070403507179709494897168059169827487390981229022272107244476835296919951605059925088709085518040431165335446929022297859776921075766845496613735092920950769527993820226674957390332271143018669373866098634098368180618332465252395870298622680517876671329777650465235938279362131410334805116745318328308219675842970860649155817175250685730173741458188506247614837134165257755892207307749506616565128262351721719351602837084266257437722259865933396120702828079956166529883944727262390159797862460703166090684474139779434934314644645580282740832342508106869664071123226248943108598410653722987482197291277767924546140444625505935255707924568965294240232207330542104932039747713229983440041201090995945177804032708885419049488375250652170205508799349248954933891438411585978016393438379525196842092898864984492832398745812546355756290183601938231862097900591474049486859830289275067738689360932743316484727504424638461532086805271329016323991177742281072238647491016956334219888878600086438104794028615512997731510363866931858231788787591148879623642530702234523367432045035780627725150424155261328711270520212482630128691601180955523420818823957641992623788962618343929597170966915102362248114195718885938198284489502895300001535821421762860821214775451481040718515211585539111366846902870446904284977127629135621770476595435521806167570581193135933376337652447624062369856614411279166218059241511332769873062219050615283976751852771940349130690669215171451736740540287401956359193276898546319895941901171483866468002477373671384794393625692579582313553055807695572886557740129543082336865915835053055108242861842749156358474435431847120548390015503781874471998237295088324500967343767249577645478191686873124323466056837871323613743470608453177476786620207463578223289127670925301322956875690414567757590095583097379916404556013193196329273891537958244613360422582046354006902123285819787898767824431541645257941419844605127102073501067029205004348909910505592592717503344022748591036401693885963482674939958033489108659385183677902063807069634770179676241831223306784226964083359476318081382054428356417316569125408640682074855022248492008036200965069829659508866186955087811397270512191325315682410837000229679013928339570636003485124281738217201882558286629373522378909331936951583807173397989466059400144166466798605559540075877732685701635442087125192027188308668598695810332005169527660020663724983319759427059532526609765460437317760186229967090985409512352217480310591271042082771298763801770982525949615830637171090419728079026078100824492831543269079170965168808863267987865076210789907887923532663991839399827921058656164980689834627885476158080462819933451965037978911598880557958639064593021012647500663453952346122077357841315074930255255459177082140350663614123635508185400985447898207702753243938113943759936055657406096196400162251452090709962723767687689612338327533059284137637548856086011361895073063463367282603959763803130008429014053586791738606687856678835843479274226680677425118293217423818435929722080759448257708813823778086832650104335065446748777609176703856748009400892682648094987969022385755407479853958407041920505755561131899216328794708636498620095976954535697530914923996857577923753949348538293999690721449538913362720125814272717338107699274149905492952139331582998177835622946962106536716092501031225898614272125954828545563038849757638260814157465210219759048943800511532917664375598392680136698871793553268407694655122840901721443856724651102402578912188050349344798859993649672461586738093599192008814038755964510450769475481470109936397017587795198823741597274643480248281727549483442807123335355449296380224654007505856429873242108967514098983006607594916517662706675257389156461295917708057831573664765283626676120800535276717474504298673749086175493111775881195580216653514226520928537325392969772904516685041882880862093446713326042060499751653151878993244126705381849286571183968280600695342528084908840109491236795721654392962336027719025022323686494035472412639165471448473505237384134341750190746036300499224550483009536032921227684266372449847820264098722921831398571716490021535559126266822053254754082281032155144912670968398384242781175692835843397660521657193601079900591158257856676002050384564274417791974591015998567895205619102465862549640944689974110782676796046760548823473656689748038803333516683995603130295876666228402872054192207502913783848151757812661810896744771145920300675959186723859490527014854929250501546180734325701303690482935258010338449098628194415795666223422470255175771094898659620580390214162283175892263798614543455722157443100591034985804095455924593494249864245369899026051772654273510541530362854474204741889709709039234173879905086643296538554648739650806523073147591448381394959808664918684577789256177816025854818151011883900228588817813446604707403676828154245390912452520718694255831271386549787850896691388535718920142245165695484027999306998900490342019574013461033020130334823662593420587659318832781636446068165975938009943326898969832238933877091406602328767703669112810831522822250563569025086457283050414514513673934073851745867843585624555118512492167160086411990354746390596272866356724350940794891562572014810723856879820319434941994381569908199190858316316845075736563424524045711857407889540190534896722904513508907540969496767929114272880125629674125010000055073593725287594077328749628553173055689233177383062905615207136521674885517686179587820272931903327462913170035572090762432402106493520812331987233678200947425781735705067318608265245425169195820963160445127669752887153544762228599887361028323731884971379327931149045910258704573824619587892136986993401410157078939889951066569981385804174580102028871820362311363928052279349602162604280600032416344676876736945440545422787196783762564369039285844290836350191964311335526349632550085587281216470796646875225570219299984890395771321038183745435802592415551951065128451535287863716409972855630025790869674231619127428035703928612943566255241652948454957082709354101202585763814464702589746662793399022954783403395216907048534120326221465966501220310078248506841125785270386120523457042312242769292133631331553835297846386464368730605316168979715373306707811741718054097068175949798936579102807267167522959713998060091550189015964600740996059711052181894868282035872684379256594941589058386122950783231405068819313120691728952329683887848355826276412852369992775086297062093294080331979063939617656541507937275285335604157355824712088727792533117040375670298581624515908663981146836798720745301123941073579902446728398101039214519734201856233212942855988595881984258390244186252906847508480920560910977630998879137804325636295505740806763393700234254753242953578467483062124686678684395257593546062254761086027339194689197582485110538840660476237430504571144589519135997800801380706197754957512833791384956963217196980504006304211135855206254692850239249480153456340540628214390347364583275581073165890382995902084730499516248543864398360777036619006910086048677914891463499702523983366653780196095434842403229623269546947671347220664590516662426239311277662279262618919399985550968467612295951798855614440644238799521635625914698793575863693155436755947970179440828662458856663765042388822980694758106951221649810244750290435894349402897359533749044276775854300651411941099472094159137273202542461865393540950035148212377815679828354944599598296823542850760256194457113936791903797800988093526187532171757189186511459927631463452052695314459100318721086608023609897872859353337972856107040476747467362758948447708201984021669917370358311386194592683259220894866981511770599119955545671391495786412022702839281699652715232219543768887425677117796810713989440362060700254394883910393406513362369344290988895232505310858523710518460603558481339191494250264583345648921621887100410210184050009810112597042437442724862033149627340592435496898850313956384802734818843448193466909395748474874977878467134366113768792184139693070041223023476516611202372311406643687643959145571783546629150982935588993429458528080533686025966663926228237120315067455754663712091420481077700397449773490370390840574287699313731803064548045741669979243673397528539599334726498050387764937025099590899091004093697276599705630928646271561083451511279263013476376013966615396326676528531883618670456823319157358182205636544539036353771615980629850102128461832334219885476624636932902545566974083177933660565665200923496542669955477626388710723991500811481203771428617685900601815886221194290035351646214109185391066160380165498757568656691731410235034015147657260369296834030419719639810664822569840082771556919674534987404082776778331651295090595242579564462044356462755327323107536830192469241827309505634343620226527567014766959656290127616291637547844054965507225479583029784204814162335692966812768301989861620948334719284547777120323601836357936267558919594389169662205275837936268335792918707812675967779919282452185331294202233882404322275713246034516308817731621761391288121422006462278744815324779915701084153844369602720749176973143705969788574988068576400079530064742771505777960197190651867201019775814621554966198357273181128871784958112084358569775365127206863010956462104990862996181304713503751430694933222269335077953931305100126641150150752695854021361892255960685435857544532377158126510638053001604148961813314032056004177902520791281394071168302124716625617908109565942996747532023570028824215683762134834552228780011222887188756825771298525749598182660618076594541556495984802894697252091799326520450013073169596654734458350647006917124284434633891805906577852341261706052078362147561317178514461967830808990045208175182340829172687983603644260293372103830104371269418435326135050647315095797904964910656792589705568010394348555757058418734561928831973594036014596623356173634891573370286031498684401008463174253751914582963595456356978500105480279636635040475899908213160774495925740215458074140882042518579647008344738811962178142146545170187131033279386179143901347959129422715762843841011052238530330925326884447751427329330168274471995235899416395371534782708453224674698762488752666832755523279035518808465573849779130391882778463800717571066781582914042022386038482064406063865442304571111589610540806863160726720127442777883532372469199613167493142216034597674502848791663790257921378714756723169594591460351924646461659307234096652507739607977737352474737576175021800595090779858262491451328199352235232530937982281760855117195927105411469868595862520287038729287601609340989441578271531478116641242994569950254706059339100814977102229706993673252718997633695685023385690611887701503610339848020729114557314675854314691676688399233752661577760280395957674574964795019739273502412134404752144883802745494648797804194336238123065777444847147943511961610272969322651181463929700509622550916442488326040447355789263798036719481453835708079925878193480340867132408517826095206449337952079794266995038341729428378617853481414532680809141608391464096011928506985564406173278638731001462436872111322781520381978957383573765705674915149250408083704742016560771843023932365079892038688271550228227391606419831756390494540196245452725598558287349215108427361722179636394773875978133130709908332885141548780267292657128424793499400639303340432623168350761886184792282389087383149372381236552210758765306763558436960284954607143785158721712426285313577477971341288104891924291695296461620153513019606606497740834460125681661235482670281211392973498796457542921049160082136609550933882973166978761102755262282925392439397878780327581711964234670991134753325373963286629255970663593293382291962664606446014142645197321863706158512509626841786206201454422067746610661645791612499403757442073003397526700289383207379815392432861703311618602045380407968332127770297590718577265413671069665034570335502008295113653867796913084278858927045906909170574308798524853728681446620915858543871722177665806016188419690939153466196670946045713257948440004418602910188187462043810323113691710626355873517606599561728492637578013075112744362260487637639436635800694958459901002202799436849094985009400080817549848691801415387504306707074337765236312643650173054593431438536723902931829245155014944653999752374619102140403349757761300459451077251747959015392204628730292765941780976647914817478515164132826186199619957568039772375724245400352667478087166078756704916440596757813974866973004658990861242737424106890342633182554950343399884042425982127525117220804242529240205559560873966173314406422167601891153053575602963628749306778630273938345564114763592637871408059103048637910184950657199303751739861865791661777292465112416239954038276690938841297569094723010695210704330824004001327902125889560359145430580710439001688598775295147441296999291127552452204406275118857944668735591888394939625901188382351348735836523311301625460668537462171933551557355365793060611418806242776747405992603647695876781135270372439704676253551900586200436963745635164978906515654990535982634720704945217909019697151140172597302696731084790512312259406954255994770185799950348962741332776638654803549213227860971128932260944616155393507829364804292467688414214687397192245049665548708849404209356005199410617641740875419807777475324362683530739649504240279120051736099103533113777582495823203962078575216767372755602645201853067072020522402140876751305271903347976070777314012506057761785474940652204777655029064759069011455402887851111485735817667100302824809621682038183855689713374539828131538799449212455060831646819959161780771394725731914328342077356169281733482847938274176415479462051548050134209588213229420583048782424081737367230999751076427069768388647822278424169587320500158651830131192695663811952668246267520369446578758055308014292410358095705242193979222654923177400057959696177157424783452203964608368802951669301263979899424128302924465689947810225339519268473282960319334611412059729613689864473067234636244457725720077812685966024504946691657089329150275690462294980010185076502848214185587994487166520758168501084244851655277672974205465348403610229479118368614113521464406129618882156415219781874559749873405877871100132242415886950745422669583195458808482850704838461321128688656045954428220068810731282940730284218179426303337175205202998974992838968529215114809846368993837260750215780698302296601924713793262816994603254730329011626845279371190348817069217152559739174433565956300254423800299243635714038398858523110103838597723832340827434367186916943302616713036385039507144261766088958132458904586642610525953280989664453303423186251800589531568581134565447453336907030430716648029926696335645981136500185757525391878923083802753153009130323849953740683697912236639503226848504241435286509434859278724474436337382217581877225263491900193462101335370781053290597434061481294081248348821708718219491138826096138984346624285925573763619449853726791981733457721685889024868870391690133790942321334570480114192095931458413414641875230551219206482514716824707662268754979920300432206350247161698442233392364524413536005496722419335574345154150180032226963791698644444514546837277165382921397916008391316940758411889368440269997421092141934976889931801976113023097685149246686737055744938288067116676633012089470017232153102596037807239014368977628702163506664382196824570345767709458033893128816940395845459133572339605681029615599403433456425043953702752922395272037964960755531363033173246869554028048194169346351488562293239254197443876125276493983407047041493582571373205180850612003333581427624291801372007989639459564421603617202832554976122025066722493658312097558874159006197087267016850205046935054752179862891424583031436954379944715056986494977516475601440566828927200095061777849056903835370795422558020097460072757127366631488952772978807622870018887270040036183528069305677793101816050864381146139391140118469548765454594527648654259550292478013908653653564399704209921211410216781399611266514207632869305905895993034818865421066637970596233078380774596578920213529596080394825647431732243493528063820692425006993857353994257851258430079681892712562088916141523924799266554636296439462078009449251831787262432167972120012206656572709163054780298908027471034200521801742310677952104742063586152609165319267803937807358891436812574201354954353819731606095637928524491319673954557681006640205496553270372570561594563910394276157019495551609736247963365651239888507303843762837257391481888066322185329811525938683066168476180753283565571653557777275190071053482765735229094289859631402525399701764893985357497986539799296316999274618405090928583288634539507977036269899546582597470976047129568162126535369583874392815115738698171914398033398282987430131295265624280987641504540637797385209124735296410126469195978302962592082994656804342266450988481866639566246583946104280063139876132924861958512341163926056131960474766845634127640483288197472197310082625178538996112825416040701374593894323847114167701505081098601955609869755406349897263333203119246054084771853689050785436091500143066892769858743566809950517667075409243088036982127037306039060034850886187437451424942767426329894239007593440646517179629909254485949466890366602388520013464740713800142555824418421912802014211931735074123938780287869043900724084343311866967703857781382123395224820357041269592107160242168479651783001071299587487311804911564411033797843986186903896781733936882542264500490686338340847628971410592662247903581684861414651934028534262146086749256590142426379025854888382704792393268159457902406188329404559803990088337456064470734718337394164558284916695575637957825425087473576214741321330037621256367948569553504226683122758243926484563397031284260502983946975383270340798787229161087123999473002004778558274465362229338144903421657571618346540521160138728957155661797768911989358295013736965422970835806355570801534154232326027160796284777297575887795511884708895547041820770842852098898413128968164491094030469360141669877203631090819154011771780455609555278514175042533416781191948840586110943876487024243536864222403293446168956771640927638572258866630409982993630950439305629257567771236795763367363434573676494587534249900476068045295437477777272693104298031785626603484685289024016538680515191241327498703566752840007173598241592200389421523937590260285105111931124376528246115936862496159601735099431348449294500067729992218227660068494217504719787492917869800073939703105630636282058608787614213091677004943894629153219551558551035436165311595699703833963465386563730102351163980984787016565472675363634443376736999966166505683445834164465559061189024413568530004659377481609045750064672437599574015523760371413664808965024573153060746721071945451285429334286312883294596630856802508833025576013272934464404661323900873073245887376484559723574800777645485250673153383055655999746469050253878059916238642026095380008027317684157280663857197760411208809823997652277631955174286846125843500957172978154098503117519132379226948932246830222980497050415564117189883668352890904656123516671012121853492063823948108319797710067640186763714954553870633455158607654359964338944761660881617177643830419746743104751943380117742820228386493232323830533690890257604714098020103761349237318660890848502368794835227306473249479943114679373406616688504159823949694956257490922236573284858714344635873481738659190407143904628297733392320527842284025550865627815525179786382452875604656006880153988113317043972772041257288017919890720857731551559874415595707278541344652951027976643583000809315367301398950489645719935438998641367922475076274734268227653380905088878060642993644724607000865470539250981649256541914929232395041743435633657775371663675884513065230823806714345428285936151642503975568282166005017003279825827021018619732246301952503063593618540801019825771584526036880761147370749208935937733653617569756146073521161901046807327521295902480002361920153845777234181626513012874083416896645984784189697838013407752787916457937754232875641177869618125987179883107011200059783131202826331473924751334865235394059738750332737255711464008178789343494013507951657822113358196812113353188137846108533840160239582375130917831966226571727871987976167430412380103204509238516491388911026978653751895276821810190497276192806320667324129965422672577344222201016858246667435890641157877103523542214684755489994782094319735657578973496204170351777227779573502707200227889700930501979504786396520555397383744254262397323500595656871352267365797552795480216959959282544227887130868462346388771437554759104354385929265077461493404325986737015151738367417859653022487586647008463666528977858001267545702265138521708823059748717532246668582545637539044115219855827692671755378202309035162709942066778513147380673432302677098473773464679222695528501694406972109892831288959924897499691504412461564472627655874061048821100208766212814071294159903221413404223075322206052155308266739346902694339748652762142488299049248358988454450683137333641857325363848106062503543087601586407992079229762745060435424613861133564722281750244292407053264282467796403672402343278928023790316704699740054121823245838690036954192704702618398441480986934097570406756139041049488507333312088228472465524152915415190170488647803264946011987930032104453635096645914608714878477871064379309275628268567988949263877434257191938544027266722520101628263285926027383012745643526210044013532951273322688064267539739820155793757849880656062111694204333938103240149415751900549348473092298445851704372888622926344143782126759531494921857410497973084347627735244772775232300698952188661757160729517519129584854594723162220857074877134330565499410165102669651115207968158043912923505643285199935754970025062535390371902736208137218548342277223157794056489582740278260225237388368096569423228923244602701738683391380198442413758876508245219816118214282102682644817142097367250382385868396219625735553119118984616891856383634030013231889474399201288273841063095747244164467968229420224829762774440180946016721417318966365638558405019511480758010441976737850470194510682456369979481725049364596792503993715887792093213737044202155011148944045970783662352515994765956953256345655265404789026206134919661128889331071505137602361338653925620910953988206490487374891705027536148345933639928537180416662715832048076181912120419247340105597959141273254655507248029031235145367443962288001459026452505158559108819540234761297048345049765494697514574766064106816777944704795173019246705661876604935687923104588288311989052348962715512634605486469325122495978361656606283529010617473018917382509623965850544011573159549598602215113828235928799943296279425906230493339103179935526848945954140644217277836852209110103225515460882234242785243870462184780071974221014082879782967964105311770926871893253896485531859960860473206123965933931549768129145029452242704786481386706395822472843261893146936478231037806937203433307555925044777889297655863346146696867460805722766185838346322290998762233570908911589668504135355024498375329233058851340337545087535700422628410361971290098156524861593521643904485664266183882084022289404761652871434894190691598188429169123763832030315549174136937223001256226272848245729919808327511443558723327158347839164024254486197013387651754135661601522726097628360942782322051515147999828772606967457741794709617942727560249214825560792781217380990872056638236166869348898227060996590983790534324501280396640443055815068171566995663308281690504913942563938054400650577012549129269703425756056096033220757162503986371591217776242559428937898638862382949507837755167750241841192717020812723045796714852575714680440605913574609227385000664348284664448829095208159784541618609845441664095127602493455519696258697559089177121697932190916210588399460758847690017284388953546077016843895437194487348093834606522689356275442385729392431424680863836380483740841819081275932707803666260479495137712472960444481114555196665693926046704006260200903752076006659599352117014980218975904267874599268047919229771816058255682170043250176397441935376129579338487274232029468645545829203838294843647940047616451892880799737120389655135817472955996477730961200547279706521834950288441015636227177356017378588174341231070549694419959570495696306692995811917030526653699430273055309708179332498332723441628124364813439316830841682593670155116554872364428363517410209370788070922777558648257705564549561192628692058076228153899162838046366853513591284728448852293748384938262047357083455274527260839698884929560308961794037798056097121418754568466893324711851633036302674914713741477961507050898168758327047829715739294339302678935330292773757725240682585163804104721946078841385766960069927420567096597057430717862846327932180122092086487932544768033555911292014767515327131161344369615292447009120965241714243375115359302545322592758614062169477915801171121522312593094902392529411631360356167874809610888281967212411040852828959551182217654275350761741740917696303066895443085256910224591741277618620860129711166213603478412286371847268310661185860997693924058446892719669766798307522612374698250773051232896152963652581542944428905522325273726009379950953951785225203440873429022730348114187636465055400308424874537739254522936519358196278760983569689267076063562691987477584872188249527616902991143882813908401953109711826582960285756012460131841822590658375165509286500508785428179903153910955642658025440125718159948729871732868861022641495579895200151819517781490067522853364529153704183758290639309278457962986286140152976837035221595129577663052757252828790713220666125668172289592523135940836196225391840057247701985511352628251486306852852112851656403263192563502951582778181297072699405309468603731614507355173590619334557995964820130048693704853929263196575279656576933513351585553474151266712132883638362077860114102647389034950721350184394626715994831850345657086270193238991390133215132560395831296356581463522883952985453012936882695912284329120455817117244121663646191072007819939343210516010407895972334736165001187987582172932922761499353064500104948294548887234025656509278902163482039568808302459641890852850514573859885150444235880234391646427920517471382038280852887673153236413009374842315343476279055146244206532319747420464386426247837636407284858241583755453493865723992633551862069398867527288536142055513703108520090068542878523373151983101940320360934542211754341917803858566875900372302394205792783411556386082086315946300847291681538930686311016604818518019224699696804989045959501065441863453331122429111017837460486156673614514927694782155296799325573197205367325294886083959564055046972122422725119819582560957301478519850675363048368749069700580023338428965483399431863017256243381366158306594820767150581161280480307758841251797987991370485171104230237525498152894625513373190548037808697890798195578397467026698519408875675332320463590533152282566846185669478752271541522531532424584968496880775700721771828971660883735934942325827548695585463333833486578436407175716192448118336328773110701932690381679169480066839143415331035768121802971779836853953867700215145694361184942451741863347143127079862653459973632231926154307436395253412588169232942890172262632340979258951795267310899542710997900860675786261380846209269325526585111204322596591341743199866443519347683053779215962072413663173200498442085421272211330638349447040268639794862655069469027913127092689105765774249938110854098121300152122410280385252798795923558838475612159650215907080195762364313188657026517899576336661067074760796885134094195946658838818391226278630329286899264543707338673636486107545685402627328023645287905254337519294863149432219486995940311969299952783742586998646757673193500098411225093542425584919487867999928860234099206083365833616075032416701274805606745799471659635639847678207909099630895885235434861651388892335496328126686462379697700452476404457475663878846522370065157577245783018735445533498577523069932010280329063085217511712611608983670572409312371336831371513329815175614485168340493347615612177878947076073922771048399641273818635426153408336123400448004511133264241003786835436940602694735892446726982813728607003895703310381272182594883648653487460796919500321165418232122790556530504567281043982872458968189306662161062516514848963737943340606964458106961914914352018828169672919386539944508023567073986226046618920123946280542813941313404946592006586144829741240700947564245989537759378550660864733642051137669069338017342500180675087827586564830977214774929994379527156852494797962493027124306430931388446532487739890540198909015765605714000190537191385727535457532934437374666095902050360246563403140205801341046047598191979721197428368958022507143890464543106558687856883165001885926430886252332055497749982501554654073010686070028447068525146748979912581459789858948471730738138134248255642184770921381069762486048313016947361259654396137300383150256992137009531837096794535913006170048573236708390290981844697629851821155373069917529776015682105821563163522499189597470799341036473950970147140002843812082752601253507051129884336754967447327740580634412684959589490413861743050836284262787812878161068895582585069129078372050657700897337415612252342782248176462335947444667495865430726718753950749193910112247076101298274721915147277320456989593368929724594027624220070035377359903202953847376960300988976960640224806987237128110170622584264997330445462256362502351222721317362021819118554488337098281531078633288414010022628298126287732204494219126583245507278663158999608653522395731925093075236038859995095950346692247073562697899988755192404426184329099137289857565040295787451680336313233594993672211360704059625606834402526986101532837449560458979216177710638530233667199635642347018968105195234087403025411057273932071704335707800836109838378182293960982958923434358991998393353835574965285657394389883495927425524756753868424373272639392391327735473882202561018681421799010250990132764687899796537876502404844366457338409721415215857731520966093891412615472965806752263124157641734545834435937793499593756714818989919563226123083650545752921621346689778997210470687504965729541053186879243304526007899902568358203564879551220102942321045087913163782610047962203413321565284178397055781343184913984982618121007745318443321853081083921230854243123481871513319583135273650736557642070955238453979861239462791441716303135511439369680412978250284063701831389860676057844960274149943902512613906667893240715924604578002783341151685702316058286476045192369333932993267456530362881544332319519660722632734159382521406898128999444651063986984492744805469103262193763510338651874732001917968541389571174279638273758383918593285720101747009101943120024696905316431716895445750990075873100428856316395464523913262361696090653224725073931884546349105324919200023025698374427631670799862543630587943979415639922564266987790391896946444734765227558998543533121939269288218576316982927527165133749615647794296554935743318878037706770741557896177780842328379044353251221275867064585912444788189852273242479863394716462997335165363944522912359930468478084080203372902143798104574388545587185477699259997675651593054435295724010668947654212866903671103620206434801078751479103240382084494939567192123573013824288250229339211469103434085358409845745067073749426944308003562174631301478295215312152021536820400466691373913261713894998555169117559165934664405488758762244615617163377206673906432027797700514333851694527713107849983312391955243003624161759419238806422314025932428836940226327084297216791993206843266093693371426177951075590473206437453526860466767571585157587673810783166378616035267810024959014284239944011093516212636173921191342418142323505264932261153026311125011382043489148664711712812967855976493650153250473245015924134717817318875248243875445379895532108898537832020332550060039447010987687178225012967862378377457446090944259523762418533136309960251361538707820537474961195448866892516384860099558622553958929977879396702467790051333875102908387202644368787228961653150792740699590291306155445489376188940851292696153548991075362330740101826130923576919352392068284056931261740545282256520811307454300227876487342027260461099598702757794489049477965896205203765312916590175948199762955895184257462241334524598287539734426279838062303924975216656520200284790527156009428443239826703417644852810450313643943525364383016355314812748197319581505293470350506489421049058944236082370701195487353166668260764468938843998443646865488604913738164018544728309852220678075744865596558525218307651127542361262803322652188809816554547639514867337382227875940614300969440032474582448195568020413382751911100628061874400780415835942729449800261549110762414078920718843468893292364349248655402263489864501716515668243293274427499300171446642408456418345943340931722636462213264439503916310261787514094133827663530668691401723767497308983974040523623627183718913714033319347981415577675128374100408671351311381409477814099286289449111743225271080452133296086082299419086031438979247354731080717536483184274951315446915397700678823295005877841066425203537301211798229209495285099302805907539488867705466118718290485709526877287042140812092270553415187651447787946449642515089506608714328989290076736057321396814987368258345122273971687287387234473429003287043262183514314142379647115004455092699291711799001415091833752963526569448929323975151725297061300823273797678467268491845628529839431862731186976464819012058066648103010107767082691880727365161620651350739283555539756832396960266339921924558009708459589940910635941879066561197694597073839106606087815209183456749743778833725756746603553209274921063093104771895190853408428902405533801868139183302010696380461095783860417280482826100634390788857166325929077479026088627412441236721484212928507152466188097462857512343357017496271794164326591211377021070416096891264031104565850129800016278019645746651701064204072958605165816706647080907069183324332039436919675931177663537658155005960987792584264492262494997488547676684643807284242437074517605139909390944631061015092413567029842593171279522456911013118838916237651992271884821659265929225887813669003828917795883656318320790858310905244440427097266683726313322291514457952664884913113919703969989022548429609660700068644444834136047570795945348714686411988301525886083537295789516645970993813176106545983945743955568801657168975637314163979875953407955598120260616493703911625572071132644985778446792563789005888195454908079114885487162076464253719149558538630069403211777660947928425353337825060068662543310265761724729097201429261468620593280568665418983392398369047980009029480268496636636607980836924055309065874253754786652455407715349387665499148244027515884896660741537180985145010155585758698496652227679906417959070734795351561996176827528243307590882274426082711592020649280366047960217547787561100797691380324613437762745666966777093575072453935988385675567724542954482669862582290545031589652401165335694185980603639122666969174114246085081003553309421530527257316597414754531795935658897557451042042930681110747971430280110007091851844801758451527521088234262509758369089201670066798757621396071877739952203182956412050599878700286145384533862823509366181528023445971807114928725429638909052985157573316751428675018160621540629186537956709477075872801307232365346645329316660462008482982568905270657187973621941384685663260745016700164533821011915516716074693471207299321968037355744928722087319694889485960004047030229748104199478543756538268733389414509172671816517471636592602659451774775846204550019447744617711367321332831010179277514588446329874089050254111424890322108658970779025978180371488973141866803831156880646130910458271955536491890554905266693103522221573099068583309646400268006236494033388299300676568623482139305774396328384028045440928621093347174063404108777931121141467190882587013325653483114481246071745655536097877776304299161888468401878255021933442507641062935543529672185940789361397834964436294621385979223692966413775720887595579813600760225108161067716321615528988455760248597518452373285474382928062779209655073656581029206656783459971702300770233358543865365128858044424949849797651010985375728992445480464062906738083750183607837774355795924547853406561859273713568426714080125307792107419733498597928074155737101559406129811663775632535573434745070260677717368559774193091536226793101289982778854018857977854864962354370404436532646450737864418463622056575276748102066656353788447592639345539973012399068057493435471767938456802061505044157594000024152508715076343797284445715499188066259315250257900335111257997808072454428070805539248961110927728303426381728061310237290978484639380230279593069850496446099635912907218365897784157335411948052460669049317943490077661653265907613152827964195756874555436696064254550247732245415883188339573609172884067470905701310253307055524941909747848129845913230830956682440673024231059565397170464371531882185440163973579662619575796649638622038084515818513561932845892113535163710497562730137879527875515156186566730723282033074789407851979491527806365202574971866141776048180804652514845684784781119306313042283128859968639076784280477955195002923740426138602624654779603964600356518429515482445624342975615125399057948101727796779043149492413116942329215637998772743212850482892251655479058839942905727203774424913408927712228923038067575304495318873040865163141346942626533529852939798629845193753953171670217710983165222901025332186107901728197784983060260874992258340119878806219602294530837759406500201672308268504533180734179427976611549106290159372791639027306759551799869320100866991859382206169023811492945219291977865706924237148002842366714454903708362747636244058207539572630139586991670128191634805794229378959718827899693154678205804465369380282364260085838817269596449269982390984957498550769584878758963953373582203021099937979944505016760260482577486446038579845595141864420322143745683422059692325190889489796240450892283711752533431665768217647895493118481477196989864224735021942410153156609868239331704360487682651659215463920650601419861418673117702862507534718236916810166909768969651103748987704962378507978947789231180561801903056648334382705458393304341006348755958615335662522174352368037488726994159751604363180329885967121670087410734220858100201609345860067369856631060672033468470152374207663589282332049695989979516225314774176169216368854560390035323495361986820488987310832156928239756269879038947224420877788953556303028907570117003778204039177183872216640392972627949182170783289035313012356852868403742058364345703268091142818139217663320335437239662455611442494838683839991104527549670594498297781857803089199823620118851732775611852623620475368671617538801896740236506501459494192474386489104941358005355191129263597219551793002085840074492481621577300962103827245482423203097425098138778895797634472907437322528776103357612078533039940348958180598909848009673175640409544837188825227340380117149665691713453198600382841641118561615962323744365652138226996781469678621314335453521064223429008524721990706936335096411044701252941331527871911721112482457053060218003049516916231231370202224793940964773731494483779034920480087328984666995169034524867894843576789014065975175373180926105989045294789272851639352748053242336557365494204231001152349513142276788512506548398960913064606498659216161424452792866023425168209274420417633099574038036014921848070739317566466384890145211938264126422426451493846489556492500490274030909198819913275315185758694023553674034357662154072575764005901021358426270248233578979701123550587705543931763799690711999654830801872379152669496579196743230550275039058383055298370771936586776309627139208189879460627864225605795311375529643614138769098092980412614965189276513984264952870064489704771993527977398693452248766694794343646413242443871964531335699011616097424546576817620260283121216105185304169702202754521349191761402903434783688837503404608207873019681858317205967880116151725500172566623276892667481505159407792852851438242447238643337543217966718083958494980164386594277768739051308791400925552432616992633602736133044556868504256930458451736719524478424045333204039231106956186335507891516899788164596285777411355537468017029693132287135158572675685740192287355369140512935746434040744856797722241056935198889401632154931083151644307107902480593674438074165145004059696023132480663230838091903193765675271351382723914706012189044541237294518520930862489159186125717353018012105831978784860297927249034424631106618950480093547083810251031738659307331497474922447855012959424515876667094490392322127998621195589456183055344656022625221937244305070892234738691210068079227264797091082057346708006278733487643579004384947811702044505082312985556979504086903165333399570830539110589095210443153043258198712936130670900309075053192580656221340297658933632020083965735380083678435261430880931925913017697493685461354918736670319054463372111712072221910471520257607835574772677255703498480786333896571647401859706880527661929088980908266585300356542146670181095175681015113887773957029838508514220046979053534846745548150677960232767294675581360351737935969011236399592697174824634592007159969217461399359651383985111095037735496397550269883266867313904098287591006201136241365623892735065991275822125096022208916783728404699953589483215844490521818580855112959166238390829098287912513295167016649916977929959288011073899263799153747161694509437980847309719899454185996576415673482890582537119545671278555463888109562613818787558468190921474054838262784004326052097730874368634443648281235656983824397912846174174309567109170135038046395124583237588236619613247451185769826463393504187835943048192559594997912762409411537065355874963757142960162656924779481172870208736657661508612550137772971974492937010246794571807836066451449977955896365964884531543987394693423971648849861964078564636739324178219957178418761386021562339569670651353929934585169176499324636300778800183890084729187824874090764520997521975906856269878794003288676490063639331356939113467382579081439310412316476874278788022873188084727079677666194716288476182086169643262131766196499247846340124838472824903147787408572773307199919753174408254110280788045609454748199224904454981724356044347891993232177095776576370927749455164292022944614052987213942689097881174629268572252664921228623356414127622003452902674642429271579606996666689118995591388517097448441697333242661261803177595425912626636641087748242391296666676654352443965183822844226224867548427822513263793975491900845651887320532965540928696899426280916733747882861839123211337655099156945296906483833782332051993367882454443878845934427564476443139585324680679505964626785022012002232393997550562310836783130863283264579089941363344705768821907566416230624791046075827659166051469822812750924469905829069288783036875485983920974292924510779559960059604052278246071834281097914090727749622043622233200088346592293787772496188176832756187532413073884605529745723692582501594145048324174728584689923366422217803979871314312370999189003488476763826508460478668744883199676927952518283104526133626386676542015281900025246092783156489758153646719877845792985361804684074174255349395585840884816040156770435787005041669835064791919809212860691478668913150831177306564486958133775403899446353694343717463268067388662340966008418459170284372338190317116947194213216143328396870778150090907453105628639881797114951433210511767769463374016029056663993770920898133457329290331246464534844029075051354224694498942949643298058981746559637590832360929518797098097311947593556008110401081614987580418317167507187141370353899589817774323077089566443854263568912922133074305892311902893471206435472686504133138078893625801083153711543866256304891108367960025733853704900456294933887345716970010486343839665652421991880495004255236091260667028768304573951778530101053687065372319104184917267129257249411792643246922943956724918364722242361700967316718913762186952676024716638029653659826051224944072790121653407099499747750669435718949988394417074688015441558449642737190506026733494214372706075446673123370186545958761586216825732255188840371691130580640551677872580527257971729531493099795547722403915377969668065890367364575664169472793113965811286749122086230617230192658254652686993000039459606575403556923258428842993470697697368141264442675541678994694929120202531401567780178562805815715808897408718862741546329725414852408856863685976017543993690086161579936425194303805899976819812717064410914259734021177730217229600445717399107653533042761995016760677018514576044099642491025575813446801243752945467647095948923949785238693473168498104016375954546437373683759127819506031579515189067705332305970623368169197484398295693466690746530908406083950894328555697307431022183072139576252734739719662198111319621217238662364038004938524187022522113230536559686857890984512818142930073593158358263444096039540207683418536265046260876760898742858974829906033384652748279616981181717382583712847060283695768704121964948993911187780720912214409916532537495856929582790243675091910694681181507277619127176903751386812040491881124649611493121328317043667823731633755729925977306997345794387507069871600128921928960358583500992430816706156145346658830956991392584071611511491836646732550555013275147347883357284216578669039217956289646635938709416477705108935669833294397419814235355466301470780850791297499683782100160179131704040391670831155623821539129318281924884503602059632782840097251680787315815293433103860354018365375954652794126544984271373365849982882741026046031539686693021733654937528473112973440701081864571686773333014444989420643418703870426505802534465985660531857417639346398662103375341350072207728420701766962387925761367182592456157272715869559143241664077312806167342928940794278250185720402026047681754991259660621863784616397693085541791409929281079940782657308920298427680967159514102317267105579676738023190343299419428729571906947424827253144905082246215843892860349801351489254351788551056120016966723927770240586439847327675591255894296189988722521126279129491795665034154595150945982569670352793075276006853680107895052727058420737315233337710155657605513515498881805906848975829320383423521682604091049745423102780470053841640178015212142465294418941911902058257027792606024234996759566613712464627841682667379665891286930916220144316088979479209812300213242545808106486722098917152225509272326101725074162005549626865032363085626175326383540438690451721650007434009718105039121556456320842379592028932498205730582250158366790644312615370612214064060784867214395260835527019915114454540465333061942727996966623516140167358305405796297898790949349563164332124625021177415366172596399488683778689680976180073089702389175500155360258962969348390892921539234230954739149128918957226214208612257513516329320256780943386494724078753968315786677838860137604498310171247696211984178015587484629858019968373887066989618210721576443592608892456576107864146538970004582472676512895623462269311715405512032486590187439185688271173979714285826738566103490600313880354977197168534644628908559978878123887504278459132450208627414222742757252638563815448715751026629757915212871974917975402571247078868562324135546215209183999571500173299731321301770195987938199917639664488676969930941256311948912665313091785143356044577405245975083665625228533897763633299688883563257250739459985060455251541184569737997258614013695139823036427926952041025708145150356677912079067397640278093639399837772685395356590497907138873913045258152254826624849642904384224023244591317029692407775182250717142608822079210565933465626406433615957625563482406085436406557057803891450633151423334936695477521408958201141451779943329358596795954425509013162544794852523868028178891268506830278120035216230399139995101741659730217995973066126876711989803848726146375508218176735696294373428714554150525667455016768029060095662774858806861373278845777564430557127503977989916537331726278504442100649561448854587415799385826882491766531820214265286961498731327124440596350535918334322942612342263041986961378814875140157290392538288890733718557290648933194415115131513795682755900550328133179853755530868269472627017915736137329266437006568024414745385942043540403623201750810804832125012622989753275345420252912927943854979428507099869722624266370203687169934851377185384899522523165311251800940587096833865232705128363846784860975134667334638301095073219791596199064331195849642288044053964376424319643167599259085905863185928088213646544044831149870820617899839217850246691462410255763865340367386721726825556121419692492529614253488473234090968531804918477480765361751037308927961422184609396133306373263079095775143490018489208362360139533629870758553111188915186409164517204339960135881997669530829733635817755290078266907432146652210502005017034166941771981127017416995726232830983702641359144708536406890508305132908278840970406330660621644905956196293073363315610207203128207698813251401638343858643702853691769314548135304150475213255418054447236342152712243841883678105010256137338581600626678816598655897298763807937690901605471051432964168063484662478962746013934721846779052322162230946956119874062344321312727798387637019039869754019096210889944476717802294122269350971509955999501891515636654879385605288603735606758796461111847229733083021064117923109503406042264865215593605994795640084179359042482063223767398053102490598752182445449912755810223870039626559182247644018835385125203004392210540140007453109332701281027708464249820149425494499030943028279026950140293237017243085781295077187025813279571214863488786137056714274228189317652726833185819455949390898982855098429901357449450506390513159511318280271349075877415578734573443273148098991301608451272717148309534828315182887416093505378324270944947756443075482490092787478606803295453508222929339180901054385875209555344645734159364123031107634003939029059261241874767875486745058148828458996053918540074108652362646317446506985603566200754010690553071911114387699239443859389325251903212850796632730302950116881932762621066183950597848409476175923989033540163905484301199734221448233169015552490567135153877935834354244576910287202729254449509641971505212472312465241156759233105231159623018593342849012511988957506885469990538088948752777294945624623355940804616084784082790753469696350240686493658695376675142520235708652348140191556175026370268500768248083332933691929361082884207911003750824156401264034539011510743384652961974797428023955108868273117618630555241273493228249081051559704275554777881975746987792926651999164122138067331831709159898435794443503022336282513133113730283339202036804060363886517130677017301411738593415102789852666669198151193609589288606762050244210167164217693333075380607656478416701199843136231529409462055832286757568685605931782514931986564419168500461893065250035717599329871774347261747908201208547866790261769271880226366543132898598680627154212151594217077818507864584014455710928079238533741208261825784586023010308234323395031076422391241488167674255906819653458121456633987174397793580296012788739881921089932248465948851052248177112413934840194402134074973342257463291480574950530679773159253788774617226850427063108843850025542605597445730482885796690302219982430001353830042512881344953706987777119424093565081884307612167262468769671328475313143333121500056216199234827726238174186153263962088574089862327669252499878032333698472598520764009075068899459054731852565743880816457779502297172962699526787889939904598348786018889921620034810763797765503904037484586726765534617089310095545020005144460800032984559380789036434104522125890153166753019503528522186478337168314272410090238468138617764390470892318741333404003271871433073321396868682534387093059379858393409942709429124459280593733699952392896581650672109420295671774372423708507345741375720695179295422769384160047298397672059681690881725356904093627597894870143252465722434245814167148473461648140527342487505611513177828856619215231482896504092402760802958183050714649683452487282922974747585936089671725662372676913473160387976633687671585813698874786198240262025034015948253801171606089459132227711214971159824032186527651356131497186653756024676657907538271670600283880753781005723201971283828150559239610853605948411942372876676907317832914905002639289412279379154081412835970075763814879005499569078820655684429291417898339354795551837188619448879590495769005720988440679912783224909535589115074085020855574241014559971880205678659149204922023551845257165550373383599446033758348514608287027378201905174079779722662102721742499558383555999322610621320351519469837354874100829054000347532323572036456417318419649199377848400165787012809090293002501493591428177782927325141987651063732302585290129827144384165266620100632791090855159865932400827602852786587005569418593278578711248323244232091982172370027459662722420244724963037253558006571079136571631557562345581123839222817431950211386523369312948709445578875770822695197159507843950179422807310854978518084387606366039534340770073178762856957119298307259755135465612197563934546753741844318694924494776678712598356036562289259712349644875806842034357832768317400597095013814443570975624518786817725289306402447809445506791456959643426668097230830350444735539709903677020612741388125854097815872762631604317532498211168045370305055603943194471165770288048655366647788462744204385561929640704554160023414901825452514452071712697743244156894460032087763963135358359647894571510038589345138771934111683516640917068855145911649632199551867246111201849804133970990092912179001807975590622453804087442829978769538895933569870717146944430713638392058198590221455210123550560092182358463013790292699899207396266305206543707172107626550111824393565449433555224978045066234692848567787702930525488606667018855456531164809086450033101907020705599506186288329391634715773140175208579793158532217818135310194948955824474526452103629913891110754653519260151838124563852557308981720768118802900849953405596203972403345738155330273582242160632072686766374442140693159819143472414805181259120591738683603131261114709996338026164530191272477705358444746071238176794367273488276806860073981729054557211737891570989159159605300949232818072556589899236358085463845959159401247705579557485754112768663215890210530880054342324051113146379969377361818748411609118146232978392579134593899619942067805203848817430634156414032296661375825659058156777831368794507347771021860346204269229888164779049400242185377239425884637400862814909740346777788827260516040946412611598722822542873489194145690445537568626090854205723966514947787589496184799850614819408377584367138943688183030771052037436662649908448032225389198641552698020603088671662533294704225983442973850395603262537646193981277813971615797752353654963909535263116883163881239229366285888779698257035967636048952083211551118457593395479636923496489246654849726310403496430064116451445073691752584365627871179991536669366389728791529957354217851833518678120868953903792723094243090625885580687634492076157905321902769409916493125346082965301400170739893933532077034910052703223901766720859923204055581346418831001332404107835088069167101152074971870396074444812810113980825767160261854618337015896971399028724009512304952951364919405138984106077921718335391629607081938801068023215753153091958781615073233477649868798071578519265163506374607085266882258621797771282181732585125435668667110621777686768547249179068392316319548785595382343060045279618389935017355563864589547342447127488408236751516906235408340543792632029298142613073604498950674964094276709451070459584255011189198092030736702051706163286871063682516534830632872878869559515037983201717538579816442767162950723212024235864700909036635226319038929151375868582159913248336178638290814192719015876756984779267962613536790347701159149228307866097227929968795998912483175732672142150753731354439730908398084588370542874738882016562895812384554840819386377157134017596266219984437238289872665167880991671147538917917103450343093081615090885896606342251309335834588344457535215997483708086328894504244440499023255355899527207468073429773258811230818259218985685350150922531453647289075408291771890235735321606058419587168052167159401142642289906970807788696720132659221362983281228214673557118673123766510439128078994151512635961307830299408684393564603652561816012092461144143477465328264140049328007474104543666105154441301289958564360447827658117813533957627866780892900354217785279380964046765691224193986071304240734080411280117733032909817891657754974258008475490992999248615501998412874273149375847415166270746904902319317099991718811597391695005566163733473077306928350225606471049142046546468202028966846088272621284969496586634476883760670367565569524696205204185958145532675617799187783148673766539685713899116194038949119150061631170287104966710719767464051562045096195952519496381366973359522470796110532695197109041105752171317031562288943829897145343479951583097732158396611243546482797159114387540136556702599022736160151550476079635546110014239356806592335869703216166344046600938399313778841283390886843382806060535756118984524735094908480074822215566625754471872037105292154440396193778364388880619390187980791685128840062593443140038610473000460463097544951622053782955104148423836266676070875733229219573945043520830411693062079952734071462407473417815812504234360028697378712653345529738104195250060774499826650298729939392021210089904810158603722048148727135679002897203747855109767288756908849889611112506758827701876585685589610937876659795537851187165739901850258270069976682813500628787241477538513010061636152330996158390283046457890852437667077522586203782808041529745500319815532552709084404045464652328691293313440738123308270792409482793428892697983077998739511479496866944798091192998120387497627791008767115659319459923646595777806608047668549659372458035579927589445467007020894847929269861908074730355220953483517684032044521976205011553419221005567855258112653758120947417953627192105025559518367416961794839425568423062732485999384707162410499521842851057951069993798533637108235478526384661764699866306766625209432450338945140708062288584205901507075201146568976006048221502675201061834762429086912924725889194158112074737206127066792438282386047405790419271121469821832693451950518431069490940909757145441107741470946970796734665802264808544367298858571762178266654194112442169108150461403358675472072730162028964969079341275241908484474473203289460281546082747352765847295636153632961020135874658927748252358746290867226498107802583701961425124046507596174376837218341814716868782226243201224601574294313847905492857410290724422808546292034990817873078655538776771803058717198182072390611851766890588295839222023396245400267517839252456594136638037505433307312043396504497513146879697452834734960369537167566051792063335117208151341407306096070710639699238668722639788065270023268763316443157012281905670410354325046278209297370306583688111348497203538302261413747499465890854600551597454102897690557283021437832643941286806975517120874293039941022727646857304184227722421228943275786154713997401554639337822050175022083675276449795207577519381952483539472579304001100089520338722271703903620682407336274245980067461009033687152319940766765239897379129076816846279481355638276273779482613712465162874686613071009925183023817723724514660310377709076651878333963305374229875363229631873510757716416315718970370011706248299124486702901425413457741071536376188262248293360177525989667950447559880732332707118754197408607885750791579185319917283125660757045979066664226031743033983444069079426694614668176576983532037034624641178780990502249508031776849914540377230714153442353118182648759572469028899594290795722351786839335647204232774489460156740422412761298330908749995130417625834248481478138651719724468797674521416192000799212780167637894414552269468388210226888390908635450811342702400640142720983716912396804693077317429833007441412404294870457474796002860489436290817937131660588062140208886461879154136544098658166263997008785762685906863288277405086986877190856150065816079858557750301007851472726597633701133387253894870861003793142129598508157599011747787748724148271587771349002339681401248400836840295945443243855898271821150353679720992612458684013216287646167139390280223728283905607133706316671948497501270902698963477549034309370223641771405841054183795906068491433554552767909639705212594910946328144031824819213873934637631328359508627987408182559640698697812508075738928301302738426515097154075171492222048703843092698486691790334061251833331742184890424290329348228353001970403367817636530486372342738837101867803180128855023979708999901826819175416827499434812209889385213205856788276600642873308379710588821901111237571298232055013511151851654329018507466838270993840796970293882733503437435327715837340553586578873183812278458641111212755309789728241608372850910737843484860511494115888640870693111864628486520487867558805112626221711575236592269544598159565028586587964575188787916666638721973822194874477721992548418481279063532740158651014303201830575186263222218984303920126919411408509610099936455490479345149110466666654495606767293703901565783732760867300867986245825834888474618112875297543245825852445625724638184533139276038600916971868953860620916347001353816978284623397082628081483944575812185841492707281794516395742770182950570195710298350320439523026689210182260146650233534940281167831214501925390774328436940394113066319818432094366751120847721721945398233722691290858795702837140007661314806997207214843429533247633021439613818007779156527351356412665321998088618044169194555437155947257409765166387919788499194647288251711946563058650152426096031007681589919313812180513029835533764506999310714924437185314332199867178720092633376773138893036585448126364010239051920068277051824096702555096221935118463074456524495226148259990007519086329580019117920080089420793359916017478924793268237272294430521759739378476520949871164276199409388092731326269085000211214438719473210574372486695325132793319173743940848720694711726186634154614359194653128937295277414405587867667500972130666904168580614044281318250997430528917795869773541477171403001811235293638402270170652608598455027087312583466903212040326299524288227330230123868855300693922243467199164262262072181472550125659058680658787040565287668012793264673125483469325283551713137920980483023618324903709823663881944780198586593385208825926813457013117342192983033863864369237092492413714551430097306114853967521705702293697393194253849452459811406529155358754943285432429691833680171813786066307770007174877580353096897707807009023326010860926847129974065992556201934285076436416134841055650443933280641846241129695315950324491552688394473901419604808723808114849565059322897926136220573820261796395451843175045855779173573498720477153613762960040489595788510770578416289025232565153662107034587744561095293474119513485633227178303156265086374089102154224647265900678031329063103113954803692856226427213749108234730590474008368198118653231869795817356008270698598342937555932460198603540571913601306504216291973262926428478625678875043573353228929061054424736321075674909233934047597651459284900098016188680564816878276626155952773413792593362192040061821848014452879981468869518151688292133998922739149279655030176632800885933840479437023025195850029434305713366439963477735788137984251198206301348597524156978772284629834243655977050249644621501511171015419933966004213908880019977952439634512397971561019506844369226744562378975335872772178303700340670561884973644534081944497095504106628719934131498330175656885226977980849411694737281468522787699736990504048283406678327528481854685790135619273449480494628232482679551510508072627597114685534502587456282619296156442060202474225061406545002338286332883292656310706278217031242850884968279326674759431359142757357602587432793250477570171594553500875052601767313015797659168478335129687092514486912592442141031142812346028051264114422297438172207756123630398755228323074697090735892615977475622366053628427293438007651187979815130694306060736476185740205601454117827571142634964372580397558289397607952396429889529245308090188259726120485087299081591010414265586882976148902856283087395299367151234270401387645855878414885774993524614121518392887705507119753906763265408631990302350668642504575719450630292936224878067420613047447581220391892808185391531927489775766706549776037773774818794675221422671016663657087149778872788758737184138225498946151271673639168541476199761110633495414712684983962773385970606327302770934861394880676778279934572873960404694178938933860064983786216578698962608416903234739312812039133949499028331037802461999228553787416588555068350906441260365473589111080723027198727435831655001775094973040213838448727417711981866852773814236994159766989747262899891172882531924261852630215950273662126836334939959688012670693486527250063462126209793731003898681136169919873403867933214967459457889989964203287509448360238960374154666144102260423725654242228478311893886278063621122311304447751872465746314396222644725960743417941205722167766744075731799690002691511624135635404510882478334363890352741470349536016474471298260904650891146524286657677248867061066358506363559349929720368313998528960951908759149362380937601252591579064979529561976688048457301665973082794028428314309429401914688217081429608806100569541410106742880319845641026955667180747316390054206326343286123456018479893532433564399084542524936354630002540143414503310487550335205039037278259392418307825907417956230288211849583912191971414117428893023257553587593070503448301110577327678096175173802275045373752922787837362931213797534251879746319766569905538084734785838171405802769286413913866785649157637298409765800610499572973650207299744648807279993945109633200905725519546587653999728418903819690298287999509590607816096294198584073035519754590320378454874446418798692349929783902374951265784674701103538020379271976216527294146852698850138438777018645614754464958315314755056501165606504120339307147996923894531679556302784597811520343989425397513814645365738811084637908177158020498717815878754378379406208384159448129803056675538198713030072618333234181654484771687868028296289787995449690801101217690820579757339076477660808704934808864855054808787917079745755469717660019134884197825436499448349947755889551676489388515477530488505076015742967790041747699884701153404523487936039116513002867133622912765727559199230032128973747173272879626686397830064715879364058301988832319059755799930138907844755990385116571415141020215361139549359854321304876144101515871917097318475516017275808775799913780992494206310052918079713011255181231701341180311250949411268499022478841682876402290695729053687194829633765543001885382063721484262694175927530848839173209176104769234158858666975737380179153922974018258022181305057247960610846877114953192936073879399982874520387949043190992602962607095812651963561564337549771145106107286397416559442726843911154858033877176063396112805188611965276399158726320601081539201548659490868050837121885326605216075475631600530292624701813555939088882565558887230785893504706825952297508996530986428612648075123240808140421797413975728922569656315713122142069511342402771703540029959854597316320539471345619649500559634463881638314493725573047847414574795241533207692131724393645259434045486321310910211078920925827794015956345522886325065310534016612185253931160994050878709723363216145896590339752444874562825546281200261255818343647540670388379303433057667823390181618856648879689425930450180654617174285479975740254364982003799234333778796138533182523082408560518990247383720161382920231566061829565688501839552709762454113981492213642981814457020152214121273632147839910168121221634501916313395745887912973467761108761956437293117519913921193406269867863622244075275356661186872917950820627623965498851067409916865980945589951658898294191344469814583437240472198439770572785355670580072325318964830882087989110643085722941429328258830301706801674969645278891791729107569705038377801454975631217198638196854208253487433318483221165672171408838008249342372318412436510131310299426761699890570428090274951669901209267139388582605115229055421239853857070957038272028224734886919682330821094791837103920138975743966640313044987393433435782608236786348093705009395431869758129737370571452841473209164267501735179734363788301487789574176657000555938562365567341793111312788047549252989359010644636287083715649752234797548712567624200116329493605914116593104183445533357688386730587955179407460633575600979210686115146744372166002587984343423085880744492429510778462938287410933132828867192327764441627165612589773004953339000307122530174890093815450531692873358298728013424888151613404363249122895478734985018540496806079048034998471573548042504056876178240454320178019925608530829465416198716285503985156344538501819908350590124768142660050327572695102179106893620552761834552525438388678950569079376611611971472633299138320482670549973167928327516963429514360001245218512023743473882515337440787226658716405671060667549328516469868619148237426534130260365658475481569767081984538930079128998095640692971921491286473665819967704189961976305280172189274812773130380636002276491294586806059563790619839523994011538131603838345468642225031831622144714335206599735052546573392368129304256497617872516655174846861802038875926306202092779542588443028473756956439987330240022906681749792195231643075080618494877749813591830445638258292780561336217579501924518531943487257035959539411131290375405030344163099977582462738969026293693540627026052457442277521266169084415882199646966927859811990460621106738786359038717175372159682997629599405252436381651137286512985500528163804642400370405943677792102698248764480169661147948068611755304997180768217458464992534054086085078495132052130939173643169892864512952358444866589993539008879250495852220032293127962718061149666599547011462833860424038753674390978580954494623795279281937137333225120055767379944903436272416940252784912340494645914793207267906944218624112275293266677079655678878107254653803853201383758883830971612013595615254757532049846969265479860369454869454829170645117806402615414102379471278912334971132451491114748465428515334730320846862382296526836166481646884795916715228087184038459428624476753801240299343536501168539342401289832540450230645932662746926883426160897193786605672057265879645537078160030157843757412257311865101707996242313996615579137831364939700490203045026517948456275220348079988384787551048333926584566947232248149823764141065608203678546274584905960503305182145472004800792537525990142380828163601599764107732552879666793980847314889456558871251261986328007247046173010926550108700804779762335083720773069509987769776929890719769293769462657339977047419017474025523015764475040764810694568018404686928859018561611247992356094344278904125045823010968955579867231181321758267514157378906989238082030118539981846598382697913715518682749436666840013514706738080180400246753945395681761147735361156729368229977452511530768288711268053415789466000791229131092290693093082948131512696204861810658609253920172728742326052912654817749307777423178263922710078953661002088778428335437928171372911358800462256138466391477764533242981917531468422552440372547388128616522276599666927296381688308306380133230130262361668438614467829064194560461198550272615292521301759567751295316729566404609902421730006402321115324202795342611512096318197931658263852250606391823774657541191053798959083891668334044342379543932369202853672563226498161688989157074732350405672991050237936204467777813176978912275169172652152068695552264502768311179338030259211187357988688534327444445837019512715851614624398364602164403187357424709214450183942777475721741863163254884620469458853803772712839949991540422620030049931827395740505481909000867581288963598448893676555230076507236748919569227723791737874186693363624916013202415451940269748299684611898063062475054331373652934438504894173602065542834674108356508627966298140126916257077101881450666815218769603102956357868738077719751095480424134472188675704280495129050670687840607423567997109245713172462080154953008420931624821962964407162153260696427309235829103844240578434444932130007780954986163643496701604499468475803857345161000479311178706034976406714825730198807712384247254669234149783557502738949232314217830444226519963332623036761119461166278420972698250288328161386617330676766805626032431435833514696924037552127405562673384102347768862223612940435152116383610154563563729125992713253050512075750426106298954657814211035664387842280889669925175334086919849422471284326519551743409991381144179416617529144147411803031466387881320725364022513492555807668467048405275456933425829377760746542505054126292929051035837201916679205426474744413633772784431738936022221473192362284096932494010828581039785072546410050448400216842339221191304404445588644790879433905294827954604485627275513261259374439054912834754252562615754693840010174859373560930214325186398011077491563860046116577708843762052202754023697967417005881206344930537189047419239742391936184683153107685240324933815954934900917982398251901311799957521699935423663172043814175379783407919181124693943985461640750029861173753796131831048918619877723984826878297428149120215738775305452151360259554146494714456157908145732802654691801298900823215196598646502618960355832815164645703171470395644614216728330374249606963428891221101517020429968550508860378546113404506699070874774856185011214260227455617359949252676030487591973268526020062796787554568087964193076806237901310099414125326147112510971691220765032312877832842777580666142427308698347754664613751454259271978021541049901598123855684772505987610010558472587584402667694187688765856695121988686044338776878742223320649340369952375938515524913384593447869368150706833586939541293001723291013037102520155904073344331060695376552167861904601565505862644810460538652494723319756969455181036416207800264925969359626785537789486639328960164067478828644846941751295780267592292338757297691145652974560358756971464469891055718669363497077136434744116513456678476390025654817895835643076868796709605755142486331516333746408131497613746148741642692967972685125035765428310491199971796233349069145268627662952246096693145967018517671269847001136707793033055694948779011250412892282431344000239994346140576718623629843364708536811661233047535234024270078017869596047183694374561466660516085691358993056452302254316210654925610528350131325112010379797133627974740215441597936893447567748450899265237191351416220373527207302744344467811290380448682785849627364622541651740302011052801849215361591314766863611529215293896755219833301549429572407343827485702579740571139611206210100433988861747473114389865383653339230538160139667346996195822378981624281928909933595557178801290807050363616460969278377136181866881741381239481033044446799049186080938308063127312953102711058367953241975777597521100143667190015050476430036973919419491416417892976521661411867432439711271652207554197044059299485004472022624917277675844938381580089006100721705317023280447132910301933764017538251853162597074420096247308727827475812711315441407027735725579011285660179355136222668026203857372222963301696945659734624656964326398423054193262963311020221481109723688623383526278638749708036855180114518019624730117488831178113303329077514126098623003955499966085917387870260054678912363915768102560206562454598514402787835014118473167264509866487176894737160571741389740627811867658959736926819997703656519237422741866453143942856598104783321802340737958505494826888733020786605581220949418761036693258150293033788094625640232744653771352497530630135393948105795286741573264367066958759425450876121351980369181493695812727534171204315684215532038876371029061807794615514275788452722588605006652633732971745207725355727991272129335335270814824185243285238091122949074415880786788831592654193469733628906596286125996582324932992949348063165695163717176000391935644252927315266098277314342944177371583326440112879004619717710011008397450067398407859316460610575368094824468611108628168714261826333132446269274116579013094548879377975697317046562878348400531783113191069591763205879525612030488275777889239668363834807468705052056891240099761088596516821850842422435487639505917775310146406814800211637874987228851640059783673225851848609563852537648349921799068574791082264096409264361943028872078255986718927731173105377042835621849076738211431166835644870558542646837123203553865548470789034362689108818750684299542065912753695921413397174964531999934363962907274232003436150588609126679122566785110227245038331832094541419594794453931891882170497646140584479030022534995753371217107772620329134684242997953262655975308716035449884641595602124879845212512233463599474637101226167041134413213555060049367249698624071426221910464212716828151664553584888315471914194408556385473553173639317769226085185667742272640502601599701600122271287475115103511322661589834596698089624237220254766346984375866769168147969961161951066426738494193993439679202656096899418191718595700950341917624772630273259011675415270214311447635117626740132052672302039183420318917514338446658115060831488701179715751118636736804043551914807111647164501831213692566910422798992322033155191228921360580310116394197218095188070570844740555720017322373151167660369610059291168200408910930462009603370688249234067649339464677125952034595706521370690640511801072182249202129060805041291358598214889602170698410551499016899924730328551979773061491045409736625002140263125881609253259990434141363027654070885262217498820245484335965519620945511907531826981463051552361801460741930530370163500514412561455943767011585938625895098548777935602528410358574421521138136598612242372757589992511100003081648200232375673386307749125921634082482865304114074972631138652375198876078556614112269330904098610044342257394871480453458809328471231841307222674901960231268298627641509206720212447584014971308877873270808431018640918404113806634554141779612989240047971688926420186438721402768209622185792107171358322920523154782067823338579412668904673492635123995037684751077870746719573391515971679221808984607688530444727929843709646433451151248924935581392010265660156903763188728665669946093741400360091440663751816338137027820362521123038904394201608584822999916353011274991291609914074156960286586962919382722943014665413774112534733554356838567949118983073102581672901582602167106861506537369395746902013408235045966710932686561219420460598202082052368302532925765987427007196437133323428752417738045567323820746400351133509688059824251245025602866797881455667857693310001752068512003204335351204247613789458634886393668431597912128960336304321489050614710140652548185504273335810257667994286551063567987972792689731644852603178039293928465508883473127273849331103006109810911145171617743607691054942308235381085797144100193354493676835310266945909159822927665211354534806971774162595322171603321961901159812518456121002419066514946187008930126651351861063190744088323837513411681498014314636894170910754698721487317751548875083765159404097117864183111240625852112443651347850246449351385911816926350031805979294887382134012777382006443616482938028023863629813999641714766519464428409539040359944458664124883508266959706303421718843202394375561300769149241324456030016845590536113349534461278434500800569777571867869524413271081720748132619531197465665420912811172595771981390129097406843429343127481822750484521890212995790029131640429766903591270265820535863780380257280376059364306142998278305326694139327267367197454463718351503987704439574618292336946108901566896509163526703811734012981854407276062576731731991596926885581045206545149343118374377765828370500426540316755806683240206933359988099967277815764424797429176243343002767905625279184225519786329606539019005348588430212056657574605751060833237670836766099499740674146974839209706289574361295146327797693346654647628982345944146278350082413809067759780850554064866886951569860796466467776531810138559953057128188897346423962001584934461531368691095831956054692883881079463862691878327757064940781825678671940806006758211293823877403174765651331156842089233958458433140871978476030981299797475821857465368653347458254187543394184595913566665312038844378950551039252499041186426930437633186151899563483542288251129280118635872605911928916074212119391750067850606807782776689694734159819976489804118720793669628870542516899786797180404029406817882926276506210486849358246911528604868785546953646379235436141865339470473345974101050715376185917853869117940505397671377776354712381547327957525262444354499416345010282267203600453667002443205590803415775921752966060918239753641148001430271780443060866058125577270145310366587310958492484811389392884446096195317624816399424253600981601247318499303268627753600145462275838992822091514659271270436989575585309296351625622571016334728023401357263451262678355942782589482922962479717271203711505735148998027626085174897847191492756217642648610111927118913536588891384940225865642538687990077336148335549343474512637440034294911674718854463493724464248212598449079189242798254900397758688835225196055188151742397416735892639818591528594859074802767560840657975472962119711130587134374510342146886944452928981021798116857281653255351506902411456419760334998326877633933576406487262691746801532524536289061624298583005772677697321359795524671071510674538052431702546816114863770759613514933532709077412789422382157400559450511627180605148583054222050953834565785375431606138015390831246075134343940695819517314293100294502937762543230827719636451814239043389894166643629564534794369774239426640713113496394599121420980648192253444376308267272463160138042653947880252435519005788805207476796590725897772215815968694011390885883545858790885680292763026069134457161940439570279581406535933212624200528426764896368034510490564350703310544609422505616715303637208832227554201634100287997733542911024544448289799045520279644591111601705427914836024342142230108709043367479287205787941780808070135056475244592020743833497027136912085881169747053025879582596755859152988566353246660173029581966252976500857522247283406831718182658114709054119011032619525111374827267543148794187541190626771254524091091539181240028530036343439783319203173531596471760251982434147240669885363309053615491843696327558027271264063978130773687107928736255846563644416341188806676016069047385654741308747155361585412260327835462730140133415515917264134286805651695421480997588731129144517327268944332442819254764989363330817104895222031366976307896796956272227196830530902361459231859288389143714508435571535766343885727193535978003681323889439491924124917800216987372104968117716981970467715085545777110364563479362641353490326726359119931768021473130974916199080906765330531439882433825759330272942451245669348504065005186248278489906024153903944303576514715156080187068414849641695632856673097669868881217905406497651163587742121639605280071506184898389001600113819139246525242941922836818270966524754837216237276549177772162476715195506355465342044703421710151317397928076007066501101684100281215031479582007250020504392818063938456367405796715469296970970034029313876016057277924135519743629293317383669687149278946600051435313930506257484910025026502959414048797350204830595895555287169709617388408418809000637156258613430691406720208581004921261865930609719208059988133720997458174070469349029716312014173148745475965888122755298955084027529481767519710638128837714584810336582069368403498709357203034751146882925891551879740229257132824674761829113227260983893949707237632434750368780619273853777430759104912732785800581877090199378031492635547547300016404839036842681411747270122334570739593337723835110569056660512151977752144569347950472079732531385425277377585375094838898515429623732488023579832998794805203172449794268360093473404780936476327178429874218368324750070203816582194618300509764700964224614996388945659897781481712730410968855124606265064892489632049332355190480309456696441534720340800279463275205087489919134509711571800002582396024493945715134241388262875736944690380394655614885061566624804113198805305651003847633561284418512360937519029950226609330147751911570680392470193236816740336351563697123544119948522274861774695663586065682407453570507638741193848444658240874078921234922926142380416506146909381139164704135810780188837079312543076839228364318899430659725625203877205082984297886587718892188492285178836934654455467649049249369659821857232430354974128730527254403350437926099186109563517607932402943071931104520711426374940283019359282672410175778060201240316413713566694529938662920446531241673717213229495941516336238318980806627682235190867759231671021378610793204027406061800276584119358164864485828376553676889655982538214765874450109112131317430096268016507661952272899552970343744527126719224370494676814842538696699824994964638699142605337020011375540747575453519195146957166511137003504776225662980514555867648813974706795742104864913641198678266478680558753722557298594376391919958516950003155448499724587006430570674528637259340252623658147691116955416444583111614126082183955121901174820510702012942207814856517112439686756536658906450455506174670202615537026044540039841002560839065515140428188932662486001054710334756213068142929986389471488033471120294184715868989083069412170154054385843490543667554480377737100841001989854955807191684271121301703579169018577050387493794277444562047028687005550862650181696354331716231420180683766131120260735585503402259765238198739959800617935067599225091897059195427628606555447438465717450819926808604947142003464172342384369385537485509261596766970763748488772374296012043791235944753206591524835150881080343035885384099631572403270887474439150592904865330487560750481822898133309792220291493295806398568591902741979890253089112894066476378419400865803213180167783636070716960992179811180500658913349268211199962551631311902169513594849384759860079781392902156823447612274229020987564254861158373850168029900484831466405974545087714991134364312836015566584302624291096518384979935091965060781420243619261008443684440099175175238392448156715870571018256416354977405549082194683097705729940650113811538680027606573612703566809073110585559211528334970717275347284788385251575853727493058178752832864233577026248602063620731132272846543736697754817833143422437485604291655121670863136511449240283849036245893063868759933262429890381203081270992651382546963020789214013215373368628752454445482713596506253617336168779641155810734787726877471450335220978130016697296712115808298166751753047537628397850671430016649554244082629524658739628322882452388845786544987415731276994755615820116367122587178807000216931973207426471553138440187177066624850136066393449246955154745922204649390581748794362581013167319786997079290257656261470184025958641560970875217642059652272839048586184375482695953620889495627197804880157995641594330946352843246225641263777121166968699925396561613369431528735010758929111589833680111151051487637869134303453786952021684296484943379380641351427388732430325025493581118284820585781493943790465803836836903111241483004396347779434565375067931820835715748296222280986192343946111086820797989123807332473799239776549970420144099975194606528743919469797050360184939688894595558596504134733295578993861379271008742404197809897132682287128877792614147193923868448713181000106294271580128836949716651238471861881209572567907336694908938459433290954369770915456044640213805530308579916955401552207789583005930455068390935148467545397849941804364376460429751177591534245064390406588536849828646475067454003467071544054179080958494808472819154914806344255000701780854601758400479678206337514388458169230648868238744998798431644747238331126655047057233045180153174330912736786996839223571668458369549514766499510042523564159053947540877669779657358274475935326422881511736719137577224418158274039729446098612388742421306150637152889933406852100408454712378600800237516586192123307968078049763400072027751354362248078527314494166703971978278201541136203154548647250399935022165081213444965832633909865593654915788364532477487044678749830027490724365422958958146075870293745556245655569630152741034830825977960573347305365115467236523182673902660560306452165781500415378937426643785539177608673592968028178560866300401394104510484938873065170625334447687765288266417214070051124505299536686914314614172042851585130253886483963022962124286649030582116728654754866673500368163114443055148967136906498977139766488738665110165702957002649187756238383085142517142022430723151677954118323217216813595329088397436162758991922198063111603559159304201808219313990508266061516627291860135624077908949414460224245977443833990088884055118267495090505984028404133082528977024968453413587492624935581805988683548865039561609078111264435433069105029088106733186895017880089558517170765119285381773371054248963712665437884860813509322288141090223299383051900741179954239008264280328159883381640236035372113349737720614876375559943127563589717958032358713169945975163331015046377103467055885349169215715168523303942557540473524254875459246295581375944820909741058788271982558524122868751719415745651607186275845340341641804752827597050022445763984448392241308439412234278142898365570103598043096645468904570242686229002646573872144779422733831274620418351964056645196463361222788926174455291547683364708921545730851222310018353232806480898495612577233416296015848302726926302524439325783512389667773980000589508697957397573534847148999771876284269873387809643170372545188816844574097033198756463797857635640363232341047526074575323013168760396022583895415151400957311953574751584760391042559697382373426753848336007878148514857605355265273309122205182789731801567563537607009608453811995293316735960602107436451972425641088322583222203271146334514929112882091741794928800483241729622519450982488214456395646828785135487824161777743573239656234490260536981866158714690141666397224857733689127185763414709286275452451311204117537569613506793469371121806707420436910788517252936315941236623294569130270246837535082825288624623293956919929396153524131565798711760951712311039888578946557904391631641479889359833560920906593391181119141731042254407275989524394420728959711266179868474164966330327256914898510185946663643875412484037873003843313216280849176457713454212844636231579848325750674398196671132367170824202025947624897928499035566403077634255167583821949422278110058854686334503475582818851565841601626735947942393341094834711754322647661162093545957998016422959940813597272926148689799905901163596009162455716179422034085937598920212182990836414034382465322481367409731260586245806547346567236097650243804516329751458856602595538745035500959963557817986545701137608485781590955347223427926357376082365293430971816303919896024093476642366354017619403923967018514997116578077801469847885287544155125850183772608556891715078567051898642949270128009798749861784929731571796614188605265209418561427562060018034732046822899575043316715809074223124098238469502830147657629183785722509944240187395678807366213564143874205641039604312334099107396470393053089700359433753649013645265445377278703879562181271685600005328884710178436596038188808299355340378889766686112666474887109086338668750614270630602215762910486248135448499930645336827562132756898214163131273012408279201091558669524487533338564242388797719172885126542025670060913930932799493843405653114031994231508765150018581323312409544414973310294432398795380975370614767304812964943632875297259460225476674691086601652448086959562686379390005742197583177419473120867106197602004674770275836825436629321609673335024842415814603315605416392134688904255665013174686788486317707284633397793778438236248925689438222125758019431515451105822814496431995714755624339180105333322144478012786717098321387979537966663987428084320634102609630588159655970622276870307254309939117348810407861704416104965738005242652346517552344487537151294708517162137617098487793852177431272810653146923563676192638746715953414061627303153190584602323887645565453050422620702344546327845697856929936659199327294895698970053712994517422086941514916510634872695918405660399457869075337447590657204696828818736350875201440896102407785702931232030447075495426739045258086824342795843348287680853071010950347459654165981187368362074305081491039174695522775118630407736539062384697221237184117534064283674778239717255499765575658940343427249802514808053385971868920252935693257541808497765503434251588505848456486142314063504209717696068309817301348152386869838670448062474893988553647979960650653057116875745156748606544296761114591515307014898757064447431395592559916843131544424292606458854928006948531792064831819252089763664440436861304409521721522441836341851471022181747637980568663141684872380867725726171639823297767244334789296974099035926003701430473084814925986482640696528035763984071099840633392465799178357791570406722757945267696543080199535459751715270798095140749164930302265188191665218043085587556281484052448096342504466092107037893378887124863446867970450040591890583805710601711991305078186528226144920098418175692750576863782871261442501540851478334752796575272184592767966484752135675378926843645303285225413023697365306760218025909999270161549016549699224367929560945468607585328141841052387554906872248442893758030610569775134250769785289249096847638068868109187162500456837628048490784946382294231220229467819679371713633252538031160258967621586734183691475016920697644446951682366104689848656134775523959770002531890793820997208083518370400917527083060467856981740943234969216831148382785565788122459704926887097392636895831153482165536899358816545254154056780046341454534946335884107385622011097105847359336789328545681522664680771801828628391402139576927060250052975924180129488625615543506050638898099992685075193295067230699070515135787999388209382558911559924080652400199793565219869563039016650009407839113461564090178044253541864943225013845271057189659370158076897578029568317764501994400125001614005661183608022306626450620681230761965617707101893571790740149939192494934506755235023340070701547487381887302477636447017017428882648510091526033715002167848950637008741012282807388387117350900734986416337150248050987404143467909464254425252205327973567060775391505499350770787226380677127012330362354198509562713135737082269625393776134135120973766180145862436640262571337516889107086558121378373855699307957388810598965058381781769298342920351926921694020519677079860919038862774361617016167891100578752975789663979198673002463311774737953490326845065991352455791056761275727802245155842362660928187244403611429118733471260039967567006155336682234612404775949938085340054732572711710893681221744538503755615737939677051039891845042498780475478655809013793359015157378035596157910185248019551456096415083554663256313511849713129326138410739672268517385897266133407638105655466222901763317759395586151628063278232680311007800513033040000300328308573279834854427454170288583297684939539590066612595331337861465727568239048456267847667893938194678616935729411665324248471768698296329848088757701648786333567868061594961149884157991054829371920376437336542761271298502658202227152247128278566741591310270751804995038093619415172389796392519671756405474490730129454034788065631415570658515839094898665114273448582393956732807367110643812927875853795533825951050654347266903066770783161017461163533170683688943674710406421857839583545360029607859630796542133846787979275528573042850629941607195061487254523938726532314801988762406965547250719647184570826992649054465134098961150040961003415439784662736848928900835921890972500551452513864108882687621457563977414544628456329944831054398658822620292832302366912559726256525206450384143434990495477916034301348832142370232446717138209461153252896097251199382963720500601575498929132612891975002625272295904527052514054713182873880116986106279758356163936426846730452609282554329594069172496775295263594443536483487369050683709122780090256874871913405554241003872123868534088566933279795913409596982984549602001873607586543681676890113498612683754329696884237896780951564666158427539585025088946301640850621346282618450267191202496536139677886618730366916956276429732800308853055537584233051626602778587678604520304754173835801533815218683834323671392302416961079710594945964486871106574511522375876456806625647266408670928841133696474718144617332181862917259885427059241211428220475918991916640196051516928002254650070971450237927480616736342413995857200530431579598116248098733086423305313840574540568140972781886395638516016871837978143775915274855415994386430350843908050496161429906784098875812223211810687984967822001390128088320763564774387984695027885073554816323603758268495862076299219549879788319536902694060647011474669273432879720155222174688593216507633123442478497374942637825406541475435910167157648779602236630092381471125826131839653219588295037051021168430400015650738579883838221958065119310075633036494051428076116515278770122946968109639614697652093607045299206482035039668751380663527236111930753508109562802589872149192274853899434869223525332502394168224493585454916041618853826394939938148745899142986870700226535590492717516113095083129247933811036508751808398166259788717123179888318504023182319508428112746294783535961641066060863857309660005465251403395000490029179468114524170817779109494243524774099855776224195348064642844602401019013297166933567112140725264485034608899464338549718300264215880728211497325032042031163491283221085641343078723539402181663852961958364989104706112667555382538467835247738086222498766781474941573718032340615838172281406219286165451853037738436151336234289532677784017610293031931334211730719434373840522537170653658456830126106631355177116096476567393740410834599113629356225127270563380752753357920474146671110326760870898003406613117461277357795533802086325402346152458830530531698450696505250509519957624845688775725545573143265852936629402735878585407059743804853320441170460381028419643084776757454594313481227238479482857021549619372037274543101570505005513412971423504362117170448525010373079657294432885446674672205926720397936259844879076927292493930163350801911075870971854770007153862756860576181219362092698998846382310921454447910170967362190414275996682295531356323187274068165704396663831767338959242741327179726727657089001440164086956140680132511017226214093540843085571411660613510974613648512866179542913699189730325843364554239071795383291305730187521235062575396578520440481404702259384267041673326693673862375448746129763204405574711717002017638943962922233120658531751165890594228692588712659657013781809517721547400408196378114559906925948291193487998107782928869704003156174083222496224312766061586407122504569635149085550466549399154444877141353676830316025589716440984488352037091909503672852959156372007407030685775468654755153122625275317646237647117822196214895017436992267014339043388842887078797122911240411970275577919455607760316052105077171715747801384336146443359126559034652270329751080967525501321641513840271409917718685210737738060391705920972450404682481512628699737560508417723601380121744324399409446822976859168736181832552813534414812375951580599550385077103157473805817717944288624883908660823665558955382907690030777927158943987315593496779532796254268957489863042377268838389701156770984766555955559129785465967560482136950249854391994915035430460205473590664989218972902830733033387664156724072438168781776683047589576508036761402558564893863441812519563851390470876686683782194764558291767815644459408287800255352939455085037684836768251554003541535651538530493615640798660538940791271593803801073987021624564731368945954532167075437964796537558833188858465053649422987629487797576942180604130330263129987893655384494262163309581632539131675604788835931841154498785860014587098890310743582327045389379217975312305111896019530116917509178426019633411139637977775469817650276556949611180379543025032130620794793125878897662370691605557241957622057749684698489853030559896447490679059467252958557270350576065395640367559318124300858104900278825004674885939310942953688781654681327104140880122724256576658418098452613883552444946365408327126065754297008388619974154800602322382824708867008488679831591637076853150003653239916936180953506364214826835928915271079903732769279274169200299032114176694141225218482302654976980567115163816507588680972137376976733430867786311601635293117327512656616454545185380187463533331478241055613298198972422296372925819581137290456927942063945885298898853160850313031436541776063367765325183084861071574700358123495627210510052069951034728280732464122769650746392332749213221189270538840640996158847009276189770015250641430607693989940845550374330597056392645149687486552861085994828888344707070786289867619464393499951618862171111777734860766215210317270100041289173343128356323052403234304170214293831993674330742246748999592585686575326494872950172238758288889313222306374990983357179164406308630961664417525207854790627544977596979106817255922397220464385902914866742613221041820372609275930700869589412626146998441454184662804856224645171781726598451158625504208672499597762997289205631429539453402982319907603464426712645808835775799426629183397665169027089459687902486223918526515937259043490777661079179605300343898093479160416882789195210021609719535538968530726309789410709838442937706378859329513818929408698960038764688396343589410424779021233648495645394059197262951665469117537505320389414800760824134890367493326779816188134642882265149150244851892592278656287732421969670606847626250000992827098177180666965343272931959897664630213356554919689804527641700213687845650734989442421762540918356503638474016802452444374979493990915786027881688431885445888903767581279932359125387843212826314838911362992192030373825964782848958728061566200083276490027514383638010216346242420031206696559057209556726706943386534654167050578981349827602946760193267203569214895922444025514829893183181710825706227737923738880193147317445581059898023234263462725390815007737906254159764942205564762994275512477695330951253927659375430113518272126427654521268320250615267287810486812923017070921024644054752181119136912120711124055997557085212764176582674297833326808395200380454985634163404591223745241811641256021601302571827129184527548618399102560245233717994975366180415006156702179440828146302661838675421769912508030691386139394411620574376016758234236763830540262869936126134177453343300612700327541347985777514442537112285450898655903889929269090363342518978162166756150421793337565049596829680767882161432397821340636632163461883907707213586706681906678070274362663991971735467323918068366910527054435262350689435876614131673751595768643977931229377061014903893182992772804894675963830068653585293598736518823842810438921693128726680688084246814152534619902798779732688380012440405395416598622597926720732705806406547241223765089869923223758897399628964428507426135187603883267415169804758444676629664427394746081234038153614751954957763817589556175292946663125246070045331315493935264000660060418679861190405049314534743672023712546002158877114025419485569251387267688442256834250722119055061478125042820265924421541078287461941021488656087887940954452008201604747815207142877485628185940675481851077970364192804613639782927516219382370054960523346666359444216796513836904329241416329016940715693344186328425623538800664841549575056153121317698687865719143475282561171197851909555217873861052534486105325045373215099239248788435941665072871211084003033601939151831789458873568603141192247035305113654275723960946309760170195552417686207133365663197202329553352260406009018897669882785386451137912881803660082975040547557092315125063103780678186914456461331307290245109767095550370149568667125947489682479635538428992009933685230501491299094474765132784804049469712784072191803988165882243220072599492083250941926351132894090209762795918665748371277467816165090945891557340567759902508537341157384100733101287087989620299395359457382791252234007070505616495332393193057863234443704279789450243846046089634260686875853112975145055962613813620639573629811483007851871279717537266410601680543990208210157061586341581055941618790913042875222327499993036157237637650988958633326441024683142140356066835965515503461642271131469723528048804651279114304182618788072287487609081378213916315049201661693469073010629008577871960532576560588231670587109548010997417506942855633680967882710286619829260172392385318621348608213837688729437217426489215467701010774838691412536547953691485147915675699250373005191342895727059462550937792711358955979885308027717179904029268803590173006752060501222410682331585442481591197140970381236517211878627985939977454329986307754599923895974189701772582203695372447862393337746951849029030044205943850540277706101080237778580902800570434110028121374291963383021438005824984577440522783014376918901343669469439171736288083642676073246390196412956184470807313537728898892615678767065999585920089267002158355928318586660765053473611712727804442567287402424396853232348437218032925499045946992429095788665284736413507781780005266168593250342083452245787274618680696037673089639199504571534612038026695483434890372745092315713485177368687881293883101405875558138030093791067341132810073507290481703403727344176210103019841482608326276196223410823035847275026292797295993389098567322260932693945160205809251636598946753688232776772934647960437595400508560510904779644563239811931902063199445995169904776560121525264562550367771000567848368544417693811967206967594972393477621780328075413100923182750710559803346357886567897660563459591769557812801203590558773187103431958000142161447950807584456105678619972485084159547844930405134652728367986623461106978067050952070078528487148865704946111915843200782785090672263269551196553978532789703216724596317499797017119760936572742174301100076196822536903505527004908423198096612265353373363143028079690614646469850455456920327113511987624008820988788220502023770936551073029681147057196505934439507735820568351266818532431455661345479759622674567171473225684035958954226210859418882457048839542017006367306058171135332950716250527980707611907557701909789199473703878302832646293129189706330405751533756403621212542229255768319841703523140385579433000991457137351773349067323883210525984678178581993063036379795533376515917173044001472828610015707743531990588541784539515716973157296280297803624774069716247006093351259500098803287757319790437548308644382701387883098882810869027888424776872120526840091021223013445824145392340351631410212853011938171727305351746849728427124669869368985051653208191207611940600964422240524505096252834740987650707345871877284838595512063711581071351371016983834412151660863284016490166621579482785695572653611922401044353588964732365798009865892498241749972364810629207749502164632126584789787605452414239974257435525349064816055832592884585207991432903199377829843100349219781577446465076620109686730631810791164415369527281012517123249018875886836257181825900709692556277056889500846366784839204427122621101562619998723844318292763268968985049425839635744066883016001719467949203702018663909804127762388561866893731751579732091637073983258970147358501111973877090747139297430286153286050362625399314138916261459212750523228159245092156856553902123210268833855075692388779193587209580505944184539865255874545949693339834009406689222247643388703515106917610665370074204619995782361479916370337675286159905735994662958352369764714155494460534162803195715981198403706044087091668043323664681216955321231837165549032455804364851855233785688643530912052260881085708136445772455957552899719787231675634124061263130214119847813666364368747707774550932847978168991571476206577752743509896115684903231078054625155856492496267288830022382388484586893086906567376490325486697402359770383162198164249445387359934351294609243620015602912031961540800844512151545478747174543876632157635079895302004097296197370016973085438060070079416144316520156529336847962866612281371709076117938668407428292749434942881195939724055328242924982575039953128273847948204550253955747143954798394718870241317707606444147702588506646516365870030611268475678671694587933477242089090657351308962496856734415856031473506760160576092740212758439053247332116951503583328468517036893591541350653405580563538079941522511599694470113225835058276010105061639358499246382543627887838623058755906845904675366430813382654939805922279259037485287088918804413728441563283216282457197216830746013203550421309936623423346378890526300825478384699915630707803601721854940532407053163399921865996454829900042620082467654360149061826881975308655500778693951466927435687564692300591083863016733368932635003926640073049581195092787348908459309314336054898177266342911877691473016794498635077015219605945326316503784741863329942516894305528460950082372099440591903440618926400899156879767608273728386914264168855178423387654183535025421945372704778292143091454495523062722472545179046909002971850707977878635172610354554933958700473747989838559929732379155998359748401540109211854560507045698241131675867790214448921435072558033682520849482353838777406258206553401166338028950439277532513288927981325443292678423593258772372362935035611574255786382323934993017814918691361783855424812304924198050059125899825673602110884349959655057334609490007794690187444325203593450214042013509778247671548729936829647131183998254850796223221853801367389476197336902039742378775546034630961786301207387306051065000442009765542059024632843121437508674684159421161973631646597716870362852543082489676629973415880878050206284718247383082491245406916762457763184263372663797784431976777658315553180822021438215936304198583449363446762741868513734818594055252477349718626354063403263156455237848542064683305580418483401896597223224513661009661702119067068684891255058589362561644128249685949046625118266412368053076447088636117108582274115594088464546456934248588621549685093130316385833669048356295789802316535236433735717166856475471997841305087060027447302331186815854881255777110835624334418204050249556132466174535122519623226140025866259370240719820590122666220113334909759039477073146571678795072569134978112073928489880278566263619175840665256327550197417839460095673768357048336438701377775949545526086626327581669117863297988048291396448917625609236962501334788975712037637142149937340425244591913515082839134888320952391829562780635831224739682818462957340220493534656931247583808726632747863647307889398874070353186940632529301809431039408485408512464915530130675055316490182427304355606564574560686933827484421089701349829101896957569642288920901951563332411312450614596772647318794704004473075584808269354214038259768706550011083136664948621300364529810719950174219610960450604756836727084054323364716274723246456325206009962648940379447693826366515275000720950100320034871960773160898784824310457100124008954634561986648353507441131897857132392205767559640748408825795970127360421693210779512196696900361358679532287809012358490377666274904899425545651003265885096053748566013391423732925093139127505422554238521645193902842133838797969683387062814260050181923899963477358449894600446061350296205713577810566379687525537571236004100214067184074207611420891362245305244873717856142023325786391401832486712474245815553387933800498764452847246128547895925420548150536811896313938240055410692600935290644183182076026334519186572179216794508524358498009420305031902454342236851596276751429257469600261703531359444753062101551258158509023521548856718564828687050033051993268221457051812747654717248577359585713187116377729963254853906388147930337805916417438335892216079385877862233498454252517286151661136973273028739204191074163707333226298943340053937249120707583126172618462390574867092676025780487464552463994558667933478096027771392477082510766794573763046976674626996670048485948844146342453372814166126667280368732382842743511091043156183400968517914108342943023137477039378348719113606899912908649639379717470043439520258628746542717910976285722934596569811820318547493053872183409805835032300405289719021467738684320502173726723651154497454162903939455328263797071578592398733335591141371789746014501044093523008547203544790281743855304370036667489899403478387689965693572017849872630848805361473511537343961798388970966544721416598741895516511172636659002692180626563312381085262561605651803432416269364804187148901966060977552804238601740402168651185458963003540869632746121376123401179087565488545573334464949896629825539349527134033386259249522734178214116991501065117330290588757331372571567306281357784437097876919750806316207569903433163700818037516270644210724790859643251367398082227825463637426108603020730505118025968991989341725235901776085869804094261975906198403629891579210976543131411213200068944696435523986186559636099270074350476628695527321494785873951655126119150014744755518624339289203259100807025261922133248493270378279901665742823882613940582540257000906581417633905074471229749476547885944311572623241056295804762090050865254759252093189451770848588499729332087530833735374967386002351451524470507902263009065216384007258518705558761165179019184642287939527146816218659273331351086928041478599932894220298697727082177809812243697239757720418902182539127813145197542239070160681779087358680303609433876546424702940305913561279133092896408626949802134718523392605082572902367213250920979652820538580709449126076148148459494559433740311410991920349550707416111220936594820446867392987162554744998889109399155839879603867471864236529139338955722999775919464113922334922834222652716899401179625816476730359646715048292367147239104736367436910082934094057367893758389341299659948729536586966010820534542018865716732606710857378248008660555870325066228858082266026887449322304835702995161411280533804510203115043345360851182300222095999249382661777754800978966857783032409821008885944232567666994008719546953552484213576365203885989256657432948158628269257789027512079351596510379092073763558838333305333798765860227361509518124679949497437936586478067273337458856104232090276640559379381087889538215094658386051904625868315487125841473027951854882692161464266742280901762597756905101761616199841268894764124957155589422265363439939014566060042910594455975527692588867065727939026359931172933366684432572047422775755547374125547196038805289831645937253818316645718745973408202386050091937626746916701844457095692296019159774969571461855695805592783742617706744423986743934219277567278863946947848897692388681585831014258838187279283034195660967259309607905081466820751314645541305778400201534081156772928748578114975662850464643550796637933423407855291127035589261064863984027502985106804434346354593336978661000803914388784705052557792877845663056689265427023308033548243189363091965639171936227235107523699419443709569231550887190268400233091302171328624638351963091243996296188576002627272108206431514380058412604920698117033511412941239423764216768729111407613152574174623203943524531582757243014484913989807363292552993545977223601663706291920980355896186726084479872547593016855126081925757307533989769396796486454267517834698826352119199709783197952687969565056658003401750990717196335699309478091033436494234159023123921035753941804719574594732764533433755164990693183962234696811811179993838213280169738238970848433702018745218674566329134372341542312715230942113642272858003775484517200847567991275371370905090393762133467927298490901546718852030675203131572299183669566049309269458780921664657841745054140949426901082040899650822112232399246775643984624944592332879999356871101330798042411829907080486593425516539489582433281992974174288499393015901962469269034399716378440039523108618869466389798551103918389911432795085521285136731616423675040220353970994864956069023844042697474821183909648610463786246411305579930035261038365837062020813482024855421317994506130420864486354732491466056184769894322193430904329337805105763469859224019562604140456859246346888356982932196658439968348291193328272467097333145908875045844963095489258510171654294597429395952586237976460568578447686215824121903991509797054173782597430005018806117963385711733881818075639832611625138360737887554523581474603840137285409877707616032122664221116294478659672589290908008186887438983032566692372982061050972913070769980943099737542230858108955589002809014997426339512928169358369227384096508225609568231730348490447449040558823780631152382238810811651855957335036757135500350152996722308137644742482651613499489615295742095368625202448076897131053614387999382900540302465756476394589761312416916608312027985151726621182826339145818406270517347374563396182194658029683998440499961515102566427028684678231743154594951322182562816474707571357745195702236613991431508826569114473524140186130694863531937653059858398534461595752138790527235697063265262355521600992289896359166476840528063761140136585290076137343572818971083274287224358753647725172476922960026015941791437069246240392813468973081063163184315470776374590869889200867193869931718117830113119153472090338089154617290654470224137588411715161489322441555941089091742795930845286519783046314431857554537227098988786454402488138492657018329880025474919925547350712416029280621612317587767506772004563677384933993201100832673883947712834858685148985667514982466309343043526422776943233808506945033788486004988944150124654733588062067966052210486611074915580668091598831783475025914455972981724570732017719172626261582912268103365090962337868842882852256826943311357373778833074871916027094477632279599957609189300147277182572231950950122586491751636910342031627130915409501146271854930995965212113092489799696352695534749996669139048170852309878860995660416642317897125540284380916040851323666449206873645625693815909089210759414479473934110277989435344794554014087636854112266651046405907435529712322563288831169277805679027599222469560522523614589083582797938401610671689980243009643525638396662227712931088542895686911347474652446040833726799619267938257500252515282490737423528652835365005221776206927850032985484236646168862951420132496650593326332285029354913270904727165806630063442416212721972111234487929733763116392464930201191167039590297675876083939036179578334135293042879095700968958930658718628867062534025418784627369278517550813813877613682851991016802905255793203265462121037154621641112849199037461544944336163400405422527226235244219567081695568065343950064092602445447798412034908224598274014285806888757042327898328602718827945579316553048560961778374114269895775945878878796758123043829185453716034894381975255241859916086434908619040658252895778120360010764233348980398136922421573419450594119648017912371839768152538530174238652883191744404432019383116276921386955323769467628302638258645373508888129179164237906264045455347406469518451905409436142702425957290945880559648205716250284061056446763054710625559883712323727321362282839600826477001242067941649605961024282326386726812294994888528658703026826305446974243256363480294563011351010980459207418262527229230611739099297134200159501674906656856078471072728602731159311410281552491385752735205838793183606818798065955788086790807643831563599470008486707930593694391032225019961551840076072384066321139154885731167844455763021543058120218403572615249037016196585165688586889112779762345279278904416702914709965014785387098417765930779638057993457761993588865294197691427387269836183452839752881688347786662397737638593952015175455916378987532327322242186934509016090329982533413334695881802199090075710993682266971907341996654510652916432252889034692197156810020805296820174045838530093611309425995607124658620371861819148851641105653598256042647138816146364243293229186427679751410514121718790089188189490980083812636114181706900675781130034155989739014300486888754943169804992805415664482226592845070146308024553929905186344878576861073690263108913469317342523457643172723131033217917838825846937947560811520005382068720597715965051900590661616735278363968903977114339363015949475844849895829677622686146318225791767738213095235675993713245978824712901788708242807577702132105507270415776047833168675068237867423217185118746171263114017207540800256547048426985543505790654231365912498410906814784048158091388000089776878892580672997197156437659883398499309056178551755935521905804188073426843420725103638433775215269724036165550932253600637978076215484096844639586741800260748939365246994459664395991319948923956153139419237475078163274962940242481410359084293815732682257764002075116186617373429415701125237600394405491049654798618518647007123143861859328261437369866728678586727157502267038099050640217254547822909613803827155585348156226624567480887773393533296291168515143951074429578656562065356009489746711285891820657729324815198244802141581834303839692443263076171172055972071696707141249517340883257718434986258879754251732401795997463980716308869243113477629896438631312438560631820700522841716171270919645451830528236705864930900675767818891687758702761572845360529849617413595345670204526664820478879401806665438467117365101219445794075365366692621379359969616405798721704050997202314294091484332950057367358855480928834758813965922387569573956385380307402245894576368684016214792353144454638056972705628722652218890895356295104665080678174521945851112815360601050327014629986643269068632585519389315949525202200243542500856824853612058838150495632348548016403675681025821171078375124170749946248492148529589697636357622507445836437551522630873575690909954939397001462960358590462707399697210167443812724122080470343612681609724057562447138631850139568900049764738692595842226812146788617123431494623444079884817453774110395276606505192174471557975061614207519112582946451881201845167257003233935007561256741634963966587218810569037837729413930202604774218338565528289767784317274670425065883581618861423915858870974064891859007359410865103831760907789370463852595301495230460746817471429115864724675310123569766911932204787703974648499346223324668214750591115745143853130598607228570031817111084544376193317470766233389778420213253824990928906102128979172633944852107843374299103922544575390493913826210868486773995642067603170617911406917236300382658342280414895126046581594531513511583492437196726893056111685744458828418788648094090719907998448911686831130389268740705967237497949792414208172668029919219477669072930443483017329962976733269844749259993023560515889144114050769374988133120579256569005812315531906994983213373635592194200990280704679485671889942288892150869322261381743797799345652354431564539330798655022307220936366675752824952737559553729238053236225450561265026859289437654875568424896012073212784563246774876325982262615868061162153002726369052365090772656869836255313558308233614469517748674959543364868171793744465243405687212123281757261512812732365143618698405461531680037377936474488015662123646675600576551344833444456276168421345929383368888584624769366031090455637329358038514560833847742325997729208944851874505259570077845055420818845685318255804529204184833420464668470804855694914108685881313653240055849243627055918188067553901064186706577733740036052008148832812217096166297102545266374641734061756776567867904744309992342764059856436681477252752817831805225722667277280211201007851445843261374965778213438323332003969266154531227694495844963079524461867440103847940203958488558770182041591249681881185010315283339836917861407030771393666175768044433382309628540813469082804100072612395877906800837222592040624174222832935258486606087943975523344144338254682801823648778235917846548558982738872333979661211774282604708969228998414667520476605848826078022875987117894131530120926015994885377946148032442907884616060392694061231259321200132387095227194289591312394644696227629768265112587248253497021940340547805742188814527064183193017637567373698591549401311303099673169364675395869058516297237480001086899134060714096747772012675261294009018586778941485629422632185695339748870741855882022955057032485160177736310727498541787289480983936551101181204653826211271348609659377862237952899506111645082832293221070352551808524084975384874136720175244652823692358563322316826881595754627527483031035330421483824214851683651243289471487922839076247869212243712244508853724181763659008250849655100655634685750150029220007745765838217621904204814681510249332297792962628184108249866060274457789121031255389182800905757217865355035949250531692415782029687177644872854008021026534954044950568093383444943935406788964477382834120793019630327780037099141818798974624474940675633091513781006439109187237902462763624413412245441076500060351629890422277908946851109570699215803534191678197587288647747686883095708705598315741023081577524927581952590358790004203946096059148909195341354893463313755468391750311860898403650021682735649213260244934289656690518402796979069886936874737504698749721208724468792963657063933547765514604468135425678198072323538065309712722811279303554745128279541538252246010381547237014125263347653383577557874025476263985001841000722337732067493068134268280290900271838552325263144030876689277156324868160377806697376656207766738420764346423360185095379046896969524440646403033970877364464292011264278186485063145327545003758372779825555566444860599559819182924783609387248961178662513083160394690552427173271750329806988414785058505205890519887548896641961852558771169382250368623338317812432005136998578917191824786656827342828344501382173207767688035927826846879649815030520821922540378624549176719742769524785888157554495548869242447115712301781687004083695855839797626943274167519216147455089216166937392716609326006194231115757085678608456862611651761493030645233243370940249196670330821364434815337196740169173939968541981852668462005550401545412483757059883882586991785172321026040245471399053782118336267203495678842417491371518152632091019003046816793940952326226834800083094265240349992418141305994204018491639383311445506290022380067231817445404671843342519567426472780037816448701704057779862117358348221826186212159426145326601383610108835301051171902435747325284551018801536775249175710506903182980010977116658548511949788792455212170828147519265537187063873374352801785915363947366853332812918329118548113906531480036900961428606474090256930750581641871807899412716914868050459420332792344222429664928706521322863007130066895127938500169068990779268548693852311791721668884115889747013318246821582872487226082002760856004286567773769023745992120475882325020810935418487584714710716423663739699896394409728717713806725959668595495386763385355376192910465440528996206363879159357261088781328740704423756212838696710934455612384237125243143199565228768359592544737807133440345320982624378630289997408404227045514801948397252791628966785662784549915387276569976231568219216784693185524706516607760662069376128067547656231233712514883345322580847760856717500848895051826093886187410315571904009668491471540475691552381732826624899009602808863333208806837663228033813062540480845956549613301031024639424604107980969816838814240165581776592400929584070167229165892067946462651883228617553664132920268066300033209302487404006445494739910299078366449186490527649280696536173991290579620544890714368413523755763222317620922879483151908135142254600553658099681929888358070535876079035490830353197958749552250407580246852235963669709178198810416707264299111241439772514848603148402377422668803535694482510409633385753716565065067901017552852674207483037770567553478912948714686162932838825599364121751765544309945607891385967066740302471669272772342466358963190209180569965650347919066101801355608843136195091209439928719005558779535020815040531409005396738659966095854895383174558335542015328815646162321970887263856390871115805404372279367533619925922363350307500262699365058586041532754220338446987002952404509242962093024116642375356873590113468453907796132210569590586219784394754800344203336118314380736783350862282634080766999343596441865027917928686921013847371602605363083330466556205890138801521584349935274592611698015412935900673028345167961113743539234601896938258104737849857803890209568810473561998764969492784809647520920211667297208578165598203545085743263107771879649088275188902033422383927828364515561070111780992518161877805541708523656871787062476003237051871223951088345087670910028769455495022355184595806785166867867359864310612649367365780421184240478422801322330274576875964260249004329696051099859254148184035934780408206636365346257839447536514085916007540154626661846686689914778530046883125615327668785484661800006108937205195068649078302595236420373016371943107387436883644331118758096050309441470082924685458073729355000435508746738428527505411832974859547104944336121474192542948984415334599467626449724344908731295359790459814614234431711081905418949196113217812339974365954508349721413266966327641223692696859432370628926622339430851285610419371513325813126453055313388384632897341601512581833813894622136943100168387050366309023024510742518965781941507697532398698580209728860715731112892837595962792055768150483754762013566342894378607349002589482815721085268908785649446245953080772161470983878030958727397188982024485730637360187061638646971099367291868304436163902076210055523944476540592313526012990044348684826466284448378190649622815798039157479617455969812933472804705195465487519150099526451071498840726981671802424317895639500067164593855935775758953024825347681015449673791292733374592705642235421718621464725722979096730274795698499118408819401076385791179282827049397443081207406720817207392134551759328396057240863784280007629090183317363553119792744542879023978256540407796104432694319464667608401504469401487463981842373464159544889246276729290348481789875527102934500765347043609166786651873726665436564965011758149657391870108414054450501108019099323863845350816301819515564096595564795647894654398759581272881358130081050699909486570694041556764668489848581081603231280855076438780448387044563058422436321378038038248996478035436432347075177619614673424372779633170974543296194314699233338740200312973129340947620297673732820481448180932501484420463895497167798641760790953050620848428997697176365161347971197473938987297207598620153706597140814648287308147759715689333611037310575960486276379530723661476766619909935901680748813990815239442911822985622626389804715049877926226376609738452055678383662583309862074434057872609450994867046675581919752841950933766349139359286637676905694229420016535817814327051625035378540472072320032125036746713398016950705052657612992254635527431989801623332300211092939625684482420936563857988934774869380738565935246754886301012636750408058133023114588033643716123220048365146849355938078038459218105398860569485875116086128295726876895561942507310275041286837209554344516713979680664871455249859146032660133566100540300505336718341258326635069974257301869235274145771271234522869041977305232922070567642648520270211474737906091149718656514551427918214396126673684546843861542012576314280511196389150510930640926166689183452097391950471487847274590045980624270892395972948752046764992724839094527572314809781892692132916890038882325187561300959049869670738518135559805430424124579086602417040639395064738738983058118268484183022603050610379528589520331701324180870730464983152273638665293431544873827363091791448846931188444067237710887044746106780144717867394936733470474225795344290899903013085454833283144533099057129796961156972973006316316393676849269157028889212803612342118737474154302719555786340097051536452111883632982397844384865502147814601143401204279482918687965515086112599546461410554868264987637921443851750956435346185646270862078566386057591936382260801815497729817410461174583296390493622844813204947474269097176074900020612846916448862144634987698331459922566754739829410509093089147310068108256879828597133277869204528408549207987653463577397650994652873009109044297843079004097564385647098437770695969712525263267177472034867675400550849927198979526474749042764506108976120465778793750217623923395806415935690043490728213792434954077082511823547706604043948450194093694044876662516989556969405870891185963833423026247282988347037971134046915941806065154461477032719937014732534852613885009162393055560534836112019065346130798711241234646875539412033123802672981583986106814170777476332357689209064110878529355440068643152125883356109988687572435370204976537888852608581920245851863502632900831033300704906281464600857707024377312160874577124301116514509008283268057833909248075403997437897066018733432479018020087237356242519792665178970460532427861524686963469321889114402801286218559746811992302258975329831939970088008052175592980996035494080443554434741173850287618753083290405852194223617637056846948953006947676399982039112696685260329315719975202181130960663845418365594441579080451004378087870110582637944520305773702094295509586135605377823710074311022614152187180017074472955645108837672742599539563994061067092359287945029659015605535340043114275508584662936887978827188551976082649042552993178310800615532770951946731897063724565629328057376144544704705362448987929134700836965986877418256718913931642241885153333744701215281960453320509328603920101892546110955590722970429759731649766743515391227911436447434554719380269404683394728134233532325712825924918139322493160588708941590148685337400873860109328292888146959071147211613844815297124240403012945879148544166633567269506308589027818797805044733038875052798711707611913526223440691262672729046081432116331548954346356965066506104773439544462649250045054855857513174231769994824700674184839405797118656817110972290619182869374842298244968535923577076008137289002485243700510859744140858446274615947883271948351223347875124535109682632019745197032316645230263850442557116181250912441424312244918074796380531461849082226817249325892193318816855455276894528185366666862815062723906741740407149096616578034228460913900639845780745547985428567375245811571996148569170812613702339607388323673276550904949505462089928274935341631454136777279921478109803380489157088298211222350658842942663447316948628161431836201037385509956925103030928474027228496475611313353680361090144274227722246652511807866961422627098215966291553317961017608850641348503592366256664129402344527704388206790379712429582942289261009592202707594313456122700268247455011155795602009138921241494824110633686317142335054485250820374871390142899091744013064481024432773171248910347491010267231873394800768235967101330432189883912623946987534025140823795597303591525120279214238349626912371243307406291012494618661237646288659925550932335877807716572098603597373375464647082012438789642123391772977790347221611833838504774685982077788810100785610880038645238629938376080503291046368037130816740859769827617910777924682173094669128609657287198918924117949558022981143348085821449335162327824147963147758016257454215327826416020808246590075832681681258889002940884899452054581779236234798414793343308864298220358345759501275422949681640833211535388468154716205620054994520990565154550521882296845863569073950065527413787522789459394088689733845036022219925925629523016197245915956504792075583671455101883227452435651384739972514230319036805946306901278923223930953228842795991173504393782112081050702529682256201393794554003634907629542591875717408591134833552990664552135171698228365637293375726007050652747223674873630052228172730372956382160216767113799326005220095675402260073391569414354436871705871700516093876668148465381793585737837663387976622249957803951680297676946483054735792629065102216183782586501600373448633019378602239133458353039446742791223814302754755926802003917290199067236449220759250128611019114655805795784569316969897118917930353569116315342045478686276071360875350892698961111814636143352608185880143205935455958128257973354994913732652086864295743495205410625979072472951506233941183672659391710817064500467585813771760419742745730354665173849861319412324304701095044578227679506641565781878182668895150190692086505919447575335597609621647085340923741884309948142424235798065570094464081790398352951108055194086617152499279518707116238312716599411699043588855102470334855006860487488988116835424357896114615974600215277450548296866246660493221511749249270916856663557539417914720956361983814745365108445854790700360376083139793373203604062206714385346494043716255802018624521765052491482470895653937897161602521203989980500721097248600858763560627526024335313425326823200159472104044489067214749299064657445360890675640441927731877404935204517307246848271458175988088775368380337044655105663018332467170793604621075442503963062900004309175518361026338541705076647810424531235835773172750778440506289176532733053678557818433535065574327053022646407707853508369976117177484657839815279257646457219515734130333679079065276746508248335705966522334289170397319733703539843410192515638700264035093508502934788067995652138192286395232262340279409328142317387752733719766139998924974406698427341808850620661361991601798481263653129325382385507448309291958146598824500180819050883075047802190176813436345773267753182467869346823477169673477391611594924760094385112153239199450002561598404374155011963474951682732424769502308295446126030983873939916953535139504069348116245041994691268624563424735803338485813022109391300039530341172963070810037475484950636828168978967268952164523879816502618408332127027939292875309683516874030324620440856513273187355988776973586256238934433240370452933993691310599353619994081044148912629745836232536622005202475407179854478224219615522582445154488078132812686412266920259400246254827813086294839067301074495938406731942900222913752199925964808729671316823022401368506035581592327518739331030353196654760550305026257727962149891815026002922044411070326478191683231535496114110610536166710743261935444315479766188148372445822029043276317282024847379198680586981388132304571486596424735475508836214358605383945730128787631198461282693510012137452404910487809216066040759790963930382213177396419012750227588539708573241545934545877120949936948992288909584695532434878369217740015916447683045090545139244837920202961612164751606135211045857378178817723593999043303132593160024190368812396669014501911260507227230157483251290246420160178492637010396090744234744286050420153129686887701910092077275297531527438200784824433096254774447849468470550263605572752000353400014620152882550387191849777581329129347073081131701259142437538526151860512350215301671794284900379135734658274601273356417375189262155860727481719634699645059679094937728171562130812950936305998404700903931939217462703694724658989037996146188349727711276135251169525345564468108829520136608866934932334704393561399227920195509754645471791877471356496386125789723082203401781683404308700665402111464215032411754218224724761715956114345954117966670553933419266191730464373373317237453250249189973069135732123350329107878787802808124760123317563302106615129118604059626842478818375714813299812148629323970740784306524951042605878512843009999493808940010120206942104080776745968858245229493853822629292403173644223046118052131398067978772789792507234314545665767376705438075109836850205499143574771245510224915361729828024729116279716763621954416970664277623406163758600891772324928742780398899930299365677155187356472128533618084967116720122320959384384696186891823298304933608750766494175732242103202970667882473513100113893096956054134679669831127650334655842993698562165341478881997924041783399325508411760250754183833952333161187864731467413272151848573710596036010117181768758309179564518295071071022862560443904280326998770289618372762909682407075332431342645350936620855727197512135979455724853366753538330856258484904859651694566026191700913054008777059968458187829801634102412244536521251784884789154352543327195764728798043462318035483441665059992643220241382362549698501986887455040968806031349310979300371298275862372965022235921629602344004254739777796635848997259858845553021496919386982734895052908879028768451664654364855548155696976068726749407150973454830783120016821240137635045366508836447520234605268747216645238264816411549311847772547914572438333220078622530547906864468099738798580702095252374189535911839203987632977648097761434849694579002143109594680312014991606625347362335635778770907855096930380251291181488123174169514103052178723548031600549133114006451790648231763479143102427799054803135843349501485092466230797515025004431349902251818380386397800865637336640044876258423527306868214952563056270804577945121826518203137776449374048817645494786450997210324882365649187429189979679584515001430152058817422166975261804031826788563227452362324495452004100842700619679009636503778952350440465079809848375154196972183440009283373418049663081388303758195427102191346434426587281422794219072151558376297925522456108079735760559691836644120583320094644625971822114278811746056378230893483069407818014468635810968351659110706261430711857702912483042340124338353017113727968143465475886082189477849608589605161816338374552440859007897342496816721154362437982035003622772494535604176213751553141495397716249119350766940967986646624993000385272983092566672204375411626055428015957314514583643124258430537995935564679146988791945042539602433395531815787658886878775339784636985359588215239614959024029514468408083548851040129383010257287939169802154385086215226415159432557460322917674191173053894441506013855948911181765723556694743054853220169256783494738045039825646171050956941190560328835843435768537661600816921421552917846795746261710563399067370284436079175647957542799091861076878143921129459574893233968036254717086521691568394000858292774948207726149715312063579039678626634463148408368828300439298241955089658896143082816389644128208081536415275219374853504021865343314521472303923238153016053621395727482742216591922604181879880679483710484922487219581615216102075336763533215457909461475635586211993418217610049201389047323884331723932610702107724806357236783287872327589913071781255864617258888776524889520995515504453018313533353374077862446578466388079708583233223231953206182314569857224179485021694915518920525558670251601521442953288661493497730306359809315011372322523834132118411934119923369427011288717688749722435184346926353451753177801371826363907955081462097353909762324149335069702331852835881397865067262443687204175972860861834812336105787179836945278353138723358110386344277340753868156459413232984508136715754439768338177292498727450479581613410516425939253116132490295398977079091566126411069767667881744224122023670164178266413102365715501216540048681364962785859427605635995526706157600555712596761112515033311318980250707859092740305623259687915552909578251319875949059614492902331032284862305932838988441237316746097232834099555113144831930854104976726105429770334133576092458812223952036625464949399927506513770761802428970200444592321107930329420743222517317892494086140861872171849698673295197789219298046136841011273916020427128422876704348387880053502724643049859614158949819326374563769979119607474703923157172479650783578889838129363350608540356693689951135516792258869767549566848130245803290903669355002541090310237548705221362911248570816118398101525860582747549896063264756025109875985772925255615482648425458826112923505521919980712591963919397403352844684783298214966863446649869577574399139346604069701175355483282219832860678476849716310266929645728668672962234533810692823640167792527475645295674699871888545088524140108353970420814672968456624826427187127703008811857764871550306736833041959686108335146200587716998594529038599516882291292633627073760326236202650817128024765288493046528735125516415356900002046297164072384913095771327664796765916016054165072837444738496489819483911833923988654194700483608095650430250530503792917418940946890861487158285177130931717914954780622558437075270320331369891782598011269114139796412812595052436898275665692749884321904403058405093628331215269176770112333452597113711550837160288087319781647215208218039886461466128748849406175157831963416172308334937365219423020844246043852920901086618789112861917895490708935101592314454529849363910474385543447611579638720596667435572378649433112971617437352393999322912523079241464362400453881428364231735043747687676249599931890385216549020901726294846780064633210027973573147038093926239204796270786098565450277954733792840806235082767162749215826511700061788238449153293881723639488752832964896868835490183906666774673660005787927763580862989120418552945162214964147645229360326138228241342728981681351739342886938068081822532416178446757258806895027776104295839550845169433417580174188597967600764101252693580859494581489025530961635621098997977653730037725370984309750745921739320149326365602871427286811775185975800500319452944105576796586413199578229477527945186114847184722716192999052479150827567116110568924977114158937402973741441172608832655328074012249042957679711672941096669419525796094756042486158145925767933267181841651281282992099699781539324083623382243311263145995655134886605917811283914570848725851825824846830020991125137570813689630183977934215849869791361171195503686654899485992659424468460006384732899516888880271068390616999793525626299104891239682006903603200587068463576922946907233394348647478370764247619520405526651099269771696650526652031706544283907454945658077076684720393076038971943981142758745671023872062913884079242962694098279548241962041083639705543609238430474211859662154795057194981257372862729550818597731368908407826031395148945738227135517488172305796879049127630846480121647271875668102282424142458634074407385790957780538734766127801937083305488151368949852803018943707953603734030168847614505089178148575191771446264149459771841809959153818482236172371026084141087702251324468000963234896186887169132387873133766746434112822996768567457002828029972200689274057803603845307034284330578570717687947918587815797704376671135129793610198752309781409954187027544906542529618589275296948158048242836799803917485083886865750171941589120484387847406669619941218155616657598073878697786391664846792422795666989716412729626797031687401668152091267732113282868676919773816913414295054113590116851271462005123885145720602933826973415111624168910065187750752795157474257978767699151432728287468299789627383869613153204652459789573304981966756969951175692947019341695852291351749005480523385352962689292817319604067323192656012179585677315904224473265056766976403702684481140499746800686030750260771199885719290984146623067186499345001929958014410482792150260336464216885252945091463533206378476770868295620624088718672024531090565041701491372360926449390144228737007008980182977050333110899742998099122158230269596351040435834174273900095359108154888433813781293243594037242548720682119413004022094717798276583069395359060563346128811670288121493233606435383960143142298848042409291194539126290683957709499008944739600771526975549311038391921825131768875028237221687058713791358217015572189995570541152278789942972149785233813350013221601016999698463230022835039552462549892332712843506477331498939405566029106412358470688447199964248369560052293280997567411816620841723907555059987401027669590223800564676568097570189415417479068310909289878290098783632486264747302158062705976440870857428188974713952023790679546567088262584444009543255304211309856160444143346583110569365064174161047383288801343499477067738112696236611013049686831543071593207485044978002617699756931384170294963884854548935883390261535163070344596037815051188552512244383286148172592665378794676382929838981679364869719612343461245319080201968657514900818083566359975745106150795102769802426175541534168217683224523466553271975887609859430650180438043611650230713501953585049397530618735816829253190746411145426578237897386386487726589648702681557042163822800581785328446364025317985781216493437581941578651025387510841154673135500217964312568446705519186382328093309881919776680671342906487065000626492602870160039331071287265805450670453072171439421300565166909664448225135235106908323683015681119090903561874334014722669889407671459562730437687875448745092706031055555672524685717716177307275786793455905681561583434145319078134280612728546204958314553518063851293123702429516784496070628242511339356884499501858009278802963471567603586139525121221917110585807255593682851597954263684450323087757184324529335390379620179859182792764691495132549959954764707068375293822478500513943636373934678043258963736970513623534324095737805445549557963696433170236480920381274526483286199650031529584263441276073207307281372071212208971003843350893698104476263478203987663325544782610484721383796158052752784581181060157957868533899144164603450683630634335038905129816455199103354762727789144230252084974498592956119549962402151521770836199208167144225542054219693371962944211171100256683377575986874091091317070454460372449397168490949865940781700505180786006843696937887466872482103077053406396410437119726833421655318083037903072687154333046052609098862609039327526608948811633741773882140624484352784734879250539685594266874813753598650525821048477598022936129311766420683391187018036304598190308158883866624170853104626344090949638865452828738751979705481892709265746678733104543252259164618981889163422233685991079181921406101931828969234413899628044528319638526374848734130625912069730304034750730761484820288612552763744117545279378846144653868918677008462562346619432353471170481188640882198178063666865647474549960275767490384263061387626431440742811711005669280017522691780004712471791700598921512290255334683331974593814414539708253529847226596329551157594503315178264872373545708849020681313335704756304645293676340213328081244865289152086582538370423452519609950580751559863987256658714146762018716632974717126731415049913373925240410462499156623125899837292007206160575937095454548784892468855247447936441338988047361000902829578016975211742837538086479295463026878155010993605942681740499850945587352659055934966020570126096592782264025422109378745634904820783616201648987222864071585677193537599964192720714533099803872950898840514534903594350429648394029576173961109442516848954473907112072324013613674614766524356200430500949856961294306737996128495563498960228339890732808930868427155472143852616692273809814869199103695540820569852663745507946629245663084876058466561533756192755746849228935785493810228499471422262603067249624117050904209634924180730596370577991668191727124007979249504608650108292244335283923002012778831995590515814361222819862228642226466394083339473157835637623128804575045368572668355986927786880905956689708546476222977842595869720193971682778190574570746732548229568072847890527347603254307032646046781053678785490203528416304287191559179055518849374168664060806966824348538812613829677757219173187705489072426469804351761281544646743034583402509099662803902055327925812952260151371140873881731761271301509165063723163705295018990419936835224929961278914439016072299833762399945273717842793683862183057188814123169827319465397419554771979493101997881973329026891281849298355431074137516889170468819988794704595996990602909735639503364362619007991906858564691484407878375266498252491614559619726895156870504104350655468222041660051178409277126017763134986292512836848951633018980703518113499238649667762397513851414237502881928907295326700577022203600290336922755119999085266544545511891663259272222164158940508554367721319183930114351832443532346381693254079643683926837634882010985016002627923428022445481222477907562014602129807870109589527966527252566900152139738522807071266205209229764498263636511996492794541909914461346163209973923365695795838959351481921157385809714657462211527677405450752095821961985671865818826619106326975640823543605885983930362549777497305585722442507536349309577488865260792375492634351331847732371071924286169727248370640964891790982373050151608519665976509074758574474827387809901109908789446866322089150431662148194762635248412849084058407374484768451796567373028162366120286165833098344339016226851018345055482701112964645550954003629789773835414034294729257263756859551704220522091057038708615326383680059417123249667984452948534824264420687951868020063816721982626412628923615282743181350137787925065932219251077029385952009664493021367097874155493591852436779929385546702276284360575125465668830583659644070030715072819127084395280653862173697937372805803228175076102157318657109395570347826301727190697382693123089044980239537136432074876699041842104612764056026288464358540546129388563394839387208800476223640100271033054382207459875607092562132391634792654912187214919157503809428206656026606591339744861096205115943411676919812549985081606812796907331944907262116811441907420871957516369873579265843536531374049583868718967132879909617127887847174846205019548876024359782092714684711490479814332304684009403648187748502532944194524821010344211551575971879302431780712305212785687406286892409570246871962190754922341558719666327671414820103498213223161069184138666184622412562788958473739262194382527337551256325166229369775636236192114847356242757835677344387094936111839185116454178822531741418731593422619029192135367639791056875986491547255768293851080806901396653058627510443910610827074605939442031021495418080557477300025430159141495817764672967205201590115797107556836277377412111644901235256551387335459625186245913775430054457715440027649848117238163427686241658031340673675548303451743920740377144194844004763460851538305155862485019876731455382040881071439454702976319874981014554587408958233445558443618381771489934038948086775898217711770909826969907436810281574214642483256477892788862675850381818888278133310924934955585597906763293254953349575813230787078281777792980914881333763847677834328884535591814886242318484244034088800180133302776662799512185553947562085160463619095952151445730774240280887144868668087234576383200521709350145999965809714956650782084594869408595471702493067419093615088189958479089360667552878174734123668917789031779324637505137421434936148519860656573280133772036878658300553098894810743882275205796225855277333461543870788125515843104071472846785928995947165440074327849499732491968340195421023902244445360313698800886321195579772175539714546556801509615602526700696387193178132828530199368065845313562080367309383484724072585663461443243003573149948438884002853436627030821625401063483317511949387141958107235470828960888232877951297745371199176045304491984301938293520846582722689018470949543571060776733060380754865359814682855542103537935066768403640248957979346231796301170323109916142630612427358964395770189418352935662140991643251298357129818433812564594157285987214302656264421293723968894365321537379431763865515235500732335866010228373339683810070902770490658508938185153136294205834733484347394688858262716137312694135762410416353426947042636704049000819283062268002043679777156885684958028085007943694138329799424283693318422174296557689235339757302139224096394868995088206364160204817103339633325900856074192808010142990892567031741752805436558162340844862921202653819853735520687988551946952666187043240583442100029547212743949561370909812697160421299621595667951919632859294702522866330274239782947646216258885522003356485966026608292961323270346236428393952763351740919549020021986362545892251535209774302957701902442116878412946456909395877869260144463975889076784351477983716881949748455863209772030746435948277000482916485864852593906614235980872141872358309042512520340832226907103286772885508362187563060159899782889203561914825333282162803667873153859647363499004695423463678943090033126483006326564352125983923269569996808332297281957170117387508678079037312334118806510287849740194834505329533168032145541173803882366961197811376958784363521322603761713752978568931153771902465080959172660340109861703317724739635833143826004648940243270943029754981523862250592473206446698692118098028770604614125700633625671525691763030402454786044919544571604536953389104847549195860758735154151242989276824687374199690906536113009755055150664490135951087470935733704951483789949996961942280441582141912567219999799072513462185578783313841002616989982135585702392243223866219244128626477008706156043306742492606986423428737493251809811647341239625863994432843490088146229994632705756903305810448613306937212857897700468768780945789408019954026564367304898942815424444177459300119147911279013150251514765806606663938647521258206770961985612033017838402179561358686566915064497369319812123039817635028086207819664576689806328100611203593900676012247468019939960309457951699316342166934765362961764440570674095508079414833707828044000625281622835222813929161912536911779708459295612727000868125943650745720372550121310672403745004505592952028567673432047621313206895556262895447605055358312234480575525360571989242329658352200057565222870251275935812026655457173998466056280765971472284595833399563708076756571268450134465689422348097706571788641002266832538216178032091604146909635536003996062103285419420518082993182147722357134318832507300325039365958531087230376147482055833467004473116640829571246056403959003865805465673399500079632929217480486319696405395061864032640432151001641434263448137455711016652127866447430527300959075883111310193712150232191065998433170672052737020302077058843601433657502579227367345419437037095586524066793840671122167438553811412084938776912895117680265851114015367748701482375116232265133199317854064581105912647836238078189746688833743178935278651668175433946150039312104880331968373632804532666799037133177803786173799116498940704175952216435509196256360951770048484193562843779301293626466500336897295192799070067440398359027315475192854411311101692342465506740753747946013977575755632015954972136524610186679356884841752068568358964698954673735529113800851791461663573181477029361149490590609727133872774534637009074542354921232659180336373660111323997797164428635139801097902165493120049126579865969836713195006362749888780765427428293524423735959712196837348183999676233989408926646170410496994397677933733757216605458550136643809977928262135723947261351133248768790065850404350328046182281075627625702797081579738430950035781173302564477509821852223166194379731018015862102102957981987657090522449524940720207032398859183585604967871147868761815235015122861281635931630743182399368971610627429622130793280584791505485502358410244592302485051283901227673288210838500717177770652640891480991602969711226972675850879268703122189781186986959735939738783936213406692923278485236316616933467664496025733493420904186452105145278340179873202434119066939084508972244119631062824476136473520805680856766797288390082498732105515178593000016455457004228069568901187543092761765846044621292304007215129694498688100562383062793063538308117468818749865897320878611017971185557232593857083338118712710676764076594808492151800909012664079183119464569963011984391119042687112409273095208708632508691981539918137299635180068039758776080415491436379557050920442188692690767959779928721243694990449681992533199146638023679589452370448918451476265951868439140632839115324086908670166890412919862414559637189830724493511296474453934759008518679079412818028389214388604940169483485711345701470170473957989740115588401086691048274220791047349310127824296394517082699785150066066632927718183184796669994513100875779481736529197813894267122228007386863089347804938843460913926027171522871718261533611637044371365798261231831475785506694337192879470893872926139586990622556945967945713671744211912177171107578709902007278752539848119296536360433683256760037774288078044865046784264599540202072180205565300854488755107532062554288274333599348710829251466221979601453402763182327515799705848641341029660776469516345661267306774186252845163893522138898117491185419341515950599840022460236533107569279378074565977459049094405513570088867122962477919614459366570914954596747918658899055327564967397409766390425731197024986756629856283012415953747331320366573025062390992566120216724336651793505714968297832604834330172652799716523869957306896713250214982750458004867444820241671894874900425930785142055128529639449735285469973823680050448147848544620323413871917623698869130301614069261931865830023476266510917367281229407391397156320244744379270888428567654779149190981292950824045544201342602117482349354535083903728953154258480866862310702283701929589519749880652268799717631925137594805997628496241037189100589024111440501082289970948392046929120989093489319606272708930007691541726351248566903407738173229727916183347944735322960818878514015186695459990514402115607819566672269696581629312972019033259975889814308331543405195202969628137361964795168981552503226902162406295841780366883512970681302312503385826150131691733956245669558185534242237468966215802796450161843586991589860696451797562365324125597691734699170340015929486703089871814090928029658844451199619573994511033006951242708773057205759617458519355969858757202591230906634397087439024071530593870311762264542033824109753648625973535828060514745179913892390333586223647672691453660703970560184913254172147262283725328430295465209049608868705191532924070882479810327512276911322752377161377499796429165336691625779875504232179849111341537097280689659007939554137290336782042889070577981200722553040048512705725811690637738275813796801000339768120064155411412986393928804823812429565249908581001025938674216996566525114737716777857630608665176910954664894958114238035842759529629171802231455590635225100153438925810330990745960769584445091483288657391307875602914020720279558311661449142305489174157904984153471550717948072849226841458370583615179807485375275945350893721251510969809442986374022993359856196551056656179757629218651921374112333274872016099077951782722354630706460239127164651397820842176142853723138858074415085861089682460403458528606198881088398553052364970626542381526427700343637028436238031933787511674647919380665581561983525925477907619523709754637845469261263115690003842939251524514599312043945059995555822353239313407660499141378314291833307464152458772651397487206534296753583402159533992352511739670072094949749133494653914398999861954673448361266153251835216736430309045862877151383726732970281266580459246976322748830484510752406962525200723851477243020138582370476255046941124377496356688278893939310772348293321896018769206328345985732967647094115362019843547206951374671657543127787772669083577690657560959681792514011826091692599215910670702129241886163560255447134142016156176742887309141771148095755387815762942256955234252428158943282155033751162900678674592876706708182898215183859571614015814861246256576326742424283846434501392965991488239989271609591720984634995041407865905158656967339987295901541414425862894496902508696361149633930533415374133029442847627579022099243319120041111385639722692021487693617221413654269570013704662607213107484570877414675123894584277302156698008516486731712748653550965317578912861104388789920024940635903219550434270294638103814834491751436050337628503320946722762959914404025025881243719030618916886663665684512280916194103819144553390167876324034802570457534725440395784002127104559494308212167621761376451649525416131807007709756836943065559468929986724256473604919747172422290967322158909672781015077559044117292334620457494909612822574688374249494220983700684602811016036041516175706414866348282189926121476010209154853286981249434389473594374205358932379845293218448225983707744643549170794175602313703618673817781777386088093829002555917760666914685983397354124827047912886215316754265961534168934553494524954275612526766691536291388746025475195175838608598334157959592214221309888625142767968256916306761024706050456660476662930016343155783896821257289663712527628609949999319676958466732844631682943633988429327646117178664319070102692105111602643725586481480188497587299624432835132826836178649434849203174443756894094673578632386759891302203948395586508406754512500153917593595878458771758429158581013909595550208781976277020909287777667289101666520340162961054197127513879781316103554270863767470605642121776449448812967570028191172541536208598014505206765501072837937708089524441566539326711752147254294980417421396328582915415130558169023059284477494494210571186907074172823994994475811158160376152630519859041256110722949321686363658826972533711773872090896442899438571132495837101845435946253466337977857396344975789664599269803707981457539446892679634835497345637436989043335932766919435457817522829555935360455156463289910144850704222705020465181383167061152809795486824990824362849697859401499902651705739724130535520212336645277955971086266976716091066498946253953959627847445122072016951952485568038227719054087578886101030954606044225981576741945604454624244280215372685128821896407867047102492984374764280408970100702981325793057184199947831861170833608403857215116225374681459828061632604155967222913055020816058586853572996999528034273258880622814059099178468452535540890822968027278342769755562399041942450265206409709619277225688980865483144418870539235951311536653353013408718425498156361944821179810404994059191044587683397424067783974788568763787228159558283095592642322975656705986840321395995841532728760141095656934189339447429545885220471534171142614631309842744057303182760284751557889416769094997860881440380852285208790825789545277278203146856052517085919119429865020339669112969137998480805825606342488628842734508970621188420025675507860922688535666942971527234868916256906653907589212058090266800514206148294032269902479514697394331879511475087242185312563799062125939878724108223587056914838984792288779121228104955267421475385901594490777813993942995471534307771695944734803381516111937804418674738227032708214354923653393276831366207000640973216682149131819442859524721715010204244637702085418239624519267891657102595091614210348428564551596377607293872144187626245008878733493770973837959794519947930612805318079767039207499265364709206356598868649676778441734410919948024590965806875367667828917171105632091805797048985794509050652221648701147339662281101274971529455569134944193615832554040373860423935468606471012411454089351044850841243943359928732601710816086440572263411996877306451732578538729027696541816618789766700759770853277194783663099406263188292489052036107234944374741356595424444361462068461677226259545316549995439566664915065270923492281486320912530222535513739497166182806574634585424945689973488326255021024547205028833452584198642962827517549647046347853075494291794110223470927571529938422838885098403526009532834889542025381628993540682334930880139612517440174116011656569591797013695015033322941231342436715551219472152099690738853799990713900710428866588276351319491480567192632201466639966453967838709657349838080830712379867236545244662000538360710748158056791831524272915690741418798691316065386092626905844242472388799427834145083615942200972750167261767820880137910765193347248310143894597457491475651793933621608409806178181425415198129868479108898942543606711773191800686054791977071483664021949049510259341428640358604265302898124139477097917208983472481342957003606400654043080597571442068621693713100970001288168028618201574196485415344872124161624823661229128361373301916507277952673361965440743848855042502162731449842031829893476315047847817502733541628392155488981254625619663883263072987884607756200052477374063826939511120726311059293619958926698721804436146983151640327996192363276855156644876660493916247218434838511058494592263249903555930318842699192040209399549636229141283456560788651714072817485242111585699364725459053574596534929934841813262627429140129799580561741249681537077943428265258097553509157436686729873748855192350266680419322077241245748213428839880920416828304735929511583946377656747538092665990788751936851018324240660642026880657430113010877462547562133324606290358208850753591148321605159770544258448972497690611129519270470820200884577694862646547082326732193693687425924098871663966340017620087945594365692611370895545564467184000480206206688225661054259582803374760014377498238941573854296065000192351886117529839039685148292812300659975044176128796237973565811232974321487685765013298141814642668720398438412186939882366650536319131989156699755178709687709753136002734533106913430390176494421180767105106360978621084201820339288956529985671509745706619721046939577263227714372648196074694572767419868701179664755874070482349311939222971794520765600007048567772255622931694899020845677323471571561551334041965041776542820190395172957492715101055051861777966194639995446027905884807615049055103738533327900101656046904677253381808231791466968196846793049138745594689922038982289426932127101454715110909272336521947162805176197184991155557050862488936093468361854400569906967867321544936005126418553094271152003871041731636587413258780780204576792722482359684734900307462889236242196304572886792727466486296731692860363764460860932344089464901135463324239905614704067427299057105602398734480327642265038021454668978881995257030602890213612297979074070437242494162930246964386989955611192138471604817836240612594281089048733161351380383331076594633698989080004937720886230997980329384661710005304892768787415148151724965554466195663509597013571226911762424148255430558604712236797737781097459539980740924044410035530015296441143370001920613172516243919834922443939250713849189812573850774430681568969843221647831934623435759975977721939512892456375437433006945400006861668547925678257729158204282842554293355211226098814067243820495787407472357593424191834461931686552138547405268405970315570142670564962242508781604713920921768194431630282421594703858481273767544166712721543242019338690761413083492986235763270424421030706139431405285234220624938690057052646573570728993690455577208177253411027975476893314879181593789920042423807863561171552767537835920822290312912342578954273320927043394539982911265302762549602362792792610901647369332605181506981157055123572326688982633507546385308618759670150739843397191586323457373273381306899694728145011387064114142517115729071713427587162519804120388914453538958051062119098738904132538574044986230108435027196391745799013979540205408970707307211692686603616243910965046447145518831428510892890181152536142703482324770751608106863148471934544597863234166288599626355027813251239752459505116296290610068618514049612439931022429622750481926206150869299248060590466876393427726943223956818245732911166417281990161978901664690031219542555115273922831809530346657926397969799518463780156500297021345742160379007488219765067340795931862880836337853672335796533037922522546123751843800897979550701073156501555448707992420943245636248292874136551501569363835387687024616803198526382994758291824609135467492286723407335601295823105409452352725420142026316646002021284896668008843324730164924973060625281210030139495020124505080124599429667639508085547035249985014496009765049337654511501402048445486728521811861704259205686500146357995324115030777644334439713888153388110794856821093710443517803297953607278274022793843459148604490170361453228210715760346639264810750643819187938959374500855094721165071244168436342524846933842995274148115019478577015060659676024369407101329021122602432255956745760123795052503877980894899030309751393334444667784471694863599211804583643576347484312660458870087471196712498192174631099114439609923093674362191214579017152564959296516931603109114755454905645093212245845077240047292144619697937561083319862282953680748368953002577932222156305192904218400117009083414455569885787758000961663821656200406494795145060218675219814005184999125252251542024506660837449001313158037684958032572726563193466648257798900657702096607098423022512891215061056104576004943926273484949469140127678300789318594235643833928113445354249406795402291306919553540387132960729832326255695970588231053004047737159591617470007748421738994681012186270292369728994994369658550594498403035195443599497594517240462052646846771372151519543364097117876633277716032086425004428203703518841941702784984294061193875361368894737085819127360041317504856380149234421864161143929800737489623704551885518915429441265364935937995755681721380155574295965128816942333740326689218430005858914019842467964853468260169222480797986630544151028782197627734138082673337719078951626203564223394172956196092044990458188977425547989296440300293806773188382091358124208340812171333000102789043378250351316376467661405027647237778742780812826422344959907780937006851826312747101437282068174723580823136696315603281731340178494880716333517193546496440335315871318547560540161118564071506001121849818201346551520094133332462652620884258743485850823472221858426227947646076353341905995732053183700460597424716924324851839190507796246480169790311479388449281263381443175193850303438434237039382956883674741503535770717563499652115263699567174614192620411962239053857057254601221469977180560786785310976718473047247270527553928950088541978514826854357051580260493320467690049102687321192894122339319261868591599364579071401450952101963110871821718752125095975594821373533467663176466430908893594249647383326217616683554497612882000822586531240778983265694156600243479380729069447800831238045543658762855766690663662618162513212447294606399465553021378219855914852049198461799537741798782084677786178424168232610860018315672814424608149154305370779800570949880321918055073391830251988844315369019346834555234785023645043136281871951927534176400382410792776898137568796714224180397574353390204902796093855929665773761115081656989854132680857825034354950234106378368275925284844690063206768976784067685916606967550778996564661938838511764866700797520191404260136377935709485110572767869968853622360110648825341656698236776717245079984323637125505598727475404770103255379395475570902412343367176881081819966569473257126502379147529047539259397065153594236941205380833564205856917842515104585625511269836494147056345603229854457418952821551775768329870510607333063536421201029569190587435970591557472687817741377934062119941918490819662610797210843058180207998769346648865234007162773719906591398042115744400961523703297773408017692107005655488819915298037390293896406221632695494553253778200111076257038885409193714322634766231379590037121485820864759457149579858215067780422036256063772907271126136074036972060106499736835878697004771671812346121082546672361269744123265741346946214544044855174512152388730811812605279708728934708659098006686272796045479292262178067317344112628890962581571604516946912678022175657302880054165269512309733508126013430690969553361442613302040158763255464421307775541390666822362547122430835317025596077976637848541065435049165373356747728428756713850268304763804611384875784313835141425960257540328514458343985870478317243477130734889750762042269716039856945906312296800814488054584082486300487991397543520482771445568822814065507057676109690969330511313699863611757487515028149585342988001581508755083892582692281773482782966606519898547750431458198640899857387601573065923173524111236140935141582210385328862593903242044269811118315814043207422369423705797779696953843432247588734385975217472193683892024315285707273169543767785406958753222847461179521790713913995610913331851540769679198268918531398049794146180986479818214621272399582782451058657071367695263482560143281990058858639914251509897642687695784819551072383519036451717632013470393577866279746308565020281669123829164648576632689362498269829284319228280963135891194429445246370637172208633404161520982928240058135860945757031618552691886757149628078658273088940876855693192182044238379147285798084920573681290893593429066980085522203004428029241365174325630041599529320725059564926770751614347282882380376625940328149006176560786507513930719685964317786717696651758874054671242351362638192047546382965292036736644906934408366066149038260248066923195239405169456237507925446186678096051546900136035463558917626536885409627841306813866715606577781983142185041058141616167519272239608875422541920642734761026300922833505625106378902912592567813477979339557368845472562344043745825258292851790774491131630454130449388361364517807809849411894992181363244692178591173914706241267599801030253999132616714863112104318058227289534882850139511230908721887174226733935866268059489444524045142686604597873880560746001917817841492161687187435994583248158089941283527547724031349432512502416253039743715923224492597999175530580997697062111265451038362091544553618033928201916987240168954152982058548098953615183669722494619572961373423398307157952080806128216668958897900099136328834750338274452441940928372203657707712852486638423904901489979350243614090657866023473021291057816831540360567798896785035044865511757138646726949850763359492598245952801699165523199340501144009508021414300818615321010540398592464877285023968454793964443361535637584666621013035374172050399179370575798406330967642621278548361896103577013436180161240893701144264999045095340680487493790417074816234878991683896515704903075611053797682036262188807479570947589788156925519763500150166850135894973831788300346107027823569621107929409690057692338900570529414752921157845191980780116165803655945975398479985270376240090346179907708739227354316338379663286321977106968932378326302897914047503776846552370319009575985967445585153893190056039117686163504683752403870954878424150944994780095346345816920921172475556546457839988459711199561790245716119985836210461151060219037466458996300106683994764672358263661463377498593085789677559566253002113380049420917355238584232885162642681779164814578290284742280593987827565085467325637480272384690952788351681760157726465878698698714691433723477015954278334722985959812647116520966785577751009988759003741164018154103307969944664036096325901827044031958031654815094041769639912616068348942736293972740434402438641344791018436172098002613059596309911238879840361105269578728295402402681480232743136509141487481128189091836034720649100200103145172061103901104638049653545275029485485500674536538827277405343049679620654585395121864827462577705255367185599819463054549097808327037757731509966060405652932393523648135660446488613592849356188029013331367718392121181999319679762546399503492870061097422778138711293906892223779458448933227782592040541827257817636640083592084786359913385517519304683302259163517298875284356478022955470581249596216751569097982990338929995985847955524549991898400646321387333168684984854881954594557535282279401026694838447894634515575570294712594423906368146953455934837673022511559218095255798912779732846992019571573427014192561411532759407111389402261027015243902094751873595990455461812183376459117026951040559416623549956618444295585247843697992309686383793153096811807460560599921493680642376811584293719071620904744428272602846039495236775211438639630078994055135111225584267632510386148933257064778066047829851698711886833066263622083320807092473524589092410126970547612668193336740577654226626995758596137983638016867704966454196436032115038837504891817554913135664531141267277754549468639688160750756094110392474510104439878763182910975739667501471263126224142271045522598599870406750798353352002480164829793277023869218342740116804427960195053903684625210062214452844033625563055139776445373635778711833891180694837711070257841463895532370526210886907234867335002100165967530363463152506900117287905875709847910034708745204284832241724876605182818469680179797586829207682717824778503204156043124604401469573443827106657452153875299356999235738738253117196722553851801815974553421465102264512657115241983939227228907724501429024310929029374497058066191195519773206211570893280890027301363226395966955948048379409321669281466718123930552431254590689694614325053875719167187798977511991338786750805018731249812228168607156368550952479831966725752869662656579467252221262439922527700027332547291442655740765303631545621406284738310999882289114879662777934190821834357953095638592798796559332972166316387303094772695031857770914344182207219640566669058480243548424360254304574448879610512141518617031408389482463671914237889225642165339789885255606240423974949069901866618328075197598839005231612377179332442541003414618917526869553221458532107038555788526511631100165148944796409902502085829828888760320495978476775963539927091001585236148394237604210449181845453287632043471440096905798410944967409932570023695214720537465157194924200963601289072916336777652173443324940931968592219608749541571972961257406956693895548092556420261561200708589973669586721872212310540063962671556206932600831336437929581711031140535900539016879971737315133851674487287437099230666014258094533506542266201716750427321563527157550535496190210724987209500999570240513242090269267222702541189118509751307942955387118807578101947719881061336174728637601022601257221553465827897635560614056460281807144898071566766755856790344198356504297447468962499216911750522280825732523686602040925800052935681621256545155120839055426058125165216526002322222689431593865996131598932810840578122066809941095107627374095826646552689887217584859188308746463448464364809013878140442354663326237411817205385791481623129119845818228507133463027341926844181601938834086721004606200855894692084761163090135017712559622815039961311900203906634556366169097149509127864164136955501540550647754069853982877591053164933051378970548367973576435771214977466941381349768211605873114813872025933048469478617203612699992612368763182082497672833459450027875902961819171128552567558110754450707615332020128593333275356108780630291610182069846833202204636129874828523757540016539744111484470854588861177793376043826894973122814517451503910553109862420433228137240724214488016438679481116391080754511195585674314562891674480179615294892237819376776643794943811372942289106244671855632551170804782117404769056375112548570773138672221175748077032146646903325465997694572488126818509221728228953443522547782658518271876186535472214969789430194816773494318491926603051078919109227990814996635235621779412884562076458458007449653497698829591951461693766942045655735194890600856708669266176718160695814521197329368404874648707882108709798780188149704539180481505063765735082681977303843030381259595102311623878834861993957284379174144648064957093439628222012111472540571788758566140286656621006871500013212005782126661310490043371537622700872467053253465152078725138603616535604832603251395870537582910082758610417386431528372381479724427240640414480091526317807565182807579545920372827482000437772959467069446090033645350948248085822411222693510737154365558875075283610302440880262321953783866504953688673750618486458942263386023674814509183350201792865885714943382713925642300558111002991952404613302401100008748306755899229819633902064309136856113124326581707639491465551418887011132852303604809084287372194075118628207970119097962576773879597795989992690044056294551719289830865594376993227910908453880579768295840795344961175320365451941722280235258460816696736945054806264462043980484081198380310389586410531417571259561388048700027460758521823873901868260404785652332244452835592120466999021147304499231498824150845999203802667990168346630703588580100522152105379776284980987352064479228947098782806278882796424806162836724753683370545714918732570257166356127901117181047474097952812098713787399046076322793398727486869610525820254027326081080428705349692916337646021723646576344439796749943751580751841515986947718715522394313601059686580394554175480771142963261459003826448570828078074312179050777936864051629949832171360560108489665764236352174755612028615855731413905298333470681707276974665384533886247820036891003074594883720687984452922769548285945237269119156028099897738898625859987932449795898049884076391222196213634383722593287808061853816490139889152955194571471214834460979759671019586521740662528057120690592966108672353805264981275933002329760072215731551693393397484025529512823187793375227969402902190250224038312615583838139887717559295873303959019194716771624180003912149511913231061468804368901143528197729153104028014176642621733828355313641809517507323635978350134354363075300640397750171235282778269036239244538029073078071156777047294148745905891910113692363838297286506709722082616848175745253257385697663363641182748847327884352386401765793369394746766377661522330034307598387989655549214469560131870121490511401264790435591507227481152196906878470953115759740325119656564582294539026533399018188913721371147750631613518815087299730741561256141730839178828903826628754235309564443755684894962602663633997749360697904567280792377189856680001564117722720220927844098145794175760347419740883471623820110474397008482454426957276196093297108740873022744715112139380269862044542190329375964390068679427308724788589099708446040809609021106989964572698372611555519838582178277660926354293790338990001435236572747544578078591807829322489815515008050608103732825910787270777031276214642320011828592463362832123662530019209246970046113934980203974550132679366951317929227033877768304051274304472962868434365505054341011641053936955815601062883952412706256770613635020948837361702700069446708820378974033495699345404408339605019937075894624739978727820508117624843168285922692681938961799130748297543086175277644708387284198329034347670354182826332160566407268008251929713778038518037008751754643043278934811084377545017895884011363402363086564286866765817534919102455109563932711983618206876361072466408734817830458103448204412056446228527906225372317313514190431992895023319787471305354022393664664344157055771945940490716172723748683762025881889540328145751348742974729784432621921646725443537512345249411189306743853726621743093980359121577976751984577977650062946141566761736460820911705114575805965944243436965004009907775046598974500945368308770130227426622087816771618629639935680092306617303565090860033223678567828285410418553485184925306598394428927456037672531335579436913080434900807120353413274265140024692104834897262150780845954600825956706400180726496305439203330236356674269949811291236406856231442963417770568565567314232816652620748762614223387600813760242809622607805871977662269233455873485903976755774796517967064239958424354285572288760839248225650858527475525567241278520094640912350726414408013269742475408670529886199898831469030199625095270144672043806312494762450381630844101482941616309424892062084491000462248889281396299603461135320268460689765394933115470358972286612655035294337522514210565963953495577207333429470204492575373302069925012757091365114008366274253712205042128798844012374982375179673495701168526300564493303507305733094114760447750262163604003541663366856724657777891882594238310005167450376746506225463265735231837824327709612171183230867495218980914859255779682645669360734635155792178267567514689942177673287537083944842285377546396131821981453981142051183430472779108718957140566901197680867373788907092667897171713141039594485521172621546055889624732625939977285344111502011430398032527345231445194153821095737348746033270180810877055652237543446982552555614372553468207418041071139802128595012904748738947211558052770267041903845456588113974832521136363094810165801638572450223145429630568122578656164516237083079038444777722004161364776319094915839463119385913220394949664919415516589321686934046533166081622849084945066206078872688042797983132562525384230926290789824047790465107122528658080351908083411887728147371680994395791999694649363310761228109436957796455564845534268957651634734111727333281083732900943593754587672382804755503882665303578638901808168163415019118576676934888246186956991125888954053412061177337669741030517631639087625048320464222330122217530749603282555094530029551664352242551779920502955667579787654502611895889709696419953991167073633192107426482703902432108049199026268337248830557056237595974400056160200761568404629362514958809819222619550766223763532683174569715725617802002168118661957324324844456683425201634573471962179753374762953174479113844342180160458797527639500344386801416489732527501608951946287638604396478295609298897235140932465497921008493140509250133528112210512490065221335834477470901829495554417400043103092492964534797226550911797608629206981947177519977703319448686752153656681581326000154869657361755166645815712641019298378944546712842627920487810034537387844332904197848805618069757468898274293204875920952759871800411810979795263540237634012612431478950442825980951725573685054303633120650278322639705080625686036926887304245783720860318161627622113040215513172754579077723831369456695085655357585604260574120487730366489672190674807697556226596508097688193403148546114476058729316269588393884623638279238753496346885632052910340709320646174052807107345394901183169644004364414893997126909097139340225844542603809135605038068990410301712689096986964535543485802712386243919121582027714464256173706011540929420319098962788301189271053951816972715058819889735440072065034904413817104689365110295742482687110570700341170247911296003697730829778242520389606163170684170598198050296059563960415475906483719239650521067007713743666573744773372014543507967871283313653635924899133543381656469194268004323551999746216103972492928093107136437940630700739060442134569574192919299636674532695274616463662640917873703165516355411647653019495327705286379685381742806404477857979658748124079039276589924859264915390231611474144990685475298349866857794651707247015229317365142841691945594261883603490857958836327614311225393221691735493454456484469471422676041956931444602381068677924345366040830473808347021364486341455777346976759072870757134612327398332483656597652545764815602926611206814599848821537671853599545986949880081069346065801086977192475032850608470878958374161947575536042315008574731472211439557091449376972183500984547773782269952640505336894968993085963958394680636019171627154868749578959254395572160579878189105423326630322659539910392708007621257064221448723914224140250214834031516064064554795567281172440057585398049990692096783009884513726270655883298544068982011994849533974583739192527707900841153238455418064416628458085269630569260422480766627789630231663004769268766860085568812973970541266279888261048476221013492380340985106618399656013714167686109241174319709621642134584771754191804132339036515221209212885953530264860626104522979765008736140816298762558430860181221354013325774807102175064680877953114707396445867204159340256266327234595368614944284075281724248591075117238800998789503664059235115229164217595953184761296355910775065881422718093638886786462965180470151859308593751233919584571727766390042159333931013644851933342104344774791187177168598350407806827522886118241576132726547383006454791164817748049146647566443430595138689252274887697257912976583463328882201402944714481075098836785838503055224119725358259412027511844925527449736434774308284238472903664485046583920897734204286494710537667193204097870968793393789952267177726859578822879718133808720379642103213883769518867986093999692497035412728672450140926426135063923134537637377700567652122586727424546403593901804331815184230585186406425963384332367801027212404985754842664916140343106771300054010764304742324968298054822661878874268901016599982187139137993643773639287016761316553770573434275053856692028831459060254083902584144995667890416015390998938096728618669921355566536916242000451420421109478497108939932844487505056399348263292475540689557839478939146796021789854278348063418131476902167033772854093747470999848577858021053960649057025793071751357036616955429298219939048133950555482217563221973753008032198878207367290786176981787562402757618751254769188728848788858178520246728245528103631605741266547144374435371430490154584285327895973868540856090097080606838358848122988213042299717772424391481806888656286289524020601197361775365585796972479966747521743055814022025889933236002630014842813838514467409798930685368189931505490463545507031447966909866884008683431247718075073438079892846182653176519639739416513073709627964080471887606647531258350476772040375181726329331347439643030890371316845808207346250768052574733156396431056779706102819666887056398637716078979936557645022901359800843825546862337718824786512926163463080391263383823511128727797942929361621093726577722863296572216559906340345217068981785464127335508204757744824209986175295593130104986588209897583938971130220066055697950816581274131254441387897256691341205768998393879977200141051757873666898358696822335133916358503861609611742849282738139555677925673491175781771386105723271716905671834656200292225403133808848017967393295179176288040651444475366215591388973354559492268180160982274375927905293147480863625447854289440231408010712783928539054513969609747064451853926998670071556182818716758971514882567187076646706781117251833711539666134228629544043549589254740135093379595544728905054495840030047923361660337215882526732023963403065693807254942403291641280596416395444706028425447047795683668702784504933904795136765100095893787403257604283598504174695047645779598983137235293033198008127536149880556037970518578471543006121327648110832922634531389124342200291246973593917635226617343501768634632453861463105355157387586938406899983858930330822015185381477198939323966724256265386045304958715310579315429506889421112457848551757002010106486267070412068644504712094885904119158062470196465294293600963610311584415126163664837183077087877395114696011334476741094561290641218342445375848511839235609241492749467122129496266762675498412184317317507860072610015805018554091028921503868828697977811285103087416411267047117519074565278704824186542629968014553437669443051646857434527818390933214502135220675495019888186378056304573106923230887519227996280774845682151989353525641993334271667826047607734640414529349423434208971266476494499222309123346324869250073803080158168469680803416611158668850344355270840791504599626263495389684857827543388971889140634619025797775688772838083428601980306832499584552536285106464244219226580163327170152396023997623694908622081605951628706772184150653864187528127385384894078910431488744036741844783876448350982718770670343035871235011371116813170942644328245805538003252075330177083031288397115348686019052858704724084263659328728223260221788766925726944466248181051444103579369488947425348367763970431793271742335211016327788962461798474698888609329361710547841574867542542354909026477391194665713924275891160573084786117515324490541714847533794379482212630417600489505563592477532872031420723668361645814564419223249941433702520711592099446725891570133486016817853459131129682734767229683357636622978255067609531897643273588567001678847681327514424899536787798037708903855939177519755422838040155220154952766842290470678426249885512873333150737540145480616028488716953735698920785885859650254872317046751357212497050365386720933229404360995694896144968205264853012581995039411395723728470457463512706319090936939423348078379829453124162470061102476368530030352327566031261794876650397553184735976539192895000788365342026255153686248331937508352980146261348254059912609650000723245819216304265026110162667238243515092923048851672443557840183382506778440248203279570866279805967347968463946550013949204304370856363918708192649308515426945492419297181813513776164050437302838944628472657985418201898897423961578271390217370342417475779002505112434057609832107567718536766294329027500232272076120265813941501098386440515623122364781802772150206474797241154132913826563759935073470738230044158489094494688953070174131805403696923873556648378546853479714405420695133403246700728097063164882956848743561746195266512555822496049336932069185635955338659799071700897341604670879574237432098584499459869389989140025864728160299683211614208678196397854910370664769883404126950841430986833099994903722385389023826688203534983649778635922811781085731941787078939465234467624859035707773474731632013914963170184194930028202713087753103763758892302998464313298272146457302560210014611171100393380639053006325077444287653871573560159310342444583713792561507912296332298450440817829041866407051536893247663276569247142341639354985216117771774588011832156121310821727285428779389808118521048180222232181711240211123131745635171175839275592031265127560775770106846796249367776177495290748236160988641090184966757830470458992596567353068780259617332442162286129316305530413308532812208576415167200648865125851346929207635349179850578282511428731023951653147753144477100955047224556136001749479358934547044312591793065349495869534289726437763625346131672788740365926211238908760521816600649325136332053215466402850046361854422461505122090688320112680154947114259679353771634623086963830274245655483366977506246457728690898404996230566447950450239740110363454730392056189801813320565542719894807494136277033187188765050595565777844880156244380506857542849363890586566463419046139379102521564275979760730859033264110560317675137235237731204070391126418548262414634190211648507462600174123330469199542862110400667369835476976484009282511543463745536354472735791625922857801830372221182787105323229474937184833175111181338141087963058415254563771661217578633748616817561123246882610291865902192871754408672425817860998922381448128705358504085691203548430954507699801566981883877857331569021797337493999604691613413149191930736430594501169115766198527377239183975448247503183601961036233984076967227735018792714428961415460866776018157824755042699987976207086771503752254745335125042074821923262457585091546374298345336139380342343273074417741078394476291006480605047376845550191750541188965045646881876525698934448953354969517948155915053144039636948354055370197169763083056481682653800889594175094422019217322429577750350719850037222223713955641638302692907450047248551636204857153867472122112686442963838181995655475292276323890665879363604593124442664244581687971086168270561781213820173051498871970973733934325580827820644448373380230305737444056287071493504640968835837915851049608652948374839852604341586294446405489753773665044060002562929547670602834455787945394947455789575333030828564270568967978517851605749709092357154269739519164800796123004821518053758922072939682377124418695642478046244736378117375136948916609093093508295316444578714948796832314593797299106586621044482450989536512148395277968997945253399940437067290065359340376617823045317395517103432796400718415622723541312663703067428984031311476711777355340632084448624303675881278444689836281835303616918444335277786623930103921405152301257548303531899434116685362698302518811790116061591484007221618701508855428866136821384422610929448854888529399796704072404988256388942274274662485473034178690842631022510325536779696901601277719726644203957759952541414449097916567396062804025710926470855348405123371601265551562569523149779559887146709360210312402070580607307835037773996422142072437115808490718990820456099386448199217677892602721804997513571040254650208505462585891500661458899291650379003264938526895057006182318978245762848164203618924402237451748148568561494758167023391942627664451533436986704296112634076343135458258324864128256073246418925981989197731805083067059165071372156141094175736000137115915118668176372286609898580691296933045697605066496578580895210375811435415422861416988187471750320513374178213032616129950713753441643046587608031793589404714673457596138432751963191183170527325245086961481231403536663274392080647739909072607110334040456829018565767085601330353975464763186852774691824584724157871461686880214447044852024889088761845512297311517339213695987026614122311998987058388914251813496178782683201133599715143318463400456744686707595188892899727172918691720839183874379172914501090379741510622411156941801404224873945539223799208780946623415672877056561361112288897792159725546773429235846293429691053817497570400259028877226946727593045107509305689771190406335373394860583780581269559816026345446443017417101257041291673795819049367442173285780639157445514273531618400604250132775743778421326788923669916070492290834242665808744053563629190034364907566224716249924555036717886429134814821846199379194071209305819037662927892938400978324747112171485930441653751276905261740992841032756164223800953845273327834814343027506741479923074183675344490935140469222767984259008987357136218110905039945239402687020803171501148221588109684403603411632882033496407339188604994165737609560879258039619877514573716534162628612153881367977186735133767339627307343060801383813637362227842077671436662102435260989566778568387625184074016917184385768839912102573932133821016410761305519712802363081181312853688662614451018594441518273362018211745502476043055851195908193681647481317063842036001617430820546844875806626902023989623945007854672830403746270790942844535830410476346549821722893313636419335478460095560789057000873226880433753600159902763735188243107264135169175461627309557525951787792314273753177589129846864647289908428349736411843832547440753405726376542432643098162752069674259835213915092789032628310112542346847998893938531395606340115601067779227643351480383994200821715141683978054532646336036730823242160874082929486873853885799913999066191832839556326954223469174749936327082228242022175029501059007646239424562645980287878959661265099364237044174036821347789192157905682335336155690317031255763150566803389441617786326021383105978621193853337859823157979860423222198415977742940520393858779304245112731643831355709056040526722262022983262944783666787487441207974883041272983096253768275883278002977453319117877747220897847675455528260974544105842568361806185813469902927944545459113748962203769629501303053267824362981229515989182419922789610325891886124871985544658341166687539950432593070348384875629438580117661526067439298948646477605963522884393364253447742733526364626130598993886966243505772758912177001912666637155114640781312548666678382002680235227499529060585516697673977579263179446723841057351460685190491591047065740690558910281027177706275208073957267487217235298658971731624412976449475465110458764817443118308615775406830461421713402238183972784858784209400890414162650218462558477299341303384172913456794684630334210479252031754574946898939971570163613448390616312694323961628092478990511360586276844066328474394359911136036968681316148523006121973478257153712374738509726328580110789463827778772878731756230049939955560795122567065651677878118972410753037651512139013783921394461960002265261808191965570314804564058972329972831751009197552829416105612058564691254054487273651696225317534280968999950973413402516073168503129618227731484182029406645966449793359906235435834098468985915880386338642255027798104984898307323056731858687818320324059357045627261700193097134068764756965637949018202242771051972377869924957481489787573666062882609757946475820646366764775061235825607357479710023210513279514540887118369529117289346912567085956113327699010156359938847996506821854226894423667168895814725484777136071928016284542897489198442542976893453330447497456678030739521265831760622047883251822095853912578280361961970970353741970681865517466695886421194222794995302138465321646985842713690870206483537657941452551219164960345487519476314459821124074030938573162009146159566485075815787615452576831958540507441295054182712522621608004384311079487022123927771648004595203024096700749708973222389815411355628898934997729097660036037095291076051957175640996043976239158744541417070821127072749706707231153204675510930990132953000846728476117612885953546377559633291195759987780305507488322321649241281096533039288859555357837274913339994787008219821037397095043671600339214397830598590550870496947626517288891390148592898573019677078272817423453899997510941447440928399943997341478446315944295427275967691961598183004925010204482067768720165755001367052794214453848879604473256234376917920473941821044220521721194968042173037494523773544913885442916776640462791867645033460232276726563618119603452821192253812474293265933610810015695490059646278173806176664521683166977560461853524476607571727063068948855841793721006850654673137507301575067526976523916272394044617571540640589236080359114522527733080638603742378207200227300866110054097168674616498988888658924174663953188362179084510895665165402766954588357852528267818384337364399853307607977042697069225595634352845753535153788841415495762447226670603706285574499129384626819941116038732968855494385532565421579793552153652068551537609919887831488619000533924623004121187423791529242552421521935027146833641491803900715110124981112526333587573331701083405868552253230982463335032029284045880059555056778423849847285944092516387229248647398934591925352852672541051802059716571824263079444181465607727931176863694135593330248724147056301329973753871021544139956602661524958797955924872382130620535658111300718034211830364302074335328385924346469396978963936503640815017394826980420424661266024047216409409071985974315952650986000537376146932743469125650288027741104607900268098436403238966825378136576134016517400283133216341828000994490771773619186410139862791650600353523644486846353986622457073707626330171769928094187168289437829231377469647162886394762273992296716516765393369583370483623200670174281264377175670331924101014341612847088094955719548784080061156990806070502579753915941307097048477595864525921021960646694956721425089372862004079266810388292520207026244857477609333039322714764493959262530572767796808744262599030414047647599401864730606395706879480594598813718585083793027358800457655011046958541020392518281091951802665497955417905907452582206880676112696526801997346434695370919115283207121517357141895047632279922911286144984782507741538717095009393208596007603417029558273086738958005861240231176669817046022058000421428892675376895803933281513099899101905860380785596804534651034536400292935533390577976128931138489963465787046102401274282183270067442218613518676541963499755410252060654337951611911646512711082613528549706287715348659487294786084093630933727706402954412325714595092470701696378099494850992057079691456983938440532020250598361239480313364809785824993257016691504372305843653498464737858680165483277437632911425137708357885000330521879701174937260748534203174583706834796881855979474596593224265728235211341826391154872945096125427190079465755036343735830862181567063853425647331034272781053460507896497507039955182754900098707234905276596622878373619956423181907840101946495701076753173146947867773664283927892977889496584758607509475039524056492811419208257693878388906622471237295279299895045614578577191290697029751745203474981658169709542195323709765217991580987259996984317810723016141056103798813629237776657744960839463257594374858767730244209877825551385405427343078468288799508562324340398864270684004785998577187785299657635463953890763358508752924291678700276842971988570470617442693093350466507165273784060028879283146786000246764640171028921443656098191694369240096852014588634744386362917646254711568110122245410115186177527799397228409969811780926696697195799864387766098833258135932282375827386918177924361137735318682534254854912918398287980744927633938459603030304562778456288590228381609543046870744129953535905539392571923042163602032734207373913503348595757229867269013777946186071901062606655378964232333745220974661653368772924947649535217933166165671001413981173023010233241306054483955242157716032976752415478529712024341318929886384746542946234389042497856662187110026483133641292797509122802613886535578663095351063784841460702255223503421659925599035273449931099884494792035404937973717122333858895043161456101508889653541419653896757765387767151353489053848484856190489234906400181584311929182629257170849037884734631193571905927380641878222707293634003915633596023068901188872512098065523112672674106466520228038310276781210603146077015665050935582633978215475312160433847633670624072904186286489665188773124686781409696660627955477194660325026151163472534717244658669441497328255024976842431916900923342513386680460523785991144895642895558659767342481552193237219950511786517029767814241123722484661252255357061655907013476038088337129764726508793567963826369208162895440769769474403037279783220964424717567113918194169857171722650228775605113134674674159597926515549339763584900465383807550681961668624025193877346920558543380691582968544740889955116013689666308912655202667183881727871721254051491275376894571853059728105654654764584182181922182256277743698830618311664924450813112629501833803118069627637837285763537441737110749101918296041541957962247919956562889145701577120565724719796636635358605257460622818794826352017137309428025949014272591078607508737595149947592937150308550049225266026243617856268818156159518977074923748451009456015332510469397658137155699914591502113868620470269178296243022509092214830622808736904126583568221994530253694251342647823091434690253839171449589178641833399812274155685134926341420082995671400173289251559187774891765393791267682107431129551059913464521200495032399170387187155047529789191675177642243015519150099882302276730297289153152782947831102203007112277288637010522934968216447873794548074373049170301493330586589080746981104195079579474183851034295455901947267994803834469030816428368421104983382558006954934935182460799740386968567047770714467829195472731905371086834731280755089930669348682304164583963792265735241381031513245332070703483561867486646496816389394289135698291133531197771375484570875303050563835814260642188353060900482217370371250771298678762902110243899564955168336981377751657553099409693151141569660332015486934989264984109346366781550651875589316544905950979876523628492507910440929244462813679278591176160339930460289753832643297899217288772436263504358082855601755159048706855753964223470322164826981635584045544141282554915249220669503079048447484178999370926948999460671010071188235257326685221941175403655925761891611477255217707149071212066617207475094623862227127374982073106159604829571878469817897090443430925506703559645381827809361532507471304874104364920482110866298112804740651240804332101443380546250445724328454728149579398470826363540059964369895630396083886308135355784305151267636254651954079990240439888497355088930535948328919749055133367136202705997941006671372686744576511140366747649988551122500701877607426302181179318417471258437855724057270515728183992576754079801689318219440320294948876486540263583784685422755859260121578214747614935086162634335045101722331367754760193966612390135068333270830660451476052850556412588723442728646403660259805592463147490040038286765551909629153428933478061400730634116439520472624670588385610851981429532776975287500345067801605161022637673568328391799544816535294239337236044877574471873723415180386087491598810228335944990346059740986902107793451350333242845474586957374613950604734374859063450116411035894702046337094060604299003685477003389878186371966322565386978668166786669359445075727854724848671822548986962506862093458999435921942098427737242716636898864608443094513944734827654951603821022769829669895331744162444108746890409402510060738697213294492495005060667931876821232803559077933211949628764463234879750708820367313535048631810941340653505501301867421636280683183987979345867051053810686424920962922771843842575566586466707024121147938498846066866964196653322326521777353294672325645626202210099489792457303630129952643591429334231689107353898128813382626466681369430991192276952914388484687385297059681703382564022545747303752170975847761962562040777147283909818627965632691541421124024581496753040778251055008556060555320120135579657394990396384936190134123003677291001156908549875322596741805482522366355020466993954810842626620013406548279639454580803290077826114039441702155265505110488977499242172534024229143734008649197787569606255501049225140649707561045832820046989223525060818799433829619018132576169321696385047212826343136928358670681428497768266908394432575065274518552707065478791680784480006706716838664675557858732541545029172253886490033527648161018326913600031795260740423108437422347535707130198971711792168398408572599755884519869072037080992314024397091801802702132426704701939579101217991553620118720025720294551122683710639158255958511797582496410770828757046616208508486412034054463306337284574160957698758398360295544459354097012861831835334865091501566532373776505527846744853350607892355644963875529157663764296951209069584641509425777673050610012826420421035443817971281260628047979972295390101662240467271265115291282240099808425590592435819482479013543814244757457798164912486155737472817892654643012794224736011457372933304797254505745162007595634037812323511225982754474554460261989747415516229066910239231415263368622344005160525174600926968544962903646558057877118989686608970235083320664708583125123643234533148838570061847587653218107986968116845987612183014932047618139561010274775667211203327444362979878849374159127743153664870519949928552392899504336989100710975498840806257540804162573397205417045407508550152991738539271322461675604726008459715690804587045072066318311042614481307055973482947429553533143245585452545244414138449983803055890565451223855144531574624846973707954474088604470020306779848951316095775707449553731152591605422105096993838652373619123113087616741336347309906390440423040783396301595170355639191847832256916888012930130197556891682046928381277751271387632414919264000317986211982094891096816704845332622848397825247663185554091348311025967696919497430606960193470194138844952939268813537952015766244237567006101324533554442878165986253569927701801974371282323182173405079187468257295547059026771943477926586949014080639195393754182632136675648885657230894892669623568972301341598759026337953690922268047722415856092579454537498634231552378538182642190008827311943493168646626560586955047821219369498016130436600100884346614431847415965698975058342885410339353319456819491704483957397747472719993823893947279514562955504582519878822395200783801090000559539739099287100687868949738287969660027716634460875813613838869416892751499378898620321258204528394823962889918773439449315612114252247930290232053031458947972574596508380423363402198463486444952632622028622505568893920963090443341773013258746716270357876174200179559129546829868948948820605800038189761121555883580612739451784793751666313567791762946302112116792056763445514111224087216442775066208933978163556500903685571257824077468316375510746057650582760822207513878899748809260598509813841065485088573429912289838496087813725888528892935587677405025611845513089851780803108705794190891974671902986650381997541033604434194604292833984663071919280205211153344735347798687971005521805130429931984203538404310860089178150563124221877102382140779420672857244298335222590241336921698745699890082827994835683705570336004842638027481611745823382686860753732948583363833405340986110408022313181776599272378139231605700108823690459639038992710000992717398207872005506153460935210010467857937694281853273479150378578188546565180176747202295133366789192388182864147025390101790811045157650735341291611053817162891621497188332887246212817309725603310183592540958734929511048397800404027029732876340947339689040293078177482185215696008731855287484953418787848366003456174457491303816360492162985610288758238336871822928458167640162886744978957090364414400334354078043407981730873546289028403219400676479441439316387128104609861777004998640728045633527325438368897741641268342626594399299419006996270179269524033454118751847679825991966277067950405713294810748707636569796520798532215941954745433093745619239180250171709502084668420110434890886082656587226395231893583876878423951213695513188944720824979777046059386056788111350844082438187385133878600881837324679604194970252228046850449331118332169280165280742533602406942395963240272071633075165118364939971042291320851497894617162905692233851220263317740703215549749732834942530914829707935148243127465682086282622818364797796619520343954354114032859832236211887350875831890782707728081635159084781845079281944759702552590253104595509235833225588676709784898471558704050122838087517632884218889015496552553927147841214421702880382003546836214532518683000724406904682096172863684224563392116307939279674739311581600588082845045098954148499040747928280090203083165204005107644262391502349480465579327047858170162499632388310170879216384820039003320860278588304325597386660125771809877213485692295746177532613851811386532312155858866173318487572972762910541578660796350878291936366833226171401869324855396000320875169755153074953199607276555694988084850928782514889080791761626949682343608306986703515848635736346702990613941857112394523374404755074066621365566843667565606071637183298528430508927577135518553874293174037007875977082648698130605532624135729006305800366578483760495424402466872379168151186836273025903177643806290944830031992008230802510618853061513175432615469029186311056864402602256952683400299585979093830015209619641501854379546818279514417827656271043785872422557822609180911765494225185074424699255389435157781940788874371479854927846588541294881097233335138245230263677430526653373946090408563843179883144707588018109507800937029842214644918186568911881292999297745497830067872901994797521231739981648315776415942183221553569040888744967907783683767902763900719858148652897223642846921192527444413535602447997681418512664600907585303680103312266090140034676203739777457839766770198606585133270127984981466862963363190508891647576061320717483989293295199631007733393854835383486159591478947309099488492464489573709814501646860491176884191205980112880271172902275914095075768540460495046016328953507642608438504251621209836274120157278440273751873889072734480152530928127805018920012153157644583691402542618494122627990888123538996734668165455655616406681412023035570450287902729120070242056657719576787947669368536639167776406893997861708534990118849470180565794095761886567232777801613421696488769513881916852292564115574542879212364000747679884246391167870432888571281163734283836253933523626866026716319134388122683847269422724600762663973298417032659055344523208956974245059435299670200369794898014572379478896999675994404715041905885703249837170374318916964008659194614540587756838926889670408884831915889801025406282969864348894819127600762608261380609141084418868744337819275288078398188295018543240261909667453463242349059181142820972456199250449484464052728735753114997803814715259788686901236581393511151647908455705821268138562084148310060972873117352168310083468434550881559087949706367197583807262246962691432936198526410074336848963422203554957220489722642958655670488488589759462989065258765968222351985503641169505581182398459151369384260846881140310416095907805956731825651445366158662675571109567193171298366374634299700370061847776194866675156965916654168432728171626138269780321192848162620519138042254183584429751374424679970999295253491366006174464480916082785877662131186408088646347271941114412305378829286656998495576224794165718462006918784801098082620546531794141843882726189569408234591028760360194919964908806486476649579448609618447298652507243780004759073907951601821908977600577389925231537267148143140627061674841302724347247649907931690165244903323165631060527401443533071277129875643597256579332433677572681906658868281243494669396485983648242759716628085194326393551588897490468364657173240150248179761932877640696298951173535103111318263510790463998381276452789465223934048622317712537776343638078682138017352138835787107375920398714564718003482573308778522505435463079109276675993725020947281228878849106232342197168569042318517048878717682013051290833686646165285070021926366747552041104608641746563800745507852810990202326465710966900618681019541559090290368177759344880433254159845669624024608766657205405098003340021893183886305896766094459370924406357340100386968457033944914606744860341045565750158038053721659648135117329390064114059180909696720041633206035409214477219052652379577990665664199392631371656116430691969602208000268420066792504159012783847819973779914938598020549737651313732751555040082848768881319687222884430768310802467511527802204344997669987052414837679026356303182492622511943487517624877977443250009490970272007731555611929776349058662874934718797258373032260577975852598254837476915753866333088140230528091997495567530991107616053982906381232092009025386934670478025974371027084216392777892850005760140193049241903366710782341480886598989733825864905309365966382233856718756537391289969442142574364199939184573060849158127529379847538134413322170331905345705497970015707255985845202517296561212127885069766185504457278974487018679681337611847236857010087057208239328343060886708267805715036378645091883591278081436846105544394553037188977009238582352218608947790841500309474320836106389633277974120572634743994530960733664792172161097301758723966698220551083249241380678949633767613940559771997929613785082042056492079597381844266291616650338007434846515274571276807880272055465625339672870063764539948275762196557175587391064642424118116752014580381498376401822218420205835750924928800968148686826753393072269265237527373992710478698159445977285341016320595821209181858557911588893093414418352496734207022887344624735110392640766230628426915915625617299393921725395259097020339732120869844353603196973242193518100996382838321581024812947984870804939754225232030546993643858220350881138873748609240029539732069071350022007355853366327030620500384279898099077658442721126891074906886174016276784723094665223288149189909204705313444594067812231130456952387350608394491861199400929627431614756626661818071797144064366775478488662673099611971034712080738665700171208351839630980575727941379434419467543223919951280226482432915066418111396584929666436044201696537492939357862728410630499133231949828065953923753951863162628608092912894266927125695317496908210278492385555067915355458719144300682511955943567458767085498491099595271086767982201547645711097537966828116871532895960846018723621832076229218943373134681977361207544486107539189649880189104422404145669281255378928362993346032239428959844537186978785453608572017672694816636464879299770930957709466276288930994882026943592327182618126279771971874139725147640406646329106680658467429110594713663793827418308741405393636125291186862603722158603829730954039332732866115565605657341188468906279866243512864397650139543663596329299465602408949814495517277179371091039161654710956302325079151461506496454333619869725317481100948497714020568469733607865848498210705008770482008313621890927666650736621881904258835282500512174655917017386948703132023974500842341830642923221553374005927119609936226073656382719589609259826292774744096967006132848820387923160193099871691978251076392555200491829442955397068124273562571570340867052758034526136159702588580157656278937888026532407116004777781716655181425635724343790655536703062057184997328437873776483694961033275342023300831336524220779322594326670897457529151020192718063845469602715763939183971343370851494577725691069576444779300803462273491429695183037125037749096073369193711419588901710143399379560114433274483288701830880334389173342404489009983884186500477159300588065059860773393665471587355544978316405481947089489938730960768614637556318742783564019811612149580373278643718833516846123853713585985544927543427389496277097453593659282997943503299476261771936389950504270133614469230145329628134017509237168690751416006160002591345687563841317215099093476271475965687766813036748524831349040833252883807965389029889917388960999428595260262959995588099427960179877549807044050477278853261210022703431433013019952819164396785384483973846896783786948927744788158403817422995237041787026996133712541504892678471127343575147030557803757052500906916193624311967390642627720685971164169901036612043611437121666430062224187994937186525298608720126140476129087170294997829181545631997376637890499995325111183098976290328793890073887013989811226440867887576007441199354106360984815688680700159494250585065265532554125698123915257832802087551740304383393427687267539651540654992948849403990505603560108670521806144134361101174519783819997593411071699830352787359778459729007630639164067100928065130499942352523594004515624895812090495315719098194211202493711052078146597125181472982828040934926453535815053364817274050813739202357539130332076586340061072624500444484290922272827890953600703246408497078680338514779832614424274325588919973488230017273404390014840489571248540107920447298037633623416272367287758512278690241081539774965391391984062664942298067192396809650216558935584965602644444333968505981935783270629440980683341508005188646837716964972181959118026468092523758348437151019177264204848098209563395381661642461045911979141829278545366467728273440789774125441776306864725752817209300654748986149495503480206190931618622518154494921764050729152987638561539449711438349545455146195756393016070120387354328660876142697632241554450699273882795257113911494811500350655524292002232869572964022178005415978517650524039037235445566469012416178414959377398470828677765934252311719103048843765578181400064641793158224629438219580511011941531498997384473529076765654001950846678005291196218535532920841718386094759027472581715502567939045466320344118348108178619679197522607313791142717121923044362076052531991811170332762059491450199469409100355418224782558858960683379946686938170132617896508710974028909001347269250523109676626241984816655962338881545475650220115723208091574584737903056178646196882932976651148856838346788130368692804559263566628734215875749242853149753907171952772539299747586067825181176697715900817173026901488243675757030181019975558324910463301647418009616020738032433996838336228478716488625188898194138905222889568014081097889634479427017403890205229368386311281710412726588342621042179375224651063170046990866168226361993268651464941046510176625240043467550788110735719160044924811036683562997521024154350587964702083470376261699754060835047093581625531498635233594661515503672004483712082449728427820343056210402535405288005117375532839656717035887305000108437021789328499324590903315676875516043477205127467196071093398856411908416174384845161070054963048966122086938859412717772091550373393242541111606298128058950529773643013474655082517272365348638676768674984766994331748575428778334164462470725921816442393463953876524141642505856853457253145770622215202186226180670360550745336679566185791651895304581307140490184311109856130702035373501649162283745821365425346208107916342401205464013864901963784985035998812236020339963328917320731642447807936796774138077510214233471420439111049952382444069229369897008533274269893946396365683495269398709111121502318478986568491444016413613144903330952170784619399752504739864156015501490244920951331691333123064253889837139183232030584551748281703346687423032253426168602248946463462211242340105529556977438413409041470378067635204941780710271275384141011184354828470539233725863188889789017409061115289097571230525911419632775861251363341988664076616985758264403615703412480219591362367029131244961453450517252754550830545989399701539389043449439999605018837711582730229997991244838704347695541410030387618795636708904407024084046308551346940061216004329187706796857814348481276011542988764318220056760711486594857295545284572789109311069442325232292361055706939412646300407643502920710836475288728331709169437494977137974664113712192632902726099109571351829989677518234479223659630870245705452043462692577990161975288182387270536486849291976656822284770794309759975321358290413939290489158175091769566686374960211822599052544531517329688932317137289853858146165237657872183780006172928754836156452085840250391240295171430459707965621188683671478237682869570297773175755228809428721645109229735537102792707379588714866146762158825047568123491432565783533028055735106593896426543122241549302242544238578291480534682419581911568090971980442465547605011434038679807494839756510358461651808495075820734387802412243043687344209062085967941544837799654871518440211786665388942967088098084382850018419721380941957988477857864815734568540159194773589465412865245384278627004035800867072139070660075799906218462912899910121495366509490206485366543529062262156036575226850964654681612042232746072946742458717557136984328810170435668999598335502623119192238624782921002094509718858070217473870003236825518087175515621367864164027845539695441884222024002737679377633261703282952854562645171288950035040186663997803598247791322609963448610683695968355055186196326065134976959185283304694989058581908441820162951273468422143952388391046197321381268287885628600712711508298549296068004983626333818605648550937679043081832300918217541315042694279926959294732888512728868937589677027561530905916440685991212477083393568870764005909993480440486561753853869597972957426950290157506357507673367896263382291319047853947834227767906239526554824923565593401325299341647980011675508870048300983910819240527318906741008976663275097168661794519319286392742807999258808524307950642987577410479616751282951366200960209827893270112921454648714206489609089469818910181459732851602453517624006781580028808044164120553026677789773022581216558517710995828998065261649837721460254807775393644567704374929706954778200551686060828823443367397204958532014923926315578410098694729874248426706098903193222134221597121872397185756106598687643040423866097292651805118797812013376788321611361342887213145696943518636968769758495441764058396595481001662360781848303838912338543916447171127552096728752442757390547026122544466432938817034254597870943825911476429153440349127622168260335494474087912110488402358121652119488574178670510223854803119484017212321311072025630121429658118648947647386995569954633893258145920209744222561754442165756961848354117904256262061250892598864522114614231427593357083383036277652155358886509406296898141948937492737497318805517674446896312885656812988277679408827562407334874918442685971480569485475431645169931805473024433792816704683601770627900606188560284134590183257103196268691147095429043907691050920150780060377404829036863955409093774265997757732994186202377069139323984273630154435052255165633730090985716191319067469561181669600364846065515980326405030257805738487996138397236049224673826048115891185830669229947100933850159303616318761512143308079389959237557144499456275936336661880101459644681554733780496642090874096531480215597694471340381679583480948746423348456520166738029848202915291404088840328864471421554865701365163455460995580090630070022446384492551066024634945157328876265763032669030490816345067004914815419258178457786419787550204829684390104318825417992164993346240346213517145137764729593652161473793488580035114585790523540465557128668803419285239633315204547244819715501089649049712171426229980749098153399134301985323659109845393943616863215090761503962356655528055995240082480507968410159582417014760056881779078575145934772379715278114785704482208746404287902489285366602528045893975395617822507942146557701878373566094064336931649058169950281733781815441937941279983112399080412036138914468736921878909590325362077404525440804491683442932031934949168811223386585084742383882925584857514384836072705362725006713817485729759442481454104079239406771801813575656789206513890527827996290347654108901364043582963211342638630591270167170050819281336681869926460053946993349817466988222067619859916543977067870719298415426489433087603262172763086807523556931406042477183966313724198372318677843695874694737774461842416655618160606528810040383261109406659904436503876733608603959855858826903690176485299850464584034369555040359721827079505213158798582497585168583301333642249477005589195804240028400281741644922475755526041889280404039943412543291439696798517563878489887723322509786356201489755424342542078601445506249704732169606042310594519785610888375628823598200134768514672424408720519025554623135257171854398848137042137203359581011973895104721973443296510763206282448662100141209547347530880234505707015792623146869131385293502911273342955244800886104759214910013591493527273755314874549175086518393956090507010039490816308909818961322952927537682072088440748293642371047286873537926039852938068113272822635486069030425657540740660785931879168341637474237124782284044175931558101033726942917567856032957446750226678133103260220398786847945010549469852493913607833800884275689451009536742013607207967783250954265077113202019001131189299332157652759439003844044482626794535916596932447838442133346547884112111355339331674170929861142375952209422825950601031494789144467102906021055526494266014808231188948438609554079773984272659491141869830126570076465354776550984735201879367534262439295941977025227564850409726403177086327850294244812002034301016902905608633922691467118344468622905763739409409822135152158950595803114633745030933469601153311522097655180002072301647210863918754694987711510823427047148041603064915885503151188605213996972328930437304312182600238885867060875784719135496869096722403285719835181317878894888292818930969195180548567406657431498728037077429628087771122261523941831406347854076371465447300607604839889976022134752431728406552739573510794076635008367704680797857498267851558102017813919049208625981367634295489342906381455444519636075725206562388467175557670571435147616590467832496958106224148261290317359099447129311987718370213840591749150975720304488752501019990061547384121030016853064409142493871562843857949181208373800148332151940456748655416471594723916565781487838982664822241484314219340043071565623508612352955621112969768446423110089310024474666696233026717222306988360589943549204794344410035118797428296364062110245737329845090342716145610421058005513455562222469281200129265887999094861908503589132719345659304971705115816543330816024790138939493952697705268143168789896672192074037405466562351754995521494804047630697891833461698030971217432311972354780925620184372430787388762781504908269864201163025370465315250655114486194076394168960236048450370655446294235329248561912136902538237827672445803725035560478194522074678618327940788853358640435287758198956395483021968643681348600284289642823484054772339660925775240333450362823784562371359462571581722794422497092962208754230925318167295908536868469548877048938541460335104982371789679804468495456090644302015323476411681666779343679004699774574162736022939202048473148244904791480755669180333878475815536584653965152419769448875200539393569576040982300819719202088245054456538910880423208935451945307271904986472557208468760660694239470106091050368553896190237871909967825696704029865094305608711043753242197546932366883323153284785027748858037466879890664226292561161048696704261811361340454908472802475180573590398070735561717318922025927420241600853813481696848945326389650231001807872753197591407255085768404354920358436622514973199375469302519465366244746965231160853954776758554217736268838433049589052840373622922337480686726500791780324184956430653128028173594090199389949829930488316973953036843810521050217065094294702113414196962931343643560041584735947823884943317924309268595421119352381680522560201721467542041443270278974966290461378426533600174264103900197598968374663944701797503588756206050437924649864290273213413276132192737326344551498723548241539089604790773891570329082943699865958369812729281763915649936541380394264137859855038888296030953482959816384237188770282614191269516837306663473308480173673153788404117768434233724414606829117041046165356046257377583159686747265796297330564712931380156010323737696757851686627046570442510024404106544067781055238509156964489934883382797178677181898842342241075992373139965817171223570781505544769474492177512021573494187220097171102401839334385817030795445958345850780673071872182247075510281299718832458785557315269438401857041668524345022014020173775054175996074328438820294474611194872738105161865466070983525771029497717713209816484935087517272323251814945253486167355599399087694567601165367529777773937683340763087880348242632627863929437967073108733816502528005365264006005932863220075006301144984878931762669804975352488999827919087234796401470149112540359749140154567174970979650523305112668842730857456163027799217943844154225434284719752265674526886848746843677223672984431386308521696826551394743675377314111618690560588112965547171961003653714735282068415571595407479315891156872016378081936730705853915814086943422774565949754616323979854331338636988004064623316296239686220292945782524271847853929090672240317913753151539803383093580355439618615696924698301303186268797286546057471868875813972430669880460609910583851338820194336691417862681735574521680348287748404204102327345121472030244253930173863521564877152636399493657778181797361154772963641553214421155014340915980239848447067585013818051752154829040817079570403901996014914412699828445309284087739954363157501993799594089848217109182634670460038211580171896970228519127387434147556250128927183464802242839198134087560135617200094437145289680782271696843718911630845319611126265567432428671454921636514464564200168175236896696466885273278379568474899998817419255894847194482761096756200538519383077601098700737737254467093117073099638919142616254075931011850519682320839879188638351677888001673221671940757525043407189430238275594337525008259855406710105748521785021720418672158372401488253948430301152624734413717712505157905922276305324701441609658141618907164431507161768367942839367484858400567276524869380738706689527939728764968442886256698714676265588626734178347413406121723655021117665600249498401890708059507430783448913795734855225794548010936810467663862496970999543968873895162786504708928711802566148032911316625737087111398402212035787540373781964959414205658885072603209214417549027019460818898546843091977237120353059463335774128910972755642776441922401587663921142124303384551945550131253450652475346024591741174194896926219394572113545827451647155766932558222171387475642168169804728744424732174234677683646070639307066283008062488908605773952599178956106184196230734738839890312169449375132661180261838805311607118238900976481007779350521689758669868501364861135467768139203479500071929468001891408539153524909118144667356803249756967084137680553003532626930295826192620967007027775408949643366644765009001260233745527675688103779880626298831020790665554394399358828055744248422898725389931278521500103311956781874708198614744842148081510538041106050518119416387860529167049779535301297411472172512655614484906884650393796543877251772527963855261484396207685695987976688060987470327439091810240974734699370693671332713807719471711184989734706572768711529347738867979768117405358641578749315299909856487219367402521155201129069559483269749797792084175521803225791644141801770837238094797976500188758580157821778150094736896127742450381345022346857403234487032197041889396469439919107979411293625178086655049855733334256467039498950777776306910000866854379338212868437809889842387224095378463099366316683804195083442455268543093231994734542807235331694555337838129830902058010845460838452166501177796327991374957529681098329493911807066458363795199699828864382165183830878585522102742098450657369037122455614856976963338058781757695782128621876214372748464391634152310484607358030193041983960871843119760049143889994127008592374916538264511776750357426217608783015338741313929485172938759292229323860040835484105226460078098860061734343668120245786169835079550486258559056708379171917975728633343861726489991356691363772350360934386627707498310499322795431558964721156479193287965990919418441138695372599473878045090368425186995625194055166344960772422621747711283059168095877350918764247688195604618318805503831547300560740203921165559094490592208396393438915875345041219114764136918505736914130857435241797432088778629578968733385318099518023842971561520318337786320426758836948837550309184629729181045824486738356481889769556316215554189421072756479909850140451794990017117559492410541955106994439420019706489547648701253318995226274599237605632604773786855816816400070575394095236012727097886271421732319073628318148282738149161364870237207382211028682529692189265299749842594119946801140335936426186897581887282503004029782414906679419803954579212194198803835708343436414628686406978711184887184860622526213993785053077102405911554064437888313315834420116557446588558682198275955298707588675176595450250871776157415699487590173402497661647004752523944524089081891170505183877675825090465879723222176012071471314819689537851920423122450139065233629294473323282701543001386672095533831861311450259091715791764325291013663362918500383754822269540459562241244048333853202148230660268464475410800347577264461523063204442922383392717960981676798190316225006405100615479381795267785652630143046605288913903584494363023364790419542304036862097387332864593304414058386681943032166486746815623470764510313700505162647872078578633010626523200323137577410912441689673893340993525769486078200065127801716870673467199260531129034654342495435863619904827787482652472586127650771520045944488940255492618016542890958058635951718930068787627655180036451902185479693445884248510562158105526893611549034053941948187055243476834734767212008217979635564474622330826117921877734233471515446997886258842870978409388039195073525288286808021985457140459881256595592780593507409425707184094194467407178542190743503905191033814922482968541204963207911324657664752789246085798214799256801327857151482406651023672121819402707701714330831148982863916964869227303175456331050857731747440244481649127263970732359174382922915024757777136311790822421476415181761588069983973667122070646053497370641969720479101866003856470135405034883181611083159960591885240511558189116232675992501226947465994802823989770495874424442410773936666839924428863685249957346034069512286522367782777126283891732900210185139122237089823507569611585698791713550725321233361662567466587030492493119901713621366198444469820831283182966137992286191163242883094421980017113026566857956937988942103903713166329459589571237100676438565461043865385839225073015303905217235369957117226224648251890029235277879345552869127858029118207405440613798279085219458283956191496105271775613831460078365859985229610180507794435954731720453773041274316949356101835995397448869523303374225847033304925731604889597229942475925524276111585205901459866613960459293566909663734317537133336441388962042859064017550930490128365001167565761996957020463685584494007106147859399866937891075750241313507304595454770783753150501844878229229515529081164373555832496902895931017253076126975157563311253267939507484417685165651915259327904055148764778278729163308032912107627063682976282803133797793905394558322271505176449714363163891072309782787977808525995498312928038856040712906655398581881313465186006283664098725489171171384085434295932716184145783776599280260921307176683057872203111650168143131985660889637307209409468555235424172057467250652537659501611364208711627821223155243307998984545495195624150855970871576529021968708935784175422228773406417045893776047728186855355886671549635944931313183936119413675638393256705510976208051768789189954438553079286106675319345048846391153637860466058555100214293034008483968482100317908665131304334773872762773428871487966208403153629185330255898784445718112180694656749373208803812547591446694953285337088446490930646561196134254908573868332633265733917831576993781065288676750924593583786355681294953500595840372250404329586907046184987506773782237949531061345534451047618725129791341658492592094341766895526291297679688644459851404232981509067135903492404689163861101887923777934475379960946462658372129915391811315871717478849657427642682903816227683863733633123754993251417179160231296712628514866090336525146464131497474378034082942156436774797588163126976823999342218149886294621769204560761048358002917263185496702963319943358386157235905830555686540153939726032080409720572505316180386041378966999835220057724005667150860618318625911185945721772737279177107518555973503654230654271497054595145350362376893800167255895244993344497033074367962544336923173534802689815488313971523283331588552038129265251183634246692001245473228302663436789499395112639451070923720042389104257822498862644217232534619869518745507469376235122900354410547600383313145774042615853027585732748612705173235975834003650506091509801029116072128514377997588017781643702960200723243616178108196231113211655441960710733754886130449792089228399745875428676067931208843346568981336538677453831096229252429779100708847074724492970745540354203537267789104399259595349672348628016172182938024250907331775139168513965678646734621076632000181189232961448997816498904871371962388083912815618493491265057673329145660342128476258271175607298254222303339709818282513180733526370561840867361280276064013245724362155868548699957720281502668234842322610627558567888688048772297738595282213501119498941614508890399532115437608344696525116089911503742321191467384451273801013368000993701608779757625387418084194819685715816299366939208329681294376523579209804197255655185951199310342658290471233800633913226845108283903784479123571478337654593368845486057912335463762520948169634818101762364894431852901710702363608781478594190872181782968037795203183555481006170718381457931842711518247155369114372960384586516674609624124710092974812157508575348085286516036957699229112331697663561112273577686381067077717529386518754731833213567884084095549544329792509451931018743062014848890386705576566683156257869692450464774482322564549279685520964838492140663632925340346016232736033151494692811513458121045995887729629873290066103495614059766634767127957489967041377900822378410988050260227623396601116095234866754729959535359853643636801363506288326507133140858941122162658745512117981784077139177937155777853479207561906264496837630324412235532639258258213134373724947087258702946797381387956264947858692166930235358663557217286243588695722869392008522357874034974948175855395746366586547673293815577057009493848849597135207834790464145133970945809548185293011327017870276659100109088578973609741109561944622569083230776587648946602973798141877148092947065693413639653246260120062060042159602618406048169678899630050880783842093108619853965821274465701760134240876000141115499261806763885324706114849059626777194029536493274104756079682712126487874845458029580630861643887581460177825567681089709392877656070605160522743284783741697485787503505430104350697482383028129676451191783907084808294370650477529716287802884588848675239508015919230967251170948135919248951662937971779548707102938283754595533978528783765708170668820063774732796195327587261668074930492129395715041245467641165927765389067284283089083868591310201679585553730417595931156188244459980273534264539181786101921792166908225830269112433592135921566708088296701058033387439470618027046395018514663523246634636581671985814006407711754107466284005156137310722307016236311502306739663170857658059953864839833103398179655287910117278153165625574189418740729565491171754537294496706807779820294019393586560032672357737713322464551704320826934620983554653545553423719800347310757388553964464918123785481517548301111610687886725817008523575329290631966698379645444504104310392675094594256235603435763501380816529399364598457199254338739736585506155477455570624542410129436437439397738534802771757537420267656657908527602324579208925037561069921113256353463731146968379567919941975816238396001829057213735847529241400365421749546047650145705102496989919847439215952978442863886730176431079570994939859185048475689975467138021417869380767146586394555282586087274329711918280127681985445443078683061276198147024549024902095350194447176445927254196228758299655356253431018673592068728981725314365961012092538168036912497376901409945167889211785222988376456984803765893112543966840331281659355345892240554760258191490048262111465419102405572535705726173661839217030553744384239837030773581822766888467194898415000757770211653793488575619601749129365632190981263237996890890644072505849769827616676459204240964025587285978669346231563829339335552127088145780338919037164302559300744168247187552296428544618622956738109245337125283300215498976821021181295684628607533149804733309966984956710329300197420302087316634709315563765634479779470177056857430301287835124509635459482265412388073645937693119702718509395497158952223536061872763302007852913828905358684465223937668516116779257272382743092823210186710212548851131367337701936247030780391233914057615067379879331346446427142083559339172003751208289250290652613506315016663626556961895382351300640146174024912401608144229482606208985976324631495715231956807828949380421008311951681309089097751082553279769531546359215545988001015500166482315027005139982313756274203961580377717490575173034908344798267608333692335250381725274158970528397366491078439298037632607162793681226322618963715016671174638881231570791823196328905086302644855507767658478574585740928416633007425934653626268835558694921810692410779817810184387806611626226685898076464200043128134568395489011730576431598716290320191410729150563176075784980585577128480464288542316671535681606524972841914077124004095022769339905478578985582949522953097111853413420550551268998567136927035410005260529684437397723270430296363560424136436683362052759545884985292943143428805172466650242914871396369943251541515771735124977623306904380316932795051290258158004833618618981222480367243709801977012638711132998132870958530868115199514691173748200929712129265454292426136713420931708878075491045999827873018489401389085691014710214700438383149262501928699897301062061707593727585897044053773887947527038088659689495501727123385752124020122772229170426484771972150517449443001469548329409659238706259805104334484821494561651315184250242737370182834553758300665052498693597446408100438610776944302335030087171564263730821476460098364723349083539662708867954979674124077815767428414280297368358433570521482377650856556373630387546417159422711738805715718090998691646136104601759835880415166893897139876933690908955994695372250755438699646142063608981051596131314873308211628767760736923210875373376179897009245958939858610837143128748417469658182347056036467398617524661415072875507169375241215573823800000519307978359261913946863281394116005757914555843623009619782375303243459792270637635163004561473578076727655174132190863396671273794538723925045716603132996643002164078597829685258697600447182176091919794826516084516258732259197721556075123680170253480717546390215344982458160191439456408335477735542140268529021622277925790175249271964293215680875425722670953123890116155922462572276526589181706226651123563431666125594603366343556791480058633502473435917111468042621092095404247357377710330686436488027351046354694776447905055327387946121904066516098392206683086384550709289544460289769106379161081362317413618908947853962728108149638808743309077513635027892191396977899141994902736341833066378798553523640613713665835333015528705401701484258174226431197825778599394796685333917771749242732605369089680464836712777915918290263793368026392835743677670521767346742454176725495013195422897545196274359372337123134828675712913211937271699071515752128760185100172325781355911208731532191082170518817822394332844236376376329144974181751986827209909944766492279250266772712817790111705393997175082813287554857778014699817050479410302574471601272894577103328447464811984704544506217534075901758753389422725150800182260901915840687031955409079620900797282863114337323957337143035757057902689692980915505445219487124754190612596262547367076281982989771152060309180073407377192285469522545531425801462343868755348813136329800007409930024170862536511215635506418439250655711391857754921792732153711979647240835205117509219734922680994651982728397893759074254071813925052692622041539870412542141287031240575272428817541986397664480798903514860467107891183634945736840597673632698206142826780036458866342455859988972939639110994036180244137503762210804638534782929735985638956319184887229603774506468589864672715005301381501527455761339552278423280226271173410032219334705564160362096848123463458161150173186080388056812220208609553867679396990446378183815652488253458231507584231362623998163836163616538396296685927161186756040432278389901372316735936975196048257446890136221204124719173499469019793296763665985925154742111097173615287349696562902453763526044967188723620495952227020603238182832132831705304845542925472015965277494647847799448743968301409262813094184720219519940919413567943779700963528337546480753193734859041676980533007805896822115449525812749370018666491469965394275887356787443678940376724664667344329177443467020623735020572524324567449685059189323440864352246216605593193834788006713425408214009812306305051877608017316552506052856343528281083271680305260038659637049200619352519559011988662054675757432671528241549275203180691947842795780701208102771069382666290695214789912411368368132015967674595237627228572203003802155045942776801916486246773607176801021372835738658418360633469822841509421451696446390311051410895281133753885370060884222115263082405135683947281155831667310461090639568681322871587430363433851949031415733994245717327960362271296285409108634900890849273214100038100129347670624902634835227526872113475866832265612861059672284949049220821442862866875342795244520034920140964239267210271233118707503467320196404574090106374137282433361063099734718043425200961571818005985563577170395218454999837025580024892381376567048044889551880271453792519348208851970642695636103308455984111605566908969377600937288003301022866359114068017708762296433189824770973782029403043651177936159246533645189862088963583420327705311464316756785857146782219785123995685609541061685457828845171253746403807696464514489946730321359321087087550995848759335073332196870606236716626165817180524923314271293943779274121881947376476853786238221233265249989552902042788045070906729794402591994116770093781270062440045855235549408429457233357261191571516774081948179626384994925900299377162022548919809028690091648483933828449702140139888835870363833119526217432765522805616953966805351358581407543039257012030323977565048387407507650424328357712779725163238506280450095964719866543861757739747255718365317812406999885708388604120104629931733397832795491148604399054472171571013822727023720573298248077691575280500384704836962303174870144307207437983563350347863730419271454093618253901583104051997413817479307115390275525820044643946099061955677360685687698031989899790318773310732738519013823165797257544318540529398965970432724217735040202524270344012686720925851812361959437561554893709412661518092347063190383640124070291245861926838311847536883095503352669049067524327146647896780739196801198977598787895033634862281469302566519528247110252081195812237930751315753682764616267013819206398682179235585195940000710277936328588076411974249155387195409537405388386455588329604856407282384167086822675338299277302512551103303200294798722070073368889500751929881389982819713310967485903813904248227054639095820359977681212242049011120969044873753740307271488669801419929366581147422231950486271013884840393995519019129136011681261030260336604164610565909475527174987534292990072550053877841915257910145864667052729308031097949577437527010984725034283772913687558748401162945188130528778770376713442723698315042122888371379259450814016949440927328973934095339087367127282012014637217418870236425138419306133050137506913322456542472808771934142664457376171573612797125198715065775132410560236560340172592430532331936295123458679794087672127063302828746711887859998217852201147321611760848688355330165573959165876669046935111647260953592997308714525122060393486320135043959769798047491280290358048926183644886348604812971785914563051227629923670055272953855743307854130184007477607930266914784983507054377098033378894269112673542539101978841668884839630009023698847615962154410191189773595673121040204962415059245242581979941024184816741491476247731780045744728097624008584003652394697289878585575012546335592817379483329311110561651431973773289677838642088413425566051452064882430696083751636350273718295047731476873079821559166136266632927442522035076493533315647282624723116416457869990629534503512778190865884609245333151372696520137408948706706924877150710101763930345643088729384517890051489149738887571988617499883635044130383396550717708519383969478859707492637870828172613177016130990303191066038308889810550343920064740053994464984939798783250401208648959201748157756480417992981943389434901601176132104258191919225961128939922122914302906164835049748444478551348197356592984877783129343228963698728485296335085340360879815003277564447057777865453363981852409294411991831946547540212217718774496152097764358054674398386127129083474295528893464462703156033961338661008307742925866699903623291342604804791433901817556290727118924668988375596166575944428482450894931862444936378797240525537398936156306882823952472096522472749413897250911269937106431568442484331982298003040933668999104956304575030379367028319521628602375681612300688072747922627688333758281279285058085567667277124688814681897785951317637474976913638987341146188275366679142058779917547646961262976623660019549364645077246618859946453612981379698230265222923284670600175104749004456309812317400603269493973688670766163314688508722417208821389735675791970131799415061902029895404599685827036504328952978300904125112045005970551939108551997187995142095657063821598300365456723938300659871473266454936934008590864068230306199809855686832163967811746984290376524438797037967830389195960055343094777410743187496549434932551271204284066412877430230951583939789784722091056011940707502268782886836118581953119709873180557795029226636151774459576807966533230927148537150909908090817900796729212521558825176758441465867341937977443699320886043805291497996055640493361561303285528805704214710110063359353987767317692497749773281092898179990841391110523562714280268146640892401195621245861946580121239507513094910302430921137588264654167557169799248351414937095960759066546374590903059887598461897898318969433926347506392200830192196805872122249054092751826508221535354899035045780234428282216858121666719286065949101273803461784307888089293241896890411674399515960573991402409069293266796278925909198254757886427787456604477905887962266233501269584805606357299538286055890652192877471989655408585820339032954656611516531316641664301346531960564237854501817515938606904025732773748371690348041396786128089066276056984069690917521969622723938858138069598680178822752558005832133801167271195990480464955730102799851255769485282522952674013028550827418271331016758148993718607453516974551833173234084017369318356489610829114448962887833428311221318783421769309594547408158593122200811365747768838059429848114294540508567385142103151260560840170476529209715901730599183098298388286873645426866900871518094689213199756893832975281976604514125708868474938894521311731633576223225859146421455795452248363607602432416922520196877649208901974538066521780254915450796797797378656859909301926665919916395322278567693666769894910428440124457797918739235073743898008718196028691407812300595412817646562669142499353387144458100669428236139670550365598431558381417003567396757835615248786314739393045226405104377391311175768419811196391700149092129622168339868975857146146618021810506439263858095505080894108929333409551901465537311195243329779820356274608238911952196882020349368330944295245518682238136193883784474528212575728809292906532070071090594398203819531269067999170677037883451094125956835365390936447617564879688097767585669515108498420938994747740618250427565967056469177170476306720408050106127057722082771404675385562330611703895510797905533455662934351796706333834850585896137499842681673297116578639649020013501089557888642864694057633014210853630474323025704816913916126612142460752073858324938017240145965145602688322084919178905489301772493778652761367885755577464251976588577242710728614128909260033850377079703941398036260310420379218973454887998450554168106508646791752368747179376241957824882624994522539750840739325453035184519613086414889306121908898158756233084037594151914058817275565117479373095872847548121806110568326503557678795474432193472704335975256623195309965515611843450098261167584238208819109634951011792852327649382188357509370263040249366346370034304248379582070690893593305239677428778092643039379110754466277515192284826370332533783469952311439507785703665209271202250603695644771641938610118456601298126202799716991713783496043337422966480604566106984510191274624810043373343527938168687094659021835513671943261960683461056061072617577842690384680754042820067753389127647253214273468885024586295938745899936210828034650243907498849966811667878766170741849735058755271753088878979112098342854200427252463630880554840555159996325248176251379621924304841014804571823682673267151115141264824464974539133526970423669537311865283506487973211237389676583851318494377994728530541239926077324404293375047915795984833148163559388569809143656545641888865831893255570062798702889403280601719800611119260642204790671022390639196180236445816059328583991178852382618662156427223044782865596833458663598975217092302514046966896417743768177742526716309670096583297824872541890906358936306641851005719753164788795098694597823356164413107667862158516389778112569219826675718405346940187092150919749117340409099884103231297345241626394780520747523875402683434127115672641194715592211858392762996637831469580934578821119179066696019957556374852085151319350425579122744234798911504392744952428965428937847176425498705050862983419865847984083089555728509695766240995925464012666678147631562887983454956144949560059598379803126592812501934701149612193120659605810908892942512043670387968776203139365971643508276888394736305082965645149000662164162746141532585768440561229765919618013066422112286957469578182408915241488559922504743553524542821219770893648889938842255938180265440707713734446781039883986605792328046003978879648717529510270181145178122672146711213354436955793419220390754859989161456938571904188525405887569870399668468969910901164854276060730549586719462610603268270449324311192778237524479296678283631768416307647537255533094531012819392032482585265113108021004057875127199062197220941672047033209628796228565716562704418028386755124344086615826900450125697802792003577596289334725971148398428624489650667810710026139909866083976046004916280883056120044705539460297713548438631374042987783339137118904206771162561439660571191901205400377352782634246281890972675129173243698558442568303563812483164246098870609549788539481095193891508039167503056722484417687480184189071298599136845625195600548691676162306554515299107553133178148499813589362767714419588447284239466769069310020143098675393123563760136155811837434031905523058799326499152819338281721597474964203306558429458593537275785732764409028881542793777942525282959948519119660380524661158502215646273365643827865854091282017330809569461431090350591177595851446860160733643747313494758473415603013875603119019465813034965232152324810669247271226385552650994858240082181656011042689885908995981852980929221409164009261543334615097967816759305199404880649519739428827470538654232786377694211191787215215964358625157427103790186568711272233602089911290928749270329506930743885933235421169395177728698886894419828226559985853384265080556185101808576576027991082232982566962075694733439416013124745345632685613007891107671341844087314481424136712515630164238191350077892597671872829807094639627606500991685641857961096923910024122076378159080144454288265454336169118435216862234326629850167752796268216951825859434541756440049766647254138668002236338066710213468723718153618230466638634139949513943118733322203261085969272245639027849624423514543109023385259321994494891754618444679018357593583648552708132691983889344408617835144315012939042322219239851087808480706397369624756201723588763106661802843277711223736209730016381814257031269734279493775367580570475941083098628084419298386349936090583666211048662981909854647870396050336734592952749038500369454319184385137521915630968003357758623896201964491758867760013288261291283306820633162936213139409540919859995406775051492326919166920631821809373600471440357393806511659425617028483414934672096726028814127288950869842465292898134461903606789954907064383362393474653998025021919397157741548957685590315315443207934396240708413756309793609263859788388170122624710016638179763267670291821336799300988138524001916580746841889987817906846226158186280614712559824107801333814576092312458890683161246309189002782617149820658352261335488380017035061845074275818485891681307797768692173028756928153671453865885797562073741656808027921995253334355728800441861431067209619003462590666466931374615151247489459737015763724545460118170544522435405656407475780962425273013044840134898100106768999932460792357322662868053201619527108281110337462161019674907385123640844222912991806808332421789294304612914736732731246499517067645594190634284059017199066438659770746534702114964675400829157929218650292489858026360301985387286863639452626749875113696675960980519870212452977793782619348568214208626040757063047228559700939116809031465115389995936302002687532065909352466398058539839619874816284841894028854604462257986907708861768879294974219559439024515016766230601464945388466227636532381559131115884981319713877804026187871293648055760288814569740549583150329320753406615991258337654351653723000830573871354978055646631782400804041415032903920661195042280101002619508033886264738420952190050061013499738118991134430899055047226347008254890780612774835384943396595025442078461896386613899091418261778385341164812771566270715284911996514259735416159482821115293104754415152202038540807796076991718564799790712257246190713145992970028333394316747587570352668083209371131280888737599914340833221137380917772065374926479444543648228440200612475943747293582424632535938038809442235220843412053549449596253796034939424320926617216292374026580803854659004060337603473726385994494373417941712395906886937416345665208687526545021100577790456445886294859082169775294989898579167681563076463006153328833586189879137808362303305922997551352430987896010984042020134323916309388140335016435973046687728985461703679256386235113295072763813131449916228606151610209249214834583341355567999338880267912143978912686490803279155066802935690711214618077483563731217451576250731324539100787401684811856142042840535784534371514277691819727021351676657638430550771894501524967867651169283173864134615366783333600889238429552857051403233972980625839141479780884209691135471180337120862799987862705509968788144685252891592988657065499379075909332087026210188886916697385977369624738395359407207829072518386927744663838296331277886245134996348422270134334580455602067677098020821731815889463762465683208692429314820267328431792283216186205879172503373663916926003313556054616548682917941652730380963988473993317333905366840352775341342689326784488347079332396471779075542739712928555651800102298872689642472361540516636682927700234378336933302898257104475831088978935074595388566006293781573834976731539593717178025879227298924628395825372323779660728315017875293882213447694501196930281275475227098972985313440932589121213113864119937905662675292039846213721810352933980347249937498517184572553214086258753659817366188908270477161243207464338335528748715262967550134729760634598852972441912612098584511345284474885036981905518623305133426284273051530423950344761656572052021300001431977300873614661409980929179900163405515636059167640608703244519166535535531127408742628284545008585651071583356621756922512880027835743493084470979155510174796127427663127268368759348814874913817171369972365945557128119560088013935363921300055469346188699760664046497533206989773154597857835010925011618439667053170744921681868357071739357889673151448524270189555028423412592194795677421045237059428783061692142712575461534688434774241326628648378360412863396085158391469526760169162674123698911293992655287465961322384350777066282238134493731038618695692511741625863207599523284293514937051383136635785591192834769627531100942133916717354438422633354413233669924376260659464544902992856722318862775675917500278918590374628426929069252237184586427753680287630532290921397375150171908610851390179577105338209906841197511102850158666387417601676488051746024255740888367805676405256866479618492413270109446536248105669147503514903230231687749540970431274700797390075613542017085572644782742006016960055998830449952858350620234639045193161300932490654744032775709008059655630095076820367263292194140184921668749709679692220452807742455874529240342030427876954999436311142919696236423830293370971025014994931198720068757379424449255779145253598603865122589202890596961117136991447940038642405407769030601927248806066899746313489647135171755649049131505008060192022788186480439863475572956769768642304062088227746305768243805426224288352048195138328681145038792107704496617324748216875035476748787586392583102170931991419308532766228912739409493938804942683701040789422801597825332833154304444618431869169400318923791238433674918251143953888568871755525365063777673548063936426403937417114014413787673687533199109592379215247782469302919215070645786196981475229709092670398037293467588686723797848834580696769936879049734990641002433667625347178332722132772577287322286341157432206077817441468803976256873359768033660246592388160281538200028166122017676347757933010155928962387295492941002153368209136393100776870417331857666801738904001643470511880360210411161673313070604762384472035678305499306505949628350169385995921577403241226095482875990045505293601198515477661562291255550023135445895506045988405797592392357125604755561345169802522415690946246735478421576174297946023776534897172976323122085909644984393370206613835179812993384495044312054395423169585297025938287981095342090147614361074796721604367783104854265075097142875980835619837841664190158916502807227439076245052290438954484352504932884457712628880391485216724841428994467598487033248732502284590860952446154508856926533695244632642054425502803112918186068978848774389609921577837352708514901902918580224211417361250974766708613600432236372166971187177674631045275561686971078853181771316598311203522985746512796250741541485401451095590471169603735537851140867434927304440833512159593585729179904460000277037529830819397924798405381183837471240660468487325562667197863346154476869768413064664385936639191300903660070454833686722830958676799686183055543450460453143905703886444991451903780188148149603261318586340260268701475393171592881505608399934072470633985756293384935581771224803203555163700565255199639971908842438027875419675523352031456991777922762056801421843097713849225923012269319134002191771028225230093391078062443969521311857299261066089572707020703318888748697334913503452437580729262681853821343146939877874133930806239356416595682464469208444441205998186488754635831650175824053914864731411344389431577814426843462069108148443431163402111762404259795170729606429006489002485778070911285062716015892437795725069926774048105978457484173191793851259825071168396915394925983428050656570516034722718915542567790054700268399975269745194913461566916083944662982374338617318681478682273439558357259894807297119189493334314315287778168744419019232529730750296267634903514295356137572112502566245976920792857796674420987072241581575787956546844772676361283140350787717208037844723592895957657913943578700454645493852277293591494516791840370971675562435257486000434803594577337864071925557847801744441811131874715041738408007452068024287172485751073362408066670023801846676039628712883002884027471075730396668744913842364062219345356112246222316464360922902845637643725138173347427584060343542141031147206048543083952198799210791200112022465723317533462856232772170460754765719311010798405919807089540547417693135283140555492071963504883291973890835003605256723002201856179288092838882086266206746164446375165888807476150623979664362331680270494598954429268260005468480479216933650389966883382869330342198033600149039565221477792312078398696237536229876242476412243138359667575865743744127244538700089857232437337288403653963202496165788589555445969203164817879305121926043799878482098510661890679639327277442536649522283525759580662813390660585723983400677924037905674081109445491322902687635056949575536403886602557260704430748468652528515261893908615442042045853980185818694724074459669029251506103604107764386848841368046623110907711252443908243982799445986044239366388780159730657865913299030522772795702592907157099350297073744710340585687680778323715565476431845381793123510995862690120819903107618760894515616365562409659203416840822586296058861951114798892462541370863271675039815980696037766801531722061204142443901297282339182014806501549077883372362138022577275838444916212876658431111211256515777565014054628978940649864874260151283931452218301129068012072480666561658979165371560858707516046903697461530503956270288980341590686755909065510332365663930657911730245335189013347577652338929786359487103100999154471431917990519283725769485601737124433397959632408983989872392378269786558920697824881660552048221801555469826556009315203092235825365314931259064224550039861846365540074697844115249552901575579851232715389044865228012849468995472291244659512807519067725184017152421616805432807067846349986846994123053047347213783582624019243912237071666040027995773174675613776560408952026975770295611865107625251488433664889384387515797713490568559495686894718766837597933070465970102319115654408288667727063875720478926962068059924507285029322732976558331617733059082049031918417367138403353791903474205762245007524979653741117888815867552998514462250280484756070368542950008437269138827659839999689429893415091533406998441405918804921943754731249005061810950755277378193868649402285313921590169913786184175675123416095162509413322034571328767392256018334837860138074707146152483947850936482572331516594145161235913893239342223883577240347815323181099326292634873414988064106830274941618162871035880858906257276458817175764974236534065562447468878505908816392091843257505120078246418765830554031794477135715579374528140868706049918990327634314243655091779838249090287427773349522091916958542415102819856544186916093126499507090587888986805820258397355604108709981942832823637727755495095361786931027086628896436217272372514992319095713038327292887265317635664252141730098469420243849073189154739141879199569756237072743285050485393753248709073078026616465036048172750564876634225488339059536917243390332552802183366716628806165704361467710029006513600862127900842249570485731798580091625231702950183976158136086902837400647296960341579192813715403395230597876096536632216993311279243181462214633708109996544677077265594939969535882081231851487607740479918076797812958790456028994885333303715328380675640033067180162563218555270755126765045777533476880733762566671329855797846098217701558698782497234276040007603173514771287655643447924646941509520106429536397121043508334090195721587785261738092308868802308953138372052917707498835336811097208506320901139062441422372426866514838849249254471922315121088858062475977345501211516195426440520641024118837371145880454509940856081682357791275185141735337084553069303630673249874005804239526356861043811480664194298847549223147368943438938330674690933356588556335886233965246390325508746744394010325508657783398730802823648486865614076931899034312091383550708329497838860118036590226021702883409734354016092048115073734639989278844866052958028969463637884083314285079162748554780962634279172255749663535889634823771460768130054679950088541707016132773253455249046354072072454173386362190771865648078758172641073904138714489469884957206490948605455866958507029945723497010701974139805623114424088960267472943888794755859589515398321383901484807801174238813370419232743542449829695344523032679411779402679708557223659233295336267051370737336851906147040790322219982381558619356862617353954397577552667680879846121533749399515728354079587395362731198410059877792626656123966333469550786896637149445181488039010000479346157028482874703655403379561876809452226928398388801072890339823792265285635119699728111403366095932623664137400156341948890973552081497888766785636318567556511444369140740623664455958204656250251078483541643896124828612164185919599833088818490361297344614836178395773191581683093878615873322703691874987249904613755635728115645208659568387829485203941977865301988554323420280447781603325129825237511333463628856568255816032756889836849504009292000431838899164194455538964372771368637248662714902895939881859747183253075366089505340657339465578352113760847575380837609806158843244400919211096121792055222563392695587413529813652673076137962252312268933206924613313577153312367822573913350413040545405672187464037497684959346418428855976723406754003635092858632366075788525999320701692837921339210168368489619769731602417324193640244168997548230519242752427387950672886271909735761337795910949961413800652900745876201358371377995691307709913772627165092712401001460596491974945410339139372509356431998572113559170667443711657656769825592266824655522978254594459808159283262934310625406191048155513490831088676480916612948600179901868182486882389183146887913290594643952936106157040759392208397506492546458956080409162699338223660194305094290956139056552721093334897121186880994994007355290502149094674369473784620386435604361033933595818974076119819396478013880549756216866660262466843868134633485133796690214763230021061749556547933737194610134502670044560411631680527853803052627783725850368685624141878230967318045571435702405458579263332945541514586869945478461396900224822267987151569907994022276193675834610856559547015365200025829018963420385594778456706724658286927040871421447962430531648241624464025233129714484884107877476801880780758883175212487146506966652144978096105550676413968773368620867325506621871470065099263189820167569371829035079635563637963231117532398166544684152514239332183567679477985991065294879845437201400631637457132499005878941140293258213823456728269962476164455396165187248908535801668889913108286769065155671159977877918098506874198794703198370064480391648948700264776901404076509862784727113567246850686434059134299544904970173913590769837684754195366907002643045248594697982482330604892074074215357076847702594830022528561518404253372149298562499372707658213073050384975628102133706447051351283808702589814235135553772338873429474949977894537876387124256573503301525400740866303410336926126737715566975256391678362926688632032727302477705303448511494969345107005053752015567906398714471292985215927924023897361058811518280314648899118130825492819729941442434432019547002289639825307046273457628145300496266641192179494334886581254741769888414194359335514039141704605296278251370146524643501117355861890873689305799311305945872558250559417655737969626315790707070022916871479935382840201731141783254555308698427347999545171251177577195050500347991713588828633388974165152799437969540690327681396572230187784685908486065346950237515576872166550684131212945919234282496724939182096441317974961743243009915820005502086397400580938220256162929923462881283223383196492207315775954002083940967832401504040786024941049153996123058928942309251432901775827103706448622330182361299027365713445996545506896687999977654365143700923084105979761784932178203395583320796884593814859338498604033914803866715088471989598488837526891483697128754163465745600366947144330482879859709892486208936922490245299724703781475646270409246300900369027025257084206871503228938657514552524659669054731862687587497077862713675879451661354424082895945378360487452471812276670850065063191464685150240789399531473491014217394368688296401889521261082402205159873404014001822313680930825392812241904632934473061021565005746458934211120714379812249318872021735265851664939621745511349684847982939428937418852263942896341409200134138307082400229822462209466301040330265516325953511660710314814235110200022927980331141099126426217627618075846739824186339786636987684173224789721325596756743411291155733652109494827489447261902421959508517954342581417117647664585428437844405583180565633185405414402586396435233929239748051250501835528652672553459251363426956145816493160919754440620150921106970609506646580731428850922857916458661811102898328723417695643625199457945780631287683337911507803721675485241385005783165330390161602644953264388336320103029373785234582887960310626641209860415826428302373234979115684285868312290917562304513799053653269159111060872837746555326607548556338778541057988754392967006388884243758857045636041139963407828575424101619460991228576321170233714224980234681208898417921798255295379263463794754949126860575777435025145849833607621337142080217693638878309023409732979768799009167832491425034452532918160546956082838556170041244545187554507063459110476974842350813973973401439931434466639778732843453261967276894702587649226853322534180505545468801480247113989023098997117927251260382533596924546466005407292432638557930217139134647835106326882378602847689446731195597123143083097484712173882850098494629229701440708358520379215381868269638112642838388427432232187518349018386035943353141278140224970588797915977445451234079128186946236432827988773017053721149982276582442798589225077114776701058666271870739868053713343560313524818133697439162314306613936730536209657922222557523359627714944946277478674570806515285689329490952282349330601766937499958448650924190372848724635948880093814064602743841648990019583972396966048003761206298434917105996056644984682403242509614370956302876643674331233531761061391239046697817281863020169376070833624892746020546819291838231012737732402045358383891508732062934785321582229463361576263217237398323316787749310129550958864753512995121946960052381875420297138699633595356481560303044773137241440890563967083038769942369495066208854710053136452975331998982774188524244278191387849011807405922236018588694646158706872952194015553137044272497241724472789886745514209001793010928766308472494422406160289028916586269970599368764117497540893988604763323195687507381587733923342019420857930386913935789110937914003250910590762835322097566311547344924129373254076778893708328464923106521832810673505560502989340330668131606950908040915695413539978858335516965201875059117079869421526345047228953914680173134367999360551878842713265044262884847184291550750414758958597992612692016109613479967497799044071399839307343532314625380370388216693855341998833350841541841437983574838223948391804775706259676667799948330112582488792100498828978832135411022181538148985440450113776953124987066236738060019550883992207020710246518972406728677417699044703441230179275271408678897825131446007960942950016900073695485117750565219175028465630480406484306022042340545511594560063739174482563375688832704048689653755014757027173901737132548934206080577844145386077293683674724644109504037099994256617144414590322950728836961078259214979594850293840847913433048373745538290576600147109539721356045921445017283427317842019211842762069695073353329956253534581582405194747022041968770643487853150631546094705285903890767907764292851762506027702957739247177997506839112549395133443031885075113167023823409358785252111957855284154916586148067822541145309359957928934898533470102747933581960222703083245517873799537170630458687575401948028132310962831058940824009015731213279158226939928004172170978198894071450972036679824126859791817621022393024315199824902592790988544235135183604383043516264068472940940292885448819981891157990817584417666995581172462666628279828003244876449777889769886263343185532448845012134759871348709034047273000628167468064127116228816879407158993387805499014012402427603998207648851921387197297776251802520493492557256063525759552920136855042918612642752213202064532962133320427490154850654888594886693643610042632915472211876815645788922366188570751789525482971677799230786854123918866372853178244138446597395233263304462825860942550511577417720917497770957493970685230062574848392032282402555132797304757589837071290045209601361977170429005596195770352740020100902560551259453284798924709034338560579451359188595389299555017596553053689376476305577415863649725181477988722092842931329941956713575365743705602014663027624227132482656269439041493858337017437283774869950328054752140367903994064716478022075755010421417615152019233634053920423924962040300083384925862815247373491493000779749690012614755012479063809745980599156473194584381282069560375137435356954648561435616352176446523153805679017603055568418180147785649048257602939667326110254364958699700049707453697426123976887507985189126332082981838367898019184531728055784504151036466420283946140930642681602623900716493513355729959482331348374686231394974036070839541214268468564516434815985421455230154636764759768059056325281798909133502423183160581900476405208270765724129159631698529781653857782499867820231003699029625823986648794396638309318763749945258308455191293964544616595928779405428428877917317698717774811172072116215758763835919160035121338838877975088845393542952177967086512084568516242530509173043738031972626428039427442080479492314664353464584629817482782109950265621867914918729471164277759906231900577572877567798440134723841832000946047328317276732430334788068634095227930033030590337718286296072977944462730592505564784741824390147259798703556290565784849276045042992819065540264297556996250282476442321601631154893575956825765123625263029198060009692148828156467912527437663381980938708248464843834340864514441461933332254469570439938272724243011402664803832717288844098832154257859726253520942341188898018617743815287326092488295135845435074917185792682432368042495841072319096394303030011612416146667091856800192679271711035049233522666674448047765431992228210569172501540935704778285267758213126869740012807504974877903511948610583551582597093255835335047071778078020931379174189492506524301046106486802661502253884781766700782531962809320001979865192000537080529680646347351144411316719082131746442767094050981010625152917275130702762019403757373216724162001872676923439968419966598397121970312158634031936772491762119175738587369275170030216600270614335274284029143426444765946525797361424704926107987131564989930465949623798492593416001204171820569574621920896678311726592232522206527632330043033162507756941879301994445903213868419256757774964386949706314459051153734607313424774137065954298767063876840934788127227542725465855082420411830386962081081515773197970678095411849320924000579773315155023500392378793476331346570662819696475252560165883490546031616289740510490601479032693709037425660730820772724549626635773764549126764313906273873412736243324640642572732231023399282535063610888764482399608914677386510199041819023842199146328233025422953383623422010863716824610166846897845644162947027987288218039007400823645494013020422309889670093077477594855378040458062337675685083611129310876908581640884909369064425625194501923786973363383142105740103286256229719783185130791453556131810961872469349916048619569212016422410488588220988503239120926364623763081724243225534191152258375283288785164476205372580536499110162028517405834157666411095650906358027757318017825667797671902553330463324051200715082022935774483359463160684988780891806320905084544190580256261727847922590661437433365820006749841410402189861665561695728110713222394072254814844604408477197168763858243980442098639206192533563180293407382507002879697849190995458391501280623185482521230483844183465866684877392743150629080154110533854867674932398359237717757159243127897259617885488982485863083901718552551596420002942357266097630253653611983355367161081426207956548779036705934057821109765171315727001788283564680019850252407579927785453142490276747942621549211317641323963957576153312647242339903782137617668801263108361143266653494746635211691253359565168605962980093276495444606299482784150501139404850725938152402586989419065631572703455444788928987521920317299249651745098752806103503089316316981529274658961653308534740365258543982762246298689582742164322642270716092596090213045659781725404633272380883683391235856313728862953957758181089980212301234292639480600822008934139868712800824488079849768616515649535738966456195756367456687844113808618972477820580878129035635743075358633350965969417507894400386873733989204737739575564393177550423091308453240947648142184932760588220743883695797579349484286543795483855529274481687517082447373000212038435419273773410534224048816585865541049323136538554327159179130999996756242316403002382998673869727325425832938738033850871493313013605630180707577852497217359432857967369283422570525593145009076253916708127589485200352170008748893240160281626032655797076403578182077928952918284154913228520058660908883956588240630290510056724575701220145210463937830732046248575145883813518241200297394192512419775003729444082199306223824667004993742585182293310025645721032487562018341948062886317431788938834679254721482565296386467549482570544380093886556677532481176785110534396111772621148725463699518211588671335150230814841047909336714431206505396586565790690447550720457200016134174816512539130691306258492367024663888545395598194362734283018626117494809076979074026428877800046984787067873038744950953451225632521268876413954660565548966197810017169156945864023112104700982299132352044100680069068027421963569778240322166928598737523999809348684565140853357745416433698285468048293776089479363180946841610012261807000666007112402371813677633350407608598410633642827559205954025777137240886647952741631446285280553375730182584676076074417065013243144911934173452959725839992023572517781135178433692738558803190206995745404819172303669976732553221198034668312607175208295980981188325718265763472083639632392223103178237144624599903820087020185139657871744683991028590366584826150815216620568703804547464187089052848701164376947631552090411883062979906445065292119441297059577348770375176921130695051130125476537855563605894325939601975662422757292461778544865645032751943224318187516517416777336543043220681480568585442350292616529095432338113239170993408301864238932462630052353574292805322462235026910265930583846474424720555257992678802342585904741973568885853200143683571744705029997606109496674306773065068546930267293849005034260632969150961147676588946210566982758543650431981943056163438562299736456752566860222472804618990638004709107470456254062258088939530732194639716296482706745552148028263871884832286630305215793557997966310181646412580446499080961163230790507583153109633682753399589960270605904151421497983234665020292800832348500814986916716297192538921710159689894731747056084772914741173404057591670053762719767926737348052582188378006729596044143955692751328360040669591426791523059216583017617215983905926954339243263642015341334222516845996449788418884425985199698034835538260462033638692334301132181039550810267806665586458306243890952311171913767006440793550165020941436627878042353271849620909456153305635894475307197083811517076964902071102764545120022862310447916526510276780164481497966988807868733239247494696069509366795992430140358079683382746941468134051543851159711458806356953512590402900852033099774914078392107000600560426117861778793907238346185341883016872151087998850379881546379725537505471759123235202373137419091942962105936105409809739293090186418817162002469096831181535924350641950588427649874265756060046801028580248344151849129928663480928260230726417123873166273346471311606364762888870691366675729520393887560752020248098297085752539745118592028583300464639622920969614696904457410041601341383645577149364964309073523795909250934760020006964460527123823599328747349655638562474692352445757428399197647413287141886876700773378707927373224736605602465035746841041275846907502594406231852177481403752002278492002047362697107192109237253848862319846961836320228184737992074787082729784430054764010654148562392069483755100116125933171698667575075185091655562643266050514180169193861316306510095718110055108139513610861524855469481361348533447223778620053962676978192928051805350306593002774201663315326575468371426492947402010779509189926589037832495839472813715369644669148624850411236282797558203405121501573300155788732521980441366721366546513927334806997789649636848455449733693760465887364937662005952934482334389452931835528569911923236264079051753661984409512422196820436938869253935374461236590335070843562277077061638107606609799516397964865705809822856859736195413970731680852074995711614453824376925647676975852784971010321925648646191890888182429474727952885706653559649248670478944597909652327492279216255514550170599594269565231362398851337573191242661614722468013480768887773870407319501054962890820474343381614065638320013046526471157499661342312062613300823652102835745226018219914772425760771089987028884346449264948207464628208278578716215549890150183705301097291787778071718379514948329037815422568716477367782637290975476795218267181399611713748379821679079507050358679479018965298904816468017056610447901677554779344399175809379557214109407873819867270266723922240881961425346041160272775951020951766184091624485283897064810259994406223382759147173485199544089371472196233317543359133892811368587495847914073739241069847652057905155140282335744093440936765046022194362860841351594822150658592298452222111784126760050637581141493771663543372952970223888284512014836202102734227260058442923603786529029077403359899531109869469796322098528065863480192569323541642409575588287439198495181811033380894157554977974651014805963984285665137957856403006102790858871059496766356929269389298856898855919475924320305091642855734333725023643527986933631189517669290863242674019618599737563162709459296753565162609333177733067706402629852255518697669902340934147040618147384761785639541098404718602991261205066789444224868069697977168601477127198825620204434573973260173593915345253489241990169303537421063242285131686436238018334523245627312262887546183947529888496969591429214813711517195999687936541670361831367364699163682509675448511392480877190217759595468277023827659242743278260787557077906156374543900745507898796083351951502979507075076295292183006455747130445693654264602776976301455312200013880182573759503063974150610611883344831250232992317034944396787336103765442491254820090947145919298080363028551253555908999998690637861495753812700980550352132344773694717082168428325156170158352589040119559335175074712620946080634028639518448760379134016175033460752934894756660723945420560527414563225823696509655341989702381372451822047973869363439227979349905809902996127116972373457946226527200795291998418641021549422462428044534679811050566465391691059575793646852193479795039454291334140428344468010073768394209154840277652976971218839159766988786330993377305903836248317034885702907879099007547894835543785562455762934061410964572201579777606232365889100027588938450042615658707300440708665654799284775725174672772152097475222807623384223784687156598351731020053762215220866500465853706641642892166883228669032142227170800308662233554510848884779908843796913748994404782594637691474448872192272439981709217967618946943638718186325877328408105441270978171404425463585028574060490167225954953621552812634887713870012554943275520976290541999887533182920311081141329598638037837544222038658119661457514755991065673741795365291732750457209592385283372432466477818723187220378424256404242084995494488243007960213467955326577524403510826525359193299957714977632744941312486656845748462295922364299003296278024037831160275539118820169343711751855772291217006024941679851943411298838506534638744371839125478571669992367962359658639921846437386950938584795295820074429446578764256768392758828461816471686698684281126278314348168562483954198468516013114592207974256915879839623580189789535506441763767158832456443262960405582538032541482389937962455009907802018084608264715354217724489323942798803334246343024633725630892786668653465173051386094454353075635587320201642472433176418383183346015817754731322649269911608550166918040962275593108733222972194252695862984003912809797491580449849062577046106924564221310699405239804567241698572721544211671789901051313369102140993988729566433730547969079995298245591298255838907294067355531100042403289945555653387346013629511041960318596496722031659123408671087222890900570654865447187913172566956647961108764162168078076746341175890711761729575527744714778194341719067923413874317589153316821784597825891024546047430305146155478884110021822399008347624191125956090151046218547440743237511934567475889946674603280988808489670636001083254953262978583090231438858909985024126869034082411808923621064620933655617908847181698714962649073475074175025769871443216821493018324622911055001801238555991526969793229343624441204624442031938396492375467353828688245885962548889038266735571057143461130409929278697561329930307450968098088987154243948704837623802103190576804159320604143630149886859556962974018661816517715581305727500664276958225281482358302687568680192555802979620279225292682407734032135780826362066660623021880057354844115620674246309088115426227119589645030721673320019009347190492244094116965466170827597134228282492611805668205788271117291571282890441756203575633717116012586992008831792572185548151630705556002693690213811862115391261487808195333246841546315379752960643544777260284910666032645872398724232169022037076076909053207101788693114612989248138065828584667244315778161389581490937821695164720924744522028034138977320495028895865504412832578657305291232201502396389811650258169493691162487793752353465200283220298793565361320227976782570963636837162392034194349528713457787937484476757256563810713996307021363805237696511509797009933493242510872128161423118826615304809586095589086350707777773325070214032917724355223065456307932820583983667711112171724876477022084455574990071538569351395525410839116395085040374467852001060984962971244985373230351622902352703430839327879255893409609935025937595353557200208521440808703948683225996537598110743475701677372838171389776672353027629507188328706905853533043302911963532612172485772614841011206761579457565156571785028563028410458066092886541642248744585085920719088108695413541372918960629145129314793218506702066071366846469255917450383821754410440878329916210359866556182766520215777260978728728462250211584962030569683867906488692422676935687833785174390494914030902796497144841178700902751154021541128312440098090213573558198666190950518177709422688911345047905366748393722576619511930673117832959613264058447336166425228825584174117796199330115736566721084114086761634922597488551803148618023362995811346763199194805896790337803615427838851291229794094880490628320079919946335237998138056893097748306879687720717021689649977083175004796609805436894960196054843717112806437958547896916333629777458723283240151772571517526913150577890740709334541528379516157715675850136319061803229348477748348945668687571607966578484896849030686440619936867519292752633239203817348849441635514090515902043267731533590045640767956943921939430718024106851519269694721213363649764487849639459244287601364628922383816301672410896525418867910551475922904543536470258464405660669616652889892967756973825838282162687437134191911605568777916461660742619446932728666179144824806958337902871341550086654843726565828837961478926317301575845308117353659096916782005616917644094776257162465457232577371584009418454374390362212769271912654101889164868796675946491102568581964460736412745167027932148506334277338985968966130327823628079567284960220531475420459183400491041712533897774716541351640093940888903355157749686751568807519862885498616898432839418629084826493857953339585786350501533810185787631528041576406851575993287037772742704918488001602329241525865979973502166390713475995626287179544197808809632005994264125512655953714649609080357202290267601335102656837222637231107574279802138212137514923083185695581583227186560309555931726333612969857488022919399450106864332711376063464729693873983813678878912802804626537738579114630684500776970223588704427668593921975963257865707239630226516404540815728684539557034510786424737658306828683284885474058260007071243915107694539216106051873837061868609540545384343820094900490187307265716387155756371862088348713436140285395340414140353370643456673545898493880414405252926070690147431134661208934851629894610560674625009400507573820899735959820313819157098083591234112169823070771148619810436163494566441936919271192854502531165814522947523915867052329181568497443002697817244989811220231793841860978327562381576096825063051162178464878182583842650891951352708080531859268685690249923488714937133397615581803819356598233693568691154309370522565042019499081924467027260923446283859083276092701776936259420469120464349261145515935213153134647577834886813891168478979513991220657771381006686928281794785260504161736989675554858824667425169595508816986254995049910746834831499544847532801499081139271552662139457159468886637676229693607571821192882964675142864998905287304625715716681442570715116639842939368613381383676711395407835776796044410978952289291767019385106869040021141319939918252908101862720434582808296793440704257643535345357336583943508363476184498368435250640306269324478158826400886778183067555425112041449139303377597904914823202112859995623151201390728746568430452779575305191394712408082906720976672404049217830552967595378345213098903784080085814943262749484650615892165382065034112167719840820526796387585048305695787104026134938283644926311296661297240203488268758412051755228226606992698370724341348363991992887793214019959636416963928464493498652584300345441739638033954895729165575940136906620307866481560141853843713423488624356711861059750580692737909064415063313442161627243180529909076424845133876023592900257700490911511964942796108621407566759241616021820678977982257857524254669079493030348555087261126754137935944352345112257892505633146720015942128977192163821649523330870011866292532887416335511246777554616127057227665144847850723579545511879894628508849439135180988930828459333097331686669899998509077407139137317190114317593738731397363571915124775229683436068414441023125577528407144894086102385676733343391313847801523554858960597873198906929431119340968852833552801157510814482122040732805816814725651306098933261439351783230520396519269549258333689584508044632069064916162632506178702831188505531026655228180491087748049290601052304959135249787351729930186276672941928629046926468556154173223649889184096501905356185792361338843644865456511585246778591132646212139198275359263054118859882048625905630707914075414857551346598823578928850789776266550025638453168703683911993291887214520204279908773137366680033304876548259811242322498726375412701151436326165448975257345188412304857374595981838278776036495924547910414420912346311917785789655439983745202521443689127291427400862120968812018177037273044088000059827583553155294197413323662837429243423227330318238764673910629701189738943804502442829262342714396496792246436380774113502940407710844811909060476250526469971329739740297271938896419977245438099155101249140955928809834116053243748369746549303178403603134329708443657619908469087269546922419822251699319942048799560252311142721655357299506997929515953898062657527519964565626265911199375336934581815377801149723677398475332915154205804232865637155763046717494113524026196391233068896875195599115953292896520208427394278007655968132762337934017361908568556276355667228709668707233093198464445071973722954559088352823559440275274994779473557130981313342519853363634496309784973654044212622545477463402423549827233579958480482537079203979781421529228265087914000035763694529048485805739221546357659049385803077229450541696602150252301587446978480701046074429605375165753869322177074940415514564283905961942034714938126445054139607153564242903262160748935481295303777899680875318195248288638712754981632825829110899767396031776539198120112438339343883727369964460619166816256769308054232218154749948102861030867539969834298325404786298994976510740574113815485435165893800095991475246009564010799494919146267683553861814316052939213367259235323731996950353260105233358742097597309937607823540446278071892858469919834967011833196836339664485488816592070320817369870201744020111184642663196176758723037495302098721582301737916949042223326397994114934010266435885704384420480390555333477236894681346856478150399255060719616180351888915903765014479698757074034528967692988534959375677065943519376962533645254846843770273763100415574213100190001186369911673662094065187249758985005648250193580618041607445266548604885903468271989902506100727048551035362162530810576894223385478323081836396034873266630669838199691754808521790212046248277635916216499642862510485114526597813764919459959796527638989595576025627416679821332383309208379841208791130907103110965285691220395524819253975129231496126387490991369995555468928496225251404401848760212733785791345116830153919341846890307763279952367803034557913376904869225324493403437236379085527973207040631525117080582906020291104688879580311013273180425824503294296345735642257202239636955277803892757144394278227983615883897287522403129643094958570048768957373081461524488311702726160904591653012754798863347477861175194455414656104478174902203172184814851585788789324198253288844797953039130008336491718733583934422484081687003963259503785773656275767799420879827567560736005307401027014792779069164899904277856003454795607714498035895123505354270345826117468859548903469350587372718750268900086670999529972329749600637736989721790902045408808771373489783770852581607491296728945112330576324737267639834390514386909410687537893995830651299720300418898315890171557416520493617371003540729316636986051889747035818173612878545210957064549079557156521982694322105728480775744548379483132366323200900465247108141899506684634166978479540108901666536011451593115729491025479327409072381708475820290534326182463490362639311001040352169675110067144776947575760790351842452021498150998486033358141344232086600215842467672253825785963260269105234663379930624972001269659573450326416729469650641454664919438499074834191199456460774475560576619917877287531750819334062477027745810865407941231043463890768143277449959759235580041407270528268475500749165682547641198830524060696573788039079566958204887340966213021280724922344068046188698418671667359133476315924112704915364605912318659863896131524256477431629917355112914622533988701775249655567090456684561913740486351159331359382868475154204246617498013839797642709221519899094292638087009794379525681979295907012354173822038299085694590590376470669694861221727312919916939517269171078123151492665359833938562505758425172666194431513811345643254953695310630196003726455812263535093510628385295445328151940934708684652083160655879715974160455166993606014316248333993478738694737870471274121987238265789483815114229781878043787936841324799762133615380758389887385417348526352610922288141021115367508391292223937542566749350449924739687292946275471718135838609205975114051749037505123485114838412638454778443820189771559635393284530742745083679138305022536572340410315889569095656568095365583251597800004566402815606453929720081492162678907899697978513632059334474149269484870165294693166174577738299552550571937071737904494768754333036826256733607493307280621735938292099147327598229368130588160524657634141372133077849711122973834703743239026277233061926251067015824173847143103174927833772735200911060701112255067679477765170547797906871286015769033755749382519782924431428008025808284750447272004932482609289726606108940234447142280157211176068213766552362056417670074409919308588900427973130860438255534983613536795858152698088678446303923436312199590368870072516207041693738497857323384221861171222970178689319775975211570883627618122576657385281763612007569556283732429810884465228263683401768819981056433019752629488472928344171654453094296121751781655029249020331025846394474987307181832791388104140325474095648457082150250703262185902185252871657545657735182766616679097269755071794507960048813088784196523776661288337893257370065013178936177448455333999837512901355741417468976476686988217498941269789519495969837246603770160838187268381591737321906246469104322269513407432837127951889227403440254349706148050441318871624009706282277430496285596950713736564504435027933298364275737369494056550098863930227174592297113560262115812043935377222431429317522418701914955825989465167008463582476778428261334332861506517771469953418387302607059958191730839594503965844680384742411779472367702078816708752145234346107097790061135634217722174772665386330242695503774283706599799294689774786310378405715974612744284009530426400468070203001488871476962434319056756775178531694989565901468952339169261775850709450587666159174892640268121690398015959415337558624456963726699322834563508816144933179560982855840302745821499438802856633977381769375555380254900995496510808425891708296022181178463241043958536461883370979659529134305243557376981093516497943987775119659999320482712764283364242086622667517145480258824962607956728847263648199529981198073913798835749941734404332386323245259270303785344267674883233689016783370500801626089527277708687303615197835547942191249363137117213118616099992694405941499672912842638865270502600723749528172426468374091165981894974034720681153551192005976186108420556136354126335583675452024559007166105889416077077316624711388214752947166570763035531180474942505560798220686466884744791700130963357879107210018352791673314289593663171226450402908100089349157293128658778571746929785219147758535467975374725218761639786437723100648027826243202245860140576063248068637723805466834698005310986652018359262921022207695615729977655020112007731006994979067701675895728300513424556084679161787198311341792663787134380227293961890649499314642471622393143501684378026332714972902423943241664844070257538573637886865163491640635767249924281051943280325518197837318306778063507585760494840092557011221242775073580987141056711239803309816483595139329702725610304404655113136213336816608826634444719120530725599977099108910623827187792526790476914087816816426711648293425212742008075054866376334686654998293469025403340157298582527951859825508584534000958713970899204071284197053567800446419621706349590762439908302254828109832605495193060373495195220190082652873662788841156780528240764727574845051682514954755855564564484709819687885833079975047854715381317044048653405235636260498442707570010679619100967469047321578169153682355195591574800873632150341818312161330379281247924976192244549668525075702836049435248537449791264101160259520870649030969322066453598218741989494131088331070303182153168372318657329478315630581898790787775413190353180421218749193072453640660030648437980838587033074809668341091888466239950255462846150252384587011722799647631967218261818533707138839255882747584935330383745328357392774736961958080019050834420778227575775727046077255067043891940759970748542816158884467429371459496975446187542526338391024522792328568611463520879005620524156392138899671858756155442074491588112650424302177379982454243352246703964609683496839218773865626151070086243821350777778317705996058286371912945124498615102629063747543648170089754655216754139935588619537133789508080738936053062438456304051033853870356232638586319766062087164898670053279750513992235303920900023848952063061454204035885376686957190353417302833002320006634626605479098736545020542105254975648910614876930767641455450808745217096213737168707687405068750379087212752909294055453230062158230362593312075065902166172145257984197211996226988712949328095970683590962073687405684170404143307628714084937286068283036086798657816897142049587083347405105764219808154783797390196900185922698429503543256827643032261367575895924480883315198800961159494646025843528445385741409734016392158219299632924690472177165725837395358295964624951986376468390337414248012297854385304680511010028051902895409636427851607542300695132158722863458229579635206923015564608973041922512232848715532896858934928408610219496865378904171540788815534090531553374687879245385977954743178563144215808699971222955527660373262853724534059243742623269997776295846986550662023468664344810713981398134246184303237484227127473870316635040909700794030263096583782058638149779114468588652170735212873613980636029308648102855352262112871426561837350542929010760574392877818842963058792055254551140993486830397141640896861395342197238629951180220996315283440439528755696984578520842832407452950540438338990799420403255448730235355235227897306875724081151611880932493034217270255904675486523617706086524980384594291024639483939579172277267697560755598413043505061502080555731731092119539618233764518128171790679030046466833431292928807395120831503348000555606419554873608905612451890891333999953870037109244924819397747045524015803396204813536788412811674055456079370275472089235634138225160925594863846558263597042986393173650344105151142785615648529523466514796921495024569445381264119405682692795086372449873355452350936143240774357070696844923978485448681151807133500912688309420347362415603017050155067422642607241763599644635785721691085896896734270550344540376369561159431050914393440007868414961414813346628144938841943339302683205917083695604112824429686139886332138601032452410519687398344611033752706767164830115330786440482844093929042684802933750698368758351691551374634260974898042484369612215710100646862840151061355311911962468052362657311020314321231577383454578103274816300865215063655112722282728727057327902157606126338158949421498793345914594249328271918043493683003605228374144212616164465126995673674202915749626655313008975769675934706197021868791238335795378649772059238478410965900448609088533035701809419350069326490400763139366219476269210107285332597614732122291818949445468339480137433530064973049524184866978911806324833532069154132521450714327686909729731891864757286588521169614048278575798892070598305300316839870305503304240742877784736323955297179969961113584958683770919092160160131582966063090429095308868062222516959825558946334751046366525001941371487136266310749940089384644317895743831247822429383188885062750359501167780287861867796894267767391903308458831418152580420488854621334704098929620503558039468894480058568981454108941188258376027652459544907170230333835015958739559691238753742275507897983401927031822079202955643600927130383084585031191904808988225577809893052923811839434588137315128406317735893932777290883711333636062043092175497919806608418000104914364577954417884664679824691234196190020793630003056995774639298270039801527789618308934664722617056773457679088669247483693051608611258723169603553843154355896387026605442332764032381167240933221986609615780872081051329347362454844298631161848579898029961807933113568450948807829199185943272172844072135907336152056471624327351676354130968619924574218872515362104098763102296039848556326670694541662666669872736980169948732494915083434064754293181608466960232283368501614651542165110254653820714022300681157077520368742255572342745726135377079721939429725904153188130005698475632798012188756771065358381893953848223572175322399023474358469565822395333952401058051656877098653930220618144057555858466654240490512656363202811799490992514197159663614351939798869592491354780275380681304997271716474115549411316964651196495714291367773456366033687626519787407571703185424059812006217692084343679971844525008385966180546810588091273876706663856343651889487450288306077121336336974701757845480360938714068834378627050008811039088341198249024119762084558034255411432836534452299095454571536019311876699740331266171874089264095167056571219825136310086576290359673977646433989129215430491902238751542449374590856179704564032641076921524567904380558414693064555129197696386414395461699931358438124418138359102663861558761250071734711516536895124285684070905431348172761359938276812873051053538773038898995102260727413195315534355018993797144974653476536776307916940760592134158871405543883022303986953485280052588580801025709579841374621409230499063989430056619485808101798539610808117745735820725049628475247503366319522356675669180614831315553036099098034071441198835839023129284334442642183712540639823113990195349159137406556075036058790345740071458139791374699310970426273191886863671441408381960762910122146896636142017645445205040135889551924658926680858281897396703596015915026409330913394953870733444386515727071289022433266613408352855147325483169230853881789972469928080590016203277010118224643134055038530960642459201063253272965161837165592588129760610393234362098281574063550882842908379081380584772992242925716383594564058803828743693978681318506784629107694747250957870469626111740772700054936690810639142483969317702351931780859296538374965887554818353247774466419032736682881668989719127786546359518588315929269779151965010728197565060461660223651684066868256837380019440358204253533461310537531250797120947702951695110374163418867741642542782381054645355338200144371133732451928697223084955811146527888296323519174071766324569358742747010810983605727135948855893501752234891759879214729383275442629688567696690363727737138718062420903387193270778925194614504940982153059965779608707669910028670659640132047245781931555927179516306468700392301624570277635234636868366390181331460207050318581029734819370550540417253829197690235759726996792824644903653937026866556332721532522682437312402892437562275647762410294367540194896476318091340486808263159800336700133033227056490935990590317721082050174935134159106939341001824633115071095620831376319726954291104213424945672818008361000208269420757331234142391274113045547336720781256610667453944297781808741224215590552621206391364603987015528839502555052365690943368760729210920763945979029944607011027679171292600721942037382869623767982365294136691419076783938804749956800891629461940951338854055491669219435559555654657156943523542647222359812666584115905651238114284775672181011592600237632788965097507787481045859767567447582966777703378253760427048436120970578373708794836794774912099086746105230700138303668090060822600488861603124529076777555434637019215315749655831891858416123881630329321713734333128920500218203024577317517711047926173857865297160799370425925662493770166556663366762661842930942369250050065664871712553925669645758445029606974420414268202446903341623511004093412344658996352403495449255287060497846890915321391444917623678548409532392216935694558827423009732985366936241863565591692255432463857098001213316626287880510282503904266922752354043331552730153523269744817231399075586169813360107995388412480457900209728009067457486628105886874478840888558643501082472967861086958823752110486662809312525241738608859397592147252279048734875120822358655388822367795157948885335020874618157584574263509579450516873931408577826025182032232889976936131202829970905572261893466640564152733128162620983030014357603769790459645545212943226297374958977122791781301130685448331840586168997514564155103691852448352224325248541282697438582624025203196730218185861592062198238381211222418017494722385075747968109613666032554747984184754456945927859784639757470391163615956276483392227685059068630299241433396656771009031039369381750013830665814469309945021324482275857574945413427507069704411622228011314096637695767534237064593369615746214761546717425474838053838948880003233345611067592903320117389956970657632811413144509195742506448051832292145313217363949214885471265590800927975102716891882616180296790274236249697049104227655175592404649952736329648228921971245432268847994414841612019939723911352563200827355326815670275685657123130466423137905843917643907878272807861070812233080724625230637560185159732323922521730099478582776109731869148173794211708004216833181370603442169231700927104599531413699001745065717112686326251556587436165821633609687651324631040984141439555580299219262212139085141740367632062642000282154639245130241300764190345663979633291838442399882866711149096083620653537700606869019241757686341672203132329082284631272023639520978748944237255854378235798789204100188770830771376167019749828166482712261968852066343298328688857334585981177478130040738126169099112593593588735388747227474895578044280946273627336263684904937010502448984134759531110558398303196249385256041374512931115342102836732365814744550106740021752874266601501402773030824680412180072322731423092525221092047867719078380006731258850531058865321749088168347262548623038734625705859214240488674194286091458850624689473716184064867271136361775724083015213379524836088464397118033543119855176382098795780544005369741199339839306992480865291962396110574712945098268534570626632247395395852251545781037328087235166835181537441885074430532343568865678932526152072281792341147654116104181805533929525177559734851377745041680754230931833177198254104033326078163953104853192636974550484075785070085629210522622940931784801325794440543031913595797611871699997534040019968536060869988936031033039605002130050675477541532174812521517307974069927615030059895629273705730960829759419718925614365105283111976835128415789327575670986322381703028460322254561750646149319180735335714795614139541025391588985829970379120149375408501698055319414285905699174059044025659772600659050260198103748361265940774519590772674982115596174672145922917151396732386003614127594775231481275546418080381850839002414045737413850692843273906128809821724448454883710377900376754395620657500771777475171330882313382064638529442074373590934746171897644562737384646986080651637019738576195076324136212459134343106354919090943175041420688728896668656415554093454009535325235331375611402341575300650760784445111247508521277039718934853606499520654810831037376887669500041778850364321858835210487823388950951512888889714808598836351428187512142083118318425443483056207103332060283714662934511731543353550072460606364722270442642619257128183686195687927678708351198499322407085363125080936155805762728554169777088742243628694122954915869852620875578669897478861021876164193936302132740965448660619715406963455440488346267307350628444992908507502957279876283379866865687511877704684637521769524087115188744626465880665047095129342389484032768717571135155870310473052967696381430280248206751015423617876240531752194282985212640000637189170172971461416791149228637277743643460757991332354521026983486741251442605134982229269703761799773736537460880308965498400741202023334819779013615960296562408108785132140380110884425939955356362355464275667232845525543348892732838796904242602513206172650977161912078256094020714005111243861161473350671807104862677532370131291780708675320481757460288069681952031542095880343193898922138429401714585519894288428016910821134402772621783273698235815169352302033076166298213014435914870149328319353868361372004616362829754905788595236418988105075734051489022845556221181085786344583528869518259447704617677606089557472412950846558640504457886306747414554227132077808263506660948490481859577104933753831023140711756245485198114641403358083894321308730432536948979338459781756853432563516503993674172321266810764946129300582472413351555996991505129750628228361782065003355381247618412260525769414747991405764470178769939024995601106058025412435297210089731220284186816741742790525788425759879404008286635018830793490356066503640731403127932342782760328787634587337288784637521431230247361944930184954333583295666660256194709912056012980966013118073473814775451259355574114465147756792034307137011253905530930027898061218580885112682537154582709189337901999593902814520569519387938125000331067931389264510779733977634721111826996468565129769137213699921683793129219117274523521595508324985432226791646971453185773398152474444923839589271825723024327594163795472607037965726140728707757125002207103777654710633241489314792935679005346987608852765686454408469027793358796899335371026943081216338931454974036063704911693830309958025246661076265342966038518910669270518704928438293760997250288238932673813099418358352128259966064208092857350406168930059323450740434663860851224199538587223754116129777708083624108375199463907695990090462658730897101641092767717091640825230778167818019361013235721948960804769774078619656199667825845454449743408399699269649689694039190429971596761600256850234697734446442993478482256134952312962343392983443348510120865653573724640495523532374493064533884305885902601257407095464023964063894954809645636523179829734408052400305567710970108901539253200928792004032292036015974750247599398990949376297558194383752530260198708047024985906419187888780911092038566346807917399176376073534603363797890356710178380006182820785048178491247351761097721284392563449613225739726371510639717281024554084371416527776498059163945282889904602147630309295703597090609485706220620288848470615796681489916724325658634720439488484618256086304560299464228823173978565956168890576517561792045907369316917404923532792841315454417637642843840803351376145027566128825423082917942251720186976863586353720866655503759985653389113662126902076655395300133512339778565346128133004977322245376669386709401687094014487123986940256547020716837532721230338511562937542114024596832315395731538295334923393595468628407826485145692873723873697478132410671418931299447702122095739974221175677313004996808041186313547617305216207202343508830361535986331159873176859002460900888588928083722326782518535095410882847781921785758270869956614553858415125039276319774257774351884951934356991915706545791035737074690102717205870487488103506079128793006810360236603205574214425772737821888919035674459445079370088813621667584347124416337172487140952898168772760191618879598325990169988306642245620665701529263715306314118263570135540547692958610837965062695110227711194043180864065198685518920547030738665014996708716951797295590908985759222520365979696883262020481581391552588500252435041715455045834650229307097666602779760645765754006458077105782283480142880315235907438273506604773360319739751890743845824438932338835631536794613075837309534373995971387780941135858345058902753963407364180915123736481794682821711814269148986316029082662632554242533690950672525815059613613123212940035773952006327820582978590743057180050505978824955951672160616308554392118144953569671668106294806478036651590395107717596119141667161718984029623088066600304540774901332748123058605180749718090348894628690506635123309660144984020896311432428917062013921037794144439706393221711604235310121311103376981453081307603443873897522108462178028450160951062877781772743560203274768405240708881937053696047173293847376140169140716294187698762527518871145150933504781351590020974171610147023538429808389395234471718802677373535762500916654798486981366251685384062613196157511459106621991807613798015192951273767739331069843177511739886816143049067018621576003888053612401161784776286599445889110920393404390813617467431096154791819729374503587732108013666729142713719846878919855910443757469678357396262427897022988468597252694659381101236087720207515669548197652911241701544644519301191725897454574626587868952514411647817754195319367829831948613681010458409140608935509496718062377886672629073004532942991116558900991144909391835428361053514081038921809616488598524167141253199358276384835693996262918514684624566490953154414856871629366496208003916538211831139880656877631917402148592473357707334888466815032131751262294033221188510476552796381352176312653580280965557173057222031450742023278482103948516967613210403947843530778340710312537440097076033606075445598686057817881688008080527554729621580444619664696949122062922952829767657142571466803900264058387694350784544602442113358628500480950675398145173755191881989723405051567939459144281335111653367310529280502917832534829046289153636069504109797076081808732986003677028024181145735797070572298387689280025716682304176403088247542027336236576599743297412798252075059930276271119450560850877845329045299904690043713662984628764447172681681634467548105350197563364021648399675145155459583226926976470742532332905219515070435990058245518803395257577636170615728768304559299766426408756929883286159726788387135830642773021311769631125569656350321358756009363275181493248673135640305255303384644317673040120190427101001768848867174050641145747321537933546138716023730183314888258699740473694127316189123442531211755302113002852379983156164013792657998740206440709692509960806446820948430384834877207731439860699731800709748489986822030579770487354555849703162755801471071773440884373574745084234586621779926969735896452535460503081063621222489089850469648263156137800794749977990916787544418623969580762760984075691367600033073249388672196488412994565774310808641408432649099351581792617401614068620507435330447861510780363322474207421593880317694416567994963880496404826701648522666796201698061760530896208122269543825375806081825510217705657175443612969331935560728542609396526342873299849231054994441162152957129060893645777885236768456470448367534085597576604398982283261282342986438746116437886186067073603799759487853869557456204053387673463484532246284726814021810002023527417086933934751795487372588324726548339441606960997417254359029863120222919808234349296332810759260731391367068398987046316284388943239384144672847499370505532615579845346216322868547752407246356151492474415247849896796876368895443276127141092631664757085574363636170976255425759556429844332233121450048428492784195513793037189398137917081166742011425107786694576463522295535070589553835910744800885856361981707265524066348993764798534146429670661176641370371598996305563678921783734394537370289513135790747252359535317327640446458550076367929782596905270553037860600981048633047843223867399896430938741501631770082477013944477225365745318673802445289760392769812052172906493978041925044859946697239508469299015978221179954862470697950315560171099576122635069513720167050026031410151050783686611832746096716602976391239674577948317389545919534386926327791248515411867988959051137941436058574223590206806784389798931064480369617990985699000032097442646147249107811315110532612082752937711621466174133434307532204049893547928075394217801435371113319851888681935566882477021356837817313877280490683784161308993678595505149565949320627292027548557090523801723264991747816068948491769879108388216622545077841163519700234101289154044811593022378641988099239272767763925085785779083473121427841383984133662703983427156525146427895109756191913816511821012947601749612107415121170823043099409223463704557784083434680213119489654373772856740801334276443350202062575812483686129504582956413107565185373525512987965541673971386552914104721496684480112146225229191089799746428827905826897180722000275731094662485589340831376452593971166853035835137220425592685961596251159775409365136613169186667791354819380812153558993639826765688711502706073839932908269781384194226800341416840620372948098480537961206183058433412230679825437330778444740725460469589569460333183953064028731125461609198442864688383102833035764059669629135378712607451242957766267403334604656536462866570147784072830878226435199838126150176287130215935773782363283753672697800626870232257294373995066478791936967080076491320188649772560227478977191500243148020042613135882346496543869282569420570283917289664517677146833730406746575754053976443863432309314252776958603408228575933102398071064664909688923131026133878525777859902508329442928181913700726617780994656294549084562182247084677414330538417792753425110195192589707665493800797993073197701226439514482734024504655115944146051872817397120678147309970396410367259721804719751770309690624615847174180153326047120181150988925790924647312607399951495971074743862964664622929598170643227708817249704816418570326345478005225041169150741318909949031373774060774614595290454662745812395969431779860522204331980893883264206771080547094385132341510302875203007830495674721382594693131501858539118808071451143851685920572811297680884062595819839584917617994819497352088012351599522308145715985076690283031670834795742636592789049286717154959036877329602357998394543400306955064914361372562845107850161412635088140434538185989332683830787727252723859253441872342595730819753574367933488830244591504129269431631279771679273050469455782357717024118642555337773477852980636690138219456819402662938436465423685996975439044190528069843247789786502782133385237793827750632533706924727948256203235610573409458608014973856216424242191691911303979492587547687731187225412350684264995141954490970381237476010438637408144765526884992565499816068794591804439534326161445638568015298580105651611585439571521453360954377138592308472163070161490579289700401289566922798750160527518275487994539918366072341843676888619656675865427102063812048856391834812643968037208303356133564128914608365541040009302800683741237618293970483668777627584095543333307452256111071763104979042024323799979821125896226789200445369843616176478663345988799532192696638935276170018457283962600870361837277259431120359738875459474326334186577184628131115416775781679363604441260506264586058534460235860075954652440692687457906502951555933018838374858672642681777146855793508125580270147830491995642136884047083491904469134814223659536763011638444108425252534229781731655130072422252811915673812324140775430117546904229004733799739153263096533674365067360544742023279001768129413522262458568039014899734564213929779262135151050132400262208273940237646590845353902181590473759243911404393005298662867301384925792243939029236802837800883833291723070817970783820144068176166108024197961406624261306500974460305757304769380247479543106643156673690997407046201134878971601573000418577381618147778937102019828451811245765415645915824316148600028810895863245281612994546293078291143466110141203116263190510916746302710064029703884801264723482197151086366793207855746757222779674013594011667733731930252433272278365532254081969648806733944517456916608861216677831972645742128821553078496542253702557710816062675550411782651783889938435717757405316325170367969924624572147935207459585483084153719445223861128563224685930687944261464136469688492486223786828221644396986424637679923389404432800951934216229401341577150374944661721233671762400584452234648451966180627324977991584280016862757888781856159465644664337915959827022461381828534166810483697476740995192747785193971568934578687131182706440074951372641098332928697870846876226133280178649518594536778311766849249787219172935968855818046092001202693964612135666100802860136040769498508581648736489349333836011832516762681428630977702343010943024709727932052332532256186982386213620067744577635014519683796231164289451327130709559408198782505970938962429846030093749333220081764470289509792313283421087586954376673386354536823357626564694303840731771053031064952363299348743849640810031953547344227031247519817703404526418570018273536695043734853908915429781765802982662431386342427715351624683762381821547664629497986261090750382901253585472748080526596207685731493008871109502580828627387689337522382242661360223704830896361969500329597205707199608179743126194698966155746596587304505073726502608826388917805048226191685733982779306746400036476774181279123426852141685394384477734640313407280815554014274388847861754564568227277957024757607503653301645528522432959036400358331361752228905584147956341515071072860887006827631119978407179628459122143928747420223810018582854721686211924502105168027199839905715824844879093618420165754410367624228272131061290406984037301638736496169202703877571387709944370510669427414631125800752115021788047658051489191678105505866020762042608616188459698991067212833785363776890166049559302187965941940979117264268930587465327796442417862848613096642639437880657785522901874532726128574919057801415345919942536090759661914125762078743960911394561286868601531598209389026100978857384807594345710416957409610503188712655986917648437237041796591882732590353722800967667048753774487583788454881021723374579181464482749989267747917754722735110023591797758394358179973713617842889375688368008902093029608546564778532604701622672686462555093273738021444940873881651413405011476088693980980135599111331399200938516125096349447041591761642075992127157490592483623798565454195580174179799888461853412957410671417385068688576707179595001447129402421987391047324421655636031343809525794104356477544575514413120794100231834521084771009537835986003096857381937561647909703712367065772377575594152688725009650458434290309801105670568837693260873347306163377708759302772028996282667549426891708423377422148127646489185265128947503294288959230079291571389518098139559520481539378745891182464331181137138202103554119747448410516618349104808018662457328663611347399203541002719162477688015647028603322530424334246790249797503129095320328876596881666280687671336838219591885019984280709437201769861377785817800051131107048881480002127641521791310362621384295130198337428122312475698283122201422192795417424874517772210803734343056906332801448068179428411541038697684825419299850914555198624610795081116024395031513193103454063877308233011419031380527749460594687098658215530859491463680792646919351765338803123825078528810847632473263132523715786080722377847044189103839132057530090690006503443711510853857506650199181585041197884110047212020345168336721725402167586672304330062246483232734116438398141446513633596513157411176722703295315532592635254676865236290510499212520527412269098596861665327800451516800573606962630795070201577529559632903555407911809278504292774883994553575362642334993345978222140471015599218615895999656066108318064704431006269112355839606375148053280347784607734865087237004018361829510607027916967439466798935606511044184798478896316286965936506019303525701420751258451757738915034166366643309915363085492523490004319859930472443496015279025025940505792307614262232193072689533363321801198877569483375299323612369286509142949744044095787246214302823817448844180183491905501522420232718533833223003367906911443252816182145530696164720470804086317390483873878363752051618455909601184608484874952863966553365318008320188531847162829876921353146851188145111934859278348074840596410400265610334231393322104067760996530553415209409780613673580637493843225798400930428777064360157576638567956327276278955172421285617234511333420105948372296100582045803328727664957174343407264054075916970349170917790521609708087437548025442460456664749471250041385572958965115087952969355398011635472216065963173790463994202889286600577367470316542332056307764266418932069045332669672306568531638740779766166340254738731854593291567409522906745633286177418434020211231226754442845745335266213334238792757429794813297371875686408432643436410026538925412373985099741038096427250702994437156192755446451536024955380646367518964344492414421353622745021393570753474445183058024432782073056916581642617510270792066660072148267265304843942676143499977322019158980951843489150774466693667558350831964069431070562800848400878898647859858149198607059973671902689652315395886607598204221974401076764531819939027415336076441096266137766810508838653370057456921028772969493383670941887465235165233355168988429232677186544002033139229739905315166525745945663841564141535126497887967935666664451752948686151417513247275111342963960959078578891381650635600099966122130880435150308126873622263554995276065473211210579587411811108511388282837644642534208373512737056044034085011247408830277816861849815206855396473227888553604604339147301580223515270711303766574919119665373993865680245496897634571713456873127639803563673974026160415470640985700079087248199144496197817983817832380483690740991297671537201471303533985284579783050785094351561594439537332227885291400667552273657965577528084913695532378711105165560632862643182324138749966491936187862998224347222812353235584201739458825016848210913670919937173998696309027768587668114638408328110579161429274082648606450748032476596569535538894021597094761040091787880264273369611870291710984187331436016248044386987428735932444660275432826931427322475477258327627906164533770141409479050682762625854054045721101802418898425624898727157837077496662239135051226137062864757051479662177159512593102021616926615592122269176193040556649836154955500915985637702806751196247920594315152363730535449586830277642295114861741936981407691219620109774294951267406467460425144367752870722755215477826196553578952945528249733380661730634506182213409249289354095312593937847022901500527789247945249292594272134545104345750328954888702965308155987922451988325403653532496638879026634341252608046086834697545995454392331799251910694654449885453024332663386279232460882032170189707675297793969051718885608176613436925559456348908919642367526320935074245641162467836916615022481821563265113855821198329131185558204089406650388977073934700334570653469454045966118847677728235078987747726683675970092314694909612564342697927741587431352658666852799008029085825597850312108665271568144448331135574177930583075445438169382649896655174962413268650368122851801077849834080636743723172564386897530075732571268088263572367469052967865053216460173815321732722948765268393906776184489720142194899880719763154094016078298881028778252804638799037924887028358634720283385083397752618762604931359454877941320482842936455913980544168057847607906070641781670254764113518578268899316232909360795175959781964083561703183115934979157673589300129897760184131927756927503257653823527817069246003563286700642359871504718718658590655255210635662842611503119524594613839529761552078182648970429856260771034068940679250162485357101338328862998079628904041763158638817265927517263554664126507098363017858826921992506334636824491030122113146688179823724154659563439310788673224815847302905147147196400442261189226248777514494322529209220575535302845490286146547770543887014438588045931638608054879354514805527325830633827530352941008769159577860523791099548797736872065764359342815599937982664530353660234252037434520940987224462305562882469671678126693008046200314695597936676978103464178263872233878356958819818645358319600682931161938598941414629979827893982975052540558952982422673325634969009508297171832474775883049560310831605613421002326607291558322870027629004272258800250519829612264488121302111825642009372939279864095142205673512734459551349343823910281206316205147244878149608686398796926448099304758379783714064825904265688333572082885519528252099911552243739819194074586747995755510134666966973169242508704033624468716193372550311301161481066103205862416504567330457137998918069035166155953712689821723323759390552281069201296898759044911758079206571745370407799267395872138681664539965077363840241616677257349406038583022160953747217843251315109797022639277040922048210304992524526391273096442056795150294177720831912397366715988665991262954516670992063341036066842786281504442575079754128700034657569664391931140496506693621322131920424221233932029305537986884265248613557712052819345090399665004655173199980452289318057313922996749973746824794238038474970568247617924603147208907515659731293769080629791474009241345263080337591361258593738504193010455522183674679109471986823294552658997915391662078228768152540328990364213763356475708670736035054290773981972548242653263798280564442415092852518183626152859862704525887640500890513583283234537658268080733621928724805455777721040017708738871677103838231891659389384192686212295479172545213735848567284036525286783531530016520112363998680742739260496985299877738308055829572485457500771455391757805250421055769848388008980132846506136902606399261677795968447127405784860849562492678364552123070499445178037660637218709335452016877093821400820170086596665076085312347889243272369868543304794678086285249640280530303539266707579409983165161486986259353661889336543099428899125780815388941908854007783221320983813050205127493144990982387520988675018363102661692005464282667897413778453464871917225074695870087343400063689446503744091201164283085790380200505253334469192322362406671580694712290605940492787417946530204617710884038922794546975751941479451093573555752272484213759681064709994907955557867032353334846264309189808635452126249182376306125039761181821597114309980704966941326910399083101676151110430245767593046728075705678040509223928989190674512398312485076897895103570261259654992876445381282065852086313438187892948771990209954404966606057199621594921467908822719464938426319375128484344700119013335176789800611262867155029909867112931998422210795074510575656803516696649313760179288492019535745155884680286681638727410205123167090463698636815480860531707117979921789807033548987737550309740685168043159467700337266041266216077726847075223058916958671340708621920378833433966667572588471058550002635552026844173333368849823644847363991236145548293995451637174866406753213873691294581344977072425771628092255915383350218880997634332883704154080254223829927529388561618887185041941665400394712629598083411345073264668931060023938500934024851856264955012146584304239395555135525759837377173033435696341931289396451512447376259139984534793490434644356125038987412667550994156651776283233956717778999314833608387930323422448704447879597142237245560076662929524035224077799898722152312128254767488393008771067249278162085418990597825230432256470455797795220497617824698542572595925043305721815724940700410037652561726040242395517153198697285038876143564358698679630581394751082210250591864954208908012332243708154442898633057743485905564009595676367012612527550392588683953912192825184952826477114732589820717289351185367150279343982463572621132433932589542910238634480032132728430872350129912609677940453727003282359457219921105154644318255556195994880901871998414328817044748331092872949275269090093000479771841657870282416603336631777738692657104260761246174464210924472837061566724738986591349780234428156660895743913857571750510328173046875222738906054711240237508426056923838861880554535831882547631829277121428242879433584045843675164299899531156282520431971936221240092361555388080560788060717119105670126123797639493778479547738027385487884223686243474996113457185905911742881276887641843691679811156091345115043415678391769749532552215078722387675146728683456900630883856165212414133745134255333421829388708448326268554999447802104468996312105973510453466587206990331847640303106809588007057463585319950863390402011772230057288049942631781521871299686023831421139778593407904952973608296369454185398992905455898314061845053595831557560617089030733294279461280692769405436962465312707986378716827215495158252387375976437516823099392308588400057774301435247401982777321314434823645282485172176932056716755134420394250232381219471895317397429013315503278988400732982567426728896570871304876462401985305536646529646845453282977771557427634583635941512465502714476958095909694420274537573301559936484287074501105370738538242736726510994167121986286214171480799785685878938635156684864976549314271614838530908647638312459552591929678679810264572084682662839904753233303849154097862901664407715636933254155259426632073831954781203715472769195083831866341703696198865956252474488480786332691053706282170539276680158246542611015623101295544910111788248993642209631777447147428238072961893218921885781220984160262944853439613194004018356266043453141318736556070475109786291072486586266763553737863079232851250519677581930209631876473476133225766262421376117182152299402430039561589184394098034169615462562943964266956893792275281873426439514807250571396762681185850192453389029818257232840098367785406996578721760770327294061619942980271420283178228230217158348469059442232767850385426639479321139567224704979867852930197908155060524146690176085559125951260835191209130033974138720455523777972338314843721654029694290204539771428118825726096931191604580396247716172196514124884921481978225518515762347215678676964988906597618223463573757591770685378723354462327310465414327650297243013889237664567818674953614789733046366305004466706648398633482914438068631534292351069037382927157796375175446042630338905703959803132185747950840951533449360953370966082171631416251275655191483003052601172545087638669355750968017648750387951724755652403647169402765746249819727048612187965135168404496264533273617779814453382527745805269049715900122200715970371017031512794510836760799405148417955973727978208510557492369792966519249657306062685688975912809015791913739929676001127292235747256198184283667534956430008127553923453887331000036558651113167663899822257462764374004722275013461672035320154065775775213983734255212100378044751129462304587375433745463230943008045818806196101515639982791375401320822445362447651655349096167919294079209403531763146421355473829633748718460038304516862972330300840144247441681057468521781952072197822369877135778354733986965039850182035105843244352273178587420208888836478050524797068956129109460724149652248338166871849211105739910248589859115015900178338676332355163016389713764804694281722019286523404274753745952177406538043238576033089104385188242746847117825792985431641842844905171150607024470796831666483592727334885743566663246734203441218276455249496142840357365691229539750305153109427653124686328451088759385584547643768630526013652048688844182022778074211630122425919296744418300673878874748721836182411814475306694148300320446815958348811344749564107059497099308210799747285352961957761993758551967805415667891958075804640659946480404643369514806260826321646522763174186346291200840387920247735208753996842634887839693334627668424135529263622315961922450901298952223231975978158571634012948467415982668409850898555479061354773171817535739468496478608489031084370692725787277587307403915918693108695640880477180801375831628020875979440289642269735004435999900985167457409384032252020646952939080540294445818936115415052272658973325984066318597317544039182662395193019626109474799324014064531283440649994418976104419111603786499016309058183293723667105908155123143591051845189460916149886273179229867216738894233101623516778336074892652062687460884663153094870911815057147503062499437524236369978624730962826662132974928773182035721514775551172686479926824274424191421192373857933917888089608806304709120536666648516116105497599284063381764130809847297799377586221772091040409924445271100944479212494767994621139747718003988122390541842207574370298260195311044832383960084494422103047710274632040801035972981531665390172579144875479831496622802860513622746073104714782763686010771120478204362393638591819626847795901925729479745608269446736216619445558503562568406361194685807407799796554139806463624960176048851627017388405162048973704210680144171824800416295366786921828177986233377020197729853268297975197119952321344670283687459892697947703042356999935589449146012143550173011029267192362237354705326019202600732329609061476654442201381967395976679581370113890822278820729025403005307253075521918866473229493297618584582516311370699661446406190219469037624201475774302552642431901379422727276911229064876716581882148419588053169466538651164217038310649166025620085470616801881789339320183151922919463671825231250133164252807043681994130165044918729705520307845870744123888341115359273453998064225948601030544804824709105328208216963083647314294210383105159957268215657798773542647158565266868592308744020361666686253778275044812905016343488513559474998377151768611566899941716613990328419096232709352461367592203849601735790440629484552443668684938870323066003023607303686280477533656273516544722594560155185103593694556427486429400333171892813476507221379609470887762193756497763956750476263213192108668427349531073852907368100735346831513031645892174187900760515139754836642098269729465746195796194134307222453757596729692313372089673219625759297592957168375961316893618560557799711725411681774898439560396057657448125599718726667948510956819335944991734115993776827300614520572494391258986896956882186928741171756243724779804044434847682989616718363949095929979594050372610205898070847107370556337998613188564762447414310146409575751207819793281788913489935405448566226828290583782280902540842713142154766188970838078199715211642635335302949607990147778946195360643860922295204844025209566350166658316736773336800077403595132835665706275355445423662251597795948578330302655753432218218720223737937165609569953705240995676318236409233566934124373527795617368544804852055755755788682108063792312263818425994545612811317980811226583945625963950088437065873358407673224138880942102709038746880998125417862097185515336200482938464200373968466325815896053950025582324488387781465875003395179510949859351568574818857174903526834169002310289076692751876323527711927064661261742901746304815704801883054116197899487252223101108009942034153025231817759502549374356535960623254404916729934060608343822552387512305989935338500422987882139377183076547689864078270635113771534703374361408543238677374842647834143764524556902971351588081287323013196750439637579977087299507554692202305100262274704312379522011223277359205581651365341497464209994488872548684081893971923932397747700961925734531679791854190897280731373370893197172623643829618127285121601861379864899414395684582270919650285190326628179402339209568975632827438299155809736974827263078422886643772220834949090788400306050631065897258072606406618673480876466678127820233515543254080770827516956634632671914052273990520000598777916010386621595648735275310260243388303880431323705745512977130813299365416837967556818438365905281157307072162060553468914951193045297976243533671801267488870773280255208834231558836204808141839480272041821639720316689062211996599297802852929368033664499608460696967292191045244267573837843237288770281583591128655179628837691742055515588908868961645055246309805935972770878731753134028179992822802073029234467830037917930375642115052652079634512435643105471532229472928154333411557811693419306167605613579587522525441639561148512139732349094309017603013958522433868661688650125312001856543237090634549900412161832296349652153085065013196491941414364754177917607496854087156916363015928111643609399954192576602997212402727828293633529625321917628576002511305680004014791314566749464853989690524274227362591783879908965886399810405613846918335800833513762710661836830221049719032659740798567429985037619660758252291247316029492978555809084049436531435675137418509772974633214345550321561062129942269169006428537712267728836836178608670939130137357708956810930286609359683074693230502823503362117139717940766058950412767566839290834810335858812667420000941842488657157086973368993861217436462244598927687507122666670468390460236888743328311622350851844643990661492522114310787109747078556725298885123912336175767124315990483249021027858802998900591017274297826380130343061926114261359508299902170125489153672135869527577628883184859412361564813085255466468180293430276687481899313921218687046859874049079693167926896399042877065410672226479343162062456943136298427695626892986654418311484988770326614959775230926886900288409210843084023016893100670881552733318315785950988142480600097940257211521338318651032679481281573376862003511149140283935338676207733002458870297478216514589579946847470724490650607883001854277888539165842223576881502621470220348116304944419340973530402635724372421972698733127450039692119903215456200153428469904825214962335922059595708891564748347670672873269249847011269624740988233232196498924618205000921005141286792446417671190904190658340158999647146846533437702014441084622487498431023632354554751911604111175264652136140184915734211321456230497930802807435497851300843786293504269191882016367203077623093400435775083138110235628212150418838197257407754911846688165793772443174293867117794499914162561823908475997332145382535504088516881015899480866839593376673484627673584924233162923952564178150380952448486389500373868639013242254976546128558354768972460896550600247762312411239619440374223217753754642627672242053326473145338532703577181717896339999986804220313390376754661174576203698947602570077348291314586866638167034924197575372980890782475694123805524814979251495666117329707098707630207840582767689505700940071251924315283035451052156018123360404800469755508037540968542245353864207623760627199672825259763690626607926561456969309337678747766002471805474444271822261746353913145276741744970093350506435116435125570017537226380412288586192865647148345589253371530120301109816415683982058849428426996986580076268435589133074557564880713291698637570713890863161565154039126663082930457844772716042796556190578923952738536018569766098672552890228224371981711332000521294174606963616133086152926388353071345096755287210302364237569804303204428264032988963295488630797139194522695311444228944730501962127795533525290558784063898669355783987959436947300263888193194177672703011029399890301652855806463020351315373944453155223081611299619774576684704933785269032821372596859661361351951967917113614662569852017717507308479638352717796886270631190126955342237910302924504273298295598361314256094619344451969070264965336816530655434280091294941315902326777278586231773255046111646342509781234044333540772104024865480335389453847997229066275735455463650158648364346996566580770205253500035977734210714911798342904603054766840764958772251766008480823403123900794714409328201060199191930644852806521512381455264634708107584628047572385572417822975070770272656638346450939005247334037193605664533787949397985315798717606902564157209592725741856252277746764639749713142683183018194411847559656783330354799094904366696970023821840565622212334017547668559397457184012296935848579156726788280351977949792762980074135981004716403141546387601515595834991206704271132386436694103517454339180636928260974519863455429418780657669294842344788433702846248201537005200674894655809258112774451629707599621841871897395288177887926538728857526820373591492502259558622385675255849710785015718859848089091086865673768406461795942691019655977247130326741636778470190188141268670538660282904205828176189266150047120628228272299610514395329212238336085064736406130386244527970817210724293081910412736533307526316229087304587093266576004121152976595864659559325696339159843961664308090406343564956633601360381264744470567507863680205655785681120966704347349389880515949233564750653988472518200657310361419661177416200097648104649670995908242434328920113218482779393595476237115904100689892685900087644038411288089591780433234949940782878799596215914395808392902781047328255448312190455096817888464430182435709101918471068654357950447623098568162828612166072868955900900896821950574008184743489756619350656894432987176183410319898860582957214365262955509655080231470600518804488724695437755822339869764105968168944637446531728585895786059214902934578451072821705298909025170028033137983306213464955565988752427426781232902047822780020216483153173403060358199483980510378426148372212713391220161713519615068179778211686912724872790161066989319983247800340696691753212252072731135307401389792050415947079264548105815892175883702207060764626723288816046544284105770953138225144396205384622292909886423083499943567429162415359516470793886385803970191441909578627521654372079577101960392001637945045637556046524974341556931014444338316884782734415280036961871308038187290485570242856898379851398454623655158914852210551815161134994248691421423720060335150109415363971180418346975427822048207403630441122672261980347310179004542470389804294140684263963551017524499089625785078001744210768285898913888115618491728127957613139957543000031870326926612805118491665890269105347733018279285802631199032875196679290780580716888475099212227856146608102839342083512376547595330509108277461597320529748443233226205285758127448590532562440029795226854691270601821453650693194525108728162500075413594814573917579412363762335781249139657717249351746509952757769723626038945768417014352461741779810181271027996291909868592954378177584658491815416002198116930737589087266667106545342987686780307658596056712934478751049933001421767452366616257255114480892799658510595079883121737112085452387974104830695626747267097248656113032458047964317921907823202163334046146277088798541797897799915640097668792096225015332388542598228168750959690868971580857620851807841234746982961880870421002881837017833691809275238953525506160454286179057813872737653145460869845909308645818009742531317098128799748277343806187120335275754997143448103136677533093235756830504874754530588901973551037155006819666370910146172958135138685820176316509679973806211341660348550812951884184308476948675851745517778426744901894844893671615441815194908808741353089884638600291423145960183171931183069817343584665894572798105673202895598775680567496603804154791984543460344343270752991530957999658320149640830975764084823743693034415464955039725502666982703670523098759658544691643035352989987670481187700862351306231694934283604181002942775446399996531128177237416739999681955566257803665389754399915450041206890788892756488084829971887950868687960536315041421737718820355144464295484478590941021419682255526235990563291802261701299565607414939542076833198319129835451657549845466158874003839612632123075915525708397389966582740314513383802843529443765770541779084104962689143538120823342775545530238705070078250937211553022434173440514995354783644480585497213567044709239065916544424944083381426358203128180632588227763107384495009461839879524584816760492114364415766084590289926348830129265986088505453413790920597885512633448122185938775156218403583686835003271865790931001246115220628338924503683833959144872892806133098968897763393538792056800998572323385615313873279418691937606579745730821203084557224907584158519378076266285360570015597961378591256000237968287606842564277026411253539577640342904429554204418364562073479566426979438589576358398053436552741621953404607942372109586474463550695973335066993338986068387114741506000242887041753694381769764266779738871515265135535469335230876777442712368276435407388234458388844617084673186117886215155369912231412023176823839084965195816120003115250736873196616173314088631006332876721020846594180742781051528499670633031915790705989875243454044352666319583035459754312644400362449236799905417348178000488591793376625219610569084652822542554617797351136686580433384758629469105793318033855811479953926874598296256040294555510355398965709799325301103908521616223802436365306913544377632756251999777866517210182957381141362623802791646319127743808921995874396414194425087266265809287193186874027850746041074161672420524834172830132360770500568346873055120921922711672392537701724070967369663246181682688115546948363023254560850102892333784361265244542662917551749565106465936693998488782027339282133010504117213811771549634657020350616989089867487910351204644320431692983415222288434710046117737765419269993744950902678493839605808778895699337894491578382817658304829115603624913125142663845570733307128428224295782390579797555257852568119548150199137533821148327227073652427888129460874768364736775741031238741559979763809403017596174816821213556207589571159302488591744638886966830743627352061994325137975155216133869906516140574117726131622910352388402240876116439948664059652450474277140584766212279940419536306195271865953198295073844699756841324478970825936154546424640561385010837508961247816140733965684117107261585096353004283716896406788684209397810185527064720403007168065416457092535507861741442710353451387358440964651704619917458137519619472023436542858474754624287309021218167624692426645565548400435636387374672307181073694966882556734080905824675524833371807026411473317476551971459486180777274162539973194130882793283614026751340013930418738720690824026687949761623433690844461125554435545432282734666662245587404067583322520343220974586666563475575215055730348623292978592133839948008151967709292424232158758662073626104225592087169066361075958643095653785877768188116186392455624666517871790824311869867143891214153890466880421998896973340606742969475949033543121658875705592420644828000436387599867531931135310013410832831117092968381635547020659717747226484448446156786754831925088307592789459307827733487907533078235452527440121043565931900523400458770208171306608941776850618070413595483342823009719681981598024497912615084052421411946691040486285807467680561275669972629982505028984033626058164027200668234806423173829093163645385991191450456688598295552836636911612265672955089037154753150010771499986873482148806234598243375333264039513129381577800552004595499123889158295108837622887573136206877784248921864974683382204655813344613162472153435096603574897950901596620951966779547751495231966821396873926926002587859404984190396822686979506202104773419283691086055380761533666863458868577413053910856928331956394936423368467048119992556623704394358306115135807494550987469249421062511327573856221432008996297922744044580473428655949646736707257816721819322706454203406297207356062337219882993673724503916224770225110182696288397163708308465434577486795514720757299377847285210951405699051715746343469223158927235312025007577988148067185996220687648826490779257341308817262863907614139715376418763720773916078903346015337525509375008225578639180720037853609586702924180789818307357347363930622312766244361629925427423577028334630094070872651448199242931218041696420329898136612912421380619871791563302150825448273074104805953416680685946673285065539010774062632737679891288530928363304991649252111668377758002481083101263335665642548134950469215484251753830788504506605351907194632808051514782009340852527759939474730214471297399022105643632866900922938560513756128186451600637225795573682535103367512273551008042492851019026082844302572355470297298843971209456571420020942438013982186365461216787800301811898571575640519122519554293603735830254261122163249935483427534734256577060477516940529893106509026443310480154494200261860226792111469901141386860367191745077321516074360470099540329473829787746280674145243574984490267128772501805156975943144337290134137304435129027615144450199543614809471486289440502029628172112345283065883572446925707155745389043788386435733665149265704628781325974782456435436257614725924162265389857662288946092965412543902358499630827408118479301370842191081466970921852927801963267481009905033579686575782720782306999253107952588251083809472450598381299011081848455538137060364926192608080214724498334895043853452969754490456069431278020344754029781943752958541712967572164134722462988069032769327240712234677767217230414940787023358929809266391233115339946689550620879251992502080845566089503885908577212886995398866195385582233189157865647725900487192771852441599359598454482470967579714086633469778802963093527422945400125483596314790189833346042093712640018788743714394826373757447344150608468391011063600571047664066014560874578756071182549002500844370713864480596673589423080526152410056170780153840179296240788619475596976374869446564839728249222325750484401477933137489499864140711683265250708849437294109767556304884954819382527985435254621217471294744691565383952890793415096682052274258414998151569452510308548516826949234545829255223496155052587196544454389288316434026054511136984100261761069877937026821340098013155055915474289801288060933141022573132523529952862375049547880094771823682209524574726588607937341859709447918740694549211445210233276751875983010234342040370670024393447670988793817341129944313107827698029782161052315489038069646807652769464494257945502564193883066772557645493780319542276679113493084669967195441850794748849478974185673842802450257037346225935516806011551712161724998690558798356669691354120474078176495970153257669240698267839718838253279195018187295894635419788766514277023323855912431885971022657883256940665702735849458610732964156432650467880103026641974253292969880987546908230890259458937045043352593960589790349061663105765566237742505876105020705811481272641588612232737685665532607745967739873236641535403697369230263205879582365104556602263561231995675610043205903542957421340250302741951503839928566284757577170441308424537588923516612296604613731987874702381160407719524819554649629877135188698531623252721188793965176866800237382555970985006189267793692819951918870664694480026976930527253113305964198083867023328798772494380227851371993625717857767471492853272335756885987113250320587697143719140233980451150315351196632530131212568280866747511620986147991534599826632902193128813596501516267506037940232661625534725472033032459201121691783155880484902598295691570187069092372811891995718130758359218002259180182614548008706351202862199443669648610384700371448032487866023430377299970016563514967180339083786359471984858998563044994741012302638629748273324238214718201709187490987306085128027507279021767224021237441101060632414659639325733973691821219855408381320225995788558037821599045847861332833379901772233247758592679784044257915866712691615032751039910796709020820452262934056805079099922304534442555056580849147479924996390732273867661111262548058270746753943021924944667486442501626335146783996087457821189467176225018809318219161022676406701378821320704027376500208309792383751371570943437947893683334556850804486239715433038982131158371948303471473521315963182663186542625416491220148941590784722975549613233073192796097682128285525558952983959252450044042913977674297648921032275366520077572939328802260363457298542722022158759866524476102845323795907648905057494838399536757661588582179992052433078728239692296354928619939927489350141370460176170872077405967788202616322950143642064854532286015502340984321791721575655249759615089292586533926389817383457490051932912159462906658195356782237311446635001588751812850327405803870704566314601233886091957507258323043978304210106472804771042511934582650588514900952197515526609586905288425346917792378885269367950120381879376490709740400445142829767906394391135881057534169627705536370331961219560510078767681659219042728268354926201429108617611874178337849288667859329795263070011893801431134683225146172424918202171637157509652984190937963662456545649266116789519677205308284213289457775736071178437240435690701434807075795638256017285414212013990934628648661517332931154800432163755598344440720607922617749186998459951464199475727724767683631858420385498186189536551151324471715381646730966018422713878459543706314242354829445638407743838363526728603632521326159149648400140241330089926125023292823835813541805699026094792088778993624025497162050560314953802703046180797213961709757496225178183123780250603207997975749350618778825062799114942166948992816176522452801482809403226766093945045531265752691260485754341757329863755868591372951484403340710208950535083356931652027542629942109728976952430206105205499412531483236181370605568042759692690562948921851721021370492448396359803762583658375052414659229121497170543202208015364519287278108211948092524797261557991263652586272838847195303289263393190761579778098394696777715301630934927852474774729142964285126927574316396898177698853112060854872386866147969788676977733358367274357268152784743144126257539841758997428174012849570728141318754847620401997272479003451824357527589783123134515926611292142034139593261625638528015741429134961180815385280628509092124312132099283510261969562361447957500210590627838468272618740198689772184448545970332084446954699567320066831111903295261645496684266364394755749510869450188010166204639527316453913124116618274737380459952993172024602370051159122666388286501377472168124444095964129376283177454177141024807730600732881302743696168696912210737928201939174423132477450723306726381373736329327379452640782100025334206388304318295320044319693707473819240590266099533387763172265720246058710704533782555789746043323142033199080983053314196444485816508521846057851805874330630671437153244184401625677355651619151235510367501147729920085410784826715242115676256618463616629470790052099046462925901786429551462546665101248835047985222671608708497638416096948239240319405353365251221150821404409052548040085375172922613796610532225109757525912624676853635885214909894609467440637509358000766713470276945527314279353488037891057650600969178624530406025993059410349255787153252929109597465717360731641476030033563842206383594021096492926247155144654405216109551508137210468066620955102192623804940506659840482760176901693026559800941719633634272219727443851997693020916739331529921401944682650521536738837451131295955112255839580298474355845461211782782270983398536168521152803912278690158625889334913477609339462217003864548086247487006281591908971405066452639600909312900395722342781117036200299864974208474577142216408643910182828122858975987830293933778393387412997606109058005767454492001244452848377183718580562319173122400243558415683630441078767355122114534940550303025407338526166992698619465410062274670167848395976351935280741478632170424960165564402727730563872283950031164407148717779216869970282436432616767388747390521755900635937684265381132116112562511420901909923490224491440085808812583012730993231743254013840517794460553424077781991301979922274001888033926951175154560719777799635666552091221827109642946157142831674594467098398443766664336153274784124498392988675484516123105539258679331524874891663982770870631189025593244695977377363811832305816331968208696319410402575840884462925873226902093783678930612944514952714045402107137702390642500360880427060388788818456776741396834176314036868977155339241132160052959856205374656817283828068085127422759188758885536932258289887160064534511581854776228088249765213112647760450806351906402395563578986576103050329157754575852942199664071171693519971796145634933301093317651605801788237287510687639070484071673687061598675312144245376749025894259624731291336124985519627784688456613119824361493811915486222950036811923211583826152102188168154536324861872040247582234428041343972337540565039837420271633232983232103683312095185002810698709637166330106161928062215044951063441368974282358593776845530391381414397631874286932553422187400966857720484869619181529941985644635415483136531208305925159421674392619629205942314681199875650929303055356998771839088678022347347576830257098394106924993130248488495017718790887542453073042930741638311709289823914581079444511509492394363735713884625413200416077389415356039880478372774196718100440081606947699975670128849030509376863635987313944889035187042231810730699595878985396470488288944564353224784754320618875916169639203086784041239330047495962577681632711164437421986121756903419802647149887163013827262456573014082366455219859484656349326678608855875557991884835643293568950376593886480511998863125856937687813330864264048173953912349400115870865184546607079938791855148587412927897778676976425323805627529403784228333818665302921535427151843267649126300871013748635495736234388273029645744922506575559260691818217138303367589678192363344833635601163483453917310834496633629722358442596569201963595033302248872094219974747272968079258139814454651841183658004004098581872469006987196022182321844051380794014540879941924906031273293257977526077218200451058180553974037235139501861945692376772430253974782810495512318247858757406113920573962331060107266693780881512759522660221649214293673839521858358808176579014546308926993942187424205879689520017126979375070547012774901929114007671663056096367911752838786516308302058923100526130116748278662025330858566589692596454531524916916848678282428443365683975978584717496840155027037614728009799387637547103867378533041198623887374454022870305189380381918747162003953112607622996931774934285163463866371695350670954701752733458798381112251245942268971832155653585681295387389637787866296288906056840208524156155506191855080970515638273423045658297269302786224104166341921920732070842551441552429962099889763743711283034846568540020522776797403241573270274386238796911857370927334971582464522870880761527053144190364702217430337885801341640103690660393032507067759085153326381447136171968247575163858638749570650509599685318705546997178410056673069089393171270740231324685517290832247056710991969500638786607970610092784237904628489708722785401625869522810540104721096398648522823769397163592310529257061934187046493016204218388691353341649274722177077112973712542789845983317292124464371304565289380699050231623602751542931787363156785093421386460997482629889344004063018408951357436875665812767603820305614200603621301937375114717617461860075972532282931071822154115059251707760144416145978087683325630214802030644880016991676979643772433416016391209099301066736209104845607694120572856275521845626970224715102861650810242996668551607917504206071746505555088370627947112985188335953717001241835691912693411537890511086766964802269792352984696714076993915650515986634745092974596370984866130107602098005894947478846118043717204004989459812913781420641299287351828799686204038382710205552209391753382413745220091992369900567931154295142339230016429323179975059024757278651898337573897738272045175769965250734163283845320156059444898063788713325162765756354610286257726383452246484869784468358845818531247791943444689549780737271628108993563211504749674146119466981713981692102932109308218220020295435679834946760866455942421540239254402580571943134110302477689278075860535648048180343866707767502707695897484379835677941785838582517694523416883914381878095367832751721992537500238154321559470041947818731528139143787739020151900514264314314370343981258301854235359011272608946169504551222342064101477464327022274574576164271217988453015147587482136584184361323489615003214610357641985381785158334682035363748155365543301791757808357086056753948012293109265122444012131112590269877132920277630620227081473877319810248306405415426713358108994966646144481844281195036355984711834936072438108227883706527605226864725480547938608375848373444226849448339448947024245018471414082397988244235296834079713072296118591715312241496169710897635416466852948338515917254240512691277884636334926871367982023906748972123377208328819602084568328181835765978076391911896909439685251011125207627634676591070178183599029650213280340782893807216367119492584002332485589497594391488892926673524376675533271798088428112868902969350506176792560747562991491091371758673805128274629616925925779510342346547159552747200075129125928766024176600172792068018341713028687836621081685473228353681180345492732117262086831468516826357900431029227962047108530357308518410183591061954861907721437931602359537816531024839050945414223612643215854370069691117916432759729910735802476746025661770428565027232079220517675881916293291453922719510241861657186715976231653990184765017907794033674501394688897567943391358753460774589478956909270073224961143122037501757925773414387419858348890289801204404439683705340502732702004231545859469828136212293711822013221066443864354397168919417697130576448446597451347028169318893782050525395549419928765400881774674970991808431213346021032803175265793196823647668101708241873806557866946396954855853401775219053723890269454500363122573703628011225758128896967339763375896374634651916842704180125516893426843609952622242462656789914127041575334324116622050394754611118807484582794935371002170050716089463631852504562124502086758932742141440123402659715913696234327937017303940393605479285106258328487601375676485010788329585213776914696093374683704751118907574057015941409448060581171840728235797718516539822944449293949913339692273151487932065046477618793111664507421389872642519146576379141717447045030083733562046183635055081327095676294848498291130769346101159357666820893082172867090887360321195382802073293781289197312321976655519035352849921186044640563707681286732767314672462399953211631658591888516370331446796807431840769532919151709586342456566162865531677953315861853166104779380019042723868195302408660028150877159355052624923142779375536111723110092165748049041325124685125628615382983898177145109584326148656506142319434172549651070503872148065012130261911286425000441906352475029662212026555699075037361528885457097647398734738836675172258245141999559527400403422261919108330003815840489283570525419653116944970594967902590872740636881440768800489464324839177830520183386998180316053425032882085169595490507142461922638912298910241957141964432736847007943456476689819635033145722949794011606719887963920687590024432824801913764683646053102474865458657000220525830196100646836079909106665534187020128027892581739775928106843427823756094167385741346952591100234693206122979561736833448121634316870732604770767257845106563879220772428116340365173564223073410056571694438918270934046058927302858163647859828513113408501052338548269084146137768944285988807202803318324906433238554978567262579173932202867678897531832100089178883373214961699025721684363260406741921757336787017746640751485236911685869868306213178944138502685288967841364166841424573484790883619571234390029643344164229269657055174905140498777801174447061744720517996067301739105340763370280675834533168159440608499338276548303165868337550085912477280939996316234731805575496224842758186711663209858130497300864353678038274433826856849685397477482264572132813746233827961532269982655186810705653471973009062569188591272763174473036869443508244535486733478257433234393266332938622948252109934545406016839528522348604988124579925922199808128567050687707957707990836532538067171419484148521294039498792207360863733692544021072072464147349865513399673416898118670274103786905284253811969694087833490191571490436674053005173843571650264299516590278053771357270423823292569187814482078051791275214960211481184140993235966697461116089113435058649940189252873174119709411222790116941029988875413377391883688374910793070481466537966720822517318420954215620919128403763643546946429175653545123786017313271928292391186753097405560969552173635819606972600534738382993943797652256755917152875057182517650570001467530946792826232051885136750108904942861525543062436908460370271146143405211076584702146267094202619964873342586164992267153702813969347619068600907390233115758472042227433043844446796385208332323063477279836603367472715617804957799684643076020702984343328970947575370817168827393753659724301135115329398471029443782001129504666637326389927849720231739668789631751566691014113087904560875045940796442136817899193759377697948128883992445299684551641292857731029231608547188119209611568564226494393137848766514942113338128900297338401687986728884043665104048486357576338339531327236317301595391022821707869005691685319185838104818541171239724946858134668808763397366011704482165232160856218877415305164591974247263912911057909216464363250906990318801007669286053153571231253249329762984573785965753547244290349507456317015838022337785216732862595101504307579234481246479862015827356453571560549067545679535828011147145149996249511577583991297844038826515962135423274900394346517793008317457222029429530471318361887823571205642834133040505110728777937803657531530849024308066083551306562955789392638074788603310255330175309511711141955351096793644423645979187743588871799927031130120550009082182228120154936789657451955907385583029162610015729929784487102080602635972837262899509398222543402986740884410140731881191850082349044563387836409983571795560287861615471211428190405454942364536691700817043458579858997961468392457525259051697641406641108780271647541618440589590751171561874490260058861265638358769549065066675155411200089125231585105297538200100548091453883592301970714927288686506857734629448252592821907271296278169909219376571662593519603904235369487084082900515389226256491144709178003249590415711498319594809869029112552762486756136254330013724071221179364123102685950212491697979297660666641728829385935337231650401164145248940320043321749623603511121941751923539615139367320337003232656629748175906736383373984234882868367169916334925568230565274464496912604597050889260479750408526281510868251687686027305214564841392860199353704707355685707096045421148564166803107890887410914330597187577277407923368954663000668403685360330747264156483034171851342749670866759617673139259389844063236559844607459989394555632892564386599643773633088237817290770968505843397642401095190700236770041057445145129916595496121422306109145055631019623572783023246784783015951719181193424011668047700276263942188256396317274970683157741635444702852690348666227024470682373838083491228916385969657273889488018373140732066775189032423205012950844360107366211266994704051681615791682725410631818736032486385565714013418522108955871196473989667295457922722190904745790545540330735357195478850037422598462080671716523920523289923508705346060062972037216019018376546538626440707411853705513323336071117581847175534358691899202848224213547724268669755423936265178034477674421809368429929440191741341707574234554726470118456457089870590608598026686861682322632805278144745707128340243760090546198840347484712241882093953914191881819614394307610148808337743697637950588400762377930447599153029435187800547089268187254665758303406305142914532968631370186293472204467890662398972091169375959294120804108163480055754511915700552823427497603283724123504129798494504916939600278445326414955726155931572646724301066645921555510040737879719242956753856671924596502750911916395871830591782544610494876667608013638918680741439340608361269304726306008273414903452751910519525429400439671047184416880875131798925688427468795627802445225628620917080244979330760062560145691401303906602499613999934950989902586519258249815088492376578187753675800874033134527644841423432576562881898053413225420147030867500919373350772908660148576788546144057356197018595425428004716992653851692874784754986737035802131503538061530018732486395990108289315165500621198856034773030689275631546388219365469505496071540949811018118749160094749090356036233242749763919801266843051097622011741291937739387771602333540680291937856498459537433428912289416848878238189062540467087558076878644255344953825376344916517000983394475401713650102769648282281498906445657602728277410612328927518200785291285477326377370740470159399277764288470854658025603726334530754215531259901384679062515098253466884373918788876890980402004891118533710343262143428016534409223458277511923604419896696003797567776646527800307264200552791449979621384683145429127605614561394391907977869533589952965831813729502746013431195287066886604933609729139026520329263014110812078898796522719178395067637623968374726392347052824058587626169383512997894150881432122401346183720303277997064096453316265382238225463695004155830035524487738492047891924373935038729780374293649707869962192901688825350300325285878244572960128350887009981150709155191538690564502745557118700859585749002365456170255864715293009158418558427236220809330180603404838939606796179207969593496229895064890677444601640502639293170012702138812989020888642303070502111884751142312364170598052578652672657152925768473146867130140790783321904854818806549332413748022342658761185912428574377813356509962107954784613113294876865278686318366951927861211582656659235875723337533672966113450352369588263809479403689978857158767956596443558443757710628720830143573769499202742107379214823350091410072193412489394790515805284329081127068060119195939961299893469046706000144637380105127774297263862935531613184135335187551245167111860158268065848726295751549262964397065127165376053782469470895173811192900453947840192478791965601200950182108850571364722442322786220100141387210989793366068071861987486320823114184570807097242371886864249937720781609291135124910038745461556739547061045564276379368570056928271050544150123429506996721785718504083762089583990085416231909904610734141561676128592975753346681311353441807637268509964716544359012811661830447556619730213919590572340610675856285264290668035297263186287102222188037711877420985096015628671044389284607544681252023837109293903823480753149388489958765373160427401712837846858310162695748717630918781989631995428779786954948076198281391651785537842947252360440621897201295598790235264055021851588248221311915844937197738556779150661293211620224167048968225064706418597490745608863844717787039916810293192278778670781586758110307182660308943166079127194779181551789234478556090527931784498754527303085066555188196479631359797356865002042506711155052589957332102680994168231133504562075759865714321868562068889402194082102969676827422789113167258099531311589716720161000202808802994046881666764659700839748698332098173836718157166824632331845993793650550547951636141598812256794819611014237486048562852649802374363652282171777071111620425555262739032828711062578562242125278588342980405048820701751706957072520554870012433906036343485109208597195840023156117871874007152301768768941974046892967951108198548607650491900149793857342467986556464618342673037257705151162770689270741575834266820608917051772413551481120117571224116839023609483863839363669234008859534082640512248670239149177534025159168023169787252687783824150649929042465517483451385261445401147957489576507837424513622401507177209031195788646966743360750512306191621658001385504684681533294439626181209536867695081245645751760656528466105557151336329859995785908006752766844167404972790980391210132990717032182586398553139626543125188717662272930209755052508874622538687443722102791009012719565634734731331762540538890165758955084662687249103340047547405624873905666390495535302488191009493042542824721877531549415431404414778635645009004208121543869013810732598531110928225073206022689888425403477207467587317850326615255615828818911749028909090109794491335051015028063646960303793949291856295021947560085590309372755920211060469287036747607949291898410346519410372477807230445989903908514689108298324735094102103643440480159153823342149347358174062352046421839999723473697979531681555533071683043418144207764343167556060501574964479275708190379817290609711710884844113100760994757251778627247301303502868014360343366512314117524296643650998957555902383952646792096707873569883142897694724067182762899045864006016824951377743759716729348663678324320399491342456601815056193723958978867285993742894440357696953892524032443516063081677100644249504423716748561602260823541551616806431027230601196652750908931825632891576677135106780852925374944674556543105617108763988923912696166441611276541553056347502268236740772529107893121205546346915812352117467339949506186711895631243742771704251423118561784637857100073141953658258397167814373675482286085679829247401480257167354985312974633674198071887332695242315035387396255683091383127109251361071152287915720874969324988347987257436714210634823853362787984378403751850725496110088064153323834125266856174279032978686386328146744667341733469247260617350059609503213022005084562528448797938881836622796105369348294675012772769354533755895786778165376658735882892735847534734576739406002838644822814473939450563745899747967163266295735025696784448869346999676514142453680923625141225060964298294206767686290861489317671952210484126924136406930547529256656702960372225139223318728430600144801103311542422507385458434138176642599593693097196166709352950860403909590126717483453049861628697402361131612934099325649175356043899675870294836021484792951612730499540760243207512611430502402261788915985205377010625432615049921397188797873962715732702881156259418262978104346987265005759755462180544122333855250762642034618258383353653754789821865103530488100287581095975236823105443117293776118472208822713766654751749408718035598956755993602212065432581234826359248425247454339736511473992471592616819229254905037974685591904166979273409828748901892357428508839051574036691231258713144834653595211087931898421990026348988708444779717088361451365237510915148584677871729303404415690788261140826085723059850264340410156055483643897538743423031185052445058993826131191866428797009352674331542204998505737564616702157199208481864721957652912463417478485532330614830032549003015142754333333821468768157623210383218514472531983061973882299040169351050614562491979217087629523872098547596221803342089211007501866979020978503012182719334117132985280673889710232253526480596686923401596106713703605632469156661658660441220875559817893817409671392356333655083658669995872724742588385551599345984068972372307521228895348807553883358457094561044251607317313018527416323854609946891737448253435219613171748194922403725229932862045490318381509694543430270334437020389836511656781742447904951248525806690441419730599176276689800739645450307929251204274866877034751358996355242039732702428393306623013164716522869453529189031315058363526682237090877024229779139741119862702090900204625656282785405845508526935876722317452925880065324533854664426768956288374704656150621190634358230551192424618423380004295947292339809507566612509157816324591308453624897396552151309442661934979249524452366921709029298154929371611385028889861251241751768083316458622645768649950164282503191016704531625287485049028821272313476020980905610643113035252838672462908192800736863654327692983938309875618748628247716689031933369013227673525977409360165429205242599729084012091216038713168009187573933274066873346668373911186551320732170888923911614378428743893598683288160752417987694623020877619693828372248842208812049617080855340516650055739613735238269951099811390455711794350942552126742966739441103659692351791654110195074071457832848134960742641097762225165329143946584017741334427640628442668287425815430303556248319109598133487561851698988323834338652041331438777173492930969630725002289965889001132025027405518673268940554429249676812162322469030453390553068060731868429692266646197586030509095636227822034264929463612453710154471744190050143534926119410533076639411731596669076890749157868049691125554975073067655195664725513131028907045374837204774202556199603329636474262774652930079830023366099945404079070430074907344140711682471923862029527515075300293061762579213271624088934169086812715761172031805012846521881668590672451514237412886543585354175701033799249279206336502628524311538359667703929092845711155858596058210825797900538845111147153387593172042477496445265219592415167526480229963604522595129448036079240535063005969957123779722499867640550534046082943413662202660539918059919620814815498864621370672450180998127674532829201258688715833556371851559462559748757736651737295863530669618681527123065922760082527783742414549304308753244921022146830635003235217939276649958463679165072807318081344998220416656428085450583208230492051486940806050905327472896728908578933906971466167161795389975731968173892406794426277025671409829681404540419888688262318317317326146621822407596385294793602057325546748840792690822322958566494831887850973591163389422898691323314517742914769362179382393881384891431492948036012485883281835636654738413471263086082341722648977542741392747813334146206535007765532433462118199832931015317327314725024526821544760902027212247033879678240956007065818270781108191285520172518366161039533761536431564861663742754785593703304257727398272228353039593711062457397971328749662440618267345206971153014003879232864101022111387989947985119890914389438444757658797105283330399807524389506667594688477987645621012098381279568609819856589640395719050604925696646094466142330134285567252614354574234694102282647525804016838509664352713796604954448765153602491280269800215692369763578917360389668242124679038586520950680813407244768733094094750816822577559101683121144086321487944525394727911754871943503478827286809590060408383498475064867875780732080830104223922938563773356405330925588087628106443578588731812825410830026583165555298920385179322402930528852757266988649182425382506388457589884615060040891266737626027748036107602721349005903778159829429780277243032286883139289968743597728655687039196719947451262827990900268416462194212172264603850929723052121086765052133311914528634594277622006156775686602051494850237261689134244746107019051097267768141905355724653050291731938150929699780646218281486869287896727521770767128493362704144272435558662770932708449191679101167792965936137457153973724345193845034246065778094083254694221606583774044899693806319457244008740849151319626984691957809719723373373891289146786351082459399469428142942208123922257086092209620684089644502695657017401681056709845157715615722991740198492747337617129581634058476118633922603863124494281403520700716498330816473790716989982419906887453898806184178139791587918415735674564081014489130366738873468676670270562693384285546063035997606936663543028999434410720854296021319096034894248442964514660971796006489821046300951717107243364972081395303621909583799213985837822402816831575710051080892335638746460301729608089525176671663026223089278464233935851281489210682895400356093532005372175302163806141375371529776590040093191838030093064067311992985330459854686577067836295128324200477470580322275286881240794912300463760252697662378031155723652996414084352508481022483392226291085214211913650451964571105984630189400289362891270848388490737422453935542757719342452010843298602791146366001569130605217469110227659512175313945084489071570797137652886295008766602543769238511819879583314282104557734944824582795634761348570577443765069710622013290934732830838024032835574115554030056393937881068287274654281356248251324678508324784133101589131325993590359595814658116421292521582355069756855029629773570769451368580437806117921683335497557960149433690579370869933405474677413731786666107948572047839962274660731672702808484179463581937995839024743304267478184110263945201126869099438604587237313472325554149936433674751023145557910390572362824262543409657620901743728052526989690792813074105081257734786414193684008292978823900932487167469417025246252722071192643856296669208325028558516904268809021123002363777141658187963692057481919941446927827875616996322240713216274750218661974772056839685793843088710844460269406865880609260117686075693174057850731145493086935943172168892819893893646602503463272264961277753342978104229029700234531737123394241053750413466306160468543898154068735611710716899930861914158168208129917747644840036069923992057059789234126512967241810602706037780208361480431332014498102979824352491911780567537317018838866629551101045383838831673362924165903942551198537757291755930534957748068513430992732186516610281747929250335902342815474081887038376709811329234093116970932291541586636158775285559278809162341615444432299370306633767010314026120426441482492948781691151456800826224001705231941434852063243856496004159019933277294763313402488429196678463714205469185548519693635926180170798692658267108492592258781320684424711273838806505900818731007933704991343479081396001948138824221824927553325401184646197848629990788811552796468643254606504646383617087598379097218027607801567481624159488304070387072871833456911180756514599981450303137339485223244742055245782110608793745853891259451712662330051901331005538136075705478925831606016735961383154368531120519824480915892218446210771054360972550944481699936592156750761085253701826181292724254128042185576328050648301251221615190651942813284422552035686258730909985769761111102837278851013944775004752329739662685698345269831091165715907835965801728975145126192495302104017057762444569440596467550120368267344016262309699652878521996080002561728048675902187534706616084207206625139245752052496791591481838749352968985657771910986193019468927900952711437480414210692450286125659428550504035628053597059503820073335549769664678194630045677900321240164230824786979820950289679781932827051914004875809907874885904933425075603775194906311549429965360919945760507866755923930805162927901737259335658209903155470473293742455843854414414096704273597943231683416590113497457166865696394911062270203494827484485777844714651931787867551747693222602579836880635286582058668493039285805252034341050219291345738463129364891864293388831009963906642222588624699953455849570375292597526943513397460472149186683609262745060941977193386473682416811095303652986261844636076099057133337021582262907657506590774779168645508871334890788426548464992689970638958515386700071678819878531315359613175753068213973118042618281904633044742608356894085281399542642994157886197931700161496199600233864271966203616037958574206624141040765068042808956534622742276997616763462360661669149517865262839166295858110034843538690563350377436086372223009057241049510092841721825664784455135541963881762276410113628881436113788202285816223119850221273427117499041076920098007724967318880323515747312534012998582632376761021566600646554422249243645870596754794006326664652191706647420276689208707448214465178045289143229220895828096607123312741345223755250417515662538930678081874597146265335976910235494468270323629353530634672122878293317596984846461820516917222239670541219961413415353363178431169467059117844836451075897521187445125044953130115667720017495473646714926314640014164141026509202272365022785009956835552029516327905545220152320268840697246996934980484775218350239428618885182886259820247047464048749200620522614547846884520057002880577522586112449710125106226950608841818349710467283816716036343740453589459432711000707776152387487148582327566644468997047064366187918982857654918745958636378453488970844689136921444361387917083751396786076577752705760028560592889557557254947641502459886422462352453834799211340629323664500612350968426346662223648033490031483537550815527815028124389364101097069538252466452224617279557500974852635037752507788976793284073652660260805057257879261990731111513988958745773618232307160707529261597813964344346963468093291464749391079424512276761946097222020120842050123153010541151893951833871837346888128254016345353348895413009811226296399640584797327845143229482767360847071473793848276907922761575458655477980561749500270030188843269620722023085614908328357653177345754106305971570044270224596681212380838129941070088880410299175134358513098370422808246964668135910328188858283119543800735887762457809225008926658954275282297879826457366032214513936067323094189245946770336033990261099550980703950567475612861524672316636911305970570179511380331530861298927001818690806824653653210452404494890746711681505184041896201163966539908796715085753204440360275478182943036454444985601184706981413636694487973431081174567059346651341336899026706762251309264906407147375422389711298922100258398906496474091292333944309304616537939735285234260281838655155377638736710492798503962969376889745380228298535175297694512524947384547436601784627074170619698647457724620920299570243808175593739101145846906861047169712994497176746882822878500820689085470482160013930690900138392862749617044779801562497085070148445311047295002697834301310422531300680732067839065347162065675009792867102489337245538302734278037465812457449525490912623527747363350454959202088761340148570623346500523224129810726710516610131943187607073547202560549490454219275812163064500563670811267216874374051716353453084099900806963300195630279968532356296354746472506204334413289175157790622801152522906375717375318050461437081131896047910514823924558262945050408261933554706900328550632020794367952963860392588186631032033203527312098171760909841348352333270280537399449006239150310395908218247629561949365451811458241073670034585756274588796812236423606195783088256482390797731886978771341151605244394162614391733578949492942498115305950617180953212540467213925933307074995438170336049532843212159933576057895242904681041583327907836565574070401153666914186401247958771450149557480704889480609782515555578726939710643478524058239321329577285889959512898593457741834635946723332413640695544733652656466128348524063975361005830179755106271376254504079368606129137937244518502755402988336802544565489529183684360894605359939738947234933801849426827563736501512827713738180971667787866829979896470034413119807549032106724566800277595284679569773766835313105408562912755411164309124662166574202314278766237365813662346775748864849057359305921922363924145288976485397328113723176424922075234926180742576227799972514700068296280898932563794351055825335548709581500243978495763959431655990509996515443690840725114441365288571966397145606689596323612383663884356878017712891826770047343103823875407549662427326700563301611270026206972306700210694924059709793325315019265897219154677694996010451111627099217457742108363601679779195009528058835991328981558241304871023652483478200567841240280158368922470761876653662263867960108602132235215224868776074359097767382803210931460203011251180718652428120070639745972025824231635677929182180551519918468387488165645979301588125326598659033018941547884989899660939111961229926465143089875376930979882556756997776336945317049771774201481194834804847669462224344323134731514703203907446145157132142783930240599737057700493366412420020521826901672573980775331594243539725704438008216332177964554080947362474599317609331590102590188069515034989321494906332091591902246685653438622160239096507206383537028035714058074093995641143115761700357836526608809992567306167053572924834316057718915968317906561085229314442649887895342741843660494730275185775973489960155085152356715180390972776686958924281384260694018083080191416891731949321509846093515392236728748993342572682510182319276094971027529259634333570764506618809096327852146955156377636664122676176592895315114175575638157227416708071965113095333014443578529029223863855950113240862688527810280403657912113947779328490703467209469772698882487794531799602683579283567536897359489978511786468704277426701529539792065160494684276569966833491997384121148385836435063757953848301491623369936110749840188498731817563377617013979768894444833535800674756530808961582521538523004898188904329797199435175319898204669231781472604116110036403203873907406168438390218613437040280226814851024141565561013189085560500142833960840129054076456623117068336303932019195167054824728604300526078509328990431975825505375696040424344829172099855603037576162556227412119861293966550511867555405057903445655355967116711405453433003591816343450377007674371042363587492713619870405913867351095580657950519367793381113115391820085941255753836467830096777091901352026427297409381158178508030382822464564742348836190624525165195351527060955650768869793877346721536993814697923763594092313398375057726220392598405465253771895964030558916011622372252492328887763872616427740549788572328572182620319579560700376095198564961767701776038039141644123792118764141069311230481479189053725611528532307035155108740619068096877401381871483311567177773190132346537582026344269720807070286943360722440025594899475357480978357932262775666499917964771378024798619425393108802699758605489899722773150493118591462469888118169529074383854542684299309552136860667870218596366569699948068335403673033358512151387811546122359363578936508851903316234204447872552394162897288926348543088541501171056732193003083987290130969176303385095119694615280926525738473013174140959362462202915908896283290804497434927193400733702302802738331980373414410217165109540112673371538838689728274207610867274008241385823252466014653763306174330926954676424554000524464456895240142465368748191902381444531402726995463547033745570286506899087572356904701027310363124437361977443289453906367843203327759891495490115820973552527714944780382114336783653583555336661441720180256613873484914268834688269420095031783171708918498100490024752642420875472228302295922624379215526145953825545342260500266818734255608146625350877629091156676919129409914609311042889526100646888567635417803629613223354859729456409501762608845259365090979613947798130966651356737422011150418205457527702608580567898872393027544564316718354326282168809790788485410281697189868720399436853703423295914560220912288533928690064978363036650550012489880625611252833533917072158934009676272208667159267881892186322601171765474332363775224422717601730008805817775148137759653395813470562165197265958079415405427584921452503565828577118843206942342035433327066955454354244079442210695138043120503469919797297199606926834393000497902846136372250812556745038610109459984440979447185885938922378004113330576311060350611335158327887680753376640577204858882041772697446228193720131367096790166492082051674139132853042508863764397703788593075143887269955247606767653503031977570641050955932025684207096824941635400833132643332188417133947327255212672067983708616731057379812831847639754596892460082666747292574793780197808661872663424453329450620461878021292737461527239784750733791552413440745547413802038635982526446424622558837363835239909842447438044768503597106227654340489870359664526223487047053477826371823046307025124602351224242198837236571667359223148951822812598200906127247430405810167373493561704908935590091274134913390833178249721608661044008768255711238687215275022291893582939466749851124658802123489881707013697681562605269941105328203703518636208526631326965267137861664904418596386736957334867916025842390406908147527249569311903037662232130742871369340528990606755666096079933993881084144460565373026796860106068523271403577141322078098125957735324450137888973953717460684520716652356078729425067759207541881640492889327850038034227423053315561877209002744679111313927077353657685070141966554371437749808998136791449851730843008455167686410990892730323318656570373714561548813257200126842578511717833324184767818375422738085230517280026884503067803871187254319525067105480243420156998065908795809190703441707984625439558626249530485692254284117099479868250052628467363115155580611975836272482496965982531375472185138557088658801799533464652299921112675514330024947546871989444593151444719554090100077835518709662024194620173239589790875038748590820469016715336269402355094397808688121041656305754061349184362820975613578773573098199393097259559107042048629148705580466743133453567856578705165307668291883685274355221979974209273578726651170264144902650823414058949097173126459033748858615849512656535370653442322604560904072906507047397463214801891869123041687637860200344138096473923421068444730834339300745552714457230107859065882302266248403028133177652205455151821647723995890310640198232449108316815983340152629572918821812106742107577903406196428526677596932685112759002925709419383999754196026449028568263603479088560597972244182176185505403510796756277517209863722233050356752476574973711593493769924647107693109541480723044962387217983173961372539830273674674851707700568691716769898747545584089420143646893929045294565392671170267827393485705795201461514728979381150144014679124667046987823765764506842402215962136839221907438034433581734945223652950257177802937094890775540440580060557911023989939541333985043682381654682048538195482963030822069682943013611352946922371802518382758549462924948051398429930943743882501759233517619267704485322930077571954268571334571173939401266453588896143051685157933602967830438383294393128130023450109254919126918818659962461213363827227514511455767412820326168806928738311113486472552043128189484385952384478927952733242074759794795163914246667028444858559453972131202160757140637964703387710298390702755759265435695255965466238708701897937163177167330245041761033252278660172862794839591176131704451720529654706677951965705299077863153501066849335138334391332744720371055803178012503767433022485294441891054870127657263024679391251511079097757165247463919134398338651885503436684887881929235147591701138534646691312963462037581779355450814007390867694249921108574826827732752631906911646790857982018884335481399539736583120766920272292113406965625228621638975794833013887667532087648507198091753453293262079813912108193819678680339025708550944606364388039115681300190263878890837855420574397576800944378603635521821123632910515063845263387941616370928597838559441729511294835916915340180696083489679688802389821435705741929316862484632160568362100220240549704007075310977692885034127753354413165586217528826215341404519617391181377403239681836702218862746316969757711076977451649629411241986452018312609931161223154901328174240338107313013908885454790094437049549863416275564774922179057720411070025260661835670287365772885828038120396210965405219624415472609378318078610641101468629740946929194457972081619972593465449655097918785310365119724362040867332401034503975052685964396644298599974460659782460466308989602265426622553519112702371364035544677495327279019781696873183959826368949319149010772118524993968072720643103700195559436240107762559653684906449834995056830899693327323925159670037387006153190081195644630459455530959508365051831291745856217220196595274543533867436339762135328471330146265433947663849265027701234067931683865221554134679272542941617677429206939414682014659197996064900129796743392159217744849885040120556742366965632003081788733741279012259778888302855041307995700996797013304576146214539212687294681712087024059625122032679604121557309523133010034404401857502887761630668578232220960254979773858079214980994892558306923360233031831820938465030808932070561121090937933903878374838766337499012359719202504944780138917773636334307663155031462028754061819421962424095215256549634006620491071184753033719770554515117322200892726162316397581435416702635594152211206098299588060577212147456554599830257432358554657239625563595561870006115650849981870437034698250796535768924447651263452150933053809924128564626247000453230016606738909347027795236490780842654756024083261840236886315824012056158201032025431618749733705413520183161655951637035070941788496858386839249240772852237031132360091016759338177339345598247044837044836633838276404202116162145117700412350207193225755740166285677169891629514254976120584190675948091231623514655199015865393243734567707669864359509133987121937525777993877416512910354481532782275968168054876053566408018839158174182544061864203768781680266796835240341023403952989451536339934189206892633034068277004134343199691960481149531703246340715571476624917222770384055406640314280199565582739675930407609448518156803355141728396267018755050646349586441058037702546750733599524984070923328892466270137640245673352352280589815455279863211189454438759176476614735131821201727064486403083872992227619713008899970151220778174982953680399993508499064211531339908434140287769884639555649629895389706679888540323598905147382109943849135290605853048839763491655683547578573826192153376510792281853753907974022510443746672259933652561997502988927548456300637624975331939801309997224805059475206238645173286193353004212211860566433639075435614767991249780355267019923512730921208793513026406529269892209790860537714053620827096156521698069437315923167740927424951236016035876565139915395808951669685681015704915439575632050401135632071219925896476149689410270686277811183138197839358021382900323665909744377893355151395211876408245014332419163130968249118012369272976346371653562356859070301335013835493254846525457675275316240634163374325127014826366088330212852191914291578666689530630265530855282793039205547555911188357678360662578814672660791119299214362880619846952799797047648373402289857269669609821017738481460228326935840519028795386479573765474109272536617288789902848117718215986438893044314537236007431248549070367334287877105621104005402835698095189096322473394421322147078013701910068008260464958107759845393479646710932765344539072315545984999602806283194718780452709565055733435864023859478247044526900177448629469657417543843814710960020052649243264591301156250927697521785028041331431001588057812514213015138811162354145756152205624851402935605711381212094996336794113631129486459299067120841573237466557551065903698213016614108075791366045297904095791156337706403098417315074395899451619154709836548028126888822003146344760748727272150380161135711625651900321550997760759458741461880511331055237995495858241554169947657826558346474657656887660659689805460847057678487384058982316514396876286090891720953486773864199564826559313265814667215123944150558528686954178865434795731947416847646484797806547566701657163097849289260710623470448290771954387538246721004303944897213129353752164192133969328804847084672179193634579742699511405296934173951374486184352430212297378903235042434996472775145169633980663807152225006944099144819386274157482816976418555067226296992938849106725424405909224913294382086130996707809113112450998248549758404386053481416165666535449369833199573234098552452077089943348073665131491816929255057086795640797653236601298843482070417487221556394375934566280145357196967528032440153156560472437506889878532913079055711495914062688057599198556270616563100818554467883734454339402317850990835788590787080647598760607846995923989877824792435423340133385152876575636429581674508230594134277065697447893360106665461508443578334888985677210862201952936909961724232025901054482709329455776127352170151525030426248544930024959814520048658496987878788632701367323173296965910826759785528772023061122179051540137215109565831274456851120173964199524726054558869618137255039510109747449568241470525895293788765821753637472567935208037955349575027433433278792483603165365701315772787459277473158672004205944432997550247220004726402324193285008268263686377320760173251030826546905617877747696528737306976243328524159151432342292388301395172537097272640812080450387310698833474843092605167184438635805507891732465101321591519756992492027442928895220715626451728709519498190463987704313716961156391151361991689011215395490659155968239328842978270803532756079465654624039876347324374845114489793723701347904779360674974607535319760754447439560688498840338555700244162543261130360558562807828934877555164993192794752209317685187159407444177707417653473069746314781480767674007065578394549035255349012203665246659934615126123826258665934759100498766967131474594196625889584354283022455775427083923607324599214258995505197380270474806248147045788799115732384270861741376616857366413979118007214208137501656269507379580859025712405651526883966357089368914749800225230818203698499618699427016855842568295354931928468580734301826109797568210028982794758002485524080060373295111230134446193518815693486312692984147251663013055494353396826156586010133835501060942153881287899667713585809326737974398144931306914847686587185801796938919205328505700464536928215298113575395814205059383496331731599841021239055665691279555716120467514723908368695939806439012378128868554726230495941183286359047344684789164000170300594258071391351638143393410550383358513265199670767710226070479400216398386389194627665924074822347567125577482355067550934140804572450445724928735476434370165522247678610427785727302860366885936305169921693116501205683657056793970487866529677519138669694105697865967534867046718090995468640464913354693803553141635837218699475616669217588272843065449813137650016930232603340858454478125784016053924554258264634413955777734705414270668001358115216093422560461398408909397893594945514287486840905909291942069962739148809640879853125881810447722033527901362399893417439643754008349584814568836673542283490695813945100701893308780228734391668359308569309451191843620582045787535741557604948668671181925218146835698957616492547203318375164487670845121442143863120465704433801654936749380751773682863345055281600103082839350793375237891307479823359172646516345481164749848388796966072005281427886013120052758738542365409741541729458155902061716791648365395002264117660213472051158583931274997370333562996383687169553486976661475075463277842179495020815932308057673412237919108461491543429338685076471702932096391394911015804913502219123066652883790744419384186665203577986440073687349650308329303089085952421934822044862989749953126137639029143021430241006332023544665982958099162205072046869463923727209336936491623691395687251458975641708388906446533588222876431414556883682777984507650869553470297504586705340702078610132251361620068713134881095030596541384471091065271383889633192670747862402987972284253201140691484113435877379469689310055010704970739884545503555145434289912585725154164484587463534786632977361298344559179836737681494033682197988852985678639482502668796533277310801882121641716783210888353022733071178448475880025838108892383897619305272773088022522416911411654503231593092518346645640455505272487459126725795426064825243888359723702423116953313193664400972188310105317524265328345063303712254215784009219630522275100357076957221336780811063981342403005817844731573070851254707917220547735841318382201019727685018555830901188827363641797296429784796843890061875634677418767446026812733181769117720617740920910431835196873189981561025432048992621722027017323647237153233137600272559179641134161392019939840099242922750885474883432501193594520065492026904212452362683724167819348959576492235146630642197999062536010753575318885536336015541685948077163371127551297392255808013288341671223097762743998642196524373265023705913740333080093862519012839520616196974145048072391097176061541763457115531733198855516337653336550662566048996744151770094297601615944695000202117460645596129453769535602847089577054381441711172388834683038898036728709945411015139486168751227806068187372389538477010666213049966061016510949462206396778271013120567563485724744761060302260362372338112062743694566063851316513430613598046689254974078018106026925727573560799385449945124034734799540613885360274226408654797551918709064040701496271050768814784694762743644463912344748464086854114323381346808741846195782119358275954253345805812336150482379696668455714875170368436224802909093166441758424374923094902646843539280571284704038310509562637390561992680988888110199214492578042562452908266194821470240517505922793763257537299901573309231264518678627257016779542019405547448526771237922282313121689016545025901996123389542374781619351501246254613959399941866573028179431455474887336970849932993786978035189604794770401589342513012230017041445371065376658213893081364648465775150308598098158223221951565082413221557810707169703960826849403019057083786039114614486197947734206824458644376452083867628767043893971728703203559396936872624856508628306989175732902489276425509270346194304672617184257300322215759316522533629033171836010535002122256790512406221211487067446773549100859400397300019349782414437452355366686446599039130854042620253679369053331430026087638345067546468761863808986479786391746585255446279709055667340656935868967613608541005720480715343029433883153300532998186782995797321832538798004691878054637045009097164725989071433838143462574752598419011012689018830009250156824950588883834707691603418349672388726334148254096532570288978961920822479850621491087566659306015609782360380185326601348212968632524729869225556336895219764222858798108513501136712878784003346702838000566608783726723376416471659612423594361131368835197890632735383727644638506856814429275659878045511889383858099564296583416171356005013469347058685642393961135226592643750156164236580548377218352850327156155902705780718682584694767062121033693236443298874240606473570134482104990809016455970010466497681743450894667122504331111582982502835710406457736980075610311518786055026244991398241421468719643623537548897409893106943739226086658756713075269418522488661206518997321634638378128436062775179061172816002443103445951990364028355038529083040738286331997923981181681000132135334221200725865066569178739438705696215575778359612431354441536590240587665855364275886940861507242277203688408171354481543352110248522466817372877540431812376642097741751054628212822173074006401502248987632290456610759485468279639976013295734496882771161392456116464007954552084531666660707610807446691731550994216375831251351534198111388608697249669705689157629474692933983630032343458860635921972058788802763969591884965821605437158784888466293220996158055915824744650275677125337883929291249756228441410217026463426495010548937934047395209045547636504984520740034688855057666232168619152650065199802925163882378719800072630074768513950304078607092063663753104571698247443138781933560081805205626570983799858369150343441791700641816801691091709625713698204561085268224170894809912580471096258192611056212525448019706556512590411932873648785526393045974515792641509206745264522432663260486003185401463989889376345086622240996233144366724867024551570695299391372390953836191864816947224573204704135455032479472647577867779085763609255033806899966923646108276810957999765641176560660112438704426408278168511075277980332714371364238720863134975387157023196772882529123182205110843106787333239659066160841513197476433019896874582914640461622565060002920273299850201459189787558031496478498109966677117678699549627317450617224561909058930871393035815890425815012458368677991931394204345102612739278798735993038941997712033050012538911113617020686624123532449008636448485262693677524996651765925559508764668234001048199272516483355363100971931483354128936092240456381584403801417735793987401178931774448256018466868481162438053606778177726735431092313684232018394084795594828041495110256524902770216750503357062718292156922432591941071278350336839589707928147706663123104148507429257754114214729433373818686578146809503618226066367476656442487807532777933246253807450837425456977158022701939890444311353943416893559054982143257278606440394260935545772085982828948831597044088497318421605518335159436047807758633233771998630160095562133523064250145690348057783728096823530341413177196407313963311500635517162453225358110809157490300808933806507178138167497635405633963240455632576648563391167475863087296972481816310680687579391032587967664496406577167599166398814646267952676966707516673055991080040372974770814346274252863339639567156791038778802244761289024866672017166202376557832927205838020773230359120177197846094409410409287062816098085795077067279969018947129952219930353573742725090408842591916058700514444841530542552556785707585808219353465775478293955980624058574545338948731063085107068838844197064068292916419515931825888165504078434101068085317711942549985091247544168688464942365490491660755625775303089428818539873074072932844183042098822904976626944353628531101367309484327903450733557201689669791871416624370177690267336280070036949218532624261994101173949909424669713311607764675863292783687498030347456014886305497921770606972480407194517739139804934806549463228092146699357285455937483750709555431811099890764600630787831947220759167144804110263219139775280984746481265978785541759641033617659051728868172639600740274450288293887059969003331305066549643578346779252201777838248696695500304042426858510168958534356296390068783429704284809168130112144699745473358508226870165193983552450652154954672975369088027662998796682328123737742889891682430875118478365548938191598343499343168708693102263238182144281307503700655233420407165898328690554523560182914370677264132660570848661767169575800982053234888586646692632542401916484295150678731388734610011514964754944180506786074926396078721283658407907767416031537395988611655290367393147685380540702988338120110335005345597595043582540215003232127207055579627354941833626735272960013263495048596392959215517869409820535740242764883930056583672207901787363244372458967045069710498946499754233473295017123025508319118539116333097472746943774539490510462097813546230226535331513733574017308282790665946924092821825618878364155261339090500744491573819112260480087139718337510752465624539098337438632262864508308910259200554872006677085066580974375920486741075058544930706289425541954132881685881493111636927791394236877217967662153448640285646720383263125058405360816910080120869278225262826396476636219239791432816550183921919558131165235966337060851098689495536362486482689393200611976147745410843066406028464924657376038597915423159508793388952550541996729417441683505956103934898819488409042004358695405002032880952171576694287154782068806752936200536893488653003839180031829690276121398292602376841423604191327723472494857263978073091994405513207572045085975305738160216102989522696317050887261068719477539404729085647099202835027617156206750656542972457356436281015996031010687377004261248715050691853742951086536258924626649352897983807428097843118097472521347536828684075074178232624953985217538548002187028833670184200970267111015865857009802787384620097469637094751876685555898592131239427095111782396091757205332718143493981424751104962740611362305154802367084491692961846872781617102104192288166893445874600070559713836855772192773137175859493426345877697333884898555987620832944108290265536228832217231176094333843181881268219729520278746490052008590613320952976785692607313051405627339312658850395584049732198613227047591393983512791841820095315336737962619436501287967336742547358103467387536728307123904407555611498602268712604072099956698331714894707265684423616842310966278473774807056178111963317097015893551681677115710968915474453940017947381813282781395451557202684254010141183949976417226790270521453331813391891562307643738487907317077248007003728998594907586601997594151127838037748986213155547977222764911841707223225887098316817731667866219328443049199420173350479350809231668240710649125772565259649309136022952028161056345207767386123371855946780052819900291513412162833720419587969478494372722950025507939228723709956245183465489275330452344574954829294203903690380570030125860786858392670197925175726633184926829060467853167011843096542050700657416935255745373118450306005668028215809996739641507981608303028186220796248087865652799556320669248645278597151551497166989091401432298645445303784187676562312166636337375772649942103925439589060485303890574673681795770560529866784949592266065099167171809374356031097674291889763289835314868892261301341298339934601008515730866785304532942725994196520641493263678557544481559308176288715006663979202915801468441382400406951933716335780938775918286045890325388964368089540803288986802319144539732248302841401845372576904286915291880057390825187904154292147048918657395971601253493801928865031435009909132248574629819320903304114977432746032400681680744656269262644944719229020718371985118913800958511735668205529822316871195124291647716805670115228017604759307035824356197966998581549169946278428043032500536574301001824882772298360279817943150621847176790221879350651017307208389391257185133466531335148457478175601775043952010899530261551919954355296902544537958112560719604788079521922943020517442167087005432334922343082045105660402976159494032445519666650090280325720038180406685707178859133157405086153461779622177188283475856065722225064501598469122640172135130087564343232907335037178530012795385785634721384504720438209541403806492096046225680169584407831779765831720356262343058468280727781386167235697166471110123709602874422758622225515237303928010018128624313550673486268161523077560900712354697056166761819183149972347044117777910472238958457121765000474698210749587081688654366411290055018731915965920902392949069919620070463659223057348768863547278846888761492368592382826732607876920851851650812520142758637841856277534404887644900973233053170632865869249389514503451024457364186809575902363513019754248991509995034893750486046016507530061829648951858792254007596950570036244729372497572494010943194549643086809595834405270579959853439589062187974140012591938084962730760180120410937717537339236352574894577243960322008998786543979638459047896831204910660407672140465451605894209033265260370519586605447334210257725379189141140306973251254052767179707442336952571005924000673396742983460694234661824617294710029952867340720107733263187140510332224253961428782867101035275948666073464951282589988464994166224126585365962289880540390880192697341767214002549446933641753247638180339393460395839368130282621528627259590907020721142560234166858272862046075127994312065841419879092077758563181553194978019954599250755842436190413997394544816234032120734895863479915913439871421336106997599812983810483902639187869048943256810325872683982961054802028790592238317900910982771961494383663336591462843864246691520276123668494782892522576102177615465835778126038991207792869716764222873464788227103727997102931362772178538910349380513964792523839166975609757773910738240935975952857867888497749300876929999301323805664332476213101583533431001010052098089512103116641443534887478344694622667162657585888683885375686948821138641872056850535357830600408499175416437466621907628247397256910893398990146978547467678593289374336814999215973552343204521145234272699584215025727755958206133170089782802186053997463041317247678084676929154605100563434468576348682111578185529414916962173725542573231477334981901764038743453892480874400339388896253488112751033791356040958008187549476736603337326845804942220509377040328440592241064184204412089651463924169658683263897030715124849413171158954640436560935409266748140369200691466752714450770150907343417145640706692914333327446610893623467835000960633777465067402441604063057950502859227644155263345133307265846717061141660634587796584603063242578722113231781127556911936386121275811619554034006201421641065999005430523525998337800292542240091176237383086312026691922459200978553275295406578600982236002190623702573705765474815339434387986319470722058451790282220754340146336217251005843642422596221406254622625411360174887836531576544705271528227393951535991159946990500814513657773478603776888482150244982205233834635793124000900253033616988360851123850753922366099223379892971613125800994799621413578545139942568018078242406810605945255889132340693849545962797050794074895126652887453817157163257417181890335235935482727975068898436505944134719578526884343322860751049632785796021361590742960824118802547600601939386991910562527191700587509865376110254347422076138941494602983568098289568057759865067848692732235955157238656392086740811464729551961849870800973270878709655985254445780331178186795636792279363969797156535886111381177902383192861280579038457433761168892309480324483021835566893103010238785183838918111474606611578206839259846421704021334685614804283639596603678952523447490702726569454001708266489966996096736084929314100098897582404546709471595345788056270554022048675752277235435138343212121473131995574979809748839899031549488942120284110101154019405282880132594313432808960011694866516797158002593671048634447849502043918339106989920805433593518225632354632466613921436820087450043994076712445663334423682190593346407419135738814456505012005338694120674377410264935442914582153396735440362485701488185807359184448746477123338306408442388116045983071091021337413655545943145719925589382539463232702143597164011233677335874944935055774831896119460384915834668966772534185597404972208969629954139005647417307503617883241980849233113955416652203033902882407557017738939259531480143564316584476833229887139299844805148092712137967167466026890398833450266160547318151672877257460989838259248934876038223836065231990483457348466703413591558821273593949667747489284100276106356537721636819600503379972738860137642150418722242366608533320113309037610400473171304551306153162925102044321202786847025545842595007355323675530674960937467690936570093882136946566061726116595810864576106940647735476432376443812344031359328709957284963902472522030948663138752043743455862300733638447033723033659395556120443841126956566898363786186307580008489458354351579892711219956932116708064962220382817661383584205568304171192751344404976885009578567137156145390661403403238568974396964622054999865820484024202938391429448138241218791549600515232994481538764181374464195823105147584051720576334417797739928847721206677537461741322916219153756297528602493412255771340764674301358095757097306895965921091417074326605090285002408490148522150937626523664647948041478877324353659226629315957564845882608257473440517166847202786782732352626102665542346352013128019565238733856768862976808444211413096265108625052006571923244586348948926922549726016403307973448344919916055428797726493096384764666380283515264358539421187391771722712120663771976041140743174523100585916113233264060423928251914642659094150361075216090266805998355358621324989886048240574158338591919753370412180286084082474533144737647404210533604728140408992830607898619282938513726954076327038741200036278292670622748444054530911652089248087484270029561341584865399219620656472797577738126064184456757400338150661799669709545670356412853091718907376672618592625259069642028334471715103338302010010042535585422818141902137029102215339583772951526408528669817253701129087241685028613048028914400947824439722881398213196354163091517846869790689650491266653560108416192339927299576009660825177579599649002398032818980633276243013902417628898921636737071205854982810397676347047487271932512553021063475944492505055696088406891739015933575599001222187399515718815059536660834656678809290658219211650249309873108613397382474830399657275676360304763141185734311908072458131895041647468383942392344513477746260046354839820612804949820615847688979563860410026461878539383104948764849846164037473033409093129667428169592744142243954048241024841076149203208275355164084462150459845756852099258039284146781568716650615995047024107801183853450870275977666242448258551878726466426555677042847885196216220886818880297603415987286551836933987208922138448983466665503411325541320019660706782358205426599147071788691542610316992319693790815840320626125080172490544986042038076873669470577896816850580499524793108134576929534205340429050918783983084429222316182346581702716645150929432622046255530191314013021096491625057197431386305219485864812467964449075765635825002112105607977031022678113745091355746484089947814931381572025422291520517458343944267462034675206590856546941564659099101427995972129194942628457818720472637016768950900971436539192431536625562237115243714162830848530393610368197814355101587305648316244739422065201675002833940428745889135976406240479323228696153385624202288300235801286349749808007287279123856264583144724441781960606105187649050663017163510553706767445795027591721754692846793247707062442246395262477047187643661989556211432753018044635789413249589292587792818392180384790031811349951456711520982473543048383479048082428116395198423510322847721308385076433502462634827702035315615974405726182429749271787723191363426512884502988809746656178111592816441829464304124159443816820970849203488140964899514194978903199436389691220643507363436372010872699726577669216276126492833875053984772325375381072492316207474801619127950306727579510453692358451183318967017477045991697576295637319630543240920312772785657671491318161882195794111583424236545727672358038443520659514072323735762245802255127286306155648586375776183189217385783987020984349937325711744991308274642713829213654832270932533633619562919427623055637109725987872073471062398164408550970620062053712634174165416921183467458113314560960097390696125340906792437615767530125544097459315431311055485306126706900839138910949898184018987749132472206253929792946707629562069278113463555449028938039616164952797116116767440901536537318394826826489973222722146949970686511648347775462298126430597245964294625979907846862132887793122358299086489438355473846718017441646830908394714153627593539313133427628399879884720794961516489677544623224737875666207309319078669338122394490841563394278119428478846082583664313172339380503428090390336278114947664902833438860797775701118885953101749206087334418125059449332325129953217964827221095156257534602042705146926319073735721302732386519621053166010447437886688392515097987193625850228110894192595663234804868692786727482511188928748001455183876443483199827157337920872677251987493321240864542726175832913847942832419784385884364338477633198450919266792203469164815868037926582197732987384939171268419417201156128607934614923657223558473791502351863751280501849199956904225093985146694182713140210326165113839273731107789031690634138281400013626567806249402629107878372446058309991772904226777009844621727892155894863530882182996956243885718671745171623285069522039576689271535480757704086081054845618276706946754497952516190185723940349850528369097566459351841190441746130575296113568012505860208314027987305683861133886866777322087112960560147888579725716521757925287392659369770715240654279761184513074519652785800314898690900726549896203927161219074653933924624625447232700048889782177196916800235021375421575870013086822137742632643706090095156969148435876284136368897962504088564206830506185379172080015556264589358122822047943517312992814151950345433543572016396552512747857606448112486016865691352467330356715620182007409545822800837167947400091200295929571977033559565180678121711020537215664769857019035873959654237839061012750549796280269102568956089787826318122000813550380525514730967084880628905013250190902243474082205156588157272746402824290991881457592689449029348875404502847589734902679878499551522902156352917879879970189218945140395342302873986241786737054417179948992747846884294707417953974217597680575363596233035615735101443646423365021387149560820209897331836494808800785665185735444432899606955440957499765269244076363912446262129380965683537527054471542880041263186033251995444459973381118687244085125523658013290334603099627265195544990892735726018066785206139613366652125126206586855816378737666725324571182691612465307479614083875137082227720562268731603885511286872769426734026489643968898604597675655060938608684275168612533956078043082309392554755867573695348418160551368626591908926898828199256786000820362627831202875818918508870599206207755020838283828874784113159236125475651705949938836804845558627512814914057409166256436547189715665494270306587006554482298280095567337772572596488614087567859466776568568029016760139585151330728772782957731582840705760564260675596040793970514478132746216868801216949509519038387200463059271986975564542030568653848171700484433019002985872776563241857465972233106439529993514069328666163396911309443265681676463333971762986933313364378300011372862114249549626866558759448860048820968571102507737737089434295518856358389599855946988311662546064669027327891497082348862737783998858279029532827300856149405390617477651891741748086812074942005431464156961264054070372277244960871160943654321536266393339049059040096595224728898130984179616911482771611690561851650235266633318132843873587811022828304684502366460641667127329959083287754559000556925189676994623962403410389833895971679346837204809455330846188547327234381935787998571041415376473768537480447975734518962638032584451020200565509525193413929888030222026961000409777083094742399315275161110805445227652360982124010139310249435489992857186353345103372702640638685356326183833472042828178996658564701311419393293923546317624852927831851603916222563975149472113876807579005722211980652712313319340785160541404744398346519507088256191073836286786486933249040829933591407174177744410017467747951671752744151726821491989630249938819252185636042510753908989710731023871724814050540034439129041830576484736136088429572665747591973973601031203476718461522810651699760435322582784436810128515740661878499969833607806188549009437773325514551058498503727187696612596377001320429728859824223687716342001992783149258272767342390961063637838962771347380300111054582988523436475595326846843655928897912211656842833620355479602676865460098074781288686337294630869228726209543554655454335213509228658622271001677036927313928568386217593981872172233380800601114401787728167193874277191870099492775666700495477204326716311365854184748467067555184806803080837231212656644410772071562868435731500137244249553917175925861223117552940200205413719299919053408555030455187671934578221069296940578860569190060252783658835004873057876509121766843737212519058871791211290660350746739233790554085633178244823242568027201707582576978394618081831888110297501403167234782572836728078288466449404657598270710291547528357079616973391513522445003445351802608702353436783856437349440187752839127303930448262823477518815620028241604432086917568513503498241987646506867030933245255829200353555273809985182227087266506823952933727329560882399447455758698610377926587090155217954948100830891525889733151404449009759110466842700007327088188574993062087082451229961710019388312598577581860566737294135838100698571975722313860948125095112822389574685852140759990980717299788954410872306531634986398770774784436743979953396317571086342116301663618751572911940440089539926266413099762920171151644409988442921173704620162044267048607721047559619099100202546656366250102475784044762006719865601380999890163318145922221725584106130294125531458682794163873500202261900458182795049559572977548775484093022823726972517278169422019461620902149357987120515660794376165127961427352745267367419420409447325497672921221345507892603427939170564740486997454791903488975601221501134952787149610797748636784300018774991654312244711059180693014681452739898171848200205048645622938276129439275131873819204768648915617519970179492611971284483592227308737290743541375450806354436456896456758856090985104203024111818415717311195596312251023751949462663913755554135675867784243028645479222259660267157598053816845160915897666180186576674948326876966898535392407096859731263392631549967241698919052580494568474709988878047452571164447536666075264888806091644208628633596508731582196004156373816374596661393520217795660016291397603074024877417096860719249351912657213013313281424229436626305878167087221912312756969676224307525032512620397121118479761137286570087889922774049824293502798404608611231037145581301139171667160678195440190902924311113453410799081948642647529170863636010864609425506508661874073423536190978391646661211976907274728163526102471925015164064995461715575198979423826759882960342940185120078073164068762323913351633389344153296388953016264404272537908063283331148797806004525155011261471020564456912858797739940451532966086494568360943720916331242255035967112239430544761448347479309983811934198317502238432688778027924080615048938380514098156554038179760331735436377451803725709470855813402692958155964419880077760606692238512658534115607379168950602809225010861227947692394064163506446918725299618088608184636994705182758435696589784688241880918602013354576038482172230008977221955248840117653401882226822537119032297641956156804628835025598511714517946624720625466772412025783796483687996682673543090655595979797724912947356088241151434582996117148918235483853162581602805016836417308844850712801573862161308388409744562310127314983325642290203199444477082180187415221249930963434457520798062821033362348261246945493569150954221940396626647810831397145731833794082901161350273078824400399328931455269205198197908943391867952418477078507138843221807651310657247680502982450181562264260454538755221675611545822061935152169715686949637581281492859855258378473567656676210482308434082215021953885789067718493415131209424885402681856505194358972556746040599317339496191838429893344000234828735914232947965209461680109823568434565179120688640463901021339566737850492197606868147671240932985470113984999686248503978445424951072982356938324522521132706278940632149516835261029271087015914920858637595046392149932330673223700194646311899451092895876119157204783341626775911204718855047546879615722043698217698260603402061673566220025910255926458871377228183878945085656668240287009308782831165358127375192513945226769293761112759451629892675012628010400606641060510060768647056161261161903292151561416397714805585914798861661646413646663257184295313732532004886376135439238968981973779971308535553713591868045149694578884678485283821418357959087856981122562684593151000610849534119630635296468419509226401922978728159352109845232880287338431706015929550196037403204747914244455304019092489143305482892362498185715560400882535189239418643896610069315766748681892919766008524518491561240509344301910289905201706588069830450477649338735349663837309725694833121684383633162787339829378953062910312956837000969652532855272612000856194891088146962695948388298570351613731238203874947983645333959952406152338327076881443957047081132028999607387066451402338087077960929464879361075709053458333747591528268877711353189107980287726734061873958861228376424098339176906253953567247460768678416070520309142952636194174890764058225335507742242627129266271593133491947445446545039871737088560537508158157805333872571346037953689563009710977585422389558310560929761080030646588369018298122972453049121046079782806093759921564996150696884911432365836195052374102543142680463439362289320511919803744781282298098893806542716320643892599984131591200229760153696796498659556882192725425963641781183195999172238588427586130368512342068643513338284392119860532594388904866748431548303838063631872752625150910609295551241313680427880367823998099011264270486574544781629914652050913160805472639541694495181868515110267438078570345310832016134472450974677017786004200807427475288523258046373357810250047256695146412052557334358584274023328467905909824201731333770724896041506410539114668592105613160904101183709188354270221583931501142855718109387909167889715042898942977326223983764519955947419467430726977458510764666699950986851002774235829348069125865713210058563950017460828086875041827628727815021875795167357223786156014164585271449218715209707003283901725037300851881724561840005304211238547190931417709835698277176206508415601540644099421887079729027228723182755588114342796710784140548596910870161261104490927865888480933610948991271913016937455691777446747092787940172454644442832406722528272950014985165304378886529810828959891550458743363762959305540568626301816093498667920812603536060235544391787843564601156359644799140058667957065580333757597615029045914578358498685515406001380844554734810920395214399382648487429253500499777105737040911840618757504246896834871377938059233380330694503268841861472159459198488021783748746518076701006915303575104896570188360512204147004092194086412982859057057021533211658791330557137273218300701178841545295232168455276684646575712882323534724940813074508774248278454107763194572098745043217294419042773671857904565058366360768314345317483721986847038501365266757624562156515464770545930369778547866971910517084477665690634023087195395055476033373259825441939126271063196446428172783994716005881023138618116981443127046427058432804018773926510934708066514514827371211953063228972058923128264397829246196151367987583823079779146864580687323605312076238378729781843922881324406089939355567343932927743313943566768892536376329850294378579125200658830028790122016131276459624818647016927518397732044867167530350598506005465118800954535570907438115359938652984358609583361861711653179931161653048003322824959560291951100904111368857559175563437939021872676207663964370503619583308661180523862125608904001715976910696028554621441715114519811076964994138142881313959646320391483429439888333924300141506172676598695619459630520346073574569251512350301150089471185996902381467334379491773663043450790601407408665025939332573829965364347511018467076743220958325888216960860913949334568887575635850211954931090238275305653072747158536398349065476595425640565655499982349478718591502100630828757328507208357919971415712173204502401226580631010901674019170519698513988462309251938348840682145371729613284893106814700125585425847706719750133565502929552980141412371433203774096771856187210658082279771751474109849334910011570117907429271179413019457501179985416679927241879859496478629440416033081070657880008519400172520716185234346924538911520161470649401863882364345954280814317384728028857801014617464596477099142927838730454043324000447426228747182549738303441370629822249300866755672272912455799824453070558946636681783560472776622838000896452479176260214110682797613785176376474447550126883091700572278798650792008389341428387141174536939848312164868185140288177108294547069951890670279723135382101421935309288572595168493632520836931454352052160281243833666026558965658997119798988006792563969149733697016710642243442676861298203466025688498745580170723126673358071571583446385808147048859895727188620137767520356466546291541122536153376356457856029441345046983990599662947056140968506295085105925207188480917329710194012438666361296127324843851580369516471800198037754877288354570733098823219303164892524389239291357179418509160993575157980474445221424439182479265775769227378125832644706412698026705047544822319585015559352004528771547779656121346890016469934766543335409137129501214594962429520103411938115690037773308046560651649117941372661097772467081950585139001075714917833245838049146608802888894926241231437231333362839287794831288530305560889230737269034669830681340893169876171586373996485730965850266140053689022954107117325729414941772449663408921106775086369428674720087697376552428371808363682297822402013267756385333784858886121899335879131487134204619161568087300882143106008166760729495925322837034038172188282751889387092218977418891113887041274961083697397018503573413825844115580696992468822873366454869335759270574809328592195758804097834907144925515605396721167327025423970751483710844449190441075774884675171288137192644033447030937192548921200794768164906650622285635661893532396898969674114741639017262596086945095666800422865375859427873567197808434056485780012258417889424733509671222238367441357008157096329363889118028491639112295489012994021017416767248064327857709617151310554824278881314274763905717939892722113157469072976155295365650086900166914816119195181376747014357179904371621921649813169420374426072393366355759275374326092218781766719891245006683619136017887709289970794556178215284107410427576686682063580655729826538409739818157833422983043562308487282105801966778777290352742932899250435581397926675034406853391253894052394549795291028798937981192924973909675552019249928112011625653443027699738796932249945230385274397897133296203087338095812105973396937776450836231792736293222534010309835833716163719329424669128554259121667525607859243101623273224934545787275070673812187831883925838097656570708445602241741643370290962775138850481359314642661590169488148617602836022913437492023893513286359428729828273945848001394991049585480787906366108203606924966526164049813456971857479790025586057586719145345822514639881624685193449702549109396541385467561736240904354501237157812447999641177682910432083505060844540992842196016629328242413973662539398626922878363754876261157617179823329548537779336872378548282076611652812143099400567529932014147969591925678693754521252223598702456198830592409406679200545374502538052134728200588039569544273989169053648493651645923400892992270979487003086713576145035215076665205858341513995943604743962213948122518846846464416093025117347154020485569967406228206380912975339585991894978883768379059249842807455115300612982452169043870583921884569217957015895295616030007471519826033382690261435610764921170330632724850948200629266823966841908312711212643492203414331516298764654429500700772811447827442171319863896452305338049476506704627310860679114998151588114216166244948765842463485503404571726968410237341333239985359483501068476134961098295695100114343139932245041748935526853868698115561632957907826730386198221821464669323406296473234528149075660112356190124523981262279082866831254390208163859337359518629403527600797485961213086243901677715328701971131640110201183079680238110599097931112847547809779340125475783146841569767658383211628746324863601232733127461964927068614602900432623415771709249632096684248044403108052298137646086963824659502193011502460659629262083233315114084082215810783115427637827485576257894768843290848997787177549619651588178046052922226926497367184557018869952431773492262128044298535816694119457611583146501697386950966149966983030793709979774430381848117190594780443697677399002861696822198207169870419989968300814952351427260197531676514009459337748856608967637152590327139873953619161746689968721265572511459312665361805012911598303471889865545785273220226233520551973977287419815368602581050701142160303618700319529770887435025212121668376713649248264390238445365520460541446054755071076256633440829012287754488664061089772307219612279035033439551847232794098067906029157894229087739813094294909308161043785019222899189885919175042944850434112663051718606302514189797069681023080975325670832054064203642072819828397991062520145630031089614748181647053832174168198226755033548254567267406363021221602366653163837857169750632908107832872475080749408295266305619738142478322423812837773493613811386104237422272458801779540856782631052604732316025172165621471905565091912063201933963539335501815896067602703179323353870740674314717354723533027730981463352254706433671194554076465445044010811649295116875969157469214895870869668591314766463860960013850652280789750110340984191399678361250230032729955166263499186897807122705864913725781226294530033201919730306096693574267142762713630575062343701582404306066207898600755479750614525135854134254233424781565577981108045757011808936597567442374600936140217670498121607665530687284800419595433279204675950997766712131806527541743999053431533753602955591909399422100601356632362844483126502479641347649602229414065874778565788343965007830167341728708559569808682945703465971237727582493125737047743445416146031066592360479070389865901951822326505091382739378665988728536801029670435140029859597854698067598290579540025319203423325069923461900624084252165019810505556309297837998282083118981856393409516336165087963513305901779222722417148873722611892769468770692019104756438784350932630831320438221628947168897210874378169710200405941879474617553739932619457186631706315731476548538798641617120496563396840504537707384867699190829521680052161780618985329066775671964082192024550539606464430444077118004676721644403499067100370687322378433971257504615798603978755061550662320105624469560119997644672178567186554193996451939450125146562065188037245786381111242950502625339493148905652939433975114734754661286072406813768819198654327069554551645139589446933958677311913191978935842257343733476003842208271483338509954034022347173661235546616863372497854382429215008816875673005514509336958077440263413396022309473279939839354790993115279560988521034189923550348343726085085386512625967620580977920833565012007003610117320369532828190328160010277421018707962474789425156172156737336375599638252744977098256169625843335829389280913640936521746577898762670498745618673741265095917463853800908967169467985366437278739578279462375514915896829860248240252101214049525306204441975138292828028106120047288980372555690421094474946954700661100153596118623739597214917039920063438791944552748780482771772106626309301505598131704122453906121526640633589572986241858957234186665238898743259289430646171685229287473261452787366357432847302352118141082800947687050954127296861607037576464224798533126904094357148748822764785883591853124234066059418101870772941688668311834795143114190283333947516936491626940194764416444380820733458047991012448886869802914870532471693724783297156007512780937687271003291455736159874261574588598051533084210337017877644041772397776834114527235692771367864998184611004293275347346075663142556618809848019355503732260245701037528900779880781423838716680035154775314666283150094982719751909237684579378279824599171764413200819388768482716496097717460592265647306495376365437369256905480541588997660444048274998113561055982370177198994605309649303976484463513368146898531859709611262218981477302924180451482724721017684476987745525349998030512205968340966431961655044376904394603083770313764656268102618982310409753115162927154839233739203921325687811375084116481668214173972517879154922578922343449563527682309792608359495254198592612724358908408106302317062409034326867253934621984470556350378790342276579673463457239502180201616445487838034495485298240608588202006494181532496225655296378679359302606903653353656496973409066679448275692575730961339908597632921906876142067410865961606455495717491691994322896516778012295477353082249478191290790800748486484693644756280769936080089051679595216728669872939785563205539032577714048111638195396944161737640901192717277991267937892791159814380891390082135705255888547032048551195379749699810195523188057645244551593511874875215170141221968269027050684021351565849397558182056748090022770219652392846631807227392693414966166204349323860478267760934976435675349238210614188875898944505972195078744588541267863179164242409997941614528998172357745050804805448828996611954245067486072152527459422573945684559742229293953853481109294246580622104336196031885570589360143864439538586336260550373427554438980143287965876357371978303915279063769025203066641945932365037101736407191573332566917942633475689370633778549656081694529932684739947783414783787711385328696398046357382403586716729443337825554822241567723345134113846090981527849051163372218977266979755422404073345932683559915576256272817385556035744612993703031316104123150546995364057773437665975027549432587740298425607940343321984257956461175465966974659520128170359502539563519042564661499018294127151516319588296688794912505177537698061493824350313599216280690450348592963046404132545440642461573796593482733214047319677261356571370510790047199681179429518796686016637930160593971400769639674809887581479491898188150045480534271619299676817800801332828518718896466149731449738699788941646468910816411814344960652810979998528107449192859003844856494000886302567886404181345866518349325966765298595070237781887166371809844770972504892758461961829663459003316079961447215518376209285382477837831038470132977266879540599418920360411526021891555577180162615613293986898186521242516190767339594498532070486219407613850310590397844764600946674101655810963214132793159374365614631481662685982017824782531924283690022365228492556525542828221845561166932050682209318092441528000900109690331154924987564945284695802591090777195614714623838546170789211666143076804189129863448797701264019246109752719161298323054924999947453113740135643449685771546437714097453924696537705822474280572790577639207025768805337575333396782181289109209602065189879489806333360453356067157792666844741927026799283920581293497195394792863698700910039686974772463884363851226782599425986531705861555265498379794351559150032985262581170664045452639778284655510755726044691865797867304803909128979531297839409871202301342266279820985419899762867756687395855196529506636032046646762503929311895024747385120446639878105136603063028192071633967966162245372813350010886097897487966904039436628382431067049726922353701567829073039459186037149612902447455498855100718626296629137692554862746155523345334647791351763124993833618369754285813424563202186961855190280990707963750155645918028368496930055651853942289941286038661306350207822664893578691333336615834047315280366974457262045497762248009958724235332363327450606003361947077311474586843308750743091683377858065180505474075607198874344515601210249410429501916423854098835849427653628825433084006367389716466534074649590876694204375139086779030503553314508291290938885716539630379921121711892815880938145277862911875626204488904985801295620673858784366572800509459674022397781362943638914442224387279674799663109303937844911980243531275374333470257210889557636798706927640130573518866452929413726762441151784940192046861195144781513964651058513650945437342425663921203037627334112386257270911382328019241084611379330385254393813294312857518632227219068656227968586170074168392704220512842626116803259304867303956990137184314085916602748582838520223388313161738337538388103892432464941276744919034807499245270438876568735482677079472777616798108913935990767594947157065066281735100484953137967645085592550635395801011603840837205643600229506148002669959120968184376549238906670003060718557277073868482441703609148275223280379337818159543153998286175968561537266539418069800798735494786600877527995254552495183054515975768723134116146424070582097966390673537473265914208520367605545557981031740283458924048252553558492363813655164024506874087810071263174542833597070124808108343656488782471483840205767424806629320910399366287853922879547391650328071839725329949859986526468696373209258100671465421874863960735875879418201088579503633766332340907037480806149139097722548178478074371749483891702954228434433081111877645043709356893129665835387797759741880017857410173440365828865887575032997677154658041193562667503475031195916380460042301507093946945112337885046307635023944270032077823677892925982330654459156927939579489963256057959923244662685154003260314437015953959484193290031160047436450184519545206451917789499037377363930403239505242150682987972014941855050814727210103844171394572638430848885840646967462889568643859142502784280791574813744860109057607710154273921991713197235232896777614923558181301999065848321619936153644406203002826064611547831471460419092729384566281118778321185603028655714643547761931066442504454745497787952168879290013428552626466842233484153420787650205621935706886804630901075325775887273161608773924097240481800661099339058758338335480885541412412767477728921279988414278418217187506154957235559579871205633986381256217361290305794376893184620257002715325001214902319861228358630875463517533490487428839685062039019703067684824571663402645158510488211142194299851851537032998805078474228606016241906079936283389909133201936086597220004732716503605723424260222971115061463329431438833340165960267349756901539163831532830704867663112423960120707095413442349483686811175914146733383735196919830378534014095050802410563658704362723333470275433286938517276969041788655350445100488409938639028479723925816517361975530302409155759888153503010347144328031992405801260334352022723687575115205890939156642276507336160347176528464154392198161439220167029543665962024175589478624478627022745430557097955443152118646638972404362051406170538714452958562346186643151023046153674517250949287962219276014607132751438614653102118134840669147315576652681152482410816688426114293704593427366257696220273444233825729399600664719971742564534513509358242276430029609246439029432318899250150648166621869587034640967069267373604011293263501455077672345508354420368986703446611188509047419920328881942362226203643605116125364874818563751387580626443237386863272017151661630174991265929331483191336472306852611766754174547978443174626274183519175906918496302034275737645105653106291549369292234186940027471290567961662469103201558687817100797716816108286137691356560411431885031003343141135681686669432530991531007084035963859835342620274532876881109448548476008691956055451217365635601714268603361808265031900403040492940059992684467028868505242075353387625242710500118157941959489118148853656670180082367443795113167806870822442505754416785175413928115100366298655947119199510109311447016458655143279126395583750129733911514722090997958962443106258863446630146885823508419744790530819697541743018085702776613135287769214553925500228766012459705141619284304481557312945430994970434504384465909548050367422009768493246560087687484384844356358246581796118769881779143689779039969932466705045435635193648118092071423031232491070004557578523522659886043914614117099480762418529399059413619267002533797704357001000932693661843338117414601553615794884603546575345210667331804835152937818109384153774436336028368938473446179576245284415343552000612665047710245372375639404874576220469755441092952473987099756834404236036673833584774850896968267197249310607433455202879137987902191421015861963979218417291950935269167298948015539237432031678830492713699760560766050442497529657318880857754626383834420964659276556227936770498171465493242073207088687088694197410310376240050655830344985965094823789101728162600538866261111196246037251957501195013004592104224959119654168449347329760008114801183644007135461608609564472935741643117055349476378308659092199496954377964400661605615527944328458211062912661769111167187899607805144429305315525982347215583212480834392146032470810886260208624404528342918207067069961606839044999880034047754202345912435598503168130350200554342220760443357149787217677828606648008283556442662240970011980128521316617193209187547239235142613343540675780040369805089625955767959202548482290424915518470451963689239291484767070260745151708685174245770980919555720064058581192164054328510816751787714987366333308952185414457389556273639675328253358965915833831700143490397186056066799941251352970382981130112372554316476986485178702423616954036651112010420715246465649403178661671014547963725139186167607045204664356745469947774170780837567349674542082788839488377255163637562489240062766735757052036525376277275072902169285010827797655003421852866288523236523555256532239740838018108863870848495431435198323651558712080117660099333990641223343351864593486439544940155436338492258498498244426879064984704319080700867443905249948397365800958209259192479133149938808153791943985614242716402696519277220159859395058864807474910220581955537739076984398402337795020915997047600650365777313255137076577053864060369103277606524215116062072774543403294649835202455113970518573941114519731265818447265202859391779685992191459243722282395906496822884647421853541842948986824851408842521491328448926824881709007218265229350169391990494718020239144052821312284243644469956935819273880326889248691346786717443416708877818428718893478630573681037285141010299263894640382528354016717220868722158397034099048521149405440768057074392706091417854464159089752400983343992310625680609427511418023787021708080928775944517212891883827831572460343170101459280577645874647499789718651469533458068999339557878277733665389888038582951118281535200094104954797213519206373341212500002383521048952136822402293264701577721401142260273102742260145211660993574654553569891533852775083859483688025423112572477334192837257393117890474182354402167023734874290752276424283042002487417958615764375085608407845920507378191990599234111023965749661523307918115341343991550219238242550825268121055809518101890052044309923024474319330202897832147797836113773667344347530575573133334391830038175279622007749177162689994838685950942741277842542630712336520025679953557093652220918448908387145008132805750931191212470591290363606913668070341340554223957267750540997728506373992335512199263589911445194977268301367823742003375766435067679968170247991335644616930606102317758889758047659932879442929504401890894281868764827024595842784707526011458758968134265719865591413685136648740577608847570535130544863318733363414721497037001314426826846425330256051221225774146473103659404452043351654893934955147177543399342540148433459790386965765187514572707541542673256121098442212060162383167270229041628063202998911833760814710506516300189588364070175845160393538895014627679756041376316128090387828197597492179228001878819785871874967100145685613296626114558427639838509597788819043816199625028699927949245943540362501832932104849147466546145323289114293874369233513886503983455114136127817899889107159838109126960398858240962362933507953263079713350190189221463821675771117864327609976694381572846881629847964722447716241765771744999526393417944617311693277081901749418686620189523307019838173132017097539896187409925738992470445306160134627066444936597890888368084534476109231103463700849113797862006266914017039871117472398741662768894639928063804861267336768213154967959805137320412477944273998401569811511853650091458423340539538572318498381900665062336041331357849355980711756453322129659507523100100406971861719716264302517241606238406347365322262231111764679183741721376117519250565192109243331940857531035826420299987496035389392533870850970833889898683427146568996963867097728920045964307884558244956729358515645262513206863275270984170254204033981144851492291204300113021562330084841474509694227353097858481432795904027173315627741081239261277345948722224718584279069686779297084640105535957114907129107628080101360765089151490371151982231098878542459153260015203530154130378072325547895472733550362698641646866417928287654629801380529315896487384265196143127764928834480544352345209052071232872345715838188392397472101057888860982999314602503466472170910100580892346729936965451295647737517034000635202572605380493123934858074134535574125869785316499343780992223547210672734728958153216511090948423091513816532018086263623827396392212974355881048069808855078909876773465017862438172629319101812030913360812567026005882893337186887869608848794123088541939977433196620306984589330192463732450017377003854843378080774529183828197568913461889968276197917923544071151577835512896482559723880626271906817987564485213356666968148843962458913532579974016574327387418869733438585635219699382179091043900256139665509443300547966019853785049649945887311942307697252825736714292982038398221190562074362498984884650610700111526731314204121327577970221274769565651382356067672522393671948765619027090358408306994267144608784934607251095952565083407165596729542099592265784762661025937993568685294267203896490261300342996881158040493735775862023919414896707658543349173150008235379117163335645557512457147432210747617052997071078678517296815344255742681838669313965198934911462393397749662919600290818587668211271120021044362438744079727123174323002701973441344192051733090907126679848539664923733752707684895594656547203047642617864680549771792869436752772773590799045155834410082383608242943354366016651931899655972124363955908388447532762777222091796727381032923725096534079081033869028514271356647059926681639887863434190390811195581004513922635264492318984113076414939791320961124688257232671902653859463044573583034762735264147267215967096041988623515655861715728490833162796087996261669222000347697383059271623311679058794230501735576599958469779068738352405153999933411458212660296681075952384728383760541444050691141514991193562384562741880795926449551614542676830048233721362784053540713138772720248347343319795353459523543254796123483880719581143809519610392183350332982364737335827987317965007189507323577648604569012264770606360621703370837390681210199417708958197425737123275312075662727796961375348303204213683342573937772480277424809837247892109145695881192940125325785102779482555616450605042755989537831066656164996436627032588944930006526850363595896830402935795265727114469858295546200209826358884830054705625078780014433846427967490773451469293624202539618489652189761956863136364296497335785924486607280121438320980366738479537905275607069366630541036453681814020721081058161610027092630569725806036809136013481409097657979507608051786092581198014073966829736558593804139201781249000191820773816709611187142273411577016510890712376345449169947052968376781860541995463796230385332272938471864369872206130785188532819869613640731717454122045118543933816911534411537319938960298036208336916751654305187880720292039213220602584393929388216006053493412770665741105065501574092801395884156677972321498112378032752348606999340860482832416307048760073595568691424027451856234689247411609795134098101876954713909257985888439362976751100777167981658558012285669335361552686819830928758953114145650994509876792592538871791484644025622998591401204894156867523754729960156058722343525234849942958137618239201094287267712438795431852374869267410327110688514553432056718049914510281148933857465730999918612542092092462885092576660801911071790746751887133155350787770436632905704435905001392518483884992042853147646062791954495026999149728631676240012459857081277169422451198315100384867497091790318642167840896602935641183142350642439428879420893767647980893778867468374262281227359713252703927997346940372622303154307082871734897203078256067393521500556654877986307516176898943346830239368176467954836037546075197889601067811887078084401627047900461615433607018740255503660559812139888096403858385527052985370723756869624375231846457612635924151628545371570467559661311044730453557973774713295617237987379331088243128168950911028162533040781309986608922615400634778457316173124002703556763215693108396052510045527170145140556440705617919855238689513023844330723656677576154951928529473941028500122983300034915771365345607486846071891051520581401190404510808805444332549108031591881898632792956950278941560324862290749984445348429270266349307960193833712117302582018823793411502557960925810894874094943219998689214662953107277049383130254027737364569564382606337029364954589350688469703724216169047074579172488293426934614236245587318575381379244989527631656528902305752369137325707052657652000469652836454094328811975031900861065754476482671222334776996444236865158222269604330424947906530578378519363381839327863234354573084660852321255221562522539607944033728717868076906934846839569831299857935595688908235793692866764234934574168843942292673356481496941241328010864179770800377161230923132336249468239372617612763103476859690738027563068112559640755555330546393516810953423316720251393503736892506471242976499112440931062682106670245042286403001293975860864284726304083611741888432875937388797764939201542771481524680117415789188797188309501442183615630315433507913190707399134241484344866815028246620559728738972803342358414464699992324424643438275079778725244014809305609281022129933096434937940083394441382010753798672788423884258359681955194163688315492404170336080927373282245443895029464756368036503949161917984722329290520263987245419961869737354423759308521098720822450949298323065442344354780661251071923300065300169946487241827126892849447132026607643812808505523206440679186589956842364554946258637530828402524943088154457857156609323054752065766216726533094080615349167724273512893389740757206111149085617846280311151555627230242962065165292430910132142466211443267775953390241832689882050159014904581735152144883824486066349328621564735986664835428001615056245935541035581395455752740927727897692219751410747896462741027576980588859675450173443137115884127375844149632362231991060402546935119774868445633639955390618276248473805656611906538869977994298196263212360071406685970355711567261835515610940075760511915810752305951537066033459645979804142651083223263299933608390804159803457539365000964586316759515912897719500108879948940870831311400349455210605363817107492962988944445202666087393658401335459737687125754107597243540904675931168752881102992150327945025678863235316948904515055852846152278521223139407184150974021904141581098761021223739308423697621576884503591440628507550687687421479395096723353086058173965873084879654426941469418826721145525975648030925337407590906452098198451643254130203901016799519824327798529244589686833245182384210121992579007824263652910080914822816499243011718305567763780311971382732827550584850928861104447192159568411950440233204862704666656433364909221771310862494153811019698246991390191560847852668318701254740954259986712966932174911329982282279183844660788824136132136274504416588513854077980680446324174055328262509607064385795269637258732511204274910921345741108656809167941200835132922971116587223457925679338702596978075748882125856724788133072182875978438316417273254445965440073365932251504890120693775169373324038424506668787977002302555988128422992556446137919130526176680226664102032475829699477350423250298342139576871050817659028887415966850661849565190668793586734156313034508628695704785475556279282809153675374337919762547546544662861840061949083156129677913827407100225614679721537568679726563962557135730910304714652577250179506821941975390891606007918580640666764355122188592324486216472686063911254858007064455969684028000975731776656353724249052539787719449476365036084784929924871645540178999472124016373770408462770238514978945405507492822946524978244255668876922071835988645966835037180986210030282748848445083377335689326027794104444379340375546999756466355670054011639613738465434434320969806612078439288340994839026756919491276221150485976141335239699106397849712585052826275768300030522014193350570262526720148035106910940775194388054198667296632631869420399871228296138599517235697440439683560641191061640408338720042630928747036838990497560277442233428250063020082568856694389377350690643683495744379611541717109258049988563991105289786074175586772146136982754820871999357863585421829847651792552502370853459918513991828367118891528744283630079967109897566949005625720698849929145847649025819554352523057415915929665570275250211910325488153215099707880663070067948524025749454298300104072837425861933166560717742773011443393172476953863963880205544612886858989299715559426508515657046234556385925791223323559610751882901310589620099779822694067484673706302858960001035988001793224068166421150874466986464373580218673424984273983432883066341614999791980347326689968708490728132744735842179045163694293897113681698354856591767625397631515871423027885246150144170776348141588140829306871855693666281421223364157533989498727171663711466816519686865209193997722248525978908298696760881282524748250992813264154894610295602577565889737289405869438964835228993999343080238360212181795564351159596981979571210630137309288192221191958497606357066949450887393035110720291380396830476164345794654659989538678531774754540969817893246947316166726023357455938010580413852637986712329827191963120113887341900016767565921606006357532266906028176703430462796851148673856590833287825026725536619261769520177312522586572904742402418393226950692824169562685809882450729501765613401346703968248340588434561915811369637522120026114495226789890189309154103364944120355731031576791903343526396559900471733952797900826335552363124425445373155383686290486843667352372884450463793977885607035045150536680688406370275739173476444524096674025075269776772570510001116373495969442344343606438332856669906334998025315156429896673184286301488267833931947023796006835136191097273321329174797710780659633535169712485128281649386372282652912030304011889092148098367268906856842622981642767881233492325904487532385189582703136119190265912459532340068654170674281056350585161230788332756009760322701617601602318762409492993882859286159021453041766293658522533796205236893232428762228435006780033392957216537447050040618824832735170047693473589082022090071446205178851562176673248102856124905361890834532722078514847035334023502048039891180829901190242587540200480048783867549584515072450439715930318523742042619463422499355561456884898177831531363616038957893305578652090824205107048579766650717524003035467929346320325599603018653180661242612629275763953902650722591336746746734281423619970365668020330850859134443157389670389577100067221326220940904251473171832659401211794088592231078420134508826865998854596579370022632649606312174507178533674259913260030665239345744746143598515101051532678942024461477557010658542140829959377995034198194161944918735133084195320172550427578418275951529231402141565000977428108664362023605007112640376241735069901423176235471821026754444387731311707724352380396616692473643029899084293739670280291186629237628551034190695373321367874763395477647186073769908260640574803359399344295137700562095718461186606164578094298046047662287473906492940100042567202575047788361523333831830889359152620809041762116243549293884857276695206919126683540035660565061652741767302490563345461430900218812345790162754521573299526469057641790871816181667385155273740677853801349226881685764964697982764093104353152184022078569137447850478995504119685457036461694286765808048228550567862927942347050585648842570530898326211669897281664343820715705670689345251165750268620577579980086736679441666719387163250137539734613269396100835434367911447675581823012723589756313771473989010005409470473643062194654279126053914001635445661599605383661605703954965771867048150932673392480618409696478541728400511616674844774668455452639078832872156827478343808307346232761816068747676883210898243875212939783699793794796420170812050181614520959012738237895950276324579509068611186912182823580380182631413782702492775911315435050688051858177915714318779115697054857410821512057966740284846232450039271699628845920730232482421174539398436219700329813110399285178828435194508397381702574725348911182627510747885653089970677502118513747300114505544769186928082658038683503218403633452185889824443846176447859973251057397012033323055503342365083433249456376314133062628792261064890714440738265751759202001063954219172003818537968408671682618631854157617261746745701619862307825422889360331961198226441521835921347383447045947636537481514530681877297535877623509003519208855491507993978389337415588885207646032760926707654218675137828968207496678800055901552678160385866420519322424942357033410601639931602182774494922785250091443692436512726213056972116453152052402032868073067906977994273027614118659533732950809499214011863844244450528400955575851276712501585016864862802867480901047796754940483941037736436932286535836460395088414449909331534683831981746062234710536965919097761686002676554788175565034335076541574143520746194500347614179449777176883276558899822636039908385861275173260474135084518024454480017003284931690862740936863828950345366491000852271663493165362785267523646122804780221662666727116517587349826165416531120169807451387524912069460144570621670924782022785832337597912955939206050182990379050628562376023690236769966109038364234880929561477465205175328306293966422564406138381704390602231105111006149527957210254488624124437662898468860787090978266794688738374030647451864038605872952175319117981479862791737871817636870030959531719586586791311015886512473566972217169891126133303457848466956126040577016059610721715059587799975378261164472681076579034145874855601959775072549977422988249986535965967494923675052005928248988538229016284782454946075469068411465431642274207886146166214851546643629486941225006861303195610784362231237843261931617211135782466686322835875991989572866156893522255890161569327447702652143927567043621577679863714882551887728251912903075189540889500018515699837635117660424817779782275596087103514713282529059869302169634799776209603624100652435623014518271690589189428044182530968052866911342166485100646386890401673953577863437141532442243970003171148899502884574238171327899320526647193059647988455860231335135298161326560740319585081265953108848902031860144599780195920772301291414647627398413972994188460018009208720344922576975650601746505126022740024056433342665340929146983844726341856924977244368140033850320605223613264804987175715995670154420301037448250307389486730164069448710008919119278532668985930219069812903515548825567563717564070848195089566965726945071925535007047682821599015118576728900382869203019073815561611232923572232537810832002173964656251017755377849788721224231183621103326875589154201622596151265048046282176853824229982247592851150171064812791152475659341359810263749936116698813482001140684499923769559664773569537014321364914042623771883796714843620254826574189704113926163506242964572423743427604718530760838269528135080561004553487159183417095758880395208703231379812964313960664211596435042131710087910314469943803478355379667477265122335374265393204958572844903481142458684503801450203159583203014562458672786797057224449108375820793370512447945614141069679989337940319416950261320642005275707477245967380041571968154117674646979263387532389691070307679733692547498459026237789167431054220124357547964851144958792408548809311025966553470714609363605115879056546220658743348847567453517988437949124341254709809217111537412793962553257584731066411960524976292194409555974134144802596935307604058831248826059723167104981570210954038897466071841299968792768394405971675548092926421502548426352420209955146816901265090142069275032555486983772153140237669719813367130958427742561951407182878511445921995450984112588355895487511233587665540996698292381860184513933855546316097292470828245944094606140968921196012874623631252178678333825423817058519937324956207023443451089741212317622621509158533330515029021800071907891259847617768669093202961357543137565567962917677590690202108365287473010636195369510583578392500156896456414970476441364173603001507563544713223152717091316034440790004639781518929168416584432348378079546016715362631098964056621048430603294562440310792920825385998474682724167439231483787385113086218275058460354914952155905502311602322143409843235730158446934192124422929172226634581502506088707351059733235191553480739439443022300735417396545308134360555378763452520289368028512762851516165062609814100865440631687800098738213006152095491893210561357155494312119169391168101471567849873133999485091935965282130044900544351762987057787062250893326859480824481403105017360893601050043666145010321040646556597841574895948873873855049469097966633592164676585008989183684579355043580406785491753028321671813569676445148314715135930213883313206633487607371839052475625143019270482828483405260809850623669493704680139134137834260256484034697990433511462686533166346263647678805378237542873317310235505417042064619648742908124383858057266920427489949832597701861229853230877429916862443940124218513899964767739076421743868773020781330966635039811648274333834637261464941566946312869903679357747049322569694116436914196076361280350128529159516811458731350191627158918286119826959702356578125946463751186635131101805780992225987281783654446934931176520662769073101718309596356042029034800536084010168162367357128707525798406311996715693376518086772406518808051687270315358991570995412635992256566254278285092511428592319852446636035089010000549997976527784686262116028168711894509589451711198150397345306795452159250843967120321974781672488613270646538008445648314945864204759862617380422102621808731749401991559191927165582302819332791724137799447306613153110458626600117522499608226386414499549046436610414233345126712889542407987374877110053735507033919854774760670083751386868702038684121705898179689637375335475577987370135889865133428890730398111937968676325869933472275762600898580612313092706016000029205705244304441680741164872096876746244719968368827183405838293157816907972131854005665780248644681972357792489470390466712981060303529170613136457027698946379226611979579406024330036565417509784409045977138409115634679369640771250595704043254380767703609253508238378937687630665804506882985715915716349335734509545502683291792488479040892293967659962490239039729622089477479258367525923274671345193435185874527671869020853591858848353644540166016298996717088751279459788815411779541998516297982714413529594927027170993615828082531861434742532137075670625364688914182632958790943808255031417930881082788549554156095970467851827896530453103949701024907125936077879653562980465368984401934199592778414464957724239198573471327937367311746133509525892651840485965652903686882975866704978312269780839865979149061733101919155977998680576885841929196792207045613022837897446891591773941446241020966291123262278269939357272255879117591696134353113481334697093096184041088116314364683209442577966009974316849334354888908181912212363018351984951953005579259358390809267336629624862447980304189635875215894240225056444593098817315373473364788036981952877017523596744975824020085778725992438798644332612536162370925575495294377467204052108606757566198059058611917419540586017591968043620346252309890494535064942099252364443024373778951971264639118555645003964976840873274615081220956024379878350929653434506440110955824525584194913551758491730498932772312078133169482381222124323792949401482226858669135014440386696752864601146085983212127176230791109156778027268596931835595605231390831937118053873101122499225566148825330264548277586501186507018463919056504296081318416251811437899108494892350240925007493505836213365536492900634718363651927074123195441752737766501189357112522302282226362024408965178523465653281038614114723912107650856231651379009440965076151100986249676534125084543022004295135001996932911804854021825033140063015915542763838224971413257405887268142473167876047561511650472023326571043687875502014861644126871917682279573128071320827117573243093071736828671415202689273921053095739851686262322250067652708184968290299635765308731595022929241509797651847938455153731730357312325499941977466346272565322827002366760900671895341821185683279267464774119423924407982485702231637002563723745483693522554124598200697113208800095235883949540450144374035915953522670274139381059314915256948939743183177577646713688796068230810558407296635086001824775856454291872276257140116690375985408223833758634744230639215548476433438575165499807268010110412411084082196394902510824518309281570619910124020491126078318793997991753597446727288565531122603604984284982218864203141938909264941001101893777329246553477461681602450926746666106907780810372684023579819559755143402646384725001987066282406465420121685696647466523359834839039408358380669747096432148973809339695659162511349057562163769750838016766827418490456162655524610504479328045341743672769220549101032724278009047449180498982356417619711967447231607551199222331177475132584981544617446261338260697804734757744285146652198447036175205555846848975499763449770095624374545246600974723341743145234967394468774421888171983923185172143215761013207214311968568215153966694726362922192963827720083115024501288977245768952167868738354794036549892103097729179567017775642078038583956128190442544501816418242642410109312807579565823239606636470562744846714807170686867872082159241642343112164913147845137116726270588466569668106510012577044850213729581297907634767049015747709379124116721434644889842780557326031224299658984080276310057635255737505568955534670705411566906141960626416417553989804275352164066891660670747729003908646049016649120420177989831917405091510848757335803415543218393703473355923082719808811604181078223884889217847989711809471981766341812327257810721228049362353912393051889157258778680953869248165911373451441017703551967548248987289042093399063267126396814857697657875241179796814303682249835484318181091083639143699122974111951767741256820745699263589293545476346621642575873662040521759751979289116843245456079874518647744924428391469278179172137499800482759160583817719018707043803070095360236065870229515625100688856119029903476231889543914969760419777283335197281681312840389072938310377135799473794859169653902048778581153599072506241199738207168780845100207327716327427810877654980573446298764410265969008121120851898292371214761024446376854338980754170156116324845532423464904000258060180684886180123218739351951647705088963290758046015938156635852551910534199503792026165279951808381486360843143494896016356717604313676863810350606001041504495660494271882279782927232052494815562380132185776950059508385070541167323738103638309912317206162119653399068600804568196433246430648891476916214264769294121531716531571238586754717361463528522941025806020176142085256553819163912371790258881604259982255194149121276862147121979129627774417083337790808891688391582104665322080361147976153308874619024236916955562745158014938870991825366201804529517024323331744117400443522180893754779021728564232322545446884296606234125358646395734205958795956074837905635640438565597682495531413652159557082145502782257885195479551297703802173913816240318759387943367678487031622120098305405417481711722845328538473938739245198311897134150362391836613437043297908378195524649099264718495543261110826172767842412922191417249003026501955859188767761265968631381631974026994935984580813739866530448353530236651986564018812245690286284186026151660141992952049016100595614502184441307366502331222777906635228965846225203524141428100100444593052940031343127475694204602147066741636747204236085523644517003945780615617689192526266903124160304577126403278124442367962126277713958013570230971866212597785820365043345188634065145101378231274670449366015607240813759654360707582810634106391305369527827985369842034743907861614197964609860058202854779490090395656003879201441612143819977628797051771551042802695050560025869337288502147674642657699499353094560355396535328522478283326180190852685298935038100654230215055935232526405146941529412573222876556722094751215680871263427865115649144238647110238896227249499406708878628172898245779197566201742000613999740390649363846185378140030870574833622405944325014318787456651441610535654536955722212594879107176665504674772904698118341618884916727903675390491684997033599142072042548538909291620282261500607221202957509879360131151979673692264894956357189100820567448142107902572636450195971950107380453132344896272665275352536790087000643947493389054061563626115946089459202057963440346622651626816915172585238691603928192897758856089448055751358710520349147522770644258088564194648856378547887526643955022506730092958394199102656316651521663893480920415486498391402445157856532585175795613485618428057880613532602811957076718273067715671249866009401535175251355165416656437011840203939058485651459545880523391502544559138090156217042907982379086856521747055667321483011242589800732392309014724179225238303880243544477986836672413475237764176351667611848371816245960289951439035877818921066010580181703229687117435387834459622348939782123449397885193108499614265447404247049549424430007939308105652945406930236162634428223495188455616407182699261046185087222835215894056120237564376878018200088799520564845660994421474479274210395830250392115535376317042151332689318308057564111274000401341640159859834038970209970253290679717154876321565755043743786706631662396860835109534484655761188203297990807629315560346383591219801180244255096504289894740908892503160367455124636616426370017320648695081493933667327098249629571955139984580828179437842842907993653297596966664850330660341064300431274551754470648708779563775338888896665941842026944804438385268869436121830495773005047991401629736838412422830626473565785111017780399481660281836115488124208645083091879355912030494858749552878192684140359696042294883558203330473864166545651002143799170900885028817636254590404989638994574792594166211222969135094053715173691694726583687074637269494544412694532285745022925048103779945727230277603231167572750331956462684858474843910684107840756001357491328952438816855727169100550453886936788066156628654462725406253804345330884033414416002389885041423260428077404043807338431419853430112700104896290607220746009770803162566393611443099993238080527071506554156105870390454496851611339203758169234986559256215223067586005010999693675872226079368234147979472039397142123232421019014843640991339072154059329440200998233144757123194550210140773675645661620524751853485262344068656633061494422231304430323741869368344727739005953167398783743471206995627132452147045514209980938339864978311342448925734757849682445332060543901090021673031560179208262766744047955909407555055008629532562971562727196573946793437262139866698023338754508877708938310881155211866100794164227610439485898557132119217249390708625894835987060171297793384313905833228344827526477901023208174337630621785792954535224509713250600952856823304002124188254240478546630419990710992075515304009086369274023385646496404728928093431003873279536752578556914466561054148988122151485083441139424333005381446478193795585419479778140455252711164138594967477525963018257824462098698803295291140073234708925576781615439252030200835290672817351904110030714893647766605755995760384041226761698771470531625013400635551406167752179706172108578006932866223967685979909179461318651793059886992017636345178813464397756155148223228253604203891706589070168825860746086804833997212076410672996422609336283676347634819398111329991891665983261134795400151137974528956069338862673467842572289743010108734034208614093967484022104626337217091455118365923149748073303700037189041140010706341854938160969263106613180603870949755837498167670720643046306429293019940857934151754162650879075470699753851452102284485951895821680652831831765995764037498278044804532404794179259482624774482629143224450208771888868745096706149435641973529142684773889957636969992146859930041258559750257647714500336952686208027766208180270250243396630239315119560975721565019755766713052110437474305110132984310571479331766641372193940202108091723250678606545346953419869461283819706835908719598791554613620250024951398378613227841132568708005364720755519439585949629375122100337314624914621182265188401816153512425159141473175081979274894383824021834934979929631230921880273462542535284172108439558046554720035968493276658673748314577483025356849332177080874803182781266889865792073705072968757372551575964725726708526562178157146414891909752176840893056419063900713688749738137026761739605690220998714997703705444495218946614766868794013738312804797996616272125051589893068721700717193197755932519074813909214124385637091417017946336147369611042319280781535370571021705518153805980018816172879682463073362015309949455337781474790593416861647334061207768840108088716756316877301269291562266870113815543037608798729658982690192959603388499945453806926819206775588527787489535575313113922562104642861859678908286492592609633291245652402692655713317839001651651459740772922076969575694242220615969581795396702547400335722771025425529345891907689341100063120424162113022855395622371614790855230454733349935360824087042348127418735802008864346462013449587640588124825169276845416287770958083885485196494409319966222210914893735972305461217152072353398921334159344486451018227079945748322970916309120424132992634823564118761553557454649554808025832353691097888831070452040255603853604047151865924147837307725292550073866171233779100213363046363516374192987234901500409741335870842648559529249368735222990949301886925448828449561174014219627348923156295505579940623718822328040351795790800481667004288701832975296493609608609843198558451162546618678240718930576536359526607649832044955644210817968732229891907064051708654546553862162304833460126636398726553895688669770457150868816888458085058643301971289848466818452753928339534128855122134769032283420052554154812763230840854980758800193169639865578656423858967084428682191686494620057900706441251155345304839206201963198399494700807490699057437900344254938270806205224173297052802142773724043676673324657662448606488122078484918583619117388325005022525696032085782046101114444028416182528370737790728491636245532447925049115660617878642342007495153463351571873074910111571155026154172422309359332391790158941917901094245393935340698735123534074113284586621270660933613467495841811919925243850281023521497102852635801873382006222465183565899574079928907653895266129487203021230993971239561590902422154180900380028132364962628102976705182612600022431873204416289271639913834021743563464055066615160312976547424682414077137264780225311230414825431686129039369629146664713308487823650989846956139778574276920565772557792791274779246551812466089239946121142830825257649142056400968569573597876528347623272159859190087102656106840964327939928132519716287618509600553129608544530812946778608247131402023777625575247313697769266053334135442884828362258115726213010138529866236283208556920100305568834692908154045633021565432861008196284218821769093883134588441610917449304890364715195468713710341473337217247006394870667652039273385486267537818633982892035563519226363220505998141547469630972788296259009414309262104309604532443909188286600611084170279360347216822718862428781409343476589437157123454687808342703419379335627245987083609647608574416922048459720827642568507141260637635172740565285085296343316194847074810774471971183901889926789975830430941799858630775351101435805768707789621040012219994358608268613021205405652799907782557375344025740371299883388916477281040716455817030189090828131453793343807892646621306466369326079564293904873280486038437229129490227851425678849274133959317768061985220338901162714988198407877081116998803282752601085778937530558204113032544925448979555479966891794510945009398205007871871225518046427652220187763521853797950198070127840196310189927809567001209816894566036804817818380635159648340113074744013416303626662278290748793788163242466491322157326452018510845078788829774013291296037820876598353135965698879823901993021612919838045277235677867638467914609024567248757937546982644673721317285288203198671531439013724420284757983951529529701166654361082506470189643777042731885224977297112136117717563457291917130548350321346154033898932590864790411295276343608510768003481741117612246358082240216774224305822597655549514081187961321137973924196116103683027997723329119253566359748420995878241957446774687475987482407099194402695899306276370651289225319866257319719951629516623298559382910963083581597176029783606482739434101596860516216075914875707269218070960438116305752049313009657971142445187282093348904463138156527432014215138012099866147263673077293562466103801540734186891539362977750131357084526924756912897170728913736373559826493475118677070230661788736031670002749583144405291574942190991919325322933898466656730523594299454242580976512656794415695201321178206496043990354611096205105340915391820853825753011549990503526360024411287906808670969043537630051168737916605616913461145168772392537827236637133559084278434264742832927417332396146654601112829009569671942071423456397617742299601636458388204019906833167518559839192095281814420385781103433145507902444494163267561694561518337729834256334397100722202776147761672399027727333143845383148836266297548634464991466238452731990899636820515980189331295961027775729257558679119459995280314694565896650485677793706504365603609395665635833586366673583823228269205305793245449793917829030524081508935633307754904767882523175994951807961475667845708075483358074733209688256799470418697326946507131778186883559332678786764038312667334012839774814830273766806576016264576249490137961151625234211207716779912977189031142548976720925120994343108943561852910418631844987199082882886321648943116656695006848539133974736719216766258953080640451709179841156817548589773883949317583603142874209118665228378421879139051904970396575374202790989486244172458385419427895323592763329603958659681377022479119157614428182625234844287262094381098967441010295917918721364587039304072750914012616274297333442579665422840267323622716912795765704498134775353736165915459399632967016742207705747693256022774367159039606958575187878311142320491270762886997172736391405178452228755747005674474205543653964881619696147717038656976788669896473069392214487802683476916417903690191309407964178537177944123176489204792917103633681050158417149702226781966497059860210376899212425261050566371136423539992583856984926572660341730769367999303162787350926802631453446015405329940724472324839625539210950870511006866543395027419921269224907632317461070628201141274770465746430600195849844719244842482671101018038441754227911016741361181087830902444168875606140349279648943619544490753303172322618402851617679718907698543870948902644645393421759897783865322218651332578101315488295093877855948650520142763326148879533850103487440933297312836261549692768415960308332401516384853714803222621584835384849351639495912154340257980503514030483068846981088117315998762923649982576469264367448222872453697352892448496833383534082271256448840058257643621156654798543489592877546316910863244227184957220717259673376632021917918810909727197879614263021346005551892146108473808741530788254687448903745325572251192294359257297150007499014309322324481588303656818529753977521615690446250767940978804661879074960879705749509573191575186725833926649450519942565166311306931159194690636091893369505013644870914338694711685686940020655269245457273420770711190353150973909272396024351326876937205640310614198186636381697756215411732784362132767025633685127035623617630368503708182609372436860259289432745465591591855708538500962882148499828883236051047423076025472403734673556203267355331675991824539187916165271963905532648934419538873792105424450543277806894547774747104050437974664531429099011004663091630677699840731950643216337644060882589473187917088703756128643579705515772792789925290138592551737149058183279820888280265016804986897412596805482604770120152474474090926252986046005142631957315217082041254618742805095643731036837406817645080253911564448433883040870668069232350733267524487658990012661948602568978200241020226546438699726925705069794161611294988859431910617858431106599249934374743221234647026565266424223451630011844211917541846529088373195064086253533986430289212755018452541331971036240838898517748440570510345836065488197998985586653972423081008507657598687702210500962169211651578632551312578244536784395769350432932640660877001599917664510275308079908666391844886190554014675680223375019762866060115845007958132441990426658501257053623703566651299895543837459219844006834431001228065109701184549356916912447452288051441893667779020505041370774131404293655868571204806781603658119990997537110532959497095172293891021743354706257063116770164274969693120941770900774137279337956169546736312340666304727389533192043130029010060883263847985328165631461870646784428243230076438204026250997888684722028566844819695082355706241615324424846219650084578105372199661341712281600425673005815229686490468034438781776771327002736906524549315532303028493824975957019390936799238515629260322207875891408931372977441766750625393589611269571935031303545710334615837201056749581316473713022110102078950728344579422271474927785292864466869860849426621403295485597003019028578551512318445764256910759456145506852974786006294724127261562687646817633508275955744629782428714929891642120106311526862330281716530668934506136766071576602742105312011263560773892604458022159857661903287461305612959580001200524182305455333101527027574802679664058245602505505000751263151909100407310087797610314065401771184970581630765729528607815335124827392940251723730971721554242860207326906167766409020978693978550859507696531955271204418949171438141699354580291654752934560105826661797505361585493150061813286745273096500698384981127313712871308939993916245468696320260192288726247343731616715250195827074401391365883443285290956329277850023011567977824364631995474439295576990066283547533363678279525771427920111742782865585090385760327709820241721109551230759239234935386368808007711252704433289756819346205589715258639192222665877698029359765209426997500596859767188533752643251813653804232926567098020612079128448638187765624162302436036756858078968124764009238577150557661802552255179948059474679971065022429176592710350401804387464994410884936630259455162790975647933720632816600593180736999379054954461712066867171288944347698212323897523623953562516131924272658267242782076233806657952191841416534455890384226733726758511154323265510712554779007667939631424256949726182862252484802485053650403452691679797211518837628717894555354280915603955112543525714528697292026816412579077744509737727086605713509135783647066033724917293262994201179285485739072338929189293482920577894536213318384618646010646918260728876547870545899767811229976268844524252425315639399056093293558088512114984802116919438834633292030830062767474937306893564663880961921373785169527854785977900562898986561143311714699840370378780877147968696615309323208695890799894816676407074341702406748493657380922593577380580287933073228139795042023826006940335259001056165703259009864719165217211438755068994531469602251909033058802550927170517502241311627443974195437952552795697310222800500583280803555441224143269350558244057120528880043357446717407902059657337165927248354668132730800617495148216136232191721285485212175276022254365048317707811109073286083097246040135654147486339588012295893116114542049137229954490193896200391792707213153977897312017915545382630422691169680788826553336580204891969834841763124961590971797508666013000193722519627952588227705539903375062339852353983551509385805369613297232409716594483744858650046764259257290773989566292220416228120879482016382842504513846498026593799125090026204516693872321254269652515724427075559782299569730715494903418872967649211675606654195906650675328904418426377676380295984826147370371887581916437544142061862491291880668102013379140123435397759097020869688578142990255093775866066043177564848227598496816633129657894282417959376238882954729842544525403506629295420699292404483080799942724039727588342273261825490586387363457858799550171359795933817305299553412648102537916496032401634598041355818871054532299026215531487119091984694746092659870717744777327998555175314703348302642232438104152933456611529604426731480917895411905929747738111529518875370280470060477602268305699726499935261237199885957301272988742636346568379572795330091817459629192495283740159114257215623551905744454917823690625740467655818251446693211384115729505043421234686056322339626866434272648306890925367864601355036278227167451170275578353843150401926172401475567087439924666592429284942867109417381039090558860715594377017343705093521833908433345425405634430872921749041720594171362859635583434652715815570829278653010289119939624109534064711662335463242454329711939163965512651935926404107794180014398775324874761852275364371650691597036527349608142290215400037126456783534275138968042775258323039044281767076051901136665807446517443890373209963390488010585322850162605503254385216995049598445000619734099072622995037845634897063257637966496612194158757627418762144911779302273899192064441286857433748438083437416422152495734392536442651224172678618572807139829410790370585363359223592945735832021317230816266418670633862626992335513586981141973922487523522629238611208179919837505811605701582095559938301001578421021245300303888065919572133333012369226529098817920010811834013319970436335566921184857843572275712717443692538732787018372970902805886186140201788315776763206528199259544490549424547047119916684412920349224476036149370266291780824816160881394804778494175591591840697973532807856867625883071126583928798815395392975519854542296667248600326660435392527372095856793324826561874803751479735019354590293842539017803190013539993777688406889122505099990212703011516558128233743090788764594484200929542010109804405023378585600748141977604877496515392843089610562193565437187268846442459045552268253622615145261090074295685772115682175835148912130217919282965305071540917381378797206795716500511217280640699984467362212527909618822064112881746232108398213791197639179681578674763240724686023234398695350990031233894394979049926057568250068892589797372912933083035131860820797656775111188791634078650714483713424579523305563393585670745559066384776216016780383678388419377190626635447638725549023419336261164384739359676111121964915628961310698242402066523035257901210978361929506090320148859120050266302972870223677772035845455178883014890747697751104695729604107936303618729481453497130515056340560996631042894346558342676932935266727235607151907345533370958337227545776374961329939872061461778673478268220702463630342657051546750137514708657805471841329009686664028249890346385008558730207655575443832807768593661557755148884315754698206282705918911763042157043382006036248400209666735793940946652247882564326449436220695011475405283128384134381498252442746973281976646080140970119746159118083402506316505130893190520940450209257010090540031897097914981792387550570345479732923096479244582407580027187502685027255446519375673348351273848831982256516135344028286006051923743515650941833124008973466244906227174048414865544157931809184803920069712450091853191591381269632461120984263552676147317116213588693639481249228573678184283450884374286554827103307929263364041010955839314631628611575113624607796954962659848424345945847783243323354612550941662123411454943188998825704581610993279358807596772807524514509148336952621293185216603702377454694135249806941731577768612324692606499204566080342999453122505016086524007614328968671252729034954425439191609686430390269099038409519243109357618417661592821758425714089656289946105020564701935520647183245296404493596705935557550545939029536451590475539381414887159108204133947399969217768581129205033899450052552707758910712883891430044518588932485147017600507608281192035661061088051971336678986139104031751143397899220648964548070429029987024933558843197499448677598688300096550218963224660263375802461281759385015365190680474667746135041457952419424685987410386021166696231016112058432454979174947050538854363054206551176184069444219174135560900808082828586858367406322325315663923588599467555128939499569879823078009017643583203324301127868476210234228195670436189531803775357098354589403120458126126511101587472732375777631784143059523354171124403618291264499923881547856460506205055377887120486692041059615993611734590973930745925946693664743837836337012897187360575581535894646765717587078109668711523583412911531140977228800295365849166162410452620222884531465332194183267119128355664200879425177800103783812605978014817464467034032750906691440788249920085312769432913477558387566102040293443872832387659746894512601867720887351729982138965168451269934881449447132062340484401361994745956856300432436149659538096643650619119186971029179847460156902342054810152229912340858598787092360083563066962097308774257025538709903997612064801337810852212314911167409249205489927593939362492366043497825510569892232885853307944285915322072848918427224974681134415987624212126698078270918625748147129581208116029133058039308307682886654020018523921457140033288449015057370763181051797460038591588767062421470635364865723568500294072074855427161682363478880924061414560948938496136521310481390367729854530614693850386547318815540844905417378596390007985935970929888087125700808831809258136671387327969420650486692145114865096521014397217729755177819027547261066839887575731435075075461679498291001776544872272480112751566771418817127921832901745319859363738404910387390302501327638200967567039318667550233794004216871270804670405783374767018886980141469137785097324660472773953500315134720312291061576761736661219912651498470993223179046937962773237724999560710063022099859552726096272339892355854004183820370319591151809353588663017158102507050550068538038636646699104296202695007034232973061979614136141523675886810479640063917886139166624692577659651844760522339440109632512096800960311542748687134887360749205120248869401773184334718648495216284096030698982438002008290529532075596360229747316822415190486460201753493499694569302593858569497713843090482890342937781784189315032523614774219589827046313180488170897742499260942511748973928803350719401788217915189969924592651633517609341734528786933168012629295415581129955089537488975739929447136057445714272685114485473415911499828595835390178565820414687399772638154487970854629969025376800675744951116968086773561666957786094467237484743377952396223629770420094652634760457753449106638656326382990793103660680750187776925008119398593969519824939889543390714853510404767091759010412077303536458358171275254955063280471197512218776787438402243880301169259887668633897566812221281129640799028276096710273009493342278625014887232385649965103207128285070482232003670079124713566106413081395050875070456822293629267768913490608890375943225805868931151142171723304393899673563265031046496027126764990659017688485336423176562028624781062097890933071589275688639483659760679205051338689342965573146440137823097655153918420308210890915358257583737915234478174945134762823489626547129699830230856115779719734541064845798797693608690636973492582542542770942565647485222384450616151375692105632677648930343548477537681733524865523815335170898917233755480430395086531625880988157962273991218238232217264701545733801895923229746037339148079241495555355447289066724349300160308703629470517710252722654129719508422606200326780050720643291662922580719982338510048856542720218033064503492313282348294031926858135351989051668129315351499097948779103034297905202718924731477542432456420140260628060894992851459560701932161281540351435897444455632219425012775650618641090967996036884268459734545749756903357640145968813471618473196085581739050841837503361521096117281716606302453202280788769996320056668398784535086540864138339109775224345387626268145837530149928804042829340424219110468548551342892419265710175212257628491203247271774445435886379055659129033132845590216118641062751570617520450791082215196454806221982846314288799578688475118280935339517836901357351750850984832654626079902421306834587212663459297498386798786999638964235500123996599190288654499764398941065476132943310763904248633879322844880854385775680835674599548555465527687252431699754034933325082044990588853699548670808038436100573293748890650172922296311631314937679726846028473909557755476997375442458942091532307845910241713047353320969685263385585537966942907790330711328539087003583294757443023895721089457464564204838783312923556824426137296940353498566358746693642848684470598300477172114223786766547305598773874900287448484079283297808896448860290927472579803713546776083117362262011643459001715215853124868024269630642469019069270733852289270539711112032999576493220761596699172968635347952787304880121106239665086437208148092543748338454615241821018072258936783031791394882835149031056966005190494071013863024058415485761783992281676428706128170270906111621615336941912546258444064488750250610732942028411718512764339377857921471045775916187704714899529030483392349576999564607226137404806673710688361150785370712812009449346592154101945011038859269777532296953758173679420238759701427916526983175768697613858313383734770524093871037712824147913395679024651952611789893437097052160928508492104580167484897643282195184987462645699737960105136542156060233506235871216741762554016297849978843310713287227118959949075399345104926915078510284183704703350814868910609691740442640414157002330002915467197873721828131972170065372528877550764434677905766255588775221681795701779521907793940093982294010028957669558329536510000537886013188846262041170357911280636098210495009905355018941639811285188967742855088057714223133321033610767549722831508602979266302720816742140397320754358017353334378614503523307932453053635139767354584026008967914983703617227015364959152129650107055652777179174352251790345443286860091262281853798537456820466117936986746121951593212272001224198923650110689654093717049130244821537808543144996130482676845435190250673359961206231475182626031906712329046248098545370836138477097589202440758107037561494129626535934922379620977850835552458589163284658999844306482606707768808318645210095454588625537928363020501982888802382991275648740381880231653683448482822371475594687986971612434883566356578545017795588731569958015880500105503840403229758436445774965294969455786279045984287445564945912681622638603854764886133259007672838485204166994675542885826544246984406831491956356615357496816676126932253079424451271965668184134810138934795335556562282979826277945219697158783008081988888524530302080140978251749492398833334745092956324400980047756574921024033622995015688607049357932264041965941201089119126356787696543268465967561880649506019754992044968605220555887131054282756233819245792024450496032267730918402261873073451718646349739070935321298854098018017750213326428534918374244216980587352169030261981411593711798054149285370040644857486527800250189209579973910563419309640691377912369413880640244562396216277823012427756478934506728297438840117984620242075488584297656428559607621951445696835307518927107010737411903287546790125984723365588767515540854309228367924281077556350061929919464152658767617306170674183446263998900490615751767148808429059809500531536040166812794727839653449188654848695281221916308764519947068953460193444468676773833832258342789117606179224663482195142928174564191049199031416018060878520804623558481337304653772994969439497688566999329405513899221475056882920047569944394960223774394709536910297328080829160671434066724666702084227399910360636252189030987683152628240556477595851360191773157770819870270756037980609316897089538400537881346177304005229187763179438890106023110458244943036899567076983650055526947583544738819128196773499232044101960594159053019007203255893920535271764011962545115601935826051856854032268833385703139495983500419506088938468061982774874907428171682911160214014341122482088250623557117518537641389394309924974382612140308477960392297912764806886328108972801101667347630061912503666542345277401640622751798397813063338843306290036605569573059987823529586923969925130650513596688672068252127202561425590023222623898411757948842879416371826312991319464008713034341412950963163454246000082650397082482250584109106261864358278417767351379254137095467647727264254391832712802901055759249602041419370373026885728704938263012537537242048098364676717361785298126075440320336003124428016833975352518593506095742697524892950925108967303190657525703832397137287153185089775679345079963036276605353830695664681986901606715075894731796159060746998920530755671560188082555368675108640297643180042713176841039825681664344107432408136046919497466199877280434921789846232593545957437250905093532693046616188388144920427305110553013408463198461506532230891155065786952451852702497086707230568487290545808284136119003050875239016375658785334241002918734066710801519589479086184432411047484852577311852255847438222631213492766319493884765877718668305263908397100544541347944375337823793305723978403829606309428463188493170645371923833775986220776472518256832260688193536984017789237953719540138109226995434408002459556280147690451869832331121800815291518286909441513838960887292344942633676052608964997317558254193033541282036509535619176824942472717901746886726509534672488084141838225169163988082660388746327188573445670690205526842575552473554415646935773985851741357283368508649440772774681174669005002026654386604854123203900458309380159737982250269071999538578640218183370656136105250360637675368954267180137070994129695711240820611578895789939440725458420522520710964991807284026638805800631570897534006224587765377626347592483296545361194607863164061807263912257420612772473821338127489563556242508834917390681115989813793643621725023511457573385100384163369007218768290481511068172446755929042509262416081545307890701402318051699325080782175972984625080677628287281808317587842907933724306899153333972698296307486137083109292871872852764266930191561080180192773716234118193109204077396960975695105424660337994555709358349368618297832816644076253897823264268195352170895833293511407838349589373643459411552396760072340546080920434303098226821938621084147655824569461599139676153093478708956357979815371755554787701793818812941873320941681054680416842336334223593476388394876223250170944824449764354152210705558161917670963320873289974558541381664698703876482850357207228373390682214864831312419314216662370296847954684251067666395106822961503731618400360917724918706083163052616884425555500351509863813160872951211359251860376615080052096663037047219155403936939607310890984711830091465432566214501621508343071431342692606632350599691975445118534171011064014768820419504496058599114012486843582522817720172973378502053363052430834522283563952221121945571034024454478983514118786324360005449914047898509767858473273119309157177276480413917970659217728499646018249066194738759112993712545987141317653500957216066303261929812446351948148609429119117144573040336129188318054036097938669946189202967977291258282834869132018426555596609369281031435767674364611876528820678723113140852962594335929137967273005701280812386461058805912453415502509703867345566066158756836961112603288589038069599817979452200902968130567032647978592620899612408119516760320055301210825340568230281690299005863609119549648848581370837331475622525783945642090017288127503409453147712226655895649415134717775085492069548224027316694416558609049478452010144946026249859013680763329349232995757994251292766057838876199924405719869790050781668712983794920321652011595672143763965135575351467891734544063656982476287611754099886557502923603469006376136740219399165703340894898354843930429757594875530773154301206204375177847242549377327171617662080452309018806789802664428726731148395774032621941884845194136258880901923750210560599164035142434623982397322449414292117170671143104073755853733364252988220889318352807473743068925008034650087272162069293184275590646437536541255692642308601166909689657757487928289140474984592535422513956959732477893078180767026816492364119203320907524304317120279039440389667417291644895422751823836540780618426652185482997558612119427272982051567187562796508201187605197244660407530665365546743265841048754440198411953058297576177028405498025214092341194278584497847929808992634587378407549428376477306248938073456688075885765511312879643898046674864216174968126942839602644899427970788268080674804333411360657813180905663988557550442448164408817919948534322641319900511308322725813577285165500185485350762660664113101394687185989352022013103215754244716893056096399719743289232843097058964742192264121533156471268909400939515294322288862616728912848449548500786532786482624290682518268214644472445077749988584091985717246871410679971722929474455074747081940747348425535786018387654391365946666814353939767684285648214035942915884647745125525335029264526157484930023142423572810670715785336533852607357673260336470059125182106867598452254765601090084797625652069809225987032654372741888708575616436119863922875210336109562223032077317482374757219997235193560364536187664684689373044591577527625998963254155773868962513533480560683377200815681009195767889725491421366853960976986746084985684850791539455561388169491268983018919442293000222239809801885816712636562905241079775345924724249843537414803025476905968025994393783236707288012330100411026470042791142435774877578578381231064056708021427349899822575787158501210334811763114300630308738904426455976671575136171203258823617996500513772636913907459325266435966987989315340841342571167621773439623540580212680204304932773226592234448733710329710621282319374277758953442990039991811205978687093736440645888405301017763336615497840665942758939865961067442843165940098840780114597125833272500067901825205679658144026438915448917546416989278171596992246764148780036981036650647095012349148157915890003033672311603745350188635182318812130910317368098304090401950337709166800570308397764141698357899201802125671544394581250892556547155482052938442158429932672451161961040271445262758164534092672208177811054822068680642778372350748004471997900482988283087777080795502546709067011456355290594644458797990768368718216222678939750130517881734605786820351018352913593659354743399906093692841754282829535184633971560652338045762990651295751026076778115672330284760180457703201230178982764288089529364875179017119770502555312959424516010080367796636708994698686425069686731857762777344420116470240754041800483032623220117689627482844641362887218823032858644791295362133996602216871647536015860997920840283446225570479142391384479055010280542145269726614701691678811869463145860769161584916692470774705311001075745064015517221435038798413298712571935733519036325190601428607330677293897890165405637982944363550640238895079126687262697662132375395916983806653790344817055156638933677774396612510964218865587506834231102746032882055968954809896972166435391826445777037552031822138940810830911068456771559224107772981051764668337601307390095116656952532969299837204607292559169351072132965883359030457705851842276016714153009128028729924348767039972753322450680845074584154201391230350788357087073573294486930230248019986840832467408870636216368888149749822090313810424261201856795512043443261172622952703427884348669192050134318076471378552010628266380050922082943032727505439261546403183815566951851429824764772345998637072880658693282419742184318840580013329227170077522666982177605387835450181473896271982429019572218812207936873837166468969869028826310425839422095607661824155961757364608617105132243248112437933156308984695236719028059419958052984749467633748229867396902768231034684947510244212163791049951534026460684409026801347120963327444208771336903482300255007765813456342668087213017310757679720062096844718405002337455966205293922347361573898483559610332647653697592214140475379159614498382240069303054100939906259147037657893000764163263100403017024537358166992063443083422828923545415403778971680994710268925463698581667922050587454921220620374441480270025850997231036890004012800914804675934257912858270663066671587339795995617561562641253367347877571022161257840780771777214482297202976401757726541779071993443070885400984292033532387861863997340894294343580288929030035596734783459393214598699833386215188097997968452797013371707770858130189919610168830893648162411129717177221903741140327393111941297740928944164288281690352860821635933999195205249909848667674323752288350211157198754247039466482773069703270875480288872559871418248885718498576150416985494428495153790026616283569449193642648672714285898226447995248032519205258372781644976207190676242491556486697600316240762372205153160667527502161558789780407736496857832574367895654229805301382078338922137057820039902721436590087235596004340939675855092954335158942934575513657888812989378207408627106891752287873816660685155038571581066346760778119101539109365999843937096094431447499342116858383887908182013326213434845398921015457549787384562861249440580539665303642016643572371891614691813708864948978729841839227305715650432272342076212187380558034866726859757859936541252075254570726798724789609773977756135370248621089305507323243820363847103337930221648485481758646352737584779386835894169853637212731868523895504015618471670558806833339105172168616672314172974048114080543289421716897219812313601230093973336167058038412394126768879260381337281928451479135827686060133136348853483992563132260478624121831858358118244059993474165888673416510534628255352167854159736346546917493993090831034099179095886588706175788522468302300020224190789376865635125391485954205165772403292789555995923873205241631422006342552217224191039628313373318248460940332335782304896696730401433062277194603409633432390330224303178977143189665558828402255434921141959708213543094629163434418363500408281025871669613522541963698559259692030992399392283117293608956511322523738831871658795086944881639473782370051303825474122306871854938365772588713550683638047205958446948797697087426795398116578059672851570143395391056491727311791620398981842328169886697409798017178501886589396332031571802032305183904741820514261261531893645994294478723345667394963204056759831582793305935818924039845361882212944268029104170180656262137040639640204874259480627938329140016210271608506949897420889160017584702259545471098138145748384658339412565950510939074562964390237212188043142429937650279366824369485520979480446608990583572414321233432035327121815536367604613432807824552369124239370648837158950395888702241626721908043168997493987900442245005699255940402983282926959591153790385455120761445447263321725742329400257823321979890654641343646426407228961219737623278582983726259312411048299031128769020340667475692307981318807879482857206280887533078724308133357008839101518797452481689995051535371877465293326516919596548326362557678439097728895075852629074480076424335496437634340682873173911155805164371768626156409837357109008849885413602981314682103593787826896588791371235677949006131154482566332664981475681071367729427180465560181393066273015010463139921621196884978957918135846454361300376561402312346253171521753571534348727226968146066694285837668097930373258413365986876855781665401296778783821963544484888529828467599599548228266835057271820131573848183993352490417084579015063079943260706852155392548735122909984334361342951284181959863971565720422508051984124385117487251368805013614754951929376632852029273239452300248302009589424886887144317563690782000365292662688033795650816173264640172341128816018976916867904436442405627525658762422991638007930235874161283916349334070915756331020659672605461952199924310360937780917474278668406078715474294031586682225580814647458430691497917147964089185285599907838250179614218141936535509456112672160260908070379680839108704469694807810504467226481995628759716806317016206669850986737606642325146484658907901908320374053268273670242682011374347121823801037206710353035992022361179086257048518930838099237927696792650537149002108277093297108623230518579332441527758106321768041175145305792330538404074501221535158321147634475915496522450905655696217648090986768236883928384252098452063978360214043684984067434280619418956464289839743888930246098265468280535412267272778352640123848094310547615439678729104950145557905965472017205606574478647682934208096191498577498750235037518541804048748919760940387222341944692582863045264974863690598771842851328533174625343465915046923565664352450095440989262570466471121109270584292845876502439441057462448268822903168942023105323557214660444014981188214227887793445895554372983089012600063917732265669206824419997078808455043794232331675569903013534462187009133622941464234010353433826000553922228455555148182220597825442645729850549483854937196244777840580619239551958276549062234202334474693237208203488957529679355451924390259669258870495214669839676874147329105834425795075491097413155677537392688021471368621295345733567272345625630865583186545022263011791921126077697878924019936256441652424830656553230926275702124188905336041660796421848373980931251044204208604569999486146367761064884353012602080754876514532004157122864000430186105236395577941430049647603857132212236486854500570454958686037031186930691513101587719583002792345045981326679578070498960903599886894923538488493550950489449777054341724728301374268963160055774421994780809554688462375809521056129150616675267486563806879197061524406092900736874974071463206655833944317743051542900552784872857162898801732032519969904537523209468619003185025030365098502664615780961842192838236293646136103861160899924729994229155645625802298192237849066411599289605050440408662225148002253219885452504059474368277735762330308461019549599999813651614498928714371132459916927532442212735728689578451909530064988482584089416205905282811472176174349964696713105256649340981200961632752321733710207255298305089201732765030069952634461978863380477740130419769572013290960419468882106827176317224078743682097892885083268247063993923235249765730337617598357420031457299177847496046951190390141113268321053822047080340898599791375801019421609111226661577044087013717281205450160691871608875390833978207070355277092810645799964034934060628750723861370387403493915484847725039519040320396512440174421873162341136090543155766213668899853130761815779224787796112719478633384037281816662399431067973586494094702219262726548958183934818883702152610822392747518022839561714506007390628505703496370826156475307272206275570979897150322690786928664817315999960649199974560365655592819694673034254805970865157066237795868211170461367920316899306798232160440823688951272378661472160228440004124553476431019139654805237286195636482406680775756271145825685526823433268187251316934557820493956223298868534029421152078625501401855107961281394073811183161968445225787199989267907544911569482459775168784376498938218668194194063919543503185372082152121719758996037596706447687083731873883259620379472391096572874895454567740278101248893605092223911868087811919156418728352539518311176944846942235657810589356575247681215132758884199852505991451814896564181236924336317535586436321651621920554284276916119221631385225140066739803696641301765337273707240053249641696917521363182673067978616930183097280477709523550458669536470052170067717769248330604324317901272145814417242362418590631707783735471467050320364405982421952864580078481357587817255662911716083903555523607429546646792279707487819929665377540404814207296202408540060475117798792822560578817480899823032427591013559517168562255763474584510391056180786620436999753039138092625531978829945451271652783098098171042103705971634715386850839526626076874224338247134463848116415776250946156294039351148929170889889506744583050135913919837106592202899688732821557170187385739741271381202952036012196719626960203807675827111701451276769712926667365445739356930725496041655356238369758059418658820801898130233636387229071616085671680143913445360896708972331849361426400840751538770879556927316937084337771524995766747177315087179934438286854470105564897904527990882494482718465740081604800750354500628001209978600729819965085557520794166382811689256013792369055623938976345342028880788565290447413567647789677133836218186845739428779878724610662239160964045729592430230486570659994676070537685859896979048518126300845546493222570019196791992561765352774318423700470547981778391313780836046634853937393310383776998335943809904671721736144835929501987708830587108472914143078129974937366859393318815058640277015742231058877282711437630213565492475875401886610246777854356693432148412737265717633092626808273124123622953650159092751978323665332813877673832713723098406888419406217180239687881502046439735736899746567321237510349213063843633981234576724524206064200522246739069916957966271710288696077184769604092774174350604122901058408238864701361000440546047090568041950606287065234795201437027308898014451213844037315065646968386554235461637782893148257021204317916475329179266628409821574972814755297441905410376976889341000591137158053186738071743769052628945237159364148455871503998951690787190767984027435077891943213385795021595297354047143022872044320676425827764246533328215573642977181314643742331766509962062170088580570743790600667546109561173739633829791867511190657744640343999892844768167132880945062039251750451632017103068972030849031794207909586622504817340879138180290142270032539538317515133108242703468744063160076013861229405452011955433569280267775667189912817334513398345820171013030802255458998139433807627656896514008754304061022501990282251133959792650706981421143618120537848755136277993958028057952079507905889945499097064080062550393385693480019717232746879879149376648943611805941662682418561184007554068464449141319935657088152465146698320400232386706909062390097528779285567275931927470786842912788666335339797462459534480264697519530211685366936059718855589521041277561403077112239210275073630985661159895918924345678186385896957363072929062889678936084595380984814597287244180088026845009928768291157666527257320699302835418687962100986956566087176123450182606564406905746855792451856567825363376935131233265664925241735310734594176648776288217439178102545428955230623749982706169288788741263944030794445288572067046839910169437436285038658225156600207954085733236983689770424983581708255074589334832525269833872399771316292037428160876145872809453154635735602062889700479642037117966111170796001759977592881100458175722100048711674109200732214143451676846292957712419898417288819427721192472809179765460703848550445400197863908242626507578173672791117856260163848940442037082515271347338393919370737515401083246119876986965891776061258070402275022436831118869000419963184337549717193615629898343263626482307437686956392417757980181641995522540324110632449750837458112470001156869510320760047082848801006382509368703735629924371751577870154068460704599598892128789332783160497863815849336108085279627205862966011040173360246104843706340123054193007876432819953847360992618510555396900063217239127275296466939365753491028715831268593666094331180129897720824452970387620159198213937523610557253743809532705895153510926017344788657329975941702716688833574647004024178938352742793036855725227448563865931735173997290516221754442445953283477957480263016545716693799623159543032942210415777767300075978467089523086091416523233203951096652202034218784111065072471490619261044235183313837427689231750518800437719312592202053470717091563495129236738609216748298310467137046055014908607227737779436401902559206056041371429547401215548874923205108517337800895101643469303059869443732233452190774086353124840358911113851400038256832815506385918589856039129216194778748039402390261663772651051827360883237561541748173496375048555039735379394029728535440020766469391576096635938962939893853320617433504658383065150260813475578848250270986866764440644351423258158725275124596850007557912982150547818425412644712384830999983491413325373296191110934202635527916864219787457557087372246188463069128867774020885265424272138377312701134370389773527643073070955951036938550875063617639978198657399302463953751054721829372899068455514667902459674732434098663978603353055421282956890186517086835511305437118898129933992627661191032878825614357230013301578743243690907430320716089169809681899952290988303970955486238254880080504838570763315106226469308556535141183498825490278555891073819168622380371060805627396537363882868174758734826115632624187671058821312480050835373699050465017736661204414780799387495110932839214598686995993737946861473893325555845491536899980944557736017474400940439610110956433091083295033934596833991567003506441837874201635826436549677974169319064054364679514082184685315304262809597249917293252130298108970010386642950467388191292121838716977065511814589056615764396711419527074811237599828455089043053787745758214874741941122402005338807427727391119071819310902915840104422274378606160600977681244169789833606198390430636861303483239643625737716559976691697222892945361826511412237636142870146385415047965713860224985126361492694931068810285461808976218949876653732903599297076947974823782581777070243899462676721877168641354691460708460498636273890474239405383403170151567930603253153312798047500762668714825393713956654175777409711604578288948596848631518305633669296806739948436706949651018769034276868720731762395741570214774065522023910881519914862748524769066826385862018308191492442890130570259708255780735215924924797340548345001017144003503464552678612934294575168607776619240825270250945336938738757092263778191335859814241964190795314795806258767078556377945511624685805634364914676547276449693473704857397602793180736641337343847233931525009496433224762228565946618820989171737190183499780824588822323328092305249835788944095821424292851155374149556381948052721591416177710841864290317692962143956962876021632049539011598547162245991506085303062831953419951138827671780222826661315592679839582569019477393151066716928264231541868092425923558113827495208333871014971126060580634134291280025727854724363591814500863608881311867541475551894779674156733227562475680783238826067013648051995666993850979388379247886620879454923860170452277279404891601999333375922357417978919439910491288948736884905799229895442822142470850065052283997721010131625234120231488476840325409793021151539969735474297063778945462759148024447237766283647874162012543072818262779020260362653461025249765546994172473068489883349770446673360955878055002060688672337468442954681980810317951426522420132525952437709793121777830434372844200667493369296029847695986850286952176355418968348678322046697565677586924201324162799083263776202614888407255257704977703440003735146738688682038622410496986965254853725996705444334035838423456024912131716194167195897284449214091058893597307567646981330596377315838678198445504627753428757935592737269728721091176623656871656228937949859451217214800677735171905160515052909064259037420662615130091019308766280490867549849190172074154878627026118949137455627976782941364035336097461903162860847643187224744020104551609462240339754548944271600908563160600788050469560187494519275599689418325969967121732950876266615454545876376860980209139511513807401400054630135004714562973004726998879107696973913757915259701423428441074207511925439754098475945132083564679314908005095491828508214813054175304170343806599691696324729785666358718500961534389169490540527977559740100443490685230536687735054971440634488722028372025679132223995316687016435150611897108849930256935038329686915937807210834659102139164489263192440801138590399045017146578278207682253144228878835088051317138364150754491756140816093700845524940458544351544851143963076099838688201113195440458161001150236971919314592185733013123663902844226655007796387581612089857465377080560029219734768885260009018917237647658585986249518981402667938266651172757420015132241385283551297305991074566338882826373758741226410441474865701502789582000050178227951260505201592892915382964334202407579171242688332979816616507069637383253770714340393616301677980220255042904239904448325415624694347641296087320062483910257027035095307662386646755726693318273250161282770778978884623928234910546398433062643287620470728244775656209682624943248251821601310547028438270564069368111376991050150066497804170161033154479450166081453264363333686568925075652244044633983823662789409899258002252460588137847358298931228408656551062951221024647602778500486033826162250590908973998407909748432210389178255234663958621716174220468297822964707714805894049574735894535503297453898080645743411831091770929519652554962892563127527566757628765632519218655675473195331791470015742383613407253611008376073144211438323193313889001557189206790405133021901518723037109295903545223537327165033795566071036650991869632980967633767361548376784642303681550187284526884523053779727734620055035220714277729619308443291800859974378375798455070776580848690580603959033236794151420010362147848362489484394586403642335476673316378391622924718918081699158513989047668763679189141900492347108251460970185542372827221655598851071420735000856857396404719393815995000077083103328696567758011941214391648695911385824079022528876457151171512099492194525195214949445584275455489149410444784726280320269526374200246545248353002555582376864434291118844823861966262532583559258317051797734904350122741240378678594798370196974276668292614729606494531695222877802493006519037186599855540351576136770569806267601915612757839544459482660436901468090903331899595554687584208264371236734750859279306363561761796198189719634553472947735081398084752454229912797185142335997517548294837761647664309560099780053346090827216904619099337669280968288826438278103426572199414817947893271409555743725604371248545886447071808875818734295862486951904953217031514067299098469890516696793427754667854997656146059895381134657913985033396598870148200490418580065138846197894230632381542046172695566697373692919621944568390358581543729517652208063754975275648652685258736130510281227358125952522460932727843408839735140583600861759953857869417809471443127238735309682694716099285387075786052039995633310867386954540553131069289254562507421695261534962605744695640412897941279867631880444001278721828782701306487917265767166795357284363640497161016783636685254762216593609354951886397875329572925270952811073024849560758742552101063487555980944954121839348217509906371619218936027779868715909727649889546278509943388617707214215673958865778782518106032248017931444598702594101490419889214255321256800644386552514078603305240103759783429730712712151502419706883573874336739555073594453328129312599055967486134868241391690783671764595782041559786048016670209041138862048596742116730121359998635147619895881389742676492399152129354010918820872169274351848906310560416321555863793673240482772823861928989474986481965638070785811974359424758528645799903331027554609787934869638058102968785459193549068590349075415773800499007018700103712834342309211536331681378843326974682031371106125096206637067709810337593925162785148842665886711527169716517502873177810440260705956888985137870958587494740557071730360075344817123039853697084585102929080535611497306999339665325512079294585114778694533242114704622302494599782566001978731844017888390004161612663483663397085355678129321972559971513581006329795399368359688472394489574574748808589633491100935309023363313895183819614602436110597933846558257755864280557681834526446276983575330633745638214975037340212020036940142819576086566726441370570165208998647266789316849107497219045352413026530772399317033580707693145030093902829730638114061801584541036680001681787697223754497500530350522899125333480825084915523375296111770102681831520460979384588855107756561034210390734555671347617361315964470240889921441763926247754352356017419166215688415887570355855709057306019196639832545672561127525442673948553707962745548546531032535791942673405875746440088504357548101521327881499864929319811492584740209596258869462110522038617840542841423125445794087798144678542790437461480800984487122120338260688750223442104522881309241545661117337586647033387459240062324486147910128022127897171929283322709020196409680312399759259462034299602241792682393083172186792405995267448358669765565732515028764301482792554361452941865367996173120347727098084380605787280066007808782425759500691604613883608506321362657821297468341235655582282869930838074981877900467471564087824242375718694065545812314458454331483499231991090940071041585990723514420861090723600807517407716237472508085766889810756254355784696214002198052970968274975165034909610515546444042742946635065293273751733263411114674805890192442269437909192242370849660123419346439335719863240009765338769535056662073600916434607076330863372837882960535476627946748221432837286205069589880246360225130419221201501785509420327517010078832707441616419836128962337773192695616104357605106987238502321211350581610107758445337768677576497852404713087662936255727979708486424465292441165519928786934982145453612557173961907819066458965887652246673387653758856333562923967066694112685860121690942193181473421517475447116122679345871370184654928147535299367354862601188384022312655644651115796482024559468333561049835576864992055385708825161510791844431202059983518156001435644065243348267618657248077986837744374359549146000711159337673264229995653667027176608050712003008878815684449960993818290389145437372925934502710433497833034069047579977376657488194568796596246988889780663639371412756345594591714618008980519446391772190144457166770963658593188136138707534797469882138145297210149512909314203588645156272288921706401524175091904858107683070142200486658496874627672012522660942344575297892301255670153512050510879650994237708804374668782659150442264561174726897648118532595784924463571930072090450980425977800635665223241727409021008757477313949022794340129408678381069382661309882899028775583600157380047995050305537638342427923221041881480796884693788570184415543442286053918118067865936812282090395150360150425775009452936069163997443930392461995760594562300275885564698134554549863291889744275697171896469144836055081493968288510397118325133138604333658225925726836986245323701383236006302910294997287613231355267787291892596626064620292526029727010989774687189061372336122530633712520954498882973016164433934307257744104676179539773169614964716015635099622255304443563738064403637709203112726555813691144930882429525083094278182850982280986538306673364262328453278194530534647770649879839190855820478905833677390611249360431769714061979214369951988895589369801474365153135653072419877451125238614216136513798865771464166855547630549654404419446417048248302205286645557853033949066962530680569029394749196458051848834514506738339233523547540901555367178914872359379660217899069214863018292582831704009579005948413599828099606816053140365670111887105851358822321383450038101848301106353777708722789991296977020454904155393585292506179656871874484104095677415437314637339065219323501970272665234239873499616107012672742413776133019564317117214078245826979463214677607938906102795836886099681700042854285426042194834488135198259078887228097860385929387217597347713160608929419826293573155320893733452029000857743928854870285031081848843928829850267566926246012314479283736543252389762616760424231533250304232821678247237762596583948181215621220886749554116565797850145762132370341133075764745964542263415422562157104827978506812362936506490519403405613272781118506655884273664287153009185830341935355961950212552810307267051269676259918893949156400771465000017813315579183207107282754429142533052231016535496568054636132420652475746286034820392900806942669738975443552903168010515924950122936208467138226097983255010319359632839218543645888161671386133273516311161806702375478960478461749462377354162414594567122689647384073869420190101804844399533493689817701260088275945050390936983587028294497017615072202520076383509707849395042170462420931091943323484450561006127204233805093411093782199644116307381424087740791001431516598319748695403791535480318539835075566067216091256228655186314003174282799901980647626569719555359081120191194323357583414021871700073687902325512417296383821904637803979995854534073777187507815601644984050710686636112548664499408441142639151146555731156817346863389261026652775091244448821851299805135322660844475152746781188146478220437031605764993707028682966540901497964155439907895990371789729708406984358680883655982699925227450751704395788374901957253465708560763681681505446515971810240043787513422045430054356971127990433167485510111961522927054344595607349205082875567254089734970940494808090132853417128613648169685170643930451161115366103975890322391198774308644574726978771625655623387379087783635203206962007783037480679512210988053550909859768218451378560125677790212210299763497309372674503743283526563968367093026032964319016140645594102960029613393187197698233656236075322194080048711732017608959501722972778405630320696831767396875478042318010718089418204540878302109329218083678908974705604879054106588970506718051753054998889852243522511524953793884834056949837590906214198389786673441843678023282065032243552252875376981131930398184674715140919866345735523148999377435084281337202886659640174893923751220405578502918349691458281119022557743773130516608236719024516583948801332271865758791039664056638546901467125910454421623803907576812482098463358888701774063021810572774568734584257792364081735079844683019107856363644647726104890606635500062869612197521952171569271504561759414037093436192141685156953318952654868959522964148124986412810714569239227123464283275206380471414474504895985154253947217083406376415485833413258611212863521251113728251032511699897918598512787489206859331637804888364179045474703668035564280341469474378332642869590112723426701380677852609521302885132236047840857284792967400054565506964421252705417791645149871029843963727199891445646394053689163428016998243649113573230162440079772491925640932220903486346263335158101274961979651213543958614145527815718124725320196610297161021212342095645542037252391150004209036185024724809127187563204522426166795379817937240756069466185519663212497848258574806458427653334139217827853688737363617500936381074148223832585281563127181624955946257198979503968641266017848301625970721364790832246489549468249440778485829704825562624769258870525352826275758341000532614864907956334694619315686317364590112416557507837410278465548098225174256386526233431365739378195281376873427397383111614021129751105983187665766143156040073235543518709548488132027237149944279930117480647017097039938619884333379857544599203373720436726522123705814135667154304789993704961769630282821154245404618963501539882636254956892976571004846294739920730868729799803645771588598889654932360809136871127211492875985854930033765062840319292536474028165973235775306787183336683166986198720343910464974150179662109301184078652165291796668514648623334673346980216828975625965587007322689675241291981828235541175632566233279734680306250389929081491181509674352520398922911596986852152535895796014908014398963105915973640575096238918168120527741198241243501737596588972702419615525151027251943816012463945634186766183453127988178671929240157795120824694016904519267816301076886904460384828500587255357039854905740966318430006635774876335083490754840309469207517501952498689301895353300529783405939674967381502656972861920052516247653762832117392840334537968596741637778163112138587103838643812761363874363794306139984346004225737588940972671227140535298540984533628151425316092253623382018445652792753374415448831549153654960684078280994405407767573691413657886626595478031709042051450192703040914624733225624103951007397062856323999431940185744438203823269015163767136652120713503992578072967118592710176882282430291174784880680680059398221290214785129848943684354651320735058158210274199708809278920346882559099884568388728220935653632722772126993753195286996038393079329869159067117322778840532293398070541850098930014120361035706239283829743540993449814822399295709437577103328378553948079949930447570692896631081120068267388405988649878175601299463189395757157924834476926631544525691452935631763995627672959744143861264864801692432698930439166597645883400430174873363515979724589561049701974364156522395587556549881937685424759400008424004042347200480208621972068582711966042520498777534342890692388701585318673915934298039208579773235979037493272348174134665687393439199512350019601129147879945008414148595041160245379616571576233335204080403205448627657215656982202825771792061813498960235423989666143002783841496357866458785246598688859132645110845154901026920202545535550776969130844393519805115629117010631374692851587518361204403582069047593007658526736438252983454183182626850269986924252895923397596958573817462648386435605247579609613021918695719939942465333239666001993757295976830546675700858785031434037059190936089905853713204485916366410564469697623670127179721309331574834770854328892457343194198513428310308809765878843640257325947179897789437533930941754744826486161772607391513665931665551535190697828082477684452799168593963365664668124538793537188831602955992866146579165079879079846733806130573834286157151250282877538254434111665019644650240364162776264678121982876698004977608102258760829904978842187733429573348259550757486354437605826137411201662448625958454973312090308650939288463608816103686776209526859992224232788598568004428909897958527551602219114207948421384679360381268632386014972825146210215106774943089488730140382085173218621523661145449245026729942644966701908164786039455555543753976194483757871897861387562820759852344156202010305778655516738753166980673412477553576462692768340989830793796555141770681096246721844711882933763268249834637614436907521009684477385753439847723353224301618845284169484246706399106045859523781367222738984587545264951686298627600768845284325086971719135566816273581809167191206528486703390625254946813586776622099585588770328367311786700859696735873933356101054053670781443872542779736164411898659462596462559461729813569749406052643717853087015407436684062218124521884661873739897602174754791380601601059244725855528557691761259341630751697580918772039120998460084216972054822382572734315650629835392579162507053581859146845402816828048281780370533345549606583069052419420190912194907643486114075629959008627338812368982891186929262148667065723505286102757825302885832278688425147371640673263054763363113578975221190555998540612826408723107448714485779091025981809530958267827455692951030506463577580014563158900733017545754539398505015342025355913194628529757143700103140016015791872290371416232271457156796462553243086533822309434395743422105214238062641419521199802360136989801101339681739914305997734348764875513746616152507346059472109226819512158357932825306887198950741375284600834213964807926139972587430698487475139683838124395844649175615632915150029115412520531443762811851645957203361095495444539757270306793981507056977513510869573591921018208321049729370765648208115620751556583242887136123502581560559527585186293643318321816379692993955903949692303625043723781306292200483302666854948208222274014589177466740194437766589653372748173838065621998785598482204862252795883023845755588467739573178407107725814527758965968571893580381980552134630343085779322485766323389329326282856793103061548715760619200354609959714175995499201293748316084555276926079768361713394506914005878839836623835118687644930911702094658714979162018003737884721250217044747979488596443047186550145378743029617646025181316494369693539401063206569954342339281576106049696606877573655293519789239935503594475312624183062704582156272361633352906211583697145770623241797188560845732815156521082307354888464386118481541604773152109235906082781940807121156476758852768740518218428440516721481324915876166788554853949695278530425887738273931908487540217375936195799041787884152417950056339885195409053805571039280645516057180836948499443643329762661800979232496054798001221828308259925878205347703346196294389889551629295107964681105589575461354773612788516929109379593066413692782876457882401348309091182947616027895814859250481003887378353653828511120560833212951762386999279469819047645448625780240773652820271867799595053404426547747689846646212626476031552060465182758572274719718201387567492181710443904676108210160769504772382795414650951095929220391256065407382611673751670116567810189131378619482377827095010717422683255395767274349685645763191109889852027996688708235209308226806552941773269773976668686720442354062864658620363331979905086166016983183079530720314778643828801171401953177114283747225445469532924162124524915488667255797147928709007960101289978899135923105848671344116389364597480434103750923775687022291380507153923249856944314795855229174246126928175667872076354469591393721630954504293175581772319311320782140612102076034277891988127337911160876406794800961881852686865435766163601573254559156553562904781306735865934101698304731517301496110127469254764090693395150430851744231833455539110023311076373153053667793631101902423369541104119130938608532421292400686690693515111305886645456495985013408737287196549371704624882367353511129995725184124209046713963636003194019570051328825798800723417556577936591051565700638468332948407787533490998057178350688197226503981199047488675206955576469196279501771978758009417442799784687600052816380821254783576042328397148969748873159679763343005923942957807976392955007444793797941900665524934481704640425445962655117404695300300497776701458213139091477071923442181839324189183713725879345686535562882060172986228367755276558147283722522003871114771089986539129212454647619105069200527379007914800746722742256378212027358759179880574063482985123530857766354622674752813464153022271199452113407959209514011562895980894534898888725445958774594477921544072337395364180819888575322878004049231419563747498713325593808683472088736436003312045009082727744063424259831378418072724005465273506769060878437495856746802677751356560783200204628769465175583128094248011775033311003325714865626876607272249131278886367161129194589402127908840400160785040016914317228374604677716959286688653167014751245403787510301747210835438368619300413388642792406254857757078246997419312785611729031329318931594557943878781237927842395314541104430147165553069535447451445661596156248969334595990957919701975140113239953100200555603916370002237059293020488106496797562810793543311540038766633004594691618886872771795487758674703388550979425963595749503508469103101952382332659411333504565645159262769418343748931901362306559327161944325283244048520592160118244099798535789906577339835754736612810710379706902147975881520621879004089155007678668922076448163175177999096152252409294163269686824099892821680060952557069330264715393916579827872804383700178169786563921100948795326317419008318957436659448556662473646051668835786058029505790968583659184620620833225968633853450722573436366278229024283215186475553134480143923782450209667883286652325612732526364110984048170715554190584161881367656677496426929514575513877916646228698840789942488186109824729910014433597922056009499089168181820068184518108246707140929338046612559543954776786910886516490665508836074855689123919357951080178656643160758923729720986373999523521601349730179879080882616878280829816405022411582490272125830394733685774471733969798630460779636528857742864813263949121835940669923320284883934920837977966084753165391957903280484760843251237810422445256098631325289538153645618916707441290461989591598458029607045735018670324412920007892697496066857995580938958995688183874754327349456322293032198369774890796263580352236254383388283129372960082586955433667879015353539952398762516012720154181947527497782505524049825539572997882680521102838451410893781693509489418411326374365087676943571961168899130765578538310005570489021532212700586262619240134654465831361466472593057612451867603729585946561601862674775517182207610376564349091647337007389869554813677271217417561578426624374025606887961185110753433470471101171794790158875039525117473840336186718652678555032092909926877410520468836349921778679514280843872017258910286373445917169765817092222367462008888870679989738048666400605405431228962701936345847412979618438929894864154582339290566950795260108017896456551475073537050546876757057615929764212951006884055839523412377771204088098516025740951421723016288073196409134943268036114095468974233205266146546941896196380570542018628551821603294532227767581165901389175145407729625250475749103250231840805952604798840162210068252669325322920753381444157519968361409203028830085227834952876138728527725124581119701805681530333747013443605953585966495800491259699826612560380935307953913606951515247794083351887571581444879769002789971677832624187730936840191562071098295447324721724539691050907087186646921291507312964320376741421562695004278793022361493032790312329623317272849684781853697142153184100347497129871290047568559602682453129371994109967249550130028209425498042118707466995397941838759589631111138471166076322211712290474273227349018457058661449556621587550442821501965541353574943475204880788960251647608623250887689507927427182986478732306243989813731675864981965732608256046938710105111234705979067754730524667141112910672423870164850700441894741098599580860558798755865419971018599454343258073292031351100964613125799124780075295064054994299430487127033298252126851522910818035772528825005325223843716429030772279504525203335354002071104898900605429409249405871352977491446940383952672071011156136525213327534399022048865806917393447574991006295692705391289145865254397967161354538508492579569739258139861256690783319207187673327931416623009132417801480383774459432088215200087111372206493450689947865781832603042987721655117114254204848283974139658286567804080354580355055551629269813299387414886754017015056996464809907313122281328834924985842293295152879896124825488913649174852261130128116536102137595201174209418720839525100014646498024886482097056504283782108875760800558775944685863273651582791769850412192624664977952713047327371549766760989447275626388841664773375557898890818717029826070588386706640262191589026458150993277645751509617688660337349966832043421772616265088883620652370766686995330178889451794222941516127406876168916438828978050443531594437802895033049226437842965656429039957411827221575371646833332601573693040824521428683335628584654726045994466017912415796898131397914035897363124096346376412309109883583076413219556083902062364798893270157309214595784912431011098361197847755137050925131449561356458191454861013375731678293178379039916998096559867305784965889258434114837679814460739280361537451407384316731309546804466635314628580120191808835427647770238566600176827821900912621936210621326008128571984932262210531291468994802660528019100925838264421842402413646624566529936531482306220924737051736348584601984062743030824787408613400539200313294027816323800332529732128391444822784768566436100399563205880190963755762216059141727502415121448756605969817830532744902441447595099984122492629037589435049225510383134266995932665068125522990500876470973071014619710172445569547755727635650412931641371525530938608281442011580416168455133682566860676342748838334655085072746313790303669464747993472778914866476073736128774886093393534383183568368842447504533767708524485370206610382162336026754784649322654244795866111966026185747424676241676791935505880893265684871012507638569092492327829977275025502252579052849228248234960327321080337962822475700159091564098538705348840063754907347756494385790095239838728433862047562354235064179726335625127976866015588679541914913992156141812198370653922798607100427621039692645239642346928061332723809727716198711987216930102767657467013757068381451514105488700835376632321410074284951758849657678144744402264839098219091915548840053853000544163958038001583041831360524246052298596706525670738722342461771864401897758538058006312695449659640693510858406747239793249204075314483391579854326700939668234571710576292675176246857986715533564717996059253700223312438734051539084683143170119089026944535203643784807730503712602806957767681235902801032979944853130501321643573647584000080682884244339183669069756886918822884737947268983668158678452800218013855507601418604310237502944473396553863895136674949451691838595877448827034430863751665112700983144317625370588773733235891602480498473932262867803733022641223899524847757039523755405054329653010172564520745612009505755561632804245221946541841095457362328822694987583687623292510385841903697437508639401719852381653390459083500158230934635361792280730580843549359922245936959543851496285695682129150873298859451342044173647335602035352127804960065994696637858786204921797454973802574249741097277727440632722600029666539533291809760539739603295056067236354509811100104822194084093012846892125150458729389872242081878337381262263937136608694251287605945918682132756677378639866505105475507425536902082339387844708710723001813262578551351305677181305803190732365191493192245332461675307307437816205572855241901086230555035963174094452017579715541722984025534340907621304928258734701221846989030014468424344694035787780614881434166838793304023582171503267061492580143275246454679341106047891946074262142168568876740099213257402405987988423725827841340597528611470681061391036925633727449804608519464565242070737850769795787755735715280898612448106100697440241463150386182223337488770696070113442303136104157638002421067731516958717606137109126989123643787703507538262552841725394433138588280801379433092001545422047573248236964291534415814368286788431324544499362506072366386123350763328886942907645651571313421602442634196178764571846474325364292566246961218065091829872269104312382367837957873992019579505789407138466816622256956277258237088879505059850273590516934120782375869547628093733774269084819082284384258840803716356694726284197182564293227348975392387259379010832757816206748847427202525734311679805460609939105077411852460014973097890326972244849239970610345691803887826684055717638362305049523885505156501047378922436098008499720218435463582295547955675585800248762763885112670298273265504188861928541753454929514935449993433150635161218692104896498545408317343774435315012399975583523697788925365154515036297445574196753461285928493727208932982809915688397776839144316700734092358442672077177479842517326154052300647623019302786183111018013072347594674496538720348709630517796846613562717115338620035129986805173676225862627333681336378424020270309305923835742738090179943619144546532846236912808952174206865347888506054646805638091059850534029743416726133051583208331809371409229474782410739310849295293770911941067320361028084893172181274488143467617765435434503132085216829890765536539680752578369169313755498660968232085377634639842242412032441167135907334473858868878832225485097019804230934051697578327283368791158077993955123409988464867416548591373292532179808855475379021906322934810090953515870090712706321838956814806490412810833532671616119637742279684758452058626434613520024173901604256882732882924819782710973196453923748443734274794785247103261315194960910139490190443633568255323363323212380679213486724773370680110073803099624982072035168194289906023633385830795260859333371857551404901845602850580060015499626118371283396344437640326747772460853695353015357569496126321891725242941497200248571728903528008725867935427676898590788128850838643375150933334896433894510100394333191636446506293543800271105106278436472117642991106787534609821832521653669946946478233132121459231946475528901760938819743622695025753426064690426575927278403651807414809947393656225336344793580166929234930966675822790934617223084353165056632518844347196414575442642241024546654841217859877596870051539916347817188155357184263062358135636510026833102934903637974670950145903138778432420041404636664252566257570493045929043896965861431194544069491745368523766324619677260439908326884635626847037195191852766954196660999292175266745972500679102463683745343713039250176546945024833151936980506776446471347686479735295082998406324352172565017444123967241565496516356015986392151147597117793771511996866234340555874194373336894734749363557961849659474139773057489310310488519618904096382273210652248584486096324268120887151553669834613099807314510371617561643737565538046990737162672228432940512607893247687241331767826410969602073660625216681418803614721443032800217782818732993038344237658946376404989852963928178497128151207267215331038687098974215928846483229007853194737181964226264973258363255903462708586044394599552879333199241122735516348512679013706240385763522289876530244517737493238148841370753118275651176977500587320250552885297635319959128063555032976498098232932614311045374694077593664932091588346926839262490788735906260460303630669495613051267172361786903239347511295432704298998579031757963205735457871000018110719134994649803748726832322435915103526505651889392352281971738570425750932409044802529706444652366769786451973211529138805024013452217964534917947178597480629191820058314046782915939851617857545692262049744478603090302333332133729687285268156089993972598800771810553773796777565770717781319959918165071455962179596189459447638813709217157422743549870183479533616326646213722231138453332290688484123631660592949929109434663426852254858005085783495777973575441687076011084778248881353606416614989741289950959366866856773310392192700192269464047834336123579069831699012285269655842851844861519744990864202339160846224105176830663092778378153602845967262528577225730359510149573557295209328663588157326617113181683910325379416494571656087743727166175275337729503826998076544559857580712686086442827027505275821365084616755350941544216071010034725824544024537407185850888966754203480862154455072404056735103506550066586886840865965263901690001657073920937367690736226095876085810093425675432686027143067476708900731244757728614657220202728832239305359598237360365570359758688764126019223907491049517109546809753311441373577209861619498139947946471813788344044832107417127408441176142441332695332042901394579210275662933480997857217435565302600635316202305091019585219610224964227044910930584041476368733653360234648748790484501389431590156740156056762592723492754828990998488308350383462558237362850762605239895801145941029843890188423557588982170297135462438968880081072854284957794277202144893144587284093893933661933319547166434805827666979171535248604976462564268612124457342529758628373321992826202058103552101433501795330695752785028467796001677335501564977570749875037019466666425142178328270035245643412338095491425008608919602938382127646939071879820037954447058662509648089933793973225999280961784513256603421094821519692547999066034998779037139584551263645307217122589242557513095103215947062986043281825742311833421045008811535594515103935860623534586853516127497057967961320270617829180254191953258766732031087953875916313082005080545595454461484469003960992245272659812803757189346902939956229546033027804492026663065775240590099615361746856272332248271998209879361706379053823292955020204528904308700128491546222332612015520002348507527441699713182233169836643047154489189706254104680255976770230265487411856364879701739204080253824540262715904348806598185105957293494297077645125821235959221381624075409080529589747128343675472811618196818552420409800634172949591684229935501384469489844753348689046736640326962821150371807727840385637828447774569818228145458128929866604994521757429774551365683494835861700825537761850483193395963689859675742795344684736225048785084964747879144371270468257454322556197627184425597256680685045126127288733818997910737460008409334305265365361151659088030631938870884298578625080778369813724680352509100027105832512851435626476036648006889827834807386222990400051222180290706861339224412516241410645338114925754159815078047896359566436216639899582223324922745107492446804738089539350971897718772716577956413254672331011907422767120672931827423569637944021225194904739766127709576007242943626881286576904449462494280722024248007934513149670583152482909513312981445545979661754662019375892801684452277786446677468697516336226183275761629955053574445936142654629722868014217291293124872029400269269045158909394857979737057336315893541281358386241961449521284394652162567663603447102302479256840606479771831883755425730680174567511967415290104224535862037490885397666482588265970066141223438090072902010657354860756468526671877462065644131111939709363023701391712033768943722736926516545070875388180463062505353315521906851155963361636644137440442352966301605633262991833737616648811106362726686131611422017331628661096920860723323345748961173932817608469351791634967938400423546787261458772937402652247363852043067845856601186540224843620501784053172199746849313524210952918464761392147058772283894525271326885717417858473474164198775635067236553888492031645636799100090300809289741975331794526402407273023861869496440448558342303000903774948063509086334544129167165396930068440622489779614938352496168111718243072542097987069440623112903587760466663716994221621850576075858469393967073732420841656507158797537508499939696623414588754050320050840037868103693452791238289112470093074026102693386248822049820368016484971183497061702481941598146212922380504696918834593266950375880372590301688108904981710820134444904231050165484036221647089004195262782873296507181805568033540260910651411037881033240250463460380783262178924601293398869824184033093002177417962051636123121123404852171573757566634256116123195146436063460519888189817454650958615601156006264706798472378096147390552430760750847909547776418868852956605987039020419170972905321306619213250368796613756500658558828094551459066458668438983962360157676554706724739859736155731438813310569258630563053344732625596057041397076912153801785384994698104062659727178129310470790694987248262379192755747829542204449999469425107485635558782236537904545086598285360803492918227733381740986564024172187890092586904164533773733692679116459138617173200562017101121625810514581922470904979347071998966843851814833071786184246498105565584275103758484785958710038304514648622126241302666390708249775121005317655164111684282801094744247558729336261442270891369001158897458782345262297948453080499816568850059167211527171279589429310418539458926123712592122531779750428289972368754935294005149355734917113846758154609557127604477014792429434903141436666134345538418371619270663945056434342553778597055346209170246616504599319814191278753213360636428314376796289513691556131934836712750830674693064514999717481979499047785864008427303685114423592563547758403009290606374369090554608516544001867855433824444691860683791632998108414691472850715786565574707067781086045791587756165740991329647337107305138235498171158105805522529965876288946650600838729557591247768509469784480748718491914585902307012208242547644660615290275404598004481014660182256646516906724739982859946291951264984221031741407196787833800759903566603763316399057533485814545974120411544066395991619332586801385353130828863986485636204960871373257262821081447993960154467439760381847097746340981923169648584610097849011183917140304253461713676046279071903608391917833069979714004853906087226071166095025935351086535376775873955234407227212515780434871876679336289159155010678861798462344481505304828902071372633861126122630110075443561438802594252711682788969567976749893159322831129833317769185074436286577013185826836140797723225243240142873610749090174406399404431834464721101215458813029793169306236174512433777146474161170021430190895799300198683561440788319023361373419523499296826826379174949134039810700383461577732659715838430314859613908329509094187903151261245994197070301936900802032777427050625153637843482665457049656241415455426897089596474341913184291656400363797919078628659262560997043893065798289700984150267622783905937768103191892999132995640743464190511314897542382323271135215205917224430542256409957526355205558258736407947137002080521530001381113682744980155701161198051669226314826676246088064823853423756131448472253929122951174552685817593900283085890242411540856394555796607317215219432290713865377745319574614435037957822446563336506103313492054960108992566759596447961179366206035856986570461133569866370984978454937553453656753384029977949933652008566446821052858139795460786662853347552451381065233692034150993105867040609574670678915056275408612677999683764301728927900856653053744833672825327649948184310867714493870227717373218531098106997835900447961300663034941899776957437636435044530948838392931396467413985371515423886921254390643057425820597025167581968726860191059291924185484805630975443242594253499437603528189584581836194222796056250432549141073607266000928234002966662098706986823755885017423687154577536748079014666988272135454261305693361794523090173278265948742853771806566967453277558765140823128309383234409365231686253650970938195252269122716561053111919322917491763696863586433886279943429763412866265368779190416501820663830295413993268933415145222417980323983891334829825495354343179005608769174291117106604588572353011884050630853100437910637735935129209971192601178437446618203874538613240987026093448003552473734789220537183976660033820306248848517617442333692290633426108078802164032997588207914639265838002805718022566335293512276676399987214147907502052804168793961235934894306024735230085884958588250901781419072346884489606240690737937960558181743035353591430946025465365298677418205161597930632539904679579515548151382251250507852101281200811117957732800559320506359482517203151431002747883179743661621983446800906001715679800407802337170994561920507822875861018098239775177983152404357293731063633363688201685956492965542434872051522290212700438549127872093160737168516159766650677694475804118761694038145408008508197595546908711503379671616767402710931616999752746118950620326175189845764916813869687766074539654669426022760555012928505445886214493888233230065888502093751683229787215190726057400857307363837655928853546634038797421775869880230591016259675749052479158256139679407895233281106329137745091299557499026171175717684514142305907984539037853082743414284658663567489468859117865259879483276155422944752924559068140152146507761210266752090197336425373352611429821447110942996143189041711927079714993664844468171730590571495838583373560007190510349165455340162846702674569613290789395247986223801718973791171206016600437969588167950945924321884791798824280829581373281195947341093867775600289574775203878638997281541450161106078945043258812836276719765966574705363499786118125866880446466700216834345323983966594604770883933226724044279760590861931648521039262244159374458966754843633258298680135040348229482503514685367477577976722017774306807118316371413800145429333954461696013189585915265126831696602612297495943489712024098646991432221145765830306602988675383624240058485827132004601874571900075853310545882145836864946491248869907403303013438104953979931652137644065890560727728862304085473583646989995202791091390686837712089802580286690872546505549181808578684032383475096200059674005263836621151951444047394318292028220336884308459354113368575924030020992988378245921946457166430575160345650127304569239758368851941681226480700333752342671120121050298543612680362787898986379032302128354163190505398695412544631950714601208435293211530542042289957675525006307840339078751303870119162760361393068477297577432020362965843131668133398097676960295966974009197473250144666641663987953491902920100288021813169561552568672703122043138003711516518206257156649017170280114831907948799812211547083814728046900725108511694865255396515111699354629555900625273591839315844261921380762194452471116487635603895618884994274538942408737968944308445183541482788271854967127939710389519143119479713945246420375525384762228184791558751626238591321643655881437831707432739760688772967229260982036461928586649996285177887693790242741594714364325303998315959534878497682155813932250419146992052654529969510429629509369867438433870302656789485559759675744557978937945055273106956128218409653870219528374684997547661143449246932872189335704908623670325452173025465191630120512041394928373538416957536023620517704249678513976276634901248368383742435426404364623278258750276467416429446956478329167693380441647497464292700329288436961346339973464144594406313631233103130534644202204358422262930060636939153648037441289564124003218637596893316240996814902317222984390921052001534621601450933861809211458130479053698274807456097943888903086117034764630611081729987190171179433420254591880530732465755681302115694897176730090801568982807020698670949501454928653975793239869482036989636490717887711905578586712519173623911130945606080982910500171589851364852407295896200211195581744781384599668893753345240945020562818578106909649205511785710927953915964915856149057954283007088990639305644707137167720151701375661666422795249434912150857104634728835293052537535777834312898478510237762775736852470158998072338791647224195914939542644448140225118014886662049151775688027076994857761710287551311224146757374170976952464419377812291419903779567858650681946095777009246038758369021573360691557555231962649546378824856761875761992095236979950606183527404356713583768931296506640617137429817679755930528425563339886733372347900437719190261454385279579189048313143423129946081380534298047435715054313815509577089964116665750261098618652919184778215083778868216973263105641144573066699352790080523554561253702906360999204192718735881073239032119395394180462029513059115234652521271330816920211492767484648533197496100305593426743478049499460809173895463855744971610483614909193971157213134424032015581432786164942537504475508160296134201588174655770981803855823421270162620460464529505453488501519110270219428417780112459760950857422969894133168858774980016149612702769098138757870774182216394130072644606644130308796024733673746660690409152827383817713839090526346084008446384521876046751445314632029719090512814556765686019929252718848387936135882059281791710466656790022955428222890313948571708234040537357043526315319394510563128240291614039930484544963785786359053212796875861195319206326073947559073249166790844952364389231331709597423192860780831555087110145135057117525731264517159657309483259498727868375713429283447577132363028606390466785939557042060824801378677440251664583829953979644053876264055023156057518620635497954088786872903152539995919910207212794108381281881226993604814136130923729857263877818087657477517464574596623347435224285697411747901464831211656886973791363037918999344782006608766103184529763485807919443247252853518166908704767196344915165624541582268868889749495271255225977317570996749243571593056216664850402024312847086146907913548406217706629177904833378929488411093763873600834318457629357967749649521965741504326598631006886189675012445850040171009869209503638896050094069914237255465215889176551746531985881678098134644987309659682705362780099918544855451158449045313098829292615337924634230368510835067727693489903556481534286168961273667458765421648667909772743340907903761635144334833616278891540940693027914988984196367817696279046667562413394762952184131529388888534740565649454960062552348424236668402737466115187311099261651316368252594648090829923651321708657034972479804440830427897929444628371860130059506109307332397021493762592142245663595695820052851972239706053264230549270350755381486391507215690627045223316792723729284959182384922069075988686347010772630663477327676005687488816072892839874491996738467934164201166312861221432418670608467426200136285779286135377275130123985024955826548174819525199192253004129545521433877469881407114714153173528674351012627969004742460911864501442230484138317252913209393234620904532208228571201895726871632419950224179581622668603863591222041222629419942599867594047900586835255578351062491633176340763645466181024003343849781327921568631168244844883583276481312520740060157903202502282322163242912987997524090294399167362288026580444540359567013863772685451748528971524624357990072162594626807067619180878351930757564426034718146445830841073006839958804228470977205480788762935113971556854982262892918981142760300663871360850122337783343288448035069022335357028351528956531426989215040404593110536949507174490104817675567832391723576052930839225585245471289747182975042664865343923666162891786088116115437576888820600773218626265667472562869408402931140954430923521075409090282162036025821903952530695596383025996636494724161258743222935511803691954834626655854987779391746115905253778096304352747395054720610080691086933467952036630991103517729993557505729738945734663804321209791605676167627702954799991997055490038078345685336209638723883393198088578252926694000667730768294489466382736630978952805156776017195042902523089158226573539129186701432743428707375001415374064301111679682622515231841550503478540310756483518254874541004985147575486017069114638798593708517994557607799303846927371265115971468889049780713991873116815601363391569432771777384307753846809846044008037825898437004497948980952794796337978379371399284784196560346704199913737669720546913945194705074624023168382793356990282078969564518583239277060832022862569976540495043979843103258595187463149141220001692022999517143756656154560858564213377419059253392657479846241750563040699656734721074976393208424095638746862861218031397780067873011034696693996304715362449333823769614600272953979781597508278288220353306161791550165099987431823422904984102169951901006281303144405449053597126465105579921096289122143593756022390357266831314174592661551163891725916088862473151410557041416342497411729925301327279644806244116731915914625469099265723814954385561301526475270430318398491088031581403825212520920855571506672038607268734385140790947476714460769089234888340606035348538690459637338791044946978096330963207378847554658717282603629061388554088921367569272014524313391839510867141417478000527769870850373685877234760116893950733045455949777681500812265449060803693882831451271974664460652354967893785211926403364884197271545861368463564396305865296771551800347564100124652494057640188180913964523758705035717572458627668822884319790436258653454856304354777507842982271500604307739443395934141580442628016267483572089482594759844645510528429112007134595309818663502021710990995885597227312675642316677875810414376563777870430412629450900967456225698097748682413964063319021757183023652015593283217295244670997084580469839426397592641973925512831081392886563578679069610453789326768984410687583104356747163409426090125343223848901321946316113389125796604206216692451884482921066867252441453439969295553663226135989116081843929932146136807909611152620863686428818247881049353016118292293138342556762542268376847960222363417507836729074407325726888525895914314918997347813055258238953079937313172197584815199021526139825457935054527195748278326844428064383868697659889987427132675746135375692356159533697791793255409931936840209569345047473465467090579695241964360931728285766468241440171613321049559537409650546801380056756047251101598819298751318543027870275530525973970633140423551340561780219548874467345035270469314128723424356607069204295574169987158374329820020192758856635008005888670306917086094089929665019837754810194083347258500977290423104193454348136175234518262211746853955045872103213969547346060081119417016959243864984217675357644465679781406281027018259021826645705163640878497530324606847447980149837071913203204157701737433536402769672899809185434899575175038719836574792539687583668801407754549765622298106257346749034391832717334689115750237564639121217703291998234954170840859733053508598786991365733917944173242310716960823251835620255181618207334518107231576865028365379621058902213461106617734582532392585402558125009936997505295733915058515799620923983889637962899585721765083645942142078257656103926996426999989564139491220464553384208672977320296596944573678434475070297907085112254706342445482387033129940505743221608990255333573626891265817695263221972667308628501233951095228056292195231349310348843873503600137959567045415463674268233597609216697626566223811893702497095099419075323003917496642665557830178788824178926503042420211407126760313097378643987625286448431263940066315920325709257131406585197899399823977237939711284541846171837123312091221829442855860364427035689765029979440731103061808882133840121016242563151147148296858019603375258868603623065009368743190316367126412059931646799307715619837705152290175124476211514963993672822965586271097510876578337634144583499495105089386955063851091224887729977108102954651406218901885463024436518568614586851375160944159403857576360075525827271974482218081776803878719814466563648206086915627808096425344026100272025252195614822237494719433260487279562104394906257581632524043512334512550936584392645822083253319244051662347492063690562608042132280763105167524031461543220121556282988868410294587637058352358775610175226344793867851462775664084904877366190807679660012614717650709714970018358970011321466510105945863361349750705983034791814049353650589862688948991013659487866220743581118097081940493164652237846841036674443074874482432570159136219565393083575100276175236850397027393836006653570264504314297710002879358572151623122312068736818889476602608126098879202505991968725269571003144924193346426021611326365836686612436417416832222132488787132133425097701612478278438957025976555403268828698218826867523990869950789598547203764924346173845300285305148119717272254366467505993328675098923430516778584103888991286273954194745711079324236010255574410989143681663177244545893366591748758524128316552055388312019786406898322756303171392800486841114447455817878781900470233228718080777984175555891411022057224364545097557980284075935504042689570942512368675777325391892555809248649397447023220071094411916839112754474971462092667909840886404555830732802623956610539906569115522835934865995950484991022598399982229894045008390417048710797102679444253108596712620533406749889293670403273324508974765427130611707973119704235899469085872021574157139220082818845411814334453009489323424159553408882425299944672711571560872251758175841121610800161925156254940682130823232270043559248714361607336579587253112409020278232806513602342157129373213067130206731595656380306905046854486544254330365925254524013748178284170603049980860146757557673891918843674260544457218745096652466144409106773801182244093201013655628892182975905894292744132919262767211979678612272649543196747761867688954137285260984014672269255815198831343543315646929376602413083557289574148994639629724948459079497365557827955931444086187863293324652547019951586250494677658544243398656399580178404727786754514347770641255408017085073906559141088198202685577933540007875119169346997641989811074545009310917922554777589693189991514760936344123852873606239997026351402605234081417362658369777981332263054326374864853903437621489437212712440057076487742208739695602048707552688680997307124991144909412973918890830784884192761579199075184857369031172185654427675766460307906241909174188080994049148569829104531921097628148344712639486031209351445327922651617612599535742970982515597223928959287415335742675736139030932288861468982311939101241857178671523509868209101265107742795739566377934659913421863480095771279781010704551311050984933943047664068313108778653890418587140912821919204072252167527785255340865857763846901784648379252283144724017355895769844235251828789252538889850611666698935502475813244410875963340316574631476579273132416677563677923448764012902676232532433473798733318884491147286805111142079293703375289428579320197576522002789195687782606587698874487574852307084189212435435140283533389231456862067933789845957685303848998577996355834785674907381930500886957972710681340008193656162935234494065210203800657203821721113573255673076052745669683793147805653244296509450556198770775796162671382160467142102464580274999786494512691068303050965903173491181936030240282490103785004993514685454650220357537650703611637078471691126303950062454635333417815041038198968279958840224702685861974480706205068715045005878175469398760173906284195661280529265257744127036442017890349726123893317366122745651201875287172505193912914085798568704599854359965185392127338053497420891860179457752186420037371763950309785878101710420854768733812856452636496914619641113488382204743661477008997095166017892398885556908572681733101763109161433107208411079166250503614582927458814144349421788617366146308742473503607072304841219917292066957654416974080548881465233627295926094499445716044412937506110898145058766365672557803830618006875949465555864357710843191201406812935790390518457422366680698684332082489081956448080086471747952459281088840683982272672706686804105728241141783596145105676563845259731535218772198395640234180438420234650963962302074871056554215619864168957725880321505614502120446498297483328563096771635857272833615452742752091216299461399350046433901689979527060121541544122674378197514395931443863080993832199997276997381279638313577767384900344057086555072830518097902287043934279158567251481991902202722132321493950438105544032121193951074184759090388798910834283993651699192250866593133701920201415129596532250630621448742156997878129526807207679981136679108856290222163904170616199147003306541864023989623011901313183973569804569334888089997964879665108952746138240825062140576320112327613486901295888358468022900632445216831136805650113199495228273149696320896448062045840078486637359332312048655487834614334187365724645681310223649653350509378304395594497632492221311487545406189070982325899403458135634455003036825685257980730325589402242093338091912447286394363703856983202380882266310560398977190253959555056586889333839499865716630159860195968826956554283612923307308372128075081112936762229986440485312917258057479777241878762370387448516831541806114651297218282459392512174117131017906160385935405370784133477549060840119297342010933701329838082733018024628770420080429693626001886873270322365801241723771671163978969516033248323281614500013413497334732950609837653507371989502978858839151620477697340832214587801179531270112986087608481457102672133427765241391398028989550045851429675090647176851937338100399710792364110384729309935284368491931948910601872919983977141551446994915541761349296760778857755281717462635517711952330774489434321231776020860843411138373387779153452685080241935374577728559149777618257523991809500679832245047027524360778377785483129742261111703942039434573289159305888923175795526171573094267328373084892304037003238292828518524603050088523418863546682181195112576436422268300238553577087523970717415431233115111800621828474104621217617580403430726322941697487796901239636174539732569810877934713532531528342946879191017424264343212871239569115035553670811457181328909995082689739253505222905484208616447333096694218980784716106816008774433211678045265727048348061053482448435033278490477102947600234413316595437746471422505349944781937298880207227569558757096111824360088114737153600212303657565942389436524614707851689972363270692602138051288467596400102478716774548203438284582093922289813455071169110480926246973138568559252815116262714048084778194090269842583596492800649799984377137299126777713094310424367295958796712505257324364005236714288379350982243777586868789833179140042743294965994233653141312134756553550074922244649996808937087946541340440226012098131346041743310151681760514358407371305805433025024808041925003579900902504787530859740584720682233172628644337809794754851948529327169893778762934973414519442057163542690922836255329041683365003971977796516022329092922186932189530167936243807761009151011439342304412501136091119016727138755163684521071339220030872196895129040144008262834672988751792631092473310047031070579669627420750934882530236879150529175541498069748690749932525704787732787324565207894226587926236006072271474995228483379608265115315502151573482837444036399229700206519339173082100760958523716802368951569636773078109268768351841546961677833840930634396359500690454986989164548125382875896000449104141810879051558832936146197022471876370670482813463865473284938866909820174666598980409870020749522078457488311732853231087678283411473690078720574704538661671890135859818163125802534198066835228314738344710111405009153366626703009997771479703469810541958046271351845402278076027721125570960551753672379124714016513868287500416747340946114879098422412062047710422591245538960679098832218502330562557018603833846259770593356219732961314543116171089693626174724737803869425182462327624981421003907772192330476874968203185335610904343095390207098709805783571574071788346322097490897263607252175556541778529070766894082615989399560872570054324840031337965542319330761097374812999479017880729269053454006884164617662840409509000683072775287537332803202121090794558584819308470255591188988028940951601132379799167372033954114279112203690187465495478766100356536722478527330422949170031797928154046736205532303031425969878795090948130252713991776060699819168929208161514686917619089673131164381406794060389303508213013880124273109325715731855450385896510478757544938291638885110760982800799074695898462443229332846588377516417710617407814139773196559774256702929716129713253125668470587274035738088567026103195818276524836064147781351935650946604980625781352479751353125292740623111445845991917107212733749941501641165602948554210391957616886608644540659778864682659565814713753513394520206494641946043383899425051506475526862777892721686106856765990898475761640510854906006878758802307023152311504953134732600476293849327197273422371951678772434111144204111120072336286029285407835503345630018864948026523621678383921872263981157871058069789455987711334960139260823733269107495933355858371926950356288118675778744847323600923979859761819921119696594269583827390619548451233467567005743693933434191019007608747862521309552757096592782499920048999371485264176960161656238636944452927301768107128750603886763360241997986195271325857345879533704931152985340176240130156202380873478783587152151108699270255840950794218292418760963614416212414166583771718481180285813080087937480045155734359585729545110552842726601647528709580833881702173223432132765350463774591772009134409659714693681314963216186073328296237115651921200468803066890488076649580836996945155780915696942298472048805483704785368400719060423644537914198275195864829873630000211305895624306309549098619873293634688198554394493566691308398573802230307398137050723940018989023889593560776436471112341262748563844434103108653022577485863215494374653886583760058217170989326392240225198759621553267141103869594289552542770357193673624848697176952353456343187201058007033122890546683752582133643561103294563928741660448939305059690115531360125782711314130434105960150363943653448754262803088122346689679128022004154448965472925300494213039943439292511642582165875993708250268479571422874278010862741589897707253766706208761276704405342885525662940779464498465512212867433518695046882404060205631447562690323128423159973971619117986753149111407031389254690155207605157259439034414082561840373847690099169579171537754164675013734244298079801723081911363907422216231176400593617911996487734373079975900912925345169371485284924731329713739814894787050546399102864983498562320567540638936322756761023616456775768417029243039410672674142042053040327438282678716392780790635991041858892329899080724914572843519273248914070463043929507204073613647899268524236370084814759670558145337970832298905903288827735047483021764184470587918497854758238153230315547665765268649767785253728632810358912348643551558470974854226114770232551833908165701305437224238884053390034776544023791885725381541069547022608860401737154881402393628277529383051984798968845109543540549168823216685362843825004011872303305164722843832878190996891102131578051320949686166484807553069965183710284835541739764233899781953850209355654771474926403916073198604665921247628680285052190194446378833873787300751304632605046015116347985740958817849773961841010657311763914904409830374540836517006478028383856059066042666038543278831998728871218663652799894128937317198824627576112516207241554827565482364674504191691784423753241769180126689656092061080657507483623645061575064443066731485216943176363748434320197141750399589979728056498838683227023580490977274477561098798174343122477753575308599487950457634801263970644281303489033954976610519992156180721718118480527134185947648933273142508088372818207623090017421866646957092918735799188954699962762001426653936967688184991218589415205398151561741054233140451135455931558063932876457206642775754641811728363079356476724013151895070898650153452376658402362939727578648281798879666638159903464570252627407467108571973258455451546443423542773191978870292029380275013303498344093792550202719940190720301508365366456472279583731919191960514377067240987639639990808117757058079661169502580004166228613855865700772887145733171693495291800835565145379438474966186407786615048535556366464261765036046771793023539361743328886085528165702309094970650621476757219938345646964151540166580540836038257231669914526558351921261014628880929210280793345800433865480262588585168129499943918202391981428581437133778926978683941597769364204707021477083309353962963994671232992810370282459779662049255437524735306323118229749204353635582983080399006141549802712114791767034801552565554759591857221273869968358792955020316727556981562840670980341287878752886448122843346367604236198151743297412866629768340084569130224002804949821467284760831776557873624386517734298338731074945019323749403371456754152288155353104107307639083311722494846571285040306569787182336877911306267876468518561941335095977190919896081452934884833287910839781329764782260994095659269916661480563262177405491099176892971294966913592387839173613553557226803672556906490652274749691174364827374790493094745493316056446483681650521876831380158409789115538258036175237845037586894319831465795254645295280598656402173761123739474633922457348464608950060061251382539135294070497660308613009718254985994927036252693524871206398327691060399377416182983183225309975333875308724916094108273392251642574186744376110279158616433234647278740362040301059318926393844926583997936573204347542458429629615056856075104742443761428708228602452725062970851766555402342974697896861057382001777404396008496992152502298767906108353291301618949554026511470501436131506260774865175972045184927857857063597638816082306179921017444996591193288426429530665631038570251062291983036457505393303057231111330206959062537692089996199036238526863280460024235296333072617974102567088748141971009176894161115027512165098320148386268038575589702018226197060038228835814493085170949923758983095203541147514255047360837785424966649799133178911801152064936522774962900866575057956411276005384387752784692020025830102597315755693083882679998862774981228375388497242211142720687990485155569629289289579171687883082281665104116162828766991952417399911022016606963930901888894947860712019814264341726018554090278413175002277320889886372741784321597247974507672125551994156958030058698877160828008860005912196453131134014633002548220695398725894242846593845650415748819247274122308190467523501226980791074279829912823999157926590415237456484158732601403131909570219121343450700755415475207584067096498911387991664823071258428549330950894790123977138882654078160018791361702814946668819366059111964165907234218829666368472855374333202695798438624940980606049617368756001495012902709566061334556838311234453258558469236689169960115814350895747858112305580681625463003345088489435297967245160488366137231178720759788206968063081336606365518250482989105836048848478656218303846146900134314220135834184371132182271549788954896453372891955365395821114861690262349867814235408830100007898476505980444123515430344812728272401275404751711675767931149685966826437206488364498195238803797194847843532185074421269528662130829850674511853335393080034727835050625576358304873431472906008175723039042708581017027907570785815815271195037341521198344122403200289394703302757377017141704454999497365347744885241797411626306860867682179715779127138306087335165487786279765517695452192095672190767182799452259662745110045081114801757305883202482050385555111531109890860686137685653994054583607467823965790663937678539956152787634433965728497018601270230996888999951946037759970744901138660560471907323372317444906533198436125596757356981834439527659825708121828850197854157016942521791621585416410119385868734747131012912589872719973471303707271717935060510172761498074825830758122386847817577923961002879070125373719922426854949613749154638698109136851815411755176344622675337152195194046719098672391826288989271040081779050659424526627861925358343584627824655246152180908133568332762349054710221701096790515349085342961600073315169259152939982099384929473624731749043257273222721114360760759166581715695521399810634124895086253517750749297057445874028617140728162824723162454780431403042907788549332081741849967381022674836780385201807413510011642239316248635968367316571401880567228230597359579813619673598704746497333644179393490536167453058676676897234437020801396523432744126728000762137280888225504917752031502177146243998882210576007775942640834651346736765804300694505480421076241672411478491596646561521159012595864267389507524696897080969396155802841969735681262882412335648316794388954679075000048768533703221614648812119723854327643875297760197389018717781682068848895290812116696374926487041816050694777408649714204807232833091503219339197290588726534181532880650518208690583551142033898377131981495622783688611860954892570565643866016433391791896964949699159142594055907406453144304480420987834225072244937723784869320443984563704465596431189075366299626927241417329687776413631444160409227055519427257561080522486066412145582485525069232920432240437742613854392425505078289357519516440425037043777418009789532200111523238929012280628587309711993233272539663917889793392275517923999953813244782580574068904487711382938122200906931166180266217169484548256756633252141416943429714702992936775165400656021678836890018956660868952525307904095735850423005006776781607139406265882354271724555425235462077310827791234001042157596568042880378154545768098725144517546345190170244494819190687075918739317683946761316728600354522511513779478759565429685526388420385829600607140595773876095329376535435678454854497939598919273428999194597936111041530070267788329004187825906166708871956982198902992763058173734004040020036912419696598145112395602545132639421378504826379670364521166544991286193687597905784093825918825628478608599461824760943116739618715127163911972094271835060243095906836250667604332735474994706355581212213062306192509560322020716760378272251324854210702553879630335519194401225202170283577932765467472313231818850295413638096167069322736387733982243730398947564564060158466087769462038153489628036584556244310874640616458968636289694069671097812158280154083779908790205312371233265753927863296870458643390546930049027010466097008631281726881174346443452440498212431703171397123132885972829347280220016691919988092408984394069524988260401164532844304752130552772161414669439782562043644334209950222976503132135424083600640442716881798588288698293388064927674274028427296990073993877472941777134225314669935657790321756999016730278233106832405665665880233465873024375330720730468074659101011505462460063564923171612222135999865822724474799696604840551514723197018247359669098690069249893194679877087074074698203949034960242970356723919981865990415633149451481423418481561089365292893712999917386164892627210503855424972882310605676707507857497583359596646169220346016001323972583484129040456343672897700292702304371838934047029775725507992209051485547749758909302093570318331507461837013776517943760421241881814687706666060784216419571326007422908214051901606544751405430400219537377687867122985443360543236323487175394509105313482050370746370878561835872553631489959041008865629122858480095656412807814094573677844215481492070275867865374722379487048524014455508736911901364087660680868996857022998571339372120829143621751628901237090981046284580506514329068386974322608666262536576335024699064261049263564734637189969152968209954580483133266466605509590157976906646528538925477306193711247828127758902572169641166610972449349183063066370431870937788830680480714279534864900374664718236905104212477269588929704282620968206404200411007678678933792199383835291675307602182063989887778799364070041795583452250234820497115820595573911481068331295247837829883615344638506139465534250751896185583099020990982730839232440490576182954723998010744809255992249579501242850769162702013959518542639837824636324476015629119601809679919585167281780302744149990914774639287840037635511266582741920396680028936583643449253854133292688326903725965755878577801554165275074240790705478879338783374512255155888164083651503811450838471063233022580446636846302201961032436426959547438361323201035739824941101106407688895976374108321186436462158984173700971651496121943727637792314537119458121066523354931009364717901711740927894796017348145231700306518537281738832054635091023856686986116980120012484032262377792019693209935683974107001279345272069183969399442177387836192674726854679704521753348818563230915098715225636597245729705752510458957003976545378880049888377813914134936490490017245641905696692977566333805785917712705896063891078384171244547983556699153624100341280823329069891398404871019968553053142541954811979310510501477216931667520881068683741701850282669390013963559180646797237324105663888407329494612120587984027778313242090475779462738007296633483254119754986044013057205770240709324551439100432041733407753267345153660131173260370467275084444488086316729378413491562988743852778999732863706682076239885695887472703057404030144244094863161706672322527970250068483258425132213601689098031460215771319802053631494025274043353274654585505423519010387536899448261816753315825618807667315787686263838686157450988561579546141707838641326590130786925932686092008979873098524015360019701335001945997415465360426154561017633687251096156261866030093975661149170392235009171352451060839853394099636695322832338061934867511042681105243619839379480268742052542278183401358232702334462543509305853417461254091081507338926228232299784701901074980880373784094617135210985530523378186360404547601330029384695550321742926148680198569740153903877441983331662268424671997248117729216491962510739077567396543367702490472837440326896494253699454363038018793833819632122475061228700515498126502650074068666776070412054040356477087689182107077619819355392459092226140775364228354198195760667523763521295034243516397484433040483249897414705958125429405544162171529580577184559734757610224503227022408645506062276474682729194662950984694724261108112189645021554500915185673914769754967691276007294908110771305756484210530507098435978043453259788645549861994349997957608720581564210425341427531096208019046365589711445111037543272913126362399344883109352996510620394438963896056411965184362203044531596661377102494009877404024807653335384308143981179442944389299742498355699379622935401839276259499932370404583321436453892176324771952798000590705226102714439782684472324306241616640627797011413572326117265266705532942063408371327748368557526391351618194668333692251064719510955449756994554755848373720265793993222005764310748625369658471632667834470128966454561225474826444546846225330388597875968945145857885259389894370970324770168327823471094484480223204026209976355280980698002796226850254680001576954377387804506377549564910869595855995750023859801570243819638936670777903933234081891421632628441378134696356265511409542096006140380380692057169992634206569009842491733097710768201769045959676065143108603989993136658649008773792164623032390157864374163361148172848248262039061553984627496747137424109089430364906897381622204106116344592720418474769420198151567813019989465266857848774061874072661946415666147909073500049708297330928159298531611681922654092165555768410478692395800798582946610537612115128782851615833971596082265894653250440646538114059977180030878787091888116879248628074719756592974996604128332804227393829972660525000896839337385117197506359515232905681600675359802689933126888736317782371280185411196244144903480567876389106940337731921048203178382475870665897146430726142873703933373487072302760615177345374014251083160523188385445967255821457928548358820584610376716551821670222082944486046867795104712383122747350410548161426796711854824022903864535729063517757035382841984991156904747478577412341477677182236122611420698764645699484179348125877005533342717934801342976066869200881031879681787149089608757573515584910381379397345504810835204689842779652944280337343511557474560535015463248028662073151593310948713230317309637148203012355815130038936193856155870698384765179674793234940237651470833969415687813842370180723854083603271822521122433480706247385186097248849894989261050464402498160197423385890138654918239750607929516991608806606384987152111657411003647688431310625231452183728532643944504092966987439389066061246980264125193894012286702215919636136347265652984116736721468941171557871274130433791500500963383902001531435589771946417013849627842027456330692077851949745874422588929541217178318346901313590759336806520455865686284728107845506702305963226514736295722454405724442303936713663028076886494391741120124486913886136916599643409487924072675956641500065980814551715133139986586482798059488648179450188213874362681019623205395674319232713900302064221782866294631996865057616381884386973157448856476750307059837727810712737734580360857278329344049338307210187618486685953314081491173157234082342525897048655766750101673006565080682118937125772360722639053016635490805837392609417158689900163126841182975915912161434365890380706014909493984253900104479465759257098186490310469634272823758674371179655873881505701943766100743259150913237192251120632520852545088691105159408657220363676597297456080261548638791863941811718869551523290037643743172109861929502037725922969252528949999696667212986282867748935792312108710169940434351341947074763519868278611470532596023136224867461598395848385463260834267131087201661946669888883088074289815588743269673357598141536627099213323025707983643653790331674556020535504705215491701500104426098962731423488158239744319191083661755210730556058970785507342181869452736457132296701045733955987515705684814516837437863864418387526312152026450863571289208853493003500170015681262401113906654652980072852038432980954921122992089841081644451689527569039454638775144851578918235746460378519800044756200415032117939001481414890327148214359957183877418366303549664931763185153537119122349274305445178683561845036337447993382147930589211389185951790689140973410840157847060063224678499942343129868895892557373144183483731663689319124297785800839239518074882647575313687804374308246667115923681415071428035469934900707749597646778640508190159238125271711512931566149756890647255671251290718218752151471316377627789862422438544156690719134168860546583189385301656061172805235356975852504860627522909811358681330331058039430546373386347054225178675477049635819419556759481969471038879474219944117426778064769076667972066569956557234744024006083709484567446630578816233736955060983052944854708742501883086230672131219545007448992047370865828454612390273349528019379386695029016249982981497084287726976075169772077465523798335430855548854480262497204697926102598428607289107631333495337783666675035802266213868303413943056061840734011000160623133854665559951426751032339881028146080241139947580734551385969618335499927979883398725232896663723230278772140507078557061037692965464975374422731718319638258761152260563732908359351132221541225584347122382674872377848043175663485123221970185513044969294174348881710781560616407580573539532960172496839823615871933757878086570166496308280924686945118734204665043008185471088402393118299661095061903058562143946548441741870320289821656007722534129260720300100656144639053504005873472897062300348249506816962918795213811927398945933215847919457120936222847523229761252546695763562813034650018511754447771502806430267865009225805674984670969995047181625826290048080931877812697557928699423004047181591612029324910927166666105352267054552380375031678933181809753227465539256624359490670907972029194527902332733409754244123352875229312042050390534965991575101022901478148426564055269232139186474730982420746327579199233015274886766936836187869199090226593628128481183290764919674755729421162940552099607937698425881205136453430385879722644019210369382113059306770894398197424692249956257417493816344798616959989026849368194623418437890905705739159529553032999310672996929615343511544041309966574752507696846831606835035516256307660925791101173851480226735617842157980213724170265390284098622505587710124571391143620319285959813309796140047989925942170021259007444808130216429754100580146626107112644565355546258897149104378517948821830813729645871461386371848063817579055900318047604474596833433056455498627624641596095834140382899704367130968256905431240915852409897377896314628360961481062089333608886769211974893176951543143552214752243306265565561723214844273659932880595907289957134838934147561120825769562901381221251171175506862105434001416058170729421182808809050941637841792966990523711566692687672288051695008583582312819121129842397633472606455225642839492800427750718746390441976435797389044813274482253892116018148600202861369846117498546972736202652275885041652623732215360924203608978643815049215352283610491434091585572184907640551746806915924764393960087059609093068320458420005226474623507885657300958435762026528234856964377648939484289899750312327846834963140440587113168522560972430842713498128093312677068630516097308975299447625875723277666409021442083942577713671790986812984037489942246150901949438740202769627922995673356168948150491135404182207178768752561884143266001387368809748031318266978232030358332684268309869090530136984023199408074060775306597827993241593472998377840292364371930867194486414395576992433053827168540239998878164859521883125193270397479150241869522315435027932740710651129556405854570253194526867988155399762260382092773943516771737793397117335996312797107473680110796005565219119206256397191403797731156624290322266494320659839211415280619877064838023438319906864883149923512321443926204238856415736234997587010364521194383752936237810080275959016414802192814486630748947646486512650460631952063906902263592750821016384773873850226920201379320316345565961044983294608757472413413883216609899409789100479525704003172773838671883619387364011166153790399042678084471707637442971396169627634947698313914729210038473354020529876892923788856736195449805892418313322494190661905063444027357076455828483145485992830907926657195661354219139963450370351349558172703901116610725906612950848156104354278461820021325094808719789722426437266584848726315057077268849368376648682361707990507273504173180827528418864191830106143788864778343651072792158362756148780643368100191381872222058749458534663405370232927532532450237969114848473049113586342437573399983982440445120008628480986261397495353586506769554785056087588178387610818131506449870163763258279496895105315590992145987552720147996675584599320249313066906092614250684596654744061431972252192589598500184955920995768302717523030355802061939829405960533276865526598510806911946791318661224978654934721398136952563729060657581490305467088871774536498859324657981154721031226664130815151720464305394519138046745816546445484257255316890546587520048922648112808683382827572161972077485252753552397806785416841567191205086072118194841064846876896703483566501552748266341525013593696995566279179929716737822255629964778132690780892702529239285062015450965817552597441900389731353568443643523285034870143393260067225993065356492765932284446496975951467167084559690092252542798676588078213840208013565584880886445628379975193654601822267422005501272461913626238561061061092828108990010631514706796738256427009540470132070107559719287385994169335222120084774542725231149876959209118097121368907039007233522549627621223167219139700521993172486258445016938974674631288849899689352530771566605625466311289803403609291387222420756476453824494958231733183030688104172021157332569375125015064298290501534867890156700795756035226240032632922175845845648907154876649523234451779889949074627690914696271851693858736800087721488729766776431076839369529491967087971677463953494242011568910607794343670149867350350674492906570857537518432567455824088006908892197926471390575361996640122130258607441632666123014229345650255008639992985346154849232960699691600279694232577583853054205734569227244181924785759517449931777247746428702973341929671740815855845668226240385917529305755528208790305629514530351650653034057205784560660770129574053444861269235675528418141381133345229208407113800876129845295423844925605905423093777107004011421343723327631110131237752724253801418922410678454616925124912691705285079294265817455964653345579949758504763900390505266356907606475036415777989138319887041601941388623962516543526810961974290201341156354734146719488620694502005243031618504144577856570394120432896208426313483895768000646880463251350555563523285732144295550434788768119132239032280461937109896929598250107536303442538460966042828999801959661983277767471175927208861058402529302168329243306198586225414890231877245341972997317396709910889381327222151161825412628929802283585521768559504171896101823364745801479787056495841955988435347087686145806753905037551082633530179849393997572005781361261189714829649145561106850569566654415240906859724828116575103619247327815379119194204721182801175990848863974644714241599253639013855501342684410895056009220880303721799353862471177091440639352329190863615317262132123920379114014803107413277149576399864127720824423010852519235729220845911691620239871984471919642969905328958153854735495795173207901208744172457816982212141549984793032865894316424371464873061637733304600410307151253832326928345153188669545795457372163172576971623822688953446172984833140728675238302573053322455210808397885515822727559847115480423298381381650792074750967497114081117602927734010681126309661852388043690743521697022691233868486336409057943665248830196104140071594683695464720127228914076190082335885253585735188906049228432709990551066432638029605513946743499273966042387379972206979671230656283087801536460807511766016482326136639073710341102756786895742441613047876654346123838613180933314560994650289596695261674214433640429129487184498569401607651298693373357653297573618183804049538455226715755222978840498046101653096266394305868103816196988989073383796463244573662342671541476723176059473701977468395371807141931624360438919710127428949433743546591630891043102200003546421554073523270380032114073609310965939863649487650956065159423858248395749629953737461080859890453124105932147827235209236034368965750290045302099849068248928062754726129243302248630085780313391575617636143903640557116390465445860452051393939092440201039755454277289359862361268864969559501018427668743880927986336078764452320395192794665497335852940231586047378541294161389079244650645657828898193009660639900991248472349669200088158066041571009297798692428813777432016923348854901328274282827225539527178719745922587597556297474505945991312737674374537377157501481841011331181505019536869947823066593978285038375893490010078868264460129926710182715768329175199119052497751448092028250348936768870180758292763184596064052505680730354839936393649248365415784827173470988775649088397052910921457135012265768656423191984921572649917471493132774211527770827541052463449004306213657601152825370377961005715201958988186398153912546922015991039886014840189152933169830691266341051183001974785033251641631828807501233713138961750606661288829185448994302783646231786672433822628069401823081422030381958191617810039361819760111996122263980924048694775462422710261341241055743938367441129570811102361915045509498920076716301305656805980633123977078000849504163556847013061915706791568689889256148241022796983647422762402323794558881780168238466296573895590464982233594730037484343676667471043733941533239936523228816265482577669980307741892501573412460391837715026250410375805128139752355452687971364731748347733411166281308821510744358968386025373994176440342833810198364785759819455268553962026711527849567258983433391759281376015222331076264210700637880822355425215706467507377796927911191950104159757559183503210293176366801950134313644693457125554468522432042589193438771751899908207760567836589181959699783491429382768294067420250623069473313204878944876393255724183974736044893528196250019157030448981292797606851003249056767761453025344654045575336987614557660069891585834321280200691918394626837000542678655059710029744580083106211938979970635319104932139647353979566015352690845453333718150836424446099666488226437071149591555970193109434359078964872882294542011134284588483900225985750187113158447510069655410914276344883006182704626306618659197690042944736840960762119515607782422931064711622156276293127326530045643435179199179985235508538222099058263192320503692492117384717211106059423113057345833514358634484581824023513992514960330623126788933999807841811672794043434946398542883126374797254862162343274452390063374225264539582666147460633276818237830796282652800420840923689474836305559164524291090063760419166474747869220543428834731605893827567334507087885487302180700414167150608688863093020069931295019952078878349537422758287858904316932816500779494178267262830585298199172457775963948346056437298989314602002495234969859563180914542552002862368761690374113821917793659317270766316376609696520999056378091094038610160717574164030635281267478796414028711280107299697782524017171839468789522099175649985025411038624632909187324578702968481843059426233430535053500793244431951373392873859839675321438297620496553054513594634008239974392335962694984198473606634910717855441382836892512600191813441939010331850785333294546627758917334544332209527041719981668539533121430631665211651816087203416106827620376414388904177124023135934180689778108167622548300023514359472334800481223890958161505380245579639538098011533590804759182085505085317017070653577806988419123484605957685622794564243721790694891446209208172172673622553162875861311817565833268925258703081847241151230148106905770944237115086882408550646044036707097116705992411641533268022186109077816807744553984458204144571832915466102576962506706511494314153373819056240775846081776781194009733021015200725838417833860177235506249016508740535273421951850916965264756653300747576207758010250006355194346447275611649103791683291988577520410481262972984172754589766168274365686843204236817905565731964301134668451049595016439326567401282507348409445428641247352903082655388218672220591100130416614463652296130702773104830631734599891161354797300586000279948506684766915104942938315678805370916275517333036662680786240297978590245325117392941311964811122104425074361327242068873590757212192239625579434247847914340511879834436017911242878343502906473145055955828448225253758931069087707634464093373733367512382108814120868943025558900552153538601188259415497258535799901252819187656920994734033460096802726492882539478779777255679519952630010880119906285376454709186632055094681987052512496325544422926578815782614488356413586982788953631704190381573120093762163704463804203698021292815096506639941221498487041888582236131009409162860197806729595582623446605555433575009589097284282995604778019765388147771752365463047014481875234540796093762897747994879560490873036448232799551216806368900611634298505405425112824215038294523134281831618044087569973902916923626554096709354070220402173695977071480099975587251651247627398248251015179442124693319923416937430177744069530681382272365895793874228683832457180955757307487347683287646846067372952736411383810291881789249737581053215667888717910129240199385386248853887058169506241867494810452535402196202656432977205301442039597296556919260687581277286147407294122052618092618428257823643957063731411664270497113500990219715391748550142451196695862544386523847543095235693387810432370587066457562009224706526177426503815324383800022055241107039144600663266912111342793173751688705432277644466170146395539953789189423545857215678935921550909935502337243509141778643197757366560002455544548594209192475215236516588537439282787171655751401208561308601957907500830481679997890361190985658498539146397820495182193905699454790214479136306564234430212009694376663528439102699525402184486791749133237405405343236679752723204466799855583102220713667159995866009079035584644549002474732382899395736013186630989646298195576049094340062458551413335525609660525831539163904915631487768235612180126605747900513680269745889511633715327138457635108856562164960764209582820135033216483636821080177038108363100982450721024234907522650715028262316492230320211583220205174115131051233947682166761477955833167357713642098897727881062147836014942166748446316249566427720459143937250033302740355681876701988015979576848256399250754517857512911746201926980390704785034042245096729138939817734981171659163100374590626403047081176250105660856087440229434301343921347936936620459348260536244786491149619459861161085325775284154009680434919170882147158154506377490038041916567170642402652105057912639401297618291922428451187093632890557932476379149945146192400065731349891485806568837272414323312645239650572067741984651752423365251992121960857259449484920805696310269845142155851528217301626556881219115800224350075083388527396499284459858307746198837960055053615570794879323943151860729665457631132443326863654257213270566150329588984256528346131442729516010709927901184512804051922898734765899976831695770898956184816083930424315909146248533237124766364069283108448000687176084879330351888106127955012095286535021514959584105326491389655907255083305070569758381056964463011929072010837736234473139240359706228751079071831398893342790954882200140923271676905121980864581653234471816891188132134314579844718067191971130376221759435919607918764730779374541495950208614013971306644580218161418908298114398557505771828974513851709105551588610291700000508749544000955245863910416715535908768142469983235476017210380990335224361078902773092534252356353858841052637138684180823278289569714633585947073700902207465152063971375709996384225542809019097805759130249662767027087427165641825085503280473930088521656549545863445845018654278163640075978025412877453230304503356166071785252662872270648187243180685273621954227985572043287130786237232799009765205041962540280652676466047401138269180213713250207398498839958252627139933636469506596550248303572093473139149793890710104524672279872080019051480737345947373931086324272946704226605652050929108057279095866887638705430872849555784497086075484864245025755371953653348449703041082657565045766855268891853610046373258117169329514653139439380599946830715196874728301842219556449605768258146558545513023870807001027084075588491816281717364419412974919035034399233275130949877179019262035765592548371566368288730466476800900118670118225421559724477329558333273957428161636718286331934848439215145349761294126183529325575199125132830093409179811984855951632090654218597076719508145239294094250876390042378406111001528949063677080627032940383945217777170654821539195871035831584016705893860541971514114157671054167983615971602325341253177771505595220293216012019351522206110529447019657781921693185776705212283448694697801295529476950600423684646720707209258549064541973218497954663886861624406322858330787161768609665372989395829916089348083514853353312100997529501227468741199121291633239798471414521635494335408827454760510641805459414583549130387874098204247752867559187023389488167760752928375386200776278061546600586291708505564459124280251990306896890238164981476651530630918949619869105971675892243933458954170234370218364404248094086712724967684741283285710172503016224798152393384731965306502089730072353703068451409682494734295867844341643869420087724880867672943554216801842937898043805334493718586051726530458752663407772797184623285081936362043456945120843845063278411021994490616979626861292757089735246993640492419290533733632943770362263016224281589045223939048608872984970987448635923178492921458585370438920508799118659369439516918130686401847283373653615035605965304502177764600980462799093053783380037507016002916780398906222944586213736009876667251486804206452928249670248454816954660245678149936250241780784890679171204000294343590791314725059943413603636028838374361730462155769959826261599472094563066645418190382448047416299801832462317716478477706631614897808822114850389749117815918229997479399253870662979087257236053136508939960325373747988533328598019304388661089794525720027537105391514668304134123747950225435853918475808418580608252705004495556422838776265916404531023833762463981950365829868103694070159712616558264445197307663258250805869688195080534206416560032983342686115483271715543429504534034307478474883876839895244641036570580903948391827138717313507530601562885183970422334766843994864664619060878927415604227899496227637397541230184703141142950356700302442279523721845321646198434799350482186263974924885486431272372357319429357697449659344331845516314027732721857814527619373424310368654196881993793434045659962691038757493754270428698246152968678473392961224408557047120620500513083031020493588428367464575200038040459526484837930969811597285483499391074786598332595013252730917623232387758836240662824581675969532992242211130379517448889908737226716947352971382116057883217831749328164719422912303797987174762497837077679066284261273116776338058453756580747566578913527335554276238253293642434828382445272217472858902686946379180675436243678673691901508522730247886721762251058303872303151054694429764364430554903486642688503649798278993326263879899474118831182173002836101295136041777395250139603903635531611636762225903163857218883811959885121228087512443856204583195659711494735047807339929640053753153970088452761080954608508900728231228716153182524479671976203586311084707315270116633634650453066521877278410332017396634019765337705267110256006145415150383223165586015828057161443957433812218543075777205138607531426554024482811659447740456593089840983619127805247905270210273794044894658538445478085193404679462816736681433526079927464365034558134389684649179290879813518355566172326174615561817302261000514987889728220033774127186931385211658799034346435104172466524671486109761003734850139550872084157666123026128393429980339335218136548139396244393296459508994396421335186695250946559571539185764717984914329626753616820507512684127125575288325383183070443662447959985479527630827514897485065788158641657163108357838224281599493327825332488104032331928882498525112940074572384757395652657548738436641771161320146327044562351662802148458385656043206881561145023167817134414032201116414382476221159189763038301411925972928624925232052950601916043429668369484867132131181148402890164863904438844042987849472288936661730396778821735245600143952724468935132939630383546357836612176369793558379381600034034039506464612809308835133994872180560335131102091938030064226424353342113099160618044470498452937583488694665065050773167868717792522076522645840219416486297075647683840474667574437910856809578535886939616318436270558685685725073820071321532284462801111944555046002215237601286896998423198767723381647683954604994246467670977413329442381108768931222229872118814098511572687919431685814262303571753631675582983553320808865899264940469303057443871979172912236794001772987410485702066083602814529280973212688835933345220767296675162300560289347783748657212024112483698066393961125627275813951969969550202953228855965271433630439793413901965213813922484952955195701108382896975121985370860166247570251580639087670370364841026199646923309695453833816153912352216613123286100485777549822260072088036751784089399295277090055556396880844513279753681345734519077835043063110800830676357867148745525431307248200715456675532551745453303494706732093204085556951369804141594934195618997297820016971829470921772318932225556873376060631664739786080028081884397200020660460945826408220082373759634506319761056992952426386023737765207363608401231922066943737686917635151808590459597404778452029812405632711278481525877718926040399981066261628989191337612239219791469418466528025857477312687233050925839613025638539116658845694140127472932677945868876648146698022761645425462017003721596394389692540745181584667595139192649266697120422041092846498272246587799135406439583529582836267361270652739994752588378593822350047538015668564119432222472506105602687712797992482222558071623992579198914284198911870758584867684746548869082818540258685738228497916259354927955581393685467485136271488546483198108643973097897082080634418366155112206016183479191541229549666606392032195364983636700638283918300776836102008774302178989061571963790577967316331099476133354037926597977454470868316512366763407907836535069079190249775889055432941254168832206892230464779003940998145112268683073194027246575491709700181995830884144807953088833857735238657330195320174633298180742165513505858111249719392713289007799368852045913754789233742406037044816087007817093164587289403460213227279204440592091702034019234667832236060171016767243306193599482336642931139224146490942768080887911413159308280305896377919233833592405076445518587375776948143704060701738635203496062412048998335865317051826774211117487876972516866982008037571180386667149940969228423824608262249513018798302272427791056258888070848265799654760168295990853581866817339871290834859435277215928827408015257921851397242507749299238024387970158472563194919090490140870874223592544851580407296150713814070956454149168789900062911662930860514146095926114229988765977345746214070716797498719427235666649161935050873158003828669484421936585524144541807695994997252147562105676111892216425240024936278956885878111868813052293957718725170238643813548896265296654441249099881430077377818768874975219306908897211375390761775667660189214475841311835368124618884389452692716113069967221315320757454690608780222800120935415532956462518304558605489963199644254595359129871882864946468782980503201788648527808094948142003309296499080289807631665669263194173676452175945086118469879388954811846226422061333185876526732696204882106739068500926193122414441170343997949953304758360435285904276942699548275905962608236512240637620388438143580131580378789299931555862554896709361787025448291171155731439754172441836008719674322310097852817465678895041346852661809932735507279611340213440154024402921673570708738837872562435871721161841884240264711194672486389937200479428952844175062753019866005812583626378719813257690165218268425124447290756746384666897625717027356620701382015337841893587969605797508011384684797817779093768374391572466028722233253937570314242673604030000955437314496684265964380102815672886204150807771954950397723894934718686098115645474249307330420611558141597522833030007271141795564344384630488730725595865203180111275784846213002098685271564347298571518414359403210477835104414553789679772713936525370989950235289290292924187198453009778934508851617245465939377311829311220866663731458538542783292099738935170265622839764539114251449557958277786680100769617230782484483626265347911510624575552221483004191109004834987939589760924131367250627237442684741427731124474968947489993650260857894560569085649116607871072950967894951228427333984000647698935869100024510066593352446273065493599553515443487527733042838138541283730302563206060116136057103560043004431887015665621504025785757245994862601723066601164614754192821402305990989480263833516952994813382782987524465914161051022942751225347794434086959660139002351477515033560059362236554697294333920124925599886598674199833510261901454243909001762863094258447936238886526000474995158745935197557018000344979049415370450989722546737743979308497875566850318405653543757369515662610997204422477967424587256847324274042418722282496298461206097568188864409880413915925786862256487541690066818572710457706986010694670433682699900023106522854162205069688188501594592006474055985607538223263406192334588759048217188708602395384681148861998230380482883588076980600905343879341578324174885728224316926532517152410905753050168474434695230069067489685747386176449244092522657478184496413557201820607347257039635396170090352540920430275787710416416637332153063165800768437451172901876367363952056029536272739782503123430975749126030324240930520126014304445514582992209436040274987377443886201837907002501587810951939442313101988061301202775118901302707735456604314785164838693786832884255217852076927122506871254406922871798989622542149192715778024607938592156720352536097863825816351183906904706486546373827212468497773585739128525996999530119488489746844003907421506924082781508044546007971150918167473761546261414867128677789600200555596902957891164258284174356463826935528496940337461463968198181497388974275396003482656992354892644550141528085896625001339844670285609564382216206590319143890069289278562833628691072247662813939420120850398921039817516646052485645456440421666660890372195472906077501089510710679538189682818535392317284651890537104301505739561782279730834924174687865627540476305280390597129318071499185029330398326342208364560262095977806102294237810883289665126693901049732460997990722409569030620143760549678595653940010889163878123322328709973955701247757049871570500510628377636843106010345899636457515482197231528516476623231620152326400236679108516052184949386902482545528951007286953884920045304040087272799455298523544195722035162358992004067148494999982770010975521333805314541381000285917030769897049037041053476447018612594208996282516200649949719381117067629200378816604726539781778924415628754050139318715569441366256550479785439586977343266972538586257629933133959924990740247920066250136801994822729747819065339202927025508157783415663128630846093215068307456578290685167724406224762005335587184072343160795092651867311924431697289924179575163594836547405440206032312848768140135042052702431331521963845981556024948417297766751502611775291934521424696851054300928273934969625776429740895187762303127274930986956948707638456684505046827625355286346198102457725016589005687670633539580594436089921442835632838098353088702454837323095694541538764932835507128718154860537052533533985329613524295560746220546923036270394809591804071295403857550769277360736827561426383425754771728851257742001612702012058828133976181724029814952420461281363316144713425105328742691830662489494554038721146032738085139659777233220399334687386893657698832921657585519849907740155626389102202799446774227937519369398163849743497105092090667309612333084644198706941893599437144143610696603462576515467672821338852291689511717465708027979656272089656604009202879422247117906787286814819776201904733363533871262697295957044208856211986017223620537553530903422855118567249571426125357194775600540239143987394076500414483405654256693801070200768979735487203085181954144385835179487866928684033087849841132119820324006703777221390667484166816621700280027839860622749646199342662310159758977035128239751853056310004917499952795671564615941578310158431843793499196783161212124849665140518728433207101834980291719355360958331428868837957838854047455912149033471588924545190409464188667656992147940050817187023721657722585459840488058983819894404214258606399878563176204436295761890623438740404801912526473653250372474981535150611873148510970710092829554370983238669446216195204677273882147923279143694792149338516864469930824769046251247218906896516237048567269757486368405284514169855237298588211790160550002967773237442872930143152072230693864917981815373742509621435493504592244472128632606808830957658705338241640627022456471819499110839772324702462224075057305832669373917276090550030987423298717110106477788016426992812271258760689361835742258858579450096951623325866186948883304991915402484230491514334833569412371502713953209881375526467315114866699545543601199589905090624955003892064076955901603178956528556116894647934260720914504084883202054945473513166854230378559163675010470492900490831130950135349332296782935825197912179341379172442119552186330633022473880431110224541390134357434325265112785716087048816518292390585036043633023123464630062197963878415077753607539446729368670672608604300109828189388843991894956919263511555279595881756982327791665272216409243224102875929644595377121831801557525517349789911102380558964202883011221318087104522807835840453534771341927322420343871097539311758356458424531171389830867398656807085701168655896088753424917878495976812211359717955912101277243740163005942963028158471692101205169645687410403379704997549306556838528942190155092937608432929489325126163650070314728148329217276880802419505781367787617438890860944081120906151798567170988631716803688932268259712014075549837933092971182871946300651168050992902602293603827454632180347467943591049408462328871343897164609186646169394027598919010148919277282791366035706557437604324315342718866570472047886110614556739462484432327425495770930726359970690395095079103744632869886513749690608053111786064792269567525963492073103330462669208146486111291089624681955392455807247460457047261617036741450763144854893864202602051962418661929378868710447659065940798561195051136765060791297399882001596310962944124425375025106322152534096229842089265781623946725240319595724601307738824819237549548336665352615942111507491933407268823288904593250695018249824007491077824925305807986350490935657958046987781012666249559233840890467131879703916525147066680944068262147168013072716056471507556856837670466578199294144002360055392295183392838630067056428692913583162693499170371381265061612112216868156014140939933642094457194995696751148287590664410835427484186135578314264799192235739366231777888237431518032225542997626612796432634468303622387745838622252307612780958715669518430880830236098318436429418954420572987566948741718593954115118225408779326227887194094552651911799736330918351785511474998795024815517500446296196767004100317588052843311298540823978866412407155247566556770036801648950708634633214745623264920264266474219010696006682214302698214134532444247857729926685468904974491051032516195678365557914160235635484013526949442539740538881437149905482220695385063356672803026500850300013411463448210848416495761098154284840712608719356451701502873858287591443346314793355009679659562455008221214912377272300823963369422278204158729890813362971151572659580559426539159821361023208291603287800378744824123222705407490661020523624885984948004662298133898841658969014290258938965048387216881651720094304715140897500898105908122042701331235470814980623620030625945617610898902027639228039040142849978527391120165090068996216120390048607938883262761242834272277607458012040332254713078787425365040376036582126323918789584147934388088853807354383952896276480422789149844968677798045175474224045925777644422806916450337279809063970587829837624321397561802195461745953309096751193267016659595639764059342860501259879948103378210485581380015929191996831271016999997295970101465669258730708757971473962283778828075032253108385626834052166645197514221745109839516211141875362310988981125929373937087535134025166243887893855501232472771383395301900939868403571108139371445026347846504269953106115036933899614402814804285990896935010543027023564902042837966451700124447587810980499303017704027813932722082121706950329692518561880485740779087360062613122785082788887688621819171745519937432130808678188118242113027073721129464332821752656871991551648136551225129458012464753102820030011141271272811365294921152279143571063192530935952888059146898615336312328614887703474510077343356134676145140464626555956111376943377359223740251122294587086365493359547581927906417644969048309718033269307895331869327101273800598035661764638855080515597705627283027140829735280315178829839170500752630206788140061251769247132662493417005239067273074247150289090891989837014110123862165154198877093805232781911841831371301765793432705466214522093486419872513005625313723454442587339837969765541652596603700550189595908504692500327371334723755713140605157191202076309860563778870653151894554980724145180545886104684817027897508710107057985380739083744698489025585101869359113111797532596261708638320639995596058995105107684268082425917156407636569800114757294078185032286304418750457012689800109764556196961448742492370127109018435487471819907161885762984581992189884755291471696824281353512736799983886653829248480912542591067153795306069065209713055666151605854877452639409870517285750379984263230808839612961583459967040726449148879988886364224189961035279552724675343445062169774267592739513577833655964967433341632915887787194931354058461584181928392071635732531172323141603351977115752170209108108609186206820460058223783647305705337839672076299164129725048038711004663791206656669275851384791144822127430083144101149911679573761512289731230736125303680124877820226175447875854059492665197425444355162207067862124860115321524545185157579468628513996263489829909808235919278637119642404849859209650260161740525808427102950018941598775377818459642452480303926847582379715955603191249143159697575455624712122327667896689920380164057140613864225928616587871825751457268071243984172505202245718374575763777177547306481027028322563583191008162094177375763407498474526523019010477004212756646573438327676018333017209579829708667546179342878529624261399481168487188386288936710764830040369744262488497134709553524485082722488089377779435219611246364318935698467950012813664638101494435401629173933709405943323225028720334039203481428622950079771981852316066371653988597273077919335957004264490096595231235983958921807097759479214427920236103482839101236026657433627338800571982358005867382045920822353200843179310286309497512133920569320094903116505481764732657618368392337361766475925947383254920584925936907213241486991971434997810262463526513908592623961753789718864632118876977457946467890825882093507849337724835534144424666853221841771982088035723404207248964580416787072979967369001930084781432833268586580643459474367909918542106873772701336841734158243149139019862549030682090661231725860741048942282095877472827799720307410206511099408635764188173527184011833762632666003878622051410839835557820119978944253623964836060077903978961273083367875149290478072561110330917113938727614853951498988784645527207746052869967025189310140896834718513000928490384549076503507807684673081801749489720495875827083868464725655099909874309759232946310672470498461849220734376894137991122965408692374118849812872197869471418061138252016994231534038800116259145487113509152277788602713110334773136246819333245821903817734441854959796020385855554706404741062690473842878839311863341599435905394962767396686689795623879449831890881335798699924658408785246226873667225465982288597675673745580056453326916111802104268453024798401061891631321794304715122066469564310314086852858273196619776555896957878723882897626817876639643953375960146163729568456520886094735148013018948238422406395225083478492229267379797540767473850909479075662112303985656960811320952548190049015897479118598872424750654264039746119830353336317083470388105192603544867254046642599814577912498069278994131175695675612293029264111768518758885304427029986202573811359396106517573399005256060634590595642784403024051575409379498014334328163219753043865782541581119533255863322159868248913272162426963791953927919668233891512809759501368056081246730820470455499137668647648099670825456405564046979762125632109374858573796270115799357644454554172590670317383617822988848638508673632726055055989281096287714063280746261560594561210404010715983450801524909041845807263027508829535746661491446889562510978875177253242886165355909012300190813135295228496137584048645893681644687929485197029685767440313516602942221301491466588192186265412604411210973885005247857902954821913802198869125579004029556890540801418819143983287445078885859664609426501355423502839567375472971427086793506466350721843414951457185055048914873883719115059670625937024951192877381499130145374804759128209035006585780332555286295727626271970983049875002715015870950836310255635525700934650314353293479020986153047014835088572181459995076903105640234142696973344317501995603129268661691909033971998340461076886624420805601580945670520346304547107800010832802631572671378500700910560122834894916693202749672958381028234444265486934203327943205834899782699426499816984189233327417993261578527302312385807700303174251604461395401516085256868623621270648928595989536500150311245470003832399272835853734096703036362348663274613799642367426612173314208875799135586249350450362873361663466252211815223637578411961846647673919096642209340623598004563294189999542350376631378979191708954127990057361918174768164741816733683790991336034456434667765610501424877875111467869814178094828463450916549693650761674532269315288717389579373574722380251427153055754618959239579114854565994751768032547555815176355979032820997129885894117698699223565816325191416932807711774650128762699412076624473967885674030081444306073183003265974572985433883996628409254014496459885505869147244532231043668675617630058457843368665188650752275288991566608364699526876924684935243664884314001563873365807084551638215727210454982109075998394956302469952402144212586573458380792750325562917915721577904217576305738685021696568097190281539855873967443264702681884893949882611359376862638198089419810855337900579199376997929835739056291502090275804303427087045569661317451914462209631726631122021741403171202724938673618095304739951722318015057644683057374025836238368714513025514306257148564782402514533034592623303129395258328702491958774693446019422970125522906357250964835619897792047622226452738954854075133090249339474022481324522810275225701622528045709546005524705409946229081617675922730500161525341237551995725387864849822322369574331331085489999583476167767708383967317729217883764052220266953456614628660606034232377011399457779927138242970937137395965295369154756352503203742171950931997923889397100958238381676595478056196837559068494739668762587610577379122556716274532040552066535810193085268208241147449745601074712207663748193072211021628498455733328035485215509784394259918112202065913634150471708928114016465455570694426698890363987225767432732920135231447502009527348025590959468402136134591052414443236548492799272924333490551785344823222948001340741095071996043551315309531444867562187345703197611086768857428386704710103590972454690970115611129215010864823575672740590015836899694132068879280141444512818631863150677207594492604570638255576546004949624340738513166878048041325588822625531086728011177822623890670589741972440855239588259314407855752047571392859683562848319846554270976176543937186463172794545536961300614885237248714044553751987245685637237275544513716193317441569815574426785126341472261126749043456556982625677725199432738170762575728690881049345336425568097471569231879022699962172240188958231843382085516907127872230117526341187581314389140144179402883960101625128346080720197358463627551937030302361863719459889013014509415296009750298454703104527925798738692160069170501987878706370471315760136471038609468238143592885129961918383992174660455776232622932418862133083210865723275601505291170963767290422699409675233271007857449336497160366745700679492143951805098990167905750598647465459897213159869119984756051402594927641196181352070362636614543773464208180729919093212258854007568304876761113871684928550712146030648473478076635708851157865167869689217677256178925248012978523234319981058972604012729537530615400679628013669061485131612816006274364454526790507099243225891515760367525517314780931451732652110016490007758964945604851515111842278081777375016236254897841086855930934841328044409700656024512230741699769987706836000411852652478640521751141144866654599110615014058686475038853797054978706397023057888137787655728047532632854532234550987922215402504473303795560563195337481115095080000386039443573192054898477238277555387243101542191114919368135764624175249855079829766311485632363487314660612620454586430896206049648305321179831777787411914308758635609509887744213889865244774920319704708134281851081295530122961454007221429663443438912236747864851903721862174223852024422301106491078808864290756941245504084700979910856550855990865228031752766143527716065798927769957783602725047138704987490257464546608274829024191286287403000591526819468634255309519457753360714676483101043017882905750548621900731031805148629304158433973718111822559373485093190766958355947907238298769593768937317767094857713204298098478409761740080808830372696160310538422046665136049026322297335822106194498514231149702647178356477543321227669160176326345747917986395738657882347782052844360115665280473646352681732744057290132763463614782243950422053807030316994522183960019336208361369219385780613542228872043051008878762196900056624084290449999068008952400593818385942514929162325324059400499201441290404113031115614798387880105011366124793416537593556380429693690419373887625442886552821927534793423489632775993824253665483014206262127990664152167364049052118666779638283445903372159454897191572237477885887331682730288739040893409198441367444635917941130327957233436955263976747643029639670791256076003324827759158430329361521621389266166921953336568653852219936330804552458579389440003048430905782668263438147400694597295403249639307584463518770820955704984697663550888008212750802092443526530342895124420382655676086095051286314079642634585341850742697790787800187831679188300338607572582490766170772646381428456127942328259555824203636936080320181743686831366506310132911154828950132023757354631759893691578521466801998780420835095091626208792001476600202956102899990610903066160828718895680471692965236498071788266563021306615139537031829854715609104085818751020922664793767877096621607662437391189476035462414162082377319987581648173420152134076561766637128971538100391864125993042324236665156414248707111808945264067001662615082806464071694548941238095080693485397420036146878645741996441831694369097278321230053247352873094686400868494718662243680936552953333775910969634674960698511428064218930119849855882774393538974288699754917590882691827185599502657221372038084869683637504135294101064037836336290125356967982078319398152414221550106224520109156917377787709363770425117280908425085904525553357597656184260218060217041225468383924506902516702725092174002978498608767399273815843376328980618536494297325808692774995623283344907398486332742625896260320394569541774982724110992796189585308383519210914447664101871785097859424097631769188331950133108888301333143978286212977957122508910098071090938477926077648670014507191535423408069459574932876227335705961448613244524534512391951406177626938531180759574668681877732995418817200086756813068410254528663160226501774156656487190891096359679022876739328016972666616791614129629593605424754133825521441554840251269779507117581956726592552002445141888283537367209213664904801495323325510315106219868904875908030029996842793308417037275696672063169752770587492732465371442779465922306913002184397086549670946517994568020466348904986121508283676385694374572848761406205648241002011065776140483650281192142582486125105782458754548799693158982873582495716112653260584373269923030999398107363390041083097733421583415005459808640999562996185916713527606132336485408887019464590064839979181154910170911087870900858362797465292770325698790856904097960091461986404417347456423455181000298872563751981717310713757173608345158214023313818323318374424675146812159279555573743966927633530310483399230748129875054258574435156834161967848623667125014086825871677957612523935401592342385766323225705188278046081881516585462705183596230911452452198878857641432404004302220748475730782129263260218095248704004230740369802463437162958735515328779848067017839646376629534134675438049087176266312981773589650655050542660667723159332685896743156282804880126455738847186274327396753079281381515524808253722801704028162130177201646343060302302436961684415290382201268865108520399476906186369375899303539266588649653717692697008902248002400343905400886185885683821132654880009685838845780532624599901884060184825269890080412903305902565906037621407151527306006110750593303319195068132657909777380580197445185035117214195168466954292909647437988164248583978013277273118751866509451260049303546858594680606828137460408734293481587505282125473940516558029890810594687937797909915601253502256476689405731892925079463869894719270915186299735927327833360229537137145069013795081592559404140264639367331899090568454197140558665261868173098513663439813012171820760062962635213777005111075814469440711478618401734379721781098236339882377446319529876397626313696842573226946763737975016449204172648604592433465834245925793390247996703638610921124159340654879277329642165886250050840153084882020975059820871642127631151308202269037154188220278219037130435891712592538692891740691102831258958026735939143802647262464166646823412621922078011000726339679763955022879286242585904627418438328539439737072183315085891140877316901891622322573940344841889221127277926412708795768169614847593554196076348307431794999300523096808733200323503184402890004927613334973243023601554660259075714420669004909212230937881879736847459733461735570659913798696190443416385410905613186421475613163000974060304048253048648793282779136616763545596541697342775402149637193868255739879399027907177760669540934780768176427713688286220845370803666106727529851001983894676827367633664029866390850465018116496157081733599407653043325629227372827380712363089002578915305845237141185785161677029749635697662600544894418245021201972509619716680239578018797511918707624948606907907537670482493914441102267610384209965841038503964332603781864673809493847908370424283144955852418602421870236621613247760535859113690145278934216478700836662587582789065561322123040579494268103195843022200948806052622630289889883458531796805251764549000736968107563688052077152845000343530596863973476230231733736170517037063811469970976153679951444957277046220050994574480005313250576694819236144984696855784777012837206627136338141462829951504206612869415705422894129249253590894768193027293098955946709305248489083458991095802816114824432175966855294793609404734718195847115273952182528927663415065700941062834509246084226126963389400506386964456908993509750890570326545510321082079815901938872957725203644779407190029936396048682014628434342431945336967895730890851045671676072621649107469878270867373079830857981603202986000028353955437731051974359287381422787790228824680706125483639471530702425685871023496158310758893724332975032708552864152029752316191590053099296871945799943422619326530984148349087803401667687906171080228354940932671823071831872142205263827886929599948092615544967263320343381002035419149980061795163457768186284866497360969740238789986091709227260202568771854758907737762982978055048851738968080512434121259141866610618774679596728704712489789588033473643356893340661798076299775970500667588514798593041695760160571296854117617882876564833892656140876372494755093353140754834309614482346256157581934284705083781159288928100149874712362020057386298999023861477494470694953453036924711476543536761372486903354244724589000579558544177026879326663735925814793790696003257138672932108308969720704683554724771464094200658056651818448253106278302827915426206460619353638102979369655814492366450215016377068827751529144086575516021781105911763868373065118009054206333641742833752023676568456553891506292192925040830214343431990445900952247508667087966841096474953173407766925636874399882137493734635033091941909449849929424022184810977353710496523793422126792791609758573191803634221287838594565175205833701733419188991620444238821697503197611552033180118058633422021922455591232331277380575016083947324799615717851417580319129200275640161458976653882626683775309644363908034018793729388709810978745932178032575878587903575191366442543446501492616436396851897236800535628936798624527773736542881058651687264822569091125449441934133615573873282788228001137092944644487269141279207642298102939345871104188272317527848610811252315337680384421859877547367397657906343181874702410523600274888891754218625456092096904945312979322521261585477413392844451340480201486900764905612450561515582514127384146614131206439155124737264020297605782339179223378376757842927297255054011083178873849780896512619528573927185281479538101817348443008506076382871280288027602801923802925127410282396229374481031401371232642460535018634415907109127588378892484016434873131715925984950969289162202956520041723248154826616137321141660416759910210266443389252625885729254591721380905550609545581267816272510214351483304027641733188091162771831081544985384913190271082130399166541906057052269807556044101909647205198112297479778903313039481127220843051516805101953258947606856275143975145340721963366731749487447199611009031636382767235696552006645103664971302152724341078828073565370326150580170621037948510765543217642225708865968989985678796867336331535301473923165688667361936771659440133599399521420937856756307107008512040439388796503371702859161252571483577496160728904959330824769018911486958574666107305465044848832742413990347688694532542866860840637031687764820834392133392868715044183721542237981222230156847266144236743581920556135593780639788170236955524302156187964120012416117083228225846678894876450170715619023940568281934341986106265985397985361051251259406081541962339653505578070277769413686089678232997121472299374858308677310266795090687234534843700541101453668658637325591796841545598030298211472188128770090774919520676713846130378327244557528203094280620415507718551876784401628020620072163374051046725224570605530001005517847177154569888439951415397852655754068227778145160167080599021182666931700808873182827724936459434966674993979340984745395500401582446336206334916704118204942707855234009147004647318459923522669315431867086835467524639694525119377958344670467743256502732784090227486456495557566933322627130085539465511516215929008618000906955294977722958801315037837609659344954132047793980579895171699784721071030704659013061702095504965772355987776860124057995056667073171417980829898288165302556761353410154434622579975441503832091247169693927125308507225910645764878866033648334619707020092117174800571515436674502728533778215649076502508762597074715060613854482234368703896492007240449383596207428500730335158761636186130846295613468123349535248955110323296129135324823851595762869922196080888072855674896635579052183748148397110913981568607894406978734356705348576636786315788702187413847090358769638234445538649168723742885186555264690524563656520466076513455434133198273437359169200418035922157291347400527320663531868748113885238270352081207067017640012004708848117307562894854543475070365862435677589459611655531480789803958181146570747246220652893907328647208187045888794043781753911523052132689102749581266439126501955726467345240826219235720303684768097961477612232022083239835004312530110697238538230642027870104852425617078458726162889640403815369545181566899137151556961033020919510550287808964943740804461762720340449313860362487717352394298490901533424152324355642913053003197373698316194000159214844148584695320791590733079870564209118887757320710054231566980137583907117861912054531495449741205884949638685169209392925635999296838699656055903900854073688750615288236327651329652265547512702312876315348459326331695018543779341807404717497832404482667238068930748082091323393694782785918950954245315030128757273263984381250102027233158415499365481367846726026068377491011151621773678312335129052860255845714330302286950605541694702837952547169988203395804909516805343227413103671319432402892399598579977165296342904840690903777677277398228025500489543111145206467088135156171822715791700605125241022336979117031770100031890488283981614872176704101861647125840757247192720320758409788577026634155929770606955035188588850140572254759700282392804266380043128660669284892682774794613103875367587450952862982590871572272790834450712490001218654493010086256416442268732939436204108391001788289018517544747098935668440874333096219704451298718991066032962447517822932864975140964785842070461118596899176045092277720113531664903759123484894032999206343761918923939970609539133541254075047092266603633541376636855181818581055983910202625048041666653589648259510443916202597497376646783628896331618284779916044710849904665476014079768734410631015239510469220856801766529433617211468962286501715245100878868949350148547264321160563415243087672939775734616064936392799543077909435358379456024348505720067440531327253600273577620512769133135103449255160291542366453065643824000356753092573056594806459916561908635791008762925545851596096844586911919990659157328268864918488077456567257828408156684508213890810168827222497685868219666707647787821794820696581501913180100215440904855207934449452893537661604297839952598213720973133656864098310427137453497467207933463985286002414068325037063792618011732450442251697619713371145735265139927681990527662208271265985541732378286163295479214844114583429072351228899196464942236556170301907001978245103541001225434475569265074537052645519741602351792996246181785152953286577794168044042143949937419094410711366440620181657673539047647276710206271299275002101678999209363804037578566169589993898984313919027663900882001743890775348726570611732722874120773236513252755344503428498991246004843618967373479714071251230094051373638340653652983413087589259436677751596203093144870385963128234039448338695991808610170916608213784295821065230417515543886376269764090473630263545181922725861752467305665170258205143062093167149209432280954592796028491887319384627169193276576436013055502630429435467442583551182229082616204556547693014034182426764382078210506392700372177274032373793687310288282911646210642842345718582935709478829034429792895253748682258360447627705026680980949324071463199765817566698913163250821423193861844329298761495453543674175025967797259340545998096303218245617002488042497576068507755842885336923347629091854599359869455512620254101245984950796093898288554247244120213304994146493129079288271456007270657582273246070958875788592281794776451666817347492737833767468343985748397604293342150888184718256466444250684400077664746870488477601596930125378294882838492883335660952632477837355605583836059216934887310103875709377806816625864132679723781385690610283978900625514716120039698321492485061749053428953269736737090691782519847918762871771710149297319088991227640411778477685825426230859741411555975692065115600911114044722777265643738684044900816206377046398821977673356758717265253528615819969468341017769272910894017166050598428325325241811069001876626073884554736553326849391090330711729035155297658327100008716801898842498861904731029183800287234978519013685018314022328891717800434891036246682078878477952444607398364319626931745463864841652180676168533613637568280841088013066189416936594837314221945936250014826885265173226536861548309556331071935388670052365968800706467244862637654398872994156206646660115409374247146978880426384164236231254926419230625643434914583066074918219915613170759244905369605914573460531851573051769620440606366298965560280537683517053202854040989473673420860075030996633446251984325841219309353435133678861597402965102793761197028862700607883533257975890309800603343343247583298906173525291657715785926887021955223298119165018193484836117395889647926803520005800653741684038975617510329667297273716908377594792827267574844394662464098302558278953427745654931544951593274406752531059500941932460529018107645597414477428758819006612378045251245644358983282207049553823196511063937829473191292986399267864966157373677786636386849843811319377156687366691196069036694688885531611637985324562062545613486600054298600830861586596307401357753106781356791054784497258920564028100632403689760528329621742454640837958542947235453106914584412478063164695703977613485843779831489651158925170711010344790621435361708849366065687370471578789781993027146257679006913712862257257802393156902610482196609330607614186164464366426918176830988984941238884346586585682724263351623160838527774001101624396152346918907460520194844021826264828304409302173362511156843595990927847266652960400071717790043663388988484618955441618159264940785555763932081176688414508598137505229787805394006460700268178355111452262679343660809917805689742385911441223002690337106787310985753870577538685496976273594519683192677054860886650539377957000646646539058187898748648382614348651204247731633068180973590957027925436398315613576462478744022982648406192825717261286137471885096740897337137598713000209291619238405531384178608407310529520507910614471894803515680774133506212425516053113454335848839458298436831308543539326448426939799771114055312722319783625311691052766278377591835274101063526720586650493808676023697139133230725045635907536960596311765788826236456117391186295332089077929989840203886017783202315556494433529193393175406682879646952963395987002800670781847681828258082890015257117399228629110683142641138130281787048505240505511225801854102268903416677139880028477826674827424765228552340764231261023660297247559287451123864030357584752669847444377374002718612295268187367203437002381262697573597385227030247691653275561786078392308930583493816896289030475955597540366691145470684640794754053034344259821966947890954283049321891518879431918941720776755839686858329308035198247094346612942571834011138318436128205261529664435680563019311030799634727703544873254001454860731612883397104516576466975846487074976903019103259568920267904286683673292699197851410573589278096749947847000386882353988155386908669710043804263713895702288093441133360411152900525459129269709030979630055836988875183485249468347780985989888081103799916599925410924699693797310160524348664520399227827330875320969036448731268432342382838104973753527342112428695228947111377466505447315738241635959313885730424786840210096475707959509637636732977544842157708232942858828454214755758215856237046512839161446720226462775978686701847737968595582589590820771812879823001644369030851888230532017153573573694496304142176271868266201648807727618249123863944200380507800600265144877474402978747752785871994156316787040476914343116545234783497776663472089066642011377117311534690353793183476316312048538782555555679169832147022952013413034974981495799797476819244103457424939604769502109809415050777627559133099482680814438767469016660947382304049781768868827933684607540387849089209447305437888515577655024073335423835612212366438296563172576891259825483405385316434442986004086485502441388633056201060529946343733676687395239529463392932354064934591215784557440396986711179297959926567401865693631325999607026356519359869812023638190831500387214830994668560377980887583765987954307280107747195874950996858976033293115582957983567570126975986671671261990860865877190141813239370942079545550396709046508307634940960178815601026956784119646704009008338983759216874639233983507779093911353826239045925860938117654886214979027495224237778436024189101226607443555237680610973991218279856106689851436971630470543500068776879899668388454442005514820440504808102575652836642251511930937277110079996968355438291326007471794185194708592551427181187617169165237711526791913801265884817071351675334483000535016507516775419622300555410649757877813399219697071488015235821414876328972419270874367754531509614736617305690431395398580253574900897263797337210671683005432220838113515417740904929068516103089793744610328854780878639746367157245981104173099691016937928751418445183965045507282798191375914420206895091559927621053001991167357001470771964898952753074615916751359731544762594559759397169594006115967777860058492680197015936917739856964335059767821366303285489273599170946731546410946308287917149728884925940993264050343458815199347986318467866040232142350492098458958887042027782513856146734753562066709614644518437611923110277401394637527619381202216279235445342265214131450902569414171501773640345051064927439275117257843505741478742096851860532612049860770507380411044416717438176398605001462641405532410731802944516432273949823507825710883192121578500944353229575118239268444459219819129032009251308712636001439368808949179287631690559472119674332621035170995064307907232675712125995579845157307292894380976243587529891826972236399425053656856561823487421121963340370185117028201171653786506265343861102096593010710133815367913462438458700532319499805779479198661921092275546170321487425566108679148135715190879396355345664205512006726035690098401209122225992710051773656039612551136620817556805909812420039039742900515475984285423983910263574888366458921513922728708780842926760783336260742443545291067518924865352463879958522348899814846731472695095856204344509028455689736352095467082930773296183588956369229470958726491363083725985324779254192545238379176523509593457328634708199754430810985014816745252478590239928259012756212643622084515955551970576489856092009190152129123706623161219674009665500954377821153697469195494437335940443791012640522348603589577491756831924287620314486732664637955853270341650385907049411312949824641132114310543795734574334479356325562242726261641286410858121972498875124763681457189787803144706956848972398396012563830972001955667150693933551640471107283018419675996004891087778958381073436157638245532785606342533315349371902270794972313189444571968096638828091779261776922020619453503267638424818616875702884334729182231687556132926727415754957009626690628229862924115306510336980073260963824616975232140236164091872493892104675868239321579677636230061683677402823279477813478423587071191379336091301357596736769402775772523772681042108624268391906873232201930892035911591599488955820920674904364726343650405846206188152610670383964517079306584203206703471895400252684565156509909902306859580410289609202999320452908481918174760506354465650312871054751917248108508518178825640545812708714213586555503762690923427177644413052380898543839113661509180295500866516573675107685602508898014504715046942499024840378564328027711209638840021237984234974730279774507560477415322541400078898595883903754945539304972732375372623450832506293320516551328073139318817143504097834764420312662666304710791424274881499782067121975141457973240387748085224185812208070454444263285330082801394228139207342221371676090112115235154426899719884794620892150276201762152351293567322760133267687077345438345336096955640108270686989363523665631937673528886721846455892782914378558513680700374129373960782937354082005094940111130855781625214638102165583755433005741636114256576375817675443892827314642061521223898566496241817219090460827765186988530419987584005430211963107507545100081078801229295888060867233089354887634260072347646089062924486237562735113328919270762326446451730059081623205939515362233545057041477143282758216785569160421854858566396352540449853975480716182490032251361641980869171751614572194497430810827687674214195022388108777303899034410485555256807253390660594995555881031892146067000844178225419711142364250867610497638870727120772616634677195641203644572638564054146299018886047254111875756665698030346918285335872370614381493522440961251625372982347758244275297293213675831020992487597490862628066316104768995340306489089786566794235358953433898195983734015810834149923471950036712710552435495837193779878060362224439882458777637257054972426000107980567190074383362642203525354286902986719766470634573223307317648990278717506042379015600528290534367884289261806590670043407618394079609149013686369491735650188077977498835171088508548851854440457119636129578995322066192788639723801182897338598983659897655103008868477955873163726974596200122621388249158604073093606507113965977920294823575064553093237844365079078311599904649443459996718136423659680151778892922104456752685176485162077482284621034906953654980564230850710216279130503336058433423960817411316570581758166974097087235046679702051278492820106711339566160723335413129100545235307014955991120671418334222442080615392099583005471549628459016618117176874919564355046063219211723742437009382904148644392922648596844552766488978785729874845675027035972919640741180104859985700623374830425651327336166181544354657744368670669566979889814177905579587645109860066916765836486182990114281299038532159170305427182005750606077558540278269541182933333440259081548900047702898834587686595782184019241094950503929494858821901325164949482660007162765330492466206320357257477148507032426289768422170432440981741527249602298870801926222003069172224300812854702501399512317311638305561449387986564794745275880092517643318097833884864833098258979822297308303578157362796033860419742496995102563490535461040452643640291768128202986692485133395886672351021755735860647645629892703049013925331554950941201478962684440598971094399104955138128098957256560414678051403464978270568272141728863903427689789384506408391273320767188400305678035775551176910590180633987257395935520574621182752724832402659413428555964010479873986624607884699683968999776510198393496303201149415327716848615840195432018341382331509714794246440423645315677599560205859134715464750707845427438877117100611003013217517091431792051847650597914929696916673599346330677930898645477525583500145764057138792141940714500512184079413064072946618028423077225001583938497774242487818990505916234869331001565787688575623534006211710536221450187714667657089643274435719257871943583786227241756096042769438424762858076415120701864535299222707400846920461777297844184139774538241026882649007819358214050281637376595583619853094220699647402467282599318555035678941563630526005808645970671802774097858483512135442926149585929477178553410122180613348765347367835208735180809388831236362224361538770633349877725839485131018756706453308038608172089044590217584888934894672540116657824262232731352155275528490728222236851632768630286514166582917326450082542622774810922795090420784778581746920450437816080273709795595872497828491405913168449047989040956335214479253579691043442494691571213436861664945547696734956681778353401062284503546327733096177237022566355958020917653724373783216231372129923635167877292338111112367008216314858829617634830331764299428027472477912606668185020511785218815189184761934562675943874063595423200616869512391065506607077590897679517585994217350556470679939164208824903323958392281169879196136101770577540468624223153710453840426516250755992758477568583202096766192493230751097884989185930264311545907899946293485952400714533257947224973761321469683277759857472442075786589062764180652654448397404480771411019126787945031608101122482871284989804980330501322617598754507310448576882846594396473105847723898538859285461721938054867430603437250893698951980061182562244701475341870419662125880267229946512487083233383504833446807283142162654307482301080977700708493888948742029688587192091289953386365330410103025840235626849450401521334321925449334870257316618634012760716784278247320067592571169234137136560857316042676170208704428901481774495219298894288818510221098967279765399758936224956952346777315847522587297260856697907753629665234338625975412789760574237407914360023958544458727203847351250027680294461579707336764448008142712937979724033027956033851432006319373317721410205169475325690728775435602421153197285247152077325623391728109738765795892029109029677239844237656421948924355929096989030412390734309777938375887615634286608254596473857557442956418202457583580862467599348444234323191233569708676204058827319748186353464748885625183214693084084591759388270289960933853519434073295099305691644604676187566178265418129892642511261840368446142476504912089171355037821509263249864436936218103413925201593320231751762112690315157428628950491267336996574988659954493817211474680750057059298621186698694620694192929468548346845623582896659235528018453852874120567111965014495107546049845511546381602807750631880310263133265589542406759655638859274999317661543093253521338558874615720325348439290597979898420047610352715006372819057891700659211144920876582698179367916146865210132452371945813147449233625357821842692856958566077362503028265053016140809296013640333751318520026747731405496550855195609343263178112774038673018470817520747449786268749463801148730149057358815351087483097810879434657918277181343708117198911274038388731787755660287642782550357289886169689594742507520476836538484664466833509645450262322548200320001085692914915775773315631590362788678055272082813940888177371357713757099869306831990130591813390068500268512928142375684394000983053606664460285838736446081504993446624075405459192724963903514635065240743717787510935530483959934080555194328840485889941778450346301747624174012584987459044481673812615415588876323623992737234008911611093420624632979520939072367723647753616671343377507141522078119421937494683943532648192711735655747210896089802521209496301875564593983208495194267138130993798578162050063749855936285517239996521264160992931166514896889095509779865226862291550284181391008257638735504094524802678199421191774234929782845642970703969705819534122179099896093400239627848911633242460468776290353958952909307268305534930785396869124996364247151878314209431858528149869909432845409242767975771948274246203100030522404225635891771848911571704691128724995895678108534910724015657534037144443542920160478116967942174536585773374387595220467395501092891295588061661881795513270679636356163952669388138608776537132061423622195966698237712307246796839231879927014288919634847361108675016505492016078912031717840338068168511274577368686005587816371716233491816071941157699738388348875116992430070119209339852654121743554035993395493288711592570176521270110501495723526419250635744943759316512261495811143758527905624562008676682033901340411986985427047539794249197921629003509410497222495979700515099873414919470680632692783780243813973751317597679670601953340872976164349936704752215275533282561789959206326951007517262858511132208184510517712311030038624120572849968863027290041846092221608104742545791664611884371479349883554566867860996013873942869423103350495437891468557942539135666838661984579895632013352600920218763009793316383579064643130782093566464039650682233083654456112842265997658289547292208520463340810757981606492592309599813397404387730497785924674950014862289051169645752434295198893261947698573837096212882924094586768655570490597401475206612305050475791550869334292852460482526925568363370559684458549255753962450920955726661415637157671044829925868079741577845838065593227131973658293420700505608463366433940518647186091250791980347579170059041392174893555648079110696881361363647847040316771186382227279987086189289164946271526240529202146896947499190686733204795043636014514816753402200405189060314505453936230196194844842125435920519299550902902360175004620025953906758618243110501208645752793219587461878031481901366444968390272921660530037844357796029054432737984192451044199743626256394929518272527126521919142698020016439422840233789100563203834154468213672623450528705703444700521288041523801626727665669537194101577298357644249908819467603813975152984533786852417650318897780568906797227609524287685583401709788713849193456939555562573840535490936459894990125446404374451697597029845575915949268091690479711152637258058742004490776252194071214679594732489353892187065772711783482622896506853965299673171588592620434503575450137034908462930512311487665620200756232250452768622393686877014821741961627239503052798672669874729237325075185359562358128887946117660270334954068453894648770292106880536913645370143190211398341833653311849320980354476579941433507742053818967809138220759576496582158022979411750067520719457324629175635830854811662562386615677820209597850249111148396535518818028251545443182650070068570729261126856529454329733220043052671803886155323943460743906853618162216748223277959095890246131662563277061424254041911475215156810377121522551799360523539385675094133784237923903597495453571633507808853462923202510749183886520181388069701121250063731783222274453977045960533400206030462263797828549568689999979660015970997889376502758142293779185982681844127176640282615110623675807019379876755999703143598217856520120494749328840135265659302407176004060378154207447835262165286458062903766651624529940101514428467309390237694934979694075443932302483470927994922035254456538687688045385880513333644685808004975387760681724967091395846982238413845525942844317754809183581061526359491148911325533281915222836356448841232236997397618445488860429145564151708376701556913214485446738570175726783178467206450257478167477753777263365137368509442589415308684823362541878291806160625101098241333117620842960212354166465618574396831291488727507140639998994763206911917350031018664407055343220242927353520666946830998433221059591947688810269964354980638757060477493592366735146275598633305608970789376123205783939065294381270338457276543330676182094057913518641893683808812794131688735251506955808362856339524570719989487477870619145479239246929007042915795179883672179130550326554559939045799978870090285249249998678440479029221512173247740690842099523903771967927664057593094216125438095372098103724101415215363377961320107447500971198300505067270034143864216988128203260090071639138863923319286662227826274549090268984755628707626819260852753042975349263136818888961994643732890922676824239907542352990740633501422720519550691798565805998490987003066442725054597597228437821262598443742366016413223570685134598565916130244706112720954955838801592283967829288068240674291421033359754020639217608721828524011156907108676012471833673445925375509703988479371667368503124698390470476621702992649817525909618475600768732446119752247375685435963816688999932663087056509126663086280982632516277205878533873328680931699138481936906875567572877992543568610377638882740752983748778028836424258023605636436022432427593523308235410442840001206298670163065556207565704407294469783552126843114341060810008601496044046753032655295132645943087850282819402794992397870257388333881366126128717654051863525404743774199460063007111682635240546206507955190730497358717158564897181341114638375294845433148241776379833715046959828303613240912620584171156187234669724687881366324893305272009920418285095591516452239389910862751827460147098881146210849030917614786937540694016254955069700213867924965888315257182814370755501819120863837465586268433996896725059038937560276314346229422075481165072602991944347397879139889229293193156948458895902979461203975094248359827487963257295997586313969724755572990375207832147880116043427992367806351281276808655004347303383690391214795230867823690246196187596399672339456798363310146768171147881593327075314517820518155951296541092391624779692314972671769283118647662502295760475854012299625062421393694653655429434484653752312465277712115762323391953141439960965854581168616573045979906315460748890472439346819712359947281496223471626112504344384328923654623990171591069082547018576900314960403685917410384396874114589951094379834226156197525123029770831287055898007049175793355980650273752829717543915220037206386660870273619859322243330489935430828681016323772263243208803194637693444726306779972274293662289430952946866066327869342946399564675448792632963783460533886335843710193118031524722397373676610897128283987818291607991310234616082037681698017160721534948267530602767160017387079600430758275050747557005086764757442943278431803549459734732123869853377272753787878517205442764039637935332892234385727289496712504086184197950562604461358263027068128867319449997348706354098529176029919822607179283232996864192139138710464474394150986520960279794175845706694089211383959653663381244456650709026803494921738553603616805455353005343815020233563838059476683285470156124900689882153788433875730219144395919664333443421949734639616692069679649252892052543490395864101882946654238622790318438809018717679967215613970813010033952120975473035569584232723896763260575852681183453248047537167296292887298992117772970191386459897740325423869690923291931214179879280657420117475548087416243333896602921898138854772065478034007011132924935982394345093489828500682897122088400783794035771092254657584275200214585138229196148237554461618352308225489795413963998672288277029390570317110609311841904002520062263119183861368590159912707809285133145331389208426658289721919850124976035756282428321352223353150728726052905180584150035977767295319520637787513018591866574421395728572221171436321673678434646807381560424262640029595824508316244299249451555737723292526648495415136011977554689450018224893882710382515928220851829924062647317744508383304434436579331018639338601057382637234492356172747799327170967231203643246651414303824496181682341682666851196019216291774341663185817143239019747918163582496704396400208871208072342211974908389805929994293199634480742175765210316694359824091396823186720094868438099880489340567867247350706001994408443593888174705873920277481838992622800656142760982716973082865043874885655823359942794197840870709956924663821117582912884653464386365749964998916123431099931851831943350877677495474693607394937488364264393512037203454998801726937583118637652901010795657805096895531255979603411427505768940887565893299201758760706656319654310027764814518725055828455355745893119492554742205259651119551198307234174108079169439369963651161532202087602084851687534578423322896981332819306660973704069453346080090282194437971214874122808369524537389797266913685363478113854514184481955206723235879285678682566599613076617629653871066684254774222503601005494670703067646452522881905043307486456062342962823301229478304598649095181180426867135686690194841581798716921456397158038760059827275942632759295569547775474813793406831981681001082763134906561616123451280140168285485594670834621465122419276015202452935503917017270436963818208651818044670271473289866868442334437115952068206875028626147658360705333406363292708714432134763055253654757316415715758705255313788607540715645422036719341623957701368344502847504768068284478085713054207328070150840032073376241864652778099815330318978219547579017089790629564408953567196875950689370265995345636561114854654673033228595875326066420977448299846085746836190386286368449428631245949903801319610422752758232379514575356315004317199048432268475342760368623806068757412691157166306695408885441911718656663419452497545903088826242104197812884651231440205231508015094811389684520152403654791333378538174856297753366406466304277364903896020306555228191153335058168333967814632413713793655097475212770847681225800870891092354685429733971404941733994170332552093320702728394857403473213353887796383066436758002929955159161217141082710348670030783309205469964460979825484634941792211801113831795743550645016363427943823304881387355360884298231211689695406908733350622866814561797153274508082603259073149363760348265461924563048808700865206739180162186939859218619702887117391783753860487366666445162267657252795068184547034422411431873220053037595380996660993950278431523517451638641412571200997701132782567729731473620005763029507097353486424569470354789647070071600007434702550084618126760242710028079686078837472063094062377725189438257829888682559552359725517739711698310641229485304930062757507739538451835012944003996291341442657330547693449688141491862280406445511143816465342683864415908749863610601955067414191945446318506194436563737091449297692193959851176801639680383449003774793169633089965753745837433389175540656548562718248910611217673314617092017276747901314110292769615092514574854374758941832407421148131763381339593964322033913542944676000151230788094382419617920505565281838185187820243286630403405452242340335218944954781906477471575717022095459651917253686623517807784618676470816680337509710873517460481135272896745989937564500738126114718009922019783072435369372141415501716772687839534715999110110368640702957046598643763102879133128349331674485586521452307674822279495247015394415392234159011358876932978830074338576775035488154811399067220113686854698891492842676683598896279545486739514059233404840127018413165570564308562153737682633981095279333481973428834999098843177116495523490724318548678398693586677400222656978986008112081150247516052374774802959844931065232099373066667890172345519525685579039797373732144517848144423870104144381067474081036078659047558288546556401966098423028967849436890800776017245918705016660847674938102303851931846639517493125542320005412926871885229599067483542765897830305854904970452490846586040940484613179264046796354825149528432318174608889216624644386899245214274182014692489665914148569317596712078961775482370664914017350521202074833611498108142490636968466372178135965976640491383906728899054883724940523818006864464895198464762030620733659693012003848501749546736799677999349522773103803862779745130721310476695614057759359544109154165544265627707422639919232072182712791012540381067145885086844760111428842711242286938023526011282171815930875296506690264055891529090340203055074334825207969346330109906419214041406294448278885495490177147017123187791501545209950797642987735147075052767385462654569171712821548379433422387194511192710558949133171852501027756128811496382290199748015459953372297178053602688788239966106266430285096278143577690404286252620234390702160733673771736079682815056557003940403812123030550088129520082047533034068560169764309647658745105305516432976602323987998926156034396648503985972346175793649357733295650486877949937165784070475717461770704608314018944464633597686309900840764554142666240986755048977270807246164801590375435434331589838356811249600391329342411707090499090166676108946108732574544534025633507685853758484161279359345162852658921030384221324253392561753182950217385331049277313327399721957403390412694422129318283311890453863297644638750311237437251814895304990155664734563893201005141632487647332079325943972112349017647206145902810248087487222680362107568770991439220703199917889447337058905015528979825351320113936619706941669533063423947093023076593514786307541285881938555756702320024750997273736379038447035554508865316421803417642722494512770400891898386271716714041828804860199363187189390075917976273290546552973320555001257460527716375650735641142359963166078913488084903167795412530048716110771466348176445163914190568179197380941118320890740052834396270109241240217023853473952368091509446386576533000271452449061451544479578041493211733441314923449449452798425834075404551969501229357868451090825924090906434646550648160333721236640168091415855150603187603267452720184131153194323364354171000328931897007978316196882849690633386410713094497920682598744547763189139503900910214275871382296595579899103316490487210440066966550486014288329674528998082754487629036349387641741097503885662456295648911659372487824816322020952046563294552479877300789621495186307653579207813279944302787799846999638657971010804288000488901815614155334587588821350560990541584596701527821812253157043079443259782045194617321196944549086390931231959244222939631633084067556434935794637048708525035720297090582008477149515777536381939064926474713220131251790699270410741941430655416806539577106862284095573177461796308287788737673347951619942651141099666766422278184952540734217703645494886111667618800380408558540294922663051768273367733504698757541951619837929133807532979906921728068933422425697687089943715134272222081067947853300253669748018368007213323199479300891014152159534559173558163452758521314933611141353595868349877341921282971642472092629512646880413010380262348425745754913816218525126594299981716117369463048473368867435516657966804138194565012510332083388937086595267984666194478050544774758821316452852489196340059024792566563206581931491291810559136114148620814898237381173551662012189416050883825552767313419127277840114188925337105408026956156652585280077463063649913960671451473324562114006797974908710597806230825827136834208049126705251175408665088327490466613434870665867138284094313030262286624566849839262040818773105753025527845395440386695199943491838274015054506936644845577408791857460963726318693492711467569565635441769358364490712431879829721059037364335550685106349693796974794943228378324765538166709447550078614831941030663328937981678559261902026607856001729638486684039316171941920765475932318016921101618812835517551461612900875845621899186473475677884074175471299043919679808875286079876441843778061921199610785736973831486463297351192113963564096477387808034468924339870069806740343733585071416435942033125473007886393713894410700569560996094783958611893282683130606387097531443549487744529061199775182684369282519017625691462318269266203978271777557803396222481809049591346644896549495112095358928089661695941644650102374964249225753035718529684936292778968803074324072685033412323640017496260737454718397047484512252285329350834438300969124621743843409780805123745495366723788600390194730622175889668530772969127328803339391002502144150236541467795982214185848482794010906752994695132213551644781001266758221021968547154283034066743224729981068733867372815792282072243834619987195098790540614612793929689980608701850307807308660731922277163263291838667879711897911820965760291522921287751868798915075252900291917233542707531005689960089983370452736667006082789474959825069492989735494111420265649001415118242144351458316415834979128483417542248473771325396377816783320979356089298668084076242797959260709645276003175622393185958025877425568918654861304962883563673870662418009542883544999629086358682861101707811557223183836261485162482608991551810589725102296033979480146603241183379667244533749492210858587479357928671388194431711053219830362534475871225764991835654793069645823013880972607152186531518677370110212421339241198671030934684469858279393247853812650944883182143367840388368896870314776241343153425049172520380268347737297886011268320024210386658863790074078026919946484898774507437716651583010104192241219630844096598639304951971017556340629463920580907439169584499171152663932047420879948305871369556431064507494796712229611819552633867592375620886407266305470093031803754278694253606179541216038398506018616903386049566436061434983278213974194089170763016225400881782611635827466551250111893614643173502022623377737460875379244519525426472971063486965782196399071875779452338618241509325061427210645939065736897191051976778882521144942709219144944919085449038431701812034509146625501263654296004585022475753117190398676827643997662122115703887360685701832657103543049999817834118090831220404154466180936334362237720784847130107895053311749707767278628460145841500125359256668571736718274470141371894463008924049280040164170730563110207111783467220847550623443144420635308139704101298088506966335297208096643915013163649880069257141538275306553019899994199435698281583710639137648736759315668218217222110343882885113637919001269419828343978435951671181742182552219669628466953407787663084835421923019759368330740814138388458348328163331031366747043216504671901638916563813074051853287846868638852534739669585115502690885044597968266973634517775174894970787046909379769044885522564516808252766958378453565578292466035644886700257940427387628953489310823859015132180818786437924433902690083150746593597310674195104075256477192346897475181956514111706742890226589846678759043267886719576875873759235550865043004683888646245164939989033608198191395763425956606616792036766104638619757330493708549955913223461853522061316816725231970866514799171889189074745307764571654714665134785324734175716061941492768448038263549405723827620883947715526411439787490964019045944196916936928077624750568596535626247135614386767468295015524014299135153302908533830194089104895912957407921702199418139361016211817888433223232617255321383125938777439960493484722426545462443353861341051241256142590740056680968401845527570717750717077288500184607745320301293984679831716743389412958656326190195731206692450538880176389080243253545352215529281712081904592063389644921613337106822151243907843291862144788920027485719768195034899585797460408008437596094654521998962594057133931745691739121616218452799115418387855835573286367769927373655666585990727943243205234979955189203049851541779133255471043712911435331579982597488674816702782825584275199418507557292651447201008395305600635248334201571946244432198893406948330796045769005797807369522705198438855783546949545412141458687880065964170144917081066810074675856937829049796979875366728207334987959085680854827962158134347092108999896341004801671526065439112091536582385809680465254204418729650428904230545241338732085444471616153279169681329412416524692363413981285634120351397958423651337015652099379308162094858556820278727353523299764022134115867209501602309374907012041334094899572242145476449630700020205833602868559757436203254676293781346001446675996128418558857869516548727962919710018872888966605275833020741035944364165735294145455700814900216984726257876410339928294673518605606548347369307374246935018929900102923588977788059348268485105498018378825619421881830313498301054803944316893953882236872698626828962812003458771793633952418006047835573565674831142909824457840320164048783120723258459947656071883792776200554150628394333851003408036516701973996470197448915010595982348421411384228450565646469499323208731953121035240103963589058369972732494702758836742044095515656222581809148170393494480697217377311316744148502022885863857498132969426104328304870665204419029103922986590959926827958967884582887828923891633884718645645997196091004893331650524487095605648913542394599102005265233815181832105541662950950429513489787359020019595525173049713933220618966204594357538700970093985538801473903478508676164779922458893805281492509343925806393366950832244626718089020087628723675989174369649074442599616709781466255907600377211268484877359699649822037602283271423222079976736339774323672767496189378214090248236294799643270407910433543788253219964690472655461484965597474773642865829853340685858311107003514394807287435883559559379573515972365197268448503328197728837840985468601553667199941419866835111807428217951483007555474866624127105611252282546660218345486991634424005470948191623208560832833090191366981481344455526617886989822689561570968173904566214155008917361907281661998034837918638192992266409111892513699495574254113694042710531746493148281917899758767617758811348626444811948436359359354221251769317175624889217012343955875698923734912183272677693166397980726197531143886494110961823861804918879496307338066409533915983728405057982090990161226067934176572268459095006863917385022375565328920822339773910242393044677550648838042991574126982022943000304107119963282701728850403920110289626994259234549602336114504656200996112117882244347895810758836300532824797284987217603109601717551744293053959039821689838212081101131748264110574801145539028236221657758049297203257053422499609092194700014815224826672074245909823122455464330177710637761675635356191766063556000946083676820197212764579861890872060901837550853670743267505200253213687665794654491696507993951463808762802877111133900788963427668414709898841678832492060441266242975175794944534395703163811404881313935171448860365805970240777277202496970574291692654087844884129047328800526656270229554949697374179455055696610216006882404446434208417824889927412655939651034241493742241433216536592324483060727423792797573065965012093990529776098881953835453452455396897568896242346154312711492932468567897816392920941921496881655001673677221419468580554162581945969585237269718610273960514062949265920738258925477037090028521147431131529612572496211953275684207834715327618493048081212976466786340524232257877983504617343800482004513878703897949673265750063453991824742274024385121142196836646809536508416786463769666563616009632027333063207907397035954173663806799930060703342969063390825053681956382540786249638441916213770149954314040515643946044784430073327595367050172313272350932217394497603555244794712374137804082615747858835164125121487232365930382552723225572563494515955029265808474401870395855780074370241942317112276869939077554612395976102373535308480034990362751427727177385398543348054417404718910525353045157192831979308782634428090876082239052997703792127993663465980597582815156854907726329779620901628119400402315091390666142584860182363434281472965562823375088618658662368365605992648137446967275959118112986485316800225326159668560324762154502560516886587634006263833346624398440341013565499814842688089900636809090489335245066743128298662442711995538493097155815572120829004256677122007943795628883179560634294413601285732782012146884502195561763614723919412720108922143130321972815310659873940086703468316648359263929965986385459574363431149408622114976451908762357905468518757624923872873751858448022302727498369876015808799725558855335674716792211855740710112049167908540182261471869190596125946657196696769997942444390642887851176569510549711178148121640607102524261706803446392963709916282177723183178815344132062140956330803955627999023453414664930732707111769643815693873286610434307720164338065244571628979673624699508277607858501231851764514303395290265248093092113697330976702320868246040335848596361987291514045722118230759116444760407365758548253409285540731056104750888547104081994164037584980716158477809093350534581232316747337394095629046902955129207759065070534370891295848221971051800344183265515557083888008781168214601300120030689299233935077571286801000034013787675651703676872078235089061640415247268500552004868402995019955742914008037567184732750694416079658750377292171985544772171916509211409779922259332387550531976856018030644848857635780691290975845581097287299965291687446557308455435330765565428058991092777984731472621103957742737819889792951863080629317763292641866084893102220132935986211846456055526333854321145668630723821899094239364444099456431098508894715008738976656065247480210593045280441462421615083887246762540697782624963313270061166174926370157812564493543353526557337417271055934404597684301485119813874072285115593865349314190029151170672125397686276112927410561587351572713982496719738048922958751125074500382695081297842404443579011991267795206369589443215371956590607059653592645727219718569555929661951531383672934535827390407439656637584406777595397036570573279822885412665844673683795119802315447772064573307805263663147400915802876584319876706125124533494058481117854068993110284256398613409588738355921802691639006776965991777714272705390211037333355759505507276401927149566085957405879183238766850873266415862531487372235278926704174753955558209604648990951708910573385599602424581360921490622200916872553022999392257771984395179446549566645184695801535952693559716594790009193067622088938900788804512505078337343109232956599741470910280696310162724208474689915876721345321567287896885575271906654687508129742053586134622347850855965197708939052879200174623650042873570182718463065577686509544646872083162689981339328502809451849260525608079053764638873893191652681211375734659071272681003411257460600921102193883464801303536156510385198261502032057327436467913307910473357087006050523172309374947500873556434519380449465915365483629160161568527676958907931414551168110965472641707894347141801697532031392488509638822490845624814161352734307545243474900024240083430707781810339582991920473143696411153421355388638531206549354239517608457429884649033977344425559882835731061539992409624102679063362887259317090166338960782454938753711049740869709517417648112022879432789720790337245377823274119855095417087023292570682434236287336661456801546284582269862939343063798739117487245602018988293336087152717025383680385917904147719351096660742207139104730826387320806346345294934151347142711214422309875259198056890763319267116149556550285277138247758565508105512345236732418834143488701735969024243227667789900654842421868370908687022857056569971330311275630368149065490143255870970936065281882171742244810542014320114937468526893120020308333115812815567424865678023779192718000218490777148170258330650155077353757938597331170390398202294561552121416901081829961972479657362613075938437193242053772455882137186290651707933057349527323611603447733469629204515911521497294086620730834945526781436465199915610000302591054914416829621240442097835566893726286290859866864028051183256658880539358244948478291062589710404420870608364016103244838274773186370865180837243130454211750174388712422682685560174284642390600426278715605218536139338844774923343930412804149947228215628058878232573207405202461676061040071939202207624222511280779936121585073192486672551348589954900304191310272005637913203517419653788750944925214676769170284317092901158856554785451018918841632859259022796941696954757038172567747648732294093697846047274765563503752734773554915267496118092399427554319183227022065880109091013371753135311956463907348381918420930394593143998736001384576439207547689366049956072660762223372684687261335091649051129611728138355174108077060832356095901456785344567678406971505145168758655752334983222768395917087927835508162968593977704902134579507689578989195176936773616658293987513097945788960064226029598425674796661943422516843203789808925216903431836974439411003029712541241693139377205882406528623859032398161134066904072898526522596979488810804463828561955441904470699741530652201305149461874456697217747366275177470589882294987632746695834627365285748081570155199207938681034798192059402943640126091738050631048269287806482903215746965745750795665793149182277437476217238654151427321623990051983191158031666761921320964189146916463228200844610355529849187421152570080414180812672020020831235486002464943458035295493413527275875455366190917173215210160494695182999247121726909907476341477780050689226540327467054330718767340592063607504628489145731786228948617276895984352513184543365227704030492628527962157096814838190715611319388464167963813569148902000989016190969343855174417840099189531846832971195185953181193279858051671974470942554759613924091056578638440909537287532463880194235369266970828115667091702322622778090167507174500604193393492513564436510791797013375926581924930924730109023136769509626257739483830619739454863026769179391435868515094836478639607630987845660984583601281160785864259584841398192787732694502025503631985887656634422156961830599158986153012781600246247839669569080814654843677286077308687533369932185890625915116863559998952206503769947642491891340100323775953569300303296895497560809630272844764540922370346071653637404838485555941929976392215410057445124479938712000039173082777043451456415767602757407629975187281385049218814847228147989079962680074897719113296506978100177675785083921255636571620865128149202735057019462069624739901352664346541731319397863870119094998471460324834614478066366439240449051043892339362987444432454264172342647003012972747907776400822564033436340079848542724661687653889585173398178192893526766422578195333609307918444754250531991634919464907930491186070718849934576448246481983059387332608530613894354659391626294185092812119942388598270333058304403036193397237244953206409891720556000862186943545070945429778484485237451103670213658762280285096672633157541517647454116050516428024319176546012995193243159654813215804377086278283486358484483602272589648627701583037092690221600605265289431058525987918807203005428371799516754425917254741509395464294415227469403512580330517581406247929910317103894571105818185175727381834309365463927629893552957359674587399596072738207647590423405236086549767508688360296746016207613739427122536257047000502021772100488890537812761816008838620258652428581896096454034353822079942973739458163446940284709027327734266936207109989020454760834504844972086755036035297228729131919378255654525372138753879511000080700566879072088272545424392511928830481315584963768966508466241119392882751527740528996924990168821191185110157932080940131156559819937512358792575266213503882831043274009817628247258652904709055973114662871578091805174332696553136465110809413925625187939544691329060944715076846713033356467468456572834088498332470916253999139224763465818456510315150047039852122822915452315726617473968714069319523184480755924465533967262337523070503029718997579098022329772576692365967391531428583608051052173781648292440142800818448804971876544197021604492963456659133210546870550642154796748604412457564044522755892180469733203794841085168514764677167175685919289127064477412964019682503119269588959013915429913502468422454284351537078386135464598083684878272652555321176907528757828870314766609158228399121245267441666952981429498930640792170102680306206488627130656993108833042483469860113794288987205906470631867814579961819929666685876665273716998578671102192102964131157745135181576279355795448876014514270492385133362812827833832492909601172508772800813884677969353768344608542269831306858397683728214235870551541797794580095695826679843072630936815849869467423939916291781049848424869624559548075607893870035622588767192374793769183412346380282350130170174097652399013774579970449227502293719733861592134898661873704206454080519667622144893437348972860947909155521468685590318876100739267926564824448097980063848242918629207826088085669743125551168132857580958911197474801064993500138957445955046776287779187174927567538187654800117136311033290012785108626992577561069410652531351782100035675153863780098507564830390751961114249457717241857168056688995679675635691823554278141161196289890323220777793804947209033361777312528353233152489109246280778750804339008111509889116232196710591667575487078132184778682580401975642805093572074784735478317005784560976256331729889501241777669088287052586174902002395804075925752182865806606831345271661217365492955007379388161514263568391882550457339971427204645449274768609274817922316451082974554546735711632477313089968901440256942279960158007363209338928497425662464795620756039743065955230015670586408617693990359753466433382192929770851002356883887342846476419568980035987477241393262908488148530158484392535534337486097683350368387157306166528556767392038091064611636906497416280673815408263356084442074151753683229057738318886959451199312386194751813204466639151693176397918047266083386909201980166630028463319600946543513446359248355474182660002430368823851955734363190697954114337429848505370175195702333107448636550418851454360375043266918175416084661097149843952013406588322457236574667947324323839484872088322559937945873565820395536776817744662392734120271917576841501063632192554516518538513243218109103077314430526051439545799894345592021807410874895242426005768344891113810478293832044157689195161934833822427083915386114109171075327015977366410492430693837934061758271869755678110207505088449433432239261365618521908441710480168093829213366382227243379405723191326265146539320476735567690067274229806180155141513744458780675412892910702239214833797471151630392696812302870057299788279358443934731543046495195031131015983174580463409055905016525444296058275282017690507192604091425882517844946625276718115196462764424268481715008536393064238531810747790601844289908391838673667112540001047641527310455101826212319727892729267028647493006464819210598501955905809292293412655995237883768232611970135519756231243360124047967171481016576990404776588210664020793322342613928361912545429049648150332355539872610816013554977357529870473002269548305962040829689340021635847744738492338715770502109201940960508467538014831220423980067605176823985094661148680042304341736369307078129271044967605803459738888659728097104545256612600343853465630540038127857627039936695062568833960877838899516842143093763376192642221267751908995708030022573308721504853370425301390855607608816137977372631917295076520455904970657651270452599164310076762747931208828446617457498375050057295350934860596528616883240374928199160110772752952599674476652234000387209804565294874793973314814495398455005282941689518182859412836752288720507119734623376062682416482301959611855331998958627818808895861762620899038451546407559826322851985122354262718411473496255960869785614013679522984113819077900611432891605887974596005789070152021863932744282452097920344399287940760998902875347515755848736784583264048991678471573008693414513397960748418793007555684636204961360901257252970406156662590160084099182150193642814840095179455114805157024952833402990693396760319375163989970405059959084243782741085062145523788680381575116859163118190922768563219032255553066150469349027971005271046815389324556941001893506916317529272051137980605616573001966470198373967284160326731455130441719024797765481305411903252238859427979072798375450518552713949866006743753027395670120165454907444786286195227082899422263774475188194426092945703458847377786055031498422173168378873523270713563014089998597829987207248589586023604915811270173913312335009265621923608117717544940646613559388106811718824684431785551184243781015766040482139951332831382953553565551357782561765405960227626382921824834613673399286319944994932516459177282015108117821641410335069895179014752139686082994622340649825215538221257786076842515640602831767149945273076938367030514778569549252852272763898228188227249988289468480644468039540140605060250674793278323977029408361509027811898735441943592952178780363024266851544198435099501732703132611239633021980894111957116188738845302413824927654432185036415068841434499728251844383472706953554523754884489194669039425578341998665607517549603754148156008347707655425779481597039646752066337186548937639618846482844244379700802525614554037939895372713864456315472009674866514382087937779710212199462684323954197634855830277456656711821397404209292699713886674049235552528431265693707880895273315970691931821643797702191812283721509537900763817855830607874055514757074709410092999718318236286384940270039456590965973439814056933304755684465212631890024114053433041773373766592312871405038028602482450939905326769421192729605386240426888784084488262573405325383063516558651336053074995081837617121094844844428773938529303332184894123564836154358806191852564897405596524051922566640795468306549268119925551321779528520199521645863257114687917759843420752740440696043623642646054934395504130956005587001539782297944743324288967038517900971800708508944756501256603080805398983334507718645266097798228276307686178280356689956567950600045824268045844565308339238140630215859292378648071841001371027216490242432575134399333955531783500287710082407329190595131381938013140741819792255480237242070007741753358778806669461278527792018049307130544496930069640852980861347789544794975282657709139542323728734613196088681058698450182388544007473247433762132411617537524011988977520181152448845359444250208849825557566674325810225081028579222064573631628445134109854054737312779111360714979026307320655140591296634615632552751110689793295743760013909696814180746200297751887284594178259790585481597177623083405250717584351386082256892300546478618188417249290298759818007788093145150141514830299953223911013732681436862522704971486960146346597683772929982280419459732911773215016607297326122042937631212601161696416398475421655272683714129047678624856815103333747590429737644481010889821358442032238796618878289540793136357637510720941501870621425103322134630120244438984980690352441701012870666325580988068750464229019527226421111932527409264748038894326141490221472661710860844513723372179110955018621975308293121607529643941657756150027876946424221524519901497107674130525482088214209247442773301456753501711526178900604687386933887342088695349493908742885338412128343078636567561590904839022215642548099331302246298122158557805539661355334262492858377364706741645489740741468883240270737162473977176994251360838227610961467765824591163353405079081581259298026856459706204732532009209285916198352543035140958791884045927871091625200694813855705531711991095757527966469512966862500058495408073514563198652692746696030913308073784097987833865833675840176976624977626512403996041020933417659825906200366453749091633182009247136826550385316297975933883092118042907820845986948327823534688346335040157407986640894233618983300517547853426699586866615716328759390900884141532381795436301470033520214670584957672932563556896471826614939231470401795927465997257720337320477989811795931965599160977906094495181589910244201748252598371931404097208845242488593733470644616891796762748978822204411235457483225862426372071849543517070790493747957856440853602046052094446356088110708830105205122054581013468658545767714290134564344817972185497197400811068526679355716758799238158083882433913327494830601066579541160629060225541390014547316411967931586051462964743719941392090134261200480395464835822654425416640045525790650458397524173375616610577558274329742203374321031465237772968483596886869861698633662803653893945722193052359034956420164186342501657263484592420103905538119690503870495963366889902758576744953528410735365656538741093208857346969921326043038673528404935760311668509179376446866336782445308893488369123968724363080184193591464691650971818518251694167348710219322786189616252115207597118894978841219161315563098925264309559388840547894092614568662438323919115369372065024830148854059180212754223804509884166637978456848364961010186957684239510911387661079647113564943523953848359857183478477923474391468075104225375123302695946073804867209040746355408121595588792238933100816936216894915861019894468031483139907370133778227068386960121650421294692406005909758499858793450847922422862307472668967401388330966722957594101172924366472862527948953736140408550884640830185040508206954874039811885447666915525010660592319999573972600507330897118878199612488008616340681833055556944842366272454919187748474106541223677560456648371667360129271847780893964393775956083461503851538743892432784722448393181663748845917208511104312961202217643270424870815857582531590432520513638521460572949194401864672334378201505519195841567493486084261926725817699336810980416258216012098469962908812524571219687052574163844108108562829781962674183958465715634918055746720573560660166429588497049373384754479050633429859259808517844613985222396890821521006096521557421901451711810024373561708181028829083929833047375258313380171890816203774861251670784201622437697147904299916516859228498031830264492395664588203976577009019664322819756101748332779403964297738117098306780222607870815886834159891620507093874081344566162974490032750662230001855772618965918690286711418482994888458786810411374875194901791477411574341012036257381179586480645807737820459621589226899515494608849877631024565324070973547415330866950319964656682233619782113390301734764996823778371878367551793059523684181351581551339180424644410393835130641250196488453935293082052921442923264727418569115118527979102792099439131539762036838954435911285303921767122571620923522077313029864028174257860261642194323051059533312324073643964675339478185818239372182081314348068034759777156106700449030775450081728748925468004860655770345934845071565752005857790966833837883308115585231774964081292210752571712843810491852623294881519736832867062580199924681562735781481797615058985907242692226037562877759837795566942352141339652403278713661255752028449503467040740753940564700880883968454055368533571554795126491397210368533210904409507459833535960650347435602544314659828837046017593639239581897648108996699943828579378420307892435491080057676101311647926080578760150602761100789047144339687399899901055614836330754490593668850895339673680383512807917572222713858739920446350884703263908523326794805053508821297907286569357647405187358670793362206180083454370703418914339744686003703723494195494112149265332522613257165321532025996509646230897331942842920103426781208357422073714096109854855046492305940166454686347006525147192225849859256664075633031242703305617521615451464251145153083217615628024495225311442887746614483463148545544652549651768595657331184824344338109977630526500463897567687793061860758166127537539520298255198551138152582661711498564028397414869245729498673111318047209015857929395944467870124409461620258511241834829486673207951336658159349601055949763250692835270267105981025278222890118535985794402600282022339033888174297090111180101482809222514797707504193727817308322352487775228462505803768743139781736479663955858109266044110647993830996059035592280531451237736091248523384257585936341551749308803348326652346090211658561813308538710050046541143832122151679515597707596650103909941482535917972197266057248304884555131009566885500811602228808693188371990813486525993988738984722566866265815373275912630199268328508400674924778692697555219726436964333628408464043413671889873635592681527308857785337552514901612274871736996243631007885356894961545012454360791154112172572621005478256198800688621499034469611915468782204562550152896227842867453811090305746617930380627065545879295836820637479266045299914085052363979559751861269437153301539968814325966277319359735949202133362015290449308344055970787541850767850838590257777941032837308603864121023776123456119895455060334972822743325043981545931548628666786243808625858454528034657063064853825233538746056645031620814894754417832322298449541729998560763166200956018711032457442565594785055795772750645199616093399693421897654165063735019272284954793688200978717306261343448971772442926435297230188046780617460222816678092666778286625123458882586280852082385880725175638292634404064270238757141359177422379989964224206284471550022075016797917511511744022264441603849016114879223758268675620797269332070222596248703099775807979873015620066451232835645702503413417841733255789468362684745008224343068008083455178886373206301445395362926934387262602470209808090532443992799049731565917893515112443992212653702289875124023633062571791345861989830333923818399126756528603379289494401656538992858755972312608049614379462999400942468186179855403547889024920879051464679119372995967397132462634998106876537351802039525357205265901050523698832235260126792012950873926019582206095246276785140180181410702942484359831502858988649510931243491689254715425926819974565134033380669960423251769171824711153263818848780681061869983435670767029637939423794209078840538878918001032944929899639129241231215180750871031954317203980497636996703033538415670829635957419549724772998382640194231366118170175947813639244458364235308514943695268343009448565862744860564132588969541832695733671373886166734787391635753445098611695448892982786063285033895967242507597462457185007498723453254501988767655933014660703740956794719457794011657301895489756852202807394507864168204471671619623610889525038181592962398603260338889096088654039605901145382256547292642573875574278373748254199648079875592829641178993643800937964260148883405111683540151775800285193608198353760467220913306574488219084595379475240653707464791991247966766939401670632142237333119522367869382025763496722972421464812780217863433308062250701349436362756293214774359413923383610189299647297080825635598661458508918182623492507198523248637656211460106291152524974366518487954281966895831069444213026179101440854394131580867590561159980164500548686596328726003329412433296055888928931151253612649196384465004794137928982125967269407238056488860562937729469392836677814662827469739762176790405506644102982972286062486701063373837605816650518938174126868391933979453520152836233347905145029640842894086031804777470622686906926778288784775801183909454765278602678951709118415979036657745761339737808144739676433639659118415915852030129507170015669222872116169767903463935670787595648187883006898473058398092936149287793291836472301117741579935208616482354616313055593044925444496468131165218244413957402473787092925747834088059101752528043747630731222201716048089274218466414036710658673344666432317733736086069714392172040409266438568169634502390908493857278797860606405937439515042369205346449598973542397162438568990108861732729669045892517588838202636264524816317923149914907194338033564756509915125486146583155173681218370452018265013873398675098392795692366282545763629536613094969169942265282712996507662843524068402352895065148710440473273530689012906714988857477378916776344184332113755859246438719116254746066464362575317254803463765141273853632787440098543372758155525371033344019828634644023872154485353688176162041635988982122988993146981634478319395167447359429990387064282272294919575026303666567734258216195894451227670823768447235825132257080082203580068506185970976515654795624677844442140823675758315006440923939241527613074216287123332485853705511681827378972290359617235632567017441107763450785146990083155125294901102139888188093131629840035244090533754852480445228752766466917737056859610830199728754563637006598191056264813340203179846212060628644388241142494508984614471464366966965955952213829620961380191563225525402127056898578609394536924974674271435909923675622765233771508960235770092436839827634601648216235331442409398911651438354650889744608889620073615670893220321127061404100071168810464418310300414350618823114388488343278645180711071583777946481829754688840084460383485511696951192749769039707979627156430022433229899731061155762356915589184096688557791826305992022857614063628662825238552155800175554601343744204940696858685160457328524955925963780595275861837314464497859310655644374482612150161913287837506160346569669495546536965463584832612569975293658423586114392946389308218547385309771650591852491633174986149291910016016582913548070218664370647637080540891735574017842091885383403181936243529923229130230281329912143708517640837976937489894185777563897454317923280925847954992903961924498920815632163989886339430131435482531801530949486950783293775426688094857470928785834848341527021574075850636018007143440618731313121677399882411468566603732388457246493589891815385546230712722893902944304739714620761678484021665233861592380259430583498001915569556307578134160220360549528984795015318260258249637713659250170415943306765549034119909753418008430779350625738460419978010707961015643915147925868002819010654854612945234064127800346519944790883653153900902924549370903029574024579800386651444204352615247928644277808992872915161446621476295635395785865547605570121863798308319593454220559296720830056414890304500093270241390714686768820351229740381228715316802594159933690718281871074336091940663195764912518099915919214127871952898441188203178514664892164347388723215402964075878915302193426416931805995032492517059055868845336164641353502776650001352283896365075636505507562474735887033684104547051729556262339830553686867243135851280461963888628875655989535978952450591305384289961972585650665685406068320977156115921208861999630266207915404647712413375079340693391980436422487313801563793461098866850520736070684516394065828911747941102615335811645189163825498332365075021356112487066443732548803131664298281362776711772046029583383723329884804068360308707771908774963814327962907759903492244876218688399422471527413613166362206649463283331872646591820987955334565395834828459162890410547444407743712444647885590723664506567820695182200916556787108607544411839704822931945218310857300054125464543459370676430517285509299238567943440531281422955373067469387290914821051480826786563432911905792918902622533907708015072806929491469752919715137288228932689203847374175398564241516889821994593154397229850099638050354270818774020895576084700048472099981713369536758024573860980855212711977501611381386469638883687861463264392477591735045456590178768601864712635549072514662914679804117683105083799452090722916322113526981305766431390411587941722357322899107598089043510936386913159406390108467868395990707979164286791049657679519786908599112535181291964092682576877272593936924439906665755459962312482731095268474470683489682788434949794434214899511427431333222595553690623673220488211446389217571488699375677644760392107299494808175337641092096933032857798500903877065489430536204869452445364634760687426465785713363723990373901860491025718516898497967259660436628812864673540566261800885679739192201975453206127770555939531515959833412851384676549350256218183842216540167015933234440544524642608402702036940887917894395264730555950568748396622984970725767458956189924502224978770679351139967535957853850386679714597412639106911089419412262657152535613100540079527478595772456130939631607833189801676698403617228564614900802652958519697091340829676618344766730891770455036704341741919297204025512331820592792710865208863467275137780036222521627464261983061840036808981238763351011632746491808444471866838655476769725841165752275156901786185445798671359392336831907845885031095016042077161111075641449987858536332976964041778611840309766173049579865513066326627357129028723656773728061509231294470181884698316872346313778684341247730699237956456495936956501086232607938218955201510247715395005631791281749033891328272261671569447296070654100667540124198892157543136016349626555078246673631291426441292429984743497146385211623581561894346268004212507026988657191350806651033344492153747179510084523853067831550250694886502080276652071402371546469634502806270146543043140820597298262421188027332411156080051115282309224019980527162245830611295409474168769651159452268298447643178261023254769077222835924657079037153979713390649943624057237855887247589172851780067069410109493095352216236510448538538681385474013834122323128163366471870952563745241681476590839528722337916070677660713493162827057582462440934221794953218527546305224054557931226560152967983672209133576435791252537372713158127249595850291548074893655873123574671930716340945538398537598996675224935342448484726218634963159073452294136921510257302932634406418204143050841047140563881903369513823891848079258893309199744951647572054882010272370547036018148450630934332709353918157535292547735964403708163400033085494741309593714962883059516242966421170245895807198387441130148781722711181877521878842397520205591734915040497065622759301409195539226938787964842251687146882574806515127413771716042711781915313181480833151666604219925863900926143737302114240710643007540646676390549196277831505211532501424834764260333340960022501443180059841745413974696726438708722532315142951266621028127414943930379351412447901080873976060861745434105708738078001844917927688816296637918668700145466832252995308004835096209066165296315143308840931269012030171003184064957449961249000560356025999052882514470752520717051779675243695539642488628424293398125454804715261574258964649670441963613781366922686746677182131723660973860870565839007467197908846492006781164511567049390355216505550888480605731230976411192353080019082900758168957035968847049032020507592743490005924778921631840465324770210642099550870174531995984827448068617992833128676644844411737279370102740215023488186509251279051087486440208574079013526916056390188853908019720527259736881045611960135830041256663324001053695784436381081777396191746983784213793927016505484518953313715133195583384137573418863397040347076431508305708195886848158575792871801034594160830883410299231455574160291990703770113270584611811961117682878061951249405980558768220321400833571691949286950348299886073152168495531603245887873696855218112296519645141032509737259966782252947136636304976648148381331744320442084746125186004336364190852048043202363234402347114937856754797384806114166436994036813302003400517362616427852346826894438703271187468262387894573417492776879318963943299204673194060177428521137697303518987796368777634281439600437091888559175539696385513941330435665333746567540263461653547050822667039952339761021294510972641519322770119815817564560574480299551623932782412844439323346407301277452652276598330445848514546415617094948137259072824067789380714635007207653224208082466339748224268275993415150229557063881845927746874485460843004233918220078497476826982075995049996008270007929165203231010650089808083478689940490779635333092278570515291138537763649207169155053069586245764964399043043990798112880090289245713983128499732826720663839708717815278460672099067616546689433638102662985650297091498016180470487329098814634588511355118739085677442142906760925239179411711472167500932329461667559761237401806957536365478101659906785861213781203599637844384527484615241265291088533925402071017277597032490220746258522354545600512231375787227961371821718988297594657014179222700177241495546986762873157468808629339196920283727014586850512422657691184104586438848604790231795928652550804902717678065109685992062447952191384972131488890407799640754195523156204973032139394332494636746138285068416033817137958657846010402373694377885961546434551078316754049054652528237919134370235562976924855210701744907886269355812029494084009888110630085349815355087262893995078141186901623351179229866897203527475195153010499619416354715903619560728599818658832675567738720745107374387548804373759756716803619906599434593332576855015835576722766659873870175989880750147960055810861495917094563816181951779923099283426479378095296537404990671878786803693600659860204294845591164599510109839210377885406455071423159721763472944688781252108897712576178775847797968101929122403204755232252452964904154436011224506613960599208675268576173386522799497599396666347803984529587144881097093984347174188561841030125906925187736847143086372218653393113883579964459463598966417814698094711966178999472046628584826869935820593015670909688335970108126599494510689790439973382735701695593216808911712382320496160567517988347824948020039924923770280524970690402556511362651390414156849026110693417842849702177834525396953847445728014879020366440817353664832121452011619873480313087930610409789028356211173471109628550430070446168568088626354616762066182289269321131512109035390269370302406985325603928185389596849963350754668341706302471747183551279474203793145248085505113944952290289313408241626255048188737009057629209654666736347521406855365782475493187279453584243665265339409610669648519998346020601049006431529733029595318694790725141701292262372684442822963298746188118425976552420261613517545695215851079966084275380158825032131369733428044200333880847914356585153600150472001456467512828393762769177900263331159543222694230731612018504223883316328894963997530935472910719339264877461152022950520753452772175607476735883871880773469774204856528531343654290512075860139820053128951339668534734964284872494783734914872627398311639962622769426317021027719244635975079451898493742900158356940324709872256544299306837478370790337158717746389874640264564373381006905189004347792211990199336035783835274664781132787911179422138368682740475027930225586944711994761629066201281451352662647125960799416384421939950826148181864285905700480265066378827047881306588864694731734179972635933202099095631367937436406476016042065218978134996711783314291909063943147952192845896082189532285797101810443198635424706928654934177754335113848511381178534692375678307236582669247790249218673978652198669125405742303186630276036139266080528254031206891954867500366518637593979234190427646716232144878059862113230561398056232312948988715179716942466483717825069162563811566221128639301302413946529614054310847720403238889328135893587428190570556335024312975104880948827898437192504509176879669902205851557883119649720769308484065214132876416793704959242953911566369198139477512082406679329856419847306142952261325841165943140739777082051653702932456878744263657201029696408922049053918553015442947336538352168364365655694840584293780150095146550043051576154335549931827313248768970915291085542560186058494099677234237689007466702128737199706351470548416356179252071395803284287457345054094206506454792041183107668124489995852524278256555658380711202279139500745210666371781327967530603550173586740759542727997006386812997391212979690178818259541514463706904711595108649265546115072825681413965198174783006760606888655708256316254307635011888365219040321738433600485370510740290409952845011426532791748413806171625486069051063838182526079386748144173623133944903970199733887780155441515407462834991009823430525963428076055909942422359625114161631222284242562959947756464310829020357196998140123928225485537572553959633298207380706393287147018473467853535558735253861694976085641722024052133985727625832208681858777147411488953284880269027358536727207161820705355478114173351438014462738163796996900193820301924968088321336475207151617047763218932255293035310630932501009099886349467180842908809348073256106686839250507323296309002792627461531554353996927595430755414792533475472256155536093458463682857333054440052477652345786442959620733304280393405823421628451397134955762884170429213501094405196078800069083539367943534181697391829845990984423368255765294585783838551796621122477393041330483246123051723651660749871038818286973743372847667995397303511166294902853252142814728166262349404199353449297730386514191067830803968818652108864798434404613675646284686499272668491776568622241280121896338072686785335465739232273438738231982949555066749071390343598138445907924659706845392160937293499151938199556430468267718819590784168452620275613640366668333496220461716076597419729983889781074809678574116466499512160035609441042370527404139347373805450151953897324363425329195635642444093279549599145964265968915659326603161663052461505659433717145319746235326606048780391650663912176326493060873805378630331968760280661236719050524363671905285245723115370326983541384075335091938046439504843395644237529662695000447648215726560588157447024742696449322149025710242013687637700689618240026888561339611808392844892595472021625120259001829182704197019632567294299056423166851955596798561029814369698081472704165974005262901691983427580378845943615233338143632883187189308716110557886202518324809732142719227775631048200590153959857061239226224932630776136950168208272001502059505205863907988970400368739025163360723744193023401959302268443291648322996736509671791924144046078447081915984154446992739602888807179991756737794500318167036499417324383499746726264901903984570407217815300539879635606260111082406101895202076888586332976839199465894497742725290140707029808618299425047213779582282788928349395154321297932988713400590017889401499485311740646332689225411481180280710608958086386166738129943250261497605521980146761403500697687333664745943708342391593828409979667388425458064019820523214540506986552334109345788334357532831829872003602316335764359611047196902843512251781843798570717831869618162275568687061961301649245772189603617303782286315248376562505016248093602078885456960832626853546964885770072560718968897153877355174516393299134420242849381118116509731016221142490672423164819311078834637279496470849129027949242086835624248392706701637821223389400760197438588680176111404556182384237812142931597171847584677735698653812661865642682535410321749099021618533660079949014255490224612497565971886012519053637073098610049456180519743357269359426810599119928857088963213001746958942626159492047129199706655621698235853904761237104345545150627464778551543195672691104492268215810191440998601799541302601035329998480132423938549533385180060573929103812486987079841987408469183194887520294041885896008319633702015813882410985157580873655035642589124731803342758927903960613075127598296609582165881926324443482061732123082822939036816009386952272736437315292960562251130744257967037350656071202169677584587056773888218633184160306127037223260658624688799777046240385520309186228050780823580448336547481766699497294426186570565621479764589440229771300423017101686628399289199493467628251755108200119695429108507368594851157595450351218711553600829025278996877321329607215699344273941780630678410106318269061996205913567870223839856103824053009259686281147166551214642199150357186397713501550306513924998275879159013153988148143066992767907396576789469235060533659359341484723872553929513189895434639398149847925012704190176763565903054928671747290657307880234160211892707438204879520435885409775717270127198905536746773919544549820374303668688263648678831610811216973811185921749751715594827823208957888665879408926356427023150499767576098918715958041777187261090351095530907465147341052598491651030005634855598979224842319186587358331573258216428724386005034563666349007838754284967425278629226709421262584282603464271432356461887625506872107780403925732586515165364966647299392069733558542927704870312946135170244495929858529594189478840483877203844832067449140582122024341685055053658614315649962696010286963421962497097642498309532267820312482494206367271703176283052800906857510002350400062967550844050269862555187937874195362474927062736894073428191064572562554031633375099878444498787798534143193435971427613210786833205830923580722296846004416931565333325623282897054175680771818563371753884898408445153074841569633932364906686227915043945123081564106596405591570121611571712321737364199138708740639555414521162064031622563174215169054831152577468968453345840074462171712491789029047609739568934298558225190355018006013211367419648287174784981350664170902063905496332134683927257048882303011491452894449671640584353790760306512794420944265280895436728416102787293522933932150228377432611738417010946925549571309920256023292348981363503218803636965369927198915281752213863121560066346811033499472988086946443590305636179072404396311016721029832150892674745867050691094375897040342125636427168301198223580733601907335251422326461390495340535917146442265517593112144033480849829421970831488989152212435958368749948758524213632363855898428040623943651642634589542062398450078013329853290638770679435363787763585732782810018322220919373087292902027092439929250015406667044214348593535462989346419070735285360265799024258113523374830332823823793479775152034359695825212509807465992851208629243761047382187527336924077192115369680137062064761777678681887069300975628867442181801071850622613311938762624744933143966156284351229169196958160099525200060181938975659903750615704150653542558559984593981084007189021374784331137244074591475536609718477428305322000335526156194395161101011095762895374795712632296202513840721698752870906573597803289227631477515273051540966607645316869139933791987026684770595178803779001071473565535739661032209239059493354041382553657831647155117451944946444845842840200951979088141170903922132378021328971785404206502930246298254841666509381187414655980013416672720213617212974066418049566586337902314647697824143701228009080389102288559972762106799801650203299949700261577455044066852923750840804506370341454757875500492862199692997963481574462735722010733777648384936300820323349335205529194966208791908395827238781537925991007364659399265187169010078275240250732716821499492678099917752244343999582563839215431712739545618227937336592358038571833168045638201234839017046412809370694344246857545472548960253500339819342248831672207380600633776110633467688664827306988176239373763921639351128951258005250588829469505906769650268138551883824362735691042735393143274765169877154844683875638094758909655067663019635858588648987638194815156842951413175326236241141489981794507511607467648340176930843845714824442917443233915608148394387904753797819383854527194025901248950454568363124299699452590288151679426380732110901641177356141856561970169474269094353173457578818016242096341136454378281742998133995775763278612737827291539883705849273524179598751737423705074032361758789173308184232858320091016930761245270021222792480292119320664169382093333500874236764665162040752015631743966869960369071042374691967037402326783685453459788934967448571306416374230602932323432503515342966006337335848543592688451268023153160880313696262276910977245595294663235522883931853966013632498083541223740004814979016872991033805752757802078858496224783315075196662791045571256345832416676167327266381207802698509924545971819344160578473319813005348520603214377194447759884417808416998404319840555438406994968957899862464626933867872855287609199931608021757940343004586742662839898463440736634770370581695810394890611376317334820673026599942172535356042750149534218921859896532644131828090298923059078683446549567417058537094994045945456001480837966382878189440344624176423603639185298024793888195730560998027389159286139499045409557523664977150830551893217361795230131417251603680656617507035142941654228605444603451864218981385165082818636935112190620364023832917760454865278704566953749794015856783846414068675477085807626140333493741397435144754471810782892675229552883459009004088055623092625581353564763276888852033327912406643208397121881054890535137027874113521409017514837482694213373054172278697244969871620060454382864649509792821042154555531620757899639193641510744089938918869530518059514581578967163047280738610707918902610931269147895801991293908975664434586120788628897778272794938984042786866554968674364952732340590230273219035742618722574432942363292117566769060383557820783881298946417501186639029456181149522156204078070041564538371634626981138515044676133008195667875959830288366679594561514860332792172360408596896917282812723066194867239874331685528048487064866165297724269951552964900515276059133619626416080689740357923023772455236618378647409935181733533923802133823425715278379401527541176459412262408131072584916525987087570786679237723001850086072392181909388880281759804229139777790995742125198781743084139209070704334465990017633588256761465370717170502877896955460199554372775017267933163728987721879368322480499870491499396989798334174572629028074934202492138152192754081329093077559924288837698300610166189903799155923098016271224046333410133562732021518505252861639084201742437880707030091921542341994861548701138821274222626428027412376664818609530812753224940165914666243208304389740885618589703575049989811211041259597625815890377502252037888111465794689850350403699399473529263434536331275417296882029198284381244383298351378476160300636669628818097007022460117551505575847430688725099393614690134933034889874854111360569410283312753620544727672789418621863884142816148933187687043799646072977059159010072358307697255604252166619885204649921653170766592121552785420205842127326416232529515968591223275642870704641647811778933923591587496740072061226505414086397550366928498257354744424606208899930185017251393455401331083990931253430436429028032696089506203255245269968489051762529666604451561011504691805620356656112152746965106598670591471037418666709589838282661718906831479153788456389681860590540788322986595864610676903367684150492334893302637155139662015655588828671597143186143376821113487276718410735757327797038363772414865419262095076084515735464879627343904903424305360515278554565892081074716742397500350274138248237158145115944225521222866753402313355491946170801437996160415716156180650500715130092579184723229874966082241510723705083714092271561544168274777252858221164339461087968821257077229416170743686817681973217746454238045696934934239751030566154243189567117583576421303797650559415330517400387625825214408584729767211731957080250824273780425964109759905473653940062950916192955098744191585372657618466520562073378579926705031028243561219731657582725990870825353691295802403729303863260339424292824026865390655561301794068463747346430356965620515254297703986174173531714896620485109839511355916597651668537695214047322259102044012103037139060615224153189215530926421110545527008741626347636553820418570444549770803192851027894296604117113773618116850341562768811945084352333236514883990075700322990967883762726402648887045039634111484166283187850789984152301936529998068926575726969898098900241137525253556260330961387051237934935168233449077515742224122923624194086057078071376480612146619332287893313284055249035154852877196263476016384730278479429398373934719649943537639138241000614305576236410395472145645137115190578494448498756112097333798072829641874471079583700753027677446200478368778483659965888266728189299553862068917436010821265083039956295466362216960327007150370874900439484879296626883496164952282339321711106998626322812587767286099386789730541300042995823567909741455803327260598675464805962218456477474934541254140673341316594108444776074354225526785028925238138753031489338005479629324580511536532105031688310906270164161849626005405624632898841609005321687933155059006217185393235608021198701388632067925964785009981608024355166489300879130551439762748204651239138686020218429548792535081020592993137735169400837564550505840718794944802991214614492719546170027483099603593665343619425290035760202756149904533355762215698906300030888414463215995267095270994920525334846345553827123774873856918741481818738605592837384435385384564088456099618548807470185617163047470812861822783823694158763274525483810997368012072566976259407507197391137355629332130810282860197085503031951704949245612382842208419492065132160014460149663285608737657042143751208970483337490108715316566889811903335317565890029648290112937779280535230517798940230413109391944967883684725144079375612386180972361118013617844258890441958358888973903934529416022129178545232815866395432710482152082600616978026549339779113725407003228035678846366314712716553663078406570350102786416301370366178056400031670978564531221055290074497716382548802225998357565974583770165245009135935720878112699144922753203719945547788811939823108644603591815779044644698028195013118364806329071719165225652366246385996646276709715101206209725893882298029733623716813678746446030116798808061226939449221322122838606806620667996564323720485137558145537585879016328936329265796005688504897902536696022837057849942960042045185329379436617429747400494709457794811943347034053905971294761264801917434337724334801159331442340675632756927265121630348115175710736323967151196033827984007621177589498229829964229872905521516343447063707288444713735682340128019409451779298210433924417328750561047389091626797597204378075169225841740551617032478460665817342716340790903797058084502412114092424864075818896749219219110907252232792580710912259013244478025706986408492048817295107860017259725027107379328319818119356490409232565569229170346304211262495434330281321468986863749183499675456617582676896975926382652411665344979641328461155073475933351396761003044274166168916628973695757626170183513164241344117113327240357530751850810210066600876564362809238957921668558094729657978533558616859520280521126219696860626354479592784675525388764268638153597021142558182662029022401380103506736054585877050552528381889617150861119137994734832089792905694585729469926116154602367268192828299890823479122416569719929342619387142575841941043541521644727050451267012417129302882208079587904294628056002737035953919095455839929980067453918934648244039534278946010054268571751169706446898710111291633979525971122231076278437870771187437051099734471144364652350954604906972507284443938540558638341985120609422824859524236003731111416057574721480361348216349236754271523985397361770726418746366824869016575096496853718165472055612773468121186485858080741635593217379585390714571773344824079482470199370145501704353065349229591406347850033083951198031162160397103579642061142211362519993051867359369471067993733735463006857249171888018585041255838496991288357506958126873335290626964172483541479591244975442600530589270975226667131064178113932735300085839948676067325812163248278052653846202381729885385639521623079929309731711054469536472497107655269599028919686285138661444189662839836533617493279891057940038708924936878213243933903083445117571017880348839442685270597650292118912026530336358982481854917659777438688548690046349446976034248898386092071874093509228775320772687869181158855421963408355569904290633371885427281266631827722189444631730268079628462618578353669455864346361885074852592152950360334030180084569820280657312105024734316325552951486569989404229704788722815309047993585933648394137866685156310037096624441105292850351093248484273203212834514569892883591795470480025096439069092775299300662033726459329719209765901239803171609247651723415112676701586767030714910575052559751036380152469832399742281017625546279580806423987999499760304319438947152022009769438181394892957493011377073797604170213032159257828402853020217227943011165147041337299197364898221674040635962307774800727745683706297078033504512334612577951840051296500299494122778602990226293287584097725940134899514455874144372307351698228571511659272220207935980028773894602771363923179369174860153289476065985841580172277092914650865300418591897712461963647513469122989409747776038322632928577665785228216207163125103123421919632736644271099518790152461998058798394465570446367846149465081224191756673028075787476307766081858995755942669506193328690597675254241826180601446709974213052148447561925173363177624474543904452357020238872426920208217196196522357432970637003777894425305321980784373180819725008308092850066951537351218195327098572446297384410754317032340408220824015122283605074160559129198249086399287343616468932404592642831586388564720187075794172297436605871959480918604456169666279413395359544399486657336993280200716852090636149657944211136498149086021676994111749121294154064848276253521859922999318738276452062796688192784742639500964465958997614668653917449950854884090543173393187024254394503132630401483074028539405627719964075092875881793906734037276113894772189163916722733343748237585392223782981398370302133307041364910708359161907712440800539830310582453672424539153747024752104092111463682572586212908569575090791093916925255913929417073761136280953396964650543158490980081368432455670030572816401988460151672544117774554000727232662906863718619035661373743937148961187080605547955405843393967571040381943363933197086148046206918512489462139362048484234743695227174274675566089860027739954198744616845817664682155120641115992411866101906575101614038132797497552675357677135491535992849168127404614634099159295162759285761322964641349020883981806273825278093208944588410060943658083636066163634170574321619090994341075469966236965168192305381248379922116174125932662699622788747454979432175461607733552805644645615640499502811998982154062181073479360122754768392874269556064017828009104714684459037746396291963731862634063359218481936532907477274632635137269209161353316923399573897120977546715056213139755718733522702272296471141070868946366575168214372855271589986943769668875648155089096121868568278341828414171769548875684617272950405625048414281552610925186938328264034053113541256254383663240294081155059270150094850484866177028312869235070963818765514714079363162063192242310331514531986307627419314319041814092585144393698885712960070386602910877661148275232794031170123681575680180298026616953814275889122735792191199801327736620748097347316924164461536177053130083858488795599432689429363205578938234495464499135566559016105304887913518965303782812521183531874660187043557991486451655697097023250502835135068685259170861283795857232882324411860358942519956445711728724180953511866424410501114656415152961174387737773996692114169733096560273980617862721997151149616940248076364791506881097365535840645851667891200679891074529781555655469096536430255327519842143327570346837678886237706844631066134242591397929229262517446006661876419567656063999272918775302540002655914419492782318014319070303638315207901469060249762492913570122445430897941431512973665759616010956465226308045168388617325770376654361448946978039451953760297003945393733877563295006621720597779327688116036937919229473624053252588224388237336021714041510088886314837300487210217799929194644578414871615959047097531628250912068030162999849976921499460812427897962155781255992354375508730728690875454448391670590543039762354607530505125656394373110144917578519412208913593894997371183068374574063885961516815273541293968728542486850902993407096119154604154071274178848158812110235155004411266978625113017315797207597969247812769226762154178278374263776692553426664698948978336372649024510700786018625353505150947671417233827086214386426804287021123748790687666222422413016315201493530801604720995738071638284928040373828318111836827409104847300793362611009125677029152093843752969928483881432634458819699711086611248110916530034092059753601882056337475668998477821400536850126756510650177731655104911355806792027801057824493305207944018758586943192314960789951347476477990512264166881373891127669778394976238638289133234069900184640380216518044067903151420563414514806989216399826245879915090188871246540798396037138394348826169746441379359411495128582669184339522652163628210408229005212340797082365214825136590658502610645846943775615193066296626079881878188517067546549037182287734730958331303396714341880302701507015251217481291069849352812797712275890716327020885969085238088486356343951975325445087606756379658036933821143581207705553676372150810967383157504606218497483556572257567335330524266528335872935204334671348510554996604311519965239604323641909000825506335625187947465729538061196351242805813191839552040065533335985728404064161620076184832469939768812203392392019723448117870735018746500873660608603994296413490061649628283601556714895946007213929923539499202868879720342543666114926259551152858248344176956398515552162188494262270647709278075182387359091550685448542718784660293075245533690585598179773763977417279225554218303382366235386665507151463527369226085599170921436820145985774155761624292728420237644679281508113828626776771124830329518271161525141992360077417258057246676689112529675226513948179689899216349784073111807767321456361548024508381982914985042787987445498156384879455353264317104154234957412249589249477263838637848084740255763336221366427651236385462392892624304696630861241068474468986334916503698715862514969981408319472807217598194466958111626927120387232450042090803937279278354149631770246590973422890977590747003218826975012810628344515344644029488180827624909926748830988848936407762522788486348526866305927612733818123069532263891019395922492845494936823473182776923267561387493433671174534669787624413458116828487380460762245686268665168295707440998908328669580905265204074251503024587338365800804498929314209930567840137478075563445016767671858886854230867235397599765344765699165177789679653053283718990513058135285660977549214982177583304144321474558899537142661027765056428233627127462068724554288160606577822083553277662380850953673131541956590940478676087290168023586962634897967881689675882865632151423881712990139878540372318342577602057006087032051836128959920578099112165280998075062868081980770439080638553416279183759424404461003275375523441230784016571220023427010898178831084376916944482167592358526954351978830205410246941795010802613383699760183410752872164130146625827934274631003859323760568669758021600822899412520863588612073052466586335915380976194954252036435410339126837772903519028979189293415258549104161027856605063157736848066681259416706450788656665545312193566410924494914509863667089442004445961403010786702355949737634314413475154608186504029102061230132201762361199258659499503336359157984547567431535261121029661968179629869648353052701493634152774020375916194840274019224346682654905590919440703812442396930069619155682231708689888773149614765243921911632026815536068142449265691374947150040470729732571512741375083095644810300995232606175338274220196500828333665310010823689910646004393535530658467360565609519725770341059572729352303045888603737250880952659305779940108075795859951632493742441991905376077948342025629307253128795606766377626748962488223430707375850643484307350568956124647702150282983167019604503511838283028773495884376894862121865146141716315770713749340904822530733072175766456935991662022079301367787334339206170072706451467774130402750907943934239454944450778235879089533704945312263774779398688381847499966339278679228493107723116682402791331317956226997267721123278067438943860763398221955970744549519896527499716052240909945766360514915885515240647722745015317357452825375301586791698961216436337167311994855117810720961140783956937505303726191776289521637042753350761438095221854450137767145100855378114180596231267557924836045470575755841664499314442089664672860261703518520635702137882330384746390755335505466663929982811154108248821215311719717651212091849598725619393633403749966983770152589469554065741588948131394382785118711134590608260463722871472951328575014314562619991980966279665841031323969481336241988503737088566580559832914261632430541657158375058689558319624490665413795505374459273796424361816580422669410502165800427878779069578297270124349414064254404120936335764667166185341064425962652160898112046758725167578440436127238646249954680415799604166441792810082955439177626789676067552538694403003502474411831717987674689181659222778831641543606787882618748259294590829611944278128213625817228341522493922111585354870404776102173809336184715110352455434391372548576804652760289763209188491917381558078707353101881351682649860513815185588266555717633411911894654920198580052718521934474847840081893892001122768579852028535369179424474324395485055101023054675544018859751304732526477532774736869157894013032190326060960435740214314806956176402506732204403098344284375983890763665351581838235986679845194542267736565594304871617604975500350950613859684521043254646725243075193755980445183937058091143567014483886012824952321336729706188056658874369219547438773508837243428928333892992482783544341401794805367670520148788331183492356768408385827364511662541146297100240432475211005534646765609360760581266372774985835582021391099071130620081406067965644429098482361162527302016273841092275077048771347093986772782540866838396060520564156942933544171891137370114735668664581102664068367878397504780146563636228989273481481305725613354939132867648854094298896895982112747158098093359604850111536556049490772789247489836368781737630385581846587173254455027021738964218512421299129682464928525479562391087155114084388563479792558208808658935361587842049192711696747579840864754803057014959390161642928610667562590444505138043040914326030445386864422255850687738822773974796163694929271485380313926223467161052844518718417575055941658195266369920631460253584625626390680648455814111189345934748580710409805205194559718337078525937640132419040274239795722270029403139124928237464573964504484850874285584471676396449315116225324403343785077578972906169051591073247134884710143413133635313035229765028410077850437974102517487691495490462869163541988190289822975390605758881088430451966018288760443290990774523656378456766575539571020690775774741903580778982972499428073083106644536653332229474276644516702001476634467306982458111422654745954281076153107961344052257158441756682406896581318501332236436313630917020270502851262339679998407386232913285375759719306860406326656136363715474718832502512335046521311995951530298888929266998859741830764046368694871767948411307166869092399618641060056608117696407428804786295647167829419369137418425851287365736735897186536975658809232582867788217156663484489010637763627999624065533624482770833730587185260142152673530324838811915570780910010722154940162223408116080141892672517039098269883724255870844472438035351629709608771387434954246763496544449790244399114509294297061193453074836152389575848848005513448561387409894249021055846732131402309224512907736477788123011600691647133951036235242436555466550630191970549234988052556901250161631225195508142414681925420867969391012351279731373162412677634256027973076060742694065539327730044459403559069485566771439137345488556363048931359796868519058933850216150372707222160219921453260442527035163761801748951874195667696645235423039583461846541770967592110706265367140370872188060515362035939724031615403675909825199827225358020182665782909293828230767151116185179567059897364911133211026223268622785976357252649225430174528348735911772602884754245592148510234011983859630664571056947841383441536981214595158812629198817700158363094033954824059209439550757222109075231881134914959680554119581978092470479567701298108205734289790837094666258122775543983128656409049977868493277873673183847804293266298867656039309847939378726273341207358829079561196287111763223082824713317776415248489776382971823537340012345175335061761973049537815497034898871467353803659749921016332853324354697727032845286673299487197086615065763750510448623462907203605409201612775703028188833594683000908821926876104276088476332054742025170756971161271944182983835451279521885521882160146188932139458188052732063244679958752358054606349224521403392415231266873553429748935143073223431057784478670897438136689205469111433009240871616322734565788693589075882988338166518459943592482317319661304060327355078837170746420402184679361175478461260170683110919000849961825967980699628903682719026198148450352690718046029493311724687582289894954807786053989150214596657108752937901795752047546826169887837493684908766039595138066411046236132782664284435862477305449235387532259881403391481855498406697298690399249039107696882550708947782566945127946126234583445886511247598759457006111510670176178081578039913093234512543286292030188291389941983424820660842119782611234451165428192395408355777641109748553935634492378933930002115931915758515442347118156961893665671707598309457839592788581961087937606203379253529399825778081316553263240687168120619566504300363615131601045764087985212182373904113203529251204543209158055843028849291043312462177793496273537218222077810412256822286416783667154689103939368990207369838239979763762555109521232302620138004332956512288010339550642358880154846213150929562959860795316744625434864115645843492130232467335570366647833561936074930368071190415894806335022936777015386322529014734114181260175884358427651252818328167011064245354887547067418053239808531484126905269748036771450053628876325575371523734944176897803307348932114860094257308743606837013186334153425997831966685912429313748597627762524370883717962643610480897741611085874642656427945830555581284950188842136096310829287486965780647149996550799896265559315762206077643618328676108024305717085569855440593760846734469320842275336737218730731385654877126258537762057386542767709370747765015415970775086418826168442580445612225616949220739942877050792303467415880301141254156775973325923213460059104304011468642855708429737201395543630411239289690195863366786635356676464781280758061246901170857426073368735233868255991417415006016642568805735136261052295572041540467986871868544316256617738572110895255062708711432727016070805974567960875698852787382310039914983838701867346067224193708624853799697746726588483526127116920514748966344048755758084810245017541069164325974896930343013714794556686612751440030711264543499298543496557153894912928351307603750643729615883226772128879189565845112437127612678563380421696129835497031994849676592779047134051861606030845093774079150228414022733353405744612059219291273892590482377457142061127495226853920701433994815637264269652106440223898189856718641996959783867452820916966735030216883609206576566420937830218082680535497827698620003471621939043963491716875067224376543826766881606436530276279608062222545253355902835105414815870528139530171288750973316718347955417904352921323426265849660468135919505361236089096829016808329803540901341825406597334788402442902551282783146568684322108877678208715678890105321133083377592274889745220278209556514400366411655563526616359644183880907923424376629440465422705864493853105943882177371089638390000464326210633161289360977458971841198711146545938806495697842793091210756421582278838594114624673818608714038913101502517616839997349695899956689133258367521833810071729313482364823060394695984947376999083005023973300797006101112634799697125404093460836234684783028843490314374452483434027198974982085211482293282854004830025331301814086314675150387965352569241760465957771237808281942159651989129855923213940884579413496120717923650376933658489911567356428598552973064817276745994018459634429226725591115982825509501505712825904971731991579770749929019511749069060723663101276752081325370640484137256166578942434087980701739266215991104801039686839158359607090734533066587470627733304292475186338750789291347734331614183288230711249288764842066946987687900152478263666229516572789470097267039613310233667271716066477479186351746142757886008703792389335284522799707365055136125961456608456712531395325504642794189351164726570952971577676002600829658539690154083620982666101481491596140678537798181296257149180649478508773369945737610320208255059798358702660767949754098122769102515023051030349878041961451847192824260349635006047430589004621595816006984079840150529762882119233767570279214194740818067344487771555286796047437236617760996810974164672032063323885288285451935814061947299915909883647852673894247273602003026365125352075189270039136278197238682637125170712177493589496262932086288983192623761007494862827548425987518582850604819182484987920860521051376516226763975105540752548355260434775951779295571786825691371285307344683188040198691188613389475372635683213688993267173892631267282600905968184262710517849017848763447025126721556599929780244350956541751043936454117407127599513581461952743722681936214904199596675324644017018281715431225799437631519170842113767938992064036974980577253806812332904888912650016723044963304713842816939610611141318058685824293975912947927026611161960728078551030391898546608072953552722872935963809193356016343496814316011994319574735295234409094285412080076143222879278512138141171744014614006272816517862172906465068026359879394215194040893957974119057331562060505678813804768125449775038561427412850277158247709959346569745658747836546886656487406152366520795596981583547545370462823279721573081046181111550542616161888761635092349108091988789712678833954340753284195183749914591975557457307409978489370161186195473836011341308004777098671611566425987380650655304642505361359725657699628738731073244496688560337140960650141087318654819695024284743407120572229030655753775404884521108714658049326449799019501023026303352640101722865614701709554886761543155553907272963667769997256079868447795415891694802845993635620870954083356268684923728913974713395582072593508023365113855787300960485858374403502552612460535220808466504028735700659181990436504530780237911950718834070376850050019524327480887380380158342499682628447791506671002949454993210231079732866924076866914829193827407931070464027528534528501697191388390983828114186205924905204330581573867424881030172276504634206557860830286247951801438763421417970997321013893303515196981838449021907234503536679164234279869218180633894751160197845722366932334923334024547751958961099329353313127883886790612093706413900502917194717180984689628995823907422653746161040541869902651356887461386090943514498035976012144432572938626080060844553957998430102805962439650359459455735965566119039114118092067872900465351716742735983693401223090436379713255629945063461577313365829351320658825775776233661551407540813732755947991027603518999198890164456380194668330244914863152500492905874248916170260895457377595935418459830095852590206479526945692853291487924704344791851389347839221031174107183839909820472634573995287520605796776646374700067956938308203646734598063968055427621371401452392386464701105235387885648790400484758076454878392157213662008879845376466619112591540029190877644273456651890115278427884307766649781776492485494622949692699337611960108335778805228020308162320673544186622232974671300663929174010982032094112131482835647334166771728033865166638742201121312327360457642346599524525370385853790285264834889073500035504616711616155915008081489159099914149912791805565070521814304016070692954571075317829314960923050633253618895387638362338996923311217441380821210329172156187072319384040190280247389238396230426572291221758033301795613567257822559795551411700528714451971820898145296942955753875806627707808239844298541708634700263618621205829737478304060288497633243052947748640439033452739148126468179396520600307029352385206615900347539693655865596576719881167723080963684281752779666347072158469458788093233911140383696202784525852848745775088808302162921085340515699777924804852394384276991357371451181658628067601309180458403257816819084105476372808230565302824769775476864868303798089132425780559967093337911156570398765552194302735104657017158924248511366932944304371549999177437001493268413930735631681938112823856753109423056667627989592382519941858607552483535387783730558639919256038115876052462103962392461451146542669521604606647045361655373794314144383308567114778837631474672683101751164031826536344242859498631857494454815663797234846236637553538431819034744055423923618747829020003104708510419757298400774556198566591914889362333336726642306226445587536314679908435466530539878621621837144356956557766120318115743642245745501687057264408864673492638687620586281959555678145007703826789341503461065939702831518299358234706955065386972988415809508154817948219658004126614224059433798153858352531185165424653272531363975482952966614290840961886099443597998636107934463719533035960868248631896353655187479890767589440739447583673052687754900043648369826515814770855063764808325366713940895509717957678725671243283227835276894304501131820458815380618916165272934704812482713830151723060662591645652769004657246232315504143032756481399307531943502069614914034560477178628011323871304969660158159097541927278166816846630347694191670461201311799628473978228517106047313188682581754732513364308362557136111493799457155025484098627160797630981694231137603540748785160361512716244656227616225516901628678157779179157729245243782414885850320802456607207890312060065106019083678788833604238958984188102691564545747997792587819008364340023170287250231303369336892763610858135132088520816981910720505942964694898190771211841121349810669023487031314800592525556891127872144798428397199841003628307720659999938432022757999251051135735536426302677251184733693591179566678093351949349788750489949480165712994106541941092855453624052075818700982897420686773342770850461199955219622674005173678980732516669983852439223438515841602930439162139419927657377654749028650262355568293622247155982090973167069616076770366482521269345751394460927650836011207705645314071957362128827219827674359773510276928058049499312841320417092312509258972808043627868822734207545278445658756656159798743765373597020942516685120779567147676139183919518973465675866811610994952656822362490035628303995172494079940379788075960796209305980178025655831584347962868379385802908293776748251789627656903568665318805350832887992178859261275518944970749685188474804033306870174054359231030007776573275065426154983800884872893193004824536472005188554187687710750760740779318141815925570546591623276019183918999395432150565614872949323779042688505767008480442979307972066256054677074115187748121669570140846602426613415746996525445819189163505658244486475860287938372467493033745713926424730448337756685503322355928498327345912388789456253198171620419762121629842227186714229199461279018910905104996740593812051835682938863548554656688310033631307555556548125637770390196446766565654770888530072210176397122890577149315979526573736851514412753012418943261578038849979207581536337897498774463098948518271049171360505208946475058666280235411707931921715574863163231961732897856734996094431963347365301344115883396916177607344881419740021470163619064765260582855346809281407738461278639156025876526970336875569042702308584940252466830938874667821118700528036475327546576190982318609140549859350499971005711390344472028793799824195986490204990437088192197000475447130175363647882771795993811740127934030876494894853196990089802873808590123628970864766098416878382035620110716401394762098770547518822782123929916746923020999034639129481602130066320118512889469320658539461987119760685961023958213319762086060942241348557373104369009908843009739884110171189695955639098122592714919960050876071185490945494683822542331261051543876595264546459605696783018705717390340171469471912086806762186288494202976085985052092084946907892987812020190325940790202197768741694214821851818648638829542850609820968928491869676144108411902859412025355569765201115638053937208441058850366285013832793082990765094651217490554621718604208112141805980846679245241824153851055207304967929940064825926937782633429012020609086342071736382648964748110038817465003274742670616216139530471552215790704553517037662249924054665863416090135187949900692873890600737410551126125928160465542229218680594793981094325983529216258779477806474072507120785791610358252750151603383224124755367541518961633343590065678137119253550451077273528331414708075432170085242367983936719729101612036724018561708282261159850934173009820287492841674049395100304351829638030183397810468103016510807556405929607496568328556559128422112060167174089158911804849213236245948591671204749308738715166738664289362498764847243880642201910067151392030327267902365163593799601648593944489373353689567194208574308330014456613937103620166009445975868481940445630188185473277447884008874774651490602629356349249703603520690430431373617072183274728791183403447906077463560510566464044852703237189373046671629323600066458217232807618481648790269492423879513345995302415219158423688884461906723739379766149992642790296197062672867781206382037904053226343044858828158758009837923533346742755933134618754972065400678137539736600934959780278615376549846243683698043820413019510051102977194655028629143509404709313627469143925196355124315587877400218394749137393131802418095237821094155120263707528312156835993883506188584163962179257575235131525282305123880083540504967573065802636065009226930288862901540992190001273155473526643614550923324195589100078003830830528140017199898999951207677253374420851920833101290154923144318173700634534344521729838154998091165353567800399007463756578186137163610959370544802756479718727774474468763762355671625115850436322457903136652788054466104237691655030077054175395522267290563467165899789305450059145290197516001312387855809585572708602099496119712374351297504337831068182844672009345041937313319212864214933270790377327690265763673005434589721805839750944939828043545611327109146305454418433461068000759087203863876293022934209007919527569416541808796712038036224660762724406762662484554243498321343526387791414727459035899181358297000131940470109476488808724536032501564016225302622545640820183683507058552901395206808088001471024358730231410068597877145624597710203974843220013804675402790043645713953325101373335347293109040694516581088152900327140164154185673981464481780311721555792307753387843200258001140355032944848188704132868116574962257594481094296860248539789116184864429459074276163148400471335716381558030608808011454500716580375195082778031892880028076120027664890214447694587645568342565631351131807323030787806091478302058061200852962278860456419872643533562657051155998693377957576158574990164820624713628063015571434422342175998775902821070433635467142459277083461144693176060089664081608803887772658644609991204847700648921594790067020645303214353608216630944117924696686121048185803621078322070347732877358214105887074852391595265996489691196774217162856763160346062475350995632703971301471368039579065162132150760486651648981373737677720287926554928816116433647546257072616666057936642595308635906405207760560006245607280068828264230215830074768575604082763616632967465477986077959289981088348949718494626429493059887345751182741920945725607828217024697408870938445407984489762475208863944904253571636288172425557387070968136617144937035062513370490105178436038334102573013062848225803564199210874052159495422187619842898308963111716712355369049332837846544591276189416215067645939641361089198754424648148875431429272612680026209986746291256312720928842858529026049328224241715531270788096620471461846456506176483353540324790260480683255455571720975029031911153102227679813497725489111331662889234369927286466366567301716218392212337226337352731068576995462395076481341542977864245970479379994740214118770359161184396471927115201783275673317250826601222812910728833041704048755109445001801500809231679656331017129018775468402991384716860942507914458173376957306680512078494598893076684093843518931397004405870914140236620016336339933891667869934097903996062733964853716994503554006133204831370024094643216981397053096350167025151183725603781064623812553719470263576464038822419385981698935001469418704622455986462788507196999382931534058887470167314105377421018475104579683624375636921671399458488457205744573501882669586835009926713232634507072911785080239068246258617837659532069966750073878262613418965955883953318747151833260472383653190239940295227093379539689364839627744284447666189458530214933457488712364650119168387565469620332396833718699186070864565571032201150373069032902304975096861422898441544387087365202035954880480801477330616624338707662027711999422860046498568543452065043304025341898479859179625610018781902399909246510851656427235908069515200054759352224888438514005513991367501219273741324964163114099840238542505560307702132988023136263513230120839385472833703910510418942057933302390929231266601550342427330073399033227876355656437319010873938213613415030623433702158422131707548114412515881495556472107197819877872933561085719722705095657943260043492385897324222625420555172263551297513714972174972636762193029773849393484177440731230029584531297125133523403278682028120418275067685919877402586404334891497411535307869283387753772310607324317379874016073040982068005218365489249996550125699267600532762512628991896220305306995927615153800520827626943852067317013169186131178165913861895235041187385806980792485625978484639148124142190323564577091172422353728772482709727605645396111175532284239642181367585509505544580948607961570126360334253518569243713292619370342820890351277669758841286969796414964410294372300605331440643233258283229447656447069838287235065153669770176032049430793435058987131993372479911280602458101415750533055641888218935608910293491139381932875273030916474260433247003227382593343235693838396757999398313185088271183427467057497945602870190076674265226309864384639787634614970160735608525686318193611981986196047463473617672720828258158681220039606729718624598906688472929616904068080577339831195931696450522266666374329916008040087263793904790985071439465186514538707348458907825229346309161395600265592187573874974234856892930561304012976976325951559240192037211577680432456400257026148002144958366421644411066025735003961939785276752386750774293388681166476896903412053128606592098736600530234269900215646251333092228168117520068587592856020234878788137362952375584469521203876082484543071543371898097741952351989443718567865095598014357347491193241345057203065021221793468770790373428068419814060231595113894879865938756329204760215477907781082919572824766609315060982889570300373291192697952749658416258538710562715348739661763140169591962068517105723628078839875699515082517035046957053271419710118384838805489686941754564053098711750478158198310524367533372977397949323599454465994219026709507029952836521179411992001681756790967182216991300748638346124593596103582046748721068450601352543714117404556378741334694400411403368325658567354408985175325334861858736902093909803013633991135968528035457413688025662223811304184319998398865122203908732190539801195985636446266671844119830292180315392062257122024252028568389648541095982670111258246015983695430146115964533153631907307336858178744832725754107750866495573489107426068446927849209321406017146235748994073859475007784581915375029374250429034794667722589463908986710603265065060643374877173221665228281641715389185130454434007365254489663788172412697964916520880043897264746958415977055533901711948236656809338941632140526735550655981460528225346068326894996083946031276083587731703095814549639274920659688553087910323754826139639689922196233181496754145555551721575431457645307210041215049346003939733939747422758757726560880837535877574786568499452517896728687203343495151446438883243384852149018365617714961911188610827458926234424620943859601869588028602343837445095466060655044394356311053947115619152603815749236493485099501014125194812980029710230804372146481272574743172870097612778354193689095460399757905479612612291198825132549844392176841142885621472344255931929104952134918972910881581787295800116665201216154382280470086492180516043183343906170358708486708543053542331502651076135757930616631709316336806545928631643212527604686223598654119177258032626817955402880360473445518983857567269170744251755401908267291349182155518724646367746990311183237538506249044889863177528643311196041770886360153879875737510373838790987886253904761589418648506562090674982944322045718243461821092345033264211590425909691772439754360441040563665354571065294585749994922067378449266869653278155494840542176958446626164444760194063310101220985661023664200936655987414935820772351525409205504806623144487595428589602285596689297121996071727012472970955058200749558870381112974660786585054430618822534261451569995641738561071913051978775408155550136264091377381642057898371978909076029427880180404173821321103715452599234934311856528694081973583095362696142056178566571866344430990912757693257395962101148600671644851507038130521303461259440044968585050245127591110633376428803318394602665917144143215008523818879433994747805497077659224560072563657387340113808655510723356275549188442848449676711411631537231558261742586567802821958368836341652010421300751866916873844438976667629148044146635151130149833142485116600066174774596988594878384418148278229008324124345172499725352438300015168608232185448425289724458635382216535676311693281971943194340574518910132156918529555487169932595314287934915690460379537143568442615324919765423488812789616348209712025954299530415447639725898343156179810384412542984249491297415052707135544779281143539834263666690487377230345085755616000305497935466946129120599567302940236201031243591692403534833042833260608115883807071421130796314571227915677027894696757970795033909089630834926846900366660226100374766649520450058556712753978872112466784678264383597940941112781576480209632059921945402237129821859145990714669269965272854991493058227874866097278132368844605020661251241528658148337287551995981963751944377083588336564936092136332370981929163674296755005335213762785663494811077282927612312670805117976061390627060015010869410108408326384395182555648833284991724225234900657578043728326324714638206311279336513050302009994401626970905370178687895509447939121970583491980251043984768918538677176711042503828012062682646214726697927337767034578726025872206549135665205632507214851812580108609106398730943211054371973567404162111927891535424241444594328277033884618529200627297867715733635026830740175892766161135736723503135237786539274756954950457547067899915137376350890631139032061152404882612135974867672408550493492146970760772757518803301450924814548641511666088660512219190230799229019234067378428635445827714722253122093228193690664055055626234229756293698292691427259040451967205616210387111996567516349030425436083838171704249263998389424669714200331232972913823490377541216477996923266134766045817679697341963815605278454214503274763312312004514960627579306776185037324934463562320899084103992980153046519127007340988250555385149941882809273038650244101596345547415934680849227802343469536951018933320488207655369019960118843291478270701620962467627314618620973913991623249784035555939863321933962553301955267130638611863424121978103045151578938988339284204637246050054506790291966766015149831042104962559866098033102951809483294104183053908304250628411181992618510649381449121065631235896534429531291929968433688629838115478583553462029639834200334578753107532651614407255526106057375624365981402016430355648259700805452057393257359656214691402380308774341537002631665980407805599367018214485605221478144315461194397782796917611975539970025303635934133691051744220729423199594486214524481159967080914962930050924209077518564577447140574916087740724350215365523115916935604955083062703552463329265671239980093020632369635962724686753375258654005806262019166052178549972142870390997172059195120610430937687705196792810024589667749595851899765767719376678174873620053495587836766229066532175494216513254764039365149963955498773517630592769628595425263350151449873576775667898875689890870791856847786307143620881355558427190852291392711006946678874849326027591076736192543197386088653828282280087700155622514623524158804745544399058018076664246504840930874466052743225837576574719915940546154228110074918266362249771886964348445911585446005476730420093874085168062797253357375891000417306640456984464072481489904287036408191337391819631036096301196539009273756883697906782868118807024490715513444399397622326776284613135827073205009226436543996741314575859450940276641796739416828744142673108652995166946925889840925510036162756506736757373459506434395080264580277454472752009015804989119611519174537725923332447754266866566039510155970967620342628845511878831453474446124376536247479263080200369445544869101741329214058643949658710547011552550633244198861834340322463636467049942121848343458955727447307817652601499804969068534446356996866935003897966692516827369122577703033931861701269930946750037581637682240498868832263591679000644010871274659462905203212782310039002058310511770531152079677186482340370067094430596038217837041832736589577028088485175840856258610930929378847070546997892230186833231851812155920795440450342612547170048572348115312452923194121280460950400571974560693840247567916430900350497631959456597107801534238025894530939500804050975906401108982034082441247269385448497904693956933497753324391560167876246370647004617019698698273803992064189459366034544393432398019719520526478418516919984322578307620889815710728528426045520003465989539122510706195440434324616171945261672786738106963848608220499938201298130939448346160702066121637244976474853501930751397638378608610209250055615596895940749761420427474659486025263959378378398632624478576490992879900008578540384344299568796619290120599910568214030055849741539152106238117487843313209036825399518681500969828906948764097832234996212607167879842767450712685127489663114930587395554012405414223242690458939184567423688746916864999361085327116105760328835276218164176319304993785191551132549023730189432469085004702841855721797941566021295865380655961410774222429863315080839152081679946430407673858428787975106732704870253326603313349880897376796895364384862024461072346185051436894754619055701876682847309791177055435921589178312901533545514198405584409773506868793443876950896224085818140041606854478002607880043042581870343628572877298643106508894737615273832822180720448552910988296499051015656423837167476605771914009481735629772288870101062098112811662826465706354239375607912659309739471528909309104719179304600664498973755256469200212440679587062764497142816787662397676463379095667786874006497888627910213247604435733484034868530345402038133931122739234505371287598296164821243279961828595778804682260159350198876546580677057065968725774403968087100981181917971954006451714153750379789796404939044874734680588292149311215596346394113598987092098188432130177734330750011708847521058972565409557921880550885372605213733614969563430367614170646274178684166356660747792063208042555638384194280161504508994035394156340400954501498620122240878830309898105115728416061557546479313337970288308242720209175402558786256756683510525451667685367069909153412368974437818506628622555133157609232892316326970092533614414209758135427606061230775306675193966172142253804174369298345900953939477752043799441811929183869274681857098299545138422337678426485100971930953913604556195373872384298314134095054473955683393701860398781475769434888187671192910612675499648155017065992209368506689594367027785706177067146403381691053511940836889382881805865996523815867630549378726911284974865917296406271749020966190975163354177565568722975975732418758969485533492673323409801538878522638031642652576527949501895315812125378742512755000632796560412869535176827025011423410517261374368819554294599742495761297581326197813096273113051853102292136367683512914144767852266786206047226112237456252846931278311121254046201858862064909946383079547193233609943677437318729337737278214453942930474096805391647713216646501297369667667742314063470237367659253135094203103892158694805041839245965979144371528260181416434282503975798038858791513016586258805648571954212105092920768497626226648792121275786997600796426129147900578573645676663824150522585424999886539243873705994370061781499474151748528566115662449078222251596600415232467214356739626207285840735747893004160905093613839206873143211991098884889338425124367293833898036122084801485148294511337950897471968999986784892735643055082942282380889034589579277009805395556352705140939521164080021114556537036237002100010146720568075990582920870999597362269399952151238438923743248757708986348083173447016325806633697398527375120971458409804419252192826943558039603805993092082905006549133845925945145695509135001664137611221894177290861576072660285198907059853453204148575343358688295018128310479822522868857465178453880437228032303996439140581870566360803347235294087918105095555476356466220919443849563918043088571620848406364664400474681826460851223912851799812464260383192553194510794590308981564127828244611441489139168632205688354316702448010253972640653995738625149193355950604058426832844725811617577498596380345781988704900555925809689580003458249859899287409130365341328108130489157094028117777914702852390284759370898942558896066155195639996666194017322644172068697454617701321098295815870716429436009146166511526594982975616150458611118233816129939635629185674800916220750134119051316572859279756481499952690386098481317270563680539479988032506867925646407485832683496861188430834123437058672879802441641209746284618834173545068166605371883699177952283600907142228534372104896880380353496279270486381018519803396688947158547419391836407001043974306824679643698092661635078539684318922623408876489723298264409404935511403505382203729772650647982109522825191253125810080742867256521846627144397371900947738424219313250318595724475734795858962175797282014496923404521777047707746931006811321928686318162995279341365167646245814524209987926817206410923909128630247946155569285496515495080712289537306469413188798163635022459334085383133391454114580741102494799330504017927370330680517256817210982368028068483070969629515248960579814144439656783574873941944495740458430638409393487353728888134285797471346816363233726388680003779255731585755801583507145589439131941424994805317417671003194033652996792202726478393976752594486764890735431639750536379516953495445211933630462524024241494387302767755311203143471374052407722563218343260014542314005103054351067010756841982529134233030379648796541007935667188195750559110965956639303314970184642160654342940905661485981583301311937805106938694841882926455020201070391302168390955441341612677560662760313419485401500946149598608624101649096881159274374717380365882974115742303203296968373630208661653510473589929432661092042248424953296981279776975440024373017667996897479751020580262023531957325022159185523033520339322995788178310499805678604443200599675591241717252970125180973971087306334929205218361165726746342792619335829843114305994587646942183503705305879601509989980770542285068963240645053421568143666228474430148470837627186051715918097958259095068014575547029640725136213806207118634412487450554336258230900664216588013472522716920617730599448457649851258781888990410404950933135990125493092731073915216860153363913655360728874273552666784723905903930253658871785119052060305636924575141822380597500236863061712151539740999501616815175876253808963314675058884255314630459586891929069314106285120154702794442868993934370374227902222919464635913671147923441967813589132362199001935310600647183592592092819198451192600354996396324056431178249939668483263313970046041155255074991297437418166038747725886274990744399754229991214709582525409073428978754722429413712108789437898590525311254087366421392742166758863707421758394281797235595810570443164066764278656054085867803297002780837757037764254996105135418650783594615000034320832010811346757661304986670962539949687986640017679550306375534003731706033659736693043864778415046544086195110433207420108926209517143317248886826461815555680382006058034119309273395343507948446794317395572734388740092213191818871186959464772023171956887570602173591926740888819252326715137278389508170042346922576139466064766824945383759634095167895705856093613632731346866411801031955828461024489683827587824564036066291441151973708700514520793582893116924508476336711309665708303536991181530688326085605006886407053432626608169867374744145294404077145183631411036669786634537541784286931050857705231728972925308842151475801704263755130227881938223236668229053937207312389545707991983640529374288439289172497115813654713922621995003169817722322043134008898833548368805414930735206928339034339872707666990761901884220000465816392054685041044666893654599554171229136468276857826361847644033014121791433033194533979769318959344311612827629404190392941679265243753268683327790699420181994792406312494813342187599280845294978233195237961699937610531699941169690094370938660153060670646372675370026865746759435833739925762731218243380650172669090541774734461099544114859215635797885262922880382553173568859363853968519324821530232063913971058448495450652124044513799247283728185477730910408380633079551979714293786795418163161190822699110873087401994610357382275927930393056923464193147757616402829354555465819883167108259759556714112503471036786199705753439652995604462905021630232678203938645284406518409249396645006400064151487019537850506109827021189829133106764559762753650630218156643879486651965001176539710196008769535189967985480496589913505425849724407683778563764228264303612355118306423702321205291583337301314115044014048640091042167472415847433511823876983412319172698308251311270981577553199567472169143641485077009992287274665201481241748308399263424369034116250266802761851422843860198789183316668779431902371458053549368909820165623064727677647774762052194989454268970632410587777066429007761306469729521866679275013725734745739535814625137379270811747365410613163322796021452174890593462340518581834266386474430194199151976118414191317667017246045244879361197760297831632755737929947372565405403571177365115724852658241444449612659308382020980170497212774622606130424365588321835178094724509834773299137191491252813484343366101311629697475734539521230348999712975592158254355599295240837464610550017130816671440131146109553218230085169435664615265846214817228601887665262319085504613084267378784487146618605738835234999790213737686651343323713622900224808619322768147373644725272765702824301938554482090968345074948735856589904004358753893413445778245160907553782218691614806091701401901135881256872223295742019121947884552037980348752002637036837986173405340863323249895371579258057425666517014295160757321951315488824494669179897479420970252608004896373690768928022764709425584052326278811868120254482090853904291997683518954677653590013503805894540667569038042118244024475420442411612152879807618869395639505719201427311245236695753087433796368956168871769122338966310209100834671418457684817283677708527347136733000440371524368264999114172564164104421568872966215670753433798771983152049589866147278561666736404297551976857425565922513931608331489620896654009583746806850612431428178047149091425122163871913884059801393346390899645364071388486077782120260106158432710113343960298251661324878156942852083774092039620555421596513820130463208336093806116188959621161805282706723929787456388673475066347323778651647046115271028566045598688779545431709279435562172868928442678285849442931008869597738569287154353553296741377176640153098304743719218957001210777360704278991945105577730379510214986199029575626188974282170307101759447053427433354319855454590883871348456127611582883834285976142938456639631550647697869405224782760411228709817027991023379119425723273711881689887409209015022504390225660248610235327287569802148339384969581219462651191320421311619670636118693405550309125638051343796759805143143537932934064733976180947826409329236638191082200243013663721831767727236506058828877521813212490347047257778281486928357053032230669734057458240624897522380828086075147506150457314249422013786393431063045678971750675598182265751771769795161954531806139560031540783847623098869241624176444390632537969698076201361686596348168336884896714394512113702192204829633947449365594998523506404097563404318511367395368439131245851846683186751669324941656932579242767727633165638289746442425881132845442675825298988762739220357663708243343741342022215046031697212453435086004174804491921835323334988369419313425328350699121859426109715546467121516047824932947887200506042581919114667928021404846519378122422927300066417352910661325890007018757742300480708900164593833455243876852836981233207893010604257765322869511561247974266195140992271030832596630489418981812721316525743151022222726313453000509914479681239550771433076445807217950352322692107029127672549685348384953111098767415688629278446325339336341217951411873454973035881022812549025177879972068164320551439622566459604802098907014195406462628703918884362733029594260554578573268029478494961993904042182895069530794423503931697859661326437493960390004730617961413488309908787339371796109130758574921129646470592161458182709256496603456524092432555624599434505981700946156353857323955248982651225410448103577917815848177430159325133846616770335089656797864711147233334861188019804870172523389042950870630034727045315949790580430086483083854568579852128954023409210947729347847844317681025194367090198034397775429416028816554780374167116365877782466268687511469862088340180351002952160677506123803696332752503261957989970616312252211812780717257781513588054346164149168482818794445194629379928949538329067802499043017951855534439986777850487744793230001208476797430140108691753511744179467979560165396898305393133559684161315471216572545732246019440843757612027144446186209265345717540023285110515762656791816479857872719143963657671215927757706319109889745960747339957925370810780774063784948962960943025075337770804601688558522724772892785111765038957517623116680860294784894347697877251446226512195713154454062282952843318903940198114785321605039644980389348089673522248492661357583960520466320484881996786538034204890508858552783903636971452929563780964371009312771697366945371494732242031611982866576601896469302132672001518604665146032224498210632944055924073472650573475705120106781053955108535913005966054569968073226599430082294039797022962591842476809756971235594518461775063835491289076376468296115036510410069209141342990055738507187585218194641138995216539968143090591934700630034217976506693233806462859030732798206226062526463049381348254930588270222187232343869468813493850731670944515808794701096071039018636095184242495315621036645517553667532397360193540394671954738956599389855255893901688706948945074938493512617889771735499936729559303449085780751438561936477473897937460409878324926463405094529779724327341004004955413366577838279494856842988541783122739898045709470681907590979917823362593097540189962228708929893051148613384538733064046661379411201720261953882728785991501919814281707093635451276948419318383483002333478752154063628224636195813821222145878277704292588594424330600477207022227352723433018048747728095977309530678657510498133474769868944289877535485141394158562767096919843979830736579515722172658911277640756264486271877289261669714230093908187333997969694064220123867819458834261447388220293253470436872344282963093740643956244676310819554644498760052697593803650712457524691019212442011438771877883269714750014434008080715820060671566242267956432024495651967407148666323324501986119019107504176399923195934997736682453681985175268286991475490812109183850665376436676741817031041395816466892950796802680090629838021047211530157113383505172428369487671026625163392861991655131765058185028175402874725640927522625813941511896080801110984310182440656136913440576094260016269356807934945585212740688023164582466068818404304336069020858614775187228390061385678694981725461793800842501342765149806485313014381307761859951067049955831301852202573527935490138967532427328822875787457779060325888765562087493941954496586630848899563830756563486393088443656722373148940037747008854168906737390221893875700745918961726330070072215290371108252260471220226297994594083625890874494966321756542504886882579649563156529727237623549188389738216503563692071152323033270100619226084386303966286541535879347360876855798552422701694503564436822267286276692053412485351810330163369501487468451353630821277140899938999975980942609690642943978537101123718867322081022002661939295278914508561856397353307188373322259106180033272067960788204254660996312207675250358611708589753793504025079557171212755620896907531224178547385453980887751745796236527695419414278268142199430712794483735610110811534479069846417846930049315088749865242750071595914797996547961757985299393241026933196182531556491026769558851268442866470248466316979935835440809386171840392270610017385294775460534830630895230845953791504353107262393988485248621968696226298461132283703209443274325178636023972862826697201680914237622187720311286184347822014581635283883089627966783488346006906368009316831917150138761175901609861315256792134585202632956278119308297982045654085696814816000635267280501262687818684421716534669004517180746984738896164461956785016437835577334912889427891651384099333146162364251151343865707669183173396267243174064184990080953318035104951859615110653451392474383608670906289823977899302637359467745531630164798858818526589628854761679479367345471301094256459997241273976637416074956395341908889437389817704145771122361175893800426952794208149865692126581231218489292173776782602625732480832515287371187415740442940581730224973094680381309010846399214915985472440044962360805708246057129859704598993916601820710201602663198877011934582049192841988244546450839011657947326042267581040585059946952482671770805060182199690147842022805471590339032895117928337374985026971569846350797101716571055122016453390154896563980082040831297592713720244919841406128360701955645496744972994332227741259452502912648003201857397275806965366768157772371273908774000624658370312615941570591561723107021125699347132975950232171665595464380881801298060671966529827487849753917836112479881607386390353256378247013842146457893087564133110267996694719970298210978877423567471369019702207488828338137015475525149525631758175917379670178708896902505740850032531113037056616741082569649477329936695545639141977970327529238157725962398851884979760219907931617217760337127697797830819834439439514806257317518734046125752516837455327038665682648918810611834930184595986553284187525113920674621237363826385591390083404850490016936256705426655253799553856822775820321236709770992827335603247946053658741782172677632987943264449269665491451628275521235119813458039518417536872830771108992147327422277757407164881592179693359449450045202439052599643055889476626156590541278943758923221873201368813106180846668349839942664736056599792116863508753629527376968399286286331875860326877467409470610569325791933298993239234344511576717411703968589315394157337582066103323057564752419870053944825209461922996187665892773656788380328168452506964475606748159709886428595332855062103253846772896784669979788601133038183868157122677891760791757026475773945333346484860609651982914268043652168699600039445222779388972562649425823350845475919091225116422108095752195890615842984486627628213568704612755913252674615005487223641457958897970287306765924701949909291109103332300561381056791938867162921395461662474349794909742597157000644179444568162377773980211983351016622891999057855149996323377706940979008094948312162940166271482836312717183301489798117408624670540154609164821754115573321371519204567447942680942794567627623298279102046693682591574894403468840029028110439381632066164390321347404214680232001780914390865171851524456987432250837704945804212772369507324570266201832381640622472282777900235751327004265527128182629590533700644031407937740401966882545069059797917575051653821168863537292487124938245510213111017639737260716203272601534190696747627727051025173994903925920273088452289996678395259672369287104297607864378108707151163396994026314681665655501920678744007498183302747544636414885321125513397963317396890502383254077841167793905384786271499201943105730928330595996671826632944398753061115759956606759481776868986483673923436869431117236668822689464538128421506975594607473038945554854876314091914628599164718315097359855172417114345532316175314456586564382306487242160563737340860172631919953722766726817266204180137061239145131210590578658345217993715130873921042531183730729989667201446485338687208742370734552312283849083469433624304155175084103303927239210753853099661413650675004804971002439177776315879355475096970539053315309532282940004716658341995216695129881031487206638784842620270218806221813195954512278947077256117505745765923354628904114401815013252482111598921811196032184785861426102998874712699482440594008716255039327433104037631583316368746903273161884948107480112456376188312273508705732171712844771651297667610506464164319438154281950848689135424994352420162797005424743713576645664583511040162772511549414344639551903897692721390690429942224931298446335612558942199193050549168874537569419929148033426412010822761467838138080931513284242998928429213520895901530663362447508916640233120159271077603965229704817783020711418049823635890215427593864334201632707653986909752438634406179771314576419839927727143692047933639633951113109641465706857370397934579178964472645106114340326620188032188535712065289785956339212439833432610359380070005362030940647697151851908598460167225848071562208419092329662900538734229129502853452297819895643624841232285998866856375226901861226558339648860395090364494282329974675919177127962359832028561704616945750214233684512005575384311856608280259018983773583956265772595129439057935034965448773935507662214239685179038090302070370715593803025463185802270156692299678666032813110431568143279121238811117975901186556785119396135538798969197876764735584971334341191737743138378312105027116087684232381092305963365871963506443491388678806261480075436893188567769166243964140913047565913310130248267156542500224952779829943365434147890671256659029748203855862646042444091681151298479888972563143056840831633013384775433173803825728498124880528256129798741823155668319641151828717219815971211844487345124803426173981804202117851839828553564250290132184466707130113666021776800801311940806333200702345439104548394829290137227514553655511328448819061068984670233415290408302057413759640264328511114175364640178749871681294197557357571299259429039018369249636911076577920779535228682345744007343027333373170001346647141852120037635701531772338484358790461647578188519429323151664569155152861270730211854692918502049492889620450145814833126188194443374768953223269458771385071516877576231094823557983932097379429167201005364468371315839894109472803952118127754812875308882297440205196943091718666559151626883824708517075280216334273130761502275142324824086501407829419587983726511634157621951755545499717754152063210769071456896043540309100354779065712696114428263805807391852612919676834679297454209106920232318585776423212619006685813224167107832894385231636766285914671859918653585578688986263337818514094472449583664917942501587816857504995250323850155999544517253378297818488307534717570270269810446216306935617303593619548908727713722245522655008804897431168367995719146002872365438175416131598049861079034852200159164072588294148586749482059561560158926336623594216785021051092712228266561581633570680059668246843494891562764110851840867364441564280179667012159119358844299024197598864368242246654024793555135546311137903895935046257500726439521324282952978562118195363169746250233339780595879855804206165422793592194572833200625192499715719767390206622135995048952355287654660959540869637886328838006831151793870058008588734324467571454686328220877605133570136826530161657079804315109917085459902729966391131486180533966231199671539194935081165762722009528751203039846007123509006531871707856386299575191441816123830972953933923379453116565690959959315483387863621948890231101367626599814918035282263774309446557697140582835370502419336790136252917831503661249534426192275043914196555354083792858423618931112798188104340834742510836184026555533082155754496426068002655953728093326709025623591364974780548462970237634080671267216533521994791801596295437502361674192974823459499825734732223227604533136597280665253641348693600212821329535674197191150019933857263722112017279815132815636034753938817054800153389733473901264060680335258190381762840636637852585986335615870679558157191363919331870234570076213334712722729533161663519867587534180425059808029738831208757061667142641822078788200627517650777295131716204018181962076856188357028513173626884756055108902143202587773201534634863221535179654302595958962634403833422188577726710464057172458142947916435755394630875852488989596812596911548687969924442388325632061830811267502459127303558549701193150067080372184945146779859622571722896301308962375665165963536488993732725389640918436806682408270423269334862215049892082439326471201894591564352474815710071999534710193914081441002563365986315424786818347199710300811202332624701996405719691808280543553457807138988530392073883467068526264724804356667653279177814816280403387235159392032194128326881482220625952673113209062654367664258223672949558846977520015076539750262783347825292385185255394489379331915973585787139924416080403518252428584242053100901950728965877465970916967465146380508863846566924023435854513956906947619852545607440838228984951856067969393565254692997614578515461263435921795767598861058120062378525382238412765806344752624487890664799314738290184583061387294364087052844452890550668138021695473023389135298298753862446926256629155598984887737182439976538725644589836214227438334187324034993647732296454475594370779567508951072279084211740412180991969149047019287422316128600353282910406129018788873224795424029550525451478802829575393648864518847341083123623194557698307179772790467718658530308745132812602283639954259952427282848461241931079558823400725041988880944001824337284065917005445024436403750151737331738473085919709902459078289546688913513427629609384803604542602026767248068673520005713224407011606333908312481664305737550780649309992255161231199861722957094623903372601658277630849238905769139219424792336389314060935550642386417486686340513159646956479317964573789612657970173937958261483339255787606294805090588455310960317083001799680861458612227587646024059748116355079020127309935832588174400552557710629438447181278843404893265689170585597628844808182422449628026992930951052138746103412761095271058494048066260838243151739834083786948671520258099732893446454317695662494840800676460916280138192508291349791954724013719005761140200711554120736988601108495754583510847605153928089064662461959720469577050593696488583691775770342220711472032251341924033391240144979619311449595702508682581835501867131330280636340192189786721658847782564720126195890671233779156941880626243484887814606192648876236997745578063752597236055334854890731316160384775424007300947434971685389233500971550147244204828905917139493869433945809217412893154919089834965445490586193984130869503677349774563768520589162242996837255177085924997389229761019739632051989414124497344916362646949041515409112311412277123409342761958066365058907783010907054558302006133269295486474760976818777179227351094099679282566118837102735484753130252518284877874873916178395577832262807668488532990314822901090122566394231942640433099737097768253709897778859036900630629159259911079055481169036597988363659162260110364768465174757143069234789444010021584093437085834721425599659434902363420573946495578664643509098838611756232656925818023421906812677661849309323575853531312609272978292057003875633855589485742944098208015110890749317264012848444163277560727264254924286818507677553401940987657444294023366557141183671847235870692477802240947569151724342959433493124580781594814416432617236551118744143544338095965414658577416432929593815742755249533779914715054732684026008175907191348229255457697083269951313231247029278764206087691639362642363123992826260341089288865870511458364225216898800544565694324882810625050506824973267437730288077679330755403627418194600336148396074801997075830314143547531602114038150521059496222756740533373331160625079417044644955200854428710135140338992316420072978585459768949311905041357626310719449802009988490509502419756902446884340330722678941083263426483616820028678223995099072501385137378879164684481171665056128126731567035182842646105816241322402293885750155824249829745240443835250449232836891129445800251776337430761964043296451602316990019607237614742293910212716182816544906291555610923583315365491962889788852637523425220722967911933282543295740559405390100537548988944077847747021903038269546638113344149365380152667098771676850633368377120301123810944752825798627009122017092510118137961803353798505385896810638627176585670123832218095501711789896233073119755236510488267306863289721012917709403353735171769729126819535461584632876240698500631560694923614326872069147015929710341918328284867503059390571187331537503155348600838324236156828076750648342338000073107850184003436924531694804695765704757095992511255673357525660275164351405016167601300022198626627861404830139133731325991410134546679144347554851154739584978626140805309579471901410858838636511756325765229918903846390520858131339670847944646592999054829517865029239715570756019392152168766158268061622712944416654508357311847758393939347257926819538063935880960096436070991407661781812825771570290458451090360374466151618956260673044804958219153935074650907750033556677571017027644160897560461130785430396900728569319213609365516213526688515900958231126215941002391227705453712138772272692522713633044240555034013111014877403531095538567661533993347082594951593812207638560922502613372620935017965431133498108314843507535325347889691454992997445075949972482960445620982741375570398646528658050882783742498826832612087965842429078923861774556566821714631156940930484115985292252938054255069479710633317075631124016116237957316199263394092436421093173195247735685565066034828666403769987927050946419749269589235130309438484628096692805501866512250299430103646201480014475486658190482644674453654721867942943186968074953517739123167539114420618678288062125758634754866158322899369519515550454499508368314821461427021647669174957057400675048892917729277186427977647031855652978424658483645523396382874500611435544713108490240614300904768382661247207946697534336554391185713266622224151560779040641138661180304575889583409024360791088623587407989221122142146426832355391313570269708219969168944515531837698460141014549594363554546641554544713590669617158320437660165464927336865749567978417366309858201130159553425237097617285460941753360027004593559600292772883502872638086211577549195494954785742510497795353108169226365261070813030723513082356117879557460178250582773430334265208334128483162364599244918626190149109841460115643683158231579932167782513267378693049104219395656127167644596503683780052168596795095109883790154102700302261594044578824324475930297455070300434412882271816732956295079293363707574192969407405867042506603481269845962584260527871749411409853873247785837069513127151333392070548523564502598987167036366903626391312364334453646231543733508240031408077928809658460010772602336016427502458243231330090241260997246169538673436220616366077026902452383647592965610352296613372526646406071992081054394645453219685876889382662898537931538688791278615101299454591138221415085908792327660002400402391606004845915315411611470463254922830542769588438286196244589844837729995227484341525791393305012014486035279023234064903999561503278346527688375835493478088631892517320693490972012405784338609969995279821639142228888962799759512200479244857934520490312291326183297804118823363591631101715417312841457130352941498342820900822852857369303241861009866752227228611019710626026508054463876635075976284607257516715589661154206215810733264609888514085471286474537728447678029707671256044035657397879250837717460389225756190902592827326974306842695979940606347591273173532436439049793562989039251506224310450360900953753713291507909055583555528523975981441794358836229023249373529752158592862966948477800583123280579900976194787707602365243992924246395131800820711749228829479965260850258018608219074637041038432115865892499233203545938837627225288267774687136139958689932758102066712027313666964529790164036869566014769446421455678741148960441437826673511254088505478106536584385479519318486309577539419214019677238141045720270853302696990725539457354802918311909293625661403736721380114071206236305354826762456178262344175436160874726322076530962613660201405838269016745295210138380076528576090876134015300781372034291509143502522787841618463172218710193710947727333759536111545718192571553178312468038866001862612353214272232669617290633682405241747273205882398546547559581721910368877748614562082934280357126810747880142017663478197037710945374995900230562554431247240664927934430250079395393449549895316930987204641959481729623752297289949764676691415519280710816598159862002640658639830921987631758976154071442699570973288386318900507485668778692787426274153858129371623704362892229044375722886645061054677192895490708958881536827481624847470972647849830235248026369388779761020939229642479794915827976173227699448107043111448417277287589576856425458808758888238795526620249035278471546489416872980241734935937265517603629291842599697727553726114078846589805606084337712590898201587064153176819682131827481198422887970571911036906417578449843586501482354223182511519047234214486412582366775910665558292565323062157372186278647296163812761656720281838565930149816067258275798962091738673401178205155779804554521367017471881029582631482037002627982305769517436480679114001307197786692096619471675601732091685603521280268401750240844266186602509925676539814579776763921474814111299471560397388440657383748341052597564643705579171987558812422882028955295970118967516106940125790173320245900604288964151681238929727855442812714506575774665629852070178571084097325850387726460069198371729550467062906811586011000786985997975613403559122587868366575049377239822363929639870579749497520502107193758015051532498320742544041856943239302876970811640417606387510027127870373144589793155749307150841300889403064479774452132365457153995102318907827053000609667712804673086598135189016696809060744173168566110082324497490867414048227865290992429878337012728994930754766017726926644772347335061402225096865443850335236470299106535567669642588155659855476704802575214142682772547446444366411230319377628706543251599590533269287284144167351359378790092998323315690796991555358444821748921189604922974554205596736263429782703558729570227485561015690382742538693574356499051291368286122775384717404346118042572872216526032310522092416272590703819462176786015689826592871795582062854132092073526080707358915746794121470996388021095576961738069636779100486139134366012508805531846833658238505976723300127326993295509845182867073693253081817794350216832894943717418786909872857212597104790331742309666340145777380176944830497504660762147300754382006982889392084487750444502450760971466174042655990445061300278252262159963435324260446421196569474603071768772861207256575052627005034404690746232095743806554978292972355720869775515894484360142995296362603697223361040439015219722819699384597044946171675110728585373123714309234226758940159623820883933973456910533854757324008050008209517758222741578049044406108029015705150751305044577665179661487730934677262638862583569088245597047568135346034434879146034311352724641684355761529644477422418582561544212155147503355353286420046489241396027408644463091542977820580301566758149182804633113877231774378844515961078537182549099245386419210580786647067086214487214365985093864180811399889189072050988827946354968765407146666394523633056157414487281750548249716240249701471563171663644007809999456631912194463625593619752505914941783792892651498531792327239810033419207571447303882748297922032755168487576092977634850854179640221261629103747373580916812102394030061056523799251995631585737121791094458619194678006016020523228349372789817567303631618005297259830071165323765492312533765351272761135524405987278681309402521671165414266628040811348589515058383013021609026051456572867665994228996306775243558732370383262157229093684931744344423518339729137360787241393555070661176436432802864614761155186221516395853390369136197062586858165754589480774916648999420168270966282882505731776100592478411268250322695349871985634748257047894714984192887583097076867300411906933826305015574901992492418584923918479817942994038944289024266364210817873722301304424593871607164603877110614028326840765733863731459070797737783989636231923513937470148728847954087303178633003615886094490897733029430303641638641496197127938725232209633417798373959805383903071292243345803235979744192421624202004309960564286156558837777299381519713527668219336848031777839733560739111418555499471430027462167304649648618405801754232438363061197013526139627834676779032325391494444681852572467734644972548706266159265483593245147418050362320142727195649026040035653136577854500488042966451188396624400721075156321056400368096333876149643532292111317073443221455573646530008802545699933938511810977127154418192283649222488596482645601272546065711222051766005449854371581688191925655966838664347798298675435513806674379708002143708216386737591882143292914798939744511909501291099765839282742031254764435448167993385304463260797800568864892441056004652038517158580577029048068275421847711179667605733977093400968613292414571195738572987873239428202698435656617351308852462128630987317147758111836460886652401309250449340670301801288782026518855677656243162805882446158418413400482267015044086204029488062099895460855111388647154378583325386209598618567921226455280565737889240884780166919678458699895114358700861157563873686838977115940165033668178728081221214593159383845534026543897965578975879792343437576188167633715750704487677663560992050344536982180563745411426050532431716431239859077159824762268655134687141463384218858173852926028755446765756122730301968551468485866551411495630234297598169761809376379004974851794657697681340994894656437656377564097062399970530580476490047137578706315711990414097083659673623499284477761168625872936616567580411556925968226936601471319116165018525056450021345633418371181873980147979133969993101610345241140515183922040306676812945011205114860259477369061569001413926143312203486792027645633401579992683190510639890924543831352227300413511127080649756906032215466506084219887863448740261760127895428561309105264668878243234455375234854904517835009939951737264848409845538489553578997111967820890371934984393979668598408598283075458123799495622366704313136814672157208421951303963689847475230593256845105762018308357931206356687177039981780135433182825891318585160818431545784385521211057984525741038208929916021033782583674999144228595913642633026199831936373861688874305057826528039692784795374865919044830092179658583069697719863949444155023025707823777164174133444453838483069545638709885661921132689704000408900846230484984351358169786095881997370335633710106780844825496037705789451543764374699334522582311552933830294063545527565916995779942964782911001611681465917609949601307180562297675131166401330820698422795865747819673751429611747690678176277587132202498430824547118824558514216218646337266141265296079713274042827953357417742196422876514478427432285817966475488926605077510526634153065493512135435546572068838719019740468707990498207408064628949343055012061267076829373501805102780728712285625161717366064765112342032337807841733211752228739108571473274704400639423099035738941267880160222206046059380814217441655537550098020155128550527541080303807112865706166604295081285190090412161270245846608179538091777867015803650747448734047568014393444458297495412723913141211603936927389487079085859078155341921724449200329489162330687497788786226192447171298043654177601148604614340966202289575983737395485086034564878924596296422735148356790229414648726579125460542828805630323681055142898467754342129997349168885010610582504696645383481338064325768883496558266945408692355464813043599149388019927835457210700435754559499341098017845863493653521786908726193560606522129510339963994858751631926149062993912711091715698710970042197982371254204896426203319852188529533786204957539931038963349668690466707174138260185530955056978967641600903648465085017514427535489692577902501434594872669661787344577171440487724610201073426844890736921444491985914996837547924523427407465500982813973485656639794170183967324521287506259592828992914286470499058657383855853794995363265202067878259649649952055356557495157967627646804320728834300114803406490953344117864151692185622443151642865002178030403756240071606262090705454372625709841370268824029317100181027199122782235036226492929142152608420330038167601403828748498227905171341547373923572718669917888820722026479624827881857939732561815730099431321393442379672578930073724350344987531666639952169110111873855393367543919558158430844550559428324937145467723954897355777974394874212385329789028488712612746054444576642132292838080418272537404858897018263673696258822328285612794361328965939332318375377885116088904977753572442904745575223357287384762783792709563370929554099137207381235632050692852869243998565520832268064422167663785788097489047770537738721835378464589992544833876522654487839434670939870841267899881216897414991422767797067873040990031820854366368307863113261354212940538800807964843671816791629819109732598058539690922454181427696184735688440913065675269798689432274468345120553975116642129243583841668426282932459149252897161361885061790279962706505249629174725755508016032730951520431732926275544644991181087095455342402880202526799728356410261082690192483197649318737141655135936151070033609513929701876239172678301000198498030875169650598275247239779177207787561662579171629955027553001043897005503464680238583624742732696339799553825084042381137228997289053254499310090339830179585940333124646948167730575984317844289225320221799695078660911702159503346456359279947279351441170871900720217788837775902299053462476580532665286924035896949228756109231240486840524881829712872204725085078613044101894706601619619309051719965607304797579659329454992680784585361219531511685199496555614520042393410546472469892429033950242004276784358040497590685700180554309769904463654345979586797203008581716394907130827279033582035966956897026056702579527865816865689940863981312037841803166809846357893100490565591325809642576832988021397351016634830272467803111706389409952084355009131227768984631137375254728763081827297525987138664919609999505744712814582274937213111739506456410836020952728732243604160724689275479664953721471120477340827690028416200163809878365510862789913501827558355985256083983584874172846234203181760612382286462051830993649582918780907816024490565191941325676994723148367673570792321228133427082287797824402393805621423233902895059123892655262457464238626595625875562685755145568463302644067492530491592298185229505682166073559035063815845375016439131135527378938480228383384375735984191935532608016109597995853541669347108520606594045936722576507791762096820776910147974659734323170121459926010936781344509802574224759172856573318815245303709877545215794149944158567016906986778925930833031244249229817839205800311840128311822136662513329840189077368816268877807790805988773214717702346041470746438136481049758921405998356405637660621608302907648167988517389993285564760546924894994332995367525234474396776574329538167776225918901025079532335006139539840476461271460306377163733019323758197660478191757149519053122264209702782928868926233038825039652025074383344719849665144394965536308710517653767708410505223036942332343865310577820256080533603294317650143797091564294322641754558168728474208166139179090206539012522241654903354302057676611609060020373342259997375456046982906563713186843583809226096081538350971616370373412538144407761514125849650986916518381942223282457497635376866745644455508269746937461952935768659762195065675717756915855051214163547271699144271514294210526822846338975203062599814924793542859878257144142724883809650434230352076158580502559549339271464878179394447155109496778441082610949912654298635742708069708116055399654566600093867934180893350456234827604397812300693586037677307709425154829058071983713313852861989137968947885172735572168270905306655527077963690916852142717885924808949313419841925133224306484689539237236805756005423344849757078732318636582530082528123588396803299818335174650574328355432728723130189892440538226384084762319150267887202848105300593224622543488781613163189204378574278529462597907179595171788028071079073196369405324329887529350447937764157608800836033587229013758412724176860202701915859346403648460154468433897771953150823822784926914234100804766344843050986913085047640743105494046725733274966493500459797230345634863469429998085604802136026707380892591958446402453868771887620060656428904120068754254618218183411865021878349061636575478199413363682019050604888180410252845737102533261768077478209266057737578351700692056773104637492311896817801342771267015129204226742413008137382513660158174846173912750820883127351599506432673786244527620850527330645127794855680763288367537198086269755291112021397992674982205341280783506052155463340137489132497247011057712886182790258556535988246186547921468699131660072955612619283453246549878368958770643914561259349022219906710673419823498981484234656357300162351712636248449785734586724307277063629614633576516344945959203917326265695502689878881675842607873141597394612490109681885996369903111018388633082878887466195174924385881648218340167125775007597698544712333256101065913659855294715702376386522993642542251378760705114232212084015281968597324918933368428710807081392368579350385234689263796575220965342042788055135118888095355803605124441742792186168695889929551037828550024349986702599078740141790302565684613623913533422894906635162568776591980727127233514205992345461956114877280982237256209637821078383627299393572639335208388716659371299455643345979734602355044720226920956991723060878429503397153096902804178940344348898477994842879311826048706784878539621404605291369346794226729639425014476550918010464423933174354466948478786375931668663072473214334086051126000746466192558035058327726599824574800854401188178122614412913442346585836972226028771782831849753453198915386030129808633165973653825424671251905271124457923840165032398996011698170357579928896904315134321336635166032515621964397859895118906620225930983104081907528991961814643906845774507408185887907515769607286959598476997989535426363612667577049200046219607034869993221449176960234252960699949757146707661650348065223619035717885236958802738148765114274621964409973464876518839446838847849396573725510643495064080029831927805377421197986448283843033588300138981594532778921310156487210178163820539358241405061871490623375366714097597345624647644192533645138581255960779395693943263934426334226714978297141817455639733966052730919079029525107457515628228993353161975866986317913324481252445138053104145546109919825677873792873220180867460725156187352212639040826119757983725440690513152311835793563593719381209960328955690620200845271007014211526722068720256180639386397805481977933928159014289217088959610910009210739939034540196982120054078312627107707059376322307466791062322277406886514015439923232552815939698115023312184191869196445576881170633316028243229149145596981245656880229437273897247138827961567714957618126870381174665474353521618649296944894773063090429006276803634217007109805474068572325555851949055704718671290759257200460416029277030125743496077366947448486728931460487957322757021412892613213038653772591749581588432493739734571721969134701875662531942972199362945664812530264139066216633862110918015417818741533703237005055177905510717516903460398048621859826043871712844926582032617387192453772431402769587663589182142482264006794774429490642596733029767453112105423371152893596946424285671017224389280024525761929378866320114175732039727143859682347607898756421555769334454733535600791179248104067278667553685880506558136472196458742131849080500255209238169514406383065976439257297752332745041830640135536775811082085235042704321265169228631328608728916893426543738654641362929752147215973711492684827901030523797583015871668575661768524951439447792432522583853779308419229532086104117765238370426883749786263781093058074833826854554918584152500613313548771151547388818832348028509486218554499428334241843287149288032026826487073152232586205560098818663531057771811249002977556520757195249794928499310762027983751223560640230400605014165583308403954496282077464515551930753238544302323762950164699013972803874957953159576620155493388570340022902898761743155386044339472895484002007803678985835010283225047967687927810993288529794194416385839717401828592583046845266930311776311484610914188585621156641561034015583941938169907872818069773564333611219049938561475118607750485616268319456739095271073385759560024294324903420581095795339795815536165587303054601923446252420958495779119624121518901235276529236624235565367660322320928896691468989341995427182892696886647244014548468911613386076525735038540758046911685590889020935533446312502053051550375689824838854969360641558900505410393457329121692355981071020218921446584305974437785619033228429054680674633044477543899153883060265785382877754980460284944896105027197430621909284232875911866993052807364474243012548929195868334485356201455120258181480813818524334424712530178817823653214706671706214375222242904518168152687376118706900575417566901778875681579664182899929299980496416611943885294389972604530525830924393540902854991653109399270869101079809819060095294178152925580717051740910310979327653441439901391294500017435299358141092821536316601936420222663921033881356791982098728181586278433318337455541437562681567726891607459017226906764600913989747990362112796405260561063404021839550547887773627666674173680232433433963065024326959555136529925173025700711399250144432657135027819269540419281990118111995043238960467500263545661465039858693871164356353073885745762008433835163953351461233477554686097199973564515143635869294584966132494090633677481896729938444164903578586979115125860389193897818964192446570590436895820404319652357609927147313918447690337242479152317137012994063810687238725877153627693070263335034306169246187101143965569609066213509944563504746348602828923359101990255309635953784718288558518231510706148394093879797829153281140328049984837320103843299211622933260396895748077318550316698637017352664868809457775851930785796881273699615552282374766548868070924988520826066809253957637510741642218659217914112817544468734208937122870384726102608535559598888379984038506579669048122926011293836762855306204373401568170927884248718343572400909362774686125021737917908759475266922479930685992734161718401679912266845236183073449128399106353465525919889127533861705648738389747419367342089007335688304386972368796486174737509929929089326676524095786471556518084078660613733780388011920369370954348463436891514781123147148964408717196403331749368872153445862496496300607297167447889762109827236807426380966995974826302365739925116658548305721396660165857177645164167239551329746389607109678940883321237557613426780465167891791035398738839467986868137511855111736584455310986774392734542156043460110745464022475454787637061041552249337874476971164332105869900527751808036846553805978514929892929958303122634599729054639633971276133672227895663988098534467056499465479008042215340448648332922905470741291899202474087608438763581882525139859172077425551440799340564695302306197946488035239592223125605655988109940562335708267540579096958709946927093024346096467369554059505738592406319784506533514235774782164595602518880377166069122508125381242209525934304693031571883492704453407958594515982764539802858488381828126374383712774593538741781372681446849339010845922702595172462393089838305484921058971773328426392885771256603040791815751113244120641984628194693995788295331650010141624122784188028480755288335174195189514232061021057006282358268666942135217850075962687402191944417489989205991469398331617956540668322169198974219119846716831264242145184090600253681325207533638760085607853534817611876408734851472183564360664791006172171142298972097527199597737488929324147146328634785536119943027786250415430658291211573901902359841502683084289982717809614481780981485278497435000566948268270634216996469298339056296579073685355563212109948323262413207595426002907904189533617708854159658128200002331238468759006098067933444303496146041879433536342502685480773718423815197434221905602679679080425888795928334894894311732939288760371883441828891814614187854524208369304148380742377819845745584802818354463592771085616808308721147000470296944542921285049285330791389288808957772768102420383778177200285899578475230699063372773039795983454674832775243065295097791561227288092145922951246224623026553812490782709690080269737206436310597855122465730569587999139570356224319708838259058160926417602360043024502272502434142761329356848265213388538348423606967390475246690930688381654949107965552622507493682639006733618785375044191604344512658365959386731596449577586295518357343326680637419308984831193857230442351172030321678355634904548663704496550317715929432828397398632089500093475901915139649236784533578030814518576203620668250711741863783694900690021001876946386188796563843869866922654776999893921528576576966520740141075304275571937806703670328008385213233191013709894249915356166374849971375023669080363884445931230673179227880075798295216421697921789212757070043239911057084595898228971035832124416493799124060934524266112675036851817363095097876138913337232247724266382481090594919534259419413641975070720947231909969942021508541858655801427423055294641533184717690982477809717287509341333234802407620564065365209811671871353759877271913393582626529737792772235464067395156105514149130890845785417122222832630914875050646028769937410853591809183971508253260189699988745216835643798823140238185987636943517774188368548054367916355448645210795045014370695636197316385040272523831673157237725340622096353572289656185088053142312213677373920545852910232545336871238993651134727663098966482063230791264367326860825460347103986600261988880174273754504887329404621146051682064219290119611877853885035519472573760299912779941365928716216260275754990694177559043439801468750510600849524410481473217755111494841152431040257016152407501784653117801626058089290712018048570191788946125413474613555804408304039761722876271223533814076252958728728528403403571024406904061743368897406327519026954274421173158899861175046666081855934633332155885053653145271867228430771206670911172003330034269253524033425139872021122024455904237592072520431897822647562576925613962892877821948302066496705586886084474505004502442379897775576051664072069552943527569242841192094735978741857007218287627183925525355827545418452524921597841220531809129060530546931338350569870565687462139922301482048329768948882278650337808450728383480441558915164373805465559110455835915027397307357811935033704967601547561083033775276798291097580039851936303904182855471914493707924275218105277463838793383800140401318624747404640581624969240934269613682198718886926299545077159705345536582183034300931086796144640578369595313038250043437090109272846700744764786473761335124257804859422631400083269297888904957969910522306306377777939236843240088692147622792105520133648405999715235041400791453986196706719271838722552130249030349050368013312487783288571538739467536387706716994656866747165022945626286876768910264059793247674601778499554002707272610986858042881696486319808009499383590466641694296517841468013289577739586033050153098894888023493195948198545089678218721034082803229622157764237045752056519987486703275099015658583899804643110948130960511027005947786577998321364159805259475703602197437956598859036532605004902673234556243225759137382382549488438246013022804221607921626749199870758427723557636799291979846481699706308462777137522767843078894743208766161556160905516563641881451834122938018529435715818507950808603066964054541094707892746919027349192709326120366050412779242011918300174373628563171448634086678117055621662192885348281806788390570521487922583273675640076781844003232030904543460712397228232766185288246822063151994501538606833083601395205552513221912263924439902716012095711335545537866101027785444654918655529101888971924642443764461022969209313089482741955141755755181855869059887565443383639479278966595213905399008346575812337224119004193342417073979820171466625006118597800406982407570968618415260099760360491698193476906265758257525687878039172642270887747861739903289917635107743526589581038919387067570527047511041386615822188032518223266408071715623233913610894230720060744559561800444329428959505977994079656897062029856764399078774378644469941972776290883950236766573125680978221172190624978965856680096195327257274916237536332850290334137838100750689784400411853044825631924622830653437106108725986745816802060417160307638318402263080158453152255606242085690693332156488737555821407657823078721660406064450665794122099077235803637231783302535022304957729915946240976858773436884918932927880318130458480708902105448915930327949548790396566546349298826453435358237839199958162853883198964491514085517073060495832797341095353254715582101288191292651257280387103181706819125096670864068474949524621030984624953251145749614853087468832125954441898657654225391181222416361045753780895238428252116297726075869892466961307598417617745575584868945271774868534207962139682022183030251315888253025685365116362736407807153448526363578935150886959277658897736350284548715385220179338051036063361568654892293127387887594900924531831923793025435143333682214333578176671640718113984163610257620569403192891875952076995741717149979957332852178625126013412803014852632347579753636982737707899934990240202320610325704274420722493575444610384669913865848316801625893660739354896409721435211080735649481374930971852487057292346094659523050939566257704820599634771782935142894696933538100501629268097017967703975293468367002419091496754355933913169496138681967280666296083024035041444895987247380862236286844761590139338317929567811266198017481253019289084117998664436235862247060357827509566368214528009134985968267658865865910810741404914486086594556329285630682794016340984294675856082300268084575769241770591803807982484394344685239881238970881577852920331008114590480656132390528766332539625829235215614935561241673561718507142693507928937434113915308230802818231967798724673103933753802850045835866630812130470109650247483416073668609021708746163035889425664138933241742095155156018292798069113049872335663760567670465562007835996532823340564792658343354719443991823478183970717713017852866610499852163302962385264527740771422192026012529982709020728920720590762125476650902651747711665299671299559353326533210983265376829487158652690228620857084402961396368269882052234071555683460066316295450900507363486788047951906143359103340515824981866215630785115765739149068183719851053308773305248880161791938951354139522737619519292976454971431401377188059881160354489476700004402290587419832081443807993367441242732099338083857362862962527402392434231031136780356559269134678083738579759852159388485682417238139482815313061398537379088287763698886256633800777914988128071072038348682720883506884795376634974466938365838229472528163397192669747331033273579588255628365379733843725604761587517388180395987025199702728319162859396465529007877688807448453684405836619378609667491702780029187930849891104263800643362278885840885117480818584242357484989989419182435331157950307064198733188218451392556104048319165000489188220249115033006703166177560016579121629755050147363485535501448344576439362654679494719977257264114137052371261394847649544402335933950903732083090658682207806024618229335561659995823838931107370698978699580210707929255118637463208999188955628823906946166557203002428847404916516689002920002831385080087275665280000568315838516396574769481190031221720444002976749710968622499875627898760961343366096034476506633607470593118723081171286360791372538079552009752286773875075287477604523008715540679386366947443553778429784908363271232375906444673775168728058406545738094426554916294119506582684370072227895530947502532711099821256673592135868514298356174570304872836799034394038674827469477405699507553026714947378194275719344635151452725312746880041099226951142342081900984242901818509021407487533246376103195971692150285783110804600559281455161852289249127329320611030149405485799834651154290214971500218315238171556109845268198381765348165667374559007209914817783792261248350417804146299341402324833950207193517638122719560652964803709075915218277765832985112832975183406437097102070134840882501824437532415750751112358034447559949203009525127820299396802254510307987310041677663914256320305031657952084885595078265890952385657317236563417010890050974794530279655586224172331531291319243938989867063833749455385928577810060031496105402052503503681095933237461726802493776791923445785118533675333944210590862289624001258075973078488342700560535324295770341870448145025106367791166664259800626826106195249976585928204030602737395313173533954538738112772863382396756427147737603865214582449829076853992880861845136173266921542252533748984059891686886762583634867807505206458454592135332947462753393967131834197740362947752222039899537082931298845211734181773724063168817987854373573832004852219235236546861322062430067593762082514962989227161886899653817636454327615067974519587840673466233691902363487907912832434193262340898035298291807729892376963076550343653710660924869633079797970041326902802500527906085135437867766341290825713132109981402658146821138825954462763608549035777560873722581832393859454091584115276755457558798561280707409370631569370003140769135537156981443392099284817947995211126316708448440736352352038402684449520606158862654753900441890518475501207208950752761762552736677306546013296964320646998073003476413437128090493495644259541138872050307966985961330107649297847033969761975469662671552968095180894537548571288168941375242274803313128110067193476009647589640381781019824451131079776276601347121462615871724433031458631815434846377041585726242826709683421169105270782920819733673905060517349213200963430990146843475339855665979469672004578857637185168036122233417816238007830578224632864408230326468715385311286237715370149348495413289981198873466387202446096376033252014514850922336891484216489989603066279283522000184928573045453538053516555119310015015779193561656750732859311565121844867353461152913940664069706473423817094331901730555244360412696421693790695238611940075117397781251925101876243397697883840719452492254281063654856169400918005437403330171012896372888901223678111869567497419156398398098176705377517028258171525237231895528881256616721704526936058290908252121907443953120471573946970833132522264728050165602626412586108998476848054404765375259399577455925973273188462977900672078683967991536496291628882508858623044413340342483026512134056625960873960442569334075189652321172708184472681890698009374424751040504976493766319869898478525866081134080572360334211864490308419858080913183839287598614965404370147424415560889485656165546024672364249975888390936463642530900738562321188994075230920021556292075614797763413793446774709049925848670292148372273313330016386071946215573815571911374539040493990458291894353198735897497814143142495039717756461620593959865811018894034709545109079373354687702526825832399808110326326252864835702340012551083514039862226974806781707930367248839419948731124870393686521883261621300725522079901231730389028052002634973010042857237247047105188297491766322389670716413018359808674061465635031780847141253129407256858004946800490650205573173815557589153241006271651690733380186800116359703141823673771985781286359585547629069921530302225235861197019757901073912303646572550873560949393210983810552934093309591392062384853601405108187185617413592680468001761854011814007501264689671236135127098557177678723040941279505001012108009222531410872131698526302632674731310361805151816659329088658855642169015408933828301757779168950727992934963875113340321407713270913382822257691626060928619055848440552960245904724923528455818151196780647849148591329389006974327929373314569994576505249848036772295011724102600338264510901260030901907903178851480606099190491703631038923244515967178247967241747625438765104883733689120553341050930667707683392718629082348151712553540520799233228886447991818795730991016870079845451364115667681784537949158854327977952213959829978475657028882192267940377532263484982247270730233816886693507561726291988930784618560258720266007918670850165481216401361285967924361876207253972121649893250347134992355922023776831629972732193544697133655827055121750611462607719751090683021940093124795305559136420004833164246499011144206608314651259422221991186068072967061524624707123912493106893294951356181895704258193371670952418417226490085046261613453671804549044437876527638298713550993689123615703888583382619412741824000906606006793276451566497794879478504275158264068630319077635341181701145477602788294097967467889515468450233546444577353386589355662704815241630704244353155408796848465001921587541233166320719139314328791331731266460687535423133578146168410423256966290595687151728244654625154662533809152262925178667131024682447134409563657682645517792561845843064939534636461211555605320121457599241136941586048296856715369216745467320141620809633517092124508867182964366040456591246354137191861147181860533828393476032355430608919369692225861859805523828039917054674671314262442061922793700630474723925569765501436592233971696319541270624369554453488717251596499020242504863080170528489964815085018299305849746312673716042402843459064596492048850541070884447274141401570079989382740410703633185022656126798666649630311829099597229731338635516717674057050443264022231042741758591265466583095867815763911754917066698898988412169770370259597083106241077576300427534731361557255544516597467269314984263679891664021273895860451067882534744149280202034325952930434208200666449115885021332308468645871971616785090365681986561041360354038730011406083093772463616332621884158849437215398340835195951350945345621364148054826167966537054478517963161300835797384639510588614528555750256933389775724221372190832178348876455798343982773501498777549732244018542454216547064027710650880474643524467807177997085664038769887006614316615293731368937183974209877356010850940005675762884715022958538231084754955200171711830611216916700570943363800710154890247911032133337182000246799155580887343096213461848725368102733615350435651955925134682044973236287816050652859595000176428439867044488006953911941437936160284449070379273248856013952591113622433886722079508309257408103348982175438620234562823365349206253264173362160893332274212790914084597193911857649778066012218529370412811779978755036861073026825343935071100620703636858900371736900454545099380205219275718634576650196013169795650113532358737790415467766627979405076359437883535260148733536158489173341230099885974746279566509189976764996722580749334439312182069290576796908592957454108697950953488033621553546956695499540315227409645161530897698634753360082428587586538703367627590217731377452304639478468090856732621044024104316537046262426212951796376878946437871922317543212438332670078231025066891904441273030001486443004305715189402901022808753760875698502611644709913924717809507116745073196791076656292253073137255382722791957186270289142718695096167631513328511709609017739221820664727806438856698209268570492152851843326862729425216036692995932285081673645795894468942397001813492672761533415228843686858403902893039730856378453233359706452303474896702886475108050824920439083461623476923035622105006576458370269843944259516785419857852979380885407096388698398504621763302994971110015259565657561007626108448680153515938880078505980371001902126787157881480788833281798009981918375813306470692907824104270580783886941081924404241410720912396864220011075401123137421313744345569224830235113370859539833498089378276400277418503175975061737301363466870713137737737987286521330236211329942940629571946457907132064764239296242126740430100062867538362419666416827227355139433047465952867976557316782158020768821345080330493893295985346918260711239810590058431679747130346852755068686088904678903214618127401984472573764199495968923670860797115579663632494760089346829563841579514121666255039446585376308041820691601363323167982603141228308534924649229880446066099336074352201906270705494501467399719178779819805605468547747234962145792676324229703042163718240419738390697098814834781372386144880527089752220195659092618077654215052747444367988863695886807873389980394057870998521433826686651796120018932037786244952073315937218820893507339933704672767149303205129565886143196900182462328635600848008333842289112983829852810233941511880714820340006707823382937614234724299775120643289452450647380612590729522569229441183824145848075507579424345577499300421499998445000660461955539433064331538157433786140401569574809474363866725337070906800500441387003756999106272967894907461639493534857030724771501736705140344703090471807079374275234173079808770622301149126004939036709674245223513884363663859440907966066437985224105818940258980672838811756880201590089713152783887126503409817860374795590339203024295996672651199368383472539902069634415033529714638823552244070107781740678052178509491457233949910854485824872446587443581340735820085333396368036083844846387166173036856001720621117713327375535776177644353960351587307596536240701281964446758678176416746421676640566292355897538835009097933808850718887623699892338978227291098784117042375282797259113120938912520126378063492104620788558786265671036328380796700837671210357674965625118571652196702721251062375125956117959833764903330214440786997919453188114940217559310099634695053622132568050007769565546160606665366297948530308066991746550569431714007795715358760596052532015302378571900568241369749790760582435025461423138354482458985217667627338233823486196356144480609315176762531402797584773278350869041059432549859172976307717093854428062156430816446950525505324783101543612428740338803984792954053967953697497048666802737246623108752188808936950778418842847555378937142897169775575358463919122367731542995370238402306450396827581262052766136923325448027103663822281422721451254668620242771736203592397718127317600790868199934453987531637763266886232375732355486709170075051654519983257583444840863800799843435541434929497853481277227520735647211432783080445324167545821106449996795724316071568883158771178687938223537364466703696531391404450702760916031714580015046336007033304990142992765967880860757999319189660517431173099167158807070637182074646969778765738947443865043042800385436113394488741305057208189460967516259393441321280605838356103713721873076517476544325285199569932733749339974221108520525641271229107175063228566321042155589133185979647589909191724891555772110712894101723828636260282168902736106689506056053666704364502137045467951772675082668116204509626067079873521074782396829541778920948414435942051245638205856425996831060035026070117438113548371466399030792822094455058546616763761954196005750056030598013277806518292177107129052034012081053933320271206357237503511276875542050408995493062498487163389538894711541990722432120962145179688358041951927220192388941965294658180891442442139935721373806999878115687511276304574046272954463616435071396814664496300918719214014327354148297156119092924276309343454517826721217782300220498532388283035717727929531720077305578790915965711860839518063358745844436432221219444635856281638656382941188255076551214551590398275407950666747275400592620351659643927528897945267733041042700272098677522053537010376126257205596211434382168314009647998194786950079749100769096029328239793205243691663406569913405343265671145352360285766034633732812883436603772297178354693442577759951580505877383355438542805350091952691066112673766131623353662347282387474113430287969692485804541750843181883909489056643643931518146197226752030304384387569697975040513394844967094793253986214987413327969980682794875868841871036028986853259349566800065159898815092786940835988185566177300162298594403195037255199282696345823471908898434194356556698257582084980423494760673663234327029834100200786581538844059814217008852803894520985946418304014506127190815801717847574246701228132604328656992182975754317541739390809810985416431889928105028113558839327283931587552172320659398045501821841891116303691193160421674160806262096033499271603116444935304551505534492600466747912314325270029996370784214003579744477752324232535691906011452214660356143292233431859657002796220390223459715321158448159762052679901035483935786400480231983013664460702727031163293680476417592358044644585634301235013931125852446014159903708409912534098122371159980697648334782486208405866581998179482408095180467367805156998617046680539026021968563009789680530872262839909094946847456170949770711897167507365209246750540159170627772413158415020846932127989330446429244117962853671460775185849799652878976225246959949314820294130333485810579365974891727766378698211940156676673413990202845976244633277132490438542662521642790118513495255523031974141000905832924258292068845747717021598828559561672637093781253152019186679207427265871324178043155581734176123226730469256438135399972239788022255152009853871861927966131285051904373390099588767863633360826733878606626005311759409949476555014803916849324165759929767310350354872295318393213551217026757088412944979461819167726815495071063869661373523703764011599556057727670870470008454695024990878632733445440999306156284050295317096303432846028490921560317327892229938940646342199318572394283135086853834007611251210744900998177937434686288666566430348517813411655885289839132551690312912203276294520524959594544465660410709217397130580133264764152179193962633560531461690620746375732707132781523665796294465522599624772299787536271456211019254543582377235510568063092230545632778153562282435586332187324977104452028927748200847169447795100096818287884846548940081605346173056160408598203826172440181190266959089165897418748764935427881681552950178835052552087069314295298825467518589662072541953627904335196603252537778952117897227030811600905872149797546276965535351062911316914953440422056795995888688338018380442244400172822131201278742551979169996902457423525003849300982484174237997728248845077607496749425155279269270656712462993827758673559111030274737698554981964594801747468016158259254086030178607103575117206517573302067341154139920232601595314029312708239145016208029440993517706117416665306644479409203483869840003604053872252291421018825263478945480234038981612983773008248256980132942466679563145795971108999020417589880790338198079502451495180947273099509819433665383983262643087075296352968725160520013360234519480107062949092771144635191178406506919905078794006313396831082308585033603865534805549187406355332470059537074919843093518141762177731691704490816576718542476853642255868941775671005099775608428271686049945613561408381923639303319077564538760432198784893094783249663962421075083475309406399979805874939919038349032323301076687896827448766076869308420021028283828507467076995487888018882044135562376635026006302809687468565919643928649374652105968281125467912196774690649985215523164895529052351465897340684262604075249163095295873394397513838293611093717077475549245287562388737638586968886030440066389037820800194952002096649499235332156807583673811168294033511178071623267813041799705701323992175722366211760659188783235955889959012477566813827673600214267708458966295388055818615896564888177096175522612331624953039191321647802135951731929362524060969968692946136750016166681054961482999319497617042484558349794343591278260213096898623206080837508513915186789499460218828964915210914336113085687153231093732656470136151598155046388975638482230885739478643937700631752754623271809021561563172239149368100683052160627032795227666375079118240305703929200352359993603032256872949950241564709604517866457921122785966133097014928012277905105112561442934924050081418024274372106761734548971493745621519950627648703124335320312714830476272843175633758421087000314384130558517635156851205814495465596900768820630710957901981661815619177025573944597915853434004389571783005323233609434550164405293308232588774475725255478800757510218009123482316198207383134769718125082724872286613790938510097102576637263400854884303914685557711542402382960747103162838510465162775130641681215594746956803137953642288128977255336218491450362716872997377663708975851978357392656006005572630165390664552501378549216972208047410754302919650439959694718633891430304457404354707889032282270235457460944564041069933889779272018494762063416716678390516885663789120331789915699154264200825960350922373543679391692885757894190383903493521438353845858526399303354835793463272047997179369135839602163929857007008484805813834247024062579453670585820182711601582488210209286297073389622677848780161482571567983075451170919141943458939423552008802799980204606489115503260564372735588156282875675490228427545145628214385771497350148041299501855811182316192294297750632575000212381897346092450125084276404670941082803430095111102149477654858911707331410858995450205844198020397620991284821583448511541397739062779864141714493077337680828644372407409919316939690678842873161955834876340785292635264949530647702955897510893373248414449464079129859899913069696580477988724580685074562346384220452651121343409097417674059621483741430831125942064970064120053389272845661330996745904057638893590559015647133074332501184956934769973387934538367646109139316915277918127844971618659091450575146299663202562997793875398818986241951358519415835138369588725441800097501845535962142496626906051792385287866914876035114706932952827760774721478812949929724308360577770637227640008732796107911222266251089121503731430340807382496674591953604835282060891844569664023109296567353083772967401912737051256004344539435347370209006192409563776485567743648334045619085684476698857440236005670312422627222151152396269374984023793210610832326957755107698323220052598782265555210213099468056416649269993790568566909314095146308380210633309678850000138581557485686607435428045446560286141823656033980993835318847020831012677978752201017838663698772743929489239992542283665468869498192033628682194365182700236978346982640830447588639286716802095927862487702607855219923584511328105731380316449335507824269563084462058891952496191477295401686484326443433678297203553129150038804231383197353738388736751868657181692879030820415502018394435664817022503294084626822168081696771075682175703014272700941004730477607514048890003436089960510114491075932064991048570506369326059740629378341201248004483810131460878727356656573566070120300656243321171503238008360247718476577664273401033198818396810122325286685274069871923725030872237962851496750548194320001537305614499522402609735701866751041367692688331803603749422568789883247425468461475356927347603674731591226680454506937115296692140850435677263008530602404575541449181702066351115079806558482429153455358490762354273547717085177785631628167531111451851646098376693529865646696220237423497797960533636910907654172134551183985713135583272093732128993601150999020350219341111920049037732566108190163481219346828275869327508289750446442181824186979169443490868229154931735039873446077754979320721544475288743191577254383856133568370728818542927621561483739222705643533005170216321127339804991591633764411995078277340907588344207595936095046368946699728606783516750462952523698683849396391511497737162852400840308474523829248276155518429325231144679074149887599052027284517249077879455216424464450413114515026855537360746827901102216077392033030117611036713389646856216003492836975431724815467449238125789529162173356599176192264610430395465132777196181865973125080783872713681797223482906738177749012085741648814024982828114771210025609311329418165811759211888274981208015285141070921766489901743516429413773963060549903280027347077973139627806016344760812406878889882155649462904235435125048401200926930938065137205878973989218000563118964389134942262828111957020500149095763624175635661378394025898415040901379140393321708211584438442639829681904031381299323839566267387777416791272739887296120012548103580411180459676481243571608732791563840590544873241443062084471071600142243768080384674197764623938917457478819397706620541879354869169919723556769833512990273119063315203893904234776926323034403392720033032788113578382518153582743590878979823067712868860707581523852190393595963881375112655520827683585777869121903208075636014495295403114950446057007434009127174115911357432667794877533816332467489846448410962447480829519836403131460159554724922285672302696330755684204024543955103361353007675487270431812619684755112500931328860772854295028286554557081723352282601299370180383135254315918601956940487679878116684747016800625013015968716715141775329864210215477401757963090025527905274674909460771734381427032484696644602692008068256468698359068421901049147325764040684726654762371837679946028904923204257554626243583382503022554583851461373071015043818438280864343212715391915515849258519856394018997218989690188099797179505491201811140701822111898011690108689219082426937024388124011789513560944861454149815060501042885335012305947603659838225967972084420379961766678724223765434170774215082830008180960014322221841716523098410211386273634164441482355616265107570195748648145069429194976802695184958463900033202477444117715331306778127704133551235027874917975868351041305900472513690584247356728304738706836239569130472912123496798463755463458476339911375108841020577568831193074580388500909321711586929022874379613121242903494058020079848677623468891905788811553553308795167483466963094891994739236648828524086800540349024959434181610545681704015980852400844259591828410604142532011303057007705756501668321001319558608298053256739443242965455351769452121204684186670440510188634314524877267130685433915251614592146565947622558628689295537787730966276466354681261090502545306618394590122449140084259800717436229274555621530556404107319309189315779798439261203614988138379760407966004804901815389351059670330541977815539834141513175424468580524286092335525281525177532382881264987115007093374924846778017051325445632423922988920006429330932475208827061624668534654044057670972814751716901538004538420876656820043973741907492502480812116984996823504552974642701721501969026409219228123831791629857885842133626463593396247774247127610886759734296234570814975741901784236305407617722767485138458766398304359058987124728754208825275173457039019106359795088525989668765449330444030087921552924853722396701307814964418178843882198015882160433532423418604429086690978984094074453602991688520693623678615749283531102825221175203243779587998503074363833829697347108012662545001469311836231629417998706941497592919952458761587027008224905094863617280149316399091438725580651177674561658737247087547542133712474058923747136600202607587238962416282947796006154454631356082919972780836377202682707642972010760954972863046353115048744114304759350703423324083813707320915469506251535185736841962363881544917253730759537658096278857399047899775901441881624474792224947956228532166934516016779768389454753891336125491074380682028648931047947748549695316271560293479618089493632197838112777304659204070111031341482431151651885700613305960271364167297680501367287852338247725793087141674345963548732980581661902557452237967425401837759209201397481220500594586698161118616408156504076011582201433658952025133455930861905376802602775415749170863553266830122811939547116553612565730025409240359472388271284440087913311923933553489795143701662045928496206131769080065895010957307143927371053330539835779329136794021523539939218741997837767068764935321576911950600486398881550797565426909373409061026001891446621800920150983332563563069450118796895524686658770898456141283071458519315810884985845295790082487891304288502800019844224489575570633615178592700464649131751861850633406866536498075260966495599568649475488134121888499723110831152953590794180331554080269576003464976055739283097806168664366006943566346951219759969800925381851126271999748688361704843667115110067977351182100356659960091275231979363714028734190811858716583886762948742402079417394057186315048319750028576496044269031843919702937567216727485470095235412570798355546553235758943269437857983903482594330386602545650781247027329044378506292844739764446333342142960755473325387745223437399938244086485733766678379746570843073025972565949847109923610901027818749105871912713097595304901679473060591660506911788650721337696339084635001093660115819502952197429196144665259570915799230424351422964167226060701310176953519258239759228952561414464941763232881859754401262605416675037415322972122788303754897492328205482262529826618235746760059341956941653798939412482156790045154149999463726103913624116208712759288955161823625234660310415322598097919313007220630242239928161929135802441476765742960050151234067162486692750434182891295022465146776306094664179097001554313631483741857473396559470923501282731455071790601564015976128637181298969042011063425310278206653350986031035679779204172726772532435672596144844128779129115752238001822506587820220579146760606409411720307584777977291173075527386477351269315640016109406182225166896684522511207382490040403423707331529434201125665091984456026589388822116432315467451502602615292460511239521239394478766878870204310342788363564193756772505352588579354352303077250513171936000178025288473372136136874543207687794735564780871092047689987593032647200058205153919727945808587392666887782275043294390858218518808737786213053845468243032325509522461200098138901387616191537765785165227839948860861856793683195257128047786715547768029620509334173378669053933479192788153731265557808516812811912147170286509433007926070527750065115257084379068386994737443944035893084089066057451934010298324772147815355827177628014296320817843973751401899127751643532015513849552843313687562211395117686311733267005354526709169783014796620249887871397122855733319419001356791549482314342345000936484938809072110002350321754416205860497071759457967779225590129833607010565905105606135502623722336173932081373729636730319056457571667342377310224391233865200877645799220804396437692900389035747278531838906761707348888298687001363889208818688646109968431430410152161896414229242107925874680882479357400351161401685502114195242705529463338450319700762165462282702553076704033186645327482090569113676148868924471034542275879086611345543328837190008336363952611544669528107839850263386929298347859784485378274242650701236993614448129616439200652030749732941287059019465646409014235530440566580827736187726177756847166975708670554937048040999535953447326742703973443050333133052549529969492153566440819920010908859777886216212500543336269967825859357173596092315058629879091908028003368651206423225106397346727377025662960118249251688046576043122435797871176839219056207125019920249706404365222488352715967406965251591035239620363295472360789883441765352199673882991390866606529574970105552983996525431332510061395925555355468218794888523700973078675168727833166351572312102791748373190954271932849774046668246714587233199282032984880299180413045720931574666423862674936096951720963138713170547348608732952398869059488929524884011532717827245466978795792281179340862722487597808093690101345431205625499645603373275495389897154053081398404135076414472057418983786378708690551840572299468592834739461660071341272110783456560154640904756432664385436872004224727096264277308401016407723761813734680418954676674949289753492893847105994408850371952726843926621971648573720732830161822507362863743823225130866520340267089191308827055302796754452174317307622536550363102028752474971695332774721121652522098198398546263831737278107868785177057287668528156567651358536008959035025423805706415967554794677619013997673910215847229367826556687331417914866612122627787590951424702063804643337837304415200194548242401700684290973655299535344760458198786926558645801552485328117523331558591891733845357066475950980008404666346985784212775512696452401779915343641273886423952727150268181711814920179287005777481415119756394988322704482196071203826977199397027717264780306416310359430122204599814255036022325607910039166593676736227481950839610106610390311631502263083703318261421881770950073911595127371888384531489708287759613698436737762508803954565829044326404605098394929168924380828711781355458640087470165760898438884859919774165862934727029699216829616565917375426493505479927427106805293193549799327766494767559514229585096751707894399428767792919748525411748445115357454182563863557191661386657764472094359965800853066602969378420888265720107789836442064498504123797386838093805829262489392173924834227971480691585802892524922783038126381642085634072773379915333214154319451224055368482598183088320324162894702901764172495908990330794562426344870562544280995409236246240524711854191581870005550885762632216565226717503629648223901829290414294117411149106354316365954283847684832932626332015869463170151721163673831247484452895561130881551021487991961011499293974718705689384797455309884185712530815684373325079065598917531606732306450079841228927720164103300284625466284423593172361664900526685813585389475635540178892275637924188862632734978352250211741853928288915938329201285606114106244717863120006707742172981681033862215500215272281029336693931045246133157436892306466563523421859206114528453884435311312446821749203476855899330153462459688677046261012539537859237656511004120586657459017678298687569275583442286351944156506162103418782076115858572960640191578475058172660031014242932270167167161326995362247748368366336008318502846290541505081901092818171123920401759450720442855666525269243250437537938955690953758682148033207512880606591354196270212740553240535327192454698410393719688152288579882843881417688449940289171233957752884343039032846376699010548882604191232571568113221359723251099141845378723365178219155785575872781794857673758348481378184386807462541253741989051984587543663617312863581505821932839271916952818146578175845567348461116013330357138580413929253600748662252792062878747919188261994160185825743189604328822145139452238377490698073588937020914490114869407524357265795598717882695192768579349385465592132614619047092759388854620522141800435173931612392577184791819883181535004148686625943383824703336312804499650008376549634992245082880248781291959985752083991893829481067775756422923464355128202677266473425584232319555694116367153254521247193753876467287628481952898603083147229123633175277463206111739390016574348000613311994026610062595429118383693588148603102239499969891236296136016495828189107142490568279197633233985218739079056466289370954123265978409966411294958069791169613777625947986599359309171639677901162944372155363437239003895699705796783164948855490680533144045382150498456523566122364779525933897946100104390552889422683514851002650199078457517294551364246090619339648671856905984492042452855019314011145847806408900571509951841166651112858608650358792136182710067248970654382446315142441307131882492816027172690124559947792267559046938948893630127759895374351967461674866801681276496200734992927313115437743672819363880472924754452616001623741741281075386911930294711902138950730226971116308483915632549535928160432893901245980013563641586751715564184060766997260951851247079820853361297935750800649329620488075268466043625059515941676588811570421338452895380579605018981155631953397210701135824059136264029683391958473095206621297089269745603442796767881780536788466414661950309098659985887231601112490645445527119858389652657085150531510302364931248089016544935954143361009698965316404333985626460069407910199845953926008635698276469232768107422222511475378663816946948927361539365564926650235251048714828133466758034140705717309427359774837151300071527340904234678683612665989911672053413222461624744800918008503104924384466106070534783216399128440112429482464612189930321304677402917018215184577178370929569781256475450699420209677403501637401222202486608562302193924823052533051796420955328406520406001205043932217152633046536178374316712421426436012414777203613893597463064732131841280544175110934180378662498243693934426287746875665072456664418960825097862141079943724743230441411301597783387362551509971529391361015127747745909025772007071518853255827918668855074876587021115415128386167759514435454281890528273027272458203217050579979516078035719648800343311611767030226279780510809704521954444416562315652110931700870209898771150207110322653160161155188381485703852652812524480199881306383220984272833096889865008780648424178110347910059109283089498686423857773164072119433572538391989683857348974734976633837017988326514112487809362929423828101661265639090315029419686367484746055214081253182020380798578739325438547051551841615710156542351589834065596981072675982724922161872055315492805187114191880666110893732429118311640942772648893033748867118162190028701177953751550973208992067562811245143375965899098710408930792104739394111503478113518357889514769457781472277782638227930534128593896132290356129540042157498236491968264771759799809484837698641491680348098693656561276712782563471358672552541025272849812289390271603958718536902713042207612687573204922801230782112320280215791219638375459474475223704688366032235522250155242838714977078800690751367898534060297984609228541741341292408774806624169309727150446123116303697905733780969754144621650498168751634921075591469918885581028464321496800340536150313469487323405293719330130684340592901520397257471120588177979721497733156022974370014994457559181398155069600586297644038572458327384136083775303009906714688201776645332905137274741546006395489220383037630269832623142723557219406491879076134416335472680333450224018141875032311711154767709918943101339313940229727447056519936481944070566196455947291254280698757780980199316180333331860110203063830153681634143486793284576303505472354773209275926308396387501775468017204437018475551820829308763511658489301315152291491805673024617928890327701654046070643124801786930320380362774824285420544682825859810045486362683979188860707066448038273133305690211195880480968323051921658919050063351158014004507019938914432297192724337219528871797100708449625692598297386776037924306388577847684034567089481008271343844871501068967081918510480836144711855903101414174336664895229957579739198712222633415391534544322893639151697515285361805881550103371189260976273523936525168492407752687729205855777614981157267650369434801247610851291547947510062889924555010982482270324272270659158653105865913177395072873592259394418275290030959533314113094734460232525020911574231703226215231651484217585477354881128567612095906027512289326762744223574994172558409912482934441794731501663392552690535476638916283043998251656647680242668594035422905018175058414733309710379724810258755100464877066796656434395724911393448436550155732473349437945998720344365887783251218378044129234336631192289837402901271873138926011880540413093425808059093606577003855252321472083455957743044647755050461215557022534870978028048516492659802306379385880884417403773481338572921069328918822595301181797614881366274310348925360285438845179211642685939511967022904088741454900720389598202253878747599440291582951641610530310072300681190520558365522659897090504044987053245796347847031410157922255059096090203165011987136203437052773944899842295775841405617965443199570680360020853346917281727318340004724993288691115055964917273095978538790778286432371812149929159840519270795237728346899631437042592789112089649321893086147293052897169238449087920038575268225379669722256471081417573061301218926197187359585016913990892765606830024897283765291742787402334160272913185436291673770584733871373818486881642926925734367567804071694538408129914263406943791514593383342279228683092075039925481056445614565003811163456782314676654059436200788070969740961973714282768337503353472463780557620069814440558168120275633163317784642375542401729696322121302377305192856823732033860164128647558291230010732657631793628731706601979243513615176427745750664068472806072980662359006991455583576946445829191849664547472141376020165770103769731518358483663398808805691105208831735897789447801680115319962840441738684008933982519149462814910306661565519031377459614028430893545568408475417558315186477512001781866641624169110929560940402191479018415751282905326658172900458058838961535429192520857704707686256997202343912029072786221768692491018465554168751439305849749171477877581193138527775982812109174986626734426861568178543944603073523088980013879216776535466642395065358507246199274939084267557558982298552763597145260361009291223142124386575055702447132950822632791758564587192753761943154202730438773990354802401669814344511869300671362645500227341772035865021552967709328896234578663084900905022500505552639969241442148013923574145551481942974888260022540835945521778615459877227310735379102306215862365054427685030830586181171198299913245448758784551931610539021851461123337677660157553029513050054095962978985145698527615317841288277579637228737477927141921887115380994406625944880364040684143004526700016427732410974596783775630192435226136545602952701330473747079547582204843289389483194388813431466791478045491337930052285465912574131045657535323951326626676022337839728096482490063449767721585471537653610639678657731996969863807856287859459746384552923166873332196383915289835574183939531404338331207121774445333679477166514253594709327382247103213292574876630353135330254808525371235518255335047210794317438453194140332512871188921387558192834748642473299151707323096155314666397092651179794267009201038782350015976162811592797255718605106185999435069504939372704772550965772994780432071097226377029503096466778734046616890974737243562377970482937989318609201313840821419279600792828165480653766053403426066055855377398941731361416226676417643591252137944785860922164546544987367509913181780014830545603853298727979083170509503353672939112857058958645606876045790553543355696623430516165005441708989877523350373250892369665043739964999435142187332290256395767698124925970747784223263671998543685357307102194640093659443355920080772849915146809031906944866356886367393501204120602407105223570066937464927174615757378806178423748963507644268262247503357036933408346377509428099690045281409196381614745039182038894498372486696178826309877783318604733767377171596212539018757562575646355685103395106522725125716626178569642009845632924645764085098697793536272327609869868040324348412991478403070454282346420879407662037038155931891623350206157930827924901461836139309419439700226274997252956483239415149138302125131723486751090330626156469186113764608079171794445051296591116567655108597950152240740626414795365825509003421583425312226340692247309421113090939241944106326027350726045711562062364911596298754634710114010258551340655979217413756162472750938622144993280592567106293081240198475809456797591856476689646154176888874104974721631284155308485774856123027819393024525924210276517791068319414104049686331558884244847638940182672393020295207679168980308356288179924215230684938285281320435562758235307193252441947159396443807757532990682082543854959494374754012554244196927118475021959951394543520177302513720599609779349862658229523624497998318356425347620093192117479956053164245597380625935953499634638331648434496371483653289165968194965709526940399437853832670797501901539365141824529138760583189470200884446012282568379512563065589811501826458458977546359768162829299736817353604439438362781703704502419986479198293983230795939263293350478451309659142894454237204939564763545152323092732717736208607489381827321953359015564238302778644325961223432107348398056297505731762590131170769254381347891170779110723682002760871252425576279749560253576589334098522178175215447130985601037716073902459670471455808563505247134797066542098774000769259057641715146188792021940435871045333001903374249453722712241558534144168193204943087083888924723934642879170407143788033961659720720553390451235199141027641097068321953078723219360854356442485160756782357791989405597214852622609678754493875886436318034591811513829301592292050791893646536956055537112368163656106825517116052410463909262440380989973649879301025704098700549652526859488418515875868990279725197379592054140142317230551009280101052587381958060124274236152258608667392502099515154089497511864911339509563760243861010581512233143848371017702000415011271261609402958741871325456256390191771263968889235195374046285623929905733471104478746072857634587726779608011677235666087478319413304225137259798619242878865157823635620367855868304732024061117834936464322121807229413312356729987630604539332443677595386609892444471035038879901461538320273899902961801799935893369922358273204053865858681264339090793512934371374528758841931368005892852717945888582738441335374914250307799179738627620283907745123444218555091425832478120864402532819492884560435030471724754707113638833628886629310158472130762637716660280449122356848893940785943309541792428477225513165362116101194813815417029277779657733423868956919011551700889001983038378519594529984140844872554518256577327425145488171425421677868008465489384368754002287664947766690670483447561650557218802714973035005168331088483800510809307437831401806729514067410996176753512471599218180569065588762576600873578809802027626317229810586849851935091581772433258072448266738024522185551547357399250521331461398235404922005575734370584859158920183215895655683936572487927237550532334323193854544202194831797872326536214729060434193439587878210615728642326695407606896663254791193511455783338478671880887870787247310372948531612239950268411928341156298556440085120136703918458875170489709104159638502067379250410884355305282684700639871698854032197686395027756513891862419916548282607617381474266675455734452989322756300701892900938607785146129492899744495704376422084187911188006487551883483888151162922612708742730946756037063527172223557357762879721049122898758316115837282550489021813887029812618701230860172287930802602666516269173434371861137400615755341906270187140437483843044286284782940194111381778923325081746758011524661091262069419159016312257396834440269566155867520725123833883009004511882869416189638845016979228337801458638765404458839928595872200032946234924877817091400354894120460307557580158805643338375152537935552372377954315903516481483393620866917422499687835017462412351793258883455300877481022763022181051907081957840955956152546817547795992793286178448281646236544276779683495245706014987539624303125111035169080308228216831601383940302959197617753665994174221603927556018599286789759842749216876587784942055756957960907849076441210218139857095729788645354388897066107982374896850429270497566312998084226152373401925138539622356032541743660883315878353989065090824034444343403013759491014313583201575423736758007753961474600063215876919881346791858788471765508362545919366627054931121247725072035577421159243368043693125407265688953403358825704700385599577371750593044482416054317727954794057439144912589475606904283964647895513586090102048418063675626165484762181878033234871479373004452822731182100339099856081689084195952831286395217976251149164826176211074247643173386100485629920723566084889207013947612724114208915200480719769840301878992678967945807616998119621993706657157057421369921655685071674169353400214084642364651291697301284336168589475581966198707697694074898580954210939679559031801308640864795301204399169146908329217923485083679430893952816037548714158092974981794648568195719853634252591448731246806473647657494191301767798692360551236301641276354036605352112993147888664039378563002740649564242216835798488703179627505248774239305281794077566226159470450465043473983838485866881409632927401273992807587405450959625288514841883090505176271662919328372315417012725859074101101603415425649098682700905016784690501498046248874013385680163314655669052149282448796426711072791760861973992336918935186909070384665654211572746194662423079295639388306462542595350266621570031274701005554346757396662661073534843014293480232714291173333020658321783709010229836490061732546992802787958661868436667425827915563907390119544685528562776037834773463163145086101326335945011974852695663451710828143476010275815343619375756083796596415368173813374742405958207462740480898372957595130418261767093425196616322925402307943858203794592017197172052234367379210877211266902456587887251107915844560220479593261687780390698171975208031885622056114432014257220140069873116072208203959040829475902461622124764517715241138254039714692606147131794374300385774546643397577856667092516712282448250266883239516810808520725877598702690196822008612240744915633877960528851097112754684216799982557968404581369810596856383986278885479893808999698735548510113655692114767406730462156719465505632488832855669441468043440467297385702730534686433904144951030342090012454470882590395034012023519170915451515729006118077070052049081911181593349734906707349974258875918515414155415775163970752914634247372722603022491042008356265070836815850979428324624168968276051725660554366143318269633601267622630742104020310550277366272573632618055732616528875802922738427839072296814081959644988291354585727856852295468519361590421064206562357040448396554640207841362586986036223889624697866761874205904477643212755971939899312804346379369645491606301655470955705152759592799304428907507121110216734720239322130742323822768045755543694309567156666066356868866310367288399090508879036716872522708412759835553882863018732231042029980386041088153888386590303449232747451589305592457006139851782582989192432118958584125288985324401319754564478557099019024886540583126621849135557107813410850472791243518562360900485174094039952628594451135611277781181647908937953119778531039989212869261727415756004537419872355976068798307676323558401365109685348371645482456031675834431737183545966570509910021291551181182136934730597367741709413609945852851711552858036574939327826135154880051374177369750892015877399413470918766237586777950148832637838710281136676313674040442520368299049724498528596687322567652481935711898943699012168137873440807618864716085897689311424744673641418951235673677641772580156249789958027174443295517081749553962068807300288657530191361474216916368000466953385129930826945961206275223741035327612499522325112617332775238511371358488821587887062762751514811634940869813147306741942008159127593393886360752118325919967110437114814392136018862827160996735482408947915406260704341824798383089978970757838267076708226405628362814058017262273797071923089876460204654414640626151062336004845245003700487467947682863331984225622976751240579549223118020619783640477534065777204707803179477353419931346479219751147228862673314032752611051232254158163757953028994468293496501052886509451303909341562335869167714952068584504476242712635281054348633320434677170000627788452971453697830829298666860559887972038030936688850532011401800477080227947796081034523371064074715406168882367934092485278484913158156342307069221636655158372819568231202073408486802449895152316881716976849295926555570028939577510590739505446297593341250116803303531042527452373446237824957535794636136076213054749247135535606063484095876841254094969248049505922853666693134210737703964205687917812493182293180817093854704429950937896690725194671859235372316861648571630135286021458515939959481149266001847717300229053683693270046182463889205053259721489068098150900551249177003507020216982254421558053774806864162551161660510149635290270573843251894409463212954872721650280954958650291217407148425603951474479403797085409603873812097098917279714535618712064352773916964336213688761005274157590993164383791752170530775061413603635554068160582824211565914823722181548285043593455758779554417777249678069823115341788740684777949969838951815410785129049498704113897000863436009141805407865191819828487327576794399742730770883311971196403433764062627483527515362021774994316913257085979625172862784379030560125097954025868517291991117598025967990493143098222458661300886591986058896338372712810444505651749769543892296010770856269823962375384563341073951056060753113502169767366322233174631954789381659650335161131913921262866488359676429380710382105280533278019922138557071468868664676190456037685687783407520277770380682214369370391101031161751173157369653813258231686742942315813317002845355417270060610490081986753271355800454904229057778746763457902183289743819454007610727784279651498943001802879826748079330629285253442174770170704944120843597892067136554804840365271032413616901397287828813543361232406338957368599827237555394457543556401311775787543856632962474441282567441427389389374698236439786929810727634244965653069468986149026779564345039765932301067253320484434078952323511356275220237059935081322572733959556817453895997459603828028393054913348079839217309642391882914751065751114883984670685791808533297213291438170715280385333749388859493005679140948642333190396700015529973465147525292509267276254101012340047636374596463239162431065982182643566148948715501320060803619224508954203281688019603490576456135690096744440778466592763985849626883801042177996692111170123867970958400086987913786835565465177170899646320510188569708014842121316811012750288327185435301580685882785123770840309433747029792031486203666086819811807438806873608912157139652091673700728739899648928423281732875453174134083866268497309068313433326751608588583566316178154244195846876589355660641848243505355947793074898473960163521575302032084596028547104279533503351187331400885335339774559002703901589604614099427509080383922879748156936805121945871237571077170367068572930083686292308975424637409168029068999819119236230423267110552970738201477817408692671080868852618563823133130726774346242591838101756014404188989788799055390945308042928711106882000259553289170687012597023198675668575187641459251674673524463120529795749510472104452706893759867509697271217886192199093076280675984116300599106721670621535905087860480217983158184665775066583712339903174054964688311181160449427336150469516305362762389800021688058252627175001134412978999611300693754509104176363028429440872898722424908675716438368357421251656636290473172773757345314996397212698655420192552580994426642674966078447964981917346159778236766411077885238511783155098213582341418138829304930982882893939536481470998694636941786659163336943501709600162866387706798102959427891688276256484595660414031709780934023625386676429509567643092660912739209076490268118457918047016582743476958641554111867388577371306924295379588865647450782529510471164207097654710736166033100405481459765306288577736423772350738463382385600639732799259811474294079084888282127307135082414901636810866677587397476511882572590487028172328752377879256747913826820709675949344489503513481826186152577762407341853895030958430852798892394156873206890422353149936351141745175471481206642006769000834261018406844577613029176170728972629514479149498714423749566725704847706513741108966758015432182065853379605656052879669745931423544451406203139984562528838535235080629589694528383092400977252839683130393402186890548928123138348878113393227262305925962411148141422666967534551683820250108527698099622678647678213848272929263601725086263313971837381915057719518964620025575371679386164176865710412466231932609613415707232473230443473270724387823450148500873286408902318409317210322612646394001126851591275395644898398114804261784638873272795566053216168339184450120639850973127258483471573969911504041448521070711555562394682847890825059080779985057710904949425730971561581391192588669594621277882579860891853942813789822495259743701374680527183117709593065733644492178564316488233963011698712508003596472986363597878962272674772549606549301807838711482308559784451740098331603124018792089270843691556987738717253216104330468529313847024686896004372560872780164230188753112503815956515860466644192121513165330601666012013823164085824715899539255764100440703309123375168603110509256570982753912739810501310694350648437533320786630374642280826182493394175374772656251562817187413292219729589010257512969999567294849761396698648589107637144272247759625102555038964497962888240233262094198862577482963520857241842400857257354258108989086332833813359307649491349118805357761833502992310724635627429606313019966871499776064907844092955480695504914504473066818779358866270421087639421723383776520776022040061676807884261676329314981085902915698902864971889398369139056541156499647458472871970295262475000468745186469032739791077897383559691778833619777839902436775870713160772817847187717250455483254710157074132854368165522936245551243683762810008690172210511038683851685012825119302713969267409505773867025771069689784901808861731408525905163569310690030926985740053664760584274763772914386334759584423174792079237137524066862060678212987943542769909477934344148394296741144003931038870249569312595030771538651614605317310180010923514741638458500147598050380561101443103517022676798519960157281868950674396254476772853162196127968747338424989544300023086251429480131017051406005582487186614161909248210487253993339592589129079881806228172507919956907969188865291123518715245774649753388249589322978510498674856037064307079566422460252161087289702373475909956660716684954371471596650446610163496804946664481569920895994530555180168375134484229447575174801053553492355452067023732247421899315218161442995802683867855102969501163254920462839682989699095215200281400916655938072040904812754937263856840359258950244960705373012133551144161718791658591084949056583688087571057000689232410105715434553424104167882360582008474902977953092882307364494822131124590522862031767872562988297171448462266090136219668435235924937771412483870518036224638149835607840605797613471042314321641196116652742646536264896733977256802850322911166903013705984045703145160973051129863177083527300392238748805491455294937253730119088034305730176011225101064660406237241029731069832429134030637441645866630492560410664017628827006198808441099949656284242863591725290189825396015805777024045760772880416785381583441628553530061073187303997311514053755413767563411881414149610900609872106355534587682323675534041503712887016837220307959553770321839646977565754797430815030260406939074181643062986809778245374285695811476106675936678903975536461754020519296361703387104178274421374111246570105826696239041491621392405543959476566432080573922533192524834253480347373378519483108535954398736803099371155715823473520726692500508232880182208795539983411490916583723543228926873296725468747036286607159886285295112409889967729626182776954270280472185235884975419741139896605248863735569878714773181424242028068445990055422787494754494776024667359866678758203535458846607050984028823856233336547368642495825127987762789176896523247542462975428044896606158466759824586469049787077465030362351572589612888180408871460846618393951731918725174341762932980034995100367860642657567912853454437914909448819431867642709954364443933885074787956791451148014529410151456174721376079666231849406011840959187202291120850301274183218272533028341632517484375991259770614237430574060435298301901905323813168964351251298161826868264690390857898120129758098243861116607337015250040404335244903386209835922292132003344437306061850263891203518773388407526227991667593966815474274958064358859061487041346867309209801599985326360708898314560026666808276283777133185629508624557078604987635730583904029148498634318438798788550152917231465189958045288356080947706502165367531223512035890315705696318577164180922612801010851345141929173607141511416929852497329496131729406870223898731985053542550714643239568283549927014555626237600281747166717918512646922399359806098899348696169685170670496518825478917413534358887998512310219437594251657031855136463504410127667375207766089543032466690023508159213909807143060440651256636520244301366539222618683519684907473294807502852295459692709679948186777315429046183090302415770195280819459847290474183579022765271530062922910500823951241124649928793946044227513812013768559381587892558250939970462380114866159569585639041722772218783644809320040645225576262638277562220781619347737270602204975243651021879739511060454530624589921928821018493729367724563571444378829589092890442724016191523711718270527869989043026975759714564799121005809065771159112466286473687525163923956378734061878750591044630989066545776320759809748365824031403849913930623473905886769541265291510985869672949211792186866640970565392441195385675881325735075240038986416143527277194657968059803076174993287022446246467590479283204269196151724066826602101819120616328707721657687665289337227336481492558583051317717522031281057233745983605828194339320340568580733010381767772043564633965292856631142085047464126607117560181729569581290638002731057297239765313890539227897812850186341457755496514808230166764689169150231455905961512700859088619594771675513479329317670717581104259159106161593741825581736692475933387183447413874159357884268250539986169209747256476910395406557725250053486323404804603788975469744206047475453550000909490656552479869942204545330464796868155862281903203462396527162118286039893216305123071652451829264698363260061207447471530772409793571665260533059516780072856461695762577414843796485856671603117044178203289928585050173312330227153369935812462913789116647116077835674328640653132592607244146387898886755471626420643094273993072626414275991170813598208424788490700152677751706844707968648909991312892321976241770891542452975988817879523566593886476097251105998201834663741051392532279633520681748213766108614290482936778124893669261746657581741748823700989963091482252528699222904091563121221238382709449573514881318554594684764593479251938934775108116105583695438040278276965118119909218952003924800478880166751060275739269363708985749553615342278913261868243029317027727204890812762221506256934548973898384846497528738973574163421349259098639058285294191496027840575592305924045227301497232152060009178161883239313411863207507979043368303682837922199261381656877112788109658726235743670515719689616938202180886723312176239740528073750318945973999379067377613480190455587999047747971538265878921561920781431685063412378657070482925382619017504817293711052634832653986765639144083504195683699587561907230195268747204426115188898957477078602048379842813895365173713617182272438537076602519899632892079813281210190536090880060569163032650450361809846218649356266645825209719589931136160052451423146418294049204310550854326860777231278195092443309422483627799855047603101580124132667947950724083423990461242268867017509017797434185548322786844525480962651577225615141607483600836799800587279018365957548445873980042108789810286054483182763231096286094966429130100341765043478670671548481737714364420671435971182209916454655170592534294588082676021208184727084783810887704249276002837809888541259697925859854269751762077523383057268137528794999276776210306285202696925869922909323741589421763934333772707969328810536474559328520874297537174533084772222669478502155760838017750702130763307625989786939719068878931555555528780751791859242350003811028656354596353169950303166944933695390590076593440696817300845875997821980537392900278604233964266723586450388171256495658383762304186692039151706923801317771379325676889505541132281099647062210247568772580944490721035616526081998334544031537089279339615495395130447449027698493079406479222555884401038736090197303780908351967601011994207079194716485571951183392560995435570750706218182320978212021665468588840909431617316509703736319767468599498270420485869498318427716289523860389237166393181554416090111975210180021947483370713279846479704171106355943243514272800829077841097928885014269996062227740391509218077117484005466346171330639901954074672798526767465947489450924967727823823751601045039686730483035246629841123014745487008025537710444755617192631020964168836739843370125498133637978550323554985994989665423652947078338677319571524664525736296934320322836967527069852074322716178811302133644166675458927493353636082435760679865908851219310994000049010253747115753269666097162170559212389833316609678484672799021703874978924271678773040826312106486113004376515470789769046857204650825199474100371689509844541251306317509747559514482578625822416438989584473955257530201020241501011656397609378296417939664986306089140892590986507465044539394380030699816309527898300428502357540562473126556325165567029577096252882055280213817504875570115223355636331730049621228252214451443288089803295530068699273165861095201850396833613165781890217107105256535065783629350047893519017058800138549709868261601936374082516879736238070504259595367807114954533540699870244227049260343224056441691642934982133302147646632521796095175959158819077169179809288347547135716068644669261126654136764052963886378370632595587493545411641186770337192146268592019429742048240305367139011447691139816152653016670043118954102868752206890936108019227374679911673378801861346399992417345301398582503553715836247848991549152743622752503511702472237400064399207450382218093632392814924756145174867902938922174674616618815914372025778688018471619557724031809865068755537826156386912379379959593088969236474600547412502610966483056043030654082209463387364864485562600090942937495645464669784375984086094819394362390747488774800160339305020319835534064544992047089004902311333621880668454267091378626518789833477167540732733758704365955917389980887603902349410093227070845775176829530047570087429194662083750628862393889686989061458088887314378303319453091564185500025910887752282632298732646600794505539768063519457028984482422962266804200585943043002495733356037685420266092862208339585100971456131303379352723104871879340026512039661728367246640023423232952994485619479008662173476568485207905978199746641896034858327613531187652033581619600681509873865193301951776955157514933798854388554529140802289296371783770728837025748790327202523065342575194923477589970402938164893162084497826562015354281572566041005650299909792306204578620384863936402125412406299674991609337049845176638027273000728421153565979985530788369652848673672254616969927383468284849072560008050930436754499861651495694073558015348312356336807361161240445191936006610810121500419203139047511136091126125198508190457405876650338944479274953804275149609587599091970798276307875321632753420866413648643862351026571224219347931511224684487562947945633756361571470321376761365679964711934964183169649664521778601947958172221547273129084053009324804539505541936665907258036409786634857684263330568716300223879790148889774165589657951799862381374325947008501725784211084764663955949852502505561582936901270205577743385164975610990767696383041724663034330683068565843900738575746451866410665565387757322662391903578522257315764742214162667523115561995262122379217566385277471104968519925637814183859281167818143198859564795878448431058054709225455678267518763245276548755427306697742074855279258295435922247624837945445223644155520314826448018948529128432443361638335101201925205223121382180778955837078561702978734898618143537290033516275410040557610131094928064624105483429814739960221236483395418843122324573987205980512094903176838396699243165774109761179408097434800051066043636947728781209343837239971580260167107900394065924956572337977059290586981875972584958132292380106484345858841334219499608925061968986507242555040759877321250151179512116730487621987989724248388876409747790832598185460139215496960092476525497731724730899072200040030542358005995894188859459754435393484726554598601699566007917537769724540236668304253779350567150062652563208425099383482688804475630316523994896298953962488034228725203957196052832846445760010533499330298063293166468678354141050193536157859857034939015052540774244657479571242190508041888154595624688105530930574581586012756982731126349688423690369692629911903065985364451192517363033157137835798379689925437423838010904408373436310329278340869117237700042582024721917990766724300299212433394328934206840291942441828863631487881747927388887062162088010006774353755929056361762189220093941029323823411293764930939091230125843136789981778105747774650644592292942499173211691809332034376727469630099287436715833967772349306717468158736692971622185458128602034902096426080248643583681026148714996450166575985992219214397231310044826236498875797947526675628401360256646955025357278200928221068728842251300996986279333372930654173177546029428465592863075852673449233481601017381199302407621276343677894799235016416092146535130593358112327687103989648201772550708675971089228576687914200973920745270070780854498045872559131454987586201263191320570483966223529681734912529879993771378273706447147682934323744238812680747174539948525838981214647993558627634708610413730255086221672905575889572369889705873091669801630948537984831037204611389658098533732703940033068511729731946445711191088395216532842503342365478577983798326928466694628364303214302621570419208358267260345653267236926599445384116836307454494481151829386131002627392373790593381393913935149495691142725284043705163446893232623929655061752423050612434320825251098880355974657474372760530069109699953019394851293301181842255903246415881476843480029282859036143843094080252818828112803974811617522451564559583154100919315485536447164731789936616677665266038617815804332909696653610733760431207730686011210138038574482905582416462826954603251190086466645527223509372699359937883022717938101466895710677953376297811115009968840201313743889824124954970651131260463500632560334833173327665571901223162160706537460007399054994612760060316700458461393747602434415435884192062906401754514526754813824361914711253926474393556357711483589508250552009399836358607338179934296950031857239678760229924656340376848853538632449714623532989815229037967966244074818791855436776888852738774253626191820314954098542369986511018581655539158542684705917461055937480299634102231136034333946441686631658855996430260033484988172051475815543676699380161597375036978449230372966906893365282696022089577795912520646629840769003553150517348519398320701472485382971704786820874698798822608883033911044572984123652186968432045014915303365117952096091033416110096742383948118787237502388639332383634758433371609261069128678553161715500646765286112844832739114821044889932444636559269761650781513214430888222919502905519823936766341782615594285154161975163142752661084387655826164367183486151028814890552525742298594704320177899333221216062864548888820244698778147019630816914383316781681290024406639104134877035677990970346141575264089012064907493682188973979075787301088222250627029011157473070852671659072259722067739440984343488152686970410309055041366118981145869551302426621231474378188178051400319403133203028564959422040525152060422698435779970809217745218911703470007742738828592380250859237151805752020411973178859548478823999562756165506647184201308080096668859472370089025934767425606064052414683368548192809478678264079972912271654801970986798689395638397481406322717525235831115310644142247774935462635032789930768240473703609019855963316346348213410548683063579102948799149856040804581536039634263107500811701595795575665776786772610501495970331127574101505546681482313776505403666030933558798521843575641514503644506882613261115657802981941531157885839606223624126357859865122164556532655598194657811248814681545542780162692066319077017434495846074132392364819621209725442218917742969402008568185144687682491734640111046040354994045484927844480122262079377142604499628744247239916090061608871688016669799723003700120640950665175818563233941681501079824251692127565664827604120604745109468247719519158440667591118921887483952741751223373185013117670971246722867429804036280770343931116870852643128352663532417250541499697151566704272716186793567107102162109292318895053364458836287382854207031995364439557731193373512337256265089324994898535600702331599071642356876009060301730706724495762190138011440749016935789228055241179667647727428911332084656822695819963166201250962730681212303918123234533863599029759580407756646860163760080397320640464541108914031731943372532182652238752829175792559723814697393962835304636198133143231826131203997068485757980212179297280803704302374363724337827020072883680960149481285392661934626264814070138638542689447912233707319454439274553564748233290026064275973791748311417880511066552746928237036874142152550845157398806462874136380203453474309222729065478816451041873921612549954427839094869890971340241382697021130731510337277596633800078027410729357783188410305322719369717252663795906729523077980649327981412354254408628003793151655465686489241963821033408667299372389469825051743104101114365726919002696458611041013556326013243619092478331158513593018134100121488365780438484847571418257948337154071584804739886882626056718130569354750589426744126486914336089236073030543686623880146541825189031425807877056896798351544822135240483010872278671751430823808159204464586313869300956468687452237310665263749005484653174482318146644349792986711223578224895527780589035236335305901312902411513277708138241494536653337387090164063326186972355555092249046871417427779247998274299863487852350453388336654016911851321984575264260247376601835511651739235255475009479502297514540559746996281935922547878705721347441029882724459397403664926368300151504751106291998594380347977535702882855767396038975531140358576994087707689153706156364774585350586089212253640771330578643092873078180712997394420479316055976571455714812195810108348631118247623120786523515858469882009530387039659262022453000366020783345318956599639778551052551124208728407947502389430445679285007280878721659534027025361368400661668981061861099995679849539762565796920770858413197595452989222534572398514339158545381144641094659139941413090806237166325519850928318933256204477025213326781468457379422854893017066793347477085577538574109129123529490682993543512587445490385424519106500574131680746449655485792230592133899212702152005881347942587425334606817121749931728060550493285170677513311538975706621061287238410510040630123783572822438823158976268915571892726923152210845257384203361407921506280379970427405944247907517828320724217282478705980192702139011324869938732833865113391833081602891018433142197481640512108454559558967657907117858742434961618127824672060820028835580459764195496200616117326475932836027094865232574985503628319664557836011257272958477239670012603042239115280535617628605650599844732737694977314979717693396002114887000564035492583084665361254649699938287690530948789031443576259323141247633851695593500072566948923850307031270656552515361480299889014795414968982614255516452159397223344315966710965254342346869590340741466691921428516569094472559245401417856227419623344826265966004532412959736067685149227148958627362564112544098763372678273407961968671165304339040325281326705510252356732603826412008102555327321097039640443005397153229698478411249231489982152369727747808229932764452034203511594684081354384075422337804927767012291922766669445337787942085338094119573458197279549758808618011005665678122467865028236745792539744456966482829717374222870657635833384638594052591520526502408208426962633100156621121553533418080572607357867600137300666537627867412662794379165256174872650199365047310101932923360117036202032606009728737071934676261567429083322463894461924566234194391673241342229249560815244694263491398858858795662200898860827994737033772498623803978093910884572836191403153243508623588375630942741052368328631283986106982567719878801206361752408446990239402326957718362119684783512800347135156619557288083199244840287184912449741471458348538472519492045034046903762472711886484724422064177001118728129776526713159559715769847918846301514593071088918682137322871586438035300071245746589314079065930354580241283906807015410794029698547330897522820849238211109945431976168729111612485585310401337824305888829023484149866076878108386126288586145321391301475981256252746040982001134552224168431599574419996360230494714141532709075520941574675909754152899998261752528555993970189866540359283722138082235584992695383660920695643370857355374790059894285623859633989292103646734756527217169604693504194784792685415758636990121028376795511661313955104070659474961874280731839817613007548056083850781234179382066570478319760025717676481592839373763462632456226080303966073094581306462221558309471673417604566243279993704671808695760487955093060904407530638932617245080278190505709159366039438687552133453688385774591595607633220861174560048422082886397018827489494810616388199216332786180588590683237781778299095063785524248256652249271189724947323392042206446995868515864021457088382840113733045544204123094080766285941797541222281586701174188683666774028621155024255708208139232848112363713139999315019074193278759402942383655118612167766312419183206589738067663706732698758019473452997086072418791817895077368307760460022350341538640290359930873739149285398182919625473463412877410494038255663541222140249731210218909881450419277373455066808445404414280301880754851759534570448526793735766062117150429367587824281197185825698317938631705625722120056625882367595798890874660069998222603284545251202832079657025028572646861967529250793176085605364059170598892174574516846654694545817586828187471079666442266367012318819979086550058344518319057662622690706034348429362946955668207543236037781376782327869130633832437520390355409606232703166873610158825275395324033660039418531881652413772356270079266862111830568015868857056092201264589594148133204088080765638247167263062367779236461699614256546417732860523746138716841456370665398218084463789464068925236643945251838910780313319318080778131374386796758609043912657102401319549311834465651601375720810940302817924223907219333304524918272350765958204217695210733246017627305446656554172484297586781165153346854884457978478619419736941583683365258668938983863681790639793618053214691182610316246526391451071405566998013455001457760455870137639681680848557799885344074645453086968993148325449622433410804611735247890809939172937404369055504978835319608370300123426896583978618444623931080590807501813168489320360180209326109663613986371704756294901799349951032842633325403207778632397273368164946218287823327620558255071046723754656727765147916678428756404600338956208502500228799264258334290051432660682961510696281868013177981145925938365600116322265205011674651310163872431728246458808627336640909274886586574360941091597072586455692373399850166552038406194504342915035209829959897064060699860394933705669625542350880438993932839723943532203560392831033778669878632407257408844718939915873028896271786372012734905784024119530355715765973732278198299026874125920825881437601595868546667970512417892719576186609665870264955665806759667394015955808532014057892837256871332089046563902739351586421677225728348097209106845021588391623649538968593676202080012237855410331655895531052505057710060029060585573778207318736855178720029377699854635875410536905785869407137655248352229215434127931533600261341503395012445870032707151272056248901380263212598989085654323653689598712858628266071401581605249129265213231385592598082803686430852114703918802765675622644560975716979249134480006265212215822796781225622793270278022343855928024477607824757614070855377903618625647496556844851920452341615165001950651174538583492509742836082234240986548049583424514436701707779560738813405584384252897865276325778356491053814396763939870165296450744836638858099348621219293801935717014660816408264385688705947336266135738116409903255958871044703444810727416233617612523001700245048532246305628770093122136527381559878041382117603779389633966460616976023232900646391225030968544358746074408233780639152789168090791733976769759231977606249268645947069734866802733276262092054876021748354589434608699413674757490201082054641588759066949592123349581654051863591253057663457584101748361412587351245026969261711071941758610116799280469100341358907567201538826158909497756682426805290452183503642254645023604476858894550058574657083231633620521508820493951060547103883256757511735464666317740255608147009787892505512106284786289156362906047487595242777754621953168425984331733575574932146627773809380249379412914726958085015344896525366790386121568230115126850816580837018215275081719784732249360726710171182658944670154643692474773268812603392681372329019640302765240974919084500931424501611770819157064211032288351909293758630067299447503643729853754889584745901419624597086214853674144464588620276909918690390371621748611921828170479361579355224756606182623240176797825670976169115074546252214866814705025493363602907544828853479084221483102675230273288543863602411645860911533575615477247788876425043474517031804724866078889876365766355397443887046579093275446497536127230474930821624950907910880293184121512777019537961185951702907388826409458108397107940649951128860644414803412697706738710029874776371544984580265019002009696239689810161349609842388050791258299430556187189653993495393845993421540795770726737800321303815318274769401539746870124278361893732128016643652873627251197316772483979840063156046230889007505630077883571620919287121297786522934482160717188074273917299274531954697802276423088192533716438275078409397932239312909976649324791763820195490965706334532190354087767185672283048208278576293613034461794094057083344384545051014778291903783724792793341522035308559712751409066958252626835607950789791318055877189786570085509692951035265095465219884390645916869319693226097210621338116448522600127235472990805386534890484602126001830224353352640625418814442657339979627164038597921940988674073520367542678352347623959318270434551245658457784978267120289507538607943272213532861545480652510497940387925840018108136650401557522754331341670288851231156303570235818823446448775756254794504842612650916937929317100332365290496958728322570338266044055704569596722236520831044722536032320312779997604747243961401244439246119033574496872976028895143602526939935179586316871808157714067454382290567188631728274339222832913983202927838100313708655630608151693901870128723816085166489427234402151164059734552388010253418112656807526690424915072204370780376616554142840590604586391588257508055876649803368944765231208476888940067384581759946753005865766206115461209535043259373102390523113278499134692243768109587411185749115454885407268732710258856703646902967397678966277303869688180148212206880783828038545290522159294061572789768457241976321634777406867394466241729408081492601372563508586331163051856690534894726881241655547729689623581688953309127375216804361258909274310918854159237807620965145386035172548834963187205148326190598524995271274368854159565396035865940450040208569205111425933306657979489868894774089799548510920890909365462292285715687015375306467262132427410080740531318388402177708220021944317571054640067543583005944853320525934418949478120435956160133496926830709987580593812081917419572582185267305247363584460935813772601336244850110456000429257891672543622603769595701564066695224934627096517441461511760319604596829554406706633373155267091446606445486592987775806482228893131196602322257098266383072035778625571230992269846153844388047428622374426024813133858072072504032263656287548819923849787577936698772808343380170514635943463372433287121636769467525282989968551928055444074943235448664864318894404636104245507619932590649474018911049221623153084043875154094541272466918256873326942445069872903409251153736616525119587300987333709803586717676892955261951774911558762147292167307379707401854189060475439285908999470588179646454588485521884291148459797023651204022715672675977125133025631733933055936124620560058102563411130631633435696648435124094955631758520870183208736684525347743754185343925185697907852870727068188960677576575016824007433343265275349695663364153865455881578409862532863073402127197968106790989144487651439661601291795881184948319373582250162150403641613509103960445850651297111693525498624635678215076376073859044456958085218604653036655713888433047143128519804398396088989373573851715211855338522742961859799527506454847051776059253746947536735656010408432555108270635673390414948481627017201292609485883071347386818544747830411355185007962547774027150731217371657242066208089185303096472690353033997131678021988085201944016608806475648131185770935292646978001558737493842010377411541737487208299930450873696782723568679029903894139197547957124931009258413726196220626172068047259134331511447532636175959300224762407807165829081217113629680987634735950155051028288503154994440007736166111037728322763739056657280887479429960210090903492244013911917042333949981374785450302776318607406693665347081105029808441510820035401300675624405971089040545804674453306030541337623496457969846143013536608020604578837780787246404517186301782692765362617634837770356969374912870633000134374416904892323140508920940113636663212320772461504841729372430519834742840912721748993577432499997354354927831486647300187387400153419581982533121257566743639928160285980779828807540214790735413789281747412936818457277327339717281772564627777563415066891818524295481430335825994003022913982315815553555517971395028899698338940409309818825171017243075162248515823832441627817892850044700967915275385859262166647072449414663774458473168793035431656729153937160639179947061432925717075961485669220165596135830970818037882117843973581138697386598707124429524635139427591062399722154214237906505219348919189147501562747349403393080159848364928436648387861197235854977892460744804059567797566363562560819624600416840693924890636217489337763448030825458391286815545722633783825414267580049289823701702723184883824048873513870165793177447677201538791897123901470159251817226169884456771776259005711857414904721906451988240467496811475763060266380071316678974103524853318965999479611155199363121267350058435342947822191834774989516101864959600305359312081592563125682432670310095419025131835211377226449506467246815956443903046400573897567279596532230391120241135067942659373430419492836856378602809415314583846536001171219900606401740072926140376801281641730882394381636868307301429058128486840260904590916561793558823449656933702804268310136981761767916717494223477423049302260503995186114788579933898797466804467186442999007052040549774463459085785721564491616854751300865646134629005244317906757458539930340597015604553433235082421814683108255818178306099857211445686779436584837625723943710300615669427043208062873191939912532493655579693030923851635824094271125246486163634465797097520648191451793931171558427347169432232768629223185856963129338925080718172313259166813534452428229469614789472694085357698493076346401335268340591816883166780555334732179002553630436407619552369231591003161309164590853278518120802399901692692076857470083046415550337244870455127685268361100652052502490175898664041586149308760321004926821164127741088762505456206270843062967357509139706805735972106570192916651587319918458122859162001260476917950915866820954300470586215352819206222111670321516373750877468608908530496793728474412120198715195024486803817720159418506995091595422347499785191145181473335903097456481637669356970568000731460012859449953333895127620018801712142005380505194858268817703592585040479411853997851864759346259206876046845943873483336993314445587249299489978751750375655406480057675391628653862552859585850384276914419704281276179700146637375140205547413975690088436727191080692158294996961578286671851022020329934070662073682245053960467765456283495115579765389385634630063366877222911705809340101334754867577124502977228220691375186973498658585045017965223771513905277206699948499155798404444386002465877086842390152263958038127977979605400224218661830161240087160251106786276935467832066884940601551460473756678030203520175972053432457116252137961456604066450304939256214840425434380033331104080231979094575284226083989078162401727478480111960184085743395179256813213385662429345784081054905026394118670880073517284468851963462023377304425755698793690466159854597994121483218495382319687186288932736892409532650812889478232642838903804833920063849924358207210857934061119220373275447145478875627178468934618406612613888951925981522229543740811064789856988754232927371577954846993689472115556285266269386372558309811846177770750102510248104080721404787364695771942024796851406398479775468033098918055098028689202947901250391046749554359672587453883098614219920694479087285483455189507743002231544948438751278600579830455171059524356215018878876582549672514187222926043916698229162324505646117263910984268491821846482030141113852457733374906685649217883747102975863208642889497480676804852173317075149684229392407882051147537928913507803823136726309778337970624666320482500724874012387985770208002158266852561183561660652087434441189520853410427576481436278768472879021391344251825975767851596219951103170159030014850361122978309405424378218438600718585406803003187652441385306302224446780652297470765688251888469133729401048291918547788760354768524552626175136962149954692160345798252591024515093188893335127915949575765000631680003934993096244198190180982122616528962811360386747309416333608076429574170388897079232562465570462016331716782702444066579754151959734568041090467196676751014480769121520193332940823978605791602996555089780317691026933813802318612307813111826439826369941736231811813335200279424848457253655820421635536576342341859368407849275506220996541943387659098218218896410591624067935440413893402784790540393707853498233676240094767423301743240751268778357625489226584886526623745442206088655061581040921503699519292175485082596269546344442501757886202215522638154255590275673755509210920313448291646440666828688159885422171509251719999857380650791399309251151025822193310554223987702011747393609355639972611736589536851423281413198327115037525903513697039741682274498623298847765022196510929787736994155386157853009984016119551365116031753380509606983356359525273003137489842792391863156492851696313298092164407588706658506888070553374992615421873022961137735128777210410575342256751993631155400200107120733874430779802338410523304787275333412674914925188901416962710556942750727696463098250096154945813048961360715235957491511832618755069326607038816450729173391223441618561850515885006939098052225465917238065542372778237206699316183512586023210236683364943949638280958537778562942485282210593672497789400682914365979763650453618109347821191737190374381037505182586754931071695261798102728626450048783242931052965690522514449811283744373969089194594849245734919785060186352555992381551376483291555112115426329901972965563537582275448024506719271635283601272673256821140893499286498821175896352650744864126542316516400195751661493874103232910537883459429388365465852613400087333208158501929242321488517039214049757355783408465328083430785810592883944433387109187813100626054206006576609026867710900280592260051191430959799764300506666121173012810254963534758021951695037023930499331816836286116651171019398581513290089760242400111010924524142858907629308433558030293362651485986621041349708417533096700548387355081357311753316238445533688409987634382491404301816618584336137813197923739493358142353050561840017739074911996005368064033691433024560525536572079055784322426329357516500494428784537753884460066762260623567188425524193336952178827939573745548473524723099968029168466727138289458172898830593175536377787226570946638494792753205024211365221005339319882974796380388244031031604418404211872618906511715126139484805572968986588319957472688739395773295585371336944593072075213949390026740783620664880908333381822790734520260860512153884288003015924390951917736859250536601965143420325709692595045704099192805843372822230720396573194471036914816391485040600852827040554448477710160946730985488512396556188781659239403340965523917164286451795787923024015232848470085812830814509177793513672646066853035815833964549661283606255785555714744680078857659353983888896707853272652646144983950151598303082870907507027939628959656663660002109317473056774697969587760998221760284934667383850112234999075354743368490397144902382151961666422541227958257580490493055635204828252251708144936312282752608335629885808888473384286788760104162989486537917264296494178556890110919098277631984399003020418523311664190682609812618866951487102991981711456435519437445423277810933155918085879137829571167176847317003808337447758073162452605964206185171015734087688805013781378411740614620741449025477640909803586727052651022826515096204888579533283226618897713281393933617524673063190393085964869559789516079511303618323773768547209724652013712899522416980877818045745021367751874175799108924938817099851167306099154846346691977555279145455486167411148586571371550785566619777693233675865348740144925552621354782272906294899128247213554758198757240584830475934790277989393892410672428715529762212271460351961244829299692006566386210666007844628094370656495808688523524829330366630798051800303780546380114664647038433681089907334963501372450613024780573367152046055407179340277606811096310075422442969147480818573245916660542413015248369120106102802515596388032549912833830035791517595693873232423328586204919403981723584064210756244140415863514774613040448843613211647909556184852561988511669446810271335912786806720547408963456004602291835941478046414350038089725125805458055493289320605161974773387009021474938060090204026497154706385204994638900955548483784182919002804042975682729627197744915204057690578918689832831510670415968065136143446411985498124654419683014887173322649433147269541547791665280639190649951543250509493258179507240157882995774772134159478685430323195765881936879761944019604829325533236505004312317892232184541662564935732875233895955044087686008227637142014872242231039406357990440037566503557083452809149779570501702229684522724827164312174497634172742290401321348097812850574460561770935138928790859771017594534462280981192878277629993054377920546374034143976713831464423533804955511542063982378641068099235256886672991779660423442120912820938069451067434741344359683196574885816676661526612281787463545524624124599252507995718869716465320153375981090265783098932007809659490946192798261852522074164647716036965210918589989730434750513409893007680259079666430240884392863900586404172517085656890904267625611967238383659681446674323048847434734369641591354768455587148446352012711397040406468567050903828622244812558111658643440614468025843368165553387408242714750801406812091944179471942572779582369245034500578216676873696510635829500442212905533816898148217541568910948963165157797691176843052049175027523612684366469741685827473151637490918339695171130765223111601321377028519144070345278399996769751863076078565370301526968728947918425143890137503089756818869131881626856031916248969266805300582351517175318647549560240325719515090855994488763878184577566988099450910429423681710525721691010177635133059500300399574226674078520503987789621752711855944592550447947602901989510363657646222674140921676066032470664986130383638722417520567840505041312467177063080596468922567577486222733117272507311571013484740718555997060638724132687950140630626308538391677990729399852484719527877718831909151574411641937213741684997400688577068778012482282925898579139537650719924306579933194311095953162327737351771997315155327208914859395448439785802058630907743212293939360474326005601190110600734132563486630092607708544198816603916435100158900476651861704993912773847382295763006401129285980582626400496398835329339148972527941350505049846011943900795153442816316675198897696216838259040484022423936214245894963296820946889527071133948826229560608490079181486084462049727197039485459272607512952511295011337772790861088714181551559900187471272967966357915419159728633663776102717016656605146873427834108170918030077987157313220124057688971788441632189082209746406300997231022495775247239066298896078409326600886990966390132066389545256594135884250078087231681468244042297060624866542621513536234468428425825621837248758159050812201749770022521925468807968146896564185980005813661842298748327331953461843397405891678174133463535100036485932591745143967317155720274662148467016959032360944900830583866728982366143021961063036365918992153859167654555493168209098573573729824738681433990118145771134580525200044633013612099856711285751197706674080556453104670882223229535355548926445640897626470249093230508742917217945203413228327510802666429345855356630145771768544237910708029882112554409948297164840968561802502445181343823680639689139993321496787485253514570114732027008080672079427479110873762180765189603187437493785596925106067492031462108587196249793833328645200920579093878044583189042029529756833898897015634008343150288639205661785747757788289019762122816954408621614238448508459791040439043336921539483335755088341296489573331680896493949907770072522367229607229792911209667013830270152577839320675306213019509338207216328620849607161341131289140984947479290416436473587969458611524067637886047363378398294365200419156874320101002575226952566841346858507315077750118485803478455936191803585771841030354885396722556340378039942736999577209873460046841480619131185637947536078270865050812058615453299768514798107070760349087626656617907357519121699673328534968228407297837839075495607989101378839321998276638440001366954307040885861928032119370646912861053316931880156165211065744438124903680484171648192032867445614842122481424322107740048214187537861025370980424942074062987141370805148214858916580572130446367777251130403270063039144576328863501957509020143958209057136576125820620416355047232710567746969100520931827604485487179025079511783732136796027783109920498108821420955978566308150728394759011811803700528808736708956166686009398325139060197134864932354281942324232768160347792436633043020776029195152227353929772432074553249281468029706170075475945411730447725931043754742481258269423180562348017179377097219124271019068980829911940975940290257601645424584735113564952724570050588814823800472856313738817268701191645853122021009158326101483169490394117805883814644521493543147541125826894965677827861341834624064849101680240866832200554898838324819417756329674514369179267211379287213250356180139115632234546012635432031924664257379497476860157399227048933620879122263339017201933866172027979577026291165955011454685728497391129138668705487687615235460057697440579345248113272834923591897764704043904797718274646274310029546425556572492879471647368482626149684146173029107330894767315002132642356666118829620921665313958292555492100349234193680356283699100743514246160354905804523545231752418924129160256945487706892296731688283706046351141005817781585027048036550155817667525364865269855509226614617794435989355449788534173878346479220447620546880150525911071710914220813308705810877492118526751136736408042489903250857256190298308431987823106005378450024626393996255290666478263249293688723219819976734339832993891247596785160441773245331182876581160649373296405762706793342410652237020394879478864879647614105372954626455615846105063401560411003268195762782050773369424587294211512167603602701790042509999376505907582758368924478901806342209832240125344493099803946387025662086310363408984908798215829004488813600563238538896172343800165764335414630543128431662596598720778807671183401058430990289505356358102657952000232892768214818279766920256447177972778195166221428958619665755555679639425479573326605698509772306983762564920106858915488249971112196108984209948753429164276117556503373242738875903425550750016179205387778041023299327976997022577079694611498438823929589795919139689672829265924127350891711437633605518337422087900391686973742205689736841198031421695781144967230365781853863055249720734537262690587207243720117414441844024498412631423199504511885162979657054662778923192666753960448826803397370514172348823284666561539205111878162567857578991644596406783679822193539420615766477339803909588008883291297462235900090597697469000057680690646903434058410444005695699754438401701329481876389721515411644369455228982231856303007170934914629447154596902089858151391993802062879666558708275541232650120362927073468447473281575319822062520877289649850308419074356515431267591450072966697250883169741544406662187003262238112550014953982762143503956649093248243154264043311629480225373990911958777432443272164797206646345146307275052222157406804484431314137370161683084085405509025261683134933414336136431262529377283247304527672652543278017997870150327840573337501846924527095600318768763312459626426652148353441866660209828981130977794645759674679681300570763764041056108431138978786318616104117124674705748975489550247167716847152006552445547926109014607025349411987701017961484769581311171407183692948012437455149746553972870898448507710738235885698451105099092896830194188068948217402320487480072031946947363174081044709501602806569846874556781772195839758086278972279169702527301770360189438033050780471507205795272849680114964325892174156906695602757770328011915376690880575771328744432034041900329672777992461744521253676504762964466979144453695322941183157957914840092499546727457330633218952832913180132106679118662653950914178494800891231447103220156418214631919906468557080848574240464063634718636790908846038158161963622816599370278658863169031381608652395014953705325094362490520148995804526289356009682687309870911298247763417366978353340484189995323746561810172816821007352746677492828654573167082463132261694524637941629670296647237063938187333649376702855095624841466909109685223889312209903774192735563678771051985180444092524036656860309652361273266317023523323338599784333626171974410740646850611981129521292194920908784655569140598904943445350744565176139534350989163056929003469470748089644432435270283486802299161641754744935275917400301452948293816513838120735903471625204708813466834575740041864957326387770555316265986338302069523131611450401869932293089499285572458004605412601209751582288289144332027428527286025953253048279071636865863096499902391929270878524318646547548290112186413236594279588990855320016988455918687496761220641565865196256334590388796700560625525448334150358739747189274499722332883596584472877817272853836585230978860648178699161066025490120631345151773950343241780145379084057167067448325804261677221853856439708711085367484946980599387002065877375975097904213562791799508132471424045864994430249329560907657396397902312874953703490028455548629788811641823992569047522515294722268482197478705405970629113974979738705296816121578454431045153325291058643220673744574439725305581190735691526146213768560295422739046195590344560825368429207018246754565716001652237183942528978579175281056208216993144179090074580724996436071541817241747653932880549580394616778703842615111351500404659055181475178590118606753905534879383334970121752026520824769580578839337988530906792182656483441470170872863125819382740446532855618713609257942448196022287045992200490409718696704756555448176172367753898765174917864183669985618166859680569454587576018213983235913234876055052994207646897992104389303999532981278511701774560733018439525354115488184040306267509718936640163722076057225844124703333628403518585304388527528747055129743870802404017770214397928578747540865375739626125257233635576386404732723291536572681637382891327018481009666775491633107654216785633886753997822125288314715939693488840664085333672947376590627485863796591788333999110363855903343767520006283608025117818225936973526764720909057273934166220257761190828609929213550683278077241509399277582377408286698719433208263370229136787343726912725857858569143481155838967755799461210816436578368520749269463492953134344139435599540067196528859328614216436435162613719267634116172469122586867415425346897107319450842632631711116721220773272661134768138599982351218221259280522134571238648488606782064588214963060244007412813384748685322716645217094864498797383757919106869664253835816207764965222311297694513360450760678745801500279872114444774941232065692604833620611565877487505121700031621861296419556938955708907446266116177220377764001802916596569306622173989906206383410187916344254012841625209253783339776393437076365439490709134064319452490678805305956808905672021874659563339200029166417244661859932907410437740353754279491959296335867344176003726677857419172520872690442165264682669297103352207403893299049438921310969844396154139554403638665734201781685335413925881409949769917896223209966445031555176715622642835013653192796020019811764356138454450155405016635624121006482935877253446379146715815528525422810024044707537357374786564612232027041859945918787779033649138748450550903473124212399127014345001286538581857196448519388213585977044892350431643714352063172047963143703598457898012691871100833549176463039599396537588645064503027136783634321769769721328967524970674900564579699424028803104860915301208470908287062607065331159087641562859679597908893819627046342254036123773760273602791705942658339520036369437290339792170398627649839373928886072130669982908339289622051633013301470701583320735469684724220099676514356343551784269363141214458047850582091550918203969582555314479744222043465682196193984652044493920328176745198338452099639032941431225140593378169010619047829657543259096177185417382119538574501496412062563666260440751900938907961297711031198467327407837888980581923486660244507536078624496817260020059159606870593702778418153913414655221012692768851945186161946855959554320855729216197075790849441647862485051951657107680783255627111531357992146433124824970014889182215456714791294502594218423720980414045145180671570254630394756649743222904464540128142941496793946902796294154974285772673982114171977095293833729154949622334804056944374178789305622352054937993538763038872882827851056578168182943333694007150084405430970995559848815319409075388319599521707842509166543668309735309192923845106553210535535099535664866249624149122156618478067537014670142531378652747832196426195635581208661382737387325664748159659862211336445682488676093794008249878927748168991286371754209839217980570631722043175890745484887182297402615147530475999836165300990016195381248542400173490098306003309983001480249909219558073881835796849373813448301682110027108594988497548904376299034466206637950977072253218804061265411446409668129347965172861973970166163298343451304230035679216514394671790057566601117351431149537678272051359171322048940431349065060280106919069447767621542793244331846969229865951926288136282085064958603276816996705059711748115829941416644604648885458549949210224045461062640464719288865835433010602198923710670234330483430620757211447762968055392054388318826774062227808228191635440035164973761077491006952576960021129892588068686946757249591131390885783524030237558765787045954777744978279021362248331958789091109553337237306836698687096857833338395578410540382052060303014972212403394486980568930590335831561743891828523764678772945788410364164583955755788923948442742267390111075079481314972184319165142725202972454604630069063164299231522208441611188828497579984093022445722169872138192429490694535175628820729893799472342731408074030977773649974074495036948440117083627555924214422356602505674427507623314177351234390684512411772513136026188075004394054671103649454851442643032401421699901759042035913459520821517337364583869820535708085139367774212213940561409860184305102445759182149267879732597102870051209289409591670261341013713212543851743681502851143058719989181822498644196219249857337249000365865199765052638956973133540166013046596488641304771726894018931601391958609750299165300523654348864182333903267329145153044145251128209655985911200901011648916181742506658820382680194854642222774548857341333390439864155275080295825292948233404628455896453278131143699963777053939971887797271347634180261912508340548020156467986104898411489122799998728178816173214990521153857470339948497264920731346815856812308197486973436040691339410897183802900165834546356404044927990198209108241660220176005315173956559456994797729666736574927876282677283978442595776322584589577338854075434853075145175887412502015653128719075899812610792351574581230258898892525225130310166890435574049173710716023986584144146909495206615924203456020670193810343072048892370712550420983320604328839198741870241354317570971105967864411910170103573546589549680890070747975486449179452872968089559369753216605429640769680662884849978638274986808224902087860650236739189028880779731501373492609233912657704121010510154882979924577418469191321868750731739110891313692137076585509768483252437109099269709346711778563383851863301687852798707676602271492606301148688223990642303636390694979657030091884368905148570934511384259496848080372262569595826952269238233401737078994928115416204787264904603916095475743621653674417892607032322391445035893810408976203946168588636862313988024574878004346018502013089397750140678561126642822684759844764237092537170405500031837040645503398583051184181412919708395916689522429880203471077477538009686764738571596414688731455165050630471123713879486080056490586443616925551030375624010680370665585942688971470372284679169290214633357243920820907080293689897366935504375478630104604666232484861123964675821372411917709608521032388733933323690056902580155023330322190591399854218879877454283761529666856227050573703565580882565080419347163905230731681293057140778426818820782711361970428213164457537714268366318458792200296612562941034477433053563429814184377543547744346244655745732435939705060755367910729905586448889708886656944687685778570612670100241644228853127283121134532435976584396633245753338356665141181872237800568020778653491315639918562540723194839438207169816890893947021791214505720259226039804813669344506584870198111905824940070233100543328230312260873060864660312278223569193971745392253287795009464991740590234873379284210976864261200627656408553613259508641890686210274172278596139622157753396654313825810503904047049371222247432686464547322360460045297325111071226903447537008786483594941784844858449197240244321202688917860416387569737132402107290274505565374238855432824930149860099532367741134489847495673109210267281693968403118224927085557931464643643267292945423062885094836781938190956586425454362914357101975993179888599777878940122743729351754896171258921289792563061999501347865850869842637428154233633297375730531608690041415026491035004682100444952346385219008578526241709085726481447881310914490514747695414394239267378484380898682152236349679211982681360465875462845598930136945617590924865282073545620928326928941153784765215120940221726913368804404816492042471125300195583801184161381122089771841200074744026648752364083535854860646536824646647604804918359346135323021841841824664520898402682800788745161274457213773896853454862772572748107866602375996582258162676760354731162228343034451502329308384777060885408823745973336254414466982280195854627540007704045266527956391813248915108227769715936810798111044925929446661366033226137121027608241144490582259440533792815926071101052297021917717371274770290315942604069206435609321867449640348165789643942745295612543880492760467195456890186422749226233123054896073252454692352699157161935313320400353153833099351378508711752758054085409060940799450396661561777230330882347578590751947597740722503063978836229426637275366134905750019998704326438888640796853673064131760717110999911915343674812264732590156681307470243826521835690385990750433454092896563785162181561614522798285054777375531523675986627349566468461787192487665876954050267725053716072496964026591208552774458418627379019308999211820556680050167942724977995287913595143423563127683912961485121168559607236129563803298186655987683134037793617244744794125224089849060483783719615847452007929983242251019126830056995468888754241955153911709952006056937874915769865932809108109318511909972757741527364054296506929016184066417746472517778239455131741096634504882350843326552016274377623470443862016769269247610206027785122337113383142680978425865607337086167512242759895081111262448503594251214571925472697841476900060376606166349040994759999760486768204236375535633643057879861786227866015226707899257122248480771406186619162197403163779579027657582128468062690783015993981919775055768801142271604589336585375055385479164470787954207879726367339858577799816478975802148344229943880121296052304708652879196798549304935633403344804703632037802614672819065604722327468511087902170517446545914138730640421770521864240279896957944050660149582006577187460824980185956248451879004366161250695792564063956722065974951000079752006080443632442699122398352932440189153758731550987542193378808589872872033178189259506329897620796548724465135420223681799071470079746652056782367105911632914774823769517460679490443947643251480740043943135862646392439004516241673644493984701039903952564726545822096265573075428484785740643838656949767850241294880035015203101279443703726337904443104381081392127916677557127672119860455296244405551701100140408284413798621358981552778570278467440377495495036937125601263966007807661513843766495850254622883074406342654921446462403951527697035059492335814147476116032481882547090565158195390248079367117187346579918648241641872896653273090958261317706915918559427314394837423709832394093004324796022211744991402435457976613795868627708731582005657260147112604397996218660336029426299419158540538106772789606420893402045929571241832944275157630032419705727529094196261994979584969720672645401493640692947651483199686541404122185621852533556593174492134051596883769630808258164260412087470312619062360767917190627737292586002086571860554640151191623385973789215467771295080958869036735093501228089525363222234567865481994954225745763318362911465991076152499580361481803211804170839358758147012976584440520671519081596607483130035796801850071063071923388330611933345345255837518444105834444351487340620252259015126715553199352039919633866713417852940876792031409356005089766366242254918153999727235640803534322927362931554155578856629089527117241984462972752331138432990860216865723512976142616293351376789810516865973344435113236838352992526914499140273149172696468179557032383625457156699458158187434045069022851839771485139975808939585272694099427297625915367472680814798108271093657535142331428139244019442660657650418307475963831452695645451601636602349076032438113030324498496904096422998247403534521949145726485644316699391184178019582364857685278390695097118862014134555668378686174427892921504538661907977123625134692944971562511421378573833626370964525230461900606925345162051507526427885673187713788827390747243594645146197817044074390065281794103935705820142934078329419396309019102952095585308870008161112381861701873969499247429499014672581234679767048125575685186488905929207927955236853569412187154644523060782642248845947685445799892834256683289276881713455762485013006617055678651672510264941088898775925805822854505697872916373391144228437983538724556650676125684412509509942786256628680702368596808763259028116091947832771895602999544370673187689071249867607957313372196838280415535567010488703782435944741921751717244755693584176593981506012778422352316154040085058231837303575294630892151147829919767127791047753923238322273357747462018808300097265637494378388713331389862292764128155798043105241617382050737520373455388905322859406495147509324896061007907176948619583169399606062138035272142109090751064390146422306513742763102897659260815719765713640970506265054033932473370854775333001273805014585667788477158190779266895276517265920292642274432758960117396253840228609219070636902332029177622187911569562243628485150278887965542692850796791360784297458130485860177405720059259956611209602873482429568913549264470721085916890999493666671465542229891876840477230764810945239923766925050621925397452820023569141682002290347945889263268532774199356660016207712540862799016347259614295462130567531874035394969843799320640963022423281024006924209015598622458833473983631628504774993741439747132196331997258910329503596810385527283542583945252501321909348875553341063405451148702805693466571761499938643021704919144236949071888071471530021737680813298205600190013675822207100926292686775814559435219608803701460523812266817908019323146878276375415036892160588404162696878965012377414513666500264702207768604931531280347242047505867529462287015916353765051641737106126224383418898281628452115123235008786751296163425491034927019655598448743505177133379168410437641504805147170856398380137566886341963760175708182364247297967137217793286763059633439598484645221970966484682790047652867522836492277981585582104092331791077229017574384394938463421680540686849236875682547092388148182837315849759117825107268044528005283683845598263524029233510829699503235051000860729539892179055685653524683043441666735021662275331325291694516175232501788148999072616424640825918561519557853911576659549681331163729723006098782629273301118701961487065895922691747288010264851840185516101626041230585934962856601045695721643379983210937813352760679275485325066544665404275565590916415710138582213207485063437771134836984674476162592846827442564360952792637771243741873440772197802771395625383366316246827416495581667280988936896791925867901924601994793422454928481868086056790134892752266079054075449043011532905995790743791236472350694988650046751591250890200043586996095088590449874917211131651538397118788836226782875055955435907857501194644438298835055682362470116249270659225285638324741646586044026457485842832538640714303872824267388171674776034818229721633029034202545847808613037657813985559306927442664402797818998815660229600834923113735062522204556216128758234622181766528554806303226893292221766672937737500031089421032054386080644992544261958019946058762628139894727633109922899331257528698060023384619927598723715220319873783322403087531889357784141529785670426982613206694592832721248600153961551355090985037831006926174039544311099344595986341724418713232706927626299348055978755767592100591077093316815802307182850061779931488030328435339284166948438773273209584847133330506926241615705492659322474282235870906264611655074100750431103166584005098225383003527432289335148643813012151660964895391350798265315377978133322611728548608702204367022023497522665056669347570974902738493964054170514729595465435945725570399975128537598257927985815552180266303453744987813094656498884965205056921006049592223031153913060480980612257861296631714878691474320616985039694547592238645445838323545801073983750582021102923865600422726518802613274499394084896732991778759005932373992120863470340542435016180914916051015890977723090592298401967442318856750363696726655133606697994047712318871297005488732712726146075891086748653026081697666685939767335048635504380684499635085511895959540762502685102695004012298101770463879738708606283801640106385970451042871303557454024556563395485708085861155176908717859793390957539541743440670554464181683041651284306130165856598153369879909278054768768033330742845512663266099431904878391826835179684469004785755043050610830540097899307667481861669056055392785562456723224618551960943402672237887709271476589741100456533638539003232871656872870758901504642066412101213309159762062998170508334970042891927181125121704996200172817608668599935688810159829823876387273475483197441880266529737511610228021328497983095725746322502560042237607393840082227899587379103518509906843594078075722406758335143524298880020573225338138592225246967253054742159890536254838913868849947264794950991499114276544991732269732057361334720464052315156612375588915226012432671039838410094619380732320639499437654943138850109724421646410349259500935184511968198123954493231561281630108803008877680169892267806902192835090078280610851091785101824276417808206785891711268986725624040504805065884731082660588928633475641500545379331689826727371373798253584154621088598888995039614045229778671449116145226372010310881711324470031343454492047754816316637085442247298261283639426662248241622434789771078580998427548563658121500688302510006422752200436120517995667824601565475377989691901699034939758205377820464763634031896980254808247706109393465319340464842134539462900607812747183718278549944321487917507334821138154347273015173170855368100671907591408612483475803731834863280961756608132975018928937197198851720051880346547538410266057081929861358751063539307588456298350381159267830035945234730559448186825520810950099602177206312044240969993356468760774771282171668020904404229924733420065514915167683853340285948509330870059475445316181874968470677843762606310059603024419817835126698608861148710945362331230784630445761931684316783547585643262141154513189220338098040577193192158095102188248382203338390035263811770816567894249980862407147987787977903624423265008129766996171206041207321153382518681626164221470829121639108258931253688565931636091774097460670362654108011001154882074031587826327899545005566515659753114542004767841470789383517065668607399049340746258569423254655167082367230308545309861359417077321361238515686844358482651710995833333754144222063405291866586493129504100977614164996473240005472923870554368421957428244244229687059387791178356732498098794815947261504692687328809128691335636284801769172379361635644830893408481345509635521038587398037498632827770237099091366261212322532818089677564680983592368332093385994958554118008759552571431760670215850128973746635768179108686560105387873741372962390866758636178193676882727409548386696264195596388453169093724186138005803769102544533899788941005010788887236837498666809450088100132888189438987855852421175604466339584013646873127378421200985384775932317911825056635295021777217422220229007634489691768434575446180298539305008565075288593222776674577303432492548961353328548711201864857116357487272918929170092258988914391864181564624404059523574079532086475986515068268755640993621021386572395076461181673620535642276673253946955206957062785031618657315317407144589549782095685548205403123799096708063275060400584718486186774618002556550686137260872947447258289768597627418327118821000281817243095850415439503893940285690631200111936181506351867080430666044725088292475331810098286651117891528130920064930110215076512442123703564759660282867369363624243501584721987779722693986523757652010340284153005096824180681302937412055507909326878831210322979396825667596616242710289434995770569829609862076213863503124022228186677854237586670315056378962891739870947269315033868619559642567695365019398341855747836675345256592365539930696898683240464121248260646903697433583384341739201504253515842342037978311465613468454112210813210241337079611233306545950120383002986872242132746458899099643162620644059862625637450204207808942622964497576931580592477671044444721304393148842204352159641581815498045431753628735535961534000631061093380485749789847972033259578041745789723642585418301819825032052232022052885480956225138193402091532869114996860904327131646982118938957365429750977036518779855405318902853825715086710554191592748676207605473015041454228719211863769265830600206733925473608897741304795044165892097746487823674962370148871821051485416767566632368506892908487238230007058677555743043219045399805029672603411993307467490316259486159539779830262017795546034817409017861354883401130604480967736156755310088536876312693233842793842517404072442348756437952597029051253494937177399737878704743162201898909061855805464229080118238375084668048593502176534609235754872965103264757953062598207566226778437697023827610500951719402221466849082359797528876165951090661090366737722684424183135379279985709041123712431910471321098728183970763018986346371136525907150344745779749040379127450157127323347353385335042950662569045022776829827826040852287164422253199592402601933055452664557682745384554101124238645266787857140192973234173869478305021972293405427343700629382077001653077574873722903737899470916175643604438659296281462593159152255609508869493857211931128350634498116530702979530960164328170226610628481560808331261235073900281757756269609446600601398128619052041975264922660384074132928749980124276570801962111416803565228205963205271836231543621429517442563346212790360984952484632331392589526637910085657398628805614959929570473729473987731319241904899041089661725190958665151966820295111042671419403072893579146608197929800721300385467608268549914235499728171196132468827497758227243502797796984376138405706624856643633152032143759035717562100188106472670941986817487041322431249710233662386547607433093458879912133704851076357636705368997560387084260716688387527188646952616455303350161724757859510695441312797422001559458741739563688643158136358503363906395343181542782167230719485537318031628050098708567104513918367385297640455247517274639225370676722368480311848739016734944568130199722547804605253340155148118742749805621686732016487587461625373988145467684035378951257646009757450321220836231245980511650071900050892339319869181285978589733138784275453580687732307332433867149294009567702550436667103750269689154026530250969419877981779241851669449181328239444174452978899605607445594030264721268895367363483017853471895531908462153239178482028650702693000899425948768445937356042872719388008678037182243232169912690615682352386700828369089973506997204945065779076912788677832076191386886063613290671125880821537189717422683735986176900774378849401002936016566419817698648411150464606044801609534973371741612085299834677308451448276533499646571821120242091066771614022975338607390696070980127111631843216292001262135760716479705168776464390134429982333864207117236934020734597716167454656730271693350019207978634707820796862818619910546660928897348006587874243817773845228268291836394180528260516025472366794761771897363406925337261520905539105437375790297936855025446237403809114281587349761945988859933665351257475488226569574815921371043221497090600270600456706088559222640976448034297460374154849787045586482230349405233479835836989389075661947754468589080533086856148063452425073371552166754494627108576121976249116632795558610457304405291916787622829427691137852770420974871946142198977730734663857678984408339367970255862190437352106392954770702389582027274578293823859857020302371431001128230296743140174665878599526315807059284361195608022624675271042650674679368453222797534760498504153777980892075110430660643167865415028287360579099254055899445302918288205856817714551471994160797138362984909943917881592451342392385535990759427654146144984278573819742839997460093651269153979808094191950613959296411408102791887629607192260422942611841550031876646724372154216221461157321094678787517213354041191940556231255855341865634938217889432447883063903463898352856073586898137509994745536173909486979907210941486527897735708124346642114127912683757638309271463810916235145211763608444554588842797536701680095018157676696503498568016584808194888354400804553571145350969472338390015407376448751346911300496598219657141841092007823325094565835696188657769612390837632679809097368990714472517805197536179083542734042297341532134868127766011713461367011330370521807217306144273661611338233551676306022655473823263621858950135189457818197725627775472103585321421665580474957033381647183226510801201198574686315523473264832431910169169985687617222755582920328124115571872639411532139902661459610904881260771507098252768802617216814435161287521775939085578076660029862639926591701749383560407650016465792801776606781032198841699310724804268500152847358874848887883863586976736025459912541211025989324332820543246691126886915612876017265917244268008413370556753865968672723657451305809470974072260280161206226443046000405268166073339418732032895579421086054253569989071785209483079833747549887787485394172779166993362549364307112346652940396314718995209765208102539670079862854181275853746870163042702931662076414738227800883463471162312652684921565450100235060315410624307276815280746624529406278408514979878253574897013749427436776086645777117543569962313041538299289588163676922483385694808682797809778195352059655194556093471483242242504465176874495054701203461930543439851419466727183831543260964972933039055959424026376095246960149013258896032273593209228049877579049208576043353493111244305789073783467114343089506706548301526471514904899796975970793388558904053865612675059964209590115562593030030785398868597071807957161601180374748662590378170790686459260038069216963563270489236077356608642745088934830561194713877301999849007837433674555602261381908345722823333427829402336976087262340188531792980088045876423457286200196768659111720600137550476370352026553052104295334147452184483861519405236664124970567733182786008829668974129909939435424830019655813130073044902498038866784111288833905832764238357964847138886725705258794548092342687980358786652618370856580378488610974093938738154007477437795881607302557539608461331060082994858782392754792377598209815496260974776945168638460147031294225957906961737757816143304573225342459955215409799545565255143331037828405676659960883022045869496777104345700663136930395532794915784897468403925055931899924047877853876945808003949913509935473921339769299894284472463875306203841699970335516824061486365062630066146234877824645959589232177047578377275470030969698331429532623795548886776763813973358731324594076463100655585553614948281573751944306764477189435904632554892408483089664974677523020384942999951923560965668691830668871590902754218245619224463192591729059319407947553376529344376641803905645822844973750306337202048498124836430677181958641849034199947740742009991652480000502940426457378771899939757288992200333427200794847062873518067661558873240565981784279754593870489877230132415513306919779242974274583014941199647910672820903869085503853627819030345098451603835780110332632189772751481975711109079954552478010489610248889443546895688656240204621672103729816587343541810940529004934751973100323399942500014662879251157877765930574579182651731664067879492414641422179887524352013706864802079942877149790458257267586471001662944739311423491177620843272829316054246736050062867435184379292459763354207768773040148993852694895441305721005289614602091917001423271602568636687955843572803737532008352900229536107954024313220247662583436752197074542413752036989165229335292630658064070972382543190330968372652664865225250069611799997214246975324419742301700590254319409222523608603542252690212021969937572093048263520409073837571917081697439913359598560090474564484332577395530580188316833021759772874793943442536271359351505554801744229327373510714263649298185880035304443214435574338869940123636241008227918023263302359374791515700724299506786765123760862266505629320082129842465407760789532295808971864719342615936659407073054251136135055501407873354487431597687914469703524553440766016213872203455715318494327968223691506133180287022197716313198493122401715271484597323577892144924711448049255785441597873345204528954141794945471738404248281618876480531294676427842653042932569081062442804803119614460961446019145357596969838058650478569083902408064760599873381418255048583620199670748472804168191011666781463596940773788574557825526534672735377570751274763114779968747250691517565272787284559306294632242916812556154356771688540912716186114864128179277174210003913695700706807771749102213278923505974861096263464525152185571406535102850796573823839515243459443792970517843499010743562262180089149444621328263152871840629188443494759203963635581512382475115069039948904120876285752519030993240495213438725150419676185495763594709866331508995621622995554366662241520183437728695456283728870611836203998392568017290398491846941544889123083871095153698832903821921603929447697933704713203302640462807375598695721828176632504054114072029186491847928269428453414629467232342459868048666190437225603239863514203142312307581859557257560317424027327997963683991175097344639477579576820321302395599065635792782675647262676871738287950481634670463555148264514153488512144972487245788276285631213099150295978359903238169182640489431771120274159887986034222104780023606396581829160014914678583419501987849233963961735955069127832083222990040044141834085866807160542854773530062061290418884616734239244184766765118826665200877468157377513142379616993056719716306299854567110765769037830489760551512275930435946608029159936751564986243583004725797338204491411285906483915570284383114632952352014093030054622916471760451346779714561605085740873375809178965394917376650816240543661785085383333599133535606837810489680046727586095624366046928986841731110934134833432280498378764885830055049640751699365256086918861753143326897420003385436656950694683952117408922372501538278362237894308612569380609611326320191012159977256681190968598941509506627836008679793200363274747214451048256110948024616511422908285361444665445830041244544823612696694899075447484076562252266974056488924395511915107217293794016078924633560458548268443903410463966891647122999403588092228194214218897113340908187463703528506503946437609510664896860631139851681916945000049330628230673373989001766180583337306109279034407062888173730178454416371903197700414023212697001818776306937729256805826001463658845664958020205537532662323385219727229527744218258886031281390132633548904708798912115798802814522207792472779502774190235039344179935565601600808885988496353737024853309253404853478057178402461825477928707097688488687027331008115512807060991548448435047872145948900560669967553498814504196115480058922126406812923736226227918225732607189585788896932411865945247124879108582638439141908460904418743554497037323876938536131804211975016074806659442304455605058304299397267864034928525293888534562115405632977976858025424860894969728119507987657269311401268592203422628863335695738672716135702146253143621504986533370775425914799088567912859242263638511231378336950423040083612923928723861119140207886143760751268059180104956362910553546719728441280524015489013844641273806069023982521174698336376188586970115524241639733051848413085519399088139779552428222790274032596509276336042524588773621450708496413109151851093295175709251448662700974642352698759234512234836559524597824360072279894321513650450818961406303336907005794543949352614963764498603965515337841703299932962972473757667287708639831779922953944130684288472170855241084750543624371121777967696310448060015967095201942996968135589838479143655886229826047325743513209727999822192302173077944628918242972699438691239007569038802796355207513416658813451135431137246547476550241288242700126040234767360278250385633572149903298833298745570352819164844236502634254966912671833124448603456958831142302146441322353184831023390491828488500903842929880308263861790638530921794831146937393123855151224141558793345786047155377665565765644173204120343967352524603364197669853107110134110544662655287111455747326325442004630753957090103516237693318400351630723510739665342642741243296920339983244358019272244433477640022134053884310182237117875200512074819862668531319201970680081694017505005090707914324350999115414430959034551217847137519795975693442681548018966289979376649233812114539252848430711399011770927924404594522716806760302447818020015950157299924118982273178539680064835516190776095054952963200692620975944889279053583985331077612587091117275604777809586139545005710048234840429746973770324893325817704560247960282769538435051898463221991979682598876017052232032919202605717557222166101612580646228271235376571461354836212480514367407038911975802900144229857558546524174327799114528364135191944738023253641790498584365333746952477799099710927370590823716740929696804519957836734293624038174921700818096746381251749416287903724380626317084619907919543355883704424886088838696464517627206100044680785325107648200835943403873576947001072545758706989427377967544848321313608911183553137068020415087779409334996114345199739623477934839802225349009075774643881313475395011545826827947208435816823966814207888155691612267543712800658881924788688849799113713372473773707817847896677136774656051085869529221785884643253993494076186792154564994116740668985678573570017182794728440952371998025312553277688593168467380440581917768196810354006187759200192833196561536356522426753349131420774422876421177063879433099091994195317009277230442400880528704446749807666312947142895503562182502387331157449145309909145175211816210331833653015979593235568371611889287308392600640410678187644633196045340738243278246747317404379807486021522576971102749077873589482669039616381408641579744580139388238102780826544641216469692218762943180143401470672081854833326928615011711580714865161303653535674377771868751503097267811372477677239290238256083522967791469873754770809577227845846175437093017449716713343262051632398302714774644560003935839345176597598223904994090791031756903318628539686961777270236495707969573781479119214917976749556911517207461260525059503909403455111098703898720578889108363854993621176329516991447887933675891269687672049592212722675570058504479824822673495591480104465824387781149793983696347854297798467757826624973352375015675179333956970749626640662539236305995745053125359898943868177260352824500528078892800217255045664576685965580516399705297789680591864191582550666595833919287387819077918769675738498825132314028691030186456899058256999240128479056083348593495837779552629688233293122272795529180786827885237151269170991408152435649847955570123485786556440560163607225208361002029862670973650992997810340269848807777551121744598373616987266983872970803432517296328720186929442994891384951448388659415390396848321386943982644948024276642974869280302347105759750438486893395516232550219943799343896203928998260099979413200124374800293394149679927595740534129930866428606747158808483970105406304208255632603203445609301376235018302772030682324717203566434632320636353366729519287465269436102619011778624866577842458510704796280715257021769789820757838681797590669969499747262565030427094791874186825757514797259276317429269911999427677010257571832667704346631495253090243884284273130398446834976704376426963068203822846486239133921051468661707637405586535188810141304555504452574551155259047483062034788261267507790887274253681481238077861512751162326844971930517719393395431005554344845749112618882032479690201076895400247978759149055403163579695349432733877143128078058349311110581093041776562189707094012566034922694695818359979935269271414330764456510255044321603445719022243025462362431193048151974700690467220737099855083141965861159942129093651137054451526544084073324242204618384885355509770872891494697953493114895810287798583005583339276150515677181208348384281159612049241698484331756479278968475482487603594221429145536442143857163271886809763315797938657732631997568489136124583969381276458590784859730692160687145595024523984388036923363588221661545678003741104356184314768837497606330322117915864081115297501881164643292494942200070920302656524304958618720376518785197285390156091855764145293317111211130272799446558461348849072764497428115001348517870502867830379911608972508476251708194190492676982485575473474264718702215786148537663049587690690895635242828192810911748926118107481236938286485287803171455866680653218266372882582776777204275334905722294720665566626993936315713824851874885918652700378811720867418031328485061930474728465715628306954246756841902630584082930833611849496164756343020799360364592301417555795997254795251403113774232027108304091128106830896524006652179566840446321856830972511341533392085357049610447341776437668285364070147863341216006201852210106565916728865882768047550246684034816877212353661134460332671969760817266531418355039466288031468569932844131717913678063109261044639147281769270231997917715934296145345689965818695079151445186973533842520883136338887383387677509165397232353475207685315893272142818457761992830145222117791219125089147457662397568188503586159137258510870839902677864457348647772011490957392857828416319640855752749633576115268797877435976168884258181301638418577841675712029831311048958996626295162302990460708742503197615760114053558493695118282075676757083969456298182169408205518256676089764970914897988520621989107051642506132593780608975202325682697282331048310686475209736962480045206594795726335718409648840533459346038216895870005748170488379723483603944595292072911554673566457710317553641731709613871574866099597325421375778720685899581634966129668202517361150525846141017118817304675168173950574145694192139855586024401174713667263250283202891163834233963572554564304481780582605438101975215841163712479298161679695995193655333580359319769791623660623253191031749240203547649858475297653871169348672404203516449372258799686108517816987730610929638526913718216908772299814630047831159097668348694361495616723150580322490713861210839865250553469373514453474605978577344732535753351980681362820155217042997521076751749203977844268297279724395704838150707917630944012819524486950776811856835513019439626957041337212560218782357576973207221583157364995664681212045039451881979777242188962537162350850989304272429941050017743427864246062190684131864365430410677592660406466904605825202459252864833121344014331706821856426533194567620195517154077746621984711346267703193559388633143192211073422143316219403514163111712629816698491257298487983463879117583916589040046429295983726665812150148045619424736743135820859572431898286608493325153523551993127626175866170765974085848942542409497325921123104331536345515356550159089263400844831578682039297227975833368086008219310052186568622928159007746313306247728101138411294615282961651197869078832394356619091570243653454069215608299308430480827973213218007242979453827142267687213792584286866937406428126180884058724097155800072941378158025032336976971667395983955559208454037163108472210847398805153808685509215195456670497501431836210611778255079808659271886496233406281379828990237528279500922374604835622620379854968451847629157664668897984729087860005280638343060273129124015774208747802065493132391066321354160329800633297561576072189909895347727058743080241746621263286580242722054814546492208741544761719441860187718891577696395795281986100800504685655068758330774273815742938630443805666781429413909794193662944692916451990459620240654987668837903790967801023599664674641919760789461525884881338377973669029353289378428454074984446721615320567541930827697082127555213518500942660447724994849247835740016703525518861427238208996539299859660170001172989321875746973543679887885724952314795006888457653341898032656976541819374956718307565142137483516082859310957533506056362133944310212662443265941063972115903185789233289104583107908025618167722679611622720170079747577754472574778788377235114648698054046200641182717402537755790007232567102605797418071271251084058570635123674479234714840259324652390931233551888755424953590117708033542691384263209103586465771750366956749112322129207232064817642493424534528996732914850880039654722374056887871920575105926472113078552878826406397992851731182980711397761139931129211328835439973577582705202577130548700405558419386864193656027732805320727865157772321858038653790918505637833777039242855608073994034568000756864428500058091899501255298458237659185539423016471523549060097142095456901697025941627799286496520456120906737320301577967052816586358893950061509487094285488533129952574622630942773027306164140095286140501847293607092760458120978939728583886057515971045602254502229433526501834563481050055687984499634330181887603766076382441802140009746440116394020719111976976490500155629982542069016479851044805438787820053988699781145373359642792992151704616233216427434069912642686208431814319234859380327424080154994754397205274646090360871880778187499867548476970789765080857003890613259377412827843920520732498357467868155509317395244360921700118746361508116519227429702433642623013499019075473901647687971260283127151624767778416907475237310416892258018726255756509724627015238966774455112716525077579477314999383924646110325139575240257963700196674897716503790743268551790897758355522784601974739244154302819013148945133706546757696700725276746125845619402466311067862462795455245234428651905773381769574187314989947095723129961871935522118334104068205015362780979031032430160770407096815166423673049032438973845814383938691798891823003749804678675321935741579678127770789478039399681407178936569311747976980053921511618639404529053127070925218468940714597359026847590397246757418912981627446154274126308459807012074005477162831119008178147441716007252385010036271132603503085342332319145860253922338813816635067698265955009401899292280996778312588713262829162185335004083872720909330908604668573333941668175166081738249813336063450746077841716994597273387583562731237910322779252873917479714661160737735515439604056483425717350240111684083508671482372324755198662761237359430494200190522042305628117053280365189402948798959942491838233425614309632558135677398931686638921882228063101957869087205848120249010032361081072702639214198066284646182776232741379862112136185512759355694015048220228259069111914763796746698415157786332009719477117821365731134780723775391174882230105483467843621619415229518945569567979009399063109068680989705238439891744453737237338081093641316743859757142280384833936196043824669909826110616445912614000287343008126462829760396900087405441396446753225657500999097610219916752225396425818674853607827591812339419845615592322325639696237650229580449293322994179096916518930153974506170588659274823055145017838102956600882387589034213709007281898043170413521471423255271848170866219450906778210080928143016394781469668173389794704345682967386060110970106595124590702758557033819912077787641184848006665261471308484254807610570560670556753527015803634745888511225850508649850014495997423393979214114328316651201777527086366503624380119171438416314172303540497221819489771370267516685090635725333774051477687138168729706029283611064924381413511660976478934807082524802748722576894541202855030257067605260573764642734248067806191867940606661066876084018217636116265052661713704577502880213367499255662309483209905536329208766732853958424425858519170292776138049292313419031176850670049767434214835653637324140192128013666877299703965793640328753916203254294288246808497444271889582413777117521439193697370525761569621628431342056856537231949747061100773984485201325869265924496427190253465529347476659071866055644089728259805562117948413202037352929645656514559181850949432531988955059198624719961305918850755606216617958566881104527957835871956514284529444565044337687069258502563777239640444806464337076239546024375806601900049282906344214462675384101531443396932733283828989592268361307729363249864599707346350757208692759788733614645758375995629480278719285318595248480286836218275037413846401215015391341389638169641839447388139431315789871113340159912683151336041907809772615290993308981597371102179357513003756652516843989224221286406721857928340512490907320056606104149851360558437308411867921790624693470205628199987982192230914643284876007979854149347257265670445521401674482344375853211463243401214938223743621552655501708550994722080362013315755574876936635426350045605756989593753388175190223699119880910736054368380760200414297856352472756623128672404245894462990977745561587500527116119719030376432738949117084387301757471211683151064895009271792255618504052986238165276530001476503957182615329691002200061470555700460067831992237935104618435008687710446470513477178631017542836989810544735373303058639521931111088931833471314869925581362325336308942192269857634877008251611189084195384843014014060166582154087939102396410843552292742043426559653355481435814071288082895987767147693857778762336987031912728677649932977488413546564350340069085938287689281797553752333540430249333062296761223050287958540010163859453865271871342829599681889351557646615643153900590758419630762992500281340169802131423717463435513545785811516769662821599598634828705491230967225303731231199601876814910238930317708561089076102936552790641539333213170519583283722330579769299015601884130798269142026135177918331207749759281775214707303105741122761885304889962508153592504362053844864988053448167809154432195677240060110167965527345036805136208497597411635376531285391315941806491608390382382496474190838953431203442550394236846225711379641415658823410857393002572588530386106242304508923515922392114535958791718017652852987994192545037193660336901333547721762993083657336181253390804363448373646646192824421234955507487125042302139354352549866769073252461874129174993308875578983286495332182530479921281255262167793336473471500085738886436425073177569082499451783516572024436020773682645079462016448111013064553035170900063359399997108613788551501157536554714963517201477820274012567308711551162233219244877359797541371009825876976470966526346480321240801037794975839672261730450276065690799229017971989036577932035487488399824542826941680486031894057169891340296906575000069074591716701312356984563302146214408687978742640685750848011594462406091488277160578226762361559546140574988691199235524517031186649887017551288949304263404423013788442826885893002125760982178517167986797373484332286464553648029473726463626541702333867118709864798682136164972126169437017386734824754273305213930112286661821390043692864083075699291974544413664507944521888792721632814335554456777913663706334321942415668081474375304431568704463016305944824865913355927479299981895258637982685149470676022578025243353395848222800291470273412986032960797218985533021613146082989803301108390419828716878694743310986944293553500376732339810322314274515424964448388269160272656777661319585639945193760008493781803319338553427398995967711440147926165241678504039539875090519449667565781431354335916197276516158234924014914886832535839374599790903067649738462652370193460410363451466390787872555226580862464961340151234692061560709622277938505386543936884611982099229873452970728333982684902599941171247183799421457970104620054369227627622322125294347656160535404929056937969062301505411582736983336366330870441967295324504484197686510085731098880656028278684838874847083152659338283834719975492835056854185791156984252718916167767219280639682532852199613151177835998112975530249247129022568286841897691017334353488596681659742064057716533809711223064461036939715806351893545863333336683604932312596602360656645058135583507056719838946163801526899739845350613737954126462178785223228270628036974470378288317508394125209729275083259639178084979485128265663856725826431478197524168770666776540371570045767414667163119741604065696011556450577341250839197272853265354296860231521544514930037228547189770449049823725386283725288539696375153517838562009108634834977375304943312530787571106549048353195364655117954926510223252311055713427365884286706456168402123905010630576761515329364640726473271429168738154511130634249122467943917101136388376324557424870815080381559883232221897007850539507493556826651393935859107434079574660352115826926818553133036872935745730791374554940125095941798089535282084969278087361172344919405269228043209217640945036114638457074893649484984343003096274515036403788512582062447109472932407979905132489097233054964260368813193639933897466410532179956196964109716911026378345383994231631129495727695768050775017855530589866827598679972163190677465313541780953254888924593376847107307928570029656605188905717244170629677593488350127164239399665684719329077164128244031305444454915388532250920444287929105545002076805491144805742980322250151992522630961291880205785115874574001276885565846335502398508428242971490967985981667851551570871358634243392406042576440341826787430988001692972322938080886314257234019064163187038698323982796596917618670459196067238314340843280132399012429420717968324889820619460294517867073577704357236812289455976891924390008156495094246351903954449052589287180956570834498039912314024153128632576421405565769106958182241857906187974325801868713769828613636411832984903230753908236628552901828483312313474167948504131497249741856849123915660600142677858849583278318559966440483984354613754509823936638457502839485965376331670701445488870803476388510410568968156868327430230715086001387253754446832175743056659285430995606131689186784200029595274952050536940534694631802413952251168129044461181335652045615345099542313938586571758362140342532752882100059655759190012935627768115384587988033474200448471916732519866741274913965283335627697226318381223100049752250951913805956122547293435427116030587743951818172068648380144791872179591481079162292889924313451432794045625305366259255148971758222905974020450554844019353088079321628413684978045207835400015287144182942650934102873611919042327587788325149446276364065986095293706516781654454784118191908493448046092537097895800417372148049650372028776752606891321731224079696914695526113910708745838169500680473842812982959093008218794528874871755470687855761720955222884440780230605617581128522810968911102512202919703457118889780961580448341332870332790015591681701547533874773816758628129615267035489575006710638269901151926752874699549215968307137083979068357497709134365092914150055508111856751902062171959877713210129036937814311432018692342966843222120569448049425598712801748991448555579936656590877951886134076954728170730485293265470291644174430322842613729495113739065717682619921415867569245548638718560827804638613831444220445978694540290331001953091432317873961475291400846047239739183625635121824650895649150915671523445930930246990412256559211021964992541680115891757382587398312962057285070131435551166906561673201453454886343914248185735643869222155490352429514693067513779368958302706083934842879110304809623154678650298497990951597800168219009322536937643501866301353603157806324252496156129101385806749079987853920422788026957746533124592361909631424500799495281159328860658235542656238220983608411773603221309678613123510650834714938915951340712235179893113105992762662900317129890408434870863794625224575613363607690606255956891222167598047928992773040521863166252300507497934337475884370802737836701468222931270889128433821065348727219273851765460377384736736283829005955398993625601480975781738860226449405712556555919490048647402257102865013044249717397742313056656294765028645746089129095040765426657549311470977859743560110011423204166485773690052767800931091584595722189732669498322757854690311087203575198957129602726330477310649097597202463408907056344928271756838369357158403647409964279898251683185223424891851571237086540912846043764225845919858614943368894308994218097748512124801303794753702937855790602073545490165287473108444030177515257206367286347063448252073878935395643549596695557993544285200045615562559989449454127376708849744474662098738998198461594873413611155083012043160922725303027258330186787310735344617844883087103615372876955892153207843092337336249530110888721467088596309408529989629397443216156545842785419278796188795531918853945851359882285987035696229008433334434559766069866356286462452955834845382965128270630957502096434287850904305957147555007428781605201825505465569144321519988797417535013415819944126370108108672562509771868755211994929314509888361046076201637722411478098996805761692711591289263080045105305811304891777930311462596607471322988609719592051254846818637823184878687962660821345882553065609807194104313645766874190818618184713579589077725373187020286450189439243034438453423306892103786666179251795804661622598681735831285067106549049087555741470417799175672939814705507464371422182490794129734887307585154840312683222587027581165775406964137636563299161394042415503547923625977434504759991046037509728658205410014661924844930929670186888690662431746028258954783660950403167026291424539945673510162153397101805836018987160096453519916605991474335644586692192535543872055531822062908047944386827962355382988959886160231672932084598723254114891395564402005361487480912013253418690813188711395595225002252339320190688748979838796449246000475235780197625391608477196478713305292799388775945521990584764068359892976934982071069029591787873319617681444160117305488913923538121795745075721484541439426223200866928077611084097712658332409297086156310621971734068365294882801610941689341087165105000156096154187586264408102328741832703654389248595197116975635094618275640009911745983043053041602239539387001624702567433644920150789317613621913595760919900016477901362401782948501157983580419975980859877993811020522453309990908707764778692813974281637952062566386372457161894617519003567999468721530911331627161324896492098551989481682733115137810267741291469945506633769676995708673791172659834671413872491165470250849732971422595310053969474812718931555687810049759328192374605802144450252343883882788026598711552787135667374477567002917013504362348869397146531467713812926035877724871188478860902494536087259291398477602601123622500977975416806300455231787463879342848413956235511081621578193135736926007165968430278028817550654965786733710188139257213504767175556601169026461749159546601569196229799943715608954658090227596332267733617292913840875978569415536102535764834658580529074060452635032593438008358445605600060303270740175391275943638289392715745119340169083832031907036027246457664527105269747715222425845116893225124741188619275505803040582574288009095131232711910972394433300908784701230845519247342482471132853431256678688594691166087570537588121712339004750890851424882352597840187181119723120951523786081610935681979523721833816012932326303956116773021777391205450610110046021206626642925384612893733995228443982236040281862045988527116034034782711535515873856190724546459567265966511809319931261224076962475989707496258733289892262337711597017747378459408729256167862400353488226609022283171312294854253404196827998287167557389784374095066710130112663894385766453580058923222381985568907432807251578061949727981053148182345472556187096938018344429209614561364700341189513997426923248032522515304772993329341139303580428674241090729991415913442994326165764353970649068926281687334032192581502082379482329799069638972701033614881967647121126372987279921472729249190616934261609307563175987947819050848342471767769734249459648954322226287997382929509163579409555045456476722256859341753240270973653497092004806751120057340187621805849200423057783003356140155184712918177217415979891796338983386779893718293415645463040958523264348948418068859313063858532256079898774724367796177387147180070400630152253387996414826968478208327086900711161691294296952947527021092452022317143250893592880351582135179480379297650467443891148794916346593168595528586330894596440217710811939771466698866867804874749071866803889365314106338172367737057995822894328453311796770534941549062566637283742180018685151539889541674764059436651476932957976795804969181310558029634743080668616021145754657158140093056503061608907001219548258034400230083512555125191940428716375587434105867339366868519299063484576860856150532089919236930456001439344086808554284403044212854478256308559195631927899527638663487101495315510897823085119108938113539076630067474982248693182021138009016626172560453261608420770322810213437980364077118741597186798162073438373206994075489157542356170743826475611776970913545000163945604260795246752925063543554142129008717340507702896991495542016100338324686267798319854158205797744462643400944598743711743397478518809275829212872928123249708385003483926321896618202464941845935804747749001921261426650036502241012103030519266259166987093838142476204195264082565532616507817216653745718057210192088892787870055050346062551384203856126031565688494343216000881522551189361751851128179800141129599456574140994571254263409687172352966796985654827227773887246773982210636987909153853300062589247585471029573871281465012009190954828753395569589848741257720796954402515916697592359634030849363544609131494678065132530833516884719728318138910738528252940344972550315159916903362191667878380392412815484982991964212513331006901261362919816035317948539928898369197781837648980480308116707783029728468794960204465600328792605802225208108300090426926318981484483809839928246386178538248686997818131643645184014541940199464553106606661434999377330513211419109287203472329812843961710919964633163041107092234853366403240402605046330199840484210937874158244728650615379791916515846723171326504009221442283395058394033621135587650747802311884248835079482702115902679782471733103181741994984768475415171244485266025757696955603960407243151997799079725492132058783282842200702651529547244043041403288970470206839861188036584183013921157269713389459960035069199540247246940987591739966459305728450444780921656309298230588327362468685597673948699302971513979708115713833827089499757334560025685486579621533063306470140229944301789998892623281728417172953004319009846948451074019587294088310023947060572819415812718432964420891033687921964328630966606307791766744018357294733134783470385567355795701470925940257842320612325552702988794592372460055725565020622859221892058243241095536670247896471638352830035926044205646905382776344271650988531210027297503108666353108811711983723989856724597020391605656853586275771922159981192545305056986455043799893560544269861895202617089944828172090866805239796681624118620737116404208413980310118168570720452264698832086242776883388994463086210334481301203863266299263953062089195158406368717665365550859022603866807141165621373702821178676626846955867424172855077000671081624405168766161958126663091758568014220969703461162034084420932584016509373293752956819830499235357983657510994872260469595108640209843119384682797428896343176534882315859801424482119369726041369533904787173213487335490470697149397838069001136888818446405832894475677941245225964770386487035538905259047992138500149935207746208643013353837242897119028345853717879987436818031909466986441411714033496112999804877130743176672191036451221324430085586916719677404702763903983111250067854881580675159055387974082488348708516053515442968293817375244959940544807808181812413484722533393360172294694910504720909064084525732700050110118431103237919516375077887461054032108284779729761932105973137969352925460375800227161951654831790103492515082643818342334952894361159533770735878020055106428277173766195289715800064247543271255071629685247638096729211236272628973679673983290639542845325194275502589107350618217720653578863239569295465202927048749293146755698827174749704060302257654462282654453830662111780396713112274135656192068691217366672479899719779907590514099079209641058256448189687181466999032409185969028985781632556790379962723723143407603295339662739720692004047363359373999750395982844033340047871748228163690926502047096517803431399103796354329436043653597629975466949272635738758355463266889464335125744620347877514630556553939139949276578349917502438323215548074343021366360865984165544935046912685206164110177753359255176723911816385844824925355170055903758178312109532719850038872859067968401214095019520094825721830147686722260803537625330170226635396380800165840628982353864409198343667505675627399572354700187985353062895716277526741309862022367720423797688439001896843175820025998754845177373799725184664938994374611420434869954343165758072254233597854622691688137831749470560524742668938311925940477297120177658304491620251559876394136921768609480602906336512287068258981909661109339782606299733516218988527708333286322923850097836885984209384267381478298644189196386576776200324280881177059199689325080324699827361778405339370303434800646501917955673956019035368617723428903055420547799891886132391638649883724863694055555224403741616227473485208917616157333321891508493075683086791406468766880212753546857833891397311073040800144641491180372851734345242690059114942943413999426204856943472592249552377000779896492643263914555376049862641477508108235891933888330869334354172270656060346160882568196790068397021668785074646443781684081676531297368893489517006221454320395013707047651225347209975891328527388052768176313419285448878366332014599275454774086190572362423248224852544151526232235104019468790035694556373220008895177944336891519490457583314535566033478540937979036507562987470869220393975887066956958971963391730195623347446685163336147085137937242011423332411073773659385970826285600380367048622077280013573642924295686159800121490300829761091185887391539349761496555180961636770131386127427282702851182535119041238916027654430307633645185983701512903785097895708273768103265244787719084726799253781353971535626579147246801667944161885921754032027838244008092233051664333299483077914537453510425582001824827368195570510483326074896576307199902449949705951319458817026751577363869359047813855971031621012506741590489509793653769693041537615756026916473809317397163930735868390400020223706314855099666011013267871360465047388889538027895710155007976741903319469089950805073374454906563754130558742993020436881930865910069740865988544163643891998678305737209162142528879492333706336524321033502919879151460540553053647433157470821320035683003741802400156930751821320215136011012526608423333116082185674831623642547986911254387605300555256340522440637458818555392340874280369601559314063326192793795648390220107477019616124551095870644595493877727055109287846263412228994610318785727010401849705273338638437164519047456519977865759335976129516695492399372210680742681689290716641695061344572670311705899088215308044417246274961948600622689259537088149972653158856586687266820781916721511115728810398966408767005206863108411791777727849006368316211830707496134818470191685075201106150008521254915621012330519426349690531470309943306023382204650874600063956517451512679533363486069706222201301308238372773380601067068651326657455985894581710812929146260142065107993125800724352604679898853023081482174845267258577336727770706925600932170662173805698953339667340704822004263509065535844983138125221004756296160117226360213606253615329027195013264911558095858743497859074511773841304768648605942121369016120169309432144102954749525930869876252643239072717173508216586482822659643405890976711616061934540434760319025404423169637117613787893499955043425067914178685050946799646043159798316682374338540662007191883364262444635590147421505230827837260540112313121512589507699431411343419064797196335978349400950375660530650215555897301158509647363951602509440019249826362857245173467710373133276918569475453269074569790589761893880533431128366472598065755294365784971050988202635396565722434471555136846749927494764227204884487001731862102469887938198538442016942527783483599289824399949011833294355789746780407312724404036560148198100369989040370515117885239452969615743892361413496257836784344437204421219485355181442838854782964867978405464258852270920454302855163260555353097439805364367727788351754311624955529945845399852941941188675435753353162654556434809362877426453811368164236610324898306356802534534475811730750156008144071418289502185776740999427957186226246186132550220877105848287176816649938366271485467422730852319216298327690561791673437951551398482599445865148582608279897656482522223106912365909317498762772255890589472282185462180320364718788682834310828813108845423879928364168158508891777131664558367371100152212572594135990182471202781228216136083646396541353946897194516157953979301000839086266780818911973102953011753817562629058940689513677949674445219582401949522589382493785482891472918684086116652140074744708274549881204930959297837464766278413599935813601502337346980181167070499947300901830976436710959502233796172081715445947151248855998657144897936706616014952038986831105461782205928589255761929197413712330357919978132827279337093134504991954574354379356490254605214178122623626534221234080939627645365354421854101453637045729113080105469098566383051773601761335996502179363337088047608037691242068235591490385722605613750436240603609502124360751738624000181663959913712493089438326659648413184964222180425685044755066538686690550773784834393009517335851984801484410877388021119705247088112596552088797352903011723168892785773351112784667120856117595110020744977614254561350039178274942680213245003565798036286835692645166281215033748372888685898599572434334255849516785836215050322874077621600843575432083687391733170742338101391916811674050541044092795897451535552803144816263434530240562323619417874293217233154170920646097095649454462547290960688150724845325609763478233484338365926181301791415343742391193145666409378423262202092166362188597786594045651258624584399612376264530213578278045712992876818168771178591140067832556890927646679958979205982424887151014393246200624245786797112643442824735251317658334727436006490103249074909031709936703320544750623218602523699714708361510012281216853533324121808327993865457826131862600455759863877335791163567271904816154730139385644096739123230820068445744587598028392454178813287904333335612975939540741151445001045063258868311417865232552666996271293233497568278731634245561679727077311336673276474703130741155496264220647628579207016887413569992306521789199586964752909643959776333157109779583797095426390388322456283930981083204637567669678998364304360640352478193769891260984815587286744291403126267305016416976268188857843336216469121378418921579248054205591735278107576047836488672558439219848651113891573728104600608337666593775002835321843253766459170119071839856255650681731924627696478214193523296258913706551321077290323357445360464389599530999637243995282329019038291590004818059952047900954219500154457946912808290153425522619638986305326035340302285211668365312858636800873859894559703235412565450741618647851313321955107210392635965748937039914059075375638531819691436114756160631844859612217324538188573924260107345272795168029256932953792851829563389374958061595773644904391475240694524885177287336503330325621956162603990151882676121065766039657241321383724901121087474771000116896215163015131916265568783287606627503850835642692725014496732927659678929900108715120249285923640099498044798020030566177580109495129489724709441068588239386991599800375327838111312042089114224320004140344887520097435912064966241410477982007808261010201296503069392696716757267385383771035821348105669884498536093572218784635597487467401703939807428634695171743406668414864097552511550548241348792579475149343440290130650127969633727304265926272693081266990586212441276905776808615382795712838349990466819855982339129735702736325465030183597130097255720460725747688568279240075445301801195754052084489532613727910920142915831658216988631831219186207309922680016387287484266621390998665097533381586621379331644451921416115461088915723056968636773352666385661768290634336428589621173797439867554041950117583722114656790297549795788339021096376096511526250835118096633475411937721008445447237548776383068059036836385839078956384096795115810589396303205084178088816184308891921637273229224757130199942803611829210232057130261927169215923904627851006485811446311300740210612595708584551894767050166058342453798716700952006610158304891366948775401103160371863590182378204190303508221391440967435823177554060735867439423837544593390592067545944135760835257045187540428472056826699288853402270864450144143777236146280857777579257131494970868256552438145368885096846902641769278882269917954659931342661877994746431370037197664448686638678404529267774062802393326260261113296894071052572239258018091126347346513408389940852217874907015433029466510675205355648548310393645656261129491260015312303975107757931246479134847146341014767222938540776061783279180991140966623427610561265424699377948871521425517779359120253859757377790804044611053188409464399439881795956980547540100615620273800287562706938565142897170181894413201257555435364434523616140160844284510763933127641808610989011744218419665790591407829356109209761819327535741421250518136165664600340993296748236424927433343721236824677800493839221013166623673401111640045008046943089191155987810329533222245858146199339786860329043456627977148517042668673137169371254682111704323949227194014835164452178321992065116872713459160279038805640968282922540125335251947122500283451548548620964747233681601270898479685962629080180169298718098441123439564427808749103249203625875818372979762070418190826002492607411758783698787393470219275283451750878240451472369995605366673612619089277020070682778715556305440119578941890404447045893687573524704552439414395181629690956289077558443395370798523030179553678003935165748077879794339269341152133713805590677242721749111062865016049067693007257150838943843705280147095659675698604841312091773131676182611797342655690790094576598491249663195582529986390853603965685295048222953277652046518245289967857655144671530290668697803029368422392831348047269757402356399788542469335887252721804553493771969897540542708063280591214552910309256650958769939574534392861974233695940159090419334260137211983675914957117031395342454315284629252503722733290630926833495657867314399713235545897201453675946184921948203174624875361117913904692490159784136941233563656980365653073282034972282945016962062431227244878797833670686013158595833516463307467635220440417941904922426167443795842437918576632933891706832416406808688759615215844412771473764969345728817009738600301796785003696351864022497423737008331062027917003772210399483342333281298054533695297298544560661313103097475233860057220575027282917158095983815898597133749557096869925925603416836545068270787565949778411392438261111047711261532558333043744785514390328897333583406773335687508022469146122123472279011151100020538809977258126203872094842695132533432561829301794327154726146318709988410565806478852109623184505920679762277383437698324193351564308265403779111981643950574988293576338455443268718030317754399113014027361411528059340167014674488924255575193077202077585237597408201158743364278093508626521166419053762366350535339258645727446264557206960896328215511592050782332527234495653594453768857258383347412883118543900738019548746159792302892785629115466706213770584621615726691382034691365608524471799934920848130137310623532409097250198739360871403491382272642381312217560636192106445104274993015459346314180278170232460746702580052835615647843019407440326889356827048796657433887459335534979468721754499178877497928771421767897847686332494377858934865007151317521639840908836258418282834482109652240921341367983083464699886615390991754931602099269929100660271324269866374697331451289055040668733780288453055277788561648998281100079273333982183985758517107405022245979659877369476331853997083339257130999657434218688479079310622370269859403215707585771094678294922721639471275247336865266388149676982534558967480609201459040990313175654594974509761790026598272972314842115462809618026724467926115478155090170644273134631553815174010683953983403900640743386389893078310346951155830870942107706192830218160079968251525743359701962950491025989740001618928248121808244265149355603545060929033343398766607083640738794107361253797703323376627831789702893697359951415960356893403141513204087526502581226833852715829326994272495963417001250287085866367039191107322721069445492970291130946540793431872579513503470323308932039815281258258139908369962034412035737951747148885134784709406825487684411679512337186563308212524828361770771851230088060372889983052342482518556005114943887305589783710919972795431570301874405118309734504001558931606263468190522409964078527512044655008656456690074576070999946101196737237057160642727451894235805634549148485634503512443075376462845320232430152932695012171552475330318051539351288975686815640148779917684461492227824204427534523288602931734420740608405821636281310409308838935577188597972679916651581877120474468870249618173595340365634468900217349281626164577397835309482758059663375655203608656799677068521723029435669125438989160161099295286996897511021543886238361376446439533689058300718887719425082927070704200094795619072830109996725871548573487017370991096839277897819477522584927659531495803880168935662170284421203963259013713357852788967213098316894859756061900799330232577338515062136175605765118150587286802050421727925427544067157768056213711081701147810047766580224744866035693088394111433377565289137633130832535802024100053836313002176190720115277120635664066999368854759172292430701588165802192962739222813151446887225249054363322676641362936709532007903521963143014885247015725824102372370023368345235170407934943949560411073895830530205545475245789158975650856719666367329418044311016059670570883238103271018775145108226509706896147809754945921201330924342892624448045838146404365230764172763122785713973838735988790011600724508973538506340838638335221796323077790839572116833011356199321056840125295341310059335246285965336243307324382179285505934775795760041228416185716469919606142380484849888249770708890415554249664058354951229388066585940067151283460149584234347576019868997617815992459815321336586722698535621882385473939497219817932885361795382100144987196213993810478557043020208936819766107194212523981524287521382331964120758859488267621317308858031474046356599954526456689943252645618193017830459232765499604109258691449569764784125535115848295794865890784796647805640064061048394577501854703522149934100560979491500436768308420754117216190852380353600481677508952597376331631055927906913397704104655089191591572824443201388701961638060608418696909562500663858607443448788108277529189805199809019970256962265308701735749446610330365228598545840026633495623423070146559690753487550200809890331779389779259991752375183736870238506129002911691258285906712107320936026774701959746070809550223096828335798041594460286449080431807194011391687024072445360139584552814369889202167799291383173577640752350046563971649204516973529265166228991018740335042310429572670670457873941011488987820281329049302382530614544442147989576407878761964795024842361150070780782975937139593446768492413117202631713913623929943062590257572240039760601602848583882824920150847929928599184260059729947172129417748612671011165824504218272487492182104549249279958827421248630923046082265771877546795677160969394252186448943631561965529817435317552417192295487376689679394913839091876693740814029431858377394593500154671174087381904261134818983589092298306235482246824979236068208402989274035973792890916003079720478759409590757112337096947806950778760595739597686837675338882134188825149253213588079606530178563707548567406777698880113923042865118668998903910950905150106648960210033202633623157344142182152908411978188668330076134741756297478971652389356333448567615314364351170449896162537646387101312272052404893691358531214127329692694659092052150145320711009815781381283699768922860600980984411990365203238336549994243166991267835528300302161385359931366414320088247568352325658547003606221091766186813562807798677555819903426295451027488201823724471147752377776429538564404685572448040460724627981254461259161398877307674832029886826059987828934392693906865209155421289104891739559221597089955511112630805433053934301838377432776274884241153782971780261548745740317144965623022077139336666899776282372596565737614813164985657762495924977238634710352350410722312085316409695069665822503654327655966402564474631192702667993736685333914180096985880391706443243194968440394647193084790425859885300778145883575884498455444598576295954881840734062269579473051778221341111067299476518980652702412505302673446646038116475883466257197017256857128432639440875156845473866449542228990100505488712637938965608829165932261682696320153465673395474436075410083090385398566423015915331783307021634259874013899142867172305053234241315347262134260269635234800042597513702643894420397761034008525970009055459173868840791549512832486851743933836816242994805059248200183183175073289209755867598538171470624660834076732293159913042299324855988410585077123272412662630606680999101627238348621480941820778162449624042996810998497892461252168540645521261113094214775078533217683245281983699252366951836551698744592608070346816010319316507818961040925020367299658616911796004546960732333596602512947397540471976255188617663647475050059660588451497625300750011128034508722040081794055431715883437608182135153320981651468959373531626557566419687280485070996022458647245631759600788564139241756144422726974319991679086112142313890238004784523111088034234237860727392494207421726619452127180311247962243925804312217440164829032960941330689632466845673368709199202316252590193955399510368609177454672597373147099759683764607029825113038038335581900528614915393128430185656221955305386156235036924688463017914146093204100134426432079463596892019043901421805117701982124132441848593102361648725250988622971808189464380263718108584945997329978760685635785528322153973954730180157003944535095467831875314398294352519613037177433590264104124313481162879900512009261619835680936223314094328810988197769925064373840241788131603361428127294511775154406589988027801020297420213424763237485267538314288133502456858658681788694991775496334727851106519660008340537584372905667660983615239134609915311951639634230877980539455166947159755856211132511694037485556592522195403792752720280256329091036999512877832323506868128139190115700398760978893951540943186638443320433651290823048596737823221195721933373355983861242050795499070041680596201659954744749805697612545521200087791885148916328940908397306479744521734465261391027717673892317226720623955417751718230274079023178391466165767321983622547123141407790839230082973768928564006597627193201786638946858639794987719222406887811543200185949669288981429507608623061067464869724738677305252639719562707636911500786564076366737160422310734194653172641062440701309431753247350784581587032702719245404376114874567535964136361009808971613793101493267724094752052911882196115227783256984259646075239244673954079681528442430386346378467960848156322606271013906952260661236997378311348471265421094131007653179118013005626561734610880022703846294472394581489170271330235255732723447332257107665606877373488533781803456217793245763514778076630786345826066573433746382846981170967524103308231174281052837906609640496991203111571210351838598684588547131474486827933285553191188185669511097569059112427424935497387808577397484003975138427914764632101089292108475456398422012162217603979532843248465215853061567418668670361559637653723779989575308630575069286418586100491173512318590075810034153633918530931409841472785031581618410469877928122081150134176703408066531049394056819456084996443262064637795948103684017213052212219022288507234705686996994631841677834410939121273556837491359803078967948592198019086635571501735832878923715030224959877219157333600870662318123506070698926507260142183415247753773608341674876875244752462943707669142011342609976690630090072965142876339532115022364621528243227940465830854451454439561597690452649429719804647021544350189530813219541791038911292494024235386211245589119270738836040395175263062798025025209885815706930070668887445836278198409168638432694916854716687605983311150014956496945069265224088626477076042752193941420122057658966516426811573123727632864341097404504777925998833520864432672729341842880250720686006848992440766314886006607520403863525996434244964636088113696964084866685192968713083049995237336273460141278527313257474537914672326101900981104284512831059924262412611595228184576603432661512260437385161213500898243808140190855490154466788256459985009310356310831865002302642970677048834631245491421876432828253476792415707265411660709896813449708107476288430716977000508390725789682848130191313441907487702997725192679882094602308281644669205273427672475637023070345862721952106432846906159101018030265873450133366782086375599293998134036673662581981894902205784195763937680144979295299664089356645921641625823800593270251544022609889991506006118106284024743907097056936986358898194739079917383935609695010611396257309009640182742613519409265629032004046401957938821556683297258633469165356245487611473600455192663162024973417495749809377979989898743376663734932326592177348472365851404817339365768665261391010829262825305665251109541309737255815541115749645662288701710856048059415243459300958324791816939429499547293032236582774301812296620498493483416924701757220057621193803891153781149717373300642116510917446037836532788119509305370078899729876076055963496274906294168458172481479453333707874030447781075871070695573515536932181604571335486596729766695830520041986400321643966525309828712098796747034693596722639645853099246131572050253939286042296038405985719252331677637346517344574856541161998076860049557382271993261607853095858363910491152819274712789517993620644261596358021758414016520555461973844121888495085082714693549817502309654731315082857642772830997495047276910068595626375977478055713771795147956740452381415016723086063805941894274574382773517038458104309846741749205669378654740194422513408483048545266375957157115067485222033373669249196472060872015864160608207553392567936158914556385003056069985062028859476980199567376270672195765251190809234289312921626289202154699223454859726974221996374862276762956892456319096452393699922770989054839702838625020565178087168853804464172497868308582509182660024751042288926611388849216934308072519047816629822634064751051217857047101245005682237658459633584308000633341082940479267069592833248728572513436173407403064184625279240134657659556792851083309677328196435000297444980612949951236935698521748457477028582269084094123427853931824377087860282399652902034454283504429741051770098930898468420014465373933181595150389152043157703177334947620508544094274306723150023504024165683617084538535945242209519427920785019575300549400305689461490809635361427762838478795168126794713749294173426446964026178385701432625443517980365302778384122266833486581400206735137383050623143121092964535133345724830044949276302390976156982435359771078514485682539749973135484328496322557151935309279938150557728877747406380018425530139268381464339983810121563594551342714812029734009286914365942142467845956584797185184848210362632661186760424548257025453731820687679313217122523108205468039187863999612152902838031692606835796775842575989631570662881687688454384808320330627148886703122158295522471659485795536767207627073412787155658349235666131247612720560001643278318072093342811536043454479442451434535412446253079183550071236199930470326646490679813718355372290140328489509996926685555140365326983807682018994003012406702505128205361669986514648347715629915676561479043741616886388057861592609387938843340993381171966253196117406683233035357897954553422066427613876967831667898712694117718892654438182526010872688109813706090937106621626811953525677051972658784131712535418502628935939094322588728884269662692167770193080304240979841201352021700025340764028852613032994349565448099999848074357933352180260667245067126052810455745981850123548026614460258597648174757014793988288111863271466243187539991806500493953153841457715915943221336646678896828550007247424763930281633558145743239560243876269044617927558585730890660866958714566683022998269914476112644642497763332661077866972207245711091349783566684969882825435298954450373001830425777978712201650790940036261154746711974827796040859288581771821465991205170058145997432610488517552104231744542360770542526823919648458498415918494786234970034992789704957370638881100600397195735169815806117083695306166863682511504234862357467456483855120667428288647850916667007725243239524378435012077447375323088883697243750265004008287287303678938078723433365419941197389424048415085835613959521317255237980148252409172585355235906214926553750850796089746089819933495184731126779938220913796064553753817840752361458696306865296311003920633234952905307732850294370546187415589776783436220698966189914106694189990194979534751724947001432320965193993992365609303788412928830389436702455288405321980092067483302783165785617606030506852909708133272224852791274866433925630322856711441000917784977895403167819718837321886757190227895677418666246879717909955495035943330055601086925928569026900779798250743160087197854931927307601346643858292022427326115842154088200315091265991351417183282578171826314998852608379378727485104965827220647413010497815147505699625633763055131056810789533125774221046524056959162575511682780739082360593509679743377485967070231008253010833048092593819637681929157551685737408269892586778642716891585980401694583967336302260953835913440472421893828574536241512947645651637718214117809513643498871105376605406599858026191350218320119715864526952671263241934603039888158360451602758439953740170827750037078457086147553304882898154369366358410905901423103420893930407123615945428555016242545191484511913514110814424088124810270944940296631149942113186271902446070784069903141592729391462168265073573853276020348333684952705688703954999789286253864867010387686124125321219396847123096272625382248840991288814693719076971967523884257616550467587436070624442047006058890549254692404263765895383321339847265762941987192376226194402473504707215764859294682479154382854803071384180721096435360610454026291332372432643633197066084751701572915696852519367631977099657840349341480231825774171689704767941128642143194503383324751031907356161255442946743054422351304018806100760292507958142354980587585601900211944378437963294354305804632653376518921975587240031130304558178989335227014227693871225541524069000514794393299248110359112359615513960335256014555996220568411686631020471597746863775111210625461705409895460796627174670316988939202521475496492332560199130732562586475612649243035549831569002952967644966781663250620284937490883031961876284439872468084417451694857479009158818564344629860241255435848361165423476822921208502269603025975442368675221630817465025060524204755709603722524201146951078954994456966270555844241591199898088392539968982375062482367136006997199121680816511980540482891142537628439339395146322684774731972825761733734025638139998574210730798940116641931622832320504968986288830997888950768878963985855204236440109775643701439423662761424768031555737110250345536282393762648219157632601062468457520910788963520415928015101188197360013753393006782511297529708037765389584903316732681959840430669023339431892445507385549146355342470427150190531760215220049481234823323786624886181684963076430206410356715120405789795815534840208649603157713869006757016139557699725271590850151875066790652862326773587354925279008089145301122902215735244652735752576723616589824141801096273173755798097135233816915362504734204090491746494325102329290124220159203617481298317933746908106501618390537316401238764461194991449494157830648888066812784642143315882042912732069360012391694917952364562079387237105509315877879352112130953234488608614823396288301800783381555277712336994196970838258974438201205622971960687402029226550914719935777711075653738376473288019670661920773146773548316879518447352820696269719928789487617065614212766106627741865430761688649649268862003013693021693360331463882969104034641787047089210713324855171404402074945082193476155718120701786887523790554243045255950109118368372714899597964707688979750454718668587287873407217043811461170449349316392487741053831782443421594301618225056479952748010517105954037145384916681993578884780259717379331208514972184752986201457490447838646232915845053092360353627814828184663503615357508043922446367547501649163678156647744945448933025680787930179386115446182684564200716028044109662009283274507602440515969872793258109768143389572778085941938597272377737508578892558122135208564432633007258017136511852202943445066530910440176901790245606074627754399686444215773573010952686509531855772284735792422052041426508571229352350524963554380857373996076992954407699310097150184615974399921087289855927531878067539625494969160152229795787835307636076609909362172544571488428510474689757761184598282794426146812909357663515310593672087393977980973135349096340645391813699634284509827621765672803480797469856225088329854133735055691925899631022340471759619478361754800451951504242499211373325416562947824473962896539028616705822481564474376762291054891216297436204372614619749318291915302076226559876440233088827691236383677720847024365476820133765705321835574487891637911940097244477070660994062610170136504345042912601919116748904603849398048761311534324762189311828704854428163126765415576410849902871710542013637696896509999448655769916548393257507167278878070240639747364727359423624696279661252844548619155780170703470622967136888633007455207121046845684216555631859808575773213306303354772993334601920233058951025166229813929149832643633770173034775234602540029310565796082303551618567998684664686752956158031304301461683663591010080495443378482322295608523949445704702756842082678364367485635691533236081055229908574482050288356771799473720076453328217976103029100576226326282463705005529875332888508108087496402593843682149434897849554118631643423290376752001718174682533813665841305862998040024387235709176395219359555353460378135700995460435334425795652797955404474004362903416013165912032452387596682298692885791176281513474235580820633683264947933004675592218959340235970104473278734743908726987205952500148818091270858474090040670228918277979740479048094514395569289366876519169814396871851728221261540104243948400906159031324116261958089094918423910191461914368398383707323333122962485869040586453922398212886749697923457388634988193116527389275888922785557358298673423587771804640743200294141816087029001017479835499606676332727528654366121597092865516170790131416896892082391356636805588595478477555764570959037383502837644632333208951224783961710192933031353016821775682807787124019972866713579075012110826040741796274409291529120472961574353522753545786395881033052683133564487257976829684907633229557259619573518885974089288018663689203348608860904349620678293181124261495185886727927734169254685120987826150635611435464867979462465142127497440031035304221621044375679143975925385704571954141235141462587037041184174594220061105616882585664716782619952192454099153497151535475909754492928020250999248400985357539656386954578599541311280516160747130204388973249633040289060823365256626798491116193536750047202564696847067358070926069961324060178530611220263412166007403761505339953614089521716906981938762046419331536891189946556194526773863908578343832011368041062139187601530815382421698931890175148176206290140303134304992244144482389859849295206352184414850683737473053706499543353244210715650212683852828429804925369278737470225877013119561975574623729041769916362204417762568080577403567687449629829674181183447269349684874994970151368054107250246605837649789090369606747225595299491853521364201462990796217865081711711932764758712947852849522579504422815667296630393676823077065684972381757858750545226314007569192120361045179410720791427296053397775768619645770477370045200655474494167617876167275034123499408844750401849720643764815573790874928023867411223764486192819934744269996599212099031226016436227372233143113896393491770078098406301175389757210852595424883994114301464584074122659177027435703574478122775655813706583722145019919553110487058649155498911463565046523668824162361473726529049754268368944700384833820738755125329439861152881423529506462840224622930446998142951845592719871989432491635065028760381517027071290926814166207991826659242711835911746541034164730544471474324647098856566465794410039628598953357255936858055449192106405802414224265436468465433233464291745005947686195397207035269512076447246381965336945569392101934732048794178375422542847567460400007730563463681419936580380286198554824876257433845589304630163802290837345485226624975750709658410775605478061852284664998390854252430257712570988229525463048932165516482153729743699971311528797845841073978159826351130170284752266534854834001597277748884189061891913417775715142627602615989967375763517754623572825704883812228492048691902465409207539190762058644026881403070621734571494209225446496995393125782227518683805665540076588941647470578119733675428855322720480148099694828741385800605338153863663328910620142147780669952421327761557547912233043507870126206006713205859320668720654945552439594745480643575490362023248439381239174356428957094871363168637782756997421392401965071319942776985441431884326971885906136563773714950288722742364472744664224584541325606734135841720203957983130792477657397834914051318196336903421736522771435385967771228792938216086128323498711462114390493067828535073746674086733841351912518269662400581481168834066279553733253926284841525785514185728927917902084738765228337547690753803499356799662499261738986086011823307104606203358381701894697717431662620150902903650846178301973126064275797837163986292139268463115396348103761144126965559649293643842588698547369560967960360848844788694485802132040708241976101790425035360864847084696138468631214615654385651022619350725300718548911946875760041118270525122652141490324522338867899697520244122123134693921231244274107967584091008342889289492354265948412231700302007182834632340893188580784708506034120422939401475039375192373297939778656186162291310456098461342127202693185853125846884353827050532504500044012664939422414873858860365665855148506008478122685557767140375376379210934404656749655713195505232788319720034163476343290623353688376974784661519129833561265145775017947921283065302561719467696224050601903974202047684783762600241822416236501855708906905750763685182463406648267563719648949219230903608146492764033506282749931387773572872135281380918599497773609113054365281808745697759519991844220634965245417279882970666673514731516468221554077513522777928128012158411102852305568986537465049539132083992678284254845207597712006899323309587588113204787767316472841632885059677230392773972930448335202477016863789366351213775270791505180200990648142907215415499324943226892431265596763744470919260331666262766078515464415393765163716809991884330046805121204390782047193123754524616538306319288050151884378134486145809643506659857234164960935103723915075814659899789383836487414580260342989716964473080600586397677117814481617533474608545752633084923520714199310392789319005022616774089869195477209321524472097926555073753662911982528507030766951906317647949867160216139805977974855257711502816709790918505003797136638764077715916295657087760531335007756007371818150746919141953066353204153251257129594979037759959237337616494988039579316525377375280348745059374000731728976525441843146421892681546814070005003988487579424410924308221699390344119595835620232503980447425592804887090107061087040041904428538003502798121907776006685167225467767854551144801120620914789222287024733363983767012956767698417250916706287542371744915428988051218363019101588382225857125945504973968074697778815046411720971512671698770103858382745413522673831140359764828019318854414303633466046808295831982535847458872803229974198475327665294406586371862670168203219699585604700712257516952791874556850235837348125371681937452667230698392204813007551080776565046616460552111127745622029767111650754232704108442720149363493310800738855240704065380696028665316228515025857238866779733068697355530340959601643069252596428764655025986170383048432261389316249164122786759871453171552647955675698991566133698555091242800857523110308686440167758291006411651019345311957056469372563221243452765760053611165493632590078307800333926486391498572587893758476422065356174794070400614561419023633340532228103559836031898979123162129665480784963625670809436194719119930863000778899530716253882392105559837083544748304296453996017496388236902290486124713804908843802555157236300387892572182256217356263076010568297192954450359852798768490688853146821971102230934861357279947206081848433107155576215990469261762128229084516606236136954088567329712111719117596806447857150507723546688539641865814419422044976822825702673372776971233032147465265766579734014618721429249836826892646805001246018718535932701967280924257821818994190885427073131157982670594409980803741613507338015791024386519478868094753120364539036541796636149172840633073197231023448598461887387753665306384949803969641835947627383283593262461299987590485336394774173416889535627825222489554659852752182498180301995066084515387130056245578584694630868627624807264386735342021222576565908476424707409803947751411238920016986036699244288295740710677131778658814719430288349190278518347643449163793293175597482992664685702760712867752860984645266296618151253762751502716620407648009700734398586531163089202830472804153043581017053378662454094873681483089210432455746199528494172730222769294675169227581551778757948912597826041207016741319967830553606795026001951850214221375738589513128855624927798381190766362318497071661225827598032215967709990531274299588975835173230523060503256127847397230665183616747349730820533690801872735164685731082222034893564146973200543882808783007989194246608292361146802111724739965378273521270525908833386470274567493215898275842150312050679198783059564559941101986123124717277053810732095625754975828539954004111747857149760725288037968835924009338724401345414449918979348197299505084330782833579085757494553683776778639864295882028527774157580075497568718020056178613217231306590767666101674745931051279795492229426755629053111609344969979957597649304405355418513014431123627137898715087188733042059585266675984516752938668070596598813893395116763714976962265856358213925939382907735520909599014391045467893564541816162717673107398288214394460189762067958502127142325856080113311575094820747498169929577923595353361488084851759302427649079173160614004090367849382879940596492940626834759463105731765091079820368480641997965804962757306732788855370773153217820832648399720423279773001714283703350375232890301828421533029044526306227402049340171273697051933088189613872768862588007099844976739438004828805002515873308726894238104682008216187235286411999374628502480646655579275704840323411486610028131370743474701083007484257604555769189684400073069432445975672027617576602029648934830866647628286246542671421901235259646289135371169222724260586221759509100707668106634181665630667527262562326114277058677145350588999136178143712093895696546978002700478324149327198295504320997058765571372940685479842755141986552467046521098467709279662468196404725704566713592660406309045856972070616606147547900919456073811135585874828951916559624477347651125993477763376593074027518406920368994638552782280354567110380856962796518898357946928806235781108235001556550827561467895994629329355566474756570792821958925311323265521396652525962393954975930028875245465034453752078106157707015853859909706392321470437848869595266092086959938065621718297348589337633119786865467925976743229576880792943567962436039526052963985445216948331512940025230810938100442658984118674064391654903046111975489084235374775065517603690112779882677622948675476833602805102468600774811883233227095081567193871101700776182306685171934930708199731090914099325185603349373948635632180297676834994581025372643865715641631951137259499793978260592093641369153561984665993773047043316577771913571876473689318645714147025083996166271201921763775515397791243020480382448158679498900168868731297456738675733500218875123505994439064691707718068286996681126965807122361774942595921694762306693917329973157892648916765362359787739961874727899926074058024847271235485450382770465178226979636899377761547123435924807910032561005009065342780901155555050040349785671113809662718892029115728237787238518549101818611484439962133356094869104637907368973021816412105602984954280445710770359816901531189536338364402077891467393645278111765769758797312296187779049281367312880906820240008707961276535763286541066685507712018469463090843923684726321793900691373779263780733784445687365565309765268054153270361371039096257171740658735872905368369753508196653073327438274970177753191955225073106534231876816779757562619450897055813311015743228012240730358972237901102777763831499622001534895274410326980263238093255920742749959372205713005234871324173803119953035574558212197245960791187596117625038310099422634697643169666294189435867124656147134695130615937896393865658869939825848431918554113760252904292314521782155256524208523352702013531402179205325250124217894132032811979761300106964018951476808050067824098908636714225353414918046575713934194496064030606178796268191624587031486967719052873705661808396404835744520424447340086066556560457385960781829773395414691533362456311016761115958964749183644730165534285577237546012607716764747562239792572467224224221524302991099230291094195508429643485338312170464354758992395271515662458842890879568434183851390083068899319490221560166388803278413913816314165200973245735777733376241776940133631646556051312230432132937170465385169571528623054363567719194302422400558987113976665362180408113513581933516868865098084843006063865849778087416273940324085821617830063340410056818688651024853799905733945894965490456136690139575053292549393889079348889559853090195964402920921470481934190561078352717433918462883328257364052673469341875767888787159883554050936379474428177658914780883076025190723173791992989142460436110020792178902472293851997956565787366424297585625620622620237375648161191291556246489161696709809208239598313295974895145066588768810262941281440382721993959112539978899021735060507713720756589362854534848802045411627532178853512244814757412023570486571619081836045071763941173717839065220240750310056326255349710289545519262769171426200755038813631281338164762503246551947884876141329597912091429159708605803333488104199552804322004441250239874161032887082243744044853225807346080196954438927292078269921798714596704802854464167792802800081364947804358007140366200353670303128322919388231153353088256605983015173271530412374559053617929142142185750219248871627924967463336096591475809809459375288270263630189226284536959959515569196555353067013513174507121219491337767569555850933084748436168262157682162801451254361817995630068300707358522417291894583722165383035829602861055173049359203106169855767752034978681551490652871574651109810451837066980015137835759812851049157301659806646631325937102676658083794317400351985394042567776570841665683350727964636367033750113304864184673633083456557486335931229720671330117918751377615625909488005436623552221434820900226323698095595231562860290949941372336436972751290219943212837843124728399988862236456769554134463795763708970608780741153656991855840897053529155695951238931037752392867736082986280543905296149332856004213417412242190313982223943854720147128292079456935227247837973538178376167289252499994142889652072242557439817092584499361420152277794004686722075532930128785832917131984365094350145883285469326032343225832675011565517864816209253827623042893679733291450504640146157365338200290683261021047799261646088610168594683333588976702918567141720259156889791032569680747047134166285623512375348170320163993963072594430929181706674113485252022991528208783920461876834805898961222577888977365391801434370291471101164668512319729443469224906661274947951534886320102349847383410594689444427162480524531148631229888988606919315714273567293008259927164057252125372266560894597686873501479978632837779180055502480696966490438108631901639043648870997420011253443651137872728017923336239923811560701049147841197791504876479740068749546999048843833739058766303206927415232983549047442416198685064650797993786394841588463105058734422303695951691170258070010649886875425279528815321721178402367858159515018456999252152944924005102647295078775540554573893412793978048738777456236734168353250718719786044311252979612639648246501019395487329943624900438033958002097413010203212956438767475441290036373732754869282713790846676356540661640194602637984589771848100610216010498028423465849739111841960253505631679710407392150786479035464731133319628666379250181749132236787964171284837471664330527035337362484537769288351693359137239806676770910059666059340759879476549203124186729210834380603345997555809258773700070362398508818325011463492279669582507273850980303396365191799071219195892901603849060507775268661033150196537876828738981350858064782694052076693012783707665682632012175906195861556189251943687064954590969445498634244560154229757964759801063714475010366674155209744066886671367035110069728726044364088138245231223009662511195596044262284376065538487276650520147424470137285421002553520409448442996827452668219198647756043148013917300980243040987200238228005369416995936973304596318511345140835873722111485231528718415472159021335140625317754598761824081422164919336926663016565075413506400367102501443348904198630441009960616513393226744230585062982392045052854254152515796120525277520142355697631515501373477902361662334084878565826229789297925261141412666891258659043035492487288613293820584621272906220652110350219577555393666061020854749270383795705853407887839051976737875056552894086048452719984967568562982655403022097309745877586634167912386597175275961970240470072341510520026387176247096913054630195883151181271983321765607417387954809275496940666896606033055907142160648016932993349035426204553781681035787614664351108340191050788689072335296321052265170412367153944742363598271850869505459675499863568071428851407873101416744540225983429710353979326661890039413078497034618160890609246102032240760734128677094620672374625871494049771099537610140105286611309237482948848821766879832257725273997107479393030312268075777001217175446541509461072723824605912742929022298041103198700780530346109580879248734509477156286284118731509261759087270521632117338215941003724286194205329319993584462740165506691197337539116065753767170487535021003224842824946669136654769182527471587734222763809544466834118076515820519244055388901116268675243671536228964138015486473054755489620176625110782156730770643817835578950751892558503099947152057413102509629554118403956364566863165033489705439951197022577677773678468165562490238986983721129554540106574313586470180119534171643196629016166567046588110769385974054901649642766222651455728791368727884066138380548793880169949169084326890854671630645057583684523810305900981360345538833610356617318319345242070822450392932906432052837494520482119328053251370051089451339912226074687265912445697803467819028359811329044038646593876467375017396542961943361307340656923401929301008551734514933838328002246607730966207385226238794548157747736971710418219127962463561793399697913716786776422985442885528370280934069731956569844830593519703471055071469905935302985608716283655234797970937689320402430160139093744245809646029596840711553682253524270860101866309929865908111039230379567298372963141486949050215252923586205859773351875284339376478824189193795278938932972602635039062142834290881251675434471699454935973513940400439060210804692149766310064320776366090095194946029236168243501328719818126164202610002123286826349856705848117042614830179543410354307086224249909044279838689685217786174766487695015301405490508520787060493038255840246875964371734464350260370175371465237716595810598211462088859743102160500760689342221344269985231139281348229648191817653445146491486782333624406087984032741701240409265523162684441986271240830506514487037852328858857742334527924049739963868895166629307493843013691581892842690851210222710926241542463170266573560731922154125031505467967874721657692297744239558455511032828663978857038997254102604469277333282011980428127300541031489451912901386572272283707965408676082262373473508151788310546897834641097185840323391666320432662139843575717223114963851825938139389239106944308862679784063428329865006318451725606074720271403671987981953426863482084338690896678158833162267847220629561629995859287173545042606905767364542148928426288407407557879715230383438783509891420939020130320009480038740544157662751491865347557078736276835481373227726791806822349271532300653297697918400207037529244775198272927375071661165764818095700394094719417562454331871211410449240686931715992635626252115964573138934016523694084043877928015307350998453032310808415205849570361789805270748720542769068168486194939530284793613896407903773459883699323896677850415572192667697409667840809288324552700444782472626598042885802747239570274752981465304861293085316777510157836417293074636351011259708228826216388195058376441268313024062935652903607892280070390512834645582205430454874517335297708672619379425186623556099777420950585378312904018464293748307355369390140239365623037032190934796373746405551174178409524695201660456424032624194901460587767014165887465536546087057466619416184862967393244250641356869769694095395160305659028560476364822522655057451355290756883973841704465009682282158451380893607721291852021659459360165317782822208080211462995429840664984910093332877655426363415391199053258816692825147385144712887690228199113076871645465565827306307913417911273951189705618982266915991751559087090415081055071398654938325740027993365829717373342129016642104955989819445740533151052145481481704544109601476178925829166496332948592030817001600062469570168381783120887303857400873073225529862282967490555171822317717544420621412881137948065470329132766796071234366655415897514331913751307416408097694702475323857775321954184427832693610225272662889631866687408447890799634288782411948955942872132650801239916825695951463966166590394432674821432493397966625284135373351685261731306783557970130870286675614056567834059740880601060712845352209226543210402772543132194743677238239214757116029067412319883626282455256525345087144720036379833469533270873039182757810334387587492846565684428563075238730994909681092666191837955713420340976822766338085177463409935192141215247641617903858975526765264821385773921556814070908098715253753104516456403458108179922009154160146785621196078830405459439987058907226233744761136799089957307482090643394257898291262807714511244627837553376621950411849341333353488494040822619608392424340947136208631601483004668734108463455252562724045850922473422328863123317992464516824156484419651515586059479746974675649315896827808495486175369532418691755245592804802256002784750302792129443683996635252351296986721300754881777995689948689414976809283839756658486418699655931132549462108970658752802757952236178507238911687816653199308186826580186811373856109648250783314537495905612132453322906003677397396338412957543139076259102151153162787776913026668992734740718992314181037506301473135209524136691605728565770130775054796920259252109342542109188408927784855300908195850420957098305617171660428644988839523942365994654439390210802168519539108930761370451641593178330381513908383639152709742880663840128012552917701400210218664222129474245878643926016927072985032120532862805876247020399962096911097153671964817975812480275940581513007480466024466107163603323017594386695560271079186972806885907957135500390214026579122243360617779373345185572737573442855971708843877976285737843794232258520108346023417114535372772233906127882054304088239018490651045227416198578343604072268834221465259565974079984050544954136851189710569467148989337984969550486472927580148069056460605672558364147348971801842274215053255016035375262983507867516324692221792939602344899722932811774813535436687712602397605990646635813800092506746492376548663361422676346669195658424814118648438358211317374390501591474283268237245101875304520930097434512351697386846502766165612734542352133358991295404342819651159451686469162807054904888709421589239885311733762802326949924541578615711749978473297045973501237216471794255933067047042591821433069866213713210465566689714716656539772830569181331206356003170307655362887330514775658888724801443048749356168569202005793245063091297599776580221162908194932878236856735001950489521651508231863700679569257165465451559801556696343370590045035496568235580865212157483619938163624031288951133847637885872187006972843385257123350009216795639372442737270228159575042788213030134028504881293370760429292307785804743445794394759636954643389024231621613146020563359103163748024037623831195805395721062196884800402638448121604289451738811960575460218896963070334913486619100342127304897228368512875427139900263486496113394078423184715374874403888298068985635346345711726882828159174503750037606858335536524358502243785146033783250131756565208671141231745453120588055918561299886608321854118702943327861707025172712689544803111252090547419707369720073497543216507387979785689116044515273668239668690731895828884283094712913337599341635531651700808888372023284150696292671700847124141043313000740047279831075553903552525969950750345640641165552363930609785251729349919358762417935189996419756007619191040793090786755623596194043366969790370583696599755567310274177919373890170298345394621904441124170989712541756197612566604299663798643899484083878332551917726595117897610099367174424082757668382103330749079166925988227256592579084187924526595493518194743064127040801526779274861111841529208386738255242676690313699154602668343750890358241967132914566022135535596440714098918951124323312970826827634806463754458370346875781526981358598009144615944766253861772638616193149656267071202569413311509657812016322476516853418627975852719118257590784923719094816593887802460531351499334830242786372743178903507624445486211917608102425145941089723548171767028704368858227529608819455062926333717159105644879921424327991922048699964229685526128389087066608866492199694231032800318453776259342549533689330964374133683614211684722307036510536982095255103447707770464283305285876006992611991077724999067309908503396091083326344429619490951958303158047138031612843024417755205078257077740108390867510939316251950259390819064208674439797612511295430990117782115190384441872488949849598099458852715788999440079569914672307384794810218428812010775898067486926019615629461105439632024324167368904562513711160917578879525547756264210580185099972776456665793070104676167730977974856470685181040500462760879361929660498126983332834305964025361018579481718880972291653545245180581937594975959780487210942857458821565584198080470450657326879609287989297291273800084241327376968670681579167699221121174824747567328588266221087609352616190321776855358492691604343276149369201168254647284586640467402648314799979786740291906641739677993808846067218881235746034922233535006160026720355316608698053850915057408144357434874258551682414836467364244893836003337038092987588011180230319380255509115098979308579457912548872355193126606659909911397447193664252241706474037531640905519389913404181947723521816915786970267730756661321500690210938177272511573245430756530727182060313051480061389596285964840036726480413280871166931736982645974333434510849690093622959508657809617420820545336331915436598150729467335028610154240340331459210301803806206344663415964426005026262308055563295284208995011787594537427158082805299769142770805077624776372246938439065710520989207628319296008120492120135050612843212879270414736405844180080624573432414760767484610370044705301348360461790811533627921331630176981332156760038826225371372847846860337606543890494907496152808311549305790143740257732320448768286821035023367072296903470059194323431310591677007413645035747018630545860492449989165077692292652380654900565961251205221692618607991333232733000899018096151732725252626963053806468114549798734367170862396023501743512003162098689057752676347183360214795679330505826785815338289138684842210948459267577158184121376998575432548699964663256590050579149937744480735990464218330835328196192011662010398841714861502953948893497604928829128692008674749391665286491595314683333486837488500103088635214128894642922347101858359740401008017650821424088292519191707457223784515200661890181325071495947935172714791305421650503286133919737677970636961132387402496304471220150102300082616724697436337144332247040339937533872568797629526950769876485998235435393373378771857512328485331036998043580439457926482159073512259789139932045155192411859102419061526444665041194237482517883666585667788856532550949468508135634767458355136396352096504141431372109488536157515694664094379309608095113691316660295948261852554095682809798371909591872781544091375614457142555374653464770385737316615846138914425253632034083260637295176873294708673783714284341995822973909370988098280470591029386224910806210665211622192528627723203742777502485245482437029341242057937656034022026912020336241525384675671132226714959825022584036601970882511355635258270478228471137881571657769692231236571841515792615321475848125694556569251523999968826778610897358750903137139401965973510496463666265565464295235608386646878437391038582344608992258799510848268341704967337859903392580622534995125543414748960028866024376074693723163609113855187612497035911950963181123161222680202635144962007102471587789539550171796023500555188460384005388284779077475268775111145343490032772017421696081652392221110442477758506395977734920794279306290059165303487456037725442424825074139502381872331318141443547489315111628175160427214286299858525948846433477564132551619135928298848161967736366060270113625091902206524830575319368419155621953086124508996769831701349508581292135895894555786701212186387942871213376373349369257883362317874372386655367126245669133426907293595589662560129596491004974720505832431660969468324302301529845956833961100459794557112575653997292096366374312970530521694778624514036231179366020122107600633639118030109664203140108545287847291020279704514663547491353270545201734069119210891763172106235771744972465696016206240713731484998530659612726323147043986848097292479896519061331240953728260287920525694799464114026284133837999352301330050350969235066153805851539950636770883884759844428269826264255346890861849570067766882765333548437408910249159406977159986074219219654889883076335609329483016240708724194541522194156848693472456376543499875952369788368919161058822731997241360702067804877371366624036709009496005800679659288799050001434496300611246521785062427944040660935190303617235581131260492636350267492280321024139183393499626269491083714032771359592669997359558263545978105585496380772319238983571710914736003549899695507281574417755170864754559576151904105948213453528718491507216369163189204592599125547906727551237071292533727221394805045872823790916243992462592090573430494382344979319492339582940374138113513485402571385477968828223965070869099177628625459498205264867304442662167276507092880993035153788185230827276381608814923238981731594516315508450518696739175620992597317027443800144858707922622507997510843690832054483067396767140004090117691452627395502481031706946857309141793347552357398124222203418189609279886066327857182660132657608812965478857535551038169291828086342886637606213200529110208054472246431201478351365908269171021329489458857398886776541765408323291630424652389093469022287638804859725377997169304555816689721066106836767173811394552077352928202216452833992564580337485646862871653161997876325660548116757331678633875425876545911319179245170176841020909227278325123475375744641526264315579525607792081869768042366407644309666444977768024412107994372961369572752020995618079846692497707562983887210500337031448512960176782165019305490682917435212600353064930351152899793230815540242614714484256567703453692219616706512021452050691267703575718712765718405578846272117517739784399460748174341662151835682709623656170082806152036334648836701616158480545440776012044852573090653619817633157122544088807965236525802238974253561647843772009550355320700635124322367805061373340256478004206932236550601649445802893536274773673470020684976952363541015720767721365666005479770777329359706873090237807033402691535104840405324620936355165805484477248869542072031777614069473166151417266019134229055169683778076569974459279242834894503020503969717057077043044817249109783934084351439696503863221028782630477396644913697211510381763499447212622437094701640469751664862291677238087883827593535406897601003874936933758182577226567646244809809636948340879202604302705628543297906618187368684779339135962239441295512502394182042210353599996942640446460259462383312313661817928017440038337273967804942216010303258316064874040454876346596469417888991340798240024952177828659746673404541699107531645193798046880007730645801215812738755300370660993333396547721951827861027250969371831061216026965519102974297374652403320635892042540653301830801539336060436098196867394827499742700526259018429444373472483906742904960132390377272908865708152949101943871492446193617277104173241832118532918333080510683984037753636329234005037371640398487918966085641011822646936058409755006937100838747195328865503469579658967805552879284598664366757523257254883116446185342485183554484747789565651987729410750809628529600384140569843815896112821961554228473473836793419585105436438011023097090146609538911640753153610278708784825484963690008260123300790415109614787018526968679811669813612468958527299445460632724662240596649302079373951969351068769920300644300648676285736587466349037646242894341412294912700681829097131187050814584143169650242170970108699246038528315694713561763635525517592834251623088774795935688690768772624561668683241086757150419417848833869425108660750118147231094984488394284717334207490500241415108540897526921721200666877769399400104815456596879957469856811134960464406319179869543129779279222003369168379447344162789404626353888093084781642478096623365747094195952748060723803182287807740667428117522260738561830383058262458645799997552426665532857707348086023887253709484831714874818609477121989264471511511135218061768513755328490047798947400321663613665036841420260542202550521443890753615433312675792581096434733302584451983336093352823814425510385363361845258699951650238477123332111648437953692666735082395692225185428193128496223938961049368113910970920604935112514826993411084801568106684895187939441631321791949437197997830186242171765364658574918052478353623289016351669035130846132424087535271860267899054559350380583822718177838958065321512397555835717325854027782390251388236745860186516904118619156451810202468188566935351472731434098282352342036450157857486241994583390656127774627356876799234030662295209807022397472564705729865712752168969384703856248872757856961279632846793983850343745741191475125141674699206111438644322758325555775246875798613935601595412374475183580080709133738547474165263356891783535136360694044759177102758379550414007688950292627819584812859024102279372394916983208850489141549840482291133617139836650935896831441144742068538320909689979016277933851556139982883811308593124509206148673722186663709933092505288063116421658023277506113425531612254173552803417821307922731447367702870259351541605149052598632023080117290686538250985872930370097444354032369271837710984614768089165308357916600634552746228086859147774450778479044360420967818247933350831308690615624738374713169204488642529091642839725774371576433414557010330966701128810078747098129640513076647300326997662732599156677285669518794470810767117677618968221173493371847117732659720890215237919786901687808525176173448706827441211734841849243158209486616948597664055349354920205112522386859284645883479499513409684243502375535711683383274832613134075842543742578957091513949545541602477787880844427476293846670818771268799577444878833651676019207272915456768828579247909529180459089738161844404266314322343027060824469735370819439377191119688338091544816490634219347165934022409525829707968853485902210166715767563966768718622666332529766743457903684000559562934976250603274804406071391658410506636088221218769217301700555575484833435475750225414700924261651288467450512839836012740213423990923254852178722171817397415001123697367045082237060401409526454849767888544387555409689522103243201422438816211447416241251387701189724995784517321608165656826418446522470180939271943219571737222258214578807602329815874944215629761675749467840965331695028846643030923131575479926817690680898502706841346823832575264234740160938040510888739101926770459729185656098172061936159992988501796882690373116810570236825855564141079072891775483692210621023749015448770440881762257729448772412897737941773807489829204902361855644539125518820653175456435079474029361816097444333995339807172999676531643434196260092983985151400496547457940742611802120960732606161633497129533471075949266093129879870970400776009590906193657232114672630620654574995149917875631528399674070659336988192206760573141765699272416156703523827873870664106047753849058812363831161243353751246231977258872967417364808816006224001026285892900957982253190777437584111415837383137659991072712832916642209569549565847770428201513950066474538944875700865609378872657230804913653977215873784185639213464052067637355633073740070842772268126946908754674185785837828109852098844619095382606919567907521972977228663743429991251313352842202106379154519705489340011639344556987171751765428991698929577646535896180523105822395793884524230164959323224194382370411712588170428420898343688668799875745807893503329693916658982348613952101211714584236227086909472021474777199075566930300268258730244186243554942975243472865752044514964164501529736634572525084567609282487098226673058082678963563168311207371243392387390952844865029542790317142140404845488513274064527277846015725833958284864733778515637712735311160475689443875440715843958542479133544107798349390394197185997381609443052022131570485726519795225033858802981377093145221876791917613339325882243548490034143948729275899179630987933006305955740156498122359346835877265474687826411375420002939285821308322887891645648057279557372760893729434453424095718565315784022663674266684549671087761184896541602953165830448399581969731676195817526904924723402758527248057230318489081286524535910659685693660065456072001873017929453774107318913174275856405959683080815421117825162507795974041409412682130334890799098611916575681472225905601062209244875438052360198441445948657759256172925202891729654084532351203867772802272792956437706965516664275928637061970691302258256340654404835131044990303101892915860647999263083439206738998452186485068929914969511297983575650855469219484629809363289880176105036725059587672200384922368879894234203686057374904799563442858110989984158221568894696308579607861006197195532227461195904905354450675399134396966746845211657643529362807179756547581948414518630941725239053802352382015634270915033160398031133021987470095930082702762492252357470969225485291303116982309069775351843679472062293458783554218566719762821254660988110293854273307730921087576410455816535780238144346044407831033720354560892218999422207643133544255318073733392662506648981111691618823794745367607273419374550416233308850312065740697758679365425209008543286747539449501191065132502239072616495929813384996721717431091382302341551830860777929077325372971849565275606904767963954892547483703725831749991151801354391959979341281978324939515303258929544132388222266121988187611284864631960017803294394364948671741957880826605921354864103403984414908486563973694358141566640794925943822825348246722643741469888653812685586100291857374339989208014883380214912630089989865332887005654902433007586382982989796393502133125734297829887366431365530444368293304675716947103913286893752660506988819746466876996030152167740075052933363003240703029561587350096037099302574272264099915186295511542470480133112048320490071823876622163979190505099321500334866100262360357871228445573349587579856462066347883727191997123642363658217786366104613602080059099399325426292939097513076852807971590645263953499703930383009064838951049304745010694563352066419589756510155394139746868629145217906721918080059261667949094219731013851393192768237722220164150118424961128372568098839182369256618693856006240106593443402574210199405227942183156438920691451345982623413237970323388780740397475506557911570227132005007813016762471868554512895269896018211929802296161579438619465733952702191909777093589313371789918836643566865983540480183516615427742657626117142938305286623506080577557173985537082564242218636287089655410117612854485205140822231884730075200315909575111015597186353903884283535134925469164087992819342171350606040108412687193492062426494531329570646408912487157595407496828017055255337933835708867013045091385950718783156297061169801496848833482093076500389505026251255765181151367393979461227765614773348550644664723879756824491745981349677295426347403213594213585969735016169323241223862496673988368472876189105446101301119414844590503031196555708976583226428412593266762858659965238982018645244246376830470454047360853921353008917326023030356384224012526386966779548403992274431298512711987146603322477014236342798909730574283602669748175686582924696448068603367260807431413493837341432883105749453329792842414680915294622112271037195311582324689633881918607534483001427796878017397907315098742110347887225507925343109441306908146569805543498377058660126502817342075373674538270575183150234531409792187764955417354769207361813155022082413374689695551106674713577200809029604895278498927159467993713482905480919444159941849658771233221008141797362848159238443364861613800319862052856739260215037734184083620131734291830178401463709177083493852050756000573550519581396878605830353303039748075170784128548659820309926956926857692094840827326252285896677467445347043830213887993833030026213406312657393105448396530826918553489667389156346716063208905261699630882785468800008191733048976240409954322998115170198426363461436171839927960876136261140660925750347224263239053424518704647884578573300085079545977589191726845153590361662847670785485213952169661624514403398301496205773245417826129365556290236298323295317443163033533621394431579150539684056371045817433134367123058138630589211201057794106697384431536715802483118210203896311251852415271828419744172352360059875368694282599403180320346794182162440903975077135970422021608700809508256256135935747362563545594503673230792195517654477655417168194218083506632817340814573496928819050076268896295996986368964024822767873692807580996515691868161829829793723601309401252319603767556810900607278444859409663848692511705853383763138804750753948625425993386174596039293485354581952585760904660716904988944752810968990614483408941796743111681887347664981367539876941540450932897668389462320294731139006581613118827337714050488580266405953897801498507558916088495202024606702162662968929865216094478569074523818346736969656324441332226037802696844463314116954333345583311679138094812540574993102490349096962611370886173107613447464902342604245557550400856721779707266569576394278281924697209234589799905462295930323949756773965050649787491601469320779034907562766326859074610327518783161883678194948839831079927298118428045371447799328773818783908254989841620985936845913424078553316860419368709273756005814213969605724150090633724321457642759097721787563344171916545185635944091855669496154796640240345895149593118875189917678664253459566827803104836465373108040644481716835504456154807981773888205787953498398181062593006730923133201549665508137760621738230947148364104548146613926044098859264720374071330211134880764793795777094037170632630263525587302578041145471498101746700291160148956188464824418006150364400408205715556062226468799297091150855382017545079727955939444413548918875548031589385331214458597186550755989498346728131159870303703312878347400738263286242414530239662642707681478443263581988231571788399015771297669559125362444986281356768731167464391640401366345530932631199656939421805078316076098998874386553639768366505060568713171876776353327356011095976980147293269053059489501561574639530848089283292855711895667064880168627610619211727536248404509762617096524299703639831998629511581176076124193863914143932270845691549670804744981143110484984303404995187565899859189499829355035306489366040368368680297242763302978595110388578329187571204954490051368187592983411342418024337444053712585597682629160007533026348617275166977685713247401250782722183184362296055566341561437285917627108420580905659058157704637829544887110385677498738623958075865509360120610677438689653181008075260335127877914581110005580271258705279162039939708966482931369509878975017853938690044075836772107065965876000922061976352459668401233896950068628837692243798378586173538837503256123061686133671406509458944100060077913592183629219023107612872764606714463670009749677142889170801142376270427641078216723699421019218213820843999239821684049031811443773398791754099219103085007607774350299267974303714374840760453904640911853605124149816560458174899281561255888336618220683076835011198212157438151204128094201244585018839173093075148439573341972037131945814484858910788574203099430880349965228416643097130765355935736737241642988488279521714676600619681637164736891506267412502406004706833757485643585905448663893385756655215680597703184960129855630239313954491602773541610551187635007799370449239344191789456598262084005714279588117070773044133043930822120108082799544217559134973959723726488453074229645587861472455295678773925870276935554976311727158434732581146450648132391903675971645325177411863965918675244609431320352790294422159549480996187283413703438089268404602829503809619119931676965458166675031410491880564301500635187035522131833279957767637689677836317593363175840588052278566204620722648729126181866336451277519825842050208992940517872492482928369970738223770623246515817923653317589215963011364337450477701620768908717666495659766174151127879282520760883928855005870739226092847285673347124589317071912565909962392620116971673082128905082902969773186496087044897687481926706598356316947731571628775198137085422587927516339345038181097527468756143028080246556360399661789717811818527571195143304605720510728051789551324919324927960910378586380133678175333314302783917300607128942138966349549849575792106503451680645141668240559101992901877510280290429755214463806986966579874519398816619712575770876433951283210957858045552576450194921855436731238774971152993202441007081225166520839054907243683524316358311513993835607661201270154131247561929118468469610793759483670771642407642766979747001834012857172972981439388039526546994956653911034197405666940540422577640476165788374870146856256515236700442678254301498210135153039439440967588971831657431471706874508779456218574091664663121620804190178781365580649757703107567480733752937110840363940376658626577134718370350992695410565514467054482607860866209988638845217783849749312538068496075041825794304972823546819981092945478493783778507876890267286388707378839653486899740222607280998981294571929462860129242802731325183954428525432047956799397187420285360676061024676340202418370169500966637383248153591881291235856440470522143678329485971398740746273706837766289797332730925941953584866522295347245080665461432529243571556090399069917598863121209331403714228465270669334170830828996426123320589632249739023816695921705418129664806591198417701649227114489300668763718558707993273312637966553790648958223712021375542062406805837068263921572528555753069645258161145723300529109946811992203137319781863451926014989480944759322317940208585119093044413029008476350788466973032250749181594379104960344122936557363087291327225235578510186096302592627500972898044800959303626936977931362981507176440602646724034144431181050173322147054472352521475935853651738192547736512471894576030512345180826338797364483986793515236003106293505259293893765046844123302608674313902849263316432442500304515447926467478556051670035096909946974624693686624534399208415311092833358755081502665578274018480386571481699200670902573852096712753857227320505555302668786581552710267474039295724442598030993291050085063022050854766681730292090711435562958724703408740926304440969702561401941645796821944941548109146123847701674051553345522512363244204352071063494270021870173484286673352028864037718055293568038504654145390924141284570657328743531813965851471659332815761832730001882833284926872354630527694313949188086881322382761335731822751393091504767010555723722022117945144268476906660955052363267297088821363699951140531261881407968229575721544385681380354735582594034532746405832547629260160431060757279063897932406403931530095997919408673420667805331301194622995710677977167048884003871230354649080719954173813929895052997066008595067941974755143129546065421120449127414515506860282263201997223904610749424066587603677778720244507014666697398834301214729522710840345270351800440186334907368446124574548426158955537946224807765858157485858956303470466018540164575145313471392360886911806235054901178073400218530282705582997917288745045710926870344655450725541645319308407211520244560448527976405414839165509786936129250342028977550310792706233281271571957396863014127454010468104030351203156814364569001613986184038980849396502223779968909333306692392007553535081519843232815532754426950322783035589934227193332944229306072337167605405993861550015499183096838457695997908129286863678643060605668864175064630360254611489889977319117378930968263073023516817671113783205896250154222376491930391446068707963053176876833893763446292779515233647588452959488029975827661521854081014858391493365480485001581468968636750220618700551761743097924889736422427618446955841662081403142152989925346836221998378173679284348379259010909122102799533185164565345435611380657561618289137180011268753099034561372132172846957791637385175573581788692883543314707140435015269660195933181986996227400082836140069295269968706444770469499350491826332387142791057411670518760897420381594451389487462084007935722283297392909650843332363215041277285852695241465772989720497945455974748463164248501718757164071375523444349246091177782100595391826595048703477736211674079845281676129005650260942121226739077823097768546920654629931029963322262026690978147559937567213265944542262135390885220876599884544253301628636478483606385603130371320393511453943813438256737914741710594550479276368360336744453430203672401667716800652872640463874386577420584684927025973019781258998370827530340110350552718140872527396586480528297178096597475623236889186980821355178982195436412913112992877773250535707592439725115783482928279557398797074571338309662197640845881743371392865700089375310175214866714691243035794914651621563449092928280844972452994305285715505811535699731443338828058789431873911326623012360028914289015821016318349094239034131008330318504980064741378866496539447824189783684377190790768718743327775203515096226518819318788173628112202544424118392092783960220354073745327385755647853522185803433907371584064420733346079358605738808403639800214621390019995201931151977858951630123021754011830425723950912207119830595835247058315971148902326200635127886174296857762977336171164045839857321223626905367057837971283186259268897180709560486244724676774244324552403844804997880487283502234378184403856539606965711975987824920677422407434901395915837827558866625229701762090867796774150715658096707942809180705988260370441136999011683070292289740760661481506536642578856694273801680424569634259212555902178633574036191303680742636465917298548250454444156800334240054248169884897316030350368175397951078598000983048410450088623800968281408871502381446577621911978187946432558279621082380298562447769095605133823094342448178688270662209084406106904476889960312584489552100067021520238387407140344032468499407757887123840239265825177969745213491675247925030695193210425952019771396894321000121834056351418199537977324752570868455881470004041921337032573008487890952534688199052420140163617745356707707375050082513753960514933835818128731679962325898309297788786928124019647477992769312933693033327344313807340878882095055725283101949389951104028918323326191680065682213548796015259815299456035282515752643198720438307065054082245224551202203594421634172707491517281978492917114694895441928636625569899853060337773358798710391258496859693064034491421310584546547387734963799099326384404537568908416402720747903695285443284095810394949334879839258151436604090853941236914432335293028568445972890713047722411270710022305792808350952368903516804469762662362954950575045922422203337643230085227799658215368897675847713808798500052220026331406232108277304648685779124755286306889669537033403988664227181247719795436613198932447041643113883692283892553941568379277314023442877421621134168253158055304006428474681697201329476548840935196056072170846225086766531441769986759138507009048333633402793192932005032992331898645182727871190337240005140421256389483801334445844711456970678108835064073982784381827381787106369283457183880125800660952266259625245390545006534557897470020435824335498501722638433662171866204469145622825944989346888996349393855472267702187615891744866819229086259257542978880963996032242522783106057937154981374887433906534646604187794526973328732520645913775843210361948752797316400846814376567792696059983378298616606664020924061703787985859283683567715485498987595258045383658595990250350717473032964693888696688819864923712939434342828314554044685225717538256982532834029243802759707228113546589925192634764254770205672873325503971878614775514787176278167390102821053855598790780071951148213824021976983750175856393723722406891048472994866941860854666643254433603655323999152438019859370691665951639328870159132091333460383924641469289886038213167218499522445644737772639768469790235005667164590116423468888094427889465954411136319844069585960426802705251837045931997438275417463210341714323505093978851911988140015193074791984481217843665848877521011790508661914267389647453171455143165761459507400426719556207474658798184062176499371396567199132627030154170278046492127632432189551353965606480118414065171315719736330839633367643513859440392220469504740628274976664624957504182907818032806925396561627196751078657946287383624447304295281330443577765444519005555624263997369555121736473426128434234237687800906726964212598278547329700879823559020460513929862839099094602520742593928706772470532034180764907700027174949426593768812910131607942746551329014077035387922336947860131781651607315761184886707166010209629146419441641279984203387831047773728764230201087184996069391413592627742743075424174937308944196416300182590682629689711540876048274732238273393683173805414583079334872888291479747684706514474070101543045984395073112720290951607922763978890803109780682347903138481088546458084939258945081621509346540855386423273277000283108332444030721087121185151760714909143003598971609965203173669870517182402155329574082630317488924220505010524435974063262196428058682109154785892133955954582548742484963041002297551929927699013979554370377323170754147447782209157264555478038877408336032844123998294084849493350770692985935864221882394999672194984934108445495678820032057895948739470135496313204138003632955178703758500872031007802894266154953306238429770257257049830440986884632813821887769426698513502193026722172186233015821055672969840439834900002702931788722044307859824063106343321807099410542375763885273386008057369556609127720991574176432514265573003031135931598349467611639415593715569781015883713604703976138750307932719667349700381050854836825517132601286594326690071942667460933480481582295715076283715383667757735781130607314989383490780121738106178737594603035736753904398525331543917251597841426724102535191042010233581108260424857186006985273313208132804260257985259751083951627710265538158140140312186621929596367846623420773854536717229414706387660479796066051267394068794794920824788340826627058941230355237997114103077309644955147651709179125339537455251977419998471268705190931370728535125897892359195388097516795405974274338966449067575426886238540402522918548474930647437049029016342219351215053470865559180826264674431344804884922393514727754490331626450713741689856455873619046217526950807364618466989459538998067855340608930799645508266487276241161147685101117422996524524108370247774309878118683541705185903375466207847218926198104822113744302161444185912877813666820667482604357416826722137704044851870865533615774966766428886449104328331314089520631078932516214454398827122078454006236936555656032975600889873238829266280133266128596174217379637157696172302809369972507369505251996239571362351839848943909067719459448009620522918345961698820465358617984204828657743786023843048197348739585589359065790971245238298111341918743233912861445305313722756524561329142550336054297675935411428489822432051341084243497492044129104768001662436714900783668341500971181280542046168990983582116150759354367295652056094525635550145552021686408429413622136061370414215951265810518641417344391070215911275960874546452505776065012318282266366243187914765076762589859676740131011276239368529026510938403071404501544169675115523428608982027059900279713527966448877428194450495845527046283610025413783296076361080550298042231536932566425116645935596320818301622396550210832110420182409600162143075393596366877474517130802061700537728619671633062693298637164480770943525116455659417911050556440945212213803273451052294117952251151563180494174565973022353128001984941459433562468321425284124104783490106347075627353136016482861698680309381603431214330666527951317655139521186874515586285476504976222776463411630228287041854730359784470430981444945028506983298187225447807992590081092216014812049527248520618663089169956654046280121640993460389620667276199086931822061904576896292628163474294095323352174481892563128702729833377225871536880850764197965751006249765980590580871192583016265408254934782662185544671176599922567852101920790308568446229627819145535293815471532240870845565168637180930134461366597309330571382202640420326490894602086626833164956730900808582285171047632707147004677586953770683322374995674680486773068599689918034894503419156987063995140774251719903909198535020169054106913670801054487478027480235536173581388060485485903150530810755104244559652991749369552581777736563074016061789717410109400405846761836872730916702887591943621827538201440504980479036588452552712061436037099253567646694921118769471175360844802793128032391390474231555697824708657677177887889810707843218975665742766686251487531444664442751147736421974293811048210258124396337456186730044777841240411148608697888821668939672222130283377041921325793129073150378113384578824583335318414874117703381923340855596944300795324039928796906863911980242002700795390635717689604730963051517393544625515947370925168827135503193377155975168646578027483392545004291600869928765458188453349254709753571139188042935868096463705555505243729583036878920579293375731346679248038999952287497159046192634257939423078186788346097885609103672712492470996621969728814110247822940686203164752793319812426668992025847254417182087805780687570544360003910227045492938200059656859729327569933370162051137906691729649998862224775792886039110144003506652368233798785306368352184975634735824694336125770714411586968943062433121604392240284688208885327319965781070359938101711390128323306446917487610930537351848239101235624808545322933868444957799140335006667961442448234020095932805534722189515089403868793749752222658963666315985112427652633797907731650871448708968611883187711517539956137805283321821654295808486340601971798969426611347754232734798245205530744513769626768175217400079295643817930489309210367373641540957460534143758211450886440440239052994331792066377222471568537439540839640159393738415962412895743791791460243018599045472764952167237815869574790221523112352786255951033318360724383437808682864194679255537622806973356874238975855263670511819057834899738020803154229434190485727267932434381812494332146866255843899912740823879993324244624655808821261258479861453504381335202086899376902073154475933268119477758642240950681912272513757268057125993313437317290398821668334325512565284833956119646024533138004478212225550234347663429379554026664854197391771375543818649957788588964052668770592399573427101230387708907126834249686406001591897689200185563965464981236796285914420303983460445465297044019797257876159653559457890134748619417135222232096814412663421067416125928118486452198734160561559584711798177666963152664476682048170142488403299467845629474454062456471955063825004992769338124577027486887087511818241599460749776574316817021759424874491400480071415216042540939041220912624774738831703833440295819141133591232961787901172183788933889570317520718297053105130586800327650643725268135727215862896147773224944892389313271678871875833447793482125502681535527828146076147847983324628392620014501133279372505705173371802397356141238148361292685922863159288831867747137909473220817164835423112262156093422047629035475318762919552129179631917583772082281839754799620711622862674783347523542421201207988176430533755906207494063050598441693460556894404486447944405037630715541822848782450136739946236316916019773045275074552647584109714961598977265258634720989094897050442150748725381403853821189348346092368492611050961100672117552931341643979770381160670452841501871991617814731160803947921313517453458499460497144868895361331749717095972245930414330940743590105276521561409483487354475031170587553809883356657957127668801509714441105121599786785019215726161669355477583427157059229215676150367359118513017189629103883554629035919866451120984214948720960437344691596140756174779429110133788085084901331431819028586651554747564923022199780239567878209789987125664091119816820797469766189687604916198418679344312298690292594515476773205882669613785267873910031216923318409844191589536408639375689908609845548970621750771660934412623132251343597465476183900822648184262275769197446052549885861133339060496325459330959755190151731365694574813292762672121505518458104202193337543962068259644219987934728382143253549748008995614976268861209016940299554801476053502104806896834387244385743269885746871592414181639131261134464873014730353727447136464612776968583448786234162159029448697559398005111528839852055408824003915666259995930652914245460132410972629067548143326472101550657020505872881105969759096738454393169349791371175116071049746430161371537056848452093434098168549129562206717275659815578579908759870424862526422100622409937926949835206239188959144305613699243232093300031607199497646372646079235843541779210565953272359133482651766279728701486051881145491371320535710670071257096684237894974637580871558370559902267630215871936396808625183887791304918171737362820827440846014596445398111621089889809783218656927105354627916919886723262386375070735243661049981970419410846093964715106124729898940895674280307259030137064670589549473198316573001549045279834331133003458836861030782641035686658241516633972699202406386163719132882002066295560950911519945749836278630120368106867051777911438085694496605149956551592551569948680961356911268658767180861114785202488953030138878045194313125372697513362419642340718432379774000935841691690949840399445345688591853228944805190364596416451935996516628544092294961728872616713936342443047257861971750690154005608947263874404302641191595935573130236135107609958544671369774952493365159130642923653663797141016968642088126242341263032332786501012623392560290220846239166171144736974576621122804347745142376181307206955804525499994450650785477876548175757384736718907321733319695919213571144389493725277705886891752171560835583192261148310517187613453311592351786874176479321796058219893574517372800133641107021596345240023883011461574169194949000751522868289850513587151144071834404390719718185677824381176308705405775742772842685146582769346684686101048717143774178093315841825461757459663942313718924969061255285313224378444386114793111740749068732412132798835952889138140153121646958013064620305047986360269231646660097431545297417286135026447752019023088290834250508264063515894365133889482256187686892636551163631238140032736178035533407352227357881495501755098622132494076144446587243412677221739301466171726746508531069861658634638606078511542655574630435516256582500610599818440322489184598077296792748147452113655778721359416660907433299578737898557797437881131840199741978047955624600648687864305543897334740664553738594561576158413293975315100219426204366719900129952013388311869033590134984276725812219375049872957520562865006077998365940076107867596507635170348854817913464939141436919765623626398872258076606793435798250975463158718041420172232707552026502291755214692988191982025366346559327123268921453631091294987198189013527206313156934621832458113001473214090553416390223446813157531947466638578184146281219333415711539268040055011769298877806332778469445695376409383429259319916335737844269478085507792663229124248403444822536644432376055978642227162104272491875937719383050384988035129566328541059699065040791151287319234647379288804844686657137694124443356585586762975480676665189438721557005708818609967299633437298878735596974935559131600437560615703765165107318778147020064920820027273571940083735535229301435818916396809653200415858374487052925394547893230653272483637574416728410708022173648914187537409793649773329715298264713187937180238010161560087757208388169683304708896092232491617114968253782244018186035918054753370062654333723671594335980498671769986642717191265589003139867142427407620336515758894830464730519864198587873089098495371305859861023672653793145196228494210808953834344828126694284838567376540323946000461871715437052988064274874632959075914151171327809347941094378439339173878753039349637876486325535340729208345684654873328886932651216827312731147652430801104270417155737209834788212407913263475285918578985681323088170133745822947960696328618991622676925900508564366558342414001771689677818958663256966669742014273228519514018961494243373476093142997165121992224236977288194411420613686960559899002125884250428803594032236563034858188223125060466702915792581396424979489507986353034102214576592815952607952267250928959469313254927134895469881258333202298930082858088318950800475603101914796871817961256919533854743245084613681085846140135531611932729277167020607662006625761563182767758160256345259700694588938437666207526299683553802617339173392264526079390244848457486327941803692619683444600465840344848205596209388638478521110249738200499960278021137131094677517133251138778177783350202306445500978225169602723819736624897836293471723197176683798978259068118455987945301072469306703417868694475983204389961832554203085320781531338523036198117314879514638114812276165437912049241184648810363473204985576491208600810561076831723809644721492660565057712871226849825016611768743116568140313102589817086916007350531675057719512421073223615938000354314151282970667171714310994179905950990886277799582389654723742973830539782363201331817344196550127458317115959349049320091519605015534425423628568568996412958683544326122165204058617713985415729848018662927203571206196360162698669784703402049552651374263002731434663527299481652239694418599488989264490482765905383187875381765756570712647398640689192667613890897241215526609802050297745983441148560641604784841960286053398784147856620796542091100301142840317800081817327207075379667452571792916578880381584885126836682316263919028241812043215665679733433315904408417022187848085995865260526605574780958164257042897223006687916678105702493217448696565931405235229159453149218723115094581401247318752828951985353767880873333531422366446627783661248321003422362430250234391918187406499062282390307794666801271145103577443136837155916959451525489464676819104655538662032069571177952137842590481495521261794882941023498735981432893212375202763999247970271630334809214894824914051568743023715356979639319979817928569393683515381026462456178230311747722465740353165532062818187024212520165613257799377056614710597790506537221816227241655931347069508484783858459535750179853928948605566444165108338556624270065700591111062330307716883576740500003279879333594600019680023159301262498246791934353784887163615662486119067416484774233300611771433991554756311835889504728513564067126873802241253109998285524879415892948536284923602188671624317764303099887376760800859048886030230122288331236690869157217329793050718288988222830202177613475651703504010209548770024773629054255447255625506545551160669576154480122146878756941486902506992808427803868933348274979844331170357766318976434483207221193688784006408471538159719239287704135100358797970629625444563708321078139641214055617962920765474451586764189575090262418127363499632311176801142724793562927399953399451110605269446829800277893092423565113920134799664919818342362732156015288811929001348088070490235838758681918872229399152340363474698727816150711492404914042135740571888201542560566531510171811227482127250830957938460268677823650789870799514789096828618228314374676906512640958553125110012151192984746029816642008780230712531216545941191429129815267170884300007975301877480409414269582470714129617453996182955807362121347960948361840589664161768141528002086909022095219470870659473412636102414992279735535822415270763972374860772827981267041696326829935529959118263760680802631928919268603270842504055695300555771007030858667112499564063055401097349983926089012210194701276629242104006238627360574334186218703391107425377138005606105702354504229568171751786069093948753614257449919213949427278991432454819503707983172394340991096097497844078269105716644306667297774854409280512642144767867014707370020386373315300581466253385920188749563280641080321662753729315037655310186393771458903415171261816963316544651742219089321127407048785794159561930519763338037790248462327045920783072563461408571792897431705777636460016292781499273802369171879641521426760521316104913502578969222110867264906992366260199248596286446606177836787861456523685350321865560842146960531217408405770049088888312843885477913053375918301040893793464720368812575302065924413175486880186529227150404238880520212865219745808345006134372899068340201447031414074610587780860696315722386549453822980605622071049313328914734654490355248082272251649773505655679512437227364548517118887509491692750346389364894725302677699927274745005329817966846391606097467777492951598251478076932778942254820734936048475017938332949582481480352280610988004329179659765190779429694475730222694519172501886312928259266306845879466780532327103004580282257875394276429769873322524993039862993249324687201125175061754413680383330954824919161778623330747044246723255385575902507237781560703948114855032017287251553565139350795543396750305972264584056976283822238553593158218635964740576639850683699880516302644840363785203683625386616034658797169102018116120489731643090767805971688152903462396520703679970602072997535770740821817937093852088734191994669771534834733184005966578811444840009796491256793961052622542319739232073950576361644041783265714310204638457394957866510067659273472033014404883337434312457142863482153873497165475542363784029544628669521397020109579637407957434238513481656695745750294440874604223230093568556210810139983864918775478643227956345812843176108360796960710685305729882824318977836278862110892411219947028668325129865779382733136798238922147818336102227260589042199498457800127035324645938172357967740851743749349189713165134524463327868093801319962425013820564159547438672203576744542273639817534421533032061535935595499190919875096707570898619599244865367161439442897230505787250027628067021794478034057482326364880054377762049412041440645519522199103745055555933399915872261359630229782729511228913523079182021449404893330427280292143283616049114305049907936769193272964750639013728871081259266212262175297526693059722348207870804624310842310700553139693274284427233667776450000530394440544428741285668836145533539891364734271144677475422275786721630105850317999545057193893946370155810331129401668095561310169197887095745047868382252447913960076115752873256013625345798582731394292456343552045023430488642506321922245892722690066670850664377246134819470113621709555523999196970075963057301572371338957807183199075592671748956351248285828442284526006336843648074763976300745315849953226636012357850182688578791691395314198076663608341099390372298823637607474231433661593418253695514563611154258184381051174355805202883863622288478762210029826635109845356163022546066541346852808423791686802504848669238298131220087518661944051627246724931791735867950062795420269441765844026527364621594407723636101415131832398086305819777820133415627303279920355695733241141494127262867688882309276080416569448269218298154492173062638465995169382529051739065468816653530380536470794847099601968389997059002004941761962825737370540137179230649674940223481508047736783614440445398096938559756004860568480644528840031791313676071442908445851861039369421647443082301109168942847966496102114924472125758754495123858981514704535901156700857958742870854335324957612225484726272316425986144242498808353823125853528752301305215713216541644678409254492341286494292171094002321621945250536695608732965881747932923955682815524205565723423721673716348848669407408929011717608798143776986637148227550945744966619598733714357064682437908343603442724796045323902661807781020989180892566430156860063010257690151031337461730675773064846427410288576018239749444874908293572986363921226590751256202817508946720772166795293234703269785270439046738473187912099660756605541702974980688609573589475161073304769910186507355830872501199851663470666058466767101736032570642754034524605398864332656383673465128001207157870315281531684642953813206137052505277604409418118235227557322180016199027699179849999409649635833455952736402984259440310035830114276226567030433126649992565162316413417821506680647144943536604497690057908158319361604695576888789417187059671720164699794139087304795675643104702721151400204891719041893006757964312504535891070009368065815143585051064161135281633437258653857958536999263914077486807041097331217151385320381520135091649141966806440781744542481450195255254890411683838000351224102297501841173027279201163304636424029032079646953419376122438850198247130777559739416611785184370148702225375551733783221630816237375325100002527530800719981506639498268341765045938829835015137959257967919388160627833829567927328768380725231115049191309782660028835646674231912892349767453695350603296003440119490046001032573377542807557980938330089832659979488251622328990426624048943338605447238004149695878028890862386670570957086351154381844032836099161915365496888013453243357993112182484823864325764594521592909798710791672412423049999058964375325476195598982747377883883571406447481172715346179210710321606842349416504057271503580658432306885660808195895489845090704142750538144105220483291155467001714343110906369294891403626623688714530161363062327612810524316629076853684874649392487487060610128119049394224537669351960134043511658522833390886906664375818336153850335564594057632263547329669744122419411474145157311577611586952466864297960817374424948605136598666998876558567245171586388820025663524291804938383800436986996379660270638011194352421830498167729944456448818382449287339577742218385169138797537550318955447732207024486466527406724596892223849153059379894045441903032041730003773953404372632002888045863812169260206600379491498216192115995948104765337956809325804955075417969315599180042765382098704007552122492779190067377617826169144977438956723935792731283643299557662719106929135476697082915209364602390279336306650545620906464673715732531781952809056036895536487272569378419519902629032899358876227367526142579103014127126586112960733444270631458205783439342836717479883320581301268775239658337880450954962043216499504884486846083616348706524588826670272156090816061155733292372078782347279750445721983686480325986118707394088997818603547077140957910795402343181791360899460419715186715406216471269514253032703210620082069504191361825309598647026182862355701432955921247176959301924761260974497038636971794620299008402110059198417873326810180517936002494899929503073776275047208107449559322016141322060069856192239982683934753503972601241313304700075054711052256049899882420770875818922866229534406160626206701044421353938908128489024068487286378420735549836030055630310501059838405214649129663231662095101786604182928606365683754731989707637907038891035164197211139478836140576862518729491392092024278585942188487679149630092792203482829340705965474431975098206976748120501739226820589246046525906044687294497520203805192306066783078980051397579116810206232809025253868693131065988739148170553871876135327226489153205526885774133646147868088715851802722602895296592990886677291060621092030545263911387471346912274607465068724915107960520582131678512117006886896790100624330584602023784189644136630641601690262236957450751457629808202113976695815727826659197185179010197289547845718056944802077136961925603371213000392512962317277753900330221410318996486837483718809408465834821060930505099482559229669179181507144343400568312221279279254368410220404531818725364792506409582842284341739795938640599803652134521930772975627118721495229719880627072650685088823839477193822951335336838626533845368251538260292266273411105521198297235376739371138679722005801112040806660623707752229761191630481254579332254296927656141771186457220665719719320998927562476916903320469117090782532211855635999564543982529318259336012559924722302740503893501100549330373951282977893333533707192591765627124296713357828674899295054811940366139833030006672347795328084646497683594028704746725097238181783846047266697890279696854295186362680758077733394695304473406498517803043471521925395367510381300289871691514976624916341244684702141776884968171216403857106861730994833718760611985765696801496873803628401244985241484698012971582174320564168080200834729334908636876644426688427376652005115202337039686087446911325800492323602671331659799662048585293456311874387270836053777762251887256515475229296133683052297627915087302406746225526974452718434082039127277720704274181862971249800356319909757204397925347302663708659191644984516773711377541272365703987608283821432856480920010276899051426397030226884361091511898760344163818061219227182595253613487455144802341904750263420252164478632888716824802943738548663852447426064515970984950627651663975898350430719907015396914867906290302544526539151809896340004083770215051599407120427716620587369762944511625603332333600413404360216167672251150591024086418449453186962278055836640753335493520859083608399457170853881910756309893211372015097934686003409980252925882946509265648845029313360739915557879217898701764718236284710674974972858416943393497667959331513297003184864141107455133669674746229828889202050502180291339756651929912630600444943056422999476442491065895715244793590997945877601364006311306065310178405695287706339888213473804365052371480997298316661783944027378164741745984437968942239657112789198634901410549153988374108456311005629264250066762101154705814304730280225920156338793050341665504673899399744701028663536137883109009214420263164878717680346067034382429461159583190401881666528716958261206159037105601718961851206795567976811532759692120699472387973457175983901585815018799726207239489438032041091813842312024613558285421602709424017884344733884619364571765720979169741566228019138601152871224136522414583906825222308183110231046643028496999703516009507024559860499614894322617882887240814455183385790881431983036564119927913953658032701823283565362329565810111660596107802947238238517323730019965749874698492626801947478199746219593747275327780241696497037545918938504948485661379623475518875374049914947433595536870506091243391838413696594769703636948965864575595952580889898149162527181662726922757369922005070310064146815058740592312026698277625021207142872442327447018359716328957553939617307971693043577273163516178385439107705328641907344627209429932347486672699865898469938044756822979968365684400042330881803834943516437930771645352974098368766779878016920364859243049032082390336869545960266668883032914522461945355311878672979307063301344177237210003561436332851829747714260463619626053795372319256488601298770690537846916793795109893684242882747083806537568941981338191349524731958061466696031567060540056954978228138880306004787468961123201277166974019002632563045760333465624169996238830886027628445165267052967205928767707369971775678282839958699900482202824425454206053880066021225236357949570541210248302006064581293557119487176153089691856771388712289628935991519225715158715399514482553470978294658044244893784203068883131848916091213210156890070007351892040586919293315800391029097490532062628521520415608647292183321382045887843942233246149677831274401945587336376547635377388167534562754019164338273405979996220218393020986642216855338845826967146684317363500834188279687123178713098025787938193266337068254693591788576604314112213537697581811159771510582591213770335257994626030126103285067165368714268743879365344145917379240912943340850407071372600381952559077654797904302110599233924521924288644314025288926017025588785068661212018990463102967598560073775797694988727714250952766019091583890959376699597760506587205241309029650595935818116840633739964071189574544640664837254231421528315278548563871914235381272680275206756802035037816612334960427957071078345721955689847833920343679921830509450249874041188497040520406869896771124999629348689556283528364434568779689099578894341394088746286751255061929510369905013152799954148353754454619829091618363398714792229318389058499858085117705870790800567269195934759088360226692500813940027225694803508405485627406334768743976259297398197959548123667836526284305805724433004284389500638527694016598264674477014415204264881601793331382045855728260003031450507614383367195916721722343791236790098162370432500363827402955514166949889641897942499489776643672057787468806202883699663560952194593492688766588232217381466743069520656332218850192787458121197821355163208134994607291321025991258163767954432339278396051013178011786078172040085921411681205412978797463092086192137441937512759607380334020437548962382793245503332796000317336120198516077065956900871265086761878257468256250754930693970123845156440104894654887989842634950038952125900646113689221037291708948291619791797967639606387085452899492824109491064847775149667815463684942063534946288656012149325757182891979619532820455199640004221243559489523669662783473624318103077824135447012226332882264151459291826527450650757264934448650996653425331835513307003583809039431776747947590804976466717001634385594219215464765663803626183153033959915055877739365440192003130267705550138203803397640630927027245264690609186909896575205753217009781236197698466833429368073180445747423819593530252632672834726819003067204077385401848815437337857784321326586521782985398485198136278229834753751837524010238984816808791086733214434247187394622144537708223563263052405287133687224646415661486052513032261473685328836831984256404800435314534748284040140129400101370156809753858369242525632568106191981948904672895801882705879297047448132092537449290719617478441973809768371537641291554199147959033908368220743056739601583257065392166177150723791917664313298593202369495561976893398957092253052718616828239490353053872167108814888863446755199620142434428713253022964578978112569215638555564749523237473410576611749976278772891407119636952975627278279544441075139512050019388895347396971739933755851568663096683244606085188593359094811806476436588360492122704894101464587264763840556824453696953288503900874489305976373569338985135921178683754740876969965532768832780657030728200628816115461032237751429978888900425319766544972539001489555501033753021536050110705891681758046448856762734197349254711378684492612635636578181466052513554507142869960404304922177587791515963439140417015036319361082247420028984501675643200261673860626553566029772119952279807115744705209553409412209197356970502485056325320187371090427534648513706349107552173144880373093741287950146095720530348609633862888759517197002391631506238796489892867255415209273727657132579721509173276951775103681618189276554403660948823509942923367224430837021671791315799690851166524288189265376060022325302998473423202871916718514220802126865431468034273454873915405885745226725979596145972643405388868975534346448537798016912235532184269747361934653869204143402500842479525799435798774064869047421533145621873756322658970214451258680786724087305832396950687052914338515423309643356802961795782438643372976707570153584367733003081664096331196201473374302004042253965865289354466014140338025701462704031843880026578522686395172592300891766415048869337461877813013468019495779766949325094274902956201226320204511327787804562193730607702930637909598472907866457036130668068686618605787201442413312723964427236942941826808580249664664008736742361426356833236337588555796175796513544093548374170930196404947316587918082531415024992503513532663281218038122678926366434920003725586083190056708342349448356132116358875992484417019209378803823739497652677280438356220894247625920818905147141009714070786598194075551089516320733024099448284365596056439539472204178166541260665045134884873305505225978898961269952561638995394362964710042483710438413844918063186902364715226181122439617177669902771691457540523942019033831049350416734853790091719901888257993362912679643488077033137833017745859452465654770185232102202273524728320024388781743729064507638281504325748170293225158494973073184693408989371867158148461825441575641543588736123815936107534121690016815070462589371633576214292150124060358180536626369710157087258391736674071481530721441516997821964758025365722148355705010673056445063065754814512196466170717444850371130830676841633222683783646172170270163233916794454039077211128480979399137940171647404746342696635665220082405514174601826904599467406452000934294287028763771447235780924183508742246118870722548276543294117491716226013994726746183297117058955431129251304799448694857366939436500506308826833515709622959241781076647273946309942347508939151014677929218186146687819151163955376813745990488897172974891691609800374375650279523633996593789744490850572307745519438738044772645700365170681835500606721960203617646583822107292760961599481735311790804163463531538711726857208253835581686529421671303327417684653097251708240947138663622604786060482327410121963641043513774773070641234808820366196548719459584108785581687391627581728203606694847760120127045483626924876687149718135023940409467309105645261951600697863160269487921559485532223180645520804984099032588850585740863723516622753735866752093860849652669631460299358800457955075633300187406568141452186436452156477549760336568792154510836498834418881640573535013835892862348976585207988824672016412746480642566742403247309846217586182124183719040095412669172618616654486119056981169040377313399018600239228932327704367986410016303065208843973437989128934135259314234332679364750101582424047675105061192820666462382728870327875058627206547889630347803871974387119168998700914441240497941316922074829317559884398042940922033866924594167457231135114553169916092983657107188224764829607483962443808233827716181204768385415398277994215670519888131108202653793036796451254748484973707682990820298890685980291058910594867179420872801411896265667766344377592642878777396586958356870086923085405462698339448021137530911597786045550334882926527490627181862452278781167839506289761909660459828703696216076524619963727403867799154420024721144586007687501740949324478435184836458668543259856420220677881902234830610407974584895628139319718549354846621284189989557953862943517500340029443065162196734240890335051291319384108923767334519368477981642427335074643077481373763268207391380990117616384839003402382273758834562978312652295755336010800068008329203226903832201908858210405542857212892106731727599238639676649456141315357090720214822408275324022528566325001409784982242307759347494233733104492422771338719488853770225352775770392504481579532105086368630909328644856898688511063969234994687249227619586626275058986814825894151131455883158096743798213778380531370890006475542803398500160672833836684247287659464692636913282603230641773620002242953100562818369617230551083154474021898239626786561139634137431663599786745470520763843769415494457860165168919705211726037760857963465511173827546460671573466515139913196791383537809912734827084629420901843019299010279792070207722912105128887451097308323904350861297995765560297924414387715465110971628541530780407261152007205792185083861138243292599604467739898348625757264955521261174559560126555675265551214153066380255684843586568198111927445021775325192134279947026799584567927478755619080845220379872139688065657838517704889204302978883487692725575504551335367855925819637292751509967508756867333296643721356061006242718055884328925322324152442762945000600584423394395755630165477245664017441568514843744473457092959999012066730025674332149350496633166023707367942089538909385314640228874558195830297799728406397298330794360923377005514602665804204752663540380951575038126866576045743962594447698932053999696420100123210539746179180258679861180781017183193119870186086256856665128346969806901362992442745806466719635272023964203114192513934011045841443038781666537106741991502537011600346724217241476306925481086472778580505121513241873795853752563245233941219085952434358436334255184653650797228988547036944772055668725467496176109560748737674791381340474511787161362580942255844107391217067086404970790881631883721908036239760569232717122002766887787261396267029903658575262799198296187261296914302264946786122966893660268068586007140530546618322416626174603767409715327431970634539508676175310417100795694125572774812728727556992700282847284291323664242511998761246438619871153978124251001023180676198343051105791419368754475416940082805320176949587110874597652049225861205101152236629088486208209620065339765384836432038857262765300063394473169324074442014326144023313260160126682074141680982592245231947447545190390971606908673442680104865634327632941059857922903796802072548367434662243826095501377542004968384544626657700499695575699827066451789373623148446785236586791266290249412019783015243556380481126119378928296515154960534998294587451512371322765986325376151544920496323202425323452478623515072038180449523035290806710154049984418098648400015372199210427447750078478746941975540125949778040167692341772075874398376840503323899477466803654843905886996865410744634027087113035311998807173981533273713309617775060971870184610010429327161028651947021200512738434583037903602307698681856101994550028872739255104241548055328954660914378070289958389641287762628442082164944659712172322475412907884161814677023449455357305009113434986096995709730600646847308368900166564969710362087276127577067497474486089758623400779721448455152900235117503648341899210674473196346887703526506052985684137408391639593630270169489150703572075062078430467093531981652033190119120902408035820487997288179587190413278046894077393557744691989904061841588712423895822039490369871659969987233162331536807262799291800908086341969748856498518862412745221935444151001451061951222963713820196810334789079096335069390230855125066101787078583241037641742071935413118542318391432353882294401391780728195927945554410034414763948230044715909254351850375723679221848904461185648943881228246013467332861792799250729456050871556804031422079474337347541979935006329052405676263226921391407892539358072629045232921769548253676950160299725357800451025377276459911176116951668310237845555672561616913368732056031895374187687322594944741347807645063381626083474487099355780816515498551583802053331013317063922620558342629300586198072496080318667992355142960231250171582147484200125313750493223338314617659667753694307446328169776133984940677871917077313526102387809786579469124807590171469795795991104469921295956489399921635812985110414826465913852795837768719467026110580162334598060364197487384424555569296837325756226855421251117718879926294505690315945894821381929705975367380600640975347389767053482573725295616867513904704583312334311107019903861226867383991718559918443039938196756956758817159471023614915815639475771719507935287204597259352295357825252566115701608110270198736748222991816170145840197787607730270882386896623263594732086490625242132487315491262652060548937582396427519430669718662860705897071436580790408662531382514877126403773713249479317702336445253046758889554663224282805036290722793832240966144691182604807150858459284588883575366561883207040767977103364161291916490228139143636842776120703017284039046833348922259489253544566710547944524896810731784120081309559813787019931557039730329045224618068168706864972110436264287358174075593342475877527587834353713293302807606643263779569834070623558794922644716706508725120248686623869272523345531200454094022317762608020413789667116845748469299705385032983290342731952086757692662911317453550025894414453155012950195753391171385924243715946170311991676433105946606736900163074749480699735655987128242522585030337916366603615074881135915484941963300303749411148737970642898428808886720185684711109489284935080558615954002773775370496016780010673061722046678805682292960339822911067220154355461244736015335142598382917671780225090242233720382478406973710466140216311697886897789482588067940538859139303167279553376096379791367547168863291793676959083595691394039266643535904619146138531841274722057178005803075168746628109354106639224328583097125203242744635662826037569511873444703694196470320648388590422310155790600012983555707808108273825421657877648566375865051967782358068274262393344722850408328001789974133817073633566448101128089470384106080456121435331968672603852738619239530976012344172063651823649449733398347420359873105928796126041896669087886702329572809214824545651570502991593733486116712504504047945613932565355479173726682715701534384658796778175826313438763156740006091072911190105277815527298489436244359402999190809384803680191769661971555610321541080332676017817978935504809469098127802440082277666369246501753675301532060819356998116121916327934965510129721224982352018574012972010729211148850254931039743350771548756362702263032688084840988940673944849276636364605773626754730560508683395603372455092467590778342705747394122590420899984660573828586137271295921242777397488494558061715179307316694775199419222594063330747349299750313538351586338000501808185095167460005299239311586842080716006226857821257853852631230852149954411538415657493232863243758144213593265937566282004516616126214217495054668377761766476795686285418378381701485274595306722571805488633979412371965023433757475901602708086445125941724620234782331491259163194586920646613945147054577951894555707474239593765866031599235632614387993919325314851966963204041508372469310523560246763274250174715015711147336911742831974050260287954980541943242196376356778345521074197271771229459173088073107865421876547250991745492743030846260098948900036699711679562078787599167300003163319642191912136267910272634397008864831519614503234051702942489842651835586754610345056693717196486907912676577373824085436418309109163725086039323849223503406938128820667906157631313419063767168276775953712155980494445118829411447017293366020101632875225222275354209960436027781030269316453747099514838905556745807495429894853356752460996713306057469169192819087751175367414619913970872714658465669029717763425943693677074545541573131603428543856752004162023152331200077293372841482522273294270315977810417716429766805939118196682397424395998793088727933690158562562226444226217946215460847876107234437227437539896451909706275984636482282000031364829346865544274441205931944822452989537716983179280687466275339780865702694503865771394116950542423224982416006955965544823286191673033460512053465054767823501859121398872901040459628897933150323612608447692724637536012834355099726658792838723101148761038360848807926600949106673232690912611784219653932292641838955586746436421911617990092884421104302399181837512165452218616664185823668417306906781068493821878655333975506333923989989534674728432498528016009884273184344574604032207539060334781528237324467299889377553692521259979693642290153396642308669884969500457709696169084650445438525833042552598697581426450776371338109086623737348776071877298049122209244367036529116750102404916963257811414538042804209744714889203104263588689787706059291569118719317218586203683044512937444731982375102691078822956742436952253253029604381579290211505681063305109088777068402505384932187422468539789796167485807606299264790011506011817040264937324044383142246563616943662815746887583242435874704924875339651204545429697617229025755458939942846065523203862945476319755790643587798648717062535461640568639624102060640542263555398546771654760217079330878743515699939551433120170504964278229738774941379806051419642857860290756141240412075554367523414217246939808627886351286774999451236159172745868783609511821512231104141772815777250561171549500122689867947490376310739912570635546545206438653842467525347488248220303737217085655143883259393653148353246241498947419204606137986305809855565215013344931850455386888195325727181158387107377701774161707415671414106992728594851776144613574847852976111779650763368691092804199278520247646067488142740848024423365359853483586815134684763705261821542449693390748288005031355490193671351239278555940589401475246148298851581563074444825108592931072863224198696380735497459295730046706800487331841567631480099478892850169505286473214878265613932425572265870384549715544067353924318598007399372574857416694447791992743608026082098496523555642039077739794032458921805872437533127557791261043563519555153388835498191168299398970362309192698955091396792193754700118231193591404725806033143741842389737961772138490705178011072577807597713061459446792172691301227501547371909730908296648624771258417843666260556289540080151080940980009027851434650972546923704304453415645504013834444880294018976671889997465708712004187682013331248915503662280436006174668261968446712543185777481975771570069461343374980966575562459851263360717374630607248710101376817802330193412268189650153425301223517511885921994186934996173533648632017399081908874992744753916490510306280411113346207038415811415678745955816184741740349994922785150701721051124769294646555294365913113164298188940788056307532642057002643774753787658114091730684155723303837040940724216692658604735970090818459013909479352129635100021797226670249597176903961498479818550978284924007404839417276908476619785908240393469411425446583720893113174887173764065592727539385324544037708209930874686634990908007236905626907786570901808344275344297729241465239042323513335459009810912691438839520370115197705844374485657012022139230834027803982760407750345481745815947820823914375993940187353288291627763319218730207102930121057481404461652202805577858547371913517722664468127867736425800406281301461863738402924808304996743678812520407724227324692606442237630523734058362227239560884386684167630625284403829322466514133002348353308760452590622237391555338139636230000218096641501948747407568501898363414288184961160274744966116770769864487974514471168106542763506429916909203172049694856477677837387246898492465841037992285336957421434374407879124749406806682445782605236309731572198044444637708135830346153277824047186334887890215385124383762215219020896181313426879786396462972595363290419400658177574024262227475919126871012282399918868418965370143542096098290172531737333253863454193137738013039401036990120792658424824940839850744705130739081320926726888657302937820347420816168570372727319204663550362321396562234541398081994739911672099055906253386388925311785292695323058155667411876707511966981941179221598761023548817351880224047949642780893090426297398324012856313976043492997495569854689444568186394988754958093666430063310831304811301629864324394864310651158614420915397881781558157474491258294960230475447305052420699939492379908351444210367459751835250687986675274029575586169494499576950457604394201208972832027871746821412971455259550161159836147305971930946638375164111919451417824515717193276543230561697154790885373896337621423477049558867646147412807563311706431333690047563842558290702424268404374310912964843718029976034397302985070413573266026387859668974891331110701009923912193558325854202694834935952946666625883357615547403408651466888777642263063617155155109735151651191673744243269977897088522683226296859039020242130261925538262847451678238333869320438219323192507367252814077658424178828901541585465058535185080358016792029450529522530373385302285976755317187493737470413561970216547963773125905334189971498840464529073384214279099733285679192355355941127159379079925678420244968001175076045333525980738343727908035866145455257417848488920664848908012687268159563391302632338249164606084739789800942595592645249496487674077177805922178677564788851191859158659569367560483305145806759946138716440049827430101762901158119478696740848754983594981489824398832040276938385901714228209640166444425261174054696351194031401347471042336102150867491906291149180700692313651864733835385761270969984485622104193322629461846326280030668085066856066592766639794316173395996863353132969045385002969064858491866296504789219917822121026148418431025410340224143300988072020198915226221242958849949443470120159649518424409702079146820500260163755781819991280084492794668432368234715514512084232589063412119272755002601918645606572875914494442134965045047769028503946007266924451941158727029736075810183984687382060880691404288831474288754544178035577646420970232873336002999795348107958979851645796774825493795755706787707724328813205437114036996430414822425815432455643527413268496636418716532766623055519188950360560525920619829015292778674738980427328964916519174411006420552863551541343872431665391612214042809369665726078237805529043643681948421434328242250786375889292719048440387464633180822718259053978730042561324612169168198869089882207722982497418519228675160153423381128966139564457289134990993657729558832117950929403500300544038172577516328810035664739506194408206036204399738586949072034837591286820450054833238107874099262989660188947599058372125241184043130520878616900554735032758656161535757797399498034801158093248863735280201735953713308310184859646358675530165962002789316750818969813568894622627846383668864218306023925372294619170763997231292686835922110961285144874295449599430856854118240877762064184353438746266272926352858162268508043699854578649982054650014117218108606271791898196225009843847453715518700807312798078204240356657034671830298910410839111386881044154846335787498838158739787658920744763411492685396677612864665899619855494604431398503683062426822444803523240197416233790112271735934776437065902185159071052836704661250859443623361630129973241133132923060433653507823340982318386204887310047518467033005015381784780363790068369133441134709553872056405438562630776041230537815506881747338113477851433603549454596172135721290818811715011940934731408977125872236619800474292361193295770340046689877653377637971162522050127469103043736262886452967763019735124123514242111008424048095493339434307177636799741582731854899294814769202685074933513228286390670786561933093794762298761527248810104782928211409228602369826633741691835859200776469827495794164790369138057327004621747466702467288045339160028630977240738361278744141221166156230085068715388971934350091748545569982734841164643734575254208057867610915035454122761776884820104116725850176914171799415979727135801279547564844106708273789481643636050223295166346872973512921331246110467679510313860722131046351268905990436825553184224152780318753030469967156248503985460122171616060312248262976010373605913337751371320692585933070562411117512564262091807574572711848979342414275619673770447413774621422637231327397709943444051837933944571597713132671203863694075241199188114978701443966876951978944642456291297371790413631220685290533779196252056207671989930907303821540640428883123439782711808134182397754377103799120750896202968190791016670382568403771864838962690803359871325674187878712233490028356151808561459715540995947611298911818619716117066406661146938459652717442002035306594602351078289328475106058511915239153107369537454508433973484203171353801125166376551848730266961597532248340076584095339006941570672476142645264757551348527946597443243694159384021666262747763265349797562532069348686230289229180064622798287214047980934640928559371803111263326695798330374925379487003110803462275037745449668953905230986664754271799767712592666777113920890222074353642091097777300663606620895805932630269350991880757108680388035014203308696750253751041651649272022494539401454255468841174189022621072682994509944224837837041944476797957189014555910747911920692821754526654777480324771135028165311550419092731613822473561226960845817066709884030765090636125901385942463537723344755492057312821814551859167481777217656045967600037866078524623091691745806317342050045614552860334396101351808134903414741490145147303874656150456230316789074388674304451636656109757524259343438135582131999698668482219169340725291742823649185807872283739068013151960300343752131216291182840741842855605465713262478734729998605525694061693891084013195849768764579250754018871053973768206787331180921972408544857030170151889936875726550400214671487891398763954487790940244976939959234763414691755713685097447532628004523363971533638400971073749501724430723187531776233019025114097981852314374267197892307203444577535068571169365286888060144987110836889751448742947675093833924156028535878181855745982978622247440729445575067494853837024207040592505501737484730944882438246534643865282863310283078538759761236459222220405002930081308612956416977599071806329553002636713089678690045850312630837004098590528883243486210251730776813627922768611812649366295949505644424372048491063040766332202261183372312602731297948271201549572827525512192101167289153621207818713032129418794356012311520494411610174869130190378200208846197046746729346896912462350326195225057228275209103340774012057495270771966385034661632365775237724030112938415462997664697006655114816270586518927195115203209131252048685440575191155454707133708699035171970852536885851801721881696648170594282571745959442627256155837476038769205254107955655893390847175478770079590496738153689353423854458569445897602052231789443464636398526577097165780618630687662498740945765917356359696023168467236514647481499423360218620065206214518595053734060773535807330285308895948718054019715417071506591924499068398682172470278662795553503156946296314811074605352675562526735233825396597506122366698622561123468015626071635257583923699408319938064327394975847667059668208606535378793491033799421354373763957696080683635810376116326457131357500667351926472342931526258618682487286276451886459648834305975473767521970696416417846471695681794716703430302055513162023933741811662575844065694432292171582087488166917895754058785917933568570862581368428624326055906834751878855012990339781170892287526903411971830337793645864835170524833643315647689210912902185671978807062544700629142172893443550030450800606715934071918081749953390003705340174664043670514285558666687431822555395848773951957732144939103275968418723273154378895016113744851798125521207883348464882203256108640646222662129058420297332172383107581190544517956186695647686954784017379634297703911551246699513153341015848821595749341042023048221670375849442259761636846619024347048870448373822065121940315930340984813262171525719259654581331346363718193950113059189706521622866181279829744948660551355571316893684447266299034807733129708277967069748207520482857594168221686351795874132966010021135604882688077522757358108694874998684808849747085853028884353179357193223177155111659322491927954822339069264185619558945834072209509677451819410032826675966939850309671196563209334244876606238845017023097808458232005742372009852587246761377685918419571470201338076704906405520077601880243986596158834102598563326491839210226448276322822709148932150693445836369463534026699840810342506294663673853734521412654453372156982568608074344847625209685912001864845470365049211506529297235934337237054349779109727070692808675117547755460638293650117557693084878706108590002695749709617819244960856398476710575382075537019826316919250744671238583654221845032415928097979066403046329034159939779805501171417455939701055497288329473013678245153363326979827860071354915843101690092537196667863689024082786303373523164178914167857899570666754890470071790102161265925904451652534107248522881172569990424004143134401071994653659927948207855227092645738290682833905783864928115289685875737755140776751678954008814216879627942987147881904696945973904509357358789905899244176585553117389365287676000327188937801200630050954917313029649861508172683052369874531459667380370913756988194218915705682933646283304971217170055628732182399432335037185225468166243193350519654669986202495324665893394539982817570824425024792300359446144577638993657940329137338953228208691760997440763816726596386602775079813451506251485128485423890748043190967345971823116837070875899128973001631335752307884499820476409389775620671850694699219170668835577647979037893222743702330693459854356843151320745318440126615195649840219266957999372863136655816994819031199800492276515953792009505104895808534293119910966968398175185964245815440694097819807905484250194609500537190427949418661124266810462939974677987126092073323083467967864853784660166935126294766610958292149189542285909307670422648602107154229441219180501169110305684213291258986970718512800386724778864303982943672993069544072900602281744562047911088005099484144700685041524783078520064049675060125446218745643424984342629837358980098019819435119651699223250422405410513433630442940358433761601236259520357392124876362470584528265511575642615501164734578421298817328656246714449058690668581101429595169410295016525591289468570579823465887008207530490201903430091802226133876087780546881899277653817548617280046586638369227947493608225218415582375690612422153675306902782941443246283806601276128935979771758010721508901085993996289112216530033678778274567539607664244817568666374813484642859070910658101953277368406783056324065758784237504581589766616748025215227019627736082951527663948888944126296588879577253718753677273405179691287940554826722323972542879002069551590875465388186869042743707139900924949327290229523386373715028733202637007563728167036585276761039859321552528782737585422580801578558542381045814124536939121902850753165868408241723524257789794107425892988831924204204374300492610591238163351030234951596456157306849867494673405632178806638694405272298182654187059166177197953393798945295773324760167248314917460132281094071662671783481070975411548404621319748242127998432574283775563337955449939040489312238529517648465574722156106847724559114435399355957450783954346857361578991452074647681092334600100586288205934846925841590654231445341165606437838311231688530294721584556430314888880459963815564025651725537333974721421337072765849504177629945747320476094871561672168816150837053194246926743174502096055620205313440107357996354193920581291102983485503807038079299154222235091126731536128619503539645702730463194795642610796684854976350500403516702002925286250360103107910299085799280865315506322864056083616216136389653154299647704201715474535972778134633114588906468981984069667954034627517844404800891154625830340711540424745445973152326575714843888914093649899912474703871812835106885724694210561163671097948216630138738763565425843598499248105656188121537241856579338849007981250776222870185367080337080674991586600429677344021206256409479855356597807713649109071733516844263709384137582349628265394903142172258343467140819904814873513649662081428561468065421458578901065260127796436777800935573525912808605389677722119205474721122747761558897008771336703073437831006492676346268273736182762869469042464168525268133991296748867861152352903937790321793856053411575989484543072400356322695358508241872362138552555079970329845090719188348456618806522650581943848636417519675515766556208462542684501077427387974726041219915357520745056764090301835933921577206523452446416028191267026522120290093503083773859501690548924947319573719039393294584567104882741388839039651731887535116716401780238934399830648425715258772137563727493356725554949805336392325138695911116947959051626745112517109197810900975087555498955706866651622491112623613305270503213048828516963371848123514845888712626161127829987863356386913371381716882427254707403176760802296851272356734964726219230132203050528221602413024599091831156819411874153316829972559603209361348047945193583295163955861325461699948426802816432369054989742570597407998122516779642871293628326702402803941274876490425828668075488737642572155508144725515860792703571188462229474132741400779347005747816791811631209599340657311620977809619146744860363048185300962198271425151396157078350241006798530287471925684326029053680716930246067211019765682220351094998315640108770324506875454693176318929383975285966090117436200488933109266288946607880765259263865023601446565873826970664123102618229588356140563330738653887283160586169719959144616431653872019872713724298346937759570157235108861873304618547129732895068998627835341795510071824720030732628474096997535446080156010131317376501732753789956853141460809551286810518313660712949357455163103027174142958680483113473055461152202445115463118366559135724010018765303782083188161194247530026581383347485744607650157826906213974956888108060953527991283890139003215230354394718645581016299675180424451468924481011865479224735183429890170620472971203360748519997947272451132224561109375406952257249986272705566882970429860540563670679510754676627814730567088392273077675899763718316991756190810017538049336745716556231745883505106666385155579107014052614557199835743722070762647278656355429942605544865121731349571374995922406920782550965507936693103518058098449843041976017977592132630525158978361718535554260650304769603912097079395971690421386431168053266365038506986332487385075347019701228252578358157775491635206027450379813373690845830171375453263894038594827253513503249739962392494817054915358581951842380133459629150170067748138137924622015943832158185887353661692853519312286788995937081462136812378423740554631268168023433712643185138301378136233093152001843548160849557535791994167870424320348954960570841109870525938870328241107397652460050049352674784485464042947836431118634756910881023575029523617371417551670372259649169830994572887564175831396958170950239483041938606667981856419561308765485100711134630283133986333621519502858857614768973221501409043331755148776448585565215480986662531416724742811666865149356303613166646934539008290031321590401517385149039554850361841647730924199767657297087401372331738041143339855587992299995221527006162326811805885823943708624507334084865772424429305961225850422131214672400499906156834737499129580596568197581248031499008094589736387176364936578031607729406094708929690126317167292713916830831352676606050171010725145015370228708203846851800230434236665559493771824597397032175005476780682941780204903895227259332079139648260702357182740950454329558588608091725207481557144054464632679606773458218118490907255363490232008921993288046384257500221293218451000397807734346083087018988650898700749726552546248814599671669871268073059791056427076990569602963713506310323260638178459117608282733681928278185224749785781634264444059101034511851062865475360458290150474956818587160421091988720163070053685485098602068415890036851676412394803009282006805385049434096753282020720286379395043258609735500826643753962453657574511761785302824569673151269718225655494333853653190369157548533499934815288650841951518561982007237803794180089015408856105313598987679079244222522070581295924987777200923997367273554819380999820364630582582863897368017448773131270927759663592110496322755628468822508394160592960668581461903131445800785949459053349014722426182414205598196083774704420509219219984223977282245158734646930358039263630114647378508012112453560375337837065181426739012063080686713101942100738512068694436376213676006400000609957287174870449397208825870801433503210635786633556118759196661741101703213697549154676567860209126606089621370965421562647417934947576808970149358662122836540006412859604275705267610497954218406298337435003340569905710880441536978483340104006906348731879721635775536630020567891185610399217602457049598993660540018659405696659281101452178034324038965079891471590657857563077141981492093865426854075663465166237680727877249484269513911431564007306869992474849939730236162790852480066206206584642399011227605023527685741123735421264812775507861331858169658903828930898782845141004574390066810335443402018903234790283998046246578061927665396679219571768757667267637410906099769047040512803864885432593407096089020616591588974238096146099393356591615237815865681273751922107299965700621735784864579834201341510176101437834469455620053203543135901470546579416700445655774049379139299367315039422257534237118230203807979082835681496886675714704589264890504666277140612526824821471891478018816082303780780105680344560795823135692031615465471929697749586358930711513450400158256159767509392941551699384672911361095145455019215459954732614389760786396170895399093990155406362335818222513905426567765357129782603538977680067702820402225998111551525406300671001165298155034638117778474598535898349701621881642381807364382556907867696990956818711643659702478826742189837281198132224211825275184915380101903251321507374339051436563817539386416848475192542267716988579987659955273771975191443976853996227201884112525556971560023324106413796967181141210982803001737505598438980863813156959164332853616784082755284756917346367616099040925567862476129674578620096822310546467857301628092809393783886988703321731241917753724063688966857535988525329583829932666187897026754396196806151509100103910694360399006094057369220326156136277281714523777617589876101646154327165509429268201308246283084740182885853782575882846760115186293728452817637270471757419220434358359714835916147206361384176880108797620082281254721116303542577990913908134166414015304512826183659263931209906319854821171104152333347701163906407068182320988011095222991594837295931767215896003575020216444892334542570326558111137631252093730322868185447467644094232452243318820772670178692048527602960039557841937063769842492563627968079778730759002673162554070242418619676926693405069995036555213286981593488870551421619551336491376678910773361325404109395244902399236085265414040217688397239387696435234119878572907023621711038229187153294769248166499426619736132684634015381278399275823974545556698274834330207382929225815055434095382134243868136896066431331871049555758571306400798716093314449968031437615275580227526335491132228691427222440917487341295764826248410934725011052763722201954432291484321606185574542386582452602807586661435767901655459127680280100721624135918847284340450549610832504772227233564054287286520768665398816554670491307037009882861773884088121704150452770360926756849588974601157372780375417253485337760075850708435235964237990397715655641035080299650463774630770765055558453719806822821221109348077130629715452542535527728888718595037224799317256942791558091303401865439843804480403150888644837992885117189485840717872161203454784281032419947047736440806094338508626390940242227195971466226328193874072915999690068407220024572006976602245564976243255469639555981856160139040185346174372420680610773932399757363954143875002441010640959689187433964478379945691656218954046749863585862410454347514229268190385223754827365835319387546184566142954433887316222121589057594873228254703802955873965519210462850835976608075742753976144970114009969078689790441084884444460020906744046238610773091473966646808788406126325751538631341724510951879884528513633993476033748146249180200256744874533440344841016988687370493744680174966057105845623013608707956162010867470470461319595668160799903039630871950573521459782607134137652625766101711630705823202201285666010962373207786083466016665644207361922701180530624952433089966439473646269340871528135362158625878512837110402134062667437084902325717450445864973510080686144395213970163521494989554642427741828532195521727929951051258330845737542955410140527483888678206619313443630542640538223211391513766077138690762098250284620470315264132403612795204529022753642160022637933948509974186411024749200707444101782423489554703595990721912184342890721787280802402754647104225914117972490028095820658898166629802615326832021511240113286533302306545948356482175097651104254856355539570220703658874516330219266486983321229795315876275443422190320834821140119916243958596608265901506589199666598769939351983605594035169605072002167818161224457133077779883472230511700874096547662555120412365397138674628014817413644983497548805971917368118791323416667148450370179326033076265668821434414453277532221307813866587018363516629146971740095722229700432061012994381588103307900253711760257751368271160344058559589185909846568504435453318806707981020663401816705660557236685039407033477107150274740150624343592566713718138273842546446544486365343091890967182462410933860347778911831432674050787472557797718075512006042074903605140091690355299597094932831171516434764948850600293817383147974352071681035740296872059386463633985179647937299207575353584917853269347165220317928296150485826113457361563593566960359700538879572802132433214867370260341415123055818333298626483522426350616604293424724641035399124512965283669932806022770488615735883015689136061348121066718839751988997122466844483322505690384082754540745539598474858838299993066021007008512508409695815766188877308056055390450621402233368324473196298682565542261451608022539048937644442070727711668916346248859987524740847578906480958957950031493659492304377133477163958628905052223898313910767943607352836415710272631937247153300959364384950641984465611838931450499454498607128366636560438180983983169386535000065060221534463112591435197478933770697686461824934549107879192746208363065385865512169493756825565648961269907534601698110631510603500064406335621084591642396157983307245431443905560754419495334978917538985416443959686896062982250465557473069330573592172520193872707316549249810767038388605192982088063606226597614929383995805271564788001263193882080908714500460914470468852005028373703708260369522708219795770957053012848164607918066297327588859130048142682727567052086672227292651223676298920235196017415337619821961593912147114248199861932293989462759499110769769566006126464146749485467038790443956673615045005302320037610264297176492213874283069495074983782792133586209971754048465006858891654223503690721848727557509564389275380647373613596334903166606414939684354824472113834059313498706370787303045427637046853998766801961743921524868846765879238511358952537842613584247218543059588994153510501667170424102523404925863750903586509413744431531435960186264783433152193269504566553712181579011488969686368248416553004865290485093185823389630063235829674422875103294805628723549214139867171385871394367489889834392340958349308293209162870491391120242705334139623400070098830324225825648109887463550023024417614637236209887111722137975153082459640732097088272573308859584429028249387397105475570806623755653021407925410622028389295734817419124125296303211258204213519054935665019403469139288599477272187613301412305385076745390782372199942353069823114243145649835254187604764245215207803132819026092511907357706092658463750086774662664793281103427397336287194637843597211906164196791272427277044785973101633682502626886156760818447214485255162376989573060513104701362532699257140886627603192126055748070119058811847935346772783559322180809768854280469740832149374677396178629096289400976774580107359233489266288385852317243061285779499650544343334503318720326486887057233525898429475814648392987238026467690744926507913727113063040561150932235245658553363775752919113975974163324912865256989004418088998023783345486060160776307973571428482064683278317428787305247603121588210041799166907667422750371509302323068869929003257675719525088310386577569471537377806722971133247125665858917765598640925464067859220318245662068709115774002632388445675958956225934793407595125075538740970019841393775185159131315635524232705999060309686260912126372744597144455726140593487092317154498908370082757831234461903518935488077155421202485564743753026644268581484926565554138129571764439751902059410023658113965772400288392601121049479305161067610921013953947942082798438579926860459776910737284726818367275560424406671854730334394510510429639306195762477458773600018709456185544936184236952539905393576831332872247924112706607238341148338396067168669406756087910641008610267712276219640031151335959964578384989894299642029020151333424395771258324324413290073308378239468954909209212337203621835611516828841200429530804625209211864763102189693318645352882638694114330412737006581360588968824090677755660487248969490318907177748772514765791627918602449007388879020166593154294829041493591728707484462792682903446647163850730155234003775030796739600033774560291334797900068463877197234625983232940457537254772910274677144308409029193083112502131978436990347234339569652890947447631265694366747124728255593043999162057959540691235846160473798904321274151097021290946792567269103176202287599476872193274700766151593814956498536133046118926577950939349605054779334215877166764299904574333678076734588320195026706146929936567233236034136831031783132397861293102550825769280523475347506370494305043688414505587823030378871647140821749032928792848448507942416958006160632763226944559105925484943996357643214818774679087000540704682577924637351727342157693709434315173020159497087226919723715026270045979206686790939020108415686272409611972673794463835290808939197040304861859920136092924395818238259225028626327325966317932317805474288073902859058608054667479651680232226443989950786888831320095688634791941299560589277413399700754986615310571693700782150547131415408276637589099495449960861944230176811282003129757848177955681581688029950377645453508546713721587293775634553284937579630193693580885295631138874997791199576985882465102941519096804172372274540630167501535003605175204824974012749160460736413773104934991169460566055789683126069199831812342976131750046118055341591890082016793749517034376695613377260162627876431231904560416245338556751546497401116198665960359326046060105487959163603785972282911400470135608548182310266201599517090742845550197408875579884943398719833921884318967354432775221717867396717686110875969891182783627774208502066399734108149057233115539604695082001677247523511536382626865809660446246943288011477992598735498479703793836977423983939424917425051343223063041150603340998462640291982583873079590123200547298399718143479466759927842837172824057253392443023288271809426147038098445155332890515627846426142869956776317949576870458412909023313884933142399865618508694423330881553429197608259271914115801067235688987777080942434986701377687374976314309489554281170327875072273362876351043979526825751921319636482629899827822681491806398915222370797004446078347855052759601088889792330819887693433959258908389388274155805070175339649203857475064858015876393970386146492781443116753428646190824969466498330996902524981993129297893314995842035987235872410541584079999111165537199988235009596686185158521717515586105057450586375594273415893036387658496753597308600492781304585561999168934872441251898723918654700434793117953960286821627885057876759000484996144199935267933017165295282747368998682828667955659130073269544629488912481826261314379688342752318654422717791821193715907902793828730644110322955403029175550998690570978805170043759736750019148290534248423837194047171316807349505001086412070249945659343215770953982760183130584576463033514961156691207426967861145425520416078205722339063424488831783654618003330515857233688898651188790851404471971519729937023655710417940819903478146968167036934008077662487556014311679328777681314892553134881491002719000650607352121756964865245902042320770482643804559277814092823135314693718525252280666551991886090323309664652799530790278015864792833686773756934559161487336030861387607494706180948089234710527755713697979512741096469835706885322259820267495750594337664069545506229908156002698181117583324461144225352665449582881812722135307251729949562973974487138350345128494214005731052837659526513577654986507809600660666189023495484972663244892503446641996335585874487108910537441799530196045509907940121810496107880187882834724187979734717149104397312316621140967158454373185841001454100427181744509433623141516331931376373046803881420269340136922324863150232204140842140441659071909050832044080201217810025383793955259192619089827382589138277187281479704008535614566637436498169867289302915887597741164481138931175511504245317269218537532748734908443122600766861803413164693572332566152272973195453468181585572366630864094475903714658457551856862732880236211850765390790203390844884670409917636394474989046316746374528879970167283074670512741550959237110964036692714144610507062639168124814621633411955151825641300336543445679019715940347586936540276936753185612276421252046388818245319867384231448401876738119664341374980712043272863496994431312011179835473381197110226266170286603470848239104616318375591659756742428402549498655210436829348721389079330863942602206295467691380481392224967999619928570875013198418823055582839030846244336807021749289939591640439962365225542842406041727854869842392022062425324440205375269584550742509772299905726784402839049619574139835129842323122991394203126005809658394619209756696731121001737312554160901841539473824870839581761312227253028423281797286676121788028597762342847446913484575593038173220848406356615383272808148253861116439521765357515165306766992091745245348062055489050512956246857503854137751742570787116620032362623220797414720941629862201849906801675411345879970036804187028318379854874047746831546106261629171222826039240800552337175420978387141543575636823279942011461619298372711631973286658885709398086900060787575093885620284570108722161180358205049751385654358780921528641404322083297939746690010810453031289715198325119658945563798864155277844892925089674895155704393895653392970212929670931140470476336956074430042027543209097192183183214332194305087795919687121511157063802655900094958756980791723622358851929176307223542014101427708185655668259474739603054189367723456460790843615005065572444939686434786827922615241643616762965123941489973002881047186821681791589326046529009362792903879685648343172722336452027850161896326189250460052357775458831911945436387193420270013934921817648247074411600838232912178844695442394050129692075967641457008179897125292100079311534953808991635881877488578173899406897150941130544467487661422610780765339202323377534029135631395907959603689812183655123156223872127358481646125430093330006155000391628897781254280455742496239481935617270911409073727802718421374171038115023963719325851344143766040107254517187896543671076901490260527297175679884692356776151820346235049565120229133452496769421599187391377092910174859907609273731005490050621785562255450907115681860869336619025498896083184054098352441083021452971446624896111648456290077348209738341036196323493246267985093610668790243773274758469929568880011412379187600404239127748315562328856483114573044813868266753976500689100627766516887759132257127587609612001974401668529151017555938481605462637036814686030040175327624705964051052959847619648745460402694875955393717302293506612982856213198396832733265850587396012783150013296793908901686948407938612910062464222187862364177201330360667461346713073142515423005198509052009223511727287213134829923371704815993503809558127772444510058812417196928734559328724613109241410450276541653703272973392817362604317075330890738868282818350207140853619823398258271312270466917085279441217937238237072929831802486981674334630631026988659038664611247866885545504174834470909516505660864958434410816191154388285509603283783836715774187427980053394558888018983817732639552171539860480765427633248428182026133740133222954648732566497134406450157530298360858829205303788618913738907474080562399915382975556359133744590094416131282287011167141097151288969523004800540172912249546774397326154886009109929646700398744369949137079700865690705688029556788606497222474308480872051036353972867999885280861268158515080274572860767212412717735888598977230875220213257042800031698034097068087296147642071743307772141669123120299142853092998558453156327432264507446286915470540816717372370045490505257790763333471775272786778079497045648875977971969180977121317960335674803545281484638277244041405843173930498252876805641086230956140505393114789364314736447891025715820474651469513323157084901674724147771812488227324505739689882601168177795627986368283222358193571518101092407246753555245806996008976402463719796576013694321996247148589563604935358788696200042039920090029224117295899577339210801926387207155633494490799139528118504103872149302676326939388462152383086097878948212623627221359131494874034212593320907331740796909304895196215332771693570470780512375676552525940209049123867665185845335367553305263942881180222492558809298727209992587684304431262682971206500992094956514930582501276989594510847896199038954480593159004618708939608511923264200212752388259192936190453851246818500712811628146096290047197131771979216882798229985383020822466083788640661373794970348650272080477460896404371252770852637755725530233098951808948160927305998581314931617316837467857204576483042514723993510219329680917579307978324326779593439332426802065893886957037109308998232825550343141553555487515258594753344671000558211371897470586094673630837857886298094737973476597487030728116005658591137009905621144928003395064955301361773532723419899282343052887253953724721489480724612630938884130964818360027379007109391874243081574246989892743904794559928569191665307617581685107999138895060557177661107395491133310352798377654714062572620777220156182722050215538780156844705884338766238392076861489733023181643990836000826440331882710252914899868224883043385345250815076372909286916225530372135052360275920444279268403073528985080666596640157306227581912739468755047674527130944342386561179705027221526039036668470114672660517095250352487340276586672572568930058471022235402981720607293163127035293826320370010106959387852507961860921226378768198027574791286608035786046784065018714768347412889506717964125278381503723308449232407653316321322642960339284295888525634314950082349888682884396973424256857992475585505041905731665109687734183771388028001621902421669344148313357228092897067181754329497938923968868383740316083079635112647445571809403957874008864400978171739952830775214083004332224867572405721751051249599636419869144842218870000050915914593112829112877464594432600416701928064529237983904901404892985100881892162647897745298948919426054168723466407181934347394830229523109718318744692306189955967599604975929009491772012566394203255050643700282219982487102122950209110028439390915293125321794788999564691552821487984169703614528255486554825716499107999982934694088633073367359653567121785591870750290461912046173053722585063195952427214261614713610811460905410891625787223088050784986164017751495965047540288139764436935778891265126302721248849178332298078825792628334984787650502606548455105739350698715663442861865883667095031148652524045547568867093121430669304627099845606273314960036660472248135223873568982668202091473181182613034409973440164941698826127585249867036048388811710553787580238450056421596769891458311195608058911150805521908394335546519237435038842454067694416676431218849324869862811141098146609607211969412502133042376372817299601825361955644312310320189971944989023388641108656769946739820805940039503146082587737411790241586890599506337021178483662627554726937375480693245962195144244960300116867324093681686223423358523037353643492081124965480572340827034982409285755252556787592504161972522586846298934672356956674255947161989576607751345911145764352194052495434578800685749222087917929647065425680820266091311610264354081361033261809167380352216245039410890147575825418425745912406323685967830461408339216258866956982311230207227079399994811082404598051215092449190437999086675172924240144876835609494970647857938856248178409074152238107467169103538130445160624678974111621996858679683430299784316382116751862634828459323833086871634431332189085685285098407848108636775563928168033587931646675142539133472940106212269900227030462912276517601046974231125941786326867609118375023275632407918913513058973359563040824635346860091398142042497984785422151668945457319749079824428123616216631831257511526884390696999329068025097345627102133422448878455982590651132352365672370616679334503404873867623167413134917932596187793691339900665234039471426062980663236813184807681553103222565918516116359639731102088407692776082700389226014956888143998550521032761893200944411226966953336589214369159393563228461629293369106517054606034721749766732175955834248722140341453330232465863253454772304398907872063905924839906982714197857115498804305952584442543003489765230377930369206284728444310791205700736937016005679069808612241600239174771907681804950962106612233133587773092332821525934653301243288735395342200198431329513285359907150963495911296931574006292387411407932917059990422314160374812364716684988490944962798887785911197488722737027689585198633494892618700479684582265550044321292839680128519765280397183673870847962957143530163149412913815433421542790462357338578473982624227568428807578429907489818560978435080488108600032727012009832412570554783011629679464001808018979481305559148944985552325313987695856319050764851854124554389408775183177707762766558234514341244455849017354809782076558870372432705455577208227298659391310179988179546651416198663986060367734059715143182531315191268190958962014914636710016420909838235978823768952165653351838550806084216249179936380365156646875878240323486475939213962136499521709437539171539774515072138397525113219819751063436003387586575976183037914630846701059104452444118911774881985281927865076171589484646124585163478205548876390015713832263722855696836269674103064801726709180872597040462390051234774193808881145442128770078755598933529349024578950289010686266672776249639492235541063161104697359208697826022822697672260068283215290322037980524379956603594692876957214293627936449628685434454866223285602842492872432498156469559480092875035385805700084639015534769671687883910141504834372796059539634396878766501695211811763520492047403467805394116832453702553134588811135255448330487875135714296474064381298953421733244194484659212667633915917665501116651465414183761367298920438234206468477640258553092934710575485516348155417688798230806038539839438200445992135975145740623434290116342860294344489234310894953586097862675576611653496618055885982298678626379134437721889716551859113652003593546095352033777645253665797659978088230683181190618228219471454817207918445262549514911479962074763610364219568525269125888316734116374055673026040650529672118276748705805333108411035069452140287329782221997906693108897972804016581762456517332206276834854223702591030238318328129532505437349939672320506945769040595229346091943323741861286697362355546148022021404112155422033146439391857289517296162382487647484485843038933125900461860641112865684685654242521437799963844746813838256598315162143492576408995265850866537224036902118375699100971514451110538827503508393531327436892201368220666358509661837588188545031340709593212118368004460091215763336377039930247325370866147397671018484329944967813404212319709546179598825844827759155055559147102613406133755540858164571309051897561286553001975802341169725387681142606423752440168213962437783782542936312982436846988088677895860488868504153438320406525900187320074893354699880772148552159164704637150994041848784559307315889450130526968727640425701041938830866803941518044858844176431063980094259010269261999041069328127203002571726458213666907542481296703097396870824092009659580465690899355337969588131763449137616614949409412731675202647823838025400778316459837963763467197686526158168221775669625316011572735369372480291873987014491520474223628136477322148825042714255467957128723979701975989561711584624546428913683757022269689165359745252226313100737397330703567481045069638447886845582021601032148572010003382929204270977213518054089377622870238337926391717307064310105782639392078540571999077328190232904043167199333348266153979004848120637124259120461164224884863291281831332500809814675073335432297339510769024439524695899524397272958294889867405416325329599748028671944359208696299794387268029193983797757574498492404350062776802551266657553287608433893721382877862525142035359511884207299909384996793613106567361498766218101041660359811872083919803331347417421913629970987992854319725554113685202648960200419871109148109036224088495383697992023465675976225101487003852664129735912065981561525498403452231518000738236431755295900829560475205824223031759091272570670702707050811806840236973577279071905991315080325875456617959938907282563721359481964923557657301179185379807899255645425380703536820973897644111043771377749958398028313552182065183355339380552900425314313625864077038567114401988646064153934905979900754722225814759545491726951728144408458465448029415440595395217504568621824928593313567716817155002869571956286591570076402380018160931557141700276007454670178710838005198273742560711071988758788265359847116878021311818431646889714584145598980956043039479423909660456072508803379793440133365605452971622123841621811533236968696748921725256320594267257408652704101330691972110315917334548221506094674377393162952194976446083932257328614847727158885413873435986244650993204832940935724128300520987876454802124468201656350558926390695867926742503867901577325954337192642656808835570554369807315720784850522275527284089668393492773752358546641845014265934150857303885232796514115352624310229082224472641231920550649335683171067403142404232447758372349094117857565160307966131975679600486953931293885699498286951544846073135745156531665905825269843330788901559595084424147433420586957445755960469889839534227519230085077301467754776732942857551484431458102117604176679847729892838807665250917363460005471561337210181408438453204101637033839842421714095872187519187640734733569858861275643858318994857877305311338740542209591537942180869839694917668534391800739117742325353066465832278591926181222109940174116099561323699264969258436185218068646118497412472251451622676670697709041740530855806867999464839344006709387204921278589936043269760626437536180291883626738326034734677943262758457691183014430294573965276234908978243736257342282809350006472760940070917541815567663571025523775980725685212187354706629031095730604258358056859054883419588757397333208197671488337706143066460163673238983253409730900083138045149818182778739596992006362499746449283236215802454015545384815531166820503623631793876692005537954636676057399426424908281086087523237573408619182276396222417657441621196538904344563568516724565064740026748230107851775003470768005945334458216556253215217675539216328379515605387128971587990002737006850577022692710592422044687686000070181489680638855353461543140368980422277487620579117427136372873268959090095015444402711844881826424062434183691508880447006649485137370924688522605780492330980649897176646707625820246041429303793020694776460651418716570338590182863787593456602379401503618432509040997495825902872398022708097282591130034599711710791536288734131819181320314199917152182821667363135137188269666484703948973413737707117392841501123308751566171881546693760358902304605328352982300136977486365033996844230740324792019956016839878679069836116469675142178827318636689799000819195492349741374084496688388921408023190646999733984279612559630151095396638728954144722782181725341925483125491304438069636264108113686422115825850585855963739474136653095000903871121313404021061419264106267862948943721164948220308742281821164671404137432423792150061636358306180204421395231132395982060193514227716104716517709544247568804103023471721067184794190582889487562117264775877429230565765321152528032086431702558532279814127206771844541937456041040540058826734859329093038387492869998472073205329737332742144823749783316143720695160985581794312103649732742812440906064297974985553902941143877222813624552171345132024620890329600110241420469494684574595324536012514767772846034520239461130275385482572185851270722247846655348070461754062643854869009434257200317957200055695832746094916818262253974074840972856774350139390786933966228611974712081463426948569670174242692071820292036678071964842147992976664997918545184975798399825614872567986924907387636782602267114390432006259207195012406525210504125230249832133757765728730675527230194036776154364999133460658989522534257773840970618489302624105220634963446445594970685486324511518303034576474734831639621723034994074203803353181590307756520788162417750293597286044330564775497932647631442298213068613945399344641632485386767079220416676798145850663654003285516237305441696641607893750203131254373442289063471022169978739498668907519408966771513227571654423872173442297173763918468802811669798726631588052542094430794483030873066641481264592995924336909333069868455476879771722119503468806488247131419232745498170039015343175121062976615772012793084620762228906398232734140802437035871878131600715798793188197955129774021776548694218632431327208919291472860478632040703008879943932298157339889590348178192347867940382399255891766288336354802089493832365150495561869344300766346531857361523934926349252136161417587860948101719042929115639781277943313203083389305826979944897672865375137659259263724980286355709697785566846824629500601683427362545701012050247092472226317353409042551966124284382894975620153131657726411685645276031174967453622487307201406158896110448590633486187141748265680841967771484400180267891014039603311461066555926144480916682616380212248087350763231672938081844114324297130287404055480592044231961421759935808948522750191093600373548186864589738316264793270202695674578948567375745156823332048622692114659598124873110198476593268904541349308860474018511400047601922008654768283709901834450134525206909313338716799294864192471944997203707679360169280235651237165316875227450133996686836865161909811377980029941073388251362713297098345212290868527743092661467341555194516266865039113465709429497711475358194183355355625284838979940194612282890018626742662653237625916473656241183918004169706664255572370407038375828950836081857495015637181566699028074368803438867721678013633181822162288131848949440285191336642176657088414167411498551015312041125220804413471375924014097673392356769548329344069814325865419691793039777871916485420666183881682163848129218454991446876481863878544439921691580953572133202704982757128757947250987153279854850178050496231188028667803232739212765477257452087463576821093463439072590854770988572867232135042946812255014732445239814899042706923954411633684403845197582815159620613824440891359407220472430044603571393994830991236666021587321474164081402718547378304033837181220875095993836684257061656467957486822243914810373806839747312782197590880997950160762042773270351851147843953585203924923268995041207222953512567239037658000242531809247952096788205891976066525885015866085299514480922297083556840013346041303805345959027662964863620629851622545601341348249511127663544159903718170474120588717075866255537108560149884163034338056549383928208640163816808571789952752101105362192885966086338517552634298892848125702111255596455644071287685510671145903123628203323822180080280011540024493457565738069212879761519910792333800467985238889492187433687919432665741615883481199367739650259227848814854683694333486366051168812734526569030419133227768076326954565932074796543916406935926234980680775359090946815639475655240755629704306034556587458790997529998604010632836584475331220179853829932700356673462462361724820136416967484380397423070408862435515279018602870407464306777502618704178458048398925173989021313088498294904818624125581109887627467706482096799368378130190096595074565736839302905496872849802802512366082432786026588227821654803130786925753348867548293315121078831187522928675654591422308022613136196985725364848084674134644795270735262771835108324611301463351587087845891894991794214317768675081650653812086920526086438647220844135507596919700036756011271262196119762053819084656821092469048407728476765915937914874485575574321476187324888692549257630556544544649354931840913931045475189932480605323199941868088545319729118184327531444359803834127578730181637835181101687276458801921437919488305298580674372158609134170726088780004664292272424838580723922626568145704265195332260131812481369729735367723813953699088464162579398693546571388653637246333213529392225876534922282713862181870526099670671244733755798725752048884960459517435727557701621394284675106065664907106536188129887489638682000277683678106276009676416147160078611565975755114001661523573686237744185859787237071417950656287857264156962345092095568193969912331094568458910226748073579064069756562962767587904966933710182827611868599052301589088698778350332220177076764581275200036906324359798045166074351806790890118596066519090348080411076054521155221541119930422910045301951078047329590885920528555723588826310273701902333732059596712161899845141139097335664715188793235889622398095321981456029949545126158199854163707538843040873877023163458430045463468761549233054206712715477856385796779721620265836225636084755022735926417894561259404558867074513404730018053793397730260073308808703511256690211307679721334753143889685714289289128436141279012913001570977185441688975230702125640651207995431587010902380137958845979356696869154082445530314490756761757598045869626620634272250486699542698472600808324155468361488432507293287109670354826086633903298921171285630252734738546667941278248147301188192198990610630040730656238827790316543130902137497429725569109366956871770305169357500969363149258222739424509092361240233131519281201693349071449275594514666197697251868844404939393329442979656574793973591852178301645192340018443141371110943205163958239823225821091398843372437800751496549203592542999610384270707981353023623626670895094429228990830052657255539434480433130240760820497941486327866136317872656403748893106826671180268061898843492999369155810784412104344226383203706782796500663849571372268456066263899152593208291158156258630226874648966448659635151544493251866432710915375289900036691408239034125473567636495895318008754132869956933043886104437261703727956154212322458461287366329265545962278731023084311323987007104708974752198928877834092115406682597314221679742022855861216829422762376173678816559550323328971854141058046899523592949937622699459053731235344366329794569080117264062318510768256734330959521519102323884315614587128864912633987771278077770536746238505493546559015564285792546633769229623801076452080440032370630983270199024133455651110077540592512094550777439365454196612976868132748204388892308580843809651875906493166668802998961227533921169892875230257787360512221298576114580632769756107631856807951613908432661288523576648740479401534538028943521041263125772557942102742008209459722992483629241397042335115984689098748906237507755033182720488482679286307877995116489240386717546258310185703482966543238935649583253191747952241107403270782698805473033265394322470014054795118050948592775991116394935905752658334474283485058248816717884493336614483163461941096939553717211833525755148255051650892431520922454883354924242208944660753766109955104746687626986699998393596732225769384250727526401996927472830855756317516526206396086893324159803315694816742096175450968529750337522200967668950041224250572323975924467891473614276218613534488187336354270976233881605290463725814756218788206255963408683628101988042146396067842213002430017447469157805327611004666551431698112385081389113299284758483628664000993256673984325129714061573411655676276741810199529187047362706261982648963337587911663809934893280681398163114126507104886029517957344510426583946984890558319134137359824720113951923548446118704790176576902021198042487831142399269288497925064669524925637266648128484818904843660881777188045129922816709958305061177624306497208010284829081962416572889220159484722369100816778635176149390384143672636987844809939217398671547907210889516755438471799896533950293725961352766920391912490456171447306726146283944959836875684087505064948979181423107377190008439054854028312145465001640913767141858611827895882750507250973795108300080588235972504965241125869653763575623885067403008350167010706440171080029004186536646788445424657478634373880381218395031974460514728363050353349127889085937047886438575868507516221623370879540112995652890459960517033164168426051159768307892100221967682412945488115907487134761266631561290660691642325737049893195111533017276475151132819096072838652449144472405546818205486627483310138417817738134814986004584853462500452064158389834581625185496148503851685643661040942200560776324597490290081192057248242792727087688218956929242088898960711373157343729201996823673763173219747707869132615550984928239306425975111850153429789013818843901435199915171664241326204914239224513576053082581591085777516478088186020949227606530674949659460664938495436835958781775178548231322513555831231701141711492205054093419120432179463110180230888127851949728189002062723054495990128305031765068658856889173769041646689915173346437479631340584401091824319445741994243176137303476972747241356452271680448744768164617979833912526667964305812694793364394787768919357302663038610675072647709632242096115204763047608128247981387679245664226134949004429874208442881223283936135358984252103704329145669193437787270098708550397850145120179271660113662839422338764506215412708288645300778537063301538950979683402157117716565648769362810920114481346287817762859971229923381440790016352317398144157957316354295214143502417455333684721202559934578885920626114501039650245766091376169970498278794084624990766087663443261139046124159615523801359041596709396817199336418042354369312739656173461736073215162253508241782693789664996774916939651586095908678378962919866313942385231534161872142279776527864745714937550452790665307141282238564201577250169871289483440113415811285668430582681138944621718419049074610005297951030955525650063664935948940382957603641671940015230781213469984808089570761880595971450358770574367405051253460245569187586907103084488215790911456789316231470407002232458113542799880750621956297837527274029977345827449706240994004026093611317606358940971923755386357040283752837842019430972891760807862317225757244006819193257693913903207302800573852067958135691771388947253035083905490737603941662341482586773918870895804466433414622095939114325999470301998948102608124302254698572677297805574873253547213033940472817268866710904686975231192531813776203207164289726746270910106579330855601957281014605179781800357571885380525736436713684233845025873549531902636966827605467003509545512519561464130719103651317656528916418832649750090311767870071321472642100935102037886039640388361549536047331403172381416400599435271870959445033905716764923703582741662096203614194744736184721397628531331654357023851827586830201102314486490869012696089494512628141549571595681397305743464674301223106862307935484522974139945892550464321879168849900952759401097537646360912701508907340902474896021826400371848527300684187643059077367603414529659321621957682399467829726561646927078620216990943179848840033417814756547691911430810970663874433206929840357299443282798064819625729648033836042316338370266548781479800408626060275896045063181015700248719878358751994785427853852292436037624825308855691950114516621461800213018330927917784975208828533090971242362030339303099402954053401458103285144258040957923739101899953128866874033761022715270408902165728103407955940486191330960021663782478453049407961334480419193070986012918234259862708722260927130733488789203259352079237961134894936419228052486716428616829115007002512387509718359469312978228539367324849275475811885740488410262953817946395276250076844329166344908518295769719800620806381912694178657640625448707254987850909320087066515987506797115587301687359265319736697680247933478199227592699073365319070347813228631469948900929620006741037782646071386823245355254903030936558306103238375560029495283489047009408507037116689216513580092572703889648735967988098698724001291391949503440894234695370299799815551723203423806749065349063992987793659559641881483489947911769318277366960180793786997304370040060737663061064298449428827892405801888827207559545128999533813408395887703518049479899239648210669270955187556150289684153600692454654451014725425041142682691951574418133785669595674059855250757393683260072686692817650848267363929742782473850138654210689040057975029131054816236068138396117533022592770012058719086633659413773517733451203659874681657573191970135146416705034038693498786369278263177004219900712030588072770564541685683434755671026303879073616288869760887121657935956545398931299574066624126531232668054055919759789530294954707229149028985226370203100733283120914037069331183407329573356701808162979882077217936516769354051320004876641432661209130400998979913763498566563000336835218539087306716546460360726221609463696568449566780867923846966725122174280475194914550339792899144750593300103165415111520856503094555202146405872527090256395319745821787390617193277186190823561017677832325183957529782207309325548625549192019677898627500107189626693846615061840067450910327114833148489443184807559637580694729778517948385264238847408102746040295910088923500122858284311904494440069294909181286182257166986261750497889126135527051808392052915628118972966583203718813814259053426912881616514550833904767911720269175247372897499112185877546766343210779797513160580668525349188914119833671432216406305238001406980445996197884755849867664490981375710757383434797328327196365865022124319445123645505975642362769851731619751250047203054903651397820214761476612737319689808206871820184248109662058987446534201752927409486981564167672618256361379994392795651655547363184653670547368620612635146966176416563153649568607966753808560857079846613718168334182829708685123013575222239791534559778337810236229084714290844873487591829194212983905442473042655900651003062960816478292154720951669861676412354576789315775716014035176201334182156837492661400354612278717235755133456970449438902102096171714088525545134509034921101988107953497583714631110151044004830876272251381024195696975324227029283821465884495272661148173508012148666864551879552286935596566563871556009750026807818419517002406248760986324565843379650897892029350108102793030518100955270720386866980080921325251963295830578219483718493286729157915033384529884899553768827434126662428998803258930854341725067614413278686780260213894863737758410205373032702469501427769806288106827489423229168161181664037214131012494818413685420224347290840297358631339656329315074320079160929549924873030557884096382565891066191621019122822847412484898328276900331841847842798446394700738675220448314635767303255066542678784259947754090395772723781215126050100182724279164294935889234740100629628084897137410489266682871028443047700062298930228060402708553744651871778142512323289649970600330400613057406368440913929078271050646197578960917750860243533240538037522007981890350844828726489720777931024112432110435291988699456759547763211705402997925392822196086784304801771752202386865702237002351336852937563558828703302365470297790982735437993066305097620981720848713721209083258450413988581799861551818925613170785561178488382178865973874000133503410743994968297864565804834615516787232123597771352055949776347877714638665215802498018821729596204519186753380326257802741109739569817779706877169156103858640730467750732400751498430044487499876972073978640596901615915556341105269692692586260539673455856562531538983552965360543006382421990470095532256408274163781744607287272976329621287951077128248768941715222773855631322223476478119664998488666714501056069888122681844085358116015177451969939566244184658196722016779775106829839865382084461868210971524957335472982425570483021183942521636040046464665104321199379300733381281424400138231450835619638703455152804844933355636916771297585019856082244049689575147811413979199994295736568436946681458780446100456391945688532679818858604355691521225197856074599915969634521375625083143654400264172931564116701542719713137285686802610951699361584524258417064815669517014930344470566877967558170424179065250268626116990001143837271287084324173372995753578858441113550222205988686553969200083075638190162817303727158633001330224615034795046467202915961813282047934605484042256314349133966616293888622082452852140177560655750549393708538786347782311750539780192998090659736313036834866966927375403497645346210149499415270325238675372597963113135963770233665013109829111482140130589335535391877534680582296906441827781473710785964838824707695359405098155504377227034689967306708558106491941773006411262225824177978900638869858665410372089383225164310760695514908464397325374103300328232037861368479095772845151661863678236307369480688021076877922290158260271816961473908083929038451907940732739410805699185715757226694139403720806892532794881951530778722002570324636875547919073155234913228387392279144570169478092935559407304944626136654347423157734822680206508168362670012871855969676975196388801466045269223878636812241481987863229912765763676061496574823262772069994565572970938748470980665052007863101105276955002174235074431741341091986272827561562099213289021310243704242869399242019216606496229426989679772782166151747822818478543990658200424768587102472881879082871088597993879404432470492663603807466617878117792480040255096248045450252029870445488440458473063456893982023736012059296916991213520283378319267049566965219840645983904861647035708399929357182134072165034962207534660842884303371887175833209809612518874310089429672143786604233220030161011168662412263338860101775816973025020125597023631134579157190677647632426232591764676349847596915425634552189054577391642208318561112223433508787495079183014578836271993532594521407148995827894540103133294672581384467542220487758285059143249394295327365817440443528627793674650436731892004594680209942939194634627177667407100938230771534611410292584038779123608531093335495322191482956230643929160811841559752454942844745238416709922417300864920254560949534031797122925516631005825717201326424779702795983805595554798959521019250691839757593136512538756859097265412938871128207048893819703968120507060368515780614799500555713351393845445614332382976341363280769558759263902268788342493643010831867105519456664996964113444279185689757048542406719122453266840372668425848807152922179871256542255014840334925076649752579124433845155556587372997370365206261058638002091270428799734293754250393370871215144305429014053244756523940843737741405901820082589210112476848881955433844284889998446039839859563986819849024263228108827323928961729370882473544346015050025103802319283621036823013629046454712307831176495681802638750506589152313774211767125873492401039249067307899856604716773287585409853336036108462142878585921736704619302008130691268543286997561168131417912645995192727259164881996756363439771861389751678367722863222013865328563269354598044111250777096080717362361188582422000497582578889872109194061564926474217743673025659602662441495512584788309491208633923353579074744670452150280745051358616432210579424253408968508984223489579635426756732678386422261632097049399323623741798537273430269306067459942051400582366858188016788725809883052939676623148424703627860415576388813850431557472950509523125579693154465533667332820568004021378502003503475277320887671495968321721445940770959983033991703302635688075977205485992938565766712532693465570782791672499352442440220474528671865281588130151294951744299281749481434127970332254849344040097131246641249397505023384701597438309040318548030067761894270053447440845614094389111088163604979785321497848513093325189848545492855262775373465366465984240902940687311467535814986474424309661486558229075641089402742478639189094819369025601186361367515276334400337903776074736829631917150966522343642721367229215667647545708117899081720600291853342349627850941803439918412637726375249383350299665909614087364565444380959734777961779473975757496807299105916347972983484300034676567047386508167896170975233206577418256231346309177109475291720684610698835393935109741293176289883079980253066523417817094693667532430440596426816895612872698897663092917173695628169915777913695785806739476729940156339375001151010966669984530413759430400145352044246205920903301810194460122246569924721998971862912493763415980983718170873321133019070826012673632707064363012366257976705841788084709644642143009993547884672351091678812971103576776877024513239244038753178244051011284489831702438039499441044730199407658143909952220222326690897149562413965525474544036349624479203294609195618939058821664307147428012945508091554761847563759111247315875220871028345747102952380553980587541318639500727956362266505521136409012084370798599442907378084970319297063471758447976173839518999137268336235917696089499899874772433398039117990098646127019971971012795523550934957338814648429529635566211080519032510488565178948902780667519987364829325347250428592563887372409303503924913925394844637609112916028393492835695215582661935570887849335768773531846852950935678091041605426362156514596405256704244798914587904963973284744297602123100721533917723381821869696340135063045074730232735161511234268875198657360277471934115417595056783751783185887228052793797125835172802358374407359910983869180940923734829732790288708447224517918473231476432220585022790128377614331639109385759093879561342529418977667112158206072175953669339651135869432438050379645018082454997924778285350947908311638146246305447625851633777017992536837029652420962791825451141070523332488859371758508907177270563606470042684812267762294391951632150665069982419617603130222881014721236189791958421860834870175327409426987044808875251011567725155228271436913689080000939390765800755636105123616604189282157835578545663979499254660840400978902787808394871790578759870373321390080378411759813636455840894955810746202603203146103220758987060037844982880725336921018872306921697000861591553015291978320493193569281340036502139349024586065175988898193010015701280121331634059525678761993548848392783740284226996170927020063862199561083593248627125416783022573599945389698908280542661234827347691026590724243463397151223565622510798691710015200815401607963607910687197747047494364670886031875628623852679797753128406146549027247405686950362119675112658664167856856161773071666880330147356863506923514956674641522415676384282109531443488612775155777774704010308840014559596625097610409080805429990665464252877550413678254473427714239710785590710553935290483702555230399898232596097111121106123941582352508391412257003817199415817786969711512495967429458320994744638758861353935911378769904597407809966997130435192833498407333022336781702664534739462439438454645307299378487940547965967206328666516226745047943890073082645731540210254949876256278299968293925555707989928642250153004080296100006248669468209270942793332853485930233072494286090749545653208238977941681103761625452220857341234543473691118488301523273909369357743640844224441997331533841353564800299415228880040210691541477835413026575614638856885480736259216810007260359084005980704210315828619348118387655134890798979572709684394251319942818116107807645395284572570736118334526481876404474055259300337262341798913721338956519726152723473032897904121191353526076427798585589897260084994834339527872446448464583639942344816308737409990738009009287005406607785461040834236135909247567915044401973881574444570584433986818421925625551396021362027764687983517167409163994599146870000763148860467221141707715628380676085899878907807822308727292156876030798447219991839522490742356186206011193744910755279565296669484524090219844821586406213560427805293820169886790673927951771656143318953801791116826345335703661902752602491001905129449218559193639843596714303183727180526135838859331209881560493596783287275502070153112662464859372083679397202834820865131706212300897089137741215848376230421546096933779446857982222647340819146377981964480140590716705905774041394773153536234083103704048156273494949527856069883417783308835394958598710503592039152060206185432786185501514067071783287629836540651986324710685547354181531058142674709214191593728525263492065673599084926828428805109613439762003224309207154406017420573714417932894595598627952243583844289485101779347054843022093882195633915402092651597026163381666575185432361330080136895749346420280619386017270880556626523593110066193315939187889560434916811025576433128330245813144635849965229147117648295031037625063951295717551284669456207844269942106546267588420740306970048763783306182055404897434872123663486958667048367325240147886688823901144152411677087052219786262454770093211205163391072090217724514349619113564575705512787313643898283415586281109048431661921653854561393934926066651550535922669507902993954881881866137419429667337012235070612965611440493211979329008502733284938424055191206615283360948580286906920994842079762324819228812506182604797937437492578365952867281798528111185573026403998919311362183852255177449050856835892135636553172286990559709308278954462490163837530270639271469343685052094314158310992676043354427172604664575298846327386763890813139758051702980198820996810939583448224726328932728401863752307189991487173263908693781850949378105491440572207763814421687643317132562864677885557218680251499318967280097068031735375806723203627363152715386320022687489821510771422006080014203905426892025702170372142637950443982028109984413572118836613930245720640753342946528609896460804011706010040370186629557434320067070130653006430771242056006811471274441102350232422765309845277562688667925513941812970298615585304167148947385209505406969896258936845341969237916398383816113694616202188089458170539836558344269600780818902554651003526639400680555121020735608308940896565678068814902851011100190542023678627245181672357410666524884723035724937957859993297867639621161825623785254370481689155113422789770456431229184759797153260359947044962334202978425241656339271001086485765042940109192959237934865413329793065695030746822878696397406464536727362942125188019146672276551673173633481167476271190896812798892254748750797256596543135256441174854773626708955817207619469540183207638137243083796102634343255480084390391079358668541454090742352445413192105574874765385237116903404834776577065694744424190618968821131946844459259737587275805696467532587359582229643494386742314003740028137700763302386261020714778909820681449836999807274712916392291114882684654507103104331744533174430539043470961017565424777313756694978271978807045277165958126229104846149824209660597847617685653331756176192565777246999666004085028371644762030320529881717530512516145461600429395395967551480375766232795411083821835868395004619298803740210741969616708058389141007838582762424761151584343085992125125256938211684218330772580517961357928126979362664148529548263306989781551181609081346190606401073663560069027569859032919488353145558634981130464437847296045192352078447175129416948150140519113718185525446762983176011864567544853682246396279676397797825039700751370487006547734888867858418205872991239112854760646491783238987265233488009166705555705218692117598849842651515186401544566879631565018698272009700717138874247655590740347158698828544504701642978468217099698509400055210017653988723098690149257108268009684763834215186925448426477637010347211451161186938188272615714655049726570832780451563224403250687073847927902746583276475390787645833403153544703765060429857526780800843606303775448924597237921697073999148217492982101440274604436784948688666756364999467062056811535952261073468849216359715077825387684852558833795200660518411992550875313510950690260248596703618376384102644919602414291060372007926956205490685321261481852178972204514595754275031591224223532626615559167593858222714150829098791098041021453717365590990414319026896365502459559374671911201012487461751764084331017501189029733769041024435554621094447887095216800742922045023928123225708714370201999627378509972828649769809630117116316855920778316368347002488989713231033866639011978568629414197470817133557920631917661396239788006641464697037475667174649669515292124939478868689693824217708529338579002293303876307819143614917704552304791994638336401007911438045410926765209430971354661036703100197921990036884431480862889959632014018682186675409707919729853002668021237360414122923534041789202813296360998852226811779943920435009847768106050450085535279615523698301215959710060828672010727487356129630549301988381757853292449208753466373980050020282381516645878881977466253493991066177978752593663626318869082609244383965739815516331270732632651808232279763492581244076337588975063252674278001837315643864813942055432940798978526968389716030381594102095643671907856500405811550312816040818352764848301894948160086145473491772251067033550738907899077401284270234403259183919097813102012237569270412500763028758172294448097521802510897447820894497934225462904102624535408874629555139448184832371416770841915074092574412854720178820425237992231736775971729009136263297931888110688199195504595205116680792475639630845975937076303575234720771925361541477810088405686103988874569774975573477842076624945797829244223971958803367041898788062777571185787426174810322896674952322775995037538267077189661059863720634664601029827403697722850647064676628972720831405301572241671436800088804052737110537175189716375533500459877677098293793036123843433754109304025271973851409695554473239351097000783268769093297457100781595397254215510103863105713029453232859272010929691158405506553664577512777156494163395914806638649997535543260844213139126756816476163197743631874695481571123851837961371278970750126585808432815829207819998628615763132260495800634314423346564385884634623746687449397244573450740370961364327266759376885020380423316016436233193667348593964324774468362195886573433336418938210320279424803816559049711112530125074154745571677614505692505068420878999331897212220326383562479129753710842312636160816857781856410216740935698751201071656762605578660903974199072691564050967146554963626256763376497017384585760056786878407739480216232399847368026260512204042502452729772210341062780874567324333998984797539182569032986640077729388230178962751640168161701842840953390506761041523506755669101037173282356941610019918099328734662470839906548949808663859932343649979240433956806030868403188777183037800379219432863845377573473632128645499446051167364429457200428648903400851642144925163680411186236359209302108082918192308267939858991735950654496556721963355387217352343838186035959817289764143567087538309877359935420448875045394343971395418369437823137586246164727472890192142281579945703877272206486065675113935288189834291600229663765171911750518414693775960776654229430503860701049655079078411164855435113941753432498351021283202990245419715075997458746126565964971376678865692920552737252556472572667946588211181798148741099231633987544392798450368726949425484635223373156784642529902923623116984569538191831634157654067409960100499243238676181622161634035955940359184501596723609958598413735792440418298105939972572251966718791171332032077908853306750136579083511320405942292744082827891694859331602781138706302592604850433693138608230465133138622899224918321700742405369883729884245056871567183126826903429818601272857342562667822381929543088278544734932735172619810221765124243880065218598476339010770061292169008389690396748785823795960815606571968385505864023106005662930809447817596497319678842899767318200288515006723615890165294867086643668421576971690099825231184784582228686025970858729461767830954457546407109820830882997320162717090922791269086340655855640563403497099937325115427311655614410351271489399026695565348567749256985026383045380179572949156922032224309522826659082560082775327967329699480056925029435467835909595375489249983406558304106809763849352637661634917723439145911399742612204529304643406910466534926003016597386946328741571737932173172673650252210561797992351274503857351393995762192268652797227172346233274064940126297804975058400989584523577641139676604069363242933885507702079101033572451024074490065719186083978597267815564364090953031210567067851364865073499609359141592859545188486666739276090343202366996451787805248627118827583939848507837207480796844638588281477612488720815552768271812281593041961664060882324302525483357961555528344416974935339304917824326957034464142927945791287969592985597078212441386397066609250732908312295051324330204864307475860222184658380149211825164404769351471949159691914376526819540115640225976840441166444518851711688239410113368679497012731822110147217525182908504449786659518390557977422438090672235006826248966237280466791702840744883239818236598692616950375899388669686664630585060640894301419679719336959208769166877742554081732617155844851636348926569749110786612777641763170662801685626286067628433243633867359809708666152637850838382368554497823686193990501267481654049712042864235137385950675025499484311267884648820893075379853063594199274819368823007139140364419531610971317491482819179065797449833350446036227078962596660997816738061632712755115682662119870400478016830357468103924902710981692570439923144435516102905586626403021440242925753590450619727227082030963221781369465628243796406662354395235102512887781043365273290414670548507992763977008709288148941430711470514213796013463432035652898343171332659174992733142069611458805743862467230443632507256632764500337355101403043306001261314506571485017544799388557082285744398242363285135409345145315512108170892423001035525310392310886376014276711394872139091857381889839829684872240785054537843277735018956229822507811027336323392387780102499401511522598548939936378567935523969496800157280025033756509208506881565364817258405655744753874121429034274262613990251995580651659349610203790952086664499372420794158134182224104786235098639235654365042297319138051573294865106598078191195646847084144202433848881654566282976719236101226458709606396495266937749864772158482819287500263007490542467094806333468677768595032541617634077297571759471672571301383618112326792294016779846362830480338089073007815279661391790914939217231072128584411908117843840891320321544225312451921714617627793321128859379237933838009442539292576329085037018381430868020727987950806753834925424280636105873860450563704859079871177233972731230408091731176948902991158989647903614923391577175935168537434622055205958077806696223328249756670438186463420669839480636983760296568860049125777607838204339434633156235217761202396241278729498569734272999217472592004799613453137788056843091704490732414680941347513020387682194632948619856327241720458114655071194961864652461263073683624264224618001629288002237438127490717850412564941443428364046154215553517999360060816287510436974192214181825077406298398528875790918064331372997108002499391962264204973674779098596816403179351237281355757270983127842939370593351329340701682717263420027240129476788457336707783925384144596072982047812682802898011243221756568663300088854634057384978582846409352630713432750089217039586687950657181570242762669195618165362596263896509654926860170543865900897716495550136751755064732923165139173976501051861746557093236630253176373271704186763521235157120799557788820049470078756586138684595658575372198699388395282217169957399563903111313644588962095569667151775926509874815715705487167973005195784635943959631418854747878991263048343287622705636108788963571551102554260864112492951503479924222131788025513632909919641081600552502492818838452713749316301053364002016388875176927888063634972800519480008609052923899763729738233154725642646865703749210321851146978153286756924309099491175793603648399031696069506064898061115540024604261781753717956237985688038191541366414943211306375297220043315818071003651384065500731018555881334758090634245447941543533706717230675082741006105991881768014465176305793342809160845438564039156784529028736707967463462397479106666518399152213532066912172088239722929313282493122494713890956478060485413482179934059909503008057711220201748005075535800422428790963472548818027152971798619404589371554816984500751142989430690950645860728588405590833584390433080897686335032802542638547187237080722295438799941194411581377915997729034140840536767904190585439470340704798260064571673055780184285316022316852148994088026198499536394199331669944399589181347452527631719983971234906068545132019044561194276752545890090922011668696451721356198070634423458426395927961078321706815458001319678884957003491388553097317200110192084212834515427375903782292090965488161829714495924079187194211801224438968749281510140304112609605735533835942131126964066219559069910510300364248069945115253051462597198499604138447395860862331369922738159607134708070234365386544186234736221354434934289598226224906008778428266864335853881544986087415519526080122171502491211077480950516676880685003086810944442998538587016291136431894846719344927579200938993360544282388766540872839441147744948298334056042476200955362174751646722442126012490966389518120975005145219369162872747427240211993077028207560338792766429774094486653772201471473893960542959383570649332970977434145434692865681196849788509127723072368900489599734091735173071869184752579190698673947948993898473780884885991407706593002012883343890057209450165407545072923906903019631652709544498831068266299448938575286296177383218854064420132404143612553310223963767252904489441446660659624361230065443415910809715163298597369164176949685762215904725052337423800809630897144924076108631878346838261507787995563660664415419363726088584122404995286543431506555728543212459551718152539507289267681208165075990963898699098867207630373775266475532716087870545545591946869156251606347531086395424705947878331121703974751336729325749572952261980424985852722062796272699146467955278199031689041120365234407412354659530849707470780106956383301636483163966524260930069658496751187205831181707462269632177217778797574569733620745931818202608548401971804472645990959053175164164055115471817304360860969204235702585450499978871226343338209708540934932003673297254406425855039454015634924090819825221944301270861704723372264049284320753608923259081393707324817547835409879008682091452215015664736163642202555880132156133613214021221622248520329103505685214008660250502540551873423005248219088295729114342755496954037384069885583923682653030723200819669776619127272624557377198569175856892784868482715019553295644940192408281868025700080260610100860722378789193343488108445172818338603139302893610098747742269637763479070076003730603714842896558661277917205673899194922109140777220567535237162473326968378623245668476958960255091848949305205425939033321211229070036574815295967085674427746903481789417086186120080776186836775332553675599320461560881421304565635404255658148122045347836361422605575512737016495917254363145262250009197282107454636670835215768309756234142496444990672441529357748332894349718445558309985567610052607226016688708145185918380175672904872123922826998212730278965845667598631382568041378592315946981312254564431523512726997553469664598081487623856757190824213073713751600571422459731938886996867108434160677885202826276548448587236125060592973867170290394216966346370882914491327800835891577214351134574205937271344150406122881672216659111355904847330590987781759023061901580223840079556729014619908080094802811078404142417099994219814984827433301538113251615134241355155964626738882661790909558043329305856741185210945980419895647018518420447025288464332096277672228087070734357293664161220105212046895119125045839892992792506143649413522337654977066974593169050187446095953387377683817447936953517871363400470487027624580367775792243943899194563436883140259454325633965925465156625242281679094351841296302399581596125795744309221056084650781970679732593409925835255952831287729996298370305365757076864099344132633191240150636596053865141979487139697340728107461876504412136901658144720404616083114183601921102234744697302056648482962776686628145539100119469373323775276810534503523649087942409531492195676324445770401348771698592716351646966675167809293647281771508074184110283221802141088034936311673839080665045941174754380875033945703156911183263272245300369738149553100106635216418728851196187984250206778246460216683280761991239546641882378845721154289251388554834917022752064163579824950587392841465148636815371957944089342516879487812914402711777412835161990665486537974886933093868833340388438660572851432599979151144451809557347940777451801849102151729688809855501963341777559162906848692411636726060875919319394605625245494467067097612819950508924355421754235176995497228920447500515560185263404267961518415325516557875560502201760353336432584069702714761026862796757615678504442450532001354070862737219374139049988540725244100406802097907528572185362202111635916715884164598548640858408844609886742353987385222596606385726610243624204261299556764711681498252415138680436370777865664308626140546673730348566331801010440071050613920949174557778551671741116003933993378599079118678347088328685394189000375813830075641603556362066964123467184740726129885574656283890049902183116851282898945423512773332747445211565905538347124744789361899908623020285862526466728473506499700005598990299568226074266091851351145415602956828610669770218601399360960582258842301510666240496395985532825889362833211787322492724785704735289409441470006865184861000402949854965300792237244386179476201077660881620638770514831068316515126480706492821919964141629225507623318865870170207058023384554518785716493272348723766501521970150717505935687330735110006925242708819201857247146098786850233103280914071428984369170636325638577628615996420967584415650888847304491085473121643094866596254525192624799188131726001236586024405507220011749798945811585947267473688321613959490338269149617869818401882499663455138327278735480349303134698549560455730194729391392484201978783635382986482563979470649309151851819254151592980255976687897126497345205990851577054786341969675588929232682379305129376704540833840427273727062696683966552776350296308813148602521601050992531165717688549554841577389304496122980737233994331462192138089470865837880727022120165025680267944426490089594966011328929583632176380338726218082523196429890930952358809721099763376320520652635837194844122525925886139308408611365645876550369685225573799913699626060316315000806572358034735330814544386590017835539195677227033541398882668309339414698615669295148317483058727197340639102976753021390211302581538389684341675161117825046975676180425054905780067361896780244950590950953413888883385098046596809311622091090602039890748455400091525345043770879200188923059508870909140607903706908854777679553521054448847492797231354529164188656411489016300107631663474302943734335319765115340356407472649032298630525859177857429140531047839488017122580496859104910491931066630267527050225637630698720243537042134457270997347081765549997107682049195811582769590497189965744450456279522708109724064636178871458436590615101253661620952071153869941330203210975239530380003552860078777373803299539477521084599416532994057856425590752868324547640928408999407053139761660226758696448080887330520606642232854642942733013588016589919592804448189001751495389843671877001817235108530497251053565342883606715244224058092642415875464822566774688189452740149476828273254605169731253774696213133984482026791087644563907505720760249956316555086577811267851927472756377071050135838654980772704327030001729146903199307317452490675947645943135602029431432250941609934111689929332106907825040625599092214046475352931950889331497377577102265335329186770754790702211518969142455592310412524138786700475229145525396797929029236343275314278143582228777215860662335082934712902151584746348362060866370269453781808024964748904367942419403492553720828725533003824400133479323553780128003576458845006474069498825644551759444007506983649556130116966057994213911665103681050318572499365181069574501407461277578835814540374350345738920081052026819099024876736654433208772138298696161250687817730538792604870180224365875408935338104189974487706233826042954078088123530430699104283055790824467387271677409295142119068216489906179845999021690726920443220719921079398324093112211011770560349287751951557865877777755637046376630078203050603471301407594372315535379838424187115475069448013216854712321498277840893796577013003279899489184236415262932881635640608333889103894642283427540972369758277701471011815376446584576231446577456834881430214004416671853359136794606631833373801736275771324954286496534171482190716446871302304844562062963015234209330108078381165324865161037910644618403933727511452318549271723611986042212338046887840665590730391571330754061754910533309234854990322944372362401181554457194560178966066113104714476992823916710021576832315892620855035207373932652049138462948169301461849639003287421803703652525554113584663668064315969802287886702981852615654482473204557968304506853167377344942823324106315554229069503411540842597718464780875802927438255992347315359700899718207443890246461185607293446774630503935438966268300348131429381803640365630717667223327918387624611363177546224853987194347102116619602494266526313013991280912397312269102687727564186945791873146943932833109171666661990588599713452763646537179147776624620570835916453036993011912977349314139802361805811278512269785270170064778432704435299078841698240571137768100723564508342108761049791719420965061441487671180687063376165980156314149326181985012008572331790401670007469418424626433665141624165270157104958560760439245346907709329902495117377627923096875737248512866701647533190438723164119425949490511494960825984279602974220677176706681112705421903258575635612855741431962743162208133724235007272309874001343032876481660888122148158777404833483000276279333470715304807623022585640377498163213390470348624335699411344815681656641790689205028281496701436646910827222496401498854290806212770440725315948520238779195583258384970999783302000739349155358998296864894829931255893945531830408744122873535598553749693334013143708200279608484349978473900727998232496320526040700598376380883433343598908234549478144804002595637115239173380324094039249174014126753454557383126398741943113976328512971694846995354101247633138327381324066383683272901401946389608837326993395132935144346053924152571721701499887772742990097852449698356273836605546956065941471480012752238904991227491192763902277803580225408070451463722856066290712302396094629977737255085570505874802348017117907399909384114504526896063311847817248145869553135997185511977742699429706993820884485125293035941162224811847613793007660537946147655151584692920612868977215589670643443216744543166558259776756535778687046302504801132803604578954410918845821821324205375072181234058515356467725902308540837739957338577390717730477115265215072162719456301627208800378937283555235811782896821822748893143060357586645782856521636504609359178055614153429556223583177708833861092801764228197535700234074293769980338270895317483658505205986413002261426645748151147424811034980439647724493214186195829458795541537678237105943489901379534722689271690507137251002015031692508075956857270362606528327217571944342514697746109493156010441092207511909650583898224621285924614274811642266424213301066972051609619777662694056271527659115565243232378901250530712680319904284600832260550055115899730520771701697117764433059953306621886968791129832153865031362256254863517392408463322025159349954672082332595014915443475182715470094133380400553866825378788196651059825869937480846091117215032104523153947561715746285958703742287578105244227667304434854310179699041764552952537890759224857034422107915656676346942652490551006013382944099093160147227710905015718551162397334968756884425516391971349235547466348905343513665077375182363725814084352992756689110115222733252185573241335072552969665387621226252035773843906579161949984314136368749219439814981987473276193672072402349820709026807726592222886495366242569054085310960611482212232322488368599003721157693300895890950093619330182912508763482703218251192562583442423636186260819716448201803204495512382140671473329677748709413479648981071954254910858812786036968772930794000868975788140780935996587718925046584322857549816385309011713652441665713242440973653597877693443179284937488846695941018431213523963221763271798636278925373604408683940475032965634055604765694684194983632562890200283011487731754731849994653617174423156727286495926775080077637067361684961641977705882850932847017706481547641932001535034071464314554197021954808136559286456920460137408950207586147173184614248766742575674564936740380396206626015278553879191754423276495591817424035650540765370813694274832346639803933056157165286707858163128468832849249706638686265741435364763874428989912446833049608611450553918012950882246694893784663577530896030714410753972484262507871517477513104245956932055627990907735357700564159560626421557984322164316404408839624104499911311754383432695362035404810457479319746916116316525998521637078845307424350494657743873617494407831612620967115618698278685430305125374601419530164521325793980319898196430920233623351275361415377334413658226262938492791130395275236042157778028847614098284545334568673558586900866676417864492308631364134519205042451723195601091137973072583280390278469831891725081022416435105929044273164608522713043561148660099652790103931241735521948447446514825120806421822059356564980923423004044593309808396355970159421472329249668413500682062617891192249220374932794770734097880684758862869415111055939314833753774089325860181741846616527477354749026123535439082849214742715051603523672863111796686297878155211527408613007425250748580293939285662785458855803050016932008740266547079490092891611659521338848342118290139295968015548910114687194247309753192483969831698729041787887920442182004723538653654564962316736990114587958064495122106410144544483244750922494850942541684641362744391817700622405642732018035715661185620774962897094397877277470333559449404078408711769118824865700594357932355851521367657664862213435822788348846471878298259151951989490556856352377266289543000449360223913309469694102406495701812780042419060582224616204450759886206383418678971487984217764843587306268353930261891916634970680409487531673585888059730045810778257487296602890014465814753558006565198574190737922158958556719493738231995286849412309614780857562822158736758648639540993909125940957997022845369816945192899185682942584905208749908369199913219443379002134075850667520471866005006639907145656315705579830988577330567865442761799371252739009962055935887080523295298872927072929966919809932304765471625356381345175291381739603492377919551076782613149526339546623521903447585155272678665591994060592519363888142879284936595176245722350099534616671490860818413190211063421165039721456549395311638560050878702917104436409298802415767605335698118132865174739543971001780814826676550067275495242929667192208669575416983894854826228837428923522876604245875105191794785323674070945209398021434604157840341959577854051683873371324239252129289441244117754286611791505435159847424394719366882005750008798537319635200037443991949845778077936141377541896514721482492194935567054193677905054354706909095301056794732262285452931588025189964611736254727714478288801565121922139378980826948716996598250269112136337740230220076554426220850073911713152505055510807655648412386907927464676654648270048973306842975427773499615933596326807438389758917916184663975861922823884145982476129176929269340757349475691431418597277412062975964481285876922961139136555795222906050042225649409510888803927457686958853493798821935572832686791130523777810969363815122613103039712123424935395678569700352261359185409954357365917516007416931745687874365590486566573607299326686187560686450334680150453040275687997816464865905289861919605400252175837346104352889276557626028571452773304869281395177416615672675046160832505997516789867481887495092981214805339626225218295550794477638647807431978997432007954964108824549321385337660683598530087860789405460990680598185405141054006423513083608820043722751442247065434438279026230900840206685190075975261654439243812867672199219815471579416557802130517278762998007064227460425093739771673304233073585772078692832335226194411136398294668438204685324438786136340944475505967844959417301202988347630060172503517921587915119535012675499789906671690428508832540417912386259375070755404588105324978565835767744053134378120551747742704785984839303391079106504127161764210515386467569439244240893313739158774256595230851201203054215096397462081081805190479500228632208528531829044083567386843785728456918669459187589215235569199875787448672440362591257733749880713170182554688016144624815004243197796221795264235604600721892890893055400201830660372949675910896094754843499561240853061286859989289792388895797573325780436437226323104221349196783628611013819710114808221105402830958635426499587856332346688657904556073710909239679433613455872445488168101571496239469339628504784705487655399652843738270864785489845424120493966700267625520904927490100224429628624296642791197831924270801013199337704643368039420845210324733230195327167455547753189167566673038873832291921827504289136271130668537214837719382793304827191424476346523506402503506019293924340628037966171097658541585052672179368174199955647948803910263171969887262748407771290363158305575242302216850701557333131009784305081567487003391133802549814265615811819918602391626536522612503296229391036359912797447637832627948890584251468908272024891922549708029625195815992921262320196401001524305542578083371855382080789599955553436427729543341253928165243848912959554696655369299329219254660906130551950184875636606432154713656134821224479947346705357125498686328277339749164543514633190864576680182963545919512208756452390683046082527677515975968658776744966290550708479499751486439821487758108805423960980239704337325232699927476671656215064312275657644346204830541704779540376810454958670842857406096291376156067264070485847937639859438032565795446023996331115828173352202648435148121981303541633689377554042198361957264738274449072101263331342592084172042534045589851399576702700657459419396801247807046505385854371788722127492398535632274754554434495081541411167443742004690464062853168680914314873616757845383894281831078933305412201730938027973888602658835406498611940732362189253279345936397615791311976663154238294892306978873355397037946976180799105804848712493701871361978757396156470833587814498492655643724391851729739067964511764355384282092732575979693522578557573166542068777654801621060467756015667545187772131866993552120897876477455523560683368640084061131992302603139766333690629194731893513005561807493029844473802155772299325518128815741474116898640474281879515384917483033085788917722961589993591835314150800901092903382739155826257310483040597039787525012822434090501062342202325634007012464062310917693535464777736965093653544954350185258637853502371977704946386310633391620905239677210325623888796991519415072446526959760591927880065560667201448887915181498929446393915783990221562746074343972731173439869145838404880758869745854483897920235112746439747024726195552704516681935130290818311927692354463779319820506995006382190538653144084904485696172399803329370884153239919024015822470083181637091187551018510749896205796235703368670543941334853893035414530490508434100296734690234505420589049639434848930991317674229651648206100529645089004385481253769190177044606487708943843500186428645663463469815353570640188216727479127331362033423495868357969475351757572166254953309065869490875052960721457108227600263822076297186001202750579667724520902480140828299772497779133601753682049811272918234680892072732152734490306580854591869097360041294618619940206043000773641690160886831361803490277969508987950672185097862017976322101630338894164751510100392939454896189807087751590747215501384599408619078427184151924424937055763123932617761904469896148777969279530237990620527278683384441679884939779367394077966525116612323221043493276626152521814285094891891166935483891353449289722692903702925254644496928491483711792732075437428575108267001286432012611756125040759551485262254738560946263631133986372900085616088165279396785923989277622771128496066598946400947857064225444029695872256894397225886512766932109772807457369256742500662616661934968038604208064207488009346595871641906396769098235819820117893188312476821494639179549386155918949036842628969064384296209884175921884467059144590812854728843658722632318875301826793011092867774540922649961973020877021369812052853147904400850856999318377010094664708550890311528313958560236811916762296309560832810727169569534404811577603865997344796080446113455991880263242133099825875697741209436869436882546065964509367421875048043470629451976275311825120007584475935209593114786781226044927714866160103786186020977908172616788308166973509674307543716729102191700044451941423864952554832957186412560624848552915682377919287328304097371425901976526271736964233355889457579529958176188881084578315534796498368201915325862617969834409562563197473294631648485142385356224535994977827360123619019034519626084198889216855182048532201635129801996394264267040108354964667054571340531582852660764763316719703759311178353646311634694244677612229457672846330291265902051622530945637221860055825893194938441039362154440208381046330295014153688438872320352044266127977641536532307992597737294390311562456170266448876762940735341645848684040092370748599382866574553995214459857535831019426118665438908933545018400446446581381701915304487445585996221449382858457904215781529620313062881473248503657985146724945663991618922307742680012216420833667849199726384532395669665596680221081778395128467975941859282432587205440793040396782281462727428912573864094475409531903978448421664214992384222170490734559174366163146384344356549508198115092354346505828102144035395143596576902555757492791310329601152953908537416295002193537027355923022218809621919119563896535336283785707775645740936787313613533018906628353756090097383174025628429348538111426536637255751706589294224269079203818755598152330563906846479573500807365416811168640739752386238847564335349197553743083427915575817766621524872499018277635379609870157458159825619466774398880221647182161517371542899414686632248621585667778630359474259697050005272106111110071214868913788112131038120317886827026579086922360078262884302753537769306644608256126966925352733538442804333229387820753331512309416864383227067722160387751489168806738069546113406858498125835305357633923181631980800813601959339739267328843088211259935554661736252265556343314580360260057911769631328132800117861268365069966796315749811768471328902235206929778618380673780164568944862525459354158727977708362629356243395642106180198752945521076166973577241106903857887935567361654270732297395140020897125965320718217411695528114900792544814505223256798620552502113061242304561906788248007103409307916428659833500166114324868296466079069508287707331265714355904090884116377255075298383592915850282154630272477387925884025959410899748775987049456757616471155844806568419210819557500055429039920102987330643338308166871980869716982693629447738761589733297401188798075677268895530238546825564657195460551015068478509373425837822640357879446148066787518677527047787763800861663705166438765482587571442215402599394909274420618117282202587021806575265677027746356782960001651081526125033301376716727781317819922185147180953317111174032450332338140999101395442324821233641245219226602970152084038699148134974359950048031386523995537164148687253168394787594218373257706457995933799263073696227698786208057162620765992819401745494083790683342750279777159385400272448150958024793420401619090604754770511407796148014298286312186369935479174801024220709307161287257090754800433415205890538772565846522542584487767094550369513667161667518499369864920008594543796400717612021268016241997887389187011666274615030487742613918623869566436669229899610325607291417009554923323971095752994945712825874499736722543954851464100337874953419337358684872452280021112930848156394214113966316607822546169921477262242148625703889796467233300219847940110665968046928966026860490350690983803020245111505041020060398154110748399500566194835986176375543170421460718266844311942275296171302427499606085785689850482643489820316407401363637123803935238662855579261000047434985625411134867672211129986275794523032858855405111837736751824369617471902179369510248342741743513975516760893537523636903593843539174373282076077353190109656122486017429995425753250654005656124533243417905026896432637396643351525490878696477197212963322718639178673006604940333796845434076322178382008735742391123037335377092676715833244752167042389765837013633105506521545400264364609961041206582777520643333228821840250907067276018627754329675857573017532101301381778979875349096945041188812021639259882044925333583470612196892713777091462256264798794290196118423284637248581674529571555328681514189661208227684624400326091309508796153605697847942336873164840432133514720968107894721887849026569493236317894581207001934511765372974969220526618907584809120504824032357350976523257115342152070140333720206318378809930322117191515880757576752165581863711940295380498232401056079355428338105418889511336647736925548254504235964069074523809187320113968539844097382971739316123573086993362097586306211687737348490082810088805556571629239731627959666603800331064882874122764856708530889446976992854010364581643740170427816995191361638430847125808273713096100893148332925287704308045974702647127992173959947755582055576554426486484121290531941217222724977982751933076963808204520580924498303616301494654265070864644543962008844414831547539695664470672076907277953902965396275178886658389478006636732278421069860072605343723312357487408994625253559635308882454254825769310243636477731090003249127843452649275136122183624310622342526614050884884705372251114380957948717966964729506007555542926773812050905729043286881288370551958742302814677352090250710312277622542698855593056219247699415219991119667935204937164006907329294410582536949554422290019376194579990848546813350328506883530530891857782677118857391475425653299315168620656187279439679139988647590978360420355976859251449562122662774282161088410084260735368746985524736331165191046127863360979511394380025821252623787172741390991666765492828380932598752918232703386968559088465469051523271072604998542832539541603375930035443335100489762120785739700048912285934516957742678091907096036765414665692704677336230646408684889637240453235691154111816637421786320023374329090923826829955445940535602466536049640235919683101960512938987246217302123596718627461499106682771294124690762111575266287914945139410160777836386198996451989155449186005372909756301547896559349259519188174897979811708545719673564521676068750225961023155356485965606575473575001456124374257903324603227600032021769832707749849556282231345324740577695052306455929826865761287231759092163449124713643709885113773590886702058597613334117452362781658763141800944947997560744719443548471997515433219562383024315696903888883906024671218239831130649606334955902619381179145407020444609884289504349512584324790799082739453529206174777549389681407719862403868186667916403569290703767123120454547690700036066819767174402160731387463653541788503720574452446172410326133216132509431331389926755407663643011130149285216842506424516705951315039878539611234735389596022479734363617375208389459191564630147024427449556036540816880110147809282052511882061986525526478480556021547424528379530720794414931819469523162447942325866979963132890418841453503206332654696380860406473606078709671046522843127009280749858452604864905363342143975245903052709636126267067952162284887230400709843798358650367325671221290191988803507678907651616976351376571162360953504323101435945348993570913700385322914665602202033528285782420412280464755700067721486655730460818965888984003703928648963211077441770913913122409429434935133825044814256999643640167786310433125446356973174789898857892058889149293390094344422176209968758004840241576494915880341924216851002098750472532077991736810351126505108402612647535111438518729339844921754987207079530686081138708043736947698242488141442048048540740252886198385344371441335512803498675758626898356210152910849006293979757290755399011048879430735350047308449143285923521606861931097559436929567149327183261721409390071452425951742660511931192664875228027457742900859627078357033603000642399209099724347094693038795626126309783555330187404917274572748811200828223454429325277265062670136412925430080143144236778931672442586811346716685651022951439103425058015705983561571099425709808024709633044569309931677767942705838862333135063638357530078008909299446782401664482551690369669181299656316913348623912471397739263220546029031815434375017164914015973617275524623314672106934963673650341584096988640129535402371749379287262007255393568434839746482236627072166405141933573378429754462844711434279205846548563996155125162976725035377680379548337318065686661470110879330727386197202772508613760343490955436832081817164552910283320616402423339743023587428224473889600915146697382555867587521897949655355043787369725223293026969279610836502295264616735580859853684788970981359312944923794895259855029957216074222005285500466425906200577028158221454748732378943862125299984415040783652751502894873271364655820353863865270654945652047980796375980664368810465795269179273168379573197713970687754940787636577471716283757152010650051861702136054953257489950658371104967460382951266503156103040202470098175087262088742158459924952322246988854122326756877248072022704394237853557992681854452910278197167757388759219954596044572802854313545542524027456133712095843234423824780280204110438672953880994012891350691531767376891621785181477454214251968695370865604989668588675748448766633451636732053013473612477036874118510930005772242791628596202413826823020813551071221601215430954320175492569516897580527702113226777693345583552350356673253484286901591616841864247296519678256963166080416361052324588353609078600360338823584498063240141457546072820611657573714947732321676547017627809320302754840019561694853012599924540453002308403325152914579133633345744224980875216291033016826731866805777598163362713488380594216306755548217243830444872534524388146545141220411430328461126659366158306165087822769463489948695781389276535166838901595966832319567918110334654907620591391984325495054357549759842765634475222963167632507735256740631303030983395554169225224463335858096264321848006393299719873266096604238453219821679909741492107740539741909924764299237359656359944189804329163898837236315419797548722066016749789038954471410762748945363779149672275988684439141213296978802155396642258127963925770273134614537882431907013004304916483364672714254976538410802028392885873114937298531704174444167425922674357638898756488199630406654325769723654665581780712294519899544094250566194559473389554612831550850430838532174001050770103657110520175261440706114211129155228296902525214542334259265369668150838717872563968203726670453753891823756386347921670167449705137872911488831888105159556680405781785931308204108164484166031087884073383565023587694898614855791501716930598830575315519297658565959825934733540363975161100335405742900672256478739650024892368169751816158480638888743445377224618402940609077233581897693790349257455060130870890375707889719039473447223442274403044224445868383864787984488725969412035101590326234699170145538082913667307557598051908731102622921440467902473212893121279604696557219382254389073010868639186555667370010022319085152387526565822434473037682736445209455235586832426804550254197947431564356351057954993962424592627549388758214545860135111018560164398883058681525085839158689006499384208416915902507512152061656257920090150665985637661948691858097645344199299362953824560803406323226654781891601208418335273597761922252747263218911534884041020163824892899437914901711017343064741686406388414731691119732861978394470549797909126857557007665353107272216394557732822998487213402737781613821304421475925168063474926344450271429843138770337163367925214848297581430266166934058918416535467891446426500146843239650597890930997967937194526257696034443307561064571294171084359564584686026771494013638270325283286693745263261398662910391702852583485274530047130629299171166595237091832541773295369034630940014487604891255500902602946174062518416966184322067484387476393702347720837639531303305904367932640806753798575630427461272781400632202572026613001000182018420825290821166776807179196823490010844834856559864919356401032787411305337161684074752987742491047773761441729452306856274173088622885951673382178670364473761813928663848844140359776449036078100232483703374196713326338062676320417130907985146867523100176676520882843828520492535977811681962448068374251730890773139778963465502414764953374044902654793938876608932708695010183697048908973125793100368448925893609586952917036024583060621283108443566056551003418493903244510375291210984228079127691624589498118452616849948349723477047711915616293636518606337654669752715261912856945776602723893273394872081261198161283364344856021587215748054565486199593813017362216894461635992079254458052804230422039676853812848810418809907747838738561873144304555517411886315103347713268750056912473961244603611725850701586654562563009803166148935299081974491855992074746645839922842576985966784634369987375456836457581159400139156705316210923407680860925687920947435853161616430400265150027100309654347825221256589970536313240255408626670759355897283248199122631489550895385935303760077400903591881243781581251920442296767429456075036318878314483782059809950645896443247811710861530549904307056871288986175894489531361257949497922751956954981683833907123223697663114529582208322500908667043254715134136504094850932763026922702897668466793592444606945241170477022554027097521511697528507852691548904288417100603567893460480961797098115851458025865415684665732661700211145607086038605476220805898111384855674220018030508968926626546056342097697392456896039398388669837662849080971914882235649174557888352278882650258662362082231666361734798313545951397447941489376552780076320572176345345047245007715700779093188884564626889837984470013787467939221498556067354539874072917327496364646251078344650266103729754553008133804613573816623885962046489629090505173573821166839278139158303648154928571304771691211383741256948906364003754863500009913997740152667124184690042175889923596028892763316232710950844070993478747209589786494132418674881442980272532461741061585168559244001277101961561631917155050793966937805929598056282650448470198588320506598360455136115419943938377797858037046938993962635341948898499554603521434630173738617747343556761658206827210193315066864636135240027292999348120878252965684571357619015643759927505559112850090673141655342184203290598359058399110798863945720217433074238519928471204294220229067967390578192129757350196001062334002565847109040951059263341009781631693744107218094422490731767331309170338639649673654574841715320207101182451635387283218047237134780125000809707117600355032125890120929633757562205948114790779871522724015862454701402502843608766154432334171937976316447674490975334662098075595798996681620406521122417012175464156904798070544546904778799480995088557806294118143256530317587347583988043387789895978311152973218239076879078610735886450780122086930203506309238366600750009366948065940954141414035715777514217577475607381851049884131515668519875440587592223593194904486069886533230560778553517689234032705343750453644281517536575883695676364635882425361773214684396970819797574389450414426347932064419174000572362047436049103871198267894351815645636109652919111687182840621319829187750451155858614875607688177303583776977894008293170014283341148012554327202485807952445778554155419745335665017460632025807736383408317912529844419707451024838156790044421382940762591548850156276775602391533811871886715311597396382825072057807270072860535736620433137046314261171841475765548099357053457909538278443294170541369805923328588459543622895984297200454098197743405920272885454961124920927426452403402025347768679498823903908918827206115965519446204653209773095481937829959766836604958946832373432472091956650709147067073904312445831529178502024088814787574048182732369115585959515535172754789197671387805069142930098796200855197460880186157350808262842715719052697774676764918323021148861340894127440780284167951128516057812601503494776832997408796909621312904702246129461777271468526566824571959749719510099819440288503706632787162876059365644966044770858231839136259479526486808492593063288437579922265962449173004445625330313928981176221544365559618687457969393430170634148302401179012824221711810345627296498440806847353101913126593195312444242054754859081584407036933698162334683032310278497221460864712523964714726469966642909072822354844135636098089174010782096004964770297969402715195296968281159808461879119089029821988340983346978722727136233942420703734513170719218351572999992010391225599116496470659321250502906825337484993436226531679825216110547210742983942740354908299137318900986731117953570709902986047432992921242473932374710772455628615002217412876340227747766840419362171023240510803309433965865930374009330681305017898249087273227308136996798967889495396883075753867835231520450333127212905662436589751442119134026662810490163874732497802859599027218629172429745284515930148219926721634910719706134586167815349715407848022739456417503301909028260793926884690549173999241586484261615735750356075824416495163893023641805800124392548948965894469436970740970914530066814267161058423435903412413825252940160237321508719704464239834416121273750745186143392045888616040271449395462655077627671030113946362153835480548605286053434167321681782289447304393024299959417342480196124689502565547075829411124091925472166662265644421114328472632008907448201668475691162505275838873501349905972068945400238051582671718106406279126882127318875728371326317598547405818908317243311556808356011250594898657776894462691710195109477864234030384907673837499570746580003715073745783442651398314969756573174089266815516382140060880605279432382871839078161962419920853547519347292114968805177451518391990597881112307363817723489463691492138629191444984614224578442799653734327512522218401033038562137768362739942191829097013411835184556162698729861656662944095081035204450909439564022132655630939160696104505849388057527364951599489462961697628216620482503203781199967775521982045775384973772964817650513858327923411492748977310443085312126687087887351343603187770171984283106908987609627897144516972043201135854639717523171772002904571348895080655141564075427682636681020176882437606829124910479703303791269337366128087334498724745794629276741563970712451381144043909894497900962395175613707308269994569666592689222952324150619816649067759757250260580317086784026609232846232203258832034953165644727179199695700114190574112514760280653205242964558086141504445082398206589934181113059954334244370537035532897198519593035309435917821446233229147797983862792607336015308919618407323085535711407917379699713857304713600253351069609682606892133358135421720980520534961039763752794443401778813960011212378634834710905104923428061244656614693002606913168001899660925529050274790109326382898500505331326439946808343442929340463523952020338823427793891746707497485789359187006871056646418906769218396600426533108812834057518358710561186881038841350353639837741310672998775704614043811441856145504003071238670186602900795295872089371560250443539421416564162082047468192984343774180153434214611772256436064750517048231456551528297037835229220606736078667693823246601733621840759240958309431121383292107059714629887285054361292790166531600353763797087414528741350033041923995269061201829365742251726488804687886649470433590588299494893568980162528116410006903680707481352108470642843544533577264373301439934728437376469759633179640359419375606306921062264911628909403300372607105111582309576213013753165084054370016350965546076034769751637344840473652798867075835501609145757967036659715890555645590717857106957053583169110860495046510113796710154254029097251067606779709557261459039308312909646508667609514757312176655589694342174814875010011418432819169037375912976299245147939412986177216431576284360544900408580225532471683022092486450891618648293331902501479427325177004815109519732967116940705385612297741729804606079847614895999744741420205495561351586937245751994828116203433618459573725703028879415190084190961419587404341487085563255979190427729696651354327453274755073859717008898789181704201605716916129124298714386286351659550404229314809332586124222518496865015609296895478035502546742916562387553446420650977737244584822559419624985991735542427105348999592334464695324575180091681796882089124225757041324086901062692932395177053742972843717883975719243397077975379054650361953037429898813990208043172649495519088447686867725508512320218538315564594774253799590177516135415888801389640282064631425552209077691595590722317923878077804806391129921688607551480865174387407089182200846800401569658716732343798667390643621893077517523731276791999343729444575461039859004377711296845863207834473418104684077959583253554772176290417576498656156810378354765193322947893907163829320596797787483318889065790113530421644074273177736067604326649278802705040453578364231660670500476837248088135395841923696143912930830153374887898640059406424557222333889219965097717469672959395329561723560913584989173438538277978608617321676704876160540249705815652293516579180054465141203795637336102935199981093670285768469060689937399637832089130407807056609506670557855862484607016006182236695355778095277696668557676989036620347705944710992897543341892873031465581692050950227272665039679550513246123278340766226168773673666032315398232559947871744013691686923534499556750761047099091474082549609146870648000682646286361899459186127215976790093699963536069095724886469439189059574090133208017590616093337360649394696729702325293712679751304558453660129757730152649913203046557826761371851040722243331599338654481217520668230932328680865042002343523501307845548014896877306095934656818002795112584517726848353608777951456470826821248192339296125441658269064152290335071362417339599384411845526120578803163294459227737240213663808416833120892460280908874187016538150656819457037184825372518843707968859784077794862495023071802033135036584023473932606769296857264434426481912926785721476285096743647606160925004692859518101011955210448191202886068418326887604391836245214314100435591084160460461118622074283072126063202278887064412194375427604950707114648325644674048286042432185265121353135848905550227242506198225007142813234422365965032708317502349590852887893137188908315769858313667324536995054475664950326035577689618476789607885647252941973945577749603484948732327670680729093178465703060658041160565898910702820653081792497085191239238138191428990950306128946281641227533005761717620643419634809332462888512889301813040904891572480397020658608293640182471193806969241527634489894361142698727685319396330833700828013675576107476314247318184205049709959438788456483455922342288231939326809297768778697192871866202140914194138137674767636740616128526116941341456664984399089418095602342341162275317006704133192090683489729948739453908723220108970386957082028835279650244928346539179755928957391790425338399240738855923465021959489877788331670601925391361149878144816541446403184783903740400992311913156779126883262305557405195344717570470932237776271283996866732901929224437024703430672104717727805844688418915546658601238570898533746522097937133395383661800020505299954203475979431881970302174182448049305666375574417573561310451126064543811226486135100387923455778641647840016568115616710696980896303812377734189043573967042707719242171129445954793613261353214588806787297556028678937690067664701137598437125648077636977568395946018471355273516653828529840106516491719703656206655556389423504735904558766319321647983007084378520884868287978161317073075221972231310066589800899001463167188773453010875967694406177871532105119473458956010197646174629726527279651682763226817584008518710840186624665622994252295939066885304336451881627131191380985153095898438122530775750216785017794989026489110846377129449240411835609321307709424806866788276613711554754881996241799845200689203515093458568844824991140996526811359028207088080133922895595050208375834110509972058463321411817283133691603340660997314437870830491260925196377294143330736456637093839144382948525400950367922931438244857497014396766453509245241240135555275202409511985541413159264851451913222453073472600762454316801762430858860155258358564600818863567336063821713331724676350184012801155050492737130965811071684382157424817223965450643831201972312445837504957158194878791682199309186325654067282571681314011037071400527445841296132705625013696496886266844317114894182420006196190495360033455266349233108185943107288587394209545961834866208812427260704382964868932619600911717278494690474599952793548009148172093536494793732669266794436992429115034380403134739209898213188465142561932999468999061836846275117557614520353794435967030296136334729469661298913122760653541784919317282558845378473343757201670306243066495637795420310775215966620478693567282823090631131794700717537958510286773803075034337146377285862590618958135567676883238787026959480482778623362036273084386071914133739535647913500374816895257749145269641991543555811783153795608933491711749342678829012837375687551641509452240134016051613286149026900366567816058700865087692750225473702438262246731367504421812430892839758969973948431979055397633712979254497683780666788467265349803428248691708397753770156452000314566674332604864733072957992099997770930663793527348973673114293685607506712522081572572791901660706243479939965876861677436911811289560029582689917287889859536527624543303192405841937716794780952388560154046745768438091997979426882138776858761725967241862187433994822930164655636179277687308064630486025197705619341883588087927950589633530181005964836583083602338845321456583386978016803859330674191216991136870512907373229920564446049615336760556487680666554971349634172075776663802644117023908002449580219349750043163308686200011776281389616569267561216606784094147875796621464055841594874941855591040913238326383756267733075273719604950263557624307949079007018682496825529617110994604719003406185108069932751075923913949418337090707558887723030951394029527801574462608598563462467834747671418473466401317204747782230194139604812309723788788626183319144174940717772626643816485381357738516188180018301655064884287315698540247826548001190208896372001072267954735512001903741474897022694032184978641235811412282481898371727644852592444160837720069989504638143183947191179877352773920186461762699312597961142268767836657481022245574961142288005883613404522224288651477237109889231402512671463157758248391475090299045823608538003129665288817150583065302322581713183567994445607847360705561919691154584542071863392790996326927998205104863936430765970999092513748604236636270928192174997785217443668113553440589047313587977164308720784810044358120884458779679287701566853098110452706099905680688196524608353136316323709386935814129503873197111006643918656305082504796572949174278916244319011747305345169690193587685348355997945621325195099798975551710479656560520806781257621645129582096203825127594061632830161664762864171120671051801247762002497868690267217140807551767276300886420281099621878445208215012078314532361059810800919167299085665583149055599942979003764740410269176776765974514895022586497639351415343815692724224943511191846305660230419162087337970655324936340514952016359726107015841796330698266276893382424209541798130896740583733597247139798615319828149304332043895663310287163067107897048655518427935176602837111158615755146451983866154446196174723347246115498831993144907277077814216111719707270694204695445306411589571121449188564323443589509111960357661836016411926871311352833647374227565109888553863365593261616880454451973582825740571002121963232817174825694695712191516405191036666840312566069764309823586490580931882720520211033649975653908434865214648274196821687038845056171994798469520076379958702359054073071079416093452648074907472229067061397458293523128186740735700999571029007124900711101754172784919516952114864371795531501047813205658656636353301153898580986970558914553078562740609501219432279832201727439797801737795534140894461679088233527729030034644553999925583042000232867825091462205367878398516091501858338321164224925213268182463236226895226023678576132216863342133889897030258905161169655419256900967642354496378190006281820910673835475582812885803589506416549908047122963677420237657467928071698067978087921390504663970950003419696131420522726078103340158954864113797542003374466695305348240212496953618973511975467302304036444298137974399664013390974620042654389909117564023256274454574403116115922861117370632953441171441084307248979524057110338247237261611207853253627800644794319310648984947933409093787983251302366572690576121240896130298634234647293360928793260981253740169759374901301821627946596349395473536024174825691603304201586555345605258402618354473215886046433543573220358694776032975810462295130737455315164950436023231755583814849407354874271315534875621719381294620477805084664766169792116735898495045216325993471047783647406046048794853296662359043155490207144168514904677414062005585543579488727708396444419604859329329995643443165377886040318558154295621471676694219267971728939583709591089851941342252491477546362949549283065998790406462301305458775727604332611361861228305071356598108575600913757659472861744360253184205233796940496862527309520360535082863428620304328054502723893451417172769449511062438164642664384193076722327595958533003428623075982503444060113044376203375082550131607630731945871979716659734034169516044984994143368325205819222862599638580902061176349087360616383464778471517896601949482898173683047795111718788585908893186696462480753793529679302006895546847320359624646534807441873202387183189480674727694756483805305601348067206078170252697416227619787264479766459355100997392099849154023279969569501800140663591246050025873427501576533144726696534087262230672423239364830287247593521316791364660265889252534255691441320253107101373379773943175354440680868479709853064313984858176487551020423929642302766874137497575162997671758676262363660674656694214534651841678716306143759492844819128820541745591083939101517825280385458773263519897856611319063941064377706018558298597224086397787513279637892030912886679238400624587204880121131191582181339785254662238257176844650557230893169337379765406405477461676837072286941654806483663333981263125158671261302070699267057119168749065708719384266046687230092140216280765393577633303705043191526762970080807915483753676699687712736927493989018783188498300950741605947519460743149604335248057572798543131816415238785243651995564915795094713071298772864654670788187897381644966582604369824206733528976374634087548831087911552227345072883650238643399801650170770593362476210269368379531351269475719204417238760673911967881136158279927019800510473655091021554288680327931252093538863566365877594509126490569793512886175900528149916046073217371909177773966699143497244254291595629469801857248120323987233096408786009551630138429246670879232604633007930808543337070485023224641964939851254705855617940631503856930650294279893730519816929045592108939278974358218078822184810427442872887850884676760218560078376295418095335740153157651724211032069658631282524104914682533094217574362406996427229303221568122501089684270803909156549722561425422641533325365072562480221607150451408397524480377803778587768575157515618378170260712340400607927871312114600913464580646755991594906125899990381877109182008069737174484231125287716706691556724957737016987626424155610446484982214698588693233464394197022476360284180984812095410505058914712563061013046788894073846415097725164551728141236631949476568989391233956728534798201089839427855056758478761132063314801751258853819852825199144684667703482239637785514402438607212146339440056424169680169422993942011158505474973520834099196932343968133787095055440854406624514533361367983031140318419561610140957840966236090626564756524856689564072279792412031579931833987688508289076359322347849052964641041701827095108568593441805603901387225506053011330633609128222029542086861594039006629066382420153275596519305707034813730570593479430527350288498004524410797217191118276661432858721577711470333013926673600190598374681090747661810629676142224994760596506140174226619407269784630179417089294155045573255959146163821908628326803828331490755763694206835632690701403239909724685423681578843936866512189034528042133883778726289089804536753136596900941923098755474171302422772550169542994290177327975128910205165461621064838817183059761323646856211250579768252714480606722959759323317379363202046493667271103359422691961949107328462768561320343713059662936507024565640118758708707483405801502384100828012242214964413710245948277596631597756157283540133618250310494260065342220989999037193766505476680573619176133914470807002534714723132450326420184139627786722642157957131816160235433616978719116774606653018613867233876449504892317334955485052741863687657265696325723498068064937891019087262148429339148525978384001233690795613808930934619519967010553177611196082936666799755290037041180075000817531783205730574178267080407221647759012408548996552428416364666843727153013554700440470540771348815868992072336302553494620491171946549837362976996296549034750403954872913884178733471812524610141999481505410684102557632934439919713694941114633598281554381582848626669668024268824698181267420483238724704509851345573126525099870829150330397973757363161308030444001504176956070921579902860271071764095386167110939410745179343706199594112224300554222004068262338907677506611141815834848026645034126770574490544581853736010271627804495311221796479395694150554085904963116502623033497880295432849620353906941803018891372179716642374188303695204492966388213490513534934867957260839662718005678681143718318987259843504242669247687464986074045706505481680631431724629465189649061293069549859179043754699202477662706744187785374112300985574472697161545047940432777875228913615792144807776345121362228439986249710234954720374772938561714163420088234847722349698894505829311840826026112451995087725188300603528990105554100357619387235091614413703197943604610821653056079854132161619972324494875762329661614149339224617060449910225167604267628099809247889823422120926539024784501345072557837112483908920620687524616614523775525189282677830202940998557668577677131528225426773616115908814064016494845113858981060376310666259288729678312984578401255712971230625690247335110764817366349906383126685163919244661175266945804467053274423966054690501070623571047198876417899817761629654067566533093034427747756355649915328323866022386299848090143267993724197913719913234585426413430211254141006734521326974052124188146554486593025981760140355381993081324200480717740841479233685010130844451047230089763786562100799009654638693376914225823598117865757074297562006670511430678609434906891479787963276219907943054709200532038532801828820896333957566009560371362909854020422955382777974807720336719527202598025203222480911141055629629093688575773917565567602332350380806500359430179285214506911950304644466673708434294644441798648160072595430999270445133597353898478198265504440309671294609909020735958094418447325971597630862206236612141971321275139729058128388279321560447790101777044725932717847183446729238852823949756552265817439205452586676848806422756591569872791364328981604520262385263389376954820393834430047141702302110826747902010539974498275244512152061124470074521752710053645486119264982544904166723111451640321039838787134745108977172597416367681294348548735784320350962473634389354722781557069570881838026282978560364318959838714642630432137142482443459236361329618332952056488710975427633309567791461717085627863557889494523428611664062145381207021026707606632873033398765137047591573324105394072786520902021543813695076080486525046672717096361405186461142958464983217896813067224861656616944744168082855607935211579092103749668310425650397970684077970885300695121577459414859141723751449187121077409711851940570575597973780683238451706919415694425752217986500329262127821084945691637896457498765576388193822621206801193907694386081984470216594435999752997237654386805637633871490236701363881403694188587696603903886493206112928772990910480579408330298853838632139071636258065629443607196183728830436261072478356303474789014194695710408579575776425450637123690091372734062234355915643393743181505617500741863725090151110366789003063996100609131052706958790658750676296002906772525495355695386675010349313504375624236542214569496386209613105534939915221965970676055741180490507516659542185464097073483909554719897475238947078506367777802053889968263057049935393708593182746259402910617379718149830333630579075426239815390639540386407635979350872359175441322394053550387456752618273464853003366392928666548747627102149292257248381859726370677796006570263656624273456998323864256501777976710035880630264084260569991788573897004653588745701603474035414224383022294885957948132891613919070455283587442717340712102273067544095346016113314748171409056284616227981193429364287853802510521076491950526164354687940702741728578433410386820509514076867095397577185906577362485975266821160290700973655571358580641150759264798021662663441908755341881302769804156455924854665935976719148587619417304562649545497527206325989540285830943161350934108281056052110455376732511425245056618152170872539389569743761983164104432450762350556718214148165445353738827956389479923259581801132118249241912005372563379300926232841190667825743262262836212331939304384336687613565957474793242102006254086303671898834501161851075668339190348843849055632607600186735695456606080613831406508311542642448102087296868657304173771835387606154041730600877481890142374263228506447514971126542525258070633542824075726056824977051907867317531187879036559222878678314961358370421291381289953155498385880613388761672917317111562277424992507057279035723966672787900665490361915694227447406948469830999634887350883386203787808722954286727774318937378227907161339912107056963872289502788533302198797918317237097822605371916549997274676823761644946424341074026400863756961245723730048381378884440988362244652358819258177859521684960383451267455659826375622839687052740630308612375332198123504020722455429491999719184761432719431718075061853088112332186310444157690414377254940848914910919849529277905721785122807586538958556977932769531632890778075377033970228427228686651683723658078434118181797579564154691910138027000110561814469804325682933904973797954719480062536219114348744535642777280185545871091975606942697329656597302536271574560400447716028025534530296670506057475285964905622064030698445308851384728982730531917492868036666780538330671507641346778036506448056761594490689096758001291850315274508818409767801768471013967429023184544078196720513074409210194060715665899970432083364511708057873925534847276201675734443931909107951003835778112697590625126602035525097766745651172577529193659337961893251563462819305305847153479179499405890021202516342488940130678943210032237674913205872881615430765812880132333612859027593354699978115047634177919051237324261426400432047762676089325710797716185852783606093727067185026528033304958986704399602550210038905815692452944645494348818367749138114784460631920195897268806305902971211518387965584066203523802551258473409098943781700050092421200907544577532818273041431260846527968892903371282022714676623552965948115252098671396156185906105957951999419327715323380429201731675386835583622298121841235053274038359648456460370153977195236727132704424718755720722117620131498728674531602740776043933823826229114073139993093942920501244156409420429340224147411950120416406858543291799939881783536793094240094338473494639273791978170324137889621266867092928231682350890800519422586705820258711468054919412154086846234366232175217991515958027707631844342560970435231181467493265403379632669925927357291935370971009037495384356222392886245892896726183372997410662904280175642879643881105931557764998037522050645928241524831598563506234586765518388355577113974565558719413990500409933252553391366888944588141690840242493337746949540136716745726758466007601782930432199246621035036916937977944347456725976979646560878435244555885653969735174372617562435267131847398353627122571495402217611750708177606683664818615002470475165103901983240493785280918145635552126460898482634629242598649254550870145845621396855213429039103666309780189963280372863316843687383167033972333558908872154893869683365749521594728470798757432643439936776123387961734391004910284959412775753442639479005805981966154738050250608681628509146246359845279872090134016717347832513757488461501177017374683538099155219192197127947092311150004208829327155206690684016741481356300424077989688583353024153861710114325667778359687339116761648847073576427206390171171976122806816760751799886109908612395335219815635339931605661464400169633641975125088291536379877662058144666573427363649333150801493464952565242187738598690216146426218919484519839307578970885545201707650521030289798118375034606605733878754029245451223156630300079791900233457324706353549302223108527386299838485355977574538934204763001429287940547368554656311903804122136871863140623404842112040561771651732559189344774188387831032541083210270343241335852502108740595566744907947673221830140974399843638152143659875328077148840920668040257494727680079583189508159188262277168187002056380087057448473783001414605584335223040772679130995935647621542006928403467968613968852796382642176864457057180733618436713827129015594626020186429213831488333068892040878447076324603194863375281380292361770894104178982525521766683649511617615312240317937091289209198993621150751050831739918112275217875717820201915667130854705507292202061013440771434451309426449413743848634130932376006741603544819525922074506358714929700076535728592772999876440803714664529914720673043686806151083135378569492112018184024327062344216144901577363865727316140185700564310445957982517022822318798281910424940573329243074409943303643431771805551904490045058532903248096172919274565495701613538178819080515316796609603412086278472370297503864991243961802299705431363934352409106354438028603894765622491700547425100389570085781255317699269313409638153344774366779019456230908872425990081481973272509296592563517624598793642797994893497989288511756962006957646517476919073163264370529802982342964770089794718170071235403910540562242618092475658668190248178864175500538251573339192420921965947152352675925573337865754894479710191161486375887466320263100147867371764435039813392682732173075494414026072507808780277226772110105218639877530079048396333299150293388892301041038310518018296020905494435698274992172115573347297273888931622962166332081944494736641562104953836591730723378522437606074703454825000875921838322289803675399675044356780394241774365544805779325858669502615167498796028639143499685047252368722451418737295587613727841026935509606962460016083765424624951432658416892557372315758913004606664501924324502988732789352082805561306227736009620562787959996105690506064289956276668500330846575805666013844868116990294724837727085313783014982781924163067923809043777492188554219726617212708836897058896855040318272184365683870468959925557618803384045473124791787386885049224933171463913044592537172581689860955323885750999866123102635538292189510030798375559286707020298303008269979504642512479023856819219643158378324704870530884695585880508522745352084876453283731254292396626990763236595389087875022770652117522988482202938066476013352290431293710349675726209587707810521107288900112339588354049015141576310834471114653167362149412818659359184998086718385337834921041628494384582955590411777649529206580406413142425690031694204972932031587279597613804582248936511289233140150085045567062252529847210590698293191776996835279697730273717257542171424617500797944299022383917502322701681732600581978345464342784223732864795403355618351832551784997941181482139054303580137060153007368547257366248552256415578872306972682152644436642743443355876319834419820639430389962526193835709158715131557443102186038473314161454474165242153312200487469988296969801585646140213862510697958751133263180591432232607245357802761133646493654623774089274259255515381034136737214451586828366124215713607533202186249577522652524887921834377753375698179781288438984368327679120581000598903367093566852856262016003545608280214185686528390182409031741153685348233471043365905982636418992676673703631068496333597944358277731217384180671450067640271486460690657320362689984917875678047098632896021701131780555205703071310382197313274193930592654647372954154269078043930024620256159945407429496351424899257422790150773690678875872490688749091445920985660742526957058466498381542423492812494967972842566663218184854084824345710026408134187221779190206207651031565980760053125347256985575178465873830426920554094845977299608219860767268709920901082089090010572227598503046927215911119462164924485738243495582222701166376996791818311804814308318040855485187587146021226328193568529220182575338669061655460262142320017606353298584960676917732310974564736385810115680569028293362944925080619885326910503966817888599929520060363725100418091280821898987578240654766893200234202334357606500480488479842319189783544530850748572516740810231790815666781946880689842141548399277431108245980791783631747731690139457697491094149598474279415224177263420989121916979989970136953476463459853010716920872031051656822018493904535847704795824490452284419418980865562147629524135248068485923022350595444757052350184955946739755950857930080970630983678749901053562545272791060441215094650985918226157378372078116777427688000641529892006765975179966064546309521809478847832255584027811152575116634473793138396563838183775026924523846438847543205245691034203663443051938695660252134590824155412904219919641145535705505475566148696781605776693138635699767172591291966007438819214935096217655848029340434177606622509757350677226299625277405534709630526313079569017125763882817263643540091405664110002132770722894953555606519194531867664527396680768629571990320228746954966134424878767325206966838551625322755816622229356245724424707403130197704920781452269362258084976980067301762218428808723910212549947541790472094630334317114736425480488712483111346038102429328824871516500364938890080003063505768913655335898180027332521347075635871383529211337418769249899541277480392648878985456827996952227712964445370767514762518363180378399587509178483325037524970999608651260590504078388713207938612578780223741828423172804147943044717219771398488396586692249144387676197689444389333846968467725939651903676799722336084696738326033013846299189789823959456118311840028173796925904873259324036372740745663800410825698978483577158162782769436678119989013577125315491782409033160000512356846774141743457486801232720941605799499153189617819537420426127263431422373773623828938951491258811094699123637268658055116586633497803127213925452936543574560356633320794448012005957506614373096890445736576332784620800474486484123470743444558572042811912683213007844923675185800506622104704664686252064628651583789662863769291666812012541773463447968633317435870613846445403004210124898293817158429918760173889309519896680076721910785582516029188608600986867248928050072940880281118442719400148701715491713917372264139746975316657680928340254138968032783456047141291671090438721637519450572097556613497678030455087486226272447641610582617031629043150847218042899094099160897473316968734049541001274896425798844803312453311857434426802313691271936717902532539397949881169437837043559778482952394853364935196684725350874666768580736525324183781121856824394665415443848586709781526471466176426621475522178871610897864606954275739483614747551451111208088585052439132555636587342732442726507714744746065582125373319363058064236583977106728206261130481409031744410716910449426870562647687380546711201912826368409929477481735766547606175307865898027960972494863550756486823983017157823232466782386451076420796364194068375231501724770346703900330850744354598277094995523717240981388317246572992489962457547849646084209429135838779807307764887192607330205518382464364593887107750217060642692916374122911717875461553725522575668139580726827356334344161032155096281442810218411175887077106469002527913323057447960081812736992286657445347627871926284908420331700294634072584536501473198199166756316576639826992544916458993587765579511268260478004517858022272603185992823953227522752030932789907518085567815528766948390358340496775738714511831081700192197664248299683799783673654106181004652019120944523031701688488430822799827589435695332273168368164145491443835198854056220243676655783988062979513806236844176107570957586339171837890303537865143065011493171130791621328813883273181443847092785793600774559221503648934659191314964262393326639757285045326360545251377958382102345412645731626733521081512838016517383104468482405729948338540765544498833721663460143725172628703424147631921781891504312654607969229841797876111792634881059566332087352061079329794049667185673834545027392209904291702822146155154549733879811896763470955904015071598811399444850150647876844721910257215111518639136008460416814214863430062420214359472905090257241935454922320232792346312493186178459245997440130601154551910615292493172555766497581290323927010447193815492578554423028525671675224667289263429574319217269258615663856413146343149498416832226129039027792906945518728916650643028051240961046829927349900730899906644815578532061911151432312839967777421305036481749359768215320291658070388147363798924281218941332371800369019897412957177096213213678876492797776138619041591726481854091474111081132610158761123457829216013418313338536743934787942749473499035822666754540199436982282366190524087046678183278424064031570199520325830508220751317162491149133140295191905177780071097117024645461420900090705054179996216830857424432749894599384938501096730838239051527018850729124940080506493485778573463142543848564636732746584230731659590926994733876981997515234233818247886919402265099038455494277959062802599801768463998793581428420394720191343955538684935464820018415370858870504597128540065817401789511631599176586361962561100485648748907869419927392130174735964270439559146220530332029257974897985189032509363691499827301437168390576424963273645043697121743906703718136700972502749327579333319530857543445552037464635884871678558844169720695174714739886730438701508093050008978901629891947559178703264699343374711987727610744157733970967638413474306723747608336964211819287473725212420018185552936734179442186110626489997575534068634752077601351371461496020867790455935282708647096444167015697642054208786982064266203897956327488862150291645802333225473565005168949131254480262026279741890677304475147854550026430944027616570226334705661020652560977818163612222975195601076902082037117890296667661077579233662896128597153812485449759654380564379237212765707748154756654438189072044121929232115371776625783885637009089398637705268736950527347849313692933580308779121518375931407552130936381279756950482572113780458915454128604914885849536091702792591588821276481207094898903677843947946222994230465853076163204982018327190476322627849097086429592059755353049535450457264215820914609919309379376169776375863612248121573458682210977856274914172753658559124959855136379673230731837955225397799491898750284085427281883815408076930072191399352184561428978242839843829598530999789394560457658094737424437516766326373207541919551510693926400996124612032429474275378546178737792765362544773530448295581715598548867436749285325110371543114466189435983826838415449305317973769217023091866284963221932579558372804413240681950079518602307243508394176460901654717518608606499890593830915121802973802675613905893908271110508138628242272470711851639210582175444080232341698425836549494489759487649010946466074430550873216966446020912917446222293769463538422036133329630035341474462378630818068501240504184021183495581979423703778264331481434155946871581265858754452970371096007875506564015606995705959873224287739179246925076824231955297807339566755798258839282947000990316531165532877893644659016545130179720835285396552510943586289914506689021822608234153618354646864234690247511994521357154082626435645470722896977862536914249053358524618310542406682843891190668862546369386352434416398336339572752948158953135960726741375181322028987872633544125311118050886419960659456436857901517449358347000122100201098240208463567213821562242177736135398582898408906166115947730213657859965292654884232296485830216858849943795112488164010188324994441482188748732778315547625090987894462504618244491676617806198948474933310366867085444817954517262642807768071621905119887992298652230514078191351967310071570497746302890252780566698151146611789666142197157914124360343141355080093882221691327808915542082803063796147394806962892675917976893109454188276426732268969887696884436371043952706670093806651109019633689648708799062561071903925984048800922773453075479802939626848824031607503051571747852469208939200279205554709520055838188993928700141929220606916553720382643223911331239575918965557540014795392380546402838642441502518962607346890483988632784478030257564713824291747000514361221067900529647825624758187562906367125714080309385061857678797299433709921800686544597954721146699240160656022429210716828829242967640007753180868012862063485170563008591913421282207763519297356335584836708407472881621356469813751844709166432629420436744372075412729826183646743832036924577633799224013079587216623057270623946624652104670860989223489760180174886185626822019378334162664364617660335303332568895140958897086010074054151724474802325450903003730883385869940610893807664097887844092889298065469385223607364404739858174320277895975268637403338098605255607915725072822729345264743734955426584798058550964966685274953770621723067248436321647506753455578628775083528132505938403151701818261741707372921693475919598000910552093049982361508644114037896541367094441110462410429210714006726429835625081677828768292474792555637566226970005068042856057033299529951091653829432435469385871792298137612736449305931324872974529594008692194553254274550237728396132637082526390494431467975812219872830927557903296772272431971360329053051805399648995235155705380224440637885764608156830390867501438835171784206805843885171993521246741443273209936033014307513888091294675884984852335391344059743323940868351070796311182612262729455932642580648209239033062436648953858533674582579646119353143805606102601360580862190334540042913718409370892296543891089399604571958120120128368360380374091917402247285769580119413029668362013047636009375932200247917742384870488849733870104943435506607970110938895365085540119019556145274933280531178420181174537451906101784716158018877380635290599752984879061141893180499809892492956932187388927095729344695826159444718183325409226489377314557336369512939535711366809735113558934413267448792954646413863851065671232501516275051936497928114815911484380433080543633719184434008616193516242573247778242848254352998014293798356024120276809295373551688945210538190173118771501297117441157290802150539813691544517466051907594742796859775086594096166678794689690743388263458130795480189970064685076636324623151585748963858080022573502939547250638347298823638642414879485234550082701056248224988070292009903698975173081784001104441083135487729192452861297181337215842949963689417358009594117812620919871700539316499429573025453245959284826618333747224617195419935432126837642270853243987685757088040230539053599886999963638138093146009134791744793763449152367030298994761824959481712045073000604320250290387313642395234933575145985711441072524946053320018756666837130184456702138870103145578561395345953530763674532597249594812299285565779576245173868322929666309535648546195243210294600927075686237110336435557091149508344152064373134218095450690634571647245342727893340833807983137103969593979481077088348638188276428651861740140789603749186073352669439516656955633955751182624886122406791224708955934028611604880713427481054172293185525429607478825762318556255047432693369733507432918897850915490352208849524705419896331632530213712830047903556437715222884842983093456914566823728014103141851236222545081415325267473915338405451233036359519047850871596540434329782323165994897798257145927482362909101663092452856251065753207111365669136247721375294809069222789158322631658481520075392374636822520587782349699166594611637652800945603784549360661904715785546662495847672626072939309488573343449017618503584248509860160026259631023721056734574087077002221010227434475632035143904234967880696288028478931369694167781062295320138655769083471924991767902059821863725393006352620130247664126849747134327048478203240595743282378736078785823803052755179935899629743863896399317138988106566941001742096901837556630256750869650512386844688025114464108534111024614810592513807907124527339979128923196729674432072341331983713148976275928671009763704406810542161673317325799814619218960832321443614627021816486191011730504636322460468527079215637569192918575307734339624882039169945183822168947372454765658531210562619833194339490260614865686245209991900819043707091408165655923251212379865501290576055460513287303833047251905260291546402484717144363535214107236859498390988856907758509024711512428289745679135728565928534306583779082081362925262085924357988352458638454388815590310778966545924361996355155588133445262232222943525590827244221545904808165775188958701096076904965391379510509410099035195297751959009456076436010211111514328270332371330293954638223655035286746520094997586300176239855314718136332899623446182117465639761499148800000026185531316022723029976763332379533556508031171127375451023012786396362507735643441459831037679633263343052303108282247938687556520309370817134583997868642094373268109502687644238790913800771948189661889710399270785079968996033630395763566950855321198086935694182127427319804345892389476994694889014369588048173349584056543835475952543734180135040612559114833910745012703072328254004573902957447926067130823489555906943683726952989633720529934694765346136793931503908128210612598522390692017912696115781953984486489450034878539691416221089268553800962694552707588971701234955505937862389807265664804046211894100442986816014634243430782451701010289093760182739819016372424266777775214701206303613780971996341832849369379527912728392227475370906385303936802877589444286755109580324875872130479172442972215838896588409319839947799505387832039975960103658686574344294634263796132111370164422344897360488769362485919569539651340894285835441902423710466861921054033495083870314785979376609879463940727561976903088817775604874356068445717381465382694937111762194104449374351133701120296022240703668453250270151547690045543756070257900375247107644485213023923645136625190810671461658586994382406057893363743917548240669323973672516935240847785173093776569712441086400842972613382241661419376082229565138410285268180421252783905416568422164669496144367109019078092907758788799421200665147869384472763857795943827018924817635227084267807893500118183007228105263957432202765581097148965656279034852858906090596510248317646364641032447738462702361893520209088472862714815859010490528804180538873397322831135144646407352885616218484344610837978206037300609530269444324272439140849544704071947656589269148556167192942660981025093365255365225806767211260377161510846371961404332566082822030358555865184845253089829294389941304124994536277050942224235333077777172975549024805234169207175754772084305890109314224564800176315311366309801322786306430455641199546159891981450538486553252958922258785107845021808681024633955028078353687736370879122495452345882251736697391244405710709450045023546434152693509770741407553856920848263541697860477456172090724589878607245318231714070288985583601594898109464705755962684442968351457269154959448306641421051260541835822402808794228190032798650743602538694379839745133473126364631547615106703114171460728650651944453503889583227352142991725004028454237919219869934689352062983004668810343591506532415763966570704607274538215412417675740366010478494331948847495762711324721049702656612472549321326758340879125829079374791090911563778673561425537513555889730957663576673940868210090892160680332443924977495603414916614220726049357186801428089103510581903972312722106547008571978802001979321632134322450452418249391019337840177542238626379641043896539154569130667611289641120510177666455198044425208883605862372104253118390728019016534851887029620223631591770001962101180078938283962006191256140516653128862136316691404057898913928755094827215293670561326393317732358604676843327180548739533466012765666583892363651212344548992478075430213693422734927872671282839294414546449619886466085933039160633834345312372088386762118142000094813916114072679699536614634934056966404782224193469623581680768122026352663703157293840146497761560529778959063218537803558740300249328534969841507048619821355108643077726520008500497265755769701020536348743836924083514687930438479224155629598302560319487419590717078241021061988773147438822098960978339322104563710980845947594385677360272205261006789730702384453854894381324653514566645437904353573569716483304454849635804760563501946837440879469668718816257193319913338350418522747782863814363841668889584927711829305969257850400648100924909644124428976114683543208074098129608055693794666066318457962496392501273186029189532846559093597062385259693590123057764494332110031205119328748432296685227356112235469425896854777998953538053093234876243110598271840629316537915290432154708622899626369541589727751905570244189824418586415507679665136126443163969128457616426175774976811716647533226638591916084196132653783591303194249678506276777328182466077725316127360882718190087394612025861946467183103457188082183354832885676827497173070530980715325065700456413446722039750735472113716248907083275401842037268762881479554396860060055546866607555834793113234994095996292432996539858137429984971041916604357159475731539807222682592566917747261381782098383676104972045495407156560837714936332813030208728783255238365974849921625681112606474229817998193145596955396881362049241091319708876257704814135674796324313088027586304492555572829417372392248085116240861981319702427412385616194472253499319369505786354623049320494637401295851528570015932481893030268377611671530824917366395323724458975468244524103181396720965208925298242908701495302773475351425593901034100079696198811095573358090032306949309065663462233958505722586110047256831876686360137470487962588905496102814165832895191749044936847688400273751866738821927471996764272857551114690848997233087618482594064196584099839569688158908937558832880965660914950053350334486515291242941388684294034794797362856169114929690843156776033402001688432930705950828306112346977953084533206951233444806280068720412399308360699575357446825604189386062544411013432668102469025319025456402974133877747847189126328114555458518479983945851762266663730322311648667288404060838822286670689261326862740820943219802920989958962223897671833741829236504877248369851585190914840857471750986501178708966055327951576118680884818134294063443926687888263518549444432079808924989576954882822853382140327252492273971111403148947903683686885815002581738344722259096841185092106430966104534096685987794180089128106883681400258466846565581050198913026574883124347511377606677484597675753307984815879478327627688987681335862949938498273404701743172909212740823228573747437452224001176784887155564995575510435433969666161578525118090342058589115388171780776747094416188572631334943443070521995153846606382633646751842412417785490260399233460646586177410694102672271872612986129488900897285900109242373563927328821335885362847176733424651805070288222444018203644444872406617095271363442015418037969196891462926804455574407310830042747037737640366936321624120215860857785709707670744465230182498927443539200160884335833047818524693055115262913711720278937944178362882868543530434141624143797882881094103045991316280470178682647512626419237390797457081389526002600143565867072515705733273086303049308721662529323108761231248771325472032516146338624556772379766736077307800828526083867345476753529578972208886770945242443299482204254283001326181067421083730749622664008883630077204195412324694173555236639761581742149154244842075607565982914456184137843360972671180587783146244543795948768146538283227883687873139011543420794068209031341751943047858353403102922146671231490456065896592692587056090572574473974651035300116127150405103056428094257743538620992676793959833407642735668730942996390219795518714236862446967266118955317912932653685611693371141818857627244337935363279434345043070293428975115582412183909864684752447015549971521266521631696101813335601551545477807629480538841879721620881899456819932134837354902095221978214443054280828319864088567157859028675330052140833886366347545434397217306130313806260789034490481498296459703640685923814209079548496515012298763362028359936554703021220420743115304408798173437000013129890181852892072900344211779981675849574329110253711284026281447730298513390631629971555893946774335268838958519866118956984872886477788358414940559249181862259681504070101879873813842540120674270079216397141807614194402789143412021089131578627801547726302508707598527598357938967545945941474574979217159352394039855943496586509203308203668871589139587372548669256586559478400172904893804236201205428897497749490662462923791858754724654862126358898819120683128221279789301022111008119604740125370264702154036139256766973414930011534422745235336370994909236123782214073219288314966973228959276138934251698188248985118635252857801760922390995808576428298550012585265301912886369153505929727349472993124317487724532685316424410683178522889785105721111774067047284804043223232623396768268846010044622680060193159591600465587093287147619340806190026875470234674995633032171178994862339718658403420124913904151254234823137642944027378142707214158535471726544077044417170355024545199123625109940958549109865343027740249188697084732343514294019107133746007116873838005591013709465178304661948412325483052350959419241589637108917485377195182174143762837158470779216322953615509131584235132784807297298413519166979391224482318708403357038020015999777925700248201172486705066202428932368491354826752084228386302708137591034095946104840880365209221387724831460409913899117584163139559390000297864303820527356336293718758426383819763554083653194131040242892428822804841773526283813896966144109151302597459062626711013508425162712601610682887478888341522640624651014395311214728810903150516115767367932084132456773212619869152910745321825555818800475689391587365072740605897839916494818068684304390995228795377006667068942322536676094054356721392098581335587978441991861507141632789259761362171334642877616160166004844077259370299118736904281877062137195851601637288101394475866591985346407246389631234784685582645060967125434780353074815761317323334204312133846197086815819230633885736326821094281181514853960796132521601105428390327169702641033658135757240255771148349276595700910696640721531348865634462967164745300792714622461085994725002703376648923868486971351091646050883568750236740246851312164006842828993948978272817906696455370270226451189646184755916571340815450422928789303203581861122465018366269902996992356951004518516671356602419698678871303909601903003686174793754116688248507234104368489549485698454112592497732576659885711517981203421382780715481236090641010025020112626253601561010275453995274399105825146086603924081360529235904658739199860093143706335293740604697765204724115163155083884889423054498904872897401712948022656668963658578983509330336499828601152024407361217001549674734237519686363844632832986182482546731300867040394289264641093914972700034478105601340038626942826355497408108288045964373521329669645550937712080868192276703016259677190400414339674399182768568740779716254781261997817055890824886018474241180335014050916099718627074934585462056633751104304480535296094734889236810909498811446597475025886811585801309544825347800944528747887268477083596743728032337487427493549444629153512493828279806762392347482599400455290875924193118838313271058661574411017754586620704501746336481662563782307107611130554061856837423293467854612505191260800057185643908385215644072233187376500485199701955511395943905918386987970675067674749366341506565915214532841335071772812441122339678088135817539742322205714933968506394661392930801287588510649776677462169519601811794892606544580881103514932226415312801354599022189133413239603684089641979245942704296058780051343588892863240128062712091234573506071236886986869772381628226343137827579721606277212604349615109564858168685445569407126153666756768038804527639195911442953226974969478581178442132477175202398358212531102433892187653713051821054334453743091254326209821972536888930833866801065412590575841696829093089794128253323076934543742754353184602474013378096744297283725492490098619914117274961983832969112352371438973513419135079984305344234919288899523450940381298288579874011412647302826129255987575998864285662736750612227211397074826262612522616427579287108740359201037608417155432017397781204846021564557432418990091299940661725380582507386189927157069223932398491345916476954962527538887217123277776987269083834506270972028901170745182310460632402359396417277509417435367068789545053973485669431399491604220088634904050023376492813748222184607655880198603336509271719557549430571296648781872175933895191538968329868013032179838904006371214925131612375206170241275775957538055622641592349276948117755026276692434418666722642076643618830857429699496389883706731977839813364225334769723085311124556630216428328573520515105089613910153509167028480372888812379254601418658457577219772660719541289329704658733608549689203779104884546083333711554658056177255741659116460479030326034951246039293495511523268592199182541823899626957413510466058842976566722736981271917112538087500188753030113684781938157669124593292407268941325228657335530292172233841078054618138550428884045200861380654608962239257154325598031534702284301783506164048744936414828105697704816139832136961184386996347510141395237676099839531722654195022485720092587578035134788050859608915832753652575943373722118315234350075870291507706926933596541419376686973549542127033678801798591118896959865613025512957283023876369089214103476004351240848116620756552075745936916405688419932261658198152318732542629791891127496544275987021223026770290596218502366558154970099026434481915581903822217156935323854099705178031080394844999625391496862263014421635180877395859762512229381440385433860251359014319476847115312320936590505171259758688991503424665559461314443942056350683239544609268967260679898135260861993453813670993767442685778930364556086394290480429304927205048232115860957190415472939242753250519768497847015777230402617924332745032822549712281804746442120540383927984709532862013331954228085861460857216362308838121630358903459660852890613745931636225951450204681669590110168877406367373746382647996199665350836173085660555624599756952450491862572860446470911769770842612168584012992005393873920194630677584134562351738415027276618947268713281868183316144994816309978872679220374379352417966931918872636899333038919075554227277880180923211605284847728261735150931878341160172289270035609866923786521654321525168926103394614303722132811701571433803468479067028930019706009789367170188382569261743689424406244130482118447561462949378173551955966086051702726792074014042254761036047595903919118397636688600477063847672093385226437619855490715858996174698224071539701952517597569433324644594323280424435025307838823458974096798267375903032413048441077020523818963917340810797308858530298266482807847308578555650279474852425948155390922045850567362275861527846640839877117950330245977855068289537945398602686276562919675869299395236381593247378436293125275474929706733880492298278742342595117762747640483843347106117233179228536259847829898142142608890730649340686259030630469535765232150048993751636688837014865080464197867809298392028243571637030511611655008765548479550944634643069252050426383419244049097536401673895596904041567119113339983064568335150993960848623682143819839062913872726272828594762524553071203582686449529194793474284631569577181399143903866716274689440487177500251011691405713350052793863789188926620423843742922753487499921168568818871411053253579733375861884659802078937364633903257987538403670568802589520859281638276105790053218102145666201178032720546559612792248391034259344847963821367618326449557938678586670942419345150631050179111161717044270591448926533953732093716226772484311730502873410383696121938881984241540451815513263854430286747043801191215400092139421263754476575247016242882286725429093441232102143111894102862326081988320331657331620334682011111562011084794192928304506945220934704364970946987817183977995994281617590256119703455332477917714212824020419043576181198325606181682999312745343658243559820257762701898811353548098024222993132990579526720284102726275536105439653387166687542444436778938958859051107017257651439151603555640369968080858571623289593301158906366252997413429834057388636659107017960690187498923078558208551433716041998224906253634650542443270481414660667444949505144682461147040552678251232800489746268035569769713604387882491986852824664825188099444021916597284670844948632675434733421731121988275666909293349071487178620613641452218290282541850461492669046941975640076508547215230973211219487994733055266487801260818780928197891573144704345751309116892756682134638336390146981488944176963713357107852059646176271435893226238046697889908643961676885139175786497594976214385192930601097602966260976430546762596080600814216278117753732908916668252977579590038267521361186003315769375740443879542855093223090042815763857300747972141892255313643019615013016448864802534298745960975316080793018903446405705610312037523873464544680533749028100827526384332076092516336035971298543600835357259670479740533092728054930183957263464450965056508985559768531577620103614138138205673179192806772550754629980182889078378169257542555908466707464370670601359243994011456207668822011163049402870579102257593511621497978180816169714084983126502682358884569224552703568775850679230945842502436300048401014198401813828436258444296719789019754000128501398422294969285926319330843045956289983696733127630758037609185594348072238864712559057714114015360488036604018286274561680078857189419795445539700280768798710514854581110760447408731408497316427783695964243697912376376903285276583296490146646763726076721767013830607303419499584766907740527527423282494622586409438888723719067517109863768901547887203605617884157333387816296335655998768003955990340357033866717031778539480765991535956237442153656656112954905468533951784132430189113420008618301319616503864278319864491179427497643359721498322789498249128459985061257996785787649459726602982548280826675778590995303270254799876360629151039517651062392164124737652491309070051874084977070619360898118426057731485108321624322279902785538598391025375702034649265179823444952818468904027507470028712887057178805381596783085859435440701114724005423440001573579809175817842923725646695863381227175142024340249975109485954456310859972461591435164252511095047079553592330501831045070876887233527198591156817578799964653702271501867053554869753535114091604206266431842912184555305480453283187762548020488237754014554271774307259045709355365710630864173419151356439013035357638746506807583364947755988573963034529316911255236525289999266716316106269486330547650304377148892075675948148589744079369387899852187289455451188211664422928529257334915254950602049782469107780828706158869326940734610834890779048821928838778251708848004965628535909956495752458458519333520665098747550737032607972051180603474511894448852554385035376765545197648229537531904148217317352924402742981621782788599180259765818614968142173577696913071073008367381171818549995174606239724340658460316997724994662481564412312753093932687436985421835314300540661014743800156647931417999799977180544735104953217653463522521713286551270435358455692379429405960579783681832426291543111632722619412525347150754217882350623748990533244046914481177145463170696803570582559020783557293974524154373981096738859619680249016995475368291166979916968465894338203495995512754235916475273859767267844564386151229572299445831045391536203162946162346895035360666230310987511505121785498527164508136081966170612527890804668507920682324087205672426860887809073605850095717025302682034241525811652123054478841868347880833269167058559477010919987543763011931322559142458103519595584158708713438476986182133542359046548659340263349035913473974847434619875721779139308047563638475962045552543179484935877719624283942760436846108308679784835205009227267693860548851932518359719037170866941847096899991636445166146401144632061584518628944222141282939189383557830506129049857366199495225024606160101255165873866706790660321978255421551442794210092764771181944905111649990930405336894803511134258195449154421800833598243804657759500960640808632210796722693300316697852254167151775200636194242636168762462227987873440070052706570785778789735336770338267351527291680119952724789187869515991676751045941601386389680372465206694657463770061171963125123666609860592231843461996787133135311854404286629900134068136088289095956379549342469247979260208126091435487050494436806959724395790711583496416917698655090804453466070399050665354111306060939903372531660409238603395314682960900550378304714849095834232431208743371959208503845515561392311528940016133003171147991820349303365510579459345261638956654479079677644279561401015147108319979179623670799979126580111207744105311812232983034299198547581157227570725657940683540364529917163961708102196566987025475149895575995620402168578690983263201602692988944261179067463868513442603226061632678036841435284199405362763148140827766377690678355055754584592386939057316689309101407999299082480763369076058477648656387288623643570903425425308172044517090802805614604005206231945352667882456088178087097425699034756163758424934126389658018578557873089056302779077475467387287240765985115594403238325818210180757363271242184451109180583878554870117264617251262150777221074698405797179577920712634382850128594874700964811178504953217717990799845627863252555251863768147535499016618943346031499421165789725982291971181834400890590500810876293352359623737687856565393469555873928289980146202708431910647533555768403171694787402270977738564365052986036415378845455232976007286340171974106362751941063989302309570986085703984120803139210598705888691609261828198514712490415211251289438339030524575716325298026681770518417021624496582886777956312107184151057809599835677286515858615680047966905055411374761449985635217469848528007059946065206276607452773119879724397289249450165900343592742898082188894119189898813539565494878025904613513505507471709725872126892834614506152490033565675826041694104961993656147056690931390893839542201441919549945439956806537257768482510271066055295214026192941025771385736510064884297365294840213414801152895013463318109369410826988699694670002683604349535195225252593701878154177266950109707477409463820138501159757109430412251262830725001132522397107178347049724719175348294586135187436683222397150113810694250037911076670032243345669001841768876934951498834303026329242996701286733265899911315150838427859982487322076377857175790238672970743044384594257616281564246852742210931228679766031837277221734985260261497415981092663441656568032129801863142570570588207538477066205423711808612812760796891281065666449411134951930140404570452033652002240279082337350995999913518618747863737782243811155163791607567524222199054056364071202160093450771480901822597002931855355072097747806459434432539919774821247891053456310541129324718682445541911743160356391976943488876486767379423398607422142204843318096522246539061061565799157399598891433217010986480784459074334911667974315364580671540845442055073868568521271791101474300249654471490551407023639607978535932879132177668407748219888076306286875893120517633618025957965446561525327675371720742940807212457510884386083826879874452648366697626501216494729088608375074159441427349295904627689188691742598643683107721380916513137355333112604184221157557789474676498056835409143167574782439813553988591022026100923961393206168159943510420766240095300447991553956636710750038812909034304657617205079981107055952349053381273685624456661813568763259234251113265113417954167985140173345186833245281370888866870725091471982593553551693514693011131178193454459408174491065124562253467321467111989874137060424762718012634523529005291568902280713058919632144541596570910769176365159257151602937483348186314421132503159783543816275616280951009288534835411823172674418801228966800570131524308483284203769626517472977390639669636365653000077632386166370259693204145325099795891714336807964215065826091623098747097129072124121077232483405889967899014301334698514143094333039756629933314941524742445635449009807712664479052551979148821759122688217348936209912317133887404625960388945937823670224297096469771506696745861163058331337199575129853278530741475185425678984496721522142819196343970452123485326579249004520015676549745027392953028581876621504749780862623837521400243724701668195540745044207431575804868215229904069379965258802114868264539978416449598587885688439756225259415108871237600131455352339580254792577081943594246088111137121843218486912203744878095012158154816871075674805811935091689410943444348715131525414190204814167592212607110183905538153838277180799511822508894095310759388373456236730975783290130222981452986592735216172500982121587183740810634259699327184983296636356880296933675466588365969906055814531652699121351634969669268022504593090950978563596674973088585282122965289797514119712752356361960863083198815893356439557230209375651061333296095442210972470477830034384182721344355388236595918879915679431159690651806373996773546652060333370310000323398339103268343495014680302231860358494011200520454085272799635850350220062603563891461484931887412829296585929832868780215453791520873406179396070660567491139741606308560753238363874022815351526145594637133489651206553094927075133785398683931718342107195803286010646355028821091269884158223233332626863157918020956831957223785123933055933683188831945170894732305879121456645403184826458348244404995879491564772189119320492282027658192490487244442071456640084495091413576833520096944343870260300395098801240335202050642079325597801177248392502225902314462486385035836126150819837667175743811672945983365569529875779518293838966973431461035620785067273108281026014931120243273684460858134491574967624093131656845372226461093440520297938495230243572146782777830437600729862531980223505855003566462311505172850029092723550167255756068306024418703240284463124840952821704233004158009427201354659731852876283421423708585944939053011453056777766580461736233369820631311514894468315004435603244544255110924605725063468328776133773753046196421176980182507298526600449299022798019843380012545623361850813828963911589268794023953262343101240172398244752025865706038277349197056130455359363111635984012146354241565489599981720535632230428805151131368794343224308297784156625501730050818550905776414000189547606209612381103481570132596779047099624343903935942523384021288232953599566956577661964590060927446992581430825783544360099537493121660722642126987190798468138338664493240941080427786521590980373481400432030247144381945149205306182920959791617277132741034268643585604604069518124032896601164855810135924018978323987854629631845592547811596504864447772351814159159949880901766513447017543522100070080887747652481930447691717381930742579490146013461130477594601273720215850108758934236938398730411224516585342485149623037814823248968312699665772168415040435858094049685957560183856608223069914426654355441182047314897989497158049912560664093691179333994774023800138132718888550974808340828228549100155429625850278309163734697936055152524260660252045900391399376629794278177258235777800594773093003839573510217310419440785676208414547107209857880505348156203052178766662774468282491665683472801399770814409022868590463760721545232222259793738989350564372319732742167393649566555346822871599857966174573264386194978138310769008386330351978168737499041815314719803332209274915679067380204631658128187931582138493937807243038239314726442821813539898446575716281085584653929746099190706375361258637304837356211678383169376890270542619466619207323782755853082405357960339896693077506643190370706641621369168484678569054630596561188368583988952812469077725056946461041686886585337904904843212148644675290162179986203581298746430361733907159715342183581663318919184841613351155757646136261730063880844255199113038750623655055647902737558183555673491319467465646888803960183309034063108343306392484455203089608849427674762318107421114769480197068337115733522891803703435871301239852180233957536751221159740787946612787480892317454345472839800507506586156057067144432068897115866333001492374932273629013227674425184226101976977851179265724328193565319282110491387881737735328007674388471772430902949994146500656753448332374866363047388515574260753486882179256147323206174644788414220032098725722270815933548740943946894050124537258995967503247481471348715291832720423828057344387329584193637264886949020090198120221651591958547693198243275574203743537700101502961262162787135860296140383739722390161846652930363323155925856499879322136490968178032576868330457503292742983389931302592526791069026906149577499339924415608191319376943226515998615417467394827520506603972031500759197974195281452371677340998220851842953574830723993964166562065997310227813723834659736415008766985236559434129620860801942250791197856112956427969909372205189852644799157664456878411999355890357586527111813831909531072348497677029571811920070815009824665918226925225494262457917727494585625906605038718209188114593300340431700681192469072268080751047897547343093739936830365706601068860927231176700139400770050444574025454771500061686297157519294146038211817131692080523648291012841502201062685291788583866522293167282122965722137991260409424307312365877731621042574715839602058932969957258039519344445610267060758949711259503000035130939727167636556431338862666835105060515691622524110379206145006834431368962133642990956596026748996170737003849568711274766120175698653040203269881473875889199260823501165765844761074920041988324543173548417226004074385330186788365372332181302587980746359586813937804130453515992863575002954843943882669546632518046191499808302541496819025715825208628291331634561044000456348927470382707692354687151000385271530200066383200024627014180049458035304940042843100213328624884711377165474423209220348693073568746317931912580293905100434274395045632848667483455662365624379538577219657656135601770520719960821352755118544998182760312764272631543804183071950918974036116453054556378193466684161679930550567140276321986868044810020566530654183186400556762069846322341756663849867713630179515056492753994674104508282331005126161724933320155310833349481252585963446654040182895370763182827069498270970947799785125828385649824774809667281466329623722976200047918917150533408453936887807606370803970113576244821088738801041927991130932531159237509089789897091171525677185867281886674715246241351329870611791515265664791757069224891760740404903900616166085022329383738516197212672879134478654897985377785503546194515244155773861940493447115931484209168866759411522927776326789848584786680679386434675567174920909832976838212376267521544089879801853416870605429531079334310930115763389040839277218096362853384012868555570459408211425955046309099099048845363693068820948213048279268353931807729170816162759105837323530188199111741593255421682280026209033298237730863512971175333078650277181682806333696703882917572841658859758547836934239829538075612545993225223524598655038761718202909364124653352606339825559614610486394269829781977592526191403906410180877549682510531966765164403940909536763415364330887257966825695856929396307282926153843019391578199739932684415729985295250682728557173386712488218063487545962493158593075197191884735672796712153917107589705248094390978935460268195786596676977507040511836675717486997323525113757577399408364741719365604813971492747721233444751945503770866645087505763488140894967573822373530159089753796962388831048767713416863906166662709948416953515871437998767045918030764803332354646705756843631045381696935787577841668325722325477386886352661894889015637289747166955413295758632562329148666911571071373812506057914682769590303913660456123611421607897475764067598499567748752192557630396438420836647853366270422368058038293209519113173786574053227128591585725599703397909055291937180543103604395343105042380488787330073313126084225811150728895008860034023538240308972575510261495491884452519622340322884660022463238218322042599953958711574410503847674420997948842179188531177437515912798120090201675555006552835832276181314502495699495690947571512057960750230199679892047540828368726213930739176401399619540136703162903475963690568377602974564549660674916183242258017518682608288166096328943738319125200801836192146000194784912795263917199947765622211353477725616995200479249906635531068084223090646806495436238272871500641731342292674356155119012591196933950347119047419277151413488771440972939291661519904016846133652680483403855566852682037073378153672100327045074857338171806381482960209493587242550222124533273665085273310475971031766140693756460895631919456624308376899881453779617240971976988739689739352258403343949064933966839485185916194933916056797885492254842738671792332988510030093771174546814918279298916270033467986615874816345750088487552364379002850591198244862175787989653339839846219438875778533672152529793240153409436299025139509986306835000536364414001604939119878397442186613364410225028162050367843714329820790346402264625243517565381828417021480519955561401239007770430298799534857375362295377959538514389156248520892348556280295875655534308246773515893189262622433430869672573034600149691286049490545833766561488723943410244054607444090255558364920603690738115119298258783279254519608515999318813057192790815312500502621956793824056263374843969194792748429911249486953290699963086147804273511433075247687820006326858860117538025924348603194841270640685176994284647502923579120575066080000932638989939510055176039020170325467180693535242708952848030361695720707485333635703392802272416393841184849651431813145379895422798581879474388278501550385894316169944758851059446270921464945919463121605766378881284892418951304657923126746118155697476809682100420315346403899913932884827432659057111378279905697606919715209318950866293048395830926601501170442870938545760911039620742173569493930463495761310159781064792922921362288057861862384220153053600453170941117332037655038486250224512036037479155276912496438422785542604925970471496471848286223035315655746881176643086434739835870714838141069093732262651880271014079903478540387550053879872736713268706633217897124758284484357219837637291214219336280331652276785492050206442554563977348241573996296993984182095052622569378655841639445345765647645982593851279789125371169865098410323320500470108344553035038179282329244452612453911131430953109294337951192293591529884188096794465453072411399129487739460304584666415283842256426246938108590277180952721421712851695765846888837809907958322363046229202213829512672814489118922460107655072972127879603506315691396855897827600152558561008108159578508286634429835347520082336347084216407422465672900487709177621948357020606487239302449702084317418566183386219386599168470324588398986777689038482549298118982919936541687061069005106074338089899143426090754448862896061699478866881442194105520744802544483401952340544885891811694739316833713144481577295187245961668606071185508537749230315384329462464004873126911325177368570728809454544141613683551190038254421658057102310571994112303160135291496679250801118101174749937263447400843993212267726392571320043955489532146972915743415045007139489469936358398735666706838324865559160667292828735175892163690857321484000116701608007663923501615061222618891115628782839155186705608792417951870175006237803485049574958144604705417519005465203098996595455363480230412113804326683322542723944264819792696430512763755373104277732992111523856330010121866610412363589306461223864775228311529659260053655101737795222205029434204690772290096603807425494862141006262870374518224734743247582404593821208593652177263468522410626008725129391078194777790506056847344818914614938301812209349298871964366549723818668820936443324007673303593455771025869298863837546884195899396345051957030662340941931395515197988536559083632995168827297874942471254021681813684088436611085655069239875025205557379426824881047271145432222277133360349670651228144405378488484958096990360666639500880086354126041190956731175090887924624650077475041354071739520492655639452677362968302946891263214072980434665802891044215031224053694341377649612029740747959849418040825069529672522648996486269113729048422045720007096956880768379146453203044271465476839357192716926698625968628935763767665534698385975904728559923858608385125346758803993709715593415872431129720455348364443740272406182080571613147183297422258897397856349986669786758679534361244643229033084937187277163777802875544745690015458290320009458141259508898833147921839794462684378203931524928576128367215837668500090177688413559873301219006639156500756042640247571064033902076445687080185240256276289481027893081602124468276550118632508750955682937832400495681361524575997326272942308732576501470884189913810065955280098162662656592432422811943610014481393999118906989190868998554640425010556218216790019614420589261303221996896857557234856863581450372746999185742702485717707789167373047249161979015341133809597909616107941402647100358819300586844568654254613339360232139449806346930111413541952813832291321801178069627173035920185821366566160829806062254738548404178901382594565228610618319572050474840591201214723740877492487333507896618288020092751917163961361228692008406262009039684182352995765278867913772286961823077058244881608562108153787667757723750791805431690311161115299025049847140818720500348768966519726429934456305616525040429160531929136168016564179004451418556701987071467562539209232377680765974214584247196387657197416598988744438452141549636843508051572498072257086454749215345730990355494874020527705482635799211599032378930291313350844695819887476565424514761511806902874485427269826772966423789454890846114037307664450099557596573325422922544211986599357579204474779584546071209759319410704585078784821603890098343852874576113297350886836755877223682897850399842567652468493114138555236969061883923844310744751271491726168079124958578393647409928868314644412934188532545189104193702130346616684558444203415368239781097776693033528668453776153441702074132082358023792152762821979729817048656431505554090485996809456782539323339027027356166029295785554045524676773006501186292104887514009167436465444454593858168251229328686577928652448121473908453567554279581527863172737627578221014512022033819834253010210209099061131161347902897239768657914850342398656163276930795594903253348420456832854967104842423966391125261516197874751817681008489106376282014839035184454700824742932357325265140025435661823564182981556738948839059280300023378545613364141512167622855116510913394868864093759605020798974664453207132620128604391527663287417949901730093149346091519499614915780235550034890485166958740083807020467922476796693132167557080042042765465164788011317309157941763379813407052016385489843123559695123124902844663806294776442705030143795020917540654374361005719457352469228444424131787420972256704740027150803864100305267777766323686173195805919557420697635041312631852721662117656458764866049473409864363541846748726866147823047185278045769620728081193234386951738686216842195862669730558980751186565361327004053167798762736213580573728935775630907474566790782522417425802186866853838118197603169963806799655674783625989985912065833115741514991371078938102220404976239290027156269675606857879492402364236776532116289884849472007575526406241404707705722789940060513051367321388365868035542957016355627604916082706688564418052077674025324011826909954672916088508769388687731956198667833392668657578159935284182547367603260473876515126298146188830730055934221766798378219569764227049100261394229992176446035912710807557306462747314752668733691549766098738931062345663952048193560333723274476661054602122242751525040868381439603656925676249349511801227826017929013692730463304608191389383403958197091592322548363193270382556886195009753761880844216270704271452777774992810419407723495282610651917365803409184894904086079651953077139513022384469522596039754087497106514700383316479264392569647927170716037251893624972230430747740920342931392731719785209363418485984410766856263044791027050536758412534783183086234753629902124924154788352983405203411558192923209039486170863618574156689852721054523858319120472348013144387682062680980253052154672885333743950484016944829741789350955140634004861170588325641956772774845747042494838255871063790002153334217740336499477128763580689924342740159093186498554550401216307361024868287806246696459461519894846099961037675578313557057794688964296507620259807854425541491842231997592953587391155084734961087012891208063386916552584630434271360477111220455193689868452148512389393382311693899216444283694741546292960947057715218537806732171975587093782941468046269005897769167241366966261554060498909584546029918694351540093328650622109078204523357947892961447875434968250931487808818828752391846355615900047603290211537498297157583505821771479378181883722106798350104489058633636720277213247862579526168428593466177659809193030123349292178873349728925186367010199323466850313295218448209188809942456542919431500596493688323355166977987183295506487579095010788530563487429569972305749559299822577672480507415294665325611033076225653593835249268418138516604919234177566811761655899948893946976862569455406840260801637343339539034552615355710132129236954451334939761061329610880320581113553118891149688598527562696905516979296797045078150287748781665643795416541662660106643425082374377705247357643478467637429188731992675597817353989755379345306255090387972572269161015334529508752611026515679508403586092359453973204363160506877228336459580948675491455150925092425376439403521067320245612323894613718200963988970054735168016464575741426273247588707382272429938264203862037616382932248931452523951516838336902379767688790324286143005235594164938784602624135059261385643434057932665699941935665900337491782795105840552874993072985895640234659581897271334802150069508905170302288711599155558570316146759897905781794709467534567826856694982034446512797934900217232999607469872773094865908463084099136996091206402529175010258715356558523442882676037257703522363912847688062384950858559178593979858716006345370212504167729172876771424658578303768792088843162261630024634291209523376459950225143060671039433301416168739516792768426246173368809995880457342099467717563384937378932622644829885917955008922054492834556639486872185118420416372021128955446529871367188663788124459743465658121269960766732134185724853511194160066161097424431417349937391652077483961517821818685793837911231415195352184086208979548839408013231935587194085704673816790710403142382893476606185537741700202224883912261886181938997287125477055245400534692501513016687992682689022353668466669713434433304235348171260516495552963443173201830832561591475065831859424183668271493255142561746990697258039272016808652555965525280685865428140536339351503581457756638603983442590395274028634769674221422723546641611043671873028920247261465537241831292513144815009670188833377406811409998869315358468844738662790808426376304928147283368885282689356455712581066821339625886752012797784243520963324803381005328773385600618603823011192608843464200086931529161143844896296003743522952700706416395159852277829527783359653402989072660596347699999800926131275163540713340362799459884451158546927402075052442288289284136113415685874614184633251933639295160236627009250653690495811507227318811695887785589514485590077114878242891494078796245195255007871495938313073703567323939924438503564719391707818501988103797340754316257056687533659601464432214139207423298142482652931103630591526339374307390106585584120882180801692159511895605044995529040382636216171356199010321769491560828333274281952126570178545272372239046149414662494308858319696842595028105961307297418694808452813142138080211533068146926499411479654971551434375106489460117404481627774676504864859825928476877368859971969283775032740386536730339086960761941338659304829755347947353962747587127556987230415228794068505838487844637210836496852630080396060049814262742758851929681551958913803474015219737682213541961816025400242007119210713750826379439769102287413505908904121447869691919568826570113307112634786312046327711947193756580937387436139155162040419524236076809139190337380075731339803148320135790725921183816879783748166619138663252585202113894241025399912948500376283921916978522421262865661649409671354700160621652163423769177647422872686397838982906660867486009207670647201777657697650103914300171834766886095251176952676763579414631133192718679675044181326027078456928130529432485503606511864768552793063637357038029689809966054851871511650006672256010594007536097597803698219008404241922231964758967547663534894643295494160012746006771281129220283996489852566651490855610359592955745454580471744080009960026773796566215661835193753102238059245050310230176431147509101539546990594761804719512606020345287099348729211418531247088179970580820130251303446356059111169512671251620269876217172394071740360486741348278459750140150031378069653282205126153620298473835414085894063528660135906617983109765393774217602599002242101987165973219422967113184207549802781675968522136637250875310942676454017820946353056286837065250986360027127790858228535875791417272044151381072898459197322867095349291691243745717744217841773659973768985083651587091339050294693065336221562823803655080800458917928754586231678161640389321100059623887574235175081740302577244455405824650352954466363968551867093818426174312750091735882843340643841517835740174800780609847861079683620504151872257115028208860394019180193902105270808077779528341258265375075780439003668474877834926429866210780949547198947316136835049922083811026873947234639087540868962569707102067611898646932536829480061014924794052642852148755279205127028038975710206841956061984768199205376296953887171621077857161870397799605545625148831859494123066551785775730651625039907840586815430196210764648428544545808560415304352840474964331758970949042062025875448584056742038524655859432597421887843158954848614809928731257998768435579862748627459592452364049469011919692860552091620587276956208167217675532095865385874343558083371832655536923944963274295754443096081445658201807766712265030472325479365453948704704817138315669002899283545375961400616537461284473710271262507508390212860000290410114867371952680375764013700530647680993867689676450184314739946664813218676078461453286845821618613931459901412852073493495487163452989534525246381595751686942485115346376688521997465475954857836392498075361854201765086342605442106146173693762293156716736981504698666277189645234716442925652092449536322161418031783319214709060913213216892623952177326505101493400454877241023100876330590726756988183615892388713997090421695777188913557313720296129026348979909111789037770619613459899983767698286067093527451221872715770028698394886446012113314751379617510376970986035733589625176883882906824197330489880995225084514451083042313730135206974109306313612831457055179920472030217935541473140724846673238100133466656012283209917722356424736754693254990357071679256923631867264909149236991976990604753746359604009526925619509043293751788846465435934287823227704486358009072269335233710010260256099115703195575009307706422014094015861955914540577667537515362231988059009111426844117926219834633021358115521176961198467815104512635575013987297618412064865102587616296218497124237449489690968878578867516844483038974502042427531524434724788854705566986585594010752458373863440743470316157572397368931541037155798071968866106410841217880348465697598564579480515808960698082866483244251382386963173174050755787761486506366018422848151447579977346970083827303297365547889274470052616699954295943006651767768309503275332095431366276514625683846382620080714483487763837629364761344782054986497353817993232986654816566104172952304090829796049575838841993574965539989767181297794392685133079397960318192661325404123605214497415361920011142611934677417924175227973939347257795348719425626574823418006084884911229390531077182824741728171158844790709741213455497946100489254389519734533728769045684996208437867040783146864637026624631428590960666710676094509864275473449609783622071860401262402852525125039439624811062183918916078916530694815530740419959643751567132867814140267997500389797250663060062130786829554372290947779147322778783859785327951344293002870208811714243945736961342423720075412473608108555145434597789693289975286344270286558042028392441552821772477650875181379275698434808504292771327712148286328621715643361052104130314016835202699128378306398335389334891347233062915912242889703366150054099388244619432806526462912006007689755140101057503819545805656601571556180813587798190788508017769953903353183850096421689949054702874468684654386266230525235690918219812160658611368808583813314933120023086037069613010535952273411809657114630931920299562282218078863275827874092189008587860925069516985876443804761737589371845523685596553132945618628799625081392236420126083931428430604925087729642301957236178456284309692536063748757547179678669684597666018669195025412824246843916942431105468421685550516821724448502080294948939644875507815001024147135263229776347243166277434923948912239360752469524167256014208271779669289991146207313968551799547204749982075661256276040793129073904750791218236574854617897607691292883778366932652001007905746911151765321239875901243777232899892794006360593409255470057559934254042000049020995295564248746839607660255999147965060329569307867308525632203376983664266731503503449978456318804984735903081159376384980155372307982728032081876842532055695670141593233563219741086396111614998748545319582520655648340405978957731650007824837793140096554481755377114884134274262380404698156000278966848228433986775451322863966367703802961277514660643105121302862321682806779118940447889699660923381891814097507220590023719636407538094703859428752349893776539837974131931990305092496681786089917001652536833140086711300357874482437640019266404439245632146738831613490551710278202738261494984424981138361902820273466541778899440224552879681144248872923833924501510284465543510722841101649467627438480346050170273889943385175868318223441573545870734428864408415918920007562474036798227079388447441678771857461105964235528188904898156531384910001503997422185035271226085698521018103721878966343727264486358076588706392367288362892075676927482822771227556735208463879605832559487105876956071824815042205320718615682509476330121189526973161274542751784658778620600184952429111462349929752092340389830234934746612010041885901066163435387626645946086884685750780811089823699751153821001760162831782104995782963153760246953519150728622929545248610978538598721653977858495151292651125642272488599642275033517760012546822295638249213561451367512288428530379001881667848643476896765082975670846015853734867124102923105405322623947282509356036820124793160687704698286207028353787237004356042799633328035623756532673749579868452157449303936040682427836785755258038708108291208239536329521324500851010687248010833159657007236873975796022181599915952616909639298811889489601455497287951306052993336173346400135109467851486280766161214562519196886466656233405192013344387858770477525875691581526750896001261683859066034570438774031353308624119572604027633919536910308091013961863892551028760809480818949585243496261574619413420293092411174612628992110299975398746703845296247551534193173316456085488380309284794060302450359637993620310934284123484800141441203118198300207844562130078007537204411405954451300985174707861266136248813673995357969682675587159645232534155354649725936850754478224294340242773660549440798068761778847257216386340282094125990224765062917739219133832488857443012164830770649351944579182980460171336063255521818869533769564662957018510006044888126439237464309872710705235633741977663430254835363711408436090606283531689124394695134134959227498924230724247011981507323333736170425252314121786975038580269206729381165525142825317570026734240682758771800784105345692154952135716950977503078891462977987187207262531393501959802665411992551959859016562069255150589839542566746920403158419143732692721700810991133193753660294728295136395981918533313748240547590962072645247276175893777788337109665030370518382633456368905594888553163618423139978166542099179339865229426029962970887778023096922656325928141975488480622966546200382669839869136133517000281407756426847849275747298206607941652718073300039952517602091934211393464454709035666364294371228442147250731543745943652258886073547811516514917462103945368925657686999518788429526999839446900543437500202325826963744602623982295058686173648684514681779625982630094910803344733088611504493434264330997752796421878079891756412018836962842338926882685472662768054556552296574030994855078495460361651545968494414057292885616817677653925272234839200356585417063581912734642554211689224324594002099776640386314551327715917344611502603046770067486147154907802964084030234672659308582664738182967457793970498472498941461342122313207186183184782028852834269072510761664216098621522182202934565575393315525733805711611993791667769975476322399922179537391688978870189049991649526216735549272183892319578922212587461223498136527190045454006571545275281559024135205290434854739501241289148342114712080894356894073184769088510963991256644410095950924734187925183469614538185834613206302588601477165585366153184843672323158738266602563469971054229616330614279679574382658925026091701943861150452954835584997085735502635218619685148137222832268192914935795056524815073393866763579060648224723434553918070589818696016432598652092755658078309344804901168280143737786770430817954723803513851775410270068969623640505373883184078869603843542753249353037172778846995626847126906365296680695361966060470247507998595993371561767128691273955149062326498698768164034054607551976456838333919892520277429567901194234259330862570580659614725576316088562349844843246245062603846165824400334688973504218092483302898884471520642889257543201721917935837402220547321629099906580009893357064050891560479734723313852974392498201212404276861556105077711288939666643798681652485681088231953910378126436776983396646304698216009753137273216479625061496853651514281287798605314060949037159039274601658650987547104737279485093567603505098972986977770612820228461760243429106880011566420826642479965234774544361714526273201144107730810940434622143301885082529917365572202701449922084875040303855915954031472923092339440247698544491289286332631240179537761613877517086377495111156142507838494374680992749647466216208576869609308732772904618045486906841555186720894978693430560840457459969499573553657625250516368726973040913161287491488553500946961387580937859219017025801691377389279101613402499772421870576450437098364487449915386778185950786644821320178629066848000488061692479257473372167288568526363380534833765595100695200122802252385286530793236718069810573664970497590238854429458204060367911047617119312039559866788111578950429656229601025245477938983500852609452096877923092312691950993069214683011660592742840497066560566709115084283730206417980065917380098224680226567708371078962886906869440547318848518515211738287703080579160502425900121647721171754192274737937061976980079675500314323584481909054349744255803680352276042976878129107496225773937384074966544160665568108005548688871603160526054983558291163057546304833567512544206227307060911601120643646394094773739763971584574687235307315817432171998636449422359083410509799887144056993443768618935209634318365002973837135681906185975855373263729287934144674545172155983223877142161784593714850329544340487447389102978891746326717050555633486988459164606053719310257434125707171627887970794446624992595707204906901465620528540475421514150279075453056152080381960362461454956971770270650359307383870417370666448724342876791231957298943308329267823964625536106626179574522538522186620548856759229109341423827096079770561672158257826956365624698175642714421175679872911740235208179778361766710646801653923328408595751909554611179253926275542039722491418959374867357766746257155031309585102608293954934953229753345457337493503800140146091364780307302763156574805337869002762783723357701393238484168797293951774736621531970147210145871190799980456307761600987263411083076216763252164021493187463130763931188090103807567594232814515773547878248802304181792606524188310494510858143168950681412996311189210425266682204897253714306857193574530478574955763911185892109092289259734155350561779266373234649965880512250582995441716283234231037997779415576326825993327364692624739282940177325408746447041494171459179107868493874022904832752066748347256588565677130796464536066087435271769966410379401293037419827204016697102072480891068748895865388614022559225043426678118635643795063080934437825101398495238648024410983126054592017894330654808776925085552382465088167509119639562353958021722665833013783117208788861319562501743907184292334860376471968076771988134799705147799180409916745513921641091295814884358130415516456557349747418817487096114199989086686632790285170806654912763926010130781246161011395774479816887737970712332097450430325191612145484026736550728953225251517048417724519766236873962021850657004277264986295976946666476135887772293683820461852981104122579775573109004243454113292664451339015310259376438354654203360564475370040197733041419604894296659064576800586592809467620419172406411496424752734771000748746937610374026536135093108470536442824281942573185290411591105823310864580031230985561102480759124021772234196798879561294177584287068077834198239141723608492313525896779515733363675247294777611725558315556199352346147924041187945141056072949027963596003652739666077076845193959495490278726444640099358840278491786230541949588958247671846102209013655049313459763724020689236035162423024860187479526830436794426598435932529094872647443259955561772456653411817982761704391376473974765842290762391663643365705646714528240540209725239960158441430183922739362168018491275573550310258764611803952069186925671999373481225716984863988937902189396456598194213674651642926943143992031986782654948107034493881383864807327455857841253688773377153855744248537865431599212096630425447673483838233208000116051798978996926931375677137697727031191113743200974043193268814066167729858122676568920833714244672307119791943097791346543516278649571047782814102400977831203976297187706802203292329116823117873490776989116240247820995192289648360386761465267543322961787081569904971169553637996286776025930712997128493117024096328478692600325709641338616484404255274306967609409630152985013383844561246633740660595459125741209937896411292122887403301033753774381596478463200663423902475441777612360438712348113961844254493590229833643143246625918576260419402797864912784358759061225156373697699412405568037321473490705008360260305570038848317636600505150140898374575366925493386273004310958910591720833054956593527564285329013226409596295285144233223419726596641802994122908954055258715367904669502844594431271376086811451913208957438044143292687177275392036501571731067650016091679740144899570550630579836827068918341275757203440418008265807805980186211319866782066968778034147552961703513242962077918934847160449707484477934261544435464365748794856625713725046663819195848465268985161991252834238726892899842394448606437584487935658872460493358589024836610977498616012799023575188561718511180311992369490198290608522632135924075551769278859878631996263553766503744365138758969577444413376176087610030187500556588566096721959643488041421100291349037249909953837956775416547381879035830403725827208918153464883520809964087663700222361586573506491758684111174391129599232082232022998910263648860373363531784170176388883804635636594243584709888002253863337685886497461162571305378666153181795500411092533917985707499701698837728324912314822965341765507461751772581499787406088326862940665015011839579099318461138492577597134946525173459292056821311150089337398031890516202480162912824628215750186707370264971888654946643758362205421957221985512325707201946050108721620648886086944255334968245389345381528636272381721052872296292364150039186350152562114745567982925536187710652955444781808322302507045504619271119657045043493377700500342318621806877414886596560463066033583051557959361095343044896191119417328850727687926798822864340640789639920643516805484119295716646059854420987780234174443208811673977494775169943685482769347926433990364512952519431040713033088308109245733744684889704991316029030619878173099346735727619180610439639503800230434681615808205259379835947702517220074789852104665730618882996058118888187579890286373675290103974942428877430185920337835489036091795364429169946221946535026230778512893849458215950660033695446735469089998362582677841338614127426079270540701674305722473597583413552876183734215578541020562352013489544039076877970617607299929339614682345762284078369004091591822841583158468583753554671659588694328368468270523086470908223136179859578016316509741877604963474735239304657301774802152223883399989770728172212407356983203661164903442432832487654775361324093825814822209301753473571139878867544594569858932531052479412988176714861711554386167207805101896570805912931888940246230644071867170199131752923151773442336828311464664552236114505505298088053824654987882568744085418866902462330690264901076558233973534045475433534222659316807150787791587076797812331098362257010730013073744462506809608118426280558678569073291600989073586518474343919246196109666090648154592135598835950147539766966226508732531129069045022952753768874182550707459632688652086865896015589986998739678343357262813744739635040653253655389999645022607372026361328934004828502652982324291147751931325005899287710730772381214218591891652318178603748848222077546950272946439874217399414614646161257480838747172377578350516092233958379786587796782148351818031346912382765338494227907417429238585089387711836874584400920797076986060120440107176614657767201769791196907964040182061646521781317990635594638568999416714429302201668391937914042161082556990056097440957787643016568740821756655056545267961789492346296930667196144720927313116606781188639965786219180224305622841459858274324847507765334391240653151983821303188790118773653184416392443767787246046107317967984786350743435438555520378332027608063587343559253917781183687871374603494706227215410451832024246334099482612277355766529287869645247615819219454372109727110146020987628455121128371435195196339171284091374496549299568127803783423218257443936975084584173961867776466623867412475145201354602760877750394684628990384887979943520292044796358882804373758771401077229293873334599922361481976240167100673634613590056295517721033910859829380710256945907414618374965920799754778505755741872037722228071860578913147015942653037322788968784289745262734747503200201107928531325456268980235421625855169894065140539755021706239119406899805382024730938909003088356129685548722257931162731329026300848341672639440174759803243266000460237134920213345217656373103061971186278303928955342224095850025302601429695818639776078043012481790841533552433618059498594143917232789944704713176133394107656513718329274220905001400853412783224763974667973585670269800685158546942438874603217168515838396405130219927393055388711548422739480695719970860158192135213288608378391962510662435100826986714668172309636757318446923827343624090644951141191021966855344834758368488585294461404307261379690840838814825804323772411080126761987036356084090108083003625710659842853258212830864037969124045481523554110286526897502974056635048063194904633436820239400656992734291561976239560878300041546376286485568568363509585939714736861402715747197950994550972974894054692857679245476322534840530967853849421794722569731759849730966491794461321611575413714842311075808438031626435775795967993230878002205297530782570738019965202819630170247666119506916910302104246272689821551726990013750770652255230249488875872444173870945675979592395178194924419994686999285806451680850337455125762324018366852674777866142385607637388037212298857674432207911201574158428014212395361439605139366474934306278005856273226276759504232415087574651026540732028784034978690814143051385158648640854349299869554002355093862626095927430222851751300570655959369895877859170727675181263604213683213623615617385305261364171209142245214426000011292078168184113208527969773342754634704812339697324776586528829386835954624237034386735432125744694560456199457045560680470143400294178386469296205637599209947723684024596617140023478078541517489950868610156959141991448511069727906907848450635967331387554987568251071123355901554148040971214234239500339779616340419272437117255879452486251428104769908641030038128563328485886402600203976863222782951054627811039739462110755071942585425755791405359480969295701699292848143766472491378749561965688323811369763268842965282765262093587944645119860457064019892881155158250868232160011656163721689004228424379555710992873354298824985759955348714686790236043302310119121884538482647293092311877024791717597744953970060103206181353714639987679534788108038426017672541757481603774031034983030687526880086244699424100157944295895197542131960114522447006069293203022696700742874836228777469523229870515211943524158715488020123816041298592403377139242156555171309401170726593182620495149931601949680656280156107543581312492016110350218884749905389124098706852506747620010717935738868327301193496279740932482256185735587686497610755888256170189122843540693506432191509924833706811559332663947413397416117247242219544888657002143714591190903712734553043618089867553215760153059207281174309985766081813267166074480812483674225580942086998489067044569559857739107193157155221864605059931699664477996244804438911122494857484602837640607254752245103451437574313466092726436005256915925899944682671861687197032829961287417836182544745681778906044618974608679372969385949817929373651796831402220454908973200350100520792730993683214304478002702369550082316542752518315930035502503492051647716127402310351398291668424314688966657521891998886124723700748705409131778604616197705858603270857241255554220923806271001908128618317199872767049558551852192980560848061260629254991298273452847328499794816794138897459150581426142042893661982277759314246534062832349813581687078002723361869669970386838773666717405364480652486154117944437183158230814673559943984831703062851832227475671612403956341577778889100503829494678977329965332416053396394771566565799895049104961752611536665399084519502190326726105050294032529716812249190802039584659690598562688214896328871399883117066267089286644865566690386232552629946011507649637752719894508148171141135579070583424797093522427659691413072591395200865453729272258601101916196739832693337838525849429390938596867793783910783266818461775478597180657861363906504179905152128342348059344682994964472712886539498706805393416534693225359406885412955977556112622919823331284825875617846181968124383970686421885461755246117074972740580665698728460514957610785926122125536281421488942576703630693635561075777375774837443917961953132439718932365333383127565918235948614411004518900995585903988896923902814198473717750664241131217356242319951874905030326149557021414974272173849807348228818632739565364816484591803251018248910848301838321841434497015072329097068811691932353385120484555735521668096863062044374238166091556873363849618294215233660044905220890012724099297304082496761437424789996724259448513266302454448416945766557957938025531218349569844309086922842039620348871772136799611552412280437814252241104671956841166328082123641922606351618986537955273640896183319276767677355120962736682642313302040979899815502612987585986337443512468474060512896133101197427517320162858763996668045521624331214581534874844633352624316206520906609655504766145582763797807826864846749727531420416633637757993115534127640486824982799271643227206879691774063129716400720883728185506197238130716284636901300148759998118464282631759402269966161246334144272569256407750354048007478594463140123070887390566607504176968132472020846615132293318008352526821661621270322560540956694012765043367632239110727666036656607336244287083503043377421028219108274470259731015016914763108302971434217262729461762459476091069059914921218878137009196700235455413802757127406019256610272167319145668966298607183323496237898389565678884182658119490009065204144682540905249962686345233957852398594981811633522811678957988836043055525458372074623247209333511183565402601984336652594524833991673623629893724629768345988102642885148494447570181903894388792205117958717770546164892742635045700550793578361017049384872043363400087552585632916551113225648791965679937346754799687182785923127592116262475258638856817733512027686223655009955980934057025528568789932543674135335254021484683603359965226833360851749381679177227700620562306491226645372545770094188561744232870128826595416404096293487905686227271706854391394176920767487297064743423928437796919380999191519517061002868810112083297052411314601547694834374591006008602395715760730039789886513232150423340979836469405226084312001850239897905246311566664045360627185156216825093591786115221603972772445938802882857814814766700542012295625990768526040526429934551389184498892663301888412532458304436741600677537752009127405445714271173066725347990646698409774382702768700423392473168236276031790964723662311520153920369849250146121333796763173721507101606326673532387264441788892789042606954553841491654123758316727460955078661640267042909607303360866063813528730581707547136665976672326856816575071434489889475395738834010784967214240318262590497187461999932384777650019151447812019484475877239298688361662676328200664195956463490291612737421305673303992014263178917756545043348998216583234608257722306319843904574904601705853563660390034933558718396036358040171178333803851109490132849955837654176046518608158099168729606743000184935115153512063192582314370820898998074590906085237381284250175923270455503532181805909449308549136368228531947250130068125148284037130666169767449855261996126300118457012006483492855763725468779845494636366136145626520646819222173788626211452404802164519775902477436297930768938585388745943649913706687743347846543308515219645623399515258868386365513171305193280575563399757389251976846221257379200777191663853897997574437555155964759995348430651812975557648368180063279640683639980523502094043705330413744668574218704295094143680260674701318655876799301520903608408552567315828448953783737300944102385105353251357978060546097900238438460198490827868988962680059024519292857134402608849520643029822123353995549567612005757723558107297732262034131513368124048151549773367031792791761462278874867263289449028693149244878546776826949097935827208173951833171837235473898799375470432714446232510188049702868768525704174343789364019847648938619431146105106913925931710998714379137500067105750156870066176889650798287634070097245966555504542276017068260747181245998804447621835236740516430391960855976053338073307363263090794255569589167496409720039116955829782728826253664111520220320982417332430938387348121323768439489472867387079165542402494064642260979931035558778305912825880795372875054053094144004274706754028619380095142134201894312324535893890712264896915496572245465108909598124223239627153450210659108131863690345252867908219561836304397358219684965777173078186987555821452131591503649432715047280993118529668584557037538983162978757886141308509731230394840822420229277944159602231892151925038409351841481144532478019905224762265751190693017355122146726901707518026192679633121022302890717816547973114651046734692492136707835038047221675413949326250185379472134944641803325503010059857322522478423396945828944432593136357304225123660464247590728824927005223209840266500407003392303070790507370075720406189527824059339069779213719654785234349276350655450345332824769592448468664739694929361339810781689873303350356561272666107369860827726780455189927515209673356627342394776058621180011927028416218299471347876448299381274896354240962402051022131076945455777162018674889466117178575780802967236326184932134599918744513798960649330925480136236927659976928663178451306541882699865800208316878252920908040163933663570813668690481954862716063151065869953489472258374495070078375527937155993446505094818355521753168010003036283888581442981827745640531734875090142705610593225695412602585977164369219490433093048558950504568894494126771638226269213548112681830853149378767468184777519263822482714235136178090111522635324101136487991883562785480580163689416389898582412309435540861434229200745333921011810110422659692453201298708031229995607880197022070810389183759846455078861723956015969874964890009077804039932501611070477579604204823483395331015201178252156096076186633168621801270418557031698651421176481325629114275891465529681416823529182899200784473859000330800489839551024156526213097061119193259950218763402384662370890137439324711278074430394258281866581406230653516606954432673404846086427882196060209482256424314980183412901120388655396588350801309702864977620421589237237267688846334728954059633653623674469479539548003883787199082454351967569663630857926167445641805390830224109383199062321987281418000251763764594893178315111929784784019249035239471528493064803404823528793518343566815210824151841542245863495344611885561966790025699493698809786622789056051570156043174881865384468942534072703735538130899744255831868731201270094118431031015948225229273155270100510361560905965621857811808127938840030470617173983995285337574753653407449688143713458953128678587586784274274165429503465725304117837737761621156302017458396948551001837045988861551862280727790140764134355724083402130718358831149845933261811695107935222171502846421218906955131633751241263629837995444925906465589213520785865519318331429916684517098188511459890424848227873908895465139912502281519074389867204621858927507970725712896926961655129849004903025512200924776448053780707652393482213156497318213649140252622531459459673567190514020269594404128590575607605966008231875879108862884550842523904701408415354623552241700273603009194730417900328213378603705915310773389351734310144715385615121751992624970108148744930120545014566071026261407157738861155676421677980457864570716589484795461349384801290522574852626508451075333118748470289627414378630300656650239240277779763748440893467594162743152479515357357674843043224550944524397587592356510435581998414752794164908079674305688803980509513188069895457029786167583326343903722519715353488784547718681202329663294942534116340497060086548348451515025449024575198884882653534170852338941750995570231236956947089547651283132147815370607630514794146646937052912428577306983963197867806335272190182552076774345765647842622373093454130919122516121116409820965818807127297077523302309151985271249438259913848409331836989258448128920394950625134408301071677460830086110098823410259696119830245511069711743372570718507033004499087377623704413905846427882089339008465952029742070451154961850859097451320249607872614347063952273422045096149467841866002902715833426531002019089814371348603204966896006010082938184045668473197572187072969221359502238363264633842103078331865573819737999388988423547189468172073912033081333363408501430739427274112742302637898972946730377910362243385054574250786851503978992978846201555780513277081054538479006557579527143275233144472066395051571681748755308350809136012375533777314994450147974356920443466401219416819092065114076463328625118520347192687544710857778935282589993344502070519556781188100898827529806038010778666244534314198415444185729910685531327363745936748071293378041078990133476921001895055743906340538680059761176783953866780284589623411469624965545020110142059277817666093499565757301738020600229653346291087256355651542236259857611237035073707878918224737145481463612830425637570786558995707637052715265920424064618088334545880671241028549026177638164519861696232592893645054967819218964502508934122683529728499282250341211575387895486953783347869117002513165878605323578826440543119874398971438450593518748354396578271257300451781949156820364492411483036851401215080130637365468749030755030344489533317107709687346781039244509668380895812415925517638626221880992980787430980068627204906166312315260890628466142199819351483119160495571960749254523601847030164866800430042125842164823050275706332433542729018590507299296717559343098078668097410902540543340548426963207871500187003306395379321140515682040587471419483314340971889219779266775637395096513999061047657445950923326125962190137073389995663259914904176460038750987657497446712253065626974234029552104921339470510405360186687268723618303936497911394405537265245178201360099827388054218815394908166363044519378215088408858036610778582318702543215388884642850952361268328613152502333405473013368691370289521501885984728301393650706792362199862147867130979788576475416121101651097336444159959111009800189475245639672440428189188513267313845011355095349512917972379770087711427578110726366421111112040255536436978608380570922159301277837483606535162127874962132460105712450322315753020410511207512752080941134616508791722038466207666040392001729020326099825854288751969746526769046127414671211565912505252479734682175629789559081307196509169508302935307263470236797815590535356618402627843449004024982471102263227643000667676473187668844534452095820504833709396480535636865694269150398933058440861144358777015687046783736642926053353289451840764254153515462249420052321619651896794017503774355784930022563350604623138070944934867488659919043245072696334677580055947213708013637813656421332277850675748281276888217361600085674831493854032738728863126632420591892177426768233284874677499289622499338039063022487410683134809667051345012580161507597875102659814137356322703217248974955177866989713682125992772421943608773956775702816354014093530065997986886198375591561793180305886241778972331274138450342703491761769021261109866362166455012489983187995968631258250331906558774398015107096600027211035736417387566258510793268325483393724991745356225506310120421336308247023292739764131776951857481960335292852514991797206244824217389051055336465184681545479578039581416191214534631591624366009460052199962667361671889169044661548816337557691581411812396541487697719267357396653648713899496896158175973206325108307957341887600611191263316405669713934801620856261854327727757263463358275259323536394953262983955817188240125140845466629302393660783416444028343242143333828521930453995063533278408190931675721765122730380417131945994748013055820693208684499577947943818934521946256521199186952203754457181029877690084103070028243115214484650013258732973362418669286534677044943636870939935182998726008957438119037362814401433026528186010416649682499586567979764153679869256048065934500369164575090148733570450530397439323666218603568979217752153852736909952095669918343291986561224596803396847995649276642889145418838794885871200312618451238363276264830392339285787537360823880912986192888081992361978040720255721843932087460032016628573219752587679403273785896112692472046959956149174038065620893643841238582106886596735888073943492358038352557648147354669217263711679204026279334172545830403280062545369946358600248590247933941470565638518272832721742128539777132864082992561906919957895294147443302254399015691889897874994410304726995135882054061482590022165907966650701636590867620176004250146257738192637295838956716142461232595483504829640573465618085913094626314579854741237914480023794110205314890269057824431545990109299639288311257478397747298974896195879277581472949272799080378707703361522244392723979998507831243072821879283404468569000570981055150251560081981702358123760093121426489087620187859266516944006804530585126285085220465536812149813030058100206978525246972748689217501622282035196633279725966802989270086082724173532527575428921561200766364306290662118007864661640394536669283311862870422843665319688049215607031736338371511984892580973538673136316200497622770257937169021349196348193866335169088303612295494195898661344817036067733049477371033050699240056588185371005266502139287236857346892572972388155988584711419144780040638262774824526944772825594221833155238324669772480189755833330603739031951849628139260086805350003676674501014556973324035824262847341245650867037431218988662112380330068909812543465128615062856802643002171487022874320185121056094963407153964440242815984422268826596997618671630429898810602445485125602182466599007108310300523475556701325324255345366008100917006899321611717232909057519966018663936717323759267503514372932561783584752379421383073803223115409754000174858195712822831089073370149956507612444462256262964567893446318868302394211568184265657543432784915391918887458912220580996906833392885530228183965869987106379505946149554369949843883776366359588510828179822165435123654608276142430553738639447213477493872019547533618863375232650585860225155754987121189828774684635240450511724599422068564007946822116615704974569451214752882496620610145439802987962795370346368225636482137569482362458551256952753913140341525878568178741130814255448180666174891474262467120129728673003809632749241824640977948684599578074651811676537990404100472987756494155362547451095834409099460669198445117298816305018708029268630182247305419701990248940459829195783515881203478154539039844747212332954804062812549133828953750095928000063713333085470462937559742224821480860921990954802568937033262462753166392250954964603735586045943006973881995305871722524860959265613979961264000445961536446859655614920095313678539678759426980861893713504868206025068573377142266718405883817541305174405011049533858364587144299643452016966599892997833162037625092284314901495388524856492291699625070960164519544583212456890506679947480953698731051996536835888884459377885084384866822479913343262882540431264461737199787415667544023853502738754020872269337757584186836284646421857610174409130291139384782273150216788212738650201155941813474773616748793876099253186507650738044481465181242452340560955425080933271837256461267594470550521393748768099308426808169476798301447953522675161349226927190314416913498342534810397981949587263040985544582745782093326047577205358383409183528929249138464606035899322491463659706743720214930697828533221186520380882851446322952618732772251763863741615986450728393025197264746204357183742577619279592345298713228973133331769112374499197809413127696343704509991603903456264406574585254401713093667232500562648401929391300115530811534069045959592521540904749197798207599387284694583862683576524399352416358880310692914120118934095729859160599588182238736665709136458655588623536239956499526792188229211772902527996581226987407883501637173802716533063960955764466785368048904623506461152499748703476964641439115059123708518847523349972722199894371962899758518226837601479317651096113190595492998748558421323488576745417202640550114262225336980414934457114203598961506336806631640911330865021145313260381118585467458132907574819180927479403474400492548740568291404552282970358597789297753595550469820350045305781307662850488830795202307556639742796402459934100598385046878762681958603067863232364206092827914509727533829944347735142214327103650270535400939566138550388937252319348051083220569258026256391045239123903376088024103312496980242169126285936320391408819240094767308308193814782048491269320169984180229909537181673621669501175741051659677755069373538517793052140836298266140906069708355414006100136284560621663840136809728562981463400666245640535001144570160061878103007417144035470823551871953575769945398054992066699195436604015564697855909644200862765784776829689414878367133389589288064620395715115841957481219169074145661461312794991658903061270515319111728796236237931392205134109526325832722813311601370595623416796024703829773710516339602187801452563927629513076968518102126161363216452791137445352783554434187450233055505631002575772528878716471494632605837849622403476418705363298981346437216270857138949180318926760568810175910209005724503253662118376106074422710229123435026434659370992542283953063004401632211629785664350831433422719330782260816184725187098175829727274709118278522768216971915020689302713164632107890735644352879201668285433866792437701648408475425149079050858615648414811671202497725564449360730264678629420278191207455392908652467848297644311876811659672301557423909706871678125331181634766315537712382696537870940513044426455751042446752511034752093306976629923126522910965708961461102165560248838660188919023443421412353234619267939879724568011528751928819129637254237479454086305744680083903325790193848851471108598317541812794309225687956048835214042724418642709667250491883722365128768739574209898171539626761159076765715034282881988044507611513365988994823464020673357431991595453752166410286652717186920668885097790456547789160272565105350944290202131799686055986364892139311148457142819321447479189442107550434652938776889120580547288343782454843732679836390416625423931205334301910431865195467663761979555249315458459414266629947839022886776427427484058726165522455812530514742230962933279556185543490990197455288132997325952132741975726685688391428496441574217120853461313830595709835897919641912364992772248592510326547005626698893342523115766805923332053731145302226958348465279601414798001028127266244632169741000192408005803453255244524276462162991432808318267035457684002702325710749176562453919787708459803873811554105741320405093087776830001509122762345976002663229128342566962305111193246640535841434772358498023194920172031097070372081613495037157851393240670504648389699705480940076410009607713452521871788771271818059652253857709777777551904126491916277613600424015255992778058897230817658533494539796812233430377598025788489000316682954652481397667941678047962052957199858322553423001712531949267543192473509822424527701114606485395602592277474234784059222933113782843801130139284447534654896504890817356888876703253151642422343433555305830418810100538217172957529122589668168107838062226815786543421231767491342062691212404667435955824859898118082870745404691763869790966039780108556064785303224992026697168373931394285005504841434057843686206766923589214169195514982339953111740535869850658324300524312439182797024124616119891627846643031898315183900233771172532644356705118682185265938502347186813199907465883496951588513671988002634355871747650673619024722300596066955502281207881013639616044959950078543522602721426267648472410229653401268684169107359898742574254815712242556137159935802979757101054375340001395048428124462844321369463462456728361135620764676683457872817947724662231435937852215783210491765235921738429436764437192238773026876824847996639626269802524802803015190010420074514670059748931943616518955224851720347387017559063017539783274244034714545313796793864339550303595697132337156064161886832287448448021460627248415001958824412410141013277816265623342898736554384580792184207471654783281887838542360691783247298698375106088119217610025615275062643712060250619853945998336327023361222383941614439407049997103960649978318197785621068158580503686112237449704897593609281031777777209851552777568268808633294428831002014106111174039213428698309836088862950192910298104376003982548504705144773001102316589402600120554850909281051109431162646413246413419802607641111928945822998528549688453529925810303199410762049680798895608311028423437379281374278372436940722771104572233240471592215194131904287307516507611550370672268091131019281407620186425688608196981863710789806155715351550163469468500500112938961173258106633669562820731166420382424597737711368445571725681389670780900183922334177986366998107888019051435328110009891385845467825303133253339720259222267425393831032863864060580945198075952391974691864787347517962332038579380498984638036933893014587992313228936967574130204315701999106356512022478160176270709978241860594272414699919077866783203331056435855544582060548219789235986182708190585957692917413053727183471027500722391711161470644333760983609951420117600018562423223651269641792499132030566718080486667486812182908244055484187667241347033141877814250469347749898142146929565278490166916892864311545734844529997608656802570471800997079223610849316711178655805180123902027480639495750067475221208899265480073665321804045432282693711553532521763826270993248536674916369812876972827549136253348809336902118140209521262762819134580359811997161022601221881415611260771114664975297625429222580399183897247879067886345504617741997316676782925667180936456743056896106507783886501870077155342611789139755740964242323791145750478742075173315946612630702015053912533963981135752101818565172081704130149802312851438973578377996843367723243975195743891458091612258168441107567869282760929593326509120878800423933691049236645433092450397892747228987031560792112506771359477440422670637090887404826024221933232769110812898305690829901619495540305016445806131256042876309859609674392788804105869636609729704587027485205257776827253123292894347619472091718747652020930341351802987820505789191621898291642979046411267399723029699474741046457446225473394146898818666150247670945172805517846735954504043950549259291075820767365940708900750652822153059683165354259165576056362990690588737497200848954581832629201562071759854161259226415283586777744762581926366725580026614649805682935112912826430233199046188097662869703118174711300686246833464022130262698888604600018661177551576531914183255325763283509613455729123289373933686235187844170285504258225318231016164512999427696438920535823565531852425575019256384006131208094934851954696784214527615092724482867359811929954756342909941426118282966444562313932292318138890433602840661324331082149539171839197741538226477247070126140030160134620382278822154947707528744874465879612429833409495224583133277108418010277386801413955099384202358227695119178668673191747100334990514009981375454839611264640136937798871721496949210990186683017882824935905274797145071953614508054212011978995728956662866060241535855441570365217355541663092489548893008492340062241504754194226850628566235876567943274629694512879984434851781617430021514280613282477011685653774647455368096802468869443620466403568484420039994143144407514344130290577375999037789748257215540680902040744848383962416472139633756317579418049965373511911157823225002244886158609016121259082707680022032095127302817869257583773717599640599889192339868171368812681413511859893704521352925194178873208360114126276170652668301089614570314106469978632749303472081147747975245890703032360602482051377649948937331935897672080889709466912767302265240405326047389147543663813869377721500644983403279482818138058277485555015830956432399519917114818707541419235536675485102022751956957127157842371262703504057715175693758897366911124186165543389174888599282803233563119234434848573597894419246711047214752562446964103409352681126908240783594268070547376376156386087758484759003746201485009054993771632225787477320413247627105821938289964605077607672960464136451639202314740091632862394534173550330504322015006573870497336992762602048767685709936925195913843865361136276189102391983024844816347540239890025899567805990554612520339399445140162409467156097551207958775162913043972590437566335203053961911983423050223572547856003800819556991614152343159043057527025992867072916901299255060902561255566357056900927951463275940027195839004761293627340757980897263852964476845488803429453443642317074595065331505741585429611924941408066972257142989928348010434400962100372402226006014055196548602484144404409569814321252590827604617413215487391369724679278400460418483301419935030353115553257734442444421752287206953793107677647584592378808114274606536336497019140345361881481905977829665874753274755680564335171675260531578129788475847787847130857872669684635724916046402875217252180077072166487567955677461745175640799686442291487575618533222548662110227274182100079000427864139418939571091089586805558602728398199014940149220745386670089947736284774805396001466965918134398128696940786939092199057484759928622263140007615465986024612852660307440486588860497654291378047918239728355593988949842239539012027263189048001260278071634227722117537089081471859330318266813432276386423558616159874993167445183629954275178075912283133594401374822490611712553768935598581632839764604572497933123883748261364315320784402354528435680294730402096106043189243383913387787525317167806905907867771692771042944011738376699460551543622735553296379672060775825645147986362799819974025066240258151665519523041567384415165382863330114164878630438828077269131229491208515620150776776397312787503915532478300319944134613034988101460638394061870722775856099681938667824331110423388934757482884066508757277116943568055308199233804370499574305372477361029576756702223067401610559943745729471586655996868686406572665863057754731218384344411161004406339996280691244078771459191317877847864561275458808852770838800816042655774991911682626263415131601167879287794511890463589761690072709958889567175813125681993367925521653788354816715810663654621968393576697022108979473935779460331227971129140910695532158524852229834960994578105569899287016133141160374128423076385832463017704087965851268761561956595337964494102040182162111358828367727907929620314731275979391697992270074448637882457843072813157520347135966724526997164994327974586307894474725320868572405136545872063477535420316267986838891092941619740199674884404396024795051636661538570013983311692599703180314959679475794578534218147592541182509268862281068577732935639669162257916543799301178124738181434242646126537434453430312688878156088503914799790745644338830615250366040639277841523584868513794548970185902954587596626182348268297594718753308903992270437139965211167756843275325083725748884258183539292928150775073345681503723895277633084829264454954312181684925320608224678343626343155145692189671958015158702224561175129216506016217068396971947710279410785639354450897718616498865944786221501134954737794212889178992764436192372931275514351010757106203787293119359105246292654873264750958598283913805766722138037957438728312743537626001672089563706407496184769710724165228746913897733264533146985768771551283822756757047694976588375304950934325602228031205446754070178740080926357401989686769569124703582361863815495226730498830717915890091304228992349919661069722023866923162415856093257177547244192407062812622888502185310391189558384050123202075434158626658146578024201083099326667033424082668214029893118824556787667158331667472333848991438490487495774883871298797036514544586877856375490402318479164062425908869817563541140072726868515157347465215197406671118048278834266017875084194679896887451693846791630314905337989088810375473790113783719984635072555776983652949981757954684914666088490070286310449101417887152174647320310962733586941371540449774107283183842344696543675043073894291775346897505943865877256331229272880350590533274728736335791187247535166075754940078784837508205271839136052264288134403675559423069193785556959961533486840643029883227207817758939721875360255920184237107302144775381201637552848829066487909291937135305878102773899215815701561420252511980677711979531577805093444707782343827079837684191410069387551868248862949920575874649507648379804723902531763639774576319219647231920636263122689347095041388841181736456883678617036189482345835365696712108383683577723504311288777718666384211639239442074197226128467869767969184726383633933280823398996972169613580593077159707300283094587713510166326997650114602665352364699610128560246078091609414160592613455718975541562488910594952936429712811571420376304952680863260559857598152871132379737645704189962913472913935300830881725324557571791729743833174474548945730162438552609406940415775787271436748917655648703115633877145028018578631562397650574399006896017540938045477008077790712296064960408543343055039254458056932397533824891096254908283110275012572797191620240101094538900239756186531965173477997346656504047426539605026518483110375691953038259001841372618937289858215896920962078151089126909989959640534320964402554125430235014061894498136957023522399743145059717664890942914144874278762916490752182011105663669620818175866835498051643130795509025147988864918163049341437554919808413443298881038859470101485324445532691668052694034962896302343097298428346231335479743675178461791449468782438219798307954519139520252140328452861314096874668627178200343895828537557317576210804593497699770972635462783515556272702923819227008504128010929777121143985361698622927257137918718034699695103793811985342487383174609919614892156429583389685343681916102634651584411318599815890902397123521148371070447728194481500727914833859156118584222484642602714243232893958391659648028478424835743181005182625210773800360853947957710861938129845818650439959537032806373498456435903742120293819036540152749109080336866348591835864837208611230647259009340778929770587156261061307653071109603074779666013123068300145799759523288652130751754231422786776020956095030929277977439095207366291005014067090775183543634239025127634715994764065362324050749738986593080118633033163734056032161675659079751073397820175773822544410493289147527533959433346364896698739789980057042940726812565934847120403920984156225705525974471180521336162929729048376131861864614025536558371044259630760530841148694148041157272573953365735817772719734994762960511027229970227559204883775978077516048689592678492397316426030397581119099462191030079916282864527947478668013681792298577537857485902250611477771103188347551939095528570402091704698183625414498970701668638434531835039849157980207018422750724418472319822457280673910744892432554023337508870049292430122372571197282283435471803170277798171755946471203711789400132284144143161432746209802857842830649204309099311031719447363706544267431601348670089874742805806239547847683974741581422702680597251787819733864880335349583574419990747370394883759318518706817543125201925392161594882125777140235981096225598674474101686838906685924529663559658311128891733058861836737128365102547757959777784677480604375788521527551385461501695217639132734543762843675946450915254725959722818895784387064618863575227098972175342325221015527243208285953394052653167174292431544083633016675438254356796626804182001031858428967758748742309192352719801870970189734134674402817662397884458163526514660718453735404696846552800570222345918111351187391282093344953274507674227344469367145174720614351540087687391535576892492193099960795153163186334723996916083151713515728248307234897341829670811891631606219400698205834122986580576526478748058383597717609069808805054376587428084356107706479416558318411259583457383945996397609124816147749758201644237477027360007098725629907508406727237624973127934757824505021269531464647433522740708673749637094673604482167031085913443754430008294631718955973061808489374499859008030224779050134008978461463441732301317472834289079891762354058075512206841964429141550748645745666388713268675751637061532801535773768194328347725527588975156916037390519018982975540124439155796203507600819868199240961199358768325924698216996477615648885255205574190915782741601128114078509766023700848250081827694306377480324178971574827005775190016299745227158234684352561042698318933333966972798511877640127047649431002028146445638371080806775210357111880328903472249179756243703177749037571689321869453809942697958217496257066597421221850439597483972404057283632663608382191260111461149499789731648933917590801992984095261076689744623503597190389433246007817718730106489296307514741780474901242662299671518527675339329669330294394939141109651982530059489473613034893632630157048679050833077446922158837887450298451031303961121856290976008729018951581700037821664281109584604598349766240698156524565953901396293780574747853339410345990542811603143955243824973385373192973666069171545888697292016390016646737880580832291043139674887447771830705428437424126756192987901929100773666792314407512336310857004763262683620019158522057999599032405600543965543877622763023283598896765377025224079980821889666967079067291210871284882608090568176339034093337318673952710499823989236870562182494169757787064405845420576590303562652781554617184977153711049277960222308956914340748392679607254560055452572651297697994157041164649350061572964255656285231731526701126806450383131387405711148847939183221559097142761124848235619575752947346496038105750655187419503805053240604650904738241024515862028299588626859185049293632027366196862769380460771050553703167145594258331718997589881176055334323057974236309253624738143402493480518218794611848238116608401111349281026364226133115549686030040238007278223694609041372278907514994717601293528464634444422682828881590546428391927791552986456263460051658051897645712304014908973583656090238910740776352819498703808467870355274569903753525741311006212094190817794655540058945284897469886094431762053832638047108519183148977193869471727722715947148299554204177022426991286442885886647985845176508170711230093258719391867016868854225853528642045397189101692101603558464574658917098009969663695201815247008759878262546614223372627430603479064802537711460344337281005655879696925987049519220690438588346408239509226107443899175005346085172008933959172627205373555146355414014953726458343669108127067425474945986179999763552927313137106285521265191567997461192143408943623247207035227528334851083656974734314963222371548368547985239314813349583032791563905920971065496141398334047231059447587455025082714560896222396068351375848659681150493677817904119613039412978386655017580837325657886769638478331382670461059370003127743252207919839493839310187573721275487571921974181569428434833926263103687808095350825077697392552871202311634223199416925538836898505485583840588474262544074400112896178488894085648885643101036855248575037585674060497130777129110957190323345998761633378435492024808359920164711052079720048829932457802927139239212928824631388027109002577291350565582331912404075949554557908375708778771560187025527950635824006941360174223438841590785956467478185227270874139457757330053416001723764278723183571699381735361093443366326516917611786619149937601422065418751119364240352986072346591271595116587260876445083265654120806974302411406318822607689360948665574938627212629059633167498280448182045827739907223321970891491756625038912368857639996175249331054184277613846379106595171776569342537535233964161916806459196625513682973279792424803133864693285315600451717573772707815713295173766252956067567349583859940473184696391258249823920480127144143331380480748030627976261842810650485804876483509209840040075722071312091096478185480329861372674659465371949014871303240223480780648204469080946760638440054940394717440229703546021373972199135783267277090598840523508371290161301114143262669362380137564084203080351715101814736317898348254342303698969668437393101155749099254868326330822988142777887122433278607601090034704275361707488260107094486099552640535854719440554869258242315935524084591735258789291751368075448508894483373497931256950101061826894978559583932784835662194384597375719179731926579291471355694725761753361244258717915585317686593999228741681931906554337354884159561507848762090260741122338153494127028887538659957581168567778905695901859315508853839549063743200585477224885988744306420054466261461805629646959328428927008982197224018321315018549625956035103278933792024253670472221110907043368094408554869451731064969534890235648479284889865307563178009143693319407616424906258586579135679273373300421124575965054737932737635211733259604806313099139726340612768255694089965078202908967523516441157102178831853635876059446385803318580756782092212516787514818284272967740832834155447439944536750122463028029531452304555034655843315291216268500743701175924019680635495532998612523276123476482756573425132315836289082850714151202562938314807414087970211314093355749898369858722641980120958027761048047557599258923569384479291427082656499192157390915626061464947918134232317738854036591597676298256205358146946586018753864512287224979581430279035119923998693254050469178463857979925051845190956923579113000579291159309143781405839710487907850011692502455760240224737785517237737271185965226149058105720563922678715557815332045050995422593863103583042798214454470648442229510249793341436865081842980448808464914375015260762386477643745945405651784156182769580428651041284116948027056195420549961088830949208608088664894429221771692425859122484931417516388101169134836113888629413063058929981619990311925046260288324844601236842174345078848971058831748296913784660571700723494950502126131363415605277641622412343863418426751014256792199268799499944198680265013893495912292500663915732594088124170195521609713246052662440126569638715280980598303734875424463477473968914612673409294490491234978277868351454844120297353187977246526045515006928323952809028022641390283113221615675423891403828543334316063606571458068130247600983348281923663162337499296873153232475392009457615000532097718723788550845594564862075015594924972249078461916096204852421288893281083912048366902038854600912872692692340720413861165027008113307373448662071487445789444341133744386415171268424487700995899862068408272283817616706908091071391001969368384358446254813102181199680487633137979678072756181387042789628318432003728230589666374793711427054633801864524372620690133359041645115965893675665794673113105257234187116363884051090383986009504732560558553979619503209243968243490701013478976943462539502561740701354996143863864978799038734954982079817433448387291862001751726617330609641551614616255900142337835145314578330445734960559546711365129111658564933550080887372934974492498452665388051718045400837773660466579412421308954394226280366502408622499459475373786935657746589755750568184938951575485789212472556257750859320211139353612695050742208388400752351337135640883412354904135539815427524445180697680847325320578210333465238807680283295818484057694173476710381864785624594698590265609091211110236676219217356606322111832764174650432217594185864521066953202970828169175084787543439769905482656577836067762587609579564396971480321322671171487433348898218425216129742063124630084502781041087040836258131469698614128595519151067479148771672094544668980131658640530535334381001848774237334635332627159059715850269540895740274750322031777934818424227311890485695358129110108471971018636875324028342172574845524232189158415979997949090906705514614218875648794935220189519388769115108784288834845685999927688056650507614512757749208354751490304721362078895080264591205146352703941255389200077283319886220264562204366366292587482457451243297358050969736898523400984277533734242076998642250334036351435844068673867648854614934750270249311121968036026585431109031517773123376373888683554120260979923657873599354185867014001479321280758670501122182104707062585152980309203985626513880324812490577468189925876399119950746026683585224553679036502123221827847385286626899847436714970326585234390762048162836647978003256750289545466481308601779463748801827170546717136606951446561092175666206338708794276186397312159715063709597683540199960589087597869014688059205636979435152723220884066650320736517034107072297965227644816709189410418372384992637484063561624867388998433653096317487118575045828276262356317654841075260405497213063134634789121948884870779883368191132138745015830421835802122575456470553138225495860547451948623863793584409937322292861797644798596914338622740090133422707126337635785705738514942158459862470347055181395778597811303180399711858675546115151364622324150401453348490300339959175962909746441379327394888758491245800902840285413548730226906961222288091964284949913957546003516996114324026725565585054078644244111835079757964569876761320725440499726852289116271592917236510444976474414326868707724449947438797836623533467218977644516316969460156232584873873727005560424152920010523410135004616162820864617971388703916955597693603050860292920152632248336050785081565688568453252119222001129427917595248170507233137798078779979416144082264268482742111375515692528948653648928314508513770094171325306443987364542912681234966778314121158309817652911257852874960600468872346356153925057084408321252307219397105862733373166237407071707907443896311562499027017353033043896036668008366144815132711589422935298363217182401715775398262525861227151858154257953100849699073128054682403214647196963830033784489018523561624886792222041610466567744431051786455554309420827920940448914587512766639062459391618069254652587749440188793968962392595445355638997983876726862978122441234838334158482371079236316851276399209498418887092680577597870689573544722095837726957670589579315473772619237553699009009652190442980949392306775948407831203867704814197876910671657656293770572927787435387045573188826224653754384828206053938678503255858725265834026224753700199150758940735541292879402727381283184037620880650844978645265093235771394299743500491792451250320895156077199428393162296902792081956115276456218638663939678358143839873918731280762310387368358599908643959378446568244757908918440270158891684210736417455280509143256789722711393690571672603794087501948524121618223119911836798070185653445367053306538448514309226370733397597465461925948696590322579800508856019343332198068155269777057842755806035374937139535427854325039736065899762196187193056957853763412063707354018461939327864461837450835384617687409170170317775994426712046580363652541240781122421931110437758939907791126845406295377999762503003539467955744336486788131790906142735675863485083502037564623513112730327025837045499659916074833392544168634838621410958765678236796769746457659692599437724630052985002433857310663047688552821008882073380717291223650887836519613751208856354968274250613363334067936831929995820194508970990325751513669213790367228877710045967299632216124932652900089752779753122481417729647288956325697897882686490071339209846770738992642872801730767007579128543929466382439978197158336431643590346027389471564569537999881681208295961806286851429316628626492306428379559400087209500512561030086504397437863136907554009795411297647450094147049684177548686436221657814899267366105431564008794001355905094149675036792313965017153651334674739551834038776244852131297548365502591197811522148461400380244455175177604249805623390674288910669258271082275800831186346256801318039180321255360950751480924342504099967905862923776764764581632302168592977251962882528786962825799975270656809869040957605188337183557941818201639830941562082635644050619937909294687543902354963711803788563238230045117186943418474931396813989697065877009941481439033927628972789311832047687237677902509967115095980462911647336085129217028851616270754156744179909619029479346137167190382669579257972979951391542870219258368966171301048929180966766886929479348536838122785378730046063856054128469958127298096324218412863223594628005873525174968004247988767616195193620778313423882410041868099708642999139328945738456822256675256869207875663536311683292044508293139214581362062634905964842776250892380791859570721422246421894985907984866484469963233420903142153196152626127389654692727543662010993490697527971789177291689682894312719694293907807336882713025340534379058125941734906102097917521298180944290641430192856596649487221603012468155278164260392979501151321520159534891028137187925434546191326361444417662302384649567882611961224797510024458274660595806674161986148618525054133253439318727592010802033748418562595040312020044045657976987264147047079859271479870937379505086671136377214723761869741504346256878154545730313994955854580910886441593626552893767727154843264167290234556429060072214298289128159731465381526811643352102684544939185595706698598989862155025242268159506679971085679599068442189428619715932633399500271514192810935548644844927821996114040783483920705255316408741497200713998964016692196204304997663101250550136076285600879190752441293530644549005431904971061382331477785548935867226209633330291633554503486394913124119510944803306528893713948676947264331979543257953891760264074915150584041026742780551678262738283803235553798125434102932810365823534591031347596719731863390344359902892732912644427055145361212363167081586666105162469489786549884496858641439379974378373754876060728750052876580389268349413765811933899807538248551524896727449300813829988235840639077004019404264545768265677436231964579885116624038590805838601877329582984662127013682997047562028139471056213263238363291170259362687613676643133165243612269487926085319908638631237885857361312547389731390496390117546242035350613040182120786100093202300738310489571077103291388064130731156380411771991415599517877765720704414205083164516407661316186346622671629638694443426581822416915226943586847380954109402256109711318307593121726279483091830283554732351268784901642789125830602371190078017590518161498109914324718576920106843572138638883750893678541370842762577661617360309587282127603639154335383373645122051663720533398699322539339570431239527008819426515762277137007931346181201263506227945985067720993166932320548344716717392650242334741179309011616038066842968926351549200356324588013022384316341482345024463499583953608685411070652246386809813265336600992326815567337248267924149120705699785571195555309111983498645326752184624110882657747686976387556224716659798832802514676881721524600636171011046297950120918702487051566373250326797568440945975791418258118729409399561752102481607160791123856275815867967582264164616707592496783697044896418293262204005452325482533816533481192245825292258646537930706373071977776061097395168077704636886498506117186508581321953781973724979286732828964293145693250635151386050509006841118118886925200332273766870738269135259532796553776542195045914510868026388338414258714645363981354316512002638410272503729057308194352561118323367754466535674369652834219525681110050715904583145028067359644986398360187573878000054523487198110825195550978489508412386045693890999050447901748537699336734153090685438441222099558245936893140158284422669570926762861022490707331333576041386106551344609361970170279933304771842983368472380407516906090097615884470932804614804529209603882805014026854437281729919248716070012899170530608309744290500926117495150372719216559058583439768829908247236051221302661514292071997778063043062949780874217706312823260336837652051591600697623676465092265976880738748156815436297532444758156263907217816558473363092318018284879755178105049351886807964122831097938750195235608439466578258806744601417815265745232443281238491364241122769726985140495967035915509666787037695257986478981403092736145858610329603271123494201054960873107426902848115764285972202532242814200124396417705283362790460654469474231475917157961646574959978429735191694308635658673456315146338381185244392583842609224077736051498361827911333174468272904241344624114386691072473210430248706147836820144047034501396871359352732647730743045577509755203650949618382263195880989686320230901212751766309566397087955565631906063284979431108413197998240576418471959107305000481506633609602545098427840722955370323862161763351177912094143343412544691523141642695571033988937491791315323780217391314513415149599910854232405791188036230008670939754046301824663296395330826551929370354817077309329263461393576758307509744445380723203265297512395824456121584709934538246752486071937579320574491952091873839194808946342323854121988395009627490002211206619792878430028936081204704953968304144102567237600223371452334410685107488710741914398399096719961173341547958963383468511296099888864609612485949683410054816212896243245837026189721375081211369309758276552575396668805093906493041623011831456301167076111663080403767302174872940716458042251878255342701786237357212229734473866909368894492332786677555403704859965992174478864165903596850870871400306108362635951367317856991687862318617047321809498499053320802508870567343362656222475531892553688348908685600291660494645540105417721561465290198324054709578186966087954844547253461145401339849219410606089402893766541086450404970862345854049509982475486932337332908652275027274494186285668328051598299999698979463336431213189372028805336366055850890558569666874084135821063887714267104181238157871946742844813011371210518719203363484429574802580688816393757834164177438891560970743028833128850696028189810479354183827801241090558194800989860909592281577634367602888657510767533351496525647014527371146873465493352741126577330978764123471934719018448711131700759402839859086032648196392382279780838588579673148494622979151626665833840466017596211021203982813842554357648005256919066048116677401798240655334912307913101333585069260184300881117995698186446832925970414607052398515429122596208898582707717278891775192504894588960054015349186334001117453902794291223952305722440683871034700120718770890406233709618432385526481253482148525060476684944245382428016467513183664240309090349052717347389052105604432280438991938684618296084743318423785463517939750878551707135184368102891390187170412722962420581318880762272323585088930142340214337937291649808811534586043305795889730976055221022088855717810305075827336989815149194659828655666397912372600336683110779474883526843542137918423023639890980899461240542574000383156836313581808615340241951526433151616457644609258447556822031746595023395027595068833430635440463742982137394636824856719003088251973987897289523587369449338492720036375581503774146560731219450885552285779851306676115897834321621712751229768574082668119730349047460199920816632691661923729987556086633585351480354855131382596175272888030541099143296698437529750771647472500871894341154161676852268235540509476614333151506993855460654390362537400916087824969496065854633959211687986593988072610120638431727153468952313695959178844079277377858159611552292950326048137072363091848505378592558545291601021339876833480507508460367780533751204165010511802527608913968266866158325307325541085145715842741231575919592034199898071776398322470037370822433998886071367936216994073619135459080095487773428172079790854128794691245807958846066434258972667285514027511211417044763723127557301582550563588314560738638337824076291135972591083980750475800907404751237013298648611712846946329531602972088105365969479133862802536180420647021712765481151013393415648620612650994458969315476878074244630772338998537939661193501343367763848405762244437471125072008816286705352401090078768953360938740023311671245611719400795697166356472079329580038193147476954602958984004739183808970679456821713071242505538237334398729459679832477371459319646533248593040923885179194895582915342964589861983378520299663333219629462678751692733534844753902265716294925337384163821181378747210433930016644984001556095720409407530296111475731068644837326166779526041346381418500910237991536285596824889275467042862805315852093952162018023869630722023879887484504496488450837718432192004286471454012062331932962164954515337393917227102973938135774569662856707631709236031867990578030007833183460205988535025607617960205945564341756190004510263321132175864991669034505925674328910189879939907470632135080147782280956812299993194621331011710603992407739517170712323121267021289891547471231404493707302933508882899701071509765242807133712915637292807538066434061707166449920891030032926368786817387064540102012150288802358100779489391009245606964304531037517587019853785846153393222962682271544381555121507425870149504084853655483807325071039676483568640319335168352448401113418142543718123020161580760950619012964237190684984537583608842297670682466738914270138449034836914757209517030842968962331843698199171165022763725697972829101377166375512939608439009618157480026972425314170771215517634257612365062582929417687033557600152050499391024291468758823572106896569051266101842622707693624453386747223210910256530034176586511355021655168055303556066998424492133176741651581852782667098718832154495211211935206115365755196587303067612482109391147886232721521304241376658208511193953538092509986655969588390746707683123265365467339455827623686170518148124495474866973606197943059121046374053688013820605544843063679916147937949591696571684739075632603372484994608546908191143740317373258751138034787980743413357922493321192749934822052962331702160208185762122722343230628383050118355714403613964844323218378211775057539927851187418924885342149852868319423696855705250485108125233967512840753788826970887641479827578027807460182894449788928568078862607424232394579020292521903021599785516620674376357574645653395303878549967748848636328215516107985296284759438530265261122804078373475431091725240469356620536219324346181408000543419508802291863227046368936697302556841496031304271698025510684610883527745584897904306748146339637455374529567054367177146223511237785120755962625953502951634724037072699860061081784969598624732986820284899668894865703826073157814789780781697397197891444699496193896226911427545740471645200853970709128023826244429557535921134033336158227283706024986477501114582118579952719962880179312939855821104501489472029407812365417646272158891275694210973547477418472523485435292268875911308254100916851561865661622752258306792805174176673660000639933156170309882258234166357473294796568514247458936978473474076476074857621236095187137730035175217158989418563155011960230630479984706222263204564617810324911435999651391804290850054428575992243721776472028970893988808763622883547294013034928383720438639421799549886479354053110017050132385469843841052711228228745894227264303766852904574763827104049907083451152694438657998326608752036145567388508019436938578598921562633199550334195683518537807590057627347885957274468653651874567373784687017090426495001948100267247088778075433617013896696586404970535911338607967185227232747072690444934445091737701847961892048894378364839887062639754977260987453479190393842963182694359615081409026583962020246010949707169450519097156747774732307366680482424401921953946692540637175605253925565960813020784674699446556188087138238924669949261598721419585203053318192770119062269055806904496256886103570276743672894793550721541601515797713896943143414816707258668090069637724717708719894704141952815179881161958270404472296859900939362230562819493194614277233795756794833558818838016919985470859218712611138810009346689291287100217113156583431262913915541176088166362887579626022121419009122228764706138382022884509588773012214799686020875462260033166656400786672561676724047336481352190836392124372902743060939085261250218949960141197120865658075466658679691393352106812144352030976741374963933739033625592028918718128430163603441679371713715676654303518357851433875361715508902624385168330829952486385749500095484187536760111498773538791866036471880847478663111957742910022028323652475556411880213982918581978849403924727774338466932825235071306933609195344397598586906695599144710831932788135616314258818052574378009502983129977127584164517624555801722512387719871142726600317064247996880495253909637625644646928044956295123682533722142550403864951400574959854818553235547307626144179789433021269011789257905304125193689285200553960786831124208768876326690657529352025615508414592953312708095826128761155818126139996259722799260037716214766096707349211904048604115524625776189138928298878778321745609714550195667933149051222062444955901131501942904815988653377383175202602692919591424546856744472266111147788596824738099279628881977920555385350823420185363325086622880667920123733838862779838578935357031500386538649111027289899388665232962314156741213803683405376175464628426595999182279118596570185542521842885078668500998966617255909528524882853429586970208755799314924780520311816377197712757740357093765306942920872940416114341231614315679501026545793577821261003695745164341321344121692002551888625442544349136454944538283997052341903712824497583742245684712574959662890798364982996281491735518376394647461082572084266172804484259229062972516832298421708795612706993247560657403382859651916504837104856924921912790324859985728943165175174961441884156422764360850903399365788138396328891958913364187658021741297332689091171925335003597613449865462911318967885905529964537738746595850129020232237349406462781784659601540849349646959069501160097205496801625091644868157626323971738163429295974811486779950424372456655512200438021054513764474632478425225401129242684687536692324479356724635298341503933346302380229591231056080370318813296265382513658307783690374594058864144921819327470380139595856234232309323161237578626968143555159059311207944331223790830868537678971306045111413792806192186608756426922411530336294155792499934308993141506732637929536504944145338263211784121912940245462509774742092107333786093003948817089790464461422956043426084185289296039298352176038778759733214260736851538730690637956554436251989285619238776637093925115279992616014802721036010248955824855975294602223131660088277672330595214453388240083579720642786552939679097458352267280065278491868214731935382455883942290415729278063710109729540424281203263644853332923824796545587994694355280328603335346675150653255691038550532654809836116663096679266741565890988898972176168745247537483233923230937752584730350986125543852477982309450564163390861661283488066224541671867512774984722788357932967449825513052580162390941326040229189317622549287710399969015841188398949167215080646810851117677287575321305108267510328996201785064592262703604093396246822365208422613267669322295541318623039648547127661233668367373541398552726325793520949346046389313650686228515328504943499280685717194569928911713808281846676466719751425582496593082229533710528452602581982937224312062309489788396486798222358822318948308204278223521994491596125174567982647611206493294611681520209457483422213725863000202278741856171429469453922834321619400489013769741542695389875156589793772402103031526515926668707007590702121101525047564925100614660610986689131879586430757571239942783486450613983660432017139676589286169071332847901592158698254577658552424503943970607821985200950533476138740279298162591352827072577104152780790263638307881057184577082540206929459365851513950953067003959991917815341301584703321877352407463949461653762087014086132591394819679071004406343491223228421431709520398013242605615150336101004989381121826661612506238703737776919186991830929798545545184823891602055672449857386624961459702020072893888759506547194450235221167405371698614688838533763107742169639426813871273639612869608185774965986019651072303851540603445981148814623998556776380241684585956620823494020604071652045407614415089176075482949958555936765773951822035920717428123452531300208275440441497056475143766889854639571068546018901935128051355430638478100159089529996516148833098825965232057386569650810203790637256644293319228878461011062015613706134953317342346544221204993911830492859304563928207824447375360465250073032065117962035099459871274566591948205971793633069328412038265836431114630072660161617667602463912762746404712088548772258424110239289360895295310082834344369635697466528176660822696881534954049320518641454221663653878243813880356258393831852624563222749148883236798899191023751091169207087925447980521745563694094796066106716152145673282100350691727160385393887890918050411577085289650258049320491088417451727763853191937725994613346632619409127103318614378275267985842604743272780410655244650884549700568669220895328709195388751451326561269882911767777103881115963802113051852390576796236233924610554924663136644102941243160464173148706558416586470253054142934229754786901207043536254274697744858396734493142348854210046382113067632879852996935197403309636400859115697664838887427612526054738102729366815949243457491830824329572451364105854557882872276388509923603477344013953803516925493156274154241422399977639340298435094063987203439035134377387835831640872248662180291046512088690547453590737689406709058270200310900528907373308900376957154536844295281781107622561028876086984723418457390546971965741351021266478940454882452996424588690124149313056361665993130874822606838720441535043495501566671041792791359668163189295325056717076870588112786389210566866097798616889901966517235653737860692639171606360406626926759417246441068043555240872364045425221541397389709033410700298427075389870029956170967604964202145413814918618101076349842913069533033722712470447546328877591013613165036091480663002374412225176115610911440600623015036991850939696805295946042493471391881936753281314325218311981448055111975162385942222176298377639722385711180610624915073877045957495103813045992914698080560625561573380858645914421484207239445405227121037517075197537434048666148595483387105287056632786702545628628496791229359495656926905923399237192812524587856370816419161266646989766427006364131893500276627061869390462179499259125641482750452596997285817990485392454742614370801193687124757642236269776574294111709300558434912209380137577679944215320607730800478374985130806532927520012222756589573807379014699992207417138413122716725214162259044067446456640892498346851028724270916670696171521004209841646539467879032716320735544284904263943289024773823966291985302391860077960568730562886861877242006538375836432500341638543303646398049800022485278974156531642075875245746771630832464683116544851402310836564753839627259718841837406909083308452079189994230928697688638236806193369813480812209954885139386575606072031842759856482424139290596731438701257032159574305434486390213728356983919432481768458050302989404613509744148813299736490408823211776549358112705019899015229258523858929280088849693435233223602926976546831756978653976253225865353868486593215079868936251566464014414958845629120341945459812655878373462912367058749777335725989902905656779073253172744393124254624623770181304979738784235264486647612217256515472697862850058420512930620867000080782591188056229705724344901488500310695919314838712954771269878585177598262543003612874136618979659046880939902421967135986138814994403452538076112173913976073349555543422974204958466961459605823352116867789705943610099339771800168987757345607510095471668907090747953129417465545766282188679923265131812950592579387440765608599547644589175983302241475262623560115706350898449978476714187031546838344247140265117916896945354690766873575121985804964841365330803959206775430201423936666010823596466788235773558595167469814771655991891695079598738198971824447175895965567902993513620746757083596493046090321449255029329928255639977623043849164408684708963509753734380298654422016821351830393991469197959634433654417472497027720562167839861899431988883516295858326600706014900380768819075092918488598015652027455388681339110423638315304862645673287057769284169678681242938366546750118224586813080716790825604936142580223852092806541758977959390761769363943457498816560101442058267384791489647507709106866746621973210818960143762966644619757147140243840181403190315069409371313800280447095428085985351698725025654307272284543274584799300959068836402939475776679045425611589247343604231555219952885687334932094670856398220585627652795188763862971300981738902879218477253959518231478048727260672994360334752589800615484644974777907045994594965856005581930071446802508436969686387414396418645622466662777248626063138553786657024548132324418699107729961630040665453824157396738290300303070231780667979387478517537324615770104629843394200731582562306165535999748459726841854903832788872843981556160622384042374911866289086198906747667674384382962842639374395851740154793468796557519742811179930272393930299542188407408196142646451818026011027781675573894742036758021402026751748598681994864786347772054199316084321928266480416445182936245405558030006519505041456822328432138147004590137536287403571209460318583338821320145388291227660769839028332532143909009316247870769617816893305497181862124079492961337125175851124431745292763317430216951244669110038189045985461739583752018750818414080026725549915772696651346883908419902071019339392615711898378590454047858474756379138449084792503516576728078013726655368053364680659188992446453459012071627374649234002783255666212562819852899731782935989303609544305930630676865147217216654320397207433381706471169827266167987839967886640029579929359677835307600753167279027821377871381671797751583854898093499407113904714626391171532635946380451323370899056624542310343199113368386986488380600135289415583687130525956548014838646598442242284475239594435351738745354572262833623849393287944262401536827503247462504187794477174733237675436223079819447019840594577805597120500190331253173900055638908377303254865951879002573698768880415068679384993353749458066872571239738809438120292666621047338479020611299842788782123457081610375165434624088465305646151082562296509892211115803117638036791504637032277942203467017569608693320866327271503239475787298377280548702887158713370421669607898821885127451248432708781401057096122129372721333781313094280454552496558958393303383805867326516767862605763894637385354508133605684294518257731192403643433542101061444679876654544080329534751472743631799850583888123669706339644932806475301876421375402211253021441417104941489376066990035714927951707175210255349467785400125011398257079476841182868889755311270485703230534529174226780796391913953697868550639014416778407596098091385269920916521256335326386208219641873923518218744169735584549701606062686531919739102844586918184467977920641408124757201465254274700425676731340952646697927401675499709465253581130895553879505269365277348828952333302450159148283076753912224022011262182572606362604726952721962225962728809441179086794121627223508226581610230989153867632191275366392200948972476162665447243709626628874610694921772403775156691706537036837966558355594556614018083359903035346072891091090649159794787369615574824535032915619485484400920104057010980878015388201672946427832920459108317672948248404735072880850065052123798546027134960929622574917762040895181380816615134742627750988620850634047055176193118083844732986812004162802216253611350762388130093825567287609490924392423086083090474710530965764353225684248801474272880692881302411736382442316592042029320116690330954395543411782305705101756223682051446001358333029084216398679312362721565825674683368275338781505604077865509298305284197820208063742433107682654664670794406997524137412396416058215935884710704374900338757208615300630095674322263994320712430848207771663014136579695435850668680968525750384257845363752494114233643673153214707228914293038290903105350666645184176609447137429539860293835029125664564107834655605835374018199485633939506522830523746471838196430771270091616190529772463896017332725428380245409718014402003950017514548137657073071594845089048080071506793109056562611768313611788953105824834769785792411430428318416652884568232395409294814930866333809819360511480511111421984619958960711576119526329069363599181686368815985415161465014809641271762751824884854446796694722784674626941586476362093410213492186680047182206212048539248894571711414277514981360182084520451991202973500710626969170753520708031540871235391494366216044003524492079566982162121034887322032386842674897363369347721237749681062110102929082628439484775397689468527749585062336385523194394516424050347649891844678987492363029144766451688606589461154663122789520903828098406765992999471421270581888844790476855729427913921644207178502217124852227343231488569462967369851940638638912716204644935911418941489818839070537526142400327059736926622476251448596606591564522163720423935277341166667608604958498035696364094773272130405276181933216740874813608355618835671642465890379477030667019241699455063286700801398748277670945443833717373846631667085684323426343402896785122535440893009203810312724612414041907034823693663083855086036956807061398138639828490479043403573233938186335200446708445207599248873433373170451096110652436200410142973840341470929391426009196360841854506835793913652687760916630560162652773767983581552176897103309160704628484766075340686668918103266422242064108233697957056930666555893468588553198789143086594939145796476511167438258094347537142287384211330069702014522308272010545660782972065667738894521115705022902784388578783945602184580711508265325254851861530141368555100282526060325867695134428588633743953638142130128740531089615170682823317798645578244245855493368973831750463756048281730360948289420703344409221090671390966437058710683231664157575071591336530338496535097829966302059634692973864517626919310967738709795627791566807215266165554326059953649734657037609240940415653375246797330256942621436761403182943357324487685457137900077695262812275492498084681613758350003879235327585141333421146320482167983913061638413369221091994406934458655025940922315598737079110074962483065121194147145603722329450834581762263037058526387093111782722021706270627016631865495834957214644255294619619692478293992700784538403724365224772966281453977005992305175865034563138017203538504889260093748384133363732308370592849532477198778157102974909933338285385120483229850574990091088452919716928669384340099158512562231078602267908620661742597847705129461899986761587343967550350216089202160145545752063971597601349907667855527890688737974139346085844106474189923512555010762387488188816077063622862761176477102620302969403044498618166542337184293810072681671662439237799435674460957509077832497039835753986881865057874647762648609634708229884416751171025867601171151527201274611213751280791303301996416002961570477006225347891595536762586088047611729349882533394314756912083453383380830694350615882198352241923807964201988431730129251757968669486633307575432618083767681868259220686723877989812958242599483008560452730139668847556743561986402214947920451346714033661173837993354997473633606562032028279478224821800934187369277046426689388592524602039753932719850932498191901203917315430239282938264293049922664362405358834305878438985672139295172110750507350734187939636593253187552134621420478873732250007925858914615203619080862596074187659017356373169896628954832101432357461947781105460251843399176836382340890914452633135175181471850370816775577519874406544109992622975404626310353554269947450704349359406811753866896265605423619636649735573188574369796860888077809495110539615649845203039371149549844018484190310404919619200388742618414074561669337201684836455112275900817975660697184041393242612947062873371138517055280111177792071700944990748473381652034780313169755152812764052437547847000155744528603966904841585483059514378271582795249907869392825492182455189346728039519237826718754237073266016850216283129276988986978068301859729755064892975794523433856488757232487190208238655270350674378986474533731214624371331749195887856385640571797029452937735241696471992724319141147855774298949295059691900392238131479833854071158794039261852040670269371865058422651759625239360982425521997334001028337480871804045666513100206894818647761360068061408419613678371791375125712854066999826691240222712919255462920367199994028183155699261213152896021914796425834683131271615358504490459004953278916632987989039189236419003969883561376215569618258802522608463671468078598402053053313895358904582349851214364600578482039943806357456091010429789330926110343443661843937448862293897900920360424938301271925281550808531036692881584075683316533273004018574819124328347206878475099476545560220670811385208376696488756506803274851991917477595654452848740223593381125567376401858179348645038046451176012423747157572245568401072155053461041797808854550200610664082212264336583642275039476509285050443314388674053576651089219883992950433701748755645898382775016207802935680188844409546884272660485300667904785413330707219251734421071417397614973038263305365377241759656297618336391292963093872667247200881451348752057927286284342681514413129332289195171129960590497758205380445973359882942213738259647056492158832474431833666475254292703059364196773726605595829331892627022754115350568024502024697778647078773292400347397482792556636242513032122592687111712271677607636460923430330106434485881317216699570131848457498383060504905428245184840736318319149031267834780223984813775246152024619772664379092180706059242723916717702672256767078822811241225599772855836879337750441873037499974833049254331803867580090179049218027732290742527359704847049024405659744174061432488338286044268699691992938218620990077904500246338000801742692619917820976004224924593046282441293438626787577221686515699413129203126569539389523621876955163343483734655907610058502216879592758167034112419975686820476064933054716840492925233967730498883620504378475915648046495991079209095643248092375530186582343391593383284886391335749113790383140873701257995597188635560229176832602724643492835501433299089830437179500019777666502168498406647585883234747518808280638970923466883471105805165035906477396834152032844898272288261764467677579502126445241797230036770799566126683126484808599365522876093151243599462809037792524532509734872335853966326648347022437020653709137205894340202103008067137062249615137840001815507417854514677218649843032377206645794884397663762143537503644269932835273437905024602952556437769113367140961880220591144048544057815835924935720866193742365251275269019626199964476783617076232752974749185285312582022567146221961632632221619065672039784766283126477291061177200396507316733283716250593562418265174748753218669451945495040459619324656092810288984418527815853627694046986909448343440133032539061060820107610731542204957718706767793049321702268432815429226673197779740796339207762232844681953046440922919257372688137359887359692160615053266062205408302069675774882224627770662319798583057634613508360778982122217751772204163447161711968038050365999900960018259201362443444798743566121906442792097466056095225238627983211671273281694820974355938684243644491901348247150473478285520282739296146338772144665108406914369166584020074934749279749601895069013576069665533378859491741950047638617075657607390784803285087543728678029535920645713083615868923191730296354653060614826542342448434076396554793397398375383982272677137613602837447041851240981705914688268684590224164892458573929522470069109587988293764702420801602941454566342186277510089412104946055290144881469217212895740743593166747460440380288911996953856456157631011677305780034846391542660915028179844981343747152961369228330650881738987786775844252660521984382966469339896181197161499414179971257622922643664896424953562491318632831845226498512253858692668977717221911156146276584290981148926269229450602852166862955073157586094232890846737065390337057361727093699755696534431217737485594805411916543911990364427133284299592894437622528435309224904204684542541242923468128359791853715594568400104762073150953254514492796737760048229361501873362728295516624553945441869970046729071126089035172541222310271907547794460439046708171940321567290467206688823052095065338435404190482588789938149899532902500640493249196681219203077692138396450306532030817032422948178253330810824798603958270481726156330023776368923217012639069202766966165240495928703990866128978008741013273963563167316022744811796294692442164480498852769176084237167924102327877342524646233109454641372005346283043173226664601728075802001743965424525530814981035977868127273421874233264510532444148056780029320626985989869427157683591775338616037364464852523922834260338670738425778876481096817210290877356046575457374666168896618131519229887787001955392621961268535905704243853709375259646268653801046177881690197471014931609575306498261660808700588967663012910689511470876872222284733279005515980731806061664502587805002497550002091769851542839840794921797321685039438114168231695259078316154111470368057130399429332810452033683397099778321150725991553078028006916023179768353597090334120678136126634908195030935289963602559289760528881341489152265549430519751336632701306687588664178527188030072544284953554091473033892159705603501379445428035288172176753953554428936578720485338249236702723156934819995519496332216591914189060078252791277337289238569102708444546011930535533864622943567540343962932671754022668421799449106214051211015515872323914176689055990781216922456490442945788945568136778627518951118441940869793000228578100105680722225013765878785662723161014540553974472552258636568724760736668763825467903809426264569304241369901405827091712880299357029296169354124592836945131242849374899741928732134816788474031179931908827836986399682200095737666944250550545728393692104440055695875229234532066221953710304969366551295140304772091057098795638371039922510199943820813874673565619710859678407283808835553110350723666139695258055010407852891361249472684693180034205937270330493457757434051548699142276222898779707899896676241413804134451662967574592791442164495301533983014507059359998955941438530415941801746061501934954077054472455838483218155323681520542785191269750343516518524646813841625497913286832525151803980359752331026539525631924476318006810316599409800903217333724577921647359666845580144103302794006288776738350108312477904605290769707314746953731700480044172792113520004397589217593105019387445540948405700796253952638984413388094568117327176546894117641912495481370395739788228612811373788204322187768878881891653892086948404360599977539036750945741369615171903738019822673808440310742623730124016285902488583896331609879517906130001795300345827416557350889524436441517600184320042822987205873292984896711905734633002290031838545770340268984081400134302436160145779125445857031149808918042706521429133361696111833388604118392396417178763879679830013268485237188448167079186931756246693156306229870645153039337558351466980624433001469404587476295789831207472480854389257946061010027776755799274158557592223872753168484401990094544796152606116800313494895883654038118831387684208361840478102954108855255143846861596700494891301586082314403729668068903739058718638006750565408233002186570429801039128228064059229696366645606418858389245006182828739005593469044550898309719964504916335025571248203129799855724215617602113995415877443479110158241712302457795687566855602923948464043512848855836783381500094078257270493668566622021085850705599009653368494441280734369055759699830189446055277600201697350265462815240029064116708195277893919797268203876345177846993219216222865102421167878362827257284457757943721014226898441502147912282962057676787982228165643745239479515905303951903968459175146457026972524586342867879245631442179863908625630055402425454576707490327283542072427558351293021708918808055130551650456288971118024673307778346889539074452065587342371633404639391210875121843929325653428127062678258238662451485095495001709866037777500986282433451867201790020569430920353513142867668652383468094795272295358558611186499311613686360922512429162734741104463541752165112355456964138536045682877800891977608294746883284177685185842852438673289177836882375784847080564270354194357993570378174922678929314936963170770737586034891275561310798748181871036073535586628760563469300945670876524061365591218301690281903679129922070996736703953327751106298821434562278879519554560080892154103249045391692104375628968034694143322010300686769046430109718992605651351205989442730418347024499431093410242006576691940680157585091900285067844969753918802054373795816908040743659217176236499814813270224906726376633087178949092184822354851528433499793616887127005053966038303189747089387601046532942824320247185540957804588961113156102566932178530414945138077580921725337515238388988833960540514895683947178057206475791014174281741925589923112308822638852576954949989727746813862990621329688944460896425665239350919178935954551677918591941322541620118376534990207474106746449414684251881445801019307047854763134853479617765196810288267593246843812750262777570174320834217394339805661084739492884601877016503384969879928634046285710843489098254211328046687790619383692858867147593604802938108084879210079180930571789029205039975856623532998273595868106909990929930778429630125297147893388944644006651782314761979714768420880016879208424064553124775219659923416543665590947890351597524643080889891196971294893582360790584556167187613058809962931868967760688295341701119312142720931742557929432546580776692887231000619648816212811358026162648109462275332202051014423673988221400563947721584098303044935930437320253461093877220250547567706494043571368559955679600731860086928002428336069996556325629709774562800757968432577738775022961123828922031584725878401334055430031349262120630030994972428850230120147071820929807980224717974174038852121169751181619885131500763099549560238547368598292329984590580015839649994188659396028696673330705994412465040086154336227529280869906629962286908600570991052840115474742647396113762541922738313175079844344956220911905844744158620639047266453962673750931459497628544550830855688740617196293439218453168365175173746161330830712778175120339945194352219379072779256805675900683879426028193832067162531308267447872463357356928839586061425314677618927243930202773144126307471983622187231627878098814371968595486370293586836653762662396472305006760023472760523952700712040710555599222263128209932479278039077268364066787756290859323251761292863874628592221828847198532078692226717762587533323541768789277844769378926122549692176059592516690142280161951790336713228453127349170072908110418396527759629806477786655941557547464246324905838995632694325231747706636642752248782812233603713842029379424489477730289078944294836799815787326570946512111455552015093420122265252499092550329656932559309007019548878243757736430597082539148989792992457557138770714241869385745694605911448834158217544998040196594900397099044375913754257321751316777177367780339981194136774346737040104920683117506152452774739360812514479527134206776802015625269135512270004877655789798944081091034959118074557085511697213192811407773971907901107257925425260323178293966210624853442615535622825343487582788248824031119427982639859813935425643976932967963837622334707480815018707212340722334691259190987641639275538448679974784049881985643654327457843968907532194167439958475526940822609003218781823225662420132790577853004825648493112919117717285459026648166960290887122301060193547944572862306096997635846562566749405625966843749667037564479195160723508291720434497669724148771744552913459562533792746733309337371349054904758960952329341788735667797869331854806379825173123001251900921633292117917700336892475470468701289790729675435316883909784815215879466042683114396500456472356691572114364738692660190772965873915109012249151506016489897063613031272901308984489193475263856968648858211761512398268746560210066954416885560862086649335245186030838480799616927595964141885730299194840471286873935883018816294640858149198385500381793058038850359603947082036474590982280684917129268374675885781546417042076585195534178144937960200549410809843411249090060358434797760080814566897073273611000311029556953510188635483369372627469769349828369355220533957716880797531730070260485497398786021509197256285527424448425294729609339029103263309839456966097493356658182241254055515924727763890689369532398844540283034024906017469513368523131039441401295819317735423736860858816520882840922605021200533547856403278957831696046036619103667235551131636601622773033187471578076012859154115659433966698269482180735191234649194385211705484661587553842555506136034174474591656201307756464372308607867068819089607188216187564340688316605780350044439318605209514864540801864148285333067985872855039978317932466733261067127076836177450531174892517437458028947036798393879811803800022729544499089963948848526064937640524641177397961751959090710246534398629266484760157837858955185288803268999930042729586250810128740238622382537373613507959500902087449972840460666258978901691424272009576706009580291440797991476876595623817215687436449115462127999792518554659016579613708491450590817655452965754919886022387778087889180788791701657703852743970966934126241645156408370500722018987210253900198772256152841663641339040662300943400721271424714412035887010233345792515943355001816595607154070641124557676145084288692511380772448526108201535846421091837135123686356418873339677076508265969422450239724765790873781907043749596510163483644817364377812309603304259371873564742759496210046324457292896803914088036512204106774530980746917313432460733228710001470878344830810315749576212686942677257077005796731769680632794226968707403462202412615390882877017029605523973897545383113415988130752568522156919644642140867663469997615380635872068779198297142831994311544572040799348476797586087753159162288045775887515673860783604148210348096200696169122754878835334800731347596388533461971737822530394391963851023020190315702769748261618041802010078609526409406295664997735926026125146080534723259231775500394956328502572722280395861318288535801396050356690340835715124936663847051597971255878782515445337552083679132047700790119642751635251265877666295489546875287193960110047813181330457984604704119710194564860751103389040542893954942176447500102991170086905189707935917645744026707298212664204156898636447894434899329027207140918132931520483014346321005287848253928747742604059132796246257584087257679714602487594691442016892086229326819160651923184583267510794291798173863516845989948033060932784208662584764248942060067701042119833186022138839329534632680292808607893871647669824792154656287916834510900791494130539777824017715495554013206825788403356118231657533882735638850955512419869478733746748947809399119451018221381156042563523438351919678274563405798425458171585563866803777504294934835228191294451693264910439542899946493349120395525892415243184672216319347754415781187496601371180903359845111878974695514151389645573878059699665817498020565921629353068989810982563044368580573357420220963162137554685814360079634694606269642883963061461814380694711598345464183882163441336537867111453838932448492126689074602150287520802066385960959878930438675635995285071943072561528369222028239709403627995736246325289259879589718001714212096062246327978769368526949318606944178104671015391728033380445498203471048905866984882038437469236634030658187644270662618088895044648589270716212012678392122409538529419406327887762509726737545708148069504492638655916759944281872999833995351835420333554626886225831036802150843478949655019122582582413986640639540817264729530498745631073148290863076100159469601334855508475125869576547137762708707660112543423791076600964545954644922642660476564761878720434153826906523225823533879234730285870385734901494722421262602890535219354459887242024815543524233982631234521043966519755176688019493322413076655527741493904066167697757563367462166984317005876582369925533066056596135345631901453145486494663366654180204085522140497142330630386300308988714782593571419744213208502885035025420393786439202490187742121009373344103199270679691922351814984597309568475978301849210546720870019754726909428105106389446151999664430904563189947870401405867443881364852959020053714972689045514776025958069374685057423944529863699837696422932593009894425196968338775379538893421233048729003926746246891162712409563993534396404850257722660915957595015111998499885236909648395127022633950073015611555361254295293994434428225001771743534870536657528593132470022543546429097827413367081051002701504878793482868665621329182631665865057377492602791979359153158469844034829797841173753485469426494243474375531285306574357020290375413754616003936893828196059308605864257646218904309668182884800531974458091215217246471516742484523169002188817152892900491526424052005447119614798761615523721789436791227653691477366760398433417779385302865599297473174376093966731500133515178191647816547899140877777440983635519404029307628528052325026113291536661873868779320145597879876314529809184502733070504792462671500373610524827208259369275507770856420515085276441370029758992999769816596056706127353567852394945073110392885062604053772608110345036328876501107568145257697902394237523483436180288133498285791192941682737890222231475406622740758830418995860426588833651402499856055631409526887257627349038402114891124657278773469492568363795000116497358880684378604009691616385483046347604628409922143633627195419152124939691781627531321801658493315832964604096280606723449913891595942109387072142439717518656181590648351020909314791097756280846398068379103774450779020582137044620895815333681748224333266148681518536034550998576568888373700046048622906469663353341782859772048557676885836770803085049324188534180469169060399777284633735080416107640995492106715920697573854109947181266682440023026789069090358050173424223803285281827524519771699380678341936918697019727917768183742188375245412277348273181038799883865363208366385327503293976206083974072266959938770363083388515588494960167552012097626396252641630945799009434271479001109030289605714826797555237845043848106907603025273697338182848351556694624905313631961053488529010345666696062034489259465629518081192571363437588045687266208471414481079261618796498688711117487695086690463506795743442758149080687743665538928857019789797934878379142375410336044126956582073235145468948124569296668782932173162688021919456824961954935620336029162627194148197724269123643901323268424928049319506961150428587659378595419767316819712988850182741072857595915768001316251931105780318186645181049620908956712806346533408140526528986934135946440531735157706096513110061274738827977571265433147142126234143712562091020709498964284815416112493048358209640166135733372016056677418855930302735189050356090362319186190110111419009005477050318837348489681030703412023837746422483466719241678177105102935823508747031250414537196883381649739468348207203837835608677582326971266605915812235827148877766634821292551173708184088610126867085608246708668433450626451050261646415947424545365534071813389946280665170519320834724487230147254607505637629512095498368975281073117497133652012611936366538350531732300649013854978439287500293880936469156725787509477471543321921802001618323130530501261337969559132052016523308212743530263330663533541397959171913123022802286430666743878311972880268028700394956112204194292650618845486303581860976213551394284365825520050495577031381046628391507988385778905400277448938494839146934859698736611472713765591111848177974878264829137682972595349809190457464389608603168335982663410856071210733512899607237497577755622709089976616456161548557848230469269229960543564868213266586363704052830250182923866806572794645877632268778376653498775307566414305916139805805039863204437428783725754271246784751106513537855014935829579010237527927461671100635488793265918520337198683528733316774178217158362712033726312190597620860634131563698272586019599765920002057872958745825420604500292276875111503377929627389882707841205820454486087434352842925660865947179507460996492648488407159384591609307112963097592869161827397583533265503499962614823787528183358149214353441534230086350696640249388154590115765870919096178079641959849818905081079185464550013626565215994258915483665134645042754182193106321265139030565147275440765149481287048018129843161360365488636585137377164514542770817075210699453416709449085394845320254649968904855310321788156598314722000915960694702569022576214670619248691147714004700774591045110863098300060794411810786704240562482654887184226610162494147447493424845093837237534264203367793623429538493774072091893760126554521046330221918437917524182163432422781126930982951591543106492458816929212473509728579964613995239525233133379950191382828467043387657338365182773219248813439976693465207635376528705459493792378622828008287901083653958914374257739223596500765464917997123405830800838657839929498255688668653602982318110098786389619239561807842161756700665224284754464408569945787472529905131128987936709920685788043281240352591026922648834789049032216460794070175649440165734067357582179091819022611630378260623630304302948231144260340806846955048485461007748270958086952195928612601288965161744942365105723302803465813475148264286746308645163941624292559335631247543940212159536452661418072124341645064414751680122311930179391955626598337423115291545036833235934282597641656364302134720116394316031003528253503996734648990399497485762979715162992079682279215405462200079102151030215055022404589139379261440939455718518528620137990963452162993878798318972159903784010055353975653640697417398585623916904012455883201229842564120998096550077734586248821299183828202212272060924650954483831281271732416086916652180928029329570054834496851449213983033777233584325556221467094499522098815250235069188718480511874073245590441052858190018348147306257647630212300881808449538263738874431105687124128303733737044338115059436778878022448503523353253863694911217494892072555830198358945134528608485693203505137968157375249440755494368340559977364636993448613388111064218885280594112696017796947381334059192347951509033083476865408542769517463285337378264297460776573918225080520990654922539127481977105728455104771572075146303713669019000239392820001277239839268809258803180490556121518801886926937415757124563124018706239645956120393799338199381971436740286483288639610591664082562242383086030277853261102974319154938469522993369165586942491681600353749595190496541285940608366329693157689729429950964267750906407034930170844705620298495572250065150056485013440238302905137666574003397219496038838179322946451634543864359303533713613534863417833694410271410989694521022707415902711252654415047612540707915502677733654021630360391871939503021524050708898546030972418158501829998168901492010304562154473423512974656580656789783816187831284318872167376350914338234687759908846694314498867591282133195299987126787778410080483342270638493168009327896016967166199658032838688517865777133360259862294268855096944732228124046972455030730017814310093523656703487116227450326073330862572367094394355370017364932134880345397563597458849215129826797389396374373077437609879933938305908144099621894999110947414229694610608816304251468097547605323586754803238945838530030363608109931610884444282588783953447837405849235249649342220598944316572173775419342335456488703016050328976968389354291487423050580811696728082256375365881188699024009711756682289327671531607436876569461282774160278408263746425016887285505714252763718082097174209427955435489718223191482982574312402997443542555246859303424372851710775628961334396747909816845961124973048004966799811316814693501552486686306400114174434585312230309589906996088574245450363100912783979639835221276594389667438750691344226453504398245685355935229846632884844369646935019311908963768398021043644921542475684142231449342682406840631624073016518606692502437340575530071724748622349093988375409265377276362526153081112980658459348920467779672842155474643974359248744872729276727639491505259783381267776951066625126215678341149298195799808117101124956797950366063789523822955904739167686670439364506408475670357271419953720603061719913642055214514395206478810566280260067249415850325076012793018975169771568320372828437486800448125145042831427594527518055143156418464704245972972563229682493979427359626431400162669376028328418311078395997955486096999108170133636567118800591651475609440094751651437933208543369115440235803913228666362419240027199322232040331055877058157418594386765607416656325128877994474349210510922040605117640126252299782198596734454222997851737569333390998604409596752543441648618671232684409687937143285846314752794527469649020399215550189621987478912430834787052539910743128018731357453979566170862885438800091610308180758330565183590092952507991559256260307924117155535639389819497336889236867149384316623423248477100552705516592806526060052357163975640150303818313983489089443170735348116603365698110946026833342882194523743572710652401391941661929186454590962065267304466892000988374663289509692446680228292336544262587192901583094765541977088060023076753244821044615395315668600189104047693392544278162760518954533325603672007953126846664015429098983938659541653102354626547517260165841391105084688345186588343073252345961973348058819101896382494196186247084009134286841441387944404125944086079198819315145253415069634435908495655082107866441196281204198373167664592822034298866023508943647890761788982069765612872770025954753409130997470126838326304143792244041579332374995071027241313264256681428766823559016927698317181101652657612948880996726021139063081978807852006995689928850789916578271232618814439966038534537838404243202316875027430980990379494563958717173267374908044947477660746681939495113531997635239990804590452120067340936030957522083930611093256478182955013104903068291474894143747330224625113051152766298847644981478876763103258636470729022518235960012133701221938726469374023462837664279299553005163282121226138217255953757425445353825019951293187766590834790056703048477879570205939366488140407984833591786429891654605252071773188205080653781845400126843432609890577231855148807262286671018046673143133477620176592703335785720706423242724510755970818728496210646206169964826856183111576266482391059559382597083604157300263548598960789509095150342952855810861769528009196864990961196087291038859650220945220191806951223523847189121190574355495849291102057281757660432704516940304819595041505780856077036664059752158603494210623315998838283445664308855278916473665106672364093690580028176888633074408343332167892235836894399579461924858754561085036199810818219379963199956122739978979352830297798370692161923646584233436118160732781932010287670378941025656939670013914478279154276651419085337474018390746944470583373284656654413095068398114480984340088127555427259587312116438625642987046087793206866943013356413200297242786894887915347784457783163753746299584238883399516942184858423265754908310577472597440330266215773597467233107300925588108502289595630799892449734172109706289405053558689736714263518997243327245790923096455330429861953413239590187304385022480094567331130443667842522035873006051515049637866226367506394199129974550294402724015538950432087355005504563181784635458592432307529360444205892308710040105610765294191174794278727313200701469133816410795085467179928147627710655472365004470950801839682623294676395671776934990535159080043546925174285050479903477436476521848002152157285014749645966590391959363450279422775405105355944062170042403398980800193913646848389528931437644603955252776918748252953412699639349135420294114415900851224020411935210968312982489212134413247546177620922124680302408701474108764727452496996345157664263531743114650459846105375084023404058962844839868289846969870229339693004416378000937379902271492435860746010585497408407870831707455523545165926935637257383418947313955589388034110282462791798536166079403453958178486457429948722446569503572808860670252583909205150450798908906336366324536093700208523348756088674397075095778390690067159226125405115827759520382586299387532599096434539937845652919489889952103529318514453365591682864663668529931840337011807622689720809033721537215437925323394029071907440909833259911823957839739121165212910966619035610389591708056187942533964478928558454187755336681755697420695834544691769912232390799804116198742285696413006810316610149165841597491403055586318398756270549100558974961760899106038488454544689670328329831314557470693257203641100401531888069196859429195175605215368467952057089718281445959875187104168280765628117110165012721344367803903516184473469501308329380222064231991480103695022118812132946135359902574719145122993435825467986881603105049964724144980255920007732842653753373944671012914601499043609483913635488245173643162172517698934626436200660736927364078367613758590614450719298420235748862013120733631447789381804361239478580674719021371718426531390340631274272299630930438661853747498065926236677003097676997323951593108424824824804823588040641414982236286099230624103437466263110841873829911851332939250929169808230208198681968227603925932761310530097038125455606198378604988493583632770516600649814442410679269875078368443997608809223037021467805648213993703077629429661364700663551379875333637109272341250196021644961756665894075928794579649700082878393995630280723967723694480745674534968828115906803451806778915517941166817553328347244927635482916700108147840469437532210892317822834703190734362695759497496387173584580345355700984468891624469761482796246916326377078572516841796324634639649521113148071761973261782884292266318555838522311858459555373800485542204527870099340396250884055228815126240359668789581451510935452620283619142769027190756040719124405494046253003484521038137673254144657840528945553159949492077292270931113381733932448826023144376955932727580548617012914571475558612364785065349226536099795277368277954074210181815477183543872599180561823142004750245113203968510541997987630932353030373912969817964776171765463304521540850342641471611564064217172888747245173146847611733913119761287971918505877848779031218005112734019166951200378614512099210222105377474938359016238600308787579438533756065805724314015852059286625092495893869304424226808144200947945442727151963817449790925497143434820782760233823754749596631743620055704807043324148185056888089414886090357841124748925741397714373398328014987928965171972353806998873862516359128995854758076529437601375369970937295071505632355310705291563917805167980694247126788551410644733924414175564981950197201552664703848375221775254771239414554755850194000231454815367858002412100801487932426548950694764296257563483267354530047122746054588311640756219011462481982578411008179898032382661322493486048928932449041893926269574532947391001291844306925125350328482835956346931033077133006967225026626186817471316373628450364739319905387732222467405993273465917210162093090635809683104271334542155281131463040449276653943821069878006753311560541588913132929319962011495319146969691302040970878672399277871075276995082595956810784799805074338958063576947750505618490156040124324440324760466089467646731476196303337194219930573791365404218283013579839588286457533186966688610711556352427431204935677777088975392177026857968012404978815650681212995545845005477079791903453271704322525500757007150142272539542991891388397270762272369798564428748286934772649121746104996281852651260154290378917469624103911709645928918582433468597233800607286119676363952395900703593550263688086357012586344600870501103680148925800169940636370119081261830549300562654031650998419337275304718271579980001627676656992502934026843207205225094332543959100660358324467902008585729885128473626161828809099047127751818079136242910997622340641629018670999796742198008638902107508886483321585134060300406274430405273458930772834484230538361649150985073156939448898435057136235358021006711652832328915258042133901178941516316216044966580008771985410605868041957671149850002533659289159865443603447268082970697404887909061159251316814161474796364630485068488084428416449419460116563821605215673699208334950354025039170748112575358600153340833174525036573767750319052764777879712909348128413953320249596894361553404697902145720203897585728361859543092873403160879223772351793837497422897610151932986118783933056420452420994156074226305062405563379293064615139020191972315515774202121088194360861200715106836815917459371933991963038571279081762762138986054427930016060161631964031158952504930157276917268979782643817895426267858447521129325135639683346423047407874412274003882241691609930598727869655849592919975267530132780331419265672443808559424725799198653857375311565214425565563746293530335725101901033835248046111006439240588480431938916505645562250331260744018537699361457561703398508740554646108032039681164044747295535494923216084312110827057057974912873034788365969968053280752640803948829994181018045032608863108830606503751506149441746655448352019097838922357108017553962180234109043591952052147694594637404901828967198507370996205104871229027194530186130882231906698590302228476684972693772398461789978994318594336119846991638780846975626920003630933821858268513813732829964742607402540470942381473730238499052121501041663300787177315585973054789693694284897330775430432383369461240967977062837786651353841227305081339969570109191143349915719037627859189256872433794051510878709181043281976247192107219340148607910495444876057161528321473328314433192095254715180505270105295360947642298231683276561045903074034496389737941325538460584147573448467182334118583564775271035010137737632250815018280903977103020168566549040905769086253483347282913056844426569134883983089506012639899504438225723435931961512849311715580058510278069417289411665676375814466014153537219071481840351145615671696463549032175031609318419531134819504743646507380475297498898121264862588097856703183959159872707913006886280645373669753919047848699700236765875698632287069779516132741512857272677559445223472429927440463706612985856320498974088726443627387540833647839503935856890900820082392887902508552725558540356336052919345872835525957431024710551816442973883345591059689014149967548829442355834067170280323643701061937263339747573722109052424062898444663803292228341174499733592424507168498117935495326198287665358125514334148438666938669740059440760771293115346252553721063689841379113321278240884900439949600591744250158439680396558861127944936491032879141667964860490621781555198309572190967318439087685784621578013034649885272806358785349056433779844070920208565014310735421372577303552464279507428564904567626052876428108371674901522374892044140419091750397878105017157876990871353153430650072816710706288115537341055088659675378659881635909165326694866804821555771731953202550726233521291513738872164711372882117380771377431401168349867651670214306047906511344705871906027780697997062090679147293953994370082448954869501168015327921760516530795140178106007116740962139971793107535169606838496761371045753680022031560738407156482735722276085758624915614183785978673641277376681154637971647292142823191325213477238830179390670622112858749348337715088148683693843649864459643118483649224705584984659378588363294944850351191233637123840111459500060637368109533389450826583705760549502774298705470770936966922434021196377449979232476673081810220083379541470920756211506227201121335931705425081658173810441413706344365959048577436715860368188126278502610642018950811646762009943382113542260195038461313561470312752429677130788408841771688709607354616429010368437481126455171557497735408374911984727373498537941757606142481839806064409679382761433518531950690573308606942130618881521078312147863395893123430846078725335347780692049716311421723704911027205054521403385455490180127644211787029792858581104278531200658407811659049091788008908324937055938782293442083819515049596282788394656483630408542915627423831753411210668592628447957552194840484700877761620838661238251660591236504663715891135748824183674618099737044386536004273817748841701761978923455475131818188290250316793835555915089422528836363226020923512661697938559124656068499262171696115201110872283668816222080522039979847057752258820579109600863037063466785807165783568864064164429073989865792699188527411524033349566073724417540798233510568698242753460205082386316332477597466899609218791728195723421207716307274381671917924940708535488675978076572105643202672208541522968052975917719704854111969990205754152856887389374501926988867805023682583041633250578273368843987662170582456618611037562637218478263078033015921755046542287895482579346728439436200583267512460065868070919133840781535100478752084243585124536015677126827861495519706901165599942439056037640397574466383376530188301041635958658724650252240626513261377241815995604259142935181950081824670330025639445394684287173475565552186817744616870278175377676865253851771328831034338290925842010392332742283353746161053618398305915722617682868521258880042009446561618907737662493341487499066476967777777870810791324246793256116220305072438127996559871567864242513680575082147109091542301883483134982717206605947880946732824781652132305444491330664937547180581696482129180862222290215609302691551669023364110388075825606884579250697048332248391510527265613027411875725516351488036141554637711948869211982806028730453515163184092603885742318829019534195791831334200398302834421023192323945882522006821287563507808956978199337365347144410875775712570165637526261584395442783038561210123997999044210646399877562616268557393113599423101656178460657999305827529754780625253181196062664607700732478890913315423651930064983303601011092602402558250906187765395374542206329053950495809397107135761314312470099523813514787119126818680305830826820918803194189409897725598208813222653898252591388193361547428866486826273414223785259490872024064271773424006984082655222995337459890359187022310959305801251157580588228381071707635792157944097186080146073323900770264021265611263549639100574288484813904224157646182035035339981083720484298410827398192904227517448491166305810769301626845565215482782880007310874325553324292290766072222744562446054934841331561060905625392975562160738085209041745603126351666299766887955896657793974957985731692366910074395295351962450268410317872679900771713199379984398254231287725533159623754517085806268767401255746347800338652833457810925318948847850283041133301143221270809254289117333406798605733221700129058169134167617382033238186605300457915651644576339308288856929493602876325348199457601719550608390364187679822755714783947482329413472179588604758993303935652319790457393251365039526956265072585910153132908210249569149300563872780767473070366216955543941153290972209772029877908788903080631347027959155721486173198866797425248342067118223523393076238982766998136155698513313434614275383418808425577573836536988369236601187033634793473707956675230206089597836615431700593734947705660389934443723206934899260946327857692030823237985096039241721783710470243826928054722210015688446658211772926261119944160215554921700052055597036787464792331883262395338641425870472004548476368723008978315018803060872233462586689568310213641044342407926621548792681863144417776498917893552783164322327370524716923215910832379615865854913265206541711483433289067090064196600789900017558774307442180646739758379591683998133204832051040551771334718194777228130716208572068544973166637585682676938161090787607224904534330032770599318582487969089029184954983086064233860846519360957807432812544557197704149156217819859912279273492945335484982745627252813596983466965439412503679312722782897793222392529701844871567886461926771118769415988376125806204385787835182798419232835819702770872948044320643762900199273354030752200325184329347169211476916891281529752077298644740417670597067329459211107308276193664379926635248766453171157339509176191235998273556863066105303559227061610697410217391363028113950930011633584142203758988823108777369940880209681401364714594019485716341601415465902173929638159061410089706614751275677627251453107462769912482105634428090378008036789136380169011289825732719287638694091931016601457869838839446411009932622851380556859045060154407345095340678959923600561327130868609649876589229759316383988776176621949802441508653534726097305211464908544498429719065408871554548767477485460099002749390854751218413146148689983633390248708908255588057497728373256803957194399622575087621836257818054767481032718149206801950375927359952680974147273843644681654914421199627593322009819691749058943004400513511183845521350230202356968579544359001447057664494294005113605232544583186671723690266501005738409262897282479643672053125485356251796398768498982844962947486735831530570863795413780845012218410656431430239101596082766672544098737329830346119019697631652179943915397908434152968404479022105983275544375403334376455717162910709962609589038353419450071699291623401407775418029431458130489186740540460609642259447823239425981038727727855935292782235063098468657515295615425345942071914501740165255553404627131900845678650249497674086888538240576687583366965946516548171246401594257575563499822454205026032882895375945958627631110941897952916390480522059443998388728289890879370237122990943032817207472573460945030573264352000207317147061895480838400753032741004266087698385635041350328452964209235930580722120081621201651166151821162839806430738551766775026860656728291994191511534167895328104695359006947337997670655177940045061722921895862309674280549919190936952817382575872739207994192876513925719293574707995433254823066003607349804512355170557558199747897098684816364230675831002069003641039218694509828208020563188215801831448083783638078164737991311206119820639927709878626746587603574623930082879681588368287860861476090445232971081705883607968563525519158056784085616211392648356653520572053234449663322160552362272589354036368854838472566922375601967855974901159178714782899773388063639824479956862315146031823440565036725291027786665911316393789231267034428624805012090195402083661972845121778061229435837018314306332912718923100346824076407816257976544830957329396693847127948146386599005438987990880015442232101017924662581832962526856041242213479573303161175678280985325396650075125139956738337868917978921339321282929886229456248227370716771622676314271075089047104781245170678521376073807482934624840335077035337686716401027851056809734914300556344572383553271592791860928173833995374196056261091554912902028298484652914683893173640049039333531680146747653891758541049967551571612922888333884890763833775178435237624362440330821005053158719155234334940217975874957488033424881227338957020149210347115506993798369950878249235212078935575759423445981615586518341811942327980706672230453852142763107771393924709493419561895342451684943626536567077866973417009026074733639509777541101809982745815750083722904074394951222982726709620134473086281569697494771631319049473560540454522229928169431567382848420124508814761680351938914460080980793687599697067856864009418807159990731816430006584391090227667887533943115141767914910556011028069599576244540248410219616643473682294907589229719234151602813077660890887257592405951517883174410906221862621913688893614738491032910616320528441384169247093082104686847682403989406138638401332342432195055339421877419130126915443520226429738549689042556652848139488667565361296648250288005756692416064448209767171213041413145330027092201614614974501338602924872893868141546791432677560505480111830147766584261298640301347207298286418904768787923814102462291493995653797634640318618752520519390277560807845163991869389591529390393609514908164757807587549598609229907284110288074505595416095239342512678375033644521991987617203613745118263406273608419404128263043383072438135864186783983491871569047996665518419651720976122607791744806933027277167866865069570670257601904520714620418009342261898706103218366175479611942720434809669247656544821485503807483091661220427389698180914610458701631856875288932224342325680488855218087951494036113096216899644174394836437019098405602906423913971189887423245952943230066790959794011730557200864740389822546944034658830469935762826650711587244591238295621771530017671237259244699223251313370460157635895957210096011512571471934324050906641910591493082398195282100704098363134591959004328852772619153680367311867053753755963806578780740393366954315264601304747852201066977644623856813612791996589552461646797981541762724003283096464679234369547845654342932146644063324023768074316244069469379041128851685309322908043374775898760877689659917240414068260952718766906838459254700383242655260348007878586443851499153930373662959070346878610485280725168256646496648664367690465996329840090070790014237289254005009219294058659594400298870730808356738725941172123412786795961342960497863055523049548210659039101382339843819114067426100783872195677533965821514272914851794072641693115954753991036660875921469565533063795991530338375891759732866424969311755802224078637956125660218723542880882186050373156028330964699227682364201214089951387217713018248443586283614537961614516012893692655711344457374408297826940173033864525715869645950725560110468641017589023231535338687653274376716041342211164143519127014070576534428588427271870800227936061903141733277944999694876152673994859884463431021819095778991777104647104012121831503271189121113645263288732514923783782030374764884265132011117535800113384135150189980342693683343574347257370085781421274643305127954262938043800667298559634209249633077353890424918015029572630959965765255311256531617843949919513693216458224520833224563283515566204030788483579452206642545802227147826506770314968573170528414425436174303445589620367069985477751057593803346395488812186966282931179667637271252749876779811488743507862555906277048471784741779885615177293444945770319216983154309999761205089205056665814193070718804764717129648345282429642945078499532366458755369640248856173436091882712720499317772781587004899896857621211759112920798666654096655623215989596231871593848534016517963803040689807779721827819676199893826223450106023327207007872288309746601320435644375706983012988361648776562442297047194890064472866639469046760592431561624418271474081121928798654237179747444710527012073528626976959180653707530707540707339105868286176226036441541827507819022689869430804623853040169410405527671151778294495150031207742232229800708748380907734339314307109259392470685642776013647719958412316971093959400660456260442315700036545291516048438047605103498151723423532554518356904131262078938967425823485885764476470434507792756048077866520140036954827196969234263439064859442969104942433799949482502779728897663807006418028054628272869388242457662299394895213351221678181019431638874141747749244913238993505358105089531078257669197004073110374436919552072241994909055056915561191002719811120152767427646369552506178850158914450779319126816639899929915133215343879396880073371374518010701874567885346212366046544929750358185840932497716409855401318607465901219874523955067041701167382271290175613279100791007643604794616021383020612191969031883365154708958664532862046780210880621447775202563866394250226406364816515572731978161757431365033304732303080582683121794552391864731720707080513671351307378015017000381654414227728020103284613497939938469928494073115611229446927936670352281884875048523533124909237553932523976360818923654813562076342568001056299873657186215582716238123179613524640718046310385888070970511153964394278994461312499191165797668117286196661627330896455414383104117349116106125163202373441532437351765522879572716815370218986179068224549283373226453039557305942026161505056257497247087996828268802407483397838683617345748084204495550388689378816103883524344606496049056560625935770364407665215826092476706859671877196292887092200180214479740888851994219261677547480072281357997390208563241685287392863311604241185371926512281688233838179302240562718301125108785806541720376640441570250938652051508955326799113805738523794318998601119919428290979827045742512362927476331539825488188839220065018612361664740767171032326922921164781154368637623415617075770016645942623710746450333245240454165850079104353594025169768895272853644688392532755242552357235925541801705692700227575684640162828842346055840322053388852397123746485098729782966039259756044762008461604179684546882173866795019212393205107359880896796603054248733532986793157216126925236092935104173514680797625800562523514922664630958347225206037550186083815618126891876617422565839119354804432076262914601491236862522845538057589935736457681133612754372939386712959823371425994265337326815613968117262071067740063541847834824994580387146366783337400908142376750371010775899715296754334204168496821908549686420834168432500833668307563396471267027725200790969982532151769920761934599218699863419264801177758367862890245866342691320819792463194632033576534125934867075412215444245592186262418647892420050739111850911571580924639039055757502494056041877548461413486004013242754836428681296030416201443330681973198552909466846708486841268316638074395377389954151232358359818634366506682768717152549384348956308796191335491083227207971453984130369254719887608419557555875554588645015585648944361862559496107098286247402326804262534986399373584111496057231856861960100816493846744768467753820539543908398575075812215426315484279826719749837061380211792270177838254438941945811708658022747693316046907227413736420332916476228096406990429449661824514149657621624764790046624214564429555894189187313521837853932653378784929602834424343404230486976733904191957908581036606513296475911864114778330888857645721964134693869319895595205390259843382444144828985830084027776821361517662519230370360492711289922073589976954106479707941193825556744826754202237976939720379235495370147460690373729094404435001066041020762848792885349620022423046748462939103133207666314816225183886269389546291661309048513999704375576141314326554950615830030731504636194613066156683968841203161623022155964383659020003089078938059033583253988513012238775744855645442761781730166743118673474080078864684589229826033308017678754598820346464559353288591021481609252332687631013928976810397683806331036373824828615051529708810349411889347146152450004672431886235469643902061926414327513493347806621787975608157232882473397560993573875089465375563766182767620716560935956487727647180837019140857398677183600727120968706890277884679954152330792723426019220251243354500976847980642679238024198896673051989358602314038486718297914806140641664691696327653242322606445852068067172069828727767426995131463187565845564236330326994450572457744600847529429746220587451468277222092539017545047782016790813946460719878430909887303601755573419913279497185999972635889805250140168987959774860978308133187962080320937599250379142218953853392388118919250849906258152999541182714043836459477279002825472741950850347617300930213818590859150472643531750241479875136355663063664571237055868838370785210378082908850095487748722383107672669655997714484616114280953491397245120712989570396243221566490502662571968250137703299141338462708142615092322197680758156774652922853047712269976039780606728458273035843897529515268899192731158213938112142521349795255048164304588577345069926268761535289471730047034480787159476725253444771102930778578973429189619549440449970222469945258528473533299643536122825877871194302497364649962492687599938822693597517188280950732422071588841574206400311083371329852561832855679860737359813738641838598206421690885067640235122905222739486299717206232737491457071685922818686579768929217662604861491377691152570903069146139459999144811910658764914124965203429045643870996205288125872976582087917169527937958204640609653168796332242322162254861465693824062321712623765133381498085779120929645133734541455883508974281008939281105057371151938846331449667320414775269013323811253784138345512410748062007436458862188480235901199686386970026452580686941045864937173112873562726881128487257352294228845669934818673136060977204239182429093081246130894428515572076171511763404195448233948979670204836207206219345629525181969652370513014053544398045553193122648535563118635563620709881224578811995566100427262435065836853707702650349300187514295948997555386726694460869512312843236789751458241550170631533510014076384925001341520293594206871569492975337657462217365175193094662707020842341634020486197275595090012643852930117604257532795352967368343871295729713264768332189838634425630370987241082476254030227154878056302129130745017194037145791123003656123487323286451792928077257085856679161092876493922667073831521950601451787963273564383778049102376178542424328177314294569327410092533780341828187595912551931710820016021586128435403375000102481384057509424543324262483700586405328657621806548174854064649557694864688087868173013163824442565436615986315265205598288600653248424938705873380469535815364515236029797673359421444102809120613729901740342617314865685729139674551778213093518294254598098609191120667550282191274421716848235174840647531711833802367664775105057913634329271823703795817295756459627875149933913768803592077855735343401868797459383704241980821516844317545676530164556555015521164779912365418345614697831063971448571678827129714673175615701379718839200016076023141195690502150874362384040020087458647861737498322384102016839228168351015818770108812253001203204334329171941988770622174481070127545767989447216174744451428660469885409679202207683643326561934646229443272513823151114128149210371511303665935539507184023422853485867314633085002012385592327318263764343639835077070778413690370856458417017325191360880513082200893361618223434915170990822282276658740487691808706962274689434008020231317751952246805915396598234835300053659804734524158687531846624482582755867746098236931756024324772613038108909853376132704554640879343801158841859353891465038386255152491602302805154917064087882727944916676139355537667273252236070407468144517998859897168701551652466394733983589636408742708560825220151859846507288851675834804110213851542482183632411317550199012454067500462645693028326209708928787750872351506850805993524338731968293233760811412889481199900460679926965474286304809614456605665239915435007601702462841420053735734222751644516174546509555363551993929962017202150900604720578576647898919322812873632708210080538467458397052941516189857690260220192478097631043514913821284634163057373319529487514659840035714396045350562171303263738178022714080083205418351671992130293845482972752891628140377388996287915540555861315121938830665448495889514730191972265373130147853320641199381681600173925037612296910441745113957755688054674216930662999232911692687648990864344407712162198186734677341109194922624404877103469310004695147166661077411827111065411572474731414016895014717373340340462495435901197019289572111634354153896613621535582583961436043287229865817909741689121451794583624755105563024818921354617143203148876035564182348116825302552225431790102416462055768398267228596861812612963256353320662647892113113668153160190488554359264083608278711610626224308573197146263465486461465021449628820987929113829204969865557730542877797878895309059194240405232338090769981516995799424706237986250690702621294749035847197159323098602130601240832172229089821573607352350638467738618033728693274696757844278663628935935749838361081081161620605580024730683896252924758467000445403323344627409732166654241785338063853113816186413380554788978595452197562132454974599801650046916628886320037479212987613606575480469908553846819421611832030210553765995105877730959082039081411419134768111747981623429872992918774738858908815937731874985660452917969414480154635594937246151866967212696088023500500370483316090290334036345748300307920507030702221357873530019360146410123141456689121302284660642887456161667494084054169819394067398294053596432578857206939847475359002279988543061406355290804542816803456588708808017019436096970723072824224881018275465003716826265936061492776391521776756630846180846665407736932853497672944355729027218636623345175818450449801005390817607816829346735115012106506918153325325985363943684641539488634591303634435896178651215616898942749493561895729815165671264798633976305263947962668958240783728723945107467718903979937624576048412206875666634261087488186029023978290734106341831939274634566077038468030166587398328268322878706910777657664585847338328316384382162717474181221728497308310694377092022577196084906446942557829697260192091884475498202782284389221283741078963219712454430831314437627957465206136534135145274611417596673196856683001636863926946887829994220335223926058959627817639002793776689304151351356430008773200586345346808289260262884308217681280967980255903861958667951377374394903858579016986147356794087944816520527168063132097940315039619510878839579360063701951689774220435162299867444789152224059746269300773214156239638211239071034306733439153100766900000494137640276169566629260367976752493567869957428488651479615354650112417198902739861526421566460404987563429291478484297541962900725508711317076680480152708414228566631091055881779345572751661219739307622695007376877255100651704848763813706585064227617225824379691283423611375847529531282521101424309924792717469363995438668185724827885152475263974262810472439293266436605182702078588724786310225052204577305069705932210171494045184184432840937456213389789915971316714586376678366480368230214806483322298945753822515269370293375914489288096662076760702297802148705484992926436323835989711967476756414282670094543000509376322071674358562047626665187993012117377990260004504028723114754890337732999141531764021669753174573610361033491769819449551646777150346793452356352326108360435460041197878318017746253225723315570200756015983408691867163875059963358284990877752764380924086570595042410416230824652137868293724436303823211099139679043444818704523974223199866416814327294298798867003743156335286975157318010952481055369526370001561189845476076755158017653761955554884308576647910043763632056680379981768230608693318173883273315318527898193298167439487035688423845936852446730981629086168199429179779786482688579291056762150242874325359668904805795874482810776223460886732788447843852512997471086743831986383562184169858504683572761394054363595449691943850227043606612914788717938594986884787506834459758205709199855291148606771345076375564601066816861816156188233964446074559147470021777079360656522068808607732761730537032532783244677566338007785808220276514581339807102400293999033493500473511807472442663327809036070734670764875125978204513300375095953119963942153333354490426265360416517191242377550442897524101954472092040171962642885115325466661603522309575854332807610652261225362300648365753431623097529346150017053806704574177770156693774612013565828200786683119218212926638132456745918120139520402447854417940641527062066845760924175632530694215108346692088335413740002412683063093738592319887774906281380684484089790600318640202773428148918188575077217460546413318094852702691871000704826214835790846501563556557938816454106211220282225747506158464768966822846241928070879528184356547819783381697997724923669954630671860334424821822383600251857800566394858098347691444491560219866958319712371360710252332698725978874021654003988117002863056542513652845101667516883468163554462848724418936387937903536279527612489482866055888666941429846230568892608720718038614442129307410478151979034788684033613254269038101536658400064352215372165428794305141320131194585132140346942571467438940065023401501107142565683388189226167418158516838352648878619154195717544083298160801287138455222586678281308996775338739133394562061611540408846838164204865699873703815195192449901137679169220591441773421354038851310135474708476171604123225425411461893006312376088948324496604852432104459001193721355216330512568893089244738277412118427836220525294802437957644383281287934292800175072815968232321634207601287137133136461620912139776697220662981544148559608951048584454553284691702538077863601178546523249102961095434902563879769703324590880698985781165951956539949018580524786511671388880233056553655186207536579405598123717584169196388961496428547399202938939923365846994207348953352282218858856380841943807234119546371083497272087293991838073310096533623145866568598611983399418214367122698203910206079666221215301286763336279745641981222336679700252672189700541565526159233472008072529893851648589319123145127922041971840221532199579890847679028586530533088448498985480748310242705420478860569733239651215493595209834207458454016128264191559830655708346606243383886247720952217378092065391352238262692540679684322733587033350436839172564327434782980700284914384454390791773773317305086668509767435895877010279328055566324050371169180726550869936533718954127466494987613700490210902821295534720277108224591140595697568509263379869897659935733515080039010073585786878383781499613573756475960235306939175109940198201289755892888860588676023317093413214374510854822026447626631350399561551479763834036203993726115056271206879010686769415418123427786804738543368207455964839790805931569156941975778919392204182448362805895249096898793196272195606347235763865231570321034023427455730910730035026437962875092930078912613640914985919004331806938698486413728190688814683217224224862600767044035089638539495786347821698807493826844148985362442708645956275254098228058840355033576272226158161497499727831383911819772240345702548797998025245154402987603259361926665762231716252810121394052882241061132014288804465066350647356750985111371949604607093054262299211058353601709615767698390489294950971456553116049450918231982561719905660320990191423728198997718559188414675821434786118539120919475622425063830844835489041412065676669235091812662522780549448225260564359667699324413921071607197212459395706489715603656078569312320592769918564334928104117534503213043769447128016433008882999871617619732968388259039674212119719716078500405940549036014321217849364385273865301225903125770718198942183624260023795113897367017503281653777637106050001280952745854291319403261845594233106812450766502907643261700311354786682305903260610060537739780711636815361715251233943175842918828928237973232412601809857737383950755096757289447405190961104657546130940006127307177711127055379113849073631928281845624856869950343416414562610594223378725026381492013426258332804353328276144089412412606194487830681524416211307808843293842985668410103206602029491839156819379653151858898043494863424918779715748203832483411425600320632210654880575541787574896887744932251516895156904034734060342927440657660615431918527752314271043696269801295581645275606841822535427878360401432218438722689381795078672930914435178536318506119145397863355653355029283909696243711878108064736792076490003727633373165857388066466225660596809897524990294782059604166708289767739664025084542106464333982075686197542690450326967427733940874778474930611152189382559163873809425724327378567919581055916888977749881479574332584867606188211433937553285374770885825852821168002422197512106946766894363644339788833699962124836530132098162631137223600648096008821847431502428230093745757233723181840286372122055340421714200832785055424493034734207297563816573352532043436177921650909843263286372121975304983302275803839346472884207881931188849522188197024614197645162802373262854865468557565449596038868425044213250503755909833620992133497707546443770413717161478633418678340086771011982761639797460398684261518592463893321204636931438342703405705737934143996088401851310535916525328768331358520092196444760141240735725306444121974111529476744306385284694739679338538141971411859067638408502151802743638024763108090928025211007359518615718697516791674224073566611533926444373658768772504026926844714273419415122185816466866375284752257068873315104620000174055173697872920236092745334828752827034312039595032796834603110275480712001988753533268912650146107170400097024623094436472875539887835647914383419304301560341714097367499835672032035715335128730135565492808682630059597984610529345822558726213235169697138413582193954586128095159672863683187393841939352735537479243693285264191411959357447919595996422929828930101857167701422522744194655325011559754922125251151483201954816808425786716026951400461905654153178378446489405221871852193760233328828386996491709922213505503783208474910677616743616970514928941586290752229820314979066487262057505401119138499642719819597229352326473181065915680274305270523743979938928751691977386356729650997351826616250111360246980613148876576943701766899644827261981863826188504518827759871904167202972883345059866883263795559695419525789895328195773797824887317077926610667313053395213882687379082348856736283178967930609820610474448300829939351809655118353684570055066638057443953743159224373335272140851051246089977704395908735616714817311525663836377558869381628261613474273635605713988270326882353312294177349349274775883873510662103742931102496000578221255335389446194310703299507442181634481249266304026245732347151401552172112884759028150146537639552460369160701370357862907414937706078773470673504177258818824436017512074630708916784079167381845403896845852546699584379465877868538050397425831013824740200832807280241996532552896274905392713875463085924784610919933527669287703471534302078328996248339192519548160085292754419224507189148829025830660830331241902400482132769255872877579121734302953053302524644780661204919194790683952429386273950956041613575677191857034036144055800708021489344908633219603791328262330818922342199805108173133021440339275755389535497514583630994650346572685618948353929661570233334243206719849297260886887004963044008019456406179146461003134184595808335753224215042650640573116887228435755629929875791508116102113318115967092498046465811431224966949506417724556301026590215599148824836648028124860459794238487602840421348732095686881223107726572936756675107140445076158955046338512366918156881352637554295483447358497536865385578215781962390955716197109390250691441924004389684736047863707186137170639091982723561575519205559362149306497289974458751492623165306937166379808716873168896742867199315407215419658357202313979331832575335444960942880594107406143002753579693763938903275809705401449281326242049567669328114203333945342383705113891152078792830603292765213811331827026121922624012076480891120470903999391373355232667673574663350490235146439043424591374827610174938783426492897406072694368320249611249216057853112361954844981629840814993018198678267481899730483743088036349817749583821096215719519041273266372461304710213127670888502153566058619672741245323414860196672602537234576086008603113306406617961277328673908716476817900448442173937553720131994730023615356856722372721977703930214260192190828954772599923005975983982165556556527021601340354974621330046858809121920205750539102491390239010783596215760721341039547294029620708833261706452241846082178876099949469969859862920677811470874788695309173865523631563893061775261756700512101523760741349441969452516658001815551932672955540683172168554327569677278803770614718310112784224277272701193082052575285530569841840048366635076223724460066586932019663475323820318121429197799533931947410735803371481753806369162714582296010049248240438785078226847623838755093899676820864570522558542968230567166295802596426158951708655800534247136414825726624446311223045474716845844801589305441285655539694885862054207573795215452547559724369824765941201031195782515723397121629755566838089512549412305661291954220375903604756204663894544107401431328567661860430663851270649467382363771884286129330584755900438005562722365484705407786303740384123546685935403459935899609583871284672497157738159802600519504530904333645181967775717144207304283821240021964927861441429178270311668073139224946860026897409931530382454518570162368496354825828246327746141835893859728212948426446472902515560382876418745246960935981791741052436012713124958284004415234386160283211058449518807798559053181926054899607989335865529587251183849508833465220863301033479087050251161167708264799382244678456907822058390806994488823976714901405699142413904606000413783658933539028132518849874680948375952420335314308200372614475308170660893984280231802471460805733203984451492364765598379345726246050377567543236636578247516264735030183302324575993815958846295355634173601545689516820426880881268936335223668108677173992319979334488791562705223354632755431899015739920021594581685324031896132022966611036538122510716061684496626103080339176728124142769701518352509366446286065136419460560636762719032449976099129550851716739611874269963925825723705736405339977451574559490894520416598851117238024513606273261483854651685047957131516127766206199508542682223920552415933522093390305050977848064846965005769178174806527308905857235924629767555880941885389909300235636206976019824665049035741437120975591568040242515574668594009470074448441238503637667710936339554797295306703011581907674514694893729381522310511762001518853952962566776820738589501467893262177570485456555569322554316640325901073017806257910160277526926168282609024971939880717608657903660871627928770696644403519745230678034576748812773599897827614402412036806533894032976752515241158670401308074842043735152583319578748092433878056465318807568899770350442969042502235888927380605544782845660744633634972827711951148143009183403071424965149180905898021352992101872663457007264990697099691682151115336901416164155503286778797774907802308676967876916977075259244407057809578810608131513596039877627519554056728181661028183444388242921761694954555486121364918754294923926070418283332173953157434772223054491927076189923690041234806284773405623768322638912401515139613726388255187650280355651546389598844251996949905872259263423469498446068811034937605649302358574317290955051971911117603123560915364210054397248463902835238966689264799678205567078921211146422571544801901648384468021099168578173120121351834662190416376373701801936392649590103751890444242074200113172290327381319789516032807038036694972963555612733430406705127971714791002104492043862595844882350380163911557515498197978194513888115624207067611241379413777443603687123786151224385758269822321182934935854720818044976904021668932755194377686532010288629545975044281144439822116250313182959027789619140094747915383402939358036271461170025030621410556388034802393724976622067769497826144828150655047856362346185588257715718742273454201358760817237974449452106306954984587445930094885574070555830000816160325812944435237404038176384646332646606377960332352203603121842651089519576755268425474199505756186818355443716933306640902749106290246752260762194647643767058267883848245743466129829758883715509536401533700502611525079180698165084409663635832657936210203016938444566580099214334012599299985052972985338484690925268749041211772365819068822668076313391357396017946360661919166611268072928288911655989628335797685213806660851023407562582516473490125909548531698848856378188801709583274039353326468055513163750402635169502362766819099368494920138469444708816605882755231252463501610391439687830404431905607118802962709412326145360183698282133652617688978194003893778888428909075961633525279319186068738602717209512477870595457826946624735087341472386972908184470971926286931955778552135772967238486750325348896498679091879053577393471350077400719396003532641355300021445686423756264965782159737920243880384659167745433874490296596123233736852266749840803134261249825239995893973888876935286827438349541708640449138758671441202865456935991087657887805051535584884175789023732033072339185317326252112799901614442677827341350898598746554864768564253589327113433779757521000560832625696609522568813369744520316839596782287335375774008300330168806643404745155401175158323157006390040703917070580167765175048127678666190835583608792819290414238962706130289388130080970290961958804774135599686409788761245034145177771981408679846707601490334953112529535766809393422805095971852160794855888789168132570105302171317816256223487478871027426612689496538342046540150436156801986645863886014910935780890482208069386853653335246905713177655913812237547616498101185747610700044827760621079736762287270063442767004915342356615061945587833069855953944139053054959535673213072256722433376203810867375479449555350639096639327648773614048241819197182837011272155995299621831670997341695242061226377504124853754395831531360141826436368320296580045119554329697089613335346510934526683760747865801173177886175899130237002647236853426611305243766058949748430905906646433109789742412656231540301155651814047248963175739281907837292965132835234418800764939707967462168045887525026184127614922798941799637482258866261587085233860485069980499048865170012998155123395345527204644055907499102062684404865861492471395453339848734374200816646729398873934472713698235817699810396263727527845209909988686264390023361344028716233626703817974423203747910312881497731640155815257976574600023904605890537886543175313949049732070277987153576915489350726918980267904919934976764310928942796099403832308991697436965882843695380586907703518251863740630943321762887191550369693170843552325766968259133594028084493581969416394541107454919562281146854868095821298454726300798019662837986320258272879947274990249866303596302396234227283875270097392579411670962375737993355039188018380178472534401515927343649105546964045403719294756916047898725122752344633394567703104371623109425996070713371543319710185911770589175832987679197326307938200338913997210740650441647712771363366718090140314245246020677663515402866583243409846044892745711637689045334699717504588295581187021599819467762198372983680453832520305446056236239889849523265651744183278341300754740190769753172986901394679580491793433293437019918978230177980806881010770764818151517163653996203226854399711652728696776717053661837429275806747038151570050294203037154372978768634898301112412405912770324583423940576438855845557210399449139720698865303023585648369537047460260336681015817754862806442181660356861360934466173717733591241414166425402032988460292801081263606138889831412538840005690256587377251802480992262466379669505364913185114190001640310994612158302601101241314255154250464663803680428083260040466233251222756263661707030291675862885263068445539496313706431080807106632879327445456764862579555335333078165386355474852942042958416612843752110588731859618935727539292582173656076465355250424973328598899180465381245722645967126200408337253528644674713400969371157090906250996921374479493171571266166182601953868482629482741827959893876138036554053608322976822207162189951459415333714751645056842761732024865645069782572889764976169833527784488318856289542240945451581341803566506009862057145401690133294990836425773788388525858225146239602147355397558494084536205871635965629561199854138538999120700837072286998211520728579697869755628811854538856379426356851836555706846562721458420410397174678464989412515197830068143047014537047559664026367917676484973575138076434586269345145775746650190149991650268497000898891030203765582459918565322098367709430450265260415774516743979970360931261934354148346725949902740440223356918006117811314097734937487417378533272758030159508125318790340380803644779238447906519591479865306368498432235618413225707131174243081313026458663010077907841991728153120577665958903538530761324720543772768037546136872581730169168570846988569098518623233414231034950610710540887681845609909471632659140926625053702529125241926707839535374300321675397474113626970396171636166802010341238223208688445410165053612550940848813581248962482495573702520457467983630803649438894600316638862653045103471991929259582475123955437667203454945083387546369968972781295569848894789060944949763199734058238724845894958073809245363406869965347895262737422501981929975971432400046377911210700895767336722923402826308594977224633672269661210242619690617580992476693445087529875219947474663657211344676117646319782005979311479157185889237243792868131637903873891534984122078289598485004547653418510772393992621585797525547768826251942017883326973733284107470952856606134364830083861128705010922348314315849046256394681683977969773188219969623809604757872358278048756794168598140505785922535286810251457045736623046831117069503601464009662128661528024959352533933953016399625396056539793519559300162005999605460152779231449504739847542228148789956367814258054533968598027382116564963243871762726205381693988362843045489991835290071855551315136380038362950747692418755766969969070948313767852650813824242216542759689342734459912241712211770459210710630460781927984559309763449141656273651454504614669394704756591809959192542645283943205770331731856118360762950433892091831836980833487329316183613275844522403469294526897327600305339481367748653024226542707753179932838795428185843672165374533091722285328212449165948658189893851727357224293940304714450699466953624132920280200611357515134244751455643480791733297924886440825102375426370526638102862094854088514754209683734881139220453734324446120343898293807997011445947635931149512126351218442247249223502882903842274225401281092568701254875536084142019097949249251958990441660503092108132461661101895084477945587850121645845923997728685264540892361014005052977820272846417569540733897999515778213049516896007537691212816137254990053857839666120529849088743851806081405312559303711966223436536811051337690189437231643710063402508173610199054741165664103696508014484262626020870588822766386832658857519483453953907700592578980428856465808875977477734024899435507279534901037129600070077685760483144636145550149002956496829445725522302708100600635376834851791859533646443688820548083680326104373599296595175690426409770291981612713523723130278363259631116855202100199786305400981600979589589207644329092940908769908185167845026150013815672285090340794793859585421541518508715888103723599121512013489579599284630882692578689266277997511249302347377460544262223615165438196738213596628102390050862695198998263129381283914950129694409670226016467589574944668268864138772971663535104639603478033570472162017484349722919040984434353962670302884999267299927633030721138694162502233852420853830649798651372225578284485090253434788066775672231778962311882463975740462409106651572151835436277901632751945544224660238582526376119810074391967784677225979765044271607562415537218276245870547502766756270717021140314373046803663004478285110880895456899396712851777203803477929071111699391159412859946640047006883688087274072750995801438657788605126318496728273824805406864659587029163074986338963514213784447959675638568640349941624029220236781535154483116275370223788533086120981853498638710819237071312562237311943849351671676763481891937219229900248853400273099499591686611555690453707230080668650957409078734399187262713228322214878534627069900456562411418314191811308738752345016111513629549628077466530936545268517245659656670848873150034108648569283162972109887013178562171789690924585276683867616000025497779871311987054656402842033515201640954378806053652044697923334010948349855846580969156560215400025282240134276187669155635482297762576402564749353091606281838564111542379773875136167290226503116287998239134993014578101244317013416739824697134591889188936946437805108928068276093300383462051634102908843539802644965912959642606047776897211331474276714391697892498476169405042294000627921000137478612038892460598260925987128324573774805387575156661383668106151761381646370009018320081561277989570153096349919686044916720009615031897458906365792376595026405181394862412964400816885348268587124856089718922723909816879599256386444937761455097894692224499424685360628133172185571672779611876280012708861401789058009077399047708617603283392794101261448091791918539592316839827241597141740908386734049326541737561631481954765798134651546069573244289126562271840138466736185867180099376286679038456303393795505696061413006539844715300932306370285515162097971975883070303663835871728235046483199414045451357255393474335545445062977258475543104093804111197579988538734894094763839308133299831277495595534559684407621418488792694194526641979780774035841602989187976538098463511819480037135629447366056300699122560172385760941956840337327552403065630095829235676472233720948749027792159805946802596600540925823705857780445031053721878973514213313950279566300200442281823387699542103843630080321507898145177210108140339981754055777532226454777426374069469422939719421626213493789999919417741678824202189192597395618744560096509547720574511917475912534990218816090334709913973434695228157609556715126263999290065869623040869886097951536620363353653342593750903066639925523171024740893973530287828786729905378785126715207094526447576663543135671831178751783024629635192426089632600141628626431946523225678126068149964158715959385770074891403515316578202151991234015615091884528284470623322185686994069272374918226063249143987262075148463870066051189476804640236624117757431981685247025930607024523311401503345855449419721779771865328549837528605867525739928510033915784027897244419046962355371909309827848589426640615691101134547602026688442174519530216981210055552908747904837064634884661366028482604026654177167810719219950273938449615948292933352430025259132721947810869148300137546591279147565856691214918960221132559504802195305458891370342098454764296094481323969999104730709215766795484283736851518551236708199925392966741680843919655371334982420292432450510816568590243062194348002089265789615343573351801606187135528344882068504268366165525023135731399656859337206788071685462335060284833371711343124949525381131082030929431736813329614462914545759479994333290546363600807428067797694468719886169298658252694799360802261223372589919833645392975981891073822237942807830077707846316343343824408210283814570467284036179781950659299156680979283209861975548810784154246416901356804750953905417145544560012436369103598324087697648284826845281477370335160891835502353857405754402326740499804509338424797313570213086113937690585830531237589038614481123029306471610415902513514942063094643067519782618793848592048601983220915379082771053644346406559669112073919937234092606659246423791227188909605880643602150328812024956133742046242139644097890385910553300432757738454837487469594738109647085003591770436851016984013850280697031074243900989993945939829663255683598577232479836763225996387248589045685630201470274881209332592176871320308892497654044157683691531617903083710415612282348545794411693624449757839531841108997292298903649075226747201296147329924997151833163454650170644263044713216366229452947209883431464270476688953197335540758579682822797919599299267597993203352513910301949394482684723338350085248137878360038368571336332251908267857069598558711860870339068050777067557703078853435866556562778557256560389420318213756952115416793612598514187920307792997545751703794768773219292655086675907513628920880326315842515026511470152919893156309143326511964684121851977374212365218711627784907396333229958107619163057253168532553858392408938301519225046931018911323662970365683962144324173791360432035760968117317309075950497399129523757619103146052740393646018833985675832904290632945075708381606762907726333100492426507206239994914672959550013674229742628501332841370914672366660479401889762615728723201008498591194439482928135909596330647813802645100493490193133752030631178808499317594670508073762701061420776232852530889938528461364208689474223043390764361789258715712378438290240664847359738975872984737521945597070347833109178625691448615735129683496184624763382786705362122313231819269749911084290762562107398203448014271860729657093985489057796566995793105335566684328349655903271674401182023205641258727994880367235445506708687153826866062322519090674260810390524091726724815408150395857989354663294131789982764008164357349843159891902149765651607370277309578239022029172493269442818898455702639268635606482335733080799255589664131122602740991977809596204845520742463421884067787841543524235943455180274560140063687778879240738279331819769600664340842947120228294378964009018041850166131269889916441375833536159922388520523151074363912208022305777176339834722607617935462919676232103995203240033258265342648086814142714039331913779731884786512548305989072277580703607204349984825037995710034011754009762781329137143689816755855250151759928745124695261955137090515338022807494577830212493218520105474000939489400278846129374383373034781850723557676079519919861477240824472864639701457425740655060103452793905685564204080406015400334204135073398910176154909975054721398885696015154774033498181184473362113189020449978974322003057156238299214718975641538369098079988050689162263394576572694294600592344399670258498999208509810533042366131108367151167208686303125262236191250139004437016414811179818666682252757012574912677634499085126229731604169664686981756645713043896627276326883397485781674589004837584331365946420060456655522856553986962771808319816665984660927865195590000964359264751517274189060717214886053766562222416760546662466279503357222508007554910249448638124358877109466888280984325329139011151189754717656463027226316800385135274849513966997821140859034136764073170342217220670432685336494662750309474481170190898188769700474455555515336248421037053214706033024987907495001815869717766887178389028084417224464002805253461682694920023979186027881675501780391844837997651768653731279265748995592814262676464355172421072839744036618990264279450937237733695793642381774737418358223222207928353378439785780782682751603308280325199773626469403610026355716693395868236693928297933448728143484594312356067287722720911358226086193677346366451023978794544279949026718459916283741800017027898312417462435207185106852106902025770441525240432741740773550074276450080079686428507635940832024172110010801603372516902091113851754183717002704235105275441377310475796090138479975768488911111572415593140567530963935721384178578532166115479306999006715332244171201791222700855248998427567643552213317950858287613482918870867737609755621104786640804502304382522226880372495283385225596513864129392619057857262681743674409659378131312962103156234965378908387307200458795796109485853269912020159706354605874241302656663365997442639825807272714969608066991854888197080829002321824878094028923894243354966180727576551055663630501567498380420471494446173927500423578728850725662175816471327953052158580745033458183312815712424832730931311961946681168324708556773605202924515956379168488606317486298741133617731468532530398308594781190932251289886134300385914699381988913137022669197866962122752648609622703968179104330511443495719035888860224968778154636333554144941297920089005727101081337226448469709117281813188307383482786900384272450184796058113632822248324646228135034960811722083665240335903152020421015542111384717583987969303042904578931803336226672823443289350703729728192095450927010346424926854915870679839834779977352666662125262825339131989701795197698825798744601290979558029162104481237764097393938312601529076373132720869083711589483990144010642432878747162597208328254095636838941095873965999992841029965591564260349604265066058383134204056682404535018629132922480198835839824316647628602764266223557529103482886579453233063186427213797489123021748448125673059325524276824756417331658638248124577202871530476074527384238161537152901402181673407489786356814049972639290248392001842190288228121607039667943566621574487224909366226150221501675655441381524109807451305491166224148233462722632922783205055727820275655380697844719813900702372975970809415221750331131252775975644766737051834207203749454308675183206612804036254841438689472549075903067317253365009605886509933179260438642720581047141787365133818672666804700687023322642552426732138216122400879542339871912560481068363207123808860501173796558133743789945540209510347549558348578667552195950847000806580397098981120629003170136613560828492809532972164923688920891145752734784184290424923218543245983978670457431856766223595385096860809309911509781973926870592326166367306111786983372472922619789536333976010078202098397470580802336639040385775147296716334769972496768758721335012160656412071334258080941239510690810388743225309390680020637090825623952574438732717855022774755344430270130718144294674270237079021529558769784179012942658677061844441584662117549924137624284755922031193914258309279810884807685553710356803754616253518894399828878198241453225768011953560763964087452087085198857666894805389784917449991309955035327752914751804964933061051682352981915709384418847253532414036849610001709910778142513087250729189045116862895257194815528059753694110359214073558018402899744857333071137598284466445150050287993749855551112495100356907935990203445697909459339100696310934726889802570857737918736332094686098307355680980536490922855030735054487733775491082950224293300685351595600671115841600246610705298558129213431680280442990988972346151089454006137112427231747926210837402639298752508672469416620826003730896042280202026864001065713073537824010989839600227336148633088983124465222371960914969371236779908070319890117132924340996936956567833564093035310730635171829183471705100881165166185701663171101222086205855631921808528273367629328603154227536716706603084715713023326100730781102129943872672820806158658800774082729482294113193631811148688931575667285512164636437574407778535355877370725212700567578562163008249048467253674152939530577799301095789185835699765046352224502892455917937473888747922639860930494487659585484001239806939136500120100479199491613807799782543427904487748172141259283249887757200209001737890361140784318579728257456626601302973590524263150669978250314690287539405075096202030931114970618219927512243623040520739418295510360670753343868639179956048535038776060685757252291547625574158793547214550781945299737319169633026420654644203853843763311495254625728269883194062246061048336879638046168522344934238340438070260107863419187456438302502396101190452931487709742890876076036592234636570015874998187107426461677886039953221301142162092735824721639404239856737893863678683085632846355826770265273589203159729460254964575510775851439842915615041376459756419902723244328969836414358644383785413218619884840717852433104046153483583026668387217204673471972775101139866878750036615274428361516606492829293038128082110632563696022948494177733165537709768269945753165218388813722392597477009786769338416901186007658654169420355414328550024092832316781542058937808923762654597384050241747026413620960416701714194965519183442658191282774099076749825757355850986334539581021150930061408860731046250554347118337845259237721687694877567163479223035217899392356715419764317149687239753990292932751305569517026749638007610128349360807144758127847482603555520792605814710500986850110059079628926838030299287321670742286441519095504242749000494138792852527587214291413987032749893921846093035892022317408206289309488356346337905409601702334287683800497455951329504145588985457267025370052216645201511248640370700232726190380339069554441224893808848984096082690295242874819343236838593122294600272650375579320370480630461782700589049448213134879172530056569056947491273602634772954943766960652472672596581318386668896603442374342935795486478832188479146203877207219357946100276037317190118786877315126475902472598781707760895405972336589674804300132060700052545894250701999911083845938677088314379097242734821883899238574067746313113410999927284194457466012625173886532664272232922315618542616215532002146391561799461945374650624110747563793649631371475274624809748348009531995224556515567269805442096535071932055593613295472809919102573635809801634551043265009089465352602286305592462513847406996128150051081725807355953783284018338900055631963505068785696471595583866003846996349084597749628869976987059625289145990825563454506172363462249973858252405236771975120012723076998246208667787260702702969371643759048490069382863869852936337801873728991488898595508834171144715001574466779239970816634859242300198762585465521274983347170778657049677857956159689073762524336824503853067556927876844995590139706899364072124038409808452298307158752234912061904165933557642313104441042648793716029205254260040531849658729829007964878053685657182927566802865675408105938694864327996580902444138531186007196441943999869946056902334421260949060505571877721608125531540771127658843356583055025342677395093378244821285444631598550146119974179633630384091166556097390375883061456948961400331754660626672468734319749579381728674237796692937548583623017827725152095175899187110170554104210734737756976494883583046638928137963587990073555341744392366078472122312268001701969395940706417823601463649848144782841657170632329136009510831099177157380204688374248294339058424685813354382635051905109156380598858905084609115790311452860589860519341560058847197209274513407996174887731513765601699987430493411892618237730833316991389502550642471570462914702260839514643550528398632106929616104458160144527484109509192710767237724431710160926730260194989726863859347100028881243232330344508859315243559768902143120802606965797969355186944881108080598659779502100117236993682633712126446733574914771779145443140376127109685958748735495640850225206662603177940879262522317484808050309288805061905903609960035923411676496711595837435457745664397148080445849122907935409189322322009463053585796971750576884858835696258818086629161010888932058779304669524512058520428405928058511250636126217076635384494504277661239448275135276451427147087205022141687216743460942655349208690066127499094696518224896731899316115448319087557605414912760074826483937433694474491825090253381731845666093557110967183989038934391363316194119184237852922355800456236335310238131899189409535835802944745686380317611058818808375267465892156674423875758315444434441978425911726340113456803199086036156957250063146105505204671763017206192571086900950770704394512938051134098548123762095485233142641760486096650139984858526764886851694965972335707528326147817726390337889537670803921664994336542566086785144597825327553384702120913693236895138244523345329087090729873385294542475033863974902402303911967774783565779743245884234124615491303089293896119631156929624589080846191645798351486070544101679665827144678827830106288246042346564896105795786878697285126016945216829353991894981330883041889750646019838212050783597617543310158654616480601607305043792917432400411398059221087868993597554357031260927030283000149323326438207897358952982460500901513679687607355643805258136858709964708609222516292331898401055385799301663808764480021929286423192384977962933730854931810006070905849240711058015452593450182684973518801005980550626608063778301459175707862215260769078593897230408195555708655591215344432741950081089081551061551804179076382522322625724652292368041639516351924572010409703962431650280306261931332225746156527318671125522176350834954756938278381708276222239271488288292888997182226456551935859730941251077264469214327545632476440090433906275875272858399451685488601899704945937435921080745792372742660950460222185309112886185086249164632642207461248049359689177773900168338813396932139071578963695477201561658120814106106426205704535146101349910285230039794879353284965496743862702389878055818816431480562132418522182919109898151003364477221412223129635375978116199142645570002194846202913514204979421983098757594273469542314531909122285277002642877096217497517941602052656708491893359836539839848481159362504084984087786757649003169154307340780070058975695687219303504198591675367839135621884276565315318174051757446697172452545359296018677156354799299744933503181330245460034927474286329289179401071267853358755334082034460730219498224314809099837506739010358367065732730075428719548197856203157600503009946166573929689471524697092595789213097320051182275671192636980244992574340965149574407304449318011147885098735110095494357409529628375414395664453886130471707880444213682621933924971587049376964894221185547066022135294750565683892906051933475550410474855756274322329058351178581586182476634151075578702122555038135168103693108979010631165160491615244593566052667978934795348122352960351021563972027971757224800445180274041647004766280607788512091570505109079615390037800468964527234166596149793418659370103703789631373083802197100019293733630951300395611758220966591809199590892467012776184356808656684369003403855700828954694380449491688977024285942557624511710519650010618329615214737344005976721569673815971555226986483493506496043300287373646087031454233925720797632581529196610167891630389804716761110633536435309171278420220903714567950555795374131222294270676028850564294234299087689410432280880118273224553374741286246102114339709120241691228635883954232674163045729120695179585374028915076634820614603651310199966416827951517779270167191387354393678927950236872387647098628193674636112840147850365266324772404739111455170623477768025813703467955656926490587786226626610625656530519764905376154907566412526198509674585419168838985135970636625382393242987206155932227338699897784605020223148609253144451182862791218048863248871710101536445651787667554044930691532699776447392234210510781767884010028676486833109481319745440348983909348650489137008196835392311062208438098154746080280324114018475406429601655967266349973008294567335135609295360884660633258892134955519568588292541522064264612193660664595491955234101806764382856987181498862982849459076096978253271723070384277703958395327405551344533960629319760118412114549215977437736496263224093490960143736149221284583161594320789125108735486988755231059751363671878871928477086860582299836878400692891040483755732508008945145998643005215215822506110038933101222630124346744618335916214476085458815817731687372225971411849844779439148037611818685042125531531819446618630885423096274091954215329355794582023187395452129933766689689415694924685263032669393587206427484451199461406035835684138994176089424813128155929675090284330475022591420048262849989799021451106095397665130056474597350800391991427693187005368881317152355057729494059325467303403221879481910835739383788025436135241537435343012763483132492992580395996071261533991111431458241654186742194857192769514393063384447636175137364478067893101588156238271862568389580878111706743124749419346832263716352346426255567520870661848393247582004201889153877998996943603803240892423227604821738813061296120797153062708012775916236342264707219169780528975956218282181075974957654755277491258582442134613178687350867919741823152523547208252420687202643260122012220511888861303156045805856437233023968570065612546867183508524279619127153047017794138923453066168368704319950463930889936402213723541563025885446003500347611284750720040331887946454165479817818841005597291732066090842677801253078237748322071543509274187235097878728722340118085121372702779122898391995788081135960224252667295033316247057164488675802708100124951414333150240483026494881491403635946049788840363574114252754808463515744521478917486836939287662979855054763964759890711855590078053632141985396929864424546314322865984145713751040530554528498118699658119529923725193283531837366108028214764004939744417849404254411560213269492234749846589795527260422496919703957699730609085560930868953950915457226152636866522369832471299037323345760542219017211146350143504835061650184348531068312575422693754310917033367359468246813018911903087084695002810797607712288047483517199271728270396189568753073284973987247476144899433622479021864666148768742217952015381453958716488511243094606597747338579563803293793122351834877326471768923127451217722886600224994230000521252831690572790919747521236684806121272550121020454961948877606378975616341069203753313440391520041411191629574747610110034868252560896778506517571920569137613951724230529044376905097917129128277422445000009308738983182255687763542287206324966466683668486583348429707055998058203526910982420337824676005724690767284629985799560444345796349965161529750562687657339209560474245909451546239425534955786329798717334826783135133983602074633089628272672773018388629707160147346557782373719915009241052888605386040813564628295754509862901012226461140460165719211248806038171609551267207647746725926953377777687091636124337191352270929867714074629540689745997160372458979927737847118811499314758683905598484897707677012814695960425177567591426365800243224828816437032776670473824543529957190649442203631518059016928795646782490456912528184613901599776895723974423752606492503836722395325752820161228672679758480236804852210948682000625213944336933029222455852060318797605020833790066358805306444065479711505809724315098484354856779842361422904985697302726581644094470932152161816519779344963200739971381790820000172389345725522685768809697158911213758311352455808406691739163223808041388963323577178066361688015896270975045568314721603138627342714233869587109994975632662358518415288266968293477204135796229193432709613996023622634070401612641714141079934071232105798656128458453031877235216252430077376515772793170832883772569192648474754667324278624306107018288636350375145739401801349496755197140150870753945703004565291114276219514328130340971603915004244163903573138962684801033361327196157137849108332675069810192077193304083032715120495913937951244920724436252163409090611054586070313113078645664675673204598166828897382112071141038826168695534392572485404762120872734660332525849459430483695843979653684190047079964558295298259106531030462066823894489893557127045090545177538708470070594219258452282617793288961586626351578814222291698287590339233139491028794855215704984423880448845231687373936214705261329882250032192572724803682147599529127427928762221202554210047165458761531197530011378928777631869757355965208073525628170365071077931600685713140625602704535444003033892579202799763794821191620083532661802799338804475383317426168047220838907289657610005798881808247891802802672912183418353548716030388022362186243156709147089282372334465018011434078236278370260499516700048285784881802664367943713598364865479046697068051742743207038650704439702594789716260506252769122596445588499323440983290394502721263249701487776299299982258157309052397115677330176051948017406169878475386911877945985205087907336724206142736153831569491079570687163591696038578258555066397594648675959612135571337078595967311516758185074550284252782861548778565155392496659542561335137946718993822931177218271169324435977126004626291729253510134465226238432259433031506040754432337228421922976548697073009326573536778054616468889639110536507464666066632322587989576358324852886457541065077934692725377131777696744792266831612880688142633169420855177747105857173439164823671875006807157921830353040221725255278897979977847581337140151474189404775083644995912058578249555959611916074777359494089104625756295501458914318294417406532475111869124066538689804037260418825140149736554191416990032450065206816531626832236605509209314376506420189751113478773256117644677529035320071101008390111226006645009653108200784859043440116790691035709345628550069290669994639956490597303038552662388023514502699722307260245149913093073543004765613257648168859442353739208731313117370745732306357664016935536479401620059866231366228958949286931832960077636364264369485531641461007654499727704804281792044213346835435188233265358254017882327168866558551915593266434804234465557124214129473299127781747118112276906765146496902141346035364893269332497146038103521537866058783571392922329284289444069578346265134408970250725981121959494698363467009866163465968060383398923784497847080687279521727323646869006755342772346777165114698060350524060656481401019635524013876662490814278573913364019851743532132037609286087054282090552989497384685465579047900641208185658994445594092907349371219550840435553712293301792774042217640418982396496965290599731407670317441949369572966287687893742058327029922484813670131930708965734877133328671111793289046605186342569673442001319629598579619809737214899140597705984768798545796788253566512466449055366445155351152903447507686805554272470091468384257041834455528640587093546545584105537016709801015481781072043342572109542430832505440796613912766672801298723593378998828269812521161043647510220124233175458815744137060765752464773541244872468829376397481433644208940325526961837925263001063509037210771361719345482802060299260971308088750404195233245760723112095375951718239099526860823242689159687157862285398277556970830896409363629888536078733636440097477816060230282448015635931770786904469979023491791949456924132343420523521680289458371565065909327879375706492023547996258624582156401242699646301006915247966289674067486359474684961773500602061470968719529796396142256294896204279511840917328837083763246024206560641791583031637117554612495315776238544415587915589928694181811878574873470747682886043069861395210731140428388781417292815875139667688022770639380995187353747677571614773805400640087115579262468331824613103517107577380132765450041378095801477697676440360912232310817404068420410015745502677505184788561976462007995083800803459749678285385105390716762667484070419610585061125078049977114679378932197368167990495074484730729326193776894567620276766075222268457197125151240997977255154130312038408420081507183832145076079654068809552973471403836845674153489619608767438050549473774441044735520398742982385117595104760031405144008658287097796720100049889805054662995392397018902662994905315020780610539240901049052466978657556037203726828567157191745076836846507117920111726684626390546650718469618812074069614949275641943917495835655012083007739074290368909541230759109737735035471812068788354968923646663880140585294915364882696591591548061867734224747534085969235080595981447467580771660490486586444687293265333855013711388828768881046128487083099371588196867053697568455652613609630313764493519790440912303021315376007539296182563134780086222952424572108455435706530311667577002965857213148283070824400371589470757293597368623140373093894608320087308483650583272910894630141906476393399838639753520243737025340139930631860266388219816874729191977141703102114582009252162521589280322631258176188169566700613735747509883432129510539169893983302573841093955358825992936619891255275580405529686235366346147099026264478285095396330063118610794872360573981636686865846953425951842161126851545984982380090788016972949436308382246360592383511140399455749735364687947407601233963981965594033554057108140699106954237349364786785011223630567817590370403113293662637552822188115597534691234497591157886723387414391864008099326265609513400104512610167452448244563241418146685540891407026309946620943706066949554552136967192033103200228582406871955366208544114382793181122703497767700778985791459739575931835593311884730365164849139876130280347148683539924988011634648254666446267617592788762359742136772464597449479972781834293321846134251840181102496114469575734435893066726354244420659726504112232625529526392278984750410682122877964810725124812379646847394584523649172001865590113714880210632763118944498729208389226662962454522321437468437054723939887177606145160808846616043581365643712865306590025084389133326708849626496482081713880774702180778957314892131964264114848592578925776691478945714171072612224116431431119767314350529389573758969689855388750561402807030336981005854136210760468564124582063196494314496324708448017717497013113568920263099796767925274121085383288420373074841328172824392535861777675250404569825288741510627031585013344479237015851264646618328506967074831346163310629187553981973544456741378277235523484807317427788057916922304440831231732053751890518420772568913908255649797884796404109916270733986133001348874835868094611269064883956857309283662137939105416102723028710724200686978254974941349286522388162376717869946104844606645272077972577375417584791299725923190830027126882034116861351520181785042339784443783506737647498394596989468400304442450975518102720065008304075125959910156099747676192794617676459054496453098519651345626690688013144614760880338172313578784740287763783610718210228815499945660873963149069709982910061424770897592353607929657218286687405605874769580072577380708556451740197584221972276146705224071699992993982712543994257493234468420001250464781095208427022898341095082213592887882593563588016054553329478052347605759873550919682399866115209472868313294710833891116242909887748145225775949096581134793646647617301300032574273849823000689708590148123801216891920875388046759008092776613562530983917526605373119891246955880020780806347537879010509084814608226039688127293930108715086401302531031283793213099562102338976545488869219422082787585044747684988054885215712651061126834084509600749586769297205463538071565205916306877256349794324250106224366845744122569127365312623327918810316368301938289341618118860347249421848545328796445297767568950134434282966596228068690444058590601171640650595354540671438129226647526041549608177376355550564409705317835345200864674061111909916989108640843607314357999680877469331552858319654393921088013635509186126542399039300453615107956654031386830012588302076517684900840814739804453850706131806700620895646785815594130852197815707827193151277640925595632272091082910159046315959132871772171098411259691479707120422419444265010949519591756420909815492554912741437928725303829788771797467930334765374514276383288907770415849931147965951403145450055175122999146095713041088079235379591351869262234207064600113206068454569109438636230550296648746476279719931297589926942839358243840157168797296003299680705718820722676762059503367574138526674441931451139806311186987041553068894157248300228567629475649110247662649572966814868241870807883372840109771366420940348289064852550221510606131923073755206689174922734136524586304900575226464530496030594439230100990424553457513677451788334917093685698505163445823230553302887647336322440546064918855746568410571611625897950483116616711882979661247563073079419271009862059881726560098479929769057304537066017466707395038391471166157390314796803694021492269337717303677001382454842807286448097850038313193786221083195624493470566540844610867297141547847562997246701068679637721100939776568852933516444193733456821437000531384986733281590658718522466637590397507256289099785112996012869767550449732354584493700265935620852683293697038672543456197604515650776561668874687174953149364759035390116570263035559635247082822002382486998692563656925238426509622901766381658333170502435259338535889131190451618890386006497301038236445468298310926541142345110179366011762343498037053954525930300622171271668011892869315671079388628191589266220790232497942942788993146211306438017441478211404134043436314756395730292816160101714300347115219155229659020141190507006189488183597046061049467293317808363630852641067943953187571297424268489348320480590472016764556330689674514968974660603697373898865499788489612425825940657750124322952438088739436431026855611515885206530324763746192960431664564777699244930122668388695221717213853102214540553971910755557677549902031400051799033886362089208769541868063822970438918012011882162600164586031813767293618799258416470142025174216209050594052232089131809585320066338309242795977307143909985554042704563543171297496594251486431389846666834420716866000477217180692506306569960960796748771051206928107484120647814041606656365700032287358016087880441549854187476808614458633235023742681648768202146594362838168719284087417145772867972949127482791724832098416664932537551434546937518547244910765702326820077173532014665024360701281950594512262861349881620348864652423151363212207651436830625538460041133348090677941377380280977709416265638594277062528045260742885228769771444090629168787741960410598502977013112407886553461175681423339218149462493967004013755289018750538580158651467214458223807378657804590205934024449194345387450693237304507086287104555245601707254431980130488030880962437778341398764764306712005808358961519141700156200995702084383509151977206964062389656653685547599290632923509430993057212106340609762535673347964098255109548405660548030978969729412203988354389889735003700877547857033456186238880293726894943748481151159571817607123026656278009191409431754281606380266938343833709407905769397585149084224305158325633358330501371422090323256975762686411726389830701414430547315685653436574173490923994687593947436252077778350194469584735085995179289942489297323181629161121717688625226502356655155882688663883449333819119571928901136741922617326781792721878149875787120011739722150763323444615162388054968882985269629421563914710327955738497877914502407966812760371585832879057056138783624787492336864591642658364767292227349979686014204016931895085756731256573186940869702854964512982923797828826427831636237872215948198817497124608812967210404242160797641630834160760573203641104937304114035335073632815134876606685281493772665359483460325362136701708142469994693875193500664123394349812910962451212531789296164670075256053200292796969071478059838031547008920327937254921211937305290013685091784278030181505732371494833229846231044398815414198763030864129652545522256241907476996255130121477661836675794916791842082078185273343775447978144885179732277687196765747283549841264209181996122157736775516572165218087607296926782411179672521368986657645826109145795566689003181819301029242265472004838266379926747529403320986003606546128113642525056018369403336072468555703553219101666676951524450052629577824282979543899891927593739815003583774669682015656172805773486807528317602473020043974754071654431311355466086477948262451046282941319218273234943693797999350412360022452664878472865090877614274797215654033458436050950907527873267364936950240791081003569600432455128047528329604601643080101771957828687857542257587192080455016063678925885305161860722405970249394079672235806613482015724771428414876221492879187943813126199378397571618936664333796973213843733617831209918601077472535159887444524328047076304649333859910623057219538799339321192152054273207676978065789850329916636018349088936368276584526769180196506322310929473914248203766048999028609639018638487164049673300007019167600671976680365986252548743080016645576253039553838648745911097541653681782098917058865718084149980235237192947152165080857003623527594385621102260316797204942998163222043149755242164784617014048936534889600874080976184342629613930392697077437295946469089470579749254369583006897210653886232261027557967907131473684770407085925318088962483888840232911161828487222914772501143915079882699100289017014363136399647200768897087083177397786007553334638962656770682646258885594514737518282233031072309688199666905666857734073431992039174509998093435910994568578918306917220639593302634952779091597015833491520328408730167636937735765906494777522001253226842694098122001717219593812692604823678230338123102178739004235946960124622190036048481223270648762725783144691258074220576310236370567888048381703399322596344868168769394097393210666268538032869308434395354702429303970081470049615852422030074887576387331936147706431962204043696218879393670628647986296721203351847526648571039389644740525340339502439098509620326035873765731668451524571618222150023513419683281299598913224159375063806000013873072793785298263449228824138166698057232095722480948004928937249261000834405616563443540937784424516697717723323908546118541296413177475519806558618127368999254986530021896375308833384043814031514772117142869475851621800915110701487818220409955673276179674862356639087854549242147171225375010198147431863993239198999988986655562482861637194480418256225722664146211607939885312967762923988471508445333159638577880364648029890078632566423571920253331283799438002066361026267089602812785893553244831032829223440020788467878330366838929631137317521103467420419578108973907680711240062433896714377529364831391639237759809169846308636948512800162585277690733913090867029682432025737037083968552211239890141112112503470002832060059986485404169726765055643114159537873133329983308269052156211018757445729025074494481511805624334675853353113676699689571621150489622714738190533061209019238935145871491675460037658457233244614075814650609206896459046940332360455270382106008833421340857845476985324993070432258934312795379229996374754104348768855760637521313194559756800399790897752763265617492384708524989073629941594664405229643873316758958474879069043093666720328253021299068213137787187049655915240436226559588916079271252256458921993326165033983556457213178549348208113987880216081216983630860997490558135484320823816174213952612424452206304984725021464986254601842681364177509967854802629108698980307734883782947852442411281593811323187784801734248316327348003634686700997170504826083532845051065420117473262253552221421480434810494695663283351568474108728463163042111278888139608707157424771950149690533367356735766129421194570119885532796583901846202768670326929466310686845573845576924551798303048583916694077186747931631196664254780033814566069093228049162709732039602637340722800107775813778893750885617770331143922300968513023324666582406725946993944839199833611785148649897695799373027493386296229982998438354859635546596748269284499827261441397367629173177713985017945099904004968918812837858411675414271848610917076332307681848525840545997863692567487894721113352638235017374039104456570324880899477212929653089217055408346171046177465136709264779853445483817115225873124399629783646937966089022386506060086280623366308931662718493974292415992147754047406367668568972749131187018966831516917441555578577519469835163648255497697135986972472080048236331286881524979864593326603504499360310171281468289660495495175519198639495443102359951876618568306674135817779643930461293187047198663131986792586321994601543836867850445075999367154937361094180306291516395183733139563983150315452146691446646735534067542573257892965531920430954609650448297444184107218898773478135076785379617653977720366026729373714991701423773042660579714051355437141165794322888090239388152735075219427367839748219437652137749615044879904439540176191064903411571748971554259934809834059401927914420267136462852991014659330909099487677895601494851054730098676714063921110615685216584282745588107458365974753858954922406392416363122883917582234447018595463814667390085783991843227506067017766579492534985155240018342437762324331808585967292096447816228282443771870918461417278600922414936420995313712874476799063489114083529767397681668452554778412849446210202148393251761305873604923916602105409467742064715703504710921565631217131515002664528546075869282001252641203419787570753787010890378689989494752390827928257287805393890892157158222959699295840615738092255536823240326744059099985814546228251410476031999938820725677837978565074916262359777599928255709267255967925941279306095971028284851032227555130713335407274376074862272694960833565081202433027435106543877826976176783778301623978870399192822703547739467088928260399614016549038924674384297438939726901433933530364724295423620388078087365300958940988087506615256241931093021326572798531983095163318240115981038510356124553102208949404484861877891379593163968308425756942534488801485245725892746193637519160083774410589212406248006468693304986565410973542178763133166103309761473204091178965147024763207409595420175357247696459950489503819997257690682027669485671952195085311523170510410987080713492942033830316012969173530020551805374066335032602386737983553509338261639077543651279246921806705805991916010787962935434922077429168502977812988304802934817361198572135019110272643603643892870769703261523343575870105332822354716990526886482538375240670301472640496238456988038361030030444802725119472940217507546152477464384511967439767823130334245882111365180484258516839413408155064587585655883719291398153238548503451708096757988354169971458396736172158216574800481047181105452609916910484123553998927503231067776720887919816824013289270153793964587628768865851485150051619983834397395851254766954016723311346115946979184042440057753071306757814769632215842809023902961753906225890039039880586216131770155328814648354609088857569493468010403575179834159960329726296996609565550940591805309557241417105673839884471701200313379989175523019988350914350650135231374040684843763244794915235624970030689547363855428237109697572257173496979370795912911769467744932931142520105205528744263340661766192283893862249381352989198412489083034764154194515879109806057495498795895935426638494873781917071799334848736518979637719635166804194731945144592866972932166719170472907459684426401589197220400895165273037493996018296684351014760388709428967461487064746064226311691455073789435123334330028907767169390746574746019624432265636872965917653711833765379413029642843636342650368495852602096689606127187413611603615594817771786317635886493452391938676598867143748776311587135438202865180877584383745794675595824252346247195850615824351293487221166053532647931437457889880961964754061274280876264074628939073703500721964571285498079883492656627789509539244412072836530527822549404879430208889783215508119692451953099925915129876022442838800121287927033015077737518647273575989344151182670863320072030046877513348630161579899473425382037111091064250026956417764266263561101252312847259572248256683274170720363482790665034373976476781284604735444098650101716054592564214235966053677980592451249777555665113396252258446269177999738983914164503822583112124875903960742632554808063958904483327910498705737159518883232306472685617565339055656375673390170742178195984318368491123669725363869310394111002827348317413528852996954987855175460219405347167498197944967351152794805795727179387403447722502223831188493879978175769097406072071449381902695980818105878683463071891360078320180225163386953429185113849804235195120963663259667245702566297198030449585700579149893621113138779065602597911711417022360471189680461771107618256702064149011772654863756337155708866602596760918097412978874591388318718346988334730080626529671128466731131095000117544930208924442817726051840532407644196687995786331749866710127762836231962517464526127775551914049504776325121141874825977412695165155320493188454561429552221251088592452313194733964003746450738873415837458992021651613052129144561982837626534180173765422957526293802229223038670690137365957229808997608293186990212972897231879581715700530173160482619989065007759214980030989110499845357163324403771301479855483427043329212477329043175945730196090874258567196838180670869753152299353365204725894288368731040842672403067574995602481879968958526369904874330594002839490967085104321174435970306375519811352171482621312220957614091231541149433474528587315346048953378728322746986834967638641558784162345717357996480140632368520906032153266060152857434024281931327646062548911662680107039302061006263416365334373291853505561393087203190479231836419022943143887887781859097654393681794102146361499967553093769636195287010527537089305581574417256361173546929312924460037753880364333322395046894451536302070952546761187082784765668753276577696259968610876817705770419590036856907189075393168295220561750505136598409618434646106473557376131286509695930668883450418056367882113806055739078299983875507801881610560989986034351620425639130157841643188975102562295861507715551782713730139448205843491058419319640326451023914682719890564856110748570511141504145914987017716261114006952589453127635013256785405742229914681355997118453438518877149458001483074795057912180181174825402028351892268682245256356638137684595951360022375424546409668060620789720930173997778522797921637881402841435817797441690192463580973863117236842489567633477269782528143827851154431339025073320364829099012031151332423526093911578843983000525706205553686786307765279255236538696712559332465609349180053989125016221501025053119389039483897125234739552721192224609696581557684553222179587901313698429785244466389742162159856688043203446268870973726445857407871974082149174557186161706412925730261058657138338679829522190574195925466286954000725295210755562895871706987192644278589623736047078293846721407393517650483140109825256545453785179611928554734300260364006173328742322645843025620276226444261268440273525731591077467747843338564067894837782133521240093917526149295465006128380104655910097834688996065479937120228474482585393887407032298710002400732348041643229635868235229553572228416561333159752252612266165347864608430049299870721539109277616195508859734589458289783829482115780293577997102802661564807112265579433784229617674872397065285643979863253865343695278688252764155451370775782274957928547665562419146228680645912701844046195799867252914317809695340721153663435437737172989556319559223390263051697940751307445961501121054285240735079448667477782065211548408596473406845852786642382652770523925054845002780427148060742454777881142725400379421918270876982093134407668522791905068578762520690735710936260173532652687789525325186312858524392762420891317224844275417298638952768769643648040394255710449662755855942369893688148936825199455329256212327705302491874331123903460408753437514761275738172731955069616118967104698868818584229221764033005813541050103429403111866586401240047351469848491768605575486417886761888274408526377406899247173889981297474183212974316699957699739458254207798739216063614919621970878306281185692450506739801202330532432515591049205465807534840273449195970677167140025977999469005058327316424956512458709060725929029758096924213184533149110795533895670137053158101440879493367000414299592852349373123164654770897861615455195094419604252876855168245793649740908618413659770406906209409214444287543909480146110032087882051766882840678668222375098579195353504633136705991926889668815781392438935868329758837609632084987745839660590375065582700834139611303080441404092106806263997485953405673211148238619957058932927783524315550679497884527010768667728837376260787514782278221321498315709035190578631005060818355420188003841271460843651505142788747428951049093952464207867840037692503908200546293141598405964425551718357624469204933552641490208646325244742352583078114980071465144293482085996880296467193583789027790585486536505310606796387014989223418898716796966863249873511672196659294184481030705930920658737605378009636040623705952241143235646780536725922635822524241757826821103565544097166460662918476292190107593568205979389486049278514463876051328807163924732970732511946418329301917541304077429668304993189446219131842031388831122159833843960014762363068721806710538905189534886647648501707112948756989620977930628904582030416660976215446322626623399194760181069596192619082047356957623357887223102692715360402119901351852182270606563825357799287291094183185095026856654178048467342412508420371415597585898199100589993689048119805929049610878365772867907893069557018509010008933398693127703841734029404893189816277111367972507482934025233201445877550430160436585126125363157248914128843105715549341358838928417798339442376975532927354931517426660107018217578778004939657204721946873285098719319351385179452102085341985146731793273439263335436752355853494227321321744130615400383280510406595905336501493884013673654548278341593905844153113209127451414733639186459668415513890298092078894883400044097387377191646305879078397279713311071856329495929899907444659245237430134425392158266710861387824455761191023490594203348636826120465883327874297503618724653299118875963096216949861892221107400330848597179940431132013500059412198820948045344732533844840280512711976947446736092041874945365637489742896559308099545313942806088109167447451731966385995074803751351976285765327120325849335286251273064648405254004861323718524089080267386825473593180802704220517361321433448504334704443233120304527758024774639219693486388035689175587109180681275777459729115930732407187999720506440987071978111845177047419073847097179655010960001551143359512158478561085129235002551858575777498346808380922841814787061292800456741765639105319798132160009231278851010817830142537930834244406809315070969692815554982443979070705610667545586001972901127307837072193832870900367224318148048572811332072368464243331734392738195334331396724458875466412154952837764145783670269636652491444043946798805324659148653949503860844811030597920082651704168923356650789827529542785395267602355630492469763419480357867094163637277538741731975022828858052624689959115851704175095508707508950897491450653708990743822553405669079096602206007318258228636140439568977480724009166712735507287147960966921138611083496447354964080866182861434699832991664404603807007946904294110419687388688814796377557697077767776464786941580459560217084093516844747049205044491652805447246702890442363274161175213047495138132992329853800212137558053300758056890699756987198544575692271050520272929141159844097451016639044711605059013749669621644695411890920726453419249089837754614721709443688854775329913816973079320351220833281977104703486096367047694532572683601811796489231489160101637191161565019115554898533485056541360428295056559024821375711303548396964505251829841319821000208912842890634742450644163862348409982475622266122445640182484281376245012273482430915998960146471854869487732831705410960800090185519722965416814224275893921776721972501285376086611811487530447631043738624276704383700567988659775784875978146599572346045812437583830229665785351388292304626243870961732652363858221901372775779410013638039001454082369999332747244201489506818483385606720677506426589701763124838893623945741499678136142948981730030336304763176896706604072818741655390032797621730985805548048887142803275630839055112524620845053496279140565715492237565805374147475619568545546244508981407788332445979720886428950766776224899167032059826390906788895627128448316663853752638392080028015359372946891009762124858926247851833179582771847411835991501624852791381757361085592512232248869595494800011739797164329628389796806865377002458968178248270379866438524056052354832765294302531634995176964383325822385115209010929612967464808639472703238075492043127244797081401807888573362508577858124894515162141260381334453260714319587615836616667183195231837869892095399198601146477082646921737328185325430711143013175575383165550718128737975128645305908890664065227068168104450453655858570462468197902555659545151727149472105713833026074344742178703299706084050636280529171258655217366501463288251605682658837847814401831641681214169275432584615753640576892308828882114010634862990780011185936362575351972969851197425356881236082012615409428627103648456103266561919969507348141516366193999453817969380013088464312221788672441191515942153774537732681339177957193445375962950218497328796482667867031543670427981519085210810420982078732480863830887472720869530240387468227876078130551441427410671655998554164625711899430847667362708818331385546074903343832643473618486287315398411021126509532584145388142850829110404301343458433873163857354411444627504445215003748228357755519144430171492601238697245351529636468693241548756265859323015030577948679258095638061444377778281673697603234297920818910580250801622781528142035179676251527850311793372798283296791568713139443503585911796758852094919786740012855345525296963188846508428019313746115189267609615105112575310801711133176332230333721560666234950902651174143321391667871249311237247918784699829142274143605812047594355531055710457358712415833438448585368414281553198131500054724995772132050669475193076335908741286914180320407729025898088587830713544464434049384596690746189637543032718664332298299661602978206460385362613778149762519749674630747788885830574990417275921725438636647041345034369960663388274640740044276954787012595152963143658526207857527617548900131711339697832435644616257732515068156709346940474813631989048722112516124390783428904099137415816719024728134088924198647513369566957042041420816514443248461940816234691880965372349744837973255681808972815006608354112429063740245619259019358987853190809058396356415400288750090734437133889065148920777840288058311887725214499012672119682743250857144523830360533670897805683215929206473658132035635819573130531122484299135347218696878827149467556711799281730778793799414878381908196655480366362357787741421656641703079510068495801549769492122379485479935179761111523175805647823505914859681490079298000264145504982669898794782414138624153669189244527596572969635564368853584290740856991396381495793566153413099475597625284985333382955678925941155160128520748458100612355960194598930635810814375787667438576945109572468901859423784457600637130482827944925414645691422906877508018766237572395606681099709887670271104893865406993416257817260187822250172787418323820023904987047912206719719080114127266752184600044181971604770001717830376333586652921128530520670908969096823678922605567443518579069602513141499296808934725565906658905145406542598813190657525509142495505682270495283844640272537296684664064604325891085068983373719204025779878102085032889220548675043728781982000138638656950080251139988567613001252700139703371633665436834663225356502609052418447076750913515822385048529217197400391728398128141269042985594703965372762875797693281055362258516522191090667346818266036576676024690158574133905990448362394550031796235275901170617250252643113280126858088957359208775941639616386197140256026296719011749331436071283735007942167926628312758670789670488984822609623571476187636876275845203174080711283396828647770970636986214654271777457927631712437117790276087932238237914039276364912162700568116394889225749488213501661703233031996213411044481442645982759721432978845122979284077497678738634931314470744802692522790161124542632286089158667202954041778871734397235090825897975749784347285306191143728453606637815625145404280281156166828302331295547885135712234998648902967924782926593527279072931490240951962614283514770958878347273928502887839802169297480411825404851639305323833014769012996967016597513595192551335938391128174654214388886914058790422551076786251323871338974306292423022041752330700905555085367169991089281842099389519452364731506114604598427385256191096410614718540638224612632533282314245904810493413794764051050068674798686539927090081273073281252203605759024789986747854513734657090047836806628765856964171307391922374948731573894754542781892120751198304901133665168028845263502498852561940101055949235618404866862281235410298400011244303789406477324630608541399801038678474602269506118738311190825217460354573305688448967773663675584180645502090424460415474468757878868358266535423057656198731150595881744060061470845455378156956717521526453375421259634649785951084668916719708329455289405168674334623865837471602037595088024253655576981671665637481780712353706544874215011012468637759381511310052005054128740284889781390893435853336885516340802138469597315255651824730229070830902155523648322254689014066408797687360161294293130434839293010314078696865960349331354571882038652366208794674768215365716965229335901986424112490925102728648024028299729837802548915295425245349769330112214173627915884674908368638920170341295695402642078982155511655958552465181449940013698485183430013262931014326034012029319312927188663824297360362383417536539626663925531338226941686926566046833416229733046044660781074991821388363579699190373531503444314965215563620052062776292594159361363609328139698369578067390186175461678788984244802540943204571316703022012799651555320918349734124172503573070044131987754281395075011299251694549607541985049664737260197893607800082491071760027540821579872737465440627184568835599931849705762178979109229547329744319231529247281113286735048309595619011593416501356124297702734587869874157039720199075780061819634732163219287982238477684325831886260057564390933790991940682021526541042276539882291355696578293722418561965291126996287874723871631789259274742851351490176527857618346311915319641629528659663454937226762322318320027830937744737848759738506151090229387408353413277768484543734349712843207523496814791538293835127590841486741838789237554853882868026717606658326027547048059252501755866197786247347289446144236313319895804101016872152467825022833914211282859931991391380472140493008206951827579271629684600687644511476359413383696522640900613470187947400930282003998122728174387358681404628546623252847956715908379239626042041891844871206919495738630731349558770030726650469842243947617271694063935621876527813319900343248264067179408094300083283013825613127871027620426435624025375776562508441803494720566466886734994507590512471479984755007933291920688651820819329049029880517206050577593811409143805958514938296902693634287022492251616084548928653552330498870555399097380962969461058894679574414185242818420435376963017704024543956056441984656241584329322782452867643626230690229267229382680477973252117356463800037444068570484449540271761539266660286996078175768447789153896700390445299792385637291441645598057071486205538306587546213239271207103705671116725472191541683020187845807261826415002927011919799846560026285602597768397272107434922553688939622281894788419453202487909293525785992189557124827029127090492215137127547863578625047587132111112533508638721235879404440850108322133715382457331789024987270203572642007729030220571107713596681998421468313841029269210240043803198247254300079334803372976482689583500454364735845209085653321994792982425793635370506193909099203758053267221239294315638712062175288768580446100082741063409724690512775168626272056481526605457822692380719599196843170324258950773065357907376639040282963325452893042612241031336417429675118150208860922493611546505431515147851057356384277224798319332962353570093251603912329082482286842040835880688109145515931730111273220572951774010431414917476313348189605374350401851000671041305836934562495780815226867731210652334144714631741383668257416079833605732558105802325280082851350159954748089663142830144632178348658298899719218660558289091050247081971229858670508846095385088319384656376280446038694089029343160896155313324698254344750861797641242858709884564650554421229448008605344613480115178213828214865219399672326302738373198942267158710161920104209690761861308091593181959790501498088967164811515540046880372110666468075110559666985071878107402582840946479104437768602636795208451004965139730134382658404301252988954378977310503312949931382941303000551384820126788962716005451668304645152159024639775712252201423274859020769893977344308391889056964674937264221721787578165391874473529906381149674188099860478109444714465003194289267390350174634059667700813611336262033556374238154446353231763116697520654063089306857277600681689988222453298797308610760812992448700720728164170295612609171531600195732451609518875073146226750197230374488541513063696913415981316769542464286258380524476001169550264889930615692837469198858831085980335816851880362246665631309414452689313198740197541322823758175498267580086142533178427296068460807439108452110507668499843458498726623887103835307602265261767324427773313066232229320922972622121679902588294969563899712348735340878755046704408937105590431166453758605082017443029623942506203731107869460795781983722443164781560496307370265740958150687345777271314494173666515089028553805060567245745881212753210067871181288047314709997853364670719866040979680455267716030917188430470992315233675058304472775644976905305003898279999616026728364682810117658567570166783826796086926958128328389773518278609173269328765954473549261944840903560411681250001336681322001411020438866105211182182027351219081058144362905399713737588541182255061677033611046451039965384154208071076777948345700526795488360525037603015826699211361868337774842602923858650104868792372632514321696779924149946435624910331931838807569725212405684871457644452703110158551961571267429706282476066889020622667490844645866217714899217540114286358095822000369409913288802130993506103485858130613159955525554751293117231769149162843730756025121695733621188325136056024403226537969895752542996263986863014963868896530210971358592940144999811284405447615057734099563831217905774485718388160430042042955031312614965907337766736352583995932714492864449642737420714841832024115571941461280099857050956257548935805476534682386569648334899223055833462417627297233578301919614329855225815164582061932352782708745568431814302867567940476479427302688710510670184202768683313664764272199032944105808961170472378064029945269893041564871142300589158528182182483331702058744598732478888860545281014145885817126842904134386606241669882723499788313402630344426171818196909434591130256808968295873097477779193869920352352048164165633101442346710250110941377521726314438192996000501667086439101421383294522473640894461211082206456846457108260465837740340710116787552461708166251116981109698659698240351424996375580133281725161665822640227331746598286365873791194333470828703514144177868101475793939678427179743162727091371452948082703167163231967370888527894703169593755858364037610031434034298547057959830834298504749806614377527935984984632420804984720244144585825535443684169595506163300307950763895701158728268773454486133068495310711810856304136839599858339095745599555132049322675364156432922463281302464034692581493697640286690906221738473034315353792047189183169571399347291093172917518084617431529516138018868901375932800745014061324501139091339711929929889538517314748693265129020886418566957212895715389193953279256339812529886744871616715479889230599389280703671465133912430497133945886659240533986782423376767562176025741180015747384433521767167136181673530319441515352630039768740050003020547783673067944491798090065409279796199238678871784171063406049696499270842343997954135210204117551793942643406999341718279384521533350264068038133524190164644193585181294436373323788453477385038209678044881813947350722615490875962815561482355819134607050495689644900138188005173293484652669809899496350144888337944373309907895802350734288183132460297179325473000711989971341997322077467759210487337221196599280287915558752532838103372404690433270725403474842532073963374772507689107451406202821514963321725030751480176398324266520762783458037048114612309852284174438465125391684805171730546341277997794774527291826117063962380843594411118962076875163832707592376568780682098394830593038052696649065530830058447419263429755664009939579831171452892889247813740816664142858907869970201507969328683613585763062004366187304703704098943813360532062884992522008609164178507723101264586555589869366431685782528808163486380416257715112857106182748928624620738923657975401161054370181241793022792654614016606585928988550832725984836941781328977861629307178483312557042507981507729150740732515039530184341196272549910109707475941483954938149428811780948103757364579814721723391869883112446097267636533820077190051225693410275309691537714953736017689753054919966436374099169878938604087097641415232697283644960938538725560427799414896425820333858997446037178739996650182454256858317970347769586303934653554959306190391940976852936936268603263421271105774759245152295520220407196484900872046497745811398495914103126161911553161621740816273416059828286235532258168208348192376045366034334469843949135063759014695869094972998605325087850317522778154096071347529789128343811991545429208544010371236223290232121539471118871860745214714256156903211411399759022079492030893536722162393007871717681212255210741715180424492496296142518968491355434434058783430462095769407317464800386586713475295302796715288533170070205837580800668555783486987227107062150818070632165746588004519456084651744452144660030072326059146879134884312241009211549374746878772354282935790876275794905902185881466912951898416405548367840552943565764194892379290789826579651634866121618280044634822956821289065822690568828022304761912970892702909072996715411017194279539269415288465731481119598654443965924617233231809774050652190738628319479812693807594830509318776818504429501230057291853452894180257695355130574456313562642926950622396775005186574478441606752475294427227791780984529693037999217458179455579401750366235539812407821495144817541348819727412781060190875941950108583651501429060427792058424515076271874742292633329456397577991218509723550469439655560117080619554951845306695270487379487937543640051920832909823526993273094499009899191275298736757382617640081517205445436174888317032934078431133199294932696464634651584772485504321118185335027347369634775231899947575875170943040842297755641818673178939432557040343351531185108898745208756283810283951787809772305389887784540285899716190953855377624123533199181465454372949202572707499130911779804783031428280306401698024842068851159586233002579526723411333801177156285919409259031534396153981818974140088529308960663100008835927351184044724191937182334872594143847052386180380173052912830748295504621770368296643185320750173946243271113907110484307741428039048135924949371144221011613462582602459253414892502493583789594739917933993944421238728048649689246605918939079187096072308937071973815536296739998128886039289448591955125354525269750716145934742489311903138451829433002274999769914122321660449444043308178754799961735293775931381804834878865126882822062989145839747933502358777328630662420725486789152359254645769420862115906125481822697509250976613703222319778722329064304948108862859931458011216165117819443998192509508946572251127728164672245110269562549581722379380316206961782004262229953224321910990459827510404442672836451983147385323739258116726504786381335055483300697543992770493974204808024616963846887124461941340271578853476618174347624964165304598166581897684367733151131242224113932970438055809598470227420667940501621170066840320091889738772682529213091137125854529595187949367804164114535760597466023279172829306704346675739278307499252671350679257623846730453387624898702166979813338930768208799562027658044461195018661647012071538012176784974031121579373650392859718938492120901136499434231425569862081151926491359006432723495570165781423795915850575830760240976792445522533556447133308562556413726465742327178579703688314002999363908180551835240585267930780720326014673498149280385660591387875161847282980043035680827924853470529854140410757356419216344858575928156835744461247756352744449829631822495076883845361935668822609019304763197577609179085206368071745664121683836260036391574056448725634199350996472028288426741734365044903389056296767073679012601239582295829362552584701130263743496891367683171381191229326298362473371231979632909018746739649293868356532889229409294446084472084517347237109377402045466340106828962113640344617906479241703728316855935868053709961134343399090352685752391291647945272527385591147801062158285108071658086537435986596269540778665983365777033386991417857292576522284714986306015989111028619101771260650255419757610509482911008074521144335627247500614402008441282228913511360098070445273571299245797474571663537369571275327878220955943900792637996959042570210669591677531837491523181397732831749085098450014426567819457502769596616376266274672568616681067306783229634371059129563389777609674662929171864324891930990833095348445960489606836456875393847941300556939456993525279164375390583697764732624736294961827868320169635903449318932465709602383353778942080086777548782710926041894664031991525921225756604529680615857640986161764390599383265412804412097393212883467301200673756803161180848443800552328693828868786319989130401953242516746043645903143830819119323873008693069770665169355079842073964633726802014897236104801274399233496001223051326844502364904124953811325418261878365115412189898736876859388805939348046495001049510424984576553384877987203209040689535719529214671910871830977456025725055596179772890989391229821498646025476078804952706227399458603197954513411152835816342979354818515750520706578328615216125213598949043681876659223828055795985796557277420534454213458152422434476631027620690701750015569190743393458687492189148927084219998714630471999689870746307371189930779726884163577395775304205058090025756801124512109704326432466860506795035541748873953107982551682120992223050328780759439638365838782797749262999482637290398329113142772596392720829241348316749308549532204584519407999481458216875388232912740788258540697721215793966630346301950073551659794763193275924270513768536754481644909665157854170525696848447368821822650884454918899845386228906894932433066594473648195938012872861474049431851729523364877925706442313320191890300004428498622513746235504458680045647999934243513599363226140911502320474638135425593291690240122408873752096872269719764351171465861097883297349765348766515699053130013536667942878967924768266557887276257856654799008554020733772775299414823708372314982874813005177072347152377974569062464083622433314562726726361844950083519428943950884008475596270038049480556443902713928953613363106542970655945953125607163500515953750729737043166779005927018114569377688687108449880913898300456775656036436665142713959633320414244157951847989209836987514062504644361279793775830970428111260288450513255688638636648277015189866832517771345694231628716923451972323893740098817279734337905617955893543684806430181542827575556763510356715593498190839169186872836320255744364130257663389669616010451068049153232351140232603321555327577447937222441058970244335592246521024585172654156420358309483688154613479311378516547158343802539720778659776697894684060404997363325922740286532367784608712158298558671549042191313437856788013895054167645627410558227371257330474993817683600074925521030244036631503419419634686528533783632214765741523833899160411411475701397831344333205809437257626864660325296533650097887345745069275063518303057589887158085835328962026510585316692538578691542420000712607035736352791671477685604788384943223246495928972955661237199087275183698092506645955277512635292835394858612353762935070906383618754093130071230359752999241934828597150214503295263201228024386150959455317311727142267285269052532529765537549243637296679771314465333315364069373249509994272359469664193083316444726942397837880319132513258693473022279462152560680846324453871558968581031851514067214556873353339561295575704139308027492520987456638360439841127269816583835094768592949329314307431325994657581263030124816713627914324600460114682770945682762958146855451889493771355561368970789428025001140741085407653365547373170181421249648152677475634616131655384025671279421044957937004804152706601268281173716736313699275460643491805353271280027394803192513659353502551184124817425201408926126921770474666602637681315573591183328530432032740492418729420258648828489159070140644479517998781489633364139749059992536975811662846363259884484024931695430370905186856988202354047750420273625491954532295900879344579339519815620553384967510560708430414251188363081891937305689002817331057573329641982784468374545446278169569134178216985660653519662383964123605590439257258273277335207299629976593376373796840405408050354510290998964912213674118155844577365748776605295690101205697309609534800244444924075180941139588935316804373958555447819592817973716616958911944538254976652268469345112045078949810498856879318565423745312181256317516716775517062796385955208384180530121689256147338415344279539021609134749345373438989061609828983493124658425274284558919323957035544256474113202111018953100156944461143206178976554065141149944053216647900888962563695125803221984801273778160368357101305623268919037889163921236361236757651134250502143224379474129197856829637966403434892913140018224549495688426201934718621246578718489958824830917886146436044251892904631815907781833574102498750033978979664667644871418538706445745199686019362674477574184501737957370609504895547989003788749020618851444634361320800556401608234664346570515410121720975941578407072855790230380393288219308933594940571935061372343505119528175770624126001101616089514185786021391390036553061955048489163951781918916254866501247557321386542915831507214269542045817991053247079007029122266690007332667788054853508647934291819186130537992786273603758752362504911186884749852819738773966113843935586125372091625558264770768115893898017721685136636947931880847652366040026849749370464880000082656273316650019026789440804583532525031270551432729311026514007041192264890246648442935014193070634459685402385012577376361222364145512948935123710421215661762324235621928488898769649401820408655498749067520765495041578346537483206485283542793465978351905448230900084245959138241906520117586819099053303422924604405325435682470542059258277381475075913748783228071120732706522723991047374142859577325302752890417053962324318512300734099248619961015649537191021019810084667205200022857848304210573110815333921940575875340077505074002651870299597018125181776376782830840050253854513756141656065397758740403042458603785838004043577386044198344236989917749403706270923513626567360516711950784091372790869520794913475095878519059097024827238138508210526095424525709271305034268059631328142678459811357001916025072938581680959379772235043050032950778004704566575778229984164416916695975261395399519316640576415541895940654476039993042494242635536124732857801742930926553040395366971107292013544237776345289150395228098303172640899629058678373939494560768003149163522534785857642262719302157108591503319080003629495746145898398430556758349074024179135112253825296219771729763595954745654098714083219261271113129062077805112769126799549509381326590379309244115854450511302225603547922734044841248347191458797970952466724733071733323087063061087785492835004548228403485390816994652379304219123652244821562349093394236701708142113904030931916007713740241455934459594071186474437931245478974974105209700151621332365041982933616664960932702766391353447227215452577389888604137541173451989355662410193481044213382849554781466281985813276376342791657032903982566831653522291792694348981897497279285332777992848438513953508461508699677578293618331689043396457108324771287485826298996581834934732528276579448894634262745656112598330118188329632689618392022064911590590428338209086208888963030161157283129909377690364648706284188537182624136388837663832640096807470379520071965520703155027645430147704994821104177270906588548979853757290163663998044422098029500545088042146716179755269876086264999651487349253735609580987535037915941213092605063577095845701479913006865455683749785879084530244450299947470737815286302610338859039314327438487858686070052625831316446527317498908278509438045751173656273917292193638800475299621496213135754092488334412654807297875044193834718442699329132581711467228379375802171968393523161013869079651342537843063381859568354621056551133925127914534561738690819325575972908141360269002797767166374805726655234372069040621028417079767902774120321295458167916089190074178479302010539148811017424127584065100660662418454206199294900905791413452108515263877019026481118616521495639580107127308456072757720030584410914460474376605717417749814332038990120131399777877064915356359097332301726624712907757280364180700620821103803351952235311156627491570251095480230291196896297956956238301635000013506284255296778150655860623940931844931152254241123062801518010830699121648064047166990940292329958593699952538353522001132214324736341219713027177457489981012052131097239568805540412747704006214138113853481414845431696126555651091860874714815265259778540354243714514461623088126635476800081591502273130037439108819738413869876899629453397143409115637831207877029076683362264986419118757623519993964303036438363574096398138782793822957678201495291633861734198335626620282341268910869485598766677569502562012559104130764207813665030769275263072553779986765339282250791078332823759267425134769106373353295860590002532845310416240114998463707120734811921129573033385506995836579818669567841909982345738985353838540969192922365477007452686950307058236314049234179266332271609587414167275868455979429994494113845565690178011545664781085079742203201523766546064742469196353611902093212523937634330210985557843166836592337786723093658565712814507721238042143329386869808847546460318745758472379417469703844736504870986789772946592256975994317025503785029060278682099148510407723078464792499023444084178682543482440208684311409052873524993033337665912441563121587875946071391218019644819622325244792094174104077834116761120536591596371478982327466100263810403372744942154013849535002990012408175785072806215089307992125139665562216921673413830588151207204217694614437946460249182202573648052277088188241923412915071269112301867491677891425261611943612439587468750184339876513541292787100827682448713750965691423761994665846937994423265104826189313032512835661784001248366696860452513851360354488218346238523570557519025936251475745419938431831786767017188181953359971058377177110551446725136792325959839958853743735877842816012783397007236643656810911118706121259519329486119933516384574258256444029350555370121640085167448983281833656411120674318504199074825685146861119589062879240227874974481204917987295763840105714231683441466335768968484490560216501774516050957644782193956489068224384700699178865059597974820034194715384820756615455067859405535701810055648503259381704325971008859182930730538082035072658842717968740033910885506221206891038110537796328871868471665617735352332730005485818882443349190257363364445820368188528645428460283323693483787452065478287381957609830853807367808568789977375032663433785827587162458624454419418008818352042815522593202031025545187467798928520248825698628890142696334169333313916067019339518814829605072246228266514734259626391837674877928843006449462646981164255459234784675719902989949860312399485798647945995714497464396420998029939293896760006099255567594667455030435582324004421849909884397629215014666596420430789191575427601757000014559748640464615709478900602049671352752512825565207826819150495667362720023741512226132259964914105786812428777383629658924271781911991460443041394824348085414831334254678152826366451317306872576311994305389815007746023200974998678435678639273980465740494045197111979328740542831085886923541052257131714242558141541695246333874523484542847473803668331826399405191282410025728701327863437340537833872966959691067873403896910461458507296412417765082849544197775425517629620687538719879597061998436922681122718541995592041053576702993279819249834527834960566613496765424666054488328887902242672689765603584878632567626653269275688845700731865633321871377995496095144175300079002546558291794848631910523462819900147857911957579342575539403739294892118471385379974562325421403055027457097567807474188156035250439643572272132549335091591567903332983460059869316646219532016381956760534859817964665036847256362028242841452390259468942976269803976651932965770483546025744634560874517637627995959469911313323942903445495867672461656399053451033831109833244717669911861862400892117566011284884901983049447867656509827006112475373058545381121315099514662449166005051752594334328383546651088837938885531149216250325833821931415908173290912303458653878672022685893222152020594026103442374181608004156022016853711787560432252509084684092569549441380679132527434306649177461505870066228218272801093529896856559072658514439793120562057793034902208642507544146466303347951594741736957201788146569407863867624254188897792837765443866764471967364413882186770627431154974613917090333636110747733519553267978846595008728653757275394349497615217725817582279829836570184436103701170268258049664895387585472218778058888344297789015378833743062592840233508086616779160746374174882382306742517902113298203779723860626608878677570934462535582003024949572263216283313524543326059970680307530324503320553627467813698290498498421985904299094154327996013333006820657930864127324058936229235590796406326918330639213858101098800574088740355698152380649009398134008629535724107161907361449471154132459522621886614683636219314088857640994501443093508122195586367768380814952826460710114898425793762751823104640211359590776789891915585959325022305422877481073586587936867356056887796610654434748807902158688146609758167883762033635539337700054156957453846033466755730403201835303084197810597920123250590225389231339572749807222129318810840269903990389914099793421547574888113807630029785560898602325918272112448904215159651760300307090046543390277847396503077181659398276156282801356587796751547049082718520215541668881932023785007782887556839762861789523204341712612313220410085655422584414976655967608314224374748926417882959913691301824544986993817635622938494663906751393116636847941521250382477390786156309823154634495101279810646366621403811825270149975972691639445989806098780782141215093187170946462749038618377710172309716309512429990145998172949299345653863764448961910090576729165712867842098062214547075177863205959520758525970928903828558758429862656730035699364000990556643900518893623952724232622779639316496075203207560384811940184155722070986414323518991475196782629675921534639112642806033476838943424312148726089738133943975269330840194248016482863873013688860855668028005817153445859873468107362995883030449944710255318869272537548640763599617598905596666383172260515480948090169057068413141637158983240752027639065764968453244982654371232768931047388150277367007226612114792006417165978394280427403573699517946380304637848728559089460153879917139297110919808161494077533881482640818887735459581661495303035169641541401936715110324538991348533120533416657200101289773785891047110519518589257247123538834234443293220265065349622306759540323860407979335712575807406836960739020722547167468925897379695708585332257644234526520238549235652840248382781827724676890021281837874288286858724712966085691142295592739427629621309639934594292569504035619278886800830665801937122904298907377174303963455797089513838639474642619065290920565440769253452097880565193735588665899693461629779420998138903889575748149754507849503096796789111317287373326262775891950685644519300844690885541772779362247635373177010520803008820721804102976705607584421425605962293674027651969145412970176503919079071662307476391223122159115754427701760033445060659454755526995634222895799182579291957051733501540130373136119904196135729779971059985571755618783079710582748253741625831872562190950751580124356814028789969773280203677036459184403585282480808347545027418248811917902030999097033550517322210204768438814543649632033947440206638032030393058491662358644107362200056569670433173336521376310631372713757946136448169625020659565384737362645134211755459049101118705570767560601389051545812733472581635310927494816624269917848788066563592551961075170285999268464166752972190039609913411426776262478175910653454964316691262444465446786536787289989197327648561743186047130790724831043859481884560082594109028206163233992755825324068174611833399054834290033995088153651648341039843746220472986434680653064157768910489744339239993287523613352123224835337761608256458195179329749871402490702575073742176165083879506611203136224755957793762465928142682592097788868643158399751703102270770286115419109351478222119856525384964917645728974264944235389382837929404790172949649477462854884829248318833824564483050529785598528686751857917710050783359044652681508826000233294305007994869729104974036171372632801559795420120050882340155738842841654250700896074936688061627224115324024234369691535863631436778284907272926427189047177056027293646437141681310808730575789625513354135459132997467305200342446643169457353961476624419231845276087990153538482827486937578829341988086856563122406779580840167524134562550430436455035619943057256973055823954557457499403287863401544467414645558856272029666331274745996900111000300642929072338284187608445503966291278397626651721823319034717264669462246966147771973853875261618215111455557342765691605600632281777558182979349044456875868560026497067201048774494761384224632367743267339903629113477040906008352704539783623219369546871945787538888633320643685680407482503276359239664066991209476367131008058623067605212951322187562706218132848251836802139834510407334437132632472798902326924152294691515520308994397174356883420793966398602748033631695564602308730266982593567068539228946029736960037148920238286456702245686450313779013521580715824125583024066555659097545946555001133794557350933584448025754226406493204764661352887062997368569959566099269021136978458856418623123784856625760653123039396597147833518803549964176279498575649863375588436460559289461324871301711385435711398082252929614857052729642594044884287574436185931943377324760182603193505692825477189349729974414019367228868542552269150288578648631036694284094171655543911467772282036212082401050762501782629773879149528469878128551218926522299581517689648394356481265259504912412518426912310017084082893403543927604956285380434574401955749164537621119704839078942624636252499499444462652757597520497525152201476094382832312505960817151375871802483567927115059138430894298321644967937158922002549726034827175365819152658655694532445533138373018805826577260253088824947288319076106931823186239446793571086625011703734507641646819851960715236125145742013470422147273777368847800595556436796449403181849008409202370884792424737503891524464213355266374488043527613582500912981317578816028922765836014115703328480949285084621793096743404125998902021096961293556584323848658519985728820354601569999858863471782217093949940875040797484973450966035094605452254027749787577788170169035235150866914259654754266388336764328724550428616485850864498201827023984203127979267367935158864902091909445210713061358205342541687790829157848898578083917330928719388358625069586723313936437453103965074853099017165732099496088795982266421388664308867097487301537940143897349124112140572925223863941073942114287320397776004967196239279726914941746723242196351749627516971397823607051242288487017205053324057224387844142532598788811870434166196093728260223346130969974106936757644565364457352989910194873348739215302666542235038612490269728864795002004261481073325787263259939687223303756920638556501955661210096487387920889623901157615627161484702737855556642531901613618407797517935360940572482626693346165589596272811392730074441179674911305165581184099154058798740872982762828616904565502247899749922467485022911009738234761405978311897815500809407141349207823947382354817184685259191231790136408242715366782729848582897224862538935104754562199890612848069133410601610444678391847761857449835325097172602870849834936193809602249201608783440725777188153947850299326602467030622131497420573734096598160341175400412203348214252179589622615909742623472144057192221112006080607142264061712356017310252361738044940130379702762950251429369178047218658140391093727798195952361872662166431443223063753048032354668020213630356054600344664582213878352600485945076301364684073420780304176237280999437888502596845372076632808480770844914127781955369342657250266434299927360799283582517951620698566973518705309846576986783128201741329972703101032579306310455334764555147361538994329997434972416647928005758637678308991635947449618960863070380238659744357377415271893241869290106881351742948990499295157165291238591759107317150065876193794009503724055405400428708793126546031643589982229392212653603534616685604285960471548316673688075033082676196730498520138252936450084437851036917432602918516631235471354436271243571695274608248020904434858805600078114533715604680186387226145016567279594938703987627117248520408184490166209590032889638233893469359855511687146601524690876494602816418376506722172274199798503139114455442850205680853667596671763901133419966356082165626476149487532542935053897163527978824527570658538686789546333295956735504780445165591679270734524478209957750755296937384959251576408157650066300849316213849383852819059812018125072531800229834923207263900281376048095801718206834836686389327572950632855406595560098618041933789943229398886137182061842082556694117962328897216286583040958342260365754396680056252601649232931951888564073689758860625790923452777731332001111263854891498823140432815278279425487900309148136670444667058932678603183209988570222434515316854158739011172649821512269914521511439971023852293241445342224728929946300608746757780460319782578670998883518882238798490041511291211669506960280256293850118843070138072118332356266611755504524376216313796106665395664027827888460415754854718022270534985025834166454631155101072637606198551048353426133898171030391387126881694458604229914859117416459532751233224552513453168170478668608758493255594543993664659557484125914952160763820428461595084225328378884685441561666163609463337420237688870175068608751340117682180954728281305056685152084931303559300580653574319124283806492187638666786261967015076193957261345975555509475894557986505870288872865235817615609046158616108371723075552562843782611244017749966226404823760611963775974593806654255880157541400404503736413846150261327886875268044812339237248356199823945360521284939255779941507778864612021035953082950518383892074548409560022173893748065253999029782961471175452902555689648239131961421681571453265268516959047654728802355945037931509388228486531271923822713788718872279443253362286052089745322419428783291556102523472558906601171797292869068435338433151306361848900557236028867974262433317254193562992400765449104150798086792392857682757345486630311416289415318497223256037093525257975189487472854097957160521994777909201486639125160877552122074390448294905962987422483908234777073401994934764956478338392477024927184994851519144852150936366456887797786728400912772291118004075995994262781535209195393740233514955337520459560466412601770762922187012499142105947811774078534031449239094725449397318097185582286307259217560046676709714329110693448258685656284157218904015536149652856573567892022736330782476723147977247444524618516528215031744465800841349329344505756094517956061874502519637357503788144509991671280163518325605950788131674398826374758315131836234254153248124383530309290260092725449138578547192229461060991468262188834933390988790775092885099349569330818114667554309912146408502654104207536960193785245171434892227222948527227745611537838867866163371209033321179413435680242468985927672108168663683174115458940284505317755738939732447085395925772461389869909926994119621280876332366477801683245568804191282741721408346646834778044311230913371983710951525630440537045634254595926863803347518470290652267731597002722244960485002527889238881562661844697884064761344957445425750770168632060605120160041870322227465294148879012457421350832938028779959271987322642496573028530635628884046529751845700299439085460026639395502702225852275268701792021876002003625599329570173186648627131283369448219926642490593638445565821756355958496380925781415845151919043028612295757299895461321537094994787298673385297069964220586093859999494702482187380929187695416869374341047029766599725112476336627249634808619663472962899203705302182772979582366375953148811115746769165591501174126501643333876952894807316086708311857712404276042406208597273617604735938276435754691855818354971795199769854501190932650985437174193110945901028752903457318145312765839658814816760613257425100237764528870215495145927503983932389394066766398145420764660320526800557319722219894803138012105768784817268302543676188261712765814083735757030849043139652276637154733332821307461615621121687696343793445551657805496805686828888448426239519842289766459509209326393670162945685914894636150668361812325184918465754761071180172770572476285626187685551475520748816682127285865229173564384260451849541946626518102964143245160542642506636096732455158896116598794225197805371860697373141180723186440231711701578229967307780787563301891727155226946293019368588249064676291772918559551054244681978356986710251672628013777472418999287116471726656139397437332959389307728835169531129327313093358223945787221173675461191153404539957948249972720699436914550880037580379376278082981996142914522523612597664063098554297104252411334828583335512904663795336123328991499933553379462599367254615815195233763881728084325124660907907464076815483800206823340001040801478703570196497342961323042231805458608718024479528483139143204837962822841759442754400215666022277604535418791203212422907268370289537528500437040977248400327585426550568285740833713951613751081445913732188526581224978244472513523577539108559647250036791146647702188102151037175225130190277012122518964447391208012583271082018178733831196840360645790298321531564412209802711149203648909044999049307178193779314731466468181835848300855675538189530832659534565484717745306264548988703312487440899839150174159843727032952964336161472641246527070604249534197422123489573577401964739191765902405640575998100897883236321399729128690171113736651773874191187101366576636429989721278231093110194307148219422650468348723582316310884274886217326687848351562953159605585302296521185274510940056814482852828643761387903126128926358359860252696329283753728199493029741805953299868411626593335685490329093641485214221784922923023282214611069507302575088328338356654209051874118580190835441242812848630325559420874080425562854862341971688545189301894590292437248443645303567249954069509077418237637661326990545868227489133846167549451416172793257687872923225894465514111019738535074824124769997422305983635056013996771199919771903147746961128076657619835665660516226654542424933010702882368056589790582120684041507391633006928344429052450862410349245316963865566660015681161293439071537203240517336981134572203832950281187687141583146847035857047453995583442859610141128872368990848773720556633658163582684199426813388267584619094138653380162533537290791184228673888496796749493095187011034910195539509330383651551840848464439337551085680604746792487054521437714187188764282278893545912963057406260932184197069329580070402505452640133626867519600899275864449142446321165197496358173176034957133662591382128003920383867081499171461169306877616985172477880233552704559701058966216317552304804022186414752194339509843907046014456815388267406463232404583114324614076084575920439266429687757836005078794196424178232104340575568929727425156941181566922254919991125159691162447344371495527532549582901570774816539231787134681037876928079937402023785512029065418439120488017142287156826711697254513091191084514364025158587948518846352924927514188568007959993329172890208788863212599990831459400827951455780527118137765369736191797404181220579157219696088987905499820621785109740178179502336398149971578874786711684836439946248802918559050561273640300413178108163160015798627880511847206057498339163376319454218877939825430392610691359023223742077020518796349645680237659223322320146179573357343944290252722770543481401715453160531573641690426824934060228083445068609711309370048189920189233127502529703204997066778486571620426169282187351692344012944532503341790522339192364313915304871429370275993157365675612493786627969971298616801511489771434153854328516616209066395634873668906612505677101102871622863854304317457670366314236677612498961995858641934266726701208250130794432065757588446606366668283870077812071468774063981962319091351783438637414046314984530622956091212215812703333721311997973679993945783047403291112777072165943179101056785073921844271199693651616116548852017720968042598922698079054853710745673774255300211252715197212260264008780913383031744113826543597314865246377266061499098347714404799198329515061096563336839258607603976798390216564379312286513625205956331497234027198796747762478496449813430589037526077130869306368642826227696010267380061905333875160240435645880010637724171130126821061436574751547147606076448895066898472054346602660962562064886776494803940683112839095318749216737889417933742981486848546346812402008196815019874440468943845292043089063871402509880350013904892565051304672527031414355649181864615213368596989985489014497472513076740710867031643313898302882050359244562918297114453881157297996654406211315937359304576856508904812245774122061763709868758878841876168588539738803755988831983961005241179576374734862610475647886786411325717637447547437559769763776712481065130068827777766872241492921707482181640276988949593233149356844024547138097320680767646206978358696951958136635346113464632135170266051313673246610744527712207281846599152843421852338361032424593765984155223737090179672131461357316542178652190810972578871544442746160524422786296896134343861502553093033780088299307073697309494605203657197910561408725352926949439131927726482652573039455764841002648675444854902821955123792819546468775615720741226319470374185332365412376757296310943841781939692750985518171447051537542282026288742803010734057081796980367568863799653988878734221476060097983060658976408977069120839973336228906569415193481898737352923975614179303057142244303881755611111591987561484652999709983334217579848797138497799285768028878458585743511490854865309453245422969626314456140852591838683405916643591250632824236788618047832316733665820517044192061029304872930821918456274175080207032228030013222449953839472936275926975397970904290598197680564781515256239496228309939607292197388615918129519787329683043915082857448607358984872481450110372486652823713785506113551098016124393244506839300796783882577523647923565466639109092055818594564280868794723302621573382541009568623625518561961905776435448355048721292615758608821753694820424449439756710685964592681188698034836675797032912256172862939055058187125852230326606139192888362385341000351300576029531076389041209006565744517238659494313539130645874818364626028055394812472850713618359682520141467156292992725122279360254588074851089794254154692502554600735405159031285910299329375070260641762397418993586574500058308599928906089194782949033703024871826373549939137762557331713797113735973832118323373536414365673293749605443787625370976357254787945162495107380236419449011998553305387652641538892038066665256896455009397628707247695631947154417103228723292100744274746217507592718098319373348713517167133317183289856862834121144616502520549548319290111986529401746338383914316241351936481182588986899076028141433788277204263544761263482103984964451053664844394498063322262316353143157800552004337071371255812161408527518141424761342622536610599662081193342168015719749171746637439147997497406118096579290305879920152638353388003195924600138617173484916854703183498426989230774228526529051969918789985386508347259221239224900680226699918149833693430549991473209115923276360824488089559351316027998756523081539528761607403561528501612375081301373221403839068287703667134846131594324732113294991512316669444314169580817163324435843040961470119179264145491611831142746928292537799615461881590863340384576122694842553641440097873207925700970430220446848048618745966329141279518038993233441278720841342904936055822556935032124529414671679513413325438866886012265527011107748665254941223501124055962588473603825926726097327146636421738992786837789109438932020889360619658193642381268034230858214085687320655517922988796761450550077958204033969957617688702122565319766980606883151595704084557608340830339161264272272679842931174530486880884752266062708927362234307939202287551896246774255683759169216504710845282898643794812327672155440692634627113594718283111503417365585327718866918566193443599366777288009089314770456748214110158035086484037987155670520002449802083739046373396993582942566635860368323486927843779894309336418668943667230495518535340344125924732048320774435587745406167092107677407248790142325676255704508579626751081131472374840286420104935539214009055870686313875793392942704329120979277498477334079230378716863147163118355142480241584804077780468345431103171909388367906701466727193699393060330454491272191631983748534326055217862382314465753346437529609491920805532816273217480379271642696618756393204868562816835102833119069406167965494813509453926748822007642870947796005675440169611228465289153159110503405412770519788650554024314838903543541533318107195512550570396520894170151049147672111098879969439734691288217583370806605294876127216331969437119504785767201633051819585505150443618897916034735551076575646975048385411609936253973413419639572684646927418957032957548127881786732262005741209016319629621615246193422671440184685247845528035391976591674728390036630140317247406705920654294239162543380402220775851141495653210907579615076785876726246986238041620300852699283295241904889891540067464924813603946569393787834206049142108845168408700061703299396579906890910710131289507635847787829431557722574769501658410817294492640643533642441816312978728925940697943147787317856241463644061249572938197828420201984968247572456451084840933204686522068453340032005516533886646216580995806577310451106351762680454875443362030829925354525736166464351799319125512207768503970381684161533259446454517428628745678356922978581263481420772808225682218196013795136140225826438184947642991267429066686699636335481938037669676173004548204510042619685161171640721928050646306168559690308080170186320030009471846078087525161357974911737517025618300029990416749584366887660354039050975604752185155750450632155250417124792806238446413635914778614573566141763595112804352490020306453456901598428066351997833023034586728648664494298584257992036719701439411797341310845424868829569352873672529364853368984377180406758195485631387545979628217869828695135682942717809102332397667107996411800656559084887382050558963386478499372395756171592492512717532656866069552519694498417740932563170362063994431355895439222702398680236201815348462320955237850315927676705448703429051458623919091937416545782079360620330439920489087987349181681716628528090149912373980440849175525332259691956591728563777345236804859966809487747156346274950832427176323626150009006988667062317620029612342467933801796600713559740018368959650329554709550969831824349337127179317272397525382607683954302495562805400712931337015507724602351793442299199216948655012656799832596803150196763060391431358113145217828759167209386089594366516688590003576700586185693074701812310996580911068168723917726337483326682630796783101151495249676040016886153204849798301281918416856741631091452582861869754450462520124925546797994600059731309867151821940866209129646442118126004942521201586177220994074950504747591838198851368313343516403698636043240277226214095392509927914909717947923692460696834950197925379513229738578819959546643975956962092626200185303889338826261743036005683350774583062774526660998473601950211625663036303378224285091157877272332201810180963406779052011966744156728293099286548028700021143517310924013957550042212513574879297547697093986871023033823640864244211066387707682066989244730986619661539025917760582445741503685700178282883943870073276430691706480232291206905751721488759390951317332902965313044446489077524732591700206506487893313912897719028506888045528254405191911292558564598369977961360455792105393014919206070399971052880719006299604635463210752946283974448064401006230237008419123055978515082916271954490485250356822034308501584976441892795676331250501388471193383688927236746407581390286259656037196709076281745607007898023567103967933023020929701684997008558976581117521667571657499548058792867083124494370866258729437104467113845050005024585408693594305622970768558344307069325694125041932651496033526290539971458467930693779275064703635457716569232657451243344277895359516601866907308887850110803223268558071759218687725405315374709517218600419429293116612299520426165362135492221387552284342953822894146167314095562337399754866164865852685234521079632239511627062840405285438203321441647387350969486756624631948808153047764909896141545768744063899752031054643065341318584437140519291390631204392843240950792413882777417550546485703678639491384747359880616462351732258378462491472886663245581541461841619050948411377066428249539400483878753059014590364472884347689008469252909345711080689564644915228593446053139733084368475777321755838842706909348395162661431455939552846742350949745015246462486370258355046660367615825288354779528856761252721784495691261674864312853114487543937760468779642930694759636149472080474509976268626871977113117680854171824985417463779934853281609370402277351220862428769601165853033386312928194359835386184145276503768010086463394130490190308830165207628225491352716870205835433610811025440004101629737047623854212587634308529760894911945233192267392706031628179816022230925680790360343406029918359501542978509718487092875111144441200422333328108397238976173018475993405787581501631453803883500458852461804537887042904136867452148111628629148814698139266465874226894766049456191609227912359199669089440173975766945786261279150269725263947309403781638653691708543532841612382616782311454533910723263354465780063956245199180199656218877542876607908625710670574962907892314680692062712956980000258661907842721101019993720442657023313019556819009871884337435125875746938018129654389564592171622149869616878206549772604261976560744717981368899585186849626181048260673634555028203027220745787704209629671040922085000072912215623332095137549433520587282310449120357620493232733872075530076124483083315264208566779152412539365575800245379694751168573285542255380254959119454162099128853447260970048995298113000666485519702042534146885731517660971170868762437678900922933970616761764612999561718236069740437682107082679995175026862128820709288275761201582434509838300683997284516793208289724381752705956584397489785965246919615046980075526515197363931783481468816008915024581778810561463249755912308632449970914036777960430508297052693904201645295009674504694529198546019103432874869923761882768426225211719332175674624255373718259094150957903564653288896637086526256575461164540474770277959827304530437971785147416688786804132025084078669667845911469720116584711834994965667230823035207719621545426499143796608568267331550492837716050373954139124195254737909072330059138040473730066447690252470509757863795750366673244607255061390246441655085894465844643010949141443778293916407432325822323838745135917118672475001638030860825545413560043093300966945636460031115293843043121430823247980416196365408247143300926093114751482140178427283322361942368910848389018416551705867907794320328138230069498345409168853843428894080708846102110220479783457581620191303695955451343462902283498315879495106184277036639291850745740188614524113872595399821272695025150773425123988469601107519799893314711551646496755065757392355044455396990292549649701776411362443915588129142467383614815334619932111159109307508292591283865825280445148831838210610982073092736100684373454124025025799118970827020920175185159500798481161463626504793103245060011954563618341161825600018880901930920610000773201268330105686881306916277814576047801513957742171674694046389471606838355645306801807094043883014961116064657553415813850483780257942822423947320264485258067007669125631480992000072652072287118649288830920419491130839816915966813648077606441177543173075754280569733502056211091519100749561958709891282895904361624982409801312093927186906943401600708123738802437323882764775614106241317216341640963904958720187846313292135934562540413622679466776984543872647660287946279947611206106373800868186904212721923904264277266188959601117131753702246370456924361520382128181103280937460724264800595820830416351063526268750616423935275246212937175122836141046364059504437638758616836381018519364956983730043108510035225746523782934477085410666213053875819457729366585961405375487311026911372230139275920295790583527918646436787392886337197575604530275129833329053842388345176606372010892533410758372766405681962073102210521419985950540742073434597298905436241828187214019728135141165286989237690586220897299174833352561820688865496302238177303131474504885560239593760422603679572177976863819363053313704797315938069361559039313136579330079814056375984762307674859727664678359360018474339648602960283483771728754331098566713814782838605769835661136166084766480580902798626171247783015999650815452956620906054695248550775698054186118092221676591398692480419157831445524786559020262520962733045880328875433719285829958375084825933279825040518694600056611451946763716188536919599697472706834084284745203762432234986166231728294353475398906104043382722761027497542125713175172791993192487086554761260392764060419491485793735433525354311663374388006529728720174980925279404603053461768028223770660080558031630658733408931033730211977529115599669115648460640732719010631843322968485272208223947642426019466734808801502400478601134701044798691281399868343512505472073246793237098796563308152907391492358353509311128788527739934947256715213520702518096400496544259021278083325573495865419803208315583115009174925176077046141971839470365823655954097355539003508556167306000858892978809292745304530155236849702418074929595134987767673076782961862791824032904049045712223557899314527541524926969044821410422478318376617180209390250949554457934862904875176702514349435371849319100534022599789533118371115537200066459901448034124389263374473772615408752786398701234771567147044978219401189706364331283398317985390597593173345438527291147826594007379153138922780981558898818488248315927737892981608395770127035479937328851048026258680318628417575894835574397820350980296638822149918062516580217906052059717652160920898742660403445516656428336466192998926685652413481584568175880648084859208831681744460271224695419295962227137513343430227051750020622182017985475864550007121232843728143668212836278475822025676354069777320962615540016121650149513821462330014719521489048331322481805098430391379448626325081908341105086127093237732351701429361309153971627687792422884369223575697243544273596969247124496749367158444472634669275804778895019631389583025535749574394144182508796481047320412816245391591972032020809831145827819343505811691540485118907454315200260435326490227142631251845172565108613638468150196156445656059106948910644509678496661843022083779140408789156756123430730294563520421121515408194204252966725292979440631621363242387913392932668734831618494468133642185672536222047304388962481035503685681599649386696673215159830461345279713284246083928567492242477520671963881003487521011368462799996486744245686673857630093547250556282092324151334383648040929974912769681531212686321856755736716348127842977300773227195844684833463768941664558670270885623549577944182727640327466467962612028349601425075032882372304190929427343337090694968688993887302025014062821251960021032288301519704524520873994354178043066704347470901373870109475456551163169364452781259809204403424487111455862665488521688192901456073192956532934230520160796538248389734636881682435621260786990018899948368843874581783320011421159807709935367385849163287434920675414779769787268376733239560241362746473638880571920937845541646425895277130033888323686463336454267516579326220944069212435962032195558528946489991308512759892187405080486437735557598623440757118071177712258403062612213483694317391270039779989127118060851676535339320907593926321189505601534329915188102248518836800020301685403756052668699268944368828448473050100597498680251830830421421228991437241875828718034269464013879939753928336680786569256098436153020106279179367766505514934128365068568100429346200341436204569639885596335916382571294311506171779747314497834832868951047600537360891045909280052458894729633450307631938882247766260958776111614825943090553254407616136891256405087618114003263077636656857951700173490309121884141070785121376595594351674999279139567278873834897483097090081709318103162413516201672314971372136496255265266402640186963988759099518117979850716235252814180762715197597394807733535483323574429209133646508149221772755878966845781380477884001337845937614857118005814694812573297156182772514792667078026260250466898991803235018208621150916811846090135844502919307060834328063246154619717008699322665043481468434141965792276472027175632450265595135098852606337572091919393484864770731570309170838778556329105828503304666652341183297794580581300789874857635326481970983226277728741508468299417665607872622381575111093079720599336141685134777649111148150990066144366660985350547320935473186246266509867502195665721621817498031365588232191893678697708794159955508765365403109532654878378553080802420546491317105456945755801533790155392352732081433533500905755485538788182041793911836772874762511651511288860336303692467381044264298040538598352227827231617414451709648537741611077458254130447416391958950981891022414699977622260826976417130067965576878904979461865201739591086334244532386084813644884695188926638277779118558605716875486648929773237845745723991173310935882909674197734692404854624217002775591382867790442883004751860452170372356908203923026822228955294061090346042953628381178653371582668201035566215087175408835706819639384659174062880154695956077113751742960371840662981921209655123492748067110153632054022674179169058071751425630204873558499409902722003826616590371564170194727683918370560269981571335117915873243893779692127234472932363164944599446224350823615422490356396243307590860756616784949779192576786867580380766391771963197768139123705191953016837503779932120525059765936537703214479511188475607054745431561936463506664633932688611337935466467636872152946042026561371763464081031494310091314434235916370809313700182899804870828400559451783094338575282057591141983451406159080510908424824922941333404102800211573059329034891012414720952290060771308669049233775900892563577268868832053926722102990890837638700825006487538335701816507050474227415850374969604503630909933364041719333767622031519529866877570543995137500738029849550762123983676290251627450069593520031266473892886615821275843758023768812987747475356431970398973718521105954094126880638975532389443993428985344899629734059283822139657846251557299614434254057285313807255348158990088182981623424562117198927336630702324162444085272759859810013699819540929430762819231430837770083681766079387216940672611535920355480642138803655151319181145542561105071668589958920108425501781888701753997230551816972582072310780275258433157650137137907555766340527674177752000107458309034666224254186654514703767347912506835397421559622578986017125128781351091678509068163033371749567460685781073449853619572445494778060667225361323693752613872962296905172078697093322591540898037987789564208668130504864789158060199043055060713295529771989141203778266152618826527561035212560253033876059865222832937872498134522446826882865557769224065422317472396900637123952785733760075217327574478261646800843304914041097041199534278504082804732765401819315914071721402240888513268619731608512229048184884367282828503372575470019024937545884482974662422311804707870111243487387401001187172951810520560278955047836560321034355237165718146819696446010278558081931074791808300925733225927605779286278654999034833143023116690043315128855780498132518754758033477751431738308241429206764037240845305896152580424327887050308997124959777518923537640202239865808375082951794377063033021790104014793401964372573371457939941838876604141920641061698426523402693574323571286242672094014008123428868769240781175548036464347728718023524380867894837700102085201665792383563871117418790360242019290437861909329917955505046840942101884534117749790818600368952519666794218827187730829208122349566417969759478250961929590209392918233049336096480759245675033369520339258875222780579930834810777005854616225749229888542769228545720770329350523346425560924260213815253130818875163490917072226121484261731643320487537805355611928357497778527456879203515231214630890749837263584691130989212073339169874010316888299964716048283595592166830743517034021579557636009042816981696801287001727499088913014578225340258006821692586834748110351568681637580908488329342794701540725781029196514620306626064696554607824979878221059050691527991732298443060320514423087187359039752440072462087555923892123124522090187214570881566460610927225572446788742492296531744090254691210181449245209680725051190791501578239084092890224793494883428383504930668695676527648935363853573329358016832803447713387963636444778125747602636781916336751345185873186890008919729948776033512084937851623674894319171085263939451607659187513915908888459899520277404602317041677072464345931669808078231203378025067034316123534609090604680908396002604819362443139475328375778577816021446342122896351209888227689559003222802479985801970564196102926798949877709991846516801023016221162639787833125601270702928282312910863782987009550958320419896521210682108004981449018963121005615555246306567695658212084249150777005689331420427585448852679370935346763377523806019342248632455783708329871142415619350228121367645918518209902241210020720816782856746778532983483919511291622782746207963394409173761721552441987744746773047857113603776207954945091176600626816157111289841978337322904102804593401335408527488994522764061753978342067360789885183368646475991199524280750497054679996725557611650216357073758779550240466178932852059343332311589955896772088905267516189397600415055381916491690741090195170805831801119449892513030202141600686032910210929512743768668045754704783471802931682769437650689001733102522002647060306697588814516578195697266579100624368326406544882586165828412411535683244643381493491296482458956023029367803010970291747174521883470646231805599016820432581272139134616572544216893838225337924196533416630910966280457204589195393620562230518471547066696343516900599611771315072389003747557838747282260464323963612343434865589636068646128998315456748117895017603082592526217127625003116443033874507796277964409435345779386163638345250235032378102294648686769405690314549311027594276240267627856282678985737262825147904808396495226784694633037664767641129851312256322480794502851466027980066302571974883048078360038136767393590838704298025478178927395459634303503326788122333457078109153806528686887060085191185702395927248794147669908361324733842098856199654266205418312028290251089514676878941530197388856269061613217379388550363567401599922764966504148293373977341462205538705001881699592906665554349504402871245517138162032180982404277494181650769083169919490121643534295741222056073329676928598249833648888289148093795279981163406471301325555497247728076781259666667850487073961274540843399070608364148364563648475103764930245035031469948088970307588504466098167570605223276311878804997073255826679127234641023773013107131204978333162451287156198303642499772066234626527923060985975679498641516411244996491256576376866889658202106911893178745220807126528488407390977609391191909810507085131572970409175790020741072870804092961679009307594985163036277125521350419042478294568782141238777964866747139820735611760972186926299177809541734947919449175785884622187167462851207156590583334845634286419537854972439158248346537112110069359494243299515973087386360428115198071550192268875252043831855893385748184784774248913692422059421153518901075021988812110673801287182933982018098164496914397922531862227549432266936166892775939736099487538705034185996639496991783119261745047918242988676683738805033045634821637467868183419662345666405574267824258053797098880176615904297644691797671593473490913965670169141453563491401370083363437178068448612077250974090578520813423873054343137069426682478190731149355847700062454354101531102408025861055333830988620678272125631369283330068078343155828311686556730204125766652231933791264763974167897645293762410330894287974304969565332069379551174198561874553380328648867610926321930373739059123710649842684309607199225505335845172684179965408915693116969896503492154276838895371838050512524652462707704047063243883491858355922946984242528508490369738439954889982884001484929624399669725162665393338570631280339898905663225922907549037238704946147941348283926228573723316439877764851427034236217942809691721742932960391252384267625407748412052104029198747098841399878142128032360707607248946226000316308605978046371387313376730233776116107549226692609442108343617142570483675574893633985989787877176436639620880047534551678580174677833255794658418276960052211993931842196534921614655325580104295161303974249411426028904424155451068618648469555821467984508420979880722113980259691400034249142583809070138331296792428827952254052967889617225157429871149370625117492935959403714375241142692196322501587438630640714247624162224066168963328612533209384328643224399326841315657303034297561585186351949984127260437304463449700820837483268358450978920536190442957733935781669534651934923689884550919166992653292191533597384465254257017782776424818581320039794287947179298718782650502886125054592498011884416464173974243470542959048674782197396679234276735695327969920089886295886791171459329058081131057177971617734830165842781756979056024761371436874493524981283760777544649907920839941456454847729937232532273105398681302401950111310419147699037795500460050937527961181006122887715184208313566141521928346582045165414876982407513095821777547213330893168554702491135314873140263130046603644958866014074476129338989964076610559769917448162114583729960911862721318013579519279366513157582472271028997021689108054467729652121286293098325168212866821204992987154211831037178656622970011813241667570715053089460990233928004375338611327036474348200541950984698314893331293585174723348298959479463740272984505532767594731166357149768713532650582696467805093249978813531304395938525447812924289755048715996915758296695507036714586112396921513453968970033624728465606392004769053563679817312882433932772191760761834800590900319944176295102599997743527301323553174446565326954049539196201983279518763665681080473275824948939390042466344279457175273312383113012175842412755838098180383568444381627518256156034335014842430961025121016236396242720036527107788942923844889909080630640268448825109426778278657606079119078655590116784974918661059765217828874953975785225458451464791545361000679392651709598062040173193699620454990942943708509924142183222050934820425427957555767142793362582636395792177615040920491999767366310906492772781758201480467901635203947294252744340064959454126032687628353273590006435321685295404077929143025128857370549431621065490648291594589253804540537537633405515277105875481603958718527860992806440313591277002056422815328277415402175854282874975184063817490073481975033799591556065013193488932446750069263161344060356995593304675033647385475982998146075448182134211250434983986617296107512522957484843574206593353804444895634920517931697085404339127288407499085868650494347101568020394682279036838512594658538240261783458259446096326045212175799024540120495256406664350862923573770711815641551710868592936532569825442700152846569958264179705182976145097867709467315801186143207612932983353204894380941459868526047616010871167295024788458329390560327588451041898432203372765288027747581023208808934159243670499720714669385408998319015630792096345964174378732151997804203510813076961568063329000397842028970477416068854124784413766261006527801876014629480636436915374989789093899307517308566820596020877755468427300186933696188401268883738376720379245369888512731205956553458999777593710776188908370341875823566133464602301870303055020064950608912468129032799596281734385877476297163760049069893479169128044295264092312862836714239389469220742972172013553789964162493406082064628460270832338714904792932576794021299256581860033892712961543165489641613862869642036860714365696120058131398884217462339007523446188883389848066617773066587628248700467580695965052399065388425125770643697315575202012968427532644620074379864961100459138548393233403980443273672891029743965599995164237218307473214234818809620495138598938865849193775066702587321517423864736802751094191947397031758932171921003646727719334916779185326922519411508418836536013119843136225167207949377183288714512707046753366440995196662307520191833712578364367980347176315908894235630735925048129620501007624362528255004877307721656160757619989776767495121943892100310022493437195380895657861478459751170584787720093656626845024934833642029487405483751668321738402352361334512199558100549946521385538513015057255244526163230104579795308209520393037985882470748875466855183911494491174813836100505534287971419809584698085795505607364873258672645093041651178106422327335075282579478527798781395482081200568411172908331440723128406569223408739949798240569506336414865746440029650793126481176138391175052875976957878617375753878836519896972739452845125007136343850771396841165709657405463599581948628900733891360438810922983434976707608156116980798475061080658022130538417293554022096984446242376612244598440611126898601764409841860775925698318001859276139932695102126885866107984728361651697042626794962459355822669935129338100772422838339069607949226071602211426581656991395461740154629630439773127492071783018417043443031475410557933273588285052633289018151807203093603998427296384065071054555045602740416985353111117731137822463363808409526677513550033999604715121783412083093638926825420206159433080066492410099013432934427545913116533508314822617117202235008412092836814430851597160432518845316057959355327321831525851955551060183770386797143409733965067176500216202274967858257477069855426680239411122444895954411206129986145051019732065991753134434242074172932464623192680567228015450288034269105927787629551850549965539372998404847989640711387543113399108463080465092847153581591866081540291409828695408496527020736437097415502244228510215889058394783722870160407306415676306032328580634709086087962861054985330014107021333107062871527030895393843142332576223255192253715423962295631388246397560017146903417273171492178880575069885577305098570890833327953551253757227411752177617166704463448419075758581541056835292273921728322785036466910352788934540720637073842747308866869832663981055929126684576258118324992028643437677804355782592379011505107403352037646146687089411927613335964288414669918590753869530930970587096720872590510010732591885207479629938789191489776360871157815428972332152914954415950415860467826709611266587934566587365333263728555894670503205867581001748549865083552724401835696005255432009621116541080096714276049767657127864525580745379526246574370530863770999030227192269900313769187689715354443133356374686787234656776052013050616421296348534314081862729038088551763075922904731319468984041967545323552503505162339327094481559198409826640915481684986409309600157921435693259999980197876274168289254455217866523676435131360179581801550457987546939775748750231518900163269650048956662060534389511190941817520719988591123385124734729130345043671957522804836886494236952359735025319539519700932083456175198057121281832534815216672457240276873989422732168156352963451658244083872043126377780762720157809676807037529265158904981673143268240191925974302295303913538374289908787109418684354735635965198403220525852387433457423084447321253398294488616881347697552330623175705724365745313794837889843131284854179417447126614014318778028218983515856492900868568409947687201857386330564386051188109236443280094336093923009090094458805914621048622911922973097886732037325686644549060383066575483597397048823557568508619132298537132818532356443280833000198797482749230462591270968250342725314373619476385089481475179284553832471652067451280052047684696660624751521009282545490597454863750232456034309654920173279865907055582145423596942688060656585262726264627952285632304982975634586058053122029117807467651606042672310761877153762821403985672673170251722127237151651520410682296462710662237156719216379941337288967302423791200409616490549072053509945483072170804223111230433620162747252403859506810309769980506668269956772258387778624038269184678471438885471071242752352606495154944390492557507833038235029660660264992292465939370969900706557631621310243370968511950325890458437921198582148213125469511432039785012699574784118584664977387499523093992947186636946710883823452775705950256000887124777302797158956590287579119303700233598427841842778242072247196721594412884781251978755994563037940995904190645769275585956258201495894136760564236732802617109631425696263788559210131217789303519360290579790215940007982795647690750489065484961883703815524068572028957911753808271163514469917189420017152295563182628902346247882957559009706551022328881863641442865703734877965259984134394778119332122510730100481066464402758884247859860792324935686659093994142504086606821238034664527357051233150965479673399779260497907332676410806562240451603936237968995944611633560976640425690176726914607557595058628228874297230250256284375570054467463256127191097701438588479684094749551258286890647134816975810212018954900961230957192274611575162419529389701188383588032563034228478156017792102016233494101209512260209089104107450152876066853150687845546340625868148303874983754268838129841054938149338079095331656523409632817067660859739650402306512853484992986568897109230359005475159690995277395215000000123865590300661768486000667436258560927705719089794242206636757763813378290890824547829147116167964929520861570947037002319215687825966297714851017527399847491454264998842720626824471721381144172733391151052829657027995205796057459503680192703289197398535916903919877870756482699428009443537664867137376262507548780690727550326411317398134720212367401230139818678845079722405576797062353659653715990133860451874436429271514415748772168291127144859912350787546121818767936385047283766797358259565508160152917007450740084453681709781631036369663752005531024690968831868750674144549278262770759690265559318964800841403559762492340300957771873924133457350207924325769140703184797460201403173718137024137615047329712133042207591680120551012085434277378459839018801364457446711164503751699456851017139670948925338851517752564955938843306491197359898462813771608276581265858892019302559676547397476735009556768444167259096390615258756805431794679590622967870376611372153462682440588411181739192812018690592223570482696037169418083014285633407308727987483609077751260881274778347280518723931519837890604095368262033267812255118238826834668527732595701242192817246695995977088507221477825709860196851907295140222954945953486042183077653032663507154674657997554188944396479429580313325072928144364452427190164538074582405446855704962536177825132215343525994417053476686268153573618656786631395287232668171682638978808305299126620262468536037586144612138534385619783067677291808667364639941748864356574165606082693165503861469843850895279775780937012743289091353914885667268674813637436022627185330639408854008710207637553768125324131991205223324884663745969391592604773754890949721637511821282824322628313295588987016728391110852381068980841147861625429059696699052651180231746237549374114266950703632156388780723465566901486178476136007301157402123321660400001446122160596495784590196333142307813293423539964294368873640420313974903974049560983844609360551512110334123343944424014539127263783482558262100057403600676171825519981580939019353606254046404041106732092233089552157898081662468275515126880382383363481808123848435928093603416660775212893883487153130273002158713881073025432179712927863648848427914276009590570039503212094425093099143429655747425224514486349384746955501053033400149197954415841442194960836547300643371069261723262662179466359834264997287916023314745787132818774947869738726389144490156356921457575582396230724127874477111356238757983838263308760272050503820178944005575900871713540081110945723407366542037274891899208577019563108106091770712143545109173268897424774311885166478614681862204943922498647057882979548829281374031246011992248930695605607998570229090953655895152154112128335358435175851514797432799194499946512523791257482008516912137942981231455218510725231929859405202569182910956493981628355694266970928183778430918488904626838663433153579369882277786269819363435977124008846536318362759993077595622559521066254807923900125770351619840320847942730167553291531063529151743281778228661006688485290060052839289863675515407611660799130074130009558035489718559388404038672137005557596034242179405145637199884195905649493856555014429690186997600183522426455994638709028428840894780947626648418791630657653550671033102022275558398247926047616120992688251791424439563320474077133525827901160671078642591411753206991005528961454923376521810658352659000908064153302535860039153877531852824665584445573456282946131351110898211173070817950091797281810925972353159689783392503099120384013129650662525037266433230879362129496992318400752167812251843402746565680226080849194153463819942737020162697240988680057201189349713433797656254603756916712883607896464808653178476352910677779094118834885639695627289111047272082159194300016641421553466056854062548166765806846236488929131671802054082253253956014082980499282613860688898683831382063516534272778697335286955387996670055612547269467944487236678699466790744686731513215432471288603764721088262381299601130185759424977770165392288715144130698439986913853917802499625602246847817234679486261554575512171556481525356138847226315489243565415306038421035390899346438130664441481711983481263440858865998462445242197417737721664600525842988004362711277624373187126703822411300438624302576946574616399393794652824288934690029489897203309257978821851407065616905899018007836029089272620115341065922433324185772608080095417065688529194711596164891197728579155625584341602221295141730696227997215207024792846984666573283673076446109524939825097289064082391648386447350936108115066643705469855234368347714753019040096173716342997736453330874615395221998492134527791378569043346305681008666411025624253007110156157456934296097304178238244223757253199975851398921771938450738258858464834157653508667164347367011299763072247916294924249799447331167621862481777884015237973938425671886178975812548614550199515567149492992547586702636922942886912562239153641413790955063924215387440627018309000494225427499475024962706757601147796299479569800570833476672852472931477696311676667570396319697528431167081216072070319427445216861476410893571259248171547803542779204149070938813995229674904178525381107253811736054145533226879205748584072085174963940631065322582591382934330728467775714153685812141669161226036870676488933274709867595462336733429291016993189955524743406515752748805763247069759449889546522939005895683202686353223273241874739387835688330291056700905663838052778900776302680030386734113238154367111152766150291137968308566012370614954421736822051597763405491764303427601749439361708172919689282651431463167287168077635571174305072251261587082696344784960132260760222812335169310778568560617952679080676152828995845020569954707944989102784109685743159494144842649552285139930776974312571036364058372152221413144787686125016760221980046711307967040331416809044874098779032243851760353374250498523339663432221419578297724631323228702757271442308695920008999558661973977652700079776420045875552052093457336030967578309557392043052189803176722480028402234046611875423984190930139034746368645057447672236466755125397529611076676597019854972453307466532014245321482221648519672705075142239731291637233013019275835009406949815748926219130702036123588019411021415257492644675902992179547388758010392461662059856387984162656041048996767675248940568006713568445471493716407519903887273670830836831815043237412522853466072413690679120982464960192894187773709308101551737936454902261026859278807562135709330305789897044664824050559742248262884861463117383314674443914293746202776447177002830884517474946490895330495144674862380216071316286065746299283955728825051997406274739605591934018679137188872289144007688343509470359718786090655296185328783765272211836884833540701584869026201607697316721573347931513215408420678701641549597603877511481219566108191060067422520769794162109434842324345990539332019941472839061328776311452780611452893008620258208948906019640451502893859040694461610218214900923292259845467856016314678054104379736908415513074473576551128968300799419274341396566908235323688308303940091309967467724798514083534724729534149088173868797418019632369732395968117656957099993691812257265534011918256642261810450173004005802019818009621571600853711310818759548408691227397133843896110999790279241562865436952454072168554161849169018202057247123901574518874785005126162367433275982994873111738335354064537601040608992112228856111637919914374357294492123093576400445921097508273951174666091953803252965640029142816053415365657303700511554099618714167413139864491291482461886133369304821431599506227882297374687172786871246025937231940823671443207287412734591980146077545534466165352984985502199423293192710898333339695754537261078856277947906564480993742183069101573100868120011071708462157407903648639250822299699520071417958621679430134395355771126649427795015736195690376952170710810243165354355449431090037940612482531811328761989918176320783612516841093825502726712843156226919824413793046262873315849368146890647317652466699086464957904837883402894287326759725517718733490517638235960181565285678588770731183253964709786338373405179117341758587443003632356279397431123170000134444397545572808028276289458589722430804343963876973085706283000228255515015802442559664630101057199121491570999051145825877491572338847323626167870614426145181622866255449667882280059761300416454305454983104448576776526747212185586051093255232188321090536550993448531562826099756490424936708241229733992570530691250866078498019574152230862363069649710549659896893653919688931391694066986478027119244440876742061949956154250075648291075823487492647851612861544205390122394358860046953684122415815519299618337693075609676852409614948877295334373988398979802177148159730454635487432857881556344072567122903296122925768653141543156148455685592996600354073597970041811712924998591118344083668861969949055428117826032266837098305429302201143176279917302591278124862123290716655112235727391882588740471070907698881844515405880908584031257318862020297632422491995317568287974799378153429295429415736234451266032604951136072008739201148845414244676063499967081049969037587284411278283349978267814669267835074499214206751202835829216272538473188898339023642294812985855963749820630851849397786964332049849822754788907945858417587200611766930065317999188498676471614164888510710884462431773772323393318816223554636345657922438305037478718604098561192931273124091735856575356191791889728617697421859982890359284631842649825090449829551507868202410208888285716590255839582543812484563667433936031760298325287710810562076215919032502075782344038393796175942190464344090726594776678997325107438211988832482986609779031286454324757467053080307356455184568925705230125033256652639974344570875113141737747048813293422480979904032682204431251069986229334645478347032093127822548614195255400353922523545542811218922783189823415810510695497923116007222546316179720552102761977273479833315912047708045277294168817883842047866973572355160528286718449551804462778859067722477057856888089068555283695959595050449148727906398772096616428451121901453803719866461268811840175344970658301397809053300382384973662167309298906696898203096738334783190227701749688172558795986868838436588524163525223490115503126572579105348798071493009474503717409724804820729263934504887196660351589396439555837703226908272089826264111382915734719313689234739348228150271171388892683328207313391016701788234448823181522643070116744251584831903598962587559784949285404102282223707665075969691519703608048406665049915634393002581103942336283585372443718225480328880649381670701958339660866745161336100243481464181058420018103477961883355466680774234885727182441588716737448136126540287690090493711218435507292090007523550909025112150241189378875462478326480407434693138265866706542367551020330395631687774077982214605364839552064729451394623214675679187669361164512184350828701707770816762179337961252984929699474662945300171202368768315597209756596107163314017776641910051094470027204906685272039804568613063583960055404789658162963379074469731917761946427952683899137055326307847843214112177397895214543232251030735601026689395910743896268693838552358410169083767404059751299054109323084453123700940431240357893838509697921273309111010282656742725825248394220573515304474243402480011259249701299226286151919462281763764630381986395801393173701375077513493654525884695491819189066613199757626528892288557553896713653773991193421521673347403686440692548890927948533975550868397046376112762824750780835466012105402188992011361060231842389653422248185398739108066126250236876190495833310919008429332013589630557941078233577778956579239836801284202395047005880500261014635327884926562704177042030487558079036802912745900101698720211025560441091556359444198826102406877718303208366082983554416663516785682071541411033464951838070418544979222788862716637221114674643942101083472691957667412058211889473088565407228192282082061857574293064891589373603306374578449589876753678030684360665674986490552242743228791415064767417053197579943873282583289148093794789959389950563231969299605234710284841234621224170479187405939748901294204498017042335225589842470426160904924251007762989227607147988004584953351330680506238111056679315375049299432324567068740487225833141053303789090084539945750690598449615001071349290366752502573723024903175187167507813343567333380423928651225116309484527409157346635002573455110193060876724229545015372895295477895182223472084717663974754076239462742027547106131565460480671266203474738854595871368364253710505211788912059870139217737036782052466530553262144711944987572702073987152716872587293028815986436361632095837558313212165426082676642441745201454646958569565970592087576258708867575776058488336884349769404250569017846760029713305714828760551304407244310622317160248186182380220983957774116090970871584944321799610337977248097436768567820541836203166278393809631451599380860806646390079423098800847750792780523372937881400811915809259224024678968733036099399876201359182865264195491215122723665081577954137958684205253032869977269684202187086865379248259047312821726057246440400167016451637165365797543925700688487999506503875679046409640167781489832548375698577960459424357001531497652979437266248623353132113268416668912860285208245633895616371097469878873587643673730193465417406396539942829482058380658281524427604760116683629639923894542663959420648274031059683007380806431963576170624268111570031409982658408120302095905581862890639805154226521247669428165956518993696791354234429793084670847901253702878232829620594460974586286589250413306168751549784127449106591724360702727273778090708811688885747361712067486822425226163475839866926704015021152545947860690941092996479419557453456710279960122260142951728969152183618690165533156058946649543749181160426812047931349307630485341167716391118735072209565313295037954763115055104594430058623987930156930513879481077757465951574838653261235557997227550819299284280376194129843587116313987267867748943423823219238630192059158474883809039717549458609197385815544842050364891126362585287752803780351180000116907522807926384794395330500456653323451343713343144933530566188311697906920774072838127335704389383129947042118085404983045137740659506725794489129153141885404815265662924286611888090330907092129713548123380243841305726872611976578927770163915227689471534099497945598212602501827220670312850129324055747168570915622583796353937332265175912605438690312893833353481522982392052253644714723206206347704674647290243907197708255030881933890610128664771005507890015659115216990983327234292717633590759010387045445733222271135899455268231470340637979065240347210997362838487767303298373588264129318002240835889450641610278565450242114954992139379397259711052197826458684501887406723010931354358008939675419562699933580017841976864748033779977883751240114195840999065646652542354749642632056069861720902395496853716962302711686784169729180333504993153606680123164718625282867485074206642227496234883470904872011321109212536390006590559233118888410994778949581246901017710178537746896858290826090561683484051091834079025971868345273310138916482404051828461441410248511034257850962249257502192603817096735577894031710454763462007444678301130971371309446258212056147753324674220255950689295172689746427197239863112721143204452616072482263267468608779816034241678108658995377935515910410791544935785309913086296397701633550731202085067582518254159743357273482120604824322554292064080329203320469342084681236159935102358915215071306414103363083069317648585065548570553099666376389224715676496164399978145101290692880048906466257790577058197868676196330261967577679519171828423210698401449421501469220748997545829939503783223764680931268170727481369709121137220239361777393735593403326882416512610243731702402284270855688559091538496186523250108805745959569614153999577783975001594225691229929479712461643499020381712838796217232334492092737739823840120983246010072421813995836696751864692682711797954297773479294178454512620661899127213670704382804918691305290989392171713555221374024693347100150775816813622826080213234207094964549469487508093291154519362517882601812430564511376786447447723256983658515749450904989288575784746048302437555509111043294416707759380082432534406565869635181587250545083512630045197193065875520357508775417553526681929809542353554344845028844055660688853145038990982734810046818167202329569296055685704785544353125438229518818418489831994792955589544842284194611238178395042386776736847955179967510744098780092689311460371951147979887821874925999951807112861737854080968841204444204301767905359809184695332041389963600302498766155359215897914557486123542433254915977740317113441990209731933060439772466264350749390695787205833795937205669552348887505658167720639538411513521950550995064611000704215906085531119190215414262648939695434871524801832120861916588430875588429056828049258463607254338334787899374754934047169119064694430337011941842380455364212836543187975572033545685960670114886544957837733051459464851997716877973523039075959818201292106865091301041064864048810609417796164693140908647365179725215960126450302987371571604373021649553748949217298820168459882669561452825873204509374000359426008507954127386275253151270944345644808397215914861035270081671366534733748106575273102624865701128026568507074151520755467968514723864362808454872043461504595950881918135710108319205361011715858821901553474504906544920864980970321262009093163064637912195062254231684768673216331553797081550311849812612012319657698661008337713565112731931374713318737444631366677070837386774201409221336391567494567884727497949548521926719556682478966210310532316271537731243424310135268929900546570008753465054999235504791048127454339108712586163655277788798328703554553944027731374516282539491128330116778173365337331871727214169255957522011055380702926657802955659682833548734796622754701468354913462034724845961261947319035316684634153453417609156002448319273767736331464394673661089726006584814025583544061800598764047224092522599250185846035861682578972549630619729333264763757380975878951813671305740227050997617835826258410478406360612734648328164417394220643946472891265899721780239329978958408778595611907325632264273942466058256898772868973298637732600645728572513163975010259660999177509852042287928336386746090080264210276976905642648963810823800154887883526763065923107004032385014009557950923894121521049618539671533903930596085381979303029284901409005206431253043858169764966305802098705085041936277147567355757177574092808767370969062813195255747710202179555213932988617790758129172595406340857767250466781958467922100263948964925064591702485087322858062481515053826261659654075531888318114899087320031951501237725597589390989320952143266165710074618809159741329977463229040294159450504269694591126656213496999386900581370445734906171534051512919535770695888684970320093759546647757129194240867629970996532038839613122157245935399008983686868489385944681231668246384613905929582156842068217006423316712421839114984349753814615641474312448708913271655699626387083591377305742105583448862486844337996051426350668406307352207456120721233584592462763172134941858768569380075979805757967309208024725772484417010301188885044321414636221978358164227073902533131730650668461826356332493265691589381843230716191424887910874258407081053610693670657526686824971190860918631953776713409667008085465636395669867802381936413918374627324461053688158686757355784730471878535238029557844808469040560718951486474467209361986419619350357596050213051975509432171570058027915970718179650267961820043759241315529845658899444959367341582688441695301524859047563107284592558613784365907299304152353046451572981467916306408212596875516292878702113584969301857731518522123848488114358052289577252787419173296099134220182822734833350639034728887450074994001886134393132892493011714126041400315090868784251687543607105365418120780258589880949868600428969282061244604009406537028253817808369719772180719469253943186568216457633545412504184845346423692103026665814682610019401753785746210778164748461008122758298359143831589374216589850664882985663771023688410688717105819021943765959025950230365517893931372000546293156306601416522662381496457028835127329211163066866188233245754377943119083775617345015600507504805113771941314923032643157593483563529302092831186393999318812539536934706833033911751057204258412736398411021305618482340861953058925479081715191400995381977305650470768476887170369806759645997156870187278428813709278626117149217641748607935430765774753365135355341557032761316567847787060868237628964167351443958561062622602271086312816867042969891249241807609796358230920674298966399498305381553927579548086243265453298262597254728754929384276921080716569563998445088445313525690749780690798254767178982550898405980238752415556111204483076410054025406356540055340311328831240430376521103896776349993136846608824469856721984372995529197290116550161144476442620002756849433156596082485841665969690136609083399826058226204725467594981012997260150531301672439055188305974871916201536530550530255763913376094055691807432920338560849693572199969579741797762321595085219476170549187390876161850980711946947788508184498211729056915164452104963204500781121493840737147551327144434732522318534344521566106108483450451728259030716843919998486730082301951151172212171723503145655249023984308832007615584403670134821351952324203090513103376624587668119991067973912491533266974724143000069765158518722914833952116677445342418032711799384061396146712705802764430681316680677330266837168401095598969947760021389762100722459934454006659456312261247374689507549898379022688697685277338143757298294311651845879177113035548125001914015715528083186241658395651692595781227749074347654468923745197199056765129805540952490998726433658831680089393215941077568031667916599805028116704261673699378696901054895150668153784284281495021519971947189990954090754508949528678881359178989830028411089781463164106030631387443609310254130589352355013911779625890500546156315068746905463038741270051794701491735920840027686549414606376069389470690901757394238129866443447709146536217019070754428268486154703570698835433314003727214424901430607746000593913106199886788399921947541617884681278829694021836305728429402111844826495190210168475947367189879156838848336186212929312985940009664734414823219954524309472754107694470000220633349131097879256765276908807386602247818064432905724951273130680652565251753828837497783548787383214438887724062086599025116468105615054301641960964284597918142551371359071272578117059121769645818523979466024935329529087911342217964886788238277022819446465533496810624619557817993258319564628033550893923051063335017302873553074131745488340808030037021694031243175546883560503597484829011312575931080950528593812519386851691755406526755343239566007982882873391774559287771404256247938146161814508477183744559785298336847685982557655030503479158629645593556986917092107043501714691997416532516685690369829790478259481843124701799953907516709406574983970201011070119944105952883961766666588977244324251260879876428357389549364798889520846044495997081032368329327556987739931492000417760222683611299154243504864296032949920194468510208409897158068784091520654911068721699882065710888638860890709176541993952673266829270203947413304585757146038494818429444501868367999696388345998185021824432664855522285478297550940550180623385396252348728984867110774467724935290787303320139223795650905081778828388618899820944706598028499873680948939103687981988346885205364695452838729983314262636339641824126296153018343155847702565005426256873622705972502760445898844333487921659963458383537620868762928216808174067471616553286849363577113531304286730844737666754953284681692674745104485092221107108589708341573923534483710660761583170668950906642878386761895344376503325754747504592937728773907674960736935300403628923051874251288534041942635131353119877722444219584550268918313508210936612724588764591454413570744572063831092916726667639291884693679153951111874940564142633587293471164194657842558203810765381868835917680354434785147426517957562402017024015512054327682874401864549861647770221581497463561234374637325472663018204145465078216888185927474379426753292653861505943027208491506854639581000201994814929856441738729355796420967845018669189535402729611285359209134387271244788027138069360619987351409093053629600167757606702406750965069962583134300717930667639338321243767944099108443358400215331828418270443648811993942049848054282021874290870802841186714430263851248566710748124472634948535562158164446355158072042764875860945684270670539613756407961179657610614120067727363418891540415080352469579026172697588998562726874924504875505416112692629175111871598324357263181136659679988557560157791893622292917619895744251566444399576100518122342543098207497907851610619229748346490049803336390531319325378126393678322465117238914166269012547023606900537468238608047288574676261075037063177755578875323161943764168556014278077894086813707413376246229567678383425433503340230013749553011111935140020283558241764685180249148839403652616956318426561631061791580011461504586154013551644264360431367380255052954465479314061160193738217726512060617793208461769482552633145621238035728348338880566959884168271829375560880265164858000646949866420279011532556828571026120705334623619269860399149940891314222811601505113415129426853727468415220479988722605047228907235219709808235019329529617749653090146870808222803513337372331267906695770258443266691166329920220853175531208899452473746518514439171563917267737271775446705046545809297368440315717948136221729577111129684300418285306486118205012096733406079778471419952184338412096009468025457452126136291625224980922529547950876589634244801253953671210319389208257144401759658746135043545436394453547563189095412784951923355353768517503494553433879013895173687920490974714060270869582263779051541628142388804838303038730594146795840052747518040031341407288152818759993271858536389230942440273627568954852441922337436250927294774661999969675241977021959033619246376160698977894533101155133995526568074205645955896456320130752567357980296855273265073356357583848394750821874182318366428296783553806850177282417457006074988600595877579476159760811825013341742697003813073666725029322681420766014379877301444216358015281399081981059790888239507489902846476881946713691885927756065381615758267685213498556815380520348445512085651299633146021306511903058091947069797497318025066150105968422096155046423255765722709992380768827761251493012210520107101974327226832460261875396589389348963995593121053226282997824002201258346831618333861353910755053877097940172411696941053125520267060217568799746131594678424337629666083690707079511118632019220804157785221119723969843106682705807636366398836473257363213557123122369789930148851963169270071467006133745385053265986093573431037143739999732652840862531807502110108446870913202677759956201689466406147175233504500626836788738940764889857235912127853719514703737313566521935893564587968476312441873240976709026316278709313173268239841114948703675417113494929061305889249125250096147931034683383584238593947958980044081793938394349464947512971388298386972278858238330312689475761615530552612003095342661141873986608228860051068076689874143592172331940862869294876940729300150727331326766271336229576527284778014783158616150709238448083595945762461176620288524492810671473043152439489005892098576052756361229345367602985838954336479760485855821338286320776597887249130113191996364406055600127120265949525280839864582522531373028753421786909582919836337578014602083407807178873808487215469219650503909603632682692890452812280556627577307254709527239279244602162029105691110063105442578266817756923177847427703383914208914101007366292131266556863124257853232029052179654255279515006084746879023464048786793902002160256597847995636651186371285960122406582408407865500247034847065843745784733600014798766944234620020480993872111303149069441504761370845310012245713555926820562428045398519966562934324194135335830589617284724442883192948004489934220032822584385676045894838776792132972150075716659724367535227476612121048980231735644427096692706507676489297181826841401181540313456535667405655620924644343999502597727117050271581051150027378987036843111980681290634081529998165348010352006489343263097404052245987916379522516807592412066678019975124404222599099145757445789519743109062656625306587549170426260459889335304879003682371992396047417084248668544849215967401383806026326361615713858144632476770800294049039373748901519902356722371825381676267422046460120437665016738018029745066671115172141654216732257096621743695006168489170799994579676800940077231804594139374394840475834374974409796157077864894876669345872392832507621124308693984943659778984933476742874695901939014362753248969278172563555443280555615085113486690927167160141580716754014142604385162275335672851873327971239455235553356040455510014796991629539425326589014158851705549456902337262093416512551803448687163327092482036963611660220434899297790602131450480891331012323249513053491025565352318820445589375303819593632456940232180146183578611781575109524465979296407879094164678938968877941898982525829497392102187236448677069702974529112451327002941758786863244008258815539287592577929195526130784289416903922452942559997547968697868782244027693642445389677824122620319934578186554809344497883284421195204152856897918775425163650390256266436356374575418831130915331811032509249919501344042732352159109002225733356722257957907462083764538175163129478897322303853754204571486488471041045690823525384939638539654650481441952963012807770890099028241615616723745985240817810221722481256066039793190701707419979098498402389314253151310151926419014336448927051819952141433077205828544615379021701105733666591305613278958145963202325660029800047450935064951445907959286513151076973705197472085192449544836953418202377803749415308775032543945103563496161330038576647906723121384888501697010440919926603417308323808301882413625130255609162162312380755362803675092329053172952512222414917664414698775873961156132915273217104637875157026245779082679441967903142306829178005174378519043746134919899830072991035793573161681776238832646483923889857168803989120459498272042668770756751006817940452107107924220701391299634407355092865824341880706027601350787465920760770746427812229356360208635070326110528883734850622500831161479509118032157987753160138955462623997201370226051751096970475043557864365510804770123427376137251756950640247513636113869057204643308970279200732894369700430717575161647238785307351173381263926819775389299579918524303275614490927017496732994180031879777077541955713588666712825468870395327092875666574601029702716335710017349410209118174975781890978461913824672062475009673057172212726871479873935187966553497433175081129444421446659545613887893317779301963886823717741899805473428180851011659279028541079757305314804607598574150482303072262039987526394136496632159672228944678061477692745123084544694085029518605203100959230866444039126350302123832476189542108936333106861426274755162159008253162539693718907644638630912872866448267797544264680804491329339777265733933147238578890697447849354758395410853319155446032080480621369396679045891592495134292741648875180073746198336497325921913464442269537544327486253830547199820832963461020565731889720453146382603447558277289318632546370647550626579365707376022753448888993419414263651947956990034849675585444972783841850506186462816677387845609237874224609032353355127159346817038731772463445784814037244397290862510241704330406083412132486222758816957731881678213137375697106667362078446073218733842086321531498752017519800712674393786886851844645902264985419583488269744507445486713380644104433876466611767541365862955480938222431935946812899449591417858687333149483295470665303152070857311547278565244033824299200709677192472107134058496513063396080082820565253374687361377223847738592153583883231675716152948177889918464298027682121914292158606017684797262388558560418098779971714359157656591501470387858703143204735663048232624983555771450652872128532664711925641073173593213354328336998280069257481129898010407351209018548536233823969378188270465483623651656209081714538687477010259239850883489456996578747731493791607633119760662423575163186996140600194803232406900266689311487372282942652576095504298651114490517848808338324577710914379230740395995301916389251424565488383507759588239295473287472325231011122080034464096473115815571758165858956896016325652105847162244715205360288409714767624272037291052662815582359788099777001976709486485563857999341653538397949367871265523214341396941141319740126357295836451269204448586960283553325327993218997760006236019316911984461424879523792470447203776982436088326781002699308989223776324088510541874278793247318557883992977548651435858587907650590431266041441122571666511680033476480110436845368006233379703610404348631762287165199292705194159487343750234671638844316964488884730230327649076283813595486220846218171962162954037435478667706500455470240811979148670384661242794856152714602343578261059224338923648194449452972961285574009173885743342680592825124395364078687835091488186378288870494504874270248452721027977113867218761189606544347826414913653981976473591052314484987180563256041274255363618003602728289944032828295687632390236891358240746948733454021688647821066303051129257616325777279608508875225001427800479453399177378007328024689701178917468837425288083771547549150060376885057318715287963705235647699039062482345901504999425180615783609393920776063752060469856048344035132625486383527659103984864963417835486110784110261928014402923875347203652814641815457480074275768627001757580171674049585444231464154067837196919727716952785399506228451283430883053284000124212360593899432542753735319948975248628826066877302528856537970844920214697566731537638646412186151345668350738780699265249458085712456271919134711160025139312380328722774569420287676665483971597407490148219272399603011404602719479296037103582346788032366690250160436008859588761373885924565992711567895084463808484864697149226603330382435323826060503330212705842347798883399631208480407700814653167621666331727109085793723030487497377511112228802519529087281060959314220777842904380778251323985184429828808690370872915365335858396829513289307570889484306880678993049080056615524813989033195571693290361445565111997361674594851594226263758506947847731862178140304849415689421685702232666874586101661508431730303588479682308123095255475321920738514229105739119381458482057576068738806315497003370333185072958284443299640157102576387253728470819830906337127989208499115439971217626091043147632216180490375187849532202321228100790449668413068508907931544579001243641957393094863479888634511810521063741712897486658501289477699507790542835151895527812823477977718460596298617514854562793620173459745132772527680983718799849522204526174959826085887813007508043166680421707609727787262711997857644712542361068509007500282004852153766867779013391283217105732371560508521445548442973660731491709542659424298134542640218012219692754957472565064681746814473389744533304833383573954889706111860944690715754407025707116696708879699276260191795737695517875815134791088411073606585685627800141279430183510807897261033066532736725002097400044384007040568343584812194364217294541222817892992960145988648054760472979375576280443431447423377977487401460170628990497694176101388111379270549333059291693843401420561516526693867533647590925106105230448363392479103300684037550202965942421396271638811579941312462645942654838987924611034277762604657027173960032421383753227038793080727161709558342071108020785252583851452207983697324412524550776173175749297884841922275037033930364849102182329024521022616876179175431989518298264469038643863220226102625137188464759538154239353375432183464172389545331774988152009117269064705118886274762773451864587124527510994640571610696359864654113788263521850923160938977161588057178957127356142713898144402945609918275698420999734492607955212822140957167380098863054288872652066504546967560160746663227421062640569992347722677357849377120976701563604504705152101713012569315379726145765076154539793183976435402852133934343683614058498469588804770766868890804489576756502879469133886054914553440054964474723043669632873771769367609538907645411824089181508461589268095857509404552575478479458255031637617413975581944783519931560881180271874779593553351981875102848192993514923894814235198572097165202564023895201633753384447584239222681181988159088550491568573927631888456608933840633258622430401127756637889605177263241346653280445919961967188306440816426291854917646371878546013758472353028384666108572927004758438276018600147219202888246956279413007678471724263593534078160783442169332158286175794077893846908479467226572467207606803695491702241712371735072459345430172276240249758578941731271493852905196439450176507181165140776944490609042665845027155343911721494214541375738185665340804311278950989095881355525761618581505809871172900164653499900969615831987774680562579148606161208502553864622587427023134993528033773974685311318462861744200713830993366253972387879491898805515252668021246266392384492235087380763061173061453798698482375424151446405497627924718479321829567813445825032554913844968011459976940312385808585880573595997460145061050435799635506009106025727083173832373599052035655153218404575674497675980155751199973424796676782082044801680056903808088456339866612013063301719619993463761903370546944450918930750755936902540199555542598680166705430062458604860392745390275772892853371410477771967194495110073047827918872160005381716220080599848941439740523361854812238164367105190188100378142707251279358924319681340007037105731883313733628045425731858244001858103683845452875988867681122511551214881213443641671847656879962162503394940052732807122853859936441211686419362921296181392540335532882014418288984119085771091154057894700866629143589298286962860232461180386437509955145003921728294605576626220077784503907180694188257403946255354660711518143337553776866055760368437461488812288631616053908855120268435675382484470828344089087683555573113557311587101346112207586749391018667645950654416376227610883579199870556805513228731988956598497344340274024476012476648599437886489096440771477855360140559670613863170548437701971727868962122758725075413579184497732681355272019631143368497444700786204917369171661914821006791048796320287154264922376875316155635334155335355747082970009610937096900469481228330695900291184873314811286394501990075584748231650867062239461338582483698904954897172272264651762706707123393519598379204626691871893202376244914012999516703891175341153687231315438353783407743508960333288598344932756955350407938856987673766452629144185014591861276729117222709295289525830988926632093713441327920180728205713446122715267517949961446154765676140526988125721641225274440442721526649270363136261410309993018623351758184512094094051000355459931565382948647616934537614392759237546869193284752013439753166125468060701604493683270401577706031426815316689579714325283504945641250607342334445646754702874724301721455520986223312892548441471441344556923573973885045899851486272838956916073478700253122223027103254731105817697847957354064062148154382118973624163143665321024576239224608065793550713864932089797835666733739210197042543254806873475115537523140159843136992644369655421964449732235639566900573025114922684971913927951614744358875918093766396366437032433740961482425143728105120837628449566077945068417092893457031147019780876426668083797597118349084955851188927293166029585877198189375534712847613326155071268977896068400703799425690405571325868941252373531273124916573947743177655252951579108439924876976367457836006167595218980442897760059580631374961284706794889824709595417300607078963278863207870855534306430536566980434156449544434444924640160171626097800306133439175372786826325788781750393284144820976775909633026063132649782808262317969994993000056957388521460707673785782630476211494512111949572645168118437605346296508406404583373512758472743080453677919149502752326695375161581082360777385139374405885453302080612982403672023418707986143518686245808035238246027990851080128512834841726810469742647900473547934742129312623911571529703050777453016809674193003983384104587202930608944680030421404718177475707670490217815059059973727260616029627170046899606051780289369814875348480752493818095859676645356847711426958189639403368250739850382481853280925230364983888198219385285106989620613060471509977730031742918758994397912127247772738963110987218028152617724029558981813927153902038601261589556286350736493677648759172590460543118070995950113215606857130240857215646658238472309052263380349899333286577953598526176820851164679038000264804796864183195659603574776794549613303829317190737938825951537011083617070740900104809468823543824513789368041065512612375490051339551977646164622464574478557969891345200679326347530519021863377538735807165654944801840926832079629092735544650566978404456058369933684366149528211758632046331845468795329610448192376048984659709313684469554846376701307867719591724944716289689791076717369810431767878436045446641904418799833733802926114924480008581172756625034175748974551706486890362338518758958851892635071064249598556197849002029455634342226640696808296532911157930997680728643154114497758106816124330803751916551427703746603381938985036776000252705632659006727747174939967077937451223834684382309549864700616303359388457198119912797084384745868550606885121128820641176074183444782657122177731647318727565218326064212036619888654377656565396266869541882555394527969080232730848125414050675577126733842085925814099418888262652285880050527346877382363877670739761699130376484852421885749353162450136846472795768487079561853538130800018774999345428344532703348462452946943819523552854498314737189058996548246171795197728222834033253167739500533615623744274856710769381743850168565168112567402858901809266050159506872513715269000395119357828787048499324864386248204772367460712119630512216024109826019180440837957359624985401072016409770007088749764897029855168939610900022923210853984426218720841972089211964105345481885252309399458570371346297963263495317780813257945706716947481839363403145257552385046367227440624203886948512407670614111144767380283586247180177408252620184346464332749895818415618364963439722120477091667914318257316322390336311180946214599377396825200910445347658040596547942800439619159687512577980350407751584365638709165117694458050193782324495757993613985210571069224174458177321461837596992316566946842973068403916551959428196434776642407163018812092172128416960678524740180906768175481782032570861354754072262263022022816995970304209370933136202945978928516101352030434120289978020498883591818910007513560335675287070563970613649197030200689298404085012587151279949608061353189447378761147172736682785639429489399554880786950461654068203648005979865618462520625449401758044497746042353611310873878206866444954983627534855473784671523460843409237660613945030273215328095173786777601060011025455014460823858521119073764633464882859872149517507295613934244239705307677364717328006409558357650432604758602379086852913437938999832844222329207971224389314722438527416349743307585759070461843637071962854958148372665545956467638410705733269316495080711014564207826523666096021186779341849043129643540729209807322683769887540408973499719655029378061203126880407125393877732274096560744405831732996066693176960336434306714893360496383061231458960693149027293459673211304206452677147609344018011661484490863354314776908738247547115055784027208231243611114302441848656260838006090722726615543671200881407102308317974642374760985234905028743106446927248305057373502504289365696351471999462512830543402144425240548069516261710130540114729027572239957207972795245153635169595501378752773818498547086246675920246669242081957980287426875562417677997424151131783723347593194399070476647990450504399046286680750863537410894977000001716892478344892770018131385950174967337430736851011642450069067336602456302703855687280250038663343124891754144466188798941994113976228742752471033289017030762171421599819237249687135723236634638281178993845371240406633146407953946090851026699568605400317787282396918167173632056497774931012194303017276101927913153992794264445749945799668468281620749435085041658480810596742088832707112879600551712637040326070900879290936143428560120568231456753144579061020435936194543726888802172067713978697239279764752748524559017429889165146564648611287692094174927228775963455832838711299170667638122758977466926452792994751279273170843035706603273570376227989023408568799693962237642567647710118420007589088824822390492565931964262812875382149384587205647179855291459735653842785491091991293713213123832577436896924083786686849716029476944825562036404356413076444636582074121070383875979090508029520660950701516903905593484955477012014339389704893142684635349201925704675736541012108617409299527422973508995067455086625131035417959786558992358895536006977884646273450566161936564687502373437602950926511327312066774678212590589454541143901583274318273587207407955893528083037902318392345138839926460575852071561449975600722828731536541335018561738366600115015166166943503943878506731079606504789080258179790715835870180708499795412103131152310874188349153245906980052341583739567609407874560071808452080695689165937137426537151353429193407897748093476860946625451812314203296080650095360434197012884942203883645870723411839015560206622424908899409624494258240440106053166460682081943152997498662017473906897509532369086918110482511835167896271573169225527744527000959046023317429724833808551763777637586140193736766838155516560088972096581264436978073744840783302975848363457496266240831589684519553823431443686431302363317422759172389148163521828669910672502829874533036789557570607788273027806769236428050532325205937382002530737423466843241196028005710427387537626568848803079462520678720068664138273107702988271408246642031928200217450072724552871636051057886919472216264731323734659210347726738659238125593633520096522400825748824592651702450209489712411469370733938782200359809487265060816180278368100378879353892591530717891144169093410924084756896968269468499795376984593336636481737803568869385061220133398527899027527437345911342104727222401747652156189367326102873904708270508946855517085240846216046982248136333015132530991812224974347301985318021062438551969720200519668575451672485313670402287362620253843022425858647076209540083140393667196880220542563996253967073912484083522324808523560670672107255319333801967209733414676389877933737068068036977366267714251077051388714532331443505892605641147677129172225049365447416679238778985692003747525900259163440611918593854770890644963216446532321314859662312509276987444006797270252664753042042620125390399148350667737836392542999117274644610044773940402624553392400031424323295692116666030612941867150626510900070470001618100020836318062945240326615883025550582532183245665933123679394286045915013015761471630029864363918303824657496523170991203848531239755408622493063316688412035551900723452942229231147186014169165696162527263492710501113675344920072065782786868390154137070580807784919843702192554433486692691248466500679484652653086344071617145721456033186249265156926057656331973661378148858994136217949378979320594726550413329277222191058342791735904255961715908331071583616320857857580411211687132246577283882802954863521339424360057051641473550251046017506843007804809471313570297780176541448548460060383927653184470687495420381951199247438424877291963931570626900097968996709829851059214316963928622012443336450551204340093792869863135612887369882703597127485574120301523753177038905038646984339670281288249615222291865095915815851310130755407015588720720425197472195790110066294418702790396738241148515355084458332149708319379132339237810282392835962452157589949103203890034001465713928266100244380146240857962951704435481589565987267533169299852659792580647827640121171071421499445465424121953523637534388717212157617476830168237627549737248732249582405623935971453392788701654745742704795888868906242862189534252220652164184311128890581563573372390142179297655351312820209762001544156578711476186572357532685231497713492422896930371711390945660916878897369760637535408496172522941638220189478553519711971539852335033260650568578427032161807000533811994885331916553333036840457342517646588041076862980613295023679636629742563531202628860828394451602128997819247879413432795247013188569821071693505631452119092929522310009227001425853603563681985315218404534428898946619707408689311868524416666928694931072367463984467614335168947709958835519150653611712448180284929213310422869957465760197933616236284573422469563708469454252969240756367169243345893010602879021484998177142368351806546392005927988181486326093183440659306244120960470308130322366835469077392621904444976439470567140457181750574409844225438683706461312050503734800323288776393426661184138461379499794426889182269362396938271860213243387378602465178113835156424388168321374130137962500593195265141835003911005872559388127610921694761065676081875288264040211408340474109260624928061368457046538428810383212062083395394153908319951133506786521568726820766938471161003798263541347612991246758714143120197956594656040111904558524424207435763493288543169047700401752767191936296561394963222535118633921160300851555365183908623679156875051438110082952788936865595307471958988236904813614815055065681981493520698193455357305715771891498392628504286554709586301070886584289450966790061431474790881061291649062507389271357314361702535999422834160581268297897023338256621424129837170466116444732793348807808545326362531954548070010782493206213931008098559411641435831207605572431462029749828129829357619750349353562717155616756032114609544966264137250877870963616767082775282461617798525013851018395936089685983481344609771013287669188919815694521664392089083211947447681339445893647614219111532524798937030939267941680327521467883995688063559029150767356948042834049181606239903808711617967744321492642071278019170228843835335047617015478867543581026946869062496969912878129307870002699702193931914537461418948430871515161123076153614760994629882817953710974801657003624827597256717154096848088952477234192215943478544016555108231080963553608281332264852904072609019893342710285752959497059741529048887790477003454131985515167812145564718807590530571272924791080590226352265851714803279200957031376261152973822209474018725804893807435061419007429259882036986403079753716500420057562833339992622301291899498917664643473048679551128217930793375986143962713348024249744044515528392251172618460673573776179110277674566335884940150994094943992947245690190939991915050647385682178666999114784045415067984772479585067049786122327797196885771359260832037112380840130346801653114703564852759358170263716793350712158297611854652084620376101714989523662466664330264494964476423709365053064751472845946030933516332093732892417523003305389480361419844330817694400129680209155485149803686049994535162832394727219056600353353025460142425730841345274708024535733956821232549110458590404458413287443144003683888102423037926663176621255154087438138343105448529229564634844696022235304519225646170973178784200507173606338702021519923301605608854174883727333479067698941519575758738335163643226299037744668903183688353723198772831738975257550418154185111103791669450400478889650447866233800098369604173085738143136682821780856721203108349698124980812341265043175195654420741690176338594862370779303416720962111334767314492733790424398449277800145891297315747567192785415200105322722645525976572914343959734780431189532292903662285109434113874291892598349858261793511126770338021434075768889059741729064081817559641060403287700682957455698878554185325051361756711109481733389033958994940661481270027253223796956589619735608908879480335431204602855037505564351557617877548165907457813984099933008908407205669681637438772490947691414609003260938067745975276251544381735838956919587771272227378248702828165851371518054323135271053508323553385316609249134353240064957739613733383547459136099821376334346467847913328010240721338125139706877666326980700030224701678351042162892880469754372579884932041460744465676926326432658321994699118797826901822077475119995863399242089374871697150863291849038550224490988813766488318712396623651821935840725784769571217757164541223666355646825508089648692809920041263553825579344194501428860269375778328190018011688086572032652959403002876749280641066496801494974904498355503194842876437541791359431102701981862450647794513480161021955253745199542932954243444773359491121782554875983598804748680002020661351756566516893201438508808138190424412606088527398063172791148477122949521720829636874728629233785180824171291910918336899590275690875436330246545356576180359047320015675339144754527078563223130791350483162742231629647288313946287841375841414507036979244704298001847691631576108261826242189676628998431334750511346514798994401973191418187950727369372681601780469856534824505080239988477014754131712733424361552943147602913479137447315098571273063037674195719508419102626384893615940854612873000824089946157304038786237446753328780027299702834683217869239715271037270267011071128593680172566322428310018021638122995078597808656275249597694670119215266912750018482187643023041718473539418043487680090909646901239257608833315234962095789608945367753600328388297768109069317224817389408785915635317971133576066369570838583792701240864469090701474806840262726544455939645201722793712819113949437209536006989136577998407027986092178608795000985589095286562435068874690101822134128438235170494269983277445142449859716630218542288498506004842204375792317411507902550481464448702361933059232912606975492773378020760645717009972597361628830992839467749576793712086057086167747243296050009839063701955299699043452723082140011638315422139455679486231592226232078275615862331196097626276154432932460040030557604930811132084839585210225228335342340680198137998829298463262233617164399009693982799426064484667008490447289238434054224621074129867327508265279025256351173999015217958674968995638049068958221466780154389193052714047009468623256465434374535786233379294087717251731194677437731253639941166917690570783852581186691465517763967890203164163894237167568867467718293087653280108325582538072009813972103936152277025349109036695525518779164532197906808097722553309859953467884684811272889119381724759145457848183328303385260805167350445131926447291466026358529169905977683100976008355466940015330073590521028015867283801879444819566799100829434092923542365935731496362696915431895248857423415112023999874611948360056146132807509812653097123966438112363393178575349811949622570756239345692753003428024640508503675420509759858299284359527971893335772134183265322564591155042120983122191769234942784970914527449547294941832286462927582149291661728511005634091937277462907811950098322629791456186947096355006385346933137618506672676086919673020510413425095498524056447532416186022735299233404822726493496949825130198391154685979740908672662028288609932878384690912087013682906193624104638527871618412237071156074153610996589556945308446965466964839541191535228299542204976420569350214989135491901648901012741599290321609838152452811367838834021654325825300593195303951806824567302687310331574461079570264104509168251237106569280468112165195406558451219909065273050518635054344914299488798514520093256148997967839873381823214848580790421347875644175214262974905099624423914033384174455490984771088817408196295506806404930726431422571085808893484967657568345977245839512456776254393956139685997045799243088240620132176907991844767440224411989876214155709203595552436319447192822500297093652391438369214334575097509047722140090010347305391246205319053901908443435046776365908806802322124390490208862113850935488595089301738603846022424572909831991801404608997397173999483646436682548860492071190441957119615694726625275405986938276596535719504585789608443019792972611279911296520406532598849913275499760812385912483326995643796112590021377895555457805641856366504188758039183906463893644824981153673711997103584069254289887225166035015554277666849955042140019689444186995517769004955392860785986634555908439277697706529969204731438581046638267026097286255827889703715673132312150728769986717399555004865717391648921674730613076235576760208191907827810787773471967678564754705240906244861168888180654979913618252576750940126222375171444728448572212593959950533299733832694531812274974089314075736982196730072037037090547052144930252446356080512936153418924775697313291181233593736900883952476418263867162231394312474167792624405653713352095824228741762231345377389707999609621588894673959384652996360445670647677015680381696310208965631740831000723072937773585751535300372059858733629366473390513405741548212603947534156310381177691873219626678393192677423222764612528333712061368500190995487102056281340719172754759993903839177530880638897964932116843775883140313705261982901600674391077102165545894990805263189829778020093227757404986868807989634617173039970461146573558147746076738299316392816029696363086914874412780229883996806506020852352336951763033282437568304770920602345287368055546596098230137648611107203034071336815406048435792824742400460227819117575538274530021205766262038559883634561708570923003025676143972565061407424280599185852767011220566975464878673151923145815169374864762305359459254696777418940596528014977224957980552193733516981801218682117943423945571830455913521309648125568089904540378774940751003916146477720280798374156232387310223925562365822493846581630673055115860776060156300314615137224301553987060825239823495629042888494417869950953470009086173140842370813510182824668794714826947792102401461824893176375049115500822051614210406081788180119269921248010788680213300805819395547236065796010604519814289725238428577751807729239009086229296808533716031067812587921329034867949918141058061919976482984859846300787306938939710103899326087790004932704033104235094269312240697979636357021323431005301569489054208039083275254940235966200022365587135534335288054917004862631969248339970602525483016229032428541336937729396604944043536425053879065947619424953429020649291823322868335823762595701602044196164546910450107540014981574011101442105753255021441774124109700562473227258698081215287075696237226936987699856210800670819900521127666172092959383866585496195856503423260748091617473830144860036827619872193737290425429895212398848124914168025382989493713126029600478414746082979168033246507651725414181264721538140700119154172561744655284664911537452685283426683872160971109132052751815465335227348519796917734981966228714302852403638046072184484784180373542932375390183143847523298125099324453253384599714360697337707279589335980576437628159565432704319394786790394921575517230652867408502022164423533615430664863215001204228598355124840236406429349435925615404724647039105019096967823209238105338134893774491268955848535293460314224193080262044802970534974710257674530428300674139608579105611383662578584523111698639031329881683195362766311710879778585637402638096849739695489843199558012817835093335013697812717177250349128063136045023705008605926425044214251237255201894592259219122179001503042224535485503784597682883540558006030438766156883367322828959810089251503723859360952450014457229693257786966809108148450999651540293373269380234943684523678143623579416612872145789989718945346150775505616128098421966862661973287973316345865826969029092055129901647799541758580307320110939634405175982922084966527278960340720575469284596974881625755162168889091044410009270111966236867256587493021346104892104511397722163625422567634338374870996878568901697447744320285991811523395461872404835718079696902586790396837186936163597025002458845438664228280649595194156511861128609728207019233206064380090837917968697776474311525145912435833575588383089710402016127931471214962574924680257558069337831054380857744367771711754959257196053246557972870633312177425611863396404160124932658128156343753054729176500831456045274508120922979924869862091930596489442356775640495041534716371910665697698827058586312183282837971116469428835175351716105122850511215911509558942178710004357020602214887429984613015473294249106595821896477000361049330113440924169380182459120843950058492292049664323334941418954375143652504734764073896059792400814450839926739910594844731864920302749357900169443859075616793183024655568123540128455267071089205592340591720249154418131690171634382225357105423847386524698229790684985840705452222118326419961396512241717236881394515497041683747499348443753709009182708745863754313147959374432696247391582973094172661566026785699055940942733638515916978033551394422241691021104781246294069678306298319593346370787000531360544889866764875967278050857639336978364191764944544765522129239019381606081548268630197669530594525514735366186612254615133490448748001461439670973657473432265975660276647340463479714813477180650557442715759324049024962913474075554522127394935653091581527118207367649157730677437551534855195806695481451675257405657596515277613849377351420722817117685490479153093083884597709606763064092532318418452611780124678792904401018863368333188052196299449625896194097500529592774975689238410088675721210302930777563589821152906874301423671541120320775094386613827799902388910473135854660555393465390491457548547249697619995441070801645808576998716571687968791276916379762472009345622180408549992593608163750022795241360500311843129174648319779980747343508131399252454449317777198504117220457657988391375506041789085539938317140911534061227016484456673561319822081438208075736523195186346920508653119269151523561630319125288408195398656235735330541403186852266074863782776601895433325705888935958735649417008053525805498489232435564658941711143564278768097222323341466952879843554050394914393677429778474883822231319154758646672984625746445071664333887597709894275318360671511998430232379276672658772132771615303784557772425727415146272416331215827473067876713154125912264715492924776614185901561074166950052871992466331664901724256253261185033075743868929788637446932590546488558785037098711688067664764316260988817931418385964080726613919548247545853690589532720209325857681474498875143339580096237423597010687910264361789196809663753681132962277215153907781402376204927652539414121492157136069686532864591687617450903446025551893096194052472685544843035979416593494364213449463589152850665128647168433476431654910089078410999011748506013185246092530305068145609006584394908359716015329789420780792279545570734412095461933012999092805235050133338259873050375796259674827546196081318341978630315869236914369082646208443246838762748170854245422716800973103933662607208776551701939191710772669638380387422247345057873709417891013396974935343094476729317433393260926691273197817847539242889088556177716827819771615761081086642567367053078772773806342932646127818566207460520245673142559608365083298192087414129686978702836394135768406563445647803058203609957354260206083777291271940486734960254806695567346508077273632346726612062651974634732739073573982756100998303694047455652812900192101727660361268965322055486440735802078019238629670974798817012731000489406319394421667806074248110674583614878542626463335654612243380312239443274641914809874797720551779400823416464699356605528531640490673972691706384865558658668554358538668067600461407860350992151473330996164317018859321561126153894514856320006677803243597984945470957595121549646266626031694687318586690850128313083603373928450987573829971678007920286329231959483247156327548960620624372708497186563965467453681714334968993827392003304319673032234444223164683154579126245355790587084212573453752482612844357670359707405555263580312615352668271539742039067233169195232291582254095599502998910773550677894750230652532162708575473472891749853512496123628255455745206152235330251521264840560261669087972949072386245501363202105328597793942195166640603016199633667884888856078537418086989707253465016417669095316643361993678399316111004964120486536812663614324630595106723144605514517196931502228924673393751179909833469941739330318513255685129520649809466468992202363949408828648076436464553433056431313305563009709356051533225844698806449783123012929695193271759136729877549581002303200302902011231602344189609044072732860045560249292127774827523392743717586483618789907294724911243972339946604500434179188685282019872872645871949077928522518755869404145291280321413746481658290124158237440507005573383406034777714906348075483814444122749594819621334799580648306800507234341905380800992486813349661095003567153437689848713940947644206664110138129561545502277932256609486269790314848888097700232986210714902406818711357988456501647941113979494777346843563120101348462481482530593740445042119108630789841203962270642015070910568263828964307139174037430384564138962218755258789780873230196052928789877791549871959588972010436924316454292914679794763975836957853426820691052217897191641606396853659925635998435098776276573176314073444655854328882258382931195560194929717363461941622113095528372476119596141684048757180934186346455108412314817645561821169678593843243827733350829191338695428361945278278714142166135052179248513816491087506171736670452126025630800681676229289731401266198047257172308664030867441472540290610635185474822107949063792835658015394717618699302766573891278364199298289802384954206433925833196746870973936930153791608417282938113109240752958420153700254874994805002227152798227866863283568116328688187304759109334620990735187406274589313053235824379616440688576581219347887132123187887419405806073796600166517779821434825358503907902530397800704019631026145254028360598544272940712423149602528111993432086744037680716457524628107392649776975462850160637489608535687910194258099994953122960472408369017905978502495827906626110383887847330106818070110906580960324584093713619264457826747034664222275594113467853872021379940217602191753490278816638020847531931921915364774468975029149322370149164438962415903710032100266180166492707335773434047679028091830125911579972429636336019702751599841602828516055680708204636410107288844292627500563661193789401537333021928702103724281665073146393909730670452762350759735590199704868338529807676265437185062673506686583007086809582963721681097311761979161388843214629593706749855934731697466599586790634272657120283614323519508370993130145714291459340801882252384068050414825043715453635263606954017694358739313803445934478515061150479594437484123612864893286101525732861277872044924443177695982261391828557932715905622464460985572942838377228869835323791982001989142338649898398278775820799958281946415283623350317413142479441617118936122524445764506719581115401648791173499633378247955585485852162635423756037116986147638639445644461438474667577654783533854613196095031668260836681920332294066279218375045582213331367905601304011955900931734072771806702761291932257333807485483664050265906637167733048472579827625967779334439218269598148327060635722805083517400226553097141371456461752069296231894087017749334300775402783962781637427987883229347220204179906063415023032718485076738160282704727832035931582172904633783409070589855745074273926699022266562288589693702836344925735020692200790159549506588942238988167101750040973359676351373871718116417015351183112522945984083165232431312989406537043937123413981431315404509765660663337468546526474583717515989861944722167344329371231511232574954550680018333438070687519268582787290788113301225279685041924354923050450217931261133117261039109753778284092443129632909219689074135343571368642755341964616193560572792710887011926056404205029798690222214961840721163919248658791979917299034216144821381775204889371995306798321212030950215817078092378068123496119581490899639192899146726459333443677825147419465335189311698292008182729087921784297909331179424770255789286373001557907180177737933227238114787952629004605442017861481035659556539942011063374855301115713838939853255630551952165001608723229269197549860669876635481814129630445816671909397840891790583158085062700611441966438900404743216306412656499584729462199857609127445154288289045711446225532337645554172034862093010556441582674350081755770019510672129763768094033950989798755144803852059000327903926846902121679592640049295002480643299087147053026579957386640032612865036009754716149694878175173016200415598469638701645519252198443288710276015744527293990462289598903222856878001524066143836030470223843966690501044901261373394156302271514673952850850914246701000990750774425969132603994378345733255846791160769121318982235630653139586046864222716572501182995680095382608936214559365294957080072203964814275037568407834320294328787840629261135119869099547206337001795588239040323458744071613566144325615181136048692885488005016205837011614899427394649573782375258616601380578000148964063946126053261468903955824395561863673638535154762049012476840885331980120257016821560963033001124937377588485240619071119836771108815171437624148954545726389195421821034405208313309982914553417635068931442431774871735787424035423931299391629761617748753179518722368560741090497376686994122393174182395358644285061646045962353109675078524293319881264421005906400544782760243988492778236580716783003491016085211809939779725972624805904212952641484208416019573388926793638685833882047392569990219579890036887674688676599595161991905710307303205511844887564126382042046371979225147790864626675455183543676326492140223216761369895153279838048243447013869911211944030558527460727900019607342878854779777618067716645378363497044099638422432382001115671130286096514127086374403371597185709587441530218423996366261814538766179176678099285670436081230345906863472659843782150399969416524136699787055508081825014846490322225378663130006257869815618802724973650301942867105424201597069226101107960154512009832604190486178956945270151456536535884309350580666882761638413045793332806414096915683216966415442781810923502819999771848918802976275027107495118861100993946576068787598678021127606063209765752230186130836073924215279570629916566662219054747907176463756999341949387866560849027030973835941054346651073083899412526621468545077834339062530328169176507968721936907361590156822903104103444315554238959127464121753238796212113592897940133504654127398975857292817663589102941708061321594106391287138903670290753139272909166491605620921546991877313167460359714697211482264333305710244673092502804667376511279936984030069166480306033198535831558154059731978632654675944808612811728387589843016499363246212842239803083792604821674403704524870447776031649413503136981319944541943273428191973461305933309654913380122198176494177378912497772012392503437192592303413528387870222342961391403927579600716950384106125951194280780503126184191445371082531219096940081216595393932788404927559006863869844858214679365222116398500010895077094433455072450413286418243034987315860166345365853427550290743959461949212604666051563634465901217409958622752587709675894675873655764686945589330218127272137205259677847356553169729990342440811298078757750158348698194777150780525006000632626047949412558217025981614647204776598232478795640118753615673631565567208787383055537504461514416611203148049841198726859362160586526444436455745319368194181254624897840846583341771446953929400040703339476827193514056922465811167324723124347130219114048937665398288510611790965903396698224450440363450998026937811896983155892603707963086313329202866700660368804290963184557906134160171499296061866663702369778088293689950285933935641946350811523768045898443955163330580922843033973411560147959546128519635412000024056713161567316634836265559848969721076519100752598828786662329038216698867724880377726368421943785924869985922946432848501485062839994320436083876905796392765508870200859202870693308471602801402284786194177501349693247831267979728358612326134085750221527407103472619585204428561465390477427924891691593477103370652518573047595984263586706318400926644211866869704458481445742300489189711345584044472009873919434389477227009177679628637968869501056592727009546659564145330839771448892938005903164570150590677855364113442394460743515245701973436725486500981499053959673148612126290916220109656505986389110530452696425548376670434821295004748082776102994992171226993398495728276727225794821819229338953160930594159219516209458309428474485621163524015526768788542082686480037099126205246321923642714660928441935061543772168068458860645453950756117331968260586530175209937833659829274085096943817227101145564375519260586731231769181612546930308053221568064493757517965372576992534181947179442753428670612967991168821466107773892373380753015329277950929218785856243263355169990254935538677743656108249895323248903410576339105366061664099248278794114116120702759508136352630238946186488657401832729323606985873833266860704367711480794570278319636132326380934718498854852246091622391175771351272699277867299962154858363906128476547999155212537645643567322494547495159629669862488276769426277357485630173807964296033704178329490089921114604937794623800826421848704463477358325979814320770116196834989217920545700764205795278814296272544370019651329219892598461440082217257107864889848096983963342636111350727041223642904890071745377109261324501196789910516262715340661002553826344487696853153709345284374766135226089119033542926871099134892635323864000557890045946814289453013763289097382209416077246675602358491673420868003923422782628517928131808202103715641981323850900276635847114430680423431551048658461805380174289836009811474068638951350856180333328035764010028724661670680694002760342644183554079839951851572568794258869989142233643417476423569479717104747081770173678203791870475778978137157374697017734557593002540843806985057359518299666330446229742484021069523266193474020501875429786394486204283018359310665896986812689779487744508528025344369759893982941929023667726631961442124929382270191900022455577781081753026077350975369513459788384860261761304591822010135325814769753278316988480604566988179652259528316659442629298559286991534639122923120642906805625741473312264819217876501930725134826631042855395157691448444899614561254003063587476193990865813052427728465961904364013723837808154183157526849856949297049474417994417176762902708214543677181006144580865453612887971211687148931646753788611900035663451217569241223250704447809025428075087041910123775337119015229928438605580039933930743652337114036734559519467693788136829497505033815496089031275024229016716660341615314605964731425123967416981734583879083663039074625929703214899251463968514621007062183846285850070615699629842351979527900746404266410173157550298496072937636834242165525079924189654658707460106951829639046413401923727444232762982256126627986096386322938380127690451204618184158880441439188250026284325580584671979132359479452642913001828822880211731006019981043322346537308905320095978667176524246624808238387081184119507038041686933626348146950213773434000226693169500755178388457034612493307574807122484418500553524145901463929503352830497250797286652883373058745304519570627982128098298993943487149551903181402891655673329875106235445250091540544061781365966683079708520429632317686820601940582852857737810705215856764274500869491070417907007376956114054079796489721757595737412521538219350805042884989628833876298873282885407904687898766830005226989149169352060636103902158842568823444898439041866815547252173731044580864050512729620781928317813887092312482522828798281860367548925894451101209388190917350665770638609905107484767780567218048452878530994121687579666347514709114453441296434877330690288840796543606848122498276225554452579598651593626545486248392912386445362046909874783380912070691639362746253641816830376020065833712317094137366020370020362151226666299064348296901213902565332255785945816654447304295443833977086962178695883416252378543860451016794967372631549973456116641321790983269487597755820449821360051949122323673529277118703936848582245952507534658957212795637473166675654481461344150822155094143775180840273916071920956921868744366193672191381393136203098024793746280779113907833448461915041887243195602006780967960491622456093879180024822249796048599503976503580778110564917370037800057589003780835743661245378210488665839357557339150317852056654670829195924291834748348634837326849599617879766810927381324633329520734376356071354512351741056154333857005922428474642002343380941857721738387188919577375823740178543866948064578086676383720285359650720969643737067922907469502375941101690829659678352912454701651062123589955147624585603908016167020960257995032292325381925399590358664751623641974610595995262319128410490021670634238651200192460985274882376251685409584796691454461040045195103236214910900978288209932986206970723892403089719085085255144385705791928853837048587082039669564936192043501811032137741205222286896390359927587931655001196557386481530075346694172190067799968292612388882068561535941879892185270942800453020699359883313951674013058782888680951208377613894720267617673071336160658372528058978052808612862949564686477734289755634976693126879292251436395274593788718095155810098302321668923479372021028263475446008547644551123388215794915305734370200859420052181071094590927647172167041217347311810662601111879428930248117343741036646180484122521530599340746610455301115328554490362758353785268500767209341559502859017278633479019763175250471823926801505859614191721472264364947200494340145872777066593829963152819491129450609383950606432666193873795240913568759862515643598396843935950807467352580964564601328880308115299204773527977641006680911864639274665815447188296199621469957123531066393206939626377616340400122495766056197582195881878162482919645835074813363032885615330163136514949714034958205791720192936353628094738731833358399369080904397009490615935985956821340365170074144583461027370077699397042694931186464951043450565606857409220986579216259290764304395923755053217877459512899311019345992316031125132960981370347934562600290655545205468971211413027701611360885061581742310207907023705831717136718323120349795841278990186513998742622096127719501594514603748626182383076305913865219467538253069373544822579153991875048531329792753701921419318293093202196285535834361915566879854623879450437350815266024714566491612595186483295913950463257523950176176459013449036097191920272659034072606485651477726300885120659149057364904347429153690553822443261534532692502671493735179422289124729066211075190388224464422393873897259949525398410127791591679027059631017605530301373809358277547985903176345907301977704495208378458447777202182115424041963796999681073430728731871567157768739099324289935539608765354502617428549232990254078334143881881827427421954982127785924538157471490076831593796258844229268635634700252190646217071677316680151182767902599407075991242933099683632377448453365564981602742478624896416343572684136378866674562648317640350345499840212312178420241891217955754252832929531716804995376179894794175832156586579328613519397986957385750878482494090334976364420220980706167106885726347236721524535185600505004772658027912039007244615208371054044650107459044215156463457460477059938980263405742611607368984765446616580925626870757217791035317554080628538713578859383329801087163708801599310766256776802644527815245088003970013196210154749481269225812403472335988702607903106391718151218620127942493832891841229955617134879493395593515335071861013779841068244695165564553818503167487414230546797183650264983854673182243218596897074109450010538788880060628698715105169272506183338004074658546938170002515811349940287608729845384017751722590225129751958544651666106159003701174858880487753122615016446457057550766203253777340052996277283699785220474916923540851441280995666459873560147616336363510050226260797328205753711867188727515926162676576990328606324653459793692348679070823725082665444850833784269903668159842408936482819863042067355140398235922869907906882865908944148776229084839533215593222906589876292633299262305698892413608468201406978722357182066771535234742279730166239843975112618033051517474221100274155159387238285211416636873530011717617610326960219337231217084952747561529868292637632515251459120171984643648138396022893499418975283908919421953378077947304015212428702877355841211818352050613568125937845426001849030709137225448466853271578612378474633672672004797409477929362907732715285691450496090829625758402042734005287518900246062837991713194601744747959691684522307325226599953473183506967731383740949199310220798892879862323688822064749320046353254388705411271460895772996117996670046322175845077061543463157374813002354274481712844336590908118326700911457148224200475146493154015823947868535309223291391805367296049713351730740405540221377392355227344459368101759502507808981566895911878630754645342872394935307618571549375504633357387010997532865592555750217569102843527360512329403796642430015884702976196697678823840953114257388194537956590739755540171993285548178218983137944696973514855022994497375095665696879731280198713693994132493157861364467376553151978040003053790499602187407978170049118079909374170249921164357645110567370889512629121637137394324578762861210066188065659844876920451785747001303136185267621292750733823794406701570820995170936122973336172211095257300775208463919661068827615747385041396213929398164657719445030507852783808208308458647760909106428697241632496234886124769518616674123519769956150648369465822966628363438511683879427080227556664602224317082579682860831449714410350267460515122656337159419456862191546855536244328026380191057063460638555721814612286642048020927243538377640452123490064098142007037666947757126894269219899532697276035089341879511687512004041082505179530061977798441064604245231431328772947832532968441775436445018939608998238651958254449690627430443316753514204936771444431142476549300832772389449672157868107180223082583038947545043958863711238267425865465224505468935191887210040713351458902461659934037471590886238201977261557364173719597948914150464416205623339193104769955537009419305575354622288975101153836770853028729174687090206963549327336644728040799164176347796993296679890891228052562807893587115649994822292413984285352102032544223712365531873080904181873138956565736643157722780780053869188646519220666014199419915904387204128061207331607723853391183334093400050752430115321987917378504866747767120587664137239109929548607600305270955752826824307470855829451772757358646428740102707232790292563070902802954668791593274739016265708199680053434415663919876510181095934926107382036716151023352818358817717584951330574425367904706204374927295220483452820396413203695100049714017894709392670965999505133975196681705420028952941846700713764753893825237201690275865068430500248285180648870873512486887826509912595600284397769169052704762305614798207734191745300725506084385075099681244408238910287656644280382290122521313037526119844642026718132474966336780047000496275059833298193723125516969195606054656242601011526441898090426173458208105933195954192537015979808280331791048079415566512997117040767618623083222385960856706155634977735139434931175232741808565570663155478671893581615300004326830825304536999397392470854097862030754730722475247324466666233505717199491936017282761349646055097083510884619761796657285559540209263245488885736988122927594133091617544039125302787700551916042188547290856520173665712869887093212642435652768082993605670541920160736073296216938891027325755807273419625561856374241521184965184275677049934670030411840630502561984842310421444767213176404208036977689720790965493224804956900387210218633893466861512857436107913008291092972254314508931834168430186566875074815039149741783578843485899781492888245046751153112921394611552465798607378829201707831298233652565764289148591432583331284232280040254539812029582496134002243439588869169163266800444395184043022387880182016881486765226846828605572678540500819293483972880056783927891901976265851851566782468409247040249850980396110053531622503108047768429356003858843084054377754411410058523410115539389885090589244498581800245222943614995090278229152600339476739001540094155372255849350211230193219539239454474004469174115036530659860417778189598348296382627068936263318552362496671861883754929668604392505102417589580354068751971153015091496923917667181751073200467457628531528106282807659927592379623674551639197818470879589603040138581319711640241625746298635160709137027133941244757430954647304510461680296142912345852596496346683545930429277425081427355896809091865439600791907911550238022409547807479159807624062031130213879542286770545908371798177905156721203850473972860438875637242896565404463919304596393801568206379420769870378235770618596044697021901206335949354360531334397238666585418611802771583900272091815323171462868974304017805234427055236484479945039130305231994293458142260086981998470963562001216876195357076285636644375015798638109616090839806229102917879012557727007842661723166904292688607055713233402366979327284630263177895105686826890982482469216605287263296200072461256597856369885781758360006844048957915220904595193308955604391820898233150680573288883184941498353768765262144180329845987527027620360301638579842016267562253535078951883760851323520147498768273911164718008108177866180271345333065934790040996986661456891529998932431641064162051332225098991511352452559914822807536320203725733283716399864946244126799634612946644205267524022364067977154543672949566099349385618265242911227091101809575805605308337726529707632276382624300360850926025060332028493259164424214863431735180592481060920728078867805439238378308441169364511863964823226487842255756450465556108644309230187340697643149544627963428599386636690477918271550303081062287516990398865093728163325167448463440936091455389897211695781483961036565468617605646004764459258072212278730940888804707414622244144382449998019285845159056900398584735874746888442721917784128156439402845557497094119146446040168788331629996569816512955164631469040375800383839024361097513986039152033007932444264457927633047168276368293560315650289133497466715125616398646349691114365047448340281085908568978459199727218377028925478651488262002612357605867046959251588928713875694751661544585502287456959537329875515068350641866440703762608323104938361581837613327683311903628073666205162773004300702360983683884444347885704900384718238147791988762554678263507509295342106394071920161307617775684982509638409188029075670665114629437797445365527393752942700625895849542922352463453784123834957563359631213090049642605714730168084492687688707656640740957206328929154966376564504535284119514699422350859862961050106150535926903239619242905800029625982024865144666562050753933472702734413096533558339192400057501220978490033378064469124997506453861368691990201030875938994494318796769575572525112452632134316093317822533675940094884536790608192149503357017883380095107323913978003587472632837895152649168103964934891380834001219308797333316626740355431830149049315331340568430071262955256303911006957754327262281530670540236953006395424382569585811272348977904940716777857993863507938414949568049195326269686079406284587141096772026404619298276087385428052730693998166474858277847895048721260052049810758949317140442420704948962193423492134693710360893020207669590315751448273960866002817363352992099723010831516532125956194642185452755153223481866130920601721557473670271599689781505581984654920125412293801786084188754103273144070723890770071983112088326574509295944500196805510221541009237859654270081763423076590267195124628924982549163261584067167160373059097827859675657316309070497374320777435512551763105566993032011323674523229237568202135016874652052755094526298720010667230869600483717531226530086234588998993465983057378109551780037613253342212026311016278846241945069918460098306202723687839490689076622330598720295655339392857659024777601175361775468695746905255815446370513328697272428474041751970807960408566873894784321651449703908384602530165009308674499246090537626817570223546637127253229514565952636417820692395922375547130896946865547586468055697810763294599556584941999643051235969632802139775109610023290728104716468890426775168104923604744578944682070020608155823950532286954700154188522170412299144746135381044148128229227434324423223584118408566471780705274415601276042139712157785943368002185319237356620626488616472808639904812436333260156684898443021324535865382700602827321110722642046088478866240114780056560826355526085618345780837192066421702357763119911743625626728001344239813678153673714858796325565714238743341607179270806496923540763038626046655996726031007870706304793305858096356322041337610395425917842686896718906660778901862486324970049317432662679065735637338073876592624128693386226491449731663288544022139047779200351513016176306029975206723080472587416988626373462385411469566627698752812505420477939850355639727612442887501914432114011005015756368576992573001260952361387509870827480903029702642329569510466498070599837612189444863121549432137537810519786768138458428037996077933503840047806352756361469432695961409621010684372798465344276396186966278078588801622648627971664225621148950799425784069012633292851468287626298893030343060227042607132686611811599694466854749782501428101866937537783007303397486579378058764738801146685194334109329717083070177157869745786520257098728331158666229595940668820287955531638122672535711571543537319639538271337315530592440833081751831830125683504345846169996140301595161779559704532567395664645529817385867545452998185224286163250182397721871287127072094383590621130342743116385663557772612282401006758209311120193909738774752337581374757900099693127271397017899167028582917687743913037498316366496812340768680693047191052195001009574921906249121269208276557548741005387656726977372869388374531308322414031769632270477728705246068374305337555909859448261915236167205970386675062418756946425841059127008339197316308951309149949607661492268152313859526781564925829068560855354176307132675973530387607888971020003396516145270452857311086950895177025082685976162765898240212383876716164254144809607596957865937379906939189284569735859103669435435449488073578493687514016841129546473473258306566701045422039996260100111308253192237319081617094751474038339047163925395306766021750417078706231807102505085706495108270191443074687371932159997065519790287308545574255694342144676861124381236782291263713867359885858190283935546838188088812667069472308919138958927460252402062631471768466106879807250439154961049401915053328846920514115669621026309381334572781619232224353819454751720373814912596366033344305239783394390455057541144907735867933884699971210140029733550081359801394021546714715907689974679867500849505841605757685474001478097342002365942853451077112263125134237538382600491691069208500689605210592762080250470043360828705450685560055893670001495921606954600642256756083098227189329639684970904999848963081771512137626009500203705090630111017849061436860522470921824422077888382640602677842541284244219954449214991463483959922014975488255264035604675496623322437472166090400935220207231217625447884499787709661426201015024832249924203208949938138009445835276518801226916265939392168508128935731222247895126794081038808778031329013836571718017164208020704532669479289604284454943528615345957566550687087718819624935409929368126238984155249720240842381369258256314471306970410926066085310514412083728187104518031281553941940268364612101757591282487836130786990765854875410210470974312015558842816745412126843711826541576444023416887934382963530120282121738266004075097728563166979852684416845665706925440263357370220286658276171900639844107316678515652967688900845049623787158572779368590669208448474479192056433557886406204879773586946340713493326740415148884655267245817878397226298592289878687912625574046846789043236336701858002383200823995433374389800678514799397749789234652186267227568147784624203760517343680046009972730518266152596596513878017594496125393257662867437547739797214073400229460518964359597752411043210359655724968678932872441954007280900355169711522505112782682241344693515080636512501884078500924808511901705671242281872128012142796478216267310386485692666225673925244834802443681523474549808866260724087790846343941535852123307818168428822675683181275255020037905249627787447015216332314282602609545583239318884738230717749040960291228613893140903071861205116638534100208533769954111753094537204715862377189329368845376367200103726395860950688367771728090164105807498692651903960435809878774632448899374862664973374622066852628706838451545534418481445202155089274657039619051275307235962623728899002938670107484938209092845196528774459427407276315241473603971775393441293823070729240832719221032743652175348116317504000920281472421960312972764586020557342048579295984431015001520219801166817252827502267251238391506920106776533627665824971540046301339517854168128271450181030357014807115377403414006640789572129361276553678801413046473410348872507432288023988448934123157623077732667155993368008431368777171265765642516951168877963772482798259002213819660574780477609753204614858777820428618631492684303621088339610832621092146429824551040481539259734725571274766493612152764838348328540159221386252026942714455155790267032883102739164106037360058792858067320203422357943838952868416433217890162376420988681745270860898830090722323672844217008446014927535650669387502495806027159261175216955344014874365225184372721725662674125310222723798915183221278465849666859538432325689517420794496466437126469127895279569082049198494277512734430987288339230473767832210053402128455945005758490423949454593477400402964020591902453630443152700705012207934443885451994001364078408141219111329311991194587523633646587728272157962405966279094303701332873722276326714281185015530397591388167974056776587852126289143076867447334718487693871249739224424070459725234090187775327966790384310457602707329105050779368864203364341604031868871496306360853269152721910820509439997270263302967006511908932988492437342613462477888733891264900396793699857143248034574541719153296528490128452066017936727261248208077007493044398391992644434967684105311022522156726948717496843355241614336858741179327672322232834960200497803419321613961936164202014467489856956035698665442209473411594741269181670726482660594673369308360380710336294082575005484998192141883526474818708859994290549290683448715210539883149041425816641450941948786421643050900640619020544291099518137341734105383444900712987366801579787335749215731406496173788852357051551056304297825138863674831483285068935791355808283707268423124476644823865977280991957012709248676663974458807096901423399727453387420209146197268639727799756607572030362927687176099254913819924449855970524079994353384012190733188286574297154422039052417580159610182284906475308588473624682082068428023752499087542230878963212578626518307145544242559673172526377321886728438993758151020623108657513009487552030840417877031259569168750441327034883087775002082459527568198602268267026453185359400529107015684532261701547264056907161879049150614084641484122680846810897869580238722703597997462942792177193159858073130321086524562098682825681746210787653896887532213501136757116344548702496334888812595439770700528319587137446558268896602789925571872080577914095831710933254803357725570386539334498082768759602942250288624738744292460547662732457632342900635400740083959809344640346085359702798894780505050206623594839591985273422485098601856139045459350065333026512215610153749208323755284489413763768357344843313592902393025703823611802735311230521830543359720210350692294547396386475704460980451770880587470028019038456174245180595142669726047238243088065343185139801833736890030558588286056630248350958237693700994612389007081740064668851481979859514426089382747220912244616533587071387228716256554836744535887055473476684857063538946393574892686997909278855318104435906103798171573995281150505843321457718288510327332563239092040338276377174982130996704478937639796795288235379481846664600069250735619150103088102245146514056983120502301148705021435602847935011547165539759936799206568421943199223932922722528101061088479121897823515958023659217998622036553513932093565194803673127774185345287719669755378213479495861760378381853414180556194085946420791221090914409077104919174103106470932102651462361747182722149112124368530421114760332894578860934751198371627314806062128232729423933384267521359367534980381419720558354405768483210312689839067516713668439807241680088538105377149599696615588572972700408106697389008186730325689296565091692027842391127382993677207942150293167813256247633568500044426744901039309579785150608849344641334272901793803749906000411555891745216726236787150160864272261606386710396670467321992138771442177591159475561896840497112208408679028730202346567657144557878696254683365951719091377724706508816676328902016249443988330234580521859046981666465133027900016384399189417386412495801152418212525831055622570880751111878237479762612819590017831287754343963701216705330382150604011894832758758797430463507512413407734617729635504833878726791853303228338460415226387505817643418743611915657362293480455849855418447785162488435943150478423368410036198448293864776261646008968457641991845692350990360520415767682527740113365564784489097105484365399440564514291361477736518037583566841064064816059473823064560963779315999743465822629589016733579146364729038699752988987877526074620614075919108380521032186163374423457840552667837136266292374791163673875009289887007427942557186577030498398348531348154726302377856626376560993870889422283573493296171622728347734572402329706614328444262794636925759028162494793881765611518385054521518321857974878515722626282565437848089434525767080103259994505479479786754385691848296276715374451513358410407679645005392145208118694934232585307325987726360129058852464706656266362591593647246094632301121065360574959560785955880850846966312844625443716570904399950724397634571690567807704067521893268335177743860876255076898136296477108579890786219069052746317388970745437013613270132761998659104080520633561335536264838927148439254737101499318224208133164008695426467027345254621893600529233171928614311104924918407269661251840624407178577509391415458125689507453404925173595821335637328171517860849931823445263813872103663033841723142027321963970637759104384219239006372820477630814472722098948290695311443555227155025267751844298635504587598465387142792860176457030741559258943756880889396096917669153373177044389661476623769933129317296973468159496344942390059736300385124005433324747353580685678554290021253268059342401585713900595269579735505539159177052110282905431847751132476591930456126853324323814385827780935760429556940746070046356734199077299799348571091981327593948723804838348564526373298780424959149141623851574429675101603761109324400306966116267959103314496107434497660880629493591691024709286992829184883242497910005241026718127925126772335259795198866102083990934532440533614976888102590604909096712012464647582361798027903152031372222583626791195569496618852682559407316990501431411562464431920031842104463489931350776502735693110625487229941814874681669062036769550084668839744540320637175079893286282139324924418152221498220108516728156750934547778419188162545028001937427623678686806879282189045846723185033911338101910821694067569765461866434747402584003037646149272117959006211081669278954188179403070838775216707573503613808803058685573351319836999253349058970022106158395933419546874329036147567324328760350524436939087779436898764608888253885920538501604482630858859082761287205376476632195135552884437438197815743698114422821466775244719281709080766386386647107618294288378549105459473636740243132381401563489256052005606994209290840608599763450694610943216443591694020072498854044583940453936424878047088818833411418535261661056361711109586973696985644597846906786300942037878227927258749465854733163011389213821110293121823952624745316696275211337767813564287943796784549260804027812566556980871587793550355435379798128634452642286545760185716311310347202586444453921844958381172213443912748014080368047702362866631084931400068223400141302147608012228604044673362545715203978042275690412066058174883007631385075805964423659290159806649699108865665492729161059942747221338026584923053843459138481260938063202484076556445920419791113709573745395818234642125127295207185574869422008794866464236747657726772586776779141189907023805824403693564947043326432462413031935548602897988254380478864140511506491812699701693327471779408978554760844960268221509434570255142297911786807145754254109667981091558950109945806808920598534456022115063544094417955648594778646752973412407887316440935710988843209752033671149226419217965075364845604148052213398218425341596663797553890220432222259095511515668531212234851508615629592173120124577985984654265349248859733189891898450828070361564150738757771195696881850271522225975435815334728140185226398543619093660918638673133074038737664996337159303971071657237821820953826300398753028261865349284707033861598856404201470197337016934138649749725976141673554886821544327598116698880504930537382798008988322947579977386187100483245105435140193180921371731400814009142803042344956180566948547920293604436743676530872181572070270268633543400090745515021695198136727411867305389657656742268796183189717149914942015844774114666196612220670539423373656135769233051084665874618704495104727825577253363468061717441530197612573132799552260994042716156063871027659671659712979088913677117909212424023989826600190515048566404875715635042574735037234222508602389732296941149180141698237024178299889377439092680000274126778968118848421072703062355683593928400721523702868936444878141217987599151072724186367274567668440619165310956685598290726165679657056898750117259794349810009939108950807003900560979288640847480000842424614984037496815267595149882437152593464672661899114973818628791788063102757065390054655278928567866038595413619684665687038380675780709696046755874424241194037696951890191836097603471878002139218457655706199198025789471975751348027263199162875371921784074104624111322410096876525871649570837417020070922954735470344994190074344136999749543221744348486739643956514551879758617785287741291028117620250357118164317789550083252889366225166850939313385092319621889341549039225572412543139486678273339846313269808951568180501576532367993653384018403899426139408161689702830717373849060622513091659238219872619526447958694456943363302241803750257730514020870544738770407832526223977234061146561396713910165462183454953717766938423611265136552146815261004265130812326171891808860203107316744639174053747275403132836484731869896468612063615184780866945318922103138780671250729384975285895073090558008808621785357232107562736520610548900045101499454716817556915865297587734705646665448288498851216335437418906056527237229880284840453986191116750855954554173163952289369003994856718599473574624235046114273801946268627556946039892154894493663724894992772761108001983478072025361609037518396979517807915136591942236925650442689692205253271694354170902435967785375188874528265860031783216515711560511239668980785250348425911524337109561656413891203005234559273061568199275382189987436059407634030402399764980707415172620677053885760479258810882170011236253653715685814555739346815106739043486109258322162289981689886959366606528097503072694684807637988275680408136911475835696671844143086408577701048266527682495469358266809824354506001521708669048511792392505316429738439732358157372849352533473722783734790607935484573086034206968810214220366346058652646814213321322567721526055687198957378072330909375150374878817347877580443493732851978380757625601711728168737696461742962725339765144989185550279354905155732944366430938014446276731575208362843484837781941582081977059282248993451098153028774562914674061742838676303164998707479089648657963741040212583448256867600347719553129086309914149749825981526705475263746164413830021762595691327818018194627662160566409617293734678789610165850364856047699962292327235358499299473486906823920138956935057050096606273826893163796216747598141604728920821443612159288257337392808260441848874895307204038724659253788424490723476382576287143894490968386305726601107282559555669236086829695608690032670055826749994109851021019463590280921255096772843540321179883106352923804144828004886903521114281242022406648412344855448699117189970544375543501993124354930070671872475556389915943308011289643142187753584395237931353623745548781891740319860297218960933978787148653699198456391935126303627986571984567549142288998434614476013432650994113937963142997398434263939250088141924645178820294857139296434450727164731386295199086348723907838883808088450289473235817460718267256059748750770223485812065201140320725140701673827064391223223269627831476274640638730883158778852439075558410100728919344552356893653896097392887407444593346531620958567238201121528743415063782320243212040580974907745855611304117833587036154340788656801476650917337482888577314827578660427101262633401234180909130617456733218778497527214499424236857631559400012657386012388878116556565000590548909809453148392092390261478736504230381741683526615072232971673874997569121199956247241680968325345925615137833226911095874978203519640124819806856314345035725704832406186057467315106517843760233914208475719816624900752648289982957265586249297078349601221752231252775670104446878086758537676301997593643892943998872829575683387398727781957114063605376910311378005865013250296972416025073912046563346878241080210792217480422600356912642664981213864935498953068692492327708042767281232978910813935081766755386311211969274331660984411948189263503797832616799436583228146641598209957027151439049290141447611137838779848675381375930974456351186547614181659424317105697729713474120954662181296814272422637891711085580156639687119880075816153065073529624189271757529414698062060590507450939906891585777300141190802792839741574391201508821158311834725478817067911708374335637615626173557933248162976268885029849317088609750188477792442042768421502454877887875781040152462786787899750772239379058987628563730027134189456774902928863284813350498380019508163280599834490346927311202163086841978244387319597165632159898525758145959418947497043498194651954910948919090234180275401137852574004495862688053919173096303956958448146649478893408147583742238385736611356497810017941144917812822127701914330821632176270320354119309227711281514172604216130942668161607982938574595631595299445315499972263327144831376951722565320171213984898375902434641613814208784988477093642496193122093512745397910612218937191077349633058837520717334629092950547264817758314234194832247138224344160433015786117196576653544252101205538386925595051160197210655170580876018575026126026798605209615461802865099902639103318396935615280854434091658126945587385044280738967032018940142785690121014103043585187585524114815242254689903090216835479102748735418400801546450533942051565378249270733133903928685007475217636069369041339174274409724164059846886595871973633988987628330230616185755334219238626296132106056873227651866684838004166741311618226658610649531901601083708708775654601525901048188609865793477732832529264468201926548796946804826841957265945391536161751116157312772883784882164624646416508353941221271002942328854397895578682531984528638254769089388817575205106128035239350013049714425327757742275176479775422299239293807089761812302489465563001683130768447467641350089541248990789822414509532546195481030293702014574953851931465526552308026960898789886345783877848472522107900042807861690902087539474155118215920358774227758169701226261482831888737166196383312152623446417485039294194902776090114092411024876519030261094934052319694076236576733085104144228434346832975388121405282333862914716544021304350121851395486673482376567155148881751104305614144956393421692046555442772988330898918460937563303136423044487911917984975354926381151125270448709579734412423648658495437904946555717138390104697740621104414449425148349955392676686326040852669571035248322415947864252532664898566323323969055415394323991969513904091991658984774367562789939011001471087274453203795201510894922688460072143049873068035483538751976941407636911368522676754610414540595404250660064531939345903936558357586985116797895273415770099887766594989762094258908833157442109211308573850849950364488724026333755590643936890321868615145800727919426246950395386315931270420283867611447135546525622882195917712145961744585214565754601556000445334483339580575562035540108442985957412235194392897468579187364858862610647903993234879564403342251772076222371174630999112174877398222736445064865362689838049758286461471228724836096978378866109206647422962143530199091548820998997994528355314070149658877292298390076037912122067907611554239736840179289270840719874085830880819173820975079346158203221116673828368439797735122683890676498140016554553798912361318973272718716839284055857727432422172995174842471430291877774005678226193921541315333887794516380004335752264767509801830082054296662699766045553960198119513014350852054734050871952502552694591463389892815523573432551231110895156735821006372305684937301172834106710123214435449474257909689989075537233001470040414970565056188334262472815300077894295601157881531795228782699508478426862124828078125763690616191242808108613460962582956939706173677359865490132243727107002089270288021188623020828674546132904569280476627045084736391875859232163714979343929413604288767258188710885399169963996192317635686284973615855622945708393992947415554580948937878758425719142050048888692435216488155743339257025778360568855368939203716639012364918102198569209432650952118264967254240662255473947802614498821585022100382439559083808932143648457563189962416425986974070300732469734600120049936993325764879744582777876943723416473090922478818883368054851030875532997692777233886134547229807748064151734986530506405410728402237890118242980445060508787612059126292227945356306667485359707672118850183294493406320288234035832117710232277034794086633503045974878381607533277105349978888996414357625929851850744922197437331442270546982967339336875235182429496447922909248410169004450641176675142581142191191349088927930075464172502143152952537294331375901781748798863935912910367340752046955868640848176086847491214131637055785573422228516147094923887734340796544537104759498359169327751803712439128682836498768730790916479223435898934297122838062904556359583387529985140570543229146433900873831505486784391136936719506144284842074692579771969258684435813706708131845883745599176386676931579181798116892573498679648014877514700450885403894764488602064768461299164674758001910633253244428725329673278844642068261793598689992013061354224920790748922218957384214808046798627441267806761633267579509123574961822431332931244089816305799335777173742064547973409551114341864142969803053912192556521669600844827197904737766704396919977973144692454501499222684977024945776101762182822519809802286324937276616807271326008244792821147341421961744063259363847418101960468642715797445722161763180217131814498241093262192163490623320421630682839787673099187501436806815715285923980242873446798584717789353379292511106489927326752819981485859641974651964486485811017429370341100809663047841848723602554901792712439631377771042072837832853892934872514653725907752428004762608750554135968909268098440122705055328165184297138948555812869491849234170105031365911191525949066084428814539031370291860421890120710559809567031120103318313801468597474866889683351943258381685895784037325382547160219190964212957255872366100966373649836192993606010375919958731703082784751863467445886372677652765659859983066061019198276351242199978755287579825712304417452001642902410392762040578146694497972656102664946700528614858890547624274027880571588375730168517125544562438051062269428104199592292731696437813929589380904527608922806680487465750642473673248693334607273704595167688239940025311074250937662006271478263072591745213345096368186571285687392721726208491411944227296323080438492500503608619094541854151680759357933165393281183292234066854203424677592907683192437591227999509410915870327963815140042864571110651960789784957568396781893052534417579630679641729069341819898738604694897701832065182274282783613786386465253686261083374482882634640231686164561401803075341560673797264121381721712235785638361327414253472451482532915765763288155897768629667630052983780515539582999476129862268854825619954247625335308284851987818375237861844007787434817368612638661917149566108158494123651690911080231614129303596386708373695052017812772216613163259509826590097331423301760137873875584280605593225670569650934255003524921088847232541422209070226889837745270005089487085689785665448144772202518626545813979421575682761252442996892113324968285351190956648417104780308159913039521110460886202504627382179721701908052733435040094309861045445892657946858307646068769633990758661067579414470664015751693928635526181091723570116387773950930340510871776551301615153023958370886229011910599993464929238936370561228776877263882465135352557168113410205497068468733260589220376960549757431733458940301244497929849323584476605124393738851502602580069726620438448332944161410240690735844834055649947339253371037807151890626570603496087322303220401818693518271239988749212688762117195948439472923283240510242677098214777474741515422656068896574011120676264198000889651535693589787148488676618325085185271854290170025288902977370148877048256401921029768597226033791010968818336888447624626679069145996310162579446061201381606327920655771666106412666901934274002760047905337856751437724052640605839314886835078476737784527019466448940932265869560177976017736442329247409014201387289138997409009982060428646997803203765614950634434953362051283140353045293652452514652280881057560159646128817725115855693759119153672390514362499882058757072332607747896456792834079818991730854343894366083929169362247481101874065356006916929839111192521592906812276146478352093723704277865505627479968967549516751629546570525205535586621446503041562494386159397455624843836683486917812045716817111121702271121099549861256670914658389412722129338543727272869055522283500937443084789671155101210574030526843637411570567300848308990055435918755916118764939687026548795657066680032074155032381487120962862694665218469568607558186776229211955908945669129018644329605523369694862105242476759724695630699933156339177842394419460529219289412159395869768502715876100945226908583403441314130373483099786699303547064594974753974381015989851321871050896663873705683696322555904441885578365436343909235287902436082207318772148959016203625243745656644278786156885573966847436484239082066899814999965005005402284142501179465277699402660362996051548370154407464592658011275662392040553004030317010732065602050599137497749262424323485151251939196397592324153138046885136924300327406095945378641881970801623996181641390214146932503166636060936337852929063272158703804701265131780598914753900357010871459126797106198229160292737664959871114675338422004413316765665086034280283076379404537217304548746560110324639687907734226662057794647830238981565277078870426269685858074486944739940796244811449926563797008827051571569004477958270640879181706500835873753378772197777462170483890341272895933038306130250939133737309338314594732071790444557554711031968539386799150831126414706086265447900701675073958132941029249223652008280506562226193658546267577152842918139608692974718564845024910443245765656176821080980192503640337434802491160731271588972366538531092314889194604484806800136036989738209418901506248789821124856564617362751693184089916794580058752653462814586537543459572868415856489893231203419695900756773155224669497344619333990014120128154273961151805530051185133597837986485869545130369286081940752076465993631092838435811018508859669080270310366801669977491554150998862314120686016372784599040836875013861882378258777054669160383714458890283641123190734631810006338161004803634945441405698252166906083871959895438181714517044064047407364373936812197294919737556113305480116656802291574565185067663893532923183619861636765598058336964590295220804207527350046220544884444371495848308172489368111729788119700972644986385075290104355881113486898175593825039694296256780577441877730172257491538941896016519856860576089466064042585710954494922896916452060115331103642323252863799677269261174419854363225740582228709988406677454875675496788506303656623418728022544420906466256216344963131721945196172947058291486258284642377479748577871324805583193876467151012495707955346857015567415768826721230067943495420094192763049193046753220715989211545043561559751342382869191015158484659827166938269490305679025882648288144648007991659194156890333758709810430646781629839799856755777695073978701463770965289404352818279373249762743965528528884106372228016773661894269298165461828711976160337509178346624379353776975980604923000716175765067519378902276198537226399374233599463287915720359570096028602770418363938948979982410265500547972879638208556567840128853327786503293992845596849068459646099284774393072502758808743121708920310769630101459981869370026047710491041542629214488976100359521054237032363880999809762354059410821635565605034030264948839116733762144211430954379559529934604736327251465249677046896654402163255317012682915341374752514404189474370429046723987388719613931675970535650354817562649317716682156397082509365997789287879897774445497130287531196415549985436994957427025792907744963526805711619117230237882163960268065861196928071919167166737745711160541135325485198032925287884520850937983898248666228836103706079208196377945827924383178167017593800872040871913306122409192830134956465326808512719535675471698006903954347559025038407628233260703380821159462468205931522431290117731911442309546045047493705252840717914800500533454924665911880968002305100782872403414827046692081562634643220166434460780339317352415471128957140561246734253116507578358133179288773735887044325404231386300430550175154475789791564744021420767093948847461342126672242068087455517329791036731091430851007484966567972534134344151066144572054774498617070190484591079639026078435802420634104777189510639853803435255979954714241067706068244581102831206666624531730274138317215257445647429673007315751558883014451991223728052038683983612944024518861466961719830210818483360450723296619428676110285544788399668297730105704527355470436279871495655462784875917046957796484656553615938354078665102385581605157436437537618522265255961872798454936286083449947230308885665123779975520967324691193972282106040448579838329354472237847257732008565361744382113259962811417868445793670100141963828914758095021123751441349124880254305907796858884634582611247639019982473537341902469045034397428489447666620157238927381438337477912036262631250361535717007562393066256016918867033759145619329035572792382600044151856736497686713976160820613004428068945034719746447438133620785513708767360312307312276526588787428180913783578778610841056073082484934469239885043761173722130319519843101152862304881957447806725245701121189012295478747310545983199482763790766207895999106294207359406249833632924354633390417559516931805856983962805306207994011728494726062468076007775208859256674144515610172936095152105126870575092602301724710153150858654567317399735912920923619391754973856933711687194265769677879964832094920739380827347080057244908737980717153273950438064972628047883425478572763648248692173505431320490897031061639232663748884970480513403334902043828582117023963587627817346090672975638755457022041670857510039993867492120560507242091550133735616173870745049893553924837096887704006364486231985466291402430772664987182040539045956961818689904423114802061190045853151678650770185867260846755508870436067633006933629543873477996264235711140325719983256025255639083375341567469531261187696900781345903594378698200282757507050763430081246262751314305593634375041543089480854244490951283234405374054238021468443712598739602923319272060966762744698977653801075405419945797300160320779235496216618388590373627524137914796008953320531950006049338454472514224839501766356626193667710597948186419457714657390366902426920439898940775622111810951527398376348488913278231122725563996793929338985035467984398857926323147159321595411361227619071815133797596723708111442603332554097962651370930609236747475187629481178345064961529024270245768113743415429883863501518400409705708038828648986712023777008108034037012122796101896598970215095920743913788541701772187375727473913319736136542624039838175776470692565371920340269113417916806258029330451115020697484122289938958595026326911844190306667557835024428145939255333219096056756582126524094692907690021034073357896980351004598361746207663122771537417835670885639608965348052670375939487430462077891449630784494512535039961156144521541727138841256516027051845417484464571470666339982959304459966921856802507065224117388346213261115844994383055742117065017289887267921567779199518224632146336716026334264366830550659817726006738086851610561318247035694834230477353123958171790126728740570328240725081222858343108265058669348801666465202756641057085400493357093935147798544032536482077805681256028671908680051480789179819101166015055538729110626646168830018514549039105701521140685447764275047377875757268718227937587955697878650927043662510356720859168243104726859248825999470828631203819309357998482431610148564896923165053879227970712562392215018749863284684352263914999508365366663372626009925025881218578730539099907874851861940078710736986191791175493629204138368673499423096303662926460948759146088286404175980450648291756199634929901317001023320986531518199082573542290680350453373012869380820339377961512777125614057155018094339664737372386118009570166389478243555062916168968394855144621370462682350716081641358639768243974758161879239348061863224118302125115881575113118046132427303477559979622822632420455325804723974310361411911423650704922093917457784499627834248004540725467418381474454224149088257542187273716876619144648221617606912293729600127646099980837301631442945495074913612321161335525330174499216948933894580929628603697743907564457952271199169885594143920648803777523303441478131607111366957067642416977366608830148718444168513892981960595585083186246263829933516534383955165829549524884854509340636268779688564041647149174979317877912150702949452914647576569625004116136136692786541735814046578645696196138380686768392500007092361569749975149878939757383382784444942272035526646805316062611705619031241680860044035146269877877104130170292693127577108377946443166035067142403976460198487048013506732310417408463308072266350249539307951031968468841431152695120156754041051681837937094412380854491950173400234753579798649455795577932113256919161237560394447310523632624611940031821269169234363057024635816470097758618184518719820806916377156369007088393185892830505050688323819635714695391917911287091535756408326693415535892243279707851955916270074110492004947983193761470628634349044588230330903453418290013807918898547424639761357557698062343202877038958880380101150798990168371086785950832127795452999677140653820707708484241361361459520331627198890014537156323782443261296409605002499155383680152114522301956335168097419764748926745455911349117690836312649518542739926155350776451805910131718959294015409523281104261460342912820204593646479349272595482835184909768317506184277440013854475067175554192943358328659489634609468258673697873769713838022083876426190664502362238838078071785204232347727562698722045248328625306871098174059573466139527065327407812733861440172605265973192252174115256089059539122987079041536731275315741439814451270557253159761185890279875030205759858260510670843216075156843028012032896076740005228822629216963994581045419098918330020887110165914803727352766532398432303769189435967355720800037238817057861851579395225582568109741075149677317680159205696482588691183564507862168138513637159427403031685213896988957577957881334932809800767373632352706202474974469287666951381706180743261531920605105842652571493400823208049978865205889323884016406823841392638933794098771179245533375100304690370155928589591561044009642852264136214459061039916201613921087671212792280894653333498943771233925205424454908550829129452084882072594711597194416478490428338287316020274147356388645317836305619255532906133365738652196644329623310604364460271423426941316536529619757564513299303582596592660020569550493037851633183857501366709218577075171895476120992940704129257279531448279383408109134748616830909443707678077884118266590418742948089907639887993512792942325040148427121992376391235541912726810856128336036422646312468391324774574266246402209201449142523958629092141604504933332815584491064875814878849327910761651420595348412043139074524974107024823525142862372316510560759933048420885839431689871665021725411679621794725671509318136390390461603534751775707485149507481116072135896277397253101510870229212634711176332056848969974582784753634084695587130973566985685235180783270632649318251678056620053372442600335499535545554237761890157157082820418091665249248550557577498245739969219237520749030072956944979978665437214611531464836890678759352120047663139058716879252339483125747051053406933858783905994106555928780944021264127675743583005586226791321091436808496122526700252294013862781162935512165628102157940223559751970088544144474279944599287884798666065825875464025281698093153836960461015043577488085434471372185579009015528943253650546854794142855939272533318283474113325837148027711397352736695410418324715187975995080186860170194373742089125863308777754057696273094709395836557948815384796080123513300783926400484481265495859410269194494338856969845479913220056082421788553709936367100883314270164832305810244348330550898892069292041535096969893474560427486419880397932903593345936105214167090693283757530231853647072609074942346814303327506671633790523810703103501328564175266413417786119246831393053759006441287301860194417532623689961904552359042714571779706454889532435092727083480629030760497489846590971756328308999024571877414460225430965650407995582581514694878924157596369494122477668625408897512255534364126497435195366026674747557652240389037864612218639097053357917869139730158597191943652319135933466109866398814429644574664914688450415705077128946808848835438523762002887317525830395861353278835208304889346292909050947293980159578665636098312395431218174959089744195439037015546241191718594136642329352798624947696541061445415164382142804901932200419195201156061325661954441692378167831387892316078116286289118835591117551593427368682037321935959840891477414724574857113981016785051903184798340051056681805432051734251553231280709384844183775276209473472937402917057781756291486561759275382803857822002618822459290051054933308956622236289300938979900034821295005785305704573858699422764296114454378530017743731333425974932109783767181570863937271016870970354562136186233763734849919639038415476393088361887004921259160352454115817048866770514740262463330813763039753547317832316173571426791764319615877735218426518003889101217207509447792954051232929007383741419159639529131706819887793253664699689606981912727865814447611738095930901344042529272879207428916319416907015212368142498225249748085397109123905996547242429684182096393175195518407090159304165565946274356938322027252050577407514307648051725404008953056316263817726752599633420178822212571888819542379632316019750914808729994497239885795988062297037249005937143372950994917272101762507718177295578649965690701737837794907144578441336237514337496192139497433961060367440008394477931901538510869274922412066786795895350844811962871554196816309941102720052052137879616597188478170529234349261313563363983051068692150437815592810865648522091206374490850450004754538337227405491690236693660706671650973681249421884256099762731033224138794585965461421735339743796543243346633285712239001739461256532490974993701767256089529893031919621709439540393490295624155209130262608375210052505217403597567683027598920590233394171424213243419043022405070904154186022498641788234776856259493007366036391263154837620535991601960755072233148801971666991611469274060420512018248848306997314509105962707670323211906471795798566710121289771433891247347523658928404460709658029754336500415038863907555681217229364253613270356956661496660903150403322207134727541795435329343218501021925923948420165847161185538820715210478785506456872439709869780416508632430398276750161852516003449724447771528000767797560836375835078951697752125464791276868011165101326479938796297238992988431450043089465137151294894536533533156706234192805804139349156654376948706162474081927857788030828926303612740393352191535854266608150775722017005649661238543584566973716929894463208339734113910349753983130757999436739649166335152989798802650702041111701201776636030299446604420848229671224794167558587810557270783950769823771723591461622912930749299565313891221455800778457604059400992308312267746847438226192443265562132679963884118383286573281346849757263089873004289339746287243300397743621609934479167536992122792762877525774596105532960180552847322198316531074291898252297303014812211041162307111567537540242792772207063653207407129447368807032462564189136915137266734920811535552663323357543302338789201805676648336395695449505229226041558513534207488331922058402323734710708240599116241291290347921414968048047278698540797917471624517887804359136863245243546037930478240565544933133164057996056166859144879579102749387877899802228998309806319909099055857108151297327163801363282855814002627802011354203572097659390270523421167743577920282957509538841665697944257361452177594357241318611856064626975616144659879904164893413191556857635006757016317463998271872667349426013015019885200537496502665674544294055414205349279599597013385230102935743386934041165741036313031121387739404724322437256118995412870048153907240360554444832075404527386919209653182308101912526880706602339220115246411566113869614061938286351585652100940595111542325215700240447683759025347135077483930125253752867354659463697489276797400338748652963312669867253208167915139864945199572855192862672226037234476628743277625036481084645861185773643003348261832802826832010989748251750995387360901684182479314309014051737971573730277090878638677702984318973806566740167145375505356302267285016675124140348199498175448985326577192696407988065459424386596043413852721562183379387204037868991554097129472589255176807827421401675658953062166527837046463027120982165094093034818527036349691477584527801614405759157788616170810856550935683127578517798383221512615753394357552949268272011460215871128241431926927023018693573323388276886484183632565619304590487632304769775486000546750413914264579202845603885228386848606876570853020529455474212321618591487509802897332815943684141855793506797157710422063984615232665736348717522595852506717384852121670466339141540666000303035538966310852746157186625653928939778294642186753193481058105587293123994056947581916607605923792515601276793693437499783791516658831932338850168649303093529835165253837477743411453018530532910523619411540848258771895128604619662669460655074349686532829016991438945390103784625529808851836258392507622213656752951829082378397187124345871907563371432644595173302147384034938336484068883488612699117418373606521083076557245394213167517404298580083531879022478842337713595498333649943363512947105740026833147013627725576027500578783345693817186979503914424028715242871609737375782607966604962079020502628948516129822329323276375822848305661920525593223381601189267327286826647417251810065918767349402857033068209930241603832812112971637612498143089472836068700440157251150873667858021911325778555037097308956919414393339396083762470268329897844762872355527914927277116276564209082306114824971464319376347159657139346323615036721224492459547650508663879719393670154200601739901571953602457891590216096198059282546017207284583496397582858375310992186691909636770834295541680394685248462871593916410130541303984119212744480403681166334231619363446472088411476066935065419891961180494905410542002061130986766450264165563045790929024905661226976202636753051421432027308313399380963963455050373869319810069621396775379108956537744008567677868769102483470731937894123302041549344752185363200288605159107932959446906620778468209837301284853919936187246729927420878916528527036543711962327315102526241581130871711426063689075603076478538281691869780460986564558252200295341469368944091011294038094094907283380753937620341915386498429778656796673352368938084033922846902394562537033517699347022686845640771938835399858585426125800949042631070573896058350653464461588138929532532851870333792476228795192894276183206840851379359342921248101117327023406343537714025531627396141539992039462522427631208808286911677615863757471298480413243732936239892154050304634718446941536339437331350693253366187285589389058854784367693623223545100139091198369494683752442657748804770334095727554722518969871051471847177876115651920469610647287684005584867811165465720338800993523378943621252930087645802780575228605730522738224466462752160552460207625354363155707997836583816802394891372568616769818940280522690904446882175329672142867296254419163664194911686373258446454311892550458814121051557707545043386532962062403290704574998323079235481929052035355579594924257711852854775915219898870609970510694490709125315132882729150240123907082195283020421073632301837301330634677964313493362661501601431792048304220876085653913844301456263077359152723873962115927388321088799217407295219403174682386714436245241296226815620839813800570703668334788669447397969554641342142777557150032853731028594425884224225905271706486084580757987930028881758231523731593182148052566564955561720313894540472778821971402161140615465927711182729817246525129843809740272692054318175468707135081440557740713226185872638293281957697714233755316853293527378223483576606550266267401723377051712708609236369375309307762332054896865268839390207360236789883123935725257599506392582778710883518718837379184426434762977027258599502005511639400513418595224139898375919840529781177669403037568088543571729871018349996308403399475442381138247345619857771291787664110705797795255557503091916241384847338802573758335222438991095329342375259293877914639799427363270144746336865928389601078895318191321383956500400800002783040638234884548224231614097332603984374086128385525066568928285201989739339191840397906429908172921698766451385533286384252756026026625331837299504991489773830806241068001797186205073915610791605879048999822895253220342183567435255199614599539857440147788553968006015334414870497778630285948184953909075839477947274829402462689805188214194297881968155121332913923320400253309787177578980218260019574006265658889088543318908540243093028021414548891736093641526238389069898851648168200090474109517479900204974664183571036048427379533042740710449735736656222584490924565739863293967464762991232104432899923470801027058097807401651622936895954530704206763182577804938351807392467795679228421947573690399365264400514920159070807754606273206094298372290222782058345729781249108685570438142579959537797903882266126583490091270577478622866630079200177101612779890355387119234179426772228038437153734565007477884031053726827061227825873976178678189593252569601274649646895912724954080983685863930227471632476120787741355054079424356299246492358606756451270160439667695276613923122444253524921438136093480433033623189961605262023340616954601140184691647209901076349866812763468896053382647150066295994077794845734724694891304415636507774998440936192657904937960049005637717820405792943489881478577408817066006132154448058963921941875703166400224462902694872390163446115933525002816506614989432625665080004361108321350426577095246222934212453845463060812509287247054904474508482739067216057808256007345856813557977303184888202766546915462794908224972402635759800843286030572629399975272464854526300248329355340112618505251962089629689427570018046174024028495788840001378244735832550719838326634264847227770084992030125324683265325567134951923985637172599776135534833278756670596079563131504507627047577036530324998060991481973939611904851326846782135103073000806823430537193065812846734306061516241440818726018637005091203230352866739070768740350540253777686521038010679715214919185631678904060392942104571271802890647232030042778911663232779830350015380912107103370080891324816893123663474041825452190677253562138667725999459376413458548722938131168532410399561912233944552520116733416649140740556634946851760213619074452072317008712175985469733068731998413722421755875199146952490244751774890575622637901361401021761212750646112625255066525644987858524437607104996095812476851607791081127584403320075784521709434673219485652911119675804059566055436820677648695544571331477730630058641041911419267961870523992813864170049430288294572480234624218918244885675983734490731890672775485196433224441929561338166191972212928142655540819032774842469847057263557243232029566501482344454008378292239546329240363823708051739416589724006971864156237838592849030975540441949733918882917236867989584977134793267892431051152498400457752196578816449450666518804672247916100649481041035154198170923711272317330761917449224814856647305654075115382807473539991122873707552459107585794172083125314362462833786552463363898937117091142109917304982699749281003496912701129873761236295737741852564456991779717222145524601597077963066309423344930002041362402919256624745844254011561689820965996107563453036098334147131167548747240061126322209607252320769719317066251655676190721348121940900815153660510406649116302569527523056393480023716269726618263196609345452053800696586217411335041650526961339483478853539660876080784080087534135380913842487776379505216485470158500078224890585076701423626709868484079375881000116599866072491446467007749426297619763637504211994764715016433677536616371524681962000474522391455612294462935837348302877085215081895871278685476936631079796333147670442544906331937303042419361013128303468255647341615984508933883175402957755789425825737318629049466394412772078572640280576066076457477761264610405846302527941694810450378953823124015345344265329073528011811089674393333973300929403297654017601633789115351082086376443278384634148306984123396794308279790138693200091429400676401266826627582716402000675087719205823903863059105942680067655783549486255239257173548021845315839130114361716135104448695305431158928875077841672675489023247200638281240415703078166133804744682869297900274478986582380290694485139525274950148508244146321005006715990785752620226463186691058296845964055690322737918947709612770961479840432698275744746317834169774828260768140868523480531930822754261140836209299186754099105061073350789708339701375696850875989254822800827662726503569098732602932910982747570303240784411634824592524119602045205557515768109630626428312173531111490395871809046592067821899971914097512203129176948401097733358628931700037032578145474767834587481427094757134600845364561929161169356905616424206882812012856200498390156925819019186349045687859940375046035838100805256153777142824918931395656242217739767515864341390747709197560221321536821361643505347780438551815032704089475690628509883426341819425179327440301642434069009886160878168419981848262512326843118525894989427011346952293408451690078468276693394572856908095958793024929059032466619463513918254547294971324864699849523807277242693119239283720032857344113445352159806554184579906977809445166081587024290209303182506751088089004372348735527759280359056292840616592427314575143030636088118221765219605281660989228220583780238399116076113496656942391079625234768798327525864192306789161288278984873802355290517275544936832577551177859967479837484976816756217468931168972558315666892864457014517725746754491516120980698611633951139160719585368111803061580806136001374818152876327125116543989858006082006028015921543131154283801899208709907776727956541865094154222476069555376142000406082731384300878060380205543164670338418835027926691461757575786034961150331442686237595649979166663952504042985334489761883485979346163438775226674259234432951532547564866579335360059172173342171500619516909071173690035180402600758859958507277379189645109839593116575632414218188443846411689427794961144751496595449212514570842017298669602057981085481118456437819696797732640100558360371884321082975633128502988860886143233358036652219428891335121857689023706799520641038781054675867584863593341599621049718864761801950134650458219042500130638994110907961469861402777730750406948097553773770135892821938820871325273138750559906558588203015852472116094038338682596695904692782373332235190963483101393032796705635574064937031398709121108128489050043268470672358696364083023623342376614517266507409574223588033926045140068967782996935356817323633731482451120150355980306306387944988329652115920448178452194581642160057958801092107601874644404559741838219933152661276192113038877735115730711489959321415713749277301666218207023344594720170172583688536649089755923598168378742275049815881546423300247050848846726427421950407991148636591404916651404409606210150700130109593313427131046795268055796662571683504931563525708211388557733022458287555699019127409803696505821329468976803329981043715752826557507999105110296392164239644509224933045246077049429243217806786483927063308025001543421160338875990501908243579429622304989429289696134133102834801128263359153353699480513182610064076321429199142981897919231690500122059185509407986127707421466048181933527336443195195017485653787530473458192927745521294743036112651017463546488858491344101718277392469501449726470411958786638921502564699860760822718851132601887244416799557202773382966386656764838543587707150355799160235057240485070460873083465703521648326014793161839290977762996269367313140015378174056316949622510518744434306265796606999471865077313467784013044812925974838574109417240398855135076568919727404026356007630795657527514155823688227247001119952337668410938545945524334391579217890114546700034881952705807771644228013433626166619062696438741964229462530574534751991404123142434154996138860638593567614455522993707954386209012386754101542940412828633359677432454762169715055984093609441165068976152650383654693243452489809342467935758555633985048861399761469567768138454748238240208307306060042603297693217865010145143105480029280327848428649900422566837607137926102739364459450314318305452582363596895634710201797792790612086335820885329809425958766135322105233201860115727726862236113983484415063090863907275984665452910556821206679712669372388484357092022281586979242947659749738911543688795191582127930651034259846483139335351143073732051339358286525916293875101823534379550356933390157969155489965078087159611245488422968526297823042206228315471001033112335158913013658779216099554115025146512822012876607422370431217682292256310901454006796481373224721815121963543797755451167612368743142666569723038094752607657824226805412369398572583700358194839704048255632908748707857183534882467084709962531591308340691135427295234466612869253711827535110024569460948502994858545905620911864114035182220147019142719832453950893843693976588687293568773514868514696008798255749342322552832999018257317673191131639028846649266317322789712619754752109708288676468401995313645400939654288563603656366166215114691076455233497505248931998805266538691406545646064409228000448055580690966769356690966312986963441313546421216388605143332275965944008765343953177017394468239646920084202463431004264424946750343012539730854018569017535229983974159608653721384982169919148922691405965489827476106089747685495573812126192702659157273594014933381623842263199082264602675856062763453729846718185505414372468608111603743178660415857059478037561645208943903538312245214707098914829797343757032405952735269020012366126770490682746263225986975185497663963880021277743486040669179939650187322734259082180975618410677579578882796281574124163056493046323080788993889230065927782557067420322168963938141131141486214438944942303725269390319273795178870322013157397282081936718594679604875697343953653280431373521488049234081914410264235054572201582145526157856687452032390840892698176492876578443287919508521461123511589933445092535498532213602160429360198295988832904356738706575488265780757352683586316487286553200672021570960509517016435655753908321915177442625067507776271971319422456061953978554926302271382049621601039701074505885352926235015998935438241929100783098660791158353319733804695444150703938088826136346983997452455129267931993815696241360649542565414513579939426519958373626041528081579336335091121334226435738574841366331460749973412120322392115391611274203302910627716193336183387364237102047106977444542646502853512681335705282895592874086953783824299502169763814563337029456548961702761637282694199670742205388462455516682277775266805343080558416780446684096433017994246504976854312275732975763794102816273174547569887140563049508978706469600285916466529417566600435502813170321629561709372973490316292408409289385500848825906927655989614305979446406147841832644787533736906474467964205124471615180094659078321304567377223945324687159815835189524862245516019332508119693947202209960164605580316300442666711779643203197224924568946595457891000508711247158482358612487910942164234809823491515703135668481914414645917812226080069498966028248433718668625849225818890333603890607817817867693106878238244577389521557726024820354334482316686072936844216888225777560775044427433253408602236250700212084508288735378912942975485687747099037631646290664466598194835525724259662484889149139275127010244852873373537660347991630704338875196340270372754162965547021537109192580682486009220966777960588236449771083704971863715774097095603901028697488633512901117723176851389546300790471680108458056947567320893395556417243789356983062870930193984244163749652398615690911980714052465233752207490069748022529616768926112065457264796732682451920078583925104358333424717258675523673682146173644533128858217288514846960953003770375299747433825056731955223276437868388811501902809783616553155017880416315961302054456314853246412907521069379586684767074851512462806131807266038486778188291446049059911091638016302390316324127953167208347941332952919839751995366759598923923911198358363069767503473853108999051066018696258584315140534952977642916610801454381095476197969645478950484696037969988219313796274492197428914645649672825670296420728802630310042060703112476391431793962467655319487079641170720616110087082341428473868094803595168941610074496243910234207415939055655145600524084168708917050355996572505153000046257853137770378113211291021529785874246735093961600249355568547871438583132043336890571570627781870455072237231883507919004900954763758990615596412599682103835566679813816421050517327540019412127170379853695220536004038511426092773875762438215871215825596333670031906498470335173796266159369440294605898862916680305936630606059257165489807982433545212850082815682552915423398629900180472725359273521153253809452589381303588837905996536773614447965782510324156050186152552729624382023146992322978019535652626053517999775298241574139756544139720660988279220676252781886971850867650229395569482881347763721988022839004096138218146913133258170172307741176876293889066565228988544579120802275007762116109269623431712150487626702897890292080715959960577495896517580209759541381779806399477059618323745715425129987088117299707214932562127847920240928114651259999083226267138457885651148928709619700772606492508962797205567139080528346236099963530178394274352256075292537539757642177180304255887747916314182821904596087155816361702611323424773016736226798115695307372045457135832500732630070953079771270011242609024510205477465368807767053434120308723056184419478406538644604737865189069592048534538996985721397617507120076989294091416206254039038412744129424652757521460905309765167289358603196890080504854674509846747641840198831352940355236111671613763054492606920154851071799667810535218307240586758784169928666912795608982117846097737196503294203756598745634615620106139027373841154682514946060728550441816950815506125948773115778063345167537192704357574570177869439359863409624690918479779219551395584827107390413187510960626673459456562209725485663141449280586063097872979001048028197435140407152253063522580351104732860069102425338414150132940467456967045831941228169255237668272530919759019189911829641091027477429677179999301803754014335295724571797275133319090449727656886182036042893320171845790959611099013714623083198136732537674777668030505199480956270074591936886739111799532095723185949857857833856041433488262062761523794653350915499912806094349952514132878754363990739008468781268013928568794926677866912141872062921885018662059205532882222111455888533271333677551396942733560882126344721481398893317981843214185790364204772337601656265011137169983015104849514023946229012752980494712843757166218771022486519170732895683743967460029028880877634334751193497750169494246403345063915085352105444802973764665854268405800589508054142943354554351964096539494879051062996763960433830245361460766243075658060758444001793571599227337660772861249750594749254297228763189120351782398128438668344569031358357291024824229344347212548662861947838634312455139435711639101395435650829367866461015078115203210075246922800124337132907405218199343009256691376707222433125551575554735634327817700073994952973782097730790800070457003944234237428861272526454999143036289104673055439999213111456167703707380279668401532009869271969154607140501399677251706622963533922577262407265751432602819015329934483789345083530655008848643970672639123909680701920950203349748139437335413567434132778460938622903105773774383103321682659596867075807386471028206923142928734572921297713423388062491132877608940513661537938231227551104698041107045880524647445403512351997755868500895008081290378713974782465112623928020566794359244736992518295172295537571598404834245359678678381484908927531187086553982936711055760898705500465216695869265748548148955108349333969074544331257407143223832705429781682093732269574203877992719960040771453034726739315143362099854325598213220014329062520304602598166069059343282667021956871981325694035675790117822271440747069987733047484633207716535899815143913327875331784765035255721728931936309571813491406184076267732257279235619410711578599337057378758792706071835381661454611265948912296946171314784102225070979842477703138469810451321189050322826172484254642045654646094154313380693941224852534245447394595285440163867715809597223005345745908475904118984078811859260455354125530373320863949622744805218173247229104269072080349935370747464570827858088053694566283683286307630894386738817139168422249002584865628548236568284805386093132123775002063534103555356875800330313895774339220084428694891691509419983590031956354837696296178511211278065101932166934508690353968994542506095191006271574419535721617064250051634897088614641008560180575832385639323488476888951727199561383235094796557306032208210548360171905784434530666829691807714424284646594066199150376269993910376220221319676442015463526338335840002156139691849139189071009698850507367504089710988320193941122908828820591590903048733353083561102732496479330768502203349232148892416972674631716826294250826993554839366522572047950084092126001605106514762025982884228487238700911855520023160035814189008815701552295872970914255906132365663045385088401187125996638349069513482901897279270949044753655333668161954655762786819673846963646242925245830560910748913996253494815467336097353205858967615091244112210455687461734055195159297824140702688683348280015650928498492184265989252986720935314323699768586514725007997968084903333373678892122072785128607715161903698352968568907229207612307167997141974909505285692938327864953924821825677789499356342365066268043067490235139529785331059572391908365575574015025450840713063202724584782217299208974987544690691129616825349596105015009365107525045149852817632167630276901017967597902262378518722038145829342029989876416916050025908744028961649418395262270167934896658280479517878282844750000039560881260883126786408785253748643363097863288242161773910605374073798002676932833571340784839229366226442343962320306804119642083169084263279274906762404822469453084061737941819164240135344074387185509539246378221637647184511116138330279439726630982122064856332482081278204372033359229596289601290689516542477157427364375791968219551608770248630749514056632246698167121760650451635083979694027072259408179651474135211313470735636924892763727703507192940590005377712600403646892764290612796737352972237028813388512037503073585308337839944622722583291366339292879697669339639025288275955765202083011235799343547677849837521050425196233134011636273044846957964707419547051560975999197452856685701845507099512403564010199637025312393569977038971511218237650469363547877127743241534218118533273701148566966991741446720914426732462263865704816385187575133467730046423751011550995021714080589627643593244727415724920456415288319213699810507999322811219008674143465823024125496032699250619975792284405800866047977630938466624656485335743672733517355394145510469917709235479755121444905874312938215145901009717092436208283055455889625106387763655213164799964356897304872177877561441339501201407661556309826889116455122588213228343552884257691127075728359181121698024518255892177947344458911784971581765725583103572303449344414694200637436240545488988410838685133214770858918531546819515971918629060815366814788257296660866029047228102667507443415992088601456636677698018562924291150672325764321886374481597357322068065230930337211344999311184903538088773848408183595100314009363444070241418317512482236249086825094599904605072562802302158234233026287992081574488145871723787407952020084873032351107408470784286369575183825890394124180825896423116062603726825539630367866819755271579907871850169847340706220804701164476900268978522486714688357859011147678750098616373209605112964560452825216050743548981744000709470859646736958131812891932342775045533463266869750100660788318690371613934340404145081922851191947245508229322289263291002119338295923468031662364684511652904941649764741733298098829086074610392269686342278677925283329010143447266136465102236751718305229499172315709095368113950706419208721447534643352303327032469638107280605519878686885285440026848496851259098343134602833505978983625478609972365200718870567410614244316639563105605015652294297064320489349968195971937254495445089770023921959716037435146152001585274200831410087870089484427977735296280995551840979086367407154376147072086882377613015697350842147116647614413929604290022465670353392346731887500173772231519383495458318358855603201547397922728883337692853367485187820610534998833784722731316715200194968932567246220930139619728971106024858399894573372755504086741921247267962988714783209904617459847747804755594866510776934823442066639442110049667454239096419259097825249647205312822747729661955350871934766545258824598762141135419370323652986912303322377952375812662527670663499552550116016442835254445886156856715310257736909135899339780848352384293987534377849156827973952067126191089288702154818697988321931620579429461731696284436204978118853022168004768810526521423691500223758769463038429178191892195654564653023476993679248093128815409492887779479094217427406077972974273888691824805172568497665440171610995674159074563404408028432026947873186147207590449117456669329368852707357429488610271917750710855953600095534497185602097466895149092162403250047971625425647478012496559728634962200665099539984942362289712108474725089373438058598338115770767012450516188220090733136877771253243115621506313995204241593542914919671877956176591489691622667314057184010835717678756754921542265615730986569738308848059280182373571605424032579499720027558076169774632954863891167844723348448777844492862162508426303626777518546063560171240940942022316533040822519570675537324697731307717055356985207101440485590305843061764247264506483180354008004019331143636438270940386168661943041890320570968266948955485687553514679921137403574227712727475139992581738063916246797541821004530561733524808413861598936563240694065179166698504041505429648802517411156001736149214397305730778760152491658642444075751577344417061317300500960012705176487551293994820165796796973724904302137917105203366354952012132543622153486280132665717327566210030477410789284535396186644030406894211161118699947483598327280278131608790991521750375974836425050569427834897672040090447010646127714630439896492359610958683231836541027616039044729724795458408361378689217688299223425508908970257958455197722799295350357859151611920549592760554277199722886010038788802921253219067297255262239997149631451480772230067804050697467039299135998216377861523503537466532379307152781906060334934854677893049635879405741812535483775056342712337975088520433111972170449557467362513655950217500776558275942009439348676508434805043381206461936583152444049324236555154830577138227138792703006523649615756148744478106621205510970069380147547661427209717818624813069303386903574526841192688283155988565676250193285773186113526277327865977074875372979310769671614485624076252539763533810342715682965339068828810143229684345731015999745187735582748395570211023321315693627436112779780817702395050214204863894773364351765909404933760089624991893397397778205441901727379900971862114670547066386335674253676434678666233415387584159163828559735583116888618533380296025125585752456166570740994380763448579419168664801039184868341386621278680300896212198742073596845608538448909456120280391342357632998496796457109645878919997718995746432647107542905784643781077896863764817908584101294714576324762752243620333684117273499066678379505273374707076533524349255370333862002803658710196888978743831213045134321038121221109646591560235417998904171744729516700163736878329168514020589356255390319866797648770448606979145941551142168347266562851613294769995624142637242170402831097248694112249200135267717645235101271509519196693602199789683396027351295181936689837883493035162213189611651549505481676686837321869571982701059214639148830188296705189072692118707909087099368574741625733142673922629425400418858043333823907685469553125311752892957901933260932671079820618625887563716395696743000450663023528328259936998430659257950240697031411684290802018231921591707829460546456796792046489368533926649712889414030828479256563018600442176976884448909354009921149732741072321954129519551139365834469815832986297946202209384146898957089764762311163521309784598221044095040466094584873225450432539117542774714674883876740019242520726847720617274143211198262441219413198855673402770477327199543227498903023408081390854666212028425576900448127951442055520870975365650824999971330666484120603387577245175431520583869696824263970659346263332284625377740726814259085662212773345793925147665804404013456635201201660792984179928643958729722155105836654800057688217079420476999965027139471472929450797925383792373465256962346596462915765839733470926360154813675933797130110937608084836908154205054641118123780743575116445670257250947404620884427272504271528425017098943897795495059565616689906806043666870728777044112637760563745795937342739032813471175763881677414429690553769188461192281746171178621470667501894987360942920271987337479797001285745839278777606711726261876039760876805753052784609872329743803220713376848323975800232475757136309739337122553698235580926051569297758646737479666050535279782315147783401615611921155563838695665775046996168896121167837221709371727087045587323923338810148999751358310525530747679224841111566193501538744054250977324117973147259957747708796550372147283187524328925045392592445758641095804522308089076587746266553435401220716500227443529693538093101275017359652664350355326865278317723106610048877386239687245251828779570521809690740393006415973438714935375276634890489981745725973904544372213946903355552360355387164843673363327558382651391156873750928426249597016096024124208591473747461915533522822250143026895545901885419433675227046988237715919126570152409592820483365433657075225065719902697760136810391217718799673761074167233989654027554844736187521610017042199444802800800162903231795019997815531216332221636911548079994357779368498899239868151176057060301069950663123431039444830381391208109423373574417784190605937681527432467240098275503230868014904615662614741169807546295247521956975808108039080287545490879434360614971028835408564325710307282110699292263340185796249306764245434601522914794279592149175069180845657995045880250188831428468737957528048139351443027634519696606572488243175274243295371293486135333637154570650024799999963884415358562699985108329027716847952113090139471187727199721414773508268914929061427096773301009044839625240748117230182625686851871452241488260267837136392287505656756588979366401115709301173332084071109005494065202429702724612022662003713155738112305576796832163365577884878814894476640563086182393330713418541156941108750517998898591254015748034589953544961604196228339664223202909977841564030596049247028243068338264988979363113507216784775996795025048415493405132321746055299659508686221820277535674825369954864577367288350984650943180538347432170747502314919076877623850585739929088785951220211593274663586499827678374477517397858142801820149579391551809893840920298777201972938781323513976268412427663601075774092217767761314655036721080514638872881390711741693212565501080818215769465149591108626373887663033464568176263414311029852049930848159141983286110109866474653067355448568973182334142463328844556179750623914769853360674739649198158336156049751387463406155210265234501569020161599540430680055795261515706737119635368620842831106724971379037661823181503450834551159332746409843006980783966719954793984585960560420234102760610222411319688688492700777704908596078948662745675481390109850103694346766231249077202742942738192351718696667126572593930560063169954657147744571401856977609534019722185310574467065831366518718918995390600455487355970603107373553563691620443574731480422941796630693252033351127035199351656151091899018943009584501290791846087457046829670406986354919082149437350185918130466345519728374809396097982513519088609311076523677676263821731952288717694302234669482407112558931921598196911222450968623086320022512598980082084966100689955698554397418216571329282584664397484868035071130283828716660349555506147074999647673442131248708808393465273434608119265217925481912638714317364059814486704161574006086118019291736807235641277301791124400220959391001779937605765361517575869532693767605659450930213230487912060031199792287685042732063340209928548791792444337654980887352131359740622220250046628326618979312423605183394024896833513782427456592718575884992308038956966865855304502085841815179243038905594823109471076059975918554745519931333568274009126128762487500372558104122127527636453653148649869441406968451462347880715524500521126816781943362484592993212187323255553568015813891323911687986212606333966991994708331420633662212921763215973936651640255956387091298862114337163282978963882209701549248853285858852872658364963389386531204015932529935574124490286239759119824310401245484124576132714745453606723467823887221534483878320984570420389607452928256072298686143396861145386991139753638695768192000081860866690726388211196186872904226104541055353965512444866211193456159425076980736525349731194373811166563762793179333441558387166589937467753958051478868956011199103621143797327218724790479364129840754241213834066347027223131795685210739721503246347099422546627668708918061840717989263768571909635613835754124440860663358059717899232346231147949186513433108309598974246848083114353550797228404052720779892489792510039241743706336072840810099276593733807673971319467728746957116249481138588933178884890913634054091205860056293047156996785527659308581987524559672061882396731227830218114623771209097593519130938523081067552301417068782855165221737047486335589744483889710690406529851068354605241523199523044294719703179128684200949516404118822325924021187709241254532050453073708058226092830237309631520851538208722601999115136748978066403544533995107404095104318334598359300221799607235609982802997699200635718315241162494494679057226422065530663248640826781274928415484740615907296162811753924052382105914999568213949979673933190484154329161145919215166112387045951551638741074311023120800253454271414933041527701973116263748407585379179877766801139242585966055158235577954803498857462894282297640766050484436068513550161435072391226000995114554896829709205987021289434255434832465158921620781925822985726357698930834592789890322963496964712604252332590320899646679550993829415618209064080116273038873022944249788333746462612869989278146945037215305381754475590503725704657477824088114944173677645740114402431210878176613396452078603524118548724777357619621190013849724624353183158583182017883690681349083021075353595659341900010257802687002878305408958485423288639913868744972040812307781140694657246940328218589855872056461294717501173670834550145935416988481652672011088391986585821406712815739020054470767119559632591353581025584406565202533289025093587455986967666010963998421751966740037245721599279467764874732802568826132501037909119898746082927777657355285910887714516531119214823419920009446191981671001777872949091028868766191718462293479503413106488877604742195301251956391695006467537588553998068873327706269127528205310933892726390558098927343555476132902985175026358540374499835992946105748651442310972800644080011860446289253040136011095714723305828133351150373174561156108610203052424485755721119577361229726780840852335393246536706611532943591926473240249478481471029617417790715134958217775924846966939075508008127319373593960585139742213643588190751399337822887107835551483030336232713065536754435909562483563810725444572055790067927912698992781513670179534935772357904672219787540178461822514820623800183403863076192573999675385511294146175828548679457280240740937168026652815018624198666485515166194911287760753331120602604881671082107773758584909071009675272218894583012419551833218095330280571011663135687047968771203581870019353080123112867408957857326102773164311971731903080064042714478825493478201498483073015262408667942417217232445937476593960607523322329175239242467675994151508164385267363000192021182111850859929492744829145047764389346001548405780464595221924887515862110596511966650810258557506271246817830676215016399459469005502263741719399805157311604043649705026729048191543561016006897101118746425410241097368292612107495354039747633053933714882970524992440317250068591212189108141019721885654555419177482210752789252096774942609667326466237126515282448270475191884843585276539907727605563630688025102356025178422135298458355221868945975606909788819129015918569421580604822980215445197141511929746676691011113504803214464041547498524122336119371982078632286375569814724214112743228316469779009977875602282937251153375270988844898921464300391827766221891208141034036154213188659234240274082682432809690975621952837530509717703222406350452765710801041456822960326247678233348795167428175500928720127851254644222194660419947201314529158688390712949794466430329668593228427244680665331618750548531172024025295560407448881438824284614236602550215739117670181372080047939757940358131271069103524391236799340540895870606543316146571505948646877969053559644022839539727223897681277139075634453083310706096930296479882385147204970596193479693583777925026664255010750264476085319086873981116895214725990348869557910168077494166633525883774222995265396007885383809382613363938600275515297849013916665103200601968642680237320791156314718453530495843274733297229891899141952634617769035768304022076967156311567437311023387516084256265761778798200161523254769113126647570017756918919737861408682767653388549239797892148971133943199403391076279756381601355512428769096196856890314473104351826453215881186039976861169343968838909276185502512825979564439382691285140180911835150011480563059255693773486767961351611245532799868193605776645649213150162922283546026208627203479681848711777973774801792747470831713192383589718823095685378290086462526215460789649769753405901705131330832619906314124791177196925927219969444007756826877403329234248353030810658565972970534029352313610044067613500892885340084318470249286531584450389805011946909679348520343370360286585906807405621137315934569609927234393917794601797278657533184269610302205024928842645609879098472654044175729631901568678786952099065224357418002629364715535688733982211029834621770274547674178317704019805075204156459620373633270034092290892409925215443655821437628375561493077758024976549129645622750365836701740271913266094416421648786341668403341715221635417986382769221365691781091181867332210319372527586553400808134611872370704150988506470672555104896933540655898586437386998915955299871791555149439695847436546978532969410864853558911613244807965009947251455128401744799934040259240523955924005614235793393638664649974587200834500505514908251506029333028680770379737767572586523017559763117951424990162738701662350720593215694295926343829646869081565539672331711436761575119480234046305603031103754606615240253678098049776173381031060358136876624493592016746038036083659840767544286484256575563245983009218512162891095187804933426054452887318326972183956467131562286861767689911194521319091661795036264872056793284894488359955530985571539153822379707892039796656291628102870263398597117732127263457724169261726935154212332170012955510828179855795870887173601266585407353378369463940518816385711508725941390228909031623226853026211178875471009155978141613236420100980205494565489315297592695257403874513146063933947792536716652682667004472323192710357852588201911395960179020146427147742756424514483630657396402072780102099723636411474516420400678169856453751577888140300548732769220757935805524805852395577143219515894398629918611296593859978836731007282363596785826087491550833186339949391747249747010847760272938258579249095414489758285391113572466383486631628392052328208800871516089376937786624687349127119142960143774283469706036786259482436920199593647055953274888440495664834163705832980830352440947763173622918648107699562865147492242858896034950571127210418307370034288659343684277347390903054794186640041435288551921859220462040389218261037180652369710980880107059339586632149809756676617053632037878296512525226104041701101763151251089156313009987399990755897800911661220921499001591301671140959631226819780361003820440793145833500167578171702256216139387261681447347844018146539803853009893722471950082151551554512529270213094651390994708827068802638016960331178715587664141418701953367808994228001044462288525604406629674602908754997763258752974966159097448157399764918501983356593970756129712794342673858308912508039107763942351791176772612586375650030764618382205340596875237376682557460028232765956764005798931127681592320934825463630701348280184866189569284181909245294543890928168331427914031967070773047608420243765375723068498248700835157097286283170227196592967753326559116777161057093622898793384194762342358965581236928819819333772826877417433096890371046763763308682514358680187364486820974334865182507521901072295299849173686171038497345069890112007505651417301830452344736754785958428574116857711273253443848309296636079064448441801078831931035675789768558301364412411978926141169138583038896525281347563176203710683575245948668457418878828960425956071587764173529624596611748966814525137559761492977649974582381057738910964678740040546905949694909990588307046810437788108702691004787800556024855956858037415627496410224643572725949125877087876989965833931455455723139277049072172019469027370796693648694948804478677388685964432776618794302630681797648683255729267680969678077853119734351002417834545978982705032664087680468550769533476691957398828449285996209843740947283363919149965689458234242553654401495985840932029731000336088246054222461248108354595777803271403590028429379201717542681594526243159367772476859365268642950990090502057668819385571720258977295433509596896304415500823575035834225238136486958488582043199180180191701517298091046335801747519411923069409785738058074807493386193040171992147213598702131908903730857369446847002556636444544172543909836414317776581219088161040771139747883762405617371466340063383818862871963220553658567695970427086316860824275920031988154942245641281912341465721429568627025837834332486936583601546796477393296311301640135767970189483934306845098257031922698847367242754937675151466453804567829141811697099011920469035171571289022358919165639341696987298154282477326939236576694531558073324332439809507796081249195470149011351294668512115133781134355773575093069924152860339799066512983665742948613973174095420201735937856041106940961551532857621927247775289360643633019364047288310960167127183056465471003761491997261704662803710151117622950587159566150024668123853183581447154335993951351422215438629801378464225327963231125138079225632209704756023450142443631504788714142701540627157652576468778760301723361188867740161035238080424718665693706914601064223503819216029413080874050822436954478727401895732397754934550899629042974979894185348481637321088508756887581690273540397419531919474184276563746207411869831623399431020663490241787821619583380406266109661118360812086424944882605957369036416608166487221742857839823942152833090387567312000932474940257804642386558849387915208254828911794048728443071886609747064647347373138881889899172689920140565232695418131959656025891287938949682981264403260224934506974624572196971991516415645832346778222672616759707690775715085510638847281626653723024427956404928592444316867153995610533678445103878729935338936008118221325202367914907459476411098406817663133546451343570430447622857947656530400580395791209475439347936594075112429931139994924572964219301276808533211357282076206510589061029773791979303638143634796483800533949863312481235012641659930528474543466416709350517515219315130485192474536137819571561573173262884699587187501624274721974589447912340590439831855899274320335506620590344549650195838737448104205852130963407663413562530105614010100681476349950384792080072979963590184977676869158124215079019470163209294712310058510985764502290301548813386192527628035457441247926968114552170234724394620043559409337055174289334300628903214306870795704518094904111560625989130997836755024280807626949072856310774449879883115160685933369745034086564926830474379661765655552398958682651943235501441603418209544925896284546269254888802856039072402147408414983261935536319386430664638417404843113938435409972545449875315157161349201249628648526036846502312295938069752329670852996088883651969783539013478811936119476205116369007804090493520477881160214917827496658983348354513366809176576874201464734482574552283573443646096218260539048783385753544746786846659091866846396421260675387408305632615892403860387584784611368439095891380112769542636683673570320577194943374914141959372672148827269520177942598003297414652107374983438199210683365390917596435936380970093883701607422477419131950517267337190270529687668597885377290947797504876412233226973705492325835391304794643579598356328040659738832215238669910782945797552239718263367867707024248184338660891251253590674295829180417274995064691458739806306055758013796116954918666403921044165009738352297600841846963741817320876801815386308963442952330421347540198089658540439676235630138922683659621443648490826304991315848622589334995143027126539494957794012865131014457506164247177941154519121720752783081190804450672410997139563845206323706280657683305611499340837934473022675771694746347842416637860905774782698815590259984418430627877114817198239138927300393226630969112092623030936417922947396742619975821144471276356280661379901322800015704983133490235146157871108080645202038817562191190202521485802737155157776148658642115727675240725873236377085448069823169016733631895699260834561014981722728357448516959422390114094616187391436374516820708369423899381456475917082551228738407984476612663626875216233083448213949724641518146167797826002794600292662752070195496131365066227513668386754918671815559122683787001421872851269359893036861327793681570875039195722253924877605916411973654077620180331341659964069374953739950031306124828952255506581897967753612805161188522506659758292834629556921728939776397727590349442178502313272637535137111136956985908522487028534489618901433129501887279265993101034122682066282338305153221034862308622768134898900819798365576613907689599206826544907833861614152712060394743155742358975518803952880206794032175798016144985711078447133261522636882749905759023531239567643562643390684130330166573567123157737292970336310610227682161594567758490295190084879102048499124835169369798703250853040226867126951630432029591856755800060239358977950019102313803332698099404465827668930389584739836198717448040767833770258028389286815156371796469704570910339723467427648832798938425714231029608676987500151123010893218846522772819383262513395487009799691650994120572968842092359128509529418109197706287538647909179308007444095269661675652491899759033975250600464250409750434955178842356944781011706266203499110937085772461298473440084294395492023927842357723233045231828296544238721316392846531711284176984860474622440624839081434109949264541987105022773871042225347398113619203196177277454639608520496813256644976609900096237594316901947385772023823022195298639399124385210363493348016119563864686981474528770664665640568404008200077192905538347093763216340401583022989741828361928913410296813275141197379398301127362529610751713149716650888965385562663109869033616285536159331772775315750816378634607345446513781867938934090608696296571801909840422025460178131802339575831219487778555794269629528358247456322084407683858103642283074418857257998758255082594217977363707913073889822918401950714356791995442803363117364869158711139734680734281557302019244683155677223987529581173493646914109303294116072634651770322637844261061656751303836534427392563641765885977668532981528213273955384549340799652469727225428676083264733386479273446341791631829898905635384473312648010464838385549244178661814968627736454211672842073764194869448715233220250127079197463139272379993403400098148309918244207277050753885113941558424083895872402647635873446410693638214057388561877655784846786993875077124245150853023265149607046263808875478691562502562576650493908378834687802662388508249609122748517755397006920971555914481169734985412949704329112521181057863098369849860707205665392786118665028785676977266859734678066272934038506443264997021446118111602451004779966152847795551147301794778199501801110566686878111678194503802064874701077749164237454725458884860932568864522981615622448274106898150154427283056063234422658116486448020784248836501939711080930207870370173094881550678130590449974909889268688121673889496704160573251282947709479763254999053655764085197395280222864632392315777969063940394675341884384867048594906046545578043746200518422545456080991325938280042244466856418355220687394357263370546194663307872159361310747993858806960097755796663874793790929187706623830212117696346011437883904849347501964209693333350379392267508794530479067436264635133212544194002366860207374893361644814025865566268481666387967715532266833439134510381517296983452809230795049003023393578393378138298044170527081703006061026537964340923263094553034619424125350521199354819815922555364949768970292168889791991619100953865997839077725720487632406277218738071004536022812876213413545866555540866772752192706287798010820060132468528237705801774295584321234541881162558763565924942149798388197401990559292244662649842015505669707383900391845662207335237804494511256716108659840813037226105876841053304107064966422065739997464148711025123198733241141485398857742352232330353331950595638163207850166236895554048290870085288272186616432924529761137993476306743616697026039092655311540413666271385127085178994649226933465876112728671803785330686691039570902843377497480310673711761938730846353087951575977480442454652094553535166672988247892872863760935646163109830788335308069532770288493269367134285748792827860238137455032534503513275491978038008337962109314325492472447494195191620978394408729375072350454801414019156972998672884276243627555093962259172601565657470249687695485185922970945573514286551965781582827693736313737120887064444712108332633036365038728816764408042252980100649312787679108700337605097874090137840943217559460746681174780868545394078544976787275700977241168160560051050707063042014602859190075624310581498025276749933402001107641591368368756200044925819325709368008382887122850322540232082269539828040589655765350766585895985994283961729178095472585486973017576099219936177840675698796953867199720541722902064732974810770178366412894538674635565730230864249527226051846704393698679839479799888307911504523594010554593063274734235603554013737316010066142219284407835666425655599991787160884441334393812199112557785792817582444106353325079528532493448089969230149780562646075001995275575831049690542137483866574405054656018297619109343459718323303236852660693114286496279223440848231961244890257525079589483276861162436392297367955784380735833279375233527396344046000085238213448383898790330699544082610293523436130792786715270242047496393989613775927324652884741135921785042014834414784374767370360058821232348737938364091755260567570976629900494680861986626287712488000722124413369410337617245251744933272808968785581707236300020012268961956684113247578033368962061553615503280934097428509035199686473666364486150458862611974956014532195180103493600157079290576653830876551478617442862770567003295057067242772300289540956067895062173686801612544806085320046410766897952587105454592871008864731135073255085007856028287208214758484637882216811138864795156468924198548830202770593680140960188431419854405179830754919537827037314495730557838551178165444258594062442937443515407290865789343882673643745470026942469365206402343871816006001887802109649837834789008638165760410119720929740905740220139896117167106347093827244318299166983962876576304966439410361045300365773119571819423585531403380387407443288493986644439175272494240138108297122416435195695289595069803087647930392730828754206393609336341445928300461534961897362394207169929169776564475051114388772147449626919670547939610580760183145078478450950239265153333991905300576573268391277151793463726185639512799420522612759717460154231598325777432321418440273496460144926209755851559132652115690867677612288697203512163636022657152126426144363412745253194531915807313692523600564008820735445499026185350584495819088561180342909803038532411524297256891595381762892884381182918110000280893543405464814070386397652073821705842303349745466565978363572511250726269535965952816564991763113760336102769449050795969479748940732349246666153529391840158997248166916555431368271189704009599216839429169779622131379106139816158179276988403848092084164298558296141429409518714732546861900518292029876083104101704494653211577013905360732082731908833557904774536754102128466808967816939741933774474289168788864762646290720307556505868661475843631275011961205782329155266976472696249079260487582688491180700729103548001861298066117398753644246282147937211128706513308342682118087307052954742887651429413001286032430359614782050343635226891360431702494650893327185104596837490474116273535557246934537544610661990747433711706347355292725931721312607044131865910612561408759247202353327657854532094465530377252583675074053364861868476853490667311094535458529265892067928451788020339939132230654065444904478107310884279350818382869722995737190328339244482920368666327099366834274044018405120584310056001527993717780850884077649435842111995796822173162504379318840993238477093012428056887857812734550068975439798478757366576921941275659721580853135143831507883568728215468358230938905451252162867974060968898307481258359045599688611987203598071277173422421076029229493266515467289771302877879065377480969533760737777378304661435791439222474480681117801391750304061799152593909346867234798906732172325005999542899261340448644021705227947386943924394184496043088875786971066649673387762693583442572914214236946046206262979460464450715845404537993047611500148804408813242199324926188850567337797292839076877169106912480527226750613916691683404680181169324176489961838807061700388574164505724156350205147088576933920560192717382158206810561270077958866845153212314930394186037865134324745033944843940082761540983877632493842850121987527436342998420464461693968043184805349856353037947875948782655311759988256931368593380695927659553480846122388824221055959412058107556566454933291630616442420159770791333729966230430930092222865881151403772913819808626075924745065054440660850505085195441736874278092646867121279464437944318063748635126326953398452298883234300049419721719988043516729302260776736926872938336123618438189707286643054175255993428404359142974335118024469405094381342565845054653043564108500130982746315495847105558342616600036847946540072184698801263470249831468948850886095264833465188825637903185783174686575766766666717299624381057499400994437654968201125747152445281802507620963276866842265536247925126470011505055115920315184427588417663706930102502326238545029140188943047495491395482816563822593513427094054109263474284243009312089688540452247378033932307124621045527595179484878245555244234794302141124816098275927636355315569447550422996368439210006251406065712329375689119709313777139781791796943098434027640980621795144684302208633071861483589947542382259284493735573901360413794791055883540292342952810840124927449352089195646132364349786115899184344943212043932598490888061686495678144316522702097846053295441368685185647661238351618950824471058436751303091407149560698039914508136063842114371317086005370449768514007817102741914068460588133753955510453677152262888348635182540584548900855633012134725199805020482125729816980913668087090062628896894389278037161172863419312474459538838457766906029332563745084759781921254746925742258145594054968508158056419616710040728910966843696106035601648965020900259796992664167778053012333591021386830730971659054784714577553991471750002229067866833922819457788074671908689753791236302117851731896626473715780457741463541579285243117895898401151062519844337786524506451435492030441186990123048201497477027187146194302309587467908586807097584417331738501687702377533144421936973921043541315463613443099476628027158646304255338797046901728649839315545188256558329982209812028310510273335553926210054740022901819897329631609378847453186875508444076623671435395932823725079201104290867015690866079607414055632405199362909706937383626588010773847563360467243787341260727965241304221802228455054885653074999117351336794150728201569448474995898446669236325822440016964170214430411913720035504951901990717961932639654344064645919553421401068576428062196592002534021067667142172835205900256936886302144257236684449338820483204395190397523746729136578039242682298519694871203997388649668319099376735761707897478311193533335951305373447824043517344744923746754044847602092692846705013790270552035103190585029321230812507823745888400484288718646570359712370231104270383036221514205431591556777740743419348054647571737195240726474311013826434517459533462416947860969350373762811747054579704958654743055574585865115088578834862037833326145239465992728601684043606043107337281075061960284354552691867086214487993755169702435949392573313008811792979700059042130324719519466093426127725345137215875808306214609581893059951327673019137205058365506108396256718715033647468281774154018092304199284374036243409854938577431333869964941214089906769442002325190406962302419395467143430419586829077073319908649184984169576608250563088005297423541411749809680233605938431792823671420897509003381902142177944436273125292384343143028627203914900142526205029349191732209781350218541203967527880124573107968589490062074216239942865739898036143013471771707962166891849950137478432809134463474581835946819597595464772985048998276835833572190226878558248824940017264549255444061323287287498670344479355249379937750858257162070953488510651208833798904348378583425071291200907102306630107620663054283555970650062817611284122528070620235077069964362914275905109373253139595960459587950702941505249257013062898661040797624409511824334515971737555709503749420148535705774485949025926291730994701793859082679227628426245909250458576535269162118516436414952281456176517352397377378266924243216589322842262866232062606182616482618414710065695503014117625116979175402565580878336963846713756736076646023994613712991197578097595389665512869682540033533129409013853727912348703857311128284455126902949457816044060433758790375625830552929010605338765275953966905528750553447368279624907231293844389256504634201661330630465533690645415507321973078174111991317711427721826888684678525516645678591305461864869080593849069054387286643176651221399444709989001015221860511653883892718002688470314499967039666752754594395518606755129282401539222838080653393034930819266220554796327594824911823849353730160720522943296363673155584545833484772747167991161254975429261672362142669317550532723143077842940649885649366458434169222697251971051740425216447400325201075223282688662237847160415161310226701992111976629847402738546244984629746742028390386336369065277885068788917091413776269571197695731533256170790478499914606621682062407711610013150137528315102357044813240431684784930186756766332245998849277838803664053426492680614123952897893778372554128825377279966076300727450597124830680847468102252146044935571887531956187031758721016123666088589201451311304895052644206087408281378652936298580990166211680263983915941111429452167302700130059378203471367870251385613229378451185072740847898321050444006492559096395408696756629375755782883402713115296798260456764680831446892043403562012212731939858428303345264743890359614324226552586174069888920972369712892105581282057106818019906733707611601602908789892827213044334501677440065853405049090173012399241609351540736361777770378982635224733936657848554826249959030249295746453325835776112130381055381154151930844835200427773796346574746673561958182980922048573502989977036783064874759513922300795637482521969387540406302642967671809646079741467459465254329778444436103702627976593578337704251128283136796958555823401574209416536702896888754689511565195169932435748609110424149640664877969176131256625896880917296223677855420311424209408235123131554486714369555752762131858621090084567291082744849785770999111114489981866047555999920075279124199474827418199168869303483817692786345793583458548190413368944158034680679940713088696427834514544549603847101713001580880069299763502747113241054291971182035519006823214124050499411252239370953828533278010203118204001536136371396645826754472916785338608921647930944475091544462330955868260649852072714023399351507286499770397570751585331747593535809583958904884306090960459468362596974733941437934097577367125546958839457761145477549724909204611301040795183634425579975616175268079525115542854856192115375358682166710450244031090221498087606361858150326883948556141984681780655879734972029193970013741731945013076508993081889791683355922359588510757891536354104529300471096901402112818657497623680798286233337976185136775194741208846528835282238164495317805105122259284720488691041709656379800478735483266966884183215827678884985365596779290982980190820135749734464660596975150456024141565882436880530944936476002010375961871695772072172263254747903880688833956767939267720280784692316120441775854269329899107361026670204828003269160351143672673844460150354499218036388279883967413774195178455500541544178282266067710978819356036732860509625359130669413464018562406723261648211179219538579580841009385452796971836591053876933040785367538846714370362517085671438958217567817143971992611857299554341305400382948255020542667197911203698791320787597960849417592392442637245088591605706150893457229670676773100496417255986450096772525538099266093559460816340333305101076660497054073225518457675540715699966940839843706309910388295883934215370967052757703109598343100758325970500954253721890215859772672251232233868578490903111954225278535899246123568397795256145262616663986219697827777257846324904843198245236598431125789862905123650734029849427626354216773267788262515483933552683738371924729404850391509924122050399069555945237204151303275141905563696962205258100268895230958495747174715508398726573613127557857017913288942463283401980154283153766712105353838756487270092689226483975081268996696153861183201244111610619502023261634428505487328364924735609855904409711181008445658535796935340734913037181659009466064599100426912780368097358716695039823427414131652413022925880468358768997891171544973332080882090997188076789635971984173175192538983380543798711545058070658882309169311892761682903456751360083587996407835036513414668431497684593462861980530991562694492675082035900886887229793033897269718677556955393097600826470654608964187313548669416777773460889006681514045318513715510642325723362601284614458425525206124174541791885939870229869382095434138408580945938384726767936542859276424938619004600661712535340233638501289191946890138931253906522270737929510595312721931776929393053711449846858933673006291036068278699665980857018001117274110391023863289178352833212644134821072347332834414080734911734476993346663566543050373642805608363680794219591692706377026064527588813681387774568039053110240141613186589976634177913978002069036067215433088737363377952332606831192094277850188032743686448212722724362458187536618322118321183275934491816931637427346786788258732249985835269841986814112720086183709629329841873709062148706548669895873140728198388569283385183427440513139528861924374629936257291365189764522332391138637001218544692746177029461335472629479673563927529214344505865059183609043999020324883742334295751281696730447152428061816427800597724826849795338974603521542202782080995010449725686453063480433725197657443599900544218157192668654673320256198461331152953830632756352341678985456215874928092041746217517176790094121885751066030386720036608353428015594698268744755198458461104530530306378235047537048093218587099741106906279049954656151865455936958918163806229080497147899935554541465907223381285047703948438797118664273403515440908395401079001592883988948015394200550106315825493854613268805995733984871255138661730323541171208477441512829702573597153567518383711810262638858331551026834989580577986862939356207851601179366851906723896724492876336095057022930701693610489707324486809061108339026856710321893210431998644112032445694361796531701614156388234899547234325468390552565355006349137474835543952313307909738091845880851593346750846169107567317671280150435982191708426993926273495091323260123338533580998714802181009542780765318317883250499899220908969470512813273466439431803903277535718639330278343386849934936984173644072788075917887483822876298882753159460829392328382669699350802804070302680634357702332359032117277308779447185010757538762985238966354730781016443940555827185616309903775577652315635626244590196436280275983450194891221086273695286795597427584566423893073220930539980721749142594637610896773733658584892921911585963214878728388926196945787458456547108171640565138872872456605237984650373811292831064354583685772727171949551076147794530291099411890466679445927598408952785574163524481056747353102061246051422005128108933103464647819421022214581298032517599163215712799927309967256653835085903535181724448898926206840619856534030903859872634907024084965087701105403231140032947316250178271438335147693463308275670023386939115719115407518097126975226879407418146406710660876883439805914707767327700070711957957582161194902498400177669758124766039779590954530901112122124557996557613996596131268232007563916711461123628534064083046918448595093025209191685479624462429531059281642374893550862445213047013451536977959285037996315914508202191411288451951590844309358545356173198311128439882032959792240469827565032450661794811365094221131010996722982264152423639690639757884494826939632420241365407484789638428048506327627199276590900214836970324195913366444763074933704982830422441424502747925912706787462554341390084466938199872951647831143121228421247253323689635972459117471617007602981486905236530497883629777947842136920497475526173004389514298523233613719687866474809631086610914040543489490084374492887072843621404048229214920163988493411106882105351499359734112386955304668112153980754409255383465596929268331655310055913106443096371585098579994535240965631329460857506797719008359013908513268839419344599400853726939751595606053017720484869463834797880611438154503792898554274579902570006996775515699681500121891836858236323702138948532760703087930543338113240960446618062226504410866953478915407765098157721054687781038947828103794902970682576216532867869412113012185079210174831220434529192695906449780803756448445440926770312009771134461348582231689513947201971455751687962901855553960432437166094533674748977219115243665371826646309470204418265830924107447792505956507582458054599662132002183939574429053862848184669870102382248345431270749394933786417158772662507876922833051851283025858908649300403483161741207378183822939381940165976011359451740077789752335395404314828032870838767953358937086660333648738123422745621050172737490589605190542820765840150737072546922035009877752588383866862271873879934315949135265232490869528342218016520543380573184292136474351828854780222563543677794625159065444109463162661843574635957366013189250462136068731152662736400894652727518538874771398201580663397112478778386203069782396079749840639141965710870028613664454217112858631631788002706066484181653094870762936578118255806948086567741802833293759943950243418358815365235485916400748431405045711439856715320575787281917369998822555039318176526903945029901409308540016050237453825037530789836795550211914575509004656539749392894801532889612661087313472230996876332412903231915052660602386206569505963198470970581932264469404593586738915664585396880035856790279220954086439987647893461626425366354389572397727076771677789276220814776689220009676258360107875718988366182050694373781160832575587311774842795485571600790810124812593214381951098600437533676148464503337536094278187487066054401348987778107725262930961555437728391668610354473097188857693913886562619762860319938558338882108562684947387732420793345507382265511274401661028390731925110603782134279056799785960620133368368869304250172778442231785964121750481533310455177325399334511187125498124314399592366810199907440788913063240919617436372514626327975484502242582213830091495951240943824377805106568019905043719300491922084035439338570948888980137357075362564734334063528255251789545258876538896396583810324537079166242962495228562995352133765565098065790862658513122633554070238370990619840835384794386171162633230786833209978410460616089877338321872760598868332507820649488499592709036996150424960404299181909413232288935409658130264885856767321523764835297591227918341808160340108633704319308480282153073296333905213228904601886743329722285352397785109775281441507433531828997923861996216056156541374632708274776377379948491807458275119530298382982604526626974849617643885908615580001960012108477201271871924945489272628493719029999727063211195089526367691014252587325519062395524221450420625951527624381550462593336420592171101704581867517266317920321177615678603307456496351029420008568531015377220500856185546965870365675677783975435840852291427716549321560204636896455124238806886413764259119187406217521337936953287104669129983652971054146878003232408102071741141266022418945024795694749892320266372918088040412695560880189106608419079303165046191601221744937569368336649474470068047983710215169371485053438366119740231406370483135046234662101197861279105516229077467917152835459792704942839345983672906256835944447596936988024093302278622110245043749475628310363968140631462469012155778438560158083118623349385606800391180235906619103825706452622782073542237016800604147505384548399178019848752410032948432804001180934981657887940946975736014090255353004974520972707001878077278221864050064291200377166593667008941079068415449356458323914839391946643776607339827408484250955626175746396515372433821663120431193175071827886958429228807522318291435986105200865172230452659983250433456838139889948789191336035715837169320764927312871792882048548140130487174179736256647053184196602459898016269456364888030016172005636846441426511542988536062193592502476143083767716033306708700294065887797818256230435775108194352033029119640995220852598200034883888254555596985849057393071327391464566558224792841933612048610190932344654246513810963610065396967384816194767342972562547599034942128083730856029917127042612524653943021635134656425261854103373127137999542732749706851724989622610150820671247758666367026734067575820448497222593288167381541800752207917169568557687142421999223921336389404890600339784047878404397171101904729888002859303808812407968490533791830591237367734037903165954124498344664524261974679676812964503739369407528862281043240827107689472723540849628355760342189951038323988184722793731836154951483435191393391563328042350151931285118540073879922028170250267901604300401003295840394624947227108406604343271866152670617570223278123969729704239059138903491383509381965898064225592787002721277794536074686643317344014685146658164544204476064962868615056695689884598583714008302237958637187765014521899825849263450936680220503503175137244595299521770320987622162870514272888195995171359253454817570097872619746552772707100278132176525743561879138679462127172985761735610527554635977877283396803109073893631287757334534523930818798427618581250716224224708520241364779037600294047049171505083488072992786913099309801090018839004374132333367402675023111650182360962724705920502076636356667353971745244117215709795844668828832469316177201676469967151951697097151247599153292294120023228198800179619463442647289288507371469257047875928515794792003464573339441309350423599181404701608843311032532903974343867569460907029538147315468204465688101193910812702419089446776230888909427132525489442629414717698775875498807435422462712728391245675067560926093104130474886571000556501702180999125385967886878652764249295625944582232933723558442113827293795595620390937621461426351537959111323748604888298544625483680822452999132482555526602805894661221610282812932902599819947929407629514315255935205502517763626504810571123244107086201114697142720018645647250352824294174830421358410532526309511487265752050158170335028373972411218015393014253148953249648294228946212525633910718739101818035045014489181141451603245221564819964325168988450855280302827863786317950848579756126954666202363337456161047533369617582937300068885689807880642466782487729612639187097766039402167288982569664906865653365637190416466457647195556646625586600872608526706423010503653358837772499129359259862696224964207573389208691990836381703502367037335045024240358690155691944998751515964761032879207561494096344782714396949613085151168287213906419793383026241788364265227627859501708336584104513185934340491469510206686377044427057882628642544926027966792421578525827717560527563866812118939824630154761964676143186404595597155214773551415682802276553751151731069593780946167767798576402678707702661231953114145691447868123939036089978690382267761112614147883146543220689024778802014681313552912705280795501158065176407967012107200285746407798312306288442993014855181097212568867781417602908537024499184983091061041052104164723970415799793784979790298462373375453223347649709657913027465965374341258339055854928129504019045083049808891266071282323973480593432869344501458912005516646152329660154302385462187350660717735910990539389696442634361813489937452931201639542682450781779565288780856880200848397664759779022387369465088348460068529119800329404759320541885216406048107401092764823490966310987019798494290420027731582701214455056576568975871007293636077484025805965017990755447870335270977113436090909712388339812099601910196277109956578258060254922597364755715824896475237284838121842510502070811403492107536805529431566877494237879330072245389986946787779616468832904817708950866250245480709377069280690101567014224532672509740871672060184068442541893133576702234837798782161641557460266756632419594633405306498709472278028888931509302437891218387501600889869333705150370266349725886582340815047338444734592149484816948664011134534016669570929804597095210789684865662369172217024165710721070669700065961268582395688423309599304336561037395969645618735918865625272906618630650810359335109866102548962018033534459047083088428401387017290342322756203721096360052651748065293395181441935617868023365033031800723379076946201736316932214622045629303403149169001940762762079898751411801532074187548079620611802086004602244132676330601355591554911523094334108698233367916925314548017640327216718824855866933402744662025318408944979797737365477169149519144145437927591255627335881061742986336597609033211576223100005096120181749180341260519115149301909655177509633520942040361533558985560807508054354517165849565573848811897547268630516645913983188422838330466741121136247752751923945080864112060954983425290544785373235281978884197718230894365942037773673323976473289333463288139356991906070042100608371741403249942395478342415630349354690554758878325063203110474856710515956194410318749364675866687276778095929268924763375279900950673676264962558270509412723820212849719193468936957751594592644001168249523234447432515904390451476112749615950592233134937554866436084839223821783204291125823215588841411515004877144688462796165446073665405036289947638537949643038486482272824154518722442738150712679969079681561086329164009894550319046455011740121926021544104308505607993349922362412041197248041176169511901126723445258291606522643331421780425232286653364247672484022858420858788908593219543273302628377458711979720805116705843387897373059555099673823485027843954703676219974608924947705368417110783822953679236699307331179096522043406734696562553694767886248147981023607020288262788862129368655298176709556485916260389965966527360640854013992734584457376383324241974715502697504146362048977065326585996551826180687690708064848247950484385222760907237095425487643872894269019392548200023410362335669370489299065714013899512806987821188681358323665063702381654687335540785184013029090634537403911682838369712862510183527546984858615091161700130257997523944414368603600896615132887929514119429068476500004218608805419730356006924731514941540375011921877089945310981342006403870347968522413136858139324728182432946152386467776309213917035812567537733481932009779043339461958447352622815798193504357595216676992751993095851092700960732013631748339885841122139260763958981498961411923157370641009849808411171852243921959692114133691812973743297063241483119062929049746021641115327137856609067746234203125679695951962844817101662573476466418193640241657022448729392285873492333361941342899887255765033263398157187719156520241221089734552153495594021082752386170525566231262359841565570627946418925944766073948818518419204262578518332286828288479578527053262146286614113854389122282866559239198591664478275105192366248445938596097246122585975943394431122524724056990318450658342436462837186703554567522602283530537127226247901840293201328113880056280106004453364338324603540501697534131037145713656678918068141825123936611788904045081507257787887671261859853528578386590396606869651851898808000970837768721793908669410871891323900837277447885753941920041988121447110200230450756351555267116572217733209932425492962653566493313208074978223793626881822115975214030183981391014269349128622491008427591775413604290203199950507642400644139315207736713712578275883723834647664382393101940178994736314939011390648150154270524343876144543714039852837685868579224425318113593706248516641555032387458172481125899224279275535245559968583435710977862731094289645583527089237380282810027895833592821209304480689799504035353959615674388871872792981187865800346077130571403892311522928468539951677890734393216612923213928770516913778004404249842817855863154788830467715417302357203412164864541666879721250040769006159270297608556901757588970458810071654220571993740299166676251596553183613955590996908421835387434466321591285194600996768064507513904588355980100430912890195450921209944765989910835315504049572051400053823759115347546189994645401352119791708897611455059206103111735896027587095747127640910744010920540127389434049282822496703271140633758641668516473228741173263069302668344350576064704078918284855447450551327225595683532556460556098729459233932094304146226346757928032556497334797060481044902623668662826441239200248910826837151235059535038761167676418751722543723054478628162655116659082737792669473069112969643167484766819327665040633627723158105227486555934295926988559503772766847414589895813419100472096129936053085167001366135471397540848015073894086961776230946917213517474902034702702476761796248166234949002691043249034754621564835021925451010788551233597884044108097317279148726648777699099768289322114176804159466319457901755771257314505786092757054756245861395316377053212419009123306846366757935036345578725740575883709371689754878373003919242256516447565628836353353472682708418277564206259189605344739669159900469829067111627482133230189035186394967184786995593190923275985166857708077166402735168437178403105273949542793009226272368012007020439600292572918976517966045335388493201880342310994756148043676810588633678774464640453561370991577342305140676866253937517297448425575713774919280097069617064714152802691279179913379057254922003005950903958597826434617984377436481518139617816234308343719247773710608328854820962724574108295895718947917853074778416340442168593110193469141752603492294359256156980347789047367132867579057054486708305948996670723542097288039881679005382589431283006327988174430902821573697054910675583480673718121812455143642604832757174802860453443802077815760631647086458251878826560445868900973165264436055329861984992378302208147362224200362013064924612564718274728016327549946061225177618005563498093022738770599113087799715286624922104009935517096091480862796531463793903690579302714713869423185364667119298860810033359403870846923671157667142967761572939310128319607020681027753151678658390635551326179944343110662859206883916568891769787477397740292122843215299262453556815715407642983306372724980297552649152640811038967279863549096762656198224183525566480029394630975250562645094445296203823939895282812700027189660617463821833161678747149597712100849683882516457875282832925470250114748830633607503811760571996477111457796175616553468860198123773663673315329957175140514897216645802770458314514479770229959352370694340587802457977166364910944056024119356626523987649905345979959100781065686850321854567675612317765701532769814970407466781726358677885324072954191530907405377523940269134899294849080586005616861775448728526406103391774125908087660554249837867348686604245776469163491783217046601026342892211106133537342782251798550864497698859798829440317756828874621423246716098503016519492863103153790005554770476333596551857394695714875847435844417593966360512186271091902233016793371576176822703571929638017192808148100368973806160245051181804825428224092024135078265586426260769057054706100867038466892755137486200008428248909865576901501238791413380463073766074923636031029435577449019473430839636957856488943519476882674886817898562792930899347805366058443358591995746410302349577989990873255242948194604854875800374595612441099675570254337903096983589568402990968721108976761298754982260211603593376830004308558231029237251086931078360712920822357627009043182520261659218704387833256847670726083000236290142536328240204146141159714073774374042967669894822515104126735038386347796500263867676646693471611101400025428423834041133615151006837206933714323731683070586941574924370596605490542005319466527801005379497752934131363282771980403438716838648929856115109512414280425503957963002905281980922836829461137609103008934595613110956476252712613526579430951041439106594087090333912911796734282030849711289773393904926737163939753889767435505945809584698486609141990765432340830976407864434724944298719992301215392667116456105266966522579768764763675540060764896995086160148268748477890476488029414850456579918786751149666671410262510087655815288784733329223160699664336326927283802931043291654725372396723135371077392456442342302461521337348920519412193331023132581666264397403482402979690365405103391193669976783441752813161876814547442849657292180691216582184052951202071252519034907177588875022541980961550213572136833400734222684942472073389042277747503227372112940273099983475141172463685806604343153118673340260116010597742841575502892207385437824216721067545311385674855517507243482045686513201969591253680629026211306917116948600346396930149039950387450910377111580588124603694779132137396045944554663666323197233080531666433126441538144736287013706918841544954717927652770689917532309293282924170133455313853634615462831467406830723269697882885918789169123177420545710420086414889449710942324823416732309464062198789372557749677574858432252279124425979894622965370131168546371249246567919953842945860265412006566406227632361186776754012474660103008978774423638519366166241416965999107409013683791972093123425949636919853930139512992806699788465763150131014460217233418048723697016190237934874084107395010809968618632072421604256981645624111651596644598729148506919976534841087690972586449170398869710809387018477721181920469279485343506169230186884832911494904965430485889709657410426565154415255525038285767460980957173023610017901312340179156528486405681222808505315458533694343745305967776347331888381794791495241589381845879788086626550030253712235628922600020172531562948393552159238550551867227074024808075006943623069584746075693783683246026350808023721321346046321026805553360777760282065311784798400749405658612674482526184269622861004888090853642608137997005091154121004067700197977279956740794258947326992890627703817125253138357463074532159453803593800895045560300780424905182367859515102970825316117314278220317137228037292744358006416573792545418495520552947878448485185851264472473335132112059275662079233524261181741681832158769106410711177747589250106492981906263178596346790309516893410698770605120019486191022214853706216426623891020667300501022228550332610522733044737814180463364525954469753834002191948735574810677757029426335687283622175158564534962324163907500387750748097363970825743364930139017304087872522943131451375974081538633599723754992963902871443799048873736342732778136100196623499581498703376801207400039858429717354865424778800570123575317751048207324780644092227317822461746112382384095313684380493109577532714001323602728034007278471445578249626515720140800117263607255875924891740913571734685445845845317262154525457393071675575909848557172674441957560823005167707940465501712978133928628889724101735545072013004644908546120723230769390198137901896436999787911332106496515343274882158236814229352838664702988695080096894457015342221701804593488338901789615342860493882210038114245674334549144110243101592279583338298869776906726718576680660016558058220109385149186688790998975812916380506638695557412491740966958292853698150434392912539770935074105271828255366970479501405750893002715387736550788031730577505742463502978321413694787126863005265834151860199711166699286240398754656627553792872311865741580684899874208202639999838971371896114109187424844583594199606058683192737302068249972985878000263297240606845341496816963448019603060403008318700281714471831439546666470081443985836061964003190881030069231473574280278261504239899330308338410099490889463843407883693435411710040793751633942488910081485678507943185743790986439708676199417520200559213378651829990867286643372486610792607946628619486584467215096341490776909356329887436688895731909910639615720540504863258868189102100321533457751258886895341473624169425323109703128052698216936347009316065197909936149593577256920288813754586728234175722480820869425677187964335485116389324484476665107264754855932663693691413064469669182559660103207868968400549128216638389274212965103066850105636929801879618071530101808493932449690574498644581263135992032228111177812217216157173568727362565436748398292060384554339916483036460479526517813172719944037468991593691169419829494511265992055187471755208845861414533657165003267165171456468110470098038171498329436863660560298676028728488817029479518083733943998219125199976440606559769957153261015241610599243184871553714404457115372588451693821862227134706290089802371830639161398781416647354972374347264622582534097732556399959971563738629769451869745996900168939305688321991534262248553559613705937902794973493106203318901902511879008124200542526472419389893492105665851936848098214227296894736705153747540234620111648570213693027128546675658326668130263688111176226047144165656505864384671639922208365090461962804876275232830498573511664123402272055742761737197041143724068062764424976320577306322121097953921582892452356577193244267556282350559975840090776678061191385530924646525493703425198688141597674083477263886550375588364807406708236195129976671510084266795189257693215408521879873644664790786690902131771429788446296760593443608288058761869894582981209161008448488063167986321507578931882747169223124490431193924585179466528049774492829445900284851306173549093330966543077334028307260488791966055407524154983183575055365248681682067784217708052798581293702216389273949276290538792966049541552162730796405899499364897207846993038986464449934739890204482271980690858447800451871128470572180026505462828573125272147201308492805963552386209176032266173263107688882784405439948569593606725144758677879916257690979430827630995907017143491218028032290448121535895850372448441479950417246424772324879588100242043532742422476398277715845835186328119118173821903120523280382781268076787299649595003462726272809379472468806914060593926253886719172322314221716759241407227041719791551623280905381276943094581090077372806729663254338584292873022163203723420279837170265378188649792170440365213075213800643030879642744880702501362468679280535298857866921758715897741982753918197032165339859389636013848342360872273670363199814167433960156586278729686409720389505700726017705959330063378384377664130477795988824763338803791047263692401129725955042881413878140713837805172066789251743183152561728670515074903727927535004326273943870456485614539608036493072902156876745470467601265479749078265749012676791020780678783712331708645686636504505873168238880270451197789803129974975255141423123153015794681363786732318306273918748814824832382180179483673174654437392850319649698262190972081236272160914151606429281030718865280988893937585057734544804371982817323769133430643083910690785060784360401838740698867495118223326914938582342861810431127030230141107129136474567445470822953785594867928706690735110226228750895073802815693349858695132535671273073709915134947824700535221767947278266113775990192125702746036020075541932848650632470029176571083802379540409917687147087253165147926400953270965044432916462118745871427643629721674020869179930870137466460879273688690026853275581617033438840615667329637268117841438022335351453477382344105665156573275109929889595143219707592061084255527245578645257572432166588876796494484737343526820494266309824899993795004504629493425881141513008940377447623180137381708212385613661648605869399189209067753236487903959628955077719778444467022240607021222929655463595047705496816919532137489961451901322750006155326053368041383945635568547308657568644890154292885891512387372596691626443557635145545430128946116422105375676208366510396087991276821925061627856370893365000144114585487822041667634354261553047325067226053046160093719879501460588991665887919390927730678132967484464694587886954606995776896999298245620964485799275001045277933141621730746724534682407490540729373619048960534905677508658917962649056788914050081488457480683297679250375916616305287092795070731224946337075889832033000985858462441134971770117663125188901468238881726997898426106742949540504190249904740764720657739565676521452060333420021897863362690928674494895013635000935083623346831940832588408270465434243638977356538379819891936051058484747396546452414022210066804305585467956403346712852476393708342885514188308526211976725327014086936589874295149698473107018618252310618564632652732449853868603015443770214585148775879954990796720414399554563474005704463220790048117891439214466713816291949292156802278728021515833032663421206083468423401148941022685663775608766047640618244779423095185072958800122796465151430047403673142174663431743421460639928344124720226295885166063044836459528805081014381402583822427560280658444408512942644548001719008603274305250779757002263462541668649296765994426182793692656019389434848187228868505787228050076753683414687644146559330187144615265283813493486989810262851213847978975505621153020422392208526698912243922812792329097005161591397456236948355956082974863732451617310577055215938804722049458248307883829638918322765511732785001420578012192764781568264432412920669899425517201829256045543831216208207642397641544934594514566636527022269686871511190034457048295341600755227645012077970293817750491175714021211197270975691388509968852884313926150346299195704951490643256967913097154826205068987559887021242374900074531709480958478345537691262445055177376315889858650149539094876178021700953799216520643560973602756318449535257017109482483132981591419522943000470780249324523213788280175116315753344774247952210109687597241166020703507152599253416167839742809895823051996628551118768580359143106667664948768461528318176770137370472750193623281131501294562825144938338051713097128689239298720956518463895884537041651276254200138471182936144680977160189617382766728715510837138356342624654673746702780886045352637836629948941926477542896446594410884869511699326382118460258898397988537940137859799658050380182824291786349297283798978740502250675709525815238886285075667035416089982649079766263240331693197343381247020513288075596298770763091228169829009385141320239903706437834258141265412283491388602164975760465808125785710460467239417449663362709601651352995707673375992937566561058868986171586351052963315793027738869037168235234953921598273728948169976371574747642166828575343314698990569251172650018850382122049599591935110384798932651544035988118378228424225583102681114296584001098222957399608206653214530941960290073879498709798932174131278178482922714578782864554327538268036896915083776885594666964256470167089620794054004058489478431576820116984582354493836767642921397851365621863889985416083888442389684315714036200640308971372499148191733649171308686406270280250190180570690135635373881387125971994355478798860982081324864851935912806982092128996778166480356579539432200047425247806988316579194396831596538916915856449386084477498766954388322237676465802806335690459387127885314824058761784451587441477330039063623233583423210287025245213852289396609126161129014460270351818395376533573998158314822279765516446292696816475133686601963302647598129561629741315604071660903550591877497673417154322384461155590450422500151948264375758915670684929236375417196075707053772708279236913405881110937461330097300493407099226160924832587151432921036381894875028763170485862889090798167668982319972100189532996614009365201116087212636060153245170297866182112391910372101161944261475626837835168204475612969580050865095192144916769007526916278577030754647610722503611121236824680055450171536039710344028070048125987151619391051883243736246919313328146811478793625380571252237124552785560296346970585866458511247272633117859081442192260317817277592552777859866439766056687438322035570788936459488323498159760945207653483262110383244454412220017404646138636689591354955662040798667650788111145544030912357568250102447144696916042687800514702984713427312855366364980802283177340541660813610155620455988024193296930109584614587055345641784979648726094588984491561356707687491639792179140312144537784205687133090369151380014282108301518018192601476008498785181076404508715198972619650631048432438466214276275141822103872630273120009454550387263051332728917112849940857785988650908414155316803600582992538743902988091602881132592888167238271155252113988657632284864964087795356681309606151922357261359814654219121471650971186250658353587480971134270009207899672759878701014132359475866801346786127188911084040674785096933870089080288175757936804120381828886458869762683401151968227630002432470198926913596745803580727867578147780775634854704662934622049971244985650015582447876808618328717378427436528810753117208138835707107506597145251367836989000290547739380724180488848063687525794619564225384846459989349141397957486130088962619426116016678461143047300884081136120885330304965569834731421734838565768321630219419136068848074595106947224852997204871110786139106583898073959225755103011018381372056134633202784702039218552423187303756724004464134876780347775973396040887412471427933171489181290643507821126972728779139627029886335516831727778608126788179060034067179073970851415084538179624795296586374171786376998758637072970083790831822907231089144836709439885022316398966082092141263172753459600211830033510148000438791700971343811447461282918349707929247263365196882910665939531295737713056251275590192478216734103966246699780185873037176929781993686676067208252661356614870989227705850646916030515288308597458006612760684435393613872298038336921453975454042604790304206693903450402481298310408039025569390851851763417501046339286494427067419974992168210675183208780309976935470571361931695546503126532251386405992705815051885465267588542594614128182598879380528423433303283232035995893608967303483985052612145347342998879878915203913691517321293372251853087444933983024787203450723882364716311173237009509088840510380652412005297645896953166796114698630691320441773301422306811824565846223743800170205280273002603131303351864669367652584424789679142359483202421028014084618912029506100068454930172285187447480748095512608807248602991612245239701637735996176941217664449382305576392128579759846791013374239834274596322960409982624611765518052427750451718072310751836120807041589483552499544177205258733399153938458048971042093711487438846792153168228981197905457655663158986749266089940189866561134593049865600123668146567082785397155928568452936804950554936984267807249141084177943390143861127785785837582909838557914983021212275253160540914273308066900311844226406791689995784484856854488135500421082302958259120827616185384868193660981719326442063938775905924842247014109515166673297359618631612019345567609139049525825565353330551422421753585727692098318866833824964203445992855888535269627238615468303997756499005983324274433010198695806514832588971950777335820504456170529897906719347226694122525483611656221419267852506388101348333934376423996001767620110572552978327029230555540044821545266507170253027583700598810124570266705895632548922509372624211642677399758309983611310495360936710427672962902511274762232118310297808681545997955384949822142918280354803880941269312329708782641384829471607232382822989600148011399494098827503066147601319047729540779340535065111327465718736015691016599803097277190168571348096867578899838473527907117080105248416508398345720868031948403407978673031070321800800616309367631731181364639767239821094794215761257079409937642829363067621014443545129011695668306876868505624809431765393003907146932983444058977613035006615973925836296613477459952556888979454194460249415341735922449626743177748350471886940843466378641588289132870965318585476208438510928131029845916759327148697338791958841752352969887588499495467819548111956557704516621873544753226285459240088972008380644061112485810940536732691346516258547412535035503146881983504892454350389896949396382971575982886032028591995366293718737871348505088825902251526316868308163513647442448836067899225339497286410660720058879418949270176418789111118607157812568411804310389723094163441329578466383016175488823368480064829088719286344817121429300495666796022918299583246078293040874074836501503346457718584152457866986406916214444147408155916612774055592607944201544674480451207686787703071027666797461941310306836709517701331217047672560928724472361854845859615722413260381850651472666149026425651002314726182705992930327359443760776329147965523857887648779214378761812221809608253233032138700263542095228781562871646432659264113446241098386103654679760584427956641833053793069122299775400147447559537971929494717917062189262041857866209202461471862601394993503980461635840938852617086891743454650280542457323372751484905134476810510479472680299932627299439407208600008917507523664560463139868037324155261702068706207693260174894738754931389321406987535401260144736250022153483520804293203499133839951872161127872488993262254486736812523132265280958831108965041266275181453062468615102254111788295241083788349459733007766652923171979765535454363629605979066749774913435618870107862385675210792500897101892849318296718366442240777563375632481288149671901431400269440045317930249059016243250667932699905641692548903816315528751568303669613018439930420539753082977596241000123900166061118606893320158336604828693787241463302099245668456155499183828642499145423677410574994740105038161507503506994378097257892982299688864442866167724386217430443565288891674442025286744647938267237168197999796494404546650609631260188506467997504007794481553283606978148744811015055275463361993633106493050055976551666653306156177041288975987607075278553236851305560036303930884155598589739564790475546840347500603454095149553262343601643472251652539611414731865904797470061555425017597543482909568972290867188435344429108817736951927223921364405914726716409996607373625508947372699966071663207625944718498834306730921068206949157470442233882128751880308271573338329993124572234670671796151071441641063349172517349067577897359872004421922926979095515184692723638347184126547119109331865850768090065518632459233040419426028940399947150821211264864494248596358793325712828627997664882318962207369437980788185985332313249343858176913266341395547746625377871830026350813900536177533856143736891470459841242046243012059337758146284843717833972976052810088696603174590488880848690062701472672578487576174313837137452660221222346035701732476112194845232069348014729317419252621411843012723483588622942056173872215630002822960851917701182689006091379496109672842059391551730601955665772473332543430064791363835814773552851330134457098425616231855106634710422428669082805783240116017897102224063408942584003094976326792542891270558609915890737658125334118062781620726247000152666108220470828926221023750038632701547976559374203679693590146631983277818437743065426648929043204589723040771669402571832417213546378451953443015971395160461540783099984438557990159051418755464944852322471089053717615759047129959119304059961242637066882667878934803575256589011207079866213272356843995874251174215672552554628246890429979985971611261402109813978389994256618437346668100516872221328475024425513814468871797977543961431042160288107971772793982950449939761060601270126413175563514154421503751676107860168267044557368819607118569030641533980938413105346521581766930416733809235010156162656697557069980576911028152503777219273335335429241944112315588174082249754865826854118548330316287367676412508530754223437872476209915586634743859817855893684288667585212590723180942067629004341368310203607508846997527232927797408313803445187577979584681306749415972056446962105178712977592624220789018259909058908251809543425363348438403186736590718291758417926318950373684333548361145640845823069591052062796829980058090027019528367980111710316077159471735800372678354267469872578702470816918687540456374230105789908005549879858405409905012350479598842149093653150809963144867547231028888499577901133083607480284680770022167449914721351808039337797272483749859674802636958217038105572469779703568125707195295463554854368200622335280642582757515575433763024611474540041984129492869801446939771142972789271970389596942123156271928723376005949094844283880385925343186008130628268947808735776641737025325768545699602826478005898101660842055508289283967553288678773251297171371978659272290714896001090603837805118235399529450568203167842031477536009736588448964283309106314169850884596426502826126855345424380694292224101309325719536820228004199486929257385250462237658291753596850181102629421397366143878258482105281191499773384746995264517778169519873408872750948498323896226457364846674706882818791780420732947823935852512702881622585829981064054128179888129712669681557009100372336984054529653775725549855926663163016171408378396287550558060338135111575979024050562273867075180905863059226454777065575290700761604248358982361668753015935402435668568467776103060764515726639538167804308287014936239656027812826457339772316947294459990347560804291770812915162789753980827471997664904026960866391032388867903894029837828072101032718565785915975497221789475222474910337557173622619917920759669264531558954160920583624713995280336416691617464005594809507143347020080979586974155516224313168789897323650370175366861290034683405069099178190560259159880601125059509006725340847006292540522516371252152738814789124858404630183548461762013789587058482784340018042673387983928665194176700511302341165167495237978335225023901914006935314313504148813408315433588682662952782519310497007037216705713074993817738459153594933755667792417302518729710364263971380097713055511145468643729341825140697736961002023197728129427296880012179188477389930863532771911129642740593927893382995308896040758400325266089159804706490667060352655870739971332427792676869625300888481897258121560911773715806366515212684980569278724209261259829623458743318859627809913069828103548089235379296733386288364502703532834427147597124604669660863995766133627328777327420898499753550037728863291867108562297860558461439096410587153247009604344601398010666868899174322357870069557882650386926370138696986765426193854066549598604858223432238406862218514938587277785167196063733444403022612529145228482576059431844283893932733102326326807170231638160975877223709143884713697939791228991818511644850831555252500033882711907629633609796402065218317383699363098473845887301224701680461919815760415129261109921948542521896652919312521575244046698308100104712410789549145214598245069059906980869429006125576291110172640333039957951151194989001680400493991334315696815115498275562423707485315206893659736761192608277738979430632041715916623771406641410795993831572882125714406978152612646090195688132689770915475861603230858222158394701276976700357110928640128031416172056105350731816665386404184207666155108274909524570592597300843002971108301620008933904231247562095330846625324413506587344290405547538273780437035600649654222975585913251830885148017928214717460649002593626766617328262859575468347544188506357384005203173623329353351995988672902666830292948466128649094624142476851268950692888432067415022965158682740262060761481263982997171096462076589751537748489068147810109038793420244875184415570995713800389206426479228428421426641125760025255491273654829042137966351520209422743942181352255933349998001658817882099968717437476858039619660673050219338504413143065350945166804552615849862667071628449503045172340561007002234549659928616998605766180024841900164238351678233808142658537696872417984077863086172585528035434124564164395689056686497889848930233583760398078090280752295762560503553491965490066508366338524841641955092580111298758141568602381173595064466217750019821509854712470763950399710757834727410726122705457793835505964013763871668938401593373129716010879242021511076473520872520244234973110965430762313174587058434278036819524430720616364813384822723836458064514655827079075154512115771510223101650725444916386957403141304966045783042757323405105936168702663559560687933686326967358524500141385975204074753978902810647674459993618980026223176468472185962478515466138815934674940600329655806033710633116935290779643993990510673146354306808192100589955822117467331272833894016476594793878294059059984363196159020069049155029480907677664612262176206554371511582148502623502702427586326732017423332406655128252883377272668048526915800240601318109033219825105342170876258006067981869406543832073862944051720680643107897325208086341771629519447053521809669296688877426170770206052379522047336750001080111021408398571107818129541702273780314672680343029324407168969197573005760105537737229394980505992560568498039920086378445188977859172794083801770415582184249918504190420960660919030183990953997482605089451234932428269739418444823506485943936369231043475061426093881652656579885535739033479349480184331191280660677992118590836484422153220143830948235232513539509773763582889389475072783409278011188884583041851749603247705811081050645298278987764918594480747241500110326216261010518510381925549839271821916615605408331175819564258142638830762621493004526406051339183331731975294738731743034572579813273279297890421872928333791727711124156908468082584420519367612292246750527823904011418717736509368447029121440418498065948739998012723072504829430674510169257016954938958822911069431082675591614007574288472557490312838076534191402465781336876967367941337904988878757504888737163460670771003162893912919529533419655719231971552458598690421873747578965883589428152660273292853173432663590239076852598573364842180402962133285998018126136119059062869289258131427866612648656354630798403695812575731625571055828591689839218767227185238817524989534494780018784028842453900079519158333806247107913818965192445783764803397402702449240877304527770290068242793969847524005219498159241712329236298709550945469310241931319343225975494549015330411317821542551712655557125708862480190979210432219510305043923855196712058108874059292599604364331072630383726973427721722753554337997717978943592594244302863595169921001332117473033114135706937841129963105229113915128123926482394345682479013642969767068681992769247649111096364310174823667087938414890348941766039428272645888828093030149959182280158107038946525435304660836657588708755032525590036810418694398890354151459173116031460808638773196285890207291804997309452500607715787876145241823230987966707168007603186749928391915041344826641493446156640645216382571318349336060376975785474852028289975713145189996468139001168509680778645573733604910535142434549169688113029701070315069240577618435127812170981894356862266483038992464633938886439981786554979408063006703565623849639187691509861552172965845818328921079002368851193020923268731913472865854299803615265358777458253157604527025620973304011002548401718307269059235149498733293297433623309485694171533982201828710084127429996306712471656911521163886309618373265466943786364292736504602063516186089455556337804913726364668243771780533884566756678878902451880106720898267935796286818364498392478175194293158459932033444269113603009755984168168505606206431806667530371960482332609509625017847723103360895799999911499369743996499284199517571636456381604882595374768791178790287330500177321528009787355025449845507520010664018267035820288234535109498203174925312109509342938091987073984165295077338754202017744186136085621073863700146942565001046292486960354461251081082185114606996668210803649475412299523674626365579288386190799468435217879685207820000004594032108642729481001370576672135549400661280535841627899260467741180704152192002894227607891481883282756303609322276082801165721510042131419089930171030038223363456243046780547038951090748788081441372073319095861336488183113079274788171548612750112412440679990717337927686821637650661082418643727006253008285127541404826914747416368648810083012970506484304088080002316832055314381629594857336807660802587136976478657736660557644796088233532876296749779846986108470325901543018130776216848381758935826741559595392533414455255946457860653733245451808575037933553673268740753435304762487905979253892298100428331539237126360062896086189642531353893661787987641485731730555319430229093915705192621739651713000399832926104307506421185453561847401566870939507073738450346995231612471090337452178512478853637180247179706837711133454579492133336809512050737967733523165788721950907691604854440669354444387319387357479952163631317820260492046325746021834173088970104851487198515066829415372798452063108463098885486949872816775319603586369851879059409729166837481511712508483126029213888012793382892106575412072290891016362454775093408088032717989752269794019225536432263874216913763068286432612608270014915516817294209667673524896688574447918556259586780532054469183857925858268896424487234210554464100428617431770888704824143750583560503417136958464006539164993948456088361801361429968273350254798907730316660000689477442606598676462054234919589010710301702935239160090323740686807784255444144026799181919558908059480800132637674663509269970109550693567150605326172621871464335812352501648254159749035491203282762588921930641745581199942868104413852211710487155231568406450930752474793780786735302078400385095519772473480512970068147812132835104133240270173097735574414340740796548327809637002233561470931525855143105785446100994550995117340297851008463359042729202091698112615573173416766548412924696043418851709518007662594188175994017512005504451065284327554755156724701149268890062036343100208445910055336188825052999503866807952061394358147364513398191299233230860182269791808929801465681871514312099613562343089022922791811714998754595846158205562920371927550758827019414931278211813240947403786066131004277336252847161416338225892230372548106995738869799021027844765965529002336540691697132124552076622483775260525195597407497752355820802867315548234667104555297285019364664762831303359804990743185847596474362521158499608979830240565285890303333909334349037841358393088979014515174786304855676259052388182357502252651419459777716742168244745858910950123250969316002318298698720308282856782177417683388473448840445485037395029887068617468356445017280090545018272499395493480218599452797468775648091672297748734526306037874502905816262394735403586295458281772635000717367735576224242939170670358341393071782083917955468643513883770143574584500794375607295611727399985998485916679317930841585796623632448047896446296841630069768093976312659704222603128951988721959798870869947044102263663001317171492991287126936279814838937495989829514081423882984678929399853196796942879363300435895089245699515105899244465915871625077538745397535510467615585223851317746827337906182882088996314823626618419426309888599171515043135085861617447416407114930369121558255141015338966552639437198124325008146410786552151981449271081088631255868661983107147396322975352069073298724425622304154816359219586138339576099662900873526933364449160198007640689341773476126809036681658003476651647753417772384705556518274573600969045683334074149780995030967496907919855162943907729980033866563094765889948512553921138203600173127367713329406763155366979311199419150244801042524717957801579712726445584545125698466334241631273737972226299280414536268718311341526875766662667686746976347806375690745441797355798680086173330604686619328029434539966245001678545792218665966117633727652254299518715320212058838232864148089045950250506872458001065695192034982281772055777751178451087109320131215567637220854868973740578271203616263292335777587788558522899226608892358878989416342863545512975627043552183961203754097993245855180308011200769231196205931769451870420914587197545681916748608732558736409614415238538535919333667043181341333050719469919897488596227410490903603278628726557710358457848824475402961184729339575009402267528358218461990271645630030366429815238210278827623575629461711476182340427927743862805862097025983981505889820853208293025165727618331612734398029073398944926228196231029492759789139749412150134464237960282406120275108887948600327233332597120769612777107230632917942727954386516651494273883213097812885359005103326266827109846483587721373111972127194798879362091332659502300217924798662925659794654856331844898048042961312197865273079339815208709322770095274189145961654284160149185701931554616369982227560549328848213518233046341381495145697317199322172350443605184396230425380092464705023375329281448958437677602391561134356025563621433841385864724656426646534806027722974545632398841143104257643196248519573902681898515374070127866536122698524668631709451448738278378532574805814742993202652755265633976922115174934363390238216668028852782424330491856250216054374159594311442715976690861120523083510777717210918283277232131258638132790079810568216946650621321182853690934098875974551011509922551757692587731796073987244509304615481674281305389786910335631568096172446390339179678215563536942270739532669525664495301528427391556560064669069436361308133357567675527160404127552675729920867292351486447200438451546948275178461177376762954703501672505290741705500437259164714140306115774677264004934372485825212885801667809193110213358604483156267925273193343685601268019640365253799389371404978168983567112339958694499975859600573028329255678881215658790275188337866364317034117543002201355362922763297251044594781729535396165001343946528081374569630340294584556180180808129781822691156616678710480259084140845573945441389631119597010565113566460517718238107894514927065610660934364542249986331324623642049177509135018045539346028009672387293089728632332603002694689276139219859449122521940923364984367564313421545026852123520170019527193408928033449421737196199952622250185889431701185854744606233170926469284728534439812396636846979026773599635760642285971037985688047176303500286530796459597198057840356581343333879102517489680708345998568045268407005162556011713001904826924196175073533935819933783843755204774544331576906292581333549760664686500369822968658054902070050423589161847780159335735420421861031225172841835107835857176252241229466923946069681654257983871354653883545337548228642254513870561298715216144262032151247859209606731301736288576390508055053150491258588053155408385193242121223547574088187436069484140554281095388149629746086669827731565040549939966704753623555885855593102320502379075647970968867184031715394555768295633985173499506457728876688893014786391678308241177500654730444967873539101453343849355871596809691726236544658956700188471884741580695335223611024471338885242570369586892062702429454614568863022731068465917972151710289670028833232186894637901301191692196193246736636337182792834773981411870408252207820600151772312311529288941507784104098317143516223153984958063988227160239728613835025302375953480657552072654306157155617343095226404080496629270661609802459086847898264158594309976095463938956131709109390466772693735183163350931477035593577039158203549230696190602124656112614026101582896626721992607354522728652444771572536067208943354283721085166622737638939379990495709322993867484816149685442120582042538963374793567558135870203120611289459968461105313412839384038145249835379159056901354635384900766283752000718406397929240148913916299088476586735148933071545290774902404572727888654136527129955352572560250498193834562166597909422476561702423037848981023248727374126107999493391335064082927025116106050993146113508679228653669565889580388392073307353356916282918816479442487106612159427856884168087173426585855297387340423698074391769843530517829129585711151080311856896727844286996736302727591786617316789189219045943218032456211670372133956820641259237940830610173454785007585738549723394550288734254441859877340080413957565401907020144773698485298282643295723406676208779500604708425259663848577877895787666700142697442727738797801299028530283427162532076938176699321603322956517311755785830510247214850146750519214994296783563595513683263363359184275594582012061126813472703492984569068886966239154168246121519430847477018543804175275531972200548478702428390497162481022684450071243658524945381095190206562639706519178285254816308820902160908934128940122133157737124528475719484912583142118507602533346526429859129513189631847194414549476393251746920528717151992782643303502986315997386060321900140113292349659355281022022406910349296692806412580850018951087730286913864898175890269802049265767178559012275833420759677332573425844551901581697670625677146698651363947094824325345876428394530783084623788391723465046374894839423074529671886413058900186888878706892850242502206416998086277134836053014170942184623709095464728025335075950057037708854436622485164720065848838741269091019764416624758235922885736286895921773242599712350856208564822132422485440825849652932880692698185656201040136152365223030714056171287126145793945191929527149259113822581157078015776739101914506967130989060835552023479343513311794294435667389884752410251707626910836909059814383128859139544967698769772621404833428840675667701757193297423389802589905588204563410871091758957688506185127679494270164825518768513385701583521435910745923183936767310247800517346052783061855998159833284906100497244482145613776539037464545184798235348032280177831044762895971863639799665353964892213873891031224737041507317523692434202327651599389869789375095578857867389692965473412752181235289735987278132825100445363460644965375551123223057179085157201448177319227881440387462171406770912816110675437565270724332700183835138422164797704288617898396001147690273936869947290805105199779193546944438912871121532388529686258459813712556802972193607728312556576292347217404440352480543543140929027589576382567369944737789248782851142039613771376972016664811882413515710041993984531404879694216046558513423833808413894741074537041071932063887828994270829059507768076926671556106171635544814321442654697955990764372086017919892987741596426727429234009943539589149620760662646173022936767496250612844236088571266370677267079724635909930005229495118934601985406947766580430954923151579689059783840589036381032900063959034102822553593453175743711036699758780198554161637614175383632646096097083957634081870937796827032358014080320573773200902724876211730875513455918592450082221986988759281945061767678587897785085838980497052448194954551601678701095461298418037837831107381952023903988103823153676315132954243839010469517079114212715974739146638551019953428715864420269083138656450380214881166613223185085440060024450241220500975967857543985711682580522957832637175714785361397670522495748230332916121061655587642956113425893127011912865693558048926213266618883508452028827349212971650377053514664994824115350523251533334618987540780252385820631260313998292786937802422592839546134460400723110475056744164013944568141885756688820523410009880260873433217593273610068764565198212292235268110140337034502466724545019282174222258123872698100921761052435871778574308509080489576872335973039786546928347328029797899856570940987309971663173475477757682723837835349520416249172223220962975799046384752666301753771633195977097647967930298334992672165811725053584824307985712037879333513810515382359233048022307620844109742427497980472213500986950619636628694837399780975510941797888460382915049754287418580077736077915293163942764169700643446983188321804487034081193621235911428955809528124277469049749808076454409053444374824786184437760891550384723281726427591238432772017118391694745130194157043061601267276865125663440297698636490316807075163757828022262877483113748542300479658189301669404609736769039713725503029747836581676131592556774108064628318000353433670424313607078112128576518913380258047280940057898777903223837519487063190209343479231440702391570036178902954368005273140734468784787033269591117588587394456611369434987614800066952968466727664510274451835895629182259000170766510104678949072446256355386907680176742746233291346455054747312192926527901200175258964000562790317883985024331391527051932475967208658937245666366147121341221696943943221789000379688200064565830497972813547648920134895160648754464756548638738578643505885375962208373388547858880639094701952345977012454527409471437968573493642796008456653098671880887790787914905234188808738296257631498916247136255857775055914020783005536460686252235927351220558314059618095705656369616922863466038116513663905586591156796669909424414197497068038869495196941127825142355322710854677215156222582677992653207077872637315254022617801539714708620241470302566307352867199993306826250024474627332506279292061012720582985026772026409238274808094517070359385281803861146658970536087727574621096978824856877901771755762275289415656622129488506412115100521901186575985391475471153780247544294935393551588086494657011614006331899316683232901894995709047872427057784153932065817514338965766768057119726523640554372194039406370237053111111161849909184568104471715131609902369914206624127721280978559126700464329770971128769038447058364394396595248727303712728603972009800757443159143709996859868432860665164344764883140745998566757375654661297776023394888368902929832635582852352133506926789889501151080751496800097304038172400376749876757124499540894392325002956278966226752219042242006589215855819576180285632155496482234593165492749172948269312216177198563316337885996543048040384466775270008037684742283810562065808886272247056713838441654218734270245353809874780083326209883759244676371264426961672703981528347290618802077793396032464394725610034049211669088922744326445427673574760991306691734364712448334212916694868928704063214433708362281223477819305935323620337644121805397805639868745680579769815750475125553215401384878117078758590563916919450228182809338826637922119002360849220553460675024885820767450807818331493001492319788891339225133298631039385268657503608405186663747196360946005852119620259833225545074182728610500969430711564935907612037996920719954134260578826763255120423369317429031691382474393983994930796412103587007879763636132710767706241700890732905119450168725377751656724356994977760282555514328857702710536929119319377796140246739696860612751216297853396438662712231335555696066047349227083180647087856043026017164395034888251309014908303128369380860802298999528593884273584656495196690579508112453265156605677593990021966268374331309456613005745795648327230239379308824351942064506258494180378735456067407208130938122213840832300082501776751551321748445251697121946433542019105340079453302178183432800577384389257932825899042067300008785216980279796968539180215031358696658347901770375139321609623935681097727299467885659177112126841785710492651421965169905310803621558429254215949294247831725626408536061083102935317685287860748879675069868646541329296004840469106638782989405894544168307412931844503533983062767037959487756021446037410309129434142766388789016990861778042175840109848187028393999184297405625530057476419010009872552992574099949833402058832245563444820644995139594698877772216984205798399440717099096306286004677999145319876698034821522332264923529668989824187516331597688876187265296013150268899299275313805032339347313697439333551272231347115490373257915078229110044262771618820879190389565287075851848856897745686972234743812379599312571384880722635944232228021831446853462680210353404805701583311165778153619970019200259216407302769772332092611225263225504099788426635229255123793470705085502294750991428813476383395151055546476442727320104999754267978651750480715104312794830486645474006798591344540228467370540225056657493536767256103667586008793238101667670689465985217994324145487799115271693839270713900774724969803305200638742326597688154616271046521308050974410877762485613549411131083121370963562866411106623076896828373036985106246436782343753265348486280482340235000468355020922246943207668620485239690723605968092304210133891839084227562627245343970960624545643207646072741563297783736870737704623503923405809015542500713768842395779856986565684520573752808384238717189648125503019665495528826355485752209294240285245006884520542974975588914089891687404206288982868459858221904697641083704064868094444445970052558591117150110495175777758631750565793974377589565589428846584700388323047812196144370601041340818779494123999283211694769420768689166000818649453299463691229734409577299359308923605219167889138439430480585076991554125231187259487978702114181017371256322157651762597952668609595708553257043903772807003552347644532894566972382839504577693124654679682804509553417233160613069452261779300509461946913251282727623586077968965250343718609507034744266965702575820238135317862341407363044787860508385415654486793548550532347739638406771406689660847257225031852657192484722197353131312036221156238735746168135350901317038482169425908988307224680144341484796277245292456339085151620287667641165879710549307981088180699697867440193486882193966358626959967362268345112601235675880757800833294100745658287137988735511635496252727551951729199041007733069009070876888014650104027755563699811430749537100085400261115433964671974836728198855009733803029397671160395547653717732538321205511561217493223996424307248541714872775054140728676324806149954053733562345125426204354190665780323324324187966755508128862036326179712074630665275078452314651138682433248978503442468260321760771064464956235403825245510084137644060764500398056601976376061895207205677978481400107114076354732247678211284694426014325051497973387473867076060996105914427187539673412738968082733463018225735045861657482941374360703333907532278295425986986172578842938475398694199145281298514657965148104241735240378061988363213455642386932986765111124899934200035292579307191369433925807713420715589390474087282300505786218288708580389758572253230846867216727098802082471232907388583020548215318201891089219995786456133859329843135029381573183185456767236105076628299811038132515953233106085494781035679204342735963158899482405278439681776240065062297786216089674893933936381371850776104320894039900613901785372592421527624598731292108456370140439283644651639698550628240346857540294051847042749661002087590320670123732717973781955950566009915096776347206707939234793716154054642013919097294307373454497819645417242982094045340035786503321784753559267972103137299993045719549955634795136819520431256314673192482328505334036087165903688087805259263458900128916056030999384925343943124492176446096873983149585879941360935685236100167054016006480167871709101440637330865111441108834998569263974267037644478621657986769609462246119715159638170090046665865485265912573715518003755841421809517796793439934205140830864640967971881916206594064989921254864659767842276362246052072982113027795020834437138124864152412150168224252236312098668294439995937352502448568361558862331652203917889501619830107093816156085817730664604262743513924420906900994664445030523228656620753134401985430441579151938322765172847099051033657589632094907561085763187886879677775910500591171687073118275177674061877165614895005008284012884755330187699512520400457728160966318224132480454052868933214053963777799548518163425259009598615725201311934674392213515651928821659486265377418590540365912190229135590143287084052629891561087876979369828164700148551514002864686557161216777330742490945845617543763953790690918420422398409950613335553004201097169371258018077064807587230294869037184923853249329157719237814001245036144113339319884159324483642449485035504256396164292558191301518502616879732706583250419638455575455176022287688800653391472552638309087218119172578785099129173408737409668492446274858225610180612856644355121256530497095016682654565753537641358061854725280581859589781257081793527586159347491874300073185771061600919313767844931106042097824516138844060938456984828747213590807628110096763583284685306302673170413454817029549060889922160118937010579827640975727783887932602076046003955181133886868825033423590573674228087067976407005259748678741793767587651610927351564029180129241334907285976982421376027030326681655483839135827515533911238118240070616409190356649388172995279967767486833358680098959923316810636526703226313851923579435761779146896521769621746035717646161551429819527075248113468558468295302808511515145659617775885710826425808577042258664619385478898224199517824499219681926218790150276779996119039710496224335855011912458751402747059844870204206178663633180322029244269293132600065374645277354675738103463661125355422197496600637286444718938598246544825837408855828701045630379902679173323882352770643482613093627839038818571112675105384700851238378975514138522698139311476931793733715495489006112456517170233673444759638616228042139643570522095027155835969891164297369178028085776324265950022385799343036632424306241905060845632622089302313600356807993019456496812697612278205333049381807742476284911571990485756454570914181810712569399692240418734680373764291937845344482822182103778444584462485642869918594914133220342761686740200139072713754619080222469497740665756737745203115995839478004043411041104987821676442637291130219865708761307482259560743128150166279799769960037094584123844237672189870080494936541274269132978825996000921422766426062477531112845045631264914007752988115912790250684086617272286260024546788528371256994651084684836794223457137502962673443483371703933776088100642306820614538545586324149411098286242540195077580686602001222313783069397260778425995633543543419617861750588672156603713437523277006585847981075578977291375004959853696235467426104938675488307202440836890501765866252665224239677987515322632147053868995332889592110910194649171136354149647161320997351979519580854460440785685457619250646209909156000705163375932142215601770409400333352569791282839061760156883754454053660588897050609601310850783799018365830317388770647485892198458347927219280245434302237273727684327312387897477863793004408520766067259451860953053051325129384670272479010540136577657449912788438535238244680549004896549586358481009575548496625988231719270321858507560234583069577742459309620767485536493586244463750533286086082652263976531546008696542090743882674605558848265390806086549075804941522248571462144646251075514726476876112294389700623330987650483165120040123504049982429755563569023327431506389932246623604137409343491923726413788961888561974170038211041898499038293205202014168342420072391696530094202636957717052069627704964045879583794257775245184988207523216362858892806823754457169054892117732977951657455237041739043032089177324250653570697618226563709978102368327152309060338041945571744309608138915217474829562130217717116982116494037001994901799984134715910017680236955839056967072484021413573871344847796222372923023760070073441903557936363830174969863481992300788007920009853838716558173507085975230152131285606898649915320689245244568409907144585935964914866216933511233245015586196229862426949848366776235786528571740723830556138150041437110990562137830966077507962354614695061653613918389163665857182697877881287613148397841057603901218352308878568204239791369098634332168973236168778268864570735413043571101640271173905431042417462046528076146192830798098358413859978087263224184004773677293590864407593398861185453579283212655813854362024196658247931584414292909698537025608198054102769125019191283752479952533597039449505222215111622042826156734113408150688271522680609646915746286142391619180973336003145018133801383190386440954923000845863896752285842400682858565462025776449355331955109774379953019327696786200686034755014564468896100193214301581715940582320359530220667626042828906029474001593403075302065765965467699445097617839984477512489028528114441726494130660238559580936905633666802964991395425163832939400779488332916784123414877657510712241102920290707932389890641683057801457656446191031490732302309290902746363023505832873162808514821773799285070290590040341900780847995682464900461651951179416872803203591955169685448889121367790916063028435852481756809934032675391657899905533412390332908108684344493841424804401674833938675104048880411245252035986217686700724539762230949783731006967550765433566110711206722531359614944678543734904318974493559898056344030504340287859991570402095167965364164931750581285894003288268441677573461866540892718501687936042225111327959371162492151421449761905712853943501829538046882791735442543993214106225643349494679383756779868174099349651085519107654175910441881175067050836381356695163230884711871728909659338720950658091509392372948866447121107829678833587904052194990617723597535574223029603408046025132439672309523533435588169188458492814678733346293477906760737093548392202255121350848041371114049128402171190361354921595625576438199352753392086006100538600722075777877267013459751354048038568633406799830267507225578660894159919267292814345848148243856173507003379913071173363006322596945825568908397402239138808367820761799055220092771490462776786433329177285746872097683628050654912034678869697401491667885395784820580052721065754236957490890200628778992273804194341666459214859532033604814566559136403145336970141535338773086411228595959364813921931262754564424816378138187649323727794046122810894800777937299667181569017899151075940092159670357836028125799881070911734980122115966603877288320969569546700425177721372558758402141143838905154609526544180013185457540863015044603119617039760539616294591636823469303504034054349847070315200384869953396132075344428780219715347654121340168838817685199108044774212024550699273411142365407713465522032681891940602205660240234856328564628469430654449358332894035850828237312161099310543859652589627213554461870013331863761283443991173736732438540206632740181170715088991281155197956172973399296991883802463738356664511782077607987064814481052243630495429039242470776371375318852225789836729377707283815277478812773781644554875227470759100215774810401903644744201849220406428699463418804221626332480017831412904325098334125721135037231184934876468501375844463864845800609401046947369311931991346975168076882857735882410446118583931628185609502443456484529149856931205723969879501329037262583661683360804602985872341373478919901648475385730805933432401281798205782860949478005036555336126692026204509049870794235433003952810477404889065103839820204154064259702373675239757415588562324651711368558568853532440656786798332061594719655052320346634049744475597273360218846858320618145799915212031795794262747577668286641338182021940903171475121338920056281445395155228713866203970183785126048370057633762264153084638509420792767841368830987134086690075633336257599697000560021948095250666210449908037932370263918513039036002741767982848492755868749629282629078691839099579037055990988249272203937250707959438427224300235616783991617831555812295902203023037494063436762056118995329604749857614452274772086814941344993762983649341050090657013782791427470431846025601821662612906505067307304079447614561556997640550128024528800268041355603391036320795944208173800290452706844555325501681263158832220312031220222984452583733748274719327706594071983968854054639077841602480484825772300983103004780871678950484496017207182004399348537854546666802420997594704270677924082958406200340494814235217358990948405948799036515021473068572675988863924706328195178207782087174779077365451843044944882994560526904114281139765114068616920044163286569219755137858570221786686226790643452402676580484931314222181570808516740454536568098699936727429209602126894258812994140354928988912042971483137988094214326304679733378934361027586705454978894553598421287160212655587704539535710914721206116799072785022948867905982443996766634307879306510361169527242641699793883660769770854840468755247066205940460954526126098135505727473123541562156681849389590448189138734577222218540007085315555472363641270457575795343314221980869561973954450176264066298046770522850230921924320081658971924607611887124289045027054057153067714975222999742105206936659540772029644173460970918380069980107183280293811573444035396981110994313934425819649086484730900228356458915268314097620810022787752478225404716910414875079201005110184654522829490173541211769138127122502302162957697726691316071013001715743600710649149715248762143985306856872538070375404115918237287279712477966955506428902528309914780334405120788724949432143786419048440595795782443530281601840590961858675297432127886344412043348338878705311546989040593439509798658288528759578534405375303833596419261399844895362494803110303579284655416040240533574957159712810839153096820596040265640540585623681458005207121758397285373582499317932995519352909142496876387868426177820344770098912243500688798440036550001916134394216257677987478943822743764527902531377321983366849139092535485419652579357539329068082221164759739865950937404276384162992885059036144152518955755113033571717936802342573451308145178434753166047417209673838805664342751703955784657727734690731798649056949919329859064091083967856441205465361944918855559775591259629038086907943604315839038621410736365284158743029085190321693984144196090391920725029351197424384799425132511596143980548870559505606658621795882236595275608795250040562742539422013387540076141714926149504313232784934519541086562169050346200490655417825906925697409789512045625542573412651235289259649216896347752385553461813138948868893892589432561922368614996815544159168597930934716029434666390509580751614055723610189716124756810429842875445209101395613170882771357450443260221021798422253042692576484533817075322121351567109620379355120598718432490953547786316727434240824731675825834675003651220273067351474762357865129953529988647121523583120725885339735609705134310717507622177859258524851325091490924997717230063507977419966798007017135908103587797350079408391018031889446002373571129811550348366699164861026268285809323676810484882129459343636786229015336344816953762444772387329911750649885937746383834820266291512099452672617158169430706011066373206620501411099650702046870055344393081084940239806396623793306834555707142178356244657701507522458710522340078973022673983547344923721312584812802354573147983835315049731727588689089843498151072839313518116863126705670477955642511107663546726527174115993291995855943699426444176581233176897398351000930171294319138148338402445310349812608415919454516164628757142092865814999146973197938871528681885531963922416734144711406931232098336070233333685540774960831343140872445606322391410588172267478572609784507108058569751286383962850236641327113851039641002706727577493511211516931194485165643210434100265153639344185524512309402982497725874906585678403563098714752326269961336883117085465201266230780877924776015979887153851589047843154049208071958846724845283028253836194030955105350446067799701595686206362616417002095039504621338721530193426090955616563272533951037276310053061272919717211404003216279884992553094093064846746803078794776788214257048192826995609196162445141899067287639222537556269233641349787147760672236870738465617884872354783901293871133207206350842633730288315885670224501060398077543717638466193641410171030460623481096144462260991316385482587593115225867456690023757939218103341391337669794055760777902893908253360698238972357061167128976091762232679216964431687231429490683697910970602176045937064487279585283663978222509468297555194506334935652001780405340836871681033638253631045632934318134436287758342336470338100446075758195684565057869491201597536365655832607210157725910423244806278056102524770419052662087405261980485292343764910962648048014232992704415644657806172308786024861370287566099846186289469968678327618452265224511335838811130124739409227207715277917412972074099474433513987295613982064392367432353700902484578825603486890247321830783721385670433885880594624933109065540514599524742983210917261555054492030872593683139786590336320528389529196926857760713347923564290439083276608181636487726425401173153334145283501154890783868496747162339920891589880739478833142629829574860186865144288372562445137722113366273535138745922332316019926557198493823536535969930435772027361020087234631766733233413694290291394830686443613670024936044998435693299502169856639769463972690792973775948069070233854793800800751217432822238644658509471716654961639490424575181442895332233578852705660503295779148736255302813975462237688950117539601720870290301480224835485874039657921945952657882053851518034108462138568271031139223356570389990070047028133743079169083350878982888645685066866279669170158674290544373893668389680385944053363671789158643603154736840132725438360753992726386458683814170569262700063582712477008979983049368587686311863083692962729315702131932699577013870739529886184386348052618120271476397956980221363429094807508909323819542151085505073776867191416337594903422601174946913500916261598426888964741549130292149828747370038781452846994645477150957283218104845590958601629495141348846003161039169481912597711059009858721643874940917876330970755795623939816137660148694913772104567419862819208237683596280631554808236340302492470210900809070553832619477822386916917829376232212187881881117407974289872729721674424317252440654550209402203118522009002380916008443317467057991483718311639731437057844049817030762775747013458747125997934502810137460202139861050488192493706578028127148818540879314102546547865201883788082013549938938776400812041712237105910889407599577333674170301809909473647039896613852387528946824483208484639792346636530600290973033952829227883525646595658727579405289191323451413156816776917655132927133253824414649259690585601648786361063781560627664597494037234305949325854354232093390461785823454113677953160672642359238442157890004173602918687054239613624656999048148210403216013898180100981533191702465346592240526478700719581298856234207858897287382707676994302125994527962891943658591812462454998098904159833277750044010505973232880259620975436071203970728358423948548000421013322605463391874909874365902138310604361207940180240359670803233877170995919509249363271795939750550545478174438020774861763125442129435712677631533350314232664641322805538593507797715566007276443511840489204878773473360818235672773496019668832022824127064743685026358806784986861692425881576736463226086211414625261067144867975324751676640819239258893512422455162180512917986933945473894321267825524301328153363034517849503484134253973004003135372071244586502058213808547457900122512475047130018052358714648523038366234799638954641782469480900138540711221092018082881805720302008403535885857378283882017983836626065765969001419485858064801350109882261660368800817188421395558936723619830815878866305976613604874380397679696043010251060755875330810036065558575213377111220872463237892052017138832310481194293325240532021245789919624054716527965119351649675537623385513441266308661307757220979034941954556266548421583962471144771552015462711839463711525829818074670133416393932491795236681606069599337195182707760800050208751396524887550493522772269172286538557378387648045310612943295729301269369267933031909743841023933781972041863465419963327958015877277847419401645949698931640772555746923524817136161993647692178549866910671988613542012441925867739949427553232865051792139489333281330019048566854896006893864959448697887015883258700165289692581718742102524282993914110946959672873027909387849133206847814836403079191257870858550765993891155897649357406437520966550111649443520769953792854781319686694482439283572312797352017978167733174204447242938342177585486846821416147325920249695558612626797976910516430761616994793818367983393653880686703773980926791230604506091645560774671036362862589174260858615681471606067508295562529898053970817459941631050253787378331495456852412005410183030035964486864333316851366181268045653015097131698332776638276967561924347976285745917101622830649416868877758065604522825700089860163074201154802748351125549818236978123257262008596874170823258135582807043416268767338894737719479555531911178702226066166246023318605274402257058115896770774971718268456691896022342634012786001039795378935235211186499351545183101239511682213287354516656949113444935273568929848147626872632040015699985913708871761314185276546481535961996957852121762211825767118904841757086127406283150729411573065773602995340847971408973889090171053155563946135898364512144177685727369214452704883340191691264419357933699607139727061979796126428497250338385667326767513856201653207457552248176152913434594529105408107330123539298842886810438091647224575037231205682121192488070371349757956042153783229294694404473245795011960451805253397036101283626281860490073843698517319461957201222225524214831664301281023394058666445994656459807099816759353903320559402936760451422091580205889854402812995099142351799052986317119124339342764323237222553458327488187317444039087877850012230199175779978212979270335661676342764474794161687046148519726096159455348244576157517385040655041998481779265906956029445330935897435538989467746689470925226177630712005342402947685527950708733316509441715576816154201039860809562613255343233391510760361160515511230866032119884935790328634078445940497973562238575605463860224876396927931406814143255786968610041501627754653015258331343361230888014270696428245175841095748752995558687983274661945407620761515952483856067980937976745439390727783354923458590426477781406448956618424061650526689330852681578312464903946306037228045024816767450115012590175494701390871573347214300703619239033752325578057417318916227267895722810997045227210010941286128132620654875034663740709896150705010450202145893914672227478515504017155441545227653755330874455560709717481814082250572362751185371384263009969066407782701899893744334184110584729671911679092261732674538382938037880186029858524284171964135330980921825620594251924642903636851333588133194001618179109363562986620405711645428548787807722591799723308216100085438098667899043730939987538560241594538714446384790933785138673607308193090551911389467421549440060091113320950442988179857068434498609217565630571798411231768831968795678792771756617274586627340382119479371964562270543285715198688318512884647194134095141183718324631984959980397314511201659531355435218060813272575281862057493449350396270595455928960404358112736056383533707062836396604709294687773244695433975096986138230326558679583644107462357928083925171204997504163487043474522096691726266595380098830205309423209995922426918276784094307515446553530203621120593863111834482307057405381493040633788779812846471145140248395081682334562776461434422498316034698699250558911551854362773387438505359008470746064387547591554906180533448927134568058955642761311319552654527543712945311117187031829314376637597432574023670064947941447454745892097885612681941906710517138761711592514735227740547778927204471958689181035108915139571347966597913941988023305675629894372075129780091058436513417887483361227265754091493393565998101008044433687265810910309571347883251567178202985196674740480271192424979575858311093791823128371293133412800583076516560157040501135443365690419891262445262071766925756240943406978277881890223555966251361463307732873540019254444160577271060845180312627978612422053765308372412122141005067089751626008959571267722204326474641535524501793740745008303123819846512640952422523663685689635987564238961532892754920227401842200290778465904837682870127361256561396350367591580137536366147470795560615915323970257772291303946685853715358098274151406428413543070008527068941325554966703513693082556135789123532554268237489985456697334484063345128145445193137972806749081307632364398957448638768306354560406303648509043254242605733751239586759287625441349915254362544884326828216120925741695123543562384689985334712173895315513989885579384763334727643585156945191159109211668791286547560657038652570239695177080001149561966665890214106092996844574787297386959191696507170012110737551870889123226296504275919069418141065710054249138089058314873640320588260338789941879976215061222317448751260680780794871305520173076710539906726794357932146510202276734168745739797482599121520791658570396370233064624060951118994777435017917506171177987681202375263895913122099939606051869272185732279316622841969169693879983042955742281007585138426683989183907477716741559694940861528613283787168149944677332369180003910621828008831351666127756689624426200773667599235869038066333855372059361313254550325724238177022276519614262252111381880636406020769215180858904975620728354764479358927491137517480611328086140580751789632851616429598267018252272162239992817518992673511346389156517246261781452711100378566502871203344530876207425494656337260850958736069590358766969521922738740653825059873127965481006972005467130194119208027118916168448321728034195926964762225530600522474682423413783442286201281863700558155962143189795344412528789302203339264268087629783614658071587369229494706985447377117310700335690211222858404218771380883796933259896386022709236063449681470527247378006057145418067610330828691613799164678655837399624673598532749351174283420565997159522471486718135283639489592714356317203148859296131268527913471832893285582482249099608654445561729490670732245003188701107644121034748062691003600990635052835195410117975042821152227666270008631895962194469060636517140332313638733222209623843276955929802506470124963292547043406199568095056035692686107610702134777802652740484411497333469724215108399288649336446264344361859118132187415386434029103537687908672057513006485542036524424810892745340893274730663134936471120373783289710004945314375957905050566664495290464372047836173347342946947300786996941777284572210357002569412071095733747492608801811139985626940170585451088301626437433084665824584570411702847513938997011435200292999812456747786760907299724975415740994943791461897857550621689961134141504865325387916211079635086935383283127954058275092628190891399681057660889307045765440586015039084997036593810071057153216569180856810587654818240907134162961509195769623445216554311752335003695674090265114754311820096115854333711532827796009044314885513801642656915839619194619088197852638986637366513323693271148579234368397181693988885908944339359606782413662468223055567296570231729325215915723417650362489198513556547923306929222263062596501585485455833929182242080097218376493763962491127617969662825303989077971041753785475724914463645126839941438899445348822415792378798566257352566196960901987743021320045411291277157948605174044329111651151515535831457229872196053272181142062582565287787268999154693821974832207821407872379701906608837359486665955690276424208369337117084429095562927392054186052204755778650690877783457812110529943574772429605770476028730401074911086980747744186413766836529328111381420813493770085201152366799587418756039946537321337703633234556610138667972337864492002110389291028391341476974525268792287153259382097423098244841460026105855468216171506712549831425005415690204544380525575808807207289561257654701075892187456726617895241280317623007741095165993549587518198266398518447541920842776751415202981344906102874412409464397378863415954185848232741489691640708049250674733205074966463214962293512201199761815383978986536712329326775477603419017336442614341030355497552466887952030078964785037099280338142798669616457571537933967078631980044777671005814398742272198899682101066049890072408497771860622411778112236817539074023372736270995526941381706455098583281423450445693679961238407547743725040888519902560027093469807090371211949232821748412229123042904654989750158324119545026887221615448817665997213204613943174824939434897414773301984724288737930551767916298193785561814992259587284572222999440897696576215352826313342707876143783615018777107016146674320884520866710591711928450919939554270449052184060771136365424892933722301559579658047853231455293693246006801519659551281376296210657647370698846141440323841371201771803430675247163747331674408506054138866930632796348167124173988148889638646191775356760390555416890579633031295087564717987643437231589283960092007939358555672335014685130661094699460326023605093798612903759011704391737492158830389171057334167672797954905566322221806751755871230898544343054383854618208890862849171830811215682606782923198268537902256764603782249672465564047553184916322046881180961008864116371133563509745386794040541112799361736215592283981706847734280103137580321053924959023023714798664411772091050130182831702609121242596455197915574898299385722001734464861501905035600124369481894453887862675348050687317403776117177119040903942816295306604445638719512051058093880830754515800823349501763664197221135491736106357702310021068178681085929873592494654971826671076682206589013428505490436541133435916604350842689247870763344497026980422276555188792975979027571222938531711761179419006194090202332024782415686145503223836489282072041779961702128678667815203429847626960688954833743804484443297664755135569115520382174919707333274830338885022852894196526331508452087569140196457669071063720954978333348588366971785682762636614884775863189360575674222359900408744916474518196157168713631322184352227633530513839212395022094763823401504014130657977244402069075212546302628764670947155868705465727412676207058448994062863746805361285975699860760731223524040457088423967911777445068820609247551446006308090560864670066402228413136042836318306486783116617371591286358355372026957130190378451309367740047333541583325581661210155950919895712547415600483224568808100269448734453417765768520336417505230012876998086454316717973417655882441514312049534424055714768835888679948434696409845165214314250052658704429847675392155999721967742807064354781060194452670399054664432946862198879820847592493233033766343407671959232103776073843002241990121668194297365907736100865785941771198913169280968891946908517074668509456740974458871555194053064499562569182273362387724336802773388829653273041597526386921848362595625442347560403975111518479031759444558660252248506548320383973300166984484903346782411942252715909405660387532322764337829646579259597162478237963874419472702876147067400089356997086145397505320095201121851428961820091906979902044493208933574189029138984324547802875286132228067608070522095107986341251128645888606697604334141118208588915294679599213774234068225599909040870444787207041151235792052212526013498836197382653882086726889546975619927091430471686715503968692569231320489587249874894739162724418123352207280006746635674057313111429933983405770450282106469485448511378970429063949320162461564002003608598446350493913998547385117887272826961909335939285782152310098105182434924708029813490002967917658537117458396612136914157386339868543527747427391278765314875783631112258919383979364378709011472854056313753169416648498099927652154268669772564878151646317525272702843114401127480635269087841308067309877356773384233633059002071129568495639756839354478065396029934408427166255471709851140038264748160531494950167610603686838683110145784272403375427601443878727642960337062051862384373535346468369107676666998481405488420756823871898475536465744505217038826492865945947320342871160285518710480607857042398976931195606931891561963399746172261506118022744450279319318293023639465410593551951824908996840773295336656516103191219003343984632617053258018399163942609036729212379851745599453623843474344897265980792049440247060643851390426346164156295876975548821378609051870500131394620682931938250404409683585318682171000350506467716233909830320537433803845057800797667423269467345893318802053733517470176277747872728566870526814717174758130020974169333047989044262561914832274215374040146826011193596355351886815510174476152100426410229061965003007644568044765363747962385231725170529037084572613659836646696722143026040945188804633170821972152984287057789431876187052243017402771002352763087706475280388001161563013719513379939919812955318365128584056706144656759549549246266728968223168125199027613457707882658012767351336763643591811799390273992153190497350702415100431023090959277667762513439868834494574029263613618575305957102629694312073455020094065550106509944215001060591635343571328345149698200318369159649595397591535556538199674008189979677187115891925389886630992726317519010513069147028165631834144476627571674819194139660468980585231919887609051689376773842333635068728435131927248850281310545381447691877023205456786347359070606118400001592571411410796473940457911148604724850426073015090199253622314763288278114506109143274456711637499684205037496457313673710773657959104303423615237739509853688819703370188036547402498842883115163869023204953708369413500455192941631632405142506366938050614160098925414882752522274908059359333347475908186891602602410706906850918334184955225495213155531222317558315516415553359901788653183731951340192115434240664277496944463122035668066242011263602064924897303878235679352152632086747466253923970612792965878216589928959664187192163454106391435311391192637038791766243041321134802256210909727038089283915509961904823703630190069888585266166827378526577650850930361951406876755665021689152184568840652097394786850220411379037039458330970961761373600321647193384613666366841159193584713986386273757448790919680448258707685851441595084938028916202783376819734255562641380839180535652929251544443116284467230959327369427476694117952951834130772267831613157972790765327066958307215765966289421122135079676486774433095969141202900434171476732424676291708201310906975084460998214199485002125660244913498154194358686176109179270562997330377827624986798134779960314380757651371134600782596827855712789150796390461386804789560217494909551593428435422896642877357554486978136605426035661769428501842240189917875382025609611510267909359972474908170262400856452307742486334065096927777743092891823203242656866911354887274124183931760565858454555832574818922118842945657623273519101767795509510202443171342611032714349600809334392954932972885441134328993168695949736108858746372438736417267633211865941737454266589769525831377376637159368832469575426321171138184290049660617365011117650798091036990991829823166915961104631470978517033665522624916366683574977698981600013787939690885154755184120173311387305138802106666830312812209405981086157036177932803133169261560691510806689149109610049951125310101936133762416582460641860747723292867038185225954579860354879930559934717836928888284870369562860566292239427700304939479730960454922858543790107961302034361554872930056303404189495960285157266256178422368688696602076328319976921472826859619289424279986121403242570065173589755449262171174084182321441584828944807972396899629126729742944189296737075138962106680129479823838244615734705003445723575748680143376156037459103326738202896753165606507773159828298575033085937620016152104437055626867199662250547155529614767646781912378144153598862517265884308652634236580313719463832948264598560009766155790232409573671679470748586287253367016361314564917404616264222970500519718943404426810384949361265055850269175507399598320339495039543686502704687542993568559619587315200287727555150922357906537073440451873629234051309550294225984573291940845710606881844889628057141798639450533480346793638101258300467615621566662658242351099839846269479562701427215256102715989894542866309944671023356941729490513696582958258731341696492629497663736093214160085158834185580619678947170453770308882602281669592510241266962694294558337125143661867939475637003528529159332750491194638554172613630631378441716199591863112092129373584999036544552124602704755497746705908299109385934612178312417444357853834932373038363667731000111692767590263728987730047754846496961684856126816634746543474962819395938507287565166066581270446425888685516839595905671649537587023514502010758371486584374496343861376230047002670867549426588039276087202770175353992069659807863759338128156236876898994377601553473241303942847185097756069120127810770733229434476527644225834455053445903635907425260647035227929499276482753015039633620822085802067782809404618936589752111099550368083518329322478746648683619522452443576141772843027757752242913959858930450585394032645325538642006861104168788897068134783352737346176395832613338234263610209926215296833733665000149524278610269336387567117589866584027526212242438702769564174473993971630521693216801153375213071881752279773265006253995072927225816870351666311187637224549459876885856330702310808254348539526038720856944413566551018317583063214921226056473365806954460188293573925953361979436483494794472697368848494096008978811952880293663638620872495894572279361347071120630985579394734276407561970131249220801429222092585406639592860894150609330946896799063281191348039850650306838466998104876966672355093034231294132245745061127014364745793751187065497167372362866047139800898918033204141912082489061433768244091018791902538437915860846248898295026579357303798613890413147992098060427926801854768923519911333031930139489219951133267162248684079807972274223531815979513993896625672393984447416866928396918395209212746809591210768588409885986047998234011311715016385473115397103728137565828767457528130282537836918893659784782014320790035055776511396294607572720672621721643919224706930037197432261307787078444840939805263643981599873205229358557808994775966030458712285358603325876055183283108894970597683432194655670542920427783082232468283909368718034186857713985772090751336488476198741872403110853619711562527039238019151227523119185267647520222161034069248903255021259825436269407887212057999078417403550957356773106843349041913544655006709851274194613179614778556742238257086176472327760027311557183188543754049332448565209024100971204616500993343611941758763131137124497250587464059780024620096556296816027456343423569448283367024931873278022592949077668517470165800664285344056592589284004308309354308894363844689028001679131548130882701874035667961455650302535195532617494161217627133409351334448974104558971854959220106463510984960559320363129403777008205754193753650066600387757499153025858095679504297329549390947902427190491030803662787533215836870156734607590241888884146677471437971828134112583326128256126199571977102691572637964796056044516403831575452906672327812140463530798084445647955003006238380290142035757927988933932575462935153724347139513803031304315976384046885277013017880733211573306611129942207287185930494485882439865158249983659573460021370074136791473508228318744862866708704819140597718022930585596186897395634936254346333663807559934012537818152556645524967490650161291352309139097497254605255508768707170037384103758484071666730910987173406501332873686022684117038921697415352891299211702257550046855922344443549115371060468045896183349240226903830456138594774732695402568295715601511260004219323770865002886908813535121432756617119737823862818942585937090271419689199496855128233047692517016347683345698927943360140419272206822295548892883516983861857217149889214004026362234468493043648322915263091256216203823290328947236262006744407096096365570834468771850317673939980137062205071767930487321460583422258951491267005245826466209719496899859483184316609229079899941506976351919389438621409247452437362028477860644409189514041685015589104493535426262664923562558102847722228342760862719271202127863776550487384843030914209727729428108982149997958477790765872344004603518819033735694543001081404328663003922482804538947070905877532609037661994395916850477309185638021495306317004852637090533056507523073863380993875107257557044811425889543123300994904051297179365671963534127253525587242308909492495408922213729743092864028114137020854074423373990258838091705417476701595442030072657780109883050974437314914143257337664203901211772725565125219759276313394336063503344529539579546783943620704879374632502428700654138205065116270274771541925599305673633547241221771980330404807744490953567353012730359247339518733251780200762291494335273603349950447636995477074621434753401797434026730051580642175907313636238476949659654256252958525878340012246982634922032185697593879868654123585939288915818693973087126934477796311126990086490633235560567413442211716355300220487876089819802587417023041770349667407727349383891067649544046400766315388882965568745041423181229209481713741110798748929149835675303466816618974362335082078191058140455797506489203118713043832585474651976732098790701191853923000107235228283353584766266828735592023673539474082048919628096894138225965564819281178700850496194615923530643574601831317604651584013042063522069266914042253711298535779104062496678869588936481607106054426649083833128477608670429809409112666968948146782269351814084262747674580138339923026165138904643674101391768224492094369807667832637022177160748281612732422260031977115302917443914322232256989939874373009962297826434025278187695984764291853226085375482170712262475254654304544528620624219790986866285287480182009822204120481245026501080434853582707610979034422288090713695468001892369974348932999992417901864176299187252012074740498652957326218744457635311249028206424662745449989616776894603088509041873688929301412767348124976385963328257201930403149781981568930029847396102629649361495211434426931695992026680553464952273178214627565357614149390984646378008342551301962968727473836701120899149052499474967373000885645716981975711689099563019259667779177147769207439043910178157517975189238139556962797795343435408755646522254280023866764885349569641134932150010039524480869696354508177287052812671809306153794302168662013686050446124220752202325245135457369610430882959411589495013964117860025759140817207310940891702085032144347199967316448729571250228849023945267975475089620822752344656357310089067349141386056619536482589376169977327791422946212031225047099395660366489850203979540222530300823563090811390034616799278060470714007186524353754069031370618166871573051045126763771246585498725934293008265512988980264966295872036964030429120235419777031526758155809573605791395930523044097561403036282525361334795866342707412026599249017174176787959176750539635072458366368132564276164897908390278440745322822538157560986685783542324055588128326914337529351509272774561050550905377891506211764962311485999122619572741006543986192610632271334536407020902786755286626146086332768349293637237174670352247857362043224920696888097600248644973696253226700652820826944459653028043246090647620378256731286683563902160586687657359682880103093955217572977183082897987745898290553458408312204222154441270181730274545464642366008285639377513045322552346449076794543061545188472770978112962122793729407279433592463899246029779460634005185711004185148033451995331986260787353858830188163127835487254585407130596089727013743351846433780781488574025030283436874340094150646592153175995894427627432241136593324637647069113707092496744860188892543480536610190725624287610353304141472459384268394488243558198396856885041542736386139735006342700361430166114417380249633665794623738803085918211959867820755460688343811038826499537208320618502344262808555564605221416638494214032835994454104259562394710795518615272400774785770880579674987765410490638314058644956549170194464674852602656330045898206191289725104822414252149219356289638658081064785420518540464638511753514482959708761538125375480356405711325862949779638030216130779811094429219693135218636043207687188944211077574018544191577204156456270649988879229267582232226536179131034620393373199434653879175042381122209147321274208344951956330856067723008022069900061177064158926392895861680854343017940100834523381461892994897733272258489575264545718801533125582282654682134625144633199629272710934133761885232769858931463721768675735226466849260896987708652496686295424127593969275047894218859457774938134194951848171599550808330109567691621849588954001250284520127258653361072128406520228605718836196030929282026596100584408863275796916294219164689178498392971056181696974778215550830007698794665640549968577194876063465592767001885358823034383798029863392214436450552395952105539745362961507304359878845039266540637877691298812480684819227283594927735732727755730383039753574700622814328709916998716225447556582415846902210953985518002586393748882516526654614409477233262993531022194375391633377360557928557746635790258387474378709019888752632754822736670733002373179337296681217419987257676518942930332280803293097910134212349098126337783525808177349164606807911960278508728007498102127357462623155549338022195737251064591970181396562440386814424026892744539963478492867804073817361516773607713387455172040198465430984912699657162559353259570943582265512406802699714527327955482929021977109461419194703823596283556433447939735456533674552084927460618608861117364517817994739915954639826861930275209741414066209049510183562925435869410346914748556241136088677696633508595838574380205746456515043937904422162652314689545781141072161256180920898914499262517550008399573840710158646937268793945278709645394593786479362067443617717489101939868183060389997187175351929394405714040828655697767925331838315650163688325287639769863597620662103510515515705525620810749204767180087795173513744203359636859181913046511879017286841689257891295507994970006287047699233269518839569513977685292134633011900169340888000445317389559871450040518892892742374330280464226098323715395805507695935868414404324368973732065676142623624308570688415012890732412960880126139913611757077619639401524746451436489508067307487582651877671522546332563376835165779538991215382743932266930789066632634126766172533117764791613219105408727987164744471427401575894519544507072539436454381710449681150407363111286427224003478023107215060955697220285915555066844771697875932101577468317103514763266130978806531643767848367762846373225038287204683215267998056008048324284039723621178849783634746631374992094786795313395958890884781676530413861650303371850558570462448700625487145522809880742003334715677007950948433151820209287760405967420546872654593484343033679130058537847973886388758857337564302585050987953170262246283086397678847012857712198319615131588333562465326879047431041482779673897138764708529657370984225476991798231127001248924357986795913017749658238254584090282999234039823261802229431887683116850473878629254112229130836825683517211200582090048766590312016130775385705211542862080710518129366157776534941122159777433664446442661433438541766241173830874992160649947504087495455231705776542496200241856988800643526247274227813478769058191107631660707173976746199468537411377074328993479777576016446735925937236137313955260024115512629816707924107783863891060359409229096747235047700003061185707043629378778505348911856517664783097106466397393648448169061349613904095347541570148808609120812587333473276555403170089788813569566922855294665610479892072983319463666732888656698345619207190683924424946718758585114067701674029258127929701119792110541247914065876928841827714289179434986237912507513209638092102172925104954218255712637569426602173426956331467193960511211696786073643797906640950404316563583744723610158734951285268048381989270808605803343500856139963946443379013571746314933971004414182033345256404990846187619347566575142318170861420425874933528126497957224879148270408059922178241420005999641104309556713626861690444148925736693271517021901442205505103144351916097540861628953390650865545496936818973653414063770759189527026791335842907221379370155840125439474440013780541668645327527873332692125753362696415332919787334017374171638513344750802085228108436168323591502942319380479758360517165245133278395223500831385559821912041202460079349466475818970137352503445492548680628642840998878293944901444501651985101929614898504909933020127738189145740333287443072933495134170815469432465048562710094901801888466111142820705662057315518205977606560244669243942465489714107430417947717894932258926522733708681459692040351255222786533775642328211637034589052471376408676067443175619854120302670819751000338702727662674899764904504206426720606190667600909048586292093206046463385668948009506586539802694931626652236941880883736062529578290476745236186284521573947511354522296954299322866191666722945587405346571368411787506105984753766286227875466913587504264305818542339658554630663814959632960243969898918513080349994791099491892889344101422057213812337219853788259300386087500970347421025789672287068356296299296057650978877854796489598885987153919957703543794022238539764638525417873559846208675855270771126516402787210731691404506656327495880737455216526166162990509087806564951745592369649347786391189554379907117696641045094579600659223373783178897929120171803738979284423409674656703415841439129617240241684736614423454290423889518080626704506130345696010908843265083545626280900021616062659847971056686206217434322438262394939837955415237924009160022748801455689540648544599291030715138235849247782065601278859361445239879091200185941012584499648180540545879134444821399460265828143657442365681595628235660697976383074018309636809627604119700493033228261646284273130871666511414583317886254818992059870861055978432743347594647996066490429951412623993057384128505827567489680853917527172328505427612470851605922576592600179468469813333241531787616325092738440728653560160013769324859542072497731561813383583493240049824553146996525975222958231974067844624543191785470987435953756464079030177427326215692465866297810312945918426596695216992983058072195544331108911200822945063922074539802287739206224784758524738114856789616560847788368246084442103521423017757218273427432352185400086031323742373689494966040476734120623467071892124855261489207369863407739739159528535495209762469580634790329535462533790073522344761803887625848850866519649152974634260732019188118687828635833893110557853364682842986697455546710399544882469169117640258299260308712830433625132996201252672937839352423414162040163560605391894020979156578442300972195522693353624129278961965639619274150216765868339511559485607537175845090567443174907356611533858147258444704057397710330542103297112901614180436282656290214095034567168104788344045422304557028294725641200854006162821874919066654467411411515973524603183251849496626814806717235725353928713590149073311478103271551245031389779944256997190588357720181516665687705107848710350539236276351292710138253443521703797145865131634294419581086454577987390116497489442886213993445480379866438844748945822499022521524141757005551745245505335117334788570866257175624962614258536269811948879533831789788124252723805381955820910711778849404037653565412843281953097534280839404016116457093344007605524200344290849761601656218956852356848734105787289157551177292759047517044974462159889559391022805171404277616183794433565368505669502240145985352219441973996354818096537206399635883622677022369844955161819900400676498379108717151844632208451766514889127184661948544100923305930907969960775154087750926626792789013486204930232900635251566968470449332316925770788532457597130111069700136266794810197575521743118574593306397297225627642676429026488198453538886401183636635140562637641286779294051918929670595520944735279793287692379753311847934440491579894924896442647785092641255698009361982508991131925519866457958973734193802524138634298835987654624839434289574103443213917258821257462180580910652207800840355689144327726114933696341598974401525111189638798406530237835408104526018151967053031200784502755969700919591657968194086398501817982674790783760677805896678386955055000432209839437847422349353027229014275006180223457295874199196119573037410624147888638862831938011242583095908581374170905869691342944371252478264737815023025651708780382968834230718232093540023113053507162150790750603484174363715776512489598905041088843921022028496460296035561788322450641547347993491393420772120830083186645574042764131855947696913693847780900335580475290863045424589916703389647220453037338215115839072137366470980793093015207295655491215243278397402472491779894969567440764990376507298003097964457040849911345808057436279702606179990143912011058093530818968278339029718511899309790905148953763378082221569078281387211565056244276439832957019273223235566135625625784923039447146289330654708778255037742602212802840844416830692311153563860789997310489190773170868415372466149533013275693858461871398278413227881751695922538141437051936396474306863616991233800142742730731060559106926706726318583244934911774859408956857063217343196393122691717638736010861821076915075810312538591010601418334769426084946196022729805377387198342801883749270330401179028822779930241729063699209780638272395741480017668208697950621974045813569581164799972985329600418311808805343668987652802078963891883046806774758345077163051952342792961192345940961118495396090335494637595248655243692754238532865853575161333643801735901630807505800920232867801533494843490776054896009117762607069969899852609420145322972295038693849921902744311246352405096337784395272094131547195559551009933354280985619188057540366630484165767552870318986018732604827569858721069881282145704792635231051379312713411208724185734881703203200057144612930374919325868467053843201651128823740561344737793596797350894572392680816092017598397967628819397045343356666505505691590782681138219309481952529739981495407221154649584272410158126442047334376871092209296363637680386136694578298292667868955571909171522284744988681982870581034636944782093804772753844240455241263789985515575098139997491595487492295774988709275505050387774190556047028766918287834025368393362495707880419002409960107123722465562716134901120520323485450468542470212770178648089650740755864593709057496000286242106703194228898473766351110747260586046848730047552705534398398210391585870857776998320062833466927115257849382070080921848229076220412891940373603527826796788640884086274660555678714625206005496336612198489514179541043088569586648897004699199572475204934238548378717990607641358563228676115519683829964195564233403199790014064693088949987521256193304346679825615035506454596968984282025967215147284994419998818803553265010646211070595719101450765688442424610917137635271351581184484677259365384736917896708478339241926790408208494637655949228680508882462184756226100245447130694797680991627950142599233013045066054312295499816401403500798771003417726338209902161881940574571685844651911988797948621933679002634462290789114314827748371540182874243864206358892536741856424546550591175824840977051380290253721522337168608242743006316385358230144183751130985798851361170555519975019837044761157822824584941288202753973441749607145129807312972293184797539214465619785664324779050370524942775649458050294973109464013239653409902178956249431939023852643688615549036291331489300096066124548385136015617599694799313288637727813654099448526940503924186449325474853053158496685498959261298111507331851807162535908737031635433440781582125370123428509818940114267709293334157345659351551593487429001506993274212002720220986087034455132036590130965479686502250058732289491096446515460119726615922137590286615562302382051353170404090425635839975026529200900804416559366518611686631008815807164380892850232266066924026690985343144056969198672402248111221084822173536676426711653533129456327916331847273695336759243257229084773819013396084590635932037172192418113552018422915127846600741215337869368817556997394035423911950710647000708248993967718944783598862297222564856095872243030494415153195493934448322194458773345763529847620198004259916143865449278201434387207795364292126547318349349805720512122457329483039067167684119357992914085756083811001146080543472857243750973390244573221569318153659399563877054135594425731889086117235750954292290680080757277944460093947511282784580553233969175559964559667187828703844708185107236077062732259412660826016840641150520070864533973258557318842779387187205253342032657597325223276028703342962261049921352481481240060910744929599661967301823865532053319672138700497597352369884250758976415169086510319688342853657319305021937891308029862200795107965081077041415408567402719428357764813768264388288865250900618927924282482887699593791128914945859095729661285410929710028394670709490834300110242453359855209275148886345115362912768819032670258955583095095861330054855519156220920229112228005696107662495943922794975589645501298547643119657666062594220158372427530082344471380578539676147265800269481740547057824657634949974063062639698529294739359579051339544254663443854624271675316078096164432305805222641205768414934391306327088576802530245863449796697306788066952404608035320223519451790081052509863205198016035364939285797590849362561752645008582497192417207505428311114089508073285308313911964460107263804911945350410058431191410001573106783934161281271008547234505882000923980083536792090990297542142230362487588037092597910098796541769658857811348025424333601771792755927391059953035399058603747716741327981453767474720555228112921870349612583413451524670083570013529875301140439532204682185584400972217180446883032022695133771721641434412879645485162121091053579434210407203951770761815606597772787632633944581300353459503398924525683160350992297990668732886853440113318081851717165484937936390662026487662864716247522253791328251011677177931545276246235504791234534145468448015489617917053487475180980603984310168636991404254497339106352358503338774076303774277463740621900464086723439266015827954180996745062641689742257441920885653750481735694233330400521691140625255710638708683294629878421321810747460987642776062840237231732991203507428910506377015985320375070837986265652728281143642683906296367844573536935131481812718037937544954266408237721141523199681943913237300847078743251965986617077854435161657251273842653986059830784182762451514108816599838009896832787569986562339983658441812269840081840407488492798226596941890685200073031629596884607183939408172830756058555639898367362608531109951109781668893320579488621112908554134853832030116816528309860791532140575341225491340591229964785134062914254366067399055451340025517661615232499672209256738488782039642648616355608872492114292909329929454502959992124313463084727223714816955335155031728976454444186017878976596879638447279402843543511594926528029665464053852116667390901370988439820859105012721434905405409514615115205641043316909625776281174386847347166958944491649576598978083741616627254263514021696636684364290677825355990670071199445435187288718228001728404359238744828140261893823848957604903041808987487173874067994256079640355378706522204809128892178044647743931405520837664103376006699877969560100036330874476504675692771144877900887024972415399198700357197875359033543436003873622913524241810290934143012482546918551363460548080634501737361046459870008273301806218086782107610177196572859244842367098467775340571894373916478956932100996179852452534553110199862730396884886766388440815906035997875027491734307347231572222512919493418436258736687463181119334011854961396677908694699304565734257484261103055811952931913657595873093459303308960695740821861625109507582050285833013765023965455715720553703457978323718025573340476900348407296044633162949956481928860102201818543792744116758999620732992328101091041388371718578935739758356298812965677340510404912007463752138624850548321865477969383395493053977331044389876895547042955593577949808067566372612830684139489997618635025899919961122620017312163062640156179691856971065779523734532077933919826805562040051803227469689515963328526821824159919178630395618625488206202231673995989443396494613226873109271594075291280474032758175996113011761989125976773591260850894365337822047956478375185818661552881826891285566107685779359788073526824463629456650560193301012809190699180352766057128953304948594528838588404755049260676288961669157899927482735967334982853263248037761523727059473255888874671266284425445696183747099826063004031237979467111196049902709687454543547794568270434682847483505148607207678843119421070206521938199448383642434345020619839725943343847748408607914304085697282405222146065234423976695773750656992882777250079081968007179349638930501214612115929712712157397288217651463419587376850411290184215721291734030301966572847486416845718933630173833790648338413267743108669469704827875153071712611214914970633472354318786659738997352471097321233619783117473869859946309696167918287200876794627297012409183610418569309588642581613650985307221226227131949045021667519542863606864407930211179642929398235656994526850537976992951263507852389281765344839472710462216637110316982595938754431632293493975231462719469950201503743450676245119145254222070318441417022256510972868760573689741941463548518387914287619504805929679482062670179772532327787244993158591944678106234901231646148996462336486920366575461865127710822415878631887163284141507236395590510802847946324042621967708125162100796478482510476492435664138069504036984066155221159719995890553332911973110536470585971624346630693360896275443479594457256305899360878540712204045322999407847505361485818657120248836637354290965856033851417447565399058341664617657843352270564948534636487159920665539958753667123289136263671315943189059280544903942500745244635606038637280465332407769871342827334170135449778397652604906834724574240078091292551233328876222016515643440813580916730442941203157615894563357764133375582410058366798308479261424035423032650793430155031103272711344671402635393285954162331865550977536101180439757689190464934230291110035248951098303656920821407094577811825178769524103204981936644710764616995912313471692457305477860488809055144846314167630162526152636176348243176997340590562904429550943462092391146965885077308198621439427946822350119888297540369778449143199508969960977138531334728230430810185137015572518252209896011165877433755461896338548582494212394198871097111589955394113553393004634433705252576306993409841469437665723061178777177356107622620922994014081625469650734041911832436954892178652338544528266384148414453420040214078362594319772706402387300906076179374234200738346664823023139226205707922426140412336808862926785112032640227258234564994627417449521514463871701161709485937790461546461135129625413326582797305508648191793211824936609959023805589562792062253813005876766478210127148317481428238982002372840324168104758713140374895504200489944619147329400705336401773285495043258968449391592068511121086513609506732028357007015449491005896211595533061949461623603003595134196716048472273055202822524245226502208261501374317611234515356862524245391208922776384550259068654127223513093936310731427693093367656654278288512615165211696650916577601312083461776140241576789997100377149276064061116903299204146206685362145069656960006590875815363370895343832054698213950003887015347108612624230870096302085953309624785831151473252882889926780346260329542346696835543789872636964855552491635259882958282218720724057186561886370778459065351474603607760505702294031788808425155553572253027924444271285739195107252505795680829159994544553686008161485595803350329975968765245846564874406564989708608087252880588402293378946717085782754090651272807332946355552899056523578263348244120894899904831277318613463775151209319624195466196658373231412570154796828175293697625272379381301090765993602856995270872214202253043465000959986487780742510996392212090851552006205524333176773333265431351330497951535569728607962951142055634741189024111115833393393148304587214553026179158848968934653644410579724115564212700418885523768468350868041735726388309309195180275448838762382537127868072576317826887114401839763826853491007170844588342196018541080939773968581712724039764985829094197629412383670924618589625454754305296573383487133682738685018276026297534772115286200902758359117159209529554036460337095902474835581635545667278543416666150915769394788701748207251749748292495869972965081217493805499230602052321059592725365790103157907517476255502199512915337789369046901804050725735399374415992291155947215965935500329885590914502589537498476131485904303015905577433225760220694883765415792424611414546230574748909101770135266740214577285117966968715677642244199166808317625321597874030811985772649250404235242257911065707149736651866308683592308625562424491480304002758311639983578271384277726297798547795178642609539823465496335244675185033590743540579197249213834953661046211465196226294998342011542103284561601272291622092920799223862259950392330385110216331622761630470794225016208806321044422791984075972717424755966747199787076313751065418081805701852471217406949163517139596486850862157671714771942676612528153870062401043405322188201282112571482406291936340030183158639215151109029933247354905436228329468602814583821924257824444041806135696957886105026287309140231107332679098149547235858718323547034640318528171429180693385535507222644333767411057619443278850031717805792226081544908581755787587543590331998371349810737740550199693203594169538572811706276753484406363798841168537862310241709257836901039148200161081469527852884601197865128266781365399070053303826493706122547109236495559122295164803552855875364087614823142535689655235019411173278261103655992355825386429194378959613860149190967540448544488698830855446192010780105346326267940236686191601478646122722341494402149441755708857367007064332000595368150324320698480197176049925103841868624856006574500216227056949686500552633494685985263894276837223735925259913675852468938679901688640212679967373458156717535485181332541771814963004310722351252421561497461537840483006478933017016685195768853844706455932518967813412639999050951162624625279804245585815528336428218929412744711219962097791858628195164040089988328558658948082304120986914808618603837285462680331306438722374077454770484005637274955827425007537712895914581935182684598141584448315640652113439991281040029487024807042002369756532822485242843306712998093683747212588684164826842657412541136916046120518765916817620224503979957581026161322108539144060813220396394122462570185046274877409183476927318286784768739756543284359947588843525059828562346739243927602498135954480862444190457509886518669271720839329228713592255475210214430328173759143061932391407047138769560017675988631554373915585811011992211916903886981866221297632559058894642483382695103714000250973722262808940992698555575713308961948211967731534522053486581409093609496334978523650202531188526316082952968711367215347199659835355768763677518916933503083599753352114021824280989482997730631728538288827397767783250629292741509272314813376776160967392851437706291908803568641841494792550205213384997306498659077333011947946020370299797390397236039405268653000639142079480851374631707614159407413094645721851876439207267402684373734693327447101871894936132856681065240102091617455050453883274729862683475892029072780932230488055174868019805561323126838785273802382778729310725659000216224252437011369112529619925378421163051416624260208745051750431584873399239933397688728700788802849493404242551477172149132449003002593593524998036105088381178650458087660465469698249419067170883848033520562579686798571612967860889851076484008421507034826969328565560375861260096199066657939130854475109948486274771288086368376775276295212523753731860580601611402465705797764958686435859566285830526413898313990854929434876614804959784676801524160699093235060879442232159607380881321536880770379698100211260522424801444893262608417266135043026863850742053437700790486976781324188822011292827200342585711683178286192906067010894678677902747837896823987987046685587091608159334146253892640509425646000440378142842695793646476747455156849569671722546803585145085146623325228273780133352337685786067519098706216514211655291077451564924378213346390793960051529955969394884049634913880759373761200387279569865555074246358347546371317034691441203152808602202836916100880994630778187939589352124037279494096624480465880955514997116478330266380412821080115905093273531968118380851088117940411858919210726075676922754047960968783116635870914475708148264677458434228617994626516328086961302398531581467601324215064795285099842064150785931812593159273667107336421075854915990092387969756832689676364039997828541265973893636444582809395553892000756549804896065365223103861312668084612677030914413823164879393484136612580530305296005794941507255271810117873656060531029194981341346860487819207700617389332088774507033794549508087601241330899110890629036838685190199165278963769185516626929466516285088845906168794325048747110090604256761972236767233269903040683478233331532469247926362138712351061577684296459886224312132312087626480332833811604023558745784349347335376912893013743778472878148354256566477519844583927499488633712920951088440377479487089562547960868230237124204970711655542175354318899995202780265269469758246441560553149016288315012609397048352321382498324256418818004641774031620464790484284481824636569983821168463651832733106715856947051623940005543279633434208168880354157141355385966587829379365826592567086285624074793462715829840873909895883708084517703416948144260403236921662407232495158493001215058309132350267212971305966618630108515994403074819368888914935080661603289882417992628633371918952868685383297493176132813896855804247396185526983780319179073188195674065422739053557714479655644850584623965819375726255650656223917363366960220278166160816139887040835427816450066574899844903039908653819497834344703312235088584571765822416184179347215714178349401313503179710647605037593947471290680716669278412463157682549577154111039433038272609585903725045113015678200361241018375280482563233808819021679317493230455093342566574633728358917632562008623431321485612464144524251873107585613529935440628081812550675433010136757330258586866405990662343562531942412995671937112045333333653349977332211340127843209563527341229333141015474536022206024131601173730306471543852306525556519515646744405623174004686625071412337124723850632005317251898485908973417257031804615065787168444984375337389687483419530264747657281647018908342267729631305839545627367085563874925654412125084102358478134983629709015924056227803405165957868652401561392368757101289995269112715520669034206065767752737861814480187449438446866538395174810295026291124896486010050429360813858903308217753361220772225649298587004936219915892770212200598981236817396954058436202861372727204424580359804477344586621467713915874226726222335736516897407776385470511742215624084858189634689136919918741518943051478081393538039022388667930793163103439524865091762796963281562727321326219353851524984055384838306836586129389248798917302132020225219371790833170001658825068902688588275912547298037019181975322577679511899796389636205420664317861690896743465236991086285787323258429405095157042569807048342748491867672420985437580682300726978863698644862572133533308945294972022781356781183960972500362079354171254736230668342132326943878817343149369087008021587929817862570261019791302457571994441710136274571875329172914015760646755924863403625171785199428071363708496565476049696407710855718248309878293957076713635924217967934868032806030972464206615089039274040074344135123394901380646429011177904388393488035137238831708975939734454618656663305445218151043104053674099633546547133526079337847612086920925606396108841274723299088714515979184359114693363921105671941973136662985152763739988265596261117166708959217023683656201632751463765421730180299267696321371244028217962477097321198539873579747993085991887618636808683988978571453556403128987166150901637652361995996766429099895801151319314111436903810842743692100348782999216751077019233242562975699145083515748013185179626827108851923029923188616614382105179252839576821398936564965150541664930774395085716229707084550946574048328322918168146363058486705394668236875665437118908735698212572668685238313817303762270816232737101511884703748016721976276420480043198516203025932905741239411768584852402811078483574328104083440780808612340811596591180702967202941719088982464955363879631695206114801045324175942212390267474061360484359127934135678628310533492382714506916614620192129594458983474129606271347062423521136190818799178189435766500232173827743841212129032729101231739827222060177817896869211929740438690678605654002315175380390404035163223508093199155766497652962075527906586075379766522250100653159120602239647066115289788024377715501690483175297843019736995701201316215898983399365613753104544012438726704260099103246328249432199442868535729156019451918999534835159307541886402137747009958758277231353469814964193875065799670527988623817921149369308383210652435532050138742957131353742404134691752175451713934622931487229366989680734836497506130031230601691021025918441925972476015616960208743603539690602438894366677012953312596155935425679002121950468362387290898686861822144656143999867925154501870222361332078181653929979741713007096531398190748090263367336055396454874586820261955292723539885262309337310241705233323320131938105669755236346824268974277626387456030339354435707384398816640816419894768067422018186528907778830007748460643935346004877580802833831806679442141006415440767673044504413563995203947366148319400161126612158118539994621833500097597043238739194296247194846490267944747865769646486516197130051243600137982906579354504496424751043984805831481572541981619888901263351199309923889478446836217042975756472585582790680087341530973412246874266797572302738466291567357665938481233137036667415534233588645237417484872163597847373096853173691484084165010668095424686988080065776750134967776879535518801964182929237013367172788489955563453840575715051089499450328807231758877661945331968952260135364097849018683404224408084269881508324800882112360411885316293702650825849388480763648865186219983357479325881970317313730250282566799950922466948696876817319662333009413845571147606075844784189013809783265925507832130694718970053318109551627288546394164510059816740338322814690369998136427487299254392724154358499821092072236449780448012034664404253885540258594793012435016626120084134383346255875408646718872717928502822700707855792363361773372071383080860048529923778028805955632775079397710342227866420621668737190442234971327068232944952510263599002327655611915484855133503098408809741703939536486809068783787110561654277139786874827718570506705662200069477462038354496634420957627724538835665983361499113092802178951905491139730325115659741504293344585449165050431212943855140923221470260176982144499232051940476711872151955965604751252417141730297272425597909020216222093334162866829912017281867157950938793159998248824888309877938502868770905140135310424324477440228899119378053623915770662162285966154179724560913009056410112278545698733866961967966650954108529856483094353183019939300391087369613389749629481119096851003137451810282058364024907954197904757737739358645737744472017691346371907936944034680948563592605245436776076691053828113258685905818116969036526903221026445090628126956731686234285385774424118829411980512868354274338616606919879821047109891498241991769129538023528970788222146831514695888808305051832420964576244223820161862090220523700439645024580498175494229219587850050229789467768265244216908610949066889935378499689861533662828984604946925757761900247626096011858242562014920537835213795043642478995132728901889818820118619365768384307402969261484388628377887033602224672590309617269524567785049316796911209173366235611891278070181572573704025409887771496724958061493093021800962631265329417291161395723695639759361998413497369417200990138592363280820447430238524188384744874962136043321345451747264147695819599812045906621237813973840509604481909384305924217478310473020420563782241583671035494852273298770324685405255753100141968347659463305594897571051198224052259365142356633296135152250346955188104470000053087494579864921590670708300594931372885740768485261686424092557327220040180585241467100167844520452242050252276448851628578500161617984246031771691470126319470548445541623368728245536824013182344313355317803141922287927234805124750800778125493881220255698436622217442169522246308367126483185299132109255572141767893870795403563429656355758801647449857437151396407115910175956635599726302625850385774884601432098445902305140058897323500559210416072903996043849002614588913970773814947086923236806115547549159621903313910581871552188093689495143288521957513421105684617354453255516330065618716439480651076126801685848548474962687609223863220781440892916527296350681299135574059893867154579654272723567388236661040486109810043714344303896757025555150439413108698469858435134369923652305869902772722957318570183115163854031496897116263555749657507922709974104227231396776807139419694556997536599096200297932078626334228320386272115594866411756426013171663178431386926190554265218042351815028216844261216776173266139807310908281511531130136351796724502336326213186608751480056204049893240331827135641605937035801540028068151381793334006312297066903750053580356402215713525506446370220239918065786581635129164587400140981253165194009423058322253054963604418295204279216359904379200447140099069791841189358848440636035341266642593661263969194891220191983777538586122776842333365642967000702249279638897319204804560522553982769279933535323767804849732216294836142968429728067224473111358764751050309955746362181649007695635695057152975497126718364737263676056006214113410092175708967885678141080743993169828774515992177632215234321694756749712113817283749235523965584249570509508959266976458960357132198553503642586327064455414752293579070082105493633468231830146715387946899963142912722349386471434176462875020757998291074960335219000248515090846225581909157189843226608658856557838963724074503845062300287270064866677839189011461004472270139337481222999438212134056517589169611513909273230910271927608619188160332856970590573589781856968356006294904993307175649240564296726481903952569296347033215019237024410757817185285865169394861806886769804809936264568732348362352047776040238662839947468281583551165268828099403061965284411859850842812925874287261481921483518784262371691060546624346595808521019605040934763909771078459900282611932309084560747251928964157746272689535630552751085873602404870606466007682330165226462885111157425714493768139523802088950103502754301844512324423079351806061241658957498543015193387162617835756612637178609009357746642252350453325209058811395532816265419260716390215858056412028853155862242342616719541023609996779455908742779776647720538218760748013615262078708343320649917153195356105600362938942353585965566106907088409976193733680629478570687285158818098869898706161771277364919071930622435797003595601700702019961247353881029956825877836258840455105579013360771441536843121692593236779743434445594214207221195589070391983657622119956677993379585568141724898832579246253950726978036832254744719141942287676004434536669049350091592004109519001315343772962016260173976027998977890299867317160243727169919657936442745585350857936420559043770655838562883721477491139133829935300354112460986082343914851901601417169656244103755889253175329866720426074488375331586784347363039183616469484815423817511069490107930422315623903836071343554857049920457268217952403044125548300726696713024858410590033907855505323190198720126795626581734798281829954383248731146668994269232102197579305138841082511324251191831809894192706516072442678486005528536603366430822932347766728918067152166677065050378168311321854773967836656707405962587977511993362783733324771763096179742321521474660544010155004319407705247634655399563946933230171539603581758552339953599898795507893329600193897289970365454915133063999954838708474308835568573033175144416038213792303925299762649687181911972517125358271979818725504435277764105206313484415541642969982043749099280530596900088899020955834480401647084423177084669040825656891767106045972748350016730744811514180704568696624075292602392433210598207545032927083304333197513715892762083743298099605709993256566377447634847175666775685742236979219631404867444522697264832514537727523753320652855755683097805211365432272994009492596898391840506282545671603476305698369039789053935007857550182443481113375989915647788878737978111691357875704522387137498175158624735009957789291714885412136062928514121553952116211761715157438889049732622791691817370448862070266775725253710616779861864209490368671659379812690962691780963766584706603327136353243410125018121979981773068169905048717523706235579776749626134763347646928336174387782972758830175626454959738766436027639273957852216099371917936343360892573007769628959200848538996260710361687875991867094569533166115094550262630465913244137542784218817786911004967403181302832948474368553405978619885655746577181412946226314644685774851327895414434449569024377059925201457684548110648236467033206450836438290127553239182033671842953655315652378377847196888244799826255922029362899707396027115858221000988190296797872427189411273658286756526810018886592565608705934360970551245146154475127476176942545056813071071201868010290548377918107866128983102541244309254201876437451168594776203789561586086880820319841021978599120307768678874896626245063966042334758233850648481991978225518994612645008781091433442159222983610782703439933895194995986658830690452687672193817298658822452937775866746754378712634287303136732099513639893814689828045587037572940425051747512492467197968675713997906841873695608029696991858958804489612599819995926110150236563760541830998941962471099106321480968997752339046563325091471718770667683423977201514496134878493222975442134647271869964126593826319483299548194522383610332053392961415868161620020971100455367164359666202819038122557139220982511844956866125339502526914363875753999120274230894928177297306928853093294168263850356142218500026966853548097534433356681310391635878548126313052999291929654966122495448972668139184375877810099794194966920099260397005053072839181141645855852423896941053780754911653333419876680287417242572377844124948532240910318025267690974516662251789166034925467457331743668178235677310779203939926545252568560372602353716086027225542030013566834606226140648012456831887663830037706426617945222223358052547054671427232673723354869544691218092903600966390400017839274845306648947669390840778866076916041016115205147110333039303171737953189830052408425331370866431812864014929156943612518970854890183684778438576720086753594361642240129758368648230539265663878601719908795230031961299685902810462886024966734396581843051231995556700171162809193525097000676904313576614922774552645740208946319953480889773115142492106123324396248723666034239686435319553417171754891833812401337570365405182179449319406230498960638558288626224524622961122289409810518379263563954900447186301296149801375983136138266476540756737337384936797592923217879745264667779592635572986534202254149541229236487084693637538326397131332900307829285866393171043591609107028849059674482608872638979702690241462412313740457256859367318598760551607183283262087134214177828527396289090458208521578804843082249332054789836186649676252241062055276776047188393533848804131632710592257027509818278082583113235873074097344018456052329118742467202962240576951240308533475221820194868454109695191609444688456201476799518772847916008559186359838515894026982431425708352494423808226486697220771591463629251932154383362615520987189147569975719895161323914714138413092781158585538032089043430657783913157030971968578296446649513333693597483491990885903300496952796523411430106423853388534362967132259315728423704031860787633580008057840700849252345569216967795836868055593212781269737052685402510156369979107513768519342288016836363962351493210366501809709964265334744106709860692068702085126466268131828055522490214849103766075956079527661029525376864771970554310728860671292192703224840227142763584106669577680377457231730753679537521495314278968569213691959531730407520945373581749998103197033684881771817931941041766000233349543763367791843889958999139558425105526568258142376410189382752055768185906167515267901430132235050416742488448151870112288568268642045573204451497223425497808293072220701591893121571014364511496994033761410986493172982938837198454938728896865518345697581558308411950751349747331691305527328562452413934724802989308437664516115314224046923041323789324961769762841198159905399799809738853096562203065184978925368139850686321988789510202899384424415682543187840565549692253400395587108470451294666504383140424045727923217861349280568355755830980688968668116771913096370457661037947347985021443449431170524481953571675551405440699823242007659121446868700523686107000524603357154453558961260881070881669930571649146755102471730277172744377195864720318186313965055075896502878013240435115957200858368433657203560083229167304638897779776580479728111227122988761993307399899240167949807741523314761371342209821534671831026099966338785469928527042587348953948759448472278410454609478695427729164174900018732624846612318342612574413948034492737449510676536184684842870252891067659360282813758422758413806381353201809918535784681426061752226974547837180442032670363967141571116373548274488433489375368550751706390095040786045605477201063741046282518651979403116733532255656950059098673578685566534089688498054715042063642072320038052068291973934550509490054074620630779599962448952279028928112854718082298159615274794805038693404939511671218688165907876841447363105670945597695234464765820438452773209440038601961853542122622920148611215334911179914363613817189803298087215219239106543429253456280472958211996936150177391841672703231126823617360331090651345798244051533959302052599673041381312024423968808658698908602422298614801163926024330805011766195565584575779185193276333169622888475267193576385003826817219356459324507726665052493433173681237498229202240634083558325700706597430772242699444718792310196932417127095982509629335662169086068559372320665447665044747999173982861278766311568696553697807992946496315602520071930999842154508450734109487439941802001061662691223222992726446551116008168988535813700884645363868857013861344835463314141369414722023813693820597843296497018155589285056011998710760475547304342841088835608212299441737267158557291267409803045806648342568230456176481567243836339369289933707637514292882154625096450479850357793025089768036008807229382064016684619613031386171522943591952296244524776344537504489451848861356648982169041024747976900846909163893689507776500521862267040878876348834102834640520593789755272854318553103642037047911575162551829661287835805051654041725329015252492777712077889407241976994214421039122331204252789771117702743370607053818999917620108482303663181820058352900766129268435924888562082946107142630963258743836769595394887034981003746136618987954769720418385600105829609749706584682695463666103368676470416178271982724869551804667054125840903897248522712057855708605930825848379181836932346120361177600935935918078920276139042132909895871929394903624238721441066051564021870873587177357995584687678874500264187462153345259415597543901320304466031330684795696492987010097379043247712074621686644525427120494227729225546453393051044965564355276098217496520377295911500826969670278585642563328420498879531011439555051192988408495303771752972532029877193977767394723878527687978151427855968806876757345078889487463750061066348505521061989607324525826849760648547985895104483518321687876829730910548529750317081627953044628185889808097407231276090425702617464162718672169560585293075202306823570714882373872321627776483501819690207979692310930229001604101598927732996441638462503362865381318013266557028827813132178780778638960571201477037847814458604129243867157398178715754330157519455552063346405423844081993731829209818305832919153824184143759443482860221620269888939810006593521412154248038666329962098811725030976098378390820581105235565467594125400302114379171476566131726895863410305026865841084615811576836890151567449944955601596302710146378673253250537956925056944900056307231633998216061605337493775661110611493551707360542650778857000127617320633819357483078656798529317762378983668020204318411213412784495299470204862036550720580935735384059766127922868791618864182301148669832375968866515235549859542621947843260662282801801731449086358424478108200533111014344795161887140082564276440080679929956442975065646482585903775023283552099350570319651776840949383911219851591760565044540675635268363017647417815610161407456075459307988262554095793723172459903937058241052446409176832483123782980522629610938446348087580528027313330026443127615066369200354478876081036577847036213116544000454446408743587432214496898898227293098053553421496098400885190278927295288751156057066746300805014342880717357694220140049574838480889981239567484140083964759461384411107189273961901981209081550229227223219784584634330199830840471157192946133374501854962919073695107523892054205371072218832292259846380836091826337206372366914549296880294040138341086914456005425382370686648897721301622927929353194530717586595000819562917461848400796160057885986685893716992513014905854606615184556168865547540383033356913186796977163121584871741138745941472231066144577446490554298787732186862002631480809059810716676535514531754484809772686970478730075764895248091782276334653886237105443091571746253087046101482294122782807113705180833199239405897230788920394274048976498369631816385580879431116543912884846365331579101881787768913932103515235907643123766457300076660339479367516583535720235960700250149461391525754547684590984347618820705771417928115137014548130958715253120230881144162230165316512597696317797798334771609656844137227574177769800243914315942769075119944146703917283031696888702348212838355549194529577096801679037061078689837002255972584352307009125248748094252329392792070956148478829882223973053968676333497007517046406718734168328282769936601384114385153235905637294552446442023668755315078930156641986827922240213392348985232844700095294195639894916137090267069296697663967683486791659846723684325957495075444448252192670747278563801340312348922399726109455706746330571586645688281881650604244419243716702968005937749011442306989781114805139753507277468509393539353551118116787373074597244701986681895694756205667293849329523534363551045246220610215973523838660236433173744659863075692709701546535603737512990738291548170763408715605957178760593720723368531713082189871106707228166379572473686982461302614754688584499080622965589749772382984123208617616084640679341711499571758075326614705986134185294068274969860092651624780057612679973839069796892720097722435098776032467610200680545195945793512416893270455124713004202479398947662823914541449895856444172711018536022196818887664802643649254288710729383417605474885507493106459884979486043348194092991506652731035729029385354191702261104935582159229080636375377967954783116295959468443992791749210986611292615221171184485398352867742667659228683057848800738349087015411944475989411861470879404407864811259221103126908827486068880545138013350209824965750384487614887288257439017259007143295064473456558414679881971945424467349809764707570233652248705941915273029398431449959302883329434927292093109515775919245793174660477930267338126188073981185493522505491700813992395700695255272418823966750399231736200639520566444044431592555936564997670253490650427888807225691000335855878075551574810539232728582519471435240127579237653393422287478458691548965389676520641424572734990600672916851199858905029768851283795359856606247637519933805986317131423136960334427465131647911117429594091909615771066237525704834550530598848712943728404160489216788468642128010737611332686003492976668563675207378228486257556865036814485002187587507475773823503410491120821109888890708181221412356967651584059966723112995955407838713905341235324202457612758360917903013785728417199263963385255918336764408453659279968670573480930902691478907125262895759700253671059886174420258532542063301146659235347200091414842429443204447669328836692115811020791295214550743984012173379680138738952220290647750111889842730637570061111716261750651687270335276390538152686201424208880274040114965728923400942820158870038442865791777678220667037686569807517273418234546483806869848333054946670309073132463358417994479279147950255512119642984770072807521571065376008507143988213723155347928041864592498176025159480557922687220881763495718837583960138261691802613633942717091630769921203047545638118805926240997433626470268338456669006288265967291461711058920901980016322611368788427987444698653237579081021079987674705798939603557213101194766151573588334471417187866931049125978201197979529598525325849759251466171903636795661783603732262998819077334790088758253288042445641144849481315871322010815812986789340592091455775522907373530079997492126598038550285947309295790549163793080371899101829727817286682323208004745664462098760147162065314460459597257038617520316196611796794514287577168664879142814572353863576256213872382253643247383480698028212329325090754547127485052619700060769907064502974403427553206664826394145340094962480835205785469364188229296754847671097668561994558592464566108326652498095887057250011108477018380112627748012847479315171207005632092719091397757689680131692723385969663515694675082639659456951265928900694311365817397151523672902993192366038618482481013842186061315106825740583977205434338568114678148610986504676911592491785401687384149264451719113942993789301189771181103846552485077870986955840645337815855000864494350916942880512998939991466515858061479937082672501589334008037136532379305971867161614295656470875606891442430223020685240842373279313892923386833352224947645109718416608166086362558727826610228075494378558576212208069593431498416410436803468242960023100826684131221148848482703143831416944191808683011798020267769725018211355698850780778057510983183518836032980361376342220398732052819919797218911922420893706073073164795285717354415316906386429401984327601931661250668479185458522245188347378923152143911028091609538974390877847134262369306234498415613703528337865177436832422509176039327415009099512280823157988964512431421867212323027796538355807670182208953456144791938527110854183358146462699768789662627244878678971182259244775193563148549719782974035838213790248879722901131822296955397349204259377980086974674915315272389778027014569482595485707284028863504657864374563325843811165154767710737687624697725579850400563078325790524475874795991885623291053795447307739622051600791855225058104023018128591785547935025762828089774355985849713459368689186537953352686731481035152977538461310845039915097086732213082095119591736222645878062536919986147178056051334356523341031767270094277921827111283118970956635730813079105257863164194682541126404915329690623996761664261124007066385372592830609837559372754959918184225744598028054664350206404764618707846999312915361188980647528640703216250491309042897334909161058783940982376983611978853197153576815341275662205099989314839740718477292651438830932943242214628793986310769484410846235422468153510981621161873802907964690866478510779388230711705958132943755285424284290463059142140978231942943743503213189993043946379198409960582005897093849938474204585878552349392843321443952670080760395385031357050691661325287003553353653193727720355074735001193265366611080221814606087590086510111103509752416927022187490806982298233179005487294207063260383817977484086307965453038067963451678919629259337777738991133363674445669490801182010575930011599278751635414418671120861495225261937341624748234623490693880610989693476495295101209814535892476990697190661483390017487914258719360984101598011132461436763734259840253262614983031021956087046744060601466911089848899597589037025363677401451700598686643756008930277503030778962399683406532674329177574941933033627190489887680348936454768477267515953065287963363390710662067029638638662105323661582327293906531081908003537858192937457367874609434739604554532857092752079508158816590277863469664741248365769415216150754157914268706968753273922358078429647957600007489782881437781416145808850913811617093418023901979214511055457551501181306845690752460900294319512308437560645904344658354785962673546438423274169463766454602472411854330647035186991740018164426248669287837530721144689895084113880182007899697034818102416450804811299932913257439620308019808850339663490735013327651509671795706237469327412889410044166905630755858379998351338698016367830513104116261922246538019874715063327425062232010308524126763972346731796380773260800538836068752051893433809611432445436020875645235711134889421597808965031290490464978516209632867518177536447650937949183228319076913426405062138259270048415101688915091351727568617522846170319300902189819305435692150793458518772276844166068227072851385456258963795512820450373160402761178499346877741263325874739773408936289648722373862248385714358387941438289157438613039380293317598196644993443296976880239183252856761236560716720442864159272895397707008942698211221391089042466641856376618834543535779548622628528241286821748360409974846069675993122027158142014692340440672239767972682297392296131478180666769000528445034667383011408928151936615662534737501727668313460501542392341612668884874177085259081866636566184388983594257556720967657840414283142805889754319114573344685702323821457039703060648373665888223715184399622823834809408414749500354643250379330244055707842208561191230597177873424011966839405505081408733256487941774880285945979143909348933455752147169295738548764664941499695838078297157509197638579805181958756830350417716963655036187386779337860632645682741223560689763873019804658781240632119798525627036328279944027047721669066546504463530046158216196744184384269468586861540433054968698099451194980108983248325672220072198986688227835082817048989073755960566399017329170261230722041154288067697264746853049256196914741968185688629673990647788764159456740045163967082110509009615902797666218247657501254360205539601344519771254033794618406892398534778682883176493664704362328974300183372023166711526053146140665105967798652825630191367310567337078329601493824850473435088998638158266105482318959198078019759504066418150872694362448810162644610530887161066950437866785453356909463854969281430947623505441776621260433433235204324095212037960353734455917496465008376332790044060217937392867153107207037392085836029156677901892888189371903953300104953442727154768739215143250940535207167675322026789660631776706628111631694966193646475895751377034934710003386986418151409011098186875690759455587776110554131463678669404767305667291464198169585186752323765836381063430767173422380878432714608264519635835444080334574163744707211176752164806583482749997458197154712033624502046573585380424029381057687325206483610350948109702762032457112723224588293774375118259291418818454808620767312074066971914381481191476051596023685217861461491495599915482174852726606493696463226735419441310791780170205385213653269636177546611391052637399490102942921275406553258671271409708915269646470829710223508948121533691648108485827470685766926465044943480697972613826744132655000071299422124248838979143307974757048680382412922142105814581551458055806541584251901600090654204592244084849332469833651037610615731101556607481644385481414828233196723535714216276823516989209936077549201964385244804929001324517808882373928491808420021880878911924718266049745302570918192709377677394717684766569636190246372880462801143145415895558134260711099735164577996335207063278882247872879852949071011424976004578145174025183050730651324741657535751431710363147538636113298539559668073194294092827890115561000026170048391198396827648491205787704754889573202123454390527701323686986188415933037448664853534623177863766188625448922834226114784713434779316696608195629614158931309536121425605491108032898566823855282576437632729762030123100797675395784082350276869621464259748207602972593690844942432578745737690541995422888567949784459039809800976744667347591918854287107869598391695254429097551962410626451720636909554639575322664518593922837208444643908077380679338194981574479864119020800823160838923685878221721589412806026913785075460330151479401247972867802978919679628719833409339216150466630712654502940847995973682206428411779960075168457984191049953602208716670620191949321737051036482353851253568251250309888479079114816997611850466221569367728060923933615423553424699372470238354568188773610429110724746047006992568680614705193342636096679485011487105482897369968842595389906467209260285722443079430256762295358037600607853751848747218565967354734525393039931266769459190760210996528837052988192697692609954699265735836539843306597013468181070804937011853576322693929364531799003524039676412924669801943196137298499307689555868897165609615506325130329442717841055293510802945614312780331310060457566700492994611870882777787462441927526471053173620415263054381177155539222488491314539650981924137439512769595614085235088029314989016483786959522826242869790234774335106379472098234608350621168953961439927436359349889714933858541846871594171305040419330799669255777481177311842547717846357863064657914788681360389135332652765721810641194839865922550719926705742237808196249837056653876262311385714632038377791616862419116658630233332852437440606659414577475970942197718306076388825323878278826427566699755390663798653701273811134471683904080972762033205286652642250580185294339671720810795484183021249441303370877489877007321569768237893862200852501858424146227572110109824766877528786927254150095182776191333114320640030344521524118922790670569825387887600318637146036371140342558240881261189543063616695443640724385477772753324094983057562454660789802729006031560448612567638177551895426732324749268447714059929680468170077079980224545150017043944959451394529947553928580050497035686190506346712039790439660594928524360820288536309033368801887448992285330653589906362794708614372850294280645344109828456691712970240233725342692314581343550176179702514472655101651358500653732753063907808456088112941745389623161269769437965224253377388668273895540132591836970214127922731533786761478829655677488110136563922817611626124165183645369167663014922989461946722678384184586807554114824167764668361203781149494586509843106620929917405826986922383076338564985929747413399408818472873826628451725926115454588811026510987631332353150775116740231046850283005137398762541076802237854027342128871591137518380825391967406681659131445427950316601195450714930589678584551783461117459160426442561385168280676552691267887379111420402656182146823524391461036491817780080172511246301038872380547441721130422564322286814923603032061393103080621213424519912738843815289844227120115553725974985196801642847885118890570526353066444334537405951296866311429057801962363576470541641091482136145863898976506165482301337244825242155006442276477797698102454642921784724451487634034818170208700087296044036030968122992573880583764407446461795996326942392532909297393292927291681508881602066890075185039305097216679958634526068984875893975408328105649827519567736768492960036039620013415175941600256520772885313638247486589487499333824489142502005884589325211729388774615150442344768713327115599598129698104187704956623908115566963337172306030989425374657519961980755954231455950032407173267434341630209682870896768406468180963605415463543840338997768866101464194171546414482388218934071630132200977814822624796108064503305623306825477001822405983013988614657572216142586494783431929761017663042610060777241022707212061193869203450360712668551903050867815250167495056718860948400233953184477169938664197668430981808431478790510099838007971458365590697113518691637732787680330580025264092773084906284408995928644468993387566086452458708066745116184143187455552624258230700898136517864583447493298385063122344565049248939897941011403544670505951823936927197597609720107027928914945269983474628997159488086940588350710485307221651344533771855118126479539235504205791369123744805475946461976899420783944631501993126182969666108243517198530588726412015378157709663567168870525475476551613679370142113632678457363915477861820717353325374516834613191063699359441131251145782787783368087295027769839444554001906001075202034135183555303818577874414986576065403556299692248584856121230438943336577156543057286876524805763133447213840947510408661912975045162873990840163965050215598022570774556616715173814531893241877825825579459083718180287533509267346335585564142913500204504835239088075078644573818088463773144354373241595687914962949684681137033121849386671243766799481903537432998931380521053987024574440747119435568117837472808246244174514782849512325699917245100531294688923458149919637504793875165854896289270815869960682911170830348874997176399774318553601084427064311590662435982427804456413259253837297835225446641675960562769781219905622653252640382635777130641101591394489745046097446713613616228495868544660810280265460535645538513222347257787944477420571635619711276760070291750079276310561389633654761566789763177993346944532571876783586845160590181084834719322130939654425944670552034128593248244921671975238476569527624633684397006647359297695301316600500193180767116980335818333596013947627179331429416037017588103860168648723528975837512248283029922646544050907451525554429997005691327332665233486927653545956743617972550252733098071276372161880054593007369375993545155129896073645975760613007637007697594059294564111407593878717117157569697251705671891496203779868100934141243782483427903887253984762375561266217968553507750303058296479605002360200142696962527787662286208478768435667685276094085150626954951122451620975315258515255822532851982804976714871157930185837218675932885230201110342909685038828242828746174947679164258926906101519931779938134284345428997430330305824462042353415165999362295176762941446666212887494876794498558944062392867988646933974487624709971080930889722206228850006765605946833247555470099979543239490813878400787818154732192548743462970567648191536397588199174588698467339768780661707898914255882313652942755818984185848703035518544492303762019688708770030107272000374940542738000571644845151702475435764602959795577618688161221119972914289688098419562874190184468252089511246311489063561917476673431608950032839084409252194732657302096424699518737861876819727282344538221883583510064332319312857690734353630133844792901320182592841108255065736955395749590650105684787595702564430398380163653480091863842789126147298638900819245854275156482802595121735233223236628428180387983192778051691236329886700138493497516710271642425158328055033131707867937276430560567477093415976788812383516824246547377633751018821691392937255825476191325777911202473476987708551128187802384917912180136966836846825188502056041892753020310406238833860130791466012142467897495460976050060117940338134684163474333710453175940849722489098366475440919041670708868968585649920937703805114992606093323073096823889922700043928217070915929593485359471287710210138349641455160012966819725551449613877672842393451354716244048935252313960266577138428498296777338598622404786841263192698372823609059270058394756710223928352260384404881630130291060379426992678284787153650325715297642810575888593063998460276832006709602061717476499948967522584963581867057600742521616259360208885791950145318994812091422430235827462920784324663052048575088712712086002140337813062262252191239967767595279884205619674549716360255259566580347620639138286101472834112541361367283305229837020717316438295362073808107606556882822974388255746871536294931259599662766885871045889724473118034163680418336280976135873663228617142332036392075378434258508997345682993622410395054205542273790578604432182709676350136897597169918190740348352702769237740393470329515586985952657027794066988723524829707218068353417313569125446218839157722217806046367030109130786842685090096862471383160492441857313063602986434346528927012380419468961743734300041312823682672042386077931518500282328035663232653932409722262751158643453717786441234386708304077765576610409673176062054174033270376290837481460834557064207190186703850634580493738172509124276237259677910536533887140526262619786390899429737637563113576962759104960986773143293074443901878548853426929096911506844515396417169399337891058991272762584625459678779222341360648051076726035962500470044607448082280219528243685603337116649033065044743893999840374863814343288500920343728101816050988438935066451959725668447572861837696704220115200125631421093954985797481103878887018388525285483776055277999277130898649196878169078151247355135728363337628220121157255591115504831657380777988983766653266705488761661464048142588183586844336316005590771268429122662237288549703542726574674585003162181819600088195220436324819454365458324044071181982258508523635749069466142575621698046883449606815722478913806786602240357060441503249557203347991103091864413558097444132084836727016069394553667449515038635323228030625971257037283885415286778481700388213360294569613546613292089514354179011298852103971771535757146278363676466233629914887544961813001948782332295311148091917540841505282107471816595516150693658640305819224135578058377656109458836130657439884253794143306026311303542918602190218128611296436797998209450342098159719346892408906750968193764486187867639030613475078604660520886122592390449768749930174099950331620511428500696679038515554733074949357158462904955810973027964943241486267062063012511204898042848762354731170073462431019492971078139802057267481846172534602585208303820282745291155311699435035084306592853277174934289916830590818551314070509581654279517789095216767395433372677971017797949990151641097656362502769310794240241524997236794831194908683856570836950395759680059264503111247589561196052790066642444509325855671599715799856396392561440421114895108887076292872137740359410138252862855224081770822870176866439020548461333509777176958646826445838895912356774082789262466505609356104305084165928949722411590920917991846068839482054484190942717891445745404508293298118303470700018518509304727663149796125062922479469009821059621399027768273123537414449115725905584155453590671492990725785267340048486263880914075436728808169917410928615879872990256976376691706351319416142103183907666979021022528694430859002569120603268179686606511366365839830459576876260556979931352873353916486172929319789178273038508463912366684300670948622292942361798635539472239892434532318983791069555806820138441051161598276021502812299830346007969899035226146927786113047900822010262969464046451545619975699276900198046073628446191300969209311500315308188937104608443441099047941619647880543958624688429093430215919471661306897090498718545289009097682293879866345629329627539307884715294894039804538952028495418059228375610982121967649428723582670566862571313649364901311477538989359625310880606524050440884462737665808075746380015182922139297659024094593143379184721072901901326032256454248049695589451049549351773325458786533936196977715979378790162495153485176003832044544380016249382191677626509530737888549708914325206856790277234397098058010805398894860265016453550009527395193505961245057808817492143980837709376643262460170806309578100640358695455409449872584135736432726801280310412133198649546733870314114128308743737321093419383687662596500491514559118652563092844233624444702026700862902146923398377201111965850037128461925434435122456110562427255989042928116326535019374357869896053708642157493254515742239843317069589687198520434373237765046959143347287636100992836869482292026723082630355700848546100043403221975475684738076111277292814721960233214647808844568173732927723874151777336981549614971957106073870341261495230384458655649931293300593359953154145111090100065928688088920663345929562305826035361201939872948686136564431364728330550274782000848356219499366181071148514647946738824979085265689645219657505645010573712237550169707908975523274428937939446713566867645785804165954928876272103271120508221606970479496216817454850183345501585617873538884536920138798441310988066637157137175693480732680406728343118475076861333528237968831877412932315312574971127523036613108626116970891326876859778038607209902930673854547448067517264368783281012104422352326987177463073527884716685382163378702736569251814386820822413810842870411633106340065879843518379839929354748624282411156462802932229030674548843208125623301369848262731184137864411574071369638477983050222805596501200917352314496843384609817146762625723185629491366288848472075161006567662640981578534660065060347805685360040749310372720880067340668356967564437083681962842408066912985794280625874588615461009843956629710892869978058325198148145327380100838159551333897675189473203784064529540789464451757917820793579792075283540698204741020459037090022799255788286012327167939354758745816353961261692398719064082462532502264178985488033616652700388851477104766559828192384309966575108877279902920574000177332835552008668446318769282697698675625936790449680497319443943404525342080986997138512753114163246830441889337813696417313949720751117423848295729998461822577691488660774327444898184750467917106748271791538285405837375707636862191683611223324966026521821154597585310946621710831144164087190417061230965769970969096419582997331961990248719333585076190502030428623622842952166355515144396357567963685692812284073642782057785253398799439003677010592747119310323968719944422881922854195920053273093533011657946211326032428924645317298378035501401347739923779144645692518240200666466100905433085692951287205863343311626118212098972754626357712590379940300084675668664327659918069289339876877210298532626198877324093754178593222903970555820924390300027355028686565474884808249444958489954982846967756605388909918212608610495331576082123259415714801906611679734771657324068867643795717492070142937631089336922418167394178889340656099747643964607502005199490903323177186022281239694173987844921960668096729141885267706719192350535925107218891214379952368972309664173209553848263131546036720032722524148137143822347069229103870386819184463276597750282070263187041712096133486564296422707535545497844736289399652003936724652691975481853152731942349018171968490558067980438329551143265336892560650349624965710468561992185654128682674634184663306969097516971483719556356671661639350755524860401837538898624982704225249577825692837856357868479413278678781893420309004683749446147274578756334556479461959449989402754160350377241313894317685472127301401016226547691177173224147646823840806505335194881811349898746538059065395710055153973964133673748834328902223968187992069930704997326077915609962292461198738120300768877298584603909648534387098410124556706600973310604340079155837246532559727115905479248032199193032699343055461904744211880074428780492668771909172703253270546522443535175705504753104002086215483851100205391516964857407771573515088162447490292222256466706130677527332009550806657205181071398366504341967498279877961403179877330079417712735637578162645068835200180652190938225631333271503762135509643129405815048091811189560996707110807141270182209271637514617984104613806851231295843518114588077792283189278585721008891190705020311656524579508047392990356252724435029054709339603873731583070651688417316395604686620995149484112169773976491454169815936399666181224817885094101479357360282241200884817093092924205264773252018518888263705434490032181375448320939165384736343263993516711799755589318324196525308359548573043652403798603497936498406266570800676806543429383480550831694346686069304226385141313250081221490694827850796001838236606552483197417002250914411709842626978611157480828802431193911064031243295702146448095331749473334233221718824259559303573128463887622050490995871508448130234672964499205246633447900883777794936323985563168608194689604581639872871539428315105698938234850704280118126155049960093212498244728002882214896030777691683769690410064966777604862610136545204722851766597743498591937933520564114522892757405872179453490557201078478648135977148402096271453990267779372472585324032625350513771150117965713656980132357630106762271232577227963337173746873108875197610777375756025177072739983407396984081593808041779035005167598032448197238293440476542100319762973435267433810047689961474930150127676710024233355622005155571330080175164855400762885937311544024783823461327698742665390988911303712499207157832768781068200062627984190446445932260171611512064198723720910781590073225995692674534967585944703763299294267504036976686958862275982340456483620553568678737556496932014391926958186592944747870970108080558594859665466767364959329681482845211746510248612517334215302615113317681187678800891911290886357621754377466079625199414709707969405217086643041712109793336244948845781380007533764259451836866419329872686137851372566253080166693516094161459655971011200254440181139575375744170881037802000482418139802793667248552795214551524636606779160218575903336770589104801948485756156146932006453453806866932476233331959000279323204946339037615311576083604623739606891610053971143920632781013514281957659532479394312567002861639588136436112654017791947549052483097403504712186407635162329376500366009530872326265695917510788838582146833305356845966810227401780848619569235107782827184668565472499677793483882685932262065030456732540368589763931758372473668610563114175433145405526872651990122354529926963583303357366726194443407241336608950623032787744713695096148256268771037126373607448955232423744596873195850717413079140015757270326636040889733980126214615950011445025632192414901578717819538864801978975953299416192078380071949192842240181542302178231736829275882597355258857654582730519555298899071385532538963688717303577186302488135266562618847811844172242558244504156314553829707112919989464221290152666763711263818797836073787430109758325445423542374482545066355381495489803108781969983920052463042283526140867600583142472304764324853068787254165418283107257356376259401313015996869629806920111174435832839797516954784219447050129512310815492927398620190621578066904066140091100684178804638781764015361661403970322961940186155717768585570795525317118107013930665765335655398503745003290501860912165268962298499955143551252821807885789947781742112766680452778258174496560712517480873234850109243607748718293844003982511664838984900966622691885811748492512520200081492095767913514985576055219987358949844178187422500323139436279318945097584889534388014347413408256710010622181696647056028081793955772562290662046252572935053112814669985740277069165263309154815442470242172061226443568125840221059666236482343701898338169692754972598731020743387320486975243991054831279192631590974151930999737692614815503906623069090567431636270152932439956549308665827766975538426305085353691270476072292708166587455908438873369120390842973203609696955360889036188789955314351437810253054464483470577824344436528015384545219303705735862308025828698119213662505865366301168465819549570062461268013480266857910476450090689598997089668021120992875591703498373214848098563997894699945483435966623965972657874998258298171539711705940417396678330485148668122266561299220342511629076230054997712718013661645507341781186839934352616919825083643293068124219698578232271925216778124387083218654588077011594854182305845004451099617143000716152003304648009118518355312452510497716428487298659382795016682820865708297177359754530956602560196639024882145979123181264936866364446248062314363939796796520040783607130961391350047723164090820282568886775196601577750901929222991311446551974151787049093940402257268560258852839681360132240435823594940418734843463478274717501475333309079245856347932950651878630320156665230575380895553815415163686609457529143405676728062023657495459200149470370997723544254244913544331730153407276349096571736956929890079706595652392506805243689515320756138053544283358669065903753258327058852652029369024237695220170775369514847066290729863943011286296754019674291882869322414076541973506273428104220357864421611965311155511516846864749089333433035241346629554744314504387381126101877606403640069571821573309907341625728790785989520010709024968775143457894848865427544322069405805798964073906925186617068161360864582947675888217451796472733206015936434897616456619908838513750269788709597896665065430126560247016041546782034288031739542844761213002048447599534416111733638064303727021150005181082366914590009698707551519156238639224211020155389333870998626462878586894614365890946623115041911956672886854182678984750633020771258343555554329180877665119307137498135430319732234732387066424208297463751844202856571668138537790522191991836235711002276818168081451379605759512551974431421868735478945125167122142522027251981208578401361367385649421792714922739318648101946341017198730895750764561366509784292099181283350038135373447735588743268797411889762809653486943443425025897769420149028110833195515840187342929523667718950249749863043294729662864118435545637023630792811357510092927304805446689765339532154891465964340905455650154300068081970348642069771314166632634826340245571807901701654093937742595505662890221886901259364825190010366794667978430769230910149285649563623180827356546666515554716546280579567065914008009269264670392017371344125179628028815499488265469381009822460737947030619207633935672238842478027834215359221402912640667248087158819282324734091213654559169113373696875355492986319005849892789297743325843443194536531297083241965569065411385180750290819526349183885870287214441335100799013795989951203211193653555010675503797137305766072639069630254796576203693899229265188986933953482783597964009099702604168958356612396121722588646397073680529410457656003982018979748333829458728581813127067282610925114785259358437034864989653959144530980243643917040251239738456785703089291197495095186478537942680275681694849576151557593443788949803815857199676998828034985033630907345236673560297371118599678541780320989001659062707671266311470261784636940042442734492373513998241053818849947956659930494208888464325997731754889738138475378451904881839314980138253529449368514044549707450575692126377969154669649315607022662032094386252399643964448578105841199086028529510990719517092345545756668144794241323609241945293262592451484997446375891229149803092526409641202043947710628810577992865494531409025799070207415986197340911023366116510327484226263667982185024848682583923740823308082740353393614828351287165741341754531170303840315552308617385074850676725439407755633816069675323007374661543424746492604249010997389636225301930090990903193779212171786050526902516826535540912068971820464882272295496677264098204247072857682902973205513201466487345928615058957612557828243026523646234055389444744638411961722946033764034474856005151084804317872008791880682862451556233394078423653933713354609878543729676208806450798638096768279216015693141327937892241563461431724360879229219650839915610545948555816017593789421297243946954451825788054475492971435945436255970484411922698093820301645761353340222314727801070683002021342036610910908687649599562734290835673451455463855343743864674084135683334236943173695617266630017103626085463345554062801539039202347364865657709147751993183778620077735465050932347812337378010160054176293918832150861880188641413712773217661615595335764863651421140702954920150956630027121654229050435535260489700330096938588783578901770717349264941798779658164512194700418794421459194031230857493212579012205085795650561933823388307424419150379651242791506608840883091579182495472591759320497258881314627709372818486475675320573434823153704113481422893565108768521471106968739018378677587424775872666018387150741929414051730191818746785001283054383976349973553600457721825151657018761332535294584887302201085635870509332000370926100192149665735321463686966655511477526796172381168241547961610153286367973314267977576664774269700336533569519429074146720859324254136495243490954470640913318839520908795602435636206010351820589873884796705073958799387767661631257949091402952657373644552006346444206813185665407135647609769422133070210297597293728949560204715112920037889061137894505169667060397640684682823507549672810422274925799242548519224268981330053483667827394043989129068111904330879350058782890616647522431923669260612461734811197378176088485678910635745173463105504484749359734472103398094217295976740903665928833142964474106839163819296243135676257056512754747175819206913163615608678066689372945750872595559065401613376766397857750666504737586914946740561753639943881189432810087884126598629524853276131112739107243919308094407557173932155479213167324740277406590538702847482806597556258478171319194497930859297958808727909742358748061855959974973124127594764736071542230042819864239465021943887679170874835385086158969419100371527084892814025571626630760779343734541810280780253394764301003071255730873597091831562751093154386371825773397762997746863721673872944724533526997919103558486003141899146993442186798220754064744556251621074227006498537520399240348471814577343551275502757160284059686587497888815811250033197276052943788474403489439219503078798557352949703900837259871619248580174173449135009389438014600569258547719049382734604796221656995707703597962222626913084108944240842323277181106075803515985570601193437711998229102081466781339741785324312229917702320296404263397926338722188482575027878924317842479006511729563604124136776075576909518601860857743923490545317229719669382219624745532289750150484054630836894855104575006796784915888298881180989705865536184742996994522207557994182873082276808211979227731526421463221168161350115477938162754850453524878556812284544393428072010110822718685767740666182596822945702394412320271423919836594173543672988934344579586682134549840506347619795280663201324489941285676566498815543619608234029483498828201067012730756595029385317632517736237622558328632010562981278135253503020969316117244461637598814645749612275433244117901357393949479735268695597032507330629573545466091350537210982373344203740576876038432975199851645613738963389228474934634732255205480113051203633499982314784967206121289374886860763343648095947837099591418815565400409149784834870936057699361088671754414850363872448250357335451043875521663913593705879573376061835065185273474959417173968552266801792262395029329213486057292715689471707866654618023792912632692719220946913787734617224599575193771919307590043115296663405318531339102493740066078740828418598884006650772329936833162660428482008487488329200589763574499375914017373475142391955443496748010954153058128758899482075068710174066484473017538558439903151259073220837240765276167122372670500443386963879001208230713638005112369824094659540760355147231779634638826790300568863861473367442084837175518172101018284229989887717936232370566134697171223382491903498935941317347725021330372904843312971924400389498369397679381483288846812154921908625097509357933058034106859876764813983644581063569364209535465611727583677993065325785056143330813175227421342401312028850081308970553987730846766750161503928591725837638152012090311112017373992257628424789248758765123907965413358976936205124043816334577326481887928649688032440332435229156248608246814948275811537391237431959220763934711594372523001189454668993651117266847086841603225113674358581344215760356398113108867411586314005616118586981878867274833817531014615975655073821481826720899480009413636563648083415953437281596792361626430671790698472282536406556481210076415914736539225817987918070174862291855776226955498297525807558858501613300445308993518184044182139231215079832534285521617545538005451149264934160145328427487431727897722437066713319158964224547476597905428829157642078993292752083292629981137461901279870946452066699100732281931392552363022457945911330594920051047330765301145690817322564404173829546918993241357698740608119322282612432947357039136429454760226194136625039994023507380751319895309242970968546490607686554379971480043370236950602104945232175632561421790772690212969425436630534142577015723568979397188080903116373458015319439261649475477251340906615008195049344486369706091027619564022451214913122694743785151580212573874750565179678039100133835746512583539704298123521411053213185860434021516459556670365035685481288515120327641593904005765150769195003142921721307420353956584477884639518757594548880214768698193001824347706915495832529743835562684765744661488291501068136198178176063405228801454442806104108841420457756200264034933387086576449523468822820980828951730310402889839826568797614005960424131711667265989656287923604074407589061785713396554076655455874081069997899010213788031058950408761417120793626550821529474595912435580634362876977310725935237436324269357200089646309171497574624966782560148662927567573355632707162792029769706159271539366316700775202974750881830297410737226482675074717915071779616166703115075691269284095496185820904150974692448608937954325983514554444910043121259725618482866450772728682561998928840281491212014597425422199601038419752241301964691168554810784028003662214656240264501359620991641620313914884843664369846912206179358101194791929602562904836749626996602321786177027388048751382609800379829951164789722530185845469242121503917949005716460249241651371504063537884935268615898702213361342027885745512333590069469870297594380833707503566681849697234236320662435612807981690636587281155944010199647757136029531210315001309956822192095187454443696905066387929799053021155760985626196405159286341677081784931518709712190648794525000054110330355333327996139759923827496868343600680915625314040730182043887661957288096053089166262356271238133538999286171297448093797983202533986109110012193743402663881613060236466899240704364138353625025837218456231218535909932475604183233525734606130736648706935244341662683460426630519446274241526436603818163585298701753766458950576563929748780229944714729967851717022344522056517146114587255953465270158387103671662979751172689631875687297542612171234647375229794640995402181965090855568191729603053717400370376643699311750067250306616942618886015828581675861522947229563780360676335569735193330289560882985000518892979250237708917077291711737604573487440162783378942137823692583065010544691930669877940185584154544552733683508910906146330634724093851502874797888370118540396340981270290458371605286140039623360632693554694561049454843238691451324558528287313542321217871187185086538615273691108064671149868353529996470185386929386313390834828219727137068545241935482863162807515256848819433015343937058241306391261108305154491028219130152469724433984042871154295566710335893535971424473786674680386608452607924713403463265936868592710094110962172090421134619545685265026110544841603872426082786336486854504008973083715201783123554055769106190321505729901072880573985621910741970149076261058995018811012156590161809842820665480165812018762039182878732883855398017200224734004444147338679406434942949318201185818044868812758670243122264884245430950187856632122049130839800303004651213493421801708987884787036394229593729888638726342163926646858622845124171538689821782561000641845102475227451090696752619566652403837349884102481399627252172728742405320677809976428673612250965801300192063827744719113991307218132319517591157907655589494788414730040259712565609342275000170499666022048880733865211877249448400965028333674080460167240948568091337345773144680461713649671374341956779390798471849796143254869161061854141127911415122948859693644190905060771287170262866985594108567382675647919901077046496016367363820188206321765197161191090898729536448828099597625092131500021910208148044328674461066275498040627109248079186571945333560388178197911397071392898823866326122857519191915017589354762590477794436431038900475806168800199938666004917164920259282959188858114679652851465849878860249803888136456368082460497344018323028925916043903158085297691199960260102892529065446054674937887995753866124607104624033874908862543981091099395289468975599127636652250600131498776840344449131892533653525200590184970829641777496971825085436353086304614778430578875227865398463076957704884389794430291869676173794675728782882689070438139631909999830279707831253173886188261295110429754023315074532481198290778528451253516121406875031750470389385218782008913758229820290506807579662511638094912589536935314893240309998158709010074555771399673544195811592600590693970953574338015631654646242921206730269627809808882547411133792984547530198318002448220835223164741584817107948493463610261724612601946580376551282223708199965386960640352724929011915183906429786540291980889404889662543422017196539460178987838242395217763109576988564264043528738936044973592321219636821785971405851780045241074070130064597048956844551997695357024035827689216427749997230808811784811582588199650798156045034733878332825000915332559544377273651009512145553251141964284078228006739040056726078155351097544452444844052164615672224809821860663725467930140019843022206289355704683398626087918677785714493292583180889446977164535245905912480922837038132327498085995663355969211447895028413531074761527312877491019528775292524953329177575077420306151537886709874921361598439957606869212319796801533722556900679612306350864443312057656348042949042820446392972628953196576148417603298006298518468433808956615355770555589630291775570515609986623814023932078368543830735203597681639381496261136860028030074261449005788513666701344873936040627992526557895792831989360219311536355356082930096704156082576197672226257185442551583396609985551663451283778451865948925857451489979941661353224742825277048951586543921557436566185468407086625820690969040495557506792810448538314693824218243558042301461472251653985143852212878681046131973713084347454116923448853676456910341347102357782556304264827723229751549648068259249242410572697106806628164850689260064131413030596465359094521438821544047694435714667057441202592657874269620214874070331895170163519355452070121735302183392956657594716238192493151927883363290134277276975109854954864870309296708513361632360811326149537541460362429898388532710320076469080567966881806597500581237701317290310826245064188646840123931830494202109284470227554898491017126299612053899006152755403964501755853009082116917054548967154948419092094776348294015235195763912483815337034887417820524127364019595089998299902956581445410575150017224740758583914654830567914703920092957750431713689405311558754673645815990280545768381725784791006917931669157312494516984109816538145745666364743247635337607663155164457724083466529295233141410781176493373143355226197220038352273750038346320354711492958792214998070796585046080741872557910818490915547515137881398203999017720838963104235972143049017479260063641295969209633144216506188403924950451476793246135212824272020217621559957776488307947964421910035426043293351900613830255774995710653102675466661527282030243051579274056922503536446893102957670786681126152648418705954225076738332702146660787435398166182211121608031658795307222507589879782098450512934480101506905782102262271714096552451416258221143182572488556956423446045334360944707539447821877470478532176221933125858054842567471044631967253980268506589738111695878669391132436219499294203028100803395970577761582831335802906951593956585516878936179545812974333816332203389188809865252250499980084136270646436004939034142307816467431454270770375810137181357393607915221323923463826752409220803517746391617443164331498127603746528258399374614941151821387004803977257952110586429794929604565271832154602349407917731136719676438162809329095064493287891668954728919322218683574251789956609735189193699669176402627662115632916425800214859802595342072141276599487367436325261706266241934123268140160026965974745101377923320426741909377065637221949529302727025367658987630904676508488848656378340054508862567708061366911900002670704364440651963436223684128030040370569444714051657672499899151026499387199606162468338409112274417247220362662711449362236001763634023347285080140584034790097343502596768396334152548905071506852569690469848680249189111476050921870172709327973106398172440805681747015190960325329066103002498287671182304721007926178575105641902566778453668409369988762713853546981646996330029010747878354760595847111789304759095203548875826027237990888208758871295993911577680558126479703193363343673402407573332669609941391157792645978900550564103624316705009328607992770304903496584518818575607245194264824548546222050463046774143705534825133654693670744190784712253552105382271694533281724058384813448913959335924323809065779574179002308093083274820084573475139454093393552546490547500324572645652451414591235356259539109346957063578243800607639964680422478414705192268278303693745994775713683392758750408812929841309630082594810752177196781683715585741304975801546437562200896062900224357178892315311041178492161527957438007079883746081387293885331255267072285518055844208741460520126957009656573287172508360657051047588277899288798854744823273632594823381300037746727104826120918605166549093179906970722346973973165606865652035997564909554295181231887115468244133916646647814038585227453451963867649192425996968091133038748191353281182707449770624602222421583912067296986102219119687787025449004543389770799803578725394245285411474227337408733498508560001282571242625170859009390635302702481696203747528140966227443654402659028035949699071491066275473921037548475643833116778602526652563333803919589018608889160919743559612986561771014882164750427134784137098566993997505617696647828493385613075788485858849302507880018579034798884905021864714949859535530942964287924351699811514885151002825403945757301787109106791516873831186233990891557976783599767290599040077838731429729133028746012800600022536164692443126471682536586598897305725142847780630524971881801612225121738620538505204940089240713701482081355432871786061113479006778350173869544372174650928443982590324315804824510218739402616379659000932435525384551930650297931838854650231847862287811478113197757686837841050189816459803838377093320252303477248851721812042752320505772945624369254543112660447034564542013489200956280376373210233026566506423765510743694632879059160930044173479874855452876615584589256056641613094056412409576422646399120691928908117160955720975494796808942355562995298084427533899417136696198942245820801783490873502293341559528629587370892796965942028367702246703688509713131288563769219493591167667202803839722850031634066284036488771948055633291791797292932309783974553872880456392031467141508805702418668472430871350111693643364691826514701576246736726932155821120694231726556476225220073685661465019991552978949612290784602023954141052796799832185966185081645014888556726209588735010736789943538142159197772980730425698854261120250555176940826427938863595859137316826369472988634104515686007290130013211169662658784904689236894694807608880135727237230630409325052882135724783429153514259758024303109370432566901591944433788470114953489478556311351759411335188529720229101059579418028085605437951388580078286619235660848631531707982386034037027802638042066757736327533940123299976904074663024334746662358761063624394108215618075899822708853351257987807747215963786463871953535476012760840565599404031310190127397108659132740047552695080955618424423574469160322932751815640673416543988214076275535555689983810607707941558803902458259306843512993480369595622722913941788958620463623422191156381058775587875910838531975854896310841067056887771556081379115772949135197037435846821332614459442848014628643592913179417774267312784130402972560323333702092726768069637930618860531254781428233009514594007855593861726104239556677961861367071998049034947977443289536847571840233769222144090348024909812690451002596234603589804358618884962675282655396880725525367260561682960354836203564553795364913091918899102751160622973497742245780028026716508001143819240762407188536697339315836101142338374744965142545760941932089304340568705764314291254515087671376955767660996557227972435414817107786858503500574884858789460161780280743768746061124031992692473953072833121164055574095647602472064479461946393651287520482238137619399981281052675087029049432301964949287971500294880092613507092200124783527977548024782751883248005369973585819288887886567978401505877907781542935148920797281683921812071320226724464215418920101634681709921018838673477770251473000645007684100690851315988730265027292997361958357431260777192424892113604244105665724629378014117449623138973423607875203426587152690100028594510872292633657335868413501691493519204165777769846249778142225266725158539344872262308338242617346499659834624509052964335199659548601969310022681038672917437269784088119109318677116810922156380247385235478874445727519173178443968209333922613601820161623147026687948464184878862496213888779929086881991151836870557783628838902938673022817963145625789621122988997997346381837651510644101407205639257416370506761286187994364632652771651939501786878221665017254459676039367557482231509314886046471033641267936146596979857360747472531465476363783058631425186317699053170872701891422425006905715350791057102717636284995454230608742311026981059315083203166572963083262027051750860232802625216010269488693756200644758264071773455024376726976417661215740662875931717080407740900981708082472188993604567027405126492114894645189981715472966425726026348724322233585426960430970636240095744236852149065940408352882190104523277106204452255068287037492389027748251609890622760426337201992383031471217836992171972162086551678018540543390374265145262482129381017023045315281972746545384107707628403536338213134839947334907172547413353077200871078710872202240952240305506622640917459561185800867677702858186635614769519592009290380835006542070184599761748611696563389593401680655975542241788702603276625693124059018425533827362391186359312947460624631686896757512895258395043302560794519167380575103991940684573381559321500852112130092953231629439333918932218042690965392849018216873606949271039410117646754646011017812750998616370965593892706469500194908366044475013897402163449004368275114277079237097065574879077533744623503594232422621678935175623846707542004461210088933177334386678792407483273246306946208025368348474124920059528551147645264938572899882507160243946123924881945818957098250416061166126816658553639738654262624051631181620016691485257035258682277294541457021805320236627240290530626384052317747195832181483089624903886488733450330671461420317926787384179209452528359943456104357005365608160986564951762352178094533779211133029479494468392749964108302098969162525700018000829955702362588763010198840205462800630905005164828259230914903895831546092260632622932201738530041635060684991739986765975760247675295122448099187408831759589867876198886259256219187069993909588295778250950258872822818447731106349079979665554291759543153506052500010369711313725187716536431096568058067899599273601572571344365203809302717987300087629088328863556864706477494026870016978233617211909055074574643507362979324848799965061016154954461790918858055154305886424098803927924014579781835592088054932599248185799427725213528689690988568988319919396993613974379090862958853688730486383806615297509805745175362139785382195539792556262827431055299441722075431643821399034080374349637264789685334050558501090250046553469387359436767356066470036655792844829447098588268747965415264261924364243703641835844671881833072308553716821179421638053946285844471237778428731523895336839615029562017767429906903052577194700138236000289486838067336709185631773366810022903139539201804804815275948142282686691581228948435548008734338962009819441349177609193753013175807181255256092605197888030001130868006354133511821273867511290022473965645556673202262781601029759089341436012576108399703236006748158395339426325894052942077317187671521781978886090300480837634041718561630134969097174896385233441363912032491531714205690615559806836464213126883063313776967211933031169700306037937401518776408406425225981496494477539883274801653801442981774764095753204723451381287876456797059468911243043572090160488133907165148600610781654153994189759920773095212754963989786581562188513343703698111036148434511501996024506966930273188480950838091325102695561566715385461024749143667958954446699174999608600563287253918062583501431746824069078317329379410168159351208675043414113274772258450810436183525931210265099595063464992070417133172702803459045193532065019627295718621472483891573721512519286837746778756542014503898618256573574644300247045243543143367314106608724021204058582500836658065656372979022437922510863964158560477776058159707054640966442575754449973012246556015342930090195360786288750993039246486111705427580107842153662542966728351454327163153940943941342482435280708036215348745218185556968134556520693361328891341845077894434525462355393828654969752033767130066645882800491164420155146338794308297569479456450642512908634878424102600597155004864505636796096245775679807712668583930150954544817693383823522224435300890417267959113679800209601378475777893120252435177222848429940633915253760102201401743152043269082265590163170817950741204132430302235352744668644391932684919057886370025891681149835803120263267050685066185319934728310774928126913198673912301950807601904239271463887795653904691441030980170239308558375231708050988364876122361814206377088469278183720115889995901375133097098777610857703086058618810535666790275402327242133420917505792811947480572092094044467053694444253818857859578195214013647070365817717498917926711516078119945547422900518723374466173733357932350198164237672423697030539256158034735574041321859817998052843143491462144324896566528839573514845372986312232952773758511522154856653134626666335718411004918696486109909659441635184480933786477310529394383861571205708447699404973825614691856898547126663185639925538471328380169136381811901846702548174757228711659805130826051227264550141520793944594378338779344276008859574370506521480662737895382546934424830284290800039543944983609141063068023674273303806727083629114296776204247234939032787913781403902136650244711458133137861136770383026172146574115543757786173605145402458600589185401340592911701908865813547384132490225425224503407974920403077799526459273557470857926863268183974863877864020675386045513497671602344268868770635621943451554591001989200294478944660596013573813952135116095740536704016406649693030331517666381032528345332763829438791365307005413316699774279922693789743657919177742592080405962162974338843038660165134588892172046038904313006001691243664835384870424335565582266962724522080826967466098666345275388371954381631209098611513250558056280825110401160782806492389760475046223816820249327730411720559345669517240386283467576886321693599115060771490772305277826730740340518508665342831488690250139528989478249909844200909838745028425657319728532230269977442660307693229142818330678603248464879055755818545848198894699326691649390771213276149275558951264574106044098954924870843795879191434656411694322693238499351301409366438024632971238142961762056917410496450887725828851973293288237739066996932585786135021085874120823264517688948395758822451659301572028985555754720824613468798397479798462051538703819142767885103364381475351808230235772222041589659411504341846375332809833821196894669198050579358700642596006388145044330811569766494285683388201218283315725483691787269047616720465314335346721880556925964064176203761133933114029404251207260481277312205142518125552544232992241652789246867086334180168087511568779926617979999422329765644105156948264849868334252228755524305579415303695935216053816107733232978570953362083788130923809539677727223172464094169485422728400274802234006755326815053542478054867977831872244200809466496376899504721505684018630028117410570555512883583796683135338850578148659753017480902426292843692599795350214404542052622230778465565771099154361380477355301982625627845386890441587672470772357640253860746483745005806031266430617583327743044539452830341242705674133162444514196932554616719781286299162809487292914506559576142883552024686873483569708049363742900205424485886229840669853136778801995406483130093483174879233764444676109243662862012142758062634582691664807391026032565952623336595455663030256124589382760109837607524363782641474286826732373633465538793099120091938575102516935134114455466975236272029031152867689176170272163346564652098572909909307787039565812629900237742308523617215068751241783001789361413345873468345208302966878375492373887576518126118299524866200978599068663034611262843505925549811442046116278311072539037379052758082302378161031278364129908875461575165656066013891614482060545764554080889391158769689502282633898650124245434155958579924951594331077550075467358349677921855876886564348166088998730213433411859567621392749728295154715867590953209930735638531675375714217657345850924604990644460998652029797970285154371726612700502317415794114140061897959968784423385513173801838866883503995115189453867427021996958249562258408062721029134851719780999714271478867362447603388079903694236009402849075418177420871125606905769066152371877195180189825062187429344881450409491234180411941622581500756446838865051883967900899654678317697047657161922427583539111737874750628184764025440623113098278133730946446628957450569311501501567342317002826607614642287672170035605922907949825101176054063829305006841014358201789808767195418715531163083972212950693373450085140856006620196771110007692024796118832634124730548803848893195619443921497026639645586417792481726168187975873405862903602911069572826781982945348511291879497311749867634654062902524892470437425481797896514408676898117192997790031280851645202465139289133052261251581365507475712858610308672142816732577047426083916261346289161600246717268151451928847698390331631400825036878820725411185347533342554358988639524118093418652961367623449547798252116127113939733204377358568387279955831212294188354935317831713104267918117017661359964141601454680129482659790526092196007717238766019850644732869703639891013370192079722642076163074459605231693697477208822075588642701805222699698831232137653515107168998288323498286493990774872632477886105480977719766999491476808184160091149760821951325372957865227075271183871515434893362526969259514320568548141187365957802661617027896433630697809245624749043648813034805957024993168889374411334929851750718753169188142804062968295829474620162475408145970490611229152454948300947022281938293028796669921444561124544745899619527561915881569145108555163701021599225324725400229481053357192876112898742874502138485843225696560197153147316338599965171685563058453293476607296095903086711928282772926646302814072700754569454434536382262338941622864602328300287219017863468920364133324830450721330827458678030106349109770851458874653955077387410179492750545522579666943535451409887179138392590574944665748530168757811097007350372360339118182597827888022195332194033828027218868898362367807767740662063203804598219404507675153255789545031909488603962403580156053539141889733377637384036590192844610342538646609553077753186312539383192378926463272948648421321964816267155121491159323984364872199032950677878394705379876743004306043402266776071766762134143693211780213719359427755040809384045879562164589666847137150037227198843246262677372386554178131453137813106497964969069644545165531441245649206298141815363202917523892874609863755597360013277908630370715639301250658906741407392702044265189070223971673659243648502960330452170668340083472433484493955300428787957955559735106199827149122312409012808827041489584026090740333956977829973907861360712503854382978626289010454105654931131301813294248650791927300332941669028095632815195384114018332985728151720730892193151791038684030657642720119699779310390508133712589365905043305969093763216453519004735938429117895955094727244859856730250777297480168222505222551973721001051495985344514291349345661789769226654025229187222349099784190712191541128058549118085366038552108383388615227650671443904256678973410775190594101300154026641033271447042578850391482251865394122728005394147016236730406659829119146335808018530543062888217723994257618130083662545631568599306492491544841036464912789898836293830882249140739307780129735978965131456538735271472454778856481791123494582138927370708197468693613488153566267251214402446574389877599599423108858758556920142723786856409293553241589549375551819812735422026014805085258334767645104709162230336073260657703592822527510213733405373526771309042505577016068325428850769822435716849331167733969503764597834614133668686530905514053048083862636680600446652128479413905556080487888005366614428821898388846362264868649813720561610503833751589406744532023423391045923395495749273187687213898363894325794499734116964243284703118524989215375956252104054288787967383482416845691024781319364107240782074545536965823331818943309912291210164088576541322034164529666560138061239771383147466782578747865788310371309106877177217574901092105402907716504164816407623916110302094175786378533561507570057727371748857114015835374213349709934251317178213560790679111349318447451586007697483025236871560114590950882374485217889999050518137223031297315659137031470229933195449668816272381893603643221638415754383271954251767795662195046417184316627436058923247339414989458318727278726303895199416095554179223140912279570939591428912352374720064826524572562387487194133413085578057957732936380918069709911672670348603850438152437454256277376990392204451586714230904384287408001499064752243025401984122942110811810479860446325161579329814108075353984491470045105508931164641520307940441584996669571368021165027627109776207032219049002683057260536156456587380436971000957700160465907725161534130347780518155961691229794745331469012476359348409559838860908331037500764713022028390727880253877392007191477544309324226769445166582832994183316369026853173134890859567039579651893464752316579469727096461189605240954452372631754014065312697759260174232221958696770455436337458893413377025644668449689383223794014140137835318558606382871940028400863792047479169475967339064901619911231936919446581379810564294499861877966019988042813804954497768679357213464664308655548182053374921822749537594199095711777309502961403761760090695864736615282939786757389076478778204936002159049398801780642369572820169995832232331047441583963075465635139615507400452250666775289276936104779412631552704543246009280896288780111352125219362404072712605843653350303244089476932779900571965352246490390588232132386575047743647369811285181757666318695090005422084036511055742930386683637687052104415695774740537904194370429376595684897347822950661698933502632754909596357666452045882093549820994294483726789960597186551941364961404511457200785514388349728086572802607485673558988447059885521967534857570245412065897248710098195292085937736834825004410025827715258911697984659134754151102219249099438289800017184557265516825233857241248568181527318451864925174282311302541313318545709621348987610181562545355015177977783980265965198690448333171671989271791016790255295101749347400498435119089465539655759632264689191529103770640488231359885213590976328241112608572247497128443425011632955732359001343018298654836343674372370536863186326387927762639409315718139747667935949299909718752651817220900578310578454567117930745091199876533311581873051193022756938214696020239447198307377365331953610114000843058170665727199190743799936551718975863405995396614739612663128202127817461612687509167477687978855493280857103629307797107788443389958788010889818586375821666510991997008022197352425880244417340797563382763489318905206119305502850822524099949510353173381326196087242404330016483381349159868390132493587681347559145384665534788183227789302360817444279765208729584856608931499253769272908717377722087128476770559669405155640631859704708590396769834485359670200854091422409613819246865153273296330903957659707888591508511430889612632438356914283376690005583701108740244147979128117065573936528884334024725763909640884983699587756524516763527557727196450007744169105964711596187717715516614426129378339980688480097907521973802903477084318474994655538279735795835762664811873423027009508572722267088137428119130639610619401440430589102586325565271429922317318806675407878500509845474350939119161789634897804448119207919717983141193425848320754107408151740186847520754493220563486442544084472592265669655557706847462059174971576741383693164775174178474474016922477806252927697467436454000434411879734325407322458510324503717870141815438549514316749382668686145227423353467392944894113444740538305863738637760338864617883656089722748522109953328026465884084752733404483262499822392097456018567004665302268426820564383703300929855303712580508669809374413167514409891566584342656153819995326381353132987150695146746743712869538012948020699933507525322786802582379862249003483403618619601771429492052317106741710768819321788419647701501169047067606808636684036221200139052287221370729442741589440947082804764004295947619097744395437278906888884087858906597121083724699944139083279386390249594225050935561849754742814270974660977461092539999000027866678650342023205261879859109723651775989842316162535575566301815790404414687791758396048474494526341760031965299561425927727545686530612874666483507702595882275435571147591373047440519911627049624121900549178589078561864894694422825864072716818433099050621129033943181181002572872384770709113994356823768733693158293265537095042956943631683076311230746436072398499148768669771804265889772757725884730814710783464415210732132960029813568590154908088153098494860425088976774050192472012037592440062264713870499237767191914704420393471399796361959829997191735775246496130232919384683236739393988363275351239645451697797865421773538181387506848791338947290868736632276623521642499612662034237228400951830800432446528999247469912266100683587369443978269271265309603048367411866852876284476126306602620477929646159426661475179931506966831642851956690928292804014342904893011641276018606110852311730686642862563215072004022555383536025726538729309571868031141313099672054639119021128425140165504383628933941629206917117879001906117269644324756270387049466390384218504495416894598515059929215244660591739311086407762316944433735399048397358862973251007257830611139343692572573208959094301173312703510656370984004866079519687657036729667154883462675137000208265387570216617759564171484517059995404265475840362974310461957196532203776524868757077688079195165195413200650396979701999816425604944959828997342362827222029369900895918881649316419949984460585750352356319766837645760037018654300170687411621476279278244385850194826702369995933458731227828225536588090744634864483926955031439058518427451998593680886673489703929842202890966360519338525565861826153358580393449296602409893441214030858574086352269603453297842523781238299859993963892847264396192833335166529577012416288103939339357666361113816790369361650165463163270054910676834233152948937833099936537817310341328133429166784846346312475123672867232793165369301492771357431664057492013758924462210335998625383877275129504854590573803371760506162166479588867493994938804140248959748707516028131009115208834757096394045556158755513310661356850778589879888264221178111947775538338138901005984476509346165493280255181355674169628403433012103148811581766099694162412817965430457079740534244966928565527814450321150674027135984139522742972407328913915837319762017009729137090589121007394672797947567810706285826239667323493436683148491823174042708186290089488699634135236598712280950054998424373973634980125550891357750475082594219877543806264428678367221327612493643517803493666634121168604052672142860126595183551174588305285347946747531255084318228997533104238175099849695084216124894931433133034376782013592531427132487504354980500372573986481460380148493228040430492759478034151482857180822666923829797666954258513906653293020439226391419864655688649940001606011794086708666932544180633867375664207455314262280684398136650356309217165754652884894011674346117299658035531336936553276775783709642534555647317608393232124241693470304674619625347910827352650744555666397829888052959583211026710172079208670111971152453410847722781949988956387388405910684951502000503117062453964570249350054724863525924206507410089553909738461943488277045604887132308246910723671185725884751841020774056877310746276591909412969969103143177322166210542656505655688535514978047025982785462300395579975933697042599901228915445447471558470453651654830220014277851763616666331851709016743595109939248966230770942058722312992368934769671961654182889657849422801269607995646757084878206836106414438356997673392179923317988429400197118742795262820428106285027961750840856019309190889313440769885933385721468254296852163731052114161134478799405903519153918418240766557594607064281302470823201571692055088923690052167035344108171266877682509077398437785503520616346248084094448229797065231458437370059094625343967830896575936543305689671479066447481945149455003989088955832183671099233486461721980463104859401385446549606245411120565563474841790713124824541285877527306816553002175225967056799740040318268434622039821903541584603932200913852653148379517042986251649858826058936170257035940309932596085313477312901305732326788516236342587619578010166501781052171563103536549089324638406461545610463407070016191864668582368690386880982327296725448583099116176438413910819097153388018605856664114670993517887718690054759738469335649859634146797227962691655222337526883321882166289641192448906397185721668091456710734241939139724132690626109149642694928010193912584136564172415388303538584769746096920682185886082277868512103463524147983944738942417320939514367225051281976905989229951925440328651495667546843946258895903759816101802483924868186332401164024433781253562325188110422366977157371962926754689921143876159889768914681813432906514184029110097248591923349782828485662825339578233904243702382177222539651218270008137707874377337410575898395026877647503526928284076792752938569277816154454985035019921703242114583037656929265427072144738003017277615788652534524264476663966503120966394295653561455957757385763638041741985854382583098436651523682186127814772539446294718230634891758946837114617175369400474012847443057788036348200381446087772666018581366014432616402295920544770078814433101414240410339394039542201348132917668457766448370751620358734951616634697333092188078683250002084104606823487437794052154958731480929957364636943610480386534556761360010923141522013653115013529912219987955249197208158694070409581254898356005205184541049178985405262121176703738121182866608082075082899023756189475724172581851722563453943427320863927430893207651116288503006690321511148027603835875373745180313469061261410119440286446091966850290692294225746259698343572528617490340508631727663070713252432600631043824105599872934233819836481311145237752322009169345178737668986521681401345604422856837943079951003305359566640285726326257476253665120261060856959810482008523873230036998186790381570887459292797761403230392199630754658888501364483092636246654491101175870668189485942352385556052916986094547081292933776170467598263375188992144332664211795099276471238725308208436124734683518043297225513654567841322482050715019724925053580747407912486976215098524347402650597903637116051250666288570942933935075535493506673678362127206793121408014140299812759263371239066475506971768269242813933573071180564913961144413978296072464730813511423672429297705192956550580273398513938062619448049741780065909788579597224963361257479151550908688912490053499489671786347283096760192354247323233614284182383315315700075516436881082834759319328861387637954472095519977485485927197229606947043896370089793293194493091011239874387983869178635809368578412814300142514870023246931456405906124145770826247596447954246909748894403566270411564136590896739231866374471632246061738439344597306422219228348429700929546381730363394916082870839514362756796366880819266491088732454630271124560099747924531284404764440199020221151854799059994393226976527073195753538508344691906189149184836700264947157902995623129600502216587600271828651574987416308263245320554270763076940134551707807757755908942425715023655206971254233949413167215179816586196478826665615978996062774330120791205166166293178014696973856368363020575548734050543112457981219636155651820963301937292126627640649171524190113205785232972671856340949311787892970307263574680666705763550626120874166198027105927483113246793441313844977126844534492388544112775338018145905344525373923870146602446453287511186610593521589817334682520014336029171111817821080857053497912157478086103652884251090746975902484806690953285385190536057858625180943609414335596939619375750779844055254790531966130961208666596691713677519483007653959916693587471234228002070630625926603550977603819900810823359482309152857824179301244078750785588850707212359091341228311051966498852644209418746865187591947082442113628870090517072617067336491004967743193493111850656914630846283702044954491501598751872457030841693677896461285111614914554327933733246131566417207691892250003302642674651923094077312797944509922414290672097877023133445388455635871921927836851068910397935172817531148547292032064112201587194855730207441140104274910958264687722444016836764552063420332058056337613354384902098854934161589559239161549797091369060215976741176006626062697874143800644556964456321650486949914975356689347404474761800574661466083642717452344891023171855840686707907371863315970908903647889744687353536415101649643704899229084323802954303849810418537525373770357732064390482152551333746498883557024549889022399796956456978614202865545789875500876716667356102455444025470505838225419789035203042995061002225085997902223700495842331956111356406628071752843011451562924998371232044432947843660408536955691916261710254218205084945055915385907748127503649264064142430967649595041852227508045428577268261176118355535166370097599120572619896363517205068245607693902178288869190739575294185598361879487976456054249610177127536780637861785619908919800420185865042326238440646778880699422768754392459723002409594491637755229922539353017173837379458656837213635182925691163881733690389751713548832539276337499744359719809982531616207253974273019081963221566051153713117208474006665647927098112015656730354974222524149904361951446030331717694058718212686036771074350497093246139018317062918375863851239590878168628062274678837531111381254471195999094746463463070227456601852436529132411106234959978145457053664884159330311014438506776369805768063821297343892825368280198779698957956619078601079856421691118011102794500021741375662876785810349486180142282033332781220756481054416072899653101927539099647891212591567598635794607228533528724570501362955769027267699231690804393940877829935602764828640903797875770715110756422170360153208784658531584066447908208131661648427044269493148525259364488228681684808454349526140371211013480301766051360662119163834656545789725782494962657140907854146952195357842665983006632899183385332142145963213325403474580908541916722776376367922864880255898874816891619557256804037034295260342823247972554843876392976045663683709054311761536495002490182972673744799013133114151182911901519764649857330351542025091235094514297610550363966618373354974868399641133433379318656273499782211365729365849392109471358443159172661957852303634592321443826134735262031361447245296335341836714786162898719760658388985516686147044226962916173572413836521224947677387211246565710800926892713759183718153860118984913797319372207112379348570691728758125930187869495237165791117819396770683084395727353065527757520695171001950360684354299694780916821731352859339774796973662973354514188694642828563956030766541798289942580342478563328299355286553495844326163196954528659690865987342338327344557836517843982989751026707513296611707207878067213287008329729242672021981945472450917011536206463574962049896637033704989594794506972071864026394258380516383741437959592711845759614261793358482629618222675572954876394982876475235955823982745452051815469051294483979282806971915044284269245711585593402175414171206823808583502979899811195287684128239460216104887545265117507326181781415296159855960463921737063648819601472772047718772046739009723903332004542473081420582140361578663995780794707423428619166390219671781092863830476544373885343605153333294703003615344810632665696458593532428177728612520007884895412129819837308029183788466479652321599568965886385657464279221304275537951070734672387298050894098674353871278952992814084387872416137714838795374261913907582506546234708304304174071498207370167823087015101531115467106488793900915984656436749902436963245271363348778881951282327205663693323048869162026984993843688871401580000347876226830481429380222462547482279959469647779770167535658474946531831544046429624740052818500720704232926370828277482133602140837510076211058501963463505365324148745015941497501060383563208732561371597464467812509781560247119335224118083235974793735780540669050442342296788507776116394450291446892339802865443045646513630250154393771876420928164428268192503556571546235868808077490899421118502620641792867324372728713136790881320632898810045469525935375157383865328613322669260695231094288567196956075412557906005632756684696083635094418961710845862785498217683252817344818057673503340356969008484508039651828960655353111264702423455157736841043828608482912384658945768050722486471805961941402789547630656469757948328832903251967325845330081046926558108916981147387555914738809234152177097764310157059188763678779683479435343513160224865040990218842405560022243433738734869078372496577776794209300226116044595922821037819518570574105858923894359088812643329155659839589267188504094587461842097885916755439851934178095412050672163466233634557503576769063443728042714384911729573437525455007094935728466843315005475659858233858890573595423074089453279742323645087016960404435240281385053913147970483606419666905756974109532012171413600197531914894780185610754597922493693905849602650187794455888970778878814803030830582758028188768941351075538473037138062923568280880909380338481272552070355371641299921341326482770639683186808297466458847431394091015398793854344017045688640715551319126529844508883714963561142130818595179053972792350735077394097791535915066493577747493001960036887057081672602109536147694420203799793873142397956711926158390365940192037295278231584786057468894015279410987007002324603039135233327776135450286183244316183739997226008929441821527528010924712039117508420556971461164188935535990587571922637762653036357444776164571005796170835442108049068656213623468826279160211418137712654329335043196896352560969625832105535062990488161526961151652132514473427000237480188378696752876108950695085529576103094663631188283723577640756686671916933784098726812623168853783842724411222216823988187858335563012284652394051930788214604751218934336710080757105192071243938322894710862247826168214573963953374210862907024082214338508529567357473421918205322695077847412030663766272967318787828759171735687223695158349321717859950158363553714823355857892432786021101433599499167879786411443372573601717776514242650312802455998358966575267573654893559847369015202553080711818085144315432554186670804504749816359018764990075960939236137985683874862103430998338397987570807358818241538799113888765117348113337696266047096215023772200987735433924474251598866656325236513605493432749679061093796964001253003029223915757300452885515800041320605346315897491757888486165194706479484539851134474735622097961940357251758069968637152087781115619957693339059316662539192479489378962655881109290907496780127459942815023268308100285463504960396488651955033889042223030843531755490349572698838193957862092704079435381177125806447111674114654196936780749479714051244031489791399793794716833256247365454139371461028953616923126871910092210371110629851103604639099040598679527555101617921834027919524346886497999590846725355895575392244830136932464392719224338884317212984125145728845949112436055748634362891822280031375287357266136103074822398788139877783276373148718074319684331910648038336625453235027210225099956112381619183332519033136901621341773264804159281828047626480276987642328398095837869958776165666133989509681314776617468538671387370655862755171563482809396023158444130096764573440070519646364518541173036720536686607973663067419636640916923454617246304044128766247593568837329013891944150265854358904079371465204276968232321990933096168163347456792472526296581351174640129581696737164792221650052749397182864047816297953541914223462510336162377410289840565499446166286004019015244752899587526107954341314738533880971315281672593497829093639499819962303066787098484060444052794411325659333387156362716840113645724392507604090706481089275073186639568275620288773272119758755748713597133930695756505119966811090769861867356309039632172574647354815584352030535328579336169199173009773459022137244724911048642130655833964781607188820212577302005094425212768750293510470772169355116979362526980389718056694401855235005141737359577446770249929293031374784515755771971202032630575689843139510643162164502114897748694565374169278514944369989883319887080712899155176441779239644179608042923670508578953388662631181776135968211995783131588141596543400868256713753406864025628108166306751058860352854654961238564984911314157661887353830205878298673109565054039200002208364615688359351520585594043835145367407919670609963786133076889013629191570484566791316851169141971498326595847174029098619681769003186101492342972768053656066189725039265559594111831136225138963193120528191416356048106175914855451066624675754718586563729469739787349693498676051395212552703024409765801604648491274730094093642667474682293937746288940276153334237521739387891604661575332031022030773911144511794456215987025760628751142436767144187329985756323592810272019345290295048246879024440911573420569640618253529153832195786476184297227693768989785675170335268496386930815654219152645389767193171987837322588573601206129514158456395130417979357635109760833827436685274775643204283304281001248410349934339362706258110833257368916537827428636801598295147380910325563124851784551283654286909754362489501449143297543068752453192885545709124597412427322041107941010102460571525515568729726659640173176880845928428919658680418046014382717753867771530366409274255589913894968298260840746971920886359600943500182850591085137007226801545005943178358995628218543108503677013249097106743457947610289262116598856380320681056415329332966859979752900474706808747549526240154081479493670105216694231330916365170093326044524723457061759860641657028653192387658392240856480170175473894610284952184845891581009995203379132658418526581440836192220930460456212320713633121459888092746516592693621213715443504997536333653283287771771065455857760427834065400538463222186071135628204927791005467288828667013017283699647419092939961457104475762435937132106482959608945924654481171556389831882537845691493180253431923071021806265290472818906624734575045987488715269895137940471830995624136186690976444199227650489556685333657913898451616691663200706250452034663708683326946083145590539677954268408484584960041228896677101107364372197928535259291938322555102465764424620563170468388285562732788548386315099489044281549864996961550574691393329031542040305412060284713979938824108111759566273760314103187958165509083909932569482276086526110748948404349171359487629420649923729396313166557433173549909213694101495773266105780751176979691395972570290155520331165776101283394944957885680514604340663740759832211851210203457760208165425887124943578728555719260362820068245774440356016064718156231414976598186421056350508202019914357117559972603604584672225933884302335629665446066724228376296539889441513501083823165147316470425795139417190165299542349360274218756311522682794736670890786410380280867093971183270866043319824504214287731467338476953108782181629398279077290257009764496977395445252957831454351612872329260619130825821509094885919110426978852960496928518924282961036663028127967160067442286599172242097607732354371218301196182811353684630142002605959331730738102753818298135586922862944110345903904485386808134111288634516336866522462789864417999472714186978454765991537788672977529849365098092866227164052571708835310999834953503217881891517482614624669483510003186838049206841393552073043666021759961904216267998897322765372350422579536697720928207679299430672829605118453045745657004317642855378471532772637745820947368703915422269593055220859866815196110471366105022756396318930970031175703500688081709779654336243304510232411833222787607701365307965525815304272871945730840355207467913455771592902240336193202991620890399003425915811962681277857081439791438117599510317634976633650232220057732862329631349524527413737601984090731091630377190152692481162220546265581999411885367478121399975446344954405493978695707559096649845707596515172020368881402977251458247647031171775523301296486117999180175614855119412033547264521903216421196041795228322868137043645320802162985426078191095607803569788737707011288853594884701056508974715392500866039482818000615555694931465434949863099792659848089860797709784520760145936098179301433803864043259587894040520864463551128507801901637095031151863024986062008466221181807217902064785855150570203010865806866528773042682102778632788670871166342445071521024161292837836540992960321348141027100249673611098838586665326835757538085457140985501559531606115587999300057175150565548393582990779560304568578841751094960359400965547383168200457986728720179324678506840708008361584555911413833834979111967816549029276644495625630830550080465029584931287188988498908328496272487899194616265230357793940844309990630724144075537928841516700865901846356478897006490346538332514854656684816140842954057406776441134372983640346000140352398517873117928019826816847282552738707069581584339094217968222313517969421884664427791912018865150939919159135239047592743317552543309075074001383524610438678269818474592095000913608493926982569445986336417527576365006420844931665387337284608022552749362634347218044949227869771168712176088084579696400799836898271480268444159399510966277095264368081305429390816927273566341457005215245343301080418811067500693769298890981582762126935204217018500883391284966209696717958844200945754442889637992086440269686894355564588875391719123338096120598754248493727522134930273292299118929442691727517681347956235651618481579278434102992611591282419125301731216772526775161119081018056134179884487742121949356952186545523929766061875828051704013049878042272109863348099699341949598756613081873947838133375451853152708204975728089108707442142430282015688427055879544396696841238569634833283805486544242626849388323264492995498901107119396246311599910857323870899116521667022620293907868124983836001821483780392118452638127104483573683497875817176837595674207290892457099447079703703812146455275056425232304251745844290946161725470549371558497803508048434035254800374827847935668576211966253844873438559314783443513036447513217312816624518615280336890396988411264338141886719495319955480210088502060448136282974360761538369355812912213459880411910184472354089592155217074299059489069162451625111298537438516367337999729925220160833575473888137059098384450086470136024448334952048464418595766787403037798340413857523666103234911682588079225778576549210609619958823785867277680275886260537414238643675253227313497158230983485533411975176651288769545038732211055431638091805657460197006081273257631235552097624473164139018400814564300891548014519044256417275475489426276260856037792385894550067253402312748881057914901715440527166634427566967245114966501226633602671345303201553639673990025628671056119507560333902603719755063182786906955570528182303702860045918128723098365460900059172398607384575396264833125540987253825726177279917929770090899736314357335663627867923715893823414377319430764615083850385970290298077324482210869702291134540925997429047020932763974855445325681704500644396651446006481906172515876360504985781063364831546457855744168467912824564673924027992794352873143612925695034745977333940798606220232397749815369564327654355179881392076510048383155293061627981512351521963107430305113402622761790532053390616048528666500734862478932796995998353782698406626066181366624089633940388900604937700036597960428853990164845993831435059110390721148201043687593371344780539665497543480309329136492145784004588250036962341438264170590901061480513812601330965984176234666739168640633920052874002107703167888942598731675188208033771920199171214429676900713362725197893619097349426674028681028022600341013516665859693929659527915817721631650309608792158230512795083607914069686709529200899327785903093388578565430391736040967785673754592533877382755492048313699592078715924944704199286903763604848343003746558675281896082182688277692153049097425131104771621016309796755698666334419033889343933602304669392111942762456091092120122843970994768026083271237978783612419226008467999756207008621142899956643991214504550544982384517244370513423774356923204934526999571896718493939141042418463665745653387595289819236074867254832498151873644094491308687112848105818862931552911777526917405478666957415391831978717812317109910745859260506562489515238827495097402248117709506015192673901070846365444957887132798610601860427566886412784306909864805445334395843346567059238822454616820998798785346022385191337537356102972591414098828687564895996148759729097642771582666909658377296519613098980401813513070062055521817026712802947325653987890653272810909718997660012203908977861745831982273919879881725953680855055423777689520517951130322524450536056579682727344452800392126659392572736005233410301726016509011997483402645114090908124837515031728026460208385774976142160756837617490704330945686153866994317824850440904435626099856014616631957046334780747265564716025100701088430230430467244168632393266015956113567871847382603094479969691562783661782422532985502810925937408738913242683117141482770175039506164692241069102438280585932689600058260391782779523694747845439962433258177120438589677207447243109995519165554645363721796931745236986773560666705956353258265527905645554049722787372679136347685937649253392352034038159061212375116461703241082465450992132592787352965919578819232741358713800083716853108884497690649697250489004536047116196951894020757771400662402198783850651717412820672000541182945800596862104224547619987757084834321658296736379317337969816957873937768264703674929279330215734317944433956262453191034198451134509958932266238033567596862763729139128791380535792290169209916509637394155190236435080698687669567560309667349527183308683916263850579380055792903298367664393137521870449903827171462763153918444640884961517926835249245162689507488948018916345590064735017453676410888631866395701661491075793224987413641260466853013476546813299966795403864088739204015129103609072875572308993827128071364397335587214160531732351824159328515428428171163512849024533857746999140287812450056041666297789828493247139578278494097730061553411377686176159769491184179436439995617888964603706312315760807578898621555803603736943873312415266314374037404467068297375126020611301567563036798911020684677522078690847767245310158758689479699140999052141919861791928774510830952840498249659169538172620569924530085974024467647201073919651032638363847121721257582187541597628314982636877337454389319593603553172497098746732501701452023654239129031270132641713554175534580654150833434850239774632605283896570825478942560376482630056957841446711540855072648517079337147020430656199391099900431679011752824726021072847657930998392575181178496419121336018033508006399037949325944787847012803171693279001547489998800494665966951245236779452983152275732999346447691295034469162155604876911131972686308928750444613712903036041016974662621867408288798078239695432755993053439555350898213028676963666889498530018918213993589709334220289198257179182595792891587928618268699409633123394696649566466751176152733929354065169508719805194300344043703347802181450837956077991560795130448388419640718896866626002587079444287127749373656137729796539760045284896774804269651768528987947284786879834008496675061044069690591793307071879562032401320129770171827312346769409131025958925264721490555419731325420428378296723616125047340544026622564974452654576738208466310732783542870058253591803546213320528824907802608195967207963092776030761124212677294410053152429439418655117517277843296206313851461858301250414935633031186796537121994789948392448626746748666417003574487440789337958456377197976035322983658815017830797670442052450268376343412710638857803619977360162738446727026877765267615106459247326587340621027666726230600259317442216890243369000825503770990764012651786678442626663877264485019171886323546363017163329324109249794957037421432133163627855603213211770699652847306416314410562987097426695545942048190375449474792555445064030893970369290292068868072369686335316624505756258418772993543335642538824150498530105590072739370468054149109495625287160194477056580033381494362559946067554226830374566244929693140739083022460122971104846449637066314601503349790286680226386400583668169978891231462517286882445562056884009104485213716400876451932426733359994117129222364908577599640512755913500972825133841465771646904843538778839644644416971544945915688859673934760063959457226563217366273003339431506695880800910902478682830742860618305235683422136323852218878591261288649885345968033044799261970469064497903512971531581536313716502773435557448447075814908018783298436915894184131402845327527350112376070907428659725684231603603059264582585480561375485507115078559080283120955122716761839008194649789905816972192544770908521067497557565164566369495835661496246374618798182214129164274826900131066652296642500588431421611954157366751920665536260082666435790017194105878513643522991317686797378525699408657765272310623208518329844748876603610049305524400833767848978607459214494159725335323053046238610373846933153780386296001681403447740613249742236861043723584414520599335812392716709688179655090652087517777708257103225325578137166512530324985125464404624284024608827592374524703979677223155768963321982601254081516444567244789527422773651588566183033506157360402051228936439894384537091543022162573630433530726746906789950814289026467789107316861668422815023209440724078470979022361869094455895773825087854210583827894674896314949402563634411656321241219166051048321398647109101405058245703030052515435796183005065219541198234875841551447919141103106928021395057568215039920327544069519844374835040982143478350353007888342885122697255466980100660826598686710926441908531998073467557858521147694115940001078110951505871216394405258443696930018578255748498010292177765438749377533977836030061205696209230589796382081367263147013057073698259320341706106935301359408727180254764738696310383642489307099495943144509111858975996463544474897595829428914700928725281300396978485103899320088510297729818934733216506161009481350317545637662065549220620442933087917455843297940703993709496551405145611745874952396463812231054881413219395576331977564334733393600226028054703169296101329697747433068680818033111519354228111491732533738248697995059151077874469071694565486533192533488070394212919681376626961909471304687674194503233492098282796185726871242642160461266750977345973827495963341889757264042943254348252759828862875899068494991365771551410204596110073541391760148471246577627839028583828351043940442941258472130679669036729251515942794617102576880864625741293541190398998166409795293969832389725944769061180262513802519668289592624479537283563823665951789395197898750132459663619364967807287477079503843709435093183501810055911348120684849573168231202949307482301601384491504572059321662155004242959522763602662090396563170994850827184991992406342397006566445207858042970460274974609046491103643098585809603122538998416312365029631839821298532009118291309703650127871025184510137064505809521329346435896428087308100212739788962739451659793078826868226217040862368975933872903312585457262896924317410128377013998150514153676287414554755996799122941927184471748101337190231507383991968940585747727861813440693984352965423638999709583105883973193071072373130231971009590489978685632064751434531227255366296084975199174526835931283700344424515440680229615126374910174759861596771531295745020237466896458211604872134802947707162007530706748729545318390527695216926745019014609011425065342568684532692682116632144888934644245278731281397466674249965785555156472255614922144547891576582549782477285482073065368493221796100342026112371665901593733215737432896999270686069561989427746863327945851405529199006361449379436130947733206139917568410565250499429351266651527527209165602581126861019260185492255928450913108690937822527109602373673503833473165061535744391890911310776566506395776303414639711041358854126119604890752185347929754722490640999041458234343679641711450046422066168966375008979983710047668867380522369608308529677128062945528690500873804163651808788948775837559410074594138903742877524215010780770874616291489367544228441999680214548157847429945375952890409852715834436494145484846658049768851596777039130939466081223977671806736311298876563098996740141539220090014116156257905619474631252134899569473080520281614960425365244703625342579962102934714479489835721691856349655113227405549223614046103853347216509084589172144470504668641185301313705929693869556418364238821267029041575349657199412281005260491090694247704428520587251954686334895353082321844183223322098051096633969392399703745847553018492392226509719630869900920184986306379377122215041276269536320493399845835659984202884475726059340627513117172584033895094998238345076552599809185119481489919627828007169982525262446614622469257785403411470473281508262067162747221857515565531313461011825902981971101915395889677636744475974600726801999179510273028271651834697701510010931892789250586503896347743286653649413596065620277762567292612510435810812244603523226548999062071824474287082390606309257621445609792146758541766397913796262389193869654214698108410614189319278149359747798613714327134974053447368520622495462803528237866644976707735773050526138885083484807692975068161177736355906529742559982197017956326458649660256942661900598549162778620841144623992688220755115250060645778195782692031582728837164216366950434454014691292953771028105110555184459244892094214507585565787699669586650874826092646853195991900663738922972262186451182954167360739021047584754526901824040430539524777047224727621681299200384330208165584778134219588290218654351580606933406985889647885051537534243857460874305048316507309305500548372219547884645101783422062150069939730835179491771487157810847737118334170463909951091109878958675887798605889548452780625590121080938065308847659811013154138022402181798282506606973067952876927862867310307092920734611417831676516841259307981127051590685459291665110806587935403886867655508948420274174433283658422584864734344391724834126606078234777997651377768189031792374039976712230861233956461482130734410094156699483947822266671113235339748897910776538758267027164815207750619910884834066572811392713410096500935033657106090021627032601587645968262468537617569023181627418301813879210211240111984290181734977982395279069567437594211131211175269816777530976057195751065986591418746308362113656920560820645401659640251916049605039877097129205622096038631404704596232000092695057979562596475024433973952673770428058201460392484897021587200589981042026329784570414101179814016868795438283437800537270073754489473325797617866902409493205406503414352761491801723184177011558473010517158387829586158036946483214026099892538050463135547237936692454179839918983550804310289668723057799833770340783163449012524775131104810454938786518484691980657862552270304307672938453714673046432160489793202560383670196096599159791488841673013634443553934336717397714973283612416342194012763716175506669077468070312397640688437945868170179423525101903917100905988169138580156603578952934031269090307763871225145191391433681477390502570730995690934592992179872490228528207113163151287630221851487805740062986582434162827364970885170566953661549222929834963863396341718516785113247514156182424178280671453490929482486503685796217851825454262871240007795926219221527516412321237888512279996659762487237264675716669038783875328412722531245922353763837933343841332149022559510106302156905703643754525141631647319541931104457330710155717446322939433134899493675287450992659155059796370527134395237608899251827894882933579768558876054075352264487520047810247897418053136967088379896836688933752829037066778128141542995398470122619432130092724102508493115086942605635526966703764183283161306167516798810560258258229965767176223308877678000051035742802902095741085676013236814604555571151185996357990383763595655436227873770403315141570827326822634796491188962907146830545612268757136596377607888328388351792102383370899049314817496319168956299971596570384477753393280741168619709523786666531913626133131756121205808820952146502374997661138396169830591930736615997017647011738551278279158549811408009586525987104869545456040581986005831770768303548264228562340574042140607263398875874521010087291185710213005032074956953776444498077125785894509295434383894618696628192644895012934270703516849326015242170751144916645461470154239007611427927501623650679279879710211920107910073884956058900315800704891028210843095696116574675944593993231996590477727900685810282831088546361939055963576330580976387180839506773056794335440660462286995112128672186587282809363670007747470945838892023650110947569397385493441232711985752891862189015651372085672388980293190015856523565986068325332658980241164993317820333956806763037391091259394936452025211475564814853975783781947852192205718932977916725173806227426544175899804985292261037546635080064405941853209603207415142015323419863898238836913461990791621930115855128645154459049840532779612124948178532286367975678832710546151764473009882138319603551478977081443167652293201094009731131806799013247555197027613768009346928346762881700228906380117094844762490700688206453676943720405533644260143064432758656392367328363484595347408882244890007466018779428295320465220994897776794727852829740909012245231821557605987265790127648435877759494661806059925431533983235652479444144778086486511191436001339165943465360954763143422621439985144362681119245261094906303438367236526073743488185421192086384681518101961526491137066110811578009183883988516520373761088010255605278652319165363942633798523287687211906210978555828249119928896705144774856899798931062623880880083437618125290797137920609555178988485830657309729147547641736342241445101462886180750302439684181774535256501683154147983010181174945420123431777404023165685360583657523746899170364129977523846676797461194118278447621926357607537132544320685687259562400373313904934268015560316073523871356560150645649375231155830298288642347384025420842316205236341656041013967649059708909329862523184164589656160212957930926222831978712282438844594704154023730145374550406925442669894987218236859181337166315846536156565493046567286084865774642980280599189890832726545103229812874677830142950634618273103348194928034955416139976779005025795556723070078951563726873721032107115026841269800056741988759167450298805418441954183664632156207500027440243307525334501061542078007750287673426105338189108944114278898979191490359105509591611799894696635680972899445192745110368939374269474959858437586924145011107961431101322936776220078181048976810858420705726724734741060003608011796306466898705528820430470188967197614806700752772902688694187066051644609384925812425027472049590089349354038753417570750253290510866145841220340342741300012908230046797924264686229019888742248626787534422117200401027113871520194931168169444474072499182452257659095271188550547693220227427714109294360103641342705656728041893231240126854142187423488374622431107523402112025989387668964432811641868754406207441298031775881665905395619237146030833869972390730601834725699437051025249748351845699141533343806568310055092148600944898931520265122738479625717260171057706245029681527759246149029082869512583497277618895809328412385817045351573001092298383893024177109650348301191493052736797100037156990172153235047865255344765989862918426716140062729889423827731292627821635856440147327286748887138297838354489834959933138701753609593924455876035557117383614871800815859677705808616597305016495192543553202389021036367272387060085444554643912662925854158975070079620265877578203193649646129631568147133104516652092866291361379227723010526179207080784690061847141852155545752031473826450388401807609782825154927716275973445436235070682796829996535517331103596811181430141708260410850533090182489169265675219716168720811218788201263834048759086018474947381294978992618161107377349125588433329840733264079642312310142861836946559430438272757802236438274414577978183324923428988526517342073181218699597055210405719664717298088567178722486956764725482749083721583307317478277120950074303737649562463359968909196054129301493729020091825883140522471861619267819274569501119307666553892263990357977906487116258368291795007206000713231209727708184884736744478652314276912366797289235294805543223737144612720123966957857830762828902790700969656984590809309553015772908370558442084615096513384468826036846777225154231594542724605855436646162907295950687267074598473327310371103450984213487057769699245246742983744913127503651578904677257532330539705687807701686577441639191133517915864275244571740041301151874707528242570108325768896902121624272385275557925502231469473263877399763411678741606844087766741322922276715026406415715699225605092025879330450176811002882654952485088642367284300273037817391009844366002073922259647443852687571895802335041700512358980509851399237013529729270865394250517930612113311564625595362762779124746131136319155883801475778826317150122982941498539078915572317648845705644752667804190829093332707043335540937371444045048390022097771715331713866697317349200357550641444801291068932816276523184465887300784032448269176400336862666300883717728323753131353056648820326912135980152184983790094165222940289354687335779102035124049677253460725637263446289512453231829698943745115207478238152950680022639771945367358943807183241503113642237167158521095178342273529811009560018280630719358813440736570079314988158346569232326840053158647850975806696580177667833278478275486173888397780061084893073799255903294584703566246992459167673109255882416582289653477720436900049005643116588359525889940021997695321698072931470408485502222792340790076325410013658234175806065937997316824059337343536123650457248592970397232083904237972856781024369441194424050342808455921842392515492637951164238574969479224427606105212594450788570613019385722212340968921109552070319000464230094138264133119182105539942814750891667962844498663483774411534709577740064833518688441760258195551730013463251508551329963319948336605392775464001642135061514938530767913523122237414382586222739573678120062752650156707259966303862266331453170353117585649527610041004675829623129001191281773031751623854823483852818447741711595517316059046839638504420768659815121929586920017114320320496118343858118158241727652749179254742779942286572596025337088883250212980308931290822376025378710270070405198873745783996100904025239527143475715042334746717874016231106140518929498226475240171882966318485949699103958348423084971170186841994399608756188573826276801440726340892131700638823937643888443108326068628182821529522607041795704758836319674916484219247382054152635943880345510070797204694908307116380597032658994659740087270698592142942187689496685081664899783470637107706773247817747727989471005491752462642145269846608086014337919140929020668888408956046460480857846526586470069730999179961195588856742011097412687688495807543682404301210598387756627728141132770605815554228414199488341843149865840734443720623694650713182253045447510482896725573641558196275439143263702940419935750411866494755247850046391969599641718641582530589152164879025594799304070070968071461911052990237280389116315593592830372136316931407908580771499737643092874968390275086370648274306922131495948642443369239259762595349122044746273207651502816986201312568647908032766385977487412691668675853990200066263493315225682800476952566271034011525254857518793813981589277582562826871345838935364559408571976928214861576726835470899794520299467365423114681423660911463200891588537542225236372737808819842739875319663612707714677819035098484910312524785635758657539247648404196891338190613020011820198207848236231822889418586203238075549276086628972133837645440328579245617258318663104184929028403816602063622520582671377764653958808742080033693034490393893625067301027304234374524497758998750216173106472319332246880446588738828147389155240625942098924053253479902921754231522142199735983612663050305590263508284149678411669051261731756902827197307867521223343220992304825429970139934278637234669651298295016357347230920930311926399029873073171602760876806959985589364274225437984035246522284189560140116661298846444705050834791735939682631697780934756222206130508618270961382497216796123662247753815024820805512168955100232823023028834331730615312667802108607542092556901893353937989509438964667477819812371677365249378417973254666043864561322938064448325475043493749233286743083931555053330320946990810484709641668795960224399158265097507706675238201385864776289382522266343749115027839228365470674873929868349713178441348651991144000261571845789265953908305643993807810777693901991542053003301012542115188697786221494536875958837232612101741022295784660272612514967294911648527624948055691482001632586718574567766647126051153836275661413530061728478937536868189403415639483734407707949904503140104903752301512281122568350967558680648870986315197763073479378734576247637529254516161069886131860265216670106044648889449725234844025004869439432137271430078460377318649540921247663246926537988260916080799216015742511797229764846943297617441227664387378389581491580228494079403759282795041896118527603960891452775577677638704050018994855887911264940832090160464717094246437492698791982783138860792792186027770400677676904488176860915889133627794575531324104579219811770255946192353991781590793045104904701524778867257575608863574235078018251417382275818733596512307397824621650032098590590315257924733671696534707337222271345304783102233667918404920550019117056329414017543095858947509918652318711424598070772487173630559114915427653830549445542948538216790672031335251451453204942506527248300081417685470252283521027138024516273466985727035331003874756922266500128111067297679111232086450199441331594995365392534347918143728601992250867926268680876469583529184374349070831806853560235628076401011905326301403308510181954854901051916047095598045776166908242816619190790674518275185644482374657225482174308749985069067704208890756599674222444862453999840191982868193421859053256458845231896713991217248380183057050637370111553897384332273490322169703907858516976114950541563163914331156820769095884261074601361988014850599765051990392268077013296176236140987212655655948875450739761000705968561969220955364511626228425787524844698415902993517035290616660448099502101050838332399168187114893759946277604782926008946798894353983389262157254928905135262452903356729542536327451256316553463706233090829668889273944965363878721309260343862935234283488601561762880135756864788766741571727267905662565528251908532912400546806578957706802669787648745874416352657789556432986673494186810268058128565107960679266681441410861465766453954069942965082311355330820953236283323836988642710815867164879962257464855356425078847849465213494326227423691237503400143023098199882245004143805336922440816700040327714214721993864843613986146330714121244871339644949455877330850329814267048925325058186727751366763701064244240369233595582991252450434976997318104120521901322372660156067123784985804302890007329552515580561101296090715484371366905832898853519041301671169516649002383910125586635500320057972737736891495948441923851545991718043669286967210682370598453072384883398051846910166973347296176149291685739200231140793939799489824367356067946334341345798662845150823125200800041692935293093461223511152533926106251642622222881360558550973453049866206318711941870499502933586316912293029661121388870588406015702992462198613433660585704292977974007217798340552644646466610344874672416605277427027592896430201809227042657405397785218118779526534705990356813785410484543335616415508627573010865026664392552961346613794237794983564682379208129570587930600489876477453620451588340323490377483112453352062318270840280788711424919181520375483501188231034126482764110683941891619774491442105622703423639657289387986203668324908077433350466668376250435224555663058094218401819696899799632941545467362622818434904093522545777702587741376287521518617282279894950140193869133423859944209169530648710072506523601959145741481976071018453939365737728158569308742332381856001726992907409159037999736091736319059180290569157685449239801210910741346365668002464197745521334335507816896300848931969323721377120233568618943143299638449763870593369333796355304343122873943942162857335233064806405798454555298141640692308957114848974548796146404054102678015609194067189874810287331358035442961497549366102513254859847480343587310672700453258183438399368594564985731747234771813731083073100104824793080677324417639333973799969492375839210809690879391674830644556938936413467027727289851561578947850036106462684099302545429143023933960158414097151687108026610335188589930913063430292006645129081448663627923401808413582823624009953017339291754093073646555816027724924915581389165649416008918523075352748862523913690058163874561867323844831383976504456945827052892439820792057276639916172186822317850659177787741466058319956637622070951566491689516846422838868210203243529961899896847016236652839477902563660565940007309794129146113689777229015838268866893205086717502987880369006819183994586198650623797197108051967130646046433641299546739728750532805174038923475348090589590810336138848810751643754695242428267565138866846567749993375642117804574734216519989633961349907363321523879584141470877164382820993694295522105733628775635880143149468284763612704038910986435611233556631306474369975727613409772933863365443366056345827545907186833142193429528143369381558361047803336961771992923721964504471008606917434725112284579642352070273579458299571410919823261895601532004924559166265414453780972884861658189861500643973277212603243057540602254881610944307481621191098911630616267010816708941836371282070202662538600012463519218876886724430065714490436959462249014086628593416273616705866528064907480680641649372102967465570562608068949007084049437078858133986153689724174266922468181614235741510315367246004693865833767328764415426687025798173960031999002025419468353431569215911322499781814308377675329409743833873340414451093127639964489927858299456586982379319731498278960378513183792718972288834589476437299341279411908624543990295755293648024530784715147989914479319439292968142415641377331176348049488438941251267040449509601012833583023638625933377657609238881058307657616834521351944224195542369901127147572252498302381084425830346206014428948766026377675478877353200468008632533680062725744281548138528530673645487378922604659614246882348997969030412658061111173087230711988170399269324287929771661593477774373817604658074709749909903116770504150266042035370829004073328479312520311902243421511414760242115086662585317606941191455710187794067512707723907127338627741769899214845486085248734722559101776044363297013863307489143228084376239760299996321309089023022041601138802048783977640479755674691040367381032569704197349882057369125247606020467889882692399137919665560454181085744602136278632613551591731653519524668419446529616829686945736124519620055281293130194568232616867628089968163120806064796128598246271089019857719144190294044481932411400989255129011648531548438356961391637642203715628996735932779459471343386227934056052691155454035143957019138267600871868435315984978481007051126248610144578493294313476987609418734164632586710679506874239975252773171646834708489918941689963398415371818835619100219031340068193657131737154014121446478397348527082959621794963210010424993119396472625689084200222226277327130743384018384753269460202144806569248612668021817547717308186906047575169582286103385586234594549660843277277692264888342082420212989503464773714686582679956595834184127360406715424287114654616692193702061584585423489386676078973904991400673342168498160720008630750448624086517532543133657250530564521548760738124234010265705631112032952705770394925183345514479787959919969672231715207684420410137099059762805860457568444428973553154010209251852931538450667100393157438030200298157704609459230273198393188904342091861644720314294410650279746308248277132028802295122559053375704166550532892749861733091742623319059198124539540409043599345332729629611741587440592979602187198849741426143617698404357330475462801755587929550648477994139490126265296871769349409257781220376528291087815279722308918086112070798946590960400143328434784455731265638662738587013592619263602641764366033179219167340145405832219972538071972135579376612408949683454085888068005724866907437114467224796533689716178146160669289051130071268975981082826491264202723812535503276617776287827695914885440437043157511802145169632213181760935603368827481752281440397258985880311664811676048507504863882009490078902505087463710575516387604185320265750135988898115145693527724805780079178663015470863362410617161652352106931947888949954603796075532567537411376641505393750790568829460547450886955035033815264036363827830867819757619861186949575215317359999918692182788338846057937685159218159027627142173488147870955818593998283320203249385055806432391803059000889555192744068191734322655161812490046770931205991869434854449101302875979576507365556777657201524441210934682513230719571414211210941433129349620620036728701135162251980304304325229680916546230718458764741614984670334084833638614830114056402818329471982579548271426527863505407599877566568009606155175107371187038264554964619529535000864409187683279193204732910669910827428003064524069710681009420917949719588550000411073210104942597950634475840288236242628924243835424986772059489319605028668071858197244550246173047521301060569205002853737866731583240506989856865114108959230823737666416661529014339039162199029721432502667030936435520835185489316297068894545262932677215207856190037446468575466765684268404823156556676335233806478967396859886663899366938018230341881012634952114119718009649650706937072321052715357688387002866428537631543906168238861843328134203506698230976229044730956890638983716286095423582830605075107416740119703842581270945040098628391928970545304935060239726051975076792136540048237831499696421749833959682306515392663025357407941791160036923298747286278985074977035367981693286012741377625056097652820390765376008754025653639276207182422355273068257900170119777339434153701768407303786978219982276924397578035362559739938149920733516922799073769276615677338600855482785169992660934959573526631227015667570732033667806038451654136521933497084893362799388526416131449346687170550924229161343968087857874553432114603765254217197367171038482608636146294951961532960613664582059757188878725786967311223302900661600323832525765033109766216819712976502231196476926125456852038548370239917264316472686552773568217209342631242073218635192838757977110652733804118968033033985841838611859666956583109696595209349724312408354678026186307502771036616047218977726268448569206317635126079912173928012024258769943219844507025815586890483736364731950725471603944776623629399346131157838884730254696830688010925122055175375940075544589492429295373188970540052145644572594196991649274166136975511271293425678430263746742010155561376308309257444984548425985768786424806424090990794261687155593875398983727940811619145059851338146760407575508124696429751457210233214575915326868333401301338075438827182779632687385004758132689819337945870643445938390784662087432100539332368373442246976575871707865252725620464626198780990637101122828156778306895696159604451496301042818728139799261254445397732953952257078163369900575466470894854065247642908626878427893986270854742373143748658175150561925240216223417586040662094903954120348629373326335960001466403427820927672177545150189179525790675061198353574667106397526209434692880920296933964106258296785231621652608472089991346578366386385495894155345123408146127263017397185004806022378178423391640139143368735676455777127885280805658028484026163585940145185319540876579807773975543294071628786861998450207561772658524676820462443586439866814509218773257834743689502388466224818561833561097983974958401227576915124433324959952252486691742268212135904695041777325822503512098727954461846065184539895094896610618992863447309336781679081928393857404763566541091504972619075832657593235433502623654323964828698366912279843462597055105139350264383196471515749312738088012601890126348497078618985678734770808835845213621424152086484558018817864457284764932167965341565449423841499618392185140053248291821058344586736232908360385145698963949643629673661249447053924525650306382734703325400479288377631198933562477658585822788856320499369568520123886198746033139340021563028310937519686585761461038793273070664080527981095915757729879537770827552028071954548769191325357347515829506974368845412847026420400234414840828742622210251222939155779543368114206672949285149186833739853041578490729084635730155012517534820713778087715436030277831975828620836523104634245466323376303300095229509420691690794536821841329134308031139786507425498902551070122027736977551310014534626096955403875952013979721043919873059127253745455464663051561545602868611094330686471741034976470393163297063511363285793446765477906472254743349215642435132155884917532860792230150990490280509491667674285828714881626000172652601469649898538456965221242931877765736691126740404146614274048082507094159300612934970818599923063484755659222920107581120156905527521778343179440594824224100227714143255985381137840563439151981762631715891714435907489988258567858065784183909874495708332461391113580385885871670999030872631734398869294534853666711783529551258576857698177346072636775571957382733055412827954805388157086858873528038607726226833941129634258135641666149940519129678379386765578423656581451563982037266704575606721219661529261529897229904907149164539740718606010979961833161402924456570246296099450569091770522460588647138263436990921966300399946215405376177982678232847369517997730443643733064291861022028515578485989111847543508567991339353732302517770465445738982642850493162822217812314472416445794859973046513701461662705907090260957373640294252424341953988634990351166056882571583463379896095518491895066091722973951123306781883968465656214455957015347112556121421818605076532374760125642399611085738447829442851575655064831573025513576214165665106566986906243935644526306545111367260406454614280787872476440965963672881667872556604019814342762237444504370310417326649557008785332229644456724500230574755239363594798594293538581285439641816427220239731964939350561210744325189753022362429107928748190750131347992357890404584727799314623021765650293585960182600282508821575469095890174704428312178545866648160816354421982353674266644248276905198592998263928373820465016092109869824907709644641963153860952254871696945058541963084929265047597041929388301798472859244992312807085766129144680495487962771764718864877119768964919972758600163781833140037950489843841023169735549651765477331439352815114231724706359951284169948874335547081143036304190590523693128796528250317081029400803431347684454433811268414098857911492488057488969640847917258451019907470574842895038064631492163531737181941207933575247625296064954524840489703159333087349964077665339221372580099641722637106470737501534278505564158006503103174639778835149808940537520511337561441768599808582359883947481539058350420978482793838541520173916889856040247851746046239077859634416720870981219869976667299629313940755601100655053655907599042609097438968783460073369221817907133996489382146636454045242453076339917801676062743351291393153132407872040977816813970153880685478921408051912564484404221574102042381241268768391359025841961988235074034690382207611883384551904881683127078396918495267518501978265376739821750161063807182064070163066687340088638552409239793811621334730717116064583046348623364729160272208016511497699992968821537118229453934288969173294180858809900099111307404040675379043442588214302789136772464492812630457502232923646469377832978118265823899852378431261954235820463959192866048714465148982234752298891888814452071618786125585100609318799257842544140833000659188888993697482645216188250595039394585327619322562332962433925393564038077463882913451052855994970060998010109946985247396737002895154599473704414407389086147757871740750344878324813392792199974915711068633294717155040892330914684690495173528355965972029864838449528738420786078736742995392171012251165377627705073394032657941689881206218193886865883467492133516983947578168796294704741149581969503818091457204628722253916856014312474342121102933806066432951323207615633771897222438457009482214715185001536111855735597757277356454740440235852175270922438555717320645438492295615974104504856918383974449846549605288329424416608678164900088577573124101623639265955729579142162915161072412402434923666142297040515602350684962787685384102749546863119335980527472199118679231212402915461692227202698257649562336576652510372695000234608603063226330593271590580684573479795964437985288499806460993016290739305661088519467485858680886608445431681713852675501881232524035421768385734247821955594991950590408183939391264921591117721494508034971194416137942734996877827264998573888313321632566605628323891182971261019689293300300549710831312718430867925565477630178847539135506666781186362284102797744828531165485257949829414705658295515038800935282556993408290313056080621951762423433889977215416811853189670801167736830667959981755841780397574008241048611376569551499710103937325924722372732158084846822671633972919255290035147263769777580872063047388115497550004890098533048235318788830592763148843703563816777975978463499871989167582040033787928542470815642062640404499253478453593786890042566989254203710877136067485061678874805637667244854243830652311422027158429312123317275515847153299063871812240201995433628814417153751405053367635182937276708194417979553947560547534144520403538625256741585374203186739933931459915510991113755839124292507004106236790081379793854235972484695843956024236257407175528156097740447393483945407939725213128550651284579348697665010127960790652150957330692188969466928183706664478764412898787252824732704685026168659777466180045098019561549033803959395518702086951201235120155703297572012521109033684801791191677270018644681981207313797918617762571208085987740044861827685141283084438118558900695935998758413928418098974461402362120007805323323617440309646832366349496303340303147497574863940064802269224863974689534490045545592606056206200636975458170596523154451098042324595457374115226175065175079485170402530983521342255018756518157806994862060536391748385674956512033477405833160545263159160134599236311759884024402456420781945454196172480702143555003785345515936202714059635573181482215638436750664250358504771999376987878342619945180314145501938855581183993893946654840512002837965135338111942229396679604974487594556993914109527698298518830208756817467594307820461020532888347805295729258361469094295424460228833316976397263124092115030632453496954127811137866226510542503848543103216510971149962800930145040911717505189971027515431745513851275561081747046116536667871827551528270663666579727000009953285316668027477217641043606171973478886870792097044156835381604912400817319624396625970910155104692831811548254828369216845716355727579497246915422162601590631799448518012818723526485546367235007671886360697476319846916784517092012582120889888417441855346725905491743000270518167168879418701535737007399251266805760076109992989429863217622327596460905448835936032663608860297586892464348455330585521266001872892768302782214261466867874639705073151441353730337065014974437068848439292863252228311607478399778317191205609775933911864774623800901886790479522494655728074774517869641556247989753208707243258161766093145449088556454656005175506502028494421612271991876765893481308972403853301132809972137832324702023192316156111499754215262286604877891389247890277430391725574527331465817842923186672475217312538178001962034783798967800384919542672915508623095518666912803323569906307266741279772640674718827490513925088640243795484270856986852775981151464503381665464277639736533914161985553395706896720571477554419864922352587367829217605552019693180853453448281590545623633642158047459543005026742465293788984274735672246814946835822900522534802662085179509471462973198240970859620872498023757207344469095975700347896248307672623597242895601847814767306860578559880996885498832885265395241410365405074726862148104436320922602232367651932152075557297232982008102920721242327367928373399947875751946827628280945180875772733796660977621686482668922649766341383530959514234463469499568639851727672830552236762394716102019794123167844522785879535217538538007536876050073192216394711605644836060133851772042001676798264108486930077775062735229224370816152172988456095510365700221084403259118232521093006083834889981104694839672163958428199728171993056529408127725879218136822760778785204424583450459465017886056421569973832211817739271540127363939601842311842319732320129735519004315543980220075620709943737638596913938517141244424950073178672509784674195727828084849398967373551872630388020718201288972885615746766956500309833169463255257161416271299436972711500771253800376274273888735328007384919083498971787220944870588797297955060387153386730207289662202771920963455365814280956368053709182211440448839003935827473918014277483483243461477396077273767017285370992442846450377340976982515867470005443485299831359555531640452064304750999673287460432097459131417763627148431910952935284300183628539825613944906320255186399736950285658684889093785546002307936255909694297722244245340913877564252916103549640615298062293379654599310354395052376582418533672701958014776260242702072360188429312223487326473808207246004501977231585329446458015174202223593178175452716200111039590091265792755665376707803235258406845536933772290434093494700327834849151317713403565084152473740215295376616717999147202846435239689328662475142191740991704478353002678300385664340724674020056516098516279651142299617357959726313507488117005285998842673028229331779772591236749139603848059367404351785683741190478273935314176769772873652940930787905756091839453085121848067921922440369884516808290331925510303815290134907991302186990086972771997624064345251947413190810906797373089701116358526252498867923601994971348108226213750958627470739064961413333641065163037066419758439241267359341291538124918806180081108424595284719509025419664374366461563564010630211689579939155252034293336554390436376366104961693121383689167296857496364324003205242309118477872957502206647086034937789978814707342596615935702090258300564534768096123507911623927303019686766347647822579546425437122029919711384053754203938026093420059732639018069743985057886065138706080562335080441082807306298311620933756958134884540778020402350621287779593136621150471130180350419624961324109500492226171139680418925879167874852093145443751467787238280107138468008249381174750713489983465252072805273914504367947553290537456532027031477896011385161345640589650111745064974451419532541818778596753088891075316934868134275387625305150135760705427968446724109051058454603652183349633396612353274757566593810574463547008034317762474490820377105194874514554385889417796621634746943166405518740648925445276825398797263558549355608669010316733194072728151590288914588558781627713681813605277791501664928229882089393947386773612701979441613569623120785576580352929406637590234515212801897719378404591653208613573296395038158477189326326423365150297779983211347827345414653303049245386313171309010362695161259074543269773382208135093312730773696319035433082080089984525184869345647022479832917034873524583718731548086813202952867752198760080134635742399267069089790054472259085451600400864497708074501972905398487064862537112438083184719576220572899431064323246829129896977407146875456348928927671500837098740511033382470897374799646942422133879483907507531593987256326553644042338794865396793897692490221560252498109751321751953035762062104600243176067765540470971219884220522149856228532715057683400147071662744612927734542092951491623264203174481988758299757977159726175852900838981929610317640225715701553260365600292904100055125518797363443901225876168653268680041271602602220697661622128192775702482498097835931430934310874164413580426538031106841283159302946137332352741436434551748667040752363947489682589023416155346566371739697533493211793894531911028370569665147951944630905371312815018167337217105990478163049720627110746496900135015865517690647012239233115225679430824612829407401168956173251374055064066540576850413270288454942829084632223324773277908407597999773365017019264793106404268437261287573318675199342625880388679780634157715953455441652543443220179350293191804220644728691336596371583328547292464295774503054222653057242648662659097495485750205367839063555721835764338440891040527501233526943937442876478900564999327976786337054680544343646402219231218225898229893909389779908267067223338072899179106162575459658616877957671129678722369996262091709605138232140438603676390220783002644179379840591903417856797195991092268369621305069972414789079625979476461751545680220202678303146328503661245346178690564324143423846840643613966534409933319389579474880248363586023181987286426612745962899571550215850970948386231815980589183292585605607467857200634128816608886652525162159819754143858984632663595220784526813108507817565801367328025661769978743864553934479800999553541001316745077006166388713542307160725534847881236628963298992143196414069918677913042719301538609411860481123912634828685183564038557978278555190745548473236481741843124294343895143881548784101911262573091203233290725813423609894668163156206022400514881826040291958642182623486712365941506734214786873018863922995586993368128642375480489430982351451826291948168111446988331651828979658143262874926352369973207397537345832540930978299368209763040734086718055178406581830620272011730186063089968516373030986842657751714845886982222427197472311848853100465206363642266281946496587207821737850266486399336504492131162621748379868702284680551839377838753473578191698352598475824549848595496706273230565256987695483800307114646627026276374447926360840695252534705674257195414321607715224681957489910106902380787986019697609668860581423344963057574037596355911710003816215403232495371452743664692810035009554789617986935618065779210986420774325552641163530975718771994752863375065865581291999790077516340789964634667810474691997776005856275133320850026191610503074567402400382958753004851263616813355234368550773956250391310312968193201727875231056898625784227754496587643458970779345548829704695140382325138629400710540366877325134240284789444808648227536591832720331109862620977401504554381914414945306424180914411099476554593584387949977758834272994411554727119235448764972793262833443708965591074412536602653759018160750471483423390022902856901844793244274018482155663845291522786456346711759542903971364405877917286818078209240953890622977892284397655103375091924920869027787370317547836887831595544476644609760415126223662295426092556515271473005737020331017673709051411077735792362666305776830768591664414779658936979331776863810390896541690149293582477536297713878408422535757911986559957944938665387453026290332875116646406418999424095204696199097289398936636849771888227857692239659482986263081472401360727708735976817046259159897118177593914454100347281822303116446630623310419206294663576522134376982740934573752373348959213238236585413355114826506680255786264256274125720756540517691947282897745738171571715019517382627937930270892986000613395294301234314516479679304621428402107539874471939617575335774905361357398139593138645753176607312207647969287684672000420365987155293843869366838138425223970209418439490633770475080398443212483824050545399637840021676998895438833142057113701313628074513536544760732430313678500608387759963211749976091215563434477286558047102846872761027873169698188798943119666773834660020912462039579114907386246474639603205736756269358674574978332392731956705850185957530878908255567132361479495145873131603700202226429803423681509891266529527645791914571588840616858373218216366994160230598393395966003090280747676807756117137955570332764368470261022244331648596999303857634449441389952522427113386496223863030244886014315468331281131704611802588316405483153455990285913560909069597307541324799404415154407984580904866608718791219077888265472569695447616070345945317931153462000876019280572524543239336701387026895979235422354519235807199473843817834935911140034906151940105127950883244220253889182826500883811343499168220275649216782019122312270512375901139698074480307589847398246903868915283953275332748908583781436915537555040561523394519816476277833349052304115662533184386963386087271132064841903133465849069682647154634025022533845147045308014851298417240488271908415451797034316940048113317782895517293833786644482196814679739851818304701549618651276744541205689338495529690437164444403770454487887950954017812161824700976148777555496546668462206161178986776784263601892938950029480325545461133239522795391645029953081399132948638654525363058646877030981459902164818750389048733753648979084188031698129209657424498443281129310220702510758385673480476292109424191272390037024288943264917219176415052458170440120142114273377761637469554782196341618527965178015705360497196354242503569109072867810204427332103207885328272134357422811606731106422984720586566040107957416463871771746082479419197195293228482722922773378720200518190656000379463705228037881782878040533325107301405326373185069554000806578160161147425403672040432951387602642468687797493634664486763453312737267637845131682810605616873136247487335857000756709243649866141165435412509161887805789314169745126404344266169267246333180272773870074623306578012568207239407651386629555085921638038927409809985547573445963555520567417096719260560255409884328679810174461933129478048579665361983117966348340965210349420036134599611673745286625989894475991418941820781689691887653447370840436435722761875688201555719148255307639274179405069101093985258050342871890216723567438941826928931345865078483257667132259798224726963394386669808611927738719687339619406903839356799986638134149004893979093168649624458101877937735816626980486071211002069331878920118817822614449378314238238813430344868036724971202397365684964109753637295361209885477273342483205897831648180585283401760118265933524839566520882159175221040041832286973914239238369603042150536074740593866646482086222551745901640081204098947002602716601377334808378479942514081778962654497349173945247025170251993738239150074155004706567867737776388793425206037288856080727559462014854993456004170564081464615255546275170904806563514862880960407564031516417741579663174561635094099725333493707899151084654975253402172968322549719382359673069524099262432712155958096214934911202125007222760171750033089335983577702977906444230350796554781127370386952759779506485964510961606553093039006897223536293431116671927688000910578088992950326607493404713730596961797735707332778724274043209165830503447280114945605348849217995864831031632580237551840065032431797726655035943231405111905457471131630315788403069096469817993095480598715946406749649455213923261197379794703792146051671388190717767827119818864823007262865830363202258377230692960842440636640840851888053562085815501147687704801407899386080545442837553237653453939388247498660643095280467123573893532161021757282200853962987494296611757814721269923397688766808862588739792424245897406987253611632711011597742142814956937979497431583027915047890333479570049008386131990989721923229817111495905251962247287296367147488576735088816624750133094447853253880877821671565791968043563809920373559299398294144462952129358151840000521290248368767819035737132228380807609784703222637033773826342777707413712840172439908142918787970631741615842166299103057468218089011373105248849782993576419561605922340702917781456328809276663307038486073523772541433510380853271515026060322113236008994221439597665949868191759624598102042805040291200081477489785788296441547031881330408083848535251448503814881274354802071614435115901908687218147131233407450549403908704297712646841167174257345080271535950788479733799345029810141976734444306881643281973962942847247334617667586175802442845261489364190639434629664766308985474621533926114652891861955093817912825878042235444951414892146668974898151356379607955952720074849191373679747512286554404542562656760024576468636569063618540049157756588190182301633926405065982273388379692210860331160337426989800249879662901695577551424260172131469262755694300939584600194709556536473002060597495280106882066971803928306502844691725497746702908894764021162591084762174697358006482966824930708719794969429791596677853711628612635182804822290128251750608024097115761730377511440112934207809535303922700769094221494890653910253298036362820759271261660317260886989648511528955531159058097623982068864098321905582511253542835959570268225288228867380738817165834819983470858510191198165133073905842465023728766195490628236013263901800645691738133774001841049692919860407380877829675396548130224861269883924167345349643175656019757248225632675389722912913384189481582259824470040371517210615306281920321206858741379921457438455318765847222370360530899673158157654618349642548370825733954239207908377503351770369398304582159531029898481389905735561838223165333779535020721064494884370528114939914245935914297150556024281682747705817586091445107220443098549565536724139552012404535196148572434901403459459749329333933306971766932884520072013036435719550359823433018149717933267770278172303083907662592866103314777322572807101612783366721222079128663182926888009735969340420060953505346397514714789448949067160580306163500922364797693182005351122951101447274716214095822215303021701272991354559468560636360923819027357468072201021597399097837440598385853733376689310343846888269437616580557199602655814013975270049429037159406467728274391993106663069965881583724488333928864842628864280020679615623118487541124334241097904829031209420300226602370175734798294373231429759947327006948045096452079798088353671592751403419815532066831665552746397786579203738594928758349859237837986512982956374733144797983632381157709390762693396644442036707216387156372267682527936195484032795081790758284434591928355814887840109871582149177216943841148061029506176662234159662093326261015081982160798720251970438193148477110137071230285389233006924020556157258356599983685484119912637885198086439364730480578436351177978917185569391540508463422518396661964960271817255599175129646751348013753108806736675833826639571315060509448846437168610464150935153657149533787211958798210213565301631905008443731191123559600012026062154478921818118844203043262445215654664188832706278015997768062961381029009635676874161031926623004435093560047973440915924462107777684973085352178684345553427424183788169515126997711812362747850777694654536429571685212321768601845814377516014952841781698518391479171750355816320903878986524909183247184825768750679764200895770550179692746215262410950918035255198498668376390245124520260726777467612745585735625892758406602390923846082653193433173473413581806492029418326045625212781652563158085481118908650767637364121515602357661854593394130406847393962037320158799080626356956950856904388931677294178936202091301207647594647071754337514056211799083780981022982482688143416561969987829313357954206739376188190218489378773996545876938141862174028540031389455652606641377782151255133421315704233906926219739370583877374335889903772048320849356315834742350056950925403952754988821474064417485283490434229133198293732377011086477635895252936837770238504579132632416081124141852936584438268448361831899291780147113702328480497996789863635682648521592539842855472979099268171960488902334314421559458650222307205170650514227921484002127590351179302616929700077513974862997056929703651611576804393037684669754424041182327461196495329283923241181016570028557430295655064704800810948041930794764129143859273983772599062617576622178075190430712051167673370325870510364846860969595175366894359611996148892823664348729635073612851251028917124789568216004086586814844277963560509707673836107229008315483184086780841894990910185949671232470075286236441486492636269787701815032318822382815025325341341244465447225774423794022844684551971595190867108606484613225511435626033904139311273833265579525388225192776156264766449566641857676908952139248145447992897562773858161479586140138312863171184769840791530187848070853345376805387405215429721138256263022429671768525303987474337773899536322385394674449210177513593335256176293147578101144726463785001851353041086679309233447808444615854160118083316055926484542377208212231990877989197812946150514247971974387857121092170927923405982684956121122051884293610418919739490452874077688200388850230475254536828502577480698697756618864732944552296312831880210228346038832228207189992578882074022329669226269118106522520811547318491599658731626112007383969197563394894526897538382736104610303458293091913390975014235829516593613670117148238991809986968994679556950242675390884138407983599026386242795287787229055486206390641869803233941214817814194782556276216060103589407807173688436863624603704778530859114562918061329491925387551540135355012945560108155387458896907731994178797914215866534018651024338216341241001452658695393179933076627633280066131956906222945706633415329296368585748427412236236930134142271305349779987639571681264391517126804310780920114729016163929833831111967111245945198746966246400315457380409686944350056219543221914416147807671724280680794611390195182398258807142898871011766359716552575764569158046307073745631346414530858132288358381618331059966921980116007395892273925680598775547015202451935423520282264327825833304692394330954445087019721371875140756458388579462456287515021816612689871103857842620420515999754173610222001536948092311615175797877197692867450248067931127894401513408990627224098330414346228112503052766046718694077755490704056004730309300643951951099436371511875705041221195177192208946224427597933073755558682683824292669340236428670469569514375617260306911679651402753122023878677089166548204992933546247169533165719221018667543039850512514722511956461654047911132893342687457932977302725862671020610804045285739806629296682738130551607116208461995094115610005676425401642197030804763643376084022488501240146715055492952427043379646679737693730965900373292367386972825465825850897695254214902074789540640700468959303368754568868699690611832177719316043725147008624683227957440997972705659885748049209999458975026779085053058673631307697221870931789184673868129445919131905074630087954796812621619464642003512632681655415039573150577843586116464933139738437224151965200023470728957534046462846461848605859162919493279345750375427156781015607139925741596021492804211486742621126747006433978689001337605079548147031824739459075131400653315113835701208862678735518953939414326594313407163528593393463730931838320569116858068133197425556021241785713538558711650628667964833609212979002706665104612555115589358535383423221498846332806492331042731991678604625372471248340707182988660038764913266356963121256609494917338513247303124153848219815538268941807645168006821548395408028697148287366252066110990585176697811261009866833965982415234304598102835357204727419030007904014380918052036248293369981786914202830853508914747899235374087978614434331636156919433507993205015162935537290632477691410156516347168875735108201568078631119061035949406653695679113243734017398388856940902205754336552408906903959624129955940716200840968980717477284926853517511296160955884933358643825520146337205899556744063343873836450864720047043458976284616719541008254172364653044352535246957957525985017439789379379120590002752881455121619921504669172288706800231182153688180207187365058815135404617868841117122295912011623475597189926217461769612633866280574799472532570353025972486444747597665208365013685767212440921062779494462399928151628280623309723153436558583842734145812112114651495885090008217186597319623477445094879404692986818225773015983100668521030901550852991033924976001558371332207940028230008509310418216150072331588270721123794867987564810313594113876106605559427295862143623169910674962703117718538942555560643795580333495490368011694080845321579129315341139077803525262299493479936978396020743439982570977999417503752987583195329429163215847160342814595609288969638440434836358096981226669779125362045240265458724314819032572498235618064661568374605119558498078143812692467231989467268331116281496888826330031655162858328457248117143954105296751800695771060643420043190238379384737036929929167697318868168120754371630621495564387623089628115002987843529083825697512211089329409789119633112821688918661831749241617706508871194251231307817539843172442678976861839020217615347739990301663347118767527018516741632976772765257287500894661798722625969691767565135929939691491742343865706868799834199175914698268584694585472618207708436441932787555479902262186868175695238623859195766305083692975947998883451996617980190082390230206519617372140011797680249816698967120754992757628588290375763758801283173825898839761629069444019210133374600408056717056648299143324151514371964490738899505198800057717914403456669234501439447852155025723565182112598401032857772794826323062878880313020171295500392106976303241730641328524312656190556831995473915861101758177919253836604913432859378855327288045279548469218093804974712333439825759874452732027383522168671334156623573109750193760677016906229485996721185342124489541306972115398747582975444329131347901610375951120357193852625544030611799716811227977677284062510295629245650770274548338119103563314117799907909242898295451355484346597184277556188205549357092470921170500203973075397247705726782033380330573079680701123530738072399906895477360468197908694028494836114819075479582687312561633247921950885168655664692200642322477543960758018828787028131650595291424088887240982699543901326161685223816620553332478789553013925774535810265434821172168790509582264863801885239147702190857877296983562136450755615612971278534045072523450697869464126083589439337904388635722597861762826594388595736218698174058495512452878197621055323700087100138290398211954628900350976608061777359615349822980058911499802589718236690856082714513758686536893830686449955833598182782495306808652995336597427451896107903575495363077359245059248616865872809573826127426679312583260874223080823879751484401451307425776402903278451833887349599528161097800172457403759745004782805137569849268068249359449061826064803588657620926075507833099436374129186059029267258926792623335551248688128648325770427820716800473849050352614397961232176612230003220804711255341738244495532105576087304988720942916936195964032233165958679661521026999508071605184225468464852588623188397595999222022634016359031441263238462717149537983867086297974540080752891013065642276708882454364618635721867521605816503308759241003544384816285573094512074316406711019715069138664470886061653952938402294227323061051920823305661133072966894995957271409729174261686210590266378754332360150184042901399300594215183092238514519363770689784622145632541578757680400967730815948628423515490295336092595065581115801576226528336257335383491695128467495411538436268636042602121329778044426084954660388938318395078550331734239562727058872782891805236500259606415647675676022915546605349170962567629199255837778888519646462471819449854419893260666578738323606673725711871716689580365837538254392087047292408607690763360199860569257756758346153418818043532035067982562351995773912096253737473675578234189960688286158875066527043991247046596009468179577287455935744276240326597272026375137810974373957444972546520504703564470619270274467624702851494791790969875251569796384556267518134823911716941328796290103649357760957691858416018351054550175722859520060065624487890978909996816236369321653819745534768960363067828347509186616697610287971841275186374030519122454993895538352110122464940048945562291213333389660700743965851165219035343387449445820014160286790767788143604274434306030597296926630412608795678327053709570988954180591959229463362840367129009919757787736463567305887780405056942574524264560071751539177012665978270605718119987848869211026867760340525085544872883244359736334880209423812818261189247218572185730991421426709149454574099605146817365096404302668297055874878465995211821870621091217534663589403172645451273171330538786873375388877131530189033858563559539451225563593911206545917647216230944401440256556626757899827788489546731880326559703433000914204872958187747996840063494951205604811394600642687326531148353742560952990042911084089666731788334979456669698506780423849587301238506196536295647998486244136245100413755081359950261074143635610710413116853676051821987331572140898050956635575775887846295456460817279761299832193007451620530092455902387853820375870298419532106082109458882767355475632624738060928336056123190419063594676084339744847756749714703974052469057315070505172560256240090600539752904679672124106895229370998396758338792366740512145406190735914124045084325433251485893539524307030912851848329297778373847895872107859904435667758720885968303676937205928865267990305209970226072029137526117676508211582759060336145387349092614964234736644030134825477147752465893578835708629352772427622203435138950499655603763173902631089645278663886576440951430618059596506451294533416713195895654735900930838699257915427538151239158822812297326217742753899093909655547238025342176761481233672666326001968816434769485173612389473527995890437180546468771013658645022140858934719360676162899594081170774395561550909674717998366394045973399528801174056558844914196455350238642742128166011268804755912803277978954699787366500776525469888530555761052463579604961469392990252164296964876197131505187188839801695645851134093112502525725368221137913849339637608373905972826672413553094050298394074782244032221326800093591054667369570985186018689434187930547970317657467108706714043398466356867102576682062825049254927962233708412574977280773349777327959873023136786169834097679635118163837135698403466651711893272867431752116082848072085367467073429524988494371843744371234777978980790327095305332277751514249257814204133337919098271352587026104949841961135278530774800005141723716893593623279836241446968550389006175580934790100119426403205542115564969821199391430963653823177805680988372902438273099153864790892037029129879775053703133347518533485568297876434197598448643964109531365566178156708778306478589272010588783837178485787019743877127672349482273844636689709225419661231762107501066514504547754062541718720799437340628829374174942230782471056128895382951558942521432718516039227213126083258236560578419900647889895172713685501578504110008250666061238105657098862041865392597306448101053064292245078432894992359942928021679453938486797929693935992671182402403248680088843003661850950013634423895304428792663546332304833010223531493340019811290378513666024506385890968259135132633259960868579883172411877507789521995962451676122187764327409968745152285968960829047363460461134137958907613008945865882970942208380239548087062692140874230887488304117821494370268341050433689620832326962897322949350991401572297517132351324815318381906504312460005327350458552248612764644713988787045128303689825411904984997894872741635697949218702644511793952307037558965865666689934747217830033722981619826630544487477657850977445977817441231572833705165205426298535917121698259137007725758983577903539518508057214083758983001242689248021253171850841313408245667723924951749206171337443519090640330356978704466854424828464201263067890539940983211328161686590319071494802342983284282373978548294400424915273805533113587154385351889445583243713072011992235171643840855101845312140664000775212033265291280638790192440352178206921374642529310544873246187379747662919650715095499056926521664501715204393582102163233374946378870487158096725588947838390341820689364098896447389265016959744736174974322192530269727703708625933541192768373128914705963582424600029218803808529225297753418505026382300157229292546860754368200170347872162862894389982354050989238643855575292534909820853334691811633495736176154486944664626444994524441762309535110475389887308518407468891383372155689699953285681500302120629928516772675743437314690929422756102258125155991900167657501079995898205596886043268956758237270411893879176669131028620840099108488195179266821511048006220625355718991007323498802800540610010371812104075206255857484119014889149982661170244225862600134374340978518643454369142224736233314988192151593264766319675642166730584886436690060414981913053798944381393706015562891403513175811778943519103863764147215899882538103626177046848700732275427442732784442906470907712421374276305114138484951095552239220617145506584591852248624137441155382232753719855648964541155536255233463227413058420380478495641041729852554397446739547947172869299914019465379403742001347360675648386970683576217376222505660552307899679911498208438656213501854650411761237112951127273349778036727613979907281048393467228966587595836578164818419143221099636597219892973731006225151610960527630743563327967992381095399187471173009886705895639608269765449792483854310187002426099733129881215178685235900071682313955765713616853080010813689092568810365208151501896337235500428256102583954908496692057128695520052789312603920109972839219800590390560914839594147264022283630525540121890019779039884056568956596468756810268465447589303583340432285436400266595402713285201413703868960795462399895433112758551766089321098903805727776174024805509473091414370075161333210176829589828553878904170947071729499538102590331260822335051075266340049729506431339897643710476553587238491818171230486516090181770461572740479406257653149281491045141682654219347077087330102425015783220232092832651524400645606107219402214611999514317071211674028771766733039889707774282130230887971081119450286991127095925551898301907257730319291362771847630168159020062614694010770505131717957680024304835796237060710124147315979066713625561302914275848779295437414448213141244803539852872503169623594878794008106725522665775520976213580154250740643155330642767348173575319044065203544023887348870000180722328495755198558608419331685476050218905482381619288718533909033088540901815005230815774880243016596337665425935416985029190002054641190732079561140025599884353029046758359230047450908195454686576647388954460894915395936466986206690167877281560287506911192668347712163827175454864384300845739804823144207627686113434170772927068757540224907798616347792874123374603241649358615153518711170357711433747496212178616141573226232007764350097679616761559976623145360061082940715136821252049519371215806294462226319397641420363608850288164810298779150281876854940473158228230137807612727092456371144347715283852601730155144051169235641189442583192623504195902251302156761631191211203148697998081239075430289850761171129264052804117582305425312514498073554785078999842941865482819477290089012596478015671005349937953961643423211481615677857177411397764582968266880786789556758340772443273177850489344640636781103159408054436351777435454991171222308183531308521367700366418586827723791846644981582945071912672273550380224100867525474539083283185416372939657251279280508917182030677179169118131556660241827361072068429397172996380847966888353616073337684631718902574349930690248599012227234792680578812838182691789264672744537852453242063268902737832418677852378600997187241283857761830672107064357585818046750861667631457041603701261673793146530604904856802311828704386143539364558098426632080381228799444451566889978013363129564681648512671604090494083959380161142568903701586318032432851897148988133657145690915153178735561150681598290968490487464992666465452663270519762919985145250335625880888686735051154623853850755111653137367862336974858351894941505799163939450355258620319070798136720199676331215483476347279686787877024257702041169445732135266317784671501236596811304322381241811623069308802477757896683378425954147968750636360344914344516923941117667418332258599023292287686788026427505561937898657858788471822341163584969350748277332867811540805902117207004010057357590286362861506767135216180007556014649931338777436978263871011733855564167060945201577603746445958503625989027366211705442245289148709312329197643869438035453756091353784019318662291185101851946790092726434378263960913379907783825175576344901670355534866585713231221221184750373082585093109972732706511858332001675013377511923010150176882077321686201788978004161636720336082243563069411207014604200139878955763480149484271679603700904128012340289756286522465298586702341360757749773952669318085234952989355283568290733483599513645142718453867160834017478822546026456973498750664743841711434377228176276902686549509758228802810763114722560001841793498511372379473813688190816505890993001193858856357246260012687056263088157287315083701367431012442520167716975490471087707310454723533699259061110444890638116274402478358746213152238683074867911772767471825010342355371336238397995832321388654802513677998135168550549510642889551198119106327371286231538312359364094822287092788176040746919373398802599012986546608121581194122425187406662976468847707311266994343521691535098726855052453575223586091172231911366350219248296221389906579825585716167263241853950465232047278309413297001194451595255085180329371339198298031686462442626773318430521096981182667022451799530957774291199743774765929567072824906138778791957982088294378532098178507323837843636953329052828706014096203008286627887069825188688758372340423236377253669104194954858613405492855853405190532337275885103513186195587364633889835165880576637905247614302394106990464155576836832617809006905915615500171591230739306005298783953309785617550462900322755577874569114051147000203667607850090557437372764242757632561844668557194501118302281094603674928930780433855526865842949064755475838516726994263274275766734837519305091604530132617865497442673739486015393030484537299641759203016308622348479951619924209265004217514283588984190234402948060718317825731698825672005565483916097535866170416561785975445706110437811770324319467185712482784512620439857745902708084675060953316318844379961441397084731253181395988821415119415226633432056542489291041406036453381619474345222270044406505302906692937774983134240971735390133650005753457246488676262168339134247341420624487745749279196715936640534708505491575141087453527382299661611596769581032097887488863376923164921486652802551365228767421072120527571414916063527603172611352489243460567313044932652706322177036612778386782921558721534405304868539182986180062306674471482725482079919903925464086066697861785210870987226825376555630106885854018103181027028573726451130270354896750797484599388807308701971644148264891817394592936738955249120851643224908958105691712277538095307180259159376987765886497113525213991338162929710111142678545639797301718423813805730255323169264197690043587599999386835675716116997510693011690738414512882794590457245441542574007641780974129165886838940394286017193216643113463625419127118767642784341577779203918186040197286208071157315321920366829029387842527470323141430383377280495980570398043054355409484878039189155107550129532767185246235511064660320736472957131372968983320399800759209375839020032191656804832311014588551823789321923271529803693845914666187706761315638714251081587098459405857042889491711503224191473682968058041801884823291114191530694535498389688527218838885408123617085523325695073657645299613963863991080082137618960736753390898238974949996033813039288899251533244585727205571951405802387316461586126116115866487598622570902202963349688215447441182353729888447485860965079230892950546774280166289643863737644591445935281325327820575789009437893085397291332852226703606295610270353171272269966578268179256921929139688375313656477658369123310037566083503392640034101740930352561925194352973650004682476241340175770081474895378640196324017227196913259951728541704265065965219158505736902755645325297422393646896785322563597207261977477710397123849371641391339587469917716583722794113364568286598684079781782776305938544767460603414155558216636700029285774188433033743768737752157128951308243906097249602863602473015116942718206892045723101197578134731687113838658016265557155983412250438984318806238464333628822457471235058484649716878212272653577163128184428195312171303855392561331557803738544228192811941647594873677120964405406181187236067016799116967836024072690208273397431465435734505690836138314216624794389748734768370924364705256956310313339801443019094165968528690045591215911064243259602776881478927044080132499303159759569529329698552449615792586917975049902134225927523379823505199822103339679664361487614997309767895719078856831175416637092263065568083916963626527602996915001519792736733262177820044062925121390639548610280313084048376840381223761700480600830919914578156066768945137530943785413236836645351793994930045421924484034708092834997275783257637216102033610220376718447102714636722140404837529418441388814637327687323335365740090692133211406740710002494153934025533479387579687510523194586290486941535797395339608950753956685337122525770518263206514352355806022070194239007011773541399771992112496211555261201300082587364348175632104060910670653851852079642649342956751863041769244485588706817086780551592291757686129152676809334597655548807857094059526446060849852144612580906382692437379544067922768329637028269325446520319643201541286715254547569912922997742275152011173291505112290850126717466610873827467525504309260020249257733437758253096057387316127379699195810185586656068379852304859997393291969587692890312792284707343410854691799601141857201790224767175642919913382456387315989658396346419134346060260045864936112558105467942385953638021485224682470683711083072653018077402105314817976163859011988261443792751422268993802326596662461359194063463374186354368194630622003123679566047921665864971832709766346272584510583894052306469766696347557199686255043143673069165025988325179616367518719347018983152402270117616639764533093659130065882916884110921096097401482298592480920998937670153671212836264344140217301456366800829692478662119731921372221228382908269647493915081009088330709535795605409501073663899769254355113792454147652780121176030507448530331223210173647435200826943776366669980724368659805329585070612639522298541009806573158408655711731860877306805742227645495908242607679026516659798104138668326262162049100730982500238178279728693689374416276460714418890538846120767921824558543748369527874125477176920067262133611561033335769445970343542892142332420979511411442291305643585286379754860220948404279990090947340804248635960855211576046508083714100239525763098955649655453978543565824043736927324055551469424877077724658483957641779141305015037268580533343641133416280389785040883179528818374854804249909412575335306476780851492144447193415278106055385756944779753116867702046086866203781129777548917880032798968071590427589577209549319470358877826735645220613399057030608953293053693393260622894777897524681371831044329272983071186331365674835973498949447293936390507640439491218076644520565782593593462022318461628633817231982664682618771895489811256579370707284824395279193274593382579707688337492359174517197091739575904553711934674947823421743812764377271067743548764742169396137280310812080282967988825393272543314847567200925895975561315502485184505664970084013076004058763182696028859395864146841878721287296751381471919167508015357796055350862024311917352232851215881618434610199758884376849644073409652096365998946002875547100978240583066342446291885383049828784035710188668968129039201139088021548631411190576336906150653937587233409691081322231042057355322218515494282276294380904126036449069565688216499223926370896150850033591669509917927776562385578585232886670786032915962213201856665135174116373093778603737299582316225600135720007477415991131651595090551637166382671598978693560622033311357289674192886416121612122455245506658717329676862686814677153253849306622288666504776071414132004176933429157048079984338382800746718231277737355310409338620468295560673010661655303953992291904104944112291556507408035100276149501500516315672279692259270809054296871432811418732120472618121329497572298802550776110861897773679450347102955520406105568741647937793330517558465194176744137474332930319784516332784265658852699010091298586348139322011841433773236490281966965959198169985549227462803483248973111618861386279526274756350032951355444400226047224102022777981568306028338372770056605552639843241607422032798631817780366122588660768012611646394008699542953509188643605887531004584137449023506118374885227769165781264815966691077529792236317321185208343747788890085332893613110766499616356537543422123455024051543771916033322596387097840547363632268277353127879138255617589816301119136477923240744413167802146363789936582107732847558968969439049137533687608813547789660128478447034001459305339705014190144573804505968986846997484227469091934607095801255947937532306236591584068294906373264923674620339458954525638152093434207614196483482928355881575774450898388606872717829724372384758452732376088941721570632978011751673214831687876239337064047350092956879273601311503374886081787268395842483895777264560541386167773601670909934833715857447364935943717767660504295496968041592572154434069223211796360784905277626812499395476204602224979844694957390377419700802855199686020889014929773355672946187150408040688616069599825447944437847345666398991774018933312669660790468420506624493890645865351230447442752822834228969860559597954830547880899916504515419509728917285904742637245815830224733668239171459084770498919510616751891708252062221553637082942182309568106671853541131313030120466519099688507663661937613958502844354393267823751643080118413254304175964207021892635783645356167359375959502791760465608518674102776746788429897668434618347774846051164052475827377036193062529679766517823200000799050742393588649911983315788208352325347007303901847915968831000684293117643399324088049852959141481875218118435710270622736286610739340370862346998805176686234145241514996154315823668922784924032398268448614569521377198095010425792495750425579821336154750301169241239554506278404046515372714027359423865588509119571349276840745769942492528554190397384374423535312139990137059433189217728957269733078071733079739988762850626478634663889975033297045796249340327741444997503866170090777928079847563693676272562593318024548583630164203298743343502848340353829888416131410582656419013060284750648805048570869148132944899019832673446932332855367619891344683962452694577263749849465643097174196742102383223732428736610176119353600797589888674775497195326569076747706593642323132107090775617568728997636490820338270921591881729159381169670548763640204007083885810040155259511267964381440887420323809969385767002207634610797543909556177948252586365943011376326855051184688826074925010333607795606098302380846660127302965609168095137476039408872820719935542034984625253659656291310516881428711453475756975244939026099748517479932926721615376651175832957776231024536420417133853704251383235485003875829802819070580998675552908954630203510514237389649226387015521158256888426608708900721457832175655296242681733914635384872396866827213083198896442206314711943788795413793845313495462153760126477531008001686313408070637192561245494367046409638177999630849670023204444464394603567633023819749796163515383397455435712850805561407703641242464028740611090606070810620921878789257035265529884443746287831419871520649847946002204011216566274700931741283320665933707483124039287820573106475555033133451819298748493865272158802623280736049031168866978387429434677209327052401165491694343531504207759974371100078603491935428005827538616031550562056242316912605133764502359381595865042443954122724491133810679150102514818765222792193920014790621771800062534959737998925874694084865019167051314131595507224179647843795389680077473715692607328324307696414719317537397594612495808732298852443295560488715554965716131227605577924007067063535086272230742880418152154657882338731309567741124405185811892866773571477156601129364267901551049142504286904329682639149259100128833944364409075022109900244396099883983460260768245111826487317195867446269864093879077981284044061208076493652919957841236389604486769170442383759516440183929255839347141677983647387692892905446406225604837425922848516656880001133266377379610190087018652921447154207009850206064400221672356528531075430326678927081488781204829547201838909559164984870838476110049567461329464975549924322174752234446787063693727623561256693401665353484568712398997607105801265623595777234761609893922370923356350508785820413999696742751157912476043969311273777754094587815449592268067187946156818453747967947529449163975761051005244647184499201814515073322973568625000554322779315247277945580628426487950110855818097744257607596902728282389427347220828006756680730943921119133909653569462813673650523503078113400055856857840203187476148161262973984312997104201215746719380296624938971281576462483706919445093527794030952081981036422923164797917443862526292815705189401800775831124717654266661445813363469160351310932316183486129668776655721687243409366125092281611268549732030891992772543706763082482455362172901005766810009839789428848924996276022320140565604904315957315315059819237934896492103507044717742670925914213143492900265195122711851633323566582697878197789456570927119717951687171300647671980904445040907340683278541118685839075200569002586111996408653961888390080395184925412044292668153243769526573979564756550619075699441450490479071595135741306113036847872501299327082313687717004404444999679167320687181527882970323014523835657015759797421923142701004376836570230342901382503477278757785708881488247127248117916342983289554089813351015081397131284544659962381235569754260249574321118356872746840844438808440364630296238270543507990053261154686040354313970485187941401221353440407051264790224028484008757427244168835040027580800059505736308216129379374116892636740544585185216714218340269657646568774422648032763102527964843944751977549729917897928726551372975523587129745012551207157593190107542345196990438853059099862799593976928680802668458985855924906123995718566324383852426023584249495418434983596599740326400327374464937216616395823718359653996431307280982045208001168227631006916609660496213191921195890523982165110601825502754182702330926530751311138308326294812812160139040640735181421643702020139966679141886237669283884876162235555971115293411030895935465698782342083619898879349188871183615558650796322708980733815499590566198521242233250272717601645609148875944398707059792913591325049081946585941003904240564923694514806036913553403084342742770176535178851620235632130109402088647370735868383418937026932129693070391910853499013116001773160750537148272208371498830196688608731780936421399938564178799049755276808939493072530432492151220698273623574549450686455154008687109586969948922011996596920506495569064498762076870771499455228385066506733589389775188661981335122418676956454131798958871954335803236457913199722260910874641439315579679369426586893770564243837742019499395341175094919290614586955111915934056724732432084465323554130150559348260398546806006153900365709068385974399478892972162986139711449737732970132784214420269932045295606781098192364674040442207203249239015917335809501810074706381254933457580720419411461276218993031684875434401086483261035642502625101688425101016682720404513765316373224216262668832518945681369202502453823236562657791151688666192139086931051881826940498488586816226928346611465268620261766136440007531393632777739862644731076148925290210681431742863510114150325399451589720530333281535525983617716454187786348346419358631674845387407159175113019424322422197940657119961427516378876920717791300525944950726108449078103723982630075690721203998188896774067199983899805595195054447998884354959007139789371285571094046914663392567219672803465578697217812940380536561529013547590026029688680503677838942995219917045140939942652096585119443085230843595128749921059417449697028710333633545286667714711799475906084125444376570407571732047740996814806293917854910061548865462900724868032345736047800237510030317618784751684808450560816883050621024750521534091632235958508350133872860246186293499737526364776513551040942895554191992960283451155881422705914069368601904124764801641993115255634374619274546383383610238416705763569479668880280877107433924401823299960152128144454145903129113692762998257561935882022029103859753271701432757317558555203818826172045359004521574517753179889554699689155849884265737782725294933778095518383428536414328600603973270680890621600574302293753839977826478748484016696513145608482815651130735876197085827612418658438982283901125042204173705738325995715215297318545809173753033780045670196056681691248265674306819629759307203767730083113478961534103367847764428181906248013846709382739527891247476240265397049162291849562918927326913390348058092846817023675127229237118443137002346608264366475117214924176189046084035613524605692197138202577838033203141207850745490603769014823885639382643390439833594875239997541665427585975018374326815426420732234946869599800776110013999229580785227825083982335564143435225167701419405467694129295884051349559330323399662990710849778933155807017786492053321713711846029936582463830665107692648216516709071742347666505772168052307095489331328824111749318831956210783285816471537238087408351314265015308842628430797787421182488164618456189789020825820230962911405230219699407713730320232701640608006439624496304557478575015956145768366041062407576004940016001555166426908781062238930723919803705835682023080098622717714398874846992951506626771759898437629185338380206067905388257115697396138753421582176896921768064474218926806086875237281346609370695146506907983390745867325938253550724822063605832383597940932527354285389375917175179346696620481471089846442389973528546198014303300277849026550959111562045840923420082031055527999236532349591806727280792772831996250114998920656509021080392236711750962317368729274392189122325432832794526314646201278007285757085093699509096880126443150989503360069743110489904270235381351216975337546873461568911499484350060330642738869816158263157560364741135267426016300031703923492079475836671383823832715067056911664314655599855769531183727743610150711735982171002482211036206250645142075190673545245303000517809202989460712793329149380405620117419310235664687099808924487508577164621576261802860203978097742766390378548850595770583972100163423315277391734052953488882216415068662288057404251078586042405283253038372505609964552249212027235440157243099594889588892191994297870758361445093226176146416319468114164469650928458173805489357899148493588984626968157837062750874091565507694796990525741365103764799093783586091810183831919569725550794301435919702974134797870599030737637806858726500286812695668567610662731733978859380266465097724113413410335155975477375720715356192987687261338681941216620157162723839101473154210994538462543148980951144476775959714909649569926043807412051954852100857814622598992309500428720255144957022648140952310494135889294477475931788919871283651410206114100124141997819381108177679732187665519827477788578850824831420199296573036260970865786876079392916209930773559272548231387433662015275688858837426934129989641589852093665237967693030238653368543378794798614230951626960923827966540255978057690567429768833638825685046456791308710703362076668929037061898397696107829214827108731256769407300989210273528240142439291059985158498389847550748412916804271408840543075335128062406697741380785128743303634208303638860280517575831292648470157390883102589639206188810003024256291845629043491131139504974348051169005381205530484897870601546625000733657892803101763216337630953870867843762942933581747819545629939200101566502016689946658457442124468329236650038881984923098158976255690280292761300781484080725826558837026436859432434055196738082900542367221801006023085709683826930260177684081518282219941456414140200205234770251296635238583879410961053257827607122956901478093659391933948637137259092792779961018472483434974141562644905963668124419152242090456224216800541557241980615147752006247038026159090586134444724708935744759228923200399021202300891909812152899528701252404554945782626949392391839271332868297393028359650695248881269591782669095161265291580667234668808123624212964031768740167557491652644229117604862368995360085620275789844011012974493048090729212339258374612700239396363001387124813939838293662937528703359147638332248808457489906312667692400223630272586433767489807194919495984325334828829656827389728121425123589528131873260530035040666397349782969559975891839198795761169077811010557932011208723779070697695893521165986510530613471946731290600804267765691426359933662114060090247313885086085582836609422234562770324412385365380248891096051199923457518459349107331872362723873335629295748621650591614264367770942586244446109810003579877588921892294875208048991149362114150577964557053660436909600855579271826014744937907249547199529075379794358859182256483167840789020064652810664449819981165716441330294251832049918217154307606540643239311733742297079422233002298545247894769586076476227418019277327503819113341249203445774099362842919999324998854544689316333730364199478352266935838529931624769060771404991971740322774954158534680657902105047752310459318233024643319600372016361284721016308293813764004097933917144406825847167552784981737897617776987656120854220528461996291793952433991722171070781703709149896139883103475450411253038557146815962960624700075050394949149988337152940882865946427521360823294977306293299597268157363698670976086970265876664302776680531180281412624308247266945356398605468101823598842079621249870652103317342020107508869664763791307704104299008258556661579571358282552153645350217389390411094084105325795226992276288913967645433798589271611178696466815796239575756316426664434991081501738524578099975934690595573618280721584937149011900605700434698865266075049235194599096609193063250427242399474991811756887772367934882285245911192280620025912154154147500217618235925720604532058472618171730147329499399400569560170832324044698367112895337217779928990250087939498681379470791798110223681103764069896047470682482057226718286005500643126911391316624975436818192928128028084234406393179692461240980268567174755312063926340053548520309481424454726257612945160738773176013327714986507563554297582498999469045955226368694611022459012535206921066697318522108177335982923148817683935709787848893205993471756205742298188131353667318287527736594200380578552946458623644666405910243977967494118919558016999665412396179084997760280183235855576297513371570491881983044235023991311931100814737855231960700435485157592943177576502407233030002523556136663205187973079178420948147051110207105093118974562111630617817970858731860968905850451498358709589135864083020711943210984761684786555264136986848940388722087116981005322699670858668645740341742151087089923069916657266116386657247624698316362833543116511100098116146288240488040558697799043087797776501481894584397638504756201923260944369914086719614916897680583713528856630837951215912166576765695494461843798597399864201533545776186538561702237877664071645621311165803473767126539885094087000765724585058165808229243822060878073374271801633936665342441328195957305572723039018580528709953753372373606513614037716180379186458965326918550708805741425404218836332217557705869158213038420845046024138373965847856284414183355922869408145247430329657951592973282639074844663387806314477121103429522407065602340935591154746383568984090959208748872817192278617910271548052420130488919743593759886682944812709461034363197218402701464644881329234180485351260831958538679157239207642294182338488550545105266991620583903925500375521589736954386214132776931268720024218228877642229924403565252929531753232724201521733907899707728952883571200545724245509850300518880724179308537935337754465740053751227607947907617256936976343830638090244268399947390232570307253418098207945355108712562582985499197164226426160112121931141083519867603963647301465655903256433610927209535671762855337487967925711329248206302317150573573032622519286517643787475678739113375222841773999852697875308131417654607816237213748143048077783898474264702186319066145596687704484913793364867214665365412226671430231683668029545278004226892622484509437912202089010464811620533301550797353078651811568769161222058135119266732966239195411042220932795184180888981959199073518299190647240009503386268776603779218599206906455068920614800899337230593653636257842331748266267893295927169253094424282257648029766514964677687941315730201291869423369830176204626923565070402066605730435331794809316587640019531452693182415848339327456790226417696340420410143188273269234705078854888366219293854361312294762217342570201808074750892610164034297113082441941299774239804483420182504498663092054583496020805271634809762400127089963858855149860027320795713564538059809287296319963681716056296219139226784704695984370801636892630993532302354139495460171934283104758115405571782289384955061293014349001185781865016552414789867979939697922193292945494706342122458006508153456514952297169520446462119519810928114861561291104842320662836822082386222641963688633793944472479685451353912968074473224653272340979482331543947399839345574290215646776521995370494540184992143100985319758010978961915006654518861331477850195587375982175770282672858369408043308364542554485333801375813227858620668269415248342228792096101526758076128067077404813298078419597898335663704738939447418944040137478370044195658278569018319752342159185184681738593367183950139316023040932564578874997640787214621132681628977190726008700370257720982278478372240019553711901895789372619679186217821423812692043339115300010919971578045652772876455154547173499789468892819906043801029930162518465494175798168818098467979310784122994793357303639658808803575462335032360801372092521804766128681663414135322199730058473533876311546136372353942434983919356376498772398535129034014101849214963931804925133126414710588961919006365822888668019995172247094688995732603815835621832406237354463545538366628375860564696397221721882163051137650467481162127433322621738894112321420599539940167240948828345936768449501442385287312811381466853744288348007039823090513507762121583604188539780667938246476456630476760678635044905259479680318979421342097673361194467391690597848475499766919018977175851298014793452516559501960291762426357614888435444321616466402561558506441775876473133056445031434848477477093845844050068352636091125594978609240796776174336335651131892822476360641832580454017447486199576327974164942066956808274787874318320832905766771697115408362795179741294495309174502984480242459382917905020148600731896321348421229023182670340996275582031298883260671724772065132860391699381832287275498300758652917297275605624731977524201413760673934285887788852637971673055037531726613879597980308820305074712691535714948701323507746130977151707412460376814726960080573481087290775682349735516851595053681534990572447792348860379384458545186088522283330430244725987021230458727677251099418478245723822871685565207560056140294569992213645584612952131289626761813759602412902134880541508587433821650404906315607810181017095356012500274048337715405680221709667879674985062466979216787000019033548328667507737863468612584708650699277901862858471651276886674139095152574339979235424270644923854957991338244858522437030617176812669123153349772261213720241653118081916686955915949855965063478208702542867427648393093881462003615469642036526500180939437873143650458678563610745586160500338846272544012050704299730992141830737810766480783342221378144451594935398938888769469728799033291276320567707538085066355475852161171272116691329455264121989893063340373735429403758761320557263232221995775495471024147833776765711738336235341245706630637240105429097850378011208189094912631479535806329426937364828563074972158116721840829280124008359565163543214635468148129594143098120329622035055682203994449406907470974887366271590354837142508859666220507638307699343301012054536883154604283728047598151485168532403331253302650737149556973641508627052709117989739033303995695578987434240321739642680328477200378228744012775312581713829497815441667273294781778861949642436326767917244737372645444301432604598077111994247753855332810877907728066938330957392469504587164305443204325562665530418763044196216073929372608553064081132618309622627481291675018720412099783266814607097345444606781111520309865578408686970512477492991546705769642123602927815389267855305118521329439594487716190782174531197517537580521353100920284164759477152021664506171255984596357082176782461223939098912182096713210594403578687206977295900522749581920083855384702027361819924490482839050017078805334440392801948338785007769904400943679966726825041272143049576247593676056885713075823021626917797242459418985440627983138266758959660026951852373520992105222221227809973772863115940815009925663753597695884165845277149043527549839714258211192096307930590639296306994476165305070571708737740285674847949774319460157916659867999213726314394968295274682315303242121704761013602994251617985558909056663392638231657230334607268145382658339665188607643073416982769325040084520615431561375682160745500229823301587614366423731317713643310679640729210699415787484572701134290545197030899294912115323620944184200534126406722916438917028197072973166177206555553715177992466626703372170911652541101322626861836452120508669748027269620211507486168376252184562680656232372601369689221231806793222410767593965850558080362951207965572993551416905704164021963091132731014655438131130744561028303642120391539082870376099671211261422098613903962663348886592913844328259306434145964737670504800902633092388654935253369989554528026865649264986513872375295897502476890215221430902858389278128013638692565349445384730764492215103545229833909227640484923199942647253812275477371502151809337673586714338119977080330834452316521915968386363902530054168782449806419724533225229855148978843254900273835327725446083202765013191344958059662655781095476183044918929162837173691512709285849502432349035206554282115782204691837941795990129804449600874345778771864495802153559493466956610031372130209071662602275017802688802698849760796273742717719518203468349160488936301762101975593292220052852911083289132281400571313036817750672725727516628033808900488431214618499412651914944876145721567429463318136480072544010493999358771072900607478374788736331627973929319476951153151073100393333175342890126393109650212990397171479938921544937886423086615855840265922782078489998432807482134649299814839300123645296557717957148833539609456318261787295751475764393102929994783699845275915173179080845418058875179882701929239414365859725047743440882575677195691680629136109683293250585812766608305258583176815243183770792016357610295877919921945811375443728381750654177215147956911094076029043282608775938403326674241592674150308510580857901927934106098992965872708469129315671123594836882139576154548223504578599048933440280192188430972988058921018412613616871936262943874449716190987052114016334470543444083524420467251228576242244369501683485765167174132750411461249466588441655369595272070320883844234750736921018366314709554433888557268641597608549779531446085224288515385372652170763225109743833550672652046389963792880761757849519016871917461019759770301205478960961681997330084523360693064588395162224541418450469621601245231787537773376948561427867412553781479529732071497263928463184951371861146117554822544812305331342048358678277925204770733410391628333014710967581081348353591915949397984464094586996411517670807254121964949152699617536335771179294226635764491765631737104046533650475522924168116796080765664327293048032849371798087463473193456610247471418276031215601588241419514205379743257292738430691942678595777750233646742449460470371395218917716623921121386691678233906945616136100785406038900452812335902382938323039877050767171318359351761049482666544657482964183823429126107683230453331955857738245269524813655213176231537416399655256138166973648918487051538386167612970214581877559574672311702404923506247957416350129750761643210303642019893955264460989382713989601435394859448198067822016794679489840823528612201111629352801239639586043832801362461363601256921792011388839166669238348079640786471370069351707341843216433425950681567495333128091527633725334997441243531369230814475946561714512361154286139387889639702899430729375348167127138397284350705878929432292273400717113383013441719354002364051827857628112511432443963541238747464428638050248715371698565621995491334842994629990380124246528681697369802753997326349421985947975202406605218025291705343822115914511183515811808194684208241677050696790223674110754778417979680478694196658480800800132161089236836726446680967966717137510398408787423675051857072463800290604895313346674403002136382114961435485838423974794042551965963125736574830256308073976775104061548562058614631338843833191444677945880985735076084918333116226539853315956032961755381987044238531280422290055016013153166231878143263831096442532283618544627481313165436876985202487184424961757837683947896921323929405670097913596216880478173637635059021730244717682678341377326762689357549919728329826929452513498978711157338134027101783172133884598937524428276388328609381084370298929395134062240930748695142952578706820324274594833431907531023940100979628216891533985254695212649042443020973003828158290426335297296646543236865145628361581810530350829457252797131949172542309565165301147432454150535219118156467994604958482846602688126098960756286826434582444487818400276817514531187994201323878051785206364978298015137460041998285065909594559319436450391844735132873953805825780057916609520451509861618625991965491363110429948153723456708302697871222433948662168108517305723241630974100458226513314067870527570390395839052221131159643475839380313879161184779887874589856435146043901410492229128027353196901357779952765108982746798237066648730416036476146391400626792130430762496276599827715863308343206356331125331241760480337570357108061753962982623691012687993631221466343834211057583151313907822284048053912001384722512931033620925100548826820157447942174349713718845401626582430083658698609767882170726960371093947039172990271765720069349036447598270477469821330945077544397334392418662709846104726772082274644745058008244822554102793062933028139497411470259570382874984235508982960118373270727839293065232771616605537653952741881215186083598520826048879424500207913498015874538594883241655834269658796016483408757065111909177238161431837387739897646818094170221683379844000962533029865133312478183906512595233576107052434810432131339497997330821181738257310233315266670726912578110154781599231285456966784213522196012484726756380774373885165372512758850893595933769540556896865247018987617295446123909106726966271113408922419163630065834341476493303744211218519305526578799251914357059733907805960838946308819187750009844442673155463447995697490077852158267500482437556480474746980069533496994933323471367046185185632635478753343054819987015602549446805148425583193266795738308837890054444467277043934685845227985963791247769231838053602021154504909350669318162063839234248318236931803259183146226327374282660561806662551916600423111110176308377379087275390502795156695749909767386431248611876147908813605302582460670179486056156230207157531022092806573475081192879980960788159578022233887748159960926179399134601904422067203577592251981184134257513373321959873766183717598606873441886563004932188589258927199229656554838473775581940112575895440311863342849225041411181112791654511244999335193904177596416082233016679196293193946361923355824588871261774029333742302983336225499328708615702033789441021120811102483397181080284787368229221323441378554662838513012351899320813694838016645900986040885207422227693841102930459757265651713895433086802124389618493193547178375104910707679004471975552399664765933949277260168075305807807373299940367607615927672750082519005241730019740960461562588084264102669759848255684273261392946324051982631780269024247712467065843940984932962657046126701246251854263188342833312286528566308973641856729050763666283594246074342741568657732133035337253808983925675651883844124211659703561051096581982882924316285593366355795524568616794656941223796102426918174921875707210841591660368101148589863471524947838507143614808125789343653664648949640746017232110199881149100990924924115911449699470771109424524400680769620142546997130890902887073495969254814046061110691393827271127808561175369777651606340903482498792528011046072042642215526261611651299747409007189869243613238066132053664217968131021594377533870087827802222006087200779142368550216524903936859251707673703358521262812237147436928633347385875171303719627482020735557715602930586638602245329834485472382022897103605918917401353273123957050363675241166016299486335391617812948935609414913356737223107167464733991293076810342982874910942799484663898656118315019703599238147016991465622478983845250975526264783622685855212834456156056540095591071164633951361084280289783030154791068923960675339024921329067134964026652598302686746036033132828734696938477650835891553323520851210794102231265626927186737578489905369531269290764347748926058161840834038072914347926311180870947437495527485189279042793949166904672754729153104944358708507239822848392215597642187053488118671415164177459196822956220195438917169379348367744900836983406077745467974823920580818169823418484291209202233011960668598059546849098663366781611319591430340831343710001033056276460097087553200987611022647076822576295443401245917248380360290424055676309600033364989000934403602550393558174297042990659728743139686725680745591003350223436815931571889995163383964303711459447033408410794068557718599316461189341051202537087056742548316022152208067549662738922025252724177645142163542659797249750832886466046275379062790441262855060937913370804938001136853475403614623455271965656266136246000743850991686890869581517074036623271171063612272165663423071178240126149002212798831589066469440467572672198611129738245844529664297322641871964681564714204001026666070519370192028980692704818796643017465097099099207234878408655942775973106879769658668488813620163579909729644369749067879708294574698273094808667360357784912976979833695865215569737114699516877771125494161624308523843868786271775665102001070972962202991831302555288721630885189689707116989466600390342981866628698650148884171123887274912131746378828305381434631119902530761982809895509567897280891787913504740732703704778051453073558389683916426614082685004272901563493826759218501139039326396912237216361522595610966237365415352947528623290835170557505637853737890035859908161439585941410864147678212639593438976116459058701674325673301549341378487513708988280655562844160373677104437347748948475995191727432088815999897024524592528804818062493124844164707643052303303425339859448340024634089854726311068715518768602662343452164111416474464951959920109340685679809020105191252324599968100880590672572684088442620999944955176102199806154651556692129050206229286834087917315413940819457174373757303149261063609060813195317298993311895491429458778542229667718746344015950652829284559265468026916167418010507023435722991006420803314827133426643586326907542189045958067556898950995066666274442549236397004027141743488832014775246589385886866377635855273140552323505685745264900723508194004142816414941876878803253922372117205452135762860275902929414285708185435224792755573733271649305704765526407554706005189589242473413400303571446909103117250914988052425807991984724787063974277954497770227611537985098806495190287680558688050308865952793456253650164901571561996423215899442253458635632613094786939501068376229318289981855902247121166731378119969549409656029993919547456209247203247820924872042712204113601597881103688246248569094078049632750957253441033105450947143600284398124740575273026622791756069667252888347950285367177690280747254701434938516920459961988934187432118396337158635567289302305506787902597932398278882538236576660620330837118556190982846152424379102809273072676253444968815099601493065306437222503366496162026082317333996813155820175344251907551906759792731798180373391657076644386447465587510750377853838692325364419702788141434867674644534208966661479753087117417431423461607609639074616469325317205294020975700857904738375476857710662998705542834874387985044630031191255112272369860987376645088736960373905208198370600019981107771246490009388528550631199761758423672507872557308312574500152138305846719785490178375693910762950691812263452473200445648470815573406872773167164470334771362355744276590588811951447374206222599786448454060951847933481483849417949956974384198565537309822806668073063226619893562282100649563892762837426891594159116856869655314329620774865444208095176462659306689364018371568494817217333935194038714940636438681846451177617295439948456337842837777887069002255972914273305361026554545239081899139601140253467644251758577681592500310300990878354478786262828225812513224069565359006714135046084228874946003199794608034987225196294305731948437730657520480136127890407425299824530409619173584182488955354212422168667615044166754188172188918261048350417963707430934891694999040161781797314822865620836233342561752147423104809377795180386853985588959369325620677137447606666384547019675208493644112493290073020547813785521215095488785428534474647945157924243225681710907061499108257462685987489877507222858822503898878895999947579348921998176075488585792123860528520485543945755923714447235774047585920789131359375358132007945249009462424556398539967784069646498073402631815310407253970583315779757555640750410916510880682508486138689996751211433291856116877800927741140574493704690903669574506639739439389816752283264673816000220822960828800866728455735813822500655613953504374278762035670499229091306945145654465724474048666681223910106648804402704617193298018181944198542695475843677158522344021736916993206335898992223269879933476318366855175660039083357750454727624580606500174128538125776369583427224154883418123972573074319785106623582238155695038418475898616541874573191617896302730876985537522479890749945808675385945466256361665556662428127603029021483307898758816248614890806656191256553899400654104539251268729650653483924566852090416413537754570652659648251527246972517719540225314086036529697979849294889078814699258378790669458910018579308856033042085663474214393570255069373579498182957192512590550495446089560577885670049240946236090555540370215733181207238156097150091145566189189514851721001837747834576849348214276399416011670831460865963012235887656926396964280118212404106438295963072189211781474560917914860694497218741323428198718910609534377646171063162111861446067545905830174807566404837262388235189253682566809129720288941874252135316279115713717552281387285324610438442714834579365220974094765939982338317243359697108286955168236972253050597725513115765342270187373298851865239934205234960070002485420792849967442615702149410822366424981800598497302726818029299254554569350285654970388283522218214706227079205536634740984129199404789951719028583505417109891200428521009460162694499034912550821497535851838342854611587792926713628120432807871574776172052014118442672839152012134660247767432107328970686372649576833161804717291054832446796684342970475089448260878823604119909648646803239622536446314421528718501635034322651134607594712862747171836294641892034178121417364686134302815315539808859399369908877381828629970170576746565160926163971309851125815266546001080845629959680070999115724580295318532053941610820378080170904977222939092979134163705883439992141683711691059346106980943587369006431402556534368791507432721947492482335486851483160296110829680590660300235577776213742723304202868152516066781374942862578573273449720547997947373880619943787514130595104485605439585145525133266442650387528246124159334941230945217870758911645962760131323564205652407587888606161759853679788986885508964525187127446638782233475622752922667654006875480913756366687656464008119203364248168538849340055056971821628975367907857951747770401715986813947490987783557766857148695663984777550035896870491372827736195324857553486240915914106057257387536410678520062048375057523522546098949169135299221829557869099563702741684459235440832094547072743396909319079015665003502862561738066449320913783299226043967422273977131368414372287702553771363396337701833616050752696659665987504123237609739672414554358063010626407672612243630755088703612498356120943649403279236742073156777546112236366538080849643153582642416376461595166623188416358967417590584408156607213787515345405869889530230950717043809301671265616483163330120156313538790197472883180342863560683575173307315253441664063076140883610478765513168783804979175907697593856068309958554942340448006945307969850265510882180166615468642211237839911264848386619037128497187474759038334387216814926408645387768717744708128090594721171203292541598781923618452523079284507567532674646847920399574169505985489798588095646879854727422012429726508284766181185774206526300913088232352787390821140429556330860816046683536742120075343963808213341449002039325708984085514204754581500613728083216139961099585687895736708118996364097724953314253935665714083792961188004698784043125547596274087057302448488008899766098463045234650723367426812587023742146467592879709196715004930379762893180539062252938270999979776673984711908242769232155639556434995517958373912544341417151513523774763692588391161744041302503304775854301402705391877532103221495142436835239549715785450665123739903321783629828904367956773071078020898998705863666398270704366003695417618947619597867836407180050176881946606112484980973448793279643435411058856167136402459518102906865118659854082057768716905297068091211574644023647012158684142632587558255294649049060204960147904311330809106939186938520343855366793609557682189265182118725902320901523100147636149838589426831394922199277079273101028427539902355202085164484214540051527842775837140071747844597488332007016466888766091098966268975876330226496417063988244405207666067428787766919135050869577382749973671075506926558076218521248973590595758974430852265596097285751974641739218032181133766400102003157031424892401633020152978183608183311221655422349401844836767271815112842614873910956864282813862104033295438999030867825163823656590004972710063916794253024271482793296440637534749542766041805195583370866065653156094923628110288419723544433431665830625837038323936844273916313115501039450539069055838024669801148652250210874351700899922549591858822053912211953735249031625116542477878006783044141702953607408711557000958874627859212022412873657147432959242717380803727709043632971234851630452451366377678115369199322405954216044109166548576289160280608929834203176620776678667795007520288403041485632653446816539907502937438907942961604911145445988089833041811907060169219435723770576746870932768207272326465839443825462115711067476785510353647912453569970894459336138373327521570536626717355045303218377034672370168156227824416989793192005636485198244118170819663512783237719618244492657720174311901224616580872157487896277095926150789620775672937124544505030423419967684619234062860813942506681014893027656697993950273846032231246736149094667986533900420255910287432299542799710021726254349412638985934300640568443213115822564095628538739706247983577683706773989604076150141925002772058901105469094545484037560026014295228997275006263484937927066871370858724037276370547736219486951168857883131803133095737945137041875173216987632288588705593010365434191569750576598471015969292178091282142226972355581193099589791482075401786665565177021768078769477657394854980910390221103103594061650133377430951364601543075429229535301407028976336724710145617155250678028774626125600956672841651541544709781688113493767276479928399823324264761404291395029672967685737470629639677774744597699390824339125293611545075205669521083348569139369509525278767953474895477460192120561967462570721678560666967116039938346625381199283501124243482047630317416114441454256305752739432034692686491147684277022423268974277560192158407280791798852578922528725006642252263494645052623177896372158597831346785657682639179363774104381558821704483556028705928041490268085123471015446258079731846491819812134901218265177910703201046071852143581424662670004055738788791730898094785532876314560901291208654681282615012871589205000289012917413587094819069038657256758367954306312428813043921385395803171087577596738299407286502014511318557383151296491817130772398136582666514247656987317096008103800524159885527120539271641756250721000511973419830735869751068790800134341784556175690340937946552173497981174260880169201591754070031586449815071146524447609231198532430201684001151054937223587721639578331823787411240231425000561576505855560566889811290778526503426306715038767548239776134124555936562445560524921289594594705887668484891185791268716932385930969024278162696180947090666759913490333284259856152745330589827030011722154473343215583573468882187456822750045511407097295355918055988018467008276778651694755382025762836423191330764687051094961236892008946556237942999442252164475686358466023876189208732030440153157402332762592479105740348955191019270637230644789279433090474190766066388014596130965027520334946355386935321044101990665856163223941475447813033171706985759346404508727699227211377184620077832004305923572241295870317508933342296720746557168766258605990413236957168770236196171251747986953259824285572816675653486896164256575055000296554830041951357321855737325787391120181262051064041771202726355661934072793737938926544909669061267273967893452948084970418694930942471340326733220662417611854535155290469350675052212901047381238262685053260471272563527876875299892522786265141399055404160843111658049045292033687138576509792540462376606548950922798935887342208910374508280351420550545239186129818354547451233593874171435732176620168668410074059401184448230487871089593094628085560924082860489861121067762916632662419338924902347711702030731262547278694653814027666818820418375005943761919757175047569490924336920089727724877448052456074326323324788111350801427887754448073153571870912095719045815789838393819214978978219258539796014875494392789628516869450481924272562174912110014859460676278864442864965873692288434738817056300669199282000483775394147256308654119828113931423039693064325313945852832961396857718898698398132068728561348221135222608806587944588664666963810820071407085203286480109010956062126219371744660784646089442142520114817582102058677926556768167251031117531185841311252662477459615241631429411099724502181498437299190987804945764145592928675812156013371446574054392430317901058701975318193995956494547212410400565851868931510484531427912605098456908543437103339004418715304748181061617473583148648187663444379429637856733503148092146750415887239996819577037413532914824847234194941462681882979893271040186591132101323832065949088999964400139120293962216659435575584208509460938904613311912624611988520563210509239871673708705280979622095279329603043861266468577212450812163703968196904155117478317117450343852197173712700725838631629556868655438140109300522621503857313357551898675495435298593640536766204750324230067898858796968264282228154645594555064125654193385601284503768438799536661231643579309495966099186521234652298602034509155299672645267217603725212218106719663360571984930106346813994969282026271661468838230927632655494025954928436221213180855097062761080149613899821037811778600189216203822066805699528311174170687271952792365796438066891177390703804606809627872616925160956364196704981281821930929875776580358571526449642677992343797663945984973077389826814484103540024125427612558597240576268217964994743362890095264496264654619279666917150551911141749085366921126950996037088494402230050474982716880061132714169515019401330922220317898748639157798164991970014584519304689957897329626555609730511451380131106385368039637493278577031890204931978953714360655850291619965568458007544125443222197309615917855092055548243954315319205165991769005990253218618260578766374486165359770730439162916482595227278064846048762734602295776178439216579388152471183948996970370039365344983306156677056137173688387305193815245089118197857100071950752450113911940457164295610369542901420752868833672163827508069789843921362495736088887271823340921465462405912852775080886342525555535135607247241920498658097321215903992680351440192112145433061143180928441139903739033754533050923314223485193733167806878697388116192461635293305903007093834524038792273850428493913910961420970478870598013265118178098222641845863049558382500490685364821220843042319161748327211820677312817308406515493759362325992048664961876167665526216047318857252206159089818845775453018774173196913607626210251326005534222737047418282866946325904765356918227863156333689509057930745533999946892141330958071457618562481675435466762605670404768824495097645644136919054810426904302661200717096316145221146513516526620007217256630904665871236628418957234461360591869118212636151841774748274977630982986571643613264430061279852313328726291078760310876330046120406439539226203502432795698900960015838042057694240386725598304066101437865207025975927420713186831547224645912739552873690063139509992331386609968242567036092651611289049464833248047067623819964527399430874830576181394600672766532259530316245233402798532304238839616073826699620086936612976626919932944325463935979956610413712050977394654461280237681192413545179053699260944047257634029379212313333477754383570063671034037258528023887632398096347791838011942299093671274815025569455947138683589502860768603739052215146649054308399254706331173520233848869329900048855460037869885008887575757818225775142546208516436642103800467427824155814591246467802251265777444985654817443296309742016516089117895772984867031517902986852411512588328180215344037479346478040295792161589504025074233606428646677443600307899998931818871396472771300924719094305438185513356671064249152076928577381449002284938572175433330426249448480380033501880586747516817770509430315672692156970344284951600679971279367560491839935938651050195799072557655345473005900286389061892352712147980155665288328013311672914451643167563849024611892066072561131618708601803482038160269499579436471393822175958606695016970472480198588250900538741873482551210104902382051603134360407549513305740515425035629909355592400034192998197802286446446807064080071314487404948446317326060247314181815056326053414811669691881126902923058992044234008744982485465488309871312150509279767669677808590680655644312463754444518714463310751569111238367206513076004072659149114772193053117453627248071133140398532901106396969206433582045695806967603493651647066507127510058641044203816010859183486109445493291447783577641745716720801549480846737560763369656839796675645013318179388194530601041388915146155327744071519795068520396320667132347897532337774314201712452495205119225987271437129691298568730719094211029759421649984112974154633007170868645086194709982476075443523647032601994777757876691577328251938909390473420521194671817594304381470295336115583417309059663725810230922189826124593442328287291824778476594171049271704640135280568614534454730062472220764369241115121913170125654618022678450815233383582202918164007218089942285850374269895895461640373078399819281603461390038940519127453408330401553145618504971515899216629732909196472985506561754236345008596541409563342290486905468619910251468901844921566928784745486541822947562998630259180053468787074447829902055636878824996384842590524159730033627227709645413495046103544219447897751623197337002497281612163741769319007806438613403940702975698687690453199839767390533190468760549526089343640530863536748418027665551277703397245550902270853224768811231499963074448674835602834308368585345261327415870680145645989547854753605677738817957378014209223633985421294900328533422371172301927346401087122664553064214298785294435477032887960856240445210629197492287825077522726047597463638118614979982070131167879188216574118086992428347867451298346852338074715532858138395948765414930912693379384922408001214642244644549456387571969723790651925075649194035449980319839694583237819270792837803354854787190896628003222810418574003076694456588638709651965507948478738752838448360032508943339229368087204232986499851786549108200666798855903373544439801383277510031968170723137115228706359727546842105674175986323471695139102649698228634657541467458935302627929507580277429136400657748759876613467085687703970963845320620949822861906695394990063664895973119906819259385405715280964373043533783836956290704312357372109260002671883127106657801873309482116838698091250552281753087216959072942394896247277856666718392135084799011713705420607380483729839813666101770098910494448544943700387855251834223076076413463436546315772962753029566203609511466737502719724641544010205687946997487864233897689830489936508989104120537617855913727887141663161944244862183336260732609020990900469977605306240535500327257282964320685927155291129304623018511615209211523199047005185803135514973629799743392342102986851333557325420056957294664419462053034573040629063417844195789427629700465483256589242961823811203378993336843675614526479715481135671570337804568326390966819577486607384536437566402207934884468044937491717754231623035296922627634189890904038501363605956664940551280080602135215092187327875771203693801383106525980178124545451655891876953311363605053302076366760504534621186243606060257459281558854117823864593477500912419559138811653624664854097129608404666797196151059717267215910101796628166874859019426143512072647331183263110606992383246032185134432921398708771223366719426698681239744118686976196434104657680127865481856551718922179668885488610173749767045999356817866786737257146060970348101923868085890272298359226616819184210227819161368516405320028049240773342603100000828775117042536245606230581379405765421688803981351951984469969933158796725081330614467618690001994841589496946524724851789127373259175056209069142875557014006384844745412187396098488822160204190978192999726089532024026522414764960431452755804254446458491342909480688360802502191388929008664201659819234387944704033964983988038242883734230292366829035724434544543205097353130399961008798961283919517902111777658180563793122671478065825587683120846438127818553999173809717932154089760634906676553818165269092150552778130087546580181005890978291673326607257529040030453919777741763133776027114925222171202726763979829943061245348361191010291501191594600503934249829914984406391508177502937879760530740779057779120475078163728564041486351486113862441528189858834231295643210449776093344672142515885921456661102501673113461944019812220026503219621866235197460997618373087849174952481766836365301319116265287116530674464553234888051416543784851138260359539636664399367443657366170587262908328186671180398746161888759223451486149059309676204169155345736368471596429273816845487329939652816081689618740044270768701896014837133385476724063409316894286751877995918164062932718278044436169975682765900371443273379225076129918465049190274190536629382502239028376388976118609982506902141052455752447257767812038537984193762061187658647829309060381614185567188543546529576627766956713177184753298016152598423691440276059991089415301686536067111421443775116947745875907466491602765560798917740219361618945086336057778482454889534571402686504297306285068684575590748451526311492463760323290353655325527999811250943816144559823058188457905147240194430782504210307863964886904579160149816550159231790014680455984409260279371324476766669568172840781648481893585981751114668302550475837959480674913919102990196629578952802800530272475924931576056598486108325254366248996286290151370281114959761116713504505772675408159604432030702476734090781705033865146460848208173778684466621451323389118405893975921698591885495610392876319568969394823881796505056022412136860676095356076059993739958028646584073117980866924242182802367881852070560163940831060285230600846205597854644747420210424326369266229257504001836284576183719617873873340671866007101906847755518042070034017322914624397976438797008192102458071654345654166835412974707729553183088350368985321169288061456589980985073879217619094391577670289595299412537226979258086991291119335756279853845811890198520883995728111256029361743158779111289769566321825016167559905508889244863708089381515431736684058516146593949498327675066968682571262030462822148107035193593073938786796047590062701851937069572994476011867645528571314324517763276794327973904127319756831563034127996253333068826431121622134222136831186718822023014298190393785362682444858666050358728836544320884050472506968710429461887190290861905400017582615130335922670672528138030506980507628206064609417244083158450989164483724670391164155299985800708123173831635679265206746844653329058027953482279499282363680014291770623153950575346402700227671089300019739951922953043130402097343348933649583388789265780739619269177487061787618728669720622811069781877620888425977308923274030430089208454117218938698069802347864089952134575914535183630017942821084606778568717185694180426809893445920382934854904500692161957540882201750323178969249696405567043093901387767746842872065471739147348580599300676116668162075498278758656094974724878885758225292330800634148430499222746731393048664061250888928955089017465064678351973980500842873715701952119225941840263619948633722780939874071920919999211923161535818986805652000353750413413210735780452969375105555207246548027130483632354996411946189664553949979870664744593857156150064023403635563735305978140435465609632198785816176734427834002828920735790476913801508202078620878412996341559642622932718064580023139412549399307926717877770267245258056872830958221989650726334865348870140764501549269802343978794904549234065573508931022679874693768990390019016415690747446609009445055214997216427341845704232392625884765628051393235788177925851967734735862828919512326481083863750998811473308961872472110155638417311519956060085953113363670357879183107845863029012773139940505176641171694831467470365095752017911075271595650807173098309743629031183893296871950720580924451195031226816725095718757789794445684863921801386435268512636460510822547831862356496413071806739619137512445431600006689863232523013680681399064414336893169846688525024195933557480914343276983298506123069908789826577213928789021822197278509677336746782594608158988556524928421001958641815974780637414546501194512067057778068674776191214236607417393306033066366683172510419668911586312992491556941063322704133494844479816803006116306827936569220891463514829029302037772744009507834295352600435989242061072105887082764352478007735739008476464958842460632854471405275585880747068022263834225493539154534318421471492507557418570616441664222867748624600565854273427631618040900741014582034884407908877105948034158384373947529111874643233786754399598760011892282419845551245240104636047595875071844327025664774135142231607295315044738884405698634300886987609743276608657171505183657122600314701949274140884666657850492648942150405913245028706559379260562830411057218687680998777994207453713673862800528242729412705571910302050993385220102213966468164459704746806973906617784587141348409136827330386877296209388120660695534264644355182454822623920439551953637715470368345208967890278174622752288040142780077787387818148974468543526599197460551917258483397744648684508384839528174495922291628316427182464021218070271307654181899339997287480150796854233218295424951500503212874821201600938155225946590916884506726151524888574462176192409721669351883893658989006089099666856072427154563001063758349694128020245575957520157836092441932292034457731736483429313586738974449022084773222480124157747698595100310526151061961002546671614010293028455655926219696413723396436333721599292710310605257387805461548339511369767879930647872919733644228297567141684505298806402617312448005447019186032209164077420748465002100328348886245300820194487422793601336170928898361655014410680693151432779398025035749394290729743307833793981929749579815525421791627014313734787930237977359926898159074781624789316330891148500541566301521968333342359467003933615646516997455942290049519098044067172599413395035705153864390555455945615182926679809140798664391983177623874435469307460301563915438067640874026778092862851584530896971612431298151257168989368755340361714244158885203116767445666268542246728712520149411892704511337863834209692028715380565203139604422714748927729206568674151550278066395708905088395814914158801457154029505360412121873414578145099881968999111941337888394732266127674886815048314111825802072880271804122057850195743552737284728712909748892805330782210456815122527339418127233846240183366498156632929403758784317026611731517544160045473776551935168101044890078240716725721998014929013342415154184293973074918571566693612522157124555379700815295886278869073552046373484997421035813519978911055419245885385705801705985651826271601359701943158035970519163960477940845539490638368825715587199018539477556361893243607577245022610546377705119550050683728137868330907279311167593834314828507180159786508640134837678084539223800442044875082674492817364504107829812014833812341558977577639875362367236593557536986675110662256431689374414826614934172329982324299335224390282286357161386302983410468332414716513590567946889126733425001664994239454562453298156208136634476084334668708618315548389335846679090919282339857708442507854413726685582029785933288026476460865656337077422919040009326832300517151727859767611341044954260241705699089493645924652806078446434077734556110855009147066393748355462559003396644470544985820882639531929066944346096719310805749312782455116788426366622536668790974099899735508482549173589737659738263438528014533768709268459323494834884511563357475544572881835791698684599154118274396042260092951529137015497785879465529663080711920695366500058012436009822352785780629708262775615186266475034076368328670142013329342036932054754006926829191039340524476341556662569198003859779312199604919860484335952650315574206199911662956621949944913848450105994233611951205159141328599137607734369813860582354207763777330468028778406249796077824183603231975972201775553695324792034306699225938168344144134596601454569776713645186498219156995414734231109649745191762660035671903667603996294238033479479417425498069019921872781270063550254195306510161567817400561371840894968273580247523143218653254141795620503341783429202781647985315824088112043091201715953987454552836628208324455125504338198814155585788629565289845168741884198379350841804787495452185195521632657180201694553787396405787205196661083383051367332069872345762319621471882891029702256715056250062838064578374627767730948966576302120345044041587338669364973901064585756162013335301891901957325525179045455920809999212097834664129647459106702868832367528391055863756455114550963638272912269669117637583325313411611186894106136181987124934729052847385498526411779242294517674157531138638341857132378705642496953199469337532124086594687088167947107593448169313684450183000994714152221528261397963899463717788704944457062109795976505345372700797042905701526884264249756752688376249374037660533685492420435393076684786393193961075046745857605948542656828895250835634787393311961179335084295385899175782806037541480897269976197746091938909136783179117689939826056784365263891727315547720762459209262117710105741594976314788594801213488789731922559460998931996167450248444770305235805011008395441598941459263824489743741236285280451501397663199750524049343555248303982405541681933755482317568486715456338173010172006268827288814928259348592272314676609808783050494792641568209149301398395926167825893170375195888919613528343109416294332182277365693376609409021102619297586821249240793401585700165132261289233270405975076079047383774820831431007278240574855834456765789998872314665347989215566678337190979824954073259668776074484334035775919572024053778230653736514027083940509651815407768562684700283720699357610287515690701357536608958362007051691960319310581860201093692385589931258356456066392595466938215714869064549246762138829460061713356579429555544177083998009094776668281506477377369992751724691465070543146477207345739120694361202632809733933278633975418119156675455326035974501975510241997252195925705796166114799532613110581365180075419742474403031661993444493390598773022857445369421540156058550992162947544691837979579295486943622310091917108988755859448691812016712754910616073933296793756553043447149286862181795485476371529918568581015071334354943236443631156824231154651591984917480830154257049019476318397814528456752624140949433605388210543424809261846949558232728277106197008328749388551442473349100683982070111697867357617414249224050429354081411383163245342380750265308864042299954062760642596975574271992971643910885288027071093908448939945279813282463252677488669449058865435172149570494416494285912965780927186824220936039735388091336804251759540475868170580474829743016994769808186915411250544604105361925386462474338670483891097630831394841387332456500846308422897847400573690757424498385876497649485361231092794450502904061095173554515554399599676306328750206543054581968439277545590633250448736522659315717529853126169447520973844768422555516659093055242698322122902694206463951897590620635212426646561642732321507605400886389289912440465929065478462924680165512534263764908661525810062219128676856381976340897446464811703543553669159569773984164172333781935528964056420400974023123290940928783943742902974088743645301964747499946317480915336770945909855625949304908841262145654441633496047640686264451445512256179925131460666651596186099069642024465798727525269217407048006769029752046284994408910051189168525283141858442960725336327005114195274140159800355857976297330950840293198632605530982861859288651491858188004265944722554314246310261195549232744363346142898874999639278719614437991645233838334981956167051995963019418797828761701936686078567871771748435170265486283346469725591427885839401464881824187716053927667804675845514173059616769963474229998427809725898071930317043683645951597705256772308698719195799423549057055505526883458697428871166468039305537652691093947324210371041037812426884239011424181435749734840513845218124771123086580688667795841290263883769399232053027761753426738781947525036777704306003230368440504935490819962728137856323828949013426385217897964816911340829424578942071131719968426375563669554898140990009775540459521913572051927722605471954043715615712401723793140135081150398169695942643573447940054218778453263843107518183041448612828361557676686433667775911437088872801260588882834391364758771253538048802306271726865444947801191413232215723957726104950531962635227727426688317520027533338187742312483394360755702399245590834284561502955954969861211606716738736708074535685320263576058861348474911746061279700742177836616893672802862217920724500152027831332763334923863374769510216760260793183625617675655955373919915983803617388684288749587419714677629476262312594800701217530745720183502974941162444003178154550603238526544296414216492148209017669171190574435142899181213184375466963372191295481641057425705011059923359902004789500989622943900578860230329765549154197341413333384147488560832819146015416465850698892746361309819832945644595902618710442244346589930597235926550828844022794687056689034113609304171836583108266115890339917995062994238325420739627558869390907479731908172420673239627176708792840513005933404930948337885756506050271312228608584297277094642736302853862425538651076886946647728393674972873171724198904946540547429384230399668009207802570021540153892951323909665538291247243109557874106622879010661307663497917261249803782310286257594481393151073746517796690929292552993775960005086527481353701833153495360981018857134063810152657720560957403100584912933257648005498165849182521902023847158246944281589675464738942762211782950943970221934884870023734055906919639458361988286090852357314536160835195876031533991585381707974950388358150563545389457295841162418641814592110345728151005024219105220088670053234204004677413473220030951667159891736093662063199094066389766182398432390789401526157113105386348560426844525178485931642931319564907677389258992610374945275668340687209290984556356048740844248057748993211360123414078362377905532268581373102005161802968300671859085844923629054447438947938401939361585248759168745094010087426488085121451255264272029969077304756764524604133983864514145458822177045507204474789865685248321752811733749697964593121041869123332822372421117091560858164172407776544805580776435689652231570806030402519756394066883925195250031084423720719455985869102645620269493229252572574478953015830940181554238472371211029875340867843607998511343476035059178345017297209869664141438425076171099664083747301202591832443557124820089676894338444464008035120285349291569421818755606168088963754487384236462856993108049398827494474691550774734106691790834832024795724301018134422290452859204793466699037377267787612492199671436599418130729547888975035911067841679889137552331986235839038453035920583205379927788734592108461556688388298649402319218768667123426688746937792759652363419243961767962942712290455145045973864810322201512123284999762537360709106448950525510536815782172713266549016699557383735769464396741028254816532839320025990263488583029974091302795153469419625561810644516797847618253799202917129567349635914376194310551863832643466043629404176729485284833144533859195570474099240824318261929768765297776264194860590568664179221649547244749084489871335837910321221510987837149157346158410501329001587680393112989514686864250971899498513811984673365678288091647090345408358938244828608919689320000920042960937870448517998475957052292742579174823717329814185331764287197748706923360732046961822296145830021997513051552283208650758674173866198899524321912631210415318598420516104338918604244602958377739785772317040015370413234814522077469231305706291992957978989926939277823244244934524845519432232773040457214442864252085336687437999663854979787874651287405561937395795492129975229863833756462677745592772593586442423431772016608367376855128176663869640396759594911347971385545254948969655664565378448330412707844807181615411097493180274210526343270595133907581245743604645340655494471306963391751641744031029233340399384911302574718564442773214556890542873083282294808065684860104068836027784664741825960325561491660959527713522142104496436091008045045834653327639596704971327327600844913650625963627669518955260150611142635351310682126194750064456547513149358936488212441645207273507058588077054137126159961992809058642609779095277404564795835012331784955327759731022695362196320628275808228524760568234633051693991982281240168479817313366165885435459598821756836907076341535161678896190615491262489072655580342933670191981185003300422575968367742272077891473328220457468734738191954518357484795852153767421379099201320004276023864178739336643687146122056296256299194088729397412024606881011243212523232550628985433993429030643624820861261912326595488249962167741863266126300698766522001082100985050435154493205520911257940111913493402554921445095095012124843561690264200731890183200216302568972258717051150836691909764184961037401843824447025901248700006499305358042780694544932965318331821145654419089596450382243417140765993497028549553257051322736303587876167244166985188208933991545303892986327979643084891978550861292805354616050751866213373964705132481773534566287227793467966660840834160879787546406253909489074194791123067274884447074215353458593996210059424128580552298733771997252052263281409429451261864836806465069585297199580441288216153334680866915866697602187661764782227247396448245582979412488228121661464664676164457890169039955618120669773313717169733137590769679420201062190520641735623385281770386400415409625468618582145122285374153667263619708314095479510803627372876503762243421524317018831902860552057707829056450286102059959191598974745212665404847315003684849084027213886299801004410248853680932778731396083434343996177104488090654790344731966170803638360303569592034811071933723255860202755444151038738664975350958182158352956383925258815861921993044738338316898820062827336447628189120123840324480267890438710573026127924674897917405916376079598106041433500198722851627628290622091376725703544652924993340160288344185284902739637444235824988775104560356623033266954741165102154811308114634569578280428038936065238786793763952661121234053965026741638182830776485096078161430483745631869115966848586340119592923188597909516191496268399744788988283011929471442507756045535820022490358723812509053595337493253557173977362409264508078615373082357321109575158521101612409552776192152639349355268922580488449216075419977375538810071456456743616955099544023376627823005099568146691357004627335982613108483221274416587855280851305536259529155456793233436429002327715276483829381561712035364440452460986093549348705349282544356808084772660012495684112410732972475997656507674372419027491833468349705878142379404695883366554709239891650003221247120347931607866368264787570029840396444219720115311094785233087216758610126790248990910762814812759754121663756440415849842057390733757130294311244588739796648906688875838347934281328868451661623397494981042429807129664091577435705287787910631873250552269269670683509597322999145696464508037071256259233650054490811192884082776458544916742646467065403183537816769313136645510809994568761412757582234695493240679615003659173824679670935925464503325102157035891926152797617084842889955121905831633367005117913077351406006976616325932529934773051793879885847885225880532054781343477468734968189042672575815841201281568175594131438244826803936903741883436469098531317402543588441860877569196061707452359693704089787002710355681880031366427631913847056953744377863019196802202999438612598645363883901399718641136721151621223041341804499381936961056325272928044772239540597477463193061545794200741379310269689952972407754885205165775497876754595626317469344066619301101806986576878761250031588940449967903640564634256773866007115021939813652100999239151085407563654611814139222606084617994756757323726101039784497082537092008489250590252900395785128650792605127188274674969769117164758266545192690904950474716353858707252336054623165937699338789692913322003976469533965097499142022399625992769529040777374548401325509787961413737049232678593934783833920430447360879636748975600758882872686549994276233622880652110684321711551832169947369657239614753973611524649246392108656008702146614535886039805937505544117940219415024101757531456072692805655997315278959432652690920031309687143261969302449790991004850344897777808410496101267104404550937882424654562991494273805029571059638085263608360234221428088553899775089406634620568174580641901625202985287239480254218051162417118498486272918899892098900548772827427967314130939522565633474967477596464315207962105817010059447639699256294777374740768445127709960934746775744222180936519404667164266669034819104206546465115649281240971175246977207604901777504356724491708230729875531043859881606375935146165078009681641563887580029790635489737296835195226753155130940821502764752015428282578863969230541371287883622338881893803281500016372446346348380186369647157871566539782392576416525226234460377729507644693699609670313110457939463599726764244426209314446717741179946181842075850474401209545651793670827655619429248283224906730074467361819654420049595454542815332655990042067221197136943700440163017917530302343986430142684285815150131460892039968162860936236565262880445056031356172629692333709191312746826973226736066309986120356441376249253392660705637631892311371570480570944871038853906895901044873744243401663137673529509620796565805200095105826035189413123626961901181878766956940602097348851543950446027778022180789700727199364590567627630801350543303631853989921312113491856925156773247345832357574863154590742344377936449040130268630253635957892811050561306157304623706471776490267424394795058377595823269388867435877229783494825102028318407379193051305705922186089671662401084152556643833440832658132554220713929985317169525751149955275317553873355760219281410355375628375166687265684762198249110736221563739288749702736989408211281906887311398245560137054180958153338101121987394597855323457885099916465224914140830981784642547765879605946910786505473367919358808632781251558184249122593326445659812904079807785585022058287872414259903085161816498498628187214501853389050197893281738111434942348173153466251344942997216264434464736040645603195112571853542267312470903349521815251929223887583933515606228672874050742255174331159946337643030250347909252818428150372207530342964711376795866150639314913102227794461656500397216972304815793796484500232795354958696788531897709954623595340508500725571190475937677781665190119645951796314142576223582226180200173272094182468149659822556633068262596252477092374136159154338304514927813344538243323752111864121769536888643469421073642077014823571987213904439639821518758186828725577087200051566510715857848383778768381947457768432056824875504939009383516560989614182098638132628838349125032839131153135907746555442778918687653817575292356935679260786058913036750774056924794436587734408078264629946944797481176606933447124064992021848971625482411342829407965222161528944123836110016222763729254982329411221735782552792263771889774610301808637425331102771666822718706916128348348630030394096701764051576397543121970386739978935845615777318301302261943230554423097419928051247513984069355157385466111470354781035268739675431780557189992731206427539609574034602184315841441444601251116236268109346237470624945797097749770747012008032085403950641060859832561075283409982761521079437068842703183795171387915349763251219373868290525788182621537063794250303100275115678280663634092426983810461408773799551283640835502123110920618698810888855562131277135422904713502248958397602820682086594718458449217984095039976264126330675632461068764856528488909314409102972997471612519398862921323112154834964751482226276036383713558986411849378337402776428267915725264486086911643538482156117819208029799363889375901495603971626251943663256040234105117891257014439237088273086819914600872054643427999838363872811453881494778487812398526602929348141333162505896615580245878575866219882689018359983357971317483571833239120435301334904669583623514983834330155126837947301359634046378841484364744294553623291411163488013839095673273240905099550403362764256513127158968141070807880972300672902209866148532273111611278854563176827318137662813811264345577879732423940688713454493054986200240225760727282481816316903781256255758293269180505725764513848431455055811289718911948768812598447538803775862354804496670653124508541592329651528778283942177056729939817903983435131990735614281078332151592747092153605824043700686498613196314624036646817516502323253871481521330988491417021742695295122608803579084923113281655487920123790960325389385459626975398472588337789658560143656293322594939571774448303685398194246355297383770071113103914804507524702198854446435584883818228872641604494961103108008776305856644431723430112489389883829598878160893754155055607029095211293694620879160726935727039847194031097240716053693392158280583730177245020216542776585765034010693627470637398974102776407790425734326941661610220918453506285792629751344945526486771402574162308728310875428414629375446580876416378560844303347118095004645734566147031465057033743064169062900366970648307282504275134961277371616658273599158982546044452807213159324586284108651294939399048960009249367234838291197481243877366501486811824836956632536874621098359226773895571992568876916026285538556391632794540975080234467799298720166267661556938588778018732160287018572985508153974229369422011984740849910644523919322232680789414651655569939724515100312252780585234068425019337796693556194968910653357678359404349523836347265401564202217293942177196457078558567392767711848065185396982063653360500210017069532226449519489655486895123021235937596025028201359909779709186435307448566258028094041856101971875901500138232197265653418585150194155231694019149195382098466433179142475564496542580799319778615886534669019267507549623290158401483858501597539322852082814828977570879596593714092493901672208660888595415635972162169718022459531236369604708909590835942946676468584851808337415312589481117390964878860870386787480999597871696326578437201239857776819405126973189048754209248803091089251393035649137553604081593259885924064351432215012727735256429156703482939863326272464615340151294954716926920527139317566500362437391039906271576261192956418672629326602306921602463889141177641451451906682424500681285198132898861127572089485998145289508941133366568131780029773548697896845863913069316280670984827177551054067667596456598911766046623805983094842875936518898724839779513672607036602426734423792470319114788870713926451477708704349016419563543506880930630202768052130579054643406872869954405998346494526215031620642060941218596904492487358240702099461925437891387298423293693084469786413230389728859916575410248913764485588786787662417028119657492451810820516193491248786599144037889996897600595105355530095522862838612366407114428904976304202412918323244331438944317496881458696876796543904320164651571369589587577391607203638170091495940737211601544103963637654192277284778146643546756606505750711253174748677910013665294479729002193400367647266913578417520863367087719892795631528655311460398206913460463079617057612341391976326382399177540293710916311490456094957720666693638182689148837914703276603891514505483549728228488250919404358041301962305374362113923140918173340509641518252347795646245218342874624854163043384419583226633637384926716903102290052132668754301522131085188268903978823366650850202350886775327223048348822250577680818962989163800375118714671350317084434737084752693809622893888919343723932629356481677761918427665532850047594094026512756054294832627677207228234835581223403683967804194346788743488031996596399131043788922252083652952456958290032779933163907460982798656904121064339480921814882276642327684950704456200040757649192729841179787626887531888205327106958387532625271138167302928998667003125898761015705791016627565748307924467924122239938170058124388783162041307130077879184613226914408326387750283110122569822979083644637466627779013284207844548584668555952428496208564410532408725134694257320511027279915085464703212887068952007555944032953175431023739601180801553596579738730932294661441860433240555073755303262527905130524529550301448972317736829239657119870136927077031856368307393142546313392523565003548418111606707829958438432368366176420816263153314877822249146383381821984228118937626159894232092941475283117652608993951451260719946850464663513893348813054798739069500931692753731253133537516232819919782516955750373107214587511461838973187076856145872819267102078978651058566668287455256364230133936204540116209804283833699368564498471455660337558789717773939230966396970251204517160742517658786255172948764624309238611996636689925041925392856275904691542883322698149796548877009338586199648125049271497147745660344216570985393147158846860630620800975043808167932257559567075485918567541266817199773111608086521270965449894472266290681402982739752213820983431342534699244664390678717401970697793870887613934785729337744650943573347994490370909000508678422840339113495662551961951330818946773719781226379676930781118601950617512074314303667661756071584648712278555407973688326176946202872039230453474474368253460013659594773782637609048034431715877930750834464208635648257661328750051107272617312594802692248456774283181988770031703350179209912292093009313146577353284719180049439537381268153848435566977908330590480884493988161340718932824138138048753275216669138706747268308086462518660193857219848712143796676670594924195026928186267002077427457990743905146830836007641897670447475038773080559085105223128205216049539082212807154120027501673753504027081706910982723498984366793703259374846070683189289732621617368022491721002225754894079019726636483461957237777380071307899922529515229880098796421583108534327126391826408751751148400213365551763354417495206988507896112837670744420780385119615841643729332912636450139460753884804698009515500867595794493685415752582542420260659761395479453017758433840709504670687997759154147536705637160613069704681727518799218064414897377500550611614194447702918531400931210735514025751777164980499482663740836922516500859610833630545235913352138887749952525969905644784092793605105259851540486330145010827464419648898331457344421620958518210933209955673175302278536802263963131426097656527058654979511700417112360664393888449882729031857271454502227314700420984716234489344696813545850719184684849052924078198481288470704570735355757535945911411565580935570920634920242867470771687491118755293366340600657476825724365641150606235598091074604725877516589378495573528948914619890183364831314164908314640064263559434213044367784799391357235182775309814233818741573604568661579015308874914131143320388811188287176317861164782293942371905523536469259082457687705135635675534247206472130352270709212440326017436019780803224092691723122952574205087565269446857821536417580271138051378806394802270750568232998028935213029118111599953000726414811626801382365838886411361506890832093650673376601558244363843458165937852336646151386493775204231392204443846495802372970916641173006939615899810816955673859170040900461062420652938898753259793023021267656984445546687106470486911076186426821493638993951304328677446580195604460275945312512722802339313821620008392734271534770086836498537234664898382660870875223205049020873940673294056284894118993450371722523540108088822605754285103923585668959355357238661903187029063354175389856204277732524470873392631185965848247429760325898808986097879332728695096882402807904669787284349014564758961269152462799807561546185006993748875507222599591084230495718288768152575123484700072484225984730509634553222714483289097316722289822228687985374583478138254413031497047134664125609868384001895200224571673042584684372837031543617025922650079217955872709298690372094184506967919832157552140020035883390898482618449279484289081417098131270075956217404076877827609787834064754589772067886937324527997511725852595806991612202215213197706028141893078311326137577423060068253344575834324551389190304137580466160073016511144305765253682152058960592761919590372343168984892419555814499746033943134611026491839421518358657486919856307277241513420464022968177153469407188683422131347904117876079137745696863725094355521190710177955530655030446552395367956367855290365375009147402511687254743701307650648358672765531545383154593634702534458023740711908487571276877200586406198246715400317112072483197430215346401047484808992911018440040782971531285157284825321777001998016296752129069014542553375644705773467055588843546236400690194803025235038394027518564141264741002901298998696314512363587723833887578600369023298682767974283442861165946077144820960967295245630929057631727100054405520065623048323045001900505179842066578836435109340595615782633838533585032941058801378656035837958849129279163382728494039275651360857319241840637824765445107577404577627667749755226434351729481463659314021306302565058055295232201448627155947584462500612180232570970882341608444055141642462725881970118216947513372262794875864620499731481799686319379919425328839437748361697322980320278800844822151930832863974373438683207029206594196389076545793422694083783623168647564274184335810362413523286923907738323303748312848327921522244940841302264189308410528158792607133627941880214747396493326798926109616776557731841273300544696818789987359106537307264911331230990244901141189296890035362240202649317105479243918291909587850627030153670609451751777728150477476056536798194832147512122224305242131504684221160676393335157955237083850333695114577764068197251468316362409611838815056161613194853162119058097254938727787269408053041244616158154684054865969641401038841336690337243121941143142537821715560805911802962761978569813876960524598643243520086592661628461562537733718368488142205101240672882284324738649590927305626234594465649302512740631081353189121656958464494453054047544903684720052144359439347042322874630762387386175538520866489956960854214513953641316149186455646229366711347845488046674192138967934995524054828346141137188652242041895475417953545723343209472171141725319119583578285891497684066668465920698601583519753011098338016338014337171432670889857206293918639977992763382731194846146273205355911289639544381018637857819371415728411066840596762120890351856964064286821949484859190526988942022164576045858338258183135017900882066615580393386657719733718005047925325222659098529088315626224357033261237623356188030730530612177577169442817125769824087316741359142511887643962266511740532570694792288945292736610137433519579265562133671203653905412701098787976308375975831721899244268068427713914818924051571700408927272589754829120778251373919495775054909438963603377015027020901075306541253687586825510771844281089444872882350329846865898355583802931941988361525921237914387110836931008081707692613193950096192987520485781788442749025573694470343404232852466443206520164947865690494638490889252606033257457366011207768462135750216221877036197695596483714383334121510338274053204560824716899787505068494106356716710204762249558263792320748934037031550085441826764846467374340380675376690365282201800345147854289783916888422466895363090684890083929075062671392342897763769043179964208799142349566695552531756361660592192591414598813918756894521201392895251460459451691422187684305869278574519045063402469515663474622016308196474195952902778651587995001305845478752725165588789997060965825176561247235150031469138286914540790468838948416388096570203537482780582904550556132477959354989321674403435956166729388503322025359127600066841824577016846379100822320017464086433613279369507152810884285679787396456387453220129715812268876530378612826832434125117465630767212949877148934369276000300857025069428932117270766570047316783518765782918291298437972329216353174037303026171218360631668098027637802310413095074623751647478542293017421687018396547272372629919688790774025681084071616458149941496090318153700338729508636991317717657974566849894250139070272008728640902802067541080470992001292388524026665193603539573838482789124480914214861827834442968060009995245328236353730486403937270681555416806115965056269764352837841213816363728643078232405994578442221834846487818406703794563245163544073565212275541822980207816647917138486715523483706707863162565808508637665156714098605984577669272306558597413287106956760188373489525089061368988347219181334113270691060580149652342212695463960521305179611296764070619779517295510142419885106071724345560052709550848914203246668054527499076500512022320508334849707749654902512774328336096687380817149822355656107962337024721366441663474938827532609331404225017922339830058843256946061712682791079423606719001951395184370054740998640661550828153699054458472608542321554943020585793382072616640024118875927893188079492604687890818172752754724090764195249741450058510872624349300130269927795910717927029733195914021609229745510346072234218556606434527435475669560333499897201855169330117147588332708953916605123118899117527704959773915164395230683980581365735517831172430565078312155882304801530101611627284052976690595085200241449508442520317945315605360943906916465932941451952387887678597044573158252126274268357639904543303345622021046952729037169124905462026620632286782073507807892560129516791489171262580105985458685042265847266277765316270766646665270175862651119465572462987641743059432588255420943318207993421484327483123149389795121372282449624163206899092863753008510995797378583455394856388964228728077508966819614269329858999208916720947787972785860657402603811922894291542371883901609233838150481165514943118241008491277919577677732427402855919665803246581430352198124990171396166841124007286766485112979905922507914498437083669224641565619724992041682874731460211601266954375614545261957256759057516163330296824902350851553269068072137800939247827544467326447136432483301884915904234725178510893709737179259669197914132099568144192075333590189334664017403128140983279118872157935783672938726941041061803965529368556914253109397483311117601486840527228764861661173700008873094819642823060798789640381550830296185298782744791652895830345264316677709515292086058468855694231002435160407038926482922316627793797749505281360479047869787128689488136969383634180239241953652388411901169590755003317965677153812723727430224974929997456830829625658094329153623317736628304557885600943675196325927143813065498329424055748853272592466372411824960039884951053265839113324660191958888648170262144383797026385490398078185780104427215062758306992125442804336089690927768070169940115501334307469219473633275665164968277857758895819967072718407095563763205564616794664645562356297198550683572194521280664461053357253477123530200795858252273673574380689942463972364498644511240650899160502178443151487872386653249842491193204764871069546736264058530993690660048538487839533716443619291287491799287922434402118323663157288692843191168148772749343290965543711847424783405954122424384783334056740388141029235677824851023446982859576976027172174379707966918984632790465391968376375100542046328853851685133004536283867929672499405343256541512944622071878501302757923612274220831163149845310427347323726488975814144756236718555548897042659069198546218812191051690772193479978273535343977634702219785005069325337335093761568501084846503344589188682756297167592364806148739594267418130953206903720596007487883087328371021511867748289385996577074368255936313965562112135824126539937670796266050125364402430196592528509527603589290054244311743920001910926158715538364529159875651029768843528927098186188322693612889420424355982196096446575567237585823971868131943271301543990604865009708766139027982599241892842182226756491244278707437448574428175016785346007288808017494092416157351192414280730295595610896732620965222999319863865631267086783730916595170662227797728568636331394081857457149066916461062561685214609250489348975534377840709496807774577021372381928089692310097780742644241874068016087655620572966614836654805435480021838027376714953741322532718883178773330046534624841074600783456035898888280502186730142316218143021095592874387530149491098264229553586619448666737887112337271150827098756267621728721347794959820714642153244958369994089272035937763124887270530362397235038240489159708310737599249451714298208339026162643944836624260952777328872233235119716734659133222060533692134468203209454065504762932650110810261605055369368874707816685634157143138155853258663634178601186722238168272055827662788505567860876664271487134439080372421052918124073834412158979142643337687665959867337764847158394269596869202974679755429050139883719538584562088823112020760724966437635294134198740215561483693462556799567070992217138010677913203300340240680112993150503207926222794260050132172208334185488705196744536580199792617653506108211539598665341289084046616712434604321690234305743920627112234865704878359885024888122502146622161590599626412525873052950350874112423477597517323290613516673666250612248030710724735892737655354004487147691044982411499353227020957507428092308797205658264481619014273900447236244033646253474823263527179442607951480939113895487181575257151466548362789710904701374255627730040067577927149141710609330602425494432779620963098592152509639514285384381833336991345395244854495548254057535862150187924856871541387435330152019966348519076235441479725876877471799022154632304600213827453397586922321429260440258864106743773212313825726870087312131391667249712387739397867147799458059493438886133231463523385256966970744648768288811446388702368964558401882990175695728497102519790814842261527659241521981147569608046163014807339134049537091064266363102369296481909564702179110917343476746882346708992107195759872320275068492524951770890868238854478031074052528893573754432041360358453994995117836009225008091606659754178369749007315763613824095524032817371534844819233622144688901598685536259078233681144418940937147162155616258470787652065063351023015568253887877876149699366624106812646172642615555194022935907418810956351994583753823379303205668177350008379017205434735249586900934793567160875839541148288204341255106145897861742201184424423365012561907276608209126090831903381144291329567180234039429279653749115254313569017461726221899030802097152631344693966183895084945733110621495602361406986935717589506916340208592801379926133139342770641322099369894534569217993481012386571616842218559220511728388701061581720432391167441658290519809792820286090607094356125762641193709066968844082392056346714706147516012748636101314068368974359323558272391355125768255482202838358612472529186050576036663422625903043795769644985531462036863617668389719220885099523748025036202111503765948145742669069991304443770056126640512965307657121713319514954291706853533188968523076016918636321821071381114448979043563981852295664950860131739701257675016102692234155318276954911214728581638018129358947535841537241101996083846763213591580162981041908627923127619489277094991492334247692078689193997520259068070373248962886917693130057088400205781125674468838395272139567369057505879328783228911376254342163828069055233552554492649697693196162048290623671657865845347522641127006720697089172635897726328583695597842864244303019982871363841960460412042747613745693089876742450264356470745443260209555094125602936953456568385167204234333112869415174992862891553225242421016966557167370914720221056631607496513941683655992843705604384246049355039794529494354137436613618498800311338886110154779264898737933050177465787991902907201916821540549725627907296006454040519614365574008868922159114402809969195859610538975308976976549742914532013401310647207513334292092563818821064734844296857100218859521758317450752619542929076048379115299453148711159635493045096798946510302182373154632794888176440136962755783624720519200579386643095458081048239216973015907521001783895917582399028594321912441350897877052016398864029977870417585720773405192315759194913989273215542325013538097902571841454222118962482052048150251423644390669117906574237421315210547949254476842085930694146580710644963737547975007363764087103448881689743643037499069456502500323824633683862043107276301343587489480323403928060457030383992815214240585750753720533445041047304563760660326397680170684335767000500152015920316598141496349508283249088760786589799628652817750801129321017137137472716507552686725132774695715120221151605201647561650917126705442459328338888040496700199925280870436244896739123594788002766028212182833066941110030468815646229269263520990179523538063831717796119593843439956749734406078629402378137036717945993702211377902652708069448092860044778760900615525877976885695179661922416371810243529273338631998761124273691862262393977598099355566780582492625442409087330043295781987053632556223037471586520472711208706717408152053939419126312050487937815232242790953413215395452980949014631510114265604304002304471235877066887045108663643982196248860857032050220154356102920648150573071845916700236668026652765577726427359821315973721249360845796699939397576348978998614157657081930890070069933721172854265156992277757622849477644344357072073879185836958454095645831635373235395461699629697106773913375033623655714882722364913221194136392121863262064543160174474554417398003407814254002559188714369620261303186600598826374024019384142967660630595613728887373555127232461625778345749281458429337260963581624635005599110663170270184617608771171802539070947795172606804273261859715035072696934835551025607042557310144825727947114536662840191776684718903445633213647958158835500370630223383147169723178784583658190433951416217413285186406500572857183148322430728682298549789211678703906085992871953011621338843041121089897168516100952699365920404924974835266418004147776399580332933311717810826558674873503260707328616562415563378323855248560160308731256471969675648565849418892124518541286033972503141179817168925551544645193271556751328316470151055369090696300765901879772655283228581388964016834839525914993703129423214126631485970118256508416800234909586994176001978398078172658714108382874874766602053135208231339067401927548284509312469569359907207956968041314058643810785823689735947135459502625912086222803819998210788305554489910385996369030431742524048881126972456340621682203557080186433454944886684909472595316814053633351955097993774121116760604338715876461175242595595506208117851718394269284297752356926457381946142964075325062639067925705217157589964185110231173099948545219186195963594907120276181593045674491846615810669349704267731640476302655543789375929623494054074078010616906901040607544030916403890525478200359858726223853019123400340291536895771332021007689202889322019514197778075021413039635594048194197181881486281307531251078212134878399529232914019356270178514569879666610988572879208827777834294408697878065214688836917808746011575792661365245915190625576706165734836339577739853339304748713319732666547492867946297192875462829804901602589995852374512382755916965350160644034487153298571895659812621014138536541886726793516274654791089883081048268550999610482590737795864399461375505893964150614147190247713842802101914411684330091416504280014149438941505922456340422242217308200185084310294693221505337889557340955549703197497379861205511021561486952828637824271289257172868829176591814953226409119525493936626423555586413563858584549997144887882453018108309079294605578579641984502286788321986689190233673726092967191457410577984367837738409598390879916049581888880614304436535087187746416796439944764087762749428488313930882132997690587242536482916297040578389329594835898663480219022329272615349564718970613245087725175748433705892609368312052868533392487605924322678665562648908053410356522080994138807522756895401442438788656190250570342449779515904447328917238977394873210326900828188668212089948874928631272333505518292421044418597936104592810440140264942726846019950881336878378934846596663160667440519956209430328699818112254515815316613150638853425240110289764595626319126528854180269379136594180165465742760355112242170566438334893068258803926467210087249407712217746098635729684220594930195127646335930193232232240493522141701547436014373789225307367010413010588213312161971329781239968798853123014691771141741623629144837745888844270403020011438738870544173923543254109271770901777530913538438381118847588970990671640647544406449637688566505988846273695416990494366050266686181272032035617074605878825950163474272915464511802497444831459381377935054887366586965868530800078622946089281672048353032311471980105848323413084847049639428829623978932446169022908599942364135802145702670041985348067575634088091703472646793795427667724700416259402825288683127798460241723094202137761293505518616237113210482150751082627153306049777727282316969100744197867239051106049732437317583549616399925426222454291014976933838294605316755613531994609500941128659106443634320676635793526127994301263363317158457139689830102853787339823810226020589228337660010856762861463094212223574054149035185118408145351978698279074594779098362838111485851956013539235377290883606261654088501490755614354508318935295622714058890243253051872176177480824354913599351614260095434472793422601077557373665535474633424518841956672361972415064181270994844762881794611966769495365120072848294585154119578244830982709075802218212132706216441108616534585204847541675034772681853647543198821299297279575792245876892952666228853849788009269262940567469826567074376520176651073330132197131552263022900888247743128947451414343842165860602857093185032956804423595719414363897213638668827225551674225659287629321419583971688896616235838581064645282910067165934258151122891945095700509551408533512013806169603993829623031321657476114217403998219326621135667877980096564410142060911382526002029535455292275927868279421006434486109813603732598900302215234722713298288132844733623522801964172524473976571163030171190503042538595524602117378981274032916929186169471391069096790376378471639699985591286879976653452325741535627969219206354727182226153795531605416852079513392112514473828169055108856620059027388108656841131139147312262860516197314232335264900671628266065357063490133518900873283715636336628832632586432426467270308182653634941870712639266939088911062888168400013670915444748380591384231698892104598826467194145846085037055129506702279466012040544075966121554890288052838773930662225261094374967710595839670621899552267972293655833105843360674352366681825630967365390527210130008232959902893387424742132009103331562543053132602615899608034764233466251516011782561293114037419528219982172660520585505730072221353083443715357784799897332243048257505296395668334996154453771557691204669731166218226409057455387135892887647046482965865383470096811259818034716124790427717727398447735944566905233508083644153214730509167945395614609445021256080785848008232624705822799509296261128100940040668305561049151067290065690627845805005209075300152974217380240516302902858387466078664774357481065143553050890512521686572085662117680591851656499831676456601949893206244149659313024600605607672668801015795427897156138527501439817193769831101111599817801850951706522160816658946542553566770520498672222411555633713928809311656081065217973792763658183096020633793475963509089728039217435072673434973151394349208550334794817524904311397823528306358022873509778328984276771735688388174233828501780356328516620848613864212633415939795202408609452023712434744012387002332757734136888148126002303122302082582193682706421727935965007084256450033070100934836225518856920794553785145143076240141985555473094720170083630634744613748105498085452982723819728682478776794928361989968904167925674996003094498587443819227518000933016079827926673682808940919898499900559429778142391324058291541651585864725388331326409814637424310628740265817846093426544586180462026326201249604094082985949418279525695064407785262870964482056640195260580338365132627562222184188709129098649814414260901944413939174689536301398543979266955391308214399261985219972293769596576157343073889177683917513519868296336058368490890289589646234334712128486267962601846400779086689885312504506706064852616976191746005733320397014326221164792863161931959468246830771839487528816095978732344546156565731723401754005637681472211042838429576946866894285916789642636128929362166877198959794265333154115690623617861464027776975178427310803825813826050758661517619609005958982389744329614070366330130822494127730623711754640045871597186640665254675690373983463596419610612936044423064080147160529128981273448487605712820007960323564713914639878007942412607671254810449679945482154318904515226699858135574655098073103136282937842312515534628609320886167801472931443361714780034911032148673042582865860524368911077367229929896483611327737528644656199877303995626993604391811941959591002051214254850667481915340208111208469259592210902008282163710092324829485844696266244119929250722055560506289165242632516485682541679227767823185151532766555623862268203970627468756108034387874214859522652222876743020257196301383517145450777515404119152056404241323274011745761788010327703146917998029002464139200828725221349327748903803502164184139502499748884409894014712358820608710933705396836556405832511593424522167785462698907997422363746533976439296745346149228313827662470455013184629565292425173403329195563013720627492570288962869418238908295408404839811161154630679375364941269195039951576391772485764339548651840036549132408355466377012281939470624605765724713130586853038187175763298125756611137432507276589667646429411083627789414206814746558973395972320225226682303614946088713692944153950338417724600167793223590247190145578151417632948802613872032018882978857318609453362135555371956269390337990685652209625310078705245656501994238347116683190940766896398774358614092290105729992660810711347633104075825378575199083247751037656314531919071167573642263331965110199159781344696082088826756690987152312270101997925490761428167053637768072362649430196467342452401025713549482358928748876312691162285376749264737694489365880132370057433764178029810474968793831553518312055874374673886370370061031219147284642485304383126272027076227128325002712216248835621138515256541415357757051289828811083290853603306212038143443879405480530758779397148187055407956631928141253346898580218182327290334768544440846745253241977578875603505145129412296857272428810883238569105103394617100627984682579731024431754665364189344618992581941050071819314522082016522719541455528715215112190868497264803394906402688864843384564726749678471660623566033005184833080493880516703856869005598901945805509379872957231051450164690757511407257042045034131209209514190348812680560441162018257157847563547168385293354100623521383363349628581287070519209855191069100384415421818285691659378475429115818570926926848311903511001138041563636981217870929115012967155928984251945554433778897584500389887943055803623325581914434653018138150654590777961654480958590068150656769107385644663149039194611872380440701404079746109974418967078908536345708877075202697376469565168951621515440704413196084463471279182179693421406196010140735328887657633352890854582926148380343027992831682141538773662592836427134734286843218805258426512093956878697555466512746367892280864334553181773321736045379249684794055448153134180908642096417210251872588128183981746491763218804093168922590006526809553077066814199799148658393278429208656006020341609268174312686427373999345638844020357101546514721662069383335863178521546032606735343984765910235900094875640859863199467692823357405319322364250720983902355187030565420269670661086731670149441350674061806699632490758723575013493869372221761169855598305836368652587415180190124266431202813969293993962032663316531136636322677248617772475867009312896416744772406430595465347857192852669094172320730103720017115585618773040891249138896946736492798898683168568275957704568736716391545622782854814114393384567382825292321966583610736953831821737689852189028569938669376401487083278791044765332717572467019933490114358106038326730655058653240840033626336589356956799212943317948574438532263745038948480023639994562293435335329893078414522047435038727820171323998830752468622848989672106719858887690651138047143313082217288665447828153151753880692017384881218773538736229148855960748129367785015691527520746258996996532454507026949407353041770950156033681744004284282542502495139100390767909029754007530592660004045777347086724005875827375160342364246371778189626810212428358372616601379533813408978397200938205407426173832025090076963523256141503336155395802584579321706052215518600742402579776123810288379378935284240309895790571985918860596619052350415096875636944381858808191383436692240371731011044172418145034727867670527252437099166637250818779197088010282634813620002540138080049198565776003600668516859153156898063810605653998512900459351856830530798554016799761988260749657488331879991498281560575778357947677825402498324724798680783550256000246972895387107510552873607240744933547637857332189458669976830943535204333184820561554844849931699335786108742069205970613711046595301636877645937930019985183307940516813363477580817586172931044699987326256538060708009722116008441100569869390543285496035858314686976514393572281232538430228528313506892154132987536794386997780835539223390028340000716894944369157841876779398854369226201821863665931255324996981234753776002251845001559615752366855678672477666238953742497562644456747010713297052717671043685534803065308824406771711674324696332443513359464192552035608702344062521171497749670424241777554591203546382435511307400449311886586972052438055798671435801880135988798644636148301307668199337431133976858541644408720497679859697985295936313766986890041624853090550627166672763841996147928204672290013997125482988233455636334000531259135296410502003794935723263481250823069394827916666321013356838233314145063322052743298509404630418148211577065194639721220508985477130149956835557279396074743899623929229735106191818025850513446522710334836882074176970000994286475343450745240928767433052999121822119581188686336829872104489235587719713683726851496485879821313930642594175376966887739123738690431338171048883111822174095756637872462076589738646096114831253547241499768985651979754872134957862780947889738723190185428091160403329932356598535697119181725166636511717711682138083563239561199678650186882861933914827541801745588698264136727382572453961330317564951877598474932008837310589366619642706749634205545353644061990236996592419418119881967526430018265074760591444252215276237893525366905040476491144424035118915969746686222582122440709277082652349391225548862675116417080452574931907245210202517337087287285278703246708078340853671723976632263667325857006181367394992781414255096382784793616536524749521798961754830109995768130791080604971405088379506271825936913398088596480331997678548889997303019186415455538258193045775635540572612195558050804745540985771698950638988157603463051466868200778376270071424562445847282018160989632524939223799111849370881271610720598591955926398938472769275662530388739826540242122181194676393477881219240844454804030602950299813701352549837422805827264390361004767118877918003953366149361859163419943959802376262807989337320052711486287023212791174739594117697343759990089239220535301603040122254028405750922529795798181602172665998389493800585059408638629630092554782998545662391474344073881268096548641534669894358078617162409051091274320008250416476668818694310982499352058925291703378698130817291543165889571112429208489935154654195036719130204595917586557729872567088825146195422288312011882994201401469006469532369869711381563108696054537642153597805984904830535524381234149466411317375488446117219800135600541339806577210609187439261154277509583928981869447517495634772284820134009674631081023403840994922512826351380125559640966642142405152170334239813375013220014270418730611999806105237434850600084353025402649104072130746158579571927439407615768003718299705105140549574903544477645321266390726499888835294497333052880824031093031331321700408568460404759206165382313619829655815698511377783128864886078996997185997411259237114186875966894664719483055058827362278151962785282560973137550726781252907806760791669211056069532101690611022120937831782993091064050233254276623637394129482485652157149845576695413164468332867107422665314098517927398784022191550355494011433217015398601955495755061693309323623571114537483444729503448144665133452254758158653229279517536352461144102947904978110461307639509173649560267261421588480687575804546779755250726321484150469408718501193850144034241479232911128014671385017243353133706957848880367809738161810391231263781546602606298973101801919894507780943405510717889466837664191831521323627624740777101383526307690219010423841688461366094808539601749098642313675166442960231148110214024785514531803863538210972508652948021018394922845478429910965763129435638471746645907713630243624218122548407011447490696313105464529519168400455633544110328750855324715196625875850352732267268996822353283861549481042046701562709314829902473045663327704309845171988531608975784549785242887458845116717411242109566784087883571063004064837439564597466334931587681148500685152852433983532366906766378240954578336081607544199127069648491718723484034827282771551060553692485973215669481679049096753307694930010796118387508473441452719017576727936000082992956056370839779949779331923052173360335207490204110682400837009753550005412507756768021814746910369830718022573273494125318283533825792402727500172409200355811647875146717913959863681503754407390224154912090499185449832321728599115115558826844738807350418905235243619742591228812596228371908988019241400279353582818281709190622729886963280358559793547564782106584098272279621303524682863640058440957624568904320377539147276457260105211797434655658989561510478316871438579522746463992585567330362697017730156204218533916533117367742826620046681691801695235087162883195080531160016477417180624214193245198221757920883475482030670752623733592600498917686502756328494360636393714911350619832933930683186135583660202326289346439354019673025959535381298533835041863344780780966248876070688102892353701905101813574884303534565506831736963720076963413503970256467502268814115113045515101457455145496116750392524807468852010650356419711770553497991747259734656006680518123715616715571946146660202375473652165552748673374976755778625520575915221389776552804084321165453867930159472521875099938643117933020273838212776556508869317080305836487827726469056087522595875371092212776093670586607960979432467974166199982748223666951849603677252223176423067423413872059080003302007882525430693028023812004465596299752688010729188881068897211501736665518832657569501181516359105884972057022320559177864109926094662174265190452394023123708323208921815068216766649152275551166631450197562311306011641998763019542783427756611318371179636328747147127571196660129296125449802544158950522420405489165562507940735594224357983902623019925350629406616543609072490297546013959042056075494238885994785947911161195127575775299188945093089343437182378385667052174122613832649700368342665437974655025277325564460253533371853685407929799786941587227830400960481117431974335794598412721903799787172312653573468463040675730338298649923413885487632999353406560669832993677789598112986571974666366292445064102031862798954279793723010930302565642058335411939695295509076558883958140146860854130906371207680621189018821244363061179872851219707578468228107885929009106780609351468552612718547279452253094426049378925295409596480643138472874191147166054786009976168007008966593674367192914530075662735489453444127553094078455999484837572255802340982163186749872727390708436388703992331985517817684817010094442199666849747087323800233516287895705591533565791144290214996883123717478556242139789615727375375303219610468600574738251073013804053768159545111310196488367822871098451813727649685268598664797893637329667047003443521210000622236705720251725125197149894807925648775592269532395101806405488145435861938882095657922500012715723919986021717616958689806192421040213642689790859601197436088689354401913690335639863451097248051169588466402669168835681859429184789296697283205284575911330619460540662217241102913667051029538754090725315211615347722137219828804619262909098967317173032209869052473775953488010351431333762909477496377526651374256343214055188764368708465368901699692283989716298424170502877774012526362522932062015766422998678171850897959580525333358211613144479036058226941894909605919732859875177836983387219952523146322929387940784669666569230714445731427250634338748740957257935504442020460832910118295563124461542679085830472842650515406709589759070763968307916049859826070865593858901531384705917848188140178400472435609817345640241153208991988845432273635004522386346498647126429482060706295130088182614434075908550123765576177009837529679417748354236025748615747685030579541358773427298150994002102805606593791563565280485568094013972451021979196498972603952403951705956925569369287866085394313166287138673139978160892840667502782922361666449479635156968411562381183771608470014499256291788273898056132616145378980933984488529615506574945001297388579243798601556891029284084868964722807221876579498146923951685383019516549239651540339907176273061175494581164685786069097665029727712335521205863357729887439002435176943450880459775532078889567826026164078844192794046515681857802597074933941397749289511208974833698137852755138719412677398532683999096702174274240209251972037925876437834548547702490229605071544391747942170985001798828423225592721744097376754725524310396657920452907491330764038415922869322753366474436310846157569921941889519029626216654160160684906209225198735566904182325699107972341597916051627560369832092952274000700842252010429039358567568120985395795204496510131422681134732617061630836931982342408990536421389099905803798302900594148187274685177154196314163038509831758682921575305998430378269326947787787112889687052761386092966991431525696779480395637334445112076208144114763542036463381958031799081749253149866595827726333449608510803422923022563374765063704078359096744992280029273299099261436463059263182191994230437396529959471999417222172811703880442181856092863757254128375044076085818098716678914293238337384663514800339561965846432823379790300175875948143990939534036997174164256027681117350933102750394697304818711709251210883361049267103140415196978871281365731344953456601948239889101466173961772293362287590466174120335923597879654466046333235505381951324888298201462946476632911473704168349072159382018030331174932998776177524476568790791773239026969009287147504188616103244631414187076439961545215550422244575209945995220420360477789256137686064543749758644432720677395031716454995467524545826361787641222457639186185005115571861294560999151732194311354498341082098373558576933101829953762725144072307424304690185682336692307046040561419626058536890601822121753786051412571969039557443472504410256325781106078817896497187089775405212760411845516263862565148028616513020203329266462534008795504937294371235003167845577062899840574453764111864495054401816284636853495240836298634840003320608359403194015985495689049386765450185088747202727404283872274547016677233023805770443618112060467258029766537131251473473565015764355258477620937125139781634720259618314146785980425271335041754700056513527956241604688944238279459796428269919451345965313424948298358944083647634917331618328787468251699514712590732697603150164232011544720240492601529617456047057403285998815786455510013894428449410679032757346251892395649783132814693958141815487464529250676730741561873126477647398708194004808003001461997861624892815037288693497043905946103180260962418772222225507127439758430675390442111635233680921913485649976329108482563128276326728832012564089438213770950716096717296233530060509706840015246857294318525812360878537196861401110066077628355473825039058426908894661701968360405927570682175895734250076718821174065046756974383282342204171182595027864747131210730752154843890891133671506040959214164752123097378123083644568620186853169615581445760186346131525394667892708555402186483769047895042277207779606895929919223906976958073574006002322073160008486978002213738864094282294871969610228589020839289198007798668287021051584543751020325160271673442925753763431968215112100857306470810772581905987285327381495986124512170569734085829758074103726967961783468547371963843146058820684754050057893228834719318020436632275692898823768134470942453217712376011644795152247342535278987922291521150342555443339765382624793708438702240021702415878026686531294838083210601259380332335945435609709956708564953798602730139910100631098253313031745319015586405699919171575021053972519652048118177679021619926944744220021523373456801744113811747544729500047232984935094804973169496291057255315417843055777174335853786338363960452656724622338553907585323625276670693926588000471323994302152600170933033820061850950168495546142252005740514259446446434543173256830689178103293318792114164100078931780456868326060075393040211597768722544555410726031648667012744590881808510888990189389769775648548725178237065562077671990234042413708593422353810509693481733651354344644151596815890558433156049130945447365246177298411724516661168861786423087729414452820230663863893925498190836209859975228983866407621358543193740730852534029966262546974732880967210330541169575788046463745543336294257818571489695475537876580398204135744019020398763625069829772320032534208824361943198985020794529995986088530088593141523084000773558734651411438069992170723727046927943276845030386132099639412281645663615545930466056268288202975022446478958619355811400272127200245588780947886901750805125043747229872720290439773354916285304575533792240419186254879296450427093075354392841769848036268095056736660140682525508673304889661310202619483216318225630772081986929158484516701472716793641430407765279615861729967638916451010823834026664040448242445098538955060957563202227421976035610708291388291513361642566940166043257392375432124908666367802283285405412177624603100038043868887833987961536691087990699283823327221806449635511471644999446076193345685606838506609333163782920574285242086870496686171224078016183002126559465214147340271785030324723081583749437869707812928326719010354118755329376359653503828711607637581891229586092525513847061179474812986890659422944670130734714383148998561530833126150331738109175627145438556062069486674640467843984942637089395354290487298912606631007155325875948403584416452074462914288651422724507633930119922677080775194335884851429259345843710362632546350720361263806832380766036724336877988154761868161583360361232670978209885399719289833791831573066703639194213681386217514868816712850995666725606373449979122301100953325232573045685524203821362913908119327826745929992846227189388298386297689189324034182468187453372465733804205564651418284886433374716260839874472890694146004247522704063055039849582435636981897217395270845253531691893469897583014891771522533830647854593671654153760488592344780161963191934235870996116784625124462884805052727677323705184941279517634988021538614330977963644467692665826055999900675956445729553068324885257125930689516994626059745524049094113316040803010004908002977873990778833040833764198399917150693715362351382533980778673329868503516045158573747240549377535640154965508800828948754277437650277574571241923534636142184483789088042783705330485726553415129517074505739012458534101583653558158058447656078878194549337341650663184365937045177580052099580994523701616600092794500068036252065999547593509684493835380429224272399875598880331932380082642380420089535563560450254719500950865230966222475275741392463287193162715804841632459378302538911238504576259373085686534126624396752178319023114422309592389441546686599091261632478482690398896435199964628298530378437914085499850646566081342188001580849467431205878999160288863163119167940003829553970010695961836677285934363963940731974895417896282923042638587501032999258006679869027822402333693484218987720381438910757414117789598362022904196843006588114971691970141942210435604400206215091327784230981434188334614895885005449737212012637162143217230233778356258968742490476456901447530271714179397947961437717253623101117704378461609907844878306366243239772483218023072006032570225232449970918622560326990833363979500972651119300824237128630299749095283228711525492576766042632355615948840776379715326760214677175453227969211819806120192314684686912293715128191265057567271214078199629574939862323616113951596566111849542172634135610247770514211163217633661745593544335151503879053977969539922407837902750525587338570461816279983837896906070677802624673556821341922716818120601269540119261596634827364916890131942793385534362800709056207599538741126038173577454760192659187351572863420613979265257065264220256723890612040551734751977277262454954277507915602495260474191559498458882728145943933829860091447323653205349432773219241047963304014767198647678622996790683304238778010889810346236840855174443810738466159808491495219258345228416427532489498931226195874617788910792761076861154090685859080575646086414124570600912038316158681253953320077425852013484432604540224462726227945770446630706178158794871802672108394174861535618012369015645029109034029732972439216344960338736555138384939180773493651330743038868353672735082321790292973654350543050382549435549900517506776386023325371189067032159820721741190437607278878384990967671126655449927471248992555746650407278829261799591521373271334086149017721709489136711984676914793989465630003406199976952066589449486612674489038788889989655010700049553437212610718438937325887257209866565296738043647067531989593049710854807401879605130486524848185153799742936688333822596280964555804646172857285411205474959459103651642806088751080189804590250672184178415251601164057148139370788274298658005842681926759179556613064619161890346305688969718296571614132809128732542117045450633220394404757707906239374546767263556658784764334571304294482515238506171876977137374294246785516119500123824774040766619916450402528914676867072968277333608186123628526850450102370795912910564527179706981238334758034605613832204624855962434755565634995279397606884860183499637311295660036257285396701987576765504396660469039378545340105447157395892248624397657617830282749454776975536262924320841267203555285818708663206979839103703183627164629391401448321924633294170799092709263435076363126963578955277177778280919555455192688626976222017387231115390260227493096172008792136964458649753637474148336690181585061824507622413417507543694795907012836577731657470804176603997832220445394879921325201175188225944370750627198113086205320051614374423572839357042653853219968975695540275767436238783823690626962948822620117249823695835070666104964125601684414988603207438460706979954013015010454044961553577942481100279890320434466583836469541351265935114257772473617090274572811746971014334651147521809168978892552664748703903777443036252278002430967750360222147696162260705652814326429152482138417019664437587682580238757939678989788090462180838014527423464587652418302679932711348198023557745890445648545612574898411706891306193842429831030535167944372891751984667918691364430242597229763085222516894767798502530953345386235033337433854853475000733746228668442117586740549556691694936280728031567414550602318671875362531088749047843255215285187860708299214373401045941725820375719729119355672634978180606287141356141510338819780042347093526432930915304736385926993759313064522103078181153792066390096496514567385251483617196655349214512342170230637131324481978895550182594922412945093355686434599159272173654841827119576311065915766255060891151169798149699524852070404818189034468120351504768505900218269705107883296925491885301029192777357049303341451349734403488742882230950700191006098922307032321879528793123685032598195620098912178569517061788551968898383155493842380333569289993864432363195685261016147046857542189934846614562277732772372966738154438137159269699628868807862197376430543705010280765836050900163609426237964860582411393544340384383149078252097043284039447471934101963312010496746922475232698100001690542062777638985713087542780295844624947901933227621344897745326758072243051262900887648488695100938412282685089427500193179393173686827874632605231417123222408000765039274195906853551573977355696900209739816476537987033438200016477207171598278731109495221227631461402587744449842452236025969532666773637485720207015614811571114440184317599686606558188616234445811768237401042943139530131420625575584651467094817079176856512317038139884423408418498494207389566227968873944011142270038074243693507061010317711163212864561731741602239141945155276435540576263808996963150501880976285931044594498406221665033075279941676094868648361143917613536754064835609561452294444280809768503931968095715251929587898579161138052674732856743520409214455437681937492769623245846991899040143843082935028766496027256659695579335578718454785458183051768414619903011357194667068796578887960970413885991654437557971667147347755839660425203182623827203593230374024598363963315318396888497633549422663485844923234027727848597648807984075654394383198496963664086852953298145506249674326685403288058397312474601214074628185859502183571790003570638874478791541393837182918323153598760762151789307490581190319056359756535508836039070681339755985025907658053792492848796689701531380319584817999653519459057239402261775514791386314685131209785998919790141675703699307997918425752529148308521906041958578760868376998360236066164037665832963552881036049358330991749774976815594890487200264683725707566218161255053953385468114983847710232917327292759150291825364891632241799603550298334035098023302826371420334320119033307789112165267740921669377882052191274327680106684559781472168095498681223951308765910800999602787511935018273091961485198204238676789523050311598405316154850989137032005247857932924836432946664206828735567754497913263579340512685949292641792822825613295689307781138297325871583721216747767143520248361850646038204614519007287450026055889174584992336305934273399277778782528058035576880942342437817670377929335371472718110626111703233631666351777740463471311938184018603453869093953700988383886183461369209313154816778107239749227549162403766525134907762983042084264500734202008127802958575815691317176091134699625521583553869189460450396115635444809379792739453587575132407889599921052342638103487128675038841754202867245706313501506355149514113581388578704936860169119037651171849443066456250868245972815565344835076950194083166107617168490423493167708281304080932769593202908086641269651178725962904517127645190316316257790998237488825236520082139930410740595957253194489218689116676208029986775511135390004448058823648673285238905975313096908336722146176007747786263021047863409848201369389528121481486677202739064375018481875133507259706930495206929084904189827504576453018422833049879931660040520035297415120359940635039694182549619568884639105091666702625547495010103792695840485074605883272518389844915013457706132179803047016895790929202557344707565897574267112240525956969856064067525838735072418766064639128415847977824758478202469786102314592485809543308632574552856813653479151259900687766246243137876304102832388541636345901559867399662667305761917282051097148246411591191432312281606765512523911514022455670166783634162820697824350960364435704500563835306344371310064405105549884671465350817028127979109189634523914484267834997788621875040493573610237687026722508426938469539922109985479061367820714809978326190596756861504657953292207012333529989347546594543513937155199074307426477264022006211437431238764609511472233124711304934226468641454709562567204867122057065666531049432011450801340404051599504809901995231999114355084202008309301619097224187824032402282566371942192847722556315403868472839521244566299476803979460399616382551784970757580368737785326180771318004424147779094861637164626803954697293242221923456475210247290154339927969365581769285327117843679649879341074280946813801300739262089219717637883670261899497286608264991082329308726879828311692637036700611757370904612789631986030814503132240927520993549477483312767086078720958456504511267960406361698752354509322036211201941523955873078529324416444558591669564567772269127033566064210879112517284038986828138074820658435314559103698040550435023913875170027224149167176500749193434810240163602219748774877438084261021992882608226695688735301897479487847447175798586388637385153481223117809543074148917687062729957499063270868354986610275813653887112474120292197666826649623532986483584143520946966939852363829490129359479874438235087222580867020504394395717940893386568488191741480820059328826221642925239308633461354515032581181165565494323911002736872402909381207166442124037984131859582636370861177020246779550755436442129203844025503519957961448772141839744302644770863928237638992475807309770366856833329725405298386246814873136958583577872103518471940569150092912536217942854863043425409233651570126301566446797331658588501036773147461846141961598884425361715082784537919161106232795383768929215195829892260739424990121450911020353239723655728677458329308096536629426826185992836649765749805181990780721185780775154552421034294573064855642803451875066281780631630581704456647481843473123719494847285558859876368403504372000155757060766586610261594338750585732621431624218053230071748468101653259010962909754910711625286508955615666455985323364173537365573218823614371540483099806824737428814300074817230334652553062330976790613332368234252937695520236720746102889205037182385316455443522021740309507517271084908825797822519752791902716108154343950576840736637038424459403360466898932796967575263073419078610108721203742694653881178931309410597915874035223448861219926800709865044840782564642817405924436540100187260334768008637620316500866936523218111196461082426880555693159063296173321980846992472900909526252223760730114009526715872306558872472167798347461824140928262990651075340610507607566843250180125630935824873669000466747008244049247623574956464617429109442587488729812668818173622320703172475865877369683951723175808438094744556858114243266617061556717836273877039620851726233098959341260706051003765720529921745169895061777655946141281217292817781049010806564436323777256209147593427018551102387433440037970966814357561587411990194805597842476461050914240936180959853440113217324074020270371583437411122955964026506352972709733590217692831708480641936880233315671089322740627061028963084813859435988761603031532553397270821058407000118103359070676455741766676849206136032201295515175106826734325385254000888825095828014169098272108829522890899641267429846546334425590447043531222565549709378028746914495607430755713823876783755226551379693613406324824877793701029713004420676419789234201061863045613104394235984195001130511883344356877413349938780230111842530148413978903109810697539862577706352168201707394532701664202013768736369233432990863409385868081157068165286788560992491238980714477560362556745427810186882380832261622169921813378501492075375226531171645716017640658632319576699924837721156864864303276040355478343818694596410311903260187815312934390593422383021726959747667499361889167112106097908785440099791658814709921851755106780023892396308417299288648154752355889834939234060873204993481627178497397833132690088911892050009422428222502078135421498583516865428119142231057426204322897612337698827939070201703797086380860164721768869770646869428009567234697016041360184818614812005333431249753480452622345487206742122935661688443611589823630042155707484416029967431095289469357397067994191962408942383249664568877613755239006175916479626519698086658141100576694171181271723847024020573636080847762501714180681937100025934708661944853306172650817249363293525491939396479894243489306422696420703999280245451108377057826119178537353105816449352763430585964679222032941511496297314554754117696911608191937134462107261296703040631600127364840253195209936409289711794874308786674675587726222213738215197230357588579842370618703062321839685377926019658936296657072894631468561308391712912888645251407779604201171972313676555407738189028168531548301523762071944031888487981710541240469184704527882063853407001988279685763523848026216322295404042098372194481034881415830272987211837861715920651684917747211910722969474850443777372936431941915819383445441071560850284490852496003347885361596913550395559954542170794200263032070427210535792676067773940136407859379776684780099723756767713958688561937672386193637819864259691332062874089009516730741517062294683053322877668365176812440664145684518677949857790819690481274113145750381028511756652237591118127835526500572726748171483274246487777131397877042013229971915979910941954755065612664476993774015162861877378595100382185991722894202095138724423366105123914809315465359062555856567178364535808984710623405333929289801612180050707225443487170481450909026706256780452737655039376461001760765543153356690505447226315348952200629349817503341389680070701396203398184820288891744362077221958435096920489886271749448789398326887851543674331517911836668315550478812249235684160869763288282381484006984652573299868726687039876027414833460585872893254027316283427682610323946599432514121225469745497851852298275218517058684244482281182110298399576640005796892873034297175176618799795902088271703763233354151911994727069159507088350851061672638379504828863613994066839182957687796734907541859421154483076974684895151524301120381047400734204579655812728519541298176885926226322875095548497091958898134628579076365464276608848284563578686923241970022082844616849257536064612850633046293504318117278805197243450673976155428038357956185278596954675253001980514505504332207601270640638673370294686960609397424468281471934775341044370026856463194989377992856316039609915181761205171558612674431325898678967976233183219501137593101733922817936092784579956771045731073864849826380830183934988292272217283524018241551500441519119528121948536429738741815561238032583145760845801857204386942372861962383246746992634251092482894470388561078686777733339298308067822822318664986852243193078810111297874710905650637564781761613287341605913898628418459641373741419658372006868260375229437595232640307488377982178908016969472437360645775639648694455016533034035594312745594875919127795932544566112862050719247983331622392480604743547250521718003645941779688924118723803564222603081651892107237332941255529850266659504413442089769951187531882676849345145405138880321069214901974394147613435184562198336869219041996140326854933274506528992969348257322558671330359493909605480350238795010426165576348878330384221689181966671116485695835528810756293987877211271894564750741648188528747294505563493817022407024501176587701913017963299883838649860959495728830576705819879166554324457168104251309500803470506182761313489260612761363045534848805012592694153575444299078044078237882589619035347452283648055959348424100206078386070783675159395149485911140695909882443502176389831878799859568098062955789719978607694735945586688925476785193642195346139938133786568705796150924974679694191853376094268569464361655360833368658590893176620331417253560954248770390317264085299028101647319966683038054976962321967349275436284727296277526194635055745026813609830947434853546547400518079221379546103699861120305906250668308709940827641877513520747748043113129998343798126794182514445781009620415014198518252877073138496247151297843769397483064517291300994174236818480258896309671029616071505885451198256517541411493512008098360027753630805369556716862623758553036229950349198656404525766739292941182486919891870470077832208983535246254647243887127133210456589440675188150950358287500805079001354589471358413842514139711365870436286425410681328067070191932618931854595928405910077536542171466537158335949059979078194261858822230566479984300262834302998130938088813914732936863419532725914648549342133457417667362608344655412537355485964841260282262213291539647713186719863382039636303236282985866214263908729506708182982889740129510422824078535363640000275191713184207150476322832604433711373689213445668059216850381843515999805355610046605721868245864642255872439706009381846616208060828860053209472456539044412335808227159079405350726474408297189247882123518881154778101894785328143215961737122184569339475655263255334736736274974378680509671477785704596471967885373983889981105115637725600153156589465348520650537806734227318659476734563353150186702789897640009660521784387044212762208403810300285625385027118917102596443364321684830752435634275190062882444142044873510416889435226489867057328328497560040059607340592369628839073175119191256084259184054096139529327146035853546831974829145436880278176297601329365828003271961049772717626053529863742328276349644557663915617392274371739563765445977036252222749326705599438183415266823520674252214750270903796278071744636761878335526017289302431949755768445647794596018106712570604874491470501488490855582484340465830519651629558243452932112522054176362471324253251875285755537257223618847755080003036882921413844075782210654989301026155429356271505467555008205273822119599718016923826654071212670031617666949666896000488542783279883502832859930313162261700941792024815138346742148352923657279069884895699877991373630461934672642281744672612118165258929443400723992764339844717119913350117667710293494467798098001018293493493252211894769267759707784503116661144135451192304370630953476081272506249286338033816941326673280986286477231703418682449999962036004655313434105869166457585870971806416296063621999202030084931047281217878599066667645130743650969844159796557375187406947998094160556812935520494892841482086999443031161462049833037855591805660393029224975199359642584016514501451793194504255209567234817255737475583006355791308741503113750402266342050602383564301960028154835477854571981929722215237920897256232958710358958002883683466146644181053521036127487664522370057506575412886462650051761984307048193311893564542407686386368520949801750716544847582568005724695638226606796346791003203632780304727275541659753717491934711008088983396158419911071259699069019335440068703334434569466614325127515435318092066186044890472718758246035972521498735272051146344111180811885511615005299271394456885039914402534194936365726037285055192315611292431848103533956939971786597685424276997722109580559397400374573128283202343185956054758976211985852547905780902812672274020787307025072440715774385422328903826358084096960953186295219935306376885344015463526215758506524658037629211214699677105151682063706397307111158733068973404394666965902653762097061393074432463446421882098306147523970712311225157312623400196820745774252387966770753025456533092327975941121825802075851770809579684458667271465280151746147506382827995178492513926740470360538563057343490370907955949397555070009876484646040809185618000466615648838689566189508853007867458711183593318833392664559964179294121708579031527748250525389524205873889135892370333862293185201927571143718716466688896460743999915411439900851302235404161929419532005506012307627979798676901666911317173570223028348281093154341233275400895096988893815728714549708660593332576854597305360418569327538522646210529657757696061901263971378780499417584644010265434649496529451698515374829788473681531076462662912567418431142075079000901758738655944559057724196362106677779025455157462095052488195891033411489938313132038772034992866951797746556417092249241165522975181476065286021443500084230383620621279735847413257081492211635896922847326918297957838196953481925361578227107790485960766868359996363116446009769642958945271661353406823824284485415680931505264669858572758627891931487139389682426060350234371193920492539747467348620022319498429380988502835813649571869651916742545857051763695739990729731343008686738041448970076683906324591003091893305916304841741489404871831927584366966504391774741719833333860388833361663645971500046130383543007266846364232389562723881921628773368075062808919187032783171145202642260365830210795596429302635329844647096193200294821012353281676397107678298097955038399764780788951835328353528866641346666231941029006809146062222886246073124176401372730115898307234378057820291767877835291793309283315792863642202283834678136922372234159050164389506071258330059420327574856631136633323240485404984278523101597670987897731808143388983204318302972079112220568637906538953412706139429955190360626172379959391213414654841824338598908191725752960307999903649740697567568184422967549598471723982543726321503615792191692432670360260902341629983804128600095464103240838108276800507442534901785010629578338547578542856637952388076348543625199411700491731319676208263232421804220623150904693188487602246288017823008925556987629517758766910543236877824750387138817756046519971073251639418521173268598331943709466026205616312930873061144650179514640870361729516599038804956039273541120513895264970010087285783720311632206772706540493984154372282860030585581237820522895263440643169213850867107608852987191949198778046938191729882323709755233034267966061299096895215739144147195440622164705948200013213885507311716705404596763741488856235311795263635997827409949625397078300102589993516433350383814032651820786846973732608523065098846943360620374614294453752528110372355041151294123172906438279500834396473590714222511882552367670325809763981122404345511413516068818536679022351165034747529335538655318962478300059922137887497524121831681222122166437751347616817965812786069273756168663822267250045558774254768522909973253517088172350249238651263656765472532023667836464515719419370319660166215376509705384922033762282217950705554722783294088809336029302545040540130684610503527845061171101920140220852375147209052894659896289630691315899255418624215339641450219531254907810819082916529203366925875261510586491524757219411264257946635522506908454416499645791829741482019915983748844374533386961834171521175264513966688334122548571205698311909955187489707295603684444800353248847553181856001765992694364653379712022227656144644674357232959851245324311666883450896504384112211179230600983169717700621194487959244428263453557798963206529933044011935857709842694041992339820766033001429044567820719563547012117774701782831930259814092222844413633377804242114339542496130494186969384951545559895798019484372373819373029259535351191955981403149629732869408302208464035329060752607985804538740335356548820294352918273574446498370108997403577357677934720566305859578207734446264696784068277482309396807972120253134541313754870288367113557969030053381318127002384155965283686116379061303580695278074579763007321288202226664158046962319967406084769798220352035762566193682230052476005338128784251334517393936504146790472166504961056032304123065178655786508492691442212873185824079347011341329357224192815248443706766612571706295748752489866970494802630466989452667937415386828575855629879783130688163204337940273555515381192722498580641188621254581328710491405603801033882645212672856648171597619827577046383612651055220271396244536251719003426686987384151832165338965762051408911769876443211245171529615704750714517008943173537394539612738975107951918427684145043858191347293684045138351970690487919921789093525834507123635239894924971764872618982776078760633160522959484399220062483141974214758336836366147546392457849996885271761001571062415190738367905085999029299974115012383220150534115672960154755007443385552107389630036105423814025611832754248459683553682676046365152132281713319026375827010186529257254691337911476039926219136259224009162043783044922305083059561144240729036528639189222709770402387375181984861467987876552729749075777521593415868248364369640561716267597193951778706627539988242749595173061047569271308631523048309431253491525726418306708554419283378065740430712683361569660209056669281954053348064397547658556038116255583110518033714000798816381001925831822081509860463841040580177968954728717007875837134624577171424001576907671138077799455135021022561641353880323475249965760127565658073061269817057424508898667634003286052144120746282880527156095795371042017622575413117812284001768312481239753504584480262118239852024321604745482540359873996562845556917532436010829219024669295918056115041670488998925736395315394234118305286232059080043645763587586954499872027411404878459877438155624389876145502940172051779315958634846433295738395912614918887339332627983366662143465046848217554233683410841813463172632001856481161441009677802525325785282940403924458275920545503754283406505647666757978216738845249631449924189312371412192347740992561197573032737274788710843444719506839774585105951652167185056277682818340404437597376172821513904734979391069269757350022321210558956376912455626914528769864460434632542377628237281518901577617886453801925804854661224843540044129700975375812028629667236062687807477666725827843686781685517627751478597439618823185030960309437625598096449626732427327506128267487991557860885859250259323947650616559986928877972257590863945060682687894304464704805241236413358697905368562209610039553133547658950181433397190778305441083395440083264017688358823608313554245596576915068016406297358698583495091153196791645733288162027949467560137949517128562091879907384197215324706189460387781209039883469147409228124694419148565162307321890338966946930051061672481660219460460853885298283137585014090052674533544918401260204329444482462280140881638888800329864781954749790979898034904453161522355222922374759084001400924494299222442500074997170535749541716830212191160566512931804723210793384356406038868726865974846207884841370201172120901830083505109165090483395774106056892243540388715408930674241883535179826282287607990670715224570529022764966834380979264267722016786403470793688285665965329380160836419135118356191890162360045295962725484833585874812315869314256298333189285495429791495021117885182188054300939812450252014361923335690170621388260571156926066337675337667837021684600124859927777341898051625218471874057987836450977883210072978219532205565304612486400157173364061719634972898719855500738671312647754276181429671387836772636664145421515554977541205083427250000711272335884446552001017793476343355512172695849179058416571825992609258325784203675405909233924819749269975431614395768507566781206830082301981265602822086817124630151743649168929837644526269564730053183750351793904907235053664765235193673681804450687664435340622195671836909092094554168501147673086099577027179328514928395904634892742700788077713393655888163076472022670358115582611424156371523524649925830333005360536486827055836405550463518674392333427322920871296143180036988718810500277708348761461568044479375878775508170652567322165069759402830113987120489206338868760245564367918079221861771884515551106856515120166459435019125469974919264978850505875098838129831933703534393882517209241148086055954036956838567048627724059908805535458417128489888512709332761934675164058583197271797393878745907107680725921875723306712105249601689588861071775043665947954328692348433554823965763929251919093388155727844416403271134854384389768394423612791377941017252356997171888199306114027957998296578112710877486470818605269496074912002689785322119655376174568163716552344473255358284769511985242904542059690615612178236256269291126337790431713388543764715098537115089083333834274748277903118406448958582146002098421720437148957771219708325796758974875624708717890936118688377627976360712132641213400087482287163378493228632433852141814033664439820802118872058373090356119175663006070567863523589218431098825505926783774215839878316876266023354836846726275975339647141145226884484862056761102184429119101294750530807341974634329541395084929173759887479649931417457423975607534605605224831581522506422813975643370519603087845987157860404887099728390914656671570743391881593642701251099199232493465384483014309627776272957353191538449328626020709662246862716831243160580961227526200832213275986257362243740500325119680543450596808407968107662826607615931614306489374716257734485128890466905299725837099652923771152428045952216403537071004070577486834633772744966235414935865488265323589939610405029814044349517398389041459548646611912378483705744371986120989298814604334811121920936581262483675726940781544458144126170798138750855656346047479745651710202668726618908726995804386030558173646229654832139388960319573248933117832176088937465308992490501318772208434069601052821370091704216291733867656267391847653500356964452357345002777147430973124689200707913526388194115264883289470702630328448672991576289390774483455478604056745383888064084023001999467383924309500415252853655783980947411754902379822170417450981270024792313996804039566208062567099055959239085943997677469619918278753664623200281764299734103610369019068383813751748748788372315828180741885439019655129363083508475622105862971817976969746884891876358249499453507891874381700311654131336368534935978117065316503619175109825277801749959721381790590759624669346071566978908364237229325495812402401755382425716773482713309609242875630455383561544198334116693144728862462220087213908397595739589896247654444385829144180429519190987843057767280546837218197107090638198434473450636384206799199540746793935998105494739276494999965004049479189611509151057906968395484055985363220321475056044850891489126182347967152540808427240957251417688581012591635757462547141103563880709756162858033271840966844555954149695568105447991973223700061310096561282487060542729375830522136747783665603333321928147934286582780515745188726974229048944926890969379508876097952104107000160503754519476873589898681912487020924007888386929275460690326091752993601706704884604763079095630561589352468726183726926020266042434682127287852771325860658729896453019272397982632143724062081345612206411795349964827510448052691865092077379453832850096940488112631232202203829026716323435153073916189370519919790115955955560668949773905602533145678883195544505514193507206246676528629201978279146933619514398530632968225340175123463040412385955576504730369924995988470869395550543208120060523534378108923374477765522053416154050159920698341275433229950364643922550909867974952952893075740099723559476550904150255205684349540131461287984045091109380508126500674697006194796444692025350630341010415880264157585642948562699815888192548234692402295360017000498595964039366000979059565660603803481891039407440078159150054956383430007505354285062276093993866483163829898449214699175542952354299762098282586287849861787670381182448480721248839245718213708575379887141967476125417846457338259900965611392029477527876598099654940085829642883338476801152504209888060007055404896652676564324835097149515203688095353219672321722593534077172722619046206270878280824032080222632581366017643947290355165170170395913368731041922148728699475868862188591366547913206393658601601672836204117212315454872630098409911256874226078277723068030129464024684244554558882879839995387544595425003471203482131828249544067438046446864887982240521123306655232847902917598879366000932459362431908359406302312678135390559509017765730484595743539428537292581575516051443246304390093792117839460269114538378160636137860145071338694577412117536870615798083583272003023665894088569461334574040217597380984912105876057506696618972867563575703761310150689654437435486928869468293468645791798637990039456094282536911892435192650845151690855637717137661713094367847258302877756526746570272584777452579226386977474622686300584202354075926095738630152673528765142533445338951497022075945079367769214806523828838865784322900785445609666899886617526610384912456596072199807405360395806438591798078675350197563561671802005148096509842318362549641683017814807003704292464943212783882290961283249585188925204284405877450281798230603952415649489821472992489545257194902784534725209727164642360561952470027313245275060356478800094435198462159142939735738059966789083983939693068148463034857738138694962836116696295759441422658181281618837358966296811694065829761232262046870255915006485749038724721362776660340131325298808079918566463831626370612646435121602805173933676844632260611804530742918113432992555635858114210091691117826293425437839210608362260128526295063083444946727055799472897816584186306089142937802255440815897793992957911225829470156605186590921622514189895726361083856188761322012539885012013069527345210361935033432570126892342767084541278465829517379016255573515684733553048114000619538884787269408409507295668922613541421334549648040195315457012435986578862849145394866111275545470486139567432557202391294990897612616898833982874527436316923023965859597437819528121717244772578818016505682016913282783202750747675395447115850407693272924870248085294123229552274941396243480771459089585386577530288331657933996386930817086803190480673255087138369910743396612536259577265936280102175242537586919850901492539590932878157757019682226119359980266164354459688894964984830439920662015157202464620510373294750616900323127969289841381550672008479673776067406171115530514985041927137768081035794928991183978969568434383709317878906892505378597484720573566280200246416948827230986852079065537093276123910815043635159622912971489026023714987937007342505113708155134769124076843836281893724945601184544355513048528153495011172321948997772159492492144294605551442729814145270065235073626567490389989820583965818214560383466405256701439342547949787044715030318217333721148132159514213029363522069247058827242933268061481909629167849664913224929143990741013887290786834375770101873048013835001612613665672875465204619071564518430968435333378283203121598361930285317210198066668723951676930514037289781144021106028035906183182565524646319893667410712097268910516485068782907276422602573909263223118494606336987576630705539439219616745744958236499128482608912459237603372249798244310715001064877885598434856705741900352936477801351980147011290315016604609086986638144389557604187708125312013872796346194354036630331467477540266282161642210449940571773248914048825521134299759836981211085438525055132710723868382515896485151271736526483657799407707024518886084272990559809617772589096134363659209446958700063233184578744007070031877374127530171260201266041632281315538421753845917919424589826998570364893355878781948946154817493588775920726820645435062991026933503064329856476568692383377462853370571203458698781761852469323151454748877062090379797925665523560466035959957534012175830753226041879201389602933999184704458770230647507549298769615772237826184584470007037088337142638143972724282619496664357646599787987579626387232386258874582745017165154794436801827859417773785732315226302096954499663809696132262318457329847154145230811021522426687878826602423441046733237556862067654262689969839008285895021972380962725190763578893248135118267247283293330192018229414651415790571308181647572747213187904112863282127568901260832365131586238006266234849930741114950146088271580243098332936544642840582742765087354963171143791906748262691295843607888895278972808205655479427105543434843917473329798255472220227594805855950683606607210300730655122767255218052973134316790027341105593810493883679975220744959999859715221325731098660536282673373474107916043844608221193944293606095251910930384451890635880468229723482083701655239302896778867800067773088917068340430924270647799784593046824636863637611862903323132521897453113825558469956405587250444330735421009451414940258527399784307905419427119865918571720068953742297242476344360289041633885903096436046108132138288152785982020295831363797864102736285014487414849990637569121256402740171672888525050366597695168422562312023492376411541639556067708343115765948160259289693952407104785960004302165232436385740055143912249321566889811753753470219092726082236905472875202718689497701224592256266228311062820242251192625872187546769497437554890768655916439246894873750760636878005174074946239649918296707551535203977111560881765074747086343013756904145383899682347916787115369616416118296507007436257248226491770004933428840054322667671162151119979923316278699980463742867696577332285363156165796434524586413727931133975995574329939319631392690767704852735286934470120610621664101258485618782260736477407387420494778881607796960899135049720808372861966438186107618697738378738373605663550392881688946591133987394757035971177398289511188338937157871757290373047398327093386485686344853574536847468296093217805948997646275471201586180676374945045206089144600362260366503241871879932599311202825368953904632593800323620975317489448578429682073776099089491999313432087476830397645705203418564175583404653723462563485221703691144621277461555372272363173981338483003136070920944599244164022063550390486169145318964529713295268892707576391293501078833204785661551035015846621564954417896482940860248326644661408047506108354416265282427152108208634105171246135527284856970488458695996773631707443703388697656301917516016686539806630686527332780193842814749114951535523078226434180272644076151821871647556527853353439591638904255739753811167231948005711846709274663847907935942688979350450893539571044990874098663564792594146081038767741201585130252847731442151759332185919829371525498543490828827779757183095231962053424943886231377990339912812446660496061486832146257497714094735485548539793967555130698009015571148352332448878983214581118862022342055267799787723413052053128964144387074932622021274394711388084595818600053135555169529548449528598036074017537053614620429424605608621023886590333084506794062745737728392607719451986474632327853465388327971126680636933963789431113246157742482823770911742360762462976001623030890381072342965955208068030246243991998416484986628493266934130976185993360216490656082765669991437529017596586560979002342592811146053048056343989448362285467331652554078712635761974707419356229323282649607186165289647599987113002273034541048789240176400808623841525365587584240430650987330962734669075750818236578403770484837743817428023673524658586911465150480377650719981547475529680743303448072572178839409678348121497146480552995384759400601665666429837069049049218462214916446355479366796737666311424990018384017948568646627005158553528033486938622178026680191122757608514864666389352821867963733636161059254910848461686652867456631802608139366974959460625757715099315340971755681257908864522481610929644129959505524850197962319626334052464268072572970792036268669309902399383371529927432894914872767029097322391058496006851027074640021799790635211008746453778131159934319992776945039517387897921560039294056446894436935678484702277380821856217991709783232117697795797799462045996984413232988996050048028109055293821182445885519460914047237350267502812738739123454625548953535898071664941301016170399622023726842724049605243221885134778007649599275225475118749271718652062604146889506060930240249101610441295043521347056695021440035756479786829335852279958069396387419260263572398655285103331130905658124317988114315406013182673196945447767369781365389655037593622306531953825945127528776702119510567672098966218940018537924230065952836779955351955169828168336156106348452660310537218189180729047764814511311040026792126330319375740944588912062480038201335750320013733744118847136667436745132101631799655377788198063274481941229902572794165012812251805903416026572576217023391508461889928340677429072354381503022996814750455428000653637831000707867508842516836371949210006419262492462854702229407730239885441168522444022123308034641787162507702778428513066414057893847592712775031388621007001932700406568337690072749203519484388994643453644029785125008101632115378881496681683894217889666253438597598836948620719030968069714628550042763044196416456468650666327370118303656749122255532825632304299189902794113558505693271173830531512383799691280860934501862451435238042118697147616224749591113923988987908647498050539809421236118924918323568937884041795879674797911983334914637026157643746275884864931041233879743493802130030095959255029416494279852543101401345450878278002363247900623173381430341408898617410615586654172540432934935153641026461635092926592340670981788381930996694219698841136222718340353685707043865746101793080457822538201515974986994246638065064167628693944421735788812050505003286429486806948497610291101832500062306860876641099345963882947436580377960711191772564722078751980654216115196470477712796409298456925626012907897938829449393892750405380930787567769826459346861230670973190736460452357485222983757170019536156142827093845290909668721004201153848178760078299119593265446562175389925617084996671414080419092559187932075130229254994790377060486828919213138523676886554787870332319415879695468053774357162757364664516326519394351690344242012256208992435460808943097205292078575788421536545341234219479141887271374964722466488936039981101583215126021649083906737981168089572675664746204705668567036977535560896611134174074306955667867422835724873096482790408638221627030538183964782905598045225805952338971781787614688816837679752190131069318270216086400323553085230745112646112453176625281262866778503313933555441884556790569902746981907797661467504112476854401571442231294293776229880499581997437862852115882139582077345449308034639931604413179149282459353739315760321018289310253819934697263033527800068625951382030180752912767454469913653829246579337513493050423772490635614252616577966711044324709831314275100590155237120358399356499938759854880634695126381023009521324928526152432992390882579481075544527994342677797520922625206528781705081500741293147164254962139832314086749607471104082302574558752712501307777343968605251787423590409433748444331843015574439965596032759173565282804600671704323951508222431597727305247367329167219064198514924047909721921264904270699046164026288031105016485462685007790444468118549248818211990284865461071199478277165164060623199218578142257607642103800855828030371650140334329688141853221671155136000884262200293461516113639476725435870140235712369392021312045337521117129847647921262944236977644626797998408524561911053865796930159721781115432535795037706417597466836402015785064999529172892517649215535349796589471758097201920206420059258271353723234965610304047226785613375646149461516686017026310999514716417221088860939381048512593763818328307559987809104654652600696355240466134287956746383001125385737801551163187509485670536827974747736180046158582511553162390537413846302091922149645230703734427961214505822942566249780776214789884558535596802140251745341134662755807222741069621469326766684468738224571355509662446884161607174432815261425861370115460683706801375063848760358459639466417123975266658066471542087055262626039205464947687718671827481940830441862925727213209557953713377097652322579613103681063084980336587170864827921467881912669907184337885773012470155780168914307466474185930967712133920824198009996048357287339564726708893544937675367022551596903471628115276408961677086891454364670907195635906474065544918856566158612326732444292357670974561888902076716264607654996650708669492163948079412641845456872500752860855099666538435773712553154021450056701233022096685667283178824460057855423475537821571132779061218944409247502810444961820244709953207292986303731921259368909061154286722423283887648625905594694510344309473218800010384465410614295532203248022530595944792933445039330437372582257726296682583576687596102317021729207304203096391544591929953810253074229257956734337978139538645706444903044777227706991371790200866642396690512593758578426892559508903482116538614359866911811993434291585673303912871952918476228137764510159001708662491033890700072641376708981560841871973763597579116249088504898418812813078453516170081468519188239034988694910468758763775761989820332489813425957372630487484855053037606954102814136596074938134877988644383931017878047805038022237746591174410702402461544301583323500218334781093763881898058258345876151566203831454182375082290400170110378241827624493227891504262624430312795529492838295268476974585586064665954750583649516028451196866325886395866772248213887224058896321357910739392973349224227172974371322981403452860071872208482567720962260660293802724848298107870443715047007690446403308982284955633691749764010391818122727315606941305141653805490777699310187482082244232841755837493865941813404949254062121649884037654673289448658064294030495519754008183246202196037679568877216743104979054311198414368659057741586566882240618244754502732799622776451754514761993261601290529634065672400655798160779262241629509067671921031513497065226263936279330349375010858358782230433400684101283209829905918808394453869961875837848258124869699362971224014625722701641195976707538483456243254515366845555163286515911460741562733087676808448135073743017059523097858384524510471189861618988249304437667857229908531796578374444566447407025158336277941219898100624808942342533046931548327576209016752774641439827983436804378128289031042607700900743613924915804573202811460171463452804427333644002424846525709285760942358624423620310141684232011674225719305133142965238809046028792468653443571595902406628170089157914637735395413693340070410400865191925104605150108083559119744933068544707724897995264644958481465363564948731191972377998421293290482899214940508656952606456922762960285711298049472352536534309633894735553408412235918816637017480615018927698396105053180236464729531942913465503761651268662112468599527870252033150468219384141067775639197386718833696641704633087147188671342808234267844021246166258253322076448137891985672020985093194143425105942483563587865450243576511854998086431815569192754829646273712404632644684030263499080916712876521360348084757084730216640923745264554489957268894443532078281303240067650057605086769646897201866308873114856911425932715825147673597994042979294171345138049796515780647686450790248433330250067284666005137488001141618448649150194623641029096410729250521312434408068267936779423834733591093375236549767576564227091043308209214950588927394190297782171775783039500695028256796954140876707383348470480565770191579484494040888394367103392994921043755443613686554279626080206349916396457571954617815097235563398357293581794205395991806352652082375303256527143217309457570645572715693934542526160591929895724103693777374186919464760975344979608297131860319904969984036362143671181124412959842386591326729277146214513353309251350645568474829066416173592924466259805661325657418364198097802725910341874863837880356252959542032082208930571654326523120551009645243482538195070096055094794533778172157504963741684180941392364286945481552587369451398764169561141932485111721704148629979097171960623242567767348216327167187869877407890343158189263948244551397934440117406778706949021420472593611922866392693207338446003935061088908716531549518286148829650655245873006910503468131299478752227723374946802851987718180567722046442409884160329808726912060377875393524786191453088641863181596991495626673487140204830681517116144756609608095104620524419975393695962758944813006842985870681457450370691589894858183248727637625076966881726046817802822366619457689090196139334869023678123796936264064664104244163951097877392443206221244441929736376426820661398264448558304057554489357599574878285302999905747430694931132483055004936977287050457435357817168314016661413736035101402244571887979755168880737639223512962775288177826398883899254445574496755759183130885310152428287568892674500199448491337622095598806396060238566152037661768362166549833337250899442797316058647457460938040511812363856846897684850701151010444650281111078926617338891484905919923437685669386046906320165701865434431045750344809282957902749534383417231075723658827443706105314144194629574567134017746156218457225622327273731364934033729389484712587149164436379946250697201702199817786750544998747968694012596094224518643885795614518137987127262150946662721347208655885459455371965097059673669570558739227294308840948749849755370917612913796358383301627647879365204770072438823000793085195513064831079767349713668593393406862606028569275612548143037472029395610848942685065006102993814533425639246606361140051383888824522694496146512424982596864438838413685167770342877398215740129504109733967959761380617941776608399358077819338459998547085681961984306269250276849212452821862190382447441253421370176708228691151046055188923852905522178750597952730929426791110809072847999666849819459146248069611494619319077307388942260207707215790296716712262307900133427447564131836613438368117154207708359232506763089779834824346601919316706397374566727540104691364605818714215329933328200187156905938340706617733473506725324327869974088143704763856503337600029169279945475143154750939219173905443814836403070492489437983755064212245554855100839787305782352928800326357335633219822203216402980511900515935995431011281371795529099457964113378783310853076720268843062176049220877162339121969903326659557155514312105836002406677555397967376457193614682947621845572211866511885883263280024860121496434639686147912614902934183792140706510325442376165237605073787496159810225751842019196947158777779310245478932851870848215183215534453761788861955836266284574676015777449844227081728000239847943153734613672962903494126858407327454673814721519694599650624208734439387143060521005230825822939061993627845711885692940395856774432835509808165775298636109923198619411595582452647497064060598357857389209876123512775832422360798718402470162171102935862158171382320632273615958393388013804372507778997231644725032239125023800123321922127810750180722193946084729645944213694898938383061560641693231630889288049746147713983034059152831365101076458529427543431000025817876825580953941066845712515111231820472925469384305825944608347567203553440189688846393689726357307780212889604636483408688039612715797402369617875885606967831645261146333535647070268512697993723152589738989505093459711217578638486237746162049849210759992380868348172112431051478230627018506257882911199360806208712706255125674033967570959704592191535671194530367955681591781687734166257655863591178100549686878889684918156831466304106401546266790399004662360908636920681282162164457501300034834881927441326110848899179302750845498055281108779101466876393145520555257094614842033904844199053632485919138587672642795966110629501051892344735613430634955844838357651552187581982355095616407018117372514051453569357012322881172571007315739281787949825559034662202882727999890515267506181239567260918216879725035816492371030855482335788459176603252030101262472120345178489658594026199553443800225584792298260545047214220238886219608572246779577399152547724823780724510484982818702715333382647715824627618001006465508592826091564077970826525170876409194029347234358519736373279383255764587725411161245373201083155950503451275932272797067452410368726277450224217130970965812201353251932900833407074701637690944373759426679118117954462540317719299250943474700150108288431935023494166951258306739863668741101165862855859687465162851331502151601431103163583618768071462326339100239959649864007451087372522943516059125133159044071232752207266067016181802545522297924897172182873860898626566720192015808805850316547242062809906986414283823655833693146125063775134722718298319016577610626487039400153028251440327382322432417751241316346127005510175692337496344851975726434623526750745614269338892533306415190994736268427774013591291540019138505020877115305056092942505971482867662978993582543102882899235741073235391353033909239570362325268376061098334154909479777488066036424090961675940883148031337566330560929565282382021361518227865181229390017466585017879045863753919315992975645977541245724682421938008201515791036162820368959099069401060296384189216714031886114002680673847533438993403428893665783696972295845982315081329321120824587686061692517639541582885689439220157471629368110238692888088738636546328676990077523999427124905833675454954920692690739318150815868705507978106974081145225938017955931372274062723011667130642845269395761392987618652376491050502317007470362963924293938088563464621416559391027293861266419017970649721582949506839317379198160786069671301720503814468039077098866913899816502053735390830878223253818334489560262972721313296620354842970495691768035691084762937241204908011182759766952382463294673857303542443838557244987505624745984513871895007113093479200242953189606107026167625251235822851776973025138131527153991389232842274909236914229250009920295183144432844484933543270989292951162293209623097195075136467744886089930839573769059964796035658159635970532053290348782166921471729835983748976532434089111580659349605230268550939051091248569449530136743655575434664598836035567450547671827817846588703718941537377099752850624301483123193734384075509454617903723159706441675781210915494000963347210096026372828488864695283041221760688083740337772325249741927219790693842457513924459778353655890168820701967757942045409417453963867699232976501177713924468488455145040077359786471982157778247279042920443185555132962605200899508770271575599195170429099130754736763626450436182746476358312498117079064067917813592058450701678782765959914253795206813484099294245201408929516779674371542076433065553173691160875567428676219811125947730569819166202550111794786408743207179679605399826970355798012060467176427553925287325935461126981328616377075786892935800345870374469139513885144217403964722742801781991460516829572104076515871489930559270862755458785106098871707069745900571854506749436861028909413923327734642264159868316294702561561873849343921386164782212840872844042387895985748040224881199129875170067856300891890076874059375352792170521309853491646191963814222294101035364750500753551681934238269088388923017520810224019979656740031657092265940382807311764958831737828063914716891832742886846372871555885119763774506545362473647276832236814870994186906732892208638733327709920673375353717810676418134508120338545412960915940750324074842393807653392629142380829457262065420885306907257648677769433595646588901856129013561749913498096530916433949878546363064716646906926651087930588846014558730170140431877440012244993955765203682454658896652851082224044695069783687097457645901564650235055112025484202235774951113323193658902699449068617005176934307629395773249393348271136051047505735220726402661614423499999310495632525754564608374547711426023328605124580849767973815288800049333175927872957814164538999145262208381965658618714967013446283722778736614589355021608440465063320169046139230963076569654270029285326960745795788286412540228651352431770046416996422662387327936734326337387847701610342847456583538907080609407159850655600088270466830473788147423539335514869358757856177560088197854128433425054498495171027865708759051160645621881367937537874975786773666969363744163278245794319785880240425419690614201365114923508589544607885336710834568931643020666591209476036648084457720629927650603747024365969036220548608987162161854266036031630409831138639409969941080042037395351654124479114723153613869352945211291922863218134244292121513521355307481046256173095066763073615840677957435670270086080434170400473102381362578782839572153989815723515377540315154212044420764934286086798702999609765904982640392731849111781408815061393454657925815348529882901759254850764793820821689871812238640099968674991412852590235786500759137499071086274416647190178381946742769736906489497101033959042967744290419331368615807087262579381664056705674627447191185926295083789004095989289667474930947394796954451416995079124301965507954904359731413625730677873854015236567088942692315738917143656892394484415219348462769146539890636555342962346173818059007554729540433150501232848475989950892691663856247845387820063799524051322119562666537848229328433029784950399757936071283858902685348909458482771187313230054837230491645955999410032249228057432942744894583624329152693858751369098642772457458110656234419992003476693661958933181839221307323826919541097112765180344264633506963817402220161450444421096717193538023063209213780508311924044861287488565957865491308740796849845324478623773071913947343058664452583086391899177127019050253645098677555071481945418609799236995379659210565770652517803382689497708036986722876958270818382105945086874020470992606953936655320467624957463622091810048041429125490490014022960923943055506293075341948745327538061865035488513819768087357159098430125217256241551020601107939406106646320592741331483636668026338620891370574505936042068353006274773710152673220613219656292898844768388204442013221288384216588362497024205224858525092523896171319076481077602141136356454151252634260177406839856471135858567545873352091558802888037299747531315287381176847386280352938553021145405133526649892813945612541808162569026244915822862417519563976556891212676884337286297925147386384382382355501985205585333955611208634840258293451371942965315445135652114253445697137262599225299289850615676325784687760634663239125394229885047282866974650631177046686501339095097075495958091822280290978525657287240746556736618773529962378198729307275946348831506980209501739903392392357571152551719103834160188110290010219930478547046617803326299713969830973244649668651326554053736441081659302241719128550439685019686643859323707034708643843094573857333455540970720886210062093077666790708520418705117801850566773292034803468643511869125823469364799654462379060659739536379445816211061766861288621033851075857325618365955249457243354681285065926393086519025935185412125425716192329374330355099267610491685179652956384195920517683937255247023984289238724933532575421375526680671740987191927080428698128999824130791182647517332205220642630984416541546863447608764647123213876932841182251857391122071607959258107796166696041568486453182913117790296038853670040806438081531906784251337609504470467924253102817842921764151788166010766176891211895294239343388314720246466942046324436785741339083181700096508137300513521866847900986645827606975008741807576830884182903914032012642313772398542876970509511292986671321891778342530561224707628274179820284509486061244512554059348702773416159144750905972220374498725292989639442968642222062732759079002125166476499481308398965095116334288493388607507244745427461198427326264407528697699953631977406295573211039020004484565660034191595418094479994705667736711740824239325583489365389492138264466445155275269515247656385802965601474798437617891324426166325712597752762085482432301484293516818950765524110236310938806344336149838372110026487451191530007171536509696408828058796060490502183687205541585307445870148634322293738345347138091207524031460396091703674651437964211328784780188120451704333218389887484389543757469170703762665200248469834244159147600721190213295085821453703386655627460483338375075857804245333575799112006831090657673982769018582690185748368512859605435069703046200581788640306427487306110427302929311795833588502647883063868132431040668782043554361318189191341624530791845363442222751668191852317292818002134346329741590751267349306546204245263411244460321290986744892040769056806102151761714229333761548013397989277396117033307896716504811851663512643638811279600057014709700089551264121905941476122456501813484975057178591214379945831883748388566086945299179152214549827969196909872904878692797924877149571859117368350858502145827621989082246253669089207549631290608877672682473362907113043450419320258273317480753048426994201040685691953249500776582619329761988086782728630101750184018137769379068179868653496598713020583747784275853181944821382328583266909766533422724715201266221621620702250529059274334296012646176934495231696746584134744635887146428456996616870160532144698712380093046558881598358160223390249011929335829455609505088669483909572805115114619281462715291453860707383654222715762746960918427779469082419890307843409605192386423480329897531626894128594602210642656890340962048863857553616214787575975655430468539269286865391989599264668259810446944129875008971429862103550963778349659660134314482378444646002029837953776963353372479001880523167679278128853529630900596350590876954328327523319337675890962387691102844531701120547645022218729726523778823078611960329015895052518803015565348302917934654851023839679766996896149269264841598349706346992225318632424054874418375002059263984583556350477162224541178241741326029722433940171340004592402638300754948753819859039820292551965838631070402891391136029071495244377870305990292750209341440046107847921331499392777205701596959520727252218443992905105479196021362581975154975320093152649909003885387573051038747915177684541135306605089743028447717735982157893463978185487810850016600198750582944234175535828059983315596562921529008354991101179940299944281312119422549838738870615636699936048619275954276566870867150281057426774408065107929138601410355796522394994032694987791112629391061905287226448987991709750226898199739721170443272844414932090716469832225762236352970093391338783388535045408517499440366991064406217537178663571635262682816690282902068319692839860104005260208064820453903825362010822915571654043479947306022626255544242994153455490730011200128272610171199060290734256128479061165062532072477309457242221494495153951942722640070399500840937448941075330530477580220880142646712910864436165846556383447102321516285620804429027001158467138204372219981449968264572297314458333885422522501502669691101499665668967029140213674545039258617709546654483806286458079800344421837493615288245523035305033346700417861797924010790225534863053115809100282656728705795582797950084908263939584888448443815096313457090636499902732253742165537159827636622842615407377106173500831426380660880009005383937298720647470966756876393935659404080878190465921602527853937972164580889432475334983293874071281272181861844009604299352689004888704784148588073173474088896012303066604340975435007973681623750755728105848852188967663714140229873853317289604636650715158775582793190028756813070648133160913574503552356865660330041797497243319035285514499493772807377910623215812872376007159631104923320843811455366121130266129959082355887228266206136314968569919391643449239255836688206807951682384522206296335399193099807924037590693962436911544762976013008839777355059072101854646882253338991664184692036802115971922623877562789826423169624097341525747236515529255170078256217359332014465937171128929647377404612854661191892849592592812282202901288307641566197471049188796702495271018368297259325012398819353738758114821230338375150163101427653655806637805126312738834517106537394553518806635895754042195600031606242319376901786778862244558163381618545081594220465077334286915664600151694970922414519772738912997088299133260432120100743697460969619775040058086451388583676355762362277389162582099627624516323190817146450667451629642358279059899407476423745311912290067442092781750198675770964886620407093474202716295061276535820480282321239153106779372134769979273457301352556945220554317184963602978239434775224005816703759353721866126726081637027666784961154458388027619180633195670170280987088826807752462246682061497980429654321571448667317133604461421491093927186762060333774390144043667955790553696584954590316584466128883705003262954359291834344859935677777144058433952523783723835060095480542831641396014128968809013162219547065553037519739893428974764978633330858265549028004441439373038111678989487929244043996410414583454553316006354488844341017748656751628539360653573116938603052238730112635680103047475260137968369975571124364908964975421986070460107308265555022701684742744481007254784037841356575754945817428631227402257739269782981998049680678917268968579616042172792995216827429831630204012599994933089218172006920938744083099381731032024690248798726697621107556488581894673973075478617302684446332236226105572264683477650334873490153862309800707628601951661616024647865752749840535598540480055742649529640256594490261314176662449701799529874510011597727402207390227181843673693415182601049749049759156325396571322786163351225637363171386863911877680486952086248447502962709354784022945431258886453170216489000959413951723489833933542880359064265194085780924392543219421263980556063352654354682014245944337301735081445887695759407694581971528490854465093817550046102287433931232510697524665600764312292343244757691970930847408766735774358787006323139792778626484045098926383696276958518644660068807982538419367364214345643545972108753155581253211632159316243264914834576716532067080927671111238538243017350993817184386297298900439127637687891498868802055807626200752814866893006792906168472421406419359914851866004894801269557741815635343355564281283296063937000148203599753588141435926987498223441804369124182833283941111945244224583667850511560512521908193878210207265706425618951028787840431846503840764278834079276222294128272129909093149203281992929248764434973857589448424632287700514975241756343892458701225218964135105556823439104258886622020654885518768545972918082204057196561203782151322991571431869748286013728157187264442019185295479585652343296839848766093345119817291583167883516973521658613712776603409086634417075990651155715875912283390201662111690466316628551985906575472967162315698021924699454983649449673445517897264744783021934033398901361258989682058109809453359342201080531964430819449096867277824126377288535180524715067737055630083012573952813303679287446006151293034703362316421727597121742619854243528166871707458251537688442793229915470975166312637945337370994808642090107234564457178777701222893798719602339368785287535054597911812573956524294122181738497581535298678250515967596065493710058623491630822403107882027606191785660074288882370936301111424139137702349127753693905424868925740369877792689972840821734229859758919091743345475229138345394482085666606329354313326019959933973239502169899055835737394212552297039829286710457864617286863138805973316137034234465787369483834336840076149996360619536990082296996170209539035078459451520490152482193085935666437613269612000448101459417221880370329960436400843999287229094291103692084567445190603949506864929705989714976905576902070919429683460713176266244371990787290363698708800836977134688312801326993808042478602043113624299348187304463249770347560401127947089397302464836122149825868576023995064889462347260455031319202045294343559034606301852938243542670973140315165247977299395485271861220783220911064449097146191125668638963469703818240129767636264908974081988393779430122407758447188249323249272714769904607731401609557939571291922771496449537064719513584354291295120208323747629044184697133428587267011686415684440424598383479970001937102689915197350728561810781223989886639933704730312981924829856746506749678367875745103411506972121229524730674130224312789004474268344202219989095170768771254285496848252444387425462123031054997854018812687898304841761311640335294018854526426319997594932458658627560556871120902274611453747309405888520078206368570832775485224125308257079686369694796759440434073485133268067257170133646129256812947690671535275850050365621623224664821574129017118067782457057211179240923871716101886467932764084178979128749736271460874705397253199714061452904203863492721023147771564024902957190620200987280897623346670440458048226658395932180571661599297403834388282278474069584591847472961283425300263458897865918504191763046492055585408985158690839963345680411698347727859743744529398152135812493720243099740131275433485388638261845989063456737548154751326690404079361045022404206099484125398992308116810063165017051256477685515847887823709500641121223720337265930408896585901111488605216017100751654451906659252061210184391168047905696089973927021339807288888932480719137692950548874340279244883561578950281167757803796133420943948658107579242356852118483388274193344576631324547421767589570493339952877019802602405423915404947093976596076498449004012634433894982499883936783318003900372414881528260203473247483766698857619466068308410251372605887676409001400102546195639665848935550934333675392980770622892306195896651125488904423427496858036975685653477349764473241016487735262964269955705113076542961370920977907177683233257282874523283579058917144077006223886992137490825576915864706970635827594650295694264166365911006696361271822740297201841679753030301491718618602607838238801659518439475091266319946982196186360432760827849628468351313871142961071044593244288982975453342890971066456802786887546653006954863394967490697665542654589729401084778452308161498336486654650585739741666056523613799167714397290240823818098386031386680754279321872776582337314077872394157762056845416122363838473604882195462462246712576471063393306050052391987517601773475190784613495411580053703229414413852128790288454814411123112222450293610763569115520933085123303496089044639514564330688194623637032677030239061050045661663117502955226391003177976685386249863922248878059150118460638522716778240130582826108918361461444621157678947387430375360880676683523403674037674404904499202631252057117173048401080055535572603549045339471856344776560770190650090453547765870933595073467750287805983873020408324067593966255579003178208817834749908134359122839783587885206514424583873334699474556324546000682353334748864070029144045278073249754773419097776152470781550179412847020050274367681128680418770676420919571793292800732923005411001008591131639364249481898539610069144645818254736081722985866338860225261917979659070667814667373537442373849244073092892178756699626221308746336287295092758195368545053289055519647594613933757958429345603149314586370963090351340443889609977256284269002808056405455686106102514638259911982826439898202937749398560304343387103653604025100203386255466532582959362470168685616323923352338997683642403603254151784722209729609461690615492932882052533182284268824440537883486791078783415553048349498776365113553372749127972808107221598395056282796624760788284748425505585699117601590711685764843938369529055977324460924405139167281954618476894694956800827700320447376371458284414379172857084618993883506212667840800719359462574143336805531106280745955381126149166514091724972865181707868713828385457500496039125623723611760246957888987260697301136312646133625984396661683972471982986707678380396903491956232120567599197615757608105006893381608512683182557859640151140061773602963837050847664386627638953669418745543106473687892142034654660268289474368934991506674572569899066580386873245762690415863881355549518688902935364787280345679903619336661479806102852400947038757535960585345169986916914172765488602123755739893825086188972749020301653806589155390998439444161304718682985728952679909341275222794140283401013916700590503750680422327854675829205815929391207694504908957172233815986811750576453844810116635463058475140697974387001081445654588333258578780056307914672168002955077603425005178946559368985523177639957673911185292283436642956509223848315611426972886310293715568400146140064552048510830251129859818593318039655861541374721932453250219889691883247530088710464661211456462702092439464959565354503426059686248762119990863604459301705742348841249358136309167647547647742932346384353777750539270687668235570416721990915167065060851205721914714825267170690527130446116390992397787206362024761288336136637104792102305249383694202425723925004010911835084776576682201227331038282949373284134187241694618956177415635084493245035087303383990601961975456665007709588590058542468993196313342967003288819713028199435168452518894893497239912788145300297212107643268686783698841018306772569557351836113883407512983823260633451989036506756677837272887982394991912912274612864812773064986216794208623760721194268815798669582442820274882752665692819222830564822024227077703756147746134223599849366060003648175506476855276624013401249140829184519433764544275764926090197622118836620497038074560469725112933001348203595301597447967755042164244463325320828829490267228557600978862612445358464510633277789720781792176126418147541445974105387377008489730401017120693511379852821270902151541143579009100281586809763476451126013262584824188793345327529098175528446842291610662744071400315003732760895410082235215475099724695259913399958533930548334325274852502307037106211038301194536623046167149689667901661934045024118299320217356085546479364105135706332243732084152997203958449870750083928491558787772812803442041632409855476373884742243234973087947640406970713143555199250612113388401909213489620166340007199729574453985482634033447925725968884855049878567835385962130020244303551230022427891863517591851429387798398888289290102870471754707958942312419239104400650600600198737175628958009882984604968152480955712536603584651273849074021487184575509656750546232304759926472846911571498503542021110517637081756949453361054739388451680122917640757640462324022277199866504703062846399301075769534086042742158599628446726852846493822162675062717084533128615541813283300414688380283015145563061268761544810850058975806188061673839294940085168046932343788413802457180706909583032911545854997592774704656973265800142563474579809684950382602001469192505772679539606221201420322984189905236984638169576725051810731863583222493911436481805351797811396876738691554289445780191947343188343193253522365992122910481060476484101510174803461784456126333334087867421651678509408295142257151839674570949876619643353100864078547539373567972962233625556628519088620245560739499361288999016228619513640751310815347257693310728683911819500261305446458346134065493487675106797848564029341559173806172957519367787755275670830787893839359276799075009235245295982707130430550451544335004518116312518089856894889899753221749355079157139230331764087662377126763396192211848919092997991536380398923484669500537545581160699760489388199393646791284553797160846153356303789330616043107217930532389061948033666385280189398466193152301822597446890063366454153117476499848489977494004505596127343606550361857750497330021778323349161553869430771052599501350079624756872145203893930116123153742594522227323308930287720024079704480910016337748500813493555951842542795705738013375124852619054546350461382439983079192060413486405384054125922287446666003627403478846699262118449900421517231788910616278017324557841828839144919071447953234704817498924696192276836694871039709115705799745109756956081826597703004518497268090331405107700643777630326229929704470812944350460206662270213609737420375842434546353431444782947471138220488652322807916286900941659014485786130456811890760564777408376512641863338725886020532635977476068941497248259430582155006296443442326942715406520744109549165546875252856454681255471073044555312622396771722113950369647037076564090860863584136424048788611724715327752141928434514411911722766662767867766189679557391937413966034924532548565964798441669184453569564927594487633526860154713923624811079061694043686710177254853297672510353555830576992961048454542630541894253047708852177412204583293230518869972050270904777543513898222349311030243446312121779749780113141150052439128537740057781738291269140043584347345349488754289159929304435846863858465694440141822567539869401907779443123596031313333940524082126390308089215057675198005323357277013097354490020806819525822395788318937808355130523921298790079235953763247724687975059450518531484949326083450545551010132230166414780536822104215784041917198723260815258444299966621466979738754693593041266378309958578484769605394014703264777166118622381161897535616782369333624760089601133565316481680627024829539703501966610220410892313764371570053233127234435620473419755026481586417662787540354488149927119516274746925198360413568214659305024212334894247715705258080659695107088057580885040660713740820038351172740706140201087210232317791270198970802708580046070829728749069768335153191058362337289232871746957990086329258083750862856247784225775772545779554329465302647755106159495742755272416059889500455167624038161728852533077017465222207592770355944978489481813881774098285759931366782148718051984250055737845497219756776367872562910908161212200375302356695514080069410606654902953033337390773447071607419371246955245895626332547929172128806932453380945891671337037594411925296939471858154064634675180556132151771215884270743791983732655384245127445705235179783242299436891072660234138257624608646904181799950869788914927525059717076914630855311764058170434536427838850050331611392938164255720107560081528770397750662886553436721286798594018211569662863200411166432884799583718203320038646495423899976607242570298510315725285789946774152282165511283804746797499153559742262718211515309149388376342405506318923415465749415323224825877660171739780097965393802743926059371226362316208094110630767309170793495294375537244706404505064330221659920721974074062127150834395774222374019073931985154682610892811389345379612488892151474367782661236860456326538317150214472058412200927358848261905576276541760950290578400196860399612156376294975611500884731700293021467800697502693759980054619021282415618579023649927071232748559642384516065422398901963172729813011150151022461666128684874943077863209608065312484893482859595201588513743100375693197384102323695362841681492052000212411898219939381943780403828927155519677450433864419534078428471659367669789679889130828402450940738571137126154896583681455322312084115648253242657769494477940366307860172716456616316500968940033750310513236665129081188545190100921531471155673425288879686024894916269866191075980186019139950970725226530663212914875909738794378605258008393649651046639220918835552240047199637809831583906415259750688893239142264979096349598773337258742729376600178539292850592749602952271019452258697770155974140166890468827097591422223391211760830823332896803721990359942782430137017077965021903177402282502590211819927220960242579837856309902032293481055490720324650282837315865081006106182341344374184688687276314540345776788792779410244707867745965662696700354440187159211077198185879697283962138542584648614957478671438837123431533564798843367636974476837933322345002436909576755513562597899478025313904582972994897966853178651458554015199621774282739194114372407412505610336320655597694690148640135387268989792737973339641021235487633125634090137901621350104000118432015413818997924658871737686182468137193205301963132680203172294410236071799423620485312129470593039816376516320188598744695879303336855840956786183176174023890546569137878186554147788109796366235896155451023523286973762043788426426251804466820956920057865925286544966202653747807396052246842227121049063237835113240321563565450427299345455250102433051617447220369373287460507584706886075775907162739503649395387371300146433445377997874928790374019284943743809634735094291152030016884142334331138107814748899495256113958123384850267396554590674232682574006570433625720932596547695946257187114826313958121877166464523313682477146883990426829580793330037485261521600148210522958235307299527792141548896373949938474754977608282649287201547433322732378900298520802508483624423438557364408245650459753159316847765636508835347791762328971076066780755102323053787238070517486894423820489892278934055275347656625041828584319746208613831345345783996085425591421974468195591864957483612381493344053108431977035139382403191534590581084730713721260153377022838409590057562973415733884544598177287931316939981669241973075881773884785016433200810357112906374760219595095008078671457372832139621892068576271814657017174402618762076084443369162008215861410417993535487914076606698205858227087492830076234870032529646038508396443117352517759843120530424874561028319525301837710063729563563262872705723712918601206263089222111480156997932120184240709462370044923644000889067751368756101628625036550923043622339060774551208098672795481854358383022900969401873089888522252969329621899607066304448583467705294445368668414918724643287767488170159619032182945183734791149818528899088778164917748837660845993161328246373833748608386722753503588098874949315070966898012308069994244899380131881828204109368974869833622770729142301610024172243575429877749730213510457127180976064405071660448074890995459833535287040344858458009867921146160565816384562384740315479238301594979368677787586515094626388190353582447467931165007656505328088000047113807910347500020839204751122727024411658882199014084405009147675310601158678652718784467050467924467568437363369604681276492513857510662759732087346776962506834718842337601013172188509261211706632849202001789395725359178604807119701986811497644822528390447699432284380693214276492963570230191716331721810219225280843473372617826764233095634327128957485299806689647768687102488532972328125891862573463973051047076215260715242974091199704954112700810747694287944301682251761717820155528277852152549399074645646077726640514520841277797589641431319111236180410719669216804877770743936446342111438972080026034103281427088233541695100093963975363848714451286716094180275107382595199250056695501693864787244806805761841034579199425046880400076738416433200985967553378953639434742923420583759960362489406015695463521509728581039084393470549562594264365069841403453175861853084217329567573105159246094035303381642972676420197921457809846758561477852901718439702429693950445281319395619645945920990752879245513930643479063799782924219347421964407999872406935012370589606154392583177022458757911046054220615848674141963786874878782260551899246726324036442409835304013084559518509304514683458885294591714411879657545595953933204167599933528532715774512059407057958147173443897868061123829417987520997432838677644664096872846988175188680217873116639643434767333952303301658783453426870210623901288853134235582078276274767274320278670779483283258504691338732486016572216800755732342212939524908464440610717116475817635154967689728858302370541532207026305582209917448624094610360003819662793167933915100106200015613847075265313734600080211973130571576783556433578714757526209552851159282527035342273082452156841377210871492780823152907932208191271313912720970294083069963737580535377825548583069588508079251430877724482011565580306049456769952560056089649824276249082540809626593080127563073986972351382045799527887413946163697788439841692620549710394379602807381849606222446162076320550821094038089501705104838318417345117555992993227892017940079473890556933465005140513769884760567259212040214535204261289100425301545524024466111496549813717664415834227625053390635317458048909179949630178279453993567861016106690393067471822968212755734271855859975668464122721595821119316567384591322075349265203358567035454420180395180730505595971240432670185435748223144227332850149636549573335157619689837729110984666993891455472891901581763223914046163787992446744043632309146774676686996279973111018213350499624071519294722257636589840690276685690736963272124873620233250428569756997710834523840387660121649073000860640455577513109342624978832721841029961982356533989951241181045686609357494537956455638609118094183900521632393049151798272727474080098547261984254412460633382058957607829670143833126560894330892411482484844952189564825978259973560646035423995287837731122306582980140596687076238393737860297053597012572219791562363290301694106514072478312507466953536392899751673502092592606647433379223617992595831820257636944218381226930011379295139804610400979172807867189436524903730811966894989422333045626033492456058937926602436933102311599616303661311450443553809933490814074566102141174887430327174518326545160601785707799485086306685231214802474622551553383723745960120198947920173141882011029625531954862779047922918496397114443446898460269474750232573644848088477082827610636263003795259375444591769881720882089897632783080137186225548841421073051797464761874424791430422781523977080678994181985425153428232711420090293039004952636998705493444381004129083447280712255330805241493444172673483074668748773121662550646485729901122198353032729735217328353359675305606582678864214465448631945377559938241473171846642652072526118299589304590848659558459738370651580172493704033949100101872841255114863551255336816236394712595557991304459133620096948493933116686887575030656944966993661116551757418158292493217298750952184530848774645783955864687131980462061920387195054298398416391665253880641803982288184321749443714523499663885264730662351472115689160510868683937580023694532255999052031589239714660616445739936694120509586675507385778919414275269681847759881284146368177473394691808190351577062635714137432683045157383320557062759364809856828719293892418196067344979019131521593912274403513700541895324557888919892527676296400428810238014873677427491344353442809380415752432821574541620464635500081491392288592162364130602343782831921275175727913051453300028788782085842035127183819660859430162085129150479208303336623693625601663757014716547034033801280128577047434459559451034245494788521910992478454162193369716228826044270523792914796945885538259859182910405138215610961038331023953410841395298017531242906508484720576197958859746495168445215333400723070953739952517527798318457996815790675047298456799028522080521154687587809899287139230110966756843022916568815500334298368113966552446197252254329419280809239047741706265482513045908897537352076580982220561061258501053107220651830381902856189293418259432333390918308662733347912042545840832035805837157695992162214932856706987410532538134529935945118196148319918571412265405827416043954455012161703753081394773352173653002981438135705881005624743490994602654040853286621616526014622923703896872871986007011322961677973904795729275102017127553173868056641175462080196623449146553586752555340879016978010949022833817573139843258898148454401092084502857148516413185061603100089827221029886381337284217589930914231217080745019413019670088674067673124696450280271300817770782576662344462195242651604875533687337418859565453300863324919121454163810762395719982703732055028479547591667551608964730100125624154481914839755766085157637876664659226619846185392483720008707148172321535053610265709771025113183557298937871588455013551966319076778985017957292312276384154843806409526786045597488838556802588472055498858733434118098434151877377386801060719804361877115438258382428318931677724757985851323046227845831943549099815155146296756382120018490108411705519170536228115529666013177512281583349628748097830202609956400671709681809155855415477104992143759040289449087671199623310868129488295540402902156771906832530679174331879906580894163319670536022827774091609102165639248513437863114580187763740816211920553608865835192102065156456614382171419437429917937303710082945666111467324315343946169627586530108282293370777237185039146128767167221982275543070801419116576730965186185097160391417567271854613312963353798039843733799004222456556086749624401638493953314626725057369105869007034771465198782958954386848486418351191680704379083052188944441825254034818026264061996074241419440071309104936586012062749299404028663092581025264533395432972516046276301610976862945508010334289222943634822898606704102602092319707351931169096507322536815408601773917584019588956729669718951891862827939348757394084939755856314918585494100552595822920882200841107865730487079472184877142671752575349648985174940914222495465662054371727197347214629712602313451800729815941196820422764507248406226264143982598841417463896541418282247738096423315630731567880330414823655561581110764135206130847132558367181551967488763586960737603899938738266998269716257481894408395565370467272626547417244264691509095278145302413376540184617421363594515711361982543371788778069564767347912011592217201824562504560601801450024127773430473527686785314022486983500688641968345973608484980618191063731447340366115243868287758355429928204803988501606459472905925724250964107882949341680346584933854905190418377749631289807042493810640802532116374083107371718896249835041178686707189348009046231586665167685279997712897090224751945790373015234941684910826891090588238743645771912435152266371794572989142869319012673358060191222215220310455746190593633557814047326399480515355521197973087555702073751855218229612614024457450505650050611629679223492459602307530909745498499246366381514724785512881480936203185256765398734019622012398590039152050725341363102597825924529194433469180664197730744169951836123183043119288595174297115832486701419312329489807582181321620368837670574078569832101170306296618146957502829695792270862186505846978074254682435908471405576108736814183675257181747514175548205837950916576035202578402122627034433078127204277806320695687668612417170715628689115748231768693394171863411574279741920740537327492991087627995119628052053083410928973231079217769061626390467674409966126588619091088446421169013497666917274225033910915175002374454425411597040369386321910863749452920776659210180021211895773509208977599505143531997340064267354050125171126099017041814691546346498119004966694311331123951438286991948916891771279245684595090530338575041659987719706170228203507962623378755370002021742195034534777355911332345778334117644257720252291290105893234495630366394531710720082110876314662249643025386278546237471848041911873494505104600410243672023853220176777860825564669043951687704033779667654656225940020643769078214809328860753088541591550992487305954842888367548414447250902217952365275545276510289207714335961896955911326394941002579794281328214797765641182923594636452556829959912608276777987687038841203645739658323239590645967483919381517597021880407400079631551047855060364702407416067406015500709829480412098286297688192679755742763793162772633370812877256896142917385753249467509677904768802160781091448022300673323911233612279126943461644733425171035581249852043521936060893865494123148059836031456869885502011521371358548347189097725017347949354237004353471919195820248882087059164564923045592790553593915032010624510906508847295904267278581174120796053860057619111390716595310637585950532022051600313847316137443006529665656363520759282247063196540976168898322480651558636427713106424184853697238591158772843140730661202350338782855836846915790386799009315868423802768785955943754471748130508982432833846762859893953735762127183190027994311040442777409501651851846025688508543895576563650489883714438547715843274355007556139804207546079290680070640451750014537075976090134416219944079236065466685998285667264677572259024219999673530897621838397411637853089440192380804061961118077644078035633560838781731501918863603035311669812389272049195112697101669669790880835968727933085126089231832108219502252927784199569561001716839787295339115245447608820195234153098022312642183648947689064339912350373780053684210858295678471185398912287801594220212936144002368645194431048975301908469175969522066298710928434882767794621144276631916203896402377370694726110333837463975503952197728227344172052583875347074472376858167880266506944280115793997038197968458933086896895929547238852891773606980399972675706880918787473039721644703036263763811983251054934216373424640789548256125537812108594045083289041078530538100210182333711894250429502839495519465054565846859011195037431519179586137085713107199510991447265683364986634545784953678105484433525993748478556108500265558306327993493376521660771458552605140061439580369333784854410494069744538051602354025571756611181350071592831873663472345522652980178884897554600141671444578583381910988904492457385231826330563498348268389598570507944176111588156709652895793935970966625385895683251394318017733783981574878295676861745234787751300181595922072618769339786472426493595651681602057574819667884203183497373087982908944337103560350647531180219788105591403309655855920670217228010898317313319961182168976010653689006962313475067671885220899727351341393476010921044941410980886096111822061144422718780001383193858269357288536586131742566956250324711225747614842644366545510540230400616567874519006701714801819329933939427256137787046248067524762400408768101451383745091369115652162423037854808231998382065662068098907898057782201593621643027755742981631462428282253305359540394671548843516614469757327480313040133648977785250097216900034969906022371313349611898769006967178701190473330399421120195950258236824477101853083696794220624263568114525837870077268884177856600599516013527970135664356047956865361619831602753919877847364560249726982978966486594122652284831827455656418108616790463107846124695092248751123661897056018390070812515224448192806903657813868733256954662343462340519293485041186710541001643765842208886461244124463719660374255591102614345292778706183417545609665008234841577678659964216038531308447417925772972401701542906082049732665085294177640509395045091176002684378300965319409350938472945514552701133425674811335119802190046904231875544661146871822778287498115339280015849825014451294419685868286979247898303910234712255899918970524617620093655562673077496325624853876041922991901425656379157820754616491192947381866282919990410628836583144656235795446791974038985839382057714673183778074489528775149599511374997596826644246935628800193134653461534923474814715617079251302021147323474657618575871918512365568554148661112034073685997623811205815931710532713552304722062921270666971613940542132632852349803697488531282334319420370402661671166460732037639699476631982875073242754442885774443133940892017373420609512547645218570862020753300890002084338210501763200540107891483626655670612227085421106832800335888196805374158551549894192015833278903099787166573480156051756121793301609471346818198254448101157368274353546037476868637191212528222845460741482740090782704869283849744005719264008423237842943789110490347055624943198906196673703286135331797677217412764096424642326942664569026735615397671784387486846622836041886354113299520803461281288000573685515917308009397324750184811405767283092334519387171718432133497227695705004262467840103271257348211212856764050071814670254340846598040842277357509211909730495614887797962925250646764863948755987435202063934192497365872844840519685498069605430638681428103829787014630025357431906938227075921849862143448376239722110691125449538880937381830077419147551311791080674153379634729054498828951490055124307778967702055155653715824612739064696133720298393647998092966841288874756145416710436564586758442167078760059270404792384249319088757856020702248955131463652581714595570275304818185911070649097354810065449349865032951250737352402054753031117596292768114647650621554208572851611489900533691527454506854168790153986093000098407332569913784390176270483668311356264097078556065655065372952823499111055796450824565184899801316946205396803052875224679508840896250886655612771206330994133604507067468211483532456575014789839470547264845163238520000146269309332778808079387891874525216512308656499976107955308091315075067919674223202952827419048498130670525480173940646416314111098920620461981350420910958085390669056882310606961233724798402400616955713348155292254863466364318955704832922902882504008618142412718758443007493687582911319369276189721750193242326495961522208370713655970535625044815978273969131900962508622884054080555996472784238857144171802591655403416341047186188087944900084118265707569110945941374167845444835970728769271189763948393735620617506364526447595996395437991355439687642769146793607883515248923027050986433752680155866121412127026404084197003874083827255491202446252377481438642284956194387835234196007315737153870642182024960432169661807913772545840967436373468305326655359202708119383948909389055218102875814472869783165254853116614013183470066440493275048724289552883506748675240859714202534650416837221039998498088816302811964940535374889039992281302317884233366336946664580306901617858416408863015623403129957942740479850191405318657615046597192009338527287717930216366321944322386969484249170044182422635069264434785242577454113948615376748663940479068595412764205559713088348525672168187148622239335211099768208055675962513814214903184206461615578431731515024414458500014122263952652657157509935046282005883233639813847351880149430898202403997165343913466079926016511852267035629897788330938088172026232009505044373803292627805474477171727549436768235963342252225030704310183497299712240847700603989570301547677186181942167429656760809031963273170343136358587060891493543597104871713247084644462888789516955376649149387332016970607073430962730971660272583947537264727750073230844089589483554837298567675430086063264197852793652554989341086406911990381931842503170516291937255131964819723352660531737137714974826843413524378506934133471211034631643746876945120133729732306859556484988697293230572027863359853919569539907131269545729052852808861750457793025859635847533533363996772354991727697817918172099105720985881353831729088423202417150018934235957524089086790845921219361383390468609324591413734734749610267117063188553573399450793777470877107032438109028023015056909051907949012610309532370151155108134901938124024306410873639018622253921445352259952918025070086032561545986049584470065177593972677605494104526765657418445411704030204244752893048375342832093894868783413641618649341525884876851239735768294589214732757331273572370683449125722761134401854264717896309848772473968716878273781089206938842181497778093903563497041120723572138760257489821130555790306519177177625688416648397579743978176268287284374032678605262187658377254943005625041282475933076856299050294638553314169515597324949907595676163226791493750200824933370328091890260275145143555114677411876680378564595765923454541457232602482396354945626728280244613738195349258634538157351629019250116255832395072118649860043748241793394025701109448712390822518719733405753467842222793200670021982241338706385526263079353983079671715685021791215931608743692073689522889498488565825255330640007949345142716635189870840350941998980805158991302493276752818898101574435941723776076976426253147896884959063590773616001289133062495890302488309465294124839787451619189280167101530577130014457699469324021067112877493767493608271027909852737268404479705247887591228484387348655345814366892079828746585571990371496700311674138727445221505876798909689616926796208965281100912931447117432916146253832115991388007192869940834832354843481810648275071432113038468553834155984891797035561015764381824371532849035557299706372842136023660076782027471430126372766915824766616672906363741937847098669291910015480190563911793823423588480094778350882056483703227677522916007655010221832559885236015463150159732641490775080376991218062114768878567494090261087650582159673437864594812571940483607449167727079929853182725280061184589030171750643690044491032820017809008037250007331705362326154696718378288511859190738928918835753203583673239331915128098087496938781168527388906615492106675050732725445621262151208221970742423645765072303275780597567618825307632554449363569489992006103427158371837971087462928689782763298686248525480680139558593498220748227305563359123346010754641608970466973281622079392518597705429741830618800718290197882341415661251699153813875486877238055406811108074396916401541154510055240467951414719746254367525039295779758814590665569978129798165174690740833692295807140708873689981044243374938360527105642892801080533648210253155318863404901053160645777375598643137870352280106113112431882392442162753434703928113591499967227966456139682845892318095091157280043508471035130472010533455116644639372065760299460089063815589936208144117826297495778885817223314714926274735041317208133323952433537825976415944928801494652879528593460388250787613384705484905554910688382239277542534366030591812284944983103191031042365533721940905305200779074164795694252766868150195931861675260129005278338672966851726624502393724326391530149119277444855766810686039981775338796074147824892705346808871827680235259109076254729124417373441839011184969415082362461518504025936990718336143663140507332107324620270905878253112522478585471219707231215875747723897383167018295588255754635341425504964825607304615036563821949015326186702756192232707147029740441171822251160360077664957228036287365186828156623199256298490447914173220583812986574518564122239240951217655137607250078852303248984789376379061079611568838969652137090981162579057071070139076619864552488254278838565695068383870578456556218003662441066638164708948843459858295101189605686174107190125440551150826242378075149201036863060760230132744167349274032372294953053159407521709252283131044346765428704351865196395901518498364833210817829545370439310571205974415824330854679202484690127910398989696569181123346842389543235552543498528777815738877110984211942575217265979312079863680864977049824700147823273630186072335642256987208221663637248740823089463764758980397916257451205018657183168613239153132118429348085643067000124767450492551299501606136704924499918420749107880327283520120094923432851910316448962104282294582032354685801891907100252005205237681709325602262909701883791303740611541785603779713563822604294358053697850033164779655186289783664882364135399224276228221430782114756162875903510249700488556203514183269202177899019485184567025347885034896322678798294022763776779050057866487158550941634964647143163869964527344827218728297357017816171677638418294169714858154429006125316874297716056521896072637330795280714026420163312969243429822221425757295127629618814343272771207358317640477972117430443641375209030503215206383871707276734166779794355549288229259841063036345360504196577055657743289459903186299948040963297488260479120886469157092474417550180503599008544047471941476589594629392783442884013659023672360043311389003455549508146892739071122310822157843121721490635457139036756562976964556950705827652696489510342234443964648203945054302163121827838781724272544059719559385864020657879200972119350655310947327694296147817167775282729259343840528915039652041529017523305625653200443298652171037393463659884363123851207458864679060007369782757355342358773015421623083637543914362844496455374345302251772087690419794925383559492103252725976525081485136173492137041836845807849196997476360016531969159444075462834928676780636912248633642749911989275146565209422529553996049660946930762846961914381157489086867094863557091572597345865204509689112148220183201978290866765502431166811830948792118957097247699061500098016470295384757353364431776577057306127005147680561312431906187243554000244686021546443765637417487816510360462678689769284957940715967983709208129367612094860386825697993373566254009151829834706279548046679358395208870765499792634477205558224858553818697914669494842495571473506551386460434840582655958422655505145903047180975006177250130603509440723410173944101219338896203262222833645578024521165544476522791924705764344058548751819271353346115778993834858442808798052022447502770869359304890168309864846557796208950007533847956330106517233763669812576153848072953121391366010438474604838053937262418793447635053436923458569783818051637578407068548380805014623941963286618285506404518695627003545512638599254959822457198863458317763639823865194165367261909239067891762422438780046306094634808291266109764992893686342820253524740086424073225345867731542551590891039475250425826579581262264844324030488876017158472964641568513593664297751888415781103609114715963020469411995794046067407295743581506212506932934960135013308577616213310921738450528346559172771492156432237049115583146003008367880553736342008997203818611757786777550950475024313343286926417392350491035078240922431993462421301512773275078753917923922778702112206711249080146994952821855417625509871195618526767358976519003706123873538756967780344446913356005780549708456220603753102903935400727105379566243488895132139808410346712787088413025091157206161890929000382836221669034447170508620605918451490317493529039400784504547729684669862224161532595222587496593812276654126913103812501806984188397714033042288700057407204164740277069546954284817815929683746025558297328373148475999528721024424466609097897420395365227824326897646253533776385504148687655303424611064287415780441125547945963165009347158568314989102562812270712040272999269031762923267034378822749993476891441111641168749817380829564890333866204643741076078939153014715228255985722034512010064430417477317866684662432139069793038242732797611607416967450652777373767919515536468696121389466763372667355347657045273723247976803622643204644835720944082548132848550357569490728684975419066638407753403993516410204421469033571442046098991615217407954506152083493418202576602823675746377608699238986721539653071306422237848286314618165018108239500622274390929605694881201700038413051798605670947396794490465752539365179200714345380286731273014415235858897556270286380306865147873922440119893794324063991332220943112692017720994942421435199248129359562353509029940717480126174890642916461964917204588017847539226271236495495792477378136544071220424792439622565211703028945272752245878113525625694013213001003406338356102678329055039094907633791666380337283576651215230415138443348152441180655445836826898960105979345819629209472311229374199819302206504056433775586830938850955616982221572704790318791282503956147580717566005983051355228380301585097632850548622241698126110109611566855249466736187465198806188885137132275843993526789742326798931191030528749067119659694772812152899674252494499750445529125681708763004755787052485041346765580302946343224056979826244013419397900915513622287585429155030645964499648131140794707659960372729787778774130892355995662096966914753614645249473232223461861089778905585530099479783386971283258287187916480422806382864264962360086531079466768392634319277288274592165128984955346294337591485247083069758211784456594130603444570705649966380742871383694107807002171838228779633860406638725248970742763426256440821276257687204356814434252589656195906375372503997645879224400977244978933912124518179962914076474003258483458509533030515342806846890871248950116480590139503922256899799433418404953318561451188593386921607313170006554098361155237803697979026585737275916590368998176036307483740819331804135594757726718184875663930841524749748954294893700718457623830442391983915445523851131736159353899600806871527044529473089184445083656559218048006054439851112105653799868957432717372225283135573108659720468887539668786472673924105544689841803070859495386343524690003583058101127616480357509525347956770483302259136522095561653194797904256945475105954455052175485762923912472154495011169535452314212065372089415192296325807988712317955765539436199788486477353584776716085429219972727740782491264649991658872687807130564408128453552836197789269326789958234179795233824822963796957165081010600876015132617543594993156843587249336031943313893204030886471893620724449802211648625212815315137967135169466883574847996911565416023059346226779895138664591690747808950339817154637501979221266934475436398958876160988983224643419476836589339482000493411117585322241874908973126046697363347148117347169843759386889399654108695321556669680316049347506702140758654060469146183323307256413440637859845137364483450423056799361955679877126820039780291627127897113488409672782336067137555278412323786625813920119124667977409488672503526330179242961739608472053088623276276473155486146715729456325081632937065844585618670687939248654041236375911866913986119375223731592988513806390577946771002379606814757299892240450657205240037664713527271115108855877850484064526076257361514558480095726966391529653771891605805643183022453698160452167060221200889328635378124356136022534240741633636514889914572452645221105311330662024529726454751015043485338110871527248654681202318283250641674478722411456281604282420852637492097432435788649899660062947548752056762295025663572308920296712900936754287516868911915045125170479005834187038892873380537774388776246151369319239123723816854166806749132222586560253697697432445526043626975897074621288725564076414916567608997296953186847909407562856508307861474487105912043985138471190527702373067605578496394928285818452593285084462362117433321931438494528264416288421354129072865566972624130562897390012014576742879167837652035062083945409258018820078810946617016494013174258508909659450770725940902909038569020828588032370590082899956357551877101271768925398405882609113342535749888525458436783580580580543798180796314040747662486058912556538107976586513876966423050737553706436335019293725268431158989870380241379153647347458046656803825231896616145849378392017640116546279818197136878428588701484455321775842242161569555866428908390701243521065484867061914907534527772670638944826384919641048144573404710107367176761599598851491382588988120354258409425736512547904910021522582823319899232099798010527757501753740877154037692571061061180338306498575464261986571575320569277631413597599914490542816354977238035164091210402456908162441837071016803228564064001912845546766494753783343574683732987707167848140096365561576249571101403203657006209392847696863535112575558135749486985166615131872402354379092586231549913959599666571617025256648323211075794179697305371894501820767852892447650389164083322700984377226322676763312452562983672755118670605544297769821522465411681639891270111102737123850863756853274924462789744918967091738976102285443378943493676647677262132263716307087695231307576298193585291679310499682233783717172673136170834721628818018995183956905967841881885335426271380235449811213632931519992697823599518700548933209010896807143813428139733400037459369138582796671254970086104926489908002967325055014734520269562378641696726091077695802228749776474735582383875426024713072959139722556191006703519324787552562406297583804314923071554232260476120497452164413827010935710632092164323541793872932769307266896328350970422452011899594389408714872260052819834019609633228656897473385785089678721375670300359259433043241572129364715553900521107173966752610732521240805105631306053811677306140103522170122110138819360124887307862960821796208213538588108081216720177351558090170575963915257412278022612050386957043224060068780056166831312014954429373352406995406829484463356396587982357736499336882064107975881491410640750527171588407750773296767407382209660726812560268707229312474187753900610859325733572626373914669016847269269194148305831866594132936252023452481978300414851857951578698029131649692300233957484565826501156404151103053998349886132270658400191605050508817317835459410050320265567803933358663842205521445521380587199187446048050394133664502154148684091582570670965132295007502557306575913613151730758083273916664077312681609248930520962626903196560320372803764820216991795634231018798364675980488063208999710634708445297107252632887648259798912194688201823095344711238010736817736188971482312522140172018141111138947518228545923487764955404195936203597885375112967364100791387641938861136749640033243457418019372801195448212313315983434971059834477020229205992828051400229278394807852993562664455868920144748878955723786299386449405594649848735867564285443461299398969595769810178089225363641839700346026031810879267543709003072063673868430404254513732949539219635084591231733728305912670074317680391378044312184921135982183790102853926943284004300927269880245228217627906227865551559923211308117711477435886130785678920835942839616508569141317287412977874450166547883185866620363597821792698293123217695825227196760437959094211184819775223827340482532690452689611047795621608546499220662444037065368129100339204903207498689599099026264226568378962912934235018648393810475670971494342001354427700736301978436237484542663966856207872085145684504335263052361905777599464527364270438643966366138713854695678189824966856144318102708399116286804073046797964055586464856665294733713726572595448069351496141349280251060753825137118757803682372777978209446646224308129581340363747968397460111019100156214671748220947034583843749024943636035578340778658229538403202291535947734789214483835754482091327467380086092704535342027819780159680577680524613490754068901269264142705150538738290150158466025464201026224967431949765610719270190348670402824883283974220921706656133024761291724193272017366151330047053960907249826539496176840150982413771472556808192328512558419097428062519007635495890476773305206177953021888674307076279429801643895829685711278146171350989395809313981332714922759684625319997404486905920926322282383203091212892642587005295543942287836165186067861240938537750822813610226703176418274833109360800188760113491898756768652076110359730632063856226653267563107233031557585555749483746662195424700465495625133385741639552869450968936814099839982659511475520188931474021774227541438576881902842631019959974746204569010996906818130873852692003453135188743803932366112553480961150976755428730900747408245270808497591744060571010175321822054041052078542999594171515956765659510978388768840802629687148415133298352653336505717648525181661917965983963637160917179843089442615369224773141492602227414421157760567700603829261203261650627424912579756679463611800273883305288606465047940535606435610550753064165138789582813692699233922457787376259867187913092781814407912323982988815750435511008134568408280353408676091442241833640189906440018276444406739455335698128223008346776544590075914444403997575115537428095768148231044754407833623100681417632392798367607829380413244169579852464803410503457167364366102241944186364687816232206327796721453980785171881907710270762263351365717456440279881708973780178263211487790625478024194686062912314098841175937374214516325482960291165768249447855122306819715552515158049606185463105677486637966085163065234072440731403430198716032650415602701685720914000318937044124123420699011761446055250649031484032859667636426019710772862153374126449837271179223765755395211376548578011412553429424018910283244969383756275802060002862414945294688406311867039441730016127511165585256317362089583423674501116673830665882622708663715004723425528026938427002050675785378188739466165078934122164752739821355089403385608708751711626910737816625928569835210798004624815139707535864511864930074204586658465058481331952370934221375523886252783844000148116931558902456987356087959601897383238122008730040555011500447028893227364185997767610697745335939356951630342496079198316782175070944864535220194550206396508676140586301192844231555615751861047271438397412187013576458024214051114030428563591254711050427030035224999864240474849426338265204459180141206990972842019575213063628665889440645905158422456134322331489964082892618802468425651903748526765346117076583604281752632729221195153915813949408250935881553727262842051657769555790870270500298149651074845210505385283268508566717899277725562770108342680000526797359047644349866114451919517866632818870533273364291962483884222466297391000438999413108808435643161907010983669270728017697203668432480675871808754735146080419496863646276967495228997238822176165205122640241908189814496685225051166710823762298190904462419129419636056430517741824287210924656152628007678805599710717563632203214045124811633753378940243278400700892645247224043646726664985612913540841172028245691288639548585357665861541533263138276565638052202729700080343757166249485956803821258791383055298939140456126090387730461829500668006843824375090893304845400887792064873502821017024131255227915493311675044951202344071765517963936320998032518742194229282669067341614938834283541706279793729883752154372003939733938161136807264600928804287282925177539590768720964795160845432664955058673083575687288732860501265149909410186419821588030515711244069027154744240254468900922968067722284168150337921002502822526269826388099081197817241471160692857925562245613004813510235911935394215030696050928811334227687155541992065822073243444506666478996667053364436289095402314560242426085134856495779911267536903705825835083521822424173863199184076242131204480795248813543901840804626947655141372474533627163641545365375427276397267731577583827021816400162932967110097412223578192765425618155707141993324693453460601938616411091794472672061972580661802814666605655507940980270389108864854857579716603401451237678874494068272038006723549462549119477929837275365002785549502767256258004590774491052403740751302293172494317667999647338867473272382851255660358241689110688883181731063796084765695601190360936472086720506134798372592983250794731614414475106205872497969097361640416108921224716902903076577702719283659935050553272724775012182524389939619660563712513345598686633188066115203603856157400447548387382401390726729941355684501965899002649951993232023356786520249855460829201582324615871873045430515196810273740228499919256724631596618321651022399957026675071695218530536440949134240327645540321745549588331569914512278431790417075635117118714809238770971141545805772484207390618251748576657340708277052889230855187534421198735941804561375953917516028367006907064083263643449545373743526220643881160788226861812030280145065174238873230441161455311901573920021307663234730771312194979254107871390563504231139883526508552138116021539959048261445383408891373469115172169697739890307498409925233548802522554690675792029339877192768638271198991563723206187835081158422599030816670654015828302359217956527077112731286542666863171065251291195298556816000815984630453448372383185214037789809626660465414556292518219878941909037103026957194831666729968151089059516406816998463697707728441838910178134398973036783178646335636752895750251448977433388546226523403770729255423790874593293737323192646024192622272989646491103356238751690727118948789955960477459744476407778588626747989534478170041798163445768975228779232563354237361167326060756258407082360351311949837149760531859012748893337582475968071875215464659883034305374491318064575888284426427246686588120590389146052724815916873150522003640359740173770950452029390988318403967487486815545529875704377444941340288543432607940796068196924471412949516836916093428274150453998594922084451901463175431918727261011360005767183718124491874649177360465482918891551445444720902832572752701717124778362101443149325340072623218248858868194911707081213370093919574285227686078091703526413224588213843234532326276011027611015272423559581324982865079953492906403153796847704260203813053087451683054259135826568006386936303604322361561584727354785790159666331609721348924586508434729109946899910917567433165046570143038390981179826561663591391029814968279235578395275060007387749040187865415231483628752452157725152416090821888099931373063502136670209022715343460610814275775203644256641875610639405458140635055772527906996674064293351115562521953480284713549751547714930891601248619024023229234569296283683202283019226033093195007401827264077928375327818855345654502898669680705894154645832192253783375447759805702166181859656926319025984091270569215081589351387506452115361345441173378886180623997053574765637462204562166426901087907345088056991471576797724011620666065738315250173855128430755469581903442251746310176383097253284344065280245657367709756419656982830822705363715703818740972346962174427118143495089778205564709071961019640403376529416621133769068980755301406562167714229393573419606345779395777933689553675452105102999641239607622318127875550466729914292455843316781089546160207550813938946805467365084385053551443437385067666202209836001954863039244100048244972208265770895714924023596715888058840191798004426066578190493097320145940228095688746992522259436901031525457975258662722707207587613366013154365064388166231425353032089515220984608551130263981503808626632419605173314646815518843353871524631583776481770465378536445320332945755623312006841095092522729655842413416808354123187742613693283604721990031268404376426998749367905552714160913294173814247363267548620885084893560237906547819953462823547379791965296334335119289565387636264732009088371516264598367905024843335544084555578165528464033991324790413536871373545518475002756993471587673202915097864821790712131608892378389475615682662287910411146518206134223906419252318079193646538147334019610918998311455042609740177265034495209370986046289829336207635073623332730678026695042867910324175077459099476121126558775910525613753102922087689700877397124505253690769344689276326487470054575513262278262417850704405999923826404323126224006771825553234612763122710958002272116512746375448241156782012753509509407094055127028162928261613857491820621847909431569444520667132415018072438743610430710065978163071344202404411312705431431150916999972312831856714416936432671393308337248129255956831811378906229262685903802130273042492404531669844177731779156788682614856561415938318177217874347905245573411952898716752400243004147434240436879383462655936002289445842320597904783566144946223560208664402670635738152323786347176962164897637486527162723829152280003913990620388539313374897654988679631311398309608746470380747260942999114245674418150489787214727035012407926755751153057657475906050927908983570439312673271046965966711648363803042585263187263265367066957145354757968490531394941196445910880749600474952266487945575112377585723177714339483011405491615005043678083749431492308376949529832144721982913849556528117214753945868274564736550241413745925318890227922033911778766374495370984594388563796869012805591505753738405878988267649874772095303686581749898230192338016153441006767734255169356621227913375256147883173587644939540332074304092780475601750882423561853139711676502524003847158883064771916415704620793200362476266050509905447482495032013336978116217194001231509862547285155984495726584318033670971540879615579066199342071836724326318801177825795211734436720708272221035597975386391859578187035071138631270482820359491072716621886665634725849305690569251969437706512151220338742915243379946255020098621481583754838621564058812752199745875707512724189835098204098694095644178978987703366124364399556303893227109481581721466563418193991457891847434039162256443948708515443845085070001548548838517771717839569941884053951620126665734621958314735332073804864798678387475914426538425130305117206461358069734227917990373156538182105435905017768003652470649169808054072676429679930070313551872458922458045828429798932260924427171094186008274852242147549096693468595612040853699809035800031511184487727515773455189307930830156121447757242924754321898782048789906015297978088041345971366680526358272699592285980993421287433201217030404711557536793221030266817318749529164596679075912328361996755093816098310119401815559576140794312843043020562857568270619777241594060598076169387231686271146744209483306740584201586475337963912702447268416226859927771260598677176278667724293443466772174010791905703883928353005832487774590254243445065450437416610458116465143841412440661690348759279203558079613862530942194836540980569419043656296296797992310658627934838794187804367212910948832902854757394121677739020071477205256437620970674307581190694734143745798504164029480653446497995274657768908364522444303813241126783731911465742927226444227994605693312405395971645986069002775409547594790735723306066946023143715613046854650722839163395335090384674501550179208258353101930253739129747476298908888550067157481509444800809514307716607565601377233406243200493492411366602980579714640494956518693139480846384859225545802901543821941144018460011450420676464544665059030961611170605644557483837095710181347124625645143018635289566042027853744769256918890513537379132818462422654115636431331767884780243917535442023650065254902442890870923372215670938796431720985571929345607349494036023437512094443798020315656494788200097107007588259868684925595205602587799248740136136134261362433626682984345472306568982719928011691887166643784293351674028896288216191974259885402818579116342483411276610738282331796461370105101762851913161216827754059781233006751619038616128070187071340202732338067141581423931010482015144640009743313285458270341137377569275632138691371969329590229383200264435053444839955686750005028270562980346157937726409844881452220308700186690362308348907494574041696237099941628036102983031277205930307173013872225211163346686010411297183295099736549592511945311507656447949233119752242229981772005878102121838537060221350766581829943366810886909967492467278917807617187985262317757185670694353366220250695126081831759828697966965183956795914268002828215979374120636545298050870365588655677934213717605253184864498072911567614304198646241102004123071457935735466464310510395199734586381553234941185203734466823377685145122998358920657069802100031002002202774464425916739883218768035475939417365096874069287579099009294725619857551080427116259093768434449510492499201871648267982027012545311930720262285666720858122424419659296131545554964766764877532892474589271198761571680732748610269827748964149712428651200604536640601394594339389199326521834653897013908512499447401860576658543671356766192154280067268294531707907769704072567983113973638737630932271211936839454088097072866705088428310553782699341005267956952235769950499370855540658291199100754316535852030004949136892275624219281687192627570545007770697943047104735107361920792182978910790338673123557395051071174513129190836395090843031987726481035234107980134265030393155949690251015996300612028879622192640164667010764423082421529020763768209458138295874375951475419094629847362459230771136477886588237222673691725020802317161536031738042393468018931540017041637125269905669788404151676907696382669309482480899351721907410213575421411332442855631614380575389678192456148604996936365191070193494923787508655974946194451517376578389277367498391269444290603178023398460583240590594385026881255123258049156961293032871163120281214499680163205263884991897433504909619527419936355595491660377940155096903298494503285941906477487246281797761802371654229608522040453797053586107732221716110390023385590607331038517845584918496119064956395342731707839125208358167012778097181314422411243901118855193446052302489132054817854673547479882075695614622496942757817765355045587823615442525943779104681639875449843273432381927115975386338800776632316173691607319329558557199206867527951397330080181884841453938539937800996912726578270877184540885927557340055730017487823112779381426793158952092252291346580873996664198517235868693372006883332593180099142449711539884686408628800421614558760882503275648131542019739417528408062971331011459749568979624413721323122176923410760524439759647797561888662354891103448823279412955087828479921204226873918772928557796937690905289534119449740880559553276336987970500408790018285627892939250739078708847453394476323315790897773544776206560468915803117895224803917729220552792562574435258349938627466435806884278941274910750300827080429335778085505106162934398953182964879600397911589294827804079262280024874066994365820054334862562002364730830856714387615586684472300577818151656802706172646618320951285328517698687013301773550142647411336908784587039553586903183215484545019110363458181418435170778742204414307374326263474598370212515500192972528299544245589873198131568338126159947141619982993600094872185995580569008386973312359823641482523383539030651765287537557636243107228177929452991059513689611232968289234238498188589364336216084001250002787018017468564118148706670778707207120020402785491481904848515023447975182552120763126949177898465606391120231939305631436241609951805183823912128017722180223260740151506370339234872329573876724876794484610385894053136505999194896330354056258935502930548575291489141139578573802991455976721594230625923077954172351269546358429746140750821955008354861430945673638081986947948715405865416836994659894833991518009794133121674615847026220490480609132652811939332628580801527597721478546804075963717775738324343169255463150499359408864309361190839538617932208328590411490426107244329626801147277346187626545540653929997367688860056016449203418174457917663929842486619328505454389204415834636739730892535742386859295858188905862041837071455657031068008723901293108913746838199350472862854333639052389602723845671530943768990621094218418031836881492977218695087863452455504721287513675207746394177761892043289000696992430957080297497733374819113866921829403659694538126670338887301044812287813736294022142500067616096053788339088884672436568044106244175014612136384099158938881271519318229152561083143253605244233625418282234314818315092703494603846508088609087241027870339257504680574017564922460741461024928177729307447530574412581521671041648474502396483621005816434030902345647851004719079929078317064109759533002799014151614069670349625608541856253354460058681225809201907629615295893897595163971136247845219666395253218174692608844074455841409719092359601822812884991568407955037763642834180569229146719153374224061172888286079624730069024937767504092402634675324003718462912923611503781978870089193841789030282983074059652501881696241228555108321883618862183569336873722991118130200057606582734935370912457136794557366972500206618486073012569180092458724422902618076045811087970405949233853100431400033982442472686166973765775437713828437783599644164157799114466263943881662129401454826409214081748614068557904707299362169410000179673278918390269602645943658868680371528557055309350791149276366997841469739891907088692830988219767319717670196619593533663643378492626122962947446781531282903310289815373638302858136536111305007518482188677398208578299359140138723282718965019132994743397691786682427054501504093917487836034038928024945100321482028491218636206608953826790794768350465835402214218027042457921549907766115205156085965421465513410398464202280677496196353774193909450916125594321211063084245874990442188809121409448459537969923443277133268588232244492248706074445972294606848617730237001327290509553596849245201707348423412809425909916494441348165332874175182271306169273758509445642179981145688303829679104687293910481008815442691774165911507343999155375214445391542138222127289580260610408126804923745970296118805356330057021322549412534270927040434936797833028843603254891430012796162455552285049056099069635114188819199277465891031894611450392913731943497698903769882996366195250112065637721922528789242934796251357990427372659337366979090570490000429463555918348986377417364009003142609439755250378447141487651820563574836315413491229642565038955904664273579403800019553814166572523892723752917657626709956705437570806005312213775489965734979383261123099498947042070276603424951247858523923781095612954908064314309632798312690019229830825928979373653552727746335496766338391608613736056875138501597780773686919455781077399565972332579718484701344969354188856637093831245521793802771779086968496552626535594793153053267756441859293335830648722134217902820342206246446601442182091178076069307259769291530908395663451572292720329413229701237457260275795466527920905856657848721969614964675317825715233611495358882233364933328203029313140043108704378638186092443330780988578304253878355498464214281473645368384098863145304224316895529555810507410391971477159891281931134459726593675469567479117449738763019409043170822494134231676779904921733523576225694152210412758270533972360772617182092126294666391493931492519660798094371700300702536716751793534606747641156764203662748935678270964686238540529284682109980316407850788645565796909170224724415995065934648087263453921258884555678332404380557719941324802090094251593090534785146242254800674234757942587958638761831961656984684933596034570243035959058370181088667464401665501295808824902372736407725487475622203858931634023351605988061247141134650517832903326680624361185259798560897724356460226261309161607994690380149480302874051817230457244250522648388624018823866297849060134228188974536835424494065819433151993727881309737022424521385386377464281312259407863939593128724930044886256444354199925572299976140489328310743065655839713794242970608772237967036837778596500294064416163576100039991949512518358940984809107698946947759587862173367140738536441622645921266689397653552575961500313283202627195019031954229122862836201944893602638761546748301324038961602183823173868451511349385401030101667705870934063436090410892405670897564360488267568899048405993396853131992505439718316079858712259069416023812353030846556815886924754789892071990116196231257091062091176064363688302773683443230064203586924940887930207315870114896000772513912994117063774061658514584553562030045905895893607095146206633876505861706621628289677366492482083850113320140729298527203358118861882256764563906119148234494421409845861068962916788415768299908351340891571099652786356551979934607381801216290131542921590324803690530530002177329006035466784605697631757712556643502585099699095351933996924645821387105895926546534097490904966591364727977306943891532662505416489060374662600158164867159198620588319934685457622770250772199967932210864128375470028219268985836305096856483788365484992965314883598209011527289876185555907585314118167551376827526538333030511375746321784329579018014304969790896380677723137587953454962168576090876820501543660755083441227763687279821717167808068434910183512053518864095925266214766463799906575238911374915631330080766446895624467147265000047108198763690570742934486186751520860321188455634196459507896595404155523398628839793538922699140265284936976511589995306058211522153017154268805083172970341208091938631968053717262066698681372276608842822956690038576762340365389279758162841964604812705767872270412816112965606562042446282037044182471968556343320260105212477135760593869897811124115594926352767191112120469791288297744885231547002857608055280415475320270230168107939788393659919090811571763276492777567713914404001599915543256277825514292983023397259874482132208218522284481943291268785625617419497859436160346854462547012640582089997191555278012254039517117267559133142924853549369094416363498196759613521284376665408845223198506635736787494926111650765926734568332621894873022411839036528661175701885389962482307054292482160647743011135456249506018618586746345680352007827817239947916755405643729723065915750702585356050199404480399602684360457559007693242254934063845035561191708417962078166963980809046824523055161550232973664202338990410583370461861511328458061751246390566434697614246729365221234250807993487957250676344260617296831901267328506973463340523828071814821460020615863144342078593784426899476404235714425669882609860485410069909098169999598974608148936966546072330511932794453606204293559059088134207307331228195932885471564750289103507884505476922249505908732788951399986275973012499913663230086460295307163152686396014582619924442968679061323241099073304349127957808430113597010840317147205287391039292035544873285093517467629010189908033223325331194011676402698795903871024873996276887935441257921486499468059568631738228096700037734890531566869687159829331238111303956919551752391655775231852984502138988859297207511499905982519946877438819614490383572017823882927563565390599809932754350038283635162635341133729383822021109528401093515573212234809344307867950196740168930544536012938085693781825943056571946051711676574892557168831480468538708646568436795470866528334887300777109763211024366086544722996132270985147033066967686013292717002532001383715731110666238115633660491639063010028292882688029126353366558099548765429672246411728707771688531911610182984119242021230328115759233352745149843924924541033239837237934467511788527234914251290666137653034854732011518986630023183300847190387073629156220948253897981667083091279425367495917649613338662649916832323708683521442764837390302394601717881667258392139107090343207120327123169168411032845854094936134099346194630578461063194810262992292192142982038908311347151145600270996855930446426310118139939402528405368619056853244843658540199687842317673206073140797064316044603673506952179434001844261521821345209326953340772103475375816053594404042330629314722131560342112863014293243147640934861594728947720924442002429660031777280131105584683310252736436885301264974289792748612228382897644011075565380101491994397249931642281014644441575697280372906092788375493409605866579903320740260451395950344209731082675266012842161234402927476662504904132880839892581169167457772909095555167198762992198735831172733065769091265417356436593090195645248810384394174499713945344437591984003726256608089122662754362204809701681531946718953247893633936254847018322646987568467153736007087430825676203023520700339864284272285070423522954468098957334482545937669811535069719162444479792069802942304828320930404488427211570672456762208639537025129443026412878727931798612868549334835368221241343836559849519998135841166979383540876118931895890372310067760663651605699587220841137493121505370602616199859136849736546196113192548053109319425116670635489348350472929232020897766712481304057161248723994982836242139758917307154343834343892653217330123808767310821779384493525793578742845210920236493392756028991025124711175292659509540212648129487063048610257409560874863758397505500073484426223407688757665045364172714233156762140654779090569279337201506610687290841773664090256275092272938370284117817954761262351604948652942949987036294717243469851625360722167574878904485061100378305990933507833157475284421974729263610887058459039655616367319616728516839216996747597134322604306778630994827362821884821789325451977339239674348460203066592235895153812098247392493575285338084675189473486072607627071126973193472107180902313965716199134561699197340162496321700026003587493170273287245779547441059647988534940185561269904933360933337589807233112215063034781506776374197223361554796580458418229538946084785041905429363949892014790447538334816117431316975472195437619905166316648016395095805592412602688775929894286064969520342634330585207565491025785215072366003801364795214582308084026274664701068021421628710888837126206741490438780713723602678910032260709223401793642552728058962116589308853369842121893891457279333772475295286595459934849614915127627788092772897432400654332815173870742894687813988018416508083868917978032675468023978638560798221006872855574276926331184249834918171306604502485857256361859891624807211169139280702505919904112666915141915401093472299385248932524276511722247988370628082623116136681290689040487600442731146932477347612606018199078709253051542041581927418841619115669521247709180813210507766831930829417591776978964094773574546437586664303078662871276166058014127656314250629204915703784443626850128853872983435090855674050493032450512915262151850339570090030057481124146823880070829715008235644219860054339419850030040525433251568040177994160109693760896400383238781542118373095188935956062349783453191973946015692287467780838562570265022415213267550378825842248281270509260240248939449892172194027955100595765723153312723157125747698724241643088658072580138501403933270336761730135375296862672682412463808600876834824940318388226348320606462911170505947588513062669276830846286551062010228378290889859138737946195701162828967321168845078353213155518275518973802215014241858793387605240133190837136804373691138907528910795513758116632453458902110788980280850984797770523320679222086095764338943906229323423853393170399862108166520935071397888904578019448032985923915944256812762391414207644318056954416855629615450001355354537105985289278619020572421475659201943385036546442385451881003134133750942443351717704309221568959897638817638702121826640670564160112298697188119559913426003140418296319591609690011417895319785946171623548171275242917233815733858612448981947758727487768198219702752132492425739007197859461241421101764579560062136797903544235698918882779347565070938480727081363255102435129705121906675692098914779896229229594609266966050854498344734630905240482363336317164163074943151996755056456020572542826069315009760008983700774242045708383096177701981577528755592397904685411746502431980636721492024881742073278794308874884903482080156397270949455566918156631044245704389612070835355505395686120538972745541717896517661141516818802780026848671086227094013424122015793649765634454894814402099971756139142563399627792085207973975348699571729682687205919017109068466253322773493319843980121925247337968027964591283876007769590408770151723459149822626853178515221710211498266987680674225734648109286009650499947085892337617292272295671233397981758849848055088916591968731029656342812886751492770087151793725037995240694475989247309874788574262573115377241198589412109310152884229130997761982120940493678471699751853866744063659251206222426681507787440605490862300706340930808237041992153873400597902303235330662460773052846161959624286557124436551283314448173992124967132934330507141801162476346135651400793751479959018977640024628816291878183517985607611412727618047086481601215945308125338900833845953630939280521868245841901496816268875531518065393170121125475263886344715911389157711554782669444353574660789118860374391405088504506254542048310260688054972017360973295367589165066653434972215590378677936121282273229895032562535052724320637899393996651056449048544244223291611190754445552814961397598466625607523372194969533280015139631143606745440642581652185715042466801528613998369642316830528244893007174240151406993036862495620646492637253426419604939382517517454688974609320261338673420465615370453250639571540889872658105384021952207302953354178308826292943887642087405451485428217900571811548812881416116025593332085681912482841652910262437541829212880186259089518825148017968178434993977749485940243961890618749179773517766876273354812637134713674300579637603347544497201595314786651905494339907487241233570900094427452368413238389852811145009214533442195340927354035003351336862300515776397890285959559169721461529798672481678137396971135275682787392399364948840320293628593832582795325706618810821843388814744933992313304672745443048075206603277065718936915976690931760973536725183762573590594036076085939735303050324373825999281268366651236055961199843575823012035014327120225635367056805183663608468917015139964251651576187744438246124954687977099804351321399168378409215730935308640009990078488408487579710063831101307025080765267085150386714245485357453142857834114303544505972537906303013985392840554560401840946461738089995459253155478692667880716577671953281955519499757799421726329602238541546247536150466979554519862146778569254763824714228264918614120503355363538392552214864490555791912387624338713801991696050336015873883520418362101195238864606934425987676309654844531612127118149592049300881686146072189027557320500187969028781295919208047471610966162086061671202271222060570318493554132539787645213312261434176121381924867703117572577703218634780863417288145568030233232138147892156614633309218647238590295272069935574080499093985919518223376188185409773467496780623862882795977015826287834995362587019363534986323728713570191978629965432556991933271206936517806621803884587052476426039232301591720291091966381444258931049758962387226408482208164882028581262813950987425630556853989156315908253802868807296481053599415108318229845112261468897220574100216319153138102419259358689166080769589228774909706534601628813802554655540367461209332531023036524674061238395849560405986818086131519966198931076038139686657328697470220405864336115353480711254699016932260808612730845122627892724261847770017097597615630627892956375498321954719165436764333840447734063104563180705583386031206019508233101256692154697722123407699778247862326322981822376210505459010427162029157758134252155861560516914505635623898142061077322645605487913500733838477655467989362070050783346996320173894169208569860124468373440926997769291073406160815921434951541468450891659731573707205559157058675428947868092135070934361054518830329944128938686022903763542649217434021006353723822270751342826079955396761214977023106261718093903483083528322219253255915415851762251605788063434479179263326917607595151954909703101655796932619932158738871733655645642462498902136863153081280594704546435083497107191549147202152783798191822557541544927406177395144456773579459039045886552502541614176860631408954663482872617409039287395436450590040665739946223426326352504913187811228059067498581012459857984639194386319657042179401707782647214276274031185358091217241918935422744110547338579617508559283261459252796914496510548097433951728400746589914030686127129852765964647526917686468957441293670391304427852092561267907051052882673667997222523862808020077107055290451538525814894790413584536842463023310859202560159764801031214328917376104979708748607432863710931555013101153458391004834811057477108848028577899201014382333974239250458968298861824561065389982006165375483053418095771576293475495152332489271037100444118139988186948677877343892891349048676337331518885793139430285904198756494205759200921746113803696713554189603573766991855691780723778798053629331300345727284127089488766040834369644710162265370392527475988333121474483658698682995418004247151823526962762596465827993804555671637643124584738301459066544767643770318658933779241715616234946228736194467339497828812177023333567151359087127800408789914233989593467475505383139149733432942071701176443393044229142317698771971703128526964238373902110242221465834295943302074457229520410805558907074984925708413432321240257513253275566400190905091605510999895131472764918968033432663120992970376566048682678370537464554433496847216427353808673281483493558723675624707632714771938295131552144622870228720775710842540611054395612531622233198475830858506919018995198417709193336166259903029029284444027174702150399222219061246392964756222487082968050339381392557259284063668266736034391887524204617352422020071155614366334835216820802971173941313921303054628735869124712588505509775952618336340292873840574379514357039978662704035908379489748383003739236651383917596576275336499265974093950125123884152311734783166535688258995734665911211410577247303092506679460240667170940176876412006351759697380540194682716315595050875014087586868287451133985661650544816346657934410037809460036574983096697792292587661503491269255873491435599616211928028578477866815553803621320427242634496795529035196934029371469744951297550468017431184685045601330958245549623396458279789455743237493304878641746544810711115902607886422707519825650883939298536130799696950905438702970334463705403950553815399110099616763056253086061603869035413495953551587864524393427549995356692969101552525074463894044124939143327495814595234388683095102767086262205942097591580458957490785970024835164241953639020492129895701712192130965581087832406616681458458489026429674816658240581010040303659725773991017512505305136325468774478648939214764202493297448376473237511734209696390291057028645408583204961227676575067204023817321093147574096195575856600239547008358353608056404108981277134265854976727833692695259795289135286284198556935187952304831331199339609189143768869512557594406164164576834621525647483978799338656225349361704426652961379633036358576618591038842543846491196402532447754517495417873842770392186874703536398866396584407546415041003398979759433603235622253718359230582232029913537561559097046882794813744330043841035182302917842964313655533828247387027020924127361867933151702625809931555402754626178484538937489373670266779515070029992812527699196069403422261738728377318640598718124325053090192014098480245676632717166184524232689453256562107154925269220713670568195601488104575860486826867100167416737558788506501997906530885209081753935700342103310654910687637472494590074404593198278192832267325912592502672531405382760366739692707532874623538165039801026781090876114851128765393437639328778248451251179298642671515647037618005787001995766335048016957727389005911225186290403867266976913388150409449384973003835957377168028718231796949050321796583416362050193803034493601247777817716255195394004381650297213325823950814987279265252843613310110816434500194860885347666266745105398522239849504774337623927891156652643843995698481201541947558526439809489102713906217589608239297816938714066341370229579096680845174563318224534443887827068744325516451154796790697856802637805170324035776184676170672775940420245923061311808359596134373446418138783396086068784204327635103493610294615096969901157342036215448199185396956971272956311233587962881142636346370481751359088721894032413946103812067362234072179017396162142591164406564381211414635091371479488350975329713665770857838536982881321138581205311093059847960093257107002177060712036934660884911856040511676288292720429018647704021028673089179014469049589293608373084365734272388477102155471288240583791074067910794956237825761241434381423686296168070684754923806504306848543378822497350823803750120409937093201663393734147553299568987511291565280623771423159497076297856183433969981834733486186190413323288990151499503437034328344431294785486662205220814873542411975514514281913698148397112574414666377390407294933506421120665790977964421456436119887176273421343132257963584639704399512875906657640665880127034301860937287171537370310688250244097525432924534864158923622032376741131060445734634464559651983692805044243224472349031945016802129036330393578651327587037815880651479316870807542200565157539779633296109850845353439174729294176524872591632146217467898931053844953116970540105944257671451231062831337325852643807066621163131696712917747054642193386898896579842877529778042833350691472381909196797155160721495560349107563743912924011509618023557312916562487017006999487207692830473568876289544649868329819036630935316772048425663302272510154681334044579037330640448702687413613915894434985675318317623292105685256587992093308911700901551439164622600070497716118565407740315827118301690669260746124537088856584048080851266393989380282870728364420177981357347124395357183602436039241483351596715349306432538608389029165428679385152194857188906176643201958720743644420336986809900964096477630283748614894588840769029354931963832645471503793296380814211819929078734825831999436235867372791970820672491269998576973749339732377560626094718469251781073657640451511849631953608222333311946827114336463940611710044739752192843771437677115666161709710991186531913296649237917124710704476052012366921276190634872023680433505590520206809096696050218312283501641560288881653291593246000531439716442148105785265171686291485977693343096014261870514654212710799067137816867180191139576039438924685819955973942607600565378521217373301090461465654415069663758414561768444591736195279698811957079773446173640988987223584458846603533064352002600879509297366907026604537275002399948505295132870201595070150882114122082006486851812361055135973875737427235440836612202609746439093560259256342672607810224462719695193152605673370320492271802419508583494403366248769707366684603642918951602380455582631882467314995472605415323957368411079773959762190776268885785136172526749659475072717249748039581915011129045368119035656293908200319020536415572355338370077214265863337861546813368322797183311626907148780203327142687583939496330308788250295419207021005503826084970237008196468554210852367230211396516210579970715277178894210768268698985770379265788694209930309400824296489959665629410560141055514365873874056523744656681311073639052310238624149056752238539722878503548930530748760292372847358840695032887252063153119356655356778962592973448185443367410985714958975688738861940091550478086663880470847709719740483935240231016008960896738796413750983832068587584930318240670265374832134029147704249929248037423774335137173563766646240079223036216091002440400474230413876830723991998275486756854871837605746642594352174501241740180655432659075243188124524885280723061735272056220841498543736929311927485260103577264852330155638481845843534189130045420002332708726204322101092906282890067907241222869922919429086497555724381195905221919664577460132626782368227909746872463159041083287401178028573054229181387625537850047353221391858915827052073787037509474432073786951417303645166825526391400327391673975914976793362264928121642016292422231395282091237449653361090207008110584041650873998208996784838974532637177003650024416029501180340424680517987015488843158373913942173706909953357630240029689484153690110657567088437527562353786243181486575265906178011104773955321866909894372160373852789219970242867410895926416373899316680102518692269865533873282647067591645902730184969668235613536217151457980568087190250135271798054455991915699109275644942781763741212456667630135843546354619865561955645232948783966942821752647742660520564306313687259439859686368331943885027600615889380252296802355421016887281186838583662461570488669174505521618341805889686415352774332636875892746077159129896021914115524724033829096838949226318730646656246744584620527468866230184685897209961618960082252263880992262973448213796087340325326371553021766267018622696091459464963415608315779713319133697128563032847706787209322614178697295277459480048084891335300099599581914574697539149330843880022164681404470961963841686743378241840506189919640528809668377296382095979775073975006679006000378322068950779363435357891853339496182284315105555502582912365143252582099111353250480665448000778329298327972735725791132687360871382796922575556219170606945689935917504729101810728506620686005698117496427799229615347055328243585460963037478601332437703667712288293003828363131848221651520742952730634040897741369657532906748401235134424095599568166306896662701324487465053686496666466605132731079649987561702407514285039185832052661227807282123429961569218865742724912674851632688615145497778975455412521166352900440426511128891913433532996216233907651555108973288958855072276555953685407682490575261447290791731548501360815757932153066879994599967116500170277766026986998919695115439492904355414504680478564853614230078428957748912428979079899585001160490813182256142011554788159212602439094217752611915729430860941366528199787914665988131792401156943837955989873477452861860229615409432543760884304031540459642363604664687990013804520842194521191771699206848233243808036474106818381215778843427077822827124023106040652060988571161450332457922772600077832008613371710398940731449846873318483344247252717290291490518777627734366521860995864031690148290370548264498796025424543430106185384275375478155517280743435442401237174240271282821168351729838786955287125454663604492039769620399186400962350738650364820198559629186590398785918882504409682688901033747117011138478989089842270655906690520633422189253770849768049447808544449756202939604450656531852634014090688862046384612196022360637669559417548910510739999464028196342510200340834477069412247862903599391159791321581265854781091766515114359942427209623869560940448331244998278608847467513555762174925240690533971490316234062274900117169518904271233082304112862125770231761897556743650823362902812985325600046592727670850779670529835298802748674414538854880388298369081604137022590339280319752110110549679863048749238459520134019015105434119723560396288535442418305076037405711499742574547364997076460065797558353638164569544863781361804021779501537928505084479824307498295802720703491148427226983206166765637587364589941365028590076045529186414643782832871699911856509219566309341006358656453779246762498208053247352443313739433669679338296037680512196349669547615415475988073878414017872005216639952418463878941234774126923096664843952338289563397691029613464401143812176818921629697704629422326860014107968690614039072611964288715895116171332017949771150781462958161219719513838999062400881086166488719418722133665376449593570358482005408966540536929796023934167672135917152788459529187694715334596064489552953438835265823472381125584777154209616139453336478881070591012515872685085644373149031388424948849857979263330749810235240618828754705578898241630671550328447053303985372171987641323360762882246007864785284979580546788235764681587953463379205510938461382184455556432928832245995431879055216871785684245216581150767594170950143115847083885903461556898235345433311631170350547290716524131287375894490207790099188146865234744738179324650931182021053678447696994477540679209832391984311045002401429067252033739441435707653316565919216271022303630821719909426141612567857446536642694567997498167082047812400521761266855625128249491285617663862407590021348639786261631269298935685515623045216157689334076655867174050849304097089178633427653508066370544076232110205337951025450351616385282424848125705418939862515737050592582237689597411346954166798315650815114392987919009570255066925815976205524781162396705159416301529099625893244382936151237005506410067131841930222408082154918981338488936574428290354065867748350085818068055988888595397346509288047481168637248633556029092781443842599138940780355156565502336097539500351129904456663528426158595787304535790868991356657089816603180885855402537002147465419910825041498453744378992006240319092346936844823027357020096151556658619604268452668117355656816874064539794092752773806721999132241864575588034286713071541277498258240247523810187710309957778280521808871304635522461292434163344606638367732799045928761178042016567529423724082247132773123184556863587501708246257940573006349935031600840235644853024295763891826642389658722993217390297429891151142617290657284728265159312394596042810780911429115920767286619189874890161228927627877933535049432408396668482875422955826535456250062427298545064119576462946627326242178543572243195789838767236588204336999014806991343176319362527278154642344518353721616519193136288890139448285199212520611674562614296382173360569964867327050756237160332495884393472053539466438538532520553138908892971153887845486398254752811449342650462125240535510639805131180739756360785567698254619693116812559229696751383126467288528107559722327063452443824350657898631733869125599701879993341394292074518754242935709876867213160358942161258744060594782816959133138151915183369037546087723036266685475011018772809439652623142739961073095006399179300516001562284874856781784658720621974375420182206633722765814703693179784577012258522103194296486702492927239669020707830903726413221642194347943854598928183364601879054110617893651175355677597165511274735880159314854173382171251536411645512474794553211719431135486022144489147703430209458663577830222064040283175000403728066054749389030262206029863643560749293505265355044524402587533929687274235779835764414809002663871670565346260373745091071424363281679937647590589928358293434501303077014183405043098462520221032776553144594959916076661791171618316722154810723724737957502002019504209812925613216298977023448415652030189382033288735565031817202454287191907732288204218164830799335868628230614273550610610528014038448493402890836615438866871130956198897956649740474428663072180483196933431389949414186937568896323888224635852181578342850971053986232367595120157055474508892734514847950588863193622630567210919097469613361993801978562070171051514718195758992390183963300814257165088553895740788250145658212246520906173860530310414831213933114420198264987421093225629400870953466235892687586464298373063421565188624648278672749353333216033566462232081048010791586774677711332441168779711746860525245780203066271426160722645465081036667554815137774397963268262155339332216099174998570420408924814711060884823788123223354324389954721290069258740275255774288087009185786035977929378477295910683952106075179456023817762792422335329631912429043307351107320493823693552258408580857785015121385807056011564081830279182382594411687812720705989994203775483323786311511548458039461780536320351832413085144321613809041342364953351577855840740419777013364010590439623522614133845946133482675446505115324874561284438083288074777829823125152897745074994469522742762120197697711750602643870671163486404946263006082233686158449128537270958309375339013214360581703759869106795802597463431056178757401121749923162624810236707592806319596760319651223685766526308014025605455566308163586807086296687614145337043401389267126284626579504474832291928354114013030652910144075378396140374874455717400086912978327661944743847640878573554277469355171440240683479667145167501988652042558957342873362325323836213809501138145499787385411720986718254174959037934485560785324172834304294590067301752085125239942900600797009969535231729585206049352309105415824226723978194065956331850630754693822130591385797534260203197041982713026541127929097982630530302954156314495585434086221119902747881676340814981574803206981021036300861106741138789778206658982026965618865815147113352352311046575799411296282390946916283037509827281545081576779687946949124291416440652966231778189499729434577600516554042112519825447867480683854256313723871795626877191799444951810723043182624875689877295269181626516391700223475274112346927282870819951268967269335015441380084975436256632070552052881595586684099534510190488900403179232379962414450915087452725528791260809214043505091374705627544600961337063656387440543370507900338189054178751751625816673537274438121390883256619173238891434429565283865588459358735443913882357925841355907557355069187882331494291130368406680234251396373223156598523342829320542213376435181043358939135369962019931439015770109711101902187916985342541877330965611335418857348605296672632926273457235331007675917960492549760740332647447979830470078987031271775360445089052294089062918926476100659853320208448661087514603209440404832024066036383966877573063443206280002280356457821223507475067573573977396347552686481239552150553369950800635978728043187729162751344026184620342941002490292027682231515587143880414521179823295559840169846091056825517039704073148313191179393394606486266638162856220598722597776177770263749313915402385597245497118334200964891551948293155364244798421764821814860827049785300791652352689850711174490399434199571262585612453813441604287937266995777162368648589165398095103506766269672441057205691130894443865727775139873548388949306452652630202917994394945754819770470874084051081517282156985718504477438539278702942845979810346589779038989398320665576070574524729455635890406902644565821028659179831877067903276627984663549667539375356875510712743676375822087979007193527278960357706718500521196551553097106108058561411734470559955584612021425877895280130288311806141380736042598633129141595631323487506861842470354092125691121575262838336302414457874583679911477603079180378517376191601989684311030296660544769667080905059506835945130013732243153070389704678179674925144205485336320036034998046419804305012667095047957999881343721785516343674970459989971743589189436945563754556971266448399874865193719110648510366200912798108607592617129593139770554492080689973378677704806506004985411575199217698889277168872603552767041205661991664167423987077743874843355701418584484882800375910687086310469488134208581357559925839241980634644199632704255243361899499680506405293904705089056574852189380589956546051620588772348843494397234069134961944682686016673965489693907974208629815329124456113479366535973687649458337485968439566581506639799609111068648254576538836844440204690724691733010912617229584965389555950467895562361783651001299979034991349351406845992889582114022532627708343912054933106920175112459434748830629845636488642117707752036065008449557722787514504190363162322437682223757899778902501626589971335287649992918039931964457398985200895312707210318511017718918339793950674904623867347797765524636270066085461375476865312492219421351835327878324650850676273129957191025742408956754062064256558193857556845397396483196084706201741424596456020457526987430321572891452951807529964629751467718353731507210317655143810570126782645423262685940893332890170840811440884220895011364592475639171624312927314044769949575818430332567171274985085797800118366227815710417540697481577647539331384140894841485428127219735880317809055482905616570046870806005881566903908051682958055479830706689268102941992144270125554599122577606853403826649110691764662973814263147079788374724662413955110393891553144544046936868929960101489418998804209971284476507006527743561640519681967414588937383234536286691419352991463466518978785199340942450824236159750975065958288854807818435040175176275281170149572997781792160966381703965189515865371775756117624468393830994629001234657888062661766003353162090147130682589184890644386629680225538483592365048719142198850010061435060769851086178126410220148047350687397954256241380861962322235459717017297953453788433990063575022934138348243372316418139157485493983482417604442706025825926728147317715836459459738146623761109520900284060021742114632041976490555505207473124724704407179682029908069099052569136660980154757378695917251205254480986787829576661735112265091439392880282636506617328211121486583421922892638948250880574003292216847043208037581956654502964006156995509247583029574181458974597474482339375167850623187933923692831355427441603518168558438047109741962619619452378233134210939364546545526376467583804160939975837361795800851348616496781280155822309334474388200289427944291595250251991098334461206815751478879791761565575317712324637368521624466909442477264358423140267979615910251531691164226026504930530482277512223923220176972831382034434593551198471437595368473452236971653425652510426660741049593271924800488036526733911908144072188878465154293782596531052669370616834165024200722762657266254552126656263005111313450001547501707354543208936942970190961568732312478876483981845989167834620011064577729799038005633411742453480782925777306859430255263419205665838396710816087767223151968397941028858203254050995712459510230783819466047881403010401439277966781341431321839581123811798289683429585987169879136688865797040512240321832354469760527033797360386109828240758949931426607709544189714132552280508970951986802831327978083613243354992710322784082311578207854411188724884427247436167869136623224755514856849114373342108613512843497842094790836039492796330898319749170519474179623070445451229294188399377682912815320255332247462583020620300467562926599425418898330761958467488590853535310765691306273439700066767471468228678149504500804936741183557168966315486854853422125621810924244566825171125977141131272815746512984543186684181236829672005572236360187191964555041930237282348714862955889944414201714841210699205233130258478382601793229547920646539891408350216302920210595133136331976497012339759378531723294961276385872043729692823543585529840211481203507564413825468074915419115996844097749768670483643259911627805954374067339533126982088719813539201858161326925724029893685047422805719439513913315770594140600260496553569407782622710856542914901259763165622311708677960179353995955773976713673513464708927760190391074597761432549988950909871216604543883106938196409583590739456184696436910965162787574632130652854019942003565849898976986066675033094990950664974358409216818063352964645657310959754629274622620869287020331489106383567202919462880664527136207763764582922344541267178151899036630384753350875964822436664852248544405036586358410731546409217716037133585753204487641665114751356605841929527814597961919890023681218504674430258685390531585435731155967690744423843131892772231572366434648576193727019684188585740469341030496222979361065051853810185680095217828219069641785804537637957340436273747871149098058896259922604992502353785743175218830706083971479335252116676318690027561503689981969246178845574206969046723760746532286923322659522051766364226264089864178010656339939262806861467287190111913338806082872085499245038223788949888611057919233381280328718380261887705789621730442457755851760357888085447023353084743837050471215821701089587028031993507328987944517178216112510205747943301539816113101092509588362257071734126230424667563024101320813588951197577117581686452702220298772295743997066494649549413911214745789642397166278340321696061125357881855740811624090874197741943772019773832101313538249339836514243780173014656329436082472215107746068310394108768236426035967621252016510987237060723534292933306385076519104325039983787682647866436847648323499338012523026983528000776745758139963675969682122272998535893676647991479622683105403025147132816306012482104464892731589960700254825817027185790012490051874720616822932348907761031749941306546630743208862309111990459611286768729186104499606308279578009842000222539585342591223255684582657142578694458784105373166713220275306441264204216355281003490102954734481128117541252991532247018638502893870096198611411881576853391243568374585362461609890479471432324927033672964979873291630577634494585216894746487976045593584691999391364556973135912069695108191312467679975298611910114126733448470229769656620992350794559460148266225136526367384135568839934141825181743616206580069294324623266726576338427322500108848583661403345390907696004098496268815047180243692884152149411722162715695996752746676768010720761194521594324029271404977405249966841043689349685018080137241017041620884243861561673135302429090866556799419292947637334742625952617234356950846063335649416474240330518372296000098396725791902572447848472022969598721714431489783646306935977104568035467640496658217575237430252234949469302425505803067238034181804676419728937690860162220229506972489423932942547902490444421411678116460565905631501564105800179536987106972828396377566538560817520619572922387899044896541863511975299863897652992312415749129304177292384303321462048032164922446676720583967422608938175970482129304624744688710477299924589850650676920898525743272755624720699495189768161830632732880538135878379568647170859746974322201361364229781190589231489562605122278783966186252635922124512965779261819608834331321436804954540513293346638204286693077881436715849323372773193141479427716825572175077977845450720544758438949918315964318206550856382087667564527402967750598117634799549194838450201424610519700176480908068237365095129199547644640403906747320728668945599431275918143911312855299269528445861028173401800906175110925044108318369575300656235895917098362327830356406041935710850406622283649320046794060097212446748857464237127766461831309020720924891618550083864855367216663187290979964334417302529261459233803131790232395563360713217796075912885751482739089583211597428543403622791290186080231856698269079662216425852939708192922218801244083074878227079847604487104067637882387152140151773988344903123348254397843228961761315192633540230458929633914491265064679668821163591830410691012071840785797125494318029482175559436230276398588421844041930632948675859780237294847215674696426143865857585315230121665950256119088795954193893273063251138438159370172395223732174434789341942293436430728857889344580445504986258874824842104469264968222238181528365624618566154467610842100605470697161184447849683309967424932503527644366520147932141494371938649672139420312080150571655406214350548267294048752085881325289983483257907919682349880401683548003796798667737674550160849946412459682100206651592197489176940345679748805943177496627344454817020215986776491872256624538294457988028284754665165691014818036475035870588646154165392184739403550724122922045909913748156852790635032073069487019204144956829096819532207295973897181973970623715381353226434712325915804795871179465432033006556467658259165700492138204326637714325624614899797957416917507923671901586382489031570599360335234479402952573915432687533793001614670440283112976056140929134704046208540840134067507872942763054315382074976947940085486774964682771506833209528285643129357271934884435848985557994762783513293877586917182418710184313975667693798488678219453277157872855804225067906977800252679118005970822112534300509697251991202537344615533682683325345874224343935221669605068378725159932980193862244277222822632579641013025904214872649916852937442460984045502470914793133444752919821164177505068320927431025900507536457232033542891448862747658158353836377307639341241021211456832427702801297822978887018579124199798192372115668042830817462735904453221817087946257152271496386081499026889375796007375524044988486125427398936544265955395855831263898397224180559769565966489186762448987505088770480967681039266245529693286347646203328907642332875531835441639810245448817150031610126560579733939310564083144146642376431046669350730846369914466514670938338447198111832928693690885689425146705555032684293766754599878140040003839631499599254803598929639504108922741982061446029500261586661970726969030199758212940857679276511124582994607820918896446041916844541343097326081597833400355779298642683996098603391611175043218488839155066435128266973452630047461183052354999507524970586701386314808886977153498975098906665871799872516833183951518898783122415831287952254188547082165830775998990983841028110160975412458354084211723129117428588364477976755625655728181585951783337443013141940199462924170759642368375151659365092867479638143293276201858008897905405761404907605293790295697736678082980727474228491093975037382951160588402059301173811387173008992389083803159719895522387631979895262277948502477964378400369105047446806376783779635499501655406315194826817707656149619291268606111582238344521069576433430147758753692621587434746326915537450328706449247764800363260582731363902877341887327911058176977461799510841453360356254771852877932115687562487281867684677610526711304437544765021754434184811577369487940052536081701069277760469214125704731751607736559960233216735997707378661412718178712230634967127590853910332289489091928506412380637812275672504577363074292411809192767201806362812171344368817483871092795459684017998026196708069396382218455480528556066620276728096057731747499271431120776269228897556619886908158837367587305021520020844356928541607353057052581296313641591162151635807182872590118935715549281134541293176216516576699135100147574553617359876089497503374023772442843996680214494460176227635008008489212604684803398385729997107611550675587336721728273089633087545445659317375817101934608473779216554681576390285623768812158435536492595744285788694570472941533421143013500833007605873719996964600336108429865206177710134221437751412109152605743532651047912966646603581755417924496062725057240918860077572646095997445283782160456058344012894125350184321086953663699979009250421986544440866306527667196959861572306667314927463494358153140389113266171934226253995690982817517913229109036959044841939207191257425594880672250270788489933219966656754710925816911865933613564613752266013326494489983250037741211062313209993468156138570874728336038145184236975743515857307130441634735044030861283258158959575744727493547081230521215558146318033446992343149725984364142774467122286036769544392603292118029330636790632352647979300603547954432082813119838458337021116266876963997174028115706617177591336859614974429546636119198191920739653528546809198355722343299010842166781918951195745629544341882266630134361325297746671813434397967042081962830172885597334637770370063572837009160022764828236297552431308796042284995720390724458121319049958019182573992382820220086799937880080186505972893016975255559654671284592768179413845831201998653772299560859202920001612831136090227112792450708011194570761067913156080186598734211404136991377762418116338201311021788349823677713597611172082272295479858260441915748388009468090289586051355206348907169790963538562589652613864894429515888572208923270611411474599849190498726743325782127500879309566954966504162995102060466465791604580414804911553613089810987531996786197944842815971715747290059943013022642243318295079290734100131542135495546271765000582372473805955286654249245858623923343712333057845523710258510104634047905711985900877474684242546256133977407067893604930617703446797773448535576209841513707682595459492367122078224708791696174136163923649412779326796188749974905062028501875034737154297668152512980974674397478090853416589798567044642039783504261770131146522372273924308394234308461036314075332146470799337334390533002121117800530037533339495971986694286027626525240661434263937084689354327457109359601201399399976714901758833196166814424808997286602089378370100963458706126853888748330291252541890446484253161305380697743205870350958147024825768210671022306154099532663622142434782557274915840988631327454149579420199511931900662089476620420254655451480003403273948576935339186987490965686663069190100777072180698320332893095638459061884285604016303334834179398379284997121860448720797193196403561163495257773754181231265004789483158034877502328817655512978242676569460059683391621766697724038209435202945142755461317396988072780495007356499047503711491578108686563642940034429829382142781813094104974200170377275956848268356091159087532393741032514159938609738524085085358554453529419089457090347348324714468268716468688162294327046980397318550368599172161195381820425152764185000180256512466809819439254452883467243930899021489707426997734584775103730045693317144023010643443427319700903210719032892705169723093520165331427055582315159407749009187011690603189245991777034842729159611414440783023729892399050559079501891234893614936080157287121119789514413056079211760467358367761339722983162574688699029536024684855708067946083263563790994614327913083972336665732518102792586134546760878479037897441677451476597782057740332409905136709254132437895642867027573395776560844824377098695558400087053643126152164559818930283949399819759109609946084301348896162369123688171337708557781979638615649116600113909555353408622626219082838399226415135550048351207226671847123694143395132159962306928770176390997316090924888649120495667663634093229677162776379793892341828553421141709394872893253501722518925120494783603294381906099280620531246915316584459960150838835913268860172224473665077992309923877242183797332080296557264911179907148110009926020698942635149728928973841057105234950169876462716679946405894471070895872070038362798445708403848985330167281703462504121481399450302879717574082541999210368884202316056340552981255061237559897319121243910155471484667100678640557410330675051297944769565102172660416777060829216241594213110904421863339461827029409857806663037185975225362968907156840733851793258514649042310455352860909391934743610307671648191093753436856143870878555284657430269709564525513901293141547631458528595431743140047852117306281949467807767569833544556610635662037794723542725020292259960465719288862427425922199920929028886999894599984186041483605986518281210975206131700194335669328456477127103319132283522900592764936655374490027559498983638426503708189057397131549149872201926908957768861222952723629846840567267599670349652023401179431384389656577532523659241120143942146284054462928526401773611430057992388940281173270751499739512583016051579857594403866657263051230744319365241399220292241239422885168858484605680768691910100378254216420626414559477974575407278723647877668288008084848188819256693908492582867951743758003148561722697484660454735721889813908324443153996149635274756244359875954490857899597346225882941284627211288317350842901769074420182624229474042724460381307882373265482819648803300768715573163848024138011691359316735206490267268073796207000457436042741200967821202049094878890193694314416229057516035030717838824025785713687708576998567387059101287294576698631132481051667755293986969551269892113053541468947062033177362467768573134053103518285196157536104910653450416831423713831083113229855497147903895903210015827409815737082593004850493030445323545506192499041630350169096549650552456644773012716779674125426738738709154983786083285350706500891264530352460620454932690573569058039665596143118016501789266292016211810295888531215572224179085681672253865863565035560455707185635940340421142295133414197162029076272416166444831767208657290114155409648196881512262580749062830758287051039171814843850021991274154372535431908022779691887073113336057361477617327054368497514737833647304545243500176378561805581535435338245649124267707590138200070147030570130815869045601651407621781103092580269192959395253027901936398859752479598412423400212721311730146053318329777101416067124419118514032854733755685474958986319442799730679871861583808375592729616608879699424170349140070062431457149114461759114736342643356742694206933417848756393093356977455694202311045115673050152869210914837635931600674868711978097783821444926220027714286538531178692472375139343993005198221110378709805360953049278110242329701750372484616587105125536197699776717167384124965552686485092644759450219772980600851946544618035706008969109661096315031427399007871009349593226679975257838019731827367092357113874929780470181683053211649728395126100648626748569151199458268101944429776333736267860523579940162866545579309197155242857819700349421935028966017454240631545533354835099262406896332268396752697512411262493780371458903948962634564229397454846202450549440206947546133138687409734191646990962767191240148100658967016505292079351035337717601959596346060485579984340760408731502394832726615771941476559663190025641209124853620154654542265171080805952239612351838106977475752108657272535953878868715330290555408368204274988747646678064706121843224720923114012641695594719156845333352513004829158748487724749206509557205544879055770673673297740430482414306982568083159917843671791199801416275607040224805161824271570015583105458253366827007599710632805274999419610180300473237345616869053165395308775184227680335319592991262063543252477347088845312672557233558538432759431785143728546509340844520715959592404679644998349318542338050162140327119579197286733706273555648649806944404840654440603654143363961690263027635145635660583587601797452870006783047119295896135942914755231526782558436272302333329878559797368554554139112126549955179730604435210841046340330381469226089233832998898403480071860741838517626211654572937771097544768818957546870312004344715297115740059470644144481258707656398574727166306712202947704670657991915685949169288927339954128325165465028218649112410875712371004869952993045602471840805906359075566900773050142961304312707277679050512377584172939783913624187103289808869891348486347975484746533213246880538424977119397137752709272589283981440783819817466920078771739864540460336998205059929614317681507811811724199424754230233075609134011733676363316301157053206704303013963721144718169116685722809502970833343756358228088308391186771773715827588648318134084208640220958513266071325737660751378868190172969163949587742492687543157046045161990097462335204063872812110408444239584558830792561073911021919448451051431170989199169418522977997387537179947824624582665813476068554346903553960647644626222008048802431797419252624108982746684211082590543320438210229723674838071592375606913127059896440620630736749221175910382967850888078978944284531928357801973936575835116921963852843251895532188669234350743139281557941560049512606913995643958144277264385862928177226220296845939398681440654578570294135297659407468579748032182377328326792193792219895270588313598212774931794518733106332250191930968936465672038589201661201551911251953725761565835144137968741024874663107383549177807532828560638516596754664450145775579952860219462639236518375456728701241035785593078398063846414006699018980516496309966136754732075244002789311953150156577319419152545388302297430533319079567202948522129990174484845676725405789338341783723938175186756859962352174899090783831127492692111460559810994216076735271739499869147656514269052454465693683254919750691029467651151440235744256215131918965598276393180503247523489865267692155374654548320849432706549093871369672925597722971518730728748991563599246851028624660212078009503467129519821029409884035257998899422302226042094919221292173948433459140071790044013428654603096038510043607401421284644450616929893924469258826602540161411871937437025796770052165004009683203542443810644482746694247392728222373985959381041995123962382995294042659467996469547998721667225058188707974894405638298948075991352143812804500320723566142290093227133262212986375459413556203985548393941424350892554390767418833569035181157960455730623537674227996262211891736647338591015249183714532157668960003030647488289367885118528671546891560047024898400898542457561639664107517135367666799211016869451615397509124383677710826261785703543005882278932166461276959344145833334297960988036591267947387499808277535008685656027092851220723360874946386104669508656091130255772813570338302760977322674497280774702731536523914802491550895460669119741586417468328377195437609102311455120998285264396868460654763479220215846571762047028990847491835955727552268760433810696596341148654055506027905785604893158000732890050811192207053488292985092249817899560988168296460198216206466642761027986242352812121453523445995314393293148521154653966182935946146450978210613073808839488355616804300753538619106944473166499935693522073614579873540804012815133488373157162947241538283502446965299149625523966892683325438015115411023114777179022665126730153904315432279592199697683926280335544913189040068297413523555664862655847889743975457715889031692871895040843745412017603269888558586143942001286825765205513435466122998555358521040435917445549211842726194537924204663837178522342923567903835267845820387653703242848375024326876133934065538520532686212697005397687771663788602133716301721920874022347664180718318390873467588349053227193359531467872718795297489497078069591132545783064123502206706922450429661346985975155793696945057294909929673024638246038144139848774004625305220075157234693983036125592170381930382488746910582095634965307144842612713429736172149264277372415202666457441991740610179394571650380009210098943346744643544054361467089453706943299949337978229255681843241851627167202494853685749859985367405671409661188852399687327287770238526948882679688602805270128901259252156023585311656425930736084404844317281203403260843610902353122538613279409746334313171503734445551707120265325371201057753320222512878383822954123578754439176059667771372413835114263361760170383081455183902408904524772437785158106853090178110319509830119115431172648840314317641430877036872425811999549390868077070148896968734367706951893758036893428369222350603765645238482499365184425156099194908653701174352272872630789602468846699878128890103540239270103768507174704217687080876668145442892872765308070554006599713002957757747144433536094002641986168830372005593607832309777353540288293115965505571372010886626160095996248685167603506324652991942476470234729501187718535625861316667021782163345842426906147303842733597918867454986432129351665352843115949419829963336967295601095131463056784022431041409307359408774375297628261995398583260511936119887972303142599754752749385017232792824459762559220484651661752233841521129729585130593670948345994168185486906914539998917864148933930834397927399024950614246472813747546301252178129885300795321391519017298858393459950262413201561053403528316247014022130533429619248294119359002487650137263573032637545668817651952862391421297611377237403984113037131806115823698437698291293838502327194843662966456063657462413659387889413779131799210396350727920990090887198366811289946804697989155156372301755529402547648161958865794013392906540993056691608381973735959490753975338092766530213378948237716813677893243521227819612271313137515129023744277960343862917766971782752465562460776667063461005437905750812077319485574108671944438675452711694531316304184018348941558917463387597037391275861322690786424662864319695651750128429604372942564252427612426848472554943427728161817902776406482177192429515997630001492417673679359582774399914206322947725742966480296746352867378504052727261713272327415146958054018205829980519015730396010650991694792667113650494542010352900464245049272642385771938832941400310945318741624248625774464953022266264910515269151874197402381414901230696658489012949086686563490139128843648748173575592392285633065654787856350455591386367804953653730242838019772768499959754332048988039574104055570025490029699232925976685694450377490871763019246896127788710614976068606850664678374181624419749309079322590066522635798523708452401185361812832578760168752010938168469048004062649914629852146286930854219784273618077029316718931698580086634988935231269499838386623897327689786063969724539056283311897380409850327656877036454867964675827328518065058874868069424945768672764811869667958588843097559200953643314314416060597227147142834709239500614954412658805770039031617767633373215749044614589207740235661729169645308235929036952450202096691353638259659181657992923200583016967319279772973736716241521096111699870048154511294578764456576542258637071597784801162897180427643514906807376040582541239795142554343450943672529291591900184688798962065212141679612371548715317103224563647624908526084256233640294538946841006960281768199450212817578388315961280203698363997103588604167963221698656853292905937864207528496951541334984283336054907609445451570514953773871992407229449754775258339657449956122775638660241109884475612940874450807454633044928775786761533861199038039547818388217387318784007738636729225950503811417833791932083547540720942295011448843947008485022017746399815114294514241503189900626889326191737624595508181391637342870901923961405006331126981288551467817811337338398878275362685455415172973646465475252812237956208121242343442577564911124460033618216378519756177873164691196442925908921310244520084271722106220329213089328662271396950988488161858613816294514912821558892927063483387573034132705525929558586436315923893713545877858454596113359338343781918004520834421257737330733822193057205269272124900192948872974768560343385746923045878374970338152456510063505222044847776719296522158458298141108079157560074919848501071824629154708276544138471113295665509539162788107093924992615707374145753941500155531715768836610072640027840741840938810448481248638675678827950352938255355347227512803747678059937091116279742319740219160215614156059560913043206701720210386510120241766241467294144610209258484642226277982600641473821626390312615732405543067751964904606602009706156752015423144400290401855424971579616956392701291751091467251597458194140164024516294829359054438555147150041399399929994723099067513386904746803841396261209288286578695686043549674101220151362537665852620225218384779160192535437553509939675898065489108770077428620393372058550127860647570480618974905386257329612847608914611851425968264056702428082624690575145983122443728754572585194126066195115371061891939735340859434494230871865999609539705434849137962020404212129258236237525025925961863978094603308140996845344800064796078741366155904839196519294532553906738231388239797049894177055554913775747825458774912973934427558909938006485197521818115230828105049259208131474718230162917289602649059098351904176517268067045347201527605134809340133360875744793975794443059524646068922519663469571746495228950269162067634611390507572451533891769534960128975722261067376853700400497818961520131076704844489095060084131976949571086812312853268695423502499158321016109895228186113749923650814010666831465168338348569521918081068462296856328093583257244048277574134534912406454450778702225841507686159251601862953641377789164721757123920586224823420084203548454018710869074856400581978541819482042991542617206331408561345063269598910208975950107061085084906112002206118096379078147624804647590737962157626148725652499281818958245450183335480638780874701613708223701342503288397239085981722382402587944213168594015507166568879338149931721015777455516578854959432682312622829726997715533228375825641747732438804067921635988511901329970887960478534258660940206046410176074462650742563878183708095200040147773663335110481171740284189213021863891402564104333054418279286162998278028323477776236198154507422525147462074571156686829088479633944103454736067247144166068556997392382119924557042261722324275885828930764803097578221186512228137947080755478454520438013913422842325061058170724024418732645062946882459315346994436426385435346576358706261631991212669284453273955304229957109282635932945605883852205738523308067188909183879971892822530309143703818448743809362362016103455115198422139438120222622067889144507285278688716127141508430351025813830540208695259263601345456294671378759625269319789720748920848577133238814106664888370536663200412062394291969350534696916095022035472850496608593994445757770435804571475056054538093450081767391019977202039056470610544590240768626687673976842719043340925803934770713341789591191974076281005860105093818166045580371780214695996194302647859394075904905933602179466669904891873504986470475198402785322659469968709113456115464182608609040543515095658457623763541180154027626206520452122941555339415862708037608200359253109505499373516865478845659169918271873104129780462682530194671257590047069970261068946776427677759153637495615947798939572618533379521232429772186680985962534722001531849680809059767699425665410233112296107167775235038040084039608229356273594110547161119512973888835228308596529244654887841681745415314950885045946442701513835900316729132182956573293940236442438036947518112470500889724892958846499219254859615354168606092173492077559649585893513536932934489420550351873729877730495182848014917067196481730142606022672513757245406879856805329331711078391351056101882026609461460378003471165299995260409858392539438484952830979415717638699713596779017045356457432018434957452816342428898695619264041683771445981930335841489011777750604517869052307864395648896704320248693031002253982144332230029134117336652698989722845266873780348285026779810873916311536197049961262531234781973197609073853653036296382542796498079609343892367632216248882233194697294874589846742921697522542496628664685973552790540836102932726928798542995485668533595284788906458837146259889583519534740029753551283094712589246439350178241310340633320404622695552832646082474192446201346261974581857984303682249264350995883936260972233296868646420535887074741427257443419601620427771166140238049254747036329053646570848081653334394370390445021914296582304540649077167356777322614615446043031318479693222830784151848689606342511126306211833059368915767700923378938386197035482157801884240952975215671213968432177358603247179982067945654996165085713631295146638926302827804572415687822711731458470408195187235787161643499332194805772124919797174773844624638332114137311326336407656120906973619327954247485900966535918681650935302533047280663614215242815199468781866164900366471149606080744170515493051607645738698087211066895823566690706593067916704974440218581405617861737229209224693732993165978967416288562307587605232207824373218533127070427332302733433328541869637621405217499893560759050031379534790926897842165033453903419967173478821774900075947459302940888514629940728678137065291018907325998617136897417082678115327821833375293831669890442265437931099802015349769163939850603070578822653891150662152783990129649000806720119396801679685048087293186244841568175955878138028985790231301973477492637490015791145496897385488488421776758328638176930284816926138631432392919718887279816884640258945716506107757584881600332110066428648325167939100680592114753436753955590449316972377909145313870321925904002359044890971434279918453426993116461785390005052912159399719964424658392598992485483595109505984769395486351331109669293887843384834052319401276085532761393211666470104510181374248057524154937000211156391204698961578532599156918141395278711066127065162234602082040340331678706701965119493591453245585329704882996530508121177146280677977641238190789562713001735505391275859615573660885337981718188499699149085554056277950516932345088637124284933068298182447773016864582414163906825379312984532501530999062059478086682481995911685380076387378592637677803800772923845621921799010280741318997002493414964697836509863468407258981439736351725519232226198835994021384891195047987319681443404889471583291918124499600224486558607043082505765320163842084444772790209926528808954780921741525346562232985907356044608859911030242554772935817641519796762706037651772663278693145390607166773746040175151603434888646863879402238320013550572211438603238440144679498961611547560657646279461565239916096840435675849927595514884310615399349663935773344524901270891573997932533089234862478259615987330027152629206844061258914923179872722442016595959894353382221012902142474161452429205945321011301515478383093663809485708801786744648250909633401479484570396763228239015143124603833288569630870371027144139716736654804385606037950614274757868465148154126801093347295837416935969211504569619972052680543379546278904773423130707660267155602272355115330292029187519220408858828896979775922093469301162545883579454753968148435056750771877549260885311243471721988617542071655815710974236007055038721117489196874913001596779334607882058647139595492166106979778430142817065308273266866084641524485102984733789623896009252304015366349581840515823555337027532050027167093520920445428621687322395755437971544417269868589192972576403494264716765707620608281310216480616577516055401771849893711878271308554362532569491720789071187834197827354292237809943953728297469879914122055419529172500056622081830681798293212725234066161585498251679534233280772792887802203056085207984874738366034000871477427685863909596699737312361989581649391793062693704233719985577004723163036072100836202148174565033290200720769406741203134847459234738219349355321666059420999860999766225172133576941004796453731229052196627899055604818354531253437011455765003806108360778349265857042819563490693722486116727037611094489057770721211131729307030844986746659497434517272626621409752685758469779707636420624132208956618364130838548513337021957233683308001505362302724261535745725561155364490406578299525328343816686096846048629198001997434530878122752203946510485158543384762774851374313741524486910950768601860365403505923185774281789569347033104636567560826389093709830783268403225313560705471198453709674201339123452922374607056125793145336916468274829123871486275632805608974935046537395258379218716217003939914190372169146955124514641847506072005229421734002691965484239133912479017266147824418636927977995359660750038762885783022000325620578535933319978941143055731458581086199691532387423924051933066780974261279966346992913207630186964001368760375241813651899201740849538194762491773264333446717466891613496123799311844299857253668316216042605903402347140093791483451947016355637021650710144774205078269014016615648546514210469633027408052849456646944061615473429206980341581895687625994534402072732431626586932103813151272422251102169349267279776257432999519836354109247362142423827148900883189690980039335204430148653240530212406901124837405175073386132049968579883438176403040996336607397620840128286452725732888796278272966880088888446744686823372555979745523521493562097556801212060863251328863781359968044091178896475859209837563917889598568997019631197457343860989668683813200809697758851231781348457880903208379799752073670868311218244993646826693884327312586489580071379095635477615062791931081691488181322279313597439481610567707135726254925899278779506129923544546877983420863969311826123693360556159089732701457877869115629371570393229905250928097664620500209029893835802958159831891624370336753467465605398651524488887231513483627329936555847459843297850279296058227612555728779865813687938885293415170820375670756374810724962040000945954539833502819830491448395801797585319418138210313346822922495207002460838796291767701022261680159290525916724310647537387764146208251144448433272532614411612218345743467519671665330738426578023293773725625815081228416727876563254847443879232729379971942207445101617093626844257908752169117906706276648473758356177034188020409750399503709155272105440412910528931920682060914568836808051525060547581386385394825069118608981210014096691838066395155066791210518819906223894605084536437292983531428340768602130670647440006524937358355357738947806258620593843208604012381395187902084521592060528731990177388375193193481059698014097086831600754411663570310972978628529048394463247180342201988623427982880785668442863890435244904923579794988229455651878267601360036236406476986528105841877155156855098949562269004812684817612352399156732309779384103033297876868323407029143114177867724897830134222612641551495906530302787116684077537089417681158749520134970289057325096562549653370808391535608074347263928011431455147933923069347095356461950707989053821575669923858299627578647915944596192944475130175308273944293597960940811119744877683237186004787293348268151343242766159369311743264065226240253050198851922714545004655403335554803151136494508690426689331973851831019073315374939907285571494135553979984341265576576269541054488647855332577371215028343231629865946755155146775184664987708860154447129052069024838048630273311416986066333867362568950677850720225781123575428378305847546083974396985860715201716407314463926817701220374026765545018966971302537065504067989132834639611487550875569747227875692641898404897115992971958073640382508759055776358205323170803535374025790280202494498871010009994077595977668883933533603274152356841986511366677527988371781754416807639681401440910553547461156627967808634179209065191403662462732471382548215167509894332566524616070636884176392429212994521042554472531931067380719415289938522125068451799704338462262498579045438812390687814423153407836765770220033371222311870926489093913493212509819987456253932687080352667805065383180263715808212352559240661437589630302033265691846602665416709062191855981973032007040012969729513339861400944776035795153370660748388586662669712894448565013568958628005526239574442785996266430680751898108358461303779554670585508843798232096330168557927877708622311693651232724058556590444376391308563023522532516377399163316360362721621793404116579323992685994525960670725546721449915307531757420180572123621282213659464412513686303241521552655797646720734406456140146484806195855532853833173168102785939442150194973639871319512057143633197784711449304940279214331941260545323357742545909557223559383937250303147582101933147094672384248309090684648940426226730761497805637975622763499055092677710815437658568666550091814080895846717430861222292750449121739592221774910561620459429770741976499724309154634041864537909156563070206784599504945395310290051195141703109198185252221669919807348397851893400333698633204603524229269012771434830943130290608844290081525598632456891282833750866296130331123600605774143797571105641645126906064504873342330898633831720489865187627757434333420131543687230378160658697329323964244778492184686575490485490620518001278023842907495215578107251822203483613340906392941088915459476350963373554487007403038493582556588023337480881216217213108776371786239219939758155724202719897964955002792868635663681298838186959339667359796427985152758578772548997415312257623977352614421116283895830563113479070294085173371455772647956529583488304462086437126711919548415274566460026542291411790087494161450932206190628216760927650870567519502493457995497053264533011807483228772911488746607210603952125788852516942735032328745798725214062028223931513695709961655868264905731523803822962031738304125792565820873562804230445050311245203440738792562068153534850683753811023892864472836804165481297248780674888574243590371508535883844531254438964898225105129087861744128956231126627602141722019352761414080947992600184213581346462568295818768625543877032047735872156723429425579903451616549743516636515900798049737232051387128531512308960383064709504627859383851535356267982093601466158437067334011853975654961783159819640205129093664590620724135317296294839670123176528474920036884692295891036361780068761001829024090324216204831218202205886065864668897623752488047395346802319047062849516879966521180791351170178713970260952197623199073122783000892190804176759077271843896213694862757644489595203066178640388260455008789077513896792994185411947470977131009075755389734973110212920696628848714547232580933189438000420231015863276202490770700320584488217019754252428607510397823711188434259799861308631429290200500718288632614278967067429702933563013113273066802186741379915151051123250213427228109083241058726696968013918633195547951100445020971129068132064342425460377982016698073625558901148852335770783402744488617628850942563210064451883597107244017521546711251797109704941632487608317136118239271546348598717460916520375338969973470982412098862160099283454409833993774511886620834830556118216196953556116248784670119986332932035466062862632626993527966792966580156128776296724346676417468980178747667864625368290057713246731405214690054084817313017281151623423896778780647736658123389931119388051927040119693717490581296917082568024737635812735361285975718285251304200209854232358213221910390766585371681285958318739951721864461874624002791390976695545338129909773315521306764853320790976493633387147535520634767980213511509416400856493306354219123311347475549377140864200859034080624273927565978897317297657286027603756225559805939383299357275040764412930755036783805228138957752932942049517032189833085997758041658576501318695095802370001747506767498792633581206785109234100600807642636495687823954192038848885342168583344461766528335879357300779328032162008630410579404527250269017805384416820924980474446713676872708335316245232555893671661329130642376923643826000595882299106745168877115475188807035884084564771520666332079073630052945293183780188073108158945529457195804890788117463417641204165695962775968380584699020962142735792135650393370373060838408381694321874032840597751323500536419661440731104694255687226851194117704628607637834776641667540760629169438049008685161064038067522661819617876908518246310987085034580274878566417035632734740799602752925704510997563038723712963244675751780753003370998223890156257444467828730152999565595002905712806057199370620232116441386224182568582179244845594547593032398803836785684126172283944463916716122011720225443670128412792838375079734729115781946158647932251315648526294736714979754200061400672890280233594882637117417909582995818902089315230156938222623446596325226890187950480733069791327622929044480258934129826163556026726084234897690628259312022477379239838113272854266068419295760940931654948816159823138730815794405870253206186011785762538441923567173129872644837596387996555273358177381031335104297402584118863733670942117294051518060139768640264463102070913361314163419229430572276985268295184266709900939118148294293866195847106026079267203952889382483892336253903676894823120989353973684501602667648659224429640543136429273525109238508041596684656112654189302830793972993608429367996009634779544442993419583444561391911375266699708077985026719423939731636336189680876768397761926005387246751224367231647877949581304440298595603635792643645157681222035906677782863491684719789312770395521363453281781353453445292416008641110021033823211027931550379417994048718892389442094149029180755262408964630148927406467945342693513004690776386469963922848784519327678907665296384167892286998534756450624498065627317841836208329392977958996674115048502629899019628812792801399025186297498002606339591493639210169807466884712734102725267848836077459890812551955310893355922213550213293641108849693727586770427795708582142510657584747820247618722208141890673372145954776689969753879873339619596039912539172753343825386913999366110602937819056370335150685256699293257332625529509119479021256367704076901612682634690461678769053010701337417354478841364989028120252732778653411804361414971283824668090807403017840038082379721911671227637544972705468462748943558605034892647777113179940067556574315168842948776552152978727127571426546118971681051803454390306221880162259122151811636541147930498076079454584923076122601930159280368865157732680626550071247197904131053681899206037262833255147279222591374022018257461406365841931880812304823647482830787245922907345276568752813204405500470631803702716234825555709479115118074379540954500771167589593235062213839660568502116153660073878356840606681681969375044254348040925874732002162919381110988354190645576052491866072365166401018540621548967495760701025653074955769181291634110612929521552778509285868182030939561758663745229915344982243598439132145062555115423817261275914774641740239655358398391098783906433478234122265839083887699891691762250457992033698882613130885657979689807452662470172098835865174645177597307142318100838417773881598416318448230657000271440256658479659790523055564376447746292518644498985540796415548845141735325356126940828688702208849166164212621265264683171923323331320260762166178298467784239950903735539947116678122255048232613447126625369448605940018691086448075064208352072624137536195935888702267769873971365103860983170466329569895130053469010363892265018202686492796676151797339936389788831459210617935170246200421571931190848657394802320156390577162603680254467888130132267356109772946896564896232195139631431510588224595168270399392210085249982208265898252748476697110974223967759108777665922858098504203870141050053624905110105017484927449668220264305529459078098443596336482877750858109115492005684061728930586825000031693408791024094818997072667689304885309894793112728402745096776675161866241856468784387166307874094691828033637464791034507397022960095723326368293263457477833206940363531097461479925365563981075695606870566493880657650616422179827641341756936114126210129195797586014348792615218804687504750103702368695942607800811465907264250299373886141023096766837709133148671768444447495999987206371732323946811570453609044783863651301866783757993341345806044712442907563847479446003995562381914926884652928078053328658537847819112187977642232427099391390112500473840674664589798295413241264040048308737019812669556839635335934724669726824713558571384554191308445599357331811477232118619560392262110676223464218482854980697774901544742766834377189867632293749535689420083861147298748306187560086499379736184518365225025781845364835924579310984463658925173232269362570022114132573373061469598034800115186762339715827236970503539136883349582201342363896123436754614908135101815045010436728015858954641147107450195576225046761533725940837952015808695438999482718496668642325743119740902259175328697670567680188100461579929973065748341247919851757994602840111078497639393321023167341667125745934120226402417980632648776802812536099259308922681903288544622093519036931136307937971740117675953211460521515827541687849190083022357008847961907511496516219413617011232570759137557098938043222702654843046846833159369263793460380493097043485489092060644708092783269062299861066284360749256967650774763638733399970520541701470483306060655188952003162054382010012648032799424198991466557946022389081980700971959440197604549060023283386001517673406981037170138521030027301285502105188500481971359606924221410397080165410320113381917540613847114083783031723190552283594014705674840015136028312296384378473323733097657230737769111178277182438599355200072083997984321279544239537439396608075180904204048609139425948139688107209874023184478653482713729329509642133002267940352877110181934560100402928872648229000351285013483174210918689943885598357114622907100213442859706071387023923573433332656190285061191227895712406028732617155523254678759773589371174409767679421818478110582048051812576363354195360511409189403548380834998017946187022246158497571686875552889406644724945077127724173671835759763927310766893133493099374186978920816986161233996213004105514501923274583514334012570409440571341126782958375643394794143646297124104169569265863175468362780534401286390384453342201328190641937739333559481687262475085110769607457699612059962185269299684048488101240488113597947460782134797144039511008303835465183257853396143192768585736474770640263047471701817150615121652013129007123116077721587628213677368257940726704831186869548735869187345606468885128968650638081746644561772709408426165060888249220603009515320535222674384415120326775983466458908130248496734558803444428293666601500292709419115080506700065939464129799394258196655167083737746927638932908454657024959799638734034135428559397885093166596688869260951855929061011752075373376921598160942023756935403441738402843102495310505683602828230458909250845614375190448108098927140264128261990095719762304283588757260552667418679610409190737296702857271709536338215364552985422368578967283145564923891969560274786020793839224613145883294969525403901458998025248586212580702728073483698041261998168906100673991748816545574735105069376098027094950849399855612306518135556033336115160180266818377290922910000561696265980616052101479806358130425081760050372012544583136176836050681134844088400325110375805604206637434686457533007148062236386747002844269920164956017300821815307808105193305034575324701447412779336169295105904892527525184976335311874739898150890829974398285709504607765038107071804378147487059377303669590800831052527782766165400443897469858103275833260997554861411667862856090150654477464984540589073283249520140896657766295254344036118373641238150719155866588208163943442380999979269885873773669079794765957889509838752978958130610598345775684868309861409706630150087978109667082321470606793867000602762275299174872312824025189630763122192215545177139372449249477286130241021189828206599265194365461755729430932587544697151271414351345119505845486563991505719892734130636512245327051063581285189777189733310733354256069492459755245489574987028054434489086474182801450184369311227808312900478523101713652429574732034722890118643688150335594210340840783201422768923591076576270760635130870254747049281517157144261511480610879281719335105929563971984075334095800551792803355903638546387018396700749269964562150306662020632225085181135223819207343604490712062412244601273138679788257291557995103565093289646851434363560277403718231981486993610437289436894290419309663191865400174115405871166378754315144503935588392160766849235615820236305776402562846461558165033839146226165660936826856422265912278835926766800725954849278592485565375428650048927606913566636861045003324832058343377508752669572081934111161430155243780717950671653224233012843691734127885644371460352625744492184376264770125703674882390171110079970709959045742317013346320557021356239806121399207151696079525537946051542209205419312895748649419978150475289006538806839372101675411362896598907458621952230161090427614919894108428593752481904937173570510255121923187538650556237696444285084353482098175372840685276939405224389653024474979565861207053807694254276742656513914556687312039396922681683673569109119823635873104858817864050374484145006155176787317354886214963049267999758679031562408041643441732456553866847362875057976878709783676437933738422912737853233364217090132059230266882187874969804483966101558372110759867442980478595116972010355458549880607488165367796710010734896399683997145843193166072909276344318309782704342472798852598402609185105254479450061753322862433415164505043376115916353445721805020035729116441580619782562695619203963737439953938726068428728668956347813297531243455888063621080930130992614359833464437718824360825652739405328056451027682592193107324084715463060172873377835652233283535995252758215617654970588507161409472889478872676247243443241592008845061476436679465851175214958210206317117628897443714903635264858675790687083804963892146697465442008926590734102646608429109673515512387774703189390811917711939846790523129657474951686616709097066911092856421223453974974233551539210412492416959243923745164323627965678052288329078414808073274998184089501766599438824988355593132771265832383752113255891691537099729839177781122580056743424742814449836344036130404109973854932937732847193110645101340804838783696617144549357518978059790088752115959858389710661531803969752013937414936144596903641156152537010947258038695915355718886613863366699723429560516596114823960637362775190366601150476507554748900064172854324347799479448370742293653524065543862083411613434104246401507018378073486259748428548685846821202783437454930533514969824933695560193653540971595243441878170165533630933478673121107395699619802525414414923526382950024322203207501455747766160069928376859681240423648247514594519997878211959263165376655027154355713399765565251892280463534121895029397282288946694587798912055530634083847105913622009823524652945047248016042629233383123398171719318437889728616783660502235335555621428651693723996809326935817446573997484017723362762987389731110148483407769813975118109563760742118372792409476730837350227011515542431643909230820505861120302669303031470967990917732871205396143024417041232355781405187947670845447337756690421023600281436830464853063273823511735415736863852704330224295115303418535796795347821557682492662765786178945307444343115920527079793267462972687540916727158976422904957145303432692626730676218478964912447016037510660886702261831339124669526864920253106461217422571574818900970447376628418480932434991437796068205489133207135621532354102233113729856635799362461485345935245914983071468289248986935070539649930929415741088856332494479087022483076795500868200372341242152584128995161182893707718278846331301903145683670160395235770776181840164222873989127131292235420817005761758980356304695687844277181088954567668059936624226934701945881795890639612875507121896978970453670745867193606133699162612979211189570078982336379486465942416339358011483690743862280968782262766059650187115683239809140144018203853224256128784671359979334366901553303933518023143556335499048965007866511339510497295774678858364910019743451381081555706988008526959750604493809481030777752290939130337692569197311148139413737435703644047589810006118783356074493141915809868505971926839398058864371839287196163670832076264860586174127850787042969057489198535879744409815552949027533685965270596891546472279339629359155396251439683813470874685318797635012782226998281252536676233979490023909686438916548492905848544174751319171048610675846986203151510371867375680199404858185424227642092507193941836536119144736257044684399113004932996998277787495813557177323483959179911825022946628342646234834887082922294408432721404071192798684953295368669335429139207860013168282675505428450009921334726371267694180369763461470281043464691049660639149983421750954394779383891856485757856416578741046555082670010152685231320598101246127707842588657211446832018051509277782538379836294787098257505430253856601676885453660312466003094550530952713933822700857963724738590651802960261729788678432088327578165693047991547003851492886777952217162663318238370677234874361765263184176061534864005320846361176842871194548194270747340847823500696274138226521708443666675470679558290171304419154303620802892374942638492967981994056655993470086524995645062139838192467480001209174813980697548297881347444085045779625254705040915006509417922384877642529042254933933100312053180550602054846934350123509654770633046681987198071569960210162350932830274781519023261475864674703485584624076011491005521115753689389490952354809973830939212162184934703880732747880477505701276171863816823998912820383103614969282713332789918693682534090209568444895750881603108791363860975665102612457406730634365903478520036606531098228314239230143706353805734141196677542256260490776412847023418415718905348414794181013453009082703753115322851565217795523560908478249961033007587682225179512622361728621221624536993820244196087708857433387943696573397899141748069330318194104419642986928485368490993329331993445465408475960968267835714670667307050788823207098284761494437671073247957388426547912639045883341126135930982280597010010124128181134661220314130652197146441084989251216887734977892296910104812358235707130467758033623768168247645116699534415315501410893921557675610909346356337718676295440980436205199541314271587481255267084032951945281108929286605405300439038364357281137684905325679303407023866116202191696086796004022526127141389051877734883898974330053497368698283339202856296047676094414709382805950511612515836271577343517067810240089422738766504820542293467651707177964981748373463106172904713749020616390052439372913953981018174659207138250404617622275930342044138682713177587023777184600967480046230335105423055306310603041905014849178504103047426882945753847199640469872644687528210325355428494862319479205098386644019892110803083411975066746650089122390475037478934238970013301359915394241930117847936262760088836350059586032030777071984414852344875540994218168163437588692723137330013268199320465331386601726918759902420024322028613711649468784549066413273705702143817142158833071587241703014063735342125574778615803392781937202331326331482922134150027770587747101265475144436767141207955280026746610088405444725257687327066673398401431779725577144005571466986414129745290805470095531645632699095139276311146535199195614814714045733380618094303512885377423879683517428815758528313424671919882394097441303710265822594004223455787959275575813536963319932587722580267139574448808189054498712081145900411113291490875953350029291536292790670857632123114777520860652059223672007231349892900354608077536601255338359457816712794766198649664509352319683690581053145526606266540879473903670486355486746548501497842716450620245331452585969599965466338128936883214709385749521354926964993483090427194709386864733093571588099170119649836756063634437943335042303875637423622361671569158787188641117242698518331242542738394480594185596364953371054830369001239929461001311808870578081297992489388746092294240718219735384988008735204171156612310134494003934631165241722178368286349818482379921127149537561733449437292667421404182102058026297569606958962251784990400329922407867510490459986299690057816439974413442692654998681177551573226470855116214045613809364546834744927702163414488267209881132758632793578447460683954496682716282712651312975750558285417148243065046959426439981750746518119946762907255637920478668857703054883122875756083381682238799111643420935273675000355901507288528108585284830875224328320549792226613394393353123333602079811855584127556823179252496785895586407912538642115878165180076405543072344264074154460927211727701572761221321420977584352040385361526120354702452277366080598835222548172135289838859476524538061119448997355591588870047860708293876345023925438074445487369904408370368881576830701730895848148419860174766106748243476271512682330587884693311924661230147348522534114780941046300593672561624825535218964443579740341701962771964768922269838590376268396934144660954961251986779883790105552159139079628874422026038284244239659006890388316360684241427433680990276624444472845922380052868083420677848303562830911575928831477779922897584169300008874558657388409532889830858088647075336341300726496722639230618373293081563842463892455724249270823793519260865560666788796647726309134940209298782630818376580400019797375605248456163538217304476703181997855328022811111380663106166821069650159238571691012734404112894689379166624176468423525431086601467393219811644288924349730211717059736847736107252754934095032719165244392986738906868982050941272958485402960093869672579271509954920869184663993925071737736697096202310467834026393970522262169183944875579424717770880043569232986610927977717133200544383012910309589908913900188382073254964993315279844741516224796536081901688924597768461761600432194992601229939310101447063638392237166070028940198408282661309077729077750563690879125992485655866051876830440996333514558883626567107917987381775483864984630419705950236321936728020777440737986976546875688787049933070839122392051136719399084700522638309320822977150040067964573320239134500369322877120790873477313025802728318140625233959972340030744700718964991295773266778707158753166830719614836693016377983005433586105480167854134473940155724404302084669503650435799711188927622362402117840775854795975379277206161288871809596693336294023451724001565279177635751728017721025327549581093480329748739549275992881114261498885708006266276860085968883337259771006367814600469066323558958871474035842586594764083040997592535225497068459887506365913957697386630998519414266102941175938469233134947506108068391075307412583649528453336874752721700544472597681562815517915923402645585159461480758884258333219330503004713142252819045199344492809178951674853757340457382553684501508724553178539309717275054109318834530497676979191022481891618194397204856593147103603666540808304683906085459098462603488891081036513292785588433339261202670118040027621451049598261638201846854715703267037565205647428340824795476684654410085635618340471915591533908525088713635367740668572721494392686333896669199091763374677269967993415816967545470192217125892537326846619950491340726347358606425793293158907313467937060378754605857430168730512849521847722275474600073701251935411793908643572886087560399304147731521489509844100939773239842585994467416965816129959893338124942201100278127844038081963577432252367150916680033507296810698665038937431166075906539043356727337136439274661001924622399422751112286742809098146711495461076117583023551331866642926578501558989390596683841859631924890320645059622643754475687980333670460137360364596249004796096337449991303744045842702202480681972801582107453352466309393292290265271010325454444728982602203363226520893981933598629787197506072341520076818596640108775030638429233102315987773805890795524977239945377310610490971696240175655316130899587992488743328664799204963621076787129519358972200137927872517060686852247273121245084803399292292370799515073928960484025823440105999718197963448713545611003505957066290775950642588645593684478011504886882584142336263666305840849411982947341545875733678843348247886631899646929652858284023628908061014517020770992361977580688675388811395301082144940817746159926580519227173312127844113209019402402888967875402519992281640863656914063767480914153352952512341667864626166113893064398649311286011835893330690711040918346617849436897184159175011889446288578856702482278875824382293789555297621542868607745866762927102744264227449820991836292937849572581865276904180864348435162558898401939485733056696147586682568240657718274958081073099605956984932496377041157802797215543167768929657468894189527074055960250713498476714183549940881125497860680730852450563025984151165425636297290217275834107557231718088013758154439436053962819327412274325058813934924876504299559026289973716572613473078404388544496541807709832499327236337196442638312180887300698348102393346510978492031917966862315106162732623995812295287223977708168511095765111156741816748487452258930249783481913002772118523913460933659817690070223468613576110541215435599331322558931842922029314134159021709390431332414888287779804662589479536592591527054616902439165898556107935238068653275447696303775682833360693797884308710980089384075321684047086338658673430088950453506262824952428053223907484184538412882396442584653238136784826732069746192106736343594840809136181124458441528915119312115511422684993107623674066772358428579240503013247769029199995848779519288749116996008709410456081643544833520516955644476427340122434284398837857155900240137952591933130905221667288557154497826234005330040731076727246827225099693476303530966557724415664260058691693389105424463166722211475618839679716824844637177096047007427600808748386668279099989487094003238949780548472631562511206254391152344016796009257968865687518245840913197796462532286271464803754599491571968137317520405325407464611256080734416401420691645934097354687372367272400614655115752487035072675416379401547513932652094342427364853148311957292637254250050418997210447726115106866365703465375528110752520731903061014813258938356823445082368670601689152960751156615694869606202020864065105689555541278255330916020369525631370082061746144783295385164564973747852318640423461586045270197813198339604425741605020453319647696843657932816003342463430444887574819133343611829718742093184001312233914597807778300416456226054716149499813110837968545695726742681720096324237848976790679860024416891888710313480777739332268712175252696624040522160491888243858165277386946862981426208375507107687224445040136318380119922415350713446829763651937019760636377718408231976764262764434665203431632851169897544258804458561171098822179667428483225798751988358023292797746943966607869125031736592470597976646409114446620143248202655615536768742871450235419075178185447141517814808008840611267234926252632416521168390844119623986527936001915433652605852632810251605461243821733991477905064895720227712915849892277782635712185550084830082408896033498934512377990971525229293096073979730798732709662066443612116639249346071031477798124816644718564072972636478333672752935945899766739785966786183993910121929050440200086468638695138773508527481840758512925336953447846600043110979446360567775143897455494385054677700204435044240768155639919108170893560284898294889222432320945114742400457625358276954950780003910737553764941540897261718210516673522217134882619496948752162284154047968213250645156916474899440693730798457738946714112305841911051470454291634870074283093465984833886769835642647981359497333328791821545891460520844912471598170899312823538144964530854969531429015053674827862446802515677016551883552720404873183343721531441135416749035035207366237762397220952318140147521909465729035703681528674829598315179732789020188247485518972880184298367856549101154792449932954562864395586244724987646120988202421032164037810325678080299690499363198715857817482471423113066339930769327649318064034625899502208378796152352906260304374390462524359962406515008559223598137698626465036391818006734705632087932383488901241189764329573710823337363689186921066856964432087645441126908123979301623230049237313799747528737874596576526153092626904187313080857684033939823417864735356819262790074304370784327299070156010090072755372111698675336558445295197593790243738196097132984741171028867506482485298937213992020281798120433382316048010000049498423329651949512133312035133935768078552752990062928813858231917072647688755838647006702148945010031316149021162671048464473038902172321047212787986666586870073047719479234274011651430865267221296873681341957319159448036397575731322982506288974441523698865052486651055858116643457703217017639539483929646529432039667052444368042992075819236425845286825147758338325357291182050568611684782114607544499075738458721708377293162688372069651176013129817212881519942183738484162474520538106502773993469382721170234207440360979954099379478240141905405699981309721288463523960136721809594479994295861256256658057615153741372569455376179854761976137643437497184112017835874731184841882100634816637060565709244229305041258038449396833638543344196213457868502826666373491602105277967727437907049074227422446943662183634969402314717314325255605770850017401242133817484283280672730468260466939611015574476623287766883348649275817778013904287388519090956662351577334451529584412715761890092121744999100639887963264119413591273865469044032146332799716349877557845437955270253306012871343000292674012717466029473311134651663445513303079873231427543244980281660330506314456876810739377589040850189128839820083189916696313539770890099830538989003380771981870371324263731109392162394812086013579370131918985562682967212966317398509316961012144672690181302425520920358465145993495484214657552647362526670832032550960258549761514368156027864996791264236277893779764779242975085535557246438274200996148548751155804249882379399556024306709877265330703105643003753854788051043527353416640589778215735099323714080483484272135989691058856023216451184031115834072188894023403283339455766868452178047411209406184993563166548961656288449463825602594096494271106612608502063216647631495254362448702444376740898273103066142874654374606746737598877705744782249262759253114716998657413208789615278104837959868461898193259910784498390896411619215658314018245996016632787519997024411574685131394208982215826928707049046488200345866542442454246449524831616180438957750792660964881059478413580302027043399825040644397300757234155538573106095211733337344388385519215442438253129184810266887515453367269146438383861598665554107899637678209090760874663225619829690414963849254090503473091760157581666426030373860874435568294483240816576207856062472635590569869651403148589050558613530650824524040603511817558979384462141614183439150626570658129498266841092060348395203560147015702279856264256031739969667646091409307496543879263720788649882986469225067098983742684107204946802743314555673873747956699901934946050940387056340833493345828496272991758828987569498607694112318388417984508809141109602719144354116433989878972802762048649926796164229639428852859353439035292560167097002209171927774065751759910717516979879166234700412775383142763270041724142528928303523454156373625611383415949871832001051711139785001451376817197762720367684443702166193184231971661043518063158046736468550134384407725624798264858476747481943738182338246262954567063154797240325869136855315517258818151176658607990462311229920722842099235847075087405359422899576883449222847362997239336065704311505100602085941221225507004020050214952918342488849036632121142248107798355638350051235444182660370521497350662305643359321092000409349022351350873373915995108037355691469847467540790354712434823448398337553935388564755121067747761424879887947675192095118763271457742832411415991332714150124140003551415333274381172072799815647764074884994138584336617146859536386985304004649352688750101268910916612923404343184631479847875322572025345589757684216050101034969636768469914813618969528330448221992026248028319077367675818740784922628751134441524796555696226165286691805368593029079148840684513279939475066013591634003139513367797971765483335301441692076737027493302766485285815773234625383578217032830693676815122807754431772370104788879550454603185138954327658340286927462491245609443607393509129424397446435967149376568498004787076843523795269768555966606418258342132031919953778343836303241275241021576321330642476541548812267553720243536801135154123068424337435280266147777641472114704626261302884535536505617042878113269352457182985465302185422601142163587287408436792098584608626632014743853579420151854542777632053887758277068523110978584706819864882372639769820382498485714246301516114695097063403881281622279497445960426824518453821483807626559954871341680997344026428027232535252037836031155024752874269926932462248741138778316774981685472395694306091319995260345178305302182500604988795761891542479271633788364290108902286924666730812703884439206739151723289452734220526502032132049256981876633744113243609381371353428364318940471219224397689024921524430767492566444739829307844386953127695231638262056348935369941728900478893269002034566217464568158738840496283544102153997732949381298328514828065535645911618937582613912157742637001744278276354195114376551389249424518043138602610519536966824088583260951010222817453307256048464179436104162637770319823518660676839154048372675508867252408447267576758313056309687842802469356835413022579954193404795500004347480113907761415647707854158771055114437631016128989092106900000906868647971989590772821452552458255795916171585934321795606810010919549500573065521069660325948933537132398453946281221274958142579151842046508505410709823796666117652376283960543638706748294074211138329715618136707771601027618677461246690716760892235435709975989709321043059745224675900376658526232565936479429784480101076175823089560777606395080527893804407946021632737189928347327743896467857161845597867763480140864218822401839019094397632956241987325464369415208956196715101122119857327250725471363690337369201926806401833410501033256279940120604774036652609987447293194096600836737867321541531846720507124975925167250878617106911108787348511763680169863496188203400828611964472531241719398559857137195754136435216526631256219531269690496868160817762740181903275696934331397385179600676345233684544154593617505752988861699833505428827307837676145883316759848793904891335547868310843003606934519227181999697637277265814086200109649309296743971432358913628088618682391356477925785092594522256723639175746415525031366673667613345397513847327224226861326169346624719078845246755215056931012287025655488276227530578704808170068312759458672927178642991461153003219533066373419303525497529166756804342809389600878592219201113752883745222173128293593639971515567875836060481046549711792181904737259535590133702225294750195307412189529426434309039129169545167613332114337455462439892185022497297702385392636010914709310179256781116539246047179090683261343780679932611575225875064627835902971525113941176724386550798451690819450278644026708620090814646134592088042583520272614359880838123461601824692337299731711143861827058455471669349799166123996521034311205518243222877526086020360792044999076959256647367366063279458859857642990300866078439847072990439836366400811983327400380859061115240794452085674097150654825765279345678385784040483783571621180060638114864945145869005117653463838616367962280408169269016298242543358074064067394820363000199138390309910833941144521341141078001749255004295947407467851775546326155530238571155764100969619743991480047779596846853275985573170816394218022387427534306828260691716231530189310173023788123981431180411342643330849988571414040890214550481161342614345116256143868824794428384213825814070117537124145182837772746160728905606454370776240953327646361915435060947869502148420051701511110955477669226966681110563481848451839645715978971056249593656558623253671601029932751012748110106149121198150606888522994127488004580702628923180552049304087416668254447705969102065945286982824259371454109604820260992739764450453831944239348844887870962170609080386164270355328754956438168131849400742907911315675885539976350277381143778265809617050005225855665916117103270178527287421352898173339356216404642895553681547531622887742562378742638086685107363254998705795958308574065071241406007042323255923197105844370281748539430794410206189865575714831615150795864425430351115622975476867994962758209173056603067681674604594449693683416586100830617823204910927341638206847825858964097086068689344697244348395257016331968080472404755539092704625027908901217817064558110140066896828727753610941331139137971501042880773911344998436204494588228278547065138755824000167743422112992983445045694604058074496627248098609674245235914065147819517140989144730436874150351196471790931186572324037878070398590870569914118119312015286913853707461482084152311745026560332607670700461019666090637824097250071858345003849983549422718035563386859116164014866317340546919465822871454239729936111024979911601202021187704126764394527387391895510551644797060335512862441903866363074649209655488493766536830099413258185316809419472945767728051468039512287103017058310551252452137387312776509637974056248794534086388988442655981442864901297459999009701741525505796882627329601264357742254281515217980461383449360557430993743652109887699404194583770336403147235688756478295463812317196642303871458520844009540007285095297675654084259760070501259054165893799511387560447151833209767396568112120523037314667795422430139368545162654190164436748296853830259676367134175888149914101756064284911756397842841531888394361199297479782624638502721758550570496529800448698010061220886086784885119231978776262209913059006719624533307561327948051412396906309481466146471841535063836801589113431401505594197876901963358652612602361389845215527503867946156203570842122017339682533565335477941807635218784444856205444913090768521605758799114458738863201261700890676161129593992091434585533390146919881906004158170060684490793355880798199396337541348645242122567773521424688032921836583089996743330295286465015767415588454201813273844366487156423906671182596821948364346874371218352129594636248501936308346875311870139841595255545311804986597138336405602264617191280662940538710347025714707461044630868367102296984754036487254715881765584412523756590589348365868169813415970941026526265198054529006505013036239362780969279217736792266058794442747161174685894899796834933774917824379772137349733019839161093872641717963439987085350078471009595464578631880667730785430569277028512539817534675094530291521161295603292862917758157315111421515534227154473415967435534463588607187768534112138470736607150706508082599514043005606759032744079438279791844505412754092690192646374325082832097021189956215645177702349169736713888902137046317993788892502033485200260436022077366159142230978260701337755532771802874315278648981429191299978148921527113522702731451661165371697759060325339577768948059972483211079458316288635326172711743928876433160136590466805605367826551794171605955607706173597963032972090844446054229121887699482013534487201726237771553647176757557127916625842301861194821124352107590827459668222933815565552503202059393546957277525518993711643484304130792078492841917179367975074798673515120199768245841229050264849932642707285866566749054258204279422478878381342356370257829365958682570229728751103270021624096058502646669654521613929415571445778995099103880599674949830320766987091406902806049420912560919577463769958741446990737550143740046499570779248568982890586714685968378720235674150957362356271559375975954832390906733743994648834701694994810532601350094661247393564203198250849864846278249956334119132078161571332740339537198650733307225027331595794402916803289142073425747631510194344088189203791334857202565058070190606723325479393849514013918326137383939158993336931895239664537880393470110800258349066353981065563467488327751935872753540804014008491382046192280801669481402213837398729054070438075637066559094608542862668796221366987172476017845153386643327886718810494966831653245938653300756265152420611524974304910476705068611710148880932269683400805474676042190659438051221258623326083376285266850789439932151187389127852511349581769411353453004636532211325553907064920132105020373713808314412610286605631119514415322957099591263305418383110051267537003498471645378229399394183487438261748364699580797111592195523793525790237074225539055192827576681184750123044043248499818295511341731117506486281460339505480448716876442653087351784160048282938004842210480642974858568702548232282828681018457632534989114810675496218184963664020704906649688479592033560854287963509132194848052641253770463542310806365113444152941854783926662584654147965978265110784693176059015862262208531970002282607966528099097237315329101239123973297499187062070639482710968056258876838753869434663724075797894101050961529617793621642022813933157460780768182512628820342459262182206307798606111290243169362551058889950411609098246105231510908368893881847974303793035109357235606688379649954282019369364565860862613530803886361708168000930127630205145464552256967390592883245171160821485977699071778123964006839573765012154407281861319097936459400257843785743281377181183987825358104393429342444086312614055881607055849485372044559439213110657095686936177423514882675119842465060033023589294189650970048909045378735304196320370052304318172112932271950878445502180187862030694025360140576775572684478893017203203747596820663208764345440922478573795596260685677799440479723121226773801090165361062179369029619133310470246071689958773419761619567503101176119319413428034943208880368888766236650104565347004210485284413174698713043243042385156440620892886417052082764308558213842489039171766318754586744469811039075512743004252197375839228048068732395691449218317502698769428324881841514976966810525858289191914850629014318451236598191439572585720877037489503065415540015666774893104131111969251362920741872197559100655774764447647806269564997362150281184880483007900640060462896391877224889760549734902879390536539199227675584086660236703386957846654585807092219538914795711584212903807195911816355248751342770721366791868454389458182235787854421373127026874316181979312234397678959687541965995715097137607038792188979765839323787355886249248818487846759055223371204515377437344648105224702166190383804564888028006795721003905446517507130014794732933652437634777586143883464900771829171695217331603938488034871532551046875831193658888702425791171308627924313644976276054654798540552812217361652315826299690692239601735163345329326888084326125125987220745969472659187651527317637171695247035587386978083081169355603112261153547506745334177393842495018575884515717939574404616872286768297493855480169247246031102638709355341816610160133850007741326356438117119042781475559060774930570881763315017308532580481693364839383738881595547353597343872395242814946085858419455539658949659416868847898521761083343143431625580043398899161974660709417677796338233670574553853079236579693205164616183699532593935277121546226400302093256398372228086406493947425897439870585638122838972170190428940532134346981553062612408064188267902903658320969662213537897403561961521912365182018239320373695955779773474552501781938531603593895512385704295361980552982317618367787036309237804479039846764015005355713489938961372247974617966018528086616664753550485183780771476699289306166107857208188736184024812893172773491776013483313544506899521138635680526334860936461729479598523216953957329668028254024244298855930199861456414889693628743523318105605690497232347452016623405122362373266855853099228149709977245302603621657038253011092090355002426349026452214822247630146525833752005820770841348498890035960786959501530917195422024396585194696757314987777095137665722634825863665654990828552993396528026923401497633584463164615235645123073422094755955069583878395747342034284900482215696015843378418664000456155906939965209699587514429641790368901023639442686875421651333188916647099106188189806933514626138609408639297045896704515054953419031996672712272813533074469307113161232320024071870565713008536329566591106030971735107546892250433613620943511351651471516411068843966570380412523889657124663187849545253603909984431964936995233462120495995850341787968559936742936047741817740436954381945103345609956694545273618806171135447046575700321360595931755120730293429754631670099294215320041791523990493757642926337691096062519406146822510509497058390939752146828022804450854457358869988282859485304507807383829418958726273096366750273827772025357435179418405817353318113144300478293942679483163950413913124423445663399410782481927411513014254905181350527364486125833401457337454094179695365112105209065469932672095159972631635559238477437606748370397310390420585553382388676600613805707957774322346905018195470143705695371099086304009937035504012591684983753266932369556858502989234202830240481228355685591765723455381491454524644830003005124890373102697173824066388247527693141693099763100769530532415145392104584682907083546500643719516368657767067137326406144103771928386306282065408533441303003002374368636357797933967855886963233512819166110038176131807474829022834430626813000200992481497835965990026879895018727315606852667522743112221635492337729284071059440359920142003171035723868633304001023970878658421904116159013330583537864664176690501157086164503828204757390578155242245083179588321798047123020862858282938128997326910782471886705804893736303632681080933917511623555166322038771095167139271513730350120098915103933361410339343248952998818013984479200545599077117086749150117730286673208496918533628975100143844357918191660124593525552884464974284913849016002459586468984877110636511824790344071600707795936838816320926933257892341239299274365009458012163405578979609341820270525539875911605567051493313838279913466493109377089990852681842149008472975901104035565466153837998323999960801097302261167775833830729686799451388665286757613283373953934542157274237640239982538240777958982166431025310268803567094157601834738762533410046958026381348732281445434628672106850770803084720875045750747323911072955516393075078474652046489021323593688367831705781027362262442267027481979141580690557164980790302753146812277624620641644653313704633692902346426782747341780823704835115314940511086646131577550183303718846059843596908406244452372307279422070912154301987757398638522628321108984173956245211904355170657530903279789950759653581457259735674439973012663867266980284430179124361638046020034566299089269670863116999950741512406204907260285402214133044347516674230725806729016117009460927293032496408790855511049804688747650322720200680691103108109702381851940799741758633953257759944444711881307947684427753722141709384989751547679866095800630014467128215759171872992366329585974639548636010257660915894235719769636100212719605672709307038105968684381863797576716841819800445637828285862083951069951956348201297303239076720782239826109730185056657345003734958521367153650728930773905183529700027692887792561140824076927862438774732999797749355387190811389683207820234438176938227277726399062777877108774245502378488521559889942983965323396043835935590712654771370566401825492949597604183702408928588999046942690854523523187092822052757551026235093480416979119905010919471328634244979269804834301374190966069349352426155350464389549294993254023451196890847440669786413435046681914186263577961438895434262040229463271019875560456378109819527333987537718967385184164124322285864203203070089065000501438696345377542723429199773411607888121463197251283224936854115839726406233437125669038870089125950714998922788171914932376720828285583642018807293642150807550339413031401182924279788717361514078415076858511168292161546448295223123375452147826397666298231053944906185467353092922701365926687668824850891000545805682497225254798182563593348800804565155888006749530910824347179082958356156511487813470212457342920708495089508388529734225981741760523863522230567345265278274337138455577987544390381909200354303108810047655649177003670257759048120980785511820773222768857866195092902609054070961528033949250478156935833504613760836340279534219570005429793207426292877123027484423565886036601414587288356440579431129468636184593087782027884745896578070071415447324858636121555543666275443465021524239423590078544696671861379092408607510090410380525353148876487466501979525804494222321591464395133107574193244181882047368559000377060963130266291922416713243979566477365915484244342554887205992181760662531543090383830972089654957172577145931896247718370001229854352525919360131372551897695284282849823824682297192235980471013520506437932754207024653180978494817646503937777625674826286009029971238921407856814874413005950057497417343733728053071810051618549663939821815743527156073394600724117483240991391667943497106138922234721132295899611879883106844743413747764409084288139941466555380157358776608806627334269996035462295943375322784685981870223063542903315491531086006839609216512583399917412937812524941812942914341619074793165447317100519318734900192622268343449475535056727080106244183483318910080713419564936025747090301833054678918751167913732546099915226636635978962886077250974955123614787532471544786146956071099301843137552436012434856645745222244777450559390147463363194344656964530359261938360429896958292215806646176920831868457131128541423731087999295504099051519606002801061686672613520936184829491592702341391451508942759249184547637705439644275513597269071926671467103161645676829651124402331321965879242738533683860616163444611651417701284401667573182998397713327963660689803036647128659535588853096204847170523607347546681195599351892657198512522642696167664569464200422627928374037104669235915395774340683016137222626657164527522414613202148060754787374947355586290118265441032794937639029715372307420921761431112039333173074081670914215985901450835455074567947119730849325229058487974652537042332935557779344954830332683632841000103037484835904318597948009150897916368440428819781151017363667859714688342799019386527010725626595915300925105930569661243128325042454343470020189086707081182869855281725875558922192504792321724701573200611066842772395647826685016888004701539310929640280896769106114836470341317729476418945002257982897810888699265620112545447218124643400034243522402671710913037302712921386684566228774995295514530299923670603091818866615168861249883488463002025679109898789564160525503128926368033513714912772733646079747899539031146600729964452429209801686412367756353616732300329007597241218063450110310908093086622839410737914001175526395832746161356692988308650167823381762189099257456987325677193612458613376323946542174436295960052926417072479153905904905294642299619282858603910889109857294996132284822960882187261590251618970252157391967959662164327761256085465281310080022133185060238609927246852876053202439061715475628816439164543836202213827493092640502183336985446967787353208072841405057201206097290760194943511692733095940808512263901461582281861401477870613565216933844353564456151146880044631088582523670391266054558449162371171567210192378839380289425833703482902538572019147644730196781058525025054222612952740641580541741419401864555117607796246867713682516433008546141107080871057486909706846315912812371858431640163996020843555276701904256112076369871313800803444888748843079350891454258125347294935395458076139340239252167317755553487889081504935550969281373417233458178248905303624607492311734709110992770302078966384340300285464364580065945027518041156414208501855041933468698506208089377894389110504070462463570498772114728069472242673976616994108737419428677988250735681282857698095128546255223652359545982301213376292394083359376345671913871550172592193326004016372663689612249419079208887256839054755216303291158264583333329828904714907090500401059342020323049484316973104166194421978559130875972701792499215613591514490877434011941601333580797118240715817838662998225988597652792266037302892130404613356858574668983108902481437177122985089831636540615993986704177592361560425938588188845588771511125244737693947079222575514299629649108889970267762411841063663377980273400925340653447733559559096198563380616100240423138407482049250176150101819255870135901661348729430307983941898835663928734100568818648945792896506834842722746655302033484044807705329427428474242311387474872855400123621456170578689275564041889732300967176479781611246979809017827224982746051597785585901940594542279130117874965167893536407306011281412324332132004299479227044754936056501217722060005398440802046467472597204053460621823181036598557357208255165385458010292643250110773691192007330839677014643743746541816030353814951310105803507096174429970884118780929449062049107165683879354823172376976718110890530230112399275324823256172556597884215325894205631199270148328164656429504457479739011120282810206112925780570125855613775358310519975566285432868442543829165982448864671636035376426270877320490664607666190922575428437825483701186313269768079534173013997179452383785574691190981956936165380178653144514070418370390406027196751814925521938582481060530116833031149249269330191089518380061886977076020483590338526321785671975125097820089283169388189231450840407274798289021183411036269893180368951481619288940601620902377604910851875035741194203111872934412466515960150091022511538535924292606956344318078714755093314066934631662717363084985168395949273070540723723344767807283971060354088040520600973858636043398799085952235923117150120994191765551822230761433124853694203647744833239221051193888092262387961205452075938451071596761555464209366132632238440008880354151259839812149123302519961159822654903213389222739772209760262435950495608996882533953899593264428251308092651070841929453121073282698010804259113278392724653994579531921211432425578037229623474971069839597437659261673561950392730236361993731299107812389445254047379406057591631274085969014414437795234130655824225557939778359124652763672849283632634147989239542510970832478165590909374978601935038590348731001565363072461395777659257732263361539698682095120252255131388057693327953197834819946010648914420710239457687178833332954418719021109251228562190400759910080795766036360723732056234054568494170126951170888966923734474030505225861594122791912825765242074917555924177477028299438477829303679572795944999683758862174875697850103404406289403394619314289327191287270374466677095739272653812159883083904297443923227101710990278465733317514706234174154828127892396399103254079612569201726331881044668290661124632451634557051146630970371153999255648212527167230032118062395731070689149178714958004819304098683872556260701110403485371492306345721005793242329690812370474627096480291500877208894952164464883258005439048810541485713903926163371026854245583835213474027892605210074172043233774172539493014374856678783836153235471497576220690421592301158023980278813898910235281932905999766149266268835147706726463829049192275292852253337701190120928979723825282289865656972061428249673651096547487941413376270715551629280458203823986319440375013649876843817323756088047498860180723255147620418027689482246696026625190049794034976248209620920317651394805623140882026255963903937032453152447139231490348633392241206962987607236476108255253537827442437633303829172196032416255914666566557913494068202800353184211655008962838838460091593902024295832277760588201097148107851238388823193831406603887657121712152150670020103644798056271850047079582350368418148236899641441619848803927426733578257967906087023916653444110484798057119585940855803988294715875498256282119961757559425463155792603317578872705901558464270754605751186544668503704288505516468095144260796567392352826123060168671092735630526475232571686575816334387305547482029471304605702048009860375639886417706394727019345713735556658234184419137071665818875349795446235316175177746092414906286020699481969847234108218850449213837661051821237931600742915818076355593070157477633548067928961731426692018873857112464398839211101623660927125811906786174469348322953823686233065590663704575149635092184631500735432223302041786164612356171669894387074481895957030926965058317816104460171176574365244411387011135765454219261174653264811438847124694108939893405034749898140391865361782786899586712233360668365848006435954579717269014367082590603072456598932453120466818432215328345448035260369372086105415228449494929381670083271448476208466522387376239058837233325098577202166500137889670751906372328807823855909677316289561864573280824213209710199347594862928097047568615663602333483632734462441810237151658110064319115789124082284725502122334110793094417691123860867971481951712182873646575604945338293704310635069711599467576411360767351424498965471245393929048900455969324963883538437371223572001261360241696825406160846156037945540401100405093641117446984541702330642975093316102185511191997901725017479973413704414424425890651792290870303201102790144685148895283388663613520038182822802081741876334981332924082932870225170396420979160213689958094408528846318332916268736791034869051771169056108742209220472247907935235403580643471649941380317832613822829869160763962022531598327504531413155968041146641201024259685545935822557945074329829939151301989910751345388135151401747114162840001375314880792566108357827334154019581008877523375182189669131770396942293746976504801528296824092199878670291961327909837694392507543915871626650921733189593666653609024056112165795560212692845743273200286959482556227624207302457866234406178906954736872358338436327319837808134370755135153708021385276902113495878400495203900015132400601134749884616310895530811617511695384012973129171724246917976359255538195624421735738632263623919524360495383949927542427993471580289121793857749952502860161275791008182008016329283465383375704798664431093113020544223750707504800301886849334150738992189670510505323627161808693689463442039826052544117675503615925473821451744150573823760268997679926853799294461726333471630941274713889881063501757624015820825226076617102316066159328378260057243950768185257172383582700332051239376113951893839738831929930768158786394912640855866930211119976682322717634088078607750654059921669416574384859385338579086304327593691852000837448945310699686296468735338494969321292847236944228956257668427958658060948872802691347611425694688551921584886408533695726602682530311492943720707730424838045855477663004685564059455539021834308479999901435145730824697894054761005986876542965728124738326933817540681544347474350078173974910025031670085054373061855691579895924460704635544502155007610556676546125422748127387618553605737359294293241263986915821876702047671436632409462869722932206253601241562209852175299964246293990245855912267116591339542181702331582905277302664820761817299270855490047429346162207956166121541589671322565607904841445894942970154687683153962233688693996393358287808225007344303503855343327561958473086682790596402269621799289585536861500484629934271234296664408139061011003985138454607447017116411553697525851823463087663900551552462405230921797832747823462590592655200994644942273682679420137640601425242386495170847271488573774895047754387933094594699565617424234656524069025900814510054284962430442131018348674501289025803353396431196466691836286796493964741600510013187509072163823854928508830334878284260113172286241797504670368024117077141137733930197768329966793908592864090662418041076177473913661729705013250180865114226157774052706710099959767856052956853358731574274491063770879415009878817224787876365114597820157433819490420381020914607692904739499069836886895924583688241751082205014106977599551567889093110706061342100622840110217434264165991776467855042878245289885863158279030629998891495198920173552023507283756020041776697913876459584764400498551139982569136047036964498839101790228920810828337937472412088170695811244048637858966796045449155686512315139021169258523560533472336956000622674704639301830080143537087818312742020147378936972246339177685526520526554851962273471477398191934977894293287448171585652535075479464729318675996004235934537878535287610576250675457105781489071334128797241019631639088884256834719200240111999605332808083255824587357066639945371397576497415615499959072648955279562594137815938011391032738908993434179040614774514413853621167078406520803392337773101548294732903117661836706170523746029007334492542579630740930174663497111116786568306995364787629030174694839223459246690928992850641369195950653580710760439674217268713308708770246882305455772659739676746472556467479794564506814041518892009439534928570148409521044578708202138936646612873194348196119348786057761817935757927345133524750678395821332216434846173186778079302723246358322192688819981715320463875706398644936220729387799533571849609258301770694912494637595042169818854484045065745965112222405134407267897379505604110431240656937569410562906385541554998954601206449936954015142265493220604239354489119020189558582151755438607668609462994105485385324286565243770415164494577962683619381225519396146999699191944653854523676417872841110680366408433699064662362693376550485469654291484058922979270529833186623448778700604769623768728300798047939461249538289043782238965098439216990641583542620347060703670301176108821788964672394098003547081272819393496703796194036159465268164612055153661124366269256771080258884369440902138097811142151617205247175980181597170362382202996541308648640083659107517982257975789998780133075822577943682699653716923193725153223351928681442661461079260520276960086138089136489960244742791686378137538212782156508056618235252259812342170225847445905273021349567416815540258621469969157845778009795904927250913747543288173832377062539471597680604153749910299749426071458247665287601299383312478775044158762085298539883911807740455706840203651728520931959771839518156774069139411570575100357977167654084253917824430594801491113786593833630511175686509594380609399922333429243683262324862101045777363784893693901315543763962029621265599486704903930410725148158575540221971440350594908654108501102720269952314078285167586803185685405654783050611062873294397697381732277151157613504001538088836257665012999427744569807150728719481872986172555328621009341878043575731547120693606129482104348315744784124478222877439200364246617062132693162123967890357945505854925714342470042673215564822519666851197460197499372450831019404434055043496265821389968219092796443191738401295662184235462217161068434507699804421863155015678446330053828821766667719575910347438426564839032410564726147664362774790219246046039518362573906302637067273247811539071665497759303080887487380342177607041239904969710500292455077691945560274400276221943582948155183552565763309802620378966445160086928129850331162327073745947519414112900800582469837083870775110737020231030587537893191625430187770602304220573326001237297361697965138671357531758762133990532471942551694975404939712704925077050178557775653774401419088199711552315576115018105117820742209230485463357574125558514813276154488816670467965318633626662553909133575222407361037275468048481329096076113893193705511765317225958130494276434754886317471112308419527803445965461212146113280082568222210502539070875513338790748525414117126458025998225366698611591019792971659628557340799080481851295147502946343501676741582480553875016987929589872206520091524908867377356591996393657864240852286607864963417643509331327717874558063932945878962036941061041101893865797975862390065042382937921107443700447452637297733914565361491243289439063483892151112426335747280552847899209552438231195899374771997309006433908362549193475851851802360718927401057859593986181616485944823089891237394937684713032629068132074290902739356691951879134316225876675627121377779822257974349277579743547001135097928569598633849869954316802066727043288637030497801359483172670910928678933646733375383978602626663114043415203763226870139454279306878364005830625790549672143554628696669290135680317138109237471171833176928908309157878341500446129291724935832587054844999302407167239436058647512175383822242259015293159349937527030034340856795246397483162453472898806398109696872958186369523260819982836021089610816229679567239350774852168527402368447025698640308355017224022312496374114983311439069326569043432130373947843291832935843504980468049459870798027575500804151793249413047366941893431563398897411621438128155125709909763735495762213604113475740509828866495273953496151096944606717475981510528062719164334650412161606765539344136723138882439550059804335527546911636928810091808040551198154773469097568836934020098450574173163046666425033243506129664483414589765693350950866304364531070620681219024738040808489461995683611072365805979956846814226740809698921246178337828466579125314005842062239259707076797385632720734110880603450981482176817437983063020056234949871654285020773095798692049400530677049103645961668862855875794401347998836284311127616066674499921381100925963906131392575997819714429041943995845925510570612533837138724757039797097861565239671920377109527636186629483613776260664092838544836132476872239708381020745840523856031127223831932724352451223016065303787618216670687525561355001521928060072115063524435812184585526924257379468032663766453427556122966761582957835158633336936133943682104248784163837625382959729869456707374042311012070073178003489820206677446251558214323396945391887400513893214715183792931810195412796844213993761538688244321021773844742968935923034394121299120081840676909019822832071098305329818683298476966846356893323884236118915305911045889140586810373361220547192008964999936622903615235485306301755424072615452222836566586306463626705993158796997472139918559223755807369298064062589066630928255803051493024190954203226203001476324138738799841322893296943078087971358347624368560214151428474941339654560763325381211207241350851171226156723290124446203689809120380937697353523260761548810350307358316160311531355775738929710635377409246380795091910889137055521148164311513976875277207124148939318947844685145773269912795436190698374643914673273990650983863896541603880093808787819976021000899539230101920038685243885776628280924378898174537200978122256224496663761417768274919490265196087676681410328706409911702439153402651774378039469692231194183507678809757420948952395446302710574980383297362729932599165335454562226067208639842307808635866638589538111931356990260648275279803636341713399048166332856508771921482542408368181773347501747733627432391125620156585763759237783258536818811872477758434848318129989781229190131304728813286160352862469496130540250503106317249866396786621115789782122466937118853410286922777648426946125755652096289365626636646277857197851900689420709233058649325428287756215985204647549712084542006895766167661265567361510129494830039007922923293362919426187710995203964354558492092966360561815336039799639493362806104699241784367608100678085087485459471020638402398984889813025334883710411048232683442645114699922959384735839780975593416132835947277252196836738767035960120763788691623884530801711551379929138661120925130429203686835425543116496938736722926772631227295578639873918035569107924699820969969179452557829184574738257449621584452097257898668772447424852312408623985146963988462715471136390542553554876802870253533519850162234318451521332415313032756737164680439402291909148927766947242493403489997226642525479814808418218917078565734873407209808977472154758976848496981632955473740687080096939706980851766165123484507442593101958123641056181134337029793249390990903091719403386264038079628420670736273688598793669633316010594749074270272215702315684436575309553106710487057611216288973387740189901079104323521884229398584273919139293640426506352295368009599727035740089623063203112675945587227200980044920935465726273348289119367837616620706222665215556055558495167313963865005190764826931191628339935070164439971202455747271266711642507025372313821254244315949903002751387588817310854959770344249876502599969113450888820229359529394800386880282671033423638257979451921587486892747387273622219202295117827830776470507171142519138738256243574508516178235797000571562434539289517167014242793344932107386178302246995820184536314751743765852801679906845178428997979262794889021136767827743259404787161359111158708419256066669206940791407406078022522039046514878368331878077337800673706611856048983539805032362416679302710276025667321987891747758220622895732058409619607058840671599293228923140698044404765303131372182699686814711962647553893334499051268995035718759405049899746654423706655242971375934453496324442839701703838385485452823678026950199324184238450116277044128022569243099032992596277078161086016370519517314602685453240901010570387546612260659721467557565121640207093660440590912753466130573610540369782556420907372721884408626343293306149723621446516610245081955611836928388582550013440128562742171609792619697631735661474482541843063073799339022001067685906513536806213534014333377696406942711225909016596439071199283226738331077791655979913456321047497595623933744191658570672427498102291754673092859081362842475224672263536371031834381009399853143455017908946781741869051889131713127041732895118153602868039148579581275434495190385338573590748828490765328231112034493214312838776777872229387774630900428991684172153894900290040624921132640260194809124501512827381685044072905645185315120928562721835015944614998487662778577041794141843032878716711502747691401769750008990548094773220127425075371732004034007934950553771277026659036609994865971317152023073880239864327880733980881940112882795759453575729705860824307838619232510350035506277526532018122960508460118876592086800957050603523199078498492196538573740752759574199977342353907645390101665358300320562294649755341213867516935258701428045183784152921257016172463669604577543201199093556169532757830547212142829965583393641921597805600348292055050964724856798291901126504102789374866233691155596898715072630421862939365191999257084756596958860407815957708965643439412343257824323605904327323599599296520856291646237513136610334610351600740806377725765013520942748717455872364853553889864213284170452066711895883814145562848653490639184516910779432735003035744866816843981281391376952579902380931210630443602833886903916682915257570288134025098359294689474867800560274431685690442197803831257363091704136573183195252861344180458073360576574031392934891347960907299046436067489268899804940627060895481806622539160158822986378617437415763672711627784979898332213302446443701223824398148695723566002810484220494239286203535987821569386133048191101220289084882024831108139377364142849479641224860552134783741090118859836180530011566046025695369342840997864832252286267203378091288134876244999734800788706588036872161009260031382130671363712897884070154025098874747352133586426694910065749551712739126785252575070959692311857615943613996267942477069560454639930898362682319984863675432025273610996727625515190352943119188736674415011476200416593633497091036728483172908051032600530346181640971956537363367564929259428843618384183379379237198690125188599331040439331511485480988876668676569100150821758210142543078709108497075695616917084612473044671158144915405862969711424275192002482121690471262756566156680889371346952778283574884741686084251662748955619100973711471395694934816413938296740856166853151037709894889774492909015246987511420020248843951969204576838037249335630797710722021759633094923958084967308902292047067734658461383318339868426447647642151164480126824933959042456422013642208890252265224122003871276895706995686608397826408170869879692977056767968962629969304831977559529570462323470081807183302909788642993281989993073151176804137390767574204683245988641213722561487257915629823326215774736002926287053622186288607419606786317444890596549818774243606457577365548628746993082073674022646225146007498557583174230920596833026922062128988193041072161398903991000496875586183386375794919777506966840191803321108180092822328370517229010719886803228628855994580831887741158151706245583969764432861001326809008064290283932248272824405530001003705530783859621005083275967098498820321495560378846922990277519102859409223881223288852836940628646922963843595471730800718093604044757500019334675161112472118239628094753700007289356430946582133038138854569730283864295747119733306060914372112120583044529442456034601337160698806520638829844893588396473722279666069478042910159554666236630605630791657303611119903535005550160241573619600426886849710138530201580094614460061249120631715674709771616334669379099988514471529214798438933513236704798238722570094803005265486248214468981036618725569903048838366847287983625773456094982633074899884524623417257503373802202427047541484981029400028216003816571039264451745549948529740662829467845023354322197175915325584587018807868251046481949140030134249879252903540331709376155037970788725306465653313038632988795940046659167497715018597379877957827362846319854883359385209587490960878544978152580658448866145405538801382979465363753963676837778886189297590985155396053658090666304717940663995369166212368324978338280415955163434618344973661802868051571091704717793363453611368695397489301795950356734718819472342237049970546819773095137105015598808530443537709392601764753557170987345145747293773871022003640090431265309984973034038914339243310984286819940559505904993630379351998920814324803790043889911622130076218871906043139698833568444966018606081476089831651271774307532859852037861948120235600139137799303368866091244703176115531861546436843951323987119802182876973477523927082995792925470638608173925511777768059638565025506775530266338635202751661197305574588004234740463309730627330359333559190433599163091288930958313567685298198945954170049858323838854911772791078198319483688533097222913630884041882836508540407586693456757723188544992892538579443139627502396958641649475319121504944900377096970738019557726783214428514475124064108528281310958719049572507099409775107637855273771523559784769176767028316762453387463322365531662257085139025340754956108607378427620541206050493852230242766324444810796886433673385628237442055766135958357258699537693848545214375415445378420672783055817308918429114986602550768824580262046661769445042984412220866706011736188888251593313524859744714042746189886240593928125421562435891844777175848220000156686306748260595347913695730671012178991387877692122500823205446320187947290531457813452714862544947409116914870135947259365427240435420405973805964944373423416541481189711248744536926747695242633816800640808592672422983520268689067126675539239107412868858748338179831942387000910500472090842203185676313313440965551512872181105206756266271342923137032908517622751339160697766214901777042551931511098848634626798088237491135004056305323505477056964600957830761102907942727604774434308685259560716614768183085712286589508952998072254466950666935189591056077678140239546642928461797039454076371337706936097094040183484327882296609816541840105585530410774200888395895113706771848162978529334055747461259566334355966541276336959160085178401067763442330434168898294367681432765318745328650042832656635114333883598829789024508278138896520759128432584003123934726905996468479433320879038779779306705664024008436576302606182533781564106528589294327569553144031211218173087725712000636699129607935171217621645693794664143863984220704943055393580802917555927366274286568919420351136146494801765894129707455472794423590607085449713931008444821281744407209865745577526736263915209996108290071771784008517790462897923617712312162617198973103696833373544871721470222850929879634444889002409602938325072844150563539872986663145969163404412684024958984011340540226564555075877628572047209243407508141637137637389167673759224250068254342548725659871607465707549806812840850571436812519993653116012549632112368772821607400370678450094837194997538799124448761248699953015532208154475341181841687640424703634100137259142265468187782280522261013515569946526455963075695978588460078961741763159318190206708093211724914115828477148203993400699283472763006739072303540878032675971100562673451247651742871958708974843590893813420370586332318047482895845965917738219895982755180604463179352061571891555685831269977626728464001538755691218628567410643656464073767644880014795848665292378457973786224243038738435888575462227937332498179973852548488994942548657600005199230149424615276941941413698372435911252561817941278990649292339718518683959188958215164247391204344673730016597943802413568060921347968553210706912152583832507708074369412219243299612259051159729064758658766986969799650066830430542048550581791645502373454119849415208695737404961741943504713378274237328056541688211989562013866559496297159417527785246033312505912172762174678955826809986602205523205157505589994409214617492448311175380382067599556831460252743620556398752624368254082437641606883491390960530703385888985213063146954595534683796531536445653275900282736837990276577418116069735937913984265085312851679336043236789513528126207600174760797424130901945968557028181958314708999724945347113225095795858872243573058672821638922154909646531410022432510075079440890561763570327927412393511450483793197798063586805552251243197581892826331915131957454028361607709852477211773742434467858448255040111181958353842567170118182467593403703577401368058274899741463889955740505045915166525167646314383163239202764315386639815308226141245766513563849454624759058216698968361865136345839185227693186555581798627357640503383318880863737456984127563446326719766973007479021683992282247980318933702796490406987940470327693092569571856353858968519210930980582980440115166916873892617146394481354369280717774335271487299936487586177980038807089635805094987621780819651499807409209682914764574478405278047145235837124295847073939436749934244879895689344291007949807116237739343477632704017481656596363770330526060723337741613493743533269488319162566957283419108338636952816739954820053070447885321801294946496293148977932771336851215053559032802356527716133395812094007148146937445082649790773428666578553601022034194766479492032214074464107090437332705972000342177837240756333413486202675900317273991684302425184805076508452062161611527260525578078602466371978801215205265649994311884719044409121778979454087621712982022776568792322131083847534990868945234300391657833957946164185760957684077624367859816167485791410454381558190371683053791784969635253362574131352061053408491799544420787120346706761743755264534460270075922965410298929581773223535886871391170101464518387053404210302361681432759317550640071651625803084708861367171227856246040222971646234431233910241083931391625219660655919456389313227656656000368132069903312504719731746775664021042113295054845956410936548825134137421195018631875604350069064854080881444693998219394097770719641865051964414472219925263496467564403438127677600585992291182030927131515389396829315761351726384701300275070978729841130503977321561747719359705285435590863588347118096504029522025055820017746949751569802285006857468144978495110789306806552064300883057155611412516837126756902637094158537404530302738528599305743334083857747093450871253797922568915279088983992861890363741261711405399088666653490388524009080118130233770365988273744742354382108143398073513469865130572848746920132131605984274946446920379657885115710002561137838328648261762203553590913825722960521282794017089036786403293482464832073544472053332275054825811382773400848156234776870060716568021960598556395592345117365240567279717178333878878599178446011037312060938274975937239933488439559119395786967839716346031622646923231100791128471975952938259811275882692813193262255264901867692394857507062750372637056618700881757144723860220560421930160854490398499604934340881898488078390326968584650062567437251044786858115970170908861074202192271746897673996208776013969013919558080646916315805774625014535435300194671051276509452726273376512515241631472023898053988159633597414185849956456512261598776890499682785374178976330854097147815400557709554024263504807118050777009596811217069472900157065775872002908453441984903691885209843591541265617159552177470327559072687872160034508106949575714841931913365516630705809586218042660872905130740499678603447734870057279469774088076719712271009614766678323968992203592764332212675035478170322839962554098158721569879187508691079536907206541746919561151709419525612119173457024888513758277313441599502887378429801557721820698399508373789251404612244644582694086365633245178966074152233586370837576005866422614431349403697181960087929492215586115710225572794512682580277645060486931554067520627874475848731083554647216354121755274631720409346952349068835908054796686560152452855861239747957845133268054819212255516589869472717478363410501148758045635348660860346783335629042810792098561092711408499249804410752701255019536379260574560450008475804188635562425630511126633984517332931878864392183329616415131181756250338921817628085577006181357274213490772113800099648958842585229468044006955621251787920906751108176513422681103757846008104687913204823548640003270224046236273721186797485129766245371043196842204375230829445416434365925377724118576086661809712417452093121686415689774651797964849620828084233031366906999992267876579711618888356307667468422449352219174953572352596042794436737774441060482552450371762750887374632427258000379180295423625949875581862551697990059590580327151902703555471571129633966163727769704929797233736488642136709828649371372773166881056475409040964349676371430817398900002703897890946265316627509795680590954318974362726744970967717824628513976926227711691641078612959186083757733693468465505086870756090849017406460573634930347417786221693455357600920677011565485297469270235609887992581560698896834641651274962499068566520796755846063204668257246294450269779273328886848148808495013447002198054021859431456373928954705352055772950683341825953473721695883710725098850406433280743593336037346550282538454664874908183949947469558698952276562808752784860985423638591005168599349274467216058568339574720349727497148136140747901570733836744174918239224311159064817638090081362901374743898765483200867356979390586807793361021479127269046287740719400148467509005457644514746803126588234920080529960965977449218103393426355582565764375047096238832870650249254867155642335137235087754991629873862470937000240272051562432194001550354979148680334243467782734826415674182655140654861894735115922625215053129019826758570076679450781899229130074992080425282375813592878232467565589547805559294847187339181474537250193892630425166652033539810528110525426690740187411470659665073833460101688359199922461878788483630256888953606036788235373380758903760148559058137237733590329459958686967279089984121315645462762905805032725768494969974053310385234602119793654477283257016246467749910539792071844991039229494334715643563397580334544971728984665775880802262345028938918625532233567996910594905389139268596638726067332893686798305592234034721031614196245042064724961801863783097779205651449644227779123208917067064054418809036771323550701600971295357628626079338519725765221693347243549104207901529625255823054816890620312603085152338074608406608769765193061696654312362288258834433069345462008574687638611445291340781959449181538386812049623379187397131507706326200785056246574787764486213890734059169596907281322058484939523795409078886135261233259444146661053888287535918937244905122760485960078938815545353410307628706703163244878996099053873512064476251861763054510342583673357400911702714014599660278269314418174492355868515827979427539234424099501042699293468687699172730776766595854624760080171793883603242522659858275408659198095941762043655007450606800270158586001410393852329779157041710520102585646243618013031398537194598778808059150669040346541747006021010677995078988656135626084056744246424489767651780864505951220610973092384891694228346774496759296344118302667354913206080082263107803664929648436083140959902955338671043367247080175705745432727485117825498678331364101931896477588477315517011347230561582288228847203330828584296883173916448647703443794172521280308096357257849752205819340274800464446912776309217886269303235552454107151754645267401163508481437324178411508297041267841879731136600784259398371549922273888386386429903358268182159229170339114642448476040468511449415533252136698816038690432702307806095573701649447321133431625808124328691063136818932310015719284267148018417427170916146538930684040772315789111569376874955646626766883683903445958027431987358515294318403173008290224100462302112333579409930159325243733256769326043012213367642956985870200972484301650156994633638641110920810804765608315401520955236196135951372096583657209326084309103223462884491525797973094001659362606553183213031864042364623895553098615550386367426052731953241696174775234102581766276919209453076342790858739849937340094660660288976620402720372823835278319475025605175984133886042167481034572983646654619008163085231450692273978665201628831922207291015934162323277516560011024051162677791972152059866024293072637780816199111576538414750583971020295490601910978525488362748414884777496917574688324847752789938770314219195714467126303217648630967462969955373739673845900446765529551216741922844487358037517578106278770015089521571683636519470790713216559803440365679976594622718604418824947397120193981863735699049399605589464798732261697383346403096168824015026036467388870606250845669168066590067720887137434966289930283533991468254795483200161072818223080085731609008822023655694158579061950462385109833819187400015918307995865158058473159188545971717657837866617729414012631174503711180903627771863699707461728233737929065951814509960266327209220925538911705481993418404475888221106852489132994890130758014880917763874189474676400581853774452131556791767383364997970286225501690611552532095417304996786733695553716060118804339343098672615533871257509656143403163393188132868090776017583893528615329583273412848203807774996366775475157904481619904182167020646700931147258363315976823809817697978909258796998082482282786821898942586511481176754544706610606657643685925052532388123847824344248916597411952278837508474162905972245274041323431291303787938558458729445753932079979693495570809406542341599215661293631368627494491796519681588215302960720049316589351697236981740438038036761849663210524531384326871801140053188598103936209584803925601448231741661492506643088803384440799925156119846459335418825316002954514942119863225366807281518167193713602281324551425866496159138621194602917967160652877261561890627896641092373043483509256568526922788888979500685442936712651460526936062439805331047356468334622773907737092219507378346912312655602383163485808571687506424307761769863213397889206850111463691878910331500694516663499794821086147630567766500331173620983294126388131119290474424433519484952025910456093880542791956417855623852668140643735583599328222452878743854380907576864338368316812065389779561750289039131010063402049936277418521101244265492706841032471122724890633173791814355319898729304061423266259947847771452518566842417666108744028052945598045508081473541768576207711074335845080218874989507452073681248677143868140993086364520413322027541552103575775166485380779788037529597692638215579159140803733785764554988460549277981708940873847181687159769434933156463739544081815695699894168861493975020157647581033274009863481758074586101456127587415640151151956634304379300172581923369519722334111885015050386178832624833237429606989822357367431888678891710214528573548364234525775537207528448496866859478686411326535381657740824762537618390122816179632982907127844764660442633089875735070796918985348392609897030404653758544545179435821400927690463349453119364758856663795598617050300774483174396043483863672811520570332031514594671273681196243106948533412832767167996520525640626378871373089481123513420555678604829961323218765831297168597536582379498218204152105223616968788107747231120789974351013349588418503755342010682463961217290869905264705495372708571902556752168551573538345024348292808435604219660263010994753760749931403778582688170242835154254885036408875602529481314941289074773502752623672156668501265520631800973137224710751234680212199282000298043087197047472361832702768229085575449522309303182161316828136694514287624733406227323060118809150270994062551138219652121371704370721815494613755647071162027084104215696899803513704590922351828743601721644194772884023375736712648625424465295320227543091669412488936315663172344263401030945071427739822695337325453019015011316192310348767635464041492983142265699039823444474008215009533383093848700108409085920761399306751697806274185515499234220641902603869227242921568575739423206755034420246720436769126902342869683519239285913370051744160732228217073653481042123030251825109231370401187583001646768542593830837400447155885842762913272182865037255680626951648776329631684473533340354544616657004876592145346871560317550471765931160672567140598234795493882722763128201918454366097147916661662573847925917324588434802303922016856213221215502722610662197827262625101645171332885194405450840506596579685243712821079184512742736119900607501067629037173154095765794843924471936191790770735886977387374309912863924259413928304085545554470542740384980917950783201618060219295838536322353664156992415687793817157036621935000075968460564384350260028085508218649432067788565653908154353368608402146033914373801634553448317645699424570763999010164260815614722315688230343766989324973286080721629720345322750280448541610382837023781169115924058247136109706411412455647287081349330556714030080993496063249227441715748689153578328491581011306007785885530124078260373977483417031882479944448745870839648696795153114216836341095967142360302240180876208035691235887908928451450213295949151817320879886193636511848423844381444142047043722153995278939501349213548915732369088495408222322945304573085123050849825238779006877907787776266291472232246284386851396929545949915591672088291826881868466411539637738175174049651416433421496128269274790816592692851382784785326328591632649350152215356330981667852103508800340576762755773017935341750207975737742556151884293176763451223109242688478846515355523127547429221685144792498079844053708284251475644885185878774808922216492539857421967368457438238573114385416492090859259252678418128875166853450249480948309775788929121102220125579567592039661538979768027562167736216825945462090998986304914198786529425408692412405053014231994313644232954791029197370035852720168188594985777493561407038490821768435205257197841201157602303132919398228848540540820291347873087934846334883643993691134219479882782537046843453274404705437448017698580911623599518453669451310971577799142680484866329288474774454045154588723577111713628071677121861198650385493193279064597494609043066543942377621991523193434433405166260378949136813048184961570177230627585660237780954907657253530984446044179860114569549519600069222776990756357748538821882039874288218679702966005782674451069434609691870815321386997233351575032531816971104031941505787581939652434852636002639991905562609827037912225809441872017579636360718936273844935757372849565316343923039579987390614944034912156550100831852101893001279864841895499391208071398795205003351541471296437160171265427889690241228074790550562968485220868422188309355932493041243662667141253721275609809545159411748403153985691099694336355720128023388974521771927440888802946321147747481347091937426498997964153890843789233822633378954046646544808022098416777720163081493490044141375892196362490564569179484349584648569499009678843414944986373806415935071371805477756728570162939086887685781159085161589116093739001856819176224920657392624632497750546362430570953946513845748014049966338852809058397609833853025705938199395485369547135044423535830143953719215524495245801685938585618986646823405994152049074801302299430925894320091619228698828142526818890271512762966630359519053361527758994009116999932262129901128161311028171880082360448411294906628659504378926267663317686971993813014352959912598539451202774148163445339086342683788812480706705485674055034536644193775955993113344082911263004158227656277781056131942243192849337526421923780342068666067888086193046152547014474844706256940022736838004988498481925158465159696320146704466695160581735158983672574107127952881152698865632361988194525498403766134818804566022094859017285714506579283250294871329114874494833925231321170312499033663798596160799467349979576220173356147373650668082654039808487307324156801971757660250773645594789143191854340808193592912498654207365807110517560741334335577862116374713661038874787523214521299320307603177586432399808871404138979979239324423438346410178538105110007082574758605245147865580592833584789986897881122233991558822761050810236246723191500380120051378943387125407403085459263411284846882285984227754762869512923568008145247619077988708473220522720709660063108861307002043935794334835021974303235390132132601956413567958404448995735515260556354015093700763422931017671857818911762201387630411556207076217417319516241884221152908277129852101498155519749298716050005048189078926093903561535403527573614926609273274207973723701624950988634500831590040024479103482660282200888625027545549011618263347239909085255578771136694699886947788796336673474958260470139813781974651937336725685471081059309378156917189361869575421993140634488703013809882927374421782102481411624120977682488599236263712775964277255604752554738174001112837872914808026439086161840271531878973885730901012434154997328027652486141850498902742557871428965675403533734486924304656330116991562425330026495341759456751585321310107447670120148419916419092954001970686616724476565967197327869832791104771585549569429978471287471003134704300675861723978627377839201885087770762136957823855316144023681359250639526986470438492232201259960571784509417103938526212944849611314614363293767209272950614938007017656472444434724306536972530422660312574395738399924494351345577658296922046193645095686251966401633369409939318225342899282003348361498293641228255365865766264022106435778441231980122206932008790758665988962932239013112032975114324398562792548997472048900764143233871642545668986874870650183427013535712947047822694040567595540468612353612513633972383681740126002989983111933055789548793926847901420170572565462529368589763618384869549451700037314205643270128071850990093200586898790345932933882161663162724222404125573194560412127518069003515380024545845650292937559563743009532792078997873453047487881069749427739525826915441090802729137597765481345631366219151150392674930857503232355613298090589868367759753926322225139789310596072083361782964727053852667639684612582814098641108860257834433608956463455750359654574886777287834613075040515360727859693210089163363987397248111797660623843249672939267532527956837053477177978141606933612738964539854972561024486781914618712893321346020244174869217808958317155718722728544929462965007052870596266106086975111479103836891809388985101259995798255707106474480289241714379359504481351255934759927820089778206929487487644779705489864067028240529219780337597762369926812991720396920598414281208920339978588397216049745123370480382322567881121432430737435968270834487693406265612361749832101310433395593163424044167794427785572786265595516200920568337639091186477963170679987845702775624884526305340303463337173757001987066576980368928281079865720738313697546096848356396714625290160036798014720758816787905187971085897223293336955753921964369224128427221818900981205746909087509106927066244770444274545115110275805303668882884659828768805852416629093696003745001523602984525637175441718030012784771944256886152050938702250655105231072271916246357645566996219369143205806796030642263773923649841311706241480379724680590643320480492396289803680260920998638100107346610483555118293699306946314387029884903277392628287972966235473703225254891633328513499679897513965763469158917295339633839787724542038776901154477683506793969784102702985873311243023660254749249869515187093612958395136024839650973676504703652546636206118119421099677952120880075441503512110822455952408601723315817858621685921592437094850990004988230869309429061973508787349600618252326658553373395139151781304102052470493401692924436590556330292299194530444347428400595400297214319293910037957142039910748017300995737560881197392139293393225206889102864915849497704411765461372599507575713612947964177959839225962426575230932623032475890042263547875131688959073025259554796465063661754259049533366261856549228010242325348142125040943170538575958802673434605718174965996314994997274974443284226912637774640080800683370536520272148344369815410942697988961923797780599190856426244004319519394882790200863764195128954896542034646632758991662220238950679258088785451177596175245271032661773202449573667704646763397901721217792316233868017450531778429469777972329880712214472821702468989744085973756998101250552484923988358493913247965080111130425817016579616236669667276873613904217801038800591462508909713951305781476395578936664999395003101147851853872722687566604048035214920322311708233987418625355058012515593685968546273973390109513453769357822352823077746874762802869151663242733172588273159174811102735605499924550484757626462582525643391960261191373918960270428772474313883663457377420826902228706866959836998574295384886796601004258950016367905623554749130766730683279005648353254757900103332429757707532895074933711815336083280353621987680468139944654879922546351495340699043283042373832236211815167770051714529387355078244004839211020989064470068257530451059375381271760165763323859278171070667255438909897611064831489626726169552416425869335931556397442351042156829364075950059678094471448135556499646962532340912840309806848202456590765801737676816139634898986991819499860594473813171199417840604918035834752945649452537227152129045250973623947269538372841276823156672717442845644897197784122438259869716801031116256674807323373248387430419746995102018918877369645582886450534867439454820187477111409559265586098268288449224645033554618308008028749265046804543739569541015474941587886851279021728420424392351442934427927257519962017474036582780974071210150263571203003083233288798406013321974625220917116259904054443930191165378380835199081562485798295925114486187767743700406028789000419342808438438415065471985879188303788534608364055041798752486723969499260194421629823457702006691786622614539240917175267878524083571319568048356273550378606023339223154055227269646380240435568286185908032512365414801671046833212048567500733265651161376762584571410413345514778914630967461383182736311678259167155451057688569976200333476589197583751171030325555347170138164526198118019057077489880277121594946706984199533588657978777111989679124078478607211792830169019818145971316724089713780907252110960337349619930126755438721553207307821510227373006714804000430316249393887158881005575991064394891382140972368311366399426002731254676442550139404279189230259300084288569196470552224545880336536634855982124202232169164699050407500923684826826769793922912204802021293598565166089684802751589735214268528237622221446509234990357475012859192363723975755643898794334590690757812327986115007296163203916145715667195745993678130283594047218732134918107113613193384803662963631043685140024126660427919112225143347791223031101595567663570630992601356174092240201912235430749486669368680215406718360188426615765421117846579463797452156581453013837311706085863068525710569296701069399146876424622685971844389949546667003730075973221432038216431096786934379889858477421016769960855833680280288020871313843292432138414817376457495965532775205089513847699712040110724170686114777004209331391083444699955026670951255243798030791330349071404626080268672342720109572419098796341104869996606642998735573128963480855503371558888152193358654556651144590598880169027574927054561976878453031469980208200045111377791953030966016223611921329522006220440014176569384147032733105248613692705608604181361164556080925598413063240009347434361125317884689520429402069083720806021523875678842184022791669711594065699721932536377155887041962984330241533640293450294369153797590853092363115204898298669214685280964102720001443379844518072626728883457034504430992608678982049596558448828158096570470808389459651629356262216949618689976827596852956950668461822686524616453145772461047701853569216469176205078186133184605956439809177618712932975001907827276884136511294091404153744970114042269462242667018385229159672230849187359963528907192391724051907582288918363003147616575542607714854488634125858431698537961500612660185263099800071742591138150242319022353006212857701740812200477646184523152674158539495631384973139606361642234207005232954477627668744660950495155666259323350139039306240455289762100448032419845107228288991930555133209786411909239821675081538471148235050129080515297828348529431973897859307657174445703336443794156947507863621097558114891299746693681946418914405555283068459771833749306985247843760533031958747713418484097409835882570273634849569994457077200276522321065665347235759428923573189512599364917037522514901611580605065894588000532748516337006956456565664823578525154609723736543303538794343578658764507926940787826998126285283046123782211340112802685725085856273783665684754659307897028072252413740958379897971788915528716225087809667740788495232810072827441149279841511333240675584559170220695180343298726184596864731412717795354858509652802040798275299544427096997865441771197023665213951360270977555042458556342602746715852226931939733551022295534768887837025031013987252023998045429556755183973556463580527321863942124363968640719849358955488145667555510641178185719398092633906434848826257676942522338242190650973039384328828448845519654328826797618757613765154634182239966854659218629448099984800278378739152732196537961129793142168043508758248640045349824880671683924122775929909100041513097889213399110606389570151561291873257853152427342175571659549164153669940964154136743446808502023489731063104004856618156996825308444268580613419449931747487867614104745287689434777553398649656213571907038427116040783305862459348616940476433466276671697609792483143101729451098289749033970391800759622093238054287866963223162707169020124355507642129789339217386968246663342527037443442364580329884884987440665473804951763853180638450176365085849873840975686817843882612046698232137970766229403957616367331930340981381206196915297416107192780171364116150071651673221387785860724265552837500047364225345722422816180682333013479975379296987456768636489177684440759269452674673528249254870122696754706176111446908168366601237624166296209204537927347532371742817053309947689704255690347463133859411519499829576438531515514159529380761329315828109484739143477081361806732964515349844763989640616086010411507683166308370278011321436593151735188935562942734726908122945999421598231779093869589142065279876037881576361865545053376614090739871399924503204445708986185768909344184312603129195172608016802578734505402658711691182110125152781654072763472925732708840085655749251820570777963837255567794505996309800379203377562587053337692507021968827691700259375510240660184895316693413474465092889955237499429437997187988007833936222952484436021465114820797363910173373137476803484716178020391303712399051987033050167875214926375313667610211860059963893650734026908158188096857423319152970849193149301011806879474835554871887258814804913053922477254453775761418148590175228878670303564354306686658867315942349696795291172194357760308116462791285348721858545603726802301542231670481935277766625500366982291426766577243690837485683859985625124388844146194108093712759274834879163015237547292173037976937739993529238747774234799896490328374528772981882842150371922254685709755643843945004831453294413277408335600694925749025163222317237442990060585409528524899534203603664418558957242541573138513090430629227252307460066942476925503942390403630401729315521174745254910799174774561005645169505443349732330639136369108559071756569375508641436020997304644449697120536212564052564158173175724812789453862741582922169940806180781849277126804795880007464953808025844386941084657964249621644558783408178079645949754047782942269316832587320563299441024663389014075422723171242072074856082841677492357254765396822681228465544900300430092208610953814371645894190746558225416165839027897405699641335625527613548000050978239328605195534675482769668396656878431284214948413115212221509382599569444522228083249433890922170115128682458589434151119155289100040209731209830044065709272615022239566830649043408637378532875483775816260048492197298753035064766573827083606311016904745362777737129447857238407568318039873228718220770006770897498013411772364169816275935133274313016080630240182004514719600005759540001765489118293730098081344483549739772804564725574229886122598693947952903466274644191456203120732865644526596515134079929229611220832207820782186126951164111431921504816617350490414046509926273179239022491763699295633086296670228093020691770462692294613568623154187345729508137419114966440139472526572529041956679442436655922025140217016623490371404556918795380318420273620669590156288071744175117176118237422118233072091745161263016314477597045197643789916491517950251119511881613370728866709472983555240376974426857602612473510502535487204343447595703697109083726079338209964767918128539150923630254896368965595035313097052161291534758679103486694281766713288349205182894663878298201110916216943025831459987340705170500286971509798337054851889716725986149222709646922143656165077660061646444252696147463579309825285386407318711709203649451741074299884567855783016564494030861401051127084376692466607808338681073037639360747199245302019804725502590255196932300250055783016073776641232280343281054683003388893132767378313859405472169053958556763900265059447051623340134040949932779558461611357978214614603728426827254167682301844230052998523245468485040938622018647168804953291066143348941643963189791349511779357888715398305240507419596198073342106990086139194970902502407463347883300631941957703063373807279120589150998694404605650537867410505006690591004166095532578881419773374814363518071513509101812134931724246313093649763112054173400847000564647088798417354750197871101158339936348850640142067711430159653986683435842281654698505389202130427423112311612503972358436101234809315203368964493203144080684818887236033482104773220640499796747525561965803020322081182721797306318066589097113556984422121463100627860846470035344114115827804911954826645436773145069568644626976035368704215070394057043596122852656816438543695306600218895599618312474175841128464066517703378861844855552637950107202930591876331677962167380992504759350393118183437854621353833684989727864374845623603289673618428643097465609976283200067979651797456991217888474668918224947942874596183743820670856576294714307270301548166273907229697569178730026461745695592805089283916149820018281520244596095314559617875867750646959090019939854558089218452100815008317481065120197381810901197294101770484374403701983864333311013942128052860311023549110169929662349919299414227673299425557412282385541805193520999884709678827199244285486174427575635577978583559587121546382298124652544995012224369361977087717732362435377134989176723904498770678586107792051173238802533648948117219322036752115137488678717450618140433141206524328549168728849110888624014301546466442422957920670120836815390899661669984344808697193348982897323787017909421296966214738906178387257513962531231437778368702181047049547823833946637452024715851665056737920069430234792391098408974800695972517636289903185369508022084053892223647626471076320995766473362041094859557394709502751862361180692336039990769874255918659703765017638878595683888638746686382903835063988184265161791428429446820093647074915787894644832470832437171022062453347841036848780024451741183747722482593099983021791437311907342278291212684685800788511548006751594365689226165277630559793793843137344536523876366643456388372650910998839486387044045339031750769889595707344673077668948868178590495648193932368054298982815747946328189633219759621045512801444802566983892349930097283890685817320554975258111363835967601509509623383780500102223150298945116050671753933303824066845627397835324566360758640397089289369911497931608799701328091830005378215556882680841849870292487578802981346227883181300427882694920012770990659251612465261546033938721591473845014909609491364817944836334415917778843457426038125231948145516690636326073061172339760540036002626651140925801025810436983092728891915583805636332480719406463797372278436076289646004686554602265764471745592519266308151852077585419250648587397049727600181808009092825517402429815758791604800262850318302668638907847952088011568327449424734265557326480615475063442228771106642662219516307517601219171413557614908736507830220657184620224809965682616474956550228731333537353407593385068678973620813746226841386564042588770072496791391646742889768469454446884261811752193252791305877807311456790160312570782998118948621953873160333590253601955237604355190889834053968172463366545005486716223300828212726489764156791314374389452819905783932334503570044859621025040955918040620386188456870059431903115254797894313218566831791574283929009286897770244791297820151471337127426266793204169743111266935125769678460096918702242738179587741433168094763483939149630218661862297329588284759952991693740872959026963243219818837557490479149220442896041891211364380239678082024002781410829419473867074501362502039070755755519013053372221709277129122777034551838078935414822021552370009829550411266547512793159229064444581024259396794516391181621995750022931911915287810628640737294255601360987107543418908935424466827830117140833035770013681701698805449586982295646955065775664194071717883594170364344221099098845185813269284985736407394149786717289075483921935561726539172312884435345635344402567879079990473144908141677386112341785131048660289805527587245003753695951411022219488106840452804222589076572503597933539079283957197626441082796557256792116549420336623115164552833670072553377903312255636204626503488031131936569168286490582335917489107414671183228777776421244996086029818059632087725404205264375944997727233569310826127415110881426069479615060044857707850431838674636114867611567109469325899489340367426391695057646397938971070674601796842773057704478946856659845942919494951765831310087008273150889507033847024512398365177473522031173123044156804305440918535292772908179230090683445559727955963740856464401306700614271064702100182405411591244573409675468096273478717676738732502458776036626050688469968622079616574375263307763201159635941546266134563480501775479657451989329827576700519595420546432776857914057982044258264446251315401851126849882805239583852784832256841400528689943863758457238430963387487396801483779738269393435117011807325372105909742836034888759351476537705873668708857676577571538071267737071608372762637060348917938089177626348823159040698010813108060762163097528815385828209350578533985460925288711597344838681214282395709614622764422382822698911018059183840484394344483945451605927004615904665576498732291053530828180457416181608955179063047339094745728743822893348794611441929211992709036584369255361984292666505012061056406206858466975725153693647682165975996522003070061482181566963354748243447954945292240403578788757671699866601715754371096773030666507040167032455179300056338464164061999052566507301174014941323316987945209200044653866366142479753529596620276586091068712599502376101583795296696591118805867777131164269128405994139401652281298267788015402256603726850635796955745560631591566633088220247215233145838925531149411381979487496733297431201649687525258687261304813229072274782175637112265457674580364448156725057696023194587073029381372222004195640523659656614563786072282449258757756729469790134275080656561113326225668928740374049181633275179050913701223616180472843559124294003570414896863251239322932157636802783675646491109571098712710748252105281951748578438262178030462800507576253538638666863841901774106136333745504501151929564095666831054958418113675434195906972079732068684327368962053938460868107170368342885379504496179127745371857028526892660746492536236562688129944869414163084630468438664048153413985644087854672122398699843893628021625843765719543994944731865272977094700860529135595492219279933800678311132904141740615200032495336271051819432110664459131508138750739994329767497502450897819738085588871325909907775527715659422516988806958942931316328437632728682837917631086978791003944160173435070775238254669885081300510188027345000454992269724176311402804312994871538507401950994484694476676747010667781533266826178141156610791083089239339538121459365898093344611734116715715481878542987644133440420437230282252458439545045282992823113676857848999305717781088865058300853211406831511497961439804673443568516930261524469495228271779308103244647294413920400663157262623965016524615809988774059576644783979501736813767684593900569341315183468408034472664869660075642925964713882364643038014896236971280077803271564515066295411176962405741630871349488909752518602925877620567825659438172793367510903818727235176113943911304184597708229357220170129664214400596763519427817802003877327385781793146453145558114291787956554183172275368524495770722837912086668615917051746732931501352716356771801580728462976368279449148702912042669344665700551578999900627321793521078730368982183891654419991944995951506218672304530131811639386590204112496035941890769030717687250506958843915989542042523110570120610101388109463260948071654757857263639702559022357336294462192830299207809547815126939430415675057718883529051245687473702681438146826638863193919490376392339335257324162439831287394517329558390107974589601499927866917662919630259812234415306159888367303064110881331329638778539777246369172557074664063091381716196666616431918037302193254376548592673752452103504002706153217171246722482538661869544380017864264003554163942297659811953708942829294588640449234649570437668182382365425510413682818392952615762449910629359965371089346010076115413502978061675446895249236811170589576697218318754277479932786085556689421377778320832548821771862810658942298785265510437765625329112775935044597666169618686979936721401259116177257580909869877245344951518988204053323506993297323256162304170358285412020341027532520092349386203107128535549046887895039159801962890954608516729423058030354916680823666059646738313170496205012512725612199737779854401905330628402788156254282826058687749811268327282956848720489537937140784763063778951277440575830507453137280715342221263485314586887576253760669202694181588355688731929477118383859454743488884290039872459110149449841586004697284609599108240257723670833782213201750646947547030972594505270615462760304375571617662984681497147365697268966481711519072054377172711243091174020951889452980715542490174396261083816936979185663270619865814961515388288161781158261850479477708803633577574175695016718680030426691189389432881339379903999147768841421720455624043830634415355132971290837883223596954069800527673995438096877147516662003465933264100087633260974677724276234595092515808546639455598827361828993439409169191449894996497746516981175054585556773218208115013894140336140506001993832415814063481396230891695180500066246127450260914318624829078507755609212292402569111465268708936080981907286945345531001068528336118152999040797736668354724323469792386166540665022924838831450804460786967555926950670063117890880417091025432843039090745716550130573134855118019466988325472672549002991157719121798476050086415325827157930646468068532685692591243547199708073442319898301613282004009516524063722672320309871708052759559938998733858841459861642993390244212051318555765052662098646938778285299416378865090632646036957292794852209371669793294440796096402197447949632562255639561309048205971941396033813545033957008382122444277102151287735854367743299459001618726868459627969521769563216856500010415190637412696992496204968301316322454410623411259788914551172572214351984971717595158243111196577905999231725654336046927288170693828634634323760141138920826988759506531983152099248159557258762689865498045149901072424560634664758937610821369032830294505226225513597357311444035710296462159381862005060529492964331678738171945315029930920897012798130706505877988642397744032898106450525956649097679767816261902850128413490988139064259816192839579381505754353234285324221842497336635516000696859331450523296720797269491621350420487271117916448189297027161954651933080141662582166664570624959581126155557947252389172274995073140362179804719278984244123379909698010962180044653377783213077108427280682033338803424367293058787461878955903923274634607604005190441733825749801136838216039848212929864855368345910227140883132253810825547867338435273439602433010056709351193501505904078054924625096591461513637156588829680045771897579965964486590141028940840669015237416125478899159992465729425936643119246911340057878207172528424058808885185933983394535952272375948396035628297908470837823276350910036327855724277843942093156387943211259615333436020400111191977485427170360441013426103464163533512433527657669962543681914447297602195309190718989175173495879426652041295857611784239031089837512593616736818447805429716079894253621416102525522154940750033152541970153304359190715114380634647806782219414247299036787400593854726442273286297776071966091095311440784741123419008523234259192981522618250907811316718843808617042043813209218227400109972236549848055725213517889220736968001958837507814587994439679267755727177614238326467929713080205309721382526296870520087875398877939058498681093922223043366584858323381731189512710158650651617962427935599693104893098944629379530678897569427849891337486149084072487151940758183908966361116090150713102474394528570877946366636615326286790945507773070968937667933359868236672533133542606333737032985809103335292003263035710419242913184642184572226800065383895172039748893951401734525759739746376940950065778208243576549199560985802032362109145772632447820222366995375903316577200191576185483777017070112059243259681244831873011545802741256185287795531246701475343732554306452866534611144191671736146539342013263005446876789856797558947764268073710193955598669608165752363998932149434853876216352320912942664668931650537637618482136398342895680255412243099474271741035660613820884574994874864400900596913929999399002956404516284183279402462241667185721220035607514869894599672531546723932642010368623286265915683399475260313432485773263124489573818284880902225573997431776595916447448359475079972748800656998407781360724695744900873531064680966510716838874660868530700052313235445953772351428843869568743650235732901429559882606438078797095819005523053147900350769522019470569908090598790815945955573765960652249369063744020957521056899009702932668473624279146512199295217628538544506137694665317481203839827403007642487013681194649424134088418918749681630623466565377107605395171141852799402555581093730247251650458457946238570595965490869584341769495998944391279221664904177457439636479908878987248843803443725512972132368805302465146099250790443804543016602344863705276394475702195851590339590704888781057063893707766872817160933680325208356264807172391710162279509086796791804084653185614147926971662910937387549435970251420909195753600783316491089073971892176450794514539500861978499400736551146440967020610439692073190834811312602177318833656674732766008992019341860941382206456462338568608312805167005841962268017789191582288437327361509914434418577205052741611497498051377030010835555864925065358164562164338400170044611016252779168988781371102124780263800227275529404835491018939561067696110731274376628228905349624327259502517980687772025559854242632041486468854071344053459193844131956299510595889980931609060049884169611816730084241866796516572414691878961297266315097449511426824911095188320453451004508608646581720212591420762489949904417539205221194408707083035143027608471083451658513672565549387239664689248447751077127351748937822260602620275925824246922571598781366935675094408067173460808193330527166326928582843427765165729502173849401836364658811845942735586219453399031833991888752995563073056708734779238073326539261114662244990927637857667007607167478803358645850738525533793646035190578317302402390696000254338041794705248712388176262723534618372173259470128126890401215044327158874195205909995949745031751888273009456484093295874593858928628567982191470093648769349901986331694540980694176802363546969544292916874899457021747631264692177937007540234932521382409110746015727847952959425002697355454436811281819573076027444141460514620107981015048296579575067177939446921104137294643385731344210091035274763454955033192377812827266356513285258326703648684832161856632879632850537693300250934700062844059570453514173723609640783978210144529993067122230618350923332638449545771893084378543886354179739432695956459589846251233371402896951952753883450299089773680174240051038842619941939258370128737887139781342434639768639052071780392910598334316697348206574121965278665106579349506192270776642958699760359194660902642608498063404194727442591232696033012028693552005107422348143598459420851537046949771646309677925592427574847538270073984308473125714266801641208672943536760526541944977330497878264333137847562451924792579408920148791922105063036777302620773161376477506618032063559355021805595219103764099731110363417097799282045083587161643331896223194519028903996244682834327274361287263425445509530853580180331165207661615547698762892132412971309532883181712887275233668238013687871270121574226901844772587799927239355268958182893480490711731284800643653490076101588023901503987299530046842700601476519199972068877828339833213535939608041577621780074996753920939298792413927599131907305005170498493051967420630768340854059831570707822013378213314218762113503402165691336855909507331857811277516781481908329252104199083275635448135493940850758182803239745082890167289584533714960749665163774071630468636094106660035696508449900398083179966609221750786324733446439009065656437403072356604786404799828713525843459049357523173501065727541374040359465543157582802367117727889324951970849084776250901496682507228716134990280831282533518351259206117707437016747835845006191976639037872007163477288727604357428614975548962247520304751896313099818507087459440848128574441272931855891567039957905886232615410108490255001905032933164805684183873249939238651570742290147687051937968182806302198461011186249441541852026685068067901429295620063201657103464061049228728853630853931767933456956914714995181769788526935100248819649527303083192364734431778047177404232092345258685897499055761751538748204320117404862735256722203136363896243966703974138352348324366454939741719983739138490327895448627935687031179503253573894861659522032679463173643336381313711958522166702677397740632099877166711843295152681475739225519013721862625703045397582737213031300511400524220338438513357247334261578054441509389456063497690740725995572075745614183423754019300015687793137364820717893822511254964550873164606994661160686851196142561215827095581524931332017222491987686955640809717220095842918387237760664636172428138051577800770705452510310029355185077867530606223778094877982049967024084414108923608978476570524749150442515836844208545680261310026680207429570418160144393195209077785387471845556833971790826449807859148315250855962202612234002743245731847456775744731338173684302511029701458454646464024562770770477189314476258656340747218031942383526247182624273715930303222769468448972401355766241805763409806931652886447184663377223850787438946114687544590868644352108752674281145056303807062564212482442262610578879371542221266353276421996934391018476136639122671317175716201768485425431203655441477379020041889450262360263742737524030207001931111410840606737707486739475300791967285504769332228241893347884240069295824719410145612722929124230337982852152775320168417170266699668564325291327426573548861814985709584395693695145926062687628439238348019582003021827327281461237059714505524160310802110366328542752155229368224124962291040269633204358015172769792429752039889740253155796964750245809909091159440332393132168369401992994790910619445717140899531042842317352164627495386994520334266303936748844085020265208264340130318089309347790119358492222036334171736501632875025565574457833605338563827632021020445163979023368860547955693707568008605046283465159859101348762936230858307312376832294160779013800902047600591424075775926768512936044222265265794551100486124984560772928290836910396611116590069692779558437264228274784258140666361039936070319338019243465074975543806746519723945994288379761773163649626271957102909588244994189139752259812011185401320501418913269177957004180202764323940407740893032192214712388196372016099710924504986411054196257544536258830242465648011249583301466665706725010936470481672027314159835246352289309596088925579092923277347402430298277838051667827128721065956726264367800234412555029222887944432878933022606571065008923437145933530435190313691083690147343070557016849651567988096338896456283306085480192238948806254777432981928751866053370457697849281799690533222569527934430867521461775769375411743311257313676874023598188880579916674972256439952737726408167312605185504970810601235503570036136206981826483892667747927619305267550757509997741628893108288229641384862093643675744531543239283578143500203233469645267962767000243831153983546834380971568969778746744369117580896649862087580545399150285053910434987710713236522194658584958830415625968191721093660994488245895579507145903128178258239691082045325635540635756822598115401344916002468771155761340671016732191891219314317105207863896011149212241671164022445346477027649089108711810135204664550165837292844682834494549011171920162607176248025302555949028780454263358799311032391871691665220387870651887515237102328872095982379595150728224611712758764262237093971363015531677935138838731058081694318052646127098007895302277973178993522782044475057576294240238808686698387279105572590593128175554805719095213780672736803243337193333608231135631508579739455500443158531108402507118935508772626010187872182972744607991094275942581803484146974818720352438388511873322432846653130167772632219826927316532791574187871974382007792394462502001474810672434274687104962134005721124033074845928026840508166765976091952100081675786282660173177683043517662104019854656124240975877835389385551305227255765443613830092493168166956775794593362911871802061064939626611331410043655727178688166327759647341159410782404631120797803267922827089160770629407632624558711838582491486302112281891547343380496219251968050344980942269661875462235080603461689532270656006114288645179701765107948958056576062295020567795976643468494382495290464410608388064965975894783917327300382327066093862336621883179855530415120232439668122053040142735452983491147049411670545373153133302255214803201163513873247015440388158405841317524288823371808712156457469958537507158948219380438750955484883727074577739529937351649107713764605361937610847268728406321026059160957780435726227661613432723495330879901672773317080829916424669189675348266417318639466227411832834173676345939878324667668704526860655496110245198274578558863427987758308164627712040020569518411285500392773852589372763619565068661013939031142471744472180968072953631181349362597102870143732309383303644601512739592030447741459734439979363246086027658873327520208602907499153802535632677224766317421967524028410394839609619623535751999330437793793675168996759061491107275469408477556382517049563194932174516169594843329488516576600481040837069220838904312350042850485322336256836719124029438168633243519342605052437157807328500552125749474481268740100819648713298072159138454656326442078470087451664793019712549739683707200350587317350764875290085446007938813399975869785002827028901104941345858411067449650403813111931576921407952307991442651511883461322743028220141826189202015528086081590349063244082903676021523881492406950542432086392209154127856222584767243325091268499977265286321276939481548991586561207025955945379064157281450194192397124934339116620963927617426198583174975266060704618229919659101256896691489090188185229210247189266632216323734122521926927137947527888451760910044473145147610998712126891131462610546648556506676029946883332627219645788054682360026774039182062865072003505130398471548116850410108994527496493939497353739113302271328127685237695308719444305612302732199691305934499699989625117923895406707615346037669615495528116032047247713858932614065954555598240068575865096476354221999141485653209530125876730375077339311167912715454196478928914894024740169912569999465556981007020864278307475998412539291565815805701111014343184318334662606402841356071829016526959353749893086125753680086255665729164602351501701872480636534039605395315069467266727469277940199448475475976133288483147312461811853794321919759121046588786851920708608017785513939896286310326165896224569598119859770688816272319452602389045302406410443601639100263419486885192547114081928480778252278145075949358543878884768042896092675809106150876785586091267867826610331837725307943806710566481055585749620670253793627297363073208306520885640696365154342413697644185699555486776399004860814851964121660832470944360327423290210482969592634290150880360912802421128080444010598647346667356709977933718564370087154434676215491265199854915318426627833585483845525535094173618052278674621950358621114232902678598863831372627566084794189311497738060977130547805099077579389013201602462442674650192720971607977268260904961928752726461376624671166780250711077574832492056423791136224947509154217871809594600452725673307940208622173157312370243578795614345463150675408670395943621978157579408072985484870781890823261410941723376602246211177922862246608248567158384103201518126809505147208423369849913308993899563259068028840911777187623937014110396979964086790455257844557596897291773014482555869479684301904174144871650835349240828013345971318896042626097311561577107790009321903618704093260346662146304768350775785380861346798338993790479430890559486829141349857987173280325116455450132830626292727223242254437839652400947953631200707559873288208975588551275610578965446213021697603053142296261445145325472652654950598439023068720991670495161689382739235133774546559175318236556380324431121455067002064284597814363705633120287264214475491301158739071251136892284968576900878557094160065538828240447270000949353272718005645542106922536579717564936868637105965472964962308890979797622351169687511446363996455886262496723996304621125512606559865633246337865053893403682052026696943576436601840230045008739411218341472582358973004827900843478352650552497138268005719093882664458323124501135800453475294265693960547296145251104921208316292530190254295773621175590695538378446022879130785325883036517108373312977017637719652673836486673419082458904534542172443927401234068401927444820890494144795031392168269339429717263400552798791445913646472843295209224189229657607988141782355872206092462943596227014617385950039269520781569500813944311047935716395605602358699076076145784691906538645970611445187619136482992449073752846670167319608518886243370447631311926073400074454444538625606509711675233032805138298258725921287360387591987546267745574535418713504377539947197769171576718971461245938311757535910367071508527401204079781651405695506487230751403680004473933682711853843486059171570620949279111915199295568138661917460672718259260962047696621740850792319372906187685969076861753076888093334004917580297731439742153100229390502008423378299461060667762439907607927705599285747414711498189738114840622381103673532209433378844624413151158786712291542208618130814508715300289294507358737860596184972543778252857461161502708514913570677580763630326996146458242964324285890764734056588514762521549837255030174768838243759896374045232842526517153694554852901836760454383183966878176585141173309179015238245362693161194094250867656389934870809065180695545000082977670260338476015600429574589035546859011240185264762770266661995987071265743477176836649815977425803412085983769388318015037298025021456820808747286948594767475608953607103548112847017963669190658426024032180772410798866010165375849481589102225844767671198735836657139610436173427957129555074007750799241176941272688508027005419730609988985779148792611275055164374962766264287692169138159839727784269263597451424898060819615224200536316092661917391725509353105881487774771287618454354936095586120212292040745343219274356287645170232540362734867686975710764025923889200617164068607090628130844103564098190720297322903255101038016312757647043453170663679344096479383362119095341817706682789866020262960010102793308113685515248746780907187237001514542706379388314805444420162848635698666416227582920124199906079118443373135215811048285509975040962566545336267214423081491563153832973127520060008014185434289075522787920160899295063165686928952395012409310415011045786626409418037690772335900499778034628535328766185009292185945079805502458304735618516791893494628820662988570887415513462515320325173856494073230078677770808008205751789444117195839940301017996001457144197234923021663309730883065246642131694379264176897609979288092081683080605188690088120099670557684983769921922140896554442592654126350687492542294514079880937786658041057804864413362005430375186567811814206123720637462065122450432348969740724046860897228019479705191968498083332435878618773126130701732442004606142763353245624068279273119975194211709559851159331521995439194136439143734634844391827661506179023033808394094257140340540839463693499303911170989987973199669221873006829446299929102081034694012562424936675391748879778393195624413264670947246719975076679938780928896818681476607882286034142361425849049026504123320386001338696235845454133777473181641371214947505428265787339673617444862453190844079254500345647088151670875074764114941452437456547817098688100430702135231994416872059892080458091005153548152402796595894738107313159149575903615930617678895086779263513204003294067771036421317784533085360738672623078701809326083050947004005678475732234269639922739869861910264216342089766491074551291444628586193662915512247314230446701729422834309516523701601873911642614508301949534874569925624174508991023459472714345295272078378612802913595412533148423428376738680544305507698317902588562691494863135468058641970849496868959866229646642666877722467174365014052225353399173353706174410474866253330304060511320358256753878959694670863595012465848746650203769712836506915713388883781511324274403117963163526236504474333430453964497482161397492568049234591430655409739419753376192656886091638545314141561938871304532161995901648191357719780156054465656373385518353597065615954118870998162511742729168197041583592536632201176355858079470909645906033729029881393197711730929969335207616234689398381295270152202730921544142368221717327617207707245884514318497334299363723568217144466229469234260945940188744734668150744075720789999343489352331785182731712771595961066128793651842538947793635711187530635656936997205082631949390419884481910843617659167033582835811333011320016692704462374859452696093642009282433596844465247939169128689036559879463390293426996823473302520867395172533041861363266141828354258628067788446893082075683422338549901150354260467797595828554114034345402147000107559607960271610197975882438210522813360700757179702153402286223136390129017938396541201855841192135609268024295429432618260259387297203451742547223886913078648093620214807507011839231521966561638909308558824529350477767078217996465268785137343350576498958919724344309219351017560425104997755253434021796893042865058085962162520174232800706846708230896240658177358470366163668449902945456839276709386540005308544870458523603018483494782225518839336283003216280614466481416723751593556006570931620262510600163313068559981260373687923562514058369735208978270258166131924365052693968307100805326681207569609606901485146004227051442090298812039167884699004348821154739875856800847373335125642348803850977068185295136502991296279404818096250256087441301359493688655185049447557944994184944016014405544601942528537794659534446000919879535898838845583843193562550026844189267749383100762852138273397740930443359099685318810612112456776215045968031643723321700804907693115015373929375563419852241344876306121046900743550931955187668208943833436652492743590316362838495947476052478900017773514132731530798767364125049129497000920198027345150310761777503564764832373134559405091823848708953987893552459649581483786779500611789428909193454560742863299755833469623486499507636591692924022943540425623405619051727615285434466249569864943616786196360445346520247085803321482919161160311401279363878486954715304453957159320002016531911803743771278723683671000355784609062638575431577591499996539084007810626037337775933937696070691637619790346753181324778126761352635222866483439613009531818820702315617229658505346603131126280643037430816518510469804906421816560486606985204221865925173900012864598914369082024835297599135437134771374950677370054807589742801330594805022000889083397553975986766129118963856262070076394477884828578810642983517010530642225033047360683565693554193481724993666835511297069484127477096905375763893421188637815308656503512851447057392929028041403746848739842498636703001353583640814749921701213304819793922672678527774494536451194819556901209663213221419583814714940243840504289365149226432146205841357392673842528639258589199398461167357568115959710645123062931545380077280834227227061459829140921255364015871078705358573073503644730691714699769317419558030419175768857564798550210237241138769452711118427307623388034831495960574573038326481732646787831876700341205609254553023691081945798355746956394063994176006059284488636938688058963977901903833285376541588506619751651494401371605451750202730494648077890324421679284299942766843707325398860399093021593462038794037350080990611300359938630077995696854890806423648005764865561788121308906301768109129723112217281150050364290573640818378184947306508614323816478609352286587881741149795116146022004322511436577438556581112745530143617436802688778737219052015893277463295349713219822237656103991317950738733450348020250895411882026115421085678388239419935654821059611632565722363217014931739333162185581234673846461993897792422672653687360207103513934021509294918830927883256042142433518750089825525881581871259046083331187074450735399671228517606690629614020765636519901814323529631534638534781677868558519660867820669551873517229823751481809679742940496646116596635137830867634973416467507635858262886712864738206305976171347909104827231717021801887895639059153039253965125994315107168586695024671357090190769374515607582360156944960534084514020668304017526313913665343256644395935237179524596398023177629032214303931807431172094858089636314986945037165127357321865377095209854002925039826298090743172109200311597153099671230520222311282281812538707739676349737659875243605681953895934490408868515787564131122400993429882373896480735371307649124619689551790858990508876539870318046552383617728371853162479072270029694343400756809509773501913613792999450330367773901156956153496559118316799460120078908271271478891816050476699149455277034980318649520521331339515812601025722052302342709132170724466702769180330065752284855161147570011743293664344930135498909049801140305355885845600299098419373618480603556007543618794299558226549638529553326701562874558612390821419945871879040222963010101049445547578395416046744636296538835365936825484850890163476870525082375709290362661340390577454274325388606658891118307350287424951099614381206340851035294144256644426334334766355727121718911349050711225488047823658432667901110450009203476382913898381613141323658333449645674269275606764786113755471208924867411414712038913662026849209582059999194611490727492407599374070627803313668241840955257057158011426093598426227813533352386521505343270428533465349150133124798709407056655575413377295362934044066732203589729216077616187875899547211801349286748713297953543045086400820518294524897518244083591472630119585852527947377111480220618653731342181829735888581590631744632115773119499258755191229214472649986710015349040657621711507098845001321099609398699340963342707909559560574626544533571134954075682234259846734783349033073308729397488043868990652923566806855178149185297538861651762412802529896058034314622143937628753204547318588869899729641631313722070784368995312621926236006045582728920407373132235400154784593035031473236508748338418487072292685390225324926246115239167984140610497808865554481933874912412914047099651488680970234669565977047218615332617263882618792562629092418548969809739224231312831273801166811035196762620532571996520564809257251461341525845586253074249862520027718547194496525906347156374118587013854168312572388702802653077403424445002117043955273810316294604232718167639208292084486651605295368833015139048792381360490348736181454315897854783883603731293939970710807842532408845985239345095599119752002935079118102153813892532934403893580215443800151663430958781525459623424303965073543217180502121881100085257247355109542482733974438934023503811099547404702102244632463990489230030960732128514937878676106820919621487383080905265875601300059748606501231191509608696140015681217812550316107833765994364379482678177840490172390901462736414499053755893455610050843330029988747753206939298098712587319293465252246425589363301242515376385456399916720893576727699299467459464653722061587182262193966158509051142638553881146739259585016538288937420092836609597624397349009673115859604717889921953549879119359327960051188086074942994388880682139259769346391833458807934159614826156469567709209051234223426510116054762889915373980408449339423761110266895027013798668844409463947462255017032932036187975020040617614065876935570450774997918695665264508611323499689815963311493721663764108992357646917449791116829912536317433043145276795692044130799755101730894420771087193715191442082884965761736901065332389097379752493880639312069863196193644357769879671333706348693952320162042001025708593335028164730595414465160377129531871843325810965184331942296459509556774354502141436604809216813970226534931619333079290378486536679232888906684949061159297468955687994901624170813450486734990333365550267136681044626738259686738316724917637071038619066918592252879169930711821856196021615193362678017387860089589372055445536667609317507943078025571066898488880807348496714562342634204011712685205801505168845904463825303423018850235085601483746981661425000352746291988316541208980322813936695982142493637325030861825242099564920866499163839953905470953647255999225022611892069978417885017022613544563616815257638246343412400164705737974306770661157253321086274420268481315554492833296878006570106186954181024415251544289473169107147188921101162247879408990259470158022766968931506506508439470823327233146400399639826962386290393507757538960550027884886272436876085922513037851316830223607906640687939134142715266751206945950506069286735029769707609547022720267917752595542713664018545435860236089589595410241914277252546890864969403666005426676724302686287393776222313666437039721674995591952221931600921519703479512457623761198990036494461176540377535379261595100488794101709655987283674903426267494941613258532468282082253215359644532896929824421073487853289009538037192105724444620646958317693702452971273925126330843685836400555103200412890947336102490272346661371447085929298733947126040839095834454302444445466996789330061034838538054517128813899255690122050650654021978612303557920846458639347891188692934910804932209955115877448817503141075339491927083073082078921852724443078182694285635881355514523300088347414259304337328181338529611320582487681085027536326484667071547141802342881102032880181735551078774726614488521314680629812766256468122644299190381839643004688451222998106486381826207750883781863996544868354002297378020370158681828717878397174951009831402393970238678847353379967805323266065072196315597596653993223864715708725188277582323072378931402834145136979321313323214154763174841922796249853631751506467355906307393865949967296768850931289089842217936774167035712172796888551234109523275334472927053970759321510236578218970883457753417332280674510638194392152246136412344598594114201060937890251868109899944086141357921412595227590764362641697221390119455267026713692255490720039983841154700531765381035906631606231493057307335724202160396031144302250044622759766354205453881395087664011321195102185317100793745168627071422106812847251461586927065997738309982068217577734506964141974966349780949795242798336440826671478489098436436253988847472232615988708297880567686584855104230777876765790899583102196010730547478826400684279726724624156424562731541402374822722709492114494484865793381520008930966655499652246867163304263735822743125102932456716833913441218790417505520198263994218001461285285727235754077361317575453440838567638305325443014233301046310551146148383456681284264271448594358623939481460432957647195807805772083846108028785758546496344944622748840237431676476460499032828975467443993110278939976271181939425437071536326399376353258483965073053041225998253951848848017214174664585660495313731391458377924278922976730176326537422757173455591738258697373198656505499283703509450471580857844254849902758513478593177296067700359226779900250258824636837222623737547396358896883063245648762250527402865369327303409407000986073079709421098879985678265246746787831494396643840744325740654585227877590810212662479102439584111941451871597426524822319282356882114461198699495129679381922610302173013852004658212296580452700040574073653693606766700332894972671005761534019421010150183508995188832095263482762276639759750398967996420892621924362498066560743865626935896369351529866764610513187063593832011676775032525109411166340627759870810561641624285711694536177498980049345165334581006821080407108611903803418065988543510889409581171961719262486603960788446020014341926154156655594412642635471486107130461181677451326898347157767083237506633688701048643021790369954214168930386623458416399631970794337239491267340271064023534046252429110566252227139405362186196958838959725411944255468096300551311564442359385490401739740744259401790631694020897104985801464214399895710771928424654409362268604872679632125497779471265920669181667539307813567699775851515817009949634178831408575269022547600090901240281748957328810292593817631768477582047928525875084760344031481566515333084531166323344758299130086496899650256286376918920696589555615458146959789924443274387033627155385454435224389936257024177979345343825567412183962866115093821794976915897502871336608399952365373634171854695843786630660374002719319094847843897946610683877437304858416262131522897833170703013762741502617590615114029022593059611518387455703572673865384026799764416551301456777508416963233730806026521374790938486004973639809640489157308705077454382383220386945236489294251156819456539883739160334244864053967982002040144047168640797911741743520211706639837935793583608683799750894131280634834393238065945235614753608913056901939580452490384542510152966204431550005087963022939142435629600692309462805934004050776860792920597298504203693820445384812729966954545509396568442891047265912423527319494324537047922065543868974269529552106759393735730558555753551682745069839946174812106521034520127606006295175980743908523975052037308706049122123950625908753504931198065885990266693631109322006593304047269040888830261075429272294801943864938544147793252080438964915028246612095723748444187646129942164576492223185469554603673616105127573950367497344271896647781819109632264694886452392054377771105999005836931616772206757040227185037573222894749917410745812922498952150311212908535245957629044568976751509256659649368434373718198517868634003750188486645063755298945523602597110392149495585852533654387248423554106156593425651468350205296744684864451832369655999892909439912399315869140894255560436246117659930991906953212525424126137522067159137722408282323879551991628654092723686694259919540007554123604062799645467911234426927631699919680082040020270721252000104294512009400138853370336363363494503713551171751949457675630232868900401832289381689328888691755512661683742178664667350678304913913921291517271857169979449034733649374248029772251683398761897857971747182194122032021881369527869334108987187220369787128328934105799226709946987043496718324378634493899740471737338887845525519625253662188056806193901281281576384701232687854002628491087982660858762694441268167135602234682262055001252743451597660921824716365370294750105156471988538736659688177651517783520495657202068552697927729871260003262039177583130107462594640020844671180862975133621311132255537443326316017816633619732619245813158879933795381376802097086269973844940748622669513085425770155958350584568102634465820563008119419135441493954944796439336763106981931855619577050672917597180297913832916505211701423455413318663291639650485093591624620343444828993015951545265560064143965635691366732118979600939325019821074159071805997517949538925318339815610508068449188734551797239715361044346698573009037860930502945298952222401077400810001282247304052006650788206638513854514029753933504661300846960315976374068800692320715863001137104585190479690621539204888220850590622094750824482681657089776755777690294744012223271808356726936726439407455090539084150771834607297652574385147969090744139813679355580145003967457850278182829617330983894611769947639441223784056020489833936636504456975069761249270497537107103876168708429086019096089019158486736149723425393173118773102009635719396771689948674373559097545772010789468525706370411995306701119227449210408481990383015625922624657409213672041330632495834425289736938682112574200602962877301981268392410065462976695636755811409523875462556352145810905245204129651444958998330129315965753172267950343245453887010695491098109179841757148713688419753226428398784975248227837814983784272331845651148988224037343463488833594004257649171738023954032817293441676685270214826873362550756104893807417373796659229056819719173621345381107062961330018097486163096245475673541816651819359680191071563169823412846190030069263805659163572093319324928410109463680735631820766515729612243061148905650874241839682154726105474826399350879766783957321836320024327054902092034816889112607289914267038780505241708754707555316934727007981281326423734502249106110522802892752484508019082103534357577205732409565022948168041728648515137444575812457626357569719065492673555912558811997112931108156969760267917001652149873479647741761483017582851900581798699318899320637206935949341668126337018942880267662408491166531784381771216773634884957939396482945144879072183770783464207712634949977116482521942812226901337892660863605890750045783529432084923052933330414576737645586743356646795733412037521287098368722565799794210869086224038127610749469103915407117064636191605057047122968966881826023591065198752631952715325207834585485471455922885325274963610975936088840875893032526163481665534368260846797258262408680851080631125463596547875588596263783285429263611385973081853849191885753417425631771450185174634624373891010971521909503044388928821950975395049606573854233644453809086382474480416543904977632255907907885758286815330223488527461218072674369783974503101300149080852016331414718281071459707591748834429365060083910283271753817472278745757205195016057296106841598696505704625518188936064212497906081498891860644334490050425939472932875548905085091055125142445347413737239750376314512783616215132211669546275738715118158254488681790365471134250148739103600444858657463159385489014221236872270131394015391944957379542373586786469309815107688849622206627417764960057508492164739317515827611891768016797918526396233536587857993963894587589740797063993995088112800235944339732510725209406853150380164400068692380275602447042010076274104882649589632692861770720169427000740743681462462960653368601579758691352162274086710067186677774350265334287134885435927458982423309738414659888107422752518285101295357814870252214914355218380887875722628699857375192309277452156428156133751559069856083752895618218596052615487344986679021196337227667032932594093023154330392074030819866620142937554847398932165265985529573740130320835631870812754352165515033008710580317468884866647646892867529427457005462930355639456749319789883708187517608249638694333840385168030817927602435328350978052089418121947470203557908788431782786288193697894802681673824460683131557572605657721636442416046783104316531637406745531193940316900392903870668752765775579726433247541063086623240713758014933842408539580343275735106949016907261915149477151100371581091352249714303045702799380328493733049241872023459880301067925138586617613396622869277584022117781672921735806794763980530505032922289211962641598660821989325911374465565954646012266926314428988139463410050063603211973480227650513468034562511258881552623683836779841197919187122649907652917927178170070283023066319884908959676278492870957007486712212415404966644689213341544785250638527792655280267639416873812661349160173891537080999666385867550593221563014760623485672218518902155796775736306445773079637562822009199791105697405141942643493591491638356003397920670005540556350327667422299489808295238573445208921967091752724369491085208563736067115753372986845513293340035789037317644118467908707431611844795351602375424844519068787001428117605969809686086822843777951104739432962406874176277486303227203980466145459492817034080934138892314251440795446920784417682621197612697412171227311503754817654207719496643506449403977863198637119310526197032783933219287597513731274621007843437002887462669538790111409806758994289871879711221221848810238988328673053109257835873095843755759201669974873543848847521087408063246914529372170310937061893855085466026063816089060906289727322370863402623314255138216239534223405240636127738172310855717414002831380322423604467168044852416827366224152418447553210455521734111218036630532965306176521287903328169556665463992005092629678413050420070286257570329481518931108841211491007386027400602640377391917031595286672706387090470794194868928330408102259874466634083564240886375131769402652812162868817158091515418789714722953866643736614096846029041774269863210339959763379892410999397459986175072976435690148529344237992840651260657797415932721554099853112909166814273676561308569132505407694468015377760749356596913682782161686556652656206374365552775594592444969228949035467961739155633798742574767991963969558816557414832699396383042211171326298434754719254223450533852297576221472427345835234202468563529731403974012978591097167478112637939862464237764709304012959830976275812077319882201475554273998873032343000157778792043920247419988718265114587327783443673082276808291336276221409129308486571133686780910272117906609407471689691757464326909535115016905076598888704492072010156068314500364627451535977936552545575235614902084632150549896508466718426065255243338351684620995042876116408293385784093242771604540490794390920060289019726892002526351733122793050041313045388244276477745371036046639918562270900852393415464666490995532067637115185924587235576471017878795536376125528670280573622399732541401476367273236701514835544128980285821707125525885928944528939285871593895976926559906437486692475228666261185315069261419863769509515845537108964555268061977478701211437202352593642018118382378240709255622323768106386737034820537575516145430569398459275869547148196656599510279263212181929021333328250479367793476160663102256329636259170392451838698666958306210768319230212466879115281400273500000753890684318328381241584455224598624666568157333779697132552952514893693632627197355516660288029281802557251962398429064728128026952608631329592951460813848682129647328478994188393633903087651972576388450919903706833725977681292093330344796017580894957562512321903520146857352076331760834403968910942284019315970511999426160728824536065596137911045013595122708202495897078769786312692596824440104028361576261145112565436917003024944586073498275024063861185895696158721211561892278246644200467854369757795443239524222929009147633109316234873707697635823810644159706301469096523604396186337329164691058326980819094527863643672107851914979628148360940803952360446558215672273742559558847331804751911834307640587606104878116357683320589073025291329738187646009614699073840719822794832620458448951953361341558414312780817933138577856738405367869594292457338036896457386211674859784139168531057568869109631036810804312182781567446790049726574982021638001321090352584274720846579252556947397186465892513780870267759001447785335544735268943345850212711543356154346694065661083108986213941468047529317550349027082141980320126530889296400657426694467511277842018892598057478647803817199738064836052043409726005771861803424426552687757373946102763275734668804775949281878325280889319807423496549430863566773873069676320779462681164225500755049771781825422426402169435411569114933795942027485130764577078351435252628038769060656406868287195404674682087212631084493859002875070003568108485982795982541099244513636755747565878193667101278974696743942140229496412761289107602731081432921114322235391370218901311300446698353837471070581547208330991963165711024918499829899489122854307838691915623063001430204282724386061748693967349780027963521238435510899532514081408829257855906274709575920878702780198420839079464817760257569037632314350016599343342957775942491117662770149746512740607442696924007398339512912158889780444938588978518519369258567338689194702000443534285521707445905270532859385900883998427881268362283242104890771577402831761840739422919907751807384417553709100834060509045878862691261360133381098029974602184244717662660403395570953893073336908948098488117491689255943887731795237726336996458008680426273497935545731296143284073610154459755209978254830801289528922773210270568275499098270884897647378128537067979637999645537866382766735437828706979908890003401473869861348548359590658818390032009359617340555451834108849130495215308208191934865557470776050858924784309036256728128800720289239378999852919680957215900431593597664092826939725756840010897740661983036172614989339692541389318732938022222606173510465849399235046263265474661898169371642013456259422916547438844560277042580311519246688700079179706637646862863241442869522855004955433122187972176507625689404608324778639888879288770200332650164455030097120299475965916807283241306497559407948644057575530225462037629835539390236678427248369756109206740377808015546480520879375429163232288128997093053420084541363477362674014123037418921479911355909790547437426571697883672405935616123225264758498741891441199593334782109264366421656042219305167158817333705790690918733969177907178461651989005927346657053922956461018479449977406344472660430617597048117406203920973949588630817544225733251966336967773551066315566563511396776886183758615312234645463745616650624089855077948732445251053529119370942437893906669741936710765782582710671140202988735822478432942835843020217395396875517705302622630635463231349165093036062815630135638664941296840672077131692704465996892925349374635116089371911583056967644924373165193795385929819578483471145507817622408053482685133320654413683416373456359669827973881991072126560183181586128099448923836302373453930271410051622644578757450667515150287566089836145260920486326193951444893462809764991810112070666336965305195179341372742800206226303230518700424651968421485245621118703711062163222585280249253628436934085200950608564780839298128066532256762133726798678063014404875504246571134897505315238303168968185065536448095889487943263302206891230543822234248684066426787102124762148836672679866013895619506463463307673176149267500330173091758402430618097857171958277445318146807654876088999818543650585753029155903132344044712627068622461354830874985358885278231809534107068186805413116404411641465323516250083620435081286171427302832711870746441750627763983962513737602930026265921301157754056142205207803356009620254192323978368301667486079478544599549744588626745890124405456311052509813626305322581711690373875161948635336356885565988249946981174388210922711682824049591986075905222561848563702846262413523561786021499349590866059898206353243804227901923601730912125834455956144969100589179144260515620187439211637633893369088127609679305282864413850146934085123657996201804722746824918790813394994017318226453157343228335426602302665583916240480450727200683000749285807803889470789400878055211675726590654573661189214952688851826083747469095500524935439217382951731966630750131446297676214519351340441822911972458545142463513704098819971084266469169849965629418637466267093513853148328988595689905603957154935297119518377373897322602394004010200077426502762672501936941478583185749540345888454647092587188825705884485286415633038768836220474931100789877426393483190488334967972667712480781720359826826807585930867524079373059482138500543756164240397579137532364309575389493317041619481122985049795350833762945462984471544993206678629822549631750331818297256370703853354411821537557577272156217776499168600804281724788500461827482911166130350976454965884852896368853076784891009283686522019014204828979041387513335040426181383155118096661900857725757122559459144819698436073439501987534382156512750741755803240429906553463458986773744044815377459017950638270504293436101806382794107850279100739493511437769526713542350338563273571033834854209599698741990265721594921860576153011122524027151181182745119391796959703629813793737579938707526307707910458205767675456136565106864953025656326566624672823463067443599709232537630757886896199736759344147835466331502422209497093516421815193619018123661443894531630151649886269315059977875121271355633173551214578744495113255892161270480948864037626236303316874521675411770162084644470024473503077401988941043910813710829108778564897382547305069559189376845561783527810488831414010340066144553923322748576700175682016721263995040010042140907807253906743543962769280976433276756319695918844571130199613672100786038624897162625277482230757984300192120586548633728293427909877943832838514508706022149033657613770393279448905756563356728945588589001108906257668515881369718802053724372018190138581584309910815975614108882066367638119785643946869098797163234999629695439567774000873458980745845525979791723691839675909973876159383879254865231767224725672126789979407784064360835683278774721864060540800618501637037466950807828493833366434780095137904123951953092529853561239466763261128362540290434055587373070170798969694118034731915086175218477124423140090390121084978912765052485762597769828308841828010043971530885473793912717353388492761468008767060018793231804573907613237502729539310826763652404135844623354948612869761804066371207937913238646187512502325127445190540385737716040357944882678406399378259441071929458009777663093293635339304020755998017209793825503916501170459633642283501445706678087907590163177123660027299899342885396980212094406824760253329684124370059275010001981904899377517208744065969214885853144757284483861351679503960260081872214491151423090993556228765247470194753532593047805537718102706446284980797910880674659682189758145339852555947242945591570638102846817254201408551620083085632743274193648003874700773813859977890013582105861742709596156417503218174204616275549998465378597011110357832129227924943559479613862101745343878295723134563786102721105808548736935795748736863293299812839256279257714366855568781269269954490507487291785334718935549003011731293138210355183581099070933808134075654159808546624825820751393865973316143546807505381457445698772413955264774941378362242997631228968623717961095641143215706375921960474290306005341095334111626162374718184326126563972479708530539363508827144755952960015138698113757725414776700396453417734931666143563077492592632015177289073472166110331992428979949125779225409179931988152520961413138016060910043495463465403811479559858619770847872806034792471812830856305213339325475387628180597147639192152843267166918098105795930617325338890860342779250979626597761929700859759780740977825479924899360377824114563721337900299863593451943788314160909658371917749450560558693430313451791908660226624429318562009594345312816790718582675494458143911426014385799526742518178360726962488221679527008034945699492221124277151663377045665022193868560192561979440451234479427819329912679826377596062864906151873034116498529369245112267223878738178526268893312273235450647704661025322805493715437204724288469942959810963386771623210839868608169701139402096918422858728311517008328529071512963282892022973001117662466804946105069411918129785105031519726953568079399875208750088488831036679105731722280473507561561730834945441634109381601369162897946155063109522362863143357135742455658722283744986670474656439996682721214787150789738296845443266869577950210984934009265469589803633349332065548179627202612458018000636685578938531086898326530145282669613261807000676096976432685998783902914390294366627440822128417290826278939986941833727252172101557849402934009645027044538699202921431891553593750342795083220171050096691918214456323049388263916776774976000722042508276684246835791875268928706954519702511103454987276594236419933336518712062428042372118490591583394783889293691786158733690382440411204744165275304587251142365377618754320987409635369165315911721900617198218972241119496567012134891426013939925671917357210231602082842607628417903187189552014946970794314653288880691758732118327740496656519171858697487593368208105419280884835638037220809452656587234262587303380822334818549916956472248302234617572238814072105436245836855801454140473649126962146626123418405591573064203931313553496747143326909652648472796298032432094047672030102083020155418208170088322684728292931235400872498527508946008593139885868706387624052910546621762397355745161847599756846153271065558670453590657252698996895952284459863579931224377476894411179376782634360695730352664065646822443724974158155071360536704833136767114729588741517231456598258199819421551394036755012841632471351393494418286667314127028941846979336379034173481669362425647887991818857811864165459517563456118669621571929477412283274212907289424828764439885200190913204712692299523924208631559091446109573558819471146238825161433279088574177409973406487989414459285008238248278939416754436573405290212598234421589170066622905453727539727123261457907551122587001240266317780030815843517544444920558142590184398822768772489834374576203076991976154764603093357901271931722998579561914426432870195057139961976129064339213676264443460277336836778499208140758039845910747147595332313906463806020460099308887214381943162940557739810315554678815707435572648550914576739716989466067159795069789911551099929299761193280776953092469543170819782876984064784488687299904836428054545056986273105091750241489296381450995626559220320112711796933309224700231057656301867830059036475692205751291617829933616288982087147107308100552155132366188436591859556990710679416435260380157970201951484117972515429309319578526675624744646034838545583995928066768768297884511328856805939963023051786583538241722318611873731239915953971283981463431817025043709786272535266253981988506074523285324153116038386201482370391166058599584284869671652447430287513799810733251631217892154749374675078584235959007800758559903726598165430268661204338228472792969305765190971525592754985969657978962034781745282988969266006837289147640908618559646045819186033743859288767876909432641275308077940421911706182511718417070119162258460942395266124222948798074867889667682171998243208666301147272700528408455830336582970690891848175875302797006606367442223626903917798237411402304819195783458615412911604508882110842530780942739377013138089034625001091163403150848078332840104704990163883615730386045995909062964311738213554639652577159929206083368914053934477268226294264095522948442344098061413233439322715239848498496145145688348859512646009927065797911195410509837265524619197762600238420023179045274745742188949912196316722509550632688691364994338798544599197881915511206660677051377024561543877492679733933574572686635547227172064593640779926802662463433280402782628406557791468240368696722608098198927966270092635971842480642344862569221572715605110841919039347509777988989691262785838784515328334825386468885350036833213879179567891691066946322840426617002450033152414671420928978748053290061816020127925292668742752220473874963483494650015909536242380075001820577552094653361348061643164311027583375912994910143851290297477246027841163016503972300628599991452639019643028450745890188774067866038076212253025087727480578186996837866684098367259418656316134943688006554617545284820239318806195164718274858043851437326163463624557110239540396388379199550821506462038824162563288367968413873976855588251691619787125497689325281623955051893297945689472857025057406785862946763972080957734926441413912325050721994667178273652497508413586762967899431728746721866054537922799017687718408852717606493101602512713848821281144738284186833347404738481824781066377855642247339783197706798501614823968332391795520572113573451140095777609532279475721533415081326664822699448019042102468591006737594261201078249335268378680946951234253511618788816296631158281816612775025490393671383752080969335554157463112737498380253063094864442446338807860535440562847707476283438890531230237661661443124944464299648274803554993393698702564806506563859039652663848498603027730376592470521581181083321568884084202931134946460602146472163052165492252021171191198071708233278411600858172018576201196070893688374196136043142070746756291943829503664138544552348224774048701723844212396096915774056319228796593849769636053702223098276295167563145478798335311099909983448290676962550912616932015358339658826595763352945470124101474438242750374468544488988158655142774073302639494035912057802357449529856342852490331748410003059556198622434452308348939395659928710502888516054851964135515630438271024773643230962631198349093071310324146771943065159779726790737534919825433150040860378035229467557445990538892067673535564699990174776833507797623062934586457328021888905578363516342323085432655572601942531623679719332511833274524537338332145409359729528151559222293567258160870351545714741053953012959175974396915064396137093547470043931125920166582745034204622814494754551612772325713520136240476873627073722314358237033733956520436632386995391185116765777795598504220360861371135100660450052528254054045998263754160765794586478397257811908291086246133102373136710506984475546700969424219706000671306254072414613196313445275838253597816676831290234488572233771265601528945478803394506777017650891079897225484178820423420780626920372281544809001761942360543133524552278922689104869250224185944659621368956409162358222196279421687160535894759673837299921008116532070424418016673589973313178007462574271042871537911350680561427692803257201054250407173487554961127347742497982842540633160530147492437415748332757928904823391024818107661774655683436660772003683794478802260995347257972582656211104424475915368779765121954670692706868744756937378990448377540377768922975346032031732922789395632318804347255066099444072543808500245772405322442860183747652235303049837525233563038327968783760126744882634857594833146082110509362453022519204205538712850966143235327273956734310523783411969601125487632317788916546654784523304343969701551870260674177902439815997220287607111731950929430045920426557482809580966506465765452079004079499265043134359024225896402218628385153797679397471516314488506002676259098887768853325237241987617567402277693766147346147927029840573405221015253522141928195908424376417335560709413212797320772928309958714095489744214585302398799376190923540653770914382418415180471216524763499315803151132229183692765909907395512468591279377235861562750698521956483267488884237816807273478242273653461618656258888250549222823748886596126084542193235218381649225908735043049451917617445681810054772529876038781069483945564059002196557369487910160852550468212670608084348542867140391270434155035248497246604788713627000907245954964726121215195746353231333502708388841315710680448804065078803237964104101935764494352543273769004281823958447574788905491392733247799976387888592251939775075909064651859640742885164676628675697504584433123786224597652732968207747735094799874258071333554254633160571055265129681030451412681310616968427651954814010850430143733820611905861774262467818115624255097386646238816948082186909021423313254316243588725399530592167733807660128102857974105846579878512754442136288528752563811137646777687092047719937106217225579785558978960992476054457711742735117866255218614139928021623036917070048443122505792965499367753903116192530225553822147476730679149131683164602187981855980284872981231417193034435981910186866008530548975612686326902120109702602088016288462115835889964425472360146810751393448003014804333340806038065765510474883428633763389761193754158405818837211737915611609925165676111421366195771325261917111494539282024139327153851735875368306575634841599455301357481165932123421811986659969187794843507955032059910552840916303165476354125059395532071156840292079451972183303935111271585751131891289163386460363503311953738363490098288984127339214907029375487295335225970320691339327006428098966859051779393003958525097873087088706518464322826747762544361675003292087042098071438446442256733956854169551235555625607481691084965726063087724604395986569124268394149870520631722770560456339441972086856986697373891104112214549779863801730598249282408240760015534625081656037195797529534728926309536575425694913261542651287357126367078849996422498160847114297439741333717606937745488019161267884496194125368358222544385371955387371832754780375579228990613828321588922379327210594364392606060089719176224440026888843860315556263892751846119706282249499661895800039931126778120776166029997433790228308936361580287294682707964986400319968068940298948780287950578750172810581471916379103357228455437126867887816617822296247564818170153590455792715023617729211960542384553681199632981590829624342944735733869086668307606822658785714976385682699782743380655980760438138344123070457408013655208393402096089826258757665146073335758847946643223408043204462367525419263316023278923031138826938224525219110407500961193683274915359021891317931105205440150628516820694716086686757655972027133135366644725349853028923426807363088175137843236364359506197375489415050424858957989665629777475197432728191940635152952507798770846955187455755268341873707948233713907222705333585949194468789348731636525350215936287695908909818926408034763941851805992978253313162603575989963182494365038787635606087943389500835408320231086658836788486311796851522112518082775818498462726689391398836420354485188776129024958990139346551555608996802550498057890475293507756228523346399497009662514405767832514370233659303398254091191442913447730288829482782315884451918764300716181726543850365015488164438022206860426379769596310219600425519236313600830317784062141690959052200476928134082764811215079179873784695538001376387231241802382602129721868963323413277360656281849340278907691800812905960149730298292338619043129734984940550790857279406290878955319268415013264048087468121426639443415252175791228651487885395218247490245215003629860584793982054385803124816376525133537681438627246731082425774857327191544236246904694813199733227005519427287190840277356856963690684095015732568237705295969311798899062842613407851378320592355360717739495029516046011699379432661020777322910670180382396073613402721003409488457376298737341414091498802749525207717772087391621866585795022641367803082755173363046801660657628470500829788031775203464682363782593877298362255904289477598565128120660332905712012477193212676590750318792096550882723631326998752884445773213285691897997460059564798350866484386309052320036806059421469726330662670135415638355633029417128982532732682524039979476259167245682522560088994989464743702766256951048935344288139402935354859388863616803393192248993048446682438549720323576518233265282500643399580387621535057093401165446718643389635603781445523057199754435439635464058541669176966798671507204419661625499826169389147966369513600773220886787500772471183826441159450512698409895380265592660575626210609905717227469037071238765810147615481845054140546833766296856442496977776513847335330267678365795773680094031086821240760460656374005289210435680810894132636325803123678957322598858906343523282175635240962109930317793185117551784134092212952726972233592132110098287531924923392458741704831213049360107505608863002818523988974345043903743481307848789176790053977082568386638856524764656197099897646633299414597324174211885077254625372515453344357135189861432263468694579373400082110095920342887712480020140510654762994103418126463347406207575722831770502487306653392559856026496659252630600464968322060824955442584033497437749810164243693215637495745980483889674914327925339931719783808253333207542596318210566748192148808918206460726215191039654202481624305675846349944554692662062400071278031388939355725813748325427775442013977593781403921251591756057007177443182426575093789136084337400067290398458425830902921118052640413055426031735575377815394407944325648313026848539063344414642665241637155567682552232879581142827148757505171601315416592012508522229657004035675241608466089521557498979115194816802682999063235722820880812541326390126393994855119601316681194385660149339453517131857671651193375349511220435492360958449105853183562525081775195547322016599797002329138018778540833563384348694823292291593823606558643504742333970872067421207187066001046716611797003082318748535465850211966481782567138989523624961184798613989688225991847209627152929581264808298998537851216889568653608643159737624278956414344957247252675242259364646746428183832558027235518386717776355578583554579538218346026219522380554440159440041125343191432750802669274921671706290935086114221163937901154668112135135783187112905191756958418830172845186964585905873251325145437970776565778152840832552086618905830889825081373030616328438862035881466806498724449558587546163389467633169064731937398704315979495226791652027101333383572316488502558673696108004046632396935806663766767476043113349973639283833254243531423475729199954455088364485891902441747936475974988262426646501879702979088692508261640658974235866903407259190970598814893067923904014129537666551312272485878661074701185110246462570196242227120266244731822018607703271797560507626825987115397475419312366862042673957503611594704434364938373956912800957522593851137080743156921475381546234000779572919469831922542457230748136427406821226404578059062992376759163048936857966355274877111185310472546313068748420483828000977689788084459696162123547823091281230771654301154808433801028084821383731863749242104300912744566340258200017987095319475276615125405921984390064471017989681345828308786932692809626155822515199492604497805159127645353232988765953945365575054182073017325332356795371697900192198799021980883319151086780043408007501735848589902032068098816281680301191334245061001470065331770428186179859660324663054721609388866973135717152213008731497196899511232727020876003369830392785944564138709785651272612938941639222175807219632368547623689933936643718422360525947844144204567156680369894854988946249793717464387015606065421518019178383343779529945076681546070483268730796779551940137590124843808357328290739335168645430275634967949945268431631858670376067424700659620453880293309037256862719365915393882347295020929814183287020265371969147979899027633034177448714042166070599113223434343147371429056895661730826339635219115884434467597992605361971032553702064415820720671681978486090981475847532879247820755393330230892049372439632075537749128127384424423226363401229812862752853921271791819993914202838104753801992097787404998461171788688992809242865421276390309209609478788581362207906881323209696265557799498165917975443098270343596311838256370639102851043730584818351090766350693479765976070290180594801033000929117350631236628633455994409171775715316799455670927126333768217752421164460452611374445232274565243163760130596833361589614864844248662306030364577770181548725423011842753829594263101287340410799557725872364345803251446752308050435847026186463998608121302961455118378471070803004567945912376828075895504288598956435666218915285026510242439306561402491217187164450623070031293473148679790528533674854998147111287836122271407032379930038276821354366779173493596570447160388704091375942735262779518809542594101942636998363339382334845529578767585758688252941952668200690607814335586044685551465333000847744589690736104103327668299795833611314108334579113543351200854490055619455399192925894481011091889075993433394650455866527909582254161393949669617284440373174314148114715654907868295686136760514546643844145238663156113676086059612091043967887062880191989328999855405960324749772565072871604927410442601468494217840285269020000153652651511503189793310248170745159989848917092998779672500089687693781218386014094814052093855014475653526024481368879211892319052823051802764277252036319446628756368487146166420453154536043082750953899675571172069697820314735690955110563508995397952721516064203859199324641599164019789023909370386077389033369633717126657178243032301077970242970079787963048585442083803389330270434771684393330754597990756722324381401542994242055510561055283884374266475534820144942196218750412937857396276046172391474438218735182480441901667834744514188075224968599601549583839712392592359247749614491076442895347892855832979550704289788060269789440269668731149239813264827195154060402392388967027145358910548245205997785352143710930617664194742675096778324964313211030474330163005795442161861566778590038587317055925987418969745878147952229847343800729000171932332540745327736434019599502104162966423873931721173285518890490272095247672309338252499992925762046449339473450660354165675430101279541286198649154823672797237218880148986640572988335706038260576974573973815889129084132647982512964391070634524333161716785704389390793461890206605213383308913334285990314399635549032710639595273963959654151113410178816830553456789629368214765709970753759442959051720023583809454617876355895741124759536229725267406403278008991715456777032518467867647816470879029182975471031079228519774890413361799296796103013394831768458038565061595097688773809333266604619684439792822097698494501525875876265145254964532138114406155067507436215604275037256706989872885725277842344120257760450555525839856296077302512482131427139238028742116402961678749640286356608089848038047320514693642854073480545766082392549979596024988923933579491767983334645170734581828778472673023365676458876385342302617609134592871051086550172117069177516942647409177262944374349588227483817818751822319861809858297294018766802174201892564601538725246476649673974892040947778020202108029790210165333578698750764518132745967799383986329125264028069339717081166914535439187769202871258285243186104154953128462288432827167827795980057623601088081796597036704255937306201577681049902807932968079750625276913724636326256207480548699716766596134262690434896552725161844222543260338627023904516791367032091515744484808182677551809058377078896474109396022538166323499019286936616357937203381031122324625100925623247424051834071293436588452022678923881256653375082245220654148526283274050962008272782074441331535200865834591139944896064981131257471864397942119258879450097420561841849163152826619494517183583946053420386867247964756097705728767413338072733014164106941540278902290099442491733845682851159841742962991207667166524050323110319061456917230076566656740639277406214457360980131151006362325349668577554250362616101753707811498449994222684191676990334499210586146745717799216305875754585737635409387448291749957519756810867325728147542507479003839881589792672378758264888489310915701834943370434262620800426115469967883591715217777165557631499448548798955045075137326215690996871051051324057424993127035131304807324607955009304548689547447365188654576864989793432659159209651492782119249287311437491836264400003851352073162076129451820878234094027768658624598765100378698993860264316093991109443260265053351485274980516654632914006483671347387901908670136243991228302383811915910779999260753200115916831017575233264622194334815658021305103448769383537338683667700531577535703603896896192764787326445982659487643211176434130028711143075711564764099672226094800575110190526319692961371926784693745678874922304413663332334806568899205490340666049324368827409945949767313417328828447037904399317957057578623761284371654098218903434741163062568856549701044780188310296042190871378997821480784856124189476829899710034741990837744687477568097470465806830343944052329694343943428710288243529061879574664611438029922203318140520270315049286923757929453667378552335295984795794559901932771634676960457006791724160026399607623657064186097658465228905302534004200365553642668184906852392607608243454957513121223287062268685641741432740364191286036090519125895727866675320421730119674741926665592509489240623902918385348431946285347688927403402304625231110705969998073903166143347314392910758605549102706681884493890619090658703531035378577587871329945869012916553008334401292828020962585999404662412673832650220469108541332026462049539446675477150319108583303396104865752826115229050517636305471166397928707919825112895262341963670619320803325299958788710760463964607395236574995027226894840693314049282662251057348906681986197021753088523513306535793726088371549376980577255803573948634219910036289110282336849318261885176858731688331586521275623157468910197891623882977002002124662239317107060448112832112331802976592649707485272587636835833689501530952667098702776672432700710754542248343248009671513428384002397297593627211616206096646098050034971918625511087510655204100867934195725278978152456114762873385279022463840063725067667101609265018571814931095133597583021612255523659255572776108539739681162474520046199931278109999717315871221866708474846596700851776234164039914799267284958012955741581805770371248593114255668790079756503875639774013881955954119212424147466980421361043272829540619843491854894582981621502003409330822126889327080091371172547381846695145688569449099295492650703535518201416280234793082001472538376688302926438555108145084037122749826620215783557339372231165574103385903513654277385246274130027829329411595615023762839677526287148203396313053284492136120966400128498605696895320083112757951253997257306152994617421348926244844891029836231012387729899396441557375585821408714401854264998664628869663051086162993955782484969427886676550163594727060844198383886514978534547443905406809745735067097294196859445427494667021028559722650240495389196759033224620962934092470326934721760857662826636905347657030190703452709494173442206808252882854576704394125868716016766471790695152412088490386707706786380864322876439559212465769038988127448603665451028382369227566547275237871204764063876535984388201909471773124231187485066916935112561777962577646866358805042962308050276009338296362674387009959085108153578920999908606116502825979446921766489259914857149422321645771011648473234698172168310321650614240907016919741187383696791714826052559723727882600872871498195829129831849436719974572977601574199256679696381568448415466569925038577640646661461632951391594532289654744227552844715586689613186726891523792486034236809861455551487573559178805466071522186200058036287442712770162933783302267933412253100623441811656482720919238958927536496766278542453456743450832054557930410481763530778793446255084300271940009825052635879368151407590393089981685728889754052604250423452395912676758982530308925305911674799008975841044699007955267114321518961258610827183242649536210951373753090330790066377274730379661594317690748587299262696566002280677750773440291762939082373063796914957057743093601759633972707919678872175150259209155039337146707354712099317428036918503333852630213414207733365474390620202632261366883612635528794852266533123841378496967192233282174496579092587848404307340883215995932193755185654872919859760368944249812426642869797257551183669849502099558845793493170605082908484665235042981678773922032014438504513572217599375811771294614158747844118418482449210150747733582264806003372428210185993677493262761018514161423656785517075327610592970432711851475154754189330735122373486539773620195526854861228238614588346923440711428019249216784305285461833556949394211354724286803269377586102781970806643928580938515535842827260964321603858633680285498989165638332899413730573047373920157985226401666261291391794256764153234546202900084928870205873328149088367187744514599931556493016981270946973236281791316591330537000709567738524167321124902140130654512922309247820520460429870001064928263199496517248454539547957586460627174516053768812280586837706256360391212291857607461826323533492559309215811303074075526048220394796972913461259102893568764294488460091025363138857970401473610188264351764519015869798627859378986071071402529572272851033171144885728553240410193976766481785406138735683886565677625724668781519430700831766824011444712880249761393213030071998184285610935292998598774963255791786538788844566601265399404589237307463365874342830638402557284611349455440628932619279153016529087591617826621092576768502226466578820067663620307279957212991660269360603805818315619068941529316818635278040990526281815499856130102502437268332665426906730154669114329205523301566813806308826782944453242276854174499329471558275922669885961428981335477816688976155111121729427621853048521931155093897692827888915712218602471107053557460212997562486277422353668643344692448419099962453914131725520881991533545743384245574161514189146335420772383667852783091618466451019790836275304687311236434093057571691842719562893466361418487083225382550711781940177058150774822840740357573284321539844272381497650762958736895150273023743145647949324843377435830231566162283812916182469426445678142396290709877708679828317173540181534835136331862543563837779482562922056556747792948747625704785429548678516232795369511330503367368339879362189135539864254418434294727271582518754828823496756719548984827331741619518336969337176495531918992097902608061565292592776128407797854739402479817721163853782035851173612852460302553220250147100763709239521095751119935787021314786987589335331788493123144580774979246735124531925998629624301343338804000535283694367725205204147602885454053791918760011252969325078556870452093892840869243677491176096683775851634609511728783294857698317078857378727916639940535508201893686211750312205289011708426298129485903660367084560137303794955278446590050924363203225469182960444263173987407692819323617033634804167712717904658118410052889932785620001874981001810145268779330202124141074164158389634444025912404318584447715620294337926329449561145813010806961485109320557849593931667078164745682750226565321558997991082262035539635560710157835016742255605916993145360903689617351376157063304571459382942895822965410286902260179085539106018531871450543979203574798858625077731298575774043121830655160984983722727130750516391777208632452555498527754478373629585310187301576376132223317203624345374427989755304435295624606587193611410157832178471913868022091054131144629691570050243801112861222629754882075220755638766294838772209703294105976563889800357662203922358414138024194434518620165558549808597765133007891158659076890730809632906246026128460429459904635686038468512452741684843869225380082316226603145385112577580368102516325765811956115494049926704187819098545802022864251134575468613310533368600759856988875145551639350812861279618524513541586689629511703688920984072341482938186690548262766360795839262785580734898742658751133466380340185366901822968002898655289683125714510015918282210807777182964955028903792715477339813247931857237782593068195643728233258982743097648438550830607955190974362141621595111420695752435649595578117268958389694010992883242479864169181588546066707006999132012865545865419196141023167352204675003743527782762479403361739089491630579279741162854166175451139651159136045327247003786479868316971156813938828236290828021571352567286085246055062089076712439073326614861505358939404414600744281199763981702102903020178737866568035009777336272774732567364295568596467148169004259864210142689615872924141930576935436644430022538534174567571888556462123506324854265379636736360335515845282892289579676272663276640904596121496971784269453831728400790539098581667207672015697700407914076771165247784451626643496101141298432126785157036445656653914973327645170703187878265727038093758022229199442356289269511616391583653270112614391698315831996719853101389192542517141442319596598580066285243992127991978823158221011058119164935680518349495021410557641138079043524737093472171299234671895419655921818878704195867803184982805114131062487375010902026076838886304624961500226285185291177437183311109408090509771312276349513137517708806981663964836970984335953753466851645420084057800606256526663760739075274733739269065373900575718649622287769427142477911995826763542197999658915282193332639958035072627603828201153236068786504528832441421909670584465834285413446279271171802334706442354443980677131548150087066856079595115513539140226619374753717163974348481213956418204437661116921466196254375715070637701560466991729185143958364980129298055673475500156111010024744846355755675919687099873242745888612347979613611929158837580443720799498779042199795420364893063398341067409725451405569025898656509076111928248866604538137367647991337914970357640716909446950627868295801290707366115567888744693131954748824332488341308462589393624763034065040634727686856400154653306849315615787082727346631731983649031621076748900256971988855419235270309533088905446680905241903139608338403171461858731838975635093261254407063127862148925108758567459981204291701538437703709627061090790412758267998877303078302006210702376994154900935341095754202909014345865092208625275538736798473427378526496783077676924917291710695252422001488607618735119627552866319457854435885410105417360594498541333714767403231595113683564923565768363082981058803606741976627157594995549423752693187355154439268109153134851820433780916821279532323429139886792728641042600931754962793312572079573831444454111084019027186558134799860442667444957867007309978402423256393078077668117385140029817827629521478552681853184501603530941679092311615239809228614841627343296032449654829914650461369090366170240539680381171581157008163967230508414091508310680882212871644908741461080112217516508547516114290717175383315839183450738387436000762819560954443556286490684148210033277849689021466506618675489130411705735709318053476593436848932885669839180124322970149835761519216418015904924170747766528468780529433869856585138204802322744040720154427240005960568758422889062939383715637911954893804671876163931939332907634932935212871994590559310993492651389370249097481526880984120870382015887826118500460985691569255389810965274727931882078944740760250827788870094331730222378735994813467458026355153265985058633075959942860465113880978734527735045357347328042468864630846116000566388062825411282959668143770503256642396095491550252658245816095586334700163528479635686403800006600144844511982154590774090262265747357691045172013217378823187713198253949677852521387961199467709248421039135156949928407852000976268146722922504950828057328138115773431505504140274155982197440574615756138704458010539824641691405689473610491051071255798068382229215322364457969865609861500355906635641947347561699539451164769002366314121716460139786685718473455070173572526928476384722219123920821642330238478488521434314215203680408877205479781710344804594257038246807930816528468895995735333628831051117187351592324219635278910344338652893766564580760686899058105871144828478594637371813712143272747240307817320348745463175393473305705951996064569444512819090630857429722925152781028858880465651125565279914818562873794800333540366563066870779771430987419469155809427804053241121983723013519401965538143594943393007349209691224105005727436218241410532835005270767363057906696607241898241762484183994319887598289959856837070770739574342373402773953786993530779917274720256454428329306459025170835579472098996255628552006368100147242625905843998499202376704178897518033255013806125476310886403293496677942459094035286401526784656848132567490203794962360532969960583774004535436736373565971007726006167891137325799441762999598341355510235022253761200432641559735451231798999048535148963263484108352957524197940091317600503580421943782627636168884692288236379752077547105865027532083950638520952516858984536429304700155040923819697467855357333421898807902981953954254417050788356748507207612335220154236410868409773223697451574318308221762007221015578071736464274984613519175252436782659942886388148576018698398955332564067206668207845717840509572089982966921100351487124039782954728440279538610169661310427171880240068269432935704865035463278742077487994819965796025549008752660218373146988709840966939879143834672004723488050193130673730971810553658699592782276111102594029232503740474856237301076742979684611670547161777013002567346253559962828170982303983759169177545111410785456621630826123607781004251791439474663980431345222569405243338660104266953628391979311480831381496399514012747033832515387422945658406717573239808370477003304728395501258549062159876644743997066788733179949037842202140556266308714118177037040991987737328522333553936927822108566792736025555132090571459809872684273642329604458286943402427681661804290871683312624862918834631119573209867154085197141035808403169924618451618088357145941450063222873182980521054896642169493065367387654235720770456198667876409298924243640005910909143094378949292686434480821033247649505979958314149725953125719471639128251122294306299164876749026865018873297861686626218569807080679825174243070254919591647905206756157229972898054365805905762574892891495353091184690769061338740002658320607894544094287041800893532787896499584983625393129852612648877993439466107714946524321230498573746535921462547325702966921984782112697039613340563899774477711112658114579214116015822747655396193954085196379839269914155840567648138329259450687103460646419448273135068290739368649471624573186336662852005380003219294772905033526198042477882725796691703399995359754752381315186376936933906527426449242346850749020086623967275372453531707916365485078443185685489974326526659077616020845173637696458575939657172182053240361325251752498569744403471823135611376670450671692679827034862450084177869066363521156953107893159980613399774601482124900364907998108488360199287142097655252611556180777337653450742529211195849068331806413786570456962371603415084447581577456404062797243880794386850025434394790552029245695960748584895537537063109829594140966300348308460497446584081611014401544903730397261953325380731054753623915059738655903243610771724855443227523641187879994732453400635652458904998339505762256693025024923359487057244145308096738227466025579311780130522722650297058131527738572851655236443936694644359083885437826946630237979866316130003443368681352444689516731827255551657616745005771170386551641035379427636394127314376863138813845505918711460551272569007609231513127825920017959576090455801999535787999998974371223052998572123528964954800528671130031879245757030033466359124647808277588698433357592734824584188458502560504505752237034019961653956824488580304361981684662885450550492427049220546736988222617392028137780059013525964576648816668536194495469949190074977009872841071716090549402654819327281886814864646078953880703545021110626753479278446869729052652132217185155734592314364042709392653180030993149661197733597238329186856099460049660584125856008699641462435391894026988864218749867081849743869675853122656204960066466861021442417157032485616390468692266879011617545356139494011878958708260153061214465857434237228243323605758568651807795116184428447702228239858580820180576997757637556473962681531156413293575389464667611578787452281157093126988999514206096549467555257233632955465058240096058653876480462564402260907762651080200556431868996733704535700300153962047408514355069294325033098373703087645271559330536361793609736941889979898779121755548128467259647623007539842062660351232446860126570480203599056527952928740114480977080177243812622591899368189370565649881217492737481801807846461469240618528596104437380980362132932511254822610474055881024733821277723665453508561045338898172488207544124349728356217549269127883068382368902572281144635793501984194983602011780693940849988769621892357994353335611561966241895161670569820947735975846782803723026354090450948953486412632721428936138053892253816698450600765379849472544171152655669184000194751533815394153201983970692151305747617838506969491451612046783050484192740079058654623763544798558382101273113352516160879637944607314254911596826979918609792927498596420449119016884691728897789250206521223545946658593502443172401526664747514631141624951631795829052283442319190949030328470111861820000913627384252104209973559062258774455123821650738014016413538856082712680775922370766499268524266239422835252228653518790221324335748059702639946893799253403468396203056044738842837427170862154285478207692416913221641763847091935448425645282449764949504253963686237626992142864276564793680647375964938099095409096645314241128360927891492418652755305592703059821423122976822777060781215713709578141627130097596942021920462067083395314811105949104523346363062468911032222855776033609190214580892109989277091152963171933543789723335984390473005796538234989244619724923836610511223746058224363757756042238105002142145671272159393312142683724427910456389579026649195621913070654613024479932413047229504475023130849090136495514221155594402220838665672572689017776928542614383242026678490395850067702890232111728122950618451211540769537753182844524088334084502197210325201339019022487325429243634090327952253103147903456982574461033147698996459422658554757792376152583687647922202647593192424205623609196647719163737461230540323811519948685455791415300386944713218494592841809436789966934300539692802561345344224658630261198474295207125386838716191686543112332083991154958973244474735259562501313207205733784938009587254576380250245237171082448355488321847473156510913840201648821840541707283416388831287629001345928741257856411461831201363550339420610857307600191701656084741196549493077615891898397651561212529067550396754356609766137779498066553360451790544669995799536736889149597302129028602724066999351305726492266685128099213836474401723339321625861027124967485515036254158819483658036320238687615414571808612673071352163554608371276497909953789246096828915391120076204559579292950859428590255572165112168697364697760488556365175069554921659850330200818779322531990374283697063496403180758045836021782141679034292945360973447565762416357182332808291478237656421004298041569511326902103662397053336771856602925900240910318320732852526714649855917179381114903394401889979450057416784487503505711693051272413483470396506198848263187245360141006876615165069166994133267950662577824283273262935950979226719324920240125905533923395132416048200255587968012283826988542137608852520290507173608198106744568051078594244590038709811706268131342643206364350545212297423253201867209448171212154810244109357178480789224435712243563790291712464366791701563419489329914231745250245620464914858223937008132171460744713505845214955168707750205306160311692599462009835951250665547549744055031920492227868207725263992915560650449072479467770254870919371911237659016103033568680868118136777558726561631105544583849584951565024330271872468281126644410982308063609204625300851427815401581289262562475339036692863906320207165938524954757777110551518645406073605335533374257566817837426666151445980871617912188638687559852744713681249734198902833817272725522797101580871759245978648488926521977910820258961894263252661794830261565844508009986044541569971763914850328513326799006605474266671832921851479858446025947353998388577511549163927626148328198481678064864917444271252697539639154668894613749987777747018401992437066793235342412610033891445126766879758843781886218195375055480170036516826507443907025955468705283963536216017343720203214246824640178307672356856966430475271433067294472098263469937017218137566199968931355220322703730958884745036167382904037691612186084557822240625561384290165832863153572425818559475036971406542108855041346319480495864197028858051489476832334730959171301571125875813584064020319350375405751945215681334202379972578929095222873568292525902663332325141947604095515131094697305700372816027837452989656879913247054432167990590353082090056708751804398603909872203306348475733455059124175490456446331817008579395262605141478189169921456600336512036880567060406962582999538478927309297259107737727271281716560770780086962468842031938065120148582634623002230700896925322224287780514793244153502165541750177822081735096809206475661668055407517056989595962529264257436055462373315975738098363385884122216065887971000644295724293007556236534339838653496546632576051729307243673174902314308550320348457055272773011262146357559390491822960682727805884096184150934834580348033193521454931973356866141873357400472833619990542879168831787179869137544614831306060057869977866335139224257901743475043017710077875919708751886238577532373047532932356544075547088425337923263725012173420016741591016223785427625845066920814404968491839421342389662818446814024080397456995728383985134839666362540580132980201890545894566313391926205332687587648490021697377086215462651371444854514874152458348286630368922487844201765133638931962746780853060349428881799489635348850750463617103543512836550561926203368831004727332579578933463806542031276054461687774289533505842216679477185671656647840668829389296574276555803631140261805178498854035070293839304265110187133260548471835849026241850617623861067129620488229026259865102062766847542956881658497342772003816190975454645280557958259175242695454704115003258623616370064520200736764508880760930163836321338477739541078181094991932806690718767199105385242949488458529282384958418246920241928163790890213331473311442768212896975125417230155381026051709775936053789135421366190656522883230174754933597082372700153929658429038395281539681442921757454845003555470739884599418463180218057827932326455185885677744121137233018918879094322948509585825085681515165461869707095515403671276575186824914904318008780064056855320184417512340594703746701324115123445734954190885249115864587170309101824653307087085971872513470471099922619238237893880244191188183163314053145928040386037990723329403502690451558643449997849105007183156355638259362490169613026909385501387880555820015270783944429945677580677931580629872389167768643900471555395079793049981704354983625342163642411476571572482035863511142328754069629820519511252589096596556799343752730501877557177732490061944574206672753917442969353652920379100668361073118123437692171674635872946062920944982223555993530184789033960796753401040173825374204196215123016316069865731343775485535763942818076589049575201966385036916519463381835520896016014979652788231446613793695023627522798962542945393040301051229191065771202575940868555602356679375575491775193837347653616952162945878998085156164440598692909983617959913288775130723388733454360948875373955221737051890072742101657211970136995990636611011340161146915198242357043132118500974644159511694727255270248580531500703388941194332042270368688649442397429442810256710092135172693148024777494953207688878224500775712678427356631258395032680522357549498696105274288131510535075439472809550641805976208584834599596202883346324139317807166676056512707615247932639098472515901915676945071718420542531161958377567010987183833365245970420291580334689238082651156857144906159564641468172530891395191448274093145064720054194906420610105328306564156577671429346239918456552669011986418696746489497206251975844376815633355499132792224284889233800432908698085213859004278420221798428298782776465281039710515761107182883370867229029222651956156582874101815129785343668015267563610869701013394802645456536215747576877961921538316159878070177625624245034515539385645182923109283345684537897756712037705277481950190470078594442346078883144426485754813134045072474130338443676646731508418233950034049862218046040157161613677787201614313553983051330771621321987715928142215975596858842140475426316414867620087164674424093561701138304165782636925378976273427184246111586517944921281958922469970249796442947150031194105951652172108062516719976898897651723015223859346675627151342674214651206963785060596285506581754699784661267108720374187063207661003990899658421039576392949197333839030506127458865643393849778189085927739870485385347732003259865735549546565229186127813495897172298463718605490994433554958241173572774962288338789423552768064741254364936738390651857640645017460944550217603374102079538890431497920168124374528004781025535436707959422185852642354953961474073808251934575978149027404401633667303875294920204524850539148682818098745540494798443176362161071993673407890999316471491876126315153516078152385001737537372635437338222199739012557236379947935659606204344240481472233819407593837805074321522721128522048493305582848386183440255999048647522673827240984133166458559266218134944553675876410811026983703718327709455541511067661565442959007635738816816928579441940154291862201247154241763004861705160801904505023586197143705850653827656251242347100955198495222868213285016278763532838753301893136946672938098869866044837016679662089070337868073769093254723938210018754101420556867474374497624368632256293924901907336006374551364155397214499414801418613503441171828173392990511907670735223120731366329647693113394971262481283007023153453781030164506995962265897494269110643471437604781466335934224792116550788745138968796973268867929901669999677560940505725941995386380771925341618897115605074643813971444768019979479029201202171830395317511139570289579656670892622909312006635316511806761224410076469455934501894163557241930236526237883129754009714084997498435767775534209784063450670491036231547764163581872043189333268624635703251978012308939715031777914952548652957682156758905343767215545569958148142059114520814160275502180615488458315553067334721584274083513439498187173169227709231541744178254050200173016341553231422464042132239797672743258060610469295337591241666243785071703299574387120189414696035864315262567923162322734983831865686036060137846149225757169822032764814165897117961399148114624609011474326064939824036331970336753711823769114413728251792966852498735907175380351505551724070687399513846638656551305283861651829240906217425565160914521659555519205108615975248758573160566341519651439895950608442709185763857133590406173848640239808995190498408873716718036047368055692224535967899689031878134125115027492457337825334875396032632061097092357286908839500133074765533878216292347628648624255688546831662691032948723694836870360354618970463065619764487210133730482724994681738746413829425017275978729528676120992411560328361907137848986775715194938232692308626347448741209829098312769348427941140875097134909271246392187172730009236689730536618218847595451795723645763722291939162620264151096270224523237077091046052675804144307180868128619603530748720475770719068888354358234046251693187357915612347493373582763395398215586944354535403168266817829652106118466670921489767593233244243995961327735955958090602320357728826776089217295165644329764254608020665849273947982663181275058148369518743761607282482943917435164041120302538229921610135055444413923832516662263127473935390618863458702497280826218127684316900471900372558530830996713747982824022254222170699101030568350072191552245403968023548501554144512863818510857037494926780858945052828353600296413035124443117660119271391650788729900155223335161715297378027919786256830037067650754147052300241467697082264390866380994318877402995886951172757070144082628839115515851692514630464068158714347690632108720685863477575312082420367264231273832814856077234332591730745423437083956763198205713384256479207541426804441110509854531997428106313043593518179562778882434016964811235821333127601939742716711693093787552544235226287781250610518560219921204358299093047987125349735263186413952935764998574239490675808159465704559531611087849232080751673115311824648182111539489159612577853297258320044246242078139350018080455194561034379409687993744500068394069268711601109368715047412673248358369205520521086374926481046321621311878790024659462758741203835342753061751407124767486336908675203224981157672916573014807774142682882598999160414736596390811392550963373537739371799893509164196625984439062958839818572624231855203820501525325576845144071357128644208751189507483967743405075652186587300745031455725419438906644708411912617795910133566615005048145110167973596341814060079084515831530989920764856876281335029666732864932991179266416643825317073962523201872432856934246302436384018164504917634487263230395532482079023581648479566867074932543792873918264019138713883835742606955644932118661712784175301281393253724762888728051645018018381554749549262817938697558041196226851202893728782212480694649883159309426368161697247363341032501755311775244685167283204791681105328423456348198429183400397433154088900173675771385133605931551051543751932861539411564951441661704983124044873358645042248201513537884357726143005306335161652285782314820564984162408845607610113161440968027850635772324439544647178242609874420089467683658350403981063065468912548395050827529355475065733611640540016901452440181956197972571106550987271715491330419325026391140426006079688705588912861338747678142444125740000181026683895048996207974078546843090874275449076174503553373407985142183439027425721665225034713895290193683792416716505034882105566656086265403828086200899175838978199800796906368292067191267131964514868574946183257361122248793644757770661420972756352784936708252054200165426021022017615952244370902816398767805900537467076074593609617894106654195963502200355073756419294207188580848495161408069427332602539765141374137545747439652688301112280181212632791044502361853461454091153248526898593118611170187200980151919648834254081112980276450112713502726686026894050128650509453359421115993503597620889744025926992295567052384818784344764220447976997213075528225007496593328513245855879770221599725755228201352118516964290897617740523301867756304782036485137813720763472356029711449871397401177819710919256477388626904317400076900100659488111088139423790452314101206518136157256538272583859576549663499549377817183532991551750159639534608086255770876169110684011645531218016063672257997689451022070755326027633274992989436301448844717938022090621338536548706781006947765800722616326735538782537431673585520199919382934452582443815307565525051537533630223602998848754402926136489499198809136808131248390174223463196787920103907234961063758139755948348813180663594843799266478613376377476037861630712489792674149541596063371302789887755913606589345209407316506989893103218500691689496834082899509878165445135713278625764637334504510903953937961966993016165025009932974170069747933327676232847187458512996546290983820478431743833140605128555509875062455628490917226043506096307129719206869766665663666531584501028922729484820295126059585177828045690925508153088106607992719279596535039068451628047537975219552012071134979547504011044787405551027295007392567187245408000200054448687946755050063936155449457747961123280342260239666546374190160881709617698719317726647441441703382667629415286232359402039616834310601328815524062832349341572932962171530869953919595367400040187502836858420521047408412711838545903676559407166828558065603748931051977449382040264193304511009848094856163677948114824155272166800637882853604746538280686883378991701479824028165592608734433028891893554757545717477362836506216255418247880244258834590129488726311606211284824436320618851586960663421135054929678913338824454852455230591282819061104910718641571466719333116155215023579894471722942395132773635512474000038960958344759207467161631790380258549446978656297909726802733761350456848601382310134824533857814595892122951293189939785942465283313958947921051285219248622191087472586410362408929024566352666866255254656380160045755092835151593691278831936537164222587994877533678964219612465815241379273135717049746423876583305522843449508707341802078048390654661222739734304931317152770309281732789136341977582835530555151064781418569321421595951862314567189498667890476504743793521713344385596162054870856029063657463438458351733793753500145225889737752728092167393424245230523457245923980638936986053898268060539011707699119457527831581106862125398538760439110645287476939886478658114227702245815880831303249629276397554453623826717432719528993555139679167500846144142888115966853734623450743194037937249881787941073030562089461172835768320903862774507406796924859960756758560612899413464802206517456005002382413949702473500725335475440863735778643718621173883717236165657851864197868566784318678600251765340727395141548110291586897721382213374119458578452226469233598439463290615630749132769678563348685944020513081117014280486069934811332908917945289350601150232681791653028549491149039746245568864050895134211947067754818307776141468849788865800914598309497458688952394422427017962139799963927919681197783228195973772264556421404438165622725233709098881801359373824687224759246214429633058116138495105715157696715953394753482497534372479442456067617988081667107036462832655763838931071810168390711254042770081960690793459810353509746296720478850690134897242953853940328928043290200275551454933769386334004841361363633333405154183274120357035405020657716705749436078220483551758711468605049502619625697012076367328369934807202935761598560724961534318909588421909570721941445617574098863743735884227009310259011838609674153757786190568611348600580364300107389323094007830913194170499763493218105751913618131331939531984391743148151301639423351480977200455378506598636330692799783642130640252408721979484867358803070842011988343636675228583440824075475102322695796902632743035695249102700351381317419963149830820192835660496222447490672812084617235566095830406900649903785809611812282865685628762692710693671235050387356570085088795826186796210757233240702100416441221988241980302097898866751021953681057254864734463977456630605260666506134346520137299906773768372730314708008065399671552045794159650662778263752432281071176952608886262015848394718252516259074396374944314892223888039669719844046483381457299412919732085453497035211929896972603552092295460523194799612126324851206713073363728612978827002332638385056283539586793238822336458438283689847978101035883691695824846692597685745857528713661441163666917561509941893031963481195083733376792266381271012708963354817178185518429601088175727212186757216602431051967781627143687598718511330794239065381775817439293049422619624034202891307633216547664696499453333241358081591281188594691806560415831653971874008439436369537934094922832342505746520532043972941754041329960477387150458768002962412412646801352986269086319368902884137802633637987463801215455932735166372502992010243556992900882184901083268897753352255795850580946078485919757324627383747459956701394152680279854425950724172325619940033708241442360848886443123332455666343688206738703310355904702342779135691155501275046796436332462175431949862012142833651478818007304320868275536828453264427959052843101715165548521081612902631041388118515702693512207345908785337494991848614634677642826608274022690720789274122617441850384492776329651776293364735201525936883040298118130785302561308440897127241361847831180505957153122621588779335601744619479292698205235405719034415742591759456976225083004682442109444224423627417817166738150980767994742400630100874380394186399682426276483947682169107890569269946278550941146495470808886467587859268243006784556142039693104393968803472545629534058040811400921978759676339975387479554471960096560716565773002644132297626767949089991944505615103107873105329220434532393145281719081312669832104501840309207100168269096200017598859366418003280356626981121972285207453395537720300372581703883493638726772059387241165195636925837099247208037075527547031443525483722086555318951074917139923481961418856794320198183682034733703115851837043349453522632421997145575230135253397087304749275709185592272717692526672646038712004206119779892958436792020578703033358390341433735461900078858839401636791485397752175585913495421450785442742117793399067664718971816986028604708269472756681271465170778248835152133889716922407579237945715813773670497534967493076585364474340446273693654849739217494297857823291780914713309891815721091071957757031632924664599228280366513075736164704758856547219869119430998317625381358825059307134742355065853625177932429734482660379135592046222973421418752880874705736803838395099553557312577724792467477245831133043039213953212591748079603621393168618259990870307843886785944667094552156047095590872991865658061302659521784781957600894632428072853716253970747352018863621969283155021676655339438584138975823580008357705034962804725495659470583536249357076510065821466077596810952376064289976686343939352140705232895484825212208686602031033072284893682008265926043703320861499267908557805192983247351102978922592954565442457333104253682384082395040213482478467547824501774981454209647614678010274482364307302033752215271359243489289063818821264005990128108201559568950351904733355404708067014524346398475782688683624095131073096396408367689770327569992895821830012303518854700976189094728622446082726573512838170996334262506925681919236820795359721565089456434423900803799640924020451198591655048419433603201616182984873898559626778259499770741510600799756761940263147688068722376079613391170278409020128636132183496411197386803377212747214467869251716004743311259013185332507822839837986790144666876495133384709535170280262532272743142610384710502772066565167609154213342301587601836092525022969353756546976023701762652807523077865252742745572433923235862741403331890973910932038750127779858193644977318140356812171229909786246552280185951423370996217168613600215335279845925457488837140892369937328626124709311781646015213566231716339354319103708816856074312011905764461889466018476339980166778393372760737581924621350612727524347548016616025329487131984692772497592948058056092952806110152433400587151349133776022267192114086800066502333580505017831670783223026871211632161093015411581740157251466843152845311605889075332029259767850044249930072984296170648523608707639090716055866321062565436886603407969468277085625885041868684818461920427235997812806358726772046889957065248556698499245137314208639096730974133954227499684299875846277878616813571030668272756361164696399841282812866180445502770485670319429221492533676816475665048452208082893606520854449788289406239310839259521432501093370548389326954403997196915851758375742918214235900888883563015921978211219431987240095869507669561713365055004929200039044897953426604176643915165985869330681276886525944086810098849138205064595340572272556598551414543562452850976105550312680061356536616159276609844381607700855426770295639162582684254767145480084572539905931636665944131834363785774284530380059987645832322951006109891024338373744069261823606665037454380687957554322811740014972245268367851510579928595746757562890146157791736228995370600850440203808908362589394444331646352843327255016666569734449835968041046236624110944685942494551265240607019435438447935353385643491037501385814605735961881825752494459490660468227576578078457554588356545257345289982858847177484314473209122330157183547224240824605253836152352365233534571906892775810234205983000130828659001562188847810566602954931406576805229379423640694341410440719603105017766914234186853172248231340826400629151965975723747761140041246348967964714956188088932078469820509904410219085075325422828203331486560665919612822732992571069078132014615844333599594953124727996571939263788245167642093612362418505584760913085237620935964231301671559799917578690016261573446726156592814797015238855199943201660681027138658964213585706101044662145067681924447138104560197716886634416425958600880666141030978620816010534737491207412892331103182016685585703633250074568185115450463982652202683789739456565155462848934210686705797101843315861292831101459753856675005675291598245961550322271082551894158379859847934687407630852918253537231196721974452942271250682262174603826595345642974710368184643217270045579728580994755388211680478833332612353519760990231454327587357151857796879212001934847214906213751127585029066036721690792956566106464777500840567843950163216097264983475427548535030490265436208547571398676461489912887999763052440577362355687615940890943541061391933271346619976941799220421261414605800884807317240167383236774179482923615920094794920686136163924662926198362443427998584060343468671416032893542416149207194476416157780015959205342295626701292219684737982115754496036150093839441313426941365215158226464119387618341600598919241406458503298644747980133755215863300531659310312512249808145839996775136020319519501739842782076682779156712844402039552423294801265537340783173467297207087741532304234570810846185753704087799151967012681683608856897845353964510366944440572058112311891669467829503572503787772253640245139948628576651740355293701923214510135431400407819136346324772001179539409799773528467344562558910007387562961998577144869753315637814463598694672968925715574109970830273038719955525343993349037788389987507488978208518543905449230174673654143370021426845691327262970654042231555030856774376643837210206062506084687090530725732834898196764457754340409535144140581051871029931634685746426230701905366443762944284174190454306080584778984198975692357622974011547589432411373450855265607864005984344443353431724916903540935762556561556139068415460101208640909669944936400285067157953123843446329335022647576972513278379283048065366278898635624463932227802657683689598049563187333664065921418329947312412075909202529116486874844450444467300958439878551698554081129513159765703019158587083799463805372926075857166329770431955205079892066953733283201499390711949247450233483968850100320840044324316449248988356038526208036380213969026302037533089808322506540260423948187109180226103982573050970980223147074631889653393748502618255973670389337469820275575599218513397732682442533275534956948930925072280828220117191638810329927740767432435168914700713537585930060105505478046950839685019032061585874621541312426000166243114978873062576248607331844205641842522652177062947623121858403127184898091766967196070975489817165605661556594458016251985542909271557449062230120928994190008359293851377419779912710713456446580331637454431086888315580384345040517118997112442241929036409588386235692322260624038761788962911068980654995598002258121287840094989384449057079124287594350014627396962677126100339470021245917556911663875367559297859576590167734536466187422050197329357379353111911922577236641573620169863860679070264090840876728187246170293378286132821341284084671156331779585197371276333994256438034467111865235782779227998994966325729836136645245564840643924167651556220757026279430594234843719177817978986508018081917028518174492266219235038964246764505308696445929185088931306154700770574984668880248670954831345521999833136529202249570957418311189007771251043827521071364999059954634502685458577297731097568372591515861930150452300913365892757612651028677112983581653309618169007209835179860425491201071147850322512704319890393580116297737770033766696442510039406644358184981215192618204138674135169130887242136893837873421371380828736559766562889872426446354916409311737036362542309554017203411696713623183175375206905446702500059339437337931183183907951169588260772299129056889499169771505508421469272074604380609167105489667978292672810757312260417620404921747267441675440777121294514294702209305615433956678241314367042905387462476143714877040101082386925405467100143024321426223139491643574357706008385573384227939833273132315648728213300351827702363080448716211351386039771154987800807690218724331381323984299509136890504021978708237622658010608788064604657753732248460793436382082478366669123491560308892404978678964098579755201922235181083450730314893697010083996310284760445360791142245695935176041056303338968154048121979539804145360771336338818607719197775005787514644205835750834697328137839279785529234385934110922363786914519513400018787596165511373877125807751254336932144225925484491126823186242058271593818840656203390376730076249217477511278598375696214181469082304872176419475405517755420438686062118144472498550245475680765166363046585880512073863482333029454776796401167456878411966420363157284411266345992712522182462131355294179145532727557569007721843435955420087664523036008450931356299039809083870711427115868354261761256922402355060835626095746883059565319930943606260256587518410780218522349872434511078462866348399212244558012930616479055642781454483916854990038245484750378625489339774920064745247277900563878377376560025876704715541981579733196086759358212386073746797660551779985465124354264701391190141425398356288630223105384131866373040997024225882645297476467349979909342719703449163411988913372167832196962623358955950915143259449515654381982603124484584437092264069818772062287861519765227914734751292994205130798203202327094882517853726126195402396351285179202257177965012129957065708055199694935654327113830402154119913347381140993937831722651723020791049219251205177391754767389550205557090380353313090605813500862168669307224851447150188187005708187621177063755299609709227675000674472184177863157922455018723300381488654893038344306864487645742680336328365540645291513427625563493408104958176195956191648746648659444273877416249786200495158809640155222048835675573064995735846824225462601788163601777522074155896287806033058291711913480913601784202544300698227953951818411813995561382424838961018759354290143892114536627735291077598659968947893909659125381244099359954288189304306519771438149660713428012695414310498662849670524465060286235058137482890361321922167216362556478191078614894445169515520600270856505847298863026574110697473981569892724223377127479809488684748820386661819473295630972027833205943265289663764875495635004674431114593067079917056758606114945609852031015359874264890754086717539326879596220650328770303670103931932875550946046353902948069034336322053717102463010154512481747449311913486944664645257521644896988350176501873014796354211144940609119351605701129826476628584984509596590224440399256277605974847536577478200213253874054090322048003620223174641514243992822985876751515542541090398510607461854938263048126261923329863752680642006313826049221081822767897929114964748936444346014639203164571003048790919299069089705505613825358620104551346662248513109347342664320756573011843772886383104833872858856288338395520249113427437170632630654546341013459267944527785539086542464047109976401056136145154017796351778744639643394022497422332032421054082043708385529556802083556062616515555505529660321590265045420562186648557975474982104310318965995113077827458931626903798622028409256386598221219750332592670268207072889166317592311277277518391980854798269789558849068940279049431442071453456378680618421335176204051245902009707012341126134770276316705108864086839711424519219154195055367776375611879872491600645821139080204837881107136424803776780341433815348558886957269373737978124752008887116815258889132292585831422656785490674291230658803554531409020870588553352982091610515789279980150440958778777360851040749013505377558883339948318220112627212123298431154937994134807437195289533406822599360002311250378369223827978586439011022630478916584025763067462223922996115957128367935086983647093960156972215088229571496742747566167189675496094867710103223864161353591393883766889422922789842330898096013266946835191480457909213806879498673603213492795725498601170798992835242689581594430315003465084477907680078677561213728673958734369362092130718696346261316267159199746534408145539695446131775264888090013499536450026201306014177122549432445109865591065511311690548152326603070141044211178546108320595846261986342609891754379771941458958708979023555347354255643468095588195567585616449338120846903231072113533360875066256742403182406675626227732837379641399494704379480718271125357825762546325784259293186065074123717104879898794542689600254456207177241079634487151631679654025060389731473507355962603686727747206772808736733116337248711872067484362324089652826089994311127749507445299312444084136843671781432592458845522280379936961870062091104129868705940320463679034431109651617544961155648021688869583424147331553250723549163746348294757092593832683559426720212042879009533000481790652406487692481893740054327958251735428661251417572139124676286613509207720605400619044817299070084754613812507469684164095763809324596940297715783667040620101377745481747311112361477639379418874488263208552158774772613900308023325288803018105170752825071612862322623201003157316017007671537090431904982542586537115457571064664797514045904362091821786887685451712532712189936105012385881607310054564749432305727812197181141047448279135479613702341214636446079663573775759316796406579308687839422016848143566180909159704558313909379950853053913446946092639137331780112324563167895027730442613571003200715851086669558163465741729442791341186437929899796712318852205487299652281738526816281353341587513411994446595910909674896406276525523412267627517778589673582446939963972305725832809784002758631638069665580199592701495791864570155210498941759962381170642127095881029857668370668863168528301457699870293612412054365687806860320831786075101584672799573032441074791595419898922717165461225571774444977570886277219862573835687902044570760470594464023589924305351576599213830073515323278867186182180477049087640788543173965004496205352668039575713851495442861867909585513360455324201362279993572881452284387872790838877499904351119615910610474658377890099211524929015274414860043092255675979813870557212819675870350708711728941085976215837106501635301983990265908771627729380158320010828827523132014309157377931968621623486934815096151907614185700066630610513300378245743867127288196246692577324417979242851390614863897756029137648628759783602085545873765549658886414886891421728805930506117212545775948559988682049063660093732518684658387502785178034560335011386512579027944624304261326521113957827640023505144417079751560432757125295067257539562806682023543659858982998716772356175216588153481080601749211882675567606394397569519959838169511995971416233183096564403615661911134532163963000479522587792949031730784274232757604916163965436015135178488571154071640541150792642885385938307873413450611023187981127886217300689155609038023683652445966627941241314569663646070619442439923782057465759865181039287774589290405989403638390850818752172886265012265257227799802131889700996482348772637631231920762501422437204809134756070105262522719761480766317373285576274265866403996035586589058251220276248890634383418513879412777473597837706172225341176025321421618606665330542615585499146949312301515844949454097834430971313862037687429330295946523401690979966018637125825838692582719543686009465139774074816683201564554261458095571654696214243075869344686934879993890938842679861995605043542729684413442192452827472844525455895800326257248382535345080054572084352289328657351506179303927754823606590067815007932787907535935078189919565375747673758426962965806071634744351097834028939631065314563323324069761321188827848116900026743634160487494238614826706457793530432786018458931868550344877274225447495943838429664364390692626822641161010361005159596113876434616926003111728780176702691513220882021622966494480799072697810716331092003951228222339616744285384436656360679026273128855169436418526573204951914962923748576624075190930637510073885646404843951910142303539250846632664987778257183884580649959174779150102549896614673030994881037479602134616934913158944671238325875374933971443412092718602251356206747455190681337059233675337114454381503248948968486998192649020623318487073418128045535825344587789616626077953665879354637149673616605600486629560627241993166192486310026632802608106664497024720397189653467539196965278850650494653522445531803237079371034121511590224865727117807269687090202551319683377346702270201166013308453050567029668641641057389979169409848788095193609665311784920290000359789881954296299467870086185384893147581164322789155664910943267283472596817720469569812028615943746816835025751706051400345710863714325024091051738515930191283846778407112821869491034226576894942587618700927576284483860530866745628977641223937423798695789285685800356166983566446317340798967333541766088174895019559684934682961032730339927634578649279451731066796231322978270419663048252909510753816766464245037663152681587115771478473190570304526736557454506003951810320746119562348195766828059209167449182707554133685227236519749088545152832447964859679733819226578994269875946100522198981502521112569976738164318533664401302893525680946368003605013049086647065283468230938646683991640650412673998724327865377502688080529761727453815285931760614249384761449313704679140606124834483516651015578585535672094990621778055272632887880871381668822036926062145039530121918533993743543630125576512976383038362059249661717602563333050526591606532958782059272469358204299809849521780497416872838873635288653790112255377387188663960365450040755220474370112011147929800672556685490258464653747275952577139700489222489462533386657315795663625091594386908441848221087797861891439336463432511808510796523703688075695077930661134029979977551365370903248212606166520919348760316917623564685731572706526450750961078037638648525626851637454750151184510448693835198450043816901261993167742371181892722663982636640632032473883407306554359132077856364427276779466691744801465813589396803913901997016577160638307336677879833418507962413185642148971664861546793184693786913309509643127660526376346816575887767881049489495524313533566272309483358390272957434880908721018090270475198387451844290615161535321251535328198030688248110121339918534136462870214062920632828551173072365596596952084947323846156288205859062407388903000589066134011108319271515669426141822751967371377739667436762925269177384305020521005640838243875165717916655763617340842658901236212595068765618053068472852034564589038886630554032250845237211585134253580374191741700782288461922621625738573764057890236471487600695861963606211717097091977603445641841868977196189827689054120676137126296339707957293480757686140963583183888749029724565294733292078068752659931210647629220325253012089515172065373076226388254512420346809791568444134975432705203062983653712759079829211397676077049662730750374470724426066195904898999702965689851415135068894425378296385199929124687607965376058422387646062947881007977252185761442407158152270469831022734794630665577994520499881139664182090839109482715937273698328952545463328332553623994325573283518987525327110427371304165244303194237053929710842615136253647574334863697603939267996844181686039010087499094253011933853472229254634272074507084145696556208177814249306608980404606293110841982036454834883749353690967032484574485406838449286372451967522296110535562894414916815503107784890468210384870885507486479332031463573002396691496764283066739692969272847141997130974427823022424735664687636800052411451534075910755260449735314158744673846109853865758191768811076094228213568407774381593665293693071183322764014646085401958992660390486179807595769421747525367822544748060840898557503898236363433812433918874624220791712711465904795628954651921896070258327412368842308457409996778386904629757045295647422754894463924658243300181453832855582066644228136508401658513391852624079015681438704925490828636134189426538953955213419446012009971890627020817704208001981351495648427615359166341181107459749012502534928800735428906066812406686620095866653781322486230689760670039806992893377515565804135957689752181086951112622609726426728231751783987159941563036377111659151643091630807720106394601774701788385263501681530208646517876832707563559711735003698786827238166008243768937551863913992685033073777099928333876772555596869117093373697296629379226355710662170264187845628116066407251311474873784042314810724286770976244985355400982123899257966352878367058561387059334149268110648759504850364193789217516146789174245758473540177019078323963340210371508851209524633022927841809429581496129912212330183517340818814316262902385736049477567642562173730624690446430696591380905441823196059259848688216179368780872306782143771108262958635610530424354779193607801680649147175877343437971442991302312161831956256939679379757774390559152991289996034842072072237154542067475793566609284478004643046836653541670193174906483809574480417247007944473212549389143110615815477967697897724412415435777983811208044314306420448490984801000433306284806204663113014524340602789530599179534670671268543484903551845204957549662561237655159859207553527943924926289074654960203496399152576063820217223370318556195557733137691658000717290842021458733098576845977404060827761493403624361923911183496448067673144447942655825890384420712707826055132164371674960412154510518402708165869338595328748337567477503102324960325266641167679876017449375649314281918962117723901623668653089523467460571708340937750977959383592561145071666261765062803840405300081049403629198154145514580863299616766627274762891812826879944293479097184732407696829487190109227285410158860520259504616115545373260103455540844897887127666167571811075436282120677870495900009097070262723675111336199617530866826058240255079151715333429929895030367765331525593660251172562764947970493398526949008004472085449588211500558451735114290658437413833910164966647282161551413108484435869667349582038012545730069970462861902261291757826905158775457127721300706471146165748325091727731016892847438620452127426220518782579184875659873766443223291808984718583638292184943286331262914149223060789015878171284575658500197304967486367090968185514195258498846244305424302368720696605550900107699762635426405172068500751568684140978021789800992747699589687591492748801134692366788303448872446879298614782975244796742394434649182677621341547682354705734380403613518902692897741566910260154009839361433350895671224175848973537228247425867728127140071097538908604304381295316936556570865470304587738506562277423494880993196993175679269518859544722713494165482696754827596136797261316629491003395700695378939252192880151455945721507685707440688509801839253420443275281020265330731637445755558493505227056854041518217646791878905977466971989320397511244738392103633222298715963355388861439376602076451059670553613327899860856634008848481015227263320838639149797363927933582858946676237989681727290379693056336826200837552193579618245362209860377227637391515386694867476029701207807258233832680958054189657851676518608910892865496852926709261184180897649379828645063988051758557962498774689795465575029919225434529595596618355172034337762332565023118915775638107763333161178373213032336531301337610023555429822419714739143876099224637294613902526649609983533636548827180391309645105073860063342545944418025780779612280605485712242311570665180258869244165172953024053169503162970391500295365515953358569682690196683849600486101595352146352537617187843333277338419526839645303803252792412044154721536877507680563542369767790335840222780439253747142012486165228662875252848605471040362124816673521172636924480334332422298787243299063845043078443054957357028832398466231324427213665047098866835498567514157419692136480467216331190935739378504831026606567517469326700636800604815175310594461629000348997774565007172520708384265588929454420617985469023402473268332248642261286746320026504937012379290229468959384402099194063026858581040912870267345537692439938943182475568371165435226230913627212072724045704236818339931029378189656217231788811023356454649013586193243182703366034803783627275585123217689981270739588683447129607896809374562443933120139341733903291582642207696433728958753113006564513658452453226399277708802216772935212540457399171481045098861123714536789819170972743587196327515471364434146051008479116927196017004356000717415173593401694832007795132797872724733464485014773516605829035680345459383484653206850448825383039081701825261930363317581002141497535723582754937612456211818734059930115608700669224976306341823134084269244301935438869635556488838410536941686213622219154724144662425181902183241549580635189929521622844725684171152535710210271614663928515892959871375128452086298582720941476715573861854121577362188207378615433486613250449316620328330402319718846007481523239623185098619378866449702827640435192862256598991593370437721508455256057765423640198913405324359842807067397935066575538128722329537094418499496528204311104908545616644117644169580211120969889194894556651029079422594807012182467688125461302852714215574171435170982179510721950450958714405899892295949572565726026635395401722845804299288697008394528004746294816552578024006252027895113599194808496599244519372885835282375009935764887012967529118088088508973403330954715083896407269386985327590482377172933726882161865474309712869670814463603800846017329997171278267049919891711463682030541356248692042957452365482131637392065207246464012590814493590795297597828061005922316090186835386964004160588435156637015699453501230488499698168485959702929281929766071915644854737692127329707743803357574312008575322785068807913042215580762955364079077423298261452233849489278441841149689412525526743596395540889826366104153004179511592160977484577212147084671426678526461767869308676591408049257280149681583321461041333356931304257342194752000023859651037109234961855612173792211645576032353758563261243478513120795763799398957545745300971778307194066886396957917856811433330069965760535858093491645369623722760148518991068404418685215442559563683203339609346072484312759266718064001690151816208635595958363753354985263487621124552833452982156677573377971473417239629634437044946158556282516565241010940987259511507688609315418124662307964808564023563596031262649800247181855510788671010655399744789249241865451352805878889259950406028846217992517741173960014817220884079307109947429755109511031807451536911195496732753447406810471114416803639168845186024870369426240085948089616245846274850960944207646148471126056637656541500754723579110618374819751230668243429486965565748005818674337407460555629753534981783224391088786492944352750264028326246630976128228854138777027324674494100572549786733851868993718238567295146297256256278204573290818165729550315717560555130382295154386274924801542432658867543745205935962799124616697199354520135213263240306274396429817814258152571059398518873244940725441314991597577039502856331538535995151706397490835208873605401619854525993772129594317547193557077233368310540567357608539345858570749141290929545335363787268953898914959621530573963320513021462560652545930295850480864620953481799176955742391433117669401451276111546414013872924594715145027257183594734576060101554963031584390281419634535399475585502763403584334709077029324054164620305990735713830848500585644730330585963000865440708554349599474211057463542884149642875427988488355356668530210926526042799565021559540992847003932889042595527153071474197860523567906065299715142300992899027026199652153575428090660099891338277943270360062981089153452984968584016986067665910335117218197234948933885111423297259081575220598921084412340780484488011357934631121728595133701634545038140022971455660704554469925309166199654489836206789901521291129298235081969591381335194731110422030473753643489702046338084588833154666751908530580266105259795952774188440582194971706456375745724375684116125470330445663207076509502601017661286125366759684767311682491544525229796071269368169775295465811544806201314255195634318122460273718991011189063808979341860689211119723996591485968020071690448596170439040490853302051377673181963325173514647190550016931625942517323592406369635364366084629115657621323308312592225659015133066096470646293367650163913196842191063612766844128676390958514441518923789805253659773794902718018744709843592328853003193407376284088620843187408053957636797415882919515902933076990095709364764608610692441271645341435397116717434124801986092678153816442288227495097386853384491986755523610788085938869958706650083640783372776271662857298399338952874414891194729133828242164568612346726697950408632242707698351438826836602695507884931122029068681269777714522096006335131157252282052130556778805980019496989721015261363139492802724946516997513367907952033503878982349326709552357852101528326013699076953082388092108949498287482839959773586983968361972342874519321171225697078982167495701877933699132204258802543573575634517688147606742683800151300668580069696356850320000375186417148242913723120151082597401358620946509856706567518329973628076686622095937969513975846311811874599900155933311841312185700287140926916189915336910301243061253610256325956779440699585063866192379218595345417275499448661196598822977676344982808438536025187470019229322516701168181298359907986898022000103538103695818999214404414563959197601282667348882530599070812473434260002147714504127669698627216481815433355729386301551594640477379050679116028335660124054895867489677496333093481306477877931206456934105031225858931915462070288572227791997156093591006757703958511924351952651750857106879333726840956964566578909463138455048233296181556659024323975232032690107422718146576995630595053397533650290920489998248174980905500825108473062955761621674619227898799809645080164523523464614365356315969111247581777219609079396566321314890139282997761151721905235502040814639272260430305804381746066487428516999046350839313246118079407717775030165251972357623026787116693746005110852626131935073306283019040641098559902823122343470042648091239026479195536043587681638773953847449669048570216631079654364914843968147656570977338428300333832312834304486794946230036309162741220442255863547745291547629921248226453101166513711058914790308971428849894884843871489659242241775079494119842191417443470905851934273163434265653445266646268161273126258933305177020444145004359122706347481795412381790178394383669793154405932202773673818534362933003708420304426880604810032350404640633964549123864710013458970835354642374393112202409535015692085201997649664340089771395474209382562383241778619999486959660813503522021370784239356037777441667087147428017059879051406723053056819728780774821590166174270258687421218935859453041678125079646910916688976748828804826986693954044075384757112113005795728315127992242863998150285972870527534939194061345860375823047014307660947023403169947968942540165680808487407537293827653988538755441052891104667337917982459053394421144128861261896180774328024329494375655765745416732035418332766979387321747329594544092180138375530225740072022453043491258160691699144531249266467738881253879259634735676586655332841856733350489533851590557595435553309324159203445508257754655763328130798902283420857392765397716898325391341272318817959718967043804343377337534799618879767282295306161755965661435785616487554446715244373857056075740304565277158458753161190924867845070905248001123657846504405970430655520313591817876153594469427924507842153418666882877611239413300516360468576168289321927096499790534254941289078087228622245821215174097433434069113925595588039876687353164906638746723899312160658428036277261663097875511498455666756270294277989904516760013153934852830474990068372964322216965489993714749989995405948875656359602616431964615676553313106230806011188141866034462859410074220497254749781098441613275749884185162579522636945378230051997777606749153196766691490387143679470696718126437763371424172756473952377484680468175164805961897857140052247580148650684458805389274048632929620078881254422014586930205312883378483655652544517546652768518655526918138294270471254541760857133707239219079626662758223029553032262201258935801875212980032761065725274337417406483445078532036551927322326972857428457503893854549857085106401742075664218842286299534312886125056521899018991592228425061318861078129375075975324118675907100015511478058516298355836810932179217430225021607810672010997984874441307473278495145709515538724975408006484560427019616902497253915644541409291839833990197452825329720456775286400158231565109888823686049860263034841229723236760125084857492481489515026850725512364732845746244657516968013513477531197479914595755137272620144584299623375311680241106617375799834908832386872880852414639005374781277551666566654117495496730044263505988280790990065302811151588536567139231189759179854473316657059634006844789708352802805169311117076477407951439395835229799324115245851479971246928009919713568315469675378175533518733553859025524247027634378467182457022961154223404859578258784518550669294260529125823010736057729657639866001246592031690926336137290988108145841698834392410270158834074236228537970107685603467989320713989697878542865335311113487441052499077083697379368540232481154379141130798535581010652380633454152835914440812162750317940953914215820199764330472042309275486777163859660217413735796506846494124683609803624611310107000844277091274941023017606718702489422575606352888871775226979034429492112271217706305813795956894618555066383815149984425809142867890811200174128381500440157979005917994737112918385206104377626386120122829473594899743037972450830523451728360753276522547605349891745844877090413828277024348883565068779346836264110146856070004754680865553199340454102792936328890852961145930363252501814941199058586685245548658218218042479556574860463929514828236846859728410998822131127538402016540415766981246085741390736073134828000732096357079609984886936785251232503320950110665247442418532800636344813216543550073504352790522199513691056156309841359737834311703814670339946038717131898525734584029599939226790080597471384391520393852130712675551865373460977588864942534569386055490038762721424463183055907789424007952824962265366844065204419478115369652442691911422104111605289891497843166064235420993185561350176963280895248343239609397165848199803552525800524676332126889510445440382147104470497168397278591255494364025235731832084428601502780899229428877774768319939180380244337890951719874101605520525754395299960438824123954533206044359838867498893346452535862421763359713290264268542731174438194299383787779108193310741473136077728913923296442945939173420941834835483249794264560448953320473172949862231213913501891954520133460634219629611926315406495960931205963789030595030726118619032017423366987815640370179240278879390801767463527236183540432411787065777230174258625988486549412619919968801734425478865086396701804275288001246405429618165785402532730018589506668866685746985799428013535605592269735756020674196760148023705644269193383588402209486081120091687522222921778681127668825812889699032325299744111490864185446258388712355760176464190988992720469271302331296035246652554991672046017951400373769783464558112957730198095590453855777067095555285984910628286059225086035752250615264398751408668754793886225711204881788463604418327805177814180889825817180817476506428550113827435466442048695477662402333228591049031599098773318722062967091429391539977395353338897750577055758464715918772502361617358934257626867884085306479451602568007047601957604155793819245813854929360872348801489577730875994614858614646623434573633670919873418839689475817727551148373607682209843866707470453945468924723134305819340849299373847395730090127724405576563560362894287362253754362656092795235510814968073485722235910179464961721467954911110295178040768590222699708579488740282970258321376830066985912742767570798402355953783267269295533344792733786248184804754915478967184576343843644866897262715787693688706479164306688076996938517182147605575944768123242003754005253232063959061378861796157017193767956764514105414242369744397782172335721922630161083515889189672179048937193272740697890126505902119141055475710256643506963184970541209177590261015618247175593219447857313398498410858191582228857882856916081923807468665179700146857414692310146705962434912948685142441131800883662283983199919717618346060375526533981193492479613282428623081096369594779282458601297412071318382679366201709952189913034813912771574895312077394633127492785596836532736424744597525927394552368924889597422800258144578443098767623677439268415180779467118240163616246962129500402094447887456862426193639483240775633459625449648005568892341354325000760580821795708673659582594012941910191590578237529313123965352371283361992233119232093697122434046261612101494194034307937661579114608112143544435476623422451600222313120471405887340903608085313826764948520129612176652573618389497880509951805063735831567703076365457981064994910943115259359179131488054603446614942999435839696465475230389998484824336453863752999960805011557635599340441922254383781142209415836541971333644863998146611656491593051615577037428206113846607739035451240973533160504397144484584359520788473026426116592819227292356114460519952348919077641219693348852524948497271293022417132137994949642703941521882858411288994684932171894264085721255630108063940851374336389185175134005345081931699033049848912795957341330311991187542588900267677229934298252888576516595037805334953856352547535198534785235191657374456785246308852325295277398268884257362236155751627902702780622423770408356953539707223968070663519848539498922964185062780167094505186964561937391681591471364787422315640765387138818671078714870387456955536306012278315248906558985393439958599737220759487701292430972947186141660402098770397523808306761864024048993246512501553987021040603637081530573692112107401784072509904597019452641935083734812697389463358324993810730114476681507915881346121765668683054648728630119319397992718175180723619581607790427182407243932992239604004294684871200567645576816354117641157193896968561795810872596780709318908596507325161008545055589534475619189544666773025235231673936960770253500774303000895002799576269829552561798137997648457949489889788990047232224097246174916617229141131762009625727285748717478142971557377436352036523350674918577047651684033692975431875966263353559915735266187574307155938045866185924400320917039075503481948419226961925560059084017520687299913559728454919825648295400472530882944152445702093407678176601895148849231364560066673008476911041104282715795741368137210746409282120749265889046440848151917095311296420765491130981020400198324762964739625649918445711000571874157206468995777384247812133096046065059603121678359612104724521580433504214662628063361417508349903069238151702487478916983612096698590069735520493827079753101164841985032369837819789260475142917397473565657545619469462969161649372279352249443912760448469544082621531063908102517326798376309248574643190536445428975254439366350066704867148829504026601066644614853234359414834422728711726542378125626395906651805263328729839400688394720123577535978011247528013964175316832983260703879445201934985178051012296134620121507524279043342201615020298134104982034308414010732235656977835985148440959868859343934325932410554878062292219731039320625692873896417505618607733436614309187561522431087152710562246579102110980446574191917035886910438872499940322016308996358812110798521147884104572448391598168796111229264117323549382105886541962036257010641690777369436241396713108364411673330686384071261592336751748377146513717911728974650893961144962646990563066693543624047434367267238951949138164054507920326304126015805054074774240476489371230901294088781467513025669040897238068447524034238192984627580444936019841689566542244926186118415958038449716440079828558496356219940162887134141717713006528444920562945486055361058529800528588127600443790727194802754500491805268476181715368336221620180583052393636625057271221084070425281290315284956816411967040953634299083809518759893130003759788470860282802955808514506672781585244635993855415623745581567771134724864142471744275083620202132007488796090327103348018587445819872504495179813352275561240690412304117219999221563099990162323479965115652969016873048884011816469533618267099951594530039585511376464016027665292126747402659503862929174060188274278592835274472574411348310035290610556309188072292374889178120617531989804101343027981328901182025280720472408280768521036384659171066638841319173139408709071655677777879213926574904177242917216038102579749053457463569282183359852942565366255470469077226618025851776893051454562713143331008052747304769138694478720214015157458748299390770097973341295907209095582885521711776662528981020558722825987152640376506223690359479430330617213242658275161146362970612005782848418229481010062827181283213549990321926974093033403167806107369122207024252695808799502801102132468668996523496829942692988562662327768806650920192080682079464756396414591578258061223273823400429360495090311977412564232161998929200541072898733856995887052958777310560110066218121108006623808412557529202341569340568432102298945181173156643931008661219822172572079499997009410442274334380708938503362477301905790742622724139209083698243861198327366021161455026640334372477847271310221462260253004994851125393344161206480979846500560096679262593150724518217091110571441876607442268190195262060256892963258574510340367050930753721224502234793648469437383424088841255658749561801577661862456681968472412434883482937016430338886026422459994062721209756696211826990407934644896380534185751262000333240270014815338703580130660333491419140451993279468371318978475339472996572784234161659899208750777838623316685792937635847663330117656190147156960955099374738264962958296246494158718006500512760362788344214642926602153554945685367900584500364403597378104769117455713314047087095788654073346440609461238797217005831408758361467348480638164061105743779509067080244373697712741570191525617069427918106927827275698238419004345951969947813041761836554908665693113798162677905638291652423002955140101937236459067654014829874195954786522746759729868839595799102659791437280462120579195114230195328026552943168179715567110848001749611035757128817055357757104673222703986035923037698834536490161643960547897287598554400863691366334321588254863081826595160918415129416687298666637448208378969719164369530855449544139494373740447508297015597066155630729344058920598278981202687983830126067675816238087327964523535163588283535869389319528819304021003644763274265058239962206221441142824497481397619064280143292005629680258674909934953053987528063157201700699988979421887936055499589820232062525713361348911151184924129412178281376502444574966166830106722646658109828876317680714514626763432105556652862752931179326236889897542642713951940994450279577601068338973335576280067690458673279222543756630321303470517044519822958787578861269979766709953434144471272143100433068445832924915385244829568884531639804066087532602408111897222955844004611955670498752636670711073838584010745008382033879252688693469794889834330303123945176625802329905546555800653275814267995681365194241820484127778248443229745853998158268042591443627165319899902382486445320670813371470333718942449584615528648081286434648130213591867203923832054019418646628011844534339268817931143882454835678420573449467805837009404134617612442578697220542968773985564203174232791516788183285763099654985535179878296569496063619251083195526549810165464121519516799040997046606702192039447312783976043826672143719465231496071412562194752944013963314993048038303942844600530163545602098897321724535663075925732290899381802516563501775265623481898976517762142009402554930542721987768778612823749063143121371000225357126090426121073297459718071901564897444540456898209173921558555014013395948958537222270506804931494702555307480595332858770976635282366024154494521206842712858894063415662190227509985456204490141202125838306076387689209939842177035849168859556890508433345022873414010631339492651020357397854221036113070078197300435090551194466819840168476971615279134204998247998209435661846413767430428399195892585305677041423743434106754475801172945074316102178479702622908019963239002914462681291856671301650712636926792965849815551522248650882574478970502608332873909129901320311827513588352772729812484671308317228705607043129541797732958754626733029101124565514823194457924340223753345514247354220072593995688307405890062518696040164155415503952208406101893078218958993130139451448397155517861820221626111874829672222503236363526713664986231893985400940352025020496898863095311814391780912873184675470412194330208484965004075418758540940593587818476939708498481583259159473424950103738535724110072202516193316761805628417477603098753514240432127058421452558632466353362210089320803008840897259918692500293724854866264449973753646609948374112684286247698936256706885430553346139888443550494894691827162524594097746729512106627225981918651431905672902356622996135548004386843223977473110689786229939594065192953394872595988724576169027961672848431645281832621030923674346307874163949835753023390536132133070274192694810944841441871703504680015173284710467960496244116711265027269111416615155373865770058576753873500217393989867602603131349994088725422063911330245450967893338247253745281285862405714735116681674492712287088102409186068747420373373275037988774709723345579135861729507769031835878181624453203904450995257844586522439045046719324744862239134108553137709134898470387230925993811651037503199775450312011694071857725191143096862699501661197032851935147648234793168276653655540127419215604090989603858022865926887317175631464826537381392274683836034060212967995859101856261918468622432204564310953494855031395257831650632154124452631536376249317325961332982879946937252686710941549777458090661245844097632334605149537941191170015700559119135516915051014073821170097322002951692860992364607352605249680646080793001631813751704872623900882231745239890666196327431369966194584347316455034263675554028691873115258641504899468557806320293564589972148448922068437116297289235842856200750035332233548513027074944004022770117153838359350298094009840729993089516814015571529139961509433075621258376973691597467656178231062822975889845134451332379011433064481641318997735568203442358326721289483402015586862636976395663512804642140700703978251823357669858961239814608599220647942165690561519144016824264871015736997966413572965406982688635998845233686186097347532586843815417319103901532616113276648527099696702875967082811839392128708112143270331976374183311791136719044460770969549314259314332926614333945798378878420720895725855706619223958021750754268120204301882649531167959130682910124446957597426794787702469042437751721845690493254944087777664056711856595046860333007436218179790488252828050985239636644482502592409808656146306844088862618616746290522491467326314005787189583118553202591770270082282753333682310403760242913599531511477189284242039016494539045642794499896802996541093172486142852463183352462240338228152309753716959855894713382857456451041557880776654359916496285321564791155233265376747474914100278397563070853541111801007612352906917480386573906706598850491086685135044686522668841179471841948794569605860573981067207908808121485427704674490556386344870303391642711082905124775568353573626907402275478780325647783053475347167846752717163284839042319647455293202669305578374250180634844478358522533065559902152763125601364987825424194556965051262832587469502579298628091258554328814539811109230049285735356830355398377796463620431147563282364837400229453806340913275505794421959556906788365755060091161729158730766521124324725854982281495890268718120552276051347440155129293088593048934755950760787339913285655866832415315061248935769665063681711799591780622586368296782043768346225033670408922639219673449480123299732957266471804683887122882325276874705536289203690754385220105331158834262602803122421591678774324282329878363064083739953351492220136113909007297583117000435942385490417311024634808520962950504607299885849673428361256230877034151948253948039072517696415505782420475337113521617236970454790076532149252306842892457642575989529683472534593829177941596043259611587865792890892342266192393576994500401329201938743535364192251126521066730719495223144405544047430443765538507173495998970772087699277028315851944403458545011194938284634744748931430275829650354774137971859185361044790713578971608906463019048611875814851374009017698757933052397417503143608043222377625860783398051589530314097683298712431205307306855327868705469700592921869809770536190474758003161946282624915924046233913164690384832982405345899998216415425051947276868842282858783740618772058789202079117243306341180200735664788049160140847798267057063909730929432803345710185747701647312082461181088916413596348188798167655376559964625363755047122015620765169267501080445528075182802728666959388870721768156054676998308705057139964265167897276587985465216931030611472604674856442735701182175217872107504102447832481991330703531319386174011583935161651839927935735739231053307152698291192479026623497434387247397483104177689146266593416420576174175759987411952529444305513658598365738595209737664430846123217271097194177787363572856453098493421510449718010570412094585556653860928501488100628307281925511167135512681398550257084339138839136480776332096951443071777425790404372403812167088021001794575790953798173889147349410298647183122545291464905548556898335006285904348690847725227027520256387301534962218100623145110315944501724999492025677858378503289917019568321673081417099104350986151288616275615462357699704579815230091748279267194523580134440106100870606778573590944238999817018449914308087271408547199846560196184930234475131865843544055638876644626627250534429575268554105904698291606489926562334305808949247649996111396162942599980503173694229686354900725200787422549331348886347987849510637626353334594816977454102155160216713456985330398155753702805409886081057349994612734770527402674638759744922126650731686477784005592372591744178730266384350011101535887171177890081233189662926456842990515383733483735687841160350010424737759270496612763716685005739536439716900457460089824985037041562117023792925167900096294257838637918908534874379347172872586372127828406970069740588011303452795449301274850233254697804791574095675097372805889994179128585169949112502095336746956196415340877875898516309070263793900929549076750656598279821814958063041807732948518001600635201935833636307461576052082056109795960645650480749267402400635487142598704733330541532046399483690199551249083555389563494708159020582782953362489033118428942788087071831930373046945323725174764654707508824681491800970464221692505818548475960486308260871659057022922864162510816312732537117698411830473527913037997077455139564926023030712342376566163695334240849686541861246152930634164425806568244172898635282232365554258787773213327365178365346585460411742794900718671410365744466859301335359296382180960688174377304858829772910906064276984001493117770844152958979241126043633720763413013045667846295418913512341842331608566346188916687813797397452418967788205484009649105497751581757544369220043268715439722673527523641093158766065821214755004869726822266995366526130612620673987820346273170398859993293945953812010623175178120677539398224749747673889146673513326127661606973498636934562247138502116566731712752755509375244164385812759523985851760424394078059674451583105751932564641200284395563659771601889998696621696690426714086960267185955899728221708777009702157084933388050536862916971716896907951435393191358673465127986863342031502428455427854399862997759248403904830094576858384971361482064116102294975006048267661678698588326407341008633840487141438654651362929758827736922071707497127104372401103848501913186880072488994131509397218708926619507913704370671928543621998982725723388526090851251117834974579906840420904081975732700842686142577605408899879584876474232829803838152802650069624113351597962649323255128882360439530069619266361585695767826084717841049200456238188511262197803464143262518807797574855452597654388142203175877566397852034705065154226274197356352017758647645083800970842758905213209994774273412005592887575629728389575509003186648762279626443446131492476323172954743482175721695951027041823377962475580053514565381502721281433944934532868172618999890136938011025575256891945265036366135771867408114181794405533609413562753346306727353273917166652168228769799335091530968918968596516367527383391614197015188556331558197833874811291251527587008655793410669565205267570237963561693814447269537426039126754985304880720925816788434615983117572634164746148201783980246105052719157194437174826415810531069627214253649598089780580144072067417058243792105074570233165347618325246062693376855716555479564729496568106600711366048064377781639783826715225784410119631550759695747476111923862297067312077345138821956551823096327420836374561279130682280695074275918044851732702967448544333972403055480608209391500896934024033831701245652854811470215586463904309545375568242504862254320441535437111968548418591117818175558770860692111865270142951825636510581240827626764732499095288181260120106872991226413930901652282718373457700129133440445919665512109765463434466844408197992067534539472669671449621639101151196987972961561416514528636173681851517966363263142687161639854015694401297415759722897728896512089208774708579607552590028922619559882392335960124048098572877079206942471583096604981022256951052989432262623303472665597690706295198292787966325868106941422274664855817631490946284632180338339007233063447584747326794714943609883004165126052456467154708799216471197959647153265820202823512641703748506793046557701714632339837515445990235117855506204675816603549497403360178060640508042987656468460737069094162833706630487847725482881545926190136921765697192512319000459755397325813984233573128538788383764202446577301662975975665587395318433028133218756475951277306342176763874244001254957590243719037042463029994146139038459216357243444112948796293483927870288729289613044536837770879702104853897837062538086990324308505107656450406839893475653964338921682578755586095305662788933873651263824589606041021297583071695248622317244441312574538792856370669738866276512599256627515017769974787755493151541504330453889233764130015116548388510142322473479056155827091954491557453289583754343866918139292019809325726923935066600250162548442046953460170493266789526462142352729469081613306036620931094459636323466783397234500552849520674905601594672435153738364278211870285703968856474868945234974057554553233338095071053365207658915577413655333459193278624133787623574268820265590249971588540001401559161697281068643773631043465372340282762072768997789923921450637401285203996878282912807496733541109620506983095639353925899958873969179463129256954946162940263420620506196401759860492513102345828887808394115251731336747430277607578268329209852809557177888832078051822992725866672046480635525224589737902953777425208609046458995456749020120116920797109303325587133934785912583866187733248580923777527691906981097984792248293180478579784896809090946451706913460659955334270458487902423701734334643527982790664217940801850056790792581648834410655845758221522415339635973642935069697026442079289824635378282203246759170812434139754793190175083105420299338743335505978520531129076341377445074716555688737104326798490748119653528897080394495705982853168383919479689002033476895718087709876354953384598048812581137290371696965000184086861827799855132754829560884836134567173224439628994884024374214921577351426366734041841573635215455283603718250667883467123513871816994739391730921140795137478878493923072145547880084576396403531704248336506988825091660483872601333377186048080629056533546119283845070862993575815444196691230625461048163986758723167005018294648029294435497788784519183259406569523695101681128702639181580557058697815172498624726532536425987092984301675012712402549440439166108913684464124292698373018041324429401028131309541239876518522774801606332745477072490182346673821293039296236668473892487135397728408534600814949645432573767023409420298114478809186450633581672331761725847339589812329186861382272775029242601015013174309006560644845773242515416175952319639565508232531334378374015061301538330881027507266401649419512098230694611679630319315228805308346151366629931454566014129542468271252143661872186487800116270565124031767357615756141787343405591483444997142918253385054621363411170890268548975095211804714900422441609670151207731032370426822327910942299829786842458168224106634213707017849691480791615725615752551212135835439480645766988670525024674093841738917959612009480806327952700822186526449972660419594553445734280476923524342952394531296979947126388364643915422129892622936752161179615546486351361280254214925084348393485093743790387016756257806266450365114222006422871096817410930828205813461063690095955528719814694646014023635159724891721816049102518109662066325639742686967575129043397128552790388432852598518276705127708439584916875221522995565247044019588891524219160479708619856846624129303184389942750388811232791935264789359479338568007300417055391303809960664310431995342552245709921897007292400476106150180177001752695054127912367480402710823417323236652463931253707323967097862974004397137916189109498572278707698971718776083642405950273893473550859275965541444607266092194187943584941115178621437197476805608975414497620560599698220974119953927707506039094745213378769891603647424634814378811124028167544652720182913677189825894395635679755947815039267182094687585150298506360002348578870664164492543300748627133769898140103013705372325165994162587220663654727016106319694417545497565666517019240196201503471622643245336066087279638723466120876806195662656809884559132440162623468604727110175335594142533541084971562914397312469559263891693448452435483591678877510560136934741083105610214521165734156199706867546965868869267580479381001723196078000880518698083759791444383968104652076312855730402942477448279340070536572809244720067041395142904644990581857871784196175420443840296259940806965585358518907518346926238517608888560860181935752019306707735325868858972162010514887922595395510264440543611174521624988677971984449113762558990947961165806335643945017692534272759886638856512954491208636319948790216120339595489788857968005789989619432568328925306409551911163913426359236419464297621398462265119979846545339088541845984337137051916970117942337606620888053010415142888859319145202758241743858429706269403161165135442748922307902643320204280833352479705869486706464911928593218226713217773517703609484205896068598167337575012403743604143888869648504169196910091025167052616975178377326723026788244865063455475004851147891673386676184832530607609904975291213839933985127842858393739476740769776876205060516935683958732601577813571263771883901673125409579624727684969912923214200635650649115543789491089149469408957557671428977954514247839054032436036363577315973335665638057200548917732898458503406997940074530625082208040294488516856156023534431739301413419987049966882830398781092781292632032200958941082188852362057736159100115299240525215444969336082052545266255948069090266326265492196666241714128105326414082612312495572796286576547848576581192177050232851617023249859721457143518224908719164570703584556980101468605907279989341957541362151265424239729564075067341206463912294602434050229018162702685417805836336891437027355574691672639586793403684804506012288988565250347853810946253547684812205775984973643512464162374735134597173012145673781802239673538951353184400652077308572240063765490862273583082794470608688765776241921788327040310818510641071194777115028689492152933763872380479648418855841556961865801661137475703355965512846616524109924168186190147385660704884487903937397650209665865384690023867605739862176475944468976149422552589548719414066367478689883726981654803426826720345357817867783745847073304691606579727203268932282210241248164063014077258649591973649879731628516985986142822661718906602815932770694337861003564625156258757091283612720392591450053255323274415831550560318771895778440730246405162513331052754928280536788632460746941068252853250779053091883818994083672948362541770582848591236940939672746069116332720032171393822027702568004856741307488635766264906282333273467841018353155465033431827557299431224235529433693214576089385807679607895550970242171391467994862745083087035765256968268019403851180998866550863076045374399134549550493998962228352288170851029203205714911499423097313424884684486174936632599936495837833534450184313686483911611795221146776848685881729038934223895454205949202860015505296598306072304093928374439437442595488100896613342979844495359576013180535195664320197310138037095050347893248002312183603080405790951466776672749760089442282162012964449198460608381336496789613182013389161247114506430015863648531141339901784587301209349047759406902601782800441779960552478934809182986082069111154384421702833533757238221386884038647141638853291174710722064153090513029773409727671702634739570590713815851069697215367560795693466279431809603471075673052909540092957226081692571743482567904871923254318364944158801131468756735756197467540936654839923611223793564726688787482231575643891024605279637485780177082304206226176154208402197233214015050014576338794582712798265674128617545484591530171587649041304401147080439019201357699553500097577828990906555709440374643688458962168483909531119737911849823566597249234826036851931180330025316083880208515406997620475001626934846803045264534278780206779973398770646208903004884866395618699819349881116215230832032403479389639468152053422820362727550073665756563913622174808134888585395816242557791733375022853556576333441303902876356582951969664257872662076126700085352857840265250837391029953202561227279753623349585831098336244800386253858054762197313771016394846394264207671135696615017156558368825275851410709673248373946151887767433838826123936783627460142301681957857561798372813143182836707898634056170083225065630880220187633072376369457300179267668581840463578267224962678934025952953989026056270182183283914154099065960005196644319377656632559530338334709113466959064114536377941735624659536400044927411871577261568197586016297765493740442423984850550193597786112609535725735654625087484447813220338964673380988356194408128040464343224332811493264409285004506100298363899339921306446973846174138920484132217668687118743128798485620812667981525869622949741932409100602062117669247521727751909224666185252707776018375589580023277417590860534137108482760662231344960046059306868414482425549301842545467212526204791598188970364805743631707898861903881966288665648435508350492771742134053619358273869286202403794786179207089934195115200950314811301922698143500659648463992077336965408173390883615059550549717404399190067954785740195692287484212061551520914811569803488566819785426878733997491074772171780941535867766857993263139511900534556965459948692552523971234756679378734984050808386563781897139516027479963895692324479873688945679903588098837047059571375664934193829813212290221178598732072650431885935013479176583471934707135763754406641102214546526758438011749113597031337520339729768735253227689597728757163805109834443361276303612980694466258613976849763855961688450904357843269206327583841345501494763088798546985159222057682918190557802395720779160108616599401732396256675716835519520443588905454414946260651563420762426400756740682163866411747447085141717843675487140889265899836993130899815842442005382809892377986956025354418083144788350071785267706752671928153124889614375314997276006426273166016082046449675716189468453651090263189792023820044317245923981154407414355471755398933350955308849890831093667290327576316088331205537181734256355279724846534575632421990792454486955747121186089336744177582025970581949875146709986960213493009698895098647509782337052892447501258027529831931671940939770618030631560175037852378316636950144602229728682069444206442896024773626265891027919319044028982329009116789564890678244130438534241310667485389017159849429427367823815875544512543320259096337431562977247392354290063665051322603877072862103589389468244450553396180557903781215606070263758406763102103657860346245616863088036645713111224187570671015176234542121448785404809181148926458829625358158600282316807391773908777846677916986374138854605402530175084962656246987224834455454341177946799163882889696776412520126594621451863730028437197550070173388558721467255825698261322033299064583517268830203905340882888650353102943112921118565127143168232902703560624422363672804717915330662489071376803539974863401282765542869552453346424662719845089106783789011462454518469882038977061629780433016866087957277958495829704208776395882261719816364791051315790902996531895450157818233752196953973913620577911644397862130781086184722078114002236031178038992586191391948475546366500759386476694707319186632942387067658296511554412068706503050239800156995839811384348490264847864770328346397528913678698879904791209236087473801442964087815287757868249460455114863015207686436260833103238308762591488193202741796973259709415432001563638193579595850400035181414281448064313611885695745774616522524782648544212016899454289522666319812615164355980403615825590573380858221383577025106620186882343254609335130447452420505919755002045489094186557369689001608229667710664180062010965476337710944472327332656162193583166862091606550384083935070306265584862236459947914008365140223448411977963021623645582005394827762605706208197274559514678038955421063554742264604232739744534375007909770900816324060065450211986052930847699651138605144734110796336119528603594851470881818817719151233668834804029964779067391709062124567205870783294716658479765832996289533182733839150416699174939380380405664442192714537918087796295989882672064159930324853394905198626281502689986203423011190596855591919325434944810184212113276900784265973834566467655400979264070106981154764197589593431064138359503801160211246971313756530453123395265631022349765435841352655051156036269171047871057111092724812333387319238486897927301013104332961591930888110740691546800964534102189416113179959760841083280046717301990342545575459563230376526771294351814820290768687239774271874888941325112744703070638211126505563885327512600820376295862821856227763287942420380925547049031755518618623554204220432733115586844214610420684508560831375464985535216238835313296373780376360520297881214001216620941049980343888152080053046765911467910470611425482589215421183019227598488647258006419236865191790803535310465787115728923848951371841523189519205894276185739696219047628459451688629114201058408601301232304365679575645498691463239561886459028134044734682452545026721956483819537054693564700247687613678687085916620560506077013556631535396001035828140491450615092819464422648170621895205187559054646263465518797070113392007121182635029781644120738950263441089819843287792107331545924323162024242859813053562813888772492838285001579308161590507132513932848587875187213963799365894516623856169178604301062610882367891957525559887730138612181074539210666566799176990281156317880835858067857961766237966121924178821201816711123901096951005435082325497966285388981502886555521746530041512176899980971366404371585555186002333210244258101559868339450653558921241239071016040396234573079608631288267138213436044382127337582300910081986933942242744227926988014024625771285809902625675444505228576521309457613575635972754230039351739679315071091445974176510168805778623143458990461974850604305997078124334010523050508977315906451921210162957344481918854275041850477881690459262078501807378615933042587747028503732170263325946358369716846583058621289471694949596655558472115620842307430204675569434883221088965641659977958007542431035195471284983813291908504191268934606449542526598361724831548448802668164173183541461587742582772960666001308883689163751950699683182253170452623196705918929145241626475535310119422914854979937196724440206091761023027293936603606313950372344963159069338063170110809530220844850490802501674629832571904541368995374417855934309201841643241174322269535003791192223793452850688881705774338045154723005589457841377352978207646187426564691901312664769638062646766383085471999691267794364903907677674788339078616321291632134874376191511760229293698709260931460747714868983223855892598653042568217772265125219966375807925995310542762203223482092980128299557355710601649900782605346543755744979040698063740885626349849280184012364013246399906300050420073807481748902874896065931131274742815164665395485295929694220434135397637332262875139474519991784902680672266938178701070953403328878570766798342574950725462625481663452373301756578538900375801176757182570950555979036195771649612708748389094154183126619103486805803089515076732947346127234487901262724906813499474165629836675974873387227588464325152660944360044797472178003419325300404419371698701413384089552340162242507164687805304311123188123069120724491383900151807631248858613454948405976613314904892071994487160430319510845973469770071423720106187347005155689790347952666170638332902493068198388475158933897789959979289387439571024039244029963593727328117030946805227455280229448071298148569273020486469693277709206640487516511416520223425790721934058518207574718286331785358101291621383459384843607061740780751602224252368455093755036719963291301716337698415797385329279436872635140171196183873343446678456906426213584082404344450630669468812512379139946566561700083724271736652713754421559235069859313530797021779194904243396595815513250041019675711058500570968194803180035547046350617967436583996690910375611527101074340969530277056984771726388358844763324321500706914509502490462666000583267832624648806988383501968894619729591348244360269774887128216546261738188595552405997268374666062849733611343361219485728034607893616661113092710962998386000515558510634232946551921781214180845287733800992767332719821670535598079014209877012408806073586953145545125303976833889857327906205999976627945683452147235744195062542222769339790160521087821102020558020859322810000464168876477795372004461171600198075956466681191871554422029673602123584263026725866843396801794355355415916271397748457954375884757216111965721572239767829111457636175085568146284632692142473910932685992421203295844882517749787384174005040350022473127670836982437218171094437010257492918578728668997041730534545652815546441378343928579344905889749718836400983440957657510288251795887969475099701083098920105403436025734194631390210610066163646150068438818859450852511097865200476911843140296814961159671692506471913358792073735911920013942065234251366992691953962955249290544781884698367585337321634421910818585474236282016257431149542237036681384290455072837851411162236083083653663803029315461645257282770198206058676047252844214232092874472930510471424891652160827732081886747663780769986558408863755103514142298299717881177737932769600409601210596141627433775226995342849145075067093231401167178498865239844351592475647179674014141862964956670756456342290433211701855509599898486142891820127078673027332127383199784628804996577985724061688103920750005172728304495456465958839124575719932958229895998177166413077243614188281142296687646606894904533757480641403054669613468177580968362889627762580572642039799435686210206496312341637589256895095302421661566331692345054859823878871867941771234833510962624049106916792684177033590967845583935346152230450495946284964920432752763324914161528720487580435404859497065905961878260926034532266558466930978438845896734804435908493972442468673364783111534118548041960343188569197818469612998225963781891685139162762259879363635638444616102685810402473238640421995867096982523968154342382519409923901370125030904883355445736355083601837665353461431124033618196997617570783823822309503584953248267112669526552888703288004185057139850839345692564137237584719224106034925262953648904582237964072618056833439241043725000786554617735287992816033089601832692045990058325070884915878018726809262392678507083956151594416742500015471952839606556209893701192565827838142919339267526179603738968040796755943196834735842461683278154724165709521461537190579021685703066414222734478998410262378135869339955057805754383307376700145607105860520663912082573297586681292973743156948816482258521445218913821065261252294712755648188679118863607906577918017537726096443509567048629556840520209778040441320516694862569091397703321720060864260470867255835020501813589725751396188214260501343105598019989186658509704569888088371448324545227827638460688231818344241114355045276326275211992078878877049846774173955002590683366931144491544995212786816576592548497427740295056504191928885654379445231670872606562282692942420449857444851646420012776259794680299736704179040911847593883756347333971589397379548435864288802014045688137504793891401071814234231133848620258540050531898841520970938460210871427896868666030973686994637537385477142557888175701676335024638602009941251891150414170660952087884875603473729792400733501622990917307566748401309115315202619077687001342841439887379948039777343208598907023858396166704658998171118729923187110060403884396946869292184621398617143153529250343471021479369057295001511023057728600949558692923193754719545107676559965840162101989439948681444659814972511529988386584486991034036296200088522252764724421765650434269224685098646264590593282619435171049231137510109237248009819023469288547282760127151783114809909814545901842694366217774514772336474966472165414360445113280841535736957042689705973301369106088666863720656805271189650373097234001928336817251866081845314974397107157701035660340163734270653290246623105336726675619163966500656805341329298855865063854723296882541802931520052139903853711233907224527815232860441424296850942333861528951049143964180704524949178015999457781536753960271425285417966965351467169581486784491799099251862225113605850890470544545570310614533551819274597848237552081422649296013559892035318572396111940596498930014003179709295018353712821858128947527054071098557395522443390269942555882920855052408771738005694702262271560647574871421065611414744689558074667171945962075127692862288462325161099434165228577468084394077554056145041787592014685045501043583171929148507523498404335526442873545783063053493465831473844489383423995213932517304445204305811903312719968527403759027066339443971496859929758432933888425557305514188723557686807111458735076143706335059403945054959171730364227327357036822688437077471276390986160970125318589824401735448241534954800647112415162133431813972191703485979453946287474245603306758856123699188234035627578765842129495460531804104636773237461339953355926893575740469832363204914366885949824999065315989310263051057332329428075083430229400630580882221412164760364288871953979496489545978573084451237440409425989172286484901720599035564879253655323427109056957331583417459491839634467110073186216244635899136614086542907127561942471183068595508900273746997732649317231069458545315768275086595322257509635443767826913650013179428883711022039709598317045207549699175130590784799502929649655693778653360911374451265365403637259615493939403522869674079951805861246959239094164883393928382437904884760285432495084007442458071360414531103595971124005451322880625423647311281321813311373261681364513968206601723687065971094034832590736590166024625208349481481212591420551183406647251871171214457812743398746277651159906107574623251389090378751187231008289717485191040678017296687488959868523670545146195401014256760983137801543936553986094929292701575349003198423913812157519986088476940216030304636919801936481330317700604615258482244213207948097023217924059934992076782373550861265243899766522811968718101847589498235393625373409916802209565820989108119151598283176346059008849067973531260612299258778985694944223440554311371887278581960073596719359398093113025332859366307676629471567537728099698811039490890096982116546829114472304534608253088611315704282793657143847969800290154175282004623020241537055054107462927101783166262838142130271940881168789995138971415716264966090526852662830528740519772988302614521889155037199611609649672471605202395066652448143285198784930270508682856159525123032378556701734258026776045533108916448870184614133610395250830683363642873814452160941220932225364046239395544994910022854978904981297646204134986323165537215593341438281672404942385836114731004164409910051561696269879276210919415349272044658887480417226361350555551020325568814051449574401246848413094300512000415964434951293447628570163440570101762037804813706440611420142143898873602043881665309285488039460778681087362341490731624168914132020395425450354463956601481067638351352580396174977573918426953614362191025818325472163369809645014271245715577913173145463073998932452093478036116174332327523606300282015296365520688313672381649353631170733412533472011696429430205027718544811762927110442297476800854695652237401376326726400126963168103197780399457034697076346816411252016994016663095270067597091858999901417326767218034753922160017835660737458797641017018547743776032195714219497985159113351728467586668345990884622122810281785137247047730847354051862046465706101186258498477308132438002769806219961729989998326582449336323656073050481225325627292422026997828128101293956023418252354777327796337981593213632432022995087997555982307484809960741559118548475345100284139370772354738100689833657086683460664321091081739295624463937819425926481465543128954740740394934073965580133296207569909790828727991808709162758782957558147544787746765126343325968941578342422054005689230215366091421314553548741161687565469773102445526912860987957228279727763318264522716596762931429275818225615701451720213026278386457658016756081833676832127060107393782754340752978397059949241640647014787403166761749453986072440086577017654535107903503062988434343304680980291397158875259582509801758503209405346916944767452477632076714298739900218603696420420295590940265224863735171396749089174240126867880839948132159382161811321917157987323514907742610610062375547669647840214553723460270951654797829569522947583634577414164744084498450227686651921637846702216675424002850048411451295205592500838524155139832021805776315211839771873531953593442631924737742697729095806336403349731625238453564940775652110904833199342484738036822638725232751857271724087287644288412196347286843980287875997813794938655231523848696925872838254527795003668174171393143015729233006447602644445710237854249694640578201514218111310381624736194547031725398356388620814813037630420432071943097030751921915996106764919598976909704805863947699035873044893766823435338136788828575164273416887602018112346868419236579532189836672424586594284660149518070311215965139973929502256874476996269654117154461200924705177974842073806560203376134890576126375941575140314634045639290249573355772488686171799408279007851730353408326818879742261337253628002630764661750182813522514899228118918403569758875974640254747760149545084266853962703743908046863247522661402351578800404840728825098205528882713948451831433327917128930899744922991559346232125786273224521468979737149894097728677345025665882694342769836130941483104357328372904952495797257649006276799400056495088276665250389872679268304062837644495188735878733853426882198918832318078264582105218601176727579337642931062120468952426558034710561264368989813516024538031051797269597663443928413129654082930231268220611735221563455177011347130780734061778774423219573531364825867338867322744762382097806142740285446545636701121439746115328106134673832305448802107428292675603988353771687593325695068069620967928632906672003240550785389767781058497733295224224749348038417521850839769214533761541514482882377446765237751025942281600275705302945726569579535406964340686089454014330149929946329475786573104407228832108226908558177245513334054144747929445242775612468122307418500683876824963903019082207834817178728258606306304315175490918612030460440358334221124867715469723757883015458193416718048220896638630383382409779211333899477064586256790581083136156013979139701745084416843804780050626864967132755555974245366336349358410521807131805500567763559086043981588715087978016189664348769180249662033499794062314327334963449803886927663836638365350253665333005534737865382352810520733713654122456679198846210786364557142173368551803166661975063212812270401119527644031789412181567841408789950569119492607721156178005133477840359384273364177548599055233772752748944932762151485486312691204757544157371362669193893671141567528569914253154995836906900888389936838154887084926622670436527620155823634319997446787971445837740100965046462814763066158208144383660043018117718334895843554215897721512416129385146963518630945431803873019304701788337493640241286198513866850327085139582762227318490807273491344598523293841552526167979804234295485758561864252798728765033406813638339964799122179671446771361017277860800270047601527636478607804532083064687800592135088870105808075732533468574182463659178274760710572884038865608948611513947304592132335738302796248712274323985294849175638060753192811021459052902526252915217188493190337524265677177324214488471683855211161971817976212345576823153690722354856058239450057458303985203762115541533124590398837504801401020761619522586204695392981387651982227207101425509192189898287244135541079243151479921965646146327054094886202517982899043379353529994077224496486608777867565024921308997661180865406862219245992137361501068248592102567386042352476454799559120429018953119392747824485714682531858432516537265740804118315297142258444501896569311352273973645215646466587348900739730358689272196284704392741848301410601847214843998949154073296746894182282720326241693702802775667817273641341665997693284819711151347366476089441935996403250143761539709420397606565228689557123408196007610065275375241306593808490505092523010700995897490046465039758251473457338510478489829965255839245592905880724758699973198097685306216160959065285835604097578431895103703385598371344686250449541384526516484125539659434323969346407595006619462905709070957851746522008917177323883401251292105897615291176719639404314486099180896666330260230128257658506793784866097150170893343697688087266491802644189219437395999507713438499112789352692818920934850721805290130091665589853602913130429674887040884856966584759284613348243100151506473021873269262192187868963528324181127609277926629495044831990161427837765838717687005380054203499322083710474861676199700840929911179955158232259207561049505148626460291845300680733303466918651681632793724381226310356743766888511003566616910376171869051811844158631299556712081735949790187287874353731450717926874005132815781413740924258753639844527725240738600583681586007721034326771644650433445472442191918788537764570956930037567290308195340148148096581941044358767881318813706353453240378726058122914894448362581409025554285445377956894002506423175444661967842521553040274515916013529970545235002767500187243023665421176620350010675852048462066720072001875814056943786072234836897409560781258121754736638862998312740066728472312016117594405363962530201900464688349872568277655671167565954659137555147424040281756314808223802897484842369047629502940015816898172475468501893780619717684814861958366103130676056355721294181039093839115282851642992671345725203101874749511837607729592688258352042995680048811574620688819697087401468778692888418160784405941874719131294231273663397104134035027453139876546103502605229426079671145727243670097711543982659474527004352146454187385281116367236886528400281793589106792932137712268002447914045653294961301280817153103420819265380867556448147285526214066937528656337919929926311250533579644447434049274515814584941891401600630199307105175023962296658834868567142997280816205104989606105589191561209191827906822140178204589474594721845034636697000205602492895325729792929411548731767743368742351789127707651687229435631990515454923096686537994488732338164210519518952208512810293176508459240961924272182440757993576997359291749290309530898765368871035545080142234432717556373414821175601241413589099512608735392996922298969973984905376534590195478415528461122264108300583276715343083884854350369838971637094802255217257907313552727227286632523267279200166869831760528651519309773591371547185252018962660917152266340768781211702879665272935955872735183278072708182264910048919391528720129011618357443028808605608787360823560688422098336861295499803687256017013355316951686623346235971999930199713512078755196130095807252381140751748641505267930839081232225881121683918748287462558759591982324515842288194840601954061784074342184433897175602472970722439253758834427722746787899149892628785545574447585792018791000923581291536173779502038280482391067376778525247333826598432188305019139854714530836777810227621957287498301792855368630516356556891884797493075348399504549434301742970905488343770445735151806346198233597845909383718312805843531273753561716034651098637330348868141167198820808709752754990951814405941784014554660224976310073132495269635158134619857546956770283846443038199214359137904029141333765315592446728997599121689202686267913606054734709501493767746361575732822100185046317249411659240655404573772766358146996669686864366610028512864927284821213121644682311870705920014330587705534678497851184890941064924619040910990348265892169943091497512589614078070338553377333168815551853718561218473833815485552457680266266815850874755144124905955324756636812237765217583909793483377176193676780417549819119679177061001036477559428568311035137524155955362331421992524584453357333256027239289466563456416249149604235903330437600718737903576729501625722168796878014477664331157107271315510235914059444719505647006001891802576029839968795244791113728487057049382656644815044403951732819284244651278575031794556177167938437625126440082523927838333693552558246455359076491260764296729620354054522031631428365822876214487208984584967667779747488277597748525775385608885014941856045581787159457443170489901526894148521656181223304817171586795293533954419070657043173940254556778554833221349432385109790126213792086820013320352532477278826310752208259610208452259194722302567844539768582735078228452168619803508354734987819257225950516661791598707900387079690917292317211762465610336026829220665698726433652490218630546174148737340613739501878421742147277547440969076992478152485104960949082536266736411931287321218086293071400556658456590189229591996030476389485090893620947197882550599188550079844135969197633327047618677904184200186154144524114767751251006205091584806637219706298738026013459836186872186284717079259843448009869801495089597656525975824895039770882010444154653861856726408782477769518009685220489344090254015830591788150265919171259635040854575456558258389178782624650643996251973768548197908227022343328636674214435864498047830134523639059463772256889143585844980191984935387629584862587817983988002049898294940348086350242753386234769654002431528253080877432917910654582996870243748957753013880347113788688637110365578447735661080127636799048583566600251966134205972890065666716151459118801135209737297553317934279883099720996836080361826433001686775717853190304309825958053024979714840332139623362124084909539884948942152441044282047689187530126096042940948935729855123344104988440813013633181770502671643536579422056436340380698006472777449410960588493131515704641125521472013566707720491736678213477053838599506091717296238216283739234685192725126188220379044537530533558984423299303142885547160258180245229225134320152211302866872596667518917643690576656387966429093596268294954585744434480507105590767116107288406479855242002468016427029675360714534783599746826338173842365613903458946908498597684263285934444814390188122432943425829768841666896478572671100456985460864880210280886192585099756954870201726694472230743576625162059652201895552899044690750449504665504786721757440383503013352822683924690508225000843861126039469603246941044257638329928265723639610544689623145961980818272818082885000287965329890333828315320211709316800970873943886972991408504599325639051453891809457626577900486934190422131728524282534844152955809710624251295354808539625921133660979771150300984989817733210941967771818736495284329862368508257034741686597050832143725198652874141704819905192544901736836717037686841612379091036283012257844098362211059774871851673140588966341070560259441208428669488142834146712921242006498476128216061667796395248350730374698889875768988751578663768955769676796023276817445914630223565211716318514826958303826182297685685343776347974846629668744162509316993157729052832869446684817668492148869390497563125485105666692766498762213852207998691567504697427733783600136003676540447212040314533312078445866717129570622921313783746309168352662516989712160856466725484556937743002435829085618492835264980710615504779118756474227254895185450983087081527686689603914718551058216642306467735671240384751426249998279410132539193688023469995836328859104231299927637059257644378599256496130268921403694339242132854888236867018240649660120615680239119310547233735810887670329170292439322398544594465816328985389870088737272882106693102172948043356469645685836818564048438651901856566185727861278760969168760914900797035337430508884809025407582680267627071442803517627757400683159284926891077024867812111434829984401192320494593357061925106365468287194994190229829432282904167236504783762821111281805387847776925331665641642520042495922041515906552906454362674988741440181321060286295791996418013673361962841782795471917155559728746677175564475221673489357149345447795839260454707060615070758368261814445663733242348057878339951857945677010697785826073076699213165510156624259645018862666142431482651755718228196909977054602262479438074176094711594074453469113860293596130641900775783516003475549774237478100359884566798310173585417391447921707210954005020679454082116312113486176062088270788284261914453890404207361702413919168144416034130108635256268183630056097365928728784956780409459765595276891987589939165846590211745440835116695845088473193263887503989976010327002825205127228270499688746152098730605805095615485739007627558891174561323422326280265890390604973645657898827379305334528233410335833196946491176714063262803753504917271884064958276772361135438362817614154903147731701344536379997177108516705516353750211859270665864521805472801852145359803862927705157817008343769415494559024165730114583482682120567118962527919940060292723529045495538584069021782982489277882390273903407677419846147068730132693085386782306507776999436099402867024648474096418856017185669947569334875979364473001487911397579806851392555478998507533398610202689627475859152358220911721727577395893678231896761330710213231979782040037602552841015621124647463788130374637159629161436100854993880411291336747640993299373730119583583737861548916618461345411142015508208768813418556128720994486674376500013518416750426110638743546479961804779720587360824574868847499727432532076266481699603070576862137485420497703896195530588779613987101477473574286938022807663820666455254536886121286563789748694269483149660051267492767418668137338305133702942588625144475522525989530360191183017877556191499820703113300313087615736646031656809866799252446870411885323734606662929113286244797282426785610450615135416171187582256629375224845311896636188875640268027887462523456511090416369081361427826287583140858090374372097815702836756386290095967329935257178452464622665134990875880302445593871170027079284016269086651696804928336231874018722618737772203609714354079455256028830155636625193663240121340244836038884629379263748441456593867439853049759968857413203970272577616318992724641716525090040456405328489207409766949976971545166676430121516403694875204497437742423513209881827696330872544747014799930400831831673446254583095767537137418537372207360333074440808738159527738238112286852986690348795862904667323759997637215603391764992276635396835979308412964167035637254471685286347653901753125879612211344490538522841631520589733027151780071223575869872095374593113473292436296858370597963951406712466106307965270837019903098896254002981896528857550089832084976974040660226115399793076619806476073264997739567103751442352271919951783626656201195615144077776233517395642407251132614354146605764293664853400944944563208391040867275474253778562054726216916476109477653896730069950236909667820031594302308776216758086469347078738737792889842426090109698310550135411095102556374650471523319421891088587282317248127762301269757399286989182182963285087369760344050586529802120208561192397746870025501887222373719956681026848732060144135196250228683191889048422962476317157763650967910205113496521660285776485302609034578565915597420704446837904628766840376646960572187384655849549341269802316085344323300343569512381258155555109997015027560114085539648778700657399149614189177844877362440631525811514995811309005517461715052225478588827165721482450379112220232916661393519345876991310887944483571266599288997185999277723981005183995363382148540358468327609828235709091277245130967590193252493783666927009417205581581898561471448714261386556161087358951161612914908100274199200151165571922154678797079033421399829172746867371635624835739517539380025487783693687493654422601538817368789749364459540935460660456384718177442125895034145371239353209842438656179836486739406762911660496129138699956345122319167378443112430771863415349995112204388955167077867082673453962069194737168591733671574514666143630588680908241841903514399901885970366734793410713966502131417256069201794386801210967661427435611118363513079619953262532586420014656719620199274921400025067134215001809153404953689758284266926406031648097566646063597917921288348841813764169790915448197483464093699802026304318094412111446696762889746636051265349134515379351504791712025009525920581353561336522330643146083836440663263288123423209027744550414900052536877792953576267390252737597443255873371825325662068814410517621217734043998433241197513745035154376535052927514141142033517118646462280386607838802679095445720526296055218069256233348139629267276253539725313709334453703095456685127117802815575585822510769132049147241038758909175924565640980075229910362811009285158014396100686717725319111699766446948771964128011048484186870623045311839170041691372847648139683728888213700851687294075034693508215954093888945107563866402463423819265621624368594347034878114002647516429988647122451573480803688691338534190965734801139066988658033043095779379928872525726459429947745147776742022937754382755860841662225864053250661527164131600471638621825740659640369438918316970828859614704966988129405649171415383778090207121200983134482779175163497070373450069443592712545387990570358458308319542867029622177771761073543259692340057461375890962581813075744907147403465127958755051874900381589583302472155297445637642754210638762437840761771112165187399394747123877471515755475652005671694049238413048905288575198222523792682533187963714646129454911311457092596269560757609230121745140558411853258810164099270239269458806826205722770723843054269591766238896290309896924561784723977986708322916536559347934618735760705590281296172016161970310823203573232229039172143794716473622711103278676863508626589545409883278001454125340175681836140733456621293882859385669643746049940358254717843662435432352892282548693494983514746780004489063393371904283703379254633077097255562428138996457950423732037653348037772379448116868614131978825653657692620657337564535588846628514122268527265411407724197084936198119437295415624193814537906964116563902263533951706834603123912424526905673120010245721304251925815479486016187518108002621714390831822380746992132206895099598815003827972708318917578055350501078633600772846808714083203929177866513775559406090209023659250982302256119917155702735886974680071545681547460871939507861420279989530540443541932071375741305237198409062367287283620862758015380377245655726321363323313778160753679138368531307697876312114249471156482217874114482072517864871958257202787245544421787900987114031795801551095820637980884195338529046339029717720962902107814868109166533420181483351476146650597071201183839203397767492551556753066968171219765442652757972093818959326489825889954126076054017134584971867256909498245751384120213568653337680516622593336890776242177492019314388498482126943925099268128552169058474665715241269234684571739848516709628150783082446220859597016604021767511314040917646173608907464736682277494514528326286713802322360252768430672113966531935839027997454150110900993982451981873583961288730326234132807094387752486170823550477697625832072948488230034820774287560092599133965298610333739724036418743331174126333047242211067520318803166248085608049766603975818568836889892616795957532463284625986471641272692573163818010968748942087246954962367564274747903070704779984878237822433569574026569112844906209624996857130192613956184441595852574455816575006449318034376844821002156436697583286548670695721467325148997570331792744249839289171117770179163902683949857274897462619527101543823130941545734308788685832077704107589260687779729883861543479871699601526027348159887245062526188747982426213046779730877786320623372076474995655885368956055865068373800468665498883108200711881037985357774464432889006492764720291894912955624912444092247701709370503724644793487794457707722055051665227445796362699797147391189666917065257166283352814965752134698323632931329252690969019934681950642436783610939721044762961619652126218197706643513978152784421139873026569756554903162824342830779097584326360821823924913059654752778156973272891806335059393006613665781577926517856815939095128757496326864615880006535184970942711979919985210748987872324781055736808471905726125438052622671207219937866952211703930839063217121400553440573118608017255851488623839357512926728163419191786258590931077236863302754212877949698769295928171397481560203861204238678729667392610466055937087404990327253505718296292054359011298978312953022278967558542719545759929082005470369759956629076912314275025488299627333199074185062398945565306328147782773101265996268831980987300778557411521934197246669397744677582855904645340952409219869325821342141063307616110064226459526872184447634467730272846839008917369980311838902663799035963674063423511947954231735456242268921059765483730777623834457509874713252234309752356406167908441816283006901934615301273880713767290414526792415900477703434060417940740210963312015472481389140388096995003246340150270729834145111598348252317574554804294441408034061247071515637269842794656717751857276496738228638697322082443547742597360253296582196395652418632590976933610330028548807399607990482832372932113101580871025156167598135884748068066692656024418249807235291660096964056453751444336452950396671308419824050060935455110288976687588730368840874306586389153245897056284241901473147125022217754953751885697595001497316589449546532501461592314680625987126635382947847006541356453000506310355912923822623983311201659437119170765761776241608084669951758354639621112489415008198260437944527197571194467090248013882983874477461552575483919845804234053666347750992326573595955386023200729501765807110086552553558889917195148795705013459550413818569719088626161758279814145159660907743580162567136183537337228833174099400184944111801628650296273680476101743658336807886093150969361371857528122328066810175260949209963961589451064192556164168421095348643804099138477212191637418407617622099730450556952782956673138097617977128047142085430775421205892078610347409077137715699367883022787884566761631966299915433076825320798544131516856376025878145794290679198679606444694931410167054220465443929315619072126528502231500948037658513966851017467519900456822772797923291082781265830967407663466531673083124373302266818133881692614691595295847780953665600344730138428967194325463476255071071437977810003293286316332118998363462837461422583755319756608942354898810017001536926707208156533910332658636495826510327576648638203958856952335490246110676564780204565835442478464053347401439273191518024403540077092639765252128620090641630600335904013588358260482396431196100486101359915630272378202520368293549465969555550556353164832985180935196948834741466585967220907087070092260524234099876861348056365470751784661822610970830661042972800316008017661880127901329130110025777863396754337492655408671395515610842156197767446478229862900587407516074045528357065281587403224473993107457938025658077046550994344380093731017599991294929647394683469183881035772276592630915085096806274463321008224007745428230047371686057751054211744957616894379671868058021637653242681966372202017494096450453653468375563379377684436718035138044371759917281464883370591234707830214715181705853750171940874734342441295879243402173045852687832202737952879550098990808565484179008761710599169211688905604091885944867356829422380880581811782601382811126686462358702581704994154351551425975548146587967242611783332893639108355207354091394473600410835389922012460164241599390359952943863698560372145317647875860471508799221076207960904463932635686670596587809922078646899183412499943055510895468837879348549488521567627920650044518091260172727940846148631490814231452779711495722585096324993488313617055376925324937068419514180292609504011912876476000048514523188121643287520974762325285136586541064455123770689422613986332814145886565306171078959242162843110944269910528074159582037776983583067271747885373644886573341409245435884156896759302825111022150476730492641429405184681728800756668990973899507768430217993786758464611244464952584119682740657203657417511850680987120530295193040333079435900005331133868896800196326721348062600026325062985191661653195279194556372558955949849935802765320555601694788972278181426279961494686783461035523428918556022719081035461852273074319435608178104511401130159254866247154643073606163583333207679213345603942147262915341199634909248930847248622747119213994788900960101067243730431138544238588037329502076288388607621614806795946030175453162652968561539721369138742086107208479108901337786492447563468474706801129768686385566509976294888904976180454487460441085622525086193981337930001944189783507099859594393586940094765141106038631436643931745749484194458549574878514915369839141958898279002160625218675051410455839419741143405252675415820878362020153822762120138721988662471215790225201883620278554743365774226883088845979154576958029202236248835878461837552933744017702845069994614042804833141009672849417210779704318727291426066572091366389824805930579285379447187614837275571674859394585274757906901765298924931983987935038995714173365165876061657974562559199210312110806638208434727897357005739469783085122657832122254323964564197898820582498067750890726617073402456646758620920350064951143665023949939802570304593760102942774621056193960077810203985568596405325153730575156498347566027475335699178675768580892552592946801940774043568081619703134265743496400880147065676369876558837568081683209968203549313196471347673251797008494075518837929541595676885871155215999136675283725543218228898376364982270653550821793286130740241618629610676438228680335573694477272243711282969329062191109495436278837500320335080812363778655989954160994011420442735140858925172416586047826578382693537813650211852192226065635460282824609520584626493650314242509645784185172224369305456895130266555955076584322379790025918852921915696129763334155592539766343545574931057181176593989848251349879225565886962271884228958354821403129481528940771240996072908584196853181487583121576828886144684024447247647165170731368273953802538501924766854510402372406513649510867189854239069224381242455940936863312558406380745763304598779585713413244594046572771432365258787694361915747543213410835097503932858905910376872303325496705251917467284792278486134625378264873829187084447787769223570600326043596438431568929166634774850734650167372027048146512964355970614616448292863757189555952624317887778238229146244659278313414954329115888333225563396376155373144160713613652714041164927550773488116866508201551319830227429571649915213787167190460179893109158202152681694626012922028972723808406361591896361062004775886522486893392666004367647440263097288435279329732298779861382617425070213855637460740669686772778343744614993085455236844897814253433145146693715161522941353308078858071427959038632069178769635289098559832216449590797801212430990968214510504857974396804104462635300257443220075062850809952989983630689762657912774408647492692039997608596311658322571572587447595678441407979146458240033658142119907982293671359032421387647183672917359133414567633279595635377364262263529874858663529150424773723753100625977864905411940811055744479697046132611755420713346432035626206742489842873177423336619457838523625154096312608132722926405798098824246866818728513217762111956496383773277060248704076993815327535447874057254960986812950899301993318327080427887743672888451130301038723367638218088802928080990704765224916297312823218490053445793888513404175596620243251610050006477338973540251325743350626585865614250151486675030265642841513383370836700418347680885660465681019682941291507357250915338277080700353660245458744231130089402327407599692432695138961098959111653452174527781598153929814939541007458279685042633152507665799495331592682203644569313438848228149942531245508639984927284905868620757121572127829557888232815079029354743169714064817570480026245636054652810292739105171955117968229942164953546900472674692714683300595809795860722683865803188945121145432273214281802656256487059789681407808880325263363889929521230731740976942658490279614542038107387550057206469356076253324383574466528166190388192086779810819819948820239533663462289562606264574648642279467734969589556179220247467962387464242164162070406088328871454349852897773410929491028430793519153673865113058474534575223670580177033506883742194970777760088060955872532416696976051138585393927374351427042676308546680253867363789626892009874841866175851537101404376660653281689697662689353124707870173461618427466317237509013686780134417611458914287525796537096379897809889022795904763958081207928966925820068219464740264658252040929794410915643941130584732491965941648111356862703394522818013113101159558130453284632450790152793382749007565024585589973129237415926783483273748348049077260432273589428022893137541032705716969140530278069779255277954171933553709724784843165965385046420191100820089098732054724149414185765158497225565306241570146354207325097414680801927360363396693329796828162692157623583187462252453566613503783614470227546981359897169628741981962637702625266396345869070603250939599214044997167659801304273289668059816592825927722313744417758065174590760427798357059897784349631899043932176423990763778782356553128083011466990646508397974969304028766313588724820441784504927935713925615984251990116292011163104276022505636541349413550112267614363769433973754763751919462409879882407132728527507985298709026139742144982888889469605259218925582422163114428124913355489615834377820921270770890042835818529380277649882046330278797842593061442955850627832843360201511569413803237637609284594754784962865568609265181701244259621274395851551578572548542828505688925338052769349202215814712112334025941644339161012324600323083239638966581811387243971623814962951125836578762733481511131010402314074552834873804456000069059356769874226393735952870499394806524689440167463244715096192446423909962901409371031140024666507227132014546319412173722587476414448133603534938863987723902468961344300995444279351750752613078852385312308035797632296196826345910731344791858837107919505409585633414357566111755921075015350545747848806444975835432194101126793321539479961645192028782460197778518567710793106937026901860141300449521642382077133590484226169168960626072516505295766150589175729215615775036749442474652696029688600670306736051365958752808680204461048768483834811972936786447652263751280375212424248983489795064093581721770867700644423853724608395371972339191457035834309345019855516721491676502275172120039377467433080272875849537144471998465666279352195500172621104143700687900563014866445632857832224092769644679325728345057102924056136123908274673299979434211737254632596169059203217017234306837057990290623788302433930082787627190643397926624509391257507707939605948641317485070588444093475904409551731580894374114103374301268875189208993021354499775363568277539519001347031751411893417406117110278107585856427901207091590009623665989202786642382818104404830495044615573635703986493180168231694954265521597311296126130005117249055516463988895908273259431630499673530042318723538494556184406458237838009364654688957407877666735761553355456540213207070225859012004454564812829682287023152866151026263107271735077426014909904093777861252882998538984991808230134337308344757542939645984000786736522047967351586943572768732082435426979041777874859954592060377424100010930606579254778606269678102182193549965222888683165208998867929066026528833171314809586337826330009436226577314622573439700865411063120101817001716857257461125757771031266449155890261814161512469860624528873091912457470706980945247405327821560740036164526085365973455454399328049909295027007279949852759836592802378609555772201745953761173027872569450841248956673263102383372274385495801718091007963042872804868144263477617943743575246159114932385160337290140012085808719746806845383583642301200844713090224680682464756087918857418405167579016583325992416375195784809650221759642125278898796028890866700699974490026634025800012626049159699907721779973616358081025820199051804898953782485486095580958065857652252456553969449624882299818080138603188592512225581640029890328693713034000258140802706283951518697824344243952994352646823809910422443355339017712670327924111667270759866546427018821272560731436770168408930731970117118850645326720415338036006317426767206638925114664388315668618434690439609976831355878790355550763058468327104527913225840514195395097676917977492814254029112465855260769963991968177108643996527881575586293701909514884422689722357866226528999802063289616003163027503294970522703851192826875730884615420847506511128349022561453510994896072482706318764079800403867928968593894212826309563703556334762830688472668645413465432497120000249862632333230434217282836521472098394492887307563206455781032523138231032810238287310969878179332835363549095218144273506720102460951945993860341179098638547592063796972521203467743299259374508492413708462383531075800064038587551982882852615626125749748498156308782903348863652966849415900273284939843734469577982336335820545037476718069867308260616369613850403513190129967146146413288370041531265022888663734700575931867147687078596697686146283410339301723625176412550535929722730313672461486903403956673900812965057592396259266011987670846663921076599498706530359890953437964584157123349943663131506382902267782711655385172559521266917871866307624320418305628594976542637745379952749105230490175938063995617781046100592660906934361757201126951125012220993555722603854110236316128369817947921988023601405944255011662122730457662958357698179149427556067075378757291042490466786469572537407714529629039787532818194420678716741871614137987053432488362794569738887331767415247210586878279636745170041206824536052549520235017717387859285042361092602521765680237293808857202421771948689230511334524149178787673429232647259277978117760015778172885927055970508746304232213960424729109109971352641579067060177711774398163797536797251086060332834963882757409179979802619179810457105667052895331757423553139817306692772137612193647186966537239282883571264481604224036567624627968316301072723101915515842435366227847258137859991560469866682445007475593674382086815299832821652464750919478990038533303816844030511046703209616746895168100173591758530403083317421163205062827131528446851649758320335998286686772532411529511688858656280727718463617674821589356412093656692090246903554837516272258237790083757956739289003645745019851165068766130378603707146339097610117087978174326342393671603081787759550352767971372406975815887598069036674207238424221754486166559527385377073265052637059055789612599615354135576195869023232673097339565693750713961818939827675639624140172310119429195248733920361770810748718195340528045323908270856247459282549296224609624512510856408991020547786365437088482214280646361908363300037644271754810220013280501411527814480652727075752654918521079258772778605881013283621473934873188203274876887736087862470242724225123604504074533186194243904000450601739207862769429820204221313989326468156464301416684622140142174876446344449893323199274333332884739477246259617770330575372412766402326083962126490975539559755935130402173933265525450252732319421641381391822204681157255954579832006964833828830064754871407396630989569792143876498977371584279852862736731075841151020887014329929554987085824873920280063939147344183405964508983675290852660517352642881845096689893022662552860730233336708967816643991930101905791923206391546467920952646392596864470047986919489887795894947018726078150301823017415088974964550635774457413051160308249529132204209829469889101495948816292927685307233181111584669530429041937032252575966507284451346372642454843367120069889923673812231882516527693521295876330475701908311533448021770179793645005954661104044301465631250102635553960838466817438049664584890683185992508825231309101803610984874003597887744277351818334163685708459491268055221422844729103696714588345844661902524831899167746766514329318502192511021505143031462566260829988258718499928707836082594581686019498326145854141442959315274029602113720235159911220631694674775291958807942683489763737550264297779845408355054256745374427734014602891190433971151212457754194592361788827951824654533179385600410657951284941519257024352887233329414872256886080449543276676999550148249125534044102776915386693313834659753024815540706354458804091311202526535906988623499297804702390335505411414331573605468770041648100021424321578138662979441166010511795562522596937386260877342203898625238735125779305912659622152162733249795385638048931859120362069671563865353221622013295191545082931383004360573119441863310415056830954529338140623503563696378383428367675802642061338328297376366822172876948903997924408879079979160544885247486553330489590972123869996205936289435998911946905907511948931638156021432065018576177211659098225473937330523156836535871172195100063799587455413453089018938439418485241682385180074257664057793531697662485650042006510826427699516432056944108525651936568139187254876170436002998432904018075255533683206389948834807894302306789783755638196857915804778818723447351111668200811261575137269042151678112583174463268278009772706306635991948786610262742307853464931922541900595721935814179135395206397930070219098705866620681716117789739342643505422801642402979883119983561612264961604629567840115658549412976505462976792388641050339920286726839222300345533508443655939194682725405274848502194491861959489633453032020934381910334480685168247583080562035771418849085534043597307639371511796023638701932087652832239729718839938609994847040950176438381454223779944323430259560491069108018764251604714533036414470414649580117426707839954766699164117046715217801975894509419261473895741243624138266728525721719600036358627677292250744604936859072721976600227468481023553828336022092367753573377020327901851767909799547709659490583873897697938478642313657737643219617995856158153982105931817624717496519789587663550986330970129717532021685530968158749263447115108493356225197875722506020286296205996099567171100662414239051603363695688547488763376226085706989123783369323195512575673577140173500858323712607327142179550628587609582441309568593518356818310407781728809213273265422349460884511182583915192977993115837417849684060978845577067682329364727416720833137348156093446072251540632616361719295910417675347298441483492116704568245090081098644626022656631892719402353968439083714193273052014554413915198677231545208175659369102725249268063118473541629453491518103418645323432919011801382470372259817398738217145397770295264708993715994767167300755960629309154485549332207091980393766010928341453061557917461552657286933771652451744309136337809934637985620234331253239514214232887024434951423231935924745095037676157186252310060297552945998905348173292081234607382565373096552879487158173628215556291585478351978135055427130853360725104090869293270454656734588323170801733360095571006637795012967683499528548184660546400699338119657468024807363516084032542262732804950795673379671337104762835679466318819686959930777127887579848076722604405996701709182098951684053306327454745258298909230628133327208844967853475776532507050226076948903299030948653074007658776085377040318898586135247004601684436263816074335754996384059967683945484384728143565279554533008421532280673486761231625423065567184186247645385409563914604997439520115247660055201333242889530674165307267727276301677772562855552410992342672032771058043332021184132961762748802480954640973657240898719580384925678586698941924243358756629722129509546628522119316124517978549603797297718235890612931613095369510922172648466279389146808201547457574627516941279960707966281209224142744316664971390322610032867339613513043393748204909795380148950149278768834976377844464350456588557696386583177353388051331879493368670351615035694923412007673284007002151756202276998028895750660606027041168576887764434788916184025644490531331808794150086227343612037991353439204449547959300542334520583502058840090235277798383555917613830578865802471327407492963348593915216831738549728274896247234709930083381562034350078092184771916380764573653468617217879960607040935917856415741048279364198168214592103295622657902356553906976712177868293038943838766332479216313640620234105277006853449401640551668194912517851273170436328741988711881833361224321361252046317870307035972654527434384751119463359732409824322203672510768333095357715652321610165533983186116906351244488625527046692569492658708569793413532951913629117408885754168722105267534689878761803594173015322440661145517040460492870290755795469890511700319206842503302708715833877513081491292223044680350659929929079576388216636322245661134784117762598217172332530243603434207532091210091486777011711356043616884120906708613013562930714461648514208699580320475957772862598087384925066819726533665678203944500749953436459143789233873097710277724499574251304585283383415130166905640430351132377186908696037672136837251486450946236320279996785255428435708622836443491520876401977589627494310074084514675131075105636540657346178494664564061975290236145018711272099464674830606365604626268863826980108206577410213220489544331995724140877173378201939434324938834722016616380599889579796165285267338730026349272997500248481816072084630570195898178286785154147480977164185386517175165803232365077200311332248284951551484539823573157047723279302949196600256261113895780644920264786987134837006754448358169396862448220832575316458985202514574200222069100688517179847120596080946796583921292665811025079572725643335554507319748082727546648467833235332080609608431443483350391826976282723029625470138165832919788214038958032500812471766566258738241994978549217642439753904661096266714072538450114706511282427623286345449266230122176253611238511392380280429401512338542792598819804107346477144782765934654852961404293048100854470495544716725154738036009583934672178959558019011722182028757255462670651952805081704645195088630240135114715530175883853373964056693530437001269436151092864427089806482155112569569722805690713423915720636355887687311234982516328877766259721531540004468746233496533794767147019171211245136312301607362632306325932649389388711697029443870750614521132600501249485772397765126443520722188080368701876048743883361176802909400088469162293534854483194360125137134909895881819184704819885075534514403521880664542328575440602458084712766675694727609040601275587183376240700390502867116038223128981670225811226566728174568953687733388094106021623041586068562277641209035338319936958964707337120579993612358787419656514978085144121418216573997753496247882293292450143834968792204491332180988600769428093434757117404864893052887411340830074545016364682922188779748364477715409626265651248420038630838737148182412319193054039662134517607737785255040002844210844198850293687837611279402247123413482438644646174609107122546324526022550356121970820586880686513641143591499662040372315559102376816052401676569337225253545127785157266257282621952504799930447836616892255360018284804172223935006670462900353404351488117744443237414882980970912949067463008474166250674875261772566175258208599157783780547975002733764285730915466532188489646162090733507970683388605672180968220652793224042113912959827434697212184259688723218317674614718034805480768617293531501437118371453219218765193915854406600778805208335042617157962325850650991194565657379372268894371443170062938455905952386187255911388585403578967645255878906975994114788310862816314158609355701365054576643991874519129976450960439036183978674315066170272187694513626574231950348876601211993943216811358827025790448797922879367844006365174578968442503041342974800973342580069591386855270585023168102908700683510056528132666720759393464227820907491732983447277676590609371733338607035719162089076748976831447049546912333807423284257268464922062576661569087046283621296807338837789369754522911124744147705302779012189368171406231023881529669946088778295931464043039103397168705767607177365567685505341250153631912673336649309660595782201592625684976731689217834964291682329338783639848433642080707782556920276145403344740041532428938239533482615335305983172393370909752632924569889635090142619830424606760365917806855085633102923837737881346216951653391281265784862267186279961866059897478757254198736104604651829993682440168645498656012387271263888563211127776212293848850067300217005172492706211548422249839910595953910766149384196900557673856511028476056812988010882567309831447728980736368330411453977293284962834757908660867637743206168069452634960047632936054254040200109911446773996950128990112216658513210622583996571567124567249951315468216161285001133625731056827324625989743940476455254081818597024403815736234258699509457781598993715370129344419113337007440243106598731578216793871857785176171094777381119065809896982660421163665574018262441806545871100424278664842677994217721111476347104374909304225057451221163735824913973989621406050829284936470812844555939669681471583972504209794042302599833603709902563207247975149560894264561745407820193842839516831079414540619943415555088051543678289527796135226811788955096737424319145361876018105901319823141711796372941518547544925231471916310692358795348353630153863943464108706568107646120203710620065943465229043860453961954981312083734626698714690329637627523259641540840101367677702605061112813720060928428883154916022676641283180725477788598588853789675893551510624884163206007802379089348037286625936424375624684927370968382097739798949295833422884412489837948228888625536775237406220506895692248861030875164711436211453210111564424243951202827064455042981346831330012937747059918550254262560294329799930995346609455687776408800258221761683245167815677814589434953542671588395071193531613825573357226474640489755214824029301013593062068152704714993475846037013333070127380820827163908840565446939236545316668114270649960307438754141798148517936558207906730684932644429701923310009863541033382392282355224662069122875049975780942332859367120321060860149752257542615407563354427484220101724929517956576335048371576430081399239897915339610641931550582674499935306068610795760582504103985395075918289773116704029715401984458757324619202459526593747277493193837715422842558822080070394872263653962719787056156038797015850152192896029206007947334166359022422120230617163006639792006377463606083030124169266675467158342385991003881773234417951414936016993799657464381920100130173140135746031151365828204435572881040700526726200641975774249068482655062493804264334098179242665404861522853145073762781078838092699541470335846596576614537992950002972699777086498400777359564549769523926627240327571753982077143470575150211003295319458932908078262491255692103749936302825988965140828434578499076454562852763303117930631298370888795424951902479820312789040822633683957510969147981376723924504868143406180162847639144162652982033765988798727589071334180062949820248453472169034137651614905645300319736162182174807177456002306066261735907469559151435743743819481935624452475553677816012992612052627753743886443990339248858304801930116457089718691003059867757675379957869031466694630383119637743494792891535700179131937794574051373084932774691872526464995875603740790253541816652695642158825509408084618448298328388292213763804391229700210344525143678799976427592473686330938532242636127269349032913733765616499845771622410533874309328697729208626681210309218893989994973322653418537894989148873004831456388182311816908235149394310111314081238972727185122249769935426264057806578539836141543062006388700618760796504706076519867638882762760408025708786868031453665040001893861251070958564191420449996246258147020186521141629897792645392666861446452524690389270556737711583274518682137388422812581145251343645470358878601851760770713254480531443815058139043538401365169148581379194451021527686533410383413459892710907652436853700417166098239181326016126155905371172976605150749053607907411147249553862223728137510092524270078093296407921034612415353681841745718703597852805115004858094143081399199304231213812993269343176842137359471204116462914473021565155303941941620234987193215342881729661864619097140293438804717938359228514912520445053189134144665082782600925236326633914596005926916336307932192726105004651147479041570018805639086860822402124520714575890263737640506051398370448091871868660748431292816622754067310992412572469629324766891785380905803603984759189583448192569580847177930835668068351362204434599246475939335433302376348301410527900433311818438207217497060228573678207964666198954253351865323633529165681381356490916036846028720079612166996489946095371280868581363478730006064002930257077506740904787673340440277913100529526281047778178286280730366726202541987145691098139282799628905448662723197186794623398582954297235490014094118275093558594795444958380586476490263268129370510950477658091081209927822356552642563277973734560092802933282805808594259030059606900079833867457497222298305214945044953509646614948893081038489188732382351527709710023742702661825477866426593595296918285673090943632924751871936076669413619960591640711477494444259954467443398733993018836920119404407469019359069776539736144751952728151176119531578353691985349603287557435610638550576787706239278112429687039781907146694308951008694496756934128701655171931064471038033671738602095098911694013575836482670042387789358246383124715368917858190338024705012514115714598920161239405313037300311459926953417756196651845225514892753042815068282558407009652366010460384993684239264283045263161891407620789184103291506922134071435062235033808285535057622155831136830538037508396870324350327496907661602193368948274801486035441007109913030987096708135291934812661793369708950326138135026051233293403190878734023359768137470794194966685339588234852415951140758457118884868471627944800010483879301094153480648087745055903998836769333988216711670798066196360507770241579029101017107926453086902541073410827020641269161741588916470542242363010839304621649990741609762949001681880236021529704281184678291213163931869424572807136361902301588895119280916360284130036949586375914252446173737372460463004170899369273420149773591416685087409547523984503495471933927095886568843030060779574764676176967614489963266198178373648526169554630661883180019221979553972320309031100428935994739746954260453727532133748411295678684820460201052951473866339485221846607959891989238052789603051984514396801916542865727097827966617096365909813383182578920824663521619980188261763013956098763805517385774976431143669974416888705852918790562661635930453328883983857133583519406243397237672634557840082376751450612109983349511296008738287656641132284616511381159116671107290653868847505643519207129503588331236156526443974139711772073503228622182160140694223558901315363071798771547590283576701089158519888653030820122295962722099622864774557914844821035019452412302876716708645890075634480073448493120628394588283036124221005865153803552756665824155712746732298641732560983844406062463754807449632106346744427677453582861794043254671988824801137536683944118152186203271078124746154966919182922911287268339770899942619458557309628738703202971147817940251700179196126590862524391388532836568761714303974476822353410802977868904101211098465544887959062381506904407312872073691095934112368069073526790008221265105477569221428926510693649056781637131936228658019192706753210361999678417530989905931516420066246589407370540487090620765537374927788238167152381056147728148844011925818553950802208753113573609781706757554416946928550427618141941579803126017392481136232323831018197505643334612878753794947385682157251945996719358776490683367071898000124137936442294294198523251417719979606809823988270087751774587304632812502675895712510385136971539760444964106540531998196464228303725597432109902506766741458676054198464295214930036524913841534746528036493165422745173156243097798978829285104811557239616726700532271295168838533293729887518862757206639861730357215331501904331946674156025228367747444905985211980063332147990719021428109604912515656603088686260243024468488304340225832334459688183435958010120872758565568004521098432344299036447494580101800299015737983076494580685748857213470327831069716032918519297138348980060314188698618936942562195368407922440424208484515148663393998807111736865620377889571472158111583087774598033595479837239328055293742270085653327820959260431881016851261973318329707661117869007804545017101491516669753787758316046005977851771531713215914765811233879000010172264691229490905760717431731500311292310124859632960174162947313832631909440803005966048834341622204651739109585027982351995585736322415440153828237506908243840233927457555721162028180007519787505387167060174944849890220603253227551215496532918096426313607685760845718431673838639375696002188528378504598266820616912222236452936903919799758517721615069003695755158953276176353577989639153707990189496910243219336698145847929957246842119630213986194471291724685233724061235289239927122371311520980861888782113209378005610189088147207216528944216111346559601498288027023506748385146630036218729637979713149259116088515279061346635453893372588000051043349527866857611668672307666593493380753341189039872217486372495530813417565934563871823834383758314636485554452479104439800708264074714701015353740179470245745701888128347990589318500390668765325481307051784344429711589014069593654564571046492498461076290829640185133988043201244947001393108752527883040073470678187535706660367460693315628419345579348591471302596166773699165882807876834297397110507020566112207637504123494074975212739061637896115319635581621662384630248834807346339849992121887597615322927429006615669759560169539260925930681505075333301778900375579786089741253038374258462928463976848646839104523674464639006621829028996750100487234460603506667102497090721325897535808742320003343909681289498662518778212150516811043863324820503218269980902575890261971304357478204237498473513028607147336763916951279432343176591249718616080525226038353765348228265706923058487191293606281075182764513704246972272234448649969139415254589975673998571488180036285139994909013353614663664214683949188910771358726416484039344459709561178784874481997829661778743017424312058485285216077009420944404958751077030130213959739745272446078977137156574678486406911886802375674479702047046896776186861335115517805017093508663877437944147886700454831690304974970762173031783346192588454423672791827866922338261468206937018718895569932254613350395353196188852910554785928725307600573192230423455033932065980404341772671980550141700872380284320470430897825224653402949882512802265891127722129164292797178693474706603530281193620317111190931657696805942782943087593498782097112121744772829313207699045371021241829487530153632659917719954115130649761648055342686598343338762049065370396659388903122007397147111400803195510630734894504434516426477308785943133799231924850342867803332011845695879853336486510162959987794258050068501942132588079971537516613434204334719332488461653621994773938546252001704553229496884765929396863528837588846145048927475334748308513411493656600788541927399044578492321709617261185821731930694927652524834122683239910877680789750323838175628969679238479461917127604499008614628726146295005000053789214239601742990275622360623492357363583686468141559190105134486423424454790400109170093054913804689358721686384856912431186281099339819927737733618056997386621811815221809882303641513291533609457967640160526732680467177904927278096271038660673502345844890887426229367774800753734394176372991194951295968668926592608860934633230496001125460969562532033295101653284785682653507650686835620173441264395401324065497617688300949010286442908129705222558450438346673636590015338851725958917490182230382382794700019476075158316473365648274746660335582305547454541327560188926764169865048937374544719956302374762147629201070677233020937191816970891796801953039585115811974646546145733323138107233385555289436620492019499915391498675696071449417239069738288049945256710065679941588441377097200966661531394966772218091251226816603672296614203311060271129039270091462149083977636678661280169363479915658651692062937428957090716374557277865000738203281274548411750664660564329369574500472029601800786291177853119995153584804722746019065597314701046008633091237759934533947562807383916444398286927396175684708840375160784404865845812792669685678078272856128323403118371562617079260296536940231028861897237765966055573670134304561927456371747171457278712493027072214896110190623105529482277178578949400323080731873697159507345601748250726611550586251380635302527028343468309494211418177378307170464191484667345609875733824218505140810416539622695528723705946086554028006287079447643731864019588004137117699866827393321516260806565669969077827828304284128085753945897545841135552046407462237952369020832985905246991058653074027711738725396735969374482682442293709935162100426971294439569856548755791412056156846697082608568924239565080212761172927223603586236455230312899144596834711497298223740780562094304199749079082725039230302828906696727449375455140325271460012499695496687981201815766495386584199956752893301599503432716796017186180575312653686192461231791803939130212206557910911819860372566966447350656298472783857998189933160054802464867552214804632467777970027346151489125970284091256179276513576163676251546720006113705151170150883053713764525430973455368675358795770703310979093649398255590026936473789804560097053842803010277093216815892406823888568210867780088559310049388752219151755660938642612372810415632555693451568445635482863930822995661413795456301015479734009086518283596599574712970594432244825714075518048021392350570682976185532793639627785084273659583218300383170246866075785315123953584145131082919490584004658523539345856607054339151051166275165008234360648853361641379573465958599631429913665423928906865057010367325897244342300194527291677859643549281504306236045368876642732824759700516313363963113027383271971443430811168119331839396158831051380093323715746549046071157893391911561169429388577767287821869149617090110862564671908973746944019806892687101922518488050212322217077136377811740921899675934284198078692008656735453727694690330235106558771812277417330208633572449381006328900612330375185457975699342541328637850801834853175170540996830727108813478275435699909712882008960189353618090699577348679406447806789075117903817576090912321195385569802296991419303531982936974139720257496004745519688091177240217496326006040876384338187492181228446141185804087835638619719060445438050573717394566585024580399947480185143103532163246727109394295492554199611028526344271402443614770531041885097558573321830686044859136083384134174415029191643852141546349752858459914339874544223997281431490949891360922198695110375094699660601613355021863634565333069790730749946105228546107272495919954264937937179853084072347375736474931514222734740867627974807050072608220559719273979316042908705185209996286025074501600285280178167274019136312196008948379680198180453852655620891511079334664459364979408945159467455200205659041222615912084565279933579053733949552011923890157201001320458048924234319419290686480909680419033858079534381860018486473205641186506615731868619580457334674082896821252919659373430016917184980568859444219255300956665177704681378665126384826641515385731384346956918879340048093111236935576470527219388002245482174299545527387082639617819041382071136798936369871299548936672792577924335475586983177689456069638922432444668572833455792186062477701274874727395860614574659088425925051239417716797406086002309025983303671058401234191846275827559690623770010275740261958629882893829763555378823772221357234570497380003439367909638240118027713399677195605401476588649776931840117407599510637866813703997250945178131515051978748703183081491203748950043449319922412136926505858343217159750671408385141943307038975055730807860897781321386414240508880046490429526258714155697110636730122784648702521738641290671381289689852351346705121995326884938228742174258998896287283640955049110899880913077238504668295895221574826375718955542595446437689760802014938314183042724739316189683374324009549720026480808218893667726786251840342752341653022170093191144315935206920415154919724971514022631781881437502905404588279319753691645711412320209541942450682956408924055737277562036081114658992499889433266907178886742018434990666925348668819665886465017512994803658572267150590692443159403839336538010786881716527804443391488149672216648147016867866816347543837208867099829164942393379024375483304182054384829592334433867969391445772265909563459120724603164183879856156674957575899522981085784445363393557251864211525575339355985552441464869232409561491646279690743371930162381712559284056686001170371809514965316037841252731241805319647587004419509056185028283055235146032701683876514749407772257958156909161990173564876568387119570863916738782535989614609453284296411473582051187188246418836869600393780893139785380514741983127928471917791268580271906196701584607262449901968347221042474444725950677583779192311376569331789136290282807162259500893025978463556588998278019733775375893116991825068353416112440740248754071644089484458902457883998389040703772157633546100672383986473325252580937625062884336429779326143229528730822086421705299747218676774622524606302515666888758502161109555262831499472512385568692902286469461084637840195205383042606034620680626379605975897953605308933697470495383702586340209127630678577825519117448486257487985121565411745061338861727523267164281809742751548958690577438426340491974936116167126478521507831845433232008614881612005480670694244618856101450915613640008735524790445619530018184737269833502984760354593334291987207093377282877138436574306730845517111738531221942306474737877297340575018191902749414407773752151595237043999115928299167446126150904324755582188790396578332673478234283435829242356147834170952138055354147697200789548234215305402707749140800364503205197864074120868288484573589934006592101495445553709431137909900860059158803364529542434692606314496242460832727127471901108597865024628854985647912161539489403161091161907403871723297055990906242965459496392012600185694616670950830428882276353194716684145724537474241613397620896017159588022039142599501654014979559199333322969895978104299365100413868178314376099624833364907670932237986683323727817318728975906286675202933100754148454472763120599376080165452072133983124619078735577106135598878143667541886610611131472207397160362448331214097218367803523250632462923511266096757116176209674175825359946815901655448076444888136579738187649100283257426702513895665630386075696006770237305546333999936572630899328661145790520010135560162390436125424967576201868456501646935354835748569578934085500171246722532737235082989126859538909470913618692505754829224154771730249385088487989557375058642773425154956261308332510159641571667116704852048999814054996340387519349837375732684431942747098404256166514049890960192939478015482561729102428722672891660320689210648649666298293090964552520810324773212850445376792748334274740145301470181633705331938233659641824968299545047616935733125762650966536039019234750202104627478274488329187924487939791541772129998423411504381337276295988769487053635633171858442220162464097729657953949417344625666952878852856474285742180143547086173930010531213556898812427686954146213631550412162545290372074982235892307319321547717369053141890733525640238351070976843290420403434291840786760664072120926821099500326875259183000111260323917530922197999974082288397168635391710964388198531133288090659889157667793131059128730075870840165049201822345847363667097394457724402365593217127193278732322835353631719831978357537335957707228592106186716550152941671214439927872946618963579494312897549572981619349648787245259587812104774169700370503687779533731473682186267836904922242518023061551686938791793972004445993230262251339239089128168456780533963604146572301387080948371343937803751427023090479581211640547346560826444769156619712306713925188770539267705252796710163319483042345831797979713365572756039394343055180223927343707156964037145397433839597890487602725491510956492427141441726661715653709240701459120972276945192411438501658511258203848402530676887773458348420319304767406740486814590887833547912292274570092584254847193795463432285658127213396451627687868881257520051171864917550789193347395276396185982236257543288432566212941989951401943497391696716320370947392652987880938130943461023012321343474352776991728016903971537263453447382449964654694861792615987431624566461954326474361989719195533146035561023464221435407916809766667388684969248207218240020660979984196844225534997643573118721576473264881731313392907083990094221409700119067273966423363451188231023211262321538229401560506995305207494948394963029981810113661271288006773551745365688923430339442193770744964412185751672041633984096979047151529579190774272424903514133950250236433713562849922075326215820158089629720528668408268109863488293749976013292730660908693349276728300018650969282969690814187469413275112294294549554974534157509435519820566552272227853697769244568484879199047977936922232415426006787460198535208097927927488849613720759757629023137524714685122739351788552445215230047335127116241093579525126634180416199530798513476397727470553898359200813681766126506292189469381390840597231541446973043462895505832824241468672770627860366627343482592203623354557728805179773209413890847251853072907845384805150205745305101850837210814874070835740537826513521588631046612018380188687270537206078562596919906604847894500071323213135072141565106232928060671185589672058606148517751264236553102547333806436154456662925081720252815220768875432856157459661880810716768271800191616808057551918991636534754196475288487845731467321397515740321527852922347941526630401168557375154476604203348235574552588421663203009015741100760952833631397547945027538120226465090800252847520949289799318144500681723087977224106103757877553261477051491738348325827159964589491243706800987301812777457418518272044451620043407118601252786221795357047003041905034568916034035722284933248033032902108862273484275871490017706155339636334689793967961963951886763443068581848167391933915867750655594040797189964350989387213182359237738600924378239587194427880727077118994014644330501169027083468984530867506352407633741005402584103430945983323184339239854663731817571722131368812192533663048414276148472187503737590190009451265199597992637452671601291876771367520156449281185489502030695892542146352614064959904106857187628478980310427875210560611122152690055705028352205595877326339780597977557087758839092337294607964003707277858943609195318962208351037168612975124867451513912955539084404926462571670506026774963471720067294649586048866521246421088515628222055238580566077848225355825313526253626322780258023680419793977824018242504697550856793687671746124238829783064409335453703891070764551217897664764024711210733393037801245081989425922474012629635976156905290064065406829764830714634700613966355042882352552252560078419861257501473506591686607975816048051931089758420880407163364452663028364651744544507527844015453768143954864578993033609683524205215762414111244345889500643228070180246121427412602282136315912049586994938924881530161780638242388466036440739705935180976778211023309766206419489466789334577969439909894904018022389560597786092511116093483657037450957017813144361218845611694241782740368487521003792788483381455791240872166058766786626690643411288534329826448171995954355991161556350085512982103941405428572988488532604501679440998926266065980091498854021341700316644933597026652224823576880022137926239862918488144151770494017315576714813959894435321578869737864774399617567049996124372553665756402471198209029929225667642760257956156675464251006860165628761538463053442253315671667916111383980529059393404875225044701281111355658129998919421350843644897057453476999421656504362297269242873266841644101003720572969982831797893300846327794358449019658818900041387732316752637533258048264606381828870904425271951743427181294685164198990395821230695655488672588228890462436456739825047090930727201329611274942146443163191523231161384741614660179399363106400682149192799374213756471672548764026016523218080425394931836587252930823249628787737418109578464713818675803469196954277391742271686977307076166527008488867380876964467512746160420840534135265885535726761627279091859933354188137612553243029638875900609203532404992139648878748877187616231557414150112017695943102846091270648549308939296757595946146027854467816628176491655079296858114013793023351733204718742007957265642758396132908641124608428100758772179496919279712935459274338349332014345072377926022662904725980930568733733829015100029404770385549405052063271710122426004502692288192239039902809267776030965203648916978790839935837415256687964343728878447897122173552767190752542832544455194824410776158902683602701646965273647302454858401114063784116462868207987096625184969491448047146148322758665395160498820708035116158565980503591065918491098494150242056578759937841169122789958233250493778582085776538278095854564469084111314062676430559459806116773928238779879018145652296423830796182821344487949300190495798469182011687954584911891910724635117682095378460801345204291526448235382601552564320520661407772242903419758774936681889181599989849838909512623977937723146791907207927282161744911141101025448362478478545090673773544545571007209259145947192306537502253789889975671265851460176618293470884159419967094462233657952718826351460907011867109535110211554266214637695434416072799404874454511741592440040106165537444114464782157572595394066561683869169367979448505042863455556488821506741903132034016366937573985889866674917777933377807046611086951902905489997531501218411428232892506916992823909036731243394161241991379679511141869170237977338787160683758213676179529215296092204841813854072036517834271254328091628539642571253852488994624132951805230375531994298570776426025248107211573120876889701055140187308579531135705128544071318244850903549375758198317557444659356250286305672062446851538862258767370746203252945157145720941565784006563249934625746484570313128975735120601569073399842651262880491029251086673273323767812209343516115119503666267229883551693766087697255831804268591488872126177362828788475453253331038439391971469373042382958950755547642604177077660041806129856339342575575210340978204180635690314536867012451555436085215754215519450646370690495288189313651947968787472228039141456600654141007165994860816188441698148837180063802511552724004635912971058774804815837320945865144231289978346859815974695022327482959238339272037440923240664305354862808201032436913700695390027819413770391526190668676848268970656709100226237775152657733640775258510533324155770460223406766454508950257917524030799213321837405980000674683630568494684864350458796629698055934577879418870856912857162610914460134817306657952616548416508719723144939074160613469031961429536241606417093944284034618870852970486724742908568126292343153952845291319349403120159589015640135727902805162826379837824707671086010273409086548197483203059725096827554309340545642627158824194297832119312651680470208243520804552993115320261500025099569552291082494570313264168423527655085951019389848616196673009439869065934635769636763114325552073394503197417031356842403291437273601283375722149516769349144920311529565496735552386906761947529169318966061610403304118618727630361489910968013139340000524567995360166730150302372487480652955097673387714431044844418254270501961231668324170143764187586529591324243844821369263394959909828250002106947316494028867377463764886625202190008866749969314128001402068154068980384326063063518497708133691946312870722208529440875621644777298190554046020223733657665826011042966438901544113715572342683721854059354693721825322979844945878986928802580921005593335099582086547326060974970400802382897419942262831301468216675225225805302514487948342575685468712781146644323538312215728818140294767449705028979912714745856969812647255041619066104177653584054639096741202547349724859109044584598778819444024342692202379044211247058252871496676158969318137617699786599412024092884095884029950581892743060092196967444233199221831229713933064214339068672509187516033907037881156386334066364357702119133563717426051549953898024621493487991932123264526907247633719498004158770170400356440028630354741565032157853148665788751395024117293806295674476363840578171311340917368507186961363722731567153378452017445500793761919886907503050629837032965247127991810590221202684520031926044333271766803568318623584497989776894682477128416033952094110161931307497895898996070177583893978980886971209407461924692535859470289263760814337569278701057176527324837510421787849138011690395696484073017795363816426745335521915926473138650673477187372600898970746973714076564010247632194814820470739741634445721827174681887990322455135008742924771780358476164219828299378825341467595204369615706731831254131315804594612529295587517265664730005538862231965038374864457943121163447195337393560958304047017953931999869620862038875220452111497069600698531696804208250809485653838248245690259623000774297716502422263491747772289540627382839921620922630869974678384402093174845071601763023804540417675172648639955894794754153575398409070053216602199336570262223976859680714096161992813833642093669029002285934546945306101213984496087318906242870150333211033616693026152973759494639428918843152198196802644836276489125569745337842316119135879583614823402136977826349944622631180033772587547979225008119532289541663866868292730950332144300832269290899601524954828675946158356520297208876276050345987561608895014639522404348345991978413421406041120884031924282085427900811146806208920965706611625026616384105729533134210956113575550263320376436927262616207258520165205088049680015563416995597691133483829260578569484418886606007604670589555149580099435256288587577309145302036854844364378607787266847136044620497950974062377406726075060560233930744001945179615719134733781618320310670755893811508636051219916441177802789745109189685421555689051463370109783194690200795061148929805257064237351883017085143593048960007714930729165189702884862105108280217773185328359174757152179264857690392246533013834649888506018524859867261964235254258695152319698382086873867178806701799830430288714879923286637591955003064485458348070130938904799415302767603566580734720071446453769006245598746662121080096842017426227737163633069688911265902498141255253907284142995667047984882361052871278812301042101699875973681494522806155708834273520016922378844693831046508034179639928224931690822767595751554724830731845623576428381528975026733538389078325390399633628961519372547236835700928057319024663778784082509176688872880625083217345760744977640471576749411982741915935677424335897666517345962377646094116181695175258896439136510457022052909124225677089644047400841630604387693022636734926003796602696784240264413952088966735563193328606168309391795294480910011570701307481590635078834854457000052398190606869831080556765188659461130488473434454875673592742160613392626877336003317591228509775125392286737677881449208358612496501195783744211612431294689326535042585848996568339619776979587869035349812831305736415448614082642291997193160148144470040368776079342510050634540599113419070662306228766126374470802624579446603386528636537420121365027414369357511516945107592721152488419445646834764547916998679334246866846931260929955275298964931165839648669675686091858404558631273363945221870175889594294915123183324647291175044359222388278269633677183596971980803386391292273106404509828293205206280492904675080112257336555716737215290484452582524931427370922123106068139395097807774178923644033100965727886766893358185117774335673764378496843586554612997337999116316490932746853004547248382770234715625209292704257070940701703039289534181540137637597962248172488783692850227346862371740053488430208108016506343054119160026271842823774033328139963389443026185121292965624914491600746177869872907500680354372786409409562499229123208101472192792705674550434673651315248499515018978428359327856609026586855629593067810641652811500311996787641343213203562821690844673579779611950585969337883744698023374144753277475023060964572883422257194141745181880283963477456734520792015801084737975017323452660630637938069380313319439495686971283475110774745581968296073877307475919057559548079505837543605443948888847857602953070593471875494497794786928625301567674812064083378888962989078801054648235044217250323370832162675707802296499172294116651268066524516183330735878066932285106599728662229582689881742252542810980395820172804097083929458597832085444378232985335708016888426568039718774309796537729600337644072632611285370717675325085467970104432517075973831280534265032787588767841266538134684601545143194604536900411308268109201939238510750349485611149489283359456304300138849401792104668806656133371972841554049829279340401023159698464239199322251414118641756461713032693562375137137243655873789483770323203942844366457761161372393494394801491231519726152631222436453859887223506715717736824107841178983712034688603646781418008969514872862408319918922919746603141932752933634881704697936355397765480389752583217747534103422717166172356395000745530208889411606789790963005530028846158979407729649094808798723546943431003117421019602355864261982829054838539281413748205858730739696509827757239366615709522330646696521376972889611675261860311083932118212356358134354013118242190369835578602115252662312283514970691222489149994958781307595192524824329380475124725388888605396794862717224634373943066011854884121106769648378575051983765501634019967295487696648480417745769601238034390500673036747366285671277373923887453586201941490125785135877776422864944518142371306065549150479938812244911650656004547569869474439298500730756196694441262631712689713198049220494104741426526149043623866867427367669851142771107190145242726985477465189224514526937634195153195153508169439421370405718383461985580476286660824174821524676154911880578636338976287679835297405659316754389714627642846581248039427394773999123881703019954538021764956598069272522384243331112409504175326196235511465600397517670375279569469932688004716128272535717855091615423181515599252001862112297127569607260304781842253619161004733514161976413787392609736576630971289663918730601748656856730322720250355514903024011850161275649655099351658533255909194368142864524977407935292205244132804144882681762756151196378328668675275553411724574104503026697379850976575921613460719862360214463872206192266370741442229054480633862328604739695594943641727908730839623373255384192379574448534450820793297158246963424991176529841898546283559714876857516262244883685853823863008168027575568306814150989871737741497360606124356352442989981605744415089760832210825081725242670697597551541435902940094124962550997638169817215983594369945105088075247831919037848978889543228385101385079832840804636695754413106283435902409382732327593968486474070734694235393817483787033542279221199480582686179080658643798338523686247463054435155061445507644238230230461365410863448695625718973874598632267045435921245828627703838701970772918563175181033587251552958059839039346016219557308972725082290208577342254481002142822800474629564643024483435614838450794142782772240866529266382604775072693159705013592805038635034533997994080280739057100319830316406451612624440334570454049734890812892346045567872178118005615913924762029840102750943002737847916105521363849768010280431493227721712510937172687083596609548100091086198507810241421894773461704164099105461320970257491025786574095452010209032081319875739454321598998745183865180080055361225799549272401956044140760149510129888749282450318414681998681717224827083206902740088820736528289614813440622927836205960897439888227600041341951713180000113386568876598550056647908378292610094289450385762190499530291698162064983408170827015135107740811302270030804886429970727449090107689011227349012114031947471337993391792168695588407612166643502066828439455286322291440251179645941416323016923713202785366842013882281851315164406799578421820675811518108546580490032544930830529311002058729184131552381108083420687588128795026174945638357564199875392935283067784396556781265770304209839750413629234584232666351384268854951605055263934482535253652834641723203658615842334008023384736287436074974841729591970555229994920389680556736509887057461655166140975961710499715458934729553033462943886294463470420088960833048258893144340416207031529570549031770350882971049172959597160105261993913696581975759195436303053005455671269821055560139430252003623602526635348003581613022939709730943811127418206593556364708134552762537363302904287672631892692585562347312555752186679332393246463374984199777000308432381602821538070723007720735331153073483707533937891749104527077626797192286313000387278703084911401406144069515845007395017538668834601828452816418840438308746376709932661769021319416334551236288360441890494119565383029042714099707481919647656294149720387121863042104246769441074835349138917210327723598861885563059618500427741745306642471837446179482551262364615263030712387736810896826381958110734224243153843928507697652802060731496158903092666120279775772786979223849382380187201999599518003169117031544713383003735545702622577469430220162586332955179855126823334418427456170217963611417318965744233744330319972253400151426847737227937847063465648860697553071690707638166382018462854189627908644206161017744758432803844249120762513721135348589179799565292565560437986591070513876949058502013771830068956016378289610122756681840689171341823838209221089179320849905080322206023913067120723019735088963996064412055167075464149262508891780055388761541065439391640731786858587429359787901030227050264664998302402263370504454377556457119740342329708883819028611803595927324566461226668140149167050805844200065446409720874419832421104464875153304409243423905594474692326927322953017999429094058526409992560198843677958513124342131702440063662573018578344094000229377291807355017807502874877393041702801407128841143935891493415843689338519164259133358758695581486951664293195806714278501347552122306153908206558608239203643490424546557006249540180682611315525483555948864678095119457144434111789879208690387782473013824735627451234890144091328895903747514915104948420883254971543638184225517483618774409064850209482919815746151048034715227331565884972495694530392907532780788831636406468988670470416540075988952375755271821428964136170065303999743749442972302904468556991037949630953306197776101839082548414431260830498526973781136664510692025962989687189924545123919790086192259707604083357786444648965590577302553738502826473782231137760611067951410451729940428259425843556901426468023368906646070164855033584484300493323290040622090399447122761835388062624599989354151753114389055766636827305497034386586480785129998322075740643907065615554812044266884992542561291926094572342978755245997172883468381886596426379324431128345491993845601273731957876628495009845629253834197202329562906992401450049497959158486634181898420519581035712786705230362778874747628579736223157119349405009119016806610988096640181338782376212865330794684623385784731208238315628886313835136398657273263925433678453039853103700483738650469957103177575591443209554829488622180492178176403695064693388313034648491078009000007868816529656383714889181394468976376323441280682457041363050300718993012579237750770700634674770283233883356581562226589737041910466196191971159880575317486059762214956539530988592008159121917082804024741845687940447946793078465306004401317612500841355907460381782973078057711432479902454101806152438638797210579907889924974434158251708589209781541219570483488895734077889685009576206467648571338888651733931750063112425350302038153808244995155095671587128159282730032829885641587219877402910142383327187457071682381038621526713224241552690393552339640081129868110343735124808521699813502663423121533176841819815601921040704674480217953239443768631156242806999691332050351070550609558545805251846461140535582353436102800468329739753138459150660209687915148860291076926953334398744777596132436921141198197321867769910339569451343329408699755512063269244453654512834740288209485825399769061151110966077245521037376984012211211159363772654981304238072720781251847063337432559171545692465072672034022220804628291244261936184978591922310369756370977870591908098200638996038546593586740842976818613036533313887188544848976926907788133331283450377452158346091138839229719857573940196943455553916846566520812669878282480437936974256018025782626029843548769391261428321134141404499962608946386459385312159272759557039903829307998666310653102111775292639250221541692265127183161063817812165665147154801669607307066194362014861475131087292846068588689508010361055112327080845712932017059864398217851354360011515434578308183451711154775757754836986851328936926115657611016209906964832425519674946657841831730542272902995075628091347432681449671545990726505644302400661656174032570166013205373455174598113314613401018666433495147331794320532715819974728130350172869508262438200681661923717435382560281126016232899743033632800763677526813887261288252500330747788023182013259069354296889560669531688354620420185947331322656939866252398594929230306924757210825949084815720713582883496720029298934089542871850719650596874118114022405455798669994280692234299219039478069179779461898103935691342161153405854568077189151996091596526947479864263361456534078781062844145387594052595625330504392638686497972206276418849913490656563585264981097403152211123746213562757969252791442839413315824625727107889856583793924011985260687589293159884917186816656398300816962583491233316746571601979430542953204987085398969276379285287575950988437208823996925793802930043066144762368818474455342900456957667057475822829188993585727989487354674839077719433755339370866856342036998876073512404411354826690228441663432244974421261349297878047162907944534448017607939262897951060179498214292289964088170140564517134514994698017725797070918383124806626971019769388937541617844162700209732154449129648058149275154940990599104487246493329401611297591083182190289000568178520622254797899314123784516614927967387062625876389895053890907960784269305784668738827219830300628004403784486432431571140878056564409609974246937020708271591427520888518613989183797668552258877121387899527346505471341469351913052392717275499939607129240613287830768396469932370138300292821050046344490515679287027533923779983767247818486679179857690318282639538205744918858271545401762110375683537955650946286400968168910674031980154732326757422819874551527494932328126064134798035879421406445591062620655546574463985027709277705551223912860208767599436228086136494627231868043628969238658242466937056038458706983414578050364979395527572228950250467710005390784720823289986943613815426052310717835674977354793220322100088031798260944571023725663550176455609628123219803908064263240745050775062140621667713677856901617988798402856188293308629633228971475836578796214506894472502273840767829959762033689510559733423452535323004099594468405054162357847792757065918483195927579313122764054921034247257269317791735045457921206562053925731464640180925381821633557190904253025755057774278366965081489126789458039480166087601881330022744439851095129618415268402223419143150684143672912683878573199753031798783424316519109931078367166163784078306748351603037533555995629280187868181611095748158261903768791163159157258036891282381796935557911866759155008302641742988824333906958613252366855646189145132595203262552509913031826040302092148249265474951345371102741594418212759194462039509640833284468453493532931006125628700488025748631886039436636391128905341966298601862849276675270341035950521841785925193024772015896830835887898897983592199409863778672930475734911087356608862331909870319632002239376528930584394281872732625602672367988863179886960570335545730084844720068675456546219624046821903104347685439216648481039634335297814692254610677684591317497756727408021495771431420222365585457601496010230719653699315842291162834418137487779935897573393410121755654575318936373114320276642397167846278965273622267124129343327405075853480846212897152466808668668024495293288471187867523945786527643977410906697320739376066001889279698693007326153685502196664442859424342963745604502087056523211233554212305390135473706151500379182435894979503095974382389752150218781456962519068625214935174003997416847746384309278266709058827843769696218019309617964236102861976371251606595458486910781307683873239221615587762311528521983403045065127194346163631301256604978267468114169631660215675071942605001746742028374855483663340123155485162492267608245739247029550056653082383445664555929820266347538986195444925543895603475132680970448063155447895508931978562792709032683261224685248030946951574534063621661423626285190581031914876841656409288068981116593051053730202046860279381227870573016032551000419371365257306345991576818137276710592908423841719966041955122932901161727166073287611108665127704124330836890035749110530787910808769676498501212658411047881176176563293465619650314395125073234728454069125678449237071275369666784596661153809527205599395917173039638309265072089310736119034680853338801931380379577899970146160992042539063111977317791638593069271597690140302198789989988335784812952803965290379288292913556230464914349025007569310621309884809794826991839937047793053249423042206552337112610730151006277918966865143923651977811939157692896791686414447873251402873982232677539160255097877957332633412865108745540438745974379239330109606413526689891090806712628048687417954412172176637333444389036994510359460214215772697023009369012949013954126008371233253994139248240058639459769000034933740977994287093852458467099320258295477694785668707715004735787624404176933279339341017005945381229899985797856502545394297487735114892959840679261719275785434643874309797652908755999172940547931311657039357080718669657427326106877565882410718545502675321570446766911734266882279555697018070621472630489649008623591921108914261327026076757165051225683452867483645198955973690025309252501930669738151593316994554592989553363553455726414505627256539962878649311899095310931744333959257960830785066915677749806674190174907452409910240631970385785657923451270911897826030099066960764244327946691065169756123710139286770873490916623826592897042938782149687387960723254662691403924668828204658775789843101767315527067961563730047524967111560580472686388439756242554873058641736880990480971860824102632455613328835376137201563517551968220272262722781910683009402551307643730263309068147090442064828216649470228116974877094913019133641853183084277234999516149595915874100925818148024119985935764269185141872512306718713486934641641647537648001023497306455465519111158401496919581524659949958690403367241736320407125441465705708811233664044850956385300922188118070967783089881596035655321877441354505567020554842635317458172411349476592880386142356328638669784035193529239205792179123975371648006594669937296459967113009893825846514460650875780009615992111098842532668354461342509670217020212949194367688692248539538177554417262870221851580790422783197542463957135691401419475713100199393604464824460074299348299697098165368634155472437797024572712935360119483714103986394049812152731361638644412438898157327921552909711185078991575887134347495540265480881657027631668813021167223016993130467108647867776185003062668842344696273386332069125018315778231142886350879517644142314892649909300507572297141495688854421761551075848535926573014365608674898790807836735662274085362246144968920762874011992748672220039192586162905855806150359889057416539303829089650480474682402262620156986992474649904737631457180003860833958326638097008510511500117278776524070857422841953843608603652828197366720760406185195334478617332120598521526054338033084732216709867187951659033246351411185405885538025184110528787114429114517666607401025650625730749637051128399967833054773200144189124393186301004675923807398152666614817829648237694379495540069392938289848860661048425382796629443054654245978498425011354679951182012025477697975868769387925541626651969856182522187921628369051616156609123851103010463526103758043325487289345939234602418476625497812773693724655622660485460466137318453634364218671756015301325636711585774842395827695583026048214142653363963707915254969587252075964154905764398293705768454868185259812655761096788502733349365447578843008151374039578492902541670739995642633778053340541665144509132193815702642544678533700243239341038885714190781367006693643397378576794998286569169431253765310574747689528856651134754825546099942201718985291780289307302145019581704829521766705362735878975250370391198065802106219233061857860770933443872843543877962774858012326097611707762617301691099244393421289769361866835100110348935775975524772167425245351135942259346065821710455778271498622499625122811055868330121539494288382278748391145228756109295481073654905862054402872316305563355556645363651370815769132653244832935306665402929432054069882525536047928972366642667414234641601249086187180020237851882957484186290877953651551601926616492705223106526182268783047571198047416884320986891583949559760540726208637698923971728204442575101956334783048492637875568414754188795007655297670034455488499275604994910384217295355755988562270843251296300130002782993381480894790724847103533856894097894182932486457317778441338052752693093110812330673208438576771932274402537123037081189423041934994736653806446996548634751302829310352633016520346915701713556733980217244253597984956864695305095256883045209043268930358731027490310691493427887969919274380797174986158721574778947745230612604446868048623532463256005192389757347379414907739784359754313374150802374125981353971918107829365921944807298962002650025992495184510018544670395613810614797609455730085242617229389236839032163523514328869848085466474048612707714580956153732745606558877436366950028196706222730534195436549389032785051815246962256643412494813701801607470935397183786055828634986504135942274281591618285221372626763369310827240612361369300104837681009635350372321399454306983751793642433942685571534909164912279397821377830537027739407156055866559525735399623747075571820112885630378504949118666560031393731246523155837547102529855441807991392238012634868027053750026496898360748015634386364854269412486781444658994051706154330839212347977288368448243355634614573899717746590726832612266856469817532001513184415838489008061053425156583803656666333830182360128889058576518779165060308894947176245835666151543159566438425641563922332570837941552350354741303389778215155353963172430064603970298467545595357308962435413720849463713093489657404706728946360163950685434969649591873485669992935379407218965157945063897840091429083072102626815838877941649071271486154568338939082899322415898525640336985262287588953537585492149257608480349610550168288346020593519914754447382217594769330937817863025650879692717770546230620816638546895525289672070173292264856433719117844327755891984673435858959058968628503776057810717936003013907640114400537677784650487522976883591574901547404316788766924324098553938537008917089344297341279445356958504412494039819930010765803346822322116550936368726988123413622086808165943112211429956217727462102925949025016926209829694960202733190229281471243353228102083438651459906643149068526640340596073165361295895039629550105266162945208297880932357760029503800999349294591453744235633149649259565809433748363929023963233389033470174051038461017747477409660100299511180183154760904313606044610572146847522241397679171580821300637222123260819066574033659512918497464814439599939612886896849765195673730196575065541751587680283915818429860883785737712848539767689283010498524607325787254870371016175854901044103830973817992548736876864854583947744136784915257581132250265090269044147560150562799338729261484509724490691371961350274315713103049048614078922649783025470922396082788777239602258850865228574386045991087263122954225459192484428580977521765430801146006981426079022259191977776227544349576824074800773428561166639316136673649678331016560389538514963441912144948068458050745622300539350784488796297548474630844946788347184128363290873023777080764485678312914728480307653122345650709532545441717863758131199758644454572804283389618122417509120204636614982620285530325777011851492370930867060632732283543597024457195773257789968669486506045494096310016528219679620780384747692055120660181592344387302136062855196765649565639614960430675504593440013308468425335924044140697142202803245196525557985579755214855845157259996487239516963868116837058808665251793331787587660049486145276952830576094480231655450302820002837603026558472662041021044495290644226754018832855100824881775090901898769354644345861155570088750822138395065133658006400572104426055331495911420218412423888919354233757550173394867912627886316986587223163987235002723636998440974060318454474551703590269076464994655795280552448607538166488958749792767129369711964403745638593826860983911686153620248568267900746664528028876474475274110679524936405447785280292271781764462821801718657939848514137136581658069589683879710706795967459479050235968137301347102253618664609713707216408167188712122666097247142377193788200911548577196676062779133584001945965888814289441941210467133535346630312708818116201367308782936856822857189546213048889973067893091864037732022942502781811365517512741896705526238329539238031024899788436426617425330617164491664093103564538330725624824475024452473014666601039433781940739897848208590710861515138260102407744418108936627679421313918413297951439122066454280513106305715703431632611768312329099420243832428003089878843612490782273426092450608518855460618809153213378042977424777529782927059104899896591514535460014987778951816353889249455328481053869280893095553286507926912982867735925438209905085173846480815296695079300092051712143910946667005788239461046382013234309692350822740419090317481618469173184471560411859464697504684641109373963243709595816914611135653405438188365714941582870931153250947803504565441812470889854784486921485076413127436645477368342088474796360887820803645839953856261767576167818630105604965290786401341344402284069821237451474777701793725256451652631115678097554303761068967964812664458310884821482733972438310915223694969816012901882820207149893625194477092299533052311888713619549028322011936012975987946742448179381459375414521380042240554148984678043965282280257394063777466456504655990103979230132536187954092843098656110022331983825244015570619250486273618985818898136047244821545165780917197736550023568828952570502509578080108547372433095727226746222752585233665002570138705140684243381654514935300079367882522818103147195930920323922607940723769103704785341570780062578921823412078331316842796510751696572452260944037252277696939108530519337752891890326327687791118125568382689759452840819457003150224725071698808644337710459301589601140679840951683334551169348696288024933393358146840326947610511925875491931171412776256422474000457749705305513255999679558285325990801949403895932462369014471261071366734691635206473611072618617518306187361223954539569388346105918238889867375272842373636494134025640920856415158134979827091928809995649744331097810682265876623391969906771263382505101732311308498826716137433168974533918913118794756009110664437854331805036835023776462103783870396395606392712432491650976383370736375217975168768217962772067456654955115346004754964854844431967099347429940364911979035068257785132348776244874396809080669065638217578323414379225913774597708960547928785046879521851939123521060900672857476238961559370919825800756888108463010982366427399257926621057636479884955828128567305810872485107066297356086793550503001372681626255184331968341523255110082295644539525205577354425770118301408605606873067197812957178762225262436979088595605762470433938006186421590676765507495405132083046197330923691078236306660130176834918447024666685547132875233807634544276910178168607210788212151837764969626619509466437128095740465654740870340283842425446486465360996920752263330260656427150255443242587134757758129782224802777096228948436771101676940952507774729377618474813398119073595405553266087499205926608781844339737901230795498510426355043152227607651695274102381969858336600939103795450430188957228405473502465210613905947994264966187480173046876802768836123496552863176931651044460150381351345802098214340749314252043298661453923111768567402963864786905887935805394114095648048059009738868632082343880173770166147246373168945883978380468183014153545542541200856817518068379023512184975697269321632599839387313360405629056334786275297961050209495676987399247208271864017638023964257903057501173086806970920529414544729835082386739664313219152177158211848302104923136144022765542614722812591054416284967562116640676325457707368424522095126266164182754036544550831524220788784066060797865721466615208426628622600327202395750822355742596642738080300776564053341317804580652435090805475939878382429236277941956533167054596909263385856810069976142775390665294422606393133951742162151604093577263588418198994088727176258319389535358876185123482975033762979454662710704012499156685776820526938431791659162637533853178466681209574459884175640667247967481863803005096749875401887594603954185468759297993594108233908167591895540408075068529666319484650212144050162576684374496472847128926230113961496471235185742071072434119626864115180776056139682223371878090023984953802685089463522459428024024620082784836434187901238231053815826911765838337446506990531761534922003728594889138571676055381135716842968498901033981390962980085760535027538536424610662950260981474668634531488254422530658740161676736178809114016715550086736324166638340263993400723438175392551560700677933265879562650045172796913158892258243707655493247698561373600739931625825643907589314261453815903201477954502496841579643465228462485468909164880881905102387817403020731350446444834775670357848517504586098545261972744907201132670914457139112858873117677707167601856070879962504800216320263098119011156137585721757376748435026943565435305499955487972326711821723306910600198917255618671892827346645233296809227041403967440742886321989971595035014445345023891023447281437619158619616137129943846743205443195979885930437796094161421735210063774727819614881140489909074257576057985671128423223567183441436092769838460617410242032528688687160155832104909810323350166978516555744837099126327028326147054146038900435762958056440285036240157499402109211230939995475678704437895072868254189398407744061827404934857551251301613932918207300461879433581963297969059669170185379984830254734876912860095424277226066320853774594475200994815851927911000855450024844985983923433684939229544482072904200166174832577900511954072764707022756938751966368179093029193185938998714285047724151067996900537922718310338866458340546333380627985641368670603560288742940854630905312727620196302378845581846567552877259240813689997636530573302287660317450137806147286764599715287762032594507908703599898890198366344944200418110112657146835430877287709314010480903060319556329808108426960317251391513147925421969669087289170262362686152878268202071409650208838222363440560319450164048643580143483153291981455000069125921653765968471516692015813662718363779027261377426448130224876278555359905101246359705634336844674598011185784698801602327168113368051132060335664175037911749857226727689327369277410260195639717653784069534624782511241590767674988917654227657286351966425075060644360235347233891479914008380907800342595924557457754147981469189776852349626788147658664670668205933843931065249861306445025878847933640894890524072496062867338905664277962695999145321551990981633440427185401400194721537105494119584562476194336960360699647977940910416535413345218288002984366260434107832989259205035966785099866981048429086430240986330498802207436841703963029199695476326342586129659613240798014941883116167159919314682235052723755417916738575744563460779400718289954433314668710894109810663248260493787304741042520201785230371883031699898176340013800350473852550568502575040732851327784744857322837830585992712670293428182530357102706858809705647667462760944553155340679886870125195812725620647001338424159061828038079490676429900278300216872020292406013627455585878649047993931525976312548926396535919562369568562761636925304780061186946880798715107248029784924726464434249562095359236544411532142372923195250539150655369393502637957138887437967620095425831840832851016606122083678104016986171026092898840367490828176850671599422408168973583920091947936216332430890083204204541828357191786956829188435319499800351203091476462620365069400359791764800791353034924401117565766225091933439379451533176558413017394655322352286911743825870266837159837504346125077231036827398641401871593487335181126012591409467654255433948064592538682109438634266145909655727706418740565301623487349304302909142601269802329887318146522753188949551496325800163794319774624059658739268345016564509800459826679427257793496948972104314585548492656246718309300881273234799022307707200971408489380301310344094565692014487188792949865103230184761571237704704547283160427320745750666158329371131021897978363629523763575782514842825104354327509247346508432579563465027720545006708159441899819650943759680189204374762145412353599834443721813385806520032432804456934582598353181924902488704224813422898118789614304513678461200906704194598364690596146296327246473180061317811798357706254798786671694156280949416434205950320923070027188239964935087574539707727961670536412106500114874286763749888800666924054844014959826226309133079393252483857128523799694866690645669898513362798689775879300736401897828313026961118093789341235462241883353302544585093653843949089235206215977083843484405087102877710472637382651563823438134634021713308881652470858918380476305636946000996628550444376114474532512091484782097818200578083341895796902944412006844543271903634522724681959373580339313452040675280718678606242550145944708603083673812108880397241724597185457173059019162813058845512207727057118121371795104863728940359731606012134307255753175673793736436344224708519580658131000981426730512394128485176501881755664688359385315887434994037029092108466030477536207622446383344762237786765726505069916802264104347243949103047896106123616994773029744556206143369905349582333481187132412002590845384497653653863076252939185633060291593440059448303788954491517591627809468570925057537409833978394702897970549146262158526113998625703231145151470761627001803537076512700326843300222078760767631074981909497757409962401823582034501937440853714196055977778108453647347083810252770795740983357373975150440650544958433286800309738993388683497446775896601198075178600113120246029913516545289371099876061072075281695290758157103773862945001468048889575183637803814023213110156239648630375033956048022986024427767789640497334844115195465526447279687764508151053701697415231978551423763624910337396351264049707568045779845772812401088330260357858741890673011763745544057954732255103030435480459888745148895524397867094061196411773593875561889214346906335178574708865631623808167466179590230820598342349689965193093752271050116222246135086688421193437484308618760899265243426318675036100365107083415204998406337021409859938990753966845152092613311201492350836007367149853322240054816018631365190525534037227079601464000915322696528245159081530161787081941583750877300602488137120802053868137100056692096997509257629230737641512972349523939243306948209195644923295331666135789951352022340923018373316337266179200526049998087354173067712446062962249134079941910026803488698602703350615642518872208588981339895199590344647555086904692380312360878514208241325086836388190234393870258803095206614512599494937014352001290370787512187580424693403099256200729844331993089807638300705655448913385461527147362555526835960078517720387029358077431850100334355637513828265854949559084671618117631191156354885325570440962093745632776417476941431129962182960936483805382446053963750384186494780058900995840882343568277017490783978428440486176470114957121530625866480759870252457498926180357768039012355380456886203300561248794257312268500782888401790512837557061425645631870059124067629549294405585289769140081343439236559089290784063145269847694093097137722116640828050192467319434256758911011637077763275013718323815867749554500645220286839773087821468688327298272139100891015434833213244041502487715202459717608089320571729892259786583718643052883827514981707100671034146058998600094902292500633692572347417684536257387100800267888342241862828220856743169230702327097702900656498144714448178853721932239729156142075926355469292922683510645575533908185392992323557037705717171314564784891900000045046638369184724824088965173872821003058903381712628403014429486813129616671539021573832256702219782854108004034926589003003663906255572741405570099428793107141263556315935784129019462409677285172218650297530299451256911098546931668899430224676395069905169817418921774532995234457477761847715571298912054237306809308198136065234982639189424215010789091601416164624850677390536165051756813936786284552881189764604081112751023012781383508617324776788795985300268003509288403030397101701249050450563673708435451545785721428194658225882518498957758219877875667577310576801431259062006955138359874451333487946906278314203603553862571892567051782331300148626697720683942901519157728633347517789083094798826261754910040032891923860281476495587772285675862671282964164980160195330408534917276083902058114398797020687081642262078889742830339207807155218284129695460727871899394647318665775059552085787779270508549982086321815821044903157904736911753175147808130107351764277348423295511674953215914227806473975407069106732029567136022107316781366918944255148676984986997746344164202137580779829405023398512406227472387050214029142999185219019754945019213504160912052668171915591774913481118503440778194903214248375754611891038589365875514866401764269949785787901479175678945582962429627288977039037983973943185668796853588504227519111125240410976300444391191792169393918999552783956736557452512771941569704877176410176822601132754597705098472960848795688669046408317736356521523803223732013889836214383072040017774645483003450096448945843652258635744976603151477708059916490804405042915418533938128264635312013143206020611611186311713290567016186113468085441459471253272575906267992126875909226463730173684591147533897348907042709142883948952360499192032273552096921665467158163276881094791527003244846553915066509044192723228724774214657919599604911647043897059644917326979875786988120711439759365248107694387218396607302443429990959679371633422151069027904913620899388496454344171598022577530872097514334589139565379979591981758227430211878684062388480523971127796429308245273123822243955143020033011060036708018972722599995501345675481553793829703367402797596856450105174116889264697575174905969034619835670564990399107535664137092493022304487235084927722249078807417135703107444011360641410519163586229002794817300287437748042514191802968806485005146842948518042463876243739634885703516995086223826996448634843049391279478057100059382216170647597509155731577232570716648364329519094713555901075702876428772343501334651184871382946739925897618726175949512875942415512222161527756277068675464976076401870702462373515022335050382655503171884253197276914143509687754904756570473466028313149624191195435362926103619748945611825577514148736408154163578890771646027350826184488375693620582715843371771278915664469605087223736053542974131520960219394256508896420283766484686054663480817068854570751538472740592835016296951520300069614643828269644177854835238789559459604754544791121089905555519094344275241875200184302128654461306989563163501106194911314301705617085619959002406680399820094420045842303052293739751096073625813392096989346652264805797961148217025990964817304485810716585363173919520595413580970541069095025160221246679863802851777295949965018466182692729261177667028173972149898075241865602564672250065797849364660448171047091023444314371238079466647279510999502602042442902589235714385813295460733287342676334560246893435624436706427010741551201942410125554834959888338020159937153380643857157815388379084286502855696332830818202378924727626402741585672461341753974734325291984649419642351864288260124576452523531932879122713135695046260144383857106898613441808441285547071117017365581154885269708527601555135602380482764358046186944450894211037241088702723530540319908854383305683473196862793655692006929471734470135620584586286064195460324295226351354980335929366185639763094643697336814717333142838689659237304662063123576475636753670126412914084583636591133768748232606945167136062397772333629059271971605364072984575337192150927847691956671023357076851075853242897437901051782293590775697324724822873049157939141952506248484856922846653557041952820566825081413625712663280112497565350498554295730836041354829272121264859206300156368885520696995705386118837049100564754500110758720483944196576117743428924741724321573914561719666528945000021696123116759304214594817973524615756854516088263490678702993750175496825377437666219434395950683139008023113833413352169695733538563491906011844275403649625880418545775191304260624134151070848871513993865454975849672001005724735106383495215766956483228894680215569177993497114901014273528727239837874799480262942568103460909703379555745271823537080558858933328513939056374536517588230263116945189056098708434835189221859794934676108214194525140406974589140902703789501934704816123016427882953324061414708977189093851590445224312971141575366435079779554686999298356406756796370551025214151770691066025000782654721934990948116054278227981609865585514602224365693784015669723265698959957568275715022727780380005798541008861885257577725237466776002530433060240708494151685924751216679332267161524632012455553727601351559058918047482276850027738002406070361306281328946977703629440817062261774113761285829329988573732214300180529387383051081705981565045672086072340538617579933798285302122510732299250321368387856830075050009743146092841246501887192315881906723275133144611884685363911582187466179017710965903247417793040744040494308917884793475431873236576366774109072225391086222144239305643756298156525531866226841704246060085834740216133483260157611277873217149209023980659025904541489541043443451913967050406630275207166794421960839742907957853040564256104959289549884607522630604913511608038455633444959029604485562198268797766133098328571655762100283355190740182107446793203934571545558550166625205763458049667334295142909391968060092891216139822484090523198521063972084398612716977640571975741113662562019526420847097676492186561639157784657269626685636492365229958553318636614826314985411242291366680589291394480927175652955875231599956525009298998821030262290248836392485535264719288936835812813458325970719742706019284948996851180731433504791350336043904082415775569749287508623236526905757016930914464209348283968902615319863939406132111364636311008245163132851683396086368314696356660123790132550108059401738555067152697515132088408611911821742311886853299808661841489433102289361961499072054365440641700467355463929335286505498546834567645347480147566157881488717872146207070413007817956450366508940537215645094157290319548326505836161763532565361433148045914107224864323089567519481324382251831748646950825402537795208083790282016787933195711116462813808091226939248782714097099545192718897265802751978645576974458701644545055928283137538236558417276057305350900416965371190612405936932350734434028470959776952252968567543152057639270292565058571202802447901871642199552878579844496813574113267737825361980764638110930250383735896603637930047480551496185681456153735177397918055583333144471434336689561131330146204648700245662514248083160243298588168423573709845678402009033862257247800530083232661100598595847666980733321289532452498063075666462688425600078898133133797092279104444046704397628981126304661860043956588265025884757285598062510659865997191168029329738634166708304776661641655623108896908090772997587249333067373226277315667170284064783174102653919935402000423786189258107622011181400504476374148825412259411309618735150416436646177967740173028154253490291302935605920795392525218657602472037104672233530646889615689001139053684438172581488618584536367004678705963553427741466369604138547657288186466626484141941416439363886986432745665019125759474519414056439191664471581573146395474352761018802696366423012165340048966149863392201356852391318747628271536131285295394358364466320403088721437107693628466646951532226767623826629002086614421430976063223255641408923564347436373438886617370699111244790831277292840718188931348217428458936374136552931999508594417480733129279731073869366213224817683029148261626832169814999690520267181269129235442824871999947020419838022866073023913312410077219225839028016214819778473609183442169783236168297471257992772840433782553811987006209125160264553792279000235609608073180626492719749138502187540792611017468157655179746630198843453446742709742804194718467894969734066029373937731575062304036864427093627850978370934479586609453329477056959225299494070097240475632934657678461967571751501205934313357521328192355610095108290347135807904115375855003058149980705612586910984327069696903583682685038852649137687292262214251019022583934859572459861195674952339078617652073191678768187726467063181236287442784854223558384546168986159378281018765802846101618057300319900442936678713850005234858008927091823252733261091151831095952939759442941214874167813637582070426810129302626093663751524852232528110641209949633752353576469006679662091609547231214783969891512720808502091420574777602392807129794920616858965323858617722683090256881832285861308324700456962503391518695792678492476173253246458946213339819299062732275887505820222711633785569455700755550590203691529083769436236911490475004360546744958333973465563174143749759202334076942396864061526972943704441608988122631982413066571110724545814534903056899388222903559471966913402133412395793460254513380390394795389608002032196948426995362522220672047651856163186039491207670263627647963476596406266584760624864792603611780261638946653254376102113491752030419063149711544382914766178087795470138287719682528808070371615359422646922985460853146250508845409963975460735358369718836489571722107682185279316845902107558343956236778426704340211989188623101553359464747990527070120301529689263740653509633524572194037423199757275681758556674124956589962635250259736078842230907340785874844434115672829461909026388156724841681687651690829011858134832368127713553680466406621563533202915104889375596321869325684101601727648370327772239555737797681212373605880446685156040092931846220196029340174615219000683936802616088364522791892871896619980881571276256523175348173750575357485652304198141789643052413289336540075942729464535951274710012340601547500775686656223587445300560282972321838540579679573274302452922987661645200473016416383789122290729973746228458391937472995642644888167434606669690246903530318181959993917323489816315256845445134392971199601046909727231656138628942330810808639899683033455138203902976871458288589117480301845433701645574813318690292332672916673511418377973535961240227062842451997921085614933757631998136728628398124847948431159092694643992158310665870195355742929360841375665490676937492429077513310135462678674939751424962094815154590813331785622376888279817823529196146878948981379295373683916792580514588660018146763214710990946760541305597854364080410856026949758036838652073436250052539209135445313997209178196870633419690785387644560380579304104177764747361081130642343456001332034613592229981921596188769025905409591883305258734831737611971010747730077233211553587198186550494832195257573225619274960666656247156478116011760770806734735965631009164579662092502132603110957920243370084339538552341291844110850013061686239150576108333091250241579047368402227482737129878603762934909399009235519172850877521022041076593352085212682735695389285807089155688915776772221822797498815586467174793289690697626967698842330303631478894315353693564053690176777203769272483087643652320484460174631831021077994052323717512909049648176871629677341388243807534856169304248758227978918768395165221865444364869181090159044181413732197962215700477481986274161100592615185282782923572529116141053490156219659942325151669293009156758811058993873992079269186933141395198173830465287017393599259101421224623582649735213129639787800809657211175897763590888490406211084196202983645771521906973292143893445155375220848023646196381299587699922156832368488482973272191204723341195592865798515775775703465665335416015335244442266449598814683802003953717780769940170626352313706438472892964123451366027308695133995868097109150306145596548956786962219893450999608063325192667806366857424025445430985075063819662972515027458916746410098652446105085224931218489308992682439647464591916302056037248247580910724369491796819911100755602389692583259929064367714062308108733128379259416301796860997997262088726522742730466669063182945223622833375934689396764146715889278869986268039344604127728334386153308821347484084559395332280619895693829570894784007520157850725128959331501274226582272841629193590748532554889692551875914523258029027844990465204795816919186378806193978204934854158583452971482427867258053945553069343622902916798936521540597441126513746877924116800054305694875417541385951435615547450597122448221589348180729896419682821702849759234850580207018704651694703314899926345562016064293410603788415148717398110985969804979540007170413004200526995583941746168394102442337170084417492850769394988892841935013362899190334350714250515026322339720572498053557443511301486414925609919240584215223013462102376122566849808495582230920736753085402562133724174761528630805783282380904566798036765995709014586641633484007995346904240434409961130122901977957010736560945870097524603474190219959657930721058808626812215636021772169780599869040978939330364919382991933118948080411247348428981103217192691545143749139865842635335213292444723902619733396672362432072949088731365663071140762074435026777305150214891852646331863961515802778915482330756547225559792952671680310964905399298219007653756409187818417806529083474695003981948749518672400307558168130866146796179625295051496293696864526974245709798350792180078641181750950232561087885797161685409508275528826934082543007851523496653292917241972091237342516741676431919956894488201095582938101556720647954279738673473403635208406319855858314704052811254689626509839428481601422521571063587741474051304764210670966483518726116210533026789573700539162190667154030316732230290405475672934404662582526236195749463840638862554203857682753982491225799198387934258010286635165989895113046439998856094331543096844532578657657984283098321152925175742888298287126927805897978441944352587940354729225752043707757550213959657925092970490553061686577411445069303119952292074165531840407404312124048191595166044725692565139963102475044713836924548509809630632684947091004658652243564355833941971268060763092731220207977874446894286530083185588238860305970007507372685201984644247225192570498462241398650905767341863597236370263277261525931620376610303845817739508488627694436546580675062494634601195050547979347982571800049652622169786678490327088037902543956959767028873771836924208574864826248498388990175044971100332258569658078363031321462957340625242594529327987033857404458944646535444162962084830786954527107187299927581245182877714612166588109227083789758029145283923986223229568696380436123740770050313444139795136927718000038546294589384417912719223080814957003173451039191496808856068361740941584753610574895362396231410761471990059458339172819084790563845091977556681172940569157470807119499329055926651416956766227556873256096738606333851897741179828738907898678079597966196970476577564484124474966890381163678816464532823669078339884341179745699099431392958567808695554739427801442352395747016910390494752679367649837005792691777461992066458522742892117136947869325167170500098013898169355468374963229220430060409895732796556282062714040295997251804278020086039226762937047134688966344960444698743408057081765165234291028212507160950821843578211192518114137754034148558708764699889284664692317387657391991335890412606039761155434890654176754535272354800366175055995622387890251064725276716871783383336827073121853397649882710338620766236795579805946646561135301423847292289905344421785318493870757186845054215864144856825008053589314611383713770937147706661763574539656686878422617468550724872664923283826216550836346524973527508543125334132030935937819571590088048246795707272592486603648325059594550902170720040775054296987184589626871180064326674072636023579534097674383524993545952529372128312296198917748376791100865202640241780481919541972525647380417064931135839789346165817238172907701584715431935941001344697182592378652803808415295429121037758313653745602542174787537349671811111882845561517663202861044013979314087642276939126781894967146564584915792126895458059656024895086274687366484208436980949987415295337150979491877186445734786751231910659434551676905836795801458984570945913963072467440006493977060368587448515395188573397502640938792431057584134640093334149188623366690574339316710142305260240696547358577383931735793003439814201961075446338322262837009847153141978114991066681428596134492637892536610679980969311043874332822194455279126768779688888571544637566807797546794820787315798287822797971725120099562632037146405339979934662976529414707743287928940132041124896316840103902446387060740710736427137714953154030034907284373693796324333082641066374816246139382674159553327916174638383773710013157997469598831548818202021032803142269089684135865931931300645732250913271841666741084888458742754975974012161872015401040738496459911287627240109793123195136167571465044130561970089893814000666403299481500844459983246407196867355220963463688894895666322880385480765350177118011121485006266589761106550283650180032317962575702374384439549813905723414897333294292737603208637231504976227824236583769070050658622489885594764587972049307494824331619489786550978869156829743805142065451549784728155526399428322462838866996986307338927317397840386735267779999304496131625573619775976347780058944446280413210754651340479042067969418481800783038176494996209401915966519107225049271474719592347173783511584346976251755910462015713563816549282152557773126026639494415170509617791850360800466442296901212195870696773052481786507823262538861822322308945102970703418369124563921305304044791353057507605758151751325197038878391389879279537095662617219201271454119017454651674477326134562515712166482027867544647697782107182212986802112694013260500272549823129525651900829560374534405359878885225254407058546192337924667799628840313999388386653719425865322401360115352906514951224090501039512010419032346552900254317949051246500886055570874159049269621488307436007797357151856735560580533073647331848519324251953852206444474023039403353054758285754203023667480326595967940984575837005978363469528775713650848604458723181766078670050432645607088508863852887258505977359097462566851313264022198261007042469570780476420290343980055885792679354968091793622925126517181565136085599183438233167817641724926986812025588157126100531273451288338002530628703723176794929195340217317546199991856100069467813000293823405110934482145021791591620387161639829650976455144674342372104080396645692928291499316450835682677961787181043487178521201812138618104654099311169776252699752620809215154358954400940923369095660276537397418108767129791890036953077584356058144403976887513341727592347023614341591499062499957289323560542563684727526120614461103617897762206395567895892131102513008892026703293490505025483374970749446917912872631910850208762558468203975856599424634882431072485631042266002360894054210445374435952312786814683549963840548615926735644673323913056497713019942853819442359165865232033477191866782826608987178164932209311150476105588195535835151081053757692450056320393582728961519322874068482172797547519878941499655603158829025907194524571921245368317845252237801906724961896637546075494576614030105455640479485811586193190109050801625436903874823778281895536813668122656566789557798963599965896170859350641908809765412658313142720807597933733273432629242474307491496618569419743317858811213564233136473641499134050819640778310287637280164313455145248040438775012897174451602274907225033758614411298837102136382913549223437839872615208064937644024302951813561812296385745889856021489003626196414956721998453702902629875638704692569405902686671580292131345360088317151918650243828427590255214147882241029480260678599102184144669474645790187740529428777503853260747714435153240623812399353885447838856946539906019935096927677938416394151413528518568551019662477109725160156838861886258184159320662770954432079764146384122722468107224278931727212127005789571268247338250397049162257100431645900630946549722594320121484526358477233774460979175536134118748471972904698092886177188055820150920865662560026337323024992649357745259745392697721820083559646616693330405763067331954505734984716879704332847418273902988073943264400954395749074488888207714509940913823201859582605203216956255723660767573743820784000935425585400233581831172539623011747149106976871695150522045905507179589781442406851812963525489058710057196747088086229749779304145991864996848065422402040020226040876493006079864945459640312914290226360842354789459833347395047623072571027125915454799847710761874443922929591211022373078966914223333296272386435623971944461560433502961301472731163629110338753216346332619350135281006134556190006418303191552300332415611632952025963832889778021815070530710623516147673893541967592633572543362379315465714848986684935326116172003952966039487631699622398016362059328688163495110153946938397697266727662012670556275634252407792323093608097733018579532715044404659306300354038195315150039106861149420342686435110142486808241708688992479910417159260753371384518700812456153277920614532661917550024238599525477089173781528087896522337788230696659495847877000179780039752376929914339790355272018140639637587038373126074369691716174975991814744570038102428349984089958685578883597866618587528177105079657985023938651406790530737701690634640657378742006693303416776588551057674245243844749483329649634624027409352140595202835547340253679925611877502761633159148510290011713015263926376090613322128700329826626554462952160772515194839065715403051319386282460090191101778701330568906617711535343412839772024769919074659135086253056789392287054020876385676579505851362403115067451772786767741911265624200222267995538016728553144873492033704832883777853930776380728552787733730248846230293334721368288910088040831474622784279546211148680774706656318105531139934506746273788846630627200470028636139846580617943832559111684658791255431981743281017767173931863631607354890101710181287886275714493505465017907611774204184611291676202211284216574619827247299344676703711448930605806043063826240901537989012096851770508969859075172135573154818111960367886381677971185886964568467941189714381300750504189966372880515043226558965954271369172949318140821964037970903587264633745983121251307909459188108575576472620040309827389700565805681668530690596993208308863165135993166465944856410193213514125434433025508114973617234244238042711428240343568471498293785789743268178390120777581265109679588004412115602764323190356568406578351279691770696472080954092678327381413076749863094984452075418203719444889467045514650409423690630390976498166242187030383338310015647967945522212544853493315146756717972334471262188526386598191540361018277421125073639869358651268721569128952606710558017766224201873189478748352383405825989377127910913371459005995269292235928074007247620024002614906545886702688845528021055206369369340381407042185044467985400424806119225981804618470280252211601302001733258377164842739850196368399168453106345147085714109100707665579599842714183090407133675175453927903640642062634186987029615019446082461344927253038407721336272721002111581903748743621169066099594187206263850584875604901938251067851304034897182285490870932845365825777896933279353378557572887917023543951694715037150773552936991271217693428595123534253168944030428936018326120500564495504460119823344160003159715265964563867783229208490530133638217683387275057138130238898257318634245451377425062168607753549655150469972009224272908441093509799801576300199587289978109578632026462245696463514937002354799527814195815367242497348410037162255998503936021648123112181704774337038487747062712652029054595944298795819711550491114277121685965432288111945985302372050030455019098929982820547920498172678723957496553406642735687155286748875300537327363543704226202011009352741915983162005759165150588917009644499186530940396209601383372490486125800377717858844213125903231538672305998606476836143942168504937145142908711940036981293651113396779276025533413915151116901914973827361655990633924410336181685068308233014013113658061889342694018066322097961744522002869754647181775069906139472207336701612851896567082122253331226459314537581210761044088148864491354581545264822162076188026133027154543444975410312759095365246922358203903814909695051339732110553630020423582764580497028212610066690577805270324937281096273829586284893167984344929804978738454559448902298450757184061756686992677431844712079842720487313405798373169756452425456725242653614249075741934817369222368264065429860224000322314348435363657770258863779867097780161643034642405012574921662524688143385869975172433654181630160284756145053894177530829794996733315088022406369217285984362655544016489511976576722900971243768678271665528565574872881821007625344377155338048905925875356312582768148536472212851742289521775662781211180577529452009583571487667526563962769382269521834066798352399720819157668897641313767830520739097591140740592895967884273579919617825790231060475589740465222518978781925833829570237273383609133392252729313760423112141466145147812644276481029394978681149854869247985407350351300605049597592612596083720089693969490457757725007254248667960114037475417936044082332582009867227235266229624651596800624451515954344295529243113768370335026458965887463639178530750099954568756431114423310896494713705728053994564644314517136805345924202129044110886953885564764884375569615041300957887466635680913417175350514458426776491306293485013906212531134370893763075593543857079649616291470701978198644839550057347645815257922759026145658678879129682299219686371129038371044775901620329716687120827606620222778208710432164621251393730414134895718472021563705023172573086055513095519559004261594693543570770772627587307511379900193004205866627233271471216431679457035323733928251149757422948232461665002324437860287329070168919569282218484260483993860484682998501136840606771166202428054451212026726338900486096006927284049385140230892288964188189730594021332925488073052138159152092082302031062584872818273413398884127073619167370139749367520322226681672810330798790603244024128144884771709301903109457319734121552331257511001877181362461658587519972718074273066373796328703607654761151858901289583181706266552800448395854910852074849292161402923731732595740096717606190780060343050903397801358342147938419011497052892843637479583067694053570908838944774267227296578693580638667985801565406874596132812995007346674327756497662712739507378777142845355981818330465124272448105503681929176744372312315928215785686292838630948156144303025813765432761028405535675864407880402538925390945281929644439713483167283731967392791609568727427855702030238602247978284226487244835662339199352127098346627194118472723050638631196790189659555333636123947380586081262583510992810681254688258047673760494308223360297325290145297957318276905306599273800182594017095033225746431168585297646618336813061356667123715835244287962123153744876338277652566584418828755921819463274668403014125685628727449171754535169656817274343441945950678719179702378501959645407856370973184126543123155944645763754712199102572526579201086499853605200624297664474892672793908665488694035126505562335578396295408597234877442331862703066332409455932096634124060675579402309782481943791400717399751539969680823390500026268681279498488294573107011741480406288099009497582634718684748829514736237564540477335408487595263701477208182473952756663558031067690975485903888758121470444744444093304502075995663564896851182636781732277297808928955349197308904132145886670744377861080747369030256989286279131623387372703468157949714354511734010329453815142259065179178290288299898409536955658153401927734722426868522526284151735228708673953941830189263766845465760657895068877432385208243853158633294602349200427506028673074696091978416536596562328474936992826116685542197563026599959358471881976399864501143614522428551066796760329865837838579227638074602062460714205013968565334945952447448417209273195289638535815291627819125881262118367132501999055607229324861018454595029269855085142353212683402261724317147610618601806640117235920482066708562483706573968937348868314441635313476988227214690848113572885323350202861869183829175661030592520534900734737203126534387396605994396308164478358498677493611462641530287059114974357273358845847036356868190012382943584954633487092142870273334559620909923651907468502764137672010612984137654606229665035204648321348393962103092605327547574860602617783888255496362379128156535639495062571301924947050950435007447113592180994632374954175240615509104672155151549377719927662216701730019303553275069153353845868934689102213226499348752639029891557985726416993886171813756393536822433674366440552816978408135551930644166445360675208244521689143711845447222426522668838613437384232084996496877411389792580445062522156055343416178799812367038763023979659871334626122172063349801102235417306416706065911182250949466607419381795811145237344069411398877574208390683269974483766757589314464943319352976145462232045315871844664703246648341740942365180492143154995379885503767030054784663804887677542208213860978536011311558202059818013575695257208577283859307989774807606450689968149688727802459865038363999041642314596062567548857949058748415265994995265034234937481649808844061423546016958976665016025638844267700672166065750644364550670399094741870863957722657930353093286956124602566658397359532583824580176838962223598772118643556648358821150957513351968655596448171672172313315673449585010699062031468374243524469675491905168267750702331632899476415943296422788338830672525284942301585587546113925876418755372458262344675237701630237873048878968356027274055920996154070009463778417741965819922357970879431910579648037301689840603335527340705461766132106569736296196574536343986340983998323146289106482409540131224403129084179008447296036465772339919351782345674380132576875999670563793270839862666472198927506256291578671715532747747059864617602986393643591561283313660140503465060977371765569864243822249876580600962365579409593277772531608382158129524372763968682572962553206201220420295707023092567907158677772036886736251011526487973153223057277184343074703895407544823365924983840171231506618254429178083415265553946946321271167476557466001932846844113659954803326375655359085611780994925672894722141431347382994532514784591322413617884682349517468617514970026130325401939403544979538877044451076254325128036916205463373139433426928390369429172007722491775022008043143161230762689026287352851353385210456502274072782031129352897912189999438045494518089099841537135887428888678201814444612897705751109619645848649688260614850909332961669182930019903977395823255813616541326144466766378570739000180982015483508957267191886035316154882875753637032421835010314573606969105117856804897281495804495620714382433743994797563910987780087778491113016573749377437439418947907360096932215101332049421275539204293251419883222282167371595761531300048524289848176943457670306939560915583762583847473410680401787302910874749936286658793600890146657457838882024284365862870116946741916081819673445559533874392227049506123663051213986602849539039044891737634269469302228142016525657307866693891243888199093593069696874617927312838139839327917627688579777879870684806188936351403388643409051059092514259722869564010980088131204486878573747230842441296764513480563289969700535823112184622560423107904810865067794378709140289125487613138842312366176440816615531912064580291487970992454919563502749667509433656694651424658509554155428182843307177563996761234914249868107291698977106661142082947191764289915400906063131497839397424725692914496921729035309496692381073975220930868229966605896727295763792838050168887220647492979664706867269064751306364415069243187375254207941340173065049825002601744736081933677354239777297939290988599690918133242291855947344724067569498449700228276507348663755174339456934699834500010557652506369454121337241067244377612509920267934467721044301250762862627532207883221183167475046735679261992079893966741374979281720013408265876965153406159132979336395522948552391910400969784059797670662405429787094057706391314689957285323483971603212979196536742939200327160955795815970462039701710721703489057395546229982798769284636672543075267132116628782427779138477087799254772615289502178941781250748895252217979475239017380937736020291876666087103393621379973778983938172237224383894134680922513783427281873481330198704761533074023249955422563811290342450220356895529074886333559542037545771459477001557458016686140891836666558177522709328363487369353707256350242241725439004822373069320670602213822420179575887514753631931898195173830283396058307815592182203281405135067220980549235313756295782610383047569439459917833205192884735261496914199565053248774036844631001811096773788377822954298656395645516818917824148277353104798016821215572368429626370531881352587368154450653467221816545986055573036231423722774684235047229272741911661991955567802522676329448846465312710756725870585515651102694238169077432837410493720973309975959920669830850331482306541506966645439442078331423511265777010909025392890148772051733735851035748899684954037067507511811468296492167156940538511605969453944356419428659446000758071814442675007284029281820032835155320972334416657598815951951150311959319228470669071512483998574966290881087721457669004177720161175019981696395054298709121569833008963329714574948358287258363827111248809925297303739834857714672890427599782162245910345149734092390897892956418645639144422106365155187883076279600159978257290967018638870501306191580873494295096013247152611169613904581542005409128072097582286093093535478940312440739462927459608551237489715879070580044777529561901417410632439838389638912068141284566985294625700397726513347071494347769384060722970454077118624055408124553503894861476887845760913826524375006692588088798249825095788282368333044543430106346367036457739872525860333237410174479918830063736977400944421742383788909790616529002635897754913438161354500471779562527541592344956454268394482089521155086442468096666944927475235770009331390133014814116395857507091750909756265574042949339251460691793730405331379480117753334190251209178057564380671571857837969106535784497619576140741143138597197763376528983028289414921412453561435680348608964979394470449899152504238615881356017651052176655492713934854646407976600019015007479841045642545231812698169633947933193965524346539252562149346793757137242646309897915366923970066168606570791133518308582376284486156397999108312124259192041859109069855264547519260782255984955086634235282196613247962292822836703412213146105682427932938363912697807948029398077901636492245048976823314134643681818853203228788406952397538767745803578813170482346529619982519692336288131806170906672683139307976168205843240055673019378073283394809906034613659380947656681846441928813220643450519765237276952744618617141213798573145450732820507731472681544649417964755894183782015672162682996304531903702604485116198203284696687846250172300756557447096504910646867149054903047330750387755531938132993700663985501023392395542191188741903431879231255341333652533319350233774497757669596307556890122502384722817164252560230324365403643410034477324500642227694355525267246007434678590156341290505354308643000942428452871212020062681245066270168896359671570563363442846192172907009596678113356580562854231952279129323169347604066812984448848671908473026453904409393112086667218988140346397219759180891593506260017478754778741789502855515336912314560204830785110316154904747234114907089969800468191261495326722098367390905958897030495775273907786214379947827398324195640261657948193699016733755834462891117932860962848195650933095651963448482018220934985068853280677521652390979556729799625376383621477077814527940336584609795416598307796450627841580071718061417908743616968984373467736979555118863969942647979068047744302807603869287629000963755048773531163446372588956150559044880384156575802378625955861250996226658197943341610249662828311530968576006690950219576080115234879889666626765598611266423529116700851007823905796884725515243785478131712210767651529280585536603891362922567098753797003200984968832487787168299325727017379326246054027435880134904316917329184191165690448351326650294900661010824058261295204583014918836818461729593343361443722162137443023635368435976418541378983304894481765741696436742922369725540286398902990442982249096662604570517421174248974013950925298739536021893365272267796725236663759065723378557158222797743386580139359442458488567130421566745406951480259413269978780271881535809865960799461242519086386354497118741941073231917748733374295917436642919204016390218412922433313043110921844008836769677805373166474377874661169566275076959560191455807577098608492290754733445830970367637403873825344975732228332268097206559120885318867382369454976175378232198896747354946278419830677350595014159432700021543086948417607972716734653488738735822974775907023068918560721385101867811832441730048080620321163923224909914072336017885149014656466271146521156997401820265806604869698351366255521527474787102376179751441561654390572236328050667673741201682856165185416566269336425020700583215542372608308346300519292760643156974392038451954313178257216932515790117079784128011569432813138680337586060078161337604491027122833958079001796810402944125259728381138516809025535735761958914989383477924310745399721004074210786716199406465973061307315374047431648812444980796952284628913469097897363648780029927123022402548959484449693239086787374086327870156603386911694316785323647794736750246369764765900463080114935412448468996921218821362018989542852779450216631473932939378528985427520820955387949979741765543676573612369497390533256906823533265857629295095286539343598870192989436739684609141805024520299256602612271882773438877454865262306957785836617592129509951673096601540912118276591847201100470768587316630021675582934347014841242363660898668979070199657142714191830292383608847618802283355998911336189433731966164776183416841621250586817515720291299153270590726764954085302471270359421953511572222169868348283514186606595697284334006951647694234936908971287435317260240143169993826127589378585802244068571116267409941142433552548527337424725108184776231625818530638400422988527419761040358974345314393832957039519371904599353727658297618601363114428617503965282914672104985438811277396770027862240572234317440131289323776877902258133072127293149686032281711107618417768084002901573115013529534941984628723982239279070727290045356175303665422504076334432571524921985626229255826831688338495433346677771941816314635817962694571465531997541173925906188512158724691337045384781664316034769426982334298934573516398013846001207890608326283814790332893032517570559961792500721939124520181717608411726998085684882152525117338133798329120175962455190073792221138135422590190324078035772660700788896556124481029497870268813617023382644474042328831356901660472961134880802299459524786695587362839003491641420544367376584167559223155920622505430381034165391831580147040531639407103616178880658497346244978650694438490841828024965571227427019535191107860502872328705081997754527586761559004692670152920250428183441657200263453313680458654306034901941107249981394247852379345262816962596245094745077287118861887199183549894900598406081024755759903587127078264476307939924406168059074143079323440214993659960710837733459884148443671864727644360972835700002620826711512423978617452594358279217715085385632142063958229504886449396752178148196646955959327746719667016599285417855752061621855258488312387755204700828910621099050638202945693225180491048062849110192870306713191460143225606869290963127173684332839769888786198198167753264864910043159020765919639162309594210157198568752883418104956040033163267087228333691638507354506690901064655259781435927386705426663079781446856630455207848113569528812481305389140657962820768512068911884367813090373230899894910050666547811727241386976435942215281296809768302691607390155953409635808490985115544775959305645925453107342127920415226060332126483130835114582401654099650538085513374716899248012399021137980878392291791278391057177568148158099263544618909349915657933657159037309248941463093762159220889625617606480759429435842597250485238453474032270739027080558444633555110638145714844250015345622098726230279336096250223997670526972281203161681148942238979984322750014577213290650406930736742163395054750020795467483189061285945511371297191989091251311400643286965151050569251301835046759096293490757850957225462684819410445626944815302232303432537065590577192767308114183290641551130351014822670731746307708492168697162818126953124168733066073418377895410264979648576130412611730283397319956141244656045143027096523790890536168873161550765086439431728954613226330648487764996696887643537792000633220536533007086541027797484538433372712106402824693162431423574501538645002345127094883983583807003164735257708893298561050609305756944327334333044660646565623927746877427143283532874793041991879700087469510178932480293509309407958462260586876884547930864342751319819515085763089683929667233955172643874693937464108121182244100385950428231112722946248380075681683588504192151783593803899865378714178135478486704947625460016933817966370187179736412282100663633387794075246944220705119214837901358348409245332694186744303472329641920069047917425352210524226636603769171103298636562501635980989248835125968032732332131136928649305653741261615383099892725297476513448097961689587922921870953023075844088288971072418606377674880863379305042815750958374427098735899310954889179492707091614459182814133614003512351906660178899592969770790747589449853249992501009136699657058699134567189318189888662957432801936184237087276185779857329897152577728071303854397758148095113822674490804185464505346774095191422701409855909454552507442811832019035833469362835587624323446072944927612845104504500082596914453913195580118102971476732527281950049894674122861804928521192188398111690014187964200669931872320606027709933971776297826862258003567096318876620124319214681780425545111578877008693043565805145346292034815975853279407423867584789863869521991402219317666374665560841812046857994204335948865266699811521163814036463730950935174306240304730474466922206282035241234711909340923161750342372400721762710074387624256927742823209791042383140296814414743301936651026368224268746928894521844357716720363116787459377315756192195771655567591976306053368608574067337205410820246656762907288547378176578732339819641421595780030295282424514298972157039550800197390534519764324279960738690045007131854623206379497787185609648229884755643501292547997499023377569278694670124125867198955367967036477382922743354058236952132158096877138828206114051906140614349089543054492147907226141290083420141925991586244835121478589329553929822280882112421890512718811939552111898427151993282524524225366033514504214933596695712356605070448112804819173597041648169524397753563034764941781615582920273545180787148511058673354448685882479529000661861211582478329196636497078637329267794239693224938423261390801075965127199252896337084163068427872012536763291421651661907346815058977558472891930517287750378617323223192061366697636735525921223203743622177385546984775228613949863532923183946596227009516979203817553305504775982032007452309617124729683270355509033611130527598710337519281582252186497796894421163973156214326403404573176430504262043140360498352037047813800799950057563649889925010326806825586843449817946653227656198516781425657544446236225140992704150816932853147770534984113431479703068495975744223649090968122824963552039525532075340689845826642911067153847301145298140262938117791715273293139510777565293696615070239315644096728975084443815973133888171333243102399971048685189420439277211800575936817950870026368579975287534546051196056470688983262454674730017421928513497396489400629960098933707565815131338010833521222977513427161979473881035587521053029153030178946654452248084341771377539270075094577136299864637905811678043251909018567540219197844734882757771541961167803869408990291439011800636099189624175855851759761237168414701932487568479923651704543767033208450506160833890031013334335547165445571800620703623389201052893952223550964390923908420600073025124067261226822693825238689638183056863190640990503679613472164355315252043358511451901601418908915280885571047727217322074180857104406011722724001822670336413057206016653999139957152312976318740615707579644187448664917453618460311080736640084250271824651804330428098177286577972302723056519222934997107537253624033730852600087180029521665697293525474734642676317612904355876169757234614192396940006386840940722570883090382989454198782097565575565280563602559357308880235955044121098720490125065954293424799143481485081835773665271298195009387730938487074949302009257334014088119197593324113906076484858542225716997862765186971191979222770387684417816313376177081972936741505504925352406749195321345365655999078076791377929836077509868989946334679051360745602784988608853335160061610927246167480957096748117458189326051600189106927421613517984985921335933304431174862866703427714374725636568624674638835422482817611440627695721318236662906467718510922314214305324682351080466696009833128097184482741416378899541257347209768936327651817845474072372746094733018625365360872687707834515776164959079956035074800410387491492790431589695437144455977053955997054568727068692038466844153591268489342045722316168491824006663403917559311836010552693060381871493719808451361384551125966444614293567811880609415339003641912082198152804840101193748887773608211476233142204290637640861590854331201378687337635021569957281991994517176793749958661777930206333744648621595231824978692447831731811576985726186337545988905416110381739773468528810257020673517524153141141324073090486813297204639049526617206518568741468786321732711694477555711586505891516998410040658767223625863258598798223588983391427722687127876102096600483658056525086431519364112181878940423987631841078987879152855453442410463956614317708247858082580465955033682912151146709081944571705263860375248056103951068706687711096538322251231819696249106226855751514792479110051846320471331210431621859067989969762081137855827795448459029802672073644376268802736215394794241472542919696779703286979540496308153700555600674804565154083203482545582534029968922988119827765189507315820781016226031555614515739808768701319822788067575392833900706062987477884129645768586195039993871204222421230371253717550002249829595649652589687265471337067503797287557667989106450342729188761111605320884384967379339951483428228047419372839117839335827786565405490426460704871169583004238164318618685654452898753765526864741240968319764004529055354758306818094037838855265203133393043783433440582603456157967955879196135509985142595431213601774590830805747851396109885986877606467177771151172634942636756631261568184634743641262090571468332571941736520895383430056108706611409523774135443154305826460625793941269868712235868991446421988676342235442850910602100956874439248381719080764186257353539072531489074137372558531212495897242660713440367410650850453108270425683661605051632916866744820784734318845429687458974464848890423402982466823737709761026388377255698957042480523148129178965357845074054991890324619499949001855790525401028093541892888640820998815287299428732407723595112222092178241380626707845769539759806585589928709086892286712712269793957022943853186432068919852064349556938464483247765899785665910641667341671369874821959246723159580454041473217079296975856356641554063369077781178089459972104111925818881166418470978107009219715598842371016627590904225525429270754461530725462972056919097620130101994196553431624297984785057607927587346731304533200021416267927782047145061739488922581180326417274618297538206065561749812151283473310507692367060961778669844958245145443139116887673163357460547861866855716399001507098395836414208494388572275565801245205465297033633823845236313243247119537919435635325136646797689175352413312610981060885597972221249572386690318835886167979648135556731996085085146580931008230790271506359857889206769014659934385543158794338010842813648944432095709269096919948182963810651445394619368867078675257249982879874173598809662110453271175909563096422635500928559834237890197895089831211178167099564595130346986757585634692863817482490565999909212231422202711659437319943343083224843949070156203201652631016160857104623649623306034859851688703658539098841592541135164762627130692577562505198953619861761918323726371632996336400658871197781729600582441349851529864791518580904729009168926057987541751427060086898827088281587270677907957404602156514682948301691019802894133822013843329451032765651738667829892238993421160902094794626880109881152849353377829434865471539246677481064511536997651529854759247915501521444472286024369322012928412260121514488458211322268756061147196338686833486286550076506160571044588684386588032650089328664979966871110558959432098975354060977863194495556495581535987830104828664851865622335382516260340386218499564336728933120692242776572807952857517904999340352949614456179333842142626163103941060781623989127853347935743229468789124244890282613013902946715398401539992368657488686045895935353943772452915166193569457940954428257379439018252698450038764419585695675815673165451888118480108653883891160686604009902070626080099234236949671851784592882248500047911887645314024031375426069547192717097203584069082776273630000943989120042276878385876534851343267751494249296795527858948054937247905143205161831574423933333722161859460313022698559680434460757875084802251485338353063837986088338222908809027824548220778685231097859659261271745195791479806826787963480444076649911974867130538211696329006222683049865765316310499513562051836694089505847523944353092646215881572896109050688194145204738330482175330972694066139019784368978302710732307897467708092121810583513021322696850477349649457969209977616908076727066693241130825044123381630262331790130239311482569883272670534094763719717290057837602964672562478766819602541977150389030013856600717777189024221721938579779805139295165937202432030957094122622789383382602195123915488664334674052737097291693409914402722901890267695367117899454958031893091974274584275213296424569028620257694218672835980144883297714159099935128425603399734485595600861630244705545161344438552607917451388520490523598355702304029646813666170510553639022370757099209071281881273194619197468045859621351954003125772158668730292193575121116172082968895089726390731121069691021815099431568053644296187374455841099695155797754976292074103074222317870130447035062392802646071085455204337453692530710093052989468518577348298637572449290790691832002416202085760898933477762529339838169590353180770058481655292716358824018983117920987035453397654639198249966338868769708051692768795387127352043790918096918608521543743675050918797237983347123931791825817045315354146848093837277116563301955358001967080949451890544352296733251870158435139097384683853664465950842109977353267116428488556378478688363698308439770143384944729960198670136724145395876195989398029257126249042839417616360869941321936587615304582716829981875007119878250476217575992050349181163636031343966152203850805937484491418404224771971721651117959586346029921804763293322886147095342665177534642786780836643815032461781868042685960426338994186544254968488353573408402332251124425562836752893767113571173937524205041484926346769599463179901090313436869576567628100942522042706598634241211600817702676442966908050371423304087210220611136055689273109492754425264445815365215122759958898850959388781914709444545951012694307239875904783604396922657186217438385505215338034525042718045344130778407933437494509360902588756760542507039361136560488949896756213380567108594285785745149550244210053662770715934535948588982748023928301465878423253117259978547561695192007806668712247300170513948400853522236773885793770780197752873945447719561266376147614740329360103513521472929592914728375235812222303759713525469204230927648134317337679450875798369149577612282903647714877659499225865108040080065095755836211450689377883535034541664737853192346816117854839844006210737779178474408505013995322918696927582373705394376789489872370353107212092513662615701316223051889463404404741328039823019229553597270070838378121332028772043026680134450741044372346758794332624321443644215019548194358782675004864024997751096060096859032656451696474138114430738816727562393005364627679743655059081682884820390476502969776377936770445882587904921900603290959432799359864178590172400622860177006338343122322563289447518865462781957243650026811759891772711050654230411922936401044200879036098384265566722716521874861350569651025273079399684501670305399129969017677915782007482670620694779217066178599337125733149852640061632576633489523060485835793206520049281972006837932716220114538738470761240754269877776944136470658410272625091383873991448486163070247599400610622085244690019332553759490576362246139477070600962740838387678203414866887862446948178173537240499456996520153480893236928757191989449974111759033638259943259477673431149846614143358101021507222190127845753406124529130102952823005495121977663028820754787806230329416383446502165719512701666128819958920825637360370646101302708550311047313911596183854455466307322059248542944652817256433790404650711369143628083540881680846432961286296295134665478505493281507401958512132722503098313287495997521212740694284425788110846376113091727308768234810096840221809297267222958567249914465284507154491469733701775572463667975828774044987283181955906346377660896521940935123622987372547435603257530906200946831715282865182878756434287981301853173741246863184041647418252290110702890124974319329444914119388890723216183127186305825294565677885689876454648483340393720364560343891514013643959772639427450981005100624742686686603902777108783180104480993405836399405392622200418153807519798601312199070646908849719468008071766962185729355417959552322131616152429101642961206231020742294093303346760398747474639556806827767388828700258939325023001249499571535307610787680322446914146248720605764860404046221315249989014396416156622194372245520291798609230876736857546693555755253743617691831085087699438396115299396787600756788609164601153939040093457250089176208685731042118396802541994517106872418159065702693687720715750602900795419304249174846202897439170199889559257542458479390307339732161138507064988117491469201393574035157199512733162910513712108384528644774270827596656373842147369231030299687330628257920745221703404410478837752063145027385715503976359703830700913730937540617362009515209130441212373295181602080066090150448486670580599202104597118547089766909469701005651145834627093216901109465114744620119889440436873663270213844194291763336829816960815476133773170513030054669500159812963356647175716452134703290594176731149528776303479142031787867444826984194586526549623924020540345825566778731385968624814981987683959895723225455120049537296840462796945933408156909066627917253476479376651084357048876542229624203076741712511471978008983198731936337032194296698569579911882928185663659409276187221092919939726561668129842265430377413281313352712289901931396322020945576707023507874578779983344961257575452215632668882072225024890278740456845144959405418051186294118343183303529005390463994681582622431326181050853340375293558820802898345319705603026062016252042006498052340903415761913568496866212358849547627627030861020378671334468038424572187561173407414953669997155039300470689750504957453069160476643587350768105941787656733307377535590048901388918611615132531086652834232881176296463083133731805095403946959903538524840966201494187233706004836414060714700625666060172860425781313359992748797108051073945500126490605329697391726511150365409817336740297161908311261020921129652089528846517182357134064840202489699979196627716379890264034740167197273983829495026999256167163921271375224987360611954064335788123643514305600613592419507163658729112957903408878783317506741749479630803269304934635443175453340978241498660412877552156081658850475791110888179013697983123398288809487906822092323319521112393749601823424622104908415156892426568920147228466307173883079449992359469372999800863394278978462289199763015591464147111798623927855883848308027869941424618994733305851760742883834532227310582786210126614381264056580700253418187750965052049869936993853645121082500593562760446232819717771242839285732371311674275377117149526694265965683805892030577138163978244679254729215093328243649552974188561770941291730804882026436292181579413110298517728025429048233610264458586687616287432879891424331586064576552320852239790271537235850441716215495510096323608991837249876384346215126811132629475079432816452441230224691474372569923410334555876578797144028190325569231550106020161989354638735405360955066088334213845196618283338944799135311359377225751798527367633802276657281826979148418045253828580635962125797437996467478549987599468930027075907816436420081038667859508511554956819631074113947244836206022484194098247942154048819836952187557853147111511453135286709767674065713355282798287000106870209503497257427313332961590607294331674225962334003968936951076974222519791021460461596367467105127064725237040240358366307361945361091453050379812048572590562054980107556190912426147640340797628733111417166142220052063273570092854070996943983957970321008221162629691110202905750422900197403359987700912022488306431506093637972128790842542656742484819881024010984882553763351277175192723060670603612093230230858136518856104490287687122341938398970748379928567041521300246621960571214884698062038800675492984417433459088624773435343604361688642828032520990494212647486567377751605937984179091874291259309474113718726218818195236620367720114701691903641654722171521409346786349793417016625298631516417453057711763713312261207372307168607709673694825621579936896813235604544182342219589401241072236953219699994250287795134243739476930219111403037019431101820693099976203359480273731061272789157563320347044492481977988708872985232800649839604653979858843511201423819330821917911127370930004626554199492848855532287994946558418348754942417131662661314345090369963642914999191801688618012482147688645679007793361172779934390162220715720967004274343736943861603635576320240245692222240795419198071928318444687636313319630021890159347967864838092948306670860203525613624727476972677014655600294149176148170366955919048064165865461515469497011232744906064104005491437760795815815744412798862640380681036670412378614567297486927079309212932197927119815194863035090657786827909919508813567331593940409428593525978009639706003976343542201200217761817628503882310199217417744964051497083173526823158948433388085416291165807699024510634105747097408071277729302612948902672672784934053154507988864574567464777435033957589399676403410344659288916132263701885809309377171038331946641223213297932831676589555412496041830397025434840322423362236545509534260849837843842115457329232757526696091104493130577887392074671302755296294830976398127598957789865639710157028465935653930212046511091120539579331652845395008929675655348152724929569774075581080341353144389729457495819784909939758277368936596354590703655990278310992246426361302140437177136417960068725032469323728018886567280595768766884058564935669796611701914931408982188019670545287937214120070403391295270146414767460027195683092071141700086468647072900945405294576801630596897591008427821700090067397220465830941443522290863485559461288038607717625130156753904860835895592982503693010336854320412845409473911989227720755678426764191433953379132237585410811896578168009922507780535358517185972764148609497690659100177513461168006811294525240212088469288822954038440208514424143029344076859152927482504253765057114664623580003126534471284193257765301766470351884529956257868117177422942878120885867370390029096346834622487787435457593560014452649418739900903408338754099098517337179282921506428146176101235555529237975022770766312634949416280573558262760725266726826556731833008526665062316951999878126845713186926055541172898411675011708377754347908547875040376533352587114868759372283742744889732605321980016149117642478010208940851930955099243331405917171791650747888542715362066461070606276306427010801441610684405074048343186508500458061569637298003562427807452049250552350596148944902019150267463887089088215287587466712147017537689354072975255348521325100719386940142585886132921549447727579294987161680936363053628458223772042385862602088926768034630549488756543832313750537344778982038206894933796842514309108657255757085980752212468509191279823945499563206549358575957032008180823007899712299468740549337828421079067411202993787581331029873926133761426690791133763250714406918988501861976380134204953193798763211712112382053810216868562525360357361476318691870118128233832872191436971038351815577410034921408943994576240712859771506992517774730251691494320426060841033500924097253379396848598743574266092267763349501748801656757146160316223654799944356455116817070004189296635279310112136900814804790123120530499273893730861324733962066833227219687990793020139078369313778580210621309409938989932749095056477228408906965158568659810531959160525962600956975876562977711961514657129885149333956612540591056996301520254397154012652977970282685749555486726259537526364537601242762925897282216748431505735520663835229767663063678216174786815834056725209785800818941801405038913091494315550648645989540327253032580690615117474060118546372814545393988347675393012943036238531880981400458758451721085679991274431830425658945970160879688550711754270815093235505160568320863492047749027444270873390971460331532651864582299839118876817424356988466219623607021598688179029353497813909211251747266125216781631631085639884303914066526092668251258756110948909696182721690276211943010267354277883772747027665695241619109188161132408446625341224696731270482676288788160408315929123729553199127421815629392891802681947252622772539525672325718949404242319068636555688523257172709984993405869027987621936805557061524892476701572391691476316276826886264465751090095743123584378336916247438978945766532810957128108411154788158082454264728605037232743069548376802260232507995030604785023227725152363440690674447436192945223142975595032093706690470982615233721271689109066006935479815920080073379522341342915056207567439565082342204034351482659525329679136873023260314098174960250120965190863870084552335712964580496691583689706170305616312810749178300995897100212552462623521863210095134310099743577718076972119624156505359207153800369458349621917574140694687415881200709170134606604522368862522649987106060778653717230651176720627703556761787770554409828640441899955610551392029396736358939471203847766415692643774917132262459171520703263265470676732667236886104372933991983268712031824105300787094954188992070951912551909010195870708973767901243687933237293893441251427246097243701576017836245114031590759162726342383777516525598296055559936233568579257162204156916482144403067019771110490332999774009445568752071208525464241802916673238853175348398458466719755195674211136975874352003260685661743478409758893737175714850689406973589047912606584158265299325220323823842113395198857340560066181465938461625228969916600547190396856274545801659152703437128802482481488029077697238122219032521432205840145877851981603175045455125547405831617618948166811080386242041646596986861454494085155089469538837647084857078226648268960240937531764450805398943575622082088229304749114559028465494349425302476739573380869029069558801070601702398326484936724753176073566906549084880487216323999424069622027754638408703036016797311816398968415020909691923279253000746937572364006603417472049119986277147492705493472241100649082433272603741356046298855298187547586251046762688153262597013452613011162313499233436214984664923300483180755937060946241514016259367405201740331035465395291667116647744935637314190414889206640550613847257790210943288769646291373376280252068575929341196417175589209874381504238515324179644953098001239366236175574983034491424213612087490001867566518773181208965048640535039140860328054585170831370260628783961578538836797406771105306332157368677178669301027669211157097756577093329218447874166203883300705207076744816281585860289759701208303656584379372410527172853358944618923883603791864055651651777680030507186051407151908889583112916221886315680187318388315024816901592278130829518715766418704086289152772722319565713597751081994031156437524230986205668986407925253913521157113129165884360496518227295872617980306707439317677003989326057775304623800193628036663188977054319114517242559253477431687295408106553096960383527555786230566413618847507619049731807908382666541127121929669460899973675383994117928860615983943938858390747654941228613635118133699474051198984289023593727059741498302852619838908667252966200236390151943726849023330979083947828267151750537168395913184781087648146206594068027061003292755762579010902944192592928833238390300572310744410507203433218751403068002136799012650866214362873747306312072064062876780022740812569329376886006742688287390345345433668238604225359206501237801492451614252914716243821142573352765632177096495975741060650187948948706790029655896784140577174049302648919426704357332037804035019165768903317366611661622448187274534166316562778519442770554322010921433645017941205115754653847111203880651002662055555532448999506114012200660237605885954623964609747540141587964426916090430390098654464926489446476506829433298829465165032516526739072544662527831047425183204026213017319154662865000865816590079235235329201077146862062667919160159672483540891135889511391959585381022961911303653759216494114788347901240326218760041261552144819082153704512800636804639095206807404054775208982742129622899578493636807318763219528941070481052397192104494594693894758057827850415739766898307571505346178629239703453332286442815066130350947564077793253569205781644978164147310953202340053089443550031089446301090545630744885051154391353975073586055366656456538938389834504799308770408978255872773943854562107528129726772745972622761974052477147223833618248775341413034345414505750564559133293909607873775672485930204979193809964077425642294595030909423876402883469837114595960676629809049701555495039176470292504917430896277328676377519968095786566063367537674909203914785560008350159832172360271084091308579255133540506603984498354277383000891832591799767052857206066277214212523844353000019698284097360404548817158287968202896365488420641070647288148074697739007380033850142618907081767545760594320507162095239271946557875530372879139559307141723223085521360363274926277611947387041645136043320834490203671722393802661573718644887737251388663699062755416807328907940330914807227411582673837322036971078312546434145052483811058905451446625630414496634592452709365616846231155815527710201626344173050373571418734968518905831721089758363686315623252336557516116178114209359455045319059952069837883450140812559094645575617290040961126010733444724716310145244363272186193679775328759930560907917081019614331021010999115878295712609391048227109528938602638154567329349601055449826701153208430705758483777593189949670543668047603636791486255544093180384213276168685333811013843970289360876062749655804658717286301111702119808009118410713976089491479112806091688532534149705672754312573355325718516640479263416147681482017661584171331510150706776175931938600758366243581895563467955577635492278688222273098085151033027234189252785875943562709820129779769367437773397184880235150252670100817646235997106614037742065582820091208152088544909003636218109422241481964103232094246480429383795730239047522089684213062874483979637232114636576870755992944371890338090451020986065129647955507536340076891609531088798400434821331994690093699327407858323409421848954426685388427719946239914120784885548551442987779075397355272861624133332777419847340243167907935727854406842764889353140652498972682296450798658265823666871978672457396189951685469972470735483919503021475060257524685212016854858657871183835260796473725720274817857786113158962722987101743539861481526272622681053434256719303816086661246769894560035389956415605969259902664239307778140329449125613102194911497671988724077555880753143636410671766705483853405156537923330544340319221102644164401912769387281263013433219861828723185386325675821602896304090232308003193072840702805924818858103692616674842991273593762483046501597577161548025451401113035026425461566106892644188194771217504670405965894227032661442173477956417161766521694319216807523922016310435437954059853048798107656944827657985464225511888596041816655950533168442535420730199095013868308905888289092499743066425829166002960882884599123291830192468284290299647956093045987643412430791889610039318104238667330613042745987534621620731027900910302185000220724915518564336264827572042561769887223795389139776030559506339332570353402885144080031080198307221105289541062880514742225866555353357315243716241066442053207188043056962179192859108331055927014196674362968691163733105608837251250378786872470710454775255256234321865005500322233668815770958813946742027235575206628382933463538558727958155550605923391576510470351234903510896908665741773092422999415556493159704098949737073924875578945979755531689119497929096756254699668284589048703339871707280651052123354063405884243557494806822270086145586307103719939304807519766443929899253175395304900562888659251552214559057910731437700292062042652569390668597953031183858687239437736931033635945716461762235361053574820409065636649235560506007839287457997551097440530312075770873019339860392003942035792500345956442523070693291508644802308186032314201896157438701932124542856879259697150382264005935162876909056217905525874015542328535069164836050777518452240728187444548512943590179836061069773747385336362001395328145554972151379407697236724994098148719560791121850949816917355418632909312851936848889822072278285400778601510698382005333236064695934606494600294375212229681088015105524337533469501271577666618075200631948244272438065309985889289404899872295500746217478435310551539231787623257740040252842797994242931226388777862643624572295537198306273198298089290320789932128924574398725625590869014881270461056279331305014546455792103262493380993109260400536317723862489524464921830961413337976749922520203623948181469608275308132023597588237741502486680088154448447059026593475644692910597717426287539027004713662294871310412977923280546985655318167293538916514716652105362946973056677996910623835837956960005670986590189210110151408931917061747687269687967329230672671728828264256328328898913498316326037149617386015086086107109277882219411690000307655033255446893616514475839257051189007744712772455290072764386704758703127571854133989913805114676181283871808465640378001105794149622541075369957824050957599799138217690612056209094725588995710821825992842496225143592190615109597037508266699771756452036354091520509224871681725474149856792725845766117102865985722522555197335131080674116190196974012879609504501165840351684653648103323782439422595500735307762161183403660793314679573970234823185265033775747257581553217396799299412447730368500745713696149432906868413240362173603418572640907157787528312514646088464193447112786170713103012742274071804889280466454068929919622619805440140273720898607263955171983405936112138956872721670324754925393879820883081749116966540082290639009317926251362269236172674668423365751386314655814943122544106008846582151826987927035843171674536087433968433427009297203306740093507685254259396967656129180677182719526903783207284354450812914540559389441166526657007996542087189940590588637765922262434194568093370908819529172818761162668552019742588507058417714477982143538258219536171776426452944034046664309546149231268908814544633016701905568424050365200631802732200336944283520300335249605846047604855103837940700515589680147976952505965873839552307552430732988610633330499858834840817542110532334731844988500055186213450675273847512668234587836056709927223501172792014979650895998070812427611181507482690228836936365976923552821517332063423005056655966329500370465491129025176798918298390257521641224574887302627817800574111035497888900178116378594855310966387469594035404565391183045195303413541450123590069810663860144144019695173404512994015186407288409717265706839828267610476270054763379589901797032947877158016809439315243789556546237528151689314164883812766636181796199423078001496758860271562114997956994530488356905547670932199650751595082346535746389021809694976712616624876334617844313946282765636512835730026036675922515105750382944494097214948891130935604039437682840128862218136477026132076967505616642885202093127644560782241600795117861971474945314675058251940169991522993678390149659484910025424679649924972456527126407479352283719140214282408347472888970653368456850317059469121156277272522592404465033595059364816264025026383724781087883309852465681490764073707922877868016861256914095777642551713692367845569394416164372761967161082412732486316739249219384025499753960833799766009425815954198891545223303453552982793507000528105003779666442530214423108750238950787426911238469581363143804689023145299925082419080812110777857540431652768380565180575936427490986555355504790261595564467376765839678674854054527861628799316825245726105920821565984779406854441677518463788679930196504410270890942715057783584971157044462819860694583299773912432218818720813368626973319112588727271525942098321221362102920230863350165642245062111365353735336052607670534576631182598708874312491276352835263162387420336483089025725873115580596928223414486575081010613504380011662372508806746536935409406948129856657267172833435762435860726547098356689746596414051666904368180178185287080093645574743218294423533154812113125089070371457173472924191951367095160961829549654484682656243748983468356908731209986480144536030230385244998983453633263762929074767655245808367706608569245325248868473340584372559642057276892368583689049925752351814017572278800369256944972287653535513980807825876873788972401509054883662540195999865189714747244905427539825307274152390329335610944565612104618684918083123235984209845696977305796122155139630133331023987029700925017400558008397722735583585211916027037149675844325105844536814631444205549614054988887240524065997689156153589916616144522546060762277532663565352550937028542915962879174620313777974488847661208871232959089513873725796201493057982240489141087870949566924146569860748858684438430009257831806824684581959169959232991416253584009233921345172824286905630985629919600658251820875914149243577708467346035058105396962192396995516815504695962404876176441090433835755733643068829440898468370763875815297456431689855215329855151199746418127089127284805496518506476745233615651268108047753552677321975177396850668227171616146625862155153215118631983781613257129595476136044102167839061600002631434239602837896339320703390600099488505664840558035359348563860819428038998936335746694698691377040548116038270948175794319979202152236657517810140628892882755272913693461680290906799413263336773726496081105784880643046716295032608831007527485379578941318375449946356819945261157817166306189942650392930761032365978892913201284286477863142832634072910245420810441480897906046551036811931133716166309076050650921150481861340903237309557724556003228777122645547030937351148826330885709041554240297729518340473682211166583606978745561859403986759471222414216364515099759179645427932685693331737054165301029501971121463472685513990505068176667132884325650695454949800616391234126210120351525923284856291540487803387823940287108527633490457825947542825118294600595207673425910548102220677587211679673793725606880937781147419030100264193537437906219278367778004246639665573703383551496339370649450146569047087695482151414929088384844888599209886924003088204671054307803934671315904348821450074243404302600502672824394490433757416062119419913206629879754150227909488009372667380976560987513382668196661177627844955580056975495508509263675348057742389734199766352483825494216879481363469369762012161304141584987973233569557412318673595205727681753438092060574814303142081739889162035577516490095949241527795876230289911620532322735269280621668515592971835115008396815860521013805946629773490644913362136748296861651409935414401500202901378406112000571079711127027708034890310616086930743501455514062808519530239805367882139623891306281119889296833235533101448142665996107835859241996310326037741908079907357023727274315756147847729458773043687817864151901216446697516922332693528540772550179815610709539111164378588840832950344524487204805962238518422461045086798689024669787250429119820442946196071107232649498296615624664914111976678206093497363933629753282507795672353257975503803491709713816185454790327896330468700961720398137406808305681334295609071879870873397116606119963542387280371550557374380038535272304347589258133333010786852588893390518753108840179775039437208711622108885534600760982197698003931971724843598504422280179496335239754517135830515338095262106668483889678588690279778393407205805788148763500004556876819971442016411035923423564387910178406229338336627849619633345225138045365547134253827261944087165450254747229393639805890562370100688664684602121521792419553737853220618219288429348540570418444803899131688947924590678176727608606253749461073002987858253229315520901335949266282265813134764002555333480091278663938396209816107029203351426415453761347492978288501089016902001302872848591241729616225449712082405736079961589430656703592220248696148809377396461569729102634080874578842534493538572670781127102797871486366096353308765804077055054964262576009720344254185845570715734884708603253983151936711347388173920052876751625617952933533355245313944779308106839434668967642770990114776041608935905444539661982238980081423840989194444639834141011424355901022355778774287570260408714271457895090094782800390792953320272707137024566298273547362360864765664225017679773520441526044591811270708684751880464417518201194480110523784892238230317362208152861343788229549692492382019280273332764415952262418203880123278071207057597543241447293025791697928182196914313038059879168975370993333548272543696806759313196883161678388850495628563151990836129713456594613712685870986709271679394019355015687246437000022062995932448245480399560025264484296325135293976376157279200521687310538302257659418550619463940827526582387607159475794631550196802870485837961143861567520889596379084145700107819663610997284566063457670901592390505222018427627992908853139937379158566024737109430786564908973048669960776484321204135917402594365610434034509306594015215793765743751849171218154382686599008572943619193821611775440860284441826967177922263902156993181626145990021174711077884744664245645497726874680910943194104403798970617524174986734611741442961193270952976910895116111949425208992054593848915949643731721372036646207864842674907078252623516578804416224927569723631734465623090894835371611745237976980463049444467734126541022587696272373180601557992282271330542807700558848959213003228766500691734314515854399814917051715068604681788452984312526807291038861331173918528860691405505252065271444377970249709094784868453725202432934405161856787700288161446878571331410541153941981262663911401168544714584876771452559737280067684087676643050847781046936196611399513432205735349317935970700004177939623296421943687256699744852137685855171563434898869433630254482813427155668554525632769838279464904862113675997009254911477539616040633924838814440672353829615864376046548604920249038805183455178289375357284412008222143705086764645516446772482360089491896424374879332645889116682366389778503990138523916346034967423103493204523958711423484328479521530027659113586535495340277643936856075871629162452556962326941064485045856305594441793070175725010859942710920328429766206003097174233636751041662825618293006491425376172763741792190827935542273517441550571920527593103751304276644510062425274680632805497043498992775540573702328426909930842355161678894241698516579641454237361160506591042637888473609572329997328789404031412796604422332088863311609767451873561889069112513075768758323772222585631097006446948379853151438521766413221079436752194173236231405081286498803038190086601919784540829424542411287855206802259010807044077759125365649579573906943618335179286797991500559631737723083442625194547475115147885726444743741520321070401440727911513946464697814650830997003179048766046816737937387884178984914407106912287166413140517314814020788621145145471934285995548025446476031163993929266992484759516191189255622866989501790102129708792378068909659994852465314148068458630907139632846178254211529908539289929996475862228060288529745205779515045829777454465814029341674636612322932659400080698180342861386326838516172679450900743464907560681339204250508022605936320618469872408222901540743796782890854330949416059405806998971950924124109303949350261807562989433644023137497628441781321501155704436151017131857466872536886781609048064325563937850060450156821396880526715467604836770548342844672323708192788865950413881263411163858655130089074755347884217405309763222495632120408054113716455410617573498859667447196462008245334239678094126622158523624324397916457546167704856532381260327097436296000691302698487090483101457913603812225170418844171042333347562947960790628991157036694765745348571597634593265124073335741524649817584980977297486647747822178562894327832063950388727661112740602355171533216024867432598990751083801741267450028706028271074733084930811808265365088906758892931579118613295389592444506966136534365372038942235033252393831237114620137574575344834010690259884477007519643536952142886945222279842780175206275701025250519753632213971353260045177567805872279693197222866802753642962721712027186369275542838260111539953673856746939553794183748743418691693936694156635179640416476522393152830142645575983179864039132080824470772503817844423848990058339959107180333654976286070308666188206307631631961480557824945984383700554611496408701398636980692063828121502949922583666797903378696980226128794891233409016661630813771153909735263212996274656615177702396690514206015538819660841636866078244321863634439682523944053447691075546799001185842019947935172399396106877809810978539769117329789816397125355870214334044276029170343848521252978999203947903661804901027221971253828236522437236415188656050284119275580298065740979849831856167300240723800003100954285529255650074945666655787798372967716916973612927632327302926590091139631629003915372468266790822434412430129019993397534957891934988067226132652316095253740767604999847873520519122145434319616546974917033695511460315935815888129532130806570719132083975303434898528086946584321632263741598318068353721423005631130672469428077732122746987110312025712183204009161777014307830090628833258924257695307873100656040113405867682232310129808709451586250706173550871888603625713968345065363372525947922868129319284088153990745277124076703754928549161098130954249034065794396627820903627300182850998035602359234787386681002980192330436073203593335050135263780392175896006736327917144180000330886072875581132866347580512873580217133130766534917640972848668006325996648640228830496698831264066302283971178184778059585618129105229503925362554846278614322172548688215780560050866675908302213545818247402087452482432289727158889993491759776541285825089242396084594050499516547642040017819498745225679821942018047602118144136770397008826233548855529663847319516344579058353666758330563923015863235943062437782747985922713471664037137150648890138515020008721926827574607080479430273820590006789983466216952450887802181592789968189289327034875621348451660191223850463290094680884645057352347272180550841103047389376876469430989865343506544796705548365875473013958698088908001090880947699302210260527085943880547441245374205471249958059698298726669187153355348639292551512678726880821332957575468602401034699408350681481640878852923003559271673353809777285610945413834628705084409127926426143600389418727957068424602816917201112349063674315554184268243994254557177321564314867524178265283509007670747241577310796962178018804901930034060254843451522457282314122820705101069382640662491469063182611094273364318377589378933211482458531452675164809827929623412230424645610253763157442365313178580961431635169229508160124820052905705282569552744190057414452174880449336876341969476548110566763241603324487297895772824256789592766515698240934112102609755061578558613850314872569436097538965089980606237255797564466180724013040138117618398441838020708705957960089559531900123728904623295630440252879271923688293823139951335977361517593751131846642237187393681964543992337686171521722656751141576826913345780724983535165688472691396820363008697591824642531501842454158837063177954729842803779176243445687283569058635076746650641527284939693914653932845954873615547884129073291706752380239356948055427308589041004811227026025976735812156474701348903528420933544465332695465717245053934748467969867237867101361807369260348665336453142404974207478724236150837044520542874965940692396613166080484262705922654538399120053711795796990550105648239853066076810724207667416734749484473294896125840946974753026779577390313289114705374108486310438147985867165135489500637439757998340134208951539897168022680380876512748796163876107877524504315857789906380691829328648829310814067019267887226771831802737297260331939986793861535484607420552180296095084105301988051232920165947468081473849969644794643321193748680890378362789914892826152703457930189688917459047315754647254812421198407084268616440129697158247266248079746124493665503390552213265412231151782077640257833845858413049247843493276197787592879062945870785432320908163420469066083657124533488594932121680077501280031809744985912266183752587952076246403847352652324978113756801551974120484928993750828802092632302225044113435735868184542065203405653954355022066100054955015359586006794507327383359686273740344143846082419521868172434760589701055923856956158339359631939225871925266835392699344000073545973174732322148981494558402855964915521797860453782572440442501471980629309485122774913932461608558983187124865839517251986544185162806344749841588054301020303361166965127383986766158301012252099581549725194009191729162645458860979391117834795099592315200780754171244175028670898437670064767810775763252418070413072572745189564611249182350741148103010444640973592160324576784883835105419952842634122121847351178278516742630487926879972968574364644298204439913960370001044704076067142082148908585024589926258106270130779446824380074194789578274588249632466706503957065693775497335847080077389631428789416653553437406488982746900908456590473602843973222677201600266055108423989810508498962196647891280325582011774977470884801014448712108033475990223657462987883992332403429614937636102103392293926486045552348054730412738090888069346301634273670413218041413794251350772722748368626150351494244960547457102610779997980736487335095554330094842188004591366972268687969749420022223745556365972139210648523660454379208532221062976732723928396171963345233307667391812490555574825223707139494859022232878483816669828793027405765063442708190942938145174418714322211556887867397796649985789372633450791712946269608438535855573236553504957664203719434620644297518121932578907617194721374165966422004665498181883262989206105571716820200850252214102391760049372119608087563870961412105753506835874997963753732060611221511141621896593478318653609528927025302724168980019862315068228888667680243853967594668484681605793587377416289535689078677466547963509097584318422009191533131446743670697766746253603671664369314764712796336038883609159219389933003778965876550088427104829652233184369824179033818334049790209007163944153981365498927298842675444712120007436981835854887528602581193051052359964775331452703000298671976293914407380514340050707152786261881748977427621762398644916114935632139827592841904717110801968820424704154148361829287756815795592089016548275297520038603940807403147629812213347894128165030755468115921186592591922550159404047843706043323668476902563729643586819823982942586827947881744532830938173513630322767545155498778575427168487739737882525620970055806658115063552746030647050533428637131006928962350206609141967492719665183563049830912380082627890421786115541608255904939303994236879898189973199864621781523186836140998148494458388718159493774024451646357441130408258308953157557865257867604677002568474117004545743273942045209352861670961096749272679232273499678855858277899884018587343076824933035640971459937463644450562933246441198043178419127247252131781594655420833615980099197303142539333520540408291281455944046577285158673517183786849304982407250372675986530449274549452000465173605242843180546868432143829757759012712965939380767979380574227405887069116509693198931786595553366924524294582832672497772563832704616398320663160221152778676227522990733240047936384153776085289386358883807197831052322715221415814208367277035755980650131430830980218865875937094297871437969084579925138732281563121848454495252232638133819914663010190315982809471358737199532860108888462954074126916435939346701506196902487222437347030678972816579126471564967478718280306448432245074192946848312268220825578078644050839867295856017134382307189714669509016466687689480208111579292472130876293488166915662381734620988003348375151672501715161165810096540557687926807766355342628857308386871579086870086499520832870235650607876982616530158097805623950299443529683989898105290296272849616212855636050184303373780007581347110429710765564880123786387051116032802621854693494014008132507425792607853146932595730483666035366011563836573620329975772997569235184005577459567946872372133660599172601479684099124440102364652605940445522858034492324647731444241557438145309704827358206694342890068380600460804158898928795189197215069091202922743978070976276621575079371935758975281751144068889825906907761168798169380141867661153985035911666087775521977092277654244110759851619219097771266529766548988484053794742122193673579690789153148967035730498940498839299421669689640028341266158254240529414450650420985330811990132621048268881167712367156246640704220574527625389356723877820005236590986556191532045125149569594832105852164496541795680473660205919095404890164591542954296213460685663704641027967954164599770833560796600134771771220268617039588309212821935322444661950611727350586496054989691558646499843363743901513219608839880883987654894908373301337572612717991660374008413341742621968810846880135587775452037538463399310364888460123970917731835833919213391171263185581065732074691712060948396392276987358149725446389804734277787365426539956096421275877815781097252666728799415501466729782292381201863300974318520716416102031365555997180943253821195421657818690366127145488319086565786986457175394407396584851883857411911501416333412877178303526007026532981185441874003307982749465685843279149320308423092503375755851502023011593136471675133621978025910246909106691732403112678587452538634571753511195939157116921007129368197115848532650063151525142608634651697038557982321845931249072432054487950763720420977543732512238349619877023332911017581579223049564561156718265147992360356186490917252644519854649017923927970608251621980283372271799109189741790411526121130629318725648199394924541619846454443543388000580119077167684106420707177362391091960450731879256116693165783844327683643667155333144029802740837205427060807684822796292777114037026125255852087503984842988822380094664505948706652832521876207858250157758875509434244918867633775672783437666319412679430969511035399539783136889133150241756323110398707246359957649311170901819227642722179916372676658274860065373818817032298369515913530847859689729573580699829374937321210709416975532944712720645342709432704130016781043135554988004139611121816388400055962489560249120511887400453333898532793144344855149753970850993085317381741214617424142280916054346894523779470428553553252833367462831793140575539664969024913830022980845678100606102821632895146149215862339566847539563170543600443928393957657140252320161873723794823359283466445403809290504082017960858011118198453213684630121623414747398914444182359416047428888518750633192830811118601354154546838033053087362402681963701585716861024111744267649738039976951330234655787092044772075532552947821468355018573172296421915862541633803395958719687242423286731604776785845735753005268859603208752237140624233466133227861121977610863482523473773444352671313487057128421261034151849016784044751943935288471859130714568973434052724902802540145205028062665002987027494069966901035501836114131483878562376964941632403002718322728035931340821956074966556894682502905528771443779456475348294135748241527576021876591168756272732705038647933991062371176766543955035415317838456445787845691283142392690338620545367235992314801760782957642006220068592697306870784963230052125964860523613220420585720193153431656449095782785610549638630990066295655754253409528256824436832434165525764634177396430788849040917871229984497581266107608510074889165502749159106004448887381294905466378440924577276897334819233345241530660513510269212278850285303382852298331021198172321845665302956004456565334783459875566904490383375322881569207654836399350665576966110465759450140604067049217924911116573168742139036858275722748147064989097575761097664953787719610350756390308795286271129825124937753767878584321453717930610175872963144447041265637003618632792418180554015026324229237376073223918038936229220458112154126124065288412220935361392571055922639332955873855717887919506592239078509491463881920005970136246217920159753246231775543043218725425727346478241567248135536627248747320091379588057077047651694036350021952803331698154996580702728802059554003458499168541817207410503877025312888210283385779263484034345744777881404107945219053827862983853522614770185561740792512749456572608882239148760725010283673075566140084658075363779677972880348283460925733535309514499563235135951610380847020046719343462660532867888389473365467012210222649829826526742874699037069372076559263552808870940678148251556302391356046733923964001275782432459094558424185374581837431388144006617109125565264465330977648625978184310404639057959258453228594304875278868501515254082532701920298568773609426979230566500181613404642798531008650161426866892539023789047491537741409111503910498969103156412099460617382648621649937002533646738703709026746320985642820253146998454516847084353676263137262332410609760753522689483342425440596107444851099906820114051201800376956266568136734647987545702591482476815040253115810066998282555761345599607555338612441034087554027085742472070366727414027325973211859789576893595168377021468970661275652707073113758827128336430898268918776709871875225116267670756802500119502793272184222563023226689563331426949174202414101291029241128391863345729225746493239232725010764613176998881442226895448916335294345955587396439269455107639642181340907694188776659868145281635319590530719163918071320626701415006712990057107801507132221369809893621190489363324443032394864017797396050464014604305005363022668447644419038249425360079345795904691360864717444261545641643934527650868755432000312125417706676782306912328515212208800227263762897070315045645392803816259314625144417815872025077562873907567078366508007244828215130587065902136122554534473456536669640764861469949605231555467614436787406552252609893471812566695913767765016127425766299868463963692880246303351482618839108880536596812501859111393538483197649529513725367404711518105706175909125146364854145309445843742174882604610424189706781526136466071855344132405421723271673428484486742675402687006825261040711282107876460816090778744532171216792193453868652292585903739844899441149913695939217407512760795450012050415813607912871183383034908324985157205766704368804640839699836412485966502834016207197449306167982874848014677008260517200856822147261375949131894459343545024649915252887560046688821420535923877855613235638524616822526795685991078445434824514715748216117072095660321340670494205348910346420030868969871668149195833907050609201273730558451904033959311677499182975839688832417494058499431366714613987731778773604699554034341655548776580493073300966520272778008768922048785862792907865877676376764833551597265956171875264441803883114324195323570554894326756684766915895229576336081048698618919136086478518735955697674707493542181335704473532427932669252019079379382004940906929372930817771994486095349559828176251106347509349350892830916690538215345734515100799351138767818854206680376833701089724561873348192838426512087484824107048902505304786667558922821659054391428157104500464215605321663916170110590275504146576817040713735657899560537569853663846555999817944046282789097887628118385942268504074915188809574317631213214208883331766494087333032886914673222351842352063943074913345951096407610797318189901147414813749521638046743190321280738917951375224284328910479005979533763728490755912840346621325423822587391938482898487622657928597388914329521351475919325662415830951168308333030476600668415103278419125299803477808074191785901269525750469911151088420992862297596979576793312872406538164162942149860609420000393396090023337498346272543264820168118268708621570242350004494473399015079565968140552407023578703167813142361330084777549013845613037228342601135663913931584013777596124796208369717421144688091359820344313511737129860597228500991357377224819883657314049898037507756617032782172486449440093603903507430586996370191714605862666536767207773213289116802496169133933948422065247981943574464247437995575947979790801494708033381839657588995246904335813825089598356380508272030061477551055532676608385171813145241278453283916152957007189421992264841173718347560083109302280430630469310576344483212071392519265464793978312979560552828725099435139361622253386057135646638153890642352369568423253073098560985323460884688364004608242370727895367337165037740051937016720741987552639989402054818682122224651695606857699797534155460802222206355640733322283624265783225135992813808865183746227567312507644118252915637371443855308327989809093027104266501298514053062046071487298270042111945710874810734144430495069639669322904749974304592307331067183238901879571606002665036292077824361002488873900579281701714959866224808107203694377748440327753266819316250040858383506464152415417552553009961156951908663504976326067219509158530804010968564853530913126449807263927839204395061365105363454182456035529493422360404952610545745244917084073723114808015354948167703013502819964477552372362164928751654178674891390127099650716053006896159063186495486800046735671751028976131925023625621570929797557977551743293761771763481570444515503215526940412357823121836279915845069778463291808248263183940436681710204864724883656220422384807516915780764665780823286062746129680021801894425286934545474724419901273575901511509923395440099034908928405088832342543746421817341089255276967486030263634432529511576774399813280630548373991947951257352043900872606594795609507949155526900597345003411251105944955558027687578017609886010629305643743493708747175764412126886588074340747364600630619151724044930517162196009892249879658144837157799425823901286702538353839889102735681285532977638681393002434161903154657428997012350088852325449299137281047637179435248748519537937509244910334952671095764883722076961679581383271398221897981969064527856435499513385878262091553795519115100506337671463069543228333111994056880283944877676267380522603069932450847477392322307792844326222201643709239012041302462789483254552286238629818169452504471695783709560814532781296701954430348851276057024732636054482177685186056354724580945444108083466037062572979044378082919358469560352045368900689503457164279850961811795148719414147640038652264958074407726981761833486641861009175405212216149514145394621991049486531832106166065915435414313216655885506183895962452017844561527082846395692298945130540193793603695366417853087683794825507895145967979141261453707997871458164536458577555070174562105274482691514573472566737703913293215639030076583400529465509355470555318022307615011601520015025104121657236646548013739687629556214513558654818184787024862651805795444278447912819512414715257807436179071248426196268083655086392129070118200442011290715642280436261761025563667687949318042222701577251618557790092024565165115119741698413321053230507024995940986612387201343927185237906255631521543542158774390114081957768822042916389963285430905057128573653998459757468523445981758257729509388247203159371610706407135047928802714133217507887515976622395670693485912327403741495959495741868550362687202734601804763548432792500828116626499146148475540965173141159880890282356396308140010806271883853008529559917478248948121283911196065518886087192155031828621810163028810522591885858193729169065882921410155301210572908115715114247544154491912728268636142357445936214091517959743303144281716906419119501257495296719178453644663528330714474094111051569577929044215314188069149151222351342313225073151151225186625679402785795436920110422178131727167204000416462681299092999258972985639000205744730804098825199150770911687777330839675662418868379722569582388206337191860910546908575575044501234066246257075527502914757120485554918714018621522302967029321651275548829300664178463165588395188693227060989584480324744619901880005822874253048755491515247192627493956533264685243403033145786847804690646068886573699942375621434814803268432257493859623836696507823035829907370185597055686724275428297708725109515379110136023069576458060114385433447001630503147343220077371608555063907651459117704786257272434689777096170134752745562138071928565715443671806560939476306339543108671428039403570252573767998440376101611128500080247042888026711635352160021098432513595099265924897724299788414844257255333517791349835465881090855230237362383668996719072396815675311976752886662144786936685036609386730350819723641066032374800152249128504130243899767898642217931550769932023425891902868553726077274591181356966410513068396587630110176488747558570471978049090875876080276837311960103923695285321562779128829086406887374824047317038727361837996053188453936818755272866552335239823808606505519083850918690102645075773181360078674959255788441931392658163298760665326871328450202149257048500300448548963919382382307594144097725443002294227017191061561115820252467300396082155164105245916557320469442486415711989675579342317221489100552534285422109003358546437970196665793000233663139064453966947852520997386708382478083630075968941493424139118245424292011355066162557974675674854840290465538154364680380919352504047981558716694772283499788242963121824368599832557512780617202084640053240538890608468260045051340481144572305084133153087676312475236114483256945765606723287600448994009241588048841008475496061280509357296358437513380687786038692847342076564643229149528748821690755377585777839447647410323633151255480927224418094305687224562848934537845766583120068189250447527803015074019173562233659108574151867297200848283923194695435477280892408609109929911655858453263464429736511100552638302894326797119512618995865243095636248129241702731211774810014883838808048968081968738970569759063712026359445262498086625496514282220465159894307399438567715855438408071902993200994013857517407159980189025754630311662378664389995677404919344350789639268339196713279684520839106504560141387298716589789296826634687305245762465381457996430512193328557409108411731198244562519526653214321063845815532807048098863456108494728378209073668920662706076246044435389514162201417725080990448401583697572114016178273987038639746202242697731096738238414444889263258079890981036231907374630616104208014671327846087016211790700479040479401102292778476080161607223388513686933067650000503535339987130670636876003745138290230476776529401569459998789824195883796679776215992573167695428770116139410268518431472920924773172954156810186801152336601514772674476639381430252316065753810162813625089053395023810172693460226292469101750118149028219816545651440376378302776163683432795222030387795719006471801087947551401009523825599712895369749472140906567662655525442955836700196215768035459718553633305158323576223229681595684213371848004660560378200403117016735825208239928614812854590948190806302644487858790782109021173205398969180851548543474848241486063543063621645293606018766774733579757047864759507765046637876561967921072697388836948835170126080207290489620038706652210967246417250304335106160778586113645936699981982318947977141682645944767260194152593085154025234738122349259804306623713056145458144785097707449725768115148590031992872534702997635359765949029880833291737557549210319732375399979448365089035386058708971364650684169479519378491515013190616818714774920097172709503617934887019358257278059425353591007796929561102273572548842249380623985519841296314358059683624604872052541536424186473977767497178562142574249589613557377052649215079404705104266364041036668079982546218473158413986938577608205247240842296070036245642725693659551131496699540300318428439562251693049275001200474368005283975505036500086451791073349708146954275582601675418351070437796161395217108174987530817537151221517480817103910568773093561336985608251757505315402088979471475564197981315170289869256406123401913063225354430078041273172288885055432291781341251686265349182529854822805768927778021510066296263788310808765699849517499211905679745140570409639688910031129240395448462374912040100461227151133916163113911321849938573477349143824504085630717886024297708575486787324851948184678167898931346048588554625439908991446145610624222432903215228527662315169136162241129156775170269229536137908942777809710754876783649511118937267177609996309114076780799527742724383534664151009659659094846974317787392948264748184901184251827840115142492200057892441624630632532761987980635183488072816084178136108685965586133675275645904712980471092944037788760919500983084890867287054663953475569327739566256249646808609655632504531937775922103365834351620692886103262388822443281435586456435834187149371368164192288537052834542385096013327372624515347118528268380758299435087586746900097536273468163615813715723412675316877941109778036353118534980602152784023975675590744531741930916219435337658058552671372876110400955969884983879206410966119253086788125663935049360071748132203352315049540133815314663096015952103465990233388138249657769772059639288690398174687018052419380322320295091804579849360877034016882789582275897734656938288781126519375381127004594433466688346936795592776304119632757186331453074255555675618994436835859763881199962129218935831890513425486512012507540754802856620447238881783463846216429067845264501685756119602273040500397422351818483181156132493112388611466043398521731182632275925853748865439977530989615549714081650988836445180741046409840445000433199210060274291525865937149060367560661044040592583968329345712361348419058554639219368531902722777447971332605526850988732299574102494938963506125383497258247803055408324789241633001037084697842803286127043939943517186936800366072643720671033754687251308431806407322091922468472409505081327869746327081132180610708064162673828948131243587031994387777870098460052616589828689626297622424643802795385492971013694715038703617696235437824919290639992665894825701015323362806983621285133737982174385612250420584959544620237708105325503199133587467132631758321229701495176113234401935745663934986716934108927374899088777491709953580149687560159745102546099549964421107952768360602180201727388614606947412737667688342517089481060576033357698083939088378620221527069108193465748799620003581917740303643622023539536076569624300526944389052133981827384891856661389367040446715032833544630459928922008582214340208395524354075454477983949149967036276503757762728060267460995777528620219363168770711645775270738278289024124897097331083620806336852266434156648297167015789123109384222713811259529864583109245048607551772803411860163228555939541961123021352042409398753421821764434937298038549763048406031798450211610781525842631817390540622158757130031409996216935775030006997450516992719627054534701597854768929997361461737777159132886745340221941683878714752023436165773669159067217140542338167114245791050885918842609261052399252783595955580922561273055750229090915631941188265731732178030720241556368593670455766965493962741718665410487068429003072551446779217293008146857695102636082524840629631074840512242109743728062078264877862700741359025851053955162778807127727934095139573557074854533206379549383332558715587687996435665817060464853790004129695546797752991835901473601730430662333727709837357678987033963624456482808900308593536176821839266977513647093334737588045158185719872880831785644077454181470707303806689124172948980630356373333984425731609677752568379565023531068364709054282372829078601368475563611821845698149675170046235259636376860109941284509647484037079515109142602689066999644383977587439605113160884966465275754110619636106714750823532805494853617325220884924308866175802569516200611943731524079216809790845774516412377394233334600669620440918409844834864174198413545050934170647542223867136414818211373932785392838813009930839370962900164708161635268909471194982000743809221020468136354421067277259876476917695917663356259398805357917935833784351274122268367929091936923218107607706526273797389946663052797137802912874783077370259757765888716427127026923472502941124998916086898179709524748908571868835114298349616518972825838213156470673830011511694246341904771422445981007448110296915657238671577739859866915276809090875094776915069829935535642714266824423361296283822278098798212240556018598638244602950943748836378169781617696229557744779359393209829687553577331536381117920074535102927498538781166083386771503506703506267349975896526080488543265910354211261281173054562565801526101253064146379658158289516311881869018124487431843046879108296602569202023366413973062987517774056381914922919331671800040245546370608318467160111828814898980325555956172903488731202237715458996937482131383745699341331229357716920169127011180986773465429611990688132244794061394734222434776720837171529447812851113651573177266545716078106334601001813182359241175031923701800646550419430506166312924314448650446116916823980482019607728150588336926575093566612431343896302925458297601969083357432554764117080691223369271558791566216777146162219036579075615995597992750237295487542917384043381137600945931684511916521758124789093031165651070514200522395402225363527908991658262490742247039221977471284639478697076237852125166920993027077645464612890052472491236425087955429049766436792495110177451774694128361916263930463847524798353604980196162350032980529741036691773964160941846782018478453130195074251055866300813439812426237991327508722270842370959138082323893563764908832744485701294416759411247577645047907630419510087315344080389506761779581035399185287322268149790513019244225316331602120373477898499601909323988812139045979275678241743296602916607531083465701015978885331407953098385637614749053477544390706460241652729041754774740956234611860210934401002821681837284544379695806548512082167919310382561729637123395127815400685005682016467392970168453860895908569185981614848921887976042457142808994436721296110640746272475059136519880591858516666173322500453024499677299180737299341420188404787055357623693109226198297699661160976500959305943835436441153134302475623107961542528761703883872554585400045155486304657950480166195402065540827079215499713836674483325932924844921094747269828865005516032055994397761614132630034694529191299384760646356829652021259240841233449507606591768298348387223069895370861320277685767550752270585805443081546718069821202548100913939108995298103335141972221690207316551452911686719498476122392210169647035262061540172178243303671599712651837570175078171678826489555273223779380467108809614019329280326498856935955018481481312742304582384266748887570649093544261229120835139637949630859210468099193997080087047902759423922890773866794663334702955266751177175595842899838552341803003442597462331578859741228592005581849270502513929090369763755413220457896016259660619329957788842719240327552850331797463966612211490901015121931259013599148794259604595470276082135902995934236319968821526410499553939532949152409643865821503466444565474567867471788891421054519385080873793505522756251143902685145765347935589959873986928016301312922529874921039476949280309026822370558149576633331869903731711211794476104184745471392383112820393866544340520678056984240153959313020100995603173741370819637391518751653592966148635002649907668174214281421127887062769034914069144186573044715213767726104741182123943460148135158502423310089661377459713047707392877052020224038307034089306857590062993581445649718313830660105010391818289009776217458982568034758639201368635469023173290948245097872709266269261489771378089099872804283327677921656875193445458649192829548607022445277347937751059024373928386805446152042650086056667029700890678698424398338850047260418680365363724164502705881476076303853107184541538798168234465416505137726545238972926039650931854379627141359781903266174187790476481987609517722260216488151752722521330051461337427919515500672019447355310578560098458824619802990744770252820657828200832295352498093984621771762261631375503160288209202084368299390874372349120031912097789584827171186000831230160723293477590072423105653214194093442945172867205106624036264800052806151001004819632772665599541613806130260209451835933586742854747669194733393767754298123868605476998390982659345720938695886423349776665767612177649596319166706547498459720759993105681750446750578377515035951044535587815847567714992346122200423180157065012053892709731701215379077950237188871696488154794609184289331530295891400730286207143382461248713074228167329338542715581322897419316120579434792603140014407723318374413619391742346271007115739739332064063217493502336212091304659916384482689363161893949525881276679095731680207826850428878200660675890309821997029301604149675244474908910296171804091375468891484828338336119924823537382089438325570330193187365987086616530301538041524008634787697153201677840019393260136401014591701917022336931793899079295953325635101251304555129149527429602987747278500692375597778938594926988631341486520855616700401785545816352679350019457948051783327169992990453630513434236853448677612075795826173460554393562596923234965407815905356694910527989471731726691725878246802072468421876948037435569525634170070358315645622255575311562034547663994992897330622127662484490729017916601262233094311149336738250521173242664847869847203505390581510472801788265353992921933880908472565260451054510541061878676875281930893599397503220644926910818290124932576377792801764711040960162122896289557260139275771501141916213927115701798360550129316650053277966016245010929375781594132858919894964953279283070775412740161962223858266691593676093252864205770513564480648680693339994930865424963892984174316681532281781679706342322164169568640566103831857329312570829736078100911500183323896680894028002588369225968428259046809907166083392551492825672295194891780352240524058568575137854247531458423653842948129173674120934669722762935433249017271842420126594178706197867381916253949150448951721061372317125067427841745081765843806396022093630393745267121024094494474631929672411999504579148015744345817392326621287858339586638069003028639846518195093578462496590208154155786792837201035208455797193550115158179714139252775626402131689884203756382935583338316064334473291412468477890735817718218394493933843187354701424560828888505643119596311664438633189909215698303121856752398411635488449972582987765149751993917683793636645298344036555209195075952881735962140547895189661100656168301379791972959367752436276118013122916043767827929059901024474169067914635434817068367334379748390911441084132903254755923286695807673990905750905873744747927861718390375776231538467785714987200654126271175283669593437170943857966794124360813793191863186046818161711357336604550662957399120155886077186707716562472013760921874307451096362306577727338975158878777946581043230496048035315248199285923465688319909021326431651708511398000740610892017204645087115879378590441000070910380449585897748098753188724748635311997495699115020951977451842848676710772945456638333943574068239281842588185661335021011281102428180994334139711191248949019955421622415993369924962576653239215243315922521607238912673585650294745332894502106166747258711629124816496431052917131160325893860395899679669128235791345910206257699867762835011158678251847636406410195944692641973659657981436293481708819567971449564581054899203840649622507215117080562618039709392929082889814570156397367696162412526234416996469570855759594988649014087688299255288854815355452232131988218121991124023871252762695966407361562707354947327316998396438685500045005039703441061253128535525503682470528135171547106356330838592917286903021981612293897731283601255340161398769982565117742410085306358944162243900846999650981049394596464416527379636478214767818257459728002826950058700876720595036499197361329049326358669472605510583957090889870961132780046585755538567623632219669598006609235684585155465336262822490917632306679357688352614959624992367694191492689297448021912200345880427727770688566825093320608049436151525214688411846455486262455667020707040840972334944993087641456849483201591153939782961336065411045415087456002714845529779358345507386000515136494021504363107734122120377113816307729842480221009725413451068465867759756453414757517155098968419682557930334129839557380575987081286166695635805089076719821158974366575452447491114178314033985793572029461851954966793849210772636389621375593754725076894754003062467491786927614714146351483262537183460836257019959166056197068280022228459088865965919839983327098738915906458274351437461487007957548567293046984809011651382136043841422454137446593334618088249653241725101890656054809484518051662371590139445933602776040170084265516192590324715795085256933065491255281730362118575418306811282882093754749043429741220879798315230980167297768436249600712163280067395088358538682153869413471599778894012204144521343077072978294160564458735938350349636695657898041010362738390795846609205750226127340530683183309788565630761917792516490537344023111917417581157128139910928495571732707022698327594438915338584839454034449637489836841569184987075199744719038353831499379812079886416799584493765535014883338111999510727110914426235225850153955279259130124346125524305853564731998812442708212135666009226571126680099107745917159038299310631507484749309261796833162994025868072510633353413721787136729141909956193226811421574342544357992483914908253130573534023796576085365198687940590132071671602697736281675946747002042504202699088862496647039832588246164496454609311134323416319860350286999246929989685663833668300364865979479606396979897739093691628258486744329279708397707603599535258762572496190674357474065030308123640424367771494963348038150824638752531123043509791780571150989456431847051783308623930242498320354092666863058654481965414276970469915496898417060201993885473531364864126710638567065884253703359134260410233260730097337256327944563052410039879293255121435537215837738071779405550301816597219405694720865125726029527095011238687028751303061079101666736154652360273314526987908393200239591426888344167349990851213215567618525943508727170401555605642124674566705698668764399902770202977698443866627376087251667584085618491260963919153832867430444225393975238595233067517013344667194407106951879744501749346557834320087838667087093065087607020655786586488435886634663397809512199801875389556122904195862754287443578777307332913437687402096467306889089837826653123023186294380960075470311652175531677843350142572412307277013501980557350103412480541326049283010382845028927586404875220061398063346033900469163230342179609926526083526363130865082073725418460632739891387321174657529187781569761406265187982708400819364467798800507656623983834436141689406618102706755405097553930935595801620624711801576642168317818977922478364909679067864548456117425828359699956857777367769870871444566585667244141814161155794770101150387473511690814253916007932783970351814200374946651453311793701066629369506909412173461503220074988449193984993008307821641717591598200184973096536971238624569040626890599063178789756415393474407155222001325233780572671041355662540943198116669570822044959196451231287958947141520130355286445100621466675715967592580572071686370642326817917747182297925045635327963834064320152704773721058768788171815270446660734217849598946578162246372339908709765341039989996423695529755646108707544248763996723780436072725792767111854700962766767448715689848466580451227613331525301117971712740213866393386218131012257017173716261102185148763557709120562344274910775257251227420559835981132358128147466158963518059459732768460557665997766817661912347960562432599664079991027748247159573639710480984381956919444871367881927509403732235060804157073280526336945743790023268028900815565695374098325639937290942379473584228721026645011396604254617233154774145734238520511587689241588554801002033947427997250237204635492573725184513410309093308565008637949115602646921496267597684992175465741108071677836576698608792937657311910496162128864171016712899292811809309428214736722244356688987883069580321498050472219198131271087836454989703100422346136497724274461695525379705637975606607463379046737949863196078913077425949162119790321178461333828981321165246439416420584582536659907586769845309195804875757011057754358640533996672514920710519107200919026645950009481765630705413628684859039653274162111018896296094343822685268758263543819376859097720050244746362250811132825055873027033259062540739608301203867356710415392451760909257313231884532819384939208350360151270776819221860133808267884308502763364788689369076392492574552751311844982559647134887105531550361322372743228919686799221415441006291278578980664613388415376258059022990311556721713754492734376404129321361563833664714232575298861268846700189060351456017573624590294954653311751201800854431346809125666161818051479394839981889074597580649889718980888788017496063274446864719909437822494425596876787664624259093026030844817104631538211654910396020143027630763812001728438157018111778753883748628977651344782524272046963099825716790186508627377997675895053684640641178631260984552536648875084353326467728026914025188562744520927736280762035290773976930519474412201093978347461381679117142295071074048068344766794626453780983326465969381058614608420135855946674709335516076313752686397791530654589370374356263431058672216859873346101849898816889807892537624143573393629770916013880209891620176576685414769411301790913554250613777217283911764228277640813614518111093887508246957467382516637108915737828230570879034499803348510874401240635516893248134465391380687815279641583604922911421820124561585061298209159015482010743330582850172692620603166480360972523321667440242233080737946505657994817441864073030173703037023507105712996263372313884630286900292297297947773654652724871117392295676200072135479020789996547181211246672144508417291108512052925782487547168173051727741771910016549793167947003151673721397117360550068276777031517638854545504258220107059644682495696493408115261804610820903272493687410804436396259970203376273330016822717828812687704230105604363252379889262071976842181307039491229043873894429210506358307253479085457664323251682413125211278791780962163478857324141204435996826382064129171696632469811551009388463403651374826160082864978757384267139067974442201570772095200769939079841874122018413022936920093354119189648885142813372232932088449778197442048140268484336983861266508912025933300621373500083198650477266291623752735609279351931367216761693008428901533066242886704101962508187542412929302605180371312123801837020791785721510150586677217414765968056322152009897120195382402902264763092558727334552233481282136195488054483109428836895960068855253469535460994045005650532235128029603643083136448650627144429564871811384125295900625072115786181267993021467080522029470435668219252301256070987694397804590983324732997428280745530090117034895257320171273248013217046377388980984648278913385955453327490280502717654544112489384938969581831371511640381905458296492930746321131207718725667618322743098673581343128189925034584964782365583426648603116008842014169470599893607303328866150459901128096509864113206450813742028143303002743704234770503208459222005626025241929329929444890713814952591178807991037960491834161191981226399136149991755929545645134775451467013687151199149403962615562533630991580892658285246390506787429876577984185622532391137453089424523944944876515447689563335016686364230952669217674861635131430439834761301301202676643328921189723594194188937422349995695127619888017063611218096194620176139655686658279543697342101179232930886749276618612882110752772882956536599137296832316051455339220677390208974749022558756946750370306516977662134516300934155427708705412616545248950135570561397102489639249268055017374995128264445263386813465180967359435992638680635769595143545345637667321515620359531254783208270749662197698904734622143827567386510530173043137258937870407034442416333849883162526136075730828936833464640539390215178464068922062321625712300327027544026038400922883739218133854768542472031768292167093386417791263921367627646310412401512581653933483210288256418874779228036249956677461330354841936731855914216261560858701753111818028239939218990508566608740917953254590048197905810074344149356321878162547662329969588387548471784002577368388226756844168962150358998903541058722375854264350910935233158821264628992097574893427303613001379044151739214491863947268268811645597439812383660560476005469431894785419662872855996682333916070416707573084923710442234197075729060046409636715415473253091257270776589205932825935171088998274007855474428384600551832630851723182816591252819505406991754078434623999085911821013698354685367574928153474626422356663785757863639050601750136276654626559905363407269134008228791538699092645525787457991497664563536466234464829902983699950772404115446544490628493411929809964108435962457505723582234662841999288842819691451263776897711557212520089772425540288083685606192187904446247272919212568279185712738550049046836363024672967243749580476131796490090727212447883065344920131012552617305992045561630920057002408718025297202152657552084238839024217243348885951885727064309265050837358628922627509132044485926539237399147695133191718051981566914073428368184090488748536036002967286168065244416395780464628993631846611298429865751317811849427014173505856929626461306660573885059074171849853272886225265858126946632946374831632461710393301683100225166412765889939005176698672611519466342166196876600849880010026538141803413526794428349879342292198701803398952897591139673066783127587242933168058826584936853321752972227885602459283030827544409225200853582710652669283254820239445747753795389898735706463955483775643721382593262099084488016663162028518275211746486823924342554064158026149571157598126762746415367588994188422621959422759622521083908869033383596684611285754323890149278814724333640068607596927103804248538578301359867631670778157127753074779503717164173461927548139491747777201311949314778069111296280378265632977188400964909732936551882618539942824945339591783126144350481385940993887096529621658523022030269809927201420020965332493096599820755688574523583182430654511843841763233546073686799142945303499087390523374780112629345370374526522324679999153922333808503180412324468915708458706247469199313982302962921644490498662905091083308394045303092631157864365738948251952667780753898341691352386654819508517129199340492447692191148557943073813318908916977844664278883826203611596829045615063681600759829604631286810673413112613841399944775550302534483310275031708103628607393161479461607384278614307965464611567048277489764797891268163682037458442518875268032036251805874754427978514927405336194561888250978700353337045335864612573661645607073727530706652204645159483833241798962786891434883912518756245673514519947234489624089401406887362355109388122824015963558163867944447613424701554209114287586546856643425774801537624857401582186125246367621336201960415336350587512553126940967845453703170059104137264105494051291463737688816324621756205380310968263132498021850063768057236112759101991334078677067041334412404646017968388327114890550750477646929352771671453550843527856031062245817789822944855266868421111616913949617539368051191019035398929007044614442279543983318693520275958782288545771773838404986460520315519826488351938627003988610375788344463503040807387053473866005025501245496255871087864267815559452272309765247164842555035771804335992229968442558592967478103922459556179115432012261262477735744186139824669688276063683149753918468511607521876660679792797766527376329767130525974922270747406514260284372620958190292778032435835936862385433059076946891580490385483879256038276280970592554717159370418940318422482755539099979421354617469904980557273617275075928506452733693663573797417220725796644965090137534358022458244618921915138378536147131907347036678034736719877786730846177571300041851302335246951106525503689484674745673942835482327324595764181803250818617931841939760566898198184916205488340176059668106464499903398510522303999610435000513164257586514851143155326530199889557244762766685575413356577562183627724401328956081704631684467635702394077758311665038005178558421248047005594547499846999377859290153123466341687564841354123319444067978969755416744894039111354341129941081926826040713887516579899705716051240541735906900582594187079490931156348486198308095614266784972014819120342348525255209419047103715792948677520676346164255175381956755565976081118989999944458237327432311910887865258081647172476781920309638988261514946306193530161692106013861075558549128639198551172633395811449253327510276176235580233529789538244803704175114409977092408231595814835441507908564816001251763398821729881860912046638913937473536338613692319841452197767916305086688082241187082814631196916574687490529398840157021665292820038646568241752868478840730992330425080971827847906359829633293606597731769800631841187976374028273175283673436638282693234517505296451568454603865483875411524660740057936151152386674254265873625966708568941195973504323344375187461531057418025725343890528125498478368529688215932196346944804649182788756055059417137489226032952631453467880279915803756386147704777139770718213685658820456697539068755340455533748507022867174999296959091895474693925523817220529669449231766157177494398034791108691718875513236048659619609750332073823502460192342072172423538169424734937805653310334861387171214955515641178029788616833323806458959206125952172562677936837622289609083135695471557238750034752848076067704842893770088130197468449058672920898040596744138356196475554589167317689022234892731364416790406372730974281577021558622714630650220086613454579052814104566048173419738352993561650855875679770854010436272710142705885229137009790018841805755234725360526284733118152014490422159002573438222601968193759829698463191860253285564523978359393441828367128440961794582394165329353367651924962290395454313295392801156317556354954251845937415087801871477866325829568586173575038116829731829583824499129247831933579219329501988577630756765590883932511691807306786326392730181150561536249640865849442062018505715421802398380865180461874572880886437878359076780634857511595952056430177792039946424250639013296381520250931320248019278162738651197507732451220783067092868436483676871990602767208994777868128962325996946301279965450660228457800112225343359126937872809073045972983582601756611893392361861661423485104970332937900076565745961557997687483816469649131278078705995557740026006137239629966555602030183676658865606515941567579021306400157437875804649002225162509381742729464759447617058762617797292939789810249945878310082586198067421489768161522493833418877149545314673828166495918118266913697591415376452835444261367791765263324362353415683415935814613185202871336947214955652080935004759826176010979764076933806759620689499737213866945999501234232467149187297669116394862599046216188794158297041368455644877093286890978731064510787339615449342103791393406118712359613701004996889189347868081139357272781972659222939581532189303059174525685649962181488522374083635461119102559362228437984989282274127398026147988072510283255170506981909953996435653001290637650969427583904709220551760948027095292383970151682499457579898638329944637988347222979556395442610218160238808604721971596439365622099717090244644973642562657332361093543912539905132452727695080708619290804347681020302749316211946248203107781958992048507281237145015893491257208780401876476491531152445187760263474037347222919026469787682228191569987389438988435347029910493867275431008385318395947023110756373537262344942385293006061071435120089486497686898995333618268965320578997693105649548393996795281451620659216049021535734919680396417429708638119119645444831707785576541643864571571274222201022559382820089585355952990196273471859696499969688094209067436709917345992504138484233721976925550126375732222442485147222682275793605847493872269033821006460692184316343964835118914398430650810661921879938165935345866515736483446727330335951994024140112017506209707336527157875825272088924122780100509954360112054196429772176759372803605050755439944945375260362607509892110055122766340244794556227100706835313453904948786515863191890914355200127316501570848044788617033771936551457825830361647459007769263293987818433788012967600324187808887095148638331260065999840942071609796517576691335358240296829827417243654820828580135150501006406847830749719888717557506994888474735253258723914366360453742072734294561983993424226181607699166547069985506156588679063153204527076676550821166121491986687914778520780474081248882210402887950110250752403409678901606917232297389805264347434728012437199052248902375632886755866347273624165192132060785361358740459649470611765424792654230130317185485594832092971444586222110397890888334467190466800086991304455490731157349008519158038969203714115423333427119055841833599841369075140492819690912984005323304712109510385092137541960220242517876703592258383578769939939108840364222720885053888777933810829081918447159038691955502125873270560512039596754471857583296071903472128387945821871291740553802635095148375731066777787393480229953705464762226788119106297835783219399471807898939976931892043192625627848652158220542849328391734000723109483167930013585254656359957250950301008233315634287163473262588560252992588780658309530783317013498052075450703008464209819402023183583186803780376492417874274991622315152191939048883731066071877685774657357317429222799101541884713240924391473718146659910321531524020581490488875724360486381847032065880885461239225295281235754791955583485655653455110591948764373524638297665147164644267475390382062972640793346829616558224663282361628905950721080957754685013164318700106350507082111932582716449817249948801057335870243515160248563780992440246319688649701855054019822544438186508037430039303173471247099067754389816445814861841882898921577626981324475893972142991305998059976756816157705431115247165459856175757728904513948951940355995921436583838571446894441453769658851506411238399003477036450005381135251045677481670816044207995320136685358264207265759810862000875146879394081454267219706654605193991775631794589006839953289423007841379436357179887624258081763272112528046927842140823830262466264553903936434210615087990289334919558033441794544530108867133753730227727057191391702780679819545707946846859106905798509861063955024890342202418772588294784777933344369078189979223284728804498668680843632929793883189089090997180085409398248512938381214536353449695393837924714311267471264338270074027051855009824655132451527331912601804217390041813908975466767896282902115957515933768146623401726423006867246296877726694166134198742617046529385804585389036226699364963010724745941532753392987024627294175252728165589365017836278183393204014122023389366361272578937279430765377530804932779594839103616815649300997285085516870113870771522285231659421950526455723051633065231779915143281395619215712412742917156948877807821606315391153425475368671529315813547680070515347783883859310414224645441865999999969507888782133753008727655054408351253202805130489012656150910785129499086201183528337929329207205195708741732407092468618414405104407815846212811059095318772764965441587447801569200630452134824859359068496855606968133764176446746565480045626615989576115110482888854710644569833301678709618996392561877587178861460609930361070796614372331893035262964525566957818543632411840207352680949270451074679332044439487263849788136758979523959802862185259516250607798506245529630745958265941631659683474691105352609561765083871409175312165684926285672476983833034797043413161728461462950046043169762000156060797196412894970207452814678340845429361940717145899968104538346751288432903498164502228630813275793178661102187951380731771332501512957520487580149175017732339557585391659055652201867631997813377702198794526474248158201924806552403423593791447029226660957433942669259121015834049065851767503673464671092735871711150960367605533380139586472186552464702093991051976208017450924397521721197692828790948197645758708018531348667035128545591793923152120216123101861463772061740671135458515886375916695799632279698588163752085567263404904034414479664169007283262694126161411006646969797120626142898104704532317315083040169641301381963521251304903757596932521536611150812537998754330400064185861797966720521881267947967576282403891023876644636584840095061468354023474144278979541874739541974541973159956727682646114116789966585735674917763583206089185620777168151620780610450291320466697388760902886785791673473054974204377436995518852939695129334403493828698871967150058307253034060716896688278276244339350571951300749446380220106477518065356018764357872510916298940595699291015979913516640001860563228879918148160070637534235646862939832124134705408833888481087423954769041206801691983509022062709309498405399411187521272997989041219513696987918578271572284338705337195014314555041353237362382198166262446354419568106712225624105446675594588020637437041545048444506380757540105122844486768603730345665713721728826560020328947601880845322238506036712992410363841232408158897478085708868551160951425057974523306599762400210811121505547955105281211843362719337186597708920516785806550602012917536618362622790229957475077182428680952685133631019446447061962397966300549904946464971774186835542684545958319241825151731426693293375930182637318459838882447210403589014009333698798353774174778492001826809285263261043798439776765632995897944213814087856951455240145053649703821990095938796560088478346044110250729743942255188745217829594682951901568586228911255437432766019834098188568718333304695689376789808800282729214270008431903781105105335612505747202636259551563130688224780105509095853688864475027732016429449616431553060256652069418653099153063748953219354099408813110065715200054886480602871777071902322818004902878024985448837844222929096222787678156470804574261697147824476566941098600153017718694892122011223893122115009994263941767898438484762484722452133259872702932184665548413321572458038387547263096984116631811776929285804195331460233804915748582924381571291186892857857432644933358664756724525678185564413784118163121096222855198256203670925037245796984313425271041398636798690109060106726854715422778183772456608387308123945209045551806385347057186884945355546214005896765280216533275869731471153621164321209610286955781017713222995705574391803475751738484385632033653033211212107851939882292261899517872009103238607443704320453639277370911555747051968073655665809914562863042685818224473498762746992549864770438343988337093934777079316703870479049627956694440144080134037611776198442768837397767612377155682873933712091319392453632058896172838042334067953291463277858728536391793248301050029493408008086856182804093279244538990279974065937934683822835344982561024101179554528965586995154236628499854579497636374696491092966571059642025917128157015900854225209139557768597938084948914573963972113313199262364143855499327308923611560909991662565756434104171313080829191961034117277537550182060360361659347692451069748833570816335598333702566290749752087816498662135397699756887586196397694673639074199438041002001270809630896970712015088167117104067873123049569134385960172946432794610738050366686262867524969445581279540193739535405199505582461793065842412996156268836587913205838596537713722900133450219012651112631002879812923540912343635996307918607663632444669014688834066978694242148151450640144211337572563772726798066460280951301104691953159982309542057670790996833159288252278149715884473365949531836781485454498189383136824476957648933965067201510051276020561436736085403808591596500393034978510492292098797155756335852691135952170919958081271382506990286461998341888160773001973853537275466149157594885884298569894821609119686706363688650919897873108558940540670439843500511576094519593893247634413379293667516076593671132578895173635520138051851854059014720304015767103821649670124750090728058538099386214991366325225942955031815344378061545639315755950365662679944394806743313388639805695517400472625495806710141945236300038728018493508389119554970323399014353814731160073769397357602355062938069554721353496541483047855599571637810044114677722860499273002478413869647773855860582621700290689051668717062915493280231948213544314882592503055722076841374510129814692565804859445470815055376173359245049979977691156297815653820418154760774780339458545224207370211282970038667340850885784196134844952614051205959766830847771592199382917311544767886879691753737157783985474125747588370357055470614318190148462432344478548441794141986259182787985102400585092089609319138188531300755860623578774395438873336210517518413545280697996352142776042919337667216587874243472003322103033360049620640135646264891737546625098242192931612944956787668745220001787914502611305286993750722787664462564458100595804016089186469005446142019401241387972236399942148049259362307519617030717365446309351129370718573438481020713331050915022189565461973508589943574893820692369497218224082058511600639935575436841618803155790758997540183469051716169918194613870311813093137708822578754375489942199235236675972622754282918226243482569603982487059348520890444088180434103381196226110372865967814159432740909599403374507952363268965963101428067993695653469709662722953027215259206824973061382981504698797376703008878004307897803337368250672007218337172892091049292269745026978510111707102271079381358019043958203494276505024860879324243471953136957420334934041897728110650417565066679853660729311012554599982456530651917155870230109038875102415652954349350954103891874917261671584967716803294387013979292941318102793436914702950135234499595807245585125733262232667623386886125906382645199106468473660999287949197836488882800087725780513752358156455137052987712140944680277292332978143239245629153888535117351308612878764040409773316310432280378105847243236887923692745494890358122358360803948157873398558582894651327871546147352717936042209846133587816839089686003203425164941856808191409154164123449978902487297095435108106356942204231952798048435991458404800313830661624495425850422889291279049216985963390866177778298654771597083986165922297901402027405859161437887628511607979759972733077564574217670398407028782512947780877476598254112240010024619953937543913649479542317081579166418969664382763078469547882203858744336001826206256218012392445027164264708103860206626760778055175412839396242871292072174886138507198724729968694002870228950821482035761900564098301722819668930399767947055961469315315243333738780957681037872319781460575552401000751571531755484218986678887812277920094822326387760938860563978435096842844076511135205763336011583281742208331194669729247304227646774394742850922989086860389566585570354488896352839863614326411095973822344758146113152949677751059441288792742524492835596035714425081659899939469497948488748526610547370789662880250114325679015169768764252753161777845039326859839254744350547072210376048736493016582895152470480166417864807228241852517867267819634638767554326496232221987398873183123353057269278910887713193155352844385011555257401226026355507204696316733156669702642721212092487226407028087435802070106336478584480380290035737672265336967265763924578899181606859528313511570365047558977404411389509483282120005661107168122590772737352069358703604871134166059518843127806078749508672216937966548949845182079027813591739504689853521848676397871283118677531367981802173688894996867662229465508188509904379880289723881744135916018661613535353020557003345431286578049784118437031452826764703302896203662289226670563772898180179472767472190887921784873375881686056109205737808047177928600252480476900663073045701715679757162161682851185205410489619234137047205192849586481411930313343779530314961242197069637085685175572826276920678487871156430869551054191535310562790624830261383264698905874611217897569418702029140167891190159601453881092194905550291383696429018429089054388373438053678408565162031007579487442864389947780433038226182108844793735821276778616764529759165027640605504296832018038551403860538813774800802995328913676609157433104466680001407460628545054872428318237928986776007760293660775795671469465218506200142597336886774955978097871644267394102432809616216222871131485171832174502712060464500776641638911562222122413832859192491588728259229171806580079387419821424504464414713051009002969673964160651675191445500753018199977467835655595941413669482416767668056831815637530660085290482710472890246993224138536126788660675988199411608458901597788927262512983784552888965048397929567258072934860090750842403506224588205718925029340795711665313968268437945845242876518099288442944820415747260836405999384830494090533541991449261188978827593628150633110982371340654910208003153984194444618806994833827345358607310405017936092675639904652634834860676335077274790991547840755621907528133020734935661281406487922441871309209562417633013595945335342330098698861810469432827014037182637747713928716086779608084823202023251785016715743416305081077637632756097174512011499228442481882631061570148865276147851858782750926176295553443338276427734172528563602423484218835603229466531105853887079039401178839531971626408043913785453503367240042312806121168545047097699940694844135972695048527726919563828183507979884611234435149966979296175061990973327585236167462181773969196121625520145983352178199552752520441790574028752001625187150375756727570386557630866919716395840970765118496260462859252556977612345285877978405192102880959303678930058560588959887007533220982153173098902081596684164539402159252881489845144668618233683583336130878938465555135783323291794980884560178101565023480241741430173872573575388840057344111555936975492472681731154840007799196015136294911128878657579833310167732932004378572036665537610579637662316035027006486950335650225686779831687330983879153820273105686855795330884578720090980664622718375528505880451086947406516725260699187694184436360974504748289914725630851963213667040504282017630880475548076417247317185087135390967174809258390923098892772473622343077700581222061138848078911461556499092842733035059909699049135185393788501915165435339976749308088989108848300636104257437534767932061214170591624190317354833418329900866730392651450280034051629416496167126345198343943240765487512041149521445272099439744216791484020995186591743451669135982559467205730705504990386057397812990162568575875540467711977153494074446881287455257951548132424677159733073395117708465507656848509430837140927176807654177420714804754418880663250243061373238769107835110926190357370702501364905070480870722016716849733807698152381469611132890153812708447764519181337066977774264055182433880514799238630970110666602557978936869200050542823399740269915148115578301009473762616745864837089867862782507288822022689643421688133811208686254358814090393829180028904483689683034949203511155657896956865387502856032508463348488400190463650740602779217900309376674996787756485190754995574496897990657003326513409460280491310077375692822210274326643986553871294391387765521956180583317202651879041366138335556243742846883176965258634829143645223266573730082782788118547978331433644870333417448844758839964959498057509826148111680623163949862593495321207060234778504809011748460773420687704890912056514916901266769017831311771316010508002032651007062509094040524615680144036497497823225740837420072121472307453269570947609051938402264111427676948687428635796751004047651016925895072905164815656475989034427191612400471396265140044920588071632384280661192108881918211664541113165930111230953416627529049684723534332710992282202722093220228302927648788329461827069917987137386481502063947554591843325784270160561006874890550853549050396696036098984397233847656775433475680420409649484733037869163839895895170597277426608644906772400410818076304485953840874780474590274532241592941921054331698815553809265781667871062016186440898628815150909140617801267748959228984910783405005308601605626811157944884750812021606903290521049072500865529352061965042013078205666984096429540490369367194448727537521889152000152604455272001532214815842082375795611395186207892518593196453011552028073941361886664061362195425244610134503901271391741506912330584341157752032373122736023998068699395999254139337537771861985551219409589153102676370130599277216472979178406894263078696535244709741259558183909620863411046432621000377021007491840043494876971922148506265880296330486801980530380752336809237807211407122437500515277410856347248037394822683682276750739586976232677314269448027917456677667794437466747172951483346608319832328999670454728684580546147421373588236771155043289500708130122704174596500932818884982340460350226925522423136560306269854865027425236354976777326135241821808825551477985321609684683553585894029756291334807674168694164543024091407795581480398963426498021520838506602210432613924131264802034588323940853768441633070051177523188817075354966166244343755491678796678935966030151065124042891255815411824397165647343698204765872197482501265392096982287824198219107190304569780508334053171709953990503055295108474166191137908869069304380224929021519342180766037497281302518399113113367184603314938826517009308208514997875193090204816215734910170313390201527820919075134008801558446629849022946772057658710922919318458966735508275891654558612882744085275826767488119513910295480090063531851659838901394992769332413270744587304445989585489337133738173969130681325698542620613185928238894454372675477974933290960810123996500732339121272676792357115613442928097905985093787673292917564077090595180400258484014535984466138543282568934120337439796412596959667125538647711133315754866581774449771895211414828807597579483176463267528899341579179914782887286211655077062571443512832486390141003601502675998502416020697845204815786760502003976900410277314606531499168081934600466543344695114433649637331973439210184626707877818808854886770804515026083475088306121667503104045072420914460202453699432591351042989709898996698606804635567116466933384304258875746857366983361876007363102657383631363856706961879967474598463563222731574656891323711304021143957559876566910515391820308540471757908019809614356687702536245716539611040425435733003177412245698161714749706720842653215180469935269452109326709784613592500817005340564650554518886598769210932507845671481639659799114536590718450409300802495434301606338610533542968072719167520038708723652164499676141077979165630370364131841711840236571271872537204187149986470557366699754219251973215953304252570332924418117385928510720323749713132790366811651843777888097811445795551155882603470662562951997044861083161088726754367536836580005181635466188205976602949956414692768540991521273893832120557797932127307970248364129002019349601705039406082149990743439493069259619243538430382963111029798223148638573569265643988218465432200271958789578639145488339290947932977659506915799988546966496010806220856195359298340843762059261368020768618481095489005876701863786835080688588110521861646069179043515260411228348435156386429963169060880802668806745276643159771603365151801200766728302213086476977301603014389155981261726966905701892292830223127813125993889664682965375259866881701922511181198914148239384146159739620427581949574270995399903079772902537416285854034100081446879442631059039763760474121009368468973222861135889030678398085148827945440076228593605990971396536292940666977014660317848455717786839908349650768472398137723557658027803506382815341938603904195004845971774183051761334572816269381208782324264552067080830221618050585351451814935173826791734569207107009879517651846480238334369445671553152549202741457846665413272985228745086397087228484913619586819657729083076014442523537862594126900938732184236727649813257861687126784993106899607205578690624517616904662084940323654748740580959829908480475467700511197402193818924636155942903656642290025544605456019515353338023856543854030330032207852254905283924963518911751874495940230049003558369478939326257879811661396803613744906716398270316988497286586656571454298770977681584459473357755628487846455956193579979211438957689080822173230275084800192020987227672866233878272369751698338630277530332410680247898626382484280053784370291485782317401264079772388048275403595855911992743729137056823181086911332130067754548630311142333595755364809983246409474288136835681478160266412861880277768232772673434676144274595641470145401672069241560609552150531005779253612117798747425539225513926982751336427865462468728534272904523147012450633572414215750071777829247379942820237809528905440341242778379494189708860228964485940091576443865692933163522261234393855183883419442063868097286965761118877901706016883879790466351447783867343167511058543233752321650715359042310413032083014343156623008619916975216079977839354813742500909515211016698187115606797760766302551714453076968315554668482572375142482462726458414829644075196094642889327309827690753777198348050135526109535398396317088887751239718472301400445645931812611316142440107823283108537179319332395342969029491099390867016875264351414795121317992088487097302420207674566639126087616766025600159867743524095664996935161473749319385505726007487830419213394403067800045084764152368299960545927668444488894909492615584515037374945813875048291551885001377628737329076647549376312459276977721928172400984900555665369818576400320324971207145879846989691304155256315571050942318640211995232165953473528789444688494371547662907393768433464369892667833197197769369837137925636037141437799195080825907536985906022576738965379551998745880977933823717111270807218299264071888036493729959573143101632212878121973186106688379923409830732386838399999323054046631296987671850257527034703103969962265666226872003219599182449254083282388310017031863866444038027957164148134563714332357387951435770113352309627543087201470836312389675296374911640251899522319579544631453371407016037882244074184787103518919408536292127745983902519698426331743003965542769812780634185123788836480319366539643594469760636674561997007705660100796298945109605927419670689583714594564850996566998706531914047306617883953845075139657602608144953270663648072440050029530874892645960901620474997109076090639003983350928779453767192722966373503450972051209009458448196259961861189227623551794406779414184284786572944393805285056552307116312466358824709045974006940319039856588737991677895588099913435543295584969020626256057682995005313110938913949475207619783357579567467943788129140309953123372577032718684110957450651350249503461450656100290552532867691352285248484856899350961016090373388110709470900494846839863676907015576207663184178269787582975320562022989849607995853484385990089079905642088555329259266859044084150612054956187855901200849278624526018472021302745816875773138638033781933797602564059887139074883560931814762738243942386850073800783085192111452707813719134594563510063536115019224339987715512914504900348523450204175502262391272616488766002916648017903398595846243615820109170433149258395618510816482606875402919928908274638981131743538387804419032658042327021125361626614260325828955724932786742724911857454208901763651949092387060882947599385850549082868744553990033353667259207521569178016805564588788029214530434768659873046821053210210554474415650308639891335033472027894444557126238340043610870982329962404214775845411586315736952489435131073776122517676872425073101008102762176106856356836199986381744589639229848811883142254147334191467867014212392969170851199800779304286505746631128318978257636736701219788980137035471242229260146444953613104880100931244577636610041612674368557623573079189611133146540709188476554607674658700579122639202852061871351775238095711700306466061980797959375162257981140602436733735217607264069278255602306350245844425945351614847585056325124782534894427822333659257515054260640952113914731733937798496226911342257212943158422850830707337742228060005167008690616715903275161731246152071428464236000862270414765910261302856058951565996787665414053242560387957785284618257380860759858847579387638477972277196487523217686036599926714022672957858614844542444437235331483438861466458804079118418236527002345435125418481921083398471027254591703831936129283378779211710902978255613282992033651947409132501451922617904164204503701099424567344652374596689886921639528062519842017574073319959678385937149059036158588789535020982263074219062472927028364729780279644144060871254537948924306346368479573596464272558830459207782521635015252093663537609977367850488091984636241005411780212289535533944130489344779579196962936598990593116696429412930585654633263396522158020315889851797499985173781278303347100027608832667400391616758209766819840467696231904770739144168317614172851846940496582276194799984329272999753664918276766228258539120821452442860866541095353555058503074650623738156943079151013477345440103258625476533917258711090062855885077609476807309102921502667504512604453898642019794124245477898750164999695077911044973441243301780107355927347912004755777907908172966410395743320873136889711317717837916773456807075855725078219578074499237566590302005841981038015110576126140543443058536313724848064955032096804655834551381439204020669534422642447065133619023454103713855050618693054049684284470364583124308055536844988390672097948964878166526672649413455297314026634740604732587128572208564756666579318498817617795956618027673653583467670009476327765913197015093253023143004814513293078847058428204377073624262728056416013100258127360601627534686323699222933300776880230559139194414290595548932477225197143308795456696105283962468433764254319564571324081151770224987304062352285487755740918028235919938997674604501947581966776332883536324417612974720997192103730520927232315684185320522829206447294753010004602354549852647901409838123392039934353973150369959682609502374804876661122435351433239914602518333831101488394432304943919439411552026695198762052498867942667560816940769454348038755417662875482209167742881299875103653091297777198245736772295473826814200107379782517810131693926416410575425449673742338956338411836379109624658800311631879636250754948781922299379795505980530705030279292656039017640122769044765118901562655534850691089851025771706623657957077793026380060641508002954559151656579805586428589412383161986067845372661187853001728043662501486827265082911849286533106511648294789838303163632195634481955076535479270170055863414165086548678354984641121699738105502741942887462252507742370633399908614203168653436633280680385202848980851211230510152314026230109193824839461584564526905872516024733780348159106581890105677619683007491582251178540739389119927936931531489081719164931622426632370681397770536627243398796458022021908740429183045921176370310602289126365874060823643224754520460501234139728205893006627344708308466505595750354343356992908183653885586057461664702299980082234992605020362260290579937754247556978968478909128616465026249364085203798026223513550701049970512734871399695365468976261957593291212523976345493940858185106514839405518387944365813265645644235106332515362492719464481914376888760445624425997319351753136825381680527916425665246031922086256201265240997453984600284647632836543140147305982115910339808633028533772816803814865637789341053025101710662510478642632811048963226882965861707086334186163357690015519350708123595932971484003384616636422720802601753938049950072246107905176269109049274167763556628455850309078338750264852224331095116578449039915211117539499116387888956644124363463436307088276806072079592496511898435901348111698335612855739833160047051330212094154209030998867667224327530270325656052536842005665832820353632554129166963967397042038223486206816845711707675955448782483063699737315903044453432125948152213917253113014932694846534254887520429782155455721092596105609213034628449712594627261843753921422858663042071291792620381733288695949830762439370746142624770240651361536313741775705522641327099521171912894960962535570272875237126555206582225670143388553657329838976571886419910049430361797215604798893564930483701374413506827915002326251803954271706859270400031381646491277009360183445229617510099605904723283096849996750885294533683283367073537112042269338037794100302401217422703873233955294369166055163542418626423458516295843633358063860780536185773056476853559942222637819028716528649054027988689375400833130610929551047894125305928274179342201221444427935412230644591986486737515321233197505858125129968595152351791370937877795548863112808708626352965585202455174962569582393982496324349730920413925661145720272675289928881713564500715788776510716493334783707522118655111227568516347098795069328595079530251204043538644141302998387705318879476394259868708540462591382584842741439927722546028034042853009884099487625610743209737378817054903627190879616597657238073545702934896049529303679761071534393218237005029080843895789015666742976650065344797333496516309112710967650376489712502450311846468862117532639587453805485906967940926433361408188288959361285964034133921955983599940950738581460792772768484620699284751247971159363399376626477055858161174020689252480794293508680903899376847551628235394957002647135191399031981231931201459829984617163792481284454512304173495027068048465257433081225907018080375498051030443318405012420275898400143314272430860002348869199278774643011202097086677721201563065298579746010998192542773654320210648105453357634036124270619660020240956296964330554541098606448154564429820718584735900459140694190092984620948242175197208807383958178717772435394911855978669936349820487576231615042448617686563320059783046341634832788131469019039653887896095515296513000574078768174695023829103931621636948578161121299813610626782077325459734999365451747651476654851293692350026648431457725115016930392339668942692387702969198320934629167514115552833287891288998772343396769423509027499107113931104518518805455254585964985618928695554871875031942231179919431607041042671991578367412584755766413820854440505573561584445427000586894911280216987157779110564323320449408326773374261381621793351874332784230892710384867915991844263928630382570610328252770341285769717780087053442152197465490605808374668971741548436181449386448627615492976086932513354020071517992945235850370652450243423646804803806937875056781133220542744706970134257124308729943342818341486205693845100082278271877110636509386265617276091615767166332342768874992508307722637102678514186719857804215249296705920951619055313108516587095666325197174124918653591390662272028621243146887418027963939561948868379124182948289409984011879278666522474648872967272831034227587064112529817420902874774500926443529429884305327724056688331694812622042953098633565625339088289729243970804956698103201156927750552458929407779615195807895784395643351646679934522613070568502681005376733509304834411607200857859173559123896222153153992151128341476759024156364220126490196052489059298001345041142719518222792312446570426291023995926092457359714318591674626923541493870951066225595449549688300892582536489442500376518067662887885880392245953268234026983582260277839157797126972654707504048968322986202466556759642453125653085511054752919413091860613369011765519946364205163740264487079837926657401547387175393312981276983542112952297572073373038572555006596449145474908620296741713200227554409776605888780717311842471755422089301397856053256250929622842902581393878837922696878107572177502716713121182642411552171240930289829126968011932673364966110590897953596974318321895109233783023734422193962907278486563258663306532874977757359548579905576882911932990878585020216070542014757403962831950989597320797599502488639306065839938355850912158838978862525835286872160712789890787790164854511594305513417114072393947825139195047159483986901783214708086936912544041320866407313481971514907472083122795889080012530411374715409117437456852099942809630576758198714894990233998970094678927097232912004362364319951728625891813945211232447424232072619467543629951509534298253642121459225220423520002741961177607548943568651719935754047111581020772062802913950295980445678794934930791809611325293167320160877462157024651704041130344101903830429821105565695731194965903114412844288661623457196463621803019080958500389622764442958865924083622185696072625641728038946734859997188315350067172600796770249682793905703596950523932377508196628095268389652454943685413978276402138131324970965472518955780956057299929651069570814403797524735972898582338581107688548293551414153564647075089533807788807511332780320315935360036800955537935130749574692230522027946066655772212713720890718358754168305512849458026117233901999354547157329190801797005949886420431611403394574989134059791509174302034815419822752071443696786751869793886462214364782284969071991505718349141465266772077550635926712581084590354217963516312288392981190029548865154738160887369400953226463827382732858070357519739477313875774512142020033376494923735165845502239343478080387918870924153825801811257448432186352112874423327414413489576927703078755696288902792479376131793185920987296695714216792856652110638196690244183922698985306239733651441188331195464849126614436214042816470405685104576194729567639201169040874038906869342846854215259921922424350158236239277807938413588435523622782749675981210467441838897439718288572648002825251524966197409753322281933507183775418649883308234002223378668152123219329700414293380204072934723057490129869009969633440715368688283187647088786629812688196815995405207552786016724799572323807541019186073233995733548153695620413280577438785123770433411039562453921477774419755569337022829627527924523973067998149946181652646047782106445380094326295089228806535745052693083886144650275573080173990150123593359641889880879474180836786189368448380273734220763710500385680680137821877546129729543890777997519000019873275287050869251366306430844856278785738257048041709639255577795441563542271461656936287042113889996655906949636561940997054795839818330678790846550539841926063411972850892066467118518342087953302211019865529459612020615578667731585422813394811010796212742297789217918343059482093640121023336915014077307405548050088347658975715954867107744903507957833480944498196835874032820080235164192002367073589202867428430888798294256841066627587250309892478627938509756110665618120150679710677037811354015724940135098627007192641405074777201770720016115338725036610976289659465157064974217934073007726094411538935354739299928374903333957360610709069970743849139920216125566637264917556798820447778351013395379502969389160891782794807521283018477972828978578390421705666234146584986872189439114631953303010641032235172516033121512013135181736372452099760298755654456033810605576322129383138204567512401392665081301657325036649410552511081120097478081313236441337764785138846202478808469736630402007081780496155314615231944938716793335214611040064879625717962039689662245219458912564912734449795114259854175291980417091046020572417696589804894240223581091855869152273026609073272532130306058941206298699326732591470382259357454124418780018433458847370105602716876802365254822579893679685141599844473239709534773619143972278864826727640029207234304542441687045338473411233116883095533974078714762422920327288221125995340394350978264802302958017869943532881061556680156501572491835310136470782164716902479034463603998716951795290382204634516314001741699886728214927324300658470210677425820032564170073973994294509099600684782222533912481282615986178555004196887126758827044097009250703445613692656529253997827287526188900230873567180924698499639473122044677476579135983386998799317523414801106984676196447958728391343974122353009623164725624665832267095849359987161050951024277677821702901652042300240966714775855557324948628919305487768271830791774617880878117164659451734087299589672202556095067470043989030413588256975890305958225638167221993259951945065140845454557957837795796461288870972508634479771109677688986807621330087319858800716640732723589040431350973661544101546444640153728816653232035303468659188041039199797008091538681837099557639882843374048975124368929231426607094119955571308195240207539104310213837011009830812370503571675364686344736287064344833149610841122496268940706459000594357104236951010914624281274104744545691160874406917888716898635027147950457655270216088098960764984451806613328551295297907015003280051650228799524858273977612991432053707306761038636027116630770602467392077219409817186366251205134564001904450645456786866657036660984664130703027717478983239918648846549960071733928501557087165379699525790401229599129033073614141420503347703988208791477312866455318054320307564051663538555123613663614776661557379249765716998163731562157130526271878854816784957087577615022766834072337443262241664381554280056194847225357958999066686962210753811399906291995958419383526154258746145422539958773047399111965503872186209308781581039942875045158688884741389435011353795123187087190719988577093612973587517500757823369991036887997973518501820542851447501832839154354905946528631570936507890981959876274576364049590391818017731898638775767052200666700853942322893209182236459028075272481239305597560096930036648850123819596995943895908260820653123659199151535513938776731947011335877224925318119342055962747148429895158469742607506166318080150336052328060456859404592140222604658648774773043823372620759133975675134882872712412214944075230773974594334922170959230473580596152529124647636773453095193522503329956765186253903054823568447499941894436574534865743182155616347393247983485524137153776252211433212782766796909504180163299164283977274969988170929895508511828279212250150718124667285194934557083557668802180500862829086720349375993320376437418859959137174556295595302268133374808290053429758022942785642010224729330812769407135499462039101937831621331726475032411867920126901092737681589373920330109240381969210237325410422632669941806339455974954648831879185694531924627534090291112783053526998988147178521776309000175970142343025670599824544918877282354088097076115609440186891564969515805966777379356050337739059043648003532192058306819954795740456053215129581532011371193236389848196939721649191713682094003920358259967618221839871452812165034661844420260981524787483085713825045726268699980171491930006244538358046246996796459244300619211267447557489986353818253931107835497375390274711100033813245772541580186577286103289967797352704565944209506710271357973618587070859927824184363441677868780670134278660301715320016866537213625468807785455440285185982353964831711929610856028417604592750109919519155221295605680254389186563566865450327697935607947157650089702576821004608151740574982011645758311912372380448381102516059634750953684722822926350495586646294667995768841176322208281733196303710795473956087138457393571051645495632333917980916226844652737303717117639527869346953767371063875457950095320761590011046615753225230655629922012128823713852632827280339685171632387974997420764544839516796884286265360419711496944374882486371639073205159953207254536061273257575995502429457715333725472460650537315790625304871261442434897978941849290583157340302551623744091329274107437173560785732717910917827462970572418919338234014463886862237107944944847116666057901000008695528471134304724282516973527065306702258245492275832656172898523605410265267260722454270482623822991104859815091611768223947005894990094587576951895700937089755832674243086117231301789265926504657300409132800592376983519332652421812405756994904236012323995825169979526959194263526648094451530168822506921503268124887067637995251378732963286546554507688690922990583345705479075972967228825333357550922576738600823130038819314117340241424573479445195868717712001301973327190390254627506094244612364355324100974574131541367029112774285868180443648459600761708209489828529967625441133869016203805576702301863549856019740428023004115539862531764245496611537368066915430414174714016628088438118003582046869818053509783331964604557871119418853663670246885840736418794635286044311979763409582307303761468934060219738228717419096596252713459903125663709303785549070899662180196455252034535276016464178146064306398188565567504702554345516619164891753949850500297216138969665944753586231059250567971774491493937434800559454990203187954901701291540271446227586233591831659960126136592722208335490457172297865413797684403734677771195854957281013654380365576938615412486350372616979877601429667243721959871518022706460772525306118490738400182022335513941829482768166118159661089609657386831921663436156129928035905537934683505624440844524284476080394002855491942906731153888872179760766848929730979949604939641763498490125916099726435430049870908612565241376476542002148130230998057903326347916584810956694707644487526304705685000918072074798940770132276239869758380658080332783120179019263225759016903375642525778831424226230451483918253803973738393640125213887555472486779386508041446611849414340547809416950967091653188030456346621400993140378482217260888003439242617151142008061255701893178897701793165287590831426988142832802048350099043883973005023104996409730265007819138965243047893400978920202885733202679804536811414343738069267582020158592612861553763368906706341751677855609075912210556014115195985609293010989443843435470738133996460008221385219121174552037379084023969861350369830611176578199902397953921977003577475020337120838684313711142810711590359584104603971346891685083898450965764037072101355602395260806293465513369670326505205041459943301332648278260192732649786468146755443316800639709168647439861622497230785870167071836168598569821523946002689790015903445708107582237447283256224211101156633557651072939291004546129612339848214213792849438928206844821490249532296194443159120594040711004956073727193961877155659808048318991971045387497738395132303419640484104634457581751295142033499410784998868541286756751159989399020077159623126449390779338882585579247476769492428967763235123480780044512675414137806747516437041697247140934538368929167747521237363259316293680586266204479233001118287567424518570187427728652946683704154477042838938480806950238513282561787209482346118350809403620969286372864597505423390900402097590789625828463340306568526606953303194228429009802429942045913581891082780348859504386532879805858756211119578735347627417889811908216932574568692920522262320072192521603695909333046792345311850392182955455183062898191966565642828440431954157552458858634533911484409140145359869867691917553426913024527646218351791803576618136036361901037940977373603847284642917000609534332110651536096384103033803871958309512320910583347325703670742608237487678491625733009291496457803894446831548631147771046406150359370451041082416423243245786667494136079034686269029324880966297181271852266951011915938245498836591125077425286931552096683035770489166856436479678472257184073976967059215210986929268236027310607363205324683633554578643224550636005047947412840516289272461988975678430093074155849727723134289019668378553807301727230329453461058407549000893943959828463884400416672343136536156453695041568431574219982867247729361559170858043070628120387833554965730314764489844374185408567378605564035783018022973407660619651520961831000321780784293599286525867164669290189307217962112360389111222432850367096351328996778537352096745563405765450598731560006148797835512046556071513800317313217523801615051217474434094600584339228857531304466953178375592161244642615896784021856219032382313272437223012837055961708700027242395755620110281572266537596280579385966459032523050793357165965769260860635827687361628414583883306346826412229049001406691123039176222460496172527932415521198823734390161262519427004529824918197874369284242092268661751404282965885707771943502307802618207013694880159597013410170677100450818436074977864518838986133366572677797375948455647218487334988589936759150680472398800174715589052880221757153215885749444236992033388022971774717321006282430468219546423325072331131885309210803237164113710512321219952877997580122286237839954746027793567003212405228403980208799853992485892821443102059740975175120016208039889951995112776595792800745009860991674860883294730190495735344924145969098339832933417295678488843879131312056136600310342582118705109104741586443856576868100042280758565223163117153656747344894067645877404637873605844023540859976753955275224243493171027351716094559444663903484233454579602378566147516377043336873944390707289267266654310360927940973673230193949041418798074665504106036239137880363298362112472953416605019902395378421969709289947643187890762615675555015361441095412093247447619981019121141985286983909227120171131214766946585398621011028419209879268565600424445363788671885592172989589927683536788374537249572777596421379201594371652866309949657744409420875964667438224486711291459357546878679547289923806840049971026463691672340231821841315837437935381721909472153628977672200968632313821459352945728982185532703228280234440916028005054480006704574933926062242737747759925718687256004529876877650281233628738951081530328712854054974680713524001168725436324816261487356743501165399822965454678510683412563952963526295978303831154035220748890878750155780074453543194180747068292500619473008946227705340920276580062656629483878609762320245681741209844072508504857424740341874326315601654838428429566463437923157872727144136368826449965065064128308210513367860800251128015600632915891789239293731563904055634069686116112654657968366389226184018319553038591642619986851465798051872737557314649319778566522724133287056725311619589825016189727204448001981901046124850020026785330419162601316175091367839970560846393674966968802016505467065753128334186741843354956833214417602701560182757410181267289557932673170474527614465689955209204438667862620068421652625595385736456368964337713532958706245073253353979206426336652108226542318744233316957318298018111642441161911345588270626046690493877903066138578024676474061903184306961862139391319758568858448666118772230847923834658418181754780689975241107886516688314224174630875204831876486652047537259579556728015933557720029700867366225674717835373471526061056412025374737266208567007433966525103746876896018982150006276170515989867530464294411250865903644670751994751287754675914957007614600567000134648986855703288747079279145362822302577268966676649856293096811213399273479253204058679328749530243948399161542324702578192046310216564733581383457703062351527638403412839273671977643503775407151919916760826095560577526096123903844203128537564353757616781441384007116583001864469389039167113037508719351640043847192577486376198542894734377062678643829875701868963778532222621033912761696258752517613345102354385365042791285899157788063559189234919288794993699870900735949812095191204027711914675614981903602145466841034889910418108406883767474325267466797049295940807751239823893569800863783440465769411348478205174303566102627213391370131664076709556860566794345189729520613472992100834714504292868490940378160296584277652486906005270746278564744822285454779506030540323081503605265609625864882159565917932662084313583341711415321214678587430365290092414767274301813034796964752623208756504050259390782439283531323575155519093761855259787711676639534680958920204894748131179204207065992293285176128820258587885881832858716046981487012143794740941732240400828088480596112082497591774050483173385723077618836809420432205057880260025238444852131900044414582028770754000527775384487749230796784170855661781087468222005866328450313351223940538978823298844400368124165746506326149525166911838198877255411132255597043249870228868591900515684629316041118752414187753043728766786343563751528778731658403676450238972790509217746191126293614798404967603771023023544338455916043003123634704780933483084214895756501381857691465120631708268092227109710199292423986900847158946183129050341293040712396061958197700782445626396062896777870013449810526312389929382871690520834996467067019087904775628628367142994685056449385295057716321414223005715968213302201781613595255908414967882190089411138655313192212640388028284216246852096111530953443750846843208898833250711415798994883391346198111238741261861060406836347460815350122061868705283778119107096323353827667379782431531451765478424886189064440203945137272270558854311194312952604754437818033340430226374676491856960342458546892241017526049994204867337519164406230931847701116617648003147290254389881882789265284591387328304597989262112673044539886049171162269449183372107612116938765937181895030852646823400159731749415939590818069360502932234474822979662133391461114301035375395705627847247012097638862456595953474818258158083951241431742885293913264703391361883331890301764307976667370872963605094888764222687858443861374048890132374469987995704500912011810495658851344257515332857738705329006353289987041316110241218102252848882799021838075554813056074463805433657858448629676520667731358146257768794678770711330844407314175247616777277290853693927439296501182419644998741548492710061214925517584515669416418980639099515429820858648090686094514195482763257739445538122069242360077382447563168106144831613033810047309857047932528327833021507738178656406448974811430053722669207043278919438012919437817943976367300760996237773096036783828785823141151482621938955721815005183773354623073997314444745406844325234522841428329352576690224329092774156361865754282022730379097454995777822127785050800181397731298858010233784507724578527543498655692758325561446661720625558993046237847092504778596440074765710710101955093451487328340143568952719687071772004090952398942388519183460300033391270318205470811390061579273107948598293058260734086885966826295418472790349086837584640330354379558234062014419062687056885178401487309458081490642568114934510813946434958655869029702137429595955844820581645500902636279028425070505281714072745709236720853668494518600398342973217575430683388858905671111232564593506834700422888814318223882167205171930082749884044233333363952152980761827009969040075247966486961412363918969058835927221096164368675123906053500457380892464167630985684806168460420320829035135483025312935358176370590525534258926158861787846675329705979127939523871843730049349933367085769945781910395149821321681839925585223084491084704532234046971200154127302951247026657250769622281184530486178021672055737804829947815428944588598080285340855853419850908874532901883759170511475881082232984098680719145799188866185712724435361441747460524037468619669871472654781684106681564742022206939349441310142916028872419169380823617223185828038994531636031466771010179518702216856874953126160934968861648221528095609322982146403949183866596019618430986043932142040915275545803909750457146713539184696270449058287930778353883366700633277480326423260487746452858606674827355002158972923754795518477602846466567791542217157321904147827054116125179445545217531380821620716885562991934755752363330897909111198486533424823077099179672935575544843329660995348651773376775040091417639156534948248018084776865206698682781628269941024566236401453105761082760460326837707879491942216970898576275377344449873385117311296576248334866947353417076747121704609473064227462626220976818000968752065381114915193362930774400329980770667172956117679402866714172456203745626835112392352065746988094712967516105155421867486033230655150722140034463038338143888027797473147139275857274378954451936721850274206819207419383255765555819700132429170913483345466161517770586715409795693971689067946310819698466014141318428514967492449497684352913883124844167818900391449543173771754025864744541477345321686666349193778062480722404333095035668392418024063282353033458296938178917880918145502375861731169361416240156975333774959584922276760341504024292659167096746683194655859500561604989889260890006949754174102661527328949284609080784737343143153311342939605300659563588761268014147963193636085276409086698955010733898568275053234468453615386585893565667001655976334793166757096179330100082725872324858489580759998682494095129461994359516666035996773848027714767431048339934631472055025059422490604488117282004024630104596799035781239960350076654856478830385604125606634866809296022065334380705803170555612808864090106100649197535263479822012584155792726197156861748122020492844315328584429241403974607092786321850924926330414920814844200328278128450617667636100346744618935842007118333571078981889408982359805941802009203635097849592344889726763578967133289166658835234025975611805066510407609318361134471206119937880728321849708085945912311176159842467372262069461394949719755385708958545709264370964674653638909999375478470797280453468642235857166744534274563531095831703803966517010625304344493024062496877527283963786461387649196507919776387805673363603467491842696768777893131107244429571666683277347514468572568992311979696020442139180437163925492173261830752559733897063127869783431509142398409310537300836598765470566310156304053409702856216520579503838201896963347018893389663258865814775794338799616360952149653884014749133958446151297225172696408747656504082710522051367972603300419972463127638576937959701441328532042756939966127866105501119455079032306664409770746125314269579715812131022506898894389338430360006664281922838937249738538217706330493706170807056965208221848586312611823287366330106682113133144551336608736609260908938202702883426159261660944059735526416966226539195389304650242717082881885674619820767877507940233654520287402805055575391673422233744830295470802803040340309658061664730747792604616963106431789736532355207865369597558305363622261250643792175785310649591928998216404001550111289839569351603400875927748404663710426984725964295737089202656538840599225140901749231121028752166408513490330347068784050594822352533911665273676832474712128117562293287590412633233986181882344767702702900816405938713048154989037896632039489992088360531354052342936581993314808063506410142340441423263898780668226480026439434038835596017979261941459658468926068941614240424136144290469787427592180963638275742186453343433221498896745023436975340142421829745565506921816400566668648714248426899576915965285149389897002775955642212925593243634822046192548298459824844753171042964952803869389427838771418273634976338087426643714647441204405123682485273691562443099761918039536992601635284331353179718646539378268590662876957241671305609550045668269284900871135583199269356002150448935446514238387427399707924066827504443197125853913350029228912513082789247255881620888842585456370522766515502143693328420853210179310423325666266565285999742725510248462571940888308171248839677954073970327936227282495361317951027006778453047139051287530222797107244979227039744689433578793021749696042160277874190159546271584359948508320692262780689766377824921848151212714790061174928186821344167349347144316662982107326266590035773192642444649993527989482933754303282771119622075956556076338795510710802688375662777118109025463270577294570082909900947225412199992368357165058563126048588062561306143573787579718330131847839737194860599609390069544951007043052556476912296767257820535060459917131318380916177804668167056443138984685159366969916904581868468592473639514463364572907674803894195345579312417464698764606886064343207163616987223334540650272273915548208728796431838019547688036200230480251798801554760016282194382482371765800649539796406038203980497943918110762782796408808767606297243147463600240646755516108392874931183871807066044588165895134687284897929729152927940669079860542823637672635273677039325884841928906278715622413619424606693271863226951090567207810710170005581421838705509688495341970825828783859037577765462108057300739873604357057230010592636921288184146044956500577863172981666037097031084578791727650816211469262029873781324266800124184319330315274446753538440554421024453252216696227868207860101843804610941249537510807389698520751275160598169337341350704744835469011800131748298381993480286577774485008190514394135851768791817463559092025700511257841480898960764708962684262008284108082259200659655774922191342534631939107517746281031434713585611584165882878117317419707255272146382497516600907901590794838550011081709010256651415312433357299635336925853480952818870927810663376315877810687286062900529902852347234509695096569252297189092273104047498885502243225699239017469606670682515092786300582720134033903661306402560042826728260206754689833597839717300287435238460892902078674936265793531432752069811576240931338055905875927221737080255859908223438781642637354231586796562001146232101545662488795888525275690729367094484204969513801312264276854522798569604896817521332728903627623709170311447198676792024215253542594582062600652542026946333116246159870241791459944350723063105586111578371931609110663156453235562785280534788963641409215098597362881559532152253589347893808600055245488104885212481808270570310809980607012659915395083940465085093046875003545532921145391370157722922678820096663895324289034863641834180476206585174125016168888723777267239340451647378638589401843985324430371939184275722834791051095765354518076756940149348421216963921947164959046703795063831415485621347394816551964195409407719407738796475033434752458047966628555917222239095921364245393278945054449033546091012971299211038779496644363090182342447239962770344391074881106203993457370655967459330145354146665142316170159049005572662492375081833898670407880323002216455951795863382456954610419057601696695376555569819802575276222903654276119680986192806727071244987473488079870800941488530442998581214378586120509096274549916992976200807888408760728225622825601697248426515330084647391239398850125422126163931267035449362633344602192259706775608249557254671118464075279042670237161055827990689668405667371100750096254779365798563042601900580602276087046596109867887922988880505949679164924730256308097324638055960860476720826947017698589906080329186039758162810576122150266885832857986752971461264909119617234834908481787469831382522805904205166348328164074906062153206333023454080930217818477040827442492227310195356510415104406781117186623719801179266092898975684175375301422005906976972164952462855920855364561860336040030334280718155354946296082996269197653032803990006678342862544509274457008335603744134347226533623778223937405237417164400950605843651892466888486404479992950128421377771571163233542886404805635511183350072399293191181262868949886207939389796519414361911821630352622114633210827711967051076750981694884197082512891375930908580812737952223131960506562702719243920248172364463050984018385017854189754985928681540320050731593286175918904619451935487947626650501195324655465808414498036553527846973685319997746890407856605879581806511152050855905095129364734054480907405273497366499105432761887799949022609310765359763349943570569242603119392073739894677121619874398582998698797356565029553415623321016877285768401834332340375964105530200739546557744537225372691580829602508993857940551002227265349523418931047110512972523917728755916232252447340929898779041813052655264538563924484443738068385670376517034813920332994862025197497693049489363336258559469706418551198646328045200308337330863061394982494644045339146119441784375573520081051617717349347756174475241600116359464900735017772072433676585482387816450165925861134286908725376652774873247490960468859208324558341575755594581203315595745980970226295209286623844697175673178554555068656340315559435707231418338686768398544893741103241292706651084307279183617560122488533482692659963589948733825395255058779934281583063255942142476928156042286712432198882274574473519421182924110071079877911644473599497728758334820632323846968289292942553484088438452077209027825157536163362942785695250251160267149935377302742857065279418198078457931472526653991530193418653509435907430024603446711578639895176698747659795692396430426947852131050075277547115543205212232875228741794781679750107477006375267611904224808165647671477988724046319690514486529407547188383186846055355972700338023053995984248732084396458524091452476677888272214830948808805265445242898611717173294400800225388149774467181509150333670124559009849365128527403419918712356770637425785099739071709868518697636442277622308600416075121207233550640506942376528302897736133040088228871434408766016402536003483824706190876202476089480838751055884968541340719048841760921391352578820837065686372212054804969927641791734315424642778080659685478597383194286422050543413948502773350586501065803463582365804218992098366165140206979280422652951524609709693042618997158240218635952073891479420547834155850862440098603650306947555709754945056546868887492972063968856087590070226338344538092235424265282959276907625427501498407384068425142530899142441891564443479043046940079427584341433108782684611717005192841937300816382057189534783569591427698897386193791765741947886579869237808624688560322178753011756889963118263921543060642479015270601354622952762683319091476278670138043987184806212488858208965832501244914933151958153364573232634013825129518591369417030903433016445739777631233032695362162389563778879467190558195547560467773807168627949784207914730944604078584220675045381797018550666337405684152294630953139543207949916174121836120256286176370868084577259314784028413272796177269166776977916582293956760137719433873806307126088653300651273272094449469360730878834457688690934343017073557677171666074021471546052302502511143069920465724338785961879503385569466962950942177481086033547991765631162190340954723849786959649588089037054994947734364367952113477419508907073202972144627460067789645343607364520147041728694818475422843520238580608583173348105639437252434171946182445340902930679127461354661456631883121814955684245204073597685130245409975211915414474064310466796139673416925666679422390710177544083991781928946001927916500681958613211260276720961166007247899269818029247283052752434649106346096315694196385960742924230921354325677338437634918034139212042286528466311591818846810250806934035486303869872231911873237399433068997094254977453148601476098098305672477407359261535963398079485403699941394191181460727410236555685108867449850769449301779724825852694538804529629971046286713911287953626928726179623148617883288535574507247600704934779038794614038182906854404422190526039693433534186648172665796264342701200412636180129708330370602801610084275471459251510261592319885745697088054455919819029130936937726332395061420927008815284569946634008351530655560211712004615007664100698879074872258140606776333658445915179738221072220333888546399635255022487806786166887595012950145313661190277043984165096168195673101877413169088627439666343033247836599544355345871497950673094505156397625592406556187429913340312980820726024904363174862124726617954709551633904805115895637755328854679140011345998988869335570189909265720073448498712192162685970777119229522090677448224674863266168439897583590951634623300464956525026775610447048972041166791945928123509840820527385946274344716364128396415667153436595551902619681560929198120447355843781420845500520401190699898964699163829799069442988693057164410335070553397913671664961231987165480053309233182269880876439712570437268147184920943426372808936098585885790113256694464007460942416065635791164595273759046869836232809179767692831091527369903301653759610497467243509243037437988160268414767785366956491484093318212634803993177936969000569121994936496817776416121114306303461351743952419171044773879072507931362065906366729444517130924587580902256454191150711871875817506550335872627211568352765184980435851908141843940470441205215869566251199338543648257445129756448616402186963063171757609976868385597626747621615383870538692060517339729902498105875427473689445245134920689590911972946108572411383225673039172518699952281322856147815165559277423998382564615153811572099751443979969162012667615865362070284492682007644166949817061234535437602574549785789310249208665736625375685977825523515351644772648764869214873542062949162894286294038935266124348639159538193620603269346905013844106113308632123570332407504841466352500427849309977225939571205273079270979771181680029614703878101791603619693703196573224131571789873013886383166660859933658081388650464774110644022410941943919806806785061021606783318553305295644601455145981715810020173388692455771668594793707141828013599407969781060617150517019351078931583107353602653720939355760898178390248084324497453924258231502956778292469766120387450196022396941688530996489414526638052148905879951250820252056226233269251338489687306211794904494607076679485635930028730557103016922004054363331511950226505675668082033498294314142956609314860287998925573187705312934443910132506847140120180869703803068572046648567318069779961367753010937952969932864273618657326042411408109047039686397097674045664186856072817769212977816781753266141525254634604939787439670403436721140018119703135572869479445532731160991734127470501213100929519876265143016230125817394850142895848369663109972355386438517682748898838791109663167932464933014917787404647712893514661708564593758683118249779575190494679376058273826331993200136846861626302197504437771024834401082422508988668009967909836577606974957977021084394903954754894085901973138092149707666360545375819824629078604105656680554656183952775337540955826922584930762412005930769026585063674223777642053830385934953333625064630171655170787144007975121006526969451720158799341649251720258213039039449195694200535054211656771784826882244793584326387195301271603490750174680771130159642934107346325028717701542062309895628787274116627280385220104181986520662328522890981340108152596098978992794154179976483275259074463166119558140835604568686807640283433973733420475855589831369612878282033148816231653846288779838099784888510752947070259755175516574641256619013998184197918680980178713426159059456686098398853896897272166250622958137933422678173455502023421319124917852448727875158569284174167522402444389826577082102769272975197047680476989072483036836457815749230141935450315467010626717854544926251931484676593479365203433303707619425029727196195461739477408491310785563029159815955130796670759351831890076477360801319536536666579374397823358089941474515198213185464880524184037497163440038660339541225694727815621779567801850502888581516119471751850014541455556089012323888022586489670293802950968510314676878014120762826757120274610356931511793591690020512667738999709996014432919724389903398178486299263596353807735192198024550689666219893778859276956916336885524587657821908919762081288824885615067929031069767547210229244291631590419954997981629374632102563835405474848455020847132140060522062116048935712182905651225025998927885107471633666538454593113901655784567131757458989614959630229005831997303490050479506759991475114418628468399608333054479640742482219530745280238332213235683166829244155547658868320745832455942339975123200592155294317357855366255162154190430531180356556576714048816296344720897799700366209003363148703170625272948023852706972281716416865392841226496739804784415049651347170562108855351452784951063547325777799909416896032151620182466321488583507579732693453155263488707559013551426376420172390002851654185072904332468415880538193979225830814619609376880205189041573555899599323197136951683798061714402128066783212488271986050497011420429724837240513995323225471998139999450936194888094720269126556293208880802999031992016843559773192706872417936042752260801418552261375525607404956970972795764994982726938728680109296852147715066097983627598594971990190903228142801872377842077442357931378579945789994604161854684524197283089115397762308782096709588998643016288957709538958441397173036102996765922946071398399551063137310038036579492560707315240103473090925795879077757322944974347404396400730588435849676542683528726626435690453606690702290485580495757635820570373814165905581615293194218305409426769273970013763559526101867403794571163698560048786410882805105165974981147355862703334625524287472391497344954381993860808620404745723235262537608568086033749087070286658199776634544818050922585670598503056515792806492921616362248682286019400899164324756646497810267315299584420197821163460583076444587150792546660432405176319512350189890199534298623247059278763495186085032699069146660437555502074495352256192362929011530949550928977432512119101049105040223490451056306115930682375121095461557924012696586291978580611159609683562885633520289236847471308392381687514905503170051406124060945381588386235492521162191473966242063079531808469498136673862052271837492312268809044308223337193898992185363451811351029999688064203261999706037395729514103623053889238058729214221285647982464866718042467263551086295923356329470205647178754415081791051254454023000169884772361480523137415798968497886310317026586004570945912448090078702047448167453598562838784514469316943117597294408022908600315569272587869353923256753704104410688252515406389016332208255291974652037978174754709527316957865253890790041235171006599862721955854067151958860277985534743118580094296467528522416501234258073295951197816100078442994545138119306827415976937801883603745526058539712655174738938567392462304641520172632206380870798885100560845519422915780508171475180729982031914754962795150555673843498053625244168498104298471163013008115660462159473158512703092860437208949318397681022545396497185086095291744488471166311540979968147102175382279872432144840962398990746821258050235239859069004908938219594238045740525729051518027161101881776786582271580364401411921287611128110611309264370952818132223037180254449188115059686179452169266352010632823118589104616557464273012281434779386334433251468748305715817569758895136330235910430925222139303452087853288572697542454303363111936013755624785662685947355844859931939017511580390799714796964130317245884529748517220791838022195454189124322031127637901654742175631884677241036166100372863966454652094098077927965293897043967053494729301082365385734443362116810098586938738018097228807340841773002180820776604115270134038350305871062892538663052380522567170069212558950843900833852883473867686861128015168344099970253147295368304264793821345182690223879695938268505223178320815437900452168824470328372446288002473167189149687187792313096166762515780306488461489337950176844337565922332345326985767523875378637968595689177983151376765943851481781415856708438050002593143073939675509548994484446609092517219161671809441349289790505543972632074640432707145316654707294670163416601527800028467713443268180934160759024038574205846789632392990189294556482879341859062373445823960903417389478996136854627776090532291163585696584777207651328418220920746745513913576606321956531875578404154417843852953349685767914078391841429108750372909647500490954770413891621472632417565311506475656798725206878766451851799151124493201311873555367360767411014438661339422446127972521666784160562178101822067575012944964973114077929898598863720984208203671889534522316525891010919007223471963021376561041825014439144145883004319141088684659643752288995614807001312736976605249436784971824370658581130370954201299316425046771213476853549026029446018602409004210877321081616962337289122434159128491945255558277070778415038824187566854234137902049375389282729181064016567980541151795350199471554081890972182018704068101958223685543699427734582572805988888498509331051808787057524024875804947738755931492284386108259889656697608762327272633099603055849154925771647102309938746174745031156738386481693515470744045466703005334720525755371052888616345473206688924251355105021351848906142301297137147740344110852124659772178483203198085708954145702896688438749674808185275460842416889348732286418809681970905911304264410892321114813282401931062261392496518003594864320384151010152664689482649869626324442172912494349580346754009082105224471683916671581978959992977623812706668580064917581143313037490433046408895014446372824721435554265707191673463083098998782329306190613750081657333318810370665066314606793571625806137996523618190058276230961714963788783541305974665522339580946853733762986213915419532708418962554828688965765437816539715048657474715416343405190505347727203168309576164072476326774082068651380698976508900704597737417181123077100722500168344102081148208250420589180256794540049004031598598551249805850572356609454280643478144241578447516295277174707755494934258231480840226778485837902706357724387035988373299634930082296399063694293492196775427040714953353919790000916275027242646528554539320806254910063432102833639281648058568497859750770209919581585657978558127111701427047072360612769843737961989006724432320669059929521130614511132696048877202560417486060129940766154052602542145443924257228325703788032303058654646555669055164178110060057823614253661030905626957390622815555796124425609889793444968526548522063913876329831871586166213594953943085217218715187980497390077664946079412658324610536630974003673600627495559639008115173518077033979855924765360340098988527764821559002057659446870822719215535575700015931440617891349712682949059404268188640188278148901149509826155474772819220047391101260854759285431382795409802358721020258337087470789639310447098949386787479243375797807370169724230382873530201008961638349292288309836887191292585747035810348317523276485586182604504502083646243705842831240482053201279249611750095351418933260337631567463875377261267644172866691605696683332602527652800079765856856115385593571558445637420929717835280017331986679062635819642664682443672669135707577608275582070981395241189495201086107298534472963094167432477418311433557510672252179565042128295259754762947852283337979733799816265597263351776557993229821945704435303696447379499633994952026849423893094329942635879508716564873775964391468029292354755554960986675802040456741066190966766929652236658082065139854680934682065127056227407660483242148956669884718574209821253682169249723701600577978767506799816925986775663201885266204327854912652341844345584494975129856884807901770425441134101244147253310395303123999329793252794904851303908302926616399854958856507919783395769746798553811207504431876691979608570497815122265031254688056501162210356839453888791744149503681197174350969497539756672780557024364034353690797958929260757687649205285381257308132454057771356891076143874472908408040890973626405809572954333372390820484137837841852744122795493816936840409077342384368740572561475042374466289317826048731127770430404219783708849103156348202346983752850898480935814437043627790751478272677128891492758095184776513754040710082429744666552139241350366602653617401289936108544838738508163855117311780389266413257902849440486165594643517868467244255191183763600260808476214176800051141632850007276899368869200246479649058102857530739196240833762591059467746196054384732545493333600161822687116992712338880250770901907661116161857711523530330871711956858632858800933918309907213792234731957925112418852860149208859685027700622572023144847624286662211708242216803533517254348907327541304607763978592431694778084049669246835465021874255557662140154849287497370087564013083663241096703039079696610264663462858464674459390166912176628190480794897581605764597318323645786921037563778343886317444943954534830799439823922081590784939974125635823485849301320956626168904154941401947901094180021599342251859116824622332541773614898766064342772595771170148499429703506521043621888990357891188773977163760762091922334913561862443905598481429510669588768914700417963454177759660753031542119205290056823635836353579046708393884738148756623058446182648545794602686873844835330699748936788208287430937522339511236718422515877527902009464058153871722213737446006926679670372920522545961362024858338852333447628293014080166760433486061221062115195742738565388945290094092704776938315309489574663553750237669812394181779496642930695614584549658918216794870507431878252406704802032772765426514007014236968312721543712825954366028945230742469803044071090787489110455982510914171787708696671437834414983531475610130835013906392189291807090362666044789807600891212452329553838303423996914691746703721830416492412230382302620966787657021404030096430932907536173001231072991965530965596512292444640222239244664689539729163669567402244016097962433333642974156099649896292537494364398783135879278034758904849870237950639356128441916885300305434430741676356089393258751429476264515094181601323424764808006381539847535567897461571118162538086547329788586812497294407172007653272172054055911548800004005393822999705619047129905299550851205680840191595052524525617251058100274794788888597687320001265844330827209561356168280932345887656408017674988406956205926132883720222033185832721791979159256617996620859309780975516230349408370141647134941899779069369854020458759300159358489283680257892322106142537563869574871200114903829944157648221662027235718361968725899604727727293662764969972893981703105646129262037440985352218793854588796575437088808246042931588682935935472689008334609675409178552811695680387046415344937912950428624780176712132381049998007525376619376691605246081245832233467060058186916454245205481128935458641587162567101012766229466122936708325295148018907912606614704645978559560914200800183433915187345473121256162372164210399286481444200526531056827686779696192183818115214122033786950652573154519367416305352170130589698524856914918980873245335270165604406998360116542614011370583439026683511416486908612765481839844852407370291244361734921906452170984131219663771473150066566487419914223955702726133033865014654587031147089619671197156743032187027439128881806824115717637767119694412054795808425817983830477649767087590624967130583526052309005947770860584333881982595328033235852621525427913556403140036759641894896118672124923741923911347986058354325518588672705605188963678420037387045137342438109709526431829614445215160770556832550783552299541186967362030516961095322572584636135388793632775275404108479645995649136196414737773305763255877648889021920715670461909882204343783514711994992220955500326672652148858180016514515173610933730485345749590299894340377793685959535072883205437384796766706012110798312690844262674941398823522087346328865403772516967630697479490230049374537939262653196630985707147805917869772243723531894179075297815675923517944060369892229359167302437757179888063697537825584422148887239821680191442047038357160032289919262642868458442573504032190271907139183526839434704368693142596799669467709377736989976886933233641271047454040290874838212480522048420467002820792274797025061809133921943826255983962770332522211745195521894656546006275984090543382264813839426346162975360434910129733723839547047136404836559039402202987181072840444513924364428458686474799341204141373097492691618904568288636594060689855299360473430869700754405903819266822951100615328663151240592760150225273854699839136133802928366219856281066682401734941538880279927121769833055315376563353645682630125733159384315117379520058297760518051489400860627735315582855566263278724037725656463503541328572351184346766434863480255851877368547286181599626846385836234509661992624759597184521077242512261984762502110245486620773419154286327147405414971802322316375227699368182322780065411770872158523572420747631226167262656039018644611916367549687703701362017869429164552213950092633089269101543664188380509628443911274420599137744226304988102186269738166099243584185584181474000353885531880210152496066859026167058960134596831184446779382302801445752668358915567805547435263910687970660100691367838329439762985409312033005448944054161098926654103045136910950862725425041305445477984436954291787654572377764082845793075695515443011165970805199796690080654331361966654942902204351011128896732109199025032775167063966079872226982237956598410058676830565726369790509390505419726291981743774718009116636647582115048942251300426528566515982141389658962376422173549182949511543092121263702007696443087699179771914549153618847375559543375576552887204309272598122652222448470786930492336854918574383610583471460653118847149068820583696813599862179594204701446136983874037653864513798469260246705217212467144250095745224238393488338451198580621506947715871743183770918319622430327471081265230801824841908847527443138133056357557373582577657734919345548557845875619242128970612148708302699869599306223575436055999546691198025172907342463493972229125611289172082582979703514252685088820106615779243222214694817399510034627425034852556876521675661845168696043406403572754671611000592019849115474854544724872603978974961255427140163509874083550264698675412189905291390305358990429166355419442748456495570201867944693104779830130902428031870432238988013043478816029590220387748469816666027444092200729632389627872696028949912282633162166041898734203433067010326990896053082685534869357959711960885130896349708067487024133734654105175348911462443207040095532732741601548288437337161428337075812076083609507339237587492816417961402106034587058462862200260297023267023082316955684309093251182260016045958349897025614512067153684517592877590831887436167192312176600188522061812092637794006051272749970500451795615051963877689139506611242219082946207549064488091499092390897211660741308385699161173013809458710473377191707788645830426662735732307034263040961365300359552069342479232161092406569187317781500798774031167737243661271930586871522056288916798962442361485134605409329692084743139377091078470211793497212048284379727497703248544110492297413790489354322760080340636940494728630469679672840327861450788501814749312811398105138541287552711832188013074367269038446014781576935241632033936876928464541469219591988373387348115696741554826407315588821102465501260262769136544716240345501345949834479765316921153120999210500190776173092020920182808826179272855019370179695242410040319112954283091127147600496170611555732271675858676525051530944203022317647415228024247927489057526850015229822928880117810398114945363946240297102037475609794508925083935091945604230842553717695494161875987971765990844673554317169709784411106533465186974199291189935806761737933051586436146763389272807983185693622401610256485766605213878200149412554196722231367881283801952780701092793284635717958038081861990980229597667588365676466308138324794968579309804054246031453901604096747847545186571323390889010074825415954720872609322207761098464851762571001800094989909742689219414390821537109561861094466876280562609500162946863531373792349148016923604748028092267102596935080065033137325532014829780737703926417246505969254959188442901156243245972399314668367749877686636920901384250132361699473438246412731419715938759195489905552509311788003739867094039878991265754132318682328791305336642036918963416895372065719238634519549740751942913179065939234256366372690089180644683418584538787342378789165568229541891556547225782413006505592036858332777486701677991704830822842024700205032336741549271826975977634968893699533101112347643518344176916923003578839734033143460885613823079203599626621732985063765457070219863964408921665049141404586269569441198371282369669998000234755748397866748758269223229399362511111287582814331873602615437575455166570237303695325537970445225929103751332846771438896437284380907618591550607246735359879307619303697483060885957407181647207724063962164360347672897699114569341074163705806390575956641439287801755049606916558709740385147108770243463210034324186741594263242891767429466618780156233473057623644728256377740990326134108509304034133837400363338175128402235248421755950741872936651177835207568482361110355087711121869272653555350277891617421685016471805769503119031195459227351724373486330692965667345143766009009228836250245459188672491170485340522470585999372929442712241126553316571365440471151174862503987708881205221977017116362382166262127208410292056854059368888436893205778224756584189957019536434699597634508656220204725998573681334565327920672936291276459590779858479249056065562454140055710221907430473421495055728550600913772772250756252893033293829138285076591173313480393808168797811984459079859031007559266767772417759185904093716335328400793864642427763616894457736578797750633371761863625737485874407445817063993502091885499937226032630559359292829073821304573597820987147905548209870692642052409576004444167692587557184830583757763664058538990001079348214834909940140041665576315954612075030899866711100287899539578229931489830585076363452262370399435650129848304035298919661734856948665235706406764303237677463055909855597661126397684864505040179463033165465295023932338938704741418829429972536553459931890657755096333738617592938979182886582464847438411012796456823160384093867056560965505003352916737172015220319820362031170970268789835984626579877965202260515222843363029133189649097379991182271513577607241228532918419271838532346870981569661113097017110765705895204054712412864933658655578167134056058090903898127023445162317602274208342353193706720561901101728194134618861425199153298918364995022895233543047003597948609630951946365036062345745778374674344028684125007006069265723442192929246638570801598173731305393907972756359637010588173542812294640969552530703180174829655432484418138204744756272898602484870536258366369932551178337233360654920071731135461426075196461135286849707462733827866439938766242951270889942457953391838820098585670801263631549760868104876537069922029334291290679274726525145224600548201898949709716588201925474886943299187053581033907162108316642014764363713974464895533389612446460120153933624808238755932685731300741829410925257711761816625825107421892172743926932375719077639685540044165393584839701657368673298792162577891061223031147115092920169931875392366142029549260048538814235983837247014611393650130858100014945604890594221836289658726528483234292557221602852224105724478867955746617225048539032028592006400656531637325888697210310086134105844282179466464362384046386600398374508434911271694953728282174249303312381053616258048951724702807410129608632982010173750705488061068814647742897307506404779654859556804186733279879944639253024913990634790497549040931959983911938875515955924206052812116830992551608568410193675191938333111212625498508667362337683292747521116010896659330179115756588727568572414824290492017675629966113215521465045351687675777662390413693399257182739403315970776109176386206192797455986079160474518125465208529977961039520391585369653405450026777340782963763367462756794120573764934305198447633694620290535235110566593057378821297759324277596911635595206567701681480756357292567407036064244955584265161957653831753375062984468657266912697622267253182221387206890173599638600488203472133205189112100914929177647684944148812054787616389065515454894332423217251878835810971357374139355820595737334930320509879667245196577740736570088291419100563245116694509792939990969982153631341635039415893762616996582158992487490128709452301389044388338955358948366275704792946605037318801887661375906037283142869162432751330729239301611445447987953838027160155541277206661083980800911988611707464839911067607597194505497823487416864748937705830581386400360744381475859990970395250844112542734286089549399140110114491606867577089879565006796425390367730536048862175598617719716903787632366843927421904043977633450739237407175140775574946108381971410322963800152950583780531507217910079666287412611024067010876989057341400370092124204471474823956742129909127466862459598651773431387681683436789484788135845054651684252936975004918994155522608820244780548060880669441729741595706582535079272674079896309078533868940902147942284718222535151856337485782012017318956014912057102515122343850693551435842609986421164345016541983075982334647415903593564121816578713303295821195572652601959726232368951081700218472999530742686061063689317833921940634245525301928916538508004861250117468874807797539272759005743979857997070272635313871342037966061507418453886147930263772406614486630807054128125319214412215906332376801360771699834698523749417098030322301113237747031691656742954615510370576289101516409407423773973230457891734558896783935201473933225516788547531631054368450087242778959306777988116990210339114458214199914734772515317128624853088130655394392698434231341779193049381794597917455493366628295160758440811798659152597712893064352444607519464814679731042000389290866570687840663411451512090065927707514564441654125942761522291615315643837144095419992639755831015387293585504453640655467924906450779737530493846459593024139320409864673733064248019811411723516795141383347715150486574728592741338885942681682149473425003010515606197027957142855359925744976128480796514350467712117249293430012290602781961417457491246805805554567944523728493838244940361679374899334100594578974655741601487217786459761347233679653615128530707716562446173454047660474081378439586475583555511410466762162018978367458626480547479892715851661940338989960759996011037319694952507882965830621681306048287749398056180367872815644114723436765496012721012682847870312620723419829192854983855016948678214758591618594015857026923869665667907948325727603276868298739922568950441596001081888723334923459094780083287767292128260313850772552663333007256491045645569247661088330038710402355541863501636496376868124820356630567739978778085441768871887564829236721005802377398696736090365315189527274778529164364125865344611537930462508869331526296554836063764180417511753892401143092957317448693309380733320897133998652606655889913461773706106860721849619906676697343022103876229821417268912740456465192457055332511321472373913791156657495900869018454753734244800297629917622277082100496690226420803577512305571076497370241382676469276316539475674485537847191263602937034733873852940622221912097774965617414559845310819925963223692577943500595040330411850655660440013849570243718833682147475344845601203245287217814641843467013828550545772804678840430954987657258081442808089491187582552404662613817965965787198653702950984103068758400971658492761477298929118190597642722556459449611507565509334055687854509744958256238724013623948910872938791733191910125263200212280369865054160980691887415229479946886059948803277042027308420894132451269064686631264462202350078436959386637299489385497393517431983532091216865034804422384866734535524946572604279818555976789672076219994294145540964095379744503336730467847896267912956946375505766215659219911775605315493002524048819153811515311100685783413087495728216464662819316691070948961056978715709192330624933721500833182028786129993614365369812801287395718976159478317687984311963039139874998525676291265029136007143619925260158941099596588837917731161522652857300920403072436790426708725833901309431898528565606843838179984054286834805351605457786688459462085000748131184927816724723200224782176602355131988590984482935617235563766307948017039430480461383658967662534890812660403531260295884637534479228596904100834029579047266357334254378157143680215723351439839181814463332730363665908251757023153639558028019536756790982882187869901397344270154972626491163724224411433784335209948216307987246740169653450183386081968612433578472427842904937299296013529761674842215559092610882726344450141042025867066628006865215524764496769832874753772960687508494441617178254169939716178347083657639887694302266832788297394504629798296854041072670652719833303942365156392691785168116002870557188377229351396790006175607911393340666032336925834588638970185711108049687001141554065639974978760902872667913579374526867780973605084409086268084869095536177496750507532734792938558292732031545479898173950351259424389430581745667659933773109098332195555398878511616171541885098958158991268249502151304967092380891945963242613810445482410432145940175541576172781389378577841602558993568656994957109204479991203208712478946810450885558370957263239096158832004892542910164287763429935323468671043803939782078757276432769128750581325985129576048796063035146510510147963733492012034588885942566066287640696416477982781734066585576575303215371465598254064474956088938670979592125965225277429047622394815211476505338680520286624630022477259906079932330300491383947901451668698618977431077515519106055746408916541585089688705368762732790093056769073221255548454249924661110496449411980976398830026958703276214966452311409670438970123444358020682491336979594872998532980280721276539217730765159468616066570424320795051498266377624392955799251000793399339769695182364817476089026034404556376192000277738087406970789387670013086534097970377339508160715738359388274240592219592703503331307806239915104611294245369441654512324626850707802118970713023285474853200832015663847854083085730327116130686581501573024808743164469355189013943520922429593606956882279044647718667610466772882642940259424915778472152845378316912075901962430781863181700628909137392303029843118128395113148965489661325613519617515221496578723688139729930780850720324229507603531956624816169296562648898185130901625852790185133852206733718590436064401917410320400665868345290099842311528721659126140465661676300023794257189548818576165777604902386649486141227265269975334867858287630246828299708663434749608757992420641400735530133324550057692286396868919393125593773651594364863268424300816651193592684407437561266984679493385230508566233828407773871776771768840250576631656936064294744370765299998156686740137868234635403455953210810408508778492380051616720383150482239280907615547683857792366925828759962677835328029797397856667333271915548366272585388353983420534268569504392614429565822860699965476054307185260921921956161951317461982680552466036834979197510768358362545584666946044294105401375632807131686169581958000797593138229477916690414147005348352056716369005923950340129083957732677373504576205814929484235074983970200826626995750395040488458441108021322936804700142782013853427218415814668364139438467717560673335293306099152305358498420292630364387219555839362634443668962912040149447618247420692441606157077526133288130747280594074222076419588854433553626307521647879437401969151164807634611949754951317787502439612062851130019430093624248297739307157782594625907315623254629661975547662710882666492977895298837458960167024033821433196482839749756565999186484937306189158519959721745584208493240451663539881315086567970754032403523039174701915022335826275591440511981527146540770555914627720076708116603373578423193312524812460615683508255568851441910874610871456563313080119550211004863453948418210318810529815085315429604846432227836204444638474909926816256209919653936130022257455660750402849774132280816303630247604287371499021957370611149361472839155063145169899645700557939477672521303206387528574334531834426970251420836268921858922835188274074512117869801768118407225463704218460331107751731292775966397272755749332753556135640346810276222961230684464571212347519370324779138158411046371718413933887852577772826336132183671261759984208385124406954094174791547006557824235731094438173382354733123653639614441747463000325687477113903215837420146941901904645795404897242558926355241533812584528976443177110872685182193512065124995001139624372657941646799564405456172342930353474315052990507623285290968333244400005128923399304117006191216288156831603670983951244559458978214972964261043409322467749815470025396049257659857334328533850294130046830368545603932904999618171506884303072556902389530352982044175984343804983096937717583910421281943791655977870669458561010852815499008502837940293597982115852882229759394518631435863297867023786942974853127918032185669132618653821773004274211613438440179748989972523121021065879494988093693192916727743809439636221550737502774989940552734898098547321460043308518298457809842181109769242609424208365658748995436270829895805265140590723435290328140476084633160115911870577053749665415732462777654065435430486505235711682132504328287140117130885130740427120176206268784218385241831493652374759743936356874195651734440002109433159815641183194519409530095815188782405173951029645195097359864547506580321172937133497958325432877652694996781187006574584996050914136861570150457465070217886274795885038535789764562129936282474913121958310417110551575904893536583384522333966886531323691155920329715874603246249362669677647780248241355424748740065856149340535538009413553838569343136560566648039086393400473548490679308346939377849620803811152260953541789469431144679722272343003774851944468886909600305843389853374179026237323837519622430604586167122284050660820947922819710251881665396012177838043701373534230805463096307384016628075903022488157863921043021526577197011507791328069434221664106360542143994811716541395505504852583677179159240287668774040743323599594962913850481623326630830474658118884758054629005268008245047551921290565065074110617956869687492264910493903902728504473763283182298816416104586361578138948716705736279812410798765929339598687123874221118981209419814828324253271739773633819015207984431579540329621972482882569383264487148535127291820211858666770107562828714852582809655902875254613814290476652289749447951466699780006151191016419194112799052670441717816079067783693794086523847485667423407008829475217064177625514050887782377653996279460648427783403273722659408285800185451277687772324372697210616002600471417813030532771270138431478356637505775577207766175938487624150662639727940020233516182222709588493306681790193524951297865817346381144322933692418617891880382691240951382140184781583038840816396826949930977433574771147695414104663377948188263492388439781775292834107839505635240148653528463623908914572844020811286500335535055825815106189914870718603929877219841333739188357524546378569579816282826841297575236552437111636083080139420225783154067944328957187306779826780642859908895893453977055865110289825381036560577268758238542301795194079402512073814471955879688319492336492189608999599453602407699298748743726541472911689839372378155483179078855965039519614132153043354090244147946563949546004655806733170161669472435390971835842936236008173695163277795369066408806572700330668673802693442312086064067130927237342113847212042961102677766932824521776953174305111655035434017466675511894886935150555456196471590616378878781721412047521122813863596459324106936660321233850184752070672092878692163870124891201815424431049440119299198428765661961896080263574127762863929162028464375564106199972976744914791535841133167793726288672344534191197638370657865548165124797786195278578591147416167291858204515049685525407849914917341724782324461621229796398655424572793344187097853536035740655443058158128710751223834112743104399387008030897292019152231144686399250346333916948164638108124344667405240739221695058323530102246432226344065759649222044488818727700462113809630738998131114121271424240299538240831023940312375513569004981043990659156693487376094383338197028588974412998211829296576585583679960937601392096511257048097887609405547539109659163517262255831120263584431336644065458593317997146011175023914085043805449557577919482479201379344095961996872084846910263155614261091584974941718093764302552057907921961874080844570897389058473833416045951199908932222993685665107340076006473657140963833801527057272506508952773665914292191704448040621178826395070042693168542655196258703239878990922231389904645674759139527044729371469781701819167420557475490424353288050641877059475665989963938623340068316432253246359903790798093597957107344961935291644781285304070242408889057559072904089072824835902481167129042784574478678266624018408117129936143323382766206497313917657549468150299568699061334250056771415230825652430802620327865141591451630825245087256938787583047508023863151848975051799030943811369462245794083854932049064381100050526553419487484896785881520107003625711285880589766285695141593516489857372100711340924064430812348837555471395943972131438377456486569772077452521710283583093087362425621803198643763298004657219004163051141436270524767053986700487912889808840644382415478974387166023365363468186363101590256823024734818041453578660375845376225288553467624170356284438015324840768385007701375427210221401154426023812580026881245763603697929337382110645536967400239208429865263256434150172605767661430465854714713022012449054746718268622365442986020322558976795081376852821234476618716881056024951501585149336251472595043082353942761697084431520109640855152495120603051090561389200069007250936809344104668844590750209527007836523742620190071549698903563068110590020579935821465030597094444213955277005262628393384210466627883329170892341159972143091834608366633961971503157226379648326369375734507050292154012650671868089285734000497093463595973309070995260072384782852184336700286486781383193068359089379492248993411660040588964102008043750267761223535169342389180176007504711058265535770899630683166614835776156428096650817142772187119414044614356349019999429047194946800627124324767289256698975701115249325573903151810409239218380020946197615227572877784460919149208143976164988465122034133360108256093562911595928222271935103493222346162989969400690957013223265926781699049045417040892874409268271282851230643774166817972949693223310188847004304817687603503839613823915867267673149907340558504734840053904361497360490749822792438814737708762391532658407795638698228163224401932270772702671485071964555346154178722275725610992801815802350276142332937937541161642187645069869283826587972513313025782432919782532396242332760470664611630385418185252988478622998719157109851416287485047788567531932963920226454854473124437706987685914558940207292323694035423977481477209241270773613940991356653846498413436419321123189133017678064066097828065256985538298494896917030540751899079215667371784950885489311994421624710624296903831722864063340241829710027619282811463534902815582001133711399874974099036813305784234722267788162992782341889527885254553729548388989375788119904320271676888814345535696431357488014853944198143302414685543997912053589322172651225668825536738785484838946960621130996777509758050957089917019903025458858930784954099851105921502720561311978854606489722430166396067848357324388955244826338307620639793953314923311840944108107848639593048362321376500748528903526801556437551377847415106960669083354467196919010303726053126441834046571410784867483114288657116068847560420069198833598876831265918931460576117014046567612810765085480420520710069798764014769595547893867834302127782847918338097257691163181395213786881164733555842295350418335182620656981103632300776693757795500074882486375798489431317795943229741368352259996994742560367671665775412756774446411125200575425083078687037650060068474445880324363998796891981330610763709683747154904776466924258833777732282366229193660363694401073497779454515662054406760872602270738548635108178160555892437894061561328027393141577017851330455450577012542473160528797761469633872985459989083982891551884625680605368117792731417983166244872081181643607209325549730997572548553742285059799535551276442368616896605897809924981521983454897677477016863410142369194648185428279955638957682850067313677406822122873948152901487890785097733302014888149085516787590737934760817318883970436227569493332862775058099540501458014420309730206535940307452967123612523046513057207773049329091714647098668657605021718545823620204173453945073112156404592091177580580147423513705046034040716757753843322830643602321178082965499810242454326055186450945272296273644709460802095579036842830263681901056640683147503550374574914947324672479960443294379873291579684734695964193043584057925570725795471114393441641378226335215051908960813958334270769900409997260890395626244991036054420480085332646041871058845516671016988007561294461228206379159474934243417167129676422009645258617904786693197148216572949534527414228786898594885809550509328700554939776780560419990702760838525169291522074296490531140303265615564004483226631496931731669243557565975678709945254570734682021322610528281351562052913084138434987356865986051715246502569457698032609727253425311610836015489995221908730260345703103372412808189043411883962842599548154799569318863477075840730890024152917871588789739741234635495805337209123050404815742588306974917024371208615781748436658222569718358005541246232826968102318080392529045777651386008431577736156634712526714292907033735392386529906083522969196678115539384597216874217807297147701954176893376447968031157863617111054561665285758883298171123483731927147977629513715709112274188138167951799329143848776796083937456962239741398319430613135171591801794228739690137217408885127032104410264073976386139468341316105949263358802692344568216308963260033815673257204624679214867912702690003665555900492738130010829209474686986960414098878279332484909832985627782897017402607150509002895954776163181951656742590805807157125171255642638262123931387097859683127765975003482476881289755223022742714069259841011603264119924566756318088001646073360215844760659041597880273690239629912581043871473646885504470063460827151344425828353035069270939510065717204365032494503699040246107816555627173185953044563976639184957067781646185893384481496811018906880012295432146527495670492512686143913578603228281676383329682056889575912570777206226035006866741053516083384706319513954794006534552127226263726569779139732272213206394597121275768109470084315814923908105463053319331793465824378197697808910920054613881781959899711813205004494474921460287385026409374688154673023098618538245742092474875995924131051183365664183600486449226506501315575967925410265432686077187173822141663145214515039376841534908831518609251557726084280501212800286883430236749985676582078053857774535757848930230509381462401322014857498565090482472987620646829721111052066319450889611839981597380851771205249374298591873053301059840656061812245750888186885056950333931445445243085693078158157818477307693263156120355750249329848513544395696800101646581774035122254430296570640473790739714435207864086918884868165891747674250018769389979829970177611205558473703982110573030305830939824921137012143179741911545750881327218358092053052493484922407279674213563510506740420012042229199594063710778376306840381635176244593014602381420307926791202240255987744488084622725574693935482773893903819212357209296399611459123656982788214590773045307976817686344634031433798490446038134650390447349409745481132784084661636293719957696184963280962793432261800200000514705681574025445309677570318575003874165999763861432539227711806483341369980850299019487704663060406147228717444354671400396962418976423335878356657889208945487704154599130609593031552787986059125170358614375203269911592006628288876194923852677690609051810255646874929762511320215374187482372225810423745838549515036475229647961728339788256751716235462871279235916882569670459524032807156875991716269058300831973447240105884182545191069514977783028840601875325361671997611231751155315387769082476517424175810986799435488557739555080907435949742972243890158155282105083962164443345648659683569216339447808832247760342435054141599235130558680234991408869828709236306150720287746519804622279024198525663137520212341975852574595622641367810386727798286935993312106358412835866328495899347785115260306555422639491949836517687642370525573092898624280290604344215669191388958696132435404715379940532625438864770449791475965407608663621124551266853059720142976348437590438146896175721829485705892171290344042722734062287067072345778989845112034506019711369479760132174381076332614072819254107501244427623861692963829886695275058090887802496530006416507757392035478077198024400067820338349944738207529235882221277722463491489528214597065926323331360856465935371522601802608113721153535834299090919464171278051887211716631011873344612699263777134437701263840949218490437811810060974815612188969278919454868502597182559207285819503811823067464259763348229232030908873998182907429322820112273005679980716784113938100338386633381061574460090713805747297235883475125080159339871770842394070653260613039635887864299781604249663740894898146771259079154261438901039967728591468979571829710196839262490777102173932462355304644744801111609497433789357574930074528487550700398301013759855384705029503136844503432321693529730768570996389403685796446187237236318663470708537880046746161737583018819692858024661156433613437219175658966264439897398436337061410551417081803951305282268651533621206617376282957830777889696958338804603714135916853531637872168104619370538892363001509327996931481247117825680464509066531868659540945605997314061343406397438298269153438479458555773978227499561920940920856723462741460120779468587903154358059611795962262459570177124994388825420651863431708801071448047701029848380584843704175560708977040894767479441216045294693039226020169372487501343903145881543157626426608869474280491949222251050935259997169913262521563574182707784967907007214917619376502574974207542476500110258592035081339216108454649646216072076466808817725639556919101105265633615363275248925663156942282026174640494646286877339746683872622112512858142062266342937701968873058780951807131450764554861167764602967812223605956917667061418668911194108168639890926214897232378901075179469025078113800228524768803378632428569396798825793040685637801491000637257853538922172270732337443270730727460776449716043296840147275453894202699115358567514269739992748632561940908041677360731524733237144396540116202416206002526507389142308226153606893181274550757751122289536313457566325058037854642338284252987391568744729014604680522485627581883224687133702353014165091287293689638618477950073031304318058065482842331480603095164631067001550939662497259983266274455596799359248475293100418380326956291244876631287946299063253731637754083712905714011885205491712984408932318131384470514876671676664419870461873504117088822687449910226948515752916798282708242221868931906908033021191472251174030255557617710951000668983864581652894310461823961222316862447187728937537409624686432883781893508385594785438695227274150535297712264537250979758854743360420460104256337796509918366266657710955582292077903607621312373487089323437895157883303890602523476575634540858542296571970521697499065955037502430457911240486586121199008704659579624840452186453823430222095192349072864892883962731388113637313531826157799364814898851786597020241806303393474651796485800426590438321138850508334641463699920491976490093617486953551299940286632836241108263567685127154313465598823858856297450891949736895264283740474692132482783096063053268709516509402059161584983205308731575851156954226100073262719689307013328477896127964321481601461920185646556463490657204680306450258589344369771106642156005469818443389924632725747155169575520157316721398524043814727169974379765022683028080467914527835090152154533991081297550719500692759204507223665835725722032391649751297523158553253040651291158140041705639140828547707340191592687793943484708780653315654043991776772027700445792381146527621103469465272446803873540520547108836479775570768790198505411910992355786548945276836268062764708503683605603155714821502618265506285701345542783854005169272787319014407492073903069366273171189645243985188966887724425657897361471740273830430873223307041103496914058370780633154658653883794020324566796096276558683651437962822705902778085996548359440573511630716005817877981667317845220103935929121911571837996690569949200338405854266124082602799469045840456025451439926677304117577770787936542917567900479113167649621441420254831270431520309559557096172915140801689416041239763416981401443467102512300258141900176013462878592725937988555168081123489511290994439349753887937887695374827239044251391669091430035209571381859526244085860044776703034063092913292026023685302331391090579542593227801246151535280618614535936342341485848523645552609174916207120750590516385893734716874060574255457849689790413017311113705669309586909649826563489480585854507016402112043533127979186243149989932296119744093837522935610176427865828682525266426241831027417315278005517985011612361961025139196343743922544747702001231595215858408047542847208370245547185689814143015069966950425222544949206024894438339726881551427135394356413911474025012452636393900904526861808747438907151037364087931161979611147163729595948214877962642198884902890388217925076303244850387610564625505959063709120085930676397541579936114260472785514598838900774509684068002720794882930775163279055630082142903892077728600697974889089576298415173663051891390238374086505048436277691477393497188435995259157442770681941364809339614947927786812769036266303581388963244375076863209166054150485462364628362214276135200000528828773734277588676470817910391633219197663471210210397696402331827804826136407285246188804134192540475321099393588975184400042680378706212466788419074054875941992780878973486670756223223274390504508263902135689317685452936909494406700019520629542515473595122265149766036216170791960825608745122625517474622576997699218142054082151342299014994786717042110213960043490894476034177381579752934462610008190059132303677404622594475753372600123495567623700638395554838885989981221893019686676421721214948709001177427017969891466535466819474710373187760629813873221207321639633784721330557502662129063539440828152860129924293457531487608664774773532179863558941371423726868716173863515926408517752303480984174716944523593752844588803828873010942771033763406152460589227750022799211756501019365688531562960610968583229553419331233052401064900653522793325626308215836885317662541387626518803026165723002993063535428101393377109758367402578595591775173835917736372765387597677402827771300593146494184927271095688759843958936272709866280527660630206074162256136932030915020854144999837628708351282995747144686919300680078999411496321520442451875286625499486591614293678025019766880436882498909501512836081392582686727848179813526335269238607323612721699135546408801453250066318660054566535891099076380263427602037578335795766074951027909772820941404552738979074390768553044853786438924600005189123037473775760167398659392540535935583766713612201703660301798311131609675927182587615448247639272723739921504275608630623749563869618539589361502530157203840811748120238377375230799914447733488294862024365412520408292096935863221172538661814963230625308823758680460213527900606564965351191125465346694874561636105760014547814631782727975451734667888969573422675584447458749335933091044389494121483960276070869572630539529383326006046238033507313845074812287892872457713499647639386954715791513988721344486037606539167654191151989131134006803121145513299449910014830468114017276899529041211965435068812049237774223137962354992683348737327982189261861873796523802914153638928883119799023382537202722410647349983552177200973284630141402323771379309128117742033361177240708173664361328680371557096067892604682709963065391552421238192195630842044581092909344474758099569456753117329645632372058220813405125589370027742127411473728689480936208650020081248803146548312076341304279118212617959395267344006479498267693552342045839458775368124771041754970869727541637083544338604912481511656659243543237988425071085900413988696368076798042938279861080479494728153527372018277742624803101142522204484975449516531119522421318006992748748182996253000938407614632005925352949506179311168325105892188200898112796465760942560719084727387211154664961828186849502268423628395215526959495670629278234214701075346738202626060322345128747267334860231988055856400369600307724233182653226262891614830463499314887871159691478811042269132354068638161385029909447591649264216133220707028829967969678019451645806666524335668689280624502892768769285077713988077562854650939786191623049488571977371657284030064865008286782850491598911004210776438196643041105279302466239843553328736365774221394277266880740306811702870596697610994700458297553274059317186892972140266924743585239487364817690496098825182714463331319279691205060114898892586162485100349132141360661314549513789166428080788970115948947884486103643807264698968124984265956502923773914168843152061822995450655651596318009061711141826946799631684251554861678930221675532419181167923469761129702834144337700249516539972571970972243317114070480175109117010371302740964672306583423199875668216218601347019108053798160221073224003078932375800844223542712727936798299283344980375282974943590487027950007685558099500448135524260830586199802690117298119004800019336227562826451192866323912443693476512412764417891227196879830012842225888617148635057309426851146883984092364844498364808126417359922132512237932273217989347479860697334541827678302284240193919546008436729275223616464930483010967201135711220252046909813802085666373095538708511270584859764994760975765085085298176601156905003154453416157876070862272789214278582279124392572916182323338118923158520100472060240352042080489985824846404632661355313413112845033014181586103750274828541702525598585040787245176343342334665850139849743615842428378999472160227106426169952715934778943735180943998417995958967081156212102314509388330340886331811783174833708535823171379407211549324316886815330269345205233348135340449119808520980109966518812545990333476279531244638960590509321632458342418807861412208841048824533213477601439687745770078713183603631850672367998549802915825311485144342266218949524304438020328130131153694505000066342270183940405861025230426012003083192987158197613707715485786497023391448431830769281942361755614547456259223691036815369581756140794326097306790365385283661771321471948572641889696689240764701720712349182038877147414827395182073203097653253276093906295813667782104292926500627383169689747539963549069497303904627292832343242064840798901905867995770913216131964166481465963073380213534407287308035894685441481420026212986575074150561418516491654850003923846389159453609274947953780810367290742265039681306937744748562553483306138870925393703656861770682019284227471733275874531721313403760098934545458438867768732851358352258432586120890836423257899133994111628212534501023858123312192470759946926278420421687209136408253244273313127477471751607798734552677455877256902074415451813060214617911399081112310766636705621933296099322257291517754367883129978963805827893896418197598197240958969713337323430314158616917155790392850562161747194841054930310710529312904294069628012219130675779443442332883653252712575357977892965363086935390476102148897918404505803709340534795180730225815741503652425084348884678220226974635661868120939624189296379579930942873581312239855203331548849310339562096446635959326985884873398465615707598566389961474720425256559518688261968848646825002372104393127850194880130697858510871487955616434620524623968681944482307494903473154681580564670870395065071822809132610277868694126004799353763654358123170479825417901540202567208502410468427133554694746024728844461019810391260169627845966769638903062411436031691952729380845985585795640508023319119876911539102190514667169957099795510055476619049058497007799271327506131115202334534993698298003833845625620648359699504909457502630197312753396085302358723710638811274930500046293358451600550688496056473475887712512330569074516864279174877876993756950590983167485060060635096239579871409164718189445264137619711713123294667274196812969919853885706199515177997394781266135512157947986831860529626753079883003835257140537412208150570004019467893345487898746518292332602389894870465708710430708621232702202126802221846926476659395283335334962913807850545499231290303420027709181516602286068627235513465911853450358679676976911664768946278380050267100646128578486725984450905809963570587383976681592488932893106777520213716262403927914286694507889337273638655633979198586212722558145084570107540850893458205771672697986321488134103031287657832987411436907501040939328469653692072044725641323784442210515027592281664976647278352012007364478311275664550530861033456059600609182827769279030149676475448451263613568479179729987706106946383209552151922336840384806259174864021417539250759175547164673664908913669863396021333219535969504309950066790289546901294141471244617694808179360304303242019423652894362313634455273546743898875974482094388375093307053369917446877681478698931396309802430623202425330988280615213662975935632590765821216948206500757215890451743012245736057184823163969936839641557182781866745697841262551704430917546361863953986239491198894195570246018634086585092868262468274741963786025592495382910920656879882986899112100029362200759539981703899165381439928769576324440529776242732825429241505514462029956196339720360266951814465816221797234286202659732814444176408366782052585459519728908184897967208807032044512168683251414992185305441740075606576445003278892532421647523540585210452998585551796617317028902162836535723870830391620365901672972479965408401409549752684879239326348624682434256276160435128883537459735558386765931004557401846507553283481559538565370586186208255801614162485151048220522301980971234725814084409682013201064033097440986135564219973427595071013434867949044822911773284936240463987570165941794996794229587183684943508701632096779039639205490954846315532704317055496785847508458133352229681459695642767820412354540301795907265434917236193063073957624238599312880317358374648574475564556236237076607680202975919878371796011659415239394606299087622946905231292915772872467498484719393758373932034147068244575111235555524036198463276322255276952605781417075885664704180966185463033790170800249754130088954181999518767044430946935637882937249027543418330593228959361214868869932528448969963342072696370087849573862472231184468589367831168855530702135372430795618599004612216111798608990538272999537205061888108662254382708995828762510282608095881936598931542745742190538697063202614215870882246833376503111161264492264540605774893160352277833386298781022228277900647874000047869673937101748778356218439983241175254377319045745850409700222204500901651361349787704712240347207430233792638481717984260862215008422452734584085723394032253204239537797869087343330271204287056641522039183542233898756939670340989663914800734288177582119850349078464540885449256412171579545652681933217353816439228461383429344477073149371405682345315966418793589451028530216922520815703443371881664048783393448900773002256491057464918692404439441140835410887477490159350396743278266823816203047470264753936173185303930343412963209551650945921243823581404340904508286265438431106676504075178811476710994232535988447584552315737321746342514962350429068442363143897381492358984012577476530155880891200488834639337099954054311933797973149090106242495196628035149525369000057023998251947382349455390456482252105229410277505930841409663592437636615495123025422831512435421271196591764358624351163459473678419426097866165344398621065975335034447391884617094858466509891319067298414159557646252682244214453598926388808703860778437352467828530169040671860232964747259761068961685924578605858072070824827141184296929541402125034282621303811132628437256489845273112938026953481406735292568147626128439900712849561097288052429369519731880586125855061130787478197401930996927899020080583501742638231998580902693269944486089376290177150685451074160568548930997028865146609058525520367854556312107737883635646462339568635773456379672719973085225277936290211417056393707339661360792788919623099991681696752240388141965260580416324934942717837912692380883645130196990474816373649692002454251565767003127556781845066837255344858370596411944987702490447482281665035405528289183602872970121407481691998199053867823033552622127824532500521780452558103292823790499802760464968957770924879763602971894518841601407734045447499008581418814579868280584892936243080777329984439736220230326352274554659963041918533823537927120950026907646794808605800066058717607869177519433143950904903477104385059822835957963202190003444120500912043314620513887643530321540658473842585013526266803246359926426873204911884667300941156050842617059005253579801853449118966897639638811186716547448240935041207024176471513601850234144801335156103455092675173094643415040783822903826083812486899356259633551177937530822855269960815138615606896562147769369079996797912673606233722934639499446075778035987475808364571303339937911480670996307589782092269540366335856289133224708867593775264325616410495592942001931245098314154502349968169904348695817670770878120171071838478534748124511511359815585101183238566101107046205248956051639122840771315606582520338235135948178692507437645815574877752415364859106525776069992446886906937162282219712403422028149926966202055960780602408598228881374901330201921453044326793999941791993802438164621618653220418744030888592821619673620068321435574744015660688654636060396168899959763658882353623458616945153886065248390380178547605925860804573633964896097242543922556925529889441447118241948308936289033455961453696271014589949776766094957675458788496134541093990118541677780371245172705761536878366848582687126510143738454256849405337027189547140804545346581648854806784391621762389857353836862082498431247491007101257674425528108430983088090381390950247029839070428563802720419816223010918002501807032423264076246696317012932356369136706961570286181058918565173197540303563211274103240850314354301002467955928300426890733093971541779362655976651965188980770034006998650664727760944216554849067967296058118360255474750297822008543200158258202915045524269330572936177983724935547690052602936891203757813837485157882792976384774355589811159144989500204584824076606332943497761160908226702111622477364522225668774156921198148330002307848627909920259554282979731689067770444222234927612494062780615258183643961478239850330880655163454942165589503070124703146685137253976874522437975542911983690754332785227145512186282545570737198522556613146088463150407315465259033235636302246006312283153681603367578427417315091329341122642143096912018984676094612622942551126591284402454855939917978594878889702116185764997045666821702018821313934670204806132168119800092421842642511770747486243422728361909240818454559679898795011518620153112319632979102571198937256006039326035683032392189528028833270039167422032044017556833007214022856368689002481258884429140000723157678590239125209281567078189940196539388251542873409246448907503270606970322817205131016718260035684978345521302844006600858075472257766255563496058247443674386159826127674882004133548020667109525461526274981314706356939284965779630904803623453720376340241905340553375179160179478526650593914453656178002059272587447341813953235228211737960711504073526845781943715398137312446201844918482159611359318334332740871823049108944215025287513015412678706332608051243446805365716860118053369624457532760825146524037576919710014950538729308186484425695352888293877257499693079297878020338845168817011160535336045400498132117249778780295457441008161629359249069224980594865853428584100948792449812228120810456737926341871822406504552740513773520856017557443212468994256315172732133970302661098936506148679244867256250450453907763646074047726616639179959667011457458363233345547529104115547777502217834558256418146182161957772786106796906961211473202063380535861321647102243144384657247198877746155879523754252557107895810840856069909937441803271567427025025044294853856257371522799235940798308558137626635056392621378040729504118122636399882588354801305567592078772107071430608506465445761335358361544916529000788593757761940419836412723498874077436431873700954147491806699052210518800258675335955361038797461645997803085449229900596764700547541163847423796047303229739990884099946703063783012852042103476126228816841498300536964232565704082368603916632825260427117531809336856444670725786534482791854706184460733772689254532970361309363132230852189232835538372937847956838122223669014258023704244622274680958085181322459581484320533602475296486095973908638582003719438137445814824068175713282238136473546031046250959541043197782937690145862418098385998257686650855333106749750914183601075807910725290770585825528415265430130907587804990689319981348526865422384297998307240102469256349022919615595508198625897860577833436313010933287903903007197760725974920279244526473208179805984823348377283742008839605033654796032886930888474749196187386078088236809825607950994932031500534168081332025793569567398029122691649664024196403696589473276113545930470379435691063878805927052327907225920531249003660803940444109533552436008176735615007151937253860845657543462635805153176930405218646247514675324246757617340369530885283291244004998863944646892671301519181063282391434363736730215168859630123770623322726637852736208877393131448736751695146673909182328609905425449434631424557010945963691068113336236788855514004793092999808027352598506354463925308092592064071893072146695741667251292056825666807274158287753296747871920204453163722516850525615533339414629474470428404914537300009990318036770018096810783216967201805283384159029615333164975884470606603342460349434468245424960153915706070540160483443159546501023165478204667410493078800948977281496966937610384551540868193263488454007276082420995327907741755643403195973273182813685695567882146439771449854639417662327923793467222685095214478723608663245197112785541814890494050625112969727399874370140623032763125066360951790379126910553571747791065570766192334200723126963090592140502600268152801214052176574279141966890088516781946587532800695945210798520011813810704458738691119770533206581294266435235060832286661498644327387382775198375517019068249524340471778485508137055680113798231945167109123157742442565201073088105339179750799773181487178125898175592476272524747822695007101105601625486828147464730089445577589887097003957761057854276152369149798118610758206657717068060776932246511548789769035081207413512759449007562193662961272530426735949883491142611249185834756050709466861226248478083518394122082809223965911850220348113322618355041986863512355041583331325633296802772574463418346759809440593387705860560025350074831766574039083632984142428584935355948142453556296172494106672617480012014021593787544195985476547313636488541461541823965697799102817626865225900302288737294756540501658289556141865963207986835079639421930617658185692322024583177106089406793625266595223545602483880283240662998138431476361182063513105800447813542212108288899985715756465177541750488178148724422442607797255266880369705716213535112274668784778799228520586596091473186053630765445642081230124992539592584514334225033977816889818229988088981982241007957929835180706044419512528413311663753553103328996781196009057110554470951150316548291975923921856471416507710614229548281127487064156032872233041684353703904719270321758175551724183577518415878273994255971620287691395062568891734642528439280174575828215053163958326136378144520612404833928297777409536198963456144020932765305197356308078836966451678278620069844799634124482740592131197579438164611398170061092150158901686062850980622920950376021788121729976941103621121501131276967228109774766784634296548709864249036931744944618723105369834596763674184368225165624647230811864786477236273069073519937267109299490796011697895736357471027872926171854380420220855531782381325379938488041987527940125158277817477660661010600049221898309926830209884288305061553912373315025785972693062259604215054188648611148426719512060130204934407680126527971896754876732864358554235066172051121347676168403907030999670135468452264380493189229129192750396052363961157854209398754536839796893562932772306486370236387490693126742484495907091497996694509933638209986446041510278187803466702422353184737642565782233203033971881143872188531596883986826161053498055342218868649261259818581465237809838939238991075667240647087577582584118170406027173507354202657157310857986952533493827936812089916861439970247649814055612223750922926428170519497758456827169907024447418070018516298311786486473616601506651097367034293772549738220906806142597855629662589728205279489434148998840410603180957658826631121164382772161939125949949385351096971609604038775458638022144809958703038733510558185283260614445824263945031482971961645173542089107662241711406300649130222611081218513307926587076412177121411905355382912061356754820652126208666306113258308744978353086860971716573063272101310086523453047048330886539927638624253643621767970932098058360901864508226880601726542531037824661037406933016390700292617803077173531116864313973089715753028140671697503136713468679400673244321644946799320337382081552985294940913525979310590317369239837829814692151120421783912557048039891508906695822366647736588611945491866278839272924400840220356664721148403479397606480181791965177385543518122765860101692649345619993948676033945868712993956466878070139852133329813163729848572877443574619792520955268492481796674562491224273430789444264603624152019693771047281661740887405775647499388483357102725751947718900139483095172947543114542341310172115005497401608676693252275704162946192092927126927058058997819991853459400653257106797902145444853943166252687082587004542568348043296176458457797244147349772346355344903938275573039778275428911603080972984289168069393304586074951905916150677352171441677153655432187353481366982860187081175553048543626797010794876115087521780823683639098546323436208100447864207245692671496566573174591160510785467159860009831863374580357080039768890509607640265177365720468734427127545401007314865592555292213390459611780663766539770741680351771045946721676007107454950612131368317317919077331703453164945990205759962022535234040121409340989863216705598317205662547624055968723169663298972798995167017552815583450940125865521667672101889164322585191982200910436562361789751364596014629500055301321182248237891249997884891318601400070225388141852825888736838744984365587933879729548302973811686626318558412919051502760974900371464936967378571081461346326728550197288987816481080743274835750381389963689665365249705348970524541853159582705966785609407448477376206839934376885475915923608048223067661204716454980958196141796854275216080922553989825255590018825528905001281635739498879033161303226536925833367602932422615354978784069639867783859314124187863776536229490673595492828592121495655680999002964462387508984761224676975609763465916700459641959892648980447417916720679465463210404879389847015791352514790429744969104649785230477395980887168190906818045824030748559059583938963490934903844532224244531889437218254350637450813303087739977849231561858807444151712994083343195580283769352543624789535556532553814087394554475122503332894413709669837515276560065489030307484145395683539319595687546534116137801655970182511360206739293166779525811544458802850805960380743123215565560438505942610611355970728210749240784826011818723778635964722426581344448903556950174527459018238084667801302140495579394268618442629107178047611743495007952154562976212869191833180026626181035539033749203314770010516176988608604496039481198567312045522816184730936484005314539087800866369858117289353578373061522938123871183994740988980758701916399136794356292807537220752528592805765495293650402707923590748420205158529483675898792712730383463029915818921952406961516885797100989465055297223346143904460957599515654097725676805479126193069188183000534910428148416733853581503777978449273645727578506485134220286400318383486724548125026644845646738880038109684974549559543768206219608830139284049489458255531973373269957368938498788240188123705461474030002399139480198781136582377448359128415343872632212037864396763273677125256383427562736155171813142564870417904972817540670165097685003715231551270053996863817588195737576540905618377929549509631279792581203180097430546001946829748973850275285362553296745958669305324471094747793622314207786173426180351392996888777901563955978771876144652589187977570206847874700887788739976678704812799204968452844787048708514011278237342609272473180859707369455065903452186643728218831694552094865791242204323416300947766766136448485465850669062052259182521481635836689098983305468675645865560604691379760436361878440808573883297590697878271557608355012046200718516086859406313446003429271010274083319756402113686615979096234047175162273024623644814712768895391682815720514274358337098579231835728984824314198085791154286508834959256984108849707979481636677534543402100575148328446637701590235616470994762151353237187978852736772281996372024411072933279371791203718974452189103780871385633526648538307227486212412939936966944595075321832539060213587744927907635692727314494586462464478480171505039405842002011360910392204739070793163200978518493565610690112451168447812968647987728032251282719909227651663210113072759119305013670503959884930104970159109977146826833695497375971985282261369182666152311575561316253959685208141511461761528795640519364377209494723512656001038315050223196831922614080624837223405572276947044023560001174001201876931617935910057773212363797030349204253187765862321057125659696777967325195878088634853859743015541658313341981915726769234020855385526591471609240271712327078503240933660112166334696231122270700627863463022101018485310733325766077858303494092797007449167504863580686118129636995599579297481000690897122936451495684182239878699887821932217595269452398409742513785171488695357727455350304453904785841117466566499933594942649013990687783222957369235177073508757363997842782405607104149836780845864658684566543200789145717288398047787118866563413012165751325169630787155324656157310682043916410283010401542226997601672897343533151748756259830058576313717531499340885335128969605398625076327408889722822158884585479203973189080765161267955054427406903361974405153911679961427948826873304743924037378979927927472073741017342810860024627808249178428267134193046409364343804554154672999101596451175262395661615304181739271988051838450564361372698355407194253000776410410995803800439110745022799642313959036788489088481211787375210034198932363157549910530946590339927944994667170203896832792437746566611423563680688306277432495787784718152761461469184699251712591974786751630592176058966497299147514242170534488593904471415211232554478747014739504894212246721819866085638919262378437419937270918998166083470197052251589296349025850920418563603166124692245024166288326957916405581950615711145230056022997657284606694632644057637884306047207099539172046635221159779502879121944825777878469781178938594939756730145520766297451829555132206903467991327850171109157351613516868384647220202883241193227597970429639426909139225647762614810213494960123412486760063128600599128051094907821132299400063476354013059273888279927664178217971183883647607793239576328369371451021990898302895728972115018296861277687128018625730315788222537252796911612222297670873130141773232682050691922744551324620244203784225592473110335766362000701543414211618054321701776658103277774690074658120246250739094025548564545602014859525751335221353367524723740915908434375570113636931135967227318274234614883556993275820395503208477283438955674955453081614886404412829226184283455794110791810517091147378088438855205977989489059054639842271445146155012977366698144124280229724000093782528264072762969996484662296046643793137809244258251515414796039750205279494581789235217439746253289670581538025212535230889076321139825059332873530694395385149860383603449428462838572707463754009616174193811445131714762045948347296352333747040183818418410058967926474971481353806853559441605520160403060440488130592484016924247561479052667199153639552518790638895949500918710429975550447821543113094409419075067468306235354196554124760514680682491221519225209027599236568834448743669846144579923898147686109206297151645097455990872680499064741160584176257580103823736873616423249004911103379608757711079953877386135791983787108366020478531113130062193823193871570294869657791902604565566917754183865600774476046014470940905977151080125680505752447269032342608835632124211777209929639629345569030077422036401306292930370170204858917055255218359801605188154876935341866676764812202433551712187838785728306951118551288614559154109542092076717752989738476895710074294316433655410751988283283490744363816161726969158920260790593727246026455364557419435259912506238905504061621467791028381483396895311016225270909971089189566788036121216685150247610825260457084514659235245008706680956231493491285576515320451109016085130941521264222785027611975471483810398192251930703767769741654192521408507897592590798581619373795623937671096034894539061235007670531034287883911050391393292343136308895877576756245288702188472926163477032450937923497102089462002158858759875082062520907281496027963488136186201456586162871768154241988181299870217889631945110850949164377646747216893392441571889827082529540613427336773508093333710339309041277659703381991470461306977379975299450481721480400399167360579021562073175823593111004790676315590487639340418848952708930679755260473285413161467799628214062054036363475363455363055583047869746860404024458746046357743276004834845648107408198640726251404561348288480861127684383244520986082896344695322268210553642270789534867813435751836236505075184022994551062769375476147445131132183696179073012394464692212437917061534247194749941254238429236414684494095673040872808097163517671829901685190827412373783580334892423816752813432052134183584492757572095242890289158254452694186128522329128103470759799907850694913744121287906771757751076335223035523710491328561283714919777383191270792224710499642788980330325290862989430662583170137651910813635132807992910975251018498571602085301487714427518398225463043141104694445771535261362551211001848374375711795971630054668959158765375137288262582396985185950520004998910838914654649323390603723990958588627410513438397278555518608922829301231852580702132164816985775916467413700959839436069697763564239851698259895823898122794212781304108092303095786887548986469014611323412153731292432359196579348280183921934674149981431159332890166957155842260758870645987982436871021265670779646736649193651418688830636446724785145055927256124363457202816523769022748772760426009803829802161088652075533241375187198589629833569875826579579046939921911358059384756634855486320031076541566187752089674816907977795287221628056162992977025367269049494916277830171747071033709957272493415099852605182948223291884058484400576062130145842457080080507206727463168734506400129406139028496695605157924425658515600124109564792920053609068639583321206780627164410456647215956220378377702305933093222001504381901832036872277018570426717813947473357585613288488543205128507320686666512553903108403727646620695125018314978110766838098055591201883683418007747927188976713893749078061986036291947125664293384311167787232530544336695577012929668815156960169984284423760793950637138899983192224652427040106683299823471694872877351050485937333597197201460926281712910382629979863698114239364074022467923191372659827781561819280863846711865205689066475445274296270048270265487946693434945554775462949923779843781372993515952855459013091575764361475160438518818356576257801689880733573895641375954414380402527220874288006642330083891198022512662784031706538788937473407131036885808970308309189825764204479814741210437519585230009907255552616733598375035552126338878986687505734152058707093445166922913791534441881652996107551244680897928849924091322504263061348506417829472266795107888054420162347419626357511242754781854491463702040676542170368653093324363510846100262266889077016610768673521330825686010061518169167177089410041056918569387959556682130951598391027288470131234262353601378749670336572520144978953194355860766624735178411109750908215136981555875920082863464015339712483325121579578813864931393960505650349690942766048646423564845200708116239923951307964839814790420788782265084846626021663048952013706149595114625413457530562726000986239318680132575349424274441037575107981278782870825276747485918651472480948168542783522433332214483360070756350933125457574247955567981774698387498805142008084835869121292180772585980828925691769936341947500091047333165145209847546085745746327843953727438230229753882963777875256768753282367055425184067555034542358072148923729940183932679318885426469340906294744963105842151714157856260436369672647055571484926492429921164068159061703437502625635457001560417439994038995409077585957136437568923862444198781730647900761510922190544648737567758126894394962667615873200631875293864236470962783264054699625134911414942924060267807574765186972074819740517286391788308878246671722576816653108564686901365941337464128030136905250209936374313371655335421583599105223502119855158690612292383631470034918950181960809752742399320810208107046988163574849944892592051308557866034276848198322257426481806947627870474337027551424492925507978884954660403223184779079257566861603333323847057166856307081233380069997176748836539580218877073986273590896890072497030531420276578022551543121944772962384884020314961544487918680648488808138572850568455645042001057541362668723007507395349331949219272223980110136836948782300775006716414372388123897551823851302779517074964938924177862207560977582332985494974042723667787490574953379280851645409315060691835363394826884492701150039744731045338749569378331970373823929464255040133444384096373893262822397166041865485191192768584988178581427676061623120707132786239066388342432810777530942790540091740798252290869974931643507918080403922082249328906941935692442189995090684945076581536342513695638435548694670984159816138716011682257565723823919914257374058906165843600941189952075209526498107637151268951923621312584250383058826741245918537925088861648260520077613547907412101367596822107865636085070896652649493970520841588807322106408056045316973136203018600689497720594485228373980930884779907414103502062336777762260036058239836023940427676822446503090455580690497139465119339544508425673829402024259105309367109789765582592815295615473523513971126507377593632604629079043686930298427567302545842380327514143992741106481931559857629158552641479236733922539870315691579657288509841074548339458320150261340040637237999894826179197753053712990099626366328936271933745916841703247704876516155376227639031721019258521464997556895879865091671878764049609732886169649417219377883867956907350317424419573950024748983032942474349750391882158421607054371080934556066091841265805251008650863653037170461258269986350129198164140725264722288745811098796635086179834712075153327093242471647759253849061545995985883790567514200616851431913253195168034150030340396290625229167599432649343842644691172254321459257037344585340767609690073341972741659496752546891565779534556378861170999545715706622994293785812763418746948311104762986712896365510356482922899309758564083145076158296060639693442319088406995049362649191022165735857346012278830408672465480212911945826735591546693863269340881018643134461268169679286338079706369943564309956170800583898548543678795237716245119321546970583882869564922220795908296312643794831890417128254824558054021063999143915617594437679028140529403299079085227947652394428770369760552820753760168961809428685922402405969338730671038154991097581728620320475564325835437426852824418148036616173401439211712402945876860577651280286249158017739537086298764095811066941886531094994842814321916844380124945545296874909716688709756300746827455739261583951383458233270098402028136256915589034138751547168830818225862973186490698256198540724326288497064433058848386137522659206258170676501638085776711813802747601717241771070220598531097598421931726051271959307058690549329475655503038246099246428549996408057980256211514246499616268980745335261111376754825792996869308194821704740025341891016095849065975635665478295577720438886278483661131510945579767578918989286719530177467453143587351174154211295127739026093194672510230326134695038444974682606748582048582447467504494435706288057784264457489188731176390060777699872636992741003120714115463101633304375322095845648141562243919155367771448984684729286797925830643550052521353625080003937396911956817648430186413057753531960030347861029824747150216737257159071650262530195434351105155041690972375726850959218954178504651949742069361161820907661071906141473717541806683869282539570127892909606114206747275644709339417741301783818628128019886250870768193707160577633342924558700975244411086257882094950555170485603573451457479257771822130789280757720167334038509059936811091077711283220337888086273947556649775635239335728000353694027427157617090289379524236973916091111331386605794909408703357866131467278124030183907458060846383856216238696263137315285534707561728752716775089026971333774396598305498892109757364357716847189921956629091630547733649176144116004308103168041170142816289493649343395720266808143683976682905414682012187326785998682651079792357519754794088766432537261963019369378849598475734923418216609769189665436488068335041617997726971433479219615440979921495765830015831929943783860759944242123479705988221829183636413044429608034934645778847610587060416846211829252342878885407504270737817555234086373242438054018125925304653625183247080612857588800898099770831606114540595046626740842835769642700847988959436681580384769835255786574192181690700176749468368095901089605279969887982907355739960972494822154892461958473949772122504666712133061158225129471365419495062459234576312729586543936778484684260637772322555890702369259688507660421071426963298673623244922012802645371309709029765056235481882835693885240135198280164527117615092207526403645021222272827913167944429213418581283842336260254502907214071402539920529110744552601659404911705671160440232028786883471602257283338341934364776150405847502150162560023497719721866777604847950926612931202829535995375855397408684214011635289704699600962191363204994951226340648059160302612732523052539465470078921012687819875005618444306891481793001403385252981730533562293660746275415587608844092518276185640344897005142499680614469040744747594531848367022153090081674219600439884038419307634211285422115262891496738803316700496459971595238066710129685367321147351869731027864825687561010785572273655391467348226021588539650798378051210014792276420108385116581275726224894787506148134942434014863496688912804580615433978565689964451935299956742892997414712165345191112242607089670162878928507221613665762942525830981734065378977602305515895652567690519980271427631428165746325083916632987968006767695527055670368398718390537131193372031449528248970139248933661214254673690966403720156252749764292035500266814294363089389241258283149339372533250986612837349429145407008129428711938801181519066832869472318576862844531467821159429590528081740627468005496385457987118037751826091068379137991340372980761577947898875416314098436039077455851623985714516748764545956765088915874919833114735659681881315139659723995497656331540729637106987788314688317858141716237062073101860303952143777389876862632712780454540326275623095931745024199845801638963026842349345225506488657506537018206568667176826216573936715699907302729807445841274875590681728240429655714702337236858789208018958801983514477641346330582091036377625690438270363549684637058057247477436326590898403871986052943411520332419999776801973359401534855472643979645111007455151040684963562066008644174437033864828676747322295082039493043703438926077125831833421101216564834279018058715601818470054634829444475830527815830063272347955273179783990844171873653070609111547602011638488159690830889594842647609687344694534526905031285740254483516502103927840475462105160956534145152040802686681582601072848665837590403807292086344271732076187531795386447360973779647852393899323451968514195935763739272309614269035265101789242831050711278314211862528497519626819995783971979110419082537340883395533014332128540262555921103640916769098583955653732078449590147320808439871269015538198570391935117431437959175952276701866156031521456904583570614392917405617413531750832603335451521419309522860293545956081010760975898387237162877928584003347947731521866279730510137142864078498256965047353524826311131862545409317854495154219058690017969893508491115299213592193385729631915032180708263601142731853210947670197670005416213615873868580399167663231916066359331420225923149417883691045706966673751525675428092745007230718138422612991719753285250176718736777653577106687812583054423328609038125446704428071023704921061791208726520022216214825924965133726104319484690480857176237885927540502213411488247312127785036342305000477240957200281400743367562928642023146696166337717592256255019194355833189591886153457745669771000239425068731357173684297128615043165005440057310226895296423433085721604183008935822759088121168641285501027279285289565052814785084263142578354885030787221234382008486783122186539955189397404997516145521278691524697368334414271558864980405111566441976267423165945935542656335858094204319756075062009190735529951779800516382752046497725626608821002552948617758424712083779538767825141575545424374232286323569160848292253273232781974738749270758931860496135883061886818080261325610239980665178222851338111740635151040742877760536775315416743854670950513481800743998099835528591359672833054724590922871682922981052883437601223175282633892182464059090090348695083044649566136837147823198551194759086044476991049479285195121607342060164781831395728992935077050954519478228459562766902274781556538636127006211076184616956457027275189839115805334104617632203955078352054168003325038181283917025626285300176154238993521027388008076300958165884324996416026809075698035760960351440096449931689655143337346339849213796596720812588103251978370701667352779069993109589926886213022230443322963396545149885996538640686791127882834468479362316914217601161946593381008850398647222787205185008190809599324047634257217986450302403131191847564404197034987888348177276871823350731166598823178598356379949155772533896501468436235931327564717312823594994478947637132470477966437806646355063647317637699917487391642994226055424098985861570862735914804389184473444027641851232242526166252709769802276129379847573895290651861627869253387107038622617597605635301199684540130768407157946910651779183003171809817141284901251557589095827689933683891776499236250679816026785362408241840457206994456060002597666513687482694434573418865310467831233620472134778963948411459678797883341135791152170775112254890354790170082011265273744244971060160235853782558508803263239800748453249251551464354339060403075917626112572417011005866258642084359763841968820855225093864381039342773955893366067071618136262581706338613944450249656740396471438813903612431028759168666233943061729135347440402173924970695039081542663038661858900431903137899178183878492216981715448232554216986085799039888270860010288302612520898711008165387628368534316071971196809136872352032487737618637550389815576709447631516790655385849500344402847981648667352951871988957044026696303974515954192545963542611065046078578688894719026912196060544459922444813227830948768789310660441831420875520322872531907090658531728738491414383221071792209464727664828882976150773901965338809877913076614146547948602183893690674129093596450934469092741036927094859220857592330210744896420068880613304094349363669346438044414303949260299024740079668693661284092643430782508482050432219777993976999691317875296494359211717553704419333375642797496880424148683258395985295662083777864891688230149938828140196505592663265869146690938377937174111712371313405871149096485280323003548827667484187138126114039517516658763381365582558635834370206748069895022860761071778927333004367194089535858277081297622456003370586526365324129086351661248393485667915980653709024141482278532093281699000994143560892803803945134520872265079276403367692367901018011607156375004570252944260280737496914857484015031326942542300141455498883060404644067545678305537886138449087680721219309292452319905660357014996373944877127244647082789712579285151646630102880419248062827981747579565325279902084345140467747871812622393739263611724760077765150083692877433336654307053574807199992955587087918246888076974629503973979427789026568065609644929789468580012765740313151825921136771727325095585235696291488221703732242135611636934989748574089047502323055514401043003350301308645809999498160358431951969498465871609587379467435826085663189740351039257885459758449464038106656224768419248635250238239829827616904550909274741895514201417148832888870266822265031254685335818859230919293195228976868188998255458054798328855764925525789993900472817878937524424079777736865212660365202540875174586369960090302690792439971338048233151000955112400101357173000940140238121237097568598414905564803931507404486641229937351101278616818839015800846708865433837681020619136237191339208599267146452297582851853366258016891716373190441799649671248604896488440406563813063934356430227693793835072167836893833458197251113473025919993421457705980421225583542415041966557944675171072903443046670294024674864922364531636978965269820494389005606898027706756018627417231788916761620271507109937262570418728805675305110075874191342893055643832615149368854413328909905927221174618539333538518334837350251413205375325706394179316098362671093924204426236329604449746309351659036126610280987792297988691113783153569477372209246851389555066921545473310102572618766010408225463359025327368378122171036410194593879682259502823916549204496490442497324614454749798286278050530994384461708744468476960037800393616848114668557899701265324361077440436954457407643644430946720488094977131381885542309755471283428217064465651213250011783381367437683624602840736057527245972543795595250178099576129982247948225299833102065386857012716483136959435578689068044526645695774189057700562959958392454480297671933521159717790432432637431472316125461136644639580772758414721204343213612545114949664811841970020596586168461568981520745318731680566045976410572542096882746086844418979881573758819027789581538693871549671953940548906287288737679805325529636957658344089500686716650755341309782103040853013510519122264760779208281609188433990338974676485289716851605866788488340933219310198341497249643279164393027375754732719007245585200143113886060956452618687775468118802078274883358136216987194479601074683853497713670790754515334644875365017928240741074018760667393787026168413047642327490627845912570181585119859462457427662527725625002906462611532265850358502520735343950388045681299380847715373969581562941400858927598578796718297434849471107194853601765399316660290615749683597326353486360916561992937627844875065148851286957097760550570449058001524345924919581576347296514527782520156401261978956523163703625621436186095443652820120539795646091792815334541643469437397110910973718426162456633457248052332248842653916752511566853466273379072717266036822125769523508359550067118351740287763574223506135821095099507380624222472136137270141352640981770935479873569028697818553832489149804633102514499194847004651343399884639617997300057465025839782819490166683114963927536339891640224981845479013590889974950486962609525278112276549571024941648357130197455182807754669792568539076222477181674034276769703875437346022615390931577728518220101076800718256436775612393358243937142633470178868832137158914774040700351371420501996193998926806110341786217476900550686449594876114490976555615428961634100827281061909951549470408444451712762162966405552804040301196595921157415416692103726525735791487635524842361437617152054775404016719769437430900052238791076257727992003534996288333086944707783124956950506650142772061375239270742614617164126855833099378530349014969259658125302871038683621293577333477517102524745675633688665203153079437400766552686147193607803573690859779950637791537958924359225321541032434698717793391356910872265847487397161501182966147423974850900718463478852155230230756853250343442981940803067141501215520637258830194032995038168034694392236947816265842180787005676241073848764499595292237770343990369098648417281489859916604333814939497277518658692791373710787382817914591219179238057783222497711989357663722430293482577997464371985818226917836690873865506432391696771964910938281696523926734392218809266884824373927753930513031439986935996762235807374300519267669671013399021378938491631886226694141877357687417418092807250489104090558877225053255586598653578137888480475786987273818329142931925677847638479624058409323260698112428812896626869823716037837399695135927116582750852051588679943820509012410158851367697945478735525748135108390768893583596550821679931611535967210497296848647742743520675355309530486895184455302806295936187990640255679139693243793213424705721770754119230678247470699638293547648949131711941926971193318881868658380892610480778968634066396782409169366341986305551673315841093241966293717535409917481926675265142535426539073042877329630664765811149675098909905037386566404480344154860414312066784374801026166210748945371177622138823368524328270538427447138194518843905126058293131866755895731737002873262071202814397722751041575263248034988188817187207303516433254961238695287008778484466552463885723370528202758659727479813836527559610263131260461202958620023870111974383322546381065155339023934282158946861201035078791139440105877386600361919115929397805803511988107912172968237302490278437285112424562827530810030850333532377798662632083950154080287003784004224247661440890526623987100119108602743773438097911393751932329369761405489801830176365065592150962582652545358366427689801177780726983132811361137870460749056037819582922971724365700742822693474175985080407809413077775122855833789450243787084700645630866584661793486785683923494232120642266748590876935937676710446727883504180884754884570728751086328333036517893627139168285915164066199881720702783739652070961765386909931938703431856076559335277240863021096031773791317907890117874826471777756707790253649606423718437918617326273123398459351810674603732226999662406400648032718684710908215890561968469887816931127275597062603480127582136577972749708621561749107234225601537686541456248105609431139484335541586858558564680100126404456957361282870073151078646560617616880085290824678583197639649349085113067821764951572875570811767894397053010155574398130204417325198097927089813473458351943079971456030556522688179146414811765913419668381376849336537805871399193448998201790038716581789579749704991617200355321845441751267088278840796421192248572223678700118723106771341807139795970295589844533556016507725834920097334978049673704027460852654057679963811668199266808070064457566965548209302520708632748561023291454044294224402868118018118938585939461143540298987195561922450187972072316938505433977823361102307801608737318968539222223662127817080048894959276420141045709282622540399396736762700881040269700098035011140667330483829903696562737258383710789654753074468528410120522685230417119392693275031885099182877834889878337646050302135421894030581052297251160869240689174610928887447085429119210236384455299513998914767737250437057588812053612927200858105004598839746327765702384167251331449901576180460815094641889401612110446449053626121819959795318088299840284356457436761464207543382488388781410000860067511744356746187797364059765186605760203266828229181982157351370018115980461189369328568156071702090502989384695096274309100474441420730641543534873270202366319421715519178759961539777064970048555212801465380157423904136418055148117872147873491939349111780436978801851223929745531623031210301052940249474349299587725356808481493769820013250753231557367430562693654378468393748087240983284323831182529237283796136775145723054453216230037127032367891732993713290223437535054274201433491706009776151984408004201178275657881922822139921144364529160740152352824223770999069066955167066590620034103410468460989311215940720103474499070415489814372546149707688231053493786147402950199913366777440160378936091959360635388174648822747788867005920111689250752243981930846056998004874615692480990873597517904046641659407680630048853425487119129120364813264242883851079670831294546253253519462119809700424793573003820680184210155235081721345697802089142455946946662413075563304626808753017600551888267095379574035605473808145295185852958761490634047593068081342414466257771086828758719175449595799533712178437958928202729684884545908196959489129551641323235534423514180433114391009668714465290356926918605359092222009016852418437424586305399505891686614018909432786261235000325305367098882101640620765020720981308173544234059736758091000089999659124846084189043962601180266268408566718531316526127607609175834185591200345684954360102363640846524690450125499228127732501578383300563435775331228530108026656276487879164203811472119465057125708995213048501385005971696716140738027131549387995727083858716891351792427841813738370844961859063942173950123019698273758399563831285776643132571716289629801124787711948623965557522905494415977239141286770879450058058176350055543821215364965330102589199279414204201361942128654680587934999964820184185020637264002314711791442486214060818543166596230745015643669534338104367009435457902224117242082361894781428846772848564561430810237120544978085820802627534125457448428447033089118798607097204625315147076270346020223667511329252558256671834655217461990124893174193452980680739336337981454743934123986266727529777396743236726884033843289505680924163405563936081111733454102561254816270590184688363078873334456301544645950424990408485468039715372150826638505139074591669193650824772884926709879071308682901768738413781281850821349188859092886741425400099595820455282980511637259562160556809334681705841446864906493526025425735031207642546603078443717798511803480025779494750112711101291564992889653808581050054823373080471757798200930577112236705659218932492599153015973911598960219976703969923025697358165886310064967576290766242138986808844764122045214737072988576114879338791053621818327904606028945799061399881377716523545197350928133811061791159805123303444880148855729091051873653990391952562393461967826933507048485968386417454730991619521095436801508942229923986758649475280453939121123619369693082917749293871632000989877117090503916091181849900330303128158930860935491926586521126497595712555593889832613003144585712154975984745719721253905794506454370210124968227188546394264655338399781201920530391231614788655941058770832594749729924230841198210529411732132322350480898533634346196617877196971191886549078207090160370565482730403072995082891342195253952810765183938358631823651351465395934037335899514456653989356400091992974107778463611123772001421431274724937243380302546758627998058131037586621108888083182450922204078160146487575659908968066868210536565581516329452794814275388495560951610854890031069076172794438179626618782511582000523517206174379479587302461689324606173098815258895465220584248505085974949617507215773474562753915032495881717506670759470587204776049229150692291225321001612010087200202635658842266544877389014960989625678001581287602160862713943649644987688399742520450254927901963704123078993338853840768678154042172534375989275917351641298615032970762346195119300227993056557720210589563352775225770930269940501820925110535419408146887818145762312139499672795003996169920473399983170319292974315821849059993171837885836633899289410023802164412318058856940788659909893567085879771371257581995169042915350734104689289873465518951903186591273284769941041626586452102981454689640727508815891916519320228275180458552218238762408776240664373426192168797838013402071847068777625092272755705077789565868086008884489869257858791909735098405986190450740123639796758265685550060766471002877894397905558387143803595913053388266831271708156753937000884981427729678215345092444827696664333298384785008745172362904022449376607052587042615139580345330200234435772720829585518583304735646573551924907560520869771849729626483896425051666659833933131234247483896128708097426906362256149030128603790599590902250731747236546313124645392349154439399157902945053787733958929771371625511130301022888352972418116091505549994151795370594650753950276542433519286355912371477808485384700561582872365264190020791213055285119478968018281615964582474008769015050369052827159073261911263565425706792729884978160637821887580545095201205946441428490452686500121180084782718376355712229231102440866519137640904227068567903247622947256417729128173856024861227427838726278593687052264405061343692575599788927098783108044465208866326787452423159983461085990369772116560466838219670655498539565800309936976103483019658494447690270262447238024367909670583798691907080987097918831428300345551980154253597126210109043058981147315574623439654000677171419443068424580779265243244564264774417178930535709932385289164465509507989012437401716219832274044670091483661236856229857860252806895814573925192114047751443686979170577022466568519554567195621798773316994944376933999604589251674908477856360121886560010691885327731608862544431703819016325172236352348022686277698203089113628467248153305890234005952765637643231833019258841343864522450153266757075119209373336196956785784811143380983898293387688701514058478320565903062004404038995795491941122004514450972006254471530135987172969826327159642122385378950510112486578539215464124706577730504313066561116053113010830420064722637839301047138076776846253550164180225087927056152333531424670405679721571677174158534626681128898471520312149965000754789826698495130127731618230727400843023986303691366678098468148526985489774044772057893593404814563470943796572532385952572191885038412584878960097323674596808862640027006956080615904578136550852927218272199099008952942465605134914746695212945642552943153532302266518721069884541455873728028601032222106895347713075269808180440707026999062110643699736427439470707929704139211982342800143819864678677065849212830385964958305700967492898255469962313912707870925970808570940362234519921985683213536573071833285835281979257475092379808444656914784218273713680928266324764357633286006476948511546204404160823498548476746666470510526719127009582767533778662316010767920278668243112368599938877042222831311572435963005838296259249135988292740390025294854547349839607155832617900624072035276954100804056389925495386896679732245971473675209801603639944837227086926805750814750712872052873823845159296374202635021983045386548320946003934504165305357922799758391591447461482246461997345684690911949105406867519040774439535475660698207426930072431979689176347363726950129445577068417030720201163637064033188129807984463773394018745181833380051908519375872550937924332356195525207756496199732690067235533287837844324624833824843864958464312225194058596909497356633853136354645994181354422029071606079875906812645586537137879540224578240769797749004451318597040906423766989696472924964674406780114682788674403767170523536098814413552363172194010394550003071913567063575454894864452880607043724442079672479095931701571331736951313345343603357125917284288475274235875554500251038859050328496103243331283277677964965458156632727098714171828858061595676550946785181591154948087432773425180007501596758568046677326454566664371670655630616193708472215719026461163453427437418979922042758910344514902143396227640782568117318025299302904324179004010691362908278116585796526963233647080469188168544841874592468809423812376041239289053813814867959242612407409720231876388976011854351716207815839943386957472705083637777616951478862320663553649130215529710970601727365920951272939226930462946721318263228200501061962037808914682128856139084359892643825491128060486383669869737556732463183424549454955447462370715547018127406132533709342074377911605680989663482586287467318568398674477937505207256183361252345060143957198207577203278569485035121041986355897644234542956800701042220594412637170351601390543375973777131164045007020620526274200428359280513780478384023071708790969764075977986252360701936119815214990108989731864820424355923643690712698448002977689769135246741167260695833806643427269156040945061655663116887317682975587855957342956371552944972025901016626289651152706710548906836655174607307329299351232452584828826499877360365513069450182539210509456377757394538145504975231010823165228334743100474945441310400652803975404635066811257463761929887261081449118894518391333511183047277930617707479657883944626955861269495677439619257641969269768772823474150650070800295694229987202570831173783305987853232066703278068905955422074961709629378780285499262896615956140777391437278434917690916433021961112003647663018247203918485730438469162574443383800173290305867363716416109317802330510639998345421251977711021731719551815541435190400290143951979452927382824519354520899129538425366961913712244326649659935081943851308280303398052397743189418179167637047400934292051941710273477926534189316626628557882927483457337135314121657871619005242619609514417474779041955704320588811334488984558106623322975975133961168240784035834083484079822011723696410026488688027839073325220465970869139635267911888902407044131569927724434955238360167105667545476785718360048694248633012717005061896639821312340077896661161772460562487638828791859339176912326544979605805048802561203428171262540299052486381304640684562453144065918694259503609164353766637133880887358248982173760593868081014533532493777350942035846093901258653098408668780383091078569266271784814486515113389238448853916435078460730353345220018713432877541494467738936221026642895231469177517588508948984714439145785377049068550621644237013661287568425610813231169189789482857148920566336045662166381020514301318970289554993663720031360897952545554427299577937654096323280354924833025457928114147078931169967595371941445713501788057515016181169409462134486744369240741469680850610894077363141107615701331725436498167336602437461324880789919689643356633507251951285240714918540474740674150821227063337757831804385401033655167475224224522255548714360338008694127836587453222864946570999639915771063835141057197121902673405364881073828749665275495684857240051748798937783870285429716449820453369934297299728278166959635339616295455344392746415687581308569025178160030881681128742055750470017454155101629706267602734542553383822068781935265751876795615837019256150279712359977672248481989399539806110480749903277671475274346247595940926661070495085199469879276205513809136664071487320749427044824738287919254263355473413941832143262376503958447939616579655735343839278829790834269662740017721813559759019300917156385443940199331502675331993569419737359468773682121986760720865337850003020392719421883102737214456051173981302965950637424226693034242023898648426457074218749426715869127133397561301998183695451505899116349957058606526271100664897711610497513804642380840260430001666389800513693306329877862825754285319006091374021943648255687376195794426444486635010455028942656428459749432763900278043835402389522453799232432886475900691666188175787813650322821093363682053442132176033446524757656824758202063853382304704322705505450923324544153749625945120283509690636940403317934623739703664878962506730576817513429412015273800290351774785635986879168114066321614472789539192310621705792763504939659939827483077537348144809595937619703605761421370788550102523008401252279855986123366716991757381958226575508215940563079087534326176515589780993558974386567920897558099301869570182902645614463159982629354829339022895422046074196692109102235615224061784549383986445647247567212073420331509577080198960739730333668745579863431104386944937934302051906222397631112150888306248000990874167330855602528278758500097574504498049682855645754284284631746625818217041220129780318328224113300049319738805328563192702081444343884247943160735415994932692376876821388811656263275447382098179392597985609753095991802827214838608768230599072817969980778434013483957873726692300283013163765888594635122679426310733445629133688579300739097113602626969882589383747449547005178661378313012877958534525167897335495299141780284535235573165511168518773787675307076540605898462473136858386473453382467696918926249607699995211778715990729357808657276758433756767739327150499355271781547423403415573287269074167666715675008449723512417909820902494538444797827356844619610735337580311849094786991351922219116321852117568758810835813037811661425790521021627291607047775132073921838673606343605365343406758615840357969694802560185589610173759107095292213073743373624478211952454409465864908039191547170524513225566387375434195557872690641688088160812946167660258028251950084416162213000767608647813626046653502756225263765213779822549230736129233513402954857351656660647562346304066528259277958055867628164350628299781267678456043531364338972659940937886239784215377741881227762423361815149895961873250093448755187847114715096302134428497384370637830374112001855983116902763260271454006965108579593092072323056148848724883137956125706232273054754615799451078619572197673099524441783802591545544571244793606948104309203791363214636680475945706744389192054037705403587928970776990451764119540307183816282067260348621622898388360351817406848293990050165769011741231924760147128719983836139171043778542528113201050519548246644084224593695627307467564572238291410732920847491072565332503333240615524548548037184751501773978448552857372257811510454704725206584056368906627892678905786985149093402317493763317655434781303870720872829056011715806462274313410634023849359648481695898549922358190691473343021711542217008344279852768072019491548151251639149284005538756138782089803471071128398188852657557028277858131811044985883113570970227494076894883693298446448483532415565040052085366354332438290073294692977291491659804658704259277138592851239136212602689467633779825188291848556540340675987394742274083671144920122285608444956874256331949507435197951021747043052404539784779351746475651293431238174479806959694453387905996208876575564804284059949789410461969042700091261305214157862573501758700556527074274259258331395407893542923183837492998795449117349266106770113814743631949478128601486746646006124984198854908791660303856875461905723748522073789513176920586184812287152980586317244133966478525263926371734327729799263406960358369474830099038448096752767148767807488614399244369272472215335466031346545127396947637353733593895028596853423626934790462596318006190253097295957503893841410937275451897835784775094474204562542004628547704144703128465640995696432387738162025210061103193479882340088103447881853232801527593561895590274360619368753220627751399306698949767983650154686967314335542466465429565344632511264057106351823117156199279321398882421769440794712688462197838367589714534003811959055784034269738996690795634036052336365566778403426008506654446140969474192490827207981103560022469689046616208443594869799270585771712351318747100098019566973329518506705600722021128997975138246028316400185164892984267968149742857749541505418700793215563403760519245867004475712798639774153224707502202636637765732954940833785770497630763791249949688046796791237124365701324627166410889168244480958548678628956516605772100738195148647723973031606212246158521849912134379826961025337626820034175359927547674349836466862993776294815605849884047542490381687302095712332333936888368660142501419280256042004093064434193940051391405075181450727605402970219165429318652892770751775818619844619701772444755686193073761834988862825020359478350440122813566988424177585028455821437133684090426315720774665924045702701228353662802724737801552325770324255734587936383005066545132078370108426416911752662943888785178073226610886984898630029100175392348480907334139234606181795828507582825733790493898680012422945537175061125137051074483147346696436621446798126131837644191070879253815582126802428544267907630812405962520616630217621668451222184824173341689777735839767952540941347012916858036707765390496326644560820607691071965426388415476885485071075506482010807033405963283882796985399236815894028268680872037923636931511384517392841649833950436793405964574375255818719999738548769282683161150161853027421781490238323467823724149034186310093543736492480949993463924907182730382444122309963267124884649558796652596444725182067778390138129953129639630475672926431054491998357447243669945445328026722419981742198383681077224178734242456074796639506639608671727278289112780323002885547098203429891660438333197019115907650027156453369511492340604794927306567533070812805796437858329909968259657900171486133660395642168779390163320033018395096925076848009213816636926737759601953985064358448123479853782051773538771635464905080284954309201155989524949882127475840861398766492057086947829850469038098969087809290430516235973980164961304948079107918554985259543403953506839106388974950503670379578360449408509383125199149340457573724328890296845059473595593284552670695702336190397509471028443639630676495042442690055635943878742963127961085768484453425838174921489676743305048941648220153881687791211644695593913695239205131925022815348534562993243454164259684440513969379142959108645051849812233527890292503326377706177146987268890486789363250534571297731220105159749781638911606313308031267770219905955579758285875804752054462444032535289805707731307709126232889843880804728981088698135623400312278292088353873876534111188938040363033415195748037795654439540943931221549806599402545214102374450606220450243693549837970268645955298460287625095055951872423373409495461796009362897033791635070858033692029769317024523337019157777791601812088422432078608187986739361480616661816565877967476474397845684981561543540754034361723743582442367631726084052772840639815937149124024201952645673136963051199873739971100698523502383587139638635813590047610383434853107319753739980811366550554258222601959748069178642850523673918655185872002688334098577202554185078394067504939729518498563678270725080237048481946880794192978973076052674362172154837335751335162002933339352551663109573697085010400149500001113845479082096159087017704147672565893924644578861107800591708301953559306034342404429518382167077555979838963257519728817131458184298151712779962041630753897861698458181366166278537110366803620878619288961901919160037725457543341386843384476883267654096076667975010011099473025000088910904433322663141607005568044850864180282429247579941650428901097402790950569153310182926944172011202383331944820914075852227829342824558144675434126298621009722300856923650020975425917387758607808681286245891104834157255670036028803879027127108638423146911461575479425198612938100166968996114213587022596775352267114026961677527153026055810762432299761738243523931103553490276050304626626095030054603899833171546244685595874344504781575408539318116640972445166518412303473784464845900486530745990546212116126376655017334366512020918959837031209357494505727378243932107881584506025486561953517058229528068063132910447381054578525757891489252068023123736466041915322118304254797955679843077035471632704778566365895532732098684373515292037182772743785471359697625748906776080906656788340842121054924005005912273957297407624942163542547183164985351865220330239655884877955903633029246692088776584653940109599882920607038223491280692985873195668122944184114678287681231818110529603158594972120973133225500140718555284469975572972372592022820287369180486175305549012746027902587657211491768740428126498031963043427903396233513755097350714109049239244027116212239951522452924724065747228440209771030129131780609312054703799070736399344104193650056542668909128614749061775026073431923207968133903328014888756172134843745510950101235207946855266839186327348593324466415847588961844695003059350391901356604822565531154948523202384782544331882248330813702667246893307998884379654450843204390533259081811907836378477824126201470077217481038939855145517797715537061734378595787374243774986555420296468211133072369798367865612017267353866632531377362761073123851679597866736743547437530312661606023709393869470205164942450137982105563546284938741407559104920792482959040431666514403708780328654669163490212580679896014534727207744413700576909549566510765880536688910829151076436550613344886999092944895623259902299335963642700967257993421608842131994122823851179697800882497136322780953109257714775659147698287248653376628853548402987682933741397903684527378269742968769830397099609895487560552521167445603579570861494794596805719780554334265719814715314719695061673800246458440449626775054053002970415257541342997888557759830158295091078609508164584989778987504220676933413490412400827027466801999560026026667132862786264298239095709242456268464603043142714528035118341692147640738865500002480394697086266592660150933370210436735096193609164641223362554199341815909108626590777641177747997577245528114782838423318747166168791828936877466169616920422269287434061804183807288231607534558032141914556785702520197849080849695863692962686077277674144908982665052242022221465306664965236017802584573515996565091314184155218823036850610881705220903164292315492341819079980973803406110419815412757112416367935810387519393200870838893010450742302016841749173866308585014839645137440367397798993126053991757037947198562189143984983638609970985376840601677702068163328015567403672618522938427853789400487419826969377902333676749616930485647834749791873873184732748500633028999541447198757186472033866902634609507777612285194578373243840359965051379988315249073336911923622749394947175612672671508401800444583463294239884562516983930679808458214047986642840570176008992926527185828729668223082138892678707805412011520107140182181207301636074542270958353540940588383559637203498687235744416852452536837006140621904803150508552809045666311716550457589445933203563278063085713614177700619947565097065559772734296476822064933775394953101174418861368326722321544460169608405742043889634507432781515298362211553693396455136978922785305400290502046090648899227439223826261538886215952147546084189644020375340965940962731804106230917882952066268335277810615606153201243634968337200882658419836502031728185912097881336838724312405463660590486514592267375055783682508609597871101371959253698056297413548728924496885909537970752903984321070463599564243850448879008053830808673437179888502528813421289786943946115813441424968357388911574674089645555011518722631178105209291137755497137369847691079821019539159917773809929576725240059619907743308634593980187746534364359059531939513325651662897400471030136949769174725838011737839477588910211421176414501210468098598872152889075051714192661627460545174661994287986172639561163174125366814998739803913449847351940397831230182413391224617999678944482246435950714372366052149175326570272498674130433382203290280389812581005055986798210933867425453372436924147962549680978245226467046788181943665363048983957145891867608467301667820765715229949040978521582039736665642154791077310879635950083911338331596971445079094020656336089349103352860384344981181290893620274933195806837515808499762181026168494173774922936497537284409257425506990853766082896801972792758158406521826785090415424873151259001320233237389874051505965906911750480696785078331662183584183139825399709045429618580295539289363757589061622721095521758399418508816716712586642231318602690715057164818304102608106433786329793624410394784884726841893732485172382339568696577481999513140018506915725417038370745690930079896091329318295222701050286495449322731925841071457547196813225274687030148734312009722128202146766915952366986619405064850093016077691698194668043472993398679397652625972413853066869808978937178760162807503479589470319078673581357126359841709257286373292907404038252505310930618795213479567355433473410361678267812840969827798065800805170592868271640645786804885641907720553649528466091911565977463539621326835106879975105756006855776268114007610004218222812480652569124546963486765795864236945114476573333604132077265382856276668661742537148021939402173913401525491272639556266412093722466684380135657650507334980128121883430843908430819102578504932218903774770141772433693579755830257909111327831088853979584754047070543852237587588479233476176499419572145827922339187322708399992111715947122001517545863464089228809765230045057535083287059676401421773126646229023532479104554761717122591466951550132577620638771474429350999467853915633505903520296812747985975214529951985635132196837806315362343601831874448367201543181386054333996194439785884295954259082565688813010336895072823059635869538591404716211141681718579006195106095054344432443675594283967407650472379960465766291041251679423990826880046236228396612260935985614268064941565007373716292729272912238003923559611128230414304755877991885112154578874415120672434961824547608076174979132408728574228026707824710129628645937327398523828325221563757479596517647605238538956147885014955830577297978982812624405139743934723423925828066735671266947650965989237018144653762000961747070904286578834286356974694323910185128340824274513443840562854298681596113426908987791299730839965905040883061503058905925023108227033082326254862584611595300222969499752927066931970223558609816754021918278290224201979540465458019884532627218745844787079058444725653566794243598365311282490162730970301026408572082461375444181522610685761016955055547457125879133766928748192298082638211092202321293021504685389837581114026444577791724635448161527574704091552542873497150588512616598625630555891224123393031290934766826853921427836939268573252198381019408343883828363012898643629043241670418618987503412808760982740334323074571350487128789094661203829513268459520474080394012200224067564536359472295663375392380558492756803879907522611188217137788335903691599121523459314032742213979870673081964245958386701771936140037555033351652062611334390646512962822286437200894545903524129268812698960732764025498481185277470718626801358080384961234002676121495883331260165416106959088257010836956065103250646610157588967836792813974130109294652098507693701648733513047814543057685669878624792132086884158266360475739436196513316262555294630960131942123850771948726635246444956920491293770554664376364266911069412927593641709977861297956136525399870511752324169424967625408689557811780353504973304815961918667656831926550942073411494299181444617640255760494673674693733968591778880480562287936007608833093355741410002530523282458423052223101773200648506652286383579722226618835205779335587535926992176318700695026235488187530325908069474193112995917843259619109908932234166346149535432975039034648093111087010930710183207183866608894864560042345246499442793894119682103267393541002678971195945271191936988918041593241616522359077887413854836556423077818248769308503672645513264639232561772655152742034452291310360098824148108195793445475435985567588425487185345684923037809194864793460156986178080527761778679982403424097825766004917302927861305143904404769448769094957119474742872698216062198438193790225338792170522848185361386820814024490192564182549697662221306699614926469509466432592986945712556709759552165778775488137747258708260513048459748773223861277684240415171565693661626110408682051613329677178829517589479676557275163185111140925474803767329168275137649391090254980077999940114549827256330888449256818740758347263004102035448086872854423276188373360016691700480813025284004354473693731999338011062722157816818234011273773720270286069331565240214291320604030905055688407160967204531222102940259559681361884126084606938938448867595280532273998801760407530959771322101873009856081466766951548600509258125964633772449392605036498438516840536329516123881268129678117539954572648387348342642219231665451235255018517471414783954489477385624891526876952767000531170473920762865010855812925584717851440781123549775274449821035003972019477317072463318011192859714065474636785443266726636877240695498727066773035026707242296286781486992598471351482690603450126235745297030211863225117225918173324384735566481403010988292264109405347076937943822564499695648212254276546189188065257090797533563515829938970258417014571971697956942337703009748475047653196814626463233957696839078289343034402579242254380223839094360981867851488727775051465607282507191712223203494221497792890070313912929764143387523579756669492307948428677704775194279982136253816840483748900897342444524310521651581489970638490295002156084986329485280524558487316588366654082687054135331182540404290721214251210392941482791883343485266098248375199314949516658709703088716048699888809683166760680432652860577124867717504149038956665881642492700973130199715077761704430150700966165784164533657247031072245172919681129449463044332769646121330515394984012020985407604298021620518560491147024157607025792698827774511430083858396617956865619102293878640581439516904580351417794563772505609258454011458528107597440086041409347748575416113130261149721345487140193690596242954374343310867576805183364290750785642640890852280688207572799767051365740464134357800963379922453255764168695193323517949194943615022727237362015410326596853498331609432808130401500394777351653117763729413793720177692043330376675892097427868056362257639333566199682368329093180702156415851507269779641715435841869869795367193693418156595275149220527405076976705403034741645452000214242664567474256639708991158291426552798004548658989996068307368939731184933196677895065483715824333512316109451712637375995450066126209559019822704535221692252104519103953839747766755073708832270860786935798531065292034989578163983377385931978658305357861289767643114673552115319830466193851404865028831638579913110785681462547069173301434410841539453135912191887036508311243422529906191730232723858549030352734181271924574961380986088718753611079683426782035241917354134634704510409349274396330350542976740281972602697672307745966164670136127554691886017915316365043560535739807233766298635424610149943831069949933661161975793808660247097460645853013474842727445665437061364119083428832859588114642991127628416073773036544313359810763017132056167169475344253708352448577257585173178721098370825241623737147021122284440824160307630489064775880216336309466205416609810572322157500057490798488644206960512873509460943649193858639165490216084768249001602171149101314635513041569380990008399749006641363439837162104502959296996093392683916630174476017310505346694368371197090367562520781840457775200856496819122021447938972988125837250600346668439689395197388715967104178943336282474670404877875510122097323203926899682380053794479558995771838637277749842253716617833778825498264015783147290392050705420563188794685741722594138325875096415091286415471710503083106605710124802519429990630597509146425497615628530824987557695218027477662668907725514047156477900717413116611159889004207979931621020925903457456214761995552748292276575701459566926537150804729034714764614990055755059669911819883567436206110567710603266766244807187328321774037154482231279308562394365499237752283069593448002682359091551846526118091144231530601733621914483092462860364517550333022877401650829504150986085109827668001638465940858335222726007058608816656894451235693599902519206759115733874157975348387922114760743746681449445632562708736796430508490827083814919319658435015925743816189559473690596763022328811867639173313640540142534075470902530053799139138020969191658146972182946339269849774632908164794916227831928029548714444009636266270421438714648517874347259208076501689455883298673136409987604932176416606815309642471277292175747255473812107694286193833978206596805812120209578534215515756240265406989854831195875885037175435052807758265896749540510897793960475311277827026485856040435564108278027295298791168847215758576371462651189468143299121981946703035784387648666612618452679556746325137092438539604166245876150817342784722955368401878783059617927298981865763410708212790759881462061757010952752677403117242496149612490931907012857770597702088031440300248277411012147823867068962233555052499622560585315554979886505473916134436236684956161307661371375756852814157249385959011982263324546439097715730766955915898106016103603977799939338900220060098564727001489294740433443313249973025906518884278416556134667806235778879470201521491852490083870090238847455170449941779985731173174229289983793919559413042690793889625651802328622603225851292250057094926083707227711982369959576279615424713443386189490096445126788505786487067318128475724968203689163832926773194147153030722913924738744760430701844518153702137610496928079276461620324527694721150204036813473700643843829685462087835010687539347451549078406938923850525826029760435056411877361388603744521174045873958539034689707819811870092678891048026852177482543817076384424794485872836066800859824448684383484405638936596911599420293237801412873306345658599324148543718921781748196760600820124549058806282963956950944725124787898116455808251413874952516209992180150592311441922787506133504158908205705598358052949382118415154782478072288445985658479875779451917703191417562440511535068897163058706234242777989051451379157231365636197664824626148146759530854666750168928550606671252845317565147825135959449479018099658647949712454422498369723666671774689147035562286927330567393090993947039397725217086181294812882625699608178274099125244589232769402723555648861903265536000364558304681278054411781588018175797969780899774316954348350068026370321615863906873600327108811639824883061795173468413437747326434369563060555215605138701221359972899591484798799282141424048321749586628596858165017067602797485661717941090472794568901532059762830946610137446251184544680476028806418897340087801190920018003487379726172059489443157255563646165011023708425303646684723017151255089004372193986512123594126703628039752914594644482182058986984602540988760525086396351895472603674583282184511282368198314320344140922312538672798671791962159010427930666425843768716440209568941630132501107082706067353771017353956736786215082106201660438629806403189145181125197012684639677144370153694045895969641940566223160727264382299400275184926053380503682381224067641766014194918355940531661067171080220260570400957276730500411282572619223629131004817289660749846605096969202825846161532838856952955098223570380218466337414254225032403600229144895348113729831202856492390915361057977594775612315306190060792944525556453487296969755236676664340919011755229331163620439446821908977684142473792315645546577072921611924510142427635352004856958003671293214627433195140589640309618922402325776753771372874720306456964953067576596494498130063914002048498923117216902635862054027109803696811720548940427062858383353408097297680494097172874756538976880550450916632538799922324573296011991165291394391661098458911249445791515557523474824317063654583276866360765114775096146630143908132744251802034412587698914588998945969347993094125964134407609524243519463007250438446877780676661113153269201322621335584354216270101073996661178251158434307312017358063915471563471381624946897757607233311368450438697847234564707876933255970327481060886605149248316156042940693121497190472369878533325139571404869546798644433839025416713203564884383153561694444282514989469245830783438229182445781821501122341352659614997372068755061920707506059892571745259661942942060280402729978565633489936424780682608738425503825757690442914118125205464795547792034642953810912776268058280668954877576457140168721186892842428765314119802917242105218531946334286104692364261194005900555249782108964585852141044524620009301268792164969662177465146863536624706495532431707577598139116355321121348627158422220736990419789325725752141052180044163683365005003532077974704939634754348768249472965954331177243545062283878971151430276489472978969840896065499149057844197332409908170159222130849930539986548027553173839901339845220699485761057611621702011901652834642660575665247643306136880962438623054990020132090282466492598397865892712790754706860751858011541955785011341464877423863582622107910454768777779090799507525622592417717675170885531218811467364330381461375356329795359133134854271398936406402049731566307219201315559621840759731559121473999482481931486414418245286836505497092196855281232019096844175908538393394116820565407641420611360558086844468545646445550205482031875493158413036442560438765528477226450967753769937415149684909588237021263067132213152274985586648287312960348786398488247692951849994931704583761764645433083511407642439343605687526001752448311497517748451061255283495028059491267146027203471307337647010407545319502839563170885027956268153048461315814945750685078600004212885073811078473470099014174392791584303478615703215538247496214849864707828451971162139098868399863629309598927135708220271198805162169513454376955428473858289217619758679142868664030716149736970642355550817425263007292447210335573131176995437379391285378087880094296570980777417061823014654918505213533582625278538565852173164627342566725318521630159688350918300175503869724921353816588520733395677667769612065092737285025266736316050503709112139455730266694428964097358968327698816571582731634385104067139287355403212041700340580279071303292084148273906906985637616613286069429199371234765721531707322081760949492816712852696715078311211913901330222925927400479315448313927871590264742488652643448330650174831704523792207371573930690297261186010775566258429123950907530681834479769842797559245886678617001658821009885876148195998311206917989511140635352874034804035872500757398276889608012673440471416094232617202244672794876461387612844942138779338663782422805181951189809267678224790476920181430331488254579072056004274806356628985277920794622681691602832486268796196758045170916072855042622881892269754148445673275422516894471602430650510255437771546901319076227830756491471618141477242605644692714504968569143590909117186822388121232153033206915567904056230589699183630573455055239309425816422875581468598836954321981916349794123180825663446822946165978857663768128610997836847457487720995903991988923325043837333084270867486405575217439723008568689933048590988964414716288647394048525577357398960586241588738278452129168824517945799633045530335960753788858155662448320819533971387437813584701784037870944487210631859863247239170339716703102818936909811328307839481246487764313807188850373849656433539332180937357571928937011352767153943777859245385520145858158057002416021051594765440560807339014680659368717950792147132167053457330026611669416641391109948595603001567176930275333042847325420189646574176051962123044273157287711925946408428980850825630500050255679832658837832097381557350507207236402780657226725303432093969531067304552555838869012820663965546259708166892643031484616099173246220768817225526277967255203649812728996194176440919834650941861785199070224270647790188289926332358166335631261995981041599645971036392681894639184513861740592780586666140931995211235827458963392933541555433561854374206218105789852926274323966305247505750987540476383119403840077868120956438641952821376309991826086551359528489629486124145083034340983886937589879482594408053306549576197093262883579602031755807089072270243777931578886563839873493082925505517594017160057760576102468185057618696814111864164046916934151409382787306164136836085269411020854758319088274977329736566138708869658865412302029438202840349573475764026199478656960273225990760360144686060769697826178621139127125080032199636406501258075723685686134546677818290730280877115550425257504263920368826644385030378169442610520921990207536956381456591735028237857543955046679916933678870097732805768563795031259687255758565822806487213730346911807652312169375441326303648781079028668869821923071238489253043797087789399214132569722023883239107771385385762469394203194474068114646315755708413602689324366961427695534230447040812104723369491498465122861230918415244108320672253433723454329882814436032728631671667008079018942826603828078716647571474572576504371141066683049426960878887314486343927932084255974254728884978545232188620769728931795351457471851909081447666523418685699677811760740326551860637714710409434348905210676934277195910672617192800489487731288320396693078032772149153041132191980579771812925141570350289507879491700257142879537610687975637901501455840671902011910102344593407569113197829695054437783176273299600743176637182550371142055668223340591216808875654519819851641901136808865689095213779228038732876281694590691846787029032370507649197335404011807149734092533502665573363203821392977635017257444707761857730115441950943865882795578833718612561660796053999875362563670580811339699875143544940447820519649692988532094685788003984654877504583590651409091222846060286653256879143020103440759206912958800936522314230110620884039803593301745601629664697494566189502553341682846340677408030103924857974062815996559394572020389125146200799177266165127628714655202367948711190196749621032328096643142728294161880094531358898950912482094869633965035773374962640171228215884635512772484735307394017816935056267827291776024351541039595889024956736197861155673070971714513547392087304754309976545679164796108815325939063756617728459707159022099844028416342546332204114544295595198117808744593901904906035343526050879578735229106802404024425901417881384936770527498147505106973755784860273522331122557585701503247617910915328966535587453372812916334524569579084467881203622754436541267847269471519766329652498531948875343378841326382346024867175172733462269088171856530867252073171121606241576354557943208129443997560210922112454610356386760132151243086271088750156174639386228542975992909962932242613541674649443570477121653776106571292259348322110045789857108695461008016131391639404589345459278641518962162394656966005407148400424711894933957457892214318512946702335963524460033053819316799575167202915828131981917010598040063379978599858533478920857123303569781627777814161227416074169258160700611876991008160764910134742661427362524368275876234542727593002269003650153798809677701302624630534415486928571249572375379633709681984929189941755117780131996693372378319152723240190886718994998130764216368940701794427486114528897150901431528996120297985387515756839823176377569124132054347019503806043946574377980941121543784285137981502009569494060458564454577430728873860576816796827172659285596696226531676511295030192900122462120718534326742243249570867970762321141529952313161778702450381643967191890897192860897995306539497284423258489213339464106464397753281195418446338481757480252337888207636601881041609679165154900800664004422329411180140548907319314949523420256511177090984487889055150568499835260534167577829267447834739054940936285248226289861434352346095428112894758346166395319490396216057926364023667900846773837127688448655658921129902590824580609276413080188311055026691490441851949763800542322244939792225153651277157705981778805873575382386348298573705156530021809307217314664603254228832549367018171685270680381084094847621399209058712667889123617583129759754451006102385255617233145408015554927860151033304807902231198095824615496918521766503457269053063958836480138423026975137633891608355620403046983206560068530044621776455446707255538363029824141130216270602181573789478200880179876051406828467988664785056410088799893392730948927329516017185625544557463108974853417317534867338156914374155239520103246336649963038236357461489219683215775592047917426494661161890803402389218499387102845511992931856872655059943041507479221563123308020703125498126829324046605654989946348323435768033612446614014726792397744762378562553057507893820332175875900306967619250557036296109913834850115024624487577696977494804307191994247180322864461455141826390461571391911510867661770703372298660029286058204139571445150432459943214197684719008667751197393907664987573994214856179690891292852397733096674302708158812152892190712358831087793569730498924548348453724040409387767339701262016999927825835287338217213188755809706319005720690595475244602954081779413174084910320480654597753404685954622954490912511501942547837250299321026521311977805792348514215165041724022435083504070466234634928644267348330476441718007325326740779102146342475875059786543945048279639167492403429014935544364403851343008690102266412648404095400946803546263501271716954710268332367825545286480226728167321001150867951877894425620931973430684421638765267143407848764900143237661358869298765837962908770567961712102521225838558176299718172729033852983867440015884431634021398251834987600628580263378466789869739779967160575357766361729446417294789972935139069739288058850303512667668726499133886301835861865081798243002828058639215464127320643529621075675639209556486463649808112240308185283024156336702237616256621748782925863166953840249433043619909643059005612540672441412113117386714856970461493465478420788747142497092647907231105010054204531054401205280918630744769607929097191568166716761482472460082204562753411337970324952113602593319929776441309536105970777690933926669698446598499918358626382068862814910302706895096147312596312375132990276805221768112248430879619634196556576649564766059685088447422296965724100896253032119550475811025224431374963305169672322777874253694588605097201901330362289582845022547094718419322520293851669906929490806444649997801277288770685369663386434091032295645506388476414559863950031633396133498131152277952776855608687924535954346469060014502127760214987717377190858161743380360236270253911601837633596079732935813461892981909663324681236535302229601179285669014595248056277569826130914892154861015698342954225222577054730861822899982130097943667526329201377326893611222540046552875556626722574744343511846141812228500543631189403571796451758716523802114516291611462261418359632668251345948546690601580822733724423263096980245957088273271812045565828959408948921562738229523740868503459866476876193832668022650706748008496464244724166612793215770623637572736774559363124954510714634561943284601721437988866978137323106747638587483014511161417045699524639777669769284766320979156000522301038133806825302284906142613546862974447679886585708980365709125076753135869550866541284231524496928547136686444914298984932998036087348232549382130056621638244250195543304160967674641014372903899269566188915002455451605134008559163614822037099265455023573418834636911202704698093384999323714460500176136683863594382883061876921811088158265153759536038479563477518801871184307489681096580536230490098779791675095940749223651109095129926051293456376274101432784016217600978958176308594176122832615341007431080456216067730988744936464417225334407033850357080711808021087085312927350785945892849533560100580423482291951368539374102698459244762734411414305274444919533666728603748866273485625760872613249905843676310604667222017531011269987427758527519209312386545354108165175209589780615584745868661474790205419145752322218215259789104893673587772547061401006570822816962698919047169012241491442268767550782010727762900658821079473048149278333716236077363660994207556803607220764650129400138453219570352642657179321651183787617088851939229745083507141542309821859170755983388483385774436024641015168982149452050311744729530174662266334649085994469022548554396456027566538444551842718265614468483533506672742511821397475874571768838133023276340631621873749901803965096480930813280103641788508685043519856646432027961141147412414938991540285119595446022900653667987653763126946681901085875409252171567130376089808410205215247728444074021573672336567978789995837025931247261817180690346113113860920859001329939862327442214464446052021579427307641019374178536684649041272813385796163301745798431338724009214772350251168179467974164630191408367632238170908574886384828383190563423096148018836858490585963134704956603305171504562345564004011469901853332444533012517037145580506480966324494827992970442164025386039433268613220382887028288429112025342519343826233643351622462425933423970628895564911505307611482395056167160037502429688186250540739677406910358357907391950127221585661157079316881657623446734317577137771723951367158395761348239287525542710300182176895384348439407350944994716734309669560282075605974052930180385532681813661743878581283311987182815388851684860404976802467950655051672013704382347778580903821441396797892156516282300609481208970714512640821573068087382486054235388724034498145001899262617299151015423711755297608831286042390369989570547724967189065738351906422590576268868033606478092890098137923278811515237211880882289708568123285128788483316460127333267117875697480685113224159785204168500772214700274297496164028324273391522781825416346781565771538702213668294124454236751273483591568360892947590091128042686982718556631158247909926390339698714390147384247437908924986813908515188058151350850952381067878325502641054643228045106487126054984858546865369188566007141734496204475862652503483506245426770922801392604702214241466084164382547656866547259514144938148275949189059143821014374706591139433522763565090347224818235638968728080019889610454952750686545621140594401548855912145656133383568790106480074211611425838518511283732152829064874739760513498951690533377054053835570365986072234040181348036257407418124041485104128578655044692009406760194638445690454401306362237372459280788591156060461276967459159726963953013025638571985981715199243052478918143852174298514942955475419499663388260623920909103892862438868586366772230679223194211587984007512407382964233164231604202200225308746922803983494306373780950210918447798749335675240913262923304538034862841449686722523937507382066925398547919923567834844847918381331072192383649736452793208431616534078957739480220539230912079995192829814072151526199668861785698877213309421533441160087276087533621964692686096777533167646922451083718723109163019453481255758758293592600128541038630371975412988423108175483623180406913057762326823687889941448288269114951889434668403013514001844017430645614800337255337433542677861704553401095429734164355211706010574400405879286523968812132336132453254519710545801928543894842623634199840405803616758039536400942879037166057484487041676652080842281776338767754080205676546156671781166198916000900699457165352053367182321668313931826178247666549082187844373418832551024054156455469896515647189987161094460295001517786907308043528996550015421495941717369405116785391751944087128312049708801716270051122591285133100939553760630868551944635154612973372681720328585018767305040083316377938710398899849532934993145639654456194594493481021871028664812473436718118571415363851305840065602903519060113504755245116409639308213515524648588746312660034457980956153616877062539985303465192834654815262845185133262413218364968392466612330906091576294359874152861736134635825842225517943412106411483899387560059089294589644926920071346446250929984866590805382173015830957759249298911016747000252512030215543351415563497139874572664250255186437756929933348283646315206535842126363756169436779551786643131987100701475892302832858312575537505582955260700637859514924400554642052802113033496778419495840234944032785073659449521657842397242756486366128284634541337436770465283905513330602666163088363266934643762862036234832642869802073875571350978924774872023126824030650592654404076082245161247504702020676444536126697800530376223764437396553679400099853021763840554052905818550707932339218765198680329846559979298305962010133439041884953661463409188905732438489008789531433125692724857648110673782042089567020231335688342137518326519536414363771554873281319123129695671305122832960386732944940902477412217708788587983509056067022264596749300795997940426469373153578425818957230692087137015837804582582295762330672814381457859752167302992349591890563254173681223868935162868083198084672240919328468782911762755098575445885404567819670122749096578819886036905800809059724175909701010831355618766883200352813372546569155169312575147791467995309463810556470083897155497795666546528439883990172425825568392238913171639859006763890981676880191833286293019081306486749617927108449382076438357732559424917046712005306721858542408664582961708710188054483489961607249565700869098567971611630253592344157365709604611629388895201298290067248395904503093743812018024067620765568594446625431491016501019616246184575404827000596399500535382972596990186917711627024041680916562738453779569545267238037056620251761043488587133523660570481007990300929731647929585379132625940658131530949119362528191903584676991688509134777657467025214337965676129192910255517709261138924507747036995851134837775459088484573862155776859276512182238598033109179742529886762088334512873871581278301675083241242927084820347586688604538379231836234263369327707246431871828068785559262749232660490277461123441081107763768127336932776106616164036967119404320933057200780720221051101896295798926895606971181207281169936249347312706510030209595861431182766454132173384621174787434009612884355804650043773171589178576024816816745455140278128896091606019889067175828437812283112231007494632787664743496205885178271391383483926543937283221585934321940436016512843781417477971459564171174521112447343887087396253764564097262349977258319566879786755719551322182740377938033444433428555086287427827528698862626478834392598886903744836082659807846112893709216644923940132424496389652283731429754044505988445127237633965967346988346304059355950425815844803013885030256296296289206806577263783605054656514147562171329873822905818972372747600721812257947742269851557432177425920967454402927248757261013321611327897437661074698015470723920029973935773403338646263697853845766485491571783301301694575681426090903744074932348419573389689536912277742086871696755681617021059537265529488617030847451190547724203620099534785144663217674387840311346430521377418634868210317940628820020466753612407864972485766504357168255195185050080749112375562301604007496046557709586727267788334813931933560253827272669087738472798620064585466038586837146796672652969067575348227296810403281778308450426113488834325844243056357043310374581745518095184211757071936947932462063314271850412865602458202512729747637382135106890086272516197738831643466682290510955703194982802292484980728568128628805354105555878890667289635587046576412090501118015239239876581681908136255389215156746619293604352893015349466722378069594348299852184121745090745995079827806948330089730420894301487489969442440912882224729616331495956755231738204122786566314701888463009954623667542063752538454029600531715111204073278754579935670179591604363884823845886762712533943700987453465936654705475617075799768549891730861360806671397250104820891034087924445605218013090988749618288625149947823651498115168725336687698471668543726620707915862709566562974076013042739618094633903825495246048460427504453758899944539425888773959418778393127769221244741896500411846932250609505219845851743746896559915233226065372056862578179122587707090230326910992480893722962247825089627870043748139776451234633177410071954928020799453134210034406561247707222121286729229033696254609918204863985398813306586553345714855071000470172695223871594440369386234624437220829681655304840171269480043123521896775904872740908780929663198394045379570365946558784487834155101137223031355687455465420675713547184980095080686927794494505530857619982108307637533502767781447902429906561981025748330020518496058789571643106039104163226764987799817921322777824275654754510381737992235250960514680445183862362970424923883364979173514628445491135735702405664187952452169341848826405220015304855985339879111524011421429356991234347840816090384113219406460056049217177685494408114459814857372788222559863480398432630841842809295106615267447989955844149462828178370558679343609424396580914642430791651828713929233795190714926233434318658274357612383491573276649799327608439488841424117315848142398924986235904144042971442660484825855144577942845347919445044824075463505740209079733336389166974480133966650380322244705368223860798586383634738390316144107930909582553265412656860930135815105179514550334209480884474787674619935897239587088014796078590959614436830665655118091375398910835543550862423263996982707778509274221473249232720258904587362017118050484008496782877553729631204202634792125931153652506440636560869321322492833667549348919596855253092676572204796374915752814641061474723387333196329956215503616798514594226165755752379754039486527905448715114778308803831014103400979424477458308437412989936739275528513633514333080720212338508650076999234493910304077885408151297041105518224636955667697009888955426741977887110100545245859114621737743343990177871851357506785035119791359443323896483697193760846192495917761741662922135005538623684910385926854310700007187497511463182098280490426928134200616389730566430865081639918619388622627957325452098433150677669675221786489260469977297503932468520444124516373479852168672466069027435756695101724295743460099244854578064725136794943384042182632805032043899152615111583550089566592653909325548186089764517645904772883578920591581652140359975534700232153324578267441399161316674704371546190153703713768917646272308202746349743385512085744720777807253704793797120143921770402076802782749959508952255727492972819339247819377731364328552668472985930085730965765431825516682903680857356922228974013257809088870848212212724899935070717784902793574385868415048043827533973898302891318318798465362812111164835103806134062083568842791983416700247228108948577586862366004749050464848521764423089093012586218095602691596588615380697994825966209295367671724782176043280388363226177948013687206211157543534149786265643037601771530223689484886002215639674542220545934889544392927562201685915698969775627189655647542347336378834107369707495475190514548102281196815444834720930354564609352429506831500614765999203061605697990585472595318841153937668555512970639389554687037599687420007198748865648082912495623522564324324037982589695635227749792248990199703180970586988272382503826572942337991021353127861030844389029700497541310031123215522291573535158359619436728719129186469956309205744584779690801132655230638089009653772640519852504664308566272114194639075071639887555735106609539970233417357636946973923366391075771528045862320705882275531347794423734108442197555980577509410710065694108053153444493206501251256823564170929420216333923372506537287253861281586558704515574385443072345675140144874428923793213548256996095404882981491409970779881624008827317140442036072977174084187277109154049308715272638873840590920752961709674049341529118112776690864170620266214239786961204732805132689382652668409377631246097901312741592653710205137811182317444568594619780916685299636172369139535482870777383418267023293050680191475128378274533588880373349197567670075548880316106191358211429514887555460203853399423243329652281572822154152915367937051924630754245418874792523275356684600616284716528388894027417562828922932409331642346055499616467142588022039228072915981328787579512072021757363586535595153936946150769763439281135761732594330275677170386932515184049713750721957421470180975785433967526277974113051676018709932369126291911421919280095336055701744954635643685818733049776550246956248683632215386539484689903862588963768992837928742026274243520247775458942080964025173605136595632574119568255579291857570392239162225653431459324135296564662153632404620236320126018892197214969690552882797296655100352072417510830122654166670849179240579240838123695866155365821479585702546879170227218650106019652901982698629149257096383059194915885121850870528833329149796856199884546417477609478894473363053936615732789986275559560903188007563804768463177179306877038139320938844479117356481097246542437641685314886909237375380434657625408069450427287939669594807954903841524535304928187881147273112447580732781547691082688944247540678315146578769033010996325612261801933497588884477328347170913869517858627458765800322019718455648347035976856145488568356595893249964756413389910224561318534384756654900829444365164114508186906391831275098514918466266112175685069881097269056841862304230297935084886230312005834576710525648361784758123798449968521512826676120510840440132356264762240500119471898853438924550687667476453123053076453711445012848951083249544146853935336145613960394184960825273046939747586295711598742474412908959579119995413723182574031285714734290569957351611477762898615348873464028236094461023729460726508751003783899521735383119483952537318885143535559684957041293524260737672278001165288467926947118703574441414591725592768590063054411502874698210050742641622062285447563208035328251593695283593375144695265163686209929248143775933186827446640157215834160949727699656190749756340275361501173300725310005488668966014051943744128236442202022667808950510484724408806761845297246080123738719071513226030291978227012932348920762544291478525771628302141430417303553864735695128534252606202639974632631544014270810666741765182257107354887159474967850554396507594021889147072037371500056956531914745744409746059379727983726441090128456976668540512335078243412334497344903129722133610010537689859377482700119904785240118170719148338173727061976804592252367853163767277237018252054107780394021399319544463740936288352566032005983597718264693358160485058573859006316922839782148480212295042169616369614830954000831631574977843772813622893177713139846585269595573965354588397394423943394989090018745347545887468029852302196738880501103179687573706015338224957659677370748638811386632370626143251585392311839401521443296546475193529110556886483175079877246774945683263543729402818002630045693533599886176509983787671355078248859999111455321388056379910044461791907667077666914316591003200419123090874205996512986490528209023927132914893606891422738512229453075976321053952421946714673628233852976364068795293127635900120277285095530332594608711046140830655871636320517400437261209660818412534841523309499039519745855650254528799563166003111748995825134941049700625294560373811455341409793828284391662067074391849493731336422215009959479802417523613595207950322359649994862689267915761475306599822844329480936798471512342967512848574903113975494095049244147841901012076115368050347903681846845670446802611445656735944730017116028347798934726854192814136837307870847894654224125268575702532959408202029477585220911416472697699811850474927515650382477942863499396241140000777348637339466803850056934901318561486149324876859332635876721731277143655482141454806813218477525339804536132116769975744718647143258401971631543486610970296384634649989055134086745220300694458149825095748484641769204128116048889785345291740431686594849391219982824191726371164263912894154412039800141458719545457131103868400409656915423716590187927269911813952497272213181181421315720099429449031352591585469767395819415222829435777255391952959639147959523371039346452159124718274722494316818439857278651118680987826034611205545558847320921097509122892093302995467328470087155290052130465056464621780230593596336620225697112517043812469307176132538140519190082867392603796740061054796270870948671971713185408355982445705529280307533193638107415215133305914736741895228622597610352100998863866636092011962503137421936056883606759885642985003304466628168731369592270873934644014904376801871723160512154491020243148213760914961495114273008439505707466596087328943899443634023322116577103736623029354909139445449608036250644816283388044875726781158901176750865585116242204302279151972379678362988440578748876018784715860932328201062628810140288966908040793379788118546065470655039407582289898426876493502659215844334620673039289517914259623149395241140623110700540847051484606510755950646547798629483153427343126672285901100385453567426776077003268880720875582902827069750943021468770239156788371831667519608317500451740803137323156040873740177679171430810683764286257840818661296261045524036897786089469931386183794358141528483877478559644565432439445778705039655134631269212270592889620063472620290285442834624298091684084397533660867254351885122289277295804804896706103697305420012131376157676617926472062448954237875547323000323136364579293090751937254698641082138415270792981900507325562179429519615474540022803123064657352902887752015221515475652397347307760977425432096788386163443463499734080249015594528990579952366869328315579953493486801318057093419630073132081156214889664554249241361629975321327251002403073201684871134232257476410266076235270346020691557427554521275326336309384572747279609308028892696060390741139103071873082494196051798333909046310016075102636736293850978944402545262422190144106067655182970741256753275068846020495371230350296188289616393556015964533376566557783813361575008331244263426864028610785594105405003515265291060672501447371750000224452511170036708748664458203881556606422734498708607566478621847316727600133388963721204048754049134538253863990039353433037846295557103626638055609506371899490748140627050720511830064290906243953875998843706183661700443411412086258170554420626541177116780920234536829778899101984145592325202769867731286194414287880028620120774282033389146617632115061419630473968409004933235117079134441261730226138982670392576461898331836882596585951495621917293668758477475983778884258375571903913999638540683030827057133694494063572524114226643210559375400743383945323459855987439806302243304370911078939102746214790275301051249729465430845134500038750232651098398199123303833369907995665112958369451004079710477954273856914737816811926609659416012173293913400813639133587526328994226251813751157970433694693546635267052338298225319263941618956380460760911336451343931056679711342351905131824898121595360083768174223670037506060996816624524761038809038512531620124398752167685065550840873889474373027617280748829914835706776455270285523457528468260784208960663400757099078026476965519014786673547802164497050215726393496705576131181992486662404969709468714376939346991464744579060868859802301809440678257459728347454306974465670000544321062191469602154419178607203951416111858991940382555971744905860510960899883325847391361054092997877173881487609254740578023144890166375343361891574575068769248514816638339549834568264871511801521362739827997062801097180008933995615008039249048069996995370276548121653552057671814810383529657003893022480916757419043110199162042712072909922258348476491962811044813253483880316529763887166248939009869884902826266623040970595762335988992025650035320443986165166502430067765578915013335543104757745398536705294391053726401357084398881726084315883533576856033135389462215274660924182861202389950322963834330718622611499704674770321814814938829568177635861120791145429143514965899825832237703207818974932524867528685560600348799918798832164752139290393869608044379944836671319498327778410185660171558958688904100305516122864951312613125249672697695159269987500920261246339445074674043631507748011296191418533314233383327959895856195939436927884303865362248923487100607526659045784619429075407136316664469232635898853362889134947136688065860284153656651757173524689833265058893091956916958180137304127241147956389358810968645167646497878282977802740927240148859946684886142277777479890537354592310028924478624065888590999862883833315402070151093278030939568026651049969848728648171253950659484184934867522493444112467669833586262448971112386262589226447012450951743138700657597695249740104105412033090943817379062132269912307975526877998875017988455137393650054987919608107724070759187990196466489154741913833880930853139149020086896242296612274773560901657176841986335412768538249969678829639855262647596619020816755760222161878396242783266459438840907758776655208680356473279469333815041338662718288305966159578945117575763768092662469061718501441135451081714619123879341581663182289959695227183233814718052396341568822617657434330271525834318496220741958274244351185837188036929532318949844057928850494264380836702391185535534622350440847532318141984252998961277651235615709049863131818613308808886148203237971552903192599947342305768867823555042264088647358411257684040398920437237441339287875685984856584422709175728190116980484319629766946097572614962738565432260902660352534644637199384134103113355032432177835204195082933226551930015325192841144429763635707993458483217535983243358841573923906788008996382020494484703163604401736328815115115067534638149278771945114101841419278608347172137794538808753182245858100039115992611192172846992362125384818701488352768025132906423081559784969669056612409602931009142873415981126546235898758608805959212289422207203145542706537156143328759343345859992044287241567553147192981001083177568245156235798847199726589900397380308907297632975125541829083262108346623694606201689958081785789217513643621501079271545256804132148028191206229634060253079887997078597445564269530624823933491851475424590837656988931459117065568738048731857528412045440059170346092338012653943994172703235239573693385713932062856498344849011263577940667099711566607488774000469438123803863940886999349539722742667368899741633516716665993410617797194587854866942492557759668354505272600739308578131019420463747776512852936872180946728773694573895487326160596016564779122006671547744743349634986537396122335384366192612971284932298626274280559010095217012645324137292860643049516017742640923163499403107692575486327482885345156171413591647174449288137260289185485926750833557843654147994320439154003773152919099231597709054655900805630202260827770173746200588101870519947587650627511664384832779590904491252805280059505547980657695675542521503076574084438675931993961192021327246370451916382379918867087715186953246019742001919331765736261939833842552494053579646512036545654751839837011848172479517407592846088678377143519267809868573059422886411040283703511301622406084885844626224615670803708282490969942082741469868060144573869590645285767505512540141660987738389775059912888465476233180825444319670756044303528976960527409267415449120986568053649940826862069509803927125281127959359960426372852139836019372451237309101456666875996747309497946390835576355985867349472674231185752750788962055017049235488246566740098643822885745599675438414948680146448770677234446861934980997595821938151851984988414297300624441972472915456806272243134761784611072380506969764308611168371548467012403409352584192370786337537312435936468621053298597608124702376114002641687313991163415310395132691025242124287474065324765144710268760048509134561399985481056217411817540964723350476802517760493688831506355000404596892508421820445576666295806645551457877159024292067789478574871148157632040078716850588670238609862580830754568665496858380859664846731195230531002320193587324904117078448959964693380659039900966428602534875263264557071715947232199052311328934001607132419682567587445497586259610829670222925278270962034527968988920478597292617464057678605014582601455359303975106693193114169274637181662013793817476085055202101147981303757692571512483506867520385599691855029896779669547378569568465216456921308464035240340385222745150588823585306445453010562538552725604930193063377442168504394768643818426818645218290442070147851091878234935350205943540809119559572246201503975572477949755330437757894021212376366958231060861877282911751861365412264866527170120273691686564727467322404647642242022599140346546130493124716698282700419781201016371228634690908797537060078516724913686437533066481357965036610120049371960779755382946813077607419032118316894810575345010532494405461046434367607925049098505613852637561294220239808224257791463014806629886927114163326038966153283385304414748692961726525388329391131108511894379248636954184522319786632346559752403498967947740475108738953481478968354395950913340951785991626924186929697084891465035760284927467462462353149448030255953696940082301729791994028283952193336087217416846632739341591852840775183644790034235756579747396670667185840842651959541773120659818264180098262646624040331004423458514091521844139626749779545835312381438899772669293836517502663431273082558186926671618786872266815397953838657136320400665801613610780379079920490816624774381520048854043154500904772447129967358854912345909240906916138392658858438832584488120466544619882222837485663125143001705419362666188798008431129167572133866357642153451508251868119940699273390156389515028753089763360919674328420103193971865345388815520872298688874020202603853042077396733089962024273979181324615860553577511477429433406511842846441014910983059501059431307804020604636341251382025883335944753834315612194846527446704009864680888520591268091684826423662163022921372802705576053936423286429396735450247033787576314215149800037759243106179462867687668254117800592081085330889817182617757866062710032126665347388678012634213853384272687291771742750709327770012327827675585651412316695237162473193641175936860158922796390465172051899285101805222041179014627745154615771186449376756282883213065334239138143694799737441431758031033849635049003249829225914785016516172520133608189332101895567245728703957205649296015602889886368410885799510403268878769289070147328834133531145880025774868909339664386811943381522961584197682925622933492511265677745444604392604356830734087873989567439633337346209660196562820297175870701705779613687935515985443776035562671106956470885730278465405616536254656307370041975818826200320136508423239421175997108178479270125839181512964629001362099350919881109813789609371442287996607803121697194018036011493188690020287617986667699860794054002531058086480450032892382257891330948437726573603227331520567297805659081540986178017815382740714176310310288092823697304498031524464888217996701416709277528933988728928532626213893087195190244385646549794355093648477292669737578149503930400760549822509210057611110130063997943384787512322458685192047195714902721537803625489193037694995424325643100762114458162526776815507436496784640677983485520078066596235461202507977238957338925052115294486609287702835133431307788613441447546753009578829126312700031967241139396177258549449961021432500965493751555592009406455944070216649649114838453719471463547016969148315243783009418022432154922954839860083788867158272491194624285782262886959407109132283776651991692374184058526350637356928644914454352315543630990024439399046136033590455427415954762927807429497342934154229653251697156660926756625507314356686823741506234294980370108902573067605669547739433230645619849120689196813144714778434351895713020528174115283236596981494441064430372089244479937421335742834113811090978574426301396469236746449237875904999886826679600924404689837097534737088488311803620840761696853459249047631877230283969058428638779065386793182130081308801391396306715681427122896703277471786302812784146826985991439844738471751566444603852961548563177720821881832428577841137303712723174296530235076962185902573744300390572439898721497895530080826766573635556052232407675106392105374765205802335803011028990618295561019503978778731907031741357298633641644385838012116536585334446239233158299371208441190690732761579454290638640441060613700011248650697624067929858666409479479364062688487065897712038475055664416189254444482551555461466085265323864830447127615999231007111510074808032851458527176502700319885030150073901226689460565373934233906679217042298462233099636893387442657853111889784535922661157304764778197623407510360703110489091026248235169187173163693524311411665116555072594930699624595039999783979412890086438141475627007991764857994215341197194571813245586976846335113198836343610674069017917057439557905882830495301644795903170166126475238184844980981693762015574201503597695733767198254146636436529585577305677410318897823090248532940506722397880818349579643857843462244846990848768603901741613969321693624042524184039725469323389092853478922182305216816767356061798111827916481792848684148706310012154262694226212746834941538787918858469129614932622885919519049109708373436472580795724222661597202209728985079835818039981170421463559270311750545385719524093554489858701719239492783385782657851339194944859551949356579786520729349373453893830086272570051834676905471985492396917461785485348599257811851818756986246810008951284655196603400722966054808650395981637516441645789285531550594387464095663308395147900437181408502653154246934499840153311877512149959948364753805281083784473423708799496939398934535995254158258059381954366686222807557827964825661983878867209310185894202074749454673781110230362514132173511026476992685641596420728922651770268711681960524516496612097013692216358714376043838098120809330193583287606689931693675100971374398488487963042436174582141994598023928340743667142790227519634448437826584473891970292461361990406357729090345756179000139257161343461170034675010037612608728663291836226631056664449845219780918575543022328816251875094048393668281472844104562304596987902987324583102062462368232449480989803203361809037425449753026696547554828003725473074791293078360632616642181816345018828499374627427200764464932644486367632992958853812694599629397546815476341629391967575241821080159881275693286831761048992035199704241362132064198962671856593431987148939753165209735256638520056391389220170864847201695604391058577297273218517763890326991517660351221090549164454747955720153824910921540561836953813577615269598657779602806356296189699122501874730430716303857365494437517966984104374685290243427617325765422511692749246843300469627048420343693354953978723583147847966437293398318006283134359153644158768929114967248901403314651643359622513683650573075284108600908753745200308748472961570006803999989504073907658699387888145553138784284706628726731955661837647021494655739923705899289515381822069231890800393769376499218595485071074906440326307442281535392919876366276020775989489708416722205093635703965309098375835907663761805663393829227581445491256993260039919103003392671364016638370244520042464239120859912977431148094431912103797062664305008713742848749817933654441595978671108934102136997065070189251060243246500712509319402566438680988269968742716390951283115101091211956893276053227511055270785178598274449584513710721042307687607756929016449052532048314278823493213439247009270555237752814403722939509273857218888009327858786485461904588735230983989829656108930170465863520110836615139464308289447472302839339980346504670274876619573015260310930760000484096748902782405627090453754198225509985865616082424342285830464952828415314880493092140008129511270020782378029655997397060453573661099940582288501189199779544527533035409931038792251295117386941112335077698628971658898297587578159300548279200195022017171045448649123408078973848694236597338487546703830845997391848726537969047464495794802508817219029161573015363162727870411857933659846813703570254700932225446058346995873014620139389452905891115854149319649385513937071377848887806957535932740723044912456914676658935042735391056663325327258142770833634115814695016349663701559697781135004912472469339045150686287597893955696260273627599156143386239901447768186583648856683243481257113319350968018270533836625557705550300692001298026558989683883277109548186582055498091125505904213308808239831456350101365515240912550432067364388636263353686379635588540592613986297324189687324609376452482519072605959499000857402238383342378233359608692069901332245334645295496325589069257873967715148991873897349767800533457865446850560575880825520338970884842781421438147776374513084505946182094116999055765602118373239679997490694921054972591966363402953564306914097036618857927588312456292455175687219913920571457908616906452454948849271196471532740196831244250650623711170796260693638906881927255351102652743397979542304308618174707314085650798375931294559227953150471315993881817811564769803388079308492295359217999271919409269325652970344021580724098798024855272827985240817105356556937114644240846832715044724506579616193144025889397478937745385548965191196054987779427179558216774405797913391029608289985242378941763790998143806259877126427011607180928939570999638130898947023029261065505129602876766673423811717257294306374745054191406837278193647493543931263368559654116647847234453986710529669665538364325946418532466398348255290239238649327044297527745027060929231321911104683600022496146946462895757534027909542339814910355233547833846478176601864131763028248146489303269031625699912597754645207255861171271117498786914602353315027088868204058584798421907724311680334673395524733761891425163611255932879473387110352117641320311035859679326315995641854797666160729773486873345459681966229927058280817801855298413082475510167641378294288825259564450827124856368456152115190939975982684639366224590171282500027572315879207129730747036882395299949785161834469340747175268539522574427089205567867329420507749477739099263064130157339198761185135619526782101979227658167447064254180145144696177847921431690014533833070098261265014647630940572083429353699610286866460303603979651174468098534042405435320482084770430564280306699609541695207801931028359063654266366682583344821198336251673993247444772842790584075409618839617292331721245733472019254451387990378495733038510409855571556314610475148446665621354813806467343721106575757220696159152658183835819414237522031623728562521787734755044800874287354721722873079908660704518872920821942719408902182152347890938471125089718954948207083201051275807847687673954271045889768519179729326957347452159992580425582877308841116113197718379884607265906315148052632823410551599112103776574446840113896579201171916879599531335807092203322602692959471065675619392506119311160126887465198316266691500297533433757023591589863514755787270382950490117683749386570360426488516190267846762678882700915023885733280909837590291428046961760047800914382804569721979877662600703028134133373027777763008219228307000214437869822713844306220329509775594137320509160728063929679734937294547649106392115791600253290569731673112561240079637164928193382485202465224072624780450064599971690296590491002250860363207397203405234803077235837605899983856463027800915366339179367714437597130818643919813299859576897523155035816134590883636777552660309062056907670876283421409916077509824021610931309671047604407093373768121530235729457857679555209882183500335732929248169108778017597918188104280292720762201472669279307791215948155978573273938801683552588247451617348273078326133776220966254048808113557739674743869436507747804079658240934689659293897637755905463977274565587222241301227348269582911633079481554940343132059175126125423859118690436896377176859270782533881293760964244116969549538339905391632135232524425217220368720260947898197989787191625917124789229576111945777417333343065531324572937061751755341450364258541818490784510325135992098822806462120687586090372975408814510435483147580771125533197678106740283468424798306034247551023790470584411905620053514168406874568375743957918823181844879243927929249385803395086093944284823177744331946830925272467429525976780814608662340893041568996746350230716220917671800291680302903830124858744610532322198156302648262353715034120480998320040623176823543372886561594663367983268171509154955250442785685493831742003829339350834643504122579873178900586686623688270754675095918611687259949675697830199036055923459549618905106234040695310909668240170896891932870382661798200432793110910922463320139314897680427651990007023349911661928109624079305720370294100649382687722600670253440332891842177808348943648327430991342653750016107459633503920263290062085572576658512830907786851310253184927032367324614042647570063312192589290233200789450830206124757875398904434337725838540338683646349625718312848044440101976003126289155533882559976095355098321348928494812519874927788399654537733713950636433172884594029821073415963299004952279122867897346529687045683627335671817022166142695430698750519629934133901726403803507995014883482746555343782458194819572280887318269891895108859170760613277985088847938145172714591101325389655074191737144186285332143456783945562168888908682666590751129964039443063570533308212959634464293203416452797441486884106743733223197711261787673479695891708592217188650774235310670737431229614142153173010487865405848669155802974715654052222558442792380338543419966443999614653904173033327256709601790690632314084745630773817872055092727324457617387128103274307818423982573733319756294093480798041416840170177143172891336052264968741419437528448211103598409166412847557185190455228116738765109809463914583370779130316735176864529605933944537850493538374984280611991798151222493440272528626388025757833170074813026458879644172939502768088537469318361217928123582685487304841029406705414526815231505294197800498329349146361724073954610586817391060030913145782702690245881527035764437570597330613387199367942724479618768519810759509619935505610438671767746467203649524721382511716534014476439419287753526294294766547893742565012536151709363733891936676608892394704881265589887659229065956869565523847239853196105645216634384288675664206806761030025146776117130937497926613451983693631316867241073121269115656492879324146219338658166528793776115720543166677937222593576199934206750329279617789675756528126710362706842070563159249458496351327897629610052273192007482941119772558378697459923519426514754747245698060030961850508410549331899637850324091153234219988484556898199054071670791807303517918879829039464693418925259922644305474249444617096065006264138319651877826251081767135963665491655706913951466939986293759257193493887852046892344429351905024608755176079991314541115219376660164336030085259884390111488772903390962653484963942664185661680044813240857757897492111306092640853579951781374127007256400560795079901163846403039316968008293355509251483492010656180778092460917117722271885511429995788616229433285473546026029152413229259925373967753741121227093138160806018960230419331869491914923976868548052528063929358207825084082061940730625199546528444729009728083273513715953650238230004774164561755726424153711386575895206008985604361011785203275648353739151367933589524371000947631557093768394313331422879399925535842698120344723431584634620362135188229298491845990868177796884489794747383362788403551381366876037836194250297063239169768903648463742302576115910599958018636988597057904517012746978675231265857873685550983315857368499767075227428380544873859444265559010036103054289381625851168666775984950319714765228094840370270830422856599918564585956690562508698950195678340500842130360402009305241739937894485506443264295842599232650722311393568430729813473530372696228697137689209283585054011817511579501577360846383571830582951404636401048087730110833314789102714323453045322877441968013997566741690798731504500120986265258453885873467441310828140689885816501640665495641121316069171351766273343137255031134942159158803883344132955277667998763141110197427699000191771924787708525987585896632717325299462847264497096824458687193178154209219054961647028094813371246578600915730706444112622607716268022329720126126766512333814505450339265851536274537247632097421131977870368249088965415577008513743919700143304582243697610222227727027101702922317930945309329409221406629564882945894793011580438371104845922922208301095398994364858910207956726576390166100414404057006919408042043432677024875324031867479389619011984004588068191468842534947686369669953582205292091035761976028159330401067584201979210714157136951311560224733682914535014486959378338360106118340104356320285273787629549858060372608653006521699082291898663648332975704429226615561109339539393454436187640339200600020334815873295646640862233806006684085857345973405656097714612105239961114488483649185164411805443140637884994662254113181271781423116362865896956971535622608777767047944239015055684319165723156170008087106769964895025735782129763991332999836854210182336728321837408459395400036869421792044358318975825139643195489404406624840096964183870366156414360293588870165965997858520666961060682855488506448485529790962616680217664487727835008470217943158081552326824922860700372904770429086907592850837752981823953627898073658709305130858858547769016711332554690930468199864301296366528924704058245422972596975525066534912691809345025219156080703184319871399381104736310057641682276717226927096256975073676452831873956885717530036559823056055084420348473901106284597218055198583174183869796081329741040586060141563596355007374791345958548549252233090148205715028728296913823259689374349499043780794303865462912411924659754971379677662723868374539481004759354433498783371901167870726574228812609387454076019157497551705057060904617973213107290383321698084193033586957100222594216999601508737552302597401675968218512165307443443066301098918855428271623777982170007206799030059050692923876349101481195636627251250206645976589158178937757170430501917038808133121653395591252610907781176722537665866944642427035871178101789461850194090315179168970026130410018178487678222833422340290099518172928108216987314698016362142559975989703602510034987132472938067551222362279860604922481574951852462958986514554942722319424840745628254639397657277627596262715838494238512137850867896387546772355926575209011987360338548467984780951010048658323759376300879081740317776015168189666952439127708301397219131577431705713634026192379389705742253971106739015319191812913008435840497441413437421569884567574467930994226664988726062146421665607527464026936021524309937770142935543429061296139352118412783502712187972995956972895976789428844995430735166552214212283620660589668256672100111139809265301845103507246409076964799184991350910320319067676156365156973408239162822236305107934717833370983445407084050293364310346757645365661109080599780684664690865460813597671108050576567333323701665890832783604197104608312808169563930210156657695618019696379714029740050058180864441555310032701209097450367996229247207004238938745615982566257757457496534507203544951154212732917177331148308801036880759106183802927823314702827790772329109336594490180359957211558762740686358373829995222308543777403688143883923646546487302833291821531100064546582849922497703638058534428688337681347281477815347606019749976855865774508384673827674347591222316749987916485662022644966363056310965832920493701866099564616529958727459853515060592552946752266441161848157725787970697996962802255225506855125029873434434947292198796770856543815509408001381955420031470420388685670664686835294629647996565276127242523184640552392226286705321508841861250346082322742747645733509689849504857246076394308913431160420605545260327375459350772706329134625219083411329514439728798019671426751083165299114550530176043960042352539008230049377552005478019138845498611112169629966763863580487945851878744801680095322692438275410160579473743507178253941330584709052666125927606533364022572626325243734637131937682285837572194112991691715021864539848435972272607842484503890325186098654111277716737889031424179181569532789593157739681151053683113792219620321092889496409342265695047761202080658766375555590521214999791015015770637913394463175931417789941134722004681075769978357743277102432131133969273658332020582658124447592209520613387055926466285852075968839549465531721843594415437621268718936017781924942304732763235167439689684769505287497948254910698092311037187514544395900327834434593152587353693641828034589929220975988237102747913230847843876319793455329810824387805294158527325951884724461689005558079945840323489572481671131874917295855064929231237075986132861766557497340247861310981897194439122357180816855356571055059421450049736208621057633383602664269079966222261089436157711385010581970026376725171089593619436825503673936511875839489379203920221671435651317739083177006958713869835633177012139312564307920292095822732821549848647560349898532694149859792888847550621086504182297999904711443018641952342265276919410665488788804134510320077649943837844849078974864750904577868283932273445244302338223171099218927052007477982461036477575594902021282833277713279494861262622376846877448551254535280768209083873828714810703442321062333181125987067113069332862604633705314913676019894651069153428697011826438199804933549806746582130140480385810995644855002476027889131035007178814468240206175077703336120570869131667593590522533578008516764690228906502921072033622292945236772241717394606219471040381912946341976541236452385418434885683142777038277955658956725886575445028619985649272256101319362131470504400729101555892157752099456917032252164550246137262720359273836397977353893817743635010948218165643318998838244798985590152563298108279444089995687055829004211614083500631966382563297729907034381262563097016645152225520878255923217305002021201156169815711501556914749796558947591938043423110078724744431556632781868496494825795022526370510364693655506319887449224370030344944154068802186865687044177413322591793814685171962138151581092018295530939448563997637864913054741547031567902388704519757184990456580047147045058531322601217766992661235912287217477013396002558217588613667256352728560694149656852588043897860896318744411925146183432703928514694227789966477487951088551517888359407731370807575090445475466590980432589494357998274734688372723065468881021756022248351017464007209346465041813066066880492256014658048963723819600783802648841595685316400955385936467065193092139031192775124252521235382052289938029241517100639359756310141191702867027693171236239321781888864843924704510315139079457522632954722734085525530962996080631359884280992985585767835386577790204587320267821646580956153411539194699467425285201826250531036607015775575446172166189378327442144430476254690484787948351713368745634494592792080469064573032441480245077300749965711791287535017366566545005726329724800563545700945900778951344783384801892230276028258978999005828183543652554889398109246719815597961292427610209956670985005248510474238711413347872222509512831897155754375726349339720223941326462247614626458243352159663844365175354370634589267867880777597842761216167026335231298693653225695970373210203920124559746845060699551103983659721278818574552950019110930643262487380920513201787653470459028715206843266500393479520844426713947326281859241637139256519346242607507713716207904972081773235655480139340186669336129352155973431939949035014238117645166039504765448328736816562483096470659748091534277565755193053926694630217803271896371805418849558662723606341796890209547008668183875229862627263499673338718481016960051143598981283232349939282733586177588490339954513793500658404362854211565971748459446788707529385087398288632943593943056983477909476610001132177351068797936181386546893719510518600929436098726299169350165805670816752843796488077059989956032612880713207309952684150552531007830089821985615491032783024628727437087764285577129808658501533918018223218850111231951880672148589312879478845847661238099419559668490496669185522133362138253065455959027578144550757663065398128436375455221628519289078207977627528289095759350368401296285779486178010988792638627616421679901231912623731551036915412779803352224906929329024935840858201281431058990170859659040067812533421282754326053742691203956459164436178966993100354079441820386324341745082909274205815459149749941744950108497385353003522524012639437150763662345970182890065447372130648549406161472077959587575277771074920349013359397151943472686044561709306500808464056072122398001295300340616837326238958850616460118743386761183674539772442644035799500122950800495840601974302849000132457110821109693851135761548823825803622987019106633527412420076859656866002290613950317157484548498387256975299735922748569430053115478610088104145349050163680412789076767609790919855200242416360838803601807081348154464862790176918021110375877905555332122625891019304081488387622510187307651720349791753891779507220939003088127873513840881478777875063874453744286262583711445831180330518741311700512521221037927985436119931424382064021298265498279462612322967159440216930437980503719251970404236769624757153257351576195662436325859526936188006997814542287582810005418835489509423722553545419733429654600344486801186412159351353070989128830884544220903737653459112337417580250916983630919967191149499089731699458248774940674641148961006263426552599572418111285917025513442433755211508893218336091544573070581839965642457730554892994196879329525216301282007479125038775438308350055055522935100627190885050693353623575018246320126809313678672581138260035102972250875269579073067563407977720050720013121697915568685324271014120945585863800242299949827220899875085405708613739392854158734140331739512547043453721924342938531859065268217030959020101430144790524836676785469790355079949530845245670525761000581855390271279558641227790026977559008208200377218509174721989729729267723426919201071485219648685702379198199319135199500893694730433501849734625529308206317682851887633161208351155649533551659706341352681145226040353183840010646359201271813928371218842912179788806701664705202197505676309083466696862808006943782076244562088701588001250157639015326150718890945651254896802904610176937293743295355394714177404848217174562243575002442020507731310505169483523387330436025223631549120149827998788157561553095516360504251676108373507690221231019655333479880793253486090343235486556330138263604231104753259710704554265355856248811236125284885422628388351192602239669270952906109297975489895836360105351612566468879122593463606908022092283159613115779381410847140917550632176522510600153954801007930480255400680433464362553441693239540880575428792931795987368636913206562157329513640549223820872273686247063441678579494387241512057110842771546329961523197428402651608603488056290429599760066694711846394359427127146078956204311095074396613203257790779024452777911727006582872261644387480497143380667283201846377819432373659719239135083020267439501111974519580163077361824343389154815232111760878235142490068205776478769400403426175899364905074079109324337901528809199641514800962158471001221853176429863350152224753579727476820289374039147448418277940782057947851481218399056247002431263182134792522555608971779190155039399204589382782219071705415588539874283990053200420815137439496570126464387418162791629639321793835604966221337672079157584805130631426407736247062373296759740607662708686552248172355888552102545928807967594903659636219425192586096388963029751076414112150142633075911549892165080464120355190830007810360350483326046949887287462914959641733144902022893166534889502682473152571501753763215355878757640191761180120469434545781025108704884234740920814373415603221887486359628830744924535557462501678234717615097716929832261307707001191412737820998607700520341124893693600922457789373264638198541608993444635071438560348375735143207544316374503671641476803055968520931495686141079287513361142269142242764761150976788815476238017083057322468533806099843943493646216867143677008401888463766788226029796764409856791979442092213480832183312662990976018212722280948991205164041453168812034354179441048093900115149446689572099483806225697198581912087047801170826278740017549968731628979716490247887415968790772726529374459745094627234589167631879211950906960335049054739779479730918915521529305928410415134677281380837891797264173229967681126049880652098679836479483062601870430667465899376125062071841239583548508781199002909561273747882748215911170293001711927791985447145019479112547889282571996944468459226740456989996529421337860756064233622296332082727230479783890403923637891106394046217450191510425121023304231775403676610040958919665952709849189068791493004937443891764112092454479652263388518002437106330699781915696761808545718110747826628358823707434238956980621636607955038941715608320881624022051145898195834363085809080773612103240498777886435461537365499473989830229957461133594334512664971491116635832402750841636252060242106712925162335151983590963282811837651783996374098906478523311249560817888298212893234480867114225449337568561528758718132426593550910871089960909140622139300395496651165464731016586034407927077653109155333895105235871319743407332531479352942789013243295670976976254799150335858822971517010182038563801048628252155097947326886302312637476591750933058201654965874152163867042929630653845629937132857873633502899581811615693790376490230411088838387780957405000271789731971198402900851625210752078628703497999171898040264328583118703232248922513444540775196543947072639195204473005313533843651347169029168909384958398736246486877966319250227546163227036840827559916237168924969822508593745912147231547251385509626205278223795158571609529736301579650205083288142323880079054042700191151399347258312860187853839860985002659408872239338864234440394632392876784310073616208821404415972387121544595419055442760605495658806060432694503744101661518940335313925272325621519725014839432765846688178867968292833448760998112903031254324634536482233183460729624159159522179341727517053300515474635565757729062081044115403247163470578881181228394643577892075205421117522547596977508716158767934764901669171986034653951319936558207366450301426072820965644789430679326333942347319356880296209443612880651223427316007007650834024520661457752209908631573980802549750486469337623982468233973722800143538824993180308607875217550160269956797923817913600199362585574643049197920180044507791721212898861604329620528046502835636796428132798902222045429539716747230957852950952046233494620789075732251432529734522546083266552423366324419429012247330002619158556623499734038955582002770588138784758472319699027233563901052626197509174706061772872618302370617277200872780652523824121840154161907990450889299880238603828219013860315283420760643475519635975960490647178278510345977296765295046412453025650583394012828788503884168154539249765402432238759143530945468453820142917124608192250768237558626924411707159038951080450198167349406387357801702364505472982522552825007204242823962940383989319646699881425441478316102993807466984752324586184198571216806927096649423221312609496009356613388050323025817329073037406533769846982277997694879379802951765895664220737751206336149052881823933846886522540612721571023044924175933399495816972404005772065343593593016420109213302882062348422492732298695880221366672361032824757979653302753314658526881023879519273156102164827195648691377837052458190785583299102889277257620918656452645644329556876332524976206517663359057714073314562560654140670503077389211139279487484850258037308651938120539403681026480420243854018346467062238150598963379514400733975608048073907903123344476570684023477229262458322792625332298531775748020934867204364661723345332182340107113312258989483464141586233614551769434191061417489765673405683661892072862149760624621618668295840819612954186752572443828942925584463922252017092251509124640572561603022440686632133410821235791142416856531526744042537402284642058272456454283652001152914687237128163147854318734810597591429551517491958578775698964830232093512526250223086632041642276582606605522795459738419917233787896465482638024627767878405148240204645242498565471793429035686099559102339116695823007131148444735354372089468301779548663659293467612379358083133183027309030877696718773563751068378013742416041076520005552779401616722366960015897413379742490043501095360365456747345781357336312165947695941266243825739840348698494658559514530620363706816840194492158480586936576499669706830962935873854758156317708434870250881546693124814007744678211614358641248020748310092088495569986804096613805838907220141442213926885180996344211009172814919913608714715254853219452463968670273815393085625827809336783973914262234067396881112669416264803747707540096545357201250099110290740208368021461830334841445670176370110725583558816146705273898783001007296458735374392414639288453707760718985408174703221493123957159400017157865795257993338456391870739382664572128196537371346745977041014539346136183886995940950139742084604779607801434322541595596023405077025442726027698008181594339629474611266706511196489821902939933799047342487203361045053066558591377318604735648065528552937833017155963003674029610004171658303944811295674609021760974821832973512783475798649826985166657671558667426731528858934796485201241143520533712606805088327960035915765422457395884052492449670318097184206795273948235939911406702527548719094274040935728025911639813090854927571088286620135548046105207661648841515958090052118567855979506545941077866141473945454137497356741695603901896499293397863914735735676616588327626504422673847426220162773397924018087220798413875696697443792873783025284284489581522336745140545784520292163989028197494820060119942845451246072764086372371795326335267067356752360259818627770630248600730142564346209847038398819272165437249769887342515603441901372586362440784750864469427490358940359014812055155154070456467850972147176691156128966547652464447016341923142233032454787754727394506017124761527499399163600033187399473819772514621501901562560479689128261496217678893026475684157810035504946150580479070084531119257749093864325920560297728504298541611161869945094308351856225325192290634494662556413897481619301632796074675505299153232712210350553032723812626531853988789413479815926725724312984364109456575028625083063163528674324634769334678256353346993084518014266624559895352376684989373508507335622282135774851294021199842202629639321990657970009630927720276632924599194439204429904515043761141471141370777635761302110953803713079196762779060531896108227886189893285573747075828862590559925859952486475835966157004835790809805395024342699575080683022552941802925856503452273055413944229998742932740983769454745034360898420444229918339928120802675735395589009430482728716754942140713421235769841085979976934508083170363665393322162666661888957687961244414585686882148263084918217200399003020245817223839159951422400611410458400066859813259969475995464772250638945586235878139264261677481064111322626760409206629520302749339263952143622648483279606336610696656250049424651826452921069158185184026501191165234528814252171737809633974515987094535185411451385022044453978760163456270281610968199723451426090037182927240180835260407909090110286121049268770158023092637773758183846416210118663389906301305378771612279851331122513698697750226571032265637672406944928578611026117674457090325956630480114275097068949788456784870319301100400609134244219934964323086386640254701261659154936933025284076151322682153056560649958113519228696656794232611924714635378908537204097621331963874383921642119956337819171034204505527724946326615011266770118617244377503070544295506732913552603400467059930766171521697607533134640183295213833391072471054540522524049242300794825974126609359401080656580135628304746554758964539382497599506734564694990819860899167635710884302336402511494650139834140520793824820679720212115562248787416535582823742383469228327546172849356026755932368119561869740162835386359617739743121181035625057654645939990843730510896768577340726598987795590829488450436015717472290014440155793033614249705341013562487764079978177990265608311093440189289823309909680050314557073897190630636734916106553353645798012722810476638502509254475649040929613951766406495824608503801466175737478698046760790430628278592236475476656845378032514414074521208076649913377555651504297172279570023702603874799552201484543434360492895165673631928335009228759806184757691956282009104675372883973428954431263153921638195592562235328103811851275810921645525441577332880384314862169817023343658989763753520407600406523132004169226376875764396413435114976477476159529948818985049870457460235355888582937517695595886612550568426852152198557047527574351181721357672910059414821510940921297176316064145627688132121219070949925803974330378716623059177244581884557722769731478637861577196328607870274932587903109366346314563237729738471527820889207712602550956701425536243001974370933298802282817925203860200322493976290150257060307577523101888018489747523519336901633008248197261407145191095918100448240970956712681720093111586607487763729119067587688184996919780182564411652483134219786942885677647184886294771801579188910682201635728649644596903183795873349452895090475655387637571932236261549022970246104366300802573550114701163215379491064519796105063023262449887235371945160451914986048875357126094467027316459225666605181369987813506434743514639748918631988985719016119216062241559640700106473266019125964838193490217638958820598692921985537940917047599136729767633104465597931712556856252251198957889395723743532771559356927821887868093274847006487224575452691895536927007046560153643036482542582654799552470756198929759679902818818632581685120121081170630420556555380250525797985749889653665897882335004981646484081677759090546788749325029993239667998392687798847785101289743193611270134451326180124133156061208551144764868438913183262118954622017072266028790472105397546056535288142221010066160684682563955891635859803370550081589324768628390778550225608077006819066296679760527737046292228420448232606048477600672711595757187980933832891759480263968469922208382579956441813495947607946719961295320357724185719852022611315151322006631811117765904528549184097317261066317427051688493098085430859658872015585024884595659716660977336425061131244230629678777220856709973672920803995246904760802818299398126878902521531659120481777080644203187775430265976988043282321291463504906684888333249048239024911273941643200721194148131283592570428381516458600967873196570221847224262730574552984521494438711062883191217780548518536989049267507665156283205086035505885177200807086818638431271029254807158526091475843221487050817600071222850535306291530993954085132323901549451249500490613538893687804612460825905049164546440377833014950633219532968624521474641235796937161510201921970219071713709932984005262824597299883074031292314645444573691862948437648120830333424366253093931870209632977290964762165655687659838189132610716869974178637917293492632172418161949243521347905502191695108878986765766194064107269042329799096005383549184567308473647174792961970634189618092689745329407759016672200699913826829064496776527591272956017427101402948307870655776338013619741785822480981873604697111829957202304186025520574943165650964914141563864911159353935381326077539289861752136046555528670902741044582402630132402817070051873474429744014834079338290706291876364081082980362982766067238839183460059948349501291970856036924833314606986172763346470449607919572011611930983454743209590540799332883833546702103012387398885030727969486844378047265144394078845524120928506079869704835742041789487175291422915770475729597784652612339668166818159608577524159117562811656092297843061033949200245226180511654066731079724213870671909047862693562998815784754004932746160072156999917964795801234952012047438002669288186438168123587396440588699343990901012629790355913535881949766894498598317961956322798949340211959156339476648259950431310492159616745004932562073266118468212514637218945757387125090787485030586170000835655028679961500734920749044688217494241517049102898314833616523788351228605809766188405468072734883417456912496023386440877814410676962518669600803860325108451230612664487216268668586532360901798566257758557833861309623492536847674511339162451511448738137782200083554241091481249645180701964531926755781971990326566422790580459162965479370091666737343599239361613416610106331092785070806652716974954206254218481457230614389642072741309158774834207055503393793627718740166885494706019071771113314474577849359648459450404827086345719542041027146100380187093600660225710328921568578747905247102098690203168375105641469968609203060253263676880503967164318709196249897183391498024121783686247706493527048025038332267463860949782031930923766785748006811731468394887270389598006877214458970378733711443722688274129140160772605668283145646565241410492497284045476157558333270793224239339140887802794521510275193079117126657758164117032560445878291068581108900010796968711393992240830395820917775202421582341131261871941656001787539016261887619452750767970643798607094706355744646856096242363548246212217556715178381271717338364074623158559444715656789457495347176158459634668587356012626728948677864104079926206222403170241462087110576673315332834647131419754934973838442442922756576319810336458717217706820944565270801368707877774246019432882510504815481695917263620180179590774034590603299941067884708644185257601976170754365190899159324205350192170155962032575907438192478745444547369847800619223939459704187409092203075525585501214472533568300975319572682811569946856562217288616870948351756328167210794293526832867541971567198176372810996961145729752968355113643336849120049909597879842395380925483301787240846221300951478509244432981085015338070268735717202486560928232859890179577259274310258225165965873091205303904863432092580588612435236610038062987223788922701775032418142835044107850478604617006428060854545616591591811905345835219000390328172697919155373549682081019921376235926018251813852192775137337543442142957478580643302567896064592031569777663766522003596309273603207587541956585725483925189995153987383157170429086696991732057172478598395085458926434014198602137427166218432428337620251416616970190920590506007069044741193408589101762741489469553354765714505673733634892846403378689738903485166242473979446751442595628928716676997576130012385233204882425098718785608200063547137068846924013887873756958789325597942261580977507143106681271558158002486073140219354538047728827661639956214021504431214762957647733402664971104055562106333739625165508458534203769761679720021466190097175838943458900327165926794770815707838185732834739060264287884911544193073732873588851044429555292035515265221501606426340167992994104018044128463898237019944171811766185697149584456613976447269835363682714763663174153997725041209065895454921704380461449401059679993333071579985199626641998501845606657151965275609000008593205601711633411922950564305242460725679357125165228100359488342683153489283746046474103975613945482759298741311139724503746837740533786440160299365085435505319197664465447095965051505992461065810261372824121359979841550861247797733749879022446399081115462644005727033708306598475942424810379205804681214983235658437740558380257594795339245795721291940382974138060843255765290307216900922676527376899092458385500011703565192247724212901843955861449332265153872325666231927772370049465440366420305560271380906176604189474683315968825568412129277396393214658518856576397023458040151872485320422641745296227502339696903331555208778128250977244107699189496032704262692693211996581904100639497469408803035783933264680334221583282971359530384067533056953415502885273999825005837692692436448572288804777082976653487899984564217865041934663058574291719243422369781730150888079019120937623898539352175232242108717145630633305047216910574404761610970022499809962324340343585657388664770809314460971710111285423021647585697327321969785852554042886603516129150504485196991918317306084412031421853223607399382990298662648494580908786807266186585560099839723817414188563669857520991790435761923375710438948919368441238672426362872989802063502532239263683717158593557983163432089612838034112648518620969179379412041903865977789240720420173308583379845049686471387327458778212185848472943866874084475582987688681383469959134243627330893044082002817642287376854671501513862741726383977811203353708685645521726041007547234719441893925328294928468632400317244551928292038147115787767033635385152085857454851744209177871413885774986827654290776980361124723505417252439038879641092110063489390594026996721338304675350087651250906509673156901476586748354939442917419076937323354465337404872084536167698544571583318500619796799733913328687172139670417083209308231218933242867091455635255653941658793646790016203383150857940987115773869255669537766587102400591221937277008596500147083546646269304668399942185096022739609861598746512115200571460823700077391821086663360282932892714898404687044402603556998293503830838048189120561717025155545443535877464164876589394146172780463757056401463015607611914466251268409055795168703910626418129707215842723084560016848144477307431164566704164091098227876676158221595228290387726860833250498105434755456584103069295041209053157801069547517423317052799600479720159131901803319498284340745856716124300504992169353013076096134857834066657094237838560321279594607164870212363486003649826078749795194291629884807535435809094490573371533301100126222451534850273526182106033784229536908840275482107405007016172347138411319714541683383164042208439173579701022478436153127822057974199077753485323259867365073702196563464775691670480090182756034993692524376857146145851421315177372214271130397359123261341680567451327425484507199137598927377659137761498173045757761378956037863391209619339474900535329172308260483933455809373754755689096684456199029379095141472518432852142540091080942736867802197980129211845642327217418388105212231801547065304925927875320572389621228393622166349279184420983301952163274066251590500339847390114907674924825979829717930578431644428279818497434309581907540649535572152940072278299932306958734502851860470500298264402416200812514040317586827686658190116547005789600133527917443186099757051944160331610643259381190305882449636757597123804849711979209487493820077356114282420416004789976088002469438554510745219428359338481781721307245098199030595043626391149355892490736666570523610184339798864587749152108426394317133901086703990610352760031043587182568297878998007137535702898161436426711078331549729477721287415625012226379679430834263045251062849644694098253137728343013585548706722261284708774726963296614113915366478988635698685157657109685708558922508271043491590909161060551442814770943456619909190219177230095255963219205184527112701598089590281818188113665464647502197289799532395413175233484555840934267064705403944624413807766985670874753396322572676911139835820342026427389876535203191316463341106434421110151237387437893200040070200398354838638836939014041273919613622267974173386924088558351719287673552557896001299237258879735889606520209409028383975560720940296863086432678207421951764531268647649277639384313073334833941937697590841738964337787985692047797268136515048585713571144404400610155468981798265302683654592690506177919682665238085365993607547547277911453989597275437878030198241760425023596267368145110239674245573157084853841641442238631251099562227052782677104222725436464835822438859768185602444645445626457393441112098708693452154957681187164304172895818795031729609373975948429681812115544456151735785245165329183208664119111062722573340069190711409012199231192293742621749437806515694202999258137555462221932493722679884760479083289617851921542439675430374749744596862597692534608550929567340310209755861368547157284810103995828676522190348880487227195201614773580523126869847444224022002940641351198746654681897776785186906206858596681654967508455560734230022430654821527697210859932212571094250945941250661613225495598156376139662448449295457257730468660370828314219416568499363314400757915124073103943701614495646393622615167103741603276578279391437844420765494561350443416330578986919571448285642314205237569057159376883532832636238233704424326133580608007606374882306789010590313031208289766389934144451293730718077426817051967905589843249202893633807486299117623947597756797599324697673073601012101508585940992002059302698094756958674742782483838938532823734584603831005564968247055240588773444894100774743082566414602694241649139070099986416463292217607182431736183091027236820210021201238956048556096533502253183298960411334232823048491222862351353039248178011230263717640828654943909322355219537073596704266114354285596335098142432925621571051675410515048188856238066654605910855232591877161066097569901712186106398498618173552313444509443021585647662084593564491794336117756383285038513231541816339358335233710959177581622393611260521700730811577694561738485668169641610756106607245961927419383153756494516170063765856616099050088003854198137361159470758591100012232184327118139562484916807090750617944755296465883010830076621901453797227818258818950543253683919199881141016248947108468383879759006204922410662611497919959164428676191578296691754306844393774333483644631517407132867521999258248511429365897211365842989495620818245574878894745712559704693854499511136591697833267195067864725327466666954333305553273303370775800181890429252539245833645282881422527460213338351914793371856797848975980774955159957555977895283945733304213117111274804013747212039790330241322929758481538934257174747123107735042208929426154178592584740741376871096566738874336069787038394682113319694185377846949041810103014142867060206474749946528736568988151334695269505548100181464100394464873946354071418501173174837379491400912333619831278818263352548499625333216120382248698980995326516601779593467920062727762709234042546434269608027945970988142207218932734627334838765473478926512274610537517449450449539260683168515069018594744861843847011231490762235122366676985345561825373975961951498982021565662847110417009487858538482110391068430841773403293367299370426162170377489483295405323888230348535227756202863660769128934083632756031136221846200820924893802241937521517372975339956558423620848146541137881786860903815687910749193766766544264206847957071336880647193862608962746202569698413441078876059800805219293268128047204910690804789982131180682001759910635863281059827043503840862022979189386277600202270963080968423695258366147046179083841569042875079359025691457511272081881451259330548067898738078958871715947784689140270636072867444128150902797793549172808921698722979994376655923617933419056544684518595717831475661074660953566449862576732365984317300970775258672074509412468777708173735696698045675665582706242426177387222763025694677872395462020163625240102094695989761236789416720054077601281259253046305020280341233146192661559498287901546395095855331447831934904153672617479900111106866247443722638041484085096400977012601817676331148390324429390918625822332933564884712700162892167798828140810446326334669474067196540546576317594965984839546038536870373801297865029849364733504629732320277830451036650015802065776524345560036740070040296759542174695988124999010958441941272610917421089082721010138094725229320864700684829726911458890007264309363632241297013232440058096918099517827387387165851749783384220676119275743725678688320786349417932831521057230205662997085210122203873584296944725221422327121372214061125736850429133064846612243314751822738119238975907560125386855038600114260357676483340813946034381014797159581630262471715296438979140757515574927954336801693160278035205366068814376488637866669953957191978371410355585960187342784341861737388109028417677294992552518721597835002317239724838972280595987144944223541005793390476433641975288586980373159540644064331653081485604666014041752799946914962707637189784295955384794714869566446535715701766087103265397779699694231494818091416479206994716746714134616881239150469617692505892818364963656707337231076804927847122964887614784797340763346817557358969448492551890236398883035257401961179252366764496360078435307204915698068563756434738062635427480762568739214299487118304652986220131670927202113246173708107371233335472290045211256029564911311078885034727052367096349242229975942048382949740127899493232233632962582090955774183471107258041065887044492246202336492706576064745593057563315605319101293308104412867866662972416234210009438354544662247437800030771409293070345868354321302212904714047419548973047557923724659188517598729730057508895659387421613099069249422070698649364121428934618694070943352839958544277705099255424292509723956279906099600071971860854614238408832536080867247631407901745331917844675323073849036698682799838368748346474092218391206539200089264804147898453268472214020498824658015624188102950158786446252978999910548273011977191764840347135925441367267600058733156781066624455141762375337066594463283906937457242895123921399824811598909796929848449153054797916326788227658243890454098259968031509214909130990021120137489845511013068739391020974986252769316701215034580267940233044725023987424105858263825086813824300894012229730396517783089174665665334672598992241709729251156126514037892292596418439385144070990091498411351362515136879796760661462519152970736563568669560277497985112511129036431573033643417307958518836739604413360841627707670046742735265386441498101633006103257240535899683413772147541353390025557095954371234032403126973118964916537762642687379881394164068041172401441024362521013859865616418895977087392290428654455929014075570208198057835091271071839732267955633647466093751189572390269550902328043625878452920750360499050539044528569437652649017357385681118379810699088329697260041954109070697065913946583464085892958639802004973044807829411903548522716468420890585416855231963860598796981990140294847856889030571623029566269414551492640006035678981512053169009967580756515669778528985944908852565175053588607479108701458642367146844333075657501298851602967383529529765570086787094194032278804748418654229355887906215627617656410823003687858366506382175872019100087602911890492837235778819008427363669507590164875160597203104538838311483372622541118668995386587734178677026506248012655528006921887909229983358799714645576646264457072525754386959726899629804550858461396407837060395178048946671847440500918834449816187750548542113726571079077321759284183877906217949381061255223738799731543943044152920561531862211358324591549844488097332631299094624788717871587838615963236978764483498161892943058436410611425799852721080664081064964611293902797682317672060987121522706643541674192958928488599094194811315452015661333599624835083081178944712990313734920005263881753867069902996213352134785718347317983154314248501420934628990042482185249767247962791312266544553030930008893348995427878917301508305213663239568112456050496592706926993847441046835780982857153435727824349727821159060498230170427693341404723208223788642558014528366984690746770107493695937711858156756430226875286005443026647467270908886189918539274829243965314580929755554035753562361415556836190634210452070016841192958239675728255455341247106567633939001433673568738308345055615637715210228546995113195270936138946175483370033714004086805488360190051026307269800070864639200037871452040456091241824892429118567546193868434681639662514132912183108539530478804307562845355305696695318599196679332894871415329737025254728033341645890864267150013583427485865097797740459822817248579188477255120810467793567157561822625212652537799580899396532855858473804215953901574125910060281635073652156599228062807523141502237097430290802070273918028688681652364220063164598595546863774036114400465155879328798752904366057611343494497727418271756098479500484348737778994368699501694868895346020280449560809185545609546035600512751462347945965187320986930268690894179333309377788419476492068777982343614843364756547104446797424968923794161443198994803205737047688068886944576367683971671370889845603264923776198009367023860982883162871914911531240557815130766113463904910446713749025501375451311501891300000567041792771939011256482201419414613746312676743113558109116400142126425974887027820554692226597672471971891443346551793693796081098028422331862091087191729432709929010983738113772619307776168383500519298328323533619342984652735901074515214616011086740495075532262889354608153445825963800405744329449481538062683344852448607144444780306129598370087016080401290983156903136497635521767072067779780715563189764562382722780831419237475085773267559339153189681260074901759847983683754790701841965349938391142495540013875463790312730309885394547938634592774128462900652069179717905050336377413174241255318866202352261551444683441826596404995442076058556232074951032232082444986740274853007755084999466452907998202265421316410040526220373276012608925738103365710760417556696500123321014619177617830994054604769280728968002364465980823385766915176687840260548089571070178623651254296046680117488261191671539709662040762847691199886092860686519976693592222596325764474190271851746381993761488715985139898261301433093649696575729414776362204148495829006899738501470282030748377533693182158815617304887335920650937312024385258189741201804117901192005299021915543888657406304553081788166635227756512790948822021532190430018022241195900661187379859881243060216740952024056230050844062646547216825783212758521831749932580738639957818151621208782420167619985065142375483865115912324552677394023705111087709011041787594051913698662936569676345647201130684308251814617468785191940285787340561647536963647723253527390935979110790048214939899253670637678343040826725803967087477772996537885648833826701696395637038046817545679530955166740063677029104991651687675941663844107645461368565808214114271027755632372380842069705335947470186845989171485641163250805390451825355208793021754083000741538047442504080364485674007333708702615262184581082877694803106675385993947999740170641143004431139967820594288802954873944221402493064630238409932166669656388851398084789519244584113331347143907804539650129705097950220887056797768602678623271562671126904817934857506312334776275220423682670752402141490011163595249785360909398354324849094343607078475975028962910499477350518793716323322307831458752384447699943558555732125942351499400694565754624276850970223725299636625268395117639980131585926653897516081190954425882221544363799353714613121244498536369214708603274377638852060397436431194875838572766767763648071180230184879059663298639203864736099734016288496439948945652670125049844996016269568210919281219483801555040750730335722043368307170275062771467038282020977949737467779590600873146254926273362119420365524232508110346551268128446073384472489970986291821002584458043531620470121542528760152774684556717609515573846311009755195248153474183850542276844068171431629770459363486041292563746002650751176639342910992478719677154924727848155291065920143403605718474764232300609186095294242980702902482900725787756274237450158794908037187074440725761648920565797962574288835198031568775605083784115330085815052186873929207511142235327741968796928834920875019269741949903842025293248803184297270145779977313456121560478066552165603072811613664364180206341245670698506276842187112599632229351238382845397954273594903913063944599897182053732237564998148599107358663975931572907588554243354045706481478156528695117438484196201815006081640816759776105028604216208277694520631413898661412891375217008742086794017080865785912424122642865723142433206754294718073852001006868438414719956540357050715192573524647398789110960700325001725627246150434010688412910307380218052380483961671269722111188638495462798414307265799092075412674685561544000507550398627672227020823266397962878885956977754545299142651856806243538449680304818238640177600392782251610974990883195983706760338541795450045594340677954617617983357704265746518977265640737931824981497691852615748201684039754117486674771899018356511493474374427699034538057487211257666175613815622513950828156840327257262162174703285577611830537920763139679390020696968173772624039345769013274724155407029944371867137701168753677119466499578630523744056285678512744045539209594929551842940684379486849130165186840832147103421750372355388062453565709386328729308905954783319214012831833514276035327256016038076383675051928730238598817206261751990830697884776103064031532644149635458075823696937690634036126573277626565236376493715913257527289639606947796045395852808017277839026584656141920363847300653106445903692459227077656250498402828017022630015320247863546862686207847399332231944366167076338511587657110803181347202821373776940723118084672394262119341524126377683413606472918101548729341115283751770463862286623652256712757061554319138205166007417462788796936302150431396185704691205858904455637980928965656222615928506261810364136858445044496090092100295686733706571478169128739225005093027426792402471049873160645926659144597761238600463316530056623263860349086354188192780608024120477457207945504314659115297688855876270490423515187796900130730869777199356687246942113771095868248157701574936285509157573435459656441620314512461134419442764209487495582908062394962946529777527840977857034449892962681892275537264019401870657582423626678759257682802481393287046470797913079229308079557498969087971874381192426354051042111602606778484110427875686343685818548948826066818608158879413410662086706722801054538665102795301265743883444285642861924950570728120181699467886808366805223920486406145580242532849940323633863716743803127885834023634969982584353250459706162460587094059804856117916354332800786737794337033901520264481821812800457921313713322304309521861643435646373152628110063752004204382984624227143019986523131185563369836091665683952947853583529257599585504548434380495316823479712933891457930024726770020450440415634110873370910710963909197706847040481412147485424799297695187376011330507203662811230504468243760360865277003864764390686652215188386037502831889431460506448146317412453311366693875217607055750304072070236915494963324016001481520832660303471294224273550491848712033780882804403097811494104307664506009507515862830751044665115676478264963526757910439445444620287833786274541182768045392227639601554224384429749897008541889894709152444831069877902263119573374363803751060637457095886081088014022336354495253688672703802919573967924539998514879708421350299555885726618200500123567678526412838176949059327432151621038015162569240150974301199405871752609640268403601080742632704011275504509084667314644453615269558478541955347962569616234929675264215711872670291791970896446315619849108039032274921148805313774370870433802017143002282029604007273954474994640531887281980518385378292052576373323343274713252710427265258436671130635031369837337833857974844146393131319747659533106099788253910670030113181396763943655746816949440658320800264456208354528644105235112062814028855596750889493529847840094916726440807585001704034258264886986048691254050573834609049237233733663881442973356356997945707812024238099584017542831182905720876822491992909343423469470211834361207271415373345410991706744726378817109502095859934661287776664337217751700721600999997094432150020330720564066656532387029128459401204921229762484479998414039512352118383250755925531137733150007534312236233075166790317005305571461015692751084922049342934253926639822676256936510582867197087801439602804357666045343663412677100575034263955293723445706045304233826162159270802910064661482879577254836631436325731373193971317532441747665129978682005254226878424421205550975916127528872336818564532671625118244831009287821161473614054966572386231578777357365410243671339656263259230011281931082144274002093509026113753329606865517311806583690435773266180856054580878073158229493851711397816376277352742442253709026431310946902822019811494176355939393591584199893075245987581075558168813459042821118072955671271614455063151038595509985695434562449509069681577061475222029336583813727302019651329402059690203050780290495482426909894471005784490338139429503537015519818513431012930577492284785150207713340512543756461779408651082333558699906263086503115209100551786718760744608745470021616960373464295130617525644984372042629223156598061490957959144873864293923617231367847990155801922172452084820436311728797612103774042819371027677514750880133062362437000047260838695831144033272460111795041922475772612993843301471909189568624667309340393785685122262351641609945064654747521999988235009415649837278078830521314363458988621840024121754935898808122624263043033454521239870434597492285076937559359024899299697020302248030416122439467684159438071528097816360966899661730812469138633073352302931107039087805732451668751567551166230878002562019132527983581908805653402278692132816231944684057408347303587487562016518832424984871802293055939686199554698402076563238087019872508748684721703171426004240223690636178663359943054847832246549582279138053622841769098364852114110139486857554367809158380723549529773137087412999878955286644265376328976809452879390266136402182445026716928324270591873548921078919991242096518340039995424165409752392259600353904682511439382466485894098477588915471393992086383276902920229767757341438288989456555882047849121759955357394835962220343476473637959785686840633994924991489336346148820231844492140578487782233493678303244431107755449231683246632148186923738829800679730209591169415489615792906911738716760879995137962924278798203784826447621419442067647497548550051274352930035109212509887829894530356617228879916664873858153259918971357945893030949633958868149986101615625878309101102457060291751736874638568709425167045725138198018760293010074382598974745051785290912384797433532134852550529247405517640803173717712866507523715790757873224908957162018117997947388176116384210505353728658723180529962847473837804521703394508693382627261477226723003478911111660694047815608774617401710818085193040292767590193594334216240388343677012347887341593056711959122057832336211322055416124490185540576469247547672032767329772700796026303511415312596691475381051463507873359114845443897453577199210935660798247009539547037929353243512327162066071686611919319991839403178164776505407680902110850738753969705311347299639338427322571372845571768454733319553032870249840482788200581779498610625275345940865972937597472920817887007658330292867152187506450928495300659004824236210773053987150923427919281775686163835949623780073132964621014652156346091364667054914212473952625379989552103359608727884488714633769807141252348262796161524357568290767301855400700930778969890840766487474306354630906000278698551473222895532045546468696765993942927432480067455288744470155494962381587523662542487634928610592170119496652308716779608634155386846786213744074443863829176262007683610342790703475766548320102198067085544987309980995753049674266034688061889481559643483727191876260103746604158979805194083716255214676930015708451705414461657517524761942916616347481066342608359770163174682067865131242397891669631658199889391836751827809380258760917727097291231079411610038932373107378201643028222306431104735153829183846303587413593869676526783217287569531771762991137189979965769537096220096480801620539875509710761972743963631637615113904647494699951842864220909503199793910712727748935096128317453181055042497324114963583269121715982568483978132450889945122916040945765453082101828778022005484979631549069013378750654217244121856434235372799839770205587641802566054961996651634149272990029349096483677045401036441790925522301424152564800249792134155576605354613512335876255870235756536234639500703741909838682024128637265903160545661796443753200042432447868410713727136210587404635641260166181992992651020008283578139788891838766814931208969626857348099783184851876759380762172131141634791458190461533394507920229348938792369414913349784292738169560054481197144226085717622353580448499124752969819763533240241336786431936495939021716882010136879947976762215648553936346450343276331967510960530891606642312730722519354348369137576117262606099544429488810319609044316669726149976823612479099867638758845986827190748261719996281464736576670891224945350271230063487696980554119261279981543229693409235220306229048259729053725017759083685629308191282340973807345789423694094179827006383369079160917767097182103692465950109042939088269617053800070133582459018443406811437772180509357319124372036915429162472882268012425014141059021642039683996445196652668131270970125389655181879841166873677866928791834979622699682438268362683944002793636759809657436867411096796869187583148220508766583509345251548089927504314855349452821743016239982672016689989399072684158826416845922391840442620844383885185910796121430802321847407283226989765216919429671112548304912610860943692821774910516763056136652969822652368391063812531504378697764241369920283426149171783506191036847193699221031079166309667317998812361128721807867842080762266431142494662897105112258932342354289555455820970662818147356180175235541042848661153744336045248640003677983886797086038171771391272869294649076683558586791350471946100476807449834849289389359960872180239739295355881494110458975509453773524992081431683016080075623411046869479527062126654332680746757039081153385257502818463699372652613074636998146266270179988454028543338570806435510572580387674185232743197598091683554708763687832844053004693685138784373326263103438348916392654915214654676339913752158423037344069848949999009714276247543835753203870471432099867601250588337449201279420458603569425402926906098741650769605046860694840720302889230664176918524860320985904424278292386826351391520434648552546051487432354600560031112968868423717821796835306129992140406017060577553970806392226749632108577762597739497959274772149708299782469187714870732552683197880978744268436829424401941221786023188164322790896945119320849495958431547784248044336785141965533056973249376990743985610845794242968266945187382151564498460938358014945690571179373261462515524095347806625438470232140842254621346965850501509900981481500359242689908471359876301619260034331045231386870266535103984445159088391541968611941377665602958311843950556458142755558862240903315097226360340004757596152055611180103632125828165229011190077808487360214267331677795772731879205349595382406764709786127627532480185871903576065293381151986341717117788557527612322262203602529195468874046824771147210761474360059957887938428651235950482737725548804420494904655497650631636113123788007954390815677263226323895372202923929879696700289907463009141012667787946434759027392663087035505047197563924831890019936129275198509805869695285192946505637562658699936025805081092271568489178788440089393173414054576066519559436159996284576255723600375995367301625431665895685416757131228240944080773469612014908779735455390541395343287324390068751552064472961400156671483370080459790292845208991049289199725193589894036976246570080641611444518833517600229635147116651896228985466546288679972465657038187097368282026512616296321834081936068593400780886150394842828150613022435849443622386681532780144113309961427260899180880504899004423376850185451543600539040319032741716860728103425839086158158821134090725100235390186370560302174699525530181146328559901599891221720476978001228655509150386176434270556183362053859838698706077883984710388941888427558647306548162926376284690530931522458254757808107327014923973724265191011619498618543086801521051521798645330493847762064908360269978152830075277929043983099916158481931560065123705213597592789221049285961927748618582498301720294490734561555504942557482165296754994023741222449176663430168395706859370730206722625370710285219147418822549207714814268065827910265674033427317431654196949990053386024344612817651412630700640183297301686251439035547463878151424425502907430260515369232650990220941808060959578084941432400281147939843549679237115180260949900190787827221720352236099200343225732372718965864779530658217637488665444070425749221347067293114117751250959678696720228025520472501922762701955576023596950869691852821875236400034961321073314150890040059066355240986438251063987079016043507571223152107830257057713502490169133421905910836836854907321730034374604228331416769906243112788879406532416895285185131908195602421291621737750877180541523837029104001993873319279295441337889119136606721903435844298549740994782431115582279556887739650312979855977434675827828233596450382329741572896183703606334186436814577589870772656948122252750300850436498033090510202026212357507117573638181058219618716568085680620996827896252040523281294480098747422320347317804323220091998345717109190545645163485886686137128295923821736571367575562130808555137080322888011461948469252544833226283287809091643952268104044310380210723880549790319844816052669753445705204219845898179234409899848006279185885990836841028777729223254545103793174582596758161056658114008782783528371168385643084416233767703876204407363299747284784187618808006952068479949622051011988789282236631494237402481259950717479625815983669366154217875593451607569793550869758071529324873642330776912092010768465528963415719235682929812922475125599711517411971164703711662613841638814031482040741268083108830013478189554184206953609684369477512791913293156787746487946091685904158196532472768733356592006485142654077580628702644853238977533520798677351226011386262317905994985065282144047565276332850857333892769394796482118961132874719827308172684863149033619440895786009546962344539760708833628725955390679664553715117233532383887197218320601485558609099781747712186685256055693714831993188994574289119803369591073401281025696444744090221406491836227616006832780924973820974404355381898663072124846829716922646582324572184755524850787082676055172651717113287222039906186140501087426528671355312480534411163566969820709523787247425208726479362450011494073458164383022478922401383140221038798463289080078245469713047606486813952133010002418475849017788793367493686053315294229504448561078369458574621241645244897818344912155193243566158916004098680123417196959139177164717298373935374495889125998934619954989366978243872081185629136010978644103370315400755083439004695918292292317397108290401640224074811113183181804920922419600546615944772017589332314568083956754724252054782765318741200177818670908649944228252973817375565476375177453292671208628020147453634246007152915181269901878232640877813835239424451549659446572474656272410203742028691838855859855476636101656850350312663288664240500610884823893488969135462778523824170063024343770799561625857588865670112480825186566360754594541844720403054140854095598057869097458261827539625810314682291631852230864048447818916793629427123439627512870173423323253490515873184624863153532220146844319872248263437486291844641275803211709501991725807664655191809660899299588593091428305203306490988354058039843506509267329293397190278973622814558903523257155396671379834699466104509409048784171424358095854553337331274331484831211727056254824611149580936261269558443844179810583670342602709808414763538835199502648409663342889041622846384514913322084360675860225244564300105622585872160592561302432847172038046365537583802668636551364055129510454006659522265080176202983553141464906279669246970756561580526233452322735388346874108287572385510868770858890335528240101035196690230538679010314806822075501275241472110653130103736793349597030607368018415239362942673255571755760442384038374725134284223218448904764904369847163057288552739482576206884181269627951653178564964627612510925286715790940427648420913048473963397380186251405015410938946594625068167193942562248870720880438784438015860819790654967660167697275931585327942603316966729828578562231504126434854505606294116042654070098149604431061393834771008188835442467163315383546375033575049119482820800210305667449238152260456922394997685763639311730375822376970076725362723032131652041852904322317725005909029310391305467127365175108905019605122024296290572025708201204183240439858692536744250950572593936395469968842036595171534923541180994813478282801171574704182165291379361072448746775995750293487430021308851082558770647515100507301699294615636167197305206696859865345254149750094689057543505200249886951913369049471325727397889190794884212750555099015920637483588558407326136744286678961050214851960615134477290286416082669867616425875527827472330551333607805839865318167479145760951073620053183902383634398447581923829136233573305340577439491756107920464314586965724200722067113455017651861820239001679552323370350593160976643537909208537727563269477311931206526490938639153008292003679846898761922816541661223825961804251075737481689661425568394357614597539294084921267995665629802225126023996241626325845053875107393434050560582390796628287543793560546310511871409902770714811011751547356660213516866422574283872941428555923007123113160981357578699215466383571807808011133182481905167961563672646490246399258703431188106574309658445738681302102237665141215966855192861498262566061162551410997314475176677483014224776766148717867573203818400139736663904378821235109458958746575594492343734881778241583426540314438347103691997118531465214827862932224972855408519715545248544952782774915083928710802763707379254368638063810722871688371848668887833815225186909970377540912947994992717217319743386253217950183375178518503493240656419822212241176850656105234531624048537718817980232565830681569788866401124867425526253908348721303600607338822803495882670373287227991670758001359397151109302935998709165984158140604414258951630933235394565797809085370071627112008931897572824313304746087562922143454264680978889848296279149520868052761915651435329839240562377855642649460213522902332861688584357097338940944163119096502291990233729530136913642378804172332619122499121604870109773490422256849904282849151250526003888112784256322277196429416977990135255833840867385093027432183466257859045032050319448575469721707609212101020959433762178323311221165113490097600264527266236519894506205580223695440597499098832981298003826713587182359269837578060190230464888625708054491068136477079912033214445605174116998371904763670061580453659823770338787977923981595884605871654235628837321407656855676166403270795258002462732010524555501078176609614903796439946361565924554036841682337554147828668687054819783492518672680342416466082716625712879295864561455398644615032494293493259788975132239141652456015107259574711728047456551903852104913749526833124236176838150784407631422634150296572637828428218463646396992453452585734594943343781547695318056696201248842476251853336734957937953384830787808477916887214169332754719925348148641766860855122511658273422031484645765610639950869713223071117546914900183262844559497572131729515857873134965922579211903633420014906932180809273137786918547894231495201927755422523301537896091313136017179673027274989896260414354603570922722413962263787680657635098889831131883755925059444619747412218644340288392804040705686267186102622807993303391267252286070802326882867583051076039595370138341315547121190898388734800645393220714404318813014426116266166085739481880954792714513667043638174463124575253028164949161626642600143498145112652519696078168268774994267252380172765716795032226939390455493772869059732221641136312693776887512301430370697293155663931397813590919190598095124953093379301381612669406747520214926209842638127761408676225954114269063268070132701135539455511172402751005167119861222431854978807165660349519328607410655080608722027824610074936956223297006412972969252622125879287042759611689291247593000881945810051292105867139929466561983457865165260708233087868098343242598248905290803479874263979938411093935685515321839920593291716405639087954849708636069209187007497114943939664366682679858354192642429095527095442833056136989119019710815190956371547306075751922825824281836042669285513899753792008499367673894827121604817342000371195431433346429895783448666542059693493180663382223878400693199326939028789321956926379932633580578087944337660623362290786850703863142098914567452227466536773878071393952430393858171902851066884811438881517987384959905916093749933448281235863349800674325983238093528778021361611229224895194530849995756224373569911197249234274882900730200075706642300466510682741054401990280924477150220122051774191964822332126339293985147244549034711115114614253158792645419034748446740676763256851427232238854862320948331862236092172134433656607874682105877630414252324121068528200172870496249705037257823233407761704127362342267613224887503929725006940589360780558226714854754451129412237824547955574088530085012122930334326943630644875002042551761818820156325632193461114334952044265150767628804443068305761610680155615884300552617964960218815008703991444766278897348904285682502333679864414234062668851880178585325111418367315254367137647322566253713413301718381544741498976430016083074124648386511331330185981545206192488949536522320507826239736732362503564521785577348045204262108314807739194437903017331520023332631082393164054702233967430065335862940679111069146127590137043263162072350632596195942040223466550509318052222412693933979503190582342435777674778967804798946297496828842653591678387229217553916796522569370394768130457701327824319788093274386491583518707858234991263583744022597748553773443631988766400369655204057554098433910628135592296362840864730721112145638593290915225762156081554119254546931468376455291644191665934461145330462397880903570980382034770901275075720534752284471571175112761927192842457115191471216315144151179440082163240223456604367995361413000259334292120485264790750239703256847927817642804485339765528758056592065256529111085585092045157988962161837746990137550331650443166645499998737363598221888250233309429466999041353230686616486756509406640768766665178086009308216369453149988222398933557474363382002514522664939463940237376564296036930230831408997921637872932346862680141483688372057599095758151682563680664617816020766693964970571772150771990357837601760180307912772189533110681503644048285348239768360453290557100905460343455405650465787070523817411449650899535433444736486871867625114922074281191455422084102079363261901068225224596314254811239588720990797092393989642858641841436521522906717739402162105717510952724794438781147680845886554603813169982455552181053530206931893161338774313832793967634600848855740734415674744504392338955950528870827819651106372604524377902494895130301441381136042050820566268404378189841229030726830566543294425189438743730543858307480786238518736813478247681219592485897479710253138298864169591798228990519060272849686392420969415541699168880756621745316885872943293573807735641927388242777259012411124008997583542731518424928263432122773100439584428997870591188557333279120868381083060358183856076894693847883885362007717594495850597053007180655298514968067183903045833162294680966839022880339654042852746737840402537038531320435671045960393555437531584255059655918525385605349541790185993007028245576890460543518613856364783474008854235946346180034942300375428914707096238761570720958481369927935060653844201639561527816071834590020818580040269980053725854729838872938918967775176990549457766727817273647516537281219854829863676345612825537389576038642839333021543068980748866681789468029744024922638131529487334804792542196856266143720583244863972149809943405758312574440041559354751960171984324585294528058264102507175078158517344454280950805977574591521901103611760788659875415800236358515018451171220816780344644306859756670337839467236792565786307219707505192800511556311454848328825050095037815193979770120330824197895279177469389060260834043391477251061055883994965925643338353280426439014944084653949930822447259731286754517977415188683212099038462185264435420635355426100076557965608192533730216828203025101405213496679267379280560955061274721170068280088940723511294060181457989350515081975656356904798621273222486933490910637162666312917309739278430284465886528646005056695165389975512753549991350428667912741615671310180211911931748012191879531036814629175953025579695814121907315473522477155068060341858381439847199135684894862376496047046042143358853473345715905874596480466133578033232982363868506945320379043944497620697673751410885738909454724145518839283438392206270132430462049739265894921553594675153199612126708186253180782674028343790316897566939593100183748020065668405048041194600350962078733680599807070041545212460009552396211061017778122393885457219444398884759642349110196523875447494461268246369134760463258531131134994561810491275479945257433591170976844624790753480970096712602273826488694113251872525946960584691321643338979889612956418927506923990646894824944192393541124203326068912589155902955677404822308728760547158999794922446388628374887062827828580249026225713317333380733969723153466497525243365890571497119154695004137160746077072568066759233913288179658148671810416223727241353994792289911596309549261865700643376602085175881771004163579217176387183815012240499723408665842588929146826989280204899513607092646492141823427480454936735313119420022922478332287785111152563978978712984320110534948762117601062676365136283791220376596537169662046733358205859627358691855424894347456255964494625805902725884379305946799609267489081509263826381767326420082737943176937035637446760588994895271240164316251520099069035151333511067160403244725816881554535102132097623700585165140588477092444517108094520277277782529975539720017675083304676856814634984965069703914652477759726607477472296240528413891210244392700470134710819761810191589916935515203945194255101364318700266471124721828009234621912640778193374152853201684999340394191717352821302148550633692378461367159593969591844236623723764064912159403010601681092687191293985185385961419465783268504413736092723626135747336847908934261392502847664043407414733908993618106484457064636191736260312552990504838087079540782777708160892308671478481659037129292624225091654904379554191044147852944309434009374275919279383505648170725267436511548105869644418542360515050671455216756265924301240128211230456646238233009597362776336753171468206781131681960147078323559489797331247821394414335495529757514499153475014475868834097325533850634873386851545311531121436729594015957926633770586725864140776227407373232900431639254779914311106230736615688586530493441967223224361944899576694416792447045535468363006908581961702512189404737555415614430880647448155737165932127918541500898458363570566703267891634526912955764867676309073335860201874248391470191184318078515563451962897225963451932444201914048381825642838226899449681307983367867830943799422117675383521152290520469473280737132914075628069177376501865059982271921708375464637186752344609123960870863192040872496507548970600924247747407636569884355899861094747507081929630028835074550171903629970314758386353398986790112570736189841341712931011838724349545687317409781457630729712744470267984733453414736728724313016302760344798116782923781815193010563200608022926930895937127611346321211109120454827315826732949361711271626456531220714141701724281757879487082958686994802978498543320077318304443163239788228730966350386150434726267208711479066743301428322579957810141231373953825562722068404722292282304305888858877400674302416110302185943285216206412508251078613083589807957505841353605713356587631281713421925084672540354918865176190099374545599262341058316289933739010360930573569363331849320949855785522890676433400103087517713340188289975323493889030545746870368309475156879600113425436541138372479385355044807613416443329098008974567445651403608879859081862302864828755107741843221138628325321764634591543934077520963308421685041702298186384704073590326378863833716776634801661887352810058212028393235507008701384991517260590283903367607037039191883505485533781662622970728317707127855625784875679959796530082072565053719900843617616862237388542383797495531933634714462689457570614784190524091997041259905278814469701163750757738654220850432110716403286981584842265325597303724653406952131570185882224083928324189844507802719045880390312866560135407282759727350604351826951834153543455067496060202246452058838566296469734191362496946239554805544800802533995872158987153860173268936608341160818950407829676921484220104936323310514953339523092484664096194387263863485228515077134758436554734650708784664156854042030270976322327972495972675338847985904909109720339424575223564493586362184242325204087723910147657893844977226003912441971307922611818803174003319992973259244976283204890734712001107850831973890576305749064790659489644345450106078685471142956568996010968071531669575682032071469924910726624490737901135513797592028322118859403513038711968816530854798709950313749286340689469591456286623706059138682096657302167647445986589169137006015107709068210794473179698076147296986663108267157345107147634979173772958719926876025061257331685797712550237119410262214265290268254951928399929886372229144524037616280586134512094141265515189449820523560039929980800310689622272154941062264390398501739522401123487816258051728288499599188924351551012016313915616618088649446910512726947259108851965381225716901171995358586653914870206586087664055616778447116914007600544686219968617327381999885245085035345310123095694189285202487640669985836202272273680371468377148886737357506141549696118701947894799153695728841098582618242228121354677265311622099051034404662357577105314472426716411950387521205475064450712932738207116554034807212430318015718152570957621906504244346298304891936561707705743768495470956489359959282329895875895610804449731586482531048914775306172351092152012688055174989209761088867891235674257990070478256995394529015235981593527869846256750338214099786384771651043318985074731233156222268176690925099322927902489819992371843652955136131112989315482007616619599393180847977368236191349195891721660416713738321948999768299905617204301409510364832716639291248562141891092909317177344345677771315229305224937841510478234824779013054752756385680484067410627235215896027727840957401230984438744489022650792126162903339694529301825504984801634019099038481263872685727409251331225500941915344062601674191377433894533346888877918062876789074409384348460568721758344804685664163233202113370625328774524231833551686995489894039904161244234319168285108905119892176778573381320857557388053361243545206350393777746972812269600634665977275189580949313515799696694502079884403343580665374319153293832427326762783766442268680760968886794816574678212518819986640420597181349118102318702584875710076071583961845038743714178352464438426134414337602537054245931158449593026528575922565484888253455948020753881226543258761815666303807234437190695828732159096343479087862325051769070400483421668757437562653505298718617354206666197767335097159722400817984536998659066624804656805753885061354785792703513343431012918702749139732069517345811229035728281614618347009508896925425143591968782282156700828739387956724753794925806777879787924949744547872643508032388171895648895530956694341100480289577105065763243613517549214035471464505273408698248875824201340533310051497577463530710925356675609334907854903388610982047242414221266517614039948334887033444726925138389736640816810709947672361081014511793114149659096519693549866447157280868290432951764666993849955642301038659280097737747679046578918892025960436157145717578134388325877204836925505302493813487320800383136528958939296595025824047332828652081237233100733756086520894403790244562226736667991045781999779181283706390025559811904261155841844701405465096853829828707503603549227400518368239773952688421639252424270207498990809153100161644287964781716624515813607448357161522243424449430402707900800430094190424045061918825950753253988100533766732978081440570476869195338423124752638211166313218467943545975065905451147310933488952375886270834610416303617791171186715679782794282591968338475892130572071393319589102717917556480511485315597764171670059247027309756185862400594420187070742368885705771691011003111407931129793884933449067809715898110143411202707533609483766968904887834360248292413106422463510716184632307283573211459344134687549717365421574736202805082820071677748851794520596039112191630183735363251170071142820918453510192952210367675905589164123957001701634288706304323717424481748990177577207649778717899994325288012353520430907904096744351594349398579134120456405773140357517364616538294209016134699907864645284473063261504181380658192701661146906099300818461961338522862686031876144813041844018342770453393029751355394871035412131734628136259659432168135615555427121272139749849196469890931398047028351291757231207222462728380158394237846693448415762114276814857115894511018211320200953262679939472144293604687452464518010033053347192297231351225422140723170779629070205909804776686272839530602397829524530969159785772056074696706137920040777846805958815510710340228969368397107740698583195161324104177705757532801992278092827074096002060311505216583408530659788688910481553731215988213020719885086873441507259550745828248113285005791610921987567007665372776925915907012128470017459640694845363794531510506082304062774236602368178052468444234949482802874985048373070297170361576362935138549087886483766267421439672447126683954036249981798933068148626302328240475408797338094174532411446326986613843437312517401557250977752853289592033168740287994564149526343853847276704744961858723384835969455805003093611222039956538606762287789121328694221185423149413254162099652555375281720080679413423237735336912316886753626968792883206948042951589872301105520046823209065448807658275512443948490554519792504950266439071916636087193503965651197359608314994682267411122100559572734452706565518917416987024280770017786461240172627593454152864152994476627061827634801509916989771620799791576026613188198198142339311326366740263057364269515604773693405056907386038819381827327435481310028601429397101814443708216865142643045977326524629990118454905702474660638104977468112045900153932649839474638952033464223827569261122079208056534191650203280436872979512603142703344486500818874305163707575605257402197352672473313429374705280382048198432686813354145999943040725924449356699636475669141816372539633523936883753311089254121822804622252735686122038720025211265959991157897768218381365985777555116399257023451058363488924159475305611201099105017912260033524512816705284008457040363763633112019417543429158205794692873159171446336100911492376748352285272655743940301305277080868802143777286198559213879219530808173517361903944558472331394517268367999284725307104660480374147309451708480444957141185163715616425680666450537880650523955940892501143353189429755949315223049078909002741260527315015593182201196268801843544734151160673819924000738771994383713938413878953781889055253689673910679975022202984946137895685102794936189216792219530896297500770832183995349974688577918705706680711083459813867652146851576979297419534608522578798040202271922414926619552375660222778610733082829908168305872303483678970448955628148058317479657383918482649824130819392009139158120516463338812243517132374572828380919046529734927051736545674737322064224839714112366808060924701725544939848614564672309610388462588830834088206970197066730000603769097730648637426710297592093740063808820907439614221937806607612770793033554565416466772266709058207915953494525379390131023402056195499684500210417031063353238447104842122411752872321753400733901522044871550172332709991386466683804742927069792302707616353630562864787928311477773649534389593293084575408629264325496566135364002473029408548884294038190181523901287914779306936567818896514057488847144957940228808633768832150718433596519575814826929294537584268654676454428351880728598009106897187692905471336624883552319733828570958518091822705225248027833050010932302097063259384811262380695549150504888835584069200369195451307202802719929686975152237585491631953870442804830856157057174072620162337048165045069593519960604629710003761680995683140157842821508249779658372102582317264272601215187852987339440528365728430961767780844204730510416487264071397126845234671753670769288305674363019588787694116486987213222104302904301407723302182589185286924428094035968316179677584126298313749848359797858516885689088506282516943173181881514990017195018615665522273476828383426279683143769103392013578347240950888064811075830187218527487099652529643240964150659546799777021501942026763701757306224779041928947813936896013104626466724725550553999346412679577576819256541979112214054078035330810372355113930442224278411393144281878090926401151727700630566731055858393483916916736414796184194088427373070237614715484237377126984518776496441300656779878908745090148720023108187062136198535077068400753730770479155142551397126972392750933488072071671031573237886579866439462753969171656866904018716004048353143484480035172791803218875853103580634131309205845674528678750214859125165555779852925396337995118493938641586699225003654259987349571894616780991618568441103904240296327182312431583953146982038813320027757842878780233709846753124955362140645931608326716967795553677109405599112513344058998428070272638490440033432371355288833794848460289871040017743876169913130695724819238922687921922461744961857854719662423949259144649238669215057480409366622748819421457477443364862977719143575187707732837442239283807575317949792798080208753554575474798101304946451440874453288481973288738551777863818452171926854865769486198942960684190100470676489541488369882459717419871597382252965933007998402092231385937232428879816546732869073260871234066527298563431521918552762561140949873845852487659529554229536543951669259476839084182390077709347701955914618058467845138194404153889613246820975212010477878560031461348074162499283616788426036627416939482106291262769780043704647136766312344489315491120552881150251719679416387972964170219292437426266652411718921585155641012726301712422783870611330488783101841666957064170387929711472741160306770552504873937444783665600146769642470237299935851807916957066594769081447721750987334449469040945358631529875966375879975719372456324287982267474641208407580705765731016260469545036719722833634952449711013257055216819521876443652854099144315063253622257125931459346237607381975402316910752149150996369954398185770180027128006167766897426709969566922145792045312366467293945621339342118132198632791721620443803998628284513772512799074306766583180435434177700776401707657076513986845929644772679338837106951437853611612298873208298902007203713030376040017602808048115180854467462054583695155484738261256895988527359854796327443609178401724697978966626224384048673890509291072808565971151642560192485847006199747377980155287155458329482529714319423845969762688790727903647159467417655908038277731948907500128025714310956782334478184742455654654694773773148864334284167908694965431813725420740341895533728457435568833385137896806509749226243150686452689593204904835747045882849831030709112055726724610649817463053084823936573620169923422468194489437723732689019559229772420635250835058561484787008990810657767347015009079473790294143936818606170111964835121685232004043964443794587346279360372845217759167367587991349167652269290291736744432112799780905504198653989007120313082074905001524178530005231202345731957009696345567963351143203024753830736286731961627686558524233148165414241825690827877342883719494265782281658460453492972333624997794212863536631114408209523149537193783309112061912957647453692094604907394688004779224669085480805103146253525956014260082982034607407315125772887418075447690553085413351102913078017717982072420829649031376019147203181012747135084387393499550964717421528958073400445733837911796852159749259187002795500124115303521871248688147978371909403992586193956699153204883432573386452457085695061784229461731445244299086276376955343473486056290817646174681220252644440681886914886787952912793119962008269982009102988844620989008784622371546641679283990715472238202460617837317232565904712580469274905207523547646031369325338113252798625087173863045864238448862496000836642480595168481613409712045007740947928090730462782412462317689199815159448116421567021082088447852267042091327310421445883804812745856189085072826040492812087409535879510726952592499710350770454001373806433319282044663410418149012177789987706256583138764696690368934722332932975842833830837722825686829175057996374540492688836579710261306782469477243334906007769277179729989930976960450833200279326131292489598112687302639283183435952264656301356341433754516890391369243867139973947184272975636131224674310592324942458904726370721625623701903499890112297120948193129228012648831164530922259094702469460884901634434397934166994847013994801766528504972362590943852809312608493384747281172966908653861590610713307359937666519430080711378989792590610164730385521751223460671165799518008124158421305845739758882103602996915912293534358479920385275840353952267483325728847541001144454306314531938022237695267177562055202693804358758826800009361576668741752420528214040560722165503017247999595858127784909001469048555286323575786223312391299825109472061370752735963029979240803689060272206733693736357772710728491511077303777098456412062098215128534280392768177253265534406701843068316576868758858330114766326127571638177644230432047930019530847830885300611698050149563142602551981408051160213560857543379981740727521912357190222519935376713831910707228139433234430478929540035553834614681497529399516300682412505924322189482098643209858524628062927182046945125441353618109422218295677902440812641599418500824126850880858717135323710288222867875102630371153757650592358193849431136253798478340032276820864509109812763245510160691545283498601716058094369124643268953858449277226026175155840786323975298644944086754522037062303043724745285613717463911483989699207013195410226381541447447183561222996567617991155257019328765640294290055425179035871178734201551856080309184107585567436884835545838295095306464344516225572573901618648241712867628542860910522116613237216698350602284802485456428149745913237897229904170738253135577027286921131300433598575815587992425190753897234345285122172360822667150027712069451092930120274151746781748173552570547648839812257125756522733964627713283663912782093823545271528674023972277302490612697118511932929578669291187154441878445401311476747151045790076551488067862885394671435554473389977881778521441359254171035855107697630157645948741240398127320260224564091963047256736938187024065273556379787833962953115748405782508989094279561074384205174449187296338246911190853708013594025725383866791295325112646073309321000688106239081091296643460004138515405757595366917627444560293320925826771016994158606635874315388555507122886379595522386531360084627053092215935794582093608332377855880236857651237514913568690911141594094872535860713821914481235970482120408991589278702202501284504216101969151705928170200127798815779864711660230717238316140587664207850102594775158116985223575693147868601357187470307062456842137018741410350634431675163868009001708558653735778079416303775373126774122159924917234916751300613565396626739587072286889819590406518368035619056780019604241049923021144132029094447197505656606109400371644577291910837791559850344258502616359901722810161342638114115806011411321485614351461068379463726135502354629557748942634574707625871508558780968998071648046837993479361433835038043487417829055722669612833534317451028599367296211366658724298693175839290772507883077305769990670920892112458039745877544944739077093262235148336317313925550502477408543278239439152299575709804352608435683723488513058527981591106416235105278064374750158397448798924980220832822190853095779617650640410454701794085985512721629247866809951412356348223357955816091590107731081215964746935303086410680182905269911011303660118452137035174561167212881936196311206081942026775500647395795613475919974588049211922057632261274521865994207282328867878738879205153476000306876801673399215294140789904910866772246318442142606879426309839532036054562209753110273122257282417744715091285568058388356616450537358488973009663377365444693047955823539979201107129140081555869485915538716697803906808796588939269893328926880656227616157441384910481647723577888637034286861033612995659893195092250318419863478225043871931756349086694619113797790260729004118763270407392880493808566934671554787724939040818030498461599710975783579344621658558590043845828253255965534095667849997952750473293790650499519365362080959718445593278261055281796679603936891022198093574008299088622535346710069460712962038141996487495232636850449665104002329970981822656720444262124553827167901082279862041191760554509865045194170882006558911735032002604348080507227902575954089307936363152698090855439880784267466064739608558454098254699056517368560621158759660804757622540787505207005627782048903606091949961097384393461292398128758423868872718987234784293639058559040625232623433846825971766271733441427571682775225464923655869896627918379949359286644652984222485112906375988262242524318960177245350856032531633177504796547188078439693907258522551974599689465870715947980928427165096455404418095532194728497815917038047100659152732932048951794042380599527680635080406287000952628816896193129996483237526393072331461981275738038061149417010090837059306977076094576489616770867511401235655344584090089369228932605051541483118535638503195430684607165149395309852339463464847835633399896042622253482134036546412038501600695283095454642233930298623933383729056460849754641909527368563365887916425405413383266784991240070620748147561138699755969484833922572716355390336604360122597283106298506040327711955701568241279448139395562008121471805184802123494914140741087752265922668853876352035824316375514059757643025900451631466626245260502377769705430050960976333178668272737969088921392814691987630154892367634970132421361436693645187904459560600453145773303373292946592171549167592695487786207528396133629588926082061059619147852194985781210476844345072514515685790679102919564382944364060139136507508735022617798966824592540802517692511235479793706344876926970916636349609289876860380920583310702766801427314437658022479952352544366061693275149206055271883624960555107011770879676457648173929548525431271086596964377554367203170955973863708576502722087867525150869761083191144802120201197258696616896074664631554409819649913943498880164067842734921556161451575573044497986012938468970153918093338325905167265385588411783790395794151493845466992891292389266025621708742657842601960394340744795707236164052227689468751119190240500946322901602626948423101854197913040336196202903807134267383892968587795158211340310930836026075493167946276087407887468893749389278129451695451051032692087392372520326767540688055383432631761885069437688971262660446288790505059340247591095292756004046743856056255768058547511107041786716161252996034461799279231577066513916989733410683348860773472503748957998196429501167421605010215204895538849614859312847358295746680132086972103880864925640460761803199765165532963237992112011266642969381633474002709858302911059260279093994279733289694131148135032589536941778311826943596197363704160466993285232746313587330165866458674996584680495447312509120000098206980206337546120860914591809659871486185655902208298963152802701752709743731681634293926443607085142260072283598106955070689411036140490832674918317512051963620950366354510436826423565313839966494806550629140091428705635550923532491143475497703050208084173579011503519016091711096745551563210088080358059532207504799598052338551526913181666847427699732663990827022125394857501791708967238611738247621820764383847553622284853351597249425776807458702767164249130549215655409638719090566925600485604083042009873860331783921003194912926983021303983439524912598858754985044076737786383314344289629503391491392287329609841239289845858580924243828319095933949043086981822024002310126817110986905650031260522404949857280445191315248103715374019753838397937936865543926060533715798456599174194171315075213332135593080329908559170936226958873837757351266316771537816509808466612245950114689918163011411944999594862415844502160617763153624199504062739843644545056539883034468560688802391369815712667511858280139128075371311757124977848470078445596809959553089902078073361957786581114666359482118148717246995368366327966192675802451541124034021305314643163231744546355584636015576356869591339899389361974189432767332856637303902936466443693213447250196737666773064324041073955081700264951823143829959901254743820724314240488637395378154642847103071331725439066778845052548406507448171079193577642676554147582033772543601165594499578565207263661085149214233467477945164845093323305719297675489889206375422508526954326650224573948914876736496984790066549373805993788807748988579218257475334506131114284808592219078006086381744022141413210349760190067953440564035230119991171294948086260568880264563122259999413464435317130778457729478086938631461838260248602059853154744609639827945208588882711035690355508382382688564668354047403050996741467461823901838837819018487291802738192160734080743573930910763726794518638988968396208260570237022777612574423540226149364235374603103551067215410105248327145845101336872633151514457546503335159528335793760633682616546547313618614062720451130930062017123059705328760391708889681820781277646060112919931652336383568087081281614335994128551395212171235986588213251669908933252675275516362296238039724902591472778579538983719853168644648497916142950222063686578421626473792451233324378004261726919786346543445875903838425099908020535235471501946981171004557436062784661273655695018178139197475762949242536858247183796454526579050527104019809256623308076135240196143987125276359655730601748130497888267750825038546575253718795434906122555825342125207939799406432742889467004053690743375485909300460590367382849078371778401785861266535000867981094763555177127696662312940617268661809238885756202926897609836916991622437176732561564328637079419434182925497121395823577252744675701304589279127893763274582535345044059018103600444690533595198385145426651043845869873383365830545469530184251127334779794333290658235410637164362456496935064696141321930548787899109468640069436760823732352879882836619362195246339843717087566043443525133570926671637961997971722814032757163983427744804294745368063254726633352363520704217741417517254651003229183073898118583449062271276056609784427390859988913817685513033229541393547727909427720533266698835679583757701452339343356144523783628570596948446145471147578751364021392111397931939275767550512008322734691451375110274203252927969621587454857280297604925350019823700051091123824206868132099982517039814982916492836838629149248008187896484646870339911389823319915329821054827356809706779013754313169105974960294958157830312222047924803045845663572569706149464487845456745713938835565117456469444215965737580812978976225780187730593720608499915761689247971745567689138659347414426547750148854769079034772230175999772722193442519752322646899449046647218534369972144274122237593603168739908375646546056702616057323954447012130223514780458733432356547480559720771216752948243405742179553758155302939376740861141679403822561445790522918478460963180388290744586621751168712043589564646566489217164579939300042235625698822064196134385496120737600954606840044124294272014849437439342763495449914456141277322944589476643369336583694192802589437773990296284364425354977676068540691230246996653977889101118953651361039419368844336378987363859994817101966010057994464909211179426425841484932974325636042174634851067047138067337925376749442320449010957260979050119157416877884927022898282177583741329837659509050627296964963197537660246334753377439145304383201481996804086783389556657948083557176360284787322103421327742986267565492071802882978340857619715929699993490281189877499397403608532874998986887643264487857361702407506689165392550735210089642141209701049266393132560977750091770921742514606535771183954317247058898628352763544355159079407509078858639766299436977331566101742126287009493921788840532830011039942691021882779132529202064632403353934202453179531538187224782179115679075262028413198195849888563592164264038901438704721275891958463149132600040078874014089632557856369722738499810945530061083502269755748840652288693371929976304172213292610866241725454669437815418320496425426474025883599976747097458493570470682081380115120125367167520116744037243754206401257024110385826211932064529359906911648148714980780862243915902327403493010092948804328155148540868543592212972021748356502890220004058926143281016014381900517875978931952510957332247757616337397674268970963597939754613236289129516155477458228769393583575774016049195841112854245627399277403577216037542014209029834753888158889974768987274055546595439130813549631544129268300736629641422020425821701643971861290007674917624919669466735442859329965758534965424657313144441439731022709827889245146843357450293578201653937080673263240418871754755535724801035171025298459364348828640147390062544354721311017919446998170682600602728886801392858397848385694746590140287303033852370388027498275014427282794654347050889561911873078128361916600670661535352048653567062382619136947397291419152644343743262031837384465495801507571312049660172043618591281722397050305278809987289208349067951572866407390917701003992512327315923603870105076034525243196927558670886623332830890588845766618229607806120574487723264526948414523056269685239299680973200736512398620668325919878169966877751763125418816267127649787384029663806101766339829833446134605707788116327828371023801803120542590255406698203616286058253514440741861338230054215111280158027716905487170819221446524908240537171233909476477341684972390529261334815826225484571282400538527022668743828201219696874721012806915322646637793680457193535302322623771512747230022674329725411558475583976161431150057809300927179727704227909814061294525647534345781716371802458549174866472594740233273332305286519647303440354638273056192072330517246481048713740498423102987829959478191044909301160410056660768629251590186319309155487572118535658162455103544118885897651119357455924585720205034019965063937584159060670603820235192554312698237935099638874830966060473224883718152825632742120829933326031483014533492605203310570187087585667693568590463531252470280917853233901708984503234877925312292540268736681697848121589746964298566744275678875508963608799327023574543196854451265897990131066206124438855075813448751062816057535053145548449566224728790698653852050805216461378459636835202727009295101586985963770159131168218955660579854550188641342525634440458345348472707174339623240366902022808951172771852575757677912565442755820526828183557956129341415879703146343537969644219631120287013240701803848738624937340380373502301838052428797376362565021741571674187364949353956883099203020664568872834680103145345232769892109011068867574999961671990734184225804253749379387729279279788197338871122243701689615015585122974542456747638134292350162668589627021917740467586994277683956580943302210799644369586715276744081352265003194257661894227810075882338992371385313874762409687331718447156269393954677158393730709841461156275761422359425049396972152565500114935151174181271436722344567215210843979086252631754955561447939645487376355897206586356407726098867266098300561642833955857516072016706334190347224191625271809461834879286937920979023402550411629530764469644163193435117970845077878226765842602253835166701855095503304549163207605541922154218432914383087676119696263598308216901923712769643105919702428282398455579305658337081616003304574112649961765596516641049051727673324763237749321842981329846556760192939890013021829193216506082183279825258809770552453251895990653455585904238723678578788892424096498964660808763968851406192737045213622862499761588001988109290082775990240814141262667255390589420211973130656549881670529338741377292299781240310363922615980658482300038665191188222012789408533945440985825281564340213773340292940390815714811118656178304322521458759012695498797607542746680192907325244527648081772051948744225226553446092557441110944156651454823650226757347906994277909332432341885658028507894832438639258364574372588900844126832665887963037679470645466589122424403866533419227636399427674784118118835836756543046153390431067456863270956921777120909692497392032085115784759084714201912539759687959685694299187984396992473885358072833202773237423856529624933617665217808327835274407037885347632964176031701989355353072158172243894389474281036545075491949171250084651007755263250524281161997935289566105372537558710008120181185461675982801721407590462691587995054490458652594496828601734779383844852366910173356409182053489933062608676630337415325760998091866135024753255509240231637328614873198848739273132967477649083295757358044592206586457807692545161592028549847309960975106764309318509506462770514791040239366586120711378000941730801237907773459528255911578654624973173636247363872856207045521099328718491301261159149957306264349125530513010327932377570152719984135331313068724107491457998825464133280600589116032831318868600218409846064372876834680634738953946193398314601345467977157423321886163614434056726474059000395156300320675866369675254513447908578678189775962777752262107782738230079303240263785647295804880261880837753762632486558839028253279969191310372471562324538836023384573498341455646911799944985100180621420390677988516393332719041889481007647593890230241563111404070568346636080530782740905623761004590574887489986859439494012861184220689339519234863436690403793919958829711778408010389865118858995067939113329235372700944507315555858098789345384465962480974958151862438017327640984935289045671567742777695402529957151419251578791034473746028431746021500321972000471595964660805796573300075713774548013370680456519996169236212846264007020204714234562808152833495462254975087197508528931617261491694094562608202714336692544748144321345397050681890754393199832382926161100845762456014316741494706829452582973068575025219027792999838667644485124152426355399591286006542553393266891261497374636120712689267664209430834150712223121791717670163791360470443111874595402888953645970657980900312490196625777997911698117458975330455765759380363978723417158345386740700727348628239316832401657899607988066241519477031982140700656734181853142417042508291095233690077263234765093507623924548745407946526693369659031451742822881954686313808874859197794881995771960907541238758255193057758063465564305494967555515727025442399710134581719572708524472548277540519330400421333087117770805785453100607519575272223064379958353978810899748044328130024829789740033029058018869832216116696886451565001935663610870452343449633748906246018248010034253729185995779501542216242346025380924978200924851449951009351596638156551700735043639930089388702998559345619008103439220960650343411638577061442978922319721832112857169609336134070284818821575390636294979308756295060144871876689735243287907841306762562363231543005823923060789184802181676392510775438998180160728717075702825238845430899004783494163487922849495804944802698272021155871394842425566191424604941320720892711042082652801307687566932655388043412508508045521579225772343195610406919735472540738055031440203892060024070393094912106716189509837110748028790286423808651134761849995756087415243199987394384206369099940032207428694900869562390298715040064383373555294776606942907602089442234192652555138095522335856546064330095278056457301033486555003197886626536138676189557010737991285870654248531284431566201366881065881669984457182695964450593375513189589630387950869386071763183379644355278088463572148515654601794469034698810850435566908269831034406209825972081288523855659421822718433506908444264538332847839880765714945580034499141925399183388494368804284596796139035311358226760870530822821214170630900992000763448339257702897548949116448105198191997371646769157978123686257355635504054616889507313236804385985842912074773190762080773063588872409716161465100876205510327356534965549558118292686052617037015894233417004912300922710299593371584689122253727792561142413487290004215614388304181808263352117280223989996521459144700101011578344673894269816531060303830543915874125533415156417804538541470072857014996354875389974963431407621527860114306586929393983710947084208588335849941570413529062732861207693448961042013733775607117804288419857694711326660147963748248268946368325071960596207500510792586542981513445857502202103352379167363367490962838033879567342951789923393495149773450874551012005145773031192185910618243098985584787128524179107735022444968545615364816894734849158962174140163937843857998565335410073895236194635572366170557528477793253981612241210832250910537977325781110379693754150731562783587048328017239481026475524285105732941223774324171272304063937448367605309106064686342521134520378522802823242468243154932345380811789874357027014013429218211669022827478928155220601077249628615307968549338700243689528282166098747558595716022576683882971762530851948587468731349335278850833414214164961020095432078068093139163331759945464045299806749642518140463129718588474949428466828368698797092467189532596086220805731140447708534187099679449785377572951235681786142466311758544004896910825685551343189932360057362857143409910625861979562294467858698882866052783484778205902035774263052059750022658903410591267052751089853772805695252578592628501869238180176536682238959900335573072034988098052998492238079525110309826056370937036600693483833676036069659659189379794414985596186869877888256324992814043719019103265731939916114135604727057290792349043568210569234362964212120447310102336814649461998420502330395607929544119544525158913926631348354418337039370574136613124115172743546140473307229782604966599155398605574597520585040575757604310678700898459156961259008835323353582765123488817379431827143290430273248199534993519150534462355612024466192984231211317146753637411663402282538488565598598259122441559842925277322806877742269954543765413414599306759701240872445120894017706551612275428642222847025102660339082730988938375422372314632438421065645619154466047161547697395474125228124211710425508973280689660821267334752927876692997262017912238347331899032233193313867161215220331004333539833897737079550945072411556813487648982135284564130903808898372083625910499497123894921893874964868430440218649753639861920383793220306523628667886119128810884321247935644456343567402367156070858787360134107642549258000445408944132509822024400925972483211073380391428180362626467141090736333301227314869226326291261488563926803050517319155970408189912760215365505405883913353469159691186267095098381927568385538169504478569928927060085049945820367764020856284054135765810235017924989979314819409775595835440149182791604905443426950005603204405981357948490639215776727119863179185398877404290026261364841013970801787748518332370458648875661057791604546005078545983789912071136614521120628870094092590715584985444802414986341354943444230505157529760957814313065345552440694278658096867595990793400428712516674235544488324493168152897499518721949789840488277321724631699615313912840993658499154900750112551348765354554435080900375185867876312407109247779109078079962192473969583784307208831875501159653306145155176530172655113756796153476684917164330444747102716482788697281175000178555642572918741252384863981026070974968443532125494571724225888275575722873043712546206436783685738857089853776760490793482546119775955807100977023568501426547546914104488084113156382144849031185730483451134530906796319854918899491001307813714712710172308566517348581584049743920082431256463862200042048257864579547969413619081006122433693218997597417452012218679045848736558831557858146083736400315472609986367407842415059029532851495058285910754729285635811010003941037076518502684813067478160794101946506801534939850692900630869543793310824164187357437175405992085153853646901061927401636577278374369047399454215830483819725769215333471980017567265126623419806963541095517422598580044281884214976754830668824170091753810669622644395101852360484021992884091176050693050722869125013258162429201665724163195175231872181595907860120537026284616941656898682739290888517597490417937866052634770734566103358187599462978164958190977778368945715908262381412545402476503787650820219728938535059126963108320594507752689062069281482993966104975757092269244669441195246254661511603231008660647582909542614420788235035801563990670757541977193046090116498189921295945794357603062051352256963611140517377916116703600942041749273938913651937431552041778273480681331889794223000689113814061957624433449374990105107114365883123701726000088624892710001539794357457361421626309851201011586773267259961606245814634244406086176209571997882240477644713975242384685293882229856528779110958215977755424557741371533123748732630324671143118009548646295811058370592165871064240794501749984383898438624776411069287826240254270002937301102991135175457759067244562296268671357960869860154886251368747260253331754467188500157951039367719600667972874120366731005624274453873549207195884715721562916420171170714555058143113587904328181076648398779565830590434779122558985544107644195929578913784272245831721198235771656738944321842864066208984964491317207624630233460805500964090574621093203856391129870640136736443650111155278353497101822338826720209989179600323628869370013445646959396309686357965629143521037052403748014302355777133710662422288666606897284643964579219536558672026356481021689929737808417170790949874618686869668765593721188178198735030606551739648896841994025378195313829335627735765367135798011680797515834085930528455519365224480454204306805381145647696989574586882200359364480208124840233024260951003162880311718611568078301825687116079293257170767149514610321374827145594414015203680809553167928958521008181882244727190560886176848750135866104790430930699998715283082447693732733058734562792031268960445201554198709359612659491641430619935665731603253700305151682443797981805693695973588657902798439685613515564210251881457595365432414874682516320281851179504173289103864815148161243596750897078794469120169361151817679856864332529286103720805685228218766950282616342399136051063666342647424635092662479541337651265774595248474693801304579745101030640052083753468468508917888204727143080411949708203821897040548442625321353040369620293898706549325617337710908718778035678178090600229695811480940585182233338492925830584376681584340327022870905930578425854941540889139387810834467177090573264938755416742387532829645931911947464765363744356375851987137323747348034509451927074293728409706744594544993287184121735392469559299193120397120994293494950716223788012259805037855056134675960602669505710422868453335355807428504144756114027843986415927694754667276690597741893617325292947313529245958969476676840399697654499641839061837774551512885025367626550892853127865462266769683052060979781668728274588748908756439550500423814939224888734201689322352370428543633673077863090309184410013308292781705556498888852041424701598708573503083464731409894371546978460098873918175137734715218204226189816547841167826064622165446834414178300392658410885273697975918526255491047563052987824042653644730996873349315791307209099251542270919960721665802369944598056382975581282709759286737288625859248762222216385715576780314651645417460500470829763183438169739279000301106470724997570588258123271570216968197996171377569599118276109065703135825577612211863938970258340865100364591712516079120414822771017743327805810852949911189648186359335971035207716456633632086359825366387965829613715839776296558884016527551954431500307482146930515215027596229506833253965721712807873909795351545107700637519753353874743270543605590896674732169696125604301212249577814406572839394603995854492682694419915629136228922106093451333003920022773373526545234471230236446640730839821711733915449490986804589167616000090746712511824391361658332113902646823926108508536167457144174549619430193928554927977460608049755915085625177014032846677456745426340566245016338430352791742770369853245364985761294682999213190826848463336681446046302835484015190610042127999657198951191661150457262996624607138523982314845923708652738611368791487847122884468377792147785337384650985513720556964516033625084439597992540624888884567032073980289360813719593024830775636440282985606191416747339949679502377384092518906731034686294436030365219042110675140558183987301664540246682004103123414448796011510845685470818050108993576601084763050512673865482285955939766398998117956738330787676638372486701159930645994491799310589964029562488419979926591183605897788959014755635942763260305747859227285191274778079505334524119640134595292382035287257461502196855465569339044354247172792550946758189766856503240874282345566202661212367804471138670383393151556492839251223886579941359896782522534650134875806772525336410632492964703958888455735747985971888812355685944837073159598130427153945047916215696286149486116723056997968359105576995425379220565308326791571944321663262731422949595674149552502532541973516655278414068614564142344685432929903160596809004037525355537778054441365814890420166879110177998537115526335698075475430941078285248232182571351554992394264278402705992480798884427913995467053033148008790268545099413043580023573435916657422785296558811587391234729725346850668051538111081565637178819081549903478105117508651496352921735737590336283574481091383721189072860154751703507823398557578797195273226308084126993832303744981249111073802692958827641833051027234767917818385482784910762111947271976236612125363722673214648378516938196701056017304812007122243553994600074808967421054806504793088983712603518247636844583666992747404489630366170251687461970676349992630188175332541163626136297595012800628854551563564079248453349434389655991337019438856750098026695589797321288234478666565810627329450390355871450829931931817450929503439440612735983591913228039601412030103502821096097433968172708385005013425101825067784590127858692307584754726540962401636852371470558084400655671971407730111104434595148534718833075483364109386169401735298194297290915880767657856773076752457435859029553600675108237621094892948660671789886932565982943711073968906303046217691738960820948325656073033676869609561351795218829367858075786289342332840082943503445203051968542044596867422245892524314350383283898243527839444547486136548501849551586401757641758638509097647833491633654991294206759241820636994919034104157538977418326898142023294101478698053273913291492725779271967188741909345672948342826605347990054585860780139081031705076566092319999991791671007171749813675125634659232311146698979383187758547359617804805042418782771269023033170002531301205415788580398267157576234734676417213210593423515337502274979494056532848666751340474971184714616708912948921119560256078823734857126697445664186457727113921147507649081041509104615927628131360924194302075989958875302791095616033405477520329155235123221293430709802308468602578818540243529249553099785777303618882250164871528049257156521378953690331604739386639579254834650868020577026087103810279638743922275277082543185539352065406103132011499340169933837791318377044622624018499491477493446954389419711766029222491085576147667461156784921054661161284960141200318099759919885277968106666401516108129038493344946467935394202854500035688491803459343740962513682507387098555420414810682888530144876835441328104354902226920058352481300101359952769164384449681037541605385719633808506029893531367948309329084314223033668240177194061917866811662432813151247860801795052699662194863356287651310208197831507345962930236983585430004185160103262140017225170801947615916552881737235587507948088840442399415434950176442406320684665035783751160727619179605218039052579238805025150870811588077161182659733239487101325701450497606931228715461586337722053334637030735003789052247505493864480358114587232149661232895243576015837892093785593998381647295184898989036655570046256775027968395417297959363818247037229934371931265800833143983868127368328080843318501177332821239724272593387697870735908177943873629409897640817495978626322943115510551821582476145001026428033083410703898740699389456625534157524223500395211625807342851554265689138459171510260721245995339843906719123990358934007855653363318912903294375955175928046874966381149760153613168265072943208550480567840089458752852227777337280877111128649879060222180949208968687714470570798501375883255630785538539545062410574632545833630560192315358760798217880566730341221314257681286692989609457005217388701358263886340769299396435022949742580645894145495658418147602046382843375524009929910645415216909166161998453095753288447323959396548319197346426629868967345743657170685090349440013305492059174989998493870542206072975949627516440358636347708272423778368020439688790250586539446190621191272892725876312683787841866809772623172996026794379101654444490377558450203185243154852643978580993675511779514590276005817841989405155763226247469498136229182095320082267899606885242644020766210150563334340308083015400859486768571501523134287322708875992936415690931808371771070967820734207667138537269274703390964579406436717298708453784545569969735537655070260203514819067385694236326685026599094756285752069041105472765718165765687609465064441591315642661767471796733317586918309587354954231726719739658843423815278540301546156271024533201589503092453274215798755664567981168160930273306379278108552524315942618030465115200433366397771585471990857236269646664851783621349589910820684753153329677153978967337264301830954459304538958906483866431857733843895842842601524348619998047944727248989684030321786855160408197392001256240808590232295226424280527764271679628494613580951608676528151519726741513620054927679555522871121783435710774709777768272553166893433957773509579303268554760192775787654869893173190376152190783179744850557144825709606604641092141858933425404914345503750416826062037249807306250934627497571777571575925155283666516851119977896334026345690459837449336089045018772664684876960856338599114795019715637518718980538464675689720968642868024004035372373313056639397938108446917668763816558041884369484374633033785950074658152413657002664850336404398054544935038312945552048322591364116822068555769739069794556027949268133899695621380133939435070127991448831376081280662424715349521758404774788519051594471377492005118862882459026641121301551053525629757446768213616669986121679114522597626316793918562006634217535312419490151370925537441727102025864969114812954737865712181951467087734081053002844097551859754801272013151052747326697550771447878676619994570350867030264703441940458531964357459641785531328427190530248034056115785134281420788106695698872759834350919197545620881999759778261152209736071489332705248247359769165001252461687364871681652808827663369731621227860817198325711514962020302637164366591280579531317763856380779614458096335322110252013934334074674307678489986745406572850957302872134765684038311923001696333133750738995192819018989049616875552348816451980178948090434402585060418288099892514644665368846558864192890888218612450952391154642268864685588293119178658016543998212902802006286886526972788291009912257494784469465082700397365777158263561067931465052948054800096903479268304037244677343800379100503943124943924974302272509920798423816116758013825012794196169939690638037639846670152256132025365766413580683967071908032903448749177423397800986234523354914563775338964456330704437767793618470408272021647414284864808908032549995653680716111108571982565690036461799856610099177527964549722165898374100778022178158102791391563736598295527661628307295155612423607150395099012863331533417852409915182517127490799343659814677971094926045816158949391052233395908850313034810667162058638792312280576189422591093075166344525168468261955734615776013232177378003081008885113202406065321053726762922778345179941628539415536029406556775726543429215947975759060938094390439349636380371346318677031907496714105424233293259437393032791907458119273715915190416836006814952024519074915512855532239617720975362113188107737213018462466517967746880458219641342473713640227244448782206286955439926167323812147391200178902724685597371466239083216633662601080563016758548722065210932829798014180359580257115023068519775573309851972896464175387162191699990363787276267632894660305530581608853655104313877388512875058431692328967562384783965026597906651809189662943758307948172017953110681965494067422185127000570746804886294457253250300657366098586810461253357055148418247945455274735328624639262163382356598170048621520339157658740892294615868499563325773288558609049004997117573172138998542947013475807539136647376726134559938524995519681945878859783752588186177975122313337590553811190780198134449339975531892726855683149534474864624235690941074820356152728907353581754720587941870416419853704573483971809004350349598316064009426540764217512237883086495199417890072384502868200656899222752494131084726690988502929842646207002837848426561258476627894261995199586322781720090880437022798532855150327236319684189615467475208407557587335827041995678613737587322284694701055888085865724882310789801260262564428979220814307355554837453637838193263474307704142079866488069327282483116241986754725827122082513594644411049973943044212473831582414637279010557335640551782582589294023050107166534348174067182303920963562051103552643026427766006362765149310137864766678164360689001013543614269739532205931281168523268843688919247183676111584878506583194145372400830205969584031075491929625375893552846084301970477659613291979929355721387380730139943123059866143240664992225912390716853376161468133691401041514147537435823197641876468029097088860733222053825002110846496557438018453949078274536533088968400683758725287800056900511965130040472337819560370832689612614025855944611378056030615246792026398146742288255823528334840818581703890981122849646679291976705483964811253160616292104173069578562255875324562701877762316610301750478858454427030236305461633352228759237803157123207633608615890273310797994379725539345019017596240464012923685369302635931429608082820838378354159771828473316911303885939473626423896759683367090026699862240379695953206207279553359786049723700355550088371930341078224696945914313483725160701473774601267709067857792439976938570862241669319688270956023677133370120361598615848202254367891028456050629660501655431703105207833177117732338968640247629476548452289098609580258020454349402693918279797399058941316736405433711619145220974315517026469046929372955653934716332076913558942602249058494058083596705555156465154989755279254728078329731117860756431561411982646841639823441952106035669806771799238148868098835125972776230566032483986317088924326842761417650991871998571624763855837329719999727641319378013194935165511645571183333659999070716048590149176472022360481936365484706132334327778171989185102810986997054299750356302845456800875749977505600031565850866218979134698560912021774585665804745192082923911079454085480465503551706216290048424168880387620205757394622387320093569300419000650392314344093510715432101412860852397169507111668986386984724891732455423488226468447049585488823371103545240033728504291673336392642560447795927735410886729651831601764317471903424181394913744137161060673432289640919315600331870756116642078622482948872744605928494126606421993098184780447913577150853004912230680304141992021425232415012389588944687114398397349740907986602772603518575240023055891828005114439426494277662043717724587964876727674640019992676404078327239276109333328654640935887555113438461990123475580093171568142326472214415574474104357744463059953565936223884304778122593849311904155234984918575173504058992490569600961552288321075222164597221100639247761873532524620075136004706754760736882845576760766848900947714364726913086581978293734546771275486318165736997040378089361499660599792748375149639062007323757499342119646572536215525198570220648631322407976649767217127917952649584445512213487777394586117111387055156074746462308454547100695416980371723126173295374862423958239208001666377139413512944441091210807580441383470160993233120736171315288107677508896330308555788732043128875186593471900729277157733510130876267678774551296546377059223591717291546214378622176914665866496466926398810553877011196938066985903886975101376555279035806304410560671691103144883471613156474094354723364306895784379981785275291758167693745698585587237078449438840775049019736413220275372076752221621740181446755810228593819374749755374592687983859248390532715170954854631020760987454394844820483376452949554336480025585978053328989555100814576749225145819170759153420420052418213098804360785735683892220733386000923963317904741169668351608773821896563370116328647389192573156522386461770165677028008511274409252325548124375405478919359257411262319037292207652212236612942405749639700428518836377185853214281587906953098488347431338842822320534470243088403319007309478412306464390225459357489012229378207383212507242288484414663305866726622964058022351263071398281016598850900383325666955794002092276139742775482672044568656819335337321571507904806964956424612467068021030139991893583442936822130050618419380713662293373490871496795325134582002393197258751191987006397993921182725768885626783591736161168863410703544944718948844796479131517661196498867055525303355527272209520433156227950741613491114302632577625907855765938939760510531191555957226866571857154060632509030335630444812597595799318836811879290513779591484019609733160387305662625901847714776881440194677103987044827068943668913243848392412056297721925466893333272046080343467452727379684212572097066059889711362071758033268062861450009199481434384304840248578678638004106888174357116992397888358400780183567613825181305501989847588419330247288426970682876665408805054257856744485560015728775893676863972424952766659644236667612499714846276173091840628921735642805176363485299853476794721552761674545124468882529754358249957714169163224282358498570012139046600703500975739057520742757819470298821938422844951268408834698623845584641821685577414977977984372965095471558174180502657471109265281475473565766147423529163327197403958379879054898997047489521326508686476796951434759586569534302144233434960615463517786099883799665136649719361190168560881260669811060544291282827232271961521328603231757796703068995769724937725558027047060585957794879444940243860599830069376899026655039768778283787435323334724838148088514176328436344028264733017151110116983592107219023353352270945145479884030637731066567793512674603378232634970666186594550880052161821908836723020017569414035935466163226592839237902321073104867559967950098747482729292845952342801334846121232217426704938324209025224841403721432963459359375079623564735176009585095396932819965289076454108385237746708222906598338475380338125167006265107836258268949213508665728664687223984682506844679656251604913261879261577392871423372955216868185934490544033550465698950041877431193480015817746404608862671067365163564950944133758399447676835758741009448859886067744349712016761826444167090081987713072519318287828170911444494530948980008001198704375024204561697320760487171392630974654820202805148089068375405368207471095358310451470350091000564554089576121962550316074476832576773108822416948530137175995798252447670158234131878247722948028165615300827814224059234302512638122500838540006079028813072953516915199485236431799572714138733902503577856358421329355575257178877660410088934088453089355447103615647014482023809865502694657076976459571465713677272317113804294780314153804625731361335617264274467555034291244596885871001240556610346206204650031369704021256822807002266792641040756614985861136435704611174646802550277989346944409483214581062689210167366989559416476621084564020873141190176462927982638426384196331580340770477426451344911698082231875049111895685929815810786544664027379665973404753863019075493276290590155383460676126943107808147345184177522424417478532661802994657691331758931446722065006243356549671950240893326317208792970521943264826774960771168598852273909300897258464506836872331824526805780600427999958128145526246961562749487310330217269986046277671635950437813067933332286487973728889389675390369818627264900138838913516783877818119288904177508208847215642429621999923837011285757364089178230212501775972935687008035010490345706138983164772420431757057598325986906364747497615988941040826692514434090099713848981327902048458747281167899536549339589474242510318592747289110156040303048033899870779413107589576277001442545034530508772367547745739590767077673942421177668300781651230073675310610309827164181410808378247983811467188522875028841221159610728978193353816882235946930418536914713098701358791791819541015620479989087568426139446205270984246078237229357460383638185083897285114422657444218786173546813206243304595695829073766920979369025972976908854788485031353220724734781689400691522888127317578094340307969766796593806102128267257391420272460446237071165764366898586115698178152643779887560879210147571508650841779814000400600494858662090348436551936179987215826720697333539045642399416837985302130607109772761018046147678367395028473905658971330495106908904203448855098685795530600173882874450736634171510227145236771033475546296885118240002613966595708782021752060321593982197247609463974306360429602204303327786914478184820358698309710226011461659992874652950466601607783608964854387980582301355925946815718167942360483321868994237306702165062810406346062399955702605257163695633410083799843736521993916062974993964536052814673943749154097307220748295591952581155864995754240621376450728559798730021002295119731009660706022278836712615369614928503391270944323829693314633861338780768143922561212595577297256752904508732849084896183076052591885326113659244595400811071069100472495517193329250032695479894630282786882679588619582306509191057628417375291894372527148179306419650190586754239690825599918129894466670903734919856919185195492224388321742592333383602171148620236989458202034016508786152777551220840005054470999650410786159610669441569094114488637145117848472895473135781152569187656965638698199438622701936193852367050974391751553013740982457676128376636355464361880661483491233506455616225053947038472121307835523294470380219099844855803882930372747186363507239131281943745811434930481324309864101304920285361023729567839735520991067875869021979386855484014205547504115986935416047960010071905226839724895780086867546695466183081722263645274782158704660224946261425432403954566332671608892467149282716297189331635696907635518006738460333513660717116262684983769332544979545397901651157083780753304151264171655213121965161425110586401756329408368143529994798909011643197015701356231302632056596725187916030417280949688728675582301644881018090114714865669581825002415534395617411072574151063941644418596339561608997559493339588726355317863530721867569889274215150200454345589082411307812021792764793700827292293409707466551294059031592158817358772317536307534323780493968589373147654202071945067718501442452714948936552031251762665669135784761965786331505564172266580815593780270620820873419866175546078445114204051181847917525692549277589775007280811775891773438936876083378694446849515283222746738411289273880234400510129747640941900988489218244220098573905564063125287064064881541103812861962460805692714815918077368635081220391413994473718807132559504622572834769618275112114960938842878204867685387537065911525493992029201094837224030948614649459213426178701175769910796402294140318270329866487252136399768746307533720592176686455718741352838591321202987637764636137404499375379604059619794035244470946930130275622040887239057451669516925535257392105015847906808767093142924073823266574734275374183748440662069822248663502803799785161666645401637930687602885132843316270810849890570834860732572667432125690349545877488398000553299075092551309529155680169971000258737757060993113151356357877999543917471140478783450313343763760807524066787401458129008725147381430711428683017367030878789585582389048586654796843788212014099950167532269764832170635338861584418737617929495233506117397412943972778121083872994912350601024010701096404077770944978415300852775814502266134994548114589836713163900988095433181563892687859183446760764933922674003497180203100340771562107521137500458523042223526817169437144961324766638179281978701823659668836346755465079722044395869887086976563903766877046893518650062221880288656612211822503843130960805282256461244089502768601251124660706571623312232865573068008456615656108894419521723445190921855703641830478290422488817910510814224660802001922991018278042039956946159048041737085969953241767983039559897074652033185610252637763698123388851659598145807189800789854541489566825250322805687666603946483129731501064666635655167036425874263616260584058726892430609380295326528735185143536245628328550773696902468497514476220039448457254337033138691408527938086493953023872179617117507859555762167198666410825128467912483298769471078594817914501575699181995477287164868268942675957842485441289935782974640154852937767529238793765070726743327993299336432074709111567198531253212296419691385659201411982629808659174362434826715852228367412527285926580227046410379558986067383716961274346842823983771924867139287790141309516130260279593932494132905309788212685572336641878519463706978969588234889909577660714958050175996469439453006623451114097900536148339801564183147470153799982390647595208705651091372577833314220769045775642644601029322897866172621769243605169456245044217101157285850708022174249703872099282377598071013776362332001276892669008063532491187775848850422922016940365198762501327078524767847757734072169488584748768839731797227641384222166289563355741398102376164016890087855540742152451575456202895938239002887381653988128432198084209300931178345537075102186588481723963461171237216064493293601936791961657641373913788599108786649054889266562639114414892155197532366017311378467356410875031104301136848634593638729819231633426372086582808362612651187092161664949988092782686606749993977317583976628129652596325978133331131816500890187581621427113964329168147611927118020193065938418363089187210967164906360026567980693109595734604848416425283167486906032834530090527722000813009577146194513139270411994330098732399758113524288017698030716378394780860658420773282777480143390990459419117055018623477423606918228599321506135741901380409492559538965743423405003427911088871511616246706419260369532264478260085531511614946121053950074245538293598203121307594398677364178535226619597668597999547382261441113970423928757883257813536378969066123102872260635876719302416057125561706690390201004346420750669545146753687689159518877998869085426130180881359178320136564021974485942320615695288065272111747077481150217530698919166388368187873165867738221131275632121800709461578915276965313370383528649385456257122237837959520506851443045454722049237311986151347822680469347769093181794486920269659145227839971450402695489542720584465845336436689655167978878699093422432182989502898830935829228391090399863050062740610597122163107587464973963758204751609053540635736962394870074516764519481018767097621909786463163573618988970260539830008507959731041555144736149780432566364040275215157827738038886124440842062092777978813538937559797459195998246316231545026483494209557974066944033069191321811182510347836892476422455962890062858490701421517728502726437910529423126143056022144960301650916713353049475513035250260597740051618524254525592329846378227581243202405505959690876080270694275589625262038423982129177780887247571785103240807635815394086792628230915617325140851174273801197965104436479782863904216852762241068270325850882807639244103653607254939403541192539515912075581762050684630810502222890257460666962000564987864396397861492778490257457959214693065498304797768769580103331888242764885178036069498327946639115019642527545188147468947614007056071042682623140496229861211296718888993843295520603873457744460979008047072328595556785187928197669022262391146439339336526479340130324298126907544001648934331824219084003831079275817483463254095072756902717040497988280858845983545863321406662947165704832838615162152494339280319953890223942965797235321378599338890094180058033056064732336480888364608582055974451837698718687643353869184907715791348940681551033282514739900597404342164210497543775863093043156054722358258893449581870559645373791282552635141482492826467138566462444377858526958458494551646156764308072514515662477439306166838148998076958393578391278320651699624940102450275447020596143393481373133157868188903469616665958581372799790733718647243306550973702950938167225713773148288683306335606249475036899393776134827733165580120581845258561308325985480573905298215262814565811013616803208764297665713421361195013291806491614450305224403969233064000687375063907879807907993513539148458404566708620634407255206081772509127116267849410693000926700674041834730345081875870581446382473427237832790788762896839589257241222092761076517471377267670987640058394733013544808005599709337885862508763612838550431827636494734480987254411198149581475982902504035048437369559317585505598825441481421103228174370704237127436085436827838639809698331769016904186697089535019530338637120941907232448855027502128056482763308087301134174151468811411429540581259788519181388717906035765252055774332621143308461588299127442411698389287743650319150225170868679327548898817855356895150801336807344632482051391069754364129515325954896393249196345829541028075536025221396515934197524203971598771891911732521094129684454956972272652277269176003817373116955846952834956133383606478692616551251123970919093164202989759247453960470160657765969154443470780128823112952314333266238859922560486501984871252350092250141001831874352803803052499199269687122253446354328940868867341291105200463954641645845847401560948009366285059194818230733005954920760097528185234328774046441439337313221298075258164346833932031360314720161722309045084588070685625124250819818929822722076960393237230096097663534364248023816369280894967158491854504446575536992707674697361733263563388950825019380726963317840770553383463047206016499756193007577463022558417417504236420388427611207456344031421657162087817261468985269476700606115650463148624092498988603926015219900791102327737370260501603041992895669225781184770951773263847550426142405199075840790306379710637241792300040168106580166117418033721912419809732606198448896635936870711881307048956413088106168310560784270577100832403740209533584390103424221085153358582658338586125360407762708765650890886129384248854097712841993908384431494060191251259085623194960167331085097986013509560681610293180551548133867052493616224373434318163720981389497771366993550299217762237021086114551082388517774103684249195101431706322070359900343960093038483669431286089468847585871683964242077615238847999183442743090037192380755585152306395349135243939006255925136446136078842246509686702367074579300231409505689565344335042927528596617192078420395514881376547315158683009161814987221789442085270258028360697590100120673273882797859724792991516863142255881715061737842340861838642956361954512276217505517874156467431714158871474698445818463865467047423569306156130787669288226643972513200504139029766322145516991469779939642316599384104758553136672808018545327311781605886643415961806812073879131228251475907576784568951973393645870766751255138696568171524007292911328278175753921165428643918115836155551839882145424963693207270959636606048054449009589849213585726886198976174729382748628050972047907387323482700901672513109913377227160387013498252672863941449592116463182451805590321646133563872515304710645684063297200934755452609126962929047846095968658404156538068592474745625265461090503289293559327681353559490335127315700965266044562318937723895018375612044211112157534267322272655854346223331574479594427353024286721978158982967965962595039498337268759989007637883202848556834674423138931698335812586771778329692728835968323354499881543213060264735686077879788358227646326446709030247326055596123416343837088231888413369793451732526416421899903628522901559933567095843522001535885104165553412934245240626840882754472156654202998912690616415459969430805450873972766816167264219304370387429676320442597835829044249926590017577378092441617554488802831219889630700000632009869122294085873941694394415113952737082423110411645830635036993906226551347220480625752228080937505968477984941884691982353757199541872242683567437010292733012878121052180126752800224909345624093600136420197420431477959869435554037705077335499332241863340632567178840858366916338313280210241148456653665316351931913657540292546355185000213110735863577944650749882967806278347959354417447191648306512613925316499938214445682298964166743703391278792922410754283385266021585868445687142905521872717216006019069167100547405141365546053118775058438982945668374877457183180239912340702377909837956646978873397418814760204772560984627247161580490419770139850020588380156316198812628322615234999274088732227885979707560751805136766625267076023987536983843591553226281071208042530962250666705968802901774436142429059292392139114592879641072930623813556565262266767103495217088372718811164157813900052352191537959458624826785446035106539045263104018459901494720876168282882618242783132377779636999860991448310980645563151592148166902094414413948143858810214281967415638729678477570599745099235433831320102137405331945946167458760830192410166599075319715058461562745329546762985830047693974650771108398969492176304864597188043694936125980715536479332180749042469568101754838486631214571828922983766434127578398835137936365522100926238529888375217364122627956213330023564987608487062355892297326534060691150214806456850405867224004460615625315418973062195811268691068072503523508939237522765065557918853523545442797032644505683089553315225680705675750551064983002521978367545804907288743610671357365431927211818884496009270212004106912637158151639262607006330711014229040019752047460395541749903774007295618760464878670269407847821102235581406667782195654770607863446093228424871487033303269156126965515351121243231900904848769124661080251527549830763292157413574222471175329635107678357351700537400840076680515479297687914887502047013786276922810719165491774293243182340745500294098751399919484181851620756984005850310651060852852013380026760335679651113769870742650018254281751229078921221928279206016423265601827947063773362511521531608647710830530995321635180462357691490345817203733753770804547013308495258063921770748078735234227476963736431714646208492920614965226117950133223739489701105894729278144502956539444946623817404115085612557147370750761039771357228421181036920270034060765658851618640365014187948710659933328029100913124436289773758476460465882562923975547426596981717068319100121889427745607782029813028794620567191423940107260938146512993751562824003658358970795210144787866818125470436344617625225322045581289491442504569064472478126553495461716356815657105828711599966336299707566737269784969895335267595704233440465124485546257998347721800441849443831305411185079192735934708829378405611735039641497445044520002890727295162259639496730823397781487025071594928772168216102219714352833755839688489310602109882831468501623828047442942182387362057422437930375366142581427586574922077648460805907711126208943128899499198958086176527938119411453498421022562679942485006638013934813977378897205293850496198740021233157185333752830777284874959148577607346130600730851488893459691822371076710003605278397830205650883382739476711359707079451713292857677624206977937683266872227093157560734221695395520131313426846388217554505205227331040159581136580754371980395971786194285860830999568195920147230815462195097305379100348361251553498620511435155909565245997230590588615887392063903747710033637735035244937345388822026187804653389394976798304005340668611944475367579435297506958501705341618815193391322876110036296062060029367870452370180601258388409058392057111721778215625360261329280473686217005170478246838150064570366411878186154655289360389198484898066931457993622193924869034809040443946059147099155515590093915197073733766259192074554320929847019723499416739741339434949377094066636690165244126682966908749955173479950812726989475051628257309728604426059324127911229898326904410215677183837452459428600031153693393957102895871205961362897307689814626495100711032790899545844652937718768689099005599592405801753003970864737059003867091521242667646461199484393531720901708197072207560018721965228204582339988470599094295267525510807333021012717116958856641666784634348753752993112714264750143350396545094205553303248236935153217899603387997227097138041611296222686719404212536723550139423387877142823104495554939893179545657986071703175574864438341380574018423668037057441043678231893534116268377930565092695122513727941938255817239095668488101448897197636095779523088556851718541271592851844353119589485778454242127483183063535810477665849219565188876466515103347934294196280569149609941896955224921620031166492080661802194542969117125381071173560916247124772736847493607084244726003445880357719331230040519726724315303543536447861679196259808593562815892721891315790513989784045338955275716876058138257838769071787376297223039302754670833333860366474010900905838628653805002360692296383872593481909395621199376542203485035079679861401324083169334982256348901490589651945155141971586113847457340798208505363993200559360322051721706199271950619144370181147448891910568768585098775646559695377911219864182428514093621381149478075000876159843780229869587775737780816839985622938741209598908410805444077813778320003155043486185216750933861193894246541832328766942372018070364835589557313155531145123407840787309077124018100900806975043996579897943984530780387055041283942267890910935249219655635999671604216249229356597772251990024855107371702701737369507338184673291085597793430463219084214273703182811887416941385521631451017407305569276150355955049530842615435459035575382544074892292536760220399621887061852749001670914404134846561827518909710314768683163024013387443194290160984523228984492805809979428219054466035766656930230656890166381514669155510369206402081467641373936435913362496463027998762549432949299831220701586980609878544124824361434791020240881516592696350417277692241609467437754217906449516878198759985653243653906296048804667974130229097787466030300834973355711010137563241013627238096649908309153889910458326085972895913811408109364688377921439759836900825554003733670223096520678706335773283571542282533139739306615954463654205341610538401988034753040963713293501124551768679844263371932285577345149369133988930200248583129728509670329359117593211144699596529902818917303618143771571834201842847779777205959295936932087500865929502067556527252426798797452604023413088363526458972389224724993059081327423324683690376417887453817551997520210559454848671275504510539945756580701159267988486666148096614172846505606733218143554370101855507466093796270321123879476896807065801864628451573230311792133839406790896443833398972033331768245597482937304335257319445200826658991222382237267788113773210592201314608034679104472081328818546394897148835778217991163176495077106523486367272323526348186941736902330210773613808758840523469088983873241046910140404212351384962813479194550683493951732663444200444452923858842352914046197221065850583384080770854601673615522086881312770077397109521519735969258417861328351035364357644136459259788215821345554539978147769455350349241332830165833693569003178417864626508024040980465458809156471923699997131802822746375121468628854957056893980226452722516111041255738146914612915750617990714813521637840031150981717242485320414943169575392833243095745268928297038915338174827096909626123262892347674361730036403838771398115396237495750609701934818059103063397502905486033728836573471423810656966301015991582245251772478453542939931460704900433947600011579618451637035170143690639494896173676495388907148887691818327222879832249491596749617709276560128152448047121489320363269879360966434842113928735800138246414008825115197064416597629517845048441354125372139509693371215871168612406110931525956362674230919285978193594966534803722662956397764009812943916991109442868464034822063194902011048589364496240024795969080440372748846914465808620762156900099343912751097218551315511230101447664770539689535505449170385652788964919545881983115157405171514416016361205707078152487618956565029923405966448416358062440697925740913343738061409309211753132678820612201961179783028118053260842652029670242128403775314038440348407971249357269064024861434356021706986510762743718613832357841030091556302992778007348343136741939121213276965365047275896091367587650349029850248557562789363379568354902578626827673732695074232654367203539247644480814686468468288438635572963644207228756988737158639712755997096843580760899203399022503681834909008662408738713964256827978178111062373252056693521237535028042661484419406441597527303348531410788572833562713239317833852067332555520922275576363267995063209669505903661481067848960086076103854994236196021728992211303932490893250501961183621979959606862601108130229306829437621534594788067427303202085970179803469113315980315075844420451696786940214883459627663084644714818622297818142766525899825525273650064346841569266961575071611369482476654286105477784164329841889330089544726540574422582785388818590651687551122754633163492911413400651639414332824624341406837542473285207939649593200078953406009340317407970959755448886179632378619043031790070749089439625713334370526159236212366709993035237742085804131957732611098944038685732127889930191935681674921186007955084872339847711791757834236703659210269141061277627606171123540135790829237173645754331825796131745445889153887185651885157639958813939454994255271780333008968007441607888626427290017005886144844831310699808941799148483191200653088142553614781817895960876689300049791048710719155822173747705623376887488503720074574260310073780078896529455900351230368865946780374868357506917985590597219630092109306451046255158958331672590157831095634097622954150386371226639706536568452282786113692280180161315636297347577959093600180732226299004271210102639580253213690173131697547174459112997711710273809432944387979364126888894103350322066257182394072919658197147120111804363550953063188930082583511074246678093844549925086954254747125332988245162626327770293522121775869158527837267618304730316332306472466822701115322658783176376047880791848503967559810687549313891261066068646642725860278355670693882321787738904375963403803580199036375491702018865114499043413338535227029803991020344993633828543901126054298495608078659803207201663273040761787627623161654867086819796399332044666259514414074852155731685302216174969536623947260711812749102590600351140555299521146974359760830587485514107069562441349504342367541689107376393493780488844825923942635172865795259713832141544242470809426349107953671726037703829635911987238413113781850599568235303023680111947729342187748751312534564603917556830145815413889330867654082609031335549610505747567217154206560019486712429450297596926751901023802481867196997808481819094482581838264307713531078323324442148573394991291429529328648942040897529912469918044670381556754658955287497433649855858289636744603845333061458127275712385565518950676807400035471402886110549046356396652995888789319672051074171947900831192538447216038798741322447838530393224131001309646716618905876026484261874589880896818058639080863145947388489184400912986618891383869403228241053488830193630790151269328687789054973794484041711301410040008228782169809135564270489480031600263717195169949245210171811995210647954651208909127375622199558970641801630843894097887568928939645252504413602712310214932301276812626206490132387559931649057973431867790387431462939613418302924258697117233510806616932152087688909143354911850753386329967934363792544646464546836168420615937745951961681036633719116206167434612914949158540417326014392139325466248911565114883750688601093077609990898122036212614711535903572838701436703532218758262298964945821632970237120735574267795281683884428395856500298371255171088578273584264211083392459738952746439081322487268936609361932320947838091408351904114519466994021416996798190260830803614838000764174259368853725770126951938436096775335069662810142309337873187864136779765675365281595760383761366776045883956644704715605252456190522871018557550396208441689526050049049366541220313934842375458150184403626967803977006547621337971378467847869808552215394886344673540603499415373688015379171502399074714763052500139643740227267126960447628514258696387348308256537932722540018255792213408306004361819206660086029852118725125746482026458208432323699669648749515908790527954742958708382949516097586738438635678850357216793540486894822993534905053747937476817989984585205039316489727429524437551287456266314949502639857199915940613528212457613982919466744113780209001134746560170621993061360137001417892927662840021586352603609946923143758450243581820662423378257453537083019723654657935848746155419897975129034494290450682923509650977626183474020527550317831184337331431502860341157574818299721896806002140791654339900442549296916563449802123580851446833705775746624632602590568337119523991336158527210422556707308236361287806798634170197330444053218967496145980365730659988797558834193710361148386754907880899338955905023042080146791334836312593481548223827048801582637412060754707597084525936097673551358609235656689461661947684194729469350176760483785099918030456098271129462044722400318448993873481730643444705261528734995578901424560527345221322360081232907488865554433771375080263965658670279413300413163534404764002525073840973537016304585973196059733019847588962774660191104670950048778927045748335018238806377360652549672033910512317956397727448632520865419619569445820812757854552187151293014830446569147382537144234540444767835404659602538316942584923131536666894297145111641427546909000099232988133573124930875937098477894627000979679356206586347728219417483037229022114327137721108894606944430330350884292451009554479574231153812897755960080675965761975087565049622633125150476316713942130618361842979613114422013538689426674182804120281004013858678343809843923159843390045815031429753488667211654088323988972103071855282837345055653248032512339343985594780647262235807213523400657340123826572423157680144892829682670437934550787015210388786037655358322920285597585618016209199598027533973378470634941916949775832280105584534953229270417783686553882635420043943644512470188150009598775541871078717826999398848965158845083008245199195343977079586462721537589049539528263769782398406704581038044245142951520357128735157804782359676758292189783119735592279806800718655584004480057890601283502069934365633672863586811294418551804854428336450301481499237522491564098365346139070524363712234611521647916804988819479952110603809237754429528316207916481357304939590159988652933361004032321133811008602083363326427480900175320295349769848321219828674405280124016120488302201268377801973937352529771463878141474297942740804013045072425833204414885073029117168422878985199331509197191537726834802224687592663809781659000624342138321636680156169388012967985499927425157893066560313659503486266494110465915501673211013689534958296843166647913608198318393930699882858796272005277423431362530833548871437219707486821452831955421984065774503593552062829151067564766017745393542265330352871304100583732829968315464299062069356295602143330035612393995507166604028071332971694896732608700484275164074537518319039489902718529681363940993453445511679685088906157906342195438987904397679909827011967389087582833223309057015374959353932651246056033747712683796710493326312791578653226886460656502539713107787999464111665183697414956018046763428735681315982364657233922680494611077350258374042377642654451136371816416530885890363751526362343006963014551316221618502637008505595078531290072175741389461875090538934382750028910021846733873401793790873175741491540444264863992199025963122930994222807222673087346282405701497450122062054558807997910605060820295977465218167580625351325471187479441449800288095710169130473648629680135182072155005744531492080197163365633922955779894715498932077029338683289090215514198956255876924747639222179542171944544962728424872248197093257183045704778871272631837213811164616659201800087933420746838743137204696367915494898077713354517441760931234499673176611195251283067878943452467622991067086874919932501030449597871986315240653942067450598278821649276913722338052360927552096438099664387157342657179438625887168798903043009293904777303171261691058715545989990202749678250258597453018098581115648836912564665150380467948668032916687308274046445159237061220441885764566965523976014761585690425433482908910316951714377590686793203060012168539425756667624336695692376612288897837432147233813477246371840911888659478359784129175882430564881042510285675610083386418017751353931918006063891013481155171692458218305675143059075553991086981950503236390903269954786860470470646668852275951260648989867341527403307551070642062694675391557931677009732428086716357908294653450369016023831621250853275289052785171315307598624563154924585317783313251011923401270626460667301769636667938074727511622614930893398163657376537345345270774071022188527042403565394379112615157912693835038071111908940059066039840622255202139654083950611282784913324924181522117297361393486972095183971071943462599731758387984374822787776525959313885207047988652285309818997669683232944157693154069683015589500932228973067638390805721514999454481760501306927870898002294344586626782492713750438747935160731647426497153650153876539734923916296878613616279351722190181092268828590245837885856034371263049791446607019900086148757106068474101599152847274436708305783953371554021914951768238494577803774372619860603061286279121613787892880147538598488004591385730523289381702120832056013699019485614250205559831300513564127935345579265450477819738624475593526732442561480195346261181743401555524042208585218738194030642693305475446452879964641663401833222203949372971763624921987770385069564914687063174807326812879652069951430064567239137334528486261913383420295255104561609588916118372070240776575260614770325005274130890317355108789295844945174908546513194055663795661259247179061028493512120857015982556967684120264207517253012310582023177639144533919358213618496889800045865708548651525203260968382395024592443984911402039841151041274625388510257648492144752342147917778209704614868205321608735653816577058928110366434769569020867245058836665281029723301092526150570208176111129055011038816086569937119239294143383617685711818290391587602215263836076294394954870498881198987566285269703471855331618759768198687005418755865700676910103771523053328190909399399019432993977139875396619775078597477514201759988778848015024965828526099172854050676918516114339052234908146527134764843582705595234213786549719937327589115924112201917398553660964879822996878651003761175415666898450519994944723709931870554945886301527381948863253771559656820569862525873350650770468049982616430955651396032355250520463830789111486283941928799625190618566649375128611822313085432874975823161893671109082759181508220743292420309973496529268700093421629278065527047909782302001565905979911609426977503524073620366180570033981117499345406132100212006258634219576884403572578016263619446642707840825221804325890755420764280243584849108771104939585972296195989206093033599692373867834367593959156367911182443259535133702741428043388207133866320510536719031276004974457247342859267726680299654473564722578260056629333358660782314410901739069967520620168227701995690615226875992222552482755482046145957317586725071049844265789960181379607006784350929075862251754696608743345235148351911668408526327709110552983588063563273011842563398762305596948262613691661720531219717750104709535188962527575173281296432498303129150661269365799098541371615668266157690669677629628053530117273871344153396392358978659453329997259416185833998146431136500600542654563546198709488148467196728478249116913706574123738898235834265590352914111714408701357342738807158530181333952751057967450091821137014582049401134285445854607959673728226786685267386392003485552345361495852909916740017624006597380424760318987248809855107680882687964341059158750303022051881657555642671467604882731717730650189991723113248319838307316085256716047507555448683395490381334693537114007273991658149635479082356451152420280260938695416734222589259768270413460682619916387495904572035881100743033175695582146748337554387077184033898053425409645393025618144666338069370110061538217807788648786100020000347923931381473877733099849760518243002328515019052274307629538761119724247456658823019871619224513977156896169512097644357379487631357632520354970701673928947287126675879623961165498887131581623039385429592783705396937056005803247288857884701629196471958015514955730228466117426884224055605298579479979515767813445312181878953242769492150553470259674066792532519467230852295168421507506078042367334250718721344070092189585426068360884723096427299623783869671825911941685618254605991640277211983794709661066303888492368812417893728364471902724407145781851534545594859616037550136954722219690822285088483746242481089165605525209095724151894481030419764179889437743924621837734511975325518072728635758121402738975108997236099082054976866725298489183512005376297898392780095464465352914267803712651816144772997622316773747644837748853061660516649766572005154384672667637207943543286568365850551632609064565891793021600614112492211433856782088850354036288529050347093573488452080800008388460631816877243727981599225358059484432146801349007367950010524506761989936570548730668944717518824166162351337141458067080290616111964961964750462801270696638440995012402049463129022680647169187550838219019915940842093805366938928061373144833857991753221984275657745686805371057033089055095824184594185435650559568777963110279537681612694448269457749355190799642928262416717801866755501903885978456980473147510177910574766482030350294666640489767963507710637356165961409687110679871625897023253018169098218119978543207392943526113997901016518292243067404504390401258537796868291406515213323418810600348312775683897532447797481419052009262219332867202793183486116619255333426402679202065224793464207517955298977252421002552175338872966386679399976721742258413980012900595603071270097774938075660272579025741480620015639150090989949631601409327358285702392509773105190447435945275960488470130384832270607695007785082924331495511587143773674359610966181506571264608242846941399016065009170017974541091741607180360416649551337624733288067868568664544492899075943724555617150169200277400477091183049226633266250051649076529728221579652497971752617860761023215906768566399922943559815838320284729423720475109883058309356632781813198125037226975155782599458557904970032617255111647100866779391308488006603591799514302900427532181194674854517656581972890365810652581797258088987348331321224538535260877586308535738588727113452984542782110183273444130170202699008262302198254779419928400100908223298812024802826351956452292912166843042615306255572243723448007168370711969867320859713398556903191848602190364680126758376624473817812095387750386463998555160087684827301976596609136798065933301990271639878004036150910371334501082100575642612591371472506837281702664539464784084819273616084996077315184247892677496354703631546101176886954102408864964019487471481108851007841255725113118557335637236362203671547502343038149242809930087373848280850693655466636673074668278890839991460182738558857717251774088589114814101812120996508209386812380470336350066931679634318478870774770850042757841827017274868692337920865445616585666253835088380034063934916197604204650165936343753728754113836197284810013742330232750652833997148799987516567739853232369252467532263398216999161898215272707686540481248574095768349212686023542608308452953805200221692092712126216454614144116538175764605222737003496051714487530227162303459444762507851824905864272995100920163782396592496782659770685515079789144888650947815646165539530056699677663126844285231107022494036172288383208137143926671118202166181024389870901201305540312903159264129009189917119944527368631315307017204492528155458905654943769659610645559360221155735170451715899436693963080341133381572376561157819952992514499032362291855846824042247380531029969698368971767838055076155226672959084095584026387179062064727769640383098695274543292907740187485817846736500740738396613112802039958387124209139822486260105733218027357126152453088275459883681811704419508178039527432419128585760240449548283374236552390736290970861248296387580002110368548201994734365855341125437497321985043193601987024565426678149866138775151165063921771682621033882030787804012280905642193218256231183181476230970504230274401090394034775734598872253398116782720339214086497378506061840301944628270943691008589763700652207673625663591313100442360956816475715906871641499966425687909776900427040281782033522791764328086260189869200859480582984074816870398735180091579416374235735736049570049024835770830192223054771879510360727698525112190709498972807676571455357242437401814858589849119205610704119258987424125509076875875708657131653927688048377630663790880486997183639206177749155726589994117937342854849589956885945078057698173669405946233192507302835532612710361399546889916583538661609129402997984756044050464217242928703108814605667314067487697836332530886610637524871127529442065143734042156422475090380485866232497427689497100386908440608651850492671632934734047923271323935939807533275872177874254924214956155564813966932206364291171057303132347438531722599543623427548693665586166004703601151622306010157007333860380793901242411444807024587337427614373268913007875151825930594146299671631746850306183199500364605434623903367828949855387498787136480567008981444836541824624908322826988651164749899935498532808886255722548663899660362442328733118901705015737366565784888906753247564491163810346414978784884256715082615145419923186158655851290162449032984922295071629663026369474253690125727550227745326305950111829779996936651720227509067159921268471767216427823755164582441470888442644275823478161874741187724393671847150824606153848974645850689463319394894083735870537254298679490076158641809228910466920567229940572090492116787013715884919575835122353484128414745237052638217784390613303868904809650092344890032297319047072487251136530876539564948978185716010947437026308875405294994654740512801312458422949314061967976277151713022190911180935538017795664630436505602288132499683681598621413120288664953171074614509151425584915183816081072176430319729973482428877485960966036249323768521393769654147756979519509076102857582932324130475235614530353727073222069424472473518044265193248959991087972661721245951891367268123616880002536385345036899534640996663466977664295981997661824934013596347023399563589621350479181134540094399456523345630558768284711199615737910127721187094156694432308583858061418361889868508286112331804670349649175809094701014892006028330603640003542199487913864706401938630981371284545652528276827028927607189940218338690075542699010189678819616575322263036151473329183455347936343854147757406202631342589200301917528201396564482925689943973441662340717264672098553908830494185246222638764692182942778718020650529036150211167915405762209366221842874937131222923908667136286748497804179515883788982696156358588648728811247505704176161649262652932703997759234384047293503322230509372204161666702601012537661489780409232219495501678585980333190546035838628856245340332259208977298211836233055922603441634357365846610379523685626909322326012382428007493157981352163784131381075664356669453585126897202775767800897785134232575560880924461668429093200747373743540370699881071089558413570914945682746739678087562492495543988964388976875882310527597528428028007992668289646720511050290804023168174873896386003676220649525167306520031062934833625147637708127192029530816445897843922799753625410231031820089389882930687572473685377350967168776332456208994699764048100336862293313847055888642102691225773737587755055498306925831405530901800055069350606031391553307666946158229623701428887964721431713952092975817658682976702145611243339197811567100790101204453050386320127689688333540184945109673580719730158070012697434510422272728105588123999379554310190679204563095281641620453701524434852156380824030853639055551462152290531353998873040570477696417476673872070330339597998404348282005359979871877921731603773072238906330749883943027795032707731420680897138792660254338306657096423731572804564846035747187598679897918407777379447165600283714491743066244093619697169936156994531567820209741094776223332717633562928830473436075897354270854434163953232034007019968509101209764094437561968637626302552990497883111381237210239992035301770962117905207151363620712598481305646117641353678831413624954907019394840489254196068005954236645799030453034779408813276774862935335733802614411180405111995626486474492437358365917919746811749293093723299663992286286533239354605615134788046526428843937722907440333024243917544034839547998620495472884396763494316239953721636900623954607957632297939956883708439610819414828635830261197873992432710994203322275680116450039392809158582692380874118434121165256224277733633082813391250085277075243112350719969968951986995630489913091631536609013622593827658678983086213959429829469075489207013676967566870405857872507595572549791684604059372944355082735922036258775076790422873479682486883434950564802954583489852848507779870484843526590360368149979612780573259820993658612215668888911146696853772959625423888440605927476849074497583752604947449265637207523382390814635042805751774907159052150088124273469523645046123121945197155148780527448452889643216229470634270973745937314319501634840866034195825354445516662066588207494962536529494370046982310726271022975237757003962140598307932109712295990627460751297008810220026201579779090821180976065358624186083984114187828194018012418751563919046771796463264832403702482648313633173783584342089911579374658221973643547320220543448581051227212882406443345891719344353152334459861171694016504992518810566952908845983314755751841042447817411618902952260365454322890044471790950076650323157426169208944832634430279432865032807379157428587126834174140910302096935281381728616901111325433204262544683298028067087241864456677072688233152438958051289597240147058183752472597085408580093988270376672519549366630296603546841901574174546924531504824285065136809064298085926409692207934924203117956109132889571012452101397436252094674609726326195186654802237826680968740768480413158420725696754492613358686865987691170642578500731237558580643401941541365511575529275164626908837958280914021758174897254942329290807573526130661009763649553310853572687940767341681614390023881366462522499160041332258815432454519999308009543377469945401944340021928955356767996633834258500545950960882780506769586547279937285196431252958347002778855104309621392636044199493508874578371889041630870838669652727281852842059308645736919025839840625829916078529573782328695828853467696401832090921319563564925376255066104325669160323450927228226977619019983726564747693957470472502378972487370205338803828630378380889804682598051589676084246444075278653384259483990406816895966855151873120426459117205261865766747004503284211892882109834331617991533462731682268712287960659613782626625481480337656752216687889966605775204520365783594781010716544357896610956640354415336728704201428421382917116482947939707624743243544415891728444587564612152131729548451126769945897917524267569322349398376467457037074126468559944352742929021437176443802487650424319627480062830087558734301933343280214033389101178296882585468050921917450886037416389391717254520312748827771559910692686573708141577389608533845408447937541409356348795833793514689998269792744408479243880595497014592536826612081165299973216199519104099088303959356251534395427553749301250129632807558165903639842964295241004827681821332867090173630551876584636965349217535645361101189565489861131480022988430493513900398593700842497864777715568958662240019417452719717043862214701875913590629406084947180309947486621325033653496529499082258765169350111818721828608067750539124156584678891775384882268470629286597461601148282007294651655375815920709269749924852218071248025570735326685023025509411719004452665766770385157858571820695537539461424851730225185853537927016800320330324897162769146774658503115127340685719787972593051972694246249082553300536346757018532505343537958600095439926092874772841628265117642687228900701658426966894746284666493274351652534929646231816953267615973134118772637579496942244695005952427619786597714658618223370355121602732699826836725832245567611661395588677138648329293666877647377639565573296882758554875728261333358425346058217206297230685054916882095393337140807965449483728997287492183589294946143487590454025044052519198426313392526020358265963533764161192044199041299320401440829651636523546872161754361666394863500463848010413498412926017422472076724437489556896149742275716890039215061789289722037879530025341626584218033677078494791148293766721898419113682805760132469164833239723314470919648237334079006738917018564918130771170756297330983487592836195936678904404294315760585217591200699788000565764567236553613286808740696853260833817683897109755323163679657859340390207844808389892321514410107538781633279333463276979067928154891891321313249405497998900383709389721167843164559336320901497208886357199626816698765258115513376344287721611833248722511034864413505955041539676386372028204131990188372923264951141755375315331491352503599917509586715349024460099103112100183288889371009229099808798028512740798019850378682109633995581245291970595523344262125182371315792323553957713521569706430253452808693644636340893500193053330815417733321014611277687954421035806102636032775229945050843026313445287065151675690565720069127783791299087268047093740623659467283053856553036902825665621382688769889817324770817192371004763540809106843208560483286818899267530820966931708944070052912004303567113454331501055772957183218020300854199153204965062095259981460516442887707673450817439165170790828498667548573691654760309357775487459486280740689557255128181247145907718542420892773634550077649488675418245385337391792269732161669561787411018465144240307691820314744990720133213383673370055308222499474047867805563931166354610622472936495013631699887454621588344443450316561703094119534612936234236305240445025392622913548839529464828802412765808639863855203169399181305199819526878022444073349013889501581897068134163965874648995370082356944480543117531884637571469595210133348702111645975075724284088686911103617339648782417787655215396838079296282922920890224234453762524474730615717647592264556788235593320715189533482008634856093689189820149388342482547276063964135780432780163872865363624231408919951447216569096319880362416704787957873689820500283157676603267310660925176994234241697587351461543989189377133183956039504478773734079598122640631118804597067369220229343580630954689984166451483329483193350920921581344823616095394610300399806376487066800778698656272221348992332932577124769070365555196268741083983684183791423902394267985020652544525825957608190485443437727186035899064298111781311434715481585619052265492093331360245536016120957391957874235364971133335472627714859097141679088250276333301983889958493396196807653914408168056996275553618669960462338717318366910688629460778018159725979936838598421188812791554696409983781166287238578295344404533746194928629946967079843010329841856161357166019989369502784094349282852032400138908146273874603669586295037322294471771149008480700195401008025124432644751093979048559074051611356260676681483400700582708294776136345253899873813513651171629962891463236312606632880305342406526184505186184751381165515837679321183869063626052393403143216530891988099322028187426512996902373513821979044923909599470187933970613244028876029536819933791863086723642112885344223452189743292278402883285819710050136641130551781826977784784845486608577256241910594748967967386812340233425938152912776918843277451687056160033153781817843185408588755130015958232074453063024726130899860192808932785471806709923461129235557925229440610332794643654387884887413363394671094789611746947399106469785068965625349526905885988833764350982928004001384732588591127144125426288326803826117852687756423528207812739841348038946513233559961838567634251245293561340161503377653088096491349065052486747260801948267777916920535480936529859404691383358099573811014479282518761455266107604374434848966823687076111278606580343374787132054783530281578249088050917293473321754627178004713637806840485315431693101104573538480516087703605643642344270119746178951381102758187983756813516973887314356627316587973998303590378706817492854274654852649915424393645187249601077197332694586396709043413655838184632085991833542371225219617135192812479953008531347673614364638218470132546027928597435338115714010135316855480895710460482079752153720284493107200185174763151030353294081048278908891687238733028824488219325216045080633772539466739870832822331818600226458422035817542542401202507936014487644605661743960000101774173356837084470476772005627317430419809107368394789488461022333463890219478164870008070582411288449762840447742382216111981435735070823095757209338418820004446472098800856886514128697658948742335096808592358490554468516499782997333518625267939046234463999723373381061811556994719423587592193758735530608509536946778615978245439135622136945565224811327939484009775978430180929952042089882040984268947602917025600959907859940853167302913864667985760003296119087481765360032200790035785636269497335087474790469232814385136833015136322757134410082789085567492334857716190923966394111335341733314146433474107863689669225063574446972414726195577527356530106262409710609897359477050206780277984301961812076294637284471085901334928045260626298559646563209612746228282467026543005304110159057867460849750545841340845094589799365896678663708502038670297132702692392197861718732277694390956509309174489207655062971989397203212422838703666696345897499738317339054528825013133182495297000704226310856058297154275038401573326164102284674483598487616317865005510730171238973058360471927439212675206375683265830693746465652772856349587498265940174713523091287267165438240119798089988852327458279024144445054190044106980168063062988744386490554307364433448580959231915722517896338063045184135237341207463382558733365601111141218061039041136975327099454054784865669582576518885018385568460575451374995637576702408352063044346991251939797958670236729018609710850572840540010272768062202347846034456775606400051314514736110797539782893386831466806435723258179378079572064011368135378966082916701763146568159711618926454899378087044458814444946766726340925145093523503698972807974809439377231326167318055409520022852220942761110192504005873892831072884355525764008069058314104196807067859015467460574957499001321743192132439429091734049626341274407587291286244347557835130495596491076324046249862916426699694501364462187683192543133134134989408828163118645083988115147142193504655954070867649931001258486086644843446925079411308167433373324182824383447362809960927984113531429934053155519273640022212502557260872287800852770786751666088018628622857967091858919931286784610870724730153420207900508333535232472625438977365525435934721809635741358390293667365467935555961060603427704758636140519971221433336539448954976621088198577795645540906187669633307622102343645545873962005035526052363602619074847725307124902096544304341831708500453736020071040123200146452809825786316150291757898630539989124638357483252751954193905194837670769392506639788735186424488636716250006263838839331994987867590158035921204265684420529214446110134198837441514964734595581583349103403754305024477655755452899291475704514503881837116260873709489864336486414848086500362062588859602378765425851874863225436592788574596445358983537659624952021963801771202536872650185193827804577413821521105315808036557513540894365310869359359157364389816738925202158716239432825797524614590048094552336475050056642303878445121381827580110567791624126860057615282961003724789487450107960509767212917104811649665583392335125554763365807356294176519121443796222169205989578752451646508837349997770203260683104022483110040724967472506736321232410198478142561427266121828568217162806627484582448193462628164966236395608613270884512997193350465413792235065199460891594141029119234596570086398611297886863868775562854939229307313660159056296559252948225356687977650258190063941364438348615301125757649971122214048107987816597519298478564581493073140778648778694436084232284816916891014666870786782716442295548307590611619997021529223095155429537242116979895655317107782147343930496761189744718759606656523505212715471035263033166997140995235112735098911532196125583475035453536311005640071675685235215164691398407263625631440267609553738574429689638289335148841084831157050911654742723516961889838658910955201419995205126266553652635891016818681494605994723376561083305442502108619444497033200387200745373929196698015695335116329704356710229744185767106357785126811631925097863950510088631830538451464307406893914090281363896734957022458134964644064001948224943298388351875380418946388774671574479217089261321360287305719862428696396740787374319109960125066623673784572944546709660662605442261511316332284515504785214242576915269206255131798944854792533955825253924789233244595556030869791106520202918061240359988425932590191393295183605113031969765326242943017873934400049375066746976908007873605356056101873224439215567424450314734278453409410337952389018656944806507390958210053044247539948276586978725780695039002315030988938959020253582982617252111208715586826989580483312705806642006067767665917935560385762962709607608368050444496616935123920990623242237252883574762248044404417597636476497558404428049569852445483801212937186286102373344713790843459325366915801751813338807474052346635464943582220228042700402380794244939818401922389555184001335172087218046727553648068245922565340282626857367302947302395558624294221960520141940308367009362568764332037093920261782316184719622174423219495308879670152314835337878600195619493963883675953224024909930009009967945642798002565372726962763806057196724628091342505421547784719605333055070795832743991734059267904242677718791583174787332154569520680055045136714777233507478462235144025588251137526212176548443393597080402804108191697935374148103422625899946328495474670861621247780610402351858594489484707651968531562018808127356296340473755957594027478806323205482027719031318215367645271492487369322227687860347485378917814193151395897069468619512726571413530323694801570152312862104855293063427575059659412557090311520565860291735170211317297745743758211994170432782793011159827684836062463489756693997900663820672994139486501917937873638252677654849310635896052875301552318942771834161571122374314625113894221467005389698508861448557994324090230028837124177775791113978996853540372347534545729069514237258791175292903739471795515144743541355018719285686531682089375242672804764195969336532940324111285743029329851216736195590557048716007740546588196762282173677855960400073616194234798078114904331909614329571723058683384437568180043104472673714684693757675468832032258444752627608425258156442223423500608130322192283047458412277227744153376276623232273413137679772897565307935491625736361279069828510997836489741331100768720232977924305654891651759421292083235919917420249611288010087656417170815699442442014353125150971236586540818904187994845735960738726731522915287425806495604777699100431960177609241217684457604124136249951545284381028568560249626637120549619324568668588367799359273817108064458512022929888227765179799161846749288167844905637406487180385264237357544057160762092594240668051976252531032046038940982074785834885291909625808800214696617805891065835908258708058370112559610793636561769045719470053190692818841227795255841110200679097616195697140498869868529095448643375836232240052322044837838584650385898494906855314928236489495402022499059360954729253702037019939837588533311667667942354908645240061969882391917658619599510891788403617768145410320859395623936590965224995081176401516183261665725330080256617901548918787248649498643487480233230583346205743849852801732376973059135723160530829240555414406441357484779832357390683366040403725583971924270863732592481677579947365646543331985884920471450341640957646546714589071744855112114251298815717918172541693568405967997501093123808136129843124870931180423144042060700392453471584554396573356451003670292942518481096407716037912850798567719504194422385391069940425838368734918988737545306508296286677681372528305703645459919929015091741981315667528402460398073878132152636621004020513085604304742605759421671177959427909725531031612360258159191429004287265752368554623962750289022532610439815091206312263836357852974431890709460881506511202243348879333532771985675959577196062798246227644219964276603100909982576398801005504396624129205435286792363742838187494183216028795629539217616187530232545483618236512739895454566544039383945405380700501361557424785024810045383427142726129891862580303555082521215573782652712893645999443128887627588598124051931468717633626453937662894678632777192221056171587725341303169030485445347839182002914282801672986183399887806335195707549642215251845112181402581012819343264079504945025937039299694687677868347040024331451564555525067225113274384868439638204125746629347081421905477415642472827847686540724465411295795865435557261847992833129795781506166481118540383128282942138218975539880663499187904620074713417938225498368118587874476338292867395377874874262259295056605345515364244718510184315846122139123455793240136943948005192572455438718976986796195903150075514285857460113250828325495488739441957195595480874064529648877841660183891267808638806168324801383052892215826232370273213645577151308945236625079234621211756466373613089836401888267186593084231991488849146170365648241233341787577741336133871473144861806085029108293226958368720121049281537694652021260637749523918114481594621501246029866719114133929466139816463559791414228711613804925921632473020718502461423416602631296591706105158980210007296973639580271211795540006083689044896611143201953338712577234555894396593609455604737704323116544788913328105597686213925203887229383994588758715065406233620286247339465452924917691308643442742943862313650400991845379987596182640622808484115637473591040551931204928891160685877018805573879665454836554811878860791058208790436609924667772763739585255658176072529593384282381742625363991928660800249729540870465036347293373764444650590874002655098849741598247320956699802283102611472871741397443175589249750276396206342593338949053021666788924886056531771915370773085897518815268968094576297817918302318198038257906441205838618082521581866576734710611864706615072075674831759105369870960436709053015182370155643410113983874351534877274977504556140722864797068498497372309419759202593251092609133791160225488024958819054643623069901524498115468032745800812131057038246653335449801145400876077002799971182067636406352678031587201804165600813715998607155430090646194591188077035465155090509520398126090348889257954205134024183586576933943427238417619628364152239123493745476089054843064542189087206833637295297939083051040393518829770143187930677463864281361053128438597867864559335115532670318797652550983706959042712866978441292857215441412084351263834153640037044684006932577179668867873370199773731207233591181341398673908832757759903702316968031800225533956612455854921266153872676659438553255611874379802321388981826151420510359851972504358130489166201733760616578687565435992384813325876491921776049864577735999995064342381916603724997629378739627232396337930357920940458405032554738425947034597620331142672218877129040964351211359614980191024710590951245104058901734120258026399962848241252689863797479617015189076314060275455780136786967988262696168795045823024437310474606559532224938227340183745709300228441589094947608609552483799291455034650312383078779873629184351449022746422908341098064699145050888602532208173830072889038285264353961005996142374931519343936992520128021413808613734737823023935453498552116980055026608758522419460682640587946131089894558738314785669306237724022518923135251314530825134338668081950175673884003811688203545720925922878133063341571849746087356074931487575086022983695204140552366675506939341563837885708852641818073845323549160580195721581681712427831331638178110657318333545701845360474140953249047169452875591311796810921322302551101484240613731555110825324782217847076754862853407473424159564764594840930546092008266250909402152027390677556585890023277138858580761961806769757883242297885952791113092132453957989274960365696664999407430891705540046941932743230304526956878857940438957002986174718281139498577489520064429240000221794673938864776311819184066159947660326826173518979238162062344919980420234629584817286944427487373250388618608240888534249689270983787466745728123929729766018917114595170818815408241822463430146407269826156906941463496449127054197878664334139382199404865147773834792259104632829613586943845597194825021867993043934797304596783965626263748361397505723777079018530986862284130326477835821344958090157743539644552372128070452477285580470911901927797871775852029360124984724123593883983093918778329366550822005798001543222289191062183862190966892356647310811171835245873086103345168649232851110020274396253459856353489826558081343588918282426969354090018764381999353157979361176862525879901624437286037085824549382799391007510622839001637238854953284637557037065932013087438559944106493280835934768968086349813304349054653999106154761215129516798547394474200728244022365300277575554013270351962110518487479574177777413839680534695174362707115533213662639211488536963698128288651427193253339155731431411272732506378729570055385504540793577680960245768607626073222608178265248746965250469242002162177221437889559976010418964555346077209179743627838971713127456986508565791653302272300625374950993244643517370334454873701091303463891895789196220073657888632272046025719228881698479892897343953365228582209780531913871821403754793928874056172651049989880202037808933254343823200756581849729619172649512369400823008598073058275699504466152999458796886532966974109951243839223369169969675115208639636874857128122459741420997559352912242186988251132909726376967847655877268595160041064761418452154665850511519449650094327772109306139701151965965668334678861366210269122919208065973379256459826460442706705524019155235616264340708333178141318007655020662551731745078161521567564714108555075551056038103237096026257093350368717826295881940587504639208914709477916829442955601615112101814999541911113308201615493700103755325458170599446173912175963428432894829832152381670395827217987952429506519329473820826238824970503753351478559954407749667256044414855036669245597257139360891289694375255676021738491853817296305374563764691020058712997598449352932217208118563677725133304297127972291323980674346670713216655255955190887604054513006356464535438155179081052161000587926036654947765835395146408452347208785778694949121521775847521151015077975275949149194367242832065346259769498999410699154130278987932039736906939677400074236856790296925352588504242076464444086755448474941564645128051768383031342944756847381139454417706368867676096365554616219079829562294592825282659093387119839545258896108453605511637511434871122544216171684308204178775984126616859576294463319488338150270179179101599536748429459493338298129718560132286495360101799849097167317562196625846457376045402811346422518597705521071148404806419000086369400920782248636854236741867975625415024441188711942291023423313922643269278206462532650580023095132299144429309462496514405403446430369628449287240871645610578883238646793611266945250367146961918804075608491483168147476995465055924674666015169172523927243623259037906650044690014746805288106566430032092180897612670617644069442736059600688924002081035348790578053025623167287301784488437738387968787076500931717485164024854587277257931813686022321647328532936394203369266586510697914691156244915497212998854499008214713502180515904490300115546978398011431241321318553927396953108997607319991684790680430497269114620186234393349260954101789811884561188245187948116661697543031930049427801213631522607432917652728164735033130056054605718740950002657250381240980063260916065369990648071570006896039468922867097671593604186083269985870976008375753261073208167892982975353013620238352225155824826456772303472481904427277788857894120621747743001980532479661086947080501270292077641237235583716756745753778763669583841160164764632654163360446873751316874307764423359043435711965275196905504278148286558226741379949668700697753929562500027038296713555521083740603636768292517900474964119380250575673581542698118264023894078468816349113293090563905651819228338048622702257574156488737380275080342674978193048022185079638260848972742551002379903871924508533367265288056528228839624756971205214712132742391430137015358048064985079585977047450808363553812618362381604097278619917855105089374709546324186213973661939772793571432359195637349377477492080276371638219063979311679945914891208595469779473393050931377846611677981046992380752291258018427478224681954232090412591059151241606219000496982997712495004889094698489176009577135880434126882011181800576446254240774269536761536107666110374893717820082117129531501626996230181949549458484250863973544799574828004474698740552948154425206813383369176984706679527937425185489232648263923042331673349510197946883719978190740880319270085327536426324177111189548627625329334410933452557946237300952266676549615970223562474851910992585780246286503310886175426387981002953607281214006886803418249941943381666220198066051716784057510950348395580464076297266077689440454715956369302413204800698135933915231535751098985274000790930285295721645994252208580705980554510784435406012954197316708009549991159994627383292631141516658979914747940005076334857278527798309555615893426234385076733018575253799780440017764101607708409528040062420992620113732643577944883552259128642241112766448426745333147945638510901034342476880455358026092091511532004598781135526820113596577175773645924088189317404523418348987296061800783733863776289427338910683293858720824121175303916925971002070180758087983646859319125552052316279341753706737000775917469195042724639736983587849516467279305206071924002780979435902920040165161616094526491777021756806485917597335460848558920081175373745388187265098613999172537221240974562384993222691015925096086722227296599569546902801099237101969728332669915125453419927861504218560761655419416827301051419241533118531534256732354278464146072463904348871310032827956562526044683251320260613865999278205075382228820431356407887474880992665085838030921649688589792952171981229916896269969997470340423434731780149457305731224438699238387441208649291523165829283805784528503260970057978537689362861948089418894628771529685902452021872601023317107387084290459053051789811071027581851201869756758077495088308693840347480140273222090659801295372048780258394157732430565740587860769681295065531050623303096769234011971080610395074707244762968559748609477010056783650520490344174029410692145873849937835189443950160705204012860351721149247458126673940820338366515346611574622019833665832279191277422603117134809239040000069133869205731160489693832626580391865724807262596626346160698484603558279280329750282605184098125867918478352610253611624474441296408337742152572406453281472533243331677208252388599683030027217655253286899595491305921519878301320582810444493760288892939351354784662587598089409591300160347334689159563316529701922411403104185375425580595205165646381006875533146782181950457538865148752873369836680017501838916792894982976012899576192492430702388195675955580322004084074606348252891949671672514217307807255808635593004243498474366240863481035552477887657817431287031276824561325663046250308013362004224554994340098483267561545887516770970316452756511859000395526905572324959185386057728500837317055930086390596313117708709864025089387925351654025753825539021400285222951830233220875692465275172229841694888997712422346539590591274049077585953655628541810391275413545327013803454593952226781838876284753302365015192721372696902323870196674809457755134749994153155675753073140088781271281460654371718232386975508980263482627795758386412267615609385709328935141226132819974761659014820152366201326500901667434884558656877770533703435866162174332120938965939352208604418259440625595777739615041350966107774165560515476653914001994645237991041187854923161138856374070165933658005662202123310187529583870269422895348837332404240433474296321451273124708774228302370459982123899427109308156159087960749505338875035009232635404986114702975665398992071555060342857108860580297352462869009617023024260139978052662986953948086535451960671443763673750596962556521636792948947063211037130462147887305352712285041094830069357179528114667712472115997539343318096504727458064506019457866325640413159383725501961682112631806980383258752788824154908917320097288745355546381425156886256180554141031218295109298288445046583790423601086128942097075685173184101758247636424940267220335500067904119532996262773503886383118963431657210229330816577244354841992827690545451768421357597037686995269433000622318561369300123152999379037927441301006711619910045766286848858973347619390266984221061875828321456163987621425356828591022972196539663906318529479454776441446309887198229980338482277671250621847597735838230622979311818892194977719573034902412847557400324720515387897234558479772671830924185313292378341142711992170757210116673471246646096770527604526843199228134206832965512357111854163361515733136790878572778579914741319918376982099836811936369715224641506940905232232126581626243394070924384918902534720598063934041462865989945835714685567754991197736710507653941312195113299220591262126088439216966173269136838660394732544035319749253696661868260913833449196407873559961215153350540645989278749848903489598871814258273731088174297725856575265995041309373956586036932567869401072266978131113724027462316309143658164834832651389796890811627691114916328717845732364766111218614464696527553237631356045839074439323273888612499648222635343461879180254379306661339905194977130944655593918107535678574390200016699076065853136897831568802085720370324115180500743355832321236005484702201426539016285774903728173169832099508036936365125641172897048053891485458217983850771110104675239769738185929915085767985118033443260153922387374092801118562829883028259325124582077305590276394058069067052108235534683270127542017471968907865695076994636934939699337141539669881114134871245666224024471515928940718000916727640400884176907288875848266872696507708946868325523626658750340658405678715140958967750644067178734754643483995855770118042086969910681282987904943621622980972129572843558508738821472872328351902365773177112885988815910622145078268067740614799606817960969140164567044538440499326634744384025670341323300051728676685829927496990473990863064137485442321828365543898831742528046412101177421238536552160901822389101931188961073658333152855151938349138117603031744329930926369276550001692989125626678014595291525558626186066006202596814362271249983275591700982598388370825288301333396605683183446169437790293215909348878113123449336063101852401115752708166258790736266027154296395464185197296193800695085935075554425148414579180239965170915989853565145335631810234737094594872687119097496674438659089276413913168232980207082240558943268726963166031356400860378682545601143583945044156979409702963426472076099138168268116591380271664896962603019161696367102558488372783865637278697436404737101117030666340314326379727839390639807769416196285293769827205263950515677439634854387205075444783222765301175835823208383948544308847274802001841961269390859476291626874466989124605073917023830359073515011708009651210099882591829625589112150747424165535768797877586159206597798049500346472626670379971557389737239618160992108335244942244863726668312778289626691880659360389937877094108740610440225076514301496832750275848835464440850455892385948941228160342584629418495113604706867227496643496992194082349671874271014474321767252522038140550778274232848099232427201243457505648631138818195792254209114430744477242074578974603215685549454846946439234863206994687659156998646256673626442108367310900903749314527573458583234608526158510705698553636375038466231821711477049818398848311200949273412571715563149758881936341236645571309481030398307203058920862371612454560435259709791639299583594628977587522684661164496501530139898637206678887162316601458133628033415469749168187269617361339993121404982606835098110787462760037106359131007315506999190676486214228745780948990086205788651519286939269493258098268549440449154356435520214984036359428794991881656117221941745089696205291394998237433631849231370735046099330105513677523544971287121685088064159521411917072463263074878033639390369202488852011956146609818124454309424806570535446801500172014849552498940150767639279935154729690814979663282842802078028667024837220149888757025441576827247880960540916958402210190908002200347769002973649464531845923236517755456411092595895073682457028975794269711352143964915838345362351554168286863321009536895952966627042469462620965065723164800905856659304456614968622182724808631421611294792475738009163960085080653368540856936376100988431117176765233459623880885291548824719898831377249547739970589882666713208876894008015996779153756968587551586905175729444336786761958498429085278331676566403570464367951003191241379083841408046832580175350767592894714692313670060340179420970283088942004367592253347470899892732890069411759284355115089325780647283724334261301794929372376974880677295633307999562618954644597331314320366229718824754776431761365213440881355999747679277496668286669238158682681891544652989258131759909138991568763280937796897659718452323473223445717754128906573237945264810077399615023167781809780540353657318092795554459070538630123932762612456259048508105868786255653242312709508332622782934905824044560170629816172123472006952792898426033152772707416724261542312072624878345062622819276286465276370227393214205442774877687867249521707993512817675868342596076711488414324227703102387411153453379486286732793356488475971643559377675042785191624033646484401509220618349231772541520155909385016271126042477964083620128701561654026231843846803756547055102651953867543074721139742753804702155587128847064797267334924843386551495313959716534797369928633764334571466747525245701354282152234883518272208607707637638893327842562786322576669838867145739711033399987568404124708492701913044176625340596863368954966169632632495421631062290220481027419254392316236189613615168393998090638766043979706792335433198141378761049119390081085549480477608430542021104906905441748582094835351135873164312009186565578351780103236536465053280164622035425525028434488240884892793742763761343275838691141939955457677849191250819752616462979836482796998679634486140784144447238096379948991717442329013259525597337285951280075356181758281329328375527961767888212911343907343194863119361696639220946012332441881324887268230235430145523360165139682809604214858969295705929983040227698239861486536836323649763941011688874389855320098348699722982488123901336661492196177889597885031751837413995108345775323268033253693578485256410263231422324721171945299127664029604536334240521579526168618335518396051694059496334746825759542812420128066205177089187932751748974938641750551493959269602956550374259876403109014557526908348445575868793952511931636441378815638798436625533690821188839323416276868662032779974447621195306987903570596436524821805534600341753985406636295086608269440049120038669220500388428122555165148047753164138283692045596119744990294623512720929938589112515504093004641740183329686041748048353565567929709991469962725100531286092352737927642066599364791191049917926493005120485047461120806519813272062836241825270941786681123295063953428891131643988465520008760649766589371621732315368159640217443582068301259468951856618517155767449055046104242398735655163012308050931836288532464429590981502660321481419836474797634433437892643819896218875930498570229057315521795892738287808769144731954734142291852459716715643100454873485480206513508748001370705248427715170269428715348326533746292191002517106181024941139987808220946999860195641363290926002463436609222460410690756335527658344805498702944970799736194949168033576760928732729422340600331262274434649557097071443998674995983709236339426987882074744458321338640764530036511828005459322797878652324266340561158683200594684018346711950507734884333322803688502612093440159624641291204579531932873239852398647684875850362605605050668210681400515422985576014630819602873669187464701671159089975195327948017928418716229991900156376000842125937278199325289848141841628265115296646944641337632368576729414018057298180401819704186997836922260994444225598632331859625670146455052956760727762018442910855565295357314784183238184290394169624779590836444854963969577703010847022041435655402293364312209255476370937174265314572626034189324599072930229714421433085017898564736942501537375822890002121699832326107936921710287429113243497219390953643401374559660814795175266272019447156301212727624614621835798537816657366207901324598511114694337357210950383360997477849744706006587518536040313910101817756305216431844738447520828789803107075414456415679970728640000632396353744087930183621138294930619341278017985691979032216461480001060478903993733378189624936738905519069266375551850340371294106811895029378048847072107629171646028501695753284760672371769134709075273038809178477942852571409445605190940166941519469655946953769676670342254644934062722595787907309267465529160127757511560967275596543435828287859736102603141611942315691014193613736278732037820543245164080658832123287403285949032354827316890916936548157527664663653790584777209223690898568902330794695322843768551698619310912097063280183881121046877383419197875261711055950359893263604652061543033366851192185548144468068599252295193753008992853438233006531185621683807832445741932868909969743118437263717050702216149624834374273287544611249934289370139546152677600634310836316940778104786069350346850321533557431472022128781436026036442662148862449080235156362285400006341948622350126169306342880145582646075412398763565278489074259090831599241510734861135416330068024655015535522641592547693541901796519016542644521289230450158320397495615365732026878987807675207278417589656662389613589045134166658919378810449448458385734801372205951017234946353789743261420941531425296602326655059924321968000299089672733661847564445665570343837812830201214384434298859161225618426122156100307711730626385991471918103452346646610714011214258087485929608804084101769758842413584821668866560029410955564127147930689960675937895842220366966884481974247051135868098418020522174712314178784003084942796146323789526557016231320494297625474699554774456166058227613751455223174097675305671232482150241737719587187745270979701554946957173931118663748167664315409768808417145894987968772157671911022703001789621851193918724675651645786376176236095056440626958358968223305148532156984745956354535487295199598427142614196392054437059343689376478541999200310664416128085630964437378712476148197459408055309914142315750625154405495208162348178630174985469375824505040022566603183686353712154251509187216851539123242983578825224100864508031749790755136068703853025900557384074461758989046529691679869846733048881502879614221405496695044624825037020092410587708993568439560519262164699744317878285486985920066151448869803806805052835535807664608471978360641801921722797473749456136430902617596201451212956599785160048889550366398235223634034324834517795410313858948326464068343043404870763571601210578294676105363229833022163065773374852082253612799538201575070911979848082745744064916959333224094771706093973873915776286969782553894120255331905163063787331723279504062102516466632025765967759533671107651715240498082009207344081816174093690806267834456800853378914784620862290727782342630241584138013342080837078844481774915837207563103975892776910558280454594130245198586835633536057746521687033164957619174165083269990156219304945442994641132242176846312209744431608567619219245067832312702738077430499641915523733648403111506461532329994080397868088324051687247479823900309200336121006051663854441964947701396599386914580020916153681045461589671477403632790965760928536310764349985015786342192069422439182495838471464670730078902550098311288348666390328889589633942804994368036681328201128828361702878581334434893546172796297834135606709204173372280046772142208060487382483050599164907308589785098117446087161631885160754856459823583613862795860425725856717456570116413676720558924828540024367711947081482914551655822477253092165426119365696820621511099101684773837925091302301467649081828106037173718251021604406046195151217471098630718220923200582259682733204788655695193628539435996875918346398788259157440563480702500312903756189314977615875315537723566445200690153898575272646500201846960122294220084645983156989306927978148687660784884509345906212486521694832149611465797763286049009978419567102911365519089892658962654283648241752201482467897421586996008764514724958127424033676906145579179410115837685411460263434432553270839431760904511174835996747009765531670297247477038635457242611299705522116277565797202285316534353528892339559721532556827377670284768661873129251208714660233679596729872378741756072214388264195656284295447872983317603477315676375180234906870784206723657125912602170270917170729490404947775082165433775568300597243893668482774298083033904630214421926061131103924212802743213910024691198421337479110500939704223614135321387742847324667904888517795896622331095105011197771493706858560232313298146286287876818796364629854549914074922493854747823619368102877918344082750645912621281857554790939196406939432188765318300227880685544847810018878961860809328541143332484468143234605919654242834745994363582245323407850966498588593758961194367797474407505754646076273646386401203182665197992000190561589733922359487142346009769399573885876520496257010492261707659817786072519286850089969968132973701145350360511002443799469963199231110826247823992321899158143367806189401441323301511180979853747032429576836187268751457072038951845573308731796511653735593081532348280160965330934472208876465729602822258347694518762279077409948785616637023569312230626052707139411437129299086923881717678431683951016918993848093327072974898324690393118971842756617080537100011799736962404638144075012291744091642970547862884885626288023058960644696097034699509281847279394659994271632739076681081403656867742120625631968905273495600671913838090041941354539154537011854134302278812528445713519644697203960322325083144945699132108260895097745702691516702934752251384862518819441295452159237409214649966405736746411349945523812560076339087453114215747756527115821202992079476046810381926744605694908055319818110645457801870275444614372452874435760358580382214609111569411015835077407791404078072696685690836592537244847621188121020783274937763263686425834711831004995082882197435509130129580751075390696322948080262933298395997739228379387665047123227102014895353184559151529634616643470995086234692088820354235832976596169355349457616079352437155907671176924745663639475852260438136193398121459864789425857964057325003910469984168854309807390561007062679205017263101678997121302182357653789338382238523524349458039824666726925146011503839903536213486265040681587738723737002280610174252780007640828071346171859911113073628841720425878768548583376582410822917221109693270642791466309324138894461171947247161355477504158759390443622686200019739238067741757637371304121251576246206429978997779078927618131139860057638742757348240571557730384982122360329199047868419756529266546006046973005677300591553617972850281689737382647221298709468577963294635090535763204515611000531227591680507519400416445407965140981156099160322223953440286015347291216929699740389652207945754274804797543336569626316039885193383158710008077703826741107388010681668569536967154283040156762969614277714892666808092183330663967185031789844598597703206523683315321465232572104707389725972713669972791616065950548424947181698322614899280646142977499324161034736151030998531180500418690622717952489387101187500035481730984943389224053399183423764877496969044348247815073656136957502492727576593720801065374592753980222658490983608628094319987331591699909059858311168899228176415043387007982742565986398474091612192047954899510595656220854948296419584796637118236995769900596516369681729527991201949489396856798213709582088202775953636020754315874226709585246782654447363132816970747545846816790086152613173172235058523200796999983008549826097698822094716917591040004219202545735296960081453155783029821666964039649645136531036790455292670726400985709189696618817116307196315325646900397815157825462026645282055067614932585714464417004882819529737647492973257109091800787452158518304182157383829094950476754876113751770850738034297609729080568383224917560219045800799265094342387578930151647221218438880225057181377836122225927322215809467809969298719236832856306227960235801648834369879088058777333726034480619667054193765309333022477503330761816648090579383397296995737029393842535438521516360389142961578191829689960313303879962452556471023503267652554694500437341881951846610952691938359161782829775030174447857400770144482655795703482759617813726713388470860615013510408199560343422218351665212412707695064302591943663472325530190589537900978535240665267711922031588942463347797061431091363885249841264735557420554563937758446260002309791751340662693507163330224484178271420430474010371885458006980241349984640087054580681492770619822172193069535218493279132089225881630320210282818381931550909925287975940197937807785068457084176850382571237458958919230974274516333953617931697159155496152894870273420008028866664206321459043411747040608331425553889417260004323040113906892074921024900390614771430818717567295881384351845702668254077441808430964989890446749901026111305232373768633257676391500529652489718826106734495529870376204924495934469300539388287148881373714003706446287220534838731119628197949760959336103305492220244235130436863529392623869643333074058241305792049407328298391678666408083354720173746987035138044556921576316677572887053472973506030370602570224566377356694892244995654865938273107512610429801747497665517114196275617614707619775607754605722950812044527356543300667952212759928329272743223867999083056942998179306933459140355791738826436247729810896703414466699228339049297588601027854534040622036477820899599855878771881450418229927239538824391635639910561153333964374830982619557295612572910079915560472197322574165485378557004112859490863079478270705352139215848060061255362093179428514246187432895323178879929732543375588067231224792469226934790067539820286287424102755825670523584679674355741366222549512867225258474002389868056902835290178458245286277112819118639815313920855784612496886194957681957500892703561334984593812076649482461740962874968014525325596068696126019458012510230612918140261048641310146613610833586397239284949952781453324445878138551483377783254845772115082777029867739192598932389513019405511121926948421051668382799259528167589205831092691647431155825234853959802259203729183046699796345500641266428119142861361617506309531540186071508514117625432769033935876234586634269271452482899623273111523817526192469483946237961250154352842028305908436117603715577375818733749667302995362034905559780743533343990934394579016429632921651946506953787600690731213472739267138169818677300431808780857312949136865162035463054462129435199289186785662857500857412147145183431799808764163731074164760837814955763647485230551906616584403000089899228964214049851266539923767754903470908302637418298085861207418836473694098333674813295215937998120576102639476598852878790587083317615498772158289680858296280000013714110872753450174699997819587077766167632897486638656938968415817310797104169974479621321947355402333606503678912785118492366713538865009932741538036150795773981804349959649791257626240990693513323505564457055615164704043412418089163341658699095089488979473097591168908732182702906506812647329734282153727635871302307315504856324620275214198169487386077728768687173984210789629558366660218354095950385508423810045201136955949335000717231338676895862508676503433916404695167593330855970099509455850726341822452716011349407509508016199497558482182895788926079477268833933870840513514999466180209597564035609430569843802444613442258008851778891757036124148593381201606832920997294915421465449320002278573936119581540197890161809014602687950369675067955447952701818958059371259397265807987307724261173895818098670557411054510295986124720762326269801816586431872516063474071551679366194146018778210561358814383805498271891606620100205940461867118449563466035557500326306871690331995779592389380590029152591492202655180272764023463154406784055579274148271848389845812327221289541124913359719448441968819263065556647553078600996885261959828153287344042717994636868923931766726017033548355951968708030132766065854213529848835500780239634872156086162753146859682647419707328733675820215399810452171452386239522123753737075451226657394975193725280897397396790949409027642826673407025633413483599474172430993852060607872875651942571394608256190936555847496224221259021131410284827342561633773993234926009151503482748818400551660391484926314867400320070627694857451270333569661432877293819424078484814781669575341338836732564715685919267605908749180109840566700407641009230508522724042666331186661378687983247382852019535370495571358799802886604996079424053380094331274382799119817667805975965130986019007342645451591087149226849561066685360890976134129841275917415862329682763221014406509454194130178429187110320777867421589516249456797499388754170662192101281182230355551188998899806190303821649001979858792665429646223930014783982067645450581499894903935994482284191288323275286715506811976395889749432233388811945044056042389234285974986195984334185819212672626624863847075007362339107320016748756745472309608485121246147120471750494336099050326763840811544075212674852549187522853615453184824451071392089029740061076478684240523451594824373581919500355269748181331250948931438593431604684211298700240932196571037534765916738483095378014830620451407696262564445007676032019988857811947517006932877232885133968783573850554146737142945442472733951567712586697459218622684677165669716266921298346778927154202812661466436229714107110935422174045344009058960469523002857870879089907345095550060452956343517169476883734629189521381763230447711810398438106023827911815572903729623330744717973177737944653292974260604749385650551764916257051273272304478203740375080580609041467570459538211425917634195131946013614963110914339501699923089609597823357487118507265912485282830176709853392237526463147463436989888771084027367015785257651645281923709539118001382365401580211947410397197163925853233495160267061293597973869443074462517430642607531665241952367450204158377037843910352744477339964484664041758128300456017165565983185602934290284368577804728082329050620299896303837578424071814506068317336436066943012798763576285894910522323811901547198713721500868791479539477397530789263068768537227043773706150223688477643703964172389650723431867991867212796294270179996040803848529144055852775351246342433899395072683890104485796959758669169016176412387711533466010413502741057403188292780464561935255603720473484935344885518742063544893127498370638766151246200592577706197472364020988687326607970513108499497520057297055766509595322593841227850930339561718928794461580324857940561540228829683683538409697886436378273441669724339647098984993925597459108124589111977474250033805219486175006291554337384204708361055351440209829535630506946236154785434248144587915966729929491209027095320352991160263576941043089718138812490045166399571939134907509202804158818372705819696708321701391955289577976907828718620326073620192446268403986409469173817780908005333960945262797881895392691221958738496314958176612995929166277640924039067096002730462498660604233320477961662555188339620549148963688604569956049895781587304956258383272051106208198424292105715534886750693073967449645202187107445878762973796289561587595970301554028119573701131347794992430969697080938582666611166839264740313295902255739896472531432753175071338334276178117046684770058833831556702668409687976429073579920848506148052477097021853069804324614345409018627188878410228545598304918278469533529723259863854003146151655882589101992952853760938186872924838661579012275955053921683204969704084623131582329116266784722030912238856452829613882182120755723423380419704542740146667258386157695323122776353330137183403497245920315681153634575221360757578991202227493306850470553594846796301139427998095594145816162020594357327198244951188126888988003769722098136907087115462099848360497029754887212537142475239876231458610729366485742574039810890708092489347992936579395464548374428884249301840297457475577911764039088405650243083524974005870445167160468649920430461240229181158293048045469190817975296775604298167853154863506004682621491386189528308871097293796623975799851322125606082116426376594135629261541388578527470733619094891204367404683430808687289481546718785276803530819363430642399615008040417380427131614203044551242641353483381305720103251118862072499371752687879350935518731480785654860448013846528432826949915482969362063471694664244866486344763144113593550734544811037312828781010345485214981094098171832229265291955590713701554087440686755001834638839612308430732119552500853245818766757676439476450020211418888934635673901164410800770072505837725429552041702342143779616230603091109936373061273786788890081773971458853391140201689626434936598910756739292297445668895513119745006409218645843609032685250729934728450596899863843254650141026775734221775932151143841095225718300869835141489592167709474405165049934178737735510532908983918539772986172951863776317465651549507814174293920751362957571851416567348504262386424694053827385842547269964714459435917699837280063230120157523872418529903329089158533249567422075305889008592491652448496435115431862238116150600311783583753272116708330523369199354987614099741840418285917893247661356517393683281428666642381688547211701864451675191394900035852289961175589339486311607572672611657445201027886952427024465379297780143324865986440501294441865823743347323533655909024739743044761480357326123550653964192980632705793274306108595705320307500690515947376068649263346569769605157455215761357610255525711263218079753855964254248388870234204782214606343776869446572147314436884506075526424822032221151877196961301038040190396123856271268975680469270649793173712429192165359393900102156365606895327455780935634619530833143373017026175862579859075860351290110942024900912504583036492309853487414951222208089473536634930678639754063888410994687492438038694826800697900503723558453423133847143795603448385664712897383370339590183281377692481452176684416129557730623311450397934825281615309944958714341882089426068791712632058084545307748320917488649516358292005251244292052531969990013982834544952721477087011238469707228959500074387512307540552936770397346500477074461302174450973164573799505106411315220821259286849464091344835054093840232010993593634150176089647392611892871152455436950541270812114293775021135703860276936776810151461840875656803488927956047553916408903001547172717435477920264592566499828211723524173288619868975595637186145603768697730862262626882527295752183678840881954283474982937220141478137900108139463741731710243217944843393484818837379940756522751567213687512383901772073415473687843708250920118109648193268073690784729638952544012225069542922263504139695147147591612051974058062437174662117783520490620828772379595436622756896434830367293183331639892343127604387022290564465550577130377660304692933967802242630625102388324810874319061962920545067642421797321544987234775721043112282048475861979311968430311430211542840742890267364078482289762359155110064058555571917262754100953391413806802466258026304415760466513202976885948826831631245128031726195235852067079467349432715326528153231621369836147211998256238256178718943266906954957601618612138263455081821350342052649428520985120855051197794399322533922649613729017925425679071185208194720591700867053477067036953152380001969817613113848013510757161261871568331154569936046032423018457083811327565336628923469404246591234347597042379149587851702393534780871995851558981230823759620773656778988152855292101338479492220558430826382293515667653656024008305459441985408847702822926800596790449790367166243060819428943270759514681883964061268035275617872437321520770068412783771144947227744168277683521861272517226052243294866846701755356114970792338176732202893021581104070504046715435490680236359423335015418592341102889374589642989249852282307285497489332881503855881642326071046766451291197295150376938000303198350858209865802715028464695696706096383090611850906862249243402597558317324559526792834936388480319217287117253246945016548870680890414769500439107567367346546505206983275468879908256573637425784293909404239528262052388545488911387735995604956095903395537139264889223637774691234831341968313807653380806502850945685333107880778451564099504747617438463315132183035532100662742397778619808324296485514083491504824650754250681018411918007714540536169735163183704193541970127014577148402167281643167850292279912939776146061835209825620736840687495446011093613068120961818642317239301079666931120293556208371736199891288742803242248528096385454535924337559423126419894591158080839610377294117026091909490410576573660195020071678094283278280485340692013172204596796597454316962850502802171154127867455606749143415765273626154830427435338410290506878367284966808320480331753045960917689744553805831835130293052659887647287095321324086022041342272467343225349513638135205548481406085542424329013425731957952010082455860679296501717710247417638240860515704482833307000047312187040396376727460703007286824302164022772073135963705082371241213397856406287784592107764792780989207319531012394005674123660201394807172280795264554978962575579108303579105531334788512213619158782407472732177743789389198208591255020073226893448516715482670030165234547781383053834283336216020481848554192726508765913440002960854734272682794274318511927793801351206584276705549122169452892994714909927582142660921512700743347059650695272611616178472696921039643743836480747700842732425293598226460212938362538394844504875705757825902055685166713267350023472882424710880961908908329321900716667479961970362674005357858803540896629946206916875968522119309619590699397662678843255012340931288387370528136362625166032444621535974399184329844946504287454974536979160694895609538994011412927115013132941333357427978737576521017086439699994048749117072664799160132470559802734794702422946215885091605943393278727086310459606806008563175622112865378479818633602541688495754268551260701363323475107929596182466751414039574212461125872063211268454556721047190515000773737481177962309903189050239508360900789764156262460146785664244903544941580918664368598571646642481759544903765933535941744477395250938094769607479003500996836586668341398621693970981572261855854492721526731551863555405938206122882829458528809368804073290905803512120801233785075768604339380328854963630924423216939664756901581691534384232510713152876507634090509152168276089324841751247435376752606761056249161639291907727532334362710149678406762982388694238817280665448065559608614920692428922267504042476029070198582028141759605850248778928647523977987797126589132559034335908023335268723175253222296987430695703980257497746185990888709827277632562857432034576092055174523479697647582664499225553427129281952708236206748484733681586613104668611349049892246205336260454767579155926095590840111556907310665597719773743959429775768207648145069244832112896552070015686164690357417692179653264379028550897119906260225813220585775342019568078005852470030492515153977308643899462334016112640661158784489645660024233070688086868346245129112570474130444214425150449368715225466856503249782532766031024288754718377070497555133351623834921149148663178307892798614551436123982462554326430043611315172451797084752984869789428026285173081895573275715544440890524576605496977175915498159469747993380349693848934525847449871308537897354496336973983854462342133169253422959828673459382452216955744913314752752650043080497266848825808246860791340808346629499874846454840132138504675915705698204626105274528615192584346516553718105544805054323304794580497112944801192415932941521929982424453144369384817434279521219961680653187559726358251882028391638969502185051343919851492951505499484482486881807721280614249127567456238791199887695676032034002724637972810190314525022845083816052137135026572570913308258346542880398121648392024103938222241520488818245858864820938074739250888467125375341168773820859400285593021208513861811929890495688898438208569875647640190904701277183901036293188307960097735702322341613488856127346160551676656957834809911117510435928505455174753760417357795929670120093920481041378004681807317904621788913909426976555111765471340139858510124761289451994626131314044399312958680778890490268562058997400244388909591238062278622557291929489328887120909722803423481802373216927688324350584373940448659306486212360312064190828969004195102772991178229535743895153534913251403637044607513231426932814426253144580223987148682845672611834687495187743428810370372807550926014082610318723908151726659780237012604437846550009484148766802853982286697192680783454523953520911169870826063155379348350957438643004675866501515771211877917893807806414526500958127622086411624536848851469308859886439797696381924061994705028805492024364911029117405026200696831586620987678475028115303894864185021009733897815452420398981264505027019107340989176670408428637900057039882126907995156248406515284328481039992027506115250969802811979854302861771327806104890214813273144603690176939987130689695904039418186640593370849201808285228225335982131921440479793377427619617901854093158195770294880663348940149496687319614433770561827295013027130716795414748962127332103383494296690430436372701770075174872181542401863548561836643137986003495707252799684843263492468061699224710044069072831302631725559611276969596333383766666639885714528385462882411621150432791666263734709906630817716691475418589324067215524746016944944442426424878999898509601825766077395457616558449394346765369142175351975413476858514706624793596949637780349391670016652015050276980542514203155166277566360376607896032740338927498510872213513093412871265349144053297548024128814769002160378265044055099713723526995199297234483532553400159654747456093044918492920424665309284286427881560715459073085282794484654356625356973446014321560885374312259843131394313129145511628380116409914343763331130786765941290001608060224896880295716566572446954646972263384628787977780280411639800260452903932194008158758491720973333388855468979792576084968286147874751348405826990908547057685603453890264943930437020781267155118422992760644381373770013428794499046456205361805391340159588050757807390000352722244609527013861871816073753919415353775621785824358999203228170142002725900708327763669183060225685569658415896834593194227880814474900969254706744788700509716090458697011039859012024772023477355015807610117076465992630811880518475473165813253831043321736056224397496834071557510382900023034352172816611418956690359199116732594190682778515756944810734149970771884694238849462075886180605397894514445791480913655309652868389564657880667451769950027412600408442276551727062024595474974915971771104734559829766745779947804377986668390285913867978483465949679934596095208555577696782687784570129911208836950377082305354066912463098191291320098179393191613345574984818474468240480903276380613146544177173343614882209220110326624834671759018484637557937412683472526572929442668237864619510971989811741226130200130123453919109264041482483391124592737345544450044941906119330710642969018724102561624591132633211784223350067974932017858579681797519170348621593434510497563658926997966889487424773201715321345644988799233189508916680775817009414929488688127606908701322719643073125149761933817825538223319566307046860930163794558999525673789204786235532167352054058329546327610022388915776000411675560583426234971305167376046852776577523002510884224441662265844080200128805785290933565334444337327124273408319595427358127653446878999368607288331692118805099878082901734256887506075636649659948812615535326512087035639007995953382971226668967105168959814641153748343744052252834011030903616914933022433339999800399761270502694000165735843853554199148415597271621024779909299798262180320436467436815425362979717473911647386850597576239603333732822494653947469116779875912561881928090694142228395188009445655198249859916062520449739597244690364985105667066302057887433763493753701610999715395834929049583560397353686029706293623821829672898482826078089207217818889238049960173427611798603670453690877295000991725376142708377642380086722230569410642835361096252654845537849930382613374288525252373088338064815619696573203958234285873012169270074022719877552823269701839856003867939964786049580670259966561828362318346007784371633485137187717359658774811934806455075954854048233845374280288928731590945393608178482498643338317222983084416207049219952849370965235664187075071446582286315953929632156706286395167088517391387290185080944904289145523683990452335956143616522610262477483088915345247181862553361762725855455796400304047348761167505424099312870845251892352406792570129636245577574216452393644097685020145729171002749849004322937945590273984759789455207085811352756369851496431830130095682264851903834103296317012346269671553879941669461302012073839235876624627897238488540736235531763499311638935235154486049756069302975019034858397043486035302033055125306556460210613235354959790812405430221220219242754261180405606927520586233181036650413026575312585556381302833227066480162156063129539959613232741190747570702640933703928088582299821344351022399490834793253650787769046080018613956758199423660809599252454096709709864093384955182768637635834010518200470787567102508432335660278311521321416130583464237221907152419658075076621449527358488243654754808062071163455673079946113518802043347039383393280245325100065766403694380593727559457372525879414217173774061653835713841021325098074456512151720181927790892023966655378838107061539793517926591577139851731160499004749574375369543039808852807928751044159590362517989312244460607676563147595548689350780079064611060280552704778769924965711148753962373140181960459985214113340764207580682362949428054141827056329978387846204512991314467523282443335144725410094236576957506341361686546881420346528476271928842152050266074285649571712015913638840941345888898199070304651409171915410561524044937156850419312078723126676843995217613822540841226286016778170078226779883231752702528605833362729139201564611416189640162662867693714279054301700636349149463141487016407934162609464758647592888436280927212132992447272746623197731565519833948215187516938947309480674045947069329714370057258824438865988350661983668571960868685322288488640991727816744779040389350063486800412683478100548747479242749193187847574591690108686479572093951109900430697718383832796580820990231590995850251775897835261988126366673446981933338053048877303319880924573671369535524781814148106818086093528330728932699181607114099054000727715735578524966965256136012329132590540478094312596450171904805379851414506651480019984487018664523893073095081442179860975626240174730131079535915774295568025608203983181365723010994303961525777794381082513167655936467103772769396610305965506755211706201134645756592231935079131939327179693357122458908536031190121020818926059234367295646794573991956482884114402169274106113865807223527642158032682216826622949986676885540921315612538391755155504915993041562806604736927805103667636879988461236187116099095230380558492180957514347867085308250802056722747215314134054464998438056380950130595100986985203923813258293424889329624996526777017138452877894069166620080818407397460996000849710999664524146859002657129999092345963241793006842659303732798508161840701861098091230551714895309954461450399546435102946955171471229706081066762692939495712538238222151554959741683374346611327584262701844589268156467551502074447693748853782460744955379110825076110813858389139361520765348240609579542481422579157824393297680518687764601847585487102692750683797330934876106051211270344988525140826537707881037041657252845926084056601774235579828163973910368555407968920647954819048112951216342775417305451020144854936011243257616120639792879839264730811494993678968440762755179601141927535300488973671505034022454183641990417650554838913146731196446139816924048648667085338197173092311731789883640772899040123150948639388063917288330580722211550330355900603315461837225735200669780896101500830216036034019520792775381743068339273863737519559748415586920754668089130006322316550499937415015817275219246672470015587929236981134135212906748570437406709670858616829149417737500302808666389649736418425251261546458529953180053237557388248058431050318057012017594070959243760539896495110747486329120049351017015544436899025895092723366441202024894565189285352818909054872301282798237192252067726858097812466626223368525422811739255854942032922981636128942749249835898496692209209259689702434026514794380152671186154030543784812285771321799718033381567643804581604731563134984049321043702217972951065863685787132690983331353854416916834280195004647413023182248173360256017013456141262943698235338258544925911442531151459060853462725865367985467556926552302213256408909275533280597364150451922088265444280538495806775362523985051535483658707504106432724017648511361783295607616404157347693570350297829175583758365245431578219651724188457829877739020876824222090264580593904813011570238846042191906377971394132618336451625985956947993878830748224544302408477953383341626938028797254995774111306435627225988488191963230761942630378536834990866424123830867895752637112587514422576006019037703729711123835856612375636417615939627191361432416817137051317444534907299105496950562151372573588230499399536267001287512914627052201501155977040901352870255548326778799145518983946624056691243959004719511001016983690187739594302793682941705816999352865639547727832397110988052044848230824586234786350336733788498314910365616167727723386167637419243385856465754318432578485666743533875973801037850120028246437637402300568876200586342512978899197543141463120011606257675941278679008374223221033857783222703384014095548382116980748649629017796030193628976538143149339235061558376909468917403289208898013298895966261385054009986580226760742864147342520539211432741267754875192853037714478569849117443166898904100046542966167059405290983350631758474035175701425244068311319596381557768726443262412033021291314893243988956664608612760888786487633994780339365324731304370864942349548406628937593492017778387367923453840506328895541815567215945474434803471070264400256369345799288391178882799376947464667685250795250655590760414442806060885845713787362917384114940572913955714242930499107864601806652932681160352320399490968954446201671246770556885722578861834162231109545830773417140403404339474593079747984123455350781165888092041758779169419765232424983914194515944139709444141486455709852041349518069688049301648436017503411390517800247475213815656856802918882472774847888219265642947177000375294790987831414298532005168777503999222907898710075193787705379974429209944147568610574602839024740476091750048245450905625454818133571235994406070086008147426190943947321623292201712794650405294999534019472365047085924649384045302348731527456952911185111362946992231265781825428902738850008879421304652768371363866796268996427940863752095393011865565501799422790674394083487661782114834741622442817672259108594368499580491833322170618659384618524016873690267039343516139828817284269349436357578047399051194260526208645795926720355352855296331886593604028379697615829806415073190825653157706678789239301384460120400487378991964773378362809227280948413152283817824819271005043605745715365322909347659052448343653421619580205164482976421840547599808733747092772306856548517503500908313511574844563634887266994849468177202013273826089000940166336246128227048606174071570315536894229668231300224425473510856499443190594556401270714573755518494002277669532069557242644807714928994353381107310153677286335846599151537313174959688066777516301357959273640407502946026366237548601864897797038931852796394667198439090023048312953262341951366250134041107791984909351272965471413862139341577136585268080947772510204960457633661923035077628227044889684195236005487542035553198263997582804929071394940804817322165781074506110455681305140236493498748978365970778619300237145399457017925712280185267358382651847252152716980826986922792483846290080658333913012391473497100214047819915009443414431301032940491185695204600503546264343150907153099710794722163069704437368383711410515678497969159109642722131101935709882882203156449275280338218572776879183207574812077777846580041043442044034720257846448986726340262310944751517697259818331021955871056231482106091712966890777387485588753793634187287424101005392782054246643555535093561680857614653537898230743737807081897483521034401083211513902522956611505745485382283272194360445232058162256078468020479786973191669912266344590229739604660189448415666404788726630814341785799630337138956885961830263984693169792471456432705698055743344152046636758342199050453168436165161944530417002586755137729196127044491159745010914602976599491390386510672587249274323500126628920847236446922411413518350011815825539106195852672163312340341189437250573557390445377470272518103751447867848678070160954305674396161644975779014849895146196759858273869864858257361423083219114287941952834714985860911987721016640005756096912879614719665467372848092138829763616186580555253947393847177608463996011321657952943661273942744197801984997201968859720610540922907084059948649447615341856619013439265763738314710971262357739458761726458010179135010335303060282002810552572150289322724727048600981883987232995224145091158492556198482919008185797607284074814473364628760654836182583598934702262635963297332475234960049415293712312459438497621059448774340354672350038122652876071711972186657115452486066421327388159079553653888450528915213832953804562703192584122273799712440457950720703151424729252871799289488285925621798977635448085024702872947664029545450135573399862014475080767775910657591407456284181076841699430908529433463123337336282580505167226774260247747169965356227786458439096079844335316911333866761736284161243312832871115146924118342540017716244524563328069426992922517608789417963095868923435008531854851540701037153098867801657336396363015714050050879668995508356828006064516606404716441888703954069888923040517766365103073938854458491257485365353044924491912010385188038239187351290639991781738026895829483311139565815007105880023014988711647617758456279039986511434666265938530027482198785259586792990314667473331999843818237989854404946064051806310448819209145026822977217219854792310615521693018926278414765408959582272173310360161397465305604970872730172391080036789602568228220312039770437890271756183998503019765177750074657069475053443173113623168554820564547330091731065888255271314004297741546685491835610808396857160263226691943756728919194368618262717413513681716038264706345209954628784128765497537974238592679168740188712894208156024255891483262192371192537420043062251284173699327461945637367832310048452591084583411767747711873717584645889607395819247624322060525719361942484144062531759823190504477524501174078144791410344175824754644682373822215316989886558875029425415142061249548846921442496740415121229454666559755678489219654005171480324680382227666350212520776993605159542236415055667718119146119631101060091186978040599876873020866847111176628542129712627115307656649502376197900039404292144962867107731016788693108858859097352701973869117078136205755827359038678238503748626549600388678786336044081054051200846322244530098322080964871318205124762222269160889252796634914426148178912755783882409337497516889730269064961317894236947807630658469823150140245738086640308723922196311582037240340803162337952848676690605134344181996202108913278818957179107011210078834710281025474804881887191547390296603771908770364317227205852398488111931344313788600904953913477292098812255833978650751306385583899870491541680075978239849769784827867794276712555971968277642795727437123849526909914143596020896833917471569395390383884454212215000126085742452706433614042940351546662667884895474267048618599258199381479184693222630088418876000778556888350579580484071662369394533240155159446074949123592186977204714716493200988553456363915991861824976809550523926381860921278082475588969830727722032516990414921962693534411974539219980576157596804686658545675025751310615389711700046535643618924914072779124687377514275482541126168966729423832213670037343928934892729923967327248667773474395285641993771835692689947539946448119063384980729082533599142720051198137708209839324807127423668650243683259721385525612755456972832534003117151848182398336828365154727888815323495684242899985021445894258930822906345273798798226739510874417392939203080528902313414714578927621027201432427997217577854360818356079941184294202685363901382540906419615340017084412866070251975340151019715448438622411072123345406482010684462072287008741047062845216703864320136476412414176770370824041700185986285378085926433353437290408952022583984412085058981030496374067524748223087833086470500131984780000577761307982683351077253878221052897491892202946956997481826058181555100409785765236345482855130974478829865789775490201039144147149872989128196023081977415437311363291466569845628404145613648223028188851815812979044025824308880468237344397374242151585336395063213517243409685797998472267188951636929050132740160164336254908051358506127307690671064694282033907507272379295599299119878018999215180863021133278817080239937296524386578166874106617475479456194473604285404163069567481288306661162683884321186226873618181467123362455391993404221656551796854277050292191649976459328699916958147700104332071221396404458251753181692709482216416670455000476988682498842175103377674988382452299283840437559171419221179608173538492034151007835617826367111786820823738723274679473122296880842730000795021845577682157040142446082601318920856644604353891429869372486237139893986958651714304229386253558293943470526661856619380671434987962981094402956898096345465310932042857474617584519346554178595720257024272997226248402041790772491615614281501707737760683973906805228806219974740438209431322678026820557805378036391027247978080112652728516873794700156265667039148135198085481243395566380664091167077458876067907773096903774848391315409037521495472607113885247822794579814207122597467815302161084835880342702854420071606950527513057686805153230967572857458163870703820380679355417717170713766626202520882680354065655722287374201430715338549376607567470266201695117768516963967543322134566977189461209895909828475857846261428261419090988489462607579797427566547585306622297552905520240102719004659595615171592640992915323913387821797041844874730502124212248416922626062647600584233408098584390628577458862668624692636272909665653855314151885745167944228362092879324824923144032972175787742439276558148744481424046365664703824535110444498422446277286002151674481251320838297477611382943729736185699197077356900437010715487531365245606688503414158219354197315748311456335641455286493543971984542685370327998669612852803969608569082334800769280018215363913534773291383136362604170318137179244747739418374839600716057469150552719177899012463447682773566475391560646287455445060164605847993650418783293579247527326376144366952279131065878304977237212518750274188479882549044685630842318322320960142854165269731861912307638083276342482208612147282061458184588952106666815701234551562750625816507504412432809725912098587840885423610591900582419765597719418985060587403017182838646732367336639780449330718865000514824821816444461465537761011356131300490242543131260683534315908469950103391770282116473749755819264839239649794337941757395796130429078085336154457399988839615814175746679398497004715255685466856988634799913640116557081088126596508490863115793715611086266940429966676131729618993164027854392805240184876474767535313722497876095369741772088012327549299375307011705993876103956511041930398374323573932521717703764682162421222959755777338760878192429711225704973323256945470405960719514622943640940231541961445867573707032444082883238879991206470794233426601913473708212050373648454442002481331290817695850486484097110877102630973936720016291256991414180679741224231684734493364976639974967654453001615570505396363172965631987347795332721528543762069888354733353472306113941759531010171902037871193213059793529063598241224717580844632406614299183309002913641003068972507854111608530525155786730036827946456894284618615543788740333508843891244087499625658451341498724989978948418899473554261773726989894057670738338653644630940435771039295703569123981491914234052227622862821946851822339247334720774362499775738712683336891524585358787538035786242291943548768559924984016384730396889238865661569765430364014292651115751976874876446366130245480162331999445038986626309987303449638119971129136126739832116500563454579208139066725261686023670154056236820631821006259258199745098840810969491538304204285159549033623082295367124892360105437906026292404031051090678155451531960944532812944255984888610919774149565601075084969006325801758411118016201307755631810064923541037766027000607086989720178537777281166633380911425181211548374825383977564732757949484630491340714359932751252221947852432207907633933837003878147941481948131850830610558587746081530970662664013540585389358269100437530105201191487943687426004306673145778221638576498312580699093481880337036949718370939991609276154943975501825834523672430398146842976027978158575602802477909444478822377263222879860079192585067648129896707274296642338593679434443665894122536593898393262931393910774562273817530822845079926130288603489645942989958628853863741803956807386789089191692168336747470135395032843782996359519691079163593558328294230372284107843322547352047818692838578105501265203188661216370382520839919109634503400496879815603393766233089759334808768215966777728600209872105394136068660110992376387135468578875226448306158383258346331791396874863827255544131421084563061625123084194797397581177918053476676946239619755286362769047333524563387483841087182849173946997735683397963302765757760954009286374814760948356231619690737529691270696230292273424201082360866999003662254761285338841703900822973592879617300220686412170097407951179526705279523809475295344985576647309570974573050116794151910880448646371006215283853775877756620071666292229176117341539017635305587870952071807522114616490493018499664301483028283178724602520567475766202747799670798295118738645568081508009107253993394731723143546707889291488474139654451273248479151478595168705012154783762083781691509959347412671941634581875414379060111150739788900496320142436121286124382954329720922974353376052290109763757144817683822799743013617841923346332987394255740495588395145745256036319796200011590772543633869555024248885097347056060667386180942820081073481332606673520736671090830009539684315498994905545862298889256603585621272507848427364735608593443595572669021563619090119442159880340112442909096696552112340630246941059487927564002266324180999426842969586028632675065982935391892427761665387266244806950229330860079664365667419752829972610240298203849447707731043411626674464602354850048509248783520975976852753671884359176468776354246196309492483783023878128846364392324607941980595442655716190088072206222449559402036557649807651271181648479346381468007528731694842662686950867075762903372739565528366749684959718956475208016928183506455219438064537134308165587020742194411409451989726478789867898670695335055592406164066226003434363727013447384794351638544417567573301329970723875032582993842381665970933860560958733622339540864711542339946614480945374292396773326852648891356150235023996239390516808208075910446109525900905571503360586109806020258570630664047382560677248368811583286283423416043228927139523780210598199772231925931793540861807232546146625494039583192650787900619210209407741503024719588371136868164359167207496663859995955717103523845798180720863068190845489109135982968524220269287694944486066728983896328972514012595814809592197651206628297644486480819464663777872085132148452809103476007691616303195966981779882112463669121154718557310209362974681846159520176667248013084439370125163418817196839601703080059092552297071516026604104238991020048113772456210548408091680483211762468719488957316004029147119596338991104454595547375676468924714537265867097793863074573548001645303553080427421170900120696260849129645408456926934596787457619603011221304078781092097104451930238894543374175075894385219731414803919416709431655303191477866462137824402654455491237431959616113311079525390639250554999069450926992917168531858696141918867638339039666885402697815520283715804901126439213498315086886038380145965889396444752974744266476862080786884618997964869779882099804003304208908351436732375680165268335836389823770697148413108809363636643964981728028586917327003114372713001969514960564618281595894833919450409342370201229785860901634704571911054204876885164679359480522841975077477157645983389999900142227096038546798227613544623828883899400352926759448841073443317540671584327802832639622403535660930902997852020675680288860739065458773579421965790575471444072156893081888962371840525866180294569284759955897046600888769202139840663415694272522631801911321081713717175771256230851654864466836980020538717684563376756719415193380260820657499266860877017668752177271298738549951879365239733286076574596243616136701808735352667231388977213750836595943601689044059984256645615140559543550561965876470747764007244628224845095342426378291009033356037316439068746312064393198412081013166406985204982082044513787387757650063979891983897155441308740361469593504492695176718182013477290495944472104154042772672671813259675182494293513594593121806186159006679726645513370737075727606172458915446333276096470008767544789144632355478771914547463682197925766590868181507490121589431279420324581828336390122876948967403879919034237617014612354458336449081216662671243140097989356947726597937202906044541137458630113045285917646316438716186755312318027222345596856709013765406038532732630077556619422126168365850983827685954333125023545179411575592695836560026998446186279981233108837752862071985678192005873702698151392526031516310608280759640831972810135163571858217638754278545363416363183066090007796184607974887750075526835970155823492831313140230986898032455078631962149416892667898758149895208382471099090570257942417800498135168409666739525689397247271011715599978459156446915690112024047811547341035234257111260511644950130662083029786540151364281991168789731364326177250359144291241982463524026767734910863017030147487087202563669633348436738078643289939159061350826297760020807849104901194550338705419998505015946843642820128779437893636824130934939966128676173760235535272457314397434101452773739404194111762612517104426636337874272131942504689306624161924761207176473147662897383781368820299077366670544898007017517420075706089829656642128735264099294261986858904169499740057679526333356004871771983102313252273695093594966119951190201872850926336681672884559311352057729959491143037273752861047373439530879261452589417177275256924977502851682645412503265016511395010221886537746217131738589284790283748943326327330400808894049633300936764410675167936005592619038237485441567817931529342127181033225906831549711133520644842757784681845320425925640924917432992374419679590911736366465844777694646738239785561868348623391600780325455513716109687285135732444021286030129701587920039305158966740759673538847852773901958633738838314029183140173906136959331627180187252783600849108270550519710146789808595043910995630401644981138027116700629098514756821493887054955846612457858000899958819232165973954505363976362485006429223638854464697815403999748452692987288615153227682513513117165620091598907263056091002970358253880486092894541650532753734143443877241354894505538332294034839718062590242131627744807315469564217274360000264138430798398028751320788653757452919270378450807869416884998012956079998013500742375442302550998478898207208616812765531827830937968799866402919924650440154199830147009081847535077049763589344245242582680069234956724716418560173401204521594270334112084661613317452276180525217933819354143714976896396788890326824100152979072860389322246891302147152294830068889761094092559504233943261096896645667936417413225760342540007676487890403502272247614756117397523203878774168081147844828393490624261531598326225067703514524664449489322953816316067820362014758140423326322325245165387405881050869955416002186679391825040524054433777230783712158345182078815851200981325152151451068372777018585897051392770994548740395789535697218487424178043665275269650514495885806379940270809067969395347173898203799722065557418231604761002077101290044790440916969162486940447255982325339026035373280006981640591923236060832754906145248039794286773035202326577806252281788969353290736358964330099296132513895814087572725804986466582786274139281286375763615409090161791342604848033279568986376597128334936556048748869202917717371040177701354438291786996921703192177619782430174234640525577606111234984349687765559115331407996686326805317848917702742588561932950131676202191445074788212499368440308121764575705906734166774283665151906286396718179451186000230205196356145057824490287938605615067822984090637333860568634071797056920466704182698824963681308390834974088795777618896468992737688391839170725591505150236726783804444813217947521646559284071170522575447097302384285369335153156277538032099404132129723158132247556039711047232505036122904882648556716343912465628023110488044434227307486545507658890535761718311927404057104583817466687892453920950497525813330781525911964315815277239944285959704741493467215041261863725247863705202940160805645824030084017205722570453030127009994696327926249902619212070759223559111833076700694661908287537503228212313011199860767062118679981979862851882470773760433516689156930681779022279160152669510562657400078652868683479831893623653938532249634419725704981885954007586001660163012142574222838051325622988953811289241351044210497768902645228440879620005089861125332068902104296432791620317644537278129369609028036958830614981355842938553697992094275241481389645155231685818762548249156343413316950389189842153936938976261170083571940919905575591506173920432262577388037382099151023954772801107654197778943758055970407031174211293664555781886376385958325556022970569656510082875447830475740810566665762564886998535106696460829121664109662701500899220480751285086973876743688829547643192200772511839326515977591196402421344185525767096163990363459652510121878373570315785992486504390981154138882561544507004468914728456748032191900301770614298122664306337370291643360962131028091362086823579697154777891484959341967556435828239537635789629890177047509089446101694654120685945929091974006076570373673222126975960176990804688058694553434475065426041350198693664053921290122686591584981790637148164344248801788557283837745981195190207489033628140226440119845542471174723077857807843237590451444567153193629478862585529452996703539854869627698683224391739020070697308422617972587301726533652970079215343588595268598592234764644173574856069164167332465420801244560286582288067730523196615380425778064162414642550285914723834533920677538376730411161697530298919068309283556184337818101960234949404813893668577666165422817794727562294813394863510829738473491344303170042178867787177148926433526345803383618780523236833509412297772530402822191503672982625075041347006614879561108676447890991445371245867029776334538919523841636011341999124507245894653950785231108498743226766937088501422169722123419846081046003520212587669531251292385264439614885595087262803678149418900767231871731958251421918295498860825201942719026878445542149329905880692044979277095880030025780971996371421824652877430818463204957488317748035841787032178355254878913118184495750844656634682220599888200488468259156830849125698858450929143069407172639618352141049283850317066440161549140460020736874817112743862743354157087655711862889237375681911513364514827687438315129885494243266714854497692167518922232265664225139149079356616324330595593784540566330885179245350471513813858379735541717476924950158693760096879751830643818279533481162484499365460422267016515241132826651924387440348425415130104729104860681211647112721187186591742614520502474152426756713274806209328830317874227133881096930706109300116767875906116468345455867489475804786480379142107924635966416868012093038723429978720952852407316845306867013230030400027226681834414099688628274008040165363660428455427197984325909397043236657472502568535086590814066373439970165524711160316092620388158344637399408757476728165834221127456884752184967308567374025500068216976447605947625620758928371186952461491755617629193467783361296544117594741472667605550587512767932783676605738774013273375966318922401440619335877434039724263131560253773200156830896474843321740402020962249818741580699181451336559390022517921925525474766077676699438403952182580876366679937547801089209781979356163044141401061085988436497646389727256987486207689956110099865614218890728425063754172197628579079580715777486061940650438023272915085886306064869559713044903907297672655572517969171796158288734056338218014168402001934489811662334001230755080780452445925646208805504632919075150037664715949544694202180399168556895978640618350177571913234465460806015694276771077117453858076448213207861329368626824599021466417692717319514262051707148727500297771713069584526682193796216677873051946478257574127914310401512386434629517943892040096128635995604264976622947003653672335428349850765011256452118774553811163934421236502942563658592922815143327274271030140283271531323547244982296940320742150754003039424216705606970905383813082710371903158063231591518510679164163924501870416228849720162852634516944605820954011012006495818659315474666528166077473988333222518607456861452895462384277390856616677305502943926369721175331486283380660071820914972842788780518566777387802245389957496043484542173389081997707450591696137340419852944538745199906664495831490186028744098288577374397620177380572341007580250281487096241244359415519832196838696559323690707390706483188820097772805228087447014101664082316445291721277036723566278948229634099769934949575937477150165631957446196153531628360489870252928256734313376758247859621774993884657664177090576197633565770269565951601067520192579141375851193843537671439215973331234295618505658778490983180659287929691035035951397166695652017808337749509608724717374503146339745345371600528710304100913540429861899682220640520201351805625454084151960946664620919139810700588822690464881688210684211406659007815659487655587364595320566784969047890201077778023702499022190430092935651624293094833529986290462800121348175928577134630900665477218994372581104908592113841169276706027350836289392438365801474022640229835546177383177489653660977380925537013853032209321323761947092074151193712790023968596475781386256238824015271819257571889479385230372817604987147040860138583962951772268618537107527703565032711076568363437399559644761085110284175999753209296900372910338925984466975586870634608105804640153621857023423032456643535587911509404546322834724133126104773825796611792148461188457175514552303044434928662355701178620985863339467937987035076646156692371111265097980622810239086757402658431356606678493846954311197577264670150478469875728595176096832223289355199892312453948474279322374963315127114135721149165754762396328338702349944348705946248480881689053451389788335550305690377098389868470550790246343924927513258549040210268142466297745317753503997562450037147283417470645375674363844325654266935414919308336569914815268427133413163711702488855684129722761703996785034563154048628450272863634489036999976620755199158591230795393500350437509617046481165980561420999575240634619575439655663970864370796182332924153209315470664825248003523581373846241530625048566527986092169661039231230793941627456935290503321172775929162195864272281483056551089152741363151751409744282034106088657401778905871261758186610084076465216726629119239455730778549641395777648923328739075878732883527039730820250093078150615872978798641531256887327985069098285979534482988638055836171475454582978573788373049195593254830543727980300400638781993446361967180603036577146201824073401458423685870670029519144807352625137848997364859064982607966513308628283124479261356658510498480506125916234390757281292479931957533354369938322649730522819094835065172789543088231704609261646309198618102053309955678162714889445371151742625369177122426702423952371608033686687732494593368550204112660128314051614228064714622907066446913206502194258853322092505203556586231728774118084324017859612581182632536446081074118944764627428496112347763160283964564498626293311166793493408529889724839203126201692124244855779224724705713738862546517133469655132426604561911302283332375699603420621019140933839857613795703034438454114632180889883077508169406810495987068533312512266709982331587740224701251250881861645242014245994573653351080123548259522136973871030778811290629276822514726795083788512741426088545273661914316616721312680222908483115342473535009965334509161681757752244623685153560449367839326846480278765124963138564376222316335508819004453095779957492843513211656315737576390862755513677613962019380244145048704193801336121877902098772011305446013220505054241433857389860014395646582577614620548390718900269688042392415626398326114894798218435829990936455128409135840468116098999694676327653876174914686937122567604282033750094621086915008464432913155312977937160789281088702532436342507546865874393614932403708282422967971109204592711318012551921533729581901135258059395022588226083987023354947716441020282575387289255524842786279052665353659278273471792215687172485087531792340090437072185551457835517166087524059552067013851827705093458685267840721069454826661906467784389136413272871995177822080793821672365534415284102554127362774171803133957301263413412083914300040246797238557933182673989146195051844433475245204399459649870946728224019578459104387424407083900116027040857996127878624439801034870725636694749095183441597280210190848660821760501261294503562334781995080961722645794510822041250508496361481952826952478377312461200395682522974420788764963632953643016673944141664412432671903424955526708145132175802305620645819246523750691316961438325111938661568822354184102280606149685123072049262812512225835212553446700316598084357239972013716721727488216130665443197873695669124137680251425400549347389426024138715848159210240904846287380642640583385588324947054774604495211331801182901138230537814385002104818816642508341026060514538118673988327294194137701367187089846044879942401367455757169825178572851544424739304704099947621201815299315432132962448810178317715740778958689301536721511032933415940682344205185536824866219819300773041930147517087784844502267939825376227986305537783291038665268948792704052191548378056767649254936981391275958332973365864689226795021914466039444526513782357582820232325261776509338956466676295758588015801187686397904853107096477478528147014226478814581980759429118655355944080018881178154294459117999055607192719873571628776073391754911185707807825395441477274561007355664565663962649793588126922986827076836047295122859955693545484320221591039742411943026230389493283750034432091108592333801467595089416002995611705395424637373473550457678944775418119983728574675466409090852857803945576153728682339834401922760298042203356773824697092240218899380159260279877014847127037431826067688489994148302499605655001038820560426051781073751588029637136874891573304157934761817802448652059029199935935383410874467363322092288479199915025379547244284427253484668015260688962365211578657656934629377721526909088888270998568020006896103174279166637635553560860166305102555279594560425533896475773460465632369167840773353116592216080606103197553298539028143355660485061441572862780660061453410287838202091910045579460614465545189015203625048138189310851833098122839721767645741101124875334720325621849649895579159255600373567897736607416751969160067659689088603597695202644463097506834492310943023984486966875235273746702832582757730522022371239840029730297465235012966660447448517201770245485680204006935676140142938216019120542519188405633739851316891693271059594318664022680950192977451549356948791814292780900330542056301998849685599721777928434291605733037918932079364166607102017842391244783869655705008054895647361518595629699939672853373910348240063074928206128384698584146956630480500843725028820801769288556976315740247128585722588121891907079058248894332618313277991422526258004665879965408092504653648648282022499786262298031865361978444414058057843023581364458241986899239494043077228790067480535956888699949160751834768085021560536156587548001946014419048895412430124271322257472508506081689932608722560266781556954126436573826718392542668803269570362107019327972575656544347929478214424946544616063772136277502912615743380170242259407161085552650655880249062393673613036187781231372936903145317051108087091519623692511382462942735854040247816502776646729549218825180652877485726526313491859374935837706892307393623466684780525095202826795971888544074858459090679418324483608262967024759537965626131981395467148025672425166826417514795487582197849416608386728785557631957282877012277368003375344636057336562230722289718792742720490538794772677597490191116415128527629559818938559230488429207740249920005130529535158003118591877304676298368143601109568428521334959705783869510434234289637651475299798784771821946907889142777058531160985428372328947189434474183352079162467910830494182460747780465867783485953408554990841783081308489516307255110892063026709108053062005574819549115815076409586756645870925336078949256072093441434483082083714905943126378309387492078290232633923559358647475778830085090255823722948205941030872673991951275079176238708981533786512191035420795580118893568466193629683321028733377888018917173080784027111406941324753337640893710888742963010547605040065353049853318269644069208733523081775562296753820159424689186974836719485864847808793804688804199750238511396908434116623859044800205609274201354519279382713366082341474638703724815751479493882361535692554922309918072146917892405150241959730780812677078950856586719057066861428771153194489923387863156558754279928665153671640890101751097829919309790759391557009719933481993653305736875010856524897099550560589036516084602955131463499408460892781349221105781724319271531559287030763691101797778130542412295390605158855475311758843712197385806781953238265297223516492710913906963921429695300623037543648813228173325616332680467328145189583927326731605928679787343785655526154522997068909537716146083906269080570943507618585381903980101491665730722377922473076862687478363293563169068966234133073303480687215596959988147325145879549681779984421635313775569409217599634928826522996262134008991439944439608473295411414598426409172829387601794887052399897997148882540506263770962756891792342231150720333308260535689575953655091385196477298441180693314681223689958746561505333665954821662707611838471859613161767550281214389735877878552757275462001678313625611863514167610187321776364268578849057236588552300836493005570546135082108055329230526206146090494305667733171810662508301593042904451081494048524767025526127268599986184685150721396206998491082177212300492029063618365089565775328223690324327744433159465933632926239516036373089199823018425773496662942369065454830311678285281055115843692392256964049808669057812069179640193734983418411366528330112057665609701573116898257133804129801399159652497388365997840830896130155070983062608276362439551251752502075448946729916020783027303201391707921136631054656993599830516227582071716650385209302625421309431454092939849542111408603106219829785405753929797754072192475293327296892212414564574120600387775806901654142086431451637664584120557650986719571144910973127733098327942611527200208716033237137723640937296625840479355316568664317060767020795961863623372963512610668787268591372538816284540388106719622784371842499319412881881936686017186841118315640526578924244458134387731886265041611575469597303844552235958096916888889867379406648233598411142736900644875528841032343467438440609931449980155760384890586184086998946040787007794820317016036541485861164930807289161117361382821454298040322299976191911034315078235419239825574953150627705261190923424647339026206954896818562110697924215259312819169553151802282658231177576995273645638506285345919149661206958400678298450557848227188841876565754634766671047506488123282476882076651212535544391278352040847303782573044023823234365154354298039804398582602671011082082688314783030922319441757609720346289606123423769435459731219726144438600122074549217242370199046763786562181383342149641804234077748498799875162085425292803292856513621958947665984854514223832332404583291889311966103044699949324320865584923497827464670306039460563304420697916869831460212012801650965845833631780952276058424228168953470096879256233660742157001759423437862742080529293974359385271116188412373578404150143144126043642674048560653084081048282954327553269065657906408723573734005469109096466627968931795062924430069851702361234812140334095263912225086159183516674516001303184937762683822669961269076565732057943074968647474318632986283553005198214649005271802496391105496972740274687214711338554116511540824669266492868417968511899483918209158865098327332757354461519503596100881751654180280750520051202872309923468287446463762454090833909259420700518746451295564305709612283772495446698656418230140194842840404624115451775396603054674183055009612206334350690936297078379589804967622037617010421212635804970363164085974223830983084490485637122569732293813605004731683322274519612567629939347159559540372996903094520631419745968608241716571297135494181527844136020445953355100307063769363693439749984759172849194033087604016013846603036935316578850359610010680284316631701872576422515703061858353361216925080882648634946153321307737088159885340546344370034583131360387372565395862389391084585785395073862160650194535066688790442741796023369385384049041146005260152090783708089045825575112239677724692850891062262291983791980078564922973698191748087340561701208424984849763897015492256740399545627075223045211162317383807929960206800372547501431062813137470668444124874081684061596128837558233950182010072927076803534515667281696805413897645574861975133695810653909898285214662720814951489725800902479473920533292207318977494455135858869078963335863646099647804489753991787191624515387325233834746452760375265294799420092431270473730516163538558605069209176947068669981537589118943910166388065180224084767136310891556265935114095802374221576905926958098265715739566951108153883628200788573446239076684129401155448141974478561970729418045680672317668273368480127872403926750858320930164186946074936344992253616904220379127387298270337153123220720350614777460011407403617211776951953573711396279641733945126545354929030786727387725084405536947893860482242272180791392436712081764727930900343337813051569476224369628290745141792117798080706379072746106524779701046093525050849445165445916033714832909861006563231128878507541468718152650599387885077141367146438126169649232674954576854379376417554241924572522020580946493866326865019525081879611867176669233959403174208575198550534014285928228014834844274629624831230745017784902738683143478989711192665640429933691290731098576239638017788648870746172003085046516330818625082036996743525270981384533557844041951575108122378768376655062034980428124001426527685519525925272875541888323318804718043243865304152857035438344334219125270100609755553278415144652730093318795072696467289210963282070141642999227522466199956877136284620317327375492139015692531413198447903260514661191161107594304077928225649155690585380081088983844972381433522097488075081986439056890235638693744722206507988586112763313415493009634936848888986540780736516050659940871018693347689003489277272781874808861558008683234868760030264883295291428988308475214083066129869827398845710803761489144451181629086828121277985056226531339692895995218494673952194492775910863440547073885895598223212360873163434353191908535298461518547347691734493289171650772244554082512041239423762373786946462378829632749655272350558879974368555932911176334362086523550575930074673173170463010154533940622835589626808032517542537761974037259976028980435299933289310310370846588655626594678395375778231863322028289792936208502806538825216438589241753469421064975886922518771044366588879301089477287300905595945063417295639266408414190846628574283850149516698541987986697583891936278072079975538702477906290184498784802653824210586377061864704811160803986115876400442755543789181605501295179303019987454798116044856902586570419091654319302444756488671106474942257537702264658869310508504228092608226965539280389799297767379395604846608442069300256809747245327463590199543955547571982127175515424123012647175956979474140685153683754813722451050505217629109062504543072449662141718555198851848028446210852210787927057870562090616560813048632574191949003213399688151007090705066425052768407755630323455858709053014864211509973045629030232053173554602387479507156608616386827881109867695722870648046762765344541460826360043252123862826888820702452395114910440778129742597657236290562545866477223591546524776839548407333177936204811506297123864694967845659870660711097323213320734162278852580466948430421719704085308012573213232645892688380279563575111400747337895553016639297350971794304824470476094795986882592256209041089396413223262162731178942762523311052792569560594969026046920629657720323229616839110926481160139678026306855169885729320643447882632559192668792154194676213673594568247254811631491135630400030268489489975061288666913307478636943313301159006648508982474396836585012102359053544732537135935476525624783152127058132390763233127205217014152654115418679675223823086537258799763311779422346860504944420247201874395927431911340066633576568783983836481037640191594466996274783403758219583663483748125330122029325430385427744784648746056896013983034711474317086608182070307753805235334805063154063844842039582845496104367377632919013174031925028140961554138529952054021450200090847937389102427765072869800998179076368783633775883955436638618702766375240781293785611303267581595491200013534924506527363486464236937901446786333398007071202327963283767706170889576342650950003277167206283077359897035617284904631349069858682977512846580151209751262873489200933170986754100795413204127075582171320478035158945917510856096371941890402307360988714383204005775440399076742611848538859548450413940557321986769198082838450210634844418689451268679443874934001219670033435425608432079356659691095548560772007882594449415574811607903693473869048450273264249087937748548888009489903610336393005452394357495906840511389003709602577723353925669343010508321329623933294500599854536955968006245326103009573048569133313777555159275237685566276398209930329771255797094844784927461160799666398677203176554763879718700498238389235163948108616490355341443230031661537433231205408677813551455501063926549546250475512126393708528781698160949858130643784839008920416903765425159621193339824687154838735594096121436150413376726173174368254373027375768782404843824112214964593468761274515830075716692545378826037663292814576878499476960194223877338417008431663327106228830822685371470884586021882619711356854719136239794602523737309234966376781536322420670370939342328852367862635982436511648400958196188473537094384069897468776692434142716771578464286773143281794027831327118993631457374088439497356251172472647060914596002377181911194915499272994175610511743697149219145053732160784892286909450977883453399451990523514624692487552454468303666924723719279263807679440466378630134169664400567636391515775815207947823610869328479179239371130514705307327873541306267867646675183717104077087040987919275946549710702723443288008701272190486626829736017255353731424185104946221788641054281044179751593586974947336381933575082567379092639924943953950005741693416458227830460023861139333848294187403861279763379567594743151228149522028470590993984815831106006952318830579416219904169403937519903779061106063430382624848310441063233656985567766898787336517507274514708590890175203893807783752512803106465656316238480750307152658628174992996050118260949945391016827410338396816183339636273497852274567871924536632253145888488436309490335324196033208371587915399364548467122471746039202440390294927809706592390358380596009104973016558852851016420780958059226722357810073697500150361184959706893720344504312416301568965249576725085245986805507857724299668936952735929780911388970331130316332168385443912882021654455916521181137615886770405183311855366335857619811820159912621696654021606992047821833378126845354645156045504851320133605953178441072683616056657557677215244359533890174114356465763961852768307045046154097578109770993221776256082085500574029258380796709118038738443062999953433558999704938901171175425035254945242142206171332146198242627025728088317058767631124554740401203454500484086455528311880268201303412473753326438337844325591330914942511991899134350077162373875826379196162399115356557106518845996098179585216093469350247252522667880585857601940059207460844797427097107147028894930911938741103857151188192809611599733487171179545354311527034116960893915118692796266251209160499226263657382234957619087211838601012104368363493744220123876714069812151044309344791243193099264585012308525071783275083835713874475561184530765598646364275343386018331109321554226551355309087411173994401482636877028085804016033628947431516508090966365536456991881988132699956893449921280345266011145855675901944049595776661835492270051985758656099647480635014479020490746447651679810301990431854429787216645837482977192446886996575503830975104463992543376308817900724951102893979273845308845647940136994106396007034001484034554999080761296747556430880210369024300240250732012915587864295392660224567540648261837825018355193278776055715241291928909541401969597749367262439224832579967391760174809863699087679542050102569977242757559452488454199996086171449580097820142745129334527221274757406102955722842943210867774477948141412496715978578359780391470214239692716274088012118335460173669704366858065600162454704015306191222089024623695096761621289002636748836392190556132191658592098376696957480591870852297957546159451242539567456367227083895621820228855024293448693258460171199120796709898387126119894692140273495677501205162866610376945421235324598429369311966645810433042452338035761370403164513689281516668178666244571292862654122267400553680643279506935030032821823444865772479270172794438662892042410469418144228647268388750325654761960056431093111050200024347352756052430347943468736004475519535211853758125788899629597339241833311338851978125553625988885612424785060810920314725725489531333798744714171083810743203542888601504543538468461529866316177583482253680450040687691379470746111574911579359765879636086852350498918703112796294258790218747040843462885457570096300610862452038295692481638860052966163547402338431021667882013984323991708694691332515979870939039671553878435168776443979719258336067319959345769742917791882874269011929746270163536305658437900428593180804047738065164336867280551678907240005306676461935893553753958595759601494279273823753935844275304818641887458730600542889108292789224974177033368283917378742120334003540730977125253706073162388643097214594560432067899150277540684413337505364596818642687186075131818723105320107707056616302842725287478155002977898791403726845927059421940223870181638363926333054022900859543663575604747650422840726937982104621723265402104149084210350050207763318517424090023576968490988105251478540197674763995537423944104051330665673991074807148236509400173410464944243862992343282771711029655908156536518964387494509535117005409880279501367822721008441947767793619697653907299898490877793016263120801241581895243458068476634755886829539872916840957231901636018246982438405896885529343960085230192286329726255976502971900871448921355199874570249117454296761284224250321306227231684118540089841472219022188016145075575680023573665628858898011485989547303057517153840681026976126654893778853152018912134355414543732069089441401152286366282822524327186234113571236823348160850981873633333474943406140043058078413863961853863903706512832026599099375029390235995323503187858507745583153345859063993511051902202323922689158961369151857985579830553348975934397823353808305846759634667387875079510401071681987924717027868081327541887170748112812374916325998016585938373025481594549042053242995446808961679987643944272259205645440313810015799058604855341467703600067799116143381446790819474665646680349528653095904953246382828567925069946146326728290033695741515114569344504836587433143842213677198438947381713049773156657272629653726842453861586423539466431878931015555679379428152280154225230021889230401374966329993639573449031027987166325657405198337036308408203613694711007226685459914168384910572991577649782252399156583458732709432431489846105103206546862599030387620605403425886108589375886334169367083730299366894285604758719543419860765765585768222196766804214241427933760290854478376142601841208836717376099119516264568109675451430936663672329943255821381353445987284031893520313022139298232051645917260643380000314955537178035273119295275821097395801511096675615761188333363145920436002791031997501656265193545733406497016432597569532607550861467729799912097737697234353568498185033773394505901113607049208742807059777485221561693075609955935377251594195872800126450235889566807382046428254339267653104625695714910515318055210811792050737509154870863470118930451015593500912588977357291944678147961515347068830365299146363477865511823642753821665546814600258035748850810336500518754112276159144996275285123936818773181239671325637477197882575373060681186742532724012705978806586526269611321812005772182885974444298882406975806567275185745321807339322208522861521533321761910549334457268268383280049557563297002104576647297431626713433772218670663010405305445363904155531007202984005194781506026399453507694110763343180243317657995057989000676466234675703570287049666760203989326587751023353082018080633183825056861097134757246185607265821604333300219781053796058513620785363220813993303917863866977417282954544580508680389381397728233523923085215160317174987755046727706795815241719502726491684082944711279730224665604398071267068523693856300273299656065432187354085615877646537291140687723766206515998851356927845073860847521003109859887022838401886699864473756711246696566923853143996604575852632937541182028456521802610511244060423606690540903503197481823652721029322095243226330028370807055324796738464279185662308814225900390153070199864117335213421595941151647480099948051799347949039769156982112467890556486879028440845031169022601612007945981374303212047275487168090215275326532504411261197514242933095329081401019151522612424942159286944285266803681548938500026469868413558673119904499230199425069918885709890564009550214374428041100920077210677318198157986076144516331166129717527173171669478496063370928457985649506818767987745957065469141800602479485512848273490442181799235363304686151010793899979740136278762941113153976584257241518925310720426654434804281025597326119387659455666102007301321487973991029115893224088166212681714486567723949029776505170556190274904876901843068335627717128267540292141912739803282182552090619295635996036138800635651616953352416331168174722223379831995473223249832262966331556124787396751489973421705843620741878757470114221140875918543136529627951009304079283886479166351352098711443530803488384514837512229500657879131717364485971970658409946686421093335794786019393457111509917708689057483725471131946879164748730046367232275243550444861372000234355276738111916169124070792294176853521075149523620557790964145033481098813091674379068016837039518892199961959623644705975985027738732243001147770551021325221086677319539084964797634182894318263755268470987485488496951556560390591888732202298086966323617281251857669314071003047547849855380481168676918951514323920503038280103054729790358865577876817880396208282210698476069528029911098046866725570108531265865935404550441523649849676801160601424165654067143682048298029382857248643993535966915194404309937476929562543368628310722292695116147959267145343882777896778168899670709173149824640105023436622907120986441118356269621228243774107175154046797738565679461279585499419401275617539259523734329176317819543254297676235700419886130076286035725685630794161551354891596439685980706964728170079699628403946839006315226290978437627702355824937451436800510097723535259513007429214013359599417324620918361763517580649872209189425818648329563069240428534047937238451880635845132705594563589352352087059582928375745750720760269398858565253726130226861206960087464676626116528349138704225602853166070831332411952767263888300481473612254766757094247714226715107552258135776260954182926894549260009915790274096549168923751999023990793940866247907621156404523975893416369731956494347620765672466289534215551334180765381362426199312347993360511859228600639161427466589726599810374991389324846491543578022761197424173857802293494189921817808118805903042430324972784599573119958861181391764275454911295807173130243876502892445515137612371085068270500657176653730562244150621607062065739015664415294834853616548107546681048411261733358091061767901888852997524983311037711855816621875840963799174800239495105688700522598754405058676068563472225793095963280656571756377315850991770616022764657368752518882017078635053292815299767684263834410235223424346645385053567577253759267292405298520571989187782426579840876864989007885970793900324848394663394289006890962257648607029529091993583135161080021067545373829357531960489313164797271222522150800315895921527946292491372307342164145760895746736684826064056839066173366590390711645727506232164583876717972461759601018004280427241399256159805411912676983080905772593253747416325098314488668529012793498788483551016985327685765072803328574162572976692690143289640568959186377814815778820965372168905023576720685951035630105306306024428748944343750578142267947862579288547128534410166089772954273570267499691301295561217850313438690226629806426539432411878273908077775113437082415517472260211506274313017625334468292796654139371736162871610041920933970988195333696168369725234883831842622105713087359531423718213622446320064907691465209834890544453857859614546957692714943523258589160994271355027868174736661289402111012358128100290828926447343788718437032571566641494176476484427671814766939746397954735232351616035637833909152675281120701042293818782869141448938377628010554982936937752528166658388756156777743697600000513558947174391749652329147716276410227662179611910614304955902721450964018188635822939065183063179501867638210944527237058285028303657754392065941078552459253448422221484488821923284110333183636208453254882153447838405016144266146426374901605060445201991482982722091469455154842508981939466688919642089995548358927692872855411153451632000366833378455598501708823774478191283453810945981996889154291303341215072190619590298776703631865905691827268200892084001239596214112007582729886244498239103678604737230906150134533636564137226365731812135820005409822959286740070143890386369877125728887516590403885653377828383825701417466175356084452378379315928983263433220448357314529571462422883263046123728957211535502099766182818833750281265745087446396984377961174975867047766102747825015129448379154636489958656787761636170260949503212579763563370726583141841735300924847039153163450618107884428511838933372512224062843625454950227804355144989769418227816991058166229731852338251386268100415011853894303969209487038553107236311218061305653843264755295700396124747988866519684556789059722346746366599972003892190837335402570986543067857618887798121294697154855482550061567648768103733789296340556204274848360399062748585115283895663699635133055927868164714561481109557987484552133571363474020119970075895288878364581255148137001754008299155872375739144460025691140840473259871250447838151010672868526396975330277753103770063020138906953148715158639020665427005671229315922606173893686754641408233902725409454158969393881401197267762005949057634029597844993673235282320955410255090678971485463205414033377570616985568383570843661340633553716511271561215722433588946685989730608637863748827423344879193646366885104809081052713665073086558995332985726677101343112859242235074385491544597686257619916345084870582970015567264133924215152599173229101291216644900430933003474839139505745758261667525253518890942058115933087047102127940594662335529567675834102083541830409244704995894390311422547112555484581679238493049307686188534644101988643855126112724251428775149929157799253920668041034108495473713769298875261321276492276011081145599639040767307753742855709167369453456971740146232385155787809964947256998959823152897754890055482654167500326551333101691661206044857980250066453250068320210874156997045037500864812260811950446574647140871411077348952428632852299339865516444905149691713339034654326526677552619295668722225186815084985291351211898638940985985004329247202112435321135865666793180717600183127677708090520365639980591906212634357225183852458133684878155144013736557656129086362624232901374311256298552258787897470411752440863779999444357948947964379591500314417459201920381020615102552425125800632232066388729697546548014864894190752365785048641807804592085083047620750670612301328931386024067701669266045683612562342838976295919968515117181084386613920402242986989955372185819301872973288199548691178872702727506214799942968044205615597954138782108885590986409065534729284088214283960911982381122406171212871758339209972574584996707669933778017182082193115180623678869726006889262261177133035368436388074780477219402201496347849179545008588802536352851850405567164156402151167160842054664649551608263128868776061300170582127042290988648912548754258869204541850412608305344597974297323663868350299027081799820489299827538388663524624762225676252991194709337433420672320700306278788815554759166231865088075891571184883670552432818821261673467801193741550313137138140421172047959815183548684010434377278016502297423830927668100264046306695950918738499633463122564147463019394067822362833898331938603229494329344159190594168569327476715690496569139671977470622320429249005956615394223067749940647479370408786493292663562359590761618683228788502218496777042055100917067932595669162145373255511136659697940707499864924252245138822204383065891717903726337830069702877008335926919710620550561131893366320102019016441934235602123539157050609041506827682646981523076905504140073999785467617195114785019744425547663592392301885521483871299328512907827116826258582428678928949908455965829756488050748936883792023124150207217819737429217148994451561042995452102144444935402338138749178952081801646122216778171082453596564329699817284630290862821537474704861446047721566259885609627197531947607926141169556750284301809358040837291437509714684876715267205941456801172125153271093273385000470333484903800039180916134150645504354438070236601554471762048839711839761047043104208030333409908318473711608625491247497242459153098006909985518326989689942727146288290521209940100312835673560629146840961025763205178432735650027056488326474101267891255725395587094146826720524299833792621767810040459250031095800017292061414768130709200342823840797252609433262593287317197896280342241260539722863983969103847990668390470391324908262516282122169429868978149269421498869302943271318901403083065539616631550304256353227625180791117836858411252480246645066522910843522236322646487430708017085002819076777909546535554575503903680521095996164971088234981861729815586986582059524308956520820299911236648152766419752068722939991866974536995770160571827545262464319677648309007329146271138861135810300580586550257280220691372941332630993566938976988435910270425915283475459410649554173013440130928443546544341328033089616551389935325322009457692114084878526357690705501408524300244620277373485812921163703653145640393848867921999962195673777257115998401408578677370486716464322161469330551487955596159488379572277971298680601358968209020147958007931053971082140510105166218595133645269854447198756351696004317005981890751895722890171302606561628574523894035870113226874379116326034763686327631632714382237714006710638102225689406580482997900690763313198525238809749138091334092582675578436737554203576319904099521026390698147420765770046809580180687303640838457004210044624835636886047347355461357951204483792889329616121369245928542125982852426203444063212168608341662995144915368008511291041899130163258364239383214211432984292710869508009995352882638330877864045531141749059205762036079809569595424142484951835168326742386463005314166656431804478716433639735021091914809984528964560157211538755414401496488756778072614125503078959540557553249470687860179515709374979940948437275735341258838992542272129429235753423626364585398298718454347840746643412217574825407922072333452709770615423999846433682818537136950941413637316930686898162779721322679840920452324670915648010944607560082628427871769975326449746700064954442851742314395853594585525610742608552434912388993990231275379380890533965227777868761460187435797807017528217652777760077176680431810374511649749918467637630900969116775079175687107914970384699395623436282770600019399805170170405140032045673497523337556912951225029094120503842103096774821542444171055638062869891877574889840330603754394291700153232881598675197322173544449769021751852333506981403801691073590674773832424768883661513854189305531863151109279948607859882783972578867468676161201608743907769926408847960459022264784854373368868521664955194444954919025079253718746794838509708260775170650812536320173661281278850052926478194351909142826076952543506062411051892830819883036450633574704596979651731161123665807319695552085291652463163187329529123681934317243584716821461567054103895847953291921929851476942564977905839270696224089618680577486985620712442728335360252940304577880162954788155652078217590092333311278471521599983488846758503411320166508737950022570680388299002321730857238877403100450507131695603454544696569271878705976495030981271850230027911717366292533225988114096739276636795035436923345212582083363332444147383953053378849212671975793208785463581145775442300517614261527244905218502864743970218003543646296224555641668956365330822377358022214495803839251645629667725831538725667720840763932312548017853679997851319604097444484176859297565480380903652785567854797119661722531929230274660857770910267605519015749270169439651520868423046602191097786501525406389408418650892264214053619614350230578495790398861723572369573987010427794402921455350918586623565562682787321348887046734654856390331262836986080876569751212935491626357499566459832326460724390868499853079930325995948131092911244904277015006885723256181753612131264360217333348532482971612299872036214455412999596327351525477076119738842337381220925886430254987378186997331614983924944097655037366956009862338367252400721965047265770239582882919560097324691212855707008732332528772891792550751636548963840196067966465650455785291347127668320749299710155343414008111231260727203651716753316941928003500584323957782217279091081533228877340495943322971870714557027398600507157051168424209907568547366809991391214509454787751495939848121172997167172120221180331264208683743399057357900417558597701567486297338966195110686352329827737866005284621534776674059502230799080589066354165520221667996283448984475107386137741511607457793224245301183026693744088336783288789189561926111318714083262188901169197508838316144385827738148378466250033737992728473588203768875214886811617057571989898581388772906835091408571898855969195653745658960479203852653676811759933924857403233144016079146883893206895648656951276744366835908630021054570733089707402021096087634907477340195132160095723835450047776147803908894277926908536279501014056070798395361796224050158367154978846888916520609544343461066315672381503653424567186859800003520074162574577010907743379123102589498142854409942116927746881168017969168961543001115479472494351430392520731356963580560014194633861278186908453095974602476212994641014400866066943319398438127362730366707800400125022753404035356627529462380266000396852734445308455796939121802124156170621340857863809349701549741258274507338013446416160685736399835716839099397500451880203859208793501953524239192177198952575191761193772250762352112796368585166083045422130603191815507598249137572339146872587861320838323196539920079999166290986718700415753316244619945596673590318929606995000444502494533774289731094319727267623071253722932691452577237349005031827959475696465415290062288590802005424193778079969237200627217871981078939933252980696600490201457551239472197022869939014791061044501077537145069990887359994020016289670446279833600246099626279339249173074681749181254613171477650686652405992800703824572061413632218103354696088369358866227172778322692082187660792724685968181739112416381226089278063735518231873656514390983442363477483989382537252980462499474138378309019536232226188622112609482735892135746337292883118792497751312747336690036678489771440363912376528837445869371740490028278558750987612918350214818554908885679252271578884902881022602299390924804327227962512446770380304235797751699132803858688564785540045110573904522153415060666797680284054775467355027151360256414527857346337682307014521549736963381660357734492589780062970818140017738874077366981121518782217771066788346214179185628422428647080007356552595253521103723929963226124703610187819900788921316166604118501800860499443555052262445735435769040684985678715486303742777762300911299836106539312262795880502666453572228370103747118285391174045100389936452559357231909098842917826119227938477861614852742446601754145383982441931734200439046110004386888698735983196098973448708783295972304660975335017590959334071552622752694029592391078098947480119159972118339081512416961919891465997115049459493288416197656376969260849980323760338867463773808263226439478778863849662873338195126868895783122863319661709838495497214054472229396802419867649131708092212494612467376271931187291417358481029579630275026069762525039917546068257628114613945763629087922443923200539269527836551443497694904165459654911257348490390122466335123847489445580760905911404776956425489392116731636124431721278551003505885390204648860762518859759186735860746698245452023406311414559248134116289727530900615370135078329459894547293182333317072855452499069419170099811618708515422507396211937119005889623947958639946721712310216903835233122388039673115615594384886039436801603153494469102308330547082871437939003489135660581647308185534265445844421115263471635398800179224287829136053576578041831905367976058621808988469821910702059715959439525964049849966240739654674072669894663895844381803740585354371133403008987384119595585909354284391301878616164631963954923506949187445266311864934001661010563952460620872183020873391351562300002188660621708677307964331348690722444348989223074155842110296132506795107343590496370925283575908987209227888919383445151581163921981531492542639562639229567189720038903972462116044237966988469106796719363665754138589167576670480768311262782681762373053635877819601353925651168463621907497030491579095536095102792821385100273862079506794532597953533252275618092372691438892542646409121449931770390626271217804354889725453709446421324588394662382190071626889718429434074141552734859499311053746148748797586860490741411107862562809830457960419067304702814833839489016410028598441409147526535906529731430725159544785064039306926612014025767241669875078746545656424481109810212514054903916636922281364154191010686022752022752997373928606739376332291647994730487272122941054094145864019555735707507712918280906318327878736778522102712417632657474550338249598386394145001180000223494835802493097180218107793071357877056727229036040505387401423205535643551014439571691913741319088089595422639661529038586333238186540570879852040368420636314710380652159942450157872690769496947831139679900367867895732476519500458443960595509543412241382182628312566378965470104896341964027075572936450777992415056848062366151434443805962976140205588204665780758326079785160955980348998425199024500269815610509344486284084612943960039122590733568370077038400926994555717926469492196698312182131513016639674787061247213955894575906832801896837996308165127106272751805073571801890958483548870140350877741227831850191211078380627422669287980941206725307635360151327574735623585860836432512361014948077645998361051053665076547960508326710521143034263072450962591508674006515209004705129434640584994785583499793301510296461448377994558017084686572276635446469472990058167587553484944431378775046110260706720735526097615709179922438538938265865846829772972994397493484134874867134800507666597803759375002616177316888487664603984945018154135424727501881718177528931962658298518675165910311843635821351462445382323142403119238833508135560717320546831207007070205251190888995039534880873495733629360432430332705164626558321074708034511732533233651811243598303050807881711483581781297405164663982785982996460409463808035465531098069292816142976822003691232915786978852310686528814152283701887130538987498475104670084319037132865222744298350630646257132403054122280546345900211132953404997720932245284937996387211883241587927411002658110475519113511936855591676596641670742580844942171491445892046448256257186654453504671760378016529120489852417361355722974507645310008352138758772339069001659675273468035283232977792481520785914027821358018214290076771309245844237815218831966457344187007631484870163724490309295802926663018361323245881752638988272514319641593371905683024133287206874413816199546844160784272055536206094793043950170715515986556463606005817472220045404328869243001888146255292097520745326893338588286288989968285677599623328639601079321936413791818911185465687039247878967530473183188720145638968075341290052407666236085862033877175960122208566221495462203523048235449027633178280941517033238486839416040874622296709304507039074256600389484636239866232013983676103627553957855033327061918294862915065051531629592284582921712010881875588469368818854126982366079461123399452792846841303126472858548451123876743322677464374356118491956664595422346636658581374950056717001661351988890697418938295433470617887242773998452368138052493155940948577421757622488744768679838067403496748629263381634049185960967410734182648913950727882915575370881637731099956513734489040028402745813123403113570755520084967969231466494814620989075033634501730007031946780384274412195100099052863567859812839926544194399873499412914583287813943516869346509312410969885496937346752767111105512155217240454294716311094510911303673831659217286662555505823389809373620058725215088951752363578051182571904393544972143484459336730182149554878481448409073200792861841464211117777267562328627877457883443879093740519723267363920601083991040184943124047422343762820974883475144526488236368342189626487871220025812094514551172319690494196552024227572523123776046761475837822858655883713914190053482895141021588089836700455436679898634312300751467063149197582787512249091652610051133463374880467907858860940876042893319612477949853871370980645101340147949533597831976879280081059816697414864912822654510523249285581991912936164257788571002371505848799429606737711969893557793090747062099786619033597148405631297886692575410221057503966668333213537873851243520143679840668226596187890461056304154140724204087383820664182131771461575450174319127995680333572313952959891487578699796035428169137934934641473982094575877865045994216309059208479923783671232448788099327630872858213578630622801545517055380062643202241326203475498108321203039642836711016453245822308624395135714687225191315637406595608823097990271005065357245423738442856944760034627388943463086158557511895958409076062134877165052393916877022566898942112040035481545850871657596027927855635794745677923787190723978999129276779335161572913697047318963982159441733614848395053403352033424354496661797167677467303359921944829912754609453695775069153344681112230497938479422591419298251114598095618060820144421722729099800510470326881033314959519215006772142775845915633648511328091533461259566740577286035184960777241736775364750847882674217307283375522322027654064321116866829658373449864665800714348794382735971875425567061698790367827205553676325301245778748183382653904940664629138865642010849117981882993541493065888126932807807387725755456040308647135522604079450305472828893101312094832084893129115017004045602164775653531189779109607706448755185823737306003679522758474421688080944241106845978432569891754727958741529615613410802925859748641913257418521406287025491817661272338647365137988655888427290785961734523417283895129062482978098723855301754327048456894540449922609496623093971360408018212195596470762926469242516849157918874827545637722881021599259664504603495194247337251654310531038034060261973995913602956472630812153106566624275190841164826848781789579850814132060906720844809027801062842723722082656674521865130226233870686537516029478414976448187500738219859271482305210607667455120271193658387235684851041566061998753377365528465203542214396738641686987197906434681526661570777148240762620424575530719908322759287950524586966394874245588217098276085421800495586908487545553378688985649244535011898040001124995606301727275572503228414453448561753778597521998224881580584754595938750326855201112121674424035877448330545780983900473581935999169051532776538592366553464456371650415732453063484681571390465246189408159024981951498135174220196157560060508793054457965506218398873609790405213943984508746877714150108101568274968745123083919572909990047845750127727775366899574402896263482762730516483138943714457825386754654846939804462235959864197648751900950736181915488569623156383540936469271415800507520990617361991789692624830964879584409522556674981642944921232114939795676133066073140164419619298636795394404749715739853158812383487709254472360126942266481341315722196642451487475455052943816792552755545051252385862088949356934814293779127062183823222851573181283841245236369723978214866247761757614651616473066071618152285248237729171933961444629331168976349213977358695955895697205605535251158230590487636478464761827894420739218565265459440799352118543342150704007834288201521060557708503464261104325872005261992534295748689939224399577388174015287710081434259497293380047812855049880251070930605846935174021595734711252765328335184665240137300983784885312427979006339769799289422693682348460999457230329825889853403205983832554461849444406941072393031410813010461188264986185945286913155057281348624765648677453209562819555436357162452247776847283196468150705830757917946809909166829187141384331502996064277942317869819263927773935688782640765359505917631446251902051846679345587601192029427683621033694615022727136775514527314908151339334713937258266406073026108503912740286538733729968577929737764954636466916492501484539501948118619181013674763043281027456686831882260200810552913008220120543884654324576728575343603737627457389866264702825471616006972497185716454268385574518335392580242268534357499493258597437813282485715053809333051244107154861365029021375420569103493959112141883631858391503704502354104824188116860076323138483777767383072873843924513941229357890805988392613502354207977734740294247943036711481223375760845592660326521577221768676556704523843594394403060828589827284588079000607170353189526268068169322667330386898556451994442199024101858430180843807594910924296598885443964014407308037242220136055185413125715103102322262050059504298012537852324898855892118844492528428605077367647822651423954490260277093106889542040617756044755580132149584128281257016301979590055546766545890895733082851424045075171755944850367829569328656726859672097953917526626887350248287892619089557835408074881934637217107639198090555871228414710588215336592442446266548710475850118015785970778000414358992821689358442065245210295425149949245045379008847184501535086909436984915484342764175385642311085289197483915893128477756072339279757704452068635648624663675113806018964105561752467413390132379225384478671115892501242786061641157568825362035370436690326345128271842174032588320346073624827228329541583714209126074845641671415630705210327522800608239869988817389681134461872796373141109006318427262570612536304275445180982661921596966876687472077420896007847789816761464412009596310194589566513825794305810956803586222793912712217760809762684397050254041567391958240185115695187444993960172406499648293405995842556424916666334270695086819103696434294830935441292704637040081610754769605871399702131992238711233365564819108402601843626181791134241570798713447486052995878090505074371566479050454409015542823982775948675164606764542598317170890732439587199420324105093720338353540801668066276104982612930950446158268785148697204340330138406515966320483834084245859867444558220092348883573787465826398821112680101698508343572973236461435964907967854034714650579818350562950648549983491614995464062030409916573344449287424088065998110063634752640571386061503941640398038632570418188263941012722310018680067454381123087601919048670842915675396374124524952023077858635507379885505039446019378853064325773457053337821754059471960145426432145286120192910834870485543813203312427865994324931939546971345883660186672366179675300109171738973553660549651894473866504470353450074583043232491395865250513644229936807687818435882272970755236428755008557255287054667829499879819843983728065352442108009353024505761046094131999649218232409629467824438365471476486474141341282722596674382242491753929786112635486615900247592253992106614124318251764634138860106599171020872315404179019444536296557392313168011445235232070276800711469012540534151732980966658154646361655633790409249744764995036549351872713075130393434890340822297732021168196825090686010421455832655691723436639909471343559107202299690190424512040465599714348469915602838945250387475634666031794181519826375548610318085290311600423376492961299853141802483452756798134033732484344328602730673066703140066888246208004049236772271604933950968852452998629231860135441140502544842195760327355696022011605268445944451344394139345777652620199507857261405318798762624248205260928890534643635602113090465012207917338360681063963997142702568116347976376686505307520485484976422020195484230469912397706103133459549197644894386402001192844943480531555454757987225150145267958819315578311909165891857150847338736257802504958716005562949515187605377153552528131573378417667902256194012989417734073685585973185063162596235957099296586809094814411092604502919359274839961204504656328483372956940259804387467666707986638749464068289094688012080521915226592445078700404535933469287958231492107477015158163121371710503004246166777212003970387945621360735288010488821255776220771437028931951664364645008246479483225634093538030242762327289364703270694501999984217618584121876180182539649929137383615403687756008266784826281481775447375706685694209703353695702164796965424311690192177974148744497706581939591307965628325834760219853288050996493676347852263841436692639916341115800209283692563223272994261991653949396734608637763727959852833688045729403850388729538145789014977271134624090645866983800557964243435065309379515284384453586737516600730265143978724588987477447534813075474290192999562271193281850001029505667836438506149817226931692373129632088099165253002416391438366693056675042322557378508178238324750719827992750132164423156251319492870417392660102449623500538599925280550051042347255649627730848814818967445109407444762574938725040377254119574242571788814385964651093376226727376410508547213078756262819577496568324900574582021343319835541409990585207000875830480603553566950467860211954280531954011040379117726249313663774672261446211337434271770516186605070539958092160406696124318872520597258301634268527684292347714096122285677606209105491115621232548194417670190596056569865719066825627214893203041092363633620207357079295296975743782228729254428214082863646316475333279554933972864959035702084665211079951849424276895866144596224665590302885583784403943254525129516109200891863421773038363194386125893619965568740010523455690930245800060891256323641811332043402169566521620957959964571493065619391729258392378818138290511106568576388053202112104637424740654395626781167947722968798231897094814432306346899151694480818577209856861211555428580996421367402212196644002708620966683059759277593546458428957293118155143596246754535615691996876607242067466340089885044882615819432023808415141383315386785505990005957359453860475786969875856550807159721486993981275437315323371430259816887985214545768793671970597235478136898784237997824782317032995364649915629319211523328279419075275294256418226607704228143724731312395620343341917941786720023097832554760204684569576742122178007239746702829747293976776098953960682657731655308708368498914187250979428102331560562392356943888500100841841378563871784337435525702830695764407704793527207221670291094387587615842453252460252718352713639291926085716138338164927363388780455018978429487175051335754950579422451039087826578426319702632843547317673740327118209712097959475111670855853914212179828858074722221053036052013935376056471935654452275869913434564787949993811312352692703843134443157181614105027482029253659202214607832499466023421504232300206176917869381319449339459195937287272244518494325771624168845456976012055441169798882555271108799337261590978804056177892988470460298320053768893195008937543529027865053649239257734010446763369769771049389636622039169215489261708814539270130278078927988831934890842273253038252342796049377529178604385680979910071784811558523779575430940517892433964699693500936309433477912948306783415828138053626125418732797967804549842921053931955470099014306799812191169548455320348416780864814990091532464475773233734190022721078312167510834851242905675610092326811070531960970897096425788494731787331962320389458751724741681688142160465723290311870560161496975753497833748993076068466121855347176224208251020222262500231265815550767849524803961726951810253282339444487953906625744162361038561147328273670046122559725748761619433863099989507515483393334975112718140832016403164404164400306567937066269409989622350375562985650509279380287430975974377698372729009230044712128756819258984630245227792386191145068109797862530112537161895455911078120897037208236644623084898861884655760606963727410744485362008836578522614518417253755554327301268088868828949772209023576555403837437593902683881476968558787944701366574991513884672130062872085570033916908913918659156700243896406071886085005206787684496891058115374509247865840409701526578064616722938115764860131327487387620112956948918930216527396815653634923813620171562235681715029194735079903018476277886686151435982020551506750632129335626243666639414989048431728923149694440862179455043608413064760689134574474627144242241537367836598744814448410038957563844165950751086057971284327411212546897225258172136493481165283036553005421015876818741355963825504106973938280483771611515240822596017744883267889590413188308960191082175112442673809803146902981367655113007333701080667082119606685762421589687772831828906947559116237521024102838232609539252611314072138122140062362863577657881491227870975380371615349879024763049254878311207726475983327265468689011014065100553506386353187876771932618662464404545106672883935292662600818440676295614022294637651844038370322233899204509479517875221230318721034914726051033621785230417210854561604628621150904816005253647733381076574194303062657974841757234949733281047292055090163620841021625444037497500112977830887513364332566909137559309115622118671903462792730910160595092667625257126214609166023835008466324671794559376880497928555942144841817911217582357272357155228276729269634263403299263570407820439885975659414137752241599646039007537764051978329366051801784176300713378850686741232483733997969446109454744135299491663417636606001844547860661450788990779824368601959070555554978332324667966108880610501934499083571829582639916626892687631040968038743153999018967390665978851498690181326838490114684300384742654484213915948061161829383045492715117068216175686721009578074455486990488704703061768428496781309098083944382024972493634456499027533432944912677688864523364783952657708376834754780160476408870783978309144495200779292307023884896174173686464871182295528139113682799408097592008220769100280565541898283509422059614468305272033246533582624216002403130421381421552686191304023734568487755100670735087758498180414879211459156411089481917615095721509372345642203837413495400668455970555738954238379182122923539486395392433893763929690051826026742869272700931570380349797887255570451185525039114457408676534717341709103593078381701239456512538741567244627743435873439976382913310821771630137262233913996777964710480262867790357827767994817274919653136847774572246378871295439601604317418730333556772273562671978155176509798730126373621592275360732735114187305028544320666607152433518071009898816612794060808514641222222608031847942332292670954655738933663445286319367950121749902292581707453032757971130557514224943589086720821456358109409702685080091332058471353701713458771948834357940226742337388376172821230409767036006115320302156425385815843202344468014986542061122398426899981248826383612605225401176020040858428657235878683946870648488106094106560084083453076361036829675040554281149208081589957079919388942231862429109254368910882230729809851186251727246838026466605270025935365619465797063481834002616536550714727494953224267722657791732955231355738196835651732853357914438125601843518073898334314851624472334889426120386943104281749492020233401108861211314476581058124637342857110443016656511896190645101353355972643652714965041363149453130096180872843945020949039094642698436004336330374316075629076452952827478683839029032863140723879278568141928207208569407638565351682916214390339797779629146944313391152414983768980510336774934495039389949086914716035820228814903682911402309508408834953913315297720503932758818455561666511403058886538995318404068617771318404376084828055287457523874632861889395103605858083629495811584800116506715962292324085413758934784021995200557262171324311036573710585766868150569666457704804749933924204257039626212821256006985125301328288579625447043517352366009637557380834158198259204153948658383720568915751749354841550107784532236923394582168159095011356697661021491681481612205308187698086164201630435477839526324405754424642396562476284258496757762491099321204495050024143037065499880180846311645770451647736726791885962873734012693782537681214527989977207604536399090922493219319301137005487286742347428850882519989293953822334790638244246707554285110907255062231223878961508226461688523327167740141043746845846882682169985347586853791143497388893956557535121166954765893131543394567514225078734302987510196433511663636320146678923133640040952131419844572704118745442405178518311411700537920306738164493528358056290955255856111594497394989746312814473211714856372617331501302153075972294256077390730628464736909442721440279927290570126173063502905794085879767390254598972133816286185933471726954399092726553701636165490063924297195319706601606365773045195414139982858801621441145656014361383261747485757055431929321433490574777184348309778785174641193189700883417534221156864643451597742299109282898370250807339887118599812094162830805031993530896931639222694961794373502082126668092515989467226783869012724158060911932988894302210824482499920448205485081537833354665533852376098148617173349515835631865201405304625321150751851646641886702747442989646655951691367930348729127291354649378434855013586869119766834356031829697775660752199768004215930722519382756123989754955091769419839709803746687690739527953263637028417368091340305072183703665823811226951538758446208062712932393545912422208014715742834548242186717304990855907715613916911359226072066792213594163189122268985850211010828825373882375059322992805300427945697191140589295612890592970765296176463286271243718670778862095973175290870531558304832634321830187793127782456602571332549110193666536184309314368368703743790605944972517692212474210483329616338000913357737856166880032867242457093460027636456314822025397428201032796436428097282645151354691047390080822248028871363305884395784713665702434018929783601692954550385024234441322487055220802869881034200497035847464956644060863953569553299396708032062429765346072101007930684717651739189063163251418874947907876637102092187669312770318296165419045882439740512897807045550253811750071219459880508828532594307405383845816538144112671876669581986614318363821941770471360043355358703956846943050492286374891291162680093986980440013796327745828380164302168647686769353492168069555620889872931476840840287802903906001386219926499392691578005988072033722358967300341790224337034105689172996563198617386001177946262785032502108372279346292339299413890579986018373628156789877731512925017396560055568377289204254942799882106707361362788896104301173465601620309103820835984540464319850357208985755145920890607664476811809045694335455915853803937115091990222249427378537819650647003671577472810888917905277909347384845573549328989507515757535862942159659015393222600118637988493100924002305137848190353387827665461259830178451546004038063878117656381329087799762004413352122982636445076075715076613611422019868852371958144352172076892355698193996046772822059887380342426946295948587227386950865556120648413066940664873325408449198136078327360188217725419255133584470179217135746831407921691227883216840247781131125654100763494444375808335864817697860689455935169518744833222850957266654634938790330313689427965518527201429588869800570129265923042128665119993314165504278528017251751440484031344055759236103981282173037418615675291882205263948592629287067852715339219248082351771398365256200140683421518994651308036076785452812533841319628031842367071273295805507146191085547184215096022298543823304853871838486165333242521670517412440702222851933288381874021748742940728381006304045107026814520936704101209866662467692133196233020006237319761569490786544883081558396923503035084414226927345455289216414537472385376078444174255009874404711069906475908201297722652850540514656796732385045782508588427151496688031288812529168749326972652214189305247263281725043778442552092665318646705777755406936932775199153348662756654070542525861840802503509528319850307762145737817929693613539278149994800618334864811601279434156454423209114828515691391045597957175117097142542575415122220437935909358021614595603956690444792831930230876498943712467369142849072521699073472667749655687608986643157689740918865911290537754056590173442327215934356914865534916331976241734971831313842463982338363109324952252906254211463941708980473929875848264354035241979145940581789590575296784265586128103018382892541267232179377988813421773061079319781636272807712216860238282159051490463851440250071994122307337109481224340639594357412684357154324648568802538987577882425129544355557690737699669809523948058408503161928559658333583812220710007014409995788499692915925934316220120505141006735212728897168736336816994596085058233583847576672462802271417598048854217785098084286450943124208923880359545524259436724211152888992077637690686160317683748816216703344038253761790358469957164750555160947530177265207130269516445540947394695454568874054971298130820551516380808885079591848337004543416994503699216245193567208562827190236572332005018345446918484248155354717564202166027824157261303439607515499782190246932830923286024838676155248725856549246326124116142013753533950096991055391560608335022937827476833403673140328192507900253450420878313045089160211133028010373251053929021189540852776829514605835414076506756507770677956951634542546512664953849312369384840659073078280321756088482755144736022249775475920298816974473761547211714077694002784381864910138544172413073831100441454141184400469855704475223828172098726586176591305625898510515440979446431453352129135938926181066759930724262340569019759256521024620650586200290299624147354628829796129277819854630618072085506168217089198329586494499416381006124555502485969009154648816276061473255409145591358295199584741325564538705119177630835349141039505904485956428035469040790373684450436739906183532466942811790629342044576106089102340586920715334201568616452420576814701290510081841967066436916392617876025400344271001021692449145668004217396040719428891642992047473955824861349342350517664043504517674342931730346437111678387875657264567919799922468667054107115641988028162922723880920831305543656093189664145962432035912601916236686313362760945762910389585555573331882925321142364094634727773039179150810044346811383427986110983530467943744135036652396269757742290351325123044522039032193858531698567331902080824627819445513246166595747800049793991997273300000965993996687316274975298697571470995298987426973678856837263586804653055702400537351820562501602641767147673771810008083357136997813663321147657009809687379017245448914037017003309450864365321786474924207898625360813789610616379956799867157429120006889422049755519452841126966771535085115837323131436816774273212846937183622225650679492393581694859902812087194720650307194303292540648876394726519951041912412643109650585369306177142804133480827094180469191112969641690401306995228037680545961718396146029298474327197024119838621683551339191985909593037007108357396057583669460318582367118649115449150518170759720705015025652041981390761504905374597027886887429594050793178879748956822744075366813943889946569869220376807324328978319863887018687829289268150420476637766335773299022754786414921315486272862568685330654000106663047272085531047214194747853576901268192772155681690590586776180650828284779663595515773119078348910799493334781672925853720932655861167294029121794029336811390583846074830751524304731956611519266946366704930502830644621277194600989533464985916366526415990232587178549347983739721618051547563186680422420159591521874213346866203891494799261983611804272521651734575620570748963235535397796822701855567172884252615083927400913995433633715657623734863092712339171802427580926937430368745606241673261894943263618056444387994510640593140985465070586405198920686447694932524475315914579998953699341236837406654339418125499144235934504472349459682517489488302027845867143499222664341029466012815818033164386947859153699288904797805376281941898642262446783987755280383216380529565053819996929120841142340706504591803163706310662061653796589809268379174471921156562360475876851795540411198440382653741272206846061182397345361578167772160013648573365741701103467323366246244952107685944482742286518593424836387766993903322637836914279901578142204556600131186953543165239754307490413456218834234342482066364618388226777881780242777384160649898761271944793917491923532925366950373420983230252798095218213276276853355478051182654759160404801781781518874451856212069066755464705142686238377061256666408813143828906826032571161159138494673380360612801470598895829701606984994726692587754102280287623296517736709647647894098236839421929291372923055879322783145679152008085948981749287258615990812544720753124476388481560716337009091851087214713079125910332127580467740418065118529514038772212753294181356701959228491748733883132911656170976831022804721708248436942122296918487986787889300531760176813859941338506647766995900083367852155267450708676080141197511190882625177360631494091988881143626679530377268229842093719360145242453424708855330936600518542186981942006252279297367204099964755319625123657670562830653317291712840650845119531758063746243457557321620365856397268964766055799350630718065232229011293953289230787064062892600363100531232100496082182507351250850154262696685819399777507979342502208975798367515219604769345432138226358571417852119539580050934086811514399743850172086644538654272072011795781063200203263882651820938619794980508810074933288887386138539061752698076127136716513690640093081981554248543327116667250467296283996637189791832006492020139297646628545673704750514260928291398407300039653903417590807013683491962061339013742796504484170604980892527516845561895968138921819113849925302190011482737346714672967871286667405844649059767892775579083528993486828884477573548942248308565140567753355046971636260452419928973365843794157355705518854964456575754318761877796704857295318007612719833955225689635308367500949159193897677622428860011990661724382722410487048731397214436225558935976137542776185992522719409402453600060366211299826309787771202866308184309349871957541832506483428576956839424093459575649137360997422030907416823062756664370034793911375286858039940072673718838523128103496018752617171537662258087810590434444690992414650187469473341770287835481900618263251115852709735463761787619723422550303392037665925010384831030577349442363676359044265989809661951824398492868012616677882623014110432738195840582106710956522117834448483900239034463365477866733857568135019431893297577474734113639196043340702943129709034379778006137767372885706337768310361224964923280959093510561618596793256693764885131799986905031894891102543860432791624668613748849845180318111311983195824497018741849814983872686237777307426145435024112357379822088875751205110141825606948106067365843852481300509333257838794403363422000336531745530440944628106401593488408074446933731279377222369051572681449009811712111078598205978494627738966693046404121447326033374795030002398832877323025598055569148712261486280199298778525703115128042581443098062494027108314460911871831393809185915444889527355278946637397371538084245834126329933558507760212879198036378000609073866511631757615461648859977647693535648570075843960656564168977302080243910722710695166860173970611698013988639747125644428902493024242646132183589945201171969692006728027416570246555740870552596277341802374729494261083281071678040829164781418576815289524245167185714356193267740872207000320664337771273360570511572335102298097601147339995878250363509960203621039234427371191089181594803323476568810658292041303778578882188297584937410468402090635100932942504130726992492900742464455043998307800554244304434810664532927450103696948224654348716886190218869709046411254004481776540711695378864347542026306085893263919941983243041408189554179377942869259717323907427136487013851336781291665890852389653572715145361855955628376813882304906021568853811494500604036750030909155881188812686847620780436456514358054435198303022606262202797115502533476403982761897672513305663332831295640591693920324506950171467863276764451262042586454784568663171271554590460211114352978319544539885836844023677881353367940583619981526580840127213878241176364381035433509937654897390104256554616591623590665692271691357712146389759077022836487810820377304397191467193858226236923633329425677476336964192189847283589476840363981754392563921665657515055043555791486795453054343978580233550542926628901060508016612424359874586901021602598571166870580931570925607238141382306119306212419252381433046608928383422134791879003350666751390948818622359764862380931547614800008303297593344953647060488894928281334223329975279225486228853561384864451603275877094745417009183840113073959791931348723119615711928088816148775969923680896941559397500682243680699555790488739957230004771288031649050750221933419114361213854911038659854342764827570913949605926806665836741799393217163957840132621126898236546799567010750300604154348442748114718738841425645362377931511493934386511459008319752509080400134110821094515267075577645367153366337179102313637440881013633104734188693775649303109689935436440872749980136305944962159316672124615317434475200732745380443088212936291488013292543680281004963415371052988472401426525126800227734052833221234833955587143420369262965877565320675612607577625301707492938494739260241718974479717702801900320352545071583156523053857254298440473364966579499450428264740293571296512927999750929960415042656026175939490265754767354411435622190525372029671712563884994239268363253742770362702898010602315294986802151661375299303553791309865964937013315447979430224824739345472514347166692930393338080667453901928542078592603547238831836529121820874570464470043365666115127047029851677364078740993155908447745843249495382593808084048527230758661381829302690607655394613826388945510947373484536992252393112549578307993426685089951095050289631789276771521168207949985193879758310429891365473727587930581786113340139995215453659688603207217936979659319895088345423676133782557584376879637534362521016753773739800780965859974254976563794538378753798981658145080017899411520028554068106374482006634542311762221821750875919471689561629401532212138981965331063486456192293736402401391806337066804581692853790156983783124766055419750310817745308728132047549643987121704944507482131900646220955682053548864393310336917385218163166362569874640895610126344467176959838026818218869046807210103990069986207419436224046890953614060270775313482996810152645709904916039154811048569662844944741611628379907847144820953692588534875212073773068090529664572420444545550012213171483982413938264045939504592815739051412204704496734367392773971653527566644971991839653098706516470033146424449290904063759703069375545788612142938820161779669829133656119501091267694175704976564648171157748790637790234050727938840668601416847420889656589808355000744802172524451695030095843134287844633667466718521924927499003028322350993013759011692408217364339823400256267085647113822478378676024850823583766083395088359352083726606272323869495112584715948405785631078734384865952073191200616743934271915404428246690434363358779207945488536739918937102873611934394805411937073699105149864140538842108102719544452753747713719957286133747316339587496345877037273544881397772209415344798924617055517439286865181120867103756406703593885981619957996779385367625097281296452398987339900628855796184565896742841724659342353996370156282614099915145556171679820605158786138029029938665640007155843714969664219595810315938839190938585375452742261508260362786890996577571093254212406730055197296907267923719266656183245662549792149320575148535412467882129321868531562198961438096574442390520499293333208202577308144277008568399756336809614530802497813958743702168574833242142231814746706345044942729327301182257818445891849208123404185792595807951723813845802937583269512787246817524980335829121033677776548365102953038206693610328368252299441730691817882051739299156631347377052478227599968259708757324235459196822914908785283759054046594927909242484218589515473715234097662864295636394905101522908422511490506972625418094599533061642961380430445249422667617796238880067633647581183108891671747873848340757551966993896650840335893105848543592595573608498588177504682501179222514372635464865876203519299524281850108301293282481458107082040714509766630782721972325566263069566775685467729250787127519835857609546029897975047505096356650433188105844488580372170373813639545122971724139840405800233350115295766150732060967933978596583650985425129386988348903448381441975448030517181382778353563027087078565293268682741724988477936104581412962798233567222394656836780080370485799393344392948121658094957418401078649591721947435382427781574099276885087864620847829365262174189178522027153408014250703425651866086039156025811691822679094548292510676503091525120033582909164372071071070267393617336629839764114394280778124800396430454270791550526596847250370057233591924162789181790222314385750552871422707687738153072886497902610871334066213754508770524046790818558133866904950898232404120429836197894108145137012034368927069315101989193964067403352519041884606836972017110055321572305610010898956888697490988319729498798487189215537585477626066841124092687886268681305782025090425966154838270926108712703058146434924154102797605108602652655324793907799669447221329796907709574293519827835497661859674900781696194207765527658586276439052071196144917939629585691251472772180041864749324063033417783301629154693628368667908868438612877837785227311911015394053581404513495342698741630688249364220396429485030626168154821045643784019737405022081232337367138221766586980575731043694725139788313755293387903045420299798102564956505060423020282033559394041197109514033114195299038672824791617981603576627475832687768723194492661620103680014512941924338075115533889089098149371368564270952345479367925550640172529461559266065496773333774965030340835509665908365008365531413066224698781484806708478522935113324593214706818457574574309805181609434438580206402926980495039524889904430704751568097946152418918160156461103558553930033465350390968534513378500256881408683142359576128396804782544343643208967305823173354367533176430904557263369069633273170518567394398600311989789936468201823359097274895318309999269176104422190992348997591634658186119039225049115776194840470075011088000282253697557834658353036321224873010168677638731063711583335958527586866795416641064948745022953897918635637382257740389561800710764996770908411785489042981712803172752088273214932645145758573699667918978526836387969237697482746110862726844055891650832563919029856321141569627663154559942916932654293425172688137792908637932859969880588892546334332248511172604349189789657882839150944008007928064795149582082287468537710768217731045842720027308818431387291286979577587258853819935484917786941241472420120893440952702127708016010041158447948630212306478174600590564321792796230679437265735274755982938314521125770537374041117283730285501583164650502120196426897990218508769336976178405940294205528942528431057752972720608903838885613388516272277961710846504091608985247473873620965528564529217535947079214560231120919783623147066710636897621236577299265202459303898127204487366665093927539023970030001934509358182473792186759913911480856631356466254299955855873134076264431795605551064335049459423504090086769735925372354155650610961270439403368660064613978323747016899520402927449686791825262060081908466179858136400583861173373132417946420108174744563432383230487319503693483301141944825271454721474113711332145029655243545000202932312486052438090344884350279768234095468331403158305676258277622716595640447854640878915399793444542402828310253978321345575707864769833060082384014437408509728667101246870727709102630216774533876185239180963793410580664641552023162602457046311268542590988947089664770784566560100248873775796216679987174410290685139732808418287775367428850479928437933874533606699546026822963239514944860413007361643901411593524226611815907475690087012032500072324919134431401824180889393521479392615695020132351558536661052588450743274599211488338698351018541168423318323241950366268671620401524795041178438345750918492564434605027859851433716756023713539699794333906170596657589278864640914261772258956077884529334193422199481468673407709184768289249306505841995404959838099452550898069104158138381466261875272665988995997579637607139467388281945085605728822089297306127905573090337234442779627047987592995451446252138890074326433536142241049528198309738287184462407252064966430647460938116885457378629603722348979832518928729106697177863278411057417037630144254226688704516244648738092808789792905006620006865456197554552728174634861029612384527441871409268459585146732322454257383859167026839756800109828839573587185529813266587596524730147204590962909818696631595594633275565546722965097348615193451753855975595635472850641164164747280023037414813111181362684359427640938870925680327185437468415694981017219949947665691480596706966461890281013074554824394711205232344683491517520543100380416416830075708770853653437573965033688562169496380644286764863545077792800288820969154174976211400797922592581249239925457983392555000397353183072290685470085477468449657393846885174761837174345984257000369755233669751934869764356207374228280343015137663257971104975303968510314244091010982029737514558880445122334731896967404919930445014228470848782042453131944568241589069976202974197855127693426904194062135237674600514969762903976205875333889643875905378379636442489128910167182782916519296809618895662340078333677861404849087031689262422411566165701279116965142862449054027298906657493084403779736522565506299297731411650809625993130665088165179512773150917153100309848563913985187884942119293755701561858347333584600575628391920759205031316306596135962071644240905399970925092414944031698169999980804928488539521726347222763973847233199303566718352501523023651233670552937583496612965137862864070452843459061308365488270735176377203570927178024671401986242977002363138226255346335851779633543231465579710197732626719914570092764431758014870694210267588088442980929871263378637031536439072905390416115494591083751479785801370968476817161629507589397055783020400732331515524465983895790195044289210131566111561916621910282017132677567239247778661050836211150909490610893157247901204434857770050420045790323994737154026543067408453124974105004932297858872049194160517328532655418495616360918036755720248786286677016139110425024916710271611716277714410253644370871653916464915700443882762327836172696438278781056211560752598763234881362925784799231610386364354692858912466693498211225182397484174008243476552045423809214140889212026604013293394208442158106706933677760439990700794661745895921332794684803290460443552769597183418323147916398295150725814456159471347154412387318983090968925557691833652124167973267204749024352694131678283911141417749690085357907640262544817472315878895679114060533916539044979258852421060306685056716942320179134255539806622029740810935262209513606061317107502500525866185416956897748686577150730454727650816984604102927225619613890531011968917868104900433976180655987994784468594882750753742109039341650871514997687075864183866328591699157355357143765763693758704451918329734071057395533828394531216780087895545378353540666537391761628530310142896268000892406017136843528666224706187555653790603540215016942920012066513393222006582057943110777701536876368802970609126063541835790937198880435117311645963881823924916534757317692844771474969559445558671101975336380464224106588720483322066511286325461139479352015123038420613077276200532516205688078771967589540163008557932496995204414209733754762935309279970687331023480215758968867149796339367202388472033408457665077652738280723538217639520202203900397392810424659831013821717173946622026333985392572838437528938337711167392873475302708543307444387718252161962959953770152542773051788142794167841086009708355092218455543974546538183530847029760082580942830274014032537053281350916034863295805011840221690633716567201199152990200671663327584908555550489055520714386295016761299033691341233617397366450360847922038257390721667247585955335551152012351290592283391394057276937158350631346745725631102828588179466195510377792339953059491109323818227233649329804079643367740225796724730922505171611403654644124968746028612686961140872450407573255419690879479942536616740691846851625507388587210428448562530445585281519338700691884705392849760831723002672859825206941572844653095090268999997646368266700783096918340599601368110579647005070556240868200339214333916724376726338688885165719884507192090398514948047380196457047093644295323612341920701464882152044490088617349371760896989316194895005615784474626643709558204677979803994612621040968376609316927902783758053050406697733364231390242291011600238164931031878181544337199372051755425328241002461599334983416142986837653427130134376439971968188262705853130657736627519660006691208301927936056914767654163155273520662395452606541003057537711741509920604418175522113388406037678032344600692713796607028925900825314442139757915417117464604540300030673566149754269752520179701129707133642406699237121523569950459093949927526105354677291071007575893495210297053909769868529413678405310552129128711663490559409472427616968847376060593451165410354660958714407343362014875111399842976840949700700333650356776998482770034575278613630351676800733952895533002948659409520362007560228815693154178571977062615194929251131920510775072702337280948815976056470404801701114283834204149179445221399046554042298198316021250523516639505560816940915820813807595618658390939977958533422883193629097226971390487128844201446278489826937310663938735895619759800758660016002403754438262031697599249078701143604233839974565396257378990493095319509581378971399877482803890963981571684881138690750321952227194507876005218757898078004715850460489041278575897317422600095030376478943572382604414732013000923465798109495701692645452217761470204911023892633176933405972093224363002850469442851394932533902128721274996470144048186515863850769415890609232156159734005932754526339757486924801495802799359224128068496640116787904850499347705811511162152130230924203197702550039879859632319144380429848551361163067372389439081498159300420921308836154832733037848687243043243462163580641498778550457584594378308076109154898141665098564991320561900810920937201039516318219397047589395337792112281242931893223685290550470571673840231709315310722541572016487338777885649910596706031732036640745266338038931418059370228429619580870797782676415512887126101851333508647394971527843769234334967724599665684927054115815499796168868056627395509706337415780655039561793978872232815237880012918216712814806305929456929459603626619680406311519241377705342832611376055681700784534142811257201541544623592355709201245476552110003887932383620227495594858264572521801032930821564314490734485753960526464893208180577396175055014208807146178986935628603836070545500913229441506555101992242511881662964729457472094632984251166449191998110909022189897020631784014617401193346660746830412360063064962755125082098567344086833290949530766928149125311959532973229265912091638197088461837732012083813590908693818794024356307710581267342039172931421393463121028450692949094116819575574938040220506411797705920353434999143022513925842570570421563812844257093215322024857515815973707994749917554453145322736070346173079564442422450613015635699209767638491895192530189551139756542743733255260295409861930390684535563800590271702529520600660058434957961862382925119682653025480389789325289644718241132210812635534618532640969233483664131745852864583221436313670141792805461344791624839998980415441043101325897460174429165480038033685540586417908112035500457284190427566324418497051359925892554166476709554715330248288048088168845210620162050209852377951603444211829679305376080336581895622394848975241152533776522962026736786204002732903006475431637899077465179518406018050630320640027527891790790754977949389034565197375287015119439327946474827964620760726739201194029863700518390771922632098769143738305210819525774891010808700025027767859802639977484495902711500954256171146237413673647205096173133896132119653010874316742151765803413158416083391519702912621177800191349253106792014679468668350098016343206044283890205851825554534725393925758463461526972477287436523799897385812039612863837553915612442059115577550323376934757383223642282302955212044395937992169601131619898126818456508528081459586929754563220672977925313176703668529641477459409466407826065194489220979245046102465634622210747876886401808661478516656228850116129333091932456037652946499629534917105606295157495235235928334141654407874800954850687443254183267305913083487200878359568156925833035097662772488852918958193624329344543809326478907801739030337727879237405367396530854019783026049887751306173989101711120566680380033628730589146256581444503553223620849290930588486536396386803526240904125104903780005329213708983999656331756949342939703392785337891624814672152538015498936422286535244335295917808969000805453841397462996586861094882457991149305761048421141528484581739894483448127386290516210384245625091997494174749160954624184391455687069462374242354612121649346169567676403566365723252938842696990430284808584936817898504587498324551369294680339966581257952649130141752711172683884780988289080458328020991488345568721426340911738763718687832477134213084010959725409477827067421667199240393665447664418561388520835227289681064014017882864942939205428913911856598741042961798020681573739061269943760675679261277824470115074561894443834640273439917671514574976762491956262225163054738686993058341740584348433836073063041914014168613702819805081080270935432611431189005490771644312293382184551402034430829826252066416982018223955459348254729645879886485067484399289578709486953967885930744521824236589115210006929974310944158614888908662039359644467386362553166672628165139504605333038038564962777443733636799430620030380232025875110024115185699004219262170399006196756669644017880389992348093962371258884961992098971163747352914653090351236704768941252230685663637034924823230065523251541372430728365913370886334700064624333912111891690533741288740206712143066757085965880489673574867653388030738192759094604371074699906467480094373598725474603042601378782086584934118003528650692669592028068484905786510594715272941475420397871365230484021761219103381674497424929870680428729629017233013135786762771482590694965941640256409851656387007363285809418810635471195757280548766326940795155719499803311475076376272678385298442675032401944488367703998781350621005935502075823990668295795200401157320384960852742614492490459822322147827765763006053231868752607755981387947238361942481267911171237569296528940636806486873419586130094977277869664755477564938041006218492745990514341051810671295238068363591705397315939237874643125111544976728272576530044201136440217766135672692277904429143301285675794425816954048949551318961385093824680372529869403825923186618522826253681616627506475850302893499948986895216607608343365743994155877538390872525229075286402209427590349154478778459119431421345235865881524837753659256964697575755445197110210429472217640522375652611095916424296745041745001412517614836420002179294729909451710053633037279608703750836677943798650861173939554335723613885995723318962599585810320772683107767237013952626228961000734397554463912008285939751574401641779783276275320256466100236627925378127684467801528638444686991510957975801691381165748160355274266645573402839652030954290920559262579831578238174456100398051375200401258670411906292101798944594407069645934659705172090752773900721836196134271853193362366800283578691708779747211345991432228876234587411097902548330731845099336283092398774731368573514254941238775063278837816896622609608852568775622346263942897676845193263144945295278949678491318611471477351504056153022398896455251837552635444639950939766855399969980267407178019354474344877895971556452329001655769560396912542734481056667693529718851632844757424874288606587629281510944086819088893405534597944328151703054532407180743434822801176396938715010861324974935354700431437356207878411620408513145220213090960844815693954016339959187135550660681685527809272963660898404564528591862614773029829049418594986339322302045030458710478888069883751326868845867834147066538911627491644751440372453903594068787091414737974531153160011828540574915945909062428509878115723574669632593032210007098309695186252015620624835011106909631341353760387982431685811478299946979086114923899888481195424726959870124100595748888558801731712798248851492599970851459844612999171415048731231955535078605520462360710957978212121511667040585737597172935999785691837327385378246239359212589784070480095014596391537830008751860727094349413565205279851860651299637294908006070153756468973062381532543385506918052294721593410957837767227745222270322541568370356182701637006860095036689355505094655563785006242537275623889653697831283132040937881176108330064742651193472219791242568822889185025542198036229568323816189474493140723173209363898624054048816608686512730324230162679754996267557460977684687636501700108699175471604049623626770079234920192004235412726018977050357097253312876811983300708500057562117442404585034137738370586116027099152560947484685616237912634009429526828483886971714646511579996898738959346116345941920510304636586832810198826980061433590891087873328901104816015649844820197744474155609778933022204779946628040561566033143787138767073277016770413482945328509932625403648187925701725837320027147008117850676771726584599211944060263980703536652989838849240421752483969008851235419905028876249262719031417591861733977575464020616805477741051174951823573364304374297939927939204186639752450193109114477060187162763368439138407366088208206273829068829817355710191520399298028410679045793064706818007082636938420192974965657759289979805485565832316315971860473486101039171357474849561917393976418547385842410125832482794143698811159707790010586732095753197654320696483404575237687837710356924001568130205829324246617969793181769034125002732965784735203195364351714324131697118240588924952017138814604895487874864834574711105257762783143183819879225461870692213172770520402119560967467104413646438820278613958180924633326275487733061457000609948135678259661416649127274887043458880759656659910774268457010471504525103363453659667148671702213028623389546205775852926206816510419927113522437161749012815254012578098379203328401201226426643822136773429515772165661901031202094801158259317538672836681277684154004014134835983157641448047963524989793071435631068802428292823212233057904906304408118596633570297696813574634982211936721502350339096362892001834053065455165407664633011055591804855390967169363449916643579438502738625583919695589861012128850659628168780485065870610933901270719204899532626605379643803320585710483388225186889820064519732119591482347705508797310138361442835015594280332668737810396003121988707768271476897583682930047438552290392690529459762128491038851902479848206558392449391303464232614298559448973409541782908663093086483844505148772293637113934261336921602099449524906647704027417105616143210740577364047712670422703058352258457157734862124066851404779042350943904861844826621279278827821258858690568260115464667695750900074604185124575904223011253075027192588676993858768568996740574184142806060108164320232646410694845504770016548772268756694874131069868466532086773447405172405862119043809499487687091507982385806493929922033227378695936218347118655229872595776248526241661742227188388586115386911476266367474898842861894438670993154306913303612414108722357777940611520981986011408669996386772459199566697155181213310953267156984861687556233056907396256216543854047472535139225352312484154453750818195515479865808139896353573840216078938555420298265425393478243663441486523152852432439418747142790898684896209149832867185913662633311253751655312749290760193654438326003014697683926402980280887923725659663697549948371446662344550434526061328098819444207777180438667464551076416708231635693804535120357757072480744069703743341952542569231512971940958412227759472032189261032429548290937122500485112164424852205126072171004586760507773062245642771785205280443366611172387245910727995375753975823862625409089466010474447334674364068574638562856136946245624307572250045261271964131849130319265284012578159895633884972890756880112087745596069345948006462222555368368016271730917220596736440173726224146814318483637170546326670585250728535443884771396789974724719268170730908901460512505334677339798005095639759570488820382467699803364232960082328237963225887650712411694478253835742523652605322140267581141229792342268770769845360445560226371667153338902484025500597877618163034517558948179631405066289184340424614380274728818528314955112842945436297210362986821869190728268521068789337908094410282968814617294003102550351607494610221748108031181302687513235823330275221432527210158374224708124610787807092940799511643322706852704779738634634340309998679386362396461798215170692047349040774949720629806690552917348944003696062639961715197427235385106959286124131463639085565517465002623392686015588200719770774304537135537909727532982963246092460257335599262376369768250927888356673603393448939413194340058195031381265452395408521153065311988702972606109922227726794341712469096709201274260504584090527450148517622191417362258736563858653672946692728247865130832187120963547193981832853456455628242564301646165341204841385578043544566261004422694415520761331308205745458843664719842919045837641417221591490764997732689077455814107461346565028206930057366947935492920078548728952932983742001834141989332954921071725946282089597365437143542026086524825218224790078722384934971388056266539755456598693175259257627591190743831891342579893737129659569015497220719432762988746223615248602212109702403935807667922514962381121111697308689106373388930694402894775116024167513832871287719283021907432742107812617765861792154219353105156078784414708199103079935283962640552647703075271952738942133364279822298338631250180409638800024628160416103509578044913744679921935993491141448868997304431953112722322105695362520142576387800930523865880025878564659962032427780682999386619643545673810630107128974655271896118243344346020909247539060811882225353056639895530425191917520203778213261314878685439731132249428802864382248127514064683800564447812884946386259884036936737031250431035840627487140934820247003210601951896533871975653052902922284025524804691770245600154482365889426282529474750770300502139792100503937204099890877029818354375512671395606328612591371193772716500312883837127924456353487959089952529095273314764643034803637518973710688777133471254409570710702131256848206260090013674942157122837617463676740830105670600612830643986526548557956990138008060039932915725685520367369766332290463020070264813577704039278898120792778102977777236629512851434826679984022580290237345477882443917241095613941657697609392767650520304030785831034318755081665528328658475014960307195754459621600441364283169103964128377933039521113923975524246285649026680954753088216432549821680232489942519948145028083628215780451574485072699489426248750420240405567532475501030412143052408629842086306619606193027828128613056743324633794235011129281477408967763444799359865650289881076787317651416295613456268636141568098931533326224165174438473317102863243121401698102688192974387797506667812623271413779018535478566347986140286372256070510725232876731685267562858964416749332668492381148066987057069229495349435602033269535448990221861320203593825044585857563929955986993865898232128193982691773550460900542468894872452527381475496542202797967572094342774478852452837596458279085935844492424222994403448149797234132058852472907856622084608723834177708858534369608990642726411161024043111517016763056291259873627579281861177562041519891992886383435792898754116154822651177307176566143256656357838184955889069897340879886211561897069162824776224479885920684312811975340019597779744999814942062239558974918437593444535747530889550406385677119215353264896588459379943524851577874018822440856724322031883372513461326447469595256236048337326086980094536084174907304683929868279134376993341835359467790597133789754909580798008713848006765721886369555574180839347895950456722071963824922445068243852619333703642276254774210276073372485895820508895490210504145681414253774583696738383863647005647917266385988210465647900158042760393739888418692362386844373665451572778185684672439437731204038352159118282452449335736339503606186700389057744032081799557125806407465296206779668120526283637841954757515504233727967207424354586554988487269333921612310380324059080533161450048426219620421520245944830361414821116851614596348138934637849788927665118211555070392817118501573544029588638475887428131078520192136396215029850053409425694523396055042055425292266224560122924331117873893827774178950781959096450448208899309871742270530893204440296988908954501344417117740397204533082662134288256787731313731075103278956885823377593897603532920356702997381382375041686639639420088329498990957656659937016159709578262613806820706472648388667201739590166946342065160747276246463132617623759622051749544601041345875220052772468891123935478252070336938026888925559386067781746912571062265188415024665437476693784582067967131363491893859309667963391690137150124005612318591642580687144461447656705855259214707420503195582004559514287385145999427561033277727151207289632189919849202448435151173635681279221947720861083595719437155267732572951045097459590189793088385577276462735944435320446531216933725714989234137597312867435265974965201774447234428041228834136760872640488028900600588285263097961508412105504856534065522697823091112886440192196308772141432066891677505080466806359674193684905281707321835405356472249326882103499971995215396569296229309596323282784803296186868646577723645172756753857668780973232042753614836192791566647288466040474636462620842448641758185696524046061148182846803354187200911211658627239097717930634507847904134431573270195213873608267444621941972308788009824251171438178654422182303434403945372668128330231080792871293039518298551698010069155444049927915623807526166748306536983745854301804910968599390359544497299153768860760469657140421575022902376427266069488318326845924544384169499545404157888500714893387572721535466801450986581392207726423309569893546813459818995265562726791770868242364009076669588981943792241967873651767805601433065618627016889972815494442582747090047059327156561260553290528985367173163102297029743933333817839479059052576901207373073514751567085946741410474594016324265638339588011007851999486132623173061727206839141687340811503245250917288425602117505928669394727672673497587711741988534254499103912937697875810048703855585621446567854755136970877566321104466891971556036844544728190531978337727480247997890206458930157020883874891530342916251320992606096080915978824838715981555478681655768683590826669104440727641138222667584572279228836787927551932105387608479453014980174247563147782455375549874830582705522308953348935884018496955537409661304481076838850934164251771821049606434321950224786493827441006241144986560681522758625219288659887894948058684681954982322140452363779635402809259886670095136451277914056987841633845678659246201994909217271885475461629586505317267962532736765046979810226816339337637562151835623574266432594108387246911609790637265796624439841594298119090711829977376559481648465146571484007872740477599940636359001996575666743430270757252908146091966092207711374991749619785183814909558338178977391754040422372166194796341886151361460869023813324129687936881976849208132086560174839181524023990698987308596743082295963377232647772685246014963932811543928000600887956480752141164320626511168529692363086137779860665985681317126101084061337526866307190731821120242208977453997578272138473532536652237520380078275279763845003089520750063756771583359801122122755705326396497979559057653837136201140575396330289922849070134770775176182705570905197593907711129566470455270970127261613010514942073398661880144842656194674429268359919966041215817964476791324019449641364983658358546409294058293674604291886749142130087395688708141684537789440632582093230517193275750274624071304424402796044209402323503565791411263722051934863636183925147328726226655038055073028614131814449846741279790330921793176173474454513687570222075886451807463146142572918019778879206265186877685957374478677625048841375616509849726536134976320017384594862479040681737507867789819757252454724228163778252742353386999067214757928329927310020787127062374015676213214628560492423829615371694568723696448075335566945844675132356545370320843733102611219731083429586321775534150208611238143545005480760561308059996119186859195379363204595208495593533148499407026311699011130366475826187848874586206500737385668093584097612522887578712571384029904161227443729801643552679847852243002255272415990331640528581183798362463108795772944121464169882948503643253890298501732610484047388433240880012011091233413534901794761353410783140501776200366330613087327659541363333113449463319118776752385380986586289255652123323851385594325782373600272385928450608447799531456345291039111124825312287890756850830069657049436074969155267777810194941358301327629054945716892445516434811236027005782777930020158116914168054697570946441319993329260770064981472647868625038888242764066484885038018358848394873494173314464838316644199750022476156685120832272112333530386547715128215596103354761677615713992577030000467452994958012041597358918957980158991819667376669924372569164704954555508134065314910068469659627964336112427023383164864237492812230292643997882691135931334934928155960723595042109269663038567895843654576812838955459422041767029540611189842033202990343411865484352594489056280403489922798643287769820355409179504693697346585313885203424927938150365235939781006942618184902049177806736694775516470982817015339838898033308623906425301412796270602565055399355206904731959305143845841678435250234203870447747854579436788947067886701923479364661103511970667915891576889017676117790598632340786420283603178326643830606568254094072490584900845373016537434034371582384678693862798339353270770596387999859461458593865920078639688632185824372646104659200569345384730861661364207555461920039870145098107546260336099719657263818266909984462985935726135658204450845369748840975043453362294459534314238973848024416220771310139923798570914364541176998053954717481077707872698700870517421454994552825419384658008647331023886537114073517762086087857502689699387910502017428823308676264835943962912553472819390244179835210072332258025973985153429561414402617031572169093340126102064687275301436163093683026094922051639924548297151284982593060066370196906209924805685018371177640321941091991862468262730968502900420820300366068434530292622949308868628120751504009159753471767510863170267797270386809496668307521611911757202822739182854965114206066614741922712860379719340783673408606620696793278363987741497394919039772005963649796595965780146645999142719450183872703060869641475985518924802713075174774605756812957260609929047739927199471540095075861542040736680643295792213892657555664001093602390500263125001354992384111812364255269734176696250189100467734424937417000006133594222162353987131275529252729404214697499755293113720486791345406762408347359589976437581085046822320051972431733440727207666211143843811370036651527748423550911220568572843531817520258267874088906606113607756448162015898649212473497287972434423917808425712999560807446146169946138763029171116170112119266622121027146713893833764854880403735046766595646077743270600143212544639464953553723711372797859236743104227864656022652296169146564783915496003516658994025951128644181809000727741624918127411028694370700918685203295390300296652550383057602428469072166238502799814284654586507859904693078070594836366593969956058640477960130414789679829196983073467841044197566306108294074015312678154216797435317972685889476349068884915459852210552612887812299691961031456082644677645050420455252877279878450581342722359576937594256460020113820259806936719279520396930259210596305897504766527137257859122666007347505645237166974504573260528893304750505040255059082766377698558268401176959334704939893456971257177213066087018663143238173619372170740810426360404776520283234182671411449532593742480466876953663203878374049844084591168783651742485485466282002333986020820644018943387905977544637550633720177581105660656160081370347829454675072065495306251112357291872280929073360374915517464053240492478846834406328600499502203943853535479164093817040193164958256213714846701778848331978224297830527597698894070548622503778531870550874607316434794873292382580407196715293104177930912624140376312192911282756636421132245634627206182929051705932230673771607881352410989764508786539407156047851353687717801319489363044689775095145429535380860930576146266435637183065154654853390312399061101355381201279459947420090178692904027224784885075334269598508335172566390872481651604362938346279007523514224951717399561474546550309576141668238841556701826368475361928489708461888809433353456839855112713006046763307882962156898649921779183944778491638955862765149877440374637736094928566304253755954556532822068533748652923544639621128378393575644129158745725010033564351826906090778264917771400222834912863555305524568948007681339869665373285639872315490142170328730627429320948502527925996861447469385324827857284508205528916957295177562344185077050284463155456801233144099507161786892260739478494398261089191920069578097300539468945489773711688887374978787822447499414464191971738300447753748821199282078461025042535826659757390777144132001009255715216414844988952191100167200896666484857755709906724587449910444875605303174101553613693576829771499945022674900045764267453620918152700050895997717626393528594683131609969387104702004319630882752162725871173186604997594661715139158143445012207538902169504886643603286971647305654022251582077338613021882930450807137657563928456641139186353956748858715652070959323394190119128602677218281961068865778975768918651662745151196699428956824889867546975547121299300410233962567947513099997045869506348909220942604234911255688776915648345795132711539362159006744217223838681964357756287318300227335486252427676240006412689342029278179645089570183676622637015688026137115620127151186608855463559772325106617734960549604610130110418067126075132715358871471459626032054796683238930990027364435484891499564149309649455757353523251469175826403804161256331849600206093256797810485553362579756641227630717957390271579658236393989492616106130894155396922488853348918784568697070537092362621988590436496320237645355024423139553040579370473676063754361211526497058177290047405046273751285988693275494629745652374788792770300900741268581662447896351674695200473146209656412880135288893360813179418557538338979529699657152723267243215153604064299055281172936153272466770817311823274911053655782072360347512282638569034339785336777017994527340736793286431793707187227556554790670311841511834287792408140098183311602631720631629727331813915801244036670765939926907717058509530350748227758227050399998304144578880521233315877871710096458783678393005473483819288864023143477201156775480473711831842929204699917762778821531341120700064204433594028325800888371475048841248268220031529074898440401805498737588547173140214337616816630142805274019079008947243249899868084090498090105586907454646641604970111488265864743582660959905670404794472462594544227592480988424337008306217749457269275822719513174198745874401081208064931169024059363455741877262053183848932800882510990453418247862912487720687403552602442558255001997817093201170812540655847966951091501020017372380949036931237506815657227008669980548945031262793307531536578939081241861483323679656071433625316103470609074009003233856487753899981825145446608636014573842863205092783911875854301057499844813659801630093495987583183019414469127752431532263213628316759770172022063343768446680437198482667750986797225000721823724955780019548031215717378977894091639445588721488236002856403680866220802269740344132746911532884829148577736427516779759879846011209009211759158563682956284814633300183712272941113380959922562636446479823256379301827369725306438761336067393015621082469967156055639795422228093729867958828040046895327853620401834311241837165832581431543138515479871064283289971212881575407176460236504058055421647125854192444523291645202657153623221805687285890588631002587933796929778409214935782931114916622262934016268793930334699572294308927450852105109836782746574612821604890383692805820731177486300847784808715959607990327074341558319150010110529356012389893116126815589081584363998274140413585324135754564507480984994693122617089705355491641800419262975447776085576493916661889489879368634977516328376979582400216045239227172847176208144982595697793292753695549324212564324387237855886442359927749528253585418037651321216637970436296120935440429257754500601796999583873178949649050389796457836373041082628502749797913597688500581588797804321848700827262449450966531784149896313931996578429605073970057317637014288748973250656792200420159744712982526304272533233991431145914585840731219486062597641237718223894842220314389014888589994871240132686833784917734909438314757038333182285113468935628838665718750484913232248781695713147132129347905621281970634853437971923329358411491069182570834205872035847772226791368739913649518238576354933674917918253046492407074176557125060285418098420818025174064314134936621150329546650884905561538662387998490913383558355602209153998601898237419781143483524096966455404869778672433352287499616162150793289336185344846181636431987193454571206332939057004002792132865179342297318200852721965707550849518409452791990098542460927403791531245168503988238022922289127838760304654094830434378269455866653412911597378426195232594447012385482883810700924282112476948508367231098838182492588085981323290112368238374004318508639685475254513902368606017783526322525144207473232157458418465211176846845868328726165208706591347022312814114255898633051984670944942386064563129898723371548461924837572594775329823310082742039109103398357774361145655244723027267645684542196305753779181474269524257212844302223699974161823256102561741659465898646430867830279139991054652342819263891167430934795629013904865543069062425821449448345610297766209643217942222013513806625363940207281169730943054877733087115342359044984596332343285368743537819378857460624643077849326159366463740131094495164221498681335684189034294551559861306114171586263882730445319040194795260739391546115281944463798495825695914371956158756369153472825817983288248031720203195615003268694908674723496362272407585591118206645970259169525499198202523318572758695536098293463653488019332234903376588571893208534023871451033892417336687138347573859599600689491484343075552271589060404042437092982102918266629152770025092784600168501534114927448459415908989566758474444614491726991999758022104018610126992631644198613582711660185149873694502072051656799237137602853393513884423351859921832347091634656837649151411889850413644615137154885806607342373653912136279314468907556451002622091712368135085261166161200754884712229495718455244693867063805413497101441327509049317620847816680359250425877485318444008041251164152599129732944086826401772885339729486826419204003287212595610948517503595156838392379084840691919964870118472674610024189598700119853883944068839546207955181625037206212934012687240346316272196872988358221547373078683043849985311866694752880442917289464259515680113854165530763297998016207986891503279455808995758429817030223154740572764167594709023051916929265034021800307407942210499334022075693624403556526955817531399697103878087138914887025688392536261274306753030654918575702788136707660566952441036491212986294843013276211443014905683914222024766947771603423016322870531273637149508039993852785869183062501295892089421775680602280374482388072555953859867448154797491106606321482928254380761469858491081066977397183123070710678669123647966554588606722587435778685321123236365417795359678552535774748307881193791572795007110042227537238540421371340702761964428367684097568413061044496739996478273167170811765997546019002445209218162711172122478947521384770793475164394899112060738029800279600569334825168211406528458406369026895121090160027216565632363136110899490122439619249097941566355286071958682580798345597632552595957295627862480953473872981108532536323330316181880187918323570869400723289300040775088608545937102772731778449703375098040145047593180561068964815064471383100561708194653019728601406032724324725271434360556715965368510342325049096365466109584413354002479202599419879594442807145992893063775451445784120902111847144637326271869163890815488725311624319401590792456152528163991775076362236645286396046013178883551255771093915198279430083197353222097740895538119150318968823823260658272462487926898328526981687634465377543779139087987548626471649421322081311840614221095375321309008845500011354053196958573029011709870756433942236606783282831554385123876190412553035686570642043696057423713656624525290428353218421980551353391301494654000038451151711817224563569117598289983178588440132757700828793806271854455346609728958054545187114075171029073945767362901377151847864921383941256398453623449244725825131313101199310219640817738973907650373763631244904467640158654560853396726346493286608149659668371684932656848912850058366685081319320479800223881186321468419647183315847215939934862367123343655302662618782774535762057169812645363992933264935393279750763639088393645180701051786673827264198849949055222559725396210205936184478316334807619058341262632636428565767143784298973506590978152192775645180016318606539994706896766340046553952233121927083136553328466068636919013769713106567784342763482632505527867402559771432138585749389556631190772610829681075450784408234326265211053463097871068543087673448057666962101212044201385159341616616143895160479016268882898993197314292611008454438959557943590081641708214747559383035537739610229374861105411733892531346648615383289944658938046398943601620375587319035867188649895033886130791829855979343397512982179466338295840742900102558777679398943369742322253832083856763257499365627490782250120286493539484584305111421778284188674560137163004947183382281972041644610338217900733887129757550571195221412471653993312347636886253082038128893521374098485684024736598549689791575304459152829262833599534117502769738011482574511544560039642099172583314329863558230313197590258336808783116634591136741772033913297522089146280657007221656606322524532619575847555071275341980963206918237074370193436812277782321155286064171511945679707906573287112832150244272769402528800847448862603962222743241160205958796334063750403554327797016101635118518444693585403612539390058970254123810693879032556734571974934091392792296347835305634536494134465521897581193516461349524593233214273114417094579452232951645956470632098118147109194184314134693819317768746619396417405633128529553271398766047793578801935269931746151579006397097951623769742300137138999390616794776585868304812482780711088771554673408061815646359388055215641410325257988882059802996566366284275009834087976117178411425963965854905149019411211765732858990027241905982569851346263853717958519372719610589774392181905010223806714768375728727574804357431637371306038784123209797443057257810822873840083812393691694794705800646858202504429924317888590283219383886822006701867489092685986091050241833035875755533120841360436594129226954448686264809515367480747586851959246086469921949305686742782592889272263322402578089428412533655844765396726383312310461647890599767658442053576242462898934916482184222086178783085319199732804090696970891499916230450086838356144386615003144304194630553058411009466371929173579632324847461179500251727948657067190349922299643756693997643424698820127226405482701669165261423418629523355757394812037148853577192346930609142772742108992120219345341389176017180603702131247626710314201695661639267102616205049032888177690493302931981334526010587555998771391535745787361513552079696166871635301457460813174035035536165341013206832303733107598578354141772423263386483825658604235490208570562685251628166618987142543603919440930751903655168463869014390432274314552630829288343341573904434496988757823172995394396448843671433678862591658248152300301706532642705336267429053796625311292563619010829610112956692205126423300827774749004489578814317974402571546186653931340110269171751774701494022144867677426730428388873845814610273755224780385715054513841380184025961344396723991889344496753759666708133236819579540412963423421685208383426919928969593866952377075598185700373452574261033361170092583836880695615779093286577787988485653794078241483646535257039298759530365341538896375184384157189960414126078924133174814390584785330478807924239627785618084101111617179516601840557044389432276985196645336834097857860970358281036601144836634910191469438238119498674276821715086060577507184144668063724584861264927452296190316321478268227152416731730038074116183399379825701822036595877843826933409239984026791830093535199037716058996772361649702797337183841761172010753157392853635847061425825165723814136620213602166142144077895259826009303621624880923822196686688986424253940245227777165021855295834848160706154761067527211028601200222876646191826147942717356990854514648330410941329096108380509452258647275556726232041039806312474229223521764532427354752168134890978613790503214809231880871409138198811291283799777954036051778102961701668151887316272995033780394684595579480546940044556149672924317878220341109100651108603315292663963217835015611585281571446071563200496313595179037563301028677622561837700541761755220333076413036408382775175562813156348377639007835087625170984445693793629993345483538807061783014309784579804870831543553436037946476436509751216534767341412199121260236010011190170580202875884510572220252025863914379952806625196583369279799996127480706365149831808946140267020693913869341595351096062411688936275540257588954954937993073246668936618335874243244596546966674762368372952036095189598485851845865535015387471027787108083231130440615856602578560241834472596586238290108684947833753380431055222935397284452423137068418282853958541989682220952926576822643532985527792647248600520900012277740481148280334285826183142528422283669159393688127355513374156150573248624705184292225344360839676797144540627347447246026546406223606479085844052160967781618864336486598243028325432646764616187783457267369429691932792947692519145320425091329269885638796321659032705738792260316578251663489652945229795362675528480860472931658448781724172766470444682039342528049480150234440681086931325741674606334996968906184661925210149406319915524052412676184846901796353179277112549894502639041544414533840353963309817274349492217537897325904952596731125490931829521285498338349325891759219276109137493538382167457225269367925392960087633432908090565420143802991868616420809871969353034964024350966099663360512688916333984472217044900509377532364043125617513783200412096617547220990981538934780794218421864034214496417825484138753326124058773777872426750344702113678549720249568529533472772520729722650777633611102328703540609596703816105094262897357023950894085771397409766319222251244612610091673046765491031608921041786421831501267951647617263911346411449600656610836048270058895026794428771836346742827827969391277994380500319302036230841037212587106450265471151941624754247277399241732662654654683508189344796899185405881049932633323990867356120291468965101420108836906555711960941515717978234879698869470700144279405304224503293711531328322715574425469516402805762646762462412250325023991305533249485797972489134168626166055095315669304264637996626993928472464785818820024474387871541924240764290398569075526384107783576147633571944898868004312299608829204334969008507203849567694660153392353224458352176046618460764080943279677262107008334782360104837326505832518086378119129408461461075949499823075641828906709208601972580541242726506923757681577281752393115517060287742457167999256201982565828360519311595797438984198773897436816194879745398108615959794791723198731603806416832938842687387486952762897077104188440506443639150624490601879645946701564652921882424147043101149864494971092965530954712397432755733182260196405787015653414350081703564298121113653718150049745021249619600205758093899623929103783208657747011742352336573903364255949004822204206609845666195191003115229772197169188529137343580790065420405675629671609449773559593829018874073753718381451789054762707728946126504142327020279919944811079114901211534195311749712070201479119283424172172877650464512007724625053269943256454586849413490558424748528574482737303807333194166477653942593776904396010136820342417760597504439695374600664969550086740389907416325025241658177519968890940221180545115160338931690061293199196065518926925433956145021987366804160163776212803615598614708354616021752928116290900193030383387846018166867921427028372033229831188976425119250616091254618614467747753544129657554073810013267871670849500875983627333650208659627630792305639647285412159731379010627164052055892056946165900657332147748364640262452044283782536230004404470311205816368229309773130398533490633801109960374091829590447679133741006820361318653303099446266582848623227038854261537082319301275339858322113546007845392596406343991243129196946283833257315127985245727368841281195108754260415188107795769251841420069956448862329991147362107311093723812714991584800963523848020407492700463480168166740372095790169535475755220292653396065943728829473135769705975104745901389312205303424842801539220391495433968566102811200406621306441167462957057219732892650024829983504637849344495421455077415321651557171774805214309243343337337208773653409557711206943241251424108934530296201933837976588803267402764577718548454053970804669388012005270004587861248994984393366639877378412184339153816727598882567637467234580243981000695416177626318919077129952873891211017486197453032078242797437414732786993247719627033949546736079371004166739272934347968751431242211864679909785075013575047756104941173768135547339348383106796116906135840002230518959490046835716033681944257049562899402785329762006684304392635091747492831309636630600314779427244065530976306896905328787523660588104229215977404077612772202011337876498664146214614472582514017091524192736730213050487795832261874242071602401327799562333924567708092690676156666221215110859008631618222936587685448292275586881877978101788912878981546571725864590759091147153345061074083929717665132230921119851113135582927229578154580131932750556591319155930228132379969458224058590634785147103841448676629127042614965551137748744673714356961421409428630392736153882959359612480388380805419523571445650636473344553267255031887093429825243071680563351249065405801926974602862976653707650613494279943087062764538711115320703729611339597137449860280545213145094930919277059947435583908798288603750860262966521683866708590037573576454057214544904862067586119675830876893538669108734399459588560974993742877412666079095074892579501769291663249225630527723110288354995231226680357907503780108186221311880789841806993100896440360455581254473971234889067543414880167284245343070571049904261359448957258182630871581226198885565345127618173783650985678873290954734127252585068330711910187248583722362378632796797642588732972940143176606905153397302555724362183553673813949816746225302585751845630532655286197187205383057822973722361016145176154345131739802947195858397487387235646700112151198345829247494298598071860508995163341802619169394928089164000385434819010811525529274623284506297577504681596633904436683641649942131101839989906504001814046294221776468601021057847193814020474043003203971216447821195315897295429595872737322848387031080232167262663865440953882368630172696423123889198259113804386097162198771519731488467326577035709113499569815258723812452716943048364993678040312203082128608791335812315276728603295784953117543079598187892385729593512525208265343249226022030913245058289764681166914142467318710066209085075685043296840354486734771465824260041419515154975747774619143851584304420771700506904408949252645806799034631173959686384182388865934513230650034062782511103074464510076827932310223366885830275619259024744714906612494512203240542100755091843001265379481745474699791890294759952039697332819738283105488361256500252033536237820811562207731867602074380258119784333601545881137434222023569433778369575515429873977606126516946754809338362905907643501296674850772385124983536019745915346234135956025880917129420299440223377092606119547404463805857794985038202441818092833453625561438430653241302394917746997844577585995639607847557590543950012080908936587402450378852865825428305428735909437850076314026841329640957701757529573524914183876186324603399080494127411049884093871491034917694858869438124639861641556001364218167267959697749404732492068882424020587940506611794669481810436101668571861802355933821078374786425070617092180907620845466343604114662976998274696873939162931818673921323925745157634061937915726878213850917192559968762957402850227414468407557019819629866267425495817002070432788581084191385984525611166627650360023891895566249627515572119601616650308609200530077578091825554498947521141954706313942175954761673368961387272159996695942788419794086782723747104363856810938721771799569196200109174829880575937879603777893460475159278937786460357332664700765155427842934678334493604710108892159684710057466912753565892267769485258300738025837494827652529506346537660633088584130376753493782518797042316556468163617915582917899680989937397593057331321471516299699843351831766834505891488769605146606620785376390366676792989828252134612077999766574631455627899705286517951264717878718569054853540241920719069496259740593522248153225418955368999218766164538097496453895228352713634011303157112570400870791659548490533493378301422580930219718019329437045571147022157071304327159174389554609730864337083556675791935565128677713589834996021438404891335427741277221756857995931562319446895661768585961684455171526032456443181579224112166659369418154671063890505468738004343979791039607701551837931486675779636557558175851705186662992803168546668312389318149817324270826000431003918162832156719420139640102893301141764127064406454963149652656023920223122536340902606811207975522849259545214680917072334931101278994211602828813354490254915742772289081018307104486030239364942281939594882686380872186342494052013075908167360346324456878515935784947246229007500812876365467811049291464644098837150639063397290572607123357369242480699662828062153700951289832626642517055430526683343822127524795612388205892583702935138149931004859174070981753615316697227348702953459815733063385590589529565619095037498295979661603039160354298257148645951307113098359815685421604387155572408584963303476227161703367225789792823150777722408782055331093320380680070353906136881023606846100039816105667012094589966693779691792188628337951815201874969572104548734680906107268229325540449648355085626098548341278162535746110940020211810395165520453339163076214643141880084055846193910127611652524467355431293707786503843852843654146915340423456623907340217171636266712738811309231830320187409814839502129599917059362270808794210106151169097294289813124664090099276331541597684261875889781446630782727168295548039434816965389538272990329043215800497561194905704155379327917317366958671406041039564469441625876941400549070580801183407756305710372469854908325731757570624388426159129010701872295230382202751069163828444762689059893155834886943943287776392421701867667037640537094070684590513111691320490490630389416627073585473001474535797079541938624013265898483035298188399809322139740757473334049094293433910967204573055010096681710277481608860082026360448095151046592101291301671838053974282207531473700419675897102774092472552582263682281883705789366002738883562803429282002742991193222981667321236833865118450298764218693932183399442602039743051060715377424917726594638284798472655728367463103335134169974271933704582423691396811079718165432413813084883802740274881849569280219641277358777065660092702773669165782598820269263685588692872782901936525422642152914937067085636724290923454795767812641924037788322055273437929404859488225069758199770055444735426971087141865545736579552216620681072118093496096160546236050393456478587773445868199186423061329414524007807741822754390177622925706495973147860248118011767452644138652030555334497946189732816664732273319271099975151231488924209472102625421505586927634915441249873176430038709425160652837189375518680907557465799700245912369392675919488225991703149330256822455458842942695164310850030725645200166399187718283027877330639519532648308298333140869092411216414166600214249038615833286875667315229344755069640669752496222495119683317733871877098783969379715835922069403316229075141980387630949222413365518008897139053848325586696604428049134755099348563500496617196517371507271383618261640566879582940073847707050518152157102195670489923927450778705599408578262457437202292804799150700994296189700046648903164686178769828698914319441164808186380801645954829971547645406419135243729766354681338759108685643619974582792748875880353113686527755300323057699095109431476524905801189155700438897720861200362401432167911800501766224799160871683931459364939563050774444781780679462054981643874828475727045859020560945868422134005496455284078187369966079068708096411889785775013292811772696646832568248850058589014085373647870156790328545716940601937420856904486393879128860007477925919208825305634656207732227232604287340845782801024920808021332837404206563383862482587714971330838253198427255057442707329389594782608447873258781576023144982189030738357080195689756693438986291043531475801919904391083703366917789345070190962108368875981948882216442742347058998430554814668988284529547371918012687292555272072650447602335431525136488940336434003725468355242759695237941948827208542603345987511147970050524110673385364018097923613695502208403450610134231305739611919450024452315210189026391802402869598350755991764685117142010738275786450490286379419226426102514529142376402851925279392260898067316989846687384111894683548451464314287233136995348556508970045912755852713809801381733895482585558889022689160522688626002500480195044473678720423557875290151235046126307865250702169585920968328950377850445511125057485483000788759416552771531076104948302871889395671948317699581019537747987384429955779827897420397630562522297539254471700520582498179137771782313805071449994044255835276593036324352233256659710334618294306065251561024371918119726106353294736996128904518609170921005454666075074428761455955123160719650452661999859148842629348107416984127980295201984316375423948161473451714521943989999883657648207024885180378378929471592203373080064793892167771304820513535103664306810362308475254202827323522759722719701608226975003506639415694395958447847222959150619519573386418116955315432478904022176855729771383435798315571537834117194737795955646293927659532213393731369174364107978669926534129033593681005680292960726337148293811924638417893899646831158393632304731942631267654309336259810724388762936543841387451654194863186582278204394189548022286192548905514205037334248272297124688898014575218893570452374827064928304577612744756513577088948164947859291089943418253797134699226819867532790555055711306538537711430720338189609874975986129399899833470868283110103813214831751135465539886580083956323185214112768235951838498937382838890390724510394822936836061409504530431182568122557298494902531325531984271020331095004324592845382004252383616275705740570658469662120122175974643707349756766442957698072898694629219969351747347245247899700577342598192356634311566760101978513620912454034762972976197114144946169776955493922207596964785752682407132463794750357992727593071236048136533286874350623880938466940562022337363029185888076428153717357271868235350160388247254393705878597981768079347613289136274042598348929760602668096859021431020653754535983880282923846670763380862285337851567794360870919743814478920700557532714906326056477079132417786098785351827984798576905126877631547429526309107750833810321156184325906580943787518936925629163267014963369893840562658040668272176589160471976970188932848373388037200537818690502035087218659085924337304725340418556229496456064003761655130665243503555536684541148054607972095794398224937666353574235174361322118702791932788774198889642876544054855053741630904305410150661100909660607356611969376392177369917193903209454334946824415210028908119104023327035358037449166761353556306550141044242328583387888576071121255269218717724750249673032817970265049050951186079775146189413798491893333861431567259657700830884822072253605331596099076885039108058172124864591196414335938011735677522318044585412451374367850547533631389565784272259128582768821223671809749701761718993699864160210749745541977256921715608262594806378754193595107187234421344812290914051656529049599957149136483811047335771573954474425179565790178143702469745561170860717652835203079021267851075240139550396937442492880160629346952318789707742376016860164990842752065999803112587739144455230585239552619954273381460400605693609728138078719874257925636322410417234804844508482850285310547647389431231171395886024335986104897658998814691613369663041079233654659311148076868810558677408809324950109498091823973193892180552908975654438328126373542677590759393519968241906963580236467795594918414404348642996069052247609925845058548415587583593331433960713648209267688036464173989446520104264438615677052993159544360987088483294385276358171361882788618670060518691894885901312994647560622837537671780689380178556707950856321039479736192780365034401714054214537830361334360577668151242946569634362003284627335135411515983501028356540026424256517585823795926680616571476097307812469905268421481728465462843311521977927110664705760251529484072966075330212130159460606146287074478239518055341128069478761350527004222593093570180213119743069569244453893004656074197881903240380493896899121202894337564553495569795355596930298360714854261939219087977852300002609620251766567779113029510650429944601685305317206434833673428471175710587108808271669831614985989517234956970951547546758262472390698839648532232884867529659823966730667700237923050062721329767170743053656303107206040352630929700869243161040680714019375046950546928838051326648768775031171588062229268170320765109728092568942197738744765281547611163147006300848240296491911701498717179624409647085589323231673220007442788328591977137152840266719095884396157418915150357191336523095987104819838752126992120221949921859405337150927712461184056384944414796887663418490157741236738786558472736380763349004696571306719651127250644795520515313960750187209973342327601286612050465290880934853462326171491056970637144351694739337572632236155049420853044643840555732777936451180284242465042336536894441638025210035469972777271210752507990976761697202603257449644265866663299231697700170755850827156593818587475471878671016598076622579955719236434757830540356576945029349446600902433072113905856952122424449695293727539460190619408484695356365794037469461338606629196787862634777168560539310656481918701737600652282202263296090562095031699067770027495461588205290414407624878961143740486059405146290979952557016000470384218535541147384820862138858538214818658020995391905094007946103096833155503044436697237499829718922489672502744331552323790333197686529980959215759399917345445714200706790662202416811804454227740994930407105217245964988812519404930086521401563095012723759541170963887776412286409667685844053204627087874995344132827741596576021375193391164547519212967685649067606589604873184381529716207810806453544204531488271121312194424132986862765545363599301883426059818971863623577671806383768871396801855915270534387168552523885784809042911631074045201205830621937725081487767721743219927355550243021032020474398405129745073283068648475554909736224238754403968730259005487064014597936287630151776971133655317576174692225206677901635292289775986042050532448326010641691400389915850203241539565634069672806972906504741660835138281966801773316378381863232322138384286254227857851471336240467510274268347903365001921300980807667707765499223653619797659585531240876171952511820971657341496605145849640452739354498482524323066390888096538827823085157679208140419831883017260618485386404501245337035034455387781083343814359509954387321649679719692053858888255381710709387908230896278739923518013815673535537348053617765092312519230775132368415253786544202615928550883134073422039907823696819102756534813413872257769874180253232874373415232287936221404644993130053178089591353745301314557141809789309006158029743507436205428531264733783722614607308100060461405368673960793074984437454905635963395389936655554919022625800731355623394349714328228052786005040597635488001774834428376929067343135172526574162773053734140609623930260134679357365658647084021643092622668263367971492655606810069168052891741257078689286501649919243189274050377187650671353100710641314738331771696867357431732113690667846283628007859835778451906956547250734726644730409069504859967729218123716641681066559606692589519279721754993558999058585127948439836406018695279484960907274328684086572561752064381439573271231265616880673588620520631980868262006653439275773110858218684276774410367539271291087911016985719498754488309759415561030108583864576886368162003953429110192275393372712596736231321715950497961192816220677555419544133941439621595569398842936395231892506395740075150052725984749542729046200580749209768232505257880696616267576403946608617628196830691533463370296387644345578193792818294852602850150211186002129679407547814601807997360325303542382958155122174063665711205175688369441002747122546430895626825853115749532291255853957818395569343495253832881373518284167765178920318457277847161683277683823217995040940050297089597959759783102801388892426482691872973108016704322557511628179776046690846458158965852105201903262027689877946016421592776801350299676567143267569021573831837913344342593741074574954629393334594658083763406666219831417381894253560168177318838599637045208240589899286497713854544942834995549177180453913125409095782369012650364314076832488519005382469153530038068920417143739060530013695714928373404040499584245989068673025298450474400408806629518599752159629735033559453922075015912074871973007856323226832649892830606717635352080670806742109717748573812975292000846055327618955444476502305288651335984374565242132329681141255033162785104784651370497499740719611501454435703482345035821843042642951101117076491779018556738878717173023774516239545626061531657663643179847798841378143216701067840200299415167897823228348400310872359999057736844419629366934746041856732648100991518184809424295124616417322109920561072957609093742250248651969622953039292447036787397240672740715543394026750887619299773823056042970185853355523021022075945147589047680190264240755299202261623240510186904070994176805869667683012453955945996579697211944356515143854350912737796113355690159977713891870920681075567082811861771883784539189462824050269674040278502696182067228647777806776112522263799535717930877704263012277505918984427987268218226225611051233017737321724345498581006191086822274518908111069011952487451035704067329159803712976745242611577690126324274538437902008114678571539063443701669531825420100243583127613154608001369049450408625436520556361591576716165320722566574625275905242368227274101214600148847408843705591633089931699631182713161542206678925749788765761176152340077593795409152774496825354846381163296832072955295969906206197870311964004459549023172037509855587417430206795054678975750026897043678804845802832931722483116403568097096528834437515462669158296119934419985231682127714052044241864995956125547465486514792423189177981454415051416851591423658329390667240231637714764654539394439844983711403944421786728762263401422402987835933097861063687885325729997336293672064552840702661588274442743555264704438698949610144383136594830054460853391746237206066871481633452109131432874244979934207425741596709732205642777411750882236325427987844871607941355143930808643967059155814077719969962356962265941116080095759827877080795110553326899893959293267102827292253855451993572400928906740219372507046160368339743856442574418810515836635896073404559141747206969337264094830443012356670108703166391424145260110693141222908728949794485568981416020551972546709826772608726468535044040128536039239541365767566150508970805733332859991266101153211903205974808193208182516833978716333465881201647104871246131500366412907899385722788089939767179272641049154084430984676871315873212213344952511637677992475884122307680090000089447373204515503390510320374089669336831085204998424149062205153014961034826273680023958141461777768040522917426245123576907905499472950954563918206424624799949005260616215781532803008153307404314504921615719831901822913544597600204586151563104537288093730340278070441937177572890268489817779331706358369782611851369138055873549373768806715035152086133762542782010683997416441641401634176933861472112644383556797926811157949209726255804439470052206166367633042499918020603388146612583997291329694526110977794817409212321188362576855315901208461619486220498495650503649108219649358527682373850154385775519268966290153517397140515370238036775117576125796604752061802221686360377428269113307777484179455093438459358347579467692811987227676363929073073155421374502886625670311608757631221203368882735609895987001133296576141337815350586533120840595178755787737227104995565149441490243694147213223938516714266515177556092692085583068520692071141024015229987471094519795249486410628707160735457681680396390535454947873575820042185983544622950941448384245357560028053280898592322291923125290202027901023231416538366971163319661188419495311558481156665674522351162573238051735137118395744627762772776475475801772301766008769254775464135498855011921806171099211475341472782524196307264653465536520914559748253213457028742502596586123121951126906264438530475758075691658165324104090362036197889079441709406285531591806948567264123604807176481930419132318120074082553179065297006235356250099074201696734554378806803454965811732300984201572266965459839101841134472812975376706781585286246845509067695680669539456002697189576288088864313375123548193663773276177160864808769118251248299903217212369591387922605127534684017796271188779711466599764123095838777762299861542062280960715004628975124353674986400148009814732327558530736037144668029973981081439675809855494774741623078147484004586691856419504507590104834039185235097660158039638861426440643631270360273835650502153391696959723906673795726424836589032528230645612684377056990978850884482283658937230806489066222192866872033388106439558269296575103878185221345511116120754925514475676160340788447272016666112384397248963214869044818457310444722397676940791712883809034475277793783866832069089221866572276174279111340550408346614969859501561187143439153730801305140488252642333467029634652375059440395586285662205209845047770753175635216861557243323402842842536663145536614608402198289427772751039650763466152702810159159679738001766714206431650547387503735393861486091950703073192497432885295507866845235506979062576230161156628770935746757377638281823941981691179210569295587091017935415176013087263364994049462362575570464048648907292204582072453853258362199586346838563732168582357784797234152898882209668255291000568714551619379834339576149820940668737181296082786461901193847853769348556565876277413590731712385260003057168476348711111529222946081211856896546648070400099712905939469825204695215384478081801682114576334100075592147305981829752319425499596221145505199420546104305487374623142053596276298919060364220420122173092901122304984429168596194831952664212618203228615727595501493130293383900932529411643436275658152031727079816224771106147684611027599824278010541939503517068325567836564627625718116537922820783791699747294587013464633393451544159156340615039236316556036788149949744250204792049161681295075006369376271078835517480770502230252002308498382771902166837773667943475180261549122109632586213589311482718307956575814765876598121597792485130759983482243739864008494398269503887781307406556281072440978820942292362491617482490321067949971598559233968282921240310736604524191969288395446399417740198994592031530300875350740361425457611372248379223242937127752366287599090502198976823349634577874593637977739884344482962399304323932606616430910548169535774562681961084620544520663479738716772318012253160488274298060973486751545940057847440503173539228963384423275890847831089724579370946065420961549282562436646379893106793659959217928216417224317455025626898238362475810983322233483824071166737739265696070226324950982449195468715040267131715576831339980822247943827676233454576532987283480683690434013195739796037976671144448634119160233338924987042262056479150641735809220028181592900101500200096593285184050180925994593040371378786763343826180207521472504454213837998653233011765513148354727970903406205585117263022440091150914570629842428219851962633667078448914695670825892041821440041814776988691683044369246479194131883683681678783199116251996254437877959053422572027045586609928676690970790579981016835259101261115236603503030598263492162169487069145492103354755001509704642260967173652708840056133555712875233395771415938449906637777064601410661865016762599877996513911667869760835926544369239539267631594085465604539334801911871396409005251926574426144231690350609732374786641809253058068803007781193288399463237692963286505453075653892692672902009848008536142272521165769599103678054097044486098915839740518521103527903059415062094073680978938533053853699108842280393053288578582446146193765531295356548354499022360927830266604624426394912435731277709988686524022233301186828695872000033948900335802373811853593008148514530085261431995885091386508355820257857036595016919623646619389022178466342923259532069958597977392583952927432739851609404099666663994680783424548719988871232174508109519263061263331726622857201629317542818366571939764640935482540117944624980244264762057560832658793008924151147617127934098322910576893177754763570016137512716129739319203198889207917986286323649823466751526466898548259012546807296592601341789974125572602510026315128514504608099338635233974496167546042133055108118119825090660898757308803570704145579869659225562330030770763348889164421907839734027384227741966954678039809508237516668523120678579458518757826675257994522771503076532956632919300684034123739857991900951055035473815139996294555679931067115136266656372650734330315612451188639416413069665072182290017011519697117445130370681537269321385836001282298403309582478201224562844574098211671573608935867847005391768026137495815290089535841116311166043545030849487505094818004619166407816911750311840635448569511246232788494944016068288441538938014467251329927629862145548426402844250365013772519530675589954027431061691785811018843599005578292136605072185095238625374192806337255812130688330567611763359451175569870565795157081575521540367064186642613149231675541333522287838491232644988852158471957263282071458060131567499961233552751065835686614383977810563663374420079365439685553088601647696557230195628792221039655327348331560348043977947217158903433964106751855456220863285272573462958591961740064674622247552393634221745243269547164773055915453486427504625873521029518053271442107283677750573933278212781845306179273097256945489966980078530205478259271035558402307863164238131273045425973543500276879549180603004462811573872980178449213323415610207440618443613180203124489254635598826008863252720071840791296971566500406548624613588387291843340543351336939919291119320106730937542932046822152664976287642598630567601051554973533560003897538144240722802683116311747232181957446307594037984533975780467606867445762379741500395716296847219394900425251492147056696908486492548498031443629836878515049398811732087140648616311834205227595447620270498583503099718050270779530208835549216737644716821782078005332040310099982078168145954714249161564947753756068595071319731865910280326821105865354070585293205700701421187763666018516696668500852987080902896607696088739928673439280193543833320054229009480227662324419217853111597697923927815389641241563373280124270862608339119222649788661426874695134434888268809377864689847701990767964426093827154889598293844357371069186232153539236406119347846802496899082429640570002598551209352792990200690112370664750916875982799800753070693781700303322003839390758240610872667744723169481555887924255424085864614237073805281051197311894873768064575840115206758044567818819783894618631801978380088768280395699478696612294768375730726759755417013778773380803541712153095311634883338545645831480031468326196766959275883548836726693953890464612654899200865208359736824772571034060834799976226893479673009019258283818853661694338374982469577302224036480660273988124853585476332807035874546739719351403484929029579358070449453715109622325536923596230149576219483563606301013009238966547365487517418990392238893634145683703514727435300096522927729784560556219029153904101530102323086011884184637632778210604462718684026775971387524505279179665279870373214502821017968104836217983336642219653562506867564478779769446665028062535624544405393368119517173955030749596469416445877765140295040568241178133013585576124314501520215182116621766017837390044284033150690699164061358391886609803183077834421744136403377452784382172567002632462410941934708599679014790796145183712546761767868231066638561289223286330371593603885759132614565806931194503669588909267999430115664741021995199493746958928425047662964805780164153778262607183323181892597101950131171168122075152718169615758934070764276399459785181193869797758462044631087428409784609458642581753921179877902062095316266401018415009784008014749273195603055487138343773826200183732332901970082462868723140059852618115840135490564570482721001217560973815264749152570660826756346551909589854478118258123039331464184756574278370536404780372468940469022353406539016241824377475599757059910056659172973850446782968899603981674848269807319924739283061917115922056474714970490377621885283081021045172171072759498634115119973075559849661674452623945371695920427449981131423478724467168534297275861496893611330148879443833991518684662760725682429918095429245203493230827855408017146743846526848114599228027536691830476502768789192506120868570009646972904205066732885113793987750682805424470890771922235448828946456488072626212378998775417493614690210118308927322575639126753519374612566344045421922961451259891463693041749137574128523486682574525080432530933593456569134433253203629340259248053476034250460289783722244704958338619038123530378102630961718054890370613934043561356668109608337857666646920598732106760073056441691987386486723736897139095165035039777736794834154982566933137041097232863757524495585578919748388592827822526246918007877603248517146822266480721906898061049694188679582188743530255380843327247522410068651817991428711973824322144426345850336756040432197391009934638085796998063555309123086977742367777685610653621241222088887178348147277079040161002607420422397716490641571473152712402894446539846380896238370202161183989797933118937462285327045320027902935917993535705602409627601009770250071521447169571354437371667550208762684048012245965882054960172696304997312348414472734246443870511582529607549468281318097266344051415045294276212246169646001821851837234645959449218412239466643459388599135737983532385970366767941527415336654699989590117012416625475625435483754782207849635462341478001377659240852103769807592313550294466380198868190749439138593140709569381780847760196155300866320036966368429405633406777382910933677822591569970466213450418043118593273313544146360292185649380386647011006248323796710103066583547528099348117611197913793137658114329946721061574498796091837488034780612065205978112413929204790445930847095309061516279928640137285739921837062836958559054479741172917298075737259447645049689609316479804279535045549867712103888463929469505184095950833739489671407525883244863952688240464232270341325712813975482727063914736920669265792870603114428662572040969277168359529373193024411216402820977540947940421446939189370789488326978891563821477081959104446925160610481925027226148894184385936564784561159394718445046416808513755333654935310980173511481062003577321599772577410346456516331125245553594183060505206636867298440274505119426039013678296796013297572795164602985433749286333542335572983132833751488286908227012828089202428582558453187399907989151451207143444389442231303013743211706645404518909432883829606654905485303687519514894813951279331945911081138678019793170755896160529058856722347227854134688035073598544033010615962912322971181583352994631511257873485319197048559754638939297482422757056711931065506953214179213443698513952194099929693248756306449637683351578089227038609611077024058347126973225386824503439524677543904437980251922972798497201325155347638963445116948363735994608312711097908259828244986905259987911448389342043836673623644652621944791234657363668794115451404304410468066126041916007275674326875584367416917350120891349585746440233078995777380552469837478837382891077383178699234714808931344305934114554193542213388560059576140982571434905190869185207409776839338383130294572853242375495119663466442570199621349012700899098879511422579966072244509921973792749462620171436753447013958075430259637425253790154172122133426782436900636588565162894573410562291916564054090180150652917037319822001501910984054866671952940714058391790454683876985409613201419250252532365643173919885826667959264869269772606580299151461910800679630980135321490435980388676376410773689066554528014569792425505252102262581739306891393909822732646404823036084300372663489721227788848203085812531686357779931552146216163736388169185909076104242311230341645085605004387082316189086804716598272790509818263124752183920594643793380134912250390735288725039978751528147399440116066572552023160009105517543608183902738105015776484113065554314782882021462204787459787217828175593635231307794846718116006911439253784183606506119632751326621547480783766517482349837352677383880544489589508203754767394686600325517923814687063611779185867304628219144980541066631911370650526558019405115935243563171193392752553567123468863168205788831744190992585084542173443353630379572011211417086568872595006722397355993546329141153868573069463697286281236086988288156976964765374049440950956578250130439308276449524945971011482288370272879156177084993652164646448210687416939815266734293699817410178896132289222352453804053627599947666435961705783748945803066772863229195063588351910669031980213037063400546787736576685352679722539050664354453330297472487892618691332704814582962115787875899241288542832302480605479877066270464457548407056354532725365543879618559658272235773319257683520345992292320943018909877758727334142620257723451937994248202622469243367606259779218219739370220397393496749421529337008332407689430599752761255760636463273712096593153815314990800017108028242222141668166195073464721674560791315259865484526697157538881136198483955076742627774641704353963133401760581241695248411681132636895604961794375274645532856909784686332968757322012917881519212208304391040395681456419555106850557282237129294573999865883834024191228793945278870171254767882265755098582486616639596108395387653881864186989790796168998362279746159233187713902044728056504878466885052854707682444219770704788100625549707913893018024709376783450485056009719616845228966299949652491520589553938468407302680599704438421925009448038120140378734181509922396841611907877392387478793994105129919658096272012190253390445617398537852186918120952966325574972602050942312549956130807288696930301130331809738519094316737923512564094396254755276368333035908668948877757289846552735357673246299223557797144186371601837034428917036804360110263521462705114035339223328652245616427649412284065036567528127701619960203298438676515758600300112556634714570843488269242898792949081924430570377903354412776755017741882779933885687777945946136135248359395508984817396590427833716523340433594790603758722990051040636044486807496733051477799143735588257433198985142989776286512370158927999358861845443468139034471497435672716224925038617079367605672025932609198897578433976323947810927973926848729124252256166956266616690877723984310467038685141631854782601349461012539137477259411253643209106998209583392921491756918927692356454541992401160195292031637709810308351886161697684617444765036544057458065289158001906977063211830506723722768967081643560528454861825117974393203368884600666395180589958626099865753563337640687044137530262561489695280263386215099417926042472777410939675160778921395117668639172058755507204604380961341387986510654470696997035317161887245936848449477098883230020107110501242155438601148175154402911668022299858355929303356611414018883337266659769459170524830705681656010859070795305532222557300406741033253453215731112846421830385159762149878039648227290716866250291226243621283526959664756353137922316264472605388430377835501391669247268011490952998197232443109149519679925225959065012107813046465451508255632617032451812090003384314368108639089257662920787733103112752820597868680157657375876184421390263765354910498749879713199982708238184679041531868486121911782281936178233439096374647403674853907055162639740169944005241533478610075038747179005960314317561595197525807205494999326291604518380738903886631662686135020631251019972323670334300112880799902642204588099459506713940900998382548766906964462698914793410683994637669340647039210849336219282169649023692714132398125863776510180405571038259634051094018147197696761062974366145611005715998065519219455273282141387980433447940821539867068843167939495832540171840117192125683897220248350739175453952963321967231042921505082365956242815641506469075643351141793021915706924754202341493561361027907318611079972581070449932705179654235112696327047151061548067560918888783051669766037885114595251599714703620232980777801837362633943902643965125027809602119572387624646324489649795060805485638418078383044328424980505704955284353782355516295141441020872694808039557133968944220240529756378583586910010417650811616789579616236870904972131167503605183024463044007069762280804701917542920549728827696476777554969983241644321807853143973676906426223907103003632114589528376017929581862739319670311193528552355585016935523034989690442547942110003935816296016932562714038462761524173698515667715886141146198823095503488481410929274893674520819978414852225474795485591826122769796294823091222982091089702067224839095356696839309029287410522623037598548534768702828171944833849874525229178699183827219878595222777295965768672061807685750363275927220056565876558025966354754416897570155670339719276741112546862468131089983257013064403984879503333428468606743460977016131236146840711090470772169157204145487801794838789503119559857979665807853498829055546817538521719909956327591441595494954552412643542846440884313563457958946427864597901359462922105404788087974182221712907479024256830301797336602886350290571419049312264348057776794851558766608943134503123699796082188640853778666935943067762168376064285368540618249722669786426755184376908815068182008005686212229989789600226071889948686856406514486057733716579123946167420193174940419751084094602775073424593318780523043857489589832121397620409626861193700359393374869673079545160250694772286128687967273759313207705325554642299592005252385448624268690966533599356561315877354907992455427621201542218635122174784387400605987384589843975377594593867169910508054111042314726541333986830928362918379189956034316040959902815293257891178112206409478483114123303660751112193258974858033501166794701873366208102895452169897008101145628129904931820509423429059152702918712953306774827134333892117326181690826328029869308021205046852110425428515878881053901856385595539212058029185270244613846901613899444479648086192809086924231247445274084405222334767083289278510665475473972351976909127518711086303683497609949675484190979452321636105126484157550406703865964716482918418590005347617003240562714775435201660702195612592075203160319154935743172399413177105996640899916270295635342409547216474369987791216916194520543709000862475943876506169326131603357149492345501823563175631061038806552210916949929088388994092794605866719189563850598311380125554315938472026518649893297094434694337822984931079002842202476949561601716715893178620034972784922314881903151642874705829025060684795742792054786758845096240611028915756439214963908391306551365029861882280218891268596111085391064859371720710065729424870793607038912451517293249937465747629372757141987402498045164103474413006598676230425996568385063349594016920617216616737563383661613244265189643358036713145267917500059218867124177677859627097119021771520208017261352064450566914413420281405926056619107704879319617620950970100468721482618771389794966646174307194011861552934480181013236255906140021799806718546286616352005854515742838342842023784176252395098895189001318459935937181104323823395174560736308234423803011030085060998800359693964926558441131813411798884566368180993596543697827275449063387859878330781126034920358656863364256996303030862452417448524989374850973413452873395560144712931366981183385298621639007362933247985613193034849548020334699170099503622362721397871001011850422626789732951359908718878410955932811096494681251578795467376059732113114531328352000736394547116951400097064346811784050012679260490888842387249083612151155432568323902548231337065594588308505703043165341168048852554545601370270133903302807954764867727060302835400690358768399235919158993440310358579653219099430866679282489927967847897538099231382518351196630958287578582964998576697553305436347770794831550026853366204766166288121027341011065152552554866468911868481100121326134387634545538172396958004124223821377627409049111183478974122168621451740783743299172446691884498913784397125737710279745087174213342616861239275198626100977232516937014012771045039667693516894017700742717779430288309384328128189635411355479059382031254813738814567442741813690584695538205973354919186169909737822073797962194500679758669463883190011617739309349667821899973620816864660479383912462008959960541545658625662042406399024646813149645041004025839780375298344925642312246191522373418773976305445529756307834461322697000754728337399353218913097316889082529891810286449084045220205537342349438176102534652051307861511814683107974514001526411391395014167198564542351105886478726612300534586707442159632776826568442199102089603148686284051615158645823009116757715749736899274732994683265240259498311198414281209009903484022368826263964888101673728306184095648159515607840532853820725662718122512239209987155448056462949591190685104252291327753214213122171894569034822170823628875495440874597067985907728471278141637414911290033015715536773050209788200582588577951679756220667039723952319709094645466368226997543119483903915758498157093104556532656826257604760581682937990624912838974116589780994114124530770803589593942806648156979405384165614862261787172363051296307064931886672843860645283744138257265780417330410398133449298596992314956839742899786342412662503565066825410707193460142568380994930746390106937809727066984690142433456607789901823970013711108784437048748317590305769562881426816138461327704657871337537769756343390630941725292485492408059356763846474050615489501525240153854359602044323727035705780117130870092380146176890936526732176810921953439808723205796070644637320539635422612510391630402640607058648330247873465894300640503080499967033594279787328973460013290548483472490502528498497791960402203793026013641147686130055379073382506203567478411039214554215194780779824628800717437643150893052885054221288245366161987603929208244173457022339874553851819899649828984239017086730921502287429781696991362994894401531300103962344507777932762819710732238585983883938182334281587142263335913685305504818579466958048163053443598782611809585697254570835786460022308245996720438684269713401621870859936269768235047522181946353840544070774093510619344237141971693089622865581202648072721106185044284596930582539463127395672142676880197773439578135777992362157750225579144434293440433254822126632582082767164738780848205607078107006270142857007781499486689875677461002665057729164767927681928594438916980529716286827344536673394346356149738583886853019606354262807772981040169834107491406941495600243991281656166652544784195099222277293692613712967085046871988418800105734721032070681372629151405514477376274313322926425296983775826523464541945315706569007726976941493108174153055904381680084256968853642715050368169364886088479395885321000831754240287291727090668442543557394110597153505713520527832629334900008121815605735571332154433391310929580969890112369238212311041729637748332115682860897841792952079068029923322131628580264611708843514503602181510157809829322575587370778515608862783024214425717756926345647208215086492289669213107822894480327939346115763309888059430890856158513897676033571910145339135359790785351742186327144816122780509658886077271251074267414747373282780052835783240564230851766312967509328460823614380792622194893902528118512319394062600063295237806139448250245582750751403504922653370971364666258151731171802762819344704513768029350209806967383705287496659181091947186991365297323048650785190307222617152841945144181118107987572908802654697013455913919245488592176023925740173204357517040301089126853321508511179155522357978152675849732569409003265100264794218504563734529457171194671827279077087238918353118089125119704062802253885992953697409232836591163605693444404021839703499065329827170370896695769603615757624388773590209398432635552383568272821091293893063081901263056228912726410982486287695154299774355240955732556082775940656029709254665343768316006228408762282165015883081000630520124244536011648071761474200004171531981512306167365765180171235972238737072465301298485710541320398681196469162293110136560507238848425841103704728683982361750940531571044236846429290575308893778851374212509720403924706711047927709103739393178147010227566582509436280828058650156358798427301853083571579186087127904892458488319681934341386852704036682695178858549639192539020053854279109663656603089072152792847872930854174981624424781441544897319789323557927513738859301528693957031148330611143418931843510042493744440966507804986112810793412728903570971850364610071965313192198852669366332373748851118116631713478998895619820774082065876389360471902307992684483030506001196751659072613061465731205809279081342263036378546404745228472377220063822911533844684690894877274111792245450047713232033695621116918285869669680956871686427547067528927319369653771032683904956839974115113974299786991694156756745637403439986709127875483472734491840881832930835814918840612837122836354408581981173032001118582826772658302618324997185778130981822480711507758591099831647386710050449068082855394531540060136921136095637815987507463773181354980669411999460999539372817026110865671491026513130987145071739409307454332055371244298990837269869303109473486599545327703486234523988348690159138966571235982507387283841703960977632952388137275101438603769812781806009989019093099625191227619133488776221560503918364661468284823037586777483683175255015222752722930342691312615730489660373641371749013915906791766447469535911504652133961178212885678853774600298182938730857847593736084072967905202775469429254614967782626802090502212299138814977807825117069449885303479411129524111756495521391661751614938971761005971060878230208140405297014044045430037770636970985066222753558520955485657911891794985720222328512391740045128467401224480312943479401711881003258002464859065674866847788537996925139856074457407691091280993083483334356190045701828394180554959810116170428565870189318728243998164192393708874249829840157063545126887269889396440562700516100556465899034706745723779883386123088419819244925217732817165318742415378536321370082460024536374782292339080066434965407255994597220453194851543421162040638401626936392667561167599971255149614069302285314767192877707871754834355992665143759098473994866754451725028980512234519636413584599619878777897138816344989444330828149945302930795941119352890613453218364436891790330688774244763109317406494137195870215850380191475130144210243451995792682932693384993007885954143600865722413642798870696437018960591777505584753775842842905305125740193458369584480426743599715812742039587308597146576538785378460981463014146142925249815953908036793574167505873065342681650428614322197564938338333800818137591879855151119230521497523368611229800864058991813496184542335319587350670920006926878933295855658958178939171820190119230984247497119745982213175677810176866727066333396969661286513677222232100858415144814437818076935186452775691597044836448395920846510522788250543926526836345257354116978312129614265796695596108072607511611905583489281095662622995560858736441906439325388095735126403314589542806368378661640233915243725038087139357860500550287800887062999335298656968848679092322553179792781457506750711764118475877698532556508066836575944870545390620617429473482415256200496868683635619232255792354548056535343118568906777645051848563706347388361261979759508012876811735281024874983514484842874363343266404115488907332653477308234986583653043742410953664964330289882515200048679200662811679601050027882894241990439284740795762714423083606491906335720068555740091840554734198044857403892912655658940351686726173789500280580382396734758716892420313129158487275204978964101230617481604521152184573737493224327903496684941563666785044436151783044995484039265080143470719638795957299560803047207914789664933603975876285924650105000010054032467933640876422321478057605501968453860497875408269722542427382239503465823405329476831511467793641816845863561473751748092530853752063628622083810860262443925761809547395171551844626393621556329581090023704614569540386824627114617126657119143827054050473979960482769061245307542135372122171941024684246638640953865911126846876462019322434736270025212273448331434720103559639029890545124396390363851902163022718217516890071280025229347190235500727823409630071494804327585915867155429058389162899770317166467400194043165990331986240156986159914079590049705510682133450978483467263441422145438381659787901417522340132720792707115072408324488227070049054317798393896876213186328605285357428451597118964657152978793909597064356165129142167024053840073209615951396795950599927912584596685776612757347262901075694896794109355657435208371049653224373929647461291524944531795937648792296281122595804258722369400044727713126375288403402447142029582223385498980257446938406103592084489469466475086318026734848564483694446535720063452539322708187988131145601926242612414223181212162967338076935683119475892063375350216061937251240878142534806346548598757890795133507480814448516299345400999560246222423502209835199949891484741023306870668815375006277931355758117907447668245133773714840531334823801283481112818343054476958433728344921234313747365359471328917703191283160904234073531494138855251908280007076373866675831941267594251500034958617914678671798084854640935982733475156061314633196453866190154000988444954162860373750026062659815632415688348845312855210232353144470647386554822429869801367961076266686242741918339007007194530841174998391741543525784457240451912023206999412095023503125832941205816646225719640345191382613013660413087557174554768946736310467397339285756643985527987569820804121750480903138194408067039799374053854193997716619240259380845553793578433924962450246093461946870586285607564794772703229161512216589234097069855254155661525528578252057148898167593364492979149338197447089960365210301509187961331845761258411710496316948230674035119031890745065440171555080328526646791191715153719869361164257686096148056791536893740171915496456242915139157493113830458547615409351357976919449334406892465150270860944294481955838492340180221548155792454788185860586849039692710648432509327444686636208353517473261381309145600470692800767062890367786935730151544995981170824140516626815762695447988035238976033377315583109101259518325322776453760210720556904761236437597711475410412638075721690130936634368274793594937070416445004575883260354859811625703236992203272340994994750134700524240894498845605929808953729907632010837739277821255790990126102913366926652734579153227056818953833543641086742997576071621980149848681285390877346281686827161016419893518087282544864034306454561148146085361561728058474731293092399812251814414210752976965044974513926630883736710668282516148007550687579512187368063687439934148079437937141835449567418864535588390201177481202723764501208950178672674505660641034256335499129325664782680745251785128102564432365205911912619473224124309188622369748683614100978746805889393784908977839146465539198524389688183032932803745653115118749424272609353487903253386587373456545669987702020755979727653667570693415080250830461457611451195837216975233520942488140263140513928795940309638956965567148983782686319604414281600460251361053022696985628434055933282303717646621790936052836767747765870121649217079790017430101713542428005622945586287845824594598334453079321861883564770831338410202482153702988519675841948605987333005140938056544191968721822196400197474414020208282131210831239216127765445096394762998549088393187971236573139694163956449550943444968647485480449223699618105569892165407001823067122084505760571142159131424993557682612799152726459090198843902393391965364079357081795141521984494432434568541450082195786764817283106297604801513511117288749590468628005421521603600426404842733699709917104806762437286035883196295062056274815138589805833728679108881690222049363444503258360409228967504696264595900093103400060023486704827050969176515401106930584573899680400714142043330479688142548045363254299224693061514114719792525469109566765369766841442472445966184343288682359798517337725993819746252292640078809765068207353113799272654299801691291506568314330050161275512614676462180329401605587894400241102768372987326762682731022415854070081379183399203223593256058520958669268489447762387342454387118601594453089061584749063076492607785387523578337864424217595105125481508778157506221240687984894043399194717957496095110652611498655674112167575689215458604006093586694344196965344994125011689927489603568764959629495937059230541533843364101448330268346591324814531000904923168858982538431304596371094171955770950668980453911994953693618537452645715416427825415109920823931845252795087295296762450741201654381651199066796342381907751235842720892611378550661649059474629302820021426810178556927055652774462319516346165690998105386303701443903620944575944410822066098790287130489226066048721552498239309081161287080009077519149363099110364112138466132300454739653471971352611161892262194458775467801758560993964708928162427915300503433994633322093226024739059084404733967215141245706398347429570000698463679540044773375285528094941660864284341508829912873100936811119605700660335941339682761537185996336971509963747123425611859060052601953874467222918309524568629261307934267400507691179196416269822601119927909711728142818140240681114188286120743480614024519395162263445133604224905129016287540622971043880668604023449334294945248670157660082136323347106123406422646657837747135478981616744063775190532007691705358277793231672333542380965481837221814924787890338571394961180590345432211530649431399605762106672703510120700810272770335667196612516657101597373509110300888667421023451449845741197035237101326602521682965121399543107468287775672760725847638162961275739095816002683279031254820684661446954580824081901484220698025368926977078228608529131230815939330585478298699846402160654342948103566451205911627618128006590392232489585183635928458462500802532561294766173356001551244039697603924317679361842315885023805934190007099286486090031006082205476120158494865771405141264135539273868816916089384308916912848128918191299065977653774461197314936054834826462661362782193324514346151719482283577550055562944831450330221948047490329072844519656271407850823258962274488483766701288437521137353831777860232112029353934197952428683551728131895732730641048918237083976106822416761621033544490550963949668848034897924823614311597281334264624294076812594263081536332595223011386948174128992306698642422826063800857916907457830469072921657006622439559228092632381797361357504261785985705200350839429585441793080017567564720939766810716909042440485331967190778372052545025872978268851935273856490022251529405379055345207294028203210374910238302684531750329345308318549916485171383368652551039587447491648720021058415473409417575530011765857049279278891618449345518182369385579485486275443018412506074517966046754116036138165161434522919270169382426530826747379749819089154197805822105560339979219841182111312361290143690591183898551238190200191273183656985809313643065674731861800184151275263422755165819360031414837891179148982507804742619841722501669252082569836324925652160879904121243861041322422517040904634796440413067145167864763311546724307615250257908573171634885418002490097216366362926266647472379550960516679020717893196663663630992937285813025731778656282544035217113203957098138432935351758648075450267614414740569180814218866614381196881188139778950547717239775314352461728537936075652916567620618464740125036027322520870817693249050820965372095847575833876579128304046425968128339088077698870295797005050610284953138559154166136706324154619962022944601626627165666840009682440425983586449830954422702562999710925136276959135110849272544202854820516383423888244445496371475721582158830024936525485332561432608910042739592971600175999446024840859018907895671959017881193312621745458034543338670302712008907586572202738457946638709935939010644044720223211095207159921157924738642802109950403172207447971832559679676529356030233345155438865372721355722155789396311189801367338084821947843013534378426195021304321966517620148918561797829981858238806507652992311285609989194828895986136078113996963143868346902902687228158479190543143696852443027946589180042418578987448257325194118908127289491733514801544147893540130653130103088474766242000323908047358530828081095203352666736152234815093293588312635431119103697858323803685790137319188412163824903905497990171451813461226492416040708906450351540940142584721775702629078738374758600817941175609248538905338294489257664603301326614868982211112473630793689434366454264232614447311090233080077763505786254564811513863345308249453519311608834563746024819499077122594811943832727059770470605260542500058595811925346190302618540005871011042627825587458768082531642234723198050108741661827150974311872139684685011611190218862127890769684742315845877100166182688011105588361043635727116418567171339017481689075577910479876878653510412662125241543587474701629220780549788686046958047269964005716968477897993965140218610157769428976014028407956548011056379587530589062470980548633657040904220777147380661549966603559097738624903840018320465605760526732940171438749661011371994195316754207307609236279061599369204110753226587863558455059428028610776054183707571659495683460405682853961226786046372583947043868747659142305086064768949116791302975221525737089565794020754797705385133470283815070583849156720235658259903907570428336089055185784266286066328769247637610970000325709994231287639269403532988956410279215355370728032013058762957085662200722229387092311245623724011284088443624313871655582069966212877272158780929557642187555919749834640993033135892521173087440323896625047223764149211952822059844472232857891916231887010616038791030616123190716508750380876968117746613692534945087504214915507376228264623730495656484713716723208857262739786889728905278715617565656130097321254992230709174936531434346129702565884463507602621821996073805134906467353334835874737351986499263377814669246225370623574579688683430256955222871951803303461290698962140841012592079557324355499650720763779357664925718367125892877696033260563969214496969619166918118867409436988039532568645774521862353898763426858969462392295583461118063318047253297807103824378495763659447837266720637688801177908745342456471179169994812018428931438116921354260082517024123509965532062335901171195129075419035849114992932077049957000655386956034828244144524572006687779120996288216792024428673244309236024623360154704511920595047884135463258456408917365571437103504735621858356423014766187942120301491302363587158903830463687206669947931951828806317253581411042262953401058289447837886040364385569917743971710923100834028636369260463110017702666992785459312070968389392483288436021848885512535963013169900802857562227099301846963091010210457899086567175465759849349373574435035860876084593317831362037403598057093726685711920512877488038505703182421361928534962703857863019560207280277041283403033602325119585693468863854350957021654478120086308804028989587270938007548982126579691809404869233646403629034421420644025427169289927218476758671426039775690668885332778737338557750907835820579898162393824754219093001459764774899077987432146944156638544282144750284374566037647505741946941350283357841107327136662436391069488497902751198571641885241296752286373641532117185492096991914451761911897325858900449141760935089299759095366021549451314465633910813268200204508821908359996852843527026183705049550360245482968473569963686545216401277597877074054981271914552304770008041035448755493158885203370463559122516577237994103829368349844935644780897008939374836729903463118378123491406049125070380340561961073261585250426609333016840091471366206000508449895123896482969724848431861439223547527710903344977702874367685209747372147690178472623533095049083173379413388025611803468776410011936740123406089923278058642170640884797442899831784233172860615949479749195638640547866197101463893560874739624745963274768318036406931267566553833397301699227736719689418821245771230898718689943600809642551960180620603913950721187547483769729943119191102860169952929252558522171170174826278589876686967051698348353775395780566158254771482058139532670806719513297853372836856274013105192070492288424790442065704504030932454273638004920464445555920335658302004444135598983876057124338371746344766355500264308839374136211114696491255952602222275918132435733917219106603892083481886397319849302925414070824878553361954163378164318472981850543150039232017297651342053189636392704292415940256709408967814458334837910016422119040093205724113364772300767206786009172117880162909822086746380004837312508483064646010232103192384936681789539965702108687355765510112546256754685264195276265521357534266646945947163139690313784561328464245905120608338433821189597643754420458939387024908211462852614110453387134144563112152989856116573531359432186109954087034488845179631326573520086605191121836920661514571828002542419563898033609712371585098808118355986898290959204516192306304286882681654103919941962807027970026347380521751799311319226064230311759095311665045053948348456326276401075498305332021966610345951148918194988713116630970726286915075964486309504276336939550089837525665589255943397639816694006960055593028219270898277412112466164591921020199671076553926452180601143991099588180082253859457779354276842804959951761063677215381299290418520220161981181736265247623839698899978394402155742062313029092536906398413539323486616958214094843471889443003458205012828057028602720101069406543664219701354956151211748103533052593508334633908833355945851442968555945953729610292684674003567499140656302549951414476109920324090336946735471125743844379150110031678988867371831865425368732886618796817787335972271971320558976288677298025976698247345065314517460206529666885587602458192358775292537071709302995088116081140543130340245387580660484517013185185933277293960955171382033339572672095207103902317948296572806127541370564929257824510120301552024021644533229900705971554153669647312660155216283810710634207724135253253655236822215882374574433704013848378792519848511345729925800263320464942190122288438621620062744268140414243479065931660528403946717949651687544174419611448254190778348107973010487004545215700415758825308714066381651274454373388943886479345727649415335081403612508083567130471820578732314498131957184537402890041206936578465862506406689996945672923602331718399691505051212775196160977872422461344396893454936088528949392223062357670105716924058098997624101172196006392875216923354334321095537108378139713867471001242624519313327344289144544570361980159845977690091846525729489143154010208049347812782758800513392808525621956202505389374430023247328222745492829374708083023782397468882466767260458883576283362505875142429653744046457043435441066460405503435021518241129670999209838333145105750820834582705173871280950367568840136858916783836455578938996368587984596005843632970242518273023603869868987700708170095980820552388301997628375674405108680351396596177392780353228762480426208967753157993202992683294704990805308164007977195740322653086081989610516484418372706749792896495920516962822481110280376249546123837564334856747186817106016760680489435291473348997591234288601321867838256398316921843889579823396568418255138386114195718822869743933589597970386000587592060036853861808714528085770388184991906432808512772547187491302936356231183963047732614488766957457163018670607902671175816631719540279642439000019627042218175941490836632273878828817893113475741303750075777105164166629794679434590314889250664182903270436006403948041276495774666711953792954934559000140456692586645612671483085138863141634235774686763854514398169110095607938315728031445249982324151477037659410295331172078874941991495496482208416841778983038738939132826640058346387765850558561547736969935521148186229148102133104107174194219014700490190333209451626579525063956817212247448932141294892757821859726217415439787400505382911284735635765653356546860302949022363073363619122128625918677360108656744229745167097636727548663275038005486171270085954772411507373323836507853594865171969543052471453699917409233284433217909920871306284879267088366260984457245226459112757341900088959110757632833528752932122477158081400456523318246320966716014180478778629895855408881205389658560580090862651153449136822310034149869589260481416082440147177849723671043592832724357504085414767944994369219264867802043228900163231543181171410907593101831837590865133180145481914256709900822692786409438671743060905161012568183745278007475052498307127006653779453299078033389512628019665394610276048208711218214980999061463960055847932153352391677274871316103705955410145751160001465871244422594787814652831064666066307676024213671296707836073307473160478601900230482298988055335616210590284087355942736987898307367622605740123785282760652892235295899217623454877444247597923940354704984622929864458527792140497438165748290672741506934125751505241913528683542192415208999225992140431676256950681739464830599986220505440245054292860491791518649260410120310535104951239490260224112185310216997035901041004186550660585938106993773567543807662108279143221843418477330134596046595988486561925712803355753573558623840061812819036444409301438118267304963184342841794157046473991657274492486864160507676285214347344395816056080813595751557168431967283251427453667427238317657171207185053429861775366698573316929163559435413412478224418274791332781455780821352514773060963525914891227777574641550307165045106661626773565146153827983176121786511657168427963778028040872612702556005118011455282689125645176024039664236253853252935597912130544279274327902020928951203609220135589732277526965217701062375920114640711393836836238421983053730044804792333650694546236919009614933765430237230897128134737148504785570946677180160377006295236932192970643048638481388401083862484894414986099904301573457996561347790958591191136691495497584528209445197460671646780129947660840398741127815242542968606910569044971772770327441415333191599390302720788153814979701338498604523776400721191032646642067647991568958415971483829388050180412058564991167046613516860062428340268021272822190911191875628486990192233043790752549663433852614341523306671792927688549484605628016768099517300336421848642371309269234446350031794947456868904181763135249210099294717656255167579548652091457962522501630368833042639188009806934833347070785652159828714925730393510435111698004967325086637089511833324990739595785204669939098097219778909871506683038091203248787195106049956147236974713241947589847947416952248692174974158206182863307888594726191504633593224427240031346617907466298504307009614736694416379806920541497709728617491121278496327265766453435793933920392907874430138240694760821307882880695107736519461083223130443260131147960238548865544321190089366968263326210674298170211891629647841012090930388074735226180675804952323459515912756058404718437526761711071059825891916690433512722245047959672445056599604773630929435647636255894233043002057559206887378040997251592533276694346393766151659361131434658150958244964611928565216147877165533867506625484254715207794475438823432448213043103364614804964262405318705168589365770955241025948732489047446974428380038892062021409656430597534979819843894678367077466047829194174369549038359488829603397777040277830115176411635615185730445062103846143086830808292120264414517532606572043243462971388608208190543393637985034201493997853774843401869299652347095414023149256701794449997159882261301771779598778754906022578116556848182183657805420416831614356730722099198867514809861800244758951077435825483365601127419903311034205623019857084285211828133393412949379260613196530753269572840311774943344700718934731355108930406610288704022684334330159484872227013946028863333424574328333234350249122623880254431976796583766966433820623299331085512878376833001069895841883374282323977024971937348635913596367655046339894599611925171295379782952761392570860538829155624632406752050397774449957680615927318497163283660318586064184428875677737964424672022771207128800715939127513008818527243375247810993107184839145067583742909899422959082379946359698333167945555703268105995496739922186859795402357810220095448353607279248517338212656105856900459987318536177630834063887682187988772137546936226821488943596038779510673705554061590278978373835945485152711587935415593037470166847657910909465022999202436678157126978030222258032670557210478398262396041600793203400298097053642631285664735152204752613609444742306162541046846268589037743502144307005123614380138687927020179032070151576149871036136487519611497779952180285586364528170791430174196669677153895485064365446257644347365070854109522985866305196821888634431391790046207157220612615376277012317312209740176951104040686567120726177195491697116709179677954404732166352586307779096660978983776576757785455694558605988858988021592440042357141219419368378048777106918852327564218260205013020509077219243552860573277566062026071729794056598804531859452148551400674481657231679809754792560104844173635427142072298504812922460636199484934865622287822096694717256638559722961464641978721639226473380939421748948974936034735276962672116694562914629324864334329979770008781993128718626788502819308409920594334418237649346254390885449215040698938826699552014555114870627873210091251180450900392717238412259424238612007996196535996962638007867574827596690253818413687208630010186805844603430351116486764149644666471142372245356127241556897693848420546384340183057472646596463441861717219197356779100834563164035122358639629869704764825500819546556848516505868196499765664571954183887854574008760829905533850663521281775373588590322315991921347687874725650363437038662263223468992935488995144854896539640936741524923213696158373397010205882799042020238617852577365874108537004301443888642132326694826502915851303554530227503542380476326357263023952369249045383259006840652422503190601697831001698388892672794553894708880620033627047394953821679648243589936647240972592619047312165761274514608389078532494726598196401748742853971371459800829067849277374185367634590354185301372602737875223219175511566635299546925388962619093680221651547542070023465475597853923886779836745248300966113267032633528582212161884133233101896853763611684776754863623790037866073647262527327125369561862086067049111573081137032871227532609448671270591057570735962525106177947345792242036009914454439966416390616464072557547136658309735247689654998403410254339374390252209284348953559568125589003785736398163113265976537224531711855987966301955708740703235962949125373576878530632433020050417386484745362733269454951926829365493322996131020507855134302206611329649139913902588991092513041239018600912916958371248075672307753043853827709209711196653434917711324478146689821763022363575425289159907078567726977307123801106028112980745264437792822853821108578206855748874514683205059962659158955546732023932141855439594254711527378288007268308394825478526409435864576401314299130877945499267568268835209107578457354975221339154267831162719932361182559298583779192650474550390904499357280399765408077773336596772303031502088553906714789104680082604894642692324421416490608112556211512401120380123703869059073858495543938615422716653399103836216655153324508143472410974994170004470103658802715318935465198586712189946229458010486120493663533500849006021381048943589093151529654179540268457083378179243841010974643810227172010797753486196384164213635120099593026862335432348112396756640096165753517418941063759412772012802208394150745546203028107809878531668919628620546116253948917549494159427979335010546606222710310173836883052148209386231889731777038196798666736268027010038409133281936544770041252521695482019579623765466512116289643041888331062254384099667973741875620331808727394900252949976180217793389479711305285037269529870678126689699717311317382299596972593974898521334765305268862795241216623402577601190537544321084275510356307323712029760137423787152611201770075754860936399647853624258344328676280313337385670421551120281161033846896933512394523409212445386912499490589259893985187862781678614409392169282519137967548189774113049022925167235270687280538934353526503983756589986496977159068596645092204026814238458725845679462612547025912089329757635627444999804862916333929021857941676205835087001476549636740407376220931929279163602764021583074370406038708276037385363686002664599925141690023090721823399504943793234228712909501058010688489069196688962083633738342880971266769973442864564334177466347783151129687700898143635612527530436926289365446885823224146585284664804776567182160349617226451372384861740015831906525675897900459767943287486682402213481758497824604335546396576753179708019902166001661961621840831121826890481817037475694060410926285940537449935580808684931077788426275903465314754845316451386070928957080598845475773338592472150660521016874075617180129264734677824743398928553007068057418372740956886316658731527540369784206060150334415353182863133311586032567158109229242406408958092491063597835065106281510932894492825804763731818726069222121144155042391486489824205553039491731448338779566718391425885655503419842129318188142788544661139509852609452479554648415835216034233592714540541829443811795147682569228864280532583201034036665930449879588702616573520869730919610880368547394194237911018572023787956933555879163761576032120499954415254234314194871559964248571826919653290889149568581745995578705764198726085048114960674172142638606754172094293421522262119688763964327397285358104043940057691375981287108560735898057924890728325988323286057680216686838036728451460229085085149716660996628866540178412885454343684571563475103146292815547703782877626668376153548309740370255764861367222331184327055657432294610013178474408552034154717787012374604197148104360389028071238177899434758447317221075276259368482668452663158312924320931473247183678604492150255651467820178694218488913014495793966786290867330406138899358054641356217586074693219863503982956335142894366258578668834336617747551288554020937906130266715014124932965816179307756332145862030198339365778610267355676927126078326264592893585266331998754603836630506672821131622916921177028489375206432338219963150728853047878466550903290850921586025910279225902688723645186255722466858987602019470313782380114119410528465884870251078868258772636722267572929995509666660557370452769361731212489108869948916602355599882304130056568719104643716484349542519019551836158220596503823790416629917308316563893508373520847476147724264050829671556210816009503355551546495286108328677444270868367254641665702644517946256102177728667035576202929859863967457365596575631667113963331360220804706333370084626225810059829260538190551275333540173700210316317259271075660192357879230787820384166740250396489984795753281243846385145424950927443158490932200183609681048585744916404614310274681085569678683424763028217773176501192259343942890894271902236486141340052727317542473759466279165084740680752566313486260654918209331846965756552536224383553491887702519363415809299897128960028766301742551583300348068981068895297721126825153830074580948388225965394963787308123826143287047509423446271775503380212720398773219232009968602593658323355762854188183304246545128463509172521335708915340113469271713727671024545056749888241997701478368527297285420952044472127662370700635646993772048499621353741707070525973904915348470785407417309047988203181742155612913219666630399229332361119813771309135601410220106519072525336733694404660085060676494028068458562244004459360219704352624360253988275467566331695989430768273633924497240866504542981001416841682802728763366019789791352803517972339559068148704936385828056090025873833440159559921919508352157410200398335897394659327832779889801620613894805100908174336151469274609986005277742743546677409871074418340998264928553535324184895318979355178981690853526179705805051666928064395510675542992953294341079278018254817332092725186003565570332195154660274991792417104203190117385383547170640910410239113855170978497445045315650891707304008865272211360975306347866763340694344456592262202744709731196050846228557383009151538538780517257339216592175996699992989575459367404084827282373993717358463750102144097766375164915094552301557923843557055162670175199404318991257431423230522197642645590379098418825339135265850431028386384072287347051916890015269256648689059079024564149703180394178069248098686319049873304520868736033112952141513724702310558894711502205016140490512691319420395340849219244432627980691699731757579770234116668453876567989926129688704758552458105655095894700240568720962766239175855643908892703808556593384573346078820503294735006011868388549909583154409566876840335991567199071413555685427390023503975649209832358901822188082072750539860982276666457359773732579369313649259333189911699020001145552779389769321898571798362581280075959688147278798289797640980990478336925434761683957230633366481824243221383819862095197281092748688962267166398723804535109506857267386408902202419133948649335417975370149978171068227813968194416601108657090358867880009587307979354332068106199068137129297943206914862984291663935638340510102062417538336731937352632412419727072297680758335622358637038353697239553828160305762431178345770981519717294628775940736812767920507120986458950910408320632888257207835295445541049697773110584792954559548353345018926566650242439936201473063517648246140185247036912326144060954053791333520576865004267589736183347094344577677680318534619699687387999170887879491094192558099585364186429930312589256861965171093997473439584659257598343498368039134038564114136064901738778794937930448974364175282608601393207785590068260539973927097136859170932629440466020448887729563190943797583194602540356817786013437000492809927417142910593882848752946044607467219808354462804099394214294546645875665479300728701655765051481034016402815309937124190239205340792545469123683246953873810261240024323775247944265883829053900135980572461499188257238172932685275611288383212161124823792403689792481797931740725036509868473180179426146116380260479694050827805894379391246576859597306733269900508431633979760378814723471615883009239255107048358150610798152142883544575518193733831209697619775271690876499079816248879366263024666423203968677305317364416854260730629885396019235581919743358489476644599231585650393392171082528934229278347497793731742233052826597041840710693275057764313670258494919306822281577868217063832839598530132422480872012034732857643801454112928660236375954063494779763307354253404789990937898295059613854366372523493562615103615582121540509037331587343248460519973810033448560397178092199319202663045265725050173642373274493669017078464794897367272703555749798124657242002535057275841300570545061062446300715447668442250336321662749331107568161069648532126302952165715692082504725427858507377263840090797078715190821588796647906355725493699096525128231102686282163554620099647782979629878286767507115806401147467681725441918384516473090461852426498403603307136029157846464294661712204577769482520437271144676259622040610565837328926415698271165910684764983110709144277097159448186163663107579483194699442138834152553533555157308369758778524427618638690117877665003082356404279157288741603465930212614588166543099172110265522584753936216625126794902995880112954711043298831944397701567607715012718521295540446377511464934470491784875303955781512081299173525807215160872456268331351280966825422398022282138921130982199594116041397601861648702578919518056424432976370303445095575523583281940014832387974878668700936516224811467276010892901682983165722225094582505901296605550938968434968402657817824691497462489123872253179295622211556784927543340523971843092592852183183586682604651139767050251943695141024506960687158128979209730161059791147601453828248796368239576096230146835732996768021135809354736766817076562395911559703485962371334125320895686782514366405168453820080823516873687459264529801324023406795350205616441300889578485482579522543192316961060869881697711643442569262232435653871842689075250218537483578917351086135310326745100394684039111039333991624415523541577553363075934794318226235852171006925701521377978153311681020318463151456279450764987335594421255098415944152943304149954112650521657933324015335750214836768003815123662938123984575968406729728966334183395215416359615714043768638173985376022983722196964369782724232106483842562946326923056847839677107740310696563172059663926970184195002248418130860810479853942856746178672949073227496931564521196623263358730143881953798633140908844389387619276123286008644805885421534004997749618891434030635030189702523589508842141480696636046972348699366070217369185484512743624896526832746017843015816434439202305147006433306451296324158200085512967448529448472155609143063184433163371502472125375596301592130737050345977668476358667119114504439313024446189759999076818606708463564038066190732940600810085371825389095019069083751078345447532921763147200927688055365123853525139830432530398870983705062743778078500323503801820648372195412642539944991402854239402372986738693686308018008899515561605994084016385874075893144121633678406146218413010865293803127925526981667694765964543547646740521977789316016284288621056217368120258653736617632091343829835490136934985809862209258451247520326566337441171516891690796664186428969093193134605639208715701643715587847975634121485105982486593025836868697189493634290760584021557641197176586858418042979635245363811096270315778481067876594901332483908858364875324570186846858973590722177997363155857825675971159190256908726571251579291614219393563553989927317268816977822955350344220058155558822867231937368914491087852570791501003770582237217293548649301656799210382496550719358728365888233611924395272535523649121849611033902279647191055976908919253258447515449315053618475804126137401599471725135487578987178421474353632915725630258224599632284044424422238040092776878173558732136777156264730940527341812181899776087136768633080028005070332001495616996533833714920426270686608842409324221820974161592435407382465488031729271114164622156848706204124112274283676341452017456071393285914501369913391201604258251524686484102118755879943931511664808885419840479674305169073766673417133092669756867740908744422548971501526158605724857375035357734533848082049175109214147273609148445135071945094162988718047902920328470956907483617860599532122945317633683646614420164832519777132551271254478728759661468896901991717140586540976828692640549345536578394566213312065715552445213591696780138455545403552506260376425764856806903403396564528580288134076925669966940442039053333476124301144594233940270004849516516316058412557457246188955491910499330723939113250445557831258412006070941239277701291621981591634591799610090836081770958836668756952627623478889476143734839844252880021220820961023495759545047533814162320592100364983295670698141682934797504203183811993356695650758300858320526513113074533959516200865966125607430120414860174072516277614304705700190414717152376988645370779800837464001400011951248764300665220476732190318933027595214659787513137531279985170344562947031603856910491220498434155548027742334641867252613422037535914404721655587398103401465849436710493757682335126234439694834193247733027952625980164601796758875349560530969698683353658652905129192729019534656638280541640092788863441719293907296442937772936393711178951499095220176793971674491515291361428389230665507654637517081651061068966943597052754929937576151752571289192266113664163463635647496195599280275690610572021728125069017845476319533848346732385292243918218245742539564823183693446440668703001470959230697902326813235167386925858538419873186949666442495405524467801224202772382741363283931991105797474364208089411975195673572170044981334266766521878429090234203618827319301453074887481939810782254892427856582727224404316526805582119630951504925308201904328800213802485414221884503203714652812121283319086614261670091662520658860373217257739083414416718245564984751633744960362292686416897011542419727637463998828562497214587534886014785437657173663416381239639652221674048899938589344002376062464377501351905279075423523001066554447345993901508729012818868704903946721003781012675604128667433283966064870483117002926960504965888669241559373392127882768303451057504282807429575028416204198616952990909771302080410841316528537683550482346662626416622687622647786588592222787672088612965689392826969727153836887808865420581706980831113593315335521163737619282765696229368929304377189564661232504944853307430236504311750323662924129928967024687507837240164671097120880583773689298477795447821067835884322604318211871957959036669947665621749321130070011174276505414208919917793905808991774060699229544837582793403906597814505133835927596938854433041466102754057776771195428820816709629454286567116755746491878610402346185532637152157202322054249919820393681862402271959609156538299657311571621860100351522247026834955228767203291961051588175045210498930299746427985955678494079943325514391616854289702492696749310739847028954149749312925573316149604137479761166368051712478453381128134979445044214823192125096119040102980514552430510315039130833980993543024659594505098792380954971421254956894378219260863864596796734894849472056960342001191487863902611070614618323384155585822284292079561308332645482366941925675194414657866961021105691061284949688054493936291728978387341874869551536566478659517874492672228081457842803055287342006970661218332573123132420915687603622363347100231495607359282229707659258743589682381180981305927880148260275085661293535079079997448380376431548943297353640052776050256974543139650980555778803644555721254252422346895610758562355180380504272039027512952601306633573109127954004403754411693299976517726471451697250776687560865917697571388122377006008269239798685858479120118499964536673607477864618914903249990544256064570102452031987369868969275872450355163536141013247407115263027694654696598340364371187527008453433678456198690224967578151664479236273838656829535133880206638701277157984154560227252358212377531718592313862559694790716764512068653530764591765001990359026960804101714830397291680812263018032338289228204280616329847249232345516447367732603218762741487842884178347786439597563008549943648312053669471985663543013884708954777784191893980797687531448137823611213961295040541038152549299110993086548528022483364302739137596794162720527195669579143106618956593128010781264872075113066636902237524854544736232502274694203524419430758484029212763097018841502334547978097067161100736146680360023822986273071110068742146646275086029865818716766901663614258889042440952775052686855828178458627072694009638020853192340749294980419465373791611073825671171910591514135784449931875530939319018299583565281854367946882002960484364513900526494691882095623568608459324102619708946356160528860008413455036223142702016382414613255239201057746127506989345112228786911659217243342696513933726974148477577950660626778751588853056744906165606276818657591464344598724524055616639878742069539203197028351489075901517180356461907169872920280541875587608453953378563888344075426159037603254512415928118884317470782864820622078184562075861587505327605901947768022223285089158785793419888021338223449370449262240245897519932107709615283150004517373675786813354328825094330982071828638327821265976693213375636924091747390885944773151748923879705637126485380449125854941474013402411164838292816533155834798086662957238074943071206280636177162021217198760762031985147768916400460219995268765083126923112110102731822379889871186196422738260813565838358718317823168574272102805117503116913278664518623063673887178305382698703433468320548777957365105795310775082867626311258352745654048062605822337719116749104402063549915642846944747299827464191211224676923920255600075018046883208327750824247896211878738441849626656660477701957222321679986630517599554474487988144430989230536321811925312956657804669663275232053474393512697130246459258801583312426473120539362103296638904293127669317537890623489788988353305601666112721122463763374804696160696248105729315368279957813192433524453165541078627927710526931090518918904157271691860938424801389490119952620230203538815066790072314722832309119347539373193038875942752521853409006627718155679462569525858790300868197363391699938551551241331850002640593483478349255337495989004218745740523412052813119875929398935586807141142270318825054127067259973563576569942649306658248919112331889885852768078657244378617905214010564571562583914755359534263370970173995608030912134717441087120028833050985989241549566601246282101321447519110965881456882694954921634584653583163505328361088918409361609675169299250900885725248972892121578763183377025297492116950964068925551845321809380532487826815729705114957292696750186715334272630696106101440836343179967714844537749308420911492153681568854152029556765028063974573351394028338373868479211317177867373996667061443640625969904698482863440790954334457635052524418926765040879812400576402240389108348134734696073069850065478411097254749808343340647281908688256968488280922129063404517656427541311576792425057691424803572586821173592442316430588772915055767844668618136069050539833293163523171668891547798398453986732835173538886934125629768089616349761439802051340105099070427687874362637360814515484839191635072856717129141141907309880316401550843563665648009085203622365259876788445406074168027815151588398662996837452753394581832490231592467153462388673115449723706026705408057779944371636354828806708938150669004470062462695235625538826200977252886526224835288195881879521570924019034459159641885186159418685373374516394574398792216438981800056410805583145683869821370493542153765470524619974791220799659009693328887548986010877104629580932481590778854691350634309439531706244457680039364603082064951467949561578764152402919697428223328542325886438673589348241442575333476058874876425393191705077437522957740046806182490632052576549167529767396233251455249117655335286558084598488114884028295277546509817706894315397733905598957163549977370760128899005995366122342840491758986439345260070865999933091557653008137207953274166826784364410372850778874860025761839050945535263707329030772448358050796303447762318819593953080324505785938132362893646752136464131024615018770610659188447798651030364592037340390409771647883873329873028814151351857891362904960652482253487028273701266590292050716921941639066433244343904286621579425830710425719093195055701434926122501516296741360565489315695108315793224400637816633719168412741196126733954665539545577053479672358755155908113449036610840227214065267409216076233203978087605507010884358766708267201038665273291331855661250133567373055586288499197256638715534786785536337125838365970257802662031249331318407649292696457537526057430870367000534059261033136617428471540265307471184875993734927530722608281707522128257775909757705596088177413725621772022627063353418310680748201267947295335010065349295536321467192989098760456047356735304525318474465380021348795162228728687289816645865070946933685423545498804541289556433572252264483588057336547697092834429906707113675427626827186473328377316092101845386180986429671825683944652200005209200481362159473613149559657594368955967570586637302240316329601199918413476433747821354963671039288414903229687979776106826037011559543809311928144221776977410733056479644832016907478533463452366487739146740500176817753547120511209668551279735559126753749252355462634549000182998411757280284677868759261330291224784696044555596314237535501807775449091446251107123276071020029489232700443299865779240145948203085782922321164150198670010920141244688379054256068542076317037916687512287636732845728285737612301828715818130080574745219790965357901300279447516331877655436813140223876707800205379528593116460982023556830751667844171545466173188373938316494682467630343929784403606172466315946699942455656090838185874471302777631402968438053216917893863472019703585005398373907860446616519987940538869698349063429218604122828292779328327739740166677347248583139655018499400904240765281863869674606703482272104551561325684792677610371839287244748123626811455379652946307074628602391305359726308497714297702674144539803014123895484574064606424581712812007570501459296156989597656824146070028094765192543041289900472936898562709031135950379210982082949343442657559514070595003169862174035789767250632446650000842478916274450343612319667824456812608315680401181210672019152876874841016691598377004148531549712328749996889855637955297926760105552504575186757193791547624690167895045838116823496077124597186785023953576731995388040615651477859501898261971984936794153149902010034854755660592749212759524742727700455558126172412766979421279579483836854575545118260322803084095649162991136357156861457923190519053837826565692660914849362439245900808349563307986913806959428284821782793438217369145758144385265717366845875362028234339836270191826751216811632766812942262306299680935891242686034017650877061500584796238473379465400172559485618045689756178627991559577236784554214061367326447146535732103409686423261321345257403806446805917919868328771344917894675232391903808666551638388584937762147820802334537877279589236466541156134623914593316815874043000523188078117978055022074571608709584353973542543678602200818239505351266243587191354152647827660149795613342502294075050638115797619575910142328001910254668049984094006150515269981590621570448738384595121904378275814667149624138511215188753335729435667930777624677341898734736119187846171957297197995999676405333849407282527793848174126829678681739966807174875448871626980310154895812326065116414367350374651461657647729181753056475645321746616438480734424471654309414207680815972288164310782966720482901735544398148874793787324883139767054120651092416253112276644519271361447013642756005843564990327877536142701005690611211751288572145839905458017783627444130014367560520724915741840579653692615442128494889067920567960752370459052307496625192331694560253166440858649722998085702705802764109516324200622169532696114030989091779066295080866337318790071608638413622786512629901657441011631760236582522260723864878523282721389420485390977323953611068031585719218898426494360061589716831722267878946193359115255448888200307466767933177010152589285453347493316311220521640312092572581536974723347126897570029890853154843540743201863182686848352546593873603164607704063706098295660526206667856907942523978948571994984488499555907621172367699005558177523041715746520160993904537563332662608073352043733243865454565838890295069435298911193224839896914593640170441640204865719439931664538063688263688623688254120244512912052863920391931599634099576126933317954497260866945361354595438357283444628674237329123196778024703964285408986571771977282776878591534493399032533323141946771616570358501192901772439251472747957984663805823192343442512172667186081436729526485201235421592381607090899182194576025169146247279732559533726507893898260869426608035489667312522864225982033803612276232608272355449427703786584625242523900856976274100684593433274066005108129754198085512188392264111562067018134771795576587732752394010349598642152910697172740848286722563643996847893940006583952825408112121065325174857183895500985148608142627966475357930987246765608265527167521670016472209315285275729747763091502326403036169704136410956744015991357373121830496071029300007697540470993823501291096949653071326212727868322642990561211022226051149872068971567441277010734245083937816001016716037880653164171099487420834422740852922108025849227745919517774617550506946886412265746960250108670731770346987908575554559164097627050275417309125546497451340302002913428669659741374784052910227527345287937648425135185653262363768041708014059137952186151636136849706376810881751107369521945683216859460675958823168974210014728756645686741899712919389850705537091831060225368613409693539276549466153573206366095438520213428803174026466296024489918398509948761543740875916171141395336434306992864361205715797864447695552482474612725489131943895145525054404244053855597293201331847817843142393349624560520154579066592656391037875759433548436479081135868364065370066096779715302340806964055692661075943562331866424551502792793386941505432958408637652491631869941908369048458914132105977691376885008275702569817983778928458682896978423947602884383232702809750825671742402623365172563843360887048812069048595187403972528459091605007970746823221450237425430606319305754785240994217032515823724804259182074262376771074153642066014828413047708041512348338483138284942641752243375549809787029258335570693317245823146813960234947816184874194365024838426346112274419887294814380069844266246764207524140047395274085189014802620263888481535082270852690716939677670244017796840065311008040851232694416980305331378376294884770171404349323848590139607626112608365939252909770707734634418278075107094145895813929593963888821827636949666225058377352659903701418917982540974851943942016364010866945526910140196730407373986136767767352450259390240747658215539844819053254924170122556975235267792301345867064757412675627205182986306077001620353737314418771555931753149551146978791832776886699543128157618502767494032173157511377209148708670697046699286170528192776443176650415312099231807461195833924016427200618006031421551025514365305070082547199918637625242582200348652598948771111979733607997807817568569977355097064785113381303637501861342655488813827548638870958510646614381337775052495006024649622258845476978783983756600375612932370362892498107433429781932847377022597386572445463524431939606451591520129140797344669926897665030415874833890898564724146285249403758922784942454755800849837687755993268184951745921739523774628045344322293263669221832216452616184559931832714210397377542476510414057248932274028469848742504100299250356456484383972863259629437385056946344166780948327394194668971357721683331735528226399166373524222728738115364282083707787369100801743308115262604953657917027725453650710363123498064897719031208731041685689749654056026615757092423866167769676368802366036362832686409003540182345389394093714377237905135376896117410198477449290974772528786730719838949442461150090115797915341515803858335789784424872318680977090428589414401310564372842590517808983615195853627242217720746048343594841279456896668406366675246843378809074504900965779992644691728118043646243486694896743327126867711991243715392824037185131799806874109024511753606413892967985687448588715131566684676426341826670098655974049300118482962095850787079453503770889237606114596477261410371687425101724200551613073762147699611333780491292732509428753752449664396375912452368251648078854291542772370687964393602529133151646505672007073865104202363118695280138000489208744573215462722007383342940963294759933031217293390520091854582756794077663052139020612456583404577270509660331575323517323118658386023755738172118855322607271878018356704294759162326135589202368200259938977914211055191762177900230557511249126743188650184338224950119390688431634974226951331839942318863111482499760816007283866574587160811251804104129255384571810607776824671106857251369953502898127474180181083920123000331441236127148948841450397094880910842520359652896425843785260913876169270125965157653766899320815633248472357790836000685452804977493013102556752390578714946007493946187491013180433326823226185865032829320479619831226802351338055726681704063768933507105091862497015629650638137447832105861098685271067413977944011448432053669012961196159182655927485066678470156845659580170719028055922005928578919414296892174776611027933017270403870078297476282873079003168763352407718295537379487280665974608820344634757082894308380717727868304236241966550175578413998850232701251490549797805849575109032604034534486876359482039104909202700392500334465530857054815076199055819513969085195661462226649484819270308246817068147054177682825786268926417301514839971928823349570997660204795304319635114783849601116903139650572367186184230306832534322843807012583206965405072081701441494165667080439576448292231780139119015932848881346324408313989939734385576367879630257378068929305864922371570748516206944140128132156829112620854223102200111032367076668894134476486499300778235540298342516819012436359335028843051423781259115732758611338147259765164201251411332784952882326988754339598269155626822889257186900620301025625210920178305195206712442249203848065421122481755344689726015459252081923379478821987381766046001004572587339579968569248148321696610061415888699527560846425563300797442684582795115210836585355131119473474210500564881991373057293474672773012388099506597313814884371522175120243084580288954814049539996433785168050709249486987293538264165374858137935164957896730655878023229513083042637058654638503812398129347993387790674752011462549835472810988192806641540947105660598395704247126946900576192662044210528531225447364693683713779197815927238482632889899981119882078989138805636251240133743784816805223738373336312419709586859453388236892621505348071701923721380815683670135137089686611233698954766938889312712921552162503979686165034514940407475186831504628041155498345718965701743195395858934092158553535930609175984365764720452974853258668880143183062122957970156433303448166996344316655911257869845209803190155101106845146827932707752376976312436092581858779928620946528398484454294452082313011530115040228970589898001374082766023600059447951093934535875111172602108906350327232844788495223505144657334520968928236476137555625981500779365491748061947634726327301767586120670758188173012607039017302107920846946392356473371585322772769385773309914138655383674354239459451480933333513038091062165763275953077174703931066270455582242950780198012109328916289828157792417770534834118092176931941772191416068966308571901671913178672798494610557731680799097909029195040468616156003276323870134569975328575633436730089088819853966621177778255162654587701759018454310584442317724285705126531018532503968588674747556871362130460441696112440256603046194937400037237981567577023330601374573629611104502660885360815901398832675973365129752657309056615077156184009511956355597289886835354928109482236109613393661454667142828360911419098005962036108223796052457447631649495236685326436428775261845507461712257023441563516789335023229018540421033019627421161160826350763364400092276575796125472489737764680525111829402579727394167011804946458241166195426208782442629481789030558948605413372880139946729597532636970452179191723139987028249830494495227992570361012166903068731562743454073716553068320099275300870499067204056790140680936285318787595323178982798884919933750089854053387352240710802979845153831294171948645551365523580673045866672975546513691245328778635404897592805157272052713743610511569025597149633935307855597269493898773192742833146095417583195934357446744340863986175382079623899667617060524842842591935744034115735685350003770197088401260142615516291486495861851946751616554717290296063592970283911104086126654970100271536584453283957785174365161991107783087202355844811230124363702317757159580209397784450273225035763514312180685640980630193316708547505104875690345912353470601633160677163210754063818459378842323352052874850635641128958106885153718757036268300526722679495789603574285569402454348083051871232312469110518243016360514440673721656677739790252147664192404002112642461301712272339698680222132633532446545601281782389663116720247222522029682270687042337048084233245348148440831048757528534781241123445494063934787613758716279449768944917304621425561577322678311236683328598282980833187756430623805727910237941473087235695935204774683927613404448508017374015712277299543038937534568564320407674424206683040304385389359080516667693979529986829377094070144840917496140078530348664792770845402325727975326797202630146925283138490636946988325510592580985136819988044920827019930893155988586193273150756007492229096543489521549737369145783651686401071859107001406469413823451710718731400399636402890259134427852886457969696166427865729029997618690934113152347724230458811410649294573870054839704879762634151868589626906183022042861847110486338572151070235892884240724631004823420690474996931541767138338726079841387822955788242944811139596306262658348229308729498996562038874690073213723703790209672329064657628654605237873303261708224058853291386741942819775988782145454793983004190495431961752089388775639816737645296861160346614474986759092605572702846310372223048932414096974825116063284468020492060325518479430031819526831453451835793303095103329443209381338491443504969340575856768864977818276933154532352178382769683681214653582143500203756433138724684462092167202401867660044300613047707130952858471996056299164542006833317272837915488036010532238770410547982228552791360284601611196623933997678570819598843269328335706332931428698648383289243325545734223187633732350464216653286461509174658568897339683965889060309146261467563215565295878069557670734914224292931178207039134264130874701962125982508700358368106848311626068374307459016036727012871376729554766049453064985466846061492781248113509947688641624289903283598316565431417906389105284919695057440515257448792227255315534096212524574892570644134238701968822987998840294063300783385826397973011065086831030029007064767309753360656529704711577869297665998758665646137120100252293838755365960136018955920032881558183206570211628292447837202639265996317704090504755947839073877551854346145146925493131782050362201871881406704830040905930190175054078001204264538669222279550438072172113495555094446943807720395181920492405995541932205308003753774049515180363911519853642898511047811127373240364804610048990127803587832825430033595014599010952075021799683054104923590076205600519892205917293165038975246604998398281510683198171882139898976147141095565229574630794703850910170238859873906051281277444113504052362114580448372480098709130419869101194323025353303342084610001268847591460882398032669696759823240112552212959094801955486608108317269435242305479119638040746317518879567598504519793771995996775887798120829650658315791044311565905905210358848362463341516645447932575212231087023454712777471078833528626222739869050886477008237724205996808616844067573662496026855663304209162411206948851752981956256216911422297289409623491766114531126732566597814698582419482890730618091112192088068731258058064676260661654053104402293412321630790785827538215242797966122978579074602648365575892261648153782354563790170406938474238259813017682202421046107029445634974925055852669545595744296793449590505280477495239013815604158993949902244645789256699427567163220837450190834878257116351587482633338397748561368330959365996521182447606730752823049267518342445989298042061976531496789217005294585137088718494786555850080647659330019027985742474132356185158701334016656730664893227800765053746861892101436852066929286280506888392060213092264551621807833378753158932963955123493525345271984562512377546565306359538614905849317304511103136318582052396717525401522247985171424746092748604521374811804090323427097128218711824071891286191799919432496633471367764786736229575024096276741429023339572162833329716383056615237840639005651995512965736898461457809444951726919299746753385336042728998186906585532248050663928335734173150097290441743518717446617546067111631754013489675281687286505791901107120286205469649850203325940279929834564915456422285578330590403575754878966566799376642062983951158415948515425986351923813464366837907434893134339849257902210326693655318520711909587477479689098341233680776702009969847020227073010167484051675180831706878612720713282948683742784063749280958971601553036181592863115539909590015844569372910119311374427613320015230643589973640107248496555784179759205993099259122008004140683541122288987985573162765540637045939329216449064126374470664748106488411202572851953599926906779539996472822419955915486624661921207574700228143904827525300501953464603667625429378879386818651342893042931771756473662368708180929991499000481103346176010787875335859997746601317476794930572508626990511761649864350061437131603774890854305338402880308348434766638093201883935561905322510719834578903475375694896401898085420805341736905409299263902601185858778035143051953282725108262201310993522019731623574062390123062088090990107121907576766455045750092744102669040573562120158937442309930097428030354289535542666886358264952308302614731948946734517299111501163731664593647242948085981182011193305489977048393778649726111656992127978314500910819498308670873926663453959167319612323183909958888985691035223519431661009484453797254227663472992459074524110717504237165712629047395893795903701644862498746495865916140413104506377755176350840736275923444423306358624511654684476183662533213876690587609246062157470004372569697020532676870651878046502110553171727338899719396032804459368214960606571150207526404277469408506433206853669559349712835212263572472236965847726788197032955350158280255795561186193376916477667378781542995732581477862576454358396729183535644223425279434505357537483316593643749520344388966955994025821421731938290626735165506136149954171542817485296729850874540793716211374761969058276010735195259641166432916588433502895293909419762016737171124653257157033125493218417515478083455442662979445823394725693006734742492461989060642250340272495152278296490880167227761405405924896175905432982125788828220393513543184001217893537687535839361127973078263315684006124946921758611400071534774171573455858824034816647882743699268371809887587335606924746652096843650016817500320358725936428293439903862879781129972996119808484857830744193525850165008477558915115255495034183795281493787550146360159203691587627575630948805787015240549084427717190190968438551383157824668613304479817816879105005822481660359818504227651136717224489384252113156162135123628859756283692725559408379555032598609226207439847993202303782342515314645511024670096340943117706036596397645837799287866186821223149795987095876421028587684056125900562177718946025262156531177591719760414394474604229549789402473931319208088923507800026469819619766308995026315335052470662923713086376364176082032744916791545850760696362318081549478943050939115955478227455410975536854037164798500809469501249974300942357195365518590635278258484951064273570836473209365055064798898028252508217343015896988936117935291683484467035551393810280448091313016270897052544987840912510552442083945106248382537752885278966788269525432881837498263018742103553994914172983360619442373769259178881090376107069957050706844053450514102419768295941490943481530860904170165541653788859648958854329289506342222288166806892666703902867298286218334458689030934913405670802795908705705714639488261337929097336826512934207368708272799678236463042242505783369396131984429092736260408358661576868296166076246638570337358082007966123600509547447282976636407446248667822258566062592400938154647661217181880634517353341451155714934835265860610317048879953675176220584907290794832175344757209493814676954351492347660499909827357865462257526523894777531143749136649274140537195719559465440343030417077767084286954894836928175979197368089054197437713115005390493888577882376614320315606413748068259841989165149623435304308622812032494635712086973608658010981261853415636576526529913107446977232841521074054612058993321661052425061673712890194154680234926826082851014775310387187842506826084095894871458564331312544861721406300186373503133502463214667041400640672246849987531074931836014135195464111470010172715146437831410155101376086425852554413447467010564323880580573260616994846704079827311551052474724355149363126603686287800844853240109784906903981507912869886694537529810764402165072872989489629386055740101594427715160454788507012405040908091819872564369930006194600664063579965882059854812438285127322489853505080388749097526654538253074821220708458804239538722372032342572153744135750782228709890076859668840952593291644885759268861355376736753065012852618184260190518503764148275663818272954539296151914259715934375814568209089542516711485899137131005899157537671828681601694567304324407451527775082454488044161531134225559215584003980594988257001070694411051132218277986099497998917530732968657720925334052179456306634246700395277854807553366353400225827999162142707457301752108635048048235462203657514807837927037102035367956421070970751119600774197904998565890188257844905750093876891634564776771856221810486329102469210253501616451083624409273326859945528892478455830089451706362436134276888690625011290314466712089154242767550195972152541588032310293878009591865894312937251074196124462129312149398193595244583225228203815342946131383196990594085359397475545170215764296466971048484691464496719039890891474718315523607602065761338866953163036596140005539330346416199990437542551264573352711326573291235144985688827865256408786078318877192929707602903875463912048081727362129349765332275949292106645860596015244582399269711365959013055886393346174954902042427926864989443262229941788302571409520880431173805319160358279532453421725604318183435807662288089704863073431858811838683496822070298344437109728916208770739132649018688435306719249650736527658789665924502243929759541445713878079810713264132982889193167595667896173071930784983088128682892739419771951352767088850866138963197301954523100813418108870712569018348620860747299729153440698199936539095313291437363546350537488124957922355186608461372631783002316049262528259966035921876330597833075922488025093372910056275300058304956932040236031872642450212888755149544696535717441756790538076735627024506807200990278346909281382971466641393141897915767949668144766809301658217956697118144307786653301717780393831743150570651145013867371614636765405274853075809530138266935679141034435252801488060322668165616394859311959183193972545210950877252148685709595992449686719214302562040528691605328950770986112032755661721606382948516344530171466209220927963747500642590854712757236655565142598692195073568969321705996442832683304055837007872629148970178232321010342780733094514824273157015345557810287569055631444639907479601865977936080113996184287412700811243073322310442833658678646422195465516144840528521831780100340714912286646825110111084283626972701190014647211094537209003139201528617722833475220660638317583176487053756622778829584838537330698381328958129729583915909403627539802001852289899410247509627076823455857482243087217880822531403046302688300946637809970659844176979676688806090865912981231854055419178202061660317776095681299510722870162521470264967854530615205003802680767494011307506048340856971390857565664593894789348669573060838617784429774851615567136134471592266220609946886095986697194575455631905574802734447037158581517663512904598662668730592911464562944584838943966960943830122416035959820883196457323180133347834371509191744287215311243415498009727560491937956739458203804390897253112540895758441577737667435374509315566502726813235675688713271480346585503069708774968527779600704628461705994311114140144383571040229637381077007436132024670230538214557915275926665115622532581926040582361058221126492004950893784153003719098881991108224683271786435281804765703356517811894833942345166596305649524397889221311894493077009586354045402940744705705187878318481043174944540673461357855787326471230050647657633823153528397015771628517252065978477251994996497007245130224083006546831038742155970356772235300761170302689237012727849402904291722655333775483682135879186954919138576368399656094280470982977887662492046616820454432116312632621662440548377882452344576936821699105377794409779896420827566120123299067002485230988295564665658673337113895060297668484908561530198961339919012555068217469157324821308500889310897664989758266766442981659842974482196781252963977147870711016129743505334548972332794108309884023922335870369083321187867927113772956007473228559125002351787011208603875229834557267481893864220090351980174050680611175602881627579126453098035189720698038368796005212585568052439219791786995740405340041664521693531509191686355433401710209689094198686213795705207259251877060560040211330021903881800968825110153546684603423941529120605595284560348150788536297320537982280074886636081547512998495669389200296731531575207001767953828836965774719939155101790890447204253890171155997238005633234681662411048519759696553038597746192671857287659694765777655593842670630681833674055624101820945466472065975576651799145050125173075694302169529963910126593702708638052708951567414989080085348547385378148202641108073204289663254664634708824349837014639784988822669092818056183856429637396456796897508862268442799333866445638936915679221429657932912147992309823551375955255864839006237521263250283783948691038553525125525969572737454371241464747612078518938522448254741048515431878450239130282326579620824014011051263927108452655115667996915144632592738338850162035245984629764239304306523968795620966731275446942197058556865408749598608380559555656452132568358941542159043812911654092108408999743712995952403831808569918999927485952923429013645205950573486778234564042925898133918775782989097457523213237848730102694610789965417449335964307049050595208062730953966575643491220304943462515015292554520692616472053965228092063352721240172509514233054818726073745477658192442924888217163107888043745736974158009198314325293918644878176789243864533331230879983627318897402370939639294392226605711817924924702793718067164199981862250318452212133158853482922669672686815154363898561736673756472793885390487057021508898075647948143865924721975613181171502850586504359868913895008261513439550939802477053122315401674700063654474134622631303756942148106980752268018750878379683088295493550692838240947335776027782517570757788807972340224906885054236184190319083300071805924946166040665135553216647742504967218509480297252793506835672858768649640253440094115713722129861905239610086194538332265776754319195927524738544276522776977896839249168052093057030143061369309358767161274952791675997360039168333519749712511956720011429670501378315499715660760873572217774054833988939085561347001445738491486101509432271854216513458628408672312245359535887102070618681645011731057987731545343589785371744433538169451057466825049732540279712163279056561666704231609094291609951200978896923513003015362988889143673809568082352433194451683627612835261606639985103771779008875853414682025593583519911963114484908803651427434873867854959573386110772383984113368936299763309856867898110739711999737615833668416619668742463584039781884720146509729280647057537427340372502012968110326108062019436795349498403197118970164068567657583944077423573383559855532788464627743698329957309066387376425915484383495515214382072406665280974863609503297555407450356505746545547598619894561511665444643899024592113543824430504951782020520144498082057779462571430457499444927864374261703235486870170413269147178212449522383835641998618022363470209829879116823199200361182170291561730432040963789981213315275768741944484673537608748748174299412431578034082914750312452909101156063684845445556110437727105711664712715113291270639575460882156520735492941921935806815888341815891030381102042043533281292534846694632160764022998920744031257116625481714471111310911694397017128062656156613202605205382381611838658989062052804483973602787168784242202260226040372184487336766514281236896048362773427441344995848982193509890272487040275570746960504987622128638774378971554389127696355660563890808900078026343425778881136870776100638110029656278604695036022699831174854886942837270254621211281845916565877442753596463910742298795163628455841311102709652235105957665029218334488991983823995671714499447448848879320314986132656935077532993942376303027895556206646015751783714646811343253991689941069250523402034303830561470494924454088454179735269639854753334744319727272004092954344151095209488527125023789308805638698275865325555596344787723090775207640323145696201225126400411457030020955350679407017005541627593971699603845540975375537505574404380754357448970870180344845328497137525661285365116390642688851862248450286642737645488100840317531162809188999026371771744547579736027942904877570763417544226715349171363724888875885238025764784405480932300317677368174893964895689608764213182845445292078695989849367661848233935539852134644666640810797009187555863668301466521422212577676661273810739732742768412602018573608876791388909856525238949564821296258484373240279453376503391540566700586088522352451569624761599492141366670131771884759394354144797543039026026116434091575751035422521512116889016973682754094601109025832362803542176355097380660075938533919089036767776906248185141757094962249324762984372602095052296994997296493762202840994940517049693279587101777301263992046222283990506551941552043342166862553090531628059476138500349765892672552094555898593469212841845263948377432034241289810952501508600028109921808656434415997294414713463959889042810738391662000270034230893542421319550901200842386834771355526655309804486422937647608273690998379787866424534505780836408139650018954872570885668524793793881658468902569226915134647292348993611162709166504119330951588973728796050444643746459054124994834980262131007568251570240415886507604553183894175461023345760314008780158513927954078575181241815998083586753449307188550842225879616897229389274781202047405120449914775333835029604652705260248039935558223364394470928818097591499296857888239253721231575617251414737041109911629132668685714611674151969585281041359387674222006275206950023214996678017862949224434375875698639179995655620321238330738900248183728092895705093133092812416925686271797832922971629570431783434173365439783451318230817134968204780166974632273704333371754053005345468326881557610841001408148489018982440506508594446315961576838632272696588062653033756161717534157051952099159009810240275872789921661508491810575981871036830497553850566260410887204540630509190174679676462819450855294491442990635236024376108572674446413878128559416078381485978811374063014857988424660876136263562592243936477621661039367231988838889900645832482032122436182214673322782868207613802675224865183045106964402181379002013204136391249051359558013349576053681852702209863776569139023684241297826283016713713564203583882672726816842663867183694425508069295481150869101616523985784571969930481333393326382066271641941491386211082607192878372252890668092134965726516279362091571189680976676234877355551258285851786329091897007603332244889432573737955777618494692723862038205860406825465737885504107658168889312682621467033399671874103975137882371903791546581345142477964104560312588219796454003269711262673144887216846578727761949543639428017380262680538450704261651212804896117821292786409704672226882451227429100918783673007728746195421426631230365058212241123763995249650118785435715764685500661036252160526442410093216242696703360672471263997567109881828896216787680745291394034339922096866694212186020813135591831254526903733095026184186617993071464433093511750531235245197701777456452861788475453009442393995771028236216277024026119806498567534016816971358895505237752672369383011179279895090900099140995513682900562297708461465270873573219761441674505084048010032943711034182111384344957882708421899524015158914961816105507006201419726412521155825998825156938491575197239121167736654659122976396469548241670926927652741926624285944733818200383543410304482648083505534465397932894924162652568038466935906397763398090233044579362056486589383321224080169806467844038221162054232426328348149771923080615195549145171178110142122088387943154956519194270735226736888984839980892085570790950318234341379052532304476356870755843421571391267172346215096779686398871593971908886307831504628773167100712821284947949179398703560578366602643174180480440866031189803211398183647358874329284120550975667734236143917101525854383913442255590333804100990517645834211330294217299930599022316522543678649475337633858144876123351211769813614103028084963484888479619377830043754999666626181563391690161462389234343099115632370139782241390851709699072810120335303837175492241550537000866781138809694053604515730428185268679746223652935144432926335915155610668345885118372410195366090628293480215559976125278714389813154240436917555284539445719718716598825235379549234341682327788238238695056205359821893351394796976270333550029348266762577618682718772382706415303962082582245935914807640041095943005617171077160294100134243613711356302517798264273232089559673763048967628562560919199084453318328355047819595794345689088758005789696098233464929201364982629342027249989882510035947335862967720785311648305226171468103363066662964157849970936112700237496261547113645534435920037340983608447427660543119647700897531285328060817956523221086796737738343936570251854563451948355642426782728345582952076557323406399938420947423323774792787017229544255136767981180931750007149090369893395700231782087852298575417168352471247658785423744739227373269397618635624956421493329656259395129488010045818824919404634108213110292902542084240862527005356995798260603034459033452814595911990886534695981861584112372618267046625110152719900560001997442798089493809311232036269547331477023941617670971667272291574954821810337544823337956720327719971391683293467036848937017844532249715466423296778803459955213696038985216474605964499343648268852983030181553320573089780048716160895887110908897958610375848525178784065896746024582462837754450460670951804566720946818550814954691255819962025816977873254162805383225436648491817018416883892364835566691750258452618321911398309863753270683535990094817883603088781546568848896867044360134159555590169850050784717398720396895019092052221782605853332994809577064127229050014956679409567542400936103380316333215971280370811689256249333756483347533509127348364137924932608412072998802986260586879822982200825201791568545626447194571175433441063431663462510658589773727819461838065787643525780007877015133258679689034187145041303357761550444374840823119844992151004988002241998541498583882349638779465306841251763397990767916610001607800645726475679161909278177927279576602496763694362859020366591849095634569518554936629604442143273415785266478614950104298550524871665557085982566857770281794690294868185771912896246305947111785769542185774733150604776231720386296716135577358123166025444519634526056910528614751647260644850977217516515743454733409438312942438019063209783276110201333283228909255526687336124041447503628639089665312875765368859353382570285910307281468948013136471791020445205009255135879342622664600904930681707844618620925410056925978700989886645316692663562458431242232856860184342930900903601531189778619526858248377077110095687029031926473874308491741490518802611137482354946712008255027471132600364333590883190781936643312063223696611289513452699222407771934435289456999320921972890701634025507678488759790344339811997583290853655850695356307740859566027826588538290898151981720460605840432634450787583517335619983910056320913236647876700257810248929652650063473269409128150336121637978003692999670363129612624466708788703100312243457665602618261440008171796528586539595340466142958657212317057337915603162093809426258301927224905598445823458544217252015785146955558812290565553969324827017748425961130378327606821384410665019139312994910447464123030956815009669742701614379098482196460337493374424835268652267156668264345351436866534921236530411018115363309215837974343915334361534779956211285360882838506870821897891887278287072634212516944398206005284350699228160965739473968235615405352468793874538785661686656060467809897304824550425847556430205093330358897969857791353377136930813733140939534970431463243262235583583488249118827821411033939230540294786480927344764441836254483645768541758695818245739738438305126177049870534481353720243959322173722683787405648028904573018343351679151984774378163183460944116733219554012629515387145076204460329982703260390006183008788715815225950378370718352443491701538199906394774463247885006480406941945024895772214412946672011221373334392908284870907291350686514413802431880938290568635957299401475765021134925271312841558878657668976348119110314170691278932925156773859944360950682977651281082921215158544691473285474975406406395751250199485893777939807614009412581076881886686702464588084067154579561165997412559570202954927678352309605478434869427517942384687279690949927959417320891125727970505544671496093497769746182586913029750490677957286553362316430775376876618472802510006544650860595916272965351501036450389591303330518463936797929705532793697910249524713713770970743420701861562829505002860741153528211544900337239001501809328885682057566914932241630217373267680926805368177782980135487747647945888476950806658140961076404105983858334463299377187955633370412306747015754809932802156296686789556065303942521338121274620383771016663873591097526545659341984659342405055592595250420919216571703764890886756048211643623540382443958144760951131028858063093692207489986521272391327002950390965727387033283011407033000948250739985873983497501274971002283913006322398123961846667612326657731281977779885738132299244739586388773605487249519011306853746199050449378651550575274433286599948649940977992250530772736142030257549898959693276590593930973040400835218927243078493914687390570957742808871782993771524227318866827326793175119241822596129479954996285807973966699781180775600993333346026933492804454761539028503209187549937541728736924862141258047718869861039913506203950642330119264614860399328635152300278393581464288268198737583141325651889573784661519835212869079209501699401501965357884702829054403412984250012053996858942538285826056955959378611697641764072332942896493351402564560017104316929584427167957365390871087606761086854860747841075068304816571729025056740764282717730538593041790529747932438158111513048635658993628988710664670426864146324738043555764761008221615695897223828224733946559526888387812952494745561199990834961071781688648263286255703195933236345341128151057324011829893662273783280993475439131019819363957656254394212185096188231950048000336540157203518748180877235957742648105895890285499288055920129879254549596185390731489082118199248324536623212608306655266705732492241232229892004950015241335809851619537932710820048384033145034203059177692921630360820953787686522603481896747519101360116211270139674412260648083221809767691069156783552322172501967376586518641259325460899041954223749841718521194730539928420456210531161190064866496640932182836210837869075912290163950410444215552447251937147191387094576220865841757658067010902631646381251805999451067624962564593888084874420929544411831414567828202104252130922289089332743423303089531536340378186807195145882965534432592686924433202758232890136363359439521634863647860276279723364824822308639529726866910150731035695002498317946545018309887255379957115730976605923904690306221766984345535155032746915247431618977240438286374747665317235762671197703299693371165317776856015967533258791829657412275724487212505568998592427445098120574828843531844103756312683660443511406101371927942369766015920211412153905328854223983272083118169969461999186136131113604443101775410204622582158288925652222557845709555503445408080182340521186378205528795520390948079307197770280777412191403643850648306503060975376719628825469812070580939341071247425214760629195222391598418769986983610077475512134215590398594976893028658881080558434471367632205513034130092285132397629781329475568215286424405182199945702904943127453057780265832119299699631924792936098125511148473312659186355525636123713861757590206170243126359711028802206389244739478469079800511518719243319848430224197988492529042905116503949262640185097919526244880834568936586993057093213782342708560286721973673534232609832660858961044846986716732509900063962586674570162063798147537695083990912238471972077016563801991815636938326154722003713075398002944116060512441056691446051060416478906299856920800067711085432269970299933136297641446454606660778472993312767384599661926256552687477689629985624073274555901882291205785191178067982595643333909228265367574249387537466161132844178689767918118855191161006392341111513917013573976783267756488204142008862237404748237424704717821103350266688531395153352115418351472342077484767634180795288042613520599169797864212970858187839343543333712657367001588736078178888479102273343475658642096760002430030167294788265092280642484269634569033964172789695121502037602506752033319127373126659184911177241434585885023439226744010259418365553187919849775735256963786339505128680142780308707778411927315000890000603502454555916870345136384398482703173046060687300721513019292337429976870945858868002794343065512451324561629766710793984257726557077721337520653176329097927043994967311472590295853328000275005912790749301366009141449552108859048482869325221531993285343080322742373114497092484931907668854603712877732276328586451779662960084891534974800788461302784811929595438658300412043763915948191927820117920515151368868582203054515193749614831835107622051533999436995450187469966873523531574228179353117240853320338259028738167015106857885593035151893677011736866868701478383270580511518900148090647023297525489863769005939423344138630228711062368362406928349746051362432373974435243617880861943203499511029571917139405873428173862103299029092340896402497896741055876129898982611454363564952400133622841426709669130259677453593859658547363092109335031846115148735359034773723815031713224037973747840682407255030600179564429080983589021752237241356535112264424721883417782390149626314389761703036258455588737441382384572400666245374779724758627974333056037360800342475239502202065127795572021053102569660845293751043161212396081163487335496497442059528913028021987659350942891084045950645089232303033858952160070444935390507851634815045867597233118433919308397065463051708250234526064561842384674837293048952745065968595673158541818310340248629670575747213788120935851292628687347676125733758015882769022284444710652071142365405955185710604619286576339559530278847827152677071317032965355786669581141251278774270124992087448638410378664075109042320741472334775797988333358030683116854520920709919920477064590273024042718329455038187472885185111062025344828182286231625937280012748110391836254288656200172616423785393662580714425036218566392482633679198354300666190646952200632763775657002105724421532587750820573774434002515668599395805026939117931109332915309433846459188521871623861352340213362070365332913071631981043739002167445494348363124672857991546277897819978135569088376876161851022622976736137569656833431396480507472444761119001546150296127479362983618105797765393263107637864985533609244562462307247447254840007868022509621073615104761586496889055889138037365029347102046528056636728297004805992013729715430259761443583348387864272131770634381852865286189000871086061563888423221944769999127540522667359143778636950047426045306947509939819760363501640331825456976338323160807292004693473204004611439355901906683446738697009403827907574558720157136792832325891219147197194947781074863052804594202731643407836485175098280182244647415485406248320105766021356880712775176847914381359803276307874011094224380444688306407630997767424645427459899281139504793507021524344979891173885510627088000664552720357348447192900936121548616634125506771156630254841030923767946093652643390703982520901660810661532220920563477311184022270100309314639054395451874303484278939112560277618292688383681514510652692484809487086071794970333784339673970126424515819436208544552970699045148663340484418315228090682633632548768292088831044261695509771882152641963774905970301984977041369605682554947096897175641343663571207683950576503631618488810921655960838902975895410059326921919560449527128182062238140964012805189981573368527929535377905346992154167827167349591641574670427277698395545173546202212218641386816282468609135620201758059789418094310583428865505201806877052498763208316680308229905290977056472766427119609573527199189708872930794094974865565456431985443842312949273355778953784703150233844761316796648936841086547702832857300792672644053945790605515968721539916002621332415616080099469859146029603394225214554058527032757686946022846787447208184280087877188307750936657837625407585041047193769052401958267793909732343908115287465210831274267376527951193979702416263108021320134251345189741994296481977345563179302964704718479896851535753927339206961284432798094219780285634978173610170417276426610633694127605550122745276990386974520842960939261741213866343319606318318844515546036396550599472413793358198185286308122991330723318688957989283769137813559859166154829321129277782837304264844001730448179244117596555189100667548133696590455422870995118762771148034590316270949444130046708869445794183794054392963181679046660140593498207886930471294186403729221223506435835593776372312901444917938016014303050955398147683733332999621805613573864440108912871050961739084323544073650449407163337755702137194374469428154004742615935798288234785762877160031076452794566756371608084753504142157019243529891568808388778618969441802692962528847373910561085302218520692421563598859682728868132893772605088426987316579268086503577881860524155477636284320221453436623682289543050659120328901980389253603718300330903542844536863546602672824004045804389335287394075232052888063757729597942856829368426107936962160461997215022105357756904959651883699300032146590160673954997568443978558556415242991886395847768779974443896002148010212049354236138059929832886029432031464355788652311222086180564545757197964981392375120457027628871355257116792401362351348989687113808957266089694955820750577580943283738993532127935657892865193413862730014123138350711148655112151932799418995192145950010616786425029964008971277846177594887929771878122476989302943911209752108028935874006652487752140594007720709514211660622846474447770046932520325055724782043674116542011166158752789001162874582981326793089814881319405839996282388712093161073854996904425690311119313888006561289100638303823878766525698512938318068143972258641662009055261112030491850623652116064475137304921565914009503547504877631715210379085295452569691012628605651288752861172221556105955296594747441548909805484014983157808783488432699198475915533775352096394708682504438516930669453292410613857646831845725942693979185206387066003626720244613112499751097193728424271985407235788371110625094070430807454056320479313334133754400688824875233613430246704437169043452162214316915286398916599703544376202404002180811043857453368309277365288819135512920385378457753850986838138742093032567047658451437773207190942338513652892384036819908104287834803106014986047144231571353444042173335733073158341939047030049756914220539126262877598375856633530841322805370827510754621943369797210943568342633597588904489603619705017061427570191390329072124148457341974223235776001746839203500397215799916429072942079352911240439336623148205901634926484942130917127104206639021935152850932875980987142423267901074685919844455805454542428717879731432065683298591887637192160099553276448640762475112528954736465954159195682166707633490310872432989590148817021437354064697652474233983558110135487125501629739756833489611411552628199703078021465113535483651154905981431557839558527662894356716896092877614519329123070475000162117153965966257120199393634191049794384692525776798831849741013670996949406871497013526351512448872225262715596943464297162657447055147543476100628324976456662106938077596005015924493490988852125251573127728174238899529360177158242689688200537053679489376653870846305167149279571313894388292908799941544928174206071685309524313985623405245028406852368621506279112283975435741212488904331094716064017338074831619989462454039405820725831761786082356001459445726387976393621164504216894050731610722062173390651120874855459498315042298074214580529712196731265101909214116594695027611427660072501820200283867285231716814276755528515703734977712714561836056675198380555249673296425125876754282863107598214711701363860132390877313093363929075779958085035796175902717911928488080811279796631118117590493736922700565951081481416620349840039331534820032845299764856489338497901653547243779162493297569301671821722147064249391583181580526580340522332562448318624489100171222964418307312806746381947522386163127622605953642386819776517603219225529804278463498276412416234468766621481764354713957584639128000269003523215607943692249701970951818753922116530507419337596320077243445010814710607897010944179634739051822296276565617997438168374845460263375291431821632901369137032131665471852493428494915268765764188997595455940194469212687465643844502103580416726514614201950307721573783087805495154071322558268634348602385921057868745425356919330524991814235450409612180418995777479466993701019096710559413845482640250588838508814968862366827783218828397647258563914805452210480535094848258873383188201061910533376039479944497279531363576510474212361326334275718311473583571608150416400839481359753344763007851259440228034070408953333100478683536865185870757213025248543932633094752796582958444526927022047587996926534760229041197019237070912167336540833077476959864654115578581576447894255222142723439318032397111926965149141987898183557087000566092559425608910245351688822478986543159179558605756569668978734109469317351609012444050695825280992471131663554063065654048747421340386500846319832311252116035059934295083426628583727933823518094238850773337640191524830192252541296958345235991941892693935514796825062227669623563577103604480538612921257929894793806891531936874346949327740054501985528414970619392326565042500128011177305653376738684927010769472341462597322415589802476335274233812163716895061147034230715844924210066092903492949687173941124347220489465317199229183338312263979209404954054572603780689809294884039593685643822415837202979659911230845045404844728025742604638309561966380406430147514873824244434572707164583391354605367238781095701038033251463333583709303583309966048563325399707296799493987072203238081280266433645576647390560960173038102513279155489147899189912332234675091717079273157516781792262277992541686553230198232091532099091890783495101520645604268993558858663756162125229829456515789226572233857313997359795998895652849056508683946082693758791082057466309469384642462173348146592868874301658602609738501426098355123512639239111064231250249256401743601815978702181177496345116738647039930170596719848389351047881330042114784999543308289817842253881410215431833393943931581990588030351213001553372838904936750259008506648554063365516482603974127357303230106421621689566809072021111864850784136703654185752474512638007656104056284550947910805064247603883172574586934776070697807748445110741012085796104405630393879485550488984352844215911221229761542243462759196314286932409428663238106397477987914269080017267298296520532398493412399446290113795761573470125059882529267145058116676408697843434916730908665641145860243683116280761707390514309204939444111854717855447462466560210415453050959920633132099294935208690624987852745953424476113593053714055266068097779130510663075878830738394880144325848754499190801950169774554452040280725576729944879904616147226709723924167374768566220557777400812905301002534880486293646353184135219665394375107310009093228710883026445516308783977048818947154535797905767257640978171866341962448049382159161132223875524191899770010352901194183601755322522693648023362677652326680349962044492043401003198663232547229585644654948953873966861533566882194313189366904701867395223988100552326418251213654624414926723901176276579007050524718689929357527391495709828543304123186214219448486081712210521656253244800810472920042284473309705036418995925589321480477494008744155273241252276799631021513613875472456963198631797026508044800661332488451776809971418524649028146173572995490704826271806397102166299872012503129576268987480092134183331789861106105902963568996620491066750585801179451013318101499260718327251294729181244502594636096659253992154114684479737369502648200543013586808838770256935559404624094525815171459954796148332247036213815622526607444417750321615889913504158810399498715144728966580126052300442519361786031413866993758537345747898896008066848769946029113373574354349276306396477659040926696824550749765167332359602005546983284586747708206583313893951656421754601070508332270016123024241018969929829268569865307597015112183877456197581640601285878936111474033485451677748228557356387537589488635494704729738150630433396588956565327757350002352378363250561489481714627387599465936107117873076642814942613545373083381136805077566085511076116971326796276321446869480172483669269350670737727764151127994588394214359445685082305735636389883940192114145444465502089508950210171821654077038214538720433415502572662909703062507819570809610910461015562873347745194087222986864921103999942282080079235632983092834381615919344118856677948984486778166454244359793223423145815574175483106032183350448557456289938087236658890566889784822765395338315032899420830399881634533261366155822455276691697776047476570148496690732410483919602176893108298230593217783591162286693702440669919005236816490567257335448643809411546576755880945543228385499881642528280363406368283352034468712795048103461724067397652845177499468047079926812344311295840110500724374262438711382634530632806032770065918825615135813694131811714505138325867618057214032164980820085735561794740520996892153461698789276852407487306568838495907309457858152765790938837815171662391860096451563543603361467191672263583355158489941336677442739794923492198404912506147204256621060994574157617012127741154853113250458539386536193313846399941546831445917828819253402661894025852548348465490093792198531987123901132970064084395962771597779821820939157328650917775104378088601548107431232568472044036297433161176407510178009597107205347094574597879891298163629470167256042271062049145701573677803278567703117736938361442570392207540864786119640626247971365890395411268848086035962431958926971825073130345036886574959007365050260757225202001524314807303327752102670092609176147628641639797921098426461985105828913481284497528196899829591652457271442862941904224163630454640991060163135688677372476984048978593075280993456283658150693555350306987044670257819900791985015100122508182007059203745516956046154950817833884047383369512833306560139452519158996268845635017483145920277571548673027095422079589640000048007934125991280917589605575524800804860096081033435790253632417422235061613738076970083886482333178758891049533021566824376479209750122236851316459773364825971231860459580822671091276559913784909821089921600107369455995954616873978926173873661142562375676533345606787965286597610267762631326710144080327262022199678936588763926945073247720787537390553396968041491965108561040571775435985798771021999163566335351648516999681602741612364185218454684655320554945856284928956344098696089014855802414430772160478045939852382946684042999331059237947790451497100857597465893877473615876095242816535519975549324019410421699723076944287360085818824441996342112461225107598252736709405415836500398119165759811753309143539729739542018207791071686591938896041569469574461674481009356280860796574631492603288048426618119490019669302997282477907046671151668323519671537661801669194991105728383806972635679532725283216862847120673217331009468801811257228244142411746145779911391304812397266187828927740601350478429729458633457064667912609010484252849760615496453664981995117435045607607240603680365585283114816444222794012786313376374070170982614300995868326670328827242669037555293193658037413781218209918076297496140699585080857855389257791727374459352873646721622353929533776556438379549734047075030467484656218397880080720343339350631263091290146147226449321622815226416983362047222190876750215617104193362110032784047602337864702042266458087261960303952106440234850071709956892206029951724191460742527993819104199299884531701196108529970597380730511910690728830240043446164474780556023185253084094773841923386132766088595934416265269603057190952669292314989602068696947223239698620860406551951911012029987403473145399156700865578824540268485015008962828237810199372620748626583761681542637672231521311232056802611045986258718849688622387131715262067066306859849148532985900556601028273827089847627835226895215770602107669068983229889497821872506675166975449587897896425092454421915526630643213882567035868963818499207929086012209787949354810221546642244273847607804380395907534219897847856294288143648939975562955123847145607673298211190611595266115901221623417931336149551793164311045930845228767866691334903135372901668547507475426637779390772696896632767161415751118767059564594966767428246028245240117994127700017329485368421967718472945630413993806019949114150069748581206734345970582378863985245213413207653437638492498239874816191454736483912054679205915090300687865739368913434232333811960621878314940955913755059973705562526782724846720948656985883483357686677674863715059028889027038229299592010002965496010474716126605074199268008787873690444351871202476425181614073746641010345828744304290784017408638808762145350803744225477820028266418143343104551419372976671745789523116451703922507183314180603229326304789786457790272245210868120460735004552752370549724909641941918612917814511880548712920713427838214887702841302613239070559496922072500708874630150327900854829596711056537721853380087869390153891443773103748482854225700515234562227811045875211215836495190887308941889913978016975913920924539811765432444187445610460939424133532651493334600154441290085786576780058847818334053807147662382249101462896205574211511888120046386070526631128446197653648060312359145478441380031118398067574152365049660727125324170946460882306494441744089613719911899577570676788491842998108852340176321723768475696622590059315009805745720456629580743430286753930592004030241167632911636804089018608266851310664522629700094168485975738067165894283346818101581653061829438908725920486937023108190628701858057385475485348125751651229685179768392875239361544734806824112783676344419220104880148710774469883945471516069424388369993881121712964109431565445611006497098549750593777642763942308527092558382569875858153480378227908559527241891635850538820810776600737856214494566251819217280155719034919882976705241634384459183762596995407228558359877094548938667754078943105984369689902984000479927669817861216746062637297583258054128926843576884572478270756555359293722218561267932603751862487997015456912402863914903743745669386490081480046169055538675498942796393586049258599947445784463128822108441039185612294607112982285081769351796885848488295946808830307136569698264351587304553078443543095819107474189550947099877596659994039999627771725044889969931374986575732524495605911018057291975334244104819249103269941736459574515231562526000952613776457870927145958049197860329046110581180859703212804572079305130303931596389044840331636588966460254605450592712210597134236354710878451458166524438855767307326186002072698168530798174719635662149917660867663182111263707387600241117383311964765930509404285008877614935569679705925318854378517881253419630524228593814843203182104784558871730775070786550350384062371005637956695885031719666979721818122941665675890675038694656036848963416978588372644800267640817751513481082859010286216430147723398174262118058466729219892721885376729391195504558718981864729850670046461705822053871203619677527924625644812048505982684693636784363120997408643777212402852804635070128360644309985301875922142553034842296226680805277558752111938422323521952894080611619483933063335348917370157256830846323193218018148906744930683319087690053347133429922495740428592146508248897876622101148728016144833391132922663621830512583567573750159885115679106596761201421576975573029466631762382039225874918060639870687705948046411742548061445934752803389109358337596607592024476758918429229356968620748646342369119490446308922732165764725257151163385392972408174569153460392766368674771629300517387743842154803224223240079594688711870543497579663096041911829140741708536134755128168477952048458881844183514916664649975615636094573085873008804494051717241049708297050755925647547574873832955571358189456677608651558783228531068126074698543033368825644094777567063828264697336842136191130817530749451844428183782404548142965700538425535024287398902300919938051053038442109469721015047172298240418762728654596569318648750873285034068254821708366362180229126792000139723715927791364232780549628124616996747766477796284887325008761421382607351746259977824013412114544654480911821128653279284552115609576360580336834269815806841103537579787192608165376557756978783133607670099148849041586363174842929978964462271029023327005191239697641578377157560705076417468572093499001754465969121024050874857802370883971123005496849387290323366340529287946860191607169733715435214994617303168149894691627920440893078221422267017150933973899704639912146292594315885727640778936534357366557861470997895196942254895658360656438662699913336446673424015214095560431276957226309227610653838464359020728748729486601768623783004339604854921814185657166069240365795815796154893977284999874010965582307686555495107789143833845207558246348123050147357938030774516721337806811329104411422981864195507012436464616732490463227792793135057129890439300911676120091619566248146646085181240049487719518599442565260516206105387706023111546622189242977061161498838466199179547165143078677768986101086159704939567936063384312827666801244335029071519886965414294852042363311686508222912020844315693309383944300658194556033048438543975714070603133364190859439101552053701136048488044647681100030748880566735894287136216266530991613340741334149887861036760515072887180524971120636123115318881759281964732378507198008597812520249328718800675638544454325690004237455401854388545133371326860840383231397418514397299409381312408856715383419376824831321423080212016888865852588384903305882036545318748022476174523335693289084468878851771086671375922874293641712690682972820913433022486546037479214776775651764086222809091269005961210779807379137629593040358672166171672548039173416037540300748378483461413693679765151586406458236119169207309089890223391435661605059070534629580789806612809346165935855633064224935953474471832702007586343733436592369345527772828220645529832767506255545630220864507260913411170495048991685534567463867669826590980978579862579964010822970382800823255344578570073947157649556126624561410607709448055874625639620495117566419372913419212181228721129931042765005596355766374883878100562936302890152320233824819510281277518998627298665397151149328085090266884191732448363201783810639787570314513185533835144079454511106196693740781061552329240452563520546999621406859396264718212867134778403486753344671035446910473396728689967387742768869453016706425400950419761214187512464923140916651232844232708302803846877677020757153132877504697701813961415344106682053996233339981607420534812129403719221197112111509878055386818328431948907319503434990113984592711686002133879811053566731254523237778993581634253616967928660492151584966150459825639241459970755402904586175751089115242956284141772350525164830042177863862329844193794235369307846890920348340206424154003008667478774892991783911829689893808905997542432831333426718171996395734982654658232812051653048079458215979633378107373284098826858922175534399940156078606879866499289692613885956002477822821422724391918041558418235047360208667066031042949992812264873422236105208638926663020769882787157078262219614888931954730578478120006791706064930275257093855375006226801484274166218510310366245376020059506962496875043350179385147178656548994929669986398234568141402246099350944841165915090881241597858158170981432931547165347457331213384754377656019173503284902538754741238794684940348752051995748330787071249096504725922593464490922065799768126805580417929521222063444288814543260896930117743105952447290998708074072635557932147834347142871534915727939826100318738052514662424544502221531344075008794727450521304006105059340614460187251631235804837390214135779532120691483055745417380141737750147958821478606412563360477049544709863842411380973138518048893051884124055781059597611086904650508933764067810303194758573600933456719489005952737701380493166674042788915123499342130033408684078079923450928521985761471250206967625436355239835885891001601730177040621515037490246269588420117459353605595841693744718326036229861532069437583279888377305900324948698629169485732955333533925638614137749786301013349759770227938980424414597543908528111666213303469353468075900276227754304870827373847780444513276603694425454807296800128091273961459648758524737717558602411200628427468335646557530926626685794156077359482654963993024714479468986270709601453671431501767051349576942446554371660372952488985475650110806700188186735423356064224293182565767471326502776183820953518609950791782823507530902678409885799752583986809827416922499396427244211917086471434320170210298378687222566387929248882182818003750095098079095304488475636379985483506523880266210694365169931528500242829807957498449349028427858967882049313712457874881641175677702512390889622590582798697272196684470902898745905311747266344712549817830415435714544423288690929599379339017187979722158855204212382889448667712107477181651136561141636729328725482182514266156947968775167646366326983113904727399007149861473105963905992307616412506399171408803683810923580231789500094883806173078552412766736277509944863541650293293291844750836501120383038817047342534304149902990616181162633897658138025743675000090079106396972230643097774867584702012001935286252358968325243429523066966551442760869869516244453996929842348957310951078310468092495064089570839303651608776223398921988991884193208769547995994044682855857936678814574114952947814532857701152884903105060422277603675417841337823509893345974273231893897569219521760500650002748744419304792045078305872276342528803310684227975705077101019380600316908314392055563963673111932374162087948138947020783068914624796922716211949043919134196478936917349091014202655636218705315733218686095780973095097767984805328583356810611362037149216244310796719074858351924885555194582013998512614756853527071323456196113644047006358859801013404428083543052932117058942951919744765609809983717532601587611123551776465559053920507248337910394869678838599137915337505210346686831957690151153190413362227270681730520334904117739913811080484296946288208292127377759335481348070070791359244655910228662794770172006980066833706414403802399333170914361933143689102856847264352341826944658227214426868679675394469571499267183313642095725153494278305444073645494857772335578957593901234922609665732338894427013939534610752448318805688374777962455091717958733194784723519087535997784896056065311060148150888054970361214006603921401547175262692961393081801662616506564415182418753982680076938538789192511291840883700320513812748444614492925424692096027529426006949144357138667269929777239560251871210447761893063716588645083050125302040935843394358253473943035449658279204420047807955947226896614196650971821165711839172488434406297035175358448640448109815189863661138595264539851296861021836708183148551369672451259588152991106135664573788999960238172877299408433996464936036083591677766454066072214643636869816665242366745369440927723600163903700835152128518090165665475378449314972599529622460638828147726083391899904211785064589701300966533918536136381836419853489024626033138915864204181252155029389153433849554696080555853690802075257268966613439683245373621043301996476092582592285058539280701600572719393135146090573912468333530683964930191691858170599113632488119547580909810658814298140387665898257372332383424073382540733413287702668430148836179528343139349813760696941199133068697850091767058006848246890518116424637667630301493906296443184228921438591423728651784037475406462762991583001113210777780327634578739778626928455635421540402436757531620234960536797250296014495226605532481010697230857762083182338923440402708194658134445565201367276268488630134734262246527997775674959973406049018901146048055498520592611887765953789085564097064206455634401035544440743187434633746763870454815329823779484706150045095990058065753324663850402612155315363607683648106963181005746121148757469767238358290894552284778909497882044567127860088176376480650903326760851680727106238648960311635701704404695604683546239684267932658500831314434984058617157783411912648343590548559947996826964616777252143691448711117980288754927240468463825676132815343640033901466718762623774056750575086098742078758437943259086740587971685427890045777392989523654519273594192636631466487071669169289180022236438163322531121624996214913581883290347379752110498646564629752407074769821692638422774177846309476911479838762695028691639080385144533797305606654363941544752615648294898359283049664416499985596836816106181982956098600271436865822956759796046443910571078149058608708015329488852001507176046359217269903979722340739334602333190258939058617809670533753719527295264301163371151324065266494739215931110979828842845186024798099225299385401613888813015892368647507007086415759075421057530425068547962791141048355397003892516972676015189122807699416037684639384059403690743089122321180252333020666700558825577385147313514964704254007835925361983677668725532606666442510285176819304321840199205877363202354485156117930866734871949943616828903333132552873035838615949645112012602054890990152045018394787159153900242880495367818281833650591774301888077483234762538015306105907105146218164673856048181956353826916289225667518634548634309042981831892457908782046788939003718613088396238375934527461931729696968700347394280455241693090696682884730373325285536441640518781319446555055739993339926437986550103184699632549213285279563247133234271641388757413271000380725406364897023014665099752226862651329200744120836200976265938245178511940772149728216367614983557356841304261914544796019794734975057595411742262953283926430604734854530330400143467638561457392302103088846193806474322270048621676243380114791231323306594921938024490851654339721244960225392362059087598696863644368555406251086031859694759466500902842211197698015505333884577661139873205456886812398117091374987690183014063150323241670981461908837820752614226294177887126193918161984642811832080087623734575626825357759797441462027286511049998885968219612092116614921769393944502235674002650006159793021460378977519241858222466062473617269848854508134146175511006196624733141343562732546347905019100853490396748741064797056410586869467626044172093722265536880310511940365255989470917672375908560660440000361295013492795333868204384782863497406997940323924839707508462673216978899428977674575333256819719068451530590916487693942941287015105957626859195985030238267150180071716967981196865198739949693825068098899993880902176471019160373044495198418279367961338014197468091288137959191075163865682344794331029352922662588449790275271912333154180471220193915430847859592039040145676253764618127724231029183362912355188253005064037689120683315559394308376975211924122054932012694467843744673468706061309254820383553725874757709004381834794941817763868628307080327861952908627342648217921320528363802376657455966316737478739590976926457892602578919745647384391398330255830195609049896905740844548981309926273616095364455349389477974382205389410813017746243565258180251512477276410184578811100046330651949782391654983404475891573804430265814344602974377466953958472287779932495587122650754245288693383977968319755756449991802791242399988156917088247265377539060488423827097415996486130893713871284141111790491708819697374462356166983713387725864371111531037435920003240164763828327894352949490209231222828964252418658126913207598654059891058543471364728893519119346840736384504660062557246785690293270831290095059180377698830863995251919100426751354830051887861127711043226719188292609010430793572489720497260998590046686508697642830421285665491687873975520426507641161133270906987677111820028464053377564936402062481175706903843552429713359615689402968262221985322187445626998200395984258087867610182219430605522581067019108657305894852656208602205139624459189693973767505403817903972203423888680628300036830237466256599496375465187673320887202018786948464052895772931842017188855099785245099250819475010186065726011175608359393233538570927411278595460333249132420391384525411197601349906258478373595164667895745494425046761250210075956747379333557105298857441286642998228863567497600657193008507272312378370439611232356128123114910286201253186520231828537935936820977921163567670802939792942381379184499910486969163985450924991314860390379399061634047352574969519420006455143029651298882484658390315257786790240917339609578520451701927270618513840502112510286695258491070063548838361299267569923735796613291926965901932688559993154782192207523706268485959261377197247197204908527156501101979471720139130240920518736459363556092600360877582353351660229824834081084203423946340876722473179463484952543432717911210003825364706405562538391581987712035464819348140263876995247508090466549609044640973489778283370908765434472868993504733604366553442385109319729717603192732501326504668969210039691776930906950302185521261399355315536914659301701405245307799839348457857919370410669465855626783489232868794562370712124388472488184888569442235125394857191054785472105130326245678049535894587136550178713636353166725710255293417538822841442901632934887637047692905155453285286953824244166827222726841473530342311407273879670055366402702509751878513747879800791819603026680570791517618378003555018286899361431361277915562496856581412488443511738585905373853471639516986369150189421151057775557153133798322635084642691269832320079279838968760225281578730296164436161515366100068662467128798184005414416624393683795019124696482728771097795926075205931786838637342942444717520286587399947643469645216150005205145228636106481009238554926850961675797201090881810921363965391222839067215469425786383520958152973333200006399358540660050529135222865392557110535937762379258542080497867903181134369085953842616907661892790691426618806030958070289066123876125913736865748801686113510869095833046812668029199098841662460650506799057531117567969669590487476616711358513704929324010697736138335009331533652180378275596026938884653023463187013399318332936271777959414746284035544001570684438127829202296676132513870548845956757061152813098895816986312226134498044837489676772990525008497013223495361877465443177211424793227110018394034534098556904441843552962388706925271507073163791590866985945388499538420513347462329202003189015168084228178415923106118717050960667320234174957982177348231430845685174715359199475435464838600339630517353161855728291017606715612728961304547431850155466931696078941566344391012417643351460434557724532868415454131857249773499580117625809653555615766512097415889466202118870286367803870895201281696355605040520029297330654158271488210922934791179577226200329727777353046967536365215215241642288588594519671719766835701973202125349458324994553770442902726926101726809058346455840570263397513029181969328889454730758472790996089426937405508978610717881437078993371979366715057161916455980641933830851660944425720916263818746828173804999253013006253029560812425440241026606085883323976851157890568881338067915322343745809355604372087318497399513542166007147116930425842609612484096165738241459475483959798798211568349081399733552983674344203108788106967854850737381690887923304160543477880236950696055682936654682186416829623218434468690121237573702345976241362495647120438648399128244590908243910623190051723473067221859321207272629346394324264131742263607989466846759703096581515927475923432586878399641447369082689603424015525321804595740276397609475924485901418000203287752554310356053978861132952894362934235206412132120750759901426758057952513992372752921957224584190355768456888525742836012096113451751710474049284432216610290847767291726740340241737013669587522587304024405812654091343769809633552070012648844298171384096715130744065429895556361659509606845456694241343895209754592907792192265734375080491316859718906017786659205500819996525667003921529385044584305259206331813285997092711436002580004903870628960340263798477991084169258350436880696430512458274178900967394318415315596684700703452198037142410008395858751565290815289153863531604099008140405573807497258696066234821155265481923458391953669945414916195325886469755975447268011750428191948928928926357622193196397052468496116302979210107807823796197743255241544216111491145881694315999010629915188040093695907735682473320493087623315888662906821557065901917528483810439444950879561437989427432849663901854669173787936599833159419037699811393794204255938307553102822467425400148573449239807251586247100651473982337225475220901105851447707775866644480493360794367587596967081570849251714363768917807349422462735358309099989498569961150625153453908513873341716633559516650780452571249305925850707479584569660010815189911269128451280869865910976665896125016430386767619160760158926231399601061541298934951003057762384817562468027722623398655265814198406384975756414081152259841037234899318655263564127006657930279599008012399013087856629121528637006042941580916980916621263051732559855031097945742488316197589069992403416887937549993653938711802209649674434569282005314385601641333786087170932819737035756995331462834323013619754055351452257064293853592069977193329040656920538775714170118916165380574739968693766860348912149280103654368244605843321174441338666233929007979320761471513151532044502260085293987045515151325220864147558149360592451011020736857517067134689386597011241866033426296558595033303273901116897786550492029594951015092305241960897977598164101163823243707079886082748618662969513956668246258237834516019209036297020467815528102691555465750579502852132081305111442262570614484310552451401172664359515737248655530895401990355788514352138051843267385020113332853185398310479323301853933380136785848188160265226918192446824769341295458717743418221727587626138641596148257972150389436636315450460629818679169633332724655396155347038977026451118547167838087358883046956337273888009926502911022254104034439154096909758187172888095685421330519497766818788568507671108221440184251316677876930179615353055167329822621264042237727694280184805690963841690867116062146520812953009912229368898191874211461985452767001373713365594693072360775130619880602316012930978979710451750699373493776681657982019495230159203182585802286761985901748259872256189887322100785427337867227854908174937963700938371569211483709584442973578416201181155355437224788262460251234698723090528031365531145536920974153808868259707641884013527186824708329656946516665653865117831122578256033580129874435509939368796112988739295569581568665915140132739401468432352728839770269589029610379098548661549341032591245567530258335348422109042200948879823119093626246730671916276082966370587894480076769433973810239327961100779048272725938733880485394055040341491598100091479854794313289115787486818255474032550620178872698418946170353646677448278901835081978934519621100968403596448169037322843597397164309555170132161766759522493704498971600422448788935588436706904353873832067031863836509815214038137304690858979640730788162759280256830142011392230954356771530899814385167640808394882877710219860844087481125461546144417808645132104843428862194689857932370942565719228957979674184120392960170988105329036608802429072792211928722092805648879033708577111016587754313109687229743177138701208490336622071883378138459362405408109313711602251091106963235659293701048896880080883284300057684849219640964196951017816414365531405847033720578070514709777472932291103672739024307936697462387370417080354918830896245067736058824780282301327510842220006587793808558123151051375964058746710908338024568934281162082237482090982355366196432591310158737624196614247556831030560743866312897814642433481412097862082415112676837402058023574265727063926099900621138038701683270592280617738974195899761509807873927602939648209134620041861625448599747777126094137538667278937523406689921422029705554764647457148253769393327001660144634579826594344611184020291661872423480647658660194591349393246558233138887640873024418290914481199601010349701202312670407920982166818274404966061307958363051937258117978581193581751390918782235639894293877966163245511292744347309712616083870232042987112935812172258134076115821973086866993063404001474384052717204161278172142941750035676966409411408488493564525038383593544612787116259536505204983911470075145435126446910333628880700186164878335417052715363640013647583984202853712732716422103913638119925381376115326349130939436549133730797332695929923642825603791740592192647812187941719286882312658110911114727136802962871891701425394018616307339070727275771823909290633183799300270926068802517307010991745258240565389725873613479849563160883275495800985640778426880877733036246969711257145393701449451638644478198745668121501309292610592762756499200240800730079972027196879947951986279028895066772999285512683352157683762851682638206718632144473240868274387710769456762634265505398325231386931898118119090772944489708248624693607869355490904174851860893980396278098948288635815762232982331889515584182404344806340752813878547793975613153690037281494092540569839109878828978104808337590965881168032171676212895752827461838300380250281934969413549561827953502035553646008444814310025565159923810414415989288945528958966498717187680773649291723253559862701342688256490159697483295821014286375451924841459153275499285309035012268851956899849282666190568544909005477123350702790893585719605600038475776135955543742887161949295486534380941909588313516955021450405003096655049313869977368965734406354230479545847418764594280191597512755724002434764284977054852730993924552131345769005563783432277437637274683870659455718567084213608091936852649680280072443370896067297746764465203179319673567779071243522145742651516863368385305891396000627328294016813774308749943123380065246146017121112187876229936917724506253390747054914607308802877827635351537903354560769027785357017368223023310123310595869225702815110270750482837989961203311243422273497126189748116413359908967481930034218440838685209385511192666407050478911509037603302559094358968547427529376527755582535122006383308452715782870795692163211137786098759052810249744824384326959980701124135743055248607729006415415546932237921030861747984634530591607309445120099359107112229974549419287779864029488814659037981285106009925906833325266895280201748432002781214661257423541479188621736583504306042013313425262006715950945301065994281642686959760836212852911816827713441424249816021323853007874843019229546004013706811751365389776350737256151566569962848252257538977760364224685844650614912064442600408137339108961303676886293456582919320342278884789047305778153844266993943237252228674870061818940271560414059800562500289371204265845438805244643964368517762326203818435779353600157298780762505390220027469848917359933610365906652964729199314528901110877250118387947883469331513342150584153038849102407199479067685746780345637785904065978207734524570811191965023407715604443006981451411224333325537868679018720859459435463700131330722679041516951707234832512430799243948316783926379721046056378666633387666748342385414098540774359223209178738573013506320365379834964439162504674713567767936313459254907838365252933898617745003316229941275074877325240174841482736837478373178010156182288743899475869552036675320476040911342143828139447482332859702061503100541169616826203305291283017899271404842816548666420116489818692061562000926512369627677754571190864686710713293613336660799356996913286296013913733958446614748003836956473481030523691124400898307970488380057308440621486381592284906466182142261999026433980203012602863334229939158634830763511121285462780970337626544139740731879923780579806135827221497428582203052289385931453618677752375037100166281482007155698558952408183486526598702707894911240183704800401056631923348420494350029125578963625127954140818445452984645278951470640890773647096992458471287362831267124382802459612353100186627868565092908095916352916050759568372050578970500535965368567400379255823201583797627879310348379149041134370116372032783612533727016127583263641575529565044762296735623321010511783207270079368287810304473711528615306946259047259321615442635779035236976101258991724627143501740197291683292395280140692161243127427203332479190371725706962052346785586850902400318396482359442189418933652955688120753822815083471401936328033794061214703447428137918379398888738745644820826903662355166304650655154779970815771090304007411285927818344577416005588134259244484912391402736927035897722036231319007803347170158996755823826377985956649128679332315438970941371576381599179557874733312216409401553364096924333847621074342253763101017788782459731862502341223406686187231488381536481954338151644198797753124979589699709341769569643681276792244202523753096441501775277351374946357428434964023829406070162850557289242960220402274259647057835337806680254848877915729671074731564329253744175784197611391787578936046402375902704187951201133279575090297101485425176865044862992539771667551864338593552370270565872118088953480520862872743711439876575406557524350605221699449026666152353005777496580593853250759368651776820891091442491700188740307176365581903570368819898706817493357398417773245164366671836423512848145129882743459757256524663863464497949992340396625117321334101519515576762871354564707772686909153689408972734883726767930640111450531738120451169990329932182230971485415121366305363087483118859455028532308874779762312425156726332919019566298267667394801692335186460136125603302783292052652083823622514190927958289502445922518442192316086153703266704129126847007141894715849670624043506192722592068645377150339293262771590193327626757398537173075223368575727491762964161809042203758986032927942034180094306200405321248918686990546197473294276820129596504345810456017837971248515653495357589087694187705324509770855647910351127987425079085168866246391452818342957480497507347467510892336457835235653130257233559134429175637802278605403118323686619477522826717378247437538935869780900941766366621954026171252700659697834291777866323776018447925599009598150802107081073615250542552763707274236471565911303041796455367066513052197935918451783689218894539104337425340946676902041204313116952682916698702103587763372804832871892663691743758657269848303947841049651037894314652544080141973308883112518333285137235826618014738390743982040427851503057897270742597332806090768213159972332312861749060136361096244347246745192641459746741738384740972375611357027060686874483135033476293601234949453312013703285342908728724415783089321041148067504885333021255466283018436200518466456853489456012832610355783397650440298323550278200359044815744010263136828665728142885730313391273309211173897545003992948074395349276778179042782433304859096839721308553760617361872657394245204237700925022588154758962262733225463674919368086021352657827012433615006577127081822689897982120623274093548735484376465216439768209665300538346727548418313922885963219707955558463483535488141005560386730111025409403764666638979491686463288404837682315765055537679831790063280718700284556783799621639470423354410129964066576250490578061363178369272095515440541160915938550776582930062017161084783273959491914464173579547157411753890757902122595108071358871372690984501196549399488139822409216154297470090673362648738401730081522957413737472526670227694690587935666986749660173181119622250027077603547783234745889952257506070188786695549174026297550935247857446491227954711823537316565122480332807540611054025562101802333508856149049031779338760417564008584633427183895799767160808504476651760119360993227776282529003012284756831965262331298667089669653172179674280076722582809101889307463801277606056608251904634681343448714127511794675406554201151056008992822916696872461324077239749209302883488588695292035751382391271022501401918117397672218147220221829839902569138265111629907873608412740085401722066020247474285044063772871550498049310641947080455450128596734834516207459004418403851907522459774649024268163462906404861200431273522571333531120247365530420556857478792448851140525747584466657279155091247479904118864100042472724230135587504130259849983792454680412701889677593861034453831973686240661801574373777787649597080964229618772094375804612654269319416526175755376993096409831757608891879622920307713976358154729070076265987337322850130109282112888065439219898049641447559059336896752799506786211915978350626198773367755179770580781802789000624341320656513710121591965074208438798889408975721304546986533120754289450145670258147026534992996723173430020445147244901008594529084404894652044483363936548292373908306688003254636264749110002172582004211635319296432162024488789776332421820435773147037988930310046426857011932792922501362256083604183129282900764304852667742462685724599503135806921611623310416028138137952759610164764094248709813437598746162524819701611900159683957098641387419230236217852283207284471721591156166773348515219526419906130587301557808583763475496110262386394423656062057309227124726942509027802624868145438988276012618962328706008118949111663101741489784835924329299978509297187301585335923234331040223347926316271607569237832110209831596824219488212507545806282875990810334909285898785859719713421529502210042906404354928814453904699207376307061540685694364795615425674379388726644823700145960758522210996479204149500340214715660364758187756612136130444312928760348912371787332141303233009224064940107607610145873122319366237877349669391609665710845637745120102007877796497033935117364799390048189804297474085725712380602723504246463873576546766535377969702715133981014183664921111741212647560452272496717844580267749125343451936313974131031988342874843134424473497480995737797120303696102078455950626767048235244396762981550966102841038692843849583775833481611908829638444470209427847869590867608471268873970140961212870424161166141248807096143497241185816002979333114733128944692310309707036702169926398750395123083559293939249494571589659861665969615804604917691013993105578293390397810985617884609746068275054589069114235711301628345143724044523253594891855034202987319285757801610745057566753634038275045235248191090406184440555244023321274818855379425968376760746165239277709450646074639609815181605322415217645483020689475881952374300145872576411315606103496967923242736101367681819173030770508143660142674240178626212802175141452351755478150473725441188954185578581514905097524700493419481651174960416294311108487352380310389492450789724353215045990404327347960552403000497708075088100916900270500849153935307112346401490127364843982310859014647405424556282579421497877132092284692284070286210902552367209093322387482351522099907085411161622095234546809210485322834141902991723864452244194134641838943094994888410843603634343761311988455137180895021374783696412709467840331781900394602735067837833505670200483966402350781513477955979411680001551845201315171326855133574109827662709905599291374283250217529423403048897789391787283231638010672298951192836118958409456738907304201181286670971958049443842492795033737499725616235444411901869777267544250446076523915539555603599891809960101423445744793517345194898667307994713577881781362949571833033600301705502509595707928308618511122654075085112723696434265151029376358839659165402085994379751941483699501387489759960508078015016995004123551876614353345563949725421753511195529843818604864469041754530022976211180629974988076042907618194377802985619816170258316196503107032004748701477220216763518032685034756272076337195704421414958623113467715003170842091745794933809915019513233940738739598924941048550181763933958785507754049991031087704315906926353014736617817409688608667122154984703657041749425322148260298362695884281425223361311212458542224777456272637033651100247846957319688417895807480481592486026203064993187883633375247963279808661386007442412755851782783170040134037524490273466757185763075048082408268220538571185162072019689736075279839407696028541325738199546544466843696854677334112058437718074387276905708445177183597512632754869852591519962777242593373532735547922019191591264340551170807961162373422256511412199458989977242897398781281099616202584859977605585592011000783414282160170214597627890496546954611430878768358854049397062134987054662663876104793854713047041754926471285181903206771390153028625893580273808223694180300437886816074669251073460841223122817155349739007623669950604528126643564106018910470396753408563392917473814276283598942522052895375943212065233333713319842059977997966194796412427539019126055690087434050711829616337819938798938931323122280736422883057997466067100981097960218706089211711337869286982881305561936011823199956266949165743089768051731855721229184448409547125283189543708851404379973064484073084015003551023046605811982085530047630882675529373249405011408293489232766868616638279404245377980949634161864999742286077695665551543247600938193396172553349517951007928772768065613161831801319139547597948935390379989936381967832766587205765961555615096761569712965628167049741306704672296907015392389114374016720499810788260003647146519724195001594458679958884407270430575097647075064601393569581208162242394222962744845619640697723241123656310130721754242814067332493940311483452127326729076614245761162608196241561725893945429169998504764153855864338280176481958826779700051492442999146341855816641138511780696782460894742796900818857762855026810646776148244340030482674321544908351337538000824153057866955757483429970499716148826204825915300169469182539829251571780238999846042329943276416153461006409849622109648041358153290897803480972584292989359739369508851163842396934970391671643865387959440361462557944545500407867790238739565537614925696816185041253075726749028614290782072055748661478687025114154398528094453606054634063087335331845078442069610463595699327312386217691212354916469070639165909820322296491812765248382901405677211274341380816769190152389596066875218538062051555858107343658273557115933918694309437265820664852902789519362903230430263544420917048107034451317777554651743742199020125143284393973002580367093805596022888903380662777228526709719064611069968443295902393356559862919221584150404010642600198243846065913875765890282861986424374105687124845689189778893021847540500693918033726476906377644890123741370426216196816912660095551125586522428937516444233559835451987528570597257710400029592532648565382127086610462321803953533998836182811228252740033439873638471920106410283771309035625076047708571354682071403516704834165898430023740523969278965391550127321043532603831530881906792353903999474746995684195847428681788208995024802219793271340235084045558061694591896245196417967340265422603898622943507901324680740009416237835160960063294803738058102862258798243392482149181573465823656690345693420563768394814862667274702487908402048283516177159639256012761435613365439295617638658241920064707412973165710198536761448420604637856116631232693747439363404473502336900058336449770159852838858898257416132719547013490558850705793889277481734527718593021483237225990215750476606008715901225473718131029934437111065496479129682453114971022184432593589379349991651534876571468291016216262811258518815131417612707340973854016610422860493367044478606903045950817306943188216810494764131521631027984178001141725042682618765463837029132543784490817279002716179527269503846514600260457025539556742213495361745872504824038336762899858241943299925322343301740426526999966915471998772707694905202971117866958797528991177116661192964363759593672002600084690692043425982933967673180136716894035879008856328199692513281157129812597698532815505660731518939346328509412861413007781469241206071525269081328079540359705473580145133497631335795496573130404097757375878776814908848322689571059008217092943280227279704784159396490221708131281145471687596261728379540208672853718966581141859985504716906882679524943895012905005186286539601570049591236101019937404006543593070368322017572645568378405511032705768608595922179023245470484000590820142384381040632730518185787211483370043622215217196163595695958785064232686360658665202285887424503238073038964659643523541208801496249854916302136551463643564401565039107366148510816708364720551987946356350682404802214160592439522029055936585326053961219436045176141267505142357933791021198263965709808424391588141893183994575688499473843879530916334553397358069825031465327659476471993708100090476435011118716305448958428129340468116503183909277400914638857799987684532693407386923532030044456178364405857784457485484772531886080139658548448767237706942279578928623091535874029506425695805455689138341698900531205531034158570667947444573827610941279924394162715777610865452441758581865926690869183957291889923651153330336633099479016540277828758600671994586026940689337576776895574383594482130026998214169616510858527221299798853186076437395857976741185052554436451358214981027047548967159700997242777259730349100223084226190449368024544050152015453228275632398920924704161542636480461089599144431637122268461298438181863071350814961103434725368501062293889226376427449867538927440528734093411453522475521286245896435970453968989615414294705536271606240524215465668311709369113263395663364017122385065499317156840719924790471578709590632237818094470833486735351594192538410512224738563454002540822661139025073981386060734616984451727367977826069684864447229074430329372266857425199925326160322467566490757960612210439148640015067519473062891332061522842189461561065312981082555557165168587122639373671520203615091237841125322546511937979515008957026445571177469890490912399407539446444329194134086595318517781435306144295151865147370438626095215340804965560118590203875188037493914771022241552508961404166013195962353017302398607570891618422035095686565548682445011930384289378493113229313675132068363626866235481370650558884536121201624707832276122247549088263191420417516164008917194999746029254297267056284560542136307744222415760747449574595679069469708562648701280772872933079386295152330539473218418050142339221316715536556273589931717837541151428678198501492619325530476252098175983319731310810646703579402780799234778669437781815411510796386500067327705167138619053355401739661704554861181903333325332012295747305336738843353477653135596720329303577016985832417657675631851254698022193265714343522020144456176167734720573016896906002901307315248380194475849099180539558754153317921007668304267897753721785292854898688636564907375925028376287583865561480266916947449106993126097871981316989597841439591878330170479688091845780329993363974434739557931439018860705288452905524588187287894458544095060396442036983089378441285181203941177083252174916411839183760572609456665095306295541913036660454446839656575261256802562560998388301131413449497715671974474185320852250631770586250349785427049072396310884426298606531535687024324815173031515428627593914535132241535253711109286107862778987140705754517631496345065871126503559964348181256490848004859760986082002180444512121922137958071992416895042117037978570820944596831034097105351785700009042163043303142560902305219222206424693716129126676640705680065932313667596395814941696368084060005157299741819928481000609652055596469662095052881471020516058615915141989740052431926571646587610084607080993867422591600171507746676040766107446638781915744096292887142070044281057273589730013797948586023416014069784059438880557235812661586037380541814148452000530928560857326582643524085202991872328911959674097522763468546030872922936893135570870533094160700916044722049626748708381096231334400790878771869670493752223685154101653445249143980903553264438710231223797664877763080686890835873755299558408189088794500522105452701292201956650929052005301300385198871338883993812316681908392338903305233247623430308726067417218492657253222332541704447112919134674015165782435692500631811407370258006010915939123240489595526324233910168081209893206668201627793925561586719144501751789240321405690321731213176623170808479376827419394650080145638284169662732115241074770196862138009778323628923624712879651136739805571119075675738350255011725774647488625114634167431838009684197491594558787704337407693651181551846895561027275123184630986631541842944460949110128679279056274207154099514895740576598058169060991751705981410690506625972050471263361950638592451392828570127366732789427582456110651045091979146897768699262326172964402835110654573310883398242415071901231889628769937857397749289462073805345367397158743701587801756941585617120862510424304654505506173012473963838042803222071095547246639119482016686797092176702187915197495967990460434318180000491472353900383488010687858052057171748875705239307976456440441349629314450576848558300729032427953384254748197913918135262724746261218642647180111947638721053651646873998139092134643258827206037246095563655757167028781387507358537613073146203199316610049632540676285534469120588871429845812593462269782160563959459975951156503141636882463348582761519125015123762550337539131218078129899130995704510105851326933601152138493867837700650566487340688727607601840650119526947470715628010607649185943416821412467052467928041174540442711323566345166136642718706634991448558053356128868922922522598127208345718379330237923781731099850593834011829215638900396372598451731533814402896001797022150815692668577384008959435875607733653185729109205192734855850541548422049027876396879902754234123183669411349974871999169848487140651509190410321510252219885657872318881273217058434102490647205407545141424167674629973201757023694825200274377295649495976952137530471815023496034564657429030643770545446673551611445887612320050378844334952675831409334792341558284429367004354891084454246057058886614326042799796120426930347723501135564991633834892248680930478531681004939325442538526214667323726777342609707942438760390719550196096938614285123942450830706843938649572570661918408767281169264150122536613227751320663228968247921905768647322274626454145883423888433977357736154185618709264645813328786567538194056501717732709198971434879641031322371724931336814530373812678281345230566012238669841532710542010839705052977775409645749673871436991945272357942056321302924069313948242565359052396361254459691060347380245398793580362978114845534421173561795039452802902265668944916796576449055477542820934311360091109913601203342645949659210368382158427370382870022370328586096684467095490915303691621279220292239896883953462192282829095687840079485750028407987595209447353975687655268119015301785033725372847321565687509173345938907446763274567084678369033381514061548251292388139939979864153533477159483368923303794467645963924339639643625433598027015712328200825385353903566302751918733977869364117316302823861108083988375764340783846268793888751616259452251793030650031460796826186903718792656529332269801594739731805476798815977114939175603313363269360054203593046192038767609682162256519536235412801026378037576148793965334302679037769999618939581213482383404235167490705728188621083809034955487206020415326194628147107659749448664919728554792011586961741332679327483317652815764951024425994403430456466354949586329353716700653046089047961901507546177540996386792725635609974631254103569130067044261399386100969146186592703920754158982511363174437235699734916974807661637881737506908790968552071106358253103561051765517168799216832828856077959165899834863875350763804573292675462065228518914835159274252135812987232411115339926383117647527334932751114692398835848878062117646931777942884796558238306725938344135964927148084140872898871442542880623769235342801117924848477738884347309560532897973018150947516140658980146373201913132641328236743895921377063597206395093967067370169836980638174856446047177496663200814742463023272216149799214952046728876428857344213540813818535357869790373855166697651366672144552167019141967731194023627170591468902972560114211182754750931300279608245238604126729486211138252412876214392327093527395877821144531995120559225224012586846599312931069123552339106560726467191882198775956977290822295147644727754099138133398012390473453913611188442124566613650781203648416882374941862567339623800619984796776522179672688163761665344615367292451856283870521516290385437911167089263124230542500690257661357135860261717918014102206922608935805503295217541281569528727421057302291984743427363549289964549325597340552506369673348355857576044636692592014483248122239024028444112697238471004733435340993453424271679080399597250430943857170314955511303307751767094348748226097059166286107148758820921124817736826052916092481700569872217369607169401142125310799003259103610729633151522570674598258870105376879562192562100838538925478053782592435110899022010387517753912103493114779709942530903012969794430903428406739326278728656441105246075009006649429596273511285572351106020695055269273563390110710378975255524684269331556950552602741620310056882611141079045413761716892748522854799965143771312170805030798077100947672916812994789560342007687710354633498782422163802140715524174460702503931351843938835797362696188747123345610504633504584778726990708707292347327604422648152911863939073448459887379998413317196192289655251915455341685136587858657047496672593866995865927985634294500686524443328334366063515214574474962701274143063232302174977288782040607732824106568873083289567017865257581780918514240245820627270668711138558729532736956598082795639707485871748935320923170224847997149350719521173317184333782360798075624082540561063832005530572938510588201673048689904364526769813694457053523618051498217755567312024962084282387927134778615130118293044797741881631775133297965148445177404371967472144853070800393039984409327426585250631224547010478341694761263005492298753659792005990189558700282589333988560813172660886973641099357021484146670472175455328141797976039948717713222152688921521630130272449818443849394571493038982215038364428623581226658327161117668287314179828250497973868361570158230417108989119543497242341460566985883514633545858230779541273739020893618363756819700767189657665016602549657384164445851245854302846181787148951213759129257328953598703371347317287849705881952449001873663537101626107543475787142280656963863685565881584516956187920981079966005662503073940490086697554069968267185836393142502468689390889741310049957404740137896073825803148450229286146133981314265745315935062335870387995497265342827403928085007360691677131602109252105040620766534170623167115257004660220241618343508847275766548030394367960306191814231024398827211402670275977994878050515821000459315944541877246979145756404437334445648765797850332362682029455261661927616099226969673756580908463767795451220303548161619806514862091830163684332305031283366472034484516015182568573440482487047853821620114100826412429606549450263561585322216406629823904330954171650249048178118022169391288338835487933291923429337460284206523074402461478538449404763105485628462171731053130044889317465175399758267963684173794662711920449759864425004972559082345879536968441048512678252058781726304395416773251774487782347438209724014686833523324040776170852397021139018137049618042467741372935721555445448531024386578511086512798442236625350889792013912566749736803593399951665099269496152303136954930800414527414539539897759729389359047399164202266201740460355472419725042552201317078700139752784590313005690181486099834078731390420729299355770218762317454617065694990906511131385614168978875278885752534902181979630736785470206418813277066075030344265479856077407213133738448712106035206853866695231836540375958080233413979278231327135631031910611771600432783145263168599800142027620509065984957487896717538005216386262256994327792493734738348679464211090090090931599466267041142145860540099112458499160649068247468363455646970830434031346146396705030754393120298041760334309154134076518178449733520526550612810489786498581453198415328893629210109708137571095537403370026859541817718280578841231382165467814807709097235479822170229813914082275400159288319292173912605421368302457705205335157400213847995886175224847668521115334704084613282485868726272303575560606321387696905155713154830540490722945459939388314953211807909085286634058129829107528764981141344919090692521676319525157010430280726034345626639624402222418659093621093317778120599852440340516156454295012558042190078165500564705187360163124211222196005790006542293089079403508683134282543979739086746138235967758461691936140713740488360885468382216585769324760333172229349366877016129119811235139479574158355038563352034313368958431086787608627223101719532770338157600127725798632678399699494796533825348228205295431263141741347901014759682556541758800328226167064349071909161892356209505673853956143441068075520148741850892513781430718871537875615759532167045997431501678721725088238803371744268733635477816170812702809697976620562800321167526458152470674197275119502096342248064593942415964373951272247026249825787635955753075267101800245123171445176567412659930552585648846537477544045181851289578442094462707936959124350831910425577664843761888966281234513393865512277278003789585677057102157031126540430920268792032607250042851475257535794348868575465650300162587623474887526982283850898302985733724899406460563816345321164598603062353692529963668104539001902141696945742866997125859417295034237322941589563263378361005572006079634924570286594473745053133694229710875625820486390541718965921292301275134056976231922143239148956110751553495784294978389722180919266788143488746610285759728506048066882839033975485240210463159044016622519774573784653846241569846986874429564449082625006198851026772381416341681783414828646507676065417450127016458726712372475144433589440288249546707179440559521420695572155278214151143703698622348448361117290176079236348043350200716145086184320918628504636597870961110639363823711336686375312736350943118861549516656822784444611120800948045838673136190191732147072812879027644336464683505172254899968936898647118326670645364812740064626538310625331613161160784588356552158926859976825959618025947133433939576094651393909001808920767564560393095018884108033792159749706729655611477980090636602441290506830911387378225969120826801209282781745592490873989052876612222476812113880579976347437270953285936065785367060991337037075799020047526815274804600634208031208150601170467266291899122204554844607795789608280262682654994173702975759746974960769097384342777432432229093147765935153004306336726822417886865872987758443216520759261677966310497362376667263054233319992304568867416096639037165319256337994260029672629695497359731077104592446710230901464899166629010694145020339841978030419357954265508789446496513117075838623675488263600449616361047260258939329284239775948251470035691099392288185523417618940430957106809640219955555182919446491759960766998577959113679784573266034834148728373761046344104864609060440221330623103915275333109613373435258498625477127982425724259740743699864886726320049771504905202693927360456527396453938103045184359384027640599470138586132483658539650296356324888919209019242522570568158947383950233061238790372031130783985717685206585170105844759335140180466621758367368499103182739315275060775718180121283081472262289386802365870844640805346914496762244284211432815349910195341772661840746202505627264683819511777560558179534138072012859756782705937600682592007820728500182795051759976562740387666904978081710940378879082725237641660340709977073419346502212364149997017921764162379453314713800333843671940753586728736053032292844684614494311306281377535538107472430102874421981880949532884412882016921167227683179043170150181636617373860424674237706431386745108533123226264028517587784112669356115384837471468621624821053632908512502874176635679146631202961129459029318079213003152263072893250575833893843644812808747485711851069593117509861923088154278468448953163040242398952110393384250228773290403179148356186676459231123369101652075524074510233383803880020309891103878520067579920887054951865590269996183143778544936939981016329297594898919794834172596342205132357643307906814789684845102216700666778758697395026880148250057873451468796166969146117017109516376410458784729922601885544774731869314436330431717545030670142316759180301179933732712213035858683774911428069236209454500192884927526793746161615888982791816837305220227891146357855770787356507851115057242893561847531437470107989607886026723266318134412104316221009813809544737823101108000995441410156982915037353697465847159589413903971284008697674776649918904010752919243603604223120105398871936903682605733728667762398585380319926559802918801791275587059285689578577913397450444968476350869330267137892374527872800259606021169883408644223762945415336982980335903804500874799523087446425981284338326119165789522341604163406388547485236790418622869079623984940424028479294698972556994605794466894829355758438778346441077180445873728188136006359067782505519695152145024038929339815520126815594119712578937653876232626940140969233169538967198865220303086745015121698486905106238404385866949926149539038329332677841830239637074259200709202128660583830432760398123175769142389049750311207210153447947098960393135762497147896695644783800475086285940741211944031198213117386315595583022878578504429880309494911709839984417552571934169210497785717315110345285015496112173356563411901708144320710006329177410150525128480735691951321750003385593053473998110379046382051583085752184022994878414369321836631805709179308076345112130939492824927472016307975573051817658817931393038069958953146033937464136352209682424313208587357858782059729508787044327233257992433413065783460031842551225137769107841977128129793246372813079109070311762142408956698687574613274607201547507862976963169080741263019317935118854893487859043796312722602327996890779087138339384799791715374262897914585969723220718359263446775033631958364331714883974631044378143957333636120357376464103165321682698314744216063635887725416704653059951951008397289451687119697363226635560002997747020906053837779806721415019086822086742034519893365709706749096968036667492080357292194294560944331823796554482644886272462915660414322875089932656252411791754659083959645602652544907472138240536142756646667948605205447729636172532513531210020315714519426113505359477277037115388119595325486171454040859610640245160029884808948060776517537116099583451106578584452507233411414561735685538528126288035303636783413160042550939770079902009671790746378025450915455118770738688842546572161963076662834397238337602708130994317210836185908810769644696438685901917662205124436773824532614591635311044058258168629811772020080808168274974448946580103171183510966983246788953763216883207579562186783975257784790977738472662785852840175047314662126176632601003829308755943240678756801959003084602378984173168272110636599070564840838605092178310202786185202976398197059389264592739057960292056434113651259837449441376023901805274621893611070768204375000235594623791181796881233716550751002140771758277813454061892960786348411791758829143885502348128681845205476836168825137341767956402809518425392126369129169282606757293441038642798023506812903457305496120966790767155823197318910533508378812663114579247023266387976492900534250206164615242857741579459084826349437966744163959206339289182443048938118593531085694456674046043516311009527274063487209107464085122096680674579356802163072539041992763474449589883417386286173801926506879575692125706530226359774545003733016722431337977855147257863948330362341138180225156058972680722719144958926588572570233086833465091464019808455835574748696048426497439426582946913732809198994710878934409687086937894915475226046505609180896202322097736169173392216811707934482376891399837732522283279892918022927871178066834200945760574033992479960577728368763150296359813909108545353995997132754823146891428298103273527101728887385599201175800261884746229160874619856870907969503881581744463857047493277402620900496900443651226019846334180749683623182317268288568490784979508952548643328064197814395661714736697729147333637663994684275566452647974598579147017463744162654781126928336792080398686308425319497979760559651877582085569287527774428337651607564320928265148819866911078588228266455357845806038027121414855368174597881155007994722195453230164428154286765644163237764319547969449593021642018623732144958006859431678073467362368260656749248567680924569383318853632136452407712651379852676098745506434248377513341806281175520838105778895114084006864730473999712538695044338559838485270891424255157700170909713920407582167161735979955363997789131965114420362243358495275085110858265337842342082327569075079277095764856948885807008028494481659474328464116550393616984245072513793333155515832798416500615697649802334355134551256822152936356771719365188503927925890379940806703515763906986445061450046785257960723165451530850724457570597183257294717744702439902777853300910470096627784459961852428535023357656221549547208476644981383464960411652449672109702905385746979888614731869290545717287308691868471776919603028537929003793456754068321390221692018162937929162990037306649476214175842081847462493399651006777408449509458651998233056757953709711957904686785798901263309560719075072467249939812840223836475358374696196279465948260043614317828814532196726025744711988951510229425631078965662327593228793458360626466111441524907468498365226231073183861185026985345241297918784458283588580021359252160906228240387614714680935577951476580413860059174541104156198114056700745193375727622469532199657396282249752292684398190366187433360189102089597566309955807514606129279187071582410830763467811565294612762618432418161834460755662392226736497655406296568993143873475544020602221274187229284105661553004386130951160817644990862226756561553031078968338766423378359228348107594511958063762736539758010653229832929392760178126814736445585665057565044200293927466234016144405472870856180979982381428073569272124791965219335589811421101661917403952155297080934169482214527909777479046568440568050337514352891331251044602309878508359341093376530563808171621886769928392324114997495113560980288192064388393531684526611647845162575628220517229266237172411632799310458947977331301561342361142399268805497764035173511884896028837672019398191826469936958571565031651132063524032391961326828143576148690772538974573344469877533957968054576065408702905288091332698880774761012189463341761740744832090157958110643112574287695804356512908086839462942566899314990943176924085744993877166397333959431954430262619779090076275803537038912779394435763658575088836561971411371079040697130501127306415907839581773461799035275426635384605381642615460691690845864294395391948081175573726977098894746209276816737463582754407344362867833972632437757282557130909573837748707207314092389124788658249338441594118414303689332852145311362054428201343646525192127039988418847919295329474693879841989866163252514817639201641159752767034526322879886468482579596846247933732891041914180665502069369761633039204006202984461988051058346001722554343820671865143362484416268574463494798394124889159795127273642859140780282244363741666510300371082064772681251321482583925802287956531842285395676897417370951703876150554956180894573529270849948966960298932607663033241288045677144991895141408657567742276845592046171186763101795400565176635929351192377402524785596324881767962560567051323336737302903024195418078382621899245644798120144482698706059251537605600823261570281095355420142226242403928986565576293355429385023750277809162494082518887751722559762956400737164238595382511417325647104760761941829978021736394661808535915752950549562404645574222263740843658324973752498759843459030740795254542897097975431690080507431706490722641981888584384869442626053886173142502230630767687895625351039099589944185626251583811363624116480021197491151117400083809805071153122954434345074543508847783933680829760506366445535578361666018000358442265672188416660112776686738971550733997659775089210733531622878794482063696277220447775400625604907798942834988101855761694777049556527238303254557015501920626988750498270861474436973956101964668831414645622691417509595280289822146452895533337610057315336316981013377079570846597151064019959372881891976422757972091555929838577941864182588768990395771800709812956756257709722629814401564657005220289482598996434241214727591035902865510583340064259643945412220921822151764090043491184876216878903069098069510202519627242740655620624600305686569992457166477522134764787249558453774266339083064806743275515553866987637847836155050690053284124120712596204233391089413907959173585051601634220865915718450389776053170957217882770652139650883876816245484196028824021277818294114945349120107292901684374045821568022930034171979428644871830701331563290760962532465715417720111528566032663449232935725599607158171803742830437977790107202011382504498211743144958249632183567068006319264009377156611135504942308866518676030541607732339458945050301640513957619301060883745516806771933917178931404191275775136514337866672403830524193030623867862296893198560111598747429718460124145964277907832751296976512573529002205741985699453652267773310124451687887562551811245177559224104342103977067466199921818816647416459349854765209974013091546827539792672741297864061712248752842801620813268912385989889823063662036421515846155650476569227347491417238071343486409175955045476159814302825208066382045572651548572999925527814740684238229671417911172430832662882083747587294830306198228584521090665404888276590642319002187006817465582277344481587434955015029470493615321604540532491984437421208919735518665596631231519698350428760791273341275504605198357919895641229621441687838673187886717331046079224254309566787339606254589210520470991243269510854639878566822238617044121362937267115688856286940616153065270924148899650877070893908335335853409196888183845250567667657297944207481765003385557413401529362054291725676789300855358385168256541641009213740362108392318481772303698206560725421055138076135862983925462395303442050395410768861860321420238339845311882038146228093207753244718962811355847198506488702003361220979258211208795990390740175614040574956571627315429859783470397935220378257378692252692917608377947717267887738028847932911028928984701156282179995717218174803499643016086011696670924625697319072583508279938542594845132782490703492391061147383607692924268081498342627044617341984775072941930803208171254367662949783945523547152329574159222241612557579358356088427662303713156868941008348497782888360056891891025407003911132497545971897688325804878423958712197622935022790509767627518783109722344211319116269667060922390348122790725161497022713317955338984943443643927757634577249256171621165669908501773680835331505455353039914203475956333818820486995330828658101245831621279454627149602765714269282933352108072989617780849777161396786982977640281949332248351823521513289541010946004222618282010570240119319069515778031122400958120204243432351371639644826575547019264845756939859586688885420784815276405262591760360156323205568909466752822607317586124171183319941425587754843729128666315274642212606725703989746194696289534519495553075464234811680005702508378094509059759471067825568475940544478553290406388765076367187879259731241262001933891203452146000637558248756208398421326673468918633942181734674919001722915822094965632018501624596603256861232773479995320260532997542090138422715022413573769802024118999670912042164086941782709626954982214992673928889516773353671697679387730437981966116681697060195379929957591908244575770759295804122252720620939093402438340438367024155317125227811616504841062082653132244721789908154811100915447423729442357331755632966725515187745684282869860993825632440660203860051093696782698582246767523443332309376150652656683534595781516696199166965092072252261146540110081136788530988452397607258189333479086740344325769250136358449037440243749618586315862631491774198561850456096918334548842951090148468718965387296114261991950056189979452866420712179973834789515253325711065145932352355765276327234636244623263309796247274719609951776737160913413064785333834350945202536273028628685866181895764835728067096150893940229398767214251400229739327501492601235788002213391363031138570277187427982064576968179566025914357251431953083443202553203598557672911225230506884936954392216915955081948329715960779896204078059218011994223029947207633015460050243791859370817546393788260975640889017288186702388225696068029980566872180375467918189583840165483639292076362938802673359781897388041143892741359890571445376567604150789288080165631831410931482945613319789462707447266925077509453690158200999639492266654894643366133567134079238162236481894112623077895395325377977211016700929466935268559852258662881008136938412226043380068848176263986200473492095825224642060512965697557292953095193139139418746320086018077021275471035039942627585029177554233289160237834768806902320434078865110800533492417967052855133687338636081405584353277680134199106512451018605940870653724839137369271789799989217243961093153333235398561088170456535611083176135457854954575756525484915750762030853261489013164231423931875625756609187509798352069973867116179484815468457117861102506248518911803071949051915118595660059019836444426895840164767438608422890324361006871884383283907520556936900038190562103757583860696940418979482501498764381254047888664929526133170001920186877293085601894624804581368797740724550581591470490958001284958219420982364065470837477513137646157326798879539238327658005606642478844149927200294209260421671640989989305678736675084813508788353167444782714140158498898369413359693340020187095067944863157514417215357283041122681491526194386302818852889219617859005473103553390069814555724850208554398926572488842726475962121140518737505131901359238903667122809634108465666092351253078917881871127838251736445309430936614028070450462359335882447619710099904378820878506168144842574832032296974098487194203047019304540941714611213370926683942131376688026099085500404473913298563990659458263703620335778865003295697118985817948318055242043871338851352021821756669435219228587386321241378239204478356541057703796202589853863376950730058845303930472752571892808864197252594868468614199270151134268847713642024661436977412598733707752482191823970512354306671161101413817281433486256321849179926297554421587923179079061665501418585348017268142846698845967643029963800236608854902736297939600782622527640084247423998441737101333935369278576012249895032684619284060249911527512247401790980141463795097243062155262516596426520316274602672221842119343315248906202315175323698879985885219431036907214603308564321556774169806335821812804076222516324764364132361669440595664174575233758270631898642448186717544955888614225039358852326660377347764001401885993942374028336565791598821680477157554892846812714294918440839506042418297401255537598220421900143700750934079141882032125076402715830817586781294620745122685828110126021310681720792354598629439741448212575473492008329840185877911853175817685207907199811180245259373278082928664403259440912912297860943638755025039778653854506798047970749934451383335794351206299649753569769299495808592805929344852148617540241229204388667910877137593539169973279618858229191824825337197716600347996859411527111413248436613752377468882228720557211327668901443268551042246843519094712941475368718017562417788494876766724355809975566558346208325036049460209769345569171141315085747252127250760999911474392517243079582152779810043543950605052321918708579949464643886911899043144078116134841824714432157838702886485889663216542927970275743510666696346869483079512444333725114293627781068551857969751069702340963465690617535185210033806179455314741296510500328083337725214874470055501840972765751937867057620979863734075055281464710197472556378116448641719326493802674219379798347202700015365401739411117227169437039990771222832589677945583602632567251031472038612809557556619148417785438828581510906293062856388527533904322001365187652237589711402398667270569916377445300490748058893684632465963809999130015055510109895201715553285497116215812141772326162948175657715912151885309434510245911122341960609719048348372177916894050434440716321655176259272946554943224693692274466035836192691751512394214496715081409447386936428407054205819102484514019687338861264847008457997713704089569834368269204777745870622519041535886497130366443567558875412788542643664197759785731907563053941885896005145334282521062479676680202279684143468894478454223851315766612856267462718474547316505550053148977483145428456466898767068052945189996717644556203900303534847816887150723388045408974088828079969949000337256685679089953893108705662176773402117089183834460221153461097110661961064183845257868033336671167491005490890967098259378634767355999205160897610930677080318542237072791591816702375488000509105122665986727689448328563684145544071259162211833307688415043956696650128359922478482194514656123595683801860525013222116288826215562947386893534567866802445776280882341983090648889984543219017721595291409945655146924925546567705632744279198301656058567571535249478060076214493497320511643088851788753224737163128430352331600354889343756984443491170912288232344626645925755934395335692506487483475713872756366340466594572882394308739458267597246742357428150413717646084431675507192473817323598851839490200421048673278190647905312105665711603785647259920450130127990657852792321924832734100621168054320359666251116000349453251057694975716392731116055234279114903860067845485671738859947276524576192706334211860501059777555177646338730654170098378523920716311244642472739805980484444779081460476022409052935286028780399350946532881830857964876235321157677733367914959441458097757266587860860387707925682567930685361073771016586813798995206469922727047696100675850527835129068551480097904983804692541003938554182570413853003340284882479794660172142916384635229785742639292128539916982856413443413793162573074398767447935416669612389521020828496042318890226747447931778307215293086956217271050145709373964579680657425869193052271541456126299286581325338977300090787311710841254615830041726862464438897107970050929691162865296592675298568337149176719532370636452832842080901342819638761385445160910699155692715554404634281895789161952834567189942378763679604514803994335967098608048718405156117794463951875068919769168362242629042275114326930512040149347514575132544152655144832892710570071181124554129978268412436061980490733305920636388314698422295829590545014284368848960424661209323609747319337637064608817314368599357638866755937610497900665284084166229109293779023034864353504406566359596116091485239405464973942500234042700539670026944483314062581510351612703940528538764299359063895047403369735320698563127651851405315121318205890794258908585253773456829902276748410531118818204635582742145017646775590890437392550646607559276489093046018065255684997517447745302864274007181179896874741087651889011193682736164110360043539213320198099736152129876133146067827740744752808765323500144610571942223117638992805575624955440715619241932934178616320272494796463430896644982062474668352209261053115614210223988450329558220441750358202414120425922561847648153818831678093653932357508828091793719997374817252152816216036028787484389794951572259283649164436928049209576527540615622695430722305926589333616906132767001973773230752265961001306634093222631978007347624071966333039793124849913967978404991212543931189689912855531957864878647194842038859963914415580419316227868810520841593653856096980924446965655157236550537736471625587945994659719219300289552685565995555783988577597643004906388971094452909838498129255546714967715916540743450603595079523626871303053194732979457588489034382785091192874886796226255259861252668754752883606517677334273067435518389082047114722569417074570987690369461553477505845612834741703842750117451576921688094933009346495428513576898073824412118580007568684684604613815837150263646154113775872187454219340462741566867980442742146911626038065726702730610981086203381931803258001826600107518943698382197099355453099657152781902958921962780828738640070452203705739301741490921311979781666307650820101830111757850698275040642150975948960190427561840011114753986916075913082552274987589923970496006069859014985656081284315100283524945978905463868108595496057069403759378633326971940581368792810688822478249484804568802615152387521290612842950085731796166889400233868047568324877462063051301206449058153101494781169829383540677671035755565837059922766721186288271450921987235200774784571709837994620157633653836346062305609250535997506481552381739560655754351558922126111388963196702178025544417804616464566516455770054903438763113570197366705531569846999486971294783439821891827391143764782315798509103548517112197241743483367922152536636944419552034975055643464666678688085782693125893330209385563905631184244049043485597867451135231565848244141844517043822736919767789464981839606024757750738754445740373530694197816553332614340908544835095500444267335148497141687110946120192293307037313778392767218493143293043468435227071484602685559174519244768799310362841789861875659864843101828827804472052557457623667496542462915856807066041916653153600929389749933535049797582168037399092116141327369371604971826809611273190289682483285908589011964641351879792829701884129509108667984170543483221008684133608543251867557872076273768493769364467281657049904331116579882840850475643729096897046796888703228399778863706997003350905725477663788680257970320272961103434339050048997690015329006609006225311134510664902201113475391876768943722221926381180674639865519588879963749813304360457278481252701661686502031041154759978523719526116468793759487652904018389589231750738492183255125948841211472615970250231126102100822829182972220434885070968215285918008158797130129687055622750568258568218048390994145854933937117991640522684383891033275535016789969662586341437214548829793978265003921783296999272170496107782077366026492062050908996520986840636316437083355064217022035708378311962445082108888833757053370895206891483908286897520909659131908815935106404152254864049558623150017528285086857326361813242404007879245708993206871999984310150862704720900539795083057639099230112971437952125682893883669761985492437109341784770499777537682619738655086116096232672232894260377710692214446192320902088625252118250036510445025092568808537413489853942720545628702371935072937724963382121755588428845864447732784341917614306177613929409921769173830349395320762754310617538323125035145474925123371364475648539297360195909104417706108104684523337638244427075216051101245357885991907887517472526541107840980764362505370579003110544360134025686698565594241873930869751687171784325948588729905967835858369104743941429319689286817894591792126287896730457463742553664719683856008655796637124617959670407975236974729193815423239902516362844836558802479890184634586992818807090419509872981623065624841341396835954493071351792815221681234430094789376805039129678512706051552344809204537342844768530292882468100160676287611686769423562402862578628607963458204478146055320431989577774626201521898094010494004412073612475496462646141144465799141366754409283491328516995702910683770661660816386278479098428135875594609663375122990756927523815046345525276212038296516690522617136526184933272332896739054824709753570453259477527865639138375911797743523419225092358996844350729910688204349255897185508360334719192710328907346961551578268047550810364235896997671373018386833151541629671954565460993027545995608082057524879201880209634218063207097211739861167525811011665670926014767197920649684106937232701947384885355428467435244431736447057909545640504477426145874355405506039142876145468449981529573477319988949906743462762200170292638419102350813465116030450067877850395785848260758434529297690162101118773901420343351117502054513140989846279517928793262392972373904168400947781766950339634063473850540415907425066056001071939908285870664317202320055226846265123003544451768983701517290976013463207347292972549534240060381125152999457618390409812628922673802406586545376469744720400144096303270767311255452429432173455565341027545813626598887854565305043693482002994078216526676779189588954028778426861402228730031646226737987333474970893706980287986330128014077296487173442396505595869970879842605569576726737715579362530916035740841009023658931070657499075673341236493156736841555111218205732990534043247775583273927876222246393251559077192843276600688427665344178449465235957696183062098409627327159426077668522897407815507702175059856615951277496067877610163674530054250975439258635464152118272365496899103395631554818679412228181415889882426879389419759128037001187318806549183298908418903781716626173964252551880605596491951140506933383605729420872330770742586916160341559404743396149295170264501944360980003595277939815025891561867877232874944665439907640489599261150165347012897996321747063270448284716536502615301638839711431103443657400406992079001240889957746739084273986767979208792593236966996287835137324051120124572566039240465672768469155985898306700590217967955817759599112729675067479999760342867152797724239093800405426301168977606896920147403857777660121271874900585733678836959366911587762711681693549770714405822219532603250236671811472071607501498209902916094398011449036166159945442268056176376633834373494999666360924439155192548444767524554791753658679125311744407239460013324199240487893208286963273205111690092388081922008473745842890810874479554170728494321595366151803526943191181098330110024262668266036352366068914946142101746622807897006214708999591348733716079586251123490023299252328510657789962197942544474244846804723654046191858563487699112899404198760366546967153450219626594401578702586895639676836776304277416669372985480948476410745812548910740565584866615197664264096155289999678396560592584831784042208784417007426775837708792436840941248893397170416469848126906779651033035392612012415802885300642019574837089299417335031141925107160207174124352820240927340940299748720893054854520301633108788878193602825538270159416217767616178065159924906124970498713684225402573375118200796124020266385063121166524757782946525975601321076288579490573091057940279649132608419119512918338176262072213718029672223144670100231821446125624210017515818696778369352871947973758714727730515256495691794776501756324936628267814932351370892575840989141558521421123328967697142624453043800338976818731016981296887915448088362921322470291709491808305783647444193141491565694585874324876047423571369580240731675199221513973680416576000308129712297143535462552093557923405787992742960180242402318969269135261811512201982429222841789374547989290448350655096550411124606034336419103346257635000982802920260260219194904023732853336771967435286478436805605414652905103664234577500084429741278892263932698927179228518660038128734739898808179747995816034689738301632842336380423395017796789646407388768008161182098438572397484222027991519261225702588927308235254692344398063869069631129138495736717879025991145248445065542838387583417827615363641913966558583590128812156592402085666879415051529752754912086821820752033766459833793490534793718688006878698193074704770799481435675121113399778261369095544117829259211155232231933387727375203095718337925200827285482834138484009699837869510696909683979474438385226563305444279980528754826485838471000320119979192816113441535186395275722899651893388113165948079243734506305814662003498831447824868023949461239496756367900479829860367835952260649719071539568619189687362839655877088297791210524687561803909914069482131068469609956265726305094621904249762394878358745811968257989803284596613992631597343192410431547168476167039781929117969577199799422571679396834519544888945180001456636693442967477913646930717636740622074626465070491270873178673174893997195779655514132697496499732757000037948607996943645840994633926610719983394985705463182267648985780065998136058498730325906366098251594143247575355110139325533281946995509257017929754069501939603225232224677732430765232184729490976327160170056316800516109677321391996807766464595978025101754588816231708350077110790661962260210738204752930659239294805799679710073004919802157026372388493162118722544201940558294668224750491629680391983066296731736158263091023706491781145729637846954735684377840671697399691207148316582795036335068168405676542158506490240602633207218033199721415996010225994796678910721893786498531854653186876060009954903777188070726386674620606144074446593265603377676227154887481349949303851492398760116096736537428321251367531805785152650902818791373780237475467529127617195119202198357644624161893270979001091931495430103725365481691366388119604961197157736450058870731431715817660763177608731705575588151445814566847513790572054294129457132998135969905659865098464993223177932860217560490221835571702064819155318813435509459315870157328879518879301498608896169754974650509136919811164807180618684301839878121024868640130838923119470568774183032596340605836372878537968589361883112160731691832161139113743474636855642333957061931821361090617092772657147966695066766453613888350075274063113161740615647890458332547696021477974881929309117229939427140091999793474976332138959578646349626002329207942639452506612681361120817413123817910364205150549329314357870438773708952406264579983051705923338612992739503454277598404551656793602658095631368639972739572831141132116410543508270151059091660477094296268190558829534051547512959313348230365758989222426355107864686629597144134768851556683459456177275921183899253945648481448886727132050979077330600653631112596604448490255273804741582149453618370923989285718400856932447974351319193429400175470363149718240035443549770835936819782532138996364204733047869515478501803723889128336784521789871890130174356895589061946938533859891768170136701833846721798397651182953182673664372205101676683274214287810986742087237188286836472512117406694711185974604624678185615528819145290835364323933911063546580089643001226521486091171426428212559374732632986867068132682210100379419030101658082935062566563124986410747379448761859149998739959666757399018031657158698051392058497409363058574615266383236009388275322135784901360063119774782529185696752008124162592039973439528452436199318718581598023809854121592697884690834212274174774802552089547695206922831530603766849653283259170774950036149381529577297479525826039447190464404463879796244449675652580194230390742068529787199844778533275873821143969747416035435096069499287418923708425422131944550116977145164761420606388501079404693128164416079264073084046527523501345128102083447581377589668938022522324820566483184299316429671796609267330181674133414302367448134926360747517869789469336722703564003977940309229315842132490213635892248373110649238568329754282362333723012410386697954180199060952045311899943456403681277955186196331414320560355250599541633274642908922852043970696693938318648423745522278982774789792285189281995706200431561960014775110307051807998253972639014207111815785732099013278964336402861665867670344746616089181776916804989628443555095208947732420056289785939986348326733112286901013329434465456599417226619409504931322291944222027586265397719250653404731859868938794309032008104707558411043109116888348354656559690103942795048082251805519154259469759589329838901521501092060410620786664850478519275541002389687015011341158597356867874739128371707765998301020637508112488409734394826868506598510013355734196936246858359459958257733152761007231081096382743882827077818255401227579103522420192589709417490859878637732409661521438096125428393735638181770651966623288577073614778301394083167360544001255220218911024680468482152602491410582270241412755249676718532576239939692819561589996801761089194430727799616193189899938771950619533399853918554279931396355436653293520101723894283770428028361007992364722956993259368053293895814238050875789604020355184587036432004541702721721604417672559062196390918796207217514552095944804841807068638368259488871175135573882389609607652500166906128015709084403300414497348320374558107154591574575756295717744621876981053409820516472038032148664628461691146515600643643716029566751753275511915763681173055646031109591910081681126433141316830251437916981854929822564870577214841191328576811947486942493590809178060641249358295952010282707586845001148637544801252940920096300616989647631578622836782545760292717888165867872930935043715819140514712073838286040076132220582782359807071955960371413299803097428842313634670474562961348083463411022363673993888093624309008819421416828927026059982848596765042234077845815679151198053005724563261456123579008659415314121216666174601218744832339062970510238386211312708188129003532425309442021391016337354172180115237119330502006266948277665467892685659000751251251762502032929604482652248431543145680783380231938854838987650135484266345632512861959341164083303695437437431228484787324773420921787799081010149556378410321600147174918402452745481076735807960424968724189668736503858471613367744791332501281399968652932271868270072152689413734040488937680178180664556808542057897484990756779630727618349177884872912697029303084618847353808601444533559586503760463448312195014881132075753966309796317840845599032346318793923833335189636773894540355912037505858281700115208938005704382676495749961331882699184884596738957425044262860746102513310937060521001986075828664890475516996343673179560226997014441771790982049046768431895423297279995928148442427830984549168878065623900702721606258461955384048598124676630012138849152846491222363336938568577402540201759001579493398067445767389246758973264515334122006299516376766607730178057032443655210572603435467144374254472533941157973695264290230575376329124594789387391138825494913263032295910635620738220939186297594468854683327835729545596701663701427710840262601081834362696711741343005876797186193514379787481591769800239108561116233266812665000386832486608757025026726462842082343733369576580746652714197310943505982135576863634184562916915674179077273948100084663200282744263994021354259698000725400407647961128946139419853921807516193073894133012280885302979014672329106175513305203261549561172984062124866272051285660526734914991369686211937091622552003650065404976980770699514547255403850799367060625656146814314624331971527034556936396025997546208104480621042451361194520895114278735767079345718894212352692479181186636402636025733881452137348517742236312520574175853878383235775079257682293229748396378345115120464289255276385296341482499690714718230829787344385381469559327014518173590355765848293242066635592238119603750288228006343680679432230106078694708944216274592414754023677256277663058520378728921482562517581645735963219881316284234812454964887755430995474285341087622765566504418754606708885055648535107748511598355995435462026223169331456237750933519802378610944485448088075967765694677329134585089429884231861360487297579572674008360994931780131678529589294333534523389574849465755824738621322374220577202917367901903180656100667641532973127956943633793443543154945698571178971121459414179957768829300295093669391889762476731667577497031942622492915642100210891617685889856074903658541737788693135039677735328822588582372325304865167056213898014190543510077734607755804885280267165416635871131138049300697555197736600629117037226820836490893705827454690022320432217411889908447933315225179696336081284684004202802845698195242156607790100957449032556190637644278887009485566918720173242668766516314874129551029208956420054832701653387133721382509653816764014776523622803270748400206932946667424455118886345578607432542159136909578439265654624324135954482009504323219020653826059681196412498870881939600549297238783281242895631225007469792135445160339395840388821266833523202102697484034455744845731889950453447381903149747638952962527347809710000661378166429661566527877928725042213024032285444065877241575391627933209365391359089569359866124117577496386373555989434892520669664850596335863358042231151919576500299229302583101807765954490133596903436350959020069286547048453032873010042082333738766596520812659663016830416254667347433269661828931934032753124165808176309157134540619246242316890911541567710926690961043154310776824401620729665592416963248414174760756745053473952436457130584606612516279366335934282175721729185551912119602269410060397583458597055133109433266749927572644584428550221490669648997656852961261680451989653809879239163805460604690245312437707966738384573726838955180997162905959849561105665873030956557055506444176068583574036062830877422787802160638647259664092337515090617044385015356066843277518296637449272344176935371399818042024265591316850474597795490739878024635192174433852220147835352390905518819174474575272702277549394337578658800962242607905009556311089876782323594143679900286464277915230472714797214253762801380754441137917543966860263251952132794151507827259235532615601939425791749089204065386149394042891128217431005154200329928269964830428248614257944471823001257925290091051200258259789131462286666580708400648438054909621992758565789136322705028752757977486163345098501306701074497594508385486040916902168826816688228575888533687613689451504761249441601694442470036928687369623753786237133110837016072568345377014346356267845960952337827147673239082419257368205949088393076337809220893375480653455490486977111108144958740788192712447992233953847975287545107921628352848183821837886565110648896629969043683620575800210008938947861032855753446223805776995187281393149861669666267722836287738860754095544814513501894878646251759407946068916516051087371975444343141014550645038363853821181773883020699502565161450404562105603590064645498646999658256583077610764375107033878139893343858501349277915985966874418392849420495633344535643707155321234948299240452391298802918919135793300578596289258799300232193225795956589502826891109039561182718940577359401551903618109684924518669578041927368335273094368432735057565294603671223444611968367526958084840895981007419685732983806401542625452912925291235380694657369001809616872000811409821178236388072099011898179979831895701588863490637270781281436258328135593936892572893912268580080183897486959889665448045434726951379763718384750509953185886549134342804783531625512165806857092987037282155724672620148439561236994985017867914270488856285648957463749897543204318694064638591933146715089897072077432580440878849688186957290612860228811100745628126279674563055097454946796515399214975436421453606329491014965121705531562680202804790261034277626861587357140425784528351614715671276414595252886575630863934846797971786956363548676008311831397723853643573353148953608421828010308892870947674790593906262132290076594558742539091413472855529284557587284870850226392933524953815141630326187884770783683062201809738263274631388740153743815678059052445330337391273489306531483327799669887553934192340784181480029980575874826829820141654110378716400903944773600612108547047639296443501881863306720784618233636305445370707083227362645696557088629942285498958610452787020801674790105776289029973316503588555086408405070914372870294042824146319605411333455825132142861517951747476446526952393804664116669679797633572086470200623779887340227559139339359027081768619387460170090932408830593607430162284780780302276606335759875661568855046274162656857992229876630116805640174621243427551156815286599585104963608451494929124369365153365830870336802174901359086899402822206474484656656251751906537356313332105062924408132299436213894998439875013840433260348743377902116328848948789708928213513821454442188073701495241019334968388414195245573370380959447422579036107135288192210963563355256484591331465405973684820999266385806376395947997586627902311043298456395855040058117716935212836348365852666507031897413678109743392813828451124179061147492613536459652408550769227432452679440322047649012320766363659270349539935892898499865493949064039730688734089484043831636266893512490140459194756857267151309716225742956466591189633038969427656711170417718099839275040953232131896907565853072820056032321623592360891822682704164691492538385993387103233118807679602120531072005306621320447883459385423089490497308048169063300657811140290623989265674456610569980093716026977965262722090057778244323757790184919661912297673429058614918530005994310679060474266418347101166763857592316278873481713028739474110121793309347708678489534445841385354607292145234130713909395616642628084338289938598512510406457997105663414942766866287348661068255036714972246962986828233478628236763229240368712167738394716382029010342722426408463915637514830394481136635608732653492943148869036461929042729884423376009065151662781222809962002975804780218166906006548640738698948419031298642605661817280886762776561835897712396071325689412577478208582536679216071839567024039181115242315383368519016468046220494765038978716858417592746250252543097824363512224987785414267208330938965277499857488521763416833926834883480711902015613984801701282584447270118539614025780819079703897882757085869595414694641905498275227190546023997176246678416711720214530013694097867903187586770284131396683587005715101717880202588274504566095232939380520848910520800707472772002562010396492041956373867301985819228029251512049427052602997279723978832024983546048860064063938727322346428816690082232887232249603328946329210749308475892561269296907913649727825008428170381797570913318818159847721073355765858845287428891011049758449585696433442594618666099818825809996778776911736814889862467822303417123193420996057580909974533649102505632626133825427718514007445326780583281419640338733976449488023585581311518254039839316454394673231780518208871416818617383020362998587730858472026189323004467030316121966715262142977700678636251172232153754619983466239870328816321426507188944610414850002235130650753436940152005625999541279242112429737514438288596634510094253079872958230393577485759920048601981028989894436448983987641928265841494947633162687870516085564020736458935816328322320620324415978467469573172244882803557544001074492967130813908628288890035549045008161508989173943489840631586952702457990015020662790334880173874703862811443327934861978353844243293932810044795722242699697707578890115005080836297981598118189358571050859148809085479228918044254014619587059889491920632257127291030056960737751440585835052099658744359298525304422195544731190297542240844511331412502654867948790706732796125822185967023735052159281283256734838863923657189792151155180457073862821905121681239145131276767687009041959960711442946044815441623198540652558044027737134435430065502178786887289346216579479387339187603825012567261552787843700698609897370414328988428837012581017053406258005284204128382644205669448456063405559854285739068924836799573817363532383723486261764287279321381495576531528407150633968505239957331464243193504706621575822188061950865318513046799267608684295991355803390243987751798872680739799297274707790480182749482066927084916992205080350486975208646929895487790527579382805693242659517529792799795592296393089756940228305406896267305625472619101952269916182010413747329381198805749623793964228060808317459451101025217399989881645533659282620770225764311292952151434314100058019456769676078920850079927257079785203114256148322783645312472976029198070318075168076819034894939846229176658078913502484836780423384751421889720575944462210541089246452539101956637634186231812335036277446752501483267802486979470230725451679818755852704272929688809971300852522815633193579874253476564832482473541360079207373338005729861060430007782004807341710907221078035539928467287310404343441030015685943570793885923870938232711680045179130906360545382052356024330941010935246044098946699189136009022338460890034276512387651037607351359820165150216151615203921429090333993115708147881302461988731851272189450530504261969534596799962112801209299822600430166556399068699037904630051496033147024554852296910641511793027757050954758927224938749747271550720335391735931432947275211317329246766973003454398927421619453829108286392979057071681796167940859418281973451443677909697011767212891119568745235768464637734024452035290884926183228839318766126445540458858874164115549341107424872461656910275277198803390890747345261269353575623197216549262566678149040364294464146357232434641299049933493272915221024063444625623685877730660427986349384781680979905302741201047069222975544253255498867087969025304623123692978472846173227670726765822804043557375269715697249813903316524339776881583334014348840748552578148164567712246463684757373620283240675050496837122589477041491034204555908723544953797769024161492989661465964180917696331932851258440175081460893612231884689984878386956442714161151435912690495577554952956861104400245780599020048626353823158836527138930203723304915092188814239187246251786243262101347924321789719782724961227378665183124015155350589526546398478164280673973534666856154063183511503431905684903709746204909613896918431179023978760863937803087848203185440354215913522528427555856056145590986317572412338358167834236501605421639016661170318455374596835245713964882356785891024392982909408933087474109675885759687056806340730278773122795391088436303233145291982767349406204463293104207533051468821208806083471043044386391416904718641736236158675901344084536480951961443585352030581430103219243932836757356304629423678095894546024387104280924952920308467423535597121332589962853517112105977743060251893178153662035038332576394227302759033268182611711817703837323766211216085623128428688279373818315860008102395958393176486472863393117032653802356537953013757700120512908321146927674729708868809988225633819887633197583302391116143517772562779319610965771496329661215928850850608971465628329943992154531058917563208635217292573025972335369614673208362535903233068514532922035541451336108327245072157542597030597291980499113906961523882203903836954874936884332031323423997493019106465828868591275659653212206309029163241341318132933525123361776087866016349701792257144646058734841038434277665878804740239457911556931760796058611959594471746534608606027277125859072074630029527912181797902450567010137144254940096297133669611489166345765802864418394025361026719564945084313275327448433269735974444176724806154226963395083315173415939606945645021565542395325413110328709098955803225123227574021061483828755925767092407694723385920241473331321455887012965212393313519142528326214395030679476484382440847963985176771755249595645630881272649905272935479775960484889335547629763590289880999720578754372990076912255882299531415929658628279952662283026137507000828852937048480167869907852163018804214487615955540705898925438689617432687083342881107139419808008944434883390631640643098049010287577986047553264661246150264412604374579535095712337929169322353117979627251830431284693407200617043889864843186261108045512312552699872959185029218263298799420066362520420443282659072085106006125184471309101750436131978641536789158535930190164177810341373132524129709527006895507519925785749479832906622298078461495477599739655478612107108999478180863054095924496306831551754340571718760878510988747700252548665566140835837629146732427315494090408297228000930567386548334889081814452845614512139473716286880507851281579817759253592408435068324244493874788789262559759599527858912346506904571502278170983754777403260911559693734517136036636863405690512244913488149608772207199216349830248509654362024815414096802919135562480518564930599289863675060933568547768985329095491020318707864839637667920354608818607508991375854483705550780693836363492802993239548111499069648308518578948540264066082310072601778652589655476950640831252933910574452565673833319891626795030692821538880588196298370242079809217151677425629578281171896968708255263493053337005760403992137608390982728025908655671717326288376560065050417936611844465798209956451768676952338687188142375849035411350805057161048835777337377614509239624433478506720580572809620489443202263317510957064792837724395100569049534688092943903662411412966455446607401670812773573586367610544808763275912829910048642071466763867008060194909831218485855315155628594702099525759805506574251013470473025933765135227325712493953426840112380779516781307547491075882337780827563775824439311138398402444824735518820381269975408253806940454332117411866825513624533018150891042192601633462268707376668628711286002608851908467528436684182104032598288154371093500116938154833549525002660199875307095411373597918183517175487926118961398973444617803042155362111355950343164310023827845344167318746824436784700374259534357345350213097729803627496356723278048749010133034601924999626273113657807497268161345923154896997693621529639316889373383455924922184831195209463550613883041426438427971401363858931425946775987983880670392255932494845492132116934230712748492590168303815727293244357392095248476471334904672878724370522724603180405351430526787583066197002382010668250673356349970569950295902651940715206733713408954650660448284213268640052050032527074108952662203525599361398205830610267119395877899237552493906863422849204586286041195164799646504799198808171479667238534338623292181758548069978168195824489359999409420440466550572301084485937922822794528371695696720030404459870148761714240573132788113793928422316065369596228717118546079214031906946086662056965190937410858065688639805905330493056954890556998056325880038966929879933463501813493037413087487268779285320409439416410259491664660874420785409476984514160850591657717719592718122677185987467720824270234911287340417873322315794924100613952194618327814985970763279087634321313247943402389526495035695596907314581949311546220877603498953186945076412232509946228786353084673238892744064611952200076035451378178905388318413653376243188516780398208379040608823796116256449394542908291579221999718983551393566277659498846308628669295128266888956077198738865564513895896141913293380252951660363481598434649068942914784043471903481185515646846689559021094739648203719986522516871967838262651018992396647953634654197089396166996296560812767168876105430353998798725793080085463306445870217394769788262298412521090307331258295257911702808401379049102049256260646121778544372597967654425785133470456982773119425087687744075625129861916633462961240676006740607314016613960617064458379082428419986673747381125963072013148276527145037252676425794608060256075216704122274501178714865407742895702063791918213846381978845303619350067581800523991837578507515674610717043870164273830463765222498299056524309547395534180887156107769664811069276351914615203215294187289670277366699255409520446197498214721379284475800762879802212433271177186879903035564259517764016216827072530604013799853650739950483565365890852692698086796863900660878358996501195721791465221381374152275687663660240531340632353000409725708719558261731990323582461387322344668277996729454838913225317286374364127339287757111624302280557571967303675872760193517623003683713925836003325880686634163670276471005748288360589268799901776505497105122548118582172465307030672114188201149908323453817741641161823417004973071033635714507860270333789461314778437086014055102268868911700054872720169008317810074010127465879920921451449367947483315174847387656657401569523308842966794218233689879478299373978313964609155777625860919564101111788227298254644490363582832271386947268435391536197243032375562728576780062961166325452198302116268179050347438014676625729098151340144570504070545673925365078799543000959740840904319169420231128068179953441688314951089403186156075397104214378301334995820271259542635747229888786784924530374680928633249535233227918792119201194869515346630423010780725268930436105896802465928866460255674589141968482465722895127466600416593345057488616538796918826277996763179305934567843591988638158388078872766784041213654355708539550577083145388501137453302920589491593589733326455404118571802751953858803629538422870685475340877007034987715273731871381898610157649337341836733164682866523006278180653919920955486062660412379376666494239517720572386836870809672114022230957687305849610579853729869286282362429878347069931218593514086218067251705686554300113263357542542133540624215894672937887417333891023940413160025885609263314079474525667382744933112533830308448915967434242907586125303757294526438268297642836126051002835621570917836988545924614447324621986460353885807009908015213608558297086180455071921077380550996872908361437831395872004005479545333589739049761119217642984620533545577373243058976499096308877716398947608055423205994488506675265031962102977843966968063482730856990564387743367870492810472339358645339955564618802896102124057797610054614075901262195638209817615015427380092040616812971064916363352977763746624619939412835954583304672853115876560229299357767666013416985237672087344892281103983452130843126800349751248152261194044569437239852791673312484397204145577853153318706302617735720896299027444733025405763799058459831864410449480785164826293186526241467654476826018253450524670709571294060973990019784066126402176232154351854621932909853909250842875482746583430028967327511342810595951472817326251877679886777667621255443810233714785629914894553047339314978701066372127373168586179756090146475830472629373585097886794461180872514425250979183750278790528881572709644571704031093261468086098063951788074272760804015055025336788115290798540472346753080552702090213000424431718939186881323027474217058489825466132782543641164883436511837014398253712795665941966510806369083142316633488905286162703272352679140612055494015098738463899649577443835356217196730888775519774017721702156768024957391835694428989934782078385884805367328630742301540137297016867699084022485465981935149689078711143182468985836290344365840620004907643021368007412380914231104490960692449650008937013734595409542507975995418411686013387971130470039451092796071067992976177030005016882285394992484443912716198788621990244992847370229755577142561100631933301561460626318913174104137721122683496012631189661483177711323012136260561656435493971802749734951993558552184348712604680311199006794809591176101490412994654339030870583946560643019811191722060456239653504069283300013447984995492974074660572791942021361751058372865419870547124719251535869315966960218050960579048410450974372465590503424993265492708780325777132812906986004394080848154626690156226123122286234392386026046028427750260357284122169647617070333415361033772923787033301890718845986583496853269900241780438675551343367410935622555614203944111640366088232831343051510695831436606994200397706192741847339881738205156454371941643767859351954368553074761344068510576548205689978706146926827265429487174320722271074084735945057675722793385319030027570601501153156237369974891071921615384411449234445983905676562996005629449018243260522622595363338752201557959114895122690274632433363937238931576632703991329546205651892413747281868331733532379158248162192361226700790845303873010949921930083323869753177436928885210358772026981335225305882574429452435982617434157919834062583807251719219770959931449398890252962758807377339602812475030743439864755987399786648650151989465150495699852979875261064565255149533282440205852724954877455193071778495773901177612973931510232263123346031384297169361458242895941971354236868632593317054722639000707457330113455635266133109280060074838715433641139534156046208206031833296512481731287835264455809032059890816302186261172730888926432808059993766321513054213075203589884336405772064396347006336269530382282912135288310268585521046322477901328544606104117202450803801894863767450436214143277780248199096758608164399754883144990825630382508697962443883960011924395589585930367779685769102933875250813325821998137519499068815060430831264696600412926056854132251846153606719514310439535212169620957265602423207448623373163859337602771315152709008124309882330820286452871375349391195892944857830276886526394124587649052473291481296578884746606374509563286546581605339191962108378035045565822212850252807342553759945873206120503940521928083313374706862235106218353213277886887205273965026003669524786255336920330091054039484031050586341309277093122913469656627468467812722249363650007994275854381105454719256049861284362315527758698191799887753746122116709038689087664364597499550035017802407362252246287361202385502551391203752781503445573923327416955486825791024357978447409118241083763536546599977865834253537486649133127737938684814419184022534152400118334912700619265376854498443655053496334790525519883132200011857475804974458526631078694041259629029966762535055943668288560030449796066666032683997152372778562778767534585583198880333184604459549439840876494221039819178564432725165302619174792059854945659458365637932756182886375770053150834333982469579898393035491267881843365455660854813293062126593261073996372327237568607357144351149430437456038780714630204986996201652014167689766571825340123976860890921025285432265096939645553501522174404303674268870061420352624462551183929368089855710347736365042130552884624293544878788613790539792734359607164238895916450262972229589455652886231238560084857856273277400350312452382789630929470683797124457614953935932205744373484074254912330292695314952245655468574147464384770103707777369177185973787021348870659642296120117216095496252206425371499439025404667384131444172553025682104654371656365555296079164738327003547104197689072461872341462086952906664133311183212118544043865204778828124033123011019865606239115545785832896014122073747693546099666202917236022811025501245109903260790816327733545770879110614251800230286443247178875441699537430914466525858714570766190223249281947264580666899056443966963379295423709033665021656803271009814479092624569890971089875842690537002013847356528893495404452564053929787751385498531408233390047274946529281226463069485985953431086993280021186927941823984511966499266278746856141099058598455232954949065790996579865435269640316670681974138166784093673513874743075923470922067295315089444923000673455152480513954999849372825076403268237218153117407871663157862663466616378642748563969009457419433185840373361660184214615164059579690071772983923738907679034219413094344497436567072596418718331953975611169500888349748580127407772133165969740194173152238077378677841080918883332998915784296553050900991568248106298711643810197193964371358060540332329472422287155484985490577539765847462360555499952361824182578244241910126550148292615132351443545483381613713380081934459304580081004130040766801226879223584576948936481079136164531496376025778684499456431519817647631705045642711233551482430569346732209135124087876875894112176164391970990631146283044377357139794473057611170084097176122966730548468366690253840919507474591819009519454547384391317019045687255943210859887947146454675752599043725288124315186988513817663074627715422723255364572175842818355734972727091266071291971709932372480759423758430295489822869923712849970089941255834620096221914643908350268765239096864505756175309749208939948836813790150520211437616978214435347584094811680798628059460424364385396247676154737756570527184644532682199739158089828927668715844115148808499148351152237423004769943449006403731101783508471280223462633884567111711763801633583009349937363711664185431134046261409224352409447471053065558917514435867131670820006671361608578583253698333762049740068526884068061990853351002105358748408723269945684375120093083448938627331024092894238822672565840152423385832446620560738592779586163450938130153464238477694517466287536340909584627954701861819390775709272934645070634141584074478186049262054266595102957069459092376874330046056463880410276760807315991281250510936983557786985452636631594109178053336365148251651683000087449423582068031822276160367922229451750637241142963919342261414686829377143377043083780667002105551484928944122025840024046645674547100633551020982884769450355202329694121561824074824614088221744825046753217681035480195095467525037573840599400106355081287999990745476375023878603689315484671034662436896289695516512885276720707431571715492410751323693025691671177677377899279730212010387101969908655466892537296888583745195515436283223488152409828148428674544052527234724982161945066477756114248248718846419250638583591419903187939933482933654616256587419473574001143502962679317975449040812922262631210104975377338507578104142883324252163974152434990372616784309945355801360670281341018126694093411483986224290764575782314401831664615532398533697922912216488503058627532043949719532446535996596274141506724034437689279240901449463631079887356598710943338124060664955619998421174359070190067011108723799826896486201446287674338338069088653256320371529564312933307478268530491626752455483351623111013330811521562496790141908218672010607773998463723493012229558165701470009077537956113022808720107386556736159190945728249432754066272845921641282835292238881603953640764795091819763344331884007979850365088313198825243151861834859417957550873150095596117690895995416040493464950035607621385565875010931019778167084577964689567318406236425884007796212502972649621533200270430634724428203841968753175598815319984000757115797075864176414229930944280989127555659110037178035372988968208767148973040310200268664677989527934640839417449820931329241345091746663742335330711492338163024518177308399407457700265808329783358488710715858210765557644854900978691688614276879407044272695854105599813681392658023370635694937019369309924582026499863496271501509530645092161298111636366844962581517584151340250716427388871160167172019621962566806694560033339117261156967406006119595754135934994988406246598907840126664266997102906487403639502131671018363431883590934709835871483214578717780665900752458741262966628481716557062188472874259570788704094988792420339600277403234267080896151108452062952440986005912763101054377213757218193185870448481317404889182983734479513195014238238910845699718843788275723820623014501908735574823577481060223371412357115119250799794779090021881634809685660731663163147122393493251751178069706109848764349793872440902956250622723062239441576757570158334101890679656371487238487416003512754245713031922379275769851701523361744854680507928973315630237302048717614847215476145642889431685060162338978198226472843019520052166866903835991122442632552937800823373239284502795191945240132887143894063176825933150358988345016711266035631328321863403800707161711211345476893748995977645369714568229927355788732130600623530464540938792331136224252801083350002229853549851415757562917967319090495673539315086968004028435903761958236958128332428254109281915272952426271592953209955899594088436871150166011604719116942209362776472222195443170540186577231943544437112109029039912811076362732328874952218934582403721785627431998019535942921412027450539488172837417214007738146763569509567078969936280674221397677596011750739843565610534698141107598298721177453916019354047497294942221772068120019846353462725710118029252794397469341725665730465535404347845440297641745264042430900726092065945442946862258231074771262107444623854808136122854883781753377875040715695435516684811423612161468799279905158667166402306423443123975789181246967307617947975946034848318000893035048902365093567700547270403882626987354747167063321437426480469218439921272013488947879234218628263578497037630240347194617904780118345279743330091103529068807705865021945012611567715361729320232826231991802283244231700173394944170164682720755235729409908897868669236554543635875636897265224321490875897016503148259036150716885810716213490944905379078585780937567678701503216303462127738943586324018013143676732349406686024650378069162998156054063786259158355707723882649743720864825930195135470667124883594175151809128022416148679652244522162921478587522487459860215567072573133515533498077638895679042119906603025670241120271282784942468535965923278699091917478754801218692828981376461268933184278363579580575774802919889999187360574008812823949306569480406495794258048634397090157298212835190152196329240396278255395585985897616331093759477345080999949527879260951937160624181211940986001612103467461555069783035280305807072083463188543971833731928136108177848424033523993942866600648522438702606235584844321359444017027794707231744042994457126289975973825178685167942507278765545807650013060271461189466634587248910807931811448084723174031779865322246240456912743635872782906745031943875369683841442339969690970391736794399286131402499241335891852356926486052198711777586491288754966359768870142867171436575111619171958183098114434607345209900111957384917157777692340919937975411524587342464685834259675190678813570068905074324937161895613038628063370015806151596006502689093241521646593616503283499743286283981615300771216526921159177107930031948071205532898127581669139710227769155487866146010917349460267224745209443634476252074758559517091260274459329692030810757504230035045908366966892920096514551369112003345529847794544340172870273822825075573918671775526935348294093544501515311152740546770440539037932564257488231929485383737377988471694044584179696986610033467554091093282505567790328378490877457155938021780132341822659382404556846597267618497743501170151165951944339833505901037404818621992378831380325845133587234915024996104445000003760581769794961677352305482423171920558247224463196863086010191146542313022946475580095252643870468817609073413005582221862018117336868858826080913713198317274321400727111678642420607354574071958328793840764603256067719425546611033667680392169859356103767867347910445115604604200563917102754884201181216021538304445993319681971355222272764416868053401161140195178135219219175990868981387021204565658921086327215178557293202222119361274240553482593622083564039225747793808980852714598350315887217896264862100188974473074113928554451172386486013697588757116761657921524567160540864640074376218209329357854957628597896081940091543732741412750890996039707017748936107881682306427024808372392808377155872589767766287885921150167326356206120311006551897206897644589835870668937083864935352372382785807776298451481201827554700752943611858138091111162571574580801979520906437531679302438825868097015563456953736818768957601316242959103223897900569301886828392277612978051797604975116846288736184360302025776773633627188063999064344841666600152562556893476101774705163155181936427970656631392761900522283151696094493090815748906392703698086977442167919302287191471362887855713426325732805048529693355507961222584863850146506616308153933712413553439706199100401913137065839307016435986775403940056811043893408111701273158287339692373843863550559167606563635727460553947589690999977718189851801171849956911090081635855116705392490169250563535109409457650867708560495726694319419871776413448274953170115239820649252565503729800782432288637350316094894592953937733795779401133325735472417426065278215424503100047414111122380234651932784524419477074317565081266497842273574828487602456767480141995448055567589280375874049752587637071235613614058168226798805619248768210439726932622091429891760048691104787288278455475189839225959238624271747998751864837122397419683195044391871412812002576811494411527257302314288015535026036071184359365884578573667166656692464952891881258380201037236398631183459607795148069916175775993641522223393721175577351315825829017300285370252482824276526969757679105715962802126864022776632658369761823305689670110013276880729447680748273785504475686171391974128499875629546997596491735948709616690606143903192999118874779449547028844186607031540079771422351814839287762210829804004721278768521845565129027642853076742623006017241574254549550135607384139566671749854938764561415584429720687979829718437647057636058851075817951438123726181800360513083934844939784134442486441255183087859726202560761949379665674399155154031347805656901558146230233504270696509755296500275096554454525531362195665523824295705587775663274157249479886295422411759550092318813705139412862837432142778592833064747266594085662220807977599170301032551883849683572465658585191694539753798750877137719304166151533277301731377857342989329434525449204421765202164529469798658553623897917108225492137934099461476705277308586712892832299853873029938608079256501582779914257496493432524178540001607567963475186915492807718577888496919165946444211485518633344073315609152833711812075101399631995465474337814043569765646099341098620916319314594817425247599268434296796332739733254733621968406678146614342019772019377911904920515160818164083362336188956653298797098414395788233315179215565510998524855525185757917419354011621637826736032776464186157725535638140710591445810430613691690953289245425039006167687397285349665391868371120115112294968232777213429776137932533057311522728677842264953351785839717285257284394787516888275499942979432705555088986740172358072409679975268156014277122273455153848165186441793319548970747152544112886170125167194905897301079499650246418762139615907923587542594703505307618544232646427560051613121737737790911178471786030162733006308933471332315177939389900337244729174816120750014722584339592627329520627760876101439518117012441268511070741455573882703913322479725392715693138178931138746842040211448728085105064779977516622216391718691799327045254509513740264353812431162119709588058173170067689389910107093390858492605021737815705385531830994652212211073703542385341452427152377383341728381870317541170933942894841984441229604477547348791402145625694139380011421185499224112995122701514597259393404745606624154603987649283181774960747191206644751929350051158543531889510603270668040609425261676241018965784995169540962626926900804419274378879179061804791138747357612739226937842390037589638555745143330267027493751739922224019535505501123250138751090874871340743828416547560948292739171100431581256745967649083619968436924992441502445894898033009689365462633034312874231399647089790399425932016151244501958918860147735881189129650103377131817240343216039679409552055469271553099936455700295187779420408327398322226882632091324084159746183042185410851195144062427651592290800534814137260753129241381066275855441207536369671792302306778589622592700696077786967895066763554743974295047388979852994743591115318377956302997853332321814997910050544811897410235961009451920918260470325776221844591110349856750245857263586999888651421740371616221633798472707470062716578304034306796672727972426189127252319931920407275503935793595112512721157049144731169271260794604159739479020547688823608578125708479476444069954167508346791975959113373935901035717961570574386852963574851265040149107418727301920235961057849884026416416875914242633090845268421869682589292393912192845476715076965000061302541111836225413928191074433088835691534165280192160353789699987744780399919332976636071385326457650168321310692163120064715004789879605521273416825863249143166014955289000701333680918662140126624100648668445011568550299159911306365748218363563366603750362811708778332034540228698686926700904490245901367826186638655453162921529463833459795495081569548780707922322043191269234881884338818450397560609908500478792035728534490197026769733772084997861554267764577606831301671423399965656114032998715751021529108574567328788068807985245981090999498528629737431014741082672083894931664171415476278283708343055312537757715124879476340256570327372672749866123878293016925369944654511007342005253722981476207841885403755412373177334187080255354135231868707162025698636137690764736129805170576755822527533269272931182588845574754113760999616557635136504745003704265548132276486525468932738264283763101442627757077505478314634424003591342859532319422967522341609390599097121363426620133571857602335301878217890688768770462304926741782343374980572076120628083605922259520875978072465582121747251465428890808963526000656815253132467279896101896958856229037060465361979773857093485448499264332961029415743055754291659084792872666450033269208467214135084987976205816254023609966335297197633335482849143086286727452840446337352334527918169680260016387683424638599251193850246280908817573845740643662120564633249350322698392098163520718786137999506430023132007586665904604366464999745362832529077529097522286941465615781853514776233846901753053344816296091803725291092956988652293456814646200937035780855795784384361004346314372148546195336115660965414339124429692511239210959401989871742849620219221272923017898775640960277029837167530068130668315407704703982265839781808296505843288542725560000843679814082302832676684848776741520594147567310433500536434882561611672556407208948808332610253058224301715358374512120702770709739711154134942289487067859013702768878682552113482161772243449851070497865349794076888820497937662854639724331755261346927893632244542535998563642685964942328423160409192187313861644138477859863543323797480949263482937173346705837162109257908016522164082101860982716913784381632033190305827059374949191315279849344411304023946926754707894178517912160520820735546139729963803566466459845371687296232944980739192698242754329784948296423419187733601662904287733299903481699700114521079638660813784311030642192733808298565538806670998774533615474148230150657728853654758582794828108063281628383384147913890473698316471535432494627864128707480118285872532678922044751445620737349346209313065028220016562701222705837398031271668985742534000181725469152373434694598676770315903993957412928319901720409214677914131487481861100798929767555242073543898353087922522452482652175205079489758558568915317562864942508529914845161162801952914356991186949613070008006054556634793812549748133181292887511488869632287237900015086727455271490558564415515067666018290766407758279901090469910356802633419887439319465023776323256275562430350073601006068250508493735194452594453683005993631111894738182571136452819710616934348012139963938738251182706350728854307666031824134113110676351113418489127797741667702652990070441862311558825011737425827298486759132942050529777077985771024251222298350289378570670452389074803674637853509526661928654766758645023766181907393484823068203505360595451068210034801391509662469676971996946110532411763340993255173559907408943975004107912216884134402996369661946722136467929606719805942618294776849255914265222478156125511728769744828480380921974012235045723990829539388192974294212844052450235402172931760859166794215422955777312357129000821336931328626548671522785303614409066077704398783720986094076471118329490526710820856901372826516644258108205658001490769058006704747572268619695999894756360965271800199173903056265633141715365269213937652745412640749695255720974484108495409643528087355556288009879148688882231836697790069500731862992452067923663359708553744472452310728493995302460679338351368920624843492215767061577952711901234726462001010116047408766085194405009370194483327353002848669543294981641618090190600106561261282403420098181890166410590420185296762554546504461671217506185959743485556554461281137222295764000912954693454817407561231759723400702118683818350903364781505935950223722176147445698933818661321450268690958357434502779608766568826232323245543202843537794029039886276743616866721593596006269627065509345606882357959051481071454868356672714068718732539115369090598689584530378775204564832446644178417213693293273551390444936393517954188262095005735317462844872541242984699739792052260406632614554739886930612667793554024403889596740653890444118927883103895745996992376615799476692841874574746633764990487817934119033294512632298020907222445449008823161810497000429327420036316212756233794207235687547497984763038841854771323748088679593773369982436172961150202154589190746205291178856256384563938027583727443978855221502904582893760208994527270263017477759461391103185279021572897018800184109716677451025304703818276992037692804230012672046943558052335541221918112186474221318974719742447623741209396833311787357275386254489748929193424523045485074264998995380564101677981851534154133084106536007160157048218790086628242606133710406043746653621612507158212238174353908787169496503138605210258887032619085111136206186734074605984550354928159244703313145143241744135147306214647053513053224447277834460847364742195024911280750927046726240979078037270074095670274913030460666939086351884830610749635863925509490722641964676222751138787017357050725612731977109248023092206281914280699266427351166535968144988284116611782956635646759905159693943015749461061868577151919837627426468799085456379256871978106967308222412587122487425222837437037864917973342952866233569422268311499142099203478050470673751997932217247836676036191678079408018024446179865865921882242851184482049466738510808177292287184273738088908428670685080929879318217551571408650852785057554092691468983653452800481996864568677472811617934962794238461691874080337786658987911542346976152474238684956544723234424227775918631288894858896607788552075758562220554787701974234501837707762422008731590660723253736021890441369597047140421978073076819210447045787897750985132699987872563734197726256538064857124826284409129457391928774217933784426722362704390880977334022762708132459148986090151930321598405624950061807124589479939099289633331116516668267075912599710041431354148356944775981973206225576644994975769588822370376839840689156311255436084095724655566688353621079820643205678783459995175490400356098545276281452644215325862669777912189284592976494801687279196342914783838861047260761359830097135840696826930862016310490822994334742023911203283706623473793042467199971591507075843152034118891006886007100039288071902204657925811131485865478535466288897345247054757061407490251422753907536433156835263908374727849889551147714112107138338407044951658414158348970547686880684401321697230632055889525492627260046241078138907938212700259524569835369884382092654129075387740116622066249714581642921505272847794007410302660004941097389412960578029743852069031431660676934469825947536139570786992728598941653120084114978331646378351603310121225528282051044834249328984700488859354107106196656722526680565943334033223327684847320364398419072317399692197738617767442660594107437564497773111861341402999696821038769715452820971703807015453625773968540582474028470251540681850721435488311972028572469946777903286476502643559588858798162829373671986142292014534189376508774077570616455186130853993306560512456811325071058716704780269066375207135453729649049875457552837749512503416284377425324763385294757883082336800466288700116249435236825221900657184488377438639705616938367373352157225809726935574727145094095686106712687152409659178439624695723568832504433363709052020742803248769890855813116701021538937986268896361973371564613728018132397957256015107622724568065391630329871303639444119904856875043708135165032300756477793123814774652957901113449465250193412553513153180931757282105993649915040951191759342709760239340679534732187472172438354301883117712396371429819717088912953754691565694375968046403416350139094595690469545663855355221917701476610405313135307970914390368112635802657561914146365910448685880285154989942133497862822130835862835233467174524977078157106057343446349715075814265367494289832560237371750188757587161931260291582006432461819289829790112151956642408656973738651550529793603768550414555464828764373207698089584399898150524202209996630818827842326103991824957785177865061861663595148267478382172361521666631146527413142703364834336174500106245090688822458132783802049405942336926790509893642714275066573369907625055354529243029256340623241233378955084502381462774901833289471104458275571178026341007576991729793822690068323381571076159062316405119635501772397367552926180064214544807925983751168184623486556641157608112084132983113376449243219987191630787324957763784542894739088212223536582127366888307552572603566046722093704952164261497267606434959756011149105999885792722815519295980123448059042984392142635231729567904790029427004547164374649225770312996872385394926071908405400464365181195999854661940886776976840941725569927885862029069989377480301465700197095643718247309258913684467801608546541111552782464243788720552279092241803029193243501122477463304243574903081961315980682426565233140544332112452122525734386218120324830096138482006680399421516810350545502458095570671222846916495318989099789961018964800175330064260625796248564509671408826436177426046559451294539718711165545236942802717086831285130182690229670229782297658402888013068940188105428161975910527139871986617153238464650525715697308943386544508510335471042717743736585556302606377400390028227542126648785544819495599165503480505619608405664480274608557714934815429177911476975359562277964815529556124624185715370838635024663639476201638352973070635570380633567498549988925289025815434533725604226066054775773938807640246165628800385500447962068413441176139545051863859654698708193814253111711710052440350016405816212859823628299533995629288694027494595523363781770574711600861745978400336136509396881398702797913185378435235150539992350079254826835099507727154700240023843597857555061380765746819560330572752225928189025550659582895801230116497032578499038048922086456247528924301482979926146112592993482449941604890015424303228123655831152926672551500936767298815669728027244173026611922583724608059559090369475197699784304505515996134970000144263651131096180701884918121427806081997210902256643345703814965499656946403901184097477699103855029640546965152061370659508715281503102849817540647723668524182950949653696851946571038587596500422643816595590137378494246633760660156808205631145523360099125936458337027826683151695192069557971580410453424050832645888934403407612650253489033966363811222941329908297214895881508873304255850613855180076956253783609342969350032553294626214057072388255305165544003721526929147197806260498783066321954101414197762175231717806156881167110788471783296648141590256835917072178076607452006343478880914221143671940479418816297611849940535817847755832846754682506443422924870918887774452641178385460874888475701725328902829193516731376965800830946603914927277954740729981836288879113932773629488965477963251474240569725057990290896229336715212223002245215863704713628832063030780889772676050904811455230336122288392538610077072417309498064879142396091031672562648349791817200002840520360158067155750408297896208641542185034209819075541420957854771443649642306780189764167436945088847734970762237416941279035641987323525459093665187033036552296232197694255640588059478300347883750434296851389466534381776454408810123456529974069725490175898629158332152984792212498250057023788545135933566760189139274057543743832275463016855987587935873504913057839117441398380989232722664335075613174651966926880984002815655786392970057338162141524376103621563991799400392402771033004066920044548112604118222194849678727489797959890960621052970601047338643641844155350547556889610026751167931587802932681621864301807656273952999316142559852650412816282295163281658722314721926229346936551402447555351267432177349986122814698034525743536684864260354456622605409122171260333191489850864648920180686666996663074502298507251981527867970472062607326029609282160834707704422865821301581721174770830866897367452666229585290826605154845134278935244484021807871346554472896843593371492371135985772058819866123282970189813922988205722810723193166760179720090862579481223851160660118956760161117568333941564786111882703841161757207847956034637327319175271414302783293716600441609217944321749243279372111154492014865619867052489038551017257792515114221680284176807555815791721163880988581839389804910160976549431436561143180942377461236564655217810256169852079910020747339371106953412985239692848402876207331497427285048948264221151685842423722998526018230527837279875143311505095611091282020531782050097419971203736093273502574757542549976409479074477548801486934439230055645693917837447842498437053546240955140167645343968690871553556414552949398759269342560875577735978649343320535800870733568042404608593409596981999122561997473296680588177993517525738909000625545268946162452659667494239984022376596229483519309918682147957836446885457361291508262161837188957297015629464523852478762512379581146916323329858737579554816512241912019832787113174929195693630597501004578821113554137867921673950945682704874984974733559143840688716158615521911669730548509711637615165872938433268819862250333945785041782943774673421416701676614353721149204287781146881280096916977737877299767703117588365859522587782023336439034220336753534980047778589815785252589026699042753524044692738802185508132361987842600462215712206562490437671125159559822388154636493708657701698062757012693034084025636980189081186294404011904888031961463553321250037221501367880316069555120837500525194204561147741383554584136632756221145337655334935414093344064715876620401201082815701017584156224361315003198891883757947483070808638350983030316141192839760544154911114031011016914491166451807322607009124922669372830335406704367993267426623193299540821105838840854474717125172583862206534871608396915153214082223926008582493137549002113166855976256969409721255165150734847537885546076260821674368101694724673118316090067569213889574600651991493085859844160678273945561722336664178182095712853041073893691935957710305209573838540458375870235152506517866683485277561007847323275084596722467750129174568601500941110429402159242724841916485086102434866267249467679643366966690486114826649692534245484521977456727185150920072948880820617192714667040655851501830487502992359076475634695853799496673708587265022828352203141303591960834115009637895826594346765221674425390656754177146662163617365285489389676146273921664731428849290284615404883993028921838098101107420168408655981082051666540810915656659964080992803331686624018420830303233688611332930012199639646148683398643192193524399594429713194295948328051635961918886160540891018820997497671793180817630088178917753688305195741816811212193900313111442654757810025765059935099143085390201676622167716689438140177745805578892500705729636121884410518449740096520042215363763966209760583836821719108047496555623695847840479404838185654364276080125884497018606767463968669442366157380624017186019748540214950859461090710940269596661336402884510116362313750025019387421737271871517551632140342431881263803883800121816002190153439780722167635971290035110582103285591671582112915411692642946274116462318279451618311088968809341563493293747905051688876850831047010259580708070782805578594427741962921429951060355317105081750364962851702008393332163594631540040250153065578229221162899938028764580533815493981307313067030128329230331570170964965309815581249172298490658515266649821607372813496485633214202192770444477051682746666692962257483219636377843526839758901916671480555756558861612796925983073282765099542926742388057256322634752343195142047179188601355419575911373085388776799010334990792896830529472971362914561445128022272216704668670542161363142026206975022929722128221062145804904853561558475144254494964131691269215829340408755999707838927774416956982057972123724839525830802446399267312486221757124179186929976639103972080236512357673560735922989284548148004065928463916265909516882768808536302286968661649375214038771420054335485757542106049173409989814094300847817187265123416170769557128234278594894051844401330853004858714386891493693738883377179208088446986030254970869017642336783584814786299987303801854704137713027582235989617645094204069802022925355017843673133942869619159259951288558187249434474738864399797434336510648636250477183641402232585811630686651216720479941168648352472339267324513192370733517154315412703340867709491554551196053874596498774995043215626107278916198147198752484497108646288916604240969008194873773098592803245063752293949794176932813910397452529398938538521409934900437542539669485923829537514984887984921897477551760435888035724553974670045737315200496811624294113729990612470045242948573780475905776316827704400710123196782171176386312447075582959365537574530167149938594565486900864601431723286707742829674122067519081792970416037908061985618792274944701273331087464928966444186449702563376733337917595033984225427247754170400591129884043371702056860257350830258398236878625330308622958737866606196578585700167586715417789447441862705284999496915931320932663329322114793286630149054520724024073286759511681495709315403217621551849320748963712675954898290378565617973325589975303438535831880088070692949926307996619654615816225865994176406256745594414466968880230475635386989926262169794724495167362836711878869835006133686844744324406711455295914181904977978069504716122891041661862751109021262037053046929954759565221887960564743266383546541800684037219472782763880115606786812862943823729181834952884548767783475532915005984933329382328327684011431753176327385372859096783870103634777291245484453406107680211439565383837251366294035209679691853273794010910910562402671885219047056201212080945122149106861432081284733643969638140749790731507409930228834884630598191116985211988665816578633091380409281706568525418326938790017479720793001677912095298156229815747667064909474936161538723805011889628596905530851120749499190709978013548095395410611732481033178380135865693238149931150987775788434036961755692444328791863515296611199011570310878636983652426932904818467796802122562950876675472332445533098455112313058465840446249805466082505373173409183743005292106322543069690532524967191794700664035581210515497477150362717086736227445801715106776263790199510408136760255594459788338448250119352163334071256786902639165523217878228650568500964151163273181780101831333700595108616898207040733309623151930385038023384699356403292373377059365966279572587399407591003476425626935716103782468317373403586870438214816536325050757902748164008866047217551510212353582619196488059908269949332138295976865626350308852982925839196568813951107262616086001497899674770050344093190604286724562028544950463523716251456498779596775289353451602011706787704443201505772733244812574758260635437684326693565747865542597229945118480586791466177744412103691669327003691262298375938087213368487476014355827307484806137745241169421839441625746390049992773949024780023139721750946566149330600907186799646464652822485352258258222338826946052467302732685047463023376045545164447802213157161673015029654359421590797738039467083537802870506754519297003054987800698072950119175692406224016349931344538261207235222084607989041622356921393481178109490402401426318093801272931325115170558706314754819743069343278573949399678029815080618084410669437544263351481577457907338498830565593879333638185110865076599788800002345831518954957770911839041976520938297573226626355488109068401369824206149649889988394503762706177650225186897995475842288991431289961555025397476943780361662648770205420384571983862984134574876773988216974740598473519228530187205329082842261734443527012913777760147764640379664958457310371489278359701468623891585985032857701153216296293056323790629477497967457398665908144519379809459499255606481416801227090019461064495017496822304406372378790170749638969465999319011827667487970042837389277763220474459165533442966284651025926413653441465530182760591618126848931323264916070312975683177570302989937747561721950294733999013685005246443356859700953559700112959864868256818753056976442316537356370959181788214659865955690047035891760969845206739734342548283345060636939545455512694726588314120370626728682305326529510844871414729726107731991952622882442840682063649164014754259045114029396538004730393447895740738486571741138643259049126769743997587798149790020345453904021227310247539175593262905594222697339232225173991008354497215902094557907707068274363370201929129679145139825502322568492164898785057844831340525224980186323686153187581601730938260384885848947199213580521517755900548578591540677755564045956780079013888831713909238386155557657447549664254839691067063571242096789414879735089252429903001989881783588970778849445959145237333636075652973160443724014820827893428855065176569444484393365542278941701602126546909043884906113364526565636999563199481958128034239530524490533981439170381156039821726092620693401636547145120497152790881490202955475553853507660172825572075742575087104192035624017218384352692698746759436856112771461547188514643625790233262544766329547918806149114236962799679973527878623314617375244783170965163457066863415736232063921168308407989942666227098563103283800287762991875472541684444773349409962474462483669771867117753383676057258061446624140964202341048341414323091526771569895628090546795227951699090886074770008166064987133609246474007230686184416047346425806877224949867528720937063255608433718142469545625302812918044147946237253433251199972908172626229284817680369201626275232042496378848642661493746766195705500041995166289386340694455041287420594416627345790671077180524119220586594303206936993956272194732948403826230938306045182995017465806775403293940930960302981948989811577047283570497924954344190986458144677302723560787293689050400363557580381134826685004495050271414006488258888336221074156510605074787173374781524286877164126943356336232468016041573122075718812904435257592906450167918608261457882490473130587862179766105494447172827061465556571928984265220934439072386162790703462298550146826504177541189820200816116445421386578607809497776905941549268190611877122937746812202546621425259486024230288388737411375202992680073998220971147584668604736705478432833990759269005077315805661038817118214660589665756477609030885940424476066557133241482096314405278175160403884995188038033957886485811268641283455804637979418588554057166662220239251223197984253605093844428127558344903722212409504911906186906518490825364533726396580433440471152981050223036566706451165865141329383506024647245014475867634345596366787327749603916493381323960930085979190443739030037264666648096741006475609026596733378563274108289698903269990286881331095913668194312975351543901011336706506313989608143779984594550755030238850570415053452665186188283906153683092852431893502637188742986376784147911350272000992595939536894618669270803908555281841312382663869694816198234376671751859300774531856875409329453174068075358821882538648219209608834735511822514472175593419981605084983902389249642333371077352767890668614341411733808567963202144036837875608330990831704784274063996027529157822138268775936051751815133790158326945411792190110396810987393082339208055247860579775645785732953410219335404149952206458698852445258681810122593953271924207113142277935185254806521909282840337440584339453738594116572217189324545091244977105244640937822406355509190127667078636602898568781484716471423326398223352643996547975847772053336145650694975968246854163548338804482762780208284900905856368886127928209977166270985049031722529923187997935638811401436574776747435110572796428327276207818599409579557521565758050814024045038011003976537829789136034696485102845602477178800445397680776013829303613718824953806446477093773431224521874923753508395160869408588903698728219222824508513343082042375909724118099879226555064550661063774454068862040915944266490123878789474308143147706162344860181104000048492312035804900132734957482566506503099819764675434991303366700486080148100139876603607332537523808311701793217913408195236358809253563547763748963386507693963557727028816693342002127821501982037081901942354150672072963318734002842472064153863370974268644806096483251428958081808644849760257118826382400144462940147829810071266412243498806010501658987421575739917941756434873866787199217139407484407431169457791668896934870651627890285291520460214473266901290693030866081315565049793439529992822316244372471583116178234128074966566052335466495967746622749581799607328608587720660149181449442066594507399385662432053684540069957703851246737004373406354057051139569675429529306737449173732286356743589802832314548460722551854677057243384316446901425817315797794257877809867475814021172215269639996107199093461561836663711777317001170003977805442534823285830324272793023379270081043483875414956227084349031384890405837033008842033500137617948277017726340214108782725483018413458115377146902799678465721011815099099866572867421917729625835934081222409015337352409035444699877891808361941269893346275184653674454333030310133268339198696220964730021197377897338609388751737614508813402084368355397622381455012227400237471068102654259187038443434959369066913192294292629357978500276053921195050893590139156472882675429460113742626035495496971628122667979164430825784353169182597388785599629503523937222607706160737475845144948960937102853467501337180633463276410466873862301009107362415447940291388082884899931834317886627266128860313867903556844230154335867306461210786885832517969819409226703236406360354621544744491963460162143850415888540867590326669311414968710783061931525361544725182522327053542722088434614201149580611298195294450354784636499773465581805549750488641394013848864287592650349986954311715461122774496409992789404228700991523497480509216871278976360773553669185808048877724916944689658963285924647463967052701477797007994054398094963001456839368417535335725077329333354645712447791134109196964693895870346803603245639597788511594300983446874030534640849856907431223015611596820572291421662246991283378212652145841790312428435950147580374293045151674511539059103346024341128956849186611610440206795001358442699406613801085934107532939121810310698387433633957848507679970788486889433654293466078397469283231123158668977222578317306294351767117108777645314262334971172271896494897861637339955052959094328404047010238935124707119143123293687302355194116876681977536231490727589099243375760012771923355285862655814334824977221620752547305820468377212542385271490351680882288781618073274097103575585536688892018893827291277120206162971202827461021853494177390551573376502398464744459208739411452925732266028853461017710347081561576506827011242021825822027340991861461090446519817507903908767811574794481855897805333005215566060495616538298747386092794357819040197771322280425566453753840692787576575259993425362968006176097261901440898237685749186059973353293523757662941712869789080032774660920107295490630544415042493164020006671964426131424242619025624008535634508815422960157458973984048999612412325982334524214137922202960361410324883639010945648938704096750504953195444786240365463479562950331592689175828480454746596386709333268015529431438013559927417137268517307530370555811288664086762493684932166285103102371239966548656908966781183138372639176771811698460448975971100190813256336077644453894109938227627037434714375439819325743906177873922816219442656252659245714247017834718028103561186347704426804137089002198561677479584355151450977491174007838156768098468231366333944173374446075060197001007110923699181481203934503594694329029133704999058317873369902082654312160027963543565923590556321043788097851121972350998459058241204976286434744667405982501691980300477565576060006382961105587193646907477044317789965259943018373351918949242417489270991009920017260683808512741867893622920887262063690069391969885217791192644500339139107205302812384481728313612037541992176186289185831280661136855912266301764775509782761722445845991036493580343472725457119175155558618363649953320868525928847883940809520009472269845161218122340950892300927718894775364558298211728267792087561910182238510187180441078092058337050816250613986385822072528302993561304208400352220077299456381787717559817437265274107659775254874182442063878399206070780696637355654709474298976441403236134964940283445869241820323075030980684302354594948783643047329491315287840971050623527176965173887461636795622996589244870342226585735536240347615309655937066942127875387427950458047155621872854520232242821583704608106631135222240431082149513934021648216591244908823991039175470748474568869319915944334718605864199059826150065709161334977285317583685475872680018636503274543507032399559052741970090409146480592135055497818626733231082143526431536346576483810793530640552133704576710547470602822645781628039540522538712298558677037466371002596168564637453046166813062713122232428907863078932813804808848905072997690106778408977514112577309897404359628230987385818404066745151329278455814745822939120359560614730993597469824802095620052795067983792236983516005921689368981910589243864139986720004621263532128072872563087078237762771716700579334746567157009533013585196900700177666124109498031513030925969563441695914072001729089471488309608514209505324605364960540209203234090673924515046384800509819576699429046181475932053615421771680531065611940723554073756329789644042175231560222507306012353851858152980509869841708070138951583658784926277169498942651675683637388650118696627951270674274959849409255510248452259449398761037978145203168843858976343620060502116475281905292268192392995754891146998625950905291734533576913991535284622710684093328076285296847939389519882886843238044400515288683314328330856566221500247971216143073508464567556454660096080181831081549692528537081972847279890802274205839632123082882980444221557579834585549052781447016045511231747748222832728874160730454182418619640022058504424804148245616947726128949815063132629474116218631951664677367990893148948784764903444843958364150918466584687201637150442969185967426037012324142470689717920998172069083959773730138407868291223458774025711004810553504199957007894461196581794456581103206031802173476442011987428884497590275767874275953018642136412997010022405519527066374984452410938537919637117502916770672127832887644990381888421130838575021575466254758086410495705985258745218642225284871923817051726296433243722143339199934800311733427111160736770726635384903061056557479761060247567192277467565656641683061329562362080823973869296606704380473844735984825191317283723800657702119445990321777123574766340671171899946306793297796734904948958027396850082651900403402532665086519541024797710921921198375531108174744409269574183912951324855663438321306604102868390658905662087901941376052438748856857854080521416784629360904385960182894335730057576468351009462346443798592513580078948631854362422362960195891175623880298637688294279691888104834666543286863847778422193882073997118534311404847204303186554303300366876582922326810333799141268859100431457893532636891156373658501883027554476211329006125006498465811882757248840593027587101071128659075862403387700026870960677995989176373321127459866279195226437680122309612872791152723720024591209404540611150966621651932492205622624615700541907441702501603879262071974063200706866096361811883951015882258626578530471823552027185008287264691369818366228235304127839498695026103270441537948981592112289700842038837725602389552102841126948365575212993715555984883210133501625345769160197429160817777267790899008424173203736474357519793160695488673092711750677385189652600056981331780107755461875155866223729207006935449875922240230433368722953344733217848684903871875138187492430277379162984771982064910343432120032058127183283881300670330803992671092575838924490384253968427228732698125086500541789713779949246505028378494521345609756567653955013514810972390450931441361580037199881797954731308997301455796478575377189033708595227697766284875424247028031196146948873930036554532568944536299323495919905459196289127993110611481413711011878276032471082567665381924434683352903200117819543506251028014439877841313324425339472843928880078310298920424546718054145386915393824788339502736265021273697685957310761465564385642938246401195283937070712949804402819820154511241446107409628213688195856106606244953208391471635322216300629732463669436578458497739943094486609233788484067998607032523976183187776821164823009143498310171014506772982079837862729826207938385707826539376449694194367971896741369148313792087257424633450542249184876231672137360545558493980899673468241878137827286239494453048227560514437608252103818047458317967797844074545457144891263183998425475845383890838076128569386385128966344126350487030515403021527790913745050437641307547582832681925089757808636133269802909518815615390630162046157658386773778911098949423865558518864520134844133023738421856344692226212401629930414290218093057407842607609726875890828928439189556114559180983096435216642412123881194728104427669217041982527703136926554545033717603261262993955459980749965469442919812889913490202257520091830743921113116964296987732132880012805472408330283974132724561474259332029455391804871820866379464683534600444806809583935076329537764093143459935739913163947404509346026937623772615411121920308037515481476580438563870149710216639448060727636716175640541392666686511306799539415030799285711763836621526397022230700480929732844261800270559980484205123221480632353991446918011476150350419223809855602612440872669828275385775239989290786810904815394097637106336990477624447937425507338554208554151344181521456273656001792549149923872039715652717794731460248183587841878331071947741567626959170566814004475328854315695645535275867633253914244411536753970878177577101705261596213520617609850005747196128460903906614507834267472330378077208982503261150408349046570082625744751138975285002932837332466854192173837504016606056271320129480089238215772371204495184200194215375723655795866953772348072198737988547106420384795649052220972605533818995457755887439638819159527945446886501392933145578111743911642089110871359315310355996662198201120863146964774352875778466171495915249874457290720653565395251158688517899199263710061519279805074382253603344063996712011040201897504729139557564469652506912646832729729275336002013015535620579222828183726801333583104764014456380505918686612403836083541817434179953487753304418492860355077329523581437652563042538168728828446658467228409496663292512024400408335788177069958649658396896374571404223403214725645653277238710425154544962137342345519297460118634691340445147511350907677420425897332768247878754148783227262087150982308319710001549522148241474612213778645305597883312394476070654138751582011395721833905853671625578701242910588174697259678146687528283772525529636053493330618354076105913657418417445178913280684618117834424475824816965386821623494925608221377595390925810417327957517074219087250947515228241914160489418198309013284509440985295001370338257854941295641494589106538396013604195500560370602827477943998209881066690847277034620772424309231000732891261204551371527528252891317632619831255223462278786133700441176340643743880373384563553519333517365603280559827771634318228982950394963711433572250612065483222797309724992220493568756787710835319602337123073001145178043977758737440265287426660733130793006897802689602697249552748839946786599986864884215596839175312184999509874547312816220414716281609278325884865353358681105357140988522998589914593051947566199692573984216495259968263992571632121835057305611016058470910322886562266002420462434095181918421804158820878396048403702944300559418522900655544609749798421794623935169871966279538590716602958962787104390070242932861758805121943336775830878305977001760468299480711128208660397613885818802935256635250104827135342771703104791641067415062562503532246135161610540822385467226743241804689963172811981782889089466218520322473641175828673472396140701704481838152379406537468361346348529678855430864336667899176631734822518467682643768473443077379999695207605847327367265937598339569239581537298071175504484377202115330333537098038147651957545853934622075167835284664199417128014226636373575692487398345474341779421659318197955781454305760142423299419606437231604064501499713041525752277429731590730531570329666409100755611523632673225955734041578275711565158853084692906272176755221130955114790174804576895947295841166950007438046545209708615482176344688891376942503925354654547615394813437281771998348738831933500134986683740428212549061589457767070421261591445146375635655852038710123703617965715983040737709914065388558444267765135207868486019146761227627758834370503864492489963715723901263637571467329154370906687970804704648033597207366310546414431523999685155434142033403093603641350902716462382394873366324373499403124022682150885008490270689432905779230189850597651110614362462357008816865012780413107447709643304202052517831272330179570376208058531893864414357986567927506438162718609722963652106706185323743933586462958008562056966388588954916910037554392305870441159468775076308440872046573177595388536754458279974899464982456236109770924284784871999118877882008747032230159502830526523287098940737390577125757478582801324609010636389786351273639795883803059891038540919823542109236019688111730247434814809750849114884171472053904828457648940165393251208301132467498071667677936284904648830193825012562141711084287353995662309497690765742014701486651252884421164490406990108015995019049763244113021775337118486665054696037480901502695348072256729677920552634004773058892072268143765915514210731453994094822123611049357070237659942300566459823242679471105856598136447305399722017018593891691182953462763706571725163539800837206701020107277417204444422957215710764254455600490690835753234668858341009224415420969462082011488328314180669366108560963228556239817253432724470853685626061227841528352465764314927195017225244383663332880232509611564423434851332502199891440367262836832800453994126480219038090736726153301339133814093331303471880112030616084438333856826241161113978678780084614996540834676058461083376437144062777395403533134325777563009420235094542758275721969621484121769265141537630205387384844855570911123100689161914824154032614928673209223230016657448435580901343035137016318831213320977492201530579685683950892526604537687559010595522541861152381246143518248229885699138015798543945117064611051319683400691307516756177240142079303164738281214088986275190045246563091351131498380594187281506821919256051544969640863840981053926813054706694834071695868211479952722908020934859501980728480970359917227650659964380443807815568126903637886365803043535425108424763630483358488851220722319181161241957912483360574897932879947710555855954538159357796001699954034983862132880990060605955017750826535794915039236132585726286462887763487071065434462901556413778755052100605400865472787028507422924018335482393840014243047387604550723910905477422240287428941651106526881931414706265869199119545927972258978615922026181707002991491028377656090667457805348656048088303902333938974592053929976764429795207426634668374860845248034675800020117539838236286905515920593825014242939988758410148175260668314033660651114738083676995570011128629513889006781729733927524992357931206041870371303558118416416646186091259318109283138631714307839427769730402564181247303739010530842094219313504734761079419272492530466577510906750216514196939882545470968957890467568411920069587510735810984239310761475973312109279277905226545957865986089989033048407664296757369757447219224019550406914248635626043698264263120159305460023737106234396726263851540297263101795847202609134625456516872632489638832489957862553238349092453380069433379581935237178042259080779174056532791643149058904841482643994331686772419699044542154642687015733532058204275164737830136003598960487038434465397169798138399873665688995190019077388146990209629085157960654966691268844672776602560163811131500975880630090381809185267788528004190781837778080851493893476836416129373496044235542827053352106022141852116789722821761781151281803706646862892412673376480827365862513088214698206944060157470164326411071729512240218809135493017921250740269148075878539772508232996315919016430957660392534199155690334918619914492380015291250910648124308998846986240795712183639329096448566717685747764009186056216634959135493018633968391888756564836262083186480802071690508653317084231174857198273515765863160344717396129030284745981610777731167683009441628314365005259938671495696129063266632256832747940299091369939229457400063907894589905894595956199509113194818015456567318791679499931946667300022021289933977802215348170715199853410855660562647488744519239207514168768625820444452239828007017670240313763971073083146693095565345359454207046942766201180118747658248263377356041418796430209766796255976050329836405633476626591662030071903536992041800104974144741011734674323118656400568311093936570248116213580417104644696226911311664883701666746948723493590005343408474365195642116354119295973636269248096265611784231932447232767956771893461514938027929077117847317275136394389655955482472651120407185918619401665729471027375944538034321439308847803634725495138407131867921238969866958733874838841179127887676721171440353014364221487832183441833986234646041913673125868908660431394730152706779505500800487947468531327736186146207662206553717120195081415287610653367093661163789443326298870075237699527933309751413931284572100405275114985209670483786678805416818157082497392524616119254178056107608614330444266396356498372016189195915730000915601469497387073686921310120720891279798992226611433067102359435236277474981296071221392947108559303374178934484938495517131388620344533339175861579172448287763707443025597785517773204714064268533839353040082997751932434628558367906702265364602019610516225650301023390700969412455739276851658161268265985336000340013320504189802405692300994999512264072582127617231443613313203704043441545240741266722352616227723596212213162034036207138176020704952326065690246309609770229623842271695020098050402171004768891890191150111554605623845451995277145045824504813598800781232645339670623012414943345501481584311125593794793107552993843531630068968087628555707779730471086652871676697955779618984557260001884711426013436541420931925452694685601213316450675759878426643448782192787453448871231245553686060559602896807082621297987292856635760888946216271542872138845320057183919558039657008222824435455239505155748778222504796309447612044716149339867420205687473471016759506315476974320431011951920259290105426633945833237772772776991509198397283338658506282895047498792936078760932078700212567004305869157238156455351238065182377737368558630936901916908829216619912117260882508573652111514508970658098158400860771475130091974907605104902067084388247818258537221208956426739754856951281766370243152263880500964715568416874869266505079864520207004252497241977658282221882066294441414938424861894684238173662877421026007119548971629471457248824323065699101932937624408275625496160154145488007327900407274925177805300836040914145069888699970944317423720633538132067562460318997771768738171493570839222877873511473368071811334738182161172325957293662242583459516167963158730021240570460839940853341078149315008252480515555648725674336440954838274371088181211048920978634841201729692552465957762145624825373886244411513380411727537487657065516630888290762382672218661013296954919904088694105664169848396483647197307924482127728990272286416613258717804072649613950069878206240717867189506549643564894136204228270876057422122782579577791965079010740061699869583015589984186102637416016764129587557334955424455659393881288877988286756698003926605780601263017636551395412734942951968010640091357497151187211657819071918962694539132538270986165924178721573714803922748599433750064242950832581554506390056130955603539904148646303066741794754872614819764170600933643964169502267601650947094625070047796728724235072123889793848238064155731286926961287835907378640901077716868408628711654438581055136153288017139171983203061903808838106991825161091210737576319210926835377213178668516933150908330411320934045058618969991423184810968412170916194127787431855726238213437598883154702097603325793969713349702615028214888034505867775392610751990939931586091458065133659907696302308760409728530952176109344228714294143407009401089524633382916394776754081439280449752958245055728001117444598498832245921621669413853892050838283410660423992206549810420941311745695649623385248720408745088117325282370862539278177802258590605153895507956646882900994802142775488956955950074599601045362174854667162069031429963789486188643521391541147041328024047805367391099587958855929081718979054015515467462267729260476120086671996538498774463667779854357485961502333653969008475442861837562221584741186623246158770008673626015364850432128269459640946449505505062066568765814428234201443816383105229029725306043903931916664077610608961907656785047218587327886968937800049374253545183394606405504555497641545513283914231287633753554002340256770053110175204633399922110974057456003627154699317821848794634259171496258229130707452537878698581330681864284960677921838276369741484230828432715896759675218178086992047100517642546600801780692628284493189594042119139417985099928218323150844520012732119558849550164372236714484036493617066765564003568467875332891888315757760195558391247044786161675970831771859002073694984238266154166452819415250227848701484808793054879736821108637394431338094674764177717446275041843751004705321360858374106283003824288184767704832867893629553410905859990249476771897005853375339386084550526043944421822386545890515401305147838187090191473860126543114844946158131910323319824712366550030256816897661543527214209796077077998644989993390895630237971935014315906426523795647832247046184629428685527809459618222706256178137466074604350457851757477500497099422056163147746897176881255919775031220639163792638578820122211345921631363765583893416043021775466623069452668004948997773934267857071734455637310578973685895317230131699293310647751908062302275614291619783387128381855319486659139245576828348128621305228388189458679002253049580992866756125063594873858423945747234066433849537582050646143660950279569090799668788745114329068291446575020655245140830160670723851864532607899725839427607594482488957685221720492603951857504025034095069517182625969584000758561713053537624209795410138823465702752817706076451221077108100108897402378428619040344045267550788611343946098226992199285555753872608258562072743132525675834518691707879059485262835877480469135341938712531624834882294187996015303299006133378787407050696054251117225324600593778053514708608595286784746855552767131020529820991550877377253667103213498469423635870321246497408128250355353993264163598113147280552538814999686814164519695016217579645656703463926780807767146802591807236043947944298775728944966292698960133532256621448151224614322564578609574062438914031712403490568764142252202258053449614581775684127563793023714986913880415801908004776105975324679961198442998226481548762085036391788483813573913296982031221629414661848963859843663524466770982566214884135464237925124363517011407726103216500648149491559059271472742510676382573944498622920921457754529276625918281113417591174489851625888700081557643173910174714653904785148811525057906676071693416474566863236482120798509397671979643817361692940604818284610557597809348123443628819016274427823053095989884709112557506633071576369360838539668230791845697685233416626550320692109540339510662435777487266529936682750171930053803443736529962048933383436944586624012228872577988785437669951136597651493463985439855995353322593361648031532901420286051234977835495836247169006052000610007241397251720075484872869113706402849848681971262799688195558642058956330956086066038598510831066105085657539399135602686502902522073044097353145932216776751140427954370428076950523921223955841047534556451085957665821906119690707925658730894408700780004862616608751310106179470536587683560936692671563276184494828474650847962201917500191182765262022032884401902241255100790669814069817728658317160290741359636305633678165350788419222172687351083491679106282660155438201265339879823927413970750317282939085090933554100518566291399820341194304639320514339185055961785763657090305311769832674214846850292205351700478135962120966817832970977455604134337846365210322064906384039848466758670272867068321539429892551156364283043009369316585814876327368167635933623205854574447383531018922175651027506039756087419561244372612952325678231642447397056212814883208821302303264215820440006095314671599346452002460320314216217891710594299222153122551874492287188592961110697325655767873185765753910029919154763221716008835911855964827128661459179295141713384702863565589380673880453102615539333881193923639125547109619606025330374419171577689245692722622567372632333559366154479154717008990898084092803436886769990421065648019833542543574405249202418200760722201871746296041412529377008260742713942579947203390822633040341285546929283836950772947616553876415591631813038432352887397519443177354584090747481094092650490797427588491918556860176287179673247029514330133166835480807916727751288371796270103157471002801023871143028775150054455731105739478229834236188424131171593509433479585481367454501852452947788400580410358141957283459609085670159683392888896961092183809935470736509149885219201716009082583131079688598875470448305556572207243238582007239806935940552838491182162164782896976743215073129643669843058402282521512073472204512082352296850032431556628459402378178700653803321756804957923255670396090091056887283415719873154259893285765458777322354788178412310038280290935714496179093150365868960494620473167555229987928639017118299236656893731639932933526188693572566617196175758073746928325701079604556398158806484033307462386579761839961140896182933340707970047288135713078126856644295244603442663059451241445508899546234235804856993970476079593568890748938239793674568745949258018677493630870953640575053597340121042649041815400555432793693834094729236806362417102450517732066347493102753186060548695436177121762177679278465694028795177964614759794091808823623622307764811234219063058522814899175165539897259464446551728308262843322305525370167995271124982937132637730620575877118986997446514290338068232935927726539369433352618695807467958326135327078624740303114423060454130496124833685478345526201289968564259896812511413991001780697336795252864426888322386045087500496342952208353197272047362003760144257393273393144388812416683896046753345743872801262704475351718067234779968494673116782667286236866923493917551560773330597911632168200406585386423631413526153492197865115373328934034812397574464238669688452733110732691342202616317565030315374120657505870398345284445101365500053743178610908541845883159581967568327292489200908459819360636290147653699064193986076918237039565807085733719419397063262753005382647940330277576841810186072269113377162152017896418257080786166216115108871461200807579464144448345007039357265072295918799563217403469685184023780152632980169739758311842892147192365993731963027734807964717689499161889261799988810485160508457062876909583394975838034360719270668783242145364789961509991091856095589814468143175278357684211662248595432868097524742220701055445607756904896084222235896212699421051248467589744609444420117713807595881305937320517285815446021336741302570984737636154979318758244832155642934100700967488217436347472978662336443645962757429474606276154917920553908038467239356166991662501343405203176052437463103850448055020744755818321151983006794538761965090066794566168380787058507029535275750441887403735713868017347639920375945650508497080286118291898210195708800772106210649964725244460984654290334204838440888810791290393469282524210519156386236507716841290139645642889363925058547443403514453687191153836663132062554780133042620794201363140125420563789971356791066656015620207700993242944326014756251072451114805798065241822551616253319270744237522329897088633693284493427193268201088968623050296798885241049803209818473945258681786645326493261035572614548645349566199973392859884530422086288079512893543583688334679961130897729610926216338103769352366904085166527576862127582552069876488800064308745351341756134250157611095090245647592108611469749929824063351665846287521879795378032102856169035339378208742613539982906438031815678192183770958266989599369547615507806152005842120577403609174407629539605552522271743812240261731017360716747383147891110181430133686455381647086928957814798896361649563957483448344530324750824265552274850030299235000201591742479582105182736004948021135990512373554561353777631203080623313069133321618454647360505083247719183102774070178921180299730693706788578789342950320681628243769867814952512980081037824360561891900339287588746365182842542427142272684760801256003337506733738374803376068073683506742000526989160663369496610264048228023472117316120186160206598868971551866183497991667864604365635370393210427414142078762654579149753473077669113953831729099008768853125372317906357564415216903012425001254132541787566757754969893946810139634387277833216434777836686227618144492234848409455641801386280280923660620203686537910438926165231018068066080878995026167046544501469639912372051029136253364028520829402980201484408566303570127900986316578490544827641686015874000831229674320615070746133106552551001716965294557798386663994906037228349766520994714484994495176443720291951951907311485267371034171351810672199058633282228340693592756308426528852089355050824176234468583685015608365553876243548227210637928433602108762459898586162176906385176375230321866304718537459184031451110187759898065714276425735949725344511164055302288163894793470464730342379057321680427836722748060309233704549092627009579048284789569173391766115537399068665842736722651296302206532194434485879817441380146626728248776871411898594847812012210992216909245257491339435667026038581822994868068870677710199236461126133979820095511880286746540235866992728073976894353988881513750392278371378915825574951926960559107920197801164738047180996571606247392547210307793537921722878601581841658939105706086211709781900402070133811851036484388696623639994798800573266596330049069237075914835576514239364083527900489912609438040476597490809028160721737873629178507409725668942420216909173934869035800821422365522781781189607229512669033103398257951589261449636258280949264249970543604974387700981732343914082441655299681758054143186530864312433453022864125379256750252231061923316762688744403901198939404464781600697353612365658680983571440593046795217415711530641961596600888418511738541597219051162863088212593794127927099837049952590432974828822773684366949283305977139901044706906420003020883466384369602795517494207242271940217295186375343586819894585430633625428411030578822259835065698502593640029162928822458862227736320270186478459286500441842929573322462096926570661216423865571172285230169818091677874780698132494676376760213181496989698526183963577844660752276055820211093947010395190974721880670780145653754973941783818968391192664876426632860244989299597041367357694487911731104046810508683101039647952396539499798841278299563719275286553167966961519210808778938501637404734867008318622744006320038329242181711263589117449007469271352588322039018076269694458742161489000602437488257476555820679597244663158987608534291317989547555050041861280668454691591756750402966976939467794797320133941604696235008224924844045765957530261964412137401163239113570213717302534498223925277108807729530255105791421553130023901776990489600687124128432416972973749665915846944329401040516916675180307990226634192926832125196847933567532655672778232666068336102546538898587119491075728287482873970716133775745826730440317073553137694754417711787392518403538458412935949191948993446231832967586030544530281197957677758609083433420212524454248933775803431865819023689424829418947394885731136948695729119172567802656759029145490840800639867742836233555911500947719634274585381027571896824802174969282259452790627775972334586943150287127691881365078681027939475347068033984881694167423806134985575309179051681406867805842681981536202552391050144628834110537981934326551349958510418263305957227763330153023369515520144010926164522853350118407112521899630451275244077408247899086008475385721023168012785648000208142868301436480447934173856036470358650718502697897351471668172081729993410154856389214038441093668838718862459354810181005556908969763748957340309707781035579725168290340231239434267893821204795593864485531739315503858139366594071267513678627093921400064493680107500058856862070442395401834848322229444874135980794360112381497646105261687679314560732680411521992901753610639986791263847007654344894619309037379376334914024631751959777591003497151461472646970157287379175225601183408806061170363128270229412112826713000331634062196725008744089004176245852927250034743292272417054070541695776175824870592760474408522830594907905967709997857700980586101917765042485865605861269006717278971768333364968648760772609451848136134924163395318577152616942141533689235069260118799988459492943707264363479003982618637822012924964981550347071438670980603947879692890146175942749651913583614821995330625095409715726929509509219186853053268617297412651870429640468900653609645072710290883635027949776954508536826036361150434467997025469012059365082415071614542751686193516421605616546280334967983136743215272729875208167437130870564184014485175321417293943539310290112916222983616525104479283406838491770330705289927225114706398369659510701699886300157908472283596883613250591288044194668554832372354211578866349559458055905331099329699519957682551235775209191454014061005410916706005092826760070496286702835194042386142047206661958453615591040069438025885365764232921803476180452555503962681196882658512496913772693208098233346915546993009422172850047967767192335451603268094068753868965211450229674972835331861557262839881135023025981732057244807527606935147681410135193393113341139692365697927851232157671529934049578596906818746163461086251200439356158423148222414541526538320128906109088765260818786006256788323338316469982362271040583163986248370870447849190466401914351419393472023865913414236140793438524809272610150853641972835438434174243810001648266813871761151701892936106413134970320035678953856715988882557969168005547786852376751376300198759656824813360182418637949485621856321714854064651906756219581297192217579116598228695826685434883841741277784733366300637034989829818971855343300632562378090010757222952705266251641106391875848181961386956832093925432239322989729139028906298065214339884176271883153901190249299903558021929784162681983462868672842262161630018789200112376313058568577439396849442062262401296169200410163443506537628989636179258710516190687554670969200977649987535276205697537164280211157495521965326205246344676068117342907251583388968936788256527245235243352042603753676425046912124708081230415925069197657524472576111921019679439226013417738777779827851057352867679207785169530346819554235454493785346732096561427421050801979439412325025418806788233612058253970515328890025739659112464614840323222102199736615524902381927240857279235529404423098819831613018601358734861153348194330215248091494979096344320645378356927507928639509931586156865269781514117792219140208213536039599622984134278603161458233991599867675405918273658608966610275003946648322082114102034804057882230441534757441607329646093382094597173483913310610253650005112593417299522481345793793940063668071694476042933240025975836688798172350827315252248777117496456481653262041768969940999370742432459156400986645809166300171518852874040300452655881053912427369289099381170242779826832332089914178587508823730184998609085220751353953675225862661495140126514689527075623231460898812281747407752366079361555913025521572768115425335172520028759485748341861794010370258911691126277155766815114147071201918157514685811380761815450052368548214343712126598388837933701441452964953144066281907426704318887722897563388962437106558457333365742400432313876030712872593084924093694923085506251879685433751653539541464026796035814595510317752864640587939374036037397313690371597142728274912838696098564562988471212673067997867337557952988088449205372893266919570700937901872867916141144278126960957436529718470012045273431582639637632918938081171813249294634729561475596608310390333667588796494400663145368264399616267805217848239629943566293804738317981422466703179345629737074323748672335152485328060015059604279828966554910990018419429333964507563700123386981232295076364619472088287220253012602555497914840080908412341706444262734396576470189609686482181113414768428319167788519749514067317880708293272117529305866571821642726074917641288208219948844167033308757639052352133287424068593417073848538624571947673122463449925919543777147909236958796216274659926523704690788511576717076591836003643808139787841176505339929494024298146794815953857457483183208018724324653406428271627599872474473489365348765539741829463092712970065573901914193321829782174715719401278832745185961358654853716537780397583950376255886748140311440009210237048428046438848589854454448306182091531706561715774443360296987425263765661856434565258791193158549603304768352950526641242680309070702825987716492550768846776630587651829332584939000298244839656487609583548543141897869844128315371338267692860984392770539529139404058447337454233929564264252635227482251424885048675590567247851128700827665050148557074725148303130124698961202878393236493411617088430398131163353015227694862653305941815019806638967850168098285476328326905448958904888868726854095823854086928232351456970993743732475209961731214007696674247211504372789181866073305567229563820337426242298140666286794405275213457765878332044188813445803416658784855136800568958551778993892507011369008074278052000601713427772664851571653957156674930803361914839435126823380977006429157907338210261707258612951118878863697370300420759584200161103745997464356388503461895831850172990841583667396884178857137276533466081828590320695034616221098668711698909739033817041241056683687404580408381074039196890073778158050193711186285610476618783734099883493413641137226908683532896313624920154709787022937258703522814505497782381351741448556362547146352333774864913678643845029038387590665653998006650277802371146971878262642802683991128308618853106632787425947369184167856443526151617245843972679145062555560686629242136432272252391530487431655270739009130089364436677818273203491838711919242743428369389095333430772483135621774808997710705589480156045762545368824990045858412462657716609402065403500009208628418274243199188842232738376265258564600524139497672706263625473769664302478709003678698036300478459855394065174300151945750158424717922695890826505205362840463617729783878365891172090497605625635391418847642087614646717988799056012921082124162782903309771884911997253275256941964794611528851246126485731996654726282050747279155224021517462491828721755274007929341069537639975450209771663217635153196244540106950928720954449245304438131530276820764105688285909605298270380725284830699348533144776013784258327932083122716033593053601071674447054627002881495892709365937762994712885299386537288625174965766663282210226009736941434197574320552540854340753700791280498498250903601003735900107514875201564748114126481067995510303636225494157912556592115487353843750032181636541139727868717533307171967587017299425833278956230084952509779635562300268673414619198195306365989602537295379923698347207410455360610222705730742118895347257334025969874980903317283463298681265849142302256889933700579592416297944086970145459210213155443488029916116305381260406641058396502355237390400028617686408972842500073902048317566722285523745254172413136428360356274430516577309942534394007261981128361617757419998619473638139579231534011903939093519598318236480002561045596864912881527423413820322254013120870653364124987214140328932405445918892049535819653930615842110262396762736107924282238402543229933722890032116234947690798627358520605372100389511847569856350181719068911854990119248992604826445519434859663200596861298179550939212624353021293935417063928431033129701077933090751712734414963895537474001492556148157741546539534580529771139844608489192367356335772580418889355579029264782818165304137891286849197540027710069605967197158044097405599193669498351793456084059436699131925804638821540148206398749697531579631921072750165983919348993346101492237421650603022297640118399985476426765443518385366944781960488294807858902893801809572123304123666566156695689690950823364953979436623308161322956372900922039590442487497636831731021572864458189728438123788247540325751970512163083158347729033437328785280681398149510920547698548906247009208896655382051972920143527985564332853465450671498593607809799665029852412295886060115097094131455518526647672177167460263553567655136086356393024272206887735962895126942849428480597304151322062819244141905903586723071046715601651853757639412560840175815402938974245837903178611765166042485583235089293905966322416819481462326952001651046795446390594099940381541755158260161128021529723136705275052661396238421111815033040394159334811667603178691834621231522792851872057854313459587853156259039537038772625871005678083933266641370504183226785643112034395937734237691156957076562040803948227263999364603169187147833386337501491718897658572976859240164101681313057763060106755289822491309997194828305791726913843567765513529873093718213588456389300646888646848753466104772659868907223066666861382764115352830490945375702884813136359688264061174095131691787925829033928992028952375726985285830512326693749937408933915883724459267065116111499500454578684697547365465833853097370131783029742523271058460432527288253541302664702873341441744155979566939508921081950674524608564161777800538344480410986122738446122010459332466022341994787970449923090481043959410606789506995476320691165031729425064734327902231525166749743914753089403715140414847221320088253478916565379949515696343832401733640343738016292055725841879158768166699258706604427004472666765922149969309325624157650819451850345768982713123900404842874478575309497316185413238691586745497478928999738268881296093493655018116202714180651163716679536176059258864111012297389768220912537315146630578633276624864064914323638883342525741986962949610074727361612944418500409801620626550599192562810175659581487256124611092478216849378391117817885232984587213243450958620994060523535888119332639986011629482572127920128540949927694793510756453041077632452329808338148178146493374396474730636460977103684406632619692345745235831374625488487490456701075125623280387215855038382703389733353863366946514437929297242997518771443556480007788323423117546875726854181164481789237932232779197469468638731395201952338872509240268813854820462496628484516371824305502320606242762427478737446142411597086835465740335001314516939619445757850120336148971000845151926685334361065968708443445675014840941488275175823144775481420383807525570425122174759574578777500687882858198207440020295928691199810805118160948679274717788981802859432852443861360629261736664264118646674419531399281131602594914541309503154913520202213094877498919263357577882897286620608458913369165268432051744391715313681973029613737365839617896039892114362734549483565076480610583144489429387438322478469443717085729212685726428333676590688711910453786203847677575437305175326425111757226856812374830432655148000105135621287480543227341824269943392663768661739830051875086784377567298731138696067632411455148572881311153559962572169877771380049387461150735299615513176094153893776892661469515461813557033964099439886487472004221596475055647524244098190584226984779763327643827235371358805847276971689370632895686582030514373607842380306051315713881250703120390288811232121034527625709443572042808001440173317019776072996521995992885425138203833292395034387225167448522853865803945112885103137509316013206462912755272181302368252491240750222188193801683568263910737310233172089669050401061410576135676438893988340647878606512808410468761616734492319101692997519036480799157746135512452282769277475700335915315730959613186741675458060548392660861157838326773003643753675132065806192019316055936930088762688583926198561474113160671664451240124987211482916612783016257782864646724662000627936435404945127644731653746476207316805214405240911758455535965143602989774371173419535808837390294501946895445946392699945628715525081149856356069388056451045711009999293076742662823295568574624185855238568969726285912366565599391640017072929299557083771157996630980060385487568136054187818314465010833301690326907256977009327353673721569622887529136375363634202807086000336492785335636089478128854041896676437207095934181241913349877896685138438853383609297419416505825871036421024733928348338366709500929588041153119488165954206252645042639332235484551538765104806127933615833080286989326282453206371740890304833092276570936101407211577534456432345181617872839693492937236794252697097365864756850254223518109315201766319690001355987855096655458132607344775680961223640189797767786877505054338555832779579878162304419429286002540449062037391955781318629971005735208911484701981685302592697757106648430306422458553443672923898945368517474018144566432699153739153977357639886604565264144235114629519568179776273590232302055152265464010135717804897382242159887865835022805906951551715994507204113711943820349171047025878889804651435961766351547907796479641331921339072622605955702710454838328505081268382338444149124591541600735269371061576234134181994609164931035558276147112435874680520030012932177733255512322175578640236374382021496797238469104766859076724566781288191239112724963478480619556606566594704088286273442264137748876540981945436114797464830617039404462201368141268143102001392372764692713375937866813254576887037533523086661157778162759107311004365732693932001391999788225480195993670291696793521642079410139847878537948346832687563759891775683955198206782167052358391410343504889480105782487499501434681649344054795152855930894712163968879391744004929500137893148650897248128565287615322755184977058377645188589759341528699337836976419773299094233203872476804210735625084915414740843695886258899436811754884550548491305531879716081184058805458262050777888107228757508121687811704339440485365997469370062849881984271074377614838000037557892242165011078603252298041289560804724477407450138742528331387652575028679957884996866295340391203499249806079167846727566674218820544633440883832045272675398533283060372053658437034275009462891419134889895799301347716540044286363391006950163471622426662913565171394964497421012214081781385177899037004304840151526595887384386064064930482375923049966449349850495681407478570870053779186684496936903510942982243914513931626446640067433274366855578852470086729082230776898702628700244046861632190567848264511745843388435727403527147591106975490742116368213268390781441123097949403427349276831356552740466320198339738160408493806473783077230154974953150282920070836707403506155754142793282538845353474614317861661335488238127261312055451172288883650364619575179122094316891406736176610359084945524279923092591192289279772045894003827866723531357820562468259758370240709526783640795313148807351069060419107554075206205159095655750479148848521861136725630964013325253862639794020041058138266307412622470990924418760703911946868028911725093750758964220971249435782588314934040741424608223010718889492863648327616727334787221742720094515964116202068509837454637184173919795693957117266297937289543304497612746475094371252766368648435432735228432759134403779781452177500709636919445772260403172339859580786924020564569574632484050889337516507322615213235081519336071016126286581318074838699844536851332448677538179146442423505922211619358703615120108517167994238838576420218109833392360774534057013402256452343630902541084616349328079550265690220376430984639463740527341937529866600583027972459407419139321678799177812791824343209120270267599270377490955734641203964429345820748006703505468319417660602819482352716292288016792338250730156565234078652740215267605661718245963335927627214698798863922028662446467406239270457205229732223223867256804708606046030212413517495850969997286168254257476865631103556775706899139086847915184478610529344716433835588786332091112374490217237585442256614082533547852079092435540203657462496787022103235134917875140212432107633278500295171419256851764668961064796927509620204215609077958674627179231815265693800637558886942233957360652665055757802388871268321525818089987983732686105700983123129762353476211913668451014091058164295123806941086272489828395895572869406107839291976584322713597127256679942909613156292162347128827330769965578262715813382142720015268049477543108101983294859383972979601217529633796475809492868401548173121386086965129933419334696107751381007638002634770667156993689353432164817042360879852582019948338949728205191623126107555073113629969329011700845502603504339568632033679036364904142962965448502674693785846844182698640057999420043644227585139844814190048618283834327495023418319557997600132872926937520711749017212752133094764796608298872386277049917409912390445472559808209434264264292471393851580016696190019067486368640309344453905814676411413411375617458623376593773359971863291958038684005749885309847966979798590003503013231370440310198397912134237066454237182153796329643396725708090247857661311986129474347218521141860347587255285169194604342608335012495534196581211801459531994009409865753120132877252527451482091021368403431310026483998242038403040161243388145578199395230174136158780413325414225631833986330652534688288781329803319332856896210574193363304910102749696587134651904876965110399549622811939079794320268944336991173371520531561670554312584348697085365914012943177054702866851307467878693315675656532356916285221724916477098117386454988448066442886835062140629991629382113781269219010578821202710497939302690273202602692891234514349731024154416484390999495823331626562020128550558482844653603910373030730024486336890111342770561916182877027007938181646940943550409865477293386221956917330271484393176679253428078158283611939400643066567037477148543739853269580782664871107336941255464352553847657059163162405644357253933407725036743919249260458770891653508948835630236832473199648252419761614959792723416553740660531818878781182862320138506340460225247343238583180955564799898966456678631694667367621047763070063030775618915528556245330858137732705037148225745881726524574298855538591871290892706758392928673271165838758934956696300979553725257390245392246193507876549006056751151293578055703144878002189782356747639808068314293016607103353643783800098972652873850931682788013359578683607851258962053636394789206586995152201602415121596497871717792630003116000278010709194943969465596386434696349057732084984529590275151915055730983692544809608911298461232660813270743723529291693087233142439298641278887619191292746202507085805797013737941946371856215608428293318233375412604980524373704783845177507758839585126684976030717512708956938786110558558663569027071009108423490709809320977701314874746517311156783641534313253107442234729598029430170880316162950259204931163379345834461189570508538348984287627482699489956379308676767943877426983277777294838835700507130592308847045935357356901770243836450276761149101628196924784315291168204639514661431733856395843496382555634014675996573592033936542705984022416128086879609146819565184888345587134873031375350545732865380596687102434525791516571764747911904704640757255190333449952418079288221621446275493716323120272312704436706181088897450215549149920243620038957429750108980946247951305380638374926332128324990086336410725536361997560286703977503863876601421691204259532847691964650856841945260599338494632421542060532896921094867486945538926130378139225322255454718188377896291171332748941308136939032772385867761862043368711058945414454231879908683520087443853408499407455166702504886832397259193752601695463543992286057599771138443516171560879075001548115552134342234053885873305324660751190540524492178118287848563531014411419120895336992187073788489837467695664251758006280758706968962335723369572648340903568355317816556116162069449184218854439697067060268494376945364698014312589988771976745601674953520996488742019043425844618895324284634851842922027638161917139832713475894105568741167334105420661128827447881969858894180010514943245854765043065547910204487798993685478551892174437768231290347339203916149605907188384139091935313915842295540332709519901600023940047227131927354931049099094289005871426833670609491933101964594231697254635389366503563215041795099010896327059573139345023162658407933695648421955580188828840772411475539206367692485634302233105532700068202005656110151804676363185244956960357388312981937036003607198570325032110850893953924475952301157976364417905499693298293671975872654819717156661867631502045972313389681500437426135260636945982978072425187086489327152663475796134329670540266818863415152385721898320197745502190450535001829975505079162177871515140033183636459530830752992519279813360392747885525501902854920624690688755934177385181208241071001357691734452951122522577893624108641953908454095004630775356770015260509410868347055689193626875031258756126102542416513935020598685617958808799798251897088603704100271810311744861348421854412970092914968540269559351913984666429384890560759282981575545908648011842781215073650001755534967136258218301106260158144158794079226359257517147909476876199840220024375361873385133098481517671121359708394366254345187207208357621425382617491761051107881169542569355910612476092994883717448973471654451153791892614502538366153198567973058488024766127478734253186235354305097856039223234195373021157539002991880572731541289660227363296866948513598273721285061871527117963655329747598344620898242770984807466287083997924359111182514756223122726791197976326325050353435002077637233982495791087672177051710248932662292959377516552975617842618511614632650053851186691381155234665904208657111830352223620205421346513570327706925402246017690323397325149521827052556342897115082462953530439909101798727784392930427033123820094019665246199129180585690957499825448872204504099198727790475115602673332901087738227196373092430658009611239131204294067428390982791930580094085853027655191163230917401832493742067770024930789039840079731582507050645576727737618115358540589838020272833094794845184246521390514052884274398137120338410444292885782658519040353299449987023500752297892133426516478120216978676069379140063956399974081602812858257053659376133768804508782901637656906318135827043059007549068842621639638055318718250568907833630250666045008408431285851880796574811534425987197823944266944946647322821791925906330609858431932076218057340717531086266224508163065423967289181116363848882566458078286665212035847857324893361721659076899542828587950835693796295515394839979326255856724208474236786998852392467279246163591323577558925271213053148962705469256167049033926439961525777966816523837959819658064700303697148223681691377735849973121574435043472159740633203858884988719550747477279254095142457673867582227894422758501524664804395780108948032154852567733998883262267573929441327195834564881716464208914343981134909217482335276377663757430575474282937359442828133834438519505871599421143617324239624199417206463449268129907766890967676877213539804530289956816750957977870371248609558626716009487588633689866619053527824333801594085468169882287198265220998203332964959158882734898951466281029796920374234333509482497958345636980613915741893336546568097414331678678510007966123009568760627779461941286326693252787889052978221964889603354685563221987937374844580916416530866741150879378621519479022695427968454494764661646049417863277039028941018930630375661369690415785119826325535429428517436223466120563223044571780285934578541220287927877717437126584376973074597922053381060140360203601833093956579324212532434403973039624478453683092925251604876040932821603919495181026783328882570692741907000091791747682394410688091198134337127161917195999889554844233607010772321487227885848258870092513663571094563550615291859371388829747052805407102404470385974376991035771593211496820865472004287423062732268675570379201292054145739917980077048454356916972978871382170024432840910565862063514208667639807581227431456221758839025685322532433718532089728569852242601729101417021989637917050187943947078044313216000300163505698961765562768671145706220380696163674995159457644459845466183191908737577491567539680854303875192222321716352401405573221495235927710437137249773121938347951323786451404436563740044814809817421594784968743927167688294675829730794950689793009955615916960388997849791523522217765021142651072755685117075452442504541116299453383600251088219689389174718955513397000978413573139664241173311250602043896873764401102129941429383248636475961354824667741775638929026362990465992097005099290243706068910270945786432259093177083050341261383763065464569837779232020742700449633285490039583831705487460901737323096046966432616432739978800204476574765925056750430829709575508163656858719050707963023433887776129921132220391758693029633938194474683677455958058592984310932211648519435410038313314068191399307660959541614975889712863856075482579719157264491142176851858446746503844199823588536591581625548991143010610333066874116027670284408835635153840928634056534487990238763157764630266579412222411446887895494774438894105904008321622448888008445131500965475196663439128502389012446956094656652278383505700467121465033691897031097561240151025477812291424999582588104672255406987633002556321083311042930600237715774597850065783784953790792385511357268465769070559763237654335217674457219452900222710602844782326168970460875970850446403411683047081656272910923751824935887666772911979151519475147040332658032042628802709823816079966698974442753715193865535155582607485562269188923665108776043710430502310912657080798322693888077330488471970480392236657681775917820191433353789879242906017602949150721563720116136098953579768346918865903910773531061506811176991070263287795566711615826555582268261787063111043524761008138514669600748152836699037928972407455013303223979441398700968393171561647615164934918415730753501422700400549107381423533528995764438461330264114803825474172949260041568707620195625562890790398717776788190318830848789573491547506038381551172616288307803460819855365266012247089168234442903415967491664124008580736231115187870278578907709230374649157311494529409713654032638164907323347645526416412836961293688777759068380006682572073000883611442416952751044503837878313937327013241968857073307872947272878771025875580260273056768314408782542790476072367497268442481578008688947543065432711392363618675499530210087031519548638399663614845699153174613958883322150604303345145296216104615528787230693586151143105627555159916212822709813326692257737370968737480302183458959959676140903514707797566076677982298592103941247949534142994942500784908433935000844856939302573481984954929855419780041093209117710572046635828307444987262530966759194385903751559816626356544521874581799058853072621890836915369075366518448359862872084839075468939985324338432531043670849112942047348765202954001774223164928661237307130613952692601579541480075274186046773989352030373619087482924649437024385541729669069649911233316835518187072551511060381186369353193030562225369327030976713860635099636075105353860316839679331881127868230038479489348059505030131256301925564493909000678633221695064194651698853488950422319529374895247307789600871175059393988135323011315739209390009570128490663099083542871782908036352186420715513842035894630206063172116684389321110617229294915269856366049814552532935859112050759696112633878211421141530927621055850619031728865194544413629837106885850501891634909690429163523786379146118316630537359623539146463291149674470354454095191591516456046672158218720425421517214651384583376241957508727241798371212408530557939710344916933266120062489990258321539450867832862487722541059064871994622531402113968388430796933237463043280756915951247472447956996830011800679281570989707809845644550178073341229426879449450257905161017285194990494751933967940067320264575443916906070897486248864674770610977873023234040386221556744978732001995684237690253459356300544546730830747294521248581605154824674164259212469464963956343299991228329088030453147536210234056218191640047102153173973129431793715506405573369485689218868538142030316926033144633332650983752609359216353050794584254144658463635273708997200160132020635047480116222732411872720910332099841512028034528935786245023429944491847975637150543391466406522218131491686347628037766173456366597131756729440131853783494760645892593440854366060751312034177362601572384988640010048650389221600905780987069092026075177045951324785389794041376847002238810278511844184350237147886671689650562649312075433829543316862908098271038713649189677731227305224669861886780138148816974642854625244115991323123320336537749931966482296084832577078265265666425506875374846448085607334009295186513144058846269205491049739315792790695190579940063600073692120322947248542919908622807233473649601461507913143420688247295410635447616913728471286006363127832686939916146740660515078747227945872564457517421557183582265781675089754171754450899235233951589955644260481360135829515639390155379313548738580820839734852638412815553600593865864529390748158520609552255710300940441590564873167710844768456308014426048401328830013085820629482216452313726157376478850617948425890238505501734311254414799423158559039606955260923421104666779755001806786078558405273939570313879646083676690097328335584161456398634155355206638363563873075567671043665992009904906817789815574415429462297363865872948212717983830677267635776447237307887286335605542769020480665340650964156156384785413536871949862806466687938698841824700998819801120965000809990930063516209201861713433956334383975945258135964919792832590959811194935447471091076662461930045088946158001787826152844429569379975790472888940756978021681827273227064128539733285209904129724706636403268483684365437817489378699692393217608007323750475290113894273024885418832524443858711353163238565395956336302770865453923015052778838838118704039531192327172354113449327192537983478553608164674847855540242928391783703602982304431172567905954944967047557727922805632657232506701967120217495396858406242256065185897460300850481990195873578226741679475394912108256789429906513292092422174150765699655958967730029651933031213354447512978895963027306325182888971371632614076055211040370985095326710654823189785384847226836774122153295588744759499522151822989075863051986901387789684104333585649500895695891099011665150405754097419083900737695826521196268256873818737026934534607430497481123661427741322536119760851092796053606686599981024906781659898734323007095343108491209327807681097259467576723014954807847940909634032213864839805777066510549114721979486825384791005188786811213741414827650459336614771437449955520464975862947162418013815770142376090877542413293928135387219127571164105002339245788275276226456717083836856306624156250390368109242230759805860317948268312855208263242737976739536548628175291473577475944700482952886472197370987716364813115476161729830788907593039778117670387915102394705386645296876059504769441685902905751957199308624178052468038622678526523729386896194554586439885387956543031241724773440385475727954324982258356113315728518440646838746116361808327311740078458674620700262005848290898809925448486747570928394422981038541253112091101998956624862289961608837066726507921589899430053758382666791883391265533221447906493296073316821612002143585311850073374193541366934128435692166744058844287291335152400800255382820914783014619928426771623770558084652896606057796300989812541813910203944016388518756758953692515262047801560288658953657242513578080514178442783340894149992476214450700723797796297879820334688812945677294976423789162979899966798632978336284899127273712261325035525615925585274166258167475011882727628902626773723750620476248110988318421095848560923622273511701996243065182232256781301235469252953657829129392258478911872713146803101945783004855144599241572788102425486499338521432385976586059282473461019032287046580494180162673444583103335753467785375906684555833509845367434365866413135972610952546770501187268724203780165779095224703329345372185198148293880210485331293737974446322192328965221873600538875145484714109160590388938140045780476994056811393366726361538041984922560634279076370199614693665868105286362740745165675889302638068353674331058536109071121994407898441265461475040363057474136698152906273904816553100781044371762454613846554556464158856940232465164357959646638744819675171943870960376603583479141189983644058574958612922072579608936008913323087852573663324081953070219980438602876846528317397374579300676437073712740701938328826500565700491554344393139897207945834711568844780322094017257514631689767230765299198105371360650829177085020876632643356494032281280028259065332571018402023411143576679391282565376586154822834367946570854505076064893578223645672540334204812056727526046940431856278822648572016797844684226641165487345629827814348180900098149943223171730226584343832848822858329065623096771920073902700434321203212081870787052510139105251826075128481414480016342515096122269721684244862361083749044360101158068657636433465316675457690067547929736313701317402643772913908617357894454726418416945553895552491010417661098487130899113984658959013704928133006070582942249883444227484750124855306353408791133381738936239698743049840194085148949873708167289532970544569925618055176698944036784457184963830390182128197562007204749170858600883513379046668772360077364690751469654331765791046369320926054569897449716317284389352912403727406828365640003858942166504586883458518618519280359616573210130327804398788001067644906641014849174015221545107133192261113305774415618389041308103703049277378876218778955080866961370517758018972608620424230791719646056359277197934542643064464113112692371308540844975560013408860217236830979484510784553518027479530308849466940086934479605305838701690812035332935594931180494888711266530013626675161169922083423259915209440339013377804191500052525281767668982465284361511178537253074378876771223500870102794902394981701725536245723515739740802472865721134659004169357640588677646294004937223112525699419840679496366484697564739506429618662379031763732726443193145406852802449128985590563134557819983669998071434972113792274559031065558663229736191356865041389754033540658908418106655200515361625240199154381782080708250782956250674826042028835902277541602651554726296277798473103176943914040489480292400757311123144225536557073987129669609827340185523400561634240360030160432723861151379611443628520440131204915627997520267629860425993891703199387893181558424426516499611730922133793331073671492336887391815026543899792100778399341969389401864120726408799703123869770031707758888266189227937795404589625997428992025068076825849923146856782949442548180101617715634713611134484128819269092123879806844791775468111007307525208150847571564695554976342320157773280333146519308476935905452314080061270757872916373710131784062835728941597155473179495435330154297547458216770699335984222437763344189804747293008801016727084325098284541222323951858737139330183640156343518507977961027852904253023977107349431970364735477561271562197553650324867552810961751449712970592586703927825578897641477749724627113657392993164217356711697855984491762202333515201104909034511562958726731006159912276366407741166490029552560605948810373580727506227070011795996809945447652440127208267674865430979802420941445049511317334067063966430254884837276967955255090394969426203579005787484935595224626235908844418590611495063990402364405240151870889776140718520773424437173202120498871320174172787164384121844757630500332510144495884615265088449227265715019607356343479211284282197949478900209795333178625216139925181628726366630233151703287330482700215306202826066331877991919479388610484263905796880823616529868076807007439875918991746055227135733320056163743670909908265873280003193639180628731517716036438569169851321932501620077817391846168688779671080560152871233371904210991809931568567105122747939581056713394573683695689403292927921148670750261669064491716913251009480164148370840572947203924818019928479239548292756326590828237797337787747622021743375915775087524431960720961510273004393335852861746053564093945533136743746675084729942133631354398476792239583224989364159176435299212010463384895670415305113736395123868523573966685536949352737943822339739083526936435303414867118429205252943427543542691181633332868095914344657045432365564096845625564432748611474212702819714035057989597121130396683500146916678652802484998181952930981939354861723866411503926545274922965108387226433058529063569374811920478883973312498289992099760943027888476382764774191681520413622767688951743431744391164674594514290236798383619234076436988108606341748206882389145087718163501396698800061559969099637765931452373905968089731994666697689093098494079360655602946057020095972184533898009857729344753203991519207530487224382979038531745962302522603319987173106244823977842220770245686467567530940705903678519347527909133663692577208682537332183621893830540340235036675194429219803698229054628669389679668089167233311569754457915032650854726891794824414022119018622765074478082541672810341535957098434420796456755840389745769677884229036079927330598835302413571050083241565085684830905277393837214412934473019776846963106489409002609630736189471326086310319024448156996883538882987986243889519356715868037251696606625891414017865843727104507515761433845147737934280432051552453843991601082162712711398291046800367095630585618443878713335798774656243401585723925271582979437637107181141548197980558749870552852794777905107176113382336053733404875894322740523396730568279311365511350419482478793451965974838630409370253559412524229739899537097942054049633753058921113194831196137627331455679290277698685808321975844484909518181126593018675010397422452494263426857880011223725457553110944107189492870437677781951019098396836627143011828770738640970003311034712253516178294329014884629528189944397876839846363276291260098921879209250343370498792175169939758862501669885492250637850487095742230631381973412454461209317124624770164767649766007241720894661725038762791555096574112589482038265459664891871024837928297014292668319212831255341143621816482117171590861902071589455233277127198576969638659672377808795096026881428263972304202393135861786804794668354044377327626827422065083468191393595462408295725556145090537087091560403266258008767219638490077504482405933368203346196835644866790469502383042348603540732079710158674872900597063909194425139552624588830155419905626705695119526259336338866240934371046302708545721126906045950795286573723470743614050095065433724209508860355633783211245495203322870838721918743768563286446513966451370052187693434440222583698809203347403192370371648181505613052472420022355822365692905526014763043384275470398041436376132051575116653732907524577987158688490764420690690277012687973096562502096016871774275103985652266150488389789906665001787599932460731474853349771408616708021918055496234274561493362602110872542050991287737471686839493152279555937888021590599545434674279682760439031272001954728454973067756249007167578999725398376453539129536206862101872406195586793299144019854063469730662932657326860687064211035111752213152811999961480570701691330697291788583677221565085973928307716785829140287684491079368198974193949278025722720125594979460814602285145855287525380795242347557670803734737953444511732578347691449749855924658591546827178884031813610740708244161094056440726451699278460449145979925752326209973918972687267663088035990497842520599479697689406318311942753338483175647210183700240999768763347578863023811895690602398807814999092066262914147737150180495028029515927593982105876891181578003757969395053749483863183165896499943931556886219796483493746382805327904450707326146306689678738561566478621688927365491872638340962949114191466769617540620710714253487622048411263157980845288073951138273488198892308821111944723977102494670743927730945814293967952199626940396456169445137134617910253310153317430843183193385077910548535294407012986975776366140963424249353339063406434717122175179924230777402476913266268248500563886418294439801282934388478926626417793805028565272701135367231284914864711430502498498109532597115585551595810765474900173485468459019242184724873897868695240370657994197361499819577883676525105496158618798355273200654877363531952361127534575554905225009560303800902508785732841758127740149883475044083612320921430834869006899933993435084687096932419064075589643935560616895381020140845008890446620820015753696183239671371716719209242985059921307949078933789699516569624596540725646033030530810092397268705568334059300114956472959205041671290913210899633640473795466413880109752440801360347348744161173295798539190714586222684256684415641857421272282849510790538697225333812050151733023827644273594621079253304023778646499671471150954322734770858309946059258888846048303493035521190689739980608709711575564370586187012324306076049529780935657877725025574631674193922720085699006338304308222022145542846298698948448873078347187730418526382649007886712058085627027671985800643380023203517772310302815262629241870761001725937862534788926790557984217988377242608637295164784123278053346362139044851330569783579106591342282284536056402153479336399300727121108019058979057196761725931240184823469299969672715436789939081383515256881579284933926647307683163359904871644643619003447067493089957599377072163555596366243309150758509080151345233134719846151167831348351133566647872970522740592740101912791831192372571640173920634266536701036821297324578190127831452814272662777473682358925286850035794798065491134886511557821749552454679446345327172048986665617363150938541510306256012996108589322607478228752340537687053763535597025078100586576469051141705843235082692630524032720258245337173873345620500128346457519383645950951818802054090043471150594134661801428438341047677757694363206594610522556442874042901759762666629783919989657077567077053620716999067484369641606478575551687735882665469636008886189514224297998668324998271435213191029261592831576758087585052382210309203228142010737291907564756281076440511830940240407702361632093748978747208393256938836751193990152577919293625056425557710096738497555100582139671780074775398932435545560795832518458595131088729994706764750503432450818042572171832393269391153873381507309481158110898326026680739324425010712534970838844467347466030064281307022318846199659204508194153511804178057220892162127482239445354818471460130257463114032123586514848185904677668586302064642827780649576710040400892828468770028277305051727976837860887543427713028198644815798270267124775835319561394631702848659780568206461129959308146143760262003037982757660967724747557753170126950925212693913016356941732108687661752292697599201726423970578148212766308877907536207312524510470468123630213769186140250410082520445188467224263314981743264720539496249412401670708502120068664307141137802430853935788458031250660962751663035891873629985100774729653185135367014997070979215146497090200657551966478402466072236984395201281900515526028862453653965736360632694977302698516251692833763825329025183663314982899836159923755864638089240666972183127899583799427452664804143129749134465550502414729103384235399242544409539167809672862073439315541618047435982013110113778852179183799021094480163431195609982668404942634546134170414824793183880368297612791173879688845580068792681484052899085947158188731262565980149411806372438722877534309694396908350031754514736741308902358601812088715467649209166268166591374034034076764084241217804293921762292768942871542974871246128459725518324287848762072281796493459095471085976668815768024712804410486306587392639792586870533812445808064835859845910836055782408815215682180038547269798030854118556810363530651724745490068138433272356595008035498117812026927784392036138662927545118870985778191059305817830524776594690377160007729615758223265853987659507387620251174335455023781897740089429869893063629238237654764777182324971348668604118048086464830579798454590501659424705236220484074662266680673358458515578666021911391116573590994022892628017577129921635598665605286249164501876350331736424099898474896365813896751258090194034674463535849341892275185955485541722167616525981708030755633274436571897573280651532332672469964576406624048578329041134339178579835368960335257799283115454381197700076699575586503250805024261288330879844341796512957077774607388453438485201427058365551565461664152540119305067051533297784251528354058686308095508068174085305128674118884613635662885792658283046253548271752010044257251688887966604632718802592506448136075091756297389709286122891739123555241981597102758602169525626610926601379134567280520728664323700872182936914099150360256192840472434878970998624513482079271169727822297866682738509204909939017656326219515096678333428796927405184621480687731719387067277133071632541496718469666740163385116345889336199885317515284809532073974169828649034670388918224784491773387808216604062882123011759968509205206229243711596634950858674794889605283218042822389626501135551642959194021073573008327728513573246939298516505882859926594750736515005326788391601904075724601202449332460689101732536156468496017684279937737854739411499297813856826234944409572919222612813121395037476577685324221778339388168276600616102327088627130558100312737707049036301287781836443331612053525190626592090640549851932194091744687879711311275024245621904054859024626267326522591307314069371873675479770535338066675176051983664405184236974390144234397996142186297017999329571500398192415935481710473217941026097809682537316041460240403351901013890193331588973615132296943426040246259830145269765426031088981847658745846391295115956222054203167761816531093018205324347816290768318645967082692974956091561683818485762736798664499607176574484096838761710004604338665309882108508679453475257516107539183416964186093271026707681554848839746608267333195583561384602529147648524663336485776278256692694000171882589103119961275226062190490044666110618836415437008395451691000349259421505954390852720063600197221775502538227138925880588734390809477386685323186612277300216673304635078752245192132208868139394157999766455648442183463094132258905538356529518549924363977521004127230634855546578155805561107663079516035018861707038139010943523258292915681696193038504346048523899235896486961633500081868684039238700149441174104290527456168134893953648434158262170084541929394809994092624213299514996017296971270010502561932211595010460754263100007575357220372198341840841552609806930662007732199348958406061471387637788767906398458185501206838513494048453700974320510596615719604717336447562651241922377423545293755137197118519224827291455422964730055971235999144654930676905409424471818471341632784326524965704405527770274079832429006822158967751788179403542113945245033512894289884314827995926904370954026784246741363900566828128467910125655173418892558838621645659617156057471893409225164444878283130235438100640205120857679208129763083882093457641303747602866139740261804917589096988488373817154286233251931214647931433238570559036925368152687399029626592921127374595930016067954340292887745283470134640562364431520872971014201460651584817748757017395326834706677080000985687528926803809059027801903791645072756225103136788899022344489730731843431938438454032991378508168546356473464027183217465075003489337626046090853775054055266029061792555094548314945974579071032503443969777470693814603521335146899560726293301004543276107360327253280208608305224034964698140099617597194311949888653493372508818052403106907010218181991139542059800737784365432149022406645148740172011869407084998578845337512410566141101990219900579321614748961634956369689597298716846872130805383316317573634684963703739436409000935998046128124595023488462553976974007285469914621837443803280010587430078857155385073436240877901091248832904840350571044409553356295874829938409573486533197724463736904462364712657097841412229145270366953654025844292403149158007440896822396371869322683702091493546947219428401508561864835352346218595195453874304429986245555345500015929313060360111683314641128405197765671946662318809309793862908197095750781057879679026054569379996245419686578476326981901941857916884483455425480703934356542135874368452265502569741678421057068131725583266464026222423840967505020601139816384465946279052979861104180666456829836394293945667461412597407490012651793243106646277929192073811439458772966231821157970019056182623385030360826131197899153788299179104154356356295699647002512795728767830189331946619872929649540764356689562861882850547905358137263006193658541445404921523393934453474609160085551630242305280403246857006544501448663709106220209102726697823311666991913766460060975192599657233572514302374045565087604404851401259132506723869969500663143923713510830932952330593155725113773915866644571756444289029121120923374850164080195047448084792294469873645429825129709143818682858815306599865237958035828338966392191787168077811902217497762129808974098551951361244901313512456619606372480309255557041149202800988228887912165984486671660911022116103243252176155214456952105368370117803601596296107480313037963176615852452142003259619325573146610326398731112533942418197597008927840662248328855028911882892908073738480043592638825820762958220516979439768172348766696042672481721679257457720228583718286971936764911527470136391312073981779929865424173048704610956912483577769069351565705883534852096199052068176667637381967707107054820207735807135513373973450183837523310626940410933997695709225005828705526588951773525212289798613271135292568050871652973921573387732043420066167088646716945352107052882094550766249625871864162162313871585316573750203920965853785151635285370198894940301306350082363480551130584901132879318528062357652313119055659511775252989422539927583941346406094702147769942074526897803309389400060849027215303962587092723413426898220415437753514266695708788048165470404753718549157013761746106357918498426114005449366981825481545150073225652300408736160314553991266540564278215539476881069684427600786217916967740002993693288121424930339360851006777199906765281912790136781927707834032219963686450157684741926211790252290836254009877129841184754223889795762153181048282005366551184132509233374941400533111665394056597431023446347348624818853151659413537707614365093848320808482563301192280135555490606020563441585195612788201692952859315685752435717232557053986437733608973152348587652358317575848459230354886114216886168004248584873904629467091955540205081477657414059885934916717471341180566324767887908791098785867739809636400437813109781487368574502601783052857001439208268421639421858103652334174745157583085023450661219764450316260567925292100788163767419753900288967151306021395208342048026756764095864872433468782499217593103398558782975043297510303585358020585402078824285845887561364845083004592664167540283087975718061596805982986652515498627508777854016283129143470269012704944850775296267651392032429776629196953518302577277840601301886947967240959610751560948621251201139999379250394431134436276860634706481567265664693178039005997641385536475925009422218242878416629980113608574564939024717335910361798976485752868983767248356216489940544342148530626235307053850248308325651902937635003350736813205868411265181668572476615090527476474231826194707306042991305005549043098895636677935404682618470386901948407242320867547096608023358800894749971049149032606117077106125765517954794907339451123371468218761414659836088617315776416232861000014127295051916988307033933893339265389172683733019244090081341411117591666208695867153372913795356460256494349772018162454998915760119470575795882955135320380484744031866271133782954050080492259298719269548828921653449833514324650740345502417911257799036605484681721395677976555008975657142415493510913398642436486204370833318277647224496179015910160519933413204384423288839070528737621408635957622635712751618001811450339102788635640803843485719682392414285251397106069768690245080068003764395401617671842509054353197027981363281848796887027197926737761069988587118607493893429212203975170813499825287710535457805955492388066402682942574007253449675250482738067111582930534412034971670326257972666571197395921435819227980141018497695382962680659445444130770210523654357888556359203476225858579172894313476405499939207856791285846305069817881241056123444219898276771854959252783691992903073671372700650222919337241339512395031829248492919471276771762085757964864916846408251167920545917340153597595625297724175738365379612193377950767678696319366307655297079207475227454035653843408779213183971760394832969506720749693923764926156797576192456170663904217742951790247512832796097567940248420050361375923903671026584906329504688558740340603946434147935366579706615086551147455852535748342974785205865096477787837631628380876195284666777117811834425364509249573867443925495382655870095182596915999091118538695224612509090589084427783811453970967805069606290648873627036503892135504448412039229829806314047228071189326307306768065780607935823973317874071299490637794318115522763412774976043826527811041342446921922002914571479905143838899463423652485988217440419305829848070211616723672430922123407827743403996381443552950269250862471618006528392178599810421261172337134529770461959427435185667699852198557611157384983554599454236386568780538491685167856018349579617876314134256474811862270773241767797148122359435290992050408080735282209251668227077882901578385230057633165403787541212652879920819586415286873225133410231889976141960437335577282169381753166945950468678392816233446122394623067814402788185058846177445356734989311452300216924459026787907310180590890082448381466563565717966394047683105153489421021594919902754720404904748538473983651495755130497267935961236836970349028567760152769562677582781499313376743818719176525311415471113755649487719038367706087409414644415200740517254020601643586394828460716593319241452350944527559535220469471944574685744140817491462286217828765181538570087869343311664121319308676857904487593122847020199865243846173367555099828953073420222566983197304523846756231731111178972610748421115668446556620316295747101055685975392796325373464865651941144420582602017799729659173224837219485845127699526325902215702146827858802146660695771959997904527483621798616728086255059337445407030305288876280017262318495255816234018093060719825961321624280587155438885433935031400433061550745487028410341883174900393613181729020565494082286924974989703675680236736635819790940242110250285518624618318695642158860354908742944119392985697987588617528891200555141390819309898365216031111181567032267217979517717677323383408589286253491020987947433093827526136991099210550957393209804463833432184378565152117203515602153016946415582963152048937283348104518093935604758095052545673634203776300880086321631441812257529155733477147719127964217464332532252308130682237699096921012999235418232311056609515078577728094751869760839016232133724433197390863448120309816660189455495572091891622107767334607305748809109249402164281284601413968228676873399548339934525369125229190765965294240217848682332648605614018602696130700298222966760017715013252146992577327770263036964494549059163852309930238682689827523150527479378232078029483318586023378891469940744764482397340244673644883608778710624517583262686710827360795312794927978489147683621021249946973641436173919561834248378917074794505815418831786925635860864995334198988943064245681592242539355083043521251292807110145391889100092467945505513800993658352475111817079810503075105600391663945155265353830582040136062902098174272889868585581162844907438031943267863325486906472813332957730469600230492314825456159246623558681982955026454313477498748745069173058838015439401995649424809121665220638250540494859199159578144042128512901237676778985935238929241487351330264411734957220330634490803839460779653424688007901371005604972258924113867998489308335666218657547163732984767659727181461619988607551998988981702514756183953346291265029087581723182313506145067057523199311657414902134888844261608866271575831307439417234723838709301177098229081430336896747388443834019351427031652331516559489367409940103167820532641058872180080584813890077840430143262997713796859058195939433113026607770574856575982056358011412953959645519583323883125183633237907472113006123084106503687206122279337415201503839452890274846704721863638710252681933408226114344921098347232750580219750604884380890568506827540554286168558868194634162681865923006949007115769123940490475571414237123815050315798625981687447777437104282795879790239565994008406769282188522919551743820206069370965415900251044757634930628430467267774812266007783220703361680822800751508701156098729201623618430529847175558114582800399661104812090399670615893986159157107219325861298683544302598963009024838668741589367007487138182865550345951290488099365899697383189791295117016474599693970075711223116542299005943903244253377669253822137352284170937266366917622239253822212969564285548679120813776499052443955360806065010965458908517834608366155585114952334342631402188352317920451457123776129162565015627599439228750053996748296780529967907296764727823563586665210223383824413981000233932306276863770051201057264717657481648011015027203485256268252176965434742928783620885867724506817106581413614943141136355096630919334809518356085221772158566508676102685389451047650387788610718705391400063957825238181961566512811124596720781966667992225649550666688119875007460024834167022136859335648389433396246620587945317262176836671694668916780044668293823839432077851413359731071275164931492010350782147846356407968512559331837589856516765606898857773274047090815154156575503825887799575153560463042105856373170171140262276165897692013938063273777185428258679611389983257184269930197972018541652564958772677347148383626769426697922423397836558800514708620979755912574801832885621718830969064813909668443330772896902152828009598807608526345641283892099666051056722793443265355988132640485765720139645674203368328496416094178259465210972509668692124811869114948082974170581884489354899655265196604271760382864319338406716380760043966275864450408244912359629160504029660464881025428412124147861908985063453867447444933470397204794434058354019072115703322366997804053812034566401352822338835551425560148033289956869268384025733847709193364210081945650498236447628280174705575638175849196506166231783728611375236038298168089691731857851770126508079577517564298587020088760587782077111381657050806738990670502046920976589461741577887224078914366917276507064562169160702160832119480918622215615687172254020876513941400097463369487096308755703285327883773399565108049066245929271323680863150289665233618786400687781166018240792118477317290493014129652758095971251543245428591680863651815180369880813791389762915397106908228084794141827204630336190986820253660006299021227218357727953570530149833740638574163478459106564535698658751843749234954523157079277049303326672766136438470844224061639841374114708881699316553441434067998689264666224255957767645728384697190725150896384161582666894997205274376149710639153195807241471714577342823074747411229138105176733598912768241212604754765757603816278799659177805686691431881473900132550592261660870681993922498963758784732906920038268116440498947180409605721482961318653496927436064962584424143241834535316770717488208977003661138633965339764490760130904489752365587508847701395493946398039090282978891949115359101304122234290975667878910853703572127406641687546710953050177557064440703129372066546512824843403363210827552553543269670901754244402678724480649104461414070826292844341992088447776559107722774243546089241875135104142405960371293785705664317172568828447539717406285396534300452753545835390039511556784223761743611542461767562899908050055662804413065688828547915261313525599164556743391435767864762544031649513988866038850510058197952363261670340570317497346731297188672186586933809512412312261888437045490345299560926330240301110245019254854375807775576305853262823631021320606076673177578385574966254079497684788995788277820830404777440223713897741407979373246881066252719796933695221777906812896985750407042562712497495475882595596070938973133532542903277726263117691244948677985726798553032592519592532117911737693392883333279636517636563976337291186284319366781046300465915646282979953441178614388222788055551486337069912396058233947817268171405594735743261846986922278369475073889138686972697227823963751901541826925625550120231945368700980011276043298102333800768983324731375729287625295419452093090290964782568509440303376250165010297678592948515617412473944498412644605228096586422015670608482013861911700041077888595654924875483631309051650536338788611725663956780351181650238006422990683369999720626797396305836235278507816834390571750139753625945122771944513499464705099109878500641764757791133981674705708107311024209484720052929424840507567055446097466514927843560665686044204346933084752282520489768620323816037978703959101402550851693650770461976208914954070473909594143915669628391166680848602617034422048369822876276401870601063889839471968324606463461029738439915910776747735673105571118516848104113723860237641229731592931280268475459148618534206012120722080892008730446921291677931166351428186050728832432262164713500201116842097218816203230353763106668299721013824018152051314905676341615986330520891652628656622880929401937401087411352650308846395292809451446354779471442652537021638246386510604468191364506679662403367063263836269936778136970349988281063068236543773527226864844995667582033831977480878566668167591387356646257701338741247906353482375003016906034713284022427084869098524793213406653562869999649456796146820762002919215258026286237854318527581256684510037500492351532243062601195129196667928400729339861420229696690155015564216447495779819953289807011790763816331021025239353420014657814467924594253203195535630089786905001912807239644897914984069099116802731962555728594696386345127044025066641830483716789835426893032517328509924342618140976909641339265923666220557008080526042093834328505902572518346477493127042937190127062391466882919662488106914115726695776150296275040381684779912236316006313063773167642623480079927530877367571621832739651679228075894194800383168247074623270071648183466469497801029497083015295971944097585026045449671958913731075977613139746494549066251821232147999337257446240915638177222593203673866317033667895631748662804741210667176555977793580539797072556970655183945547678608153926861644543676290962848407972357508763343826011184041267490559206995981248228161110866350789175912898439133931719878611479869220175090603859814993381340366337343011810962833174773295744987947712892370690706389923720143166648273573322592113820937678210797575511379561578214869795739285181657600333452423888871748124589957363317960689135171260394338717871553881520047119367921354964279172529945822074640265003708708255926897433484588443762899243360335134417269268953605030550856183080926000871474103201368658008646699612533236958303280059774614467831855218184562649645611796858803963216444021704600975092132603756653870499160625696025332927415054818065536840624007455723057673413160894593798464430272147380064377547460833537628420400629380964978795615816769871508485527949534626851314372954660713410425657178794657354500483053293947511827882734334426233433407837539406241907497976900195526593841766855287777285919071843447115970291409041120097276101954652692823575156441718469978066446983488937000016688399539050269782508860819523063365794317452225175391234726258053646792832874144398317942975920286506761480308357482834513758271311151870634747851568349111092566588016808841547528754590461562086201877544028869882572312741261606392488576793861779310102066123123078104646880257077331759646340245874480463166021999609427428645256432107617047133436052554379271604166102220563586790815159583579610902793030652494731472534801634478278739707380645059509634953916325681062094011824799789238921948710884968816474508497540089626126439869769402126802455664204455348520533466096884904962452114530626252846267388778176298862155567910577041493337073254818054396189692052753290596515551518441847378549718561004085781237901943445922999427598699333054946195025021916310024461891886134169935693996613860313339359555282387388144248541460987725624644574503876396593393432591521784352345929622121522068849747467100310436881461179663097178158755045481296349276414594031591858182492803443488435217825614250581547368860073299096668034037036677238385231642446306434634617578782893789321710762101156120318271551639537697217649636662973973292199376610751595143646820105136190352343252353260987740436393055119157134040108516905273392381472057526945427360431769024037729627766753798668467384857809929205343039769001001900881816577273083772240057984155330063071921939643102518300751144813700534295129004463338413375765860895611518378905802499459076133800912365228407866697919170586465522189430765121461181429154136259535479998024673357595500744473921419248613977925281852862078317323225669901749606313729869809442424011250043331505752415447006790631239456801181979694671884998034776856208200014234507915297179762668414540865960264820055395654049760955902108016670149490906157626441000325273260382727101357388969870990200845958245741803738513193072473515548629462192929011727324810728152457284201435230333065623806540536604692682316671980588724699410095590918234181298258662353842942471304277353506572570049785311656965300688393451013279071911497751166532596228162335677065099680210095233383127839640570931168396553471496986141933004083550885394818177721009300510276761160741393903581080966125863052133420510694954950761520418824579968230393919112987556133494610261868044485061900165658825260978526006524551410295249181623213483404538393974201235576954338977415827817440756913549457389347612622922483251102447902127534039884379482947566571211387094527243517299355586692693799694410146482260991457121788248296825966701145458518282643463548770782778933886290179245704009399324001929561939065260109646253474981301631781000062494358431871458878835597450947139920783938562697647584008707631098938103680274127220251225272520285798081719943969494926473969051907573400400493264279138584184279954273108032187651406089588800517380256582150249918088750154593895857095362152754020640209182236712912801995434647128305275827302148856403692677212954926302203420566019062319089433309707768823651678605551527167415139621279019740754224453519657467886866693923114346445351270907733200785752221527306726029883442826683146126403881389844898165504579914669216461806950138517950077037375737446480705752459773883798901939821114873401743288139310863259429008895386553927321658471500050169316328924790481357690745461233058174880813250250333869755216115669948079040437129636540822086098150310789206541752526736920405097648991003313590967687935305805735847447273209268238960128886056433722529440808080008994214639197538488312931568973903336835988818606934940541011353488673984230375025112644506988545601551441795513229843388063240139443061251135756208166774544380253390311315102950469024338981306470523149684422286409467014801341626158241152306599031111625557275987000990075879221756947825304971301960725196342609459207763352341403733633617787213320436130868583515368095345276501509635644278191123910750255429358607892271919231321350526668392539382738324916250357644688727966426429354999552515767964326078109931654208096614092274796897267595698123883465505881795404373093920172925702842106932289745080033262154749414413228439712384391466288051043072677249385683894090264609422867886610547623294844007479922258778362158725650282019399177929887114493582005683487780811862430340361301319325076382234762139807381415518677317445818251662198011957626552393830940567294595813746014891102489477758759319556739553053018127134181071734949538497107896689312975391904682735426988152365153058389658413808761863548321650970173206130964786499480647574569842446927733942282848702429069873990244364608726570077771490290808328532621952755318310272276590077480974799385102128290232667672341726839629114032800324451932040964472617290446556183224540786677366384484293306807223731449026601589416057997315194230674557052665864594848708406031363223559303864305463523322279119847576462723254298781170606602024402194222149059310006087291174168533786981083439157081116506910485740443208883762183638493111426075440907161486090756745206023652201099605423695225550403293884599158477764254778555026581245380216139266465086982542358068647915121425905161901264136278708266209170828620262051902946379880576506811812459266240590818766492600553594815496179995346376501444194780832108055426289820457264172948069725036675817065199524262175173666902441711830431444510415282047432905631772997547796212682379539136053218303972081861155868434998291672379168998673649200525345868573978075609360481956193971696510635002919980689217548601369309125229062344359550379103277105142212634368365110022232690585699180369064779002791650872473557221775053217433734004729395241838884602267280698473423187204902982408337785699442680675488208755307675453078881928836103221044755721616306337509088879608686391967083941253363156915300608472052003135804817338951187396701732592687639948816101074430681160472905734410015031207426028879683066659802452081216030480082692481932088962886931282920195738409839388791561759444665594830633949556213456738419573061084613006841205331455857145226564415786097546126462537564302668769325672128630397532229694382017680279067550249824544452920222099902942508915158825378291073631717679243565972527548465860098839637960685652173872296429468352404072713771478020386317645026046433122967268066427888389141637758436191649080457324372197168219939314880365359134052706991926952655789712203111541072796768891112033978875018429490859028253312680205891190284043081711761790854469824699935878270963024952543214872390657959608641405542842237365354661881620243131493482308394206650732375348946273326043018614312682665651413737791724433432929962441420416139519507624632044344737781559162518346992396655914871351757213700359556846906063359459041393956399450194273489097293659818174563861084094065967773765578507794883365665369849991432207346859059023456709830566504045481916968405699707436100591093083562246654844415519455064504361962739526519089255108122494012308496012060826108235616750977094658467524893799872865821362392412761547579206858326794734913300133882515343534479926018046111142034475502717401118090615638381195271387696539852701705747634922349779683394833667546563241859804060015705061167094108190878456642806167518989992152962282017854424587999820245102144383718469852955806277960545956346074838169404563909580403939141985831229626545038761440722833979042354076222803008934339163730318805858371071011712302444080023863763997123406433361313763454548448732034759439007335797754039026742590309731388891865250703224671677711506603572890243767012684578177255559618600496801307576946720997831396224039058527356704157426049484399890607981664811440301203550425852705813427326575749597834239946320019897563631194430702936375081573351177338849343924799434254456876994618285459060382676024663159052037165160562439449499917053570539695147372123773610476158053125314885357015946694128484735467749310926579411759417201509736888027720012962368556120307885111485446520948690919269645983139534375875874313861340880164902661272199859947487347182763486262190602512747382951049405317195017713758010933068429295669307971214416077252166365086402184167673152552031688170812626584657717425750584148123048669617238317715175797996643373013077457096865337713604094411187629022527014723837693480686643507737567161725194948259330222645768054098492897382666470948277631343489857818164164234353557746241271046846133182936889176993974377495740553600363421086039481770033769250722141830945419295246616619657517933606163602158851462761654942973748458037460786798215176537787133951912509144088586714752504414092432801664064410893548477562845200515650466495575222035764112916531717771446033481357497971600190223165067728035366682547757363391631021732744018048156426113530857350924357141419545350813368203060078816245457903824165924343549147311984225929646264735519069579397942484214452571719193117372468611123982754513402082759343015044706864734587190598046270033549315952396902348970332168430165182395587442246020148428897365927310672447278391158902649137691768270303227166005825361014935628637688991807849038620097760624770182322168426944748805298616858671754210513260427512689109593942005192626477071497596965614431544934798724731828811900394997024326987624511265711536707647125420000866841154974496627892177797877267677248612850215280413034895241719634810956143732081514432785662874163025614445519217506953313277699932371078529698145705376570203232150804586447668615782969174993754328196391171576557965991108051011096650971124339119814657480651560924931766560487067377096943180985402098622191864141168744509231301825352315626489447223107795696756857287697109527257995800908551930595225102175370411391529180061178269975512058824218385476660241106171340656819287014499405344611074413813701739216773557348090386326763195824189526807736224468094399286463159206608533790738213375748829203068147310894016550376442341794370801634618399406514777025695928456124321773599133025320451570482308617608876839994321634719487555458116037904705513965908402305760914838500273791514549003478332742427674015237651325240300170921335575981855319643187981505532108811053169803489974643551607733647210212418646464269839576579027752476566489928573796781571314309397008987107223126336076239478818325759737888492686414230122281491492839650502893457159039711345152228772552615670568736251865543518660003820944686800683733441763607976696726435765501420821058958075427635140493388401694992815856292168028193590322948384321727489537014891579809489715351790752473464202399843737305479339081515988938126000161681129235077081989563407687829073425741159154622996764727880447007315512971518766503733875367544162179858117090763682427493626051991424325419271886163174802495184856872104204045027946666246388276895146301997841570045228084869490487804556012895131220590560517901244892371206188716343918732244842905141216368956654346259422088059478785204761815196247575198647811899764714056071031501801787050412146947937006191197944221683498850672815817252411019430064181633609499592217880599391063866764267039325179035269160758116767120187825307619030072800825451116045822963763871011798721704534410740994850250101233888499729771481744877090714615337133282922562213199747833292068456682322997441503796601987896581263197018451130198930665131863585469528658900872980195727875287730286633077743801230004553740021817486595935830501846712171571824154356271427493495902974934372728148869601953809137405070738618242292145983661445034188801180644548447605504096058791210386704220125911952279008690909472202219330921707297737621630236438649218538122965720285583759789321772305748025955931275811317033695390991871793703062621300189715022925606565728537981760714628055712743750676520158699029145723207558750641015496289845435946978155149940826539522993635184443340453559808149423614057361906100046692212155413172163167943102277943395564359900665619065015768172083094874190516744341056672451187767774319882623138763254630772102791019022362989259815086694114289660885749582695758479123614321317793710735059334906294813773595832511047086020488618284658084387844462892532648181194139221533994301912435252245459287817106275088460489120102375715014809709864051278069962385101058775477997281542432807169467767396548946657371811692262131239624398338588150371175734894056592758038948817405730289221162459346135776706175349171558221461379319204204926519007917315053237032492149633538930611515274262497014196235565973989880925756386105604591879039957892208604590197135918912717250448907510445743906652207933796344023081734658517505583430772521823010772939514886726349914119648139627960446968523569378111815021180109780873984139757297567708950625633290703566013914642780065521499040071790025304047158336765915792729372115161923979621390372951252048793481572139416697636856292036697694197856759564750991950910055964111577197458478370754690982103675821172152079640341036037831733615341932459971402903399107702265013170255250346372863569018174423215458642864470277747750286448781540016982998562581139236000263962245771434141787317121512724149709558037104847594608383533220556592810947992656010892841423603799070202682227042696270385098827181317516095308191334376151569058657811587160590204380760437670194235827218694231859406270139818443782572350355535081688901864819056867895141122754508384759298650563782034265338286607231330929164330031527196377647101220951196689982440425542801213878501654658480899855406219437477444985943429090636038115249561650364076056698167147111481251445849898381181899117186036287326672686518607956227840772042690846580840588031580510926202734213648871714848094407421493101452736105601809939043503702329480122557194492921808838806503822890852376367561802478414036119928386433215602381230953775793101540801317117173577595538872726932930680414777018668113614104420018588406337662312036747032788752989300727720311114282939450313768556799946440433959991425932581077699006506590012779585854265797823884239217961421150007755976722852561037324756086922834242949122465760854370180819637871662199731494265594801371354923810568387698437367987442188275344491848491251565748869299506258820015448965191114378890070526239820501577515589112174265085980828492716599124301443924784466825439946967264407439184375053791088896998897545383704332365199691550533290494697136050721772769671448385544220355653109495424367568015413386974872120330088820639087896291771529690041809598877036748522437357950180131344003343380347015461185506309295384111006577339653220823220862500382041133310298261040042540797844668803210815660875406902202349769923704005145260140443963429663958258484454169182086894503362216844422781154515285368970589038751836828868271170186970986733694059126715727632984732018526948552568580872774677804192756974356030381274772835082577038196385466731514402433476296069691526471827583496562210561564924318644657540963048735307702234281671420306508850882341174340599921880923106023876649226363318321766084015990304856101352781652098336227039285831890791508738257108869547327324135348618305986245673490272605193655027620105217159525587971439635967966414756516653832012861836481490708490554321725836487793027481489294875987234752002169125008223524093578759736958013572664104811493602869660246002960758220056789399129144971647930066418834508693401166576286151483832291236545915168285552235119839201761064448875892871462620680323783286944981912217148569914788913115533767223919901506616286825838817413122347611625593899038280263991020571777783278138881370151207332418152548472712356504892388515733260457100201374132305960003929503814372606460600543488284544526195070843590141900493791960010191639629660650572297320416921356213789198907765500298404221049990178110028847275903069501127085312914709831467703983912930586523159031038786695517155278487014995500623329315481632640323026558187437587179625077635818562885681450598876433319728277829566366118208964811593483203825016792893459035782805349356586486866855897171654684786311442676162206355084475056723714431944339140994328367493858929811854976572083366065474824293507825813895580738968651156743003861903561237563149017383948351557106570210480701022955345629569440580741665013617158316041785968633593342633533151126797528995923297871007101289022388612948411670196869916992843736378513361002273643362641383185990074847031373201080218716522722397517884792870914287956693758478157618801654342466725497172861484567073152916079839587597998600796973690840160603090422921418016480648732721160332474901062833577034377702200231668324949404299672265439592184751530052714050184751592580929880301738245890222674496944641846952362179988768669699964336030429205500015743260961576885401660970391582943381140267617992837012332467513672220403862996030434878604229739000402657639444977474301481015097872963589214835553887109127712966271267167027052522875502696257167337950372732137329722475204988432132798019987340641931170453539469142984159503976207388506637877671786514846232880207454368017149325175724227005704985587134070833797714743048085833299877036348132155740910518038838679709040341503421167137278710684664289801215254040028551699821676814207012636183290489105040980614361055241036309022681221064287590066805123744413254090560665179883735320047764151916724408184556601848159187140600278546602131787473079832199409545225739080293521528141877210516854347397145053422331804805904485312664985402824586891730441665893249680781713082901373733968709367371674978581677395579524674857016816230166184393694643398110588938168718020814728827988471380299215576220823857983430743975679809861381305907574345360559603533357075996690687472071270257079465134397693929008364179195880169011438420359215123137947140393302479966424123445998100374417306163690424249837033479278063539499904916947997688173535561196543696325098449357210565256385087935078525586821319317416302090662876186693136995413721783136760607094849132766642723151484911459255008648254514558482650582302510969876270724917058479387657486014233763314142496564997194965255852514224357053279060655648509325610768672361165377042098941414487388811456546311630383820245773031729013874603937639306719137453517488699022712463215935887251837044782240435065361191258419577737110329665850888854749552546808668231812058126752912016436319401247005037646942272681481362628434793933698419797362061182273790418882018414524514307569487178071055500636274575546377385578993953672577302642494610461601071467435584409423739283515086832320080138210327908121604616914791621983580975575933594857328715718224287568452717460123837243599087731524156090822316710438449249358958181755696885957165956394295463494343761764205612126668824716047447692107811568803750531684373386153725886248654228289127228877889980947630045761431516727896723776447336852569722260049677135801154375716557550722312980992191223288636892514856728057336327593462541730818995523946832824740849527088064769303962551619353414884053581645126921937104410253889350382120674930457916434966425309289325163264547234369154801961411683156082913004904899890309298449098104111496111111712158735782011949124378612244629841986283846357273961196200779709191287496021090359391135348051971811616686863821537659356945537978504326719639050410110666053173701731992374784930568695189578051945386543825288201177186580117770224828545098708226087476780059706199346122089260896018141514582662878321865537560307423865015908929287501006244525292277248005557828800964191395398936973687959105558217302069242163193779834984646449156423610194368385693044052492757821982512426636054133420214981510166099844120290333896428602361770417799836174227166145781587921493648947132156957087798377940039315436403219334325578374250731042237912573735268328639223142391667912485757821488388435831032776310466894505837619710330073186393192189280838315235910920826212078795583286870511389149870336264993741668495263708842211435762995308158085129048422603354991647356323041941898646131170141249541067454874805590181810500444886578967438860388843524845090122619686794505828369936315844761874514915089038296653300333950789919952344150894280613775392849514289867968280377280405927279962219967091175662099438384697574594768039250662171091309452201169796790263543412943762213920101184606854478985567666322717074448767508994510052093800876047662650404090088492604138542837156398040935176319474009618368664163091693984057438052228790283205100991901353043291589386278632339321223115958239294468578646904635898059412965519472932223876300148992357569623898348219195012610142003981989401043732059167252101875962742880822393037715629315825600302251286865389551958232537851954782029672754947682484633249321218477080425022744973778151802090006825454951645165955864578418906772791082219932579215104623799804013587619778599157940772896982073303621745643216070172109557335866408613881760475027985983334227020880981239777902462044915803620642536629716425076863338037512914714955996988488179763091891235837087176925165902209683197499825004988774735200558192686941912797090745207348552361253687574773054976847486398502742813540758323779301347616795468275043800390621000325285626926309192363139173726547087038960112077005224009840021442340184305542112210774406628690779460058320516455800682772101753241258896421526334433910533048685047409925390317607023460168860459755243849027870656057610261575851979530142334989167859420595517547640662317470505117138719936485729915257672910643894657646644923648462784407718898722262285800308341737572408716821675942908180557341582034738651588210954816719906358126407897121241827318414664521061442336248004736592818768651381520045751256991477345948051655609595364308546330803940694315705982149384587104039200562900248158334068821190275394677998153815750527007482457769914587420470027418988723040136937227339488441505842715798279630484798242113140061801112687219543585103707193735159278804994362978778673014307998925019232259370116592218319802231097199933845246097233823325601326277413316280241489728339649965013029149697815213170685355843771006537068402431192598701410157895792502620263235463914409748698633552961871490841400329379426679323478320105119119956711121860128480356839450056499158174626067509957685673832131882674896334222691490715736419129456703083567195310287858431538517521820603632716173263729136498163403390567935990393447876310628480379823560700413937927922778054661046267112893506620739271729170166074361257658401804306253192612229131569080765489292097234511071385773349594649344728215000459925618311631295151564578815164968786375900082016825965334539678541797227966487708252916192606405066688199359235276042929329999246443976416355099995221371968723084558030056572904791219388956335841131509702045907545381565290883838502434072149711110949540049568763748474176857064147629559695251479323740844847519645130382355740647544588618911187598888508092598752955460972798912881524700426742951952980923920141025504957701310448150835471106932377834743102496858368920693522582870630851817889676849085419130468024626912250438425903510082751082433238508444821172578862526152090809088193244457473918305628517548663158951570581173412853628795597259242548874620151418304218449730231237967469422675360536433971794182596740102069518150286445133652617042472292993740498597958962860032230655655891511581281658012252043582710277615509855950052468321372839693531627917116725765004750023488107432379110853146808308848827806901968013505399710298856298792296717168098016870004994135229974089473895378660500882101656554474094060260250332074178753971251933669313757645367414167676493753222366493354542264764745132980336147257382650159360159414283712264930404236391735720013821074171351070017001916628433838678698851357348628366258594973710647280180792974123582332025889817091658133864171640746026423069319683927218486941662600134174238783964655559889659288659079264768121522194131762022029934150539604073850948962719642344390800930480426583876867812383312543018566078101724585131351626478996189296376975377844207722747309446018433198613331871697713771671937558269760704841428002782345999549472991571526034020458149404832509645828012272778436689584140402584860710597530249055003486362085502632030729920618556434056720732555688997766376544911837782933388632658224599779681858029699234619577417417808258306018451722407070280179556209249661718009709818054675356957044226293499596101244919561932217089280367854505997194234111387655258289194384320407326231471005549757862414013579508334986340754636166351986646931215304343724469312465203411415541987701382315696904674719413045790095786081298067471035482880896892929982557544576564554960476086189242830345242384102276711777434913053575368913196832250122039213281869747875202745656397454876917511427003740035762965516739386190941444565195668359407812225453246420873861476951329459440165699227992755465653123147836009566242267035395807979607990258555475106966904823692335333031379405399597080181282313694778480971577596534702679926054773651943043300465940653754306221732928509064466455381089620996127610461293121880017485462720039759630587007994983419848606531388258309826401863962889007648302164668397821961976668402268325582189203535004620792399232784104869897570585258003559429542946897244528103211398064534626535244592050677804418562343450301158109601833695137468676042693093277122512672792229200306951523664267627399785853586734431016482966636702952159705641059237333871350850368621940477231406586272143058421693935256599198569713526465367362150223607827891945724182094453585915036081382366870800819562345979480013738961756056643971667579177985888406658801261554026338315362349017496147331539244727561691278311732000409836001184562323233124633167967417996276396878792240755952298581617871891414046732045518477452310149803973366504026288450223947360036631569000630103266905756671402772462979181054983218308561283918920879571627569112331364267452428976652995707434176013009833244488697533597565019878233302786036962209308895065915519498319963781942581829212603121818758081353231942966225223328773720501561046172614817624895217102313358175346841899317641604517186098439830405652863123424012555186040209327853431670520938754762844550764760581769535663823601701222515774061089299700332989862152850094416857915423630165697982390552293463902370556219869066211639446957317831543787111631787851930884602226893545376931275173411509846765756888735353530991916264292315957852173103042002544155210390954460756587421531832882441519016310217837164145150011780638089715096161527045703130113107597773596550346204119791235538333868111471104813147658484846893726469090194901292027584462232169336075235287557375591235032712527678867653024467698941417907431062797955188378769145719874182153866428069151516227330842246360171020671073552711199934612509830317580757673192621971901891043683329716219257979631160016154841897487765715123771235386003607628069467045278106333286563468959136671753797327310472523028512584643973777028692628502756053066847749104234242863580140807989373304202473118657362290754716263764531821919961113523838034426071622060180400687271431148305066441710082431530838924989248607515788798033586930668350898310809640073854703730013735040349418683599523413615446753285587878256140163491209071848690432300891034996838885618363551036865080656886212206880002190591862994841010766032899208378209141021712506622907696202728744172040092502195575794736180000403585575999337668076140830061074085524860834864278066208461106550097517919541419707932648473010579459303026583342211096245892787343330810419583057160426658666581138581442436106868281774116610662417314775732235198962279665135446769310964795690036786271963000211049608078698104165580057865131313864569708173590908981124613843801619835900199167833089944351115725187934785972206495783692999344201687063056853139431549922517922910520411698887565267674863274928459537962252258259663904380093757521141622106660363185866496416328354672414014425498256421419785901666965555072612057617841511722008896312638550924962121542823171020310228249903359224181023667368792881321750235838107353094827998340687678875116618600934795730984042499841627673817398861024540552990765529177257462220047694682367488481720485860334813074995385668306330837799532312926924125764025102448529786243000910873418845461060391369010613457036364158219450723854968537042152719883243305659404748491952224955362192977768891856440760757888254587610861160092443866055857329804949673885713140620918647189236845749514892213192074576445891916733201545807066620214434026324009582439652783791142664406724782602493002359876828864473519048289962950687666391215201176618458431085592446241182668992802804257499522217194535056114680620637477939204930391275325724999957988724424940869634118206404614347822632490077638147474908073781806110062765516614405607912470703398451371062542137668204388031626913800231848740962478238936566967921406864644100145113364702340103916443407406925465703993973723131708930585308831498533189528927874572287890622587393873357105610210248620386316326927720956249549220121617962422281909139873225004294957759678167695597142741725212788717177993031269085256287067073856234776338031824233342289693990088951263511097707045486026622962388469555195655628233779958969875947769461006884308399080112976035159840565290620044585858426625595313794819729262350697710822818083598633310048828034509806917313205324169674597379626686017694259798183217679847854347943488147566545872225589597085898888621774154942962836350068916964429640638224837204859009551748417933700786016244541239666323565941319909994497448986140188663764394047610093579841239596813224364493794675046165168272210238036351606751035215546144865867717982998230010129520671139308408669732114090498377045755290507268634758240477098212779108083785064350066887105598428868979400918602101904552664637725479313003257320507433675973408238544029472183331955207523361880214181835318114615511159801111908439003779708524690041448123531635578087258010353762682232211504946314258306917537217133697157136004334474821215939708187155190812626638373590732893678943093963200842482672118961835647197281094106894543064873936236950476485191760755769714833645520755756338070941140153332734231780973020176618415382725086842850656938018282287906296100367367502124540098065421782505652890243093998671388921560968450746948245734660000514667068578833130954122283217358740499580733490878009173359363694131645703719388801148627530297676229094294205810205491397622959392282394804013873858994492021923168472830243315204422400886950054814327237280848784010393597708019565746548223493657389505721954515919862181581340540395121873497996479281347551900919809926981984521968038464655277126709115122145662953587916625410510245549756470605311529751961690409948182389038766761209234799709525135566150020787680684982195613774869359227019703150573841672421942950130490156933110461276520835210573869149084447357289592046219662081207614209375552390252092949249876259557283358779926262393977982230514105090853476102321953941634846587617202895908864982783330983396195581797574031498884039521840973119363837072056254865762903485010502903430719948455222019601435705297367402488271532101924076052252664012847308926916141420371666565826931302784777585169868832886564959162548162842318098192395516734727587126678556563041136390593862502641029578798920098394014335962444163893194117389647012186807517841391586390994395108786520554479399274119871886903003997542366701464028592147381422005583928536212898704215975978069537030399594691311339234563505866399600682921334277909824993804409469739453071554885301831733442485745843396788868518772288609679743936612480725644340195756554565366684360908488412614316442917380641339112231938462192468303272212826540139708011705344761062539361106024846434677746360405511613684947679116539123213193690498276087942838565375422197179161517731675416062473624707295657119543083496682088716393248230812235726062724611480254428332768640535884636214514121997988321110428235489289262788398699198327377237685778292193147028348276287359156914642862291112567549668261679718919197394509591731938773374254744758763868589044809657403105852558281329889636603330804170708328406968633171536648453276846469091509572565971273848207645221595526842714753556672320044889841264128502349777786621861967412287613165430931973724768990979876349740700503288896130903882593134477618366562017098872820911071946628832008983944669018980788417596796621228391269498930828417772009945778866134017709363732299123534022717572573649898784483266844679572312006300342744915424574444632906116698914355949015609130141487469829697249485787624594097420061497159498249464026424041010053252986608607180894684193018197444043790252087142927636313287503710347150501099757319733532159861406908874721463637404326288787133321234506683477566976674243192538809918615779689187157578385690303712863061366827849304877923731124123541244933731181238464487263787629196105422166686191672231431071780329625036388414908858237401376080973704546883075346673942754557767690374676595762413152927892544548648650738101614462910564230737815456449538488786276668286544507155923705124416105193821899610215328393515793968203283227611234642727092490023980820201482845349070900391095859240449532178762134755682716595720287637447651796529329071612011668065070691885359607472170650637256616944742530277017428729929159564783056879240332311832756216200196344269763440550404308223835331335977422129739784464945183446725690522246063476894773123753811430159021080612894665258194120420942385013951341082171466724750606952018943144154986066960787404347419796556807041915111582874055412286814735287967737584319066324151582644502686083376664621868715180240636233459515775631896622247587293507399057799980573262677049526673642648929196900727909330777960906726720110764260531528913010404495255418388685787689003780342676847809756210458458720305961193205305476513216399975889363900725266062945958635203528637370730247040571601212512568059439331437834989395357845715824556083595657410105014428487788428921395763500768762771854592076374893416132744849244854678777733705766103974963135951276525450631260665314778773722275697412991008680113029683477620598107511522706072209255246665275560602557710756694948418280485253316577455245731433668892247720450480338337604101098602593112084801968131009836017589347980671326389270483352302507940992933605022146758610256930328080242492410316845009739990931815843706864638613191563727909509043910133194063707045580695020718086047407768867852689127210399992604707247426838620749371775455142496071194691709798273614516371140404993142187167463785127308646929167354065780636995382969514301057901847624684673868078553537306523037419465325337902554428047218778928851052126605994618252865994579551808730235821333528504098280416427703113879972633136216689566551078284979362920031892040416076479076228471915864500782911498694210335750488157706737670852132299504813254148436767106256445942744416757906044291406446636037854948447839167215090417310140426752305732955177031451873022601341952036895999280575282591731388622291061289531027355943455971361209319861009511819364671322078422905237904445316835430059040279533875120375551428192961439841524666210237957143981287710886419640010173171654096768811303849383374594949514477045946212526390770369464534785801092631761281596138616283249718705695922978273987454024019666638872641069450694560889527603089281346300023009398734919851219102197229801817601810126703182124743230246969151926811934298399324218919111083116163293226851138623846782231834213762952588978174532977138959757538061110093168350731791917106778130712978657837023087566868683987935082011161274986404491080267924831525758753446902334280263291828356139706161920046703311901241472425066346620303169939519738096931419303587382424840148386978717284919319012287266025840587670129343638346889626823919885393035653994643622719638034279242165294630463968314469329941291232333042506461394291313487045307930164797757006315052614687108147357213248894972776803596373928989276582613313181273309286493745795208925067548717857444299142344051038130948430047758191320000564998309605317293591538314998482562021373390671546614732980207673330159643792957856602243375036263319239690151012228619566115114407464002622269281239702513507266953491897708885603147647565806275887566604185708500777148778914613300207156162275516653237845429787458353960253764902824115072420116910906292567766861723788265384422289443289335178569112591442970402378057152930655261139314245493925779244491765158538914335735006667842110949387070518364209867095533292642457107782118530369282092031002207579727098245736519850247350871633602903390751632588840581305914110110789942782552429170975112313341113755806456318698225525890244235292109089337692341163642478914475722828492715330012833183207669185023140300104286561682940482134659477829524617367470211372207623299175473316431365367319131289409480945474958076321688317169841960080541007547260584428741449277147562200598764927989714201807112040525440714265436239624089496667268903607814074658112463244159098236884842766183675977208262074270652790697479049575149782625232798000055590444758979332625308621525792019018012024312965999180594077453042346207544489128851350660684990632169386229064234674596053398092066390398108333748574970184025752585116843673037293074329645070051708768731831862725694217141932026757921144578072023899681013039444430804870610239455924728758995911344831778106745600054063604152582094357159357168238345272848446887430552592025953749430421843727256999823860250797601544839796257668196137594470201603763197134893696091125623917307117672159830915452388239316373589348823049164462209386035813485785075655150780238679139710800598895021040829466529019141473974947739890016408588689889758609854124611000835188814419028067698445378389548442408577242832188234086396909054704637595921330185328177093346215986246681827103635558817756919031197189474034241198981498519612238471613504026417591587646699515182009260584729966947707157214859107038858831433643342235927094882260610040063768997034724206055490389970338476759774375638062524836238047289287005470360903872620692943052797104353226398395911987237441475369670412282972277578516210970586706950145252091775888005066690386605227266412308213990476756834869130686034746212865044828487656811818966354905941867918559418414596204361086078010792286187845697434737066049569930621578958072639758103207368536400579290628092384234365950082316053706946658063446718087599629899366150443983829059073009980257136243801375535617861778359299347963309168494283219178697647994663558339869004296612238595462813107079052856670819655735315090517333242287843941856201978545413718444012184307991097475743175686560084434165429172270076580764536482437444787857089632225724401215488929108141924551489169963800631304392307523948786493625871221605604939448461775325242979773071788688399797700765829678920303967399342383134565392992674962885272561765017098217470336954884686568000502063777077153696631403387100944656568093483027487375447147901706457384965963118826409744630002954746190313161906467270938815022891251561617231463507108428396544994789988125113982959707958665912574806355749874554294604973140772980829681669766515927543203620255365827562417171632519804117817615276065202566165558766320658957760984339696982903637072185828279316429889268764835341894019563342106156542237705227730962680104992953109485606564132217592237250678560911475891852867275565601504364246924090704195432710315572033724730813030414479759653617425286789125260389439325432913692038411417590865637191084302949993617652340821413467593913155970302398764138660790742372575414009634035605339971513168367219100268044409728818172869100823590482361711766530197935102225788615088398153838501235797319668057920592593518307588261288870659801073125830392714146334074683226723621045140961113217163498956367394701000925641293037010292564715620951793853515193277446311480503396449270247740734140767746526903324265740864548689892496583206060699637820068340132897434494367037509315490946680448706340880989916949410366946618070229540949491754521223731779646115242153630109436329425326921222572501511903104630224668704696763435966134537566495020068297026926749391477142922480786556045465046647297598181673158750792173488003604619652356128518275872547708128801356763505922531193277126938449767207992722325910383813642062398954665071890002031155126089334418363485726730586541495337712922542142188244602062016071955536755635546485364779976898987562370791551856936000464478568978962430018188041284471571557659862787965645919542181540559969438042005167749398065513551738924772052801183259696710484256846711108207272071578378537479055986045596039496082486969564202208929469022657197790456239360006565753074645294109139324764988294882703001987036214619953514465786461545513736785028378093433580187687719361680085625421352950633340106102848596437979839259263014516438349551213176781104618673120550496909220477207421936826881937201251416589476349353634582810100501731559668655332970579374593208396209172148237854480767554054902609036779963727240601383832472529518178194294793665854148550966173165526098537447225568195982332649671769202871320423882737256455730591911977995672016844555624757443573106710345638481031934942683857101360124340859966756165772442988326688388977017058626547680684066395622398521782368206385372334338993719471599374846428242030984278319656479527508104157738959616949441580072906733759333571662598068981882006227271960282825953674511668604714550047774236932074510982658095447293912911186401060176800524801945804090861520492387937419333158089286864035732057819449710573976542993065548034319430681621856330693432921787193017447421603481543709356418296435886159180681758511574098548582600929397319435249077548189821734079828519025941514290373894819785957333569491323504241627590513631422956474472872676448871528615013973392315353604375670965308175357560369986184545541069238841111041059183454965807733552436582994819110555570519534653250967462171913734849802628480116800009668551745323922695291675097803959657188584019976654193762685860345087778696857734335668923296179717617557692954496355290563735147261634976241380551543552243699178928012325633662632395702603080832079137440616777849105474432729557230475245119178772012109890520427340602113588447633934892848153880605231017674824362171922994152542841732119730626316769906153131488088713506923024394107272035687232663033277971080132169810358336614781935368126071325582760579678742888110120325512948816352971594587199155106018891872477592398516797943623679684573189006970399603027641867211035015169292524897351711257620988852255893889739982792596611298932541126669991890993314259282292284228871266475906867189064860039453105873910267092119313814802624245379182796493454967658809670626052449281832614730189701233335009580346850593178593282434365366738155259555532766912251883856469675744765746317063373083620105504958962614127032177321315846382541260780004637165535761682877389576570850841422045034263265832878996306379562710352172904298167296424537217773324085167957678420704169898771018369492853820267803362729421757497479367250490896567689690952436189316752918454011617689365580070810215776542641294550941301968812799161970026328091125027656715627707300634510170713284957472355396804629194649770470875739886192428843441928226768777103851595044039670836290490895115518055272708490996386668047643591725762332746662390503964305988956975125595940197585341530133952037461032906760164173409565937491399884971660536497771142765404917609039556533345292257731205069792943553711069729584167060221193915157938070594169176098353456670640875834432003347609005772357858006694411037526338015028159405356725942137544021479606201391011913956961341028278815522251713931777365776022325309054590031749194475380074573650899072166654113251782991564164850581700060476484025923231280574466134441432597276151510264685399645101486644818867811575464973286490438657688398633070381074603810785244291973530665797414253688344497500512744435347908571343593157186624860619852598140500563173180637624278301558861718252977333405487664715952524829752509879476829095417577567768434986131277947202538150059341007573537365091416503481343301312178463716481385644729167099416871866044105833231337411037239275925987937507413227649710497317188064606807592733687231112342320442280639257903650123748106147244095149873153373615573669928231907896884165128085888757295017504541679893695039833819435063809607005591626207078060113153457312974687389488229424433375812021837613338055140123919776195878309855091447879721031375519986059625747780511413036950273574103479598500432622915944982782598707455547171627429649604510275408693735527642849158950563099060254855362318077785671794581106901837837998614021665057178330199091230042010039354037001585647372725950004149221059476250469986868898413011459995452040051773794449350437878710242308685496979403412731972322244994865263463632882224972969047235498542524889212515958007608312538451356520721604791717238462133417673076655935006792705104986674268695955773981520045770273706796748091754246077850213331902410924999938863752330592409791532388181225973629520296936758184501372538576085799167933982304580634545003321578595539888022013278517144367002221098912954945052823889058647924669715700543157083680526667765721047279952867905085438629892187298592823521209647134273768547423565512812161288695842707509904192673409234902240915353298431944769425843608096794118309067461311247638896619655714055491143015856363986715162590218603167445795717811805121596850356149818381320208117132597975164691756702793148643351252707507048927008208828230326109579898273934700251543218229328701039062260534873454540617173228081762335859428467319279677073911827426268246668201705824899367069121955791793047292221467238993325499031707624603947615111266018615041426775090763802481408219457059914387225066277661155042575698363689295907195039342724872334875859613791854709859298851677636673767847363353995979211614432105331322632297693045512205829711508809096151242947602241837751590533479807176934199651673253179615396073485698430935120152665410413127643077188701453403903981630831068088208659404240520644610350066147012286430229996712125788418227915150097668150332423806642467103348672953681816576778998794880879684891912735591780752556681987618989848355451457334688958277091878842713820792572424306931051352834634387335325991229427615267457913343398971951029826414497834023829921315229331004182268865437066226314540947455035457526751099746032649603044306217406830086179594195885027907618088443822743942325935751497581708995213726630283728235025415337602126112187546629554704321288435905608940439709008760775342316470665167089904087971256356497400786926691087049072976108165768864452971952927521313638889977219012055092483366247737973602818070602736356939023528036051548067199208229031842431121588475787216034600860081854561145580848835600530037535449817256865400523503103337318384940093366739846363617215381489197810993852468997942010844655496424185361541482373726881375702437814079496001688503558635864700283239133264408550617146592149411212453398668845055880499723279203762188000319695263958237829404550439792578307548991481358637161123812178251897091990659097262384132422208187852747872184145698880139342716214929402682642912993957143333984755295744864776789281681505300778333512614558340052745737246229727271274365155000625691947229207022856610210257923475228196749733044676184763167837679769318644356532038535642094433203199162311552027008059781416553920723994859982633713683667520786221883680989747807912358839299954670438345957778541408376543837840129922914499673522471892920710305214136092297561124274530723848490728417561681753293251751181657605372942841188711065913775426254716288931930067820151008527841829464462822112320682635429367236427258586398484997729717789064148342989349665184981671456006831015822587210432431996467780465784660230102007602450208815384660060626970628150320015130289298007416215417941290069522043034206665360666947897121811397611911714336005127524195791509713048552437795465884176237341970589086064842282122811984778922235873857157221364185911708155586838647594076960156683311965043637503323954808449030542385540734720671166111238870314000317297334767300162513810069068587338632667715622200470432023402057674263162001963212924447885386798465926699589449282838692561048575771120991034280503039460080397843356438723141103879557029888773851134896700653088802626870235117635438337523141610358312542933932328438479995315222517579878051492899276245829948314359884114319448199055889597935685850700636515365090427620517304311077622364469878801974963406946155836533432242278588345605876512421932612085695283846606058730761444654173562255540483019543857433836857676055111907754223804718315164889670276485068800030003290958109428595283190336008021978500110937858253388222199566436810991575591228288333089016330569107836807418608025888497699048651208528918031617991483130930414749948359996578122804589097694283080444441236257781140209209830572041151805057829992628976822743142765647405967843485743712050399268043851722116907620336720462216647785066369786001668075120378158380445140527437624151345337377586888998362420232756461033784940622956102361558735055443263622315823976330136356643513456783201238656253353070525242556409081704129882257964355438277917769340723633286283858074483793877423634152037797211408623479923255598026489580513922298387640568332935540632465635872455703599485050498089126418648097948951168583758263209153405026590528648507389644842841815526604909131417897526960977628079634606119992906857654465058871213803536059644550839386131952973696488650356335379054038407477400403930111578906728051503093892448008212227963640943042286055180709149290738710482814519715891406675473439110786761330148382991574675307303856489767849598469392613643515673361882792146557759547500333668480585592090766349448925751984446017433292616797981358574279427270135565136593669577825690071301858428470068899471859099085255514716492565348742883204906358638061083245421897192983976661235868467770086964903424021972917932163434918798903362093043497719345658370053943700998926552060402727511496944692346641449105731868598496093250046247089276507977436088798072808011807947495416022103087446834147237385065228051596564705067413695101860811755817313260738697060774426605745386046125906072853453987330203044740470640837383580067663722985867406629329043704437981192033640777667497588643153807438560439890844792446622599766386308645945950097729057620348064537350497788799882301947151729957417822832202851815392385374429018432434836032840670475261938941785335198186833330488959824478676469671136573419423072506931222081474653712829976740367992604242281840824327454074907315228265722858130719527526061812077464594377606203085879502561027934544450278746146577243144565785460714643964676965318341533842596184803385682259750855984303887162672733862615343498962410803456117591419246421179085346203632084329872528600228715916821169961285136584384025167949210715754095456353833144074027683720414913588589231763588601368085992255234814227442188600777465726935324615844566501304660753983236877644791618387756231962622036785142611796781830508774140165776819226811543346940940382656441835451997889370709315782315808596588319798215408192119200145996453947704767941309749033503652820034144837528887917711725629242598547039706669762307830845926769772547696320989298322159153092480318613282181871305928670691231224081151690486579915369370663961482510339035861376564598061037435582799838305961614046881586539263789428875700411207580816636236085967516250121367046767808516667872690985349593635769530370636776162570596705793555912229046155821216536101111063573375748281892110316691146932541221977023516988600634833644055284673645395825256045432991208636730357189919942175317565604378741573161164285493163747423843571467518170399088289686255631114326229845225836886691149006404484094827437549733370510828029714572891786972204296834813252325667716042832086916179187898051658266844187962142223857884652521764584197002244403592113741923747635525460330235812155994164020480545976760143118145969449561914660420681747830041388580608855717009554006662596713066284973583333356249928769310669803733297296339325972983010309265846120908347275027772124977166616506753253599810618179682005452982389608153557507415536194829376904713550003561498506462187924184932170345816363189698795659971356784622078025258129283685166735082665940457420916139899560886407791681287697855945327971891225469551848230622228895333956921054351497109204278743115005333701858287202448148937159036241304370433040074271260081989602665718158026954123211690436199943444808578320002459886344151255976311251905441397694853754606452259621052454489018669620678488984043062238162619597571265867552570149699243005622526550246845982656355273762690199991754668863468115285096602472647116242629628796341532166481056558052456529843153852082889733018430332208064487519957783471858131016895543777097230509943110090872745576484758429500673411714827542857738260381353282485354001612863598069004521095519158488134838759601913145178225930101406249819744952215417602006528506952687076205578310102282700938536783277658494322140326411335685040716177789260959222195627290361892006385193421816926377132080636790259330217299229996491124528388712438303074530068439503470356700239054975278780882398087016557145382133906898993551372459899994608367465796900777672197143249308023054033816912003848777154442618859675510272725747691176945041907294945837481904588879301661671905470009204342217681856640612946016276160367478848790988562606506177677857038604415407195046760562258718008520657947623955790412967526253129412797383107164439206884828730281313851214576674471225450820046921157117482117276039300269976432854476096922449529154494463989259835717269700758203297442116503813154994369186594154934001284109563216455008945555030589815672210846673031652249337470110591059823258277292747094257946426926314736996166595884833616127896442082249946215368598638034364269853993829694427408457987643369630983842819428511174398170288625454606683376511656958081907372484275784403368885483884884802225367063167698614282568111181465381138784616160266251286687792375116924615835352502616941334933620181884114982829047053353542392473258684579411264329833869769859977734863998843971511496134463628045295078782592717182857674391707877349282192888834745253288261944399096343143060159483653334065138549297776744397617888514212618902848846102067210890357923658421058416532666737039237834882449447752485869433001018686870190527119932055743335217397816113745535763540916462772610559460109479833111934899837816986049276445385684132694430670662283760814146472287119409587179907291088441109248218044725295038048458039326554522042151897197146322884252675747452052113047818051727896214691023128830907762355756113255264341528426777151755434270029921358742033912643393193748266336518838543329080583972490589606926415178335440033594574117783193867932817530717225316856044458793109963093678034908426992900286642591555830623186633733535762175419953014742580331852630054683337796647417716379654227121411724148935610717114327135425832725218879301577358596031966541285617867765944159828925803650570906410669200411161038777239813253135325070477011920701798199392823108076225895886788967106069696785732102151227070410455140898357171733470167954745119203811070576704017969537388603735485576101225302673472217339080828725464939949898994215686244678501330536570807504470613207844087131764532799941843703441073742287536454775146494628422255285664667107417610522065419777724948984653831906325761964251662085559977598880547864289505137692616798411482527499872492992101521565662048034308983168259618779174610536525604355833185434774459486167538575421962299757072825216269048168065520077386875187273251743181334353876723606730643342393649190186026557846921007477383728313632349840902347079269645851267990257404730693253642193668796907432821853099835902740391020047719958171474355194088334931180304649268063501265400542409490745956222651739456330052912755250044778123840166633830717085368472735837656717097553858468429979866046587207743090067066290791787729942546450710651168113549326158325608304644599911761050090900609378074664285772338541834002511260215461197046563354408088959460840451105018616147530263682538182822178241359267968032967715423499708578753224965881518498324082212166083637480516329744192882698602980238142818587169851009610678662705355983576513200850204138947739582924268533677303267549192158475927633160896750778630403121935092293207924591348714469299430716966465766104962649185938450833471498449022749587925052658854630952865690957400965030973251913169525622150927950218400702848185383727983412672534398803920759143991678573917340115361896238678317672165679477513281458744803718117924828644457221068756739124151403887567190140955815424531722937016728067249349505224599619776999559193353123931813462471485712137730669978288280767643012869341915558882539827577095834711719603122580551445232990084785215472091801741481565359944392294666982072665932281745993337026322623217555867763496942369021558337272386034671316779343957803174714922840856665712273789033188774279525409559516675319498449349976033042789015038678046726656159177578023382890569897368006449775964471376980093323879898238940354409174203751715396010642885635281531078551719731125055505816082413454988218121159845683551650004061132743896522020202918682302077511950704151316708806750067354103532259587318948975826715468119334400051613061290486475375569510093301247839358147742719521240500434278651783332003216992584523192624630918224396467570916963377563896327146328209656457866321336591763425234350660445964939850091864492001353045541653059816305516787128083539421060287387875155019868747811103219529951428575987597588991560196416323028304061352257892352277652506687813025770086593737706290942853879096348799491981291201542933617339717341087928577559078129266025517999061764548260215128391112764250429337250911713868833237391087019135142906059829540510240921319699310028620556333856207397992920165565722849744879085966882693809987448211789945306266389587284334044844748670468696062359747814933246438899790511928263337105828680205361635827086718913804547732083903628179360131705538658238138853428443298220249499348475940474577753643167078231892680059021371966300389299373707391265123099464627155177411157482239843266726562215476404420199543828146546476696590598520486749273164548155071312600658722746937729810924486475907945871704831387083427814553597838346399278361823734901685542432943237699571740855951071825982571279660425485752920733438306007847471510483653361418162393863724134782221471781825673551309324913210769773337145881686141675800444356491432902891023509964345287676345525999541118175503786183696076787135091667233167710005840811028313186166539068277320763554216302439859155278807088727379749417610659137005296402491241402907006327597306295140027877923791656010503670714003856762382713197294538161391603621165830401506943960432535381506221494677863986470639817222932294044302909321759869310122863571290869093322725671629445269547449395256455284039520002945525548795991564736662275526473073011780814126502920603635144198536428536042380839658413404005219423958672301283147510756474202954742954269931608882563366817598384208191027569305735596863951419381908046602353275923863427174189110461073941337042822636257506028455583085928424584800502237744918285709345563312271511045343565721502144111955506009300230824473435484184115624017884472413186654169742040018083272586884049544068984187203044112024046320963773323401805195154134696344179893153478294424917865172434214362105142740512730977945277895231502948905392040858265972091174922916868951773761025870523387714204928151171998991407310732749244933117407099688141419001948270521739003627619438514777039872627445572899808388349618889342539675369288794323405361145640956209276191533008223716309003528829923768995843154396008082150769867028887135990231099748105663198565590174559349408390678331982378811778900437665349297842677492408960376590680445131853515079431228442766732201986291204485314508306765997721160820831258921217322417266014086874784123039137265397660728851835683265864728168282134811616611243967597324309730148895807139540036330779000631324046248090987874349678617899755379518892287621438558062142236317148995858107097788154278718319735224944046682896504782942444628655082614623310728866864327800186618042331541141564796856751233163427736871542020117883407717506561245210323988638851519818903504616901293441974822104204140412127518578705677647281718095193705627632576060337627723257051360246869509361310257283296895440431661599434425707133552093546779834917785904192617882317613581652601458783351967474723857374247397818090043167863266640887923794143513486580272415687637490721043455370697757546915762451419787524679832953408787268592232330833249317665944026874634702256361218506452486394193036671763643286256718411845386154377241437478964244582580746155767145510144376808620908599677380910810781950391119110011441985731684654587769338886762003739822652151645623454549027386108835479928069151379335242642224393409833850022339647866727789019024115839122017347995161768824446150279573534592608868612791971771601723446568298256407293536456567789900136063547830033510772940216131953074603335996767815910234378797737156704467749005767046849152041353554528657115919807893216327032554296668274191621051195203218340184294486624222449033389331040484531482852059680238974488012156334870724641818828702253311629852665351824071400476853582579006641199195397275377313946539690901104615140121996381960930947192025082181524714988797342762816051123406815685144879636771037590434042065841701823014688079644506094801312423065237223176224426291877125256781973254375586727690391034353215099992928170551016688908725509876107408037704930996002914832800039665939760629571557670529965492612606669969945896839160696044133197590975849584828889102584260528042121115456212068483337738812839867781678064228743627401103615787662596565385987209749598250931134514833877865177200546688438806571357818616744090146989082127686810611520524309817245320711378072107431771443021777002016148868221166411730366697356957635580065370817088953508131346215664259388956631390870737088572955103509659012954771219128509817645463690136900358913484407805170343777789557824585460853326119330459292049102739419779623945503118533484550534186852665332849647300522910112596399147014928014326062295305241398515785022615327469493763960270764938432362653681534821963960193996203630585636347426981556121809176810458218609623899979156158117467109377203983324365966488018119166413584815482179445845073482578993553598151516430003867158955415273847371357875094660954636282005586261813354609617460971929359964535456781232326409660777894677656177472222183998102226108615613925210523668618540868982824241243537979563818262993049442697384213694895298213850979913269520317885387611108434535391108638489558056826350337273025634917565706757307284534582347578370938528698258320397991242099091872651620646298067257306440456829692417518804485004662629282019974409002122471298057143389015222307826062555191680762655082452097239618644834364697942110603510163841230167941389159034967775889251339491582572840467013027600576088129578464118738324868841119362057909882306293399269762847576360280483140827735609412988560711677968031071129462926126515000841381423518063900401032804573411974107505393086098332739197661842023808729148976949147359771662728234946193136800396739916559330047173174865860428582335935070798812333587332276469872851453490870926174208078324105360544761921491803985825333489901546856968110313859449230090340834714154066902033804556675855067412789959865835999519748888083270946597448130005447591525907562834650175849855464287997921077211213225252632253881121250938883032477618425568029914959216635109316162957773766989212987210061881277561025275224647502902442874123033271261488455126570681667991380958464516301698298963567322771998430843975955900708301541512368516241265178478998602622150515610066241794700149340700863380822654429462175663305059748077732197334161330026401591970260663434416711173344217666710236397667598706453941677838274146939428154363029817778895075982598571089131934190774736610233623273595690496126443767209878310132880218889453530942588990274487452830950739057990741834693854923736486139189037922843663807135188469136081632998559196457035086342297428526426890617703149598476020797785708976697191913603877183085546839287341085829929535837930730219920793167373210480960286446415893394598078506752083169145453387529304223466811742563883902263061878988228273718112168013512393587971747032259838160844038206682110808857664638343274179725583781345676282139320792580204564965810438890547444357008995047155502653345587703779932445813952189328659682860129062602544336613503213144599512331284240588425086276096168713048734445619025214216571453737723296758473430005123613075087929695383908044547745798563497214827765482003586309242447542718786857042032102516611964629060654057670240490055343617902938827431164840041472347005326575096226437335861159874348337747343480180322240630079482278522726580649720461072043149187481177249128969719538310594311594044595678546261190035194671189055449838645931238660081076957026763467066203974114828252813275809929692359192839225742700532996908800446040042537830049145591287652765460382572021793568674418329294648907302901695812077486129145940691623327529040820193949459267235979196752252553383820311064314111611698442407085886761536601784422937129390007145092092521131113727511239247037687410725025108199838700676493603078929588816879661892299102442021369398179954489119810502999538025965209816470020288474274374773665099730085816718986149316582871497440993631727042864643849722465676596977511287769397409611234492515707978860993428303966849031994162804900776504140555830062549298573127765965794270745172867203403352599705783055460842547118224037202161922961351334329186470501909867847913767499577632184908359997284368982567443739587413381625001020577848445353519228387468944430318506312418659870928413600635240109312262717063441218688672516963539172715805418513656029346773931175469235082304226002079487377427251881930955883229987689978653535778827709550061152043035789646422932779826437532336068742490019473497167431070834988034078707272163997611983750241905239263367041711113475583104661167445610767694520884186826660866795133059725428613909006216068421708835187729239561037475408864680878673427415600675301070244135163586269228168971365835859926649198439001243994428206018053162742768486382917747949239359338430585766328403591082264767903013552288292722787644976517390581767328462971907527143683804510903629083580619683011798265919024818222484570532578913389084388262037780329442492809965437151244192143169127877274821266845501192983076886894982066879442066162731498559410363349128647573380243841262260881258438175151412818265621093697160060335501128326378613388190900308776385000096300213396584588789541667175911548599828094067980734988826716491254708983759592916990634775396334623947069257142731069189158053459002257434397734788858309205516277008980618490596367675034508902381810854782053126678369538378903388094029751207849988811014456464870446634401036368213400057479150220850255527896131042988360709042991948435347771224749635142187416211715355024056173655522955762965691959606837313571243408684034877071062142829302795412369932045012389278279634127035995424437325838505112685184837351800551889330438754347731081403942370724147744094484966429253892247498150513909096671098801587227185923035531764660243647584110618748455462691385361526769500340952794526122816630766560097668273542533796940676112770700718202779929692455090582544927458727046947882979924032668086123408179424846073987565042666214432196892807940027190054297957600052776800760160326832240939195538742247685170098403113204663098833282144228540717347680714972340570140578260122829926002325261580059764184272251636312730610128490131994556992034406358947197919875191588977232796061952823783437980768664744299361314951680316610808792844702401188255184352753298411850435220995332578276382122938166707253671966750137962790047520117359026313041566003823761511672890584025657538831353639924078522764050696327791611001610319986305019429828859159212014211749109334251520121590338658536049943114754960447481312549043909674298045937554946963060960595106110663788244971219041241518820836182250355163475072045614594087742667259410816451350726814683447760656205707940372087108352787686625531297358508812499590990349977090215847443591316628651210877271995473966101617525588769363426986966683116422784913654678532391675374682864485895767985729366013255894701806625241718374867647222939699537405525076894408977453242969916211356886609459047664199487745099125229419383593255702822333899408987352043867561468534930312226955228523864385775429306892089616724219903152073581020231404012580236030264382595681111385075930558364933709815837404556333453075367062181295580092248892886451256609936360267429592717341023645008829644643568820714058099330565785029254430864694308623317530017220568108704797698576535403615950662056101868551357436218321140596283312337836402544475052644797707542561883497009825979063529010672566019809131619306088138503533618672173376481516283952023124773106249350964011978479158003462855715380039275098686993064225752170676486999487278560734951653747767174099171590380565662033577523842831727949644050939962386764393580267611371714873426148667840667815037225559298556956816081411969827109890762265074932101530412316797298977449694857538254283159847837918384881715335616367305033725034390572593588606641340869153617159090323972723263546960784421102371217612710239388714901946046037193020852971952231103855885756892592326646367125094539389853444777336760797945404847848691448914886383073761525980171225392284495739928073984954755212072709531253261549610571906981153163103956604955621216283205422725266640945238937297313356304568830629318809752343455447132404913411052236587370106364741401055000855624928590030267176748675808436757882906059101187704019426613975466132482954808160525979311702560868346790088015506209557845808441136222392348144464446312812359127789315595982697509430721056802589820216556857409017126420887279189562916288463847994267375975480574243127737309248879516263314111244283954200138119593300553872969238771931246377052568777357886890635238039399673567056695334040003164679130013709819012807109157926817962209160614431092522320111600845784928055209347978527501815525815807538506316771645919915324169906715060659362661217532750286542082843876450010844210509964663470945076255341574481527687115193198794283552382867768187785362265684114694826592674826507167626417865114149406395771789308204086852712704599218484295500811154736205713909132003010329451493036877293271215681550502397902290206636315983876742460604009426112239624218065632381434320261440960443979779805191627884573102030827458539524318904143161182107902689887908755008260878917234666805064617441994544956624612447875121656244954559456814992201690617655136367949416570520488913527020515440851670695261173679759498176898637111530748041908451685851760161895423062799085446121223014169906209043294515844026218488513815676915194581956792557683839728398104562249537512165987904625397590405900708003723577929745651120405665682239994882144305649183489298973913501826578369453009226302386409577823880305049849527379856828541458550961651215187491920167348829974873333006540206184762533469197758463396710644327639319283596614644150885936072648118620093510129378820437608666900698778838477088670494102467581798633166207942655814016956111349697062871129624373503158433424063749259956765057797918393266506335944715120764388097691593396817116874545268199040923734081067116480825569486915433548767912662605750484697857901601731052765869924639976599932813169964022873755471537494634706407055791610171780729061267611960052578767172268181264032875390412993457949993719297705426080697583599933161002349727160257601101231128246378560721809818548415020474927396318169017647737930152283794608783157117193038588431246204312574029043636664168920625584692487264813951573295447223132506439476487203020630880571015196893828781450260222429890894904025173140645901531428310699974058701419650872039958024330711802459206962943106544570267104642415919079955865884260552842007074972569325138258106028294211811744931768999175997598165547254972383018220374233374442383142006348942352439193826756455070365318815065490364733686078074839737622623280482051403659857688698504085672767948327202669762432426705884319199246253047484383302656541506587772702256200071330103729721028520255557779798243386787754433344453437476180129023837188402415605089087157402582660908490084230533348838683712120031760916501853481446162881817214789639954665690223776199557637807011635274205336740930065053540362823493914991137563580624292303293024614362289147712852501353318400641312986809643964902973665280066626373247247675678889093019346739005207876151525782307346980843462950921862634229498874193317908977103326449804862356993928370295772087515864127565069407388364938930111772787227155766776698383164461654933245669889800798612144854968171220565344987029285037379691155165423993628905085697615318306044322172058418561359536841283658454164335971954042511630284918083365918408167257584616838698294363929317811707963039287457871280855552938106366384129051459532126167493049004642816908956072279288290258385331197890453083208315976225473949337780814717142831701981682838420506621501873055246330617775815651775384608300505378692608901784468809864120993286384245307685405761933009116795504714890014005057434766901883220395413950659409783818698390219340850996294136375458190224169624649776570040137196767330558976337884117718115873297342546278781573495282091758015300724282758534978386114167017634623273049205413548382055201701373285249020489605281011659372550466171654127495407255428119956999394240128587507724147295830850849833264645875321579218873220857116356398337713693966920598653647933262604552571041360078107610921550804127234633349495402095968438378196217574270879305244699289430524142302800836505858863751361029766789406516250057573673338441443026727644112372404926972258293684621809950482837832103592675956474259625338899713271087846772110148423414236531484347068015883488390838698156448571894217544428665291581207313949910393121047729566095361859644960535760791443178656595020494963810395318108336038110924737135642026303696630643634712147100238495560701397134304760776081873919561095196005869358076642327042365339851362212360615680161586213669762816072763560888059061502061559848723143022274137136377487286170965811669770444739963349571568545150814797556975213839495779740520147049994474502001424047149621721757665995845779606770586889772604197918665852692044542011178956504652528156718178402224110467882288605386753068056029026161850321724040404151742750341616651946422008251825719240301751530712441154226284078170727736877730680001397409728833990522472629683184855085576551591990986195452280318958251208666467043452178359532152002247079407471185588449598550796174755284536027928083512931379069096984076792623707664453268284547859770700989534142348839430519815278658505388464511336533260708579722871512272907809528269695481083726930958420770430285955644411420258654320169005912400410501479581306631701429824852959359283603916443277033602397374285386997639732605016239016964370879833033992644480116264924149745878301849360182598287947287898256375420891673501356004030377888840379638437927109432614567761031052426208410516492025984136042864182838004776611223034761993657404707221055486917725925408460489390108366561890678861488707873549540807404824503289796740271210989999840209240340300923927617187682674668599536472695735848099703894398787936835874501302336590737167775196588146176580721222915750763550294891778389734255477069049282189338585387702711027684823473779194062181941252541245779777378562427424007207008479109397528233391847573329623020837872422147268938220016116474611065174532392577935515873350212576916271675966317876859506960110392755359486807892172145628110276889037591509007868823214473260066791656139350360239932236529243982114475935659779425778104681954876001189971792224647078541839795584134166783662130583803764932776361954885403284008916043058671519133246272079825034911709295738146471389837649169993677662302179388382286968935227249365102696673178708099893259022481651836717231533488718142207207173018890291786368877889023990657857160080712329047046247194979624755276846939089296355438287043466984671333120829551076332130810870395253652096672025110060927577160644137818606571809335632512376138965140991154561121562432182192305981277611589659144402376943518139581130855115718421813047030172399090824555149274044645851471919354666512184637707067488958525344215075406767715689744019967926362636297877887672491727688236515715330436783381971830955002030976019828553052437102276480889233450276199326044234301777834398019741784372689465445231192132276191038661571756121800411045265850046173497136996086125181416477213950456496657949201847792300586510467387696499923672581045621565878838393200024031997683696560615061096185255174808617941514210419777716471741267404423265482285309697178902752106635454659884155212165277882548796909520272606198903373365375642760505975045124187540107313344048913950740422053301178528652867955125495816266310537173023814549200051558829751577109684077459608446664927350818070819116648713707283984215315101490434391266303538427832885824081863731904927287650358450273673498643837303540263889162917989338354505310217472119008465308288853411145010026388360065069636342348643724029662022437552568577267076823390508417502646593392944639842636490309466345424456583657602113687399656392222815868526558715560459138401070337102893494797780807747684269113393442745558987235984224585356274689639493098233695112183740092724483195144497513480983336804504841393246100306949239853902493116330593659665195342130618423679677354597941546382145284714616053600583800761436354050260319189672155529733072858006188926302876167237822616813527745012821285094891458763248751036379842976564432429785209157289887623206628578133514527884142057592932382336536326232113823280670833880587436664376191103266244370768418054322955154420743516297453786093180215501237446337475829119847067018896756507196888599151758343620788485871720818848299309578902176439813988406611695419478036127528729285335851906674412627314269133294259458693258401105963597624962820317175960862537960152831724314201953523269550253685990799828577811736498608962799118998385973241395307911777265843127448263494160355323146081934243753558198718557023827768860689516784853084196769611301451367098353067750852534001259240433313880562046143203426611339159985572358616187980767219808739061356511146358215408725177474020394676828670923100696630491809526523149375195064772476612087015828274469001750540988433310490012823382485919769075858203134453767111262942683993936797084455029657396873434048925041216760785991791008165520715364916417022005422367682273668777372035634200905531924213445227078223377827195187192876276563733944232410825272037321896919236226752194139137230549053028082736218743986569917884356202695738005171788983913500643326026405818242375194320726787127059849472930870496676446165017313377169494080562977036425581082222482761752538459638062819213423920251092640436747808264122358052595456876784800495464165312043839935261193201469658780364312301978783404408042732999658182784659722064386984670578817602850972762446107636400846686663887944997968291890731174615394467829167635621061486632723772510577525470042599825021727414365379865359678683445050155949068351111788029281561615339463578138529553798048035981191953600356281369324692702056912922668740024884782302624111504564783674032671084637984040313519988202759253574282189101293166477990138138656759512235944375301197171687489570210594690494670770613365640455521139271765620468354166762969569295910665485810994931960249169638001836529681466305069665582182683251269811885384759159540948635413625750780662395556123689541851880481134361165415969125409739872638603763125296658521396241389588033259814620451298645422956889286979460725608184865808557749427688106194567195489780144917429047679790608828430908154123458975849550412550574436432626425739435579714245279685940909920466233791116228106761301197769893941275810038247652481383624282139735849508997783632431245996590875623354664231830024235799496361959047331425745354497196422287044175527412387246805074197460795966145750505078668787310942610053158867866630229656430404208877236828792366510111709640972524738165796214780312411999388389561203642999692187518291907711685539641022989011788622199313415122905562222213255613056309669380961714272831461910584569556512211964357424369852143778193885977380758220406708684928229386173477255132121007625798660678778293692771455981598227059040947449726127814896231355297780509115141164270371472609693723253157825215443538576148156667406211737661935359559290622210451797132148753543115643618853336312465132922866136050986534817319499237667480420243213572394914409758987597339217121896109672648002365583017546226957275784826455474425116359183473838913168044838282161513410551570459220057090743090937006933196228063480078644678450938737274631127022041828398787005495476868124146244734962383610087241004261466011800443971641623938647422354580309884943793896914112643631001765189656477748785023009115486384127716703867774357804003974228261972632260964916450291833743154983883639622283168592129937637834427489764385706846835518066938967979005152478134031840533238460581459425194748085109209593911382848989243255169618254114375976899870073785829883638326937986707723781540926676107767996321045016980091088716028412256697674566365422660269348894465692420185398656486426425745079940502173533949502917839916796173977601824033816038908299620031202531872771057728233299934318636164179820833259448074467245053059860837548226487168430860336563923253178860097458418186835909104345690907675465977725371083129058710906812723920661652131314808311759187042256219933552244973452472094284433126796378922680357975019220011723841946096966633821963721765730359945388571396617574422218870152089413302755324627624985477846495676730308337169111681521516446721575486685885062515546298480348393540344202143792481281478434627377734119961065907816560867420248968281921399841119760743389864554564506820217008369153958890571882226216410773990409386177368495237482281444911138363095273896614577294631437780033460614917513194856958572968488225438213121192541078687409342338160617740858809107848309917014335255987496648735082368181562750596368172130434026739566000208980705350675027926533228541766596877105282857654035066098687973952642057617801582747145287341870859154289991332845704453440002338604203586490677562457588287991435741495676322993558929105195746132400909696645516190231828854480394998187987945182317127443252709019738844438216943842448170383634330241186794472634993210041198451334074543603995496101711151877052452567601220247044660857127404744372571690567910102488585082145269915821540134720612562655532684980004281193486635808164266975601752587982504279463748399230120166510019256292574028795388468161996727835937228313513243271879556959761542361190216402544470636569469662949007707656965493195366666115203002390362953085430343932918128333428941572775168482017981877036153805909818354744598277175153967080808370619081033579425938785787750548706344093575675322398730493224413429283523464380788060539472976850870565704564086244348579363282025980193880468232456900856154871250958360931262801264935424896342796495051040579611790019117668905313393433924983290088340040878982229292453115828687366065132853669871785787803455314559001180822759904951690889363081751331144098913052929120270078086196796341581929319428851852349907547876551773279588823979387261147554209660030900120649952990287445968977917965183401677297431245190989603921093372844456246937276701278172773319296746724285355000730767112102517225501597869289335987302632298960082524450587339569860854376286305966637965554657629018691249172404338418800472783277845800353967326055289558546675194060808850916161110578215131261729033971683741688023762303144233707669765818491244609038924697936115800627398076231442006056005782520691894649634046039123177842925675081686438754366441860236408050097279646735992199770896196788337289553983173157947986458278051026217283416005623211747194586634359291822945367085226137848208624268744133114516888498130754027822342868818473138207459261595958099840840150234207352045587276271792084195368460260769383199802400611231029278915802510098336865725664075070957508656026491802724012707130807171274671802436600904983018691618070753227755669242309879007722515871843912369611619224882840412309707258561502248277956935267362985785917413005023686599112790093249967289918518105944625579199210155288244193370409794761094472563085236598012607901882064061642206276712630987666074847535940257077418276990382710114830406064883135984919197511806408749010918987720855450680794739398018708405506239775540458086724427388946208922524610659156442775665155952275001596989866987880517170770129408065753935543989577995657939448821144750115706803586754210416787077301462447957647682205612563907525547603410934193018839679507792051582985958675445584653295819620178663991919291086001675320905440351493034862346731162351616096810351078024875856080460378589432330385935348983434693459080723236935160039606204223762165351885365927222247342229657048153279485289643041371447248684563613153934308995523009478259047559084338779136474049394683563361307508446533779961898599674519891088665803827950381541476538784080525463612579617591894180615795975578095832036496715592033210810462072743673103054943769529750511203719600358891244143085743649707261879621887148026210806643264552331642443573827182661712663628725193534893984797681836665010641485215066475900638393313108027193395476547151271903132060518918055313738939683722356700669775761180064800129193952329803082817267144344747195774165896589667720115216051354589907097652923787651073248360961402856155664558786718245201226302778026145488946777829700054543276932452060720936436294414221950511869567205719843778291342572107716402403283366721678593688264827250806041915540033465591048288053826145896805897150706406992917391003047690293236852613664160293503082151322444875784659085586154189945516783468160930384069588483547407003238434349863673975391630749889507498768451084002371978237428642714360760756503690517859387935048078937577316214341691738217518772430458423603418620079938406512003189023424057525352222715464504984280912682533102026352165275392217901675068789238819030373319427081001523858524010326782653460753242385234631798637341743155456780919799196987295612796898524281698033419284053470873199735963159321468895579721236932436334882238436477019858044482987562671011441916160887687474969320764352786266246116944820434821171918642842889436536302692604421252010080748084302715083068126579629647436498695857285532812967740933846842986005036765423255520721456219375736203039473824185089645526860194971455626845941675593556942334642007374159360924299024377720959797596579497022448884530467842226094550721174407449812802857718770139946715152663244535142902623064988760483490946964435803045173920186736330670827379609077852918258740023505166113251437139725937344348618643377981533801287367610613713321054448068998411834895366488534343227060896734104169368167549396816054981921200498488981489034348295788379525118723976250381551006175067527324774754004247394594849202973307457412124921718864240724583275401896708075764618965996354753386217755972235465772860487812768314877597969843972897910627363763950743266188980212009394993007361781817816628278150495463521453180190407890325844474691475914793822959077888833845888444297711555015386260620619480167164159490263051112297528597225508797176314065988734509527866039461352505060032758583147480857275574506893416267248663855336645707734630529416463185639836925961932598167951801811154931442854635162036106226553484244770371440884117292607049748860285731103213455601720336768463501466912561514438809168003734967887359671656370942961092880973024338502615109120711602906406505492244603869724528582420942497228245069633460149165838546488423893956474155358110330009227577453570922708708391529373080210334483554766880715402702129769694188418313891334918051120915130678607193586882387819962254759598918462679314331783378975520467807108370151158335860169888135093052885631323931393623904221027690585923430013230666953858186135988826452610781290114194984381768249328274708002006261946294742023766150914478123454845083291242614798188965448614406203405520993071554704727820127766102715196654608805377001753389626573921773624878284438790868819805830447776986509136049913669766519411749494944761669496300392064825397798721531922550204209778175069672697705388581287974046904617877568725274220241690944984059771423179238100022226044618938750537993126912507684776143928089207963921312622018369454903597979388429386220800653701183041398097253037778288092843206702562353740808277887700696517285355499198871670216380153522196175175967543213700103586707318279232624213545030417302333654759650244885948902614826658124732690202801811339589465007384351509458625690142618035842370031520250178872386906015451367092053407556198242957455904836839541736208051379722140652773857804894437367606715795332511377494609142021872601924262281883456280152388794377474940617338944956213395819281862837096217191203147435765184265510082484169055390873017131928565163770327104324920282735743252933807376740336844876477635545800746211857864772197943097253205908782120321445371252974091688194002529939359490499825415102428073418372680113254353107083702200883201071362841347054756212817092499953213507669911214697007480813558069906415233136399399574652280218933808431560019858412517038704959467508633432449865652436478802832327578938381316282670543270825878983534569809055079914771491743747925123189329726819662927369448241424473571686364798651130732343156703597484963560168526194273241749527166894406147699359810580887918147369338980583787687142723254547330138287393027999226228522424526398134046062093763825577383620180248479401220583997967564784616643699364435971550818368788115933373641774202567661123520004578253129338720297901444531303862118100059262806393843085880116724699802931416257085003485420243358933324644349483918785686774871264689647347825096487205400712172839003888223471299265236490090981775068358129310860378907866149745112742210593076171462563855953768483102359569971677904281313483626885568172614245409755194300208647677369368578612916370153291542174334794186292243688357680280787771035523561440777827864833497845493606806016978133210790297038807529037809870821527961592854678287949534088919111300886711624933897776987796509730292869519167032332991351009867436774184293879371462174103879949950823655776407353693278198420227784655144490664297673557899969702400865572915346954274057340561301777393072319401394113051406760556643702984765713858487383360072110647533014034374845986047548043868136022454179886494223475192091504653294615973929020110641307424865105981985063154463769119517433270251201817895398186017314211379084515632085402381686178594113174583006902619881345703726214123916538997161126969029389056669911052760900888324910445349001737061418181449476633833831230938620236054260227299920033668696555336527672326959509695690315982214474255310392426500878035316062098618206292097684735011832268361760622407832953956755637709515778258769517434889828927800274462260808744472498137340647436485433828988477306724711786127669813859132220000373522931966791101041460802816008486948941185864192665199531792701653920381471565620953170215187601005869596881861981926189892981500926107034506386180881582405167519795618444326568454450314554559010552558225143269378383016262613833551306829561223678174089070994671622956824632342463618444642350660633860651734891090175892986531468886717976738473122129071905230166273029403449143557312890453974831600633066863260161184065267886189276403939050143144141731516523104759457648080594027060303199634897176334464531121697045615507497016459798971205150213678080802751489774639076572225811475751755651477730433243590279657093521760858979399352333757905208709184343263489397074568043374052704504308536577158951276117111167306466979181342024701646995444480923953490927655976368566333448166862364527081962620318766328775632505849975198341990049511863892784095976600155697207105894931583748542502025327244711338337222536852881120390218742053889928317585489679456959793673866838715791491576585278947939501177082424170324830666692433934697992697626383739616827487589077332187590153637989559332871879172389364591944326678651870014242869142739799610003992452693490098437435258549529348183698376737595785172238517101504790611146986807866327762625198387510645421473481283354012439058906047812569674275809028651136285680980304068216754977020823067821624574201155047628993815884024215932812926921322991143549244434445284367517401126910304287806956080221081137181676048247310246599222626236837620675492145366855528038270595677227046587255197794008321137069665705959772514383808392365579312253894686196169445762565611569379928194849235987925359579701481543330556002544981845116969242031699272487214465111174449524800507258560058434703072515958064909794060790791605325820697713214314931946753772141100127792636128781587778765387359436817060566283303251574647804496490294864853147372820734957211503100946763967089030381953840968901053799502046090765924007747715509318830645094891574445499806705456974822680295811409077126662188472630041893367458871646870936150355433128912820748211046586759414257480951353343992123673417169435344291758410017894499104451425278598160625569912318829050108191869741995647674118957158560244155459379845719343188521488862897905832742588101168935444240439323426223946167076202302367884471376573902027179155681817357214815017951406155533527239066140481028174450329455306383315256506802718330075253474545773427867102121063102900769594387280535095909465422921068574707471384701864039559668687139425604681335925293089249415137361266130196980625030317687060851951069268780104263219332429794212005305072271978467248206718863497228319532726239363455246649636054909416949684824485691361141326725315901273988824388619325624214975107133145791005300079762954448168736194747401987327614846407060206411666512059441221949168436822465486169780537442845493159399891172501519190708292005901746231381654640102455725080685885824487197178100452678640294224008972660133153425792405772907368684024414728520022763264473426886493851815026709642042816489151163662612452609539547764996320536096928292155606059467961110048419246311450131380922437154508957585532494924821473419829151061584279795851647661410420791889668812077160028519666736919047876693106600450513038879825648746070551374507334313002113535279959433889260479303922416580801948572233875649040054844532777505874945119151035839358363983189336557151597467931213950356308139008960359441181063512353541714299905766286353201377706313782347161115173245351795041179889539361819385200276119333893040642426662269017669018712752205064392906134498765159314536019856738003023077698201898466820109262816607397409810062908796726004130346081776402113772324979163111864804048686292665576225292381948582374759054696587257158022400925837730004558092990387818048101618238194062050234074674776457772700864783201244153109739756695929103431425498606044749356988836687364707667634511111611841023713460094300413496762472709729499987794147498633939495888206079349270376772021729927752619843451643085961037646596757499121492438529986657152153060618072603943596180528157692539190549982317777128713718700204236802686410302387966428187350531597756299986523102582998590016685664700082747829066228837716558420304168306411113706444288964203143621629913273012804679314279278217284586507646651187722687681848150615767689055307235162163828140300496013925362171328487037877771380176716446972475273803707785572589467449758208555227836194840580084113090943109018512810923426695958426702994603832738611505701042163132407815129170590058913777958873376624318953658580144331358332898367117991185655495486088921002916890411389062033707093658787060678201514572521781287449504763719091068286340881545798874971671006053328228209968131709815537004616415473005052524136288416570553115214673963225064580437443719640207075051775151814405033027012977538950420429682374416606810179978822444072135723776205981841873638215640852567585201736336103305535753570284031524169177679991620479077842901388887481624763222857209254927736271580652752977578944413893886101640487188112485383291079007359106733094801528191470590414538312141039783534153242576608009718677333284078684602047368673662725012577305331576828506587602858915644584538192247358219300648701544746793039400323959372347848492056977684620733858018683324683745566046296639198630828347287405347357248007130330403862613894260903929809909135949720688340637933926693731151302030217774486065288346107920634913127211212577464673872845636742825541535613412800345179957165266002562823526976519769882361694922215167866322034289167738607200358697992560725501627212540335904621472515374646956401187331723788259349949005794084115763939560606635649448965260883382032177779508718924609190475127201616969744509128358370040201026538946541901831274456395282103828775088954121039469019367826660191467897219614559618718950655971772262968699517683170030633461113098487931722394686569760984607592062653276541425295356082636871278279977627122313617074527454468607017784207877757854890866111756184508979869062462092559059556434305816329041145801364570235775953966557435796349766083299256042662329758890755736689558810033077516754785568172981531038916900634946852167262184837982280007371421879725723565519736731676577908830546882670645202394844998825333273662486523776611603220832928535917051430891793318435363337725432070310984176702359161234546053219613139251441896478447086369784182484142929308738565628881164230769137208379764290172159766990211324055707002149050760532374636153487881837354231195352251899973943939634927695359676957212258642846502172227858271178653970757578141480969401165850669435251803248290284063134474372768648352571933233479795545099055560845505870536728196675741581780807728880568212233303438895627841889582210098217690921064771615924217879560285312471081895802122149373379570159863326346489063455307056451031504983852679883950033480798510521562116068324718569513456150162421003825863719455228131210596382445247845955245604767917921842199713718859191483263688444312319361160155303814018470867360026230592174783756291729303812837697962828133460354582052747575219163510049188629149653018597320954536758634375747546993551500105206082959359090654547792647841414317315293840888542385013911536585649381828471880171800897091463968650094166246163116856242487549041641840585059768964627795108392821277679377488826110841116847698015932119705913919352863499927458337151897114202710639928697565446704609084847474591373062181182711100228650718785245604466377913145650006696817918665079876286953889202118788090117417386331042648833744515763752865720445578175673566485780576655382511813320465496590735231732594658229667970272827455883436165757301760247394616184182944908022931510073224836577563004754574374722073988639146792256334598803306184735561949077114779487003264538665484598466841417874973199468823317561014255327827215414104197290727764486114897310123370324290673188146711464824327934838613070991350961915105703021820404676187206362081750438670318314730236629169153314040911189425197233245511729109311425909507847910060389396299618376100929422542206062540259115311443997153470223204740894800507207007849278202688445565575590793707341236741294970958797640981765163300449550402695177018192541001621618411912294338953446217642622047774814699818824728960432866243822149691311653029874923532888634275036368935186092828868474059244876528226206600558976694059407047667892912048859817608510185408047621615128404463546173791381004231641485321135903932792742488382582072627882471316424731748792017292848032097322113695005908678728602179128102387117850567572091638953412545203595169936011427992832848016479807872273639063397209184796955589478971770611862785510537804496950617585087972504532561057830729987352224153047310482231712773043699932422422574900120006643240578333897688504169932322606679793120333703632688709602602149366737607326035779705439651789976067891625425102412539003547896946100613183385383696114033743382351625165297547718391798756977275748532853745936364351337007998352950740804115890308690050694478681654090305164828967608266843768562871528791880689532719081600634411661117261903731145105960123546780728208104877136395794065801450658323403337377435170768793576148394760547936388768739941409721747673104916637058878129764620055024922784826015293118022616727572481831366028422424923240948989488092393658899445580030486966816695348449879255834654114954958982414977984139925644071659563257811552271593655897184004856006057718531422634759362255556056049733694428825957340343090896170249580012993085148037085032338987236077224058891258217734199910252132533522051238916610755418964985608522675768167005323344710864675651790895065539601207125540595652746994951819572552551095552913093048329178293547685229162486011626849075638578743588445357098382744691701122517881052027614361299199020746462858485336518137893414397226180782121798301331188839950226308195616443276842449844902539814616471783363191507243546349577885419287491635666010451109569645883870425167859986609631829350611383435377037522392230865835296581959998445880545320115730927651045892682682164921857346244503362890677036809187552420697393112781724232987860975818446391935050844098330594540235307869955018860071919748205402080786934691775876169190857747199998976395362558224063622338583873612470424959544933993376265851222791358215057898587702979666087296510128468618129502301365954600832240508542167185242951628403785522540896204521187519429018541741933431564358326341219313796515639255995437789427258915474601169163927492784480670092250743835773282092312502348202644151392210794476457552946603493140739942976139841973689953610212836933028918966676282798081779230350824497775842817785833045078217418247765587492197028364471168181871940103855355695020082535738475419902473052479197184614862660579640848015808414745477968070671847898071858356040842631608021317108234932576201235357819883449056451681437788663182473743231425993254359310528034557472911969903746948798870299410727358654466943878588842640662311254781971698648730243793847580621807504453112821849362043575083673405398493000281022710953060843039066674506653629915120459640736981714506030517221194845626620297526780571508669777054854217019116059244482072699772463276640883036602205015839307548732914627944316012645164480241441468560414113643892906999771122677061537501866211326786848965047919034087948698168393212733607272469031367147499361999240468933461331300473030684938932410315360015477280501138427352720886565234053047247556830314430729792023444034469597849022303302573090781517859779044812150282251315544819562079437700131227838679692576302753305402309470271434803306210692432347638789928096502606081265547261953753532539672386478959463953923580498764909957935598129312809509281662279540017474433933619276156858790869429287671415668947294283436639614302152174121407896037912778807386396658164718899189394868286604661588096132949755001367143093923997319388250194029680696694610504473667097860196017401672062896978912725546859891864840359432647806765352743058606503837027178405858390323094273013447026182914815527299948242700429043254609276899462004038654494517862652937096374218003657331876369683376659923265170496211158994549989833002040937725644240936757603156315264122378781274432673797132771884627061018075398586024460141011856314403108846091275999893721457052685225321041526005079211788682420037558848347630303605045761865506645861499532371390927088008474592430586361508436176159288228030782893206236827427746635093410955847318365427900370084597957073863486092384587588565039952208356986260287956961426615573331809549442555506683390636536191664839379362419757059012403126192469529784714564290909457473310153100733976998048100723107436979102307335074570275021857639654650401498885796877992490896261660754196870092074460252517666963201227293368233936406486272348022241514407160358930237037522064947358402961677114730942083478348128605434641360435640402587845161610844792292815125916031146007691560490200607037362411167369221653548205254915393241478464287890105609744936756552784714296019247255528473034514737480040237283887739607563371742599064278729540965306301525517082675847651615667376683884534261058879593691158946070613607466198778319366003902903672455352648553954611470039106679959539765295736210105492639494059930714024514714554970639878606486063679074458913347762051858145240244281941976614169908711102689348884562866748800153329317160772821917693725785160166731744220413988901405232462397838806909246115271126781406434695472475988432007623263822973550218592348194786932964096021478674478312514408687245617288508078549409001861179923787793131163912772367647575535354856177117845261432745688289772072224245276469087562621601562236622982762446376788933955055608328980761747087189562362029605552694754379982208609435404928990842864498185564231101021178418882647781492712375690975773701726857692733601281597261444100107035134332861371658611689582746005163185752810732895427564284868971316251325039889381537701514527353775362529724691509495676212897016331132019463044009926865609949720831753879226675618831205533152337262095986110613491550194174806215781132114214573460072775233520758840703889715757903458792296955041339164321714740521696892879777922376857278885688386669815349403891168732121990982652939458015284785057710896886230808075891911357359585274830743225770521290981063966959312600888558424311179428952603165612037702723962240596757921643070031241170242255577755808820073499580085266935507943250619777362939792348450662721945751194409098264530222773906874901683764434210698563414388760788315767699713709701417081543467130157314903427304509687806580875709922538033270468771334692371811346948981634278122120220087879533360613545009210834360677055510004870809854389226276652319233496057442432572574336062336441777017688029515719427782993050350207955871854451017184425313756691747350859905171653306844251050827446651588469263188219726781444242744487329860886257235690955795046133415064050268022469025211661762308259225879095167144063386383687752270224652248517652227618135048135281034035023593808048661908270969401988260585712767979349610892308747923193351477358247991941167821271003847758389412598848856573171296182426512065996026739483670292829651659438750537226470278904708446695105237458699787935124016128787463484981029129726616501305287289532158782380977812166509762149978141274410410401365135999143617270519416801643350665670934548344806433018037144890173263474932075593102386350880432903569556600630420822250142028985733035904499441117344610955252229932118225731224144258593335163797295320694372568678867744192500268544118448425574567097451915931821508828604321131166312840345201207932338317183803597315650430244971449886992236773322144327099369512153600520057870662621537275217632240742219129816872392174320433714443619485223128658829763120345297896091812483801365934615801063321081183470091687248222108431405972258562160072440453203793134724558241605078438300375380290344725715220970147538992603480242869964077683164825704444870362428905368515261884821159778541005462048540880472057302625599423577453832801752541076181051930484732200049844229044396045992658588515139639834304015568987660765248849114143649978309905980776167202848795829288272122125598715758259102174436047138530200243284856276844609469625055621022514494551744677521499046988647752472066438489882354391519153964577315601871000893264477301399214075223483827234824032299181653713869177017154979497585246155911649408416733001010443047837410546226314844824127243836421049221973269325542829336394031761265600206126034120811974595601943423908960181876734455435482873066360609133327949432171835966138752946574941597918080719705159662919410464818089405354583642307704878848919606870060407931960376090184705911051072335681718373673466102385484034332895399580284680180988088508748258567767161245218767883158616508069969593965862413423198250485283250785610794364299152973843624283787912467316448968150938828883616232379002404877083847255720892890400277989043858003549575587250577854171340108897025638809132971889475094228845711748984656391122830367359332822441668716205707175873292027194470239900752787685244913947214714957162393860621404689077567448768757481335474609419209676054675292496149177682895369277032583085877232852973925863854285759690018704518136608753257740112839175933474890258747597885862303339267288916806236384271926070322222721902583249346158166247074576064554751610045886500134768008200230270463415487289203196083410913188557069709643824292138571014503807292411878051424564465738753328719760185712380915526786582975432011307979610816901705682568474494918236887547993044682272042943387413280041151174365140807426922581249237526923371864994979550628578956375348832957015681878886744490581115318720951523143083950830984610786915187205625931819635999082229504685518054916507047349967695367359183229691018976450721730634182532300988330575832777641472022461922952098796413408187122278264896490338702836263481182765248282609335956835835596987153751281830079466670743383088334349943802004827214033186829383581291496134211713146107515756737072735067493178496971761001970197164395704641763887579644219905614982062012523316532558942541463904808403142797339308592975974344720821630287221308545851705108709144410713655113169172844765129755635055972048467124036897464715562300079912415138468484675850336073660564185813015865870654240931276147590103903168729832275465499369076476354255861668193205146607295897506049224757387188563291811271063101605271088947829994619390765539239392205607392218533782911871897879892066234316937626881757397133845526066906589454580015293665138145407908220303057617516592318940127149566516769865253132733569159967890477552688667227314234214515199966614319605477009762703801038597513256843526592697262130947124312140339257763541558031978582277539098434267337679929562913076303511592445949126651962767392111651708845359627177515160348228581590031634379704880228833754214962682119175695903687483641714302245247325251356559384685155327990832496009645500964388121390969756313415570821461951293092412783827955230944738984558671714404973000566763915145929731330436260742215040375519739101733037122464859301815344362746316786865069113710763024937560780119265003373934788336686992625697039937769769231155518965062093670513523273304579243522051726395949618783204919873638797375360449894546790132310747453125199577975821355704430634254455034039861888788672125798383668547547259008128650632065461086876857839434960070790462818926099288680487945468739652004053555622879512717508733599509035687124381307437344867238515501495356049677235532811351319721422769817638775257324785670602088187350501450057485755010583217047547366113221705634297154515508001214783606646581906854293437228838865201461351102235088870078074566579860967684789029918360090411552692055292790904617778157001076088039697365002707649386045181980254817087100850372702819252619687510414603019026248198361671862150343354650697436741919370488223209557360974812255074344424966798567381896548384314248412025703645945182065251411696190242096529691773035870356821173209487365692712642900005211647529985343619377993173525862533585572906439301135685624414740201861978997309902347993709013619146929714154010946292396457577599035274420474919733880024438040110009963396286130620975619856364506574177249225982588322588834230785304731510230071618342481184183963147247893966907772676048294952139139630624250321172830722036094947048926342510168941068831488978890479129357865078834712354788038916557741455594091854110741179417976618878880900651081814412588742803271553059609447823561156522756282976312809123353773536612389923470054259080442164845981995795721681366461244812596152889315631809731428063394092742786284339392803784032649327156485536406454100567986297652812698447795125563124931726609590126986846948682822895368612802850350039859643869262643151928449485922085156456069947819106554773286845143685075229523549647699853522656392804165679537434106064547714672824442475058413252795350635139890722568960407366643965551777686755204322977725683524964977974118492732784868912323080566431946970486204834707996605477768913486890563103471388859887704922678433943187079581252617693873277417515868792325143497277377273154249976106563536639253410240348294791189023054354276676542514797552595133152267622546604605840738367852120574187108664326313234680316088062423206588230697870061538833863105149720296339970335495745246206741650299662147653360704246284118407891268864147784387361560818681660381545895071393715813012637382422648339096797835032066643887456762386736755463185136441151585394769775075859327453157645656178662908480190280658219281916428617543992266116718739664725037963635157360915597909201366177969415875401429428623418934114357306645195765676815474902563421852897391295908102933655838549016115314728820958505624346634368782229924057966623716459986387936309686039142095363538606856208276751452651067771164220079916840582773717393781420070375705386393763580663778689000592153776713182649688303353445450491985268809183613476611485267349046002816708356900821430486290110182257878486428772333299498059087279964349863864648359412660239568654582727249712107983041496015040669215128227359750641670466246486198889589180486396527876134182187966458103580504511673761725553012704955713393977753311748496718043880658083372778832118271396215083650138281413566123364161526334001227249666908641394339452392326766318799496581447253183718425653221606233932153982155681402295577174099582642021870934461290290847947747789013447434024667333004460108255599018652438288345617304734210060911590408868712630537213898566321546771476894342104059396029816627305979395421125056208263668844010646740697450055855536005557655329499894405966822361076492894155539526173717763512853812487180983252763906432742712426596222736670985362462745928111119215508040912251564418302820557348346143790119199515764035722340911220516529891784881190069304819716515681468411209640919381184284493548853204467436462654770919621330554913251911952853124703936760413804369103060181846387352767842356342170995696710050202808145185432877841284841802360429813818195554167559362644169107517955290802908727432570421074600199863806339494455586108074192706050043780784277849738885231196221899671951424947892615900907762499336588257016298458402988896216553416884883025287878023643438303968351799644009881087068360021399003698772046520902384010705059130789160552847937680976345120401219496169791969711555171310612374760420317624616695926845901586390065032628049169772539979560459137430916451828697102020285482178248705652689046430972664278293545901075468139065736205166908580958490453114097669170194441691904572110249551965485412807583395088603647378459509240150951932898266711605020197764496294779574282138692603922210782626375871686816837174027814218804701824877890855371375097981665963181647382234468104385384291969387463299522484536972426116794674417183035232316982409792595831930530016144261719374921139084168621523101482649830879191230010737549417129972445023005268477773327698116612201276307231078951785769346983454305005916951848143271088202297380947588154220983197375323177707665094764955135408617240145086285186689560784466591043286783266604406508979109561714965279445897225275099087424733429557781607903029780169136962981544228805670140738116432203384480187122950926971619438618907091051259658445437285521113454062079589969716399497707262651929059918023582348173599617634001631658420884677707685636090824565609387159888277958274438916511460884805863410927313533686701687615668223666085441708324478135558643713178528130127416150274565752986615861577006704096740816959306279154588860171693849185259148938644793037880858293972698723800540586390417844980036641643553817787008387552491120015004124500882378539328643822795128167427966882682224847349877524705148970924618000154137728410451133496854891161779618226343652007210935836131622866148689015014568091475127855102859697824522498954445904862734481113193102452492091720004210875884806908886678537086696581958819041481028039056575574837120535895900464598393943891638563264632753872223462366425173115778522869976186007000649725177337184818610545765745588652322542712668339109525808979571204726837449958731841549367230340259455973146644170449635355254954673189131924566332118769975168965011675225090798343660112729064459869580639622581761285833365898966481517182762227112047109988334684710856525496001056705299011170731134905876967297878499884895588359323893775400385904214687127065250933463655533677884161656152339065410609045237148228441376766376269083754492931482786522550452818479000608946644030106296224659806023320919914791880133712198890166434244040797043000864342002035492734275157844438571177822606453632200863824765771913267805415584338246361267855934142426296610540940044272669679410290621695818542732251115978734393393973621752800635652276143164147701465664162055230564610997822807877693375471170076514684271428174649656937699842397335658811684646468200252978342365819634913076143776384597261307131973046571090132399955953776843411686792816695154071779346162263793884864131887147701815596794692100662661473495555722732092744379961481147729169574280101653418377916598771595936243977917140440540296357259160809167796415413520556113024032844483520754019351866638940365926348182297852721286849065856170589207273581974141505932160426097437470327932527794376958387414773141100454736988989025787568048106278431082126607511334546420978182247737446225082788269942537797374083351584409300991934451363561654619099615917662038029152241693429429917921494692130866817475789496854974387185262595078644500549352761667830963059339481580238079112532728856973752370539449226966062432797641813703506659343620550112211636262634416841615494265794600617455705258703799548070031726297156998654180373556880952557460787948813620050905348274542767304662660234397887126686161235388867995990491486203084524586074560196413563665014729701249612454087358138723694006150049017900394382919076466622337265059063880290338748160538183559329889956728216950849140009339522985859581617355121094563937008164310255789923410336932289452014892729012697218376185505260205117788067467098937259988473509800731020711544989675189661077459180745211106424342825228044283730950112034858933075321450840820022980185145731858517540245349845025260924567922754479736252098483329333983331600566968640950231013760230361155905816422069319133752858498637393771037134392597466608574414634000746651244090402609289711153586246794746852609005777791965758251899108459362945138012317007366278740828738729080509535027216994660954645934491434555389716453728130609218940012815720008228535233611039155663765821352780763209668375189647208069778301999689782138418645397113369095464394359361005313552691927716099059435123054086990849546762096996962652419190144153034036302988295470626740490502690889372916234710906595131486073545617791277081238817352009586145502991534448947529048268052247285794776838719805950007677605972232819292354705411053732226696185935118620136859405009554762716328447829320049586548622552885192320272848379788980042849707807166722436640548531669799443187078711407310022878964405474937898551814607415602480453564636200723402493516211888865827542249586110016816466547680528486148218288479558032967321749211394028831221629598519809268091089724382307970508691966517826168120556618792380588566249485430879116164069398886130849018592027867416564030578744852692140166813301205429768400017170361503285233808512470200623239367571647760644519059447044311564879797196827521429176409374382511851463418009567469474089390350113500163049165150079606008776457049344839046340117945039920777356697681351124502615388729694402833799278956886626649124496345818710020643340592733872138792437568208550417053544701991851437588215728577082388165641076880153586843692219161310260484084753283036082700106503265219114240768648901779600141303804736532805162338401999087489444173566138694455765675657744732876052587161777215050547877910537476313355912602165645698468065041475132207354307403982257979880922601940348659943031576360306446303026606609662707567281126422247149345059369676006262957080280966653148211660002373604705676690703128986254499283421130721631484119442586878685652498772362731970603368321292618544483036722780650009529206684786529127202174609708791645003533044826180948955307144068630224954275898930022819215155164264545128080324575558930698216543391571772025710112352218239686952939919878952734424557776066386313670238384234781761441063419440187208806512341524026937922560071391562266886839593351931008433184906637586485533643595867665930653172532941188397373842117049477466622879754108159122230671507161916248326915739336747684201576916135463609430193097367293937896363830623546272102353837864858046697064665483259795969729854130376284588995349080628245268644022220440253165916355906158742233833436939023790771690797649613402541972618456232198107842049052848678004424756158653641311070195519447532838872688579220515530886198240883452177954950944549206851750902001577899908302445944590538968986308135033688365859957201986160849424577041259687578965930887887857830985847882912182917546093847643692509198658496491672718912459231746362993453629433775589193480981814890889523696964087704366794769585299776445158069237129900818993500358439554125124129823680831425331812133098618691236922880562529316270258832604295943813979339543222127560847293521582340055407830013912129678266470470347681655950055148672745255375028684916075766700534739423126486627409686483459161463648066646551618456053978789934938886569307113521750392985676130292948221161667400890436220377136697724026172026267545169548432697169973142531067820830555840071785909499560553566097950830096432675034121429405947691589475297994623261543897398782260038425719014984710973982295656098251872663587641521713936596042346382117798385971681100871823079853622056729494406905196844195656100982756901355034098262967677162490094903980570552186360580584064998898429052701563297417213827594576759966031198344820616864727906323947288484440945545737178641740766377051320700708733592697230301797750082799802623781662228508670704542392408392683541096900699669733386259015557801937134034934275735718644590555692973733237840069702529802636860250324626988611822751922061449830894194960664318861107699168764251509591826423407258834190339504129063132266210827248638678696892356057976433862480072105745820797645936813722215760239076634645267271362871209288974307608882595123158679979271225759641211111046866780760971769732233799970014896244361306145524698654416727031895432095432974504040579478329000782178831950288018158998508819771066320637414832189013348277819721854771025092770760732717827091076425247699717075422107578645403206682464255669001038087366432588837307796025607439712180546464256353656842259068727119115661192167223966283199755342650864094573824943759216792320842086559316330325024811227314755533067912183660680311876866083423833353229603085139700871718125009327640151267770499850922028404314216951964148838586991404910724023539119781724837927230921390604775360098864490662738068888010609470132113355333119001622485799874571680275218055639511093977841159563439740861171528867431680413943353785894084440632561830501668395766513278945403294671300514981348203572311240409755382423787926510333139713488164377309234747585227806643244923899074504598574166753717687120452445092004658671740678440406542382539489593202640091331820671331770158689771801231607088348894795697446178626756919844835298698549909681057284861798809005424920108244767945008045763081608847457472265486650419444323925150089653709814467427596828659792850362400158794702741094827364586024815716427882117507122974973969108827819160488847581913906907737052182244422988836479561179111297483647182284847945239828252193405711256123343456186300441668657534112345661544894089696512588979981360985525517127996434915793173301310254631472457051824948115221515751231165106397914732471383796943293823553087973295974630848861022465386913290293135287257304783713365111630606316209067760917054072561413457136832975049979244226559642588813579685914682706793386269747446273460613551820937199734470100744644319451621980328388423457773692088340004762443647810591911910870345486099570714677076772963134905478165715346271954748034101388857099971291427311610612752416474716885123487387998921148232192423604797830989255275141900123232877780338155476049314444952693346769571234558851290619674931750383125863494381783610288142952491626045760094990043568977007554456022493822927506910731513483132704889661858388714374043644246995772116122615114364829044137437219500341349154756952440245181255175071274087246384877829341006036930852546548951665281216590724940557912798341617237379116470923833680334986828712474251049989049241352947733297289451787246797407370188378797495553078166748095111564180876966468355969993235436179352586317932491897486403446098499301752373735651943035611532631780857679361736685387926528811687511750850334690239816561568927613377369725310980346902398810740598092206726447593207065637914076465206666341094481746574840331604057906989777638984333906376892846027303886613829364563119443656285111069552592083551232651862256358997799651575946753784797555074519229849740753773995033344626357682646114334314653743303389692223666457317491295295864759177768755976465151826335349089254355464546012387302481597348664593832349140694567415602569192579009013849231494206997101436500704864505289065387923583853775728372823754807047754746517273625741015560458509507829189965074986900546154033453623372920575353098679644945056424592980433271415380905625636831791005988523115451853995804944408711795557505026815356666945743625607482873535428228249388533838063762401001144912781325230960331136519302573078046429749841794534233501913144597083443704334081715285481010014352045728559079563064668812105823355365908738700234805691789687170806017873575270489217705886188820156617335582672471662207784303144418585226100625430895406355435334015625042376812293261682479278832698580316787446521157633081319387499301279436514837720490972713776685885848633578445249264241890673367810719002762849517821311725788616859933440173250849352247815924230569592759522430384245578419598812968322621296127143490220500117287906815110697531473301336225840426029487782539439716061215658436358925341037644337093919840987244369385453032439914452639824412465766869613378648577265088801974137329842750724015206618492538786182820313951643673471747503430393767688521386867469149104389884381593504003710759636483944979587828377694773451643986245321454787064250012216964378041582803117350811426486636981310660931146116339690547055912539052636833635393086908332868879774740900220393030695134164977551951299469812617279144394351570061142549227626235285958112155708974480826791796176679900486539647822686284663462476489135030093473613571704127447763528329472707211275888231733587266177489698629117617348415700677520069519552080864503261609391312850005143191410452545364885247911029477296146265148413451645319615700433051415906528914466076459727683570543162419148533227339989887864591299736014541443541255611624016041462003471944030075144952400171113705050937984905657491532776135206003949190425377560917688387944341355751873197027336432734854089963732399609349923503904909984036955274261001693705375884098056503507895994107969704033120294616902907111450022653845490278891961146280446271227641587846098314455709514406903486419523021623831188555715195672025864144668802612417930138618869817523835491100850715158441462111803955398499940295406492085188750498827346814064732572123182753649210777656707690858510659554933750293829778316506873577917835739729376465272255067213731864473152011959705284877987940493365531035310479435490614326199927992095232312760722406684646055182121199295758172987765796311975588975039043383472726223910102635249042643581819388890861699238166031289773976221105242996683099123839262974688216937930091431982293020915691924986610593573494686856210629050619499349071852777033463357788075430614419068378391571222300367440715414638853363024842010963113156622754012486748329936011889390385283072410162635765408840423172447257075376197984644767178318228011055190905262407608888831196948090777813050663410419007773830923421780518554421203182309724502317029552843867394925234337805663338650135896677108038445496043042691230863875814156736681709578722548055501265562396520560004214164819799987353728217605316345173020525761275206090184249532543845510704845799883010789295037433005848129172066743406747563450547031074778869853185412774132550274519502214067980948436123362045169459968984398474288831718839860321704215945517154367280926430940690496690772239238618835551309836038671541444376517506068541524516903629057734281673192950618676374525726158891198432729156178520177530576276613567299965756937326386563906800771067875100017896111860692926135855438419584595216229841321406711647764684624625466223285690927938177198223109014075456646495863586513676308261371874488457935917135555477965008660656185978384412403508890648029469569866912956965810565325149699553560367950764974703358769399927163853287615266908646663117935387862463083689128083054238674879175925801901862896329298921465774650808512863856234478954578832777927819348398857000998346319000702738244644624115647915372543063795917392303590471210623087073724335795093426527845623466181867154380321860392546935477824996203406852829225303025808098808157516664361148281679059093089973876320185288975942722011786567094801101807423602519341583290317086422434268495090102770506969334747321164659067704546833263852886884746870662826324449705834672601555973749021838613909104829790501386243628429304948882015355443770225475152140883250983438949011947400879515182040204971313430792042465712359468912407495135643946595041051020031300207812647524651232346199343267062142125314435906987882283849467869653282781156173796854093574065451746536043908083479091662022901282909037396748406624129539882127921555124286507708590564307609800335646942176738720247332775920276210728711965561455176182446691036726763540344055543450433223658016078141586262704019121050813888923899896000846024121123959148508370222062645678576168593239019521638649749439685852808427289516402487863832583338684848760685135832159491495221403442656941290510589557378683543976518907352089874093641925070766157512481308123380882307332707916991755387191043282540752659864948335186627698722557617941749934333166056258628683597010902575303445882984887613333888402099557652536287417709594328481511015329766965343055735536922530484196430033947089448084483213976945048426236292072883136670909186102479571919124018659392310534162053646757283666159999808305059296780851493408777372767519175562791603295554219078503770785547303796396330582835024791033939322485768269663433394408507427528395690778055713741027322409426134254050315246032567637027904514484264486733696781262272927633740758167745584123990021553594247875873546741552153782406383658985466968241892445901026900638491762082588143108347525075548974320968219910397825705225647785927992737364957135278346360416703319715631076951441005878717296512270603845512490754146772071110401904490991643779093027071270398050244992466816844250108409982406998181801200651321679628878727199558496224077224709702715608669383149661274701364978532065714414731295244076744013807267501671002360428327553332534382855170527691699652941682933366223846964022823810141412760329772169450159105432910287186973840178992579979238747388157430461087499091701682511968277694123128880244343335886502905099419116128032342593681791769348180914881158311306538039509772305979373309763515274437578160420656107828264629933781528101216450554481744832097917856996096953850521793109038977734615269922625116453328399634580689410879626118108544546992496502477154291210185467858330825257633815766056086182198045289639502093948868176630148412176235058523342770500125718008607349556687116017384666773369650685415681247047029221574947530949310263148077841772785758542306982457822848541869074160371948430438197079088435378586927657451642548461832998254837206990690695659277985610488823140898467130389764481644138861392553104080344257458466118698266651142442792003186976934019946444243944528032120788824411701604167563792351072682200055594789604720444159785463485565440751459549373164771513111416406073673639224677638001248788912431044090274382195106704035125330739170394242407281159034476439068474453708340889202794063182625242900663801335672412218577991820773315836642056194723353934850821740085203994813002914590393674094946685965394566722875306079732692042170919945557464524759282311470536876682496766074545912035433642234135042748498523556152776847311968368734233223701543291797726932042320893221252510339078607475086668271008091363151906458474961583223845743374308412194652129177556327280642788174413551247719482067158450256690852889901038796726449023266328129742952356914711179268508458215846850149823744760303705641185915899147330668948586495514219834442948908049949907240680589845453759639091991786155050331386084797659370992902019375558130524667698457927844561674476247999391012414667300182729640712347452113454331114115281700788333563427409655438997187369000460841879345567138507261725454996548949164091502820770607497961748391293855249836274667902361066546959228527452365083936504104613395370344349979084756301626343380212930228948394138149576239538800955621824758981016583884935091122863372352267835564501287458342223348810540229143819623540200808376136662901916378802448234252393611787504521544265840249247995728731250312192765078083551649591509560319573302450250593138356334762078440457356614955038703998663420087038431702968477007930446516864855204590114395213416466870395492794703137980011116692785500609503879878688287768960056684508024864057300902233500847240323925313109295489944718443457453016455100318255414292990713339081095679568823705154837086761641016170223472465528630954074299749047258539661420367760206755454283725823229056756020447291038463335261481986532975071650058935351316668520787157477532099922354996529314910991104330759510564996757153936359602836567749963633003067079804917693680423120600431327363281151301656518273501080247173519963302977885755957816234727406773565456677271071179781195695150742288418226033735648234996061599982291334082142100809860877551784959776085773473232580410607442705437003234974733999038597193521516375381005920115988205053581289172284481834888914925356591840538032957804306133221316462397496085260527693226714374347037208604033037716218658416284760068155611176291294702417097226285404650248746348361905511746268174562286762019065685595575512489443384087764775467289000382531531446335154625009696718705854557975963034863526626720834661937254275517527123602547356748576092711899625917353417008721178299282664614422729747478626492847658829784585475421977801044135891518291985706358733510063445807935517377804165816470058973607797026618388349864562371003813837064646543688730770685930756035615376358254165327463740375622327041856653847978758017161427150753374393609017074290802831748020903818230190778351736011052312662919452715255951605850731337162831726391966716437223199257717731874641946252392785995750958836844468972451977680992978325321486020131993340391358356012450197976204624384125883795139982145628526557276087544766659145645869924917573218625494332082951742958625588946070275012967316355105804604072489645647697930214517837919939937142422032424023645879553243135465499350987770351324108763918883734899238944163557805229834090940868168550248890738801780518234503292318524125455887733526798414193211730165719980603883150407076249429105589776149853409276983379606042054440309757986793219959468354912599585762818852773450510975876066561051319769236035026278128283139846979415062770098181416283048188852067782969630487703817277389966847161337744982387705820984199170629598633531231728445426707803140879457808081977358335754335844998664332974184907128896369128071343515904941199555258343325391901382143049046551423062777423751126263018667547876912680757777390136615111639040991197404499833393257023839257726882085833514599399026238819854808867262734041538764862235601258683561763215315208579816495849931793914515897908861799941611585397518440195752455366707368027029411292765508051518909825548318688804134251664290035394129450266506859443181406954598373716721440573150757166186472029133250742560788380049130025406330951088762320509469366483230993378188866870377481040363409211952932333780568611994064139089383267709235455441950434188092269224357780045628152107633528215912669425609708133478608052190654031107014863834334004088047838452958665572582322303723155415430234387319757111947343300230622037592652817123689161455548097816454948560235772064616448148043801811914639430809170671658845038459892305845498610047274753807993108053770930762471215050034145303324259420700536955071241298794746576959100207321702195074061268469485952602537893428789396303327519103619575117113705947866894499313581945789289837586309120243433147553669603602317732809588491812460702160990124696364388977016554313014482745944992456127872644873772646510090053968980518414447519346381501359022433201960549967603080227297782355948755834691235243965812052904053621698632031078928985669897449565482252912640289933387354586814297424905881290097640222818411764446728102474116174354637728637522611367797857460174517079809744998683191599323819281402765036471689497515318823164790058165454727325433504139727143270899415809073376135254873547832668953471659982591414269622726991989376301663569981076408368889280435362652843221409957615334130641147063419670281031582380756737608974509090750188031253920147057165447011211322982444444612763441337395521706135440238580744769141425159451328668343482554034094068640827638770079915858835780963307559192294799439419223566230013973759499331666932988311630070043107770128893169706872713404929960418180411622284723814971942537600471583205760905283684018773861797009945834760988067401917322221227301175618597509444799081394778458573455322101175041645871058838820029863646221176106878221553570103886718606127524796764926464345927514273116537908717331365809284392625078392976220678007108928537653441365491370720010802491394725483770923838630384666609651022538484102451112099305705875718370724707097627536649107553442118319836704794101005553175581231230959589584910303208197235604279314545702733600467576393974761404535900905931153070131120837094472708996175091994706654720006148488754497014673217425601874290393677710136987272214006588450697303709270122264591208921498654013906304934107169708780284553140116523765425957066316209727491516624201464059966074780079592539961007792000179916252744001125831000707517940231267502302630615223755623173000996864345842810026902811456710580620207879378918877523364466380964966120110264925390516932656928135109389964982755889883810207507997029900491989302261951574361608376758700747097815746090074079425949231038155430576093800885503119819585988606674344719984884072795011431535600893490354118264645382377966990207870626286454145657917911725127125149511556265920994871882594778946993353015790086100147764351356688868426690680937411601647072523134387704880464718435448536617016993806887312312130806356865088753622591592073394011767574725325205637946614511484012417831455870206809911620910286303344218479765347576683178069661410087440160040243699688264824536837643220574558196929300732179067496546225101451481851210955589543292552571075160330739995063865417307654349513972024799468875957187219459979092709759215888245436942187526734284010964516026071744329169115269133056450965832040830574677814430361713939961249438651332219967637537464094206651935544637211085698772540270791080280299870873958985360944735066478440709828240118204802030403139765509811080458961783568489300463198500611435026196333244310556157491115915621301427536093321673155590669270360162199341598669609468191988368392991746262985881247015049314114572512685899572603085152637763426692062123768454292450733805576408809317338447899339323968814677966663248388927908507669783395601965182269130586237498207347136039138252248007725581361852918796351159928635363684483610432118788393108293478346189846043137619495787209621207691954849405736829944659445715335671348886539298233187487267302816782527413696337470239796136758674242556967980334063465327803475030637084118585141477539067769071004701727510970464966762172349166869130345549536487377757611676164166788123397980086445220167250305650304419265477846126075076868764726703017328680584141329665526078851240436577186368370365720344954196969219602760862385258587752874028780127295777910298604419700428762405956281701257900926950991457348465268686927319518056691055878785958304944717360454818407375900005241819419204957595885587769776435759622643007738617955521381262250156215232526770418008200774466084157309542442940937183870223135266879254038559804378003620520387925903978067286219572679577867245157338009853528606309997201002427957185950231573424295208453038572299926638110896714426394806925895978872965123769814960687851132512933861470029190699336908617765623983762821734981496588971622751906837362145609743708532439565977691198371360233449034920603739527309378146655333096981374008459781298136045673784248698643304572794909946446464611022309552975466457425938057604303859262198143256143236017392781143872657770614596431434501826222482954176355057368078257507139470028272305931254631479771400348582525727427795046019706824745807915702143701800495050692822650811507228127311277883466805047161310274787512104453907724292539441989617013746005216120876529928360425598420595936611267577857123611974917877270354308616657243507279672087497301460210131798558157710584200197123484786711958085473878894296542346152879375436173530730167286381405647542035659282427837909553485502876450235120566597023300271103884689296355132524431764458544276527726126992833199053252631041363063495436306541422025269278505294756808954768293340207645295686537850011756306734843267237786663542765769348951325733997534453079831823908471167441615030672367950252653524414895975712191147687125457997121676858050347849019332383314357676702525991265075446100625362196972220592906215892070370996369693830999769758784304391314050123111004563602320969384405189878870097983594836044805151332182552682492104298906002149006817861234322085449167747043638032547608225494691816446775690580213676612592171066217394928655896451024726040595925954648330262584613837678788554729006070100281289097717442672474943014997731446102501693505869468659206159800981434645721350316533865107147029315233601040270982655281776579560879424791475491470805901864376261496073736498521247470876265241499859787323383685169691623522755832942000890899893928964881682630487474275093468475937326147157681675639966241635405025623367988666536319627596452046638657235631806165413291216489293195594749504027369242517696922212886188377312136313450995874062073245166795068425056394205004323568558846533348012905289483036466603741881121716220190424326242467406587378038834041407718363941464418671894867805517417172608956615139769970373539448506359257587820610999211737660979431392766580695205701948646913368775604802272636401967991987865840238937213281701724270529181005142280350150884593610098128125405999574111606803827390892594956509628321989775392709882923231284162384637695251958003498228555031490058049712778261102441320618009244354296238529188816628821981881255031346594974838256424964359132803895914420544527931756318740498305967539925097131535442098907198795912791897746014335740194332099526705444996019909675119236472172124915921067868133755908754064284853746661657718995739347631197969765104859221898756462480932434124954201964908504908018924349118604834540210377149573073462125219153905908159124310557821758771965037089686864469261957580879318789892869312355651625598817547663291466677745791889994540561102424897974028121031156974402475744296911973728556919082997976088848847856532678672891721178175268998155697854872741430419154444302909533333599205711310498018006805887359241820398349266592360430971759850754888043109798610155558546513923108049947560457998913117196607368783318212956275835787209765762474606109405158770243200995232534964242626613486385306091512623341435655855587642462348258752216316129166493145163715637230527855564430318991317577665759483229528592622622498694420085556996994898905787056188890831795903105887572551167492945568965236505274677694968656195841326075917491337625053525671186228560120367554203636452310585001973293574401067881134618828198628272022791389783153570449749978923959404564590164038936349578670722951135512889813960017276928311383909958778072969008575201314282413382351439991329702953678801223098465465709866348528143761184896693495033139191784779362367382758591474849019493796931850126170416351039448150313617786890534192804422635170293394623506352490593959759664540714400141650599710286629886926252445033904788693973842670904123500512003025533476976033819322499964071570890376796743526649054324460620415853357618862979331220290267502521030350396630702840915327348722564173498467252505692480478988792649767033239655994605785500117820887913441235162576227287492332785360660682242010482373254637080197336563538637341299585803283416559061793282976630776586125195765919702244355962319199893967202074387084248188187271950286885943795196188532757701424489683101047227906584074941057385842023320289270064392427675826599445717105052486608639254558236674483477646838073228844933385407791484146578931774052577585303332944830050108402563361246962708688404477333544532668918325861069994054685219283724956917940016397749111607620670751576019260275899524004393500353933941215091622070431596497027587823386375185267668126629221554642596579233613826096671318555696654690836893098200179535130445911217941006968260117860894680784357297001849629555440172997448500675834542400589503820421937611181748020410582927089166847724795771745293377370027176447597671373919752552905985328092243819061326982383405041356235327097933683819528323461934369776799336864135659066869097083886205064326512146337462898556963178043551635700016476326118891663785989200067610950069802245877339347087100267363141776279277612630364155990045252284661781082001042499991302559790536268174177162491013259770109500031300329829212419186494883966036668827431022397620602439948476863657630674719538067294088881088447263953438423123925771840381470671026668629061771301786147358852307702953361798153516125429544808382297840577931920458102990040618097253464409834998033626215231088317903530312753735348586004750317021330901212109359074024041327888918053426442769624041349240663668964086863233325334029770667792822574695981018637620623887494238270643341981019835674379865872295577995728053375384587092988640436133889329970801923413170382083591803562641888265048716491620526024170864749710500484204479992893277801842080745711646802395045890227663670954306653682544782234130207282855981697810007715012047193461637271297046563127471692933426238885480138727092281676834457099625513811804447810634649924112809328639084388981321277413472843834731560362876335148265840536144665301121987823375870893630874723716171181596403440590639649976143510731749276424724329742128513732398362006944306941105341161697048692858388939908828395617032704636362761156996068853585019578625199178160828523177027082365233965509221339209211961499893456383201912589647683193680533256584133404043758648482544743467792626097526711875362302200899544366279754349430417810730467504954920577288856839021098416149532897587722516479266465156869382929746344691827162764696220753560740166891368533916700453757886660095666776596609345758021861009886458799251450982490830785037955232282096990252931280566690074606421407028155229473957853954061291061589338622786519167108613694290772788805565260457067912561296668760680449445739871786563969349279493940839005070760263139893002939782655233473331269970166018113891144143306117037440400651095520630041318405219375531301681779105039900961561526578164737324082373067623154804936352233814306452260713744616344793283298253644539070216132157014413079369036104887184550194561105796458317405956109774655221110561854849937700609225881002250953628082885463995774018410312980075372642156139428177400742087743159472841119127766644002103060635289873722698092613747934844548933895939864725735499632843781857601716409280260060802424994151647916690567869399827765846522986113458004161719455509841623279430772303917614479458594671144648040991988549502200512251749022250098039953461965640069163018363372842862799829679939995504100971355163146811159239496216565270910028531655646561873543757917657949850863587114670646647364374566002325531911043445473902225808530097756833236845018294742723613684764851441658891215717841738803999094299711242950790992203674291435812084955368768831796542829757018935389589954579122636809860534788326748480345686374331814567147066637378310474547671725613279662268099854801893730937067934993373643882529185349025908991112991488712477636124523789894359936031643042167159356641125772654820744809226142931582593721570684969838003152437868170592502054784298817455185511078334010808881730407358044800191527681127873661278972705454920394459015904480559493550882889375897584014381917538228650391185338362732586306207638070129721687931619355445863904983597916084534065172997879813256878684218632228774498304597738780079453829146169788845940102975204058117117895890667420572384813761437558106273926730434215657086385348454669417923370797535137089811087364178530280426715652911363980881505282575176977610813992324066846130888110032421931740022938646536685236669208092846163975446342133509115802885913765157281075925752207029131647288079195124012861348189704644128446494366244815023953131772622256226527340681812201883509836594561636591292142486135521472432887829582033834158167342232070436505103095939142011645617816425724003747711930509123815156841219747770031768683262463513026944911095143722161694671901107492206735412455630682311991036290639026630770669564754149994482620213715796318198798178634213641098346952905079884296136668258518549560291843281812705269213538701580365905838908577426202547278604447744633025799777507580004997397754475335687638712709841910397551746511745730485148868806098002639505947946062268083773715259756387615028328542984353674229834660803186556603165273514296200446093602835959530289332145182262122706267943637306856553341222532948958277297545078206916800942191524353700907959504181945266451400517376813318717254429391359706815302384092815544346210477324447360880696857471695100891344361667313350528925308148237854887773773175415875966720960593645438458838986987648438873900302914303267932811010235571730624760007063087484896484586607253897580697204666308775047901989086365335162595935112533348841110219960922549968542631671637836265421720878721805261976142775389240251192789683631614521775610150596802038948829571584681778764434014039584125415641097130933796627513642836285407465211149263039251869516830886776001132430220435336199799237757937406445027903203163659652270209472289204058562634451901709169528198888876446425009157431068895623044879688683918736105323993692210230618739525562649341865783950419784027243489544835046445063349569612166170780667364483426768874076633966611569505523863730137062900717011623852032726221791347226779384961177727503223395402368135566939186814676520954476989384342939252110155336613527691722415120585590769705455792575362555957929926057978532185841894965085882416947860408724189531362653961123708232157470818247551495780756551047282655882999346879198182782120402454567470054729317344228822949466404396055824227753254038829454365626425767935944181895654781004446172151612042973365086191592319269696052669872447379433868368639233022641636038258179635452960839397786319210803981336900319305502174147528879022473773342755115955825791437549993229217825317807299742161518984999049648949518718303977273201512943515898895999860381879114615713124052011008928426686421570944494035268860440918749167243183798040458944782443607374477566478138720848056064716126717900108636368036587851838706008475186781895524828154785716279523398456051767894339158299970650429789382294737417387905739002251267404983968692413869795815671459828273698453465690388406596951372875460756453341292195646398427208157430846868164985645875475904587790052895398711271230982861612182324368585360249701963502609176510950939385997395401020065625920507602213490045998803208247807043957768345444502933853094907569230064927270101419615754622011802072688967620022557679013030559874963860177313660240740491250921003398365091449053902176309171287382077478781862207455732966196027127558875634311654890440043231099752460353682176062910312146839146678977504124436777366490412124484205505407994811921427372861095639484760140183915421150716218024764284608596852432312193447925854332897976952165680597826850961379709397395981410000542314731240417124504447233914605524682886438780978566298383566781791753497610191017165157293756815825971852829062450232456159498087737994812886723236183026952158393432772492319496713850148574794144742455627196892061653622110846801963111471159054316068946708655204823896837691420004072332644117824820350762201382769969650643139082117059318437202622702676710431557779940473089211363517554715957490157097092347060112709886217442780073700116679859681249534752028489440404557705891968749593295798009810133266459633043342351688006782351212876872619208909768584158832821368700483840533999958219807223350255962590099182233567342588078169826843040941151330119804817343610574926009629917788564404351510657600022727328006110544726070934695673073260040673745443944673450282835942195925550742516626439576976217000523294239121261216695051534166182704627621022011085893628353844126564173929969098990429018193906324627774987756978980792933179535349393844490213358761332283194626665336329944343077721785777707040752066123875295660812254324331070430963322038461183045869246596435481070014003984015431634611903356181935389209920714430019974210422853888853915728173314888752188894155134665826931319493959466008709914936805602884845946189842689756331502654859842257527584943503647150860060385785218640987174054043623699596218732458613579662197163733921424399476770272861331091335813204333098243589314432481572923615132243872588698847400696436755020422486347465433184966732305746869147594569449011907833886991359180120694429689247623805739221422717533880386447001791769935967688071541674264932335406329836077865747754793308725513739568094242492583359511941765163899335884454509491671791360425123975852089065844607698110598424674230790093522824524832233563856263051919898728972544377547411651097485724663788729516109034316573748600473559992682153663446218462320470165612025015007125968977584414303707047875399627359952106959434628420981914472069434274924563205921068457449741715135390264788833055321562182347764484692810903079435866829121500237876655480884197636534343690696116623596729754651303904770944933751349240193267057959218188033048782083332162849531849805017884212426858453258654417480040494030648390428692797588504794010392340785752255527402506908633313487260500872303451112066431337804140644417746548078658834589306175031931310547279933413944633909262450435470097428886657752529587676120476880959332056560530625233737209142147302157635221423872303797496609828953124500276332605162272149107576534137443236284799267764870038750428115130966195535681930555629535904597220360526499989300100011154904360018730752312441390479644746348101115220613211640058125030762371581534321748539866577418235086549629598512228633585197777682300185166552535590608058371315453723928765403760473291608798241679330911647659627785526862177349995960185539663738894955574685869852545400505859024332707077611176413437080195388154561500812586734326765367706064875927928240867959028392210181438365929772770974659459748291623200208560353306214938219156684578534815455657976629499861010467273554691033053066820614967267182145479160965714099262116317730882959035928501925958153982977143045086260147515026469733468836806267816587459036255151548481861047123993896841372357415204434427914371633487292438605459727250206087090218641938896108198133908816441815878912519272434042676068638307606240764213562622672070420002618943214786232337302484674650796147141718998774074066881149026620690175699202352722349513237130918737709737642197515846749077351725541510429857156588623563014358468200124594044600472616900300550163730491160824243466024916427798921790273619839740098293849345685638471741546608069934297003603302710860770290894547789052965287241768478954549529915098333377775098632337898794781181239436331637036955951146653108355291632828789117607833552562543014337854217407435233928838221665067660265524618575185946569437767471710191057163102232245161477146306288715589435700536700034080088283695389239775322505573204460318139022438747338359260193451810831064198543120484524752273829648420963190324618739408276635092557214550680572377160608943629791433025368000030872304586228242901264631229803837770236600835014367293287370557622147022121975949989842019697327070621249497593064510414878385642862804081096557267544354051108833061650827216572655813288242068623664430638513157058667468518211371099046584126965296511457178690799651156929553537941750644272015395876968833777616298075531570020761100489900462178265966257355807214970351773908312664386527477899899906629489837051024717850368677181606519326215644917885361166530383658262085330124683369030272578964615656387630829696067385673754125562763707242327488378561718132657886639437174821221882368889619485525569718018183718143277786555874299791164437648483122641425900289683472039835113430550696720375151382922853877891764855575861643590475680931566678383901289078341305907563913728998914907913067538461506665472477660827713693708915349932174762904801460978679253072612199335834309082748810096606879637325598711994834511127440193769249144944573441330080783849343670079149380663043750036424920384083903273456367214523344305946074001749718548328065051352889638978208315326548978305251721445646272943960562776993645350973548282049061611507569952809424711924144309284836281089110322940388082937058600166755410024378597404327981870519031930024948983615092643851807500772920123986553768998835750257575909882847498455677698321744020854437355816672094408124807584544572247896244917502875208604348462378527862840144574611335772732387797750694359189121236671797328128398287695544308347085813012828768774104483136171658271988330880930028737474013296004041320522135340810736016239262908374105392822759983974338725252090678442535092453470112764606109147725586069588492713841734303037041744189725108218918284241201290208301741751460911788133242810715506829487932311557310413093414175703021672760674767562351052951240727462628834354470084389273223876348313761913140506739265148850954728514646013214495734194728025802522744991272977088200767308788341437341924085519093336027628039955344671338285254717550694583728481739018252123158281368879130183367155102360021703370497863117584844069114622812682329816737804156007679555838006992425429838546296918751696699538944526592876608379885264582669388374539265444707331547890110014625253913894556364917744375259390260414376753299402949790740697876987547264916867406054542478256647099283841928739791566896271036397524555913979733664554070318188863835895592790138587197651198677524253582532922756752433453790325440735586964829158637648225508080139979153617027246656371290813282842033663494405761610948252335387218685133499529016197882404012538895502065301434830939719403909072445534070528802138397095399917220715915428789077421824655853592997371435143793951997747308463637969901819782508667739476664376417104629580532269743789190336768719446553960819441074044461597450132960382822594739089583051062804070123723004470466631887034745368837221083498875815437893725051932445886090042511782870551341483731429647046722017686333029369442416737476534390234278154916861684754987250042912128447144470276013769792096926058880380569378977458601495769419366053484510137569711742930918880406374514138904988684023070077338856736125207633461518095331749903457282854047606674911642658380593879185268333129025297665945222008835862530960934047372686016754993835889749720873567090865009595558322616566193914212672081585017381988078013045138313950867854050336365187415893323896001943617583482772237648215105083228983562517041171185155884573447410048493122082302893810388544149218847448867989448476595593844634089420907505148848545975210936035648898643448115478372580564485892706492507141982816275644305603559387866394730465542918577921567848985973830756322752313486894373280827570452784001091835791944753472348403992918317596039807875980037184055654199006410998081709353089451832867185981204903423966904562184286338552484064317497326722400410784168495030929219204705802987801679032622597505699996271730857332360026239410823541971242808865091036360558006948913509884376281930993979771933788639987918345379877737544755627553396445761940588444310787304163049813047259316655680808192303780452972370809690014901484973956720412042185808083248978422815203649575961113155783546105729767626782251456217232408475437813450065837340165889108659724401722735226347760353146793739820055008886907821694690450787131218670924853440593818456393309950411296782405881730291422312208800418053603521858218881969935503907041858435617239636910627356674102912406799371701409135684681597626140231573031567533509579525442447051178129778825730670897146874844212903923115240402637866199323423913303295623274791961672587896487933599541363823794551581819542878753958440651127840704685419501007922694033861606554014420802522070380241299148675210236323641291479555423647575151634438282400037268202241314152327695121617225083050562723995953430475058533178392594147324849005025811084385904622114659017685210733832540669163402075987303764189393619484183499803126059580704430746657600252321852166096572650920859502370217991780446586789141875136668251124034257925843511572756234916516162915156736322457888487148074406087786771035686283300352616812832664596732549072194703844280269433144981030240874343742421271620597088892164011015634440819342803029093414779278537717598735585520291463828368278928883706315467390200543648078447343694857278917289862590931689970000081692379185350259686472067190163559603141285136735041121699120389792878727006863103702561981779700744257785657062061631297635339160305563415783811280237120885784652245081722416782314352868117374507751858998530454765955134041565667801343269458713923511787230716940702276996357872858484332464619347110183958107332956162149780594364165801874371060307613023385756532573932062669714555309139809477424354135183363217184476676855644253848886290630821197644727834070486284067775791646389075108756250020286792120231692389115062245237651793374072187500221785875940108779091303929821873982158918683955813710157777805746522404408819472444826088574567866513134261694157098261422304854054739419586673068124327746530246267250053587808457355903330203788390226985647623886663824924518169369475759110786954398435586641073404460001154847446192173998650900362146628958458181113892211275082245372888477452346213242628850395422573926167854677587810297552104265720182294549978209705070127974207009824323656661318116524905247613390307146690283505602389392681996896298373686179620012260807577623568966356351177788643124748119838317723393581106754180602221825964354590583094175215758041901092015697626105929011362351082892070087779295616112409219542439311333780657426236492054259137742932064802891177087524601107593626180622986047254679886294430036416995470603256983524548717788088844306288138979655744347531729334797501582205558545409444149290239200702303336249414347635762389114252815762139034622590003626067207032107653206148487718836522088715953829446849249237265153056190176040042988998516911644436900026708166505189259572598928730598449554915530284285714217639909889071306212794623866896671855355860997907544186568204145509805204269901960015412495559049107821049011946963091144255962441926890780765009862548216839120593914138976967115702273500802496274434942441041661290297456748685254228083306957849571609007800576726699344901338659805780129167916737031614596306867897775044343430317935400351269884793972396630938918437524243535162376906948731132872442113820778811751086571918308869865902735849292810685166498938320029830344330541505643839258396511779650112769278534832702472963331422613931303147502898096542154307343294369626048927726601952658760368876138190559990823452293309306044197171169887426357605767430178864157885129572809544632015691690143746713023098987293585081508130022578456556456817521227062148420021074243986152423109822556419358527313145047544323975529960828014404427915309159599382856280185711138939335030679982731346728680416126740521932453551007081753090970752326888304207903993511685829521248430904139174085936095973905394494392553876590380785243820201549271738611815928560988698252493525155074368838267929365566073825177184775199505666483812036345293517099115249836345250293040695410754264824116798874432354165584683789324005188850049065810490701794537623161253941563680886374337568173130167977835303897503661363232160189021637336133385737939758246757035773441088321760775610100852838484494071801818434555755698343553998106149340386306465405745676119307491475581894066877579892111423567762530398219603220141316210067490607978390731591184494488653303953579914691661347903226167951458407740233418812024893717983598504967889230503972655947277655978083444321111083010128704274638345368849748532704556185616926684840937468719055010691306686659350523638994434291869086024951096193157917542665031784549380295516785127459958258410701351471808786737513153660642433116397501820613863183750857996393175770789840566395716362173792021949962695072081496476485069010538064546869539949809401718239870969564614904998987936338356485664676142001647296923313627794862468108607644481306388612804227369199202066309946613232178427034166793859330394681355558046323826968431160911441881817975991706324300186681324604138319959071177482213646816165195310365638401230904444271328748527999151878986937664009598853921324091320755467291819797304984455796976315047516489941523951255739596812008563490187076250771301126537866676636405285926393564965108914139546534532152159602647027727533600792483884390756437433689376787750957926448511367220189253606987711425522666501415209646727565488702500753255039118898464353605035276148454715065662127216716696657527587404305139922878773023832768880122504118682935721621117869122399635642070772168043964494014128986078225497767039151335543798855627953415698755986990503139187870655155148326865639153180128128612968732354903839285057560723972517733323078082174907450315018235137628970134569406911755589659844328586855734615550900868178649178088427088848365525290909069716571684356935883260056195576493330452064197451284546352708470482892575520798506999703727692488325411137826634942028415061986782025020017067416402042717257074975996919626057205981703537369585887608943444017627992382073107167487349026827598613661197732512756980664517075648691380510470525350424115088534882772742825227279817126223693079919258756669279042204905942887068295884126315002441478975107968451396811188160833493128868850231324404844718007642640208827632292448310871939875874421518858864844783306627695598242380059728348705671651409875207556607532266943405197726156850077008255462190751886000620113653644241541700372755299284519708766835551325540626263030346944579748502198296386166357377436416514559535453648693856370973933397723056284595427733478126510542638307110119260790082992060387967574466894902798628236756868069393913609285966603927642740595183022428888064602648227716634834617973724278606944090233003850196808807132343845180508611528792233493158140292048378997109926024037725126344890241685807298854307749137319716786932760248419166885059370598066430070645039398244566320118890537241556923568489329348034420329515887573560437926948613721825692773935327760020794410248607657580087599711376269585035749945036798428988317261218999933758957833128881984716589246086686987080429130229006304213477465169940265040872086127306650602657710763965148018537668773927944436567175330054071382310435339324298172447130194210195962935672602862575510069285061640227133147162521555543319780424461502257702630235426099456948469876508886481130511657603699303467973382018220294518631884987049334739877247871453491644025273415060636403491070122662925833022605835668873302424842081720528523541954571028821549529516616204754769286740877944072582282917613110549381294658451143797249955603002002540315564253435607726143667218181416061925386033036584796982063647537429037314019736909871939899697789252141529889708477073368331738706952562528351413063492391324567740953224268765899501648955420292286477698009181009557850210586524641736035290728198622540554841428426533868362832018104471847159579157436297898852117137482687418851649302764679281791277922951990260691644335288525033056190822491343299495971010853295499646289004308974968905253059940153478842619300539215772097438900473265621963651770413948801425449559190388027716932844873092143587125652551545397962228910501231381471627436258063200724238280028099939330641435966865739894057402273248776973786932029585407471009598210035152587427006153808087763888886214761371164815171659898382276122127301192957656220915207772093237898073303060608546708872234793205583245243136099417841623837755961882478045196906655642143869838113988307310108222701396696937333114183114296017189611927617223846451173434660668096119418918634079773834079225641921342961197145638305125450521692307769704013654664267700922532243451271962742376073045707245237628390867598772818843641290590472228536812041700227362805567932407691540016218342165612827839783270872015690688486306416021323612590265088502311569919346653292114014455330879677548917563573787276032590380819070455084392687311609952865384644390914332806800484763991560486362013594716671459115626949590860994252666855744207652602377287385322889556201149759001407836799770073011591967044787454948925681520675720375528954288916493786970590349163075568515343142632789677865179028563951255213988705317115241826619131467892401777956838128797259819134887006969423201128028960702860297804965947046239215290635884504394021783118558603719113617745605220899350933258891931830305985917524655321231805865937977710522997988348881814043265364005422302637735602286198819653627004470558130121161163023317224130049385790860400591730370334043202957290922924676757155106882338153770545495228390057259656723783328351550734857649723959555358821690275443369513801550851184926955189132772232706529995919211710483858391291101830490299498902920314509773966744941237577857081965308876077092397438197730905654666492783465335579789612224009952867008236463737540267268564719627217023480349577748860445854447789311163471978433470584363705642250075547457602462052960381732196075938084297680471334429751554162306098331041132256592307514324313282367453838294521090626461915101544192631141808502854720042996430907506678808992976481818119105479462688422321626805480707701553174867222310569847050013392900022928261713360252577747059139312304396545146737255130082507458490947863472962941315485014623232550886144931060953482917906555781296180008167355997937618373647363941120475466062771468170493275937895914023902475854219710371293760003578718384482949609261286753133103324811326342519060214102996035482196127013929562995480805580422741641062160708479795092992487204825736400510983752394048039114947987170437122000175076281379478431841526027835738319760079003932874823868616610040214972300933787725430438970006579746638334553902579920005191560877109378352906437612601916913513819002909770029895580265117160376171160705443212280714887765040033095801062946243088818864174462108274830151866392160967755391129855285875650541133247466408476102408799786643413901111431613621016895834266450094249412214799104482858563797854632535349698166070389251941308418162879931292502811637679810960666570014521809776948485636678059939746594063386564719105367798316657325499220355908126574256473397144582366995417392217169282917663579317824012400471309692501106818066810612701115483971065584711180662617705665233738789151325130551865738992305247220435649549886515228540411848972802786654928428821382821997460178328863570262269063367762562949784929038787221996554944397319757634868650216204524973356389557661221653944933398837788140844621123561809754114725781784161298232693143763693000730017765628848395959008216042808048195266673234888383044857633467310141700018862611720905373567258149603628061074676063425204018470656852122294002103719456109664961332235945086811256598006140469346289671585245345282940941832670521187310552918101276622910847336976797994149849345517235015465272145685491588531336944048751600309942955497286965780064390494938229699554572908753233834107704564969507048051872082067508019637117046346139974071548827651515734835761751410139817551401792553012249327921459823973680212856915379827023306037467621633682222375006143051227520753474963755873832964530026312003325830006474307689220695092007088309614842091301767328639260053915625909915229338297997722221148155137728278151487366013809925378247205492642862900913743721143915284188351461557698970111706537790578261191858737543072080457416912026582956109117568021432901808081037057674983759936557477312342678010289191083100070581142603263787936025427237420562843023511136385620047245948107385497799097217566916798986608122810019995526689113088214947507875122665635037010480328678268330805507421450876993800567261706338519402119542170048413780023609707953544552704552217964073152480550874243371293974282627121169077009505862309917063203522322300741488838169975334063220339418667925104765877602608096053272827278761163129451791242472380658906437033044044024947642586493005886616554033319021763110297388594212211427395842666968143954073437919172170109739440597089134747002022397623389295377779980927733206650636232109328421697953087593462168832574094285602307839562218374519217672980913550433271402105648174101420057815376890056497425615726883545783354852627855824696752457330660557258321793852718624479549660506497717594886256585202869615938373576357592202937547008457865278775047518940188475540031862159767718845637626599767634761469777714371283905236736633306945887109038900545537201687044438340665757687489299057509518155887171286917379272415494220570034120229602953823411075322132827768025428189503400630943652890017777162845422040691342854002219849156194869378733910935055968632282858837620445779655647197587539018701932014456150630200042395669578172047860960849605290054567202553704227994842100548188626133825728986150006308878333289671574379034644265517685143245480832084496146136240760038257813924370713486576284971240306780267891238061640531195344771827589104611409158097377016985955133589209238697415438764611763388324376971901585004277136110233482345577603809302512248435694943098511454017998102996401997431408109316869487319659476554677964572339979227779108582071189359155885918647304812648760868387325111511414227269567599710147454525049958025549924294741815456870085008166124417220574225168401926574960441334352388868557982253979310692352686779093550608268179010210696522926272147374514816780398201659462093664994599837356421310540795526890634561759031657838435957253070926835349848425321003274060798384914136388372395828238763499793854923340251461083994071992319865250200456891774193036460145406200889502598873839320178092348079444807264062762683746606468503059804502254262550583690764973648158242451319053587129362450059779282142823453449448921920238953642276952169574315880724679391357585325253481993014024839066068573511379296592765478427055910602792275769880110477524313618841289319956318624117596109920295636331629188305229534074712350242185519789165902820458243271771276648532208462053522488207431369060140073604509895378893324644091360896729554490516404908276315291674136503867398423620890908923841466251378410323765947189488309607820794819848124104572678385791715048198938070296404656177973457803323372271701845107642750945377116871994305788071267610837832025514036871389908845900643626920633551442009809477300470885681027609930012645457880973318519697841495685678383334486429248270169424080466506693147555758222827945520296874591492590355548563325274538193622254848706687459305086413002386404759164574307865915717429436814344960692414127611922758767040305732871243090332350651394215434598692834737769545817220407569183832075868027298682792353587745313517792105073708496850506813194266651601590806148175290271272203703021858992891505093337787293753675016886597872525007926837529967011516591413171604108578305648621186166281316624887661063762095305836171671756079586214536610366991701676750325571982801490992234960346618136762954220425688829470769246375497597642622065441519522636790463342716090526836178166561947369329212494487988075111729666533935085107223085979229184019419952879983453068657771172242384842787262569282922413258929368633494680076776330574795734443018081286808016630985782789212107766834922529200568154371465357700924108407009909408675701822997488034975860929511243416610765224015617737724093186230342468984546122528093837723121284106323833636926864524828195038913047747909270366544085258546591006611435672971041249628290270807748419635782938338865146672185483749907428378894118317189081848671552625558724622069479173310387626766819549186964952618560546192880723656436057320687228274172587012096448480074887066401037940493689979888316971628540601148669054988250271556187527974809565213560091793021044923859184302879289578376756464457365474048956341111888805218262778239389599861108378329896861395130038335720486804692504099985178238957017903138132936364408292013458393141449877579435574625502067338095039505966970746189212232258796610373862868597306847106863493807982992297346867019511144506093774950272146610562351828056365520675141773600200702979214334875734624769706032298551995180697004777581271342818624815796736569516199734766679884626746213149208456333037245535018473344892064788068984947711912913939913774300929200975377442674873271584335252335737955998208114860927717429153954778064178691325118083695324588923976660361675321152679520156806301823873435683303664370834931804908305889071927096642930191106707513344212502660645482081871802024903054199048341256473644518306447573442472324509542441254722863933970420982900034091040363995854408485534779299772608929938356288030910078840647321855363986462573611791679642476927907142752927251219106923222453394004630772794968128093626470027145175099549928333137107508494296612344695745521097028867235314294905611054374295739807284560973158580965977608416811960644084279090058718132620196498906084003931440828736807464993820318519630387201435379931427786270184241622997157515311973985420849154223043343630732250040693781238496815356919370097510585151781242460724356870229669763533318265401221590092508960402279442197482705172216036035767758464723920187185742853810994517260680631350496965605596888851788454319031510522844266879156714377735214117783195424042901619061650960199760521689094075523894326504115320054047717047155488390082151934868128388425563478997358806786083977446430405244630753375336839503210602843091658754079506317463694398160037073587239231092486549780569149312280000976844967286455932576403680112776490651828990276439121579115982490385905090478659426136360114857774867534614409153463964507296420768745583635723065451898979999241968273068130178721784369603971149166777610852193452015119329873432104442276075444628596133109173847096237869553332476322216432366990624626785456212503587224372901625223320612121637722671207933884076719169632031890073049035870925203925998555552723204124194585682140463708376961115616932052570675814264083158346456721247651771685639577535971670653535130038755672366112668924326898408524038435871827924278970730610881218321893744375884220451890432148102886004713388697663337371230852188083937000007123529898004373131637164408480003264086728017128561437532657771284468623450766571842719090287740709165492079788556162447382509093930262973168671670039092195424210447330891520607104394679387721336968155094564335503647074265315447616993661847389947420446001840767553813832263406258761268622005734019249889281068269224765947219306723812048913475398474065860323861135540418602630301862673055918560231980281255683667366336617731356619820886579733415273669492665468452850913732953742315380335087236907521453264492939038612518041346394752156711603612420617424991858876398261342812716176090904872408007247836296607703971462355463050057242399946630554368021140652175057614260686779022875310742436189590736067904634078381486522584085960180820743663347937297313443062536736835087714589770167358070118387349796148146367762041474908083627132708119377508055965446039965810847680177085716259498160661166764040910729154552620128840790384710717045520537520502176788568874778988317118868777090207270351703439989466696388190498500817575505920246361309069592314908758054647899836455934598571323379731394545326164258907456836243778652160048796903332379500200824483947719490172367099582210854369071906773715703838778022484652794050735194143624710876299304073506245337321060180317043725035544676695061275692258772710661101681183576757037022920826575189368558080484046025987854752057486435485165557897137459962240280478794350786286561056575654913015436335154237160905095190569498235511751839947328610353395520727444524659574990525554619365289400232847369579928991506327018051885987858178817070306898444658972391005039403048729184013886776875295830404063294225985227248103312429421117472887880940577808720487058214329091235845883054659855260765980693006815005211362993099684977805307088558750441262159903584044792305306349314474292663340649681687711626607401239075991890396780485191298019115780283601341821822389122450886349933302724186475775751507573845337210825176825728546761233348573897564346160889870843181433107026048917453424120261912724077426483564002775397210079898847763320201719640239953927285742512883007665536204333520488889578053265003173439060474494406124546343679261595927782912192868791004508594042483943190162361612561709921631216150499469245529777500258025192249923958409371133558786590053947533998107464983138954458876409339558959494662592972517666779536856540294588201530566809613056203983329614995048192191696416561996225870829847236596096323814356758228866738942763323580177988479336286064987264216098851720567814369606349991919590900242462362465644675258411960619129177564415525752172822212457896829513521050100925704415765089425231218421839940335127472797472212597819919866736602052897739492435562983320550003448438140900522383532767156375238868089266717358942078048502038742104900336986587917849585345815909130874508742489426363773696746257499052824067491337501325061179846970390959987570710197853194187259149689014479503973064813039251851069330749833956364916755581413280677984413435883189849201967553104857393354992869469942305401332347282937473843996471850485438875714236185624413429817077205202630426232647548933175458598319053694193998642285880155749615798824384583249753395780075688238208551164062107543909781377068182179154800733983060959051740988175102233066292180847111477417222781950350029607321674875685755651399445798820807245707361562428972323415568380498064813715311648393235203863058571106541577365912229839280402331794169218652986003155466825130119123831130866149757018129600622785245689358118008531015891704162227705038648351762961967922418107473395236770002013458401373535600225964135245546992849144859946427974003910053017866582098216291084093406287569050272709787104363620139146127614973405583170061195944746589029742937036069106343097250722368136161933995401150393464207515725800371509446214581143890260596610015522984040610314428854038278406821716640843246016594529204091356975595139380260032354851384201782369914277844530282824087410829265016865462769285173690859407151970652257472973059987214658902505381216258094694143584552175066754251982020697890951520867206684254538964785403850911536819482108031510149783758126940650659511400732879427202522245398152614052905106709322021518810910303048313332383073304449081163524047292441382454917514735469417181478011284457873979166987679484811176610797701875484377163625696519472875404319915158069684427411759887968289482031153747284681146234505861850174683278811091900430662371107463985850782678439739244777222564293078306486871041655144702765844444774292616866101100646896061789165300605541051718549925891363871761656932781619300223850938179437398491525869004545488231099821985154658602222354856007047085721197307215263038468770768323293597165271228892696251358997982054857813547433952058058197113794683177552143469501930281814523075124519784995673972743013225615285289226121701213174516968067398797218116353712957816018582883605629709446322490461925516952822441838219012390363370616372396645294569756253759140436183282450160801669938660325911175928899086076196558300003670001454176934704720347314485947391551951416742154788618580266212523021682346485179488609326656267678816835332676815294704598848125456439166699637503912347174513490783094800565250697685851216391257079492942812669055722491846881094849382215800938770269362113256202093403155210017787007137448020266467960068165206312187247710656976276156948523313748248779806204850699484992631621661546524855257726635860715971798625304836362061877859301473064676734128930161000350844630613043138260548969532069768383864230753525948547014368137750742002799923954003781661285562305547349599318967137430419266983827495973568854734315478897772976449437223994184715489951445836979130648578987374065063428696106818846177861401772044544868187649688646592351702119633228050532401564404354632663104235093781325026313802156961349015500808897336758882333885918004977207510514574327903321927145329855439148678843690748825029271262471756660469872885717969543812354300897328700683430416039684725616869481261502328322765195915891523525727180301007827807125887229947977650456522801457945459039863995279417138695295891141425588968528616446858085724950873098924168266603819084019184193835303331944950145506366574259772323876784491822900621158229484940789298698667339875649012123200575882906132060149610388669892103509059223048186400058228470785656977694913890228895876490543861400352833464992382576375336476952728913302076738753329456264958539871159242741797775790813456337725277158413083503181152021424812684038393738605868486756002504189688955260946480457096853381132586244724775141616422015345908573324977848551765728455314029945419092593492631479562239895079373713138231018108572105312609334329401195358233912879299896424017190257418018139397077846462312657199142826726599485498988764196049363995028343384598782608508391529760275417646231470203838172358976269187233794749207220539518083130264903439838906991431506867771794078255059489586601088450833068274703584296059753562557443019063004908664253819953365524468521443091082793579136551550001002249492875838927863052979058539502953044837121934070641166041915672031744376646976014719296582238143049451156563881000163334261515393903403987171563531355901883937045718147984701953221567470206734307739322990361747844696803239971005087985893445553529035902821460111437693870541351931458650567480357032928258097905376415042169754322012777198412226587372158659453833040582289341255036051662021588650454503591493947741974852480053659513600549066493370191912123405139925047562174355328833132249374235820590857146768408443103578357750874300236020702148009327214842635829722098096276056731522545850541830191814012990296873715507812333248998228573048513448882805368066005455015619689488571048110560449879756783454438686001447435763942818410615725196198346082653759221382979780101989261597527137021117447904136904056726643124459302702373615534506294154958264458885179382140046126872105608347826271211252030520064864979214527117552009353755940125772026897426913959663076469864814505381006099190543580663799031120474910966342660866566719533199561074499495233913210482293063821952232349367205881751736776072099604439091961430135378893837932609493391802898930125319149861514590795480764749696938862876858867396226077806348196326847280133883221889336008754189822396142868235326422736855903913315350861979161114430396028578227974609473967467172852949338051330603388692541382009908737679632211970264801492108966499082652089327345939157448385688766379823437517910455710252618743386990637388735728469938111066508245190132444813010290449101248729247125177979215898251563429261076177625390975101938828436782309501332097142310018606966657429366434764621803525426512213009576548282978502549002282941787440569543597201760248058905871468557243262178562614033274028991376569393174515848794828164137071554577647443847169108489298740308451593469667553980506730206373032830264841122300019279241620518754975462094826238287976639894162022125851901735069584610217696600916089403322514595929130723139306033193766504826016445283214487550208126457208278134980083645249754392637860146091214049211134017820184517167234076733981748011238679299810077433927247600739150379356436259576047058564725793859516615532829945509239755983266901146194214262393078100522974703232715179360993256326496865419607887450460319846199578824634477725540619973198869960055325258971260190546168984778472355063114749254079656963831651033575601078352007504726100852004861018830663569826500187024047816361404266076701176752067235441379327461788744022801384658906942197214901630782277088097906041050170544128956666912427282465804507096328308708838477372982049910595997599589467489945753094490963324734898250653110590472704873941797948123053110115478481241605521907712392085738789614376023140068139829404447703608168874253470953395810485933302670743052052069322405127412459921832068068717492151164816725671237241590224684338091463260319512021264234509078083326310190752770221120230487806040637954280013392566096537819143676795631590802478949388063810257387369998739606263275033340542110084187010932078838032470373480668582462006006086603090819777180753877304498659509875658473454581005887947901134844259905692269674538372821603457452557481935031478744801381811150111912994608169834961413956838819246107813207081068345245200609363117312029817449783312772649970599674181119991058040406336093218093072431172924612852597000164666389528103013892166931753502780582730376422285820294628972499259866015016079562114618291041676456734675544219760155176782622167736385500267795112138761774556567931446598797497827634721111234667410944743283733658454165736274763550711722422315432422771505926627563787247303119442145137055548988130954102485577890458544269587300413209419102022690867961723685703459246142164438598383006317929193071191869353955175257768354565710290202913627570025371185379678908138173469845395101632267814935878304587665843295370364281310477760612050493373302630552734510787576217691472066536123624002280318803483150446559089685911369469212164331255981484263267446627053932214743535860350975290633534888546410770734680839028525108551691900049131123019352352239940281981935802760148083675874116950909985656646542388239297230046769380082941302847114553005605594282078456782622801376889848594274192041898393502560454814336488738534280226440331280822985492350039509183548857704229098034138389156656189064310518236805001954494495838480478597318670340979868876727546878666266129275670200885439661451577735583942907440318425994268232439242954623565120090151159408607025290137668180366361267435931464079747779984434728753577819976717995946867173707726409557375105357793094146789035549875399312587432962881490230141615141568765880164850883155659678610134599753459009843977664798237321984275579215246885376049697678250749279024732729321495413191266998353830088668574543197558189204959693987819207153801399329525051717638759743222513660033322844389644600454921332634028849169123622352715174899289659409631962955612229352809511493196580882183738938255132340102497864209108982497738856683136590624837198407499094019523619388457143152958531673747679954516034238483041362146369121053454980675169552837651250513920736303201142672266255178962181784399569272909772993474714347861818873801512056795846427414825749181365200746839442216908628080717999339586076984111618313036514308567626524145758381848191189422704596565383284005142937245159882743081904725802906096008766913816406277558728103056224792119459139791041129556325121126466553354240255146098023968073685776225966696354587692552923247413807101464637578327996376916029797320384827932370211566942181777629573080057814523186282730787455423584763877575337678321346926136952739014474410424375797099990570678637179939039958027030865822385673767671116626085588500842543386263805616804206091434866323358926164482549747349730181398672726622000694451182023222334799541100582053313098762294016030694261889650855700004212719678167541928521337615690804744463059033276181946129563004302969587045920879445421860261193043758835118391515200547650605581625578267583549389603806373382385361531978542531166980483487860258410362076100185587911513723124051367070455330647001908754190912421375147056158955783794104888675560413876250753074018219736893043491941598145737420987036429359462368489788819311888495100141675198015332287283861530278687174602056253661087891913672483211641065316539139253858118127771162557345818843961309160951907945541137027641962915997883105667642226252012933665402863040310617640037948805447695212336095096911679257272847928693949847321344601662857544665982588033019557991594175753156605544980357492278537402096420258459179782942641218825869527329992830522394463104415260115119294203032217243116857634086759303996676564778431184512193222705938909446860588285794116825613901410093757873684352103841316419160413349035745556786586044440068683367322553936601128831250205919418307999042866183483386894119518695647621862305528356320085689792999446381487179952903245063185359518467726120573691357053901358409462897170713261409236557731185107867048132175047285755480509824202951023343628333204591722874603156157802892167799149771064702488826081737574549152109690725801222385058275318421352328717938735700153903719814940494630707356076224217736586392759199515904723520651438507938057507640510003378660098034701703965830149359085523530687005866823225215541180576781301663391131773051807481134204584345499891768731536990549297757889300002214301780955397633448344577412780296342069484558336788707136476596430608187877050414207591048464749362926237294530785721090060885985630537983492612934782366431250470607522896807631393395255261772799463899832856095278923334427228246837502807239725372078986142290997641950549571270685687735064704282233348230313063308142697685671254775068010111749728908873043055742230723786596370304149162337574620297424200148715001675174901094320650108804640520144395100094921440092279781476898289127619710847637627894399110758151199180139943186429931483668513554394475449479802886689686451029229402745947328307905897681583920067062849303897323669088046178811793928713990666787052784659201645253088080163460399731120480153942710843528388232576173980363455966556871121915412978067941825832348956236737660926177198151975885617427856695471564338393126771791788283880635120061852165207119126676433812827343706502143525852202391426451120684069735608950448040096299493438506764368102138052343625769874972760874547839201131827186697202532829941571896646762799034466553446056977254839530439466189136841120358510768943078223483245375659462144289400286211509037690778135135155927100913581553108270993517525128097171646262137450001876582878121136604650610519438348544934424552778841808344522108461046992968449244237804396474492725736842965758359456588937633057068068473037810833979605893681398843943834716545096135822473978729135257194752277854204187243486831280807068497851650697849910037875573199325447466350430090709415766021183910349568627372617416493412153383813478087562988534726768294175779833899433944459587211159464128417013831327113519976975802557254839240434339613418812059811928720416095968484863174778606159773082177277664929657146814519429471505863223747003819328965585040166441732851794973482063465353507853198557133321392571164314296071361687867325912505246649986496788082074030856270036921002996377042301171052502738302922844485786565966343401361883301563658062890803087123143683992976868773104370784312344801062245564382079827053657856690917240414160460989281289102956970863449875255803037574646686952153748929170067338456549041347525965408263052731731157975552100999300993788825251680753725324261088473102061972344547397423523091771683856162186871960984135885053501852832500343310743231998503241866221951434983913121332103293769370004423351045313957681649813364804321156944423889750314015754748426920404478779794733226449856555772117044783937756574999816888445251451040713818537376973271832257505527831669226531390831640169592286931361843024362067526505662189318952376007277623013420106306466429091551169057070276880251052802361830968154908476457272368943943753538829641835377644383433054764301528194032060550193574612878527449866180013483348068979820923776840957639528207174788848712649652095703302357772569387435373568116797392494545247928272259342886541719433219759123944312751516621390189405284164035234520102973340820486259818274557707570453703937462698124204519936139380028668628962873275991382799581038517225929437555314630823211247384091316052300816338477348473456954654578247010323189820367195663225988986654050157153883896070271205893671197214029806042643134897686857986160502046845573680411433996719760879199789508697772099448649682160832963591445290154154558228586041032369118187689861954016697775505023810510319021496026669992015677772701217248671503893494954758263510039825616637737057744285805112282959774001299807948224267450106637915759254664383285603352810939890227143261554955500226191262305151456089204395475416896904854216515584880826578585607321266638761412607352116809566021658333803721860616467689383732822801956977312997168917330392692567462519540478067063291655071112104753760604705486673082893990130664988186664175236979752465773222295688185751607317298472361738758131456907793083697818324916173074818588905153036312237034455824420419359622238832041954882377953978885497839517369461480935069527447410771620078572521829425091681188377585619393042888542479952946655605477934316539308772783348660150771968420370564001696974094614814478574505970149696384989266861786246278569666503432144931552322341864720950427730224362091017175080413259629569809635349132722882367863468985488053126890577198974340410257514723947740958297897908577454826593972100190538502272087668093219812505717545250041647121561929743956908857704386956416460033082077695716535091349829988149239618773615256270294985227343629310263876886715084237713364457929672818885592571513459562160214192150659973563388109807593808576547788406414718561552813083015982431494079589261280076180905107086113973703527752673771664321443085187752885611185570641154756298752925637555110163524921307197346387869236186429634432290052371778023640404461191011126674385417405982405339450884542052978636814027234382881820929660803214159889301924059504714718392291689341358906489332791300235738938598652456552829792459795626380097876826545970034107677836024397585414410513145412850733280232393354473218674726595690673340989757178086943524807446592722864537416652849669347568952471369127883757256807111010645942972507349541565544787100454627800259169053035877205784410378063771152268047084096623125754000701330508589434331023030455550895458591775132667045554785190005570341268682489345404866901122683708441896145944973535631638614599287687675754618636058729146327529843828435088071419786167772964247216195996327826088812575754789874706708661465055478180384986655974162379640415185046520019264346011180448272365760058975555613662820309025567893736290594338226938376038755790440857914887701475987874521528268988410972500175094744886568407717800556357335555831065977866612823717678811289050598866615174025274781587882107864760136304419542648587480722604675239006808476702576645777722766779063627911926900797300492121450978487220221693321409372513417513324276760490148823339107456425432121149508002611623808789557925328616915551913821301667443665718583575442942607096498205362489864931814919759918467849228244902613946912664344173881390219380255610420894585685716839221977433389376634507194942076493379397869213257874025164021108717448745995399283350079154310429321740645940445302176380579087217992435688084533839006343119786094650020461473420583652607610462443890662300555265859453370090989701810672977154988845392087124277865019234919410047479233915901928124029088502375060566935226894083814526182327312695834294680153003777204468610439249962544388597421650773132261049545839559813375375391186624833902366258895791627424871961681406934225082380477873926121161663840704673412137695560748837067012535962205404651725930666709151396469283920180000005114316438175441163505430963189459927146514933701675035461513406667131001179066729052476027704135825299453531430578721193923693497656147934625283000617048865884010477180038645910945622437964114420654521638798202628456001585658832075125790924555339392804055500861813177296164444189392717865886763537655545735566593900032347119007405608355869046815700833553665016431612659947534268418414732968733408829433961092398318793634212715003558164400186470599987636973849831955127602123283456143248775899105406895313540302430917993070488296661213620705036352077341635306265647979123151326205321756766021795996973156902636833584818095273523219790499090134752741143065355049743231795664834728339901990999071684436758914944648188040535340923241578641764090489197300097536960681806653753770347482472019921314547892662877252078352785176263059942785828293410399053300119664021930437428813173153946270471929025262886894330983754431699874049796627503689518398113893052846991296704342334252681762020084093134715430923352551604488320921089602298033740104195915227885168224696991428920412526464501033236462112758957779535390197290005168964866089815783826662903381190142173928394680078703257883303306259085046932093118115412392403657981734899665684100448734767422603474898551345420380450305501191904166060949965155830885018180484949810441732309795415405131021634226419517940556872667026162394842986132655677437725244554389435051255329479258036326675611859593407491236168532486992053126382327648453700648087839910367755396381976349373049910958550450491954955572856536315742532687805038173901805304696002445898568416148457142748860866941467664016500489026021626650478207413445002053369389969922325985184450769623768147559677246649672702006184172518104496327540263328813184088442531116714704847684950478095368500167614835078597626052772403131999708145422024556954873835859371644737934576508234358403107746435462297813644229770418402571326827275568901332530067377326366328298230985413573757417156362193884191060108809605959259229699745424804553591194498838326339235809058214663531393912069242764033287510722114405284636831191472552668599446204959472551901413164170575819061306436350165694182757199886682851871558852529427139226680271598263748149837305865234664443605637696835881613500431921512864202101951647434207652404333003276370764079668087357148351023893119920712532673737452257707022498377579389206176821554849441822027696581874448695774189502982403595030211128971163621953374428559844829119492007074535025488767326443872390115626218755095845030866024269175545915247201765581393081703215274111828484219364406060967602047360159733811930058680295806807671592257584207371008289324634379810946473206100290137610862538604738452680908092145474877129910437528886662673652784968537715907434599106820700453119009399730476233581277573893638428319042215001698765877734464503298799224158097387664289293031000024283806135841976136437476075433892913279307893862580696190163293762134771768822917856384661165785003620840386592324612391537198786142414057110080490447110745858341938717694452840291273627932640771961150398678899623210717457494081251651522918519398322152956609622446786887412741473110847026572837459352908033706869953189925396687343779111079610622321045232561304315089060379581203304705011783755629598987031844350187162569265424412656257162558683078769686165349895194331291685459727867065284029637627535732372607493507842686292817025627808889989925940610473952724266776431401993222376780099953231403575796825227049702035124393513134283776346543026112722465634416224642462867288964123210844250216250579099626114917222912067101101882782038542375457610145587225484556392759194961498647211124878533743735472413840372188263261778945923124654221369103654896484070770349971414323316984923200548511315144825799180599972463821470802080203194157144911414499080533989040251477282156457042211812527151671729260210659646661884554410144043534655868398192748084764244823294458562441619783012699308227872774572450716313655488335428195785154912799016107336024169202969064671239237439865096461688038055943575270402009555644903926979427251533326686681311652071423591128002762852371743781578747331743749064952661220639290849621007008011639205662718095426805047390816978896372761812138997893978859163262605515057541933150351330237142946607458804663412195862343174114390256414952464075608293423566196295273639363472963821984900858266148984316076759365242799329916783965739980550647551978986790502969329996718642978456380792395514260740700741897190150883308177491517765802547392292417507737483208576802420241100487774557216746728358830776667174603676386680162000703319051198183024894192474171701078767018867835114498027333278788067958730443269301718108232563197807993375851762103921031680808348356545379895403682152344202658352066869390554549044711531948836751075502292710549474505064741150762916269839279008344604557777516419649209017929289274049825025334018082043148448059174095874310752356468994961905268094840347718671386352118538057022076863725515364447474707494956615962216805317408178475505682482431953090577835683002476698786429594209374793365654757549553652760547588687673630343792364010192203347824733831455987231053303604158640716396747746083081790008167419898273930334065642942710863722134733812580748937815559464738059710595950950622291641211498185909587182280677868342815650374609944711552825113710940640513621161308963541448173829501322321501729473728314166120361350200380281530999574637866284960526345944460610794591793897240846215438702434863407106508732084933966319785860175418036551987426901676814464233643016286680696028036507417228512962951638916199425438311076358164236733001087851092714619725711686589834092414352290797042289086877240120399760459854640928977819058463594071555734318907609753737316022837020677392785977567249257112392706844835366041528584691452664408071364614017065958770050563732748725337687190024052732541784017167684252571248693947031409066441175546364760780884208821299248943499619826570112920431825718380789338844687507983694450971386964943351141535322960959076102394519384308508917353080735968634521446179024938859095661195847785625110431008384722829091633747211064346736415267545720501532320292089106215391701420536558517722932835691306496780582201694993143940176245215688626018687701896806706114386185741394125027849947458150981872788443154585442873343403968225849517805012944224388480053479203552017348988474328862017015984496629685192877730663770545222004816053588739786409711600741569044710472319361144791293193431607886028318201797512227623258284366076254216918040439064189140354536322489022071345368771227213463697923457037093710347155241529355704656215053647741085882528433449684561203600625347889483641950085979683034184938806012283050463791948245900031537059280562209799065459779809870974462482081066268128643350314499208806873552230819098256580522652080800006946057666530085325771162654887277950672597119130897896716249227169651298704282675750915974339184022898078957728855009720579251928379788031768099078446330374732445515690261280729141141836038308340976949083616849753774453128102008866015039734240674887468294622541888215494359603703467101259748804521203617855777617999627449100145776612873362343594017122053820842901786760052356048316695227324463572905863829634287315618600701893263824064384001983064993604385160279582065261375179488119539208385688080182472289797374899646574629966766261804065996027377407214980511241200688033705720449801844331429407571264167785137209078597847618726444339379247623191945899456810433821379847091725658965149033212683067731732273242301321368611043955899916933716936790114415291392625979141814160664120855212743854534415171158275915232801630717316858328270556444898101656317115812824872823638471448597285522795348670447757752461301282594041027341771857441430006728620200500560123012351884718602845912925483448956166403598468766587574206364059494358367000433597237610972186214080263631109163384865057810565310034880252638866286284385901718052475513212555567162867453104745978435194765485216850806913146502769899266376356341317766408556406747387021933502940284038292227372977836995627278624804949028326775604887406649050059354121986453293163260702504373969911260899130560796193647787422103459688590964513019606121997412404018041288647315601383381988651930901290474348587722837368719809993009148039400059419719428124321685766822599974320880535768920065315256760346829041598286803675209639093378855872323226325170138555279564546540344411592083355710079634703346623625338848110276099644775263578814325360949034523962457641154813706403604607902899974859051238090025169975731345017968574445303725974156765217422683569725428148705101117208757530479694375242535884991876340319725403604571565859596094372105951169577341699449753090474745597560283165370182921826758798332336074067289335336638592179887546822356491147847095109977412589415261769038875724640691963029009741461540906223736690517776198707197900001317430971859347756185393163994404861236637474368243178709445761508115963974296138626655497103656454421346147904328411418696977108113797167090468475191138067420458432066405649792962605276142760734023214617336139866997140445946921249668536904773727263468335226390216586768666775425169901341648247057182177595600137155671434868830733211315434104720224866758015099160649212887516125665112406319637003004911925223758533618247844508709074589284640313799049500264519512625509983230720338382440240000394591609461693688369870408739133696435814553339947643284033514691829026738896614927038234997685449141551675085275432322827195422070540060699699925992647088808063724254393643486927264758156796986238036693391283779414318065765936852314857565929801836382450022715114541554515242569902796108855175446876642420820359293110696058186892212494193502155234304766199782982733396757994890617422307288847399636334582668282793393939119515791971849053674787738244537849962260328716231117779128035485302035483890717124354987855403731103703325427690921032431127291408263834328088048079652784901966095245248708234027819796500891227457895144452468790459194823573299323014761125635410955054164596743393016832760663434370922693964310616354843234233939468543754199779493812007966258218570470884661514126981416906562101902989612504646486222622387234373649019376887445679791018249712526129566011672258058077391394771875588274224903750730749754802814301674111927633538716430794580774552358105450719541367026652389929561308134563442250487022464875798922998540260981508432917621889018233310380555945088966346409862815555474123999195113154403411156086247362533993527185253503124030265276643413306927299601383325257060149534083169489808475134977025068034124473885770475442002565737691786732739154969332955940883177991467936895493676972882253884201116285430303379765860091111386707854781427331409489844048120505631980888908411405706237483432982547269773155092955932893460363814310840772278440410033069777949214325785121179876731541727213276965122149027305761439903050241570281047715509893742297118401168691462183527344741216253319492318969327779096664937058413062402980047908371112157325743296298121745193809053581858091686113084710500312161939132812244772194171654507677452032501010130632725588440306617242492703433591190149141858424398553163129785664435441747717410095372133195992032452171068235703075094146782006111115249192171262697024670743544397973034703664660287860924654589403254786904249724060157443409716807932744749749056494473392830597839692898636485837435694219666759810995909887117186975212709358556375696459789000862522182371002403571781145980116268179136164956134019393567817628941823669663382543744867255302053361418675474663528527301447693824550627136009126535009095908239183823878810875881275649767399601165421341995211420585151780269543153571743073287331358820212013159286064867357394506526776721204232724634385108032615034766707922070316926233377325433934305808132546896413541703233666519525229445056546908065773391047806354475913679028417150746235880964655857741380212754906019002289090204265634562436343929765189106380929759577918312791893832225825029160007786507783420426401373579468607805599872584909484110609672556253822937914855563111807263298572989010091681902477040032874028283877264628701966995693042480580590961870348614806820122371879726710910925201297233280936234814875653820188479223694902414569846164086696370788498410470125241575106951782581328005995465928835551740188289201703290595331647803113590845140691560613971424167412980376996396198014384014554978069458677377659101379486443161888793778150469884113049818370566604466346236668696292350797442067763759748052688763574666599374293866301905036205399652831213629795709762151646194370265510976975463275100362548470246853601047361975596850832650941367401317562870597131429643977672823075741638570160466237441138480011287061937669357594517348102718049092846956965171482597372887318132853861205775616803369777759391764903626935677043294385220628229874766340533691055864314188060414205873304501935092649178610937333229406682328883277831778644812277756416675023459854611129833773991214908152542943439626549199291231936101694691047564785770616446202449458831625300878629063209610282777021658286875211404973909173790492171319581932531488414186573885171501625077250944236909361022292605719670823702319345546293573812245886849762499427726140060019342406237003574583351559160579930523108239021179271080535283717572509289493283294034326373225855463651095017756978557248133823469449669969299532304700093530851983315205282844645349694897998460419287704062525192384468696492766132159347689269579821667722663611364608193513528812016548715427012552233733222197253739777261108463617421681870137450013998536177473079205941585406217899212800744532540401300768874123347588173046106347857027154010501251457388857147828595141209189643502317235602211011101853708691680630919389425049802838410721147553578546503474831166187203670635433643032496180220785632232131563317440123830661250090610009832081507921510353805974787997095358782713642458939202219631266498175888581841193322210804116679066132218968460296469328890204873672650776847307555851412424282945293018942273082535391193876583455917509783431286091670443820797806114863152373513917479534405330800173200309959598138931457822162800672497856533849770973496008341610565677735720379749947880721604461818122090561285439706028867395883527597734664909637806911899101169162154044687566351156867845261432265263641394953645723883473978416603545982861807542259717356806171408524758221359744738433892865757636574250627980964436823868829975481154521492340882281071561598882443677412838374369425028799765277364083708181312643131760739622492906947533474118204696062788529527138632321007043112551791442681549157385944851781223351433408894256445284295231497905167888310431442368841282664659187363576097100393248566278178945271950825695171204356876366233266062693450536398407558129168716123749090938730192215423628809056907988235029026831016038033329781513928835630169497872611786767104757792310840876642377373061384435486734594411655538722197772768012231374091590261091813104816879534067578953357050691519063485467357426660728804380677134745513811999156324807685937192204149589302934947496170952530137008357580448415115311867613366836815988116646032402906155924014306059757871390073308824775722366559590651316749514992019157899694707748282984992383900354890514320537993535861907746180630945564534606682602832019469474520065751744594508065214736990423544933146623472563210126532548191146470334129269911107616914052045296160181843331634044288429006418789488670101199798688454538393562473261224059468739746208379028417740158835048099485172894547684220297557450400997305153135285891639331747255215943079742828868014268079085630291197464146111708566279686513146589499817740368299500092327236431320948694989536995094916056083603505921198090922030287194259640038472534799432678177585354799803078540084047752013121952919897517972098717461393066232206012949009076578427406825204061557820371603831215508159357709896501287249869032046072194117004457152038127553246437873373648568204504081906653952790604513126137413042811396578666407672020242217511752816871606778707208008088675861525773357097659110170067386347700209635483294154133857618657196154060026681880487276410969559452424416899258308356806114532136045622957802746386098466621607115016750140180281032787693380159140440381831502265608846835004481926405689485554801131082020963123823597639930834582031678391779612687035708053058853076132832090424973083359369019332276934160578221834826258902200869879438738068827663304875539677845736500846336573204867046878228169777205528713210860076128557598596715775376559806877796840089384238714301146115487996373881194442964801640835395801573388798429903645678407975869865027532861038584934964860737621170244130403984826744333882495601649596103564931211566166654034464256810907862980749455489497721032677645451939344596734451522890964180221601679030110315525535074587188188972642279072572440219435330223991124530928962856881892443185383944570202626217178550966407614110608012551349540325198876188984104970676319132796917797968858111867478537772489443411600205794025642318303522679680916012220067151361115482063623779140677887452343841292664077948019466761732212725010778802797452999456155747662899502727128585927326036299336276723471035394051774693351632046084158781042054353464420534267533964701660582064131464250434752898584373220801569566716439403253974429770258363357811112810158658769816407748079910101753947718916307938295314225902582169353058745147349782813896064275442706584654588428288460101048955600783760644578400158576045879858361524761833900652523082136049481936142617407498311545421282310290724781254099246515372636809781741803324930252102355500305222353457214057068266161978627466671834379692114635533024846651786448671880211845312267671596949939155192152089250208548052472130734907618849928215976565753657543812114660144197345344164363866822527833516436748404036607806610715119543838779079234878068127315253213107530082512426622284711084770485559168087538297169247880929710740496196339979488387168421493265483762305150947288123147934986509385442041244420064550172554001646161206123196808815501756416645970120292937293520235737795135123338146931541441315214537628642098171341420914238841462174287525909455978729601945363665450944593182461063645115155427438480219480360041090125314359776719930614820072618723909678695795917442543482225686124768370902604989650985187989846339830859337493296032467964805901857374781290534738181715367601123217867030243021082833676706258792251697974769723429820477482015268958266814210263153478366270065453041235871901799167246945598435471747610741582797690016394124616797506333338854567736571821130865456357293995182190615072186075793516984258640992261089075045738986712034678375469188922285093491424222390547435238372282706379646809994669178521867822266849639452290108210685116760093535314897613250916073698100322831427993771504589596211643007735671498808335528718779869633343554491537554379409117941774934282396007047761404694268356788844328156787423818679549513404572069204347817541096434573225930166677830535212383124207471009875794662902909018270864569842013533283248808968376007270605159259240527211180738117030702408507003876763226140548839307454968188647788468561644317196946095984031969833020457148120543989492686328998143791294185976991860049895428991806280391161564103135820414388162449063856229957921027556043394146595318590945061307422908151358433455694743825385386573204866478082330674906928308557261188422727072481526699441758637697738411164253940658503701385192284695839475122110351645058668222952652228760845625658152205413918902324322628499790677670722698724959753163374957046109296943990923478551778011135595514088262883979511251896256973326703323690415267229839273451132431967278448878576135908675327215528398616985922887874532387716239281797776649437962486195513201864404261573008951401781627923567481428651474234958001749234170355434516344098017161016017422839331015615488995828465704785508984167738670890815321983890759093014686758267243370851070332999010214579854658447993687261514628167474739754643764556474278975956814419131929442586663844798051983443499836688364334913155413021755355269106272185750833420699773650136997242764274588781849176156287653681771695939124704720642430197894930220566052100629852033757795861441706048106678559656498529711510663962479536098121401452253127353562796107286721173211041432538421885040914964993757805586496404103863981148170951827904686338420081114742988720970761442263145033497723302897674872873993749450504572281262128563470939039430917700178130429028859291472150901175065799620921524601504534110246874902706865868186710919422539581945260287076973464945201529024604476357588808002055070584777107402916749555754416645093802839249639230176482011576003623854022616139888653253318156401815791833541841837542075878134732832371989755661693880648822094587910550370769715002260892620031400786215384898309224047324545924131718697814380202959949979916149604976180301977104393949784782376017288312148387273343208393655102400386520552604149314453883250200174837948395096960885894574426055971254806268228644955168599717038122065021747806392176976317456996595224831722205377370059859080564777923043086025666819477318054139526576229671366695657992985753586545058607630107834583432540129030499586858556751183046797403842588786245096410482516687455553422494261918731432169956346997000645071204691723596919312072253631852399360824493020951404563373331172839249376884337079602558040377844013555001692458858112743494909431292071922775108519197510721290693887883576167957765424558379344006950616645898495998702602361109874145741914623445437672074638392698739408127927800830044811307099707498521819586749933029176241337301505064608730620574234065184918310774624830967430476181662422979170758622381803377676129096461170374853501411710175791590679006557181883076533069918040864757492974131223193847284541013338327251269303774051328531454498648907578921733734040611487121560391700973549186735095872809362043466361644867342510794734875849035117153163053304496935024567268731002329556555809723875553350566089668921299859662397212777805973152414404855705877842431911039696802222378061275060557963890983168543562284309836525173299337078361727007910862875195566265217522770919839162683957067569960011518480378171410436780764518115063900213543532490560649097651062467528674099929979083187999038302872335721796714320735882378233432174602387817348365669832396311955915217206997867361959001800255104894738791145930442664891840687425943146058397589414960133713013749920275897688302245695665432730787049048699953244829525959265167210515545620309357770512867682491392910053783276735266968989480317901891023358554971298475247921006424826853830520614028326596292296459666009522152278700087569838868618465604133718901673095810022070730928296918387675078002686507436619046312970995028526848917837252570501390260098132739632160715626281541153721472486549480448255228462033969301885121382410538599905391181069074337985147543172525585199288332358909483729932123035983624591985737909252351843057818597540334516644665826501619889953327599706244774113492433597711596745978686857878399817382727249967052417306489511677425602133922083185443466565214387782736710307200345273532776566069761379113177308107695992794056204193089416112700458542304106630166788396064215883980356215440921323502288071079046076843119028222535317720575976076392211757993464222319133618512249749229476771008955611644375415514712269250985799553060675474874422634597904051579314763865156443784656227943338383525108390029133306118761631917900662722317524320597387981779550582726579880515575680924615717765825701248530586769702903105666360879967423893223346711294238399403672507600655324883600711815588691579949301851439027859893086515191621575419251428776086284456965000896900023333598955944777897784748109841074802936807104548997633537515697432187742509878620039148227754271919130633274028676916320484826647860685987653165355077184647410391179369800251000892309826392536973100800055194122462622664019766465433860001491878126134604853299938369753328663991902566675140938017212306926932621489078166476972674154297401404555297062456061441930638816883367900760402337514828803067767202001477273169616401314316309686462237897137624735667530064966659569183687859527247285076275364124155682502782233882044149546872856659947807526746572362484163774033206607399733240138847119406364701855775020914151383046345959514987620275486524929416390868407610729128567675483842931575867330167272837371471513692821669545347277385410780742933873428425680940350161821869269512338530008769759771418593011546198719725126056808303434915624736895426437430614617502057084573652534047128975392050199436855656947610330406504342644949477568512150389065160747367054948308489503695424705845167406438409832825491752318206861935582214268797184958550067463222045587075499345527612019173309342461104283879651862212939107920908660241206312307086495142776351760119216353644788699522132725802133787495242381254051192754734660165126610492699887083239818594221675053911827271334393796654895802217158208166676064134166490374905614525246642324961833154255534907035048516346056677449060618314655619463495210026796102754224681205339007935308582884246800949854470226416273862743507819558850587711365850906238003821000475923326531087076929574227513841468104412299615728521950943998574010157234155400799965626785385927903308778798145707752219729082730416498703621807924757604962724527983466847073028814716339696233133910101090407273337630597629006648703726905757223258305127776722636565889869139386705838967360307733721611350807456952587088970764152262300288545712578321327504713658203136344054573693657310052681728270497461673713680934082672112925690157306165985299461692614361126837265817442602632020979245910569199093656667960568057713207492830954653271673670721283343985592252336662236949556572151773496110289535932892563184028575789615417076332226676826296371240424118839194884751883912668056360319732090231159417564246272088455537579904683516792048520095915102061658518898295082188710297411650498871996760475515724838061299842176412849499936957857535692486119168183110782622834474501739982272004947881496940244684382801992024309420675564493489194468153387782243433710610204315143086047366537997841697527443649549016743829043604778779476267931231322212133203469903419250869498301733025637607742661118554780881861104067689931554179691366445653840864231222944390354989010253003139903997795749077215276884536611344948681676272974606979124769863085826663437899270624973209100970990771732568717444560241236180340846776728409066816844989582337458932323527847635658467608269893638114219000738871851083458517040028327538269697011254440193282473457735641523197026792724336671685220987232554103528622290793673793466454366550052214959386331208637443841355885617305903625191013359101699352881071345276017024691536772381511463393738754966707689639076588735565050248979604302619598917333556231326373397127840824628824108912838463589538331578884643938861860660020913837814046622123449210547899527201104116471260341503317463926125215612453008034135539717989617776534128805060299921313827056762451231766998954289785940966322074012500680754402772759759564656192611221750611520786022183654664174107897043160309799075193715381639192904346911373076110912567798958968851381869903308187476004409890909902775241343438764151215381277023085567889259401242535137770538156646023410332480512224491604843242204064482612177339374045500094155525391947620961609468053722628970614049167993789194412096490110383301065850461588060916177895913523556965010360716126517058829434833131304250256902453320509968181167596702397839730386831270629597561677052682059943459525760964816925764740974494286808380132925864535225976880456702210656275274296823767031972055931573599867441095336054347625774745303754748608552332251788072562557945085530238475710697786673177513531634625209233002638724665532133789041686339200351109687349578713788569154720757316268531586649254804309582810135700039634350405781232989821247738880734797850907469084164759997659239986801771044666425042013908685777319561108787822335479944100587271814194532707537385755388074611535346868874898263334311598466556806262904483737038617455137848774112389966095678975790282074504487022893318185291172592271789110368194585869749209462142846424167544130529573051394161630926677916337967913877131049236613022511054022660446479996471875626991864824072441949562840277399096641940371554177749283925042019152642524155337775425220247109955257895483665668642828894011167485421662668818751202796695621676193742568917960484150728855103179664676510866387543557792879690360911347981989793163928314069075098668408094034687659214914163254905954801911678771338729082012446484917123831644263527012814217152745008051472991212383906092156305636551679124781336811570291517672165556790376583802222892988528049882309806683605651129967135262975582266581604364495136292805654758512109316775858464943157832220089459405105894410139910025642710093263362728471636673880305652036361890289473818933124951294067508666253591829467597550776604970385550574860311664824508514753172852417046040801546764208013631233331529442558217277576377007702615269264900527395159328988329946258920805217581084327840908715070127952161147245651321662405891766102911109912022912220599633579768813315911135022235834483692321063518347122431195933071295722872577071134281222866443426491672978198879198273760477698059568361874751579410979423905635916124289094655861810644763432014827689276424813572500660107257126502853960355094376592070062781915771684296640600095945166127389180193911401477382382418458260392871243530381066445028561218471895692594325962904976728262295160440080655316824640330964840444827461510770571108927096386292622494368522917798619022558455903931809432414904414421649800377490942667567094153220798309835236186955868551736649052374670728413615000232675948836459205311491622792301439744433004132916454777717754523634383571225795021223366509342632670643051907053074866948144419755177938111602604997049662113876866371454903463608865281823089704637956883513159852599745830289168779617941537791267150567833889704373418943729115259674706897352334814059675494976577626189319170031582664567670624102770697153821838862163693225336824721894116992594240690749484724266223230292818616019182031298127485036477461675006247821913642395399613009600242018567378863361249894038985368347510428095438747064466807836679224008308723415434110100672202767464825521959482735091656440574564232027669167037001120350015645938253417097223450873461510546689420823695619915475589359682628150025151328245402930111145280055739520659386456895472046379321199756025712521119232945755502262559471448859942872526680028916251566447990770538015367572129387251212194129153553804457733819311695540381358421068660448518176696436904533019949936840031602962531097261916611268716889808906519643394976795197980022078029560391780348235064380990547630419821820366437069208445225484719262437040471545980556291843846840308338973885257931916506524774730460099571675755811534459331930082052812052641946778161124432982245719151045992699144757648034026949674927582791238528300322320289193456108797158734304349705440143261329300666095058206591306219765441088272159506624623836964751964156621189787527642228687035159222196165457541717023827964468020022552752572292403929010427336952045133951564502044540258168635452650160877895806572678136269363744020188339994498690348734284322075527801617057318166891372146405667863443687304832029980081754821348141357782682232191827005922181066138497242683546114494428762840520088601187763709087024193205299507309438422445033579492060227977218784078778429502187299599239347218920304771453763096606516558562725465297357436595702751471674291579270407844624985376653716851277803074740128282793010139666907686730154523174844500872886598046020032678926491430573672803601954910275754849778184293184840494776509200120376536748705875890125865217058128682650221207911985435781377764960655856502093253007659326825560436076397037015441770573028886097948403601863999772082441823484367064836982295282320456475797458551454854617414842095068365856025709292041217015036634119183572257108110803292854679156495055377110828468357151452812682497558057590100633620389146724041963873313676591752204410864969353652974503753163031585791213545730660782867509641688253966691268774710246994971981956264854770910036365801573228338571001397229417773971130966453760464703353837038040327510842043087207602606763332274272920564747639080267344928371774079355134035492689526556531982737209853604401595382106774617265461880767314888726642563583164063047796697730816442456311492844416509669841052427667995934566926284667275408793371632597657765299871367620462447581371124224249691091377961441404116803123929490507627351767110849107952046379432311831273924084448813550862780461136668064031035177803058100459173535110618865877504032584701726333095572921333992783748803724775314493494401636456024676217829252121268199670440084536222962602568182733063070359921347606496879236064498814048073006064276061604065964446138429820966168942002420518736421508950316927187056140488570987190261766140678159640349933904637589876415374388122834405274301998119870620219644546821334377749543157857999361720164181211341442831718815330253303756324434465652355929993236353967042054097806734059202067757674226077880398392430690918317162550296389975512305607017688739392265492966427370785629775661816033017979850790411753858899886561684713647439530951478469891840408546599595227331958983387655756943920838564478440814829539658498030217887553339653850373755970495686115949258243137889229656056238991104801662930198341550209096298427955655979163046613097563169317261317063321959778264549176270674436396247224496213484947534799440906145699557143165131869183718831127147015884730773237272615647155692758377972806568331134956946873081632028720206153750672344198372763307302780984227541304618730849615590178500549081770828446141741857869951805434914064522173526584343593836867959399709932411301412916597129864835451891723764967164211660681925100604680039024282193413070258655765507030212601354775377659691596585466652886621754106036089893886851648394769842689991437397182468141171395594031496757340308133370131287850123010809475114812152362982724354786784203801451780531245647441054791640836585781164323599571211978343507660778656935152986835238008473563775161290290596196062521662394666259068746140165100523155763799344448714028581673432959200732779967117045348397081717850686352101199583061390287573034915666799988970079684371295370773513060753340945344893171223376367935483101576060317305494008459339575762861340522219720225997097993893668326737086375886641519114352287806454428903208398704556353729577154431521231384802741093470007330372869571572121636421425690170398342788370065720371464049904446741018244444686040166628986005300079748277622120423589167964785325403177330219750063885344836511945698506853862373839256980275481593791216696286235589163348184146412695371755466283899039087030769315730178359649639566729488584647935833775598491818422767089569507906660790003426245998072945763722371840243070968553790846781144377751114430761232484030269085416569210290260753468231632918129261972990394125196790725925431370493363143301934870264985156199743715076556948807260416302111689637049101077051575426451183625823542907288639847676704852148172311196632509722154579969027431506675063394192349135264677863428353921413428061050640987872332032896145604855702081117567552883703364708855180564865317116972738558076665419251547263706971887348435747362867822043348989054352432302786290159138186740138908565897210334839448986788671430961919019032472201972886276517150974886124687822854661558875214085946001180040334522586276777114519865817211008724640290933413020061012501401986091358053364556408717646746939325760819586592214659884423585741120967483351223323656696187966490491128223863042191031941950827247717015093992603162072440928041007835625131698600012991833424185749159908048679107330837834861279534637485064198407450471247396944640905159900009018418108892799156380276753380153258234827876530561470178190676622164158665712216114116010321954780689464411362088810407587118708445644213323246562494535180964498154845589482313617032355168773222704512580094211425922123425979857420127183624552647568479529496533499589585211898413730351719363895479831218991992829677241480148310528857902927043841337354669393303775305343948218514918448697606637844245335103523043703138499940842169699800889900249961305798745956490462141861006572068386704628420590073446395318034565475203407066424843971193758267519408170664617708580132990657450415923579238246071637534119559440067432279620086589579607838724603996450576685029611027853257823351539009934633822460611802899352045241409052022696785152123403719576430736110154672022232084293847802991805825159460229155042832823668104744484104718874173047361474761149616008007506031047576896736327486876256145592265799436577295973618505828448245984251380950185158911082727006953588294018209009235007895256929717327583276958625421672410087881296357050441580548365771759611273875490327913393908408145866328868935788663769597521054527020643207208400137858781187333051905305860084576018919539841718532288677655598349396681897244951002344405744599265033960506317407213309844617530641226520239054266171393608165265568846095962101577774632619666663190687566267118763643257039485886411326119015678937633278640232326599331302305782485255801814188722185658622511360090099143221333512367864480218027511122558437256529778615615387773127534773010487373241690121926275277387170675353893948508884623980071900453740455116576531046919944038602281972323201942291827644315498840793712708708066670914558996573055120327427262342769078937709439099803224884351922936160980202659745763613982956167241724370260018234948674461395900597138698201914728466210362474393350851110259178762523054076134556907530430649506067008428368503312011891995362531134090361889132591649713281160554914814255773404971432284181924598984316715979893941608545530039414241690046136722292511788270651405372737108635270846415059695107680210567122906079374171547424790326241799169720623254755404138129479933364823516460316594271008315712292937687111220571266660120134002331198194011118104970119528431127433719668278308853476839631314398770056660073511848567403038538522420411678653211796376905221423223803748547966765373855456932284099735586662003599037420274603150096155991016270486478069848257269413907717737345818086758272441658909182866252907968604012098314692946759334665560184500079877490461729578166938208393975174834990438808941644527326057929662905843401756019928779230298181693435333056421179888876948337243928683547064905243116220066744224335866045421331141956671290030753023754312844892626792597113989872843470378201302673536738806742413809721314563335274398450049635676184311912732139304844589131694375385850020512192981512342057753707132456157190450087181567912955742548604269002908924672480263433516130668956148499881953896859119222408161863289028455137630067933293378275757636721964211193246316057826856464362145344582606677548570680685668152029292066644570526905012339448307827265320973190220953711469998418230352490655858942409061422172241962485047206745669331489978632393430259303524431647097051016647183329329502871358419914413354991755614822821962207222477586451260977069502415528769257810717219068914581074728945590903156642265431989039526796342463694743407270117173022908045732941353934123003607736144103702814571720893564836241921674338420713218798755660677162910619385713776529268579122611818513070192780710340197633614000132762890344030103340062436800293237847744830973002072162519490218048920339933032178665071420386957257958286167500321488627310039295975670885909227842645235419813698994452177276020026427639104806328281643797889185120488713427988485350140274275537111258685284219402947632346124364705250296071989633114337322256587531156377425458164580318472116555713388180797844759407022753785217657181964526405438822280179521796134265692143648062223766305068450817048868166654497294792565291900158387559871434299165179460751804298202533557048026139556126409491837851751047029942836480046809214284102355512361911712124369059342831124932913383055152975434336893729230675705103330997992528078464065290492296366779956503353474783791398626737636750217552120026380884982712451229881459372923500292352849835816520986325160023231305088641796359080270593938484666713341618679590657419308991833850002333102557857910086615439670018440640835982259383649436210561949436566423040701164738077907909745893998026927547637937469553186597590907729950347065711462495492851400041737834886839874994731340211992521332286494514571256614393492784035542578805997139423155168148270658957803739690693159268694391689662645979144808714845380120835054513998511561358010174415426743463699748091858329115378431570992996778984945357308380832456271722317836498636348716764927392995585916298290359263382961858930532618151541694991282071352511712413879244478770219366787133296372355679778656551627268788439489565568412996036267338072389472993692774173598675791549370595606262974742551338985609397024836248774895466482232957620738267668585753952493595335021048329459974482357044698380461283843055783071150728227959583075522406734608579217620816436006440988096833328032180176334228468818450605835613835965020301088252171480462408610093421439603800268471830079864865263091940177439078705918029754043626107445305626587638660429526299581902354204033401207860156605889662842574464807527619711834076458712765657902241480817860940411118831037226576935697443822126462761722288878067189084504874079407981832933430412378788306559316604379753580748451370845405494066510188702147475479200404756026109255474926720988268990181677920597997377049640941936591144022836296148060562879063253362266228642405892967664650958502109653692826750483420136182433680995821061904643475600460130598401753000528811290666070588820562872285635726182264878239805847541025850338461382883671006559495384804043364175553694377350518799604820613302425404236319229968096216786698297275833084768942473946185540757315040671867728132911746024313362188802270066811816216974546531057637656248235240672539778605082159071623667097074539042299568957473204834068053155054008163392750791553616944900265251080906466507367589280696324909871707667429986415230026090266520849934031741685661286496293738191398433295453668593826286905103032703346513753611274636366893617221470559887543482157519203187225173573402783245901137279687664323426870342382210504055503772623758874588276762896550101492217676502656578468776166508790540547784586640601899365657731081201688592996213279532909431927970461817891209045100699859294964274952119664344335769852927136373680043474017877189965436713834791191858356732770520137449253736390764572763702622183235243373866387523112262500195493870259463524785706694374664816513150935201144561504200925821296320164706591645593672321904305118307662750034670559820206831010917782944515898481177797299760782150986951806693528726022544606587494423363084214501370247994235928464908832974616257677961194472322224283388365446123680950461936704869112873508667239974425875682962182523816738192349951266988823688597259701617821901209578156958683089574653432042371930738475217659715944597070603342041618957178763141473139275081498637353199788394773634609588987505821975842632187040146063903439973285258099337326039834147562411516834533091518469330885705421664104591206932390490539054414495811905756153474526614775262042101335836315751125516980659045906922118220433750383942422183528082556271655884799253480885837664286320398603505178017152388765991650809586332792484994699279122064968855488233592772720687565018302621009090174550705798379484803191055303756647818165183459668253415987895935622781870210190325620303221147366135345564027548345936699127392993999650514135377868237628965647784401359280527963244757667215468273453261433890584408445620375746755241010990838858993202875487964055493282224120975423255497406524999241543657871668136949791196472290188869837614943285599448645616636335902542855110612200849364598064957634344056380323593726612357982341177035680297289170777848272011099052998128375544434728626971866543805527529990830511983466037302407287191324928802801246833974236046653598207696605174594562528241911059514568274077768808829284815459464964060392043329962357637429543374964422352529129558175289030954232364462819159765053065474656050318210435913177559572145429913440492969186041708551869004274680956819486389462132786696749486130104199982584051685329304258740650115325753868478144828751461628244964623254709792513924533769167639006293361636611684770334668993744364448078596580361566323745792366519437609814671601564724860163156745683410756478642915323345574975703233563082897060049373623893342450818814315546870463797532727995970425691148315919799878506436382874196286633873094916133659048265684500113488771002694044810177802765199331004965508282243488923643401099518343670068983345151659977309707050563960215822524912255566246106336311295977206209945064859502586332804492746248115646689653809433888344931946552726879860494942237778572816389445141938098830072498469866204357010084703104124177728519629343529636875242357027967243464880948450081952312697664828056413241315758276089273906832300137255100982450287190664461522457634668629212903015495185597309237495686879426120410207145495919483846574959506240482463257350362326118584878399016011691236667853340274892808033035388441597407610430895918199895189016615586157255912059297862220303663292427029978731915189848718807160998229461532016923116332186127205958870270616242431200746830797301303258681832915803540507545204917574325758605743387548860183574619785309431869311535799918479006962521231530287354503805531223660100668093990615830326083806434877436530344563515349464914072765000690421603184630165999083102870030905180926593007313775977884493978350208844075474002547321791669110513789180860837206185797244310872075601392850187568100515514571777926974284767934086386855622054078592935697549762257809844332669857447443794175963141884383019187805542787969375170602504352209795617188094354193806242872343262697684383683813544106747669219373607605168173856850783652289418744197776531586537156342917596930003449545832138026448253378836377804696852082280223174087043694847749688704065337224223253708378548211584875642005918131487579278429696235786468903541554915683392669241770348690823565986030787677933970603420865423529022875046827655606167234971198715912952404340786596841069094882086151972941993674875550610740442000323714548777816820684969512196161680278691631484623441792854159025733135840769361116832874967061163040849771621356525797852959092186171761675639503812438666070721631181031599922669120192490769180228455004596242794447487723967632045328895875498394661465496123057295474897355601728808200022065958237710272097467786137266856552717009730185810886152835995371357214111101397087552300863357989940833678749435910580706771152753815250895905743851304350735177954273319684894332262547728004301386136306310709570189166748825948534212120752344564715738906209374749183740743357976690198727808848117408416991919015436580863112286215675342457698668485898456679122534319025050304912963181821722986234332567068849149087544991778303212132134296949717898301219146800173439759327205691427218059629175108633663544198981353603642189676844990574694664159519934445659919481365861184538947479653018412876484427719564578475465485657447372524767484737087676895944524530028805324973349478473624922896292165048472076108327309282403183399356009846088974205620598788582539481128588033480481517927235193793208485382570816859839297968855083979726537921266217838861708112318807636069156690507456181339130352878362865440165485387874079642114551822929870755537351151135729508366828308629825680404696747251630947331485569183147873795705636939784293615306194269011654440155097124248139343312557924601771572504728856107171179199549009031509458464049533108079566416753285941080752708351554808620434915016536240229142283289997732570424621710408393213009870775332029014508614607793395576042986034771542377535747021851040546649019317187503665850663933651976311971243559707699969693924963136772250735537126791560871047041506827904273066936836373432733422247182288637755707491120869044114882866371013811721947763465908294251299180255739338010609266040095355251959219260779139262509473726302436781054259141397016160990757414667735394238157060971654589102593709366838925403002414753750661505855729256327462034402656936227485575672838442777604996609816053673647784823538600427382630397312204701034222811773531505212543898228762122437189969969097629989442445801735911878343291350309514765312677456536804788885069693326603688655520820126465936134354895292721291480834254666786320560419609514654959253663579606689173221766479525675739432060286425327371837390164351104748637347507774375612100303295232744661195096844220996649207813662537493349237703463207543733981845817260784620519850888457303203337576887494004051532214544499065665319068139076343341167309679007381299384270867476470307040445267119018767594853995321271863861561718735233245836840285381997901298450523164164857215764878422294007132627000420385008091537821528472349817920529112731488490316351858901429858057093826289041671763522636105551552727720963853208892027728945124419253166136370286782970158813539954217143732169669240426526866339841896056883358008223245537825218740421075566864574047299425983273300168739640741849702140397793649828120182800961597503387129108798705302212160283700916721692875725779740497767508016680729719963728209909242465485217290678760639598184387563845564411800708512666727014734141729901228869540545796802551986189032473471775360352129289533628450613681941806118468530838257311356273741932630682496465723526327487902161758900554670991745288200143831883306811414064579936470701946045956077536452578723484877228010734275660282903727669562871655063970581124755467712206571170528757309880566434332448575002976564518913458960888275388887075442656930955357636871678644774704311261799567150585379192050668455594591833882695646024814275916131824627826818697308421626874063628489748571009518610314119436234329942945199650734987869023171319444149535657034828369168420076130506132966408548750404566527036693755935523960751057785856873435701231166936782920723630936065386312969083631296900609340609941526384923081006842412455856592430278132615239735993155599246325725157073450498540127764967737846456351358230314379281132676023993918331320549165900623720838830124762200205441482872965099257563017742552380371821034269067612758221465401208560645741334189065249617347400984384244315210621946263114474758854550205185618164854188720908861260292113111213775932460307066943600021684142262845728987819529832714652888875145350405780992390997817886110139175967622860009590334146557983145255366240271090205875851597607339432277140777895116616199394465867751547852635688783471799557046192154697356582641712308629892001478443982851804554957159812490182074944900247545345939113848963690640971353222322955400017181280998590437807898567123537125675657955751145927995813114554480554680883343246382324937095421846781338065459017523609056564457047844634857471800835639088387473735231484456865217059052894730744901522805656322345082099476457945363334003368575122200785175512442288043848316631036075974073985497054252745160357367666091359831674569610072407837100689982126889002927299647432275149769478704455780538341042184355429693345614574602202128927209274537020764981439317741686045114902877555177487303995004557959057612836968203510792162033835146259366502362794425615350718594278352178757278743667082137976964408497173714898782076940686189859534536825625611644688574088352825044031721979881286995666063333389185140776397092220919579190099038028728594347471987247653227477119771140484191305206501689230401185511298399716190121808348714173470667125154736817729071033759533067499290717533787735911523249414648837272219461741871409200656110808174612924642567401435536185103311275137792026199030232491975844014084271349706372717685588242504020693033400887430576198008076451198067733088716594842217863260965599639345873105143068167301272819200174247399684081195923440733225270781559329461626133636078382920279284231108240425730595438489804577954234568428586421059699995728341448906786150363060282333867976620630935375843435034504264715280055584722407909154272250421883485639376535164072214814709967673426694583741462434612141521365745201588010247302003097441308504516041575979832662472326186382868483222055581510130166543284725029125118938176631976600086020327068743929433714476315340074790900900399834222247902500455238713805313047729180077550651192125606076314313486202192875621282234203484159241292862435630289403133183118816828094709971161467784839389644251039691407683530502426724204199924732583753120423070728393468705361312280480931000878026896624359340414737021187819930298472405937937464742178931778649956852424476573992493802782318141289409907345769456965575882801983381625682677133993544925177529583413968997683849519705205994026123637555080316462312037903934496895647102303150628584942297050284799500826974827970364415823086248080282518866503064146043146608036679399351128262079123180311271957631091830879645832366192718100116543915549957529770805846465944323772890497169231590550868121532363776446694171326702246747188606017824054489811968026493173104741843405116635651097975791709798231309798402891746366591758150701326155362518074809204506413447266940901805611962292575190573673704823231737179649734699306032642572208097587324841695724850875481857215769115271422702298996125798928655609455999575015907318562926742077290356111937901683893997790554946442149984581658891307129384999669770377830041402723110879906926225259380237032220875413039462921313054348279173220415290346889096270856191230663380347478218990611906854971653342450640469153400498649009566636646361161994904109509607728226404678242284533536494155099856307040844280377785222155588070124626490653997640398860272836567625021094135498297746327233510117202429721443196897435033627730604544908800833448337633901430896711124545511222364514626920569647019096200247633392354388635555663708622961823550730046277898477346595485779947744272202790743967670641912180202359936356840476798877464012998320459235230395218224373343641237885701951882641133382220907920797916661208568750637898570853065488922787208870059653019398754357152638595901449491605349777947202656321091408333690421292587244540422970317172584806531369888315153410530233678745201538270305846929634861964799534641132335727052105360113952558936925144154441323814857818805457817268328815420415257479742587143786880600464662893231813513624817273350534420957725941128101995014444326714905399141665914903552515759638602348430990026251360136789733279008969078264716671625509809795473712707528052072466341216025171960815840892791800385163917139992396914640196695242530158043938662425948779623456615605350243753076864773971440250100948145840904174193478658814339500356263698770994954751232972038930012579411418160484950698724432084384122457685418618447701990334381412824810311634380548406086115996201866605825826769617920621102867450809582252227813034290745012169096638447634264258976198735961109002243876994913453546431123890636248488562086409481283006418053849732296989314685240142301187395929299456068071907079652599064925751801181149905468517667786146517345419253990024622342221697990254016918371648345699629165508139675583642513225770546087242928280987731783472710924413575505754675193518062260674074709093830996773214124984313197803497627250632764008551037664097230853946696006441052027212818024141828797058762929834421660194137757633320422421060623021539317674942101993119580006303282527798825930424113268002582798967601157312956912920071848981856017997954578809330606596809324984819469093670893599336881285422097007870676433336667526185956847590193966382040320887723090273049953825389336592107141785381660329032829298590380151051231401232428807262168188700353504348184910113102004312375739311664487268761928918330452191541543024912031253876395839145208434433185584952432617944760293314617010046557444213943657201642244402525603641956588709716275323649567395344605856301468618602172610579317798532903844162289497610494442053013147647180484489743316588356631299138940706100085524017049900634533946161849091621139970846841613235897957822123591708914378410636256613535622062114468535545846108816211993118349277299391979448909338766161955704868230905626452886135855046198714578715882334465943680792755925605538238535848177068147376954970167581116384549852862153352583513299960782086445939563273425941732499844586768428907422260870187739172636758192113789721416413632318806847063948418344821225689313410462761735597395646084789819290470060539388683470297722286926308558258586833493799558246796897896546049467664529419211411557342833960132911907742466544234519531651579112676913313799173050790799871967723817789584834859944829540502454127254826027813399289315078720373540279559418986014066543549305744106593468729504698373752902257089869438662625599718730255059822179942114675314408144584204914695557295303837200314729198850036195829871401958357019358948841681328221279434069175601585982009755289537967678332597555302366116214416115551288279385571627922393000325073722124950944856892122742944563038472045891117193506332524868085155054849115602978006810334876100507807715943331832643652118515448666033832643141091042788163165006225072431027722295332085023809372273445802492010444403463753053123563501699976951673342177644426747855321662189467634092620687378625006962987398561370626788470328063545828481340467089389244890789284687315671555566890713252907431887987533881326933331339183200967435080674517733458936096767107036138515118666880243758871265578220086557823416487182600218458048057370306626683131903715711790065153578378436293491766966250546516303254739136677405030108920292232683696079960327970652352783021721748337201665725928460317918383350445697420087201147855058272165509618735509888590909264987765805392239410157086603933339177285364413654394326307424873083032929109547159923720172186206832720470113643837367062552678307542074028976376357043017523999993695237289566404690271449865406924267796509504697547485810655226513183572621113002702637829269015975542449186388180268213835725396504450359299099085197847617566078810462452723504041833763111053460959927020550332220210251305382716767973717737013195903483309606590872260889110431755938914591107027978474081796567577080811713333955271732617154020034288375354841161674559245610003385240709525298065865745416023034662452918894831859645764406016514006981558951194296549342717544394034719267408841002511833678438104831794688139017543136623125936556607083982208422823880681082997732001702235390144370789546275883199327047820655588032616385518102546918838680338271775235288603563584903070610542395626395166067112491698186045143143559433661861309999842212466184008900566064156933030140685066972706099499193916865200922769006406251832346222306279813690960947504544628021673142388090927311625558037133913483385644357919039463356227039587486078461579139553168527509094676332832029958123007719300412582057355643258641973179767782161733127168380931970681502726130897384921767036233848272011985421618116348161632463778845010535628017549658300151927389527483354979688634974643048742593466976046662008569910665408577368763299291013288277759799185982150701601167352156740265686604105516952044177401306591011145818353562711856158560625189184958718707698509190006661104980520166558050766937570383615720854733211668280686501610747350640129223655795180561024381275856711987871238315858948715794638211544818539620423920834660219852752694097879050374117428860047288849930193217936444306451437011537809093217594265828073698069729258985231656293671262058359983217776604950510331458435424512535017106817858533234887368033889073432142245823528146386216467258695042451033729525144086127665175446636304084970013376970716592525802525448928887166206721176881139135449431577737475549915685727927104764168179004248875195686603886964274496526933631883082117892767279574282134005864918801337257564010465365439800958052094632216089133861982346616974422438755524980496269972067838666736251020780849112254006096249292368650616221333873152096320770547068011478926247219059958403671655497421971767661104543052717962135413243647890634004276548096540906907938115791237326659115704460487886639999163320741249578760561367204313903751230094235336868703223968445605914587829632812587669163085109507566484192100970450975637721935428848210340367256065196153752969854374410907095928345126780140602175537931524012138324286518827714506217195670132286351868847287645665699739094935660695517621815742938051028342421312246293318298550841405940202204578484019520275741950328348857293445596947650979433751302883353301917042120231774054039350151961893387320124083175447377510142289884449726105372838776089980262265502608861701532023187821859167264077664691309258536670239018156679368868912695082919291897564133155114702762250691929741703718420565230550853774561536332551413943768082743403374761928879811238030919428022363671955540639206166290072539827150586855990641538918881353309359738761921282553636358459086004378448691207438244396938520776353373770569572814649375192474478942533677895495114318641981991333191986943645268630642620409265297989745830945761364532844052737771533687876921300156187385719296575479086188220159809896122881402975524529200243065160882071046024360197993638872617704407815826076044353702381211965396330532655505063692677928891695203320079219945412087328761163335243152956398947915255711067783671475258082757193507642771638216435630442299027257856283852197661009517075845660164402099511938330817540823376440246242688693391142166633835896472471468650172302318929173431792245797646849584502108735223635533690274833177439711109762699810240185146118266218510512918121482358197661563390811004196207455482646490224010637593516890555968314392905879625567924594425139715577876703220105664863893191383569113719434670197171369259221785626691185259556054479046272374004799158583355865996554596924265620512987793215068728312529903101841970700423306837701163628603639058013628314585140027942877498850848285629216391290419407031286338988870493926551723632218947995913056798377173626185918033699188595326792678270744955550552674909045011968386910023704563372862295580003086511191804702612919127748682655069413173257190032446345725653771901442071275037356085905820667074108237032091965041550295530721553165734514503990050964592625418309551366912519826515559411992947224608952134324783117886832649120228384409098011200410721348975639812724005835539816642176730874814874031882111778339637405856354643542253963373067254713991701298152433445508681973959366869621278639623787708042019919667000307358462786448554076691825178405212133372598539841622856551708616699903012241779918759380878233108710331468067970398380905915280431194817225872419891885503128327356252216564993287946297208714747238429699223902224177174781939771835563313437655564933701779281447134275931217879055367397470267669088623969130761002525668571929573907379477770232280487147867268453666891149918108447798607426503746992517582627746030161511445815999685863687940889317018632501688695691695642217067459937788013276934292223485185475972786845264519262592668054091510192284656892440111692089165387636371963029973293230289941678225910049812243364926079094824464518473550062463618175921895596793220467950124935072260774865064078349082194196989914726728203555777260634316467149190613063003790225444791435257506571486965378317618596436319858284793150793272082058321845045558506333665444900658409193360324317680267866559919554292648265035982429202865432311956665488740249938920834018674112051086204004466180116006825107098101545421782144166399404973566467933847071243120114949664984942930090709635967308966170914222257396369678130286836857444124825648809497361098919596891946749839676427070621982329550235009498070572975767846403645788982763746218928744219370507876711755878339817608659100490341909866498103831112068107094471486957800573818015351811722451499575405062028346487770741506525634013345310249408472524899462111737963538677664629355480944929475140072336693540188799091202273935875612994066746882827042405499078201610176882820545675869585160402392865749782904640637244825020116564903188513631313332665096438825686558548331324617268820430487573447655744515872933147848039356451054226702288335303090565959449221383759410208551456456035038003206872534610686609920676012760097671405835619092166752711334861950001603482283819223718269332345262772935851526024488896792357873144461373952011046836363740437393634978300991882949599044258176633686962136836331440350937299530751531452752069375268036984075310348691375884561406976241177485243752938415113025762806276276135053961694514283606503951797641471662718562447745640272625616500443141781965776306000053447674959665881523419431489888454540934719309957631422532709791848858786992226400666094255965560724880266063320441048156380405787961109645131705354480327796813019571224195428464602174338100555362081991886549339027049812653196960136289460456759537113610034254168629096710668853901081816639611847039037160439593680304475973560682367616545041967197169289168875085508682198953744676784439960620819521530894535810579795628201516480524735032986498792517739310821341035604254153948816612747209073213778267474933889067828096160168594685865290932540577169472143735517166220578598254357094480477689232670599291666134116099663312934124365828360599632053643038091745785626821560033234862936640159312137761595385445244687909687221283885856615987775887373025492654392279265860928341691091126548793513116670158743446753844683407306730167862644532959353571419542950968727898983472029586309580508752686730857214765615592722733280330132395694946141748743970357739787596619777853662337425500969398517327278222398041078605723313358488721585640186248064798537489708777585065637089399814043323190845030261233185204652231167305549759708080008684441921080476013486131670290491488540956630356715308880144181795988411362888458519471709709934364192167512939129983470059805843673083831710358014507740235126986162892634294517704982038717876034937592060380660752370662952708444554324606182353149033282989244645305379778577741152564798882052054280460048547136287334523477263177865367848677857813614701339659468099547068353181170775748215520216256521530308984277448862583191742147816635110500935090343789098983035917426232773296469558998549924800248029393821450366141655723134357493506800115026761720318984391723312432532505173879815416518882045605288702563776872525624684254788737413162668404784449294023839039511614723435513168782123097547266175623201821030142949953735520166875527113783604183918490308542651843413072739582940045509713829807052056125792581477826996745439178814956837027691084999965646440104117083699684962570774293626938425188160222613147912464465851261381249804596914055253079335134024672940307459629966933902739117579996752693353822357004448328921007968348289719044325566366521580566536046042400979502627545628538068729253471622918577200602610063416726786165341353705460386313646858809613046576111430078343883371415130510603520931030492982823947832031003519961929249173351963006791956934520206863277710525381997363317410429253619635790032170370607001390917811220311117355136169552282227468671841427878734651432867221022835597188773939594024700540438221129088642597182359063313519044925413388824414581862422361269323232460885288676293861092954434200443546430087590847973308147965879348742164184302611872741590811569921644097450711570223782528021075113885956734427896362815901740934626497877107702130132418133388150037903875259249538083628599270027680218888536278703304344393345525287427059751073058342525864528049792814440956949608545500661599635448919754197672563170828491564373913514105996296516487955636120860627473920495177583865901420281719433413471102829180367676179822641827936436899599638354048347176338134638974849429851371790241124785835226639256449620981319385196194791557292470936032410192877263809577633908712763071927118367336982270257943750850613497636935119200167134555015937771783508950863002348823470456370427920564442531560291264174584898559868789493673570808068521794640706000656847136363028792727662214601653809521018288565584017926945222572349248428243042766850395424828411485037237535098304060441386300490570891982546351230651208533783343238203668762800953446175493221794061778640536454708150571820431098317784732121706934343951497232011626026275090154716711732091775541440381910826691357977454665497865152618548498307212468819801106342553303461794643869704210024378134613036123695825945476855601499658382027282957024046181382506477662404783836566206543075193426520239059822243934726407835082292044422433417330078079783772507569092715946346820748073487611058482520755835439413197828044023307787816467886104387947108385230234434857723870682595875440188394494924381419276200957172978545828458081062905781201968764515671109563408151149793037193855310581194087450803737222051005657442529111495393385598280400776781724992167674971045626383342278112476756353355053519625370163323449452634069452043757396401337071368249385996912137138910775187797415004984941240587781066391045423665062371216600933561298645875161160435597847294460748222140072923828945890431794806529729023440221995078071194819331702513343693011656206598870894602182040465778449672693102815965833491910499608419619761178102989336338789790064107328751317822402054748596297741487562821325291473827658273559709286425553033419518951336126727422937381498017885552962469923987403141789586565557969625498431873920647216743882628758151795976124755892324074952156389718809666630992244550944933029193006741653999157360467400918821064756234894103437322704236055193711210854447839705167533541963434929575840001284693967844446733526589525863492799520693133457648339270131907387661345126509477990415785544740270391185421992487038102260334786913845836867764522174092129756854368284666205179931564430636513329044176978586112661975779282478089313753169815812425506442671112267274091391921759693081758330519470810850799639608831074017808846385051448101104129205870231877651026672009840474336673510560545345306534675344953726538758321760206172118860738630137198998307556023245278589183790526381547724362132174073130880878112441209022914970205778734529524248701052343193857979651079790027983369595991860614787083601513002381888766509581177027969843921641629224396798790513759739953574625333367395063623413078695045964577991946449108362437319096790087349479001226078218716840505861080037757585346646264374467996663349418339336672164064490837144567491154891577882570139015998643065359395487967761343872217603754716916555416564302318851705337208034622664426312331301109343721905246356881658334248752095023229444839437637306337777056699779315667306285964228113465496029456697387619491199743565437666016317990583119832699528248439521581758695729389773858668734900581293834101237642079238198894553456849273966036756890863967589104431455386502558762014201091791528952083918161073823180262338622544054760913744106549473809223027971827096145090274905643016040698209247919448018085726637013593746196873685428168468366303614787632468977744190924199391497350876367180692502264820748763841751406306234853818552592577173922413362927813807156067635395841614456609518832016508427683637413747120356877076319231018416848901835180007291325450326014075110382057777660329895187906866795598356512616945836721175941968910685884160212022633736933456889289171189020240076903230133353601757786991173305853737148799133386818688799279579653671084093125752621911156317404008678413466542021900321486306472721674348583194592571792938168093075122124130755497303471089429087420828526323427543330645884028199677032037041166316308892757893939082093656779865797781361728897858529346990302168336813408538513431313115128419605754778000289303116037494203944132814720073078949421433660185081442232270741984565777758589264068422548324820825526136641487583860311477451358145508149171633059425110841895811274886971735883693452369597912135213619457707519114233735726175461380606668416824951069309232208995389074226026053135410356817409722206928248963141150528497406037364184771308220687505067309738970762497552591245181680749116197360017117776634705797805075294850766885392518424904187545523702550290316977485376450491426563837684032802795103198032150033332037259343659138442351228416129008541075042384367884352495788811686499195486903503684614006787852021453902296083084250343985058617297175607510867177587293253411480884215010546802519349444368227255470166461037657623094992981887154596961148667431359533460928721018952911703038056527301439164163659672632756919574135248637534211563565832050471712409355005848672716725725550808155852697366027728797675824569889480307101884921015899060766287202079870642971014910450846298733751425723694785412726347052148886538610128777443679019993239132296375258506696045882809890703600907032847536564272277708983191542672938199275129645324582668678826794227349747614879325272718230015907568102394160762087735185371564384866703020256391923407519903188726096958764285802585630996199169949028770908503450733468768613493373271822918989881981625150779699378738489729655184435839881064576971291006868108709845113165056007868165875601464344281697231802850998384056981809629159372049086028002349765970811872577162877395943592067515914772731913264341097496800931701061007434927741534733132553346579660422054176647546951389869882734251185797491258242492248731212376811384971173059093314580782073751554937235145806153927254555859462722942692076718206224347422430722231246020046089649403124921511562818940380669209415312353906339925652704924665925769746160398831933102681173509849456394194085202986603906686968496037812780226893976570474148831065028559658977288457994792436371557313955115660379873850855180882071236641424274004184789907181760407586663375991171429808601120510113734317322071986836408775009668597246560605977929899314505557075668533640209077989381338815425767333478250079768945226096357541008416878772957864451465042015707137501133389571368797726266968974903494351624130665651355017586484859375066963814919106740190723955709991039672581230589739627955419562760788612987842626682604402454710210305978267024185803347988035621923550132540837717329051703560125356709062956900327263731029305359352265562685096339640430996600696489409249132171292754861119161613420717322516538556535043832831394754408882886642491707707015607837113398855158743502846871669461850104576173005262450828239367040471896737986631205967263826408267150425154153468486668404412972709525380597687791283705542120369729651814737697363312831481996609168081937433272497779478398108512388146516301388084890412055390355755774573460311935100032372634571953213645421524118987896218868156102917727891583236103635764778723950924240409512598065184435871340820283753401846551067821698702964183528898383383101350539223966772673184770741103511393067141947979428645759411857846934950747706485242298101858291847727614533913075817610873849818096267472285064046998233663970017066228228731057598375564361386107880886904719785432995505926311756173259747873922719634372203102586468155555610354856728613192526758859661861227885508295835407344906564529695708919875339208602433630989584664294152088598532546919239067305183654412478791985203686817766349688002434829429937429000542942928539619006840499776818313354089557068212554154490175276797172067386628162022977017378908116268427464297631126308034128974700077000925779725876913171926675970931010049259013066881759098838830388721324604423549751807546191040551076685062710608355909706712270654383067759373959883294448455257541282244361010200148990326581122689267490480170904317061537953502948216525769573122176238715453656458908216083166129094855525868188562749854966845891069897385394214945953230985257318292709758880463943607670369510189932629887531302519316487893366467276029637692517116759718662389824034782545151028442473064332940497801487448505613976460116881137324661096690460435183133997940639978278236768102396215607706455042912513449485924625860810310300997855150141061009670478592730838817350389853124933076018932809919113536176953006646599865197831386887313040248279759662505145907575350534156746318916061637149849778967729803376513696629904649760255495938656084385249328696790405346600357934247630537877268227592584338251585843990519668629611208545010776096785611209363581411710741110428049187367379720835607081533804708844801541686471013429522257642462556401600784316606073275796278613727657546041205167736952016425571477241532082934337058506207107090855321342518618232507878995355218139871760612608412760487866341990252622015059130279899367684477425381911096417702865188917168760302746889985521647893006244533078315333848870230756235245386309529551439248054077830936754839688367802807127140820332820152455981855990689789351584442954937947096379085501710254356280434413512734185059730628773784571400727741323178583985290442275537495527655402566077814176785752511328044415506562461782376717931248372077513961821276386486212173127048051408634490494012190748346176130336338927053176355877546372933865167003446665499171117030907023774481158842299488445567443986314037266210713846238740738985297412102942551136006645829618443830055276483031356439369296345520626576481389308440937647470340507449483484551233285689595661109254937162688009878359178683074231396327486308690985285259077520817616918380200316939437686672501263388308358154312530535978387716254262182096963662717530349287704842255012008459346878940580196467586045101223925751142620565119329192964821224264439838667041897973620332075633640153875960548401964194489523382886432728554401389939651769733003373886560143698744670390223492144798783712659189157763525762921274813305961338722813829436082511849937923482457468444803230203553572805703498450891359758113226813826130670706212410369216001684265783940910762612975854436086159131793757627508500517886242904211235531940463995559227346387968775301489347318948016370996029029765089760587677487349659313776534323947319224518100076101714966278419752755680603081779805010182405484978722971649479325171643952164850968790405549630710073058887754568669379669306156857761640774548270862982334931882874243214849807646855292444560753294588120433615353473142496962900944552194581302283296148647031050826547147071255076109800854213271722694479332279331174849675397745077906102341346730056344303246201663861989722087784814884366011585334657861276214143658783256326383806321255990054521528710427383958226356521192588436290420049798203910303266382342662942342651936491623004889458036546627683942996112043618643696102769722076389654103479647656194115114293292494164138101005947548468331343052914488588720640837488731282692345426920274652428272634672917376788214429336342719986776592834668503185708977506128697959361520350928857112836078776586723920645293897004082618266925643412075083811345261766717289815152166599562973066330573893341285724494745921589419424960058558660884699346432982653292896379189426680414631854786974813206383610249971460171841365830720025321213449261804147500061680797581483865489540908968664662574103431097913834677741831748275968762352118933883411751815944473549329380857752668215744395130760846462253546632444668198446677978225941035799391510381113970600371885758694010610473272895111522247298007588347566467714889805094522726927768059971186391945587565303769341855109144709048966628816729136887052850196149574510759367467077157549057432305827663194713824632842419075654804418798066531129864938961791516004881067761427173301558458771097911872527943539129615888677147715181889687156524127306089231522522575507541342807056414785109063193130109021758408065777138647338203235090644929235813286487863662362600706241015524144604960671642896083009859113526329150649852409951702612891406596642979962384884660155578652065968917751409803327259138275676680323837409550832249460009147650980193645496831670968757654214950775430172319500735240662377015689267728333312978896405066949548415821628701467199694485145664335331322174540681435568617711363908362914381993161669394801407258339856563659408429669700345578159232874496720772298176795440542362012825835909475241852668671404628382942083570698150781684537505996653069409796496434760536996065597880193389218719059298599469554695925486758702182059548416386539627666198074237791208072637530950901001799478799436438154754019562864224155781277644962693884878330931545181130836763751257065605093265084784440715479251670550171249924200964989691331728786577923981536628981079553845066636554506250608198953831483650241046318143512492476545574834977885522761452756817108269654890345857112623344036903725512698140605450142353360519575408942339401227263245926312212311375386048053117395808242471526798573477018162123188186641353701874085929637423383992170905130645521005911411537913615494981553746583021985437484988819835092313459827212568922525989449887424194754646709886578474445625925298095333411294726581682704229909889360073647203538784899937303984032367313028510514248225287225374999063065267937526487515375722417835080655308717145655372787512256093816412548705957219475049556688398449211200928060875375739290441208642379156831998780367486155240267460495780665265406530337960880012534672566321885142949564434232075369131116739803915607648987364238156248876271859288150108742586353158079377351263854086653825914750590593907427504525831464285386679480770475113362333926384308693162268510798215964214747394467253358521930073469828703919943330926015118491296438977403553923143931762977744717436970835503140830044513927971230947118222752382373731775814097851886995073359712374820051149638408283423609593357296184147260914166079269642248527796939473524524758717914555399066885366453546486228918222715783949772532274472700051789074659056801695260546607226971033800057642452853514829464181603195709521316833000229409340719762846034459878403352424602959620457631608018797909093650684781658186257221969494117136896651134490296905351637119951040162593831586512830639143474452912428148508185538023458259239251044192986183210059145900413128731758193187407984156626273851271633077059741442653826517477641494057976036394821654694452105209225018718014450977222862680516212998792525136780833695540558148254427979160132348149752532958450221950821950106168186341894821231179813813484323460265006231984142201275381560777949034354089602116839089143856388425189220990228215422604933686300578841447220224461682074277719126788881603131997619666185251376193161270436448967384820218467131324693725581843227501707216308463574337418356481823622945117816050444487561011177675662757436165812105229647468398925537630172515025965820434400133454619323716702938923794330843322065800628689056706845299260193347355362639834282574523429068763113075710759874089637582017101834906282895865044377510286987915328248693971587564957868041773902223060164550074307757990182313667951749743366321140380252859727122066232147181416095113690484159167657905868266419606725629104365182534728854517576955311039942204617627462965495011678802163492956176524314604224148206238606050587225402778339733968311500543686625971537011177556508882595599726276132901420124934518513312524117499182311428296864128822751970129208460264071145508552726091125385548900968772067920592897085565321548455501132692533637611961242040086212838724511736667589988634780475157916158422976278064522415290994787392112793120663326236567626504862761997887909249431713002818080380170591637728820980768687687786145204440340068235170023798353497133488855854460974433513557225349236497977724810780249624624584141851509532510346043868308617874295310508939541028976277563913994733039290455402573518672903691511932887572471551684933240066238067032083968916360379777257223709388975196245783830525997958567756505239650643994044163003474108702952361190205259851588969346920140675206574313880007666825638220984854581965155561127858171688295786499281041796018371323294863463939753093878516089090304986311754917079859922165250354681621247359391783624255418705336162458408401259989158650853417690440831617931093729732646697907549921896516599290539246777403022796638146086419683310170873612678513690791324339773147027832597636676978714287056584779500161427362426747367184952986544164517173260258385510994767650433047316937694469751910885439380871525508725984652604076462843201534662656099348189964900700208179006394186727757722939306932959528382623667124697818125658885608299603732867332859307451140298714879064809993648862242238447680576736365911698078993705642332320731589336583695342082634238003626355035992121503642422791347605950423238563408829133313518946669083090545832706895843055224295435003912826485146479755031156036475625622217361487658337941964599679000107898491864803155293166606014877712132696786371383389377678220568557034448413239748723212004755811026337987594478721398348706497839936249002142216422790165839915048164047832416711091849278609326722762868602994544729784204821540297376714702680863565597944083325677619842505883106774875069986001116216346676422716189716044950281395829824827622271552556079081698340345211476525829478195949659395003140413352764343630086420360183913004818592876238270461261722349780730533349681717206829907961119289456741886127059102550639733143199781683174958369518727754792847159365461338182552544386448104541261877991126103995421289690468705582314453939552953814562371441659619654939056993620525806048512027606442815588484386993670847611703213135919469160940077461100822983328883232958032726728001347705699931786511517374317238211173209581565523655725912583918594455586830226554071389925961001157900376373329732980301411851898895378052030788087924584124932072682173404701732799645639625329573094948251111134850039793365998909080276802430812963928899071929747374228370380771635488271142429094050366186158022316549066304387844125016239304406563937955378556406972735695826317458209926640268513513592809060562752518625255481416735769668961652080532199397055107150886222343865581398728784301675977559767840046418844074875596627413413540489198253173897653838230578310027121382455672698969665029622953062189355091380444520277866558734427455641764527791510071546981575899901261456745677597634539454574535805875598100541747050506663040367427021880824700001691204702461603279557191499017149940972106573551955804710575497896574187186116463247684832004161558081609719716419406657011275920654218222373984617269420981539615851831178662249971626583368099512500817124665204397627767968231045000200254024103823599958055961321392170805548533190085767731992496553822719650795850890188031978010551957411469605160233016252499436823444209525449815247082965524127061859195013373140955376882588473330743612842545760221688732041324387881797714898324084908732094366431654226217238407249211561294758348584042436990501671231910986042440270674615326627677114440826140922655671943370785671244665226049113229186490368720535960152719104793410992201573325420160582287931157778200897210491700742247635368952787466825669896464128336059417800325473177899965451637956497993966932589758895827149731017242099378598273506299020744680792577537507020707112215805992646224978829489837075172296585848290895752773572682230312098577659661042282313088645003505787322295273050026038984204694959126101737939836907652424928593970054059160547008266105201468888424464717661200936781134439879376664997129888624209446208763310144187240054921780810027090361484274706256583645356765206390035010762235721629295254604642960846290982250203316598891095874754775612157780705530789408041532948505632054669051971990144915507229968075988645255959354759731770858932767398500147179571099534544182378922042266207871763836970498312220740924753083532230325811512299245048295981099941544833717127944862652707674086831212054116671867176710483638915326296299239004087578264337550554194038366249185947644807768433190344767893658186962064206213921036845634587318466701004335436045038075475474614573607367318725913309294152382166875065245057725493262861316451863507340028124381933157242902657216116871475131996485004150587237053303848959942385717910596464063937220649937006748817038725153368281823484966871944820122533881466755745587072479969648195865133609453869398950567597504862332181102020021010178957114430408243020887270873811535910926899197757974386934918207900645677148305695950883214260826106543138527975706422872447079234727889193547299060972319068390962095992179611493650423416189635079969956133844410220331524400717309985961574051130816235042296027696666194840217793592146281902002872989415359419035412271070010216145048653092322430019864352200607758891194888571326396260387569443453553471100305587805075186650465523143085352308426608698785347772946802550094068479082753070927081458119893458087824796337083989236286662818376557937751709527886191390924085615950128642255743418570401310022605482436053935785450010576537537598700284499493351405961603036116842134187296377574465760905905218686314348625662348614460099884271234592772191911050747312351550524058985922277261676295299758697058927395043184807601921126731309349568536451730789522814507751230839599601968620934691339745178358882488423827017613085991066047145426637145073879337490513189339289689546315861936999977865346756948841091283308802794082619016201426244044083899241631040036450958040894138502101344251350012461224031364990672301051437232669900123470193121153141411077940016341852744993240061679346761719535947029411663229379231069980869991586015056383497869010062746840327275841950573650573649156930456447306271747203545832016508993968328801846779399658642243180217698550033541395213157706569854415144009409183756098225805082135459479019273586845653115716028765451183488120044745459907420818017804681385220551547613318636036288736912156866065443606951607527710355607831695276669955489994206799442251336612780965115204114132829150945338723362993559711291749642578219529051392392420884133049493907912281558967298704614177450519737947128089014747442136925544069447829694624329016623179788124502980034638953001362269220816405872052804697733668684680442967478936881523299731887915550483297343840470398415551307040207211779028765374712521704937941741694077936440642823367128617510387887390059831540975043136938700087041144042775029778735851225059052819647972447543551961155195747309944264607845658444609157474963192240428014150724552202088292082713906856873144932391191280720157576765696584987755846296244669740180989444355130604408466815413630283078365879034775647340700375846507282959522968659350738366508211652558244694589559454277641093904085788059129732737336329705350260515103370116061410969821109546634950899816240091951135476646209029962427538889804301954014801189936577797191212861889943482639829796134971008318491836526645956603231080700631042021470603480653389574082568315204202240809272950605528911297648222675312894849990515976983033432513215661185027258803666763963354896331265198856509764225464897846976344695250315454148320601402424404630789587618309362432913277138682574369682677857232640298275434407764212427899673279465325651266141154722470390444198584612423315298554212265373049884724708923685050890416589468288990491858502478700129378319298668558890857662107513683994682571405209723157670893523287187391793319476001405990739828687212984341701281987217714968121823915314826885366242797574626289316845348532997882789082161808890751020555006074615792419684714713575286741603853648284749210515760282663555026801008875783489566344434312706508097481720418182541484480624021844322816399089915060972317396360884747339440737366648982423874815219233133751223021677787303623064545153949320270726022781352489764159573399556256977252429443939425939914672559681968711456832391317624285806862418298922794435422985839254312444517772235030214413174686874788026708292791114187123013064859507603467898448799257482711257286836665280809251858192049445102891282998452562024517610613224837882473510478859218721292615582241025304100825547118156709859805469586808993793565624483042035152589923237242418967253878823498550317294945022324211106933090456981300501222090506942770770794231805500996967221376204255684866442092141805247141821167401514394133433911680154394886207887974650411197232584078672176682178105470723748939935231705165724096172199485668645712007446166003130116577587948113818013599450632951198453623257548536408425366924536426814204649476121832899904045698660453926681469962215356660233630744794214857992658249605834367791448888011853015739470248172376356730249595208957491255673314175380425475470519309294575763766648740022323971482276127158588030022311768368368214275371420590047275122027128508285320494617861452846240935384984428910183844673518413699851686031064733444356945897085362747623810950491793439781958505861491465261871057356161169399646382005040722211124795834604802364198580808886008494425506222140190916716537958650637917157672823581733658520592575354002095937460931170206505090436913087301360253790734640240285902923910163316097270587786599677768701980749153476519018265903923677943277423861070796002222741496244895089910305540346088207412611550000715792626278245968719678777879457030506843472262855906332885953148648135114745487305986474543994844109805949343334618947011448269393479065321580692712694965262712643109126472588914407384194639044667842997284390032314970844703577486800201607153906078755194795979569304907938235795950954625139731702659624208235791927780145397699702321209869742382981115970447615621313288693249645960714561819072953714995485026335795340604553885177886246759851910609461610809843648651583985202481071906016320762542982591060845594005606217708546211475944376132610334071952899958837950169589429312301075170074840421745430812904968580696254746623759447044253070005249046924056674038724174130457974806443295852636413250243707535044935121720655944905694107903598567227609283817690555148329532875625859955426723794749121921428497628893877340126166457608716665442604020731875237099281697883971974150669133399652947786380630466954994210425137780249742893976287267656682287275243087834220842784708735893646499868875080890372516889426646490810101155824964294476112309397222136528726827030318573007643486678286402101567429597526917910212088446587431189657511856017267604375329110992283915236836204304569186112543109407841104980533853714286321570541586391974378800100754258407848466773973774959046986805624630287676058252509812223769595635309186357827186569932488325659746365607670502983538851907472773748064359920634799836800623623423318874991953053266431506556311140362690284977402643127044514536515129806491607439655022799601164879199136551522707151651515939390053208306972789392694282272093206911361894398378970843169342811346324539533584683164292035564189900686981330002685868127058177609168579797160954412198192378554907130254310694200950442112268579449405073987606414220520069991471882354368471610620900293308283085428203638514920699540944445484307945252360254137547480201207007834470233070804580200923454040502712257219498550853385682850143864803434133856937187998337293341684100105951771765040947221126112819914843221134973238851319233475081618810586748858040221397656102856593064620258387057349437424211722695341712559025492669431324448262374505825566366819159583831397883642944928777934262063196103189598256068912251210209622703620473758288599773894261592335200887296348380655564151949808575260052227420938452530683952793037700435593654067812203017161021709573358322616083334139197244581005947626960505401163992571911580974698164764619826887945180352376446619077777084980467529038718073535050846673958005896703142412991141624015988116398322812051749391728494116724817845838565035175528807925038958496880910735005265209525053753492777804062555911503697930416880350532860341699283031698062106458720853043458185439015021447368110487267915252873850591327222205519680209053956360111735392612524582510508082461724122597432386200159963217118872830736512288990727971432436517175050779568771093346478675959388978669910367128139795797619533814040429848237943116604967474534382868115505170015928473350628234828865059789422405423263989280218355870294543734704320111851947751039391152759346585549262411334963101574301908058722263053358554334833040041627915991628360569936954239461829644324625870871554110610234702445050458093916433284044854582525786793836262525133123787906672367205479474467338642632012999933720445951162308025867548683567809367761292648886568410491628151099281180256012019966106989223169088609529077202845432784555254752978332325977613068471770901220132475913532345491336474282100168973412492677315322104878231656555655892617887586985628098119441187257377724047829729737859472829746369347613878257393669855327171874905369108468991761377965755154861103252991004986401749977511401549863312992749871491088530925471588139628278465259507709340353490365446823387915126235410144235789179585434022198385144960611232809279683469007755710513716971367569349763455050203234416652912738670429578949107618256020707759371445512511285503382129271659529157854789818047060098257350945329339163588045723245122842144919456943228119810840836626333397861885582548180600770998063952270959899934828227893292365369768483440892065930554068789309769704264928973184067962578539878731813489724814505022317268472317322439940392708589079950266061279065116417667500966644466479589749784294459154171739857967066281845873695518978156876828645568354462604846549194985864248127293811909533115060266858715922737754129071540455006136936674436166969768110499052821348623943940193726107976441666660092011414145445515249137305604937954778533859872388934519900605622620183806538892674079299618520788254187951648077634969875181616907228709378837607987222184837070556119594783037238491011040384810600829115117169415539483755602591057549618582921216335855132267719112826140434341157374983701863422312984495014138399368127133754225523846843324035679769514831787603467443354852121426826258683831169332665573813315851167811795854128840315201252534112140027853533158913097377025317802217343100658029713425234128654323750147373854644339446286587244362773122470169385832993925447880221874174461996847163774718131116522454242726205834715020979363245000711971873700341125871148993019732960114598933802592770560554320834186713024529869042569031139562985981080219454769729728001059622711686653698351353939306088815208973188680707837399426249731942939546383851972082196043279469790131576872353145626513345403534430839077501251133350050218825388257416352825701834657495879428952784899373547313642098535860269237775307839042962525857547012766632639884987502709048480636563253015528292712909715661882109670301537460376508775602507467315716257889613009317717068333280310543789323740824365856384844656741664382591436303711028656916772463422596953311457753162299374246840106702130693649275152621224277638442412227735620478179020658927069472917882239191451325675254419765311062953795981856550036308927562222351612843877352504104107522610349974571506528825562997037800428663157813053905774222522015814022181193410350103645219897827719586718679460731171306150666727620450905094857221540835492991335259599639774943810470130094246598923452587853336599481093203159027579214358737530274611563727548485474647913320822448320719180284631750638759522379689367523975307641561854675771389901141176614463475697572605363486382779224798902060931452133025022296497924269361084960348750752556741292335683075662341930288908962491600648057398791139457068248546051551564707291250724640837290037888567058233275480673826836068547589485815214050803393079726625619243650390003981951840172187781918032835177536229415875145404676556479297512156876868768079119513024064641385395233726278955473205845685093697062796031106703722079901510559599269965443885613140141704088051409052767052566406961278290558446462562153488098879118201882578982221003005758410502843344092333170025669861629819031856224629690487242047989780262295989378126892533467848286738503357408355433824500087125577784723415560384070239269417725852618432567466915857916331536171942854439512288495616350393138839546780434354097747053498345658323891104948002038101932434669067566859335730488919302975309771415387827669520124629878612157751534551284129043662393672015909009811145757235923637188046370471290746599921317580079178000005950618022442903615279127786350343670301116532769098271187668180552422763861213896086072789869005596335158903911546280725806794939602799165447351910439930199199833371292364160027162031935704507687645398949775209699328025850559378456518761861269825191260015283001711194315094229433390000091859417890457668260101152480213183713547355559106263128606434405316441180970035221430223067307720061167823346336360102981649640110795589891010026325649245527806479189597363743864227514309525712833680024789179114982788382334825595862018960403723435160245616389366742828580394645715674272452269055748080854990446221248164035968551296928094198949329706191267175933548844306457998995035366844950098521837756484230640369103969558513297415674242341009726256336199403393173794799310832462901548091780487227669112681630440473939404096412837978025122710893742176000274006201034391153603529654713826384565831922906410807657588517057153914622111575480047259451923918732020784483809225652102969573007139822751290989495971585206739499599917552328435244601436241242045320036842042870208832533042203467738291854328921989705235257497340677548392119107181098349685765127820152574260691023474481253862185666577342021621524568856288031228163751442364432713361269959353770402452847055263674846660297625889002998813062749898499362842805144844566319451522635453492381802967064168753592226322988762198108314479062375041220051701168680769798850191232983044977841984412880568424639134007050478683831136633644924514970957671878648405176310223794957862011691919133014730691581902013980859966239388335643506531636653018369379122049817758628327232597131130063438097163751967803030319842646737178484944845989626715389636496731477957187185135071491597453287815675206673961111771706932191848544223056530297053269516093667110782433243763502618114718109838246535908931330482733840477828821251733736717794376848960572047902550458435080900238109766716571384313827321909919338931496653897088440043093462570406494738322141784925565435601953662108140501534966714722712952687839496546350682855189547204252856327353171858431392564522589515803087173395399421227555729239123743486257534169499364512134355937602887885240478261562586063689561450441331356946189006472857333793676954471757961740461550475979511328149419569485225030187324437096907795905627286922556866178923385462801009502623865933371144530929142321224485536337804101000597327947589371640277574680467452560476197227969860758821569209099716918720253812920977859240616608283724973730366253454418857237750155069329927202764741584173079262726794599907424699752452898756303498840776277547831252960823716349444170611195926105916727360915030121820969616437592742000549930760991796807196733322837412840864833772691984464606722068134112076913041274270340235141953799953758598876021253419626789079856042972308779521845287354359552082174258326937548658858119165822962699590285200027051202398218597793620605773230818850225979559643971786187901485965111214060198586248480109596165165737636143786125230347976174644420566726029093571016471539534824456935553961146018040702428669787631912784648700598625141335286793838058774040383118678568914732772203748648077167618776276440073632318943151963982024062322428081610947101457842737046018973054249204284096923551665518352865861357371108347916552582875373108652641926057420634676692179075992944477733415888074444566470791212540104186330264056410745099904366628257701197450596749255764952454284538762462291535093829207392679649548005833092136595283514538866893769643533778499498414895817665553672522501380569807027847189703963502569831303354171321607187191521610802656473272049265294888452902881788199829707910869177760303079562626498921653419794757371857603922688251058883691906155745461395917916122419722640797536843619528469909433749025958708145770465027997181377200739978548251021692566591813600373474339538511579683684992407196314644373585505434451433888677331104898626693101993442610393709924957707575351979741178061073916670335626749241316791590985418038573883996725030663382952987576889332080487559107538705305534908620193518152638247359458018795357142932703368890740416181920275599405679853913105615601330621697108261871319543520221442287899138396072783639934719677009511458424774107462347008951579842301465932013502574760121247850445156431745797164135797403431400168541586873108557872777513183469388465424074952111890112552040090817992300557133215274942592215800740641960244335075909804518452351259944325985387658677183888989085063790368218626915672286185268443740646222652998075064834372762262025743085055780016944005703005046738436874970703797882779799194670806329112198284278313660001387732280012598961424029128372211898848471296014394037943441724094976070636901177124667985966742405937277660245569492758569237133617087699036998794234649323355659927060608950168698855173758162164213914861735007311290118733260979899470753335302232693724827585707148007079945602753348878583672395617518101509195758012913561047516316174881216555507689967991442455526775243176985111189800068217619267189084400630385056733866756864374029747090540133082925454273916932615882857872891194092330405543352954801426660691178511821508969598394068472206160406555339904356671735675947371724167102034019347380187335206596663779124191445374515588862254625383661408056591453916063310896977173161631867647924497207972310256288500324031507050832238111067934332152571834957816937472923379939008594416046004761981946797765062502660857353430348542425822011731254752963614681940133413110603913549044490203375650263013814863506659960228980889326126222745301199038840283251998921013581781833656593960105064221278859390385840648650065210461773271342570554303495055646563910609990984245009738519255370849015398098701799861576409667638320921464034073760997064384993620010466495822860193346799305943370759242467310414733944890104477664930888907001849017873752278267460328320619434221197349696853704350645642189785233404985540001004426044346261404811494912320521707331519725480239232941198676582953744399776618220418225161264127792130747056493440878873763927662645260582117046581574603621263911046314731102565724063474582378608794833300204049312598198017728914659795839037416412529111314153673967730512796637468187891955470075880893118378027439261542241781348845146932220357134621724832203626431006466754350272920593719547997914343810208404599327366966773578011591594948973412134505436616443272175203088255463619941352286206378727755750015566685267508134252669038949608113263834364231777611719091506250425802497757771302807946931954353932768656828937961749617166343700214855221307106925993851647011668966692198218241972231336518539826195748918949442103065659318208975384758580510105507063903198604211870247912583465897802739477291878382081512513544066257487197441275159092226863728694427363118657968988227500520119540929995734920659673922847560599796620545932060746627241772085061821257486149055619590222893324798425196884233260660141168346491421247520260774687939048380365635642247462418190425421303920629730840284262179868097874704050890653838289513635661843229452122394378533893166957098597752428260278824207033095155228087106951563434363523932865470555788979549179264973961238247677467990739813622329531361770361707644513117384761076821111433072106351691622489713367841564161182779003546787526300684573899838947403516832248793053087148651586285584414180527609572236359096768656833485509227401791394517604289812677964224817126940028125366945271747999570752668280166009574477682169491893959556978036034092206813064980201621871059195443150438821628755941397097871965171313148652037400343147127488450944003555456301851194236369029759297058729870805570033308319707099121103167263688344803132982279202710723435240538329377790407481006426764330235496622526308038651214467788266909714790032010192745583281874758969087563073627464702428616700076677205062457858607587279227321767522240316129521314494722092829799672120786563187729357841278637182727282359569807883603357136168882491266622399365151055551517529830984133848813293075192440910558918135219035703340980391709946842231677371771886305935670327712844338027475443680460563450588272707673480144804579370441028884417362643176387814500841121849709943590280308035210554371568239500493258583272800065600825654741121238621967013195515230446445264789425429584234900449570467561809460619760917182775183598557150094337714598295978612367222411350783646321167784172574271847059440587593872492510471545581296968441748305481889422125553052677620190560991796602249976922295957770269941327840340140882700084764902318054509206367039354494285985041309324518623328684961271243682987867061251389728564461597527146045722843070668536714287418626399497111929475864580427777367959500117234340962209597004319741932276643261785749295544978356259956675520855634474858954095454418147881695369008295709554099087121760531070870409495127188880892277044476540597456515948022979936872338859571487873301613481456542429625318764014782147537661742564151819960740092371995756713809766330866740509736503705438726810491758274742663095543298665295986806083593467069456255662929084120189007603955051414624656666231033459573132263044533032566978594759809369520507991657298409122094982178939987656501448799546905023917375704365423783076125901075092409095289363534100008410178271472152209969837763056615541367567622628112331072161436754581832569419947803687622569171514634693075421785804227222784815827148377950401697965863560648524776636675516219284123476225588650333607532889088969630009789668952723597614472489547228585570726426677392357915161243000891151264841988357167973430568690502835574930531482000511669441422408710817985901082324891226911899233797516056201567846108711607551720771241377753845489528805469916932255212129880123161477689868733462977702325671101644200523468987758813260145785123060285683091076209097863448426596201759901592410945834849596669154713429681223075879725840473495111164504211176271460488134347726485113018991612027865846232199903624837140110073657800399633325791026263211968021255320628241273383432692851985886384800101089235535602852568902511559824651482718313572993163139759232940418979782817775684319497633746206295542583389677025483671297957043860496568203906887326381409419228047650998663479702127423878889713213829389347229930989872767477808741864781308560632109954106940698627865647483996097122564233253178973812882528439432731552425851621857139537360286872749239856307342010791384141349550414581025292729399554717345515456326146368962774356354603303451151431655274750660374712648169395112484598803715103470077301954221604706324250061273701427043342343666459724287214428950828912318260509003211802875041045953811330235022475086584668656143830362321263013595459827661728971233403001726070482124417686752097959852684157759816309971973480603867264059519740620059891328973577562445811220296233079489720709477143568608950071778004278383647923827381167088771541232182873095912128632602820149739764867666473979956245936435704277523941222524066151643384483778675001793515842975555455621991171985313853529639624547906343387348956153478327879298629408070691117151227569583066490963436526577413420094948839971936153290854331796953887058572754103816726981854012847925081129541725696970603612434298191159665037272543013969579854652217035168243398184418005630621554162017136179267339402891990707895896706446956026687011624523283557944421311137739270773553655660599099278673891851238495510116679056354491032386159922884679604662843199755695191516807681471443701294812899247385625811528595967758081966704761154680468325361395526689830509861089176063418838012405225465998244705390348866159460117135832620406430240595722817541741657061434036845408442926475204372373280056351218126538346014532475917480064651264538249779749139454014098344504219442102013680155569280786589073388545506729457897323291641749424550935159276750882355377634765354317160210102027873485313739281695384174751205152078069634883587241801957906403524783779430979229190534878020314552816212773334126286872737296465776319739736786476163452059237591023455114804399103387105000712611781590761204197293963481046931933931764322458472769405606598558995281551060991495543171619304394556217268160805696422459121319275384197185573825700461637210490538587752458723536710742758261980974904348532608090061717240492354860865707901886982428210925987225617351858544561181336961008758128630297051571437517697793061217082073350571314714556181260292546179389619361105173536603769184671663954968742838986321761942564196071405127365567353727357955588362447714518070831366330663002000698190929921854489621662730360585254716722144426276105055662040320041905465880092041135158317375697520139253963921171022413302111005063902467032847322255725966059135709150572284050700077938252788460175947756692034634855624629697712396573374720563853844406990099819399944221358135283973675281202650211098398392630808674870771463282429812082157538506381508678655702245822705159143302956241328693032166659412487404754341157622701205275730242011033103218211822361649256943675186073749893617237466517518645325261102104071212109031017249745227527613319954401587960823227641887989329145128803819548342524028871154175990226514549299761171555009774086316128112404949569797423567522867281740648926869011303164202735433341713144291171354265837824446699819219543042509650594836166635527957696192014613536480129150109638467614896930035394509376900523012113370411085496731999486058839625501853157211611782294431072221434021842589622098347077336727259391856255387153282258839778023393204126324115891711218017813785174980114662010899450100669263696968745764540348660743175400868599109198679109480288747099865148002515984371708220357939085172114323505430776515061617509986661438958689624971977386769560176809479835246579069345560034215818848692942070683713338980827713662310407750504783372350205519444495182121042998296057726259355352545735022926232695530598683107705216866274531003690991718628241536277222883084688501686059526481008438392446041272957143308539754865033695425115333712551335405896228504088547760702232071810104211055422384253555020004199087891037851058197355540962836091485351884796029270973375649470079530839109150310925095411677381993875458967039672206466886549789826649966972572432247007973052936670619239429677525672252242481513516992884216180180143589796642114008204909949010299403112249528650787553729684232312671138694192801355704130522028882974857715144618964649080675310248826109222042053449152020886209737952056034114276647706084463801802992324856780930164490376237514471049177264666242964838871517469158457258407629113307151557968307852325342027723872135930694647828594328526752772753737452061987125980594255424524198644638592809623111542871995067845496322478114768550289842093294028141110455571744246743784610804153371988693078919062163579681093752212414859569302349452877923709045703281624066266112290736537331413810679535573610372643249293751329495900171079955242746264595698679462353428266249436359967924784693840696013148674721566180678656862277041625427155728175870199906145118192765454716446450161685362049516267525702559176580142412404275267443596510438582219189949036121597897297361923659914982751681044608304608115188494692680543852439643442193556592097828812909392349939712905827259922367670669379959767501599523906455096291556475089983697295001142906163663459197997614307474381089765251165184865206817266922931041316452546110948941221124348526435518246995457870092670398620660325812707111221094737128282197664915329621355954482983790797940945431063712292844981785633141517464498182113820076257273339789442582214407126729242939781223244360269240360517814475677822146342693843486837507970595668459672056457942550112714964629810666509136579127412242300256184321230012860166334917421295807955472708895627644682231321520863660336848901666560620357098333300909009452617915026041671991534667878655700921499464441256556637759573415018178510071524262071643231910530792735887674212089538936818036204039343079516818991753096578443031559667248031877897087694609112176791041490794724742293003278719543331151468501373810545149234292078255046942516777885651687226519882056971839357609183316558347649668348246063909716345413377883754464350805481506670582791094911457320830432210722342287207185643053600955298406468514756788820127534925674942419104465475546532673790758908000000481303407461265616443181920629024803567066625771153346904153768792034863121112288052780650566247164323188929185232050269793079992279762400845278156731485343110766111022851510380655743679977115877621956934006063432074874076853890347845686008697926437012073658999878963212307877961787168855589054846896705959386686681637506982912212857584702722483614121843954351922511311723535847991112910786953781301374484496069551666698918563701167504105061087104207334673944613601268637283256771950851191470241424286537326123652022009235950775838330831055049873899281822088279626295242797960959148389955455377386229690116601938329437930734112330402804265916007267105842993168453568662809508578051030016881346082151677098485574876761051591916541387409722537812923457844371860269476934158079946299876006060107701609152183343842657697514326793980388618548170986798755800015980433892174741901363430420792319676583495703771295569540039189323134569268178338760953515234989965211431003594872252423195475483410078179786523802011721422202581670516871584853612783288152459771569972410580118820303632156644173606205225208969273039725497341704773482030121871596905917635236690836742967706270079694354188534129989136052671372234937362892262854306387287570242344970287316081168652327218390358398826535315323137947135140518939150083603495671149425316477651275125245591406158192245543599131090428536052153238300648210432143275753798103393678444466499346902835174330124215947579139418068147942159959220132819514023682996495650330999216052831276583245771920433967094918783262695437941983667681276803974782756159002754687237056302573721792393300251694265847062105534213481148427958696492245057200899497366074052156950680269192433243302848945803880031291523333495047236937911376263655792772938030490536169799725274982868301125689762082215585848792280324778462801519185291047901340281231186739690250995868815550693634106865618906992767657959793048521127342257130770986703606159822309938892660966081298132877925672421845787659839773160329471324123955476042143343829831805209193048758270969232677105623189314743610909316506212887071820507576846295562366794977644874636834001149218341892800528930527824718729400504956362885921439671372932028736936139911332677592929131856612151020487407230617600153334962076727601653185689002753564243176172575438967037902558517508782326545681738985466522154663922838885130949874371889567216787047587452872040960283943226027737925150174424717892044054783083360443943693103150813095803985706576802419925089589811371948410931692796797482050812586178718863499498165575616128875515056518891268560414295938591932036124606341379303808368784259734083837909670356117154851499616097144444492826335975132515668587993324169995931675557846274190055289202677065397638403108694353583892883408687934605318647537832998739469230439950121889768096014713099352435050406287815700399762600163822549966405212296063497927009914516522833612655832500900301114548444177879355211384973683063676080874137028248646855548759049436473095948841594233321650950869270788995803951078031052074781820711647214975790553015625661480948547237035887691885713646345469348361799089741859148526613542120525237943297415514303588084438928210802213164206659548064868812678042989167978974576361680783890079122342620592297519339962410564403271020904170051400948291018305492270101187760633114717033944223276074142579513421154105222425224813778771572048273270032949063889056226200972067735303917524091012354162152376072473623820313609680602772192993200217969287201361188212365569700569694002919108741279203032736847873261773860071190653840009016328857575011115476087295684604523166051109268416158843050789898900315673598881630325334351815123522266657914220299608022066007441546061209602263658396688574553244245216697201480093750520488058681965403359947363754716121493783849580948806123635253040188760827076180756832749532485415497393125754778415343377902962163316772985318381481673788361014877326855969805137996073391887359107648761888216155184386135503962211443753240757380743067539291881788405298906707352317608029539071329087500609360158850909114478447936210545492713023508575303670359983468170070180503339553912809489390525103107778848446301706693384720446395262313581264932486187244140059166523506015002793926722973402937285969985443739120256887778190191955266853230915378643639931491098898701840274557199188970215365134222668768155957348701018685146897869196381143649715265661546180342500957059669670243957664408120089203600438699834481835036967298558867619708411726172492192789268556320786484646525954887794916631294281140203993173029676244525132308697073653712682853623192177160885438933345693056483682898974321515051898920889219320435364505785333681383711579706881185480919476137466591940597375362151831056078866711626406093387591704820725284482678302083964872733799630650122773855314841873951722558182187008867904007809356397317434535500874210524167374187646130027891761213221706730196971251236094057494768137804716566948503793245242993210376302920502622110030517987267783378706992330629363119952154657542330998051946147703483539250100630056677574951457293891302586347147001321255837831172259386863274658269433282397343111843093511144682094669044565744834709573261888325403373086648253798133878860279369005218047074451391643348348471764108694659130192828747140769848015142903770808053495889244086456097812013473160943581961133614211297370700026479640603341195284064994090802889971943397054203873679151339772670901341682409801684007561973109465826444306871834659897733241811983908504902018993175987929328851859425035436418896868962709274169953918811176831771321498883904211659080577630558081751191960941031600944792005008873783752274330096071414182132062274076623782528536239066730726872386317592739731715741569166355111544537676070801034578179738346312917354789723363016545577147263341046871395170653051475132091769011303120153444470938794107806397735104670737404348136437135986103758878012161909376946212834397513739978194755652820326888289622493041867697995681983385336944514917724378883209513297876406870404298235464265772129204904818067452160174837623133029496644644958515549152681126196006249974405133108028184135050697870353067825010309353673972648892043276742129031955572672054421869824018646532725810430522235299223092413774293044377779529753318171279120180283631141823660123306656484680424170555746309618595805016215543527674347813243116710117888908285605216605987523749810194273655664925172323747015777018000804367759065856236943766798897285392609533586700153050729736547314646786212575775766933924008809191982648073065726513498297671048266445900611171980382244043055704144708705312779395666452379332888390374701465223211798519767859374331497384853965233584863370582609829187100424760742190574746555167280434900840236468535896051584196952313967246357895225351371672772683518414573709874727587264790645596526570449726973439500592321837629080600686587020929329618502942267346117325354721847073039386791316846126541452103383046376250819142437771143861373247563604702650036290249130080353279097152169409124255977995770916034989291090384071940889362429772540905539040839700943476078110689096412564063049164832472581986336699599641382603149105428673209914631686564965128608418495468051063824441442434665411908715026260786727503432530352354653495051305092464069635230871598540140797879160572324824410338356969013073991992553239061878372918962424413847186626208935642105105140676001465154050567417370332921293579865785339511174834152748021768901409354809188295363120049592824003149655709417364262862766725955643393461928567439089322950405363562351546588830805036659987844234067865794608782837551763960478394872518426108290079421457890490373600386771611748315835080633466909488162106460461213513253997799124308598499321160797915272304104575322985546088379095526325978749527230363756127850530854545679207964154767963858564875018426939628810332772574423146559656446450927978064629485257008143409327375091679921909244108466946044820912802328675468872973575586476277052067694861879939698806758356156057045783950002252698804537341467346458429542390755167118514024247674662489002507129421935981733733987605165999675270063040654631360795408926539457869471365920549950898103007843141177388282329149425328260793764325434178988077540166011316754345478713693291688383639528855460119005774129316125864001581639735608203906285899685662614172760442765964356564224794337848730725830163496166896060475031433865343358918699129831139594434309936200157913384433120810316811704935880731880018041839208266600027767142587078180163423154955185410185366458000359559567394517348900705440737640667753780587110362257037983233956133525055601949965967498871185663003118122551251214803629458206416488875354969113192944390767305605068913072036165876679139093160854035711226585723136637417912034777951167838138188953884380136394221129897905866565270804449564542537465738957344632744991693344602390208613980801093352853758283761872936032583453594424384557988873919438892533313296646190776564036215467275111960918435765235602691933993079141210823959278699881498695302155325123571986884971856372439568495917048489406296982626054572153112471623429003459955280394646521937997412090769067584648287933838340899108313385349015496734822077037217519690308580139013817433567966911540653375013805022951649763620466928007521250921207359776126147476271372852584124399485944819309052994648893121048393098517435375374735235696698895864955599922197527822783270658766585945316671162649524571686104500636811136087972131914853338008633673913391715616083309634926051569009068603895433461845881525829438578387200611568602408003213386837509428606915509665623394441205052806133948301928906525374170897184877620216031444607166221621235939227424780243584923437205653934761895465903462883747968864995663157636901840110819194450905756086050469294784145490193333351160885950848764459258409605974636930571079364787307249382179731463392801769576046368083322828546024681074700192221322156379491898940504539234790206363869000106473896594919887492943392951170051443803793763360296259066766160899291452406016041505435651523792010990267630009971367084004025136232240385802617729170150497915632229279354320209134474399276632443700731241470446103512868850675143367566749314022337187221271678208713793604656077824305710040474870314051045492044426777531874935375408482802460313665257297406071016271044620539588233859575930539962542513655635471282934753149863269825006067325183320868454793713035021892485589047212345287489482473571453720322379890188273101180462012829739343582697131086488143280645605677126566586032014843403013845191928415487047943769044369099157613799263750556460570063577319202500147730108579998962455625930335834875553052218516899197764514151328031159314453613812117443580995463013165778709424068242074802499636495875385963561614952921610410914406496820821523392962715907734242541198187119734802034416212791709602520783312778519122025267267684098085480236448117451603395301070045619302601111733352148838584208375759291538143878529888577590058887708692451829156103158729904274138312781570437231786158695280647185534806835813132493863786873105623957774728400189397800597498345229616710640056809374703072906790753446350155663123712089358639185605955714276736418127345440507279354983952584589570206279357635796858234560227731712803513325549034545372347874815845822190244097128476233475957653292857795153572557742336441773013485529140160212193766693781298078498336258246121245326887038553846582224991671647386281703425164294140091913588884763189075138468325995587340583430887613020977151225421270747233565142726296634599263470110064373949601599483622268844319171597180520316873523516933330472156632722507312845298046863807411786218673966002375545307118278937567832856298568829894907195197662546236937905996443830157658903891575027144533787447067547531558342118587833471088286810912378404821684369376346068554119488224319364185704917930587078738740621284296579208489421754262841339547079876354373385544408988775315009852012419132866192164468510454610856432029584524160265464334603749584461241800386684743528044365207876387235332039297645072011875214809460956888433184899507948717085648439144439589501135158561856456386009805263723314805923799844308106254786881231793852137940270077232236076815770659268696855703966995921448044314647478304754278501621559135333042392737635904814155015264517661731998539773056489738353665301025674438878073299877456159869883670226469066131361528478040314935439238346090886516153672619858416677845889212481857768174278791343760366874008540578476238762677373129186459795304788471447177674193916531086462345379768940380016031729800447566173903132720974409001904364100667418477432029031003998876693637301393416676231796062349371775323635045071361371404190900063666949729490881742818317603346022065910917106148850356316777041786814660130625905778319059120247465852444321473584104303087829378150216717584427939079449221229042391528426790900003966565212362253920297931705906930397693990055940362236782620829015941691884793546812128061307933973687207008520818926112791421762980110994368235282096029385999528246075529825282410030631132997436901369061313570412807779230941419599373940014054009619359125941331067411747707555329056762532339626861338451445957023955256312826573145627633808720081280048206094634582033985777871364073329860892452390091841815166459188777195375546008234274641270596698560104697609831375264787922213565912272392613602550018255806186800157776063604478079388313657867616850441745324544818143176643333734717826278284510146684579837856299844120630556300349354113430695606551458353992840750198915908898329290160591622588852751664988214563035630600704666726417641427239562808773983218700977916162528928905867019440377782719964579128931848590733362464119984615937200911887895703151498162559102711110599312385390287314375412352134993653684110016649149283723420739114466504380042665367263813287176605434051263001180279401738449686211899623920687716523577664744493964712185854657363039317207813765308202875393012782088984824160809002167129885251135316342969050965623409320091950990289016558535671715321695384143805775429109699369559844366959309522069748586337383610574482761189172541431362897370645336434626788105261965190333975326873354878186816006561280754667280888614749682334704557776969300810138858391398270283193156782149250100519724148642600504727303922903558481070113053614905996222244982131752528417301881529032951470042607698196523199062389301194538418604572680758737479333644924889121802847176396299844613721881019250977757545944429608864325595072952504558929563495854197096461325771115119736466707246831198468025246987896063537900189740283078313597300266631728252033772244205721726968966439053503129904417520972345297126628902525531870398923302127618952636890571442146444236925898265436953634916502286860621863761954711962435161047549338068230278147015113575901702921416999948016675098645739387307122616312473333142397480869431739350959429242515068489355761530939774128485291146161001792469519905637997474377863478115225807603563295189927820413715085682717275431094512745649075983484262236746817542544630088880204820671954478887880548702741225044670801946588407591751978489311927383395209965025206104194779667955953412031351695956964437465378895838992069739007199229088384314239005208535285477824295929021354525505648213075033913558240282160194943766444169719692422302826223441281278893270055251623288464041983811226464096529845099923665262133471604656817631671109398495802958021705806264447314628867185661535375112363348835117250837754504966425297204539673419442204677726036071726225821618992077318193177335240994184656217916888663811600114058238375290395828068121814292105609050881917433934459222053858645567374022739631693098470008837318962889703264239199910455379272096597725561414512450888334708102676273459490128378262380808361768561202137426324470704675484298030926746776431922796022516221548588453149640535056543531838360300022989504367705005605947734792294107707456654556047225570161050754616700151658671199737371004649264645483936469124263055508715065756843124771989543174778133550670106462762683423894301794889221200041430643220815503422895478514029097753413884586579361254070200937898510784078835990801230198185015438744614185630520366909353676764355164158094807891690700252362536904688066400250651431690711422029619554084005149833199823652205069876072830321003817881650467898640966225982486677224337654054803998643122275519482682547769597986744404439437515257714626122448508040762705523187445828338767737133716435186626774383329339620579227479979620252225899746008697527787377401685685564260250142574891891006063639102518541723029011625338783314067640727556160626532062753134152889929091174063152754446953736563856001458061300712989736495165917630316362867427774893355424953519923648475413494851892576858215353428375236066358625916869859167899765785868295816890126067701876476377033803861236901012286900328372017457295493364890175152608283297002297019472849495649067022874077168224847055398706005480437926137292608200626986989071360166994990138821730878639874664944708659938373331065319184097123295456047889522099818738050792068198082441193240915911563186603307303099729947412385206526536463177887652655470051962641991724866713125704081261392921092160644750045073931967787058666479001812487438190901630334458820588530431483244145657049181086206822679352112175474047272408770368090934682654532956461972054257473877462517221294624501669039271465806960837300715119630789599389562270866301711664186908964006013061909656661489828602470791450701786080373010880502622498065305167968346755078070865039483997448648875164609062872547290269341636165554808462655842285131466455630304748347435801643015990219569862974027627773405576547903604295304782943313696737304748558864718265389297502444454693205272429594278079559298041567251143516085841351800579726745276540400465964256287848045148771779129205343835338288807737949914180165716139200512858790566155704769857396242300867091232300026518014625474426875810135566104903522820862800740826170006926031829042053998528510382375491603471656826068942400975623163801028971748233365363880568370948244929369794090360376905857850379757521435315175673637509908568674279607961769969820736764212171496509500585863599325282968543021157032622281505506642179931870145251827134474544110873382163941562743744472670566088456195279790349158099873044453248260663581417147222533408992742955255936548233250948744942293106844345386974593002387403052230788887774161789641269920547069383652127466641085418574110351647682117537120953742749034589955840677289719384990549152655928742728602861403798560907837727960740119552676490674841678810384235897624511963414649295559942643640728739401100260309837634918213083442260066330476807580698607295717221320359194135769246938569805154407068924668801961064064934895473721547714460077790774892312915455045257564438554603262852465873884035147727753553522869292069188914620461793667830857125427173765076371423659433965087324877592529508147281185206292163079829443161134542264208237913840595348241194410771368130350025013281959382649631284382140390463372154726257725217391871734013112221158396362300842027509554140379128870561913249354674319105663122201664621913774773275709899548798560706074409562238226241762410387234485200620228166444828338592930770609085734261654237030742965198507960187360604684780545996229552702514176701202097767031331151375446934649412385868481017609168688283988778823191130072049372891679567837819373905102455611071598765867522415865659019328553600959229753281468620864020213200387483472355806390909184562907176300499376923477520797360784440901388011548700374064361791922936103885661627308206153706260692831440587167566290730641743739450862938688123200874116768809597692270336244754341200997362151449545127760108111837153983862856506491001615611301098166314155886969780298159203558502663742299215662701616633567859218626633388494406701889086397146102400072510055199278911123530062807685213360181878579389351176411815518309362887679884399191445177770836680408045486689280403941853105231857402978333771211381977511371537319646753233017731421308563035334049876321552260754374579175472010519144250839625697336707851078560817674846504986120643260506098244404077172514247707812128189141384846580971976860531738633980289371476565719973953955274215762574618396992028548036974068215226166811599021754845340169217512701360617354634093858600585981574789400389266344629681267063621505390492743403308222296461215657606456281675078809760949001778489881415363856947414823859316281040467481433337375160763102714981738559940832034420600305672010314423391618328580381720576299375194799576326356742854640182701054190968403095431204471974286702325855773423520112553605436732217933190711438359081492282064050520706115561080413767065588329833731953552337552163113649189559951114399082425247675367879652263788007594597195626379216106715536310004907435025030798186726008120763994553350545208939527875881708007700100112685833182220903146661757953911946759443358629577948301739422862696875944672968207282655543614714826821813264104381060704610774169756669345690786481044430547770492551682406252581407555828322494189387289435462279713102326869754501649092647160232516378645314200517510110072273239719513519609891105970801014082293903074914554324417270968393530682397778531677553769978462365781299246040682398137354756246404955444954503382387772404877883061626642824668194035666674290058118583377629349652609531216469516188657080751304414674416363592926293332923567069494541345443046274614936303215934111969866619736468184928198016304605867934171154755332384464560690827677415185905821522183706607497238786015257582081748932547016345385175273601822508223695161252493629689275877293951429905639707907103804700410778994878567715434307059335069493040904668830317253863497888976887436896661770645124732331708611535584618831091056946450472265536687157530074692811688108448757074486617502527355431017844324625599073006171372330571088495333832689739822940628247167426406228215785845920595934591427391341219925751587165742014758657599591473127463236902155508338566017140773326957016673705551258769220852133899497889318643271254508676336961768239543080854165170878454627521407633567298785292189568599655218826616229985829878378087736484782283146537367451286541566098600151714912409066829730874542464534960793869239279974541942292685577465464250808558775728582250089096221942291424312646767790617140648072560747148649476351911960432698235297870710785780485145582072833799118941655703983309549210759691623664183031234362257642993333226125270747583394275146256531819079814913973574365793789672195343281953559446862835613941122005931886979309774993147002704787294303096458466206243165489632656961862530365523924159060087109148513112822080743453484127483289254338360424667942422978348296103294420142676266712330357085474041296286689984796613417210919825428054736237623790189406735844126315339135219513522203618462064451280672466282372410452702872132117901415295811151248497259799537381077355189313481037499218385240365405725083187603406732527326456122665250793744697706917024863384149625460046579229963273105138059034203560834798760227239570739013432658614064960000204281229789564164760998980084891944567671927091274492289769466062806927523533614684495906845428726860138212363689611582100122418130338628445672538902181486589323080160291681416391210516030237115043447152118752866769598282125410822608281321209597425316441272102754937987460526681362907377753490064335755528744261415352756450768633284544172260014929281984014732730322838720013941356381391553249056021116927667905737033702742331770428624968255157485622664093120780961883873763878205585313302990007063587225436931839149391962413566198647142502023662148644574004091104565940791121497943158585981092930374506379964351756613457006815612661148775944404008402447923505884425919646900718429642645791242109620526283653682266205687288669328310451260980853955286068657301661122416085216575015633328447147015821521102855699323118774246778989646253811171243036315823255245923729471588315490375979881035862660244427575033066050660798296604846837557263047499048958897288689301024328936883211754574982936708122823881688094638582096082945217618548892382437226473981790134145609008770259873575820351105827959090827438874374655920882786406024670336044096855034684767429840246372943964449186520925313052098416893393594840235650898431689998487334690493327766251979480011186807878004478907777266478800770401019632685818641338402457433101975937964228700241542819240089622773922050059429115421793976250553049518018826353269037613012209953340066211164305599840239526843486494588003316498637918865792014737825896101442057438641829353412133769493979414602211978879449208715776828917527028800122674223440267888515176282857041402740264445154396140992717338713398847457847334667231684028934297318894654684399472702498519550360927425429799078974853216609627205421990215225496107132416334847492914612189661826331057115321127026772392902933085209746701397894582898314123232069162252548362523808949128430882557925233179095136566874260575910222526034129590327864791537419717637162431897560435389630366107423107005876934113210198843437022748806871331505458637932741455901615798091108400817025357404697854207726387511505661625126083959339160564357556876494704043905086878545078016445531901200595044158563638629911799203710322150396284891383527808144514516732065982112080031739766056329174912947988672437924238921380944318114834560471271773633535321688641295508085291026585400068256743051536218595029227256949852971367592587365436577580419146640815027709911662734809046782501081282631114022497959513150385736689387570563809204027136221037748358095054848878732429604452828717204141585239549689669137014575268960799818565360848101838796713583406495686082067229224662487574657302797902367430918950197402308176953407639370137723176273690694568785558308835657974405268225889460375543614176203766470480735417433692958344750947219824489473597424807746089984564665036971369649682377821508505940808167485230301501417219637681838826563420142185890195695673952515196883236336086343296745557632169912293462311829065978670542145889954445327374809161881637647794841372023149304820292911858034516389388369353740603919648836702040274235427622205387218043764207624705677720539017160542519217496731541057037551149452445101317253737628307455449859850198776129502598342998995879148962266244327564757887942919946604260496504217013146335722719937361807822675605219564650437968055871684159523615648629414840367823772229659967565841806856298767557039679614227902238459028261834544540383654877852546089151163221533024446708955598513563868611724450470656807780971983757527944185490214276063768200451691299745731360713152781615337481565831290488393483130037528799657985218856766463056225906653214626040113507596909061538310785163612762390724336293028304833958090868339644189426700938071833691564681477736019259364377995491473125001481627398790465180995471609997001251484844765360780808531756024537740091224064330049582243665679674428932065815692027717302224723082349776213986255226912849895525835125417678187676785762718137492345708500818482429509745147374207191914534163335565104191274646253274428116347697604885473548314315505737937010245708225255659139332553513147525207949743828013115250894109847384122842527271767487782554288069340144252467053557966740644627216492193823536035560264097025093399698559907682896825535738149992730252033516868457746031857570180841474040011971418590394082771396679448353937345891439509342567296765811981314853980453023863589972349482164289997547409311753331565861768430912521671107140266161805553756976004461680056338049930099435655412132646013615252222514673680704122502063504664121340020754864206740217045526972723980527484763746641220398299504170158292194443385962831845672316315101580658780335812806802316981685262266964313682541513928731910257565101472498356273865679246199973538627920159335006584909709638723900963732653183169312041063443005673770896684398970894160289697813349780400911392728754412796751424659531015328524142065331724754257248175283322117183225061274185860243872296130438616682117949822123777512881022667554770150178985479011835769723059118116024315250265786907932767096917036977444759877463816718897929619379303828139414875688830088028837696289604654293126073045708300637906498414519779064186211842573110395637246965062515751860102330687078378544006572836480023560337509588640242974159141219483614335143199900749673100124002644096595926740208144363738377892779301074662304454481430205505077478557227163128501346242968831763181206428838806896623706674050116077698414647412499296191056049322466415147148666099173893374410942062498307647333389176426581134453118137690621991552063641328437688585651103537794458406684085543174678902005837432084249507074223351313530125414688081275227759189294499901705694060895850288903430239361379162106128265238841612585037451467200016628582923527032600637627089644186372222870308702822847523418940945759251902581292350153335235961228885505413138076837262578689071719702141524787820506847387450960421756559554661108049996077449417751910088455991374483583869433407320320307687178340277881298605322142806968164467208483678644173960381040028818115795422997165978192870955591746847706883491872653535070491877107206147076204828232605505876288368496555216195656148464948426808048347601804888730319018843065844410733317359198838860497205696838038303766943131610434194439076081280340901478549589685432510600251022413834716102571405426523638983357704678124024301088273711153560500975077438911195371129056320681799018911198082351716842017460366746072384776032222106501770186461790201978458672318434044083705628244498135215538068168044709083163957787756915388266558275625470113559515401059258001300788022122287328232773244426455743605990758916201736036501682732760155649095566880638070303779750240003689065849983719322006037880940374671628559997016166595835998829157500513301877016664271159481511993262141255615506226980330201620885993271924781536884651851253179732661398014639574182016854138562943406788520566639201794563378191817800324587374330100703011696636957609575841318912256396150719809794771948776836729963850412595766852058134236555878603191107010931550455703946232211286735065299550099811081426346062246789570628697441783134535888749513985892882111596915899374758575878752340593001798347084938161093329026201128651919658784601039211665564036425893880586437192812753267792508921903214196538418438112591255376057807315049959337694213118019129339099800625505064066716603076510050064763979640260391641242115442459513414179898603549836095752205787387620911365106087795936510479856016582452244966881981688590744638197792819672082653430167479420594624373129402643480114349309098723474235832663059996736310127705416952328343269845232406643517065831196786421224399560455168470153774912088127804285260580661572327890719142283431614115577198872996290361246539382813874798670217234533035425023033299284536391720003725296010062463244531925675694949989113126722031966641735053870773268742685756137743566737742507158089859148319321473750706625896270321174055287000158906338501150888494677600460033810293581757027156401010402476396950827579716264238110909637480681500608027106006108890061535924944047893686252043370763747177061214460408622070936826132235699038758876541168107643586854622182422880545904656312031120911089845692277564917950156900193815726493791838413360079067347229739170822171941370520617392834409513967653777412468238458102409933281040736299901692589258268613645084378205651762424653070085165056086349948958946555981997650821977845292002834707695101423249746199089107641763762937299346611104722482673118433101190636367003451971034142951633750709983028209265810235287341217401589331370171886859265491515545857030053986452879497986463910310971793020369024374310217999410646310581617788450289576743398224963376638177094010715183550278581324350744998529052307733183186237586553765965951355889292567956436505565979749028249816943174102623895303447120232330660185557942236442894533550669247375141909564714046385385681189718634698162525898920938890061181456266280675540715934320534353620726183108864719205057718701075222202862164786935935498085963526980234518609659650185395561625628169511974954265949332309817338188165165454670087986011432455881770725629182828909529480583919331739544532365148569012014492312056067872295260120929964838593949852916608243339217113764757807749572235220549382333202578843684768422764171333374164655237820065013620943039534297501818637766301382383424407209801867112078402887444848972568102621339722670043849068529634451840228081172285696556809637708596295842923676936333104629402723787271784922231774843745460942612313739584563267930723007753085315865128782503403946905774386929269376248797785241049556921182013043281386480361308889067576278240383772018134137414095231446401574208220300187578117929799279475096193914271271019310712815258139626257203063840913100869819818385207320108192834263008193238874884193896596781198951826814383176839162510978190469797579507597724243953060618578791583473163214117320597135374728186363677158578602826007090324637957895731529997144709964189442512164936141706593722646394790205385111399809312512775899626598280156306945477752089302732916245379581811823509977417350461765199258844843251471011342773671358553946217815498439560400078049202839294630961327395253188644170640134813039342492525960017348417830056373756564611604445294983743407230835134013289048630673800124516963889709880665896655917682794633716032214360704785199186138791935004778792950059481231334877815628418630798489882046683257231651576751368942450411978873430710575555567517762544836244065936604352380267608200384003594794306190659247660590775537280827811911914527444997090563689520599579356613528340542143547474083895475507828317250422641915443742036714200202294596832625968721858303627368996550001303384309078551869546289605015148626035010747708220666042979036219817169740429102036857598923334099875562006058375830815471595193251985991413660030147450832393993143610801816270884247256375088279654194079051536499652626971801686797907930730137474891701712285626160003140221245692048867678143855470856048709409764455332562704504929566427905872322726054458374908729775362209786301166168046634578030891167486072926576202181096370473484448470750744011503105057319442740454812669414053112689443358126203329605329498085811096516014640103186074323651300466693238642411492648132099348155635379755183765579263202094089640976294793225245140212214114891330227452674982947350895750195275934507637919870642713959224053177729807336545968523427400305058561133369106871612466214916643351291551480210596722517961829774567067797045173648802690852984678692976389426651990249143108999315018610220116311208404437495276748971081429529696284274870088929151979605406894007923595385448068414891116138200438150704949293773721978272726106918614425468800803762479885734289098360865056562366464085964064773829919350242303581920960799267063926670742628071527946404331257944280733140042679729671266719376098723232399951492486164421127171501872368352484637651437210733633861171039139279791242971668225639334866541379252085580536213351123472852011433280188702622898718187941835444788463966563143422106444842847970385844545948695468196508405688910314730737250054857140533970667584705846665893852642508351421092915623606324694980632701657047937171256867012749702782266681352512432063615351435283566704272499020114086892190089240462043113860867460528746679039808828180482005251913814958569743334772349043605338517673470155474910881211086125126023495317569404955984213953110295839383224173365575135741622637080615593112362586621343215587252735814006358504490994545696053908650602262785863273604739398150757687733981025933436932594121601916533797903161343451244506089450390582773422434478926171863352989522453605249441490387082399541466237536717426718876872299427096289015865441463720433337466912944144205204552373712664817255093938880520276848782097284824476809869753586854667483923618407025173027917181725122575183087323074437055460103242971900342147353904066273259534357139892601544736471634712943507331678997356248056533907434565015102676925730935608659180730421044344770274448292175117927730498999002601788154249881507803885814301238713494816677180867120870790369038803299924285772826085185542921126146354128075753793974538114166771634943902243898351962116701744327692367038829537849579145843578785244837847431575851717904568897165086275400560803424852036598919870910238647071168910731872100245984672916148053220772396025665999613247047698321784724427317487672995782040020350113400958527757747600756025723081080830127010460217715824164122680331035438994803163489334143366734455972071598640329648020658716407942674901906404739087986854229208445504541149979150412505913740225313926717294214418496504212366808913703890457061146223928266934601727170762737793363063296264612542319973823893238421835367767178946273673815407591875585501602659799191176790303646823315967738778098959622811876216857384582693048640851930275420848124792391215082779020172848863156073480807689093018024840322103461485969927605143764208345251179348890896929995229931085888072583537493654450805893189781875297073441624691185678751710335618823303245575319765660579157411238991915389889224071432766625960487755593839180699635873797680709433654092406852123109891674254166481979905120419546410148963250664697215254179277043282870719695851156656060039631001837645742289063915212109872945827288410218792537186876589673058166266523902718789795658644377705223461928745153060084679035424860204643092395581760859245523651605332686767220233913283285710960162430815171764259992074297094426883041785405765045277182909910891908472746218550234053309711524059972825592659383233215110093541396036073572005845741576382969607994120333799108900754404249913044747108665345971153424694428019064244486024567362019161508868119166756418742724549362564605367493260659432243527664450588085524305061414793305434393625606228608497216054544081491375224649476376568952793463021385868243629947836359042643265152660733435864162302690484556694446945510189245936743403261269773222952329119707421868911051934357075428471501170384118941261584841294500712004438501428462675808368042931000250204211446679439597495851519083228391801592597799116495099302743214468030735861721419061454186699924350611230906072524122769014166832993422116056875225062051391135676011459557742296441817724924423385686635624982768445022300641170245368946494787546744989395875429023179037526961926340777799478864381488513051192918165306350138299294023074804972955489837154535077466620659476699135150230386431623218505240655812417376639912135993708782378871535872538919187105507975121017000010412802210063431770136398325762757326579800063349382020159858111467680216568522085221438772591892355475504786490561257959268600701493744575230663217557050057277656380818804409468431730038709131958750209033197780373598404507050366709753008960648444249059227945535377617823593614372821759109891275924300839163990284770034844634761660152499389016851866668737384285859877488301804572136162918729005727992995509279893434748122412291855377121519950129807426924751855009601920665023744351154878410952824233702209830957533015913268989470078701490168276555117981455197895399424412678643566496476786562007664748873382475588760882887218995520199201544231315960402898762001961025887046207587146439563586389026612888315486265875257844551564888664390123645828628204450468931905083817878651062969449030250227188009949890079697706281431246485549542781673352182726257486194162112442444081543440061348247474983640837033332242167544664119149150373025393946107983815252599041761533129063742865399308362830199469903581597716549746251992551387617249173268749032506139080296812905977406411394664627304994995409179050805382180154738265432347071472572233162338611788815866889955402644531336162692346330367129917569265724704910549674901976041803746806281372253696267561384163971542234173577251791190618525239458512717005910373973423178345678072674040267856000373623394938612372233194281137160451881519524778473885378416839057800098176572923145039919439993096735384236140992315540943552270745851634450085944638919734400013437322147212388005709356173149255099665967534088482479090717961473161840257198684715280271059417971863628265197489464303343019545476379890522476179403990431922809861856765088315333889451355775094602828470122599633568259547805032092998587599096015082736591545418422699054387026327564879390548120155902579020135046625816505915579005711867613917638968452014296661614442803526852408757772568898802417077874463072332503332586198011911780398772087450657811951493777278987766617548582799264454316891900774944740947708124646424095358500082607182450090342521582822014456056153336585460275106551203263289890184554278823223655400729559690527022225654531567616600744491542959264418304612153862693867434044535797811289210818974580739859228145873340378049015772073684823992436359830335643667432487913380037692005376625699982435187021961343549566077888136701516552581543052982318353933481582663692459452936523631673973695335220950424979393627562788728900451142591186298395480144649993060961481564104023943641086121319660010065672594878557486579526552890859209235796058526032814217034998105355806523066060438965240281824873654052267472954346505457182172677214406119112296981846882986346079886591770074862315350450184880214516443523843010639895189886307711886379466821411019243512135164347638902151531328377429175041249316198714725235186926501700271961884045160073684348076701002783973642123868111182135728909148975216029064783442172019253869291989838816226868328714987390099224044227344232287858005970257322543631183179403261630923420509017812748988209754688884391463527040057784610885687081814193872436985201285057103878838686077225359454911559458583334586453919091237940734007277430329326398066903497973391348348117832890456851907930109798547319655962461630286586356289464206218566590561259552723890480111202347763581916479416475965101464421651709926438009783532926368426907933838901990482363704077453803367846447805084687859310610247586964483259727169566356955346053986000925789110006840353883515155191284173209513240718859563949857955194829079659951310361348812691723168456168022282419098051548609126790887926364000194358152551456729111877859402066046624218194230850660630780041115508654754585460510874525293739158226152864597221857234131748007800292133941725992470669439796344546093741184867949710042634523949898200613746561693102281981370953478271001836561879422640975198813473836104966259226288121501919757193059510813527741901632403365899932774190915435079981667133591264973950864980857309108533890091218684710528204516142278975332834252010261918304221315303151408892468399073899252026175482036890500807752296258782034635662404432061626942091817730491955775574860373063168365479088021817953906383238991167163053952836704862267652950960854309593349571972382275891933602223488317831676981392320341927923601802983347168364088524243366453383076608519814731471583217088595165127750321026420656334305593464783315961052483923413948332147192168743565578670677249490377532484902434940363995838802091480977623215735304991211661402599454755900548766090875223851592361149963432283181411180704297383193854006174778142733515983948625057543633324984875987004318178992864242671119024605921761006558535033256036107931120424455441955097861021854491694924903854728662130098184703209813973679988088453736920279420011830342590832047570444161990840482061087150416760029932086407908839224142391115470711021741803227966776756518472062199355090714173242366334808980321651350896049347694059331032125499175143665272401435429122835476237088781905117752608003003012991551684205338195817110314596584784009761417071913440759843763164961127134607070526523056610864533303681105142559788428928907210468605896947217970799324008980364273782517456958948788455613043925314932644362839730444573259302245710181788117422354199339782960639518043006556070095018335131124636074640830003533706990300016178776163458755837979947893656076188515546206157610048771929562132933809450912510251319285087562475912853682597901066120028844635032960052152696695502714137928423471252825175173015195471291601505128281468892559978745078759905584542243268543648113595107632902104763261897604326194744539065495216489881222336771881688148705285747915971598623759330931166666338477484649587502060506593339483441382160598520737381486030854095036479553909774220022288118986618678769838919138880973147244468290420690476613867526156689467365949704305030359419387305250209754251864649283424158821613143670147543873993719140122251111902144192445940911531698817115483582281345528660261110193536763455698455811469477882862740437509795615726159896286692010988493320551954571375224379657270788083757878653548089880456320837885936078934027035047657220791759921056168796110665845558352224901403714417569468290327636274791643007634461904909464383858575614606791678250616040094316769178664089206265405102113169543801619428979332594327266613546344189666246984949310641637212737580298253029911861736227204382815838476437909001261202909772650062429345570954221287303479633747890381568051850112762770291287254991170907982796815124992070505884035160861934121498405235334697426531007632178946673274757903349087500174589546748768894633686913119836228021049119336282234666190675778639478724742511770997946517093019358606916161716890103735272643847542876825823392703426427389277685109005293051594576914070581054412574199883746937958429397353194188880786977361330924824693665301624065855121424312692773325425089642726565430599508815345824523536122571978538244912914701957067596502909805053194302234511816960031354392788268935620045826220951485895255266074633632508483138727021563947935885184512151498284347149546172302010214169115249750117212981347882202146045337094412867853929247761383438535717649410232645874012984783223668070995475351494414590376518530869075329318004265365124947810888044164530511694240714487877812975903635053770647159829561100161420281022231732620610850739941635938040056881427706413387518007711716279020732069539215328748430368433533903227486757605766287050632588448928193084932789557076415315609346933535790533173137282084992759907389607055887033775909753852734385688611644977713853558995772656630343834459639834865230219772097567143211263084102912785701280166040155203194007295983051951419420892663455314700169573070681298967684035281341269345519326016059880374748614379598055632601453910674406514715653666177861303722264006201520310322757051836428528706047565183505051606326790189819728275157593273702023238900693621902474212329738453181579917827803740136858686669282090559530471115421909900675429046539089264449593093031842561349336636844633793428487597351061237164144271639286195881354169494378849757244862455670138648507304138426426223202653110052285608143970690583828698976583458613592108378009568211874652328849933623152798894800452988017037491463685726204647321258678088790764400860644720343230719698908778407837829455996058252030189682834264096063117360196606970325311835059877601638607751010852796682919314740605270167804307169712792966446488532770546122446225588682112599208460569172257532939147637487262077963691533085261974948249453646575119761534674040421838391382542988519850951779779248291341437216315271432199881011180111645703533842958763868113622128405923568848297365788849333652216781478011104730676732268431274894953865989117749458942504025350343580898880338294379105310518793010157973584585130549774741684686625725811331972715161911359646292097344281373452549422847057601345356632964230107157356549225823414473911016127279761717551925590914275648621149847355369710949305594187592799771749311195563362843243569473657485814559657468669154422229364863733278780281115811894951109699069355362036787131993223893689464144545290846335605380250285963350212767368270547618996110501625815544507017081128787648083233647672502758963889152743384166656398272896586603971858778758866428980436924316592734237861950552300550429605305226290526929393321725566974622873860052637377492212866483985417343862386371793106292751312846982359983977438230637868537403306380935502293835142952671720726503380670701824508478886101748675279323254056084148194646402211296430114682417266667520337390595702475277896423539743383681478531176611826157272495753973220304405425061661529445300181228101421418931645042199405411164928207943988752733642463998549574137870087310892881670371446177097364962225779079197654212335592285890380988208271488318097642853165370347972789569561076076056588767363644283437941405051862474666048804455340729765690609231927289529658265372757665942832897119943578149288668232853225933645659489242946782593696918535130531525572812614794702894589152034695717582951974904083580762796338350879824808715010721341291722596470466781748557427544124620067376627250721433089425078852274272069326283668159666052164554830768749937548284162996939678945778694066933326452821786280880591183293930366269825510786142663743189492174767380558900983367786215305294968364924417889015667884499028042367635182912804659108913938746607898449281618575255844124362648917382035909788863526580706317350270829525956362980425856185601647473138767152058754752517458453023896956207476392402886854833455518545914359541270739882877497501810938996261415271012330221549943706437093316800949389217834708774854960931091737690725569581305671811122422756194219734130032010690008754870097549436497180189337682966461059508632877739145750320632602098807275338474167055667735908244856860435173999486673309051582741721289734620918757394194092187195213170723608683312456813588458750343517824233379220992367568493180691852313567999331213621591900927409785486347227408786693918898988667551221754276941525026989497129517272919633200438279316778972715384054663654449264444000533676578107505315540738493885274772301236676369222303028750422123831138429264748820371625288501686788744674367598527878429454391655364575506826455145889936020989854473117513463843095665887566963102054079486408993876549219134087513150074592922007135115215477652187580862152803434604432925593483316368761927731490136800067976466866238337825371047858746916670691114721685433238312843471039378733193649130788306480692592547582491428860198379360345359904530312889003842184666335640328357641196963490059916606837713279636182290018032858626646629721186601787808516150708188161192176635138128953137074661557917217577311857546327427956703555579445246814308377928430847644477095490216988805574659343962462616553652499514646957775250052090992922821370184433058318382722215696850551712161240985358812505310762426225201739025525420472041920703471780098035212166822778382658173168996395907848802079192386892076977406174645032573660331982739177757473434942792452710376603058873455161215642444739758022239015512066761070134103490645993197838993878837434901126704121945070113764950617615667321272432591704809237961030324544389958720562878733604886573410625241493070435556121908316390582793627883117596534525213403511821357863211140626056231272063749935358640940419827957879879823582964605248710812145486997211890916819330286631377607710424530204740945654608003639333619533608941845699873363656205441190928865802024586915092826652919685220143142446731023964939675621936485979777225594846825199341610693389189502082956885783577998952926061637529025217698160215995111041921169610249441223291963323656153824924282929167230693559189407731398822396495659036170252961104726748177569224577373389439187813060829079225341928697118582978500649497696560696133259383220572903038307048776168387098740686755007094103021507529479172667674861904335402771237772918222843914499005369967735240606364495066110690878706159631946221875013589425511024154545831880348881457027742138025173216355595212972358096317105934326055546093299241607167923501438308088195386260648689977488632923892705415034184698390048414734984479428631398075869434457067813781048316350593396312823912182171529082835957731516045756817630534850780409755428661487247543158525700442365276515439709923742524481166195365696544434745762274010078600209000685869446620054893170274865261543705201519321116884000433663786782647984586141419752945477248923179345763133509147469178927348273825041124775474315934190731991239948355421412864550877349663922177176886939640659418757533722239792174748826144771776262961512015016705572120254608249287088085553745848419465814462833855070040529655870656992998812826490494689945731919046615315331171632661038193617058740374855780768268388427630235911984356521390764777394699510857832685989662552634876780251790321251185898924697028982501348073989418712709698378478365834253191524308061668801780626957289707426596526995819728199212363928417951339336670455749821542304507748785836809656556961441865743896250476532860231804014683835244561082261103522409049790429595578076265129083917052803821901745387577036833490142492864807046101902137757474459254344286818943992432446289991657239577020713239274047137182893059934712092134481108606624933183162302956688798149478617395004950622786457104300100420446210445003170700023750240691348799701461180725091421059383769472354113435295048609091290812580127139382836691104004443040618452650708126097537425543549550677910639814066050457837689289146619014863635076759851595215607516258914640941306110527643042036434140904934422059503385948114802610273453920632117106683762896025387968269857639788412218777631679830908023725762905422537613295121013808344088097031190087350760067726786181923018424372590973904885947680684083638166222387848598033231368521119633178859394301792072209855071074643156681850016704829466673028506956305919969540725412725385658967181030369366897425177823110044559200206003331679717820817588410263910389937851992867836897101361306620686596630143254536841036729988286958311700647793749441862021281426621370650761215211141918760925222643096607463167399036922859491713674587713580425737587471831290799095891409808698252375717087413330582212231840971845974556090749522033787039209103396243458705914386193347186984215189639842373846416812384128920362723628338492900965298840866554278565000170640292912561016016162495256089826829866468852111775939776941792069360038238994029571665387485110391335801236642954278209148555829164312828996548138250017068494507171047732670528651679928806783349466599906756775991370158816691051837344296440326172738157144450009071462630356436171955377063520297923067081422063619689193019770969590584253173589400998726618846439706569653744323582576657145690593865971883874781465233989034702503292866069741623771682609299826920680904556037912409495357119696159305304389478107643571711840058284485685929301690376986762563181818976710415967131749773620095536280794571513594884566938400911979187205720043896143757640230924392595645688884753897492178058401307364363110669947878836003348595668189017939304995846487982894834002958089698993725382526421233657597987300592407944035471992663611267849122115265734560162694072436221788289559570594840793234764958881172626264864988533584848062772061887718052604079657266109630954463305636131436823018070657941934639010392837819315272396743067460990689734176726789723111596323704335817042542287276503532861511915879739856479860100403103675895517938789149683583264330653331058174363122200856073811204973318732116884457586263171063292262694788848541301152510744245792503699463385962604879759638273990779164651455302651317929064311059624444518832740976027737011527757271793835190969553724193923074352933307722514607659002388022938585490666385981655269733511040541905036229515590243474291095188838512110314244789315856586093114463632775884948455563588090427612112812102428318000945372959774537523101420448881086955499011916778250047774272230032492640002832821854013723044469607258095507367355286388704575593536707342127200173389066298544058374538743891027808895018849129744286205508167354243311728966202045407004782782814811792219470072238409320564427889030511859613212661130629135990900762832963319866813210863368500048299148856819838110084563409808122332444788810154779903126175412430807366510532085268108750875546459837794453109739547682484225491776286388018114068310153036548887639680885502961284249615980011619968734633814984563429004879870554415193410426513047955887735601790830714765550913185205692776424588343527184582369198247295127338323129306722610388604275167151739743495505742935054030232111226155451798987768575382965450665685428919903182673074354397823659345153643641106412733991059289187227972813025991992767321757849286384449345167659790851345198369456615986928938607626510825830048006153143547015585929312405339512925688272365943829124569252345931859532404117811770264186000366466706398116051163870452730050561217967425990070358820055939773643410266203129965766908087522737851800579853804274946498126663805728616006661683275903819252807597295314165698877179242488243137061409575743587088325859000398483571772763278991492934388045869386523375851930718998002286039307083386554338708510644648739462656081791372582290915928112679177300082398555192366370126565767681798445547329086246848103760500351264403779350804203173619812717831826569348989193431147812108498219436306408643297290318644960666112617554106246510354790809068645337186411114243454248173275363800661584029804261857562241067033736106521535718773728203826216679221389929693652356928873018057395940593840080578482247253342750254911666746048867590459129279132790568849337096082364621099081010635938802889727197988119094943925363417384793581168579231173642848924411805960875060956998710194387020058639878953103593899326652358055326143047330458543600875902990484107253649470727649271647388743992684409211548537134429691982933156112643456575689131686861149827513183692281797522475288619498924667184395496615089637330021035330665804611351944975699421529091924435984081395605971889791291866603579134408441591533850582495953418787515788551603510226831205226003762700561225856666612417426077033379573910684061484253483958890569964255676055520536614497936061268783160710209662995901808746959141987810501555589096312836955200862006229280773565429932300379294097628814205538924601036422582087356921072222452065136143378694991239072660001420983671661748329349504840154043841351327956523666317178072933138776626395441522234647192466591941687361094714544243152252404303382575844881994091055210822532892899562648668663415539795279088002324376092628474374255655814148036342187368769331255526774338039601109222016872801267685453682855679861228533688821330034196563154886896448376944921412089956515462271520695184698286021450430836326263671390183961327193760299757148371328985732366861530739696973815777812109172203938751682859983116917030993253969016241099392933699808227833041761958126253865431228767923387582022293268249791912802707466670694083830923413929553456379018607841381642811431626246054061110099670014381218883096422848457900984473865189501200800992549958783483638931415219120496021521821117742869512715626483575006056215879709102054620796364036011553773812175753868868585932082990007448505848944413548216100568314050644029673488321425694076633523341394225403155911894612074188206456343192678518902102303561993888243526259139848146447392121494940458365198236378802380674744294304537299866590988780127012167498765155246424506776828464001620989763487147974718662703612245928196750394400839014295711649128862610441365079295271004129959626536572492999919452911146626947426895857911067359130749861790471965961486848469350004528084135854895327881088267593148099447790240936047669910772197300822715990947317777018378985147394877904550405141431637714439437224830830652015123987189463514188973212535665518760962710193111767515081871894258102649475209176841683487460269614269341996751483719574742986063909421004493960624597522599535763180464672232508309681356641210034842413879820758555925949621553192831380785970583074759196661403876924849505069995734251724078847803001550725771864427106017866684846047981091787836585045249971314428516423623895972155027804691544144043746178016253877008636971154630185854056412143122120518020396155352718369174218545970698670909575060646635648169367417292996540348571295195083672113957141161271305412243300957679258940434587200538748922092299611848548871245651093953509168356796891105834515105756479775986129930966875295488520512721104487560467941118844717400537849561458430180380513349005676240526269251029860582169239279523752365176171839368003176568892598484449338696310778733506764195070773141223943498303467265868562920131505598698256690727262306469060414693593210403624018853463305667920898671069412927579187632577787544767291809079097920292742001593218263415961096793045731583040589572773009425888420990149724482121155163833530428347971738420655398603532697898515184971663657918328689503206865698146648438362484688287394143072070291579103031004745875180114344605074198543608661712829883218526029144037905905427366288037187420543875012465671480248153161029076705025358574696510693057758248172630102564619644195821483394997360742458850165655822666935343846674999722978178918441852220639290807017741891455630391843266696820008772420676949957082674722843091491218257332360459504373644000881413234987799360400489640826948865853949902292094533956489746064244070572595545622458067033330850930912561257480124667857597155530605354492470218560044722045686868589169842969350197772825581429913618679773419608966199933496849916500778781666268499971427273222807781247398327594286556547136765963525047165839981953611765893867947980704453994107819245025012631263913507967302626314832494464719554397430652693541323513421037627700346963494200949169142521005230961852388285214796897568395157427684242499328786547162205193538272288691185984299622539430120323718842877414356469232950966313913618553062176780759682731259240033268007955991842416068965400141609629306522143633953354727201851143492887618965956742279233726261507001419175432998472592581427250270516533452246591428335940110469938684046771557119046489070859159494317894338372249962479410638217561606852895782331846687423952045561956581045103232860795407914099140226139887403718794430605538975438835388971166325520069199021415865396331067082639091683558864868308713281047466864946697353498996998127787809905261929533348496097214166974562228012777624337562768352010290752793596948993867280337460039110120872962739437184695514376211147926794463865216974588609871066205263953663453750363832223014022065800998600782345051330360160963199881477286095964908408797006650257028199899839151642339256021523462473183404539189004627177479472667148004057118463925977278367594859215331142713827996243273558993053466562193779226408883828964172914811611015249994549950743428298366760367863319963812394400216423065566312446273252225946081680801846711753946822026725347520477972517713782556581515388348607644746345140518562676013824007340130100792877812192346787984073057485925672047128164043118461758682177006775225724959074969122566366241249341134178393739499753984084916513471763338313204113547906147360534962456233010134185537147501881939972114399658469941344488130064323483506083488181887543409954319086688900100838232288217164432133749982806699267578748519462034207317145621507438209841219476799618979549422158053274841117065691300601482746180075159156896039336318202174560339372674873838300172875228500676055442448230714387729098417004057358389303669105690771328040626613819325184984512902026950497167229642432681396896329484643002698188413893784667275217005063121841332585615241175513479167814590263429581118898951272049119799354366021005245062936839665320831514025157825325707979882682009864093382707293707664275843198144137494547784435915845911371121054571103003253145137165954629656304203342761136191203020706492899278365898171542225109315332526533039971964479610463799172687193647861738743245904888483458674417584524038118812967632929934316814027892884012888095974642668371110786788854721998868455635838486736707846778393780852304487970985301968576887368675233231576944215136713463168883226994707886527337870470171882813360389702060467738037554338209254488657462551272872718107064854392554650402183090793115005880650561252875366499577202332136925508465205054561546884926916327324713146443757116691005985475675343158894523489831599313192874687016223016007366729475851845203524359944740805246359672074103907738584870432713423097867085735346402702689879265275024259468954036336092623813072439983702692442467876578253023488576796910554875945842465332864895170137657566126297649734782689997024428020802996739101639367683494531639501849818644300514399859733572123235512933122836426907785955498883167762984309999932076679951085998316461097979970429914593952682381654543920769748947185227237760636897962485823386407343682080205556675682569275278063255797439202248117573098397401398651246818125716160248355983459430120565486849208178127754202743399782684084208159598510467172310046447945988319978924720020392208634681598026543524088032745557757067842308854863144821594689853937563237342819320530876962259866131923943563408263981011465545272123866317098066549694371227118103055869172454611486785197412840617403305611915827956626992305268659290649040400782036191853112466303743222306155602867657157361101555464898291294876629531960174555566035810643740300005038562446348977522424461625674623380058881762730209684723811587939488767506629468689690069141082372268304780304697083278659970914610789265724129710024317611689294598266572922088316653104721643631495384082463779452012326252479807564539122690550772349030759971053890861907270964462042123070551615343679793488804637445030432985679988939451434683525220835857233264137359815288153755194291818205049267741751947618377506118751811667739102619674354885323017904144167736210424483285360491313281726959881321696814788207920837369118503584123390570727528270410990308451828387178754182629251874890335382276018479168177674407155538616272695765153066977484550272162828354556647600066341247918490407123775111911504987023009334651293787870292051173071110015113323276741932900779439598064405416941151812581820354089104027984014255664402851856766174761939019261951045876053909238655763365966425440892641096219339106145252851886095636784227461989491056020101371333801661605963791263683103415019263220513634670034535941802736368866286544801519417445332570575389709203301013788362290210978786350335148782526118388670634059773917040337927428525550060767541103612131007805240331395937343132068871331833364602947349551692530984268871076619496926784475285355957895280899036409870108547722223225465939587019916863108805737981581945569886196614550240439627614654033174118480214751323943804674287613719872545205100719584191047504940422260864414174999127996323300753317138272147999049146991248471736835114170622110872733326497078295503578790381475369874987790436373747036199648079224003931437922461507635534141660429119183289942285354020427066848985421236000470995639213154160192097258510153829504095302967167778953348892568482841951778567568143784309307575299980405821853232541620302110011449829346826429261165580912960647327981959570168726369265323835935889251938949101313661311335042968871570120613855304098378369817941636460372457369734420377268685316285644816122112969618351738289034368348857733922944857671147560693502582568895180349828152410941008487803164196711144938946089234737508088892744513215399920716655376422655678533171556173435022821958750963357944610493936828468661745991852568365192941915768005693830145637150837688459364728833119657877266354557948196589598717974555991798147390472749204352717012280487418930240080412058309584675018986322576974973003307841944503288690500008876237638564741577834868138688558628403481441621393685640870591636699042569837330248256598861652053058859888602848559755895467399581495339294536912020577047546566252444389081376055385140243105696686735468176200671207685097652236388305108820519693639462859639009710405747639401146711224344370233962018168105225548141728603054271097627282016004558520724172313157326250272964525696358463355236330980545318010108594061635543730688393634674075022538507814917457923299326771235636743931786042448252223401912144346533923394411674845679401065822738386824452649604535262165327645765904139701799594011291695021526944385636758398144536427204203503019723334512157909302374490156089639934291080130528582570623569704396030052844043640575860621064813565574251876788916140483394094610983448316562024422633270099349745094145919329978715702824497474039546408299810765207113793767621169879446267967412609832791731892507574778665385121287512167068199669443354904475506746295297230989746886939416164909158134367154737357088920977120021927186743201714524827517902575606777143638209222834144668724309309653418521228460675044904032617306382992478600957107954602227880504184848341808753676439104017932492621202294156400876903424887772415208096636590060063446264203800986281112992127545987310183359419475567028578667279983721402526041295855240813238580838579526352031438160058093476668258481026458623946354467069354986072456663402844718383871913154309614685142220163775112417726601900524969305222718238438482623744840129554892102277383447883067981644018980220724808745239580945163618054240340753803314947352809802368919437974409060629465310837701815262470444043327434193342862566481762411017850034730100829102235086128998409367660147994481935415463431740563406681544954762234327396966887705623548471008033702722362017625932099219993880588808479208063989445532923754118261301519665648106956783422183646336635536082131406948375133072551151035778562208777388013041648073377371812900389709213583685978339389093992738580824988207708471269295141473297121139698740154958101957808497852725560707716429041522469460330351065196372477100039553463626746874195846129897760512093287209340627388972274661259333855315714194503729048895252148348766183622935387136289426110332797645062630308230210874403951674340392454870469075820528236512647772966578420438233163187329256635250115078884553281396681645786189083663533387103522493413536028050931613550463148059952387999758204198624780921743272300625594312478230393741590589017228828604186338763969289575466454467615043069661489833575586974510600027199747193192067521881046115081696986591063530026801046534410642880074371028788366260244613641591436834057193437357197039064487948765055786777119642376948443929010577435917434833215994750703387347265609347000750462306647114910948820863787476764920869081612281998128208829158272433782798595464582177469857544851738258933868886176619171931379237262455613036166145216625801515274520428611418480979982049889166152324608732682999616880743113342389970424747860744148881288952507286699839396768008200830491702000311767650808582277755832417848170217773897571575039082162316518824255532082976772941080677745092132439966574715790182071042124959358468084191344717716009309494313479485699971627041595676867262480100631396590791708795372894699192012357452341277611731686960813094256017635340284766464479286342615329709740424263438315229500848689105949618782179655267372689065231596162204471124352893364829694502027904221729839041557221583417731012115294489233076905775269497650987128658074127406128234335447511071570142783128923539145646227159868464662342241579976059079512868406249629224678449682763044011013162672876014173770680007107271618024890093275833088475282484603055925237028881642933665049776706536649776906171897009960933520651514721857124684000538280171011608166724567066816118733079891205996275734921034830264370109052495361824198819358239085557430888560693316206000576716167939126461312597163010857029165853184421361023333982518948127979326537021425712244574535896689679895860581489995632857239628190787856632749509116856462369104179704063932439835989109430507924983133839228430723676802200356612451470491875183169393986139949725503612469661400933106818701603902376269255869890505021736287855763016224176717187657000282533785497966760218811652902292035348991406714808815023661150742979427477208891921486131044796153039654729125291126830617947686077740000025784768451764993291591439333429805916734153431153915025123312283177698349527936166838595739511794224014838319083298750166586124612005731672217192801267030066530866793785258607743051874379963338593551276705224919563000429314502230625427729660438190008307929452230613799318827202862448888395835804489777925392900505149980826555150592429145896379092818688854213465970449945376452294026751868604433477935234178829507394913950746988370521089190505060196748615115837417923929375872279797305371281094701834400385014449409482044781930294057160063003767220838804497579339248344332400615118299913305226087780968822130416942233549956188720762354203440728772459560752438999889119546077159949239013630766703122418259354458778075174972976482810819759482529710615106574792089756811825385805565426371231317131565103125516128783500151043131229171723401800648307995500062390446338412085139350715792020742058488292106107409726410309712784566458747123667842560660030515856410361316362100391135509911423708193573649647347406189829079917395296918524470011601992817304704355033579473824679705097006695771072454335659594739918679958163229871165682466193443638152716213002447414807175379039937202229927700669758247563470705008175602532872103493200170190582106700110530132758620654930331854061610035679463560215572708117156728138206767687887434621090509233457353533253658334027989607834745966112870303575053198647315856749621057480540793969106094591561880576381303135660750610933776386383120814131033913092127753665292650222505487126564369330815521364610004694926782168508563078612625317065043529554344315944259418072112235742559618670026860317710282137578514103905107675382899959696818234249200236900587343059194703353276065961087985501182295576846457183360763237303222193933270624101535699425635309834775696072647494061293815899335897289551126523606904629385941763247798609015169069831572377088233911614980144566197934783084330617243684544258925564989566378651997684171888172743703019722574215093441357199126627292703658582687850022261261709100122407387081627301889981780232403730432640204704744342613883731885128165525863817783835746984915307438956022652483017257062331989374491975750038540630544875016277849217225659694693814891538536079966833545331673266344379890652948435738533628737286697124840587442618771628936819546743506240576437427843949511009059506260131239366345403473123826468771767833251392006845679434804858816961904601614155181418355396110590072266544931136481467848052632164814903327437282423414391321092108638064881823339048339883261462356873973123738115732044225600181201463694229475279696673928728808045997110354410035645373031130147052954508058430335627992944355367800014453530858530030668341716048022725783723138891421654094358970449814145497588608171471806185781104577627189731730670817529999601194423653848997953384449599907704760735141643169478990531852207870209596974554638297002521522552712324941798614923846035607496113745905857866862746040777258364814582033954108630901412156682491379383773632924272333658319152754089590140499164132031284280937878728019464075827917345790430895379448864871999000429850623238396454411062795561122846885051633024895092020821666432659761076345125229975480982758670190579978309795080429422189728637669984912076702593849241088918165446603991298458607170403629442649288586307240102540808398440043576035389910049939748631154656456181859865486003595797633409901485372125535964362304171769630339040090701883341139366983929077430750914751329609354674632154530577719002710116445824260165271612981846792509274276467738937916478200741157650152360969553912711348798883775047800021509126799860866853835114567023559426278522172954016511361804907663180738418014742036215415505349142636976788769944819132368819742897332368053176660642686590362647213668133132946924148884352491467145189795889824000655737280338605413294659913905895955077499807481558910565210856133581501613062323659837227435462828222738080066923691342568566838711408830062393761554611067350482405970587605613981414915371083783201125705767106117934906664665510091415798720115681547799335906918094397303034418419488964520245637105052340578188058103238059456255828748048472526896195006949432934277117034349463951145592102725888035317610204461949134675161897965899132342027248559585512380696227377277148191702189181716770492549784782135120052310356634938410481971775541577208494250064813075878472952554479574221631779529201157808420774116123178576196198952856229249994619088154688706791714247062132409311766808892598036975597216572957964431925418997323239298462959097408853193616119549288671477432572425296488412199038547690106824777297448366216204701152069846633436835427549650752048493106482424656092908639581028439529643997823992683835671925682859567897580196567495513543844615579596221764638305838631218774831401047696086794149325400489412510773596833887893346450081755281282092336738175891735101812814759913424483938004276858989967299417372046366573491848912532312981047866687295284331369905510408282731777335506290846376145799449165946459909282598576523399805984882802410639633766779382513521901248532354321071640801795426096739807681941398565072112932596747110058817119722817040717291350151640651798574302574579144112553597734475728945196926543618133529132496198131222815225408724113469649612315838051330853794300179856495420254135329656132106599746366547200815715652271571708929467016471270598449055479962933691747487509330173135177640466554510264487669533485780015368481302174649540241932098909109438660031208879342797508409309696257784819184496062265234002874451523740863633605859809335704904518892753602957173205786804767534415468296511847101371700128446330633899811072866415789078257309185762747765475122050290010329252484389218660932974537318755143227329819258380859730595349284269378171747177089609880553231360125947757168617087628547434574320195277097421399333996828401514393386950007775891089086486854142722579726887691602046016975620714318963905339527565256428264121530695948608316527581478365357403995163576815664827106371066459728405169424441455362808920225937770055106057823709842440559709254441735519033845009919742676344645235638706243667840071933794728629428394129746409621285652922709655926698433826108496378078151029351809916262607200824762104702864552543598792464975259333812545082806890529929397623667692337375743546172803838200966171901496146034708886903878935976233452889453795176936493319518192780447021998717732714766969572600030211714391108899535080897413219080408817432009558649348852936840510552629218274292799630124063409136951295130271366418818354031479813053746345710876574164367268605986177486688564432340208366669839830122940046173882495956116585660790245207675413938634812675246200640346690275895157655171459453705578043372300845888014878851759123906208036808335323190236255677971218049389177096188059945169771807548787291395862876973642930640382222677885263530113496217513525770563187040883823558551443132425888337918317083451599673041030359864882791600059030312258470343966045725349022895520811454798139259989859728691520043982619902296115526515645490387502797945558413857813259674872490350025863352584358311072895033315365901775780539980876048300807973697219658414854705393179620078897104744516117691160167200482033545284304953114875344642298641694595285653378103300750629867051628537152771169609835593066373019922543116608988019624381077445417613546542204102276784515015266328446760063423865856565120065813370230404358934411890127967880227132058223985296827555810018897309546913525797510257108259616527349569062293631734626087190355146860203658257242682623604322354862982258865993395392728971394001528404644555183089152086088858493985390127249860185684015300342880292225032997771464887371150697345513517885959791717478711601425759633976247107530530050741670800425404098088438486541599778350149819705856489954901624564849624624070700939320032494167190178450096419573906327293022948228244189268707968369928774467630411837055467732240657059825782871359337516699693230356369710540518011340387145228950224202149608843344352197662775874674368120301950664921500986214592619260171416088474657233343121716231472644285343997669826635526073129947341312739338278311303009067295196570848051178889576774171459580698467458084093745772836220404554335653601888530671548396387587246253839872442005816804374286258751098921016113014851614621331424462705098459832494591226243637756217782531693865805226676341347464186299210141893321360028046413103889228418913735419255833936357631730851531737805041583741031556237021835098980427597373538934282204336602095616890394589247950481542294698824744379848805926794516805532380787412567722423508828363480450801058307679280833702341251164624497022047228603224862688134248983191404485854309923777224052632968243781804019910993024371034383084379687779363881479373763658307294786532613995013296626977930140053438312420617584064554621687266843946641814812413819847397286824423809611565752629127451833242314094297558017661460343946251677323991201850970878956330214364161659803115869014005780426635227018740508873002754584587365178812441878499516084411019520396420022997447556080394454138693322702122007497614644412483145674550297460915596561495124286585952043252897192042817805971166776644706907961125015158006577203494311668860341660942669010360204967869755888941070471942705858307856450584938101062524645767939057601878387785502420198026254191063430453662801375772575785283901251736661325426129675460355509171159700792798902750658943484100335492640945440295291012854360716014445498278733875254453050942218119495352697796655021861625511122110442018094957585196343639911737936345413493459564000256580001209745858838456214643463185145693792695596346640959894932558194760642897289581420978309640948612560366693666915235193768796556902246118799780046051576764102632062999811051786289974534701620574157414342446342081832156226054055279548937760832552016288138119529730768072764082919752945952276641855652324011898078921536376065876508518734969411028594363744503873042647690010295954091147704053858728936378667880799124062571925089750429401409325737437600177043298168726772539147158175354736877091108641878270957316566256749418758019847038803287558145674951367574508404828779825300519911485383746983313907692491565118808767194064128787262235086703087750535699427856419402185344205158157470209462543215427375324665533864064230486340811751067035380854320040167706845955008303751426313615766551526265401927275601798946647756938193205963504209150570713313520947844021851998128146236235349046323141942374555377070572076551333286731688229300426705147479031640404642040501847209731010606538050727247421195017180598468272848285552389402661476167103386173447455178897032182395911802439529807656618508341229143784200574348821385094297951430620795749564012750089713576783997765373966872453950886020990269977670023868137924948792421472282351749926600184385353357313254054679947250550871188989898773223632851724047122656520517197660413131890422425547182968331976999072446217131777724200623395930604154644631839372570234287928073799023526192720555541610063485029320621029381719173445422239859424805348097695312461284918410237724854191993925238508186915717915021056474114542124091285508271818812461100253559229751119775588708984629652236446114663451836396427020703351091518252753408983990708380011838634448837703577266643365848636863176280001305811090621331199488045137872311454129401462378390862162644867855558816956990696865734779725209035543687258339456423661139371783594074132200074144746764218869638627321161930095803219902441103950324455239477879047754457519907292349814088655815755711407909040875818960121592489127324696550481832842471709287237814895018620548136748986072568484233576949663366997070389528891341478609136404320549236420461087750765112172100087460439672655217078186769691839373443555843847377087389500760484811501407211267969069922649807979270246418599944032761572142466215945972087297706394240264955346222222092344030313243870788182322056686426373859243486054801515433296757831483163582810144546208681812930578898623280200114841297368184615904064017391290294423950856974549491132838922372360335484565825441190730774073944341030551772912020467882707005824597141923398883955880986151457668362202604133005459656718609411087502360442945147054003492256361701903698222034093582158386610164804485970703751832550269871774317649049496661735587125802483634285332779644083587117233028643431351039051583795627202546083173293827335954714417378653780366268936553907092517030631345952579556897045426349705154265366535929442844675660793508022774156514903053090635619603392956391646587438869171855335577076209790431119439986489825967976659566867341849046174469220889337092414767271897655768108719887305859640611636080600448628464035217619819219510308218338642138916036872810130615867462348563927617976281585660492158831969306219738012349648887147909316549953445204593036799309764298856757866912716840138065590542936598303168663782908302786379137352672578901117876592577515221566881052447469426549823850469821079268502448832808637301787792405888396051801733104798653162500200254564926204521036992587929199118318847391647690358437083421157263289791351988628742351137052442254505820105167454055296520091253364884554978054551534094426761093306964084029162254314740722843477064705461425787530510905292192830897073963439379523387527294369057864834855641083528062783748477192110188681235170399425160838713336760829956971022997752845777287971709443816345777093189955271968252383375983055785573173346772344417866483796978411143773107461336446696274019856870274234530750006492420423864062468197728241939246022188940420389552569855702492183018688291265088011548807507239924259769175626297163200594312937440613545958746045300886204091297678173896500319190367524452316713750794400546837659300583699546369197486738957993199617319300368294118060590527066191125550176308271801489888819959014541669537051090989827050057012067471263202057965297537199342755108469015631382594755948305756373490028377215152494325040692523974003256618365596274297938757955132185395010290038940745329955958918845256571018783888850250227226112571293204520133043007399291121616451942894501755017836012982135737935559150009883195626877768028293792253039318435542245946294633587133156548679075250587885647955357288311784003323919802830082877997759769638772679805512512766940605470322516180141340867269570687819456348865507891353832665445299515504155178207389457571953138939668743598100449606382633927032403919509859576357931260251994396945469699706558518710492526027909229255003685656650490934993860512992711646681186878435166511337310384263341407882063595845519682319377108576148600900102211731626667615793466914542760796080947679730790412468688009701904535468282087827133734572412167553091498055045823494680713144160607081601622728593224081147321839185397218368039306556848356567652913700710217346912315856793353698873845508815056010804919677116283442427129831344130682889330805742536634593347820464876208890525587727822266144265805861229680333463988726150718729396701310761269589516274963562114400525190321119428693068751369147252805658141758332111776726463113262324999408682969413409051489731543482683997283241768143989463426301604246568360763369285346986143303800425258853811052960682346735746783783039763751266897063460193405284791032011513937343863001260828564732395009024565763452198318144147141759684102281905310712242384795783346513993625570884243636805144935935287723169201647356500996431862892209012829830897197366107168036159803986102306515511664927931295184108457989168335439049087810638004041767929522524918771261794588630626722002558744368807200099142448796853629175946974896389961972730178982241728046139536157989452051937653777409027634112600846883238062544748602188914999092425516474207157232815599341673554032467813321732020232431833525183039475976549941101505514215614910807900397163349755168058445926392591029032512369705736577740225692593927434568412159652049664824007986608623245559002432683622188738446972352158824114683652204417164095668874177603815104674178914216452170019064042241153830264188973668188612554438002886581168936951029992153946140332968803355292886939254413430309478911149893085185005816323055833939194031130577477715783980708499865603841870378231888304229013935770893794128659812730275122365218493903330826805244959625047138425404819807347511521449881061694414622317093536763845827437478982520532181975239693296785688485958904086481633971528541476088512214533913500106113397661169465551911715844868277881672836001768379690851706595885540181494682078907201337767235108570035292074942075419731555353877071090879791316933654851037363446183773520187613846207639008026326842850319632161344714947257381331662609367962771620629869869150550303370676828937343783569322919635753326394322849323114192304732823306582181658479856389395639442342549500425022909610804211763962173577388268891345833474151455534643303297574884184063888289035939824590865275244855420525386390770906474033265904787947379938760381334577220914781533864535428576727554291158658733244804535309180024862497428329200174417022215517246142945229752224396899276275531130175625252474659466781976500581744038114502526298906073753671868497481039198586510797043232949376503831070559139724315546826034857828298557144356300104155124434175033898988337590215522493754526959644777276595830722704996101178782602031301826160731554251833879658209110027712090921513114675109066002774951829315276147156033792850795661407827887862706067731729417748618049520511307336648039976387887965255583153460525675987963819392127108068138283237622184136457089026641945762899452187650095496477147574745292259136397619131294959038825200646339949985227772087327081648443266438226783372132931952479678230123665737962597558078101941061979010500436172268819408857336961156971272835332138292431423055747222308619405461588017304204384563604559408143346872386496790921484884881830150675891557573260422584069711939497377159386930464406313939137813530562045658871368442300444516080283008669615995852005913873654272078716529927213671099532558336863944704999133887823987658769090414757607975304872316871656886341571680988519914306685997994798154608116265801793743859453524177549216450647348428302065317731448679668106573120228400899588453391066953993297554772026065757218014352243217745771602263637260825362593274652952135456457497362102078502920332342914745042694268816363463648249544968239546931364378623821162693022772203395435399741207544180931259585241139233132614808424511606142019845696581716992429783176072238916873717824719284390700448725369021389905903808680717877952080652866874394884811808624492163467115298196703521476020115498539424868408045803628151720024362628794059800738832261811135290627233977777770654192516843698330813438946789345638040378164161986980279569810135614068335565625886280909061959908260972746735881712653295346827297223921006777384911880589149396268530656684023580677617120978984612835883866818780253535002120394158814738886173955727382246382516221820051418728692445553728116747902459937643912191970054301166357731569513127939140812053174508059280545984830540960029739432414087658103639903145122490843568393233748557767695870476970340148411767434580852408226956685067869060658519748031831743361608440670984338265501033530088466826943978562902635762887822492280560190457185732497651529127763725916951762373033178034074031603338305016357608471144778033895866208598909722344287905540805839970922800658007273144799319094969574944139967010030243111941649336821976208443332673266096485850864876033172527563432166213789511992782481222889172527163658608147887697726390810562797022344357020942966446137884044612425582557105762584632049883162290585735103717322392626994976924288342167574734640466229610077037675475059536061508101037554697469455683679418931499571232011706748924064435296637455991479364285350098753815749111925345072557800082137934859602105171016501939325393390944497967716070636942525293081469058236573565695758262653730864098348011537770154430363637726967637928047151854367735289559036704501443939393844582456411771195387154602339576210583719886026144234139671288981240860639047355845364208618586201080232165478291716084464190300954481969000894392024420589001818958530615614264175679891311582392996181651742089330781176070098149531739881102743504943781438936816749651211982149079518436746757442490903565293884069574681120799388713190181190131796220251734614893081852800169792216679469145297762229216941432734700352727990294785492752768252182728269814852396511765309976166017410818569370833624054938884611104791292555309288723645401040934810365431446496851950120484322891285385454643220804640483152047865601405464416506656139781465692546770483139083429490312803399661871118173275286815665035922202203882857503039315716459674285818535545761500735192307534921853230321816428221151430327937834552396406336874647695686597385077512532358507357167767625643913534204169554820867121169425970394115489008242293622058498238764644575420691084575982012746471234873753302366248011252081160246078100239045893148185608391553466868863325147451856964466683348666314796877858609809730487179442378156816633087015973254857832451708175762930805555927990934833619179399505514579466361265727720199534220792390758850777618225658466031501289076930238560013502071020854291575258005675351305073144522319267221691967018694121181507807007207749353528271961636208676528973377030949512649960695289620812996099343395226913090955893992117176955931808898627820256210009673461822146044578261024536556678891271996991484586986099063423033729465033644575076786807842037334565381053731751168113039144854331425069310994304034860154569497845831140431840261984889278933046851987806649803051189962397677061681749106780872604606432217923484470936524356755985748054493779917226109952104120269610988259079073159786981961575799309663127332671468767934581911106164972083439555945861733930674562110907384038311554364230956704703987811906268045189452501807545733240941337547877741698285156250512845426223082160932117202408830416432824385900006941607697525734195500029365812429526662783214304197865423358415513864098256776120058162448145891253860156520191984949842235672394205977310485952763528862544546167936417904276175855015172195452673167984132317121914517055589429487803976602508930598979258355229566826189429186240888210037090701562143685250328370834869610559394203147433345268486884170873522147744724004965300326962154439731783250047410751425408778148610318932548117225680253627429035727025039421002796487865890346383265046091338149093467031519738611277717526000763840016277458547759224413522861693015095097310098584460016124748631554043613987978115093494744085978812985949000333466734829176164525783680688478838461706520334198014531934433812133728124198455017550092208348229040979771759750420264893012777703618763583983703377276453593676636047261561327587786586176724751384157734215154787059971194843203584136666151468510111433155306740669255464567120001430188828439871838643906607582830276035769436286579765645927953978566423721392333825875303010994336505578681106547272515307310180310442830196016531456806640665156602770857664620088385983547148984045512489446865053535514870556590097604923367623096632727392641407430509024357219185428314826503266875389978085105027719138911556366649278867839611295697894725252418283629938611134118454257374437590984295449786004770019254801508500657507828618227020974428643604186541809563824110676655621422085932463294314330500937374711185890804594238104183891192896240567736167654754872654937881691828023657043846607387733624779082699922041501250937871667368152995639091481935162513425909736457182634403206365705321442460481157187623230242248294605006999903720240871604512175394458456602441369115784349876435939797291470379007105247796367052441584533351890787718224056991516097667708469763253777005378504429531628606866734293813740467956263042797008137657406872490501870921992669334091416231152338213150604834844420345935864988443816438864669160841894386603770477367131966688833760248116893187136673398340014109104007279430398000638985621962224242392122970430932920365975147221931230188354157308593954102060111329776116651091984914587376600013673124383172211007174706196371175657133622300442396850449269068376051435597692509955594163195620068709104159904263024828888353683205837131880884541320820772613870050850183315385225661186872965915582841040626691246909727164793801516233665670221004860605722838675606784739048288083767643370469876669189961784832670603603915738887772181459785301191366821232621118196075495368464716393446070151655143394184761287958923316700403419330953238676346635037302136985551044508926811621443979216843661296613377489252322796529642278374372851906975778738205286261561169609129539492656799276700486155582812352688526344782634172005315036616866850163006532858966745120346920785772030310427652146881240874164117741744879253016390113863593520366666844166905715604401684828886675929940184000897919406504477648314306729266579393512498371447333391407298957589620991663910086555913778491488763489465994770905239117912161376792735180245674547946440089630213201622276820414165159351918845998478681206806108904051716265493209108762667546462956692390884755829282902966451815181926566136820064179059719389121699968733609902388522379446099839219273958591558770013337184245882101142650149623768550002435067635149385398395546761873142025489690338789014641387858017257593566985478107534215891035057466512284081305983246701135501620921188455828948209391264733500636764093303902993164693636849905079169409738978716508872263288582512094060038276331128486002441416809274079938877795741663533596471990491179773877663534400581126429758478187820101228119803425490989096521573932634729913503899922827154014552761984879588749313448272151147953700663850023330642196470547053519691055531914679254579184900439456828213103867220561215837759292245624163895925399314102641586679934863134109174088208227963673024542446877959979268343093976998999485358118952629265941080287061547564675199836290330534553774710662049525827846800089330130093079279819968794305257187319462908118693517715390515149436236959203688967087828900917894846529872918697591146036321945689833097533134187117683075480443977140068818814980721472988034364797069806670472402067725202595851471480184267559764968405809518466613146764638036176827659835542995434321998258567022927273546350794211810805178933673931853179371808853732617130471605895462520041427954610689800357796257278056733304495671439025428518063943129520441938115982518039603464180959972742219061440946705890237477290313385096616161978968251835566541865106586076553224283519455973834218608430334725754338627555094477198665920489614881874252091152496725031884437690198115684051223085201102162720400016425087716751752770233759531156853102728151280245562144761756443130339729366635921348738486161745946975450360978079525542309815649270786688472973543547049867687500113640096385918419611866970212934143029166314116240389514044904537813983812136583609227068520902267626092599228018813249947992050365394636096838565132730268870589444743549027431142141749863578517793308580874627625542627121144363208280570041366911212699286270526055578305151190719255106002767274433683053775806742577348139088186649511366993020007789894762936181333249265167033794301349158833763531880502635091356678651052768098455543772230414841164344065569366346641188892882839310854879679908315764143702351449560285111662457364566894868443357734705217357546836497962750270745327747212364894924485986039522108074042596984271010096178617046076438731440304371639596577761159677778867929785650637838019948896987148201083509005354366955599795422761287535654565063037610697522390265666763306821297189196471878076936372050653895064773433027738796510635328122249871119716074278942206339634857133703200519347777287263791394765222770637821208730563059701662148928632063100180911118740462837570253195104049217148876163300101963122898134983828490460628737679795740915774453365877974973977905412123809182627888332631763582091144050773333873226138717827646934081436476724034665303616318628315724581196691260206377191260605264135397710506844211433023101768197990748499248131734771572382119133730144411760417773713720798661013159037441544556070159139165741646184434517837046316890658674393657409283479539030293360858376072163814620760451952909045012338942684079277884219500086862153749868751847127148557301908403489522820261145278158243777671816439810340639391176489258569440246451915653850359634017731811247177156833583930356636053708881934902643589345261489752774309752925456689418926041301407503684337509887786815920141184247625991318334395469811780327871588284451477388122413005793415391889607651514360312052543964546406424646045726644199655460454324217751817249935934190940084526799977658905061444895390998355830048672952549493039977877285339454701662583889718101434348080521068411324188213422337523009600784647537169011827824043879739039762454797476186386024554961309800978130425846971067434447313140881199026739214621922363347816757845856477976317880534472586989918938088151856898647203976094356609377995814872286783985200258079135891257234584178724298705829420056872841408703526135237328605826771414537392721441296257529494212422981919404306969927108651537762574556696921622218106794000637571073205400843482026226347069062609141078154786559751031665535792912916175131659335590108695398122844197179040629065132043398294575283645757079057197201878244387527227939463597145096962517811252775653364728856987013266727898822424280518185314561140235719100432185178366658406266917084008542088752142699946973096923571382483939530299386360627990271662881746155438805613784357547230303480689628835769035595254577334318454699741213318159068542506281562022268987388570530110871199757055290035007623552129705458458786955918345660154571734409212307137231498222467657392271085612041454975035876455160889027172708504990795007041022861936892735692901265947700916183535063063462365350358227304825302531889848958053666192646029794380549256617169035465025053991313675589727246540597560282317883177593803393251279465275505114319663529041134096407171762396827907850983154760930497264487959369848224216354652142818206109353415523475408753305557894550301409185771981150916276641848913558635890373553460420312735248248434760888420410752037217056640184746814527055293844768830147939085182610521989214141542186998927072936524783670971429362473462453928209390863971295337298329264529221010153612357594471130803690672806408326929868564521377039363615874333155542144447453566567524248291886976919080757646598649024484930873646178732230033401297595943089503536403716820090956643214660303997666257737364004239953071680037548056896922467959130037386171449891749387956615489478110255176999622236343583583874677134187534073072891151552516875750097956189990833095341474123266623159282726553187773446628511526935070967537588815122521096165847262612168609075125887792095385135470039013833773661673048432574963974141550996811093782662062279157847746950143984929567008134119251096814135524421842928857036605929679804411619204565683881235319059959045024280847116643268624263029457067042135099571124376032986449473516266230569766232785522083317318872542086902408771283632069214342296811848551055197954610455042977402771891378842423615403834954033658003959222909265002401418865415521715652786676493040601673258390232290802419378211118899959920459227716080502679862218488625915039953838679881034152623248216956221662487990970112105809459512741927265592375718276472267029733051715006698569469254463060239072829360958181962155041783042408879377518944510096973712343414370986082648372038736467521214807618460713534693497571226185643768463799806035535271124703469736266429135116769902979675277225862455910795695988610413755225303105668902738820632230823236455722613938622048290092276148658148748578953596598164009847573263774668135859127154366937710533996643450016886733027414963424919124906956509861603726997316452798268155222697383390329872156066788584787319519140388486639832047838679134793641062793859886545657212348671521369356705675808970983348410279515522141697463416549771600000062082320583418397994777412849714340196481843701764117538874644907183814780920593812613161446083732934660130804581548264233844520957504151019775727229751405374475009215016950638696687337964231045635813920836308613792378275121633276642474295573904666310107429578551568288365862941512897490525518716096607030769378487352289287991612734985127287089123539736646811612390169853737273488295720977270738146578060478415494112436356863848592797255262123048887583122475912481533757026253177298055132916217184704552865776863467770709495334219272153371239722004389989722330467047935986802154378347563795953407710919499584799514954577164305289512881514554442429187729577394784890612657341845275521862388370021260005935659056050625171849521412204030730354859237430354567108845565032003249827835747104056910916573945035387825688169384594868398788408052537653239854558391755362351091928150665035518859256654486431915773336560787734563356019173364220843100667152220807301554892446026620815340234598286851285289143092230321886364326679778888895999642129135695396826009143018767415294427624913775938613998174812111654387038959424197998463351159722826644895320989917187599025716277672374315137285768555656888770977705912471410415368189073138157144394273906322851674259501133932291441969770905872818972584524938177781861372103815273636423297066546558376516098425825825761640354048842386246675942762414348285893879746923649865629679934927239375967987870546168304746685538335755807528590188100736421809911467820831210066320411944918264205269296230758488530649798008894035910946984210387712097106405862957964351203990318655581873753736554364189552798103453044561152708078727398317344607867914296354689760599695815131590959068271547336451212136649717910933258710349577148999470433704964368351510727461548592184197388175120697762473365843886378347017926713883980265164728977485769302908989803086950575191061022436757086406046804864789437667744776744561106982588238340403687123970524470162756229526309725946259824714507483865682592178736222865540523588146191845917069914044423693059881691913783987083717015862657414709852783480513112599544142220709986655038410626727244560507708830609272554977597434693666742977418666025104997878302799873051317125689743010324294931316064595673746023703026355889667253780518148327001817355092153948751469637763706827647547240578333925671435597424225548242545190364924619653168974824154579696534191451740887417070115638757321931805790592658337991596260828066867350228232871909398909181939012777485714092540744830754668289105714933220869078319272787487963653615329282014342873112931667390703506993191846814929792630836279184720234589181344135127145832542156577340364046634834694679930848488288699023992740438760232005978298453387732235120079458108774311080516697013868908514189569629826338894909352481369783427274721039055255428446340486281541602328956972742994081888484859133008256472057277195215001064169459568332901768772504071514448449202671954354729803663512356841570718327139019498088520166056927982380797314710079063306331037570187339899575571057121625741244207318054412774932862164658326508824429352099193957908844896134345717322576706287385842231708243133006055836530859430741622637448886308203588170173553556903945229373815494671019736106908585196748843192655645713735755535267510557554102924656495163171944618041832635471851150044097751130176860966163669327192877519962867408273356771683484900174866148327006290166964560175789568238301807195497046169573530921755890769686853419086055781807515471157998811484510554309515081742434061276860421557120390267620588125920650933194146243640382726148198592237434769012345852688304455162076719605666063251429542363948744888972157446841438215605642913756637192368131214766792264105388940844389553628738138501609935753612338745226819236394387730675071972126753544466125335239079503658274703430887900047911174983847147248369438988253483757880822546313471853879511062325791771960442180999610993629551389193733552953066220967646032157745783076144060596825844585295196611128547183954736203916683306548252123526632526575844727776265514040405751993767516505464075977828141242844477998917381169388820745320979334096630702012901570242843505102276168275426691963619737818124167668040152161307929396664393868867022233277826114190797922440388731508346692745985381121394373614697024148345270191385912437042146652159719643014892292200500131483136278191013997715639666379348847123489888211853286332782532414443747518571638561705104254521445035382792955342223387619546346950772498481280168424007630963427689669490574577375685395118959900620641831032708567999083182566658065069899415472694095295823425893672916910120443781061178364487304113726089640251058701318526263746766440245502132020203626727286859455281509194054962541391093436815403811742632593639028656076672462164180587072840374627670055167096882017362122169326318193879592102313710653230997069992491324736706575419030016921110096933176574509291670514132168547815861217926678133099080596213067411341742487601593555610676419138864490577897603048147826562073578312720898829906168562557666728895067077405655141410868868109264028945296472191478567964034854357230366050978459588206816372043803543328087695811703831260422197028144192228301822181856514990365042751279270268539748989772460823070534045356264063328255914963449579681744161824772892064878800991469543112189589173281125983020893049040025035504304046857237646271837884195482070009718670752557037421556383838011235623973298783336972412685700667026601609082070170601082472672881771044527220194415916202200436227184050338325255982430934772125246950777710648003460509173119807710601655240822725829800456549953414080919303374538692244042210028249844183818501986647319016863323353730207978192762792870463617943139953772671128566760184178358468020135867998293610683027291223829702794120400827539519188285800731799470060831478893584605309701636739642410034663052761278586138596328065868760788738391068534244070812678089890809884671785647608103584366160027535953010693616656086363477236136433194913487910661081138385365355548567717900812259629314620721708188928125606336208752087092316057074107569051830950090700947354469971342847187804386675149167331641371667164109604012728854990838868701206432468749817426562636091066954947522323088772126558667281298578578620383734111867924852609701426411508730184548159315631778392038686463488532517259900155665343833852170046526563879253937778251071323727449379687481227836543553879725737232919859291066147228304597729481123724466043536809042964236039476618811543280306011981490164419542746908079808406379624390097518474248568997271099233759000077257185352555351823478882119936781467922768172504893292330795070812069184930211776034947645569373179943417436836585740564289894429041101726287684213351230234859370248186496306000023824314136633630258866407448917542799823769208426572426485016738139262049299459460910273651160126622942671660794576149716077327389742872991074264182962269310282444309356285207793484462014880691790441552380066022983887267095705544374236056787069695882060631171894070249391006752998516533886381504983230356248809463233766119912421877437544384744565215760237730849865870611012330286165042787375032593578966465908174643070764869725986295272213541122751722352290704554012913684159541901625739035952710170790320612556211697301001770870455940711535116403959061190971094996308906615808163140604689899252153128747159058476581448004229030419107020720076639926727764750183426237970461138283870184192302502078734025957161893363691738117643990346990645760598960672096127818773667722464230575989530462653800621123236270117271357711527326003478035890542382726673900048915679072416436496941940372509662314525271524422740538056460175396763568364262441602946215381723176758015501462606544708825583343308942321603908282201964307225110630574020327753552581611218680124035130887976337623859246021806727592197236952023143282596678680117819047617448035025051254194696649333986350287864405800230727478706695043391460138047960923491382206736980411308667401450312012819425184286392566541724460225980201510634364181356142832526027655692349102646705774422609325393910738437669148417502616313865537087881342355387500330234375922740523364747278469646737761053506117225354847564686198183786991356380367416349022465548322657607369721079649820120340140867185943106521173197859764231231097342871193630779402888788430142537576485624981615934760636795302096330654097258963752686799904521510107397693896416576251064623873343323882528464926874200720166695606334546406029156381656663665915833977741293111525317035880138870746953711750969045669917975865589183778017697173962146686548001531670299108476855031569162928038548876056301717222804807206541608644570040352619991697643684720736522337399119758661217131292157715834929577217873051957662086722571319797768823475219039659652584888754748488119130419516891682348464356702591576241874033226674471405430339395818705025349603295006157403907086964897878692228506713467470974871809363518283303469132933240174674890912444428601893492666070433759086156692169955082087175251210006747842351624632592356181761213381686745451248933221555726751076535458763746865382448013364621870419398227664412735658272807040413159016570980691836988434069016905982871444958393191344992136809776245639759446242677448643178627932158830194720830972174364673107317395804665714256139215593665026955575407438702070639114204994937584558586049258474806582800633310841580356165806471628374235728986599248320644396437581812264350985452617553697964109017629842074938596880511892431931479847577739110291882559787543106922816409020891236020001588192952449536373942496516997619198619512936387966119200064460133486035647766501521613670267942611808695625539218812208250107051764554516886495571653263314007521748691935376809016784331690669370445026286716334139753051465614278179961780787645910085080642590763711832363078219031537883981362956305503757685135548498067303520671764534096678678902441371071282950950141918534362924373667643532025772439651115915000966311341390960576143558314436066361206660013533195664698448859239805100140129027045742666953665888644535568782663186294271700587214551835432855165797901553938669227003667860704213782216043667402935007467603999639371485668642414796816835357247338226744737270381096171485904978407239824751311806399026809708782985649947957556274856950739212278157257911316770062584919623999084302652105286911243622102070619764111150131204861539957889216112003662633850654550157997389774325109407723088299059851225145397414905607281725111948688675535112606646615185420585132687596101644998495355201746460149813054723655512349110104739099615717384831951701337199057006647466559486862840827029239229944115785778949961101746741758202704905991772675851863970331822462265729187739085644863884164391354829389188807791312950567905370461933565713354141572116936551585519301992632840559531742142571170051145208614790695753306528441286831462324902860699802272322531943178830196234741423947462817532906033142678121387014785678418903854263980973855485432739379835575963195858622514500477454207659452578318581419200706106575453722410458826689465140946575646284587436258834878209439685973904745216038829264583365784482329136950223776594977550678171281220756595915160427256722104668807094957572425705087137704384178299670882087882653657588168603468333332003420554548647137646395899267507418666122662864266252310845699087496696436076841913293076551408442621247180118408725494859942177821492282514671557625790757563052523768408167914597831736652715161437547136134537450017621150981566485650651852974736598838101970378410969071153084859091660060372761335635939570279943239284565889151833356536183156042625244304907407139331717010141628836932591538377965867434835597858847023014227393404716348782913290363732929299526505632355888236321009654191712786274098592154277004062205511057397355042153156653810529565177174003243329133399941097428945233061034854299030307245700118325152826911065956090330718069823210290538819755738657837554518514377463821979954664996740750099963878464182969725185433506459936669671962359978936728600444628876005309429865834782325552464610194541899511939540509954404753635752860200617493600657181044760213790041081373548247481027815726303461674622018306881497624482101333797906622529796453410283841069260931771392161430666257304313692486072468520837706693275808885919609620343183153429097142133399405865191249310991172606941213147053134227764486798014325265195990846396834648601860504069247930609863990616975111720255004327599891292771732238658233569535116962016164378075067233101717499970890709332362090895294036215364698708386360304115732377211577041129544604354124806600998037552151965856861194034387905376070695197230341032109875909572600441175850865073463467417479177518210877118787126013776339846865063311870304520010028611713984551033994209104402523234414160264936321255417721114080021338892957312332876712956852854758255222663819593450996033448492640998608336848279417875793274265907450538777666448307852081267411011916567241015981913017331361532380345516654493146537653557451522479350821547885864754236584393629555235462426804838853869841217552086891563838259001703363120757529969107166583955327108517565659232025214101897018117496504087468738146835171823858612937778112660535166203538501584574620040983300763920026279983492385979824977068331342575915472659184489497557302478920714238228836461884160280648145477450836963424164709842306006357613066860919528924495956358260150302705144893908775108697721797227332560774808485305766778249643875068255447247080297344977833176976872891091590969187893435726753426270742747348286564779245868438901755401490322543580293437372805524478831952658737929209279299299545444889102688630527415540795241336784943506201098115558350611020409498387169328244703292529960011754947771974043314975667005003480798214950485836039766708966322156118392782762842181455114890383102473035761228957235601566474740344212250222855441396135776844662598333763051223224016443946620991168943598896159092309392802087665655755419265739932575117467098844985032421854754172189056869118335824066895690654070013952535947180288555643299927202725073865842680150315697056118454242736523688030397001247742724507044322857493599103170803413820634786180385612374798421404498928543429579808679746756009659183263792929984679888657350441408607531973841167316357900636909097697807494699381747774114764860950005404975428709150240047804103931107670266291721130533490741127545722917971555285313510882503694852842699841313274748555536222515372311457421157029143152798290261461139673143617578739471010516193260863120352112513509491067869857633465346075075316601241064248316098809518612384137874250891442664180176434305687310484337672099169254465401772115856489786847034344264850475474894804692800818132541912342098198733142588904700389773456619502733584197977723085395574268893693156941647764688096047950965705190284636717641469939654962714523207526074186742718511097597704054596554014318032953495854160515453583296918207181773667098449942509912710808051931484401203220380702350356158071824432466832830477682261768955835383114795804657826327046841336676797974744239783832315969870921155889551099739265187548735315529356178153277920133386082811817556064141489315406840520141797337738333453852821434837161143545934440683589892065741723355089978426262510606310602020044397264438309750549970737457911797685641915689540588951763642595908925282426637382877991437731702806550855645523622134186365225446151528623347613324733790995842949873855628791608520303977544705684600545218617293824820107946111903010064149473459402441474516318255713057074823766088892174825328285700747784684387600612170757599852281423773264529265636014141895489391622231353562068026252266554006303345535660151503132250993952518036389163572161110666900528516224795477557976190119527402952374471912611059117503303808516647189055107630783711086885119355356157611601110963330668992695233025307766665883344903256307557940429396377152873521381594053236889056613535329695844180709057746331626018445323351137101570311143041517393935629178474109181802611333305643704379658880079831645711802130418751880871154970611408101321405465031946579995906855455605971504063196816951877340616132300926620158116882684349779124468208673022357129978465728673973141663203410116442796087940806576438457590783532132621003476858817022554802174986711379976552708257171275191478373825869893323501958025783205281619493088851947016865099558138657234829261397878646096967145525532450617481975781996995830626349452239442746489631799805213810856489391789814001385805727636771091254559707989033202307477480109228978231181704060777529649596183804121129765194902729832062040155833496867882333545095140028243568814924948100438941461225087687537702000944244332976289313693859222070333466070530195369466836192235927463802485570947667420796826361705166320993275837582642838668185147123654545740627210988708895326983606657479166199004905915761222781385314477164037636129860287287927115153409579435103350437727880504823011019063466005774644000074888551922346921214959727817580527628529342523229159626558748860438842150295863804360495749228017067136504681947754792097040158003196151033355325750597739596517894527568650122831633530032841892926481867753215505870532014218783027076368724848052632744980179593553349201189138032574825913527667456210399805669331193054437893491447987650654238623358619623542905168024840666652428189279803663059738000375031556565837729180987659949055445768428436363759896413123193143741732662652656261500972756978903268531042933189171460212833951526511519980666155588727190729875197064128057798066607893452740754212201841966650395881422431955875206676355430424511637469853505443414845431145740206657667503364346539709307354882306957702882430715315926526492233043376303174780343332544167155924001701709961594819692706664531048322194612666521580100377486750936209519069606591393941777593958557009258142256231212238655187563960342976366279726750946567833212966537687356954169129460664121942861905152799772757207013194608037502193776675955603480828876218593160019153938814403587756403426920961494617561852390403609785846911622005570046395455097457338771285972704846962601024940730520035692736513899915085540263805406283430227911541838100995762789861263932234915382811697469987372081775958731583152562993990804929346749259454701494900102928412205405074537887729450514384181384327921526279927867352898112705702812017089893256752884277808013022168473487168085277496806261021959508962326456094271421709970488821512938604426269610648952654729894236475040669941641647225611870656450271950207701116763234574447386205854728330160711829640649589927750316385802328896843130629594991985077928484078064987686283919861396447196842934802532055643940228861867112600756257911540320556442921799387662822239706745870363738438074200704480913090199969096393741102836585060060339918849412394424495489212361480611212335619393616552604212288785272213908167743082636336029311909621798561322438012195357463546278469367872102360199527974167825035998318164685009073900923296287412991359574470637128016957502869391861518764706562848631481613060036523779405827680404862156246838521358868610238460886063113844502023255593563562637833308410236332802521290766107555706544836975523827897047299187559638099533758823441158038272068660403176530449621078331029832266944628356993395746374042555386168544899354875273917062717952865153594544569768933522778640198419537837349537894036734024780107165967672963808459144603588054481557821537818585545021367288742211786021851722896578502138245427346463926921022870564554598059971433052911005262830194606946425427785635444442980733791198989979872326964465556772900651871040404515700268167219594846370740485696310506380171484562475891215970388602955478282056138046336489582734518404768749375887075539751534535202254441598325225329047594691421806699893970939454542850636921688205846384541709637203006859811345628708043560085703095165264275289577315941886906291195614856355581979165825021969172396793727033417760013705210023073711077052189423801912116116674885630924112433164353657392883130887042209858912174272884103032829814631439103458315165207571045493238345496208918501780339487070298609783076348158147330269804017542602346659656702023525825719280434573441968904761055609796978466997524066821433979717795623682691987046670660492054797620367078982310960736026420732675193774689127971031527198464764471785847756584233940889151625818651406443951541337651871788145421385821382265531894325624991093623303495499696068068214890763742724298117684042296306624275423499496066210928600781464517228651792503929559183863665184508288006243935634534636422448652854828064207021618889676808257651201866132591440908783871058519242953385675693836361151553181199130314432169337859695367430452972152920578600325645496425834693801560049799209464772143431800569123398122368098222883635054947571645252131215864965479643940913323457263455798110006407619272227295500824586476109696238922059751446577258455102887967542823202018812613227209394888398896017337851436244966937508474774542731571983127584790304452265826889762277627969311340008542816562721898460215547311008066058705446378471637633894940766277725433004518237968272807921656685512648324768276056158584505964163320063870408766331027826997951444053443612829806670828593260259398568552646240947007419571637779087203820234012464883974132189962045268192352453118928554921122318549477818898497666896390845363307903044047693057971295273347845793973826103687547547109071348209911662586496711736505397634061725047560608085148575971502310132475013274819923715807632001480219686519746377945508362023845181442019035400773010105910672543440736077909828272306690520551012968328225739521624403271985001447934825371709876114093323517404088471727954401868153209165828441912078934581589074857674556637263946388985149729918110835364765907538686838135741233101028452871712385997438098756679985589541732884622659217631126649011228645058732783554665715175180828975754929546509312782088962137215528635431554414986549218280452742212949573928813488190275918961547136684634117758219303901158452503347941032657613440650359230597928644024141994054096349982047885312381407790261786935648630205014146852919555668488356401862725344692207117026612506457857481348609221664067729544995397068778172677464812624692452920258842936050011406710524905058856472849175204704625189609216849627751939115088031223206282235213875656245190812472068643800650340051051122969678191968390620530212591370174745786320228370887152502480507633668499194687180244426616855008790488036659382253417853280875567767115919342627167356264193178084304677553352112201071279513130117052167417171421108581584126422183543188641098702846216034078701810680426217073549465164870374216520845916040002272841561781169805047844214585695957176238174633221286595452081618629010619225608975019139264097051122003331391802427758294274359032083763709605095765602562816550462240703248585441605323492373099306276842504616852475630932857214167430755183891875282856436397010526342077738031315550058185396480561717881779627781237169133239039606532122548214345693126800789788224042621614854752001639944874383532676506301528561741348288494351350432461707463463960241480330576124772037187497432437596542451451628721105751926835673612637957077443756587564227877706505166750459317787105860671386531730038883259897595476755799634339747239567080112878850281453604805310771047297771815718855602156671917677860856046539431817367182764734014834133958606453005453924394955563200093479944501042562236539784764986108162691025211362379418447913431325135606680198752090971022824960548942145472359754577227075208785637341957903111173207483828739598308534320083934591972323441146000828163879972608226459322540142217700225175994923893474501560730588619560111985788948791323222181043179065454687905533785607207093255200666068603799701644371303310170768963002849537908624936628581461822718579594345440963788900007385615327165722436226546666675074938399154872426536961024466027316532633121408932865073759976694914324694134697841511473645522462984340267677865089550824880632089571423895915000366550917316652737304257724685579268694306047469815660435917375734249707973005153305768440694837822690600148022016602697898633272663431779875042489008314236404415377292111754687556100396397075749550211938417555363553956543893238812986210542614681875189753668725468552592794873177851074548172832263351215883455908118196096390923684919544093864786467580188362960694364902152299248361170335910574759982450275079796917148973566981144089998201953214344580569990519864144278958648513045431669548139913799046954935099086127513994144369354231943516480524321493269312114201010499654896583195504020610151447263204015598347687874022495145169139843035772289131235604698476695678747060949799684182506627798369986862590609493571577935926803109550909659588065450009122242124747411906992064755564864208368330007641438124773441058015766569996266624248759161297839186275719553855408052110137259003842544708440019883567314116115007793496781066412788484381429275863955408218514522286756111851840354337083853262720970709013248649497295403284207015608272047618057844143428586374999188047468034484178918830483652428937915404770573880865873473092784010604105607618919840609398275814910846083308311750963322870375618664656161522592396825145163189131914634852263735557393859247440373537757136268596738889863455750789395388602714874616957694601776507118382710812926713102080946282475977349623753932541289941198492554213930145629015502348496352640723995821599684433002220894316458375884660345226452943623008272379394316620746604928040764146943798576609676312350422493665836082641308967043027580113956057467498150990254476324009052517599854697545127692935469985743507901022188248615119094100349138357107921421825615315204985602269340400389922759161567497306484656834987233577247383363750711517043457809715217535195290962183523487706650465198214738957298121796436099654978027011725337311255017641643753769114299909638149191571412495080518413362237567747010302482381552782467835331248485446321377767654751080790456725380643958915073064427773173824981404893023553917310405043087020158636844231697825087296454983050230515257427224709702359500666942316021093226625182895174018465976837869945469410422437243366612590488057917784876356895682022905676763794726217713802573939836147121967459615355837768598320021843441006482163559890522798809092217840052664532674481677170028242137972025815144920284878835063060313655473619697668219780221346824882226156916540633960823033214720356523571182007057376576102979074377527047543146942221895962347213492599239457028586454726174470790592776955015232079060008614582865052032289175824664364066779776797599567319716776554642649972972882813072841536483521222519085556056404201854530679423626634863340575645084126165640301581638741464169897455014013154787486227620317973680631166314012331835442796307533795489533742961044010042195848963289842434609242000417581560332443788384542167610524094177710825845291245255832926353843097838772154413871733562588946020758400525408156813862121856992855147527464861522384522332711553480069851443408860063919579557724395394072131800525088405962357699222850800843699444669988148602989841944159891745414165827181871182770621431397693807799455461234337166611588871440031189444161658186471095207245366386378210204175104872764246750081738673614682695320477591969963378066249568329058253533679559836622483844903383589276922643026712605552523575213811649020703774450793694381136277991987514855164912920525096667889059922254572491491702736314614713465684438232057343506438337091218437975263015340383765035984166214969726746650447320177622056771238995361280918557597216315848835628102043259359640576068413678100029558098753268733667371580115252803985544721337279606955065033314086285028473171620977931269585847396847859392876690633652174744622473777396893158317702710818110925372110870694046135334744086912916391771336374876853724013073464312382594649346704753103015506730667893425561161869669114899879061138123307092515117353564746001856043431856566328416560533088153262355329849927667119038298577879041137186116786592198617525062558180263390267916070102456972488576329661444409926392759049600114529202365323840146794179867735643950453227090165890508818015740323934004617635249968236880846117665776655401970074621291097687013262464931682651553914874612834611003054594754281760378611698910550827783716919227216959660076975738809133669475258002069723240420731772726320741562166349864308061533986507035408245126526896686316642508862698614033833023214873937990131749650904239409816565285472819738993079741134403075080578611692983713595109497510949247881806070204769753055763718254940257424063389519868497177476191541869938882731951195342105181931293543868290184260802546091758152394592725637519177472388481753694416639305593867034300387463923825232720064871462416559841558709877438347393988611833162847332883778108728056355897349744858569624853132941036627692657521677234921195541694508955737084640519139504511692141539698253328583919093870286445279988677089022442055540106505349915302577854542162028275635618063685915275684630326278159856267870112135336607693918958001178607863077489692092759675641037924204442054883180086712358928120844600160758048721344717803830710406927791681755780256139184168988297549376357844205571103251103255855009021476472509077630260444984111281463194841944502347592935164457100314874722516837685583429082623525000404899333925725550521309073863621948377951899648787464228078326666520983095660469599542490241409456129014355962729130470028767115268968482507882800310359488709231956485074121140101432527015826150944147648424206117030004077523419047855310369793690768679031920407502185144500206512906106501563915366494253438552657863771081320858651545587385346939424096878095163400287900046235259477467048021172622378045672575601957837671480520802818045272721422652864165034703912704041133321362468118269076875947649149278647363129763683055878298292376481916170014117712114681521938336149938997561142636519967783654684895786583643984557949711972991994709925188271221743464277979918046035754284221904152451412979093239809702113371031297470963115960873826150999810188568333136371605828154231246319751469857763018478743823137468762678363357881439663756744000158426922535712260224324813283753440495125223409711714865882704837576118550746456148983065662281057878587041052790089658585319043530437757576519336330263147027076761542808697472965692527117692157168183390136361951118028658344039517025082644456220619443828057755601874126157582947752937413112108284606767876206933771461916278173908622497505013234951170785014506361057045109986358084314436434562148894726171418179792260615672574650779241740814840352059772492411146157162654393979949579553651851775241759866229042928350723210135363548041026815462526415084272056216127322553274803575876270513016179983451304564116889543896878370600704118890949801270079044090836566931790575172506733850461667926748149497542697744074269753521616489513190150010613088584573041545692206670562950932002966694329437338202907778210620902562353455908824034296979076367760550634601780295686926231526862600603844391449617157380014977075185282361601154519071043988644186043536508523693297686176935595755785105526553364451597313617371454933088020144411696177999894312314116724120113190580345516857312209150273169001840644042828800341571358050683464498554197738940634603645480395315238935456719722542826909877456177464915413586869472652372836193934720803867934935990898152986580409547121276801374266413471011487223364753368090667623985408019456199820449835288656258235216558428938372600808669463334332541003818251091295095923908195569440751230432071141470507549632658471446234564771977128940673133670022061316509410336483917938306378218452344335562811204221457699677529361073825204849494434474371032350326466956616556393197691085683451248318663219322183255072709606121456358321890251243414392436425940363433357000366194421034375734803255542756433003644618268583367502692734712261053752818100668394060685105082044542903004723362601557809380600973249893809126364342455583474227584143172291956315064326708612906806172610369075158407611762444191192539127758284293442269375691346012259720442202051000660192846106947521504793077851831754774041531165194872595977071552839934377069215027954794638586053182580093311119174895279203060346923891037247091419781196468010861163485201306327101218009614462615414038832785085261531876740483441745049440446420275893484598095487052529441134521806857587856049041816861063797013854402970138111347985128903954840786006101276590448269350819520067645853859115444592777182736396509380175504786255022964071721728016662911609574675240689885067359884931643447571242548647891177780115411655185885694512073902145410764156102581583658160756083133558226554902616230478658444146933123204514720513390499422792256620217008910493990469485426521045752564671288415060432915381706548310046603258887734687216359440685788063961471923417177833708133185767804216950674184863868104066980764552867326187434554037621046040512469598024627372504515607136671540529283475714761555470870478953603664737670413915963714001261369653472152007810481581156443411381902217307155066067041283515692636532956281352644059660733285926509324401960731236993227243691740435113351619673221247446275417770397441703250555600197164182585731093785168103564998742550909997924970132831790248141919252264568503551529336964569764708561701758603546779910339560079573496875786013563750313203225557888003190507268349979586683270693034730644754482217463140488837789012741180222913156515457720273029642390287739019660117285553928887870806077911759360707871365093017288191218264128836538319819456087988038843504271631827448902519897409864225998076304919314476386940464702440448220626239620196935459710032760616463579002346660383129510242136314223087003043220811563708086167527117027322660584981830838813375633267744752116212388861733289375184139207812021490565684396692804759915419234874637095856365593638407636356359710950374925583256580555951914004897723324635753104554306769397636513252332195636851495940144566252591499346067625542180219450367235794412977083674219441103503792751674774103257036702184155718631926303079465358656447431483720027350169056918521386494162629305939139446614184544574765066415326227557733460678991626496755503505818702059716682152744943866567233170911732382108870375190162486240480592896659917168064368871330665751797384621847077584148415363821925592343238588873190881118998181835203574678006250556382501458502219340629571764699697823465999825889405136985343624958460373560697999627967231538556607366534087838888827972659526308020205504979091646510399931515091519413903605352865353415349469204002294329274345111389653686258861373565196887781749798761807751002295422596486443551699423339629177337941103807897531349122747910637591720583811864874201139220287521709058638080076860389894568616681620193639464768579719068585942386958959892710745059894182230419734701886298319254625603330980081766050207331608919725219829962294601478032144591126060284608442032588541897262801154701540482098949202259537606666965023413577498451730720308819813608842272166621216169188056548208591851874217865993561101639398844116277928511160506525896501578542180699733711187579591748440014871633778626756540729603723375297972918978384659943916922041739409847166171200643954741544003896605934284912849126306875527774205931385368965448257080008725050152264112316832232870130394289134969357910979422518815334751875005148688415447984256437281649265645711551874512544558108662754499214694445417316493412537654079402922405871161988282692318101636617668579146129844664185253175252431750886052427441208690480956740310770217378730147148240436022354557243528187499388043758473123532299006635170530795029701209465915939623801310640191663736973102670633061313902618524996042275248871513189642014613454764889232153779417853694324562293271891608166726677557743729711384367982828304356346834843921248018827718865873786305233255260566377363561615266930105563188033013832961624277795831444301425606067568658881576764608385999635779997142840035285012904103067320900690645952156741174730576926086402670086329527414150809720736368178135462690983127327434333359800197294199163473422970404958076806204100593787435182455532221883593564605774261502787326141530608664734519815469722607508427983897019411213297869125648310403314154758101789697623184982359881606726160547147273214628162131103462604814886658804798989125137705644710459660575747637607671714637608863994843198017521273784817527624075254225240770706258478339652166473583919923512369751789716210367564456577176030929800914247219974053903912533036094949518760218093897291261460970767163274127079665643641336090327723965526637594008863761200533004857985292180524007313020574335054218652312308254215664401741916169008666354834875597475459658750540601787022638409210512831188422247498329602081774394301283716196211867301946517791546128740540804703890174382863644495365293922629019207834482440908350975756053931212625474412761886142731798454444489504781956606074431261305725672601231142196180178675061244312183533993420971393582957825812805322928482727902604960117608406288183325959341619403808826763732820270268657178690815763754283309641172535808822031088758373386851092606441700242239576214967211531811323925726114279901793738513509510374893681488579971596252754294242653603230458059696840313118896828865617320849096164118171365972623624174589278356294482300406114955520341902428295436888315808249127731925336003764720651511695997008993198223805342828103152811245400521063518847544205665999510914644264047491732821849481908216027126051960845032172376534335914174667457101067816142052654955173500245050763095170058593426176040608275044099135220782182293113298661303606863709511796152892189614291363343382150867880234611948946286860623545530073809827426445817777240455586369226790262811736002016452588770732894336296807594132923925450860744349081391210214631406189107770944626040673322870532136538312501496578546842970213914022256185014180959122355782440976648096075783370568005578274755576553759702604775421353200121931036830217671509630731130181943778279008808350323540334999436840233991525979384240731247118800368708212254107542179693483807965936904175862346803980275049366412317010805480851119568586957669623507529500507853165687978292740265606944164844094988609780631249931932325895999006362869191164202775224871671208999955716531435946512752757500381851657317011265520262214596604869124941946408973359255895231435043255494307246766282701516039517022546889783944975474647140636677864465845638915920409605284795660898516220774474495808906505732276911532678423610243012279007988106773970160344080800894848354178735769861633778652505624996869653826195298360040898482657497521276018184772182640109634186173685732919234703341269862693165485461150909160747760211860085015583204068274137847020587436939092623341041605953695993513091875582295786997555587277476001237661271278997228828986396996929399616979858282207403221767228569703387117720778209145059548090219723816774962154182402487585802500821375679521638508369407380795483259186706395211896089214472809108338385448289441539705327701473072660136898613301897451933515996917448904771800784598132679567267043218400224085994852242255573662777653488597321854801792898341021747812548301347747701220230647102553582009402330539138262350292873325689318695718882543026962098532605890046295297528905078021305202645314392143213133412160113618851554725818963717163367438968027044188205961965401337372631587950001592196103758440063043036466776493934119903717264494427408879413986167864712063545669095989531874436230019570106942535713789470005949694830227553322022892140595093602828953358473317191585458669000981395816069332087183597865931505259898022028590097792968608275381981177262361486223497148711109848292378379299537839103797012301840298066664635253922273915891122778518956400540107832696775835606708560127279806540353316805656843296769839390288772125043426798439904068073936338287084005974010279819866623234778269498684247910311066788269934150171746629864399323894114488670140566985116433593715594169402454822219418944318552017644250821948296114577089079513277771649134886726442482293439090478780796907651382068428752717575754454532711568921586569870776055780653500934926982038167897413542114975881261924416386508392716741093725761045304428455051407108745387884627443611722252981282097824119217193096455353958587676565923273670955625455929730594468505248936914175686614085322556870283516918366782977245151221597545563274598961310736098373348075326784535873761717150651498460760102588533505860391742624408455351359484027560650088370870589733289655115723444960404436597552661585566740373204745117714848665519073847397305685509154501580311421941509195350368942946651028248877112239311375613507707419045320897240965539451341322110963543310060770699874009238786055974171713284577755882180794399339086250179912628339165467674115813951963089689093064592089769930189052084558561689354014797101251209116726969362180675237942666035986456284433784313852581528275494957179964096215471279924213860743408476726297066645434245428480797635547144065653934792862309658372900541784500331418273997047433796671471665604338199203400043548541803674831494919150182171562434024473779510142093463486620741127759387121786636333058099270569358189319338139791159101030030170594180624715145144317336264757074561275952973636884437654283137747352445890823065359228179241997888088788779755245354019573276272816659976460631646306109723908982054892845576569030051627254660565905187045268104853964444677484399116669265727609390398872120115782991916006974175836658568748765666735204415530604859844875855511881674829925638170825700110410755156937355008578118651669237590718678450128714211724868432983930945643819111002254134731396391041560441479719203855861862141444721085651789581469496995727765171486603496848966986791422013934583714650785343221013086373754393826639021813614622450270754361372917449820148856922565676214285903271177666305351856468296429266820357031121827308847153799673642849292505999688882785357960802052200801762120193007902375199351724004887835192009638668323048506408651545621247609830451159117476218981964814062229482624484062587853622418977496965359221123255393246711751401131221516147887870726943738734307744377112328376142377570525426482392031137954955788820400219714986505877548089212004489731433757475165061469580757743098348044573272222622308383287128057728560340409565071700615947711546232664115420891671281248607080447463774898086231744246185912000344728647397846266489061603643734020551211303473390920988096730865643054136413229194734202627030784009299995200358478063831405668009178860244584789349888155810830200405947087588803962782063330316392546222849855892153751427895670515400817771954367690303406276256114264454565144056300463699632470740052196026012660156116114840248035105119609662605700268306886948021263931623953772700046609042105705787825474708138885392132178982939282951970390469548175767849417211152377480245061509146854537360001481859939608549790832971476799533920862696225522366763461843962610427182960517045252303537057886422667140635116587664035873039835411801019957457073868533203812544579875654695499980668430726633086231601461754739337504599350697474786645411298195356163740450407721429571952514170226750468021726695160707968184449128154220051146555585626858627828264977299124888101424198666026583973303613316093678031212563657822597005976371733989373832333217862203904683074235596425659693113919440219935539685397777833968542839839761697498620555260940513285026123404830274712572137699036968719756238460479892718116600810609767526055072636534377307199763248090243166752350825057310421564966888220181365534516551670469728349133451743181622920393151033403775363325395026263852265791243328171259809945700438620503202542408182034512396792185310947805783707200195498442431790049588540749521697637033351329013783176537584638808400748722545400946539977540764641672009608109212875963276105169301011979181277882820246057997067670841776588827690344419631361352658887831594932214381809429517717684910624973242229158352935669044517020873234382862206695895876056767876115352400304001605171624874828534500984533896167997542294291513251286573759733837249362145453445779665331807986488697102993273791933903174277943759376774281296582424739696260327268193213430297071978416914512431088158884222583333725647216506283959935457317923680664037777602043396561949288471483927110335576830836902038910525144305347671486049526065371907947127929082227364965602698780988821330865679238167731723476720135238104910231290825944091039585678162445223470202266910703212648782912266068729443390161333228728486996989915733079255385086390983318630611105673139242945958582717548518842109304763006036601550985811563705648821242987702129610715880861234818484202786621772564873837236890741055174593370642900487267223161846967752098575525229237888872991218015667161208743185537566401485382650279216772721594794065512565067181773187930057803699464374975825299626764894778203537089627880805298471073584838655634090201924001360244807141693400393561132004348522461205828764278300679549159109328411863131755345515378036182544093294059459391123082833573179896743746180594319384798822870216015797402753806122218866276226433888447156078165489046134856806268034904521380471125710880259149860106890794395603729610679621485955193160831260128413077002614922722176621110045638733550772764680624245428593989094798244330052289681034306696215193458266302100461566735629684447297484406667796998996127896149361096785639197227590604459924845310991862899353844291738350278649699105501927596700651709468522755242486980028088414557353375690056244790405546106544200656666595995001060185847837791275177160251455688999047423199291787587054413267050122572524795375515780039471474075647883098024381760060272691176465274371545435539258993355559978402119848647886696374649326740895860639842828560402831621977584761526536188354438347066274162445919612274210068513259205127206730511973385964285539988941024839648594131381656940258501429779059938149582327291624286621138625066286154963301577129318911850648404568648646454096343378246719139849209559333654862806477222684323945722952087501541403723971347768573383261328911265552610690971571364414899556358951550275394183313136369080246285250508134531240799639197673826160375693010201362427883286051132649256641857720474099028151780802931760853847463319590754138436449129132850695070199767494490962706231425005705873271590698509746675127019564083570855549946576750209213436999997957364169351767548683616147666899647861675268728676568771670971768369350819580357284955324472716800503178601347249619965463239021894454948287646420594571714004436119023685991928319276630228951824026991489144320147156590785852225526357385228137593867701225925680670230022881462266870245763364977771764221325126622831656086099269028396290266109493195747404358375536864668002080847944250588500221653046694573319063086676022991292064990277495902828144034311559951093202413157497330954686963042388458406633221362848983476238911168367448806918008080726008391113999125221020637461058156024590173623469686109746837130028721033064506759716412780609385394371007323482819120749812707611534331911463206107328698858403827684449637415142912376722459891277644936271755364884515713415848983394105436366775778299025143619688489424368376459205060834120486306228942329074274139623250199952808539936328205079902379794522721281837577332252614159715414368050614490471158957002044335371145077271104876527562454543423365527746617125893163292078276587402605036531945362052859213055109248678706090711131122034633592255100648499920215425401109261630396363674622673123377377886574105565151352591485092161217787950722855668730333042402831407842272769510321457262749879478042255341539049985768619284664709330442900148715287326184852297439678561467646593094931801112369092921870434452091979863533166808007430182432478768760078842542158351856249479059688304117948167938756108825709968876350018432305090052964958702683328466289219667642352157398704914378966959370513735899791014559708028205077464350713612005545802352786852154565288568957313801835744226241572231031268650410705555005137964289690017393273038372234600145012753142085578139084824152480718847894679246641793633446641623359547397441358868518937862514328938868826974787712130930013149369536375980316587928853625573172633095547290331966145811978320995516009680651835415656914205742511517317664358916261714003661613472182332886486418518130944819766552784321746071493636449309971604644702997415936138812461047945429913884702161456862839481370034787047745225016488863543659731962908713134814646704488430598060630123094620688458263315167446762778787533217353149251518889189230166933383899244382249116759165648341790932451618595594804860052414994400256449165801238385121075532699484569235504185904358786721179678251774617958819335448029115080266290399278100058666994480047530747734727404261872093595854262147996240911918799643095674723132373991480742074982080960062117314456242683988614460386121106248738934958164748910620063655637588328614831891135409349366697635541031310421689607832495347281814585349865171971288526122224651649282007175301193351326983909338792596522009495485827177401415239932503948966412315494635786014872251216273941984790359835266744269758715593554415324974343525703206591435351544742912917716763060443223150236423046824190986709022555685561190749307411941971130355378888219098178558481789328849051090974491116479856257441531447979850815524278851455469400289960219218147736878231731745926485010167604928856443768115216236135418476924124736438681228515501115423899372637262168218748152324456491375445795149666898978610162646179287958016698717683659051680959152275944605608206093803001811215044120124228225687179438636692874429000884299773571841302028932033276009058367784178912015220834724888944132647279620959057475369344964071784486616895185725863250692614581821710998695241625262711915510609963105016918238784197489421975964222680405612043833946385612723323128040578752430917363277447291207336308166489033823544181392917236382991355699144347011962840740375062535905834397437077147729280265773096086586937850665738867763611783305448102138538416544959957357149716723286352268451945292654073408801244126917524696414628899188496839338049492205283345810961415588628302286575568445361651930053863073487810735255218420853054808536165691642572041021586981261802955901354910997960646092443797818927878712766761881255750455987687626161301376853078022782897622345949133066798266135472228139831830245493078569159186926256507054640945386354682852837722934573625057656213422578949498533696388948910256221857385151729801042014154639593018925070125563094261467264200522653726684704231840818305712199031308292429081027375222029603197965824087233148890484838517795375907640577941417965180268999816252018152133259851674130949742374921186611570186327157213212698346559075598060949457738702826772592613648466477292878085183960699722294233087822930590902197535406577281811356668042823425840126094061698421967580946106883064846870291067204735238110563835808184619363935417029357919983801382782626761393045550192002786298668366559307424224159493615107430557236607552354755546066990513702020191201973659675849059545149607457908985965078473516610566881662311552199945505891306515040906208488290326041272344438156458095040887961765268435458642904837714277488190568554299967816851137211442473441608954275103069957421715830964432497802686927705244424957374084110016932166287466337689226799497896181380605221563181537592115344610764483426064163060475365557233303715130256849847633039736720221387082986152827036804535735915267762440650136739729049017734557224748933249750443582228987013383741463697920560446340571269663511925963839081753928451336683348387535231052960023100933846706310612040395928741807418669951211094215902640092654123586377456421091539136788198505869610407573350215348039484871017121414595740380303839481942637552343471267880289751349710915174772059759554953816474986633947831584251159043836139771564192662231757321894224274156799658989014562241042225048688288677837541646174477460927618158486945169380148909528452496112330289343181974124086883351500350460904158905191340539672685687745941497289847078485374506742715029106416592379975579084865824295480677381262613078700515280286741326361464155380765231456579917274410778340549504912382859846849546800385880989480761328729994551162926836572602911891258173982872640465739792124452273463958446028079116817243607504740179357033437836328185365890249540678893154432473196642538656051121453537983982802765229932925409888147760790147223311427627816062116289692774714075014772480787392541387091596005306194611967566783711434602529855579431202282107490954355119472104819588227573526990690136620227485545534445999286062639236530251002084363335933475629964407775869153702936521630272776479927386976037840098111694205551630435544860470620859656193244571010919094505228842176855565180784363203107511934994192824707378046307015907816247858405554115085745520421455465445666067045636832467454093499968293233015887501345785829816130871234834188366307952199867787320244057750126632333674510534883659201119878803452719891134006564325256847368541770168805941543718420577515326563212713912503791237681112246944084207876296373512491026441302539594840896531977540699905953269208796942112708596307874467277567399200628996265865333579673892323565550570866736056177390531176634748114710933624395650095066055215793637648569426742371332753369211371309685705758818295592842421410229907537410266150637959755169264273726851957144913536814138218429055343467861453531453418784075018418979139199620208654801429362052972551640719830432057137833989307433799591787210620232182704093923490761823057558957008667867747063960795927336613973824543850420912487717016874981114817527748845850698561729638465889480439049939103146878422242472822661615549648789714736439877550896782399215868305301323541600537576461839659243312120835306860008090243535344392488654474966914759854458596906139018523524964237301843007193713190288560845923329961992556562516185213858191964238855605443424802306531230715159828661949414838060944346507266862753623705633250762797567788874292717316185462975351179781540442412109212019651649389135685323412982197862890609980250847328146287336471549181658282349842543523240211395687107747276614846460125948108384173956388493362875737648066765820683583521384795505765776528442036724325383224359452445779106707005701704560169945366416079022738333586417940431764339947569816941856781304460304219884156125955150252298746642185562706698059905828919971230237482970837512760548690688677563889357744703689449314247979308674201955432445953377883750656296761720861458866846956391248963350564457241118050911673906759288891775094351362068725914136488489040489691000476895074720519702202727961233494921195591649649573824682187893376728635541457223627333268951504436686039799593969427532448656697512636882003853857918413251941392850159730322813606174841328796112611458044122382695957704939274420022890904825996779526809096214642486523998536951413754301106625127426187999041892022883799083385818588513614028758660513223797869357569277427067146972260417121658759000410716382509207467823606571455587718010124936249816619546086515921280264208966282546249812099951507239201474404110633850008865503564992145485403287708836231456535279069794493143296986850273505610255262846448971292391737712469423214455738301375197909495389389360137755716607271490514645299275272904618752153626685465333516115250949374951100778558885821980763765354712118636868881156417284643950864094947008137266382523829432494542456242725454683806604842112610288912564053517536074289274042213809051439637890254043181494467606232705144286949137520957433600205964801022404806147674855870423866061539099985116608939805057237459639337126006055494675973472294120755330955465467440047852096150756991822722270779887554175423488928388236905136419711417130746533462620464309104778631025116630606279982450805129915915098360539280063172673608412210549535447401646742349221107054545845148156223474532299488849659320890851969615005625439141907396255467047715366499229834567723517602731841681285724709499833126402332773294386650551658664209156230164851384000518141000793036534798834374570034671262421401257275473773052886401658811657650485492203101646864302177895259535027656101455701369295042942461324866838470175570152807556776844405761754639993035528586464389417919634338836332606131361068756741849450984516767102731718006631980883733602984729525676808202113453567344139351578295615359675443588530320887227524506760787145628483588959444143957489872896984074548995869171551471944161651945453038429287781167566756489840615802379700760543629690498550191689204050460961360459469404283083181758432928158662780797167507006179767190703597730889188616313461299789223352984114970856794214814598757112320309846694489290027205402076135662976145202946063763575722184293439081156197852106227315330791786507166251556114249774385988672808603134890903052628466401142177564754471485580001854012055672907604619648144626593412267232615475574102142522105018538736436283852813565501553025181484335964596361437113291453177846548296773307604990837635104196884945273126965196403237452717402256381108369998573727475498070967823517632295985068538926243081276137652096607875578028187747566391969734364817803606972749868502630838243930646124687770404311701699881162655736746273047447870266769546874797812783309719508681185878898814382481361857321194873160871070279432902984074347773162030579767906765931069105993360482163643748205853441552675164724404991319239787975373116003085795719169439095735667949305220953837019987119977588720594691634990896013680659653948457636207987517963069440429173456188807456284210473378403585283796338447213060448700069097889766320535444499074265339079758219053083935851422076477653561252401892178301208617490509241324739590528075141049542675688878929797084694956988930422209347221895713154108439165261283345006020291143653635338601670817123449614198665210783020515739872983900721079187445715014554373496625991069427993546829360900116858679021287879758970830057921135086197202163762521170169890719076794298579949653404656894423957824787255507743905809615086162623326430895073625409419912965479207991160217120823601474564963425661743730416574477234023723333525467383189781838949992419814509394535331500058664012674866373261027496241174162380954103285562769636845537193142156746697795690016483432862044018146226944887805889709260914724747772410411829384058177943402269940068356982965756539356928291301545004905540151901546683074527066096199636239991818045874460776233505607762877071611519519625752548079591693571997306018925732690198845067375598586633547996781717166913636388573713248153100899481540979765157266744624861593843332410325370005371834592900923521369327195875987597147477886630845274054976832873587618744317254625104416827575616126217538990336239000029194200496202724709190251509117072646771683235484235012552747922580128289125638812713427511034822062204519852257311208764593786241438961075794447663057338359953828113313341956046158713947522482355019832822163527594577326157962293578692174878726328687842895937541652175661763562568756904728213727762438998230852499757855306374111194004053026325592706122307636985515299610017334021422009309343637140749695704322397554149116236222394015943694216537716743149362598431495421893540941237661735492580088392004880354926625334366983544718704378023078705731532766282240174845610902783458710200093396016339040966487325280040086044786720949107743684722272835293831465792594973027032592747099552994450644833051975087526604902508180344783425301099313700348104399930716239110966015279980212616774211023388807412070220516021681364514935027047625396048710619713139059834824166926791919521428144678663901912649656602001727780054448363416047550505077540998484319906138806433088095490360020239518716239499822679060378940376269448079883090951833304961647507452327394731369543340267585383908721905897447969632373814412123660213723173391417303276901533069291884956985503879524723897685849020062708834948466101522141717916139210778508541686382863763677255063752872086491198138289966845527490249758876683723363612071428548080191469161651298438749979373430358408121578283132323879850751216639990484349531511447618160598821065289395885608939025653637223834587138224206132664682966655789933055168619126483506068376996346311411633882617087075412104972429673996026944403625799184784807204901524399722044360981811615956726197830326985908397084275155421099216087232964941047947975391225026842105005827951133469073832917527338000952418258185159646542709733745721086129062921910050321601529570592471821532704496734847306471884785838859735919717133299073420939251909544953334829892160529684606319226402020171457450074419868598645924721088102760532081088941753557226318459207934251780681815179743513918998487258014840705599291504493111725295894677471003883453848623805338906133788657994597866673230914961473116503502904455610916582991092984955482866695549540164131542398419813165450466937957813195719466954325393783997821348133547967169866794333076818164834372991601616013044745122225428200926245035309638982711405623024529755901838348058689399716776557351877252368262086497480234004858215662691310069014888565642041496729065569478731518070493867703534259201914473834421400162087466960208766233771701402337195640026763945532328255181901223518326949613523077903755802139821661990984927794701776409017296910137180452562910313114281970843950387558530787643365154535223940306563278248000774029592243145136959336316691567308744074204264139358224570301219789132081437548250184425058083536257031415073519256150245227653344319221704966041073724817438980503296607529515415529914816825468928614291463784339768567763850034774217017238980917176618874396563060887941396810099157162926311262186433682810851628251375531671977336247816626555565893883656125273699912823169516952465889663510931197873664747384252625212237700576425378824336990812038893964278646894436361348387124673329748799659684298677859930709262060290454687450144486059423644272027507695573596709881506780205594524100283655999641610908891429775576516733897338340309776206006828071922811903110882654945304118734931220842907003182022061835701992968268440076465756961815912874582316254809412266092338924981537672803789432762740874166909028353306429308429267348500642812758333484773280635970793156148261666812009606450466406871258296944614752462410178313982250268803279285013587678769864498248863687634180969529022217778043119938695019698797862837207120680149720289269084710867781196137851886865771402631596677562994289451131567416936183098625964303174399864159177200911076900310430672942976397816705751305291256734094388442687611035710398419884107998517510591318244323939169595411103951938622395901294151940922891718976826500401933694534996621859844065921670034165151410135385453220946926257656690862485576291658206434876580644330400274823303584997450399996741690170920850914314368005519035527391310118252700129749315919229919081234407494882110284051793319522193321796471339081611342258966507122258488211523335801052986341395461756854530551006009268767410731006206392669679221846169436633088476389405396981150074459263080083934019881007904844679210864960619116473677634673778195512390665621212021840674597822652582383088535835086944577811189949663805189043379692049499629756857910474529054814477508536699407691498767462446173317313400616420157208807626617322322028508839874194825809932447583428582309694369425389463172439311565994429410115681254669174407552930212665692092558974642606758127994347676106142205897068607993410503802855401512133875304836354169861461620785836785870614040920599395816900573320508869786078712169680922121460452177777137641547147290123239144635334713758366879771164968203100381209588179541127731434472478070128155129550264744092812350887381545606382957280126106110762362497404056237511710195171222024815281190498466635569945650192386855798090737876539402367301330590767190825148239603301029181169578010198126721335567461336822252197294372001068650359832884303761638174245942663106060854236437092416298270800182387456225994094951298241575381150819021084309670319491889510605105543503040572531263829542893359053738482382143578094213048873687017542808951284481795767916904549243772433811328394825731395056020250999008891223365572834233214879972558150221710400516334273532049098034596783345870952269601980988229686352076770522995185722632023309496295551183073286929926902744050396088540746800787410602372206955562492899116470081601709043953334261698124404420089749653799559182774376855405473325918097136932678893434663893150859190268570415678036813529507438023482554649542772023245318673028997686199035490185547444976165026439607477439405764095962261789812756459575745846144041409698313681467611405848689514502540964228598000144476902465885592094473545657584804109728308484069481373867830493109154960993161950531237745996293717949713692719307035864317071934374104547059133584473504131459564676737697359108805064064161831125001255535331363049227993176783355062363969641147005447453100370454324223505429199520417155274980062662064987805380173164327236550584622543520693515728254713937820251140786463381054903753352660982832755104149361325123798455281773618305356710154798356711001602687169844077059875412747746063794266260785734483587234872138185633545015195669669895052655218261627033674051348252498086452518406878420405253025255054284376378452243855817151774137984590806421036637408774014365296500746704189150844738107155052920499337896391958446704091732376009395083101998727332148225694799954199011161844533507930496216551805706288866972783958734532251058456010130199524133906141411837349578053641138330107055548072442574408038294902178508617274819035201684503489214389737073207296063822944170303337999701656078942726724018048707342557601712311549893319055728948995868392171436235030006931567936909982064839782715205231296454253925058639696770245714432913078344403646069121091912054497925202219504766488660362319870373207413847768645337674733753004236517462168820448157960941381571295258118199487331872262298795577545398963092720270507326955395563217852523678776983374121567186917801059374276230355027343475524183461025892888176074029301890779007805380837065728050703211360537110044611879718577649767658053090886607459682305110710918699743339503397093088089829160549604305303836122258771373016880751265091748465049510792411752610301103544822399254007633967388089095028628845498162712343239298513698193389970466332140506452186459803694541634169453923623866629279501311679372600478415614195164186597359374096998871446103471839635085008676265132257160012562270869977859394638613297998991414621559879590234250360426742213052541458947280121420786648384920573778801262346286367886821904119779537977389090199952776726116217460828255585394320105385526080145072349899144841305082857582935355812119860247848387727335558306891949001960081141770859398577422108932250291266793764731927066803314426188216437623209876691416558325189142024447022693640760804287796078859670210946873352892559433597656517210212958606460133124082706780906524675776777190957291388488253035258572906757440550561106746488702962089184843927592794727320639387668317868716254100151442286281642771738188513851073410372173735555989281313775655463034197841869333682199512133818686043272777025282268098262365639565604143587541288598670537503848881267785918475840570075677825868870036166054131665604351318593213673198648988601456279367217148251234260645002810629224182722643429155596704890075744929641660271912977256778142683483208819716430783369268270507108259041780882055496658837307943365578803136654986585839984154493797709176269376803266907404883067861351374714861881203619163545098158284904030480084279953407927022887176128607166645555038614423344364098455707327949099784894824911464340182646899308382453467886382948258666771837695383698465133621751689287312735880492839300531944019685866817753365879970594497268438605564460107690888187072386799515162857559150103023599180215322467679771277592164952283096845779468446169416700783816001260190867867314667056435638318614209118570221493139945905540221043697077011506435233250384229474705051446696356717937228090806084115456807529749266185891261772502586868046723609774514020389820036374897339214410847515396956649821860740544375855971111630381828653493496784471185831157702325954484620545190594272324637895380761523431228288876077364835637958009777174787487520489412565751290850930526891468466905390398752809889740492301558071581089197976239342215402672046505898120016444705886024039875390147696491054292443256656396365264426142505662670151823007870908555842176612065785070989428985347185099978292157435984283100130379449442107145148757250542968590058101730251959585290062253728707989766001635468176207158311040612310752574366814230471501517415272359641671925518807210686490936640024315297322508551034490293137281667388930986141884236002405474387045022101979389427135329960961752560499472108617971464916275054320877538415638480333240582479224312060317561533373591406650804978427935417152686628652464724441351223174354308030981270558203950079020133840188656050527765992900850439500536853534686961602272335633829551651330041975666439257298623602484808739403881350670260587465062556720688302137569816905121823217744250194493182076083789248535983225086307924412520061583680117923280762239355982981655566640754411281381167529975194859279295754253765350051876680779695139654863895466353304962502225682580608803259226531377069433350321785939026952969291567032335840766961741929294372742049103657734277780086016006416611443569978824077093743151119225345653365309368613510300913538946613164846395261935543088103602993880069560120522000494173934600510656304995898953715463744690346822562488837969149505523836567893784242369912402835526261086079489714864987356325584800761059612922418143901844555181627203112909492735865126741037891471829661420435697085730538522124884242748895930131270622162035845634567950932400769308813915512437912597930620813531791430225923899385616201165777018541800404616893109785567012348455462656025211933496317744789088799931560176006732410243200250550893604458317391225372912630893757826279238492475591697038011796189472286728043145779387430233486137323537215222723732821954807413062973112260662879458407458351789097608074599688949647372793226460153505071940999809280310867253938832622056239633772169155652465832380641548063699962651856893794521257212309336861627815050545965347419994892451856505789009172776797638954130057137410238635409249760483065858236708529091938454739255696921310868993422155662401916964872732518589816690919274996530271200994658570396037816722043587606328174530200731102621953518949718866786224101110398133945994362081081358321700253795638087852726950136002187141155410439362484347008367206237751440214288377845619805947764862642390796339274550729658527316023618272220165899016517456535061731696565637853424827968496689236136103078886212146643506360555937616222195709780190304792726679651911622818653686792924134783551326328799002712359345717500524738091031768725334782463198672562970304060472039447067319682202689432905952087814931933996788316129090882952177212496391258876292895142154597032620584672596455520282645532681218265686530914502479590261414035380304433781455414320326189190773363305310235705321573137465141569228915782555290269160848749330523389649666822537299881266789000592463912389736000015685378765032246010149733386383473353082607599528704313154565199673994465710379144323158360818967089884794793787500777221732155616619195786919381428481179740374485630699555910667150919397703580085891746276932788806005823934182359475204641069357862754008120388728026066440774770524466008465490001332332039736882752082277483677140446269010365703952641680142303894788718325417956738985151565646712700924851100104792781888954378070624219439541929413314795314509382995262055800431644115122533896234186164565590699157733286110449033868285450011152144624097114801403355958724687933606283688574843132219679393574330473988252306178691867671600093988207747312645451044918171247750031543349413965104916484964170799290671203925653357656525629669335588650248863451902747554139580112438143448867600549389098028508540272645898047213340501844353148433274492523253678723885692508400300120563626039315347142361291022087755819921850094647897472529082075090507307130585352953679437368660674225097424766695332689993290387645406957519318013299690689424106311658631498242233624115212446672420813531878670778645636211383715995382433690770345117417277354966313034113471777037664601920062948975353596405697086189842081486802023433619677234009209733567993948285546495282963904592292083375548105198131204758090487497418546237355583832825005031490016544162738862106896140407053202509491628362169804763271863809500942219406203079448368669290799554079590195877560687202920504537235618774946120395612356924633691672443439177717560502624230122148234619564014227316646825268657519593316683167342341886823096506850222079249663288881656050868116180736781227922025228863780782825035257805569639785311788009095300161702301847267009066179738282583316377368334844872328859155574556192820284951501696829052547630319435490955187783718744075731781022064727774394805235119942192587579000761852976202251349780760126031789507496190578155924113934472781494292483150383302546107841580889358301456216056494997502133586332513241485944177643242281305410706173680516082931885365224177574943897040710902205529770346983970707021489438234193815826882889300120165069646999240731145746523687871193572120193171700429557198269319262757695121786285994697308984598409057129660843317442973351794666787580614179568138810328774883491636135432998163014564933047693487412941530193948395808698485056257615903793113395854348112709066605092470631343733807670076349451439140771967866098354514762257064439746934656331624448801064151583595161006605435605282926591607562301093362411990889816349955052353529422176325882316148710261028958990542183860266892539828079830417577784747611903699033522004584132986934903390818153490866083600347955157509927677214835142784855428288856524481243636377525895248796930117270130975178985724617957862801331469739275462542236346159688641774029601014934941810699485651535987673610754568678436433183782324622005858668653097419058497260455882769112292179660931977161836690188131786414460295992711006231716950225867140749431644248311282437062824485053728032141757643033438169050825428837853895512714629098767102502572310050150420088633063468701930473646689225507672247149184082084049166770727501728132273017516754403172683476136188387073899181715178051407820994847920240730834522378065109208070880951067416432018045909207636009902639907208655222651955128360761093762868809518760029937008261730676755807893536861461333320423896150309379138262100275124792664068919680517753852164900578385211506217907352628372703446437777578766178457119792996887509482721743408324826444244284692639183694567004288211443132639473368386537464227859454722434793258539663173403454365201705412000246819987857989325371333751943757953136550906538975824836788629589666059349737943831341184264310372932374263579378831676554673353980316213107139616841968415623485881046674724727502302396836332085103733471291552085088356772391273248982752137285459319474767708773454637210586835167384122313883774723729346496503979220645498569892969723923220178334748864255449181638532241654988176812426612549806183322272904965602762752981201006852390231360436096122632491491075773051987642738920043193190856888006703744729352634519703315997999990625040781092134466052752278548351450914068672465231798534611189190735487617104199604927884023834166497103723520203349498787264087569725402513285468478385211634403363999440366967145543405757383641688248560696500142109519647499027625714671027832968126289868036248408985734045665940609001173905461423223208318277844258975236985960148885423548411290256240181868843753229053610807524696861594828065222078059413895168249977492145354927544225120751406872984082972384376048436564450950148364799064839657686733315905517015780871007522461699360253373736338120553517975563600942674415472940115965245490382826252023246787358258240469795658911868849936795918852374387038937403237967143057234639340426427544792204708048560680611153944338904375535105222076473296181873622570888942074382149305129907917725837981202773097097856076416587016295308119852611242857670011845277469087763794935142700454641465133488550061475478780966995952156665913981645439249192023726227877647406085143464802773367222324178438800982782231164767889714381831358722036690720394565021553620206536977232500595750235508417790976077436969841677895902313843695723809095767861278904914568044133783914757353789514261927097595947777570297020802009906797671994034660471992235922896461608442154440600371205869258241849008130595760026692518244527928984908545871446290015662767899157684163142401386795985878246587891047469955435919553330861097485794827319164243195698626029566297154066573385172131190453866427836390024483262744312125882317186455396506047475718876379992269990621969223529819363540790327123466720888049319701036678880477447350675653240914935818994301336314256295399895184498485079300892875068911856381180999592465158891162668946315758339021790135965548320877566207241324491474104316406565537170526319715944700013704096823925504181735135446640411697364454486854684209712902020359437687571766077731055099883865816002928502618109910998985175062632050255675719559431609171452627565048444462506007707026502787167438859674294910731233449909586714778001761895565034364182781027070852654764042508585761623655091208884055120128055720586974332583911748491595461022119793693472792326455210055393892376078503983364206764181001151678126924916972853639768370522082387360583315548051517741795704623378188018247011762964420205219219113466320197298440650817874419125425217341178500235025690795070627728855621068875854598276684261021277281807460925123904748918236032417198053537441714676567187685864014742668319544446817194113223078485156230332681871459547665711103949142175166864470788273242722938219230153201519384248930101078148403899110104283569395350192668853605790471430566305833056172982962474271205237125151375941338862757496861683970219433638063524517624136753742514562845111407707091342889061974134262240889656256608852383714618384543803558796552132807862334373496271104682976907798169720062755180822480322557580240252331584855848283409798261207920523535335965477421924932059506404005088908689110266370030315748559878711213803551908213259193727446100612786417740129681431505395351145966391254150397902864800463226335342009962026601862574740354577110124369708215109788134142377160595760831906825162035533464848703035970097949717243095807463547436847546938640298961863155913260270637043577768091107810182342243814716205579135427855609252265213643015926580209246143832720712892004009120661991936695155646492547269319724195624983710827507844941960097076868150857042116712215308087742244267703730502309762647714203300241357329113442347117827306396664383830583846727610534119256064867599066091577410300497888649347294162883431819531420401367045533350138870746725619098591721872159688049968526540695425432763642410878331619842907781564764366822143104484721899619386973669873349683814647374118653303088449209181758350120555554762063592235262289494661689403198413033766693527872694965395811718976492771143724407658830643141399908452311588594592808182967061107515157396741094002149257686881158952923737126670415928428157336530692282190267528647469095265076821945277889655998292434029335924631006018681695911357488467185086565819771660131786410827703354186125599534618189868338161013758428317894475068194859835252323539549735431005200847534092478216598421695224881227504274494648078001346780891703280226909337089337406533489596745619257896284910508584520437388292330108986487842591174223901981195397273991332319405627711533217704468689674758656055327950947489941951104264789050646239756799163844503064181712922385675329033766802014259268067510253628386636363626347685633525153832092216659890091756757218037673851161521485558822121951036151656985815398738764654499632164942909961823056699196159112744834281098760226085470784103585647878591796454014190639227652423745459603037167513148839805926792178947380212911454312225091021754724022363820626241244431213896547613468356433453392065626297169106832945451500784204359403824932578130948815964545363064521994865185800977176628441985623460611316965518223231632807753745157167212041106556241559684609203414554063905515892388066726855805702713932299755834131498054989914659332067314232705068084399123834601626414107187309578950562436526499513472251735368975383456069652404084159622731543650670423948213928808778125009147931202986833369646261199553178155801762494437051892264023743198211430794970238071346447180842651830684099441842499777556667354626571630111239362715627699157255082962923647354485293432706835687552779556469124378779092082262487558392110387843472887511824635095743357451800152210582094689455139760559590639023655700847656020084211767002346802088365449484881557146337140686222771609429895586547144378624602765018821620637178098612201602361074241749761296278902390571983031740310036088246179501107559235254728420259759596435320930410158741055169667306854509776930149135506397908849543818601363281402972994622745190777032187441069889803363192800491264531336289960282500726557887537841771014551342289998753741322415827971053990405900185382961196612714223653378077291196844589369010793050560129599913394189050176382926322936436321313894014441872588268169822091570829976710849555848757365056168450137446329862644803129925015319661739996881380292601266705816063364565579269571216911326345859513659874093824929716743777487757830106360354431849207839425223833296787710953039744715148896259645902134178994345300120649080359108198383411945087340003946387429289553834629495697203472670560538050808507474227456521917561260204510104533255583300549687791012202073476329725496825384408018269869123599719003411098749727504084867508717136813663170164856300924042707184490735670775496805031065709134294410590626244882938590293469842150574725476779206338814053173987111981762514243815326210007335784514097079340801805174067571281333920625098146681298938898083525974513478975563162526682392553216875979518782798044557704200188097949275233226817367117297877131265517168986093463911690661758889096776875154274212952981130652624981022567370613516575358104191617804098801163949369100597955389737411403414762872466112520052914520621505199395904423848141243980336415823466471669229808533222760458163543847890025202116485816412243205174787657934238252672869390430137386554968024108295268686766580562509974709098552277031571489605351804451132923918538659718488329873398190068525050299711119583172062958427592363547930692440215865607127219701725564639535935058601952954397117294419404349579173991714443206394088247543024244417866281767223658931946899236796074777259285680111813925246996011229289241925480747338810183742677722558672778224335102855429644372271078096073556273042959760947589414404883128018466852497289081659940960212505263104295232953016646290763327854463341680025791469435984890619971684871598052079537240838266844337194135459047892098662489997980191741169290601031576621420188385210312766497437915811107995997365820259694869389850297998493405027201698522460250293312623145487795101118921377491200809999902229419171398619462021490935787648579546208601781432337719348804275683054589656148960367337248814556478342693988413469734496944517817881743649905623865610464139387727255108523758129671898886789807525890897355608299290163687255011951490103531108348662294489230855475558946567930633398490907358907473658592892213677136121022380488410850898201270122076965664153950397440958523333064706452977466970462779471167002415817093590165442577459944868210587273203127820379000921146019274741956758654091032862408007805535980164882465382976818989862735783317866550627953442094402072433170769655695535161161177830333796482903394416395363342731497466428609357140172034283660208081898695264578181869644711667453473043591038519292414059890551869091914760708194875437893736856823481529749330788190160064330212223295961219652575254399813455040481305405463959986366532624326235881881043656958879154000542012349935976756589945236442482277140062756005118525738872396230272321276225515617966417725961669295850348322754520858807405551877764271078902878831405693804244511220379209369213983534752333980235034856568649965048690753518487120824505044251564253289935199852001363461817464716004933168835960457801342773124673471736904834475355020057952985182114367046501887094229228500383010812699147735888227952130173467653353184139226781472039833828086112747799860061557497268255141069058897425842365730065601163914899506445608051886303224178480529782319796630825943146974697066684984907587771165573945487412893634205331401109980958395702658315699808753102153355489086409091245781379630696495432825493818197636785090175567592582101169642019886362681911232009510226452168489835486917492883805261121803842673130762586777111980265145653020049840792323473784602683004626275312775209979794314038937100537113668458686326690764780079861259532153429190247232365258161437844427598009937551570866486736465767834988432701914607736104959079762571549086681627020032046512491855286339913389341874005264066406151687684689562802626073606404316202985997210668913813785644795784823907141889797638508141234762440222622472766367703620741870994899237152955787510908218130308348568480377721266361606692494717907362295802334438395371054964198496738692557272845252779085574071333999033421774096695440658386588921093754020592042099422363093470690881879465215616632013944190106822659273072879829825214902557119437972265588569876165306012936975842242031005082727066438263173590152362167559791829383578914676349465188035654629512152844066624652517945865950893863251146899929898450147532645181929246777417923565219540552100368783242428757399095054967755661030474603437181342249780472464843975592831425038453865316139121628166939551295953672734411054727196890917113115292558830901179095051021187010875836382986557488520010585933361359259964654740269113893589037824855605535605771743964695930636683051024350687940204359583061688576381297873470246395735476481761441950554343786432419506841791156757520302420718122093013862670946530403218254144026160061521208610006202356680023988562605338895978015226984662353906252368172931716521515203300578977425840253802942937210597498053271358770447144702231715695610691133890169793591638526405239964697867789478871924020262146003971900141085908579329664727370247125908308903938943701579054292034491774265850646366637697671924606533702138847961970826193973546538815287916062689463174553096022446371962513579135208317114849870312174491120426523700980337934433237328235314930730956323874395378843104510313742407515358324814962313492460655541614906362171974250213234432755120807979827929848535124215902125770053436237497504600870989616343927985449921709630369607864810679226995045901888387777245805630924194721485238650592838920764141266249035555762910122994384068028205084919910229382600840746712930331643594559158248597677552861295559900549848255315393433268870131506497684438524289473107588208199104343275607304287336076366033151874277455486814554453478930701769556343412528413032775685929505217874803406760703101559899335546838293629037060234326549521550516250009603120279367555575455969018481676728108771553966888802617890220422901226450440171312411899320370244224350482315744352046435932164249146704861369341620659808928166282885650627303240284375748815981691401795858833737149905444138126882704959361200849907417248036072665606510869515742821033660391992943523076792380015300807378330856868963466073178186314016870497900744737854590352239337683277652280470705272097129824551778350355252114855646992374624067694177331798162791247995199248302272174249104935471629732260464377164698173436000114402810764697331492284167814910546245548257029074088097985565987873394516527160614750349271407706495473904350782050938821312921205066938177560346254646477123483393971353553306128426611942521372852990421673891102277609564897480628466698072579266035385717774524408343830332116553942691700688185016861609339390984380351742437911863256192520071754217325885898138802629785281043358818224247154080021671817295739002287953394021283348282607617845294588403434492801429728102405554732614244244765288895223387953113821539380125999524645065575227954444717023794568495469818265883061855580326961862342381403534800861292040658453583788962394362273709101134907354894771662050300208751066204167981542137836570862313542953973852012555983293240528463957746186181938262537115634201127101837054128110129211764320631663560896841389191685580737603715694447538706336020202358366423493520067590925056914879535587681200967163791237370209734803805592159102472737160667060808498152693445276054841900336082892828262059804800142482071916558979890352931889259519532566161241901597571041259327998215322315191650833943806919831194906354919737772707977623678538758813186928759718273044896020625289190055907326400650978250928101277051404643125117672890257601385502815974532442227071922824876970078245651797973832280159334125680236499993945809522978841171102879266102685435640224419126117465716769480305924360864615672894928389735986311867113117701126187567210928750904339272820822406253110951038780367934844167900535369180942807341997029359419671989409260518544110723100718808952483386140173520791743607947686429004523808676120068070246056739468507526714697414470457130527297372790822784107988919667362112577013285073582055531880228963835825447034012973988400796085056894146742050925194580707267912565728795634306872129699718940394735151085249590623758081789520281609418278840431233415719895218600104992182308497917432668274357692563754824557652011144309460258850268635338995380348684032879376331183019770245097481134751033721501617349866451359111294531939736434031992872569365808627802748571010095076660885644427182248154695095092786254702897598416256818184985796380803558638954267902705517544191584874892465191779798766796824785544262506118945550585583583205814187524641709875790630545866391018798240201762765698348995238163186600518994876254831772556049713601640565227955225241165700315439962234645689766540596754377518123236717194719880998631756716600754919819777365474197531922596976571130322353659668989232932508566638743266881941056174556194310158423456159018333965997622645054474584289256275315016853974407110681014324807261044827532115519025893107822574329254861370775429462230262363504729218304674549658023713772023791756167408808835853067980125341758739458773303374177174998528489522183206875390571292811783190748533690702961446075917889929660460759057964107124132229281771292798851808856795061181534093792851143299700050542477505317362353185165876490965846375681382392332830903262604682163966811364882686124751465481789148281253725498867443030620017377523696614653462359390878975792869723773287119098079930502223713825430801591726632160256720605716151047296158982548469024824550538273979386651581644328722143579019265742685874704314924579862360555069345075587473281301806991524631814726412318929026743681187366270270442502276834924434280655866283825778020511301921479294352893186797392027201336544088195505562584370684608162922258864676231172932162166365814173808593292548661033241873029039187361497018095851154585992628236207871915502803309611358832905778398454580598175303044783464141300836304888656325904545806730602202733526879734281715765445409515662016145305179505051463636324684445931211155112826489313253616690534010508907771133318253136706317912888049017083715151204144970463719208826108804348339005071191507550311033101248388516820217546534848279277214663259553300786165417320350354350729802826458364293040108801174567519133991830674521630908407185604271735282763183062737158608594785166260806139885963041450919407794107930283915023565043810590198575490600522465756780262403116341013223205660661073486475354468751721378517249710933445987293716307248903697653011251364499038592168034519464750500780573103258870700570865916802592630458319552450496607864282674592336616144835935930129822007625633739141227807249278239175609991431650451624042836466472095682856731163368778440374618219769597228325957325728487503085225280497606463848415331310920672525955458641663792216581924630122341144108552314172559507035700881855447775926944365703796697360534562906365517509100284184244917357008807860831348079227186699734244390295305562145650416071958093521625105057581416069261667179784447126572269022028816324223519799699900225513181259458431889267376004086842177503887828068009956751302826404951632034850992030731544801318938579527988775507219760498279996226741921493831509439555643044065315734185371390112948646161627597549216507364000474394308617612637298951777567304280780000204226439135608077616980710417809519177556397772963673137474408643520614105750535207173012570107867912503170928578633884852516683079505542070368030072177449801360662758965811231439628085565058027579800582752851742716630572075816742077855786721790290929689116859745066626060169512545222597774046628731232894074030787175539280269824194161910995215411123320658107363563988989078161357376631698182646278514411362088472456843418923100304599868138673845677714159919505483004195048720942066515037206478328622339900221875737922551650439132494987724020363327950608487588457308152549077755615823116052437512694254532280486015811453042041061272063846395617077650754912334575030561193260498895212932153524523281143173318257711831806709244285116271606899366966560560245229945421559271313824322291514073764617150199536062694340852003285237199278606550585815121126779742271192817991320015544886823474016113259594187288002995860143650126825699241086427362938274656166571531593051570718247978346042081959712001622821392531169212253432038276340917011495046565503366585455666338580016026266845928381984807640344120093839285661650688566596352164620372778537803230401353857347608088473326987878050826520127489011789191802285294908561529021314667312504542705955557414195816902384948316492226376647917288277651131795779564924981969078495408944231653128852228706599938372177530427106095210810100734289906035559417654240110114469101910929366543710638486704819921672381521296649293661161283470423315360290528526840058916078329863171571215464407937348194077912365186376178655571839311896269441134325557978236832684648796508171075815597858095795422468581334096597048521446834274756001914716651166189468177033598511196757789175490743630887958565822445150989536352714246959793088019652534810627070910416450832145337901294958937488793760091725577586577969982371652166322114346690587012000833224775601468141765236178763513252420448311687665957268040993112628459274819487072254971135935996637826463914827656166317086214509733046100362533775359319686177648006070198207302630793446509398586693103215354557525166761539252189895942778274534155865596350778963468341062298447275477203516986904730311118091941131377746989445864580846167877680512706896897738641491723122467009613344528450215915788657664043471867958137053171280279760691985820752058899849590350542319674371657901574984864436723930287559290768525827815743230959609973086640219212765376191402260920897064570645973791302805431261660566997436807130985243660755766652649363703583161252821026704244715229352914773434987175999329356649952231255919521055435517180753105189555532188488490528167749277329418729224989135555824122562579464756427937179512265599473079351683572176285030625278920366197687031327810774664480310282781212763263134345889216817210930886234604024970988185925434238150671168711700011354635962064328210887512181600398154659700132050397001666048758722911732389259216330724346845000765180834631278927446052608395041276757951571187762373455116126445726319430106780383298986809564936698117866064965449114654781578402636445030233262369339515998057427945716021720633583531639429410789966658440129670508343294596965394124180196694419095515894442651779405467672817504244468834067908630223061165181774175706585826960183129072174144901945168892397710626191419440530447661223463050680879034724832142653604702561555794164237013086147492017591342433823575413537948031185059512090078655193670720589308053914405747159835148272186512672538982182296355206306104527605116713297477558512328899689360385153446091347300636550805616279152325007417744194658594588331608880403092345344632250292791276789086225814540187540928262387145347745901285394488215663884149262856200431823402042279361008709420536416681383176342740548528093200560667682896782932567235731874963291745754133145695647191660494240847316792207912889652697811387737755622438894925487860718057040820434943831751382551378869257876969329947619373335102859449794032109377098650842746069874102919149105305186304490258628822274883554921552207743164281161414766002957814860379191270179126579364025524598444891702475526311947086028650144696448359609746704108188980695939774120864679567594546679482685045549997280869807281870514283681594516664463202964361562023804823897995474003699129802376038025253340302889494952600546753621943691779483718186948642951501070432619252763805191850601421794183776844783675591569798085420673283580339220054364904433644503541305727815573613207022547916074926085152738609435319254322955614371811005640275593530712429954964754455236625487046653135228789714119555915249672550603429755302534966193011720835270089340200810938079927757989011558861605057580721571123337800711609813243139150346388818791947804911214081586220003042582373247760412555305335555907572776275190226756178918962789551162632818190320249688973279432996731586876083834820003167406680688703846584338454051428429454317433715941255489587532976653554824850110396566341205865283050715096738560673330086039896968595560469844555191968625360837686169679535582269517774400870775324783752335961556068616799583526829428957446502175911117646634685434377722323881025346452181331238798784268858107373267954153680201893454736864118947386848030877162519425445972423986073727695900999105181070214353583901965360848507521833060842341543920462863207275563662954884940771981798742921207233813317506015661747176319367650956850397767659006491137123497530223325545440758650675681797603851666610280335569938466770188149117520379953442203733133479400062761940877412587415935473284146937128215444717538303574818292453532804326043951951288643057896695179521761534419055334599501546666659961739119606794108545445957067582659583032094224064874112765034729173719169106339622935458180352517719754944324391134397512729520618462634082412089108366999145933241694633412012905767922778105301975751417884164513931524384066976213542388555751113869589834933145458350028803440167632269699823340715391354430386361077158908383085227086726758183673033909521283981435346652986064853201081963822056209366937574419825704680972051932948508681751839064189688831895869534288277699844204719798583093219778142257052566958205157246238819264763677555523051206692115248686187571022947860525677430002502890894785947875685825867427526867106588810618579175969122174939783614988598133267109164122387201890126912401170709771445331001515342010120837878931748737459833425500696487632394562874652194149352140748433506052691157328392322520836971853651993440158208926167038189891061458805119963757734123001366509890241205868485992054835086388507926901533715380756856399095146742066024113505928981287123480768739665141348999174097938848151526037359135665952841401069918089582905659541388539261413554006371935967305347887177871728785281005815978993559965330659999437176113723171853542113040008757090866534518162961521977372460834504287369037282258078959308737330532855266365175166567743219518285911936841069949828425617434418502315445182888132866410394102351926191741456979787346686562354452583672556067515852084455836825151501057054915688464548731537833173089122928792388217464429982894780884843372645247778900038216593695980489335615957143432510545228532504585242264590518306247935024188771788558177120036148045206716055004035768996888138850936383060915307285811870054654186617803869922652788105515215429177414397886798246855682047058416853656032191462504478557354714480796867420507170858988914577158535137673244692090700972592900639721027591192560516698780655804861496968497248509789640152228243947659062824628009793815248440442607021137284714027304477364578682962476383455946414552487369601061502227963319487153103273993232895313542005304481682002649343253529272421818306371000818184589004695176449586649547967713011380585381441687810437004438550610855155345442613696840053484054261114392054515318013973474446371773388150376115470244727960424516696144040838903651548160734213545633726510462584440071724084707298106697589630392867057598335947722186979519885012215967628967803029039156543341094745275385444760110504584518062019383414284171922965354125829979953381674400775492375242836114430150112181264445781496803607634110124645042487981288156224257176416207200297910386850648602853537191619328794551376095462057153475069439211242289941836947372551784868644220814183091883188354407079896788481857402571047817554378325495707441318974780023597604858263736142544750592536882656242107207577599226683416487326704106468109746163117299598592686026520530096994632013785019273425692617017590902113162881106164783704863625282362707210894868632501780476488463204497271385013385526355234681303643417319340388279722567716524140817544305134681427144139935334622620910278236491735148048256248194281352832787668661437836670244019371468926499785558490897056660779000756640135724368073350874655322489661530177339708705642097700934149278820771305859535792262048675065869818392405749421413145125291937919821062721124483992302314951655786663080288357595588731442725686590710637092772412043517526561222314364251620294706779727295971133540029650891281864883519819863127203785507835573050497660090670366273703854067393268437680817476079675910709055101673950676307060500059820616477025777450606393049009837215438255668161187939314468974544107068437556347319929502562700440613176179506253906399418506531579051185863347594663255032331205909021111685263314308161172992723684814084385361014719343404758339787675408829695630679353673548448931930331424273788923232450789217788983210832387393680870244482000472635475759688802292295083155113160131447140966574847545847003771773982443239244502081804672912485333944342547474453478932738033143248096867640957329484258759210540860386089971332686972762835784943665398282722226874164960635504729871407698179062529322567569872014016480001238300934846287023606288443255837483275123801163875691702847284795827777804625072533899276055256829065503563550220857582788052979126824584102716881270998673687834454722674240378803942789941408025037844793221332448784846403616507562009494023946289685008923227964991534618083585569714795502628122161325650665927644105061949487880670632470675168453929030463127784140529996543226628447503223186472386997724491511688142161064926687983118205189108773467264914209432044277195979300742996606086333460396418773705766727779806737901986314394373970028872384391271725087469053957557782459553014217352741794147491637019807310192285888137197087840974147441076235853988435106890733977422648841352234907397696323775030718754156939654286243827254558692755987508188626361398419398975961592151315203270213980956065248441254693599433352506402408070033675670871014366851121475425026141758539844487892556072552562099172521078433611896204335233187997887637961208888725327972167191627743555325583148800248493451734785841142637345605274427452120609298350587810938551081962520825001515321151802749106273178794479827069221927109665714418197311523495300171312973682953292445517254144973401738255541618398856164524025814378624570444082753404055263169204312776358146534268764447208660813280890274911680629041763312327925838343389857623486537219936655392168938358421496317598444308093861352429615890942497553207976994155874386499940981079179552810691264802129480498038842855006999002974018227427896373009161745449975460978833580252881861907722369631669106453768387095509434012471612555177930584185732914007435321717504116209522925002834672073729275400986054177502755843248822876270994503168768863304750368049707832697918569937977406031245322471021529553495613657208927869754394825443700093042162742872002831890776712635747205418747310294905275751221319445674707794707318936874271986748418102957990027151749068420468661214349299175669761134858874468720588638392428694156548180621810880129199198189467102075263249341668411809718708908843447779955020280927303702429069827261030703432020473806672635775485881314930666996743690363252615418825291865747939183860297709979301516542730679006506995269136873338946183385593788719873756884244363577458847379938997469239872423627883466381321430464720490390428248957038075431804568710545240015028403160570690032098902546602545998754982602205570780371004721049669181123860399751492213025998823772385753273177599222734355007799841739539688540337226922155702619269981706323756259185608611083404086699757542739050877615852652984686492654795075197208990075450673535313744458213872815927769957701772010437571480255432825587012000976445251687815721555609104272757564857277943555381822650366921618761203095184103950493542838617369063345606091900553581402205890486152845542771214515844339300648942443083767406080836877688565443125651432144320448362900350371751322247501057421629791349173093316841034852225237019502472155330420224738595537268650391913617568581238060849943818202167701862752359426811469877803111293622025373570148347132111824263783082950379356582886629792217089488310540653126775071751901976652243629458661659712710977811887548136902969803892105817012244837382597658552760453911303431099244612938313552503271139956464277251697202671891228220479902620762990949226520222580793082430888161507042608815928229478940980401730945430718846060520928352738509897379188144970837680057775208636474466830894713068678092656659775958444515196344741517506854945468777365435244982903222737523971858597945128037400238619974559594069582021537639946240838861855915561113757290733551115250048164805918896002440597342315084170184336862073283307258262681360487878385431748511821260457481472336639874496010224897386083168777222332123989699738815834819216504660972245390813668952011870483786878915150741530476375514485996607644193858174276925976701282753524367132033520665001060716053820507414339809302110546335371531599818907055286469496150150087742537580319910370390715070662202872040629761554927322550304761054825362695870334310493417884310053449944917292845285449961326343523846403774041686693765236660693191902168969491968277512680377119379075073350203296450847547226705251259252505759648413923005481922439060306765788781444949796066596537684009307262311091955563913808323875976011066972735420487072112265249191044679360797297311436132880950582242525576048979573898568543060874964433317357913077008603576518737596240939576305287807261773175528787178945774326589785901311100633272460387854464538909576445602675910011833983703155821669552121583156887506465226349476016153210691420339309776242403450722228072488234667986349725513192371899372638225183871429973884744679083583625858568355885565975912606726505831374955448318831770726516519653765161559483512062567409331599808351434326878371983396391750048757763383911684127147430399298657775996483910429524627769404755233367279124501141582221981666237464189051039861642921430313665966386394186838062752941522621374155508342379953579183130858421210601405411449006297794529024585257545610919138992602148844399842448626079037321031987849081401894993152250415363254130622003050715351769604128796847765338707405934759756309437572228646512731018632695145937282083493723208235485870744979769148805947598829721777016774602570258683446821959427996178915093570818164936771458114076393169276034784698939248876780469518345607931599742222916511527679487258547405701434199376320340219402996626460158033686922475249221782888654589208131663428967889847934389679018670293141649245691935203136601254496064472372865164454614941463089077930442967840856404288588059566848618623799793327064708936874840267762491683350801371863129810780115511874436061875742615157934115967263635413398383276870313385217408743503261558031310759225761728295161258912338588395923700305666971069766606763775615033482905984914568389961206074794048933558451312954164713877041828973894529108225995645993801104852492677078922614743737083939266779924422098231664107666700069816730469913043485423260392888725746900948147309825343134392052899985277093691279317766446696219788590547147428401538102765536592711342098291711728418743265846105936724857982127240724008107336693669702254562857035859609157170671744292176490206127524653809998300979006526429969859794485050367541990684573731683852442446079148795314081854924389187047513831399448033808318562380580243706814678096112586626992039466212666595754251285172482405722623504593701834537154881167034001793251796752874351864960557392375314929281171468889773557036676203199115178049343886676219320934268193923139424915376530148015854535766850905130870015495489738837883222033455565804678032992734602194474254081928974539475861184472847911771456213966359983269237016555623422544297990491293865186017303857403277798784245199624688257747758665201161792388282489105284827727823926098204423380864940171804900008335641799289448329076406374594480112642222127238595748200101977590932261474601390301211990930807734220328812945506565404017732305699048622409797944374907470747629304086302003233760865018800713315005955662061424794222302780936506672381415282615369094000734288780921803254765665102921874208952632549078503645486309357460558352255572323129208705525222426047403163745607193544429235515700813869555382508067809448240462758542230587183716059121797252141202425398172536354153833519718751575237993110515003809319031152020694879522775341896525402178161724063376774620544441207422685727590030445230283041617925182315568167432902137863020713090650268394107992535554459209151383258782143390022492561285370369141117090952207432514037502611808653172959458862566977862510461918379862248632813760601018596282661451651361865826349596162146546569511547587512157952038634496903893526550990394640615476704266458428894246624320728436295064381018814276574516775910068885905429437275030053881428747198265207526600184139701841549748723353032462703277614387886062443942988644441723185590802290324359738414293985158990105754183737273898380384299221422327682397772086617739842266012048993060871430811915062615674350014280983707097722243064004947083956657775899713562463058190307161511499746461790571037400627561136615692395447297047599084330832618135517884464675237107778772582896050043256134212199257869732895789761623029068157891931370294297499937826271262502543401967566122024940183733749493265273612734391753772343541682383053566845361056089908345455079055158961001639297070768118775289492334979087214480224685148720859964800380565758687327521266473614328094492800992411983031356058705706936635516897077789455676164566286964817920512149065453342945471386118723762328050313657817062128193222133901812286356050286131133791550564400316960482829881238517429314809420501857673023617078033872898789426754979113976917043937836642760985739471291858341317424816263381662141359261012443180039677929264484959649639254595411349422161477536498625167331576878912457324151702846475030976824642969162642697172358345377826659779583386886891213660855777360886345567046730470936202274461393097510920191873182507936333586709584166057736608481964011130289738504314151786107812426311654035689694430584670321179818398488323242244229644281572150788816792871196888497840134994466244449396149128802444364442897488242610391512636429792064285501071779717382606681364006043091155723157280197248424642515656303618228833124016058060724072510807300083648156507053623180817829883320155432355332570045100229731232825057589806677161934324454385654101989649266560885361303125651162671512469259147523371952551368117221578404285028527231341229071282521198412214301966292521084735172223302336384511403864699650765885407424461177007135822051734515841140535846601918686940697656972720797276454886240649729994029455985929389877019280795560100073184379792106105355642509510441806786872518717333228244368706546883381043646330409307178806509837531477517654583355563069817563432106602268906261901417946733748801518410909423212407695071472558496764995359332127881482949256606165565037820737235144735995430637924090893705734350545341815618528823675965402131815980725970991108987118974125160649721418435959995826704178850035704866023271184354441395399321629434493607161571807478491468140517586293481630576804038624010638300374500823117174951260838226937903114192676859731773257643705814930341083277953556863600059276457459260839876291366508074385080650266253574912761030395711146667340571870889314371576272759036596304844106387621602513188503302043341057668155180490994065090398974763265576310053019584450834748301795144689052849131173953591170956864249460662364082980703148104239481785329885545538482094998907050332626227359876853433666358081612234937073413454905369001319258295702738279700375328991837576018897907991242191198709321179052461374077141593230357052937440670221212303972544603978726862935210594434964278772341370462058750915830491440779262429000190556640401473125246720197542482925191722448472045303097273055502134024406480986758639553016199762732717986517073290772066408533392925190289665701194695759225060900529426771059669471724450637749266080452904941357632197002088177952273961254061497184560906946713696864207434681839552139145133575631052946963941771300343564588405616479761745830091597420448242217521302505047922305910502605832630538358429223984386713627468871858270127223663653226437686269885153324389540190619886265790237065773076339327499974955060807914040066094365965975609914416998908625032352974528451430763763591452317290738036196089401202947621321189748313890371381552924486116077555453604142852222203892276739876490659442456298353581747682593461820932519805819443226370025887448752275204046534480307973979642208709605577923170637110262247273998249709436739064849385905669400443141877396504992255471959673692201080753666374305293769910675027751961554576648310625046134606121202545300479156452847850326511728852642611299930542384033891349161745111851959442917914777209393088797818356161900443398314414751189815375122169509596758989940956782194277918987158344955938745614951267082750545075561442997902708638652681672957592530538906881995821870527555596597077404598740049021975845305252110155886749750664467891830763971768664415477896131692104972338257876740913311960716379334528127127648988817236351546369244020805556660621981357059273731734111692484650522875868761003051007676179315914162424940696626161277943638019183810613658651501195481482801510773091055356775760320258839763861232584515694220011393784037062653539704743450661945722181600547561909803215476242429189878008809803378959032109958931609253047685064874107395230567076311923652332666299801266371908278598454166616764832866720173647725210025614758466039587474378908980004709658288461671526455029359226572541544257588188379063657793852970194985311054843891939041448660747397344023010780995116884783337169800015800717240818650165536324533629043558950291618612966197478769199163353303273366762080026058370906749081664837736390327263430355913590411341281484561339321658237967819750201776525046864408257271180355245887950287070812129552193629395485934169423789765250938467780728114310673616127757544708577819508715522466005920710492108746750677725994227872504362257547588065899264763308417278537781000076940493340551513919182956088950201495287572985622094500905341557754737826875230098169119437331332542350096852160438551083680146913599873247447620059369409975078608528665946323118069788044392398305163010606002981423432220779898735504344838287494350361229367199123171142760885456608319967394219344703349511444489548378567948055798257484554356636763163382504831673221303223629455532413409518288967143078882369029914228333202419023391593490181936035329726368487243216392929487978230001317355349555781581635775826215197750836322679726489209819210449867327481379549454371841317814874571152499063611595666376970732607362638503324021372752626305615177560955741573419549031650013576052689191848644377224439650562065701256500389717577978437675027073847560107091643989721886858334736907337491533125560270257499721495259775402132135524431988985491621745578182682064341306122969804744081937436295537879036092003373339736539361177433353421499949647852649186878723740257071135900059059402871439029305054009471966954457110020567636984392604313625942250549968597972307515059393601415237012816891762618431850173935871464817219217944832952714314257004946529922774967569353973867936472225514222747056562345437722184517439187542635482836178191999494317337526770025095234783133464129392148054539282005477587900725812660881111165245195999441938321610534729207597204395243090133357703195623245711315018937341281805166543599336623969537633342169648030858860907708309764233040338896333279389648331043347263343092219121365167566448063889161897412538975155313733880088733698189291774350159912154318323684923204912088041824778394743906726604628893497092886921041337517398733813872623305433066776006205586271987512570777194158295005529169635058714578442057602546413140640016596110327484258700203773204859916198045783549811453993770113518087103765871359276558408946030847726452667133656692757997661602512745803018424351011424598735571021868792535944859631204014969218736776950380015474922811758448082198717037624245167232257200022114509293375113274643629342241160673544657938931965670004646873646830863063726934564949833873365771082601141046589340335082047045738493199231201895613874435058145528639581032011619190822988084648117945130491826870613562171041840271139555346196502579893946926004069434484974006132470230859353345992118653159835208814992039754122916397526132007674113269855950702035206000471708992294423206855387506254080554012501600663778152474866585251834879321013644696536060007962681611496058481417465192531521902897132435576809829356037179085821722207681959004118242434893215940592262080036142693453796016412767238007915500951297287584750691742902332256301062730166877318596634000670974892492675796236175994948562037333349575932351737826842963454587066320394801245097790308525483632043482913934632600811051127307183119015859761864402678172716548068171812027553246648253527567818375916458892042122098088833037665770278432796334383922596145411776174146839756295688936705122040289462482421182655196698860394678032667267317126666557528779153122717590337381085215112948134870656790472652934279193323833596343191432232804242636795927617010974972108416096668356983270278305670020590822278604477080311754812779582903642496692591844968409700365856768248136191601621180184427782667382929060994025799371777998946658578991524449912409831994739825796892069986314488281851028544905406170999439978606819837920533590069236725957558448481359790371025942320748787809476601978409646248276033544993510968854990291503792395782719703507781357169956313521767927225742282087586427143854303235137560808177673050562099596348758459101465112435560403458210328534343473696670664286239974087794062644209901164306732241747774224490786939363024933760575022213892624233882677440356729933418486712778068079197351323981999170163148552322749561224125987611416818380016413827366971262865319748813265451902374256475201855595059583425332641105991615974151975275130904495991931822241911533561083871389542878139337215383181292588241447102652700844511244440480864445508535838472349368170707570638144972030292356257805104853926949576637545961853083875353599492746314464298321859746530906502439621152329622157960107606392372608472342434391377929469620615833359779367639444267320755263825743873763458462830276205256262428447064578911003600653408057637152641606204323669733042225129369557953555339608647595058262259986416996528878232326893866781674384216394705355186970018158890315175324377909963861299176596127892351670983322063251045414380717455234417889409132014884032572577662641666293497058718837392001297167452926762074909458040285737246326712753330451657769877639713638843793181094769788384733359157358022316148772998534368664874686504942690496360157316604736019688398225566035850621046048106707012622179619192501901007900103058344588048105094800906119507813134015811068890203230233591907182369159957143206797676331759868481119585338777427253418141302243849144270578438352223240603252696128181161099896211297545624433494762962365204923488375685453586332314372312156147499093982410686615396408366896546701766224712108889527804853436453598450065666013999139775096117696612625453207944748737778874605236708167353985641843880008372076807680998774428701585130198471640526681800543719652723196905743663654924907361992713903472496178026276845100789315009280203827605911234216432009544534635887734218066001381462350655412145849937486347349714485074556752231002856595969752051467954790254036217021195578828728287133708200449349650475384793872537173941219556994117430029659993433760416378528050637176847148159119454756870369521058540705036988599966947038387427107904039354141220205573920830314633928878425033771372061093797425490691549523134512959171721658177897198732754533402898273861381482106654683544219998534893160507764400162315296503496222275339847837172922213044763466953861170591788789004173989585863115000676931016052459270525544648892112400544187009429124056095940512344829678453447992130852089178119403883058316216375899046557919820737362242479831379647545344829124357744295619753164340487893459796442758937729618783177060280177634134822963225067569950196864004847609762079614223306859619902561135659611188653788140668082105277673303509312696065371209022942707324159083692789209968369217862682580470623739517944435580541763603291318148854100106373246296061363297049655282594953724639639537741261886942066255233859318114418766491918385003535002704515470771098991889686113589386350953297718017214214229463494612599545633537031054068383600701014845324083731327482628017038275970575618576970893386906402862684889087504582893599714217117475046895357793411832580840755954359099708839808080680650119926712995434634936537490670449623553819981478237926690156582571222929434735175313428312115983857115066884265075161580896917013415076844502019118778978040087021669446047812599050100215114383114180868612755124833717774690497368848203157689819867768592978581758018862219035301346714699640524029784516812810484898608410668568345006906321867886787184240680925038229842238885859329142614548457946069074914971368306820608562761206142362623686624002634405610282305787627555769747845961940369753836620918113575840908899728726555606289531562970286823213635458158086652944926661902979711895342457907223929376482194327191964150345676717532125327686388207425461268066721270068218724153219526261981562647183288450035352034616680505901500274876301023912528232974297589826158855124764044415391887646291701232483810738292065245778764860108605046338103806257438590983111970061382698073360645000226619929832563510031601484767378314103311198218326106023886647419903990911359921068336434266737806676309106984791131557234988480570756132256838494148147911567209662551936444515264889821430292343169043583442112302634106307814289415908683127452674869951156218073762358119877368977198441716897613754977386191846147782141599592110442254741677569537231740264375489597655173104679936771526214204958744277998110812819580609837733698435582236532596854101932610874571664876276699315490124831909972830194270972413521923166141918091573412213018525945540927643926348955916858011387753520541416605043458456029776670081682183718161950028321813632971093732983492012776264066503642584235312796520064436704578754083996786177456369525450863636733451088070358303273863030846251473632729650102770085334108033888012273597901235500457733205929146829593938037297208968162774658092758029182457662558302360074427107290219642870970606239705835882797027499696771147382994142943415649781576692613920542798904667283005993518963860703417078047785512995884394905650319643036574417451083550931737788990916218107714369994974174448813877901873302850812161191488001079715649352396022180230212131940736971528033340772319883680249383636767084305374883794312417570980033737642506322149339238624184555592478221788758675484055589288507603517053853942516584168353840473788024554437141038808026596333297302627117324093965167107085188588051202478834039598281916362056709194563810048214358847875868205522919704508028520629807098963384550985005049316361247635974300510022660167814715093109645131952322061176162419807673889122350433027631435313898304457996881585255778471567827895979283168845254571911451021377998177879041560572742643488329471255324879581681447603421799722226291486764873827378542833764128814200567144435853125620981050404372625172623593077345421042190556311814586756972533337024692446746771997958864829805380810761836157221974221262347526344273983477661028433347163902927446559429661710382702318543573914591818896213963949874223754484052908796537225353218958165189959150767198587035875006506791812014138310454238871688339420192552075665117343456651529271686268988770049751317265910372973075004917857880177544852959711991190265063804569428690530817246855829761927255337304237985467719411712431620052764143519362825232109875546374426927436557394858242313159412279519059029189145459101875136276727335482430271233850072042236805236070241256227363218743269513174207182340753923799520893123852901443592988274388850220878815197912870295982369980111017019250755870191119653788987826028079077228833895629228836946717187214063229927956317737983127057162786742238703778708809135877683729748360450035068071988398672394460289060887058063093869710454818114178403835168467479745941876217958229665722535524926036521071147352574965936446897904855371477720412527428163966014428100658116428986838898303010037269449971175960229662220361103687902819739503574107496496809456849690423886322110127090324828455732964400939751706741419854399650575366800307041615605311529563212460810763653022438868150086040046964985689386516590865504213446240649690431213907947630041743722571331041308272470922889116750460292735062211496758011137435151933113103387920949495086364338246690800634249000532053219738294954761739551387188260273477079114968918403440126777856873053184347126940127710858747514467323629827201778800920767062881180383842430128144240952232137173574236397374110720369298734315402554507807265494797681452660785601065449895748886414403126651845255852155926022500644960084064603367177037755664034759230678316534782182127222514189526988105434378320716196025542792657551827091512727977700674952803524950549317160743755838862090820034266492792288297480700084611480623144856078781279089028535663286702404851753955510932368235901802088319220900024527079844593719941228709615858517327242016433660288382169379913797803385937978808320089218227471182914278921554800923498058138556235378468425145746029699702981233748406208570470311639481917202672594683860709932908158088432953750758553891178239478180980176689626986420721360736221056120000619416428742322673621654087459100893031596386834725529985932456214113782318583073736014101543749007152848645698108806098181524084793307749088422957497782691327439323419353521554998186475674229683186639302798784664251476888239108059425750507282323137556285430179480045746052807277357521703400988965503820188811698996349079280482842836005997582660268233273709767039364441285226016293668817310309764216087396955447208762006210714106455289333711986574611673505400761029965383203195311316386514539657061805662299539651334254487883020740356141384941145777802431951270013800827917559097589259478376749182496398660933553923426346976150804122611261633851678787701295038799085018195913366485941072132353428947894953456475709811631937060710632810920348785861839709709217966059935512556733851598319103062750745212819231366481490230252830439611461509677089328121531317217997821619512441296610140299402860791692251697729407357873337401233508632224849476839724597728009065450817456954125733628521793154733273958074709611547968510396645283208514137175259119297564837965447975760109043521045278113011742435991413762330724505718793744536972312609608669636897036278573788761486050994059690957960430007251908044163739279240715682062215551584982002343412335957358040031591880913998110024419378604008058453112295575718217446902667013406228660780484885360829823484031302031795418645537124693277616329556747095429314370395297641306294805956358382023262703690681079567589159009857975779686405656278409920398389305452916349202630727519309578138339577967660628321663166848928665868346261784782837364071190898790404968558017053558035615523461116777188858152905206132574404285740372561755921419537200951425822399707832255987613058846092135960004333763458681201870155301289032358632053103854965347935152832655219993756117110856115201401800879356573499457609626144408807259793851314575577208144781815581969313158236835802559992211097952960341960575865214724334553542318923333096424143319406057917535383519651442681308911678605335192124357002569951554538866707221783840071415976161465862610153492502043431904598047966613858287228513648727178968776746140032677775451359012746420014247489178435216579007685710596837751738681318770007559380568337162259159901662481906399286488004154181761424524983462356083507488098140450678955131340682913311024465813270374557424393742573644227390321583583761640428299804130911513011513100129938439883336076387949327446393762490859397490812997691610306438253730582927390623439981696614862071793624542263265749573803474145998832791015725198988613012900949635408285112468085531313058793742684889954459962898111138500911212956369875185378495523634824476170689572480894470436237819740320597868518541720302775629961570506611566823829677773968785173648184496566060643550790717748089369004521535015231986710202682866126555585347408907886532491557691659788957390135612160651623355603566926554788157441572913630191807251332492516581444426698172172486317327680211593612832578673470410028595595952975544245743013684289939376728888476937340482626623634486861476583361025254679411458386310795213369034079475298859996301589351604575386821555690389145453976209194693215597785650128308205534889740519506556192675764809162029075898774792477836417433029885713023703895054911731532705747747908486958673062169578362824480445289288045943377411693301004863835377088417334488068414891777480533040836569004192795576715646843616169353977022714963270813851342512025981737236158214265331792678797710820740843797209839624686667066964835316669922453763231560431077574286031508345878122525162029489908092106521744199079423272080248604312586121499292840472191501899569848468024744212752263242404726095950607456510819044706256634460021446797366715678107938645832867536616364134353740837376311947524502619866171111064346355663502891751955769480809430963023329686661464897882264371714576778785539690283787311102734499987623278490267523784849673826003007796258899231108737311308554389309174733150575239784568126636502139658963924908181504438786688631608454584028822601198376982851289709080089266846140452081506760472493104767585592513483237135699703952545778978445525133455564268170961242994470655040202161868552284225522080326663123887801126306184390788360941419693027721860444369794058235848362943090240443670641195103643944442987482684876460127353047443399969234107394555145280579009577675458515129616401719476975250082026147361342672760995410834103339853439217891134905421189200595834890003731125507506669931106622786437173197157839096260155441779812219506464672750006829472591197762614391779328131481846906250192351838657316498611122592705250911589193831331262457747317639749759748151963891787526225123675068901381893897345174001834478811492310790027603686649461198624449411226014261985862163109717478759938909058506116922278742006272032354396032710094368253945562871525762419566950349631781589686592813306184351068509323592280618414440744678555946015895111086202368074413117237275406753453267860031407837022444654778324660127243251534105293315401286945710474497828944573914688945437102745240823913646962703471479369615903088300526651888260173684989000594860225945834794204792674511424702343058654056867075928926886331965721097327774494799569471250203487849635915882648915475115748261959026032617701432290026869347324277672089217121640515182955663462799904543994604613413186451083722289491976388110570285423128082127863235528262324804241943240939797293467028465491468825274442462044263873480335635082269941407286078559773467242315772846398983690984352309851915732893900274858659490412311345834574788955418045526746195264967728910920850082598088273501524843539014689611037824079811868039956716066118630044060674754478387118481992794801937208116575307755625699753203466465668909215443564351625342349296477608716902735635886846478728032811346276519805621581190449551938698607901459745465268046714450028921656967614879143166163978278791547889695479455765166621878635155329372868084072249888549863665929359491875189168616320386181744131236716833498417838097828926219292366231657684258065248062264080716335933715428308618203746871072634443220921447929863119714155454825990755101335487776045059868626766079430503735324157460926208454101121020060994954395860146092134177974517708082452057509893849551830572169725661098046088747037732560234518170846445794765906614982551895737648093123539337303764614590723573492215839897905860976575880391538702981627151836472140026047352975030912398815334355190533171912518389276816208083397579836886422980986804633441854616464129590311944061166854128684215438109324816938889839610679301752050834363208755211233720663722036738182252190429004881756071084145607012476103646230650200394458168250591738208633590119462300112693251310970824777843481622587540168340386608850385534159665657704623132953817509077251887405237764419959075127704244106991946149318163667050625168266182559710319030309458968692501675201529912594366970671481002056772260562256753693827207983398058874783849029836207250596001136800347731991838355182243718001038295083884334618502294954236901942847619720592166284317248765182715491317843868517486753180697719679973951727009046462467402832195918125257222262611964023521521560442114342545527151531865871569851753404389248476823420967180502557268716248830254090657147293421366863266712256848912857417854843132914343486941379953297173942843182430104123318391060428964877129851362073597937174521000297796705535332363044616675795241558817648373404277518344434306382804230817713914278125539529002040212269277744776946420058645903212199429505165600703518136707383139772114701373780146683204490579995631807256458468208828467188870134499823575326049009262903992168803217357641661994026527938285333599481750900872270546558465391365374384009960717510806036292313400273953253887247685487584085270153146332233984734015005899207309522412454721879368357816326851298537010325919203951467570610453643458901528700919686323924263801711403140015447258783455261522425711327480440366363754696665739076002991176467158681142557197683954331417333684650624413545237839320090165460322207476748614693695985238613096265906259517746176128531310253927314592018864628875385344085333021718150859691413658287744521990747296376814482469081614854445750184035065475697932296979995094364091406692554653953640616029778475620994877274268799839946677420664911139334556617567986373522672848570538543034255954219654064364599885039556607122700976008675378892406195312228419597763559526925811570858373866049627736329979276382266432610346453000088961523744333218822108215544636208217969881576001787275584580447623907420250173543315935082615319150354316200600932213658319002055126410247178520208104277900561248826019615578919840018043949841815398566186674956274142653106391581981250068956274931714166202228129554085916297969689318705254495787123640823601085396164443212614728074636802410629458711763705340556418379221695414720053510262519915822150440081750163278871987349903064819257012649287600371440654176852949232527923353944381399191935845956019040977007690471655680253814508479016857805290311324742567092410741727449613076339541424252801527133574026898352409383616485570693822978805878840941760074949570696599968591968112002779919117946276786149406988897167720965930300849230840260761901078791512119731387588942916853131967409092640246983124829560561029307861672961719214719841824204874900510585105107797197275649265168389548818325346108215276528076559890088900670130316277937218415534632177847267804837121002002767580973904084938247494095068623006876110366934522723971566659948709882433210659152761069688545668218150987936035186578775235125116559055284768524660500701939008117191584208679095009494368786556849224369728963985932100428953661541625131793792650207399650586798566285646489040559761992570248561049502807397064171978170155227703990551576344234557287121439172039938872397055529714208838832808915426670417115618086982140845949131761529223033707459273771829220718653562876197753204156768733952597723575052325867634510625196984420987954551149244170906537388297298821775825839572961792112925135621090168367237333500040573369729854795356230457496544406565767677908656249435259760257624891440484341506676672668851486823506590857273474388360589297907103417521206713755657567124384932707635368263498572265304969284534450702120484279585360837909411949390226082650174807298339046331428054985900254423758552473094736251447932625191917283454320423907807112522782139260536235397016197418097895032690702502018193239068606646505564589379064650452121472620537620959369656860700621930893169941207246143473203211932790319019572168950964810494170767639174904255544437931999315020680307095530887408869175065402581310845770020097167444750166172821834810222312587108713395420371861109323735657468825610901658931328835961831615658778848481462436364462949970939362633929638254318611834766788424256928194673636057227599706403615620793180275386662992681996793356342782792789705602027553354964074122154402658555379627117363039293559819037437384556029695615772625528617771828402855153117405630727630363267024859502012192763642627491312404681641588897527946842684077385532810180012318537801629332452671919636228065056448894435768551389556840322044770055890114253660236140227617681961381556437508901146850819259199536672680824762068459865538776098880608145009096496930339084792730633046431086772053128966916654887854002158032646193681261293677736248355262834519308195665283171311184050260630426548221931813089644260296441699359601005361502038756888025718646165337495975950649998025926035142200145072182088946047584111325739892795865065161962770986684492637546460950730831385693894616479361362140489309134409816290301615187100658059050430314766525796055165349717138468950626863805617833569461216872195475394954787871720866344995097830385081028144314458809379901065349560079707418795991071186385132518379754203142460331819527237126324404564271306763840994140490533258704223356289073018315045120799450441644913286480348739547928290382428411988247151932426854007016745190695794892313243727122141086922005543411681517840828354348796634495110089407318848838685744930431856242646516475550017634081215281582178895910920394159367285633632217469822775108916539008404679082440310975841078819100361098772349204692716372960600587347262523905212742257234545467055850169064874697501674742677507220591156920772808977316562163823339023176507958207203001358943618359069355785577883205952271452994033297601055549239452287843195567865165519310990533916489666099208859989098379091111025364094853395464577964113513990458028694023644424779487124579132744517241471154040163570122133194471394417852367118460037167010319129902784047084669305268471538694825282147707301587581747091799545044776168806560128267380540329119655393791839595672877904123929247999600782498090158265125050262425635528255422777573221659282728682416569759841661576846392767712952649895629176939987707422445228895773061495194187871729069590020262753877758333841583899604527659172371415217815106526711699229216380155671430686282173626403733986109078961557640711695348583873081267664765409046743752304947221914839462356626056915022476875426924069372939702990292794750383043226597617381911237161475666390292703763210416952804354851248208702218440014169310533648252624933040824381553759904388562230876229305476391010740574371641318291432942476821590482783690867009885706375341630496942012237902245474439861467028289148486960446117374880390513253245233660466129941190387726029334371247055186137475438443442577576198080651005520461044077148353685036667267011009371037446364188889910821106309156452433712326400191968707030375609491075672190893418744732954699032735917420261226949963875357791022164060544710116433532368546550529823742162420986958374595728502149787960553585742569445692226113863093779897074384123709068262666805043003477895309097816157512868510252964312516630581360069607609843747614024876869963260104589057254737323966556937125643762438771348631799700359061605726370733964921274672717505698519492705221382472677945953925771538402666800128232918620491711040434579804458135012555015290351073490139820416098082209783719095692839102885157014742441506229095600514164279210546033912753499425344768218017446623720117374724236886036399640105134067269262355400337677088674823520303782254393342670754805214960876345608505182881834104396369513811920324737738645384252935947342787321988779314618158099575560470926891511433772626414647135348350494464066647496526214921271130340303270828302235651132019399970621285651405473148447589889163451991105717116285056655246316981626594823500791576926945265201066861984026071950424998232752767235431204966007704913198327123369051028192682372638603819258717797819959883600265286680524938241923593854961624258756003553593054287715448421533838147585758237514860199058046713734967073021314497757709960989996082556572073178995694500487810371688169299264337627584925792925104694439624053080818293786307289368684104581843910117128068286645404245974381197275175986943221222149841110853399325767565645938910851514620955331929188467454764523395800863436718913064939191043090447439484455476923648988847707884875763570746826299190772716451249961774104369100415125276721685959470901607583152786919399650188655773181369969939351428428131962710197178922174407546802239118614447847102999726602415411869267789351022452361888007734659176716824403277974054353262251409552823673258194829527470518841837509376408574715050311044559029826332454486012068431902078065259008616277443731790145034928237080518265538616227032939167234718337802318751769741683811150479068033222383914677658427378905528757841869180023830703847484771820493996485809476452456559989019206222681717514253359653619698761201277345381259024967786384144670306656177257860861509302892322369547256671466807193423291273025861791805321382170929538140268478103510002748071062023142175178071702956903186470127504503988442628281030456228485878173474019861313496880596835286168807701626476146508569513800299314574008498210957381581874118620547538059229781900967630050256418711390675067564332445797720111479433016720870657759168486611967297034751320508359940946800718174804022361989607330021451827621348812922815449076368797928249952307298725216907211742837980617360207333092655217382498608805090740908026183545665556346852886444766483564500744454734639769428309077477523797167470927930429230243684418024978356815638350161592492976000382167887162237525417768103973633956939847096903938424062438568516595480946127397117082920522786861575966192681731892381359183565178588207162927376361178111261078549111737751876756774585517979712308278076968955951522233459204491344892088053206160697785350215118361613382069536696637522692779506488020197813135229721375122640806258330209518107564333280156222771106058914023216211988190456373536723725433769820343176490307279197145765784084690384688714105343620369624789695467704762076816220533740675587192624292996266063810471645048277044605110251417656756797656498640910076588092909813858921766761136844467770740940974435830561992193413920465565680034968929851700072674740035764830934362305099399004776023451346611355394716228051323426460194970861228690035465980966225899764997047234417087560622155412185667888869986990152366287259702013419125880101332468415943327774380628545361273716850616776282128299455189406151725776585980329400060784529426421641160156565886797531923799965756010300334341745049610916884759841762805213147547446960087230493677337062021717481897834292966923561093554069613284804418191496467914637337023697510093941809200099910212121582554240033444152958153024973837046624632425061421668115613790494394638095449261551253557419059008421492671898776860292479950953046925884141659440183961683021653465938582792602593424612259405334439272780212060311448493794741180634184192179743714270494335259760071785630480326873491199781153662479718220761075634409968320056858306599521860804661128358460387965928733984877706494012347908515757883624011304148135324814010478652793627593642172763222707376555535408468325596264569374968373937616316013262184521742465667940315983005761586692736484229443674613881768462788201272563011526468325597100641985443423042655863515211263443823381214589161869512947959147742127696164298371032839700511117808416759213529709473710855321903506547464779982723696479622241259544944517842840153202797737018471708749277156509792129135132984189277466762391908282114356993461449132701825373255119416343301519843226874332988469292016008419220738650504629772886988294564163515515984131844740537975435828156232053219516599583927471713643130425195343211944275047970727011619885632019704769099692883391414383871462448307110086929529859660359237946828073788535662216618384148423221510325349600040335245004977640415695297366901453853668183935550129544407038469701155657963456062029843118388630815784100799793340160684310305916493189631438182637294295726179714429321526749498195087854366620798374105351553399830894806926408745235965610353185073105468006823089533545474865857529811579897202843566806729083308928284420906026161615768646037282757613577308483915358208645913738042156990025055637224539186323277647285799880399215720010383108910484190368595089949876308111565346474187525006291066455020617054827525711135352664363407659786417727425894532768004307057857267257060808421713267827998541713499466234039446590946042266385026069167026558121958126216437598157037400000359842537938794005632970899522745499939818295916801769683010741187998066294394461841434408842930739657353934909299585697208830498628064399886721798623566057620635338815279763996883606004341695275749503348651317164228123816221885023101227860624624105479880863322398785209592797808085934714515637714690413812842062666235624691051315151690521423936789026759711000403183643892391000519907328082869860735475781113971372594316176182652318542051041596836176329301949478640444501475808889701891361389421890904790426205364590636625366257057195648621275298262042128442604608226240658521909781401149566965253903087043969952603014988008786689354027061414189425075043197774715398181600718843886605463697325114942315849123207779275126105992862474947272310742510418820361576155311386900988104438168469723982341331328026441941968032470392968489059343324034674211701978047357582911840809588496571021382654455402316629024277415625875446287459881948463890907384662543804197352647171109291282426542442744195409696489973330709688678847702967511489390102247974973209903201408703857268498022586789002329662631144671049767306260259567230113930042894066361275592253180762992062403477116034508207502170532096277519037322431805730691941673506148623890611143425951606913030972699026010149093635530012334259803592835916555239935884648886674426234199711160581918296211206214552700383853939250124108755840717581861267491663920741583690828693202659165201357233196445405588179870455572679286952989981276099320595408187500136072743959091079742868914114324829964910521688187230541062757197111369379976959891145578218707213581011535346415092294326826038776790118689863240688545422306447004696224838747659826634192238017102721465711819822478673550124627988921577110784777147277350562425214982672429581193881015430760330427123520222228243098117107500414426443069013755566690817556788164042653617309723132759282147260429743315804958198389907494559833861948200299399762101642356103879511586909599043121542653744271017232222837046678149391916518958402941162088585593476371191620143873398094644502264861182749671206495973129569049611933320186012981932275239291587010840123455293529158387179849267746344994149693748137470626864722088618904343633132644672928988083957063386430106737604610874390425148903644060317482125320155653307026573272196862431705396758848470766382329295723620626213756626638180013301840108986618263555965194017424315299398027204424935415506644438116899917732625472668033596259507270010633901953754862125487995184101778029432977549476991637279557351940448610926239545621163185263727722459367768933771555460354225097579231136690053967737520375876297446478337990983183600489017147005040695517543681551421609657851184202162308337187708375408211937566726891230296209045619014650867601135527975589553801692549596624983503764534489993761509512688633105603109006674353765082152104947769468502786409047524421921350718606400540084706372844057333140224762138234423790738163100645042375653215116828375833943296086961556950712221457793651062906608048953981991366660106616306403507460434122702969767798875268183749675450275535323548573943529840348382538494216891235750071753949823464261812895815567749721262998765731666891208060265861604576492419786828634451874592593810495218988971635089038885968512614015173282234821593891214048497196977156772219158560243894050973761955057371466137840929164860802400999071624880807091465127305000957559974919525195091361641245792620328546072173158421318744674449343710441987469598954415909727118157238330979915724962061869026652004320178473460300714532287727422409994097518196611685417361004736572739345756850852043405409445939370197552890183325645588105771762136538979736190986329421293218898012903325919457891965001653976045276967478147891934627542364692551508354412995551075713409489503421107333707328215073559069598159001316172495070124725952969824245595091577192805281495713858459610440065458093326704797051266475132337469287293158253398130567770633025531605640663466850322440692677449220285080149059084691964738713846058179117356205640071477948519847695997503908467520969939506716910054797398182581517409214972841951064991490364384308199362396788402584851450500183833359196982987145701002714442992189729970442158196637183452848705416370235086426934645610511268890707656780825567371724201491156211382521973922894852283115273900529755862586436897906488736643278359777822082645578966586921025215087541374307807521925684644326838056515102333618877858419900935100732036090120602505690155968177240300957425515433676395626183780348095195414457275606015637411838940675411533545001746055864466843215464403042056298771815981547798978581507764726280443427404416201601109621079635504663019529320873786496459416147919475013356955291760163068816727726173929004527317474691533773362160128566881104100958000687319534225326812940735559076576840697082922641024104544587229576498414629141229363617791891741048516806174203334671934193059695218839956621449988090709911162456940743425364919016834457187156763432588516643230673208207248822231118030103377911525247145023263720387654766582556206910146643298789067181287600219391398995207065078972788020223517711763506677319076090002989299915907418381654610242245059945170615829502531838405892328073217448124937099244754500473756689207136886481513008188504822870346036744570519343665490050501353278582072497722517926361601105870376229719253746431443760832268542806835757082529659187105123389730978346219933968191514734398672536404065927465928006800209743954331193742684987968682884930881805087978691944914357170785762810919262824726560794908083744823641597298868633267712146190542876038755456573255006584239789815898351641489782174781848713622185341683701624008798086522490432692821090221447412286009702705227115685855428349933938286021444353449480565832074498544230864048838974088389777465439412260321271454480085970775220214575543147259388925936098935341095011968607862304677933268277338877849036179033441071677294492520936241369385346842410696755899958282911434510266801471607623420671958820383075522071235701756736325673555319077655885852191987169796545004826110647525669819479534756459911291189934554099259600083818719080461911182473380116664645210999111933900838467273542612789509269660211830671794428309352140697882412167988757242037341918843018885893394072481600284320392680220173915160159258300836212360274850596952799240303367095463650201148042109643864001404870287195491602398227947408957693512082532512348259179689704150541800053697045904189518663084150732387939731754987886444395298928077652815183581643689431761974779299511718901375661385837444937108087729932151226164282622044024029463864422273929974900480907555337855885229759897853589789229054055000250206165415373704940347391023853523026470294229723630435328740107822872503265322715441066888919165926376164556889994988068338740517903601131342744032854451833410396971308958358377621201512947097619753821783247309776859464870650761911849698098061518699856224855712394566824395654079677312892753517713156774413446242746733307202187230077413887474871712032987690819855543606750608150323449330679726809431573957794728408631376265473230848682158093569569678353446969945036139604979520253351293179009431037467194112467250799171453731701047502374102442071389421665183077424414036958777528102336790999966614269416551209235201027385844400775025578823639418631501334267558330260004205096643694485897623299409783965342375225865142739530355828785241058004404629334815990050086527551952737834866237894114432308988529571720428633093140544798979553920529602471798767159690332185187102431694872623484389927443141513242703252765284279890006406225240266706284833063934171147366634520941362273967377152645054138664881387559250602591446442583526788565493539042568044497783112003084283771594854657204779797730123916378056041838681780799370172699224474937256341709020893851406928848122366824710232626463971912086410603451945991646020058372111302987670961783360581870931532532424436074611148621531628759894687531041742466358184753541906948037052201043367436779739520402098958255665265831456238986885835998816899911508133235105459585294153199451219409255643028488442769491212424097731890541010327664319360025756260780353778708746222268872463107644637279858098090901677535338737673276535479075497748995019616378045616007661953935887784460090258320528647081506949199605630872564872892265645155286266441040228382392246529028868705966104147206024342051635109139394826523424474227808467313505298472319181101349665516732981729404585466947789222885174085510002099689988329997594386350909447112403357015485328288938608016760834674723237326680373628385049627512085413548269090696802351753474213971155699723434161270824813907991313470188685758009147245229988514140606569589665036874087450671141732810909309967517005150026047318890579587606744822387059922403636416356767910354417353830674733736068269263759616328929957789772990770019928282377904030347835589186575244443425054596310914478127048692102634710022178958897150561494173761311110084275098216330268159123154545785704436990136493588798693818530468636458548664099020848437632956226764255335894095927151201788949227128278541279101416420778376980455450261635753769404282445026398836531108478743035042371630313191965394775844646452275801062791291039353791883986306641743199300590706946110527929220957680450101379274833009753519252348905773060553500327188675349200840132287476994107711666675628682726466044693031242392702621783191284309828269364291949807781857533455236524213376391919394060241325243899520413241796344218776921468557563032931406790746780995611883310524302326376129441547791048300489521831042977979395310583540406972922592582308189052705740517013825519616139451304091070765001626790390056231788572262008993061164099668996673356031077657247832149578213169115133482157176702309930022180992767848727989452918460739549551809681303024635184821968769901498585361089379009374331537263385005317464608182951550027000395319374636998604348174598297142761047379374302004672530149640406042543365804773047402744734199241722446029243889450990720329757422375394514607241963716462939860239856331002063643805375696930457314346721362991419672407792441827483390664638809987564166173258998343959363163964571119302117846729814278190838779520431553268436926988148930530144543857256795273514176112385993650423477638555251191968838277381679333879128905154264317796515673031263860210361051897448763813253682729008536922748943765451190482705878426780023218435229729657704990275918781132463800496810155403091636618215835665538327271570407818045112242720219344836792612022854224892678120427187883768404510159539486034403297103180350979948736995206901688444040538644305573866507272938900681828622876871512942591030197465228143133692819238786458288701374326200426831425560503037206422089407804105306875967949495649101531718925537860333551659073360182778581138717887696967650227821574717840124184402109029214549855606705122810781551862868455057083110688028468308329307548204191692520231342390204289505102456650373493047960355747100059314577880294050313600825201590003689359613585842259924474929700274323693164382455524284205394650910432502244022116519032028021759622673069499172086500049469722556024350943451425168893112911393270621418206914219716703342425519365249823039496693013097473516811839155666724518608825783876084038412589557353822618433685550384229262997361875053810624079320222789285351874905532288737864535189443049361125168725690065856258342134731350885080375992301350966348652267639683959779399297794439821562514247972308868598388273910977274028589463904496588621835918420259488353673411810233450902639627808783596204124842948265822843107897756375277973939673739606583398464467927745108663962670250394907031780806292524116600157278676144293867829125049824425682969219065666353178607617757267973108226493982314706344074941214231083998259304921713340045520367488354421901421557460922042214393462748364699119924640063715023668154578378081985493066399979862778608875816604469018394253772395333235093078332463339093246688112906961385142909211219560828958870251170990125466010073303010971292005288882473249949678443649279622804968973019359147337609844307353234834049674198220727696959821779099185755127930330802176878499088652377976453217077071316910425898493469826849362411102585837230522224796179984806576176429607490482076217748387473668079053616175746014117449214369849949269576862259023799168783786823740386876062471649716327181585236615026884493133908664560611275021737081696351887459209001400835270561247248109381329455656323184207440865716271825288081299531227002091879076629060327646652313388609612942029902495305848771549844757366749454409160048367740059376376199120458935289840806025389656804379553213587483637008144216043850493269693450303431402705707660644562910398610908732053337177841530246802016123525978780447599465285158760756568478931973314281686835613952350311158415202469605591535657348377413095345934371347635620114799572819041022402734935585366298289647360014627504310910332634655999531845175534342091213211500700604692162164339291125130516837338534815668726224389358883584152816478389266537725562678583158317823027850838835330706163617595109533781205916985549724445184677072297407881346818030214731088756090574723110360468999022669947799524081094776600377821953031841796368961857432227101818622745648715622624245700012330819529483576313072415628053519952157624016954236761591442657247169650016869853027949244238108261068312285793375194937574590197143145782915878865242201877925345201493913307169704523835150825292577192898090599300922497613572846324473573181579892085837769909477430450644834488609063860963701078135180474979522826224660699472425805685008162114393976707129114037598615582798071726304158223362660445351763715451149030344770616232997182686904317178157012410538180022801447861925035816252182881179691477971886824381593682345041436938734646399136847274972082465405013232803612747466813532796804459109123810572782841966778181459613449607569393976048417834420180714745971426779725735443159212269143368907199714824530100048271780368429769391511585843571858723886983921327445071748240774442705217440046633295996865426251571903750076836620696296730632628148598174090621940639701974179929793221164241769245777564519631636911322611637687928395019884969079545331215144739456719056554357018592743308986396383952985713077443799213770268294398300854241967584928374596905912870854273843180085663417598339411555776282783714334955542336165976372735833538544239800476808877605249197550762684842602311997180831318109611068687555288827820048614600230112764924515721193732344415882184696702337424538468409610763310791191890055878579589568769541264117629926981950753581857500991810318330347804042960897868189176744156826968415362911289191702374828795432047531708457275813065951833073313247725621258832468933723489297950268090786934616309779327144140566972385111608224471799859537414612755776643661397973443368776640618941799667620261656441100075220231300056394349184217204076751243793204818368388038653127791183828836799467096098361468920315939049180465104673133414937268126731415848087933428065719700560893968675373901488217264954275812787062442456718143379616172223846025492717192477613947829430865807077165480247419357125637574844495416959444256564221415351322389736220515256012064366764165485714423352485349772622736601403848795665174945375392830893288091920515265531995136127136827156648045092375353903299871557080932612801839549961069195642560191390763193336714269058112789108649036106061188894838177880917790732853849551290199299911176787853316517554564114647283386377991656052612165341343611102191322107341026246677139989079156940321647785827147579648320902621319664232254663099588510467747294500341232371190219309988702392985429601634713654421027856492760940405532294439434814214124276106152410785796089648675067431282916444279329351886312917816753294074295318730233618007985390139795579050938328767510693952275113008752771875127440287258356384130892835579743343293515644689532110682138147218875933216927727402634025377240889594714522192133569501518217281787594186194476169318025182344889172434751394693696689642243161436494645339168937972777231730476515340445919493552440271842231431638989970039900799829331106870438117964168154589786947894955891996839453679148144805425490156907146439658068222403115831774649656476283050749313841907366872892902716388351923503522974830025694221568868962397028400296573658900148176094132035853294998479051391033959623259546955854294820303539047227616216379818220835033427313661303575004952302473193884940040754075400811437610691781618418130830620937038260998042933525955807168871234814292118130822042043543284056539184055632917178948977569139835258339240290670104794371155449062876678839345044361890821365598561732998508525733546324676372647770131637581772289770680341367414302980450678389923571762976166780864391856507284048902430764880322315648055646443137333765695036112167779893110170161634085608785043846600734466570208574290839757128548705764384550509127479193357844095249554693961872644655451865989909849209797291078831997096039237249890275221140105231459669023298170586127801769645142870850672741934150662682462616674995448730309152016559712767932157332038970753797404419971528725574981273130874922606606161435620872769228659481130518243739938581018746875739381710645831304381188268641182828203315263504724877527075439594645177323664778157974858763466582587199267775547036438901609687573621694331887692857907797347694944867769001858700159234455413340149051314395591324308556409060162704955690855329627797237788814515558647210981689156528067825119035702338959989393070817699872699639645956857515656501440838565854310130005407755143992718108222015509831136333262679039371363132715377820409471853476502714325158972790576931246869680208025899362602602972130641441488402029971239598975212395814440752638755729269658712543882876255503847524240810530167046128874953736324836144546602083342673510873023668555389960286315702378786275539929520495188820061012215044244267434896891018560130723518159001203906434141958948406673408096430479305281171139502541622532925577337682135139001690852943337992379346084797428126254662785145009718557073783178152076844265119922162631664447608516351854627830171675382448649770994343371216023785958857138377526651223399904743506126378302647688770287262091882771310140090320208735971195962197320647999984692508066487996454661276564730026897360340788657791385153889372288379765493196933660204487626055851322635504542196656140900203105797882118587945071447797787389528753104900981018287449844941331254624156917658870968150521840725794802735267492482714684728479085730663797405384472464444081488788194136055416490810536481501821757945891885221179944059652765923810929690122941410866752089012608567887678767003466178924431028158739631890183685808085322741938533809462377748274943243760209994393857854870025661721934514756899372138719541694439089502659733685293634903713452044771006363958975877287080616829524026730629620012490548912066661816071926886830477663555494474108075923304502467267420355083990341914913118852328397085820876038360981691977112692760565436998965359386911921399250515136319089196665167878661438276899843996706246096720541967356179187939937522470728420099443485536817750118482793777558204139361057876461240073579189514151647170824103709814754918357487461627611346250258391575103299735822782331352122482843369518614541739480546134830082363647651011669627972418020597735442223896067148408952340405885719083572508643777086459794404126030324024405733455416507779136678861509992969957156170084155733573730597336463183243837386009561930418305853841144622721005031442468741817695185689162616360572597262895162400416020647131936680320629519444188167859271339813689910301210829247092904782901682637652604921701543866936459959453439414337904165237950052250001850236971095873810457084027536941269165490099434385824920311171228759218289992609615810212400931325533036675496696060322371148673334746958938291111464252096882615771498721407915637454046024309534426546045270757487264726494136657139610168635593769227057778925011860257497874611120737720669052873939735551370832076824950654578248340770906018763890629502144064937450349475730312348956141885102468122637580081527964225388152601328978593303772686578910393223212646756846423096530358213195826519696721065978093954298512888029509987027015535258164164530617337617299294813518813439793246758380353026818688012503293106870023648513528111835577107683100921751436711721258405927399121516060971907377762233057326897071281476267701624057069552381085203607057772638570856518157074155573601873084553194081775301526424848075975238688772424809694068293176133309783105767577592468545505762270216168881557434378959124824299333623129996572148322922885962863225999588358436853204839434339612076725147559110492139846520209861843093779953495739702283425814095638804677877453221522947944604486968405983601737952138513951694464058773891174295795291290030713649350812220236442390263247868327421510246633724213768422028610972247666057967384220710113006260331441601716831852846707115243961345190507973040293503532693605289332284164464351988538126746158130529723438636425461037726631409274212932961333570899846889694668949395140836102542976958306299235246590656755941898950250476084624286911925875048562658377023727728824122663139768299424734236012221011315053663081543401346201196148514731985761701529685197653017738450101108630774166780050820366105026846766866248711740196749923130033499485812964422910509608167184889902332652482038827852782893926953300426476378200447876926386885326623503471266303459234963843519555814386000291282786291928306857426896841170236704370825038281099722942281904180266740578579583704829724439053474774558741144999222241808449056119215484117421824922325394621952609318628201451199806554343980956036768865191794362473706092972676048810960083420193081973977364512074288381373433050890202772408084156648710367137244271391317313326756096082216582368525517742756019077082647983593874649750787299626927998618966302538213731978683401443716517480013457479888383221125754827428977033458224371175170139270887775959288052408692063236396173834474928111466951006421577984409778458695319367270339296628121938132748266244087994387497826590719591913998898407732118607390924243775539734425722049193033251841155145329249854294214705955305683724113472933817714443111628186065038669211822809593947284371970442711314906519978818866486910819753668273362153723430168480069920492027495245121181822141655815080283289832452059972168024201399359014180354106170550254574727565993429177404985096116448487261121368274337822732485363345637729090653011540306919293958982986185128885979008188634925550159300366075760034829319587405979559232085552123489010982274774799218188134111866818735335823888673707856641178481392200169444948036351598043897095487485503513746559452776541190641201839108808143546339693330805864565996744760881938386198677645789616777311610672619301317323776156500651369882147371894630448207834146674033426159364842633872173004724813937085654319968957718487412386868076934559350655493343485768529723444412812303150679796336427459705867230065364532260323919077417976979723012789379281774051693558441262552708967461586799808071886902563144044404023909841951669498719400359252691671590430622844456102826363612110948823278491500431918136097370512051732924402744435620809330205410554487204159852252416797663478461143858297554144676319460358671689890773624913736212241889014096596007239964513807111704702278225793853067644207685618986196190026368896842275510820736091701144855588989422690410522620278840472198874241281440597713460015664744517738589441039198884867683290178917424734703833987032777064884106686276910800130183807920493751346094743026332284686534897311394858254059532597053441987667887767289641354797291272499409076526067703770762222253829312010444266744324641047667282314844332063528013365604657891698518093487920654374393166071348524542791334123575853386583711610385884987367005403614417508982169771480251749404883136159177100964864240882030524108898894567953406783556295353915439574437559700370023113994864420364305055550065977110383505865083053880846675126711425764482664680326181706452915909285290520200435798917483686098720836490046119798874844099641619619841696044223116544455233019008436942680691632377612378752695864652327741529454793525900613855990372108605516205953847117511677565766747942273962568687288778238808486559509266357521408177038724121951072174390921854127609586445052235532960907303995338101299922636427139870222877733984796054113748779054156048150843527751372411478407060355860502889847262865184403800727778156538221719714153885413277985013409942981774435115325837669688445080397497491325514530731042121720986862346950115475108587884174458143345031244978454198848353844760342614545760048386332293316307974077407908273403722500558172162831972229972337851498498141927400807529711889113821985825766622172617705539517168415180481033796171115572657326708001839931001166924705095880527327572413755963166515408490333442440537804414881042731857081567509394724259979573851635199931023691537978504059446075324557822316808430393838755033464406365767591443233113639647375165879807543521837035299915331843197105159068359764173791961124662852094534619105154172878113143931593098349362059393929421125007786615195720345425034440810596098729314649677984730916116632634251093817082363719961661050464745691201709926717185872573364947648235871810561550316060732592231311655621710955620051951534385742007508824949799925360936873119208522840037992051197967098797606820403700123421667541188357623546906151718711550446409601233511437713670966789251361925796492516251127460706376064611238361122380029154977107115591377267025663002904213019109638828186024487757181900708374282849694175266977147915745754058228567066645827930478357798495799958966846380558958495727347724017632156636090462316230097794893301563870563950066992112425773034807453005054459698054286877750921529584932751311278575258398337557347877498898039959236412101467793530377077068759084700208182657292204636748539508541405207976547721910223661688431877400725429126799609864708241685386124045893798083665677895628514334938126871821747442072091856060506620078456938514460611500642417937056468782592665257412544142536397685441109891769690556621434307824076921068691609797771857077401163014336998803578412541958856962311390999578299650367493150671230933119712972149794321849625013919528812995617293267497184685203867403937161670160095793805325863909152632516187178409328748563024104246473262593687120773848560482822516392135280869128698697929368738284131784530364341949885091173766794083515389426181954537596711385379574917568682052882778135413677456373777923521028574864203398208499863359267660111190428046489896917666102517391386707428130038327378428906487092479816077095464521649911869807762635056945884537641157574931651680270528414366094644559152453703581114982902798749003493254316015700838112226025444434075003234975866896828607749104083947947972020359245193104953418530471482912299223586550990016697114006513543834233223976394544382799623620374741276499114800238972851143295530268937229360116639568937938591968681956846656601026339519192860016083381213540793463917499588453930476173797957543244810978734467808941744825262832754269295553384127980331440004941139613037563155448280996920005522644172851362195331259707942062092681113729050745120082459725652684060150501185893052329173999772914836502897463362934390107541110835304387176593830844629049954956709959420331704810753373374222142823866698433510967670646115193559985102338590451820224740294803559133292144981691396511147817547490595734702617782426663531993815955041360530667068125080414902160800799366700353444961160490249944534257561723416531862831125432704217346793766708456447603784744183297147112632182091483337923524770727470670263922435496181774357405921764078853082911274569654939673297519464897409117914872720740558281162445750677645040907500361875182128925042545762909995294912703600670293772094541699075399629767424721098877926233168495730960455555185730600864536968678611822265256896769882834952682256877173939328490806097048189387697284459860340344600016259456864481292428543405337448693472188887739937476607363175399418341422998027335407404102309447692554167937767669711479015555923586874232998581975786893484165307460727408056829022158717358744065580049748550093114232087454566007936557349863339592989137368119942971788021965712466868402188799940197425789956376168995122346481374188646875570212102328403445680821758070337241876726771355868008437288970192410210191835917672973444551263059786193978285519035940563404639875983250256959586601313706960257436144584121873809344219562973189120811987542839820525655766693217597453625331416320367491440420898811837835360916494753544881292264800479834706844187335401633475244099975964017063916478127549130371643087690846899207106592229136770142658904867458283703636001340623370409743361897926246254563535963279560026666207978435187881459944203898025704267100122734456545772577994054805770954337623590945859336747163337226941175470167911698972116119080487786724930264786201798110076022726635413312849483444459864795692043141152104834578091181670603836405478725120454982106279863629843821297319402217149328005442101689362849076794975467828725033408218832246623260462271608806848492149427744497912406819285764944291745161810792556519691713299393277651167025554087729658560280601938826459855416939172831018619348273084678476923967405334125847484786408451593144445022047681196104135371867158134664161520118105399019672686509241402997728848467416994959302879806024813241828327357006467087430476805243616796710373197744035907431665535064272268366404687601027132387024564231611433133697753180422609407917734469606066588849139401391248782398968637629493542169841750195106185268020429041538301988899564336090840016855223465467108659931339638146072543421497942978542030777721237880179949888229398551664607131053775362031169793070088582228493250898775639226777122555142937814398671784958075955975146694132525204741785161786658312875901424372895240724431382630878401972028755535015293673902926752488781554855638516920650547337622538157570571357122491556799214208146166765968760271336684255331026543825996455409077595721336145163660213583556004866308966075805239526706673404473777348748022617607931876998816876968931859754043643863432825551615838447030513691652119902751290272486699938103272838082433866946367946258632861202131330501484337309076992541407294930368261428743568875984005984041872094566852311860833252070545053924179459022806333117603672811175488828766039613218003080521005656211135653473041325643552964750465523482336032573878862411671886064790492900998250605582328943263727976678619877797813591826133452756480828306151229004496468624928665242647512803024719924100441371505227237506937449735862551075611437138729645798730166642918183198928182695440025605724710413172085003618237564617076731841642941956990307928914611189423141057283049491634173119089900288924568726835692552447623221945540077008353470917260729338476394889142869871278429075293299367048477099721659800771318230973624567806371362031945935066299421646308422891094017730903889441955382683048902449851302575438090320970090174614492507717456223996124465191856208138013175242925314833827350875740686037636273279375386750696003700054915064894421576935144387254005782769064676297808568261189870338622462507573397001389321815976439326904890858170986907842868668432536992486663572074490794753273221743758506794623520531001797287900304762358629750854336564738165516693460585390164737248096213987599393923375724053409987197025112856360133096893896474761740900579210532220548850930597096433269301422264334206542516630664894614408867030984050053938068350242529606103705728702060217530070900284455922687467775012789279481868849729531067456888952302668082718321174550315353768873060980205214579521204132553745603736398458970543049635598101943993942117697850525841382189821361884961867872880644854610191263169632465172405712778968983110021295032749915188547126474684142626982418832938080094783091783311802767516658822972026143662840683316298205013567849511424817441332042985891961444577144005597539304524311022831776798633330306068350635482042142321267050153367285504172891228886601019883826087540889168741398183760289030015946985798015359545265829509561739720037401289188927246815219295297450075932467832641271232903302263188768080353753674941031656480781135662609476363515094868064023099022535036411185607121981534439396913587365328998569060154910370858447636167267048284001970266928270138576032277805848080297202552601425866760257314235556548687281399538604482055878587696529676000620868039241247729610323074463269764110191896220076550803050686295784688259785667126115971055545224483747708932643135278586939076545085756037535110744636832740774727859277787337299092396395606470402773557706526629527458434753766352746895378032798542193336339032873757570028671994235504937597405922399115165431021558930116185877003788789397940849521641681130592677654188189791219292123800140538064518067774968881462054271277169245119737170934510445350278383827399994715656776538346712219632974925122271763633019834536901021431310865106173874938316981984409592072692999746884121877479188863531549639003151857480145094007633346359323136676933202627369948072735528095333397780393167578400998721292465951886112613106708725209667438853711183889885557508562384351146246094244290066403434866801256088651166276983978779295802090774046108131023531606764333286694049599139630364853146677023315855064146720661562371045809844520937214215038481363306787628902882717665415178159210849588304285360181913400904672413393935187642648277501958172424833854896567812437636992964837123780467211526464153130790750005663226403913830310597264470358743685757913018887342005572462838002722620124940616321936880510839255119179085576994834889376224003311007704595247397066316008620829427029719857019767843983739478822440769293355708404303776479449096771109967990449818013106446408961253904672986734058909745642844926324262768853027545050444856011318058680530703068577430972067377384590716474106776455032380159799255260551373499579193132050143676797134343209585104084337556560266958553938590843320732638890461568478396505949936193624812263901357602131333524650001012888582184260008667324819876044014871206393009241449452599195368380672513580679736051446362018207094653329723965229874664463668627714879052447506771478789244871893950561154603005290295890960306134615678673585302794515872208772158761118437783498153570513387249079215654479223823571930607626951068739848911725499330821087688353121734471844725585127702388633163421047448952614423491048803934384652920665251841871448058091553266018551635313534921203085465977143532274290501279695698255256704478730157995284170134876066760802284408696351503585244852249604415580803848949795596989955555235922007296920638278251127471360253497365883156294419966597349646451276162286763331996163643116978422523106520683455236903814708179084315464557996770117471198150727437204082897827976864330874215900994574712952466033197788985499425818944707072507858600959667775953376432603145253029794852249747838971026504610578679039547267289728569009192191157939740633657183992639365508200904902349978863496185219738556063004634003826377476777783226273014571490601904320100653252978267706630035385614120063992773928783049071285476911443731116827762865197485799593353293516828185109954101723445640218110372855580650750599809193141545216998998739813658966941286730341324028974187795482579496523725767924226926667798082236359681746189596909953553197109402873887322788215731436784365873569587820041002953017312757952215948087572734601872643360164763882600152874818555296855813376226379898188552802253434456282741777073242002095826702543823601994636796119400454115552341260544317076394606651882519950567881240049225902299745203154318086085799334751701336290076924859695005838806391366567218630371420852973115003418956563674403088041568417398726644767987734108477122307709908801504175711711790770706947607676201722419435977814339331618117111540970898272053224456214366273040080187631545893614917325249978061463080588540378056145264064707801635921717452975839003602503594249369484058882583373727007238199157191396982053347431469950459285009564129286577447796677260893704513566717509590721036391074922901847341574174932008539676701965236125383023898818939016753642542483349074120622177199374931577412390882016991399681172974947537035208965004177870417191614735204475138633895864666197134794258598264741786001056570640449032027415083209701891299427872678700120080649308847247607218975211398162278034899070308111318818684953050078904969101376184412497113591541575246474816230785586950090016565282860081126267254713323031610503014644732914341500094909607998370292446660272627087148470092691027815943688491211687337336498581527607710988232845004576356215316997207878482441157695342843361775368729706638919660755148115148618287299028300424756417085742970360058969454061439482866481142400052974372173349406433610448050812834645682256048325773131177714098158636818436828247763249145174709992846984717758022923401687474129812842918989755842206854621188466764346194166872342716315788760281347133765349747421338252304258734050297348089898973162469144569988007679646742386690486794955016910761117144370574278366750643855507611613696413744307567254388497307362685900763250789938575038972756475339838039567821256845786409896821939905191607578112922987834227308575815718371895461392600096401035380945843979768829644816249867853380086790464833244257351867506391636416542422616356894797314429475427895617618915742125137618171398472526509019638378797961913497438419987318656485832023533715517692744672926076277612662372685068801585070024776626831368411252396155882231808530202369170896882244091371452594531412531134047142614016315237613302211435560016557256843275403183763967320078255527550700971218533094434788278158131091132727012933613123869843028311876246175257707493271403257047459461265746218973140594794667713019748412638653668315289496767503132905239202408969123634752453955187198215378720228146395889295468742088996780870996259916800697271408370334185304824177201028111166750105099175086793924428879502264605010866292951061174423508364274847758747631660389014425871167487127232773257065453731187587480719830348962459895830789083798356212399226411395020194056577592953208485307904495162718342065771027303886577181119730148621033882743776667765844298783377450811469210621701826867413633887062830637513502126688790011780117380453051666660472110621516644053320619976015227494655607133711660741283832060946149212791644247332826799601286209851934423904066762472235852972385283720046106037451506713981853230702914377410439441606312734593983135175094908108466012149669244123393863053944043380398102523752335366538050169533788248851430028380435968090093958312780402518322092701785724470460509257096834146978863335360038047026799390838766589042364841497205819781593465392420530563533165142299824803075100760942543785239069075461757394870050119592160761964968811056844388380638265294138484737314919542230679400240623140047397640877226542921420068371664790202517254126222530323849729172140279578712982228133505087322635524483593720072651148368071259317083941776905233057069649377171347114981277048252310955792630108516764329544749215804483044234940693919667916045393245859592096336760656696262183939483868731910345013635352018042790152226291311028973646606173091997735626051092663544928700913198253913672181365048773675109009610958568037266917964094916112332065890286819547892495613059394286587731700976887777036702805473794595071260432252965596592669995097988928086167852218995753923742068137061243636353420587457143591806414448745873095040445393859484218750264762102130876622353350554081809443369202787073902495585476385648059837675617014904440889474140790699380092733911220079308706986232434616749701219240834823379624269346742516324890434996627432067807624948711952178753620812393633415051601224232331769592100636546639714277899323424164915050135752110106948420991627551013577607818232424018120609087898394438898805667424710187512732538455341902150481893548931791541192103152623893745793625851186473554201118479090347819513988727172610614604653153793489998219953681615982594666432154586105697203881986238729700185153427979998525836943786971624569578810249023964758639708058677118789055227709159654708451928304469154731455120808724337779622062414027723786528306640158339423011025949474053798371671600481820744881655299337533713947955010202788813317476856277164275171281894124315967908322588666012259545284433071669497306138563195978439927567897998513937515605883614806176087985210225076978589395692318741341254758080663671303544638412460946907429856947461094593010843395723068786126009241887361266995052608655822027373215319629410057069719318112822829041736912054439604673530806666912921258002324043988560561243726694022486253721360933140839166029423773881485667309034964873093439604676703009582949862180668139388547877327713234970035928016637811348300310522259496904580124730221952077120343874577877182542874817455563565775498274604940269959742776327032020245677462149900803239511756843312090349728843342741561336833224332012950707057266620157213076984571091964245617429762048618691268389155492325752455521753536521890462228720797661450381219092691140415573599191234487092438082428063647727805848585965793239956154965575099242733361801364845549961401442780625209224784111857416855020023487655515617953160907541840729432254956395219864293031527656594905284388657859268173818929159280209967707175916000758786764755126133350781834850812555784782637004983466949392227710508284151803205945912481122605867214459749898032578699074448574592163556879716808745122880540669202811603289092956378923412143746932045466479807771268519490594469598798493986944934637163709153040720467361862424182570085453669905035725115602462117679361497153194767607976412320891326599540020095356001515327691464036134710542764029052395726265361268785246227382446115710617422459988911768277164389333299411008468529678777438186633519745928609051116366936109100450134317755243146586156413602694248877693248440241650987981228150470752331257873844141346567751757424890123217019174222005511467272851908927597068949360561045547498075076569413171516204113784086589731898422609568529037480966848854924864344316824849184400839074304217470891220935184674130615587044142597919315461224494479307907277285200367544862964164746647846531629729076324461320517501345153370476355662149834778197129741463544388646327457373659134669739588891522579789696880756081733512796448326218935420538954369035777687651968222770404693581196338678429587405959665300962347941493387537065685780099950586252583491684290861017328987373465402929303167757327448604921149111441258669935948247508034187198091048927330620751685928564848633712025093246427311193499193919265244694889321069038369054791355472704348549565100121821604529301813647688729177321390095442324153456111233028099164065144517187867717980752376039271899075903131464300372952249913638668339258136986152461519712580551885433333867606326903843300654006565080812699547423264367099500567040658896193246052096108980527855671637881811338375308552951192063565253683263947332539128614611456753691069970346843005528505159176665243007520171622312507569781108634262678869968181213212607981232763371100896389833207176085387113023255985347375204430997621794635424442739786853260884567045806760829220178084467708098181839836437462570123374879181726505651304928694689287774451546212539331420837527048033101090782394774361409000767857640809584559733373539505342629928849107489791336164313852198593590731286220737758203432709651661052834315330557121162780496589763776827732836082436543225969348786063464002268959772730920191529951201954156858426371740246283307388917765295094415397332791780604175046450136054201304666290072113517571231688543257869649042686275917021418768485554248341692549178740001729900188016346649859622036642990538237194169614335748168106903547821979864496112954605890752184326178042053660141194285691342250857781592473852721684354189938403227347772368054550851022761225827463492684876690547173766715160945611691049098153740313932509582418030189539189223286447006581852066740536048392162559214890358183705051213065732650921855878073669948404225428149461293601756590659750813475266336667057458439402579509755783851040914775414128181714756921812069155123095788394938272754440692425694150313026746059756592999603525779969937310081230306748822637719409235984443252194363228393171212216502972543968181861242600480374941870371017404101544366472730050203503778147198490946530959040229807866154016622432703633154785831685930802727708346092025571713625816798592874396303734493613462275836243728318549559320032128211716324064988356286608492583976863021547350088122218770571478682314554507147878276859071057054291759087472995273029606784947246232155373859845704271908727796564678142037703736874668279022070607303450012776445406490130293876480173662362162314222327199210128177284012365685992839168157039941736103674624215222703340108036776580073281378606450632961883818123086878733677030095435946631525618609314565430090331418229833389786933030165562024295039497969061350511266340181066926938720801224273963979695448650001988464801438055939136644518124808927274412127620814686171362323871105847668322768862600994762196835754784545324665636918703253789788856110926658023410371319323354606392953871195982249413761299463961458526278315602044094562739660722536615854522454961671820807588868315164653791546096423117504747190769010941649843485755992116174583295550514945742000622417244992042829165832612080118538292325625548217049213810334122939419396300708761544909444449859184386721962558461479885718149046003912818420672057597302568616268975818197428869002770314859686180058852557367776848621767425328945060843747595411656004783326567133774007833454822300728711313875044883190063223735892851845608131892659070104251080729371897700055823850251001062074033762588552162056732953371408696796033272120723910866824268061647461198389810010585437957689545346793506920943657623282797062653890217956583999188082450441385447967915040381645659272979491515171189723340127714072113824476097728770760720601658321915724434852963432621981577439942823801143817971386636331118213181931511013235737462452311503295320959202253452219799677657104162061511514797361104637824316193265583739521481215546036398169882597361709728014926638073646747950462928974917531156131494730661743223444726084109739315747521202101645022302733957255450577575716230344608683151730706600044303210142959085482984176797981233833114240698112415989070296994651001589480902465053783746772229936136935914385256390840092748526939852662524124380002325369041987085590733503111533479018327795813089777039525592905278850472275076424013602864500784016453278886451288758779039506033454287027496088837834019659440299025064209861650087446164410530950078048758641631827973055390871506837910392412933199123705328254443215837712646129675271948731072981124747590789212217142418961277860059379906852675500286659744547278598111261720435737580403726645051776924687508111758029153054675787922055165668043248976119363903335260457115898248339005915778200906063317347876719921622679894769545361125570072334031816299072122357206419405239265342611179404828104627857675065364605784995073749259479299721401070767940920446281297996047879251827977611569461507035322410049340883400486018036416140348204156192772721609293781722593719479120005124197222851622283301312043124117791970949711185899992363893553570453735876586504563681205170599218905876918393454543730028393473638861146376994420321418219369900796885424195528677451921926895770011712624717108549261909344281134638477906964141115965803865209827455774723399430601909578179442285235623936874628014787528288384970046641075743415537731690739193784454741273877707481889872492927579217432718476928874802318372625798063462713450548916497902660833927927287467274078886198570779030258307598876662886088030020820681275533917232528997757160787460811048009305815084664610656325320486835109943817104060553080071823708235052289720528121748840897354564937660402582735531837392762256491437362635701918390815613465676639295133496701541888440198485201153973597908959378843083560990288657320648684029718976571153705835202029255596474881877273215702212042803422970113885158818169530588616296906261358388873913264902336044183136293064475705455120924763227536489599735351591490773958699979178718158155234215180130138889082539469760104520315097357062859104035674151265091084078275019996619881175354964697346527254505845091755070818836447221815044003763725755433042481099755429827813430920969409912544546277022314955379025009558964635281717451251272437098013660736035915865183937299433834593925907475895097796629109474057108835333506857630614255515078999781941183063273185450223233659004013122922928771780177716624217823524949555291235994573513848740678767151881238958009357538503310601047914136474148488224606517040708949400472901043947829287538217465525531855632832736283519017857200413026784748264110202441953350749135856068410140630340203385223567179974590042756213993513251475988720079039519339346899519089539617041117991827511381606866318070593272224032210710280812159495467013167101311297794421931872633499267950270788896009112124204692066021108655381091778574848890226791360523088585485637486433004739439682856276044993269254752589263940246685585518620644353455622638078571123249550436014385153950784640469794245695797752533214068361055633887397722074022711760006977630906443574949036295383757290446723968353522559888458752259565351753469191110805548074616508296914756285728187587378647637618209204567376473879457286362665115563296029313072381858143610913533744213275653791728519519033813171119588887163522017161408749498769432882638804687281667626813699888290263655201522019999248103858855278885332817498183397115366887059514798111624172529334318490530830469565760401344978111671377947577763084195290535134934523271977812048489359700205015139132742405275654924452188486947904426465625810219681342571100887678112249970761318946620843653809285387405317887521459468496106498592482330354556613862666152633963491609940630800831561800173740745688908546192411081488519951214066002587106929813026069508578537661201000414015966565113822787622707103704729689719923391252632688248214230249098296813011830190941359971811608718322236742646183914114542046207282292900922140375509069682828197915870284103054225575332297751143389762642151597723784510697448780430050373625018151251651409684726087002489965418166149532002019826628899546205688976179781363527697053801951103327246024191527924724085688313947233066029945181416962402282389499778472377745794358592868517475200317267251001034880595783130306084420178267300206070310269209682656020304185486828115307607149133302519486550265175966149548370682600562747889738248037092654915467715034584273148528637711890809578540333889499444637205078569732707383613330743971754852571974749549559240787343502948754614516602404243404669376376701808025630781863784267713948060095218280625254792058349785424062484254526335730278250890691480993284012371107372136560655956797055688640246504174696682058968018803801910980981777269124239382098662395599669556523879788524891416709885168350924538151207798279706473618696908580987131117844038091402070735297925550419464639140709269927119091533022389691498460087094789543544867432122669859576331341384310873646583182138927484401912972788572796022333924220797682894649131206730557228436483165177334343613231045565926649290575383880711453183860468233587945957681282314567511530023966793672459996691797819509451814636131570102708949713505162847226429247894420750077719591272932129814155839852632524844454781645026496983284472302702027392807470741099011978381704270186638998256266422439187935661009309769159794226674322659529842979985222344882845005977484396869700836516656419954389348656694329695758915517528675684364277019155495522059771951319693140451211449471765227248418589074741558933398132511441292455058820177940234180417637699836595467092988106129594639698558235892580113135443457150058474863326218712914069805780809542176276847751107605521535477716852140527942331683954854800717946942452675218187524024342198122166515962888203215188660160861555930965642463986529078146338696383386924276796486826635467467025340348270163500682119687454060580716054429784520216463684115460338143481806166539493040146375306144849096132030222170238783423399405389944235511592171739468683990192605217631858336732750760636585362725789499383554002766613358866789261416549855056044777976683407426427354003702898987461576519846908622368816603699853442232731865168880033511788251831588582031731839187083609532575439091456027361304761487522228073650869878001078886261139554027739840584117152409580912159500908603283247109892554489215513011803864616639106209799761695901305520295120155818311085903573954604045094635014054150610840167713152162612922465523124891264381545704141351662669750019730693824845337496201927524671891457737375448761531049386445028234225991791000068621815701555740365872817578252268105088645567597179728156536493631567489089669629765896277329100159204131562892578530960334188837995745927519757669386344333653470660861462658815979905508538720481204177224478504110446722007934432219688174499934078548868162051343789865841371664268107088853964471509287091565529499922410266926429492020870804383909587535969431721275596422070553544940358623944181887968288032085433784729551732315241195622078631338895324940481785845762132153309614082168144666023688395945579881881262011170359043757721501841862826225270193369298960666769448900616557241717208011449474184487309056591702991988911077240786962858180366711324778119015912930177163845953783694880671803290017663840207194890107391916265375651034237993898122320352738213289785304962506785655471826987489426971559163080372943252322451512830797065772192934345113819161734406545181811416638747042287307955356075192593391928810518678935917399929669955664687229122039784258425018035971033133161685330443024320790125343672344528720238361389522574644200192557277232209714238721734741655453316415056862569588404170260993031815151357472119525810637981265021468125792860986613240419955104747751247226165886081019325239763484414647701565095155316924376046680178031149872526347071698721491781610499961554877521657599511285393411061961763959176391931499925283666342125506701444283514901030813646859609777662424542623204408730896640215957868217707854926109854500048303009483549869679638315781541685428677213563805102044627644559652114301550522994196790906514721983432828959714699769638260999110062935946579888417616363927289239570372240615914480390187555462736892347083817625009262505795142862741618928499117073647394241575315435080879133033738290000513137216433366277854986175555160740950106052761967043123124106304501006801016400416679168513722967867991784686593068178869805135268119372101240674596165418982338846329448143271313674169341880228774801515714730415954409414195578700170582781578549080725259986277797455263694438712756862330331567214014249868978362248361923777242995511748122696165844411131786248371642770635845539259157024861756434018443991983448856297545369540365015729522480465494352405728589812644254329174991729196828394437072494870635457696368646398363334261733141650807928844031846941372128034233379703226540804310297429617617456205049915130683222395790885135605217308059895337174254018826595970814473863076317040777292194847409771351223047077940544820673525020817663363666646900258064875580745451007694895697543820857470078874650801257788882815461931852608623424374468266861332568838237791292321149186194342488451543797959077312376832679442887014824655375238980843975866581260200102512348596803199217674934127581779142161142963047899548393891666263815563055110496441113802601808735724318552474608281622924791317036507245312102779504816142623387071519159392024585696927602728521982775734435610142579253646453596970086597266458925856445338770734996542162062976261745998834077406929347495496378843456175066121592267620674660822036856910386902938204575561380766309744236319708664843624992313428257477378749787368652309132352244751833703360857274572518654915992133247703630293652492656924370543509521748132046454552806958967944448969943600615812980691651650382277052204409281801898346516682447261914887062719471053206673871614202135237658113769133694237297515704792629313206011072170288577316629303031639049852552280841452147800505728106774865250042267509588030345924264297278521398636717601501251693467477893072717934021063425144081586909610255129661233593707481175185834994494836786981640617077765054516047940008079399951191347125683200816034731201411428119654308509172812755601959166879227336797953329969992906403556200838165667592535933481816922197150837742184957581027259444232323462044839283454843207300991593281326724515764548531595665155629157747978065003467942786870995258827780842073704931257379782433120306917881368719457339039623544333592450133759302381517153198808898290008252412568300926959570578226455627006203196939885867181201261329775639830449944180755049649129714673274829735894998510765240363250410541247979323747108813073994431725752370811558594620868679812676385526735151166150146157308680304433438819290479813493996655751022760033512936146765536626701319383339805847070390331177240028935485444891163408840744058022425065104210168927358975553261814403366666487810000386546240512355860724459946194085929561049450345114497532964010135358709567576229238009574698276518822195818860617550403972168600120007752792463482256474507275348204943266764262417096354535436999446361293030901316541221816093376274711561341867638299906218111918219975438483674272538936041520369491597677865297520721137509585987780680116808988541402037206259325106975543268120317199122181223105160690593662012768845037286060794363251523557676245930171037612912904940288742604808156720081838602858417765120431340362984617432934255684183096960577502788681455115796239350633607607351026634323812759418598500948523641471441744026061099310046067237747838541934252493790643573848261447518207624585676656016974643639681717126698623696032866218270321267720434328732036460521921934233204527181631682637840595699013425942654902652210749173253524418262732085047969134699369347811403743804667306345877191446496149220346595516173911982807546926109473080193268693437254154118236528655644116418240353880728314744009495821704635479885848468071636855575958830564330015666704448939629261570225221184261127266975645629193945614996732174709747484325402161377002181677877455225659629547591440376066017584217943718789214048003335928009584551749584605328635508053803061821327210739688073897879785430950838259961157200081102157494202837449264251041751440340730330016058396282905627996028818844902739057045589330933187843533675382397829845941295165036875436202814598163720674978522630419521331598506846038500439160470394522907075978738157091936353591911461992541281784788327125475031521871947943021012659486654889291024720372207497101771635208277115084203596864652463382838301883526188621803169785720778707230750790321837807220770114417004430842715718006852089393209701781488768490423030929970611984230708366615447153675526917696171146460911578212474645529778923157014924977559971957191309443482494908261354506885193545868540529166263891054069221727956523052144540261965400495853939748402084549562239662471289488449468799005296178091024091932660996081912750488593118430242826239274137563097840106430654131266623890109865130604933450273110836643329252270142520008089956797782048746642036862132529916898280352491893284683660023179844956051969299404645457639710794120519279534038085930656883272971548373796523087090938504841443294623917186012298817694276126505139288591908127201584042555655998691052639163893679848168593957330429683422901564626791821041442711975091308040320586396205652403305810682048576548451817778769354481238364129931232634238975796220516854271267615268813761889676717856001321952621759095220396730218056932692925477489485120774369801985743125959872014118996951694579117218002660882884560793701741236313788063848245807855194501471408762492723339261393480806760480173145388919113827829900118824598402307494750389994338069644629265399560704217254146682487768169858746246855598782294703315935123079311688787616470243384345137183929552811946785247326139301463207332124799580666601907624210243976720967652133674468951799134850686004270028571527093489171451766785317378882402390309203654082505601129734879591987702711868714552561191928469738742068172761367530425255758387209678984514324362868589747621034170264935998474449285726914777901975851236104950514011398090336740218355549280408861641452195555781235701121640918333636305549333952869863691466719538558228113267336296828184320902484535371022327602506428827314197448074155944692743812797009875740038131982904975507188406711172861575892090442748294506739302190130597652181793278177289321868074348005599363230514250917883726288708845339873839685758244009155624622428788098900257951827285681630616662261124520824754118545232245737171867149919658070780926574615531551702510773344813968883032141329865590238765499633358745096410859704240872685988614270454289295744996441169723906950363175825049670216527247514714913937064080355440007755251866429701676776458705757597004023420622078260110220791727569286320511941099366302612535826323116137982556641382656746062336129706326108454770144106322288013340705429720094376034826699420040312196013352170282239364295076692421017233315406260489381259324009367117642987997750881463323415184307824444572655132574725144249842651581830486579600287600439902480580884104472442298149408781539791088161778884672304490652467444168519132908608120465817201419776963937950336307926371359122554691974474011177723441128947133839691679518769334541658522849808762523830731174940639010661102976894984152928249288638116814495294044500533128693315415813447489966912518016140070196788123166452249780743168254752322304593137695503363880980365461454996056260650401988993423868528497276534972901391985565204864750511251249692702958255773733188134734818567639343838291839886109279261934913721960072262111599062441044436007691079042669068870961886677554639581386974103304705354172171088556837998473514467830934506509453552856756648468348164358328161897730483156711301799370499162393953831911045642025210176067412982477731689317439786434618632390905433741657651623204392098627506007316908599961938002278440418042312437818139258736426131906242372766930479681858606693160935444037766817572199109653937981540491762780119204300599350202398415760241089008490131802885991841436452043859681880697472442781852579860327605358242463746921412137305200543286244469445433579182778347631107871952910689882839525309163255013798934721846464819135775497143944495861832240704958326097774353188899640941467089892555323745923702506288464539929734731144362972752639423905321614606756520669880517734199173503763561382821676951455819614693991197536258139098506059840472511220538627723940189816314568189838264632608890552653322156003519724089089851710834034098722842606868972624901134772648034252075147157200144514459946070031300729243681427820973674889407783213954328327019102646942477258559429955593344177446044205240501555771968141765602708692572169666104672490013617158908785542321568816491185828671602741910253807279190140485366411395352575462576254855838330002174441447205881647005337199522190166424791225351854550839265228202995836219404781163837650424071562465033891469087941648863996453943080632457699683670128118866737210924847005175209323934756921174928065353245632806700586297741681946127064849749053166108006517808749419273274436093916435128870728547248478502744736558821950925563097922148302055838929385745573394091740222800313695922381824341706558595527608440816134231602811578864279352588443035573250939103574291612935262952382897480153989884905799712329536555586128784306572902701724166525491808664424082453536461707602174332737082341339993487946328496025679649131094742032808002446946652262334895611732827298124801623007568660794297455053938698884204787204185292357191098270415560381878219760418501597903686044153812066857094408599877686697026494308642784750563505113083932093718372876855817105203055298906126914769788144483660384110794956919701712918037496465031852147638822204694170293955293869336738598477653356582954807787474086658715464452489174045393594562727875914567049021170396267284967967766922552404467907030647271660827970146812202228113936600769835248633057124473988063010330435721609267249783700243655745470450458344301267804126347892889471152905817270953011257737365214113923465369393740079404189550297741161899096398987164194535204219788974233446195374519571596768649433735549475783727768479048911708085545005021849274739187543423964425400963848625947543266822204058548146243507185332415765826514941423787974607653503666601505754494593321815606173804625697263052355350832891716292001992244583477929556732971238281244705280781408567864451639068937044256108406043424446911638500538082421385675676850259961621486952877513090021358304976615983487885502278961253143267125806933735024670152864010593052708483955981104076281585195554451138027027882997066302422543434735180076623317885887954186234187293352012881928139477268236695471967561249121770458393338736638353939304391392716799941614898268222619080394174443736939546561228126825548337076083165460403933165122157608989752340130462642682775957063005285535780401199258023247222198940741624689201593289957276945586350487740383784244366571875408706933102464892970888236467404683345991265416185467018299955022543599490254579534342175475532948804098138498929768018825767126275238936655247215748743438544912860259779264935494646914419307668053909715200700663238548103720143638113526283503827577540520711746842044055272132937848709118423774153405837180748100498818643240760679460004950119921270403454878125550931326014225043145521244435492953671251364279334804486299208852216102002950723743371333914122330007872898860794468382203740128638057730325195485792931950909722885073276750810058812083366832525679997954892023855002198401187927464388699796144385835631573183920648950077205689582489360922923519664008798566723348260104011705549591792096758218948244198537139013134620979698932534422636674028546419763985045314760489446299940662288970558163712240293805779970440276141898875130333418733266169405687518998726009117525416578155703653606458837534790565702075657682693714422808854337964808698171920907330124416603606775449227589769499851055676920966407108093503390410942406029789511527781707041168479211747232492869001937146797272664713441093209939137784620030601862871844448344727916247069986737841581960494480342811731413272143814871536519059327298020871615761815773203621089280979086521385193943366377539839108053630544088141722526816869840164488577811554686083797304410071052561326019435561278537144057015430344769442098956771605957972934553723862765067857515291981393810689730777033738668083570749351414761910694421328482432183125361007962061585739671099903468592237042334590233594514766816040178672267601051355007372925580145016746158393926407446828715726504263893090310819919425468187440577593244911334664283024107975400470828109016853721246433624372714019375372303833463487405535173754564359305982716017952757653452437539106663561393280595163447444543143731160792901443036922814340875636105242794647455603647269488287718977523896389099501187480575907661437634896402818794742898206147135542973588706588656595557350228042786837753518465446431726817814726463962027716230563490191836153283205687992214077064231613163926982812074758465615251730796727294302876993173465221596468721033663694213208600159375938160494143796852463146679348574631956801605619134475446035342956241944960801135161314671521185384982802062965958190806561318004206581635214435390811139673925984222426969560060201407741457509115406548950409742066442289379137071861088925525780569067937819891540951841439383492722168595328968761316723514843962752569263991443753491946941416439447640716122505215559466438460244179280310546799053369947821157013290756700867922787322179079271694782252544892875438338065689908485814209689673757439633584980008764786895107147442743010164378437967770754977498905712408248701139673129549672233138094394175146579212726907501447441838194138420843886311202588500051095509609192924666472633179856594990068241271440143292290273408199412680413090151147721560023820784929413044009122961002161109297366521881657444903653640300746059382176821368841251456917102814792328304889523157526448283886190957128082000708841611997546815881324914670402048901167197574480479641138060866486333099293634281859078349681251915307166759224924011379322491704928392978508810907413671264430718204088218974420378222738855302826543982297934413491427321572055847510132190561829036990081206431908867324112068401630112836097772461086438119238138330070157298488483156468556389612618473219889188247348879777249810668247777348261942039109362347912134170431626846216928016328852047554288346243245077413208732957556690987148006636163803805179388160744712613165673570936103748817580753400319007149339667263114092356230065668909327810826165906771602663709695568745055412501868687679814378195216963844677639225291131349416465264302902984416916879494722672393077450448801246373139227339752598789807474406549018831430022795802015901493046447308617064473373199605497930334765602754566902064042435158373649100077428934531192977433324902731727149107804600559038441348242485548629573036304854199592735524739655201082446741647583179140973008594185070099726026899600882057797990947007519971920890158351453310677204087085917621223101379204094176499802547885198739040420250001055343657117220371171173834003117244592831987758678537823596955104665224175773317577099599920268424732540048798809315636779070228766690321714859019880890679793803118181380602202959397617313491317198521288259357241919966674904372790375352725040769709508052738703416290972708159515297805112792839705686647312589412282419425777426337047488961020951610314400034838822714390059415375326162960102567540046843988781255871323764746710008886175030155115859013355850104650656457773177040669289923124051086558911167102905683477060433054065475917055807991595281489723525672083080688160036073393877133429524459419723902602256242635426539609353997262248702651662250107726243184332489157896208002273549981680115003998559970943009221619768291940243052653182444735570229694465691555594989459047012743815201666326925265078657694488422003732764376245599188343506479398902611325545843677706978741251430754135991774563342807405698052762159368532593788136293918444841771911668263301114326136561289310981698178670968462937490265510412041109481904356599442388277458148059160659113816634564500820661145180555334332488083174246158868198485629307629117657480675023530119677789709087048515272914046829775070848211330613966885845230508982474342578096941482885078184314428404543306984839909831458308174717140413554543953991520893925493355769022688644234525861025387192744936776338442628426232539042974566784040634388816876701933932630183412662323646705588947054555388209907756068078972874462478917783497953527627805485014906605341822334679490926610673720671999160869303200113278834444060695678247310219089511609058557249245940689352637847403562286195587175996599095298700447687661492044635854289017824303221738899076075902267897211066189823683634118453365455140799814589229744977729931919112960059685100299356555168578663565357123439919690755482020869090579543996582397982826342687924008095432021149416270609601178899735715694041757400797705708438528337942179832665983055669338104344971552466065848513243554495812069189937234690541281382840591003841992914243773924385823816065645194828298498488508380059534422714481264448789813149031108067465679854474876859923668791178898297312826867754037284936625356056249198786341480384351497584969974899740118418467768891514108480230013686123311214887126328061196155400674896789575559011216070093922183248043147849270552180370611646243064967502187657605747221171967585142096682866487285936830273828543048957093779341130967845927203755566116741837487823649761101139736765174574316429788760607673951057955849780672737196717208182357830890490660134169369166185875091736208144289091163325145589863920340107458894963241661003708165937500562230612983551102323608095996096431349324495971493263043990665298066858731507823493206581305813713145746574994820947121121464515344222043001369668490502607208878289250498564320160577677950395713979987518167891420506415329525115952045680219560788203595287474500952285711672946386888437702329172023257446616744684636315280108471659660882722193435880018576187513599297789182199524873837881016237480132039967736039119923816272836963530559961179002223555395563256433343148519840771060641342717001489748421124363816704096416046829303223279484719305647386974068712640714107279053188958832606491010828414234244857896187786838141823604500013338803680364214793020960072280216365539129153303056208543282069106129669529601819070009020551265323358029787058005688642310400895501093280380984502234515316901292733709035554510002345483541842195629425659979538539615450073712476302465976845760792209780477442383315808623312970159883651734530437280696222916695189934042973747972426986128052975782187163066025417180219365656447570488168063321556466618470798753883127294826741658327999919973944192367761568439703775940422731139655356568996483260128092533108526903058140325080539774965325345150799887337297961431723878925782958636077313799489100305391981363887494669762810775646364969603883348614600998629354305552313358814302607249828510987878814950066955318551697269924363733386047769799979677934073843773641398337132650349646927429520896494812359619003666968068697245384551741172068810882197683104038278653033783238326661052703579707454531619664070987156914736474286764369218255429143067937900237834997069926803139237200667719038730253368839323635091494601097969315817582649660568606280742750235090603613936750998930999712437391235477052652423081210423201453663103956520795730492590284648504373373543562457510334588443823456122631795509054519198118776487933551470291951726578160382472103062521059356773162892678890956493860573063700706041177749985267673574523609111986145455368931531491178015356622595154385422163343653307592890750184249252575842677156018510622396990574240465150000338651439113472010309513603620504683266880722738101730221945941125888253156083780919327382169006244711984273167177604570640770221634880820690597025810690860450958799062843895181808151896616715023781803317914084710711540504714970167668256888195965680278471177001772136378438287544189719953331324067132080567518947745764697861526580484802536822156888593096007393715603621239715602480489035511360406224268866988866102016542207592532561826249791407558866984384035276884848945407100161341292870272820906765437152538435298520372818876834770377855535198341935033995633800511223157201339661673237064065804700346997400500145994604593927036796944596192891524287227629400766382000416627477287765414856561044347977499954765180127560723781724766887184031929564670574641981151794111722105140865485308642191808640698758262515839288506140835862801609912077161049169671915237106402914860368603128990945761510096125456284705174641171996258098664413875446814391648818591688904785543620717903716119773898537448018388685631626612508454190814308103078433028079902479949908425489739837944804040303096661660656609085693966267750391257247912989738986360578541208355185310271281313272227841072611024922823940364229769159948915824567683278168407567866062510987267846480533959522911852355121237416328686197955232844747532864371072778053416091760046815416874060780218361915349344695470546290231880830159912339246652768172272372946145980993080175012977201783568660583212796145600807008535122257667117077357904849462093501506788898563227858714602616016352150632102368556573537108594958172892148541484913483196766600836745543017160403398730166759923970063937057630073228655520172244620397105488870681186717469814773823841939587428601787538214861830772159631515571224379763724444605052394217634020916437997394256760058073858254115111431933414610587033419738584710380720304209481674132067387967564023166617692691590042496761809357768517720408234871291435602524457592572508724399213895086942781579428710737208491024116739072305691613375969232514891748776015263222198425930174458966074051632539771315320408925569822189370507144092057576916490889275773015703949520519573142357084067000857756903006385208946865936001985050930994897606396823554318213927881097539221292575393609167158607530282620735627795400115102388944562172332841009828648430627741326700723301271363983606998650483293384242238421094110646804962795300200312826747012456942587301229594842558833395091219680830848356769756883555293351193561086826132817150889704160886328509953765239298568766740388081625312927203428379162096942896685988542158333378872040710365485445346189644777685843307798385601185083789859088964977641905310718964338796234297815910338579449927146079368596938994204551014132769783836457573247128445181374131591688198585580123198572144310520278606414108283003807013747837123372532829574099577832035487329851566517195303934274068216938424757340339091258857645344208375450672133343343162213117112587096190146528820930797485384007509031310349356720133760012542229066259244417280570084141203570036303619713617120523157954491245332246775379400235211359789976364700666178982058195866576421903851807165806691922441062241831017935750085730328248102071278499695901730651188609151712396904993645370276400231114826706767673259477376292855453545063314671394379334664505447992569229524169007402909175904724163375639398669315562694897865180999774799445885904678610199358593441575444071290014377917975383511201602056732648720269571775569637959717995889730233066059111452494209764916790258305679007268108292171506466879059659631894115752662622205754048596569549466909113140140509468412207411951392979880238183598351359635627768896976991681018662050376408217850499027432035565242573935500176203777079592211864230958245563509232210536294903588357927807684257574823944503744072789243370167024265355864047984407839889266781101734744175283528934202888482166344663637532705182237161810862618917569087152128466004668541739146615003806382999505851100803422050451342295432115050273195096889287487786437649766973752788804826135357500145390113826432528668232253267087391521387278112285317318510699410980027622531925862256904901874660031159151801115403426603519420269489918237921512825512897009600594151476031474505679652974591127294126703122160677250966838442800662455570854282046322562907211119608367174159109484582931605770515221008518397163475798706068387173362958291355945316390090565670934824124840228326432789427536874467569522857766405988275013606946224096192870840535235234310660730171701108467078736771211007107857154626353262326176454776390393568154628823451465708024355951336074961361052091471479841361423705597222871683164572095852624804800134734896195586784575753824090590679810998463754917964080706248471036284483735594395938060061341808480063757798873962038128004102325316380805193013651963551726299419385869989599399801906487302873680897851753662512107588685776663596733144899655158623210957146195434886127357755923586988828170222387928324543015635579990750126726448524019195414849480486150726195290930349516515280774560986657190055499547595478369612714916749779568535655607574919777126310861388732635554545101443466360874050867634180586242649068650605719096427698938317899221925502240175145567406949902326589027344328523039940187958241988118725053050581827909458218740297036520493325042640078893629868631397884456071538441165972103354188097217219863487778864875581015336618758206432105460293704274688306068651456520708783635772069373373964240033701990248413928768055180911041584751797996086330191164358022895450434026953181361214245133877087521626170836700145600134885385091886550845546457942877488422914256157895233235827792837486747885392135771046605964596138003725655302036650372687919470986663008576677569126714093768516793805170766031694654866955758172426069787507726865041446608777694624203907136876369953265488247552572889721741029589838910658640321284556615754598573044432837655436187892761060650707358268230599587893842026118489878628623794545606636087582154183844020296357313364445682381938585784053339390359085638979695264844144079514496822898169306172993153900982137176748207286469708078161578018987591449103473274831965178616454414121614119026201889702587436755467735883101735196070737276428158850247793962271769743126832853940200947909265138894548573410831826309875818365430679036012007745640944262189789393311998303032149311568833811802354987214962444853657711405352160010173657891333437975329459910277113707706262624817968686581370344503477680091833807623818768594864108259525287357413529086650334324421318334179231140226921717891456958676327099493417856200770937345251550122702802250516906977032186929312523864540325244446859276161956760389434585613751480542813468619212803358992077557251484650473510648196253891227590498289671090132837423978958840006534502712979284865471474310267258300846568104803606540943515965911135807379780723103429635454497257491838743980035946833209395616922672956012796934178658914776767169119379945170178778876338624220054522643382190935059905845214271053093643059473818043188716862374021696760059588053340292089107144859699863552771000202004545455793532269515858871874576135711636318836847632577748172559568438632802965120409454225468333862218908112891776963946798024308170644612444897488160268859367939288888152513937830712137873440174562307227682712297154364433109639609463860085105027701354534280897167433146953475011751640451750436167899672299001364588126353359294444343287276788390308199008965901015615868831288282175896564055212234405792609798594190598454670101600714345507773558098569157431317754335916248596388419558040945095130928176497553800445209348412393187888756230554785436672629783580492983168489948389930657363285932850255954719983407277150351073005082245523579046723614783220190642664150121195491927779396433812320148708197858175215236737933472820505847916519820661758265936610909594928129605021208925164999137682434589146740307730317946145448789225343683500846735520267390155346514192114295380187903551946021322444883830971649017748527637952654384251064611652687774357760311490812624378019302786097951394436331741227948666077142843108031594035478379089030161441519113311829515713886811720069810581371837564050502908361317929281632205218322722922186734432691582525147439723738613053416827935195719062291700947830885834072394492448496097398095221708297095249161012091556153465451657702474530255901411677430830861315806456676322341992599570840977044160098492560830331379815326634274637452178091412096880547751802249622878388506823885779450706839855428269205044916814515192447635875062878472900229656217030665959698910030968587882713216355467304886280465111936152893937396480555533236506164118714759666041447936907359628034994322798482732394289933975753877714438451337912762376566662087835033459984614411923014673796152202544509617091487486506331275652373283462173624195438617442977289829091212607357955848223181507142091987973046672516280489322182486244874133366164200244389639430894514393168004972198253802401513651554379736010918304252177592795079212513856502482865243676523981443785873102264711757726158188410492529145911058247981971595168566581223706758286479554630106858537359534519170720621157465759749717591747308420870317994498548533447656919013982006608099044989432702310332165446292448232320001935750192926912008050551527001011485644113223184709234216729580823219379899426875335512598808773154417600725867344644080637995196751426656532347684018601878924477678358555970114697114571696742760216614625609812377678445643938449369827652574530713982720208983073359942973869669210388717521691908924352738545446403846252809761641560747122242958555663593077363890495066241141198355493655925425469656711170569238835765713162267517379527381954872478736078393888864705661586719061733809818470238878700802011947967703124735136672876790311997759153970330149693650209718126035338042373818655345364625134350156005869309738901449176672171707897768610179113232708679056182531193174873556419388175520836366833006323429477672167227451435166718740770492645194481305286457056827631363642210352071826024707710591294252974442581412667657141339199009396109127209929125760060827311362178043712174467669653799707898329470847612747397490057227214737242994877774623453631862436739270556555292159208252287385413112519461507655338416837590097456352640156623438769392786172813741571251706217033096147579658344578478576467269252877318259006797064635160681466188104174025317785989982065358972892512015780120352664638315405906959746580251657258078508972789307097877432055154408232924986767903621337973918292504557442518823836764807763460967269644612412731873060897327131868804263480020972909872228456145792685074890295016713061119845942885101331842340247465542306016944781111255294315378812123127156740083002526005986537472544679320208031074969204053225525571164747818037483468428262812902020228815961599903291968511103070600533563721794516295245255071704234118504356201820722895994109995560758758670583468471962864930375431176215681286503980577350301356747204625175517937662642504910758040748194005990833655781029357213632328955476971057353463944825200083159874181212269546732444825990512946248138865878229710999842307689819343267873614223259649202155331954366907970653070230866262157316347039036828030848207031292594655520679966150055428521007092620352756208365187906016172246074289989371207633388662052953617476898312319682753807439571030454083047474069238540567882153372491848830201797603169172983109893921496761269267258816308451271973157305499602355607403903789185255704551263279702456776668375388325439197058412659735004028344514016775903680702657003868183830429875152958442696577581937000236275892299168052572076008217119966654973398582727812307418021474253513084255574977515624353345230512868131435504497330015508504780329350614971859141792445126709370637621663177707173799848493388834185313727694485069078734258983926242254499823725143392112107587122971065996380757201548518087789936639377321337759159678170509011049669385440350754534560898631687541261665697802716644245257669827874566641936822123204364175263322500030981145067402804743208527827789957521171237558746960458495616387378419124155238867509658210170898396324778348290393161549724763567973138071914238057156418577117889067477901716274824010666662696650645616042290432099082581063593995210681683207834119209418198698164268410643997644850570123672087309053172004947318584789120673605468602517723870753573465863742908313033930452273431811152296282876475919596141904278037631819028375800758997670462788437520312829775138414841009700809102204864062552907123164515251169871048919374819712130768696248396132320878447962912227295841880602257750935769193560929591373788095510992261624776905537178033121706296864906924164885223662035472819303475430879120035622785802879423859029742640361445999224200016912513831667023070246832009430729034133205168756408417984858632861959106827757979069568235935857548135401013184304403803166594287015034529256487132859997375633682833907771460428611552161770675159597823382158648128375287522222108608874207653971925217372300568418063006598634275668252496223643109304271440704368787773203137007953310756568238953966103755486857832762648361540113337404696784663113144181133672916389286170591510950239929676829736855399574981531265681670848493348059374052472173192498362779373632178679178124861097508199019218913037395072754312797703901457480043543374566922353054655688436768930096042651554914140029881117723748793717364279750188039574511999191479785199339247728025549139199702844173418543936000709782200321656793524872404287962712385654167093057605435833968548381158976688601614723464497678220190725098278473335728959348660597836056237859817434996180475820417739691575930144757113112417215252368257588882012447774510654409114004556443966272035582340077351013255271251088441789407716490218679185873192372599925997954625026960932460533154320952787955058051016835079068740445701200845057102091789227636767781028435806470163423352122051594936343562635353458290053043421387789622690838274759861291614789028723285688259834628101118542337049923674213588445744954777140108348061351506515711288841759032686156807051033953231735089733966323570653466414065678486305212172976437398110022206442841080400448498245438341270735026863240566924576561207192465274650960656736819135269893996819625562339087606929556796704128835508908971427327924462218772509443038528869878406472423327674757897356352377776422342803885701187470337809642607392673321315870734064671667287529784189125761879586183250362516414971869039593253018437423854936144695385602603218020943455100348298918772127361608791765178337728158796749744380499832887348474523575530520557261766625022236975655388637267903849029871493083328274570462352151319026607850389327468740483016919194005612751725169643317429604514719817148371145763279040487504903399245173073406252318565156107084341651053571514502269034336778265658478934733509667455059105335759349245581653317420026965650853354630913202085094995862455411488475185294063876956817111547860149210506432717315354182451604687712224341043738018706334511290770559541137239350022632374932996036151950653262412819292472401955264500565522665701507104551050802576976512706344424732579303938376352128029257568993081503942047342570568949135830364318606973922414164884751024860296947478166832421075008566017785979227308172622742661790663765861158087384185520697971268736867233451959774572326605867903854831296791665803898317958104112258675887662083544826395915120815807827734091881137925114878549796933928283849512272511784328904395557314510143973773738801544251257263457908533069696153669294756904293842442473163861597972468238792649203197529853880401930942501615811663719871657633711405268488903323263873122603340982164096635751621919749450397909284174589628992576518269241680253314174070653363760321862034554970083878927752687220866613347163875379017544066616627684218726356292182284229868894604974905889938457532906851929037587691745289338011139030313298722784683803600538296455316605595676016096704707854907026319748479962148880272031295096718058979049346481713534394260929892289152632674216234579668652899107208637367629104575299794492137744668629347724346794188261632944645515314534616161309934826747445980632557627502089258517076320740277613216298854478558956547376625716107662247953498439168852786318352783054107225741143989567829260229568801490660200878121551657075697268002494336315472189934339408663276724911299477586297413152362435085889421610631718566626491905615703674900434806079497332170314521434108096606536897391052456731128939941585698638568784942112417801609605897611838978931904518787002728132281978925301554597554150453343269521084794440710460006357905414505820777056784864843612214407404703479534671219905695346791607350285235002387914147462735901916132528601179152309161958442769224852006357747311696769677864787377459391988418233689027619176324013495802964670976241903564288932964807621300699101745052809150740979907643758362574974051990799240126899676764593019729133924154179162991502382633248379791857702089219036955198277535992947760776007100492241239678277118524531853787322314823075668770452503029715164759514371215488884374577019699966682700211704323450597347218306535994887893082745634766989536683717458457188026209544126952643172474932419174427560251691409245806613242651847397632367835298563241668051639873433253483688838210525906400285076225946834595575524969889109418145630111083812703623910411555805883665832407667263109310927076182198164643745474396563479728006636215569286516761598739760186191752255268389098692370777593051993585213912741978932518986753292513347894702168422912277706723083269085271541104265554786806896510082394632866333552647233103548420949348181184422725370672333681680944283230373513099368939284622485228084301779885795985564568240450256899317801842665478689941801488752804704898070458153653581145202669681934375775582701847793932708060589780588763459295296817987573931031899502310740953338501997827598095537745911542263829307496104154568660507873968869061588093692573213634911290970519930879839201190607411634963256711573349815112736580558132450813861655990573244747750416044164173391030616947815238005186467612692112853059928405141212181596233301609040814875660584990052750197612245778634407938543371737577088031485154543834458486185479821029649562599330106665921756862919088541456309534387273814145674102571443167698222328588604473611632741005384700137594281257070961532570719980953804555055378597205414709201840394106958679857545109695001492471020908529862893069398737370927686046116519936631182426441602489736552643466267124410927144481275549021891845781783539666475713518850325539574888646127568592064911358416673701713628919785335596601056248449555935471393455196299077113331493609564423865330541547413598492998296614416999345969596810972114104400831947894160876117162186606763485378744124602439570963075431091644899477441128194471487908400803119748421361227922070121776576396738253018804224448582173828105650594935004149552121212455027998258891321286470644065534778499728212856899616764444285162411256569515553228678024764102728427416667442425733442154144180396479684428646543695203017745891584420804366125005558772492095306536740601488866271494627304858394273372098013140696563087661964237650561313438119452266843938217308754422349188433937963486294929753597727557869111842425879175882055486483151524845391205628900363027369056511701730016180329263956987976345709888839281941900125098555278057211867653800264292483901449948825668876040933057256999755275974673513362210088284891591533289684304321403188528763665223568454500813037805480090903059472240166875684914112968852592294131122558595940223023690774076120009753641598884624486587773293834789763977784116588776367315386602652853420529409598776726715413015161810761678510547505828983263687849978629848172081792599185728239152257417282211482826711361996983141580850587800905957188403410482056556402776364638526076530658561201325707246316845810420278374863071811298332492128088175643935634295533238117822501651500222423953449761035981452377872605956741096890734820996125823800122352884886595385398341106731593443001936324741015981170233434524912320267115408295061506212510284853528243765736910028796941668059149495837609301455960306711274117061844593354000259557635968102662925859039478068399331130797266879203082491681200869189969860538299856965244483012510795386777770261271670084000390262197572622623735941850788824613563242868791288410934982473354878533331335140040852915964211802193103163312143800676313802223723119867493464565861725779924236224961103671361848034409377174356583799152376594890064072162052000817336317670097034844018466696086809189367166429134629497534568474449298500492724721712192987764241468029032997808740242148904106285614968036145611614061095259504771114948872975960363791453574242244605998268208481932574929839993253074149817203360832863258888850280161382827353786201571722236212649782788485697212792097415853417132190010834717310802565002135792978633719885363885538716039378748883693010020865053042823851178284193154301220062896026520280696895857625564897281228498645666371447098161111626721067702165849259783018529315168011661811067601820916408707737812738844596564406289974239615401068629164946780662288308416298292703662503847158489362815425559595103386195389645957508000055111946771666056315517557605208453759201121132131659932932686276337417691482301022299057616643425001119100238704139843565236935832535283621844003251867406509293559449070269169369211737796668306983426957464330802915889496346566867113008007963198417525305040353193318023759091263116809840888035581616801565493588848968726391489444262568479180974238062468571125984211533422665108701465772648930835766011891937199508098017949030787189299512324873949669989539808942506997932749747975977573126681648280743922084893091047130505028469864864503211230101708061754858837478010224972636193332676959295259316160503402521634552568606710210631030959457774797114561610113755404432415315313600626210408303855555624577930003635635796214878386149199717961861956988483566315383949281859430131386137045956478472857611650347663526130106401764650678926504128688289730819238989124622318166285644185393309709874718852403344355439997267094467565028166972768744607935843067333807424224181576938599568548779961612568714295862596492067045960202112821357539078158461566057382795155382301201437853416347669309682843977726313828540281261738100433579276949855981900936208190105570959744115104542477443686620186224627199679071214154886510118960201324450406305557380297491593556512892536129568076822825957645844561308589616943898414069860714157323547036329643854731234512563390772642372951549986938950323517510273382367973612249412131438016151553964768129678402272249869463749906430567805013777313992497983434220980593510750321221026693684352778366528014611114688446042929760470389305865246119349211481375692252396358738987612187404772411482047761190806591013117305920929739370576364632752454044859915365459870300424242003984455796017282553911129505318943712639788251510269585072904452634915919083353439592771893498405657103187395869925735449099912378280134363243098476809725325929635567424333674560032741837865056776065225511903566232232674067416179113561504785110602073238188260538217530826045077005891158742379409041264870746368365149790724772794454989798383879990869301668851844048249214249353653277195774764877579848678597514235682565913227055587691907259025156848732335110798262577100557694473984571389452173556009695714618424788072715917048762780738118564485511063816867469036171205611817870186343585419567442732975787469202774063324299039072710109841551363910317588773187831377884826435960408187371245559853112130400896815312296540702253736862353852040935733860473611646095666923471776641262323222082842663081953338005931022279760871664242743952822572171017229759121619896936515175172785142841711788738542473966721736278994988101818637924924877081709902761461488774037352356914614110781354838081214582976860484677208389915078011585952323079628847849154459019601290655568923447288261972977266370493745742626040688028575117225207899662340020453217190439116287855018142629829713501542045361383829054154232410171664793506090388616715644772302404541248345850433986238620595865574853930720782305049732105062403510368385010227168068624569044571556765720428225229529828260904563707914428060368858999120491406456252496096728335529471380501017345145687255529634131927926811744103494151823016481302067770896566805994528587868427812092704916709397765592747938092752094484045673273712215208108065231344725398837861406520728034948441655892579060106502439751941709105852173995911409088648108537692866129878998521086222616754360489807074053275223730735788287058395795738954516588082873645957628106380588565350214446567300754631795553736826393644510233733098086820623172686641821124653537749602206323994836162923584199121348097840338973767491937485153602989441573057688318180669376109165521883770141570368844598050639539690312489969659275123598662523468748591378100922760121203321293484730097183039014115629984708536259213463975502850062373402550994805337710896062774545104017289429820207137217418280029664612026509003312927506223871494301997013006254435304443900781171080708067058823098176780318031738463700419086415607657127683219278907975206527287679610328092720286973097837476686323242526941777463610877767873699931810588490820766348091598644656584475977174353794642069651452812765018463136632867087530454395843512199104841582615331832708999134823424056896684883546063586879614065657687917879210312321644325130394205975325582598081296214002507232803522329206038678478685421960193297952312075011867194575569987520286293927753770792775344916090263738642874900270254285900792619487612335277506342453581044492852184665607576650056224972505705004411970249065206759236819809823045826984247806038435738970471562749794368896628753596862905411746917665676233009429621761756524936656313445352806908549943611241825185658416250576903266216853193476900233688138441653757513903002923231114799105102440580289878267410739178587644263229728072164629689442311673224228418254209890177755140967361800797781990564924572506324790979110680154177376109823211856035618241944361079917612732187723094807155802956459927556231899365658929397175595582908149052891297249964372792764140336559466996381974692886951538951524807600681503741063451638567735289423501530818012163470691733779783373916562348252144628725087127902720156216428062126290728810976164706074964720857038931371655512285231178535929994847556216859795851617303386121258648043150521511509908055793228540230709401706913392255078182327586759080099348094224598657697577401033474468466080435046825929532838850673115922301051515015181753114886803735187064284315912400018828432614911398170949942813415985199402508937714007138209398971215099220257955791034868248063151981985772811230804431361898016926184537628324865637921447693172763867576524404569541096019385344976966596323386435441340493721301557118671075201169131634480324497014407139849214427824015934949996949459591603625500084121743629588092823617945659808911060479077225756622609022471951064900459606490771814005248885206450251672554164681079120410257564324221708339944628020691300681159490799171606319095627906668970260445526371864665221528652647578719091066210060696863484803546252369510340972853824830307460420128744782818757649582300890794914301500167709250878650751424643364250845731183483005393610916192485106264849964891169467118056889221245694680870639948127108162642167758779334515274355578754983789028597556802858242006470466213588464958547447625401378898485478633646675305500290301234825478913388108513227528021422133099850246650692491239900364475407069312637163432613544800574445584585811172437641293901493359926052424908590762254659721235723570700889755252200027948933601106612075988195408359626626036803753047605999903483850085284716141279548961317441080927602515999837508201070776537671733652117961265837364816309201034823640817932897466915269819138987710442607429445836061683231686828564769712457738403834911697395892019707750011819038758749606548990801973251447454814836390593592038154351253468394665366453013237984402111490985188114137826421033496131994743425180107227849386180059509990978506168327941375852860967112641364572725005397139129476908971371591962048785753065944596696624154192029575774733830454665057443624670435999908094915502306039272371019306199841326290779062137715149194532109092195763690063143671085962434524416295069279531904279891933386182797368583119465440529087722830152371951712915645532365728866006062336501555686744537859171745045140259779827474899059607682798403018530845774979241231730730409904452983624480305233873083419096146495055257694472741214441342893183289982055145701136180158679846402769214505750025029053487848323849636592218504082185785301950416884922531290380322867360752977684267519699538314927944981968078863571136511726030655131679826989024710260510555561069355104161212943944008545204942328505690515832506501037924411864274369039871823619293642928540184600267170488404802008820014812734474382756312266831874915704567039222503833069546067881629247160226201382700331271044416470575605371460208458296718389320529035408605016342640352644833123116185099714048948674203138572389136867306967344637466623471899161150465585414543171213916914097560341537543495892600631721211661548432870092618736383821298835444289707909944910521061175144953196654606373216197619796279307179695010158012791535375348421564751834256373931203025821123021210836706747100482494146843719906434656026067801818903998662553893921248274245385126276554237959806244120673531076967449998711092849414285101144364211166516839790000728262845030396945065534757380253608372327510913465241443541705268713447919755303112813883353930845715078684341725821828464263494867989258612503802686910707453812582060772423056187777687705242425516485815770653868176031143119549706329968768169633079403834891874290211151557526832191001162490375051921244252335649384403800325123124142521153135229127149920708480767276250396050776328596469894151906747424312943237484060435881499474881903472761384637045572582741083821340011450608633790147408421149498456796911153849249301665152073914285555900911333765338422055228342791652143147154108756498009153394610231678831597417989484435183792967880640492950956937985194554208862758034020182693644948037844269718038842107289270233694048312145869180432924597577033105994565670278742470782175016546009047732303803788381387908214234420370414848137513550521086929197574829373228849839934164748013896233154457122422894690027906686826172477650115277829880672547934395680773607324678722734374585081732020786856067185004128103373546379113653964818065084944284979602325758489733267726247368145169925625349406748055017796628312391652742505318486216612489613787160537254135300332531070923346187578595548955981146442147154403114993276657713294360632640900128385010354751826593270712428318530346586662840303278046734563540741120168276813402689685160012480355431371044745168856204219244550052357725405965747487958681912401186872299245152154426308904184342315702316373256569662532265178210211479798158752399546982016156407084278844330246670700262298798971173674541604944535994377315852267683049096412918624791012343533560370952549070496490058497480019398125946067770371946084439197812697694132962163070926394476325985953960292920153331545180917162151642176555845482299273470907288822692291631998250270802382899319661129486746462878751279236840797414853313254087300156321445705975454281039811943965668454418465434273077676521465054292024961093432952086923604563279581366142553802710013517247307358875224168640478228801194324307269309992931553117901117644487762957504242959685100365413971943650720379284521447483523974035911269150591950123166405973741723796356323135349784270898240277237450421338707369637621979609564882519463962442106584507286674261483971958949374805054116949030026733949379528856542409267050812651635944444051209039664052763243339138876233356759041535549613099587931092264079125009193188292617291222520459115216599467221934240796347118464587701072779394718838022175787157082581243661970083214488078338894966537234050932811014409960239770965035828517082323765500456822709732226272809188574805378704885189748720672142415277902096932793527194073933176503264797685281126351698803407618568420470982824068255046558301983922538626668529324240083616957932109282236068048764515225341666731330957366919285776654626695357527960949433499086599038972586707724908863694199692176481665705936025319057858477500255707786751357988857031931396641689296829009970717608489629217597615579031547190702204547923446605335197037684663492455601466112785066926126256354310925031466098918879179996535133103513465795786195810351096612021056930092456247397107233766537024699614264296343741488352077444491539747401570141582558406704538624616897788831246672561549827156899822267631049412208927140337720366983211636372383000341190761558174485945814232492136404517822221686290180577024626154953340779165273354138039108241729545312596158758216665178100220739997072161697580680147190054815278289916932766079102951912620113436007549502746295206561994632595300421382843888986430811587982523602516463725932520300420836088123003078723978697719939893622207469346621061255969357107104568007819664405855962032845001886480328317526955073715205623776723504288194719759904505412064988745603208038235268061108777677864772580851771121703486155282482048795261347398844688426854951823571003004160803990914932204915632560707229020623586929322646758826111471689096233169406642498327753004339074021951482322315446501860184779930746306817753397619708221297321012828992221304754603151418042332706809153104591136809889278558605483150478314743335526865669228934313308151910070472169584328548236075292438424955482145736118190600593695780442855317481670091117722910834221690666007318755148152311508969887194393440023027620211405309606748516169008520938842206406567978370050502889653355559685494787363510205199925991316406545975015917829618669352843883750203286956323354467897114642137855192518057111886785541391557603513937180267630511916977229893071116276982327864103751747355336493923851053905179550623874557977304575141808352890618692404683552343733387948276458285801563008438561751240339859729243269478960687194772093776424868700212827946045030493982111747653824130397623444579860184733989225535338310617139371537328814305810790619252168062976579916963196281401426594108431386758846588864946405208512375342226905981695176523768228061418072687483253740734934920341534611082729091657374873342825707536352147537362195964509133843108176199756956118547077109404204455722239839651228973240164307621747042040197931515402592862228149752927898278252994661032793709071983118283459526529517918735868258105055244912728551875611541792123362019105044367174064723794748555164513886303846665206212082534014883111567533735095212893198873058523676824104334805463211434446487854685449238483654202188891612298523806003372132752920492693365072287682967049040561487507655296346250065686202493601340398624545236077821469054654309059965187826348523450093381511930969091394878571135538191785416879802345272635536109271763903302919264158283768990393549412351807037319187852783783658233557197541247730504749472465708956905444122372149723130551033689332145834104596325502337422076678269453059159347502449115016051994819881203885518527971241791931559756914714222374417481763984161714133267418710546877547048178598630413800829531237777035495983552155010432181673637216556690946115536788193440156719047877996826040945731834957406649938884729684207024011561383686354317804458782747883529023134000080967934176285554785122361058677239213068291228430590207732344972167457171384410555145232561373189624990111670323986299186622828191017396956914734829631558181921434232275211232326688158268073381896441376697553592837566766545108522537464563999570363768614256265108394360112156268247984534941505478519679220697911708298108159805856877346987093238328723636229748351644984629650461615723091314623611228587710459804943491948955805706665653402293657095997466846287334553492732372714629495722338852890286059181235135591456732826615885287120860512019707744190653901990839967881857958563109663796500373262880618133984716399090111600625029934919731305164390812369604939521971881181439886828932282127152788305924452563028714972553505035311117313609430054226467205785337719932198249399846448980464379109972277498688432695745481129031523597105880134234343261928231081130126722292813382168574988902197760801640164598628443770887200026112684079491032832870842560183167969043957643885407957445463199288510806991792078863332689044071662811356434466957600686648414243067766171541052820159006740288623162893484875412989198837362482392419226635003197180299119516031838214492329295371450230998205500220267753819829411300297230812408958229258549853074422323306679122508692863954979664920658754825095202313967794377452039493667765854744214803045180975875916718849165095042985549738133727813553632535760294492456273146750013504128416552585365885478446074558778031266058839568421950023408250112287149156699299398075315497120342679216214371255236705674071786059585187536778509582326830491729620904460574873884582690920001898380757077433141190643135708788238522574079754545870320058205497789783565844119841146515223332745811471056150520771826369633977657376567951082171443142237524987518100339382447207473728200861654404114346249902775984306591982180567602584214663255745504009123190392259091812729250859474512605238570640091155257398506506209003185226709570813978060765408898756967477191758472815683340499238062256366101715261521862904578689019651756497750064030753788156888444453515517017295528782807712683616102082923992700832261529128754943128397635772825278512441347810441925872150682680068058819327271928414889472050645949976919481288319678855844182765523550948727341387812804681405453735942547207303186502464996986462067998073389568645283083103820406526993981676337912734041039686678626421964486595586785810220897341334675980866879576031844788893555728613678354287087134818019805573396728703351159554854694982343647140573772176874368386119380865250261252301480969517524803879853844564698451346864952282392028696906637080095470041257074961112484281396983903992450337854514504175871129572087201445746655943410047479055333320732393113218122801702994482973811926281664539096854785796252910573286031126376268307547159260906881495852619889516672536442653310147294157915863319345951561942567878733750672820965336028690013536707619817019539171636636415056456858305821000783632323767887524155122109133410177965459887871294744408315742678330068066344907913917169326846773595164036528306333236835362749426714457174197876042306169163115794755889330625640924413005708938386045385229943395329294888415771478062214577003855913825463411972358931810087170699709828351083150245406833049926484587981420160986747600067323807803767626551523823804964458528670476950954380434470353652406010956786810135326594563833868501637205135283275881546799300508609926460333030579336088810948670666473245508601725492591145751752041298211168957808688868634454316576728646210348455959579999372630107666420147236688950681553380972634273161582753837880950382442724480014233315505451457420674319179469299603016389599500716341638105241236637639206057442748475821954237553909395114575994092562238923193481486472095244828016332477144210406847230131486181507884080028480928173151152046046075237234309293544534324850169781155655746574531808866346156143757530484749103559362294559946152032724730057486001826929855442044576673019123159229448736158021503021787177800615833811759901861321676754325080195213320036036389822620909020917220282104013108685660341797019584408920080371132914692893914808031882745214667138336175182619025737682933964006303785996670014170768683485259983639344988925193540290849879454466930378127522058409444994341947203205558224306411318372225314460501862602730573931840951593500067396349148245842604346834427899052735225488307167758669483095795234337396723598332529099680339969108144834176978236348392123239360763100395056529191078538485520434766339464262597856006724156705144814432750897481452161486707852317265831106448476111734503670952538578522501702031488474889625007800718983342694871146112873370398546859301102363193330843976132794200787195316074496321612959802262654271767461940397938304235511887198795079550600106908869055343454059815061712484388730693224999235853978307022323196923739133786508026625947807932576405805609009888925982906138633100485595000175729554802104954651766894237018563170092045945356308025383965388665790682091867444750966705442879913599832599991854989100184100106484102293568562555122094085854418391078037111315849542211497558779820201655038899347393648304103698764645876103159672191592847278450916236678725123905632705859268360671194943801807593233321459588826972943760549248574126261476700770577826656639846696831278303133883835475715278265770412363930060026264556648661304962720967287427862847214551224744532580379553537140497258855851652168086837433776576132654375851317607588291350565873153075672163034947297362418053797822149542808421554575029855490349312295912621022848068040427947419915098168976664000584588145086331502609918863803309903810851952643213564891374266646612394791733699249032352666559182778691677310561071466265764856179128324779702138953592792278618652168944250444207026336581604179258357223544976273273648924379662297249235240994039401068405328295465890422550905762361083143547617974375729742573274459708542078376333106204825310791361143704794188012597816668036907458851429638485689602031480868893610468324681610975211819997554602196965005831367857502002934075813946704274979705620364365255439379506577788250174964151407104173802543344809781423846730197313471529550145561903761527728952670483801314079392646451550457631297403213409067090406261813461296198800915923332997752216252453135155218316488479066088327201071928600024717510533450708847409601327485124713163608061126431406295912613042748450913114590877761903828437745153375557709335756147088410473015126804955123542997088580442982542325344868660557266951590605989109962827894037369598031192255191224745063556087478806832652266525953413757201979185704753411450355840656433597834136741003910902328445097661324143130841438731692193075517837348398642617307021923450958500061466057723209716969929251127313245766316278151074779226405029385615883332252167855314963626107416976672379408968908987887387278526890741815562440005398225215866272841972068149891644216145034955072394879788849412954441593212118198930519486799731679383036550599614559285278733977816770292505669576647899560355809623935420919373755680780369628181602151698906153876410025168101138165530053610293507094193438819005526373194894692874110351797173952739046291645749632335187042563257949412711397813407647921186982397065012382834863085004594110405790494876950030752082069742438855135618394737677273577399540596527146540530896108771595341367095587279947816422325354414767501481749247148444695718393568293276488651981870752659859838607729573778936290906805539649926576116879956581725317798806115069180449132455411844578399687975493083598947709326241909045922958674003516491096078424722863632916471120111474344097862647792078165109413351083224038561972420761501517985443072408726088009678245798598790053513398841859641312076049739017741341445866154138932889676451620621059691598209231181607478812340690804713456670752374425409190742117033837010775676654744440339236875239413660035676103013703320797283431470449903963991400909990531843464780347353683958085487949337946544023698084266197545101020464019248731351860282957027735507291635535583676211035688944455001171977542253044990824921404895158408580897414812334747767401336358369204768038340646768642812215457727136253220945360137387568307356655613893479742743263129459194862751419112437523301911958856765656870424572176438056084081578479996240552219031100131541084285426166567648498803338770332592976902206167745085186974575699437193757688446904961594544962384908189620784417170716611633886593118158942826876535865891030519375354489281664565834733447174580059759640950064002095426524358004253302906548646905630763981172421726090552959012419232346791452685705235926441961182144228068613874503528224310224378359812819732628307806095070806012342022283039868232222222412667776664637630187390523189082920193649125053776566754473136163658098103995021083583306666209552957724564402848672594036681970357216599008155176377519136070568281262641081421523181087785562176071030336953166491062323720187293890609319995598327437228579394762380116132987136432437186446164677421295075411141893647090964631707980606664951947549530096562429800544406236735257528881927833146883861766928275355428486453852704653887815035024532758988024528217516880654228030092559138658178624925888772019569283620359060020484023549530614435613140313610523007657159539015743722671685079638604137513989727743857958443744201372405531658163365646323362482878829021373540442762603870525294148834624062801092713927213130922724947613257099468772693604299403241181220476097201003859152200829998877303259297374394311182097894532693063514698536748732259383179300910804128380725842450531707404931258247528691272375494727804238307775135836064059533218540482466033319082158751693292627339259285930196343292469748407931778582568090259461575996434038013213974211393450513939029098571497283548570683667379269485075106709832581510015848402074667685484590667863791067127281735230962083323077040729722443240344984407331538225170187570230018691801369868989017263213943655626290897871109932834083010823441973736205317953513579732180311923880295494836478820542668822837331157184670664525523615937097949392326107776985430278293550652517303663428645699400185864294180587412318460781122751412345643395366409045551223421362053668483404307959360662894139194442504690933595046336597179313088787198730316565982152591569154833742622014100349536155476248223008571531149424196273051835008424685588280393275077649393623258222712082584284940363173470272147236449268082570744562531748633211290065409688058671832755758092645968342583368290105624401392494008827386122384453223352046520620677329028115134974347726158600294182155625137313542238537114823441311070199169636708014160592727907013768729049168793694753443570137511298386290780080434246669895174989146278804970733057196373202813775022385921138762041203007516210312466743354397169283799963988186380710031301148454172933070345117664169636217091601862938372559613503640256022349160566224155473069993499928514467035750042560204558202838846344708004199631789378489323594300773926632962275398335055743254517701499473377617703657099141229307622919254213442417520132998843159791337190904117201444787057600585531950251212560934623151187588528636102990163745522055768717803372097381498551681178706191989570030466640344395683912173079813379826745311477936182466252517532044454213795679542426011780019898182381290902042298455572904720136295585496255739029868384455272680150427627679862125020384374300795425463021737560636842517136286506922773467816329041616064677640363528822290882953980845127165296047024424663511378734073943682017207939734249189419382401912643802683654273566775389452015289972026491211905649547480764620096242040524692997013739040910018759093754321206083222862852842228094273854520698132351589925794560244155129986307341105016605131915130811399877035903136172358573214601933494950680900136791930683297483619851532762763809427990728297550067003026600900362668517516877851154740391566569458076285635697438337731065722401770518273838952921514184760986146227061523717011759660056412152621331340148728405207629112073607303237657766554634168792693109519443370976471624373996992783324800592126257511371658017930228025539088951396029955085264603563028427591343438786401755492977634690880355323736369273537219720241554918278368106329926063975708861520011256350936655576159832728727324765126768403213008688990620662536838656731718776418229589275614354464973122475706654264740443500499423516709100338257213218954739071641048627748619235235688095763598562092251032507141476954125242519022872594163606772191699711940829483066132004319028202069305344886932883162496766846683734819609700236775682425828055036629988857368721586926223520898620168716189758171629747695312359103578733387328729789985127632781390347517852184218819751814318718846375376039731063095321254629131847677799850804714336946928718268905478987860037346944719233048270556781133134400935908607491768503997295362322252191551227302839335430828024081047719181283052552159392120959230516187117954383612741281720479728295473290337374206323071144211252837564568981160411607377067670606364252034421989431339514458966244606488807001236335789460866991767973871802280231240707435651875894795199272690672971101399412866229910937647988456171980476977056219891982340194189738889062948408127238946562812149467111556478237774183763767255362023329761608637747815557672625065908360347889804116488171552693560194282241041670159545969366228378097760038314332846141728462037801154353875133279387517160574370232660007349139250447977915527596792213575210538083704230237280069538667999601470752412081335882433959753532872810129131074127284307363754798582335691867518765664713813723876146696992238441155042893052615109834904178481773640099230718912180760025121753196641640899194622387508866552768052404168749905503071770731854738194232257247690123508831438632566362938869359495187952348006143646483709890548920018595317495678502027812372679904769920057593110542804719566821459180763627794715562139526603858532553101050095091642905380347033823592087258808401368598633849415857851251677626321080729199933842715141373591294432585647116347406994642614417529591851478760622440962590198289809127927960517985495265376352247650199613801623041033216615047887106146630734923633797850270181420575948605301390158218738327254717237306862976658956316730702029853808228303050066242579926564592114056664009445233095274746196733615260625219728375411095002601871847689723295409058556792054119382488803121340512845556033290626977451751037886325241030010635377615587951187489806354009723676794229760703198780129039003640500393544095639862234077948114145254564362329273898230318953676863741117107994268671845743090664757358186991014845267267613323608403593157123163601716817803043364855836433722898058588898526479757813918652636597401710899757777167728167347739449035856890762955347807346943414405670032267230207475925682270443361318163516887506702505891944397068685124656322108422470715534105916996834811784024640762545036467312613548217244968989599373217004107148194220328448445749864650347571838328636629697985205350776328389340432990499994983960772865807605479590878085014106925536084512621099995980891200282196177755998637233314114431194262375308269906609153756803848844689896099081749617322995423044963447264865480670581745758050868410514063142219666570868515053451214427868146222267669236117867651677424245645490817901743212906872796982729154082196886273694123854770999223981312107129762468403057694297705962948735124700222814220100591578133367600742112354528466595646421161206226552410928093523096321143563625063704546261100940525982285053008170756577138841149049349841866925041592834068173232578565213021926374341468868648973432107205010939204297596526204957283761090208460943207716344889902872531407598871298958294033694778668902731482651751942691188775142784457825174268792437325709496611281079611024018910416193495440009861432464400966893395861325237959918949254204450050319376967579973824885061786458813038986982192035828275910930873525159680847873955778796958925794568663963729190716787645575988737510952374640458335354606990872132065825474559261416103638824494303945789074008951826254595007881993786970562662423411799118635266161914012322181441904569622012060395124112749789435374085614968367179996081563378341045636710514040595502135228071862479534597631106861827436057555577399424022018199718055279385231684544056460734568438242687922410894042909323104046114115951247324046132873680424531262518827249892377875993685416331841481725720205862207368782653981391225985123009599365120324769551508195028692753486740106162811713093850310675988548320766879708956736290591915340574906666843732795498951009236177569553332481681995721095021047412593269486294960568418988377351716228431572882240957907737992008142248161992132531636960019890106466599212510905333227944731632583019680388899258518047685856835550168652008529516796543640213189641669559918421130414274816192334888237103647479687044865834255776908596646313646689494885576917379335604006481677725002070271053107087673132489315027858921723623178007310886882332293654548646014308724154158087778215990682158251535802599805316396616886417335302772538268959691478781673255161544515944697201902156820167336335005482533855647503115481188505352709512032375701267135336885178608016478605728292202279752317281859278003636243900265644015790630204097471731641479975436419884575421863019640091489548422381614466445470034348905652556916063110992036215214809386786640098771381406786087688725692156414805656974093907310178141581098550955410561625992277890356558505607587977029789162376855324949666555691927597838931357138863896456022406783040740017046338401001988869233595440471981896179927589944919508014038231141277946571678301464071457975577721733744675149900840449523373270570180936095267577273715660518613332177272558011729714830756269637315750373476969720116191345002257869266171532320229667970924720613354235116602896543964003152168135945799128578628768288325916194914317584839433957265487138939526709057925679712273014702320342413327503319077944148505972648124981729259383132435650092265078149742777324325538985817515185983382350735157094379572772517826265511821719957423752570801775898902202032633661569464884851356475499524153142983399830683348493124538398756182212416268669683178079622529856297333449278474673205121776130075597492933199757699187923705440438166646367484097668095278585801609500523244768593948225098596076685404358796385667687839366709547543441429732247367694928070443789966056277668786903399233921033241319780675889296082591969178887898292342454797491656795338915191009349838674516409083768503920701098995025305869414409840314644363514080666991899227184268942358165229497845493772681791040825247176692071069921256237109493519688010161707471309940108925340986428656839669363954491806378047510940302313040793847226337488317623299673550728887427861056186270034142868573769471586568907587693589241321713959838258240887577905234798760750328644028426336753758846112338388615650516958234059829897583521717904676219203599834991487172710616425270314300136530922489889023201629205124456425145154826449238205598213904552099901930665273962720374952518743189219229094304696720562193520283246880054420397337892271768995167539509302070366945744468555250442513042385780022133184940731180234727245477349969890854678328074654824920470185027791171461745692762669959179704453424281769922982566340663417182683387200356581741501588176439946408425068387205772974820793249546070997030061382619189061617435662666639980881958610202971462204439682504704091432829604230481657443618555328729764397613845486505127471052129171614084249829334391564297805540872176080487296262806969594120331787550906512251788202918038316193706741840541578192939389069418367501928121821841552461112745457497504727733924026465521026258145499655325720711133012691509429183206243726749887736680236333109045431524162872830390834054780796072742034532680367332506797165133554028278057766962957213095006381478848470962716419201836879134523303622299383372473907055713882217008121882340694901531680593185408356965024887160706622885348671536109656790513276346670485732034074051715782316377830388976343113948479531892297005396842675161067495765897677637239902662623298654944725546814439942316867569815355932048047019752671891782438948555898517066041962092905212837221578130897477516663091447554619588800741924566283347919647883990611130692480470632996598371305494479317247793542644249116627284757620906907541757398307858528127036224140502395224392696795980646180093556594167926407483993694744283180523444160133239405668911709314139548532390051140366657426547743122132605440210239912644065017819608413628299527384597377806757637291489290565415328856145275092654815673543787979626598310605008793495885448089929944956113801606014718750336468566272382892142110204047365060939722890350124515404925484309611942830338988368433122011965185027999309822483389135243115074433503679756879198505924990571353835105649120101425246775290649301762493930554907597441481556376931732256580675623425581113756095927157425153965599778584981652406731725029389400641720746161641376488445664083198089937784535751029489457498948152118447340035976893689607557241303772186480689989261062038360138446677069335153987843199451501882347809512275368603842817788387231848110744612420093690453528703899753580573729060033793312920055958702518888729591852970742716383038820409331984894953735501708765813935342814778070077413986878963321298016391556644899078454200038422980581885353778166689241543910090274442939605301592381155196681572082195195722947942992260346823433262337936318167593257448240639755854993758420859407423390891832318874392035781128265885207583548388135768168745547932438162043540481963309905430356226179115999200477024900855378437256520301985568240723108610148563912001838672979261569435357569795973233973849337788330868605359211774447654499044171885989393788884452971595806103247773965661336620966339380501047334157625409694787770099051028645349154385052054810147676027799343757911115097738611406275560150459160898647701123568125185155207179729259657307404625477920241476451877747974263105155663737927720156908559781234906666503653897688153734669631925867720546995731960903394655947617012816471084214351012878677637494623634528770453415431801530834526802353659067817045422078363227892486842103913489559067888618159148824666315974557107698578675017700223522455193598641636128968542487226156022548301539232489747471941330047056680216232477792835911069852317299214278339245115877815231533360693410823706619786519369179845498384663359777248531158503292037627877177475674978195094521444438011539550172520311140230595393455544441553545806106322662892481599711038831925823454010968890263808379916348652294278255014354498579284357847212699268522684186591453541568672235744817760226356678573633168826229369116857650651489776996494333244359819967561251759329380769892874692928406474802906060033718456090647626631929821905848245612204134171648758537506214809847826206148035218786737612734634009759876301415032051538673229512448068069219850448014680481098159020313424161706133118193303080367293940903400040502114239133139786100926683577312561549880602506108712398702832229477902070757851945099718121846696758711482631408880643370732969252255432526593426264537904501500782886651433477473199813476825071181611918019266372004104669315572578885764353227770969570931954784877583505959365680352051773436123056118612293429268782672857163127835481292247819306355358673333863329544988487963372090241488375585014615170190092069737596478473951643812873909162019316141923041562285292533154988416049066802221466745856392219588130038333496484296861677460335211108263474973203740909530009987403291543903276062875915677209843455415854899949492343173662437413387464878796023091702072245075728099491263675205811248130004123712244082352809719535083360513561964976076157110968312975436481230549681897129503997029995519354163495137498859029849795596396768725823703887993860813270868084125755444132374201475929079830545554349474743371673829441148109223676867773757800859099970103447064226467389856155617816339847190914458336014468944905868366293004064374193936164486457060067445032208039827066533287607728859171233848909757227221252196998026267052911437239540679723260227042853281665858814254060139137982740733645604558650056289257632302338559151594401246788279459983548751441370525300616528175450130309369252638538629323294578000956760814229878761455225573481065646072289739776402339760725153301816127305896790900569501962197190682733640891765038843082641171193340688572813253272575114577060739831535849566858571821704127565559131518387501994992179532852143352671837203277989730644065485890306677017702889054987150867283140609363019058889511517279178606004329090320389930490496872664151260732052219361942848520840050452496837711654770991895594335329851495806761428432206733083715245582408913792733795275750383148409490254041476412128847258822398569685697979048952874625970800094972606648223714353840358240251015109869236305979569797439372548104242768478990752484840535413025997832952120813456818511777038648003623940530191039059905033603512094994729464635616503891855204745870340852107639288983098128783924420514011436514179814161832285355193737509819491958611357530942567322125580076856516419641109809454122756271926288489373424063858065333592097165089057218398331129552666213129511645312833963633796040923601390704905326426108222962397264316587222488099184282711713383911147003984524302642074243258703120960672720133481300561324481254210608974647402414661648155829907008779342721620759326255381195999151631064453185453228034810844861337431879651858997096083691652432284165473054262315662560351838940590953088324436081421290871659728291699383189767703501344209307703340054629873001457909973352853701437957361166121554031093968651387367246415783741087493802573768932221105783795348647160710685415255233288789311272686544808331898661444261328664962130078687670520784645592252318110621755627887954607465272899421528119788424272451278499341081155430177689920921949781750062871470011196183864085565560213016329169398966984063607412775011297340103657770226619633731747256390581781256264758651619823760410737718118640120017971839822167216829862696991928426019297483016745042731836822390724897765045092589881739420679461854185621056010483656864799241641009091796580255316006899658319886459889540330649686793637763924356194225421307604636813904504804413615749506343957368842189830407621325089069022928908670402661498138220580967972937190901799691402496243225137542833556885163104323991323547037862235967963613470549018732507066665812006454364048429877078378420448123671402881920097913648635836232243038771271429326224410623127429410175089323615641617344838879527053983466023402251964259700427543537818781405574906186985306823107896922457890480765139337317537278661439027380350896356778768485244136967987151010157563344926367030161903966447161952210947662468505063600435438377482935139733590456104666384139177190777973566075259754205207723340897148454928245112906034149016087948255101661626263706641154572511290771698951939726252069901507177593737938786411697105770259578165505042304130288948773008056686976836293990065228147225979458440938908597325764519113976944360375804440358913827216551594558327239416665960548775066039238390611290862617220284691466875006281703866608222432271972812171209834893093403787240009710951670528216535362245511023883458410905288213577816355089495793930827845784572366126432066648749251683586243247216720197387100179829262853473670348634478992280225019124017935529887364673667285989847567122946711250825505896335447273480236033024893193872437969480390922898479900609292321532043592732182642663784759561951422647996275562691595900037158146053454565541138469725393429408822331007787561041357781848081534902487282327859902348659973075665572346577241408345337500172834022806796634788376548048922023282222065479884059858224804288298077048858093104405977994219358454840594302671841041735000595551112047678047570766994957309114315850681490552402520784439612587731703376453076859690540608924412268683120966083282468748853418784964829181482539811781437255992800827961941812031663619279905893842921131335982469084570513710518706228825197456550579463063647288525944158403120309482191046076065256234139633020052310163365962107788363793955188298175434163140657222327851558801654026857993331302126399326411097942621359993718120645933193312155496817941650876171510033943887146269319815048262686264346782830017272244641190524381918786323082327142100648563793171707777889103317505617777103523987808578373328785456127252129660594963748797762680479119692867308064040653643682314945275189387215519578576980847660798913970291037600785837778559527750852508073735926725427379165442590967525175880019127516729980802099741797897989575559848481450871640887426853877265524253227660527201001346321640997655337264208568586627401326882715728244026866231786401222832975162325258085645314346904492545282724175469621067288623859042523038603423577384723068226710661535520354030302426601843758843289356000541111830136271167347555093615529286775402100651317871851501843111775714492935875815136560298948293320722502531243816459050353379351084746670584960969721234359498205484764294003350538732802081769383281843597404358779621770512426644591221678251996115880694365863143516130964282569698419416450683999058476698637282745679298396371824775570685655407980258033525201068132626563923721317709209238510115827475444656256418250872902469785058440710183525720622723523114269538207080962660263338354262512401502423148249146072171173982062786775755165787096863557135975999499941042874902971128706858725252050742309013739470412146880780532608215988946416198489734465747615174347355527788254725903550760874371035025825465734059555686559748896628443950312395043681202855684456835082757331704034980959613837583142545031819407048666917184597439325852057312659452817162961749631281962463375953977977023122628590703632870392272512371626346070597951634978588859815491083923821050584192023211182142266449976684736889230487817724227966539936506921957741714736253841820144690222084288239125790569275775089689166622487406049707153774574753395830530808083375688821328696475176819674164943155757092808388756378822408887456944746169718028645258919846679045576464081697261647821684923139422589241709475784867744866582889956010642561341511018518804509717680656643280000224505573276473745306554315457191564593744079385781136578550732492137985897099100523539609991834746259074546103258402201456271991867547585830876849478128006568850426787386120309403913516775352071982122768718705353223872966659975874090450424938992805743532774932051505810192345355649831590848260998359614014334976385808032835278162737938595629081378126137278272888341991226776371853281632329451016654886549437704476912525974943088755013252417695167698783752190374123042562795601103049893161850709418552460555145540467687222110433160329973143638747169107212838309061573672871272654343499795866800540494582639740272671277563241057864064043683718520521356895256223424715082007289744682266344433416252981583166745823448273029409116270076349429376158102094438386024136709730202329207280787044388978354887608040878393882921702315096160206992933145338771413490515252264218527117314931581516835211574394999714409061916971638584981484786208203589853565622399880080622185508852770992471067976407770396660831046368039218212860738569580438305648418236683991020622151003727472678443213730361958699278606417101465567164724359055395111682915655587681110706672270629877152213527980142877684373125622916109437886739891193521905739993850317927844348046051740809886176620442907553472300388437934119747475339190974401043250969321664343277582454216138833124641983082136768556743990393591123636945551921520297535321352454779987541155545854182690670126341959941403459745799865359047799675869724842395785616711281426322440769054029380237684466592988343529267008529713196136600861006469452178939620050412928060195743232474107466255189775627558150214366466843336745190006462715263212779893832172002673770573222036705794806001761226466320330865437588032381362376984028037963297947879537905282862031758750672076221271641293817738226511358979896139932366831769655374151576284641820448219299968669887591341201982407053770492558019113615655569634537366508630564501016481829783543910537498001151170247852476802714380720220354496297780010142474583341122162071798294447312707297941081589403555910469550058974950569609115671475937016487154125546510808564146783111289454088756922628335841209807418207293903319152500002526317080431386768633492636719258044455401203037317439591934124995037235343127584094519152814109164188062014209715236812076835499191259909661926114853462173888157530456741173033635652298542964851805585663551918380491510106856145592229849219267297947920466666874931715123227114034395552907550465923454721731475656939741038596617182541511062987358549375350300068214524763989939416026090430611172507441179620225238790861223548791114927028702284290157128060017847256642106613777774441256294677866600203642455508736875323022555576710163261392509047298948591000063269423121970861480381035991951307359594458979149059675936079630246125771230238665377730102444755957676923794420002427737199141245541690559995441611710213339518786519612137218810676023476901278686894770498881688918877348927477157718805626437371586270378830719009140329521540827452639029134444626633894221025735621326052207722559239992692163905274625205361814687864364354152519568833180816601835150635141814740883540244482429646229695549628735047765670191241860943095332488767390663093283091647904328067933588853490634712888192116844907324920138270737863419558935653998667685791835579188124053781843653648545875871723781186929713848402004564920449154354714910412554492536134180458126151909992145875271333401695780363353655616492046827749014172033796833459582854420976430509563112583035897809141791028807907487613201360822784831743305515031921796702280844306012133408678771885251565542509056048131979024954639306209437792632298486440568422524211411050052693850334259548083664603982727573323214731127906930778371386061414816982493201859521948471576016905766881140573443742357893290423930804479472420471847146250512689828968419249970784492842244758159432646384249588519846834094548040743900446668790370690746795617906997523143527016211519027141938143266225574643927734913222272257257599508708589367819648569450514890277458129964733285100333728629247295825508680009549108434750247657988958551462744251409991229591388148777999701701071180759326029051208483480279325847129461078388809841734918962825059802375382885736511124097350427664778591862479299806187620145515101273590503449551447669455592993239027150020375827807957935834223443188728961257690455239463808518054398467340944121045158217636272380265252877945703944731071483628042269818830082963693697979858309603028248873869636424935746825884190562588057676450301340791681375273457033954589740079786128425849935173556151563686542959935508322998244588499772759735010134706644799294471933468203330424715423003551689904050892457365379517780562740672296170192687045650352346120930395474000651339377162302593361194658749451618027936348662854720632518354662468463902583073859323403557760601424317844561212821840464106698862010329804413448242189201216542322915626506804422692057678705733819995740767150349868581067639469827062681195936552515400173972224252515757342528347320734537219880902147988661442616417935581958286576530497680788673094614093417488118939482784216304823574022199431206228287257092401369154096816622301720961950439944255715984227605222836203448613903784141844866335780254704722495998372444146742653443039219817280323819431890096863167033287870166759539555627024617267772127225047015892593029878698195617498103831297648960368204689835298016970811485462206598817329228206384828892734890966037070687477515656174939121722619805032284991483649862004671038954302549575014679064161323298250394728084168270685020221336106993463800722185827835746875300665834364115347514605325266951704805336520133299214843961233877476572278526002688656343947544046160315780393518106927616970637443986583370486059437215525043022773195831814848919362255179291184659152474604216858759135698571756042346606049598792232748041939443420292934626323025915088564918146135153505835866512816557192830248704445628957639878215881899095001203282798760165715878837071109463324683672612213326500186377811066003051375723542177350056412508462302156325256993572905078833785955978326598474521609853517458192990761813641677404876271020734621593222534364562722011458993932866649010944454090037032647874296225067986901454454315814964578807411889991082243772928383080810319273777806065096479991568935094863480004743391306593200336091907534068067070860726475928210094202452487035624450214274883983094565194359053921184975897579094272467501659932245215869589562633520461254889036801356709682429709969751740217496409269529328364960344165098656252150175661684488489107971352262228095290475443001568004981999629533634465229659393869697274906632812879825527724228079497161593672057442340440942976196602874103286794582745411205420089378192498830607536421165148789371946290105364159193878926686901557468162231334371137894625558259945341340238112296493032926060942433552969961005063403709371571533251993669844280722002174969768725418314147664933022211462480333216130506453966174997813122756900325091216067909807278424331537099079665888051595289794005688350798210879633482860092738341649192494964318326476460314598676610795089268976422714617182162529975928618931059590942470506475313680636756146220197170305018673057460376297495504578015632693350245428861484506045474373199625820320118028761192721194662545552300818612486306596268578479894324777720410333182440671490803642350307328613040528011608530018265470740301202351102855056766297636789268374448542138795454686309437703726251900652560962836380480136102114970165136631827871458440237426995641203522683546351354824773904595431317576199840835442094531010889594649010561867817013693842502125506390299178515860214944314918258710588237971759167336187634824577077233596219114221820500494763280688615467183797837708486543511886950418143338381770188801409009944379017578451891705547754883295474315399308899323477828567795482159449630643490618139168746515595053326446860371846596481673201977188532015854312987067449943298216222034176406942746993116724352784737209635191186936603502024460902946091953752085072626537789780259359396444691931598365964691402136688951187743056522053372870974157607232690603714014524367988497893693947762512252657090061158181533510721506286921958456835682702766496865559056089684883149390771442903430638103355936375441995064990407632903632701223386100341785807781835986495691043422017849454553692444943200638432397499967498951687835452877885538837274178328327599300666071126250719425085252784987087013912090676784648472536504199106182366059140006375432348833319425806962205917832546381703701042848965991833319390948258754883672899238014491020315720933271411738535591944630512011667518015451242867686160107011062358437026095353978186747192857587670534217242992195614425092701405901487710136721072175208416845206588793445679569495566238540196547170772268851964879325205325717004713068173707934410936324421834594168580009137654921178792312574094160990650424889738078341310221692689539969426234511082395448780658059010058969272096476869502815511566752142636778144657659747973727989817666131680912533717388084414650165701105798947679482340731384613409386437243811703097120166339073332890648061264413484659735419804344817171604118102269921804856268419421688022559360378361355573507574019664920215536450292311449715792597529240724278114485864094427919448189918428850234984404646229400012596146725565048214436063989923712384981641162174608060869033934636124369805059705593772421470427367489282045415639601265358429964583473021517611807184737256103629682780148251234843683077921781951282658502938285734000052079921581356613385808874493118535101747390565001358921936065554299564535176108659910857745358838799010840395323396522887090303575444293217910860663139864260482021347494711551771624563061875414982823831719454643760767194142762695008293476312369437377352010010067883297883520827775662963641705441488503082240889779717677543023684463395742144903345378642106226928130706086340959043466310889725462092245016679402932076266598657464555915427289326036219092894053406446985327044354201822296155686805354524525597404592264793188614520963227223199479279787751164984372799150881570610319492914455214798341557832547236124941382113279223714211696006067843238741255708410003991991825997730204647060233000873966822274307126752346595073624153502205205684460560878720234928083794637912279261675183524568256615921709825426442993278519081623368866188918079749586863701165620893951132553802304174162677250447176811883605437088719274952626665113449352458382286915633077096875252707067996645518010943542424454773189779330072300207450034319784532982050878423082507496341204752347493025720130558450362678310023367053264890763922842348513691883250023364427044994771321822854590307402952326188783063026212341506141215041068632837324228960800770956445683862542015909532798550029327784841712296724897117920472535852304470959352227642880559056297973352458779423047936734027282633106251218989924742868742483555952247520236056950647993377297911372826239933749170573242799708861354557737850357703273142025610117634854457736695010195792760477005953352642935710545003196723120489335430983111942937359608860433385619297451516740571013649067718931100000297913066416354192301073903524989131237369916561547433563613945749153280241893019760861157054298726886350982881048491586243543955406138485895329831838484474214448560177690587979371355256855962299100681224966142368267921724318078715723008512486813759512021366038647341454599450421426069588793409696260619594656954161711507136784965246093959008033152043335793720199939229223965201818268818489313032885285378242480009159818003701866041454662628990795674157900716130166695190203450386703910850064403453318405841990463243135670171277203158345882462523768657804189527470138589489614001582632503535690004091454703135384458015877452991568341328342426319847812824346722419630085852294631516737632316203640985475066151120982333265865287548447281186128171010670403218249619787729180652856596015625436770856685581942942348701055765677006532529379199869865472048163528419983913338290221221520471557435505982059272619583073591631452958270866946977815113580701805000010226077240616064167462520049528561356066359110378242672161821734285252118674286121251603879743976814988560534753194507947324911264526843538673154008643810871830556358081928414450597488424655827984668879083358028226071710804797474208505578317110698130962299656840566796539845799175329199802777068595546696638848080955224691018761297628094604729865237749048046286982930839798928233634977148358207096703587003949455955880647257973881642096828427859276486798194408540862898424737851029449469571311840741408562206207558264388764655895924114031803217900165969454007265982949874973353818499293051915344651788418594715923443853930363359714316690503263131896079501741780390070175096887437485190299056154397394466621278863120168096884948442104426809379494006738208022956224918681861170656293383722538473346775586142507851030755786992362319630087470063784918248893146139327237553358819809092734741118549938008349159019196303272245132509865510064981746016300934597899911819343157694445696645399418479679691242467511540430288833288748785610954291439683451921338629085167022776272126769953467671618295489957544807631888163132161545156821627250476042496075028626627150418852792188516332447001921333445938739454673249275308190772886589793758827534813733637671542370747536734432175914329055094452833829556309362467682344842022825079773158013867994404284900727474044031475758139514854546235472395431628780105611747872424290420731988622623236201855432085296014092606786289147645093782152312580893747509177866680692968517212925142477819071319488661707593865348551053432394991034525734833672247481611166140266802850386544006002735109583585969201449517195143718367488364199365147844449632292446828958608210404536553802733983543832319392467605164454885023862028113135710272390689985034568196797040672085956430321608174678544002735021012249352220225016652395124081558545629944929050967955828425348283337254395656685392963656872156847235849140421777844825302061187301652913400783542414776566948514400815509980174443664613454801892489296295200797258258211802625573993714232347150503565684077999658447442682651795371849469718510726298177067999818982334381116288848675094961426005808647572424329067175619290244291314541765478725148493115554208589866424847051096310489829143838395941792848470370540383341322734453664832415446593346006197728760781253827603895522982837944648031659830715483911368246663506504085703241149618009554142225511796611851766922630812934147244733263563500614491289579326801008661386287126990676006500494764812025178187516623126386623861420093385532264051139172367537688589712551805531731990585877543876550392673447999057347450480957620324448523489399324967116441437026882800894189380385773545648484717640400285083328973869155037235897452223854073254454369108060827933084692905706023480367906282319780585211340305489710520533243119605326673898890019962070886753131166461912087781259647594184511831181099402785674980238970151744257122453017158878389129608110404182472952210350112188776878365518027243669909514970458369867813874056914159798336977632817862827569142304825666913129086624533322893151132487533093400593100690181070635156260932163759989198527241403287293756918160140268199280247467607640105261302602497615429365725211479373018841941129400932009104275488187457077628358681318116777799227742850728631771574958604083869118940024520209771589236344032570120592513689311374467922740066076300502927194593402351338168381466844005682156875182911935374734207799722401917507252859275633956937238292703211544061347834434012047095953250903608430665333187561431595510355887005635582620587413455612173565030832382359798786857003475014668454315788466013019462554532562225723723748918846811672867746764074206993720857241162774401015942443599147254038225457094361851561003691534420464789465585438136255312138846705209604274786085042522795244097298965423470246198969399434082761272756293309583136768177561682338912315290345386107086689147399798865946405634125552831679404444181741132912780298991988795084364281234283342282345504618045361261991546510643541611534499476578768134656859926450124016109067608173482750538560723376870635590194856966434882970386051034928384190943524786902040481551416808675172075321099826951887625668748703293341639618878665969038041301153978289693723517840359682730053908462764834665359309477771895867298359406924612074249738556371958450415946509483513367846669084240229038756674301906945422243751607427671933442816593636609385221764488558526211129318039003011311453103099088182631165308221998408296975974609595364926560222331445795441806383703454690288395163903380646479012783999186967048315834060324975654266645570879549860890034480374108383625918497809408493090635609105787642066513711645169212211596467198555675579709112985167189990756937022098436915162321850348838422391241427867105263154157338082536066229754816314548077668585261522183961918754653040427222324590413719000538840545801240039194619432781412268595329703418441125335004515814450215765965865684101703652717823153098688493970917629651791767135320000231818331338343821028647462447188368892923464301902724434264095327138286825729460011526204914374974939572754946077168356488306455647882172877062529441625288929083926115538736667017393874951187559965308767877767827290269282603862555425847966874966995699464652458933605212226915851063259806845953081623919733523096471303722782946652316633907725572445282915983797031004939373472776305575376441521623133594503839979535898873144763904731007413438196593495777745363459753552669070059328823159113775894567750558407286714572306764349188018032882060955359829144995432754561657946855532873114263361777132457034189174167658563093302672424085477449590256625359104349809521823923522251463176794567685070959416234112906726059835166834766812660876717374390977100684646203569155128402302114874828766461288050039139725016006800837334118507961929413409615494688445959535274023252955118064908615285186451324368191180549658648849995069897325706979508246854001522536868992387004176787898314534075900476610794908774781488010286025265091555187648035659599263354462858585273961020364256493091563425752481379420359563979557427595982624561789075008091168884112062831267331818835580915847274117342796469932215718645007224902157533471392513947735423445684053035655877091362815721137922237865565485037120256429894667812240563843125556124249368421265638228550807302086381419849037895756409038892768603365536026360774156719203808471032592989966078558366134121688983306225738347852411767922268730904186315408602041164674653488974229563468956057285478297591035390822535486157003672988520872074625743633366610356545711481946410991163580112414283865885886001114202763342663857693044171517004361716081938280321690671706217363057278459440663466059295450902244526510244082535324412950377993106131390965293317260659744325597883591732928711027512657524976178212612540961274819324234386234965356037682820789174383989652483975071385564454725078917181415889808706763544560127420224801888065633371160593937786236219127681919726957061359814816139202816596961453058570915684952945522858280315895253403596267202778237284500295781550999326834683909631010062448370550233414173857090206941563193041417086270029486616839942304187886468817098239316192037401460369462956717574585539361014274404557786324711197133075644945917089233821647079390767726725566136640509731665559291114937275533067298130853422168234079785358627231941731352267789352579266208172169956279110125646081365179316282130874806311387794331164214650420325208051322619241090847409737873120939696746696837201159925341357898854933238765487911035376946844491549351430693731946868406707903547682219697541129757031444689126798349176803499949724019689342172469289006124162141344455668765997654636756531708390376099866540947557342875601210808767763053603249155908920365900108612321265754431442340186109267831285210385837366584786205652709046401643805737072444314390532165031077142230857256454357732996681494117829800749589318441513496933066356800021995876916093160090753330520704186702708657815025549880439366647194792415032268509051891239768406939966635537746270562961544626575849537218030944777477501631300134736931739909690796155638527035535297876111151330892688119082754371393055913308980564175397690240036828506627267726121128319449715676415631157810899824438097118671997392159358135654987497839071769810403428073663755713735714200883815862892935468084493088714540063054192018911933180763761513554527436169456726280191677961385143815804899671860782499300028949144036148830297324987406795672350894194753737903237018120763629997004360556457759400782787956809816059885766919416300438120430921211412268535423756623863388974723068366611971763034327030096791501078685258283493261429000581860179020715477779293852756870642338663223544237550739850356817340711323373261909496488592735833846542340711771727858511077004778760799484209113285993847589657628986326284914161337708582100394493835564374667345505396648086631716172086444673265607485147576733290030086917579441619608179099546605847603669107746442467479156894976012078388867592157505402098361630795547729632339988970191666608848959547114093357403111953441859198243119951843116909895257224750099237485814881128429835901647057072967371133220104783965031380610553659755104758161789652034924778044631748515118020691544287339356734928192347423761420437822722304748556590847370716627217459760696552348976472824166801182361731618556538463958883901203793247151210058653020805591756562101053684234992988918396738545558110858444552483373011228209315169231539603049938526699350934161707033465128759677774432833353597875268887546375943182202411753316873755434328370403706832360032070964282332543172493246329855731646174603951575075099456231691920143174666470371888610470397438419712121922640716793287427501961069912022244372137317556233411349559841132478653008094950729016815370538867093211401377880878178204136158998009146523645975392145142234908777007517634386895111161889748720321465509880450745290363796274498531602297335674357000608283087494751526473547451751260216862096155090329700216320210108798135901786290303410101711471622673569527436473400718275066064449662439588174971223273870438793395426467269107487265939897391737028385063827437698562121546175281261167724507383903455038765227287469206663449969840774025466866393368890526625932683193604666886972566203636177300795480231498020280465521288587806508334568690343585170108533719687310997255277968481049008801826088668331104921278394100295088293868818273916111584086966084131517893869409741583527561325638685308959401095547575124834985322333603135280472246913979241840055538628660040341369843189858438717997643227681578840650533924750039271408850720491281101404157610793627920080952651806355653847136807884140365754247717891655227406547887975677792477075452333652624804853190320899381838783280408174945105859603319958490388471040833594576713291706363591051666495927807655519890278602509782178531218049329346163598161170036607553876600806962060852860121283884275676538201937990860653838203691682877723773333441227928065487734969746953693174842334531874423532124857644919221678213604661099425891810797133634293298259856815476292832922029309408313086909348393376984566711950834376622337612478001552598527597659546698366767349948631724431842160173710428557560004889656343314452758446646032087823626891085492419804139177350269039762208824143323420079991889653272741500159217845772394743396273386374440412810737339671722025996721887020056348297894247138273971749344528970786469600608637518203747602054212767859802855835864196810714033147723073380120516632774494261952743701856745628955958484305665564256660599326521869961352463115867882899019305453078202661521703222583752744534031537164374655819225236156789906512770423920236004133926807094568060239005676331905913783989573167966819432950641119542474817017697255378926713820159753258343778339522598718953947999141027866061285489634632229532729902709803598711794352879874345231069769669173961799393606888242105682631915041374391943879350213464263107289949023632334303733907379916395618668798476047477254368259616471389237178177731325861663107698673683711393889399611646343775340993842961021432142640286578649240045587736579271641349583191971861249222555186493538643199979700853724195988901266409845320716884668831247406206367990346936160692320167648777057592891678184947643707351217757368814811188274531826107596756386620265854018622615877772146369545484732900587783135875278846521887406406070527116261299668570860414431734386740882237739980101387605102369675235657735588595137260684450895087230306757548582468662633172280071577146112583545480092176917082053627676220993599138417691860271644318468487671551698265120235786187500106794282792895776902944263579679048108255040062209764004235702104424291550738027362290774835665273396572544532270249186636663758024632351397398625113207944349039393824847299593303133725151805870233773132348177633612201519193861341599980015936921680538189127206974758816652046947688117792385861223620541664453718784905613205621823732642882185409848450783790418879629163285422562591726032702981335449381034546913204658911093167410294339382964433283439301006169598101993220151780716916363721419095309031697426869776843982287390115690883650328348748275746138109610867636498364583459564831897751555452343105420443701141964631470826107023025914797909624820777082954807969552911807119990981380171552201504687982464604842819177830903230706623401053273326703683857959414312812043074489497320486863255263731507890005476233296882912781826293591428119794070461171542946372278112888160043200916922938678981952371324427973481562648685664450840508266961681772590562253242731966253829470097224130626740412782423973860729829808184681384244534939645533414677967506047104729184156243741943915338765862484523307018808504966804782254157584457681333386906271700706939642715656123299669681898188388348718082549086560211326514864373993498349670550069467422745177243970622608339818965277569075044061866605450337781071810679362600584469413350507823996312962963516555025798241813965347407215714292045070508652976333950457345433226835703667465923907887126184005810467846512469076916387971272911957282243447946351799819579383355896993178717750918002800530891074668724171092219346652137865001637587629394806031766377211399160948852449692467684871472861903881094519750955291276671271450161825608826215746276859877482292220058290185234137067079794970380122321352786928634165447394147828877760369345344713116672512187334229275359932517033448122694800728160256326884279041307482373645948295773634748751672289555116366127388060813866663806392858392017982245500704228304995464415896879994973794939681309331567113026331457615169931207402547228819454426221679431624986667364041450853249788268436623202003004529212068516809487817561623828396172445605916717787879793065912466651961451326068242082094373154784994081195977505592792820355645076847143182479127191236202214585247873324164734193053029068564365251665761134024261029313661246918677834463422917296406972027285591779327459562806127825585551492121275525616088933114109118274325165071158407915096027478422857410812263262148628416530695256104695312489261848405884927608670985094601927756403877281449871484077938114311468738992764007900959792622144084111758609940032802442734660145194300691240605107737406282691214321078308410788412887495482511178443982554694168564814702463821049913347179477425778437055138271589175652379068272950044287728854616122709550459183414709390700195509186329587775692504788560568540304114501395050492750184947583307230288801152253611734034042427142171685179685779235294275585893147862102688198684386096076240159281012892263143610099920507343276465316180125701109254560976062003512261458343117897158152345366888997267383886030811567981652590782185471880565859694093225876792683202514718937287697093479187128197549206854011598423929704127165402585194298833688802961433355668329729961202622128442339382628076722961529838489099164475796254626170066671575544716668153811576473850373639945942865998353315750803863963990263870549771981271815490401638964558083383397678042346557632466561869958226191712305207951173526104068980953728387800202870565458776157229703563683847697788112851021378444678769706330417737050899686455174554399266903413657217663920324250245566489960630630968731723887702167553466244954742020936068826422112525138069231873484839951935255292187769130869297164148968448551054585009722257534589293066799621126811924606641150565146308394244480419417249275293454903679303194176347989031354628440290546725014688092234999881243351068501178176288476093306013586863318579593909523241644859231072638702301599442675885941055842380579607366471590679873094234511584313569312443050335615711178792373280732724352321376384749073823737041887442353855769270338236185561847631370176411586217821179822529746053843543580405420791326832217287553660540900288254626741285704221034241451804726671405818870510047356954307818298729679423634088844621395050443821275847973686864406167198958222000377415598385057142752772505472854597939673901822263643944028226211325069599796990918730776042727369435052691192168687466986574552189193351120613312716440316650718072155197285478227342427902490220985224446817424363181911403997014907471272569216588686573016593885899400055982328210722793629779160408338772601204865380637010513281232970629283550167448274833610034902944190608467475773707595795960681434159319022989598932148504369976298097392290512194896736130858807413721552334256248027897911534055337440204174217514568149992627657168348974071118309426278688606889761920047373878342010186025638357665043207361477952911165532382116255932046828298225075106497303809890344149914222429986397933113181353286634573908257322788540853800262200987176834431696741508253307018654325210247326550208489718350561129411980863341709989286094141750118095563751177789477443031345229823946778908148803029723989685712489362210776953487790605196853488608130647399800829425665534851795914866880849027461961943949601604302068362944326288969902060897906767401993414588800301384648166388069054234779533028770340750980915925134824036090289200477086220914275706447463532773149440191598019842377900168981869653222684304346511734385613187135976715110520928974822277009475362141328025797887955792365861361557210747965605743351981289770769773265292574291039912722141544097186366545230209653093345222385130131792347180773770217422775806331387460636123522094840267787330822531645285575532584577974974744179442077597336057040191313575245880641439793015516456859458663995487140694817824796931525244184827462863930789680964073812404570463486618540070053397368149935245297897028521478448809445533444483560536621406952947996022334420467873764273797771876222253054002503297119976846106474729880561504860932014244122222544123703186748094381092474654529842213396259449822394247215054839354169218057394667777714929032822467583989950036262286487505717641067152150966086605091186796124201689291161438765683283867791750655896618598435095589993950992471463552172489516237655423181509385341329626862110450479370134678381579957726969914624041322564230186588375521175662139504117471640857484557421548805498465065045986814044671934776786865454417028781520594871746502662432453367476220542974702976130025912284819126493843075593556735664712825873829822316316677278471689978839571696045208069232230154983474962434964956347680876736160454378039787359457929747797334895018410617698967453010621648709386311081167506386557779936413787455404415219305695689703785812635747642866938518737466885665330598491877257974577408001441338831132579717761756290622478567897879134250790162188628375110114542438377593652355430264923733364965927962689687514819107485924493678810769949768564567383444357145233465173221630465716326710499791587494370172012587106494037542976889914640348821167526461630201373193502728143602901956247766112639453556648450732301029392210904697561196468409494994901843910379448296197012463596946249033245699151128740625340871506160339640189345994921860583698836360170340149661443643967520791992654060359363582964865595006494518386814654278874122708483275768364466292154014980879520782403390881280517803239080109734380661711933612036882837904696797524796549375232058982435768336822229225881135708907930317469560287867384220024205300996791840678300959677886726081921078328196409878149713208737864253620597401119552385852336806180163917092177346239667775360589736728359116636973176391707903086230275422993589700064288319718778203990514093952288074055986188844767182911053859827320184805365851621342688337566339641855092748362384410150547537413912478972044209390686605048790525177836723717538621798816167667527256644863036945830109870846574992215366955993166875771025813877324622487675862010005306909787736752116456884375721447637159910560852030668692935689046856920936817439137586061474775951321456753421402385528119719174114062346696185464104008704955393377965152774864844657552544271132924372141986099749633149703417234268806111991378283930476890364171961184199510307622119100656956958595475374244784597017397272989920935116753773852193283438284079360696490666949969736939329218631078038863998303884635147898464790903031406188773111183042259286494197707407406655062038120389853547088821609413983067774200493652778457308665369634189382462140487073177846761927568990924234149003402956955384166238892846749159900612824587649208773419653612250803360223203803453610309892922531468065100523480464247445134955312987456320649641069853364103352464170214785413044116171957064948560711501995079815918761815670222776525586753492521902180475241248541331272053240147145722825944324360092998156111280837988132034547014486865826980648090110227016301517013631731459883857183404703155372636816617920345975251449975527449584321430246620066397183040481332697141848627593554345884918401676268862460517366448072263566929920362210904816673961755788121675376006811019901235914788299165488191591526408090356271323196856927101527865270383141553935677614969012576681684116356077507994967772423129589951912311203248605581475808239601238935378977069948419943127934996790916469775310474110371218733993823240463558551864062239421160535186333624973464060307205684795670675805638867103494532042634964244912642676756313819129551488913416230045272896233790667543434877195309220538014461142789746567335971386581507329504732111188488875430593943883859897682520487575239311520285310233877837537253941375540744310069510805087204607935781758374368105687112730902524432418013167108240410657873789628150374412507676818086090713114565863276189576058146318017654071338227590459810681367166464667216428595891125423805300158496524269907069211048302991523412756951791473944115667233453423456899733812695221590005351341115449733932900822205373806718724873744180216631400302319800962986560007512535121271474579888710616410299629031624043675328516915934783910160810249521941696834364892128782549866521194492047218127771282570354412393963182875181908968490689078897199991775511080133300084186189021134930406850487426157447272464419028014458342687120576977814120026510832742729372111775838388490065427979194936184251673228622240553434727256663518929263358756509322570638771627974605742220752276979027205861952519426311737298150851527978822962926729078648298344969002944341429384883064825696044328520170516721939432407087183217243139609910328834609660396519806786790022158095776341290457954224255254555916629650484984909558076721217787248527628125120576619745543505729144724102040077063760137064460907243445844049209895467483848379406063628530829233969728225635288408352931991417370715042850894542350499582758553869037666795873818223642645536278688638586278225141336056180969857667582362808190958234704873456453945882193122574578778309045208038638937097661087990224888742461509257955996641972405187419933558707663269932915544785521007575520352115826458545777547109557585954642357944886490542434068057969836660851952701795053433007525728994751907377141651070091159920858203968797132292132052622786323985470209367547994389791540600497842440346389229500286181527244965741549499119311246186168821176137754812648896011229055692042197523429727199384938782784428597475527361317632424121754202098158703812400381252626408324213477013958172323151022064981952164916502252650012415241809922764371104347201313003132529803145821202798905818275166804378678567270305216109576556226398711538670394215974731740330888628408521001321764618985839815071841101323351927213188475424653142318588431163855936544155907886154841674729608852650830837659935250040676498196780991065995328848067013754026370018559514580231691120769910245008403497267013916851546461608630891715702158065850438787141143203188764232685970779363070952906914962932064826327205908428797836389675908204696145775816858734865003104408858443451139568233921885024442621213392158606281889201111808774323340828977879680872990025319489194146866447161395191031798192873849478538111894925926179822573999997729529215139616750926589360162733654372819921611357381650941541901899547534259148650191906702486325843019321245194489781605946927948662515399104473125450145973950595374509307232559460976836351250056203227601181496123503073583319313808533516639404205575723806766627740533074363322304901552331219818739974474727461479507766773468447973396206185411292498822906938577505787605634911861096645165358875623848855600533643167868575009834145253025822957956233187413140281145584304895857277101117531377076624855214824230787400274646111521607276661304021173619886373458066481378864245408943323785641213240370005340854971186263930148699982845253907314392254255564823058252126036390086519035843754494660139716911832670799810261955436532342274954887795548185754283040637069643159521224217259339357780948893176275930527692343791138669424930824000794243368942679849689185240693678864266111929540096524854462847433927200426315137852566081887713489777405775594908573611317947797591330125743012575097219191392647329631329824809096567920669255257547343692234509622209260016238706856798712305349199124280274662077128139843182897451834381755271691408459144372232945413155642488413089354162711519223142347554406185071385830894116944626281001346774722066399574692501654424600621453727305119411272932104378464632266823467351948732711453229014355448959205401222795806382173809374197045809640658279195500600766610310063382711273554710654635868331193860197754247447038929897901806435044391538890628004479458645103859627212289581697255106483449195936116002068547631366614114108614259346887090274846683447102260525645846505917413092933056159892789794081480048881717975955176203477170247415562802520417404143467245644979324053056871608123333751281097116271946108353934997832510527680445173072017249221577932101998069453945306890777047123489165827303079123122069259893847355862133680058297605799280139767929527922702952406081999095497596888289073802333105509703392970871048686802664083851380199243301197660058957117536187003198433516018361873484715633693831972099603063510499798200888850802798941742925407483076597468905999158404922213666032790024871208158393953048101747056563173217606716803564122314542274101454439222767969492818482484497566485993862028618110678537291969908277337519357625227007684089367252699707245236886633745437170347084916688737942392550620159452037574075884562536367161024108062372380193429714595329283032538374609545688861752483867331142718471459441862723468886646532323660979593364049096772311157857190539232984190949988293666712997716161093265163245507751134571567098810741866871251170835044662509432425146351370176806359765234354099812574636675826345879574008018521972255719933921327190410761989694369788680986025140325894091755744747935572065704294897485376603477698598922437053187458273218990764836268770745054444676370649461598115602661612189659270746201508727882254103352399255788736116085036147256864012009472997466509198979683660876365797215978893074908005351007612412616760553952353307281631995430393092627244834243383749432680170239768891697984966559195279710411589582309742363328606237749804801915581280837907275891147390370416703624957475717458234084730447426134738861302844710453101489653761935036142010136959184845501907914358548187477178901611459733073756117921244774902612436900281986106674191623155945409079211450824829217998599242952891768548726606102946869837565455365989570561802339267119628945604976107022676776434207430845861337185711629432604113380933740578123687739096974113800760231539517277993373539828288306361194171684231657384757137634280028922685975892999613537222596962405176297660494566477033825741554867669698925496476470528351042807446500238669311429660328230767610820644965941521671133396110703265947551769600913403329467748928465783097501397511239620494056266153438866218077012203273056739617623412151954315189115281710163287167102350583547325941736857393020702117898220498291162200765093223220910342079758896387366691518744297568143375070139677121914091185053903699703771671228191268542112149093139033845105004424269524156631714341151359867379645403513807958350937387131229793136109990673840367277197467909279416119729422302443741545057416935994916400928410224896013465734099788380797103472320948093786751002519376869767293560317635265556761707859118735052084358086594922756641344787263756474905210181267572716392639872549586262710833482556711603854760192231504624070744620032348066934512709675444403352980047474868994211023872043302771130525784407785915141703692598735036095610578969344721805090095037734086974202915513059146189953559211543660270636819361041485508210072427567049739161072880651883513129755677196515107302376639843101442296213076141234139030223091694345153834134149269195226659122808940404903741022609007811637609946550637584631670404244312803740945101868807416124369683936530544778004675545550950544662984351954883554629245407122060655925182291478804644936063322977902167808427635231614017237453520394741184917350188622002624714818459260405937342501339656411594649051215191418799482439659583751756642938800860135495989849651125150375866570191746948717615003227903450961616937673603198347264162646671485814289036155386435335088534420871271126777662485793907389012136358121510155240486870126591580648878471714074241315757197697995772196562007144145769489371492485828575933729250872185407057485853720863723649863992316858534524711635317808057213699888910997649183259658254218663411543502462814949869396211931552595898223895636498564059889594891856008586216115964504529606983719401060982429655344888243305686312242289921176843483927785771607047815658693033170791304136716918692421323308196162995755817201166521447808954113596493703941362449412770474765801996839260712424607714956766390116236200272745227604757955566731462308107672059118120832044081512207200506511692737358108445291465348454315738195478836857018656468168254100027042929471971558546131501763311118988366803610901492013910960481594666883840747450711777713474977157829591429713157304195778091339655549669730984847428821318107741401755910555392588130228684132040542788868874282480377263810817139040340415370482643579971341023597995351189889053280695077067723324853440178873925662118850880366247212889496295236023015404086567120321135432748710370734076313770546341087952772011582178122209271005751597690840889899152815224665696623085314055086450102122609723848618480505602193323592601214865216173583493506283093495939714429273088564576217816626307094812351650789286246648496910490105865602382629668016153253213705257543467930226065600759680316921497552865439307018201500167515522741317571936467933077283581514284416035144923843365453425287290309173695807530047271989715963774541729800447372294699929097194205608876717614878325590230335169172577234728187456588210393261049080743094338541296321481561197176701880697562351481216255195550104216468479409107390276773433195203389861640888052910650132340055377510731546597366691595174730023946124763716668469509990089414075593469430835097151775540728337582996347068112283749839461024467071095030415698136366677600500565938018171382955972920044322687235697686824525196837149926160242229739821742374428608383405734052541748173767209750953593572345697483912567898550217000919920930730056837122972950977613165078282437251946286035006682973825066305618329146138156904249389532662636335229936560199196947678908360955678888454742943748234642288249520820324085509145099749412489060938116844615273465493848670788193809548455463152579137483857618759574206354659210040680396280682041028265319214735760052242453571130781085526827626457240820926738272273547172866274094544138318345995010153368886413948967669192794384983964762030221465465408127216505437343986360157103185998177713184923723906845824236507449576739995484446189903655350957335848805974735482162696249744174587750069813444175781908513994742964968747141192161270062652968228445180210788646051241942719197432588293820917182092456994694971200500453766384059572973157514992621359255290425312071851870642786395818629947020306916781952961072469955009581714300622253519339725675243939096691330139704680573030718422943634460196335598704715669540762474723238533811373342827761368778291025655988631650577591113219079276419850967360951149858794891390692001240043521697179144230631609720043471418659319838706489691468392061720864815333024046571385007083829447518252321705343853362082077239719205074959873886171892486322219912167850223660399563511358447643885890109521060542077426754252312306487081094018437737640939022254935737719531498481558372419897433576973922447639194133413860588699623460381620232896480807015401754960236703739977678302913944355977350344350062696079829367483321413730079025172695483141003116255603749809098460780913960571122812926026648285906229746253777262414445728592799376416840875409760157738956868748731465336174562287456538259355444601942744827287089596974885994919977715730654247897082655072989291810194142787121417292544081916429927721620616959751197981254293720724069453887681282632308207421036857568228119931051246833614216650390454061903204436429755694609969341470447855840571095755722045143095117361529518724914211881889657770616943117806304849622125754850569293216755057518776574357691896610836241790028632136710014340879839949225275749482742377706284608832133348160214881221144322264809192110002294655213924154855307093095534713501061196582795029994645159299301930066223547391108794844537426783315412292725544090958632322748965048352364061190401907141409467976953189975814965266954093139961828885307590998320961118362937864713708464781357351557553992868755031136500279924045304200018023903654059505935088146626542759836212985459187986475012866842598438382698760241471796141499282951621696129554794544174586972246447015542630388979444211397610913615531733681025981328496444927798244301025440987726842897483747049430011045417911943429193957184060459344311657477753877933739835767311848932763928025710150717024651320679343403579527558393522024534348020880489859318708519396640913252515360564377469834239062339490791206405354470873442264274057698371379605397294801598814847234798508182001272150405913703460417580093909426633972363114869546528699318995062555102267341681548916633573878706205727307856938567853435558677292428872137544881714983265209120550937300744397565569783592408766772798984854963426723457876774696775846767204514962063952096934144257521754040852521928180175646816590991431591188334824345824764081747733941488336937346671944756397086032197251467298282692427689709186860593406185216212810545292937588371927466569577255730372598344448245002423440964356712109122855418330204658867203151488240570227506562757337488678075661469898481775824669493574267826830305965294145651156308320355452520507561617674968606120469916589796077930787481858273724331385284484958250012080631462595226211253561273288402065904689911267394301853059838373056213104759334766383886431535925676350867197949849317879105712820131948567567437213212292775513263636984200822027668014765970185933454680626362291690229942746493814203220783983492197624506244492829307650811658115337540806451724459678695023159145684169700357689983952672738127104187548237808338215592103608483356183859938159787755967824554414603360750905902800894690926875455361296861114390990595824764575299142818921593645101429782344944693927802054473557278649723352839528645312938394739952888266873746565189209857025253805393236127505913158302128512954560511923581024120279678455178485845375757530234162138915502184681332442963179514205533224894053252853379892668854788364775730277533235609093172637200227456862714338125138264604362861249216532627177277151596975746862026897182678075732757811604070328818286834940006054146869828736861693422460528348027486766619710177678628117958236561126397566273890621313668826921203237838185241123440820242673872429507965124100496471220618859414607616796365306829215362024162034977497630370005384373008223230134729900374741376656575257790056202175013653890542442251999177829855471862566362902740799394300864856929904795500905161756412250255088449875174570320875166690741003350143737633983378366417997412412773566101649592898658353361533744634863498807862492337990366809427684457594310020194202018793948165418572383687780434508121400882018859327846588912373010416894193656020466452206655767265894701220173120793253131864557338828977790940136348510980046293604402282067839380026040470392000793704354998614653180582431663297545512100393168793006649802979796674983406663018910654480649265521013700816610571701234762581261052813650480716787238312409138403259895382022356931565473313527259857509672784868406252563574110800245197632196106322728107507316718524487438243927070800880970970734625433869586476665837435626594353601655549078033262782806882312458184315524506978167406246157613051547130924357514329310074953940602309421762814917301511537841555426451572260745409661230779426055727384825726115521046991057031330052158457800176648501223457986502962029588866408688870766872494610448933377724022225775419093738101720582078107043381913963627940820306874351116950338098640002022285437699106049148135852719106232379370555826583518575793174221551505866397222137379371069400406570345146392832476842489784009621680898954962611277652368590377186649525446751831774053683416057131083575849947938327964409358642194865138297941598290267986458595548560379640322376680263803074553104921704578742322332875485936808482728200650327029209989371615200383812068066437347641249658033583293440392024751948927996870699656104331611592091238548469861908740255946618428494991097005350849315067271359333698399598916431653590797619184807152760543846813296883962688170298433997801027797084311467612336504437838055912696286334585607246141153529126964778374975031563508958518536002833264352692265777098229353068230629426383318582397529065805560269556438989053502533496287878462781364903771929358194404262751699526694794234394264083893458950503174577773378995513827250671371356264584807150110244732313035748667467647334251903586910770821603720157866622086099382858712111052194952396857971278525481310870867939315963206827422387916606867733094207583094830936704795314266810314532125613494168272939817172279435931327622640574085591513698239651009825029736289522237311975639879644227018605789737796269495759484892300822099095668110980598596406135755953478969267972682154459592693836432552473492285926368978506293362877959521873494446477075186906984603575323883919874591288494671170580795907154968286674998461619753447273384413401248531232720352817161234925595520821041352660656810684774294584507133700847937612494367710742290884591978522391934023091912112448058201092780928176336373772909159390872811145706842090671564160455613080574037032357756463258003559196677709101655128944235378586009678747487348641579565549911585189428533507783465261254126540092856299821565083881495164370902805813662969820180388198574788108704553064200806110257924155548734548415408031328262544487240100297700649263234354047181132367604296702869226269518170125945517021751164045178040120960368667104100787671200708889227478145584899234822471780462169503110382006921807455912615199955145420699555359248402086107406598823731011527330801249304500743582209896519779687059036797674912526677601507421659990417433461161016380616164971972588695996721672130012009803704062280699205252159653634609687342855879131546675688846407233535299390665832872242444485105667899434417668163610971017308098792635075705725872617327890789382448247303519062429390403662821322673464515756242274940943329666111027951219284352607075339795470097079555772182163678635222341226355336861837893244314409815010905082196245592709839249092282676114195320356412918302710627072148559973429486213326668244479593390065257563328609084636345882617416869527690971036157458636775157441331160444563935777291230228041196092573736244087588145754172010994240265798171475493368731838905471071299275880876156984843965088903593998091598298726290412898938466777703683001005542139204186435074606909959980431606971056337033709755790918168166013306590218936357552205254066456780909480686243809593781764316559853011455781651724849114006308724351931131104891246884400713875743764393721553584471155410423631380356927947328835246456067407380218026282667286049983219325319434563756184520458484251130055673819954720793928959987985847631658395090953230950440100288214192796021941364012780344017222880017555854977830716780553574210908802077812199724019113850748413600504981241807151566960785359922298697499592997869171264751775348072681786890799375389847680042014578839449740726130541071771378766962746964345971342256170189480175530522281950845608988352179596172781649583284464102088246749380247046115291636328239907468956880876640128798827950779998013781921696956376128094855939289384107639215055147615928247495716830276547051296733237764065875657216509214166706140394972842553143054131053849350730250202899608390931951654871969962928016440097515649203161951926884294037024858494595182446931296927956550927115284958098368674925618603608407149706609538658053167770100624225565307071260205143867145166440425808085604408176571111455691712656745237462259265721101374227178087802966440871424306523461756715868319240974156060509225039645077904311417926645677998413726132247766978214222242731656071559678402107388160127651774570717724416745358999819451887241385694533112553390109680504084547295048535411181527984277867827452322774195063239149186817040176370934329422408847033481185435459630027604913396371100918803426134678626014594555986837475070559814400602603622423114060075155602146193982612961862980239849980465885485543506776187726962164520109980533115756946265780518038023240985557949851630313118858136027002365997211090833776534424678349089185497739666367239136346757791799790966510591348821911836665801493733091106120055057493703443639396777544819736993012369056527224755220648914538161134146687023159698046901311497993708795823784421357968762666872393282070721543512779171835724906988285612853595067162669083860553979029690106534429515633140246094944143205721513957388866642517116368087497281861320359529139784846615209387583737565840165172504559056047746338657915581733561509267365848963850576824438250956319633406814623076257150508173387602787549477607602307029055505214665199217498789625832829934756206257609078586452007521776698268975522988337299008823782045770361706939572236461463452208084986264308371271678515872028845203347666941662462713286438650586352900920599388549918615812308552538646838914242942103093708967967581989152522023129174359093837147553166073575126999897643427940860463374688009947080623685909690053450220413251888404755970498825329030716386066108878253528764292927638649018249624927354629129939447740882401227039365209049561684581646131752819633741276996618494014035344508097705360455137313326982387777066275740013687228162377287400717062930347158927689517003999697996072297282946654967724749365287588754326383200456781500022200075083786139199128004814490830271872964536376820176584185689008413507965403089833967902945762753797633230984363420729306812924587349969463061429596233293929032869038015823913982064155033528139111336799877885278424594849354827260467594479546361773032288954131065279252483394632200513128449683888379099181217351654745653082758973719389189754119729549615106805810210071894936493840353439814618891405278921756543843306539131185271592907235922223161425520202929208221702457418935167455357037714104892235962267840197362164797437218173237744323709158271616654865586456332675429442249305351480817533675387625304323164850196746925163108212269581202264027916022928411930796065183207549876677761021334472535797135921496323565131582072154901214380679291232326246063370416713312656602315234001108091735020078474162367647781912847484965288577980216087664045548414697153123751357074792559351785364393163422003983895442075083951238009535713384796632085458312620478819925843739216727290177306154230161636387163324504128456607043190490175748685150122188035893211028371319018367302852102890136020626315767678970139466445137400652099907503415096151798619089913704206368292343135660121711574148079056707890180631370600439520674576748856552018611872976720080950901809215635674692771072400079405300887500870825674614998872510819003764525434859115167084753668594443490254740318255297199738705249186235075274849907132530644187481990989161848292224265537727908445614061111796065841413244885132965581163468335625942935325451360440077182886724764664333567268015934116163343146396105886050621354316834071943938253939672211356484862888494023384427806271420558632526677065889365191377402886488706012734101622680705026863301825784738060637294862653321693994052110518002826602454634425889884807744380753053596458175642063947083436799914268736175209446273848313042099646993596264235423107422950139195067493310793216087515525464255224798246656854059611447752597679598704302347588460161902397685744493757226802954552195140501129653967963275544248449834808906564748412006997970170807267060102504980011970771502251044485521903789083331731737213738377037839113561702321909051314366796409383132005068403305733917127176533235892726418579541358575051928228484193570626024839440448626961709441438739308575068713090221943792890769055453233331401787781314377103512103393711221540270184725947699491457703831994626817236136734559217796474886616188330662757815089798937020496832083360775085824623142435871498097486354567936695218037377484691390668826816409068977736538563854504212181487256090295797203624584554272759034463775229666851440361461663856222985207021623799331305013023817134838787902892446177168194489139582492423061916323466286201377346058843944773927096737688787639119259024212472399735695057223601783411346299316365122142604445062354253515075612984495024933116075603785539902382552534617703549512905602165671730834569711298163911796666593821808992643145345088186356691088838134108370661445803404273068884899938317080837747878041951118645087239351454143858011499331831968944630653389767243618559258098317194952561984889739787403532923978306244016963060622423390594173714027737301839055170461764195563912885999176658632158006756007502279362294059957087223495109744207011992969366649152008815057810226267634132140189391969571324070804935563879600014222476480503437839388078212462303540431379627649347693944286240457398695523680522434774927876252380921010521581509198048135900437827292413063296365986942729992204852726238950645951768932928614715124150629577823348435458560282039325162024916969868682832572991291543100160916724534738516157544780206643648831184545041251283606942124479150865877400309806353384701769470060157007135851197407876181691754406098899369389603324791766858915756569293311202932192912095868047492297859647664153676895695976338475023495757905506422781850429660207927055639334522014041976596979573857983398455689773206682714611517340761061972857263410856984101776397817653256600129625840242912765229337397765735604484657159601976627979253983423634016806752759038736918218540842884365196114837525426419326209827199328996724332975700310767390708283298674181881572037016481201558990644256817752680224854960255564675614250098016464464228574794120409843370198460851662260221511928661954131736177528659701454386075219289445899944973124537069755355895658788706238156099697360305827491009779614692881995771082370358873078076278496605956443709650643765339080712058061986980336751638162714154939164824343029851596552727424089387897475908810740196847092789624121928569681505691595448631237379955908983737439120448474779407955033408706667831923791692006606583120291484582740310288598172283291196764147025750970242637212469599278267986816034690088297756276414745964178090176664225870698225913895369754539892097537982270109262468156160094440829074191813015164829474115372290239854763779923036075792020945192264461851853615894294926733500515223315900727881295572844988689272411563289104323863490737512769376397249241103350342450716451288806415911752445942580418238457888078490983229438407210664240872209623083039294032217077985727414981851449361223649826152390613109549980128215172027655490723016904343808571069086401209711353563433918367709663730440163229943807429973426310526610401425637819823832750281169820450208201707164423645294417421611863263152639582557579713786628903596199055506202995790247132958185113625070660231620805043241255298577034366481135208560126869631834982716932521884551866500142843141716603633239047309242848571730533234665290900496465449209712090044137854114588604013426534049169663673550734384419441246260721700862876985408575643527650473042387250271850396454317748729162517774292853442429923992355170325752285526652840974813461517604757975320690248217126773546033410862632135812220937212529137446297496980592492828765272320454620470683664773939285103070722949891894919288544573383312568027464257328805215327070946650002620665951344555960206870200834905699482793396581011324861993936948961038717807365751640197878881063114417771757394172819825616398180032141548528506781851907795540565747642397944319455649478873867954719377780150317153277801126651906704792797784568006860381231427644065368656904560208462241156711442738022683053376926683622264381016532982250539844596668848201014886420032955684167803526786514653370449673630926012496809082058277874119369006892335098000977245306507734627901358748351686549550894145482492375474828374041133091189690855155577070343820768167831017961533823907087256588890341550596016931089833369109620324823136740929294755560073474778791566398398973117287165074348504354441695762670600717660728088555231154647501470141300956170349045188929950488271974462526049927714529109911851714959819863809318740436950740282571609401117065966129887019691251285527433405018966223417881296950762138944371681351158229349652441375723491794140703146586015454389264141080815795897925718723072711117301944758860072785900616266528432433668158657074832594474925121339388153443478700412797636857483030214105996501648891918657656547718868603161459023317949583196319260694955852389532961450865680409165755520109413526729868448652483687343132887609478151992205171366342074305557525248986397687881230573262669762964462991959243444110385425202788685094080113120810126504165604275322459628581457419565847451746091432279001928722503859966588692882239232308483270066336123980922223429710354975729962408549497321394907037509040379369270136474270443490637872959967991943047883878974725852857775524724619345479827733710052483296945500153484356683886884161246950852601423894788853531524345104385190159963580354961047094920220416999189153097233192143162683275399280004495545369781481048840278631399219122636819650085156592600460526045814303680545439577025885747881263449181595034521521584186925268631676682292184298051905890485671362803594598503651035597942645970715368295928150832285249161680917145418228611700532048004129038406705578826721389749545131536937466465455817554369835093360571811409147726357392763973403674859644082189956659157135774790197753597280062137071794956846069769920665798496349654142919378950607108888245393028282164551683939502093772552217890504210229442151520224969548656188888399182437041786938939966431589033224787705152424415069346933599742528259894297216250671593822861044843918597633938370673889935243681754924968098330364924008774807451584297818067007455742925816584491101419038099966461200222925962884645501184985845664585016622141625606244563296538558030344814158266375757618735125699350722780919229145445323371107048964569279485440795613329055371067899638529196871834068851002282705219739639191783118972438051907881460871163110885062249616343148962107526860594857936599973388123432892616486349672546733097318338223022584733987437575473190519674563535920792712416284799563389081366896029991112665923196616979236260923038582359711885373655585492876461898291251099076632333557436145419952221164577438577445888864974667280717126550402701343437117490767048014249421117929822559018099094759582486200815896945960684119578102498599028417877093192095230535961527988978677402630468925868355068506191850765352318276663902093738067631474793342818739042995006026783387026488607684754803326032224887530183570006453251166291792022344642019888115328349954709788419005705269470312870915852028327431910854482016021048273266625017797822611695359650867271501848749716885714872603831704335707894501427789243946659547933416828591529949290970437562320951509267508276012754045845492193085249978855370056898724851157292055199974331330121031464852737081542283268348699142355653354872885468450363958960550940894847655719555834042731328733840167800771807152546003297903771819480614239767468958232113277369732086329429313492335338889571858151972175199645667227180495996791118089297432704536438784566208636998552760416548531651807014856611885371036631465038690875215379555868830278380948029817948489751004738355006024210889269281587886987633659399066431524363834171973819283854295010291570833348452102142849857988616843792774218292763260138974885463169568353725388237775914164508792257444394576489440202553689757030591016762589524687224985909192772854133722350139791603425464219275150623144947763848710936519537515612610059118161433431524205992380818162810790696450128123475229679687157078913592711108967728522195884471737842706273882351479922554637252775676155797206172662127155235240661388590482626379188408542403560100298851111104790972846075925158503572761249228541880969035707490882633705567493113713449423975291553751046782571724921096061649941072573388758676075096383310836131068120723310363220601864961434004684995489171433100572952306628899157412013621287453652047641780972554139318704660192925207194260863327627894937677045928192974501238719814230557633902826634642867750102361229157251747095198679982601169963347497774435762831942204975977585597424248799147345418124799926772698627037644181702023973634800125806998149884182459760918937125824618338693638809014799392583654607761492172771744382706812986613950023071602528053162153788905915639373965601495992886168253628257738111878037617783411332891795746944587631810106354067325363313657671353735912348001785324094204567377468916061983096017276657980223088879904563834409826466961275206052329836662527065281371967340650224105488179465831604375075073282999410429165939750741108176206151649359041878148740181648174482734894969539738530232618678221655536259746288933875943999005030014819577007275843165604178894685190364446766176741555544290788434368149938869164753483191928926172150657012598122192609844476850439729827005834293353068659779742571485134771221578970928935388054154561526789184200242137718651319309976285132584610184771510858890095716245025274866165771001707369905628188066241465892725615820866379084479459825825658513319361826126346999111445786680908053366699419443371652782988610000172430914738758951653282686826023162842876163934116951342534468628365362684873133143191820210111530811016609494138810328703343396451908400842725886277210631451475196300923702732554076652358812069028949215872619856003421607555185100441820405144234339838925609388335681324959716312608497523105086004940220163640118063707578111609710052718838299782770433667865260081016393845559377761076740830463009094134293989798408672350726942835724917947844461272157218246582489272421330528447964146213233451583276873227585554655347668208908497207076425726088710135409701755277196147651790644122017511053016261482330883173606098274732356698139328774437799226462097982811264750129756859517666825330760282276463994980900226883510555648350388443610583602712071802316080695646835344644015039409302867843399931483248631968268359164065732490161840551384133440250876514152199815265162573495444117949199440948518792838787483185998428707663822666661170758786252667625607206474283390276046768187423153056933049885487394787025226737551483307131885314359954742022746903419715560695065940282247076856348240212115639075364560771499944322972556775134825792110253967274216799352169333603627858004795181898283607105145974539998772345795213137205305664311309885315735759506693008164380156718638967682362676001581509477211901383451298038883414752969572753004321840882362183505929655056620454111804006522240348620728482661175918830659007119763205989061316067906462668957122572116641757546435677559132705329256425324474067217018057409322947058477776530214943800451918876510135878964056869247819323908706997913772196876769587434342524788198482875746614279974438426120781479869593304723506047792457415802548894192516588051010295146323667482442935893716696762892967714838964763647724039506056901405710094560268881411712297627290036269495976625644660082886898410444401336459160451389420512515787017852973640182813009299958241740515803242569867036251953088134217464872688026532088902397229248691191972194760980808508606943333930251669774648610903148171557230757434874001123887796745956667523374322730167630106242583813423794466333225451300754834739943248984146330573396897467040202052723207970010284554685813811831031038233622199378887485577961401863797497681703925687707200396078448656618957403766734227264037395421806568168762407724465982700324027770894193576205882019198245929495391220434740971430090061177867220480092473826248286098844330373576995284979718298272390174019847457411709354745486261417676105209310626960392811482465076734006477122405430459946636792820583224107011535560024654641775281557293934989689694885573100704196483193185034834826893862299164831115599472411319027387360500089540046011622815091251699768650673676010479024745104437739876590863889381139934480429371530096434575000643517829221948791318880183960269416197439811117148726984814449465456873101478540633201918492823746087681036749382867631222041476260262281178126175805931845643527934697917757862105358282963435570385415918237399458162985928453778168682393523614846808588952603043326145957146096548714344287690559794560840759814449721088685938164885514325553724847418531095426850137268599642440126640532578864431135723448922338040703539489651187975736863474205100947017311222913952512929397044723609489174954285529736614592767010909678282561406402251625539412054224790484226554385086549734450660363263492659050930348611732341882218879292716399169081202978385171626463421050132518237039335766242987313672318774800301318570521627949887872838880175626655407787103698640307536113538266848340426819111342793468629063996899251221940999298936028701529034523608057618117628500844219519174286002103523826044075872793041965207254129186283698630804021659593296509171491531368664580571592465056411829072867595260936733352141432064280879974011549561728377887023256526854730566260062331874220635904568275208439274602937432828778986440718847179761307788549524468475887029807146432536267618809744541473433081397990821254370352508321066714238144897150437659445686835339379112529985524273852628903682933913147561445595998794484492691886514125811713715919485245939753758894932156774983785592805815753571316606789612685525560922549162680249672505754580904942183178186921812588193681062800942941839896033452389751342939989845653724170214175691225436501068851990874666440666765099809943904850014461362333397671477354458578682384644670524637662082438123645806597966864250896708897732129981973902759740115716903957402991887905239508784565498916247792934139045283918012128217513892528018368935135623580597034366127292986462435311880472506526164230747086234179933204194697439896352826489692702172489480538939034067142454646216903154213550773716563270128137581050827363459640494179716488844586344001604247912067948836064102064729659077464883190558183487158590475676762971373657809974690843481586159047169473791531151946534447000705206096804187078997024231039712405606858724354914032662944264835098738100432433285909038507521349970503711547193902183371068521040241925361552307731005499231213902844662959034451991714533082343059727285372182254338875275111912608049556822753855368884642344846706313534379676061042655067184832448368053896369711176202635456905010176826347971439403641601852207101831150833602048123294077953727565137984156125800834772373361016285264001601845516419007261198968563270127573698434424712453005859801943228689909390190267808837478782359832396081493671362790104922882093694652816115945681233955327246000362980432755841793837412533114996605110195220856719162373397851619150048432958026961335646862294916795664178578328507056446248882268130028232719345590171521109626443363188786506143995022447776878945944903525542630804186543521495731906558031180060565371535199313015283568067948205344289348163727884479032301713636622462704509076466153546106014524964274889812475818263010715330470120679446281975825299188472274597659145667815276880685000326024450600408560627092285638414690146887012148899782918125781849642417669448535648303139687634420424639043265574989953541837452984767342025891620445204367758350784992888863719756237411194170657850721888818264090890218669684375814622776012050084060011274249152651175654847556567986898370943523814396088180989082311533637515858856978725469569134179482417536109476525475418520426202804036764152093623213237547720895515330868826010217060755773523955633481035077422200686060711258665464439169450341111716797342037262591078973483831236962122682728193682600670729031545473764954723803948942264495847543320425055330030111826959819945361683102451410251907363365379331334286746871697237866421829116688938457986502128290125314598157078189579366817178966919661937481015685989968406656970730139304198418663703942199860194456600411538617852043786065496586500182819510637015333994487745191493365443254658899951785328508014000970921114747998181937958510107335121510383014640474142999485215332284995819095464114836835629475455641732879068805114590774658808385658145883414774000347848903067874147616585915763096330349826354846253356245711355094170717983840911768737084679089205935421323076433540969502290240802316778748551451431493085105755340705867196375206486480156774992495129729853729299876620488326515652602983773633433718144604697725883979913170886013772755415950379368216866462026792181276641979583677010976842248991373090685799516292551749397734163355235383011024299387364271774533529528480004250208440069168511268474234434362969259792230783598822328585870306343490813407944474138088155654108469401547414905408605674432103137064474903491982694152363312253276755184664145029289447736472820895874663954182535267429407489624366884133125162691861349314472683472251910245030491427011409972058836349778196858256600471686009804370383533695916941676325236011881209552644854289466131887065015081449021808301502798896399164727825671966531630815565479636429351512615862868340687993879199840357439038326928130937818845602752391688223782719600998237995854659197933820832867369814771664282328542078431707373606555720210936929675708406888141990517427220373328900624349246873019547358743993729475043532364492436035304740465576118665670702543431956167959570178414791173255468859645584909872926733565836588698107064810179309968182929864633193619304302622194524534641209235593860590227341374183168654672114995739136150179818114178571314194627456857315449395392598472247927419512065625777202545447645378699957375539127599987669262713683610655148139855828364398470825708256635016925615181402884676986369612414102419208485376914020158203360951272492943487871414018360284683659562614392415020936599634103724462893869941478142219721847528697771114259686367002014202002636238421851847327464622304985795845305886038874299793082244070155911323150598149580061554651064990594413427752610801955711215361126351049711675565992786843300104054170483798830260377469803551542476706197545790834819100461658388605136959148846653354791393570983411034617524233742969458583713959592652382724831467219987797190660822097056166618683070494563277618840906041707331394845037197897029284401262000121176060452453039517843843606881976452145798104971952596784617178922683891339943275676885326876481027808961580299070655217654018805066640259970547584130214906945663488935592278536325130014666018460974881530577446226292074816580987163916030430785208805782841487135916790570599882495290147806868997567556883502339232715106125101577486207744953021581702536440599417626457212789483847640457423054766310014051994696176217593495618088798401880270524934611186302569361246396167168346119636742913384268162040326974018826699278157413983920292902476554569667249089233789991068409126989151040723197439689005517711377754027508039033379498167180865979716439002170543733725739587917344892462497858577467367947387609578950220114739521478874882134651875875897334538445844289330711526750504431107717009877883346941815908446496400580137185786347561775182047572237330477071388409968110594489411929509150182816235620166098249871604285454680649541444031263936312160827719094932774368629022257130974965620601230251613491633471529536811893946197637124847859698915693981482706302627894172230944165785767768604465725969663723234411622522930688696957321809675637961008372476010031477253273223676950681379300057029487388454537229529503375246825533618163908376926188509697535954705299988714274197724852628370443929880301888791097713908565183692429137575184094468132377511472855294116142760714028929226398583700639232746280665962928835173779252214968297453661121222533618826316541995665488915737086657962794783305372515442216408669801865017684393156253583815489763192326026565833653984730864812527546837752095044386575357425905418416331426604477082011699156733945008314731424760716807550387071726420472475711596827232432807331527176876365606250198564698522029976093726914385603632209171424670904200007437713475216106089735170918151877198776678568762989338585320607945786392310963855048237232683234850634294495576642714401113774472623318867355331351577425401839120943187686657556845448006566799820487811456576360671078381376268774800282506260697512253264746231549876916088264559748460518674440900348864778460248727801194685033871193045529392906804808526605949206365231486297563340321840204438946281651702111715105095429002452632098474781310321237618348900862368485622916983637405616620302839304140015718330747888489264677363080972674330707484635866173210429800270678915598134388538281721100096063463127368016161234618368163997138062058379113492873456063454254843398804686073001868126794973883662689158458586441677884286661160300119420517004060540844333370073702229690793168031088940700696610129353196836589646378063283591775271787794975252236721138819934442595218765469236907338632658033983289523898175105695074585433434138403368222199665391622858182195124094074164103221070671657012119093578062126302206855194741342615800314291319474128199202211519769056675298693972258548041128931010483760935039113055145580995050855589789033040925901853749385652907921506455337656021198940878348756885777478737935609162938804347833934218832643717666821883223515106891440996041344207866836254160386748358700570860516367711322598509125371503809468354464570525381214869100044473932551645879015797219574086035740756743890508695148169421744744348467384273364804059348049360641444018547354994298450863509803000800221388243034855712696200573271594494695260813246493788435129346137735402999518618020834473840635498313004151853252747687092395027046418927366455169092914941622372385306966410848125575623402880722324513064145623036161876642046504768021340396036286385377942644254562422536660974317862122348315015084008085978590491702290535086427486395106126446184665747967451997658130615198412568814247843268373442784984821313495267549755019776855335208265973170943043159637712474497024587433778444040409567178592778412448082596187486083252907219885625630653184567488562406789407336211359741061351036351428243341735915828131647460077179912938539984589033522547789342031041085622436298052426820083028595408944030001962762955342787062301790939685658044085813042017847064537546905336571874741802617519793692455600890606789618087252655579281833319401799078947674248934013589988038870236015365718700314524895541827877752837252109171512928525929262261075074405256261023430004290431212751810108197774873203342886463551404074795045720082852110988550506427223520260681118924860982867768380548979224220361922072371374870930415144700341195392235908863834388549966878128088849068574329256647311456003556111834411491123043593191061325161093459644916084361945301382984100135842499805547740040274646704681540317987096900857104835825774065953614080215778766818348456712543340185708388877661387064698098616525749965496323085704226841779742166221331478065766817528890242276012393939728821414170753305272718373249545402735224264693743950417964476540044246129112111235901875655234014589668117844503353156548587612815883932590667595349715301120894357166760666561628653012941793001996024459338963579345867647258014944084250928018946230122562951074448503884262822785099356310457871279422061307216944203814477499074781932341435959560518363580518645658630854321898126306551178350080936711697359097719886420406275334938086320318402343112467898488392305717706271195500594940744662825056123726264177089987020133110908798370466585137726902548955457929652266813912793779919309309372406332317114560534921624118312835612411166369820900083915819654995818021120256326805306365951748015516463885878521557009089463799485798388832541919404676759559303439524846346647190134243874988211440535618231112510114860523097208886804256512025336170123157676405379350605963408440428736637599090070044537280965261983338819934818758588143824462196404765889573605939730127352240721756457368276513855670341492260919129315022721046310357928692166155907110256744792753697395744004452230912558532373077732629822062335507839060804667557815023811834057931411026831831931427611403800628924163175959929349049609216578165830206175908008228018373071358178374583441465899856302555680710107121118670821049295257808903627840441745588901365252537518225560686102617769677062104298208771313047868494084727857566456458473609743035359170607216262231432817977295577484789431199403475828080972006731200944191647151187895406659205393150380528670126662494945285708727207805857775282232130324988071084471987395038208189578621219474802472848866332354264566206040117810712516815624641500138776536810913787069582018914966261040336356021145943563314433401519661429473993318653303031813283847047569832170162906305764721600641055967847892401071996584375462588869054956662330894719629150645899631321382134067241812347941584774512723542736015123101570552924514758537408890898610801917835220480395682996173668831816389136859009597269481855652754732967889154760051215577450372474817577966745586535223545958913523224086046597532994996952212910272379799971189620438677394886277173331737992455501666358731764711040486203990853844679704177123030047803519296409116277266768544736331968098070086949496166985155629192170924236190413194862516429142376860083600069418270308004987208850292358121965648316574157287146922689963551241695500168374629910895130592446417384868230155580330958709821986475819021967760105612352151250416092486859703554216569714175571751590123531156290821840276517757499344600619545329371111640059629286011179328355120129082213910059943006841610299225416580680035922525935360009651345199644272684295601919158747321477508294271347797828750628400918986268154656519093537560520972802321139882594200350170916582650550917444259011239316830969931228642103257277909586707765438814146705792594520995027623312628832260603708825762086099020351699871136307682276995170525065094044408812671669207404685711973868697203940689347237987373222038056816770743008254189466592000355740722040822900186045354936581120567499205041973323902823807149536098590589081082091732595513780107356511086699038212384047902176519180396212274331001667721384468059106864423434824793576243699643350458808594290784455762617459396159516578645465669063207017981814819771528439673817159341669260179314642198494997474628569360672585130063938543496161101815587010878795737759441921842407032787176767311105987330768188780739525134723352580243484129915641796615343388015405396853334735069077115939104900489314193030980458891456915781434162966378221931236279586421647785522310595964930950138015431180580994728841929897122914019637331481064040117540788809072728004236410413279275632067118304207330107278073396938199527448862388414598880974271020576676093209719224327276964293838184856408465932948144185121642360390360813478122921358345617569714957767083296515062615807776049778278837896475853607255698527858210651189186653866568171729081296762210411654430589965410669074201927096523993104119358249926893975881789497348719034509288564986749870505912003798005977830095964899667985002358761171170354188217981621718987422174530405898294813860267114492038727939154249689517247689307934923229886951994584156658024158268027523950323314017381355673990009470794352925661931420497777189087916148608484330899181738540376753273138113705377401807102621319342614535669950349145845401611158118512958822720202720318529747125060821473623910748291032070718783943253311959740572841246960557473874533739250691510634537474820888786633950807992891287715360344336112430241520498206875375827936839534601807013377530783318384943620166689939347915894541795406636551390422963418227310557820867661005555840921340795377451240091784966031175991202539581808866389719217281729785804515744106726794128107678319295452657471864146829345633281634621065627076408097624799893457156640757325648124803813879492670548831540744465901117091780775966400772369770294259128111645254266838096604577386289280602223878990262758518856261078283356131580818409707175482372015035298597175826010055378174677410442954836253303682816292673035856080742740701061954823008830112453157962407534777488745243115519538601456679231935127267540189645254065677753584668338852862729395872863808736578494256582796770657974101723991516078688426512543589374684174813563832365526059260508497796962621789942684928739172085536079689474504473500846954805273439182461001110634603123566553725804868081105393842049019909737166993883578863758378242069506741946540961064667902400219022836499410252059173583286529329473911263063821627321169900943022626630249545823073698336841833944592140507337426269029711527343381144205337335414123337641134172934196523120467604994588319677416086376992033340834038705062528962610517835078278507529415516249127070234193713260493804536740181506013034338188547449733987632442968115729246051367128032200238452174644379430929727288923775619499048798184558596383912490890337732352736877697693637317890275996614927552753437108401155910054393222639658308175911253792044666082759406163748618833506728469732261871093803601418197500118183987341054495944428113858852407885705215149103107499155762382111443164944234631982295366295446796920650367168562484855682008684523845678406843458052573844733781088425410204677137504349049255966714545693659580776594671969481476161179383515070080691004499643172189897855939056346953926637060842586799863788944251682960945830460931113062347217658637673487854656485331785151000820779164885663685870747845555693702865996669079999030409916020691282776545772078556374181434267365197622960014763157222903859497315446647965698235891141512099067276242372974638558422248605725708939805368353632180206317178804127800281907975523237286294028690929028899530166467456758572459843187083713697723970902566563999426039198695763968751490270693328514074312579185028509354479237401165863089051442127330589209728629843693588178168935675822152464976253570915819104833021973189569208552028569248414729552934383111943151017377188627022794999471784259379192568826390655457864150878786153600960246862396348208964523245855416172593356700557480893165991406422327015668416647453720034982104870277130894197417987264637171078819686964020174652689044110932931232581367038581632824319833201796846931629162475006833702153817180094902548541007419169373727381470879758057100014577314710838488051419423629786471941798398530138951525644955054123131633930378654072754382512633243118353185276588774633696179817563407339051193182846239717395520924939871963283703025356396460390680929355270960526929609414389286848893645382348118981321292743651074286669334364066112781838909623275651905558886116891822467626323333180843564150405944594695101683819664081539074174034088058717763732897210880289341476878496690282744877075746590952920638157087174420157300135294554396511189353020401653003041043059359238926054731141031032973003342534867826051092561849995650146525914517249007733617640740949685101042895849460443455010265218076659698423598247006881544161649834582754008809672070133571871947293110425060308850345191428832033211517682080973612442044401106093121907880093324774921303246412495889653577145474081956326956452628047323564753636249005819256077469513147663948300984983619786239883488030688452797531147322526197452322852629972786179969124094267385750004314060088262804461565825340565267064536067237022409787765445177379186491817384900384252621358650848789571719902947717608313706323935688121090149094422611691899073026346819139576033804301231287965107073396959995460178852972539667671142824928780618565321360045154174082774507340404545185888380746987070288607010344335104125057062776560014875116920014024531094642240967965020591828868766057574926221405312353107986933508042616925026259331741050663701322176390701396464632735931117400858056316539841039789287985398571987116580029695477259333252987400428650503800302996928532294585986898307087760855694777893504093300244509224023352811538341127439193682653073878758168877021034366170436416429149610870225941920207781554728456017979622396566635362828722054680272248310144138286569077866575056295162793537995394359312024812868113891391105839573125569674389814934997175011980835592809566902413366983102595528761209636029534913987127741861944233863039283648323021703911521900411012697238197673724642024608550791225812828614818319010988158820841616813365555508771575975818947150903434728782435231345190085422789929426585181078436011340917732074744683752057264157773990852303767086207961057098160089590886015990992174703585732107902982849124714023517160906721985173669176303551761821771742407393225237618530262190117398561519077144490704173161300004204915409037780218651926499830678397405203164339774483737315842984588126040720995541997203814083383761374553410124559796946188734387984812097265351624496046392980435651069885342962025180855041738233732143918076215522449520228380712649266067647674214150210091662542882298291595515147080296015653953674103662580089168719260151539310572901884952477496439329101278156984705118134078053128547212205893980951131172909384015950213433213963985161768383518532919989639057151781139947280726984836921087432847093415674736750861971762084609767010068337578243514938452819192682088559862873403873097060565640782620825537015065063437968412505561849785604156779608195962608715803269134569772961956149534531556966287448783570995505782684065655237410325013227967600519497271514317105963454867205909916187747868130558390065504786511712368787186549570185292417913775865495380892578671053522492452928170933400733622714953005030155755543618410923149146543581225380379178665958047436977295387209156002224294741467474790201477159563311625647975059886593895470509739328574888592915693011465085197690631415220646710674014300401915765502045080857633564904728351816560661803374397048221173586159818001758784648691208142679894556769198520919117539731254188257106535034713190852215766192079436618188890423963007700804493345182898241948025850446490570720589384046986721451993168291614023924946565650184760751580630730746443003281266463765777921299124325796329780266050622682944035331845535264684554101684145803526316885763962781947968495091669506529964852810003961454564273270996777057123920619493435020966419476039409633001478074528655769851191692654808753939383161985230317933968405496284388081887273745476435292946288363613202292115051034427751147293414992842384750612699355241408031831214744093611437067494549558525693510873183835041815699951367746328286638876573733746717444495903897102822301533430152326963816576649413180761432361332340280224646292545343168513765056845106466443496356476010507219328750054668952309336028006575407308997979447705972645233692080609428358746526757628473718353916964589856332722699015037700558710171503962662150458793088335561350570610549086627292430257131798589066640315747720237778750838880571551740334215906152908535614174308378730486139042365690404928995881642720143177718813360395757974805447354999880324772846871580275159513619015957553410000165457693963520287577997848249897496318767868567459364841946788907699063888259215071590196509349172786702473124960506195856320916719836545849129391050965301030772224177378352098784018701789752693781650310637859218016204885922037480504189933892333545023952749963190799669714585657565812623252539442952810916880602272110285644208189566581572922755475391352053738020053065013046166294832781904957314854865671160888514288286837796363991899791373057940730472567794098082817814488402981920043706541207605433501392611548138790157736422994710150279334749025193724119301293013989606905150455860145225000378125167724973430667752552501657372134981139756758725448328327933162986634809060453780619469675070310899598993962825945847415712252645763277385347415618615268406596224658096817321761938929406681746074995693283138104547160677036773857439664485361700186895905057184485596944119416827787227287536774746318429534683653143660922204764149564350079827536284945290514430739677139644533330899890224588668615697333651723482553329329004730378129928024079224728860876663313082374635791269224036137895288983030464486807254191887271888579343864667020133028020404650677214528617658315475671807586639558896083512135919394498473149711098516623278509711359066892075827855228399435101762663650727172090116259273253725150967902356385497441556346069868095726678521610480448888981367009420405769599984183455093249069952585495432784350879632848373695328331866264490241646485285960213122849809166040835687728516524128388982115912991836259565828851609036095426080589672546549000688476683670567905436073102307352042453157138413479602130694012072651042542081197371845572102853013690865365879991252566659820508205531302021233964326821745823304485676667319181013208983244520733968555432221237838028985004977008176159527760244919051958979196369813151278321832220531319640966289861162585799027901902768423211670191203348102734237010361002158977243374523667120601362704634711210500667336996941236326995514186461263789641189509304657250293488599833603633782711818114752376295394234939643263858889725352273002258536835946003338738292164623039425639669008184726586644176062147907019973186046438700834938795413838763852699627369296442542920218606577699480508763820865734038745011153880303587361107090607174754545190710374472747026750521194083918622383647767426997313877397837377807590453602630354464193648474573962577277166116684012789075668969049396914608065755345095930988809958530333698101945379721323224474803744095641399075575669278762731022410216125493380844609348626618822044084644097554490350935936719357109858383545850078179719323863544571158267319292913138962127590331567335679261458901249363877332981070421183937472257942586485747830715869338064911688782504210781620618291338826822078785532306587811128691225925655142034545741936470800120814706070983972151930629918529515352947961498427114720496698270908794709225253904255813533804743721171462515315908049083712112950028810225295339278949252828390566497448576432641942418469312563536620537243052712491919388911900742774606020128321870378273629221360297440923530211333469917455303435830936845836193960756728659222646641580778227525298140574234701344879724394249527526942669842481928791723463108960916775323381608259561885997300972284741996538203142169931934751795981979307933758203331792094321015759674982104589923967679241698665637161048132360923021354171725345080876912663427242675324107686983878408303782045118106332888635188653848472749282311751753199211261880702451542614254274602233340545892316162473665880413775245809711537213838592320887595845049919950405422048873694182259526960305399241754220702442191202680182134407537022427245364642783858172295504674446171116096694479513073789840186578884030150291938409952573049417599236476286715165477685699540631810275851157386489252815668918580819020474667659088525517900778705961852072554249680840753435718468934016384634576087651757346873650479840207312764695344116632565111186661785342955835627104227640114204838275334144106669553718991718747669074682704787222440357713658519233987535153901313246761064282449433817421720510214679224762386507339196230236790868706271969095066466069697294791494248706716430323727061703753605678760371072902657983695493538850293351670345916729949080378509087563152312837057808696341116907357779281562684508167817729381902251860370864453930826903923684458116682069107311937711052181942452826369962856037581696642088898359419340514475897439466654241025876025963857074954080153778291485219423230259161029445903115241555580167932726375707338166199728745444729551713004290596539605634646770162739445034718410504811973108608140752045938785136035465752462075313918282002523256271985511647243307764422745481469890923784270961419196651409194990045626758423207482798554031212143603940314179033925294145513355998952483841747948403282802233284035995914467695953343922193016556171511228225006978042461910924340150459640421397034544211829784323439822650139581782798532604225294438820912153380671813556015306333206875329107652849443633067507899820840912765633221171727987482480945576469170946298419191208466841331414240356486843916360541225768081692172208510176657810577276542388425666724607015558148687311156365307083379726619955466081691035657311155658990310033778152859947102801790686470123261767832028990243297487363309869049050447598429054975072304842646892920340272456644968938453646553636096251063845714275174836078686409437288801823868117072235011162745135675731111822974966745339080865309443269756695329628028349401418478727798851488392874733416380818259668687025934506079935315082180393838895352228643984381018950603206095347772341475406006903270133496304189783049045064443563906043215480869116923198293131364114697187771200893077719511753510330026086560840847165445298498718024949212940445785149133119235719098079603394814539057061126743292264156008018572441540936234402560838437042462698421597346691395289921310207471884501547575169198760929165141497077358644583874541766710295564685450518067327907921780105884610924445562740047954969920726982474559150877259690854437064932617528639980294860339639511775361507480679646640268951429050159727182994109347179134583618420158807503321411999398710228653085731303522475460210147016263934604389728419730384665230987378467463406692584819882344715970349890486913611226696165214475686855982254272437217751281266318398815880955100166571198368359932726567370047853679324936276523717007702092078874921499997975788384200562134821589859116200433412749891178786828247821375942854586476058083060756014595781826849422691520269466846305429606633589488236201800554262175558744634707365835216230060087725931328253462624839922060975501441455312595019260726852430480182854666947744932718133343522351775300390600607397855948733919223567228132974353505767723868009736900521135157823554974044773859302030844122164657081634685980538066562206968778175113286709627502832269057494740853113581732352037722954968450904139179231019887285657991797160262655701743876630523697461730511883519939266452364116558172763869836915221659867034222860687551190750005461928894058914420830115360225266366072886034896991226526426710010931916713136912926082436957437112713279078457934628050532776219504740753403985032868532799929461973843714338443475130045112559336516126260916161240891431897534315208596335003915561102556518396043092296340502465549281777857956720994670216865239053554360389034992318851020811868641974552273832932570762898186805972972639366569892806996708195372794075236362149492018740649829396110428895720030816280874126156476170817325148342429044276692767987252491145979115339182992343093806550776394079649850964538770902262149575430521877802140109007511983740174359987526083389234622923853632532343899974883172865444741666224751878386077970791954170394016446197059667603585271846849931306053503388274967845883151155364808773165105303413765233781156833641923223013120317033684005909152745654077295302212164723953262530530557725863017260678295789080201156243748719782816549724453020751556877842704634627371549379820885402489835000480519930930594976227099852518944757699814404650904330107424685979883573664853693941614076680646514996786112756906385133279386090623266951828172405737186874430471793785716136594576917332340294560214067203874460052540757450874730854862307921943724540271852698594548947524834264236036565508768632589933641104947494520177793224171841233744152225926621248722690296694779675085898472467964337560180452179007749657666637499140142006965687729058203201971497746735660113476194937005326745957529579267972955285096566885943602733644731538807554489222483976249550013649734811033290593640401658160511508200248890083727120137926896793127776608851757604005189220090350105436749743009249696397153324383141396472365668012743569826041318100336202469135590781793971554345666243267474927581664054413803567780894275187068646365605624921229176139784981447560313968791133443924411724445733286345651094556863142264675445074171182409464480519957212242039462604165495673051646494563605917034543199304545591557841316673935689337551028818581899172107207997118108876994747585252976730755539880379768311190904614284029854585582285712049462943160492435646545686163700901426588107413456827498943989302860505861688747328141065477487883650386658610028757640342902061423356544944760645463819599479478769563780306006183118411732274247449978131944996564083902726570873925380215419879827027981974938542721540940172587367365810969127650929320467755789002109338749280084057542276116932059368833831037879804195365096870384056831367219035324693932428039311970592953688875997276697206920933251442136330328292956331530077630877310835919284256350328094365895910717346312743483099327868423531977304508860882252922430451246856849039639165603436625836890206627163364571713110094420008929002126101034311936426684032575861197177935445488800128894106279086603990104660137607700981714302857143272854942927814936504310422562863772157649383157185638211158472724279352967033618056381791962547118870613593886193715444913862242887249357339625691351493534972634289637589984224330002620740587404665988698026015096824032035390017370622448938767173492083971480131932260872981467343592404841003315283459938147760326760141152484125063527750031703573870768233416969352892661086916316227339364898076585494958760158775069055109563249442915386238252658305949632295480966191462885120013893661394690430869464832840416934740148349303612731625576504067886905420432978268971936176763916083159672030525835574989258720821738314314047782655618602174360749533639678518980628659429533912565617771107699805280246341725584229647626069172869748238520200478781192723344622787135710188508363036017064584522113320875221484322671794085493445844787805266956513181064907481158628431518930525230024530443039869658172851068131745441719176339366605729426133283377090118269599198789713425522353083179288028692924905703866844710738162891849710602014544873219459607959571080369145987847546826642995882108738988922829952754302503744787618186693158908538629182791558247963657092544152875789339443378188821220925050829301257516478293164210424614933510433935114511265285076861399423357924564476687756152345818147472084442680735860041360047514796000158860641672425908797727809069660853077243822737899101838088724740177286762806059874116922489129571827852297427639820351840562878667200946069618181885968840166560512067706480892767698914705242073770817417833880397031122573739749258842335682637293895647141012556320652053282699100560258554162277501721619407000109773676773394784820296477252928914949958147374679521986085557696885104429599956529736435520829740888534902693001900001115388457046894296815256091220672280412792134614498891928282709811977462955611722855466144804274547200678377954893631895567625881691761558786150597312193818713081253272006186704797971328993931793957465737007139923411018382503378939073451217906157680870030448817521884444097853037259436679760908100052752253166678750493590820997756434247702498391794684813373180855036850347749369345561350472066239356178490035696614645904319112953586957087149704064890611279654876001413060193849543415842505362636827669745033712650084837892464856039810796869487408817239642150389869218001299676249007895481216920431845516615171177072530796826204638648484946135142986683114642773783443836581383650429996939026239790821166641529323634054718481964850737689355829150418821800950740214762292730678228756632783166014351112358302548214803063653794247540311660213564780994241762976357214061622018396447097513178859987637073408224077187730091878466750854592536047352201073994220140070198246808710117439898280263081222700370106579827166619190638128347773166698794640731527207500759032819519999526499050625988561875457077707846036062634516894275937729049017019248847773483238833704434789527075361800305508596490873813091315734133490654725091611909455040249280594389907002096395260140635442819802545231989964813007571831579529142194906605734708380899499394398476483175228668614984993155471095076254759820969063524553615021435300975237436101167217052297192538122671443897366650957225679320048136061878687011227372451479895448912144581211969244214426684613562534155859431234939728620890102374995895770883702509137596455581092977461375609977602634630622825879508114374373352157063993769304240195628464590120449968720817470955378123196944874726856391476398353812837785625870710265906556640648680951084190378503560846343020776731879337860503319664925377493291315259608917670129526634947240605937849670178719833846672119541237543826675576483629280930745262379141459067674299973237209763368289347616517197639528049982140235346973372971975107815166820311977238746925389058524457000004887127207816708051059055819061270279668134871044515909111855904390856189164805828977636669242542210747345807193590870762581162068440925076410674530810380736295305750133514364855079011411179129809324961538394392891105263935589708141925354477212918388049996608215761040777407454762118596587304031992634136394269395047942802517047927404044861654961710638160681350537072745650895381138597360570200961349283750726236028164236824772370590334607264100135766234578866540816639667162097151770819775160740771777703933158433085503265699516499596583353177450661420914599343748206873745337424069033957828880331467539557142981494309647089543179419034691161132243357277807331724643344735230111182356634333475415906776204687999141648940977945677465768003177754263147614067483323555449853453311552023421018332096828675198593759756345941198881412445673608911710565692089520818335613925820758340715768228445981673617723021528172104780991264245157945586406993208358387929852595747765655611168190252953219519255472783240231989122212190662901453740657721574840386275882970403754370028384475856600385027082221423795933334113139118466124894217904049818700121852097320866249525561793957544225977242861972080287860017054959558011399931148589738738103618866273392566146019538181090711754337906595449567083911726852898979450484916335685540813067885891726122434385463422203910410664461814156145525724138994697687858589530605161534571832450795138812604389509799041816800284473748497993303176468885997997018706545365614613710411343957677587676383061128707019906524054491457588446281800066502695370560209015159685344347643234164138538064743379516174221620279853951805586680109009534251301703414423535674597508581909341238924582898517882134387460121826447705103733127514655279651801507756316058130132451604536386625294429711883427423080875179439933601518199545035625186671943936380865426949463834621415418537817550533043741014684118172924129434070152288339432443280871336833659390440296111853476634592130705355201042755890569797272025114880381329148470732074296504290970810060864666090664666694952818324330170773778263494144915938291092595068159262262117218455156993821642011902701955784780853458265632624151548138490364110334342765180273677463165221942742088643148284685462598505791460561969773988318802565006231172058109855746877070542577822211007369354204314132577152192424668629393164962443487411684561171880336083506596026361829092940586816752344464208608726523314568455017797058316548938021334242597778099571881817673523476671532346005144789518559873864222494935360467881739262863188711793402942412368036746931855668775312919640867557557390192448826051756253099675075882926979915419356139507479827748614979131024797092363416103981779430712723326236304717644946712440421263850351548851390732989148676142533013402121535831721737122947618361832693716135570220101466899859819106515636591373940060798093666936011326516374691276003284255311163245521252125260973397302576165826848303711988409070715181962610508720044143568280948260126787353542905401886559733587739278493795952080193081010763211752357100712600500059682759611949818144528467520646306762743578881407170359120797723201746290899949625331633427823038078564299444870506933842114154496860870227707869121804735751142635495177105989862797027766332565206121643280547342258878490076974102262217646374966852172303795258054455848450567917751566879808521464060356161993491770054676785150934138140836981566213064376293408113008253817917053351488864007061725539781583036410732927153680331875198592801055166043041929901916134652951241844424649047766560183731429635519143680331343508338792544024155098414116223287406828517474638408077381312708626556968469037186971133453044784145682185532024355072091735571469457555283206402608345978200311378915336597780735038514848803888061127316033558701185486013957043575084855680200970913628006685455562285009267547996277143747056026986653789445452742804652238061712289212008286101267717154918351669219967651379068113064693762190548916042299391471592915864787150230370966708632328828810729466396909538791916197068639540692467802882449180167079055927967141714041134066639318896777274291713580424670800006348292622735196087199144927396076858754638958040678432146572513932974946758178196821118162857586596305709632345442003734867682136265351703638279545505681966132405351331233133291208366382609083753746575682808527790709336449103325334341106240732842298059380546028452632424033889516910128233611087586063840903991253207599316692808559163141608381600070764583591532055201980683932883740272525063595044390553820367597423731990621212731599949788241825884099909565106166253700250361205836536204857763046314961093343573608866496766405795105770025128275522893899232460632263459137170466685160803599594026778663389437420461151069637192353396967744856136849678884583724135323757921696650433746077485111900405888134142041078108001352020578843618930797412886824344295033251782214113411462474852396785700314026140148972628187570758064023347110866145102159332216214256651988410366537239468981102588991553500849764264234130580283843331207352933182439305701520199372924174991383070584910862220763858197543589009838640083992541963982184526577538930048332595279908039174529856290704520081401035285938161070204210220251755075347296145191569979108658394490045347771103730779743989820883986477940337208377806308494855805725036930066241769893328980473614957448556631237333702191446575373254419624652153877642799987096021175811354263577820111627518626441693762485452311695205730996819304831665412746951481004185200681008589889077724019711548367050595899820612782771389940416678524972895408431231477233722515603314262050080508684361545638324497973319268867898087434552613837144139364413224918134497025265071881425347025562722732259121218342066406247250750519258020721629372709805031147160919419063634701670642562401055396877410732701949529724259217499980748982919796128835193775899283425926550603254437877333936311664609025163429794854088017951474841532096444719283683552961517520960946126620825537718326384745956041820390194768483491221995100485603012758247922761811538974556476600049318104489434412180234842892633084069602756320169506804619560943865924652193027860071475755601355329155003583780837311537675995205514474198697046593434552926434758405969106573797929190684627037602026618009047285114703722178201115611959598361887075056487741633172435740786673580900076731586905280331023787626384431401184630904207973673405064112863255975811890908973824448447535132403392232249929955584658012826270024447683881931292233410244367905890658079832987627104237050582687074369930365316088475507492755359993118167525878178969477997335940670033921006733554666872495522931063277846826310399640926011203401761142598949746187712108675389822119721619926613221949046207902691524382259515569287233117364041247261258005527982851790130833233236677084176376519749372282262910470627944764739221446779905021466255657406856233596538503323153583386310400390714608344346480013320979963313297551226893797994117387844825672876331887779870384401250354653196414765650374672987151989735421325475148843851896022116774894386636883134993784526201291038121760198500672447933019500577759853746574408582639800973994933756460441277368653473853788508888019694731529672046317879625206801318530422926721871358641676492820043720460699410036386860751281189645253130148784172095347946507118069524926361140319107352749478596310564584371600136358288266167893995386967160009957801019901157228031402004627558386655753550277501710505132776852710171073907014407351750404356832183468898469780223013854910634133427027358739456581783137099191155388932398938881288904704891150611955376913534451372130081587411128500054660411079434642944238392825987420087975469205162054126292633732202267336617941538878325529415301173390168456543412235530278626754719030714366855148894707104409265514313625177804690195004126966172987439242112010992045451893009219626299068753212104650814677570453574193828756409660591291574680926492486978986062149383466533445323597927452971520823183479166598983532206999870555779220896843419238662816468708992359638349760738546076879698484669435257721562900540303967776644429602520382012418876416477191733668710011574174912579460688895467960638047809976103580049329163111092557218678077720050528773664271086696405587622569336565690579220413925857516589600993740787513908909549083430083459645879228185448732867828887583835859725387535342864903737984426378939085052059872259416608145531646099059465375276560526822253976984977696546739961604477748486273107075196832222466945787426898786210695121440656559544017030953240416422136276897546995746697707130761484540383516169472940429231018521787106794614080695371359963404493154873250868369438997901729553354301618653639247937221700024344577006567326325510740938446764796080867884191597477238531688077504793195187195322456318329038633641057105777039649395219745267505522985475219985584081552382904307289738888243577387950385893182361833898055918176949619165557091635094664275530700978762340664796087952642644485104676504792075011904944012487443435911717686531294207838550914982361223810150394822861070893934686662176994144585087490718063704464705996410763395348981579104588063727102269043699651213307882868283371217645799711231992948803850344878562139210919881175596878484714302518897227227211866900318144850297443441419111291879604514476844005466471797506940029584607519320437306452041964891995272119960469214707772037876550199509773758406636655392212629282547417628113488385728316020306368869380933134039911177281550991622056600390086341126477749923282061201243203916356437254255468292664444543902018079733316773679406774615458682921475480822440775525626557215726269909706000034897058260216618124453272983876952864450423366557501326339601594095465555612503492528551523997739503086886463789623494465718301229418808880846379421621034882214746758364165317189237854704434372518128276777930227020997341566376892173946278473494544067548262234948932196906928876826022088095016464409654182669038777822571752989279368215573227344590982618944615839120320867676631086373884757945958149480319358405055876940317076356812825348805712882492091147543518029323260560886123540403358932094272676851848129047127493259097463841546588585893547842258705270399369188707308163147471336502954756331729565008658258924817674865175306690001763125962027253296103215433787353953322237371408368075848457939868684064534500364384137102401488113966988623633871580008476521282488205775215190820086833692169993674704252780638822638694634032327753009298125335545080339044405847483453191082364478896292442121425826519217557792466684173115448291473635051294358640638537778575969542484857232545641496245610849700784118278195651173575233911763274282242318472435310411532710518849116329377412450917099870684368775141548990530400135145417811485908643867051174200790974464589953702740814899121369152414141769060667814830056929081886183808501791455342770944549677808638808629913123177912150506444755976452210327021630721061719065350745418463711647682036339897410780613519768050476008000011176933529394908587494187938648608885729581260417024048404106878733500655136752184945192399949288564697853580544481336692721863305258087764909665502903871487326271527535246076985242750231437565209051903211863965787753367868374317726692429595063136941670943721475421479470507419463061749668797064843029073379947988229487637740360801912447017290625254025570964915759095101295426504327822727909917538858605133008952377834544717633123535615023340054143280304001283788309402340469398757232040911201425934649682528008260390896209964559697409085728565813698454310172929945390704800535324432005386222561764204735505988674481604180381117297075633258481774359114889123864434008144701072567488592715207163489734761539564924660056756887291535413013500846504296976547682342533896191878785134298868528594919960130156944973052434073084368704431547265683275705955148935788960179405927514562402346806038661122426107164705756992542134087440673189556416365157881282994619138936305478975872015501964789837956785424280232889797197536724254392175101078822277098714276634067617713265395953634447464065748138866441710927918696656434709162260960006585985784404453068663252174214258538667469182787079954136158367385360488502363206877230659505625794283743172745465568927005784938739313562882511909388422163124650062080569770394471055658421442601109733725251986627606803814697374537745566754505266307352873189168541161133292984123701261369737960322490629776283915196933266109291931376733176334122970512019512319406370841742723452822330803263847924242713539666420600140891540127243814425558702257349078163074402373327495871610712226911886050987611378952465127570719778296833596031141164874802630170653878290038594302893131078951082403292039525498605657101429939341718201226197347844170025308960834455942845709978115089082956756731385887918471492537051154866965755810380739137148344518150410446359499364715206550204890811655979537928182662873730088867178567016145474294083763522610472524807564549531744130137495796607569178841928562163051233047396328910211804041641429326446779640879287785299238145809621247054803844728474867964887265874119544059414972383409302819351841862291203547502854004220723277246203090061736520758542352108196145248021879472182894022553442543479256513586526082052512737698799749403689183869124592675842788278021001327651108885301811403990672658873898856451085667889012502728294324399586644216019923495415269876881906880611243033636657183554723450275368679405630118746261377923364749002172011430436991484462570084175643834706228623444828237819507526703601292421154300574743824690476231297067456852295437297257154703112648161749016075541809061743966630521379511438979752649742762481325540317731687213656285608993418261195778042687334535587837534431377938671254176456932307964273086201730729475208735835119273682628935650438211915708666018097181064980612063751444110330704379518503921593836514376206748907246886358172314826674333677835785936972506999839786425704453438173000848265913772490166143798154020496575932692210421748578703702355656891464576415931420870853072472409926609371697471217474837657711321394510398630359202643747700275488359739636782638566984819039412773217712812935561496489127863965959844439029061640219881593301045353706069364103095720814954866065678727189722378601047422890540152733452012917548815826266412950001448521428845935881348135715586373263147908583944600660533485387793223858117426840944376052629109339117409982297084025911090439616478027716915172029666597397038923003020227986392264311154502489462574471277227748091485028005434535182476717464869386383638272382172791898257687998466289677772173890568324990215460468701800097862926236539407813377581402272412980862455274342545816025113527390883828025414516794373675946491613167464151017539605198030022112280004055011689809982806137009352364910219636959270798740289124176674359462381084618149366596823609912653290139942014690239555933409198755870784539943166887882855933120999894984422041942105843215779524263219687359048922990722108705458603995098916317573809502779548970977634378871764329335959260052240282338362462232029037008030265978587607789154558944187002700014688139109379515956533779196474212549957897326917207530631046111156387776898296759715307586096757392184656023801728791333649326274443777511898677198880817023591444232334692896675021170937887439003325697080031977185769533616902721564634290980952254699544667530043041390265424908590757536504743102230781092983386162477173588537507701388473850625194249505101748684981832895166458301112643128854346085442085457992660855490665162880747482597004185566022748537586206426990672085510164969636943115812977322234821364129950242711091776537849282069036107823447954747761309322737708813731807011471158143060208743454783103650925509590963142807612252030379823379301920638253223685987555942996639389859060436407697641993970328629808518260564370174583281340724845839194659515465863828869870667952052038045272909656001409571711634031308320602533463230223673231902743796031454575611454534130024843956532750288181546807871730271912804397376825901859006962607283267800052991794996143802144402228826846320339448588407088729481711147816305122460344597943541323055116714459087611354049089138976169480537355600597603402980695472077838736509073523165467475557753110748660755515551879816587255332274341206817489434206132068047868932525278161978657846690576754837553857584086339162541283641054597068693474491259743741701958150869429650544301156303854584637376079928242231599122683410490610121089315489143443261720935624715391513193971267351564471073352040332023486722305777366774403877175607092800455487592800386879325412256904013690275857728577061012470135801695522937922114120667257011511784115600382131959724334095417150009437351346783844361072174419248130266969565687917721735779704057204208064949846069324264049549179147058754575590683658675572053177355015918703255497389666735348728749817050308122709325522542102312981540403793374850541137873968730273587533869322958200303486870053543462147297178922487486275943326937181570288236001944105377782161000879820581430069316418784648226613926033193049434781677201335726811850626765317368641369592827958298300358932977820319288585110690521731703637880817377916126339754724783214970079176365643478459844074508511625292304641480980338223710209179246618806620077930426511229111608761131955014860181905011520650351060989189575884503435104078634725439526749420457692158571493723862490675587681726639021564067009396658205530662150631923191750910724733840238155080417697477188548988182867181101933427127917937374185852361907427936440943226607555085212991417095453026880760996426427013234689429522260849460004516574999396233310029887750967645063885033903803106238281557049198743511209736045737121889158714049721011497390843753893257081980408355049702447256364237727374454934606296964807104217490840293238621551284900793968428108557864574744215036326506540009750375519996664088092764694148491452701849393394575874177072103260335706460479067698120166301363505766906999481595539742202881878778612266188136872363179852728158292245308922192533724393733633080806187483496104346758780211045827309193857381803070842150665847694928428400841217590586372261955952778831811454571394616171941170566781123676749279952421491644526421002151398169592699344178649735762337843009364592065829501969340382092682812226145490301374189707549492907533302890626958052649446058564273457243767589796318186340828669883737154310914252980804083344205029000233745412079391523806200892763341645293001359736382287254543766216969952043902555271577799647471462418076209694059371339090889392555242500084004635736571699944300324882037210783651428432488958015801038341410485238575222686551629044479400277389108754129392711589792824129716727525609665677844362142878748544663070853680249177687098447640656737004874026528991693652068494553563037589111762022870240869914309737077689519827940328733725365095539442734733997474708083392558798361292572794264469290872318912295231537202077677552983684581993166659609946329366508120086837648717317914478183638425607437051390278805283494044338465796286163749220649588151631014525541904829557333142695393682603843268293925852642614265734619161190016984523036846055630792972730016168434018648932476985528195198862534399381735550877230354044801656709912353371486554542629810420388220837477429994850612838514451364756596344757409742030333193154691586760546909646023085509914151946199597877714492295249342458974180468374664506676407433755359313029540659319715170061434531540356391590866909944952310632427043957308188885838854264295179615844350482210920774023934856075692089891687527649878999230151768164503795380177175038025574905955490037347102332170739023943569064299652735632047771978495539310590874927336886187440748409226275476580648301558253574465781705982964960373873631786405461637183344887266694690465557974794088925785752162331703602849488529493215086917281616696466347477242967766268212322011861229716332524517076875649713402426845934121075231772778677024375971984126177306509857207886026308889340566588442371605161390840240392717618189495381645789164231724694462774733024916717925132902697050975787095700768496700984440949974633406642762180731702585249177498839928565827182060022450721631044632923469229945310835800129077070922970504485457268754819004571474945101704035010534020367994349677014487496630715870919676235633154679511110673710083472874451495297144652602473481305959708029185523256360467438460490854883602536228708020811314833259879388749832408795252668945756047980242197789197615593204967622006006904183076111716047795378790589311295923552143271960233436389962831705445695785715816106620114398335508329193946725276029801594566072154739575054762118213863240308426396609849024716633163405443894894673843711772564007828419504423327810088998144943000116819653523008930285497837807126027959589519106937649036161929174256497210602259190509597063174503787079715641446681618399729456970696636265874214561264777918174807982121156015394619006118029819128200886279245283327910591525934168665248748570749872653020933026547922178687181537583528941334947956320619132916262579792971602859694244948427456359988553080779207367574261694773301147116727787181865419159286648271312140975553042829711931305643145723608448995175393822766695701609583893952609206320918340181709329612326449528328578800720500823539951247071605813726708697737442016217012842368007598227879226955927574542825080915051997286263658757369597354628445596528246471941052135537054613043469404370962670655969034227324055237947156548692479362896553996168663660618370282947496453208784385171756865560166008625859684929698117162431700074610797571318599597990843916756632222771322696976236949275565686841788366317632296806092797340044702238304971812296853977478913395422236555127742297697762608442495905890778055477384979234237580148529364716472535460629950468694388236412800450781103547061599213735175647782434046501700411028406832199552959799602849826624397881649991595076730782522877492446780415896906285843375769667968692278114365183379959668901608230913085518194335605620121051921648507191507976697211612776535077834180566781089720562913019222377586243203241261976078797549239400098440129703771625477587242261531232935712362437542392047529366251746926311539082983725956321644881550659776791728879609014689131160526661071436319851203798187776071035402811854008597683276991471789439183896564372231103474771459687330686882562654966767441162164796857897160610557668690535454294412205506202642046206460150681349275889974753547532935213534026977241753529542813511713696835365473043758000700912786345475469549131033002758876938375610696760168027181248016011224556158684686014619207376293905062607339597303948621437630188175734837668405968453427326329352450831955687550049591377195033550501302224249881389335575235591082440458376126757264587477781197733684384733378424929352892639835845853890983752152145267595471860394591119241490212811260760853010428611040983121433168747105353892630363202617310470118445848128184626747321017760842168507030993317310702273647065750360307108993887330775834782261468721380431379424321299856441053404840008525902665047815124960964427497798238645380713324278480387034803768929090592263403929501712029672238212817823054495977912178123271758432086092541719406292721551121190956025722875739528029936056191657278263715533707872741834897947550441052024325210028759037696739590704285849856744703365666326891193433086750321099204300357934534851321908526483442211496276697234864733226257339309892962180815685893162689656154665135497429677783727921626539156990469361899863329508564703677623493853615953732980802836746115103780126117054826849220253127926474150829214058244010025727237066154123774798870552019386357924938472597802275852374057090545630238137323746343592450526974962570534771669560269933357036478068677058692391623401391065402717982078550132683273062759096572413618896905143340307781560893494898724544346204273628453847575973709831961856609528531222550013509190059711069679996923778627100567474544080006648921185866420003130012517884009867961217589860093128143010192736426179643294026136103095766194731579895549287067258150056752515901698262842715834642736644521532657696640240702080758854007326674011668708213181578632499512676217055403549990683974580977692161319827183729058793248045508437730498942490271194838356641609575246490626743029412082239080592738102624388229753229520860604117347911192698752618553251349316734134785017799571921332469298060238450394455348116093776750784992268796334890359258984020517949728859251336876321765576485443245164600753823897348840096706204576272678855997133632000726777126009439668280704628769456806682799993673294163874903854245853345483167774451510832058755362243082165469734405202551607693181671242667749772483597982898839534983692659433694269795525516304200773196931709183833846412073472442296250117145760760080933139669677195098574940828481069979632078532622315266487692102919021678818679476469306621358914091376932359579711093986118235026443613924530473590322497488634427429495022614421915187301350428369133989010169284022163059717884563206256765242208258507838470544518801693325239902466867448613556342411511069596484344569791714835887866735638973338808055238767381079182031959548123292109392035218545802158556223115526641890730000739205898619311868215600961821109000831145482161738568655408060267653098885670740361824142014083772261732567799334059755937396518743755764729201875960716407863172381687833831587342172340883961428475148853216019199925419055932116252369461728833034827434386657033936457928097700974316592100747569732458076977415903985856427750964828658502910806520705946129157080039073330239292672247002303217186157007800350495262181031891379447181477319470869237535279376380204033148148806787849419655845396889656983817165495931917766271445256509295477931716917496916994279823120418826560419792997000070901071160586868910976873099252347360313953751520278593355334246179700829991796090186995829413201146511714355428872653713708539007839495031993381603851076359298720555923835913302686458684143433949151910278159947117884896640277077734444700390588039826930677020756998642713123546369130659008854398053344597703747068139099302051583213485543774253167147307701454062274690943318113377061613285720933141375867540681963611196586978858726876790001224199456148451384996922607645343187594888258576257696240564526137315723413114155584868692515687139633705776991798375228289241763681860839443715960960386469130407241587942251115818482404483409734537213693476020118503126982144142895661317352938240203731680682261296028219472005773471128380658897897722413388454498319431298307781219129768096030426932706851396573273755536194883191024692077143370442145072913144277754885997841595761775203268926532681575508750835838094838209039711504565913568508467289649322507139496889800973263254804392272782305293937012130251960861646550123860401206911350070497378515633102645157818639158722401273672589176066277793424174258009214922020446193899726588446304353103878147853463652757694497662652068114643973891389122169615890899005626601068516536610595298730629440903244045797360721412886049492756401362892263982662873093751600633212562531641067558364830995956410803188310340154968185631414236660849510362167821326336537056992524201311130435608955766658506816559214831004504349495954259080086991198811731448619162112934758705976441847110521977508271121898099694294362634466180918616270555169009833699833551906977259332422549710128882912837434574307633776011691035345679099852551526032822969856625294501370791031397959800678054238028484933503556441173813758994482197851359069424541292538685302173617354670603750457793545416020220008258856476822665164152555538700495061541468811642179045430641727854844620375150258036042586512332063381253029465379734069732486042019013882998261555491435890894285319439872721293898448998623783674338102885040900193251168254645418819938077006480602897921064507290536107562258033838473366431707440899868669786591028311257802530777075456203938622538725928971943148773819670439024589719246972830204913419815189116558915148977102325546026122929040810493416822313469290807448563859519103585859829855953423562868120691220223620547490560666971365712641023300432952921017881461109474767409900996721972982947084625699989491511523344613514905027663550656274656929391985513221496853176401580269503588251791265918171380619210823224544201600390991046490063861763107805361653469002316584614285904586683831141298538623981526232558841044973430845334653417834663920517517548523606012473986832882381469064851102865111458808420040260825758132384963037129381087570366766086090508189934471646652097980440261236293302561749617146063985158568435772239844499205967688054352216053628760211695376543514960340042367344938166809828136234749786263471266243148201347794610772378881509206944511536784646595583134352263508591026282199655194445944467184248652926180421074470405013440757801800643835910403426891018879797354153909301953335998028707755357350785483434036154615653052776433837895318980669079775838776039970528303745862132339488242357556568615779207898469846138916674403021949774594637856274075628389937938176732824506768181431922613122667671559980412719002049038198956748695486375640991852494756002888493695615033344163819656827406607235912133920775439936648420840463611962739761733046290859071395573827451312968929799039720508567159556461514499357483843661451732709422323180870005239898077649974384417488826917237331056350259990234454430626620452662343365486140633610494759635678460279835782299896037710832966158148511107357967647983270468647754013324308148899970838922614692203969833399259980241036906397495636248791263079854543301271684911406423104662474209798302199208008833458166365688944945744653636449847446141882880159622278556440451994827292624366205829829004769127878863668202536337392125131019685781807239689561722962013167145663694093170284041490454906689673016615683480111793262982221322534193217755423515603368824798912526978204647085335278386191872345665897165930220272187898366234880859680999474783787429308833209857700014998158706810054712191399527289664404658766844137654649927569165390701262936387333665170838910668497108933308248929535946626369113024600312037745075581801809034375020634044346398441650325707291144995433167863518061964378088215530133156402557711900478515815072138209431013145872075139477099717496692560028925154969652590170972086099170381182016910027122330615429608350392584093113789222029809763271772513973887809940714134182320110874022902147708396065815111283919664898580899966307876471221297052854381625572700148869693747534750474232024547183075123988768840569946939566607645276462422590654129099425589985702141130636929884889775762651331988249910979238330783901016490413091122734682247219185363981097712859879927064419180838039596332400805882667741857825850875965614317745079788942158235796110216218448775503138096993662603867300364857041523464580467336680506886307269105868369647420361812168898798720500648026513736414083834250372121767530023866887811144969993708924049947384954314279732305656503066742549525555102231279779235533637529410580846656448040041861212459282414823608602161119410983091817964613812724521471313801381606270691627752430280667999717692880346784918101858513550699100881245271441443789396731293225566204814398340776003163743903325419412991116924322504360448163480650724714554836413703470763814513009135990809656546597007984215925245576963323054439775913030521365034147693247932693762925073137793256080719725691418714200048383457727874608045612180275518930558663631662966813513154722838337020312205297963980643070105655575998870531474219260073351001840862341600221975414937296633735427677455714809683134564219148815499660834016049929188408526300691661222534399388968274680276955793632497320583273245043970076996941028222872396879849040763442492117884878097022369886896685910657693813021495068606108292004120524286598322496392503513554518082216373677135745247980088087059506000482822904522717218309210230732075968518879235756146199163528944858036850844875613265384688314432505530922370731560748896077058497370641036577051269778626209322062575884429029238589586013492584138575798414565894885362742974520144412925572547968612864889268142440611699110300062821253567937818056827440271474822358551797313772609027756698585284257695031334228376596334637348062650847693847911407838785400709727530171378958873035427196845284373237585342252333747755119562386800345076697299938102705827604676900425932134465195440545542669153280819617371794591569871793161256886715488181083654577727361411370571725793786033989767282324844743635767586762858839071161025259929452600406532259628923447325339750243630533141600265643040678294405387961423405452098576635072757797420270351816329259913354939230854793063973532733603130811606808332434983971838460790931166882603510631462724289373349644935286104983525688101500841179311152508662117591571646209986830101901099473740462351138478189817168744657973466523584718551283604447802157887707180041428609558502550709873855183921817065529665735469428187295341556237832373731730064398741697257431591587254392022186491568164378948914137797529641789448498790603068210562420789458461859181800809176944736824687358225385102258835484544468085424870925925097608462079370688848915606169903557008419663983341442484285464130003041734261544071659997760989822483796301256475706402352586336308023941177923736424111961043538320860230505766193179110701008146887814236961777430768313326697854058185961226935781432661776792736080947489067179315903880250950764802292969495279636998245039119522876532141616812545663435438720259266055348141863540637776194701300483213288707324075209337193483327221745872870713938288328513837057030688065642768008145610862660376070219639154648423272310864504481481117366231374941943506318435182533385386110313287468838028603448071162909469945796637562150697166879548853659534156527617960974532720052209186341512144776105430564371159909262102483705935946156536359673658819008970352820552341356628596718652977942752995769126591087648644956245126980715467526494041731969900763294351410253058306210099322458348316493946890762195879011000246874266574904886130841036671535995866366469092628936553601747792479298681493180566328143684012740078003177161793852159008582194278360616139164991181531096474164421229093273865484824815339812426889479402770451073190547232848794332616280529985529122366911363816546166444446840405052899854755578950578294680816758550284867483912953125790540968406842663226107078115485280175915815759850071232670468024246008371630653965632846205907721389520721044943567097846898450310244473778807766465257229834122719015931909455147305138921259752917834943933215576920084992674276009704590292426933863746263353213507997545518516344234881809710067465140645504826970273857533024386933991977387576225340880926982272362094930033457351909126899950454505672912537708400860766450457716387831037514962806336648010005293641931186523878294295670385447089303048268254879475244043641883422811955580747836701092117973324066428133165772874365960619952306463979472498916382562999434408198568772974579520863118427537662408678359678900084726245331835015106864302654424312191419982991223280330763837071001997398746431077508491500482864147471543830667737117847403259793495161557972132277811970504943440947534314214592106697832434280376374636850716005644210760291426084584878301234592571273164625761765652955524265487442521932551126862471508459544986406532051189223868733204484037000628835715910429573975812255937373710089877833697837223363576933843826887907407961717257606903030112903491720793723469409051185661136640884989084545825824429252688918263501998499754029996180300499968529223503258445693987378938608111766408420631861458356800796882838117224764852058017784115401562417086563799554787679934128923976468243038271979664881481109709050720540002543625787095945048349624307481335721509106642942819399722013739065921594949077744359685086052995620339869910063586338601161456759694781238274643419028897801343546968605142626837417712546685518290190353156928290634277271206374313599451329405232917109666790167795742884476345592158949451330920584323522233677268050334142083579452020637568017457615859758264871691929681898355362197499623699650461538019810193526664147794327326572410637740299463028427551003935792935598103966857101511466374289063246551518067709198249946060795142792716111815124554305770331734971742828775996392015541218125007076330736708196179632513974935520706990570499857854558611077194261152408591959917864495199511648674474405985524117152171176224419654791428550279452287675768222109175616673297242916568924334215048232145233993834159911388664666825654122998190639045981134604922347680148924731145506878414777230626946017403241482168077961520141070802444697567228098303418991877843201928997624333219551288073232391399628979594814319387282874197958992997286943272978956767851830167603586416747103806280714298543267903287708153496963132852955305956842705709748073055205928467548585268200273329494986182260851416135698052232802552395838592883260343930558047753295538396365645299107564526761009457238255572090080661525089468910705531895763288671685083150820158836574563181957284027344155268450250505042964180723713127501911276779018914416786847869400132246405046704410083336945363473574603359261512077646228444570856832146504027597522980159552752064645001562713528824262559228217138520888490539924308022337634922059713403255235505459315699943624446881048369640458169479137179851591501164373382680683709017614706188606237073312109599266137517840912742141952846525625113399768441638125464457208426180389881568837687077167846040723931058169309620695859870729439440701387708631416019451755170131549572776412364539831988394013054376942740673415209938019273854734727600595231022650155057238567762863779499678204739661460932157962489953286167396154387265525250941672605423468724159134171706275164310378371692112967383028182747753600881706043034215329679568707574820177798733122488165743406780678605698790860488024788802451810668533239834095958933484105877397086994633358599477319264464891981971366273584855700461080864323275209066356046100427707921878943670027415677704050482927706355037311273356725419741604066395439027736563287616099722018174239664267091850702603142168270448316223729215004104863101074012655152427287689194788830663506060533375600461215163759370278456386365032253505105805994303334070731697363129460040993197846867440137400432975942089900882047055900161919992535105265557621468027558423015961215269949887095516958419093396112670922204098083786178723632335217417658007218800076717335625983668746455009447640369598326781587320676805426295160726413941726443441570132472489602754758901254503927378993559841466153705449515405740890917736549653682763267723921204620172632502092928470176056032861881595599803216200104284375244011109318529442888066824158144260662541954302287068825013879665002174432422815091747857554876236169420879657016434224891383274511677247252509961263214311663425027389961302308741715798297630480915609771608511946210850009786656045169977253790832240597702043609911712704428220049918090059935930059641896008674835162829481329126376419837701294542740477839896077981523154404184903508802288634794944182549485605960700449617791709926447361235268723336337837572406176659098764186009483467923302537659412918021895109779758340969939777109640641621538357796878466726872478351696318721532056152736632942842404313610518321274138768680990904226927212909807760036778681894027752241570451934362414694365096785304429074007341074189599744144590490281048953565763842352160958528136893830666627115048771671502224892496234048138580091096602785437950397195921394905591391123661690857501957087536882091120965516412185010791248967893474893099532772231130164230896638991525052252733577283200599746816156328667699099352486000058326784220986705532598253103812987815010363457517820982046567934448951531032219610573867257551761768950109517324503738898303237446208803119819469187083840886580875483536650430910538666801107477808419300731259288034408544201166444316704509370652449216995843555652931323647272920112700214392697438063991416338797088809746830875763849715905924262769703121871165314750187623635412661062940625116203873094367433847861402298976477014574953390769392288744670346836125212778936908256367344460194851790954773449282232987885796106887526405405255492790659856578551925147868459521547085059074698882091896447601918045235047037376063098335083884219815206500762307960914418108515949146312302177330380249555258225221445787367197525287903983996079591042844143305915775559541035840679444138305304956380314028310311412326377790494983152909509155014827610542878783844024177244946923985523142728640370803251824264420779262073528661160648061849039921587520297377518702567457880695116140419000519331991649862284012050763677899450348788591693350671239258798452172967996899266314067463450486851470303905352648816528139867113592287841700961721188734609803208844120023657317090551627094670350407781041039689797756586085080687375093859827780203276849600733122867761254209224063767306353857485967388786486905130153354172810840459413734813784988342942931103900039392090939294667114309281457860452392891446882878727545213714698472848141787614691885022771534722601663255353753489999236813218629013391848548143363981554482790942377603406667495072137936037399641873582268436563751018843425749882637523788341217783757117579563996292822534848120300801000980926970534000774989783582155193818831213962007012710994151113568075169038915995131814981055025098418830454577075611899346369441818269043652032930091411834270148081129833012397359055725387087590695231821400415419945169528649719727744918878760150904956296408195803500721662410688848455174730992347561304580721350310709852774969407218747945338924508377825094619168329652566201074655815784185336688461785202734027438808159698076200158423849161158881674012692558565904017837433776940137901016272723023433814871827829763360659593740080326964174392877011434783589485952068602601960213083240358473911404436584044137878105484406633068725746738527619965991025945739621200618926475159960628344899295179493583706110137845755332261185799406468836819218079083354535207872449586634158457182707975066990092230368244805108056375862315486126497145391150152188981968957918656179143616765089655739397091255293133570628491666579483070005168404954870990711436577066429657078343642106519317343889256985534900104045336749413547368877523777731925215479395123023807678394824011858612372368490613443339517906136385937288095194239722591096524060809816553370399754239070203259256763980380526560111052790658716466024419761797127781482855790283666363049737382970659835303210409308856173569995958159877457661558108570303801093434948698559750319480471290903809818600842322561822148270062193974158182491275154506251901359135422881139499326375127900982121358658298098057235328888719990115475992791894266385702891000678259257294463183307140872940843578669708742166712761508015245244849696808213591711517072210804875823304517241796625554608127746442284665043838378920518627912826676105815155819231706605615645794923183236335485749895441469194707072798286369732763707019098255963118910627612744771070545454172241188305263285146983098480655651264598170116573078050936466651669886069505556019263829826148199554623072083210228636293873504218526067630185524505375084621071838840330495899232706492062665125705602324189601337335836351064742801450097884830603655824286167662055102387422695572568520122645602058116237996377789247637378928038416241610400365145224483411350890635578229839257959807651900591104448284247642848577262430912206643334060507078535316824559297256328276467928626650264164613004885115671543229272307118138186217645526293964120223082946597696927650902041813847246471699087001010781946723969404800947362984215626430614930117105501070281892275391763888978654486874288204660089076485066031737336770604070223776799297346917784683984860032035374742411329421972694779454383958695202466031659176395336960531042894034177027142457630484012452211079841776889766390734265690232682230562252491676903604252283456379572494599330617752149328878470230865316917806842546007445704592509855594284688812610271068784566634998819363434795917059645249614578469246113306594017359042387536805979162038593906441641267861218858536305375029206883727240588725224286448019450867158451667327339258867387417660137329749385870430885133813265674648524467737148492425629624840827665814460052494679920612275085055450675163745775122729374233315788622398779969529605898823315471235559135727789065059940704512473720622113007577657539133764106833361077504368605231199795643172743814486473271101855460083634703155126709219561696630231220505326406836984746244197145462649533535144951171614185267218462703827113440185681903868375477557052442907784630600982990837670189603180891072358463837872973085317372561856487058179493287822275377069547972869052710193628949481164338062783750629891035811986230962318382350824057227753157753147190014791524765507425173509346930942132314295886754690724040598377630670781087144042329333813576639380619246802943736543221070625539164605442897872439563966498045568851655699570915112005620455579254841208345275893486194150617752127615256236733565332309200265959407861022721675501342099178358150729481091372219752600437066210638702017869315605704680885298546707059033727576435651936141258676377426889560634453209637147488949181458614058324442294772668228205614082365840618496287109185788440177033420549396043878819299990338989688700899283309392295835146303103858629364650574766153549432440008490081557528282367186953931894869267880636403127904410020663351766013745138144610829723119566918752075584050904861905124209146933398349480500672606444267271592680320044830656905291449624098296745062878089172396254525508603273541210722751721218104749946697819557067990350565741741062844150697449324647135963662360117286720525511626474917311577543768478503256710102502104204083565598469459498860028982091769264309230021610676228298867223492720882192242920911854937005251432909606477369724720141659084887773505125334853580504405526762910330661189996457198294223327913138809450425472521016104671701484142903823846764382880406850579285714733689467580748433937932068466598466617099294551865066179492641501301593237950522412211367898037496305551803590325707006829461358765345682020377587810774035021014192207983761422844399752656819155302513304148085417898508923588277894128033162437947391731816234089196444624262592296486448503744196558118582443385146121845074512627999936245927523883658205965881770754683877036132104129233818498280888405743782023817792399589808918028402825800132677937949145639691315544147299738093739334612406139179488520122687170034071045222491317826895654879661387783596340699973767033328812049617885735545781474783723087556632484431428608275272985697903060650685943628797852030653804015389026849565765408772173300533823060072476388657112643594677396683237299181723411618798440961232603574506373007705484974177977810291718584990666115069521971284891220275347338925866466507414420231194332585984163602457297734199199371913578091609046489492225365213569949025417523195476723133961531865188290895930679636540848531991928827735280646921034253334908641230841583118296526035053746744195559388143935828635095183463450952691812113539720232150933997795899828571928723545734987684413706192270570341229904570862806726840996849421289633315588760964638911727380063979460586155476900168385109484759104121795512702356644057510171824704622952063770325582521546353228504406753726423307198224298576539512719782225731304282948949303332993186502919273324266066642352187729796661644597603867275900513228968533230506247447355603405074821506843684706599217730291726501032147914175391753718813792035765645032657757130074196969655383563115717241047805954475765803046492481119401460272387712873801699155801630711755777546589712640641162754700731796542214605454334876495796857978981835670513362778178559655274276002646115778106679566743415695090109489533891684575956220018009145950708786504889241122451665475212865378392035921386984604835636070006453794292204411637162824301304688035514366464247216967646288980839708617585706002727431867910659712310784165694621350782099867674243344266865284418636622850974945037499637081757463793114209430129293885128836338821149770471722868479617185291210700752183359143509135975277331843096860557966336323873072375300723715981804595301442346114829617001017734005196127862699705142714509352726797035539617730798302283147771011918415597879138161039674240460037536690528721358675925006606569536469846679220739575518985187232530610450368993591297787249860424627567796143833534549029762501563436069859247039493567415043255198509585297326271010853896844417391004698904255364393344197393837217547224192807128297780685265738745691706053399961230342723587955340508669753378787524271689098054605776775773301178611181308137751436418395050986515639211949904313729260291631730657306256290809819582596493428138265587267201679791921892741096007468644937126290634108480170864213043396870202185283929927924592588015301039389907313709871872018305928532885729194382848180629867247136155432930337007574388480699207931362402480450836103063188644954571897263178876682353012138972394439719376198147793313185689243434744212644716680793720678110328293224165465510657842310878910395752816626620831567888422359223545468242863572275349148896088138750600440023224663766215877973650113274532825671706095843087332533069544362751977989956405816400789858340467086619465999090809601747545559752575603031445580494611164310143805740064222735572702423341255998918562069819024288143408319187805286188624514086262793711785839792086444916351008791742777637782816637269461483707067291228644532205188651726996524528521612385701742102171252539107479608713532933994029341963843470421372665044698531049981322515954039125431334414749059511426595528357582131513882605492606030697137704688628379925337963626573952615414055004984306282081934341575978418449998744658671716167588153869755870870102030415442086460955349308016874770446374392309094750135974523535270756438408698207901744972119590730214592186398741368175865033059380654667287283850987555486208306702839337344917920361712267316754663493632368396457415351374449728027764157680022921444323939718463920721103362895497250330523217277720772352607161246832320896597263722762599811640663340076947100148546944675075038824816182842096392263834301741277842483166727100147419178743077197610861241334783722052608063233972488938968329725781974760569211808920429835370114717212967420980802513037054591544676265449600600264940170432806217669333565052025156296921096378334212224685374440963573113081645408914128551669197941597286397968049516181164763606805731158885697160552572234300710028470665617852819664965641594062587424472002590113651223847387415486447056440098457756460071548211485211058076642629737644987577318198427072879514129700929884744793189942597970437459595366857420617316531417140130717960606914350518547564622538777981029432330498614708805822407664115829433332263604569857244559671371713814741665375590049545053929837262745360256353108360342729043216341647643543426706727240257378955208337120121536474201788911806669652842177222317643980384264152977845733059392396589082506732128207884083566571768795187312838042574310312131140473234398945533589476586718395244670179792490546032302536791780553389732115601093288261242390986103244577757153407666876945205481089311089735251876958584410240627543515733475951474912862905650488522970258109662726220758419782617230497646094245863527550769866306040404233954169541160294880059102279643827676899604962739735085462927108509410604382896520848969725748809825544551400330382474257385464698092245424164632266522341346225369053030527814526300742439494407068567273072025457109707720047240297016456575877449794921295458646135322286558551458163276159499366222971667486113298513936697231322448025721873470212854226944739210598492983581369212628149199588465500866660913644101183166786667431982778909218857420170682635177088593358750390212917878695568853418999390575926937448231085752652048325733894981849298509927326849506398450787084822212972768354352570611555349274020007246036543987923089889364135066210903679512818410841155197001939345010840644497813458994583029018036933297707315698590373692795045387256441082515258367159951422422524655474926100427778930463867406215240454656914867752258556518191983113455775479983757802923782274941453370243077014355363970617612685455459377085721291898641441550732336019597541240013377504775457263713485646097559757930024016828015214141331619288305110516201518659988175830876211605449837380742939606238061176414144345887600386880838681211383407252782273015401558803396646592146348945732097041495182500696153299299805671926276337666026203256796533041324080519369387067691121170247770096400664077340443451681467724535655227017592245727699460960404364845939552421466954249215521545914142083639132550550074734074765359184543222920149552633091812701768747200682041055712445055648942098128926871393012680253937568652780003173828737640072696943784771857329217809529481272161597785675301654548511635226818670465557685676136632916860014158513579062782383471344678707455960406361447548771076250975396791656665612525665767377199653711916422293989405473678448550028000234573220847648082667181154420745829357106784273418787647221132120767864602849186631731273230223306426355391334071919834030418597947823845934279246155364029738681523932536958205814805702195963819487811416508585573558639813326741650674412996615044213070134429038796837910911067263942023483728186273259904395163551342240804902344820617416343735610202695088182205424971717632518518820943474454020912552019550732872521101271457978368694235760409953776408037340455730190748414186398331609017100480342848155498732221883090177770598063699396188540015204850982772244889797893586787364501024733811392165588678791453185944565506607132654582985166387113258386157874404675036758376706694959023380295961216947017369724558373560768581028342882123462671803871990096570091094099773335700325922944034561463911004728159337631507881472203903461313499947766995152971784915197988512501707068782496203826600754016486296159917856397312277562926758038341260935678575332060871667797706642169216253703183712055543399876085610600758635965890857562401296567137308812428877873850234126791999934852241908771728163640068182296222769477383420832024800485350221223570863193738700086171648549733518897895577327441866727218380909822738538706559567463669970112136563501349667313264853069545865124859923972753803644573193339679040339525307623219573014972399917942181092219625355606852891745564213292051229361168072629240879623804644723608504321571217903215726457893427056080468768336753759152734282549511187915385110895167646860870798245069529401836615270252386920530110843042276665461915424041766705001709857148555050394703073111432927394565514240167321603547244148067986850968907299583146280744141649565830614763319066219934862574920866645995049461272538581905623583365893398079932912015573369073450287004994774482202891034207158333945086311850160129691474018596161571166901178432831245664973296506436984988678705470145096951799067805401921752696793926923208866275068265152889335955557941059485642667235481184717018867595701762094618884294509309705958320270791394850711167514455188032520191464091961077952769838569263672003885791370648553819799896133187599432106994224442764274435556053701597337316233022507192473637401929379619517622319536243234072703591291091463791661488178714068350451892987910339359583726711579276886071748186524948284764159428789644227819207404605906677871818344406680552973426076255795705679016747172980348262392688567433623349241274086124179749111827061984141612645049099535840960071982128246080867419691995637791679411391242179159981178254172255411562953131395499047265324027137905729552362135551353421912117804185504182219405445975531531598874719244123133838588129159767795147922731273492661799793642299433526281464938901981615821814784775721988104448750973158040622179933534613507229659181455355873712612159197211605901472856157526784969205997688434383611285941682086946734571712606880985206054158242658762622278299398601678777479278077839044688459731026487963749028967204597691594738137505089276333528390554360157379265443058729549768226686083983485610107064465291469272004962574308215394959184626131494374497858266511562784129127251583044846878986467600948594912193378551268974147687501427916438748983477909967398264921509369372523756553330190966074113770669971655484167042076867216408042950813565373852317254060676955660360029303813174366625528845018141650226712472054331065947683976581813734684751016831322661459743942474142387231926996529007329451051087106284811713009473778680078098007343765673565112751134084454029432595237671773402601205695002873364054720470815518764239510250233473287718827866065747504802264714617385879605626430337631650489871771390429003339060027947442168696067655549176974034986442962350797667434800945828392121746831851195836276731460030904812087890876127796172865338713940178616876390483812286349566435491718183693544965185070972606107231010756424726181399340357661326564668589736880119218320934329005950541096883179145822577200411986096986611602060960303201007121974763135241223229390043996835492998941220009241167561062680432778462730128262199011018355891740756875888198133253908015670781226481451860919108858801349680250922127697626099262128619173115746075629429741790115589815075834861809466857408955766494271702176111122795358924230671227782497101962272570883960596272024820365415478994967641002665739475872393214376605716091027895157476815190541017535283452612749040360827319834692249693339312459648940613131738647111303145324407530071220512267895104565833316151483702699238820143282957708066344591745808904585692723388837277032880621196283643154991696189136973716555409467613754880710224763944422056057409659629777631479353411030365264671050710698361222148692691974510634006857388314423819052555831906280386924941775463318907699959613615762825852562682885822995038566685758803313374228679532378659345257939629911818507609709914584932323901431476203787918008906302323963491321955426089534374289272252843664026309205972917860481376717284586114147632007558165122886856557302252682513282496394481130475253512174643538898569988906757374238776088357840146367154654532221901119475966756607638319344690126005817278428928872217680188821749804892083729825204740345441081630885989369617867406441875546353588505545279122412883347536656506423131822314368520119069433918265666972804135447524295761727262854646655211209857503435528865135167192145232727382060245958231270905590116953379688656436361944960557894712295318131644448569597487308802686895122265732896941107129293935800711019379938975046685119598388323085796396449771583673767379812883183318891574667563849039291826632650464525993934985428384411228989439405207268898338175623505957379268068426666029312947023921033809873901141693995625561872233887350975141368779396467609093077785698709538380105053166961757215276962623869584319976888601932151632326135235293725146380100325546540413499792921875454933293442945413426086765069096338106788708311102953372721845601143544902634543367207104902969710567105734569919818005507016145248843953949875791044093069111988424338327295974899716662167696771782710660008977508231005248244337616328528555752369476671789663375616120992953099409582014976293414232631130322391305237667371396528743674596408181678241630017206852599329733199323780177005471151190339532752674519035414269901674101626097734528221562585425051084644359830080191993266697017886050508081468556801390496998265981905644825645136864813776592453034145250780874667193950062001540499786245322930251015300325828079815828199522853224167173440939823807494683345233416712317692377635000512240307011091121531857845580081216833810761648231260006797241533068300836921969525346928024882182892288874274821123579132988673126797158705476446079605680284125845885012637964943860636282954447840585392000267001334212081908474902089695284034161204684489237741875700462887934136274131916167649859559268123272481479703124319738729954418713500382438093987358632816779279485982113303974187680175905707100104012950288790832984206310569564002802071656086319971589503379039631487903666288689660575078358503477935472200722159414242854974947607869118543955456883152337406480409690645133531168926431385941427375887781656659274716747176224509811807913397181369858718312490594997019855893107249023401002473184646658326051090735568192761545883279238764777074344447942785246502024203888239491799706752092950606524391730076207813187666147994898397585149917532129931639949483643573743928760053014290546022406136774276847069182725604894467337170750462133145464207990885121075691752292033933692025493337470842433691629139543378578096403685149472178234927136977872876588173462653410499822331606469029708553411152434276257129551015780408637304561318186743049087693994097001370179916513011323279896627709854811287677829152402429865902196617180445744601478579669780508827833438170693337347987068991629501131315740230255942827922414832690472514712704714373104567391716862229410435732116423459381701066395088842442114582701078423574845741068356180056470884340319005691673714537040948457962183958772091080999852400833294744222080301241911568578703627321242379109063949621047865550681241531771025825240419406937401443356889192611274722508781744522891982440167452464180889018418224433460744432853904183057902654727001811126735454436706482165232492179212891589273396367814671378946627102149387126524096575964798159857089447604803235772513048976571371495235004259133972155001811760773373103472724109993860253826136851953199958918659490672846736678801995087025926807417051517217704767908418119663211464679934553072359763770765432352463420429765345030155759835756741458490751682840652943773019333110261991785694315640192790273271184919913436226948907429954480102831692064794921497080501992200001842897421184492855178969951859556557280449285807120005905191627771272009898956787985132439156568014692979994735950401333395933930685425477635749646939156564251667568865238922626186841243758555743915368332343133878384899167369073766082889703092433409300076750845087596401840911480349559682143337968412301138435245538075913266989865019855004666546228891812314863612050089008779847482209440367054520947267095004087009428234155947497430328401038668437983547842602259474859052267499246674371195843487067144629252060933163685513987175004833087970717201754130542924745897425922909407429707055446296650502076884186547072989635336674933228603822455697965548552643457518873452102103748027612468139859444933069637478409548254283715976254657568245062945525441082049885019734310733773417905766804875232840702606422480371268154954641057688122816443608378995098105673277613032375475001430036409708015944127331243246759212056589139735306008624892577176159023687171946908121600693121177290522089762055326273663457646801323553856567110772611830582363951335986055505160956403703430926020153817977523589347606752495205567202236434432775192654026809810768627284681587721878865100339657473051836783002840781989905395310670310334351853475052959376215385060597048656270447698595604579712012135606298002609836324712784604906983110392521600439832119470502924661734110193724402756566129305388835338781179132986312887605357948825241524738248740767175602207706049727081540619374720478977825682513159029636057937230536640666688746876518485072387959472462861841615464997656453460949519572983650943428753396722485830826794551943690837821893409237156187228142790541578020893924842063709234049679078474292083124771397553564170381276772209512023411352799275242101436065149070501735434009728385344640311106113568581411689621663451597812587468432028812895951737652732094592204697573329566981724875764044683988279945114863513332154178490482247372779889638066603657733400252359663311112957322681658201870312699263750628162368031821782113202090394115568776124229031266665840997329124352601911272552146060867168501793325387254365903014746479446812867481351906715985931018144051687646241444882780070790179947999387803366863281446456373225148725843453482056518874267351117042473908493673249561527907014831506816832207846429787697577461177549750626354370962810619242542974512219764142690468443751221003121386388162327878318151062843400423888945464874697110070372457680043137388636612879077888760643118321054510970916356618773500460251135048312093478571447527548965803855740849512620821102021280764200479013626436366852040472891895041946246851288027192687672003328031695072123009761404222693547562964527344362474041233702544981487411789150634703008595470860137359960209236190859392988035316788124047441890062202673725643252947627095059243505403844498914016742987019931234850346277745172880369772163713997544694779644257751072213462062420195341679727793868984910067767834569297272208322699479302366070211697712016577405236071127246559985855900696026502193009310041860758338408243568533019890435801944794164840735847382806889011955832875809972720977686336672112573275385747033789026298097092561075491923369868449530366616629135233801368518226469102545873024068832612882987179243851031503366962931253487875416559271438824052674937120266152162989261436210341481856504735854003826585801492979715505524753469261542857719045620713139693804010309351074617654105203484881153470024534287515808993802650839625853055610565635989892923335434560006868111200504905707502118318172911476403961053245825979445427771209228288463911281512079303480542277902921100112190341995647142636363480440900376027598418547812194083742160446822174572141646160378632820000787565759366228720663464377821932337281555570446691266583670581653973308034885959128719845799101816957590215108977063920705410927492584729723182851559751884711858354885344025106713875769574902117737259150536403303686228274528120269343939412759111433121331410450824869989414578511957294693553148230189348837902093444927450097822506746101696055776977296301435082417064864461510295176851755451556966068203502914232960996179383274233358116422521019729972382992109277928911804928100983195817559075945015690661216983333485191546894376154530723693142760677831328968345191139054712116739544420071674408632407222386296995354121488359606401910321501165896418723512181120745676363956470440337542095777122346378291848069091247580537312759895939129170795087221743697667331473673622983720072440715121159776640119412094234797016178146114691128986876951387233410098023133145399746500533452814338812845535158404809530984927375369558293739305725428337754632025317665880379476747386198717398620705493487198416655754553638420611142018813604240052100077580444645161280214872110043184259599028572599636067345092699611262070837824857259932091785299734761439800464987846213753093264474370660268052858851993547421027533252071651756528192941684282034662076970484480103130304215544581375420046868016690577791307391467399138709389674901501947038231350190441434546247844620771480912704660789342723091543810834837917205734519943940302442679885364544826401188649655385256300305094537895327266409870944984528206320633493116040735081035013426844413999597940784609729751863265061438738999512025239302383479963257135993024480698173859535384889494634100170009916412570141828893047729888969162984050554621742516746899141684470637256982804377704400911854346752985512378918495068590516005897099893225002903228289860995954418904962759669223737825851586693082864016717752974361338696377908819126017279105046730939463310280312142704910337137900823352609484543634518333650278786746879157537581364850141673960071111779405138512122578814588983263040843592317985627301185956055086753553427858045444084595608856534809281451019404367755829713725985425134464717140594639316543470993555134564899507341849111092830599805905629848590047970827224296388655891014506421825361798477437703609684837693326740726169503165137446684307784721733552693061975528573156468878923816326841768045214303942742756860388477929210583470084529472830329261834734984696185019615874341570322267293599576214244323607271071323323895979741768492135209013703229857829068104230897312183209724424964220494574715500166303322565601901917937946124496139140349416885482717884812994592537628396935150477421983614189817077910254869099869406165003534006606701793733639796072446795500706521204135497820761565100610522278530682924371001840927786023213894347820976745788085957581644459279985190734198267982981791752492067930166728424186869119889831927316801522625646592824815643450961951562404376686983174893575289617570328672896422357386361612843394088378484698291731125975977264746010764642704662172112675282873218008579948019960070462070480884673571816370709136184712452518075515477593869240369649779775185338620848189055115812345806259732048637201598949505406151589417545096421371439376383906419705657752212622667418124119106497593005632161477793752908805634406761819192266232973563112202124002453301223343758761413126297461365588561109578105060554932784304566213519676812643152380816013762352844351366366787764844660756103549867540449169995131306925678424858968882974552312403805403489804464791051178094517944268905347003016101784824515531866885861039371937176543093876792773933761388591372637929884602131366889282644301899546074702203397405733071430415949191670017169777743313248588928604343977639663886562589956347605754184585137892351678103631165824766271990414585254017259468657255523569715114175052569241688082269568425798898440507696727764132227267719177242488525300249620441372078674714185151488641176855775867715573042887287454691091494630510105942758920110416625654249351108295567551403471249657774896063056228696739065132002285801370178338376502295781330825989388489774535738454462035653366993610601329291298917772104037004236246942152624968332713415020890314049988074530284330345540382363652241435065755815654777803406497119333642131889024177918258027937250671279550896321181983481320318623215090423083293540841204975440496017503503216379191667503940685557875022246065063924098477646963628321544213356205733388484118113472491017161023248486067497643221041402538600312400926681918220743748382776799937666270130584472345571473028905492075050754988128924246950223930769348209544606865709538745004592677579669783203729214408764454409558632700313561197567892814251299274407593133164758250737167775149465245754149428065933565046026961948576737592731920199394012361993597977268829829220406356786869100006083302809773458698273710363194747510779570550629621326352937601092763415486263168984127683129526475848926416476111258556858276980551429033468040865317648945745300631281228445665453141696713826993874771330874274101599471115685860304865555453962178876144835188303973947807926722446257202345174255214029343493970821751642867360367101970289588814166030279458368478630711020141795582478337906660870419939492682042245486956822639806999723397926364848064849419226556148933723651923200411985727129586736852732955059112714689175354815940954428630327200323208372011030794460561810530069234339219417159566381741238668867924385224565487998046698213929270333918954796718046628531817727188152709886421881050684363098096635106676455754621451353841461932375124823074674406346617997659833399358359473395167981624859151258053747482764999680696440257321976494647017780880751023775870450699550351141628729598193388060518301531882188115980014267913356714215843757215877872557500845471466676816663076005353810036107675997674320400912912124062818883769732585482007273946512130607756355000432484237679420665771984853352475765687388577453382828983470182049378796593096889148389657363988207942206034125406074577958940480593898259001540453729848211422106295352942994252567632722071929455783853406646564055437232838407693350608631453594842402405773664617348152729424904724351233551580353467807590196146455778683855892401345406427714466026279434960255503373359165588801896152740041129038908576595867950219843243361170339742777149111670212232777141761509119727675054996066336754407426368684179619459676934880074045009469041645982684155785353836403237612078986629217018152364702852048229724717340277805819034382486024954627219189857136516028332132146095656304459313941007561754445340986966613497104517731475341859287309102426051581726121486543352793802849991756556032126841855487743226188286101811697811934263059726788051067158069397122770207060789236323973606952325890579343630634872078564176501466956902303334035563647061791265211930037360453655150745068768734606471033982157201575662420556112001411428104574380715729462706291994798837091058831964545234261193514363956246367379487181882205085356345840980645975439072385654655514471036681940967466907656872046109393901281545344298474795391189981182824954122045867167250879798098175793686064828358140432074892486009320826376181469630558931256239830750134620655579415624629568202134926596289212622154573635092736361466703046107131690058471747636519303914874196291998506829935898832917260828678577836987322939703514661797498352756828549820513515307988945090524027922213413082241892008450487468625514507411076400192201583487771835478471251320453251465609102497142796274959279774218386085982160538513364151087044466859025246542380909730085660093466886666351381729101660764323895105184485616152429930599139396039450531333017398541116063708164218418166076760836969764680279093565267739693962306975780378863917929521858801159547353485651903669304798243563855602114338274037643791957303699369205149357539279734692610421918373060272501884611094417918437260637282754660205629218319197916533343900619424425005412409425277077552414188821694301713846056961104376125510847155118578047889539125362385657957085265159585888996223142683499325746223624714771652051209101506666276591111417317951289986729793738242000374945933686084676926788751060461042580786503576930582782145753033854625341055742861868529465342023756677224341425019148488048914703028881583294813084496585223892870242080690709230907726862216117477940932139944597113318142733810189627645006659448439349021584612508157326056265461026066523592020778794215480026068375040572669368149002186699913131871431053321802005075665351033367085964937572022036457194086314718060930926413135970351733941386677133254074781975907985245167487716573915088116537036780661242623014182029265877664420257991090641275432724787086153107117361657825164622801185289666625666258118268323083310163764512525174840990192234421962148712293370686942561151202327746113397461665681906217489957140888819570346627146363148960028725967275628155194964526818863541387677338674372202993775995877349612258744530978854389419520318636224356448590811488749758994395795551769412297007197642436025938318346797142237717737754655143336267633500820582477854623131664013020880864563522821179237424076772239285090315928989564621532533713161812136731734736457223538059175709699308482723519113787614579016880847712038315458606435795849452456388770950619352333939269036594007058345753579512814097101642381749307858674397553197125944358756706193152774314200334024887448551110032436131752945388272919400012636113261483559443536752112310340716737667793838563255526965302725402321634447014863672122300290875083152736326307675175530654905016759982302530032498032340685110377532438774533897441557182129720106810895398700132144446096506055164067115145458900710823450826094279921983420430345299803410077511916848211830301139252374531530122702881525551894289672814193319935323834251365169103988113412874787950396822600118092465610922168095478300585435502491905611020184289803613152520427878662359809552138035684035066648787240327999484642396963614311510832247434736374576630268297387352914526956136365844432939701132679690167790662882836203249928301892166856729965120674684764479501642381316944868690581821870589149058413830372488657885466677568589335366244397064636633607940514823180092919595402680462623003106275700785482513679036585281349369909478533577046903140853043858064101590699950854526152648342966079913175387621918816646895311888587892730609505520689536248012516622943628687397823627733759525171895010900806698383388812623150285233298726151884368477914957075286669731779568028390204593337011551633726046542411831445046418373513427682615897753599160120922674791114453948847494664582089750774396278196682876281614432483203529509987154170939203951370554634329553912770117982744954979231744122348358762316416201603635630894221953782416881458700117260699975833740255437281977153060355085000649382994321110960515508251165236869519067465539181944623216459830615404647947043803042571165650489312319119512221421727730799551636049947487805368579882589933485531902908642297050534429540286321986889000967224222378796105372901374230025268392181678199806586578555926264674982762541663785999678760163537753974265762453869487037906325691771087629820063699417122171970995369856674687235549662199405787409701371561129868543813678832927704314136585795949870272940395179163973735294574793285105659849332483294479515273895854826332142460516054652682061211579083374734645993959396489640478065437687427196482502113096811549128965544784541371395491004171051948445961300263962681390308854869188555756327645279601574637936589472378246736532640198757576172919546757498046661607576037769767794807389011256952680046975602156477309445400351802527666776062385354604635357717744285259488260009263942867782433887994342190668655758286194361510387027284147162905757345169654920542035078016035721510829002154056226777942690093308742096626999121849968855838297419307175579921587066194791310089586291956025462266740180341409977727822051992537165966868123423662863128003451195901273147146156278243748985548463578274253141082194132420306748584328100544907799722766030534216145284286799181085129140068528824853396354199265591538196826374844200883797040342000877387221730257012838789183036894420433577871687231992535406057815777069994868283856882513185028710475483867145375117474010850861547914098930165412783573688083896402794234104210501194569441537571725931182817272111361544853662412087643321854339980238120233550115127271979162202829002694906025993677172508842305490373704241640652684142681730473603422898006792074732094053145800416809198067188611759473277923414341284563741262952986797160007039233337944901980234754259848765147781970568612471934454827303176229450898919709325656466667255544785488305795203217001075382531883811208651326933682311168739423663107536632280524696349635357236771040410798546477521047718510268495438554367572420163132277989566308429274545399588507931598951089227220596888083189360890748266030701678857120737427682415849337082806912295551291989582220540106462047859332182675478851771300911977192925656097215566993158268362828429505022127072814854991079655365234778480052549349222053362830249953353737219499529143608840665276810853480437932781811457344672956727118266742063875256108426374531508436229420729092386516839320595397242799069650330731957925998343742718642423297021173054140256214642499924775905055611716227140043492541597847225158206614354017590640401243967070832864950791091121040084631375919924254600837913603147209510347671324161368408516534681710744406016491996460459346143843698907919232251571658672865133193623478251475340672298393300766739768421691179273275149524655055714787521239526529679838441873281659082746800252591655287485747812343191490954328727436514627171526586060752831586623220317905299668109503201850758533724388998683407608363151905975763549092463007989431527930027501017524305808274353617467744274929745593530739777914643997419481566880788293154354620505897242123456050745623702296280917488025898451005433308411760513616979839906197153178087127235082520383950786609086229810301022704464889701815065158941675328346328576182230181714003056373912493529327434284245180640811352998078941367060529005553863967155006131960346958084351327993511570151796886729697946237069991721266646065446015942734196966542839022801584726919190603154819862117999513811435338328217089894351087746981261503477186269932677061738163106751341592724727465274847722301405502715058640474522724818195425531585375587153295349399514349618113895677200452687726164883252006248639350954265665561773721592596184266752653057194103029923115351902824689376158063925528000685522939970996229912295484394413694313582235049982673643690706515673460846559100289309449536523380026638945776121417234689973986634561841614543086400366869364179127565647982028894746815800235933010999005147424135468482386394114128978847214474051402295532692410106723440484923103462450946929137220441787977177772650822755852632876797717895721221450145337205311787632742833204178690893150998798042652300043081189847768984644175450493654684038611273010313911686656865434228407391031665876835283263691566566643801894816682834493091694469535317541727281300709332556569887736848327718418169357850867234180239375742679188668571647456354416126587336031483927614135653271124969139239727871738452652427589302540216363377496857962681627885574235915437276655114634517349151518280074005715405640020435930186503896802999628660524236004553845118215016711836156578563713528502160944848112491021785540143195495123638577637919989290854815607654933633481708993492138090737969115785748859501349655892601017079691726900572372980900437465756934170661364145348592717437802891070437163212424659440915433354689812970414450290257420588941996775476115017465209764959530492427081093963557053994599058507182060724346392514163870049304019689982108326468664714498296642300375514899653241785930801778385394883284425651059492294333304881914565825359644905915427717709803051473892702553051755653307582452237654804717466861528095550391423951965180766388286768076115657719721477502695311167057303386632975250858990500720655217944516614605563281222465399180110713641752198366828171944314711220838627134368511171548865100952405674472248169987771728236087024043873053349638885057180314024894557739472508651808551767312051804089965998209854899798561614416455252056052971875711423581652527551072798052899279602223740589347155347227168214916503090003952793417632358477322476508058233169884065139447454177384247707539610990308627135609071302154696934479184030674819934140301647274937787744297763883507605822477329645874572323694217733131897902563271165004591210331087663172333086030055152947122067142897379138317039505599459943388814346554526595924058791984793366143026337528889599555300303964870749597433623214051079677261339911357490996995558634956157513593696729738472567967786994325690502428363532562224473080458238633354028136341984978940618303381835845838131213696475969899845376600507969298905140098389684923038871018599159783229795967400306915617639778324606267365053016443301232188921506972336251546814813650321793656707275831231811414756505873277820458423638536070431033458650975959393137576754129877150286693611220305540502764422114789080680536920078927894395841214254055850855587281302776527562726202762372762235439409834412918496577245981164913369839705783154929737751861045643434906007455979748823661266386498115943634053263544961060847880189891225003825528966526853079871543859128046685788689102144826573408825035097026798429914841169315139296479977217453941765706177080250188089145499949619087172657985672847648843515800974944472667701020696689458730456832121619987263029867979712376700750456712760144172036291422550465924140056961383385726557463165509011753146187358097419590341446217833123764622529174126707237391863690466479777620336910420539779557437873601027622698636654940203718012686712997468900715824460873039623970347350875695355410351021723394204635403677602235286943763416663226828534528316920503835955847335671121230086625995813707378803597664315927514038136730394029340401649274129719170698899317818112444212066789342530549178777054570445163897955357352497067831279776665131911306767871082432284153754413759553841587826459310205973386829899766692700543047445989096437793474062623167717597401334835427192183565326326685250648362643523625027461947530852596516070770558476135050832450692723980548509717906937381797591842165851533587253619655485831705630273147703871968184233805289921314203882980319049154304681761422696378789220608540572546447203901029376881113916392852179051507581644413907499853668329717890250721518561775835292038027085291393844229929711899350214486892082493275690750748233697987891205458798950635518525649208591327413041199522331337819337692501971969166128524764706214415762570848079324917802571154982173544039019437656450202389723999481984545533230656859255474127864228229301135960884094322795174772948144205573270475368169429472110750789536958182815125295688961291142848638506925495884625257259786966143307396509299508907164621763754346400274944334225102078786899930013523976580385478802344887558017106348968952055213760958950785429571038650762492867516055933515357829173300825516351444292873629190428220740487893431685245244385836203769770748748989106543084223477174669933525007771470318647923796071240245943522331947887213555469027622111384669972779362759648009133801407292370821823314148587069317537720171579915332355375270887464784500134842838533231687138895789900988851302259078842591060059972876393537242124755775282776697869432593343836556027976215101575818171045396731189300343106310122538298551184649949594770208060993361120022373790268078117629978106970039741232972791522965042264243823911588873722811934426844751126752001917094895610548360811595466667828130774070648634845821621926478902944252850728185133928758316656368567153144089274659585841686877224006836304200223970492648862022362354573191871753790368156907916655727389092045343390343802811940589511863913898706726897584037687980637125374921286376665829149327964838642023250940862461221727995216492124029165759755957511083809791221849695056377915702418153281747167394025049783639430813368208691400409277857346799219047865275958452170023789724747107603447792536149621179772742422868841995811639763644639283001578073682319472845612781991205533042334229852963763614893579258545210390068806994922126231141091632168044193222221922303660888614142756097098625926325162371070326596336344764177238966661998416246425949059051139285209522135495837263231159172112326327479205128103084916995380480569457407865750891326539582390767956750159469544402760682244441225956904982123282968383141407361959907478234317541698506771984688353016200530734011605118107654326589993694857700239281773025733544021820959655843984281344292533216847422365289385019619742221120050278757106615975839274787897140146871891447897628264212958809057189438370778857450192144624353125921875266892957138674466979082975612379354722719299042166448442465213888276734910636205002776304244321256484423399590048740933695167395837459173665206607296573198216700307806360355530324856907953968591227823877933304311416587517847962603398809213252490302015816884936194278911215501819461300520851928843916114638128600957294902961675898149288728075111830804009405029111353242542640812920376073045499805405300500875905909468618637087868979653849399991714372249120103923339543244097269538194043529729825532359598472980187007936400596480827537670285278044872981569568209442856831319908380585913690059341449533239574401704982048317995063580061187859973991541623604341794320090374789452974004892729354781804829758264592459306387964618283669614915414612030538717345295669481548974330185627378511671029828071620835838588232722535930809016811031013096325841278444323440558795874938025554453982181523355100925083234728518581428731228956918868979627731343136718307723239641524501959585788125920257856359920153223686577600878464372072910075170204812347856461997763729458701136592242757323125633953619010030653945915694530479363530188012399242555944900392543496929821490375917700890843001611383583254121193297616879142528915061873547358319061367022580791103861996436861737325040535352233359455431492051206196293076493323655535689365679859332059534003243067755944347643072292697355273305406779987031901584553390290204793081353666491353405338972268546239587683779793752986798281382123061027501395393572194916002874451681452963399292071867048423086111735065739130711489346273144405879175547029950194894755360872422352835785796371469560052815273848289957936780574929880496613821487692776417540820037429489970737887535136691966361637528024542695247758377106941093264586254228960738922559170829467008862156605646258998359296645567876628803056941127814131379048063970935254580055313732190637934511152319620622945195543308586943320933576803105161878553857953941933164190867966880979997585725329928794149062143053695946043298988015373745062533375375753729677826191010364037368893252250492921327653443100047169020640147682224550829815197150099633668477724142634908212003942000876499070681524419438214291171682937189245266145417533229875481668064221084254734818036181787563987244388252727861895244284211654622724643908557611191355345701063693451578369919087998338484348459044809043624629188432207032198070314745145477401845156374297189919712453890772808668355913634993021369675502386647634248249946064200651241935657256536976940507213396928036537559123310423084255444271346894700581200218288471681732957008145745607483619781158932793006581327768234622423879979125657491550174728151985564474557218846026328131226980381628012034292351605559909934413081980462409674956323713516613530526010832591832515505719264310426344943764659303149923445914952654181130406984492269125473188520428167998001941766214797224008559250520811058889475729809938643270039746846546091297198212177889147029330578169126740378562294681055126385378231527504006176559416852394785912075052933870912517907935743272074091392335811465276192321182434407102290912800670023460832794136731058995692839601256432989135387712808036944036214034939841865461545906104818912784664315727774317550281002141933481480677274729184145492603686227937091145056035415327700140450471070544112065091937246236476560410657907303375589587897676117118315917977397935372691048333368138841121694952479154166215203042420930283879575671737161866188506059067153704916262920431318658472988935450952778000478718585755920096743958203199594470058903340910148925342815994006365670334074736358970149549855336018881180598470832157900789827887335133222484671461502180840551557072243076430601440652819464417533835933808516141081612915710186012355670334239794050118044520807256103947023800192454642292618678922103604793883405597741174145488612079780300636425137808782113433183175161899483570366663354177633857270499071667576156270135843601879414495151682770584521693024590410513630902935041870586838225061760886723981287441308088891791715882466472303018537020440040425656806224803402992512598915642356954662955676322603197151158345931074344681716937175036739724963742214945037848987473315422528472622241613648797718264632138981411240235426485199534839859068437762219451816828219687517482306417203790859388635492996106167844083945450589232373843079873393777148477578869458718139052974314505533976641986327130633590554859460944312944578227497582949841014805771618315877113226173763689964730031094214771269197049887175957627267301276979506249076820239957750025102063121503404843874667434239531178099529792590990962012285170846536314871463411982714476048436404942558667913988369187996140253919244892429908392326536946180418326864163308320987196094512672661799901584856806360811267651879249372553063766297519874179110763591591712869878768472322225911244505227646938881119328183333247178058853162711496351435377513442361399671520058970310612695504555056476217543405058522380580161662360320840865125591361847108249039047904074490397271432663763112633932634057178327876808138833050103205901219932313881306504095658207554575253014640405772065136843359762330689017161627299755634447530675385004079695074393987539100296248329690901848739785608307412286052256559267717866567295112792252676177585036907818918710713043172113741682673696663185052323779558072997502151093751112895871080031100648569531603152378927780364483175079809130527605765007610918142244058044705124423817012155089767514487038839544265679086922066745446719125263493744245069881748530515370808825637093335996030282960050946253684551656396986586079917211642879484975455505116487110504383162473361912377551184940876082160184935773328015677094407035923749220033612023997425157984384558323189750763799348317419572672824522556420339178892610633494531649303288550416352294755485694179778919769136416798535896431927830006746875022713733951645888677688797937138655098723785505695145834981695106766517795403895759001333100880942673298390198606880777694264823931275334408200807529536146863563606987769486086299393844885927633571745674314871907743267284751677789720747524649555083269300077119274432376092918203095926684799036502755284048380377521976292739550944888302670112238907027311494165779133787825825538713424712268076372634711027087156307513646662215721151473831953070908264843774794141425386415908870288922657774954552649360401692822347498684918851457582551081899459330983202969524060774634867444747333792758939996934619868125822577213219214453944274738006759467972272239907447547180032318066106336183825905271278842448892457058154103788715759294084075544463350505192099113560838591720386045970374321466436857144479926195430386097372984790575140746138477864171612817522514067286657199478210845711613095606227648432292982160413062274584989288343888448399199310247829731940819670860169046937601786036396200906073124670043363396910871588990968798231223542499041032790214093761489281694703448396514673911010763919213227079928355361996061315164906398325744038519033034291018637390285392139005042306509802010096126512318946962063621832245716122076827537016267240569621454575355372112553904823901650187940160949304452425533782904556442622464661673055643881183309926645813206047068752318194361487404926115286865914552201858473186207123862106273280371208406398065857450349935086982985377647049293545513901660388429416644627302236168973825680840539759724859676338650099121269759830629988970172806008204462541985684983753962297081040884415181509326385904753910719132120717577000919998489722801751726464199702986211173663498765520767432935907783691753824330695077060740852475765339644808770846647534406000369196545616626806190448441731110936167954956069217967304299323748142013943826064853784594743554005114161605602017275137914573327165513904252457949164956175406966718957427437787800960653092576308440156772303068766949171537207834682756509141750093433292349704564181766493755547113759934243674509198322681332709165950579454606894155488200031032864175173573238124368961516789295242709526991649489214662043296169948703312544181494707946036127640093609348126186760702241286923976080407814513249451134411345117701103507114136738173199083877310583364447653900118774157126256152687665217119522402799887660240438767284279084082422277310302778348913423822803286925351457884210780964826387961844044661268818933885985239717007828915945113726692147225131234585990734270576698971259981265718375796883203674164691991308786839549419318855980510624106144434979367671535579066637759152899435647757470559952188136500491860183693436839439376342112557687036720666887892182938495291082129368771070471004414611249862958121663871820516541856510592305759889365424661761629703986956280007071031377721318167063940402394520011949896945935947086411063343573205982615531021373441556221999245344112243393692746191673508840425079852667521149228928524290626770620508626325098149891565714429692605503323963849398871619141905186686581555396636011833790655571511591798515964969334693176692199044148647970085307232939996065415845345301019453361385927105758366463604098978849414605194358075391394607853653321418382418436304365402284580958983562014727143540845449723589616352104865211414416505281004690527773618796540666758318827500095002256409824345508763286235367877188960493789149435762180848316626605159779464001357907773974906217632074452070370636998463752336456217095063748924190792764355184335710591603305572581322193171352708083981824620659700882714656579869517433925408850100212991626949417253049992260182606571445479783885432187881292096542574026811823797498419756300370840580754482958677945104358063446913775091730756644725428884064516768229153022854024095552219001369861141792571909426517147024111970280061798866343535452886457924205314194325519456212732508563835650519919530884325171006559058318389161289671749162795564103612895241082080733181130265088652249746533741470332694921414109664592454774379639618783294139997221762752427823222499209300840285915562851445898800706784203717866567351858571685722678954305525816293465307201563210561550270596623006861845242523758011182434512393371058224847626251471833142998951354632667020477828239662372533266493908165917955028989894941203066430260800692539697266516316127249803331079948547559068111185801451825533397503146625933824262255262868509085876644542988438068140428130719434032465019823588234519227143904959095210238101793562913936448662622782908368248137819250220390635168762291368762202437548001787359591133324924632380054229000626755994678905405899877626075812916756529860306545429095601586552522858636010834442549740234541333858211121771833986152059235000985098236691177195245450470108904894390405436776366769106952510201079878899644750484704271303247157199372561447282908370072166669767852350247946120406858990544937445584318620149072838021541638851302238495099335101333479512439577202801736980402033637418813936605003498491227773500731117382895125291782901258880672257029336848247304422661761721914736845249767225725632985713245178277838744582321516330925838580940556851513833221843467396934201145030236956506387111134509123407536996547327875819248306933917642633486007264897675033287314232086457028645193636578440795556534172996055022953739159733673661247639500040744864216895893650263314715340779340854198386420054962042277677744579062493699866848340155535110865800653459417648995356314778253535325827950380651407530545302828194421754478330661703462172941803800851859383680999453498019688098863126149395024393384721283511500581914521780778126800507910387953192511423822892173578410230774676000345685526216351415111088827744191452996474842020025509568345002945598104617087825286202450658596212699856290590567626346711002099064071312789236504200427074836465006592246184846555967092881398162694213199726693265296154588434297290501512308783745832793337773890332860342910994885406235427162091358552220015978330972563747891592647561588085494667578382547204154292139225399528563022761701541502778151100042355672882510470743308594073706473276030538420160437110092283570472762560078071828663627261149845152125225418766186927001221434702660817683082431392197111946126813835122415086304621575989681044392978178078153531619044640770394822327087500608953907311008111213112348419188724682259826296321461892316104298018213088376036136445266079604611396935644209563867679120524336526326474010320267600817699213855284920105619478690098102741317567243939008654774186644779475817531831595873761359481105965588529161642342154054794530347756444778888242657217868105991034369712118639785505526570278772328927688780507389747529635937535038308662787189425785883578100950648993040696408066683454098219341116672758632371176428368612387770702145603484309711478158290614962465500058740467814509331968160098785956104795114458272250886269609214740129581656004989549329866394985445467479249521046630775881066904001149053865337060857879540578454378904643763338297340184237080958470413847489284421127031808588266450362217521663525616521914288481574287901246421938466391711731540669330339176935570330200231570729168996543010285413479539324792709198331064308936313304752419883820981453927306544399561304308349084578072259110367859726751377494771681836102616670962808932585422516390208577657670046794087221917715053930165672576443072226063293376901037379149135889387474684860904741092455332553265975541947203580407752649265969561186695787890465751361112577989016867224388294125266373263247348746681843684896306780812294883363491718969088928006901996601482983938000685533595085540308939700949367326727289766360859734743515189126591949579876021040130707562328307676124312382702423510541475571653075115203088425466509144116160237972279330441266314097264135307631750593372841754445247262141671292407756054589368272040077127755423405952669415361072133020447395782417058135873232368751825733251934742646335958949401853659747273504328678835492110096977298936463051459015451789088972195661584011348438674572209848303940271647127055265733158658536803289574633522685414313251146052841691092273880215201804157708232635673313510806516924074947525273874714054034785320754105849973892575780012856895842419605744669273482360173834591938545900631968966854552376855650647558118246497499396483106693617069255299687292587253104025980712859361948636629778233351030202615815606494459944855956366056068330350037641345244756836150818984849726856670716750504531674794801806453466845755066331303186769857560723891948177953961199711516291666609996725110698098685472423442581862624649682873384800750493040010096589441001358269877710686538156588866363016907103614595271097843864288761017690378729569306868797641933470171469474369434975389032280387392303176394885866777483194559321765568224040042154412362634937101449824888880702570443756584319296261130769212315838352924063916223380355758297210030478348712737704190120141669143145333348497589797401416127266378829905830096168345626704720135016410240471712551738310267791029564058095150208618754929794797366045036834360055967783609291322922093266514019533008746437267957573290836934006820859464031096352930931576525721617300592771820719701021020134124454028211716948870575360314014747257803835647336254262573947348133337914476094845690348383926838062081253741687327947976390965270595159403849444224846634319567886656716633531874054326999993256874777653773268121357228685517964401380204400466934329024110197800699272536587559803802280308385248719260847964105977096989283589341349801933533720376046016070399956271317696582728126974939665267865230776746974152439613464779227667437114783437695591060161503372319513266958322692719795765374095079551064787538731559603063261328328813788145177514415289206585781321415996134666331918677062270785717733491459458002607276319323009535443232215706829905947099392986877143589479439959486775008496297942027961083437449387345823694526163398137013151814923225587421310771616427487853750558962591091942671512739248775614692064305132712860591681591931937054270045164768270154675928126533921984626192918017965750912539403694282848944158621650547411158654765614157767300458186398432683503395892261474169309681410358783119763395866129711541619023384946017344741069109000063707052410061563542266988964582480849400284749373189781346333526394949142486554911999791398238239375231749417630159181533083094185145452341523651574825526576664681304447858578517233493553935326060021019435325711642608955263348952815253397519940032026166963139189221223332995538220552442154550516247540920549465973506431757867447999605505029120713867148130269161637783104784034609180008284920161209140660565913577629336897923469804177946824654123045907596968342503665866904616314056947011301418959807617954327728715585750842391088641622953441812410910455253550322657331932968177786734652038773129975751083545330635606603525650582259384738696556392739103384468179291230366639174862402292104117793038303399252872656801746392073889078530495592646582669144991487695586437246721586443289277686017442497265605569900329048589916923811036702271778211144203733989979708410531061072273903883230065093506444114117190896877503843333440314565838012103266777076100611839486775487144460136464547037426144326079930773893801012954277315414304123188616640136125298383048165300252804383798644085209766450130975439753724335417647832635801714126094243859801246904149020981836916290071221762219260007403428733050132567151513056573903006351652204948432639290731352006041223425023213818847201981395634619941938843028974464088049856899948311419710294601897706780512621298727613793304328537027761520251126095878341315000058178384207636561979961440513210803322429083309400895669677372647452747787434234525925098754144198266208727172266460605668562460008927224257410242272019778474028140931888789536726406997705730560521385923193932958445851742731070945105359422004027060152024666043191907267580863063608861577761313413831692790856372984538662066963218018865418602663981185510008043178517066125585531245768175727186106012922447656785101993329540873701738096978765700566952473979205996087607156915580453902019768567266989094233085053692505713729606204309818949629115708927318471583351440148626331331968940265289635264698017907318305783638521084623057954921217938576318567443736167334352918652449541728412893743732727906748570095376826976293592503455009375867122160572067351213302708634470828502261633172261588436193135817504221640490383222447025865797457141668535983848289208041029316962138134083047286897825501348420381686071256691732625247673165272484313762652677188986122038487377494514631661529858328395872862736120544129503831401310517132430358823156815801564909181371257198807032551745307262103268524858552171740597399598738037017729040422907571080274378777686496337929898875705056235499311629777683134991477927057782053162743200060924955491608046160374411252079568304615664224081458098832374045921583231183816093089546197803522454152608768203905354806660102331916869588919171074787236102586244345142079812233190160220024546750813179645369752805193909906902829531370958049443823705663526220983206110903769417039546012453032054788913572569791173989151172197103579660515240139787083575069367566868460512166461043958829131860402204822005185061687080080002395797001064069414253701897637981582699565316923357386072469976713959456922545358954543365209317956889592415952823703115885340599601824520275053743798161462411335110866383894092302277283320745639546793485859711633237837290078834378538597216678824485626002105930657323388589679925250345295547453291518776169426003869472778386291104227360621441112207822902698289319585189458146520449663829660855545645696489652215237054909032605565915226008485573939033909093224285879359351194993471457604156971258512950264630843126916513029843502033611258789766581524499135233681175221483673702185754421332770949803998410243264298490680137350379312385112943605284453983709180764259203851800599435249960993073081740011413589531044682369568384458797506929692051725023706133114761489211926666292626934937579053658092783847797792095967306202141842501450701210911365865566942071901050979475933134924791823809359045191095700008683585393117476465626131864863303129639575450995515738475837131546714637303408244493581347795272822325214751897406444485638106881017496597727463777657394114061792069759400041346635705648567705016464720418992753501061481529947711701641170847227425526001103348197156870440624368578063630094411099429020517106067551578964891532326170121174083285790587730991189847432653422156393063018575011524986244295527528502522218765026086604568634610938095545962983037837632148094084781848461048153003823854576122079995443596950212463792155887794904036476633143014589896122369889979758706253951463389115995833122350552248613771478493469998569354191559136653187038228133652869919406566210131115283397484318031673636770022177859365408013284694320923788916160625495104351150842122759488026567516747960282864678341423901465397130681047681807845753431343477480635480762735090480502118716140076541006946712582941764690388005555677351132056440385828520986255900547790948587912695583996967744865664186993422988885977387690315482238176266795200836086821791252571442108997954887329107361747674021361723511072388033229048818889020801060575877069443269801121377377737613333361352412546317997093704615274719893462691489622640239684493536067920862516233457507270450511671739995334650455423869625487048335351208144935872755625845233032957737932232267529016559305289944838204822469944285799193925766625601063730385656103362321588760922556302116259433714951659899071218217023097814320532390040480038520314289736236462764347497368503357408426718398180975408482412642435159946017405686241530663736943119458231044606264808552839640948995690490588265863026957758728184782623514187743893709759024965432855375763213205071493152280711213570014106134502974696691440636324482081944836550824611994891495154877155146026658349610874552808470022873629925719436708273610496297858100663252149562185634331220294668582888693244874087818920685123672364733427054431360433294365884009621631293724458612995309635007700970809062325899907390850130328573459993676821610309853936360196216646284009988783088881618792846469865042469128793433037829607573269185960711952786176341887782018023746284221254791782537864512183564560876909725415923744311268157536859305355800954257200299033488902379123377008341414537423851933447242965653134324500181303649593992957885862332434799679596583788542344938394779938264705740749387614138951387785472015854186659810374562817217481765157928035006720227681503643913939927887786665650336667599969215533816545047058859179717053312560244024839034907150146889209075129618436612506671821758796045053252295344759684714171045927575631822850244430845692336444315443871559047822104670251297813757156096896260015440187366537826326102147409128446010487095892613816136061277118806270874151406718217881596068126254010430327696556424072492457140218438514902888023050862489057185578144961266345474818510417659521788799604256112283354770888867031052605799370000539434595405601324855275572067298448902855896883909756814296044443175739640021172477177784281076235444355350159849713819800727429258824203747047536100115470890752827247089852765040295189423757463984045421939050500239858921447687136485081464768170801735011894242624965924015234977211261793782770625241096938669924113595076658335215906852873077588854968206833104779855166626354931808774484667944241992029650448213449789616208072122055727142092116037173540379866683738567563615825172654720703058348445982612275232359868584205484152304596393536974308434031930687266911284143682936778758346607099567371159706510354091267445719716548356968659153291261833286902218237736936000403527174433409712051916341747724246594475518094882577946254989573625131990548806281300256751153173270623235315767035375808616459283583249811894423657287577111901835255270410735468210788566473009951467317906615176224027233579518338015867548985814205278391537818276300816309812360805737483670708089704434698242572069478070557943815287855850468772771330827119840081814089767351392527488157394410394053802862697539852405057569141168200922330294851154111623083910826604920548228597410952933355997021803146184730534379172530841288473440754802886972264726193016715826175519130733005827454645341863602806054126784718282824686256403869480675947657751116562316911438996459286868403167576465887981640998657617445753062792420791770701533933859520752785490893039983221256149390559726749491211056055090185658909181328822117718008627600557057633455874395504602935940103779290421358285048010932287709756153598063920634283473330188917428232252565905018817178891124005754105540460555035537087934681315013477708072546639638898999335041946185863063200351723093589200741423500121145335417939203804902462463246100075214549794009785515373381219290236101261209331692989580158195418219268321788541417056733930175013317012376411281059369400070614173732879841949341332361108524273486080805938423540458178706571319855446799234750538467574454424880531529834091477233166559849882308839843820299325035258639631940049004609712765724854229537073203530305327828619390054032804095707228482295150105768967203013659461547146317971110199448318490411093387910955628302355572568849992731349321609378870259332402457387889582071910697295612589696290878021023934567004019164176462823074512772185356077054859686847236019578384208965087912046022288049661510130683211355940695265633688747759243321006764699750154530781757349540150302073314735156509989796224478391820111465831772599395871685509381523704732838613102385686071224321917280338179706257342463030107728143086702188832654312483295778237203900732849712149944103905142172788664994687832162215612438857576136702614639812128002054848931474273408059745837177133607159749838101002235846016711499169262944160893122404934828740915164257115204859551231367519677021068882698952865055776162117304782682276853933217386342304512188288192731852791830423047845641986595128352336946498173030302204397966335797199770074022733452823022126699311506730096979024819616978634591927525273668911397222239931523378396366314824705864835586104450228480960015833878545279953655831041320614075212177166629423680017062766707900405959240543074692108317465518812097248557264213160243750247461956229673036475821836621940911550536624948702189649402875181294605350737303995678703857069107672194825112156104551191570641305103251436882700265311638888509994649224934227198677455236797840038902651321648441779142075057323283576717301390220725408402882931292526132646946576399062580245799121998269914617254125274867959903227912145044325942962727486252882170203982269568257271580312290677356767648551700938852102315484486397335082213237201591998044740920945372770763101912047145684243330422932638510864114167537017059638320038380920208221188345222632946718378834556725076498990015482732143654154641858927496151007255981836097963587074000976284251559647796043338611222647960435099013064253499945164070621024314913902731725021646436128302139079378084784326307295908907946590925969693670455131746145667123672993770984161474600818011083912222010106923916053131200590173957849258216495983263029096326234700201161813773854108108423699384120157999111760794971372677501834004428692567841793075274489048535838868241079179377179010294876490216588725108869388947316450890664296007538737914828748781403398245667575480944652841990350179534180428043564766623243155852460891126970782837567174995570239356737216584199739725610018178193087626626516775105733457180548474723516203301728958194559526159157297340811041614589292477496720871598236837478969695431096667124341001780512441636995828527047920609694321317934109973863208921958390136144955086194899717594151074316748460501806813324119365433549210830925417659062721653047126488069609995215005480947076415021834366307163612334354061782385243892358314612808783852176006244433812271903138464266224687842345266027077073352381922643317094655171279748640417914674680054269489713650725690386365957069541960686651190255956213989028588003135151075891323378116881090923728369696759638961032879614028252329884277608395944368711421204060629820040377497520848649164878338933931661907771453574787687046264649715757685168656936479131452007456908944457177435917179684278255590776792643852262346622495375926406895725912355967171894765697521927355811998095816581641359744400807470664682600336594187417238525101858438914644385876676331216434615616152373955142840151347747849829082272831138965828882722188624435475424656199484539696456202558808853384833404835814332559222138174346536173486739606345823721123607571527667985262568068489712486665610966417324617246126557619679948188688940539810092800614226976567369989600641185065823804157352130572421776370915504500721792880929058748788339855785368889126531448059637538989913494036969621073158433289672392884064114759015486252874986866963890957576010998556639707140298865649125107895654084810535609194907775654998170684638911127596111351786750143004126664955513765274236558256428066411085501781369787178081913054363563381913411697180095494009444081167667692138756485922673874719977130452605497902286415523177403541182045118541079236136929245542508007302413580559907775608629577111893931758121791815606450159048776343529630219120468662364026565939499612370328588738220675628997999279972254615345999842487057629686204978537815905571135599562870356874619452659776222457615230514813553349735054665148118772268830926806073810242317022402729382531299181517447847279474660156281104365848144871818857920287874687904825621115429841081266949844598732772578918763022557520750965656296939423875921726467239121532292286650796164795336630803570784349925953656494172003753425195578155297426753988874998029177557615802344622587584400080413067270628536393693257032134419446746290593311611174267277117755944087463002193575969307637847236665186928945515254070866732940055919339802714118826184082130286510927882814648814775552141524020166855204562887625186285988765133102558275671367872363324224443236701264220136452233850996016700446260560311173689602647397928313950975304329925834443968291725686076035908304219435672125250667552401339018926799238229728937923175247670172436611616023541085228157476304937475913175610588223994626149879705884612645039040614486218829323258839516143522297697506646092815318126378118767084455468264391414685527728276712143086347809497440258659700490125419570836342221784020182359991383992678970941721961920335535080869763683842867515320671227638829053552107638917506495446171587461508989111719305546873315084699965682102725808926521836203383869356299809614904519801217118184131263965159310599617245719324041777073143000077311571026423551931437959720638368860516631257809927019487238083385859331504889284711346494017805145372412993873981427781969389593252705947583554366645563622541189130811146082980815888193642417522390221457556562373506060340142912261144967396833376684672676421912845976083244093390640759423652108113566566528000920306887402856438669064268486113390182384984504408563764055730053039004319158583126251254968582323142280948818455568682372160527876770729578357660148934191633008183210153825316840761663313813398135434779781435454777041923417141110828538271726105231533123928552225395124919241880631977109779306045842203093549350920666554258757245793759476069615021128066168580074723085504447926910272397719541709731516629425232358657395601887134889013892990367599975340979366390655772080176704005624247254994972608260459346368926167935838169811795535700621699023581546390933147511901657962411891380268354258987057723942256810120174248724693181470480403279660568095320784956797382102427800689627782207704780430822658065128705509348599407464967411366593079927211168286276577730495608837217154006826995459798642097638746897426906315237482269699512014516814822872559297713831083894269369107114388663114990589652034862439541782789071474355684981175557286074957298097753338600743751870473925789196804485619798446216823620523424972742445482028262139676879581539095713906744851089453717905192548343349562703853644063298382467361719670633513230848850563137376152326801143487620600095490392297097423749482905912788887150911140547615509602110570115489788737600083244320940677160826403430512578630558143531100269639435422833064985881150049651254557612954734417629222375008449144179225626492052652503176769124093243241796057152131184814940725504657902258519266763702943131297169201002743142791375193873667458062441339004122538883993497303052592441381302295297632904517956168514833815743928028609997543673431530048957583374965737498807027079806124709703227450407347335599671976363404881265334707404080322346082391453560396604200539559670029276703070644468656855460222730162226513746414112933168150343949286353864012802938761762092855906618606694896918055592239866273218096445825767672711818911477315094311752776654757158637356311699022013113382494735527670564946347295507111372525796988596556383595157717261782980429405805824564979410761726247583711663004645689902308937728812582441291933362942814536138086748735072019885645279784436802314930275687218034491380798918272650249131805899350262118679130583999194284115751548755269480549372182874593000644370348523891463740189731914031517477148197282048594861197575781440600667549646517801522890781342357458007432674670030241001364828530910308592185646482655657341589537655918179190539314313591429903735594634484902451830945815380747160795130941631913202245873739555710485699043013389353678747575305133799790704359095490351251087139716031994922379098589523343910591783162604480754960402323094480012600733759111983455737708112592598379828133743436886699401070583385387026918054782085728274025658245676831204194273826603229028549844861663935270623110980675562962131079676029644714159898012012284125975626460215370602404466633186186210501359456557781776782710029801907432395943814487658851142930288083320986781233984470000651728371557118974156808704471076703552644656164135306909136133570689123874114391184578531927265008408444636970041028069501044900749219363486622458213554100399983367439200744145894457564402907173141736498803933442206384641493572137788364376247784161676516825229662149785879591423744244081906736227455496197651955527971113602161246880961799721818335581415219034133221209757450669479207874838578322625616148497140807925882241704815508543198247667546285725911191562676342351538433768701647614593947019512860775760944229961411798978724023164890767710158096506645272160984269572553562738297108199165553201731456956757284862162344117363618338085962222612084616780019462402076773817780153071221715851618553571185829592034091412672361501288559516945380054863010987847078544971079763955399939442570914233156078494096164979815137301167776008211565103001804962292734673237214045483928072424628607029238086899757480190165100190527591571761291119647363831889230984271112947363237246231334509880692364039811101715546340945418763808159776136929451122448443600272691160086856795190250360836526677441487784928088989566209835824432293103906690192932575376611670546465088415617482657353396359406429504988568015227560381913289645713443562462067747797256221006449181065983099175615340022195893330609688689345429473070091628848736655224874712673416648377936546071436496402936686632783071146965361947307186997825119061191452013592565240541387305910771157213115470020574109868099670783346385243528573657421546983394245388793365544131682865110087582935778562999064392393614966753471821446116519805047373352269449844630843255576890036313438749759215040027965958663118615739090132239688807394904269415796333197164782183684292320658873656548703851926845302067855328616174386385209259275289948817611246221652982214784982141961512247583848209765961389095054015279882154741552009181246585856077459267231445196520054923826062574527200209806817744370457175867797518285282151252355595391791213254290973464338035492314009648987746862149758742977291606218811050190306632553568310124072897407384879472620277006472368118653512991226987309460238366409836277481809982223171636424033460886652510601799577704907362862588909279503767196265972305615892215393421733191187548098869839226205875109102188345846447656361318330668117132493949687137452720628942580199534579731723492117904563156033041438220471434504892863259869385906741131758519273097370527687485439790617525246146667151797439385084297477325043690778275223046335602380577461704799925815272265692889513887080768303326973545683244245537219335927979369586058424247989104294425924789442616067662267041429555772645551775388064269086583666581772009327658601824183140856052209611523262508920214264605945706417323856412370808545990875520693088771104499362463798322900681740849826925288744505787224330212926510446664674401579210467096910653542277759288770950041043160417781194770612704163956191329667151864451785168274840342068425963467492426153075711226837990284464954310630586674809536808960377761259333108889582465365856444603730755390544824633689269464096081232662540003709183498717605123487809516462623792334647770611800782993607264892249596425389121099008494636768897141032909159562110956581088568395703281597056143162647700040256028394948618801890747147812247389010937342832372725308161473142009372469525635044621806733503303913500879181697934284174928481907069097550667344500853910009050837868166123519772217177343456213241657956506062119105757148429869408791036474359837996039816032288800137402083358874919719602602951199368209035966623130848178436712859466119243875393727930584164644587789160173718099085784108401563460899060281623081966963616575400188434053241835267663143217497529998571467996762919770662517371920432885891382167177285254929026811002980333384804358879467622664665448242428917959028846364116736236948645419519790819175007847334525221811100825051965046786938272808295748780920493730042772046413978387850511048368921182452465398292072587879008258943902146860086383694177646067362675996861446750593037528597530191814718557779383603162647237387233448934147462143595513138949647519202601830678533243089467808773458975464298655655471761019366437852470361423369061789732646591944542496714855901078322057470624412163634473889201762676199702595844163491981341843110600612935397562808609717550819946751976788197428492124377643719812721362310700325454986883283667389687422041784545477314052481180255172964155674503761968876815649179933211631585128054055367601390402275387361801289716510265489763394184443127275749569815522046887240832637420696332726295818902438820683854098212859635482041095804779863095734477122396513238779232475909264490125231132946401057776336783756630279806518898553639120418742678230969956141523431598399068352499839630443302775329347275076586213759680277383607970502068278792050521889830667358289501973758952515177594963600594449308144402059171998150652742185164718496097160747285527363180652735796473306713903714460505989798617976176755401145520458332243986460042469243900240794667438694599640454683431738163641702980637345467034754917985839664184349537805151040244743726627093252616183678109454286871931941669242386009896754747530002657260725974893363703429301520764593906977987915056381292120437649108589480214959582385595439638996899260241292340929971022116961474298107512684398322338220293802790527234370735428731943279797875507362210260676511417549907948480853907667361114217126435456545719438028353209897426565552145947921919696821606753279362948332083024535709975027657740983099524732271734370509641493553880578426540839446308967514709552473215591257268034628597967141695012026364655840693215821452447435942272452309925398130242140650036394965326009843261046433963170290066473018819780682700432709568909943715077537133880141871016787527070195744576108305873582470784535344397736622413156067836135992628122841264773781801562110937219273080947959230825585438162966039068394313488575360729654268338582787447881188547650162280314166729739047879675216339484701687695147511206661839031618478300651943328048112506291301988408176837807999690666160139909752961525900745078653169423703934414491177239342427442578187993313581565116933121764959927609738440115173894977423800940057049790029179810047172166633527016319389637057133055243078075756984243678215110228156138313696612412018020380208734309271025887848530313685733323413657297512476516115395081230116323252995370101198602221082410909196776519510973976244250200134952133026514010609138922056415761650879865219024088091300282828628401436812086387488060178436223649535317435639302037147390497513889874924976220285839345307471828172610203191528401184847691488300498563864981862495738167196426438569097525417361166256936478380653294335695967300877191579536503387194741644313523365227105589149999758486022582231411927777437368310251130229873420055216641480044842084950939030494425781852125569908068385451773705551228478664786994938906841963654736415618532173304212795043692875177205174022604296282597274774054119425090153982177115570628817020149093412118260527087918343264837123797862743972243171393811985044796328089320541253831198019175132777444693372152777397917055744962550767879857747466835832722399166829346743261292527272544791088949876546135208299771401276859441611891631131081062795010438395774691415795915353796966508836717502127985565824475026048667478132090125291324598103554092873879700613972524183498185343689601324592481102898289787542555892878804554807609151144218466526239767428027679554436999784712280241408231557997832414744874640129586093792588476690887712866858643967498051335833829013294064163453393000360048733058386608293591516502162255097553962748308527121317997538596893137036872032140436449012369488809565119216551095653548625321310966845460073005351322556137982688199868154155200887049766721974100120747843325589867837746488444997709105707209227901620245028745876292474840853606292679070762276199101406628892609174392508921442867961113712808197355443442232666447335693115300393245763153440477796209063696905350329501838448764513738191991595925109154516615372806676702461666883973831655538676651463232547510547645714385909863078308479356488367820396159805641159404601243598579042329195013559734154986397355845847128935619623311103573529093061613629084870606408217444547499123681176715229366500144754608243428437673488567988066529621992203502363989979622676741710250432542118932367842747033919931761879090412439566332964361513036592558603023903631586186244827003210131242184847626303440913916218300837204565779943752173520300367924640384818701770746504319310008056085058060591888612721934452180349284078159777148542349297807592852473236370956975812035732477298084658614740981523980375252338160757939806058157777762058107080152698646770866070330921414119264870633253788677960467517437908909905754094638230214162349610755852985175750595942643829711051705415109476029872566274037508684997825194765143398630325506993277648607749118021679975142141245048387499879872035031447430161407928499564453313809699435679308531583933396475228402906505783272407618784390816440628298972676489304796346291844862983415544911460847104852441842809691890554030048489856081747210037372512399303118977689552802328705968654075441837983955489832776352264853950906184354423933325624179198174247692537596361715179784511977048253022914905098823795169252233040083164128921955275299956090709404431498293523932539309923157785477733411487700863188540054566666119481142958370322519048401319016290372230160566782937057767840710885622088971710255995490716751012722392414235683743712260863529052834555505601889441762916058877017085874019469461314495789343292012178657733017251896372808791529573470027649891789588425821910498873742181269560832371959072170330966159573886070521350165802971154591406602583117846469474609351856463199755724117041482662462096845879834214584577020046246287009120777014479399156421913961569749958888904384722748447785392668367453886950379672332175561757292442075454415665363850401789558195496661521164371119762726386909699085321105706890128044015074809684853080021157077344462354645159239904810263929106297861486214057758894467088433635102946265145991734584130078681228515818521118175915838913804016385575817154229429989957240614969132232347810322644782870985139588107423112675529490625357574793691154509251514662133805166498428089927184812368374166645104827708258691310273242865327883072514707524320717658662932105923443928172660534314931377432887810724990623475248727268473426455467122151840396934237087477544028078346951658659727982908017334290688323417378686339982322720389469758271969842674852033104272428865701462270396682486026329982377616972175444894116813046476062397905233658723871044042096519042509975559399339643169182261704715626142811769709121132407179472293007909817493766764670464396663605709965538961892344603700078504832218173347206681179762113912439911617074011642852592345118243466958316149384735938401441358837702196094165837492057427707467062375946157917795071542872617420764275210796498103689092955830071923163825336040279249501155693067085054174782876121687442805721586847376659447321930774092858543171283424574113520452799761392673878429353588299751883402787111405929489636479550444826176513154686070665224119704632391502110421367526944172047761247489628397877617905456645554240910959101140314606044273928384192857832876191599096392844499840662421709176326087706473393080083863633977884952847767854455866949523606566520954916775607232369247429827758956664279861651083337348523854669211046955663163560217864421018329561389916714427257951735671439776536013053612319699549848630624353359436102157847221626565892625771615305546776547078380713512655517208961047962349496055604882439179936628383723220021677932634985837598631980507444121208779833592676360343066385843301503416612806206511462452096256334109280426360519253287806937739984495180215185790208139439028946604391700759134872985024585046778657353852118368123810363485670330800423827535291184966152710744942011944601428937764927105101567617250729835220476743165963570734666183660620930408900480176494511963434583091165232504166820786012638557159231617646693735147557910547305054617231179979601440211077081805680053833796392274320201447482879776757787160712371477437131812561527466493190899359250968485705334095111232675311356480008738781184921945135677522947789763584611889352254312664933216949235588995847511294958605309099517073794889554868223159392989095988109927806801785360647648768691340140247766224133778252884397230129464287005861045483109637687016536190885807201604154162549894942600706837037545950033392922250060820835763630717370118270532051945002898379330960800083996389416724253521672741784107414814049347608875960543181258080681865153165908403905539059482757111653827126045984887794355280688373163087144160687533726567622116757088503231614125695028705056630983907140767371509858830891717626392534365715254578766232785483016392269322274914142356508393998617947502212779784193734604400136146903926220104316927566212450274678865240881487982477406194161658945586122683848969047842228105209037550714772535484226139330238634975240805097445034992707751358313933541659450874293663358025046889298336081909717083871791514669802346857610725738301910033724869008895554359473160707099411562540530315771109460608118041057605976870646073681197209481904193699457085122962142590313115503041091252369818782878599576483146006268774172008707803818164588271600636978696733389231192052714998058720901311117451358879221021152469317817379469375868451407359893907315675996263565681970304162636507999280561808347179571775108050702369785566794841368972248827667330708959775947979129684086803022761780950407507625227701902515376334239290227780466748671021468728202260438324416126046331592834364024817648640736192407001226268487416021565561394709511174402350542262621364662121066688212945303523274658962763987645300503738893405207626473071554722075972371960486873480443514911275365095116468077382568481831880756947915386489892235871047605296539528735064694506847602964567302960222951629872455408561315741684484331657674323641296410557176875156713837764765741611360068586368941907529528903407281957137119220744304707950018407434751262361647022037814399902367495808977547748522821182585250966707490903350123769553688032440612523785680735490490519650185577923043578682565793078133843679589650756568807267221412189890485087466103170560425173005587845030314800054290866894019894346833374554646262666792718893387419855175542906549542755559845247607384702592212901476443147788711905856417855408121459893932280208770229261759219120232516918728999223068474011812391463268553161634133209945477099479441616981297973003951754106420436287879644824142208788670052923992088429523299188908959272900232967081819945998630712527209428829793128788039738852688333249421487663879012010055662118589134217134684190134226518996518021175042953570400943006359949293137964017615810497619514812491680418151135227325416839306870779312388545955543506527517827234893648103631006833568695821656000412811347408552270167774870494662905675452286500057856697570063995906301832109653592177229034895717222831567854249831349446908390854206416779029123441861568261315909356891033119794975522521159539174338740057356156336484189859948115037234040368399957370093120019338766977876562101610820476218009027166216326197730471375275953903204787587000203066607021107703317671058794067827780073783428145702184061471031265622572918073294294693662977584070135108355137512980835943210729586184849122583967567316038528476745733060497116509598572192467114621825971510566739119505557024494662380059128719184103590584763467953148085261362862951251099070763781261122184439634973192005534795199194092278605257350501736639073206971079809900379775748852932562826611562552955730933504171184394477203423284268838030060484709473379764623512672029620895443928817072781371348333952799040811793619555703267356143674579182874950662030979709977450079650200824263392630721913219909651393066317388081081522945991780181608080088639511140912542256338081216708275000789590866836342436859220267030919595342791938101915986486391099162606765691125084699580380115211493445842038571133761164077702498081593423258303658114881566551653632628951817486799086343698489405232131524893222243779459869198066421612775913672097735172942595357461366123037611070040436731698546137210268327779076580161417829304108158222423890185317005063125680911179614384120930694555480219364681409913554277527629281471631876118531212498590318154377957008903741213832015136515341551991600216048451958241756942400471117583674040640370580123719201349233908202197030324613448315310653195575591004289629342821257737551584395473902172350436307569325930389281520297128683625709713779378137646330763562970314773790717650511083777740647712771928909541706980598712472367241455194757066529000412538777221048730792492795482103234725734662048803216313484774121481063002183125804848908355161752464619509296257338945327510624090322495529551884582623521484553319446468012127523510939817238952987326751444291176945897917857423840930664920682914725433991025140650582065927997907017487491822572229015654314401082011665337366032943131515234096702624162993015144161988459359353227472445943553032931700535509128452169191729305010926614490084218756096175329219272143756630143855364983779559353686778497373257103574255147187713884507756963665138982376082812435795590207467109615629476636868610436528790658501322951166562646938717112408762983525783132258921425993268548357199972124638406017258268323459868215724248177880811938769528666752374821462869564435285986078706311341192106067608169917275081238424169700133684289011739223652147171492396635823409606904992146921933131818235230950840372862261602658497460891939575018948660295656396952263727941620479148053264818541574555181751840080924193028195369614830751138994952672367001305782574205254354137371014325822038541223823517885195179087305417256109746844172903906293400476008645985339989062653003383964859644351080907465054093183303788757626799877982339793200300692682978402989277950035424975163683271504553415918600526904839555208509112236663373978978719083884904252916603757006975484247494809396061744706080592000487210651097962982003770141486274688411353097983619113458758569920600967809457986604542366227720384628934382815707197921914296910034249197900308669207300694502972220178725526104632681624713566087570758531836846181283884619995248041358841845315486830550483749295714857509837466791065067678198464857768586830266432479059879282782274857343588144806246850592747867998344350248656100906950486549428388905734058874138497734830978695441702539894049330898723238526070937614580927925852056801866998932487011823507699945140394296804966979828106863734413931136067655132628502098422861085680215369937416577428824673076892705544119308649843397200592066938448137142990934287076676397727216068477374724906651861096271092550105441199162137669960502719751102777150102160215281954671234259629690157832673297452641470944699622305888260814644993379654067315459542014844349731750431475949433566914626746192979246473769431272189474519417921001313884418251365670515031955634285079559481026861130176403998982799762681328935177055342750339944518871757538019518634290211772981561001346037537971496192676584821049170044543093789649550757302863327989537011848075918172513825883254569241814951319857933511679161101866531932186569767244282215316870167638871437673620559611238551496954667095578280216011844796078733132437852185079324552478941762742035491145411117437002667645491200398665076114428838383029076230440124588749033640219351931155478232908974833059948731324741784165847384775605594300393095210483411761241271759381887840183457510624694072353035027818387427672626894801924374125445976954561363554713087550114610573600890927816344618664997818175354757256934324323246062753294759383695455674581909615265276733067103401256085414512919071557974807973926239417276918807200144539622938561361724789731676454565311543009761959172022473017061965159259875438008278563106351491689005804600011331561863738187108439334316513728499086762079999280290879952576320715760034303577724567339169292420776478945985068820838568328260547926357841313077362315178389920163436610786901821292945843478945733376326262402020346061360758998627953234257243117964212913485403004158695995003285833266617107135998087868874160454911026826606691990096237235816319489882624579555434800507835816070368228797785059475537089947906742464750386651243800036418621970482060776330761997029919113095872669381310389648959149852857111590259923759433462851540084442809560869169997520477255075383487397395261904862488315987903021856690472571878383583789796685217790252877911997442952193269950039042388863627301679583932579275352948320957460319827416507385149489047404354394827657951324681675532828026762817098453707230070364744439905026081395715713688597437007556657955929531368720714587672505192637572720615473942800579545350394688647084152916348433701626246276869850632611235748339167635731071720444247906784950466025343034771614714696028175425449895539432416936987303889489189406618815444208217195048586830668809865766303885157581099764251825591556487608199608760329846787015127961914233843798172390210878064816047467403316633400182593971060343043100885510064656245884737944760070427301020486946832641274767099070322161894520163911473405346104786557838873988367686179545798872872607015764944157305007824279453315181428533992407395292235625622355251475167046071140757155953172453174562499924049519178813402658218240803214631759548260373005363940527847251318412994838986109078863802131789104235980699580772127424526239059379781884792914491472946047000588955327010917518537478378113109993602637751253950877847747398651643982889054072080263781883834876821805730303394459044367739795947828631212955884844551280949250199339934065170293351636579971085510204753475476457248536515894727706586890142931315734951200151086914926206959745550564117274242796767747305173811990607904807906487403610495104434833640170321935697239799927266812755961090897444490301123280377782085095050660827628140325098624999672144361277945035182847024264808351973541223729085877151494131242091995757126631035603576696383685877738690041041392523415146225003061496120235412329701944115649479940831474440339046621035828051712388038829823503364038936103555671308734841435275068182854178601370868402323053984787282650291293801392702612555793333712857439274801051219340064062180501662353791761375998963558181961148660004738001878043636346212058967704673344725485361771369080370193927331435589740354549061400528583693381279680747838913577535667424398525395984644381712833226688282321677639937530401428970559617624024815712674929352325815367272183526096161644492131955648708483490575653790523610312580816653833932332069162726702099101789219003322379494287739785291641403374957469187617499894045287217907888552584477842291956560383279451924331106624552849317634129439965805792602735767890323766050407584933529142689112711073662155407827441541668879289026084375050850698293855859663576800904323118953723651863903017743401237513035975024806020123588076045054547910395796288155733434529386529541392414175904573075901438033851898173702831712097387503334239073239478049259082785541216487526689566775354342518943737209857394656210979310951989663706822500351149127349284391907308555182908301742326005897395274787612749355799335049666266245411256300895923456129168960674237525094914125882243828988689633217838338225462990236428974593011551755515591397066201700036054066435098576454095758676317509436422375191045794725031260877441894618678658513686586034856155302836360066620285073825830102064998584375108331606511288883827927597953308511842791873061804205556826549715968388166835244541150109393964632782528369558623425871704005572288040240290559319140169669083955285152097612175439129694021342347405662101020248875852646764975474508649067860223110397386737432291871879761032882420173160901638621209286505108286879838280082357382645486462401813969317937072549337825291387038502489790726712862416719292223863524570770089794903004023375299118791335459433514066768684779420314360205174489174132779667669531965436128540850909057555367873646769185913499547994358508665603362615009126022215390141067645473079111039545244659164115421692335574988780851619110826902494051076447212472300153749183630841040515182905610850208227775769169920188910269141480213991142156189900655536833868602891261864647727225559864705183325135154390969163202989741353073296516603037103871118576771553831110467952596993751216701900080725386562217986619498398882939371235578787010557545733263692103749629874309876762312058979362303774286527384558612017421690866741417136920446805245308663128994457518320500116502098380473430874597782277801593172564216707998569896516777093277062739380438649855626106045529821442748181394456127239818556658341770393811395478969331633839691717097227845625907931906174684856894236644086344493712541068577345937557976086614182587856520912105621023334767671531866531697786001324369314256104342716248399394430329172427189273736746748994170378245620622890579249167535589997489640149098267499006676294878755288731077039364095575805610947281037471665399077351358535551463360215199582643791381983060018336573175642670291930348863118605543879445656852613208946584686650549157458502764933475836141741407423793872690487583573710378330028436658005586221425438676526839256402220544221058166136925254090737480286048467480124658243249263804048574234607298963417716154543970153811177857766670902469586792174188148378146137019340941913383105776919739484312212481005224522553929487931204788962186477129188132936217518455687000933112617341221481274400086703608855393656939452445334815494596754542555029524600014040288841044747184568959397036738467440681864463896522999538936563706000819847197787383906433796718132314952407049368528209551360671632228783246861183751999746539595885752375842289212232947527232825307501806671826271990241105411464664138382807136724116246539596592969426020116575809232616179758253898899150002138189038278758747410230442000466401382667125287612326492778223014668508633035886009983097548078263234235538440484681416156887253051710988434073359067871353665358325628151274562780054681744723613519732009929187957358071054473557989068148807998351483961355547715943001644112202428319017805674971571489240093508532886730783160103349004529162168557168977166971493256069853848949581268347529560314571794160915360549179759157687292402303094015497624469312069774775583115666790254278291587822492636805150797323323822762176446462736413710251634241641594701566295608468758461928851700626667558769982946892061670567946108380175641202351697909519620541578281177962759925477576938391043071383841296771216966738028040018480793620858745684487570367338812177560411739155200301100576747088569927411499183809211433340959769379369419044127354396671849180917641315583142899016923851013451847892542594117042955222540721878132662121691818067756507594990907853796173450875235587272594145892230906049376152880392434865381811331825085186832691965299117610528091664652208338760762610362382400989702655342465080471845296030967569805290471999956496286214747451362700191946599673316236004085954476863653947158123359065632614801104547798132943587082522396811148800625156041493986170253544585136027887242470544618246773679387167441073833067273877018543221073323951855099117548900551690803383596726706091408011618300657704215366018119514319674403042329492347114087226645555279545696948618936736366461210624938830661010587611315444441027184352204604101448470001419974559013096623659048153123133218793572492375818775510701246542111096515190448891780446280055806427076062716853805064294047998134824838035279652817151190572862290254443970898854412363449320496587689569007322635217150676023195323453566591654510113100522120128977451935090310673877107908008028443481204915053660920258081467960526728163414361088902832679385158808119450371100001536157316468750140416866436857936017928946731632015718458333543233487959456036366384387001165775573753811376707660875153493579122970408692736163457659445261484859518309478843606327706862565318585571937588103051215829002701263451595728219887653038042238113592551347257240359583239986998023057080301445911965175674083842392250181683283328470005730362985630483875809186701064951510382933468485366747301570568143675478418354959858871169025142875224325401729023040433670884548994939968090372729353021153039117556743102138686131657826358940369077692382479882773209699654884478195860996136323481197560616913715203597967422446867493384842977050883982351904409617186073171312863853382545240553849285354168833041073918929431019128709960709041690309456835122229988893265882619803719131305201096166501986037481959655258781080826792793846009207838007751795020279215379982866741941442113343816045441955361912538534784606060749143171700387825895048919725600800192372433359422037986814965972257754342350120751139014435757646442040692494852649480533673448730153099775661771814035832261998700194959292423357257242468419008307858799042092565621164876148306234063231837643594727936041709308491979390774037992484237270563783111984037955708148190208979946314503033765079426792704187615693849960341471802412331706863275165731189832900198886514218759741160528811749680147074286799660917034175505108873188849596870141166670824978324200203941193372949547330722531117489697122580494531940507080163643849447529820818841026614394016430600043344443195946749547847884427135017223074238808252325049008995551958335547579759001944908602474823549180071093471622850333787062491369543254612961994237503539203647948780268664248280185777298992571988238293245850539541317932068475956789709185098498886764147497273900922043469745007007223569183828117436762785644502404407587133629381799294976855261580729750881217990545605868110015688020405449024849800562756971724573166102467057059034912037477507177094879003946934607557204941693234905926328651748219673335067046737256848951762678884080032850239634963098715666295254000440847083468243115813465340789222244388705880149536168433775534561243428845206687003957963620052582405878336382994833273936766835509837286747900372211655405102504614744335136522362011256827066700364549728695488916048049240667214758849024547572944387766447161020860236593806062108383514815212906641169616505650459839708583436308695462031011258567234722369924797307003748239612538367590870412821415151510347344389925016085860607517183548233127347352230770129407017481734577054863775356203221982464531744840984046340039879669566006844830038555169752965862644149878937839445344217081981457194513484874574198253944249926386687494973624547183665584745937376863411079400226884038610404536549025124326572019408780885136755636012290386600026598930345116473374822489896545119153307408637487993796731500232450965842077797163162815738250728784238076146710218076740675341652238003536240565769468856128030565149959938923489725519965155814302825204801400878917794534080407134187615652090626814164085220747330079415821287712972849287097813137324226566198931672173093848814441912318419568259184611068619400228516314482360818797064999668644721713864108827681655407694987116426562578711499397078316793297689284152274759689017025904618295903838873080576552947293876879916773649021162392071901820551024337259062517130395273124013121846814327433007029582575651967089095666428894006618369296773267013673068844411306533055249284409988937645803224294918345056425834693446885914395738765571413249307437404010232007676440273719413236024275594790949061877958576531276539403508098347279170208935084714362284466197885833783927375763673936716739379659483599136093129312469010746613628515916584595793026405459714816698236677183710253391370007675960534046994540626332050902132522270171609931023820310673971951273862492635480537965259046059051888608061931030628854540702804676990062434416828040451566630401328654407958740334664570988520753341194844539544068627866556901946872820976459848765063444630903683794880543986417852452914185116402629490004509247905788037923489330570749200060921827440409515127735637203658509623058576090103027367128937359432208609583221214178298365349197012437432072868401631460598088541870445886748248107215949312525838457271576850901215698491044952863320295043831012061761074568043967711489665720656500528016766615270582937790722196435898329005421735733288395517271230151557021672870247006646388850224426682349421599187243756213168680914538550927348105305500730615947231355395573404068962482526188382307216506918920379780749249493486802571580227707579586572211562702655101045155733816423815345391828625923266657432071903825135903900169529600089693388517175055042200498530087808102605794095223368992336813109599918582090275930782115014880441296808963688287015540905479473594566104545089318730912881731638199870952370639817373352985068736324411283133817599905753611952220523988711498683504435203539337427342889605965706934774379061840944551415907655292992988940376794887631889731102428575089797980005177062312633755547621309140932900786531087601912124088187737202359640551085797087765460718900723391906189145965215737210354803939705668978331517797934459262573441704086809567835416015109376450095478737702757204751365227150421098731709594763517953767271146698277699356867402936160612851785603174526373789258710817939570930979326139436310350691981558878105299140819749824168839150974227430739444654238952992265120078890321362258377876859370776800716353488715089895961291992937370327270838189290288085269498216716158826563768217145164815559713529939242576096871267079257707840312858418538489006544811280558837546785548820618697700294375404910530034267843123400222924267931197958241792324522042211509034852862288538110453901071076314012808331350168795519675878912817649421693980416147816719313806360470966642461948425954492585882253629985880210810648948554366189159888454657298093860129044025236911878772687341064291070843309877828512570019012397655484534254080603488190414819386774299136599775432383743453421295934459488387563869917039770356031934575077896943795452526422519205363759667525018799306511856687259364742679300900469599136086228301280968821473458890564882427265819082686520339121772125065909877795886239441803132162981082477198167675277599898565027104652736085370317819988191352589756193499581940906726781414843830852273169282861772493795087323316175979473662157123081973110858658622181710448482297466178095085160618764392201795409726984445571008683199339044050009047497956789560248282369364557563688178707084458499793243760169523082949236133647788705771481748992860876128281294033413138380084166780936715794302098706405930477993170490548663513911915014379474262155989197318522433117654619428976339037174666701980258673872394507113437398062627847509797682794382138688981302399363392772411123936719680296962081263467182864161199300475093199289247412290212893594671402967427501560292342081433252753323590786763045245634159875794823872160217148516769471680704261301122214061249822600393488425248570346364430309879678428832962174649471405337214004949742717780035817451473361875825346013182587704315965979810127437344677629854081167661313468359954537475898677780749517945302609084623536932308294009773820154438698784200987588671631159750624002299638016084046339036545736886117988192901049537038233469970457901835572509322244299668776149289935741200395325574155931197494671471901684871313584107834092221986157505507160571140460592464033161639404929728591649102469242119142770333113233024763311043359559250967909667083082513442174793606245983538227654715811623556392872339434184528298068235303815163680897405709272212307516068167925738128832189798322422232413343598499683854806534554715263684337623807831014877516134620888969598167050386105148791690546681181570162520854225637919122776745028736873858572771304312700289167900955068691451800955558291561114170913772970877440259496093784287777276224755342421706411288620624767836832154263079829228473737853975929255344952929564616151440797364415020219463854343583895091601798060898572793125940771504691934472262609298961744008056244023076905774790016392150594679821053387264133667772702630826445343505311043569925575228719615848027116147017214335677928781543794330357688537402811012189848075020143964265981649886339548005685415890093080850565861362248127383530771336585902740401876933308470935949779242962435299498445708329991751024109154315854473116977580837409138393840156201083411963082323936944529903853604852630205025112404992803822875927970209958368355695536134632717478987008799039674096965576293914888490591213144501576746206085824660977300180725548472803110969112831640618333693884020658449151441290673041671022987327161675276427161046751049569285195631195925159348744492716043040621883032683427141301687793512657543333635412539532377729432861388595953354516039085278099072933511984501553881035281968232562502319038599560112047827160603402437715481914736754494840159745103098275574366441614488011079659281985969857623512084466615069124432500131639553073281363124083783963495615051901093793716946368235396516848250438732018791229317634018403595540675287409417121746884503294707506472038101892705430398946020723620790526797538527524742979093615717418728918521265104552836304667970984694309366765048127018160598923273282737361253997503176562571768162008759588671112432749666651023697954210332298426844270267530858628896337919958531208704296657119168032540826493392055341800329112085224280670352246556353510226281377500745902894494951483273507318588883701578275503277765778214767863155369623508857828575799305907376571382118793954908530037585692132121885819530880809092048651304748213144750635796211401811903451393036939165403525216060313355265290343527178825484828334238832354482428966398965025943729534929923544243036777931769434052151794884850845044225392449435541976030311318874637449231173909897411996967648571732100147274531274032543403027331453143859967751138555864131054393585557555345591943193520124611050888531200967392347668094532204078525875134469345610671597080258301571560220429368616207628912244113615777241689361381006109173995137453677905638989646628435695824149780774401874777429672136752141338797090795671081250723982822494178153288052056875843995442413881922473088187764017938564683464442696166950361096540663879678348793804308066016418502308501768653400953292902737653497258263494644519248057270800194703853019147192093832813563733662428628319447548264856254905021706988875007286130500817510729173233073595837560460330800968244794369760188795878994690152600297257393138028032915645213663689724783655487026516194552575914994614501940765933124581838182339805812238683123444904828190354499267930851355091345913583536263645403030700756895315819361499010305085835157299057305738145545574126780535691968091756221694270482010760538525559239513347279344593857768010291572181686356619397589054405868722925900195614365207307450703851538011149008942772603894048822859468013646703612103950369105246073625272880783159718566715498315525724810599698872107906586027286126247308397122605795175150377697875870429293324062361853713683962244651599991000412041990241152097257000568747140791588763528638563534573736713113992529999243266889511494944315460985370073150419746121517760877959381429766755703899856303509768598447880865330603122000161401681617836994632208807768509413257213147334333657955774509320435528936582687653045155459088285912167808262015007838610164686352980098497530317003537250777056412032977348169202063018935185865961952125330526768245138885288001484075632609481456151407948084526174083313542099588175730708834562894114930707086666150923382867974366727796595327163681149384356303046326181965251646269346475910551645700480271342369920119769317011780628860891598372914244021504440369270685087074754292378218022215282816645188326477971291291451929616450849291523441834565472492194323443411490493989998925204692422071432430612925261911033734250052046836449567477326800502921257062679495592767602367857535588618892002378480444828027474091974073381495022573040231994028692250108264950849902162328949035864349359940348708745565337638159392109476103162925616842797883049409272168084604202379449624400960263560856120543941864381544396164347415294811107196900473063639458933137992920510668454558079020147074257550454063349462276148894479002044913419295867487004004020158443185330357819044484358557623859911934329088074079765925355848878782537505656822551962431626057836896804233229590827737958312877746070511555910007546312960483848852647830762242892224350734745248715528940321043282533998171110497178143932151286337394754304704579737123852150033288492502783573909108525895919720634866363546298045639584757289823707621409085571306366680976351685413606107913573068406298904528939492864415678045927873815611541064229920315668465452382422953926315001365114151857200428545335618587432275307767167386677278191738029560951511581194875485717582187254659317267378294894634813802329384716600866800140362051541261368705028986425796009591768037674132235448666412105693834626885469485192676561417215828341698211438746849372334616336176734556643612444581998660319620184574986003650780257424795611375110810282237336092367885508353437043738505027816202695247005166348704188941697153390651586906114472553749145078191669688910025642026203080451563879036898502258091341105163763150643178147308887458459388758436490571268239434163892996817411347343049416087577743949463913437800331769824354526287730047570049332859734130630533496361696184927362761171865333290440786625349171077604386013792639893010882337464857442544703603362594199191955916266039004856156027694880820872754220708079551699681895643858919313847049345820584279360842377466963532168659965842126373766017502923785636570318698125809450159959003916803617199790444949457175924020515235104678289161981302715252555198002804437651452183161592304984755210580871980432187316340089832643431917665586673654371128366564621655933267123990836284928579052744082465336185527545929718705853038603782830782378593731186882464619666362515608975913455928545053384230316673964289562947685633682932363948197025134064436914474029242006827762026349150578341346938839844800869500748848404222658892864021448959082144611688013697172511862360804769534393148057203093136932912641857881911579839658159818528049275344348873510099819443409693993163113642720730863463290569719780113395859420809787609840611504261131405360542838109378646984610345609423604031049683233353210929306331432102996082701141885780976038796923639339891817775150207262952181323057680101544067304706383150510019327280190761417183605063082235240120801351465534881931994203635208424330920821852345852618700785545027123508771451191430934708635975443014029591606851489576344325151960001062596931541259079921189115823580104554510609924695702608438085135882791226519710617490087095862889349670425594768390444899608621259619530150475185300787796273652259849589716703351540797869910498194682502486665222360766857019474071644327689000112618462402232491118863520099811788692967445122618815586077137544959768937236950044219095655597047213898691982367246280397939504438641756455765327557819159968275864251425237873020996733153988471557308500398826529174873173013000586299922816855052704474108988048794252975795205943494802179838487139346928285195075952626397184793546780720499209681651710311191961738920889801747600958592255007596216444942774749917079872104274462048399776962999795116505678805097331479983464822646461569147511433243059302645202335981404618705977817972960052002161406879049145426126232765893461416010202251826025983307461026179573302029872050658541123722327403618950957495306971018025856045794264222887479740871357816069593092614824359794955679439810536289712192769513929552553637046387607532708736660990531678557958812203880688654095426534498306825335679484908561011215090998801271215603095920211723203446546438535527391937053988234005982651106925462795946923235605878383274408349032754412281057401553508240478161175539798250158662798579143265455368014310622945497674389452493110286458460327421885620819668355047340021312326787503617202700241334706335237631993412062162459408178914675968397836066921636826101694050009048877984641570061142645014023448404043393069932626165214640649048398912801022222893931834782166204952657415999241532744030685153229277401153750711126561549085204867983282041186396742733953043118788869834523971558232064953101176546259755819709218198744545299162269108199017842061764879939367100229078775217435644993429799054819610961187707770102150279657884737117419163018291361036498869939687619871149489107969768767392359616601578047133132777103113700098376722443763381333210237399353993040535318796278915336171137587331908808941931669205730222948992545520354407778142006901404400039195326088581326584518284334503703029633262322730440695584123052483510218838357133573757527025404719340849645010433831032120152621397712815662361993793214348779749121903010025292035435121045874653482848165549754407297014810864633982391075843194920794798886494896362528281911897494007302595631501013698363646487380654730683249584142001251918989651242407489928069067396650111197841301633940911351082254549925722088247252961348325477920606311712774968942538063464562923591748409416706395779698116577335379302446582392125086133216647084912378655017182777276215376089501647378547205271267337827125284207288193647011164369246628518101736270254610127355897406030878918585071193672975448508212699465334421251340910304319058982793065359035521619998983301864071924353721658890798436415695324406403577072694179085515758939122382464999046970520580714642657924173409634250333503214627994107831314194051498522737557181240994428204116736800766470841612821956756504456871941380778533062720323900115938049194273923036098961127078193176389923506184672589630413284012549970262997701297521984744559089212029437459188463180558590153293572919737892454011541312798723526064837646166274370289695119194402141883385698695070324961665497745368337323566607616863866037954775179352950587951462239447359743300632715983722596230282787195432077735888425899290678210649363455259200359122027135414194615645246815064208486946584766307429321372137782840573803481887491576603684887696495298420847742288146511459538771600142170972910376956080380058376518276776540933191300475698373388394599083748945769805287364377132442867658060262312787402027018954777104434741934517105190488561912552195465727137792487456905989651733074447831407975167872344723288170175304054867630571111891193144048798388281219045902177522311258386347958368167785394034898553099840064650808037789492829932973510540050060794792668921225736251878025742156041132620625457274436639226398231265622391657147293356054096418459999167775889850425891035576347647630334521653761329575457379046373018396325648220112384275462297320124852195675034315554773583433672343921667690708795119508351664821973536174092717878118883136224995936475768979288824003691582799735237274773664668571754652774106020808484665887600104701285859286213534640661423425178861087582391820883619401322386483694448028148370269379714269117629093368354748634749129268643562484650925581662780237760511598084904020136626622248914468033872783489792231747616009583168399797768668606608082054935568060870660930323730740918370705179050177624956222153701194598246081254351048569047899881356105160572421814649506639994781986781470510045860290227664691528851786320927797037255176777160237817380979883106735775946422714784204098906159029983021038690542031692987849209671813136826432340455494215485320066026671595601686276524461448373996221143970796137979061932555289013308773502797951632207831609577912728069862224501120713114391191067083379195574806301207938093619687362853133803688334431143814694302127019296247783902649494365464716616130270599775160741338002030860092053730121316984677626402850264095197102655281198555041642149992097234525141373944202562209009150929883081638651403252169643441619014511419353373729496563584368517013718222805522132237805750501197806700077651636487179828109356028951690837836600669198280353154850481943119311120467737395696355997611297619823408337849665501110106854923131776462822734328588727241860668500549793251729186614579847107720869618334452111890526540714265532412570055982597908535637052238904297489137075249572695343444678549726591286666330412205726213973057289212353360877090724276606860411702699089869248706622235934628869517923904860606168127912894005539243500547906271975683452110225195011151381483022084038839197837431349645288703438365223899179009864634035839061545951815653917942811300660628266620390872964444548109944306418344883582582636206028424275855393611993302802703020047627857133213417367471290792457198837030291826119529230348341370156156510626792249209948906330814022388063548545580804731602691729935302341011344813083547051586894853298526582328891152145586762316580655119769769324898490424942905808220527784741316541350429461355576858391158429449891876274876810200543791050965138398368563389249090812745021501738905123281361316946449582003311420130420054064834441569543114632769964451533681702111580626295949823016999662370408300036576891378313983402490458594769565644140873607884877492829907951813856939976638288638737623578837525968300988008811528221509237851151399367446535893982276162037241664424597654372852953362675346634087721657354705374223979951931983425693934086578077342505808205490608678804415859024665846365508392926975344487187830674859590985589823010833916703087786507540457394180642986978403815383362017140716613577403982535781029537999199362743242377392579404286271176148093156213595448325072213924573514564529228010518457500009906854632127636913222781576250935582791672458201123788645254350741117430208562978420812263264324137460075320616785914185703062246530288969909619379756552793914104995303287301875905536052033358025057069506759915550456182145998613597562857870322882463616506071598264292542844704705057113000903412255730090773200004900749946329824549664237174992890074624949307919780009768096227493208021205713619370234600478179253863647836461141252516609455641304899305826745515700931674376687942858897546704240168162485679092629591440146117710155596676579353415869401430140219675365516022387523628334764352931248753563567248175343149605484025348551610869944452250238822578461198518315422600807630401642307329566973128077158576996246743292215261642523396813588864483522402770195631821225004317337571105598579646137411115806311346989303515350537012439603342629436906930344116581626273915601586380854012536497662884130259444804987268177715744526807734696758591704069796276603986886507135290921657000273076807514159245237740511402036890956741016091472494852979505101475864320967599026387710234951456582050796069673226562729020558071006903341418460931343450707478613375428280455863828237960796453423624868276479203109867838123475014571307891088721030031687970501725393174663396332622362354618650757376640473161694913559740754054326165569935948757488391712340285184461649315810992206001700518534879698124802333622031604698311053765308693202645822498843427506321793479478661689201514294778156701195768545778415471100361753269035442148566146072810956942645548484134250653243892875274398548003167470285736311130455735448453599280927917896022045239276169384216462596471849605378817725807285598054784059748505366310131809969158197976952496986247186639266998407231496967300458638310306504464498253217609354654426694354861206988643888676618900206724895215399527047121562912998682616597675881108623169131696188152524859844465361731061103283824922870713966422688609508885944404380753245316185688324238999158801531126237194031257404574527693217948117115669669826404037386872376363201828585788368028772678093647638527388086370867075646324868457941693357692351820549340633560849283202628532079469317931967991610092991458530473904875648384001131831559952733728547663194433036621551110412824095850167659153537252088621336870271003435443434538346300703067509196882898515896254180356524959248779898236557827753906349133018603485507000616003442688974317432168492527724718391023370470122225988938571703899742024606078667409223584232548909714851550042722566430512215842390489041811726424343817729190871557101452051442246334388544285650331271270745689105186914338926086303455445700999769691270523073644133377696955568083268094406226546855436801080299628199340212084831641913886535238569608779192166228662798921505873273990196915973668818406725251209989660822099769860635457744963641197059040199282500724435556569079986153930654192895620654786866392515857785189338594722923668312252955157903621928568669034281673586280727931799463773815265990141133732492932141411030876772567636804520315602359099663230116331285582704998036062328352679321790159439671912125102710450942259330463100189712989436989180831748549155413979512287088752348998759335192857451619144435539320617020518407936199350395064634640414974269485807904098428043121594466217884255725568574272494454882385902951831868416630108564133968687243681859298730288164701417338833367434158251684407924402272112716144749480708563116008450964238749804197079927043735376638654932579245608074449905002508895890081262260742174821711380451767033655884054564719776408208174026801008302246297787455614123022755159336533477113230888322074794852641252469397142388048315166312739255651483331246534827496163416989832138068464346509358771995707874897298742371599866190283440380763136907981234026529741278675446804504709055764575382284328393623594935474248859608624623597627460708644757343122395495689773133962869672726838179003615500082166419974053499856751943874713568925760094336216508476818117825510600867188852506556848381658774858655425003153185727349943788610193580333715094758079912781617364269146222533384284256448625745189687637043031096997362132833586861750611874208587667586680533215434041408433641204226446488065336994782602587777991250481836811983586220909888410018295240375566917811492552393866232192170629470511829361365243763805414822335072083295101995350847541599456142742156192818682226188852230298148427726235139340862106952044117338284808786648490736134485931370741529951817241648068882740719971633694269364565133833013825272877621047793371197716600914660556677439932261176354535031664886470299199693922713998495260365936564249573274911902841609440883190707589382235759416398538252726366571034906421810300304599260637128949373271841383810395904472907510499944080831257045327523889645119188095453842464013558139188008785103986976994670822606038448693181865565171744042983676507920105739042845994375875087838238182157258907514609312806397254185856032739524387641132317691426621183243501376985626550348678881202892914443583566265265991203995028719035113407383538540158124275509952791439133975080036109657718705845462396700027123489430072946632285559921355664682914760971670340843605147886816489902956791683736533219031330493021263319255118200642618375602390245241592621570159200322489381548536081179068876282894445434984610767636064856423018273920659814320356542354804640944312073897387954809227216695821669481197496578746473853344952380463294679802920237706893609832928157613710209543598317661894292157764798475678122723286885097554675707010997637885349274729340263766303272579863811716199715336149545096938540161042959063178884830487401299162823374751879640176444524040552214595509641552761015775638178105952467617408671322057027212011184373544114630245771552452563042913160747883583485253138157038555631594643617221176042281828590771390744050812391921350488918778537491416581541173288533664091977325107756701792542536756569608356219534113126885445304266865696896099172653328148793339356314066588769951082039715735987796408554990459444933063303887910152646367785220825290196729532891427619239934402152869398765989090995271255596045950707789431950935658603350329676619542821110986039878438947928465794823060944629996125382678541042678586950055018788284653675273854007267619459551933801529559562729803743854998423555291294417161106188930205139437556997428714508474961957742265293765220043947255072894242193541299208083936631017881933277004542992346557797666260082490971828948617289761572415949025106512907520949992291929813424474058587485316474546200371871999409458775407845437873639352195693470576312015589460774423415933229256406771624119864994154641960607349507302102277886735263143580336207421928979576356127590627010932286239998267901210672414003153134316051997646744564926517066692098226960191357638072165910481083106252514345562671904053942005453760076608503364718220717820263983603391647250916454026643122493644726512373548743532597611268535318265311377558648865364923542475662433498834717439083799691966873636124157379283847715869016639090676859349296963438833250769997153820775285960756403089855873658082335573494434415959098053739597334744590401846313888173490844685422294851861651190796879640069914368861865651143400996558042829007970991711642197867299021291770549212924036541137347987593135394304430503092040456425168779963865195880122905457204168227814868622107857505529377670207302505342251423423154271763950461215807534027740719873563252749135541964551429718130396311220633662243837893216447446932385184203266275189204039208862841138071058715721654299371927017616666172163900898082005766906130883798317932779573488699281898205402152845682040081550031650409075473856369335922356720875902937121723992569768364674775147285017010877971913839970465898143574099729565119376041030434706696086084341040387751188860310287197462581986524282735009789222540810412675716557873831865587833791750323903472222785137777468572519817241947675952471928516265494264919857854040393994443162037245577560265546342263272907549470353659310211018826590193700356711682859162887983784012063793961651562628263187838624499409891077038683418683676960688898253922176226670043104195788617986723231116296398859704798919170477639095821166970669041404040760305406684661501092404829456788551792364891160976915891776767389363006388494633110437519403078092113053706657134565171374801454425089754392167041769144952983955577190975528991954391751638746283943665697027710957339743834813145984373445074884651209005309555797641418150610677912953056696502035335153158749941333609441671965703698750938581161680299033886389033479802290637529994276626797568082697341193317588749837086816530888869314786371862987052852775356412053844407997746967649624633201715809281630781515310234495977171499547143302255612090614784678871097236429107075792431462234906672993513976030879472101068669471590603155388277600924444091536780196220008789961009341284670348109928163206093056658909434049213660491718420511261658215219438606329331168728063320851358544896834790663732050316708424723018855389452559072523597042449219039292425914165835722144982944919316370745763161242862628678777001827002507784024043349707435800820827560733037179393770259803948027659670808727663161098485897467492694281660655371462491791575877888969830351543946893226850172110266065517997992702257766452121454517944210887193718082055472115654137363115642929013805213934950828689014320137951425119644772351572590028935501685332586683429098143751207268004469248098200713821240727402718604142066151095779192305522263547852059452217651468156299394774453014987950110917420582445825441844073781846164701742595108196554126180638323286845785097043397183069677553283870246875792381294332650913316118479756280599664060971913689537812506753496431979807229243308817342871879744411762933509581261054064007756804589914136814605698829322675799714606995930481345565831461949994691947780178581170240019780829384334803153623123150206361414885481215418729652040612728132733999672346045049568833215534242410007233825077767645999209128191561946642652325516886472097777026436074368759491576110219125004975911146791139332459589449243031259533220899786842155433162351490118580404606558904058941244184350171993306089247848329175169374959074547296763803756116455774250064198966661106815278339570606402002219252679585414356653962288572199066948814653676045750020878806169739928454820160213021071635486486731052074929691033726517299881145459957209303548987023628147520704867811220032438987731300766100938798153606147608552461679796664892748586405653229660902544957089779118492543788760206836299535746933714638753425653745928952324852593008199894762291108592877111923841015915878743686421585285376285143971741199185951233015046433179926920373182001226174648749589751381026551522463967248898581941809624229583001837430205141622212920958049573184135013169841268461037609015699828729739341075983973494983311720265205523827963241341653416817976748077840445660085460560926704238764050231769775703784274433627660371059133181245757572031559584851725494909164308752592781979593751371527408738458598273932625415491722371159104182556292440125303501111870065198268055758296214354014752370182632412976646821185713938111943794543464636186568842066041628364767468795229672357781982156754458218801272888233068394181006721304577535240350092859022267201951899942703887862811829291922997782578404370456564736929653682903393377939887302154288966670111354682806775875953981824151017188661556513957516758735582858076640919206180797392878136072644320649386238874154100692564929233788937307947006736255114364548987471737863245076994884850732107675649685868778179889617800923897440480154786199902945402933501151236102428097338265088118090442341930841355641756136958869300123372092481197491834079078879217457641261364411839301532011063942680576352175666899087898493392540878785516117728745078673864242095336028510308835845738886129767269395301850641698274022181302243153228570812194829685344525081689445190021778835123862500391734105628532372569079029456082223229535791115389815267199169706006459864495219593605132259051260120357252323407225471602627282734599348175327993536510552669917496430270540532595121837600644961431208439463506461395321183452792712142756021971498263006138713658238446308255719447801179776810426945993672018708478026542561118268323426279764008501179581096718378651165268078871799862275714691947775252594803407474282607611292975543411558457419280942123671458285772976790175699371597691002222008897221115181516686461855665285057964793108234429617977942397795797185790229854871275723147642069011854914589365962860373382136334264203957594903865365442451303731570710876742700200548220831981692536488503441306869614606188690164335452538060412364984647599694779862347227340871743925825841308570086181256847700859160095004301074882831903194830760585581607708696122016779636967515522897477321513209190942392357042308144919294605105329641658982964484344984715958621824062717323507942670321631908972380044839405569128012532179388705786015410213328684491409253851787401396172841236598266226187279949391301763898544267075489351683731493892341676657794141309724500274176933817931584915426045603211187363441647745080334082566928652192136925602519536718934384824337071556998193549789080782865768814005275538951430798155861726569127360979734825746316980722003335355661458021390273512008037273604141330045254089367650912493913754465313370556541567640711266868690178121913271434221833981528897408554785273528039367229970590621402074931354507761222835394312770838686519548493946253390136282213636381517445280500676977048370203131522507720977983566154670457021352866788221644168160394883189864720505340295033573302761574046251497897141976062964220698963267863355648226909452315661802015192896834321749674319789891628125927757507498326230116759289151630815551297773863005972876765810283130553544004008015108109016474952419373164894698833494717249744237330245738103353705663621841245331475568243747085086795305254504893590866904840255885166932328053424216117133872729094984279501906338831119324359071913784814278956103458079432340783278797602192928798391730995630289888054264647067751143399901622314109115060782103605869100610502941630473276668449830495371180530547047422919214027037366428201330919374813832481598576005021781246511062050813630743585016492916356807378440461243713207564551206576794639151344265150130940312528732749067319405310163406992993242279776849031452089109974014020358593275609252383699336029250579621823169073743366067023226960036092440347503177297391902030015668469472332444948295285835358249255725281265822858954583697040956430247611145787556647072267014776611897338632002528089032699682976249777810676975421189441384738593646987077754322916237196990565828593242235704520943033102342380004770614586770014692537509362390911013872981960221530370362159760681768719525326208947891172080292048457128302204570383137840845278795968224412617393270961169174407432739420440726097575182038743125451152201439492372669198339185965317566125318472787557846351976733828924466876830186556813132545222171960695248106676232744616699791917916402928766399246392126384204379450544154785627675475113958529563152659933976627836859892818541992370498561478406344842331839388077961014885572800581905453673061321845250194700267256476994520951419424637323573879058195881113837823572316933492740346496532432219928329735391098108904206474760438291353784290452253158576424471534957518060599236181641309362120640030239296132655285321505533991989835741353696553530438203264430438844764180315736742491398340596743813652491127965173913292929226417635551260987239284851660161825736846276360064830795932250232129661129430757876013759284940517320018772056167799763760615158955524115928540964457322003675487095027160399703284790068295384385238916100482517644730456878137339081812224668594644561637940191533079259832173204735202619072889819290613634185431036512336028251051076254487004088902416923028282728513156847517527535590316330919409825182787512445724460257186688598248759878887321318041566698305016736956754007288801917669965316451998888252180745987473786062671174251621276352450805607656792754494334268245568178480923270724255168215192577208186096477743668446783987823775074785606596765159994755374071711867932937492536711645133991408471299602977842087261709599791770888224341897587466723206061476356509169616688009133760875605558605670957634234250776295568220966998838370567356789835587761865336444756917538472731018382248265042436992982340490419841759731225745802823375856647115914837192723982587772316628931309699658238885635199300024313599940029448094065789105150165840641093689474254020607875229208242561394566847022953960740955276810548387907604098524367890968188997053150319937508155708958740034342016936320721692446076146593632878030678258718960160991563050319782641262661890362494584145834802089762333441371054233679149075670874716382814305236540810775894810075973385985231782338217159011813549143545455288283729413520384546138320872099078461016143246495124653293711306407615568848530152030711996578131874816269829834356760525227940101892985140765909058487427985889964114528121613539557084561432404307253438684317484288235951022827865337878453455538210824639082309493992668371339599938739671600064728735304362370642071023305378354922428551238036867716483860651125052816622583723100553382786506719216566833416002959896762082104858463730077962556008372875243714902578342567137419813977192434284036021255082209939119511443851335572762472771229065089380143008205617237757393411535666547677858481087777941466276195801859825494960596251134103404640073401812394368494055383723598685276813547612617992817231280832153773351064014690041108331311244037032859886549654253727727806979855716648492643776743872370536548580839409342197557254134582076856891652811214135448621165269488644628652260105632760152208809796854332638460467278453404702158934049075341908700780394237268908114336497131020131652930307820282998484783496702795827919847909690156290363272036480223253504338405716565640227827381287922857390870231951418555189921469763878081694633774790888561807097692860661588022139804258197976950453346402741976667316985730660143850144760774437861098937363333782621464881654795630878158694833447694415324073247244395091217519792633058110725577691243472822061356718165861114369593903276636887395388351291517260349030329383620932684299990522235248027646678641889735414385585383986801638610570982293934732906979668525794464242627488994769449119257769865341881127906507046193859744015716033651753323951926379550269315106291021857635472308224059947431087098021639887018689785765821034508382446359167912100232800630232036225835919747456375024811041974289369386009947275917802453406439595145387754080540952849280797485381765353427657966018383568179900910329910697777540382383024094719291494698961895380959391971542636774615401463829996759158928661291123283647940942112325520331931217062734377869741994297112228598423944058248643262175590516660625322189716305791299567442946622727212082628055821304738743247917027006020678802442897132087470099828576440817721517271595646925099856984590528836954442853745374310132603793883020017588683125223430576203573949067658817047925071497588621550001100057804057235411747956454822461197032738735028868849047965689929488761863088685113600448371289595930986040010370585700146531303611984017918458333784819065600272339556172823840724958215352723702835784316045044028409190593105146874441998754980654493372171422824975730403912875243448261632145041979329618461560853452319519030960114210621061216748398519281136077561787132070075813294081103115665662224132212294535186683047883445929704496555922653731027182759478025802363298246335808018646919382413979571640447543787272396331675599169592967769263120819571898542323828671597357651778804128111800673787175078224938550844240988811987820339702200822393222654609698286603255172098533823455044923584090200434644125637229035866295620400768013512284361935681461392800119284586111375017133601735035729271499574746133377978214060995328279718511590628665656847476942747629540897466555900702605308776265454235325233956875309704995983635749220361653673555333977463818124448864311403119018137419656806535119442817859545801626304556911775612385394230604320438823485844350044131357325469484550601338117443891164030056050754076043228632401667436027850758041286328882929297868285774287306617716792902506305435494896816257068373587477499396843208643981324652789750514370141837529216200377037787524476535727586619862155695085460756540590991906258254586767300691469151408518766492458358027064963481025264093327911644997541339544610901177866427047079466486661436969227692497603635098393409221253291432698010566989354415778677312431233171825790201170077657802456597260167350022875461002203173390774794789861258999693912727388359191218006100762109719582373060022773340290719932761257902575271122819108344187426593573456842848932500709011889010073596371104523760863590229019875903209779597755960309149808123047840403219749228957212513805356432088261925139777426722025546034505887118039601846698870405578926491292838386503210623921800459201948843952488447872985436912229771429163892960609935694376299701998518026272936733894448097324663128351994989624667471747023479017523720428443492308005416076328910746676668579003543018167708154746876109956022496604804224469002554338417123772101520189768989707524679980816621327460097341809502160841639771990436204611278589178004983159230842322782673015731549014674308732300725794421794293347402438344104505333038176357000825753986669421080664269423713686444931042730053389604424240100716387190873259906453964098021849967023817668136553543639221816781487589801055762873308926987211263863285626927666965356477213117832956030013521647338480074834857944279830466035069613917837889432285028471193103888748983967994397029095085491707523096049289764954196604848912933821057140589757412037576720869777811966530687328122134372837589672491662268218501727121810232086023794754165555288182569074982881574899274135808082031750438426531339601104735756350588411984813830169661454213427804377129505056004381915345153676936143518151995122449700636761107343897921683381058800584079285168002632638827997254184167241298937089708645603053064716228519288512591000049167882023892067185145372161768972986810296463540718668531564807391139291764351053054060347005021253017408620636929222792946371958540927470231108333887032688174195087677253179596274653068932341373190987873323224603037187605375408771430362904013757231706455663768836849462537770731321905205889963226207424045552598423668090501023818462445978887167458320843077330905168165412378923945099496484556319869909470341739516887333526196972716168426016679190367744189712793661260688469940395886364510906742885194248036768247158225227937896917928902328469603534407922848387346814434045423799648740391651114622801328589129177606391506003886608504846883981866842715923926591251814813448075361976236554965798370413823805149714023844003049122990457352673707646553552646256867147524586696432660730331769539152403544959476437650978262237321610860537116686281040336788997693727260913072639404039819027690121899174618319752177877930339894426962229773519494284740613360233812877156813145685178266434508571513940479244653374971694330133138092343846619904244484928608001192490891253652783112985891436151333158725503309742386895150973465112599277900539703476936831039090237963117502509196455098512850989042459431558800028411613550384874980885011131486922728596427610647394352765996767094166606913365484023382521195155615747266991928322174678584337735398246062751305486667762790362610997121138147810623772197499633996523946342570808010148289418869390517545696576635874197450709499987550647421225402177513871364898666509648902972522836281538022696633343540252383085055334311245570566631350049819109847714184071708806138716714207517787838392144316217623717107184663583685519200785935526075608932699675657815675414808306823458865358400266623292625570227998619122017630393974038553618183823753145084777159139470430478037180313647243744897722606680407876472672417224310949889143665274006146103315602276578510440152239519534461507786779979566020612756099708818859285161043960212416142827299361944842209641030790073380985125733307400113951059640359489611612745929632684054654478735915572378300610632664290110829546676291684158612154397421229229344094070460942131613535089456332997101755516193300083919772444710650839577639436009434538163835332842806748900151571531039662725440294276516570348206720172755938907950052780977914003797130043721849402941227757821481071730954251135884266564477037216164276540526209668799826015568453279092064034377129312909214275412303353738890420795073596195926875954807789279114771059110737621661098787187007287673325884163185832262276384629380188206415781612380577622220506022490754718804199065428524809219132146429949757959313355833050958930209117781830192312095096463760156269501211877662459163902176678072358175305509192912760143217954692492490452275356920879311179584077858777756068870238907877061923781028305627069376628801535982388130895214256647066244919888097374663383984904869123025213940422100745287017155422079017436640356060761952037787013813273578501233345353786293287507855205223699953622384618913190542198731666202374091142886146318667009382810978319629521448587276878336714299552857670006273350300751525709651152618677576545621621536312098039550031680964329761749592391329909749448283594478989881324086407516032748017062969807976803366469105713874385271718735207300302022315755890233482137772903264629075713308236340301541470237891763410226083317842316842064023365231287858652180029383097224970611174301369056745229732932054642643576167337573529786537068927854282804885449495534335400698413694803173312218974111277833390747967958585547231278141037550075265315288293809530060376263413721866867274126184327663559687407580823275906344388246864364379564823034334609210810605545435748896437797747539612170536292451840417889361354120604812800531484310684289872146656098337205053767569225621206657969484847464460615391154168714468339985993804167282016556104935790520156592499639017944773820068204784709096064840479408673065873320896496285165245319856107214907096341090141179720227959868794266211921477866008532061821744570334993640869023103214505445608326339721007965747051298326589255455723773355584470810364305953363263793066874004474581606528953940811915885078341298581477058222357671832429260829449511953965290194767111672535119641064949213323083241040080670500963588933542177729338455726778380748103188448916633376598164758922390328210321880071056285989808952206104223540316696718617209196302737741670423484579179891201748295737694935273311987518872985749301897539279665222879221802663193469105656829484601308251799060957119600698246541412231748296503648717308341669577634614088693057908263843382526100377341906562015501981979811075053332753810910231632772493238548112071362007970793882231357433741800550925374970006849957579810494321885148946295744832279718070827311771531176241106838208052333903693979837871033198169399297042438719303245976750985819350297306841288039572135585271752011851827798908362902880875881950853505328240565569385129985781683490358434946927146815832954668699146386511814527666574049071082484066881231327684919560194513654430776992558836278944514193354901817272501123130063442612643746065571555684046010576359090963900168912363840374845808613892172540507053178722861070617415704539381305774108868743427159753746093185528179111118156449420404447862676766878641277407653288189741468087419525622019670999199216534461012401538713258807206385541586440014285465200076727557542668550085113250310252522333358587304576912366077647571439709331604283390176598755223065808878058292846213466468228054221327964343882908191449439934442706059048759827157911440462173829455877842577572363107082792973207438668910861170469988323726662834664707718999997692533977314776482695088018264428203897514970751019724110259568076255067803965862556639081819841945102972373855267789722692002191831932217239627886265725835372989338993309609599311883830026808682821761591458092824694253986553978170797175537397866452389864896022452202808205923678983205173264052908388050830345058426776341931720839259930680073247058649320060619550137460101963676553848474477260285193225725141231011442486046437622365258408386751498513164953508765838439593800452309125924314525003747188255221429459955447358411144484947231873488028248596309575532264968555890910475782353943758115606315452575687164540832478594055016806156800475832460192047350057987809449904799572216036254496709519156910756324940008347951440096448824169233109185161838809343709523269688216177321277818058733618823197308237751950074238064051080440210828646126350405525847031661741103901139917039203391832592950987797065340561037710347571655554171013675223281422662161212065664324494537441978963041791327700670368746440365674312305498216491969900586483695144772003526783622862272766563153471338969334619224819016668921941206406300296514283140548656425918542091686040959398016049565537320983572770663356612712914390452614537122677085005757604252792474431208942067653845258057268191891522007814407395742040930052853884409310655844104252368189406924353923562589803640027662984003993743617302528349626530608428260728935646052602930795978117687177952658613008628581000397583447056986825947063012103446490058991385010292866671965832243552722940517575373078894897519176361567225244222003586370492849718180871309559421504331104602577308573357923402623620616716302581907329497553014305506292164828715656118387650537122699871341701808784224435976368323897024070686729714837111474829406452393976295805573487163609077836649760255401950476329516350429256516947955183275808859712949854031240615998887475655575972759419726395411504706796318082417365114390148309063191033890499118112820816668473365759217511485621964493452254827590679420310996502684198547708221719933779142539738711523069334849694220290552090714948430037069101726144502152106018494672265787166436847562459673354155243951434281251793767313375002031602588010740076894046513567329874646019764514540075831449002750160311649625343373848454931822486544108555584334411607120925744478678360831439739530380866977603628253950992235785693865719252790741082328261822254815970356576766807059941978143202008656064957833786110146520785921481934534319635558211856163803385856675040760336088429198837256663247660088430437571465666234883169669001488868764352303003171702812605455500551810821235120799871472862414192425995818075135041200257177316548452715525125951496712966534363594570995291252030036690733441707801255882332160724408219567124982062622344427538560456831519352404998233658515882804148394719559691914722105831304843864331540422825929777486370328956620371161969662106154438474489635049730906128198770927867596416271517336003527673976047339384708540679392684071447645842662509754904499621666258481074708789307055526236709415914636593050751356337773890509881935525908137263163693469042905057774592551036863676333860881046530111718807735886978445007856688995923406836848018913342849767763290162063688876592512345782394963332829892811929596949119746945443978473635290709262161820460607449031216469838448498609810804737957150214095483968040358041491654730809983579355464432552204899783493549138253912267236670226265800510911674990977310470159520569502954439555405806339066900451443509910336435580620428929321595724268736055213320413439209060807742115001082530331125304842775678351873772244762176786335244251533601258515718167824665867978026665932736070175088579427102139381544691759714383633315611263364926497266716635526694869262201782020397314265304226021882601920451572930499383312874419845166936612590649271744725585505048295807032394505762535456655000280102589737302118471342126657588352720137698704148065730558771407259154460024082180619685995754724655415754377273784009276740625887216222574955450229574176054367785977137667541391601691626301147417188928881973816520033765954178187151673596586806417416342397332813545468777938320165918614587435818292641009424975476408820881249735371032261663324814382108499569477201604784751487155234229690008359104252710241224239974757786032528871626960125764938004385543657150152603780794673132965726131680452542494554321362742163063083493958045065671692978946923758333814183768869347177898746009197950618906616400363614842932534366834649022609073965964234726351029690512678307514610911627369136726209652526679181058785254901800569100365691374170586055441454139474996481516600509827481971743888029985769378210791085809152723879594794580731543967686064920608532645421598903577263336018251099533364356880173981505313083887879003756259230216256246257674245817606229398171956736637246420051827761819025411638094356894173161110421874916925155660168786910033293245727821402557914599715232613741169759711243565443863067030620860529788108496540167193523233185883448516445366988993062812693418245693962440374660692815916345409734216326239029751376098441681188818134133265723486835919557770109806010414160083622411101407089033418580745072260415088934677814328117304279594381145930374888172537026256628223837829380367691532219303362723867786287402612940224770439398561457036568352863044107790048571315351713704535827763616115596313389033761729163131122412432945184845786032492907161006652130040156179168500114660050866905752654209856414752606613530555510238836052736017331455415651533473689163980896632263511210361273935404953610564605335375519906922920008986985504426901380490468014622980702702474120248236760738169353773209028249474316979297406718664562555999998895409105950539944737347629346187786226320820446094332788874179688350819646305131014590773202213517762154202716340887566754698648988577386078672266635604630820800427111795051369527202107954326012813943653788576442932499038595245364357324869973804378293895734510021698938512836901649010448757908071397483457228422873038355424976578599448803336485258109043061053710812202631633008958416049096802929020496117217043118217730822819304820752225619257317777479280585471273195967325321022590375478614523517347235480289312871033773838366393121673318072794513167342398551976922925364753836987850516728850434866443706955467100880226838597663278952976490989496759741794743074637581029026018831516627268039510286172692543950329795863589007583722116680657474719778671227458856416113975050386558608813913897489899810160445045860109887671225466653151944757994969992538911149405785137306005416091864470645465038330459062559246808260199829954450448626841103067850497818456276710464375640552497792231943320034640314688515622660548498001248543215404993984805432310629399750887492751333860898454719825786897121731076723160986747327477081959536531768043916688081327464992993803398949443644609806214217707238356644957475011501521822325356357570308287487729253024704804977152606884150630488587636063253484123119220013960681803900612877424089078914439691578064771851450692484768274444316591840002453037576447954547504427808011760740379486584767224148481940698674398483485499960712104631128047675249988351211883180439727548022248358404939751744266347306398943402525653700309234204160463401437462820094406463776210341633835470655396783905469359568108200811313468613397168856208833871475792119232229389585993497448495879213359681908625950978336596189507572275410514514504759597422244380091783729007886658963421590535142767890057830960267059112419649759355498232879924901136327681100411774951853958920853996071396516523461828631080804990928676583460375741376168831112130143848728305803126863913426816721744236657076037449756361121597946290557277998329989942746012490877672703771212107684683212535652240859593335707534852037012945581667376621971026648631484027922875559855141257275904553168449350394626590060192014862486562823234662739471393515592647221373877471086397526635766090725249054110937424771693179219111881216891952511669553766906410892667567434466109994213959318760583345787071569826994217574730530340092030021858663104480746985096909410122180208164808148007055497867801015699618891307809152023563871968681728375676519866295247803260637205078980596480886879692762114874820793451252895820641392455625192931860949167672262137748102890005048237252758446992861433074398700292957780650514831327727249965758580536087304682941419762190665587051606336280811261769690177496868886501370092595603722355374705289828016370030257272014085253515023673468679930670417017949006290839305518862949521912032620134696192984379717032865098847913554198648478339948463181341214290975240952017912622717086896773498501019130791981396445512160050017160253372517201841920220452980113016031287673902407539351973211726178331282398314812677798074344098776898209562316552512605897373495155762534147818514340737526153722810067891343080307285689528388838951888498827023425176478641980752582797235997927870832481691675123325920513230334244654570004878244693394878174382590337546010935620878561905256366981386504138505916013295688330454928603629949955123023587128256960078855309364497103565003088966390581049243230855548459180566719201205967719476099586673109220377268916384674497914625946511501479783402893299093390294139673225184942918191885469023851587041901409117421513824492315715289343010350503220967417126285618626311477657267315079767702918858181639776930013683305852364640767256668940457816792995014930105545813109154496529051356454737980985687081321200231709708104855000909526096869289716132503729091632822937708905969913938624777572237185913653289557034784661827830401986042693383785414176365355631648045515166751690015295892680717862120172962381307141730011474400138128889384015442800974343023144216046912386038574990909857611902890219576390683341729141089633666390242335635086702872719965179574942291458381294654800516685481221216082448108096904201586889963041742065671649530320056995708206332323780874608980798815176090285776101065754904193507147734578770031564006257699708323227689184509868205247128572664254072571455639509458883252986918144854794715752708909775480095762583518341417330207150107379217938262132234521073010647901482080863249108295369291939971438518207906835049056182213469288043929793473517459817504296938931873271495375872652397712172849385852165699331741600074483215672588907306628698625040534618859412685965463082489963438308372000556493460794668595290275423180842548593888789255878046704288382844057215308635787477144265008468603721446334807993785428958552914518817455392715321317755597169400090125576690447129217507680297976558357064405580184392233374402257870236172761168086458176293367452441179937508395701565970474032924383545359072899675448141443979398941967828120506088556339444580015621358026882552984010124955905237139269542646852836770973099758124507175224012606856162436186019254331988280939580023845452683911218128384038915243140488159564859995670391732133372905655326678805567604473280567280567710522130609775863135071361385401895391571683506684021632362934720762098410930930330542537749965478621620791638403361572476836454978788665716800541449438767145194158178692370771785902649871875783405830789439855921618392596398965141645484044068086346352452107245291806348918435517384159814830214765690356585474845474455892702405899582483520799136413238907414036156488881782154667222886889029687774546335210390887968458553485173322196870875207042353478533957449730743104001571115980920336599889675708809662277694946798612106076512591134768381478643882360577323748399301080694857445586785687592753696077176892590696666098840371040074052484506587686509782032080821865367397589729086640502327453037835831224859831704535832564474820279932046611580842361710272519371165937765749349338308161305025118483974782590872207724235046743507429429044312691219221935579541748279064721290963930776470428898811254525834191784916604432169230140912127979983730776014892063481217514058372422827276414860350867250796724053861866766115757887332911792233744478024755445930717582917441869590150755789752522471877657823623802735993571204469227002731049158236410777779595907425946178191248873500180422252913465793892504506564961629749470005362422616399313624109312197639049609351010679314881216832921683724203113865637695239795638708304116487908733238138897143780884927038494036486629414427565262188048033874681960332257655703919468515747296943183230043139828301816396867983137181952730052456710780059497473380239991617072694546862793795741765670225923869960759031667648712021553331834150141100865618687846885764192389740490553887733818158371357054718306645765353132522931113562362139895955444732125218996059863090343670982643879610187297933762737677735039355672075551531643566315257232375947319555322752176069802078042400844552983914804686861750274964336811868391219706645028649924127742342986459293500647240773895085821400325860999775125067875629793277637255999558002530349691095853075211571674474354566881751854295874053811445021089605758363563421987176670301311747159725917773280482153472372364003297065234946245881656450159816565779793498584792649304388951827063360417225467541609855994578966644333430496234197572091008483893412781990255347201140914670999995014798701095958146500870084527839055683458864884555621217547162747038432718773408395690649022889894842703119595340089818927680993142552590641569709202055789136690731630633236869484798360616104425209593394402591623660141160513918841396923557732287183379643525959415252896855994984616019694444487399910066811364074126417845849168242012226555561257544265190897362849527260164790609152176136352795537749107035924192378755557895738862113036280594347318668702664946578534213057880521092783418850168313237540120549060745118369103991159239510159708384674956208198418558762383522354387805374757534610276678296131299702715682248835611672352381033155006958928730687710510558394570867053893110874424631786137170006812297360144809214654811969101356646564998476398549304439144603203136534986605287367637403757694879983517287923727998175659581938612749652747978825172770796221920182175165599929688478174206726405964756943112219700625919177900403266334936409910040134610953494077539424023938197356976175502000637229087425831674123062154148728300482640474729379257083891702607169418653462844464622240294953985073871671555376451811908692125508553749621398324137130146757214800192025949998073927958452434831581996392506226720412319212093517715724518944562638532681257572315456007443276571633732711799372220910203542178241262486314684692686890586282203091223737858478212704167900249281839290715460089892200035375895894172100145744206076598450911830039922463409959254223865956663564876618339891611602078267729276962959733372315261121698229928179559018784660227275633556483578726310976276873818978309843822150064778300474913314788552129139435494077507532108175201131846852468595813388122476799475079085356071374856237335645926033411021837118956451170615943335074295864902430670414883105457897348607944160100128750580819747786695902637371025533833405031176692149968488501011166409062074701609589662746617240405086740445184283345185070238450288474998548415847711338252235075695850265437614611822338863159042232531072889516017820893345809700123067563052580539680679943386583794480799393938330918327455354435377007909114804468504967330673734105649710933298610091883636083182393238147515841986639625852169232629925174874354651776476195719412351184357648768129141982327744569935423492154302544892745667224347717041023372301617417174475188093227879344626862064260329102397604774905017669389624217943800029835208830557720481559728260553100913061038164262020001132660235749531726048302289655951530738808518735510747504494858342293394614035557732199486622243383279857547141482108657134038005084743839345435389910670771387863767755596397964270968726124688857763194289893345071472420246492912281318633746278392113915096328924428145084101823324677486775696082536516517492876736785319439840146309779248705551077852926323074916116130322350125004441572967846513889708109888933800632805712820709739641896705405804383286351121853705990233091847201786052409823010901296322779091681376478231918144827067634848560386591083323133302336208859757420164146380521083667734387569214354452932861786441569679451868817486349693740688353632651371197809985839791714098391543262262265328254384828356826513300836728939140329585541861493295190774323182724854270181189745813926324096243283622511225596747164497305912996970116906323033508087757572692081454171393252069783093496077424511813387566694034496931423595000955302108182727086922990045572302622566487716080209505764462772913605778049805098523627482155172484131307373362635502934706048138642592517736346666170550576421475519427587683641070301927879189204854568097938501336913817140666869868570648792922350928479953811517866685701329480857614388537657891674269870685729022056557950475420101599024601751986566309545410189874802848317036761581300304419395567947485774697425864503675993903324262617576204348642288124789436391856941169576550500455067895092988717678122958663020002713381363389380054979129952349671754637037969326362917647365174970769632362019855446382254281885517315398005088901138250769600774860933223776663989216274344292597244307765842240986138471713478368637086365351645141175357427547417898426314896478956577080474052552309992944721192340732728461096869911870409785149248421325397809276585776880275627630380085737892358731898473748196586029013609885090289048070548763573500680136783685461153278297130546250843359957474013901810952754228179470905889467736705353004564244076604202425411733228691191724247037679215378060849221468201730605600598375932073807068414245585224618758273749475014375456201341706393093208450704918319901991192166417857926518840625146053449516087554046952783283528182665961738103655276096124447938167210270457126323425092352179753891966537853160621178467230908055091430909149046085302645717855851134169493757253997692958842282412786239548750250755066487694279711125021726965546627862421243335472382612696452380309781120086809652906092056231496677594172090497960790143560012491396144053059339834995704924311696680925497517937808530245275835114374026641992859398969030075374823047179355608931770175866843859563741843816270309063583623831451966589146257107610194168349641345986041720455632771547797415464741870844888301289030450455414602691323658080531071775442718467430422622853028848822492098221085828833628551796221033978549076301217471086143834224270043097753843858796865957085635574895999179871383597693521118744537699324142597185159092285528889235278407147110050856574165303582796992233975676725903906091810789512064982166718462109113924271862692079418095249148396286050931546801909579029917362345598109933487936750276980629883621498052744036111056450552818834644356980178659594369576547710538443782598110553953463284828242489602804336999103399752247952257405317530654127059643879635609489787718882777435774892565674701687219319237304305879588219379933643185719914760579422248890449956280617967983700814251784124705757369799642361614986268502098300341739353694547262796259178208770669024988501048458040193206609525545975121247315941579204804682369099895936258564647836831427380732172107048683808972549931073720069107925108326613137894649053814881845136256978491490370561446423977082615084924944124804525047668948601068574504725487601064011782809189347242819447642695933139052125196248789444648139794111116505880550726922966821910891090118065799476352153765085792304290127168961937031146040822246550836876226758044069778005726850186215316851491851924969100109274924349554127175968893159826500647416643627321022954759292290598622380306474047592619174592950957940627174081889472117053032209620350225334715827859547903045292344639761438714674047629638956432652381868674138537376954112775082606391337763325844136490376399539031831212456012076585281378264057402232389443787593041745993618360027605429673636093087953189040647094308112000467925639878641754684223049083448859138495449092024710238660626818244873747230322406611951986652039788726610031266345022138454739740226301056770235055287855962894220274064629634593265120150610622887497319799227987973650816867721739095615975775159575343970837894986605173657184254873966064796258435694695605789254548110939556515725014285101651477118570212196440730792302952256524990551757135122256581647697526985981783546170673562879591241727874537252753648510529200471281726297132984442618292931355965732545620352676691982882131899203684675388787822624812235081451061681398095680407570702743415841066631270015069094651870276840562436566534032172320506729376621887590749786148484717700970627891548174574732609792273122443885722174147828199225719153924129278190260273298475523677988863660211413198987948439936586019285986833949535314904354970921635418212028075107360522577419407613106432370854822614902721068389986727241497359871638966622296086839045377907117612999989393831658843921972046053196604639296819749456647959443352332421958550267597972148396506100870012440132898421878464802725363736680815429678375506767260177889859359164323613006898737184598786925958500305042276036865125253987357990834690417041610944195162292813427803100989938204264749491449195198789305593295067191263384930296310487201336351690943371515501209476835247637152739401650674777292299540151540815708351459875685663717566053812288853057794189043921887048966395797482554196498644768984224799323139450698356898846683493296491182182768173809177215699034244918747280037688219445980692566968268823148830973757723385836723461528528653847359746184825966644163475322613855648921587980401224139369943408178966227866652086768021450728366396490177149578491113342240363167667219830963594647356375200569543805991103109721189455631027839098094065731732585496071571003864896053628755966014240371405881942476659281650531400260900019441298336670995816139401761419233601703153390395176560143114647771243134306457728895363771611127593172278432626706517615561775184498458048135155504420351910058338786716121682476206550476938234166723942228235513606964421432381409516364136864517552081450666645152506060115538183603014397905558079594817398121713529650957151787197666599735439218491349749554942492891413212159994813215627857142766111854667337940746079007658551366664491087024306067258014351618833569530161457325882848786508536292270544365909901979073807514989177604029839299368719214017366034116962926274835432951696168284209459833016454867281426037213368913010459212352419626334585930849516139595555845131930932908280220500008081214310644501237054614570238776531326579170442180323366371029763881599081987035200767105006792154222374741141236222577881210211670957170155176562242076623205327851845302860709130038807856375443772332027369538791181277988053979305877091149182010342517690935693195313808548418113091985583367924216610080195697593916086741089585477746393877634076906097592815936013495509245405481379726438333163316895411041766955221684474206310837459273199169402993398170604334867749856192108590452404771248008117150562283539762713605582778235409417904263050502755199396142651681567594214989709925345141922525853682150341537871671774005947516708383205839024101032600685683261523025609149706518178757171631258816597867850290138704269174962577407284281875964398360428131145841550352640327462459439652240511163427505758502849417703719036419761725291891000617223108051724869548105133663733501062345153160328213291406308078770758993000415570243010008522933463469156780110175087935982381547985242148285229164156107528301484214762673169926077066399297361430426185190636148826859131139581404550776068047444414653404369608921668311518309749819455530926682068936326363481990705057301232063601074463580501399537357326285002511914697694049890457890452080382623422263523750548134340971157502048881533373563490803786901495184622238006375804458193829458039971367419163907142786271249319527337668511229765965573929394427524604657835656592589692475722826601334024493735699482247591488349346949669648159105755467466117806926045093052931572766188909372818008574130380081262884352668489847498590302702932169015308439021147108916737818859114463098277084472100136893743454271116637788888073630463832512708516605266563630241719443217337660271792133063536875429841553443043100713191470268364969804626240002418232843036828407547485348525152045598910955494336896557836492372973803607052663137669055887034044473365335603846678512814003695793857600131334416677760534194554534541107875621781802531653436891159775288172772611306912829207509613785772225588073889082589474205305048401086934708804026296868506419022266298891254742298560608064934987472398265879346580860158241959468601276077566774418063475478283828658625506623518820587808161473525089571256676381671370694085371510134605551805172410038395071037715301970425742719872228717416160326392277677181494182498589149169313306894134689222739318906341352722384107693477515772222522844837034598601787849962362452826397299255083920244866827912249126427058263355140177972497037805497867921823256351646626953670573914342908895588499987805629160543410500227996638251951882660593794413725583427600177552328873988078758854877135411369756044609482338274578884499945844469450247523894914835038534922989012561728928009093587049959993388491932457391101428531833715423057220845007261909525505509171341471084601016822931420687118207111030232763893868041617862070444899540457539875262221554932168845580558729370203539065229938575308190922057666157510324772275151724141183245728051639124989014121592838253780460908495049666440399412367553324553335463850047182096376482570750962022755599913544021122423198741868289785725089189285026012642235786933800374123091563731224933407743627876915492142242601143236261752191840549899382823329554972269992095399150807716520283972891311608991285851521837596842694860549742392227717314272144812360606642783183430890095982129514794286322544680548057459313623509977502754190016615799046728069762761124269551081747714530776409376031112502089622729887461535774366174625544401350774456786653708412570719472189629258757230001090773305051469250579830607355152834131356583149767730267785891624494366433461673102058595757805575419375746532367267185490592631420414233955558352315578335449274783865298929563846953761400652297582745663548923276121287575434465891130546080636094012862038637453200782343386310683442272596469383290309249212012365166646502499045593356740808751427418758383826286060173548596963899942551537851789210119559246956243441190739690950182931522979479855897189956059466002708472085864611513805182403027177672232039504036628492014716053242974857415572043266802624576942048861593852628389011598190086949007687439137847761448796897873140099140386640922764948827616421857659937492501376769104070508664218984155557484687214677143325679933139407923914360174276474097299947308378464813714060688153115913207275760964583240135284498628467547719508497003188261901166227154713379148999710671605474074417961383439291020618761459724768199934380147275822133877393363794523748619973737072884720244050854003723736126106803686013380945023431867568903713756932932682537458088158329224208308936402812416737798966090935970033805433804342716736265306434368059070396223600861397972892628782341664049685696728599921529789326879069061138352643324216020812309422317184719441707297912947008901476926018790406965718955821958589748590291671827403337673016629936232426718918245356297496067672125184110820186907141343280232223507692328973677233837244181859382695271526549582044291172622396212378173533413644667335447670057213482662066145965715077227552726925139081100176505200007004165530217085310975188261159006746966934793310168613331050043419984558088963082749845174678751875312413249199825979681772578623021584381900128901318171159697631874568680433391621105915884474059302730456298837341240858903618577180947743533804361460536384570960379415572266689461276015974383983532065913927361240842428708524045640011845244929482537719194321859809460270828070237842099890757253054383152293879817842308480285637681244092697865816033291003723813279676356644725476907670519486087827312715401598055377451368980102717680981747861617785417229332992824315599127628552382463831462801361600996973401197267374820502783689174356539540614085198814227108856341658218775531487184177678991835200231624599509654290994371586709032552476837121638233735369918942219623607182395575772675130846344204700304874489247034023525141390705260266618450368013332148858339819871204377847417244618583017842571923670504609411053029473808895394499820248481906743698283997743336910296999880662266079092329701588991300016981417580408470160739555723106630065004677118185428288710363000228547780849494140943752419401911646034531497284454134711609361485448574420838913378308012609323558991764887965991136155648588263949123811155901708394049261685191196883745052410682917685930725862794198156861786009273721029754131282736324516367141720979645117275156363970847501434372313300430722709283191414503458382931567432405663177000528578012443272682805531974823482920834481589448093817633924783024623462991576015610445405592568942754292016901949090800723227619411996792046722399756798663047455786026578421514617518390609133033165567029573744171929386257995219737569751355225988129919728810988750586959610839440174729672186969085448672597934665160818389746421419831940457171214084601329071572706116239120602831999835464376064174659870682418733416697926720073359945810771336452518369446161922600999538767066482955160610897731232686000999272669029834338121846820580231829367023748458651697147264318818290276039543083089107912360954359286291963970706694388959488957853451516102128199370777410005271877564270019611812418462627960328219030782103107891094608442135449779032849910574689204863527446793449689145542880760702153556472118319744753455459801005757951551579622768168840025386969025985008335596441330199677857437847480270953704569386012729340545875826162280392083721638281229361011323997597408071814013853048350789038855582238157721577979324490949208657227177245283352368446175020040570272121072036120458028417844584047145065505913450284436740154233119761531274172329963769541675307206687550137280807986957516514730693766799233350451612381630581731286053807371832980506239457677581823959848839091225806267009508476978222443958398315430725234703073614504797785972912524504536107868017988265148712412220467513030333775231753483611670427017946523938562759548232540180343178975115906205030537044891963111363684119642278621839531986895758758892706809229260679740033505935505561844231062766079152417735438568368724330321830750191517523622272157041087992985657048892366829223655174690761631841205528381090896688207930923737419322506708839032737606981114459249392377626164014040646603608977445154044452371053964642114548556292603004885691495378051470705287830795966944316046484371488214328185582628927367416847971144056517127653564189237699484590839843610293197050798653401923566553437676856463147931415974705995405609139908655286129215843407367649396408878949891961384574437682251282421938418025371486884728124492930204120693871724152488463020011104220165671497337601845496009476128029483591578248749131004223638579201016981608523207907630760281242733727660467833599808699615650735267912897378475440382365174029700113330772741596703213939012681483185665729220474351184684925700451414485304507233365151404040604595818691798815308362321354815538600947292553072370096164214573660541094301591389130909550253823531340693912475596903400113898814027839341055981269437363056040681452921710869927395671108007430836224247728089696404686434304273498480417725245571081248433503323832776426886187819429107808572756263348026711115998778217369401494700448805108152884222607903985867495617215797945654487909187991077180147508253312883845671103359794480554761124712042141305241182872883406736533378359121635248285402655150120267525113434461996991356013046374410094595616950420889817889910532211841097168946093572912881990105609239326899719677429513931736725022285919537754161921245763285369943053711614486298515366241672866420556394056326732211988174224585602669496130452928132404561661209501643822548305620033296797301393455295396954427967651873312993951560438242594743095429577431063954916461974000646776172363830381773820423432564360064924025493567607136627781075158746500679283518068862097754030282921315395116516554378913655179279522438560544281229372052607088955846956017423365920143107401950875708762828913428607556179576788564819306772452383766550556061343807830467976133922398347415836582181544011479710600427310517714780057439582550885165749406720839037073670862766187711685189067569340368234901917259499905277585432579803376504137234542458439911751020300113532354818159368173282594116147504531271910894689927734682726842085327457080190614876454949468310873781411118377047373170224709623097709850098111309480640916104472161627821394075304395513269820463875302024987994471389475490147393729742906334008810286263551406573672899688106591158981901766337128877990939647574081484075108494485963638831685658131476610996516323394139073819768398663620727969155402482490859164916896364961623612434025649473769213053976616737177676466329247119036322863832141887126945472079934880357270492575712111857245085904132136308760007455087971093905511350622185460336442520894133344715374576766768067271156451229793007020572184738594814627060202237904157994134135355982665830116559561496866974916896362277215343906577878567317096480955231450261027767261048884979928784448528083312735599047415130138303548931281356139980495762493008314405472592795160309011631597387816140954329755430922122461303046411372257901187487690641974070589557277907081787166086992128088072421891527727671418882752821529081767717595841370169835359716335945972076675514693271755491996367416702993656345988990881496678531452564687771021810217247416181585903738005111221710598715523771213790581267154427758500205899900797915468761047438900165877523953480966674864350902688086955286442739245953113865602313036959709005323721061089253319921809479106160334192878590444086631542592311714063512509658984630027405680834729746897944601064388407468422321445868203689320394782487035777175709041540671039939984789820636940315071962429281406391496361272903661625179930148655770268419978192410413136094053898614264355905083231437977857338924636222631931772182895338215603936802371169246986071126998276255132371282277808338823236257518782223324239264472879086753574103471366026896519516415095336094318849917746759499765369069701674483740629384367422176385122718112846901892515152538128162405634912652986421905267419070327392394097339852873163804011750652462435054077190755039900963425096237154158783689749584250889248199841512864829678677456980555076364913093694399207113962489604530395094037810618617746507794329248329474711449653187497721448552379096196973692122650344976113135529700839520869267819062302132094003730029005322986813754838298094157484619271641547670321776427215405423871822846624328164337953899193306735476845331952775966391914240198429725563213885813070183611066445413345008724147341523075199761782127435916741408398771649345086153603543014934994080191601461979157673742891971971650040284197991588438063973245420674884524831498543030488008943503684091440650677949526060937217478173042832610265579844736465650876030469612929588307247002931542615050580805021744378378598771316224774822713027981987323421942753754081005204797918979147758607452499358427344037220228907337269171086778712231851956266835395288592845073051214822759783437307980172788343131244824308404368016997344842727983001011745024817069206731473930135945121165535816046439606365772012029251138092646510856315410122872588164443676979661952594921139894891537998058383010746964176052455082964672667980093310706679467375983910650479688835327628745048073976503909436903850532081071226155488135871827561007474364684285408960489907281875163117910865585840677050180741193108630202890975739667607025277621860669646779528274399102176840290856044002572086269630059382251818286730529188887188863208596189126791434741014049473492090108880848740883770484610487630207495610539409089604270193815779049838928933194952300514023118901097118223430233773570982168156124352164356984222924862221940119759053716530004007525012644592095279390587676745020409348598044924311791790739533275308406796219667068733665957993765368698540300049503861310620134442972809336988054922181232655114380316657427924866002232166374328505784897142955033976252510560860579224094981668047799482505651568764347732547439263727716406596519026752959698197338542450357635623084387474213246148785966479552807479961628549118573393431005949812273198931006106851112854844691315568963955898411388989024896475926023531605725781056358192359525345014410033103566574621296270004919602457264170044786865391222703851294757815274935802473425867460322428924705868395795360780782682288111300748687714729628217443235104386820728269300463918790949017044806502213397605678980757528044589580372955310964015908642678476784509776771849509222124756344106940479730210874854141126355975790036033872620877063436451370221705777255919539063733808652976924583458095541484635696899312403340020602929374718375223629820904840176324555188014942882199576550700325697720447641456440223588392403214660448065782179496232777213556973025730690466280061858721108326974186908470392523702987305344138580524380484415848572350652767189367750514993702824007706717119514932258094620309285597357450525259129655641262307497872731171959273470299122286725956434951715850255378697350859875028055964344158517228347553804884200628854926120572989092289316828395382916764187151397034877180242266968860288063960086473882663552852307975331790841032414682633132397142233438904893621185663641606985001070783233777869065286078253985069376832357064612913506781222707764132172508057156957228963296220658341388308568740215321558786830123015598787451356101138550899210103358525445340113040853740452914749848989998198255022289776538841182865515510880927824683387225320270829598616017786770319682577038015745044745485179363901110090284868835581110452474087736307009491114641602012300125507373162609276625999611419442805225186110751888257226627766967668889768245077464633162974768826060562110402372531050604649866290007543714357421439727458321842942956839546418996186832868107141535414984036733844616669892613090705080103025453536894195931983241486011472292188419838735176255170800642063216297929926791485982974917302313892973598906781385288089845013782322186604476288579475599145445721293022093093977071428953638765556689772396416823896716282929576545517500436852097871215138074120499903783704536096988359247030941179839526546012676766892227477621879135858373469126173383546387822705812267044532874357449434279115298958166285465879170614330666490896332711088190221080479692316502340852375841397564748096516593563032327030043379453088332121975376321382941801319360594439906361973266001452239142812647202443528894840588857852151606536338657952720839102064194771247489667057746065110895612351252043847673075004222539000164043779605461987700013310526079561388315031472087991121380612688667820891023828620499318880021446641710238038280157221588027877708950855730502057286186630663550744260423179531898889551550444083957064167419916490770749937633779290487622754045707990065718205819548067304071433028744943384328650328413996575775951113430665238207299910854541578388081456670147139567878664960718054058417273179102677391831666685839678123176399652415282436354893571237217440311927900207538402141768586224576119895561924355093203472099957967208146451400985353012240588580844451310874149191919004258819343329787577016623349607093101192892424534376635557085629144839857218425279956271565257911838412994799416212316416984413759061988216598173275830217484130629754265622887423438570952978849794064334904270852069121589635974530888350164056222182520285304784112702732430183144874206589907185780024096428957375186927665841373283999043912141045852365507110006153731282895418825080888042402347772428658376256235199740262666377429084377971218316237254493738685396124706129053778767355515123435862142643138033810996841592101000889075733570030787418340477820612849689366161580250537448637450864688273462838372030169953961582500594221284565576995703091321265403534671003345841032732365013709199504870079563700393817132607940437259468721613347293886130458237121392473476127958039745138616257332837344109966915167823903965573717572701218018281870181165319592380209639764770648277713645950284821495500820246858294726974748485883946880438470769622657097949330201267160422299746905830618781324032502002902049345350845466986108827389182905089626522202181821376002883254148065929093122023305221726705305138637133945324805803922554122765651953559979679077640530556070893501443479521607855097524218336688709459718303845830248992966677862442754806337187016691172804225843314451308905745788597706096875090041372803036793274034990841052749004866705172108102459075468037156237460901962318475422051731471543300262797711494403873390591167756891778279415055938602800249312430749445794868044482394691103279994655101538145707473744200346283117666419756631046409668010651287456948057177262484618405940221307722731148192676472195202438574360164979726248233631924122542451152565180674928526255011237125400396392742189763476070346037642206066379396503606376475335430743640714534162433357697540942334947345901558767207278129271661233097656472173037064395497092811330151270598861048971020278379908181234916409334903095718785270181936999149343195174904703821613457986684368160890412958169155412730504781336335325348701297231733367419043078894415212767564261019368078083747815239014092221037642285474591090991491663298039481996389430527061605438787011273885065751409306691634923380134860621966018105340722148217520866419989448578853156968079065019019510024535444588961143585704159810814101685256187597088195133121126755803560099663671432238492408309607476686107969302213791993308647436735495399402841961453650670753106479083509425166653544723401942641853148021961516064077037582530323380302707600699538687584117885187769862946596849408830335464133724288904774620883365629837110419890905005349448343960725456849573798456374414457793906198999705162251141210923179091345091573958348983271871755837251890373889284163314060247225080257664337924976586200355729582250441534395909127051398507055665590830989859424656657601341570495410238137181216539051768203598360473246212693689674825350697026885950566587951267708135757818023561738937290118884938940414990653391933889077884064197240398402101242615721989137362807120552052869513491040170362850491257148482080425565023037643210336984279716154252873585209351772256671071809844241788337807367705003970913937349470002180614898188843911211424681572813173669426403588976199648208846820086875737366220407307920443247441830977613728236403278926461259564819179467177142756139040347504581992856315197384859975183632310679682702775656199562206146645546366732810486492680420037814842371888752053138901941444778247716542644697470750441038037372238108258708305064437193527573856748347553947186703019255195413328829929273265305771136956273560479302046039517439040857583186004515119419730236744929220692777047945302609200030761892986940526791383876738895491823911702898868792958699086707900991625243904267380144183325248211956499009147821315655557830098384814281867699491191813629178479819910960729542867833841493163837448556872627104792345364041609737860369092806446356594502939381732414112633866813917992260896911690953208843928224612652898150448688788830911958209612341752698844561752692903789131707608394571224127037706489575326022738139046844846873505329302516811305207311277086198241597888724417612004015350215828883102231728399086777598351375147824996564954765256993804435674752999069537068795110779636576276006770186521367793014324212335443997189741839564495876610412853761898686350609701184882718338945054557613384072935027573276358596038180658764584262966507647229574191468591257862166307755880697483484852640426020199002054157215974548238346132124470903586866944944256549989240339393290925310697353119808627729393671818023617953100975345426254561440157225833929246751454612661655226406654859741707401153807936117134971628049214263383368491837079524097288403856394224702980683681756159354738035842387793294262356603923055320364298930193269464937323651795904942734830563024382831489445676011011336318100993712396644712010751477590982774371476926299229440932152394025343646734736005494121863842729020368704767419619049102314417902968345535162807411624808707383474098623677532991606372638776725719570755849835459410224915912756614077385444349239676729553152029171447012268964185174633361895545852946687173265405673411814157483450767634860095953399352663124924080844955443833431910072451201050204020227381892883615113438149871997762592497448684169200365320095877724696214031947358053022192101842059920331050970598817899912567508383007394339250615552269383912772038116108716796286460888934265782881184341868050621023704160286893288404156265654653622386285047990531337246080388229614696501963664252634993210895171198249007758606558143669630244213430777953907343979925423764771845013972128426575816287213905128819231356348839706910911545846815072939357179023370165765816938758162191218997571300607556424996709011052822715252402240139876947615134926179962197059009673326197921052471579966521396599070081733029471722696412048463242202824842748791302572751927422107079335955898537809003215449132130119673236151041003716337954915688604722686878326179490814708009004882859220703154840447334494673263034213637583118599450592501520895746600058543088619628410702533145898306790985397984992877672034523572308091167697828723860075923881051914163742969592041731127393489151582364571723282896806751751416398962349188103672517025214848693774906522944396183240871530033744039891257140591913941015624518682137363422196050866345551406483131566962716786858882516439399667681680546751090043623401511426760768325074986509898159371078363078552366070363835300376923072702547335661325741101584003999399694846014819599046623466829898210149179915038550756579927880212932189941048785436744564009577059271866158079411701933600196232156723760633359597811203726386749340355641615975647438732222642733349094839938864880948333617145890012795686826658584340548512673033892795049232778861039348377992777365024393998971478150962312024623667415527170116721088846431982919994513377439593921184064273452794235263129935741415995848126699691437626668760774574478105249731665069546216012021686748527617757666056627929363554625291096104661783815568082886575232511728168443932975977545835258559541283714996161169706015794559668353493201141456609420839132785182675275968388959937745228217531265905777988458392230169401571294417481682738471476770143865800912678072814207870938777253219461145924687441371248965570611446408470719468510465737885736505714474236854796431738570116806154799876939873421995885783403273913239929219653903932935853678407397480029902713506431971491845780029159827141327406651956353754132779096846093872900419131823610837145838218667263612648262903877565958927539109683444445774561097459561187745454128867363738545136459781578618707953303853028121766099216407651462910306702989536006165594538838797441042846010427967702967613409133499037021676508295609051606203297336395603898337041564562451337170506483921468526682417756870188551336144964036825951975172993177724332168479215846177947600275170187937306606679143963656231267712592204039431645269350025782878183034481789392831155078030234454096995460204150447228480706042744635942057816004703276577988887301162223888024809767974729973094825712042358402412341957656724794604864462567933485504139239685986957674804852544223032521367540802465074512358482586601632637637487611042516070953417716356614178115321354157353862486898831007027924857960843763512384482863154272901912694632889498535908547305314036331384110293793324998730507125286972205316349546603280320372917386842730045481100889757582440223284449553367037536810979641984636324933082400655125554139060281107810489188272370282273300411860199561896771829734159208821733829246959836818817612307492490845110996328418386296163222675215132584921314590739257788432798159991906299084093576506873397383946190560504312042204705590049300897823804878750289787950608525935015354961309745765676374215195038616709030343467816078472869272452526125911853541672076667750881772594644267922828175620424535153356850975331051598055640373724421320744124158139041911406385686867255529881095112431518641047339434325907542943912080302269158576033740584698965765174698747491646261063644787169431133183874323941799655913018842573266564160132242539357600322404911420691777410492648634419630699085841539471835493167360062752475346089984160135811220879602617613059281539363718888339830899601805688914510829743085773203772393952419946864995815052927027263247747205671860797485158437751295818813710344076266456894211856950150475653074185614977195037304091455471472300530287695414795889400554110100887264751317823692358656356551896487758195763188428842362325358435824677102892602228259481391277671444183940445236791926797672494590921357725355056918298076061506653850298302380782329304527238980733006349478210705641122443853432903029755998833715408464311202765573653116516489421188178280349854973698297576934121063591731636138164677525950781767218399428077639684477301118543434937621947164087791805835486935795304251425588594473211694638093584840848022730305596357514250036833677327596777129852969921945787299572597161225755525490600103460375786367631350406645393913779145127601525929647132681947989577282069991671822794673687509836840514387109267520719049367979800486446125861033332489025221095944750112908510428755455461921265653408405723310104927074669915387225251593242963641652831995975153001466293574973635291365913694209040234547546913751556736666069952609429133012129826852126220017593278353744603502461163190858157686573113156911550100103777725271500362695991226361145722539042109661031661847273818316333021889016988710161331186353598168676262791091935585675570960983352016141506772722249197037953290050684448813017859479894116430655396133350654183653377627312863735875258644361602889611262909226830515237924223563960173058020176208116295820885081608669825215101839983947154233682031502154681123049102209480813677481470615507660066337363834377129067125984936687362432651724089770212370208912182814696993368467103724767138747314431675127206352817018420889456962408107358849246700158405274382164682608915487790970647878266111480349113788785607825768846967963627485355203931494909094210262314608284218103869268854900629024024555876378128113931087944194549772383120668066222930498120778695089072830405222653719818611417622830321834084174976345355428273078021539852193124525788617638334411474503241118209287744866002690607299009841469322796772096832290586375104803482662296877536542358444655058261100844905095098754967842056348534672983368312010766097788232925816543420942463141794820747340651252643579656654749468277077260930681936981524847986755702603771106116641927988556388209893600594874126406808880141223922912630871849188675303156512203316108984714661430151044297603705997982070767138463664729754664913903584104719255957657754721027887871470626720356672423386644886844780640010265600223710980361718613397298210866566977514698272903174366736204476837776752617119680117729847627972337299871240749112066270657866470716810193975079843418851774045805374382382020151558167284001339169584050366869082011621834266876636947445871794288127810158246259209834818846201689899826314934152602491823429115427400304440787376557273071234086981523235666933274876485930835918431040395049738139839570172165803655055446055526875924550165065758255488799767179135085023502137231489257593576034576166478229496275458982005993726416753022719189947977137849150749893872581637140961908716831435383178835328822968417343484646870985172518106126649255217126316692870006583465857684452402401276487683105970973909420557714433305779159791976082590915448673584844836325027890731448898506052764252396628911398689770566442057864780957035172174809047183554154508088033727439337830978937820116903977948312842467474605091984783917039514791912778482928445717069919704452272585454502713668419850876035580743990900222216547013503431334441501359784846936740213342775218441522558201606748206345292367677755925669522260344610760339268372937012775111896482696704512661821831035994631006154389968592356197138208760011638350340421483927333740637359481907036083566743115147582419557941422082017597908989431112722167408676135779471135431942584571495276351227624326908070278774357426380558912320260904265007455239598970246933120899565165285555148992970895405568608837270160018264807349182722877474156324544928804644048734213749563278300685511051202096564328143270792535582159154105834955936373931637678412034555131417111769624845547094763590754915346851467240350966860149320019706457113324175040899639389694514038920053554776551622843242395505474293796865910155643184835212962453831976375887591805904933984987563283429065239765408690310342784638491850009871366736896565670655743160680159934221321031551592376472261123277643450902124031476408957869912266347694662508854473173769623493055958681521449110470498009028591058044378482605466562239313987581930607071336803640519327948761892491454851258519819442347475679166882303433133943732168271597927093296719646861144864877209414727637164343184464307273018283840194467440472544300652164774857595658656227491684529248787451067380735789451025298227767649981085978727450076416411563971482344247529411395542784200721247080098871931998846076883985950458276734803257066460928678734374391979565485045537066017389266741845463275950356660432767126315520924347587038787902349246255667379112615406959783596411037707144692574038755113047558172759246048380515525283654439240842445960430887155120020955852930575625140152188897816307280977455132990250777197184998740246536214683613467374251972137930829605808927073216943758285413059782329972510928789075261564453671272377733036460999813608703078846995362383452788263151436205095819851961977457295136414350453291352778671390820830938579950793489773296703832660219369852758467127425319412875100890855556725718810441968239273528475152213175931872678351694925498949399940106144313820187794730395074886796360955464909168765734073564609605555725081770655855573239468995048852365845836591267311535268923067266169577921593385398071578403738726187971112920989690754905077387399009412438349994222668609963372994121945449901162048317435540701384360733139245233643748503788635277542627632348172108127067024128724766456263360254719246236634892819496647682764526629055537743560722060188602311067126484219650258870089973742150809043733813492301022828243604385402660661466130287388659074476105750774149321137016420861387488153060760054163960825711300252809538815952351926276236421188743303089602803440202128771897628936417836677586604063805003033862912015085905449974848154085966511658619356084421636930167270236435586886800574793099651242586007208129770650888907102332170742590623444713900949248066222713058932228229848771631359746195969006495822265593663753058881688666037086871422411424267861623384428806541149220458353542146879452629774352935761397301034395573570078900456363606203561898717494500533918583975346459819088990006370479802376933862759814758015249212906595476961547550811942144933333441024966017665246297328636580570624183692830852138573541524136334309600389840527992007102859618624558384978471837708368971704243391833996734353191432252598334931553107068261153048353757070845209306805641902200783309636790805718484712372291036297245056513157296196932858349877622426881277348631674693371709420989798510980422406996227435659162776072595519587407579104882641565985348975721200219136338979443267623166456321531900485297040054971313619230295108765801797207300213993793827059097357798126577416161155550128981740153355139987616902025512589992284089069673410449009048059435892191686775982100231378458557273465097874669472591225366341752586845504291532308248298193430084959614512430834204858951058750199879957493406575625113743004238074902979305872027029402037069417699443870800311474516892398835252007447946042176021920762718209907224638544004163823600362799134084440703279566618060826303252141253485221384677184137581320355275157308252020447433704511703543399218401624426547155176373323517716826839812743081248999971705631143560986078269897128702881082937057164839798879363884691350024611797288294726937779289959203750767441433059052261250135574033169802591195924252582397739322545905714855651737323609344482665871294877969717644820496375344748461422236805474022984318502408262673275933720315403564551499104256815977583514089318543927113497324472914288613310307458171479923504853115780960364593603090834944371663121905190419461361939313930712223425817517105757970813659290864198874344799552557910833421817094642333199748661873070760784182741999735299942448301259801770656982923830827926967286120049804663821209228316520196412122440483960392276080422555399700496244667800682451537682216008971635951925257638312646435113244216034422243083246416294323477314274034088543394711314433053130314397947554147220148413505904320736541200362906700487032798815568186694565413443267154145974154910337213896071898119946795202428627803586765211903754752595275142252578058019822286359036129423037878213264995746756109371825564362604150064277924813477350897973151383354599349854571524771145020092348839924914022759594579451830831730082158635254645187511059833338575409742255066680726610866742755767986107215687355715261318430639977919549267930812296462568074183336912425523398187466126478230007651565212995694412442017015786720496944984920678563464386329763996707867524261148073021505582812815797110089860767856508153084939634157796764891242066752735204857130962374680602691558285927296077120454586041371531680016379097207378646313923870760460929465527066607374593292416281489796762389461344990409647987914758019284751157452073563576699682767609016971906610857657875298010775991165499279120459658065143395340125823452302820716982336125724353940367869948526094918639865552973972052807619081001925142390781086310014244207546077334826276160507382737617975589675494378849904890179618697270317589737950274424587787484308450923187651069370849842401330381114233787488380528778630076997415459002281703074696044374935031207282059024354391279340730079337723971313916890063584426950260756689304383449135058817730998607226633295759679994977034432400170917601069419077991609183066544026489585061610237502284151349066892681687663372766221351115689009787695369654635191401408342397053861086371523011362498523408457788075528180338919911734023995443074833909750586364522395602830422876088659794827806620873243307415921076368114250163699860787730999349343993534684941023635911131656385217184183810876170956599644928778506789428821743113747169982810313963502089935851751160218140871833745248650650364389184074796805978987888968291649108310475029632100010393855846791611316631684426406483799525845948315991734861662480756834055498366896794842251755512562823711133584874448710197305847263189513492513094995930433610701834097171231190389829117342910526553654186375464752860624396685122477296906789961089721921214035117658378858591409032175867127636439017189382857033204930487785794665440345255474495296011123666436390138208404242290932581485483745536806780850260146230282760722076090287688469632559347118689370283740623661638950013184285620519779083961710172326278934783639649602925453825077360817541312594271201344173904303972381334998508546034740038556067716505296820055786732222770799723672066486382081041845257304513122467951406313385125702754570914200321042298302796483558712138665524231681027547471976883812537536464739977517621182112782494531159109669035523158632334775715962797002210637193633798716080189164079541769356823699436934076631882827512868965590046154168230317830803211920939601385884838785044104484259187136628548489852559183381022142881137968381861150794649274325000280002449606057614307957229516756030108450988892112345568878412898175400055932039756692601531828755282662269053901979236588592186090226506456248262266740828603874166913744814721678562418840337677444052777888452950552107290330936672797176450509831894819380421792953869550093255538855904378183623816299435486978690215702709832049414356942481765834170778341757130003424753742543978396505971683213589007878507146016572611146879188401236817737697664227040955723687829088115794739137391041435279207511194961877208926036653788238799271629917525991427984143687849817933740734465700117843509599138949376376944362354260855583157954998106868456692611615958136651351639452550492268908115171497392603507914689585618729645815880797466212869063848699304231408935102680050435253274456765591745168315204901077336929119622123487358205857345694623713397747479582110472348659455305992411351618834327980275624005488322143293115587529175006356379477058150104291517905438016391512603527811831374072766089981304813814286773985081116865345261186178764689381663231538667197548055690857754936667777149196116203734708843038391748450559027563025202422509758965097830947535439245752476791485757659767584146540566262553545430254098793976749356785362765477700099231781163201774163183091866722385970552849807899953429256500851198815172881654658492641084480567752963155697014281745175256204416022120158346845050783281618697272643473214015196959748289809212401385448157023792091805046922328094654683858777885762883429782431200121968262990169608049731158380473675470616620650225129358806729234349419614575260757143675474992000598929049079134814327893128406295579123192691514025858732916794513625111803547799703866675653942907304908644892287797233323778154070145981630511268140800824297266364703647357872649476176534758971530378785533161087315227465368080491657010539866669691945261042100104704141786247861379178601123050505787542752596173172361965453603410123864065834170616998084308613465612532497321197066137473576705458151845480469835924397369078384940814816313790759249311015022581099039469139829013429850267901682896683144292340643570924587776893969677612268950439982705733247341735164897900772719947496797797876514100948558805465049778008684897242249849947253002777105767580898213685687082889144272691054015557051071930662712681613369749089732044593958462981549705399224970468496053388168432062352241989611727364524638656379947419856848132516590934187564476695683574624580130219845727934917008654236937438853078395364223739128662038290989486423065691168817598303203166794748624542723986529013482090171341269394626645978827964607282921544216232669191204197718313351697962478419135805754712506119481321196754500388361085630525740554138576111389840513863001057682077907026124170345045075883286902625405844425710962494806329059601889221938449580866041430425952777994329246923254070229804096344729217181273058956713563184243477644340605556618499478149562377660734479024171592222484039346310555597153528084346894393700483913879123413007037616116602142426404165280674730220347892363006728174743119184113256504754863520886335457561406704956456322873016825019290138950237046667487842940829413262387976364318594659688402791753041443522584983161977272791744886652842624934667287502283551357324239387876701759880259587642812387696857696746570657917273698066356213051801273840136391592605380003028999691235312881566630297859796841100272901347865378220747512405436052928888658986180723627222923824298493190854923423598415954084591584284533733277569131865757044683154570459820334518861646065574843011905596084765018599580653177516037876603578608272218823779232459999417919796150551155347265858594247934645813093066619909724725054121156669382098355566504077745536653475151492299432297105574390642475741581829179549851258820889073582700050322005788785870826593720972238103594519802055552227863352482650306496910642727117672852303459907690214369107875691292138332188662965087475875977796420711668711878660296416695697999977086838720013826930952623384654379992198620874212468424786178182776029959621425685318025661056884080789164850602497882935199867971054008672250438555382109628943305402865528369773493474279401012349443196766701153803055418004797770336896995191320393711088289226929885099725208667426835986691363675421256905494762774481829390838588171648634748943989884876578144648624176005233633907845275250611531411710080528068486131145929940294496533596792751886643674722472516916372241023924146337960022466101542406819554912118673009409903874048484107112848222786737373389354339960372659724921853840650709812657405431632185894916478626296910721541397471477117811213552547429549896264547270793886196280710184273726692697328637403856633996108395552543207743681073848890309768957456520269629164680353635116119149496941928057986894758932255562470193397833420340095993855233662244960977671860401715495601300582950003077279349923656116271531256592890828927962382332605626116131109683083945428558214989502889977552313208933052506907887336290663610518879298249697779678364564613502230119778900837044600435373965955172585071973282052171177659711248542943814055411705558824042537575630637774247795328400180934060801123545270438148326678933317056415214768367118416689313436084475689623986495755180094005525584913700157622824944825000118891106829384207519128171885318828098594127814708806852040619676935082627011509480517475863922923226401997971535898729247320670496412055829959383433902244012315564584881803682376514306501323398197557956840082880993416096211775272229238140757242754722853984296145586141582988405399857257402722398734225190818694375386151756367546705423565036864603558789088277222106772791867744808167447548692526862023542167236871671524045768480563730184604125716147030078215507333751036460839831537271017225634320912183889692116376997360330924367527799418727228262187009340000885157469458738943893639354018745388345052963099968158655130403172588496578910592337919311548764319649115492453981764378277069268860504571191684392583188915508922650452773026836362498246177815331478265050552885592560003444710736670060563357010130414464987882809664834807204128443012600230870260961618955663016915355915007582166750361289306185663903430454739315723890574133855981298427207867134110245593873780829617287180714696956331438226984545793108139257125833835559123830600060224645342474977649784112429093835919808320501458692202304837192687282883568043301549054791407148162143859212888571727003302923482581021272928126567452020213851619268872611558802026735222921662826807429749346154541798163927439164228105273945407248124881453824365085255437439722967818215199747802486694296276618543935542979117836676920871099276440591275483885042620962674393584958982926340012055808434968874483573490608158401914291881216618339188737191031217520048702349092988434446219093467873520914197862645789944870622998680908839162418251839175426666330631632114979072653034312999838356541346820785621043349284460562292766308101179008231763026833790743071065607384719851547485310257005945227766502623306431280494457479394738257456660584510773652406264967341781755010820459013722538236894892147987246462474559091238646866962280956822104174429276317969767433365745702926249027641032852364331458298517066269977130907223376305039033945929814986642597671741576425461536405551573165887869041407457507060179817800394728047259396288937066063891294712165827124242518522175035081549009402127548324992301307153399729210155423049186715028944351495095347303098701585288823408605971194519504397169832008994373784246015699977757503136467990001517934467222979682231076517443522590805584362084414505979018497747763966445068161684266517712476750010389971133698641851019872860232422696779179173142536730366519458114828155458738915608233814388819357359669277912774688062436354002159554043009069743531076421779041789892760118620939570992315584202768992934840779714868542298645178702639673052982397779747015767042905031919708777936837563014278851672920710391223271058560414588779548398482614579167513735211383911971184220297680890751835668167023809552802946936615444222036195149430322214432682908855098525735129930480195763958980039002287963631624196662376880377134856267335716276662448120866897128248917527585960090186858013886885706093322304925976981189413193128297374301520449886054477932305540895836142051902635111333193550532094042455558815028294701845491929522593467040185320352527051357120696851791252427331910273674814155268933366931849672769743487631068794016382630724897059779137519041980347937468319138665917448347675847357527818561818062480999136941458215914103100025096698315724085604480364919659150941639948802858552585051663392245744743228687185142518245164796764920816945410451734433927033061391684072366629228844820015665578426344650567998693082537187097008287296580002194388115994625753971899641862214062862870387559215192743159364647311678265636111366136525220814609756961940319598041850702066980325431244915639917487645243201157508836161706272792236597981863160871661309348508606995813017086094004060645227642030686156573679657633295849395138389548048833337825957677205565577138707629159645072233423303098022496208152417107070991669862700714110721187255829620840191819346416147376498429235160134879440434152182730888612456432545147238212832358106418021325489980108418957536206243820654498146898936905771328676911346584356586909463272951855840657758820052339070976540485254309497180956278957632815564383113550745451513874359884000596645438330935284805485976874128580641021292779792541417217222399990713516970807374261908739962475024600118421951922837400141026247036780683544622410664901721461165538356375897649184856025343723094364849129501184503325188351770302182193318586690918768937479123671775315926575272356050362500140084295122951570973828435541992792173843350466529319826909986535063802501692730284317637719632117854439150784445127511641380194847554793714992702471349794580630761020374672724571893877419183756665268178226342029285719671789186356682189076044820987857656029115323243310005552622020780311750755321351641507618491850534042247279199241319870043806790851769918406910207146339240648095570799049211319345665752347013135493606915930369662276520390325668034205295043520327147430985545086883119326447906304543282444645354065740778865464992034474889318579643734226641001480371164147770322167586519085949927825747952478095302785361148166195357249882880215016542733723792274217123867216624835836067621461942652168815670118894863050939157088729623052722050280478760213130944056700316064594316860547460795350395851818118786807532044143367138007952463937612311865083798133867756133911207367690396193675143155653507132087592737926713172875712418158564471093583002231122981422365408392914901128653757851748879950575297490143479270234644830590441481248776134228375108850493503723606969351369244130408721786213915110825821007907383708914838838565793824861873687587675754013960663330273191725228872031929234305097461534279136737629574762632589727058831219335871541268997613273674163728250471965644548935501792216804017247301054317756725838776434503029795933551786786690960700602640231816069687070652565018737400441038820198421682229883881581916209392314190533408998966027020549573517184519923663632416006228619519618638274376963550149218515217361243047871755045584171924487553437960089797440119581484609826438983681664505257478261124601439405334281590781626562959427170952919086510586349415990367285302960608049166273572092939720524095323358791189821500239686584776883761564052907223428096088868647472006465863814348977650763513670420224578797249713068020157769005597157722407443766879176308203421800545013870049591884715658172026032941869270033013347602700206135492730748522489975850588518776742923662038310830851282064506102213792747033431292505120220949963175648114088724423144859263482116558724482697920025410816497714383725766985266627477992932129135812451776653571418657267079262867952610518373538939002725899315175576880543870200506620586075047990553977937164049841251708807975445197140462386797225608721900998569608732738036418726009812464768062982195936722549395713500215741459163957013623137090113475382730091544129497223735569221741769261694475086934968974225913085895031517252258713583273352352067360797138277333602293170548325333088144912847745126401029908553064896570808414597143625226770649198425839408311466897974601773755436634542599043120455360490281118903722032427088086280277588912528771386656783708686760721230318983594175670455703047513168411705636021202320992942954058982254253530827340695995056413089927928655704761061846981192208300457422847539843146720636014421723998186008764590636578006323835917175179146618698314154300208889707880040613227922627676393083344473469011780214879898333858033669520350246432420014661990440271937971917826408604798980611056299837759681138389652995522998992211102114925031489402935851418519141731387129891128378059797749142042825652347888543231379438379977691482858808755533057880388763842935663802376847140327190636786681829578642468000712045748162067512631510578630591313523862404708180545737291052236680069242834946676021864410974611379668694011799780113943512087519473010186731005446421264930713074693222031606834096346661596215655370767251425140784822526701290382487015086085092197790680676346283797212227120306130000722357117399546773564537081969292043505466820013375150127091887378402917180271311808381689196495894122512480734785590087326532061857211958464542413595628788676710043958045835957197149795666161525063674481148299015716570860066879463610435821336023638601752736342899031816443060676693526721283568789205706346720741938578678007927977762613950098311280624764510662043570357973636691876703481820546182617985756660780073386116116220073417235462783198486033456601099158634995285728265219756646576266297395672044035034749165481847356558701243927508004522547282131972825094888900693957685523109138176774060037066291460776105674461689478276899065509636047800247597901269490905782189881441562267165892577593536672752017448488307960365274600593832417338619752011440984473289764523439510257567311079494932295098124084120467740126460548490623654656707111362523497065542106736054760325673802759534555887858911433897975464634587091943657195207970040856019693089602759027494827941541623902957448626837480381780461759300428490724478442153365410491012840566438233433861331465982053961631218459594985629008767635883765652960943699348939650074895774259941099975618160265376034654909117986278400110930294113426844739535417703552127255809705556112927566177647381768181301265053471803263270376142461392109349508430321047967440147713614862943723627504947612371318362649275130237081024498517876302494281449850511902212635856903731378466233154402910015142286388868893768951595973771778269833917957551574325414193381761502400746497949875552499465590690410527170385404939317432721974244822165334332576372244704521195689494651235870425287881179069143218042939276476234475326816358689232954636657598189867245938966852911980785396544252398624159036499323742914797331113743286597017769531697680663301734655406815571063039076167957713212015283655078957397808919350914934376279786181590952054439719244177744878436224369453890476041582847010706946651413272341068335623390585528048058756399308807984612561974767102909241280427306575546100834666272437879369689005423070651572144025586613901501706973115574676812469539525939044053316936215583612495735223126839249843941631844859599128981629162875805654639434650959364287401603662662312716629482112760733224972665858751917388746372083660838558761839840612619298456068843181805249360582757150052431066635995009610823263251847510942717466034303367052387993005536525682014577956968483900154158125385455854532507501734734796726233466064401559815222766291337691291888655702881101186801119699639307393705830152414089472749916353867462682098609071482887948382088509942124742391110887078644730029204791075181844896636176767553809494051633682024503686348157912974344524567851964342388493356294591289099836929885894171684866469050663972931433670521377194009184735785726958595584437183673653275234230902775345952655216806842790981554688516839113625712231739410017029534637616840018077548689047159947483687686369777913742685914028583290914693398120702087957068012342762932546302152737760132752889428719369312866420299797491920314159692088780590097448115543241115545312095661491866576387026070515893384967620681198126643427425928465698275931895168808203481555323939434976126114820981561047148905450834576352946503211215088309246345320096362262570587808261072380171511202924660859193936193677883860626621742895850350086832378226699668479514204463441966177230427525416771315371663840866225448297835028494204020065763481277690472879458722580802753605219678310558523473914220135551023899221903208739591423221348136455413930796489626739679520693092352728460269382937976653432101215628530268316795369258428668012285354664423538450375277004086127402643237903645056506819108606210778017606033436703317420238191171749182147669219903816693186187327343383095847388546872832680769402775344137863155097594472193864483564609136347898369686102282159695333108941235757896626808907253717192292238575941888582334722307240953652741104603131712430372899087999870572740497976561753945325329922236064893966809705930686202858812161781618886917413581704494400216672303730108873380872714495140433538653241876410945569070598475778685612066940397571078955271307245120735532901906455951590120170657927093243459342077112548386500872829362297365953976894585255666194150496765294700760331626379168949073686171772647721287439614722040825207915618312415962051457008804169352014490555739797653550970783701776545516780488466891700267804988983206871950803592478632665644946386282471430916476045553938062484853311382848717121459981852686442822077563728499054191842132518795516517867291870462992492826663164338842949635757471262710087524890403717271916877686457679283183017398301907580060074197100574172843968014520649925975726580794616731357961691175228093854402889882479942564477689590670122219282013511337820444997453737964905396102246202365546048614684603760575378179684965668387298458037070955327216942380322625374730556551736359084716443468574622994353898341516430408907604274522512420796200730937369376695512946028690123236297554630175293310393947184362627118344345452165810930841599738659384095613381605027725532398916891366984373959477618916028894851008492377929136349500771695081416357636148251302766607168075974431726817154088223063467443789990666333153425563348099421722690474250478195952392515637753593285428560810385239467664539857452391709466024557759708516472370183846461874168164349964131192629473486570870142247925719763476925441746779088855470680886753316860923832084010658757044394438117883167675292798101844031171170617868459734556640357887506916104590726369410323164597055495756871790435671086553334027456642411329292210855413628608122169359353074348378733324260107358531618927500491540615884071626789685693750431270486211708454306303244831482981184385978709585566084274432165442438553986374495947278976013106648562617207189761281675493820365494238335641381663049762889727261581760911932388132810935220317221805876400886019318025755574035864763812991382567977676655922394240774329795432343412997103881446606834972499730706878508572861983450993749851660449358119201726056509874140523626208262155821788892767251103945630021203277792035242781988143414905749323220839273393994048918436513516581731428094381399350409824475701476745581839678754572010094485336829918520250034866905248448866505827175707961810647686193181035561145087201292557496075765191545422461460586657027025325316887254291224889064576612418555306346952301012340847548233093984982711730333765437931797833808999445928790765352263934080843004931271102052610374008447758930130431197218873222208869584157051622238292435599931054088444946424247610336529715180162757283045957799631170005438603659422985738689575465584967742337788884497700507522107306750414196428849373205164458991206223970661193663895755030474512319872025472102007373994016218476237872569965395612117209243832322232679038510560086125412824236908154790964730299186702381280474917075634646455489705656414536301733646047189168752446571585690832764486459762160205872923974913243172293645449101831466797810735375888575527845336647355492369502830105406438551414381673810603023818836796857280988870687831306572776082153903785745282825822942854234014210705523003232879550254953995471615035132435618797834401351384426284450854863333839075067883191923430390052823307333618599145603252711854341251534065682030879929259942998339114291768011742841970701324551265658875248898233974007732829005805441426469706143763646684434603090401978724919376826623645001023591978610415772384542905492426846939740943326912582205582854569926851391577066458788102080832624427282230190980690122045278041449941931309007294071954804703460659917345664345252688461522802028928205274726069593229652802604671671817062218851300289921409730461412892684980555401702231236973711848297087567374564109692972513395518446306596983740096927601664074548212624219891287157110757659659676425733196605613469209491527787624335723959203989734674600314545183949152051944377129570898956454945194702217677959501146999538758832421161435819089555689345947626674516018880853267784896442099841181977599303930151182154619091829622154520134989748372757321875691605118839080247410636300818401803962988471897281471581489710674441265658138352944050627853614631753928633119446197860851260055212020951991410063375170668409949370478975548708535287428601590706786123908721006830195718204107268999691422509787742746379378275844114131637158617050843230213899253526710516338288709484191614827638366681645013837511045159477787833148647492801971267023912661048682751990614315762412686786997116855846977693632029460461165225050926343630334648215038132538430589235347460123611133479033525269149942484957288251908933299631513762968914856444340260874114247860963707229371346651288638988946844372033765649242675151690732854505398861256389489282526014741348953338833635839891218071748608469940945822321983228065686805768027722622202646456313789865253229949004363373519098347474828346501705780684149107776908872368174744960056294318606527473160733115732435897733386627546418030659314945326601254258461126657299084002861581219747038832243490626990690873372554101091464104445659822026319804922456589013714828876647965606533481123364132797061863378068758075075482256985920202848038446580666082903821299670858489417845578293644790415701323014564330012691655673371778353847015093743812759663806793622944813221942515469135533803964610284967744522780752823674998637936412792003443313767135509372658276573296228688592419613826903786414628057463022233520937588842326068813240331278209629877482024892782774533057171574913930164947395099480354974231792659041115001621516113492248324391745046045826574201131098008435483598014283938537054278428521453599152023656365934762092118055900071008399302106492140756420774211460345696399123474390948480642740523249205713884436482773274735496244120617520629575371598427589545966420570694768802569856745849101941430504590479818069973288877110527221260736715869305530201970878613407638968047681495656223021654158903816077422292462196879283479312655381817191426430827604205533825081437899472235882323739367084576742897955767960963426587426715365064647820619663578493842588237348584126704537365070861657015038989794070824277417211895194277788080505408698356521830677913809077102887022068028623128039374095131941770456239387089124307557468182046198718992040597019447334956822011083030319510132868010688261395733822704661057508183852760755578942936288418866259171548071051571643317109532491778861127474478290291545971225565889787107844281945648066572630965437335794212636727703697170780733764712860289130095999281766496871086592971130482830004284039739904798609104329789644487857419359812740517762452382859941586877261827890770225482591966624703191569679030456175150149178462718561264209901520899398662598894900226022611658506181845881025685489630874825614317342667314205505062190890206153661798501047305821329961285014239788286912863875503515887100883174143896547263009373056457033787808733250015605565441172115770794930535128251952619252266792520079026648585702242193317125699976639672733627942852575260632681632993016504893258116520186503545907748327109427256475981411060618151641648946072679710472037799304189819309935187988476508543692044269801159627477288486205482778209699687329877016982573108969656609420956294529839267239596503229903569883712539133070657341573628983392845548481599572529857812111394892224945030247298646353823581160122036817942320593208411781066745025609762021465310803599251335797898537756002156148418315789702997027487285496602818745291744781797413182068349053661366613355146805266957502317650245745287607220784243443517755594967009717975816835554476549288561901984356167827374581905642698924088491956297785325755536414020036345437110493170729604518820874232755240072812669357342958051721486702653608247178300414387355483268802014135486637381911606047684987976474007928232112789633542877820007135951409239269823284211054378982808636040783110665427706306623647831834563270190811170875274899097334944555403019673383194869575470229401153019365770110991708506827429891349378483221382310864338983339498686698216335149575794923373259672843280780599820588966633723082388535162003360746963247490532940798006268792255193073969130245706886013788060951798633770704902542723467276691152764086875686986147000552365004221302576579169012106067483320939661926466469245082225835702590916959866274762138334382021532453635396816572410619481202086856917153335893637116245138591140329071567869201188076457558870609186569960725990950203628046230984532883621169030268581546052657822052909203293262627577635728721559272935069479742247629208742330331580455594152037154126276576345437174103960174133022950160743995643748472052919396662711509029708579704448190598264756106607803376970041064906510775662854050595153422944895888945916452332635103616202191925489427249134102872733628685800267878944369441043199442586808510045263233044983340429026743571769611709508801453987650852585417652551454499803775254565468755323744528549613922157808377571808667232607370372496899990701676148972228157539090698878231309613471187105084824666631815804882158346973927490300922402738808186471696130497717001246130647750893621800964320765192696561615321562228859828782519372562121324553752756596938249800355725710570622712708975491222679497760345054410607927945883874850103627508841711517941375160787176871804426465866051299650381464098279984560815623684531247219513869472643192085682692096504938418196305205166427372483525104320228453049856153105323931402187145179733307822727254735302412153538773600039445927619729199266015487692066584898208034584251309925933254723432156138885139493027536171150811905400842403669425045742520604377170734556820296878036808174174188107058590252665489237951997617365284993514060610229388827067747742640287078604715522795358471283440275650305169746539709145903551055931519990289373472745279579917564654847333470394627249010931980095560338057268525174649252144770289143521997586429606122818482871282275795578456373075241482925217379925798935544209926448064440687628823743132387949402951214693186887317156174433764869474395155366327049957456857098038650996241223595800622537756098071669525921484851744796706994068664065347506668051874377490512004911722073080740480620053088381118591110779579919126910049216827771296277727995931184282523649463846714251552068855843649810891288433183903703196071859350130291980678348505879006999583060167319558575204564905440239089817413524319185197230164540812802431724321511132256689280748405561913017681943251646650041340340570265094080607445100889730454108115759609636802531292428770804034680650054767092680046571979267551060887001741950288225532757980493059008831902127561892916805135476627608525540393607325389064740413206919738938572583649396583245527704630622659305413573278987678372439242834200614239121924546031626958463502811973321085693935245844512729701079964305750919646436392039378927583577201988933808701604245793765111359984755637955869374744092876031624060038132989771748883704479228723733236168895241933313846906165489506119446635425503863940157557554093853802226338144506313924506982903776156679649373671339469908840374745716006339306281702810101675467139686687449652629120972243053613825949104655822333533648628378420934006874393150080595784980001490162343409019959270162580923555503842421492277399779104767930110303759509683399571565971143686518227642205871869227875358848858506404072343164331653270519437245398557149230647937128656031050236550721972551754485932200306500087408205055733791824509845988027311819121481615804670514560883678170858717389929858508787984028277162523179764772195477195180255984802520353634003099654182692157758760961097430263513460116855142814546394335719055234546265452132522613844835976545433027776476183882717682848489222096673062582379435207429811982525576525971539065925435723294909116626318844560568912470619477243493216181124488493937884988224641766850137040285610827947903558811771048690564226347956806741234799978503774027857724984713489324627776958625884790111082632469258468800883114911200379498825762850427942319949973267082481199598828436351550956718700903708353666218258071514885616817889125020805169687055252635757832966738320126698702522235446286447161478726374582253017461390149447156623913642613514260188411103301509786186862644373669524959785535459038573568983755027148576923389988066675427219806115959750258190169287755348368856199402753916178389593727170510813449789393375869159317633523744178289604228238270729833363020029151083147387915852707362501007058672255194039826607985918868291926866677401326938795440377140619232544929865367071918652678363957042209537192066985779172992019430336357698811094000757024333345421351881711910626526231959463627084721822295443203493477372495789472183133158591491194944947029422945371372371303310670651750011299176816647362945666168568670248688227489286176131426029913470792870800369757750478138869853277999782050397756272535150208736467633442334206528924529765830099960444438905687362157275865423399875594823838853716306430692916022314595961982336929020695735063444684955992396093328375364482878867917200881810171232115129141422329397094757530974313789323881114783163890975106532905527544173887635161022177810250159068659888551060843853133239271767969845443054931985670211508660263099157787727427780554399950308125866643242304477952875149273609721339815328181555373555798772755753697986317859379627240435034263357444199966461483179277980577348091520264453101625091650915285167702341812662076220278031348644954482809298227931063673816555509108211810504158302695054179079727457566894883989210804940523587465916855027144915949007153672791766978939598064045279166768678664406018137452831664553977072303145901154247896585945111388304306985599829467561164263858253526015288847573282230685521392860837685690266258117286563959631782418411584507943492365041192399050644621225108158217121420592697552876535687668752272944594402488014368676097936102852670960054369443115041038179608247782353387966000321283371333466946420325292318138680416073094593134400216889001085158081481653564090138716247426783498562474808847931963524602003212102054363184938762223614115331857850877153001865134026668048696222678607408986385905359569284093541669767472471922400719501514535792979686286782357150507094080268029025767237239084475712710028679418215817024370446216576741480252958430175018388239546446594854090956112708587273503065074838493009018848969945172408029458420625246919644423317478292704454765161263944244023109520636241727667934158487812562927892090972403903502767484452590624752312946376428077661660670251767912166522404084811583163867831282595973085212937455038927713764012187795533269992846250428723467735051003933034745904425067820035220243388181700844588301865490488542144944019690085011679092298449858998308646971122007048613033218822903707316295627142547505433233136335613015116424714751375085646205883000911415752619511063467780467454299055339615192436473860293232683007249452808438696304658707576159962168922102211232349828341443042799841851136874828880131715607534390449328206281111304659921895418567413835094029488102634747019601387481718580050791862840266303229790919708154689228272363453325130883145199085711620063555116385099753876365107989938932446318421867895622741445697093250338166733099444749355520248266940180977604174806927568688344203867288843957675721655132225579095675321069200183595365081151457766185480054044197057077754225097146462185759168247525788822754673592372402518226823409686497184901364764467807762769507614799044824697830200573656939712971412867526850819400356034585579924954337093939900753403479048502262025955931116638178449854000944434609459530992097778010139393213333146776522170328931926968616048275561097165955953565196239333297989460190962982509426409464637043954157087987025133491593257785292334601475609186498762682624840730404108253476938549551690106108339397481343679155308178784331309857642179803121749448967062084739764861628768172053947274446119479026978670065314425302673700464716433182748053921792164590917987987757618891808209568093580185558421899116013179948894562884339236171809054311289732180778449666803555762870561890375848872854064132859542131537568346023374883181919660780203269919424794671802824718575029222766641839701847021618419405972659304255060918606394307764058204695885786894373201898277593986273162171895169530847304503811515545487785553096348485632686520800895774564451395635344379915932548201015000694889752025810158818806230420337203258790568918158077071132851852927417823322878849571840730428486146011538530547313209112384462832875805771658062587405795217013515921688514799999530121696340490732754226168177128188660433646548227720392612815105897485455527094034830000053636844481416287391584985566630358979659300629719747921101408747254676980821319647881761985088766249104223036810110151689626744199207921581080854654432866218621669502540394571166979454367847837655557821728614757287607662864717015809954635056988006882880938363273646169252669623246168325496806528502666768831191079225286220670951494103413696711934598282424852029189545548171380652700309052878896919127353189415448061829139223246298177754495728705340452376687017227197555547526899575079140653990748720070674487971302389921734963337739742721662111397683680323779919894631357269426798461273294212172328541016927088248019837952804955915652342683977862097521587068832236602556642296226223948024529482048212613329443889770199266549471029104986184043099624832193529698126589009331004170213480227243641532222281456936754969766826226845192754283651744863775864056770442151667743156804682574987545261171097382155625391375053810363954283009604686295991616751216263946618257915150836237699378444260863365607048551854475399954572644064001533714927462422437081281790836078467744297338725566718904506529978610844061430669314357237317452380739608810099056706978591224116203502124981912855771035822031707840279152492187856235585084324848036026397214398435148821859523977919772925966749927005720256398178444899474634442984480639217967311576493562071279220600098135608097893946138853808260506155459934918436604135411641113815537633288253207402439907310524910999991624701902086631911450493884704343767777499562168418858616881078681941039838600346949395239972325042351551896875876350585299498850318665232381083540745458372150277783382426145426883770792075001018118837693879293801685481597039398124333988245576560065752566289305460015953902721906095523094663318773169528083353527878675396341676879113089130070351387139899804124285980720023370589994132520822735076386977492804570689473131260378671142182353946415135265849851265988163535536468687242333329169249070873157053345450836882546985007435140206951432617354630618806306382087226400435409452055900643088454280780529194026549951952136058114953944620139474405562591963122779087363336198442266130303779050810994715971536696802484664756077279376318993098435751582639465125450681971664601956038712187714245842707806121656721920461763240092742997411307032308516075707521607204399726861115217617019557277128743961677277602531973328927045278852470839785317107515271043143785980799646227626521174429028934857173363823984364268665782634733929503256632845963110928246254372655969473671271297284219041393466223571687644948111778782540237558231321153523183620925125020565919018693064028514503662387831799159664139097562862196644988922918045368816369031513774948400924105905849058873889589748129332000772888972637222017396107693235109417767438950371383984143768302107692905776871111102693523753769861499872274686362800333330637815596436953832181122769517661300155131690197752497424325538775812558505658068742021052756339910791857006833811635044271794827222585102977411105503313110759543343188294591603243049688603559790471528495111272691106780017933322601226209777929012646584848078662776220759859135554915870778676036383451532467550273268858407961877183092487877961871877216913739911893343294501327466327280373627377207553122170144145158385350708043524634014410083260194184124420033025862799758186916277273072155551475743692820020805781996663783817348239035980036345064524799879829145267458164991852495536208538721233025784475181956564883680679384523288055271850197620981765647264117057631590513400469585545209844769418452869779829876623798561019327851563984880560694831076098222019632192675986509469825615881410467532356815277308477887231920771244892843180758330135592408401243976554171111280972637362443207564761620217245650982733927456705001986820815748011670164817234531824777465318233673410347225540546330644852374991175292827064735020080591868318179925438879675243966583167132362408946808294887454219794408847386757123095670413964318301615513128300467431910989719289276330456807074579578103412289282282679217217151760199051825197399402047458620599805806769413571329330304867576281604830893291789524691510586065580429448720414925647569923121641326577564953626960794670176686586362090347456678481929181134484437998666497171842197187186895387355791155041985725361505814935956902679837463228624428333078947477383154486062536299835402808646814087184526802837967180202315074905340233056462261986591399204752549092422452861155260169136023387981968623665335958420985163733017613368238979649735475997955203479168964386736401454688543666048899464166371800634611445756577561257090058615084333391479641232542306703849721742101228802088090963917563787167666186342828002165736806702114891377020034373820042639499989672920454103529278827080556223949511667806165762261499452836150902843724625278063508485738883805589746280554012151692506834356854803355308899832870587908380136428014384963860862817381795419450986703288369769652640750450569168179561115050052309317182212985287813243393673008983361439678189156359159674492732511597469840581155522411631026482390193966746099910005264117321997788260300451574481340437235052727072570887116605827189886772948056842223927082024853011753751068774709225313251589679966882093977210348995844659579640026307572393623350131676793594810592190216956366086060034713736131521773793897618556855593586851861394820459055307412002626994721096453724438430533615754272469839661678895445025681948375415200041605701002237293082185995279567840923678488340792487552833497641285262978430209304394355717445049203187778837344852908030474780436106351491813725114360608572028980054646675425492307252396430919691475307065418866848395334021357737579278036284135734375619550805910777825068799776772836069094826984205609890715346535112608384914575966377667681635405089278462206177013478707809491816114930477051956783967509367579655341592385875727345323050119108686559451589445488543221028132891598079573934545252189250193355516225449174002132555910892327108818202968677233343535707091839024987601774920100924347361747458470327943545721289015195672646930820366502428128786760699416723217463165952335462085434130832705060982903426730322212731986904550831272650489907941853938552678151933525218349367116232871419348337851903013625707323102763803728860936082813449000418973693875187794284270384624095849437397828258616148173251964721973373203204341801516730089222998360832091602249636845529375237044051279563725625239276719932687039837454764677775243770699151791388769551781729558970824741058061560194664769269471679082391739524988828312749557077847296720745390991570775730513560729051400854355381075976765723700256873609061792767545434650427819034880334176816110959766347693145820155987236352771164966066920135979876975290248904476868325411332198811308808051477659691508986069397835572099863411259441677723068849460103591242845055486158363236129702793444260762043164062755292092033433464198249822106102909793266657188700144024446659442708783379063635679656741335358160642061816052064592720031650562103400038447397922777148306245371182933451673595612354236402477124669079485991217695101909281862316436640887007776725851140414076835068009772736296022208956128605500751486662793665554956289936486477667447338266241740176969451888514399097294772822086218762357955224940880609905550970205188687455806364005944999609985365592577428290728330922221197520088990394197465258551266286596997640209597320590357617221293942580432259337011901656279065342084376657616134515984491981859115184413395772005252163851145183273407242929978815119537871914649776088162388169697568098791240314981831319229935671993729839219032875594624924276130797817359123309473317374156293765292879774615539446367170795303075665993095122986383891875231845665492889359974900601289973127923450861779560468351243428658809911188405078230999793472124753610160783710445374711279312928286637145733972942660949934337437921040336211283446112483962097672531121400581812254189583932765410528467260636812158114055289810608129936420039411554905444918263336319499911090671895349574903460002960820321254052056520745138378350795594411572602583906878713276282350439525446123192955540384139765799151905653120828646702183155450447354030873671337676511388817704201602980055608096751890880815128053085661763467379830136807425538027858724341066241372694782155872501317033520287551021305931931772051432037353791450219447847572290091981664298289742746535921168493142419950850878317320531585848245025245762062616945742107241134350445711137456955197845500204716436344773594326270165650154966357335396452073873038062920043610201910521265776211376537780548234095934573976803592567786488941286939554528494917959016713081789107801685576889773551583777923980915260236100032831799977623394888238847559891951482061455632906676461412077085549984957444758200307497662273685358312296263183668674776600614342530848853150189084017928724509871718999837033653682679927246888851489017991009495105195311881607628673710250144040056347887430548807723182639170708569603600157835964940333226972269856950109271478515394178569558500046474805006928747604301264726603807648676387392651061408321348325972489846999514657228174232623882777842034393915962740304834576167510239882484649430979818329789123391615125306079000565085803713701100043943365669561494156473696216993276764731622457138586721918228140973358909417887978207933378253467572355973360380583368002313635422801913521503278330698118011701146235076297215983097516075783227966636984183489444586359675191331277189995109719263857831655008914306735148368269331653538893357694255765004216029547348855810772014246475942576037024086173720499016604470628746175526011931858223115468290661863657128424935576387304486921208258581999637929264925083920610932344278997095704949093157728750556482685847574857890043527897680715211597015495929114212352548272899294407548052027321370674697837632801399664520261200288918160883938484955510576818488707142183102272016019469135994178752479578734610196960193771629231381996965206862667522330053801441838845228714867619164332133733970215008952680532987597929906703327967884781153681044230457936427640840417185351944886509589886034247208871852141886470984119801796032511381613740454533690270232816715518485101612565555304526177105023568735719665195593170167648643015462851953342683144132750246231456536055802540834691688550225103978246762972847078246310358061686062392139116095666852722397779763818659301005942178649166233765795156892618297252435517967542231869720735672627273735094498641460395656366012029432602612245096719211137967381639564050962693737363724480314394103013697124933613586209002222184187291361245296954697836229634112845838736589090455694839101799629838548261536222617629800799859746815703131692489736344705795131890898349619485701995218778782279370990671772995924185099896166311866762771641218257744856822504173294128660632846696796685268807143041960983376620240773315169860313218690473585385095882076631804180993267067692291122626597535484299774988346634535993812397413703377773202833617821196745943846197990397437757069473738452721976486040503738834360914593139246868819030355778471058650586511604040786569276838829231152436264185136286398947828130082820911253219830509931587529571168758028832504470931136938758531758048688512228256382747453493653434022916418607341961587828877528807103718938973413867684189709802835549662592483657433249372227290502711109364677631092287952838689812528230849357759562226446722406815091167365865713476763638535739958902107224876359930177887375841641275001000114700576765097903239083078937956305242280521924313290573139017560671271157364630111154023606257274184928905232903040580421053235857410778776392511307161364682553097819414867612290044689940318272291996845668466225647302333029151421344151905993271110829513374233513288537066421779723851467906334179070561889447267414877092617362526723503867712147605646298887513045304740406341575012209213993253687263968255706052170081738089045134669451632684709293066470509193192135565926342049830736906180438113099889549396891648515605924735013722959982556599346625574708213253264373374584371165019366600839496450932627637820207837927080910640458970316476595622910951084055402378916765845570976203016897975397728015784700287690801650867570008871999980283646574839043004901683573690937784096295936666361797656410440563577976608268411246324364995524110689121197168522138679236608579444374522730089290907309463343429651020311636238911156272930839244192961145492243987839859420964954099560789607239508613684382374611800201495008733437275063244995933616184320271767617782452599241716188254517084357512673806432537651751905080327170738837069965941476682826639771516307837655313247066878346088101252754881978508252153660333223293863631625767752371884301099785505349598222710765145732529792362639216526562532785004782848477330899981354234316080262721768573531477366788916678761600586295646954064672869138384943214635846570649183509614841155288716103584944103935263650328904321555002646157597016896203827593290147843009136981679616386959583107514967844080679450695165053629830432364320566400941790057630321094297641443762133378867562284341327571333162853765140097530365655289888368283734492329029178173785833205863681387139622485316020184068220836513845449305212714700213060717079879636833028837337087047917176164929997958911565569365780768589545011427577807606465533046605252702085358959977993959809005126831162970931573545867544195806263905649114944279237883535065405539855506228292073012536113679491673205545036667519888310430039839877422059516143337281804613816502689159430484435802737279524340849105244755404773004510035063093928744585237128715211108276595437190114157905903647125430819242500816176014213382059147314409778239019448853210124103064619700368452341864040863126267062713800751095658930978904353077971975744214204159552685680510877229233361338905568709279863496360587168109072755357785019912208956849687080983621311606113270750440325835747656823913054324842441589432759006539725463204557982901233449454070241286803641232984586630889482383095172734442502436422327507441178881437503824149743035151576219014635447234752164563135325473996382403312651287448512607951905917364310762586050558668713299135239257187436830576877905659099231080903517101959922917805255299945967401021469575173486646012316867810779738849035774522809870598727226185871958098070896636803544272730106871274129634623918161498757717603099336940947450437947319992776438714140823313837618978156689084977590947782659842970880900802289560274235931139066088462093084086779444544504765924895686133933555998317670910603541140751417606608231435827855090493197854984386661819677315019697878248570596770556876713454352051394301833318989293358314234512658203169452003107629607130006298389314103942203584929988502877281370753694350142132728182221880450881908035335899462573587721086748420214659326161230873431714927463567722623779317949250540231620851706126377181214195305819423581229430776747921654724036780276015564643331035401898323272647891602159963109676430817304840809231823777709693153803596133264181251227373523809637907228903820808104979704244354330081262519001575501079964908658235119311691805720965110807439682905247360444418827037772519602972236770666538522117703597092827601889995784529130067113130700006524108028082235872736821643485444182344701473978110065988350852637711650920884467431824083833500066957979500665958669368848401439502654799764250181343699262647165326847695214842414177228202571180976884112848631140236440556504215827696673395619110233454137671246990303601134377298317882931440251436829289474822061071575383185284164596623746332457532172480255607100947400330817906759157158857879013785531222894697068840242037504684230814849986158686272299904185493860352975821059585311340979356026487658160222921141000241083950282016605776677317619935409245441601522361416682397119805859591731107759962489360590219904618811279367844622235832806533677597529368064283074852964123558138017040351038251622379137930746879378550507608638748892540350827334239231032628588169347093364290291660790508967005593902102369099876462521715308939939873302643357416383143235907678892321063521758218366464329750020387085817794107359480941380835073200054051525789872408873582372611823344899263549320722299095039448290515964979736502150134735443489326086887157764806113302861736551873273774805357985339918833960812281205885835489953288635196545085032177435513010709006286549527884649601697260425608223462581780128039345792120738095167237217051259927771590173392288597663812594020152816392502352487308511613511960432580797313156521121199054261666463147841030848113191585950713151958013093289263487931865769002180412009140690280418993487130152830216823235037342188948870268679337817225208990659165214207621177292270125505094412940850548710289619895122575648632141973733131382454328751888213528881596325367829404207968012587863498892992393978992224429080943890864237747009875219986621145594514741043368866834915421035708842806762940012304148440197223054863645134734560535716362759740407559444617263846777144940220698492436810238152411399590827233232106469562192661154816453772385818588882009265013880538870528171264692073817484243632043904023317731333923197446165966125578430970243644070743794854726959921359579796993522978824411545287623054930133165551544052031183881173100217819338282708540109476208261155899428691156635015687819544324298302679805147351798096822023587766251863107676972328621856794983805228685815504106298276877583332790517104102520994766212184343612998843708008008901746804584200333929370342077425277062107913131969047103022732318000848660990545684233079884759754015385485460963717155404609211807920169551324296011735977555485938579808434827219395573044954938651853619047794878022473773884941345829356933821985012292575829159387099108129234084549685630987081288953161281176790493276379562083560568343531406994919836664581425984455846690674253974848955807310115860827193814263921399292133071428296693831811479468806364135832184354223801806974159148614412051706410494549739558987601867359529676784235302477143215747404337316073250410565518330791623440211043013054281359206613799490118440594486502094659475389300732401121284060739980255645052885114198732725611010538098587648824244230520710494174241075818525806591441909027529673054774410207508423669110835274130752176947593824752772693338553077932733639871699096669973294652957241680800381457572688428766845487069105981469105076681880130129791223512002910197907874135894020626038234354929202961536768690141225199514065701088162743183552327021519319886065057375693287096906086487149384454459662144900296100031620298401899325812309195802800577943551864917288626891525508046063523611764155388698860621452630297138821924353254151666994420025162672913267158246878793375372479857498362308191510377929440188669711898500357667323591448334214929365745665754457078354678771191702037436659830872977649330875284663703044637744432443896812248007939757586754704844719703571340404464586613253878023896633872004574147927875622524316168901596003079938467683431721000639322736632020554071898065763183956326255840952314479950794202097550719966362999828263031776668424997317825728310558116942515976382358540347823127545313061136849266438500797124580870191860036953344276457948152776112785928466955858936734626509594430824475597891022233960313532418841739571610735588647756120490778124955243636532367139082097021924876293450014090141197857741977159011105665578305234571436129826600870706537012693856466916828523309949219869752307639861880972165668891450261157877543071263755138059968542637087119479729677363747066647286299634214878262015505170481249369996806597885817346120812563577579652094337815963669080328912551297702989077401043236439895717974757449541821621255426295112811289260698070478154612012152564430014977826560953025817672712768958743092330055053009208212337912414573504104724324519144958968543107750611443211374788744669727869242963793639622222286464704874586958923568400324352081237084397886170408434790805095826708647094859517824663025744943178005256590379309032082247828408706169084001694847559312670510987063004113075258690658825651687307943163728304034932653179191119462469125505243271833915529110911268654947616788454120659639039675248735498495236913623581612995588273804962612139264408328065290767147665652480090275793831344265643657666737733526908343448776512656824630943396181654013206619058554440855543948519991751384841114087373204120106919937650074466057200389455161755074891487497430720633782873471426727624789859763999315047172452952730394063412773376658801456460090030180041624860680966127802913097060446521827054023535406437947463916827436361589522550704379512106886653896668547068581661406395239587952678281584733151725773229035662615060230397582006224830637555948176111928461817844177591799208466110290433052767635778128889194826405586860506120936568852767541837442507474914889428662562567570619233077510992670316169142301377125303647295629283624766593635674947857535107575496351891991744671270238556932773431043296387433472613341306939415703133015297085551361378387392657801803470149046200512789581832943085051860213431905768365440016474525312667350439881521762023340196670963321215593215902800469465917724119803637867654788377006342504087144257606414618611748889832268315195059225150900018696601249350471390281674719606909252031664770513752784120913080109490391486827938410494341918278924313640616771167298064551772715193385130342358337193271557930752216399126056878211871361210698594751292903968420869193189579522006931749419964049219892228703629771293932490576723380459689487197531808184329829241366167393799967341851455707124816653886492404290631797976863483366639096492781234935879869627371208810304041494131627661631341695519412808145085197518341704431604337152048069323159831953152014907940711592346760029221051902167444900986902092399509672544924606851021863929367759523125356378830361586227336509528592630394397888764649617270298982570706253337713167898984523340461882196525080914783636578722105755267248549817575358340768081792593786469110084857588857075807173903085253504533106974117293598077959149574154732336775037639713426416378946337123938703934947226118007194117666473888032633378573541977343488016663861381791768563700201513874630673035279573596821145503803246601416310246547548439483385926495049641511595655157939946724866448649018129198459290224556571898311375573850533296568444541967098978519553473635384805222002208374119237926625799873951630507233987168548849009736942523204896846897482026639076043004458533644115520510353781284902261058945630355970233550597560353159417740563689933943576506790507021105031819491357475086914719548692864368214653345548652222797178291755076430159308280354626648176113423573051470186284997062712289206473889323800348925371551236839275096592916728194660196859160777600348478643945737400511058402012437828394006551959646593262693703290427984564832839004334391635659196332182847154612386436797259993763645764823774204235042994545615823214812620942914681490689142033730950339531219624306369841573416406062961697769550964541626006860174982468512935941890914289694555188255598218881530026496270973303506163866838451092121437843407663274330633088769329859273191032531002103621395772493926033328038094676112635538981234176830072686415560484011962352299717834002335362981011003322732790611143363456460279874353268978439756216903404909325636884216629693853730216432581714819744647507105386946485141903187790809637256095988132059265753802193671197302287858704557870352953175631926345490202899428393413106338064392527135670015318060369408937809489880307808395986794611176344166174295947186686591425854110516640474771141998456944766070323931354275095283052215011275059032269828108848082741763221298069785285712540750705831804083919373219308230703784341412026159544989908745453445858481817455028993427106107209858193980718282337895238937085052060804235206645912954137576021244637009509960888601414332370513206438713466062435805907884870630410973905736691968442684008784300876012467443336356037440234630311158492186007941105673036361123211129512696067221912060147756420225546451030437564951648570826254361977830788134030223044079049003970461987870306623361559316866585022651004926608133268295402435468678481501584524985197559332468418790783736035459300094092417590989902814649863808925882710743905095841733792051274277872700923864875986307781269872928774728356189177915537266898994003943758178934826274560152547351046469657931047195351852768049827380941296710282745905841918173577746093037389279833758146521227925796152876235304644189200809152381402489850816866087780729791956446857373855429262760988343420257004944740335115796373960316015410423883704080097697913944086028593654210091518305987923345768736852201757636636243394234628913831919720088800308217062775574555014797101232136818777539034520033241981143936529077533646002988834533888503133561526050692956087477808396620471247020956850361738630305404713293489730015127264468451556627953474577831167378971345473766985475831517579821632826248465562000240871305047653430348108738987302427381015607577434613910233019540676449570433515283026708181832856472917285713103229134366804450354111574874542422768652300179608206050530638679123986793729518116947156301677179145048185304883568423849801009999247087576366134016062730099780530415464145437547374943267623309973412215200273786989877882611097044765127344654768217391178257295778114744721848603838098255104985098660501526235462654425815021686847345925168561301845590962538952395780136113370283377440068988565382011820029744151553016288738065245265306969738172730259128497071210177604201837292732606929761949658426466469695987934004271971193088034501806187667691047158258192189840358816723777429338556280914423731791892300400585458767676267907141960795256828498128110629835936702818567623923079242756015497437453311953177881353055123352254685378726373413224926615777425268951620740366360979916203492659243333128993076555950303973971350866755461694040529145005097276695796733992651935765109349810515768357061537362532235628677780894350263568898973276993971871973005777876534910490774621151844190536887975464861458790093261091625440107924163992402042415551206143160624245080016455131317434183878383812898330283748223497196263243006726754848310006494885582024740133546544253385033158260143285679545513357085497687492373554413504127731914518271713454965219957290843254091952430232157173786426887278790785234113978110833817352458452512675595644074918109156617023995747777004688033139729036716269526027786710431643697824649945443353761523025165395841364855995666768643253068751877021541507730038689528619592339595491609935196208679651341014302623006120085572737686561341995604409464658477981629700071915451473964701012549919109916530794724487388912872305434586420584803094844173451282463557754419031031204121201483991602467854225397625224083850080226251707967487970831119472450946879360810459029009318716149884752684881281341163055151623292848200614328936418303417789931748683334424243274276206113747483095709062597896752476823301229716423348699508601063038649837237035666563700846300499092556595275828113950427836411872114453933158323225391252536115702957938360189469996127847187118266720683215651516848816755204660042929859460741851946228185252673427616081482291114019918350759218542789916540483965526548081074638275653185532287923870967827795598006133513403863161648121078478810309216874312500328209783081027303378499974947555862910456728797731278736933721443514258976288708954696101033192870971884572079631688120646640792611791393772668618375693971690096693522940887754660918740239683105477042410327996694257641119305700699880540985949796812967713751801410014884990482122791727063012109953288982570186414931443054269613787691203975263726888090014634455427520385559152457288298023761060136018273391573848183979590443830595552698017564770280369395064048690588645951737078312535493325386570707874459738974988316739292546437483089177471438446514672512096495283676330145213639263702614559156602475638748692413209037777350480926060845421517608716078602944776758766486511179517995820014091006114060717733046767241743521846411181982888255936361684057482641897609095779693273134699563882067021566315933519529991323682644693803242408560686359888363781024462658817947123277833191736334926030855276439912810967080133548996129878177369977255633730683045867189888167966621019661234464682301018956848879806318661353289231821147664108915719106979955607930859586827790340319753847652367337608263023091155134665162559974909846551390241927637198448925072956112806116766722113781082482232221113478086566701747390815845315891064864919392979327073534717326541163893475944087417329605136475167883390398609261402616016840413654740895326752226070611017411904961684239027848181578807965968001296170252158479013610689253279112396300300829032402560110730153596246943252804833210994370752476132258540123359899967891050214343058678839569162113180342312004185305481839396793276529723098007081831229334654483923762760346922958382083627778055368951151979965737323514013407609611599532159239909505797377826221926032324865671737476837136416022164887157956366268610855146184125969190324396675984388594375505324592245289625974191428949801096431652032261858410231523583697545470472351170403552934265231519471275824003466717544954439308077018258311433181492857193442993314228909845779453410537670171503002488684910634837791145585323940577414042926613948036718888778470764730428328266082291895797884321777122192245998407132437067909964006205202768224044303343834986126859424558341471562316753974517850812512542881163930675028738762921624582545881891788852945692537617085670477876236784499574358724020365676758418133951603605269413219838817258584614235019003450984077535071455500482353903745724209040309385250352881933157990224017237739342752111520174383715121924622235486368581007552559951526075371262852238338343764522604790076157388575637409697382598249276348220787391107332672772686808949377747759571343966219335066266080053306940386917968701726746360110330711476138610058461908428690779464162596937057665423676353819190622400166557598772379838075038046646765069579661673063883483963181965911174665462063029484113373891251345167278849429660195040702161417708678399990217567864031356101314539222542020351758181022270645092681960346210006834589044785221638932503897527123917317320638092741986656864729691997703720261996027006497684245459688140305749749088133260090503304530393667878475638913842498673667435145913331928089143244079264706681453008513788730742490008824967728327848501303640190750574261866920818674666815787752193459123833363772054404370141553909694895438387684814036675309534978494970704125849483688046281626903991974685283265017187680861327884062965542516254389202792791697442964782781631410558789451356109770449371695234623428562786257387047326913008108739981972745102409427826694571356240306684732186339282938112905354874253853259952612568493348478925262398724391943910828334205237117391224066971826120311263301461904351765592223622290994893431819987365340680762395037828133227174513462473707502628983872307690328713847709551914960849303482671648400200129163370378505728283789949931011498305697077644831167845242967275945648230924128906892489804130547414596914120962990971330900220539089475864832991628625163476726689772141027537052273962740400013845462088870690764030050120903303163825582891088402743835214390043438663065844471551093140268830908586766011852657267503959671807771624085458609444394375487020030992451461694664577398487772453046651901985440078853529160759649714597923563722229085830393656028291340294375457933383643647757440987849115368708120554338461539362146790006344712374513671158881489641786823405875734682907099238097970277387939731487752881214086239714981103265486647442611614413262426874848122647608846027703487085150450029336422677093082537430111041388589148109314101394966299686465000969546986639074922941072598612859714658633877701735982070694802867772510650251215932963919802772832591952716724212005505483884635678577723394717088418374338533424754696523499112687106118510586465677103766355760136242822189523647190245228219992381984615017480212294806119271251935836564466775324303071329374579818877625604587357890562521192603045126799612157717147361782202058810540455265027031542476659265737647327922882699376198275569232440442718115659102432822718319905888697811916279900278265676894821423796252786667488775241501635128352333756714060783113552661030639923096858948577184759590794034248131117853939290689764697263338550752580383465903622984198561507263559355595088233149676436941398952716811189109650530939233173240034662835821266756574589999488580313706857023865857290619021073068063907563607974879689993414283158522769831265951808774966809343692018782331237077961314730534363975567886176394495586164510622110199812688807356661690423979406944981892201770163460250529173354581745445752801792587249164757310214401710989989629207320613462652387472650595982574845170162113627584462022646536440636229814698407586428012712390807046673786463656004077238046952667164732900079669409962651821749890731070761354831360157591562498428985444308960906351887494996033078622981644173181756328866276426922463879349233157091909395953527455734416963049002679701708272727813705315221577995246105353742792503936824376394451594248473733026630147036489116194902588287851359350064899303404003472958908120535567974585001845125164395628055540511821524014666912644172672722589603277295612716533227854082424698980017790040506157552345263708286871274145669789049563947720562985553995767902005222493275081986442126564655166379070638532008964681465443014368304898903267272127199236426348742429633152787561767834383958445279429642627702531050310735999831833996470059560646313914001516985301118454926163417061627594218395022092562207403300460909806313055932351181711057927187024467297245441185465163925882543432864461860213986924729711030002678228021252341905939606341311977995496930361597593386313053285371032592369370449701783052524954821267300326248467758699771961798124471426396403809617989685607560866532950895624477083877857868326170477573484849687869032113138192457161546869864063900269438296299199036644682176368863643700726470927999758460606032210622223262375305319221315680684155715600932238142070768217808953901321931487661736435673971614250621484139100650015654768082738116628629112837871436281975759284926680310047915741598777248849172296132733465471523602907580036849520807324619495808712048534639606541371132284884108437272532716512733579885226342503360842290775262861917595822158243452084683989606360192385591828551914625272295173202282242749096338238188544369079916329875723284470130507622082538698056440005199288513576682293083039877043885062627363931407532991682922202662585272949539212979531114149371740633670522454492652776928608301951902423342672782540261823391143558667080815381883277224071075530709127436581454055091922947027320149627655032819370623148439604976418333781768597115511646982037760937584879911155123745314281366056365926541764939425896903403035499502000063680194092110363355564425832342697000006876258796812380865980648041850203211033721437346237124427591086330426764983915277027198987163024838526361679868558874818881519990193914799602484361099621551011905518295313213943055556894200923824728881342686045217367440807535600350419679001894641309498265533117701616691648539911194325891116763334296369492766697688915341619607428985262907236916464965549035728039120409615487584618857305828938157454642144513252750833044090958266063500597746905841402378168199156978813460457087844483541808188386413857472979561459673745147325370851371530363321415838103750927624568199279858418441229380343061408932424352924924982113655654960477046635689404732310393407983395730190402377396820142016502588642926134353989697411305435306513973355011099021308246559202824998555347917980987105728518992810554135765802564525944129616307691374186324670838368734988501669963979145012918182996343711488885606319438042341243672979527503802932214324227883860090355570179611435819263507876782468859330587899698625092813184094650099161040351915565623969553847397814459060953055593531205770714212991290619287131851753836478943648377947254823826724248290103038227311770470009222312568128946700301932905382298771217256801532495652330924829847999697389889079658953773148305213633502086381120098291849638543584441049114666220198510133367382358340601634554472773279346659229820309962085368785055554099581165507668908267331166664072893297992716261411204150614679437056523647660385182439493722829270054252318674993048671602315559560239192064828295654889343301257791416917652142811568576288215855909574201124156066585624486244513309540800571749115275706003246633255281164159300571473704295353349298879499699411932856012298670103819379019791647641317048287965831784800126246703087054236022553432045825613786394780796005048744823636663480663911120317781834528360248564715427153371882511237493218300641360142480028454054589895928669817421873563564285823647626919287418107464993059701350914768200116293340329159716222955585748283584659665460336945089932993838522426827819424057472781871863260133642188922155432859271251051318499807096269472815559182025180440925056466616129460491330725410018095781426364362352103168897825286644583607481408647534171595864480345690930654873881634487916410107616748015373896063130291845095464722342785298918714939787258099340569431166013199275540944557214277846596534534269711686790452778926278756986880101152527176318407424461480113842160300042281082373314774620017728401502243345183005741546828804176273136081838697298508203548668469604014263153198907152004296161777847000908957079467868935735394995093291310494062894462529620352222256845681917835465517501559985519071832290484951010932481987587700770333710894003252225966595912726586487567392286761036022885014813196758202508614397087002376367318020649377857716685153562881501809504795340511254587772373250005555854000928980799249621937710615517101679760293363833024162928023654606244963149891137622160711692763430031507745637787113708571715825511572401353687934872215901051994202989408432038416602680739963090867869220524899430099033706982813467300129785051475850220239907055444886228198105613079107359677676574540322542524922883229377437508913430442104169621089793612182413103344612081747501346724466820860958315346283141357487236200894701359513411896158882384415077763576817525756371494091693233092703685541587310042982669278426067648060992882243819163655971871663635391173739030280885886202132189684680790738336233096051561266434878694463181757289879882526025163032145578341495106916250590641244934312520437986925577859466337216151665803195129993080785595526262198220734381157929634202848601078631376988758573212660095169028185582045049075125530450258628355549771478629521339525053016380951526571713645005761841484085774283503487552971071095771865309063977073070755974448609745912897456241273459174224271820778711588533173523281406279477454807318962157210452399921198470038127016236907767441620487340027978144365280153490180574020295844299753988049327891775803173357435974264164344702173765673559972378385242055176225981140065627853534783669898727203713321683896158008234267430568189802901658576900371338687117230521775580149649135620885279790328947320510053267650933468968085945234647030461089240690905598770357880052691509869031384883603130634254521438873512466518380708838713553255306544791486338559914824284882594143396439171172770627812350448519667168089686381594586967796668985368563658970907666370599294997424941179505269130878340237999054309589572738862608358744530197457444686157058600740975525920592744007144921947640573332704180827871076961370178811165234310048197617166004045701910001700206572884180789704065066475650266166049409269741407750218385602857019148373022754180234322833066273966742660637746649645768426799494439497939650193555641592429617370155947432298023529749374124539700584599828224063119054008557489990330334599988837630002820838697998493891246153959422985949598587110428582962028952445685330099078771237595723062106757360184680598182463048937294330363684439437821528784434771138334920853042989699301465640901123161705470440269737991871511862222881933391062306088591277825187503942925324148337952376189826113456221903048716292213721601536645171155418189558878576886931318132117486193650440990193579309945217645463520495766642211944423236850236178165182346868923115789502259526407925844194953977175401966881232478670440002424733562659970728423811550629626528576772556851326147823899560351867953423408313936730771247747255700595440342690375377335786752841222749724487295038203532053466977005698378165407644131476592704549825610462911680631190268491132883970858695241448901791721763392806899103859674160673828296620499394825515758727169250949862518494030266223482461175449903303870068956732362987076598539422669888385062660273564004268441140182738059311233761616852627327756923721840848354942798507693452715036635882040107177812856776243943854739681054637074339256214997311469418740823184682421632782935495313760567019736338821153181718038825719116445348542671054660250093776363403701999510195425770192027645871943323592898820083419912122322198034149829005256873543053026078866394536514479609680488879676496997981142627271029472321134431298247953745328383183240695365800186395811799177326227598900197347194446978593106218948668477549552098345149722912009350766238630082142332395395439413082974055822003822493109283795626067710887421329522752193009912374648400708092700355965305127425661515080421319907993110562454595262483563050858295778719422529263382515838054477382226086127475365286333675142844238294700949732366752637821217089217571062742215819338918382801742062516484391015989348746222493040079923213408968926469885363989387067225291330441957306878292413425736923444486958997136424001194479009524158507474565031724600032682533659395007807706518945432505263098490279591685268736360229547883287844506947286481595860120309549700357846943570606387252281287046313129504582468192137730409881856226110420052130739671844628587963088475337064517115340254678873584468864333985587309485756754920151973364771566321884314137986698287365886175956141869919859011660511741955052636359097364664332957667242902827417829413201189643106276210229114853847810784793900119442475006059595487719593468427244349722633778719595932482706359224007029127561064206320381423999825128945135494207219295272873856252667535736467902302176257834234456006296412727860205199155309511209747853005111520166363553421073525246974856428871447496777453841435068392957265157743822812866076253552004616898583015924795362923968711960901916837212475325874646022127216221826522075281960075594449725295044261964310956075888734468996967667026291292535271810318624473100483043077077834758782378066247753173464536492683934420967984379877793325923619150710890646986923468982812282267981673931072897363887666397683114804734186936787892273290951364051598482717651283060510478663694902494511527631005070038640964158126193478441033758484864666959805421144488814935152846579628188461415888906796472974167010230670156839196092875351604500973616255592210672651351433673217455829492067751626832556788132520805160863224083578761165228880852265989659099682761460330865566357912590783251062434244978876177430774458416607365350311710549604676042109191230022254865727806477679386042238553929764414119261562288232988409857973745260731892509287697407198070445041299622156733368739312667466263982113758349234787371433218737491877797626800781091247246400962383804524441233100293011879532673833975351939196806721087851461293078987520226461238265817343934520881506476460442541666568213888287726381406423967780129726460357621494735575398754010713896399355576052497075993143812232651097724751418378399014136514954886740568125254324528404880130489035910632034340436066383809307986598069392225696037476824209214208465021810464651253580637054001979996835277472459146158336406448942287082558492995196243759602495336250813765180007636797806448635708054533599711838626231400970785800174567004348768407872883331175139710246676376376757999176824742110586049318547350578274022807843345313691377320731266269260742297799971482967371558440288185617863178176206737940822422327547488538026495662503815756340384033860212963371134318607986602261438073051937302197709948428959511957720631352485768186316590468658238223814438739277214954021346416361559154417544083816221859470169837600031004627242241035837960454412289444617469415729083434540736655360278957841461349501147037002047427168844732544400693603144098752943360987730005084491202911014200938794624817711540832399869396980852271450065858406549521231233442387579079042257509357925774518059592814801023789545106791045585737704724061540597493210762513131100102719906413916066369558595620016508425730515215490986660609834462299418148927135916034663580146226269672388431042808529290183854339667980346894591813468186394259111074025203704675162772677179115485061878283316634489536600580934178196155416393093885553669848694211298714081434791902871244998836423652736639988773053719257171322815541779826547516542504288696082059281988053534659165639584469103143409957292025907229178021576645823710290979170236670161581100769696862920731477580540267058072947650583418826909415860300247283925741349851695434754378816350324406237163362470376878767097422142277288416950901940929676747878839886538136834045971915614401901491155459002368104705098524467000788393972923213600419956548093387126302814031200236140511190256199757541484077045850213857835324976276821567090572430738062660039690702841683921116150049003382255388006879752170011944612652917599539388614085504468381565571207224528785409611508988140794947181369678176345978871362952711057851114445060253499556861674973025042493453028851244958147650641631299394675756184557442265183971561129432789627175869397045399512944357024629659275675357531329845891941930667359421798746180713353978037056478469553780204374505519923319693134311788733860344202425643134212405265318175511581214490092432594872841923603231119115250822038214068344242687133177524020935340642736664168621168218784895520405131613886279753333563218106203973089466317425097751036496928445418449212496530466212814225701061248585659091459552171297663598216172034148244380007464967257628988917889005304026173006587837265372504019515773093625461072848819443838454382901803633503680772534076665320772868899242771901038717803615288793205443437567786279161509925602897319433862431169526732328922586120612132876410548989839700866096123764823537494331975710844201499142642771746930773752704074067347670247142508775420661626620583189198450569413346863108643212181068660320203038503581171844282338413026440781928942829884479729819728793174136600263128014067925992317596825632766865179105163788883979285202713319652498232347977897858646137010931901384372738372578141227170759250095053242032489781091034764125327600349741848264285636025821009790639703496951929908961763798719425365876508415369244988890949019575963466523796190797864212456631908601647667059079040994769825608569688838973393535834315657213578408315686274850728596610479339526779284680877748039654990522900730549345873965389677783762816381191233115525785459575501802314332990998255912982754085942362799093562547814365525109915086148333676658966111591715375878407895173465047878555756260363707220514401238660328947644089805860798729670795567776630278716246264434569084744880361811602355538814550557690785109908977762294787953939530089627548659706627755604327961287037735322261771985698530481240363254949649202233456567800343711473571932544598714235515263067488146399908792910493027527417434623918613412308589685409838980054821532753332181488000185082661458987655022524023380344677001112502722018164072903552817460198906943882902225048211783204791111456322835283706639352791925089132133667795077297467113019057573399179831494532667397509244445168274392505402053973281321973460694482508828212853570589742945327564232187804956301055246776243502665456040641043336186059404857357174956109251805603485933114931448774263768720390173452171586253989274801292352497092144287120930095089914691027655190351958530134719396390729262079251787266453632957574260628181291961079280145722010758149766133122768601926167195054368834989418380296304163223034981755447866009865207637616546353916933909921038795394406037736267196807181048596874699192245749987775271714121357533086724801119444245143511950011697034003384553626992481317234705279320764530294130123279008150039649643028896206498321039955969775033616566195765636527387726422176822459120324363589346189499579686105949179042099665213060017057407318610481327328416336762453938062885404972643373328102299916179114842239059302721280221050400171647314370410095576815216512369956069783929215314980078924040880976444328459728043839582966029304052976074237370394770063067192535538519622497846184646090811745320530335710976509039176371020226158637938553674549290515034676914038805134475859979283577602968305885130284314505155286933638758941189509689908879307652397762295002810936345331764603098405371062931716463463398808320251172022832715680983419713335012605092687671391804455349460086073343832689341814117672151386428976528658244424694808951680028638217857931696081230335206042562888284166746218954026889917303878246693229480623373124036002601985555627636434007638261778100326764011992423760644793626487811657016811493085256602677225533619264789643125518558848899494412661417903798684214485831010114519954980667952510412541865351534308702727272658894984647724067880448346388209934632003399798847108812201151257808044375981203725653443061685203425940045081558242685664562581516261878095921476067621734567206387358517177352101183606890994013113363961138758058344764846950947878656641716349635429632282528267210166377804957210596164559889558728295437017103014970670267266879909382871091958748352160998763901454676987705259894881929921783336516472917078354006776638372178776156412948614884550238277449781331753127806415868098916161027388748333143824554217794005787345067577729565518014748009580747212320723517707526591275255847608901958929816681548609001222155883358786365314886737776867489238981316869557955330480569385976535183710647928471347668303011022233081417164108646978673678007226900341771094709195742748653824900811829968516726039721574889162866781979120443078304718811637814295388512622344574362297395615644023412317787692821219003382738965867239393359538033558711659809000545545210726915090830353435015342309629531423929030227199524581832205962169959001794625454608963384133098016454398862359520815107095462622157849178529173209820487426201177303235706100298479045214276747338338144718192279960712083908601100927808274269412805479961029593967939259220795728513526641418628954923524874919462713632595948317171974733911362045220162338876300329860705587088597276791468800638235386282479000769800863727782375032537928725785034067015113367541670217172076680472752002788999094072396900955521283441674255341358633062273446855309069372668820647535935604016296439122190499645002121605661601010760273799361719935787968651741461144027752143945247119124975811104311426852013878861812621373465851245748863170878008931616020243737179574135821708656059283402791322966800499704658410249650751265416257491663723104211990415692872480187250799947129219890159641770108477513725621841467505134303893993589366477677202977436401998613940369376368101981404384682740330414028345214675996210727097232263944388367190401311038584992920176053617900550407876195472614060000631185818391137646133084072913267920956146464671745888848906819049099500129867668221756354925692018511456955933877305769408453872575106510382882800850564303384586872563485999452189355227062967329823572312483514347901610434459763360205779868883573716628317795501050028891792771167316677688804126942034907141829772366785124246394019353354848622571091149475935711662254740819431325512410771528668501286341282839066509000204711087863378559999141729814932806815931121721359917450889759033046772740616193794284295811995440527660297784217011435373151817809982680796465173119600659463045955765205536065641166895960560426664484541494897663360394650966509831157814590786905709381198420697795424415711678065366126174795643718968781931820298247070613540641372126948449487631198548889160669464672323607854001587520272485588057467485928023211144000273570540668445435461294623775644171569244527410460861762714292158546215815268810530954502247675657247421558652948306312303539020929086325204365698475845166801224175202278161513679478938394023959737345686132222669596725409676096734384395252585568912239508643469938348099055183158523289325353668661531544555832466868459889215328541035527811017265760649732866165171190239542330800775613894906611904970494726623798615589144321801458362602652461226083950527768525280246539109429114290992339719254657102020639032694584156760268871024330236575533797113610962511222110648289834510651761945144716840544142786014577586669291239223944699059037335841122021072842354155527193212668990103209479121049829600627977658301802661550079292380165417477378012553941128379033669948082326974922575350151047454456679875723737225377887281646753408884742587415081218088231238849264335064132106941298918062987753857281006908280081343602194099937823929381048540717009042043579545317356236066243690373501246183166467058454028219205447066221631482534102585251427372851262326380816808075777255054943305668333665657368690811346199539079224319140655700695640956555530585155102284825540335038748683506763216817117816564232012963181035563773594686321021275080528597460713136218052870014116459964964542203657110103772750149749933069662075312538770753219036661739332663038295700408044009064960545473393525977900004837846029427467107571332255658287679968360923844204818592460299439182136077726702923783135053593719725627768557786502844882614896544090925631693194703934730716090207272764734540967420380794156333528888779354993891840965493284437423630129259786668326455894578629638810921701363443966141717954138976174153646379759846833467430176253363627565464051151564506508873246003576013360249192681353367186927188932804475506657041433965663399659263881898891433965965973189372145697373850024101461023847938774673165461939882929738924047362332604411617045595503736455723117701676559167104428714749548483915858316577577233888832699502130965789771388958613786979215782186470593566233045226605572276003632208995517976718338086653290574464970845209193716049003206642112822940680366269355687333069977025506772200667788766533029256973521036646934999826330668468455976107442584304094280130804856073501871604381728571269891997043025227731265797000734646342645089946166550478243953414532584053112243774228669174392410640266203923974905808730503410861748076578094988195312616032359533092967409850878027612313631232241182532231808447004259330833042414288837234513784082225898213735906319816400296506805128968733699023444795999512508896231867430819531873565630269491915501818102443345977125872701545511948322514280785857766697384963955630288761339267537853103948589415528735573962732989949571191260762645024900225474143541078305374922698835738855883434041948450674658044910658068983871636059726737007302913835955231971005367914575785668236055919797147082246106596523992855972823224163551055409855935339086610086938649145477514866801388123757844585648237327836965942965126898440134476662408126705069950391092590829433954674741419231004138330337052412766104308335326644999389938683113677373099713295580825048762215919945935746711591384282217953146660451847108517185402515599034709734007954927155375684627177002979165073982565679848714923835703446465989356006121508301090824001975097221154814928251337702007372952271996857362115631561793627458780611819417883008759877349176994322799977535873175425953292348956297561967441146950900714133097421778936579504233307274820125365728300922978434366011822822812553404610848826521683805887373718722790777368647731630486065662682327093073994411907593850471995355191917628071107345943111310159551617010576852310823588234970835972276337864566704016921072353440090011751626643263109389540152075013652804170784459112341540670596868354912536232939765536605750847935372958878696061817224182400683882337117920767352476237908243235625960380619101824624361472498258385356210376457995388934741067149857294295922232867376580432240306851133097638606438482645737718369552123465895011780352626032099703461429773572874677113166192163192647672210139854944823243571857191663105092653697222501518732679312560289855407317135987948537083510561789246207510873671516706764846580103182306147257425225280289626918269431643086798954834766932240558590524988420186195474534440846969418671650940678963740603340312756538503591514870096571693787826140633779617191643327645925401307875030316647551176620226596637446365845957440885203553224694454463783235497620680096484372549647866046443626833132397478488552280687633603214799181097997292232874332025177550706672890333774133845603873980164297609418508788910564359601175688387281124799613950445435851655537297183121794442770507528784669539237930907888604221741570530147386223730423430845294031099438860782954521087376222741565000482250649760671143966935140404846729409908661695580915744881755697054482369009864998654477915947273472836414900537079162619651284396105031996577131585456082232138332770331924382282510178404812535478726365223261677426087776957583281669996997197712302732568557324589388741355292573782422388556271101360082598319930607717178736993177306354161085237931855049784942294181563194190357946714462086368376229650727801187340056004784090365160651668818491349952490806032135673240723509101159700434295651521145405050099354845617473708314642643279763699410666663434560976829228030363315409120778366741567398671706432960385526315439312387138406881186333317493830543207627243522764258466172052777662368421912005339510903307763595579414640846716454540724427485933384658593345726523537076607851102410986738944667392706534937841501811906330192586437149228537747385692391104700517248062221323005385206470093730569746077404030422151471107947426440780247565975595569263039472887091990308824558996200674668502310598065113867590384101274168729845023027296681369810668551880244011023758949835131659829125607392619663597439901900691062707508885155989539277604478216854781276109152357937021105705455257993804633656780440756678425199878605503488061316570150581492263684099079303635412971388786108586410734714455891232827327600946265266933580413934571144195025761865168232097946468435114214314489332760823219445946344137100999259482721357417590960176713150997472244999094487844795244867244439856385683400665027969108843314967885362753947166267472519228877072400338612036514706908322706686541925929266583290681511644462843920941633648460024700393215788270504665020099664078560470071529149919369750037504081072528398669383680290879283346904555917432134773328914377119601332305114638939133840230162995030421360954393760597299912072422792191712034286790975324218401966916440063666229243456324856344136512587430525485747479885417910059784820348743962263710693591789358379385710388456124588099403357584387654740362488960972675746402955196715151540442742863089367208467540720732065760022816494646938084421138593219225622483869421659015892920304555757296725497339887217817829992286865692555888945371805394697765901377202816705030040801409856424369345903743664861155216341622165072645968756306620630542254037923874799756506957180901330112671357504084433651934474147405309831002729409061465299921796015184023823872070042833407066353772516759534314284482664465153249826938329000748390322512114347158252526524602060055770226121977628805006451350445391311242046369387236010843520962444909431717951959414381961824365917032319239617847615825810891896041968807712838621460188990379829118630885805482371650771652912075772623945916157566138135609220876177466512950252492405572339764441499953823458445551773333344041885826480075219140293449520906823668893427889785874255507413756493040093432438392210309976234024704340969216707539874520701052262592014495679719121643263311728825663307898342876481242781744424217115878391637904121001822985465426728201677298863644416624772743052715009391704493372260459946822628207006014061581789996599371993099921989559872901615718715663962618896521463721218011637443404226605913069034070527866929737986070611521338458735791818404733550784814630913095708190146307877685669123383338473844189435796079700361287680188655934724592001494575730811155795467965970096745828028001853216554369612624243594028742067184376460714575068027134552037314218813653501320407412838385374691355543415678061250675710746407232463879191428882711675751948937406749401456246294667876495996373548481176208095743328521288384660614603060350727219415823055209615134556696322264892001497090027272284499453490509057117870315069719336265891089009605699436128800247125218447749122739133719694125280003647389570589736045655707135565827137697475264603522121061185572187375765971555704155815288889496529726475373173004263653865709426003820531265671747219461309241930220673385710447875420399308166215890095716144610398917185129778544656334067722069012603333162417984346925392278607123621814004520609128659109590213477381228154772078003601295633439024349323993642492894569665934008725605159860646995841494529972514714062973831515778995604302181042973886861407394497506696590399969827898193314965293771232291080830854422676495839062952933534856805428399933830729005099080654663150824755380094279936471063882030536225022560278627308486098054898015999118178191217581203919829846147905957834975548773703371412971992762415600854375630280251086392597913340827914990375915056454309819660973735904505574798227498714438290571875142644480191169849063537967222170227402564735825340160955060064442363612101648324549841512609646336463101118221972979762303921524319185093895235530216866915048558771608346000908201479669170178828060513473784745231980570741467814940985577431100543726080478784096882295490317785668091898550466910386826218343034177961810404971179507388464797687149354899920411255232846365656792997418856965629134066326423106914395002866816751445012680657591558025050558539246654418599808596244999404475896510270911204500141790879239523568736638742718246071996822004224676756109121480550427332254350035095801508356541312493874651010136327548125937974932499278076767791342796842298950660993098987129961993634794816268896800961783315526407876489925278770572058077015184658129658405511312154422497068585420622996436387288001065362665417325941162277941456792205256043837786138569398012238899159586852599050440342752638943342883581341665453266319341484651338420445736919476070757531394270151071485924365773948596060025831124377403395902083516020798772760107685796201364857520546292903788928891549209234081262087004074807599456033083811876952483254171582875424231653092103784439806418318523092315387031160151881274993589121406451215689000517217268161146354232560416657167229646077096849471551760476280113708770242223974280035467308618310146695441196675616367843444965085596148500616375368512848996298331028049544337604552512436750591524018839290467466883244541216992043356071544859485035248915368856802552024620013322775366663894533724125293469881727050713515660380061639747067802808762550549179353373983735106823211833607480542809767261349890113903022119150189790438782052000979561677845278879580972483905281883051878653038777494575248520592369405223720099881858837915161505566660015805798070725151338057273174548593334809082214349712754197262318795570419243095598632940495671895576759373018536657457831491894704372690404768245136205036115453263973576871048855211311837818394318276905968228379197269203410446917149173364660595301953364814643186958385361089889002845091395215637995908451772524646697864331761017927644706392891523820279806733092046001905680856127441978997974396109893822219368139307715655655883497638295587359013112021696150664839973792904890321101195916979949778042758737448274792406586468968674337133114974697222324563558338848772458938354118788764244811249142654144245769693121299933390519545114994152543299842544590859834165515765120362539345903195139593143476808513727045073766111001908523103620852485905904404578454294263637822110117459895456314867560995947036529447638787423074108392553708561015356492829761969428948174652327101717358108297477789846051355631756839295025981984896797356863154971941582416036197639983920834839579893282230368295858992575720318400737294304300678415037819437356362043522808476610036766541696852040384475135419644201543170205187733763402844968793888013753123807436692732845238568103684561202961650951284386628174940616572184542259895194032680464016436160215089702718547474442764289576574002325998615485730195576681618178720598997410797153986415613010048948184382096710076076182754080759480187387355681732876392911274896778972162192824408546004393899830132933670579507054187124569258959000254726750883299080093745208993455857194932318798108111319150374576558159860998879442435174988080635115423736651472354679906978379888761561631604026811007463116955733399931306777912872001938501203649016265493378169407603909563933299577728068261157398087087133253448111968318722214097503711941528162243284729283718687295886436807665952291547680423379953455080119835616516243788693177948880907229338237756457545832707582848915890227536115361715247403975051756353346179070840697876404116191232371679436128120358503808514662322493846678894805633376332200258091621503836247998044824435405064399918026787476718923493564511519682581937464730813099919666195562220019021633128085533437356443208120697451768319837108381574135056329418321925250073610810577221345548397920788243623731801138012175143980067123048831742451580901044543392649344205788200613649430854333467190934975097951149643616269192512073995470947694138658775452155587689914089952773470357053892346579746665356800511367004063381088004001750086488956504048406966789300146989810505985767207566790075452498677306412572120913227726937695097022714434294568721090876794267617023333217469077881156347355843214721801672055589505194727959459874876915892870627708969662378527577385639141623253667242347242907683883666495176980328110499376195266126506159304214897230696541540995987912414955329006444584994502601689676631527763864592946292313910046283469406736523501830633979243951127433330221781773536746332543679841237985470225538075228245292381524750603254898522297440351896744941796224432897942697250280915710650256622326586323016737976021120885051656421745385819475500053574355110109171372452630916931320786835752103864510531574643734545818755684817633745222690154885665030187655477630292333689858645411585475546877239076985617199834700039581888252378819509401199237953541488823434236656805108867590257425023397369662393472459395430875538345539388785985604595959828830839719196848481285496388828436722719147623146298471398664061195731606523470383760784673532751880168292191773607405992150896232051573129323089337866208709060556390686600165940220976370795871962663919816162280053795558973028253599902641708027753468209769066286855466333032231524352891023743312404198195366445609984299286197933247682611727084872769052386791540452492293058970553221689864110457354724324603103345133121173888926561474142719963890350064658357669525215109879079209158124524334283329960579320828683731398042339147866319116895223929127260932833757801628980276350935266014122076783138172327317127628055175456419850773923014370678934452852441618461586563840374014519353520684549574868250949817569542086323645454807211278821754633833600925187667943505525689570035083424864086884762440211186155099065208046740327944210589349108916901263034887489569065854755230076488419988317778630148795569784680226205863125907442403250250828291933998014710296653651313218464760426503547602931933786310769671199284260430855749072471636476673005757779656955315583312342331881812806303003196804122602732649179095360916922879557735497032211419471537092784445130994654607185774336144573389415225671981887433872758437320344166824626059462642701857535670755984110089379129406034414330575270956145159671008103406189293513738585324973951117312817727651182382270634732066313566180277077911271074666545768957069798874286763090008251813888492316946747317956034470579231409275320703520138008199632812979657043954855916475934592753922308148692367697571290051561355933105033590498938003661329337025845003354874442684809071164844009249319321967841591840868315606840538880196628893555752737456614502478054236103082237567390643354725446710928142311231753753141399677391068626854175765469797755736688056176838511941556309918453118726768635908196205770902089052508423534342091221748924420229332745784571885397184317231800697882744028025738490137781469022666851622866357602818836280846943483259235058374595812629863747580235024834402207904366214580904139818325593262140386698696755758199766674346620970601093457201108348286643929237547093543105261380932433763608101130555962630982288262039935060067636573559389466085283060914703418093127411326760946629942401363475611088619953927233030718584431501992151603442183692280616208392233532945362422164296724560122885939428040674135257585587254482617372876020356745613788418067759164436968993295718427200027983590553263824202548861373488845550710470642845309439681399406172489611599579391840623862299043074781786594498833893430427255536253405601988188623961071359997031530416583525104511529850504196566718010512554255774131825037856528131527538593879448712199206387216813527135967051752305173135970007284689599814038076572319615329324389107140576060394524418626955175166679059831978460368884576820234764045444759168945993273770128653620148875865108023790025088123260874201452195493564157713266037771380295490871403379772670107280296345446828787755891477237576236715379511791001154843051247027870719508645288388241220527697721309472605785691390693827758413023553072316272092805176877666616719078918409400471555692169022909137166405340385657308767423558046095938857154554971529673209867461088140508666541266483115640268138405255942553117802425205176284203386292179971031620614288844934531959498600727746585257859810013994224884800326998779996190275563970811364158330643502578945722282618913595966385283561313239778952746866332886152864834947446501887880774910688433509143019803809734537069717393645156938964175573671802639387202382857419128500186039855200354604384770709273784823532016336320726002399075726671516755260895814501306254477367739649985052592178395521407072545224908497055695846848366272421266607826995484173040499263391992016044783785570311949626056546516884667300608764487067477483103098836387902105528026473368242847948294873960118682802903628787489557164605591772188976311659744207024301786354440428094717210966108618604525016296400833784195095761515778134917680497789275346745667038081382051332352464579724879778450544638269533697918575824488555067271087801192822561274251073147822488320098662719986959093508405019663049985545987445190497558246825815392088952267216178482515109576079550326957155019884013536002638139948012845466045554207692972211129978680146156363100021425060026676407218047141885943437742419128099609632908579539362175897558667225091434066036249042163510722119546482869633463585898060104652602520728433497150225113848180886525393284119617873157620487668167784539789806833593385286270894875832747212681405044921259541629743198325712010991268162220748053873896275585261835534128785767687646529510483989146638332711178240898644720532037152621312693820004214612041683533776509745201698990020709656785512388079771367518827119826955473878144707597112973542805694694955026501680415481071940827100426646333992653753727953440999542577829895923001210667695029288773832340444291080882139664688379272777796937076025471194512015586483844760127913191289608420599868427432810365185379634516594326476593863737626802247667303301427451215406739754683602170720830425360340908916087488629301017108873790728792810021305308580236484325675188660001185843972527991849456068926326894378879368260755839770115721158409670903096813984865300269682625018239912878842309028900994772948022387288980833556250983547285413145987202337267382910765528182658119760847279136973600144838993620219852769127931582027893811688540919058916553258630004360355166325665999783274750226642515491727197757545305882852422635873051340334356005314069528288088582772762117974144402604087437700745987211787547692754584564850473192951112748907300097305501763334858976663978828018621749774448932170326837758862908412214120603193432225416608187762633662344901060367379072532179501031805353559710810962251181681435635697319664814986750593864942506511241939473559315562172361244049013021388296675847369928659064936125168507487334064857410482292275312949570284922754208419044333367166518754372649485181986923601342628971811260924678174723618500613873507882153299515210501840289169855773770896676216792053681248463699182300319350564840497258625939823815054142693742575151103280215033753423328264228186172089053520967488725034307344972750818189946109762242646795655732936415208161230113199940213059163421194588286554001283931254076002367606184663366864288859586559615518551282643455870657466313311609443506546062725569967756131419304927149381246157380227337325931479266925895390412523605973299617600396242702803542569181843617133667591459942157392104201018730045178082017524611750255155532940587398996947938938777832044739541749038142448814602545247459310685634277952630727414383172228810578136359968897316858999969292061815629845708929692739698410765756603507995231449598222558430295835262178651324796930404010551664269824269233430862304339951673619706643719756830415197757080829109516623724146321396920122172448421734257998505105271608526146307856186417222088822742939654426172994916026287956893759597455154040222570032521810846694445967415141677105801533063403102321523472592707092336814350913993264755598819450384737739376831864507490798519171053418251428965342473905852321179821000774413201544850147869789952503290319598372174844433849006676941385331154879447294195684989947825480120457780552471107342015309302897136957869163307610887718607774515333913032720930226715692747052503288263234822551267100758534538710295622902920016101873163907208457227407904425318852333246788601078646192325068987629381144794160989791199053437795490913409465153431560260500772721191039748753270706419659461233510858702941480358844781737550097100686905496596331851925322069436221069408006705920022828380538393781577008853669992716138997156200762227011319153739826622817167069780296232879860119692132011656295824283622420522600110207022359844623657805778557733084254401188033874856959472012526729595368990511326127011964636410765710224196041907291014077306235383896684777157994351424482807646307673104851259482339520604015598939583291137346602904976670891680362725348520416936912939407970679040706995718914608491967576468354585567512326845773989541178791146584761463646437957510111084102359871348350937276096912798552015470603569295818977567717279702213033041916010753163829283159356596850375272982608644366356082773171592250615108159873949345604158887711594180467692765821685771447093481010724026456750108204181000388461698715628340686671884494002803272282469787539801123186175103970390310267456162589716346823182287196964739586776027305172032470712961689892120354507035170933824453402953700456692297668438819140627094221458671512860009836902256941533797556652971915519947559995801386148630868755424835498301131602168328121288546007911963491634450438083904676037941819786143363304674252263834975517858466094071199745813638324581448437111891659389110012404035041852613401863757717902643313805883863699905440351455032474866817825390595133274812466549705767824390840840457325163064014699361477053546598250660818686424255026996129515867741042619772741991650240692542751228055455329313252586563281022083332465889773616805416052390933464145955234427204228114659997291170130875830561977391127566345482435213397771094002318445554961152829607601915115198586264406295589765607541511710081017605767860569437941041867099741185665241243603275497369126328904895168073229868898972029113231905758569344242569538143327829749679051647178882323929712831902732174717621740542522380235310758136490731363347728753250863789587775935001578771000596656997732079495894360493902991007090972158334474177372680180720277119695418118616284598744481286343251185464842542154224834315100145488754345873216714979709599402631495883175707666160723937049110094930234421927535516248230723407176098292139967627909557753898665590099610170060351073719663470691373149614845080930823442693582910851264659346896071176636104148117548422518610948785321620875786584699160671366506678595350003454338838996138649081558089575564969786017852652098387750675720939890679840188491674642049871203296556524908694432337395538059545293403068123780528827819107927028226066406285243931748887592391009180429821336080862998997580837054433268133165826201238287643302828488834479063986624173603406403470754089584530557368776272383795854119331174869859549491906174225593266117999030125029677235036480858573210664469214189838515000317737866926379327520641071960391310020266268282580134428416331180977396195955193331060860096629249279441430241386303869503677962061226523372702913487967297451793305662780553252169402426454292625317103420268119148034728927839443320953927028887941187701567556331329494152079351913633335209040327207923104344117569284620751085522052995659974289219237656771496789950412063095094531400282244368961200193798156704519682901506114217424791571764309027209968943776146658203845914101659508957646521426924807639698205760621146569053586731014975284429395960607134633634804947488771671689389037498143928270392168706219368792160243568867707988608474201064884622925542806326175533098525974445013806206518441437523486235735819170994986378689875322868661469086409755850124165090428386557529226745484408186474085230030598692374955031470996951209653280300816425994553385963610454227893424395845453056601088027441478290285227316401092610378277589502623972709866993234274479608884529576717273115201121145950075454786390536572255416951414906017550735989693236083965162825664207027143187024153319282345631918361025783806876696771657691259789264155781107307455951669504313090810858304624379500526527277859878321527128955437976438750277306247359912694663171726544491813159033258910415754835968773257442243376140747247409060123102416436936485243099830417091226583473390468291558477023731310229693407324067074084030833989622026141682155813658754517361232149044947820195235329544990466569944194820197279455649719710717516781275088900153523159812887890007879743387867614020221118366179489526030552610631634168164126984529833609603567338065485194146962017183208009886553456724180465992805552185501450633922782530932230303597402414397624843945311733462996898293520493279007291031864340498775280367080519287853925994806356498161496998963616519426641119998462142756330913194654525691331614899646304438468587530519339828116661534092885066918921380189317099449939466445992873605129216217737384887073331799162583333568669214680494860292872386777373905648174809883855484692903975110549566371335093167833190827222303134729448538391151311666906455502530692207804347126639646734663213339315640523720518631865296753977767440580527360256595686863412742048288409589067621959119746250300528860891351989599540356584603036263659620210005928638985975930264331369983462955102607873858232092827100667948909125272675096660676983244579604407896873854464700676104027918592467781450111923500635759115878237565539519628699959414292964452710227076960171353617351784270238695478706337725630150982283875757541550533546095550893945702475491628366715891181109334783480772342977930598962275273284556897124487406366716229614756044133436851351481756007956618932506251084511617722900956068828678062052375120256677855774116958646579925863949070822245863249465451705460230121960087093399138046100832925422663430066452176834400021719608092511219810406904559895527676577058235322539591423164511491202050168771142520998142295171957525490547543958235285487094538352169027106533193372780678124276359402765972581393401264553677961665842678413827090672819618088839154609451418922808091288817085834556711687332493508175860576412817231740236304182899591795984275697482396359677378571247896514938217290680823233650393024945849827078872825776837413816317244293092030365709110807943495629345303859854235642314209747427364688288197672737266180812724905594022505705555761770838649457605318771146626145464996660586436536567097953718809057893159037574950001303675156970529777373657352704643994989620755490269746057580144822437021010579851219611166060836806437286401817013803748599148192909013463816380227715697383383745908863472319632633691967331270052939665103598837396223452096624941211198565112547450655249976598384175111244311002159685783074443240936935327629045868813288751125113248972867717367114642922691029063454535074385154984751199633717963541592052932806619373924512771848227150467296246126171297389860494484880322074088902211305344050288582045207134202971465965957146776300533242077426193229176416562728858072351031802212576164408840150805286591471904134242793167335843305855214296227270171158937695315424409716631331134863312494120994925341530033731584142489518284565036210129638071403021729888639900615318234675555016446667965925491395344726259088000016170744855869865106394849700433287661014506954897844974025339561581147155492164747036665500510643460043181837193576326507275138340269441968393795566378863242120287409118042021221539938251452667629835142136148508560075254254900972947940324781213267155535458142061977821984595278712626939086154487008635177697009126729790710714393688524249441335444970835422392544380346619774268053977268263536275946779095900471229813051651923468508395101399838651928077807118811798884611674911906073799578870154106964875156338565247783512107120797791695824742928501152357398612301102995509422436238142039400818367721057958182085188479752243918340518678444472204401537461300514879938102038549158656572654158181216873690922209545515381802469386053946223397614180532460089645782253804948826944734392720018712663811820314947394680472198198237988386259790836501845444700081283213101456254576364420890821839868654085274819654177956988433378864491695854753361936611422836362678495023068340821291317080796620190999155095754774607655814218157928211550694641848648911742377011302743636314386652414606599818524792157809895918515474463087039366415014344081643694863018075184526663434244361721707897321290291941294203281888724321529126137864601447713371093730116991247543792649006240831172432782586230168515116687786952127470594100009017464123517297674635672385766960782785129425385809336922905661306139657006305146274666297240560360986930535116099147948544927443492445927553473329293656744634333104957534113067533726169732639591806890275265607069020617090140235441740078487022495149470548482612623747855303308186143337842839277646183835101899351074040881172000223821609978379929841005732852672372631388471747868544674067666023616059746642621544180085948540702877662477799255790889429479630743492825435485033727792791717158143747840505520136583743748889160538889562140803501467763442409110291010260711863817992750880477099331452229775121977112558748959415684297896639547984097457743746600062588185313365947894161572670549159475875384327754444381804785364083490256547581958611470546522193624763776868381254629128757814718561932207264022245029578118497995392769384150198261853739870946820188157031146592242125270723265059842144704379830017287894431230913769920105013704823865257544542911719395676790985559691504350281600925416623470922571546129778718140628891837497216417380329391251853463685932657831853201883345357301820347100109903083338893966671666357692092198336528973048904395939071964978338968825230944005766147830260002697635256656280271212147060645474480384192363998984562140945986618799677222419845921524118896194824110834933805663840174451057547050468368335796710839648742384806946463464248105128796488709267622194220276462640373063450415980773679488563216739369782755341047255729784786443083281313285763458737375981665845015889509252796387206364424931219514415374826047494065002091822992887658130528462740226965176513495593404477733019082287898085430819795110307758018545841341873586326422629964456393954794604761341956853107837898000694778350759794316561302838142917407133490713302205807905579712620936769680640865690008395290278584855273549696778153600433446453955920831866367019108624376929300061226213290840617921808783607204332193870469704379867114430915943419449558295509387371329035945717963184647168991341898204644624322469571915216775046487985788254888722085685996888361256214514489573318249296296211347909303401305661337356287902458120685974045555218008027960814166420337584719921241013436754614234894140831959985590549806498530206765599336461368029828743791962844053759788731606413038125759593964723859005321820914446289147592005792074077210977320149924947915877690642688686721399419885269614457398095826111039421669272468680156865651990647525130374741422293187214401488337544650439294911591833257650181134795498376469225591036789912136760690065813373221374256417605079907578227185235127248453559418985450401944797683043172471389320251982605824256399829349442119112619110782100876558826907901221998974064577704475250683560248467166528784534524034178956520066197069528294023047470647189487303359342288889404233229033319791893297480486873171082056144790519850904756944757732619599080927661684263275882401901680832048506329009645964683665863694131785223155995792448571775261897414034097683534528223209437374560921681742013960484968135167153669744355341847529979065541859003570043908897965258299240277452163092271742957344736446657800204160584324714572077273337585320126309107119960070461966591618881503632606240033342476130027441124437632045384584572106030790363298853787514504481835812766799897044236983500547954615617280714453969771056087571139280700262851053986102128158895121629657859629953404505351738082655064101707672945926435737941515917716530570836259902521609961656280622647689849713578798038445403092785264531789260880695985376986192539413030200182113131654358372657213256200622474796707083427531384422086078093003855273414421592405161080559487917774840222056472688041975552790031812999945353463187921471473175210640132526278668610323485696066738313921757583575408265712413071527617879267526587601007991093346329402161229970944119979254915118068384885272791918934615519511687724355156718215228670380272788554217447804113718967475086959793368034656736712877118348668126970178832429155635056530877214879941662625632656262900370364945003872316213988517714834405874060133734387891516239232277982957064733778269779400414070866402279258407014556313744532726040301989253799741556527247219952373474009837553742691092897310114660537924700369664455780324857920482739866100252072625081903313432723200363560371502183672420691393468396428650637228768969745757600606132602601134062549424900584447490709173245580346808489899173419312737486028458259771723347045941275472799369049993482172684799409493407104043648568282910376797004119159270122419139498298474737570966062364989039167399319941222492834429151206273514726738605446090542171431930673863737468396841196019577138885001439208081169320769429444550137335549667833813819755090956453984662783655857327456022026180876511478096648968949591091613214687163971233503620963801114371863680105557962901714689113686453726717413877657114350510787225878720906679367005861971777317760113395410397808495832094005568840592618325606210324518860346054330481731245581520762761375990566791758959729541446091182593181402646498368500514600449102956918063336444226096840556796798225255592950038705818544857756297728328765752015950303393091312815767962801421109841552576860465824061100540021959249332166267363493363195407736660150886956052161632528372765188879034262580435033292714326045008290670230500081911309297285216239370873350821613521404849337626387828455659790889121182624242638925557815069768489830617513223700987489052835988065466453462622750392161517131342690187121572916055632469690092850296991653840219600162486837103725081201122132378783225871350925928630540794069159741418155756197378837234051519825733530484080195789972932188017356452120070633307261591176519644484328043367364517037539372924254660839109212046636730600309533570176848952020080418030908442210139845642309015098341363912817721164953569417657651569755846176172091896335912170743145014240157589809808493527159760120610314792201561952424216804584314855957809555004309199499528031192882282589973254599389667746813579392450312661795845139438803807774037669735902772619231226339487337927809446968500101696456045119862174570611998621373727345321974224268696845035060481226358927044096583215935961698958329552371836362197499060934675481920080355869264116766753755764458647181217152525498910329441663752040668089343111264445300961022918960887440987505806676267235946347555137642188058001173786233636252754798386654742984131051885359788581175057515194717769038945437375230925036308285431399231080791725961165670924192191326401043259494639387962535716197960352072038308369848378445250306355116398077690642426648233601498391570781838959048861183899130968799305253440292405091776473597266604616371256688294047520308996767833192203827294902494850767763002758520836343208272881951998804973516159597190251659155849911286022523243614823587588501313684863958260818219817881982829691140177053259919907918795780355358048072930871591119786704511772549035194258279292323273322022034467331524266193158932650557256766312449823224857524380664287548292653158589776183220378194725055288984157797294114362359001485892625632365969824720832022997950106695835921183003549404909845966540839421971947995614638541317746706007493623467399992772241798720408899933756416040415539833186417899143418363575985061600953267738684258207663871907919091881523870430204513339049110741022088337979344603859266758904602943770540606678256140567879376911188178839195274374630298562550409859824429168591934739265916945384464891739304278703329263571898111025821373842747639677623617007912061769839298710433759584771498624593483375756056787553355196928950322751530948383974140019266158068089874438813963301411211542199061956684217804912521892619378325402420481262324064865600595934264038220555524045198746518748413115830497350906489068295772152410158870243751047963938281795019754447271309115190746243984356238790088687472993825257974815312800245475281336846904260805530180968800646261722308838404965715997566424932903423293436472667271693443631761986065683495525937352327058209585260165870232112158950405128074406174493815403614613371144562627059221073826647229166087921798968513070467207466677276182386457437604677823479652579520075869139697200613724311979506657529649228573223388885880624775066527876873858774879126098906617757458255939970291025895217256892914679822829379131357049745530234506585612654788117458512831611511779845237288374666108910755742142909868479438739708128912891398944093088011443745646213362986501609662048904258570742084055484491804103685875438851733545636658571946240331221009094498205836104565124146411939334824515972545518864877936954038001895788866750784908759499729792560101536200945224796604747433719164815472511410899488592987930597907931582530708369644990118629944702318047453689441224191677839459974228323303041281495066570634326679013425061645288670640138032340686016398630319539791478161510601914628357335167184733762063124506168998190584740293296892302375090427873275541143896421945102763707165028595518015031573005731141974771912406529599038312883826760178952106750953709419320187606636392615589628984198170343565972866341291375284193693760265257448056901686862507961274035348628784881081708164819036643510632795649016336884306702220468212964262742410603325284695710696188141899146353559929515632135461672891958769309178825107042099370092274672889341897836072739499246370855968241674513096346390593755291605279508095679840511887589352649682447248067978134067030532174270836871187074230590549592769661512143948933182803277039204819682600292808182727240823957520857056474006124809434867287343077469216819453149965918912165620923776269478619904723593912883682238412119512282371577008010341318801022198988653194386949473491145050130441026295737373891375858016531642051364722443231317955114366086783358829070189002310501092706679732780227560146573925156949686217068484579949853727384509915334005932897743868586180686709012697909302180849061513065821162595884013321101538192984882562849075544704839405258681372389764659948454228854493448157756106730974171956868408079438630997569792697414578070535734979537218652431980008245649313283728425472547039930155978063968233467911077733389976322842080118150623733658158393278335454263406760521146650740506386801323335062319765518846977077111234224826851596017166291013266637951179891426608580218338525746292619318930940021431036004650683301792023284995578979516227906502961366796718072171821255489398430181521722736062232007412275600976024899220168248429748095507574650584579608884868070884276230063263597027016315813096157947622117554845444560580229431780436055559565063365217916554626349718584714264921677998995010285195735619544285601703074987650219863988654548194101846284515294166744268185009778371960795119284371837968188543606110257095123352972962197783228100637997957704035052520764964728424520008176411472676562237308276800981818084918846055069965136891003213510685266659323447960306265679806466765928215839209225897238081147066114168940977639174324341525552584907893109853392781521081530680909500609810793024423727512259840134202031151191254374121600117646773800597797404934498989144815732102721333483699506655590551748357019836675060410452298087143494157290041864666155383777549875401933286509579137288644034788290246187749149916075396009009993124402441028010773843511735238246175673689313339148508423849383310062850708393330418298736887991153077720897631417418750209583443524926285568159514273275573777922230197876628257804951042987674252082625704449279159965809349504349234054477476328413797129063780024697903045971886914053617223902025639886684911292051408798484493186015029837310713740090293532709656490620146232523685242273614835679499643583074729767823333701770497983250492657681627411871815717303248209997730401963790585783882453129783130725256078551723102239366569123585112492180494751548890626511016730395571006417390350650612214706601128332274302742617139419320425499971796806701542070710189246327339998868087296981895029384783549875987000372899101701199709446254131877449255307475525657802896064415495586392123510795051292955366545351845116099659320412890426055183568571730505602162420831346430513306893193634218170878200769364115057675495763415087259989431622440143306532983601315229831326426269009371733307047723003267261414466957425192578496266283423068651061254761283027548423387996233128644482316729772939026407096885004617456318810914328769234449854057120220433468082811157714469551136159950738269464199371189741733526818525688924532360969605652099466452592264514419866139768216711564252631884342578346742906702247573087556254746379249774903405076866176090473629041762824593180560446576368778982915382177644983551495915451178128363908897747813980457417419820570155642313474764105796525362397705443507112943928901096862233590353020837423655782986975077844492693934626777538356367250074214999206413517605442331753937754454688053919297455988010319593756982077156425745033547891369836550728197532320230736574992787491276921472294072015549517301206296123398626526420837196829498377083834364554748460330339111484030189063009455290214088055102783986776509710507328620221421532240072926852207270419382849347237867120497744145626659198381021352408930683366622691172965291178047614600072071640765834751794024024663917644448056865240355960934532702791637384518013333394779139280472991373571716149336682027420503354033043328913403717423677907745212023675233830900328126196910438627551686735014227212236461206363091790901792755385493462085324192079218889959643194423639049055791819793123851621562298499442827202691109073349157111270082095786476247689918116430016648884464310953679230590701943734237150476727248509207234446933221176444529801138158589644429519662513265086485847788008164808780694456518082784989070859499949650358535784409158575039525502179164435732812510035075210682996190967267172924912860636276758887922167574884901240999695412177623775731133148337206951541302578457956242350367122908814852674730579409680711754135718477552002608847524730126292668416848295080770911058908229714139169626534955595239043772238799186677958157205601914076484175467592596196239528538772525156341456261915352295322613328064538945050148048354541328209600851040095107783091904561134248663145825009718223754417505636332063901290948979063971490146007302767769521465704957122780591337696833044073152654071927074592389390473370175757742164162966445183041577695449683111425203396244898850556413984025414477143398720336630889524141123396636376982205321208127392042792829387040551158304918279206464966393413541813442609064212396872209429625380207335510997236906581156641273545199280618437798555211542830810597920936571562165281032288722653260918671016357150668251035259808578089970589815005054737673996827816246571633053486147476157269526884091221441328395151296071246787332341208899640594583576493627919339856915090880424561182467419839448771162468193175196802957277300040131595968958712083778788337848229230389246556078084207091171312747603019101681341351648204875561153496627773364885492530617039330750215403603343093389284188150425319992039635402196066444597518704865409003669994986498804479724096989016644002605328107946469542227935131241637740679228733960726704031181680292324707097598291361745994938478238254884103548458569741266042474171261086498945129188467148724398346209179905383920866163770241703838692765298916274708632044030575375616568684566380668154240139616489594121867708101677551910947784536561814033917315510494847477668358335010384120016236021210765082891315066906808868926441850692276842637625279352887766911330788473858035562201971725729884747033636551175568375511388217709007365315573088234239164309028585904726559335118349654406802659038521861142307921609866037597641349125011582859111767875946996760789384947683385243945804994189142295944233471396143180127091632417544401009573783423965644552623852052930497874860031198304083757323199241516635951321171167887470856020964819867401042751032746700566400131488677680129775505704240329741342992201986451505672139681269119117539337272899678044896212559062187801143492739128977899598777266103696709078558752516839782044170476743602002422743512281580953909461709762206849505666542594923442954939388656823545979667523113917878489622782408459652044473381048471343996124520808121358502829282054352937835673543970378813920923899986596541799094991872959683060027952045694763053323902668890643909160818838455080460126293064806163996944195150982524469384117557906115700517814134173977967105367743826222615323683398378655926213671773401425967303844540744559784499186812025667105038977001345761161219501595197745120584466562441161560904013139600588401704897538641021225262528303172196214998078928278036684657144291441870664176671007087600956242477586547687094409872618324728309376602759763210908093247613115577049908038959571410379313986315269738959640832935696524995070371699614892295236426652940118075305740802190578210813971704592475317457421302388375798644576127703423516430211010604082814553365166705915707256177659592414608456747953145584948905821031858934068635493971483181725842101200759444497101677812511800411123859325995708015485553686447747969065016054523754409416953805865943139238535548238298602195484697851013113388501339941999287508235796415125199377136882333803005661412444460909813040764876311558957054709708707378415024501394943811192504987758758902909196702030839903393406253643054885871358535620647535623853684454342307823239301813585009619439466046621877165726809044843273762773037999919283604451967895193289652765583978040932279227122794539715467128608030273543015869359550212950231048327419289738205109047542724962700994366863473298317089991715443294556260761255637921419299951404221102479309472300358516187305776312929740905950702938441487345740508544207307618837390052479501230394468175421982712632961864866098054371018214861753786083106726040215822064838811827977672600858793555502082663519920736645969184812621072377330540168249344155057518814098001417183361005049029626655571888432607891556951964479291017303358615912415047416528479811586275547307246114588663905117094672001483038373312826352415562627410180772821542380790106609264631504583140136659776765688358936494586924400820448360458379828339437266757733306289635918298078747373996527055672886752426265881373260637301113180833163969486180580141692335820282356711769015649705035102698238019029161967715918351271393843576837739984619875211009924261691610434745776299137342242425821066181465224007735923268742375117630384506829811648738700751835262927361736246007367709467798536133644025928805809287572027873468334493009512137837292340345983297433971846214037252158666078925411891085094043093657239310030253127491096499908292592989421287427204439183774708848735313087051300042326887498148036335956317929132660032773922620895535450024270845472581357327829244602739842649740016018973323899957234607203672912426500442442156471760022658464865537839429025000738177754942361345860937369227089151442938060760408982430783633625246307277095879665465748128063219673851068196300555298245477212996106457963492308592733281757987478586648302355579799484444126859873448566939466670889696001149132297786870746847030483443030383447157733829459013405453831516130258940821301950052960265782033735094169279473801057765843367388000870296774298683912534687112906751276970381640211821242276276422186898398785312210495398490650739912844944798348351389247141395707276706964028508854977339131669356282042960126376008780707173654323512829370248005720794649378454459086811387687309715241047464993277554807711713292315767532743766593548363248134038406900950041538990830599009693274961213627817172978116930072778912183313101180347255038587850626203269010487047433907962060721573945718492110946945150347775115470365992257229779608708349958642561090483263341676153087097207544079887041744003759049809604292043778904045901947831112119963961076193880074052230886984693557512583983009505406783725423424299087882842260403021201032306856885398192549401870594500805986924882330354832835813515681213545816518628754374170155961644659327670106195029629786581023867857164248395988891908351771311865453838388269007789175289750967480811941052362817336925869577530560638240358337845520351774015730094707539084856766339520928237066967623548531738272006596165488426673055420425718888964522581054480957383470599233181301365023930510842594169538726991658753663912157820833673746688879879594995163660563581287361105275965188809763378167311057035494158887710725190323009335605585352017122038116926795631946145857794604443321476357619648369015287873277459845984128257249462181745174957498418797175518802290070898979892710819827288561488274072285599862390849477881742634113262310084016478186363418222243852245483055805828443801331610773963842747957925429646248244758777692402186442665481972685539225571562887096356893327617144926457192000726921061143826116018056121291247939764527517888846233821251242979441754002703366001297552362334074716803958250310377061475021928593836056024092062304989507341849894582792647872026109639646317353995345036606164396195967320702131601601226850210499044760787409943594861626479579918738961376815186594863655589311392950148846897500599609986375863793112089491108916640355470716813660404962994945349265349110234532856997788070632426982094564111477007582824126402780331967046465842106413871148191380137861743076526774244649143860503677032402238572287886360995819987153813152195344979909917618008486916853271373281054038969714042314528073303738709368527339083902120162180195184852560562684513975463726102733032060470841475413581627583837143996750565549122843789724224533273461602258603744623845771738511246873965963467406714730660947430238177027138701094670300775470478692417698390548670819151158694350616885407746611261801227946261664029545842285569019558512207444419447193286077861546807431311345712499397914757800396881602025030796421103469496029875494527649331383127427871353574151780840250863681305322936176981592208771801589391303987397426652561886656638072918571915385091015086171815823048489660752763581817373337727801513788495431561246409089448040115805877180167800414075217346013773794387749368753024602430462702265867806599445711521632114955157721242723673849663058515731553870333205956606687862470365677364062495393413722669044452442299258606457918266387853943240031692954881945118199064191583947452294648462472599412931932697317406415632665670219566020953977884498401588918134752321470560484512193646698995889595238972631986639458573532361807660243279699363543833079895748605502178224953898806276329666845072981609071389047470848505238843196891340281579518148588224395596747028943052275796894373238738649241093160743031183660599680157723650806712332912290649896595504322530550415572011859346631038039432009462957554478885077319584456241059012977286102217949551363743219438721834488323040320904881215353259374797091949463745687151557671729053440605876978088784210436735413065644041616339156291268830387448179796168507474589941947429883850407622265851337731781986928294553062334815652876479282713223136152126899344328096655883853663124470138960398841899243646292521118447618667766482325451201388219804393881545676960176115222540500226804525512032662541403147136762455465404359446722608287447464873927484566550346150371011512992816293011556694022601488757678681101864693380433813852100655860817555004649488325355547709517467694227591145113859433074227610731321333270436653041367531277132082740992091546250771496046254773318154283602218317313324102499412333211566712090226646125439049921191203340080319223135107445523277930778308937482019468852923200810059789721275061994505383763297603730551026456896621875137393965314988781836888694028449404463199794222399247482364728278078589129603586453680358203375124711834708866427690771549471370641565920174086641943083164714651198278814718821385383126772459300060596683557609194412368021956921291133161238628495716284683697687812266063830776920593792174114280861601049664739232388210011107638295090477346330957581611080280199500026100568134139086494017977291951714954910165020477829790483625515429137377251169721190317292722332818419311392365854347168148420723351473394359022751937659992921101624473812043257575877683800691896515253596871998748799190832075464652282383541709831136312801346034496199759242494117334356456411854683640734117572930825051571291724230521736529327962816366007089394739068107987862211020829422797845272881966822595927092100306686518227982000467757788282065563961823056904103338626401399264045691609857451948797545743187387050442511991412342999012863608120669093274326591626807125891155795046090226975534365555353726553558505777834220623914754881905285466523290366373593886731079272478142054113774458911802827380633828129445731352530903030601446419828598887593801378874350362211500933483503026775317250558868307574031262593448392052302488907640849797512378076505216406116045171111177639165905015770309187271392175240845941877116060167223510874605495531394862162027507931463026150727509351289771501903703682739760799811202155816594836531840833873162944799439303731270385061766492029035527379811820792503747491006976190771936278651986841911502835295605408251170286586210335367262122048560488878903076299328928459477619179246709612214707933523172928630644729315343114511175312386566281243472353621083726740361929533738784743864171980004977684915917407246551317614808789265098907964671878504332441933619217297099138296945426572303440913412021443327452639156868404202595193599964194345202769493579910394977879744634214076511646392792801483678138131253631646403147276157463966879855764738899986391763045985377864596144417176570183292119020929341761088042391741115590916565661406318834943447657836772406750412046115272916454365088968560139429532153073014239924039976736501017313735228195047083732244339264551932682514563116836764124815319197357082925528007908154172016374495065055058196844944980891609274872964370360891315184385001250931415015796620577227067379329177547523686068786067801825152558776285903154552358778569735447707898034569066074959471927184177148636973506646642919967978411307794272258894586681869962830128660091087376088700550654352372077141406375272209812079661807579939189532393227263534458993530823735433936473858072337073052006395837787766297438651307935167551642472112681479738625602452628454273380173750569485688123128759026700903924524738143399115538941706436708036648868278656937911970606120291737358642430031783337761702817026960003920003816900604803632882143671194430729854240055107732704190525334986916765459418331334898543248923965091601764462801027819706603202544385810290468830295805996250941956607313554324045874587593994378215242137248824269163918592771987939158858859455766355734960997471628733006149373262541130956333942292025674344116190386918226713940220829973101163180432529341850779649051560793303918523979878691539481568611331498384723663335506989430594718342743746737014239810295003113754209560395146705789316302898982291992239506006709906626014710521506256028612581519644513497834063492641085090338919673838138609754284236562272907898183161248122540621264014426052412124113907158606894082744902817300990752965409793231134042309313834840767893800117804631003125961023756561828287917660260626712850272670191038953838905886514984217730111302251758122057310362526943500491725963005942331793885110772633934008523766926960676667540545614772033099442398081537760291149928995782258040673987163481075723144905074057625035073215287144360196603883910517665509593305687254878540883137055149023973500833178317513786463977228699106662648543436452891350267484622027167620047442071428790315867666671931756683785559984937804044861420773883041822216694530596375686815838282121462365120288084569496085147348775686933602714713529956583037891341423705350029989393977959198688684904034294836930778314928581204217496774165848896790662656372392180434286097296538251023489754107648179240815572329509803008149814955874653001737248431041472906329687357379838330588423605246491738885374710956686232263972461914679977295739296119550042459967975858847773818823881001580726813316440976006301473455928688704394072359818233338849195198488081474636545353760902384399582818520530384587424479111944423141175531070826321254648890422140381436217272048123001165181385294996159360921716509415204484402432284720363494588816258977168238471590538464654230356651879283179294345628415174581006566774923660001586276302550970076211284613849891791413857686790085385952222072369640012169487779563890049990529041443456797127538766529181384366806223249435259500983947257637699071024140312829718000662459823704474704023964596318782904686714911086918489799219940705121810022758853617889767984010797314765836362839441334673771654580964926100443379989010316992418205202504409184810347179716040250645802426599514219294692613164236041524003715939230428848734552960783256620569359401950767685703800896870983598181530928758443154160726274416572825874226916859569082901499150900254762080146469420250866975207299300404338710226846768896038957362661725295482343357471978299249543195348567138437350871584353763196558037375524064800099163563806831380487423764377858109260604184989488368431744581251697450122269932453313954749641349554665391705011409398422368580977143166043718308865581577209980870272890769868809156940477150534014163220750429887679648593588480751629402615689470752552342166853404487661260075772485129202979671426347726508255068223248466162146910936851598178084084108419503434209482349170065584674388729349451270107924971795920800001221826984068029927379241522160823783501680826011612050110570852410120067802037554586294979645972122105971446030889090567087210073690030108698257482279763359868804809490229487900727975717947878996441485120622051030344196781583517129940240867385872268727603081210586221262984545491026426771016065664945528164813291642727922528902106877737383455224145012084561005522426347627666222432785029077457684648310531354181814654996042599769774686678096533819712165608417331783973040684009949559668210184043659214739339962226373755723413502909782715110202832770138285145376722255270372065959544898464588504547544629304118293521508224874296460526723579242760390810544087563399794763205401670594986184669634138292152732507728853187000719208496748905502852262307971574068376588128740758916189112748087443742419621617310788835438325651688688550180689694416059005623480262214761536124282048276685441674679071782362160565089225193154144434627098915734708862732743524290628093264661341128758668751581091433463589237603423122552018610166005834401916942670869151646685718565055020726705351880988554880889430679965772740386361899531438102140014876816221826149076263489099937478421805162689352894483878240550789026207026890496495298621652033237390461624435390140017326380481925319290098775185549813813971799478605891287256632761513695921112711488608005454778346768169853638104957984140480335621510645899746556919721012596436306476078348007461789592238575545257435044941351331606280711006514091015410861786644094445915489102780612399837281526083285036013397314436025321454408151901837386443135659656386335127233811087863705759476064189704474795809337149995164780625695804328099652557071371857560256215854204514759482567802374219247194123587051724171342014532273192767229604293731131453929857799682271645964025617377430117981762830246026793655963357253241312185922051188163629159157819284829920700155873170176144056854744781452585518320233427650441695481859293423832467752259531667734274654438753957756744065836191501334662871460703728228289007709890969627172829893486942446698643333826703534653891383274832395654296427016759029429663662616868866725431825489483230446729875105709529054742580538719960787105151151027726025105023032640623561320335505159302529171728220564179054769652547903410987931567994180740683518896955182046317133219466626782982445735748273785096803469384540222013305669524880799803659838690779365673611550581161160556787354122955766911819165609508640788669322266006397112086866309289870549214176320313760316478589789917398681270073928625245585399002107781926034235202875698570351675500805014689464706481048438818542841890307067863203135502844103769150603992804084859827858682180697418539987773949316945587746431723598182788174500087238252086626985438385685353750846835417040825251939316726105449831472334322870488992435374344082305829046942624233839639867407399033096137281975442159445916842346632777244871400261585479252957156556129057371317326365718624304209357144594035005688676213567915307928282473266703541009025572026577845296635582794681912993243457427236826976228650919831717506636476184934512738144617422411097174252040909466524606062808659028689537752140902385332934785016221583000792754495035397040492237602935587291490080147633929541369288260252041225481422159687448837251042626146127098014129329314716313061046828965755967568605994062729384499632832965367519347349608120017879672336902614320376593651512281060932196051753322195443240654487699181789422583243699431416135474706072885878685365175211491430159597129980387616687606909257367037131911079849138436510516856412582784171262067568034122912788437631072170071109870000326061017194446730866535350081942952230494541554216708041561577034190319767448055278743412957167049239593698177205036347480785722448826939784726885151293930406403006153447658253579318853137144470059473547544513784574439338728861074017324108843630484361777991376717199411600719548186004227517537639023100491105332086517916833139545739058174268624050112655579671772661563308491085126538331545237323591016091594265103461754720876926047414669116378660769488174517439252149772701494343135950430224464791525248520063269451976317506443885806789174328278762347378080582855554138480253037691744474512202528026832749216022860616257444275290857133928788875568527883756657441675858646961739775038285006235294036358476689920262171046317933091615682049858580645822672901100211296825326162628392931277090369700982253361970207909493192487171294809213106455351493636683050591484967934230363473124865470735082515697554013582893520860031028931733524444347322929495996147478618343534203706240314495705256109757281958017943026551224199735761165021297444452418932725559869884581564214747284348744488572600820336934433515648725718867258294532933603619999143700723239711011326156769268545344677288123242448329220977426603536556472230557710847446016052071404611322905487338018169179730750730031824930273641760471183438265569039593925894621714551834776741917549264463731115948653108369866411384992479415493625806665013984103382234348025266573660835289339876396166596260021282433656392941692500699574964677059478487375385878562341690426699647109634638121661133047612006628410558592872342099213440514446538001872396216421695693533522126862653454718971078902837622832200187102096028754155895325745131040953691718894396632599887690642058394531483425888585823674454861838198215745826125982369889837937552109705106802914030072492355238912816723107839310905108099104506496751794819977247826408881310918280935175805421551749506570403907934064671820385810847820464077630924485538539038073426655335697465775396912436932391246286794522142493806069279602478167958236505661313786113453311210377276904429773570333329893918729210394454456587272406842311030075752631069876219256638821654331150884408601447314091649723388954887085055220331880348729312981053926635750332468858715580233345904197438676016922566600258263482494648505383885289233710149966184732887037903720173800207260867942314800932760934465058027958804874825020950562183962375019905926494368662064715009467178593037119767648206110064850873250392474406725263787921390912182554043791471664788136205686809564784454316909298725894049758332648066263398561792792364498224203715021234180615138578241386039686762965357457067179040646584841689254467486431980563302243263449679454006987888217997737646468083391767642113620975627334242913149286238119503052767365488613890790067379518876358515935062068024933300052380325622519230396916059122486419118734422755890693553287457546349119873306452646268970408138421261555881427361511501006573732085718200296925727356957352963010963132510781006580450520518940965220805001919966660066561356545842848058718475671989476997806212564756501071373524371677455432736592977272083768376897449258027173814458656360501313894130542466189448278228900971676886538370334081324294658659086721394661255281520394107261309103146107839480976762191367670183282554781316885762473673419322799332582750201173748347003378684600945082181198603246620317157739017264452273918665574948638286511857621512960981660850976344918661264603331179484567655671718176558727897555142958745270942316454127669611017502868958054045551949287621993086420908382741720465622489753414721887511925045259895938525938655158947959662850433680371197829151145189324346744471165628927913135179924485804914688030217493094744046434766307582395962431316647806721080313315655688388291533632251863827401182124775397099276403842363059446873226496352296456594782966796258730435612538034702045620982742092585587135683116374847349820301896602337741058799447287980518080612850588990972885368697414614620593290907524460413343369186170586735867660959631779259872771916380087988261492042384577841943088912311467135743923002278219790948512454997112383089928411691495892695370671326470532346465728921593801424898312635946825346151330527355450727348665821524660381631095298248643133536342411382549864751041549118378333010008463713651432219015098785909651649544360886077264626481366594782479578851804130082880309961428570756110023870427099934492893959249765002103457163241272263899862138847049641735742508567587425602459605387457940873578258713698648096403248350915528474434030365174195778706130927475262631803753778135522156026612824985522422757803768788981043563776358303315110109085485882055221785142787322815794731767146408116869033062527999642774574144311792593911371548927011251934390603019344448714674573665100951956061057593091773899212470597470702053728370739910467309712042492594641830138727679521451698342917199703725212901422772569838458537969759054033767257888923735597526932706937672009330836861023652681510286221745553983306224149809195218632444259051279542921734252468059539649811937355107800113958329058004897909961953749809546274711880485884228478044363281198584645205424587665895401375678498230679323895623450362378707034482521196190666177743917297659385644679024001260411446245340194220091483506613806484417272693017863804524373548991397109222012351613269232496357355944884791783078773322734716122162890293693959897803265107891444764116886149623642034091924412409597353563888562280340779615411203357506118837031667752085391035990934973434459226174745656200393954223483140120260296995000602588454013669798551773841910161916455274611312087224912338970019400286849291494673348750239951199636677787901255783661106041890277940054146036040541194898483036320660819864650840242701576622854764491822935255809223074321677516309685111904840730773251999957259266224586585161723550645813075664646140448131936811291823525281400190444337425756378088070359569878955633894585272642833596817447947223992780335279342587160919139662062861574788027507137132234375326837388569127311528515957421701999484464094838992848619731187935361169990676662131933216076146200249423598635453115316077950616052184480492963526654746376924838076042276851991180924409318787208059523457537246808356914499591693187009067459053209080471941823025183918674190223961772742818157801665506407413589619326165463115114952477995207316413544344034098119128865651453152677178742646410383086617718195234441223328137366953381343726798070789848524655182125256774080723596629617985777113496061840717488476885035736930402670194317246425203916924422738177461168609993264610214517576243838130873070695756290806876387787549129459771310938782627729628498317028146456578683795302689074762885897798782823056308459662727721579672736947458909378086448719687510368496300809267706521604523181586341760482251420334590927560211435786514756128610921422443113655925174776836530728768917989841140370016667803180167606882413933540496752363165638726795695227216628290091820361897583543015201157317153720763939813947019111580018915671069993105045984801730357619810087493552858801022063863707374221678627178763854683524269155089577908929515234381902290022608331109520035700731870261505946845100513401083453241990881608778881708957407357443975609111130978918704275732368455883008325031471368720217773376586826335173812066067624750279772200699689648922457838708378637934669829366340465116341089956362248126154769259732967852818620652621223253615899205580892441714880332297187753627958881036764988888193728379995003777486795592215036296802813741115667579399859879953949918496085794953096022829287155230671986607886751093920157143459739605727566426158286689849317069349804273975657468269769039584116637391798141711845834241101357012686464507422902533465588736746267044194107568867230316259311424692526779412881701343399225558018301865558075628431481867718738385678700003021638265143231927920157573157838872917552437152960388125417027623531889896193706887653971233612603259325504903634838305244408964854791562936205097108706772753679415294445253277563144985719543939993701280443363629239780052591708766208572726240389277107417267227182028371855279591802032270618435536967086122068447575498863502217837134830848410415570852611051188665644416286287069367486037437212924263574426688218780204568238689079816200062452124684142661097457536534920751387492084910979470555919456391755796840309899659348452234155553849409359485905782735361606940184046181674853287350381352033483244590352034300657040943359106625209001951001174109835502184745424225117738772357719429034196157655949595932685159118169994407729345124809290049479433444985201582162476496672701139038812667917903551614338612139324691865197727541994016736821422533154497143659493976022135991197232671907684473678572881999012455391777758839078041740938304933877170446947004049821861460306036779738338121950423946765856314342837655968109164680060553654913609408165009221071112300384134100618535732384015873710287865213835528432733303609789728127289036144115871770175068288464642261993083076050354713082690380143997366936639841762691412755658973535656607369890628888167699533921228127110426639813325744061192644097736688222823270845357487322630822690472326645796489604809052502719340225615901304199468989400098460525963277655534588236356940994735902257069546521649325938094707597665034557836732028752628008118160260742580689498858928400956344584418215514783611822409591845230410648863000935888283810073182111140565533186280213271043085006047838441082486231859889358379697422249646270265318702291920892506243866528465419975780034318706305018602388560574275300982676573914825183381574895258308921399796937566701691034673536192327435905551120118149813742653579233477210936095587574706403422822272438831584492107500576109425406855422538743009262306575647275502607183396775946255936253315491879368860761527207500540162052730663830220376528714060566713701974260488159843144181413865864718241227403423152896491443646659192002644979714219894284604398292113721052532424111997926902328368667300462990965011619630832901777491318726600273149620431506428334767226725066923160660682812310496010698181643820257540479929144618667038635302911742611773703164242647028141315988762257209169984081304831448529361486249139480544133128164923814374396319733867368893070346023118184289265162998702440516564947401685669848270360890248027742896740956900778654693632345587837227797672758756835450720153471248260091317909955130525272922904717396936706818392927067509841524515358276342577371654466018065249007232917040849279393193595457360555415625036808664203451323835070987762534404178493729508460737772918730479824654044432165159721927846339315163115396185139121287417122327348309835285036777698593497939074306473841459393087714513181439194341710096556235030365322811559219213335816227971280509716800568382543095586185572546968527963576866218639098576311807136744311641085787408873056173772306661249196819998090486784547569795783902342331089916244720557366429522756069041143495566394122097154248976375350390696986831407323022477782736378657908681822952115221923623847131165263679533028607369307692153598935856317392444762310884411001534502052116635699203664608468561421687005415959764795480601913530358148441967104457896841005510729730450260518609650747528022233329946673985752151831078298795737942241763963888556213827592511099971911690719578156593281235737017323241752058574935256773607867264460662128353084890218527076979811490622215159727575096957926721291949551859993701148432863149034205790552900172108036807692106712229616359767049600632331780687268468868806740258430443748514180658353444119329520855509646624002704827436731138610521052311631232333179995595059561369259661417489008268414059884042732012590291850230379925129446126212477798956345344563265548209510327498094775633986542401828866040048309864752223197971004083482606123919850584396487642324462967755344637058218482432430943283471842509080129471753043542005995013020945139258117385405767143202758926284885619426021273509179480101394940787924119080186689594942793950018622866434449597017846650571771265782105920586481537147947178090105136223241168368517636528224754763978141678600588889610827667305462951718276694008607571810811429833360043742926325843770551877756968135206459434848868477315247194640920707936065996341846867011661783880061609814490529706075404821762668045134177272387883045953294054289278467147449060821232373778437071936612857462191854850350567928751388965491953373554976250444131251906745599021244771264084772969824462983750068045983755907588601226806358951819331386210732356690264792869667184890493430316846057746785669659332945004858837868292177511067981109125028252051360261139036263861764294740251442743395708545211294118297152570207093846700047113955584029092069716652437328017251359168650059230111012688519562300327972021378044287931525420545449408191956809218759248078061497690296268989335895075413397296955472228284503095340273016153741316892923712792523094000465798915808697020041791949001877892915581830445287742259339018131231041422565893524598589081902919444918175569110904486182111517117225290106513459769947341351545571275470119796684065693915949151673196529411496316647415687284419529558359789958292730086337563967037591991469630180080873589871017788784272105593609503075076372758735407422681838892281531536151757596786156154445255249863037336070716238659879091424055047844380017173038547730138725585731310470299524615547568077049620738563336187602951758396528480452668626452750576448433533775128355084297854474833734044378634901597893877129096184685321400287432415698320316231153817666540083046876433366182074562037718948415789195655007547723334080342233217787134598415776306054547243631682220745493126341770360471637777703368408659429250466899461966988890695907383345684826790147099556203525026698187111601174334605764421869353588185228208231922389913256888943074952285267864499843841792853540320039368869446318003764717538799334603402675322550570765775869133302676079848544028716274058684704787794382906261759331215412571211324079710511124269790943180859086827380947169999030274564859877478060153933051272158500017041309166898398637254838510701089966085482443544742810098251270863776627815561894658935509607916018696016807250020334876511033207343143167601775661914195274732404005064193038347992225785181312300730088684459458020623365589419384391956281200961833631251043495369784777641012601804544340966780794778788488151849815521894650914912009939115280175650776488752898320815193484929105225583373884055455646804765295411876622122139670843947214747911327981767309786765319062111696382245277465076515180733226049143390410796874552086580437709552984266824351663724562011432154293539106165178414669921520314661719322728254966617859599761109535650171872469320172516804349329852757558283349269124634640681820659105885776672659069619985890194093091176206616059413891000248490897583248952787185142055144444634064485529905591618351005539581391495903010296152413152859050736207232418121075859558016715050752863993653238874227057569320840305967649615334806360608842665696171291201410725878269969986517747857176449460671266516014471126354160309970543661186562615665227028196259058479691504269513728413186832911289857460728276090860262075975416233319959390886586631522824937188810478071014630307441071291808073978091213592982800407427484441823621009267678855221863533358743824591789092241800798530309468388827442657366865795993725853156011836944124799497915507124434482878698105868383762927433836745791283228392458847902243879194682012064871730885839796894225283256792871816459548857713420068530081526667706213321056835569330208804679235965801493661008138878344025151816310015305764436574154764534274014359480918824051908968910260327067095374627674816615815171174880199684525098492053607090005573369533245511998313450833308469658350585369316074617186522347002330729164755001715857720022150372063463757013197305404173780361699899815807928192501702478616004997898179389495309491050363241774303269401439876292258639656248229647579396651925043750652074301832194377491002670750817256773884814030557980928534958915007500256170975977951451967300866445334412238899937184898364966593293999431177919553372645092942867253661003094433145456487070278096458157391756282601523499307477789489926658026901137915910830785432039433990797343082607419729374955747381092634767029895938627059045206014850898001157149648867343206465570744005705208971049574791309067703056324042897953267451649451978936665276745623637925631039147345097830446973382886624826549875622045746798242836302204267323167011950585934645214036828125075878059081411852106742985667267364030038554813183563367553830601965140829589047272969825988874856829903040941478445492943146217755010578534042942737444578694332891975097726802187529037044615669118545489156803377883019283516608689988228866760673868175160530022542870544502585989678401189069016822453496357331479273180271318338591474275031704412416429707007554669366437106269034717724422947540741638840018963989765171530807841266589228391335477826427778127789687399823994278416551596656855078009442531306905527037185054775163050970187610655271848514669540371788963324710076434139605994219382339502234426093250050692988453182508223716751103796716132976286169836148818499581347523890836332712418347527005791027461006962135269754757653861501007367499978655684539851337258909100192532797039985391145401979032847757022990068677868299649627741187695798678675296204180524368089793408532620384518096773718037829285713153518048416939337484121636502601734410045346655216242331312305599792938665944407346358877851692332313249434166356847982959307250616959217268730734931558893442815578048516285900196018692395826481080245655450721677633471566999705132348835370359310443143557164870966246064314947212306315001209519581934752566351315057391509173284970737079665474295057265607625121561520957728542735214467414128666156630606797315097095952568644571062344414313854222066538034033003832735814708671632937835742149969668548318889352283475668574023182013992299961591401210959087441980895199649695182612874374847530521274298375480972514317793315512710275716510798663325810037035976371851153533321726340563721968983563676286654421427715125894987391613076344526557878816605122425357849755822942250429322337794491861596947497349356799829752052538649724517172971136968354623073462297379624886238090203061352372155051020627140656783098861242526972533872980333083338632271790154995963342194617977793427255794328977042866668945383365657336516077045837989357209843612365020537076360726470187850968033150675014560357913396870161145851020275732459021683660179213227245005521956229576324965959191421828597970696483128273964176179333353671761423709240582315201888013364643231578793682459661815842373112461964989604449399258632028329102930336634697034559848094259957509450702441909670054399972744886503813790087736532109084766637010032521150418120337560289524264745965117462913703046907322072735059577790191444132867916023483701892308785255040569829754548238312259822363659625572130969756376947863364813422859004074295023523567427418269843622829566414978941435250649363929117143095642670790345520866196794190826203139023134501106187327135973166044247866869745468120789428321365149059951611666280599769579288499882616385830074057845244412045961605595039314141920670123801124687078866726384939992869506100828410182864031601967435068684855227616663513714887836160227676268297775147482720431718944228384407527187896117539237545612316885268594487101296499566903879970890389031357714060103480642873488082615155551808384878454436948977386217769201441292639111536247233879182638425135229637144261132112102304066346997196813228054651404593567990977625801869842029822501419284551556744696767381119678655665484715522025856163775777863865780946277211296566029056233598949769059932097589422315772617513146552851444560421511238245394761829812807800206652045221786790215727489263663105151115146275211796759625318453267983519885704100830212673164464936791445679284579227285980856333052886584748904749653678499809636550744730827689024944912459164552612750475379701890788735235538437740230349688182888799964760424084112933150848367300359362727488848643488284414193417291358634641258466001171443751715834877117247135105647443473277334566304764455731104484385491822865472219402850056509337158723063929075003061138512013247895969831438969119188774296321586156294550124196654593245867903732299960534723201740495724312564059665208907849302004398235674447144246554110754737262237361563882086964830604011025197109073885167698016806014919513962901682469570692607058005415976103483735770388396988218080866666798404937177724929951542175814447435088060380241045082977236953804643029249201254865782084891071883788231625519889259214910678319395285934763257075396749119829766603572956118748513844055733620563599894823652525069578583452177155373573677727044796915074443278467370041252852421142699810951908936211383683919672037704949265979169433133035391882349144894732800969996479798209389965534441937923286165181405158410797568922150908191949256386048297591393723195651192972651808893294341711651037215107198169938931068538519294740457201868606685220085931798898260719892147418982434657304315322629309752245129410056727376605790860755873784661732737151258873780081809835746114863221551190184563931473143430845133441385444388585983399616294301237318556583861182865813512242482212129645376935949381740336114238798618515481343114943946032696560985011708132129931877945379141836917175190990509445086329500334142694605900586848308379623636984747015852810694923439979495896727082410164792485309879661522146730556577725867628889437989351759745196372289924367127043455182231638602367605864989126206298265171095536522204294192195317699604529173309587264208086492316377886116305221663707585928043489279789260175907189497848994229572216175803937922877291638122703034828225290217291416743328944941345594350939881563531706142839418820305833384986064775226839541876834352306841708032656272185169397253798376316568979230181896645589501889319112092914729499905043453331807280149846635947123012615029780434362019306301155210176783492737454748813155798144481309405038732272120897279910995529752802197619967057223892560159721078299242803378506598993746497750817852388668237166066268595872454750763644995476706299639618334060894278009130616764484447938794345094012221523079642934663016723079045069078716399541087202150986804035070103963715241083046021204175978345502204127647402068186016110651014104887967237400865129193420758169954972159570568710801548701809892099399353139984902080901762879904575348838028354712977373514939829666315059639260187118888724016429113655204270285349779064813973042897718884445929753310783708347694646518248698450741761908639703055289045843806757074521398682179312596250721173410951521381462767221634472031624033356078957405298812891605972474869807972089029551744260310888731619777685003629288382902085781035157698635547941607201387000480549144186053989059225469334277061514003687448756179365949265710233440462509507042721620158715212644082934592874659189903030750970718145086839012745800415773986248084379777839404346280436654735992396702465104181974222731739904699133900784458845777265057382341764642605748219541236206767696532072197073188226118314718595897714714087124971677898892539510799274192776488576750763233480694591794851718590329094402746027548412846770573017249986155284867899584478061980481284217496297277436841594956580937247712605284165187960776237830506155891725565125464488417770977444796355166694063341171685526842007209120313143825195551844841611444634262654735481328242575196702400507372405817958458793271259952342714104959506935246282935678921045379956672731570521551496134529677496610028595790801175735986446446461753865436618088005581866917099552998494683150518460082879913681540191312473750582371578253177424227050556265027294173966840900118671963123206706932275473224301200049047553216529446169485340502549159751358563113140889279512583152228064240747481770772883297900263769144685887773150881313185851154194010859417565287922378085236194554448305361134459472366308642229461774399097826640618331916466952215015949346826037487788095698648066753511834352906808007838740931081224551231702143545809817819337073795747313876719264335114956458937705729464355407928745705414628406208695596366762324745889776961007052313426544824804251667198539948748260359325965476749487094467143572915342852313389310414580305780639995109087991511242805583484672230473518564809624636067002146749678919307489949626132472660251811720788215800820269727327069133988383017047543982177910348598420549811177405597285319066634930129057891504162018402881697585663717029046481124515217776630448930359671863444515112443178713089710471557105396474109353960918849804492742973314808149674660828629809153407283088217784100972550536142685427657387007214877617931387495401373748874044026426034408228546804862200079560222761138573165133536283836934768749630266414034713150912563562723980702193607913782576947573432569640047061509500656816063939104884828333797704363712978398028453095850855974933204012190997623410092771006798472746701839828499199640474527129980512038242299195765372975694183071444403227838367087111910956716815463031030879508612096096317369372130178720902798908293629578181171307772639608794121148110226423635099940149276750184777940564182321356598529744302829054424895020464524969338633847651786560236872046068697918029124916720858148254500466571243833093707221019628668655320447775204079957062597943005831709077080874553615337205366243632481504847980837675627356223312156666661016546975251859969390361652169251684034116220362024423216739929156059766395407820296981758018133935870297037250473538639117605383753034063439124265666872161847239132908363049980918650234088148325938754423880116285845399982827033929449822673820508739135153506045613456944292199643626197185790431387500616849235509639525348735205230379930294888070707887352171897876989139920403739811157886591205129527911746011603802726648014671852835408715564540188042183114411174848929370506607396790803210300867966302620211594840094611509358716154729993757416511664769567747046387816115926563395757993157629529577656642070953961688150648671026541678567650463200116078695997480880153183791696034961901042689465701813634531552809431499218505174849082560678390981003484636441742053726029060884603316433223868605693756224912995684686233736884761585852991942738925222623523540770830876798070691747138860862081490672926648110631278693976352520144640306296629053384391243392741123687885762610056985784051809108984084133091409084240288392067498996725010146597093706871933341344942763750129137853470104962077458849417622372391112840872751832069315722495818706368442586933312478860698582639371599289119882030635395065526232125319113595204876907061630313478060285768160121530393020594514118366699100402738913869868694771826741774207069258848344040305981616587824557106153212440712549838734654473572766999505795688999229422663053709681795684062203022284860620356321007421637729261742283157135014113470122475513376830078810407902820126201315896076133536229331139970980965153544387270592883427362297658141736849375897638194208185585643825731412450309581158845964823400079068935952063020817610388106325646520922605395882588790459543360389459481806780681444597288897205991398652332846164904433307946719702390982386237490977151229108761827656396611145482289363360165494904160095167242449373405956527569073712235945074343241409365114358188414040113475850370007442376850288524262050971988174538895677123082434666342822956252610890005663197177683968524395365162257168829343041567097994267066171296420119078648264168572153710228993278674305090555944659317752004773686200262306331870893747691927850392317468494601849933913799559887272827937611545015548227476546279393419349518815692442691804225500414677243929823169828373394224243719938418844546655686962243650326739474887613337313306580899399477725610246151969870022613119380641856510148687256781452651701984064794540263835052043851816296096036245749824634412191318373587322953768506512988317451373765807651148250938443065553359552231696250636785644960828361727101615304476599027580388514128742484384086224883469064328773054315294938192815643052394705446270671558805458314899510516985353586784065463663357095499723978887918755568538189500729475779853732409683037659037058834728102563119410959055915832668866066923633257379094213215565444849351412852071604069512944821586968686638567631446439250496945546803306583631044416001854767434963088554921650916923487297426459431644397758955720651776866005931155628396597680916413528244511618815843354002586544570655707486489288558783660927828917429528425204950246260781846883193801141045997516077636640355173537667268201845919691318174417642310322144103193640690954055273978125348616450958150985635100525350120355723004089626074976569190992949549174256429618545101895168570799200294350078033109455120702729805642411016855814353335185578352248228230120466042497013911229760970923933178222765042885050927175115798166107069748077110048454753817550033192018510830893695121019495144743914720605562669005564817647396162431038762179176738187594388522047407693905559798195794308016987653010724301081865479427028125472577512182614631175980810388359877287244336380320572131903723963581842233510056517103694886351128811502272530866578835372034499954883544885972296027352638792195690734296500941651966085901359404330209512685094643778514269344847361301246727935530821395425423346507824558405888492947509990930568281419137874660884196810679763063491428223589170016803444023258657059122361425924133648579132638987788547148860266510354225405453361694241929681896839783832416085989412282466360441204824063905861223470611418848280294476309406740062719822130331715030624597308425014024455612846941307366758418787162298430974178808554687942947544329748357142882335661223825287384701122134483911622209158809203736494410798286085186801854222426367793694204601350940069980796157886545340478109654623159015774488073452730426097102356318370112912795022056650828136085248574751707511647641867305971490802673916694871160443512428120413538066842038492863382289419178982344716849717887556372848504783666746355327814520446043265109241847543911989141117243033896905338594054380314249168582956253736868550636850274570979650639225880511066179130999665749845433549456557704022004128010679801581622858922343500811804624044249878751792148372039813058256144708852446616064062368890299569143284942307345033256568905494920164906260363275355581427773694478820832852461849172566223128913046871185747325595811160799922325367690632348657610428750549438155710162061541976387699463087667388918373894196340961644787686235836401454163698730042511898007051485903647673130267705828209985890465400045207221651325942843636315362098481258102822150919477238469280712489260457777000300658920112189056535570236884882354086883571734977092020573070060178270932295050897490066832273735650607334220974971925624176566805487629282891370922180671816384935729409790858026630942775940050066583662639108827769314511236916823450077510052144254683812659948737792360459461195402907444131831410000164726506768458410352490761795044496161551526370828513925479050219584445846160926103772417296304062955475204165368663122727751037868464276126276999051528567755342500865329035167445281115658257380208025914433218752822396722270280181022489415978706873507934609854107965959674685662409653280685847210197936839822418842507732538755445385980161084249986154343474118095956056583186890252453714083591899635892039205956572935075114069315820770731334501829870343736375255112212773577501534158317461439788970667624030045822808547663365619811394965845590421295941807537018443665397662086376484973458466439194439450385455487075380646557693059554692777231341455433120878381398440170412946126096811870683384851734621074789467765910804445390034678812307038262181993226283735112060854633143713724460951771665050557298179870953769074241925616110101782538648837481490268405334071723080043998860133548045345175244325896545161914329067269671678773144507376874917919516313954602166302686646718890697414360663359411947036028115445962074957770794558026949119397699483210317939685211999055949943004948515487575720207791953401266636601477428321195374432912523070602846000297902210452867211879107794822927668402387814831132684752152339991975151333006218181602332488036913826796750616950000918957163329166845356387620364916614188637161404912765086674215746024302354052432613098755893121635498627852096161107127758581772757187913496403481742605020343409786121439361587220738933436810040999500902973470841999341889560372096465659481724405112466228620021987602819479922103666439751179762060541934282011574166826947445053684037837173104124972346670354192143073718553343787474763715033323542917012681228816823393969633421388365597883221701117326935185121910626212667269817360734763967973891811715516450945433145016908773843178228519394505058400127646904893925245726198582120163656346540779906598472194372586458438315226773030567490736194818251947120849934854866860622586634697921669152871879766106308812878840902587792187625909351686720773475991322036199433340982127100554448747739065606411782189114638107297202059365321722207398376072236681401553599992824868275428987167326554333457224485881156056800838201085237302143344995867959034693551757331670408573522291986763356731552055169292875304537165592497914796260448669934299296050546225885870660899778451612343194468162188085704741791890556131032217724370482739978839158002472814272135138759873738211041166063498607834563621556335533151070577985517963791793380063041226779834503878519147137199542787260912192841529529404101804018279940756503796170101669773762622251762580960615358931233905104430394444133578488457407863317830879150520136564217233700389534005205442526356735070670803683176394237304404059832086541678297500045473113898122131417064608628056666050886710826529713956838937366337061958485035816561550022549364968206482572272063015198590518268009845233181384479876379126381926859940998579324859041031629167773627983239286778074493921346401328093363582650003503076332107096992738209049361623091315437941401871512259396316724198482121607190843145791541110661601372344144416579298778858565917387893211407512592842100862408758095626978895723438256042538703310699371509189372178100377079297906395696243503118225876864001274179860521409688462530827516683514342259915545033630291193313615586724740213516524094239456547651241236307041719029597989976785097832282697392146925210233784517421618709643568592027792037754053907847874199125279720142530444003220307258978499688515946800209331135747856479102363372732809527642069750054493725129183962243093622857604124146878450116109190797029876264843038225737115901108071322502291459393339693549370004984528856809627634913555585753867024993152982573605713586864741010152760691616434310798595601073568845890171188731413185461406898859152492218699814926519600424395376291032271560698618028959435654989585636487288899043966969306813246672205055476914528447777676838344333422402527443391250168162279090655039384451178821855412602421514801209160465312316058863687706148977939483516646771720622731388257334909234732533810927136073253463921939387320921807516512546240412409260255588050615277862632430790852053026223835407119103803737536764252280375384158985957826138474413557553842398884154050327198728323089838681715582069165074163117350121210768102459477218204311106922491603810144928498639320504774485970282086547959787855125604671942279571790206851083778621031778660415959879938208531862879937651794892629883556824052228960124374927952942508203140180627702034305585081142681602076341092282845154101784538616073995253129730081667240760669261049250605894673677332627995629464266353338471747286142902743191923418769696541911968201464709076673263463161186326850100444080334363981129976817566276204200081405391659040540971767450478071149327273581537282610787112591927993883284115320533348996640185603094206630551497493167141701102225746586999715723075649654344849903380061437316982456414120554424914308691235918189086282205693707332303629017728051151026401192904527044701307995956009534417024050565947210391371608654472147370518814362386328118022676979340971966137468957289278737902957991147401687471838559791430040441264416385435626128230959167815183427863240081860635212111491279732478820060858823901763620123197696718613352307646369374683278312552246024505925020072084854749480051609813428435597727335406256052449048243521096166920145975503003144487752626337993246091370569566840735834527137474554156942665791046413812700609311112571875431212643791153030078615503519242028192305031577106623033838673235549442705541566171663607916506378410462524283931840649218180703925421005126361358523969567589127379372094493027209605264366830747236766549206983345988174570684185327013985200238000544600647219154181727724138199236364815046927152403831864996226628194652998607238650264003688362729833752042022200596703394965152032898990735413179087923698697275681945391143157597801113457112534454103508943225950206325856967736096052771404335965217255169029998164628637544101802617702878978990680603486372531537773651160558961062047174581211789786262594781217357895857639331760838624922621382485084655498149844052475501904860642462882747401574821289522618663506934834687726228141779302358462234870716010922912280791723411044880733494687358402526967458675330369906596037011728841537001241148887714319400904147546743036118910853774595161620964070369711414750090912280370054606626708349943125986876766730275623245897486072277186947376906252429958662048655677290343992932181761168090817209536507880001043287948812823768491844381728030434293303612346603794480803269520327001192462973146044058013532081457866860392213171167017984091508462455628251305891475186026991758769973313985241871628734689706694292390798126661360395146750661270864123985621980732808133148187750825809568440369597389888797658510289713310200597491321782840086953974833285712732922645594480705062882389738636281852135769921046769711808598239434888481572122268819175078112073019501124769105038932309138483497974103296897555018251524828528594961665340137358269459578245260256703157245379604783163560350217590445859419951201941320777161758410943373614210892466488675374901152863404351027186189707726854991770576497199183649221599162338854651291030066235416615523360824763498212868689576601468541686486546892220445301162373461276102391871264485611712480729910782285934431516271039388246188647867064754457348862987732537653621814586182863476077387839035239917318283997038258863111187715600594481610322368521495113651567643964761683087335056313411537409751714105881925873397574505578571678706752754183708162968249864230517683389516890406915397658859551455037950706626955016958004336733758143513899416783328974769850214073776809701552747511350923750980502796879851427809985181786189812518639502171362007994557891885078712530667307088861394677694218252041711885854101798951112964969700034028734329094206846893035073713865416000041650005355741596641578366105430689010427254755497161311992757691655934383045599654182483074262995489005885565788114988002786710240259642793440738815758041373743360766808375740900974263318565865850368531943914278062911758766924644645491788501297293226985741971124862677148909609782709609070148286243393307210647483026219721727890661659943784213641527886115587815131238911025157842981591503842599124340411375864531234977568994558969486824365655159535100100018103734302625235234153740690831045004193710907095262781793205360119073086692202028187684083646690712891349649006569415244210583903247042903867185344153233384823615011591773051558096755964938200069371070829909790040749514402104320221112163593192011414971122907177090804622908649106772265162576848619458333266342766917071532659565606867591128394449181236359314403448028275388469957042005738641463506350640104114949770045356800550228185449370991403033735102157105475941846613878916467337826501532330616223478449515691686462626837465330216528936195016454349153314924894334870894779157485149664720670853868445128117092336914882125444525341213486030934885798543102451974399241229865105033953893302382640092500348399198763384651322468906995564174716757794293155819804808919270145196865821743496681746797583437011314589717941193511620957643814072626873336269556755063708648116317581105628799137204973519422959634466007579842703921902999825844697431031132732234984496566303260601515474179815068016699501425379985434398334623913607360243716236678677896614736496846226602192509935413564741004868581453583582880304830477188458364167263720228990262739739166541992493457848549872327909951737049412133106357522564809408223668460931078764083898882461675703512796726694093563374415401960078664869171352648634003653253024697363700834438441207372035271484545030678855000957529128630430658739875134672114793452790401140377616754032677214928683988374162569200977857591789731558868507341799133989710023986807420530561359880781512357982549567475679777041848085541244843740149999060550629683380004975667898023886860341100718169738648546582823811909417903611360920019105641963487679800648692864736442364670744925703774631749022181435140068600050440020524055290318720326935949443386266013834417193133478027950201467761861375882462883111953073588476311107410803847924305388308600323976178335683429262444095106042845033197678658089585892069686003708119125533906558610098008793605321514129767371155794072951214627801012743140343268272553990599613076636495764635379079526103799317195076596183383560136904247094696511672187388127348185857277398967841367000368569035551293456538038134086446709859613015448928051020070583783823113672449812955873153234231972364711456599222674764467421361212110687273433520008318039752427714212258584115285212477550158130085271334874624272891584824281151359934835033546792000538791512427904670139634802536397981919525637218644036729771542970293404488575594146791892918456889819340403257249704516153016221882568418576874363711730644522896223437589110176685976950197545603627629546535537759644400398792400600937118077235464928561636784071769317896090018071743625745239345833518007028359769915913026081634807831102601582138672249159046365978291233035662366933013135985696693195675165748088443793322468415977380707031282352183497032883547143322896391384079102262699779080112429476118265797352316193303732203784767811954691365909656485795802882207968458165737830445510514130651769780254347577857088456033210349308136303436245734999317564800857503146544740087773458700632750422863845888216234296911013110618037805088667728859875451011253425896734090290811547054493679290794253052812544094190891890171875918225902542923660076123868723352178229373068877976187297559969321297235934364147453815261519010992635951793623762813687893646564927882190811053836051472075875326652364377409356203675180866460503332413438127343581880318592242723623616757529950391295276779708737054894079637388816949865520859682686620156457924913271545303605523158409134235690398335994779537430156677309896852368651736032082387595453646941994604741943404628762184617822053253276697090169096509223835197113105501185559855232470469738086817994926031950353559106641684642317956323172826078335722122635838114126099672431196748821981826742754466818617575726996112230424520302873796628497241596256466081720040501740755368353033464203856228743398812926804502585002855687758826630381959222156827140086519079540303095779024867677754266870348795881262617164404995242473504119935471507294780443800034764290408684416324585633709695531295738699230166533103240542387978439038306581803578214632421330394878679173722968382529015920533196723058707719778911843454709133887067253208612258228198798226799508666572420730152552523316218336500713558670290097110500445006358729946957557395556447790467827157330772693478317903270870750876849407006222691377460651598317637650255352147639891451892581520621708597172071770543515971967928918670695993110279773323203955150576824499535185751317296212658359485157567119613370466556298848108111800705844990466221529071078259097845794148630993847519316864531097263379456057807545956703683795401230655605794395549634986972651409172207126159912114740657422532943990727938565774921834376904762706051969932791652252886900483114594171851452742625803092575104955675063412947176136851419033062045747837133204027195339847193451888746215556574099429309801552951692119977524170853412941004972470897969864892112488540681302188078309075094946114979696481336649947789534426331017050907462013766284351831343909025418709814558529935980482531454824468108872911691534848695438437193821976897203968667868363880890949750387011660346509023277403711321945237318721195478779369515196759999987700184069038086463411657018739393254125918053834992036473190036023509661908379209328793871230324060702180241038066523603454012501660801989150480640774045617790712958359878456165674645465358829688817104830834570242306349747190500193688759854037683296937284770081086255664083352649538889564787540158319857011672217180103027561756250717629284355285226799758386019490378352240213801703362364321151703405424030253537649194606841744900264398382991540503561989041651974467298999251582659404501889439204135358384001704349728976375053497601869794708970427493845199593453282342801710113713282520849871742094021718170100590315867638783491386450973219943177383645648530297083681622498844113361107858510503092304355017919607431718432407215611399126835054273373726168616318017093450112659407365121697675906715410929933609703086455372984669532507273359406817296670483137837798464718906798798267568749447422240426040684694790894274829296650289491984007793214658188363981154616879809046812609620791019673781034219055518935291342348256290259293058458720537266707002172390899890351750548235693415766743793671894122183657480432252366577597582932846068381786242209927162009146495061527048542268654828963230189274195620717714427812444688643294927009726327828200419701866474800871936330479302317530603045067949319185126464031391976541460241368989095133707611489451379866166288391044349028052674307780451623243563192395473463231055134119914168206036867996149373931186091525591002019354588157003085242538650787216097940778124379019885864933797239097778464693542730135100722598887818497621518186475935213443239124520506131951485744878256304279020949311628799118451672969462980119755116615289497304242319311636779191336604458431925634665625872274524443460951753309644247039751693709479430016016389442130554269622002380185621269587874258697647257472875780715992143765934018584077354667720699205531982040335315980349609010920761106993100493021942741671939531188912982729367431151089811981310091083105430493923552642509163692180838183095279304650109777565432420479467217873062872958945446109494591091512455586152453973152319493949676388569324502901781444563392750964906234660902664086023986284591825701853959215456973935870634820650022780026065991202389147238821767763308307941005985364476130892995084378262202743825432042614136045996127483156241975106466308931599423470949826034205493189079046319481538294084561415984978629375106653810384849361483469063997173192701697451749949309184707054341831067679071163792704553499070409267619662345100434398828880617534545646463305599912872744731622809134730138425264131296768423945080077190103485696266377041019285574880331093768728657129528635208030503013234617466495698632602602903921679684174314232890792146580878444390072342817545711726126261773617763117745695931236369091476248341310562937974258641520198699544429877987928751671113508977066355218936643330117142549965946372885034536301780497586379669938769301377285775469035077406223961870932878509443488529190461515877826030341069082393419642389438763019835299069657234809577970358808979796378932038066704508967694715852732063779658648397498348461401482251512463324982996348785446263979155426673251069811162013218123257744031816831615667376340521537247659492373445114670463929434011509075669596286377888733122692245466094742584523999725633469403036573854311469238644709989177898343560728443498130956166949253645906102210903070792074246421303856019875861929963918567080230088189069990689437325241291680285637513521675548287415317552113437142125358357034666615798302488619447622248297984679123750036719054739666784163052156972480447780422304280584774565755194444540978913850610763306124590642882136137081820734373707416043286101148539754570137658664604124649324189900216477274578871347691513679126952132332728021157585076328461789929614558169721924411441879789604350198392429939168966242999885161634593677212873448791614961358548794513133936703485798352281968160666455124789652200986137145198955918879262708626164009793211503343954835204932617628292964787621676239258230050862675469296522557673357425833110274780425458579576262769106907487493318475215966673496513670811287511269245883975923146445438673174145593276232329488049333963776781066432922880152650876565008249974440483070010438166062555498233496834316358259771148572812306760404730650430718732664421909623307485016495184333493079240955887584126995838531048382541660507076407331501914679823564880508963155904151762779428923002145758122825255089929507429460955928480764448014839092205600244236459771041960090100035045100196055542644559635778152777892027487597092237366461885785169618396967570858381552878132991726079468168030711568240786105461535988399563627647395958167949613906467764594204361675204999793615006085806154039312230548689916677886070449933323933655065337144220792937502258194612582125539965176736216926099620640156214450902855475603857378182206608893405804871685663569366869344738695978331315968800071291178536153168245653859647416885497162311608253248630846194461287613824618564373623369977984717721566623676847166499855486259671091679849542669464916056590434131894212127824882142564559667029143928843580835510547946356109467327138164207061479531800438753804166860699700161071970469810217655963720226887958639882198618903372894700307606512817767046265044461405701245825008323433872411548590789015867998592219818010231331388227859254363550496123447943556620382667850902052521451561667295507547971515839079555425894063572175593708391376682905211405154999434795788780852936400268630656375949640793992015482785606765179252661412678305136266084973968161088738324347053163542857192402833774076898419639236694967007588829765469458624592599413185793971023153261020263886277972315976816371269430670308769256028425159806749607887564770092847351112674314489849088795275819057362591158458845261513849324334592281754041418525065120981520783469118982455686599491781158407039140101456164460804784573019936724861387546655904836135088873386402643318657488617226513436368873758938768748279500923044183561765262543712930652916872750920532793413137345473264136102338098273492603125818353990961330233919030894952143426801435865851832401600329190367617383391321921049965164190596088736346421285946831246342813285049282942135689825638355930165114772448819098422120947445273020931655925050450741820343825703483806994803087145919020608555061573796099178374507430400351912125571291781850937566206013860037041384090176662372067252897011632788054892008994198648164671682392532543666968829666370192245657538041121901761204682525466605276745798686865840286448640796780241160289088796705681068681313200155500879525868889082850589510582236245222946839666085525683950510929197704407239956921943349029124412848305685415576776865429800144828939705643112827890762043040599905749149692760753445405045465342856960641513106641155976165934856293070014955933789498889107523297527572416668414603038021596342906797139123947139796277403229955917418396690758917246201009521427240490899479514465421387920458357185065114164047851336579236330543582796138453953789196522156936936053608435188019627348992189041535315769668086786617772520349233889217959656829802900023578417515879312700704516974356326928387333372439369253419258107060122992921640661319587017338693460570344973525595266286113081608631810858715229042263493007211532668303069900834726897620721218323030406143704714457513593876429393660151013278659614447646899908366685248382092382359304945428270721008799916717226286795859950345569963098725770662130153036292139655309130176056174125670136933755860103376881320644522613473425797410570887391520218717956641421762884313380666857397474281988949354524665554638698704674803846408458579172628438316445593994305920587249816223148396232860544664099190564608517763376546180229193666849274604029534032981736135632523569318180307571081458716473144104573075189153588700925468661165966146102013100047092791708599185608292715021199481838649224829429278482858656115726477239994186309849099278735808144836512058577333132776690867740976273042529306944446495350139338132583234528119933530752091977659428372070776303907897780274390374370356518266904110908903059738826350775249498805359819631783281253121663600461319503679596170893689488787826804391267519650631566161838602149480512382511825503762250257346932010121970625560137280564140055090700144115626763605892057422341801122497384958286898517379463873002032169318966264346248418030735553460362605971244211205866543751654865389855792042967836097367290398241818149781887698585963708246970337274047131389782836723882001885827793663045827831514754394330490744711494446910147646878555264203993139733171873556938261869910565188379568069549543303573603550037040444770419118495255613389574562239081671922897280371222970587305749358127869640276904462198596018876493902983492626672657243356788648655586827045117378811314110870149073999578069879452031056746836826701153976706002206074434745888937308889877783693997823871307545422402191195687761344109214089179880752174027811276219553318390871796739909689184620378437217068260159926669183109896003464773135617585159698141442397072983008573915208160596137538357402301076322096510880232528924852080618779691339273065392656418928062424413580762331051064392607106283898790384857982257175075066670240091594271247453937079443320650387194007437599251977405788210926614094190853841316468446712594188748032039062482129638064657836528049951308611420676758881071247016056756947830707700449160918029243088693711426908372154443283621734723741212160956402723070277891177534248427502435391753005225331009356656515314754710575627976556986764013109954760242918114561519051427675475306562274827006117202735256632541133016584806286532257255329551732702233542294165722783756290479992620445500084958006757179063917862999916982542444858181081884077413104284306293400745772617029786923956185694335319325620078998782114345926065939869393019796248550761040095823572818092688597803128894172895146106255878219608432708153237953253655668682349428907352616984715617983288872369624375468080228616953121531148923587647552617870329143975037158799339955987464709441569957692002798186482402713117255729492586776648634500127614305089876141603157077109181651186824622149152679950167801192120109212815228898034161742954830527419097806607981388844861191668582002176798643711998054750098866001005915859947132846867553209210153813057031084777573739796265134840808740084248848484395210768729782542912955924285892259508113770701117014733496896231977157991265144707185152509223856952759837615916869566236673063181431404450214978003125451834839221213100421958171110170231487154578417961623650916924602967172124955003439982590139971475195830833584450192928654751834947631924780371086078343976516120106568745310195346658991629844373468728039112090757297961532343300408071902683559624675113752825151039154035883309697046947009417289278047074885507654408368322834779058875260578734408533558478734838707366503572660800894378696983963371665905622000259116976078413968715087823839070634917720431524776513111445043097140185804393502332354224207323654336433956715234503980483289558554530177536485460538006255530793414685080091533279627650284199629721580029295114572763958716737896213096573463927488482033920208739147491457245548881407568292481656539112793020798829322965010595510837576053120349945639828905383953503315670068481426734217966083389738223909230296809571967215361957902564689203981373411697784781647917999610698120546248672815807746616415822640119303015192359916659653863288555026066673802579182109787816512445066596145984685763700511816873764854548872087357306732579307710180799163005858289917009312989587218216139853634506567182960200224712897712888985651985594029096931861115256892481328782623910005793622722641281164708241025323501076629997552425786947703071839156918916800024769693333385340319616255593282109155417945205943305733722219031298174324111127070584218437406011719037222225740098857585921385810095967674235628359885101147316490991953631057713349493342919855351230724449981546249110785805536725230482154268443339462348916316301420734596323883653481217558472484841999132488198337077243517615743614675263277775531935083193326651346473541137585277699660295314948312089620788165426380529987029795373497152717991452416838508738578269815501695575142164955786494976669546288761450229876728430476015222873454587046121445586474918569579350903510781597249860959580580421516931397060394831314825661117000457739842188587030120736576551661941627722624887025321016264066670793049333273024511652033716632120131108748075599586754997969768129867679267936293793362394162596559553940230941898611937950615710211882374681958517531893453707143071351013578000905601222747991267356225438833415128349419243384418599895721530177290900577816485944753107724723086786185754516973201380909691562435473615083599055362676844484776047924825101899987163476895640642824495527146474638868343563681593866054866902528964545432178840751136852794289233690038377197184627133120095799011472089219622420929274535405306974997723297503160975874944358765220224853780813196227626026817447011522205561202251184845428183593329703958526711133259678156639864871202453843700518162873717489079730895498912628587008641386034521807602542513058847994232151947685165364054785155540930031032494253698081978873409599732517941968572477114273928508997359318810966102750638773899035493184745284410693658987821637939033034055077652205847557070220921451696982894857023270381732127828742570122863923870597451764563083515298615540108734815026884056342659490014617513994870002586592403208942382538813211839519817996961226933713120611463524908959698042569780260624520973448587238922145279622916845629884553805995345781154437797941849684454086677055388156332589851400163203454700619336215161879766392457281188118730887679974382024675588764269320375894447164303464899482859619460446064506430972354763011821352968296902055598768763122801968153261922687808177958976268944671906456636650547825421721353741684500479516567057553733665844453810929625670032393142461923331108131399723851180769333150372619284418589041923865032974846762537484311776451818388932872418747635730367978367332550407667307127365815595440533447763758598686180865317117734763169678240128254917619527883955845861665842458137612120543027577339090650963900896801997341077365998189898346525404554213308589301234974676749648683748738557077997528693482945303996974039843747136597432355650470989305144445643661143869610465181356237011419825752557853234998262954086708442714169801776659712660853232270478970038626413535085532413063601279368546351276727260375973537215046521058787488581180059389384689882250251729599152573351665145257428413214760954617332029581791818370649192671008676726030080553844397711499655096093840606530099366213103062482662439051233694654373721592730662715915578085140946312528234198439277124311678871417445307886872300821704893329445854306392068589703688658604985127115618624979481548778938306089939359162265376697746544070496635127616186770101445600224343446443251530591328639163047136036740942733833820452689257560689854148138926900080753481489593351413980270268379178684734738693578871740732018491497274407440822354721187311415072749730732390256538458845368275132483797619260275120716319869890354415428587077740184704150658504052520906400780153545869745840017232167363447487744160557628640756143020708979658348229250547476303588396285041905387757808454866966276735956933035728371411253165103238590214314659045960007764831738321009608636185432696046713437330912532487529623399095795605279054399497129153612126393368831835166276718615077286945437414683897079569502609312391756458376047991986262048882513891658214866989491574565362675309018478355344282201675154847271001354923829150146492344128186183833958958287612982549720974977727224460458439320140116286856380397520834005469193643064985176362811549053692551001408034830916230448333488097105895901419716233752094933908280855537405062708464453057103023970781710273425221282679685082633362763940261293923462703072812678518462572915383268381833196722922940328847465719297285016148912388393117707381279646264875769815701087516600744743066685176854611222183188464646909494095768581000409109482692100942854710702757675738913493782389213352515331567327776264792238242889000616724613541403745641850436489066931945276615703826920777167087946557740685055006052554375879690144289876494415163082090311071551474530494102418873710851263636958310271195227396533030049364509208379920231854356218167281845450924677688668232037972753093268825989777301464888082265423578298766117457467495277867457211198761786123135348094129361369982990136559334445126582786298373576301508196341837857626112934005304242582093097040804687088647913252513555360616649576469316574040491522352007979184345801569266861074794269212931069587575679042073971493635594930597726183268042497976179135376351473656994970342963486788203205215589866542839300481883691470855687262601615825757655184935246962129224058273040669822654184761901294528751901484070602698624112107354327458765687921060404538854157841379366426758750750198380099705405440527464640414471217060762676124970453773024756878186221031974701900116568759913128245178438003575690452715466821004420693718316672476602222515682953487368086012334216716823020099253623682821721791054803023458054330786334229411849215322993824316042575585229171220992046712201589942934317005027035814847850553327587724764904732366084795086670323388419647676071657790318792095190685694905171269434010211596853830721217315571773441578246336012632684414834400163458866061355665916516860778176620513856488708474982057216940663997652947956227330980659502343562259125242663819008626978428057478341769632956402355145124080176449382028569466381162367773251638003581357767886575753938642835694670719555236176772124529285247343113218244886656445796362136056674452747441976748072712542279815245694524300913413864760577476558010737926753921895160439710370548405208902915414099727229657076030060186535097883897005594641418280163406279758416528977482976112096933419157476162925645159115050319042757169738317452647767550838932760092379222928029149592349822354768202407943913886070860779106050013356946150948710815234345097689541910775133373948504918983932385338290268885991175387329817178577308806645885643080872083496152407251370566981587307072011867636680002507985047493461152282573784616693711419437060452991711393714565686098381502807725354007395796032687191346997637133954514648022711644166322857090498957434177179818226279733906989264168435516055511856253841821189832381213882465069164329486072343204774296448767590759312221851262601210405149790328988756387232145101724136348526717185503307790730682967306574680357149923766641355142610857041342892028459145869620429059497213800839605519139513811957908734774582158784966793905265380114610276388825667430260365987311631895274158232764013957495401001424569077293768731061575734090177387797727476310189208582813986244281642442153839412721075405678351301651669457393294520721811641628941450521261004591073750144853650579909541813243692498139038721917210956401816692417998990739124203677634816992407663126191018975480693445600947621737272953133596440311099158611012324351858477929710704926888545979869888642127696694989499075521962017016152686397752257047694858166831070821974239333746962681346582946622204962311086992458367445413226055611848481922318166890588786935644220599975361428407621347986526408257265129966000911388217454642412767230701018652047562717722329876243044324879071478022112315661971626520912409030975125191964649179709338475840497274236787873152745740630293217180899606819874520372815208123719484281238586428347375192509782743441394409732428002671673072598840769359185726321206576724940183823579997290538884817498102232146836248948758708775932781564748503516005735469305554161487955144455285045399307794860510692735323716052382778768596804641489022008982000923592387336165640288813331058940420877167976659423791834011293912930157187158244141693216996018423735369339238610860491175831032616924850299966539331038927282566696206054239293357490371613088943435851615230181059235761555120256204139636007260081008175543464090121206907795266089606623313522309742466687076301009027307161485690992095375205749100031190008943209282023233484349910490385196137630218963589729552383462246396432179803907093632748755302681170676232881316692303131828330163068214946378309432063156673452066418343307056975368989273661505288037261005745197445269236626809093669384355960948670752807985145819450998564270559182920977944974283891010803441959914373409337192473302045065052781840734891016888860648646723594163937310984606973902291028663263926104383891870458732695258291113649435556532023071770725610453702375388780386874214911158807833355391111157345950348616845701098421708498526426922922314279165781898816780619452726729384359269888060515847687809611040731025904718364421850386904417453559861591111824378920662428900540301234774291736210082295083275441608583011075610936448745064941276118330855563073020671651949822795875598464849573254839934130949957188120769188681654652407076102626461312019553009389981802220127911140121744545897710385763610881380898942470795412365771662543209975504464217120947163637569206165003001885012929428735397977157918877366937991561809625066535851478913477956367755942646322222144644294502931925820687438683445329156937802586329312010848346178126902148703191523726750246383354063253765053322236797029435622054887879340589126886226671358211760872001581212274451992722232637725118374821016926334684394399309495347707934107800535360899131537945706091076733664658726343490318443566920247982195010968440412701208443294394175388573198089809280151394478449306182675102373101295359305300131747502782971125333816347281563772695606158352844181701823111155733129876587009760164292342465942263759988232999776665614177434772789005989123013497387158877696203737805322227668853228714277306136835712949054556633972977048851930096041416658978632955913457070220802562085437487167683719092324295442114155013949679423779022997746480331761581461652019866027864898240456513031877663875553004613588518034798691514290692986790128038695727722582836496401636914417812431025080140532298339398552926964749295723175784969552080392072803870482622819299385170654815337193260264297020254179058197010435135700620953553376894713205624547958033933536681691214970494355504475965904002178884397795695642386180879550242480867605395612948789437848067995415996324468026980698989164300431156344871139091905681582392536516636139476621387685723137979036598386904424812799464647140786164883475208074845413831900392181871138808973451115702651876947909492561939795765341684490896518384894396061255498285239934417912574227632108844938108159201995928041956602188651441420391829930343570326373777502357627533399855204067676125652733414482430364329550405858621695311334494195362838798230528803459062954024705138457108138484177002702816167501332172376480293196944079166022414057023868237777204328906457031638001695388434444644115542956825027629480198957632681302742060511371525126925768884015023046668179318465934162087524768460992095126174286863357136377327468194606745501078217305157112315329117566212877668576161714969096003078988201800639106791903025366255445629584571443133469557255165108115453605847541625993186555737717172881872536190932112603294231980555013148775812818280854900886060914948966450788049560841303713952580282418734567370394137889989325534390323236696719290595056730824690663761577540025192683551065731665436952381221285365988095531099315955404277534518048796877411558081264196982434991329585980793620808437101648745854402194573287805278136092990404524557682001733619390327710020417900664422068228022253998147570829752673647874948961454633484132634122195028382668141270183811272770077252934920428072888376170525872460327192364655858913474951735535967384842636813169826845246297167145214403144889323217054979395452701618591265793220085750797983146840910926847309835581888077497075042384301957733748804831378616320835022892312431458072967534818009723070075940176654024370598828125050789394739562062207267381338236492929272889857905529397723223839890613298442881870429095856503258560729233673239638843103040461154639772629488947159599371031542415562262217721817577862115582058802631621547147922852733611022081952677082806955047905834536994929632486587880218749816753169561509915304819340133605169217902517283425943067265002190987992262630774314682411941287684742568025612778184779673319962939029783559130822486369509140491336061233681006836569509309219315294637971792222993246020905866014178964218381927583463849853565473989288605762092926323770579861138657286716143783169767586004085597974505662790400606570705047317843885645806711504022221069467164247474516507359728201659353474787090127993704195768466911552774362064368590905591287320199961221913304927862307279988895392456257807455665099639272035149490578216699431144853590585929461314215406285400262500767057593833539539079468296574665240774685251175419347375454667753492726692699187239467775048314908137117995020282938446542011280783704897369754467984520977806769045914855245966579975088122800081334033456599448914113077537567497281957840934332973783422065948412748167255802141257741291609647172084628683412829844914515475164408123273267150775283677178204490313535507342270667201533926223008451743948467335053062916841933320373480020841333508658967713881155742151277494458745367174508800968685425066923195058994258136225178586694096129455168785070814796412101934701055987475363972261215950812974094409415473458277403007216403551810393992054185293843651143361034650331964183114007965373320240617529396713426634824463445201733307565526607289709612689243171269214795829318330561891711061476878363315384040357191235513172580167937987292583005249154533840480453184922984580175410193539685129341594948331943878904293097042170187361817702922238545761632115892922100217559344802601178062790800512957396127166157017636993197837414599273673257054926809238565614447237531567413578701248783677037439730771235383955666428736284026167890025478330446371783502333553948254261254633253270881390029613362622990138280804536526628109971458894383654113043285467713706164522378613927689704012259129804061727809830322604947643020365894178147942886019245498228971271081534820790911933367750568760199898200596900352599339458648601451378308087664067087056221672165203993130615726653760200983615696172338985235148720237858071894444910609804648236221166817243929032284216926916524451453951038910514468237125493766392413829683083926599711154790339432004747316629348091323299176937512856488283732187187566944611212636928586546562457120014488198928919419813592668904125619674421265282715391287708202035177846881099604448545754028944488523563481976977587249753788872839296544862382571252700135273748727948440355846307435340216431398509151589150604561068031997652935151783236213767100078033596778534368206874002993888844069688527538423857407164642631925117916301088412848743211588618038486547551085869088284751022807062000789177817460308327459761652877339432414675010592279895192720161680445859949800502181795263908938025715195651560369002118896485750604307924903734352517926754588315903809145231687853726442816067947164333365809735713071579782505885375600406776788041204909502849002516890632166083526973857764275390920867180643112629277478613177529287794898553916758094212657903914654038919060945131969588401803766703837469570576954016760140639055246956765252159165962447858893089023795652753806767131461334677636181293225296926594902695214502013830152845830074958429011619806257601551246576641612408252254385401976329610456563939928103842218851775981546065533687751539515943589282042430600947489119567760691411837002373087688149924991503825260286407875634473695385466401317070891510188650764993981799895840857901247307145850995384306246923460166990613468512522372339165569886191647515147689457794529264004659982884969003699779367512500093149724177519543535832182609757668920924867399085376732601233398023819579982589885622490568855669593393472346526834484438939491546055877948102009221745977772865837094379861484754786443988713113684487552281314544822496182640077778910973743576211750843991191007869048578900270471579009811762714330658923386151357964490285975307413323337405152367814938686679225715544887202786354087712152655945665642450883587663775473512134722131383984901273182866200040153368271916424406387278106352873437808926607751977683230915694713776714390918329929970066846508021847446618227947865044783530677441075278239471391919187642299613293427039488112176650748053417127215191775067821686451471946897950906336152968560990954749628087805138918086954867208119626931580622741044031157879319397955193970464774719827487736160362194646805053538036110721717661613071576296754472135737455411138289790015174452267952642020395334239755724893980767559764641712631923935421111593265345843890188208300304919136569046060937827492829919399691381540111654197967901675349459917342748873004813862811068695545540803317683089246330776932474098616918117686823988041444855443818666254505163431366741253251655703937851297842678108934005178066363161345380855786251626462567230003906920416147549267246356256223351276522557393995875614777630824433573447712276916265175243068578028366454981984568905317186039154422852842133199033245489615478134277038598836559537834061173732071715101882335833210358824976692463313334599088380441023248862039343362417198391360461736006469860534434145961730295815981014886319906494122007355213077218232139211098850565402784777230248396264672396682461151138261696276764071033502992567426437173762758644796746348847721524804930033687069914987284780963966924079460448808190283042000757618665533338584274340145982737113000373872132340922309586460686723309399869881082991732524694209221273524821136309209825640104307925402498251186927567156264788169265972269094612804149648680113183210346523320094096904249439847772372420049558714140025151138581318122924712293257043390217278103588589766061736334603121494472481730930788955442246278884482439094977329988785069791697252984404139161740519293816690837148652200165374193612278377149874539810523131206878482324477153118786744068952800111569784071285991558994106358881800092109587794923355200486276368739928020573365196742308958260190920275149832584458661999796761225899023621913968541867194741085493688879702066383388222540646134567900322524011502276894937408985287033823452491618700782318115129086779285022705540726482002491950757328573806867689396998155599756902852659793443450513423044844403037546603766512605127132902670773969906197885685169107019301257889847586919634940322867347331788616801695732512774202806016759101614755070233358079954837791618473272138420427149492525786035955284867509786262796390078094640593868921291548587522244632895284023351379845108455026207632077567396837801795677680853006153386433238729113622221530104785808531542347191194751688688382761635368560353932595582566120293195793300585260799094854730466516351149071302902349435508450664010160200575933284951542999832950737011279612543205960779296423997037968070210907889401863178227649337877257991309761441743764448845095846344071355498143703161605914299492942716013763957787925096347920256575749214261310651483018500216986783039512993089895294129074519274914743724900693817173899498779556715746322820210363755296708966767279175230980328243448285862797165547119611616894324262725619502470434241300693009791733410233568244767852137849864622568748812288375668627913951180695669487112169445746961035471863347662052994693296260642941637350970353883312006430196875195077523756390828708746644401269710433277452835792265180919885617257890135757580361197962287035681002563914685741399339339083419922907581561713599664283939595075201386495069848964657803245865612663000273398948848534093829152717294398495202998298920083975133297358090411961830897228735097592443172788644635424211868558601634665539953372477646049629692155520121045699809150857881975603835729048564009069642824773424221330814905577377251424739398771136764184358296208221992565476731989778034827952110974547701830125502968657642225756307224271189160366681555159201861218165020902191648464231599354819748020816142760925192566998181326974776214325222881358568345626835825383566363731206054199646180408994602570879088714132179963462679010138947977287917958991089875871790804594982285023085786703577168468484405929719333636790978603780239196938236047214207035805251518662666889248620687403542628654588143319113611196852123664507897875501052839117654893364585149068578120766497089370610825246995695994558922601342787250947102452853738413564518098387556233124440794689769560758318551461871692658913206833918178163966496759046811147516841100813122046010693118153678358923527057469293850436844816027139788782100771972290942261779798185018577594957266902161085330767406027243049750274904820948942234800537033990972285348391879155293176065926388711824235464727615982975931219110477379450285280797135305400177324627680998356989304905822450781280186284364522976510677231942164620890977756755191543006872410281403984733230382087094127673278098640664795793069504256794521929645963263984047689146014025740222632402953047041531041679760509734351117433212223831004066974095170250356485591179877855206921075476375475150270459398734490659235875522296454148516647106487345828432554694976943597440315639138810083873492491678870001102718061972938144087923950436822582119003030933531759789962426515050407264424173428741812743431079071628249681807819338334403750727506160613380585809042318845830396629920523586228441322337187540885542867056633410726660478533552178637010414940681612828583809585757140815414256137683512137402319329207324632093093736291653898827289254434305401900350900528223083336956757716840711191120042036662305806339660169742054485530966167437339771909437972190024766741158107205759876105326821444280612220745083075746495421401801974700181727742572713814368887405991081910459462169679215893128803201876214462070018274387246823088771345460998047553640779614776038325364602125251915918511464136006235566388081219008428949983984028293450328821242169020099999873493378048729167939201026487053762001685269791913657369274665987440419627721264632659303005294954346165252079866458368253788777467570060997537019135794335838862196152369213623490069000312374843029302936524967643774891173655214112520218927747239418611052245766510794320841337852545385151897085129551235276940504546917745911024715835972190753986618988002084460624927493736995051706665443871302329977854111877454142762140391291657830540544072067781080842051120369706946969730088207558225180876876620554763979177086469058384143595732871114160577871661323186380315233876700025746279583783257747752779599620573864037042802767306828986465385345638842463271951899681762581545226229934069505435366540016276930239775638765349329860727553329880663632904911075048127782971039359020615080065400342210344290242541185160922781538516474897834597399814048022917669550273669244862630407766125287192879906458946363185418723042604210921013939190237670037879745149636403974037867838836301585559510498142998142163795468443380962531142493695238159503067796718833543621244178650970455231248921346099199222222960435634064374522654787774052174255477096894527450542507846715462719027717665898042641286635932782432117777826401312965854506150842338509346496784515268451495627232546443434136496485580267648109984231236955996103616266651595628806980036764227424231121199390407711806184842784025503481323941240196167802782904435859705563957974443282303342309608486400598332433032263889292479743122452855743349532936537859130204051585171202460013421002492274732317240886362019411406197887924891102300818342642771279007971548982412440923052769086161533517078286740622271151794373263305107811584334349012932060879776380702361174642748859563862299113245935560965064892767372660728771277248615419722679586941186236314116575772906230100402414110700273588693008164923167134645206346410601012987160971761595044816945862289334524490290491767318322621753661438201607558354357366713676104618260489845393657533968790039459878674379677958936625362712751653994134955957462395262973215685080581497225159128954057289194428959472261161077632310527038234355454304307357332953361591435303078945069702546927532216838192676581623434946018537845382095953905460525640564466370977801367032066680202475637723679577181548460452289609530020187129146556615158869855533460663978869302507517759641670719841125466078426535241366449870831713871886529640660036184935524222708429195067554090333140326711368573747445801182572245888792072639131796143410763356213860147590059368611566530285904173403962985433144101282842439222477997821272492015637295558856934570698288301328234183229277673538037480282432340565672659747724004943208639893516445156652718243019688121749374918894107298531625870309900088874035535224440229218502109387774687741024594785773250985996624501230907407529466620500233633004872801580580204547621580209891785805071828566773165518826672040040041046941778919034677955079307609772347413587573101508918324082994705579355149770632723258699168793320723099506072726437695827258714821671049103128084429423260335628845485689753594629708818661526227925281026011714309258495165612753791445252870763000112618482278429812927333903861952620149509937585202660880993731115877539024051217396735585039144966835005494488488865652862715180303993427595071738769971759891742711562780512960865596416577500681891260194302947946136397309872674366740135745049476849103441351219839803778051986027285896073562777735766247819645338356815876945937691298252863030098182378473939889656134296874028611571826296213910160429042426905139340437058342624227344767718181552757399418035581700025979421322877376694245067617469215059977650125783901423729797493015491191361887554284197334631627373987298215055083956293434660830770853570315137683707555248121668667200349087728868651703871646325573356608138038419256874086512303799080823376416533649973556665920827049652282432578665949555713237642701689372899374035396550595074688262382761799308341753013453898404518336519615251540113825947408769093345504079035568093347486052290373656800266472644094665953508675921700323199972625214787137802567743514968781858142057573420317414399876929143182797781818984335088516610275467346117656120458405488320313091270823810388877450513206003515567145967651294963220566418553682894735622970752712536464664859613910705480773057938971813036466502711968663459964228667889497211100980958046145595570588557835057848451983422439026014374224736245370791726670835451912965324231465239563301241632238079129898847135363687528110181976628647983723603709467238206671088306743626984151230006248354974879640132068890953823714740815859118312786317515205596035912432009098375240807110701078751532102669634765084468660908697088499163883387806588809173163896326101834824971653806884753728217844043168560612050278715491129730079882237403655492653861563543303421788747887200062013261565239404879503377223717287515656557784625096493716312895788793019888806601172329675572622128447924476281107158848040405412065653475826023904778658796746977700698211625963814132198920261614142923218408420910950395821525319928277542671184880829087107157674160999597553344940945165089479013874336897918248380957310604392545423413556602004876786825708172489761979003356058382543676182459065981397492637555322023954012575955248348391205300643710931032605561724181656897344277194190419307071512946659849351935327216834759471489355309653831591753962638728571069264467284845206507870276365005895234226693200426463388598785689814570734652457819069088399589481569375553540907325827750365314127346461480021493793673225075683226247220975889561596092923665827174066528715064930520429584588023836309097512425174522715575780594926682411446141121963529981028253086185588491582671402828590495447422560741306868310773582490108662746002377674888191237236298856098462081909386807525801379140742813349185529209657617994925645066794501071401701555521905834136601101226403724286370603179169282600510749003568292379255285271795449309787271901600718603367032623413547645671840788656234667800248040968610300067567283368188870258076092706006892224732239630582742016200449039640730370770353175606540920953142908748793953624366761517006313726261428602782023399949533354432360821384748009202662412489052753150530245579563044065161191403013124582850103491992778902104760866216609542035734050787252010288063911296487539232605685735322734340383186721978382817721550693244756762442138963521034584874668828561305375600857616373176178999889125680875080096767187565662484456061684996481918841655303472972148457463026105677800839357254457529783894233767485428131468693210598402553984595001597622721208391353718128678261473355021537899928990364873161552657393845124297693946082854804894286852592846590082246617006331015997207822728124515909687061197555998540647602850299097015199410005366060769861559867682393057213371513856818486613484057450730622224418101232666479393998111755804944158022236244345071086408280103717476821126749142277912689623794136207996770113970107110198350297060036414370938273976692417722398928576936413990380686262909680161765096752679252904873623177019634054505980996586777758738966710478536992567248241023509748371731565136736842777952766788402318072808814090554339314437977038271703923279348969900107698364548429405291877911781714290801735718927923512706212756907542345276309045384526414295327643541130786352859934092795617225343030536541278354749112090968075856202732422084003245796264344816286736886086948070304395286138438989794994261817086007393916820959193833551491671038096443211402326023186687191808020065917578714967865229821942394410681445462344245622813861574131359374436031945328186526293649191405603533207205319613830746579447581515097294422105773771491372191822636165488601557991426246482060471107767956961392630195576160847097066654326625743536538496585493463435990067480459941431631963751444812694858964056742211850790770083790706100020854862913638141591961940270376229621571117177565564862896148911526118563586797808927238267765849403160453400090436644049254139801222173418784613258980553588509483592184331934947326318100762105811259965546077305152315233716497711769815122043723660045763758842565745468653863850658342903452965360779806733375934707685660731630292378731526184072798097037132262538114091719343160103727156379327521466614144963657814981634201240094934545528215978547057943823851433514494159240190455118709985597611949937744826163279449261344646283410306623986959282371672237700317640824616824932955745285413280015468355551873692908599095876565655846609118641165905842665094520421562033477970488812496817915735488759145016061081895214551374122864093254684542378472505297976878590998794118708946438647044602134963774766886105085209468052818729217085237985906199902261134091410999951312679451602935928385186029001424431332958308289639783845284732162255460353387325512101123617347467865739577642340503585998066170164428827114243913709165484691177620791219195408157316801849780979144968579348225890642066241901884070459715433735276512224457117915065290325870951605696597232999234245168974667330244223596593115291029247232585205081985214866066874734174518569703852424243757235070809184414755413983823870428594039969593299181337878128958223857848155456735578073875141524166108984495718514775986237443531700199535980743068221219353892364795838207706785322649928849595170934553413435885165426976266211603331389633935019240461499973145226867500319509280597292668538006260607584031832687534629195986315045966493546218113180287763547461748743190017793491455942331033267903980372700623831723186162036363365509812568043648643385546530306097009264149078633802835177269802086409282241943624406492883468065539800865322894518203637835442661640625715192000845883132282869021014609908395627251027083557404413134897284763639989755875405988414000868561884999439831776315104132070618636824202850050096366510798770354847597424889585242278175843240680455708437408484558372764699144180384708075392203629473729584126108448864954417309531044967547361454711889644435551305938270211793366571969559296943123743544636379492559926625901895383552958709587690666776543663899818596079950107349240997420861354165469522439245582095253728745160895956943581115755467248210953677547399697561082839234201051452976439274683216623034258249586453708829982526668717136735549522586975452240324096515194452273187271532254041180628926820559835700526141158523299559534078650972780300934347267586118801077853656818275635450237575494773405436848666439791326135343731231571845004292661414304966556168881259920259308659353990718028010097113666317606004417585577846122945235965524112785226532392917427200181428535606687230723561025505828131492450937788065662717740209164983468558016729458647646280522899383808092955209201296191232288728253557275457869932630538797760703168493914261319618735785990419958870404326592060011839930439126278341778567902549327295410232339423737933804562499900831030217305393829084412900646210736168948688467074808172262137213419057236993054992472429471753629661384906223022809669817820305178519749591885802278248706833960525549430082544104666805610897202272878272260326064867567011538736920493015042827616576769907581229485592443795439135269976840919834555320337700239122424363415433221675423628262002047518213541421020441693016883591900072827240159954856552374902837811578681157242162038203400604493475464829675730158910954695413736165957781038370550206922398748474162440531918411552904463773496561660408243931871676813786951080603429793282030751186447856368645026528028871849726572653167093413137943678493103079428804923076174912995682463002483937692735409538296568359424016603145031541161854515391832383309224225976584645773777520252761110200165316997712948784253740154340072347461837735185254407353441259700496161276566537461830733700052362291089398001870042096606975729451144505721850057923385400073385746604954572666110916166315326826986169889580182363284584976549066104129332044594835312062974412525925701825422353535917099504917362461940010716375924058394215166501884074843073508272680276083376923028528749202851416484789309588684087140546567292732342791716474861203233662746783840226200596583318960727415059351560701443813737628331828660181581876485962190329469315861667676243813897764279653070010665661346684747900725308643882094533254395589924272548631896937717521661722056418126881879146840093993493235241148350569790489272595694328339265243924461593597806676075501141030938145415251946604950181493901637202271164655414590002594371542520540977395145601170189313380989525452260689490796307925643281614118096320931987210558027941487994299067347978118477629137817854539185558134606114764444284730546250081356656882941680758975365591884225308899238116342478745120756991242020494408871002348565517025192470998916847192429300926897288865638195121098742599492156965307387006869223958585037108760941782843812980494723500064319625658474570788854123892643567665963563723510579248953541937308897625312834104418914925262415125619080349333962454537427461131448742892565020520443823157597961755644626038866306490656170842561852174400377680915117766088116457994922638673158043591434241082587981722988696728485585927278141898861700279143534038225092167016080368189857121302194483183559543378032707195033912004538195930222188005972788483976341692757666109026499058044568874305062476054064446825593574040099820748875694630426392310135093216429729072193063153032057768645919230673482766432263628064582102692117437882121587147436660067683387794541240992880501372551459172503517786630434570897361083082504284963540031537404015279411413644976708607064547224266935194933352218547354938256160255850109073039267115825895561535137087406601666323438942997399626968333890207457344163217813247662999064213974192701773489348845446249417872749168754654195472395234256778689282372270566365839298107410773209627957271705476982044983777768130963530243143880704565468686990303324860314954976267117109688692661529702963977603221989863376122405860097358255761750857685884975561220829735472824986878114214171453647258887442949519383594232373882200003992483209810636229725438315212781225042793768896124536878513173229138238852496232572486173855877719192741532158013958760542857586759662322435626453903332705830909831885467641263405119423823210459249853895922248508195351172996200756152528871684217747203064878689143449243105704370670898816245604312834883357250923445637238153834409154739123120441035757067835046665107983777487525074956103532129167706648719100658866060491231394380910826583711356910638220530559649043923219723315651345887100025717686317156271366550374773404540954320178173582456205334198501557620888673672550645446120730655865989294231940788234968509765703368865477943999834617908535504813875130057584462134774062573701945381621024061413925121679685691614499469370937917529006512543522155340521820052694335804549432289274883562657464427015582491102099965601187761161590981776504496998080978215401055624619833871449758028871617522277553981718347595306981144034545223390716422027630512365625826058512744402802187193670474209863314291951295074843329722492789182084949145974780061664555951718302570447840472742434312474076926091000034355528710731275368495160600030677851362162106350872809101681979645084574122612078113469167034110610876728940441420194081290913656054611775106886674567139276388800062781410858955432581204539193567864628836615842106109936503940574989532093437009504802184359768059041631606976947761267100171182314262364360344911096929960196400419313458750739170932792752024194642264459658182594976450641553329151872801472836222511613013007008578973069311102398268154793449891379311307046756458777188974000780696667682328760326285848265470110492920003582585967630851703460442302544677535151997178889240214154046216141798393114902418189521857178401020513029465572585486626059261566226187420110215763203674300545728595399742577114989682772774644526934329264591657045970158676574387994807221100133990425016964410182825083684868314682618334490070859719637019895403303607035233276923244985242516283369307423533600460655461744039065545794458030797983299280097974092012226226364508619813335884728329079760730769852315110119238154001696958656156315721556870462729175786546072691081629961323162601856180124265452363757245398597415685507355421553643622638284419145795763417927589762362473292439428781219835530963030999864261797238814681541490731230814132746356724330591691915253890766754245176510025939713678947387744935629507035148716195074943891397540610989174554694861244007455671988017786077010753195023138640062537722336917170921742646941552374886074291432339934144681775255666620234960080024553114532657703311795519676084309937612867141017157548221102693389143928451423606553269277990221612110654759179768117826288388666937252587990294185944562326015082073169978621711588020941415176885014236295933675284939603798203963977596345609602374646841684107310205000566160573970149402045510635043699930378549069309786594252354252761937076476951400085292407789950798262754694608491942365232588062493021200533336876581967557514974302006915899342146996455690787625739451519082480926500512266036058879697042846679714454315672044847543341393901051144394698717125988048913407181675474040654978188469359211665348932352744187095720212717023333440515404675628774681896638741957199715943890998144495675742110564877270546223188164834786419676327215156129760908419905530602140358994468635968845098487896882079472621967408015176607578942590285830699905777315140281520638635283751032760659280309667284332330337187163870879765743861421152878185974472879582473628957142792229636368953525885750852822524374010051188600442305906720185540508449214924894727599250907265030464688434079341637532899525447517887918536471012196676775427483371978096565415286613042012356343281760940659014955541429554601273225893951865207528854503175708107175020688419271943732112046474684442975837016002867506643642998136006080110602627091130801761626047200768751788913701574765057934837915911329506583514507059902757602608060271890414441879691954859598547340227810093631036463766780819961740717220634127071589804865485368541132431139692620940508490258954687192101958910965189968724633522068648207653297822708004693616941682817913985052327797955433980529467162314276221945030455424779702389020144139516298159468975596958864892363275429630100967143891406188040239730637980316526187805513981133120046318399997586992951801596641968296169728584974896390707084241708397911905929989865901136065540096169995938989936761102742979509560370517460868801261910539857534444939637622207131348169363081604615986483953227396919730798084547514619138243517337051216561522807343771142362003356633692583596935788813924597774095719436315704543066765416398691395749962189333692434596574604723526420665682365031607992310777862179826163694633978891930090315893137486715937650982350373448562145772765902650912059997228904474104385237897055433688463951898987164725923720889574517434365999993665450596566306657617777133580303000990621731541580346624886805364428398365849081988965685242345010524960774296455863755396112733873505072233607060381878811148438722015779546885282152694693337029490766138637726501773832992473237190202039597751890389270553598042741972846064462438152838010137709206323166507128115455654889324908090625315778095373697714064782138450680508751054663719526108986556081325541842604954688666241324071373694236209589425927019740611844031296279765590012663509931300765661478733826516638477111782570669224613575063014300930336122457907471522148584627644102685692634796966877073791060068863300982603607034498690299487940254560492447068164148892775898405221300147002092733680691841818692771045068942006163459970659449467065062503528502873659715391309991418739778360638155664480292170877195197859948497464437029690513124473872789528856056843853939290645755201449869849404574120326503333487323851253152239524560174163485698133727253107887445941523486457958181264390872294390722085635117685689060622916830258560976490006787980636375624409789302756662059274631053624742800907027953241127028757887034638739888173276860613022579350268538128643315255506227119553897111949764297483350936194815619897388034805771999659149548700452895520080417035721979020310406349685532377034489065216991891976740145687970979148976417246473422022070652803224525483348062433888560513229180822968844776564671272030542828319607925085392511431396520033694700177025593518287556078748082856825333268377819099004437615287099253840215496950373267989736541868450229971874904640228953727009490589898206480539022074312911777282795779769977254097537142290256904628658066974886046282204632149091153610496957107117416353498746731118064581517055728289802251544330930756252333606004134815698144815269892670434925201408456500195209689272302055911730387496446681073969856013692123150928537543054937649731980862468604921594026993146915472791614950995668559312106255826821161883495440602514938916348421738950279576462107631785821336674935086625596281572906407139966995258942785551893916710005571743651652300892585425455724538176399898663272611260189779010948417439431244484393210673935044599184846055867066815002572179000466449443031317596466261669335888057966265068081003074430916298650709567661574659801965310206782586378486639722572341027996492092388834900298376009088407941662527607085012162461039559617109066070773295281368872171963519257923922551819970758958552221241770150787099263418021335284365857877500765875309098584480546309864852747253807624662662864885905653314175655078560846118775247803710383179468918222181235691734350601529095247169084255244514450091433266227811783363012358661731420307135572446751426941404792142654534239513030109400176676480961673072441897360706194769902667886012046281244593371489043515809175868724454964781073120575400917007338543205111149335389413148846491451892149771308700621507101927783870825572236229830289321974096984488713226666666950122869251378783086946189120049852693323830736251738460115732711368760237866937982153057118808497594915182498236111539443991390673151366887414091538977632299523807972588432152812833444147786332162463052745434913312344662968276011753195411960360515540638330956235937264363380106238448293775948266041756100632035857818952593599975791715780859104707581138339331518393429835235242244784064893679071458763925892805414012160571948457323198935659570920945571813869070946934157686217172510103242151885591416195346377738062905352898836776349984733853845188728691522485257666151890333129539008197340022831148813553199383122451951386818783706405258655005573646870529620107441272510788014229512834673054098019997307367104131624934871306000552528007972179927165929128230378292425782749832521722166062430646955463193489846892654881030026711651648567054313763134988339944172631906630648589101596003740362722551926950075329203274815978739256076783809492389346001107212738343774392681325346382440325851276817323406487483700472994611614240534625704433742403297478512344231529001255546355015701862146756719374314570650191139475659819376284307519107334877681855003408223302966275849916632352477304093286688576605846217818836361888186572682221567278993037237975761753611319138453035662161213430054162397540483925005997612946631182567567116007065182740413125863381138862887088351482202247263204301619389232549235361551228857371638045612533664001010127515998007745195924561414638864027826047543834229203341319521426374652036796768496825836576039221983673311074993205953371693110448914395453541513592040733422424651957114083752692138125472877156233007772903635522966097982066499768519958391100069188989806862303419528825628117030797421514883162164467026156439589221047175439072294411556975498169151701731765407841975669117542495632561896436887199152858807862100384071428097362882275714218175814170771800235214102537897219106550932609512997123513502669970652709976676438226739431426976881316186282659265287658976143396708881246276256662826268261381391475923783635413317114386359799489947222500805021084341811773277863801578500272061280479426830363283815357089180751691797766062473720297377908048820891549078025808310882775216333338863128240388736863596334014427315125465039214225094921603686092215012180451599068303773540337366608101268329418866507296041851837096458067994542318969267735582762237506239217738411706182574033142033896096738961600128912685951110672920892951993711307958041100948169704971113458710188696842889539259526555224687402470941576132262622016948897808878137894589482006941765745628158531661156941106240276266283812473186325692382441817127857680393066614743229117937088930535373901747545348333420700614174511135083435804940915563474117263703794423341288701928559428112445947358547849318118475392928544381423203106419026262128137054908140433837470129368834592477156213785293563899105381838327850851554103531881396474386973823025989206385352588706095351531393699573909737148421327333318157763565270432501672892335388006071532378120384316214939391827394183209251733565497826580627108379303722756476808264436706018923250701010333275329203420803249183736166397761767391530500774340711518550799083356166199742643453440365577443296160721314168983468817960367742606687749538717254594327815371490856621667341620993595347150742036596454075716274909413309149820839548834992968691262752769111545066287578928994055655198793245505408698542561965553392478502794587327121630203767917701613532954508776031642295164650034225838724265573857143284890344254960818313808147023770747243886725975469484516368516733953674749117332402230038474381469796353282891019617451756353404309130982196273530069251183451671435540165718853727064866234423066186272598295342829397361855100164887124413940512265994139500918625522001981138968242736945999990137365529306167006211689118858185203449600744963254200343278420104114746823263646788462495724702646601307212341245954751864027400090428603079735449482190708670727488159752322869846159353397472558091844849256843603016569402975026421012191079089235100233485446674238309844343412950127904958387111435556721820286041596539794452776438768238301708917843329123625980624115124773368227782402787406252926936408076621515633315675588975460250033925123378017294938038444601113470842341977550475133179404783793766271474656718123823336696117593348144367780922404668861341864274899704363613346248046108423117669112940428514160248727414362781250935638098433235835489481688772212779069156897692209300046832886146480320168466744880880885263047378622111076752619257374773413927514482672925524975817579111363377509374660239901934151494889984470764359677895893812640650852073352480900295772101917933170576040149214260349672646322340470097635760967849036802973528109069903559299382017538829562573793849286766258277958358651209920166781544775842034372955253069810381777835078940273932867093717236370441449658027100185617191932171634287908405388815060053961180164284006076971095457415134965948439818284148827943139414165591828178138996424200491694810440536277583616576380586075032292756787621322290242668834489659037250387126578504614304596917912236270119889699092806182725149937914653223124130605085863609567365491500196924996226740251414981572485194330936089478431860143037642888627965872896168590831403917138844611357753896224535096735636123697134695375860827942060631807265628649715186770223494199217363552291066504342970480637173974732600086532543861368470975380669436075447678500595014287942071218892064085451725077830893645278068024008066928319799166816934080157390105952823251893736707202982803313481541894531888101956621935046164305115358569564870964914351901334473113055313355999384045555463719192264226957556769011951065309563205028674612719588010324712783051017299872796324541383379227818013230172579606653001838742502029307731157394112199424362428378889038111046159562194367813706012603223470358780740127334841082200540826076037538946052811889665233381483129387711304384289824369496748999881695810680551707830010944593086096360658840007655787657246880708558053562274645564181191574397284070604998633566012709884734968119197237636672623308573792722644692048620565281719951640540050352808116807661656632387819915122729500215765434176902206849380914900600501852524275690851765417414019155908931640700714908075541791311592213264741963343812493417610140339214583108750113732447854556731679872749604345562330633117505950795496289510202913144655218899001592521826215577971071962230393778963517267121709304112984651663887672497111845284509210095189452557290069348763619252607270043839745791056296169081811911317040195422788091176414731026409503644957088026873719370591055151300682071656817255835495647574143042467471054408742587260085490202319455789986914074825260391154161144870270275105941441468312000522209317857537254750010695714138268695592112065154344819232125240135590114484088157220150717758351404340139327944720944354701891983145565223050127051633120676065525965704556064816408613955062087154888359700762950026846986258096189378777251716038162067371258779100651476407239619392135043368903503019593306356459828500467454074581019738716692264815133544007080712540643327938498299502320886026482672226289771240424495158370925045182016440187503138402646489210733499420288127949011963371921297234070936402196388263961028999241562350983219146087031596041221679535884767062113184409387526597855241548556099378753980002216834532677769823268129093001867163355415106555608291627499566370639462765659790838763431706983514660587012087592014755859441114211041542807153916488855203931050379784182762515151003321604171184772465545359812899233569843477247180986640730227654881694584594355351449612217950835414831168804611596826912054777943401662878015886262928560246723872862108198632466260881066737639789996562437462356932524748292807962459219794755989292644604708932551323490027470345570454196220211777493550890827140250958062502112877419085683015074743532277100272289848291617545401360561047260621630324463386042775696267459145083579524063795589788771972308235013039754031728285664778542360120855362094689348828992374167797198966656573662908239403009259568939097797493384021040799093177229299200506157662565328794276106050670394506224907382913598066172253894636970021056456469692850009400291281153404612205095308549799023165264936723255861639969888664477113535917762898009266747148649304518679980899009473677191719824397543629889125410023053165772742867262920681410512191976514093170913540078136583283735447647746911609251499110625343869044119149209025295823146994200606425520875439262984229222054505221345387357464531875075149873401011925913199349643816298836173788142331839007785111017137595518800994472833162584155286017157346155723282544200768309069724486620293968053511298353902120210656801609005915560513612155550813991822428357348301040101608695549206852761470162584890730561300820672907545080595059196310658639566763739618477043815853625431988409839980200882316693905780631406158302806620491478555958651757513953961354424120261357390734850365357623726367725419552707464710594900758311944872152443783300717815349041286909793354768943667222317278219750160700806547125233699404827222003543067548582458840663544129824427874836530752933612939538688664954845515923833816699108827506233458319154783263387018426340716391654993936764175311352470665101365862212552436807470864207916341607472510658422914836479584428937946006636093257431781289288827731064678354288608642014212105511738185161554633639513529151825245767555392375865955451376619033540596968998588480655227535684251907532824566174317406348629650647315897322659497332846571340184130109129367343253096239007252450552586487229747514701131301524863215894867695662641950390513734145380120685461008994828720443234293192300750288617764798077225141924711363957527985694269419448336511112395656192397260434932744448399889938806415065615227300535264361128027842947380920891587522722536656309313368449032751618899115052661475906391580314340255216861588523822536508192391863695578829250329733491416232138363434091405437415764521034929577990060032673286339757538051488124725743172699660378009513830170077849640794154733819848056846544045532221007297115441105533417109253241886730506256942887494603750422048067697196662630918301040765709211821517314572033921978793491971309538560874265215179844511865303442866635717953711281754598535576508131324127384831949953473117643128508227454716408406592040644584932029276819942613631003750651940204169415159953360806990733734968413589322606287594784218325950457360737912056411135817913983751019593391230235209201514970641572133743102352046183635592819365047146612250925659300064790574735561022594754493238040944060670554535691288695081165115490906650427754660086310454744502347000402614445763378651183328677059474483195722149798897623459617548850329147602255297817678124266201317237772902847838289554752853486389166500137436386240263041550200409604890763602339475830199007901822828693963238170248728886724026999331717847994370758947472165224629960141930036347507769306973204004059786548448914721502628601586551176625531294334861495781170070190398054112885926057281316431785001824541610799615960517699644089810329401919902148064173370503541939100653409210223470925967833829241913850713390472965618113183119720205346262009004270160513247042005344883868809344008491923093413323847977194875620844480366150671996942361189342902530374688868300146472425708796933046942819654727200595724768667989522056975423937786187268361935511628861701957374883572748438426093527966455842365907223429893639159470165194583166549104955031649728441746750447700557692918412219158367492028701795391598936946312094394120804217022856029639942386651421256655035109393982543220172024465365776867294849827877809645143673646075188893957917445091508126014163527096168086776431771310711025866919422526965506514246323908093412638163279405109140448296749957108349823450528756147295672477592671326383709794108191037650732924854089611207769628672891296115320251604305703898847800417337525351423459894568847615855171845531858675942882863540897546030021193870482208652011979281667344035829881485047353696702662104517438694927133973900738518954826330618071132597957645759355737883862790421698094496341422750266220756552164499040753168594922121437735002303838447301508751180102327522312470707662635041479386775054831890418535511233354677752276507496263683581051480915032039757131205701331779378929069913770381131567251185516307039322615831155581011312604309792028956991882086310882222215248787914290900080670457506164000385697703078868492638686873225642075084496236720396241217665341204343530148862171152959840285636243509816649649870244265907258311791565070308208959251057392935806554472090254436494439543759871127592511224227227914423327415651705721354021549143158517773220420710936795850439681045909146132265592310118928915322829278695391724456581160268449808185047643767331406506582974454204749809373092494543669733122519823996136384093910606176817454644187192234855489779657955844301985981280471795311125244297548320390679243796470151275020438022713503617586458841622396875565278717358441479080759928295013078695437932469466876078140984680847937316517941326301548641811264246151300059048488645798384289371193972182018244160053730664462910276711415635478986359729106631025033585417350004059316382644031598624483892641185412948583286084859557945721188637144820021874693714070243064290225740797270088184206365431013211123925038725604099718838148526971869766831262666488989098700296452535646585927950512924325952898902094830054439727665414761421980337429508779489404587498023740978009314057775412779216143737809390476997914175370893968134849149467085565245681792414401677736715201308066061176068743244795316528235618222117302281786306564531043911026067278137734946397052107591425294940398528302845874726923373759253876879956531203426182469546680692117245444868440631361771300861491396806513378164830566224205980133619536030661530218086904779151308522600593201639942047029107851164946936266474596385615074511638649814084924753569438258005099377427752998108752208022718686782251892377853360211557018746446464056234492536337581775395402915005794550037029409640609900210399815843231565133224228127404030980014669802739569010297819757848392937339219424749614155757032301188205307987119568965370203723764205786309114372086319852419671052241264698179282957500297976425730404171800083062032528070299621766082133052818730707403108880718247433312514876849628316472911694995323085493266616199910109424967377274297305112170566672317773318823324477115640037079565049735319935831630285680221467296270155924861799411304244595995084055879834837975997119255964260183836964121391046263263369037847388141290185275225542851565154250661647235442996044276035966103193875546354700344598831342817293085596713403742148805721150340715891521300922006289655904773206691752939652766650132488392673955616743454988785816034018536739567128620278638527419067634921659910557881307739494678644465594223572763489974443301128396843015138447262414096692578478103598995978706025539556954533725532074044851882277798040433851388045182678153637041060395282421751405835627059542349207879146357286929465042230577180326156291494165137446091500417590581766196485636971092119616611771927494716426896400095023581114927704068258860852235960789693968174879750338784254210893776520505410720988565115679653914657307728080205080234173056707833828494126819406060567591842295362423980652530978021336601049249462681855187142561926585486504826386664318277913545307267226917450243966227788245064758561494488191309026357332507014527566991872735760818966062441654769343640031984887779983216214942599505868451127761441829399906151160169895156740943043450677974674106919014851388787074632422348386807345422652466285026774680397968403767608747645571537151018112787368860327648562364207555205027883594933586963297679616041161256988038843152154821852141330437047929471223313175120077265995340605668262053467985603263063434435796809803510015007211191064116059975403261762149396364839101311520953968129364137342188764499680252282913756251748885376606678978646385309225340249057225024641503677354133718859791006141374497253313037126386418120201765187440114178485152921443377963432197736895805217249627444432333441318943596802491867434994613935669420572302620100925019994305570208168075915089447111220322451294811594814610906406645637366778010073847376868231798555624459392349187204865475911138302879291498153916744215648676410081958603994496993946030328748339146060685308880512790990284357244927166779664990687826056487466563808218274117535436843412593156146506744837287053227227256771799890824685433190650768762766768153187902930396362348132984612771845338355611730373830944652992029553791405985138141411193100084241558958338079963816893780623550951375484263625621072849459544192040803262688747091860597259338477331922384064381151462250170629763202397995367755976351143742707307734412600770448977451629679445196576815852975472639097047892400540333223821390568428519667339866488781738735070870379257287232007216973212028967652136219581044482367827790448758087185575818063006977290758824618355396416764677067882767720781850868622121200220693207566700078028576870813348678426538093129890266327720140414994887368372220389344311367168117704462991967540938958058531953314426501561364115276977449272127094803682252090583077409088431032643396340005011294897778677380005588331495553123157388767883445226292481573903181923692511198900898216075106916825143084095097088502815926725760195985241158459578924002457497988328223271795920100669836946552793456692107779595322665486411927709436897539574163232153447753148721777334690995166567746158137665747754873901219604112591929681350228555411764789581287797588839222999221262534657471745361678543166753797261492066240183739560817259252126426308260453294700431378519973631662972385770505201010582409840335997161397292526376614683413250299340129569833939124839162339934988959861849817390881539990930976826622926266047739070070591381370764736512180183408126682350078917234614858782693632696665718553243472800315684204517075316767323282319311570944683028127012603716725305598598506809571329378276223116499307537979023116865714425824768500487889711465751147557120936743515665992509699610745004715527233592839006350715329274267305911821391954511623160590277031124624745740564162400752019283265344525501005218583371845447564816732458994496647709277424239010145706953100392535734787920853548555216989153924436670736886552729767935915544227299574057133995208711433196772634757295399213283987676916010035321169717924473807707866347841700480557858763031838437920235423502648936501870137240342171550046857881968103243685701997580404095721174638424222835235483934879580335637613400155218034546547251158115302880900038195691548755180207418466326658670004477792666146725448870168870467378504289582199125355803848748652365985126114430826450589826005995281441094151380823026185878586569626904194629005827631746831705399733036921003488472213051300203061403566809731316206568975307584111003008648282932183704045511964105303274692383843738682060643375224214201779719936468302048462457600166806295192872862742349157301902200362653658329233737760405481378765722481403444744430532110357993985434731194458913660811207969299816066519243974960126323630344144323007959630519621391582127292252392246687657098165681199226499957668073884661338669188294228234044757883211965976475669909841756601387921453714083032989071376728636630991020074526116727000778471438691266511672770819036508568170351676925280322463494174244225598987320158897596922864556077510843346152363662628494848287056897962187864058152287259425599618826341163597398990460159506321364047882460112628069618045105647032020029208216342059121080107572491850210158196775982750296988184040901666037676122093314205904966482881931221683727103622589262557609407556932262017572438369555356878350989562602948905386655752321590479478798025075177649968374405021294710088597700332104065141875954620799181495673514345103560912641004885152642461808063437953203500076222311417530580869596690047609501629558922703782541818588357794596776449681744477787001785255836807782982745357177113651623140362233467568375325108376805510524399773830527828803350570700805197091202061685462678179338121652637635645695012727632043297356456900853757760138266794106525260292677734972571785653108192720969688202335777439565824436382361575701921173917652391100076386599821093042400398439382015479177628761654421617147914791538746883890567381828152872409466389465186615378273482791403859182094480715555941210910340233814405340489646258293325753010032490621505667182173458575545365921908890922050955692947250970617835076514115584880933134426263489782439752727023412473112254469267380858569586754144786187481916143032387740174717582999440854118166478747846516208423028125271039229812617298916083364061502441799191892538590151609144557673494467258126672372607402786180557531631148482684083165808275904234392117483195007151219526569064632596379849135178493868674125906094965718353187003591068158070600924021139207604087619135143090308735102152631291018738354011029750341197669938704666950830435553394637270987087531848403830671086343875740434629691160486321962387767324132713428893853274938221945811622491269305369407211511105880160097894025181274880347058003047213603690231932394491863451542737466636843945471804658365121270738346511356054711017980135838136267146103899185135299897950148698600679209939380746553733738539540307516701786663720871453984741017270295013757314040296436189562538144501287046670187580439112067540215496606917096337422511952864579009797492677153993108684133821444639955152108026349680273861339666122243082610257600215420960339006129657629805254364172602100556821989314934321268243954384719251128310993282552896531587040974235070250384039653298370518597585356083073664816517902922589999846338212330151633332052270769217375963404039148701941505618379238552795981075892922815131146071043982755943370366498396505007555446820302623680495280178534847308748651623932950910568445073544424511108247968266091313240649853896821088486324092289087203716957931576771148281593586988517860076802577542639114906273975724957717158128739442017549301557696828906653561210801268834012751855570567749678586268128618030816361304097339780973894896256364671647594845754547508076823523672690492384643332654000107745472687958369282326289833048891074269507609665806025669231245981944861131854768054169793356081537873667543243083920437736056723331942610593118449945223108672674367114430218256192190661419342674344365017722875529889294593128594760249338343279327323399854144607682277459991416638672893814377609901286413161970206993519388734811758681664915225046900211611158058334002630031373141208307877155366079416591669792678327963065817662905911600887315259382501916188005593996977041446348957639593049810282500822185993649526735313742379187039967532141540569413681006223251997771853583367541097872918790350156990458485721843401401559364295256368720003837324193367723777797074093820386459976987903044955599403805549322921916661045059866957849510762505885687563578487383303813972239755047584888548719543507553058825273771401158763239816208807655565277331556757643222298170595045805163307670719145790229351249172159750455860463798183117340012310481790939567109037529458529285984879827356340008791148913216479245099275923125012495444589984518270168712236632798666476188930063260682319594009982593274003339799375006991714290784505655206866545228779524466302958246191368900913150607204747860702982037220490194562019352212723243523156681717120394527830493328115034404892620470661441023441042065737788686748102992473536150088012911569334263999157518309016850512836316570576194241766590450111155916750144686864809301437157947981095940283658788439398953496653585801486491572120522385415871581482974975117940249282700269078883343890668869389393722791214754616582712063527651706252903616745634026775760366904649786958227656431096457052607642373662248743529205545288723878022805331639460620445615332744505262155004323186965472622763174661314898683359677043470226115952102699961614579418446402864823045628851745980124466568867121881224503574579584599278784030325880712142603122868600547025259349034315211729427321168358949472533964736109652783005810403925131564647729965842870996924019186470041582927095513645847816121277595471371522386687587064707433895462595953903556432768904937031477171511984172618142928111572376830080565862961606473647251320318973417143487019034117532531809568639688639138238853044220880495740545304539027401001049336153011210211067253398882137883794171798355609188114441900543068485762867416907059984305417107560599280409884604220409659802621955089109213527253926242781394589197214267893837850476415770814684486067130483620463241602788671068014984354816768962036576037697655042614192485392731393444670895643389674792305756565260368664893262668784798485663659163113807104763094926587770250865282529566126834654580253254317645435693472248982511796113229655358835698427560855177469751355137935217489101560915584373138884398002880839182043961157449859654078317905186454255276749381346667633314715724617522046292861602960563505527942046829015060481600332706078217373685451736387602524447539844443512057100832162262895016098452796560080843487021673828659477180867869442484186036222512873053809233607958397001775245831028442631363219526971545537744321042080395244569547194932705116279782600656097027987266762528701148697527742904270527321069179721768226623327350092143808074058635318074617306785128137559801807203751010661469474941927699030537967386489283945621687830703201633250147998595612723822694265276157964136083108536109843865572226140971421356620825277195237197237556648224497114600671879825370990772160962830260918553534401365643664905141179178952272196714685277569242066399197113981375666109409714226472247868622506724831365847845183412947767446511264875655508686089503054779499237541750578733339244161699240675253740985002173785762995632639774253670146479416180784801023523117339041270499469831338467431577505739277005509256294922964586975558156964697591824794939384614560368230773828972569119762883881629795455873529318889640697834424190741866300710684925839265745747414958685594827948242014415509843370281512826045016207974963091304966883729644639397185187748263271166700617076356967903294708903307906492601314209644693610278619257952898923972550472015518341650190183335342253464138097759889025260699089107835125679946789185049150534423620268737833629077034745302419867881429771601622487185082120036544293213467540364769782059587159020546495865400144309432972028403348563130330167910509704482911171960806786904306824444421011684852729341002609452524825239562730830112595366370930903530006197280261881740033047058946466061107011667750550934822110852304850397645846519237973019801331603690014776565225648822248404991269889042068411541746283057896963678403804082344576080655762332575531838870346852903207833300331398195350809466750653642199013635165679824344367278577274885663912310307181930993873249871951931341778237245972912163424066219462231643594745517143740164413391779641468163202520341457059880432700965913934534523423049642560206916509050938007193284487459646277519500682950518135025197392742032906023803565061793964082895029989939152895817562907627212033058486249792144171959712083532955738743760209420293560361603520956770408679192930790189687132347579121912928585482675990471299944055248959215467263133861956218148934697811081547791300989751789919286043694912027011369105566923187752038392140472642482556698463250107774099138967476219655855283915460499432903652939477122549984118655600190197198824343071538202412252188034940183293056013235415783175228470500217509912619187038478406815216440459712044640609512698639567460854820563086981589571152961423006225598710260307909881115828506040843240187522737019324710795636445289370762559058528402843157606901507316781998124925173890530512133782563773980334294583074218796518083383497573882393170620948292373924011638596151908711819377620729969031146060638837864054253738922274769403755887992944734891184602088426679970683697855226321836155680759130066511930535564844579038207128209797307466193443893632639944332261975367551202184010263493090250013389407814157786468374726648169435063688682637291987212840633106593443546731131027715956287068470135272679980211461765539095948450413624549125938640327234294865623706143421294365747124351703938409418566489941170579930676778509769171514818187117774865034778588258474508554450996434422112303872093468926744874107977430101251338699980463357215365822100577418194254078992570458076922952804555150670262264540544971280209276875639565000364633300290762508034655948255946995383870355165645981674010938842161465166957522685584447757111485823455097649369979777909503431330631409036212778649878009647789279632922744204826071615748324631328075461412195792287146220499267417485581484846741539163478310061396463488699498735907456397080997086623992024609172161252939189001003695381204102827763191049674918740280924558839485231116650999190362699935302339290784467373962242022490427060462018865875178746065664216949095197939737155537605790618177998581940725351040449058040857977862056954349571979081746536894430104808562268619879993175076340731760431145881507630654068015080701461631449596629634679340738377923676558324771856523179653466932890198893254930094934389832046283563188216333750234182211161976018471542383293739929468710559853908065981223220151327873201864903663668904298333258110438412028539656352130940234864178263470387527151564498357387301759266642050449305463440701837739356407141412317832514796726384377543591479855402717942539172455605003266265149813694161788643011587155839572653397893364540383038465424397354370523772830774187506276363800262409257113661335180795654071343322608741658473989317782116809547685163715460666020944649334645275838444668669300519799836097302421281736316676133018501394829414661227561018527988405905174365744723278809739154203659411552712333540490613882715102578703513926391722706404125514871108433744762225045616752165056053118917752002193780609349741765136767204532877710850550041652344029935874636477252097506731998154835984204783950878280345226871807390777133720525735540516889212432956478030667500820010918248856051992527287894029413904080306906832865695716042389487769461200464706001505811949126152335705608290456861663863266405575133485179515676066960376338330691234530563300282347703577894745404723247140003016010085503468642545013764263477753698376490647139250605964813749736820969401355029707846021704261769558706958627111691722152238398561568721708298002398788551025435067787069068944164168487625254007062802693196940864507147348397578063219118006804090421325359106654445668633510604001576994872292493588858496004690814753674282826065111203015451033725087464698160559388446776563369578446982676720187515669432329342388321233792932258833701292004577619693809033803877582495170558060135934041175516480561502738713986442334955321899244402118774009395999944267335570940178720174024226071264304713729886553453516842755037470687161692268743662194855989690837748944604774112960534053340335154119159588284832792800582935984525934817712803687539037579552010186791211310337189064619466825785670616633113285222373990200771435024263862255139687452830798788974156032824189014067591450517357996447980547236885747223837837519979875661568140714656303290158365018178293994523404549104218707450618913879032665152880939425351506501236948748816458958819958883758261286200989245881720329052374245474281226918808526887402570934572641676857968054958707828671432028656763221157664679808667522922247587493875655417996909024363653142832455080363732685424162477496674461210397104822299687261199301857157804317741460061146977514292466870656781470037463862275321110462052710898661803145029374315677638615296612991136331753942402199634812493281943472985967998585070695637708305105591559338006791834258932155655393753770989657592254402450336221465086816359278109440262053106456936329527406901128542746690608063727709608734437796351766626523054324094398579170173639179862271522028629888970648299296333632366478186805740081255180291992372121863947914848805708339731472702801025025277768906439522959096698064842655739627600204928748181069791325397503002809893135614589177378244021790532362591466305212181843999463771911184177370843774195431463269666862685111903525284313253204481367186453127380764032378304023574372709302985153884510705890796573583363168910909316139702642853007520134512705246503613786814021597337502445453045306462020523346892003851343744926775429616920638562447383917419490505155732363683094535133046272809353249931743077676759255097241253860257536765779338704297681635732252897111149839501154015361248848654431730820718807184362005941135151160547540212957751534387175722654117185594299104602591656955434642640769661714182863776007881965807205479156763339707512637876451943844331852709520424671375407519579869800878173744489806365127709920464739262896399455005620781645686288079718958565882745278801954640982154396580593356417413636957322709378044215567526934731792457668358088302964338800462572484524626518049290233793154976586816609599748965120085650726011743523368380052644020110569816990786831687917223598301049209525565374699837247762375033104550820745461390525582479925182727976635244922990614544594513518760501303099736935194975249490590328374012776961279956467238831801727756989761093303923597419706159446669140240941450234139087746152774256582110430168590465208474502252921322155958706058275072566466112320802917648989096237859883292787539842860907641937393539161224954169900757421353523812907292316140280068332607774492916269931952834939301380882243428014520010003943569322116314596231638568043279735210835276405149639837053079412486745305604521969202079594068247961520603697293081898233447495766246454095016206826119778107228909025962768086666020628539177310059373301378322357924340076273878941106815613971956583111141649576445328186247810709021904086424578174952194493629928179831838534509695026297344333602176280929367072597295892489688312362323079244409938798046347901448033321110876300229232837905384947623825711625752811250370336854960042198611133877994747633966611092696611476609567204608682866654114826862751892391898942525999281340479898934408501566333184770672006677502909921368360353173528643292464915564325209955855069432340763012552293063260066954938859174757173249987651075897898267559249783254470453621116663721863310437426374688466760087878839267026968488830725611752653182374882115760910221266137685399440338354679952407644101009671964290197804907301483933550975665189053541558847801839702677555436264336897148691438737601496264539627671399191693315970581006954026625616485217700378202574227681279949546230120764897603691007144586470887166413075155703052099993017161204643034952646707705317717420820204592479410756455433071858093587361971965585790276549036874434610093314153005890862945054261163721352464241613021369732768863612645811841103717040861206409867353778727686844040160301720378178757126506964587490543231840355631023259313994636385878533236710664236715169532732736770734477780282808985360710739646628140758265577474123766545203902192463947942097210014542329191603463542083518227940454051048402436243318591535021964981455826388261772326101035385607830153953931291387124673973024152331005339394983208215429164891567707462012817128740011925730225152413546163632529879773635688268141252145269722516088016568581005847841753652263446225254753842816530209814504684173669735896885559186559801781008286009227242430755871713067550277335260416203841406801035515200561595393974047705762538729429482312619693589771377377635261252098786090308055043071113223178460787013811743414037806185503126599703753204339132342236250917486219904026880118796335846053882987520615852218018241394131529293388159830798958975240965029195644902701911685165223273414877944246850056275981142886415339439421000465049746864341146499975711728215576786033230823926288320939085747746255420591246978412172654929974717454717521565000036523814875891303119864822022915484245541006412762713512576678659841676320572153425827083175575059676977689540489358487412535153333660013863981779871820125458706266940000188175625291376211276037521533337984475647151069371990683795807016351216147185579699144284604184472522800302801175846423530004603696922750376130649556146663119713210192950989374192635003675732677272474318343361284337840807342789150580779504934279707056825435867358170112479143314751742753764375704903008169114389343569647896487419239994585352715433153270580988908457792917165161373185670068275384437403331926926724905870622959852864555869466203244604665369705186876742191137105038878550447203003015852128205230906971383276737488480078203904904439858504195848329260163024996206382251607204501897698102241420223066561239375348073820195696666117449097535499934930923609452115426768159356553102111997833596623919063482884207322471107511793462316917870678274321518003231592514182820962349975609463719616020697490010577501669975729781185515523437644961269787102127412495880562210601235328903766130565510256572391833591999115572403922045496385658596132351508728694041250651920355107260739524777616989448449150261691887007997280130878359940033400359798605245708653164893092614644152403132601538650612603321609533695508071922042937404479535690976441689144638393997226724889135239120255262963368985020185175369645427371576484171632739111651183622832683341331496306158041728015593533484268772287937131266513285802758227407033254275148009009483552660993664690457540459989560981034546142147071976144936278952881143643611469365352564191914318774912648779559754352680735441188075560072457126283451344498130516573474344495151380110200061156821855182627168443062642673494070228321223911228515092751499926939547758577770640605115630421049005182652725428162185068275240374528154557303503280181584515098145206091944855736351474102581969786975600266158436719011915005063783106150180313073276650964864383899102663011673597254358375072473345628305943824172218522729947993247274494499136637050904139913711399266239379020946550612641006728374733874284527240720547068970515429775518898550765925813123521102192985498001754884930091123776929796553997563204851384168284197817305942395299329333114635384459628675560008020060139137976282374356572119925659098951068805062708181633877780721266695408901864186820866224526223192079745506829767308604461240002174022310389012116701344529417076130002540419144501113052026024912434546727393192160833589370324021517201045897522814243428742623414215495194376192609953098717707413839078524989339676336752252837931707497823653398575735611624207120213049269457430206552194893029075007120026092596143023301443186576344785549029627730836544425185219592353687467880565738000965120142448399811515101040384511213709154426853899507497856029645108439444993732541769222528283864411175660712257301212915383028366457284740272523999264207392699594125570282728487367815505740872022653141878097259806626419768377931585933048393657409324656102451469094809679273050751205965450984199370118097437164625225079929659424853731869135196513979884507755360312357729971334322611830806006185044202359472028290289184744170991450569932955289294752352329425816071045813878249371491846939765526690169046890440371227000635207460554059027605579428136376660199116134870282923811040515773624701853721805606583386446985767947839313217196879503173022480247654821276181393843118765875560752622732623463956199564943238048588276183107933751257664517317245341428342872620837686341573032267949837563691990775267318738675877742910558125852740019164849876455317268963657918410662790879727684938979098556787558131140509217579942048874292882840490593534592471400948637400822289650796259409830213165332748241955255233029455551604553692532060201442517919241379328763609104062208081735158398873196584220496225516375172731980796189995067366857149046611139316247683555839661660352057984029555224239336421166916159140710088997906803549714718771778463865449338540568652931955174970410496851077177599991359014718676558281598262035234633097643414992020280069105149828916731852000172238625223482217080783531678674611933360990839570339311021422484485031426944343308545578809269670997463517881261079642928707621656318051685218189220222713146501643588858873762921775860217679964351545677936255201693830695817475343527678766086805756683351537891631968974160890785422203435327926048357522035726407714057413549618538707391537664977523611278253193150267719052068585014731797153202363466293571149011912136846170593835600663683600305097407702277572779439218392302216028674781163343549817057939486531170179894709742139654596002862874653360203028411265862368975067029940468720377905655617900529877888527879096782405027929821075560908811789147701915398195088514220166895159809632472025975257578186340708286726769461430515453475874996069781109570015559708001535428041435074032919169022747886390108358229646604259467081425183232896814870044708467596120448921915320180828503740648942392561902429027827555892210827493347015271187329206362620090216368727019865528675512627290796924653668487995007021693835713284113640656651819325414648939368295850169000975881289593777160969988641768541214890754275553716074777832313006533809538992501850918644091043647934769465732025312573782012641769978227696025891671922675256575516264336485007073391477184469464366232640101513834664540569496804423489673137394215238119415840783477992830221131139097126475166302205752791255935475515061406679348960004523355656605616714544129653993579804968239394217239819956604196474238561735020390481160046814232775007910083561241065910430090684108767873466959571369826027021918728288764407843137142684756435591557590088974637217534133292017745389251040594491300875398437944712729042138502424282673678973827359970317992167454910090595814104584353364781518191388998517025074734909537188337256673562846797049368508524437428675072157925595464071508031245983440529438203982645024735282908342154993065551684780668631033184322406849251333529596058695047124430754240927770840788370412822172366473062455305505566005875625074740236737168093503841216795714736087466892626320670493482449235700279237549194759844984119915774451145680187153782786012910453094517737056322987481560020375001336383268204506132031782093631732130646634776614090551885935716815190154577735121766568780148570350331358163195292015022766868663665216784458317838790760385948119580153114000604361602540131873725127001007389261598975903219383814821284943652590224175983839699865317474366921685517954119765837205456478593235170629903013664005489415452845918566452445502754396284408481537250987228503102971825550646099984657220998978941570621270162013612241170339703401920768581500625221807849444871193880985566157872057175115486402443911955051380215904063964148154722818460958149494065991892663757375450799278318971565671884402596997810737896305729148722492508257429584741785618656845245440308881956575585008045819255296678676005219957955664249198747853045820405760928375281472572834211528431723574985980628066625990049404558243935337979401920887968228152249742085209460506519401213333737847057548344804610529388536797033570552670661100997491960941089263887094839713568480455553617547707950989311432217136856886376923596461080592209914111624531654394629921379401136142201690239013207217120760207810035719526788406141625744477069258649570018458745100118283464334709307652528568490921683948226609051761634349788612106283353035719797864527520755984249782293456230878371463707004619195915390391295978247085032296575332286791565535713590866813166228085741165629037912004261787154619139155950193663773211272304780062974788048594303691390160120416780958627632588761562355371983665638936695414242570962070676707969082053187737207546751612019131474859708910888961576148364034039004965264626449810912951610982551392919569392851522931809194723198002746337040741045436881861811870837795810347308802873692513012047397742651394171745336780400509602682035345368080593603004453994267115648122021223536909327065088915200907445328824861650625667664027709011469510738788772028404767772242687405639980237133083960437002154452906620181656690959325485570297217730607847082743301743926828477141327686396168071345550777463283543115574232306133625052542411721855075108909296121280308786152752465509299567773670083809044963273023406918094944435876824972281939163930838428536640315524006469746073388263045147936964884786591765531421221028795081686925726625573507276388030836250717856272085265793635378666649637086182730359824228871841811256926270778976629590325656053006034443001055728882369296618784538571113067735677749566379381644234643543170863386427919522774029532376675280500396807221776068455087310887306304441991907629845622732474006676184678832646990287936312972590547027279796389183033582405788545570860916288320007098431468351464780310410978632562128310278383491185460307899584919283131117636532378071356225942343893471744491728911130086583804216818963234472940423522083443669421345654377004876719830620016319594126032903232544640530921532914175629357201628158352734006624361502277058389084772434430054252353356308279408532796346355065550340706300223981604126978478750373139185231127850542738048869360081529654756916479565527085646152959633827471954475112870629156465386472814706541462639526769754085063566620498242836874901874306933369045673586069195369966387457245464098317576815186527204538763984892356976819070519741733412834407033724179926546377000466447126281645036997884736189106577897512942833747618935241333633112767680791211923995277649127530313183812009956559463978917976401682260309964400088604790458003691055474612990734568020176786961979545177269933426855333955952919160577356687548527236577483800527393350357562209730932617831173195869035758867900631924128984434695885272765560917327897048133716509625987255222547833452065557077796660388877456531066332271744319110653738535109915158747560561096460795211182672024307067845345506626316191678889112115900792735653833346878408305116419993047934690708060632585197511286322070194565536930210869399033712567959651968151322405098008598293299848079930970801891385956879086724298649726106356877887374390035218952401315977300314459077209976170777562414283024779782464450072607542665824229369349119260989454584223275051557996109397088091323523793205287035386223860455497876795386730196352004833375374005793604221398592694611349019874566738848710436451196625075402413039977064542291151669882441627364208738859954506637384428608707227068002281316440980557955297830824724047832280937126051453006710788213808018429968767070191757160773326260806975695165535108613975664146325458881276161420459664569796600650786435699827290562235616319544202545834709411377739241213060746044727079163155386917507659151229818857754636770652458581895376582493056351561424576031360579185604241538492653680648246730206517764487264334798225289082941840726197494972466730045007550763350973184767048573370327649792844081183509097295017353819918519321669762356530689626170436332706171888862730901141718624522945388261634297940716278628287153358652261479335820422499383683566728751001903473027431243041215239477507549016892880972701090563905320393427252437401477706229984734215250040819836318781925937160705890525392876156251417882703707799343124490006067702402771622253172245322947592636105641047970125965104464019221739478230236960700584361273741719950312207456207906127513981522685493741161784353703276660235210722310373888795938732534830586159438923356230032371032528878440779810702835697358948042408414899889205500190324014680669340674847575119433126693508689907046745173765161484340263897774238136141236867353824087930682734448626297469826827538706210667359681180012005945733418223857338842668258084406609898788667377001362958681300337783007188746323312995215415291083695496824514149907557742977488191481843901523350185781071603138015932835236768318666137615934950010364108675711505007044232819858660865059624245973072604230939881084723829252749553431338084578366406905626771284224981002667458401007781938873589294647799711806189323432294827825424864492268538019291693889736658197407280034741133592694092883962951649005857438456717068444015670594991667283609675546816279911320473751122915280829512780296239096310343561215991368896080887559760732122491497134449408577181743006850784271029930773430655898810678417689643106002117666920069132153122604115500619274684641697502451623858009130629542366535308746377172562574393093772327154593998085030582860615086340188159361746948194483929908992351973682364546616390015972986317814051286480554784888277228074710057593006259154233159941452707138333815228606217119338425161657711842876331634023880892917527277722743572921092821577184172227671733665524540498556788850752771482811419867833679178182589412853641357615109321864031056783944002628608860903779709990212895430914917428494493820601103282600407615211712268348472716686837739757194068395224529618280163551871287801836340550316007564761461984744075708325616093744632849170143438181559582871618755877631709265852737534004623778055687903042802492137822477223700257255533900893374769048103746917474253898676306555873937347250269959094888465758906594912498476786980956139430602634983508575922088211807665894449472410923586510002420731288147064329310735907628524235361696113808083113946879924004828429063686743840657870239525585934374968585313013941053433645797693204925448351682945502585990003572815452142165551527168627532520938108540271719883949310781706577736155694911555215353005054502830646675164994889483987178950729298524666033729688663593175283148279347792788185378723261541007575113422500569819663390383258035622011217018986251431747999248203492275435038567425482199372561330259867112351386810841025909039656559548421651827172393230106258378861883083639777212396789995551641761410746677953759853784961267286372163905422432845604649914621404582683803196698769038762833430244048356371875020615699803216613317887147252761967683095448474983979936791528179403970578527156074362257442233482040849449009135039495459368765029909302618384725430226056845423538377894996435490982677717672053764735242761799577070786527542452711971817377995430927711459499040521099086286868564525639420058320941080811297548394943372246524957917168553143272685074400721584196468767414134054118566030675972788057099139765377415958727819533184837462492127647203839596142164236331279217349294048567769255501658001926135102188116129207815758747120540617961555651562508182824734048362598261997388660484253771767021175894232577949428654759811709413227038389477061288096406696917896459782625672215244538876958324828657739015809796233657618735060942205619898812363150544754356258203244102720955971613683882412791261553681472307719843774462948162307431093507912795451136502714316375928538718971407697941336858749674778987618226193261565593641188655052744705560045465899715792064233585572466886464862853110010739018087351243829697879886594615943683014669537191485020110014308229659841332177137985857988458008854064443621952806639904065709302287631750689542866645535343404829862442989588808854212470000463535193374415510956676011075922641990973153461202078206286874315482911330352058336206946649856884352585270496229583087115432684294767345822381086212406647648535162183873929461364351564091103013258080431817952775205157684924578282067399264637807854729574875586119363179451247495466260493543857183720635681259907646981757896613258093865118169684787195057604357908616043275733593505833044685764552353733591282336442440809628248988972726429513611212002700364974812248462557210933858902226974649421153389929695740056700884137605716851715969963529188255653040896417403752651049105669078947922866790348211650404698120272564610722527294706673790130483341263121502022493749311089382685375499497070212957714400157503577879848257799711244108786545613858228051058618571370984108560913813339001565156783289549598659688826284855455806798249581552554462708106884883795369632075490801837454518517788252245408353746299148588731579297111915790619360689374066021275586075269701580650070315630357685475600205896842829477037259283995430803467397037540875946156151658196760625775291831977678462275449477080951558861733787534856728529371498591878178732415644530194783050402026540263016122173364438612597027412023109165159959588525006742386484492863336157961837805688949982830032526940549798588887526706394971624467404756285749678101769653354986719827890207924806801299890216824696748414476298202270623073520129754758500505937459803922222549769901829131934151219932528093650961358736909536134138824544749092944229739387456343416896252679709985050682347576878523373497501660268998828986318433828729176234734493640958535134102986523356038547490976994534124597215862065613506661204027090921398193952644364977632332131809846121560790082219447581111878539257440074984916181336709913391776818159831934091450043717495263663322597842740514328333131718759821304328074875714445726842516005713430343419389728315577773364262567840002537710807747828408355514775677515318647175732429480374162878499826123431505575487227917708145299562559091853250349922215843811680848657220059039263229774991426547239207971223648491804446328469262258241290608318360723637665851114854097720654413777473526981071393293234325291382297170103232710883076169228714207351707333924571810461641754198294182811399852382126317045934063440376649976331542181051577568733789635789723762074171658848017180611931984590212622476416596835970886366729303696052741246724770428672775082744063536263492065301320145308220129477132893785448109172042990491173929627246912771370419323235115223279572867169562155996850463587616542457146438155790815968319815047401927251937634318188637019881078163900126192609766598873691211427102884937704087342029757195793789520195893843907376847468373596379435183964498971583684303306524283394617665431972590392870225499781663513692262659820676062331819708955408490609451626721288850147511162369262761602172571194936977261911394476979799667224956397826806762296168542342113906644946731032091525990728734803504062216312083276696562302972538587386733543640254920276399170343032996237077325596249014994163361277204403887681274464508801998604630169422888527946028023451835572821852989353583029577544849947823219896283056394946344249075046945761056251138336483537701725226831837457372863790267344530180360172650293914943859921691427043491065231443905311459893217696331637713296417878515514551742233347446469960761770674456822672248328981201846183963487588368058194770329266358737901161582873985191342683314507525255548461210128608590083592144358063057016654493995170729651568534052358343886268718171517613140299048560486163895388476423640132144319050673161887092225287606965442993242995494182167818788540541512652285918848115409578611794785267810370050925936444898239244820683195023320214411653456240630256813299649358952564743285032144545274333587372896539046066019889997011181715570615862962550788370485706137921349806540637384991832513192111617993165574307075257706955566160119883019085644681606253421790026372551818839588242204296606510132065540769241747095876357972905088827260031260936930713880942858845368995674279674614994208539265378907510272332704746091390151518443819686674533942945240805616190036249240671398109724934590832963052441016403842790852272322801698000380456070748482324967945108009227732736144485443160067851834317339416878442527415378645905079360020379393930457520753171567984804799142816237334013802534731164449419466185287398088335412119631448959484676193038710775766708512979077257704515125142148361253085991635658028911429680804577836809184498467426279566853181396505504020851687876252019446095753880651296625933191669200026363647871352755150156327130477080566388878858452712910487394522204201844835394969838864675519867858661100986483778929508879661862577337737490274198955084738432145445064098405093915966063256347215941776867325812683064478804999551907390651841072104246857478176719255736595293878547381162655602923957262925932787156758337542538187575819773143802872266763607285872268759213137708141688360511870229510407800194105005935872202368610259723006261074430172378016662469876986035725612000082424116553076654925500355252710546022639369466524201716374425620764910636155482559551556721041205031100794569448590470940969613734853351873192711497439611088893652890362614771438528639225690590620891065243873569252418754374324559195275726286622791666915150337089364045886373670687952544198435709272829617395298698174513392339715740461234353860803958609166351903656364621882261946413219024113165758837445519422431142015512299962869147963112557033235302775870539812260159843927767789059568121207998260673322845270944782729370269436288889679281767908793799967006633375719363661067752201838815040190414974934864706699346886580023853590928263493358824591639060728711594430315886510688247143182979945317642181782055272445275907683337219023534066787128675526030290860277697260304101341854190865777376228658333274690344207855797824359227512210330809655362928209054760353546453234126895608735259926371655682774683925746475425344637657830538731751756449189362113962078015265010881304276099064363918410250707895790036207032579348895589263898657059325493301321805464686161432413256926081712390237085280366302637907764226847739737018737939472438609355505057551624911776016603521691982586695397278660593878684675282650281607197034689267726320344658133223307219577939342442069944222736173460495970494382564546093336950751001760109170208359962563824852829810711027558315968038763786613112683467985090636919569002770054293984634240343164585822675761143211737089973647359866082606389976666599306535641785260450976587340968795485860270321580618651469574260784925595156101552674091306194377472937785610346508995175911029732498580243885459966889526114987676189591261178564441218536443498213689040872266566866828433926193645297156290342980233906597259867778919572373258744230241022804499727999433213493198983657718593901330546825726636315016351536852037505637837203134720967857581867663826200869194613845374739626978975715158669266178525892068060817463007708845382882646237064672563205607321286535203867745120260217847667526046106681120945640922815211484488900787286590635084038250548213846376403552750891857591479020796042376736482297743002496277823684606557908591948100979590173083494540031829196986076196010908570419627312394142991824375451127702472479152570872443822932202140224845873356126227973470780859916998517096890188885711971988072347975420764125173881701092421919826496823565179824259723131142481591792249305101349869242394290657650218945879732099434804656865197692072851764017423205988279360945087842262422007902083900386664391559265842755741395346410691125994936801601550530811966069081394499580483981878031138931373102663022727900925410798649206156723223428084384453120653064414278937705345659824057554433406026375324127658634418445622135709454663417251592400133848964762082010964921097278270003225656738021324751166898370752332517254931233112267554052205697876939063894972729296248757037467432748415367586163326220690966609889780598578385857482439691718342128701834656710276075960387193885508813378025546041473772765169593227762392953151522329365437992966304453759330431357328515579452271898723666830863733281623573237586568691849377063460000568971049001933138709193207058878441106634890011539164603755789358328813400870253427186529002285172544605909186738582000606146847006175352659910841719247075679154002201345232130042733926690546979438510096451004614883689451369400862684848824453870661775341535847828918552091649169458735750563680937307657701652135679389693395079104109562609241173292695457780018680127091264935686386436811629668335950555184527110973454676138818884758997409013088643112963867691289539482053397022047428066229083085681196462188569190648296881277177041823303780793022899651630978088527938145992611563542454312475815467549923191353925905290818942299125790909511072880511714731887423873885789466981626987926338722638314623499944908410411178469911387742552404250155714306086240325397468303973528191140410845543144264006130407605343566741394826915769315918836554787939020593380250286104167056939187888630637957172812926660205487488587001178590943512992708985488691957192401848695921136105395197248120615523634512851545605008343253136859385033991197210094621847484401144640536916855179663734979248399020062570916807073366994168706402880848323235466683146344173352484309628925678354519625058288549390515774566828502159705944560884355847607330826688377473337481798287486693633023556907002960872320297254018015128614253738754618943979841115541050808524424967687971224816782816269377950481534612520454515380237381060028648847806225984500060039304505563382395465442364137276377960762845270843431019268986788807594209053981042646907077251992292621232821339320509776747071805346241693315267481958121565221284735842951396386447111589490615760047546710388576321228279350288626677757547166705015467305035623338562872185662925073716821873257982997575985454302702413504517186554627325222890639239744240643141045834438352321264120591459192108164642730256721428673461445282332778710329034997312894133093042387484492353169194461688326465907338649346126968909334981386244591185940305940323576110304703567665821623474786917480351191864355980247585892572647360847353758421085798178783793932843299723338881990840739991687388809845600800006396910761900766336731731056839540724844206394940292005974750961390758085115982193047288743105559435456260761579046411521879557838937706982034381047386369212054915837057682833452197938288230951296405295527058788002376208894681595509804387929084952101704259784358463269600198653066358216795593466728847684093463241182278255622656933540659746761985997209647533153274792753025203505239024632935521579289463507806545150054793232513863906392991625357548154432864395368304392975621682813850450975533835391720311456664005721117627031389188841762632278272930336994711007905541804382962821785720737628442754625271755326693419038905018195161405159891571017619717737641218054673257565457883439519832584028477833058706923152668941994035320150113755203952162257836374769270808461177205058306312759146907551243262170286779068665593401375283127184723489492400864450503893532320055747663121891055276554316714502851544005919485996602039031643380158920159644730057756781518625879913129493023683086808812583763308562891172175362689162442527766748517628839254546772720580775841749505815569685225258178148660773614083455890954800964161534570173983747099822802357867708721636679179321467986890120226326869906086297414598160790114866697422626097530676534078415257986300445848655384615892039365957925108403271027413150003905467772196645330927356995276118280964687439802333036606627999705191578476650949819024207105144937655389833960431489910187936922274524765628557095163356713833847609736182799862978076447711374408734993083358252093738694031147811701742912174189476497904206655814979396592387330065442027282088987366443390235808031022283790077045398289260891341476402609944434513063961697785319912953937372050840418093784240324886742866316350955635456781886148364605065538214786161718519425866640339501845824539416438898606059447530909859179449904946405519968625424701516161407764426254033368905648210920617608613731343381457642490933114144499445738198834923768748314212152963056521523290412180103159205195857138966815940258136483921312278238626176510851801617650916850790484094995761103891533664682550084112604688072014371962325271918243679519442090697974113492605701279345939442807730697998408836922189005711723190165114251618883348886166080364808892325852038960906044543295024343753634448213951440326064879165971637760945807014963568355693163527302560544843169959069442300785570553893661978868567662276652699140132697122884764772651288620789855816245022368291194299969124099066461191855306342374550686575789171144631863228464475081251426447776720303189580566910968874343275112765322570262062974404418815485852172010433462261571375470501753122854713198235582077624307754349121934402731188244829938307164638179038685836313674405655909946621018694353231908535368085074031971084552877859414039222042097672811179355402563887907875095779830579112345455137049171977662277052964536149786769367440455798524345013654596019321002629976620810058208097851109868888921344035597634525815909477523089487785443857205029469402500891663561546200426038662454204089584979072397579729518589928586476772770154267707223566280212632965008762888754600058142383735780042336879714022692285746685635330509517202441465674176348655665977582536874299349305426458006883221153704449058613167369287678837261021851672977286584985868945112289971233318590177278179742622158415138464615208411652776704940986874112300038596881920220852854553234289014527038546138837332929918302744448499943004294670217983853809980446139343998268506652554229468264779327104660169540907972990518693236424563180860015092744615129794983782535349626002312272065719578984397314047260831506861280126811196930816054356408210665017575767163284370529845276083187447802709488266288632332519357997023599906964301893254626577264256091892827466084607230527115945656789838500780547318976904644687707566978645353707163482848811241830710848128005658205719044945105409615329995067880656468092860303722837285399137727817277401152228712130389689292428803462766153870558205162384850720445576043082009629221841574248285722292510502505927473034519840050083790369641607110680987370812457382936410468366382750106108865113895282452560767558622035608439966554498414609690562894869233871536579698767046269829339371920351814331585574591592395499374992578087255687891377679405660933231683290961004585334064318296125873577971535865271731331032144075104457466733806376712517946897502677653278396017451216100660939643506069852364644796762967938106346507791907530867986777991296119317597424991959916179362390426520075533228973299303030776508424880180937492930921821390978028292036297659868194502343918709899830878035462785240034259195718834235540645092536030991654288740492634419343967346824697651241021327397454179620743114498720025549220844406920913741780987580343264026904019605922110204661454265160606998207871932259726258594604571457067311374058414935403829887639204512654598153549490222688454714546142316645715127263199325975551325940070676685418193723997195599699450992268995530253617195388528836549109957520147242273509611675617339480275418178011547770384404434696242722807368671915468022484240898058754867474925556014869922215757970344690775542971371793648933516798439885140691418500077864936187971256854233175007850195844459397097894033938144715511328633447074536437302606902723506830175797633856491823717470113046027900508125242974310900959198104378754035855917895308345455514032649292403999628145883980440508571782269559605462799021357320175647871168672133753204642045149428032830320828034697976601687110032909701750234657305921330131220522995966109410178000132139784176257359285604799680867506606330138534907554279974075611483646943518237011190511317635722159846288303146296943866945992099223106038749091482552856792787319894783046183532216656591714385752581326568590259162947630337098347228699430597310463191260606664771225987540804297719444714140449679088421818651557127264299163060868971566770716269818725966404683528070369029369926235387911067694669443848977226471857762416706480401755787454093841629430856895724145227317173641748168213849349880650358404116301217804408621078222081008211912394819406212880392948373385073059429606740217711209915136136592955881422471889087878760300642056528095846041126053855538153001225798635567719136102086677012737515737785682230693608626814698529583320131514306460959907606279010827140843854595078207238448568184974335491697568966521011247606662887351342587039745801538014138599264354610285082973545847043325837472314632409309152934176457972609743353309924694767774976431807020774538730249644271189949952912912442296833985035176890416166979229515402851127679123737048252427569653912916652063726298731355670686868046504649255722969249077453725391858993551353993441312838651973567541377753940369398723653250038146243479906230156039164613057915577150456643599527591423654551099210903987865169486798816449896372469121686061919211595434334724412155610452955803862171317653989532499680307751613945206671853008845576209303239090139651533729302138816779798320110530680790721362271271164093475743373702222493762505152260858060770917521273494258266942750743914129886547375082289004177065061467906236383627006581460191976530027860654773751400950538473506406134515097895712416936619017724966722452450463024083287716084838359562427372030279458776409204825891072685005971108427638145326530808830489779248517002319802889064505459711650519460496472689955564691410300092967564903916642228425687176458038083049433835480864751733911108467613685610175603844387831656726379895553107956555693228621650940347415427260928901806074042814987574067357416778509228518799757942931230587019868371559993588091965964242981929959459505234293420327664981271948094158439246522734101892790336139217379007458246168928569200165574613975169349531447824597296762946141989036766712190082912057831202431498437699332801290520258391578497223638979051825331236654329262063244870106193620117528366757865507010671601327323391968925373083949881871445035768758320294598433336527385138786056240480281190701710957301612689958923268476896709070527925619617740711835986657746335181150683134783927564829188027872082808464752039393491100321851353339392850313255072970429690761767984719818916032555135545818783022088954758341401967659320188813913101422122751762572200739784932576733140086756750986924704157215414883610662674481583239752640281046110848475053860500883007569226457816630556337307790711753615674573094383715675769549161312417891861597455869188961707015735585963127322176726938190701988784191562578135752752624388536043395731148871658777112812209265874306218842267947614013454476641670918278445421504367088829239898851321062699130904326742395878251045051036368843583860274495633021793322195441023414111436627154839659072299332085789181133015217171736168851976007024374837927396676205911904658567222463910695648336818391955202520454109330657733822345786312546388639331792000920070051935414066050413815311099940486189150992624500520190321447644024028428125103916064489326374958656869086910504409212115064700907516554427319587449464071079971433621480380019069479796582268712695889552009194840014374259895668447392156233135473136899601392248816035958032320435977863506735821740904389388397693672138283135129215264052751334489435835950239554545310915730991101989680575016454686960442942240813957397692936930786817478131639261218205042513843790669700481221354122185694037477268322595120612126995332611917315116005408714811752218551301893797140144652905694443419475567930967535701692759353649482336078756793944905653776309169429838708235833099486950307340544313732154989926600236345879232992999259996744588699560853598836774188920804858026773252548707573540166865844160592277638206761890222284396874637805785800850029936382285973833314491161847474445608917691025913209930767027555657144302860708493572499988607283342917539371403816383879719068032589684722755558620667307386371583938526800215664014203207106462328291888935845660684043084648712543808506685171733173504091041177315449214544481030920185817381566491712755568190890887515269548622736004385457567490581400605452496550439558434774966447974835619918424788749348948826242016840606038209387897717593924988724630405994752660295998039484931251582013034831423423018223520726406137585362812422883412003685574068122341634902974909504453167263382134104873921714833874229249977800807834094821038830413039160018786775836869916100944700787121138258278708166508989771766400898045548848031575056323239247367617947563041871758765604988044728476260212140267839627486017158736683112523430709094309750579724547599599161670284788582910331379368298068357248801207740663801477195140459561247574744535835890218512058795933760499585101832897400926580571570194503238235629955557246958624186672429208364069292664243737950640326772056591807272703993924677567065436301703856242386601904299060111220558105715055553686067875561678915270247334712043989748148794411953844712480659710206887959899370810567164811659871843514343330732034224422009166752592769899636844802475095504357339370630048861011000930645393246127631173033308309947981543559707600487786421071572269051875668576782942767612702597602981781798070822072018681360737445443143363311724033084580822453539937744719827714528043596631722268186027744959350331966709158548314745351704496512550422867858146123400357413393989287515600733695162078994504558934577886358583110418749434064736011585063752338610146238452656045753388630944533916787927817520563800446392316297058062017722222282151137044656159396789151846363695363115436060406084552677938224934492761400631823582743577134771432108620562227576321572574421346959425860246938033308833470151733088965504135999515895014050276562429809735449784368921420835536531874626972878671441551128152737299801339441896100981105895617219058677333865213613461518441714565707687838842105908765948698324646413895483606057270886872113276631655980560530752621674788056579624431126809970591333696702739581559132034252253067789456363438497699401916959298476867976620187223022500560767013859672206113354973478097515255668739798299543934470334784126110002548989221631151715631910782764867269599520766414169654678502574341893809739939889493022301910117225422026944647943231930754267889372837761099855753943709547219573385289812369845827336499295843569294876523391725070018420002786155546085598096738155602186473604691147551355147041398251831049302702825619275927222068387858887754952687905418862030499329498031358954923701379826840766549407652924109924706652629898464836514036923408704654584120804624219886786741939216109501153378514202057619466431272079827190764097530570361102195929121716493226324370176192799999724664124595192044586899877548748743360361628749820267849218142059037352192641459357809911954658122595965034079168365595790528234632826749118183281200095748235926904536530362570893025421243356837443230541671894206235404436411246190947636036395970458529805924005973664240389367332373621023791508654374139030210727114568449063977741325757806066055600476476378805795059312882256631149036439628049642468546875506586165845123138871811285716166862548241115402142693612669592372379616640183255190485922195963841729804215367042548968442743138089759362469496563443443734741183091434340325900314572557233321871427533622244479565226951725662558842150074797216065456838337940509950651549145784692215237416925136525619634547444308065325590217374912554559825843101315982606096184169819188806859466044918845076388973063206956404307667505605411566992531901275494295441293992621893253744757182971674507512595540447757068897407471216038136430598105196660973628299289234424194326298877623121837539415149837551747730076182831352502092689477941930181952645322409068581265273530435298545955738481123725680238502871395387355683658797734178716714729056108477569984080350182889262419370219593093826405719246614237913432026073628485517389045519861574936149306937490565927766674470793899596344155202286410634052370643015304201073183040919668237137654237605858746058943003951687302581544553040816801561279194777730216621160735206256015564067617679638134047792897350367291194980735616360372868811563908323417462827359935519463587955052928194421987936482584659718092727266589435085182615736525560774108821845758259685142566158368783600176747423554060993707104503468143274989824626371610969389365877977422957437028750828865891041940371673361796387983409826402549611070516233077469004828524798952120632015329547510347639712622636627142369755446666211826293177526879057438012083506346316361058526197620337567235105883176325272839148275106066750251257929752326233160747502519106823797963593007296909661884401856261917656625365258837735710111979613520670105086338502176071302091232096303336816105939437774166316796065071513774991656977750602537972046096045816495759011665669112986549465807097919951112895087681253850606625827986694180584477269027662511193693941489511801775549834996124373565732364706884871527696576807093957095697652751893009941778407331390033586785630718339914307506689888268134981813301655520533126352247370475902805018283955609439175309072804046592378238748519703251915071952555372677915417131939816491455167737891561325450450992881779979765750373276462991657463438429970538581589236071760425784097896344629481479285365511672606540369919947688171711125974240951109659699356212581605567048000243024060470953983037579075842591083634083985598124927959313350818777491537981991831597707577148929827217648735073142741044070680740323590804920071996330694429884814781345483322697799888260127320506602691244865673432625162428693115027054295344313704458807961549103836767657615007739982804971462610695735320827855177301414246196874182583977167145628893729428386889216544567169744237404965400902765274799487352455882007018915345057163840995147249031083585806267083897156118497733612838666841601709527792889290456662215270095244209799695691423477986200742261734890864359210111989492955539121896845837093995473603003279594470401062954864270075708342893291460503237893358379602827768481650879100860089135190544683069238114413042930576427919449210119224464474162883599009904300926216097831665632167807237189680535834428453126947396749826836476658711458200064408122048524598991719050093471273262937783728957949182685438256349121650631891073681090697539764192242383810012438586202081822297088899388896009687304654457017814213388112194869920992539245564302550179090202794907928096244331880442691124053634848484524439634350879448782952287803850977536691836081809326665330211881142556076029453437102275349349839777392428446588883935791043109905678466127758148772769136210660069381885899158773379954809236381031208967244314024687964356732746138550307680933002880140987399933901628534593084491193839645095207738853664382514444580846291472138018460550179941162904801849118709927429682379223480641314678283937455474501244340152026444823675644126525193508611586302220639226395907237398245498806818844300214327273774413556005540140995353157381898005666162388906801845334313007860388309146136164180386130264114721390677294818640763153991501095561655721951250739311389927137589769869891710175090233298253862990098716379257971337922136459695398324777578892834441028744867988512896299767730867800610936346186850606232102997212988350786903375187845920677934245485249968639005715186004658814494031285985093426395277750527490364022706899900277384580712371991840476665044625793675688373155298712728808454287479379899101467080466538026289984943619068782697912921707466162843258636586320880501604315946902584541582810938027305323517364120655245568027789722838742285127008102627732477874169615195901842788448306142286710276192480752812803942578413288743003459332100919121015924645797029378405708101903932214451732555005786654180252622899411405496867655577235867782987454669742851100739093232359392059709577462676390545947023932585266203153382325465177394308634583732205793588817122340172853137023881679315777608687897919709082490537482100176122921039997834059196989861869914690385455568681029609378315394572731362900696062015633129927195210488578281792915862220851069022648443521190705024868375418337601447570265921778969922258344036882437293443162894262680639216420385839458032205152083253180478724000938806099753146059826167345596814538255476814779052116680537278982619020841252786948153032414597084683248811118772805485658449791909290834581588006463909309014896751995989809106550502072165331039723436030506100116573016936201439372071075127007218185104543524931086547981807654263579960555233946350619152576970529730554515002307057760910570373231466574015104098560294669488846728116534707392785079862426150279101454033111967841537800360490290081560833033262308444013141946722984889522158840705230429633772528822833754423614570839882242535665283998410105754124451236435472291194582447667339094390635031099477176195627658219898812918622197071840847534575991751234900757479231342566733514733307210172745514978140464593718840275232413062461635656196086216166584979036594806227468283834832077236392846077467376328363327313639358895241338114736417244817295845937833408597766267148608458286117967830807038667214991882469900270731813480622754210776982071783219568777376300393967070805584198327446216464300020126821843538069295088504305912445426201978989552120796034204681747731776798546379215936026035909314486639038268332709586738615542720096952957555270745624105599642584496222305053761097383071925060711178276187895922961631721629492138412383861097126389092112695604601392529330426956717886392544011112729349385500093746848419271547610337755350524987931493418666726454135047911061622228146056420879885036411015309837337594564962783308668004248708278801292987145337413859119709843293705504472243564296130402443496857749571724938281391044267821929706324929627954819286519807968375230255537128742383145514441142642017393712275153234482670643572700557887485269991122129675975101344286838916414680257929507054902454967221222576971041910522900129606181396013941296210944352176348000759588598133035323430500728102589895749674061185929608759468789829694632002976089905926564305353166822150732643414572308755783433483820725740535277499716660839198935843531935056850016824262440378316937353947880826055141538346484239536074097633515442917718138387990265759102533133541885297371042051770052469865643795303999997524071689909948703201831292457772555537171597163097955546407304089427768536550941929282209256547507618839618882669433875415766311617711890644954019878025808392118682452250753312127489750256979248656545563594562252578207780774609211538310811308825754446104290371719202842996467777067703055909506756357056308448905398623548415421373329959842062215884775615594193258785138834667171274080659325027125235994471669315910912286248929676795844881341475736369746940652696929492787482770240443174022227026174055417785153454573296918698256629785954139729544615403115994129301322490962904895232282064400979182590413621331141889803708132316706597450290699496212850971152267461100638357497050741078984188462979062127290082237379990700551148022643678560573767690584326547947250687648088395621926756330411958864766764128670092573123577317699211410653412647402161411068402783756019438428562219578831544909129439632012630519500858356281749493734106510325974140390409392399179915119010262156498780826706011795628187315887134122894811632619992717395837661278184995278637648184686885694678159401187539083021421799853578229190959632292397982268375581700643848976642921500668993377928905278743503343570957709359993980551528764298504137613666157420248177190708195633632723532018233136530183164555177137531475994572547431677754150225567318863666299488171636081684005678733616898975331459966363014676657992721250724634897667695889098944021459948014621413693168412656840748333431093601438194177724554374901580230846824922080053884074183276397671401426277666472459907334801982215421534431465476407476025972966600473130772306474555794718838956769648374676913469399505735211167831664660802943661728337407906159086141562915734527568817282585050569867781714252860402875603320082653833635076094680817611581964123952170724515432403475867816623786321902732469407470243151909302902831024120340795170643890088088325169033258276905702700639566595325832793138032388505597113015552989829609841389046744079829910294432899705982203806509874753473846651737826394993274253154382000252931351875012355765807641348606029564517331631866768597332239039375258818995642766913523877958968636230948935771837884048227894611979954315447621418615213316321478627332685492629339897499075634762030406701725509227321083139730181425602860535127186745650900181319792401847891200840345321453985240297127455564775923584070043954406135960109423435165669436574835819529144813407519845905498491082103906331234883622591525855101235856449163618617833930125915877079466859400973628165862760057537429380168916126635025369143981983450696835992217940881120132287207218719569398865449215728084553955200957917891643371966887366403583034914043699649109318535612767740703140948073919321649694303580483111393285444284846520143015851132809635277533239571027701573713205833309007643356465527489392465484435949504670536327792702370117990773902154911132097397378478952500301683358426832671543521611906720867566045771034074076246954081301335898717432965192511831867445870264434332286412215624848306161398315952558974243245542299600053789093957201521143532939125654929867324637931179913948010194548771724703831242469057618062083375000392940258307974103752969652832951561685868950525338634753810831931011255813940584237032067881980656907175970299165015728574095225775334053603228813808049669251140714438884402146870072293350340043277774969136166145603584162494056104128648973206931721210952291911257403536369615480083164495116902340495378233130981843715456434997136147749797744854096934195814958734953371028426778171388595354822736433182728972004315936980222141220285496074695796478630197779295325649965101698430922471677997858491055607345539331069909277896571544533221201721981068852944100079621511060763363987251277758082138959933464928538594033428066621269096426218041068205917947862627086806525714390443021164786118756426774568830915373532802006140511188704680142015524159380596607771330138756625083747058956218373289073753153461980688796428595376720586801996144168993702148865137401908073577594039786858102747015176051278636438515106391140242825690818951188435568900465250050284186165745958221875467218123919826609811378768824114349917255920051274551664139272059648724684562735830869958290329684695446974085505164147300987987987990671815059262044757662591059545330951467608073698135644567155735036467518325108826694603216383901419291065541586298421529634543024438964011806728541962274695642942022754062517438055350179283709216005507451195584340216689676966043864870540829521502177673398189694918303398087077754088100706653735683182362333204736912735526947108622590331943809100255042445691603473647436959355171496969239331563495106565374728179247920315758743106292080459170411531302570889797496896895442576979602157153769899235119966086690792963674880643182793006360216782535900700322796887785772190087657619539060880897092405857619588008007158856996411746867884294296623046495558815839926348088195668506541530414971347332621401670660873768963587652136760581417410603262165098793225922879218348078939846037407701582166532214070122604228511893380102500241988096100439326064849850908634327836578960688639572625461896477621817735745686599316695611471147170186409771719710527378987835667864124333012059641007134029112110624295925393316883856906922830175273740763152003541410928022539120337878624604948976058169054850478337905834647945549715123352769695987335434743258240037846282569238782301839461304930353383172470974514897644578341073007770051296386628562767103705468376880736453341375098809722665797113048965381741506637936136228341968700086829581190333299142491087750281772713407929107890909353979557029712932783794582057569605267263909232942553175054043635942851878363871283737295602074423778001141062144057797412169897998530106393352427569868541988289781829909327734657387947322861371104900854914940362632395083812976241784711875623712080520155154104841860368952707499324350007954975755388380520339774326285794616473663489429254521922827131629697441356817063475684217194125337892805126635353204386527620055495527461961703497770680411633456611625981319072954612523526392280556184035576510903988047316963834813952663624876979238987140172908226771672196086864576300692579282251516469646790392613627966016255266475321337478535483320597942410877345332592741847112520857273021121822075818622894731748927182874690097227046149851171973041504838806863209345656248628173078093541628619090627838682998624735999655753158021705221526250384307802462287206660707394531256365299336492583606549001152119109104305216045184308629319295655936256460240972137579908300356654611171257677628726896700723151564089786428413202227559749003461138213736657286791076138446547795214502787579302686839195662248360312269052181457052639334270708500852232122195994690878194489771329919512700679716745096666953182252830545354462353946502448979449860997810849340876341976161611612040075027612822440269725091845555135104346132987593885382317348641066362942130892203133995825534172031409344286968603849438483648969776917076214101445506918124865610217151017533132779736748189344394614223969789188444928416489114036036092026986995672098641285584987441687658847309540270870715472456895124787399164158622883480768926000259144483399131132212178680536369106149450674427233602152860323428241241244133306460540670918792467803901217499226619820689185521893617408382722087078456501082081616615555925987891935768602578943573469217258802074432858407809667060410217832682625786139646649224630869776329263695259572596756315994225869402457864316770212579014572910194800526338048209826384999871845025384149816648604049784075723858909954779884480071255196685620194568892952979585731300499678360117663245159376673637533180401933287721578468936478039340892585989117512232731935728135310625146510873924877099474373870495766723121474649454761918209663168747353296332350488345463280329850663428727089448617065778937784162029213247187837825760241529220616613690230855203073307178610050945541693184275381412030639693467872045072066986541037953574416419832872382004025865973320049258879304204920617335950008148064477263755837650652918408157603687536110356806399766767943086656730403914824791059653450524656339862089344330101241287379072386779616608413727790117532725688519055290149195210916518917934258507295275555499308963439008943164863798170388746087775733349497861037955584953009030911805532868866832004840637973593510793271848849207799379265200913409371818492477847738865740124941884261487375702318316389813454560109147405164192857432806570011658493069751689325173767224047002167113975584976740028621673510815914693830736206625226478440801113184286332669134785970804184310910651310985164979410729627117251115784830031619521068781650430120296037999674287600259996974009221467563786782911389634701458895119039956438540991060697467932655244304968935928172622403163786391781058777438287247815477970446443113106024305060930597674240574595411383917537492568041697121740741490582387299014453948677042682296425584548216357689252452511390161016697354168555120142875396165662751049632035738730902222330481451477651263083377636221236571730110692491622395545926424661575443647669065863818488163371070036903868552780309863743250536092804755815213421793904940660520236432380896561224037606652127956161913694635362138504663963793127490646502531458406288924315991629130002660280371388625518254958664274636556227954351848016274716117748110629307096982302301742948915299836642330997537339284984853931597123543588736330693997503712805782674625485981903187793159088560939434701286653111680748274476279643038426652109323807699584562625683645409747703776538237281118287861360983722778659247424219184641738579474955513958046881762600973102632066942442048924446207287346068952305001955629660306107039319519289737746916046532715054952462294132702753753572745807697587001597666048970901931727315113550745224346761856375900090633392014459443848705358880796244134472105873609161973397700920850237756653855058558492428152104278317924883655352816653063347560771668975462548978294009813085246591722742247801188939282679439188535133086529533119224943253809298279283790743652799339870724786588191200028168770191766377547413432394174129682253707605719508866606008107779465083646819205870306352106792347701650627798602073028934266049767139311347654991095103038644973855104737242363799211721820245801732083882929760750460354582506226458435214228430184952931913474985617151173763360303385541206496876106531713974548558080313497285992603272543891757550440993719055222866621382703545004702956570249836730033581013615893190501341785941852470609337415160901814456306808108223213112419304287944798668769954027453668755836569407572397864518436241282779492676401189027148454524811562301266813169456369376594729535948312579462032490949490403296751305240320183349683349258585255022414941280888786977543794690621656611501220667417258224840054228746869895022308096547555592944173501656507781911145662823483944748904697754018767959194891863425091123714408335145791162016525471290571421362625784440475885575698100802945895354043826325476556641621434537949303132144443149684260502000960969051229859799345793462223736173482174406221210595995079071902776687920483921303740059636836571080378011290869196066485418571354851970527641468382037395324374308890833086051146775497578363166644222119876560297583665723891363911398197009166592853015999136844631103587065238015140455114461711320764291798429740670281967814752732743286879525671140215832543667745357078696841535369291459511296446692872061129004650427336002996142473933925509880472337652458267349445478630118755524533481564746596528472452168856624118769235417110383293925492851078256884157996145905835287707174167798681002459982241509064636008389023849317327155639573571622007496956872811321095821302401769597490549817767463105932493564364209262494799367092070276512404427926660920414112044041456165887649969767551780274367884195399834644123301082708940402622630139729025942692638256919985639855863599903305334807664037265099545760605600508497279294401417519025728301116943659749699857420910706950777025616902347303276543400801475886154924977021503774789126672519616219419103524745486313424909345421270874140217338794183462012710011199179755020478077815225867251664688684923058719881356492026962296407447340962996445682915316537354232662020606663143688304776350992251841439776337312579872177529908349054959005454527914292242059063199931014458919475085456618242746723127466232482166274404983994221910671451088724540924076183733376177050679705337804599193252619119383048221144682770591874501533477589998004028416109874214694910061991201281182939206956053620800522402270556937587672808282402335341291556981734289853177643065898489106256641965081157493926550307513799805780288918601663670334846391248661881998113692467282729327458302738444292905861560202932087198457319592526083895421717560751387316950724912663159295562083443135490161166997184688427997752921967354939061170921372941227960077099095672922250263362789452556100366228315767979455336916012086699837654788817899064066690123691916947892948829999138791022260318459573169470433126782637465287090266082555453125167504378134376819316662818136586867900527815468154748692419525185573136531422381849985694826948798579905766716289014884849061058607449531910262084172297995911324546351079754322951128692680108031340106476308575823624014590053147160162442372661283589444099545423365292746849047373316313968806979745944061764988117495946079749065232624831047819844933484308711461501423779362902930605256492577272294548028902590344633053695672857004675854322483349133985835870731303365003502762441785601432855026684434492712164459763784341989505961938525930209768515213657960188955181615321764187536605854341828242386275001742577939735484634049243726364904757403715635249924081773208453111962876184311869979797429249081521389327662674408820280951655166771399517738311268049172434631329078780394568933799520830723535155056189438316428737032905653653270175557322842723062742240086824745075858756909231366348043169802869225156767701483535449618604386581718412929385574464124628643724033314813748877687963031624790026789958667708857384506425749460546587153539424138844243919222156582286591409057276434513800216738684281855099782199616956499300584962383411969630177065293205318463562455871279080108550799465007723815118829756516820773231923172116862404182198471747741521663858912491796483735192345024339896734982019239021140561077322871487999954301774216268382710297097252400623623660947781121229557652714023977653546902266749896994849543528891038289091658617886170693573457369701428003134095629486758287933702296206857047445561913300901506783571185301301902956869904051248377703265272320654680655140816969108920231542632342039645339605344989515688038677158100228307286706864321441459267426848466895438703320664179120992716049209646443397848608153991570640118576820314734124771523263591183077541770984893747098070602233450787973808421554534714028355203503359909914921691113570981751132258957087665388846688454337509119431930105194421488951088684608747515419547862027075866740669357736448865599062451745993645361129887050540141732151645965449468639866523949443687047972921778325340532530344851383180479263518440355941255141269596617665381057514731824265404660074536052864376014322735361104547568829790012018647587597738704259552022037247344380261767699180898877937175991553971441870101470780070461723850054528879925257985616621539894642387426981282528690385350883644096621874387227173011566203837212295992752186078166067688435050957132039502831933869738370484746690749703689645096578051121002946848558159922078219837648558603587008578871742555963332960494206739889169109838726689302789755604755125352830864790655020981580265746795025084162243915828839782427818766694883295908538301570062710247990476350360277638650362704153918255077108089017577254984097464664449024694179118055465015092403602146423578132903025439290062019196291404540560956921528332603798974565375633841277535961720319843379766805563561142178483343753161789288158448926243468546369859617984965133923119826326945362454975235891680890516484751383167788097608229529233361496070533113359421077795644184250111489631640074132176160025958638904834112885752591492017170340311920690300871601036063628603326044800069123255704420278624145948038586023390067539543801042192340578884204440123928745708889161929064224508422165873931840610533597398865340305879071522003795239552174432994707478231147452769854942741962110120696719678979924917805330421444577428690431579569311203672819877041100296688463737045230915660562046532122727344984664859532311080837026909218915610460240727430434562627819679716415473247039539322516391623090690774611567946307172216672462081336952285111509082433296604845199564753152374932081429153556624211851846007026055284521222403542829406761998197387014408940850446916673011611962890092740438004885467729262847287581476111883837831106005062920052785567652709415632542005362803831596407626840934957945169035305597925254418587830645049964578206318334068653217895061803277307747791890246745486173699344427518708198797920277749344651928973997782404918756009587147105923637459598948947162420003173301108379073960226602884060347784169438647124715488671821165099765330995845216821000683658916518299635660676786876488015153766270663981529557940379693964788408272377915056483013489673917965482728793631141092456405693345994212800178078043888878430631588439813658562167917500368805108233760995039895413231475524106723330949216074362605671782396819251609492657850336057959974010621412790888378229526980529772588475331999509684516099759168674816363608587995767779394685979184537366859142270265563582362716306400662536956749575152159636140109115514591429849924348657336402109042052310996879032461019363397540553892334227702697635851944100399131773672475712589883699548362964573911340191860081021652113158348967387413877675605898780087438967085302747474064464585940124017038415954148652347391550129457622847199445282469571181150105624264016061232170509653745870036411341899284239628930930711364949862639606860889980549273176882420968269549604669440293656401830065460164375600624225499407154688948987148833086712520524101110081371155456698414432501702235629648156305315036277893060922706924630295993751733824579892885960155107467102958948382489259164521923155216958319318538163953025906952180758111258248773178022449394804656401782440599973607443889084206287909120541461647070369389855659585276800645106359788906287751665406184224264671223272565496008144054947685353844819096248598357350850071712327469412387263586644232179304185209509316198222811548674911557450021292679069682168888499905068678401014427574541927522430111539053686006968152043934519305620662714836385103521341758111930723134639085833024048701863829006034673257376537982136762837506821997451854734157183757083415425280387529692583155257321394175541284555415050015747979551204709339109452193495156251562669692092475198282181120589977956572380914907922664147321192548251364507289649681448043727229792529595177488109701232884445827623512771212127734574279084015952654400021332389023695822641755369356413150043071267905366540284288562948633664349615845922914056800062830250489050307710244931398037303698337344160290089340799758945616268993211997033677199491320850631946316865966482215294715434896417637723761615232364618952375874429046900148960618396878860199322277436173140935390889123654191454825156713484991449175412403647182348510291082107527327656188061202199031051009887993425471369649298893254097487610231207339774065292223289881929727266163187520290390676232069922808141554793846837870840318952594704551193227477071433918150200405862450587314031034147525648059912810302077281695049893474264045280598611567452829607617284742831671534414196267991163441036898795630360628866688630696971052494352755644821595050807595184633683745356370653041997192953911294971265786907057203651011208306557700378414001104041439975077764261260184358958453668149008525120903522594973804338430009906492158309930999364316442551482811513947423828239294064265519492714966687228795311690270028847028153599405393776502600118934412975227458504109398350264616568932727442681678128593683952490179521828820104763966273312667860795791459372389334749089719057643018343813509432206955063629655375911676118378137456994134649887331967811042541436575890437413636617693294578575425939357237803263394062531604951665653123671617658687048364301723206101548713082237117457544343182790485677541842544332845735762659092675052428700670805406752380936629373068947260271262330258052355466438031976641797187377532726938369335477869580084454985030871180019559582066877052700345486919875563203307288480394664409448986543848524583435514963782178933695385777879271951356315303850240602454176539796552733478603385947225260870644174490121030154852494843924291986009007422452133730611227412648792686642081674816327655272411787915270350845567909569212021253332046067436853039792933784360328020502111118794885877880868019356473807289124199950102812358321567392975633541600596345076264330848661190360981318524585504483028317877261211763353593046048471611004249756486826676580934027770168371933010402771132417313227632341521338501626972068247745970835418794662389868298338239425230768688954796533869701711972841744402600578143952452238324894848703087544473160970813889114100551470146156559021739520378748315863309231965971331179860986854805491327761352058075288571031087118679061081433863122024286213445695623022766679696365722824308821245802462037319019448836041780383058203841244737107008267152728245393388827024758595871314325072337307768696821142625102589236016095262732077096756398125359462083534659496635678611844432969381048119364142158224751712216725304306962981074259608110376507336226849362593098476504615954206907874069365238046463595484206656171328647591163338935398390329415234453274058850106632182842901427101449314485316190577494325062990575452255793289955342617588217663776877133665584826409488029853448362742372391349757660727637411294988220551169454816408584194230600243325680091023001380047016567266325045549552562689109638498787843493195063598521318546650637750731941499381358105480040872689358492637093434855001283025468027709430758902983950808721850257064545134783964430719501031546838919863284836090133930257051693744011437560427390671491642224254067308880187193367585020188823107471102553288759219509144392174974711152246554666921719281879974242875656355259051204321442705871004203675635211507434130570859688035203131492293223075373557466271328053573999140550658141938860141840503931812087810607765084439528909102810221206028142031441888229205808632882367738299393299819428289587730508310019578804692790050488708564385753658827119766420710264924617140718024304173847669611174516942147628613876330205434816047113432633122010666788932269603444132645943599784606175072121290866960803782021859040706454037468400036090387899469802685036684987480575539469940258226105105569039991912670022319719240232496080352683933936958742527466417748269693738053467243182837654832533127475925942662247800848819215214014402230115115046602000528090859782316311689335647907903310729328092833567286776344236547270891159313213418322479260656914465207246126364338773418876589859706351259998756000975265340888452787831996523337875166599548490285108024448007737969237781335534776378856943728474305304831332481609422277753999740715254415928622997972864268181851097949796110590701433564517250565733908615886811723618502107699334804670769139967244135857406930251234706003353669574969938482401850316363469891468946049628700102856466894429039690652179930113796873440064938646777696237622580839152728756054018472029586185992858802149176091155044768208767011944946531281213153071428183302338001711746626388885234339654180553285288215168744764759825517788973938896997133099363908694822309996023980025649400467171845455142065025402330540981605609855485474610901186139656098819788590980321965331677976839067723399287461208440154521697904116218458830068906164018915918566561152365191740072416717001973656228628525659425729162458754125575694067274491121658264687948838895606856578999478058818896606070820602715637325351371905411290188199626884541984285162074747356348703317725292870610277293305673695484174606175380876718988012963765078174289102927236037334503195008832018579347498942143138340899683623262146770933331766577761547725116856843265576320320230001763553682483563757595539342146832943177184909294693428413245785403773261607793142810463528645037276641637345332257206008340555411523242997542605550442933218490090810251398986617544334735198854311961695345673612183972626741713207623245340932434070948156827501023763955935672122092898787211301517213354870128510011312936366194133765766075541499340770213953682370481223417782909313335973614377396137680274927776400183244519349875016027838791075586761361166439512023437982177978347096447908245812226010035918526132010030593438746070157784321061791001039315257397820037588195752256704695737242125573229386095289040393337349584073492072775447811251921829472269935665321957016017044571241302035108571160249254634966442294037834488477161632111451661243305225390506719528389661760270291481922736658752984198549514153003392610764851041421552508363070864296270846920266963554193301606805017068314278764120292468361854788180449445952557929991054728107960708302296145196765104027677692827111949805577643853415865810004883254123788532830263426513797982856073987295816634738341600853731069166722258330947872415300724216033296614637794098453262615557351177924012587103077128577511337411369073505739814556384436788785283329144069877938383769498234504682466860680711649393496148948465782948173245660800814914477069752943836999667136329841046495089127833801648266955899046927096806982290367682585774407137918536629965698498501795511499420950797139979457430198090958124165988627582196200943002099461462191217415324909224399640494009986403813183220756942137721419617014170247070813843649423121411265725704337152626336454899295442765765158187331219183850514836606741618557401017286745753502315297227562196357024593464878094891977377138430350362110514479735118196707876462663822558478210310352514580162416763194714236003386754474300028466611733062401451032055173027433890001380250452268790107686712588641394958577458639605621262225119336166049109764890917689711673858922525622659089809039939203571729669253138758003381382541323972079494952361515536911895605699189833340261671373071078077875583946041306325562005002532152453759022215255088403268694329304971030429998549195973673867513637601762601364065257410661651337484316899331414972695766293507553506700114863081725933373624774946003426460585439356284055645958095141228402680881782801186382822454129100927936301342698080274187163713156075026834543809775966260196163194693298070348298229250823078585938258772475416109761863857329196240074243326748333888110123029927109077672694837149933002674381670893533183419862689742426763848384860291545678418774108222653474665680282420454999959908695550449949594670324171983058500713499301497112506581942774459091745906506538520370935773895431927978818490310862875108157784868565410920093245706325387342035072179238085463866411942432198281209533494527457272648888700569550282468237384457498606045570617423570454571061650326768873040295612491706146171514003809440576324484201047206949356033670557202335917575286255250464582978421329065030936986984087041045521658570727446857233100355653299088673307063184163271142463068868981835068590448861436644986840576961602356582762523906224661993352174479871037088843714500809007464158758804010214225372950590848007675190772722085148533464611907524839767364848289842498287796202305681600705657507066917517469129062818419300338776095602574089276031924819806595701375116996446495561632450542982212975722614536473837371801221246331119388412444198647115096176348950490118201465326552138180501315473447783315477023952018998076797238080296197486870873235198181419532578499736832882072488468273201905219117971797164201563474063449048496746574663298435794543218568493995502161083884842429764167777889473669067793140074983385657114057446518675165162415524177996955295596188112488232561424750494923801278486608906563486914077374869157504005220547071987920867499439578943329994874074805152935218673464271715510788041779559275794816476679880584079514238144336463935310738227173941526771605147156501550406382274329346542099514584988153625517886799647940698108144375305056428982742916348494161979667886383386011788304210541090245086045301578992887976477189977018768381040945409577887822008987382478879878857735300972397443220577820415836711422229602216959984713262937849746234797495453319261662902628289772105036184096235239955466179174666943367494236734294687294905272505450817643081725811917369755539579358654276582669983476896649316822508831342091294377404437805186601336156314772205354606396795869198274530783200034565586290636269764380335996270410070466309784866300175630518173947931213995538477835720622786545991567415876294357556578720404259722652049314833316561791569577451609781426405856690825316167814291477925999132233375516035231440282183550341604483862890827392833094812593120904985148627357134127119053428069976725299106686257155376225919406345309720915587476020875339187568153590249669357441343469985269955155928447309989431145764757937950101220746718109381102149423653372390559538728044794051505112754725057732445732010127972351384962988200249080437170663051517708621382945219190910117909860405696967788835143488407169338477107399533473995532223001844798639144247582524389744411222267321464378589341991302417413503492290134054882502308295979123519570834486245019971485642397824172794885953637894609318698302247470811353285350029484441966947651208640120184356427385764132646505994507017244902288240914808383573689982875640309936310677530416390848886507116690067302218293385028095254269478647888563770835869026085891881975350364141111727773403628893761211696568095346918471197283970898125143929330071020999125849764215653771334900855588228087679155136472662273685018758004760766970413291478346694712320990847390218282690016857110461500544312544802385829673286395170010302191454332881348337889938132526486380144185362868788223149134654989511232968551102601183362985045453536906453847846847395065500261302276854213823553911198741758331673931624957244889880034290037840048817871372085646294332587850632730927321568280442236893607082137141715171683296654040864536813224904168056172095866962401345932919819465952725029520143076746485360078652686561962647876125519462404926624052207711849589072981564774402481455936298515838972342677715287844397382181003742148164107998120097945398302876527617702211208688775516875196424490699078344840825702114932421179806151196395685829520718433788627137091436998173792897604210104466309076361396279712262773748934593520795168682667753286092520445289340274270926579324380039742975033161696636034559618668484197868060046729993004151511591024452054736426121250656132623931080295870423097543825106061110286263834934144455646961926407510445211727647134409457865885247200541761206839891355616521921366856242779580062665719319163382788088148225849668759259110745097920706433198687705185110032077458297878104958107973621062628620611161623321771515532749281520872745026799731045088618418422278862354008387313565771832534022474327063759020468702145537550642812974764907426878234392104148932441099243356634033582201871330989022554970511173364840353103626063077286671481239059910839485029594923931825891280956791603766479931411159031118084095969113236922856445497400518442591663601767624040420344385072835400705883816537094675339013956655862380692051354001187101127855972436080908936089591617516898201387274770529638689974971117333483401021571826651935030498099252257585663938399177598310427494259119651429516483568655693560451888140357515576299942547438360287622095922000734091166422588126494232564099783473844715924530446727046884082231188673170352593879470255172204271535037951562957553961108736618978418831188688855761148401758520584794969371142659447925003860962138617507375819179440908944329227241837048909327048832123994265889740805609881966250312072326989754917515203389449399976050099335756753603710959541877472924821740183418595132611932585996396051143405952794347916545703377927627592343279010192767999712770927585425374667772241896063169738876276884149988507178570455197417657012557326665819906269617770325219498315860908930782668997443697264069278644722325201187899300652991216748705564886681975409067505926636210412081750501488227497827220021998283782342409325624005206604595537488591322180441830851824512075161751999954932498327570456408782943731832845238370547902527908117099487980848548872803987244822618879607151633668476010936432149731687286035651099492540926074132775805685914937467886048938511571148258284829075042602907934313438772055259524871555554982200913748190974923349622018370976086353706890575896005300666946486392451902069921728977266567328556443024246165685411301048727516216326891164285076045671850332806506619717520488626364424109007821182567583057916365360801856396386122352627764991123195283430858347207608386965973987129196730810157622599859307375331556835584431189145187954834476508624135859664275462087975370783048862985027938549028924323262188395242413106132494573398185656983131828484459314436145814812987038775542414627645447999491459016139206829041359563906126305049145749050530748679205120181777037394870789749286977914366085938072217785769157001381489460071716845546179404682573372587216211976795202200420433449100294987314886627993962092393835869368427400557891188254309449236327980651481258479434890339908982426782056072127354010033261376863757033519046666517190915670521465218399172248229437313665314938083546573596967339996032293337911124913290672967935172690363740568341455677002326953402586882862587683517579024278020144369955370968714526266668296128412640341207786278986945580402906422452620275200634012967218971684477690237446891620154855414305320270823621700329724095084798033750276899111252159997264528612680634189238372448800247324009430267927737951348399787408831685120548672230932508951642001994101613071023233599182638556094492579880827574497844059372856235100374245944156013535663688527799895993475580519487343619323186888419527079685285587785246667121822280554879026134359861483512591447124628649818923875983060061816843334439681327082360591565764323876057001177698901547995361674393332329747195378302890241420166221154658229772850060386746571980177038110520187241377792389151765675561533486047690212152824124056776882942208960172123529681406430647581223873508310114484769371783950911972143401310022052860911685629554861201638253876132071683469031972976115690831873401577641918264331722473974632566322689759159060576711676271874691889940046928490277280241952723986972462338024601300362745859132138255809892738109094076419709128681222595129739159656077063210082720314903061940356781946878642692171715116947020949272203512902805167283631007221889606133191129119803863981647959859587756249413548107825509594409133655370433949032921624675006199475413236960737442025514988522824297253816688848058630620141438999059224129490125899884856809800778452572471001435598743397969059212594049088907676989743690228885846330346835164618612681689683505225534905539836815932374157342070466955287922273674267032716124659975607731813593647643384663084647527331548616930658995515597496449051171301240346473092512265256575721469637780596621925038779494999258137634118031505291376289663705702980463312836394123506301122026433507492058346671937075022196635409327279295126294569871386804083486108448630111500353587227067774349207907055764641298201197286726349972489096865038740454305321660649597497800955496393534487398098351022810045450988991469717658120792416861481057877516045603014714817393806656871089365541102393849284469070246702747450688068659849755265489136136120951303989307171023810233188879924586441824369761429258261724735776424517917134741062663941518669374693160037182697104458074457556321838760713007955557535922712618728707811856129531156931429539524608535581869943345794625183291895912303545632703300301444960671368235066466246237535736040533178128365476427775824097718136867583643584204546715648299586639027831149365056128501084958721666188558096036340765171736230389334439005428392166712237235730246556115093927574316647548428744874420825225462863104164883928130894437104016463412558090610708378984709365674905117196938272889582730064903798233806464794267919565973339636368688084189693502821542374774481452339857303900295461854551873796093780954682004147938262244973303728448948961447750060954397628402883833376131550373117275042018788360893952660127210544134943153428215650582577602416067085380971474449361041990043327771273645479082168173326243159453723125354306508639614415365542387310882077637255197979227753717668248168917698135251247386590276602964056088493390728067043408821054390824459673889711176421744081151636720485333550387884472516733767075230443269260515619420956787224511904805260475602848582887556003376569230584152057238124190416960391016484996726447119888980543220188965528025407547429778723303945887854132698290160384884250501583922764878649548474228594476883308103098238327470144798549599531745703818593548430040880118902412368539129261262496858695417790623386127778307512055827238643422814332197849572207457311495162242199130371962339001470522812636183818925397831363686160013794742811493893098682826195078624854302922840243795108586112656771443181126270937273322470740672974931078351478388790848661248813049544395609818136990854527303614887609927404687624019459307709322214831023452513397581535490619754136736330682373370664465953540504092593051820231755871655730587840871919894472754576341898674253510473411733072821472811766910350491833226560779177351900999901884535275832848880564457166626815678408616777890999996422292131669107342553245448622559961180223074741092342569138984435527635902229000351647577963390149204537115514129108145255416410650023655263171780478822878668437316273980862104646880839330829266042864024185057137986194530984449861391279390989496480773613758049310386598964403128839952264029491384022775369471643712775020362080602228763547324878698795990362895034045602415933483407594210627316414348383487906731934397032101417551091721607323121011059429918372085487850912203299491782984020032967999803669551980767097742811684709077278951434131014058472699119285953474176180764000517345871473881052366812948666298187154956905835112376017217997181487969726956880557996242639431832930788656833656957310666692215438719809822550559529308716308027106419664190231087581649888104917206175350120616565850924909729253916983600219133216022904022170904594554677334704222490961991784216035717939928789515496546464211799275495442966753285067110327710085372550687223501878864234655306407027254752270854018540512051823804514434300127641882276848099078863994809097929948742983722715133440206514600357620154415429849643963360618964280700165005618797894214463781430079007071420113343306537552135483695451450194546782760523156341555996303403299917525379648043141043247682327583730662684158949422028115356851501608135080948028521160458527477676867918502245313567492548538611636750409087812026198099883514199677844517745856848065453062600018535092417698910807284819932325998531352630592145242224133284438844792538535788375834903134810715805024293892495847099175551089136409287124549690001131487004701171427182689438432036447352926612415265611015173950977899197998289942064865554924156334690959984092585385577436311506688436355031171050632345953069970486363026728297023667486111942594565195349975088319218020694264201417118791986354425501658430355375942963278761893348834777752098395061907591399512714827172784634950326250923967869419877052242011857630291019357472920395718681566005474844557351381086776225026621814328277321080948699128129484406740060905761732935104325095078179406921567572610053304554592275793148677709323417766851054237061298166627405246549173994522074397638902227860282595140842376331596369860349991174567999388630758884072069130602423940032816299069179315298129251300678797465032834806416512294946650048381621099229312010713830456582148775134252580346633205179452804853693340835847103813980544358377589513467861389684686388426466486054514133193128583543385000725201584893581232895760849066756856267617116299213105897690415459979038813357257982777255508451864404116715504655181084134479383555086382731348166594729103160484581520535048604918443993163548538869366657337068137255653622418642149558935926573677181363996926206514199917298811024718450814284148456080607350817955268066066369948634726996565844919164695118399990277662982342829872914980106105283292330258720624913819102516223443093756390307157858906479383748541678753491684163653653014080625535580844269134861843794741049726192679744851136152333261812208613706196546043161175991114005028788558947439933321788973332310183202356105337811376901229813084873413738563254948276148864849310197069757280239633808006125207008596040450850089898954060353656135877023454839746154333978983862661561355577409510040209808523602877074650549600647376126540488517221936071545980034284565549504297109936739191401741896578022664889202957111620799312935074192493564452673934676397799010796824059989213110170718528158573060330498289157961388617685952822934959472247598351063076956364954449595958850692646144254240904877526158017895554221275332132404777093075270190523793757323717956314859218058827520096777118608880491781855132178472629032471542184909663067892607778502945222411721327446334195392910183587068989941133263909076136391054206983666399765696670498600685700238893492372448881247424750546419304479532461154032474404367819226121582057517008049456518678227101445746035437465604111274823058903572133945740714249303321197551839779813128596390329696144458833470744231056400503128255876354257086437536710408866314639550211886062486633370714591265268126640814597481861862275256929527281236228831360734295339922420408378380136898458011720020043434490620985502597040052565336820049483146756885416005380682996566428901739459043021960007738300876994075379004965089157077701614942771243853413114466626455161380414557465980481063710512660630399271225877026865725442259530207695474418291754007516781396723980970539484696421677721303945738316542914940878583211235861693045228163525403195509808052443117530916516492812604791702682671922613120127612151085092413527713223255178948545137693290587530942247515097191851498790011576936408439434333059645255931243904100714290833388227558370037718773389080765271714091793830836638131297257633122987031868807055514953312425981351154361837282105087559818989276393592341360707297283128146435675700658922324972124449182927133783908047887120638723822115532420168895714900858275068027096080624188014902795730690275211480472763117295634207048711693001678574666141223677533428298838250646009591380475912977227799709179659695047377639481675066654281308053683137128226540636238778701543419965705657266114758666649593584480798504518192861845797933364252955241538525153203563762434994577889050863733497783557813318871786687403566161530721312978495325558487125694064268547627613014305458493562059217029960227361344790037526024366452773966110162858187489129313448508999569362072587417707749031396938191368699938319991993550401569997050636802673325265353465193390872928303747891016503781787019603740882439422315750506427376381302929671942869292017195873071591802543302320811041447898598144598994384429970627649181202662389461197244740942799082879828242764003845819307069007940500799776741950815333016183687076153973582559373098055371863717196262080427461988125146701642584612929165487151486635658125241556837288214253039042425795149478639289806469235721170142571730034122282295338481407767889048867006723036183068995459142703453558327802600594122069650716746234374723005702551727891078374934085120341082871589951041025236498986935056293740581254286657058234341408797610367104403968950566008440228474366189886153911624043208666508855265346697536074627500411932330373889112808735569796734769720230018306657617065108926781293958559795538957428894441347879265929372183811905788392997671237049527119172345154462745615462263613294623107320989158651428748685985603795244127008147667918667817501500289754236029980495244666434415142035174461243756880100943072692206289182916280740066418911982476705208718760451632953939221105650263241785304883585311143190435066385133346243094697892400853976795607651767669633115256488339703363085985673462868063445750228603683636377880391316743004070750026524994903192250775038395622665446824546775516128458784469556879774763034740332465659238529664836911196683018053349724567429255925193377416374842637565210478173345714814426721870948826159846965211970903745000188165332418627086759311403394204221430243967892280450550273944663287291508387341088730731136059643754585796717907017107430810834648997361997372374632506428578900936440214386367042678852492946270685714590722098602578767633816460305464300493286568815561545984206098435252177782015505343911923490557362008323823398870953072627688005621603528093043922042280338012975664890965812315753041037498884464764316807309827096650111846161872266705722836787623379399946251474872477008331077762674328958101177742052826275301996704883488524621124820955134363036446385916636391052556288846453816338445531034175900860545764036566310890392615985401737851497524856523218773657485602014275271001034655278139729644000703731306735701334574694024947513191179146885339434506096556847043479125789637862339522524138870547472133020466527388963680771162751418290387547251913928618132957421953839496052762363466491611139051091052434317267616990645956492594921667127317698680419091227285310859895311370046648208462382889836656947694496658986140627224947331586277131106863800606928388873235184980927285362381052008477150458170076078325248381439095351582988309957853779360559222436678252975039425130706404023741145348409225147676469352466409610160664864765963354173811750638430754198685152880591379723899535026554009269555586843276810989167943474325377852511191543853011519109503874480828206060817590117040011230883589125524584211688503175493435165992586280097819869671664620798635295224390850370035938588063051049809427416363299109014747211844528347298550636649658980186282683912125946760343749993482048423382848457861029806375218256268642252781490828181031082327640438216832016614788764378865224605235956362742128649279136991380485925648915351187798096370293660441630369468909909461505718219383480254904950216536893736108178144775303283814314254804021240777272878284124592425185070206798120360559134501388119183477262454605577438516821541423606891103211548369272222654128248572681185038411637129497087325550504072071876443843345619303965954101749197474190619023674125018456052256828315758597306959710343833953880425190396099816930611308715690498085879227105457187164420305002270116458686449091777739673736641018095236604193918746273271949575425290389667678479090092901983871869207010857897951732964568069547600526225250067233295253017395940539463066618778832474739739040460825524977150120540200444434892063761319660580900182394523393775772582373857439489073311544154856645303376282053097020437690231001713518952096365733913126897016853944757476203412455786377373123715125090680767150229934430230007173268735255578438934099343749413558579947686404807190614214933009447874733170201226847772580047932644919216849241961856258012590818695197058691559413242933791582960924893182700412441935327474646290924069089007214200328666197563103954861014598025476372429983322462688795286135976962786529819301798164355130331203759082298844885940555240160652909380352609410689022731555875553263408428852539851247593165645372685341120120031821609060905592222274960520023383210667008270042054269230223993786072203277775518923672299356286994928398064782322868776010566669964927624794700883009146244690776335274272185824624685600151248831484618820556084414148161574756727384634393653870001389505709759695984750409600342146898050562449547492852139029637599239700633646259981680638591228680061108513804988984432875878662834527787069693829355251354692106941813302961224103178234946789830226162439577062513313046830612890225685552925486219071313026564652524253845702995002464746481074979368985642381284461872785306625183243712600024404044758298537304122926305259016974768558784697476460343561209831293710212324196628232126635170662759985670246045345462750631524344108125033502112852378714974898690142894608766999398489994404191924631875689114372167613631345648690506156244360014092134831393872719103614973347062607270431945687789157553699475664758659703623834921500580887740285238087505048419781456961913753876347617890173989837739579497762965141823088809761691733124696275572127655469993717442282397175711969089406712415099071467063240399594875314522746732850199918227553971673675630149543045927100385782510497958472246286705544056740993830015686371665842194623743064232124111663902498870384496446716192897278935354858075659045886523523903162842309268980401898947982051843445845445488588794836039416224050624102756097446476462101330464291716957754731902672001155910693385299338019323619167230710358133003594226311682015789727034570793592814427179488521434336109525222893607536337809924430229233070979394947805955768615996191623225692943962250859823882365263418149928354984154216595041472625720370761088782058174215983766679227885877630295442105766349926769081477512622304363002727486658393230710134014609452062700433112761701066498070315204089727612090293533003849911423679892373037947632233138565719873448820252227953928134714225414794839549447589530645726898909238707848164603886584106687081283304225928538265562459465902651357396923851234909094232974299945477270410056043047065965324079030100515577389692293517652781336520723385262041297804821338629195623848193424578179580342307322084191395719790036785548393166229116315455694646169668153819772199864806523944105702868342069579736333784802799731403157659848059568176072139084962586504745386829577809945440964123769630095667013793270089497817570705999060511146602761845014828649922868780267919607029227995624425369248017962791356970686284472204006596127254918547871980959971983014741641912554123382199795894582557948562942877916515742746058664827290088275543138749203822198424568679747487677213170332009115525794224207141995662637327883342067156296216781761917138845417129304019459155169349769836843562782774654170493570627977926679814613629829844711236645667328820006718164460810004912616624400098055558622962505196489008747000360158616581839267956490705457932486894306989901512399629389707627579415737684062067064723801238294521339808664685408901219838553789058067863786841912812502472276035391219662660824184807921322369892104295626897162337523112659466664804076380274667694013238497292600683173648843693207940926836113888359716398633376029185006458364942650602714455152131897431663893991513089559295868314094295971491759072249833376456335848125357986965341467682401067685623977820174637297237775544181375184136540593590352489763050436102422051494185155124389640776221226784553954833452108586049458772464315282596021684417374157434613014954446355155841019014789581454338937633485966398440752817315777602361049563134279620787301063706442484224153698358289394682723682912078323555742133087636032788270320568494731724494204959095464250483809422993642549595420747985526846127103748424147053219703468410066340830320549533824236378663227940565188219421604258256542016199890822828825479082781251421406651987007820961966486351140939999771248616133477168789107820333133055828194617264030750299921986788328627569037970552502297103209431117316596438976408295001857968422330389349602312480909195455656052671155596436326479758343441721724702683201130668140697091780868375400254560360579733797604558311993526019366352208880760710817525954057243430425611598938209917664975846593787270166956180265080785305097511445999572585179902270457044263971698543428512466606964120716625966824729812117517831426464062612202650006194471296999967398004656899570777735996379918752676794996277721272665045512828128618350015768041518623108082108794759017013818297478179077305448868859361800697920271658442833683429818135566831336769686975745634020189613406118590544642011943884940169061890829518417771085949272599040694286674106395932228529155253306756187549126591679631723172319148174840164098924808265920532445935547184768631177094316434754659596767110837452921360657866568043762036055534051238938128393011068073682046325270548830671041017798772898134332690889156386357759114519563008636468886832227709407140834040573905206942369776467863022790649332668262275243103155213137158478096002122588942365673266311021977382207993743961640455814362293851659242412873927216151725691208575107894654785014888685583995176625603676862756864738163872419469899508788218804991816962209496381429338916316375635788120253937162436074710844289773940372301601359411576072724167791459442249023108773654186089040395778972912658101763638934836967706315223216841109332333414058613552398850270386640970730742808902865271861617089849117826056973944052058104087990978762985354133132116569475033322034688189347302552170877437828475881172131788003118817207313656561309623742935974714295143510655528814915990001004688015892276730514786102696679092081320541221230740556256700805951977048380957934570887865610950738944903719627600379499786966255155254258853572777450268780183196151800020532094832718896033878469890097330251981121573908522807021233369594541466939520651591806137736706905468863330745001142207978840929852766549305955780040516316471457341309265733294914337119758735949936428834110609483037190175862106111426771937815341045465449052272463514278667207192733396087777499102246405700024841605473543085993458938278489782159986964278047302173858376665219644544109068821608756490476955439209674082765832823118877144294125754414978379265456578185002964403559905280761208412179504750214575437479217405149411907077095310948961105653848214113117480068899375225888573678005262285100931512065809787297119498849120238343647064943269033712046404687219436527672777205983010007251012211905897701640746338737174524272687994495359014574742530028216482104831562131761556022377140133306029521958881249114111464652319785785285490485325632450554614770014547010448632246440825931105535619043827587566140905485496851776022008597314670364852762812115046236970549209409105943359499960964767353262130528927157174941984447155269385151991015393823142137053451668402472917618771194774542805205484394165719680605461247188120354745807201832960368630219026580383869405074547988037178036690883020006364127113265591057578209472471884676244844411195693588300047338726196542693141761978775310567986334122485202929728647327429905206553888940633366568803985758144885685095422796901612890547172574316624468016620911797074610052777293651233324150250814908499396068814372086740509154602424507092631610337863640759089579447789229635093540068081466376345801293939859549245044408099239216859617733865616970727526551555942963950271174345403081624793277735414185479659409944956284544103955723170291240845817320159650671763902405858977164877335192900427650986327274762376993145923967417534036729891977651523662098024708329752276793380188402606987928127395341854817192685536589031120851036115911284656828551600593165318149946875876888139414039311067834200222174762701550557614729162312277164079436832364525208271130428736582492773157721764378704660086283189720695068804850351792559846855261084017303347243933562197423696185810755417015761744755570437561242234330876742933105370729253535770057009742773793700614734353765504678603026274209621147269786176622325769636663098768647067216777277495837004598371402496474531942699598585002679227851589516618088385911878461448237024136906704650098412312935325380469374537810738318271547434880725537899897480716975761993141364199753324818549889074034130073155334524510010879950704964087141075519226425362353576707921477124882629508828947113340047238839039831074057021665470004037933500512775781093134714593675352742035459560937757062781362113578611058747201545157864526690299305543234772530614433859305519598451248346211644161846981802358704651200156186086017728552330826946350222097277584595558306895168798379257930876407240896746058541001369348181344599373877685863968825762827699652069932491155342562803986317858949988002378889529878489486706888538978327094044401270593398547161036131251291144140729618654203527553659379039872771322997885645627500918142184255697237497653974777173500168099527504449969678733116903462589972202261741125843088599377947106584757584387785565570843828471373350624936914519388134959390092034648249549527894449089771417646088911159254136358367378101075816965130255821557374848675658033072527229911941394155497812706661529961579197261135815658608190173969776251223329843339008253446643549233370641579626136776154334655799883265397164951742162927614566137469754465163473671800546018671297400744791855090470801962344767542768780489157415673544459878480374337083280443949530289949702401377249971454027080350121862272943951251847309133893611217702420853645019494116635341264673666336554040785821700924184694376723812801233048619909958402977812320326622146170946646551419801092718730916939037862821593571019617841390831007996893283543107057220060778222347470433970158778332472959940387258865828121596903642585826736638316460650726046586609136849231349653793643006470329664234848142307229694721553417579944857013168694190850377616315709308063023136462149378398960435022335526961954528152032705878877352766035691519872672516565431116284925666777550539313870839628075605587999196922678060974747976867165175747269521978981461976695648418507970997939803733532621638089045264848980232128588072326514464231626264917406684399258172499400406832053674782035828581999649158660142638508012418610386946626616981364778701642654354743010779623017556824890868809259966596469162983137252567822413797975169797346036634233864450824898091552151934514831343775773459530350411381867619569588541936383119839910995478730742673204154163165487986198826585893239486360878145238072033056320793170956657939014556627637724552102563681085966834601742392075465404644510071056091904667115931952269827763209437201745022053632966418480068148036522572283407280183461903861354787958457145848966402141491763800803457248221232198459835919974753233679747346395084315561849224425133263584265331594587607964994785957209709341244021179902876784904841975649988748901905040219765568842301645709188150641624595886675277159932851436884442547845483476191232961148290987895254265973639007490067773932342327506943562803178030738625791938329112080560904058621363830579149498544478693438424037162282017689516356911215004272193885278676127419699079212343376491858786389479273878084973714722882409228169063867159662899954862761696735258483271348892472755682371015069944336866704667667409474118819112518797750052966658273188859004685705559853108387554091586893441290133161643197254971708195266835191488942254406297218921541433739506138941543599204425310424216617461027671006863957259609373632807623946317211607007362832407829414709167508751956133668509237075856343775152356388069112727187578467243530527972475449248627139161269761002380337297956327862742583339823329367333356571560948769411422484177257373981668503205804234954200826193410377907444630006807471799807785959879683933297156957795891770213179971754340561590597796292386825885820474613121319756805882530607665612605108452013775872268619886114853413220059031211150488292522780068364362598104858642807754074609413217162360099380060171394406083580080250467315773233161982210828367512022256831781349400041043464073329146445238499097193231746046935140013465303137735358101670759791792991735798746241917768813671391798009094327893676255128316561337853899770861985089699029330876875216975081687002229825309838514547878567398029897726222223402975287728073187942342963766109488212969247876744650693058324871705437055096358634591216120405732547614624470407767272710778906526947827703649111437982447286164010179020664060066335878897778756485032544125723572033703890486714443382453224720048338459475620251693974726091379304072420292730707089222832084051601888503570633832143784536888003821819575625877785719803280423465372113578344948350075101724970066229669601646996809117642643711105274798053984945883753986372842701659822081246513102690416109042767251863432857279978793837882976011117751184777374023231948086141812389320070866276991818295193631523827702150864536992549935272356403253859469036651319351655820353203522383971536039125745784907871017491386156897745366726571350941673411191698707893086399844314962922413994840663437239832421089908471634588761713039399779806319795945808671921629436222481527038532935490897008683262208771714902112231843820022276928881708787737799434114870478981973335543937435845817189802422586672794466566619359427456061974957177791463358933502228054089752174900900770449548769967838023939197704678470145881838519627831287367573306133030236412950495117051537244901743964595266355325984823770696157207984297004659569997587209241799018841326339847184891546411724839162538031425307485282620850065591161701017952377137684747264232628159329237121286550366077412889712642074978664297851479144070201406387871715175262570080010960406500277404285324437483597685603560554580680630629400332558145705000170834110305960618760419130191043791505434215284530158207287713286064419137814973516230243214409967818208079027102550260509041100347948318526997048918228086271005660896405798138104680476665292953410853983092016126571560057919151431530289391005340603631072881847879661546920003938127936036813046503886634267566261020943784535395032832946361162964197478773234151666226927621227212417965773548214258471992159147617901007007078200485671637111440869826023923779252215825193947887896027430882713335002295118531317072743207027024302379597065960146519146657832128607111826911523976368559722180209447677290901104613764903138961106168044926551263009830710303611192812923828098307818230717998159292319381754253362009479492839987471661498255228906839858142451645484344584668326645884462086797487374181009296879476878977187172236608992613553292764121899879078947213713928273540036022125675640416218833634585061049459894414614144066751823279522579540659959369002397789899792418896540309027584326810124428358402634224937903714831482745420305178662438771963620746274461612632348944787965862646104265136663940717726251596232991938811611064430292460443238058916956564084460355440470816532574235421469661618705872224599934302411282087187230755213167655201597822123163550944480367638851435358482981028968018684436558720436335533270930940205417338453161803467408520645969582090807839434406719182885502768217953187050061135480366244740665452473352619567500140154024965937560451462996082346513605837741924061684798794184677519165347179234543700115891292129956132590973265590465334330878641105799120703370533555584665216671753181266892259930284140357704664860865884880512911240860571127964512482708510797578223706361971268096329899426106686178372098366880393162880928246857085951442778225361874292596521873031218906888433223145882428808398752877555230476897670010022982476966068956816972091844178381431927905108874918389562108310050333262379435838982991226166078024695965653347206647804135084404966256664696998383162979172295519072438457943434440717496269293579968004681353474787949724545805261431281169887441523351274240780710560530717664484268232364661256794214852354010516759880473644360422430905734343361361764584237513379713090249963893150189154229634439060736342280333274192097547800750662599302019544357309946101900173390046427541334890075494621252202190598004754898799047519454346702740302413936850711199801298943855811060442028311790655935895342396598608975904479845836581639965889716065568652637519925423909725579056306515762678597712382738514216750871252115529514368353360619741640588987779307573195583968196134083013685718682840795261794389977670081023936493055047255981663736264560486575970522342102168984801245328875516962197595848204443680046332479294206220504531323519119160199730058789079342107470697514969175108597455884431061078205779449373545770913325491827432201373319254320435490474065987010647223370093833645493846562568908373099145170290013676846511276454311014831984130316887251614169315483987005427253472034362119498353268169768306642819677504540744042023391833613773960391616901189848092215999220611239201906935760054305312668031048034035791895694302999812645479675128669335384136261818997597257531621213749464304011502218512513607796803343769205385851952957731361493575069614546897691048437387490644356083194324896180597718597839088415266625603043665772219469175194279682592104260076987887142605965999048511762248431698148825190927160667833958187383198931918054292534192813629063075521771339506164857269073750124925884515442037409397728789598251935666144133939943091945259720258183128318000438657358277151337010467708871429380765954814000787371788214361894375733989305998971230376250612483047990025463121811183202878724878401432111326204854766197427987395885922900790622153548255638042768180125363697433187590682999059877353364273430145823804624957931523465274589337273901825776374720982216484806291810861245356965759393194431564366000405552791073263330898786297857216044932542093373281268064060089604822120628823867333826146494764986740545846489080544743746603583344191482011676714041512588100505107592245080240205040378735780463302803023399129864475975378965959906160624748777095901178033038119374168029915736143695391580474151610223163325960957241129656112724180909906675416778454125818515935110106119757167141645304714941337459531694745965720920613198466516025101230507346303884173170480285334717593885286297389504517962696797154201065381376312258844016785337769735068815399917735651699826456947195795707240544066996097775001547072572381908290872199813478011380633376033814115618352965932551039379047664856450281393613444586087602242777454574322884080102453381621262453609225782752578473958883418995530610494153208887497085555714793639407586017751684084277806510148566494636068187351312670998673391935443288808841184885100989404412054499870184569702878536296982851495660408982788235295147556686958421409338236208136667925556620562913339455491971075033585840159917956598064512302408684672052517568578975549762121797391008124418978392166789125855182792858922231975233634736327681680414141798762343174354329504363227079931018723221393804162102140816217163580984043851710626595534243560761110872670060600778139829583439287534627080379949809579160858716609618343464041619902945199321969562459451219367163495065088646171814174084087438527254316296200514571332972035299177712993513362006156635852094524456539466122155711875545837243047031397021251195044487087432290353810088267700179180815355774086104607637371362086112921112826025798937512211960868006533728701155198644692505441262919703223494722682198162914140767659722580341823918016248737914632915249210358856879699040644949418113503061328651517634419857918742446473356639243802850927853812321946362374356723322470932253311268735857159944101689808912692796662883899269034197939359278199548700787178199609311684355452239059659469097976165952544802748850665210043490333456702538180925326732403387287436120804693566206555740364969585262013251096759656481416018756045072260709594318837359641767304842426075991970744386083118769678011941969272603698698675428058964412046933790722100271214871439974250575358786798934418145403159118433860798870289810227302594555636766550389057313451697422794437983301253852035934735124358570812521087237043947171420853289789386084362175460634204748849042003240335496105547222535742385501079525741306022174646125799413659974800649990437946417833604166571297457881697946465620838591441794315713996050474757990577755529573061057105493623908673619862960576679339121744301731153942058190223763432051517744649207573506436337683106020996756620022768372934618120092520819132149388373527530810150026454793106373770183945651514436025332303196924875546629731415816107163500249604122244243727318908396387236120225736898390419653767893146989266311708160516895299322713009637982262748976158762675997854107707233579696835408898046119851529102598577688566606778031930082389365004171947550495871535633398864430595638309118221874501046447981595592140895194949604849412799087017822684967906633472133679267856426077492386680172026411283039356940683120793267016039736435860049789194773948934426116308669848437316054122474586060809204778228588285426600154392129262405717028090473744681177827132451536839472247740717933067217308484027750123164609350051200777479257878930590273288453477120819047155139554867029658348318204141036853461811230213139047078082057160717539648466849688266252116400767618693826152097676160310400130868162249756657782826977634907714177784330411893416647672593652208270771472944233744288885006648492253295975190243129762427981405335721582761690351108015043790835834437909047243339070409123882418339344935390708428415934985087048319061145690390163018689873639767568312007784967233317703659481777718252304285404897173503782811364718648311120599078681873432702173664543656774115544982152542985367930673212942305433656710892333534137628775403880394289973329632364459211868829875564243931773763254713701575398773856116795566661095125904371008156912464979749091519431748851473053108140591679002655740574091275517760055692176477454338696480651123994069749612061942206746997543146186562581135045561320068739924132400613137241257237953408678668228103741112268832426566742407832435688593665718690521905591946071175911808640061363491092670555353129304404357893054202843848494824632086660337199107199193069136470577542699485790495979054408224812201233261351873146205918086950234539140335042257404023494595499857292766119814941485937918891062762736500120727743775823083173009152158674143927959829722774526545340170082601709289322210143778929887116668824945781818171263064143741025809450968890838586322949216886474427366669894547546698753120225840330859155397062343005660664601861728241839420210994513332293347492849495858070641134459583449761862202300636598300057312396962184489181555659367958355703352597007334314785587906655461411245188968661689739730906820341762715980053588313069619765437002243814582686448139647721413377752053030393607473684683621624640856683895251048318094015065269621443581105732920733029311301706829195127978453842829421909059872581725809181470268171921824583540479943835018087175575205305255271424237522809536579835714584337059064134578746210828074662166920701305423355864921209654929750545886060078654407241445267565665091964972585535776215443408957876030511292981782263076863484514780848184975210438093245680152224203480240703350229304595166551634872317808964278379005924919511107812347045624500623458391716595890952370337942733492770659406190740368086287027575076649829885092466530983546095124491972643076289848361432167450775854450804290525637616389762867396853867448785796488303286417958134437431424593886999369639429406132748227181365053058572170819028026274857827151371952731619666353189653449930746400202309515202665433453646828994659342663879996081978584946594465371223920233651198214526479912996566935948253373172797469534210763784827789604791226369179700457340464035738266749872211649509592810019922586852673634778813436148117873970208334280833970757156033357075516736883085441928775942167069725549201617355781997120173908254529856302447299126042901727418256627232783822188208346417902198555079143742286234493926421125871787507630125727406588326664115679391442615834608686018010988241035669608884607226795152487541840023620241311963073299902246192742566624408078513653737442994265392218341001658749804901439500373807942457124558244417750867449235840493619626208435625176660571674485455880640889114053388377609628816229671657608769933180643856204834046169469930023103690069586622175173991280002636082583221581143019939508347337102036861195191277179308606114306297895966437715782511437688552264547058714373889952759808418166157133251583335472460861707079912726723857984279979749994878668099694985252510192778605464063704783642201050434943242125467228647415603848672997813605532899538303136812297074895787060059063202834551527145435068740017131550842603430399409005768373480793513397406592865346565316124578748592022456497260930736751608494966205655720905923771294863728671904218634384105668803246730914543384220898084310286433209129964881373547874517106908814446533470881886875022161634816095205866106340620843409613625603751725973664768107158809845435929844545928024478308224195132722841164873916907399383679413323340927762236417976154424849137225274725381448619965780855402257166132064999519210598089023973000893324729052162649540022756168901915860874416948132642892037871978390028946121781938255404196667926690825566260895979857964569970845892863047330713733795323051951663594620577902564128332849957830920073746805915322090026741878797107385877217691027061731278531581693545884287734921007749513457432409472754152732751776797473662143996019734436726012044792472973818008015703915516828035764331520613550000570725117648953887472237017108804722365762813265343999562073551911493471183129062052334181551671994553468796758005441478849899534494038229008541401378337548823902946616952442364878196000012220838363437487200888823077534097593684021124968532753423051575645861379426889856980843681091853781319595645507166239695875068939726580764488905430672875298535526353417002935684999322984585474808961464172790619726190381974591055040265399485966434753123434946265106879301641755922630956640381412519609678276277398836288748597091223206968027583047485159648928489658471782702220146751243966968089997339038279062092019456454175730895656201603678513567994211768679575508529498448937842338099928058084104461066714107658002073698709297233988647040505919068338938963377073376001316201425000967368356411386852099364933155665584872233376709284233277468752493420489237462876972534527176765932136408915172985314635572270734487865271018495518901643868545605180622206377245925807776567444950394009276534138397026596100510161864598813932372469787889671291669282385860528803657009829866293213537600327357811306268700217286487532147852878973975316359902582942244169858722488468898961066182168970000819621524218320394935823108913505720692624060840593313899821929269879710604409299215166491936410774013455076446980438216378746549797192874003555468692592295180449158930679236165009789988089013123952376742703390329219773100732963660692920691475862334340180766713364113580173327190117078100802130502541962832928594217108581100631518847329800659310889507323459887889881089545544116028953030727759326925158783384183768345255732418408464683935173271989334888840368822785417023793925110528205521375931567623897238524669641819247927172741957241347372850774830142816206188273935519992911009581058283393755372474601760565466282427404021799348280557107720647806126872534509334340204756116904852425708324449413447354189934868002160784052211864916579968027439625996754580680437704078122429568845948616455729422838012119984789923828148776066847739012841980221579956871344204381786218093246904107477584447554336343995643146534415172119006773535183331949667466279134423287140525490510172093766858046398226742639200834570674813838926911953598400130179996703897862685414054527516284551845032868428779725880137080547740518354770330944599241168879774666571552872310111636820412922739754825993140134762195551415897494386305364472158908754610601487715413967617407572211067529946916123513155559370938656924544739823112442141930012128399917975590494118129515795162682032760938805336107854854578815008610393584946240228365359530527998610441958538580576465370756867036962690893982232586896185173707168508231715628932942902373588832288209755837589373410128642516834310842905609557502272066802085424533374087591750787996473241181880858938301911291889908176509428219802174841322637615098080158202907231180912444167808648239580254236437713217646718423611041453968559787962822487093704674525222161681091999162723999857054649182821767863083258157161826096106917890807904740612041449241801855214334381849479860480197895633654072530118380883050322005325992586557274741986237359472585680629709488595538441822813200625818628274750707958961488824278394305141784088889488996281036790551263103719592356061146055091052534406540120696667679534353060871258735402167737871794709958779231850966021296300812057973975414038896578898766623266897366592129080783071976328941961690728846139236644180036769088058490024622172524695198428721951781422889311433113956142259131780941798063264056992068226046517706362238824740367611965667030977989547209780287365991013946234706003241214151434318518548596097506918311911093594883399218161699081855137236235057610679498868186277009361719343102380058853056799032259917464776479950564646733416435873310046020089039657005883406350134714050745849975784919507240091785669242334128165865477018174474796875135417546859335244610969683092727240547527783538911365739555978444416141896201929359065440716797349640780503627610816359973149766869888205540259387770050996671011014631109524640396707421911571354296610758201492042278121374490952700433193430518786327713348850366916684792242006229709706864782897458266195773353356147639556465599743352321130031946794094484348755291947199983805573736537411209455171290403177305096858513521899055872486160381668928282397566813518602139687927177768526588201260202387050194492101522855182465273613121897236578270259083211963828260293472738002333258483516736677540135817222151158099514987525369313635644671043320883246937775437249954638232805530409912318966574397059478096421045773145542754290133857218312754997329010844539553929606285401115874740806135046780849077137302346526761168359689672320712592777649730569204804543098850768415599693774219519578659554204742512867567679736618708372753575715420374489681996327878847429046778267877058687893826778873552216781908570255114174065252490543541208260932898421059096747753911983921476192360088354706668018567524618743642252883582390109384425734742334256618375259830838021493213343703589520203282109536397867753776349797272735237188594137532298886137541662251903505216601067366263353766299264563635945141807444960994530703339303447347974551763561674373282216045085544460234968473147845424939064579137720386887829038985089496663773233983868593773680792806514060169863792090165821884593882909596155685126123262973916373328702357563609211320113744482331760783591050083376208595089678526075237406759610878232803147518752741802906875868999818621922720711846459560163142387468792913401919194852030891019396495021522591439985142499536210460262916657776457191841577190120795972595442367743688806063222184356597164232289732859953569173154555813439882751816710073505074133199927471120995677422828581437775076523742324164630797308507119196665427808417993057577085324760438305857432742215243712722367959842219057278488420354017310392714387635117531483800041146947111997547869314123016952517460628392623728937897464852825972291457363443558666835089894190958101711191263433342426077774220438384181305412718518572765974013386792061589014907965350418532529998205352193493844288494010066326311649813019201870432008041373498770830885270753934906119390487860291219290366770523350410297172146296123661166207995930225237470152309467142384460593338362414811688900352512149567103506670240378942204824184026659658174391860526210952725156174853571890984542398068733995329391797938894675635227893520528101928528441355566677267579057303577444144599269503069852883504543631196087356530651757284502686051386371599866349881096461393026403893888671638533618620233064314546999946171313492462275059042494599430767997371683047641381624432829771563254498352695093727913371622183785538656887360883205715970737087622351512719208671712707044163705035395954521564148360529663087705035891861759596630079817037315058273719501388585792209382906916564287322491123613803576716266077457699662064246897811144782569086357173857367942076029529378706936398953335229140489274820704699514590574977246914896376794196896672928155719364084163909243315750996567432082563958531398876710638923956937595891789857981425388293071501825523334399766897456293916441212508047455460614039475181356412876460943857472892049653568564021650906717737557848801163185597943025847719848947569424844266922817860961514742933251650676089609290414285650299814324246794045331192716388486018327926383138154159089181056395080066915912424213534193380787930655743243825370087848593238288276889077329036824966911809966156145357218623965320858770730902787785195553054249185189253745788873579761666753344687588694182306785524570595705842113948479673688757854895758546888502844099243525885059878796859243347739056147870139945090449521389181365000441652809821636060120660812079404302205356918717529309985525028104881605372479864325850138862181697074103830566368299989004582112760760672853112503522082382788005196112592418516056679996596501273387827125674328367744732437732861995166676932399666230198329182931279294484442852582705036052007798106653961701200953424565863375240792017981635976517295397854463207242879215675432487113037088798880423744537304291336323827586577422392433125058959212029414486192134561230419594093502527932147304888461094587806359478675404404148701077194492862280782581232484855925529073876254779919412286027587744258896077175033092203351416785476715212132672078161647508703265502811665614385351767885716882522974440041604373830706441245603641195942231697633207886038742876514462445792384037014805495755813485279389080285954979414050313388749168339759531071613707475072771903976899551480179460437565183910725432024050734331374809091803677429425029207804395773699336295193179526007121203125977644910977439164573888580929338823846448116252766055814400396376251226786434047389774569540021051669889324061733238616398064654857261411240492628379608930151298062878026723828841624384151137501931028672095078318243513742412468829126025887393726094266349609628106520119159224284814816997264298212053580461658528510081995936469046937526814688502605509785461028930027004628758063424499551088180280878480636303841552127270687937010738611013935511556334745314040729759064877257848498535963473910469087669430514679399064999142024667577669197172678279461291271003624721091237393500048553590316930811221663403421536103075600372700745876543384334218313953515619662324709272795746715218559820278046943406887810225151033877305133372585509710256521282505732268251010734599377562919706421506129282496130679307462524888534918123844590512129664666973307786449945656957975082693661185827959685927042019731318016261628415197965181085269512758003228894789902941854331236423959114874162502509159618955823586124675411321162936898701960249302501531110021206689892278023263298235359640574268505971829858242662816196522110547296619514407927279308574953433128658902417708253812870769163022703563538630227757340419038476025365423929250203019947272025234719544450266974365527769349179170189974975439391003171974450329600370863088819419564595908169720069537297363551491642744738473744054208433432502046674236030157632662881143677426311782162531371849442839817180069370037638033303964074779588654268166035460347728528223019622574039855693540268390494519470643022662136058151399411102952012535153203149166999108508447848694843692728584886909746503365787852595422092193986638358456382009363230147308650132558777437793853161510247883122869630179165938234700956283155243328275292369831455565620848530931691632555595331028154748238156310575766605104259850745890251073726682221523831095913154297668916089190852131787005443204228598746123714259570334676674829677926251916786608454576160622966878740105937273478324974969632431004932717062624898319525739315577187600036643268397361568950548842265727430727202976513262441295301492139471299420160056205521044261622892607574274840951698242980264737563376639137600683728826836134086195532749226993285862273395467239027954735839027170039883262162705996330448764925550655921118989405130975213852574374624437613794593273878289040316345414077037593383606824708729887739415111901043987986416704333085759113894430019209846439228090636323699824778816845646568124684854543624817022886553757398589560251213476210899968197448047660055672261417866158455073856154627974844809471202827873833638666477089942810818717103710646264315489111500534595270572744007017477654720635321352407704598920249756315863509912860772503838349453349854126505232499063161590311760167483721101917261613131651825444735557633061997546513276366521592707697065530855982445104155621002468406615851252444085795781084742995717034610323284806054186613643827929440322305886370500021118459171939845741533540208356311797699709957491243762120499731046487315659416970176735311835694057443437507504515889040553604131129629125756258123100613557144981652658046240494098613557721581872756860994335532850638109824824003631938288531829160645174712604402494149680097286963535446204399878324388106820928983431556302362434241789086240219442199804958685715241182404600915148262796180982758285433144116243592685350666957540034904422651445746149794317886349585787010172501451937199792054472638800138292039039564180762745963316382976198000231814914956876036033901302307557130666039218073126323517162712459276444159906977930200551259132377022572321841230439399802061402522571079575182244169566405984864303191872614393766734999711461481489260748414676933919675104875598265683734806884303627755302350858344834769979801255332904774213727663768724916045497308478881373387413242371666208703812190178878582669512637769432641849861233996673683269661596726839648459746341215121195078748889858663751806364823234754145577132621607596440950122847616521616357625058093210483844813696837868078000845545144500052564811811828148016589713515974305378365531100315452089471598144843420612392077987320423506785375551131008496167175861610792976198182177433232876095317746154578285591805855328079509070405605775282832814609691864066710937657165079371868864121420615663122105435414683599054348765266414235844503336388389085569286367369631120166743989283781292599736665244819803440160725872550872213013864322739538971478803728374557414160818749509132888421032599045776011141494486384186842889313535178598522630380129140531427841107011168572741144401390237273941105777702436337321989272544182010847405539539938916057671085950250358574007761488902712663757735817088971922906742065831957580381191221641148686169411243572508576892744132110589457241819442791358833341334549348028385797582660985877435634564137319979141936660584247875048667342200762935274019577818907205564774662423291652527973073380402885920963895318941096739187140559654276893347047220560897655096899059421531096913409010751457828787193025437634046813868336784574965224965707247608230450043072707742543574964878104010037816039419973577385469558481238507493693185124278765939366017343057233272083734269782351580051273342825690479877981235667787684560905029357615242703443648627768699743797597506345265852347089800569594346312544284856005140654829378193335321165821766390115657652591715128824667504607358319464949887150029677172045624811279058038243666588655177820927125815089891339243512658106368528962099077687095028305541981439720548188119533795793089089513026248785632530300114920425452280268994243361971697929635749718191908834150798790487343146370831249559205990734255899160963886043602726188129879202859852947683004225100471950256342943233816077466762554169431002107176554456152966213865293107536299434842455888287926249525940125348988278106610134957752094850076216026080351520471803382065950236418665287403551906547165686271955645924920738881054297950910714172040525395941824120767588974979284906586671311770136045855723776671023820519899871619660142133871061939099653907584392490191781995733923047352641157274293216432296772664795803744290018521799619882746857846800440931161508570144054448265848454849695483952471057226850161226756362603264067328156095703046672341518306536264025674427853250598277345499618288602922239967822458766332562385340386009107797680755960955774254881765090590375620377814487064993364681576409034256754675231168182421789306347880753065956862361971518279179994159209837329268294040833322142926541865720444389623702120734035146579179161691581471632111204697561814980800481422812115991161631253965217053293259180234680444713567346221526568102508084935680465284170347949096247947945123224441687688957340807238505447864024185476099476034405125233646051620426071725033007159262331527345935751656258626126340765456621989081452897687295943392177418875358826051349614178577232851606410191337650704531923058837572321154755141548987197297568027397613474490459242059134585112850656371044187398991582752533659263990300350137193115038047889645133359634851296303888448068254470824443161861415553936315357388027863144430048914897393251733345187966304468901564994202169429744196641394212342559315346629278448816145015529250676618665676983149198091709343929283930863598928967639743051015500244079303304109327668471905841967576443589276073706155691539314102514253129058813654568962308170380138224117278064050933598847651885237956324760984194264679039551315023544937325114548973434690379053190693939895105828442261017345056180593421064422911891144841231924672364902702720684436304854422342857045891796961088160467045244939911244997175933240235685659766245232240343991932289715490347514733942076310451028209416268802574772793668716497505002498869497223216150001662075772360902896091373627595635099155435508628589350143599485277841098338073691011069662505374391059739233702210555947876662550249115629616992979393903623118654422472957955796550594953678909445972086216542358138104657569077390084302033018443043050872233744529728656406607724134325813106507097923561950241309836417392362507631786814271761918892878495568452220407258657594766375935879830630407219831739514027257853857344917449782765671262952594481861919336021428421281014934536671291588427801681768763078710974699567235820672732704134896855989350372021779948090722041849246426382541632246641456165153888440032965995457968990023473879289809772383560223194494140007913091432957474072556373706719025005976189682722919476366833293529769811034030662085383885897322412573437727016890094959184334185802073634330489023295871930957189744909104306883169978395630065684647061007839542363439799470591056386537142055257134963111672690719271092378354399740748596206376799827689802296791682063282547532018493654612433442916044306644703465542241777588371142590107704979326349870723394153161691466200772546341729556258352018968982509674742116430012835480408597694192630147546822597363283615556956686888737530278326237133127900304085420073187050775790795192448477224795865982697787174511693107223155080467747286564108880301540435870236669140755901454576463764100527849805536410867603845344550088740886673751184319329030198322287783122225847289972771705715049967376622051967886959981477116070910247973223040820736501317278106262100538739285979474581296639975956633653081677879987503319355327279929830639863476595153794846601595776199233305002217895222876870780506390603992788065602710613579936188746184377347414542303937220379914950554219715805077292846757943376199877578254874582654521389573581869709731311752284177550318253364144939265524257731441309544569761994667396709418348419178213415972941730781983225563020766688172298321303172518909315674380003107364507652711291199948505572757620178208486432950258901480130588645962986241461640171620391127525523478042325389765524870761308273156092284629002692969133657192522886382837792022717410381959882475340322044657446885028814274600617639169685217469505613708090163042500506299137386910919547710749608936081179670986602532383086309266688027154887115920451754280567115911775889543293767796356714170883360754122846176850248354388177802862349148975297338541029122044656888752128655414447761153239384818968281403907522382853249631821869026378455346724893130656899580719299784632408584237215694138598684484026704888396151559433482569444949881257263464846890128797057359910850125364393988903071279665347137022902635801070116063183257569801900081256792567327019864428136809844535841006766032547367181963246527390622351070893424013214594596294502786162865749078854179872192620516559828731932201321592855111693383883114762036528239755653192568530777706051964671824612623137871744217666233611966961915559084123597948764010082880372119299430814970690794624868674659994741261757765351421361353809373737756714740357682015963862485580930062849676008006752437612924415828363108391592229773590570080926622631011779532634264410059637986050133117468180855746237441938034380020493535889061292670230030083897216670017521168229177183973274650492527734371612958570914060325763197194751382943224015175175554033117280277699169756986758743041600270969613850451986234630185367739517634102694516170075852319299911337816208764003338265249574176978088230578198944419556634972570621516534311399859827506254516064342568807867623287899111501040846397377784344649571505039976867646199230115217301974793526247685954851820022293246785471787030757128293761897728657701929004934236109045485104728843097592551215243599722963001750751880115284801478428653683455855652611741925181802705561608209762703744594276276048324892316153543627297398022258814526312375999972890241040719979539814202315232431792935743533342302513058564478497756123576831744989164565070611541770181781671085718965190960925279288930100942412785255980767117119118365193736190441441741360575482315999170157303833874191920737354274617379268449593348609337746150549901976630729416679993451087959999110663008819337457290711494315724643362621982005656998277097201055126329986327237384346832129871972678777160951515663191434745636369868810924129181632815128840513620365549769319489930298468056289812595994462938520398712418518756887950133221864765924996285564555933216581601377900024599413901504444637916861046814517998174931600422375691188003049294968561271616158772373307257577192387799324433748313461736486013595570347828741604291097218140991258581654393690341449820688659706202726495294950171058829172431721238288546340212363696368980615811307253044824731577976399316962285359376985510690011255542083021763793725556982399666429908077748664693410938172935676818755960000627762428838304665099964343651492467693203179870910085600007799318892352227802888945419803007510542782131093934490158344376693832602357255880897344285799700396479017718827742274820912650703279103389130805893646571151754010398399683205325632950123982908681156691140912130111252881396197070086479492141910304242624043646592155237141919283535382412619289382529896290822900440114457075784659252576698308064805412869645728814215937563493058422891186757973069252196489472469308315815201608059121886580220841737247844195073788912959330713214389522349872542709904972088118573664905285739983019895363952999311281292977799330749770367155189127398544818107704460860043264849342570934599303904097308076839250021970513883744818471202258516314957569547716158514403475923823728029483112756228834703339651796241456978143782252762211118260204941790575321268623308760861457141570148291167078995661924285962964076311734113931131222864597206463586320719277157637686524487521289658868487064255880248733277870519350496090280596021228480060083345097237001755314550386021170469754939744257676245020602101939929946047212159698303876172373502205537714041297365500760241131023419380581431385934592152008538915933165443198510088591247316317463665399850172153855069387284108236085288051913982529588250685414530910785921577942509575185886689203812989396808756670532855673840917244476712381430435629261019894669441145579338654608531786782294155810677488285305581169663878311417246606712656510701521492142897531832603811085413916420325167053541685317609973404089825592013739212956143731302119316090037618782940539037597329035012333454762738366673879871454435672539048251736850582717060006536852467954277526360354317736711671926417385884937375563829469408147918537402426060585968061642970343718681403224030532203283507863200263628043144321430867449764878271363859723263498665806677532772236671967028313574812972168901865077132725984185801365310580765630836689166966134236708535287113648829990178844618509043508746728636929691856272747203424232956421366787388530795422233363493120956238841394086961609897488938602404174503107041183938486043924516252843711801324480937218276033986857652700416724105556809526007804610545626838119570147741864487967605419352373278330028825092233412087167259203788825452316246452293878010468148373451200191713433410928303152386588461438892896238087713953479764799221205294668536455166410476981213374040159876403379257377631379171335847114218439346192173230267641286744399348489069259563707820667668543354510188940486056218433786606801048175670587162652176618201437071242136314329778218083544670478147161543671191154684699421759072123987263884685662605541389400005390559385097943673807398837480065208423151316477028866957980887104081739233993417629205973699857516264731931695709374008195088363070437534375291813052682017219294406335451871560664473038355975547714318904400212455663689375906199268485325887672872420536082294434188390854360687774676813458200794267765422156113592773244051945174877016282093467362839317592422705276971794045752258315645595198775857820096098861340697034929928407366307531457835652345108161280064205877028786319126525788380294821663184583723985590135478501800273220706220847836994381796256389538706276853540735989353208674251208610708621422301346654821818625575759456683253081036801874019683217400335094555721484455316284757695673337996773115461126164828420724096307452172644094001458442617627299427070468384280447383474742285655491140639991437013007361088188251597993989242499168709145603218273635769777053245344374009837496297039794632375335210296568765263618237751457593621741291151561509028771509437230083958687411229166442561895270400272657334513217822533649223687634305747768161826503808744566309801881043034817023913752013941744329281386782683180586200404710773894766357823571187560946062537265319466675344171351690466113182552798800349249328001322937406622479102942483379848430364084800954560417589490393366671033219441938451111464730368291632426722831905980003139062481818655021205676822384626594956708627433201285720227177847133791501896965063366503796553109801038728648831971590859240283702488104298404930851163252924267611666933775057948279159517444012743161119511207924714254159710812354656768581149660119152059976825626488402857609878800651049878024438281985196056649253473806803948511339584308263319838377182120994656157857577640764845762306820389846712077609860574072364794439215239926737011496584918213394247937121539827474060567076296069260032274520590307246164823632536305967004338306354520247452727288238207062130355223596818267417287392312713013704419705496649985325218239238126389898773298066683065201477863904782711962045213594871862139629973680575099310997030900398691637614743999142744690836109959372253334351052412074951813378612762070924022601356656309576544600975951499604262519405082647054033653218426194984790973098528681012180079656256845153829744092446985625531322562426581537175377069928858186085420545135794700236551894127808837059544006921808812352338890757523163723595032915149806484093884784731372833471525597169163611957925487469063745187442123780527203247415457243045350458845035360800254061651462027191766480487299489826418472612801368295464610479829044867611203450788279082757915647094624269105407357699357039759295981779650841831701548450653850487232047063562863525635483280560755377067964594710191838072782155573620656252690283722572226409011623279770707063665795719764255612405883517069921445188727297490223704223119563572329037443691276166603615061266261387949164366452600403227166350027011806177853012947496094402277157285365781629575018610127712727742166015098299173750329082556631744251998551541597184870937153020554593130320111158677163591167360257964206711482401509242036240690036706683841870234292414429590193077415091965369009524323356236904274632932978402868575288156769277082412222271240304028466681722001231244049012475486072650108641642142667913015310519481609700286880626821161148955104952559069079902610557578615927433411234097731424950281918740092548136541806192788421842821953440186236002483728894262668994155374059318775518423877851166333871167049302440966664614261723157764596984139293888724494021100058443222232977949032249434488389835411109176268283651891337554270526906023637306661539503146818035214739153554892141128511485961223833750626737782500661093305560989082980670974176847777756641837897670631729383864072267966628945654050514220513569879105029755044406102566888591915736779714328583501097546283589828553196207379116814242455979991515681330229807166890067229539483244559555756852454848282821848884546858884008843373630096192824238457891456694192084780793799939064868940620340642891105571311845671260203490337154147758837206637685766640416731607606738951175680592789584448802262581137046792523283390007055055219291355160384985538942845705600354853801130960609261066717496465526969642269402231094860707756103952318513645115956458513108996670386995908653393541841167343033490979150136037313135490708639782401318821505948274687257298343328137904716871146890453182035539222949931736574597399444553792280912367853495161432861872208081511970544125206373465001763533781185650803606197771307351815447226300126706585263789534797554849596192661680707452691064403249671039076133731232813117276078575191726763929414099210621334919754766161604804442700113632107140824955358135833922846830678055275991033953505012732246278582241811060718052178055704619678727058022449110223777675250581487914948199151399862833087660550960839665463052119422275946656665805876725353741531817246180532995177320924652974456677713003500085522566053789906183516822512472199669281444936024146777075627555610095763282103781941098487978963363486024858987004005339870691557749057288102290332535623161263931948616960472842059185686817330526463885657933312180500508677253817170510920178622771351023228866922371400408709524027341495185528636709780969279855434414942507911504140402675504228553107321931594488063812636726898283449055836706871948864546359190017729268125569563998899894666489950072864050147385237229729640767250848999215647164348881494305559957493286556106090648759258054120649298607856513613322636483147480204691312729005857079724837429539670435049303858550925989096204085339436335013174552721935190901677397122351745008951568369690185477853781519007848070623110722705016278744511158530411272626778096430737942950608370131896678240498004527534270741513022582022720351846377450028247587855876706646165265516617191829933928625883092277465233525924414522082125132781138492002958340546348019424745292021233748403691084582605472942371842719186271417305263206290711922879177539900476127455726664273625695430874745747305499784345002257207512483718775630142328830589097809972854391893740656471040514354773286025598437057548744381754230562705760805856927438657920749409081414752443126074883061449140140210920507078813233226617398908670804588109017834557814306871846625241373282642227130240936266151056795357704466815463881269863602847110266477071830871946960165717860762646072143613748947352667352759413884736864668967354658288059158958581089857653366555961450991634027589886259977242358611031062918566288925534068010165937493573795517144893083637784749846657223295442731726636679436776125839114126817821892712142396771658824408386156478319877108169232093213900418809314665644852809794713229054046393043814733147976215641351825618247879304265329208598131000813671761149084229973851946978664569275793735517774051416629603636973008840201702157098476262086115960840207053141573987617473768183483861549250100426307130670266644628315845783888117534862676869606025514159512590740612150833133576984137932213724487479258228054908051596393221407527442950954622238206610328708755817502962812591045740541574266966154244458046360419480525947119529016138287371308185270997922905559662809404583235579527278779929920164156295834326049786372676228620665150635420194783754925657300991809966409962999720584501523345294412013853586971419985142271960836797764959918816850629264397602953044718180300706632614882707943890464505234936073977800118849669120404998793881073036756482485157917221877945510828911508357857177388411074851854213015442263627077656471321624533722923464366254739011884549596451841895580396898308040201921490294721069239681061951168463992363270582854493811023277734541957367381229399575844313068784915411383904898581172909768319736856330893985966166274989757459527196256174838585379714661737564724852512404258561800843067197600501285441243659793882338181590743675009337455851214690010261331287400827492022399832208643457778724234331529611869351117929511553927576025248967336950889890018119184076523904495829192199042952383433768678643774222025764281615792982721912471032242804834482283636662716832209755539926309186624491047750349443301086218454637153849296103378530363508672771451782337661717666002706004365840093021341204539258134626692586343423802621643220147145065754626083944710987499714480422459669754809507822492721027239350819503570387586574115740408463262811523139249500926824996565039853554106611901447508376112274072653781152964993294950258466472310154923095582597098306971853083771863124300918793726919935134695648425260102705543854299544869293836243511462801013791164525229895859855542084871324973781542427690566570450051344258597892766702387039211547375186577284935376337156123508457555538470887900509562834107737736215927267782514825241843211440536016160439385419532859379568553236980305331173278938513397937283259896175093338388817303475430652402248479040572541643591368825240578645440564987593365785210546868416926555559478560387330390724930874359852289522953862363944268808502636162828353919099718771789692751263626914996041287608122712834812720608964656999856744771774641973628871612534592124679095732977804605311376655491627868188386266354129067070048486103135068894275662254975316934507659890605353976375835032418962014656356849460074279322468570173040838668202364704200960111253057380766940604978508464612148939228938294339712368715428761063839612352719295007277156407045387686731554663028261982828663613828494631614646462624142532175877685750272960912560776476832759265448439421447816497276423792933529139947336059742576344588963699937421147677095618770968451619565496059772909465729123554407791447301172341273234026922959928957654167300114644979306373075728502557754403531922496887262968418938479080800964688500004732920121572533419168802985522269843010352904884720197875016555387529800353367125277651459830256936497856052556380278358223546042322361006473628186572788530361502368129133244198176383581209984878902242499278754273825160958175424122598702938553833862475466172918402500551024201837383651596699345956108190946806598189693759014963703560215170590542412586281261363665457598835163585070686160955942868396956583478135941015465792145093171787688817292087922926844337364215487172699627424952879163932562744386131870742482460218452512663775011130713524336865895771601753929763307856769486900774134637248092278003461670871710854160114432129440330201748033464311318218038400636180413038797433059439348603386809851628103968400360600817713151228228871322359592376731306224106531440079043520495675127197469141835323833864006369315054492398351340739392516663275384653370741183510151053724306756121072052112230021481941601803263271747460354865258763988629913410396950284016193937288837342848352387515934069439792398079276213113697221753819428361740659994731932241686817493988385876270600283178073270731588676173705834487372879907346091320303439872895412357676533071976796297749761156687724547917019886152418836274670480922957978742402633143251192903156707618906169012568970819862032436567853757841163680463314728813804850196266888739998961521269618120102819126997890711997867149120986554816156336693513131624268720468536700196421221940187692859615489246440359914182801547456718932037905975995510819057383014890564914332023960728101022075671618397848358438613985966878286953098947356996708986428828068383991077132181488249463372628935808995728752856457927141860680335865050669536824067044104703918509290511540917115549396462619289255981760730349267131988053027152415174595845764891740459493559620986723464320617760883070622488029880695975783289948342878063076855443634331512058182762466060156765651334751193929407954916505233763835679307243420797588508807369822857597137688126178319972107459351904506614254988603147240519994962061195542690510185279944355677477082584565367695075182653062291092122916357318834711439218533972438089946439350906987036276038753498643884513753001837625115848175799728788969610843830664091715034098562539218619153696939897798963441513966305961313452337858702832462902720483052607689524424732513661805245465428786849332263401254623005475099529309867920792764246428999921502152565106801163423575969648818982283198135153812348043319160771159031186392624226323430508556567216695086037427034301411748969842462144571450474855230776937182662033310442251471467944588013351865911876183173578880588446322054738950690660766431140918894470206949302723999961948203194098393744405482887469587102962899809743011723760417583925051532509946004246944355424478637337388865291261549806110522121031283378476289025919862909901633997818297139995328935286587356504453354147078309317913700043259876749999006655997394121326480878270487716754203910421874524142618075479198519379894009675175909254178265119505640644511657419093668357563571991085104207614622842941313223284959298810120633932732668776872223446592583673441971324661774444004020506966414734355028204717719798874141939050271406575788114410841147249358360199958784417250144572359157979026888033319734508868404058681712971893934865876791064343914271722934529224148197910657633142513512468505519520906334466346141351420802617620858059527388055241286825260771466706851899084354961970264847884472672408146746960797658073180289215659697826069290426368934540846541799966919648626755050527195164683586569707224750234641940026710411207941920921386483098314173163833523773367879385531720106932148699155299821648082415170306883784011306396461947571579111733564698014371166167542903536575014423944525380052238251372783459782533326512483325974180847243922367685892854036695562261053293750109737060843479501396490745623663030910037536357754187766575394411096778815787278450341539291933142573799011985658317397219802972272382152880907729122052277515282996873975766901595263751587966744939720709970252719267006166739780504049606876220442678392831231061120767136257506354591231977532742080996629476495461293709864449690450279230749997769359194669180226445084442536606508173670647560146795545865383814819828637964332202027650011011000804045182812198117217809960867135014316802717974042318476613107655111253359679843606554233421134426958686249139918326785776040784583097725711186220204034978757564668752885937212981243084971901194190034350361170067909871787989020205478179065094155478836991050336664010028161301553438113609270396113408260931157969482493255957171815687469848256205676961660971049069638053056846782454342669977621785623235807457479928764151290463720558063678527399726909610376030355735679056054883350786665756346012460759352686101478926568996773444291375560693663558485106142758870482638023285471904521682984537343225800975645676526151841558428173504745256000585245243111853636114384051419891989525939890421200994245462800548120480633972225792956356538195234302740530172158775420143110892643168076320031641394224213095708461289090557379316964584118383669246288060515481414778375624403734418294228702501962609218124285126530781281974134646410793542707162420566678434760231006776949291357014773871463356496901169770773527766581276665814339882004084227511675944556615355156900595256653255146848667082842489351733502141796720104508806732645579436042132281062582497975498403912810787078964110322862571610896352074584435040622025423589390650425978577163590644771523626086856846578102699812272664155777710796989371817848682882463122856288363421873386236770000357971297871675603919982646436130525583293522165473256331537061321005078593822691147146087996948853445061566011239351978564625450673653457074300752573261416351661015755126724845116614703604487249117253367897363283422659872894370480990191244760807420926455653246602550643710735409396478941805157089923221163486731580261124199117605425212844903712519457921775429631628771620121044367277341642878320240021724508933469807274917807196577206106580880304451596320540668771788978812464254956099412469679013956939161243791137477680256459672891896254827593393938573513108301489003615594308567440592679021524183274144011009524044151217689597352857443978697257770960059358484687999219389958177683009869139041338649599190869544061215505233879859385266456044596016470284797954948139256181792382631155589239393493705302325820811595309903757173772410259112303397693123125305694163720773221284079855237023742728709663003963022185870606687598758031212921315660679715500986285556861050885957595161933105611123773132170437099692906662847504949101728472151791996674319973658708438602166666338000628803975563200212764713298432567214573045894372836174758681394421695648336330145232717475982712669461244777377484155953057812902598284408766994686178100093839891817094054805755418471754450962683687251157746168449249966675667373538066928714915185585947306011012031108422848385378221932393631886664623572999144127187817956320834992503117622079703479805939704995740083671603653167709025328911260622133813304232470452907645805796888134347885874066821924061030676876171669740402214066010467203043301766078941404167645485668020085077311599007226834694168297553078782667811963318561272021100285313702640673909989087064777724478441005445087004030093249738446776078780012816945325898954382523594532810801024562153900482887029798641893339818255807986568272745108652942970672363667442575046239055011119102482620067870987289355874180784554533006701950011055424997285888092738661181103096411627637251438922108149248849068267504667805601965524869318838958151666176639073366126070493258610915870871022991584680412769325989739736699827884996152066571138738204123236014269623753707802333028249196348084301484724962753110411723439305502532181499531691107294010166277024870591238017668961475753896231484794160455571300819514097346379083477420098056249032436339183868317639396640564832797357516603609695897868238222801887536391677038352319917060660598113327879243717525278888135547065132948948058199505544770901922510399388202283121612902883768443150622313189329969720340483946237434187533143457701501883170439687005501335190458438394174267853469387399648051674123794610428424608818678086962352119936321509346564424569166412542615751959258483973590764218452869262710084541554610244220982727767766439601277389632987301970728185041541804821572916655618561010249289674217518768499743356507267503333423484629073078181507726775200541549066227994409816342161686461551406563063601541334786702837812478658513605769439397125895116178729427280112001201607897872074286021425137702173934101819365493038220572494626546200678232009992419853126297818516229491207907126614884934476549747933962265119002126141313595251097594284528345827926500480548343526259313955244036305565888615232826353972102973833411239974700417243229528962700546812570944875667231951876804978801499912793025150072068421954998454665403947184362830139294701551848286201046520079646785930503578936136621019242857100089824995159442361853503683097523747883214226479315402695753325358782897016289959298076696929534621167805681663009293061571893294620595521058979178088882054751531817407020297614340800688722551781822637707203612708533897295135482711721114493772376898785843746333083656975507131894620287719137413514608169899397640355254039375634035338497713617735988616006225666895538407481970799050644879536090481100617704864351483656407703478471089344927821798500687107365690354157412175232008327565936962214908888649723212741605926361159754161659623194171134679834244503478301248298972457438966265215870728592817304610633449038944973816968774326649038789939455127856410423709172453115746733563836094452364098374116265432897476873420597639336282224432451007675020277613715442594186948208596895923074708928240299277367444509862149539413882659923314802435686569549485933337250368408605318470773779193778679520192959358125114849352469423203256693799364484210001201295108692468248986171416592768243516986758289862532759620792740001319790489738144964903079097696534762798590501907845023824295867780246862220315462560896710700772701862939118237743310879504270718376477793877006981990651056328087129819207723499409364779909762378548904398398079857545154044655854756238292093467730214066901146694812242897352207166290281561222922394550343506553194694334058527149540226744581760253459506460539797024301104995106392353770357217940173018818967223856209332666450562045849340888084776982274426095049780420662793964726733401666308444504717142584052419133225496516882260390600666566992787413494152700693054937089127461788427274086589217472987180636956282754668444114528115553609770374201757198937437952903517971617556433543024277624295699098294068860137572795570895740582407315391128049019378321298801979676950371083786589944492641734348954475622898165908150869495369451430405460941219013842544393543200415609114198713752012819316766666312459792123388594745088933325982686401078102337291461398113759733373731250566059442594941711766823392869916379769565032054107276137506327833635588276433364878212195920697014569731833684788740892933959361253102366744773461185649920715908578335734736562743925574490445694085427064604331150126524616205634872155878270244183990109442012759266547723145989379268352730932962658679904495086733857544799715990334876325797656910402258677910811463906591414967609964808432609097382905797894529690607394196835151478628619559399973306159677420435940406983598216000165593302920021415389498922880454644532789526024121533728803235515818120913464511690201344739508174524657077814233986183479290827799209184520461901303915210698159636353129211434070102132465472036109603332814847771256942076057318710370730457124642535798756329156968574487611048719032677781260524089585065450974752345459911719283409740827284749795341301461683280425520404678221780166021739181274408158192824781465675375582093966042799862055263179108043462914900506266897261655457493354644873532059421864787137063686364598296524601310381121835822690524356545991231137902985846477669041473935933037843453875436466856620793274121672253278549506681902148661178132538833468428148392618342370135687583076854483933226051392694902419624341074159180357569329756293122537232654689558795859724851032585656714582033725878298754153859190318328790648917061363602412506842178071477775243926579980503665811770643158125502656028471258376036872571583530887502937903684057954581232041510235598684629821926044478900418348750766216879574298914552250366957623979505820614259562518730570643070848917172049051155525604194469006156855233177871697417364088513865341387727624849274928365636359113136792819703239115210531194223505571201551952972377738458639436200567779529067925812221626412841472051641243014191353313560658486640320412772729708414140963696961954582416845465136253695301853967762893599600842383727599958318781975890972474675847932836100054057363259366424971995485954011092986116172658136786736535116322764027781764916479384564405914732630143342907824945007830460049039660722448810204888538156768733045366809983277322574386256215774079320239185000947980357205758746778987785797134639601341289993102866620755963244203032666971937936645994900173431692434130905510181829425240694872717776155739643550058275874425706059532050264583787103965820579955698270714180985084017664910019802204845769456031431490242206217511431114502492008366555597795807303674812400953224433890382710364339820137165079485426795900486346597167418654349816964950722988459968406571242298455738349056681451110699638108819622028493982627974221654784175283173804621153192753759473249476824467807186419419607121202952308761111163053134445796910387646123900377903622313648730701589091159193516037640944795749825126150181274335458997459993327207773545551658067888251414296782106921872060934513743230076494068511298086414615011696711488480835932611142878272803838207616326067218353893488914604982925242451505796619436654625952838164897059140956088694427594347258926037903912969733601925009131515822104812516997354846289371746357006097114728691007321682914743935111473076126261861902784035990261181740941523735691519205873478169921639906540518867192191905260898466432586261956237555916889329908445181932288637511168472938182241683967009428517629785468559047996787826991918171967035388213060650446889330889468543798617315290981412538579488425771429412152534141266669620659016847738636204334438631588655348747199427457156781622790821024567419240803655289108694759648076486767809729399419420476364063276111858094345639268157825447435816874641394500546602777721350391972724436281977657099383624604178658860032484661158286474608880352115633710078322791121599487511658182925915039275681374738044307741898791515819472603861499258993094694573430275089697116728626846006884458611179946048440832510511504212631159657058270975078492003941462798010134430327707053414711727127219815279619021831956699045648530150632886429139770472641303821568344146311306868883628705011533998701908651752488600036125599432256448257020911732234692090826577190443408971142200024679069718587851428599956499898380931733600669028990298411911883419655553147096559646047689640314136345940157656997990551294118629286564963049341282088202369565529743543303485985364274633789034691984046779693574327064685081463302787426825800109690598654610629425710610134242562340844213550962167292939679293157323020331129566278303670640867625892657369383438739398987467568939516028077020294412891056051020773932166087325695980939471565160233326101194893787868180018147961601674878778571945670169894870366664751257342383520893980172961912579748226267715596465839319915023814362135308789998384422918782587495321995083671495148454268356392568748042476184700540501665737218903391856411357232719907684128838581386698497366035461301820448198609682894025661765824373405979737126816647285578019296784533340794733995346904890050334758068093423222122223190446983880291908127934695952299592118192941451893253587590551526353197076876157620548041193734612002215669402094454331097163129788245134396539429289169370187125837335397071244337027007067905564981101574924855672420757230927129515587858947408482637745758324770991694964450185601895488345251281502386212962020385817638326699464142788284280435393076126342191922378338106332267661439221531693116974502576904867410991560574338246868860629703337747258442367843416618417394940237573919366933490637005552080866069409771714069652272902501126796789397035510290515848849433412400199082654725783502123625466027121783492516051131603528205443610755912530539221454303472650947999064971912245705774093811537062756793372602344892222274898950714051878178416593680945274259425139904706633107624856370188265177444058606645366059463907232606814922631026298228822010928051515239122224717544139261455686042955071278529491941463010970147049196075294542476133753743525840763019226596080544965774157794097919724282339386481267844488850367237955459224593301002285333086094670147682813247538599894193543311961771035580555347475514443599538763898884994850547196071336903841911887708206925142604781463573244916915930803510877406160830736659756240361176032629377864328175111914699942133534256072096594383754805463659743418791610669861063951127424085249489335882845578476646464856023251181497583735784479051836446719487833009528080327785435268425748616129172425571506579498019514444952312745453985797330825561490695386631146436126969249083064442768777207396859330381597220827189338277385070929805291576098883933020450369919606885812641558856060602343349524419912918214109693181789863172201322186116859791148440349078378365986317766314268746119484714841763206942689801097902887639043780504481409182142098194957658821051760062574222018305513290389443932491597859425404900535818639352852302791486220996650285296718139377498611811507609473512685284898559898503852722502941543267009078410776258403996101166833191087523678869671742977230922216590939376491899399707650771562955646189006072183042089199899277655010422929978124938090418290092106637204849619303703675298520950107061468796807668529528975208490546906265513297540169493491091857413149813744012596217524767894885469429262601546399950321266715574096459648764801380919167518464651036154701202813951905867737906592290791651578087693035422802444766508145798703782502479656714108054870955753862054988167279181339238449077092152217570571337603631581712389194779126650828702346300223255078716124405373154027416928494173314101063091652431380238920462580904568254802917789284397339782900939365324495125436313381122844924476585705201324875068790625412861316494140366664392190323257060868948855792901390769794492635952921735464396950680890102356707600958005160244741077930537897729167497858468404114134661345226186320080318234428786884458311573516432846784246691255076634569837465607024130555670622637459802757620937355457586603785696564258520662716833162724761731411827762147086165903767177854035564935340452748524286131580092592337025041150519596149163135354317726103120186633276662757430774890617091825762324165869100308843704097510132949632495507977746908132048571955156599259474698860633815742418697396786795808063143113716563077935912339590195120399976098387476767452507415987948124831169949085501809307895627448858569143488930994344780865619474799918058173443511222490339320572002452090299511514102517237126369901870670535689088413084923420846013838754917445371061627798710971415170284180904295696490088010798100786495122430745124870293201394130454458862055104852693565317390224983950183601659359668325645556122993544319054249766399806013127808865714926522168894320718534741252930206777949662000946753235147218556664753702618844029954379824860981013297551586522150140883309977456201888628652993830210167465781013825565831316254756029180373911903955083454774855983122840522231825095777856727518916920862925889669010172309982922917362195875839304611407693196926534970684221486930076838701945375649611403473847732391061697842398533485269019914768961159406841143947329776424786899844921194886528873693934542804316288642934262301068876738081541727371550129533734779346302711753316860272091688673364051490612431935072033006939553597337526300755765355369849579757855479938470519209317193525696905543607700729623464813874452430560657968118186566244505672679457163255808785982049393707974451519757757001209866899159893455869006864703958497949704961917776328493109512011499916721429773174129958523484154323820821695338211056195373629809186629173620616623358123158716575651594472450604265410901344088405918020082834873074974724664870701341726684643429777013820540649402264272717583013288810697485191311299644525399937925219145676999305615551924517637191066262718229088695689617489303642649972591197673638569122856038189631252405391441371959440492261550613188559020550888752732892234212564822985326038040771122123663661511023117701416287722814337396996980428872286491674640978607198811568262158939581630334753434547492690909531180846462868882235569221275406156081515550921756017461152515068902269105962727324979901775207106515299755002853764270230527158364503697810189809670591829704778257377890596946805822765337460684970625256796247161616263140041923886299117393127425412411999295636220203135882072156492331032051591636752020048400864162639552000459559013097430934058089012356366344579928805314261638904907853329014891903789342471399701856107898321851720910729032055005563194317058020638417558508191887765283948695079150208577576452408934435977693044051212601866391896498704033095037556521787754373077887901931053798097880091633805928257950524076202710895984507458468304974252721614913811756825793628282501648054643024708516006814385714227660200837033061711440538045874486024911636073054115546987937570678453935991119380986345109830621348930147830795090782691800930830182523299440181453556277714070471344996639650755361659970129909134368716044110753231436571728698605136988326972184680891490065657063673534672979762450133124632548463839737143981676721389650040254511741757311889785065780705048413271680998028094201732872136450739830155468974840774159241079418471751662104273774163975596524546817374344248935005701285594791784833584928908757509132019148400237038404186961276232778205885315776138338731187297409070906502215114905764225147802798342910764170033182295652077982253792431588777512189380535733098317784673808495132920478298521005868948528932381776082744211697974914653705549586453992087578317541407825903807787693644752587511461400223572648945467192088216596189847284614416646434844160691304639772060714656297591561330083556235677690332411999080098276046833238101168707987816836693996975326471202293158008884025781543056009774961345863767744870398430761339913054467946086098239006873942915664104741075524578742921530806187436968132177264733377866578986713530724625616437577936618660555345100885368863234093083900310498205424664422463298372608835177510990312302856947537609994199057684212418885940811597141920906435831373951922871966956404702689499178581272642171673907894816789355005104036701114420199694208774478458226074471385862105435948862241417863668461529902341187358845805427121561530768365441479247435914915247187838407071525320978457406497015342309350740319147659172541413664991022491631656669538132827249068894195732114006091583329919437257958303266124851921520387389360884004256931861789822900061549827774707784805351850889590650098713963435435802486008951603817870111572284764144975785326136011614032506966310885928402400368845204940012335554346908784725454401488770017779494804974065519591449880298800758328641975994636047876576718164241776388526033878508327361385011058912304399904924910703108990746163605737071766609815129630814643906078522120444931662286229085188399364734398512959826224321553227759168719148271139791644338458106094226414879655127642973349800157564875316517619818569702055458475440181105226213823568671824777638055017749355147623480380567177313965498884258437776326477285114535688816073251475660702709529003597157813115354014846504494269854896079251949595240232616701902303720301816505097540419677735254032316760807734296955959425990664073081861059463820248397065366882784072498444238204873645429693635469604679070129491985415247951385363315015572693864710491983645920746073281909909772612745255605770374906164042130092189731097948393756356056663509418401466046884463138924882265110897371454708302168103842475467438319204997734546073477671193510662313401606646579099502472782952352384729487112615705212821088321273065520826288826671980689520740006546662093618573574327110850200013009356719349332395045939492481390655040982910444746257241802844360325032251892935322784609629540915905365935819487549594960525305820716274472630303008618155720096171885903162170708895554215830286826211379630448915926971846248540633821547362110564788077482463269869444578386404442158440389656524802192273086303685929350898493624773549735781799780172514364702743138610578804160004052782389050274699467562309299081860583351920267040134533783001310854767250624254440847155886269146757540671162645564594392091375752447077367256218738090631054784405341157553828958949711483176531324149247964749951514021642646211203058263319583122751096334531768500438891082438250232007027043307960708635363168609272282796044485418260368529611227546699464230646515809298138036602341657867605477246100754903998326248794686149465901347255498628402183382488879324762591443476153918960986587949863857827940188887011722157269601226942610185874007051356080801007566599097214895621985017138509354352582838257156425961839370812836779949554195836922392230705109212137471872430988993414797257018043339871968774373855966534865089130991569970196391354998173048013044750879097589929205496750937060747428320789025891657882867699583441648964728976657890522351788203318944235661468165932948708988065089258300351094499252102826692568064767450856144611840677607606009749935880819151792843014602686692420080168296605273235923339588181296484484572349485312079622184745395030266688510998286785138797549884440928576119034104921978434257629659584483610385110881796416953696584893732469808909009928464954853997464708637231804212763326863285768673983643118990854146629909846548253669173653920511641292900089238177495822225621421177133834375576502061154986251988502892073778769303837441893086041131342851706178456748081148343216197430734886242139918105207663855695089759637937044449940576528165608496096333897845093588928603686606399794133184374567144410079740133157328850136432495381572177523441113371642603569266542570472822907555276851317816833334449856225374127521529072805519508642256659969309899329928592249911020981260253942023550174341001087625631245339011307632406935474486589392894546738055833020433732483908272799600910968656332599631633749814546952384572673144711084554025382205729492239558778423508520219415755164208897380787141553454595124477876637557088648850209917717229544942016028534609036812399433988839351572750796548055527343876048259993300599994515377334811553203621126016283087460978895551453298435325401155033164841099021833520181675244211346033576251025584873698538489477356163069679334151399255676572243733595151404684211980984387177359882427286129753637558950531465703847451019750952095609562545067074087942070931085600969929625147403245336786454640066246825054304609337417041098621516942028570046952075638347398026113308438415103699863409254718290540655623380778000181950437968568195257029176140578115447835853200322320874748539793645479309585220311830625003805148071293197672810964033333844661947359548717208700463083736572784734157100472068505518628062834526639489049602504147244251158842477236123271427694476977091726381917838301417984503625634365590648499365885288751879679777587816647462980319780975353361059294095402247236493772102568154450665974617796664040750133719253785124504562882018082968019611607977807202006236923751757729752562185733801641836695797495625911760633745147415582448704698966113032819755159699143146044489398840936747201174899233652301821729522871640899340342510062609082216108108571340743539462951239669030481993848416335614850936103018545551140768364206541383115453433624710837268714434785198116920775187373058279407565288112870493225525983253968079931006688335473900624822611538247302260714917024411735180129410322097581057737604360151483261398650072917264823582795719642721083421383329042792023852371589433361220650014653899824317594568751079799443280885216070455295100979101883220823115290313824841749114637509214783076826654764062880995613137265203715968251562326766523672595051604417928814510119644077862939234154417948619402227739283184039627511071413839769567966206623964884519444908776743393390415031885211150943041585519406902416238058239970048901041540912365564832663342826219512096936669535983653893495675641429586432585112789883388579010169806698622370407351625340528702043946780518264171077573671843671625230185411330032117247069160471157165840204893964760298637014095388269205379092485221872266516954867999972903659256658676853674017303811308089983014072713002123468546527810709982171095393792375901481742311198486440852045343291099919424864433513588345348308959506385657400365599236508213756800958417701030002586397066488945300499297606224787569952097948586854858377650170820293294675078515549057245586670085476610947529348575247718154405670365566625801289948161073866071621653061810179417374609651023080136118850442486653292984700482991221080449224953273958949605311192666167987611958136616575398483231985139507828680446135515112743975465158753102482044894379077628409860504136755276539821989809526427187911913838739483022482539991042883034882641880648853686879490053574340440688285961608542896670942659062420265492590862288608122070774760321213802164329740362093082663839095754574439346527124346454421355909654748264027202300151148595112832390592054237002896044630485382715780838330238943457082311797692321861606470013881236275006771987935236680165527307722557415319301441618913387174121652802488134849252633117969145396893209699925951421635978349625045407127318807540125621399212552999739397627060187044321925508148694737354641552358291533572771373560172106126361020778074280833966713888722744105555727274979918622510014811714783203173414165644147007160784396367560816820187495442103164561721577145947550177221914483358530637965706255793185382739492943863889544113290904583718202579651032991656033032864696346466017221987364550994707230663248445978216567302090740696796359654799234368468941063600638896165015871828518386283761910415220189681695876763271907489995680333091636573240684687084911374298687316839085253758169226880586206426626203120038093421641518424777979366805147143978864500202141126951401665136022844645012792724101844066111817498930008440973765897217432675706787457044845446010885463564169581064613839682115115494141259728347078696348111257939275798747659268494896114641169724083412328278048246330068340787749610162837291057776770597633116100256207339479442835246157798084181181157008784001498968948526106722664915742916495603031354180319733168801673010342156187490023065765868348912134719915887802688432621957077979662217724664930879747580435864078917426173281666857331883486418888305926233781872369403664960258509738399741729194751744834358563129896388150261273385436329918843648522079729000809602656460513951213325072638325069838592965460199164699376907363797472062292390401765055756455114024917408411759487104510170661691952063168792219388744571633106524898450061023016008216089314661029883510080999148885809387604968636267474544859988902563039722339549163407567968653147246032043860351714547816208270967086528465026039599743540466860329113736870607748441324321026093039307501268862687819852369545070661410346196249649734824297293383486665761219544965451267727811014341659071823157768737583451377844550673307156212355975011420570590725871453337851646158958286344067828085835104393971607681273311878249444158960367519340986818666588196256041687734940994247782419527018105734434186726440743982877991724322845350521592046422836664874211217556062449060427491104883251442967226784076423834005173073428672510577507826915144307498533187456668868124884267995384893654066435673916163656201007817938052212095579146135499273999563001491198812943347789485846825679775741599146028728481734559211582211338819611386069463429410436848837690429043733958418543847671527109043712443140494785249949879923266038334665492463719907581673803533430785106158690650390942332998969441776451881255619194980117807958041912234426136990172020864679264376418985500097350140502441708310896338304448149965518379246501444343239313433001837757008313200413600017144387083488081344169392194081566235191120196748887578127795651639237588257497141681602823628031982706233872328357049557536120151602256597413615387353540444972858272873369990016074953263474784029024536064869217409589463972573337660022846976853949178129728675124763906827785038008361821600951962026221196352742799830342327997772651457687093092949559984363888372325324203055235279057446429181460198115426447633297994730639338062683639558187299934473114286679659001069891212637383056343248583100572903850005750098729106230006511393491416593602881164697860596503927250082308990148524715703570283071980939372646466097829875452633368632235274261793295946433768025981195079469393346051276393103178711196180109366664034680855239815805033734538558482381741322072818834892482504216954599644420087070591586345173499344022839549915580635119239016225907594226402517660569363751981652858895428985564085202995103144117469958459131603120627137989918735837041810846733901791787562296989215943558359487168162925542236285167488873612404621763609217084286093105803588725475344480137220738963716015906009526849648579641514371228574970348236255020787903414650631119245051736080451333787635104223019828461112124052943516022097083160778796642743259109323055251154809088942060384168980701435145191819029485718585074762898020865854261589025988091455242700667468265587475282052218977095740423805464719310094815169741324067891728250908920782494184071752247368363919571416013236779447575619098413518162699332936658084903398385242954327879415138837975707709228516598227469582208435859527625150595254110100556706969892203711799415290991615815238666750350131463133456049141729002519475626460870362085518561879470303022502107430869663021011517777311747328766193742789446845419065852947855810272332766632389973542277904207177197388809149246166198031654202424305686496372732540707216606905507719098757865127510983584472432758259400070480373360768163653914262412529320645314878642679836807467423077297561094256135809157650071623109759387315466970887029128703437094494315893991429996554900219560703399183774989578553542512017200013970038125290015035713239669542217655939162145060015424538996077445120570453661242120782478313577608902125898349555792049044259872721392716583479820696365003065707154344715274783729294451306690984753058293820197783088249439595706377886950019169567265760395198228954854064992823662645248713398767664331626483224988278486374507970499192613920812278032356337804989215982822171768012553231067628037657082888072345485575596957830533466309982056765507221753681297934380125797577704343186110936531711835880208182048830875279796974865847997815312941658719526679343319689809244426004654693101644879936191912388533820164548616310210183621305831384875452366921023348814602986348367404655631129372016492849409140120052469969322189840722959699448737571511689407184066540950773113383335548532250431600992650595653360360681592272622822701083833406559607177162391700432975176218899650345319523471381650380298460594179755752145043148002586639159342828469580792608145460053975622115987497255167217901669261636387617837682809302835952241288173028579882665757604298632449088997705107432665857057518232562603029163895527170406288163284884501178558961305519191413460154773025910592783161592322226891890589310903993228736574813995261449507741233385040312990408989371581948615799557458296015723449499200446104337056573504773221001553730516861963692175624073075608995118906989378082016778977773233816673290756016413540060479353301717904480923562485783753047506577215077415084499103412753718510453921798578067056007331095388764672943867778651298100503103113670413376045203948568213255711428686272016960039809071007925930211244667052916512445677108656511553864834769764023052244376889041680436697618467682687412357467130265099810987844673017778639233489756462274454113648315983204854507457139799243122525485572056415739014942645764957732573485600247078293823001300514160400412777375633833654301674190103555381552343668724037826853733798822580649762177824815422428844699973773842033594695108237815254273451825925004913384978854710388114007039463818492127522584714121802356819197706466331872420544613193543228641665713816258454612627675845262402368068202566468658889867146755315493311435500466687317755062284430054436613784837674952119854174618081567671980372747899072674614357836454829960561964056829506048765438129289058029133808780990439843016900846617418685848522109596139055869602902194612028365939565324001199295164069631166813632195239759497942276115407921050637451560592613235337531267470319572584194630958735504418838609948842422439765585362062564439357572454703793230868245224760473907912725458266753542428506137511717108937859138278491933764823785372857065582986332667599297637447294296193026069396131605952394420178335250222354270704353167292365002866221202682227291680690086183321285248406466955891072293915020291011572722987654332203868179774540101983641224545659184117392890585868972721339130662368178768511401103186849730540133935134660434164720203757515172869795235463050934485586295876024036315852348510051221710225742760418646627144020965048776307853919803138178983793752809267446143177116584972252912107459086286969427888558197040896150476363499483074863295183200567450309100346918387052010225865560760647581015649454797868616573172403583175260584885966896345416147192163926786778977382801848769964400976396323675243449381692315780726561087074820296289587725602067203049230499580944963143252748847553454062031772671345045598375310396996799441110313348069715725616820366310680123651039881997054822248850531599067673083412070961248713972163953937684160936484326872298420278627069076059788879210717054267331816804852110759417276725603931341531854461208245129048854630261506142301091756661159423556788400031861639071295815075128649396156095972082669267159877789691860704045282186426907013305516987884935228393982349850960044787733360447038602209044201730221593908008026875840174583824169021851717738647290811162539765878736081563410950880891314496266002281952902909903228189549548330152674069182566146935871933182709296384852747202721748237155064148089245513924277734554616244897314728453641203488649230938616674523575059311701909943127126936710550386109429329523531931836757593274442912417948819669024606868859105844228266161743254599414106840109506561409910064991851224060892367549212641251700917485853464492518846824556560839061318193144607397514771094829367406699333690517999049768552404761071990438303414009318019615313137778394047051313967272345733034587803042171271399671880311390570532174821335082461532161758228703286146487080003195626585411704432644656074160532741536813298655286403778072670509712156684001201774374482505869339155597449023963722788854484730497378349703551551557676663986256395195622372135701393152531433000464153220625317778596136829624747344569514183404662900253721902670376978886674318994738174197386441866548327196664937496641358158746209091928633489835067739642155841574316034695427647222796639169170325312217057024561930386819733534320009119295969920861720992439492145955528833169559805030957738467930640768416467019426769862899634936483983961640462197004644187419635520074378652438339033051684913853205058960622472228771366953492614435278464480556460269743922720641672824820304261839307823290063488289296592267624244597225270682812599692277338555432536596048227461065707163790797945520075015175607960252648067404484918245352107838489437911090585648711870360470955373093417260355170858106130316179282495565319464110719503554327201740261190759921292790453376085189126001033995694124848613924615026095047930642512210860534060733404093092118616932655488030961251618866925565416821083162329184964803545911906279671846693852871225972227003879999926586343962547160821064720669266753613422216103595734318984075671130956326038480675917581425110560615433034102962981090678420693158421357186235379437157600720961900656193640868871617627520013813434390279960020790531487409680800204211420939536368645817217421927687973703658576970451337405144270084992903567584488674998020988607987068494492081736597475052575285192217943407413364663063182884684706417443657233888521297551118925655561666123747943145254349617255096811548669529325404169057171195011209044027327831024966696770820201266739907030295365939272727156667234257626667117094793437973694775205856110128714373342315507621879647232390943872001387211844735951022444441592163445570100750191530128103146531471913460430589421568783601590337508102494007528409202085305504913935716472753111164592797854719750800006530188733373887792682444016469866900349080547420825255804572436978458158402674122292027092052964140228194704951124444030934020136059150425259676516983552348135979587659212896239625988674775890585711029410297458366431269257934230077362655249238758309204625489885811609166236637376348288866956469051992753178058018253194545423250743651097622855908235225295311190537507422633112117250171493333782561204704727558463354786512691696609876049857032863550498411519192565399859780978874993081911372746303423368822514671843306289691684129900602460563070700636971576835232373435059896104489874476376961245151190299397685347131401983994733796475032494002105482461777393395533501250914016384651650253124178957628259822724710461983530052933023848494100512314384658136514217495408571958736037035638155860832188617616823011111443343386937554122544428627377008588554045124082876307079944072335562092285620904026220645173777381735576604276279756974189176510239858589509972626333900354830663314233236122224476861286404227634632013587423903012526194983186396784399777975949753167447477126446998983163206994495750907701890237569911838039586122149723911383279339788997649082917716489233459300360119729224576269498813834880237026531176230594815763918211206038193192960322482698107860195195824854154998444710272574725253024189985259270132038624068782085390461988140105098395516930391804913793635514903628926296031481909028948306122188983843857737271572030404671558225018925960923331727508127862884688244897260527413864996182313836387092209772684270973180405183974410160466251812406181999846393745824798630559957278136467924861476395445796500843136630893066857440960911573136351944706437976924370826860895389512641745352827770783251363787354725525845916882886829148945475125752724671458028846497988512489108097882833810210947049327511653929477659352808230892868581362216118707559552660937182069347559222223256030415860074121501355748463755347255724777815665045003596369237525743471821813415144494394534100373327297121638255182000397936739552682279255785112565813398523277063358252148179270648805909080753240255010625991756721346911279580910660522749907732886574032027156627775748614204455414893611359990193332660002613627967211691439547159949470714058004323388165734589609731815464908044077903584821196109047395715955623662742994417536679699334683369076229019068271245077405582193796628947855852538010978745565947269197509924432373485805584999158925954330788894754268981779440905292145811264754248115108869289462598807253412251826370687730956398479234430196367173124041118425863595398391614474469496135860515053204525871063876989996457134945253236240470880300978470867627772590164806003786658247404320574596221139737122786854888396358771282619445522140736246959614216423708634908456550773505960956143376191369191469064901924978258835943880746595788071951372019025618484578822837629575669000371086149099257536442343665894611784045736914169883576535627208671362689245860529987194367795746741541960423284638387278984078778847958558955477255623695913537204029542145877824816960426034101890777585699180452696654174283754772380869334020794784468562377816152847146435883503314524155488747887160253403631587008156798940685982117198728174438848494286917337604998290135054990612790076315911395282724995838929591482408550985713198018307424701730794651886411959769150438332067537131204741040161936246799887644152604266849138345665855381918636611548061931063960670826684386041093259188245373995792634441210669104412705881025782707663789032032433333844921335110515402303942743107882654079669131782293327939323129895392942960098895509461973285668860949116856266513768716117764437037903165348599699547435376694926585094080626324411918798146895199943311324591639807138279283469031571277592988646188981842441100566299624903126377107530682503115482928714538892030694418862481607312126953108770951422782635542161416803014658621324107180940372460151843430932511389080127671994865826775567557763704845080572012281018281172583409857455577555934163626718668085851748396433368808139185493988243705076134137127389415732721064127099170813956889373131586235757303278995379727882240409133147889476499448363951268788496208051133309380170645627715338754323967306028359781759278154471502391828466093696897964996029222615276928629445316612671877083056087774135719512625937839777842067403309196493177127610607429660335947088488527036774250162238564799763977937409680343983584444049163177034838855049231488184397155240931070234048657739425914065183160048963715687657032633739435474058268770009173145858730022402274002711430411712041631434919741385170728686717959772365223609095502822094863188315450222819646086847011252048863026504592251784692427667847195383624436305740250825073323227003313068809403852666069569640126479655713443406129795959538837560297622983002912295654057814135868134681393162199149081900100683806510227246363114254793096784346732924297341743426387781493985520355042858420149629031355063812283636196435391435191533488489196227406132071236034071804105732173065199057600345107500527188947723511393191579587096037661757913779466507709716088129195788126088978787525954712532169536612344113268242451599873727837899566010643180123514440900284859794672158585673305062335841594431675116723738400271879674187455864448108741210392312839997127902666412229309657143774594895498151260461495615030016742716580316226221557222243005774170632088682655172338293057077942509216757316504288416514628291447377111531656736524661208077715455997057718167063799268046870490989181533126434763695332166489999147282995304680003739588536629051376440362387876523477563759555456555632946027699768672092377695904380136297031086408678806737437330027896509318746736029137127256132036837146880804945142674488802167103141121390541898096817482237837854749279807237093465467006177728054751920969659308758319761658932853264050742237300447610457856994544336121367454422879947787867313256649505086021564974604689221827649591500216973739240159604267326579541100750025697629936263193846905269164907269102761642644857686953151487472243976216395552293600890121413237787839818883757015193858477816820412255867218711205659156863905890568795193215917286147171842183992777266241943016937553050641439203174000474431943069690682200400438619649964090037759683599281462443699746260725443888675868529525980622300536422572625113886337813366109896339859630941061988877861417372400609976865655351733430403979257051752273192110643531580593469051282079320217698927669165259077588550101954825166438587964271768027257731493323819634215100075116079806943984174164587454894164817159349594800695637240119336498714005600428501892754628567011947520060349659091253708738072994764670570973732334328288443054267483471896539596469217134933603697369181466471696407179751138350842748724620057862353989452200732967236229004049155513543429058284040382545249165376013665180925423974489641258423344118209379725276836714499375613184646249481575752189507482480536421368287789729417819063795599726592011609011508808973436736414585765209242411182904107594464171592470672199435356599876866921684761306476534948345871444217767773273296751955804045725816838730830950327064883783203615758981546560175399187704451457610942603300836922726088490478846080688870105569036830294013522916805144452789231852505815875028783137258024914071880512313413552309316907941315302570786574103410163920633594542381346527626242154247876156073867588132368235083430140424416701882184258547006186400182887761878530543773993390640461331593858749765299154702012211553726124579440950992335660763776507318342830325669269731411803717928539000664659213703355426115045765695690600707609543044013906182847872247004348938306833580770701330273280319317388824092858750493339291919325395765573999558430416224096274113199926541412897782747541488788118656328156547118892315147859373063841859830329635875504471524248148093672945797918996906794390102302273594209481363149950866069046707294407176005989210849827376326873358352981540216753791167616487824343829094736703800122874223552027665096226307421955330340739911964328766567441387236327865293038925213877574360855718064357748753726279821885216775424373452666857939991022385914444709145586536916998081420239831478003167278148689671315689057683996478139742535464190681243938912632634206011384056509628153677421682977921009963880273758359366197121095343960256077728920932785271831160631920789537371964362682269251263640592277652865485809303093748125441014478696006107694589227858470763466950318837275960486034179313979101843357380186386275352131105971935629929931592415461425243252380918841458764579666691937497050298866865940654746124795115285548448335051203153729548256781178591046653643287426008262158930471486876537437920396230599806685723618152950472947542913467475079530595785578466418478502899856267354360354299783438832335693922793374934775218330179678415606298431095740706694109576571229297871927478445417228706999087805468803850246228484249879377773800713221993397445690890611112490618366996757661767413144365910576944778868176875088378462196892256176596170722599013254885816508031874312749615385453442578281191307723448594792906806482235292453851563880895977245948324898694650174780844288252348298269291134849990544996932350993738900798830238320429211106177117955696855686392436566116961812644733131935096125112021277656356254407740432608908727397781897630918348336142226217037162996591514315925228276922508096165671897558768430068604006817280636237699780056934885334482991012101173701787252392522696895703630173695013736336216879765109473039169282968627831238756807795671343135549886266584928871154975165605053033656171023074147072645911345826544366905911983259726673405506399126305275187114034465115206043656271237370093077856384978838814532450230109905776000146059584951831711932360920328610309108656521407584900090351075628948075314775170682838162304129440144478289293737318805008480549365284065747100829812188333909469099871377029343356651177657161086734756046966213123702691649047134426421562396435307092562626720271399319011437375593015353265991320661788168627890413041338329879418184118708218085118688318757583081290685752244037131240672477226548980615406860907211343705210148709591509020233274846376838061947769132015529791312938307908243025898988085208586216256510486205013268852653266659928034418027518170120391542776694246343260899999466013244730421036715314334158731390404348246014831431489480780094329326991565367070812245897279955536838470498908848658611588063499622989748639125625979886117095603832503501557254486218733503837414839798067648660068122944636239027937751214074390770293126215621476785154289173323301816705650219113566009647382769491691673736783690383048225936088715222387567966409777660662993717081642698804445232974003260243403056712410051139592986717698955724190988234961505873708290798140240962821152995094281300699377253712076266783536193460371793242083309219062814642093482650533938174480661891167411778053125434123302863856000910451458160494292502148895298013801297070795493117412585697708110723703013943697731151429901550240690495497804654022223218836079061535650396453641463386166117115667406348950487069104907500745579099259040349967110909490000859340747904271529513110469637019461773614267444053450038452589489392090937900327167001848661728135746153632241735055427597095789413005632078148852702942105972850517126042885368418784046383551472707896530040181791433716504162148908146123128446492253709355482722328648616570611806963785658366400048355505750076949839918602671369281351638726430502274423961003972196135067711734175952086395635702953289645968926909217473535638319645711191088407974254017030444018822292338203723353557534410023685386034091472706138918394205649361504769172992150036005533332322763487000595668462197774691545085062951235169663287410870852278284861778285567319459383042519091670005994764955848024259362673989597934620808793398109035480895676018875238053274901712527395987272638116880968964565187088887150024223910776831136403684090562144272540744926131502455908396965183660423076539672786187752240015655215241305901196099151414986927287921129835643114325327100965255820930178822080097904791032561689210828644347216390586399046903603901598961252843478582271699274826093111621356058073192874907173696335762563882341202524531850190060105319508469944305940288918241025944281285270623960802493288027047272667221986322837570163183800180628163259064813452358912218768958451514881401447119488274327454675136798680518863097612612054712162770163883765410908846886897274894561181676087330189800354981044490824731495843067098140638978374604653282651794125941638858633432524835154074890266323343823123500415675509088166218750550650396915638569455819388556716012734368107435777326532158196198001239243405561250814600998959047240427449444757369012695554703864516650624369702595810494891083745727741023038555774883087826786637285466064696885347956501614457196986550800196468431608413599868864826129834767718724698058309292472174824337740672878137850448314476423418659483781408310144657194475902107246881491100053750821847829376050006465639468809714856831489848730079662621661106027896500666471778836874150023139334703894150408962850060409485951627260696276662831185754562939039437236310873962609683699949961646499640621885462217273036242901999510211800379455565384552183372361558535708313213212727018622649029844268764555472893655937754666182449800885498457599135585828770526132998137809718852722514850034613100701325529586679586657322037144509997687735487237512074811416810781311065125771746559282535254438524353605533948485884661623642394505986640455572885174969623588011328241531609201452590937716225298937142011355496471912882605795252676089589435520518884719333314033547474023071416105770048711580766903507831392559885972724764757136090438095755847909293307735330147265858034719129948746936440142193680753357215043657562938489704968859007711480281963104479045705026476717807020842181337585627864428729394048787011030564661873135945436937076319083204056214350662229924238834983793883574152543548224147843860263206637981885747169428084273229989052670819211630188463545368282004632470314503863400928732088547154023332388535428840227370957343456943418299447210376196180269491219197621818192566702357892837812406098757314078295022474683923050534257342339953463079451261877747311738181751136918721753729468339578950776004493676551509429537071518528596463761021880502187139244461594293352499954919252054621350909294923133153857903952264687769058177248894826377640392006191581439037216959582047863805218336928533113940749656457100525568560713238807482146331390591007347190084281714536595459959469114821676975756938922125399835617724629582991062445450619374063435108010254350971666043060011920878429122077310045104902280967875135736513319932865513170658045862425899477538140806999498364734338168851366063024727900103245647638588057480729647549327563501567447293462845469875004501888332217420768454528831498030932747811986819783200909239429162984173411202334335745437935883655072935852279746408573817333366271141066825596923514027993339380396005493681928176580248220010452355102986877414282663350916913163798758685131165169624828900574053273511523342587863624897890771942706218436470192592590377938314483775432820219222126148464764768611153463598976736683163285040784389865101816450016098272646147955987564174579514686258154070099804601972462537063090514483181684357018939999966776495145848622749281168392623727951142479329872447983678016464907356764514852380617684717811148754319584738005273416664851897545339631184235071858040556572840019690411784524104745302004071329669476557306524718848642556592390792161862838496426698916412688750510743557175816341860524170291041349660844564551714058432383602330989620049486082526152724471198077554575030272207874336181092482159140927093005429976419315018091332789191876736261750976269627385579461548131315261522183094202754106847364227023674560965368929308098573170015560855383166042468671954268711246695223459818890398439256326740242424498650543245701159697871598554618291714786188633074367109301304896640495896664821593825290596363988985173856911218078887235893958111458383945691157562773022940644303295687496037098750439739938008746121843951164749844496177551103075084179058244509370076233531153230150583435276759522467908890601229299956584204030544056752265066502884016178340157065181580265218543718589264756398697013068566900959610127234575261513636093434718409884329403895555825462623107256681194503647968717965932050150826120401224694245896574159479960416211921891884470297395343513561649651374939944502922484415774380935077624413813380450433162444330897738152055207337666195229751728667719009313929838244723220889449160249003896799830554692883555005303863785371876814507294028823492474705695070472567269139166506306050401085121210400017992018289613699836671278297915896882305920688739221607485192817380481243480543766582523207289925979994273341672170068145233999658224709740897468354241904310158795565452856979799188562182935143103169358599031487062412350495288735868479209057170549652647048899956223582282221037291744749964703893390637928118301726368005305834854398755094705976609988089129815077999372083758025087112207419397890776388481613081857624128125848997741029555461209892652104014602187014920712223047156719637260561481853851960679611511730439298010370556466525890812381330882099506886881648470845751390693978088826951087777436250454848786641707670842882956474975283634462612118474232740380211547782003243257449835997220360381807103221478396612035261346609887045899360560041247172076102905909080894570849275421570532008085114769693102823593130386344573667678444882891386701394153120069591070977675190794329451458962149180995098580469540342986500370067657872973722118158118938249777000509831012268817237934035795507469143498707688752265593015397225344917719600411952037404320791184641151019872501281526742663510826151614125649077766144739305678441216133099717771663696696107334693331409588804429145735239621853382001261944382472358726893119106451478913735681807015452617038863439920356933485243041662696522304826944006882979398469806802349717621472957691447861659519634365914566424575363806708935670864153466568435737950713316451739517765622392064549708120735674285607022060393045827409896877921882158022559505168483457457403500362016561145765680664011417888210817561784900554944975466065936485820332946054209881723301617575382102988439621508065707649679866415138889697428895029817566402961868971031619928110193349373584172176100389271958323007013988137027658748250482334074908232410488628814833292363906920274557390794321604642438518523020487342398564217967096911247192117990189543928967467456175948435723357360111455206456721590407696709769803633076230674228479387637020874374076442025420279480466654470310677856921548356633565735243634031343871639204521110227623844067995714956633370836687243847624868687608008732697417319869719099807909158296671702837378734090070059400303748682550000407227805338297146173932532709840241724323347070002753045808076536840176793828641951653940360673391066807485652852174047235991839179334377541367461579830706537595711604573574188885594056521218850221441185306667366679879922715268569659319459242529827961335490063953805152570823280664774507971329324945220312363044515023745037911740521561682390543311028228613965597097117561647259172498927054206615222564575467885945627914555296990961903359366661258979726238377031236755728870832863539667634024858855881915521591105550670687756029472684672125094946656163223157204203928008674794114626626164222295530471811435565949705320430726102747747944190317356432563350044280268549588759960456759082598835943291147696913354591498066913966894107987581071116395127176132347330719007331005777710787618660288551543999624973291258936719564214432411010413273388316431728710377293016644960578407952223582106616574936867016367980363186603023684648047474172481333672518765388415046535450130315290311085819713322774824270600391030887300316334699098667033330300718701698505516984262612518058380479696120599211293193647374299169118709469298469530680435673757922829998022476926809978380518159044718027031374189141031847254339845803029696638621734639808192672810089016820508652675836687268626535520647416253872345125734100256819500086540824798109627673808061739028694411602804324355033669533953512104100247232644291070275417578818472467032813788709330050830191329267071589866006374340741467375402401579555887480548112057898808105442138958064605392228363328393308484982479320970230604399980153550972083171636843171207030629752920034961145861352660166845955241857784872697117840755706833551159796101216965764685348121658318242646975898117941486976358530134533376781555794997554618303564976889547102075703430018365905463636090518352218178022552080330279003059292609533972840345358588533297252386041143831347883907752615958931596407141894471667359199185861592927243532450196691668700456067305842595684528462918692352509169725129668115083099679180369179561049058338459896634372082002135569200776928140821396853480889761175752319568228700567282591470640756414815235596440858306666138367236205509863976333985950907506270919967939744098072073387236843692759315230052224925345373412131765109942383329011571642351890734812564122494027728752870608374158251789682376773892431944340708622196087137485258818908232911545129980607360246027800119843748478881961134256791975575151571492512318766472730349085687188724271402488387988940281673689337551955499243753752469058466325842821759994735294112893253574169808274085363655407082294997440311876690624223650058979893398955238641956525049078954313087364624865926326267098586690955546943799558688745990073553402767676903451268569555254209404493248218541573660776031340284238707763918987986209585437510085968994140295711294541401737355624184457836853716188529555807611373578605145173860354294998679844114075787055744698920552298818234712178179173659365044073049405962035734344311877464113632930148677276450103548381061089572919503713548883625673395679380213706260592516599802984831702224033134375821165738113268776670105260083001320128120757907963159624073497442796327583876472699259781651145987846789791233095574107758781027516990750288905880293720605810758210922869741952567050808712837545450060833833714995321549476119023667697606819693181952681583806823404242298834007338981708451345681659781945130128531561518587434733827407769807119329551992876403336872420328538600529345213765787510472832594601080483347166860505914204770861435393356688566215361509981912747160302011145534959381260730162389429477705473681717820827353940288246542412934197388970432004088772494126148556270436260700666231201455982889073355666390301872715784590280500724893100404223510471624531573529520604613165677108047450890661996418444202488359477592839443934821697687452810876332161224434387398915637981734654168649360962786496191303231556625074229388944758773459485744374912544997197058365915668071340895588195465369172645016018091198996201271661985538491899777613279660523269921174983666339853281774694541713190080542519944048693141683580107085748689558703476690589341870741001181355910679351327513527809232196429808057368461496870554582520198722531493323802180850080206199231606572035323460012120302997599889958321586197301810618732688491561850145825857049694146127792994901978336124247305857965909153844903858652162319472279368159936066094239920066595824770075452323087531766470811048131963594172954276835498341047614962427440330191563437392686162613507758616985844850554270706445884445499360435549894562054791956583278995534108701053447220306781897252653165063460401799314690543746331683873365720913130875322607070388832362823734366557938700370382009612647625177314745911172862613979635959995616755464845691172055759597519369302868381262311770618378190300082047051654368447984298866459125545866206922610960929496474945182130936877527048420567151749930397268626570309941101160598005853237569652444496976234688660287487708092904904727006835843263592471517643954967371395913773223842634460146594180155958133056663548688480223572812206690503537764678787236057376731144127581586192828885244455202257854266403602601415147204508978684637944545027877034562831292354692024204984171736669299011219318027698394160361750266490723447821825663557895348914261469848615141763776932081780327137042672591035315566042254178485711518658951426186453145320201563139249705333815823925008892324000300711795476472577122861533359453952936379591401614495068697678483272999685362539535929964505577785660433189997105054554844580217038625209045673329567254249396051092195590343448683430395539209424505556720592114492880315244859429905210156664017658923416436780455773290810529325371933160540296987178190128903820030054898421548699954605185449901088701479193144830812191310040148038993001295511306289769082178411403959800492249444502728459205416133404538932946118191175723281763540846356098987684597051920358669245987853290384905256191533149772207377885779976841360547600896403842453638536625842668752203796433850394697432325072137087009346686506690237724515055336364292187412072724086816453055095720433208121767008474389045002006478303469971830187974069665074763239248339418989525274787943023303477124452862048897588244191612545100540052083363726963697375969891542027651647260518758076399133082875038919187524698762963730135596638104464290184944285951006437742504198520497478721520094130768521677911018680010082198107356990443815978538634376466685518635749320013906077447017514356255671430213930745014448671652496290814737146082794523869902920494604965500907743833961454214996087355081691979773764440571742037780768145756168412440456159511525123811444407468356903212265566070704753924270223659079517284294948829124050707898975486962626766945257516290661680040365778054014665408958185695170693442638068223969254232321265498269736850700550650686943719195284704925069078226891948615557483454528979702236053074483966030132603490322535818479120300595344095428465411429098302330406998978488333121720973969718166121618023075192898053342529817760705680467013583236578840312474015440446140201922188881223541634843118133729378059016428748667211496431816786396572838089670493270917860411679497463112578627396480912099148931922387526569951488513111053217937538327991428627183785374847928338163906406706672191556807270718068952613741188412565634243244398836288991500403394856179660862567895733089727101594606717296567588801522520365110000037465665266480914612428498709559785890608682996253699213820209658394276944773949126552223767399109189289500874596854862829534635675398299259493623256783634646735393386367019306367220560955981985758367820309554926029856623862815693961756463774774969169282831452253361726410332265190007074540867413093878168230670322939294552460310800104407925077340602249856752721919270179419647242826993303120994338274694808859160094373677612009440073744260461328027183632215238248248444864610399163277471241024383848909182136437678457404008813530496128688583998490572786820026742083526912777143637634920560233885546910047330779497529304093108518214490253271716388189721531539390439495243307912843153037804283596624680043105196910940416686372981761123321465038876090849094117517182861105869481067736106865840415959321142987795841821124125949756322568622021685645650267043384534125855442674590883416573994922595593252236692572947155860970086977687315889135675978223598545466387964931044842116673897403134411738530403989147395896965076033297888608025836399037341420203257631217604292922993624194089461906759986471408391025518872965728496772591330183825430153140924782378376113066139282177483078134206151215948260446520464681038264846095958507787609790010638379043597980398100026029205862865248446307044200471540892807908032177670008984001285963390535422929850842955893840100941757254557950997294401305515733019211613621574284459505533927692639961952284090942396575281991187994325650840020708027965512035349294218935707200437791848778993805848288455307144705144081138221468827818837835682379202112730446899693298820428325556037404736645130253862770454032500549033008557014178400846091665458912124862542995289216027976559134963079208533496462857394885844476955884681086212574452378315907272358561705615326610055894704167967682644318711339946754176039411360766514441480218052797495036206312050511169201612664546467353967650779720258131298181983103594413240318334410771621650936409956455041971212030285169701340823055405810301960292375548413996904603731664636102634728949775521864211945056173205482341020587644623674431772219337723562627733469134227995122509490998572488011727356641842158554408590579702384120792150657321632860302456184079975531972003447963035581957474854942347813071666874204877189210150597346673407538610038427939476625562963737715706883225613874952101805878163997758691567467609329157889920177051052674683151344347499614092154704204703392942945252167766731216544134022461139464051086541128161007957734520849741127951269807444736848528005854519222566823751592938618491886448798442592439303497249089693915581160238271280330849152830160611178036252379980469629671902199510372957244707406563129943711136183298399071036630137820158891948779847367370641566258055954017228755627297214278625425318515854384585146071753544854080249287265153924857590357443790368386080058874193020144729720549309987768731314196577398932857632300975862217062565531276496860987129749087079122616027923705728134315795190168432843365303663686120768613927054543272751405646349384103347208246212224177496866897325092924488312957852028319818820475667334801521312336554693301539350620829101131563144905884734782072649849511759324506860411663371929397537238848442797684334465725881561573839383357589772496997989396231533492564501665294823958188066650278657278938516830425593230623329288127248733809586223173464443017215563075553082104774416889437438753818108923423782514654047104990778042848646978930037952633898351171735484640127322256087409861537030851495328451672990988090787545589911940994347851054946323193399261962922199995128263333281543771510319332044616309910596164188590557329116443804533622018238924917570053931645100460472486815742646538761203771882175857255242437643744591234137996214904341973272447502853565075970338804416223973578928780626395960946734675747095002374763454475165723151951812890490647694359041663428482854008819402062031937433541984520927593482585456256600988204700824792553377001108023186065097771273326191591325653317693735134881510755493943532262520944537285458391999339244683128025257915396822691563610670495641608109728730545886080227832725055746796553398015912453112586809362937884342362239359051842486884672751521143499738782898134534957467287644403066403822707472067874469369895825685770087036003476121796697915318852502712221632911027525428046257144283708525900596809295775994985655117206324410201873249634254434675926313249459017757576635614558393365290620455859732053801975259792549078657879625242650670626540746651205247983993610365838101817187889876735826319102241334439383148961820374404385180583226002419467479301445307501099057881208360858988322474558684949207937831311321422463924381521459985941875498234305781913073256001886634912762262231244769272225067987018639883933013207959095690504103624695708121327641469439562073945757977467664087761410312726240176455673819603786040171107555262117087486509004635873008615616688864587057586170938958112533851228085372326092483148325757705992236672448009400027978776176437525831754066427265568327090966910302323146115403241689437482407632781103166538475493561476434828369807005018435560928752170441284909043290375563953956999844574392699648565933052426901935232156468726658531239834160822537408215417801960683472138306529692684726226681037664689888629975290116515490613970128289533170028189660269072022136620124986361030983956807038977162529836462179914474128854142555683704434366575894005983511872661769591269973557635537752274120959430069301807572400429601949283284690965692424248633687516633001781499490977449182247879935607113563328105811943934911776932533968097892214694973873463861112282657701684828925496661120751432795650567630269821974978592810386176702035247060614186601100663778744447659668976067768149144975839046243154012659881826782716830778864332199183350808993883600097491386801312477316877526239336460799928580983478038647200797491348059871823272859291841569123017674965070208857356855361208191516847821483306279480493331346310230773472372035869685391682176206469517729507678947758379721894220999097221442494486956608441665222595785437194938595086513932845489618039657484451999674393005613901317929650221571392949302964685808539186368840072278541341559510259542572684854901160762546317034657032422118525106139266707221006681745585064239949030468762540127874966198437762517958404053034357944982012236974023446114549490159928657710093009279752396160088553748314007948301627108833756922219524954231404315809484346501331411414569698034197877399663988682715224475538602779961688884806890645872314169466839303670096555927332501483751299483970151387427774907102314233842317123885812211775814503154421287093619361260040725573838323957591261189604676442632203122648680592823385365225569519886442676410054358439465285434138656908427096762898403844037892232686114471649636823919376481668388531584082514424401758297864332900111624344742255733127538669383027004779845798641709487711413922670705273762895642423648788762813767002701252274706363944103878360200198449607228393226342458586326764971148788656772616141249676113528521646573671073334627667176284911236559155521863349719939214944621714131691863765530113849901427587745306036437683547489238288426460451469176078785756516881281175146300369527508289899156034927363082370851210609283228535670918139600897507522483046594928433919317693965843638367781139690465003860492931421310518625313384103500374015837833407833951702148008826824220349917572352941879651645927248942624430498941805926580623713729546678967718751986324591030061000895502322719541175474255492386192285193425004108910819098330221917677176496377453133957891581523881382035313371240222822063627969129739047087856285385209429785945381181895850804300932882124747485149185694307710590836661976949650458762049863012268170205497454249508734339242569071109353215356455573188629699439492902437591007572355710808791392662559588840563615839004324163321793989598001429173846673934848632216927530745521416842043840202390608419762616439235797227446581902090281090154115596758976779452443110767384968136138854574107843546159775615906541909730826711758870430553392820040484801545558906251011160720693725214163613081083445293718303255224802061261640378088505958875256887117229934323562285582438911159493268278517999487374971461105305167434803454224647276866346630102756290925497052650763590923533372452220384926015578390909592638956385062774261550316289499859376623819746444340473291256751300975673097015262411543759982042332569597057107753748003778449323592793136959900709621930887413266224334997230901681152323849007274051175698667697254146040118972417698007390261468040100155681325947483729710107020652479577108041554688098498923658458301129734185889745490950183236146756454956534354276378810855646116407175685581856888835812120207545219031199320413695567338257778574670887263609255623051801649654206331027385071240844351841156643021922117170254507115712373577680668919990844563468286047861962870969952317190008759202471270722045049498384405470177429235444993960920660195941262098423650753524082839332120635767760598115173162477686521059818746068918210139769623576540778135077546298877464737302479756633052997311393251319532833373392584843811911509105657032473760601365781576871858407417118384356745693449262563634211355100629524843402936190526084584288594512236178046713646665521252170003648809521129035597856598831505967422139992437963383990218386200407172232377158882082710312823371438072858082802059167780866550714360607117343116337377437158121720035125033835226191274330982058188670212725396211381711980048868767194664980549925691354555742015101748502175644553250715965214160796483687975334251859525184438827081708128523134445738369838497604523967651017580449580074490502128166671830837390329393845835999524954818314981645534989952905214078835468761930263770858032264783261737227715858686888000730075560198336032804571157498602089007101525477381313755288476946512429793513836086206001339329924468923357482712691891458200671041060137318378279562366350703429893861192599369028057201865566201549359617564557652480993839127677663217903322234777895797169451580591760926355885953844195443617919847808788593458688943254326862867902679129483183418826910100521706616038955288151212165739989000448578123916231953276756180407914353017782993254821969937477733914335258922095558133349784893698571598939262849386223654881112369141319304220950247206286537980970088854707534332205144306602596975258200013026848942913643295260491672798154925330754923047254476857728220634417336744178405890013350550765802327040795276940382398490248744604474309642905264340942731570951383689937945814568114066578308536202015133738959651608711289288269878883993728598313061036140139182677939291994626813427526152396053047314002113652519598196601369068067236133404715178047008826926127478199935791335092833121702102486360248521432238177189358041221524604762896930556179247652531748793391956021714539964274656936152857180714762158301108022210537941137465723875499183026961398049750061642788101424332925923760160095662913702699535619338094562158503434758155384172791723142720989753084182566052081046162346060652585093706878403959806190216618370543431673971058401019122298225155400544627576470231562028083378388979706411593170146977489564364490481407322411666615176684196156110350194035801822361812163750459353713933073409140842674299514841439194133361236124128645030933991924244117631864419908408239796683435904780570872718405857289681919604596326991665046870820373030144441410707575801710391546228129365052512714544565869857369179143834815310156329726498631889066778141934858008539119341744919019382749842063510027586685465208554194926328697806864874571767219343403108717957985289275101622034250331085419277497605236907302364551845028127280291670465987014249508759611973624289735667286109340634590903999807192304885657319596294566734026992370783867817757229784050207498898496869066723566548563104861075528244616285144631878976990299157409237472700146707893215632214649880285207838378357416937424763279696680822716503902663732656045177941328035023166205977247978009099528455115454614366414947529310318424103656506479923099443189735724991652196120050740509584764121405542819864361866990280118033406291974519112716385769499440700413730050481533761865079388680022082136452747349154947287659486788312489243031794231969976706099991787042378203572589439686789836835154177406268959110561019683332834300592449831622364641732711157531772241480062741144093292815139759173238556386445960113978937597485454133182402765566976496668546109918355214173336621593455373394785411477915069498222641140039727239616891400644661141082732801288398713815842318915915735247600384083884870080280182585875279781956599221161364230561694915771272127706022752691525212703188037930468934342268241785186583292183519443234995479522119091775491888293419108498553362005169883375627678726181576650398037051911292008695898350700482841245937407142361706596815740342514220091186960146618218280308056802919726870581639220645797306026211029245569210666647110469136842241315771208136814853527315695641675290331009636487484601973600969568680072099782371597806579144049467143132265840571210008456241640258658721716423933591332998225583956472910918730086986250462992073499937409607799252139162160407266277043284617023507494735657863229722210289153298460938776097275841692789292059594269851716733056036619931702579581038973966214113683032973657663860898402813390422364171591913441953363911086099544664576775838507767091942802584996327298218369701040045550232193334833020072480177557409429204803005625791506486317201211823140132205445965386581306668690155601228011662498772070193647751856203697770044475044450466685607336756704127427596894627045115462946989059106431539222569287845986566862012026747124416745962117881989362348273593097057051172415026110628945080349219909772199037469213031271197725596494380032519315256759372987847573995807010227186537793949057429548987632605551699489958488930636319892611810942393421075440388590934737194722470054491943190677399621160154391410348028056800223182251049598152204610373835853204926324506688272594723941280509898951255738841942917503784756847656497224505954476824399316228741517581433960913776578854637579584929934201950228762440871636195397921382631131881065382628550277062224421798643708056717354370174527787000103789546482757809987587187961457076811545404363146933708428577474085956098087959728642663739003609241258192470348551997100740128995255016901142008520952149105230604648591605878102536621338123669645068214882042664779031140883707180435001625489192589884565462633435410264189392925727015478372952602123034692855624871642529778450446929385215073141029216837928498805756658327205446910137117447776094601798291305951332291244721944200525357893268137348183411010946512978712214873535338606281231711689655240118932655965069309321239616627332130976254757108271938534225833381524763330252329076624554462764508554343393032603829670758159554971969080287115390995088616930763962187764957625095307739360707138911493477889059516765108640873626189275152482783252320738117997788534982768622134060720353224508747719146950395013595776536872700751196582059694234545573742039634892685272030092296162177536674263425588738374814047937155014173472556010071132848653247782962393067202375889154064896220758295555497041609132389707677453336985980853306280857551029865371460830921402958640591257157160878280826851035042845268367121721496370235732325189030117492146801873458179853503701557807245843267494115739156402175768092466942291070833070342911057852347264940463283596559917876707814875821281237606893832514804017981484711986039383981455218602834195441053531216651037472601267344594444955209478962038738021383457764264802291899495650898815591974413382463262608840087539871862391210490110392091049809482440357851686585311857137315408037883148980829165954931595572257125395965032308875321454184916019584121544057464658271089554057367055530614459880654888914151060572674244038401242678855495387989880682622187048084326763917692742789031675799982297416055683744721476478384179681932160485100307731813709281714306640234117318029356763711911081463428868163961842035249279108326385498842763878106824561580203144632645310733882059494358411542830481494576785679730288134220299520184618549490646561596100159328830408022302878483488240721587054912249487741976854541173630247133404546763863537604143035797760335176927118002797119687778675985099150700719778831686249764615666646918714642979905836119620864370563946160529119403047917258370244562292461240653844830345836715231531325065634025104152535988115842855522743828961486305401551444492629647276148972977390938137534077223265811132444894708870868515210331421608962729617732713828037225331225946911603452910743505499717877017849011256020979541659687936568385706511464368081588991355446727593199638366440545203914951125873629843118296137288912324090378808758262558924355365660492845335937822118591248202755099317035495039193506519193251677313256572122388653405638894621051753429104504736636247647292886873458233043069477973568338601265009181352284391944976317761051130849342864779603958641852398741822173013804294260088788944669856848524413713482630050277847045161978512832466580762998904550903522099573315773918640456087850934500652662679185298141161981963352940045726580923326321994816021444339256780913487793090533248605537051914504468934811666457021501207646213866162134268263752595062437492363633548326654665078818743964212648572413873764841897156617513385687741847384561898668564105559401242611451718157663210911701053737526334361264310540787194592982763969776286410845655135143235489541990530149792893269825192961939314794559721056523992176517946470199526756457878444308444948501988015510815736062582818421220157232356659663702654766599290199237299017644442595803027922412914222632797598151813052461159901264036708039726443231200629753466059159778508277201670368463189161336758776364403091296906868210482129090857576342424186109877606423618877579223017095194679353096470963370813854861085255839744525759787454737276678274284299110749755390579897675651019276327647324757210637592275525095531362245476345145069080276586745111099730815408586192027756254792433466648865708103854515430886332863760127258172792220091795137394678293455872202999645835777074474784979800093033971814913142262612207765196356557894723730086666692590377572449244073531651945359431810458538814366570093612062484879442737529652953438724684100415740012764872954884183161638197243461656693691871412429377820309538399061826591516625211287731049453345326072023155835336624618982122069504612936210056225614459030071575400469330484665929460354489614474519180745396147835933540958241030588107869213578347721919784115454174402755126667351508239473247875817617778476561004434205781379921073451122219166985351244392035119036685162464227708603924394392545197485461044910831801515202472955019233540151783944359888715822149886324164886991309461626493294817805691162835337147216470348458681946077913947550827489422316842614304925579295087398680834897414826029195030022821917132772787671902241799139325719470493858670989415462307698352738726642278614404380381978078459006442700231556171695229258334076099107957062703080922851603477173064631904533431670107476458582505599901751231646532067996515594419616714471210016219934736805192826090293404206936558506526284714470070617417575317905886040711742410001932374572830563588158815688570217658414279785731223963947726200179421772073726817900563735817465365607064948841762969541305716663577551551355277190547966325913677318740903147926843880017202519054075319672593874018481747714090487337218298614171474941713511731962043882146162397743613791857734843946659318919497908875773584138737346245942313691277270112008334800843728789722363262293992365985871476076339329784449474793195517160021405923140659096257606835876369384189281594373842886742332456689200203079524364913659963564793523557018247407756608332958805539964774706794122537255112916253143354385202832514755198200733054168762448432808260942250036782941671122501614530861530086246705493049115912308186467855009793898122790134238471663484980686486408913570599701642209745830623758858317118279244092231570178303281552317728954099374765677470452451936072514263751052742523521113834599660631319358792794273469171609768889957467828911203044058960623323583987506881822836190701243497498270289594372008558231445336443163290347226106527846151868458201573756688253036400896101755446187534949777799769102185526622380448810762881683823438984549783421016841519579139361049872478761239324211430756166290430093930908496787712733720306893089287574948322642096647255968747582036705419230511594650282367896620720283767509069820287037536789123347898477835487658893422167072115434424996272400797697376348187228689410634907622844712379738391034717738741887400595714798576640269225136337249492996328735372527662599369593028427127249949518875384258986871140120927874612414068941452350915127513786943973741041812356550803330877836010102533462970802224523931448210633410422079293676404157383176677368556320318012471695435701880734004786547553115480002843101257694047764166217957968300420481270646874793189390447089261229126722759398789817036801944655449174059104958180323739669272020017594228972898759862589997995032492897942222464683200847919616837672959907761306518703475301387026425496588608675112384738617402259390519876874955343952751806580873158916279250617992169752125635121899094173416407013742054085437586005495563001088869230769135071324899812997295589298476163652433553803395632481935515304110145370805133654092390265205241686084856003813068591083345401608648648439948443645891934819885511171991008847257007476621872671673210273393035050996548829526131007584865748154770038155415001154875865880668280314238175279774495560209887200394643464536092172894611688223394634867167835709561538408829912572407698867164010144397318456980786133813922631363066600032115508024548480727808189508001873542163207146886752841472100717898966432228959775032709700077202950477969866054561605425777784874564626333165677003273517799490132138625275631056244901548218017771259090705466012816661164417079897075939064373554740974363908263469737181759702546468540391871817299901315303091306538045260489453606051105195703701091171784499335736623792574450919942464668869695613852917908213099383302442296469668831352546639611173081225338032657669055468015024003299481362631497368672280890022753034338034183609763943041884496070016196351837523847654845339546466427525858429792205396721324488281909335183727824832690898901321289438731709536864386411796888227244042416238935263091152479913462915693604660830362197373344969487439750098321401381343629810790661867954028210518450371509688222103297273083507681150663151995222059233088756722538425866691238229252497161320739450272623484556135613580572783163280350832969465772947216570322683510964319657954720427975384150685262675571759190033135677517719208753814908653473529737512531094451153361045726730381296752972007036302269881397849806444118098048940012546880197162594312060406335280267468702442897810214416656896358567918103530504076476721776214979548839484615058510076495137897289261425038232707658201616137609659774481251385195188421401817768585742554443253064638552963955466054241479058413390319030071132856087257896619219016934882987455048030554476297389132391805177576725248684209549202376281878480232567033849047703993662735585764506586057899827631556352143358626022722489907241886795444252873226926733131195841527329328080718983168535801271483018949986680757976403665761303371702714927951037435013647240814090519168871266975576143946276801725459217105170472744352661095582828237844892680607615006108008397480636781728716121940502997490593759351259399174730561772902937769389907753246826440492703701204121383912572579270335897947161948252890024783452354913610706973636656405791223809962577692161360345438560601262949939654730687493941127062035922858258000941700265183003579772033532948791820080550941704199123793280454300699285833257386500975264974364075731152186760440228179929096672249145582178154045588588986336505086128415224293612098267357607296761346006364582565967206859520987073913655427789909687369778179926538593657159960707169232136474466664058873867611788480566271759697781238702857854739802396448414414530939990625988002065575837649267638639148955414659955712291214766471690666669017464651394856135397134057519240814568227696230383810494038652048024889217720385017412347610417699182970141091142118630291480223218969366422207320990763969419231205933706949430228305231834751015912937657349921259158225063374531046968761810859450970229200707726276666550890776562923634929620371129286695998075275928619110578787791335690404219702481181035613070953603798580383415880938399264156568740479615549849781346835036780854615513698107959116900431884163308587628899503491008636917618464160178996721740624751051436560859745519905964111322421709946520475237532146427409787444972188397961446843480790408726651504748157425828750410549822722795492814643457295934857072936820589835915452223685583350913105070345140831324826070842081358591240099377266247466843054699067368638858474129063048865469634996516201447389212231719431824711028185052968264009636952686251024375811155536441517617036508236653156618816856782939398378700819048814513061710927623738900158712414482328386240888289437791318801324774980398479844396585848578068055707801281056610549875969112348332292223031091625957583073792956386106590039535425597055639239106235499986660049427124714329874206508663715292544389233195259130038588719420315839424790692424265344562144962468208204341593251189317159499133816714069165230399006677285194479027978892400462879333852018987161510501030560581275431703057634418298062027398492981918816318897058620462551618843067872306432127804850583150230855904116773156692824202514070634686721626209811692051707418184987962248263400104353394766376316681215953227043907409852407675748570121070666562769694043530112330353869019212855094044158220817506869629020631129735993703177201523290938241275303221569489734501698728057419718956540573727931208059924662696997756642989438179686446919840285179228543167493012746930855363620385805112702693449222410083382778531567613780003109251688647575481143075868061011395584654694453769818777795147758942873224868278902504253718810375478474519763372752750055316413340081247288086370285353982312602331786164322885634011499371105869301095606682373885860184012090142286055501580317751641609158405449802593422292870210092987243877289274083387877206821537547897033853008583690848565717045507165014504378740314402267659271116715780580002901469619936848931548300090030252345667320861251481357520670954687335045020377220759730415563182089418254859597547943016520008150409336076101497579885101437285576938043971524004120220309800276964523689908599694018246747033700741679628862249504664892555170457091652187768214540599903212619647314593946095574009193666837857201154145524440756138680187499538238896749170586239253829030846335317374411200446767429645173656443868883523023598742868158127250103279514484048732275973119193993338678289565307280246165643249271451718509984734097448436076679637256344827609986389517282947375763529391071415201504273049547820911852509648650957701695798179181360326129360751778305528589608884341620219502883497607604357362772095844104861928611977822067325904847203283068140613907102282772979572043917801464564344613240395371356238072713287110375797987529769521432672709315359439340102093429055363566617313342891725576986909050159840950752343630929588253632160519289038947787659643823658380055795602756452009232681607064803246756299521798288023419971145265351614606851572911483463740497580667121104835737103169745519686627878322163485077446869502153933928471837840904682995652028122134353654003021744787217902841262631981298051940108920750809454563788905893187177378735458487597475492029837481730864966259564687490622577090720643256778936631568522734663728720706096823202276776476938310671512569331607211867196881131361330297615856975314182604478822715959767886285288835849461803403755971982397660498040007932307164659756140883957694813555422032530684921046140774964042935447098480698361025233963177336364644830438559525889428405561158251765855424109683661743656752849672124524304437930980554567751162099315091416275455500117833096389698354178790226162772956938684194693047276433619137404120543587286957613262370547457214512914674146653167309134546155934309538637217091184607243835684383994985252397311192039338580559372189132469111166168941412288804939533748196879317166662226052929718905073280424210988648358041273352426665725880391852810549091922996902610286934135774867214575351144494838740853890584901814792762841495543651070277680506287198066394079116988760401012448582431013439019565807254821058829023947898790767029567369146624934540721680938485197992232312157822314903241528317060296833935586172585809154982372598913200846525770043259689630371493555840868094263207997916386210018235914278305339259304337886570036824565764988124378262711777959715288638470230689094490063091088466578002299538426060291781251311734925512222601606435403437581678628631154256400577733997882762296420493408953403859183712720285029745152601648335052450177944034689066572881056168494443225058340344389698324176317889534631489231564728917006208489579079675035202697532429056038313399716673771204685258515840752715529152639858222369367816180338728810632558471435287169775296941400759852807178351644170095905543105681684732697496012495922167544753300438994923452965729845430691800173706621015790621833645344799451628837643003905573035669795459692521294299233298145720692061641508550649484092845493683242718361633763784526983155864195096645935466532569045786911278083340257645609842033872232257766495178225106529260448772113925812035646616957733367765325104863188081183865627458035434612244319696306065025839713552261578764620304355495365186640637795165014776821287738474852170474509304097663793290692173985691652773793328170126629650845371886259433240866990527211577316964859358825555081650339009239447057448217304205124770080151883507272058285901432943708984083554962594681809482395909515863134346639378866328267386849637254964226605042035814234484072953101965871923683613724036290609466274311353505829816002076499275739102598498314922757454205547539396007783702807621112261028037727131057350408794857173025317663082975321090491015657783255572261070874710970265788496249361718607742341355026495374247319281814673887698848122569849896888479909516045887813490883635724512268552541084605718212360859863390763543163242151466275796385468488881599377629347328057348908591310871056834332186262934842784812067593001748999635277227177171739068207092244974748712535229167971943755579151859029985492425904546981043930847264641991858959281793521144483767440101683796464697396472821604552340493904598190287503550730339611909444285990011041759660002679707505873450670371567598871380471406956434242322669468097040376421249450143954198141099001326624480256775383683438796411004007447780412515771678618899435236605642180427746134828834754550639328012825519996746064166072551357133647026086265634455659408906176511232382821440506353347275238006104184593721850527354541508780018891440398853577964298294282452492402068524108658274032353954724356925267629056082644313615799980756054785284062022567479329774507240194588364537571540117090690062579033472615177036433950827625857576886353823125280041412118685045701212332859586810628540881707646029818889681360475028502632378944387303563352475556912027065444032682687091456694481655719631148872061075164031323819872174076679956568429273967104290812415109092804556628662633835559054616596359625867057815433117268813812163713096854547598189848375946347983761733311968796659163773531339788531979575672771153335000566192712393266780519406834546629833204458641604790041532654859363611189643011857409678169960207776905159531792587395312880036619381611335712439366053633261111223056692971616040676096244674529521459537069747554233930374604015687915976791316757364324121064079873227489995939183035278722147720218771951458866088579738946776648470287857652544294657562409244194617154324109468200339988752817077333786577890115237859802314157536905500331355592390868008122879979447646012083476685970714020795256901181957154981967043330849416813803360185197826061300539768843324979139668487749025801079514941284150812633559364707767763100251459922004265735865692980043076000872639299530855967646605199187158191927030409175941114026148427790022923468014710838717151674940214488998784462545390940727195907874150093737237708664326966669552970698755643324239048207057243361223945219002647321365466569361287150205737704744780813709356081416077386210885917484642227360105120695564309610025363339730369578755936531259027808066219363645437099962969228472473856072313831530277119102300223860312778944786294078215185662750069518963546632875620774164138045906305149143668165371784113191430138346712726290422136767814839968846159892885679237844298210609386091903920448532801574533353683803151809018588600889867474803876632368243496751661684049706323650243763008811181306051427308071338056173702568556967944217038251285002464584900358338140530758879069583620949694625214911275117967792952452134579342805052160593018122382784208999198466931547038896709704885735325526818300858295250651926984113026731014378684704953868238818839155553678642223988131196646709302903735380361897961277644033930070493750131294826199237773067187552202595288878613864108210237746021309827172968928816776932654342249561091311264433444494620013694255793204988016517411713243216624743299084990369924386049044632891198416003703532215582647688957316101391749695959385362240292097385294542774043370981766934117685444595883635360370999346464475223345047342402340400102083529486463921189335873539956646269897692575397253419926294901669153010410591979992254430786991466975877523028557871974982256218428791279259721175797071201000260269128207666941535955483948423131064320479463680581502821571338561831323132393090048712645176599326356016748429748044491475663626301557478547600593338990730717289687724492904185468635231395207993477380139770310110108374294563631741635136928917743184470764714019077404078500967087334800074885548560085157299980449136358708418614673823619059242106276682883590221464575465976009339668006464733786291597566054952243447249276474225060601170545316130591537425208664001877493250185813193967001438636146573673987525497380168995092800623341216148484177764715228507641855931945406618956448200340725408143102196878217691108804572464569367843074137718859617563541710319440955027982368685980376726131858529348686228602602240841947766203998361676435142371469392454264091231806999731857450241921311436787398921058780306662590344443842796625675915230443337892666012922649984844640903025665000789317041866296925427644847011654064043076177900523284186666171718070254596647088580883492712804882261001378243630076491079399681820661756860576320329820054792399174020515471090748477536879676371922765342365951850287727454962693601709452376950074759103863178073753734550908820073694862802712823641794761119350947211018241476753138068228301762975309962784847139960708247880006788249799416448201124862785334030962165836196551145118832041353146224365946125690872535912651263067439274948736420874937340585150989516048327882917801114849386356931121299518415088199917873082836391317144290626435353076785589525028650948024228506538735874818371011337737056382081794122884354140971441564903313640795889925590552793852244487106628629394606968073070128713140886335762911807157875346743878652197012632523724327788293882416007431448715436256958442868881143178074792948350538792762882151665534077660127572841052064229508883124265931041303108650699354460681675438525192484730528723561627620870590921429624955674134591628731910010468755012471946541357792981982801339254528039920537385114318223685223158734840314585833864670581610555600359033119536398772223559380915094749260211813106322520915666670327270521539201709291668961919959422359825325293857117355152125573309874978075444469273854334438084199356062133224050000350811523904426226480718189869210195196930897503010641903522861571337923806901388940240962862303220926670694446818599952105240074066132637256052500319373417035025394405887803297226337913930758408923607651528137081846599921223196275140162428134199297756385967362137193527719628088331328415322533702777933983302647831595370210072425919102704722630604977513741155952910964046186123309660672866392764427831324613062959588061123541429020787744811377676269383209832052113855757024046335334139023848619110499213606502379655986474673002368639098413628102472270476598824626630006057962606063381778823351468726805781049250558097079479828189221736872653368159094356214040930909091114981105649310942584189160076016705062181559588120685681437481106568944174354041597562342972558921395781658616187819713614757764381365453139778740337350340557417481878519094478254706930066508825621039243297738420225180445806328757500508100469458315535590653869335404597970023134071830788640568095886260199238029099353726430067743892948043597489143619565931416426921064825024314598526219243939241900017938535021207801470195439927535802821593573558106454732156687848518328732698328070937656349198699606391862259091630808351091910096366426289251989215406733663347203174612364760995338515761938144702906718457601783717559759875351018800291547311056600245467137009300611423865475968947136447128236184933496993262583797259139029618589428721874418014722109295775788366714459276005914899047447585833399008963764802359949397087504824177822377129441152947820837840945275212672732601502310201942620315032915344561134158488757180063585915961998465047236199984093896480430271300755618733377285576749784407045558084116748160973683099224698911091325277914595061935677244928237633250835821794508972392222808901113784957643396966352537764019967925921107905134976353155828819220154608463755613567714762552053657614054664577258188670871028483858677397868819616108355489387477187807512376213998755236430278607477398406699253167134108642570414237406234321195119620637125943145149214690594637108397448381684462117705492707625736875061327009134184736310164792561351983133587419534026536898462522388126287352846062087996017897502648459188899788418579157321207616109472626602865616080896489267692439630854433576080726416507746676836067892391237352308947921826013595597743416826645997619622411057869117154656260353614820404630710138737251267276587823813648040347264842974697629706542728306200500636785190358638057340913859109501515229899744759205594061383452738106109942623907139035463900510622387105869046378201575747040446276373463721614414656744131305893865711505729635926652374554145241368669604110755452304284216117027216548108899772363737700397440506432967693403574200701588310144034040257667902287442561644083358886644971037542672023596849422622347342733741461898321730215333795625645508853804093869344124499830093041486782705141509755986308394717595580674912346756800029891845694065255197245556655492720179635302693605078783780831097727110177253811594235845444979803461383611433112295633220896570579146492974563894845191643709768231349421320014099767303489341624003825783035910484316032659816305755301745428714823594063166398620180350020033139350641203332171941723096218617561539923735120974291861187220437862895677566109025128720725042597868553046561699327417739425496475992601902080226944340572281511539340104673746838306315976407746061117227992771613518359994002283418781698628978399404072336841685674232191076603351378726415993596986537088248833025365383748649032684168986046020779707449764661300308203012140576939671529257224113905659284233663904010164147660247513161712343589470972695909022969009208548667751356474303740084950432229270171561156618912958661285237084584554416518217485065029984409635351654968762590763071506293696728594591984934674260079815542423136111633945885467104761214012919482345276673061041095645144200660984394406997571552930646332690060687387683395116772808895513028117021198081011626746490855895900071602065466633809692591850367894107776890659597741764126771341992847119770571527631116220294632307590084702110381567236348185605773242139988254792727946722618085001457579528021325378206892259296869778132772535670972804723593473222141580919779111988556282062825553062455786627999933404005623243484255160748330476248614418851272800342945211233915386752519657232745034511558594604967352938240887522585855131431335089433320898323885530212175401505671533159747148486924891662934578317915189068878839125078839714532295821450468304692784822908726850946582335714621742886679290899497538101053118719660610977164523094982051683760859135508504591354937577030930290314816688548655333812583654720564137419481147114122599185839418073415637005604178354004602110365760559236514449388283419434243184881329724305170556691841600793078877115291969843106269104427747554027039738108730627136274630855359583554781105680330206311450309192473723237525818987628977619268031708886120937601951779426647606582666105133510952127280885026751820043544715207183748579121702960455507917644322649373441385257651587574934635972778024284063671859791063515827828713167019008382779054892575608155765445101590010928069802829646611626439362016795731958845475539119176177185688608105233377811785636341841356645765446450364272033835279235466680627638227554449392027116690728878532748060553998096089141123744409394238055980137109745343865123458294662898639511441804987907518564100415206916540374086147717847098243130691892702319545854276762761130188764777718755488514633498811851395927886266865289764448839576959010414741528631942918856047158545888994551911573107291187699288627161724002608110108850844129527738058137653455869600426621728773569710782834506745629675718490770879377934496227662815975074474471891191790212764664041539081344678701862421395265895819665572409612709478791952002516624144337201009669906101448802355287877542275211559721948235821031419657840019612616195294501874193597682971033979429736227246810528301410734685725764726472524781098563379827084133618356791408952026688747465077693449856977044184056709321933401024161407743336116093891394914005120457580986966487664002721369197185603666364937183845365315697943389549888799115521014442330507811031516423445524302379457693077921735223142710286686293821001614386868350439925685003887627935523237512437023420425781338696750326615494431054633505863198907989666901316129350576255656248544909808095778634124354605149381127116958071561885786722853523930433445331732184008232867758077779753587474747870572851446258699792179830117890068439426539910428453743496099386881793045251196394018199111942492735281339010658271037313490792592724143451610711266098098450744023026200316240113907271002345249959386933554204598688984973352168367515714207381796431044971116190591877543424671915519993414415043311589108121036853223174569048366439579740681836087647693311862366655330641039961098799545193529768810179899235167764402601236148716522264966872849249306033840330777720291795243436558419721491802277759604949333786466948202885672685982604276828556901664139007045291527210018880888829720684053958980329428990843506337090837460242251835393272818430767070764430404321927721252181725667105218419435337106729726722013872831680847029001445197113596794059445879521178200784472269364142126461935980846879248263385171051699942095477634742382668339604086394793678867217787275802689697885735194575531737441394434248576234457248505129256539076703130437662506642338010955546356492237954064064219947435391573321240954056856088969492002510121172937361173130098886682345676957124346016497564874507086481173384655070907633089419216449349451640080559878708097835272503736894080130132800641471780143520339036193533550507827409661170355362662255391445270827676327794555958413310720688315903231272935011441775394647199013010562997478350248765301495805800613560262881549038355952810733103664236526966332838154965069308459157884318966907404183289222781768438828903243688934236948168193794221623765450028642824281288182320471871139655422515865190706946213978428308067637183121970083886068182662394307365784493883098522761641043145947312571293769324909603296679302862301433812147315305726702499597355000731948974399420269732382584959403989657518914963057695602434746865964231966666112636683974936953893475360432664106010614916649834939863431957662398719429861887249911427918669612120560848578987599449588040726453338766622560857389543331064323025732146985667059251288861220310423150608635308936666483835749064105501071289652155758319867535691141750662282481046931082791349060763858286170460781520484420014087363212361442408893457876032193469159834076315256083666591027684330217280025540437771094884179229682551979670005049963549452482500886961924177490915392052205462364669074894803836053832272800820431067183555518215471584550170391751246453918920130320371124320882292079687476323544788799740467643907803663664999908393854128204392199167588229718317779327244058234270117238692480860943526019331084833729867299506835809424376007972273391152000491129793009560386836492599370525253501171288737605579542893173030742834273501201211907311297191243064160186167259983567303517657446660885487684605572254004172420236913199217382112686557285063684298462682755413706520980430817707961354866607499495405024319289715309394138285117954580432230316300929721095336868613321750263531825297542369156830717756559925892744178157862281524081650542909803625822939485954983172732842592779023214177593391612000172582577396997218019841170442474400602976594537910712710862929068843952957042388589316136902736099895306169733801030089471282325411879021547214088166912895533973284533976482754122852435150426757808962706007152318382989938341779444502165669231181569381199409119294038189630796747435355574354176291691532020871466029722540251987355626943282462498728488779780766855779519840672253438336184689933091571147942378181975965512029459782121571065404745549321849858425809941903834789210796852205558185257251794636265954901130967597568452702349110726319366411006832326403287079410773051894639634268620755303601177050798461218451567729715349418373573908729837558466429519130094849491424042365177961794577183609809960760757096819517152820679275165750873272042618861855508347922344805066615094132275016835357701069104535651642063720590984995717526373240422256007231390932942798493785142037972948246871819049151651960036329703482513205749242406772270566879965050056461359338344004283698620467538127042723389661506498751718717783830229525865074296423209073406264885980319939177094372062573109389119245214140595256608938871899502227516595679733663430339730513242568779977018867145922291993826186497286295047114716849587608008270851904458071638981006144097361762064592287764349687181772258803095467493788338457280740408597536746518277113499886948045725856156817879461993246048520642130615208117538651478476255481316604985616888313945528694551077076483763940092451308050250451259469979866739477308577339683694944427762726632473771245942911839223581593799623652559067724835453310879139445140661297954668974331553994379626199285236272141063418165815993433946044384763599486986927931146066422284209826084353785245726396596103222670116074543679838180809859164361506036037579388848506277451525856372819945866551216987618265929253976654855317748319544937512198304340682117115412196864470758621226608157285873002062918267078433375380133079906538221084388678214801358793257567216179200619570449873996082891413068066108413593521767923517321674616032550422886985587919844614243105448258740671780722830192191394901707326490964199939249979297613636643701653428745410598767165416721180132020814187990918896882987916245758976069789663388851113404720096427801085867841020709295724371496093582275794589899835817924979342712981060367883124716037897962774694049992540408634098417673740785010003233707763650928482142012835245001716788620263031156450717532049028425968472941159266431069515361099017400716457295377613120332546109733392642809645208172033255966825861017818491358735558525092620810973039305133531220636059206930415548049908669272542154553599504963952304748445780360821646655425113535316315902013268032356612561811734933538602627055771619030127431158602658638559521209072343099363464599638517867884379130524264699642371493347721698459050022293787186317588373810045989283430142589169957188829307278460262206096790375082991512898655307113311987827732466729377166871872241503591542675890432449715049784424430439599572719789466261807165429383932220195846875325750726598332672503586704391352298071337448133205337162298139382489364173361219713154111532840160440311442669302793114771624510123258677220000118622462887837515429733236898108728631074419477622547810350794326798705455619996049966166721500058381632493907387231962829992015339438865563263496511498965834192008695222226917152312174611678002110495535147382840423553630578025163080735299693447258955874386136439766043715378168778096011310685044293256807457785245656977312955226746615625028261872500876121029109506985975520029789018941316338757479687412241958987426216590939054926738458870518312044260581674881965234695721392455162861410510703722831145744037007899902103526853054803791845707507961032170380168980302302107715252757181874598232581840373452869250196795321822868833258583193448907542019250726455453325727931135215726838528271381850071316053669841186066382109783758116095621398011866261508812725194257700037452122055446668178141307969339123083547626411608369255432169808863801712241986919727290317797802837514401513339270925227158243833995358952881640033609748604436871860684875260877773558640698269587991184341836044083308722203134732951840692962617666062725207587062037059308984043287503228566975357818113673407419448701103041572520308006632911871331054432467352897786050124197439443343316749145617884658648885945949575039679910358882822949636641384278996953192571060551442761091271354836383404890505950219437355919452985715863245327941514661621766192209048852190801976602578713277162358505812164805763937138775418378649451208861806191296474514399418807810790890162753158764341944493102997676088963332050605091253811147113567354004125280275550775790390341624042061332720822157479696972480384992486641960784640785023693044966581975223452703940850351798581626488250419015253747827950517262436261764070763960570735204580871855352958401842130056051238704651926909148626164564285713174529787754893562338421417154211060357929757803116061926645861330938029591792454465010846897878447503813452517080470683070184942061656947614292690808385346611018705889355365385339081657633947579768052690414720854918762559553647038213715187377765098052625094891766622411536002383175117098745997864640648087552498711065747751443115759513955591717863359190155121647743252513161086299230928179329851708027524889812567853544062962869757514398734696489542989775980299114074417946012022727883448569423547821690487459497298570675234677122652358925345469478503712940080642069741128443823479882122569966279098400374549704553591064486665209801338850735754354101161521586443692391009527380212561898408522139472380353055969234857788145727641914908624578777670858938252836540422991505696611678263365632050105981624672116098783708912658140119550191779311606579615176471978900526231111849550934234416027761035500382664412111572883782861701426171019911048743089445368300408488321814984407640398499986720990337213823298829111888480710130798673685902228282605022002270193758895708825513702310178696485298460904710885168935255746556785203315319367084997226527240232841285107010905866509086349209322539744379695519086292410386876571435293108442440001182777730549655522504809936848099196012632418446488570865772457293265754952622042356821045165436838946330258354678516368283556907797067125580222862330594573731120934520953407178623285216576214788355820130326859066464405327690997566677504509167839157677560033554209562084754462922451779836952633828937454550670444520074309983400880944055312412740750287227569719470725076334847132996416547146572003801341501753103602382189141779470144478847024251173312739205383772259456928906761238386230126891721444534019569749821161484653599854921574701906960091110822540746529249109856137397496255551164215061551279685192213484887933639270329105548818659329125845671976850479699932342001766764876600521759721569932663179108125107047092484797321643727716386938415323024759211079064281030811252087096377427478062796239296075125847384738655345797865321475855835271872970769073354687221846389256248031953808996081385206161622291886494794905596219947228585760972854709196275125388954399114270237374492486811682885540056687914352794157727787556858336133046797241553949741073589138648333833435532614624571458645569084237749743768992089175784192624476737587938645828909833833630960188131362679369644139219645394812338709540866327787689396773435932708581744349324549654849590493498184949583717117338812447206350901076380090377804619362021874905285067467937908239617601959513449658511310166173759808350764142133277517460951890718339884407266847867062862562667812142790048562065303990145100948948413268749419377236995896410030870858860692570247532567979652750166759308737370024346801888266195529625284421076186948302088685245428446595953827029900044106832218743046801540032610152365763653320763878676822725478586716174420279632409577630253932494870781223220595932398144879159338952949141021599331355210282877659857696864237320787362085953374177721011496045324872226706556388797497252190837784633229370309717487366348635399563976088598815353773143071094154269002171784430448927687992297514989400005693154643867563933306701239240652230514163434285230704728836694167106272690911408537911238798402383006967264213847245990764740418652673090504622788559025371467004238308657189027885171350672106474531071789196771154352519963868665705269767927397906339666873155287354278496045950196832762817534399233104674182251194585995349304311214464452597140558495797850484530656755500213432783369457373315302072511049393076275695463937952755728564244696404971989877982118205307720181873307898947017782407640762436004077608698011783108848978419813668459779564617807855721953786437689198079666705683740675029163860977605941456265737399271912356935556700505040571423581391836186693940097064427297194466211986116773319295545109116367952109249351147555303902705321882361958997875905943899601777068983017351111237606870345391435756899096038884100505019844795400550124489864825493781092292168969369973920941006597252874742558281498049579929326273691077420949842544988687075151754182794331883716732378515710760025153227952436792899556366443168230913546815770372122533926609132241034310142937601198317334301896738396241868153800303786171824737543969437017814563727735080601429395195215648913136804240112028627816039297946467831629650655255932451834447567152225785858664001307369921902671899588478939380538093730030554434673228806106783631569159074631752340121420733021195705564012547273949259945212106141896800524517482298737767275944442808936437195454202372951553827418986618455929648047275777531338955828382791255902722876736875520397451616973179063088069072818808640535549382672418327838778337235004432918336159125029252397680950034043581826540245618238215444701806511928696727621611360542040248193128923393770282971743159455581083934110798483181064902066208427939468973219582045964484873518706638299855685940406319520993850775035227873448259705933894196598831547173166366995556722780666848566020569921530320968417701823975084199252786976359902857292737522539541363677620176719011960822305682332109087332444658687744465420578842150896423551516666292054212593248305369916207042895254726452489912481541148221186679611310434988928537663963515734459748168313671632792746493504228013884446400665827500886994181744998558120051611044370232253702493463359555745501100388698699891893281061830291865416234740523011017486369426949994498828657049124622984727988890942215856009917933840893215728959207926381188869161270019710233087890971430705746832753709856490281934150430282490956822024555524238840240255270036697510549463611153969958405412976660654315991187926824273717569912980917925459965512162716037360314025245992565839942513025120154156021583926710398167519219219445241594208118185687436899573112692134469285369049880426919186370486349462279535969033238951964492880363835748910153938829886846790411447262336919391646479092318649864192796829187484190638690730404853925207374511836173728653183331661321013547618415445964554938015307477600637372007067345582404027801230158496201692423216548117452178715302816593711825743431101731159379933410797873092580671462107456373424700815468914405840457012266856589625741849770251814015350535681002897790512947085195263117643123675856796448756484098855910946414925418135111230995666747847136827320614150433995224529029981078247656169537383760841145234229376177162822740819816419911456769448165245692141154028228804929234823692685422915837237808844589872851860967202296630437111136730231329494519660112261877206257836529707607217371787669265341309443224424894745110602982275838073282188700561625960465196201256546476682174301398027025990594195503254547777411886166292886522129719416734895841921575536354694096176341224418433375717923376734927011432376646740555805876183083866187968624633379765897364187086910555994101120665685521623066601074181210562747622488784157626606723214171786915588957462770813647500889809492054034507068921752257266794396656112265303337542289598238092922784522519868737057668377881720691823903570753598105442594562545884434926668318115036460050208871221359706876695639429922409571147915319403577750922366972505360804499590783737693340961057153808378303368884647729568063138877291642630326661911881107615165775886777042800877313369869250905379317642539867451483184281463925345952449094208754741234343393584844740380402743105525384734685753856046890265241537943416051301337691183069143835719009134793180291673141631936736873505243941903642786634196231062841985580285851451414140671223430296644207266117202364972751836569413429998575008147569323621615417639851322742804370874883634811613941855388038943956104173018752834453654578806885684286753506778186716340593367061113723478460495936791727357335066124912847091454739655984866589325041229389061173082774727538462065471740633760590011745461968815449782042119964688907849906340263224657097156821677155552609979679715795480031431805620466450523911159137704385687951222142270813360908151220818328935287691059441318719851839306852447813496988633136654213116652758348166405059073329085294184831608125050649392232981105336762559861304799734202143504889962553188904504474987870710047999446276340569969679863004804747546770742186421597119056625271308397899853813712573520700226779966606219957271287353594736077528172969233496784512079597958386161106347834060215610290912177693396293529197983761484595866175874664338798406717116623171020454719349956035107976591859285914596348782295222432629209035676268369093763388298868904918698938410823926550263754226828010419576104340846128479216857170515513059661997586604923196945541610997535929876434969556273568323965134549559114814994540862352404884959382337977353263273716755902499593015650380237864554802750373119928167947984141613012717693333473667806512924780922394378250490047376763972040439281494750617440151881167758342716529121572292480366200481620728579628796623185698712213162669152750168749297468071927688949641996170442815424811468043770095744448252214961665305081431450366246767323694243884850161080081935041520858086854642592212578214536390234079262741663972121700377967950471105606013885382684260071668207271410406226281088041833981424610513786079156291641857056665519326983798906283233404189946271694654061799352429512666555898164009378250658651848037481705311919081421470583386236253804694108280390336130113820859496899017888446707705833429848885133184730621178848511542380796297496395740396727648705316338473325802867759166405156285053910573434934931054335070684293068118016461246081078232227167447391795100807883801644967090455949949027804345017029444507008570848212046252395177794086049130263891517529935965981137112982790977502044699305691427786242314804874980743128147969315013085967509434461327937303365353185135515190366191946391317052249269146056006806443841204181026629773319333964145193200860152296023436237610035545732604616737112635676089985760925288665417741928040095902312284264941448829261666065650906581773631433227951233435039290622640367139702829230723794414644695996054485722497161039708419240899237689008715338088347184307939620555312010386311138289692237602303314915165561262743136018199465185167542705426221719706401333556479400178797150116829195620669480337477970488265116066698255814954862348159714232788134627691566598323175679616543202202868635058489996370172263161089014748272399148018486142721078477368717604302967353947588348089525736312830231251273924479938169342755405215208619882716137668532339837039325693706859647644431697633746178821402441602272425924561028724915990641964052989406335305248151440965009104726306334649910513927245246379692160471086610958745372513893265079549282504591270897098556743882755007765365374673466175713619635794074366669455192872399752325784775245550631108652664968230374477187903838128122447800903494115910549000227120930715858355276328387215596494050448779168935158065467854962156863798903750579833701934656112504618590802224719926864756186197089127397291840356701086579522919456598527179593859868998629924296564507303530222150510489981007441451066162000030783523055217318845083383922390868369971673352645251819414920240028461754456996407688394194139771893353171746168637282540938878073197333923371963357413237393541325925546591170187705263481907814876913866611072201019421518549644704575379382888128356838439419406021627057128759556326702695656699086827293933390128665586449856652128333133204004297467257282474393704418687989182383471269253489889192781873975004333965001376854029329118488876366977428046680051022944634974370275153468734508560423077957381485564398937770484734628576332118609736717958271970122536838566587031928503274003760903265905542002621077316696543898862710611660733685677959653100001237989770239996762801904345461786318472841372581662469538861688331425425672043466397090214802224046725684607780513096115412695746219680787164314072678079652391978283904025891701723908631054966335903125051043909615713954942462804040423983639059473329069499115395103497746278147803034418138250033614536098754410699712721928693161689305607331407717233077215516010148371127912021183336444445492800713252353979324372481026969783319188802012431384271512203040422626542065621976082362753921622949327584881640276948141019588938379562604801366508451354967111419899396219173265166309355765554948665357432418901993545528160670285401009117961869574497362264554713073804871443356390096666259004904252834518717531147703133589253787904094037455344934736585425953511216987509927526620569890220344274754182378724998145079231795147968005356331300005159041206148447646359421765727498678524097358918754142337572137409578144175851160415792074335955145640317457118444902290534571900086588595330125573118221514550940059626936330771940274027403716266396637798330276163547517517396724196502278567721724812750031069136698951050299160563967681842111930974279393647517207062679681619642614037807857142122357017000317967480375197063353251177672625661851976057485685564903592084188458649382190061022104028154454401838545997897722128178841117937285777262030892596695725596277907262533408620297104734118327189724781041747538406748512410888796288843308223010914535686738343169855134125034302398151833115936822444300719737096375398506112957465699356978129694400757411803847266263238707248824965916942944105396216532608963380237998001484824484274890867839857044033721430749139952499564704226545953406398480582841125271831071889465746344129532239542295077275424976318636792868544627280094730645554015375349588321996930108054095190260272585771549239810060416678044417336721337009509121430066133544444981525435242590304669135467762155199774021369688264729018741352325347664909100308574753581544979209041922874703985969532107149185667922236143717035257919051269036789967729554674876564272460434638466501558251203198244828250910822981762481872041730344050257654269765711987298772440792232354616358178625041533161646718764325720895996540619880744703760520128918758298172420068447552956783971507835840925801415674843990471652153406371585492604003767859607286979153727814067590824724811158872012467653472572712026229451091805725458648820099690131516559077192754327786522750376005024156673333944098323684508991427236593973205686880434526748416530970732962238394221224730181500746578202286346945041244412245388305152525301776905940065262327917108225671566707254062221123767090433953833483995868496071470263803720425679423526387662601171712577104060965738805512838896602847952373257156591358315299446326713421852414781045929918485235638010974358983847675187745972677674641882416440804873044704202361511561919672826650462624395470079668289909326160727596998883131210499601668126899374269566698884182699573093423934004256044289456087080226714333918330343753026465105545444361072368862680487895513279221286630610151111980780282436002533932997825398163373310682324176213902439942840615181284167733733104055352598528642793772588475611726594298100540048681419163126517499668360649058350137999110271774599615643660939335178136785912194278580739929503201900449334092612804036363267578291424314318385060393622910172298290028121883874460070500264867329567325824104919920518629696923480708041472444033375257870347783748720777725162810410049540520083891454539534248261274293011731829244673451889792453841862960901358899519215729566223284836018101828240508510184654315151395870201653928922294896739537331100419661241376123489556371483461603365157543731266372838688215749875441123856201266997522163121285941975495280309269847529809267971581804439994787288171526371970814801803708665257260917038814984679202905085644729720195594397138083709343281942482414060216195904752343880277516353926192981136400806431148619935380106181342227590563649800263369912758095647300294639182879736794759059512654548914395304449791642135419893363524153576412291961395601065652349815581503487556207125481678799883124384697396839793671182639517873665707594785927753317419366936929769272982300377248991846620583164350576604896950074050066630195245580554169558094824027195000599322237800233810559499339312823580076335165815836875637063452601840084873618579511203642623654671744573324100066566825918845344882974189296404944798964002343155334806001201103576881279651876297457195167287373533134649840531188867104187992991302300968362378459388796818156317318551035455145328843750770208791259803019971099262957642169207996510658429887019515333325509445340015192180352412593695010297976422517722549517540256224354808847192246685251240881527889292545644486321796045188716208941948194399654732447132826033511067773879213806765229914670931109455960302011576263285339313624745870140118037597755919568003119985636593363817797668255031916661725269164618352338944373398793874830457161010031796458663960461513249065922976053963215146139893486332493215726848481999430985992134960671267775243918103837236810467416695944852763686570458745705169434718568306961122525481818623221223817523849053796069737667169879073711068811661403793160497164889792970318926810707952874332842253623095023801666167237615157969030880172986733338395959740925796999740656511682519307013701397226136146288279917699219518280943363442376445943637646303899445348651101599263829579790382062200260184597516888352138980434860337442763848794928686666116226532293843993498434320996122236757394794114613889702936746710255388681194274444199598443422868980851734443140157438850761423829674502730821853700089101691844794880939809141881221119228345167101015896309508214225022134906662881267809866336437283961813758218075734346502040301165459235297338002981515093539405884501838477876262255133366762914449528698705049422196827837290164708577632312368907356796131592764384043419534482562917968006660461802394091383676231365235817846900895894361108528517472230209099478726837058369055648838752400307550459811771853093808409752080682905180887059772888366654984542547209794801552069540491213143174017691921551071494021030959413035715532686476030195916464099552668203176874444374211510836460303838319312113203264338491109268116280778487013767969979071733657674168499016218799321034474274585831428939597619030625766306090103455728316368750936262988648319125779113349753640309851532171260168298500875233253458544773167820188564302576995202018680810063973708291022249396661603061639414922275505759355710828588565899158743141222757138578668965064274762395940479065233820246984726665902801511471556542579499788671273776384031010023011592414586889321679775333731113808471103004804288566035406074087709505294526881338639741837562326148606344769606669401517162006649171342958695699325521677812866467094724677056099373844754149359096706554029138380044021608365189758716979503211796539062542863774528229640225471538612186144336840649360266848344823056728812235721481962465398689289282302604188964115983777807633359766507114066528829332648015357262670149675751295269154268091561119027825138400269430565483764983676014744664442053009986467918042947406202318094248457476090171894989612768180651190324379546480600140084922044301666001179332687063412162768777807651522979857348594585297473226985903308784680300846400220115008847113966763402116272082270028926864318522437551280714700697895345452444023436324483974639021541268457703067324754498874880485911113412827448798639042287932643216761676775563837585524143203109336844581777797449919161070418399978790931686383344819924768837250618275518655991678332337915042385316176926266675479467750371933951561396359337661994408785377322803011957405190008018419293452050028358473896163838614634686840353551502847965843899338749690024077990315246400202834364569683951939162599054609118757722435287826394374990763132082134538000584058412936980361308230889002154303388268832356125828023683595912762693747092705760697194258006131225039154010598190032982095846862021299792448349480401766698968826811591200690469144891161283096696150702931397003844003829046140560491908375679429245539396475655459024947077634307955273470776993463100368815704976314616600095391602772153542653450894102717408334436102060453527212416165084432367230868695519432005282824443828743158253257446817487079577025054714479461271864564571564710094419274829801302836029393495507807382945368309319261995430145249356042906627385020162767415507201337753284707271377572413081108959298557057553192318141585952931482788706372747393283417933650488044268875579979720801758158399294168442856427405147481401567537666685929698674531152662291867878740544591942210331128703634556964268959743224492846667088787183341724514764308668243137312578200559949916769629181267085632280851873611051806213880940839551941981716478894481372490896952266346594383989161856711254745460528360112719093302085481222703476247998528834493307185549030330693565337614014905325435548127382509318110750027841273870203241197945895963861915452696817305950623510270383097687931609527318399155124660753352407459077748756322466924068947623108845547499162936956916774206419051197310228895209870021156282965254374192260114125656004906067055036382896321100891796021628990186406733098579913767023568603654151574176226057952195868382737400082239168366680316040172738535826546118568503317049083484636932249067469318052868214227918450368318201575558756740597047265710446319551022021878491422083486669086124804432154691371575736526021168192126989264105914145683003684301976343223133344996482874378800406481515403734739309081536855871960386739105016888340474833066794858621521064485102179601903991234795831739024883164734789016549917092478970610367826106589085641949316185551472785555266332175009806589313328629999608366381003836408655723700389565306373692130290219326651268792812234300688774508050314614089120088859373546772135243875617295237855080391823497974660202248275958117417512382237499391080828698875939571725613769757437186392653952105269363218111809386669367881328517801880844026260501223006766978971493855000821522352731732446181062781239431923773611250657516978002185924990269316058907748658581032966896938501787985579052273011969872096925218046191554757988641051409844389253577561343606965854209316639612662960988555913772869442221768479580253590800673186526967720336123598079483102045903981287695887178206392921122927493110529317946895667105850437761116160960963028729676611593431800364070632852013328349705358256358164165666057001089100929514154022211504221749105678780630729973183824521811803117415471422160797390767646382164389754340464937724998611785305331861363755803260197799610577274388550490867045856881491567499273598086125175856170721566455169598691531672191553258991862189580440432466088685003518304925955482318743048769351217332950904881543502828411821933714036319451594316234130827573037300125168712087903663467586491735762159068473972391201917682190165941036889668867174202902416348959530668051074428116978437191645605771341899149390040646313019021006938245664593024842358713739037069091383773748874055581310985595982743494463993762884399192622498612941556662769953544032878176063604877390917273053668951571782947091058630533975052003658601683003114633195675450897715771701983835051859279544459653820862737035373016105920594970328170376762751192542863246251159594586587030387896467236401339963452940744572701215119425445209756392840546378964455032555204835453021890168473487301783576996644760335716933674399499429352719445333376973413019432583231210333792408903369370140030130973912625654213910611162074064760764363916461633804361037314134091195331334908290152048182870998312676294420050446558687704690389950269490901273562224162320288962581606915336652650236348302950348122399822680213447479692874893715875736430325314837995092471967063714208861132980562799641929315445424675133486396971286344836200762180156897618954153255803518779831033068557728937653678965521976863963113610981188235552170471701398493721531977460258537467920060204980178443744986423052371851708208664434872617327810355124268013466652479172803506499899587948227876043660186840895049875269926144127826077529029143516515526638574004630778308171292957098971467600285235562088054344570778218918788587527586873671520753757199600834773523445761726171223574373467146560113371721051680666797490781948943329035843779744501288724434462580744015409999440969475862398710113819388122315346174569023988311554955233301045168956109463184369555665200666884883660021522311459361327229985591418599398584166251206965403230924293762883345849150330389003198711918467314119385480813017620852267435522056746107378378331324258227542154637769426986664898128446371515224585113072449782865630684385760932794929184796255821769909060821914999381069280018350747305679292808254896761652205315853834094232195260085747258191110294361497543341599056633208706326288480246939873722090222050356133212681527541355316692400941970480770023243425054218355595202713629393762110203208643254676962114756232751143893937117471037521029797542078883533518755215077001986593511724258241387110081442644428371971132390122094920488378217502641482123959750925192339413782159949716885073273837136216806158671705873842609433875249622123100435992758748433915664185715974278307778946299317592599068928529657010615334661712206597872569744406530854076611246004081564956037324709581885237193878378406196724569772053320398848894644551853234209465154553173161545736501308419738036017349534467958601286567331342311225523459233084352026613477341233204895391333048393738637347768760851624697774763355185879539129284023784175910125098235088203370704905407710979558029997083001953736031997665098579541969730719154778431298413797300590673014038664007577529312341611484928902821560112194811592684333237743385576773119157497816020816885332402487214397106670858035433671931912030402249713688770510656476875331785950162173411583333452672339960953788637007095873656023174802146385320787683476156074807853752457999358611784098899846035590052275138971884145309282771891706173319145726994270842029483628626562249873365637383159186165707541650919771507547402967831086589142702096664403198661773555590109952348005444089599631887970198280668308106951306923676585665127228626037912448323343445707580453592056909438576773634406347844595016361686606106202181519297902900182741777949536212064971890501932075549166116592959630111391343007715628628393376504310529833412112570780276688425630651537091458566068173430368400359637559982559002877790194731145330245849398793431528242720346813414303099485174355877676219898607104065678795135150484665729993631344668658741574969125773468734600197388138402786229765373525319440383588909789318614433512770802635862790893335916123709275037620300383522880777974512864022937991828620296373867329635375267022462860956770385378309518535244687265492641072407408185966246751152876858560368132311586451974880972818854149006149712956244075957067956128868611304554335455309111270911849012301077703990834567915009720621685393727579941120835676644368107470069430154572336312161958253421914310871670692003581926662353546028368778605242695107965732797011200984723504729915119829556733794347060668936540209425194250978237761129564087177869843862616344952206392486376462117804956118866337443961951208950573667700701249421219518360580194618742505773891147404368530779934879737662790129787760981883302621144264114263017116790150556369072566228295288687088000275096064153009965049614336567385670146948472498806565740988734705124090923056041252477000684442591692378878912074003569964741110994763315061039453409450964596441709932744549212794448761632808038038271682748934586795132373565388894719323147794444599595255963017895042919927218560071438077231700525296150781392375413843808706518050554500911582370220012338587894492192619979316809387402421146461887368816254134155391660183438938473689661174550357963637429449438894136030028165976851119991954206586401129514251044150702092245288221740773326836942185651623818498204485798249784209157958795419412605103425431734559200391488915960591247647079518648154527687004135723469846862013597651445364230401231462170925027946671258151537491605895417884043066423960247205845377149633197475648371323465001213003225577200338489736774064558053333981945123794549799154551098437819683113370601150906528748481117936107918492101344051956379092089051561234353556776946233069461805211795572839268824249324731299863658719074634946446489346362693142203661217830965002670779393945330134754213958902258739320993691379991865995151314167778115457068389514830744640594346973042392937656207428018591732081856951724839877294899590882626043601421222667301593307480283412010310489534225258234432515107614550330652136117384110489612382741154964551426708892052770197573928467476199069620334360342014966044049338627817889882403850451359348743612542570307386126587461209686749783885917483586121238968400738404166590999462575430213583722373311077238497525412786131250293950648783319487427678088514118685259020978039981540523415238948203280907678540012097073371143228101240430050844436587542305172085738615489923519270307040554672811632334704098874609911781100397335186241582927979617428660440063404494100543612711502876318530739134158765500737066087506155852495724460499428645987477254503786990803847549528926740343036880088936944802128013230783264266663833587530300774218933836096458426324234879057144021663511013086663682046138211916793113733625870624716120728163154764404733301216981911762456053825029542257056189677814459948302186699153998782784924907049165362989511462244939175196749348994458989215851110417503593756908026463812214320289498533885449837699042944625677108165073525214564089354991615986035297674635570263562919152872195828186102087233220871527254196660185738598583046279545603560633077133078303060233027559117257792655227136094918872193721024153482343535755386332835048173751435028404887670083286421815604655611644077654994175259107609486514872284371682771904915183817855358415434743327928762482540680643436855994132880461126992720045204885103635883972648693105834618828142792813053297428497422117659743452957166434290867459767965630879150340709483119281909239311562315425073448165174672295840149564256954722766407574846011703443974545330689379906245790478980298325160878687664740896664589404103533394845560734616099952824649268354131095477741553204185245041011966583524823901574524446656669525806703060423453154379547006567917004243649062462564325717798389997885967753500699695812469237549278412061569223699536971231341031397433552396754852586524161778852155529613166241599008098910718772243160562472548253325302146009568448437183594626080565232609992814298061324688457456730959432933034484159331893367441515813610617110331200806531435839123530630972798567251119741555582184547884457446265226304735572768883745707011118958595168229534383326352583767859746680887014402880317449109522201208102871356414501062798584905319976986103667330085199759096425080285866532885060089308352356154168226403960840223074802696672255835573256006738957922895708394466226746565730186136649055566751898244746072249635714042625675167220331197426296757634820854714545710357192962471208982528731399949229794737264562057544811686068332954968617239259515530560399047416860011441001698575937479567285131877456426386772214661080831545507219934007056096349361036683630260700128489094780985988910305143632661105605675894440545750482382042597395645020157196770311589450086044970549636310371656712528707143224919645892424437101673030367078960301826355087278394277676087608522568704688417511354795801818678391745527460945955856106538326346790751718068159104100087178476782328862163673916174672029947679048711410752307986200568013125288505818140727533982925013978741195217031246171235915143859454932951226060097944659038432030106436498363925082755585056988289659246525004716559371223953483428854444704924942623428658980504591075394242122088041133763313798217582502052816916945270968048160349027772841619788421452152962360269021712137976891741543081791855005195289047623300719057069761305953575945987755904027773932370166812364599269658191798506661639675163473667215143072720354228708311204754259788977369423123896540826905836999631463929832935520192562503496345035232031356234392222651253019672907040277076712735281476433598116737310065221207041916585161422706066690652220295798671762754525947129549171874412871389696363343628351554197478094906151343011289901244524847609541217798881242000494364656560366072546703299696954184608994757017208425934816461659224930859611492296018676508526996039290650348698142053016793470661987682105037600345108988452933287701099710143957144866835066841169477047772054688577904040504198481784132679143684600736173411927675577409345936653320671450212857342392505077280529431745000332192051675187874709262177886568214346613923608450461235757430879629450458912088894150469691536521525896825562254806453370217019153550169427529806783241237639082715582457876104080631527797964198074137364235414985133562984181278813865933398521165995015187204874621977703557612541672732841062446797213975302120672959048252473961686771410513442755242189307872172456132535498476149976955718821852248847136651218779482909122478993792068115840162898229946342232324306761889944080404679097546043490503468846206150248319263619839593628280169077485999128364647228720669393509800171621606006704689135294730129341923560751764896459910958196058035227729679627040177473684952745916106417054436583640905400260370267633894213725239361853478244408205273347221734379673041346874380086126299388983723519922383024333539198033221597771673003341448804624109080201180126545720330217874574631305003668561699334906423182270453331070784088320083695874738132290728841580766150288015619104969647468176623048366249060447964789051570780887465215707526327900330023487507104210296867491373942193005208792656309642596053716027051230564137515461179878783384279968429663968836431694565233532413520425556335220302601930429542659134866356390355814292902658028424632435477313394566596970534081351698153764143793567618586758980761915444022536864302777039431025489951082013511118434711246470646637516129882410477563546827986222844951324572034679488032179230948396160824962268564256096070348969974124582304452232497835301660659300935309344779826023644075903433081720091758156292879418554821591613361741830244557458858976933585729934622290726463602510666127544511581339372180806486013019409564266585694697681134510775260621409995047965696728241260285935874293382279729774437966450822538338651044683255007046680297036469559038433994239738431538800621382782407148514746046819050712916587522543225695078755659500706422043541941055991565148988453929806814283116969050959799522818794219739922943361794275746524201234762355930356793529917226495653707576179369583545530003737271139663383278897670810841699466621516251566381129151311786920728702637492233289498227170285184634106867697488928356494496680930524035129315259609338960356379365203727581576531055409473259275110247068103103190106098884804587673810212866691839007080974307296467164493235814233239318595157730981490664261467882899072812494814026104855051245073503052876909477272614479258442961614937460191656844763948766291336165550366134750740947496547923070699915348341051482229216255803749538719537235868454400817135714594097482864287409551202084732646292536977552026409733884277786426472885314609578686030127794423877703663513312534174374505906407083084689564824027987730091769939098546084793913831611744814116550064614339688928065131999407726805014204606494942299518474260537419827962321725193913247541314280529179908791113660755932466801259302511529352669169402557839766943103420228333243078330471192608564848070053069929037056631079691026492286687002093595053502008875609187657434419521745550246992327413510524688834371420439711358143061069488337015747643250691263898468508284733629064824864205923125107899473419637698732498966162831305760388439945597716103604489772102258524191667660731274714142925444163171206560544020936763656742908966303125700050665001053678310791038359655779224718303301147159408287493848437660535577924989879852863259086267499208983803414466528067515706379289436112626383775677845928838954082414336269869973032120462270887178367509654225964057190100930199210820113740956473758952177443642109483463899422362393416742454913621407032843583364478865650700528171828415336686743091004779616632105945602666353627788575172244940048377903569247325408819082090137641690232237961267734563877538711722874641335802072049793210849033788739625296098016326044889350837228274345372214156405228171042133710893278057408214604330347868135995252870733473871061420476261934530805138841026098311201306579079104172116124306286824700707609861638037188653929117676869965901665439717713149908704328183269474116042155725567202845413140267024008110407685120634926717735411602215500464234493082892837478852481709813956588567250116261774638190377839777688575716727410542085092152180026913154533865493519193060749369559452660949570724430571077510213272085884421577503760904223097976099321049691983876127666358751716632630594570081422547625887984711165125721381840987249318071981495061550827828282194821206925124747565558789163195323661915877785899815496874471356323114384541436983338384346910039999715056211049390517444312557744304224558151007790771252254612714511683847235826383694395015556281789001254033946221815729931022861543019135540068782897492507213825675009282887562255172732312706147582270183000953868941790609185902322886452489248127137170475621033260009416092286707961732631633753693966459543736282303875920051549398771297322675757848808645512607711100249113369093404976177892756217233241082610374307926242220780999480939646338047874696127453846356723018095953618361199194007390221737364125777231437665034705120981837742592633995356288841667759910023766246214531778647105167570656957660367421019292871910573239630485815146574188312974936140529706051803086065417419987765190098160409808305551073027952219382912742823178863769057346592245741384010827776670566630219953788723997566525531452134487166436199889737297473443393657572303084566137666068810064547209583421040163638850243911329914444055614461594031708417405928326640916802006977388685503990544934088259129961147385245455358738971096001255512095715293281344917958743416756703334759601965164078845324114795230682344934289698013411503265327926615880028575381637524734950359451853559900043293082772333341707387924348766827829992491141534430223033759371302821279550272328345489689042419271443638622496867885969908495016583016756265638678528821170413646100972540551207621642062586257122780542424175474021973369369624609548817239917972196291226897415921094135074928652357138663445913094214847651198949494604197947281036456799848127878867488176878449116774634020867592596671507121426315408099418950746346751920849911526907716964124972084614787533350819766494418921509516491851579485566307249112721453521014808629682525056413614662093267438851408875844960066043054809269159005235945726035153036923366352229341868049918419448873028715914174010738668354036547365054909600596081919102577612072353901468701988671978085116993302701648807897071772875860049573210775657810198552370583283389433491811731278496890590393856964753452646985033888505778279240995976640739430770020596655532406434696066221744980270725967537726369741176977584999834524478301831097526092068682865316556094301259649823391046283957293374375668141833011250291005816988791488965713113817947509288294139484681506967831988271520175508918424443180902607691332918831917910541019925842460386689780395811642778317324742826840141103860801924615423868683696993155572731126364553643931281460195896994389323914871921319229522825403421346576222748603172131159860706805919777439211351432103552681740505068037653299384215557641618313897415539828302360043368978628820185969705344300631780992312585557626869329469773868473125765222306725089295115171401297053219577720153897592995442483575453227182564694202616215198525585558880590437761396230195176533570244633057220311151292511353467370275309546693183349461686805056314644903784421357764250173708116311318930072028802760251095780333815093620482593168721268105214396609218833551498921644457122846376746494153122833789688282123580055120231924723800973284803844217285259612195456705289636276985461061284025928539741491090589569489550360056459762785357608956396512455077357342387490671624363311765854545637640649139415702683463806994011672915589524566081052804280349610849298500233887932983799385765368081994487486105659091374749280554642954493584118065461345702176365961806832773398552296012743879055505890116027909550979136248716684966540037564303255155092657457263759319047476302231477154654379619288942032835699858799397218888425154839968607672455044563964397035793187517603792404669775389365167851725320270017992437821940803215507286582113786615098507886886010416102802424529545922042346233378036159759075447610778040170174937388825566584160888051698235273329087289475054448761909464356826866040693778169679200873867173791924607538211738212142638589242232932102038750651354550703058987535190077061718763598166681630659976160540717106169521056830057612932995264160550599225669036752383035523762307961815996191063036620841020012258460401015128104339530390618039995571774603822606358460837837147578760466711399082813940078220104312726798804032893365411021007723531966844068461240383651163079042534577409157796909101566859827425042029811314757178252433427691306244368843062092707642848245316488930682467130017405778297184026799757003734124178797433612535193017147884864872820537836939593537187426807207569426111791596273806045003874637442432261579862473609283832588359449405832776167553674597619540056414954935748407341431699077207942419920490788074641682702932556911076468739999147603663052277019707462249570377200735220711127506660851906334126755868027214557310610692759862231920816950539181421963946404921850411070497733879180377784571225965628530405643785139700947679591056672689686236119829704133537343373944902439370643636006831657274275651145163287647438487776579639814650224930109372596259161522084782035031686624198776506248811829022994046040717502850111309716863922454953206115197329402140941588727997759286720365657829788079819650638246644841817626218539271915169274186358292748113037221928774679953316734335276695699439661844228319265145191495870607525347959324037419722776198598400980444779603182245911213484012084916526870279995373009123609456917288704988966488366860413151740234949922838844369717046781051431439988625114868180074303968571152370150548086474012604500896697865658918079316535667063677125504385910030290779659482808019370792126767249821228954828017242325845318429234699598951258025461298886823374848126734576042481374151319737459444780183951873093155127333404889134608725090052916087646890769255777843008039641159827953306846605531131360079998537586150342066286347965593876729966423181745038437799266467888544511155902808551569359700727150555438291684491387119639129344896980668748394980887085332553912203438429988110298716108263041972559620383554728811955376155769226255220510881447342340429645814984551714120283485960150993035541577214184584105324716043010376358975806633523396776737429523221021590294743122875076691378358930146422471641257851364853699419931518848369131696709223837240573398564986120697291272565896468303079072346735297373089811879309845734350754535073524287917530226258078212685618095505435638023350280121060759038468314427084889540135108442413111076140487930194267188421768879144568194151933583819355593578317078635800736878356045991633021962779921238263643620476008684107363734973040067991774071231374020066937747724548837162659328761489048275880713073946268130513347425845979725691453174522261457530250761314309742093576257126061431005299054660418311860962246241828908914993872467222009013712937166489643586796005730059238473313345640893251799665509136603239744969417637974919505900624261805569169013093629967737945861931106926195422451718492970027612518775285270352842297790855255972422350591087497469897295346867772176855679337385144585110442857866888749027468110813374982139893055234737958253520586455203945626665056457068622253379255855695248051261706386728159186951659287361427785987614422189626471207185034930795990416176271973668076959928620204307936625365534816434915215172713136075817361019312037902090683071297636568564799076082933230761232920910210402494587826261710871067999896091904265323380729953520888096466535228271098721157242790765881854529100872268166109836499193167923724072591783173919778118915603635508866674561115369625430072232881118257185550353231693495273908029650927703515494347531119053506572545302226022184470630178542670785436980753424494920637664341315979243837319319147456949940626914217384934202003315927238132118582652643569679170309297536526150250933628042083259051846683035463182535938062857808537519195371977745240806103242864434112635190406847143923915657026420087029316838892825707847585371501846051187582062954638907637422767758153296759807622037403919548182584072517435410000024601413833896157750457543021577197152507310583155729905935345246718506509005100193344606034882400338122204907935234043886003508847889449626758811777774581407921586043951409803444539331395013799858724526522410445626090865926531889886905137534021993549081100546989865193257845214268548913991662937272597546066162985538674185150049319210388758683434040392956157841914054911241898505604883331864235269066328755439275195167880499152245275278250484624482282798845515081466778095720776573676198755729039420053255553875485323686131022522605516270737412707110379318471123364614240457702105748372346958799708495505393949361326039683857580450784574807640853672749875159575205613557815131409952280565541071594308985942984441255110848940453529606503067732004799036398828916688675177051403700453795832896912376585982915039696062051366677249305497596919363855172170719273165701799380100981825585452333066374704570462040033852669156975268804118359437379322745651702020267594717526034117569975538589116285238168482197288100212898999084180732507477173643783453764307312258607911630916457086656437917204926958663337748597398187100717208633952077557632811818491754591984478307449101751491952515502042726209225266549832674668827172266981672633578370003130461985374755288302514111421512278206709203428358820778539181894030337293920174071524334115748238194314236859689604713545986640830170153366953515773655787536103187322698684546243831587472604374467840266955666872986611600783369955374505698739380298244744304227399587180434050097499485472849358772233570357316695980776092784123943250245439164656607352063756508365211843391035781061933207416814976266836374122841643834836724441160048526199426543072161223932631365852767809031140671012353694401554241711323935710686923167240508000361940885118044286182269688684008190625368425689521051695870812668377887419528509088668622552947416378910279525975645262771515339701959067989281007716421290505485987391160168948902987117444512022976561217800416417718963893130862018897759758412638923033529989041272185135161958572332281931079854900902475176351219510844033448972219201694127950873868044103897128641017028893721819116939506758669060870715491782391406342201842784846119318568071630458375013612024617700899756066093385596892750624415389693309416146575631579249880585480563091988707359326815693835803608467581747334925756489558343334869097903514287394721777497291460895670628185697683066095977508571498575462922741644269963931936681679492867476359209973411658519803682712655069930928041263792566645827236396710024591114527628154347257236203139980478862409116368237448249072285267545368654141130560723193859151000600007911830531487485438170327134738086623221641083778899009828748015282718284963628568230653427347336826476854794189005217851328845993457917364398317320383449956285282579152375168898813023317502570014665142163851017593723261199244374132961249825510938550644086669067162868255831240221292189684313749979716427305997789193801394287579382070357178216541997827692086570291586013669898718777320920101920438469992749081910483430299334944314857206274569093165791964073417776460672632310631981002968555063693735259323835683923728930550635463120119959359919155664852061316010987640741588693801942827262909526343112239870962035755622941782904231037734923011365346854911195349086226886937580412786806828628930149102179192054060648841586250242142562476093966782225239744465354487346494116550040414386978105824899396976467366628023029272021585613281899800273005633621743395452253015578406304977906128662674512370564161493659475097423350969640896540765189963637988976283281913795690674769928879617650415360891180149413967813637993085034387291894343872500069080843895794359612650902629524322757435016438407746685412355305869707396177179887593183984278423450601425019166074396113196067808952018955447676040953807958543866342668990508578744386696282998121761841641878391017500304033673104425701734528179523322379875147746123533061803990667310956043567445056131102388522426897599972874702588738129186429321302017856013533954012128599827737057908322549531610897386377249879940747534784001529148061856441559167683775658008531146228084031594958058218138555166800183858446365317229092379641658861672266123198161875884092263743818762528500334856939751621726863000070400520137373458108597109339917459673055547965012386967824658534446712737176888437183377464684288446163988640150191475590741817595826056204133097299481740694314222008916803552413687594276743575695891132586855886543376344289154902309880639334008639242251530449960452176368656837202287411953660701028048419183208379588046493636902949609928634833040215587054250994586545929720751747844565688232488754675899667470647907643936374155242115854344979221277371739066585703188997335008453413187611885359174234028491036051187050130481977522110119945503043364869106539162811120661737386642148492946437326015358140014178589236764588729332831887892247318524152215835679574018012278112046639750963527389459187814570485421919518916534508876528522205814472787461916660841356717184948362352967523245292856134041936105604256871010253543535876299728145381471512376115131596170022872202132718428981701918209664636944949165347370039596709518671575397252478009555055639884792650781738152492913680461058947148516545646395838432687650182009921102916680779146107951034267570966090912523742277236563685967770818231338629468603180592939186692894574094959507504857211902396725051229010496806264107264118344468662867611834194283158324702357858327942059294038132125198266833312358140537486441346474926235480298940910403320136319698428981057719999784726674898816668603563163570464849210896792370906958991396084236107935181097905947192754875917088190049075564587558839295649693441271132358465504339928905602199805136147361418080582907831674658377900662797547872379045638078121577600286525874855082569417033848496711091824159423929503637003462311905708429393464553159215749706975933765424209375799235063233559026656370726973664372023258675089805044254824920572242391880378281002020051587728806394924558994669224531298391838865414319204144523491659542542747126734884445177871490524382987977306679165385536684152274114169953200343537982797914816630513918763827131163359220694375536927295537362883245305139419993489452315917202258386850404639602725652619325818775121911706548404538278923147900985842068668644051799460453558046550420395795879326762661029514305102761971290006391454801226814887030565566248118287187669891246410599324618805108486271078480299648455007620001773204689922662499815550508066283816992100521879100050679168532645657913765055761569463356572763691237327877309878895171555265039453193765997404531325435933216127046816778288419391428429362846207504652302742986547902929165501677941145936225944777847221672995813372510068646376460295405487179987958664661715676419709889114159099862610131253896412334059844908951473516919114021610774653241982694966778521925491294054266709174276654247617134983258471862163480975000114066660288805123094978434524149171512682018596018954862803973141282728816027679531169854795774894321051858522408986081548911346728001680068899580747586659345892526562872225045661900740412760834178786476317308782252746840606861551859260543809384165593178667417233961113858515993259952453936244793558875358905124696585434577435946036378356606497211586982561489757227465240895730688569757714176441844632487172910214763181148625182112035264498059482391605583808015873125610109933138890732836313809107524714747814790045128415556970198539498939701351650116179724626460829721886140845326147287360921496531586646989421015119142666431542053363840958164563527913664604151936462634460473940005555487093186225309200819019563289375211741719787030498544043213675074846303640618975883717409160719416324370263895557825718207221437418211486606049553586931814519543519139047720928944622440951540686120050482562750864786325381340389072283366823647652948824694637034801910022290891507126581537191594332524562594962346572668763254206027590865957431011429501999186945005490274208811695862610367096836606435540692015940443571702760300020469743288298874447164671598064569290383495902779461916602272429388417741880253611628448291117523115670939658362821711045450953729949934698659385716787567521398875431066427280452013706946423419290531883172552797219513811396880419167734075197279752848060922092886939637369712383165563807692771905546692910646770288722739240585031802723286654235480128277680080727313664841102657189979041253822089764157415651351352120695512883571668426969440318038402142067517342673564723328372707167694688694395346378689551233075356865417010500444020354120120315957420792591170766989041273432800518411747057972169396601540434868895704296179600579952210211625852020680650516796209480463878188847274574954752734396135350676155436606690794674748004027316394563117481282268113178608326355805262295167964378744676127728565476023960885627757697374455877828396157822238864381379577156294461794820423075360732986241973086434372949598573292977817517054707530779185478869235986701128307534940709093558533742683999224894206160989769802386570803250638925935344847216067358063048490883921283823018976682354397503425918627951031239837415958266686318335401345214344092646426431746901930130284641909777816815357754242135445473084883925274035675607734810551435827996829852830372066608606819592915767957557913457699144363213593947540812526956414355059541905863664038649029995794089064879627261030045656360354964178997250724455345423644050956592464217105534194533912575019074261130468583350060195274410048925941222663876866548396338087542749349617737002000095336878129251500985338294876393649538347212185913469415645882239451223795816467174497379742696969380547385180087356415672168018832233159347669337244138385667412008032513634855215237676789948139222782054990227925834050748044499198895447376898759789076758816170006252665660915506466241213939829500158905743666652662640827588526462117177624600132673867135513930377159676804027502734907660447073516675147861863178620193327588216681270295003880128613641988964520363232235615014773259683027295158023352030198826938323523593357641058628143065492611624150726271118411612221827927222463268296344819478551996550578456503812966413029609181227613344363171620634320638835434859805696276778996253998581951887079552540596802396461087171526718067287588714325821730461559650039853985249547810762833795090239866004106294399360468476139573432371495516541923714181812096273234649874653343031022289916217277193479285892122434623659987375422479014845942104300349360966139498473715726655240724934918570997403401248672974363812447207689521247430240541513706620603203740086643261039710758167093440164801258828774485751639152489894162393608014444049886793585588915600815717288480859298124507853456684422479462281410451017697282559820567218022439373504937197186877610463964424524476873695519370531197459782257836790487413116454845993406153724075015847857856860735019986950555502195459101561999083675862570611325417286153801224983542514948600461752551569104365020345908103870502102821680544198600260437519615548844222331976325749517557582238322791806199471175040843652761222344765225662658933288552427658156521462850098090872737298579438250834802575109788837776543596990370325072489353495927787170260805020999511346620587484413660702285325584693044458639913537125228979132613103443763673666261129390345174672608526301060159578920702145424936818616349624431591574945592341309033008682251986060183074362601524904765568707513745636037747617138781974249211813568424051420654778443956236104680819152793741618733926511943986163054019107544378611175684317065721544236556676442599907824424340313709962865497320075642664250284569129907458810346702006497476459644435682001525157509220028495193386478389938553450618986746776652706006192065341351325298460670395600673597589503337476642873866779969882885066284542499611325680742749720478625609322886427803248518687623875813895942019119097649177035624718460824891131713051946030720039507107419880784743522354107999279722143086477341530047872325859159049050428588480970541204785310693437545060818104148300228743228473441216810797738932157955094082147317823944362928966565327825733022121721811224829937103167913170188150467447362025863474150573654789483765483584825465865681285819779185221302504708750970681774554542440729148979971703499887205243860551590553587822784335625650959836256599010344011342475191299093168262326388066340194139123176097678539370810102093215431543392013889728586584180748700501761393727127195143291515146123355652224933808528918146919973865393821184942607260987844703700211104300809252741620102666017452051329530092611092407502829968088027210460715675339601027814694064126964306823074579273004016950831273640114423027775863311199680808109754494859741713708534517330414926015203381893252843188056184883722544489826414177011197294584468003402552899751573397144350673030914852996666682785850866692988587077389287603640352753744488959066068321024665922026518244011885055180639569563087862623676658044304787084827464654356163686859872373698943132772386753889745634006120247879110185647453897255705107129001121277927167259263962792034315549075760412130765796462299163077999653744612050021486275830458822870639507728178446333493797214652183091554978254034436604003743104598634972402430085143418835882759493653149778182725252325762772785030441860133700443781360182398445805213742657765701685380229529599107648276346976231202365730190338881038312980679752895874968436089167549454816028220322470613863683744087983870050978136128394487761203683067221996336893197372779605969555345984822276593456313384057617056737005036628698266626030182702824601268542394207599011499792906875245955100493142113952410640568352043159447181333520315126705019947359642376129616079496349724332465248212601705150700816753480100733390927950560524793910728944323967435759403083580468787209750180812105425302777926046093868474601112944787194377763947066850506532616754134194930179930157000594921109294436831623346339803227876137183804692685046383731949734618155587283593503800894515208625141885284606014795672453633960195690700225071238570252571665966217571061567179270082363149888985380711582737126913124597452583656162204687073325110137558632020525551996925131058472332100000563317651530574941541474210241973564546053322738820328647264427787121745470462470264177838193587029743499915151923215689186488730296078229937857048587203715798208436804723796606160996676587038722763384771609077839983020469126595952025866496309194692899742557699380934315273246418855928948032250048018931400304953662988760669482467857179655690480425582677902027344679694624734716290845479523520010429169607650837875861527195454858014470763131089973851106444567360037995188039450171830499063729409516502700626750782329662166654229939211184388123321506268749838175022706753570589539189972324713669784916524191514783864857156311343316926196403173875292207668345892178436773845389028055221460604953762138247804926631983148575375520814918203304294706102330030738885429288508526183969364810043803648767517391862207316852305936096595475032676452927337726534661317905496358546903946547325459940589738352861141135649522954118523681145043162211920810445717320203160221117386453136006778387096049247127747501033801635008050149583453439403566806503309367534515625252068003428261547117605205731276657396335104794345889864290856943968635077697159946682552751062156077997976771054541923148563689822376184313771301613533006693352644890649156951495689522957937419408496059640575599148952186793521618079133446562312634480851032092164537702041101950867915537600437666337693014307717650565851692867674858435739861176326608215212385786840054734167277219843718340772906917740468259929194860733667078750413792323432550928775093094551722987165297479037239199972612893954812242095957473736890076731584532065203709249337872732528204332829769042843519889468429182995175012971209430377242369496582001192998044011738820875985912491533732469636523355278404559656837573169414440355602947036514417741543459008421966141062866871253974298985255765091184633076426726147517838352696149526904245475230693943834645666941669081319210008882743283732079708920914645398720948172019777352457807919709932799139599608874258472632740996521067318478145156266878506930805851810186727386305486941050507165409139165740519938113553900286300383018592018740778488884662257709929253885791310502766403164455675263173233922363022014731378270602055903688034709153148077601021256415503732049368561297811406078834363434700149635401206818331450375814187792642035544694817451612656453431015730221116401173653043517556728457989974573202392374698341673803374823074388302893055008965347759834802017097069028113134441009097493194716747218823716338444185457268167079221764000011995157984347484276729524237748530404088164694986552859835588074243535140912960258972955733363660572015858747558693306131900825715183789015810531088555346885035775831385635707550632853204016285663188526794462367740478082540475809657391117410772656624067254957016777268347701058329083730511055339363704562721350212578493247797819168988339857469548924710479098624565647943562295875973574029465809868906272038285581168744352737502093205506101976390110120221444708826773825096305569203739008186103970958721541479366946916007250436294632036678191841134456799560364292330163284443165895467852589737437313392969503163960595887020984618810967072430201456382045803458301482708576241384620933946018343144118660915915767956799974600264011415704801520614301897693986022414095219262331345182780598673745635851594864601973430486247899282327748794524324722165390463980680915802631189512540044339946261260749549783459472429961437905015837653163306678523152556256409328518730792467194116650851676382936212308098387887735332117733750079928963046387157745993600041113206782376834455854308783134551244749195027105094741820445258052203042418252734380063575126804456065557177471370339921355906192574891874967158237940205364505304627310907705480081839509476127040621867604327872748821077746407705633766096194678358466810354668443501851987257155969368330846570537895696610691729022721462284555978949994180702755653000562762961546865807983860752347772688166408834695883862559028501573001507566051331368992101598026881706552051283017178172827972352620007048778120073361092432330613163320780683817316563706940991943324566380438024987840801487116304481914435883122355619575637531958465060554844043111811250970396491505620593229272707484382663989995559281398576312355188418510800298290832059400567759603946134590250044438231440008425890176909167046923746421587024486538784894612035197574829735619694793027691874395394596509722550092385672684938021733173920992880041756287202887563544284945435996436120325385774959111432873398149733167438663480348680368569168542864969972661794748756963698291676362580512259566533945966592378869330504283993617542195923323192623699865656743911965383034971024580260554454985025087775541603252161792699436244226452340358013482900935910004202410401518577846945383265566242345847612073859552527544802435793809020909991674759222685734426669052387963777201733856434991694781745662836221376305508422667686405070767718595532681074774374306023129391473525598839514678422093084702624020615220576368881815899016759252728948627889033397514240370173024822548108785221775308961227440690065715077653455732463850048056894265733751836321897334711990791165734259236904324869416497451388998306542758462629685473983507192640198527651660550865785170149345186929605901510673543771410056968918641406794468072555572844293953383416140882778266901617802256349855075645438717657491818243427913559075717282144981699929446146436393308104687795039570595745361942715416087249754804221748408431384556960436682411500120294579774534128428940588466432927808097568144015947010535796474928121357144316400422697065483325751130819603742187441665604044372435165680935965100073341535412801543475562769098701324360224031308777482648770675269036612687425906272609305797882157405964572884072621854977936006125026222221716765294015921640551661839065158761231485435050993180557241271850786936233660961708585120008765233414017484914433895022045112257810436668951741803476488482139321295258265617269350709514728771961568246839860651303472056280575200893403469156991719574500297800188213980687581301492787329867993088619881598475893433366325133315594817732784447755331678287030486691629501516129344113734806201717321618869700187900813020993204542138184099187426395224672501876893309011914493219808505034299643254073878740531737536246755273155962612705041706969085897217229468776739977953816294820611240665400057050038576959194586397396474538961304901144829845956163225381366890524964422194114501569277649461779506781085509200605220401325692451128926195344599422801933725020097107752520878681136933490279505233754239471310653481159786384350784993007173975667403454014644007339444597782860205813530412112494176252557497824863474962830792394117625138988799415645300332227398995174954252919986896532117485212308469042037526987216121444578398014674215962646686628190709562028360913349998808873351173763141867265991222075214994973969601044129915645051944526743243273520326310031113930319983964829057790184511012898663869308522025424403496045468778907283637944673784206225089173374883226182003223709908828622850260460101582036907826097771274595782607968237992623292490304511203254167249497470079358188074813116645035830209821954746461574283856629168614156652640019850189397201883233944327979030181689026736389304648562414958338624721259381804218149051360431928253214647204761004150210108693248052506342148990756136585803837612520750733878074063009263291608375177524054617124274549774545809418457609026587754632977820974603956120427710132204836156123181569917399731979455775917121943619231566712775058026087051536218222349384585004889621970557003115455416549000376738385118810338989231258568328355994448620787248302415743556257148456594085069020498625860445744582174216879470086831618409677432868988635807401193134565021038111100468710283672823700606765356889738247997765949439733508292832463120005550479429177567745027886351479902193676844461053336039347121791181883647681384571201164445849296885276078888827476407136119423068964176076364890362496615591612027589752483890883093112156402625887141726281482605175249225316979525367055781800937981853983282711585560385521645643645082091511682481030933449558002989231490681345008546531967686820999271738364643877057471988773749717248679263834620513424675717220218577696678545209986621652909097229276197892625110505802080485964729598714701025740450248309125405324774013258199607488721599724179731169510679427833062070635211536127251468754698719981537564587449367580157207794706614455892404105863360300932710379153141540990850288477676183322801586194577168957432205692161631009387382574377070203138803963865165762664129213464785143354158493464015066236846902386205163777015046382997934862230720574250268127836458271161673951090233004652764113785701523699604002364247980251268809034044325859111416676323402681717550027152646737596662715319042411279572175290844928205492309442532697057331128198011752011251539188102354451228220883536716697224859307076982609662367669085612803615386539503562708795726231325387043906997141136584945864340786002534003372301420564236802347855301866650572368500452649770877852330788037880383004385223319463710035752883943161343611358036391844376773067230621848084653641926256685058051908339062151532096908855860835563571998623743951111108511650710261321153885388815877039824527035308116517386647184847874980546101821135740904858470600037704537820277612764281230599450009057233551690915691665037523032349989463325537091580304973404780669744984077101796590618076542157427160493217259512914887994006191577140633894329281199896616140537611970166679292066212713144149758095426116924781517587453202567323033761585504780704455876543687182919229780318135012162712124987429259151034922558584818755618284181991259091081097990082141274798991957008681495631114729664400215887099554182923659935115778476592409848396680684295002367818851236427750423437654408051540686916089560224969222561587087261302496617674992410626037949926204872179401465049381709968369519362883687954601868706554472164222194664166574955690881240839632558191637156158497134142351525937447534072256253240784850715539584729054114195798023018045918953564782541558037496078866009443342743392247573211083695292205508919189264347307352108703429513627540033822219120917510961575090700363231162736653173815551413302451101188459177897025185016541222339944155807176434116660792941179982608920068590970231405235506889570013372258425130955326966057250538208955463092263070310743220294920403299125747107615291428993079964798356742645205926061405649712857518305050838635981603031459124982808824784630061895570077358009487884598129323792077001710004764374367889744571810369775812049429573232535111184427273093586466486639195179811167776875641554765417996190252023066626137021320060942386229982889783731153475449246007308085616373944639965072395831364593434446217614458532080180035333634348409022962307343705795061385932415251415190770811774586597571195337684949457777248427579418583628131538171966105340484130575014226785836879688037796187854863132852031608642474051617162462536409274226460819806562708895756780645866526622750324963659789874578531472572535745985840814639123390569157557698193611340002152325132160433220430123739853884013906537234211001611486770800509168829252532047629350431957084685411912975067392707436211960265951628948772008884945350372361731571215415019658615835981302450090731574356379433306511765606270768564101513534625122981516298947261589741462327105320856123301492042392271699060182900058151419286948415966403085087575355854704206666981752784799566158619958562890737700900780163849135481447992805400542726759878714976018473599274784522503836963427440837484312494659069184496226676194416489646538715604651964508869117646165310391732600818986342918560627517144626564383034064010172700136492957044066712464584297392518017078360655719362049857932281078034761875361853955035047891719929732979482481925348192203558074405737538298971279263897647063895523759233599607252480076998079738054980661338425424102375079735181729909214571693756829186536344523703397014030906122120260400852633610716352246815466682619868376020361732016764103965065454756500086941099256163244407151444687354651127551679354095985205064996031857991404672498620628920317537867994713134634326245824718111572959329877671972061168210405757134189652806951954188838726228451617193330724345384593599357772090564235204069953696499962477097176619284750617259696406370188076444006750584038141409098633069965929264641233336273807013748605830386026390635422014823156519538225911755460839984279001795790794230705528214603454624880055802102194921550698374274352334734492062042654444725983897309642875939482037409399425218029331667047566518290856614591343284537523016227785010182278672052770594188505695387603413626989118975559926145264474321870716911480179944578902553355985471242394392070164728957196648310900702515871705587283974095915220732053550015308717431369932803163725627429336045937401179296122775257622899543684234421685306356082955419555230424194414459523931862674284712013914822837584805140983346380102721278203497802296586274165757377021678200197383893913800484911527556157851290644214571091801341083833314740960675616697727423456309196572082412813608381224896270288198332261993132402403235617945954585437463035113416765500743227679692548216819036955144246550571408644651104135757132458378427890670993851266389609649126421491773666639262037088485997120211686311145836881148219770860059604568127206318595437026109995018363745142542470486741309854092348583386430025447371411120930842364907906298789536684810347158008066741485376443570391357643231361574520907236073164212006116725993060458898401195664892892271184477699100795634516274726070449546834439060882862306279882000452665171710265548061506738050238322090402303898449861145976335001557155621177975547888358768031725003213048296627679465819487518180664264624352369652623818870300751540284042623646088344668963166786255470897967915067203306628637651660166364756310960043333117788793563959682978098348918096707721662225534425298889335118347795871881232504595858612724856426304101506601900711485265405335522687075777754057649895581121765069214945326488520561037908537329850691695678905900185098419236821368863598113186780067006473200815329489181915899849217983179730775461350927861792602546458187875838693061117519031801026463654924721226910295839094561585312300728747497101614563961948256182111301243954961528298153000076194122301781196391643775762360116526716943754734303674871139024623438440387770173453037868227346812927993924757295918371078363368262046376957381099452782998964548283616328702030500299977752897087519564958297302662763417438629963818349499290445535818055351490819383943790353968901601182617584417202683832583950570232237970855207787464830180147040844707192426482881579701768053365451087333071225725581463067986796648703377363044148614568719514996563210261673191879608563375802201307646372273703150521635273121071858200935880036528538695037081012222076468275617190783060096570384085927164920621779174315470289318167633630268931712302851804019763982511489485730067035961527663042833254237509566948917999420747723599983791111058898239038107888337258814657659295864171973707473359615406959391679552024144199913871575404529814599708993999474622908216261382009403025410950387533644968375661718811531272747480592654001012045810997281199826878250635304624982779725560616594705541590409892718759301031206142391842475347087439754966082013518548447574425360863537526820352882080827631659805486492831907617822348547029648870789901634014818668471070069992936632307512817904136095966226561868984519586964520143905513170465123795443629209916607909060213617035680224867701238569572774312292123251864849838876757716736717042200231029607190795036108303442707188975949836213779588823196020577207667497893047966373216940118743782725741059092916525002622912126449335179900538157273879332202629304761044129309727857925351714369951767050674065643369534440156726065741900678748308549237407080194885862658608225731393455480937509645669599012851362382481665070421663882148615611076405924070286593638848450104407876409919447174860572906181527118772700343009857550319957832689750830520547998601052282138612120128845588850748754068459714766184140967006060496513130806952047767587334773060703418850638038644196746547950747365313056177924481908478074920474756647279064962826343221821722734280270559172535443177270827539300088361951901152254425030546297825269109914136525868843251317192687235647041375903482392627374897757642668713024268854826260951227426944455486198029252098150072554970888135771110379652035756570787814798415365012326860465303518937191576041836419136956026897644971463280876347226672784378449590413776034047595281518382805263986845350257404044136852111767458073612407377863199881729096730671602213635319576215349217485064432912483676975923840695177978617086560156426498617353183697697547106208232740352185887791581637728513363113645026896386200638757828220696318695930426687553665418181118672767100976909854456176174717787102672227986620918419799785196759822615392919820201584700041008327666491692973844730905789008938901980083403457900457828099439266959741052032891600511244609004181884291732983148998343407065600725401684639538005814888739405040165826120922450763739457572397734705854599706379727514592502947643405493258825889286770582934472659077490418017290676023341706050789600120629973039289154647297855184346492842984823400154740022905174831554329401143030166788638225433261264640183554695934388512518168065842509272311072743708987445148085826508411218178580347645684880035308364316832737122449593230116098600502550117115497699466580558570873009085484868579680171850100872765713465437362989773734241364728130017979260247529963507107877126366959187981440912881720621760062881901482084908208823776933172101505590456147211335972427539891330153179057161900024509568805688887345166852554638155897674997161628520089807562432761765148204210453883997295657055417683159714734430669078331591369674831757851661542434101059164810548263499188597877373146330171977980740729454776514887253171722547183110506644059764931800875256710609093867586723766174992789980443947832263752185479364348768150106668215420173453079572227671965379203255873092234281439007406976665083047495861174669207301693530464689814985771252134702831900301859529201272700072390357945861971939607231351667347446313968883623836639636943370276119703664691660219262836429483231063509043115761851130140813685143460133032090116283897930139782989331238182503558913754678483285980976748599728777222570491109291112370303612356682913783666923543713980974147894928336077758173948879731244237997389578535057430809484474331014719842681593809551082564648877662944523460969250635885297518514858311925963206542208729289436689650110751493975114174737265813633991824867557920296992093250638448475591289907795606913257556335074737045796511295189078664726281430728245365682704580042169295264583983042851660062579010262005292458168479486008989485926457788897323332639035944123316312365149142280994432603485449676594224718195970267499184113685187642210356180120190486415572119007876769804068953689392418425028170745824277129510150560886805113325316851406943910996968814003428762624810326242154293975021258261055094583638105816484876968525065773242306649535621128827007673897192303737953010662293118215150900511359745423424268465951351232183467017567115639886071452697631847337750216417776350625837773431844471770912254055220948353595946970521118143904785647105341761153807841032880543928509174768314361589930894316503147129850593744594137381927152285915867324473511547662033883335402815929019066294152973986544978089729529468260713350526012541883143070390364914046599357319651674389186549842984987920165288745336487913285643053779872931206383016161774942054340863828473181689272445655304235077745727843066686789611582876807654250412357322215562217154410850441107170040937624081874976435558292485230433046810457615123004721073107122273923378705650978196547946116666597937838181378667552915692794841068474791247509083378161054981515319070849633972194436217723222002385042855108390043289282356684498038528017143445635765617767751974942195285748229522117629611672065856249384651071462061631307956614821051648745067512709702829766389866765249854484283279030636482529176887285730661328491507323889226332145093561681357167829709487593971790209232467931833222544906299656812422463490211777758426219189493530352153375419008169351776709394027554488966338556667288528257721666916258415882256412697709495014613967412682361059057937555469790496236889678657362779631220681337754302031931946050163426061346897007078164773832389413614500188776849227442285815113362108786777493104291243811364179089645229636415806755876750686493495055989493089380983846211233655811809139424065402373986322455185626284099812302359013509052467507236174664363300745537713822052077310000605622610954576654464828441785215634719314746345721438416256776054886423203034509773568349210219805315982230702690971149835287413847419381018075396127583273719670280253505450837314888474664714145335089589093245681733148093491903473235550426903925115055608270346256340389629310307927538095379378935931923568674334033206629755685287980863692528898546810576579347449294799352566502428896699937250808598341604892472157217017753328731615346562454063276100561257667713390169103438345617478047355519064602908152982876187236921015951097499679279683925184172935236693201322869730831960700291963042022833012303507314416448800389157405148606551234234482306209236949000742389487607657780433693793417575097993773735956268549979166682927534291812473432887915574085231328381853008265861785076248623571814114754964416496574255182410541862865670357902822877076101082511100491853194601115212956484918356107751668945365464415863779195999576659182435644816234344067617479422791011480095334882993205536721323212585669096339502141662011991609294165867615113448100876394524017906284087939743266830999640491516886638363910043614063188836076540746993969710662476448939633684355430071455529814431351577334354388099855649357869504089620029952475157839238404971846366110910327299950092799384817264917510282932160809064637201591458775224255541379033919264573274584458391510726454281377328066379541421103854762418531695805371469020380748637521635541780001747745198005093920497704006149858485361211894296426637275441102918952868118410293722910027963305494519214392455535048551950160500341730303369139476782480204143769491719285906562630335582510938055353101647305655550879883127216162030650976341041779561794461717820851698691388142965984748673807309509117117133355438977533184073436650422507192181674518220914861235936012876620435068999768126282262536301592838452539808984985019810421601803584774136570974883877977252646716377336470898242794600030799202639159688042225752200103444385412644432965207421472439663826989977684734661090626372290514147936265107060346406684047898669572689045643754692617228079925491738096408775758266603439571806722882928134199304217606407283272348241701917976133868603497487627948464535459840907996723226493121090249120198874900144754131458663912828915771865738362557756807833792199492900055358221964713198231249327719847077361270644292344102304717285739183226363258050500650946716325043949651335698633421001868347373567273502525138944590138403825986807571429424729465251813958144361017105618732237535951436320192942271931734366190780261614152929809489029302710249017093541033631191594567139448023835185023909157360118110823032865577995109820409140681852390930785493228048068067939225512906064424630298523267656207948177194946136244045044956558206362514322689053054074110558218870269188422753279784235745387556426131509370648534334696385547947284151446325172683108116320648924197491136743788202315528937635795724868430475427130206238448541915228888754815255212413113800996542797840138409546002222462124043104517097348741821357175006920942363785817946129190742659616903688175694480402037343340333570031261084945231995816518692641529588230149666451699959894203007410284650661838294553940589848228635349351903475943319067661396163175384407085874219994273068599456552291886078889757396179722813005421424863872703983954149929321246981649039770163066958339848936512919778561015255748318416774957282156083936236160441103788700571816248904225739640236133997926072023048102051516723507770532460226985985538644717808549866091806424446288430286420113353845644235658750466014225031115073449893588996522481784809259804801584069411414932750481184490996922363655183878115129783479339112721552468468295200784602756426727569563179842902949950324756543399216326170595803281358821520971647417142944157027723252446033322738241666387154090990779569155252262434791218187164590488477875903084785017910020626078682854724297489110995893215128675638296920491524223113513365706265948503682521967137914932695689756139386359224619830451302599638336229976443802736875229832574857760085935393097215377013554001888809657737324568756582191415953699970205815297680343327687093824198164346385231878859513962276896406679405693906523125066368189620893909291524027464185749592141512937812906750804678374858891547989010278074556951625913840889411144562969027199858220117957175926767768972405857454471065645648503649225343182911321276958114071786007403537242153993760503872029833478450270924030710800544494321659983902994323818854318629253776652592182991275561638003120747545761615215616944685820510430638315094518481365303516607423935155756029570352369816392248978727077496919459433482097040414830741607452675382963826044527356622430281566363067886224787216091944709027370931754531078577420479786379024926392272558761122550716657886953953474278867817159763331278892476846844677875958423374734175397595703547587392447988105873301505617130387332619813036803962820933237853708032031574826454229542790255052619370102626411162012931402478149780817815860834037563665029090308759776428103092135877002105365247696084108509860407637492483663436327707328776957166075879796786712194519995160836628941745225830046706985343373851662109813373893547438275822561737503206333656496101148242152307092553190858671096874142358425129474662628655608283281374356742079760485102745123009876927249116978142206316237353647615014197078832798154257734225672435176249768711736311457459259303530136038799752815373388588530301803163676950834446905184726121100576904225778598118245623019145107343473230569833248157220615578749043344540611369931142658276048678080630741809434614127315796749430164038793926680326488049432356576138840570543652768198632793708754977040053183829392856131252386370115406490068184283748422222647043935035366327766643604183173597577492755682789470980925680832370112038788338259228118229069605001157659594754083155081098671027838451116954851018635017830286135185451298927144513783820705261199438470078433619408402182283081041944125970263174844389363753649112688957905842514378501078245748807771808777051751606823813364623236582151036103611801197651228010235827202855293487156305187471548015938700845242991314827260633921031278047436953080188996913008083464572164088202198405102296063564079280823189323821380336554015414300019638882485670963131065191190047159397701847574265301308701717726274346891827966392380323300750514318509070935320048808494480582229327418280441620354740989926639753137489050620217560425909719864080348500601092753756971093993378133664797130540789810191965031375403376074251608742961990509721537954651235058850762255848267952110062160222065022379057783228762455769298374767756874772515522118180921706627676793135190540544284079170208527947258559653175405173299543876321550903323114540129485365783382530560612840124182343143033335771055585212080221888185790081770596994050632625355932614945281171495941712186424506037927019899668819739395852185086020384876686999400662299223750275545091053837449308557518399730104557230624911744055903539569615063939756762996035790752109616316784932811043421626703425773961455345759199422490804961364211821193066571299526269493941241638205036935573092086105072449110466301420165621750541266979841580868614918018456704847250416228479346758639948810142629710145919301547993437501697554326810505443296790443634441244782406270570586474232018730477787051364643347004480058620603373953626341840612649034199384190463601289944445281317230707703264890458456541245397267673532408222966740630294176679224553274990408774560256649272337961605343850953094707026730643779328213712648818160498153355923354736103328690316547214544519238621467222897202430475868708092889141723272823926885918121504220601121276002971296775201893797142665430880212418169940611859195227466475646223116895472786117652159259774450797454379870284376570587897203063549833826761248576940982562022548268946771472365061948448813135739557226519543497078873166600503440079937499706781128107864789838759291689007173119443248586526046122529140911870456772443384790715232317044429306975399769054389339162180584468540295560836794028404492620961671413634062288122411893625207836844004882423180565089299601718488313526325928559735379653749185256403518507585600015826892537661087153198536713083428963338795603498932254931796794672373076655744913470711721064344387022718446816007379321031481864112452593642525995756102820955701971506478792939674609128380078833805707701288645735044867233218031406651279811109212245267000024267715938924088042609107467466916604196279138716010115055090166361256761308101679760586040468690748623582896936439806382936523829760241474507193418781792980424033887372808753845965422738804677792611070161176784694186663898233113164345548848643194351420621078697971157524645158285819895205110896715742060819799603191492433606310685847228052427303573270419331265749109387848186598306798993733771695964910876385866724375862273260781821503697758353590808025764970077918708075520478389207109973247201113136796673948897648501756058480024457219652573033881083719680457953868280196886905304194846262274161625846666511525594997594103115916779962794058304847954576863614170959487502647461574811662447117184130415258468714152228518576065622556967148154804807392565951432111910188340273274485526754376699063459113905851414006595126409902147616478931055629046423755198886585897024646204120149039127319507031153663154419279108656856872353354827198343057550676952055306329341652279125734694437712216100829483301548240612201312821895170322965270164340919882548414525706343366303125869321403464616097384393373518280210918329684873488713458501418118543701743484289863965246322140249577241359969113567981669527135093129096874133437780808893877424524510110008293603995230036355493637503111114879739991730480848445405942372045411186320470187494394485077647296241948694859524358309533502330992627567269026483467057844767254846936434976997547571055072957175106181745485203863921858349784178456682717324731789423001324395075534611963254441921483041241959112375936274305496343442432256496494901694506143858849256178799110048560978906400444943668527908374104126929311321799850181239942834611660976387916925288304029753915326387432759035875806744871973556233450383620475199188703045268840354220853326672095321567433202040314317029844337733375715877033667405225344900787639420876385187074784023615222458121847826855266583127215721686406059440811385042067181891876173310002966781243849747769183209678143467282952347810407881784973069571846262202340089388980098101797446797600538818565879451633244151716637518159193539433055935860907620990131325258234538591428213952349857284439552973339682095099177813820494861637193029986108995241585962847510120119602478832006709599087629827902699649797217588925807987544579176671427715498496118799360868296445684231400601821353921419463425230106667903276179849203948674237493464428935740063884518314696326836587089106167447975969954557571758997656996419218851926496301898464998040261135205408115647133080128227115657306324617869948460486528841611150807945782044784712071555505592571844548149574053652702288230422613443787724863569853985930636407737376857530833824828248703973167535931963607022925174386400408332082757929570454735627754848247902555132775386576070163971750922630929577325625710127308279247849674425983206045862328570069857968264528960727041671996665761249125970063007025409496975520946413486748508329094090565082787427843968708600640238637259776265296502754340656937632849207550367203251085779755040024827793442294152245421031412384423703702868776320750794761720113598841001598297216693241347127368398967160162694551442009573325405314914823832483517614628400304712647311164757095216269529854328223069492559725911098610840234665211461488663966479093225904308277683440110334386414632446152691328299795709598132995644837341106642815718961339710792709860754695165520075672370584770111636704051891724605385483991230653072021258468379978696480771725123627322795124010407991434741734651503959268322730564099173164937145972294340397780182809843050937946817073683873619923429836712219186335269606398822806894478245259938656245548422943159229508102329942085941501468268012951375892667863573982387112739923332556467924621621963557481065453782217107601086595900632847724252559740796238653212274852729285114825862522614858352280505534509649126555050446721733260216892016563053676777430058283005064886718699604056418195093944835470539288947428289656483447788077671645186970929037850840712327485602786815514138175466465389409336519217262703080980325863398149314277148970769350197291058800306215226991058127282075807341312503470285863476578032186411360150101473456873901768171166632922288075127280966827836667076070000583661048007985973553111820726777739520418732147213553379291198944671706291511354815563608295255520293773562138106871144941547866122013005483176851892413815684667784794183084366795341914892246227618779560120136377087016387107944571497523734097681424058521929331462825957750156523556820210406529648591957615771292238773806648013622342775044179026801621980367881794307166250964328163498275439191495535405818812606479240180945480368999173312933006734338025948510687284782818383221555145541275387456516157420896014642433079201012146321227816110295559247643119009336216149183541992352326157327612222232853729287577599804053171215497649260827703634617153702906393785883879404118174741005851954187000400291534547162155711865915030096758368421288950291585387835217591051417505189020896194721236476667074715789888052814338182634741656663271521402482889925869047185533286566701462070498675832770977599329016944158988746054927351176608385780285780418770890493455508867529938299119673513090006100318596777383034931164123478750022063214520923020356088368497097844116823624047837113850536726539659232382239778493071666828542936060039010979079843625733743353157648411510869226834995691353275052728510763578543561513751390616990830251435453940468226367064545454023942504735408850085101584261675522187873773963200117738529850946156923170048210828499856611810002315169180539013639356448581511066672227047056876358801657438901265214243462507845293575905340728405557219811792651076940272304796379670586430226389048264293674914489586184590154128381088752970557942716331685656918086558778488069297271980638534377804769605906075228354958225334017642699622045774173548819406385364579424166747722721690442523870723760097061770661286588580410000572027321380224259801984719408976064046161702430984986741244730953168537916282659540912733269759764415693454309831537201396687825714162925639734201079455315687057547920296704987451878391744052506146829247968412285804807643313579318819343757998061375086487034577075374887313306561828124702525213419751149427125794559561888586422710271422654015563855298032101261222108413957938989534567273876640765386497044846404285333576889887783194615430496662804629107468131700920041857884991893341845554433615685992338583853059426530710354135596333508711874845979962772430741645288703355560467561599434295719718612990328744643790008107484572395485758845465088417550480516538995446112676059485640702931386429500577953670747780936774141815993685289756232468298661491560923325617886945113173076212237000339519201806009856726790097010860785510493899389011349583984198335201405655947938818313591152342965291424522603438193862313771530909325394905316225271093099807922443822707238281683913896818698434606829680192081134251283630735592519166818510818120634334365402549448456847432368421179665156680920385289985220249490783865939949097218689712474625314303146491372706827751499338601878444185692903171477823593391418095653140801494058762072926340889209200260267331626212722951996212059076015426412215454249146591683158226474482011882228246750467081260043576043020186182225890620345624149027235395344447754952646838941810487668304796870910495667729913509829355383113337843280281208104076473260692008757567531093272001720954747368347062887077571795847003624144342526153747377773961744594246578987142077003099539188515585303599349294826792486319639513023143027132748290860787001644270969673154735392064419199409024565513200392885898908398219438326245018526674044742781811484472897928922458788615331560032309368512076654295969700281482666756634245858917542928757586326707925850502704011565094106697647099417526786482881454771458527475659120481675290924315917371636458689652551204915744959037476484173133622144971198068892030105566465501320938741583743487222438193967927476328518997737709347789572125594551468577673621731923271697283941466911498124756443787866003317473349528252591155595122458964819286163259194277123474476505129596774427620534692694724003968082050771029958752694661386974156952449427133454345030084465108948134732920044925963717417919477804014722267295444706844098047358600900468801225584848606507306949842492449328551323862888273480330339535790398999441208074337856487907317719135511074365831277302566910864215985078706547689876018160741970940168410456742399741834236027327131322223260627871459988389492546510243102274653190830472219497494127384256433798288466555115601322160089166128225472375834196980289425759064382420424129657409603753091562572805301499004874925550574878527725116860471175394988849262890503472140997015765937286894806225826867352355069831721768928157045668593403584208224945310029199677503850848971034684392628235724579157107941592572055611292910807710741531883475091191663400212379379630483442155805629041743634323660113432789612652872180705533057242331771356441562078114175558088000044586526418369486855013452999188125962643401344346163489437781080938146710618021068799302637435229453659226220395529836646449787983179138194185189852227507379637569386466616806820733558664586944292095380709468106601875658817063786856723416886395317561620803866113531871407038639878611473270005536300174688247417679718592320331199778630938116040086235458749518290121829862536742218303319989582641243732096575696227582239200910628854591495323943365772090042294352827544339861073848789585321531609007703032014470762626099152528922447642068453806479797607901093854264487186371962490768132477725072963256380754083134286292707271232771266027148571836351263643028234029248167977081629184749142476234577692887912147705969246682400952485947990138899961583027120848118550945324117619180162322377070495213014750638952931159482803287152077263529025774547179793939031317846818148776357308081011802352051302814091012310192127563918517188076056319904426196987978905903851371945392954346880460973208373457119580335917930038182989719542835838303913015391419308828274117763737883870842375587614096981311149349971962773867575017207789195322831172634108703901129996631022161795816977374707052301184561169801567229104465673726724077692422077647732177581186077529789509189431064914011511631082396229732539295375336735730013846614314533427135180676639576399025828219026203311041089963814838973305191334531960302059031773457619532320190117924895726135129227032643171005124289118986343474046588405065000219585282133707914272949962497025753923278687417232696117247350598695374076463448836980302582371821406622457255020275574988650361728580988295687509054187547770425489348242256675887126998245368188213760470600270815476535402834838557673653552913060628621440941178467650204009528146172082930206865673403591487608982198673254381804526681106924742250638099215620729957674045387761279417632395775898008246323947894275189288058112329653923700096851811321206494008925710284667937479602436694183751476898188698853307428164722207342217650217140105943356564809515698839899404330469940966245418297099372977348570241998874811979984446224118548782405179467092377995080469764429730927984273211336371043599078277663759385767166885245965607102820248569076996588883501539954725898094277827682604261756829312736710729451718558230624949643963950831289260292604890254016380121691768995461497520145696509060287081689784152446868307260837775943461881193723111371578197096156284685366480985214206728681310583856586060559438191678824005037702474492941020001156092116312079053904435593007409759315926300204170577413230162519034729136405131224366828435534972712672497903734420922105700327764077281283986906870695248749310938709672944486972181139998260193747175005870970228210741330864081809689823603447575316053528141142633514406003667079923382100129462958324963972374083736598060219287108674355372085302239751327572171735572496327859437943935222502801665225355218556678198998122016376355942982185628180096548942866897648179083957149709235962711486745641453693349859065378059954396463573704592941901101968934654760936025391426196156934361350417376260768282040570218434600916391165841258755587049675161122682505219858417878325720669215366895580425555451742881685228072120640891439128775319959201143069226006618653906348387255901109316607604163911343379728456682696199901568888002041663199418400541655199830793473060936618173750454484014801582839972773695964822240402261165422426313839003445973524550284870342905656648077166487955064021964299050252452706467396842770411036792940249013318471129451196573258633750623152548765489944347378068518236995140254771773379625107250987639139571825569104256422900610486277818108123061633550274768339305043091705697712140336386636689515481537166056789961259925557432504438630568447334749998731098842591276088984147348034797157628706635538352046664871234156201326013026638354164876765849626016968429663088407254492377268440950525633742589123942115853995690185199174053654639563515455288005993486154624728806393974828974973877373131195826223731774174128727042418316693052634186796459591004949810591173172529502197943636922435112579960389970015351578745484169758718855664310937404501015234343449967003552595572520898092486083867216606820786371166044025987151373937942581194894193611011877158876431361452586149636767211009943843118828280518468967304591724332421250283376092083127870104749454313889145969655571959289878688946090527218158368556249382936876405749503746218408001436869953594367354456077711079659373470730817721544480355434799887301225706979371898169969951414696001018839726728799528827590270338399730791379505944873557174583097670553267500870056631562527865360709551146901887148720559604224425253315625538105897382172747520856345000393604627599428000495594478077399627965770453397705333225089968853291338331197618961963108403007409204907775610927589618223195307649531592659106169495936098268461989191446859765258294133735893174530599078890874433661895350581029098859057427832011580423220333832869022768767961052637002806867318980088844369060200708028057499191120670512634771139295392891163191327415813640510583895726203755883766651926651304534350055231865436252833617267543791409557856742205864308610456374225185816865731419665243931693306453284030549998716097137341459895352990268471112429131417427935207041630640830812535984168939759622334707143938784911133119434259848684326683816164502197132397004363604213489365510456213271934395554320465006076020493574318989568430368835563890709675589988350668137376653374336404762927541418063512795203387665392459589808341829150471698169429372590867706972430544449230933791187159204983835754424652768693132777926033377512008104749077106503951174879099021790626947652950044138169104268391270840898454975753005427842289146342503624508504411345810925816719355299892344414310670326237526951201292776243209341421769882282337395967111745483600202909723425411697080551476692759627194864001127297300470787541346310533304976715562851279646303529322944777661374606354660053906532365518449036150352544649147149011305223252005651403673957764098631557363753644113906510404109947631178295023636748828161551455923744889074080434507951431997841912018847727799517655656757416479039961288892000946648338701869691607847782383212027613385773793984853841557861804156665757697791054998996647055497811761376979395435297833221500329442420944372509051913506591731577485058531214710037083645909194332568736518819553923186137219308344523587954044239617384824534858331007897837343526881478421751358841714539216828287855944013682316738634510515644004215775083684905035135154606664175980071223264078338675404034006136537632693271824673695589340758580578484736309987736075905625082441858321163625369968892376889201494015174080593388040251700815930963936152251859680741202044402306678753262394590077316826081793081669550667699457618644521683722351659147563133692199942748305495853951377464830046886550804095095310412811145880435213761467022198909918133223214249472058193251279414153629691404008568597494197385961522276386319286614916920679044980001625146228022047473115982323979537094968442848766492482674469385089187201295736297987448486649996134068934410764528012552890953569104294817930055235341992809784314247344167367318015169157605115935166364309660946142744055993358180067588137354738704647035389070022881948711333069388669904968551468457444400858275532285990204911682220419508319549075724280025045556756790066803142452054722837221104826219830487931882739714635094557752674014498815162516444624393080603284883031070393335528974948288621135776522859995816949050060913471448032829892427757047484745820103036118287444818648871086055554107847046891978465162573003131792661339891115140033425987815284738265024187374192092516588790736106059664657215114062697160563141375928036283799180749175658554301358430812138020084345423550691900333975432448877813959553509558068509685517220532472750988555690620350245583090788112897009402096377877393430937484634436536043611415894722482539709028896602090510689141378823370448818615184895944992230509606956313634477266667228147067421097710840981097542433763959737343673996622768361461983113351269818370621313541587320582270771379837576608603186349271194520977271722911881309879976796043373748265994881271875035171639892033988650706421318925564726091772410326046708707613661977506227490266254749445322754462413386964919799249171856068557031561648956579605787727200691960323920973815310790024591560923171712537478770441688253352265399577093834769845193278325406736016686883184259352018740398069526768203278545006478311543239818973238736399014618834728569652230536631356155320948274519053594025072132600238733959466516432044764165590157982222968764393013396343667783147589802266831745094993276668559748163631862577550949939418648398767891516742675024975326663774155845838727665438540013880471528134136162208350454056709936468344139543378725185198034271151316760588512100603731032455423072522013315476029117274428953685907104293619152839329560461731070236657817370948672946899358929125463691746349464987268247827440991974703130315696350132034736181755652489904547698747742470468736782495182416388821857478762586264681085509189738609053964941537631016168169541139793661288099882223798474385171962030064512408750638704258671951418297552285547238482074693782265395601615237412001666743412093663943150097129205335375472315323761324027679402299733095015117695255530029519785841821075440119788593696183836523204569849020971638504011789123868817881627663383033579362766859666317498515757143845148695549162648055974871482986660073668701288267393767702827111743719166708048940376584497195076487750179807961870813173228040023385927528757468908339790806204360278327216472118735471321156912072131483270412923484907952125872753285168770759895227443685916099884451622910479506166294705223745672484257605236547055718210374296354144870071443700326426145570555099250926319770562687422085564906083394622596526714562313905310076459836492336025487680230741034899444140944505644167631786473318835858372436016055896486364023879151642461040179459637668332585086072659010327238230416236688098380176551238936535327892182909652173531786428908997227300800049746267306214355793057944476995945008933713782829337951482993097961841659237450100398372383839676432311441677081199266676451093642630830804250108466777140281373337898885207871656604382966844562154654295442590544518815407955988829756025463730377478152706462492776333900461913642439630371435271930986322874691680019661473520922191055157933568720299950520405989015438370943185717236668995978759847274310175115329813146047556496252304531382759543653326561962529583992685450268033409649416957049670803173570084757865806624387634025072454812755338747207038790526862053866149967372644831769844816609278811556280419173869498260964214299529398880395067788244703991628397991054684472040271995614245579869856791042429270190457974836801055609084772560280872284114544979888150304898796625434733776401201246868355156883711876848764674264276513516668455256239638891637253487036029231515824085655951920418719758332504563912349521938713348787300567743614958603763584632209890112730123067643646600532210623737262945155493572611640722746740592939474592598046984951274706020090984330435462639685129183043203882289296846737268912605892649094763549198575102279115251772002389608894792259203776785695579872345713567376250293080260696686908685052093781614073967825480055400349059201145187451422623038167036887829045691894097040600115660164955788928304568178803908443196750752872551063894193535025473736860624484863410459225538119862901525108475576872421431082484632381603900155864225993874930700521144844385675476550038475746137343913407554752908990322411380250227618433191917234362971972184330948867221052552636819420663050565900700420788558963181459992698435683238638454184216991684958514250675256690809580890839339452894869179046197517251555342100387479359227606589485336303171127015369911098487690496357203405135084349592337470374433926758796285188158375362538349637300223470607254758846889928667460617561229288192234473180693128855652306557394919282945080500003264329721460090612208469296776558540245761825891628766773873456946505952762376588064414423632650932273306867187616015014998565669610689918049552047475428836856376930470479823084424447905277678351076781512949944557853685914233660385976733077686642112418407617339116461582023842527879811199014759378392364166235374051659571589406099858219248638634470979026023168328414086446710296124311760682509043926617804677185786761770388296377967779595809960858850733734953771205654827922797673086097545347191542238394961183662178229336986704905751704988650844566044934956298728065372003041995669214136006964708612184805481947768618532739355046826749274336742677895994459874978901824006281648968638274218394453314011393709945201951237663458486488130380945024324081161856660337401302175354919491605899047153879829530291807811861245079983760419074447737868554575024897436509976466393571388240564815616540783935326255573658058758840263199545485645595782290061690006155900952706404799612830222446593065545146739615319886753312971069898498111857165811131971510980932381506639793283679466036352327878586209076914029744299920039120643512448577240662167071054069805327027991902017247813294466108607407487308973393317956292509200391912548209118000011284422334045089223016498308499544724071671439828901462749768191177572285584186766473300212444350426207740519281654034840317807675681793285761408090102219057884428183515017356480704297379996676609807738216434824095947927173013505087665861825915918595576560022565655126430443911341326261558861134315489403212743798150747649958173942862236758314348874385967804297034577014575924011181218066572905003981095163320768233029871026036858079116713237272663337361435578853120800596671460353132618293253671689785455245362519721542227490358830159510204992324234143296236117275073886538811823460652703096432097609474321432641424409860384276394047001631853899758217793222203880808733494422889842674904497663695849029255567115505836161428849790536534079158436923182246834503361064205661183596599803932107092425356539708296536457620419237749283390842176532345828654513538296031810899457777419468963026765522146735662062357824588674192499283326226618109205771336679423318671182756346040086315123883555479283798437337715791438227413793847597046816969111019068498153674072492984581141015502733771893232925132784821223349075208772876949310350078389555434247667412642506262420143452899575822409758542563307741513691815309050982398258726683931080796728311393665724591138745667478078993512712602797938370520771309408021724626879916916455963943846981292277158223302758353425800472165239728582576744044869311074405339419928759075007247569939857697471471705185438008230905302026155899207056491952460688413238856254150165053850553845710459010461519059619345821604067840622407231837572468397417295895527753699101079771703077497755329431303966801697529663043292439817187831722986434370806632364058295491362022450986036159733686128175244904480553531908268001080456172877140718245041848917559297497544415102251048341185271921768909247075704132978425897023068317252686162031936155449745900888094594925652277057751390910666211657648633115905262000460080785847566505794074009000400630164741782663693502870976314061314034762544097149161459591613713948560826694919942385195282361650126707306795231971103994595567862617175349833706571831180948329113612218447383263270168357860999506619570486728545397624187411021098655091325563686158294623613184807720875819151551891127275882981821570102226388807862450078616385929269042423415428669753871838261459114331673948573141224324528945558557787370713128125364422794279972063961776047833452864852521041146889901248272099191893039105217597643208661191682089777949472377845991929558152153971163725834698335678407471653946410286081288026665227899819162671308852500079246994425896614452244520104428939634903505314928805522666597667490059963786951412731747065952408915275378668650556007628277906273630697343748982012573392359254527460902459154120938658984078290460497226660127237328708267876359736879877103745283515183762263187489426898588955821085986104519915271410543422883480816604730861972627380680956176849502262924361888714270827826711490959287883636901483005155413847985217780254410356251578786735449416506714864780565975157502988308068579695073005652565372469602758016064662802407213923575623061057597865774725799324735017505620254575799163052804871099349931148945466293922780186117775799421676983223848175095337541473364773853882282064731286492217802432511869219671358187459999451085379823490370699875776369762486625193744619843987284462149618102645954744721595601991200599760893905810672286000292892392319248198354766473565430821832563727319799055299317482070578051316132832161244774658695928245237723830142607238324604803487541937227287262763684598238334410282014419999006865848174117732790397817509174718883683442337389834912367585452554869364946079208105879771575692132867719597624858498898093189741548212480460460079356026338213559577147842450376136484239405510018100858382506583741730041880202426619023192992869617636077081645531297271356260539211651874596223462961669144699246171770626063670855744076599914342569979736783751764814194674704279561673010004915589563326841711091998161853050891502712249420606865117901963001141938596871700402887293023999425184842075660977820924437918285321854901072188924973636616974079197402403812381360239465654082746879934921398097510162931842228200151348042453095933276762612355600892854300395379248757947503129890110944926671979063980386130037045981810685331685332133040236640801660032630315919080917916958755510565715027001492703006656305821227311892717770555145953228620143510519412112507203254632212923696975802937760190790843892272904160416949651605653273100580880482445047458164225691909153397597931224286011304975378168882170244137411058590455604930929932960050518817000298382181411259680153610944741532102801467386321011620322671397197867785184151804902797262362373050238511287650345465904800282939113681254050587977975719669524602867993782994452781661012254978780749789837311351387510674672283033427895829104586053855688986584638665956101948452077766741620966600548115650659733562697535315378608988594384843092122118475181052537798047399049147395204831528192674467351985108109805372146625832844261511310951682703090580062746024067742755483077058561943962934240702786428119980625023112308167846482759786188898922474641353528545587429208830060400641748246497282482946951619997721317402841048846553311551825418659671756726936822546139821343988266082368855568030726202226636646815238086831998646245038880244848823507149876435696883403857665277852415162311232463573992524027775687503241225945912147237138410992019391715546731373424873882458826301298359850610425372023899772206030393226711564200267687485886754965877608966748313797969084675151410030702108638888689925898275475231943564691565491148303436310154329332560657863229556605974739320454473057951419261916193697414234322245682969716631822636347469000186915455368247122551094019165676425834087712507316835894621749752016734698499771148540916400213609223205865420638425258861415399153693894717826677661525997373170402944879165587417171112595863293122631685629501640595781221197400652081567782895635550924556572334982430485537462223269285296961593183472165170373724491380158358969023446025798306239051270718752199223071389908704010987557492608646927733491436927132309051802952463164246898952556605809131145580061201226544373710022463169982138265298140500642373699011802304247945907531451204330857077755725293833015756914406446899765541368543375139901334908845954820526753216602749892648141749341383820405555514620379781506700871215400944110321457288757619669451183908470690267372694568067336548282957989396794004920645688373478101601327554632839839818805942376953186585443029926790561657864312853744925694925849125266162063336156352333724477302353317812810666575576047767173535532992586826038859841563478627632123689672450664718916140135112291838367998842630273561561653632676505534056497665694304241604359707897544887653953831330008403347525773981640160092894929314223378526611518850205622959933832729602099988324401991019764572197546419388867302425217131402244939073346775005972562004481378296122350444947346639293580678278061602413137630412659969152442416661004083426458071060669338784120065704960876054926092543863840696341155509128582892995864085731741627186767125902470013731490582866431203476853833880239658530984168038748037952808016706570174830005610010792791844877043177660498545820726185816760286713350667017890290857033673863807216989275540861283708695280413780761620191508392656943602522492000030443853857366042506752234843593016331808062764877268565648226926090666619757680221725968449582942544938599197009111879239000728444017846032671033935660296067117156261796826705640068685442684439861893956737129810973892690993137314067849969122558675725010041809699982279615660429798338141832472924233863087984746436398119313472740423496328565016641857862442521889023041653902473543677537843891809830399902911595395296466870126356077271284964516111990685813743474337424047422729674526961210970116312428003070683354744119260264527849050865223547941512540295500881971523272436702640599338976760234950557804994469541647124800613811162123057963548724585202097535367251070433783059345468751895928937277400228214100068085538399748883057290539624665915416109894001275787905722253616439828713495008681985395114182182117321153470187643943946467149410159978597945131864390588098606449210706495762138428096794680317914370453153431028729076644275162102978272269719932904557047629543920468333174159420193309357846186353170042982917064211877247477795099703386889551148264902171709718028945628821750298391452386127959165559300610839796571624782577411691725475993343394759727795420119034730199925596232213927000149393028803816348316102539308332746939756546731172296859938426879237139608423669869069847323033255776210852768058093254603168600740480992442081869839951117082466042994904535766575750752517004499757989994054258622056700113238666331364155102806407540249034073916141411611152168427586371763159353265479750810970216788145641751495150747203607107418505261188826200443571950152301565027840866646659919962936889387468419092341156083521080266140809616862573806988837647956428354262588186449869341419248073253086908216218051750802265919824953897688330207774168266720362804586617371794703600146927126682777491348311005997155800775169636963054805138025913050083456586250611812238453778477772470362195132900878751752497182921073431382565492927262050243865869103333195008710989829966573341845563947982608939190319738621111034830976304552071934702236671102887207031798457166959549423323719383801371028194624636285723583699094557924810308404223939282042388784946956461688279791930091407879604876226176782543752596261496675585939058205274919304436657361320929769030487889432091252178395663423733685818182039770807468408209271040414081852586898902091697512153733171856638958888256195459609014361014723884412451675889799055970290929157606706616372038721723118364437634900653962611240772832630309340646261634321540030571454574659350032831915662632191760087315946329095168023886738036448952930404594428534427907722831492069312856193821689588324370988098259617052621836138172257600482651664245837423861555158116682503287170140738757685518903557348156728992326942372848686869950335892508467482467008173939193755079824977091910101429972668156295252782681786334808787882544454620936489813423529879695606143741057507297424119236535953237492993225125672769171546155573127144253079247997300480840435181409156563013934698272588748103869278100963123554248137372404918595891112335568086589129035302941426678826205142572469666517648017856069709946074466475216919449301577943664676363447221415268157743930893132557681357696020250499880426440777210605718407354222872804702481541487962849214633962528689212883507388747916894176094597111701291748008921199138022728845045212354809199095736255071038408332817973794586547659689640072634149337697276572296492711567158756146914982097851171778844103719583811004426952676081569359512214421704127744846900440957606964897766849217340007150970318004029254458969943329184072878184743900083292566422532253665756849152589746343884046075204305353156666944644876823091831327781315432047093542029474674808074514042055396904426831385611438132430277071789299146135441886813538570113062256091160264623734525484183267791386813823919937479848209118464268352787228356736900651214108138541922975325486769145924287491430359501375531688244477856787665797496100252585842980726285545569356439848723355808805104104347926221602223679342165566178946496487607637029191787700477706090731779179215236370366679493439846335422618757529044087905785949665611030601923752647028411442847245397558677266874606022373170528369930947256467498099491621451982066798515448942056533279409480225336733842200072332627871586913731610244285802698874158983022002195149637389934984751076304472681851570559754433815002106456997296766218378604647667097443909854254555814608410306469692818889163340541707808138220871634784823987823377096113962007180719944284888687120477536250675637610521417504841582687174203997528421607577476262505821774555695551086878233090688796950708660432390826362834686568212888950550102344146055755144660396834717966292326666932409666235844382733342711103801433297687259626910203742282617122429396307940391575767773517519901484666157054793570462289068702702657657470638941845011233258663474900953224468024855691218677452616287315671231797045312897282163612004687218685723669364735868228549789819093769009453064290384701238735320918929558461152864151929900043730731575901194295087747599522263395045085782975399795719880977343649550667742448934274256082445420105945855909049354670124320430514613511593094108105867917337816684560874565205452390921573495296930666859333809791786147711175861722157044021819222094652282140336070770392938926659262033445490625390413338770069536903378028341985020223402235466370242003161432435647372604403105124522899314011768605533240451524285104677695180840335205856617967007563482484436503092854017122674078247015073149066644489474965610517335011119519026169818156821066291659490764790743915508960816246620693597271339636329127679453186628159327851695881071513450324347158907325737461460081989212897087874925380051804441068513545763984070582962679180740492760710343604105117362775992395230650452361721065885007078192658191687748122808798879369142904470559843258754241347040661041741638002694370758534326829782228013709124414078155262469122338580682985570492798941265211660392460478061410456574761050372072704307880936492262489926687339056279551257650880575224232877847739915640274234347961133332037933084350411833574309689636119521930720585840057861508507020606411209112151815092276305538792929162948854877772772338961275564575578193227681581035984043759953660648480961460213548017203883094068421952793673522571232496133150673000347013451197276586437737709809328544243507996185536746298300125320824517233845766418884613083256365192905169082084066390939362709518724448730925409649722518698206586631119054490112868180548684913806389695220886019895235981135911357632532061572060450288905093026819720562868691529693804077502270735015831779686961600239273328147995567649179841670103188570515132211495859899763764284959545750022686952118619867206847990103631973779930540576015560423259934253853876457361728321377256292815725447227436991999597353078436751335198892824144252769248444060582827509344234045205576158817195934468987930230091790908681970612638039626662133736852617404552818518963008575222190820416333221828356552231136122278144480483248071608403997106242914592430777270245000136104560342333239992692165892302419946042108182160659153847869835414709603929108620207737589975423905527275538748576462043168275309658989521600304918685449124059691428981888905008489395132573650271365591025648204993760079782125422876424593239092225743681949150260684674262634572899931984210585180632307357137083612088321235380489908785378065684868810914377758386299756961696883229737439425732149520081014394771456803247614691019431356006774698857987885041080735235962815872040844347128279229543186515529378101425223186260623006026420473006770146115151890465618005791272096016236983490371610052024353447959584594463145323643627942892800213893183569481758636308230159886800681790642070557809091624710087141115854442258366696381919742675528884568332729380192154504402049800911420203273366594236463810675201734832776525645558287849306698251866336145038624097701669295583341350210435030432373164073566077105811996933493406950501123038872427598137582544693289506450263847975228585989106007139628720957647136748733026926230278100149363890644693503405428485863617708723065991088762015270619163306056854534353336883518451743675368337122886767966926812930124492872975137985201953807160880248537752622647884215006676114223349068852819293646933038919195071044767462616008585887428742637492297059243579891218776268218939625566975400669416110047239439008452202709978516805715698623676939827141255653914264867301884694067256640386230276125052220513334733457832295573184304760186871972797371180443690054605166635735615454225795246699969324236196994290633950089815512516369957729875178065632552580582794102576572476673625016610956061480051447410757711765060701234799141017718311423646696821127996553369905523825148503431212393544082342179595667960134023878688337626468030715435136759597725967589271720633765540702948752145825959915865760710838419506645406327818146768809976376025292505903351200261735277398535617192876800967307976942791524293337035067749380571744667053081329768918595541245332853038544804883499700197009242570121411651533217123335491534801473174389319712156887001252227806978038143911285252372959761121266235357312164227671783779600202998214231181244645072002051373345031375996233391217855316256342271031943310404938205697764592792067331062303974003921492321089509096264569402764572141436574283782386964089655473808565594443894565299260523535509136614562732071649099823883015756711331242409356705828494794444542381802752824655976711387685267354618540344307882725074069399409050253982767387858170041918912683204795848269055975088640907330130554111394923087166779753585104309568403001023475442404452571740536715388134131188064699902344574771278999947423308283026327866479174684694531163603215238572635996570119343686234493951023231989147169205998346151791741747264346937748601700911321069205767333862119658609526254449650113166803499661103211219234139983612916732946049715908735407848407507280874950040066406642720714145466513299793813433468722536405503331941004270237807386124531587835502138251791176148398539734868754416257474493470402403605262729881714705866989516420454392395231128172365472905268846553014788852146141421198936441933288090232922574809246186657008616042914338427245944632176665974242125647697375798782379434292204571916957984678778702545113621316331549438712522510738683690338035997571189147576854835664571941705871932563390905109376464494669991508014109159724933691030618422913503940043569138711410395850934777464179152682702265017962344254758540605869654526947031941114910567116174661419842512032492217941617931630342383793164432602182330685471454690592529018801560064472572062471675855148231373328060195579102269295715712313633934304513810137528675695477043268630937420248197035714947964385380310158901731000678866912621347744920326466773071081955843545147144289444817157135574506063770708519319627849824617010706173899543031971658376363618249959466957894858628303216436049316996599741748154548859042778688635312868202804537285556568486791884388581180194843412574563376112583577502321217743252292980524245914503266408989817825175869726031237547770160636716882506181893578011111811352021605353351918593710092873738598145764635104204944213904734545507651147212618572509893027831157566621408836758910768158023602180605484625461942287309447879613566511406205173259465234733591792103939857959173218010526821871940231189333824343566806190144515569663562530297663692738209175813235089265850544818049910612283784632000976092767167027916160123622958990846264866668842213726653265923253694153858349999589970128867272186579449245484631471950793975713224730097754130209798702396281537951746340751011467972957464742344449197343798004142212137330375055778532822334817493446656718192446781303910982534146268963033414632982472987393049713556708730019296508236890965076513905425205438491377266129413003052899844438936381648294112154582836546168387972384113449920339875497375633964647480643995776313634876772802588442895157112669794800942389469975639632311743145577125042606421714810191466662560383734049587251891551229642631435439102155471215283604329578024418794221594088568934006972619901503556195531241964988960695040825150925820427623348186717821978996766296042091880691749323139445933537946606265805713205603791525886747379358394674164275635191930371284985803353204438356093737870879302230562874061844006558745678548749808727705619309004014147706428771571424910226859355643867258185953834702819605963629495564258862728591992466722350844817350702358757957074104807249772833530542731290242264561665377149119173492029991182442620482603924594570185897239844905558399943032521096938844443242252223471047193285395074672713170982866241318518402781780453812709914547221689009103336540445987249292115093056801011432359160867020035743939122216525702865003482324034265132261811102779760632988653433858811995264906002914191730440961650433640090665324967530570416776303516787961656645859202208748841842893059929138613889633816878862159007205380623306182785656809672728944914447704134972425310511350903573544226940381732109797896697793749120298721258550407347715020207077869535926063688313640763993129110983568807572995286941438288757808219801401276569216519454547772818939318309016154341814332943028396629786680282255925440332847909635536063355384877262878456881760963740986923735252539801327404343773747978617150754145278045970976333631319923010731508937670614654957071731662932607928822727911741136270389142759949037946861968185028382742447472684751531013504290987238892600299636928354008711884834437178154392090674909495420665257863787789288524511786937967056057051948272526444795896547555808621430869718073477405272415274909724116747951723108314335388471542491804625119472201968780956571011857682536081286761354558615932104786378578932841097816978021747831827696720291460546738892823450248965733603303794416597856461352018253779019181900463716698820257358187374178123792800071161811746171682337680595980099829779627621881819786472078956432542097978782788935152550606544718348841003431134155508869446181648899419725254586837522092591559508589276468305151012046178713588631343985806251971039995699985044950930155924925773755081427224887247850135179551999640093726545016387634036757448117791676183979587986011198506650908454625303792541281976738392676793685047171623452309494498934480203780973945672992054322467169553333577328866659449522564406458372326048276511815117300924877662642090753573837046376316053642889408177427005975777232217466159762233438166582832385950340678772982007582358406226647861660409881082511565506716852172762435789473814516386912801769706174039544574827991735166424305664892000681049545597577945113674832259588744390340735187521535100395873430987030844392541527111499790572340442634934431741388447020283722993912680825677447721412217371872608633984424958358043667845984535662896218230494529733927541009004700797684460528625005477867349852319968006527746491737679048737217335115762411058240475122906204010499960543652710177369179183941204359964609725284247432752882018748379010605829932827631605651390707009368393669105329555939345004355833418982914839585217590121508366646881936523898116570924046526628765939816244437394270293858901767006024387108219618581689349996478246507224952381973786328826166278374596544170201995273667845180339246519318362545721646659999949662308840306441414422746251680484474367266771683639969541899417235849818361050276161127506621033674687162260039617473970269971414806201992710975018825126920366414418645859512349268053772232831617432373729916982955084600144518459716017072231905863905289541795666845702277121275547584629925640711453150128993284187590900659762933548441518864912722910811157349857213691893562983848910833637307858107006342814300684829157875767523077136789870197536962543674277645621080518188455401798439267707245472049959730385841902848266342870132891225626898651460413190302606157200773386762430226003679667063368967474089574607082799866227531713701707542055256159778495764428448301969337703125504088091496103831210595896351497316993665997123469675259758580265251094117356015128646453640027191772675613750508960840346449795542277271172055133888676509487449871533342809648457706175005788163947840772824918609569458796587775452390991904874194388393931077007027688806240761265012631439339453899345921851771893019100950833856622848407914531336567501198031462213447103614598717930967369736020314600652833981730092832849004592052389307737538104023789401858460564489265281855922431204766110884593645214194839750304255779349784607405961743722897584745746539977980609645907624709768925999767657582573979810031359826739676982377472929263421215722568182689405136244434825868202444304893647038099426282053407946798620512312937313058072819934828195225170868644819660707232005911917404667374927675741032603918898242738573905807073990027297292876790753942873017463832002229675557332354598135833347656469859600552691526879971714688346320028057005577134985754205497124204926641900302992146936522730366085862972009902652953436719322365119278333926485001812683729523795121685533925467476208216386636741207540834210678996438580951497362586729758090845400755553687357650659577333883036970811334035518988419796113709445850575002036754892886058585521298200684946830332380253320419447975006239115560642288440260415888718479498132424293740453790596451905887769586260612422288105939584933394805217331829508628258009256017712481396008335214924431256416029573468112007480589340632501761242821178016279149625235075783698905157070530313571494543649492281339036136093122946897404433424995463453061120437280699634938918208430718285625833756332105737631530796166832980650720951082173434040316602457140096267079368320835767751974931161699405708242820640912065808318172907498865154947716076678059145179994437228124289714549802373241413766321204144824976079096431743839137194604886563532918400867860643065807728860935029175110860371947576527870588253121012415776394901146595525487678133415870573480373220385857219954866134127966551137801261007992832249695589008551413850321732212793973707123194441232263657823124727549126540778068051905061252099173910617399906842640827274551862515347063661971691242947542543089541903851585398111577639448564107243533190862681148933902371348203125697988719477645041927735967867344856964681916226967090760573743876898923635660402527544983767204734421565117629367800141695638764834427297989844667932200767103613868727962534651475683400261232668023504108734783621049202802876639935847359951376128738989756745251861440198263272808590058938816087908895344486786751100723779046462704778754732316241708549188451887002113201719664367466872167391475331118763570544180775001255676114118330806341244087946535938074502842315966108290833661723629580195087105187635454797903140431025766781488770888335157886806581763532373325938251826990110278321212416755878939892024221173074123399295617375853299902411727544781061978796401238546694535129634184443191280576686775970752234459425450396525011439841316780218403035385381668491438864159227946033362505127781044355281210669342866744601229439232180671264531643616764618917897706554537175327169742661861940396124399447828863576157322186290579545085409903217505743058922919729766991400117133541085630323248101536887062451008198364960412162547957615911623730603936654291062868458496147520162976219561624114258666865109457870142169516000265523893319130689774354516970715680299502646569191484142796199551905785594218849981463700699071294283634376052990258872514863634776200182167404545489851727733567864689723437326857438902802464396636352981563139959307400689773836345260501359886281210496930542866077520503366706628456316620671451932138860331731690256317040376689175761941750970791769361932532714355704556034631776275155367497224759042004683187150197196613603412125946203447216824617044388204916679375143833867163412514067848511051105738463849642962311886827177638989344837457337557878798716757879810478033231400117539295457823016140879365527568706503040515989551075643763060916087314347972369012155966086653953409466132816835495662394668955134864490750176049616541134771307831973332172144716626954618016009019065304300980014319458619355311398891268783533721233936308471115110022654798467515691786905521790735206060667824623590840415947757812037228623882959813174179316284165396421848694266045251349933545565336284384247737044296105622238950681812486768497723489490411648009757533630493874510135703103367728417341571974160916134891948133499148009876060830070012876775524458189178954925876172078779407568301579343116357028875606918520433170280824221978309665697012137152011383873631764520924725386025766469489960995053252246551966051860222558560254781981238599403857301650064744364886802771903278375349597444268598576911677422464596913036599320903390250269482911664241008519480082317179189203184738602772284202412967579834985367794956322256192043599985124310363780462151690888071205847399712192541275718382047107303154354034511933203270594448188744899922708865014826355243803239876274044966921107089415334675381708838510777336712552945671881053242827731359728906229306404369108061985440251800749668701977913061992188734059789637889296974603163014034190422748903556143116945626082473510292008402197647813278616990243850021830869222037736419540025491277983313577087632088098695848973203214789815092986822309433764235284020121172700696689657041086835960526026691367098293408882689572455431879346720916468875256880187504859776783390941166468181278775508618912831787843473768806105311359275991611521306455246568414215771530525187129732659878128492945342953608352150698271822167046615482994805832954777813595662838218025124469876889572784163304656475444469754228784045531505609400778639014235102341486644446635010309237366989172514222390596522274288684204924388239034778886128740124254905177247954112941676903954845419395861429829617155910285375587979482128747791023969770170057170633215670690583341258575421170262698592665547376403448709686998341894555780103343868640933265858947703379675622243703770417361543823423852165232215019881187239986115479027044759684446340247735230031982016046988867145175436584150573880769512394016076688247460174605721698499142641273354130999846127297267272367427079384319610282782759345595658897824876699914725783967726006011892908647471298748918772987534101150000731308132703264713127564437144911654800210167985132746758924243700840054616256000295838077110336893674627704250876919262709392954318210760814836053244133210777290533737228950154527129899398885947139640746496896203091770301733353185451134192493711578164161943628776999024587377860106848399765245127274038547122563526271509675204611232113758369649052737504041536584049726486948762479657639324589031468782608968258886229361953029090194002297460095514663713416974712019575697486626187575647584072571119643475962441709092331265996561239319507066346183443298739355673369392293574092516777677198100585783789996229744400048534863344042811346685881922141316514327552845367497380697975365110655509467108016068146101396212949584049144051531295562682827917373938868786879123132574543566738560848895737291599418126813641757040228469889949815627529878824157921175238245145560715125153471984114573966184196916666793523992807763831201990874416007870259663438545935288046666280985040844491774883814490213802454435642743218958181594410522938933020705102420283278804002977554532098562217974160112613143562178314824565241641450565990221086052188627680713403293592319506527688568385265585797478183320542188883601022947093357394844654333658762746279712415888253127346828269264592876378207430219380818389594614031320679758613484708146974229427545692792147362224546310517545353652394988429278964346474165034603726902262418257911010759581243154729515034603881247087665389982447567582629305642483013480164038371720694785593679801205750233336620461224703311472788004475813458569922166358489325676897060892108976395947708486167157480532163411657900606170392973821110435218404268110603789319198030666367586838939058144915215006586227540404146632640933958385694790869917359478233029237697312471979701219589695511054413830516841636219868267224653553425772571612044444875842006400290259452193219730768700436018893710146830729855610547156820010288414456544786460981148486353799438784060637595119581693248301448699813928531852548301701271119929165834814312642141222037853481405261109690790983425312763898027176318044751151875345591818277275364729518590505614014403946242229318512752302312372964725738201115098031439224825430471554505815815577648279508177029805377875936007084291790539871740344073768251530698928746711970387881732580015904007554804620356196347946706405626313626890675193637360861183352212973254395714414057848201788372130006116444345261827910788792580442520415998071083606799559061522649254742679711374643055709683056499064862751992849187124961210176279863991628366054095992070493330404081065654813516130240029975429303541938084357410806026443972831927038163094692315145875602442605657712824919761492766635586526190143108982484380129947321365791806721338480094537828694814435967889614734563338629675258971990002379632210860769463608583741586965456339757974282575150117218781107988356051548139633166900158270920206259538915040106005704686215581452622757770461621600491893872701352664037992037942931325841121018539635887155924957956041304067208454534908700039436941081020945379073421089523571454375987694598736407873699405508803651374156520309487642008421768151865253151296804155662388130067245305754301292892196270043324690183120176679609926532189981619811026533461752582553831704083725486642865851911776231720153033512838720970794893252618973202314708707320650762245630124794266796847637884520518671855921317740429518462096080309531376182815818215045941068469201642667425295970146161757686867427251064990234119975539535920048793769769739818454822576187206842202009511471019539098428453903844539240420472529140903205160204164844626410177052198408706139004887424605840539174369840180424477046408622126643161389509100472972591999429325402814631864029756333451073163394920431033651828035231773207180296968106279017029209818445662884372388675529908141504221967962221900822833731123166055828068817471824235949999975791204828985274443225726137275460755014350065339680392332825264219539053186389806955020215612845489278903418940700827271342256564491537577070426127054947007308581296519717632006125753314061698646695168873731545731448271157138575967016458004084628043977329780221708249729635256306179751677068583443695414294416463845194511326095689429927819056700900032197787538457179389354130283222020054899060696858575946370056207147287145342212482802189124204930513927533401398802917840439754268046536930336811654132950258321541256370970022242004134787221209198583055970441368267118150700169325815644315874449006599314914708172900872460865951219349746677577242088834736342485034357869913821725112141137903944396203365471028539132385133498215606584765815529967720929065902865202163217830838727062795582763986498292248364665641420709929680011464725431776632491642763785083946114674536438122323060459788608408137801101624181598882370867213026425280596730712863968235896562695671488758574006358115930520336805041313405754732752049139317838670572642172326875129755738451843146764946540731506325172909391625302226543084716685369502891021605826022004773278158159289601074778864149752671945002588640630784525813453217693211271226390820036449241906566884087690927705298600547053125769338413780367535002259307308536950551596473071765336746402238622656874045358437081573057643888132377696854746122662577014544288776496480446831734870272273381762709465349768093374554787975442295863541146345886431526049117728591067652460055388893880905563861023988326911946628454988568624241560537518673762524379765507325338820793292838560595676679040109251920964090324766963837652488506849763003839638400113627408240716473099029341908606822824815089216516214890317861211682612213397392791430056074969634423871996428729606201422653084815756983469908660768404183351245887271267815103847038936121849810758884904916759966602678370620210007546143348012665973428239463477063732466006733758513110441106057420348029161830420319931826000303998279033332733998561427138912334478448068672200382005997406776095824109320157091062913510091196094400159022698233608408847648767250920584637930354384384405408456740757992510023599742061418199637419753037674386343026818655284787853514637046137492295839158814936374487338438248411413980874081497835074132630053275212746710434421052630769744374393575367281266567666396276961697612859727896647013909123055941266980131336092259625015336292380227434574581807235714821219578565569487994380255953468548310705509246556617985851493907818612332541461795006167306544792129508528265375132450914339662175667375657880758936677944321818304745560530152456057277336968788749012321378899987417976138188039726090814596184325954920288427363273619080280041187215735520376444340041949667572007617526975306848214787761383135527606917171355674920085880873241949843652517080545939398252206783128354402389588359893775333397858440871508481690586171209626808987090460334107685178367895603485262809557367256666669549292065097149089259421533047561798570432041844231250311982387942572713123798158443428773091222904957462108782836885547323641015727118653435701144170280527507747209211926621585376144443959943119726414558782534688711828692770671488920816298928523243622031441749492992750459717399041096537674059839796563536621071936437839942595532742406164789099275629047211020710522603228734867773026615776907895281920517898284871079509427151941581903786387206861565733656310702794890724935698273814504137790324039369745453522851656301332306588602966289098660690300391756391639589274833217786022875582976707401528775847982680462929280133354354427256511891319124238781745585350789693601797091204740901408364296431801222254829831573528420634140335916497129469150296010318547882542474382814091973980026752571836944228764203806221118731560884669800980751050222567424149644886869728898160008179368055918306315959122912680469731355610919343411320052754754620215297356814695661177650472795846476219305072099079404843844909966543240113982000685545768901338809983953329150485854590169186233357873374640499795858224025797139508775152169878643197076323152758429420190051655049950335291484711627170088367712514264300501526118009589133334485268556206354479182334859922067628494477287468758857987277727581635634863259987594707500057913679378702465275250844264734347666244943206200266235339630424032385094994010946472117835077779874449838713849688184549050751483403574803196045057472830919530786788802767180340636487383193055431675058033630665331531952237470074470522896281450964306387449351618873549600064429407725768577753617547236353881606509398671171049103054237971521241333777988874805659267301628344279747481131702476954248321324480333277551146797893125494832846815247683984526133410555974981145606363563339035409133386975529123409738543618078514922496866651018379246388854781544431184458461244089397391610074008835495205052684077504982525788250514840631162242251525850932333981388352381101285146258539668841128303143883149123004934102412502772152903064015097757064353568746633165040664812920486369831516664384193111301248072378382653580805764156281751027963459646620109513785315467741167190391909379897798164117083847389204292607705073213629894737606029605867928977057239965564121988819941160205774175115195998238255302601682033045160645605937392023980597817670115833490453892445103321559729502513199716342642134696209210347106533625240459541977686759693189948386242039658323010234131668433854685915242141674033425769495237064573929176103458164932323627193188779928943648470520425285298927803082283883550905760087142712839645251119666139936197026637338185652535922212473203165067726796103299767808333490700541023014663681973381766157368766391360903372269599053781634374777481789576672072384311295748769256480021777493327658763291482267786574349004353757034159432690966760677227451108963136740910781662116735599690503328972349941025725489845983820256519399705919827178285614495639967194278774766450058639746078476364024873538068472135687337415227708853905768964622756394121239633124606088311851826702115217517100982627869050069673056657545353859622371738881671027816032455389467082846934723247216610101447279033108250038787960267256470971658915419222984071919237646249185139669545969866292338049265024869258790209315338905442143792040955093489968323043280542550119501747499459229255475356852338199939828513999121287154884112898382567432437760241866692677401512687353355386191434651247996775722889108725283864085565469137074225004062816337805586190505429081672198942697587486978343201893798126748658630004390454201511158910385068748054271102157339321937987021622480362516624545412067136243975793192749707302744172732475538944139276783944190895032256219793565210685137298344136055170717917062231203346025111335314870072048985170000088626790097359060667748786405462727476156068047881444582831512255839306304054552571354439590397560978042684944379177612363049187736297874830140099747754846502087533935562128281264989917764583671981508021725125244625529543229401505902852965824981484144510855865855614458411781109568428975115261158549496149227567280272956331721423047411115663763186928760895464326179191079241527359347683118023416927267404230802295505067610040760634104017246040885573748994517775027183632809037299131530310131351553282577753356506100948242797859501379648924867535484019208794038887328829735931508566181499921913449440031200204923464008927088768547206125772800449449770040454916944983380391524351219706153610534114670162440030437505304901332104600370367429187442482846116728932291029186957302873236965235843886301950741161621949361267483753207446509089852392128226906277400628206014999213040631967949028769160798967096931390380913079879822381131782162569774083575387584276414127085088200070058923717841149402196972266595546485550594021500906192711130576443695219877426391115427116270518739691362481567926274249546036564990621651134270485626298862507265245043053318379638483927090546399130127749336529811511095888853216265528159174940758193406708347397197811882661765895921666011949555665522228038874977277734849319409775214420766957548451374342680362303398657800973140156396579128984454214441530671381514378203798354656721854092858329096041213560456973769839499539941327363770436529404848052404316586250098718436223173848402970390196834860404476478851899733025546550403439386423782577523050180512375358317509735693633929827111570074518729970146794176755682378269894847521681569545706283342113056984232395625112610497087122623713393627935598741390450092600497848496994304187835523254166226409711478714398507687196344210229083233368235481450961713475402747296758472476590884490322517457949807906508396103570319434789203162502819426368455606129237371436196446102568166627184770318772532455161547521315826479791196937769366090680167289639882467188237951193138528507581878439123025739952258367390289283047435074940220803153041512734923602900774343698024814717983978047301898713593733379081652416001054330582293901757517816050911272089374287727675449348737931500644706031864445515554018661466706007590268380222127521620232204645420756125746274569986921533963302821231667836695237171175836706575362527341019732313979355003268642859520946265201694645367538406341991511907357597109307798545660116140184772938864504588340317123104871756959715078102640802756916507542570196444967668398321077615336188351750196862064850620221663619416523091233759519631645724981218392423281948304092767024217890623163385892616569535514647169357309410924564475645515498047227962729448296863504614959882365450194064489253890369380437932477926350339974167303410362788332034888338940807790611993698081490400136516404672003329708016914019338578201978700603169351521217798568298519617238472341441946476167630285451235023270854663371185641097016483610831078681019508235375411842956060219755650254892270935433971969517238070415022037849844737357277027104905711895983578881182706769107222990019140317922014110775853342022132523026447487090526617902037776275564603039019944196210302681876100144363527737241887220130513076157822598754868142579074697431230064344912463602933396842918035985299941298748542188937648149649039673538477277767479008360349113353409148657655656113605756266423956469814342250356114384394371879195827326412633476625506144543505594717964869898743086333202400031558515332963092534475713464545090091785428649150848981831889487462418805312661214161212584926467689459700830303656698968635319722590654823900857525088272951585057022831939164520042094906102242138634695698648187936496597061657808422584260756569906083128841876215010440468114569161921381660315229105509966176787962820411501117167457730349548797319941069961908914557928156106637460552844030033839614216366620395460704811750748959356474960137371725390808781609909505575350260882217352642839149651526673557268513895090015642389539218554105190055523974160960245360439022082810317271345229828199687021269685583469096218253501806349373463916008282462481777892585058903202390334134331938413165191786232955578284347472209539441824999556968560219220750684869637442351981148308288341876986365332269477474987237803805662323227696747713281603637282346742603196010641646554774518813045070134583905775896745196011848973127934287345336067655801687201528766763673676472127982760820244269416798428435315480629132597475050249627809494712359304060398119347091368672255643306527000921248185130303918341852055747637122418416665930433258142504879698232403312588437366400661014890276252709462425812654382578664552532052720984294084803595537399816307284591538361816843719508395889696021149546699072042699246097236824360049560623605757088506649039449102110475553590803829059850856356371459926048297045957616690046199653885587340366928487878253563504971842827435937547232739985372288566811592629318370651340644198296116266807173396777231861224876608596377136933119683875731001024267414782797026852263688356144462519183926740034966031352571374814413556492405847616531008659836301942500445472918982599126231617124891727952761206535475978971043502201298226282656386356421386464377084962918358226331887445473863533489356888535422584414485741294736476859546006974152326952710023946009798199013372741329823623181458297411815266414908598133555229535920982112768344542526040515602546063661389335384423989154733106075980124142874101597707732727111046911674943519224889167234004498463521820088466559927102505028372781925203399667355256418065526259865264887705676049294736862075126008112026227092422942093963423789485881726964089694988101170378250726199210414165394585937909443016375050971144256243649755841247733677990219551165909693929561867109524735873574631097043178438972501318321788601631943355887431786037720306520315484865157251562224388586169107563060703631619709680847391138242442458152055999869721267911746054054661773994677401703917157117130881120263612217122054548647162994037347314305749534684313029979108728724449751134543012060959025949536878779468471666549162004603425581320022423148165545879912773646566439121471287719902859506130848412388977223757166326768617810266737270343107530417337075608645665195121966608067654027452019218536806580542430977470991537387924774425928059160744364701427827178515280290646682015846957384705469366802649612721645271740612607776385504544229147598931437553512629895802392253204763836654431141114627653204261843572600054560644030659083982355633713079520923947512380438394418573545706078683301102841558597928692208169651636165079322209849636922798120634500790369665550986958147999187211185064006844237552210076165932083872496551185372050695759915948880972512994112006424668265648030311346219160898033137080710881326892541003770674365953229290149955708689001292479273587326926644387134621897084582123922910746521669232983076940686767257931959584838692097124986850342798117056144827572054672981884916897280932607561705956676255384391513737440625086731699096607940334118436285673101121238503253343804407280754570584158140004489743536446351513136696988659785049114054928013190530112665743174627395112461354188318819576390657882477582705594285627696553505344961516902242096090195686647946601692841605067580394920312900819399479510365420521796263109417250929675610232938311149411118168003919619703485327026294835921092908610313182476595299974936548716694991237158662903313836975198232776947010052869361100034378023443223344373747321658595332870533363142784253581165204950597559382218213905925566511416721319931430324043630522235114972882545293812491837621604561596250137665598555831907711722995952536596371355399292189120202743075256504763719005795027522261113728162308171623011369373772662529530074805459682163572965209092751757668680281046789694434521342296740769717426390485981049405790465588559834621898274796892293210927341646085925131993355774975278340372160842764536030855481139417651251602430287949119371263753734629929095188823420477402563968466384750204643371083111547145360612239515634801972783149208105255827681453487293519619885759812596230239491078198040873988619858479549952790477431135418484466120588028421479685210539783950667748402137038194633001780546172979477482138346368661598586978523819280939477618825202229411502394175789889597502993354628301957252904739172155893463189575041297534087718698996041089699005074704056779550910256313138040576775440636703580218226271078913703603682877161564567014769681148580191236449912109485629388409906736799049049654371740373448809523245784340902284915797001867802424979807479472604831793310887395447045352676272299185518208299274678581645745097702967458089732045015821400625779393816146334047161553653826009566546199523605094209710534336752115096270437794378557761188138222632977169002069696717206274811639991274355968233844161648762326978774533558213056752925379567540358328136641996922925771104943185639278837903061351145729355868399013881125569197756643980944856857378681944865802292394741642953739519448933499032181322667275291024690373905286946284798110580063420986130187930950876405837518498022215738564885612412652432744248636587908106535802415533647169836214216410453909170552116329623867749304049829218159049101109361696485794037058878491512083529302837592706216840144623958195381496350021890395831122849854832903658198283638113518741874459195875382842721658245972725090005546173263855258657811445545761627846169955862473531080613653507186135634406073516104822978043258859640054668524627185735937465315135911910182991023272975773629117709135019105056631188714084695444803002748605161975430696905292728828239851758069691600977619515063238721423089841213599772125668792701200712216408717129162227367365226841514932952567379376583053444646965363206782898780199124907566956951574637653203641970883876520662681874825548986529972097981092298354293687949473880693943720216512570132164465532717282501083483278335501243473615757198864052032936845071109683794558690915687425052092396242696431591166254458555966384871090009791430920258213508776553694838959563569110921999440536586388898427807329950241125146953107876056106280185714100626577187216477311107758857663059631434896173610535675679068692850055266390560257085975191119655545360714337134018965740640057894105840875692660871142172647426978946013216815976315397368308724698250252654031299668633395460479460522739346430589278150887535976265069505539916911331408144218509644494914702685152696055579191329979176552434491848057510455842747757324023175565113712332955060568772276977328436320645011730097807884001971285446667437110361471516244247627270673829657991286325330544788789320246098940270816480139356182030402917342017004002053609906931552720169758121684224628762215281896941621509260622787983227953942832491089867442958354477580026622914706737823934202150948243282355599687150619657292210933175183563986248673030086586699703301156553708312003989308368084677945062341152626139202563192281505691165228750176762146005460471449156947631463978858574614661539690101530370716169281285979719321910620530513265750960822170870883555242737870813503284948034197029225436549141739786678262376340924490265905003877042428205153847186546343059765590630458254978871070545833844502157884975289463761349296300446653914535074920301142527200481435588507604802413910699376045449044568578103981469894407875360352304198670288560663016019114372188229092397190971940512537387837722135721465462374374936882445916024673213708788580713853280421972447864930557603598617483846127606264969989338189983205995554309828482688415176301807506086611438050084937970324860234447294679051740462247655067238246334849675901172380078428018493115392604302008902087896430807795722299811380114604372689832446030468561440574299543184450733200986177308802165892408066523507775723025268643465395871280968474640698027143280199949285307546314970294332562579299879137605033501732477404266354673799834786564637798950778222882808011796710448703492757359852849600034725460030004840871892325975835807796051877081835548993105682039746423203977518273762550145251577023432053353638388312790265481225604141846092607225550062764379922905193369101830684528077135668354700982710340018785970534528971737643456491917310455748143012818918343760679889569970326803296006102537194675727951862319060264447605785944159328565072031533193169107530652213028616615521698602910050685556455604450779272943967376739408519651552189504687802109845509339436915711515108371795903743515431483708425770049743613436292009811607280490836073248541131441556381040853182096453022121688865076351310830519196142856491821995581606208814931906681234235107709163544328209454056995055054608625359969801784003990094434285102998811219531215611911893208888441415263530013677308702083535115562657179302290920260664102501346841012130383770932446535288137303782035037648409024432786216292715845798487146209185387679567149915541412315659890465894304508772458282792665865056859716921662661821523449942704630361751510497479322320769873403905995873519572236046412754818036031200041308484884668997093331777208340183108887854381684941910139671521295448375914783341603496344486230124124742343375654071888290086812708663861347653053133844254821743938912463024121810125593077517857210681667994518549318200006827453053443221443702416898107527606358526503431047628498399811461630237013211439048961557187471215526499908437346042319550730430965268444649525863410772694711276359620109657912433446207500490147889454547915708268596347094112135282294315869830093437761166832195985316813514063283823301937507439584489639027176938335489176604551336843801885600453079840410863383284139923227401216057513562606866103111199890910305471057142393715109731766597569224695496499993313523470266246520851117034195508172955427430459137667155373874776204163247894470489973138892347568455043669929098001523428107521799264964108112016906935457498719733953666734877649924101083248251429532847017606352194202699316820604790618479666296032126758591315020024638576424393872369154222027937916732933982539300025651937781824644457059110544468098914241796421278099896172355536424688582740635693546669902148967400651678626497395199828394559931354290874824085732407801751215948973945459111166264298611728769250261932515778725848070450217038808122456819368880930273003365381987417875277884479013145380556803593530790081173852004745997676447748027560540872873363377120399268042984342593913216648329628080196105221743725835658258361355662320330314397716057606568692687370777610207848481976606542187163406923165638260596071132930822995395270587241723205576426584183418274043859759217281226776583862453357919935016523723389781767350399166657299065520418412756519259299339733503282093453967468615210089313490158500701653325675870082438884667173341490757256855123420144495680661462263942866601402474950209363630959527241612865292166276973600528539907644863776326115636851334449077980164633556743466806918061847052353010291563132542669866836518938515602035411512915045669563576957952428648191410629026078202572855262591482604825537882370409332306090788379355629455813576383124537211142510740750425296095599632873734226601471360006881616968106382224426161469225898118145424818781682483607256164015778268493797160739769900408489898208613512695813337532919866871017437367070048587404442520218740023244219046749670791309051311318913345538929944454565801282315575304664561549858231618139805807408905274129427176348683446361310833066378624677664689472502027148814605409859228147546135936031176818688321186545683593695968288539103414598622655197076612369272772831211835425712739017946397759030654754374767508392380381557689703068157133795802160151715528281206256152126854717727543221519535759531787225862487999019840328283398274732142811718706319042356945292915122108867749697584424966424629416493523071352434109580582663395760168300556585484024345966497484035426094481448559907142156364137648800993463663523292098285941039050769963545994936396172654648440783610099302349276879705688730439398333777928948383248586993216382632487818552964229168728257898521423695443461208507194320098620140621739760353532573741016231066774791644139456917009955052765617671162034833560290310889968261955269630415339059574273037131807174142669954376205560233573633310200847731036781049738936261726933617935270294287993787024414477905635291261068213657934119168480451904592593705699745184316229158954317815779589536958049470201743315114188326690669893461827304068460060705554885689337163470309357905415977281820247892504566596999792889525989088587322816836390732302321057896193299767319415111588206083315085776305358178860410586907281662653481903299451640239398406896289123452296145831573289505016243189369559980429126006256276701032553968481636308450399462282616722181872557275386338917998004658569575567567615624617099610760106709816779779006076398926495612047827119192719215607620000835125401298889556904530013948069501829491599376320996039653826721924081670857227975180556899362504914737704574454616131793045131193069331218249788003829684240290221899956713709426443530729449167512578316569920357571082695016530376623187231003072449557951923120739270123454109323340475442438850606600105661412624847961098458039728968536739786290014259701968171505287248548545519014019562064303364434990102886455886988489364418374521510882234643894038135891287557538332426589950406878820067646150680330947358390469450863755395194851226905914413361787394668619875004098694049655043625187994147953583224808695116976293060015416116299933174301708241623019016154781326903425098763024607729665683641406323176776402759541531964066195272859171944129860418782223052804614408683778979760950616376157377464573946263597173704219402153269571993612333528363546596605216464084905273659842484282681982032104871207644619825417345857380314227061767388545011032815897050645003170503052169395920678482867317930110518904920068828653069161829183159373107915187792374813051993043110999921173368401459617729229644273180895915575796555670727467886751707313272533959026044228980835170467040680596231428923058973933636238463045602884030742332704044470743299281752327598318440199813454148259962483563933625409349623394006268149682179102834170913086655709802097201710541823645357356545355062104825642063341978259229305628979072420459503671319041262244149577132248079491713693278620007006512497965388737397403565740156373466939970249334334533373251572013357399289982968398534739991563664656493089151721516905004187184966386024928066247163302867134181836893368652772542045927901656769355600703320454353549804110914397527655616788421671801561566897279588690299641419756133002823900792196845396550476338676923662589696090644531298040404780254672607096884670944371687976835977827084493629779789718544457827205348049299277668071741294961288943003200085872748847362008133511397446839309738147031756519873859322718769283425823236298092946249010982184556057783021884117248923605996556468070503734453504414666513353087189782795143526150518890290415994180798769128804939406775378511362643288538442125000337601333661979800932119056844550813879041898864835604494370522422164721483407337749078616976790774991531935009624039027226964818453321311127033151190550584490146922300410415376644528094660337026927666283798666207262109386686417168823964540693193624785346504760674884404352581079069355780117875658942128368054029477904214054778000128840345036763470369906427541365587562054064281719480279584796720383354820491316031658045683537096534984933720501004663075888352095387823982786346538333438543311948196403393911687151424985957979683814254974843665872234309522752931812935372101095429677387976158209655782992495528774361890135962932824467665250506601170822982593519112493331129722565029634000397699152414893941876690415805486918776364711937374141968076223474199491469983242132320938322021415986174701557994934770028171462950495100125709506528117923885231188260254096804238522751109949561361008468323330516543129310032054599684605772772763648459885951090390647986979138510727274318254313359591242514439762944358108111216135052547065424032336095364019171121594118407181042269793423517649700304892650832716217546411467663152529454885850272155041853947521153442585625941092452639581272637486886762488289875058717323851897778566181387239452906104792453751423334143095972041533259475430003264498816503605736082204509405110213998915163025629146891222748796826278973121921820560107623619160258120092337829715344520530632942922816723304961701410019897353776898115577955435425924986779691309351073177586979776576174013562516262390594263272914587916965076927172470246011520783425235831453314826169579193150502046989188901861177912355350735247560248695714032792487478120444261077739328215453852875645530831340245763518935332790905309628416639069201575292931184892366599343400243104018824676480224167599262799731173395031413954550905225836916498129914343892453172068445364483493557302673932680124496408893516405320377638564221108772082326112040592132739882922521624342674823029356524140595506019500421534796113038999249453260459354607838093117237896627833649094607846909101624354089954504298264268194519466192456196067791615079086844554762917652392066015528636733662738232337778128039695367276087039975788975515037540970486098447269359760605108339857456130102030173384810291257245056547109074046723131800504665247851319164996341685230894079439047106141635645756554802252391551591639472796533307500454698462472805276584791538687288710078064997991111265569176769121748926120506327792584929672321273228724429644413979683303632018668429346150572236922947610680704514347409998299618017919019673494587804188173676789499081943421094257826403602919032585234609085118391725575371751943536035243715442470724219014574512332975317458201803510457983198373687941103573584916391812521322015803435793590243052257736014756015742770108849663086763405880738953498340915865643404258441330627512270225051464627283997503412855241629067228421630837619601602709858288949350298080881673663744666342706968679991483248978930831625480728559719708646223556314468697839351050703578785719916188877446592317252529389300689390363291194789772983533841934571810976361693955898815735943692025176055023473744018441432135857647276106398177556200397266775327061386035447132445641657631605715148670610288844353129607800429340737646665508984204200884562690788985278200091354037316966590491648168460924436406816645568940976834533417841502140049090425038634763947577041341856142508172500298215128423022546550682815635417490422552133754477559060252250885876534281216598776901376948106357142976313133841796251765332402117398637222030236352188468568558535519230472923659526769316582156287602910199072586483806479920116885942330291877828068653100237704238825838336791998600909213789669745734288996117413316099651307806242953810035479247773604072428427654414692699833690090847131721799995781239909425826655492034526259802079041990185286092306810849673556137261874531444696895930965944092450249686429270498713810587442229207127652400517711604094147643714663806196021491544121272441060725841444623830108139407918846966071643586101966628332331315598346964855401639691131568938733265553691590532725779079056135931536686394251025448060082053073105460302749930288162840620175217959933413472153843281365600896533347761055719559523848372719778096302280375974801122353991629144011596806558247533040967418012463199259670307659246160429525859806532492199167659774722471916269705782876614135494113669438900263034927390473154392791196039112622784720212705377663271304379069251420242942243686509438122226925933381751263748585425617651040205876631702230796825219737457375809620237480068189177936296529811061360464557609541865331445441751789558148985324636995505100263405608595466401010486368282800942469840054672042871046414269421999324079949002738489199182197121574659069410342749032629586968846747021267252271718234213053987759426307410133470744980404076220635333999884989315593912988671631897946719579973015848897569037289199237815554858260007616732275540510569857679697457473514429586050181130025460973351427468624717070759717241617241292462799209704001356475428250282232292439394949799126779728815867473099617026952635596551349193949019969877660833936062656416903321209357146223787480826967994401802875559704805162800863268741225302833562044822699614464464415906112849096751019434884898734902735470586581939930724369625653530648150779169130568954163305394593614449845518222435459466879794588521673993908944628709298864332143375268582187744168212226706936591748064267966939969835110369222645973031038393202332844113978004017448865628504770240140121417744901542836671483767782539852193754458913566405840788563793085790383503898943956057719544791457823919933899092009121231838609711219448792448825344913694409963003343923741052935409144121259130744005626537907592789070014081117229876138175141593741449343736823933739858207015097352028157198154006383729419163366085848254885858106768121726910545965496903721792637353452601257572584267381660155460418365760819040147953303161488291793813997295232025287896507968565587546254980905720796172733164363814571978448801479530123646640966852414082643684634514525095257208040643712668796140082171573798168492390426154767369824321431382089037673433492806887417610258697476921686168487364039036927081014999654902118654512771373583810942199038554228649714437457999211819934126357752537685050196413357558516742607142126820692066081382291932680400139554171795630905733873708631378701661714540979731572197149120869540792657321027552047011696865154884184131914151261749037016282880005978973127352362701318282735098589149850825102622247274978141565000681322250948285882787552711466020072937637419898165172738859021635925284271433296487043634863527521031906068077904898513700727888186023121651982071121844237549480174475322767558230444218457186278376975421978926034007086222935968316634925325780494789942484495711360187544408264018172636431759593129616299308621680222242199853833289145689948150080537279470048728200428810566191989241795178414189301392310220179194477354595186319551099697892988980172121317812626458520639130401959474396079483189489523377414257127318926787884241963871652200890575532577238257505854202997061766386781646160457593373926173389667892386453523847457195195431443155428825868802515085201405214280010341433903104294304901733143813734433012672112304891675592450424868168202418010468694836489484968395610733161949202233294501594514651126794578976191522358728975003600058776643279257718609424525579128968234631829021394224753348450601837423859349534314269163823816997660780280145291276043944620340314181259743551879081969047862670204143586264715894043282192057197595804752859507442629879966667174091482942826101519477465113899665348564926853215056860998754579306422209956632681776831948570566414506944875911062525030364390410711566136504492487633033004454057644428801955305259701281908128151174284167058967472928942354845477505892448776713701151352377276889089666366963467186029735659337651449809176121227565075895898246936003585038860136641490900298526797383126837021786476063975874273032692729925523127113866341911414238628431822266707545423335081059549394993358806804014168688115060337891824641483465421006258850902360646028701737998300965893462594301083525655221432073599521134530241950306573679231797657915812650374998796517806964528758911034646579839181902351586186771655485252749520684995527227478571093155078870528746492684626722298260476606809086209601520921153627012733819167131278131433668128053722493218822817810905639956756797637391995969382389568997079844841711701877579314358606842908265823186592544710565682936450055318682721319782538198672911724855324493656295646786558995041675117612603204564399000849246473824192978266656562053606934531207101658281797475916439349071469529379643024502456413054595054126929710488591474141405701397880572033872883558505181909576386862573444462604869826047990747698291646992241643322762635785966128168653352858579029847478401828001143707107781572232448735795666749807885705361143206997296649504246451530621721405905122801043172020046706419309698965551766318686570049774868434677989521156940796947163829502280208694935209456495657846248970336399741342427718554501551890805943327088150601818090838499460675186511242935636897781746423993928496512052054984700097118164932014398647892288130921314338024462965453770928184903334143195663859712643543835332147922944261119890100006838920525681813738091817177900817590928456196049901375177628954238693383231475533064392032652399521530812458633347985585129137227799175218347812043363047026853716462451140615639757052112121148356708330469687758153697942356455774249993266638476360437160467852755000358622265924846998970910042038121655191271500479887880510396662225789941150142132281457581431106292320801026400772028525701362472598992644024338877730549777137850467646298601837120255300976327997019212845522855252823065769670573913091268166470714950014698752468054024252360376747706078869660375795184941166962843234372117069379051879668538660268364181033614611265591317720525327493399084328839102866911173739632941678696605990686705418829589211504222300792790128590716849475339256803798854326219027711142287510131850009555415482103512885349928361948883784813633420202134161001057290141657777487128137305399406660742395954744730926521285068493027316551906167937733377032037458559144730758610218852354877197901022851651027950590711438145539868453850061165408661309589001137390915013738919774429618728601719920006783434238513178807128825417079531660181489749942932842303260408258722084955701188663977398713597986250786138994073457411451140283581670948146052751366494793478676192650495359682228452151429870159277876035034021273416423208009481169604995356482242128149475473971396722659905933349255293170642904116306688075762924577138680799861114134000483183191326348588143555759775833764533410474081020764229053648269686463504985425840550045755222765499262663761015780582469629615767648966904478722986449258188867532567430229235908411065610483977710060441194759174503091112821173717245652627217013544482125740558406867672238568800834173059240426901739957190819694570265214215358546465197176124419998786507681032490239217215173093821324119580586615728995102217482949648753660502557889067814143465127129871697062477204391855798818740384611544312944636062103786916883901241645739448049973187691118712171682753382317585662242703926777254488686621919114599597590887411349917611394516348404775256579125824655603349686752340922366150892530719151032179128736776713517323990748941776173245200984334888981133867013270718720546526562358326835028834678510115651019095421705721440416513233189638042657395836410715126223738325355874458979815894894649214638998595300888694871051190702893355677169240725444632459801162319892395986861643326461448603696323769014929420009307828841742778716850782654915107004476982997876303233351374986269141174070253448894561462864890704152352778997901193895269520247307147920085527517133078142264007897437351620573129916353589515141256682095451102110414717613026259464410993377174579081503798700135380224848732298366573803087825410432725996854775649232813776216704720627946910632431790993254574240726047313747585265828177908502837835087340146023275487498676370667877493538410342164354940324040879069252068396459093322417381735173551220223041412623058808900682895515526814060669302461340068195444216978814095887837120848030236072312099401880847684168229946131222154552819908262810703330010513586456622767641761129737359769778843072140374072386917951840993473981903150383908461883739474669302166983015006333296119043999313517981038229342715699332265740911987917528875024938980690442615247215588948247358019040812351860535825118061276866869498090436635392356793214744723013514450503265218799793119414602212468990429466885168811855101358599971021385487902456526818058370153847539403397541646616272412993658306638682005413438176678198219164821676570100067863773651960069713112693850117238309848737483732037973809854114563394045879104680287663112580437702091314786267468254521277325484606058809815509906847768629714064667290671368134096208138215210851923925782745999723224690060379873418217273965985319820557466498541924168680472851221600444213929286955559240666311531153504921238153663943339885518631708100210359218565800502771189264082145417422969947810599797841507459299517410605163091690250157836264093737290785691312468079026509143669060383929925365192707510802494859978262718199945236285047433354806547262813881737919228764050087896038040668753198728159276281372312460547909343096666989313753098750452903917721264488287273100639397550898214138290640597209426901476442208858164250150336623489004947968984860810241675325480368195564029434681655099471259663876787314098463364879948237948762505439282747969438064906739673782533488131219659807786911874899892367923515459451238411697531702813981484574168100720081013359180026873466786811540972249534968196103735773770925386895330497334274199407739589075871274305965824234323177701152434033748899521344227857846589257541880515813657066716704220590928930165097242436663776722959989023928286659353990381392157836477026307576641914664734730481788751798757743808273776935537872175452285257193152632775641896620317146773142540674203362853505009306307847561207834648212555808189784329743729503107970310456809173168390803446879723041849499624580993432146151466464290079418836641426433482483803794623666638093123426199509937091624972512205441244735053249912880369546981056297878997620494382971582716535497145517845335145638594761029581393273792101448468920087568897912353276292866122853580917691823125185967400494532997933726976530852228177491745112470936190554239348928116039752351028606567619887716353687122104658588063719929367014240652376218056028247021534393378482983177202106036423768941358654478665262100737323402914788258084253985861257909478377288678810731210572008757540742303282070192480480634495857502820678548649734201708095430588510628538949840213161468915872699872588897832139370825351914638872468794609972946712192620400809870988554744000302551137261064935954094871980160904085327779498758056088049135318581923843209343837249801527278891723511995387058252820029480234780721430080117936978425837841758501252752805098134030499068729760237300514553728604850073010397371191065947879956552445160565451993089907114187132473522617413880814245927675216480558328377964838202734098833397972748734704922544409035945162028111289743789432374387270039718874877556095693640999606615340206357071719962525954096665296386442431267661645201066458468534858037435265705235950702285814816344113145403214852666395682292382156472812927089876594122142631777777820222813174405019360603874431692262456083207198488533783132864013593854429422593346564620131201815945694311961793628778147080997733067709431416685554712293282744783838921994805190263763617093251233988738669060879327555220221260944166203296497873701699642650235331064682370000309950527243412126523329342006817251968744803868872620724527938472377698389451511442442293277423772806362532773293891713802375570744823948436136032485816612987935938767627623820991815801223011882855728027690702142274380046411003285222597587281863323282239489946822077379695326419663486933992805159151474453921110733086512875294392599912081333889004022342435554589920289912632204298027139392098670012836858841954293487648098871151246912494397527605950249096549260735390198678782980640998864347732804753462565482921526753839698020417357498124600298673806901321196604357871713883008519557464344434529670896337761196368872175838616980117992595425081965769423518615785667645574615955734058494034205326533843641992104717559843037772122151642593801102666551850218279114948945752972588590580878881540972356444010283307939793768867542434137098747091407481594546760133918048671964666984056779861806484375760026996880277825817873050553745421886242377188508318022299324936735984520903953856709920635444204834424566875655437617900535012446120940076905004176891584732066952116035198680484222435319583482240044211478401703836675968911323840697296961781714197800550893024150966436006097656291659840531920271155980063896673415724716678328834711382814113013291664669278047257950364311534022817508596489975647488190277075095929247308713845724122474587450865638199821996729981803577437127939257870253492881227649487902037589608720418823342683018488454616129934775147063811657343076555234372214491140660512667683291178103507063461363837767435422388008206571173483337113648652637713311266782761852696337333572070319675604987114648814459381023683190864329070093399857027260159675049202425261526598175182200724242359695168600440385429540597430193602531329126531437337879159236203030296370898814888729350346471323028313996855241759994505786126288617851476671361782189287560579337112135955498740162660074710931477802443170935134409081089206754982157517389553534518365639570608027288260341799055839547391689339654437316612170067709430160907557854316765398068811730657356140176207799649514891369943765036100860274204624412913389912195810060717830291211503356964864498134091391675231382999289113248874443231137351956956721889623011656132057227471153722212544388638817322943001550436388924030521256923612408298939204632773359636178639843132190907676323322767508359806785815946369251952750338337962535029713809138874991801305034973289916739580093429928874433158440404398066854363637431308832972834965835575338816225844512775532966663791298277028483077825565817385855518864555335785720321352340101107341891515085393301055885254699829325802293887682454545295501874915653576219927899513116553683748378539277902292738515140776471175226088756674850787540806384338305784871560123251955141529427028797538350208348756929765591838947570719913575706726655862744060466407840538589213501149680577005270071153662219740651626592691223632542501572548567520893831190929268705077511564074034720826111236687065077429451145718948445814682239991258849172279457694873433628711926036210677224533601451835793921348301640819621390550852567776341649651926138461985473831754979862167679546252342455305410833237142673350061867914194589405787064002035004762995239021282571488313083940318778430860276493236890976947602949842752040180788513214441716206138506343867716707237359984945969301068518133248596292616767012394761046246478428681152209694208089875275746990825898629341713915040596571683229481818091129500050334799153706213840859261148229335791664266951760906162924420279103327020395631950369365781080196957804941952406825058703640259516813785231089419891103850556567226437799746576122631575929770204941985268929691212128682234033039641970278704039353686848759258677402185201091242892265407819324403651015281823200566391260946137145922214438308570976168526675198911974354325811330377423414212683206178741481902365626042746535499930943774737619358854762083605015113654315771143278541280182132618634078274288370271305527482446493659720676794708731314129945291253703626668462022307972815307062489389594604891245551680867365006948366012643486103416234227676023860075106530665308337080438402466715286495371507861709871733592542271555675687363732041964377071338702003234524806641812660242207869631166497725287186717052852213730847322277094533053298483355092489706124494382230302572177010034100686751863163092486251183207347825414068483805956557947622436783725472487073104380845631895086898843748626946916555960058747215714510681510598544242408264303174739334119071573943343909844447214022906751101555793627142155184933603569011139303352736874275749703552715126827710507256637809333512654793272300981936172643111759271269718447097300451079204958989868518438351240420771453928806023049423717314765391877433713636559321922230437989833073314706759296742804761073793104526327840916676083686988121402537381781976320241587494938343900542645130646090272858390778971833359731170068466687583802275113525841167819152627231102683142067262587470796498511546364187351935889934318339926644512701987373312110406751247013260719200663338124681647754356902269695633802544471390359011944709106269465640158468083046530270241936285094703481043832887332163141848142033389957232304919493179048911252708998401118213428090433801120489163222156198203179159675739651736412565586163918676564188018224216642985281302137287284420008480901367264047363390237912263497684046507526996570488087537568462971259428723289419083679796274185778449588039898461744488404773033470620381628924977440350723879476212681195201058895150980957099066195063399815722616836666967351074334641281284847397816289376868306043787671454654220711517560370707896969457387372224230809522419532265738597205847677948895141544251993693971594774178042130757329022072859925717734049797013796129629627689859487289891735992079757005921350906627745628882520569106319736051379981884374206060592113972982945317313982171234842628763588143266468078950619288315457356973054152159499009887633742775530266098183112557701177280200284941183111598821186560640305100467920030295675153380903144509012453505661539404159991084676055629207836015648850518249145466527388224353517933513713204676935004214216855467006228570957812838497904217509750219762835198276209477618920996509258593390204329043361186486269765168886189479062816116947619937772155959360554579382105689501975926727489019652769411862572936911262485017663153816910467642675368555222173971098874280884896377559706684221705145830101160342404475130866394374903104889381009104706940871132477182038400905761383141398179651156249035346015865903673175999063109906772614665545595619610871888536723696412989625719198696967472496708588972719377121031868053046703674113660322975057620891422351789490134870047746927824777822966540734668568731202586792949034925764450004059340884428041351658459144989478929266186648392792819047069301799174052776683273888278575878017149481077255041357851976575400961971854853780209739148734442551022232564442271077385413650266921900901483752851359591772191291306588826398551847684244122164199797006690498578417879256437030752230956940173468013962975814870204247098325843866825264225826486875879929963487248082837898504918813317922839967739318398723867212156636278509466972475975587943181485151635321895942832363969683665861356395406569637570151276233367470408229383624234004207160577758278285424238627364539402519077103111706560632056985650962435607308841076412154741014691553979411748703651418909007791113244474072632914764024624538538234051530328630834866548794531779699142800894482179482941825716873712669176335034744125152984429426451139931363607656869677389517465118191297109063040730463016142322246130124792357229958450136085851286927130247261812997878183306656152819661214794252342713608996983626194745413981537013712958555554202964699347337454830597100569485324425796074661442525779453908981207320064891599057953135347251906955122441499501850156866769172876794068304722074566925133389866282836175842376130388271194447119497241012075214695869249916066574573927412009257339440462936480138286330124507388399142747186476692210051974278230461329886694508808952498299015456348726108823873069615911989005435872250347123900647737520402685974705442327086190497518601952297165296406862986631908272676448211813745749101053826244467995435908198468264822610674876499924809862529745481543704998126098517578851254761323634961398012432969241773461940297672665179530885092316276529059715785515454913348094976319264526712350938078150535530389328665335340815698914566448337905661780674964580844458504299768752067375501770961754004712258665978943641175199780439622738387203187734684039552913474674218421843443945787441611167704141514629298076138978183540116286047911065730999893973023128332287769802555690617258109865947255989178628641348533198668329466278808582340490221787378883719256231690865390497318335391487804088662368127798341631267917511657819148709966950480715549215274742605955063861197487021003334232517269101073402585498101538244259781008246776870673310866381770884795976334365956961828098749944676600114058240910444334631427980838769894845512679108627805569191328328323514586647864214114122442295298825838081408141872653283568899599731353756643945094973611582110022754953600827416862056492815392110021919858839815877701662065789286378014761670446663901809748470404956308350080476602756497271632745139534401539139551052823584121404769949411774811885436633876846352936018035946989740797207904207810143075872773160329781937027223624002329201722601903737401253827536823634342640803122484895171353132745919195876592593209657598544803691163115229024786097095864216071333854500118434802829320433076211783919979605140038369163444774909487355113195269302766890164132351616427031671321532888208414542754968557159994771321321243612971338770453745501747178898461490428717084250451557511089735791024761749100191871086518068521892187063072620328589927968457839977957815553492167276250610303252639760535355039597481227088228564040599489805512165041913379432003893931118466977005049417807065961012475849495630491862585501654221845703502191677101863168495397798089058257751398472345000541274817779599260579324961967053342861219254171450850277168299952524953929717362312925159331819108899893164778081368077598331250170851849121332019295552264515326275614966699205564223537578384601139203445012698674233922103437629469348271910478283876233083139767815186143692997588710730449585288320196156491797919888190054684628948463493982108832917576095755140477671902620759920395586045102418496849505770633789553698684849679949361202223873973414070616815799671437261262096061530598346121818437894585856883036217402026043860328998575120196110170364241046162216917829638969819341556795176606928933357104153399266341596977910758638881096122620293418935706452590703592301989425576328853808429441465558106274038173657777568866616875156122568917328716082096965710243269962895358907197200942649210162936715246068466606299844852238088646896577370050742132081769303357410134841608303924478032347154817872427254398055345952187605096628976941579026293848262327995898121946634751743882618128956199997047270446323788287375049104916419384484048154074521637242951465632585749903523517212713331817946511885670483101832181530354170913784766438200646511824074354306080094959359071278926000873386372827732500350508349880142404084096644604750378281376202379468850826892565455104691565852150745296015082657652571806783590503556561371388241476811579241757444429928304653234889546879610055664026512973171946891701063242783112781398517021878399608054340517256542832632465039930311377466579312571700093655721849468287955969655846653207389651359081086200042813660031110136624219098132039941993212493267823926222074473106842546389861124670783797469734095530582819494736894329449116476745969610926585403669933750699990055073223674519100595844285243047743082906336055770051288627646770218771069578637404402862521558568024017049196165829576071725765065179447523908441771958203527573541263775700590790127433105594006936220584725799618810325844662399569337088304033703353425106984348506965000057315240680779772696203767513520411809525199703084999469415842833537443116938198939762474033830691659762063275112553799407981869115291844937321286995155427272486085936578952012423777198069960323861935366759830018783161223278184752347539504778088698362584112122598760116448385304739981579417137528932547708205438056952689083481395420209280076764151254276835458343565175191485720569868557900631075996778387146459598370459085037536437122868108351530922531645904410611914195388631624401529525312629426822953241255430523586987350837101842689309106725551589743331461160462716915016016161972969241282105256471324561877707204980987647452053275316046381740588221912787649108331817199413164835213551140248004898339898304948607066065604970892448024163987412822350920177896303692185678054328675542438631726985180213643519860813282016048318186889465472387504041542009887546842018708423441177661604050191747548714443385234842584909392237564170133843010324068205560924568061616770067246187288174165164572188098871188953527856579975677089813125032590711442125497503788475592746774004914417378153892364519722024450222371803992415062707726459947912990701630872284141496003729172511994267172314271403496845985182129053652438983458966776093738561618224628547961302961398295146426073663098322602791489056069077910458594905377622261600059137230470695009757266365902965492897682500221573104075936059449760301879385510657987894367589663958814214747710803743103249264939478711866824750440299397196720471584507744483651636893181901951105524407095877947568904337585653337820499086668956886181539009462897222545291719939455572692330237340562532586793787475286468979837071546878835300744117352044556831110946067515044692332879213924245172632653373271846319338384309600317049596503788498655282890507437356831504382243654574343659165028995257360288015676999971811703763981170325715539426650119347458733307678889481937667249984896365734945847642746273235390419055853968864071214921816911363560312559082646355257752622157689189335420235921525885689485273109554798631758513928399210571032500030155521394408104679629030047911722535069790196055867447428302083034478832387075689704299465767064701616946240675476786528175332030600930342784435550595621231350772586330768169118329598245984738338067026676516604354483127817698550891933826398674597858497546441827222398221412869197108185392912524957922411956460563741678230653660873635358022161760920825106846584383294787257738481035622926898454739094231854017571254006939169765482116943524572232866672038420747630158015625030247756701694645451735124112862016186660862819526561157023167314035323974589667898788756558249530724537891910786240946102107048246801286286430839381755744098406698238130440670388419985498442171150305859534883954108271974850805269378842555544789354507815120188451091013955398372900987168549111543733954988394360902417760478177134287889355620965271820096329217499132626314198297500811188257959695270555257604390033372625914575935689037456441119195437667997169276466616462977580613916782453744319171699047510575291304015152939032756435712515636481906086536294046822463336121211511600348057706510115935689218858080405774024224786292554291161721713236240803724617488735727605292975143167967441113427409493896748624136323581415602555865423258025766562049424155030904332232170104596499492640953634858384246064897266513260733345602044427697230908956734379827335544920246459275698449711524803010582907965999186007677759274346677483808972027723122682231049684331699022033704790980899022359035449911017913416369631208464143288751370689534006665015608386288468245982347078216278507962298232749654816182857940916789185321102018825786296387738167336795055556495979561790287117273102098753250320533727387814367431999290226826123985785999529362714839127723374673255372325737243327912236096342216359896557662695132024837049776603417089538286728119887044421956313610904440421602828141680710719265786618101840570785858270930131703514493821577968819651534663204767031573132748455180297546783182341014495966725566408327932009551634587468089429033787636409035082935627122717521985863031650805220142249141415553026654684970739751619139403267746150431136728203365096485891255270854110657324853078597523154206947234210000726653034857606354000758999796787682346589389041147137546261464993758230199427980976307412725055201900036846949650784390488702883808383987081289908270945042636866428863117018619077263263004650194475040270021895123075473390901948144417719612213282026188859032975918632594211150046947144565310156738393291697506650326772053772323864409288694006498255810956723836872562906300480349327829553014534458879234634170838989421360527406195621399329195029559773233320597360064796674025968114706661851361609433899799876782258214461215214945651501750543731319845469177668410382103385412294878338190354387449839048817157229132456243829592804902625475956140023656655112178929558978007644730676121210917082780071945869703857413571102342147898801483500273318299101319525467976123803180942781818463675402443392930332781781773262085142543918607462144041877763713749096878861044068011898311359346086149681130775058044265503901632757644298106740755935141311688390079508855089400668573108735082608947275212443509267240457483230881452776997866734849606891930469014206408628161478572311304294121721400725888702826420225357475743768939186645487749697498090401017832519993420611809145165691451707953361468230921070285008055514011061413133876939918992195035219477442195810005467475157428516480140015032223144445972363520116906033190523872738682784270012871359292964888445241217545453186065539318687254017604885967177683448786531417725042378594751776835204033044220550560384650933987071321365605594387139541008139441690403234206481834592966240883617805749871018090877619965949942821571170419228268680287502250216536534667487492898387389119315833778577817132715348311166079643321824033037908648897163962300439862613927899782223458747032045159406205201010228444691553895093089588911983737291765887001189178648540135951466350820898169473277942650429598956115255904752614793949881669553466210725871662064122047924260330176043017880779068742829919932600660919033593170549124785270141893690618838488839219976015465731634276436017398574723657415406244032685071486425906214392722908017682481459373369881930838203386335052207195359088999529884467251853021039892342637036802333454358650297076131844010079708049064843851053034470560189289425584625592875566837710924666840654079203196847981754364130699724238795084753704952540931546960888107497920710657276834194619954505152486654618966526325034803460797484989904889863758591534053237125751028564698990767504725443746968389250328627608918681769633383887655246106001053740504872583365547204992309797121425714885616184376345971836995464676427360032753802794339819083657971886058237323439628383958228143424770365486769268549303172971499068820327104551375108169531049907969306641941197006644910063730577755647250193119415809609606465556829296431257973996278143491846798154374429428643386013191586325640125864647572027165337201073488114792853408576808932873644096933508611910682526389851475976419601410730481084558518110204557927779680424692849227636562975496622732508979009897071917348891726734862279084671877209921874926933125395883637350057715776685684101266376156258846682599772725024187447470987288945635550377649420551462662708510552903587376934280327406905613370469540996340190842259157278615978412756827951953504989903709789001165387052110406224621518001837193883299729490169455058582046545790385223224460899915372931973751260350560252965618305338585339104358879841505084572087402603031600596496502814669167143297432780702583984283116579917020478642170127023859416919091736352196567764917418729594505099800570197127646733392999411672737913472179017416660663632137966789422291605564197201931997401013658283454841962817850086605939475169936051670399522810476599926208168088678012681694804550556807344054959976654935799339250444296309134412879007914300320168745168490570677126170657849210956473456795842292058011423246905600378351875853809256211513195184616968209599513893984244360962058270662890659636632039651140905851087323403734593726458722925411768680615001137024063305369959787699225447959096765697802428942699886805183104396397833918031486887017406351834127023154966062393023946317521162914301724522027889388249309401675084088258711071247604197348288571784295298790595101998786792274555682071394934270400162730157477702877390374872539241875285607699519359509266736549341594804003964343036452473488057838052048973687519315981058361339238761328978213937949005768883164013135611882527224001410379243033194080759276980661012712564882896380170610405389274112258443595939924029243477773980772277797617562403413797519877485850273302805202649174857092032030286904365072245654224176008580579501050572745868427095283571578166312602853860501297551008757112519987743288871961076141709729692905224236185856079127553393269553225693642395335834784906012594983209963644970008659995084888286566401875147218317052549734959703432741623909882218374362718557965020795383260471011046350403598593700746065741479116655646393026228248033432552732798125686722404407631267300320696911072371429291879373581965557208486411917987938253679101673044941974887816147471848402804971093004471264099775474177516269700253012249807388566195936795494775525586294530163770840161188582920532376908595064767661840342520833743422681832548822640156980882344298907124706235423997121456094272869454489344124108894352430545722777688663529770063928984537950534112790805583311162590808385834760864379186112651414318366038713059443010825693510095771206848327194589389628283926075336762275346776458224824302586657163204582312005633982961861950201348783930081342391759237825783332787905419073135774650274723415117158644707091930459571337875762986803125690301686524296323112797797790088981605221431390393045790832899575363540775645586284497955374128083417511565140175027913190483016364259737987637789138753156433765157087896636443960821956732323217887363936192080707955627047293416501272704662271196596551720110777517106278045403852319471764614690176994393642132130896393236963587961391769750110824306894786585078120146591366439957590817097712546030128906979249312592192347151026508848235926820152817896348415628145991650519724621203245617373109618919633924245315581125095184877858641784719007416543270979925256638336930126832645728692141066834284557303295391668584437024120222741261895174474735100456817059417159199441846862924528142256951041476945706799742954794196347151101685599139688393796513136343022403171429408396066310994895290699078013133833119560175117873481288528216419100991880953301625599669814067477905071902299009154588158137197103322803207363246111433236279943316053773862327332605307835012523454680929417014414180291600199603861347325558983086555865533622311347939726433281797888068609640387518172394328750385188432083143824430447490809334087830035258875277778479970372429962502527944162794352967799391364191280118443332129868711321662452353987615285743453510925379481112057221177957924638854104817621903486996953372472826381240267427986596057099238770446609287629865769500224489466931336801534743080255295091422228872991750544640860403177388795762269244271425491866551084636223920182894169049501064015961895350162940233700176290572963835061016832636542967655519176345393176434214989948605273569563905203251348712021234360219564727342822355784450931881248595739641067327277860274042869820484526486800929528586265676034789200116090224241865755096185159990546430489325939489692971544818715267720811801967043497420808101450093991876910043850431570926523545711101447128734350650199128685527792394533885884515791758056990019940985109984700195352586421319798996543491246356337845015465285085388525810295733307241900900080567300343607639810579079654918363421791720923912912768753924341749234075071116571117276076710119628314971572981287485932305614262185348723671963473046381735244281618684276867627121878910425048058123639881856290827868632115042415656754277770442537784987028414662668164562835512873288812066518605487110697196809367969680646340391416712923636745658422602702354993507372241740261683917176805516125839373491431139821977039158261064688111097536023731393817173602966020483863839404453528691000755182700467448504630973177832362265649928396020240682015115774213555296198495412699035329288641772903425832994809104178784872145806392146762727467917750693812757400857990534832159324237526478652342369385548612123797549728127422288576234110969856293988797528251146817845997974094115197175818782109678046605097462823305950345737419651564902337905330545331990784928538021226842648196716223664710320914987514712819653133404748019036767051408841884112920085965350918613472875186984970700455458369350302235829713155123522600843352785662345655270873602170035785335719981387611951469801777579183634826704815279109015099544459867685257679634862686232805970965041314740018314877974287375027207911494604415975070000413141218940517970003591322123777726089161275815841021745558496485460056933878611865978876335689127933980687237642005540056158827752513564549913071941482400885826529265390424991162602934056016659847297721663473583450815726281639472278443736722106151832857884721380880225264752325889207964963939128965209722040510086183905211201213574346232115437681071957504833097957977726702415663016720953069707465223285804242803274588191266818325002670036578193573744415789815242540295610733134534279484856359705771299961125629458612333689802003184488243908177594203944474063114182145527780225171174792269833528951691632484828772306353643715579651112361024558703638728810356356739113957313998931521714330241703079821887314335750170511449725071605549051193431688921264802959039997150346589332001349612150957101838119526088910437220703935571409038274947922917313525503457007399517079597350329010886211682653499724251789562413164566967794505285017579000600355603403562475898588169619439708082474730247709718805928252032108372954799996983025007293719075697690697371035579076133112902046709015916755913141354683693425895340625773178314274536438261098599876612128742741878681382027744625942208970681183341878128986359368779347072915287093209833671876424804944265327430782959632144714179962936536774382758391239065055822312230178320844608125632361290335478189204611316763310392784139288675759327409842923002216212298388174396668870469213982171777910030787299658549994536344382986112688960265006679145446304420960181838160344939138662481288748623546243162516077284618796573799289226082235153738939353400263831115715859343684105755940830142254225050652754288998325381060330048796866624755842833702285876828040094152095613241977874337584449599958852079910677760135554256974208592264511655872991110125774413586665322305858125669042479009715921996842378976991847219557546630072814578467452002174320670098532136832953130689564456282170980065903295599661678064183858346731160004678939852430685529690300951408745530474930423714238054746275064413560259838870309510213613567798202631096483889578617121995557164712383554938609040711510171291091940956777764751317201484795965059323082961229117723640537792739565381215117511985494442970846506634911935997071337512506301790788205824054685127253864188621912271151321855397021937725198367610595684982708613380832724869689251565965226544695014321923844731259360734838060577005162477662714219440810212911175140816636375507365155977183368986848835955063289591758338795343750724691325387015414880028153720776522807079339472795572901468609449454299187120132272262131995343004675191612311056808297514385480420362576858598054097486799234716911440902780076486812732475331730349403585589159376408803012119815312720878036876568794405089929676326314019906925458362809855261757991488053686762415667083303134636175185008261044247065764745992176290382733191396482240167026494439793245466067033257457740383778915960160200176485731428660367484868757432088238719575386209059206450439206538505323653262511024163764223712855942710833683921556126331252564815429572828853567866610682238025109192162527159270034634988227756503472198138518364021124119544952911125138106253176218719527901992631552397345858160025566182572438079927077569851994987047930312096140268569974018878284603079178534383082187355378623872055874906386536712391966963272492522904378749760968658340531972416620534980036674868126922982445325601879225974310886389965105362548595515026657146439323117215932652654091420431799633764338129459570219157522496678323976905319480315734582615297352536070460955578033064805855449843305829520957429415179989194176039840866337325753875887720331165966009861479304371124212620729989794273178277376772435796659682819974627259305207502364416542437267241726954944945432178225600494165850403093151167285073108396646111255179940871918949091242292686031750428506778969833210279190601375692439652131448430897543846173515755483301289950760720251978084125101382632312366412894470909451301266592896244178298435461971993282422152292477355280981351383813717523864477474900642336812778150818498438354188370623232468537662421019535151839655019852073246646236581722848788798081194119750414861428273392681027787581658020829554505284297904560967866288930114730937142437664526241190156759099136197179775186027645736003825040792955926630626077643380694568288558974277456298937725541302630716518946658108771621438039831361625926063636536003279361872208753136308867731207441422381408612374865391747053628014616968532261491710167574336033112829685297363360553547858617593652151539883973079733269026557966560211859225556075018626390722068728434189269762632270946314990557220901053544711881372748000776284634121675539963593252436389280250348276312780905239026047270826524494637583203859665701283586977854370392960655375395258121830160107794573211006125737861978845822748793286811350523170249647638960810635352824133200259728582455926869226219941987780677974642405077089438593383452216583997014573296959182414245073986454885584397643220336282316076981170402020714479662344535755729699761131043428641307726218777967875482654603661828511291373933806071743742627061146272905659495442625646542290254975240551604260820693319586527768171118382414376147664344139522381296458524650796970841792618446796299752335735009358889244888569080718717750466769221430576832578091257150764227148537668704920019405182091375684869305452578507617913694844718775293535145411475576560677859853429314860087172263793810414614255206480182429552771567791753268116419521020780435522017438540385014476830136267852512399508857490068410498611435092632100864837714179436552842355871345450416108733855475284542837105914162543224697919375032311740525782215296798203850737002343186002355990439904986918320066000941949584702781128590640176356553531401071927113533368391149562514714787049798763493898494951456193323155176460519950704558448094561271492573184423040851510898753545275394035247044671020847429983912903256184643036778459996290627721796563866270516742700407316681235322281333269014250757948077132430471811008483050028345810843206532464340490113055450553857305211056857747708278592152983802716687901065512788317670476331525861190328825268098824694176995984234026531489006772112083575618216590521306732628387115409246588057041660237837177571020890407750212534232356390141996967855386301076725254403057095214183699562910890261076210350975313919231234142497635496173493839848413041377414527592329689545992530111731684967599779361176490939202976643525787369468895164056413123621274757105747263129165444661986486220338470795813847199191000787463707371021287890925667488351164318564677906258777216187155905669751708904083734006871736564680852062787829961731028263593892916744119421758665651786958493635377339249535657138444627632633207337347407976078433403181279518190064552626309517060652057242708273216132044548725065966530465178799986805021483041859645809438029728937596342286854724387664669704331577383998052368555720851864256653388706244703162665585745077491095784118970675386272125228556534654789655691594769790258030201024147034600936959137833829585234661056603912681644859188399946160532641462753698553705714713200490469451615601609101819377559198130217280264764894029720702458919271069272498928950586832142193411809518516575929999662971212853395423824146251591860322958182816627237917358925073779706193114153861415655642849782851887704639096825002159475128253788887108836325376264005921324130542971835110901679470965942839711262980033769354407003904092132809378736844434220022994657087570128846189888290368216128432080304582592787134375902850650266916510448173374590959442358914280657755735499942498526240677061052080212520186412472118002924955088599609563981689753202285353799351100767251439732365073186680338984703637949072482172217359539137303224565288147812190057189677067532514132278048983053775100691245864080356124887450900959283472661022227188505197359419879809821503292671750955818844326184147128093398564748909558488577721478479262690613777809875490052607446429500347409072092311560495968955915330481146849996152270877661934124607432716650224503453843791672176522319657137211209263238417719754690537076157739443002238406692718835336416194069250333517063567421103604864030709418467063220092121317164562599400861500998368502433957718126749841632176849431330037075161034403641208757896608425256044495695782545191782715119550041801396517462769272388337222348576947732362624707262542144737352055649943010282715201021058048160957406120830030381943478647980740409034627575887133625377353908655263789566690006327470113440390678991238600937676057988390446977979944912732269958401100153591516503722495519601500495376755649968230171844065152071045744472657961808020100287786585178874966142133304405544021704868621081179570486503534693366350712910353002763698801604170023317657532805087053947179977916403149804979857385511602768426786175069032762457685634455414796171831824185112500795644262797208269856310111444746935510873489269983110881932066570940532238956098441858298009290641006853290493909557463823958686879704364683859937069172542279907191927867386995095607241856859815836015764280191930487511394856037405549038284413906298457351626116735187990884097350893359805410864638705693431682260812431332281502937851538609695421218554560848961194366550223285716677792170722489395808226492976385193259617989397341520580536595904218680835121010576321638690338033497280906216792263843801361568332236790576770633632874726272244387506011054585466646907493327194980965038050185225836232449338538304738347411231478908272687947874405282168989711234442098405321373877063029602403655495727868466039047017088589221819414884261284701261812515417675566909706744267233761870450387149081434849358525726430122388629683496246009118605308679917428942270760484207528635036605027392210812594232227906959917409154370893398565319283254335458181849600695518980417530424934091318729952597459495674261231867162939398562262901945763588474413106077392690932263378329864571639908897161070645857635616203930871222104512708571085874455115625521749794059226201269778993416542759744710343883356945470021628268396530404574545913940596049523222604735571427907230207202160303046461443880528057179855120408117744565983124951133742714613649941778529883200162758186872560671201097997562910762400288386388780625093758785160683992797663035253759501377332180657984519784954971379055981506329726711336346110224791054183603089132680294549869022607919782703057657498184456914188466956115118735900207111283507877766573988885440593797729788000724049051584907296668401156592752909337322634026406055199834756187254578510084496386221875125646198491302945142389396648032980323279507561222650754464062005370027999551966972655733529716436758670649914368386370116878212865556124922786846959528701749008139331552347364302872695940938643784668210831923284456280530611984939455045107239680465289291839073139216625999588796262474507251565720367054862438030479762598427194814322706455028925713741506147010990309618539330761266567754849890451172770312996496797191025922812414708083741811858352029963126897187740540995667660652132922336625420673025732105666399330052956225855662153354146857242296031318801625760539235760544820737789603960351641392594250956715339412783714672330025287560633144167824401725385036677675652698796825425142889655837097762756038936509141481659791927263721678530133375198944486373321864297697181034698913026863906664576033542327558102335364591641306530196591307609681812714340452446896999028631147215735071057225942923159595266087453661782296364035092558674721840934968443067600177064082643207031841206297776523934457712060747050923269131428447319614581494715831214732060395864997613407547292834930481082438255066830764684443214092874669554466455179669997345605078904888782014622458722433474516295283075834380166634554080879190167952566512833145335277097909735321203186630441473781823840358593066474339083855943032803557667987018976477003042198513425437388951329075313913835498717435814929989491835684085721062844473651016831261612088427107012042559200500612333080137068657875785392651829741397757127367325288447872758787893386117698234881415129573738098474074594296874334293824414893418954252214669492486130769449507368794811141550537783242144567165903119493761043454855911998200769691947562808019384782790320364227527840464679688536736082053946690044419098126812314886853301393955593463455174185655994678623286384283783488269968273712003814922313817285396598889107875300575904157356398958248189433471557535927371852284228228456571275338633868483829739338509645312259726586947642953802059115042676038886065575370446813281473037122041703378516183432206032183978177460921449002154900865184201679160013612963398259400527313850166875424685876439663087337067371073347582271078653994417856584201528992029770728620003577724952507858944885082172633817992751154934225586475112531507249765830329292360422858088732804227840883285195589000063553773745072258435070601507955933628750011877480749140046130216834559856639562108883876525129095355905992091037971225768654844339199145334263111079633901558425503221860769162683188250796601306501752211890278645785743849274019108734150839323353360038900756217483641651429794048016183738308885231866996741963749252992131231667785189851388585287222374529931477914149984018422498005134006850840610662856914625063994294357865063857512029587136560294419441532526339630682724299285654335805350937149708811033131582915307009439639698381069906316072302915232735756652279263643532963199428260385687698296329231582463107289504787528587816128551507252041613903905175375167212438802980479441418184564856326505837492623347757108946748524910019551792782466339064154102475770525032475098708108261664581808176545758464292864387759589829682826818851087637985765424514005338408866450728655842280818327004869714285264860398685797247243470750161930167214458768800720708813610192810283407520122428013800282207393578464687378841340301750185840920129124048952635614232199474945628661103460865854299262469702152467738182904207938417670950910549949621640417239650332775988614423528312499932159704921172064141141322334971413191757623999409508238908961362897105615388873774895032989714871707577053933036081691663930647634940118864847197613589183875639174089297434129933397383836698983306215471573354237015863739689327830344144334129664940819083845792185987887912307798781799806822201625661901619437188854153974835154698537794496474483020360873445013081254775186962770715350687463894485879165130472176556705556109235168108635831284448764270787407993799394869697338876847717890334909080189646412868901033504980134837007397820830803906568074829056719073005065469588193324652431926912103023928551433126164747230815204500544979456782375670476668053180243445875966642439401372376878783183486871386342546841321470685779168983993981876972902364121781714228804756240591688115051674786621052056424712194833196843833088178462725994698117367036931655768981994669265475071183767438443349783297580016456584405364907612919271247947864364589379626130589917010884218625252278220257212891378227211174617594501828057653809074920437511158696939542085825390653432730431857162056085461932980355033388043191317953122105289780437718301523572555083456368762450191392192939042032721045556005383271010800352713896804245351064915559508263429311653515385039413608639253548156671967658386603212664487795921439252300267684656899296002651457654944727363955290415051937347727390205146604827801519274015528923115674911643856878951843187126422763708632575145791694476804146197742813107563135130154311976329104738960894777271489716981065716687605659476954541057795909539394928541790230462021226687167181915318380453370558082222631814814092503197362910102071805258409498629251197741480858544528778644836320792336938113304790459542499160720799157415832005992880236933926188797666957784839952196089905557613789436244773992566829325816219027005928022080544934701400864846751862804836674033405685811453331856256540351102388035381525001532358408154805315032395890124084431069790620035955811006963580867850513746436942138065638858131267552737612903606150434896802509969887521013683401618059426843328771195593870293529438912723977956777501455788407291503583938186958006975724495507011417111327180590150255113013393471189255690361136324492063538781541276542955987184469551989818371076482727883322613177978157694754364096504345362098943008078743488764765468032411006437096443400337387049113359656955829311498269855727616360880941827526698451067414202847322651518126272127063956039310526688451154671365042445282960779329467761253030669072701791687006153011917099669186040898244254046932414883592974972977429012691912375076553646526141770361716023082030767440226210998057749550437546854865642180018844452130202985914366215100182735893860677616461328203738828418875147835172710440700554911033934017324173510617637922992196326088095628593961072156539730170589502153909024169737729674353450544165409785656689343153463301342949090048392271803801109122325694751131680171962183756967672201881040260052307099446995247612435873132821890225363593322139252620811032973222384717005663363359398239741925884094580683681335670543230764139212060187473051371688697525690923201215768441997331773430890014654023536100473944785049819816109784482629744534344369825765486900991031656943009975274910585043745024755790116621732885025686770383859986913422913257570758678166494886985438666943680098024536722458345326521153681036700471731149628221609208829118626112841227249509019251677162680569391346960757255212385340542765289854214622644212367107816345183302746305653652009893627038089396732416022127303369438063445462932639299062701298153495570556597036704785944555593161997477480596309508245801809277467362376494667507000531676093365822269449820456205357740063074576237796948362058753304292744375954504777135346315533295320607592096947936791137326474286256068226173281864529580123496536107626813548908468148623560160315962377688519926274237848721163690842096536995024353006779666324562705750730986157938464904463167446634682269028044619841247098090712380080357666044876558563961689636055443917159719717954272448207279140982657364522523972078033413913594691019395391506362758239133607993993532323418902961388629304769891787665069030856325287043489819217178781286445792791061900448896319178123838508198870608235761233554676300410872089825793885008117826032548596093959697606455492290246899353565949848689589598489052129599170814788523540580239828446637302551363185531346019690475739714808448670639253882503098778608036256038024214562554882036581781700923109175409780672885841435359870977543277579245752248565390253184592288810516664583301044826965664553556379631698957552089798078073695381844157430781934171470397652952411482175967828898600624752539934856064527875852751959973640859104422043957737484131145028951173665542369173258273681436627435725783447306783716059993049662404221394796632494873813638943834268943249472689448441177175732380234126867664771655487355440633665256301780448062046071191286987041198515930209513341634314615139766973335152859797770357754574956340109550718483588025328279457297216739146418407418665812161216556577416753668853272859790593850060009478765292221990753486562566641415807824267530512421009125522271278216309546881879091090412856252947040438524798421235004894126835991480316870429071298339011713741009007925594702940840194679436950851371125016471860403592846139497317813656979392947703792640489689461430407578292669432749703567573116627893521668223058152309590280906775500875764883164652923139610619193567763580312585428841165647030004202449959196044252322113604488544039039358412849226210853250941006372238247069927557485025996400602607383660421974223025157669015034600239998457934030450429374171774026941906195034486507873924810252713698196754577116391305815231260565843990845049104333875976411447539333197788571445338277729086526521299185062244229181950633316405624895425652828492459966894411433183250795257331048833689313889027705941165807843401979476571066843395569639500869668728695524171485376788823161035987501062838449113428397992084207295777061991926766158966740367537263064951933542835040519127002877095896305910462733785757603365355366574506927777407797572916605565729512387414028002874855380388692868117369407014778302727167844661428868871213173420128158794424802494682851785449305044590247276507572797309022160063357341266164261181912198829181229201874209314525178111416048687373566385968934666594661054964975862859632557345226411439106969889156732167329593465446763855770999575176810571270318538657079631237438621271380057310495734102285057399176963273100137487139807546658817050864079092259352812253672309009340045947404471196507085566466134329609145391541789154628017193494330583923696751735573709799135016661173441415680963747290775440584347131705125758894138603042693177039751997331878144963329944209953669070194628407405537969628140165182524508419204165116834998308278031952134923516320365747078074582240390363836824225323569040481578207279221247442474313573498145890314223050935309902514895749666916209278471111904337562847234955429189161513958653957020401266352215553978129150304620009471806451606546020610926975126084504139525163584357078949287414398291827995656188338394870114188606139770715554794529938791113291041996180996953931479052993077039208266103424387277041011985381232400309632978826702819811971249463490366134629933937553524659557520948071264450013058974232516112048743536034355172825821327632369088469987580354651544404282235949054294377840829144518249599650312891703007604650799880555369571976521292193923469626290832021543734091819377419577260087290059579112712990058326626790673868105176223980209721663808109616757937158580120529964896540325799614444798077875333885538356395451143441451844878030138912536146009514085116476441624260726371244237876069781689115304009570222865635534483263646074720181636057351920408153123242545762703435269862757812033623708672861201885982800172636785507164791535782650236775647335004764059642032813979106016639131693790205892369435564125440726027128605882273071802556732012700896710430371261052162610714526678550011913280586850043292261286751826068727666854122426116490772908457422867569648150095408866431342150838676103040304633843024410515818077623216748064730179188789378989664077629934022813872930835919067273140737427337516406437542292218875416667606248438778685201746907326555261573001150696004821407881807363696161462472833092417190591982375695729369767901783142359094456059805951491517898097644829299565378361498982511456581271943282848520508635531348134986141208571196912210289424935105205957469218121751703798902166900372939817747679280372301553803065749464715018667808241817323140746358007205570475085226717673035775397079718328100269011531809894242476176854537204165380552657794322802789678676804792841280574525349753663500906160831466604949154838088408813063838470866735507492914456559631594654577457235481003440931403545965050054516952523993858544992443423462913035289155937675611491461271513437313170982971329139167171164534270971387510620834544749885924263576544929262329835507055895722752532353551923193939128629227442220694555482965923447123040229183914271166903264238757305983441037710500880807355030083141761056816626796368112201318125239405597970618471861223167854176704900509124091612601139892181756717128896979640772718926754442742079801023516238982166377373894668876194977733021596297004833314676875351615128364808074093834976236639424309890753172188292975400948016202894293933155096627274795172323475307162880946913196695558012294721850085773993572228034836428149638517973048387322644244365900856483437183995441399722854514285516146717361872663233847048909157299988337409002260718904215770841694069033978272788404247822838822663201286980697208167224137403756601327687599472334713280943057449718368392652713983260602734675311419956974908462017667215680557374416433580909772679380218559334035788806010940350669266461702869058245593407857418132118424351659065531001843315901482123869971693882500561305101934998353530863649848641165355292163409768705309145260248560918671882550016454829791743871403867070754025693479128393637581548001048897652768303837992158573231808014203995230667362457669566841952630801955510797770512521304930165152472679801155786373015890315352377938519721284982259001162430967076625255324762152928554096096034765993906663847160092728426523685161509743568441861268144305702593133763962886400819353250142915910140206823465450766265257900518031755853619836921280919006639290629803812325580405035520388142795999230449026412089402829612146876763335539049579817069984156023353264930223153025803133425732125401306882842376561098184732617275837231526478645757101397013843419605135634294108760195725745349855438629270978346548000427092935653749423626745565169742784312538738156257345514637284913900955423435964513249119143343060838573307850714421350440111748590801625046946229452361621986949634562664317749187864780194924188023382531979940284147206050233837603878813873150234937705715024492537767878373243542547446699859306856968465200673022234131862592800989927155395025700304971964939594623949273278770000400918071883138272471971239205743388145559770638178253058697669010100490142432812673265001399281175894634165249889374124636060957957949358786023762142435097346659351371505762497751092300442899384686738470420426446022231164176460662967530354220819859077364334862818406161993965450244708767743066205134964101131514592716436607754713706772887674245776739370696291832615515489464365043253516554522496920345591820950383470117610445941797087277721289307905148010513577515207999884994673020179073137957755727379103084697829698773547690728872202833291669452794771076209111993295840048628504800318161611746977826244220726637544076171765978116753975809521561587164899001661929623640466606097281982061644357036639037552466030906313363626405873432719029109980377591432638170210807814785270599955821765163851793894434150666519985512028939146901621033669803539450227665151266397954545763479149022130647349480211622874907939681716432911494287722302684444627218192156448512469379074660823686509342780689879577882579704707302909260500859065582679033070443865337441863043655572419051851810305619714213598873620287129537889364396842820756675453940711592174767099865721693987283666210801196721045778019875801158156196658926478073690225770227880966574846318192758661399151765640912315009847607251978227196161294756161445344856775883985922393560352760484072892952708735505351124670624137959821182062757036801078096389646432566012525248266744018791350549321616996109614751885854552872768751718948205279050703979546169488570319547397919925386461372328426479874325857910757749686860994260300402966039445901278426383307457356136462646976207492357258549493059325240068555526557677657861716482647858357993406573213424772088173579512126060371584207338174263359127497551529668950407193062437415919872358164422955402465608896528513942342576811016970918906609249580017937346166280946307662177618755279175505026659754418475407322509908809579662933731264053563609772475806823152846854086971450421275432718995494821096031147285773692526315307944672632544841403096603509643821414693210509876849562981405059929257539708597461572580091188078112324843578710648820342747098590876451066985497328111098985881744514302783652871135223315251640937642744586009735071275395010904185286838802260836035230938811219668645009765757492285641858740085153212774787976934854417385987182727115896558237548251406650883439071572375658985530193151886911861306592586249224732216632448432594402482387765664043107199400076339806282532332019914422039143501187365892087488644778246671490750969771776268334192030168681014373451810489795056926504944345602257759831903010290628444643214980741703378601543207291479264378266301591145775924341696614552894094540859294044812259370814056818736572034008173483080491414578969381892514399638111300556247085931895914022130389424963182695877023183697663862969702068773688553010635952865659719937843539819920562751429806041424969317623646224933032994881442375940290218023770474790406724835372127905069273201483534813636563357536918553337209117386779652000473124064704570836919934584277589666003967253044120472168421995957199881616041282536201729724154906679827362844049308868595486354961951404050013864251043272650292687657517911427851438368782093571697288522958778081974116709989986399764039254912503637309642366883147938826056592348949665684847460480237566890095486983540610100764390710024986111566137212249690046988187408154400010528058938416228470978549469998332128329425683952552897152238882814138713626714883063283624163099909275353839516003340205110357063849384378031376336153343379275881844298322438025925754905385178400252091709484096618487580010219097157156552675290828613191926844659842911045175068186936588092297363698170063763558943341089944517590798135202935566996756454952981513021776010080438715880551321694453656509953329922103298020364557375281724822942999607353765965958052304542463391779095849660313599538404958961487115451186279857438872970337015582157808325430498836806313783947858835097447040475490136562530718902010603306352965827011171902621033146171835049447552532404860953176294541493242552174060156460475322887761880769029962139124342467853772622345304492007145097321466130586587524439001405755241194097266148273691621499570559439333719827598184452950694916928178793982992821109770163699867664695253174564517288874348304719342182967851864983854896349971239195951225136080747637132822459053690543255139954479690303607258289918147383803238546347758640443308379368104774896641905566234741734858600368678507873882476753949528965669826343504890187744353847830192829017330199379276407295238188657807993248383860951365349788780953875679435642155532193312012634604616431780612046731868617838340949003966748839262128646715059406475078951223714693112739632195376744398864953198891386665257950959774685939281143256195799071776148791079596973774872701621558641742850834428931647094175887422412554399241005307360875974947396495329279804563636100998068044692526173148754882084948013100972120494723459790307436254539964726296567325422779673090755304244681371412010815211546758583540097863906947560154441916462240961121513694908190572776203148730781903168353644242255081671050664847802225379217938034253784617539809331748119810717318588102286744281218452112787533082036600606613239309047216424795815229358601340720536788401212103146877386834929093118816867641051888162135402957429211517442349451393095909904956280137537771920579142038726184343007802086372672668664791260565793564619158203632009443201218189259395368596840106597728399073753672609583799151421794990907767958993285053542653033668649773399306241444479043470881475024892276362829935695096663977966992890870248925862139931668405224771967670233863232543934872240013716026809319393057149440888922040376414489929585525119462541351234004230568401551612823358923137127305126226467916107154014987123497061509348764872711446897292808563102623487778750259484824279904623543201852315557223883102051341859495742316123800319640046104307545656182626321449307646557149558011715938343729010733780365561514979666702282265489487347992505302459315123709701274878834565294744459101048173008650478816173013604248533807267423837593269917850740193724796931693194877666696038748322294538540564547227190535036617272516745901121925107099606029262118415965463256582691216767472125711414841815720720427008737722236829004615027836556671622239346830470820219340148598131827469290414884400255476321998001657454551900693246973678392068283702134155188416056946777614226902743157218461859531034865187692162660396720668510686627272208299106079888795615667111711385362568290168623667287788173770218246513758507621159063488977017198821831534507204945949395259348278199903980654277792883776667881277192760189184000209902275348148151650617067349390724894913642285243046125889477040409942121601385609480163377150147231349221676675096403276458707973821893197217773104889708120543055481945878556391235052006195068739567986802066328234776531544833229976612753110098639046046202665655018780950053677743016280770393381658763316054413327877727367691303915500650107190206126578480255300705059547100671212325350304653149547723926479356216080767693392276156586156718953388809426017142981492799247895388906502645814741975277228313439225077794619292955012204670176236198184655037403705211940072966650778569485707784121293116731437324956302658293790854757327538034157324499063834934519636341918613461746999292769369498471831100839632937243648614939247197589360121490314272440971362448071370455256328901602715167966248600357714233817593450806944343035782481457362313294312336094185240792379344939725691058069654875904438051463224623373458727051388621157122655474191384307347644734200147691404906707138805027315694885680530201235280194993014529658947270677428599117708984682290581066220973685667643404629196642886202711590624771791846837698036001557835735981843721673447778139406869426839541863890216583853717014852567507481429302764080747623274351009392451111861037643110433568249160876641605817662975194213621169367002666228956056738040385719525243935192218565759162829038001772241334776683771177714233876464418159818661258170107731638692230413879401963441590553540441653907914095445980546440804179833084749274445859632958056199729860632370503912897078339223174195550104347670629872896253980771133711801186758829954989798911573407630707230448014589862286668666788213170304640184517251652820491505966658136805229100774672253373430961789381091487739505423238808149064098726305676077130109628292981801745191559366363766495890758679354157336112974809607886371286444179058468265754040671707524715148012005944026134267148732456674817748617253447814130441039883211590802899835826040699013529329007456433954770175536980932695637476843585767604112406525668635094203829685131765043827566457600788599615414996489974100524466475846342633853285692861251953079255873324268686751588321753288627695068045642258827959909450402772745531210355573729321196300433537171701859857055524144675066900599170907826932134159096440613417133799328436171795861819310771890757065279946947458430894015023461666167937426893396579074506452147045427098443692027302027455802292956860067295055109455040843523227162247677251293710377184892337792448590232731571432616248361223089973720509636747486461756139507797956744651078362203268862180660538959318866674003628820395027945137964317490939057261231234384724126539083937343556565597460875510911870395727853672864526641179348808407118930373512185382938039244184154554667807015421581241566430947359916826854014944511303031797049161097684453780963950442425865370922830546879110188974548318928297670730647655133345627612114405229706109726954829213159398132307383722418352135610230258899965464193674895420599253460881765645371048395149817476979689766604194231681251647726957908929073951742213771083294531377029088792834778606293603891116776193987541374327757715795131750819726721963392203532883297690237034967124727355484505002567250583293078739179310517468655146986528155269453743744927320762910026583248833970995494579877972615156892622598119554998467482608650090053039520136829106745748270343285632485874149762130265761073858073792029590914685315343989775333478312892334765465807352145972162025117250747424801944969341941530389433684954025642251493345972925902690509662137576594001401832823821460330442334498899756823098568603145694883047517763211441286191223598257557150509467918381338756319735612740401012044034706697463765833477430693128961064674756118919934597124467256147545885699924879340099666186094812699770342373302028243534030356665194759020909518635604398415818710076468155907210182967866675719666430249607962037774683526109056547445496314204425058159907141406162355978627083041870684372601495074189770833475937724842810712524113028366138748989024058932525232863921591597637467949004650735194816464292669660459792734487150156045802439223371212790887502643145592262775134646558769215532430776466617288322262996799928878541590489192921486352115518886889805159050569442679058458157957957064097166607024230936960592366813151853459538810911691326260620225188659543501237190676637660537497592356119034678501094393694628278940577318626232072215252793469591090971476785556767248826392155224978082049923713387092712359862326646479539798975018641837330055177520246255188198544250985232439246936118737995923366126931355654569624442504251013831959786009114225706671308358931870388496842115616116860838985827888335879013621406190776039598044021567758881112997697487105615680733726950430220412475682904833883103723587920907386578896385905248376706537927350073856910297850771146122965295195579553683660803801851597222203851246929159155109837658648646045467722968571574223535614506980211677417443561260772007550949345465123022732401812973778690480833337068952228628150587665008664499572813263006159035855328820221056081915985549124345668268828205356961100753158610793137912996902089391176316201928762267413633366925057790719657692905878890201797299466739057530630482577743526647521585002722492320979865272763168694995832377453636870814657196855440781341189419059547559649646851479506965816602084438746854732324388555503838516196958879470488984294370074616004566304793060825396950305693543369505699518525679057649709757579999537602253347002510282530791207068366843008433968820575396594490390548091528735746162661002596553983921700950326686942865440742176871085774783689598974371143956533410945549557158954026780321838967274062315277417311414347765903679760545695389523890752203977376144006400179116570097766682068432618886916256147187595380360180653528451039971337697764019037109467863629886816949514777366757155536586651993334882991680585803104495438008482451956129375137198515451620777551228705396180456438001840275018391210341136186266168736732752660767359325595337540989404017315533680446527395385455767058180735297991532212619205086531524593127574639519523894339242972324577232902151631290925571278691776146503780075075848841314167971065175964733016028462297388291768861990086057837275657647247074280189221323734978838443789535115293276699620023823925150380242185956794285855298547570858262394104363828540061251687470588376283716729454106602467152961999678658197141187888851096067436025389583761978963839278400380702321079219333899059807524819038475762990059913166376496368518762573620282433178227553375140969454566337219426348438687408607286510891717687312898018235022946353333481604273800264757697527271041316060139109595441361087631081313107623538486404370186963848925269570192381765476428992379039432940986320887032322931326674355435000802769759356296318006520807464494554805591877427652743881920321157290933405267423088549221805888161853460071635843113038746456222131234713965657331897284482617033711947181342426090455884247339052608862018938317687600447738244024916745712363418303728502888226165741883575261933574877161639729918355568131950998111741913297486633140444147169529302607225490578351527347629277524455732829320202327630241160944399078840218701835776130706094207870727384003355326563194337141869072297006974294099720567571242170826350484403982684514831426007355824684369903397700534253636860573758251940725067976990094493766773800774571671419365847156951466348981965110569556497755216553060376426750745479294867817945437808679484278656126696348567538394637766477688699449556789585122517915200719003274156915975144918331518757277733504324057582043421348016159480156430037653723635472089126228162507871723747830737090315363984632745140611694022131176350976645463102914043098894682760401828865612134217106652512810931821517216573398922141492471649169479052374684837430423103685645244884588191160979152965412282000928259034629598449377537549778225213924066735844143349151104618770994617156166492412592725086444124899062461531648506259337723402343600066176847091098197339799587165452986596134511294801960377205828124477698407503170866653971975237301839602757944287710091011440517520819759219755958417749499091370188891046640283858516526175264863653198690261248889071713883817944241131033776052315483837369160144746706214495325138678521843484905269951453220864679699092604224996797334485785182498203377980827421233778310116551297946909412949213060968049381883041563062006959302926619820791622949642886843440118350837205378909011552467771996691607044439065225183860856417043406023782795005081019295438059211024074154710597619110906838900174051271162979395959120472348753202415149956647738664816731674628884776056871216540798831705802675532844809306686781052995752110770009424554734536973609880543826971690013790559490738893763390384353684559388012165763776126593544432498542640368934353462878632880333801502353304728618088558270114149783681856538773404144722172386588554085986010497790496887014979765316450634347176588870594677550276720235496948471095626237850326609447614543392465759238328134726381571538679658932477241101023970046676950727885960205666300452528701106274672697495754225797410096734795388976826929556858240473392005869143115928054423667107092672511038313338453853208488538863857621423168196312602777736995541016379976479172665330258201197640073093599599558911103599697476537018582133136277701895085095383410463322206575944461172223647441277789518643885561972595327842787937421854259220737098094734141537767776869436284906181766380438031522092008163261447658652413627884268169691571000659270046139926474108151713689136711046835610291140064506760624504419573596227976556808068588784924797556765545784409232117950270130030365393838472433110014632814628123093002519274298205230664961114677196532146971853118225050762667641659598434336297583002575794379436541460164066184839000399607740857670174791533020726113177414146799408683324626001743837109976679433623213263648659307514946132234211956411991911397418194669811121238457666189186885011609117312922614837096349168457185418526977656290934066793582533608165691984718629520975612978790296946966468796286847090613728978705143173261753970694900272184014356780559953722418357469999952075133936081995332173173690367451912930764090828657920311986747502666209821574262430998500891091944847252723547225727264042473897621765539087379214147023721377969815899847376649999021130562958174561938840214744632287886094632119534017377201004787493202298859298745889714210765200893699735090434570750300225671206516020689884026682101879227933391883448314423073779181209844296895516158660882486493281325537742393627951206939842512024276278284322464339734462398336594347698813354975600086263429021778074459300768996920137939077593043418523647188730514054241089525877659946900123407912688576045652905277353071059122093182799039026647767805564757659947469354474417595082737729352513207620583416576070245082307239720505017152163636828255732465159942715394465727662776969950354820891708230972017004559932296964486048359912743552293309919769158215588999753331763385839003827186664691054574674305579124623788583978473770518330493032145146244924380061780804463412775934140772503978580218405034094470879625520939394763798085554141103201814017160718732823740448043486975652930655104037243663241436154984152684997921520147133591717704581506270702333947710374806124246848637595934673631779762584164598396963230978878718475700402673594196149174666982839912404536813615330775101154333948564748057101922639498015006181610706760090338589200960089631123149088972965316731701498195379502862361423650285353885680723025217794771951880352616984329222712301999896634508992657195291728105371495230316306756191049750469374731252264595043960718886849595451147247966958559332546314179304926073464327601944906098428102362627465033407260520968291773152532806248303901261793237042505745419087580475262906373456111825026904212068354196573762929566009406525527551680720340973362320859658871153175865192992878312299617460388896146705644811823485605526343555869766667606468739069186853729831665635680908233652539341737708552684032505179784607087602802381277053025137270358344864648743234624997900339735062590445488355057025479539444830230345652334988227392973389899065868036644094164219108774893295535275173062869299192247268948367063238260275138552820104813694725760332868557615234446068955075437856367901110243070169021443999340254136694606678750483042485344835127005591657495099141137001242639897715402643370500095509541699108146949535279651848608964587923791353044198663216143834984487795975415150190618819277051653190437022143251227305064342056966708165280053138577902451478861771829426990567066545220330034530713920061003272492673184324821539873347801757182090423480671549587026630911796932979263887889162114496387177547782000384548125734231461224516213833904747850325043667503698875078827149686475921699085213105435837525942330165966429644174070604611229590264694714119314430536709336671073238507146607750984845402758902131579765969394448104041003402804878806712353287233858675937093485462519442962900765848308576131307473235246553437492469850723239852248576792090069750658753887412823852825560306310070803532324720755229219375673887436210082652141275309961754023188836948616258151684893093963322045462476392210312620630164230451234456479735254830935853931369690585233794717076303601054410445515517419597988607004426546518367429099757426868307319762311827548391850333700087528437677359039359462477911525363841191829327979524143883877087366791114698545626566516621858055230584277107736178129432622168480564375742111404960331049626610222693045160189946950197333428896379381784994023580125726595094390500644708074824475855144446085212333685099039994881566652693765618983749325979376053219832842511986754820560003499855568047353054059271189921345874043796512637389847507763416740449232230772207368669816408480621783064419431761961773893287194507626374910510179002752353528764253074792554182122772819454426050651463190291770079731001491777800139530667052004169970089842255764229273003505642650889485972305243408616926762232632050850735644713976607557894188076462141775964642232848124964123463436415070329814719923410501163906319997893282805534769913864710920921704282896286797626448823226492745124875069420765992284259638355103633451088710050608404363580478476679906789978501587431881574788507980934195734321226969639346644903173703419015294011234389395748626862592852446972740464392232707898928873509772232028405680818774841886067029169102106104733412901907130284753066821887620860214992079400289191293087302653601620014716062151746914679546265706178437945769017083032401715481938589647013548521502205968434414654587844117413199789679783539129105911743652441788227649218311837708065823591967407608109224025895795316224648582180518242224471059604546295329094651612630198669246100245228321783386201385360111447713792679466867063999227708577381584769409674927784662116473443903019537746020902907825451351585003531516197358791666132735789551316363604617576225680824445459533709045147425401482282078959940500418330994222728808992760904680956283018130101735240431173560211579397530062819882646761671016378339161530532898081034790528103469198034614568509544554322678786460923757582310838303571189113246005648770835458044692360048411541331563031076218828001162630723103491022768100178134597277582180636596251213265480125343375490872713013458204027354484566094434372702501554506834231828296983499220293120545999766844504606303479402526747925040471003576559971520343242496712274482532092477260724344127832499108326840568377577657338342678327954322663941192978364997719566394096363137930458319667147209320170547440579168454349216489337208184517929020279594962413405566072987778443922060991600066305976599591485004662345139469866756975425701291478018689085512296012579322810282887079096854208237571351218603869637805179066490595737227050009063080218872427032259625157061745224476577060083031674075207889907125063348013788523711766320067343870690773159036305724959683429102174568327832766487586685846641945689167373186551668048808238496914753930028319600519655364167336379271017835782871086540056785172336555257888338617614590088207793066145890945806117371972218822987860917535209847477956158804382863658086075860984962573087936130086702689547554711262191260939265802688538049959751743104429070146349560344001025234041688216340817382774914664542269023691003390560007598509003570748237330785836652172753617141148868944870119914767946092439630786418672102482587738262422417998353914664452228891510602922913990588115190425485178058906037249622333324465601626782605409110060817255509000774925314748391919273685542452057393860388587141810404448623126466660061256726751061256743884129700199418139292050066518834462418127558179752591438016864711802544206950145782698199828625587298571134326595821989629608888900228640286534484510872648942678921799751735558777489324735988812157673782026748215783364279602583143835048194786408016040015879224837743059465832577013612539796939032028040231659566692616361249917605847682522417086237949733244304189865814183371315434528789542058804918441280043948743012539434792851331562261717573631541381169623286317398182223189581455452800700347313492512794340727764052499794155297461711104850752804695423447305514631512080872033963582417841852693367625575854261808508436003184911267922379067375804430591433313550619184476644005141010543864280283732238129635029745078683852537466672027535592191639554697542274957680201384912476750969431674201600299957183958998979492438739021787263468279681952891626883294343544611376574687871914521024408179118135988270289235950204979552202283986168032030918742226970757671889007909993706695487960785425766762597055153888457073598040065968320295252561498434617613259607850041436753847855603640115904856564198007779138541033635946088256459799776361332128862629842189093994476591468331617156117312879528160048740631996099647101675930113373176819289380222212581761284829989345531905745112256018822383811316396365166606113568748349302314202245496466696628259615697915635060073518628991918570137874818360317490066048639110669398098188436684785691858437165918444587570257800547402081806031636758532365454169658896056468408020060427003048472038442576378038579072255533021946250385053544958265285701410172672775116968163290508284401349042903379526464631810927543547862928508144241646857476804477425481833181970148446807697716266084237145110278636750512446889655607355949212644447858371911108722833507235799141529819057681581573928652053917828801829943047701499689737810233464184622408857556832849270546094740645606067035445375300961130058211217251992590518887064992042695926121394062237967523546218879388395137352205823208096527973738786647928720429609823641232470258175022088274313250777072407709822391758997451620013703345984494539456089654912661031312948569315852940412792926716414088224430244101994708818843127170019703086976006478933877407720529034568882484213218808462744700951434450841310228727013049548380078804246462996093324513154060429070473151377473086041877593030585894609335488121284465055095987440853319120838345639416704905668038203395449380062596606765357539087239395042282685197338695841736637905045915902514659019106020484519751536871111607946571669563310648460391154902159372920574919368634776665592079276828378067147335657431039265541032950259504587460484941424256621806498195546262779887043160407645136810831512811501663489841507954683404635522156226540369577274808988250974015362090826866422632959077329684441978388615069311318625789297680755811656147589516260414560016320241928590236476246071181396479067476471545688818187673199495111092768558907368954002630180747149769406929981504987984882127459214540639018868304225442941260263898894655773666765578078398035367712143658950971712133807002179716470333872947963599827471969247868095067123517131381854502214445884922804342070499210651008029525733899732405199654269072611720313693295847720703338101078091883897054585531319415861913891468417274278097193363207102267923721599104826788586074689549045719607515082778113776554312634646443189360619019475566594745881750500103985888641994364813714435631988883720508222311074489826635191527787090928770603296964318344155347645541884564040482639210675481475116219594677136043339579767906212637962566434433981374756934974433868955166259426634744438123920190175807120166103715916118052231506601188081484370266577586156751095503934132248359060441110737986098779781312387923209383605943738324925525405892710966498570805519730606351050642867886744059038794288458929253118263745822222849757160452746874621737450814397403788723483214154787044170453872781761963367844944189149349429806061355805866300384869761387850176603318819765929042850898175857023712954176319392743136731669769041529195520290696795593069321226393086951367821707348828133681233745196399446449067164180127401370618601990174370387809899990626196223797579950472071797653425632767069399161434552788377632891116727414462947037634936861826676962851178657225056934011980284561096819254548148187648868926481779424390659633719019468438159219950401032178878257183028616282798313088502834759616973534765200179401613267640640871110138442414291249548209598409862286383082837623219598232613104077095274449508869737859006059301774924601632952690802777919485002581051980646921810953110388484052661209516103918299474288695415481921765299551240765022053808248230753341703022003087899016214297284731385053002929896823741820536611111910287688863289230191468747424684422987641614339823812041149849582594668891734749735235684580147984015779106901108079582513037116707078009427717756561254387857507550131546635882823471397801490524155522688435947208614788892794630872972473245062219116059824857823651046841394018301860527499336812852570376330958025583109835744652395276034795437168285223411518295946652503220827814626075187833895983072935818750312672173656422988744879646618159039718489320632133482477928792962602459488207259535843535377850836385772243450647045755464435261925644403541964047855460677443808145885900586958161368290512415920158953144226454736646162416956307829291052488648493690495215832101033777822025326826970240310302555205433815889543771195427804256775675680700772695532472600495243632689919684073997542706169799978088768813255528697580948430206955507965715973751285330582147839770712576075179064097652022828126525913355135695429669627778888694537316064432327056684532213619112955184369922404829591817929209813910558929369932472234688846959097231549881566953337058553137070526710643451736964262969866676257686925981895166996078379502877963163134878435161170454675108947634382296189761187581297984604137672618098006493836612713519765041557065252375204215084445526683487675131146261421385285858743538265397198260539950507995861003281797336778373108619530691153879983277521134029989771211157330542374423161761037609871295419079723578434715658441319765296767094639908026956545321927407166448962380897993359030901235850578355503617441529912932138977188361118688482259209251054703349640444203495808399145705682121771537493837786891718080967480321436135116984810117703323830365278163955491694609032076878911017220215732899273960875376961603825081150342040125512295950986685116995427588086476766786229787613917995282702851374199840030583922130607487084371962994210052567743091404334867985095119317828670828253953634814982081272434517501845402871612857462943362142007048709460364540692063875054144129831741008535331923941075100963379907816879029100646041262120179970133058172032083708167592294816491036900431169146303682500988548846373145774003249759405394160577831707098732845870911533804210593777318948580038949732719991894153665718333243476351954696766845962084175592682382208812362959218766001831751426152359620359170498428056341634754860987470265643937206829822164558976673647404495339221072797986899125671429007161369700985277157983840120778311573916695408957528272283399601005977329069507082756808348341407071229480769005703686996807601988402761716085111287919769983257058975948210543990754443677790577036636520479448264993577908659498110051586234455863905173267295750098196881713799851852039282787702799257503979659262296220625623867895893611899023328332462619458336261399261725924852071951004319268020786033091138708827465105438565926073344120078247455409048506724492308621458673224853690866888746719732236582973020881361174428437471811874143714752863531726323432118813832184487129135462247297148365250944925953409318413757598019859198198111928844287451090543894954958858888966881990547231678528955215102428493621636584714766265578135684144481360508192294997438875350729808302491100449574036577531234778972874417632236287072335135574885975051719703807120776063836810269655982704093422893155697281537686187822188988925065712898555388369072014782179122463159858873263915590998630335632104045193540355228325811438447668361583943986487220160091746621252910605575329145884824261688339976270968169215042062672553190058971011472326785602574888278329955635960150124603260189390518132078599733155104260314015079201745881036588872949393628439739862799198350714501657601751741256524262081256733608625995095281654561593287877133009806133494962848495596648230797028590443704868376055733878963049639725256108196836299017768346528421770987458749010035822298369982793859416245046248722950163073474148452482509182388547452217883257806990726146411907499164299411671892845896630637046303629070633797237040074233192560531433996813956704856208164347334987721884984026078651843601364936145147803330541646905797476458789128623919414400672410342946999092767535703041889488678690261052348123347119430513433559883663973190311264711001212252647334974140883159594456942170461186663046736980149881566990044006251469443047687507004892207746042194739284464796587743936516865055267390976596649538573386041906387751332144183924388454996337916219283218496496369863137879087966275370747761087522035526434466181011103833153365751495803373541600642982531821930569654272839267683959457190976793753017181301181426752176878460465323373795046949439375837404665543058560138091790256232409875295417551651072985988643437949682982922896320829729170680041914212470495147573736921183830355037136375402073215741310855473801645319381466298929547655089659972560990703885917649711735092999168016715683089312894305653093976911835029709029230028060954365475762493525752069815120477732281563081784870266709448595431746203701923544461341856003601327408904860385880883231798875784270465721355898785482873225010905099251272794814748843420751223162362073326566457635778595988055373201043703486697055172174791225871453869290710049531775615963133834209067735579185918554375704565025220585663448655671577063154922795134618897160980279567174998031552811757935941995987547661376985528032796905362013675264338213130823940920805193033251209020825031412502464162900494031328450307506897587471146835536639035563236506257124183958336228670531172105995581816147029977255141970205449780071661422038853695426134223414575237396761945152591626358631731966739590078876623896565237174301721115369013797626451024327688272408955894358073644119966870893643279650468221231663597754739455779926598104372577802751233331688030901537523073518122308013143539672019863479767374254441931830963464752060069184319749343702298237913210279873465936170560871505528254579932555324530311268343974881885661976926497155155478160449368731667561137887298740143426955288393457518065056391979520408088947188514248718670473255067915080259277332854333262169300086469236836259570795799060392087137778000705538538552926973557412533775777776675586841360994334681812090110545696435541443689309731477837650172266144036423331002944185509378718388842424579006625301998749916909884074972576398403409193920374194231335378096276399515055787063997736318896448335360770437837524540718161134427548563046082779466370451379181702096389425429660668261430802190526622912575271649554545931603886010298853934574969302995890841110484007657984056374007033099516405638513893897994189821183127881896600620341299846070761787323811036374090809014329206094309149408394712239624698284686609688692626516511725603072382481864332712345974567960053855677237325454977912335648315102612042772843350880185546112426898372748199734417767993890524369267335119298311158310016144656253663630624499249100479788462160401203581858927183083030427890433138856945653023654550437495399079698686213856058181166375947726261414805664818004506012052611390501073155709352740301976286663309973224579961190539544597655895219606780229207948732984140879376851725695412619864631840919963112659432638188017683341868054597497292471366499771316448332425869841111945131352453371668031486427573495663502243575275952919473351972962117606201430556329181515807007749742215380421995510351400067492180493633469646898396698587589954628078756243341419233836542737144481287338041661796685659223435507345639827745714039997277721117805295411439957598980811753029560658221235340738848692525099110710141360818839597681694433367760315273321200309294871019640202908264452326098382513901714709493173125234787893175516720606902487229522234779781616449115982251355353266083124871594889703842337832653302090033003980452852708979888243246885122638976358908632855616793121357288235266653147941906755366028882731417476328348618006215331665481263349178683876901996864027457600884174807047460139180539074769552257167638705179705693087819897006257532699749569570551235883888137474520537799102580524113688751915584741071998911182770514185597304088251028512797058398537314380286901747540304994431994936598715190241007631329215274142075787419447564315755268595011373207772783617279488868215176368300636751599171881387327859498577954847885324947500500001122021949732436137739846933186605768641304477596600174391630964733519938339633736988878596866716984252796762218934664595425947130533806568279544723229972122748468926421792807710769422740104545660149027966421109086659978382482425977972023386202301518328411448347437354112253203299986446829449347610864052587001024785668693535332675337195021711823799050906908996441655883658113006736905499616590727831863905596999844844453202667104831671965544504067485684408306033951944113988194584178434805712997297661895125710526412836273714720738205072036579994771324422807657874956073458851019279876904592729150369302800423915065145995346314037103589331964387062147523586034417029437547123052647872731570633171253927096550585009728862809361517641717175254015349227445832734194813590601682632943264632354853401988290345309360374438203995780587166678174361400492175517518315161433308753428711910828049955222431065571893166424052538031093281083302201376122301059155560424028348882953296366992818650335290244732523618678806261051740260993348436643347189234881590713209773259123360064420727853843093597914716340284589209807980572643082567306089423350709958403698431844752727264443612028237906533313179878337015105566538624103311223376064712276439871011735263515594146503162551441590519356464297414735594696005194557062074320673475188033113499722970133348161659767363699787395133381058669482426990270007329691671900755461634075116803057593529788229884663183489564144976225606772600861412151787239298650845606333322255541037402217734175488542534278975843901054108596255685603770682539472901704602797981869234693715912393172806435919010843676296804319334491534518362050242399763433976673708252003371832073036733113693687663396683641821906800597552431080012665884379393829754033142309096708392164284497143844317630018602530351919576625416297904813896774225371115967870783760934198082170996731614558918347358515865744462351425731738396268537747523418335803234853945050969510373886715740421959760702504149432962559512527000841206396901819400838248891893210609161204439121936168492857362425397996893350782519319296651844865923664619660461211491409309544662901001527176539030238148150173245846868681212469929367285949805955142681428669916583517700195474729326897528954224210315850163402324959252039953284358843431644578763188993439451257828092578610317529569308179358347773171632688275643336608007584456816971376799540244148155679054693281095638858094298859743519276057859790737861308907354115994175349027314990267223162354177394659085901891080183842324643695713422065984945379601677970232800830254621781387190609845201428071923075517346609964731740057555138027839661136851784402853367705647618771098067590768727390607583698871139490087767641731464783757269963010131172466511899638348175461526512060289564425302971656844985677744526756950341365379335769198909509890896627883876465142580758119638368203798760347591495233329005384669733686944500123075381499847774819405291469084895477702855546369309951566690382225616160819373821254439500811171079723626772133067685880971778554317958945528915417944864413488855986410434368517815148290390862086119767408185474373709571942682722137288985222825908285709052158423446946356319246858026590138743612468111180305713377173467227883734387573629322654779898024679737121964971673003965799834032027827293308141313918933103819122025305634819073383934607311884123685707875849309933896084790884810178663675148047254918742536274696491686434679410643269138208357158342064881350276776935006828483731227120819960450601752877050191219815473502387427500781518473492597775342474029176099174833572847771363056898280482343800585169330077129776347100468979503013353836575229117392148487758061574479364761455204256217464568776548028796434078149149765185829960138572420134415655291010525054382113843686679291438499325797505371917105083073148176725417611711323221034788304831550727930999146063366320414351357278518556943931953545090125007152111244943955356328385613327320275858193401635400053312246215017010055838532250339423237832937314885334301358173853760926526890351764003469837572704939521169843413890620496369439128895588254998843964839923893285636571833002536625105811051682995695078102579950546803571833177426059522889908862134417186908415878981829123699520499923051788387853999717860518597821956488337194934923181261625776907298570378547929618710264355143892170227025606185490335951844918366359050780118271358692644895548987595552677280328385508841059606467879806019385411959316469121268352708678744972076101833845122294625079070438671616676587773358896292494968476082814633086477979591054882403052607649885218710633223413812149523283885844812610078020830586626128573747703990008218889485658996410319545695057113532488898379231841889898625216349390847883495058628864026082504188954641233264115073268868501240961372315692772186577930039360154254446433518474815701632254196075722433263509185432771977988833019793512846596723040932284150922162294271071102264821699663160267248841627876043225977281628747328175921190772111090244921897207383769683574967604323701048566958883866677856337993655747589768797418831566941470404549197328218439019534241421038918270556895371455778407356613799113887791193502833766711039425266823012218114731282378448031445491314635593396829863814400554565850375375737124203325084899406932024533624800599082229059544261283833575487974212278428490279220462081160943347184452375914975910575381885989231411386840665653392114643979468055430923730025954639968437237389618587910268186273498265894034148785353663980471893136486980105815755865457792815335969347122731320907011113146636070891201873775247356690655830343654904006914460258477253913662274412333198901871911450178805637964312153212566108424598800820261136021592439983455891989765661622459461949897693126110337032916181845890381943543380726412579696181199280704444026702857258675909210970358399705622591002418934753853991724182206789404440685014425342151816414012180836610804328012605486669534350976784105474387159325354529769730879166398644068688668773880674765944282959635251004831225882211452912416888630281659706913072385219049334979007567414139914740326356727456703899279676102258508401835420924057640217759143122153887307928214424718013865748685198173145642853904971090587366591050855709814742563164213884742115646261367834010058639562100141814866446853404488716180759799539654903197724783098470805188699234919613861888103447834393532033757020336897236070372029652365288833098850431163313396313424611269197526644041602094144856918216328139145760255714804953925168260896998888064433073647585014984027784976940513572776080430480339369712125567042897480355673399770211055518593015537681931939855514315814283678259705534654172618710447352699026913168304998068073102144399018426558100944545751268329201207703969610247695020440610019013002621596197245846771228231939845558340197738042890594161415599278946896574756490063845437385726676422810434977359615005490361013667260072649555051330968145472795912534340822327301251517962233916845961510605959578783938485390503750797706423821422044157686332194800869070134614879741629980948172195397522014570295566881933793763272265411249608989117519935413931590336840415033365397412211530604788507938974640045557645504287512194786759009369285149329614910216145051111708397463677757048444070953583521982208835842951345521346139826613934848158491673000418449631399829305964211929519112211451940600330930133880545099815507930108957008233807523399493238798408395211013185855110106671295999761667115586283621886567649050484302179339153157689052476734682576503535750029978315685704498619068077471437220483353444221101777030008419660824860308735375565068626669565601015058292284694948385669026244449844415363103674772503810356350919761124353189842830971813080402873744275037048661846849322019545921318460661166411118261701302285037003521329963009591214483403737561965305690379216504955127269607351356580271096914141728716923594114255182957635206569800656338184821582351367440688522212328393471926556076295318376683932093094759119614702206569891124261078261790668076049908912169097584286972848828648796354768773218273132273528460241815744219350019215295652222843129326527783108551330176082275658774276299305428942765209435521152409067024429819770060751810641904614927183091922733112690227441075485232352976565743011366321413460654413938527230538445064630565788027852089844415624284848491282573681642290071344051479007621713892598887797718996288452022777521891146032604932650479812584398977163608697043644528890481750896952711815585776027556752691296467085075090330941404618470770034634519746991414441503520549912179876779354282800566289757211171245382993972045997122481115505559356178775724513560242223845206033104049956208740541425080173033542261675377873106822872991018765036352184027226787305678294167903686406339570390353877026022463767907966868571558564199667873040998438601306653165432974431709662921170580986531193969226536770804963747978280607712807501988507161237290457510552402444469349214623374687955273491815062722660105507417261540584427767653606660481624788994558650466367648880834592222552226749421385243552006982697907538739669767009376266984061179132246446856556455553252185444819681752582179031990968349863767340028340228157638896131505412846833504931467442108620763395233387552888273280547046929283719104919910614793739320418572946529119456048532950452873317518077231324153298566255152593132222282576450479113912916725474159730346013655958708288961058133312453860462757160953522557731773623140165487839364877183132763204287727878106782448132402688374319626719050801949245822287908021028916910183006750263930284219359388347253158747301488811187711823605898323565869225812022849140449907624886725780928012179784675040489644895859532920168913785465139937957406945738577211238523691879811347346602030716042159003679463948742523406355452201618186926752886637880694307723528437713091558996534485626300295966993779161071168873659085438740181787374412061396820681525088869354473018337298826429573751211627575991023003772484391920417966101758105093722738237916780172309128246004659531830479083775823496545545808721479707534547080479464305508281476378365721540893840177949607370720637079005434172221899250968614373937738129279972966278618345612723064609920595667833851406219466087288130118116233516311357711686860702643823561094838868217566423458816281118854546084337585474234695934627147475863599117895352257563271323351740470644732035926996871837624070886480938144487680681272689404309843120773720029082915098779334320109924550920161059799636833300419062669632989372677115667603061434988150730475471404538136791821992155923403042624876767317211542366825048541224868582409525474604698041341524320575169087292909565754591717135698686464011925560640387195032987977540646014061576509909692918362307364292134674720969233263918102142826602801093565121115330830807044024203478485948042977333488124697227010126321168436575248375901232173323681645697113966792183566512349082247176167108846407402469001125262200912651005924038404719499611035802295856737328184320361257903822852042024049698465580275163324001184109820151027608626465875563668507969160223676129977147634386382802928537717972873736691970214170149935950191211479700225109330249447306814117725142718003694252653701292548998737163757247987586276665872797833559986202383209399065646941154819270765352775532430473680423073559067597784371627840098453052716023090878341514945886179315690400088343213799765573279472826655699760348594628713760037857054793813184834955115046827418525107667259349845079529851882396136660951744145430746663806721194998148250743276840055549528221098385357518261512703984368273181087772797605540608092510256417532219231108026021448407683333380964681707871574202390792159146194353849583014351218076957989236163371394904796666700037321835530926022008714148786798742089294142056400098655465557463084834013694649136150762182113926532467949662481117416903311142228533991333923492452335700078077365958775190261433156115713487533507096101469622469471390620427253673510672063645239051003906050104933008414596463592015114532992800125230958112925996280985078847999223544715492420198159864727604366842883435721741131099915866658411255568416507269751594372646493301486261056437349897922021138404425952407947638342660075156632861577446513748160993665449379640274412102922538123803825271952001681207641108442192517023278065203273978992886818338187699085819078516792309480897001429432249642510818698758702736465546016977018600229061830561224224918903143993134460607010400159472603163840232693780799586580891658556179949120344430673572730534641225001556373960289515854447826992789959138599334904786166674272514579141051171852572399442859778405026563501855275707339832937761942362463838363449595485762400615225336692746053834997004016155281455023475910172671477075538759560331466803869717371306867637252800764934266964336303928730406854244114980238241579718943302242097555478150509482319146080671829013370955800202074767207985093156157771700966597818467140708533036520968408633736837038298828868645074498944252688939761390721521160538055533389308489602552083883618367812276500900463391699499795503445738711158220841381591824209341281029275944604920528037546921517960243383253915738298286827330888251805373844621994349274775891080951317460797789426130290578686526903377077246027654393858349580643386072896669691086968087523048889189317241192383111004632850091515665162814440594481665180051485696893040930650328105271750706496904898885118110685517888452360390275272349591223662600126756604692641570061266483180088448558492617918449947592972801669402384238896563543020624943731183396817452382387683221244127549301746023294222143217024681088070255635627344072587064117733068151599664420089745393204033677424381091495725180702491319555397036390784523944566935904531893592020756907105198189001305710764265320831001400867092880941177819544902315678666804935611958404250997206008280242383617877413775958571482444073236461247773675940652495838973333608540322532393105588044312509595365350514377012104983510368166716440098692045171293859603448165185975042254559918565268777020641584537771412335339369987430066337585810911322544515372823236718369231105994683937905345493334528434783008938713027449363613868213610434434442947382819210831999832416072235465220559502418767791761264502743482832063027944938962487849766064601225473584455316575598780148721573310026237697092376203910290261971977364462041318026331085218595041353934703239102336649490713832384888827622816845164787649872185131767456220576628911641848539787013221292117756773678474335407912230962458229540439886778995934415455888299022116231413780864904322491812749184323517980014482666015292902275388177868345359012855567539358222845085793451841011117435462481883312587828387068941104042497069415154049658069479292220226308759570782751043554095293029947620063156757055036916949860675373922313998453884740589674978165353337749395033754872231739864216374337664592915064896907855805602041552665597818562281110548717892062638903070008084671990848011532286226232048688591789981594628893219346167287346959905649279111150712130152106187874611646572336898974489192014373482483009238232110540015084437636332544901856942684063084460700908044052912652155622705886678579180547236027345895585667663087046960946078824435276856614047153098125680796179526439819134928663276363867148384320904470401731254099111143031077847996922251881164699738104325343709056436914175335314663440696248833609910250843466724248363662173826214034996344051183862520822846011097673786462900131934984965990676986033829894526880756155020369356205033876840033387093247875591322438630246715150032186385775539711876618040356479974048900380838595737946454290331339254873050479956342137461587694466454755730011591578507225780759980647775569571864576750947040169390862613699895643170769501589103075848942576566147531508200432290482318366987475702313549426867632278073927874599486816506121793745181763852393147834870789701263151983333621060185260985154780047517496841485215411078699064535694769371793917268229875735429491653788514065085442050890346986193796472315500550747272820414795792564345470108316782147662222142931934064711738964388684982065473932261800922168559317393115033226093841000163205457838750569711692090095962482248509240765610451386801163268532137275008559723916719182548139985529630598786274327249578510510797625216230156850845268768251992494563043695262359677159216366716628790086142360077773681800146520754151357888455179997631666816146756094311869802326758446878342542841658866601608620826300381009753644111404997199515133056453290610057889635977012846417992702992952326693347023450350534779327356720765583280852657403252119726587108140861259955440580503974438083699769909314054263230321849393775895176874986451365497710705795407475805830765322458955829470085324833335699208719720054791989098789728240881031875271939646983271144783226535439169024559267643645916116380934114177519115728057007984131258099083122776745887259645934875424418193929995017233479476369577407177553632639645153459822888872099936591355218435426374667159075816849365644155047754377750689900157943953464412793670858748200848552654327916057256488112924085031066536744229026398596666706748075769978481208133898358894030707371506454268990138190619514318731754768287993863400590593404827636452516025865594336633878042620189081331824852058973434959975653187119711810862486737764622848991252808586739839801769481804151384406287761329059116884929364326539873493990436199659906339571583486443560115443566683470742731501617099446273853262799133318215648768070337872469474188759132042059930746837713143686316933964860760682606265109244352839741619791078356498668359901997514166053890136184828165215315991103370611363499404474681254485893884422348317023899483009278545791713281160185859907000220831798299002618330194000429743780723366497960720987597368399471928174604669215034521778267434765945404808546081634750130887292624214273091947133258374618035578551153888156082009801717343547650641271770925380623975715450242506290744042902430640857325916969762327217652447726337585086240325591442163869074618283825706840613094306191178322162100892766290449083363216927433985447706280037431122866863906005159949667462246641555766912792071851685758223970559066302041565294066126758886714804525396967148777813739642879107564445432775638009832177068474083434712707421234817439093346459713169088811936945540992838665202402717382404288940556611954205540544111188888265200237388179867694937167492463122779725755600622467558711402429689013966484483919891883945206536098605481814435738747102827620154870958959628026399785355972974173772381870176496624724891649890443943217526713702642327316997347878622919606964597815631334575072196088556401074438772384945824572486505552431816901137377366170419008710779687107466753583216610280946269822279144829973018769470338315131136914658318077032469448918997044660117994170878529228287180358473590632250068300502369258454010220785452662211651125471931204871314886707843899807668102384032106658146054888820228100112531606072068283251730571014417092304424736191293208749310645097645395649343797665138668381295023998192574052899738311658233941367805485618644668692287612528857575089704608136720017299608848762849654343523009985576005924196269344259660526480746036906162498941053387155352812244124283462921966033829568915245712763386305280412528134714212235091341839214860106985918769083997219571873227744194748233236496867575859464652870709078959293555796549620338650466860615182090334521258674643569837310782013730453804859199791828067835631960192723207076982592950479102040522185435754854537117392028081347916433678385213147238011785129314467142557059870993769280542636439493687459805891144672359276305825779286439074760111806681587004882842988891257136763974959891744594773574080623341323413629657984530871856303490579107768521414927840380035912796006798944008830141517968863959521629999359293313991641127397513942318260766774340700340484895076921638924213256212372603256138668156601563439132198023656920795557992642920081260468262103978152872853935991988476178461628757974001286030014522377990449942498386178205331658160965397871788041674383134052620692364276464779040216397615632864011234171032430911033820437271190991914704948996207742895688049375238010056791541667445393902844771236141424585464528850494894355802888248524695075196624769329854716401575322130838972173291770488211465001334562467185326905139454719876985046331053789897128637701194579729370774043396213059770462650681866394556514704825846535911377239878316570936686032758183858540982991525933921541107288956865680177338138592579328560633321776084780324996054098277278193704070640531024354700911409594068244038640552129569464729791526591507983335267252219399612490924251132167921271179061816128978741496991683203692339735161294640402533595714228040822628538676005298565684975101333749521918823738991989788170963875698345373516894803145845315875401167516613457605470749055164047517055241679084229042542078921269704988542017554597913979542393802552604866338313377981501712149479351912026685953916846291582772766475595474265998047329490770623022689768485108793717842569626440047844152693238718147900944147334768784894999795554837246076310667752923969271505279705216698002251912407780702862296070080039248599231430114177824971261143124659880586658626128843616128621062671429002710942120067896695672168781940987125179183124357375346594343450963002150908575348569947016031905825543970150379823566581815916022537167610123091465973007112666694875483667880309050600031501768033912623258772871308145611089082687929627749667194435176719021511564237152397383475345745759727117895111121429698246164779002697062610866885735017793144527281776593538537770140327947114810820818364092625281012779549351181061336623997811229332080650308003056522414835975046620821161483984126713899580860716819531232170675266841508983607732937714627626829503696330847796360710741471042315567342922046166643907739243066207185293249459553156050768461357835692422761715426120298058173778042763445344613777811361086105706024867455524625437690576208950212333871660658941641026079277486865304365541564408956656565732511130798861586297572378923576518461951939995768651254870650616507378225002163772020881566833100565002422210300862641685831308195496148093975854424247108940573784511147000757668816846429809959177556252108151610159022867813410832734429300336896437667484721692916204298014560007995689169475686216145506588159804348910420256908265469230584409367270105202520968560274957850288609466374140443447962222323732270515975713626341896381743328497459133747289981727035513670727775475329630088920240865885716414349163027289428844500484839044958747353644374973764549642388100248235903048857925798536880765343261182910438880961416948679883520594440252978172503399778012791710890822934865095645866255364605170847286871129757586042484572053079319630635546103248864226636460435178855503153304878247318166559859380422975497100648860072971362720043913859917038132378522879247107555293492727187954277996645612202983984447217287215724188572694483906647419969873758543295586179901964881584141092886168493729062019385007979423689889566545463724487114932432854686500839927579645486189503347836553444349803492421895653901378808268304241607304462526123986270301932368235284222411850229802926745071014111120399957675966058073131532588196082222470240496798448920386985478778771440333780014809940694899327318382569831322192727910187710485385190003070362151345741002430285660759278676294304753023627056323573985945777971252869845489202738133485746668543560644730714923249206214824924051987073174346851779155114003651477815450356146651971618652718698507283525723013832596781553469871558083329309495689302956561070273781666782817884456482340557621654074187223138595826145463262845318261592987929572472915758917156563584527967525171409802149034836896455956547153344484393556254485645107138398285315025300044360869813825320076358224934598137160939369449874094597209309814866412153114477663239030557449169491836790501547332195994972532769518534851069991608652028657135964099094298979456455986571783542693859217627769550647068081587246995035104406463879732801291274681905819117208461108803370854497614824819669505297940040449336042387015567649733144359595560376670433625341812433026678520505604015036924603085276138483502358568307437422688504506152393272563694022375609905307710471303865873230450120245715534132528081503805164171248518537792516889076179975945994717683928847707330332527899054339162934318403601165405262026928367516429943011111827165578630035497114609974583143609020653290429924558764609731061201488643980689571936498275471734759359666705061028574527057291623771599921341808988751725336988482152763113112504886378657352871928284783834868713993268529870252709413098581524456073255854978444542886451648470963675567562824869440192552485739596999847655141497245518425258710537104381749031408637269739963491532535008486421585694409771781287229898967013575517806466527667647383058622206489154568884065031267135109460704456336411821120160720612946256497964044953578183450811885548858950360953194946927582582068304428560699520884075258115436449168759693064603386678314283190187877050000176165580176156222182804186972664862852312914389947539100059562438955829257808536417903373397325459247934505880072563223840467645374736139866809338384076623527698674442567278658675013826869577046162730803673840540644829429799193596743697740915732743652996888683104216371201579004188134043498310463074173792463954213700911250975130870458192001766490653901308679831172561956232691241256225217233972401853513563602148974649281599449833537337549640108478411244349562192154045656516414519439320029007882652558773929621067006506547753186643173967916024368392638853314849737801545111008698324544986442094161463692037220626492066177894769237550900904158389466657710175429085643085400836681919094026093371910226547320440598772785758342143441967830313163253312489196488739230777123334624588588494862543378340336373029298415396433853947028144072044788324015225810504115839711642368674800803048917309980795684165471330040764546219206956581273066671304037457669613050761237789931938384303001117498870337498632250551884189554392439878605873538568069529548088501384698081115232960143384588168791645099185278598545730721706094861740496208758959823802143312266566363907225434482045215355734389645961648274097255034640900814843348182338942088354348612560021351838281806732773538490518320692591979987961874025625649081498769942071114591151964289110689842434420566983838360140036131357674248959284446687545252292100341344456589366749373477305839455840776287405223074397389181875466351803045750511481992861276240647727871959478793162411853866080073501017209547406338079921285978539554194119529026805005165891972021285857567060787903334988772737943998821053481395695252319373808319752329857377653546732848735770329446205316805425456307343797236270821810476861581962340816139560679819005143240244193408855672559714624321240086180359839202694141099786086833152803804383674617564960808331153458624921802558353195125114362855057552522777499699282195779840616732881498303331399715923068923237345548559364817376119864971626819674641172472721917173831816529073299625656275638994958124345510899945861951829288019427403909468037489096309628940111541820877523201761090172952682900562233994503823839609733785263014010739838022147666962196182791216504526416640673892324879001036892840460797494384874132981514956114494507903834707323736821205714645250212117905604746546308295934033545549138735668027501787297729816962059772745557163385135811963074197001390794103395057606962710659909554410269208559420218395001298253275218904779072489522797454671676001516331901408769857116935962871693512104034386275756973794483279141354963476355589721555140726184230352927185530813700857410899836976358556445544109173725834127648240677463511590411707055937906438432269969996717508926034475542978407802621256127406185943910733642749608518210405437413563773146487641503857461217086311632193276560162512192038532580869774851587268154231158885028907054137596580131830697190714547485348532838087523690940980923755348209486979193190685193988347298509493745408515269361086149468574139700924143766309713450998575123342222185303342644244926380634700479204981573084178510441895917556039105669147055561854547996404184317564689222363365886232611331603815035855026606066628108780282052852943591066801077319104962505083325787172683891551279886219883652561777083570711235266367959329713676839469674330712973170900421890671157473382104062187244421218756533951587409442661425101964976769944270801670923359847315590297643607389328495917427458953036113073277792522442983078419298764047896344941468667702103411268296395894046292248013338824148472308694690769112492869672283080355227862105660312547047341996753101083423627518350061058355323765824752512431833296538372478741380356423576514549988161734889427618229815232643226298110188246670623654419348157069320266946754934648207555593322504229823767174645550921574525613371726654508922185135560133859734569423213950953918429039007328693111905619889096305720893555508805615825401757907123684272305542880285754896786219614201653733597272321371120079068947823594612486527093867419765877823012110127420256594476887842149724678799813980151510994895818701117087889794085998195845800948293718011743442516435501594305405106804458773533988329565305629573921674753829584327796071612788535493886968287636166112241113029820480637975809772450463213599387180178588405315884456315893050661567164625551648846862098872359439810126519598253245670150824959471419628390725679271804505865084291804544595658276943130321093560672958238105707162083864554339198285251287082792777671571335010599393030669639563484021938036829368491429894614503201578374485696897398652969220703447848008085897431627195689137337064667827535569895183279267662541986402949427539951333444614458842577032885708593016527915795478093495018867204876248220984030053361272129090220255981156878803864573889533627663995599677650626793578991103108180245651336055170452693214578322721716755832047873325758354172410136080664014298356580220391980424981081733807968270057854331303558682218662899192436696794960546187431043401661611689034002056568417161170343235166676706901347041942316993329530085246281278789125934412902644330862493361853046927277090078070391202909327800616610527751614441247932451855280959345412876860595488965904508756343289551424102396883056389733601128926783983637460067419566338808717899376401260053445709712960460276951613923918541621370881498851529943010241792214647934792359665418146546962124425107722913153403760185062776080675796827143247908155693108293558596288400455961450364678660455036067537254081471583487578147892476752946774557136075294255332102367594090969426321348193678991864996628283819416841480516166158696074859927941392797169697534958828058189851603524044440446738212294928117479673552352759913618904074538042491656507707154186607319258641152550523807376398438258260450845739293431464554905697852489164128739163389981824304645415608784942382877612293479694325579028595409952725874727667893004329393672257651914291662126557915822960885014001344181710081191948345114896358683919294181558322385944301245241734838677598329893054677502492529620611977121807176577073772735467067627357052376880180625286247082550068400229499643890531850202319435938852128468286004011415580433075958430072022234835648788423796326068921069140184694052000764078755752820950005771359848419366111437987941242466669080124975745766126195393568168444261554265911957185476095841216319202966379239200730677342670383400232082315111808006290378153196462310509777039312502460351910396522269675163334790916289229979892881055803075183009705104408696144042222385763926086142381287921639955222345484048171026474056448676565468114462927580758630620950635115061163717275230567771094266866160382648218051717611112927526564062016906752396130375579720510346520250134441153435219639500268743996945595139566499325617025922852755283202668953777110748946011680465737383165165174042828638507078576618245401830262396113174879536622618581827618135343731581131265386518657470689312459618265045393009200903574199876197660844681977453675500122290222891577318912895711697735440487776858418830587481001100125933578701527193429852181347276682171251144451368391303336644793554559169492967907418060030120730422084549875504499860852854740740013487656708937231521458138045082213419927811318741285051971739023480050824738975907582930317701875113430820578306402337861246215552633100473739901387461884057716018206295240517582024445844249079319694632930977060892679865188229348833343805685267237321235773946500858867912229452334707482252917224349377590428861376920401547460137720801938064729886933874195218838358952321919216974206468927234392482033554826598407537071432094853312287393534907780962624607785009788926454564973079450826626988594523286418799032888807814963516901169446507068014607907353022444599769679613837784045574838338418411936341147396415328966503539766184235384987740053693957530736027423493722208417206044814968254185771584037540056072138274444272833888045287896614682944037235244746259102788110665002177049467234171989632995035707965116308933451794024099730012790109474956255687328570507206008094023779308473519532990017641009024682649936553196166167663075213234582103120893148695976765221617599117127178394114285054990567872053583091182636437999220456344002256190020265445060009811883780912354865094436382855234221650997334198461467790836498607681682102498050393940511161838631050734162705840096476789834591373514465691597680742682000468603577048807451345966513997074629851949027289519749093142339282547690994958716028717569896668923345642967249969676051616706513964146150685520161830626833329952024209339201142859460895529534787616391766715257920630059278491882200741627625881359361795144544523056070564699355406844773376252640355398568553877914154170224115002926965808697728329861274971301598323351449089595741930927942606930617118327353236603378224079799315716815256787220244860020575820046026621404823738389027032523741669745602549094406589344618335620693086827362715292852861125932081596027566359418413423067306805646908103443316292380918601870290488578512417943818391255168183094134285399953775568772775583511679289203911091081599251339539241796343885425583200696250795836751856562132426147506947714773722782047771829581574828169725369250168083933618766217051198495259181548178855306326589479971708313943752466936372867162376083539822633070960239608891598913355305059855895818255247919422545724820306346359022093192955428771598972811387263398507680130606899409929126000643304393098520746767998195199750501483209944640171105187292660124505883352698980455906349251170221554829640695673551620047358297816660161715936052250013451555472098014445003849593612977760343588632710183225673081699327195780148013929763383270488308767140576525351132494607533030822604572516845624263178521826860644719894004939907324523911582947410443704475847582410425589330529530526903496020146123508174787738581792501762944636077574054921515632331337595907978413529973641887114902825997228780781244734235692122487711504267198320901076693619635578295386406612067878361668536374143833194435088805625034699594182618750038348869844261727655324195846211154109875054180623652394161184627388679694849260286368996506993392728863631241798450145033927790638328948437581395772758220915496186721617499778667228210147330723458440180736033739025370062121146539429147829158484444981133051351750239928864208915036032975350866296554945755042805313641349481399636747090223152526263264931965417302102188958797575674919800251500642401016219534726949475379192269202078557874195582515365604995610994055071854439039200948286482463272715290449802674519025828744022076999586765142985406423984701240676252368753681761043173445463196525140548653295743053268528429942509625866447278617914681463502769058673561181884399876153163481407010105281108991442580619554627410205913553457363409456714481289987977683727429621394097919360772747782295448838040987818857276871196448791537694219669127190511352411160006145282120118808123434022316528090121980070530806420587088010274407542419673586950071502402682171627759269735766094081384070519157075672540399558388496295119599074839634086264619430812909282390931236175566494961728835705370403352101268095156189623155692422911639539722346860500506291168979415305699622998366858148756218758322623846551303970073331825168655571971756203470470405193426018348576061812241181242456260916906575090354916063671727884348680631158889870496798189189644691565025592705455391249226662207541578058410318790654487982681194913670708077733089890206005236485103808618593100356129365152822003532316509528089374122296624917191805254309977573911876954126215046141846350306875690714192918045314055132669943667004477821939028049457134837541511496417657681963303946618522977125546950800919289149751873352377655450416768704740408097115543719446789291796647472780087961739438401869243374061727906432219213922536583640843667076278601945467550137569168938058855190610929573657195356343028217498821831866168053420423178839208337140492798668498453057745687935929240420632871579781658781518457084087630274687619775887314551372489685045423171166144363935914010288701427627126633654448235134135909410492328059268947311931243800184835162374193948834365612763770129995702301912795668082237352540227035866051311168427402461303332811723028269685780584825224645046861349066361411336782483869932924828254075988327112907374867528226672872754258219097257464736815798650727089482106238427097463936489797008233443159769894383364833142000054364900867372631747569121660124660766806029426752539627418564156365282283299134767168227228534899473989873657103889590679524833804150225593093002402601542457029708606273478354975756223852521032555672998543144303311251250470211744745373943289354996430260266965626465053649899042853444187569436617656734679217357724304850265355330357475690954208125451325300217882745988171574109121871601460872909931515845615970613365239693719934096368868444502675999130322682883421987057343793555877106473650350030526524177621065562003008250893628127438880385547895190346977017920805083093209938547238956523815661365861777866092528530526541588738909367371504237587096488348516137783263961466609456696609190177736127379925089093278897171940208585340403883630032214818979889070324355842219277420990092236303995534787403432806175839146495485377035950314026786578442915573683353854116567359822192127741245692312351625743514229006348437822757748311852088210761849447178263750877928262529535557530218120161007917261894510526195499195941796381973476611961023440591493884712354123207879391816236501990268698341131499840487688312995860648593653920018430200839250522292468596245985392426632759970362735880654114078778909866128641382090607680283575737768858816924054564921454567535477259255976862821503206220040217934859727990598461402108615644646225270356585771546466664382556407271029353724585948279220788323640493472115461669414666355680747055278652546100460583882675188504994372170992444276783278955381593588783225017158536301418900437453445295026432709449827039699653472183867000164348139038552530436328476345492387441061216212291530979357284816743904605193146213996743301235615094648936694484674626832710210760743012494094647461509468902048818394328176388993137416902422943710551400706826182339589815250533587317162553797657009692250468031533361986771682189693449642175897430407241719685781535902089783288052992361711333554649185558009429496715366830722972329031196688779620744857832509151485280636698980711478129146472683136227094156242299192479642661873339318284741058460194080930928606046657159497586818017509937196020861027533480187055287123710446163062856606574926628091757403158290503503914912849640693349430091295811230164181046541415696154418610156613431938051153899844515130709059868706797646676611697927908388457052104599285367610227399491757051528916972895284175285860025424701637973566083912606048901954922874569566449548356389882371444146300189433149130928356241420048176550264455218889134803130881318593313182378815623873354083203054233358984186325653277722007796240702871343846703695945855161835337776199569351398375271322828853035227299057834818467745765817755794233498746992240391106344535642912347894186236197372878562383269368470157779749253790215022766959543594435230357710446955962307091727389133913545601483485753734327793621768350245677880987091048323995159752658418923779209389348596913788632605881469622173468724024201038150760033458558192828525122179320577390402406525486027497419079907034527771101283870063733406213381362245484554748449370541550504506225521950158924549074396733358671669869833572205975251340922164363601682498328169060323934812062751006715464563042483170408486672380859331335609435112774907125381510907548727455600596029560137850135633029455009866204031373614906773333824496113624110188845559997736452310388502329386938618651291943317589129165048764098119901683836054455578472537245353521046682358118511630704629421843596165952651097562351802314199844559733302411797453712957306254011674571640885171650937377388979192377675713277565701513904783589054405339211274606555409933061865574731062832902816924885951673754506908831440506455352501044187107330641349494091136813231700986653873670744697652645637617063854816134677066403045409245894649557534026215831604199887200874967549858422092848232692157151670529981132627888377166482290998426207649933962865892964652398686932003960508815340352531791064437328496582720086265948355223238791525169510852915029424401431431324322036282539924591781739819462877447790227530569876165054322415281262064055472799649189789141052218344816571328542981477809884815588808529298371319323724394807350386077738553105938725668957315609421664506393671348860156692045769916432049622206706273101731803322112021129143006309578309277195222549586817568409473502657635747009276012109435216195769520209498041744797497875852140824529103420824875602288270098048372756381609078713791831151247848298940613918861333048640967891722839777631269056444560572746668024179342220637705178485940733508604541862569607827089947487361261844055586484756981709445549545314941508860702393772582445088777232814374429089840981272530511568411562897693258458861255121772482734297789239257021758924175171218854364178198678295372317221610021680652319495237142550638592201993262866586679760757920158935367920864541422794772062054140388248764233579304403116722903445979592173769062041575110378101180738938005051614405380027279034735985471240940606166601548884702032222954670846783733935220713160236337032145760787493498521971866148155983446915376567489789984650734990018186511964499106871949345180554616005379469571469995386002893062482816020019299880292051196775757251043050544956000155392969442207893214437866488324370853953193037639805624113340439600493511016414317462114684935812196761844662734039375586501939762385522903071855908935132002522560260957099435201848198512908821786576962204081203506985577882791220472875812029712191225503935639154379382550271092770005707991524963445734005271622130989662358004197208082215580745125415359725257152483010226650979149240210592579170647728150460809161361431424893264997648775451046879790037526369986573864138925664488703688906968439701696238327037460115135968490871546294603778040207328748684891270845853178695536381760320303999608272773484868231032131256088034377338532854845456177745114694505044424464047352800663688652091553727539544458262139692066979057415355637600235896629168655877517781845184389231534104270418931483050808617603706544460021505967824484553268772767163298453015162414824446323230615473588718382060150729192098499668585969156802847762715585902005109014302908318813855152379009466643922600120017487797629171238132077291000675927698017919229038668421341551851990290929551140882110899535530686409145685809622717977791168288452792432108216238927148011367039279630339931226203677761776139300263570001129242572057868102388992203848061263949966133262317309749996170406492174259425810888427128210604787470448969124598486123532723269478632681750414217164694246434706814194765767338860380070746908829218438223566652443219371500634372497096905508332390261464695527213413653294946871781327338114783247588211878058252815243816498600481333663210751056845045355133147768817110328747735866205407416421590548252213367549742676146706053575071155810601535087885230283291856746419657946402252731099514769242864289834289462368403357221040502793890703629108567201003891197143642334480703754109353187342442458117836408051553032143727514294535583605368732450588292937925767761297999083610691662866180716409989640250794750514458032265719864189221304490648716259546368202276899749106851734555060483217454125351628959912249209787937578267037874090161349765910992132605741515931725421573607463368265176393254446440759216389953286443829913238754541796259762900074426951621821704163907163581447179310580315968509309913978451308254861457056026745597132026260966626157002345091802536813062710853681397087069462596336199665876811513219260082779680316762454130670657303983368830375766148369536499384971757091005877555259348362750409000808142842250041438259889043783292470199442880760065023327501816378314365122047063909205423251950619995972385085027681388355444101044129445668992272930711266897172896157866133619067134370325941930747253654943643765245076759212317637282625061913144232192660478342541715370528778126424372429763433136414791793738506886008078309877682089368415569216171175371925798738713519493995278178843359332889519840892653922787538433053598280641342882640521169743146772993720260666968760126772449261248864927844951942858152177218897857044018844160791838265890375751336971402302182784802065939970586609191111181038624860372459644941819041296244653427998920190184464731504541339477408194279535180002611886764569684045369876967074536909689896712460957966506106769528430913763608654243946565663813464817112781539177313278827846107591234712217547951321605642231441139545326953419964253686479572453704008016079935048013945141511808112211955302973218983931374345370191892702440571733469125086514388995671483216679435286099140354352482470720151992063027848398064699158439466830189646269533356884123459561122454839302380102434173645063963363013794356244850791504384663548310258196682715352610768878227047849219377336283126352564474426117234200368084842482046929472981258887344323968452565142299263661717825937136817684264040453507901737905434779869670097042135556631330957292721614389673610229659686607660725800721708583764538111299811939431180281586277250823482043492671001883691128974234557498157517187886811345918459763712746442683491669671665058030098335654588644931470543845338661288079360067341882116023059555759342186383630981460925129110131586455504455992517871929635035558229855647729086903618974185770587092460868236348600692261990265253971733785044744702875114269111770160972815722923875080695634633614409893143295831836429716181635152534699134935240871101245850790923414280908108362959189572621329582207288065849311237750353253434615226519152962669426774404921332111618726166451122964003345313984042224579140960874872839485233750894127753729229375362645518909306945328470614437381007831759895872517539618584540088056523660965631991715873174526304257575471774654140150476178486372378205787457769308431931400659364357157254129101625769053148628900849792347119978440746896407978292362936585970063058290544633176814978647133679204065581192304643442104316962609855352277086169660665046189561902819692866851048435345248837987666437998579401131332485762826234871249374254134295775659138887838158714532695447066511228357866052948913922575345799573394939934544148724786610353237116728201161804674339997068259742467556589409446144398936834200551597365969802679707856010705334940984881153024671370182533820011799510292349075310528599933575399298095243190555660720854334048327257981130427909587742454143357490745355546048773412067918874938359604257519780091045390867107210771584326668767715559117152624559760110441449202623643022481355867866368392479879585710497319643222282090850014527938199063576409625557138998183408474796548800484967434520067324382606756046558683027174594895651534188986198623787207999695644744932833026641685276183094286562514352282491475225337424439431618975652341954815989236549492934619220198260683467839556912909130564780938858749674177773331162221164196959424656646627463052545616987611893781750045315737475164118618726345953107504058787957126071271304567138478773643904753502773785441327292331654699926118278736901089427796870540147426090415371845320595455754400355287772920488009952902568926355951033962641393323533510671655751951162333531316860249091956264616084538200265488802759796141945438274599488912099723725433333981384362998832907976112632881030626550635125375246691313259791744940691309958901059269859443783931883475326867422946530446107151532153157289315825311924011358723328863691166592862270169078196754203830920277163952666026503487922980089885355678439166816431501640447620674498083057590048519875206094323734919431631309380571616789403012610624235252212033680068274445725213460562108844184591349294230986605326859710544181831922892999073068710645352296008807047376102805562880139614155683764672494112039359326216123976570718987854167599201626753855229465284468913501706870773958352242501205963030389913241628907577901142661032487743095820203299653852625191563358468314007517604234543559461594552630629535789559187270796761552463533940407880034299520337597437203625198477603813062575695906565995835722275726281122959453674580448448936259551858643679251750435243258144695346507399013827836509964073038209233170161300655316115516673718242096992590694018720973315660205425482136234111038010727897223029222034868224406267491858776265581290961161093859432352309252663280182783557368795827376292940542591042845890463244127074218856921102412014903711327805278793619922877355378628828885797009486909000532073468555088270022721051828782129526009171739819188205019326291530823215852306429757910272147134525264896097296091123643383683736938113360360469600007470670504722932658560617434523502517424362924388197988292613211341306304185374097247363500806499303670215307594930803017883759084579572097868153047674107619347459038061741628937447443313934714566112205830161020008705880949166286495937712429575070353104979084584986728914760496490915401681307126108568713610998419901150068821863998655037897470708492919859049855502346719290255870151464406523173830089296435760500069104411241013718485879591344323756343030888572613331415388747461728380584589119582629204658264659207942154257897150461635016647329994039096253197921052395656042062404319427709961495922499878690727878264032322281162711724033675099809550772535857538726921981799716279291633494610982161611792658783684292676644431178646377141728793452993546831799365276688140595670082592667140368388925410269536442509677196480311407078891043985055337411675240404597091081815409169307134166517341160152376935201684823311641609176899065719345523392198198059776660258455593043186140755182905698775256411432536934072773058499966642106907385947172730948246064438143862104040304144046457569167866675489929557035368989793183746998440264736969836834843277159840954678143493888901120210993479649998707921439385420936996980037694383984994684839760307518706910549738646172612018688248875524969334615017322076860327108798922174065216168366489833609929842336580529843609223350336925370559297710286452633210782773219186961118725806674815702399872106398263550511279286000677408179481821091291041827857365618890324036416742244945454308537086568132238949828749195825290623553374148194226941978411101576382201520272482856894882485568327880897743425293915159164516047449652748998470518871803875932531037137588799165320855006758710528866641638878190686853475238147639745080000756158814283103541028780413085128632475825541066959004325592737255825904789578303508737961107797457824488335814466176671752372405342493168967457479037944763324789998449355395896189017147019445389158424157591009028661390950132059675852713861851343776592081055628223912520468577797587037402748674450680306002362872273655351334821183897508891614275594511733836472395473649830898249128433063085417898096230740245548637970298162481454976040731847642045632185415338346381518580163683964953709027158301800688225752886597831594983492737621219766372192237824628149164467385861259577832378052858025376165481493795332236369958337600446900030589196843973409562228622524528182476136749886953348482518493373169435333980466892202700549034513572742187047259586790786857304508188944933071146295049354994720666629662465082157113647357373751974849615054441204539136326567821420510398854193513071833946424956648450734946046355066787936301097158670881195427888559584888716075595310435955723922181325445400526505456328365938258271188435240887287480193059528680681776293471324855257571990477233226452971478254406733504408073081422288088114679243085762959468672836419530197448833595239687613067392650171316858670511924840371244514137851622804568884118918306229370567593985789554340637840306515942473720664067909581689559807599313707860597947837529325596933964387299953487259659060999982785846669527521922589605724650791609874730724130898306217611991462569261170998262194082969820922635536538597629754184368444945008170511809977302113812358573644033924117567616525455881843784623747710799909462991122500384153676313982362456381513768964577567066613971274771751590245825424808304700377718505740258326172308276562258459280711529097709291087025786412977251026520057481276702862684626448359237859425792826321049499889511189113323779246204941173953494367949004425566497105972769802281349645895693725976971074665779217389781801158245156664130663587193371372328953334006130908269966934821188937196118515049692530209840298027309385345730502032440741975324444130731085786695843618441835723829298363099515994558161696350590249569682313905617582220812362042390321997728596273291052952855721335469648506799552702029952650211087009376742284230047427526093238509128639759709722459082887162216440760266690419155753395254002649782531868639925602942071221122270022701832859643965682457107048173535512783729903802982256612120826651126157422721596701737783900386645487710566129166771277794436686699059686273195254982820823625613697820146498691828300223841686011647002076509028967706791344012259259204506580857063767694226559128629146864774789632967215714879931818472157442360332896983253823605626708988993224044457412354212395993860151574446483628522988364948913344480700656087126716826004490474033387682041997044065514895000958632008868519940304025808637938170010240852338167838398404108315268490825846274795474800176175809170777378578690833005020272564506481778097071350658424940227555570197074558117063286945835687654283780736590404372192708532979751137340424126107600626578131053902514563454496274838127847241894871698943176648156580400399447413773883365707623544217098798147278946889967404235175269773179386575057354065019267081821820980884995072039361166522712126569068789706754856464852754919933033402101803546267717596185708311567312896375482539548316810970393565740008262069770247471090370867939922146045165350193520618607550300114065805099062426244010955506489830042353715697937452584107943048778085992194439520887451769908692203266695765780251348843617017205535540495142492649536747322226623846055726050087959981101161467372560367799461995491419246457402534748070124702187517301048215795373175586306008426790703301852081855559869642848929079823964681555038283764643429425025442066648196468246695588298917496682566250886754045061390393590357472768566912445983766103402421481584057165240765287370451693251068712039990279829582130102342319609477582911401237414054561493915740042296809353841915681213977582800007059324110462740861808806888257612742156754795187932354183660512580913410248218279110001172441732965706611539561916916899527283258891715973433721076757598269219347236259048703967047091283480417955343367680848518507789123546628026698562517601862648425940040427203925716684134597379261028142218539567627000030182613547567033524673315307833825354185905883446682184016493879101217907580103327927854398425449308708205737130899923751781402071778349451120055933751753645176837038124573476252593864042349025542757092172828539634765006359435437596411749948640229173738974997203168810340187473666411523374339952023751084956340417363435621314908368279508947196066123778782332494648698466435431657930697244557058823177614354653296497897781912386267505811842216333171243967143806206526213604416215455391185264123847060896679987878861910536852654443309648479041313396345162704508364637286004388103330393306288428057379249889928157673313021564761581937222004708989567959022315644354436139841050187322430740061373851704492407296933155362426047327287939201761807754733543216403750806814410135750813682479730903633349042522785467983206888899684484632178232471311006044112600578832070076112725999371740358337662528805758295223445783721125628997181238600163578086891038650052830544770218494961310121083916982113560618278145735676128932090226314707821236168029415038487906402549856501460332533343910252697365253786329771421759335390389690829529094927991302410306160456150587843098924352693216508715461305524013223078742102488871057672476621215537488203141258005607396654488667107847917740672497727617976348621621435815809568887677870199045970248669662909076210689769357021450276808009250204433481785114786466542203964574883804923099515681166594027316119289203911781121713960997838035995876815387301419791792835439734444870394030037410160610731667545429984019495416029198884829062081241116214907814343609561807694849978431643471294719889928600143278739424201137788805254361991896732662786826646514091377590282222308588509711860475976900622218277640968182578952338812054224866489084864327682615677980825959807611098012791076486781211666265258623024525042522296762473876712726987023615540107829117961654556500849634022098643731007173807660369872804813450804788643938675488301751207807361536253272485896271140337380130924337380568873475616556683405058916830522807271682323780288631174642604860640605103476362789663977800682219204825072585345251373577516680704304740101559066188095340518319665631765329715305178492520000357640363908041050302245762237935807626175105074653085318200326224193479819568897679700016707814290408061074781512896299358220802314079105099300769798813822141429011081973770994169896643685222726720951531133314602810159206209821944623385540770459771739641434960263529497340199361822980573382426723760792839961882230949112221603914414951737293060545060997735658459582156468272397386544781581526564032165845495466991420395779966395390433617254635865991159103808247580409130729174438158566225607663598088915730447092137094749948005877947870921249094332954455818649144849205256343843078119790301111316692956524927383226776498012868614088289909117845596870590267857957468760543707992110387701560207240003963195865455548598076705801513668845251175179716551108282133988393261055097173377372203635709593337033160380659743745909097960048944646023235708839586137117929943083226996641669113771869875972571558757972744580187695445410261296190837937148106957467081134139303971336482418306558430055490426466082404879052097501995609130196032678379917022723655154472925218708400885310304476687417554685847873552939452985613991667185178088428476192053427248039608703723756190849839881455552669476251243263666827534406761964732315763344148761514979094082130204053986876240263966697485796132498196281108061530695189455132564538277350960778892358966842629074852454994079935302189538098062647090518688720510406553420120872924366144196930352965743223560229174829835611815330921203188536820246354946412309527282409031412737036378963131073050360268889655442140099023385969222749975321556035408149900177594612619624570508508071616383599670186878747963637309591936590815187960066078492846804174239135685579194425180318326759560010123767076292083180523519860258929241746029536143274553337826823139028363372851806296194296626463149683377779964327413916975019954868017817519949249150555734786708998666848498424967696544168954615773765032841804238569709913270072746711273852968873375973176022076451186841398122645844452679801742867229529257359115914597820085605297637144448344432846722722118498025430688748706971526633085002814970045644611148748204392845206192996306567538901339734048480720373859880272400411391233794712370429928118023402968228239739163158696008549718485725041860325219441583721343418534944337938920240793376523340684003242344385687271247176139796151795671820040365992583790982228883344755745853518804647966856310906339275480201014951223424431091595444243656793045361630625134413235275793738261619262781247175544618496354653460107110744383833575473915073760385117029435180624764458085558336402346726196794672223380287777245855291997936376920136560047001704736903468966431684743180473924010788428945874473040947277778475022724674264723356067746446637311415993669147543571316671546688964286424555308643383868612433332637955353595439993382922484435556282273937037463509356048619403326842547638752532669737627148051327331870007838431025709428266322095143814327876664518113641074287300064843306651001646840331903839420552680613838133659701238681918035229614621025301234605891104564822792886335811217688856564911442108901652229131531260412467224958996674964805268847083182943068440633356520484351453782654765041823428635117654774186752274548293394204312051190632890164694393921640397191999490216154063836746444241123430471019429063339992182200384050453896702608637187029682053168683120189314892762656028969760903212342066080990409481115916619002859483814232051074916817269848096619389867793925167128633826386739237949057663724654060065764983926990885807877205896075974265288190933581501495095909843841944175570540209034738251563215477506493814374486053849383162196579907454440438922207908316485411880035522808850522043990013371468055211032244690590260567334297393422152335624828685155600549103654123433715486378746552337497978599445082602250319467983507710812266868878913543622623635654122429744076519014244525818834512712831333314381083089148765437205127763605104018247318508188528237552860779508144580184029556322704975876957031692811213121772335288540790699079380384260900883188023087239516832776666162520234643731980630608746469352605140609461334125727912284590152809252906919386836696211166535291710077806596549119035446465924600124308586557017933308322437274755301929671531488015429446554910924258237131824417710760930699063207725177153439724250474243917111868805133061049729785465079390542093413793072023435272649280467934632430455595151895819283216110303550998115983620278528893830178946211052003169818961992710433650047465996909284696055801491793983211329317596209935404787146873892918253646017931478868537613596749353067998730461146374717222778443033324367106774578949490912898605252761330198922991508199884125608792583859186740529447096586972145522406409275770415152228559603747641619923965250863860293014929833104432228833954789398841245009077328200954463617449480464127524051545099205818036203986543669095820233349874770099496434458950121523746999057702645127703110131103488570881748082420561548827664682284491830021048296385547675701154019279295242892980079354005255751675972266153238021555642341890393949585539912227425030604620122485355022133634834947579247688964750744594980186655462906225816665796849262126659251763199948339293741019056505190396432561564879618081452629450698687448706694487464230026244752391403176015086146899169878133673384266024338912896945130078908275274947899067339279051257110100111339839543003398285192335734377578871483568049987062673391447127794375249552220817267844464797079410881403638265497907795142510074991569840340844516025697997435800942196045156033213483367834561014504737621518886963110512444731404987946179747979115748314415316743833482236309948764460825408558150719275521745842794402825246502399038158634602996210024670026783209025849611698641087506177526671309296743853265973226801624786051975891784890688127239935128940325605933789806378543173326007370300244221174539814758560996556356348577962905366288959841762995560962212371634703375649093946845611993653621781728174249676841024430174286273366119545789207845996071573084598266202593423201840160277489846590305194332771264960775840962862315359192634214154588841971782009715358123458833586019637232057619243140661967647547842713257066025074602954712753948644888029709868208381788469390564799803286379125710432853606853636062239790694211805328780446034443275393672020736122648385811702855406993461135865461482046163534328892261292046657628149898287631703734856333344879287986426068969847823302827588967555498280613564522947751649564741471409387190206336519167302405152927563340999902810585447372844828697053636259085941669191300956411878235478820929715982707300970403858829791896920085479868322817754901281132570717082877018140903693500679749900060811434013498634391875973405758792004522744581749142766300901891903175088255582786382856253155713881153202371184471752886323687535708883220883820211333353418918016391159819072497439904054328240174576692271747092812610595637873650810696786772663060015885787855537261927188725552728894112767718709737308296669868045921341541846224358365668979472444192558555178919947910261590590223259024570404519706686540160787400795672922501808209878287220017908837412771645960345209439346825339039168209645790022317065984092118085170626000188097874930294342205426803370689394310797147974496009993717956938925939021151207033375399792581741966905275829777876500600807580123011332609805335631715514801522321563125311025514885095326314704766951691465554387510602847257341384723212180798555472288964685870941671959487136971923423264657843017065320293177120389301515130558804093402418843034051002413277220823119320822531482472650867422404446038008105180801966245087116240717099227922301910620919548498521671247745900550968562973468811931469524459974607567279606556907957222095463035417205846627812856388195037636945884719636712090616278923519089402110760517928791754507954042456325119099217151153962971522301418598863020650194819124494887460667388168090260206448361957836807327789255203992849932300626396975659412778108465101571703495082702177744949910182888871746833646021438768941812477352524644827135617751100734107519654905858465294533800835274431022052248300178932746203344684226869470349693550646793308162560859210347130714311279838851558483928665802330396926558156331022367339748148939676115410959681326756972995712765853793296528418519229851629275550825862088398107956206144580993454798452193320675318677924362485708237794805955725262553227136503236441927448157638566088560135434960476225363855399777764650916612477370705350282453618484835069565639249333634427885792207000540744091898021240400056306835067998222189536716404043938189467560366849806757920336791707724425582352042979938137938696681512161029478778042205354125425113017270906940143864680895515703788105531518626192752862424902960533884061251538032640398249353398395243951337683372197650460017120649807718720575116569980042125475400837502923220935856550803005084787616542657619135025344990712625263466595605968693425156632466781824266804541978538123558243065797235610246058762023297512072592931214053257972993432102053753249789892965498099375830128845937361481803515103155496237012644452325047619293806005023980131557502436623386794774426600867539104422753573329802528597805372835485955580681775315848715971383633349689084587162923613474430799580453641926802209011033348512819882462829274280565886966622681346607188525892623547279056522878002328247651542443888835568712240930822992964765338809538782143715046217064693588513395288805111865305362545322999883969626446401869347662065924568269806933561010105913955703139246934235131019342451153125292922230124222468966527140608948785980235091582127326447408321513194389539401687561728765788333752916615671434448959599082930513413653841964264738739310049048619669395892354164162893469922965051450478962624091489759875305761507554796707087170837231794633009897761404271187067387170640296289936842488032773312427894783217409027719151123622643494247264628419236177550736207300832339335990057025394816681274255302256994760232249422189073835490613690418632185294476365487951879638256090197059037804494615075180959526803892571485048502807415186225130598645333142703666807982490321647162478833236245791626112825336114889014524523782827237635009258117928017242963947228864235695315144471788444035486653664314701379942481875884289078122605521927590303900841030392416251678940289419260311243093128679064912274600119542289442095311396679696355495481879672228919742260238105748078445931216126086486231657489951152703231869478642374289678994420076896459146415010079278677012207807743289986722281581489219137513965289124204485688904701785453181897046092406374332883407460185362961605404509783269787313450717402203285882394738205406861377739613592468959889056420099379702149899920853830253494310425542046964604091388356744527343988914171674941021584589494503067818517872499464897105149757964046935307526007959976879817782365759910001963670204192896611457105350623887792093178584792733489573601511796313877528819353257033815318719079596716261031203023181568095802083627730298947318482420767685801079100651398136987360319282248093413504076979956583532751710555759620108785508741223171352650450478756036151283931861634130044633504295930539364957245830490341681630845194336348187569590653787925413624898983220561032131478729509817085918801244599556931676938326379353680813811162186388086492159240695461022930810334608472077254672976284200690450538068055609771822632190533916705622075820145038420836781603150386926676852905905975138963790682680923717680037380302988626117107352902539663478224564643373763940694825464378289613703304068813411154092570664266677115918642990969972119159296309869201312772317501982063094125469583468802145911056646972784406948046596602358363295918438052935004918972737295671093431590911523481470918628555306205607106796676429226719699942340135727710510077779366846763106124435970011236036676227042793745750772117856603549351711599957892944007197126658500187987068476757551711943868623877091609676105491992432729133862942161720898653999386759671169718882690206175064660252538254495094702998712498156426533730318122467446091474756981832872011292092999118761623086301109788975999206630367640336791576198324798981303842213483814767350601611083313442810094582535798755152713372935841629529784379776014851064238003910470938226552813106345948008455000184996698933634904457757819032374237978945958891494542491262250478872376058242223297607747921675528955233604693338409994848393053420498309532377348168608970944746034333017678107630062814470980197449849523691143699717594733044031462167666611715998732771987923287616799514990458129228898531259299928039134804025798179043893425903575836007867594974370638181996125564347429185453211298258187306076779855684132371196799454848119428218193825118952169301040039989756262914649795123326811995391594650653738738854864494091736382754581356367785168768781841983833199893637870032332154900723077858889114231280712029171827960183715665905611500668809978918291004832033410934214267663974216707786342925566468959807533072060877120154315244152493020426356913238259915335656447649473458110967248513246570988840367140145698365522067064619424471739935608380755323515625003646618410906340814912530428526394166957037256299044602719805429803974718654011279049881397623435866502504290047048442082966246052517730482587602210628296103280540536695499720555568749088737883019421449352223086226750421547238043093815254336402374441067035813521564120526605930514955581773175750524580408396983852525061993382783875339947285208370034635543070397378797471657041589135214678407682176229773655287153305545314066787985731565905991703705297869902628466491828466680195673678422869179404589158715500128313197041611237635617375501352866935778492971948080817542889901328935110476421477567297394151910606175619751279356816264015806300416464892495879473986726311758290240151772111167779089009704975216332193612991362179114038207222693973142542137912000563498525703921742467385675704648392848168490321689318391685546477825615885621781646334656574219759468374167088098345824203481088132217110939545495961207477283544845815505798046799710870313221703516405694236917716930589326669245407213087555385335014694295315505461587896537833264828894982269373381262625628402256862895906816806216159497633359244535058038824252072688568659051962993303432214554795007397576303148483437566448417273520273865582596241984826397726902658581783774112805741414127145101556552285657175574263251927063638884343405280047150202486658925316759458219956128792020305131419762399750052785177442417935635055177885533458473566181933265567117285870152365443110807978013124331386043247840398069656849713950950705171896503141018647374450443288759322558267726031346606195361375481405406292999850861210234990086905675325088353037936090522196453234751331667801597403238938457575984670644177357955639330649108222660262482453027808765426811483600557736600431028040020823019615087319024008222342607903429245511603003132501650745129579019164376026670773776279685412880357447924946462248130285654213265601415081464977524405416756618900203141660683785801114581820642845729411203429491574443897945908390497912813724352100928685121212627235332242176089558564184850933599157571061107194234079998345967803006125760318669093719101064230897205924419879708447626737363394427488193221747695758375651354664138034355326671684822648693143441482546218623141733511346389350883953915837417660952381874135779237901422641052089769628689778944451411457528027071322781631377200360410947531535734374046391852126647614640924806295416121009861262420723642704762190938431819508979077552744588567838740080071116813439484542262165553863218779656265260664785551695987536894804107528580174907021359595752510004780066877007059628328964966127333451977750282497446022719242792548652919279865915177607778563254453818841048965755084196939710409947594584750765584297724053012359258498693717392934447651656507509439275800694483331986888190923989228914325922666610728091618418242446642378965398208613656575333121399341105649451213069032182569626857254772528760286670923745098220679779646534040047728377951730739554252756824465008420400199100960727509020581867163603977487936778121743018263950466063661895585986806981344640760637725601594771356491164593902113479741406522968351873131412823645849167072301309436948089835048420433946372584502027825855760872185037681309759744087127420205152737604635725593550535564403071902407959020324557688832482145960082937450252365082867345371573238878506475184888929968315782429702012104324405966631999399867556675325216973466748804089971802172218415778477821893613274477784123190488155671067560626028810830590176812036857491921197837432391890721523457503811403375290351546591552847228901241235918497699271397005099689813912667719479859311226799926182136382926820530222408456753437233280428936649823185551033238981138332424671116595611667279630667381584955804584476215967051951073326577396731888571035890097834153910844704198822806212760125452915785940844231377348000058166798222231283854551534156639786637890774087714017754219377792038619609747661706055522277222886075385758919527018182262398421422694495991423301798656622291265416626084047433260214710363793835684553200578858918738239754342120892374075356559036243592859711675751258774126189278104030350950537574995542815301422290553934749137355744273816155312826154574208761486525950643203054952023619364944154391598647394411745219310559801088845280577102700415565545631500630985553329666868037086833081019772639073436050993865677285238061240493376491013229817844843655316620451359529707588036458568755460014395603001417128140451872224472490634187727306180066555238533172840503716200178913740959071668626228905820619652611498977759522193801547591368030660109737494469508504124969949022594252922468190055222634584307849493287356658404308484110031898431380968726463756044162617232686769493334093186068212816780068787222718940058444734818996962384989723381872529518331424567480552383275384694862906035277979468812684547530795799889480695961453912003022473476512049681473546801019621124675875488255841448878047620915904705415047002755648819981650943593238778420972150092679086937269676592606815529126797509265870595839302938257844131898387244965894249280571629288654135855034199330958816954109403561194217286612906000346875765630257851946123706105089088289573352197051063925904096582212964691081682645949243537372520102579887154633549908707309363396703481753884970344759666332637551814843497997560757295286040190898114346217581062667242420804961618929182410205318702450526740124220650678129244986712507198505572775397046393172897440498189928197562219348597999951608132778447354514919633184766819689664680993184466705523196487353797874651505609200212291506754237427607166444190782750956251500595275674391428821379511058049228118255207876623849673421114682861897028931825558112005373857305621845791035969637765160039493290176110777442148661740169684394117564067672900040809886669112256384809337195812785409809919883741446781411994230138701621620412307379315617334928972149893055225698043215169455474827869676408568862032775613496323967503092366344162555038925954074507735678335296759179348360027741979690159206672485262358872228730089053999881524576361035163631774900921602592656975809499007888890921247479664336005628963278931641560430974798780138399773926611641318897069387104406620330326196336005310530338427928273574909756263814102320201347851308032297576735839775816352816125120353802343669569827988458718437574049093556601974948295812330335961552886066424070385360000618115915280877624212269915233945822600958817755380159393923728622861038526122592394000867720634525796845166417730418501691693634153978775601447859430374884235636321809803097680190352535657314038628305866444603016665114643106749095544486630220027823876045881310728333745838613983663940076329262741211613640393725735493752976580790343461027608405279877758886364756028856804309875053846686011016116370466209909902545165328905966967194444556791912192386157564763239893216959803527229994097212118146269093197587913512781080754448389641571688379958328990010036640046956189386644617163608090031191746418435452340163145697151103822045991464750605795255594706028010500839441935247148377411208436244387848756304015615503978235437468979183431893516783169223252984363160639654466287350214792911799517440185065149285776587041146510891731344036745583137194261270901908284979479734357152599432146169063108087238389845321256582722508130874427375831805781323949076386773062551622798741187234295009039094607531187524968779389145639079740006551585104741156196787591692752818415238367742531793983671676141318721301647138135243928104467963960313540461063372608533576579573436254919610843936153733842133997782041198110466118086959625538024529536009193448186663840651504698359515311174980211268155643623427719757573992914277447754770081878812015563092280517664794962690310698833098893265261846025961624537215253611474532557274621494518107704788524847332471266810335669541588369039051390445996718663769946812456239953305058139772399542528914311206305647847624864368677986670426558766659565687742242075108815510303042851271562525786377316432833617465641082595900894127798886078762146409110199333183510651808709565813358165717870014352073788061080397240835322371125082772558030542680901641005213301287772809071001116975680530363582641831310830456974299096090454234735972448356039249458839240101612553243142616821930437812819747884734228285616787585904110816137907949899922963192626405496739979261757549684741498471040773461147553200635604945609399369459459406691829607328821850687882292664936112884619781229178559939857717846877671813969398736412302729122554937835642254790218370571762906173373796339868842606708152293313872054008809738774045467690405000491907819998112843640592294584352527355481558184366625267404395604109464721133552803091226339463256975713886278124736743783825052560758361739961738138485900735642470522320599958034317677651560301223768821340830647165785440746807441087551411032434184172472473467577115088467519934517982768313295682783416209840429147683248490214456149103891214789015619597053858734386765092867788797387516952692130179716006994550396734038023571762569659955500346751253704726516970969871728915993625043236170478895195217277644816025577359207944012941093230220847061400647714191729365052127621291853527103734502893463680129952788489585812987641075334182128920011244384905163870728851743887860732663715670206849413706521799970293309420303510843470072482951223912112500335449798525119271791194264888287402094029179675945092628328501778348379400403595121690409393547458760286514027629723980238626334344720358041230049757760252980935964390036388835261986620535721357184200254636185687830248537814014332124861267817023332316306784085406772075051048078106416654900608719545285168084661092846580081350819238796428419046542668020843296528089935671015397168668375470302990830245589013671365149333495235993883306109937320114612773748602680904892767893914758278288907143051860447182401360366261463589397449131223168082770524003106954517691316547033432528108299103649162472193607879483240410638557837006854122490359751189248946178133400899338855243846054224518355836598957249754300307463756001417217396236445207183347446554268018639054591514537610883726343612773978529886502071924193987185392619747347010661747046645542769218446649730826579521221065864941929789476387637469150631060935437997412509435886944815234789045448267757363466573157970110382613331848634044345304548086377273384216222815543671243571993557482068706819637842778740112493516932959876832854677699986606889901696529865777336576124475788868152396500346725183955006540058028407041442982686440878529702910811388349951794705875259593277174162077212710197785251962010413120880277472810030191253834860921359705141876554345715250202618652022528976367654437008150035998182423806976283806435865974579772362925077657255736817395879168478433687206180751201578457450835017449143162895984355370267131760459499096511875597392301505180025065944522671534763627407049142659636638189594531781705251908352402754658444891382017416013879766483762367742417644669765880919778150083040372802780328536735972469608469232469829440096742204224637278856262196112963561181860679337141697570809857210034397708977965628033681426039476152201188720728541877597653093914628969150269922588793396093320048099692295198595473404189319263638281002283845853566587478998588228377062220169148481206240276197746974047934686502618308323942818172199459198088234142603793843548811351653064304317941961331551381406606320033719850818309878526137170915564259527049448170058085717839626704411627224168202740729995140314323024264080562543106919097447518462493161281202858573571578453775929970324756486646518555148926693952999797209999094508576573846437372633887354835412900788825436582193934335953053930728215605119403327639182799582113279066638250990340486101980611071023369092843743545209812906969205605299660774254988861518649767582883216045688636449746183427946224449411145761000404816123158515450749688039972548318115717455590344063374849753848810747914332735617947308345529171649022759316576405123464080162759768856918703567220495595535486949028553815084133169965457763790192418157487817565406341381217512711715954756581594367134315500340598975298428844755999713084976599864620894762452374864357649373577669744838826154091438769969248157157678522093166243795327291370568225846547262508401470213324307736207466860343693874427984570650911925320074959811077316119480011771772828510926120879562012649516411812419511372336832280170946659835124799901824465981919117882781961258369236322817376852698238151972953572600979049475442862345875136555534772400326418253523133572605569498823202551053804237891642804347345146990114295348545916346477818051166654844630311419611391113576724710599431586668823641032474987498491400290955582280443658405568909425148752686802242763189375544336770217859032390981126168763179338768136637915474992953813027129067000696639116690095234919506987998864554011314448313338543256359452129224428635151013622187620534823693137618589255548370683807900903055356952067618228272607429486708612115219373832071141381199265150508561457602969150487518367539592596197672846370900657792079949888739241902675925467575275824130758088193623361993712477610324133968404868477132949090247370968334323815069764331740404807023488457877864740947163331193770364879384690583245210159322027333334657434567872019399576417058815579370353604497316542700249300050835291879384292131484167790336155395177551192162510031184958718921307323708411524949938086602950870425563396501350866898670112226353727801898875097153572758940219563512845867606307180591127926547292367169626490512340539812108272518587275651309012772514787820903308469597712428205487077001588744265063301923542679260756840212301628478987492365682583921213129696551089005449714544225814074660711599010291924018228665044205748035405948212143605416926990440370457403957872912609380867832143061849108318816788515735281754461841687217787148810224429469215936956953487607717173001355580283432241585082621232065680559854411229197486696145879047887613241129822675279855273755206013253113732015078254913304908621906837213626440558829883075773099944278973132885934709981104625150337593037796479090167002138437700130813532493594463254643011870985834381836568149778900811540327543281057437523683900476422193945969064065173969831734368397528736065490309003828970214114901810265591252774988361245635470574040165131059064139315529244340986712576946999378950105829364880159277806167828665851887634675185370449333635819472225625068888520900994656232877895283284092281565060841932273127894583639817037491143081993518365544105066700635945687257064311874755798984285342323697250214422147157705972590395040640439494507105577901965904578602122102335605618887539939421066306309068946541753460121917069936901648536027498107409238111980717966510663309331500589335996053143609461761202890261954550394341524149763647312276405591090435824213951982017984106091695267925807786547036443267880536831168634438867311964181091236346808937544769477029472304292570273733601802637573212953952955231188187790230682965046681196702225670545734836397159118632871073479084433395108118829244818481078905281527468307815027221503444978253555344970267298918393081922084380549368875145890155807124893879743201835305093549920689812195986332498463308165983627769778055300573187787579388224726187831002478546444882066214132342550815676278339271622592560586862561927795515480657736997365881850549524980266879362145811105869217378053919809338512279729733564732784545949665061980556535179371267815511011023985494975506395275872519662519472062447696681186236198368645353696431766610063335062915283969530850161740285983258658638525136739925648450895414467895703764293910384471011059129440594329869660021222705673780030134916839011169531016433425240151817678422888836471424785299642122635665897458173664709887205339954014004219760856226413494581105988922405442243745858027840057218847311308991639600761221913862318346788773985160971725810681493771524390148578560441912790552808929339418972003966669441905405396990311204135731284909916534404446953167718441065777966774252576178956831910880951255646137887706444042624164303461580577926902173414114940533776697716558716098256498517904220594464782188619883186993008020766443787467503535165031029913924491691722920808762066757739178691013443478457950755084344100693743972705218651168811080087030457945124904446979444705077903912883650647213341243343832802414946636596122969330842861067851933003246219143476248918909025573679956822721206542220423808056054462931720360478630933407965349022952893344012244256611531422258932793464206711690822683286055691351538436757554553711406703030151590553046316563850490721846887449339481703024156722756139853026086757991297712543493153781199948948698783664122889274235397231599540958837988522650377520360906592615200074064840319607627492699059318412647221946080343163270580890838501619389555154326539843706158243626764131508590237201173595818194006150986731115539785372744192392934785404088457750929223136120490616982461371588757954067438217881142489027891319646987688058116763491661405964438717664222629173923943768261247861001660628123359061856112481790324978645033853460713638363923408681151211960351511119459110024404055302326573563776504171236170789851687172179056359031029853778277404579330488674385533936467801761660499038341209960683144231034969682806086164493658860528460514344348974678013705440613516037163008091280557833874106730465003070976567245069797623402546732416972672943379645587208894776463655636315591698784597611488334643624499291728606374622036912780443709891070267139068249510923927125790315467474275884248262419283108282064786289178591237648157936771267850062694331090292584063104954917918455224775049267836458478620552846044943416998583172801899421446060581242681476341403173832582459530128468712002039111881496167051115322029670603755575020093598030984685226973874523908180852776915861364681930827394008558686025427803310965148324591664693082373271181660152305681331729406692922370221107336964787561385546361181970791372023972566411322002088986017333158643455120197730402195923724886962430463565034738813340348182102224540387017166386255831952368374694410597006750546138306347963227603226007022227974601021435536716616589334673874460310194787193969944632815659426704270429558063089357164621954086290229862316705642916762071483766319046952098375562072062828825686247627230108026810582523932289808021601471456257851860077704780732793529178423978202675630103975619166551437616560340638868945626463215769770039218050399872241945767541976274782395285559821918589720662927442020132575340109301315459173763137413461102836551929161413648151612544489665828565876314836016707437613218817853301298168137468456280974734777752003857978478664951349826053310515709249529362807959490352615156830297548110708618625120293397433452634988601141138304758175525968885733654707073315420740286782207165788795431575954223785708480309881480933297080099421990054670846487839536381341804059923947217153743760505372486560583229831301547107622811845883256930747440310810741270884420304831985557882620161099011569175870184642136288059915032219914871172505851713280754833624453868284582824877529121213322754855368600414277290284500389941650334339417108049283459698630067607147598897529686608376123292689326031655039102704439666957393242140296903285383766960024917885275956736048727393063295279882115030829065360427600891003510736886741727003401200985046518507975068636055776087272718148358388222112041508259139819603145265686809401550637255774306279046169710512462667977734614140119034240838722467700614418214573110306421169441449692325742671193620584921289975682470277065093199511574771929359980999206086942476297788020779289601802591756176570165830018624094132385663567447347116137872313442839944466707978563833877277594298839727346601608137130869686528207363399249527624308323799973952339673805654803870282577588002472285775502481241867326651830073890201949076152352210601597400846865671389437179751519172101789946013886319178162764145125178532499198142682889357708926916481790160089256584584660733083394662378613396039914251311457597141515203217823734812178184151164663621942930264846134039126000286155572613584766697052192009825675367411877103676181435965868095121181208810850667942577833478704946229596864640896649974576425995825519939082750754419542712334344231705722200525248126402505412018872458907087008712526437673449144620881495681881728787678440937568852699093964236805108462645945632122845054016081138581817810605722714051398784576509103871975607233973311922011842904567861210141901176571153359176078669447041267212373996727252707819645482445964674756618833477345161533284955539408251081233572226362368206566330299480416100199728664827440385617111383691904291365867390561495725227788019731611845126831745621567096082602629469019271873344989081236119273546001411417339227874691116917071342931844198173039752065407901231809806852066989307835902961253327925173035991464335705793358059593979028961414706380239820662599914263441536677086330526873701170035538994858930984184420958345615264113246330986438474018245610684057116572310734275792806915214457584400893409346659949812909314815169515674580875565856370487197837862345213400221090585219427831994088647425134289755464054974102347120031073998186410598245505960770311434923174625312274959338239382042479206730576970752678115307754560498961998193073228333712050551686018896748943138214577792991022345063065386369774802806720365733754670753986621895934958101247412276599220908406251585571980147322158971598821063688507301692287708728400450411123832582232134467111348037654018826894723105438281183504441647838915093866953730357071657730227384538442133176280648092543936784798030228043953224101598956865308536724438741651958282065510221581621367177938496762290398873290580880678179789049236673800355296392743976608608769155866629285915077566705074787067346068294440254917451820264896057860043542161855920559634615332386921847696639771358614579430105954874839017902404016358857549060951524573049052788259840933429609484935146010114892988659174056724864813610748232108402847628295672446323382976308052043482915653730914707970813587803947697156327536685061756571356012801449827912129608198076928606031828244818839262780578783940005648956563937982864286224676932205041625369144446654645940751157821620540442128443537391885425182320985366072101085850604083980572622511351170234093605347984555304605038911611189332396782258645280745936764197004126823056140682794531559044774600495423176087804402338096796654544530850290877124548968723548562133500544801353854976489955070255476920918458323587993470006461179040779864939163706375663314884796100379009997728069201861475931806261623136064965445711427368123137424451365063256699563883718308317288837004023823588247444496371062000088301873587651827790723568445576177494809227506022123149722222696182490486204898998920246162872896547369985320806245841197947080710684437394563903423450119688527918163780371165064418972000064884074279744078056945833356265438721198594454334025658856637183683045769694000059866186718303543676331027355381947796779362230929788015532902174722847039510919705958752969924824104618931937430922904859905326255765528951728395022401466004931039814646158787327711018337061661268156969267046119763622593472792073581356982648162646540309056041501110751782703468300368837277307793372903339385324699109945472781414208507114241375484589631863454678464583265546217725842226666033026894477002885563498240935861181159599297108641770093577284637445057234546949882505612680473478047291562811420302415061403120738113294220996760161866256312535188214777296073247827902590246483762514743367490768486419656782918106191704631564175881471552152444110436212444355119605889636757278649815556052007612906797598713266056520811202426334474828133651224553054194889449880082059033441195435248472115138784519505453832876456093994660171726755648540754367268492948104649847470779045092282252179518998128936552408909727159471219846674155971080930338029287853943232713325379375796544853323354677880427668767129471682618751804293815710024423474864331498421486668282755905410634154770329085917235759133993748056976279960621241971958667380296036114857906524857679039590586542122886418206439396870422150594975280191228803053905165200977201237284941320157541348768092910440297380990080337703038548804360363327321865690648604641443712139131246973275025996324319891156027139875015952097799138758742390648325177362576467180254460664752307937327797680012849271948501739378204576300760217085316776470339986815696479277832243581334370337257761094354216843649542522659969942615135230988879002640652299000006926513280447682713309935718080686620091376207421033117470507151546431459417243967086319610430612433509082950314764691110147987376256351078201126960213586294115102448106884964514613904411138317039592705274533236386308402903361320664622781299859391500117899234980547385886641481043775971781350163412611026541509653505719941453829563179244878523315539657119927071247493069749266399651481248840705412919056860668107214714026643874341330225457123158358180500384703489860341038266117358938806938378124958039593851614169347691150708448961499213808605290489375048302941936739346205097335715288410242553461100737187078736597408724971566088536118183237651500022541943098154194498409794379245181650591292586295270110038880814003438830795379019245376495568475288347853128469025790844806480928873042388240521827585851285307643077358401334681500427850602546055828750698532770302094525077516244078675532218432156788944740182437447142324522481490571202474721491199351275165710504546935989603448705910498268929780678748344186696034111966505876485308064413016419318493672955898654686852617257586182081614098151468374158629640161808278419455666330688103746160979798472834815283629006993274925065137984685031721200923033566617515199245904863067741422867303142111734993270893991783255775485168524487096714364885441669992455879154011950538438459884405515542317981669028222615501474493170683863639183742229347520689235181109546670286994376271790124137961849142714698313174207178931743335039409443031427747207602240836382939926345006994035652317406447511727228631618236615923067963755796969805263022097615705173746487935487186627605078110597590360357387424005348330334261692044284351890404084480352114340608534745999440064723782350807448518475165317033473740742597472141125546435464997394878783082302315653772767767030118982847639102795925280889487798920142354212470174233807902936712299614140986286658301148635158090871731963611312346509821034273124016731032845629972408393895646744440389242131066757606674278269076056195167220187090355745596962111964877571499954102180916440784315040309963437414455946809743806517380408662714266849696388922253519579011674151197116091981792520127817852580040899030678004974564425867944249830660636021445557492580163272136878264576766098966107371742561889417680451497169960238875365576321737136251192038163697023710865599269632953434790422596808184206634565922166581926323243991226509718982345269051031757769073991960504932034807856020276473380215852354438040389193619571339318014540396119936125306515512439279448267051281094085504853299514504867343784101343522842198292069532800183057224007702048154258635107321286408631837728059750174655178900830486382801925499386030970078092231638378640708564703986819131922590622589143541472604003245094650647550184369635711147157112197685757800163090422892301150236055446832943651611073269779497264361517390833148258138599700364276932599858744051891385637098545423349280257470922806722475558101877169041917421305334426136917992236828595400558022084226704871765175715371362160250589974715845010021422590092434990694740062081045657772959249065277171988977996361364063012977034183521273453102096467815659764741288453496081499445453268203441845698067774667998964233691264318778805362753530573892282774471359528387111170787366195998661803470563381250118319598386089482087241908375885797394466226823727419677068499118366988780647306186574238057204542498029896906290010874638616829405899142237195509431811852407020275473730071254587529203562671750547723346107264797886321628814730841792041215182434401974676153421376020491570631186487044262029473390360955070460304335883937640922289158467222647061175453209232449352344085777013942490639453190158768472654589254607120886871818576061106982801769546341551509089273227141706495465414194095074770482134404299085773753917567592071250407011526955675283856373855145872698950062399667938550368600220479939194495802547491329334096836982192125281084111897039480318992763236826298132060666678028074035042465316086541261181688439435965985961941226637254588629192519660089033538508045950587530218811531782905144425076830246490698077202777173399657346376817002351347637278818758430447436102398502710132713016866564161624369903511093064127352778271224757728475785386412262221497204986133070464356795767669867880072636693416147615208867233839148607096825965434904326153328017285082246021063145485340109900501734283176705239189240850894206332497967888203673122616132998911473683457116857341384225307124424792187886264148682736299843397827011116307585772683155837925807523020612955171195049099766429826769235484810667246914210782734531347321026557173343317410144852585990609210209579659025853620142242517296976846967927071497453176176596964303576084935072090667541586822762579441674805096819136694029109672953284799641971963175377661654673432957152577088677187039191202994775833309745771609036031793031192492355434211187953573555742043448383760161165185746411024716037359559583704664133172088875229689049029664194439133591975197159668251738030877848529148552924687228746334525856784786818613130769782782140073291716195600607128635696418118142182879081949186785218567774680292476006998102806571961418348853038477997725108383036308175516867480452019508143814284244814640078730176994208995800721590514663141643905008626080855725548369939655142406056098016078369208686228308875235029118271675624741825942607383838421880024597410091471250428328410460068015244548006196128523997222438816683563237075142726676942183522224804092156877481563617982351104070785858261320950224539823723105466351443021398607214831804527566719397048837407779264600994129720960484713843520296547533734917755787651302393979490840096986500858819962981535766203052732418600008932566023811383142637197272077359510473799845655319623790072921837047186152407313378693010947155397157886707827422235461440410810548943913985855896350510754368433050030186232035582529921183555601938303168094169223824870319032059926951611910337964750439242067254402269269652244492544104683909057887457295612934296200718608888881376726685969780489561247758455560163894902551930283496659793786140585386260350181044934074157151449954339477192903028532784490447628773537482208809342593718975392129259954432404415670851895349410249094088188054580040640410347512153022405344086495190738912899412973956514281060289291698852170622903590117035084074993540165320074518150567027043654730224056239884815132899146434521131563318607917893261995915882915957784151084400002778980980987541142402385196590531797486456972003039621946441700383544848224030650375678817299641000989428008799970825484729013840463112785290510306569414706203434609213152995620067118199395388698191459626457679688084042676883376002281711890504733645963664980034808690083077635769217586744772184359190280306609902921926882402414239716953069075030617934444627332219725369911394166242873074163940473248538092333384988317875990767017986577727601829911628174419788637297115088477408102022379100673028232140444973685297569273653731276565340816627836339157111739917599948699996089008822293564521388303224085441664822230337205941033168240030202454074879386926455313259915814932606575446463386441366378731636320819642941705717855978785846213144102156676311072604128818370703148402576998096176129384622796417167081520083752749329145283655852096150771091277332464252119715214945179110907108758886690249302334336205459133537434998365524683456056593381111457639991554741253352766281410577192233654255823531731493714182359843838235849437051689191987354626216848883133721796180972577793979629829869829717237175369898337980630922768393415805445767931640178549428201269032515634795323416916765227267667985311253435249486863850817765536361237047891011025363372237820561683537851437119851907654995402598200374567029179411450952427488503839738111869985995766957199954651599373010267697015950532038197715910146575279789732111316803779003543674075600215498956547611599445243330472105198675822228000320276057735343599918553420471397994810526483949619377804627399451166727376924930681909496904937769329498507292891345082760676992387047788786016622996981834157271011032409991565100529840687506769898564136929121145751261693567923988168549650817777907572882802605296330769017118731327678911947096769299544804386751362623704363015714661623163897699299910982885042154167817940020254535546462849291957644771675903984904681302237922984086193644752731168188562569399083411520729994125129497838257435817764027471910468831341057768206867221538773858167103730031059033171309421525741237499252636929242036602842548958248070024049090073087385665030502901074108637739487525848081127255453846801504653621674233762464219912855278616280301226192297491890692053608192435337493509987491203400350284218340475459664050517771637308998236681237519693547268875736911934839175775730834154609166024198581364437680127395054195071369368127108922417626545476855458014982166743034035362976819366731908897300234673601679063079746500008950002334320420955156266192432960864071456877261312586708829342917636455929221409332488048834994739102736749509978151966555576306231703136913584614928695495451889310523010749481892681830399830360469947603872587578149709191619761027629302924249274816351985535432132727426613740747009690617036986896270275700578456442488343451731029411044232163335732145167827381234000618040593434882414216160477942975501617888598716232255114923455993933157860931607456553515739268427188644197087339754436627443368033014858388373172001933096874943108619623917794938114065030081733468057513066838309985113718499829410539593635160698899688071088477432031499328102145530577629265814221190583872210723777471227616107399543421642580537682515867614205242609533712865195785503281115071145646673693057145560465673301124306933322188689588898648899246150664536706814223489853286676033249087198472565418651943559527732064683650365650752216976302823699564472451467469025736949935306211634515615012792840338625793809269831112051031399335558847665562471653499092409015740323898420423948784838772439508807866904908224573625505506590739730811782523149441739489355781444918917546264006058835017472588521733485247097040538809911092282632713500753001541486040716577213139813538075038652341352337728603809482007656656850571797878719798397000784897948661596598059334014769547677146708744608296435720700651642240821875015097661956268493800239618121753191953348422570244256036782960999771822263439271912391429825772655437105382313837876832923147877673571189942899662804688581749676606726342623018659410183092185688998646287935273086418582786663436285362053613284278098941468014562102619725074961318744169345991972730687651431275725514117655697941487963691521637426566538729789810337069760195447316106874484892056014491576096250140299980998134612457157309844701431758766791500114162301571093439187006286278779027489592912860070903894884822854125286078251085746578302472985339158686379997749199041432049408269751224907636769201750287578659342614221533885910713496503252563354528884717240183142951012257024726341670874957359898504720356861901236364021326485504372200196545016824496278331738171454507236518643080041550229721530727066650442057301263833990395382882154263323153255916938447959629790737878839034163510341746380054476173364400118005007093144888169710526097911596511747483928319025037437249495127835763243241180029616156989642789080517647841046737022695201253415630401135284179204022382630364034476554501078013892271455228165049614097765995641162772157253835975609213056965007718710052016858506849786072208920265340345699276269232515047706211929079266588720495040337878416219279610044859997458997397539326889465387271370584843875614720087919557901833312512065154468259960866469130846836852564830002108758903515150848700657901470593516500016595527657350258357814305518650832959905148853801854347107597892394822038609829863889086160926180237282178764360119213692769002469844288801409198169917291411482308570839314505521342951066303807858792119383848676415327440550098957360442581358383562205414126838849608662075572612119261807562778063675471573355225174966713091759164355448237024745663424933276098493026454134062643363761039762086684231874865290234780864987294767191487062134600419380488940197692377162640695279077756993460946892610937946338476215162189270877793150610302680476189347176966822673029478619339668191552980803643619715549972004068464489053331372219695607758735094328533249586460532346170103048906089922031882807545512346312686699884670595182820436629630724792350352129051656953087862062615656905153283489249037477281612867652198502434198683770370147331931717343389326144044571799015797964548452593648432983040854722332252018340264209870236667355501908372273731379299568571237457337258770924722575133656561706595123537479020920469153266749852057095720509467728419143467451099813302514090591777604833801399205113544172489907123706909680950159606967316590209155861623180781718477235504882995478256592016242820923792342164539592438422037946410858915378417271896074501388285285847566959486462790005096398163348966244514781140472544908525332310094164646083865888712849033503854286943061982710203182921624763584148001947194871589701267455316145098111253807116116707329235560834867557079413596310927113950081087318494748142082253548556815238860560941612263683063263845048500320163725712059467395533237883949264142367875037293835738346358462297592291268261393446465112920562385488018122903725781745663770728367690797373581989882876246836261227868377369061124707283371268406336044328818742209905849626577671016549958827807594388144393610349767732980647410299752204584318755405824902391112767382010630098229631682469492825462853989034464670349358903009795187466335409631580503219773077968665380659235496461328445057024373825329091740020804441879139399375295001297159358966842858095571706413573821596144368937335344783063586057656009322743046212862626720789104770918089831236364657383596999087778711784111733802560563354748148219438684931913169916489572538301803987003209948789353009624516692502416926182066416094716796540412179010762285092739220562905300485441337580087773347804991625746465687319754547844167345339498629841016199087445317680593963953241560928456443051542959186193576446992277740395176385400367374764354001699136361373299387944389743245637037365285742025211837618442375693785930376662713100572197936934146123809399340177608080821249012214589471335866060699271642108911257971968822205142525138924673859089432374659687136572874567903554431805265468846202112444728739315129321654157628490295069716411166942251944468910689319624690503476631418792552390066660313798587446219543010772098342711900401253952116970342609014406511712589111490592394673509339231093543985733492436172081768969667555384565361269298360431579171737005386424392709037821393783149554504760084803753829420502399210791028744654795915132608612815243351996679137810683585335518488696444260760859416303619335107856832487334216461892398577431156187430659180693651031632841883970142150648872355875198215568352027480671505233407669560020396320447362803612468758284329531204027657249183879608763623592358666106451625003625715967772154683997121762697688019299319875613838034648703921791049509800758789893987212688423227619051770864571352830655347139258119285278176071084616981171150570370371130478320411870622823170832355117992115426843322756041263735401057940592915056680114279797684453497906956880221023532434862271042768662310132790601157078103139386326535538297402427566598872780116653953818796873246757701646480573269861045462640459461519962905491183271936837482869713765483697896979154593565332805367547823668644935252514018486774752037042389190268377283948627829409019275167716718915739699167895374929388979048315054948534402973158105230467139325719939024857593405275053826315969792167515968686853747126044014497223920348685264286116387404921332460186247124826317281417089774016126328536054708098219203946215637627528421030055295390081701836000041392817810374742231065246599531917909989443952628450551749431707815582715489250397082898289589162474558404072862562138000766357260010790475005411913560184264257936452698438681687668866900960395861661793860721278566212867119509712858973072208666953788843677628679300015710587094516215931087342865232390961663027805013145181838193084494613010257144477467203927109374411103971412631326100303856209805572937070084811664212431930125803708268649405221873256246866028900280286085119585352511858012963703173540055282155205977353386713679975509665774817509721331679656308399000114868063680723026432324242718516078029830130922987072382282758861977607497623071024063677647821647747376298287949491562119415204395832047079902440798788804934569379930503723447694649406650839630341991640250369913770513158906135318971706766307396048744667025583497713884191882613447385081514847500674959882823232378740457137503254348156279266200985486038206840350856862903498941477416746883022678336704934458460710661946373649590883320720956364340185462584302136913467333141493800828158083330965199107935049561371896984208140195655337671269698273162592708228473131726848311045637605272227691404583112610062003132096772537557990397232619199872641825918540733009485606136864061296034053823758392773494245893467180122299021395078276401160383772130689982067095619215138599035834410181696254552725435560574927614732113663738375831356819592351484699801728913684942667249805555942845686326082021437100430729293459081876012164346146163249515029221902146181019221237836308379780846815155462408647253399299547523410849503099730372276384323710630899309536408195132324955084457340796388270700288861240662081048923507262803707454574450853105922948135763847950455963859828197595204279089602590919105743022711829901201837006729049636576027236959314200038535482611321031759384456080092770355365233796719925875853776540102842508834571723371213280494095728966720528766099090553699964344264017136762847983056163386498496114951567220368886631796608054589211513936751895182471698899157024830405879831235083152527021788451791366530803157363948550617340764536177428902627415236190077583600648426500760423441808722860761640977313428810640801862532605193168530647813471888497283864156507722908546294301451414522281807276322884617255797104376280642670565882609749408025534789782529554953258193554065520003925312212293928544738880524268419953919611682152263828490446184835809798839630644077651781622617370851700866176937919745522448710837385638047073567783935899310382514247920449824961391716081625526454067423136859778521228726932100152798750454166297860730378571875394624988637573740684740060603600590974000565200668439732457715040429554328871360256110375803832384146974059940669965041237353030946362048831491859655754814993722052643694118753710355310643951257404119324720131675178446593113502317201633530864250174793602506306179275452379031262787044236876219427389860095169034617028062006652918041255315899712286107499112190922782886855107102328788723883036303069282615224300264962317901410614986459121001943276291696219104308562372688826866818030782095825214419289675558792809578522454295731286012605578910983027918689514144147231518585447515339169749362538227833603160417615762897764570546209307526140543561853883305303241066638740150221378585707340560487262939604107094868666016834222287237244903448414670763544466910498696390591823586286598302205938112220717799634153367133622624946673050118318379216954005290457611187289043518572344183645787871631777035300828293697631270562582012423900342463002823677554161180050725352114549336404877712837059485040922151118945962618553821596418720098597563793377151369120431586870293648055672967074669863893793018721221421882749690173066740830593178084154367667645901908250385986737551830563728042289090784757906789656531793923834027517952027867786707675980528614803886511940592743040212278223615211220473568603555790959016983666683680069633976884185200209673811450068378348472374221435099050336415405084112313852030839473089286150717721708676954728680449789004509645863195724634535973710580233109260463138910441108711883052916993881051197212057885358117789466614955755391075560714237514515898750006035838074811671261593689833174383330563583911386766742896998562876440150611639968910404650383021056018178749828112530602780770808009016894251613491997880603990463500503209523111666101246103369035068031007266106511263949013615244863235031548281546431189062843617925411510153506159742000585145416618337058693244101397548466194386171537567894568813147407718180072330398533903243956079442592050478615652163176319211618995834729787888341262116381087880357412280909915044611195859321419157177522629470643848917895287100518280378809852834508286116411918154731058691045733879071025618021402545574706871124142447858685652655457699298359032254480470704762097750010038288278828349848720332126170996580633849669722812400773083038017735432171410270321579471284094187676876660828738717217302295781530060445217558721257967751466715902800666537228994545007159973437478573195748380858481199882883613621922416218608124023622425834827214671773978454389608415005959244722075949401929875990721621992275541714700189197507912785569170587383716781860087641456393451957075812773014434208834367580925441617565511995753214569282887657292226544564165766659252275192919168927361922926858597798107827949382294917191485502284421939062054487861410786152890086135723540748956988338299324196579470614287098937032039437819759733209628352677369149778614145205754348104542537666457847669751168747502653378428928255849566524152055665390477325831181370428701562272176646337374767879415759950815883914769447151853337937577233233443589253098154114290797127532335879701400031186065881401420783898175583643862983218735635808915742174498624942863464480031183562726315766219401037703363035367423229834679951850656942883340160512308327084874881649725630183778900927931312698056158592375951350916480602065645156458092267487376841329156133216477484030323144892136081132198201358506803399801664125421387391056266729680343871385759897043621786925796929008959188984954519872650320690378677764813868674148676319555839649645526191188804660935544927413102746591098930191254058978036235815981489712201457905019709811015439002887923897838926381662452630480261189335149456002553672056423764679429645275474729809699730248967299070071771397356836900048095433915622899255615696731318598624501088588076318033810166008486258218998234825200806287435162582137878953511369215999605405814684115229129388428868779559095925488733235192353925473274995169282550574063302398233818065192869433974843680334244321540955042175328874586856686899674665314667379008514279943587391602821636461699486149589335324110441486065674736719078168242979385782057345829943190870770212932718829060698530734321420509135063376392998295623113069988334531108743070895758796094421135572371104073685455071845635260487451391734253422348098053112143128417969247445338270903591838469965538871468994121995904373196909986984572989173517696468834253010230234258127922003200058843512582686933163815595095812180586152900248912513367527023470212046536835699380136089957449083209411001786416818935971903973048753032994334836703605244361809662659092890018576789368597158109633429558902475431756255618403149668158109616737862719086560375575553318387768553697518742424636656853517650233619515298415530228950630989345560946718070310979620552451736535803593251163375025064083893179615451152903808880953281652973293736003889650208622273455905920219399489719272258986497434306465560530914961706378883326675993025890642130536181017231544750912030847115917055052945556871683425603715862702844686714313723467825866584474222262988162959939552127170273286462560606858893584076346141260569232658962068032769417414745819253108355004673770110643797697847007729664670944883287999022468211645304854010298886321271574472872636896711340539560483060455815000800823434650029987006070947571556319362163107330397051684166725600638913537672086950292115422772590219525285408749527938757413860500013342213316492137815589837469435407804420661626040141627242324244752280715046840632515966256451653108827726662388761377976390901835165541472070694372479712421888347972605729655813009144688483448773523119463043880824019114808266537105621072790492970504688474456814382047303687420978698409060820404351653080359027608036094335811695224643138352500087257425679201835682694363455898208591460268755003247470525614215395705300715967868047483526256580264225339129540919045102318135836343208096793993187681301925962567832459593258064011156316532750462813622394275211517540418724235157040077143040844376905902680846414427930126396561897708150846573761961334511373761810712558650288698289351668549409016114839602727364590539866832979330524057914301004101911871961759345750525497997931529671894046335749024377880832446158995354157540843261211699716083981245676414579723068924007788043982022970719472120357762382965611132292669911665729952073813617660314313649170953009436116426124078055772403693057845209582204045931126371904287731223922669030100817664967726267560991613110157041466144123878765395318969534855247957784232775976447572401161516563551017831124722802745158120323148581053682176013469131186735571737360291747884179002493158107604201641170275179825888083800950775278540653372251702473374555896884998114864741654021494591514780741553519469756917886953209660314751562445550906511625245935116446218824122074772051188645085258077551021133664653821729890567440852316300474200091858595724070995414280268388330204306766165370261935977196169880445359863291307539218837925783843512784845050995879107841949213244377395137300271720854681380057123485572896922506371548957680941149570359369483573652326224367300231407576147438556106040147241141869759509904036026406695030740695366037181681811691413084028125488657917522098576388630856575264359446460531623012706239128906920141528936283168598709295339419169928226260301163449448987961153413460461445748558353513298116543448705005615196140398544332204596105558274139346327351875800857462695714937798319646370389099077068067031693621507650749927263899434654921422971394178504460020128605268733816095309338862534650914135392423137228246948723185835457491175982848208849067344435476854579636118115592463815687863664597936055061172511648425434802383802638378641242097718771463202672066347373261029776648738681360278436432885453295456542331310719443227920501431720812484107104650305116795168789189765117393238138771005141096974505882215084873106261782361038035005960438019447847156459786064031376614283448936280282509552462037366889282276600348379556112757174067771071884575288910301646699702201655562145581544522324309903524717849937585985179466871778148184502824168681099039057604487948882986420882025103889190417733497588998795477959400396295363870511133380452828218204865639920984947627166250112846212362743919715267086596711785532098382874067603754300162579898169198961534564471576574417635357725731819665540165381771185227961519466184532795154191160787037863214550380641081426430969306374107939207247620327952117124488556525218483154837997499552728803882071144263787295627537772706763556508026681965336666107852890802954262830100885049801552794209361839391403350750823163373028865922530472944872159117226489137329662294294028683986877504658642353626880210236002492556854541902197014696455523308614399224404662932507978252820483380960390528286245441718469543258014825286228251126682723507007830857288258146902783100488955881500317633966007490226942801580119207141089382657783297884503515687253674527537957669192985279323341412206065372877124234871702366285784293575603621658408855178281543080840906519081378114323210827886751302858582994724203915254626750012804610328612595049500871451125359191417637620127462652413142994044960652168365645571360913239217004235398706602166032249818060688156135922923825121000244029062173252995484261506404226348043119551174251382605908412863344127460196470839799763120264610447771621442333289700751737784362825067169301860989293870385939116530165921193537683034758083777544586316736547695767152297847113570135178817750155681135845844384034187610563628907748334522155893666228202182157394571498571654833249389120261512651708639128017978878466047251708848508376295932032764377008051205118109900067730288320584455881916609548990338466474046905393942239480444581234903895064142248592383755947892268031517720596610508292923964111317988185289358019572242918037459378506573275964870631856916202252122827230339571203281046446020431592279711153664292186587257572413636735936171777533071428167366913861387446154711369074421676214079602873486607173832313806880230101214405257212333889329766631223229146812219740200443607846807433177955691604319242104996809301383477297932388934574065462612635620018420536240432379377469768240795609265139623807419817592081575331956929064349596038077155869763949880242116824998138797801527229339923316461165697475755067016510003248689709708713579130130052895374467566107013479700673141201306851427734972716006926512796427642606828413093866683643173900425849853940962448818728756177613652647528495179115176954475976403722300072510011399474084218073618571796855186349129509259635281726363392701815528964686617267433630896937219348581371031698053248087367849123723952502633922425523568795616263215319802001172707414411688503553639160784748013007190888313262446879972727338073795948394816829706860726909410759030049773541784805752360506153908955809275254551620256598771783999188843197239666446780845506504182723595786093866653337331536360804699785008689269335989179990896943493027721522078263103828130163148918206653602744670576200322787137025540067221703092275818643877013311936338685731725063615330017979959377008589860361962719148439677700811451174573312675970616830978721728242275879795535772767063916839095512449639587906394466855161124995084055912089320890043782773823151573607004581498122642032257487564635304892329565176044579159007175917872657967597851976230904156060827746619318584069990426780493872911359927278597367968348384157048669690797524310569259372604051235914632511524800930799914485238141529290485856714722349302891542007009031330267934708176772290676184925985280096486996447318460473638529270008548547297899110310433745421321782766267760203587417406927962719928666714637965896195280868568271379945906647379890621240239280708569889945686325131433351943019889535339528916212887222708139561329705235636003854446677361517382681855205391422636047804823979219421737757568073452366356101821890334192157591015808764704349380108285279367693306691418343507812063238406066562709837537117208987854883915815653041545968403932487729515309739992134690269441094883604543488810289362817717860200754472623790317014134776271638568364267148790842436475446364620536266654704968675168303964059864418384722734247730389001833099131516241928304742294771799975060784498224623683256114540740124588489067765809097967427101660494869932864346527519307006917207817232587100377143063407999658178122644716461956664897198523262528469552940932631363991634915834129946533612879460242475611581089040183124785388147590224911090818080562275500726716100630741148927692628728098908842533286794684552452156259732818270428650021935954238166793611121956427993569625101906504254577267745095677093817976318249660495728641415593504953507476888442775468914049162570442424251608458731164536919955980973399431709104007131890500408982301337418103914115729246863912969572061055815910445095837200172093490653128771702404301115939580396982098615649809863638067228637124618012779971174542937619347102211559047369877004243343166074389208592240516217477067847949883040900872905854998253105526928986907100158156468817495668418380134031391267022050448760731886241268904700649680809992724904798937750839601295786136547079547952307154156908231819017685509411658848008051411335572721324745469118006113832746919155091699844539898278294308936440444843830081103013281772119739834727969558817031189992232608501353269692855483037788726830654142480664767573727734821126857020955579912469689324868372160485568333625122538812966453982684977149205795685239227420497804998095692643366485207287573208385265629033387692683793305027291353890366921455511625842777241289790541971497040223108247740226336622883918679466811954120486169822349782534864221886697447956276899092406416461587259457971987492901484132428356058557365049899718466586151687142366496763421243185652959177297026507069533737791421510757436254469138810803489169730228197765816576539483254021024223760407315433966327249602753825679364461771999536875748902266798679923012659328765389012879407667973735073115893644583380201944666693700178261309601729064218198996220105301692062725221470218216465092380520498592207265065535426845664391774356034024067573876277237594871639215263821734787410668759158688348854427680223207189598161429568955783239032381004439026440081604886379844353383420781964714100903394433787187481078518178261504729660911085727040069254145093974756851293939752023907255967686716145465106757488197663909616075293384228308583396733558288779168181748699212749956430745255498425978068767105021181456265884839334900363511526666506792888895830634955667769229095033227940771940004705314207461186513456477781970817082896129968855931315530845542613448901446685163817463492053290868275083136656345948882083991197510622403535030487743806467849540376625572635471256223057437421253601223285358377973907711099575338678482360493847458406327707994906745525330369291110518122905321053681481545174142847056265458668014040427905329481670878584402380642651951675419165905001952998860851598783214456938890282588782734963451758806982252591021047965075787432890191188642258633662125837643793174591657857581422072560232630588761701616294469542889270595915845695027114713582982970035106940326760578259334058849889531695189179280953450858541106217223335603064395758540104076561025393150773741382585184489754557354275909946535904360911276666062884189530314190956729730391667344773475806202050129569645713958066182185105075979590760338192465608225875388831524985929198701481982420019701353849693114770858809727675551919644220387619560631702062858608808351531965348562312164103632903586412923460270034339585397286987689106437631832437193588159997204714800653864548525962936260900663471008740980539095641826065057744463198174197785658090340114174677289916127055388765104501958841614858451550318175249252474428275733285764028090606003253816056123601341321808759679432900453260868356256603323735750983276628566425633991200290988590093667710891121025536958604156335508379439627061114117772958671550404064158323835851566493930675493232223522867255278720260936472914665198686980884342949900896045592079324812709606109620842341186370708227818386844756279904952072528488268541617860113056156311944582235937843210286121343403806100305223930323771739407829998424515580767938830678202311298675580417538980030478918364248388437585940888810907639295697264573278159299603778024006055022936446027105321016591994330816044422779302600614935192330420557426519538256416349463021194192518335087824959470697883509024361922806461326252630443223516983229521353228809485821599049875996208981656700400303718819852315317543638543394969054960641962517965061574370462954820356637562841616059178823041496706196404300814840830201427251437966457483952046283062063834138769464774724648885959382041225640398581362453105910246213656105356822595409824980312788261891963206275084622690439899594762916367418794126792719012099586231996507387563405158527636396070185224497634256776539676474769747489495306757862002286630216097515945820359081030853211140048804149391392689220625778390886399811674689276804826943600404773735097195181610964225630293098337261809236952318719413491804651924583533141614558884045996487852767871096595613956708188354019343464996861277593359243213351310905750881489677424667967344415037237898952365530472312221610731962602845810089050577194369297783595663176277919298553588181605259235127342790435924949853462734726306711576512199682689633084100293057429648280617944163237091694332824617966085075761165958449669956329528873849978506634539751856437025751683704370472619647277171492442183920375482288811808947484718602171279845464016589853607255281291194039383174079851649295919671919920617509368331435573935885734988823037295739165544659395924058304970864895307829469650568000158208627293580731134662473012619167760689791009870095345042624246864136678662851766663138966361484773780125217697604296095824802347671547342239554132012601858207482144768402270626391541805605061178364970794570856645227307608555384203372944675218419594848155910264229353870715852739876775946103192032811166134439516254712969458720629425183097335499681375227876044057916705004543147644223505247866021359787336327207044472894081571219249459206928656368550419293515324000774559843429322892555397357370306471441740458840072581174097459100231742986059406490700651766911357638202752256089832003152014158864148411040971075457710455000313648777142598374084062658491735002030761494889524628776530509024652197879804925426069799248041591328010685452098748497080983922591529130291488397932067427113987990937795954545854486622357843942998947894396171320728037465228400966325482945260046464179613991659032988746734854310716494110159762114496446387337724062141567891215454478462336763277501447602879046565053450670375546080027454262080753355403558975204301017163897442881119777395610834251587467074482922202889340541036879744899164927014750463609223983280554573947141445789472580874669909011203799787972789622914930955399994718380643544551540133461707624265283005574100338902817885241570651096169884564681823024309711376684401010089789235046745544744715879930598481063265365054125339214939616965565471552429202720290401423400074681069123221733103231129795578450952299676857308999615789603926234768545357046304200464558791949984091269049183417503455797997862827366361775564014492357989672863198945367504318744430588045762360761154821151445891703861526818298139573536593464051597488290259343671153194689801258048829113191807416941268869799508408093517569788924967213758923369688657821295507538842710103290077340154674221438509922419346742261767976392065252930239549049156608846844540534289615363356317802755346418409997913195964935159272491879204735547090725691219493025180041829887477099276699157839751615327209126252057798323730854462529127685808483120611432736488285761135519677958749362639963972214504151790663784552253247838573742854888786008177006600165827519193047478768933341889746828059670023298777133667811056678481872049413290906839593512477820013536086406327668569951868566876041979822489168028813626553888300878108350689814814666831662320201437452516455781763678247996633463140446439943247679232964676435487456381967699196854481312570568750414551865416798697764245981921235137460662184844713861150010382566599225386622429602610954599486834926198869507505242516093530488663315073069402440954039558428397484608290706231538493338064640846562519752476333467243676722560543009266129733593188681757723480524930654427133122556259040932423808047019115292792083515537694984561382382227020587266542133827671084895591125985932304801056187189065058807245530670627573696963036341694891339611207751892309173054248321697242144457120256066129709102553689486603516867665083721025403016679144593293891071142347008273976647204386844160151463966380670344953036481758493832713600517049944675933647226370870836653707567299010350436235415537609065440347523759960795200657439207282841734154011259321321728024914098394313411191153283859116876939727713858999836597303758148190680235474068219428069003892183600300614131690004213704138139552853986880901232527845737349573247346576715660146360926410772242108716751953063504483944276237520189329626594866819802049745652081519833458576031301512564538132730116323037416899474025740808579000743461851635591842451691396142586454782110445816346768434993661407854282891372472636105558577912069696988956782595348527544319190399756097159243743752273747624843650736432816181784541693204178434386224167035173367815498270704950555189689673184329971039974728900834841619865482262228854105165895840730751990761230536916135080336408173715992121517473862002110587802542079068718043102837238052738320418852507183889176949480390480075522005056373498769395600355220152024538547429683281789796369636721330979004910269137582715216521263052295980391307991006272277351076670279215168500184492171612358705869766814295444427036480999063040725779084010478582321158459796702729229835622519902301284403794991714845498716384531442699774616455609615678094142170671729353049045729073391842463646362348457424056213874321901298519366192622113597033985374654011256817752011870922673109789714792832033410795752375615619733373594892182948755355832412921487192255598195319994240367248340234908587253595404363261363336642422355120146919892249824241431486867714061017845249330263758219174335506276224947576313988828160476437102887363298721309535618640415297375837911366903387970289283019455877615937635592576251046953242988348443372154394297260338389819984716287889349123953682144568204247354417740433030481567488434662416242710868569749706125754502836946664966236935511088284488229131174918448407428687372904150948167497834098202834895083828849084782548166102138323366337924814257478491848218709294873202972631889828376478190924991058669604836888001470991094146352287934086067970497457879506169593002791695972115084451285261891915681843078038109815995276510098556707093384143519303160063386629118329910650148924665499030372153288031606297204721772823411502070944039718053404481215423349953711936359905687469635827660575063188338547074327076582295826572326393505994320661332882771382355474757949649865413804137145864859994599842350887006007971156623080631791976299105440257128241002409200479457976500336700214274414142261997368182692856800856992189747570297259031646702609960997384075729940829197897332087230903678387139237077085353775559839291318375359354444496316421434777506970559110522927740660913408877497235264617313855425119532895592351683855113060143118543632157335559979406341646374515999166145026628680325598129733100879344872742555189444585093563444256210142053707848140211267754898526479622311666349941715581419644803697669003215242847768482541870881639420262483854339215751194746069009922011460690485452941756100474092097201431832132124981830928301558853828142957611420631018805247831712440737168609165581688835369171125521731860898859335658515162600921852674415549402022778855940909464052948998334615857731254606136682982729234406483051118202754681450288515760611754629415181183306578585514318880672350150169703070128071182848649116266395189574159491396237702637315579535124099967446760514229491527743767120818675352629753204000012552708590630587148188670887400355110904064757398210110347132470263051025402627886539445609467381060871385433212387141707380984226633675052124414090744594901345120136734297367670404339615159403480553599071095491613172194562744861250921151703417330724041188073815819719497080845873885915355407924184219013678406970904733045398867207265289488799085398279555854415497660611215885070813367988795489328984240852387669177755452244539062865475764001618428713872758709220499070927062870850592207650794398430702171293753940825401555590006394425207302101607680045263266412329103702812512054887303365498974051570506402008939167096898174421596844595503947293236048813883579312511081522781560152488951555005064761666210956751188937537786995415047827986676193218377984700027558009264280895955089650388747961988583506507786917615538610430416835846447884722390772094920514884414631974926597389697320281843997081575190640140293267071659729032266234576751901751341751575652498573869870869350912861815272935414761778989500028164989726447880827280141475903729998605067658546461488012985543417353715901704159407785097706125408305356257080885651359392272748309447350968159832366998389393645255002190932279693919834372743331297848099739356839802009556745704768883075281151916452188151939161742308922948356509073730669727657473476340895857429486152637480448613952765236560974169262562224570608367036547680181606148385424504983615188833495264571056090267083528030982858880623296079607754197588825713204749269590433486988250794087622188874558692712925017079656031535296324669450920225737524278503940415682375694654524319042558901601559574023478055925451447577576934198272401128121817779704602020837779886612830465003674448521645718635346256373537000292368929630625671652002856455860403094893516033421439291362281787150970510546696843470968256250943914064602657415443821544004843208242214164893124058918768196220215186767163915638859907097155356931811404424285604185058131167547848951676947348523165761016249415736640645932983306503401640030510694758174037542815755578331811841452275890743708405059566013533472413624058827460523589096632179390914551116433932885495178924280674769235828161357975920137657259885189119206020911159253842823176572453385633800091601960709964821633666042060234266891146974646593676786517036127189494472935922472408053584876504386245890002276524910206238516764951236526416375536655845496424308259649078568537962753839086859865455323019999597818106523649421918838773555982156055228382151646827361154390614111377552906458818574208573221327546178813009421280282993298217608608458875800631955247368752623123087844056706140583078697344519503365399791792732084095252792591223724625742005443035846888021336212564217068919539182004497180918971095927000324749860129262295310120521459134514096438198144425457612774808522270053706497961734640893652188826982763943203554808478281035802156471289317535174347865000510404175208291996258314507491197825794851689660805023829092825480902969164075902568888212423284005990668009276617599538795792248275993408725043805521647047927046866687059338092288619728383824391840244805269201521504876581521922906589453039957734606229912538876948135397715983493218401122016908597900599377197577899126469263234977376456343215457589460302706256171671927199292877091361179378916505984730716841380268557932121474821274085742651574799689150916818550025364723596626566170651121695256920996475747305363123317170741354161125706070067214916549655422569468221498586916702509047078252750148599997912594765223908215565077927811092589176565885005279993485680598888632984400754892956023298921899411830162916439019892325749969081866059846413386241608887590573075035837392607806684286810723170901781288204530901649545184687288517182625259880966339511137571029191141073034744184651335441584266208416111794187295753301102086470940593432885436577937904850184457106238913297950555456150929657922082913130558587615250126081177771019367884841176432776642973627756981910180545197740020826380244415731782342935975465949527573232644858052803916488217535336169903485352509838626119178101193204964725073601170129923795145962165493551516896068211214427812043056588787130765196999955449296377571994476976568284620670551901309250139433880974244430285220242362794715466998756562028940602635265617083585836949421469855931646495938623489372889453495207510106255839736241537594049689599898030999847039929904493346261661529495056398600196691926471325373791650199532716375540864258914955143122156421556074507833619075532161752596836878582761814202221002446307665321653034420326730202223879050603811984737699965100471325686673882895977324876595619311819818322961260877626315520593207487643314878514423343446844053516404666624309013283375265872724087442505306056344784171527020271834874956585267799358799698987485330711589447362185807155852334401026326911627247743826996047103005970736206108634116293650849089617716628768054254618915896790152603069336712510989945976890052174922999864744630227565677846955715751760430534982837586111701478688591626575365783570398230902873370857876894956090211696643170063707556895700011223951893221893307881830160364055025653217469953366909699302131497572521271953339707489869202856009091688633776631180888040164391520526620872818745117819111822876550974114997000109155490681615254077140229455045850013104946005375400485054432307925697205340718485331476973428135602364649606862121745131477238451575468166767010463716807578569178636918589116495978154798831625353075481290218768459946803292113029013141056809453397812111765676576891199297202672983639376711384375846221632394861519522630563567710859944603859268286800019657216818879096269591292353552785650456615714841480059222344164099807521393059877933017308776221454235795482302073450401618810528611512254670212729490281018391664666710859353209193571690483323696719230365242597565976723877548478059560506470721297638964609833272110575865213081956083383108665712112507185010402679855328802041173581737069076638459161273646506071772178772119814949783085189664295571905596067039583563688837905255995080511569643117931368371953431513081512093821615172867075022602036443343423178314286685264456214692663292801890285412873828397825429255555124343019746887230647431794183854241595974646805487369734519971216096120200221856908842144709083218844032232279031326796137538993688862547591528295786177978420323004172659817427153035684138835903976508684611862383362163154130983590256660604196527215242391434579347226930444945830086031647426405284715898749438167792456740827328071446221394195741419770971804021567660056863001695759174535917630527000249514667077918988000205279530364434801742773632023600738395540591840148545413283912998500970692750790465652392761925712310838374174645436262742979698204658069179719225387159204800772787504512241644638615218325935325126971870452313833702186821517383448191754111760297625709977721783280584994903670435099285147050701587390648961672459534297568409468751958004347103503182532120204046387277439540548152359690481300356231151981023240853003640539630691102105555109450127021322561549275037866664199947541516299920272433860920793813960285852086603953622920803325729277097646169906010591654685001291462486328567500551752130052924400654815219032501298237376853306529750800910580506062066306600793133685511364240272406524483114200163174640691183562790386464968572173196366366871153999368803544603398238320474565227936480079248102223446217225959487391976687588119382659681268427594770282567805766191655220191536718519281684869120900199076859483716086868314812854469349686155469217011101979134496088961967293945751191129770350508297760403275001722795199613645854006862157996105822236648706068592987457164719051531747243033498711792296164797692671997404493741040232419945564870326423701295781801967638972233288471590613414620162116993180972947620524504311724249721994637378482540741071147073112421049455402552709929148990330847073093458074451931836396003436575021457479422631569336368204048238534089716867594472687096008329354152852784226518130607503780840753480684728874863736245282875067446611748872511034602879615300197858612007617980895357990590045082898701270241293045744585966494599348458006982288006705151829275322415121439909774887560792733086542098336002264148827781940785860508834246265039077133632108907024345951659411845373805248384727069866650596660533783085404864954181552900577668584789701083224092794659823857996756708969437288119774112498069936634747044226176818131840305318805749074806622465868804981633906798907626530483784940466787606031266153645708565613788867132640832880709862341658793198279723637655316744055850233577143412103825499767116047861165384579032819799811156694503496071239352006217814521433144384922046241488539102259161847992622662779529877850317978639528550756301775177385099117817346849893081330954743785633640056860669044238997569198242314641140198653448691219979384818631146283291463782964536493762487196307652271578426199192610464507068275985831757939263293287751075179460699015533680259023001561144978570256386615995048069315988930920894699709890115982828865339401432848501136901474416806372458451079264411650139952915629541366395555857556010986764308408411719696804519747348347439128115181490453777542236414132905336058289011767116655025891250764205165966339319874207819130811583491146036768854881542743515956162997977639427371162138004852272220743706170931716561530429555432959839547470296500180810461018702482380076511473641853535760433109120683000640972724779565634729875278345538140368420286304622143720726379010546375111581724350820742109018204879786728048740813049446020716448545865260244867903681248247110095087968607493734254852274766535575303138403934511068771131787286147129478285235953704671567169148913994757236945601499130173628290756816786475122619671871931372805257471128849894234969550834236536998122348763948326141898774869259872570092943713191479495602859621371537011462782218927441960564928011984967611299110931505040987805100173048868075517964667694702822764441756874688566574985502295654037868293271578294160660430382969444701035792597995564243889885990928365725467150836162300249700244414423091880378197260888363981463517408004625311491724851855339518426857085152380382014257098663333722735153802102967639019335261012331191636635068664487139092500355491471684491765778871506304328048066935644585993355986331837563584170375905471897576128899833454284060149150108042853082078371453083633176480232023327898544918301053408727411656079984883283523374431966960709191141131998806874179299095304145398727304446927369659557180048860450094566960589715104912358696098016595589209464217525936789178178454194629185287203067699376769434247810515463611634995719049193180260131376663821731048904146599976269119524194070747816787353025955812468316854098863015937443771625686408335750696813839760762683569582900105313928593637288137815670953766668369620820876585627902853248109412538308525474292411262041380851124987484591856908660350568739009481542777714390419457609095489844049670223791895009053766336968822176889940189118976115088269486583885170003760712000174328417534991353794767937166489764055234747490654415978999795807566201107769522439755637045204785986072799481786003534485846510243878833280204083832277430901166189221076336489154250926293095534650816388515524139375401227724827142959631687791119427513657440293076469720297678368565303795188143881542744391716341441866730683511626668195801707911621894876778368221968967086278359092645173649918605478385616537566810530094483035518989097603188152693597631146210810570709360455247539518506128982826614040467627865020421834177354877443600459620927693207347762991318725277879397217716983437018145939115102646953020344859205663874711540788652356140503585789075810491064339561146155330588242254515252463888793923025035234139254669288401531965876269214473369224088363491493250960717719999004270608439216832872466505178172061944328579067041032922228167674288704172352449948248567149404796741207714082611873984004929136523825050870094389675483095991156809156132016729341487417433841869758252880409825292018828474974679151656049397837204443185577661280013326704012191068683205197588067635997470750258327878055061642001682130913677327422858309229111494979132747236597307900310163804485464957627254431172542770092052585142770716591537065731800826760510760765812642093888865702231927826780889721907960019685971810571007306702845785885067403390458931152628753580819510906411312593703404971739315285232747239935550268157198093693856888859999897114619493181692807754860706876472669097602219383792971322845961236303507062682704669322316506520723699577450361051254329289645121990712944821430298342046557772532537415585636246073708775475502200007502367353543905743402931912776777758216214880627405636632773384607500504276988381988343128270172233570637850507771888425224389230420824293449110153019502394014583085607169523915605544746544090441953879174137480122068122467757060864145052543749932162331323845161392502297573374825066575742885358918740620849162690736985348409906033358028642153442615204795369084439347424801484426038026484872503982536603244808796438241046090808930857849508836397771535429759879713476534372446809834163673906938458615455550473656598803915695312407827592629875252449906049208140346429856328243842809771270161485832237316605098107473264942091624429302829754906707926746990154778777497832659559858616593116271795204290031259679449346078440437682544100663358900312993492659138526578964344317018764469199726534636136531852246823508681724194834047462638258528852069863399612074374007031904480944286670839399476964439069997153053917590142484232472377257800919065125729991086533451470268189901384708993268840888225789108606820274395530323718322834861738987387828899719229844869537159172162611383142195496583621368329190940058778471387939370483316457752538142713395297864378089099426036639163796722329648627609216634774582065363237297851911206186662055622330882980124492106754979384262337753356230893899549249643090182198557796948748158514312801229998372538518020478878239370254059672406924801100902776831774525278467352652921659788706223865341447339506384607602836307893477875003374503941304590111293759232921668857711129206398050429559031973803582679338135047055412716497897206689055668366179427358566385484342959705396818860917457737995725328423950790244252874907577019551429724470604565577445498129480483937263143094199094232342759345661920927935882322237333659036268192376259583510199340534595317504404318773856506720905953309587590709447166565463585078983614984422126462011341741150983058073346731099835598071965280277770285214497856006116664359677664259437696656648615610617475025566614195307384465582304799331534182802487398341076393239715864086117205663158395824548765008733211850628737482093698794141580521809150449228688016849934195135356783120027759983346108413269499424022891693716543391759304066612117764901168604363550353100291468549298344202097178699017773116144345863487817145794063746961879381787201228114411809765330517700154784122107004512827105078815522810180290809699273775111399757596323142663229508971401681454260805255992708788191500332914474424352926501920625574215251802288841172638634122172958148171887310926475302903551298546618935741740588059494053188497689366411494516310988882287769975700110958252303346957106593906897136789841300812317096072600187218067335936199448097635790514034497232588831725423612913080428241701297141475926459602663331806886404058343387596944911365011735360988766202763693530926937967382760688613162923919679100528964938996294270033875134098397032135662573150927467397855407500393564351294305894041928628609025545166448840600395925940091786092156769746345554765911362292677250516710578901996496585058228719035683290246471740420579604935684437930037984719126903003358477892734991438747340622778306040463935001014419928000252617455738829495732495778477493984846584571899220229663657602244641869395031958989389763001124081934344385128446905652258578328921991730025086569578581958364195260001552237838766648479338217767125545120124021660899845806823282431737696896191471445067930493310235302783898674732428035353935378748820592667278901413051075037443105064395481216244018539637479085567933256035661479344999364008809383761786155508431302106388210551828455412398923709297198927393438512392486736291584504201553838819987120334283371388082327885672683119149179013491321034703747260561490251270032931175528452452778025520059797296405014146830123762710675205614891336025717627642035630994703232472291035556644425537721818890761304054184532581737268618571214386620059419916708040881688608187145694933266029612656538200419180526547217953706137920824521962038624239193300301335007942232727443001703172665861714117804869986171688628265792581297111933035516887605287023188902443621155902572852965933013158861807361794006919851349774005171658927603125653785156181528366692597072392054849231740770103216006506469009564214040965587346170004280520007840354476617596050396067981962858452567173211591967810725718354903491202713324192873719180024534428740210717300184327900229544720517197106986071016540260626014718741038898349992707994085399544749789998656606068414678318551614732106895155708657492696275124312674968650426788785407330071100676310965384100389180264359724128178620758363923535862991144740997771418175734525025353856654651849471620844825850058731746660061879888629570977018314268853060517942825468305897651123113464571537772059595193523168592266488487164401116702019194774425322647007364324904465948209555139825908455827642198156881407720273876418573146090282233140540554848010412488648946077929022588966327012547384100294279423577860930691419388965157259352424896357326588409144310837318503305867613009014670529238368345257626111629290937025730027742645174395499280199386780821103882718205585599913497745284891720594848511213517526842975464653581503955451105119492154090113615036537280500847505098374365485854485670613606913920145995432576211671236463513729386586066348432309476176216985537688797887848552801228478118780010782884569754170683231750816748378709919932330943107702826040526183190272326051108339854941412743449526372218347437859474267531072498159771832134218491995136989347331160457727705607128997071909590922995669532353699527903356851966736431284248524494607558114417089678298767063657400813204591547343105064487563633941304897985436014308602473853748290862918857076133873696574124550417651375131894133523673975736073514398572365471382486382545853732435266213966686453756113128141287728409125246084753675561866016340549802261570551901092117861816098724722206445675532705911234478493417422099638090209130167620989497589825980717427225889259078052375826729650750884267618404224874739946506796080158499217595186682599464226882555621119286755888994243766045633812858668309510380853525329442581605403977745785258301976771816398831970601271902733315896897898582235052403093849055889082076783270308853117763920581951492361328899771066348528358116545751834670686655391893165065374267256841826880237284656703932908394145076271935347505309179084315546856878046268655676673882989442627222350181594236696112002501041674895588309128500177615359825150458837565551938647291025370130709821863344290205774499902471906145069276839847448126037141302393315567832184479185494378120615296661383558388105649643014412302123061568115123653514412935096190425923210514640210729539812350066757367953598054474671191538638063303443149124426824048223729523088215090379717113772012748766697626203174375456899458369076478745083138216417519784366642675740126259130730209390154086708608280560613425537144273609306209987047136893325478120628962892539309325455506795184889178113163477460652698401306133176367617567823962034146469517752271273768567208997369200415653243666571990771121704600559714695976365441963354674861042282853274930150631262718340286367903121936961767097329372852873589180883904787655996797649841400333110321976310462879262388735472887664431405464376064548211199735661667904938793804791628689766731962706425509772632503624342271855402028920285277833776553270823068541845390386738789574756223957812700614275360331491857802113064623619867433994300247224474758082234436138061859397954525660168946930830341342125017335658921127608828553287759404891613952637305487147450244591183368877426019842131280752424499494764339308472980501113473785279391773238421021431638744544950924576902936991087270042382795022273114700060903360934529151885955079613037492001935279455140233247060031453353625350850140712342342318428485684882195108300567251772145210917714450240460254200046884681061632530460778243203065592873161729199710912652210755984003202596809691075108079345952185248794238810693936981479895850244972947431970975823283739907436138185160216613370557526624578210159948020742971472945514554708146190350258055448636318617809825963889076884266941186490784177756532739854925560067919607583883567783498445101678731426259996134670233238493168459615361510512917584745508293240275948352905576240744968606871100614982134086135923329233666433373697577014411730887768671756581670440152498179453378143691270529892012952938779609459828906882447244047404470551904551391876754623879841794551049932447332661086701342888647109102197144732316580519087866390317776974464619585359441983927373965639443511260020034992142301703378114215000158856839613478507964745067034171956904109229877947789510957684798286590769100674016883752394626223092734874311825918760526986039356349128301224671092503912255908564604182773009508628299767778722995320117981963497541959003349103407548208148210883753045119839077138598686821608998044611574107778905093935850416308787474539582253384722025741501939043047106665677931708983885326802979070070407478682573315132972375344283249723621160496749058115884849307809074912673010231024402506123783760113749687853880875123042846568711165679033575665205710221007506349743725103240305819584305503981490883683995461234032653283559708517694934117770267018747676810863422110988128946518297552749488962868416226670954711610980305023045320830525494778417873097572432247540218524107723658525459294638670120990368838181810686532686517804480349229365446109818751956496294188966792026086256447015850094743687573160283888437143852607495731385025592125993217939041395032679323979587126133456099873146090757825235635383273789608258145433319503608656983093750170654868902731796658768934658894319807550310059540204485747209680693192875104540659077222931786537215601069319657018802590042477182118349077131011118060768909275850198162646574595885913503331402395491222453914816472855319552555129095252200373267546566981393855405262475247925044063322611685965230286027946413265916049403284032376281236138346407243265189761786903404813353816773718036796685839605299106645914279732544704378188558988392930562314114797983118767284013885143181263193900856709751534873684121223311488498213791855237890565326903485508515854624443455505180262822551662553084751255687585679969968698013242661635737089761997327044563285160555532845495772948444603508991653979876956226382888906475282646240825534297766034684141248310731941908665408413395171640069374385799256435924169319425956850662061145935797659746529481322607831835810249648151227225941866479977268940834091596102436526649506559357461622701302147922208221428523309063363568565741595389852336242030974877944121778421835292617000951684128546038582456931663371492997153918277210151035061190145707662455006108302083102954840920072116272794757576610388749536456221557259010143411472932421290784553354160803233092375204363843764315309347171827921824431788787553579160659161279403457433394265799316552682718169996878139301867675467072917713270494131703249095168392821250354628666585142954401667966727760189007571982915494679740081113663807023435129233709752538454623965139695259327805295297437319527330477785457424875834971177989113866922132526070196395524081203213799019348517549298652287818267625233051324391086281764329466970130913532654690193533197721012249602107572262768446071661695959597513476030304680015308955792389911527230473118119120704478729401674426598791470402699914137913585705439549897370504404162005535681780211420989845781073917914718993200258177191185524455523134795833219830997942889751574511833943884792979153938779470704394610678094883323497015206478214268228690158039720882029965136848821797320334173333359797513595678641797763908184898091464480689855360729639796560563286612513834213102060707597786020609079728885646214687377286268177393403829788871817607161010288002887122344145040008989599064674490503509121345950792622069178271762454135449790652656616652534987694551659398752379693095718236999357799958339222830831134644926127131100243429084838326194940445011274853249565722138195910768911383882747329570059917647179776678733587585051625819552971064639379984143287875864257844110989048553588917997432397906727623105813608622559096134734862357695169160735492555236402533156867577779335290038547454282886065755496284142800111815873248164376117001499439428525706750639992562639939523937070108895218085715501103785842465397270770939428273712342838655846413487682631175784716188229001670142593976773251223727688778000749001546577865000796500960556994093012485775670477722840481796371478377965830626657935001463361287861003522774148157943929333055754222983039487626172895596085506900945093654870595505099106334645925675895330558818709632487088037681175292306828623915956025070608437767911222984701267216422848570996389172598004390325808688655243882657499356563838106626323067087546037163353820933404916600681914100856313592738173265282378669928521717953247021162626943977338509691661187595750280365002485340419468858192093851141064867622245595676673346029935871652357729032492145803091852582344040647278307801323709913952668076488845130692434472006364379556843756672830059712103372310749071859633858689708880456169875117975230517616571240149339431068337704502577483129007075355421252098357698910693296564902319009633022168605354655204076797014291011801390446265058852992960519550222894381952893170473440141002138272010849032789845345934553821663238006884819835536109383554428970329333728590868420807947604407011267361562648721279032700646845246078421364414779745294590981561116541534134269472803511590879402034212964526647733280069483126418274054672390492381399856746117280745497119795627026688569837033896258211114413326260675762524269335472303939895098444500853058415897086411469568267272029733495845220688982113525293245309381112959864822311003461757641662281543311035586748394915681944148778995426886930659697708483157978054502676235633399010045946113585211732605248766607964638363339557109724967473208666134954566982444093606723190323936691219851286942847029390162892110745523695695944950260851227341187281132018223737470018865930096774527652846939320050070390110342975366688215186370610971470565607221610144627103751988725003427636207068890342530133149966281109580087681350769013454933807844135919482766025316210760042333244310898796479453080434532719527120570641828224673851226837521158603727136136464398458461965628406923411721711002216965057906137193128003289699289186304834983067545590152265398886645086875321106451255851419826641055845412454461342583501002680318629187089842042516024076636147992758427268643253443705646439235108180362905254342181969630430053260715669451957520273755323349421105776624583593911467979978626905440415182665261131609969488659527909515883583168268373377067501126065971672267153586674211554258736542681314994337305129702479200816710441680559235873714847670432874724722145331097738747695724580224984956414369868510837378529349544609403272241763657576855883362044026274379371069259438679961967401132955651681535959372544319884783383716651262133260843462369127498108319044898496185880717916679719895357437819816802993229431985705722214364097846362725881113088656208473005315626789146206319817733080679224054459352772954914545962114855644796604153920595851754463402282478499159240599523594459858739850795684341041807500874088282967397450294169671085974566104646930616806401637533035032303778475308579886309145955905331143777507288461442332775325181559607959514904334152035681955049776549086679288262126337636923742917762136242026979681179400177084670635241324830696467879853895937051507934033003823661776917802934112650999153179842523749840469985866997118999013134763887109667579764969719633260515169921811809115205244096153296139184320674701289082187009660354775879454580950518739753283825938774744330833026993487701492308802087981275509619214189777995756927681578819114813488324214924745969392804792481285566705015200346271212624209554760390591061608976534293633577234958348329004394331509794420491582259580263086565090845438509813481801223746236749374335751371967382056630312752295742731957091586074595419885616551361173933636995918135960856125482502930988172460432428010506727070796833689519858328345622227957289937208498645523072988487324749708082817544356718132522267913208084011499083877175577149815965596163022649132949992757825538911199005042498046694496410200016701875599350201167334989808138575542604049350787810389860539308796401114699126210092990629217816029094818187061724802045592626768920830070421092373857385911517192692661760364470595838897026296506527118700783466823622016369377641252300431656624845470929586097654201197585079713941254835710567469735273406850597095100650756105730465584747543517183058243753685124427792985413089263639285562028762212119070392368044566019847660238550557895912387641768839369568141848732369811644591153848887421578853960023813195059674512285431122240082792271312887077732748312292031912531052996848821439371378624947444099561275467838193236854302328673489161468747810402190090648699360087293389169389460024875088491258265512964852170213304536707094531960851966841397807606573075092420150822382630644083724035615126021840546901601328922909079800031133607929156720699005971637878279219693513713927447870420991779764499095123710458361835109560472117722974739813462885580613955034071842412862919715226702572889272480163033490275145024200161365955327992901518842639521532487107508657416262118268879667464923631224404231015350385172327172497683517621896168673201136514140908362065177388434833695662978639711874512063809027386874192170584332628377047020087773066225777613883951527869536525901734250551994495478913747973468870019211447277463702604202154837967268899577545387833196329388169671683029613133269950794920303269112094893227550355054383979779319822804669422540001060163271111091894045715737729854288162791058419058740144555128120434649021133972952389023025659236665810272347124408200187707332965440064137876762070539081038627123711490667672224851833684344909081874446021203149420794090050136785629526535646846229470384694923987527699987582060888772556496903873236600902547501388989386143223863143372956178529095381161176638819457108431541893056949178116123669094569535267040254167642341719151775674381150372140952932071471307005395864352179180771811410741632286349337881072053425562253261230496449711440272029980897473925812466597520995813088658375809392470913536783882324085227271417192851517255890943778221343724954560265439302427499056874731217975523537540530009162851243775180942008428269945761407080832918268452122353819999317205562119037941787606031835719921583866055218373065601308853962469586130293736809566584855650858985040236036069683841426933683441187717316047110574185898449568452273439024583685703727337859003919591792177997982185088510095231093811315432028075813409214733670670324953477729340179540809847384134878286588537132757134931627206126938375492223542850097623594229133963364970970566771254455886064158945482348230754564605707500248952530414374881626703111214002021253007006540686514370456886482454223529476265790312796097429489641564946176140753409502954095165712942539088824232734461630954583882014555819295213051687092074036357197218867378385265910517212044694734842866977142271469923981374022919846483566047258024061520202340833118371233588565555214611296818083209408787477373516450174589993770910736270152241732053372890863754162050001490791756479520337490970060980767071707318600889570241198839794841971909110792264889150212758768690901997609460719232002376266099265045599833500067624193806880204032098212567309307439270470750861680502250025379055008202058251878624286175570587158420631236386481015344800144586457867752750396584569251493920761918117607143441268655159688783578347557479321194080428657988703212156454161703528468544884203995442165755777226803309311762487662106365925696455098106694045108102256927423406306595146147738360720745029697512532454406358540689202184246171159383975044867448287028011835850260977592863925924998116532115101699918542526942593501151008707898911419625984635458069375025662792951022068943049325713382512278920226180650459143291067129400824898031397920069634312955183961163025061021245996122007665451580070663132922619290373190011076654996048203444459514485300880278366340246992551957614549478350562684088115694149761196035753724454103459652255555073141703445747084693911291467587532169198134563225255577505659869987202319797564713750562275615936819293817927670964305870314293522328051146522838539639913659533637245576223727463014654882982175639911946378018304605043560826350388965043499597625785347448512349271780579913927975468273257585526310715694563887781261578067177446342654944790765635036660199155183731208367036607770463082367437471000986300932610624804326473865929943020718681742860523969856356098109317528655628894574185744261627287865154214457326074346122705688408145181820335205747182000548302384134790877452155578218915537532535337831146453806744719735731953940254295914812676109533971784806812137776110114907237140332891122788642335815741504030563078053839544921243826442160391386448736546490310145685165802004994278356958841328546685678317938865344202535944633559024186942384107228881999240456493404179646896999167357133479757839860359584867131255588815190734467056446381211294118196297519035788976743595250975379252992801342762645447208093811993010111173054479521936627580067679780561501128498822830542727363369361121787872499562374125965198688850293970344428282333062351690733123030503091242638903203980381802322323834458028305311567668236104898743603304142444272924894300191412551587898586622295075162125439623924608185371200595539542782208189509880326567597824893260439059742640356251563423777803671160908116558180717694614814901147637637181974108952230566424038124177520871416252636987348353537329933549156943716740551079683175694028793850286652728171501667082695882583187715105745731955106136712616360949280099582107106952381620388590903159106987747083668082663593029383359125220568944404637808121318668290004865252372680828692093425025275545018155695681103267490727080512605449437162903979834051247181216407571604640814144739830302196258643726016122398658695552741841834213054280483856336650256361746281641954101916548073284542855244338232963772791126001919370280503759881374183363210740788554285532540583508797523065091068385207025804206188751334966406922839638661515776861367410209795771447335738300841038849932058062913246351226360492730635900748178161529445687148352608578581995929741939118089777866889614059763012604137763877758186423311281590768830204678617967751587392466723385749259739433084132702518037631974346892120688453036925803590308565776414661927459799773554081587778681082049645764248459982670676704707177869488133235804990523426344754335949244825493150889776006291548618113609747258404796424546226677305781268754808666606504663612561775303334080291794249094851167927706755357052014410590409547266834398462965664385405387774404123843329851096488065326209508112694786748219028329895444558809036230318871530438760052847411142099260099692873937172022502383017754761346152171724434184898055550942186491517696438179854540667461069932721100397350758817996023991315620757073194257406812344908605183298718775022370980961810314985034649312918604749431057468338757495769014544571783971964049035677988066040205400437928726716419230070040415137344641514856106471651959367037185502834227616003230136262649826721059747542853588882934582520964789137207705064809379005106374480885876928588087171144422883702050505351899011866637536516938716266968582405079170365830459544862577245469343519198901384370335846302979126338863009746921865934136829059225938164559688487934565264726133955411886052033873339202797701133116080057401275098304364335926563110390363881413762439219691915019020644148495737904512250618094809277060352898728763300293799709720380740925969397533203882592262288966537001082030080272664004430699707138271745624413602997418646037663638419792893662982005162240113641929223184778290466426461933391721288363821416526137165307072717455787678794939665450505281812043527074582488579270264519897320553104216209911767122997424777011834530594187321002631000796289668475525954771169964223900649715288919897462295305066433736538721578289477353498331615933526316298270847250008438285308293503447520442611063146637730437332435847293033514035870797919672186130773421054265357617998016344870275591512126582696184984174584274483368105548543093071305453076001774978274163896385406514118231428222647033781646985698067741811311127711014844352467148897018824794401774649233805437807936958107784104302998621479255361205084250928725480478108601376267467928459208426831064304947840619147338021074319429536599568604153352130818300263216446894872931380041800241616578844397604012658844195520712267826177245526459461962641089102927672857376181214374738945226735924760602415738273138668449534680238608429664713490542401290517289660031997093394060093262313029670994005776018687713375769499888549355774418629778575916062136753684851627664328064903067837377090079698707309007868093694302970306048601350836238145322125183828454126455883872777242658334990552042868104017168080860344995822066920139786735380521329546862456016166441863890128515646654364421549877173392138510133288422033839627070102450110965063492471571300562981304703736490590884172241151631572987468104401755802754724323281012834379969808478971147216758722700741466221229467736258260827564323703645799711873658585146636856102249022029071203939123974744586371163593982717268846546140790965967027120179208425903754232811022944561920726039339090004336583438364050329028408928977544796229496350377467190234182343195338031376816767411758471805549420243730823949029236765769213919221055896805635395918064956642750636759853132769294019881320920743107712148575373866632197278026770733640543413935760999088867004271612920929960160120875558616845482780187185784709889875296025923358420197055340982008182294417979919013264419383218153097359583900325680927927625808040865093626502536606635163946312041533969791913155601754684391998963311436698675802375104322639061730968105096465008714700322172125607616986804729998332106299998273574532339268590683724951808420444577339096242748076511257333434944328194803384306294216490881956599810009414225444527483281974232056750439828819938829622575568170340848434110526569447179348858836808827140224096261282946858943257753885051152978844744779122771111899805251868228140398491454092176295995969963634644126127136836630572219251850449059311174674759846409183617670398266551126180496508692526601975988213689634225864883401921305990565142434264426603261083890705632830961365252103213254028806837026324325035846763068273726561643822909879887771267268528149126225452640008520415858353783714005988360999714687657259627552100267398642618024777490758380149288056318712879284842523605250952674287387973537005207314248207725433112517700088088307676045624748785377793202081741129810942065903692265775409357020450007948468870898687981481967076034179267540526845200779093874064580677571761178271453261846099303008937567486916071645361323092203832209080985182310633737539427634132370613376754097358791655903010395908431265598716400068925961161351024733002004049052862789404259516213829833606735182001847013591028158841533008931011740976819555587676496136856109373343228562690508629862589030461450289261815542530957799310313599560972206735329599644354138564822489735847380211057006176772613743060906806470455988748115429949608654002284794841954365335664764274634247572939491783826790115843056369123380885564008126198981950228869425226147327458248808913875613747717711542960743476322639249093262690018624799006847412147629462004430882222494166099323878018709448087258854706965718824581810639686388425553901826295719315130001898976206971613741467571935254684692346135774171273192143248300214536889197855402017632232097319880361116577130194398887557839413779016287007234823205843690665656345053159929800387358872840954629007408506544254853688120054724889061186380147480567003758717989145562843842114897079035718656376050711235779557592092643926478285427794089082298145075679274804077055321841468855491320437529972365695293770176328495115709472049879393554235114994511015818256044805365479282952840903288888088383792846861688977286039936658969968551546134894188435077253270797746595840462302937696739625684001178918212235150323694526880803738928467003926866696643575317344679486227708846781244376300569174867552763379517321213521257965159528451685489547642337064912345032639302961787284373358573062819160510055536433872250168082357625920035325918903076086075832591541951509371108647057162953142188112700544511308284585556841669356451552870994315321247814628577597020544078693775352360059248322223234215244872771269831307882877053811215821038084461577720893607118815118055092186214408123170909952422435699751018732383492288953006184598762694195966375977043188679729532777230525608396950441334272608922934815769201842540563632934494712707238987984939793925460243406472971905971268450553068917925064081689696328721564694400975317523178359136522140750340089400633558024026359211436216725797435848548274499049046870376574539814809581270137573430901667926429392030407392355090962511430176074388688381000052639229118791011717591834998675214871097871546153035610185969538247862454950517938462667046438098253991150486179980352752760024473464426091464516837033839730191693942987634615548170421452669837174177364847279562146329520187485142759646971438482943570323527779987129475320212897250259517395920239564104847474978969522049482139191568592644908066540002244276650624476530626643185180449314233790742177985688875903934522864025392987610646295093679409700865663296085379187116174227166010628528171514050896362930122792412558999847381534007979289925692931058152555732006250472073311241293162367327011677397588141953460225335013042899817171902769280827435044207023783148050448618724181448890338794359376746614393446178351397115682996325480798660048602448276143193722029275785382242800979808590016774624362414160948933153349541341134324473217998511906198906303468621605816165988578529345774301924784955288778278571081023703912034917581725042083642188609183122970963919020615701684280915261106186802835823719610411929833095309541240766249007887464489651443670243932430886170114600959938735597689707362028253723174604249684096496766130633361880228233680934029023177194374937709714086525136633695585169082750860827602200505335042596198651286716397803436701279208509451735725519578215005871921184305677624113808686559732089873624950611034301268386069863068157032612569275530538154138800932663486262597184448811487425658525521697960203489168821310491439132451850001140518396570275590692372434417850300685559722375126886422013470936108099196893760288054334406437307613747851738527479690284489034365918707206420509303170610522271651452353419364069747713694849008334580080181540963688993734892965476672917846449812001209265748554338159431008175748935148951580925046339203558549754691327814447213722760987190281798672552936503791296157570416367846320492166568903075514057789061210190506868419643623752527689385855319287433353084407890480381281164140126745961090667458263131815231060674570431774393009484142810928458190642334828598589217999650961044966334967394965852338773767649914364406763392326735845757489903998997929504007093422595539822021197678269548954797908368216882855432842974119078988102714331779630365908666519991122065203615138746940982541533761729380487938845510428110312108646691858920734326234097810175817090261762263729850307536494894015230195152896681559595717446796640391555554433729822948810908586368384862838464228312168597977140420599828911868116172139086713135562912082689806102850024620876300874636141671881657135754734807685777992547555506172110581785670831271595809211908665752773978545629797163842635495386097397520572264994875694137572245741387201283781161668822712125757249755044042433536855505423895496845173765145815402412861170710342194515251688299004544702860099063628649306223282311523251848644702214952775177265298820380475604735561434859226411092490081541994014560652962112843597035458863655503580192615084273292264594764076933264289101433629791218549395062869864107447184733580084027188176375001282363853181602683184332432416952021472535898241933016382759565028000992454846682608401327909160305104730809125012094081561276456685457005577775621513194996191685392581557460994212958449177012413058723591982610395275500870497865425688402247857165094830955505465219012540719103588007149635824499743411920140795590022212792562318276577378798289291775963713795024158693334141995728896683819834283562965481841022261106249926331015837941965816762489114948246502360096637385646586784861258354383482021180119279701256014322280496489457956516207958635688744349365551824687358066627546057165457122104531257115010094905244426413791401502527375532505690360488637805490298001893956594399702577866967622793472533536181974983300587353723962537628172124892913176963870662090873825773460579773848426946828823218583338211758007317255499878445460733671209997057523821625909143610019408921108267025233156315990440172464677562161251713619482249575880299985503939292391943592363291291716629020386782962636066447552047241841897663419125125504836794286138133400209782280948764671123526839660589823958855052141259000514926845145633642792456695684386202866422075241919425267800711659181411642433345811158587170080858205897099257741244880311400148072296526325532754146596259072295148794970281478302969250274888389330739242139759367535286567265447140359053943972211748294798773497499537267571037649956350580651302078976608522013956576980790070418003940917095102358597054138205870064891766345141481295406902068101531338050220999292194185448693348664793334548059909158426435524645165697636548556138267282688282768520504832173110016189932077980078277447534831798582921771522713965083376729494781702928774316086177935970591276246808216746928573724859702074608470046567453314038972779994389505044631122739875728180319448314175469686609401784075707938450273688072159772920813932422637855151500194020499604162537729323072683474127708191913447414900941183441066204244018965760561179997656751075324853964190732901359011174372874222271875980258874330117293397664691240303823343804613558879102153601668358886396492083812972883895285520779456926522371047136016325197313140365178765777933188509074142999890280789912934708193381098828371380948185363057619071166831862913395553251665816900224734596998222554777252042553549598622520220554343541043751966268874690988048441455119494429326394083767360144257026709278484549290647022113595840647136142019332542799878520397019256972359818956192221794754434436330437089736630709027535102923055617137130211213722147614216584857562802844784472752749042887138353048722833694870907363240691421674755089353951922360754198387915195040485642762857299855705791006037138749521641354582719277377467069772070812958860580369427015846570829009433150961543198176097254856289390274899343312485443148146366588681890158055323985023797125911293937477488941809571382618778448257256414342778569879178586373242231013134513258517852092220168691237431667527868498939033585712512991042726772610085059015036264005265093420964722412590722120965974382505375290353907329658354485925715627645166569853766403660195595554403763195594972266840117754740376346395026780256984837250241035495205484305574841943922183291107418757957340566549977031942890335490784407914270926819928468457545806878370146267915174306406046633558674845725510786094730700122993008840379821843694889657720620435699818870882506893331878198816698468591642088747429168861833269033949828132915014490149483570399716979579633855143069980142272685957161634796715376000596505336768912563336367916926017246931336585700542643648382843600630781581798748007009428249684535562354579087262796670413613275172861918035646246940819833314294759372120799358716210868047328709776906082564906157072344651338701004116069264345398664547208374773377566644033469464522841950197734350828098673772306160400608138986359187710080586085359582282984599577175088865786295142042370271409318690048966512840337886941251729551094583823205252985797306532618654416614314565492477316045148577336493549719757777065203641396855577394596077048055910212380184971996717876811980069433593591646457083065152230709565789442378014620185118661756307493507794508937419046588310865121415208820658950798329222293838891850199941593991755539324947479314252187609157547466602828673334291920393950267374849267294785566984819480781255853010833747701262820206933138858333175954648551237872524187038425683082879270176376580059331584211453015731876488311362936386758139164042517642449726899060412188677979122465029001369390567345390570422156411092679285699224174028896146206787653327225668704181182441818588249639214252562492088829218706401089835029050757666694519408136365168056228053422284812552631309157059511258672988013183146668426682778793202987065388763200084454073661328176248726015642568363750322102607675455854216966760519133905186613107564528892620987704553910658027821580472563496316437038952237915472346568129760709036428265832253118572961392346608049363325069065368353884762762296711950362029925992867708051240469678816367981403265106260080374040913146947057453690166970821225751829278234096087825733341875180158154993059898404266925721847376069426514474114775244241149966057093406259294638023069203330429604949459927219119494524202825343359338418435762134208482158605997675101101377108848410662621338498012221687994318039165327035015276528573679611130203298621578721340486677731140990971533498917220316232694702350544177190049898130412710029015123473841605977466685386322711031891105548794271065947935877355125962790337869208356941173513826374013780162925723244342910069158746593506856627077725051282798192860188935783956521612536875640858098981819018794528281786781165258554725151743835501537613067793210924224205389699620923351379628047487281601445490896088739356795635087455527445919133422010907392945913563098249258958797333493859449818613229964440658764763709135421054608488574854678621488903746282509586107609407033178269810735737890618406337076759049510582011044069947813191831182160142480116809370578919435730167308206463516241934640836732413628169763249073346460436988995148448132543191424278468672433647830411930391682625904927807111227739315256823816313131732742232547293587871232221772620145857326100228674215776162608467594718723813515501201988645221369270238195771538939464232282038100703802424655171058977745636790230341598203700262910224671683836656021355969699765002634885042699508832983406079475241555762493798752491742541793705628966479213413073640671169704336055999888583081047302756632568039072835716062291513177616987207669355316050109184051496678974496408850726115865493410669081294995338495345754626898135703641687309070929026552947450469188122971217031393315861432590284278221501005323189865247846431437164432465163835814493394441125205874875371191139505290000092947528634763324852935451343281249296543715892212318745661784267133345178019645083369687034974381781849839233683870338597394941673672118544544427945232207212901553286931598694155457151483259941450585626453462921738549927873811604369180251002173701445632442168403537030137631840425967280999097565008889261294541690562273150209210971344285921397506185630307835836328732756468657725026596794021139518139420477926468913926888389172245194331798963803343813247591904051012870451090642670040046573311137412064648852353913319400954849801992472205142507960986491570881136519908752213318410647716691668205524726423159730303418754877922394794687877784724158873742908011352193966024480249549051455099593902900368427761794613938271049332030857709204625476264614537613948944223454461149624415254306180917266089125680490044836056625246483888413615317946638131117603535992299086903007089372131483921881838914561403506818554732144513455963791477018478856268612738271941012940935493421583465670408750089967818297870030262572366550093346350481978749192478601181042166850121353337014489603575473102585881855851887014404195423098464587160216644965426088134343360753852105030844141579170208025228858853146235761271615822305863834784030541395973535879315737194537870531170019980775062314216498818315679742623868472722335784215876749361935762566081596621027427485692782384682316433175753710250300762708701228926646402824587436331604151862874610416559265627345920974696916511627272653107221280818790904544712479190226922866054705284301864679922191410976182132591239069816530822267898479268895962241498999236248454004213629540919376236572623889961920217077151880282816705197931257309502194631445426223831925031934109241241474418182958505602955236843100321969630209712379906768383145681065971891780956519997541474125574685861563775917393504391590147464171309173659522120598385139945155758340489136038569284848254281736291224694161175114685409803094596299466732545045141353681810113273413441646375297734501847195608107453745677126493599763323938999263825318528774720841487953066746817977109070888713483701558906854439733610234656014547704154100653533442297450539943848204596466739101974637221561628182754002908797849236791240377685414319271364098940386050742030142891298864642467972026959550984825018253111153639489489839379186393602329304918472505516787181933173753105939939801666755044115248183989994449219953237696207599285062374590028532174441180673870762470671170397698659572626034704191846727533489334864357369568654624033939098583915204307053912548294837144082901811677840785456049633905183694982943878078531614907503107468992062914810425215994094270631177469384038337986881175785171209804889477081105095930061245816159897668694585613877978766078698572032800759605773201872624672062244287794719381857522074106038253343261594716431525092701687227740023854019456192793887450045312343786065561423002049813666049990378073539474474116496224507082755952538607630860352298036818745576236269725172998630257149853499239711619053152087407221631500390780132304942945730398708997736450451986420161761020078314168948019059832105640769460137854053240513697906212263046866929604966537307137842868665089172032386486991512237727001297125428490265188598455789478192574002528211561793474770859264929207577240676458824441130328660761075624856132866776751051857040243437702692494111107001136923222570324223974558847657602691505625401284604777547160831967514357544640417253790749196587807362196634776463139326018662888725708535544778312346447473344547614542936282440713733638519499903227851835750987309704895461727401186163760801880384398455467261759290055166420840866848219871090191266801311325291695857012150914290939123386096630647938806818646891281463301944368246534914612148018143877848253999756136924873708080367470460266134266590547697932152273649081703143619944297428387977848066523446530908887688477159988196432407862438544254312329005972459277262401321288219220118333642954417904392437667639486441627205085384862802954905884887241496430186211361593976176843063757955650209178768901237083123464544356333757594016260882732497167425855033760194934369837089115817851389157006809010856214625691212455563497190362699960664136429140400867929142683395773326582100527632236397648715588312586601533078797364064480998341175492715002612191947207368537154165335169307858981509971916060853077319152976053295123394066306846459904297986043053067441287621676528311060224036795425673461530477019309736578427297795196506036496035652605763896331665648552595083503102593072882144327747465711955766843814121998680923264460277617539407804411551761923611170211553822054596946392053514043193296647864685626341105388101431824749626206123754876111393059466541159895131451028252108628705973181733630772725478815331678258860336475350141124075559589944393489762365769342608633947903449116948563908079890715546476321201663772520984018392084438379023251961555464901479268768500978846174405052835151900104405031985079255176784663176970735130357159658293216287031291981772285509004867524018606303000005555815429435721236581783212135204184443735714490888161475086276036023556516298246261648262321518832445187757318269020131323141998531600135690363566991103773506530168248127514178541505150151669250211597477427197507931034572794123812269132182254055929330439551197474094649702303778458453707175835088605125470469067053561415612931271980654877583545089487109240652330316428068877311307467871777593308906429547196498400309262941720062636787622788746322332018714525611454689118098051152265865062896903263646239256811319218022231470757351583230788335541983082825381426427840922025607436034341580104389510720973528893444630965982244642296562794587368238603339085253142867349016726191449671818378959650392208517896062113992016032087680804267861634151069111879547987714763868797045956433247808051573283220272515594844200409517942581832341604762212855730887260769310055557290958042661096389170981763151069586224495419781741053237647152371093742202787793995779714727304717671371235489782257097589920797504531142847872759520774943912730450615650804478375095362944424247597757953519934425074116200591233256157977453469382498552972990828143959172021099363698752297532367738276295365580191776186633846312364357297577460624663422209275346302582274033953610521676993403367415774719057964046994635119408168245461949576739468620463719328839656533042044182182100933537761506987029653220521520058451531317095172446037881835863146082865947611697297549079038013641307805219389471691512112987454652978207433806498759890810789114726733237624147110294355578316453391388085906661515420094585641422025552038433098683126178761735212660534734120076330085509897633251336470012015054043856364622445104091120839982515319260694308120619333017541531469796373974603169011919414500461086782354061019431434360891274282889769894057805206068140516640759354912848245351028809318339977376234449335947061249584335547971543407633029697840765779364795649221296583873187091966875932879367224328233852568023464655070377671459577137538816560378109219997060533638212150118220370083761648740595189727265805165381810876090876508669864088119903842916766646136243390166909097499550923075348231920294249827207089919795827328655524739394904457263697648473621084042884236978546975646358126121997520161819301723277718423200068134193516224255372155624370799113975444249793255203888133935316651186417823273566099319612445046536945907158451296778796835876070846924544658702341095654832613678481780689465825148251269026571513683895663474396196592000692792440693749104271285543599216416671676552424423930602302267260935745286452302011775796014754816996417374739025481612401009188323111536264860297602592356151010181750416030965763379620722472165113956976483076828588207554048566335577813438135792800446075168807830796831776066986206624712375383691813276070156038850846163202013852003004308757818235272724836362696699421056762631538773894503295600402797322674451703830636221410014593973668942229872489876546577041714670657550181804662600226823659132749617964074447495097671269826694615745252817864263867562958240374683228852410235424793099510480748159201198245220935680067622034008128004151118353763145403814360621048245449850293115150562757196973990035086016929857389819101969950907162928759124926565999418287362407416798793125359679819096347301724638793064160827631346705937292356375723564882174628126044950684360415826607863364735610864095883235762675585180901512115649577655047363654056134068584411353521451976455622301186158086033974666132213326088284779985950941260600398999882107705673246993678452854506767394600164413166900064741388866307781023288061605936582817309558487068669033520500637616592059469817395605706056532264519552018893313218951554221093215324375443214656565539379531483415574323856463442540869086623096383506103625782024498235411615594954545076008649468714726601605451004503757269552942556835374692009209158958287377929335138826010202604318408565546320363772490783053366822254560336514724562151261828156982481550018167197645475626377557374169021091988465215019258999316683334361525279654474823470820130253375402106779871575852100534232872844046075130633689856950273224439242445640334754029195731703190163698337173960089378244913153975044460323446284389962487772544643255803954366751884475800966540902561678669281632279322188257761123050931396637348260076848229027121346199346849377156287060374135870450540004110834674493302172566975525580386990325488355813109517192829399625431299234984719772395797968432486103282133658943601438047440876435322717071727426603337829829489648180581737572616602853995824926956747421972215424862305919105823353305241539481698295816647881871803616445557528495064966229587811458525312841462275137501403766608235887224978444781850127668130046277491363982036785400129275440022827206255800985601535449445761509832576240416074765275700170361164772609638816542419940927949711027510962790334305924598574978013421121721990519855658303563956221191579625585051000502535168785487426171682018163773668465646629309516037523125383656478140968476584631542524317274044849738897367518567998500659825187811132527234352929734439566594045683970063801325152930255659288708236909898504378693142046551664522147716540092816604971577874037255696341104098795049152039515976845624161560549649119517266916761094157657905047235146324981078281910079106128302741161288040581621441888748703793089551347077491224556015688515792832558229395229495965060762970273814196052917832124908518011131164000938582610169545738981734409055779371422939340573280329866311424356661643784306212297949298792356808622250208106787364016351578571996769914359569435195861637410465448083493441669573451020587003963202438597760943749098309525475336528412817036330696555468539712159776151073544002087001729982888444279592090507173323629032905585840422368424560072669364437119058389470442557310742822000703578753701522924123503828067585301558677064034151595537842157490616991972629580244809396618788285674164369439652732917319234380181085330982306403647568427550878925562967221924785647168750670013689464111299998387064060517857777596019334241184908501962759822292124175670601142575281992812229097741635501737920102441490016848005252915876359023883035611654864474343315490421516013256561030193391141308677166996686004144429682982257862129885101048896353968463359565318411294849274469556312860083082203658520775357444074717892357284064591596856160066049732713709741860819152003517519933860903664976951670164337283707491699293252046177243616055280006436032201594329252817454937329427810322111364735201928475144559420474355137128061634710833851932023052863070676816010830191916190710008867954054030301131457291685830098807580531444057239177101602352445822716932060807428097467387472363728872066405223125855597127113873470814910046652189056224802781088761683771547400195787188768592494454789281243634196798283636388804108640699278158839191187875006269887651823615861743972399918769580043073830854119752269792843203536890572348612863706492510080119686397009546940339993558315126367549226687434206581362887573757854047753636832633674685114180514596736863661343641514980699755382647066828495732863925285870520835644916312757568642050020333505134350744383343879827722640560084188601109055111188017619979893439250618751291134696574241509663187892378280391871785468362157192069672605933905013556645996914569643523714668966901827432982924593601893481351156939343303463455802534354828052690003164222691086734712687506110101682068155620506990533783273381592153841586474495450081820880377216174201002856124770289900770511959443418595501309997933359371662339840369310451035758895517453429387080458392611958010026694305161293977079131103332838262072975609462694102854180183233378870791243555233077722949215779002935246195990971140139975784956831119528362027748268004170657019707292550460907254904540125870380840558475773028138585166310569128144605732348033438588919369794098275986795163837435966883508182057672583187397457815639090877993423301298266983972599068209567805303532467472014507639790100097651216256184751200998161477873430205438018118508393380787101284120401786177440492863900492689694567331432162646480843984982142409467173081465758075816115370476906270998721073250381671264215558785222618102823751023872932488662003510279876059847399775098287134580864791486275907506737985838037743289413720038875535249727513841697876128782962217646059620584513444624078936795345936420165066140335577674444733440757024536497296828004198920966357534137009554174678086094008375428863710737602053430202768407619863139605810279946621978927570504347387627959866540913317352448244435276946881782903201669041726812956641745826408446080853583204211189815762680690441723639533985737738931438930193976976112967392948757707938491574411599821250839358837516081033487196858074427464905977021309446928208334514440396384590710071754007616453404963095182645725272414756517773780608943456868020231767799981644206672885436764026558761107126069427708050741170166912165930809620303419205999851735107843591084794816458479171398966710148770281293002187580567542845286466271927686004240516220508182540659435496160915894088366818986630692231544111169325826159239916761127498881252636576539164994344381440134211763853493688291510294725962859849814369233077020178433515679333870141162898012392659574887177274934198527032600147761840098059575924885242532767438274759437162353583777865955451532651489275119310017571286894156726443315555390134156451582177847517174485961086100689009366823844483004345471606387612102431510821982524738442913117012928819657321963427848254040904801431098149907184891958719082937690844673824360017821439635170015083982545020142598438998280075265268368051848734012481513605761289209743271258297658263173606651031189034071145698648700942495064472783114679115975027742312392028316943842453446784870109156152464288758109178133305988022219387571216384090175050694830393264342703651698642677384161994052192997684415360264015449634358913219590122226614173014080679794106488507547686245391600412191453514176575661244205128378689108934628412346794909078907742632763518312698721895347161898329142755239462776031148325697237345848292999796197728856851426789366061152900120086214465936026149987270725734869577913837828146245763824019604057718230341071745404154900751663324686501881655197844686687594860888683486341115522979486052222146640999005082656543453106728490450500305175926177816135628559265673361874913747577669998723001600279829035195628391420813568625944008079075660169419521559986345157540685587767371970012932587859117823120225638491603421943229653849188792932426876877962032921785249766739575562845173226978404149548487033099006592834507404345098499775757157185016738474098013897685917503036754041519297541698159461393195690840040408668335855834632294053959220840319511323881614465293802013537296078385362958929199084649768547655393962190122138464594969560101225785007922518336470257638778482885036334045649585276882109362650048930668823578570194054826561703283200981632715415739853929118358929928465722318542871699852425750653556148759115620330450898843149306236836541852343583392422132841202712011610566807592167330459748361129482848594659323226660017167920260306106120505732705386470157931205479693313081712015622683065016072156521569478531261256078319522279271670850843670463988536689920313599329449565568718622703430267175518684286001614903818297079292270639318278991279206490899928938302783665390722045642816675679256546277995824830616152016927388592485903868164374406257132310028960255115130608199116177075744598868233870482534856464684329388961905619966792191544806073667782896353670727442048051827106178479808177373542340923765098452567877256773883208562790244767741860398213953519740012753613751831011304729398448328523354821615721642820509110012487113169260551361414651445550115489231929438187618408069999663214739381922335170876865679355495240938796316304470572547054764973111120411042084760247868220956501748646401434515012240925268032989076065036659016089828940997638155659207633029625600142208200744276267871573323512887636976525402613076862525393739551995011926409113949660306871350697350105108135129893334988613428756760616774850331526572204061777874017137761113184300822755377681706078846603210416411260279688125984607630555243421442276691066197033233242121822156959439329249940498622575104367340537839078661619224919397367099322747225256125552309864770969757249558134387612833578226430679686505410101748501904120085943760546708344220561494605105351307974215286874907194711965543523399502490217511111150209458986080742793317523263835666270351953936298984737649604964113591533379003327193604022129146397660076675748438567506951128334816952011054334176990163413359407361580631150025104730622962715339944336520617116776096219510322527187643561051118639484523164003362554968367326804265710844822229441608299089172417524736355107996385444634274873803286676910532926393931753936043576166085939319310296394776516539329869385844494540550649046441275847964182964896257122034415439741434357558550560793139757582078264252287205978233162002407578356792377058736270423192337016052176494759179583868474626954982703095487744449473489284246186089601112229503377557753567436139531972661854354092556761645697150466328834440544016875213773689870901629808343864328512826267038261898433391454684099113754776357634652554135196534460400300033220167725916016692834053849656622974515561646826133498078483670409784064539997233505353544308144840007346360892443757479301600370440184508130357401276581442858710008872914362857301015739088336447529360205401146503921937773040474974493809914540104822076901732649650030840745484739966105317921073872161975975958491711934446133797609043511879597960805381397636377707991668526482585834099751993461135879132976691597904175765757426493099323792247602516372163779225148525904752884232967695899489378875944319170953003698646834838922873033971535840362528370801197527724755491475458577628644188393959004923659358992633530348543681773464612310256921060720966582943846516758207712755018708976428758054804447719099451260895989388252967397509668164229498411155849045701528492944511099059303857255146298043589422931457979411409530354787637036525211566964947528167710562234975343738751979084109284111573661544891574551863016439547337339028955325962990573465344297391639505491152933052161012141518025545694757614670252190769424657229204958524312105874548729039595042649146941432723035265250916499047510380857829880699159315803750784191855795308724531631390279437919618247486169409269370941637052349562999933453425592966732279489474024627534530754740047424430339781647772374557898168153018102847693531649429236691626469305833777308043267660167269189334174089594474512968599156154343651034672711812682695825670381731654371202117018484729910580182362458584085735165529722376693096748243241481323432902924171685172590496309508575656424756612728501955978177610591950703705582221099470070684947074512459656468263663263846470496888974933358813999102978173859237234350378818707890766053144988524720676611631250528271787140347290203383595512981929427180236488508024767445988642644969193040095036099394050732521621226554046671303318158337753650394319662923539044197226791389319514550550865146454466138911225983624283347110641530142587681970116206532829497114298758349918068340380118324403475777369403495339140532266593562766262489105014717263920047653024448998298975922997578155743535053656428045798142248801377617774864871730154838291099091543574771856972978284746820179047657156471699639689890872397221563401333711251587793422510176764276844648650747855564820649708676406428551408593906300102848364817859200282501036803103138044109668921472858711343303159189153370831396535594550395473342219994483553570453251465784435010535029178872353295937416073434204947625224257649469355073626573719653934704456232506462894318731315213049092892015385487607652309518595533676864241202233318118113984862372035025540495809365588588735759530764705132758241772105600961468081402474118536543246946639288523113394458253702111265723611458795217610923620884129385625995096037669494358467438619161159547403432521189491097158219106386982154414074494430211348173489312329782680317730008071427808909239012847751088667487885455177133923452323276253646554754381805850919584436727679354828455754554343814199928507770089360851872021990372226279966290694644511730460835878319559994386306556071757206943182476055154656115079492276544288945834865928326218985157726179224184275683600267988268531636165666415542404491147904087898050557374227453530393546365174925315970466824382082034293658866299107149847193834773416896222459905905790830537345091560236522935312018185861336585316095929990469863946822007038393256265888345996455911493102454657313128982532401093697693840891146614783970528397801812846607140932369108393166388752271543177764776770035738332611588645990299986203527205073364991580618100374261385640277876138906062291387558704527822392335013903758227330142650430403832614566371568765919150711534979211578750453018570678362600297233187754319881043331112704818247574876140144977413996685483557277617908365258364829255303815971098513207152550237508404989670962127310221090482044084721253969094276869127773344122284911788943004963719403088991136672254419470424592346039823138378643212305329788546131335191731902763489442295864756204789915181553519535262189263329278846379636840722697998341007740596420069947041347839027327632475945186868499697469275961012452840937019118683408419080205285170772560612962126049596822696245052356866856325168851492592019196231885103979242325840587239884298512526303873042153658542483425570315675822374813498913163759759285893497386140654247964789391572664504540888129634143409876203210564300310910707303082844417488048511915388887766041723372892677714814535798037226984836467173324120098329549698174517309399728588382427037180817084992956196816678902162394047114802605641120952108571830411027847223292860004539196838311037882672402071515363900403448778807720420786598846359723699821230187407878071306772123027437725845989916330397857954495045128123997285222064839992356997291091679769120913776261026514480996730809882093071132262839050365270433033430276580245925472833326522533252786659735083272763030324987310306612231474900002743263086128860284795266192808519984482575942520703585875846937453931058262381698568994285919891217232166064823645540428519825140220370777146062257953833548902596605215761918616992128320557242523985578636395834245423724854719242791514067063159358911943955218711401559935671832774442455744635719371503829911014901801751110420226445752450257262058166754732793143782578630061417050801481226136718577850548109012786255908745152960672821593514226028689744473149547472550221369735026513301335022404136110507093805802974556190182866790156919608440740069332922039228801684561772371827585828576782298594000234491645261792636556576088344310371774133405863260281118825440374957754910219041690583323465120296307889119371422587050340455055897550059038004024338212376234420906632217656433908433091401749060634193457374402422543617624518905723351684416698428878630811832226850093518917535414949383033421069927320981492746444667587128751991927299661013927295223571776350532171327193453342251254637448607513433135430997270972272720207239511595839546161004874266479132507774151757253857531350061732950348027770954682453709346079194861786283589580728656466746554450371199800262286596836011774314317430615911981100798783294207690262923931047155165900740746169513352148656455072986927894383104571916585806419653843843045889186739801327463066221127641623384383132667485720388997185899223953876813751443000129000333421657528834178338822838736515633190545532556574577847974687432839200882619613071718758303647685260680806078526970778115430830845800233904383939048490348054466366363827024037672833447163909407074161874920686989498877538616720027835740565889498181490634498661669021627863747965785102211703239368781541752618606893692146181636307250591102011308476986675529141634854525123406306819037833461531974388181081541002627254979734530613666886077588945665828137157677261747842561728274571125587402599168378612136936559663890640545468859579040974909487668071661166785445119027656460381307546866690781102597748167531019638953709921065559388491952446701756549025704126244714797203307168171137893936371852943365712505752531179132775233752056994817872939625824899134395687459713302771710589087759355939860608265121159719004287557751575708045925218239767409232800744535790585385117722139017059570174268077878911931570711385878723579583596754929556599057410791878868472992126745614451034251436830711281614734434640217491080562596791145018320932944223305512419939603816038572649379110105087666976952862603427454246638930521142037980777834782753217097442463177039858744530694294389416343458369944461776206620204426739143419011465587438453546734648531517496991157680549968055861683556724243027313157611139698356123510532559166097145681486804355434768481483448506255549070615588006786337290129637814540469163300201255514389343785834452743331794533187299016561448146084735782442222791448885046203100917587676862119955554621157942327612976898847301884635688450490492040756644358027987664579706284567028391706120144652324121335117529079772597801957476476421812125804937606494748023616327413666461537673690000062679798877236599608643311859788192979679991682598653573160249840670094480855157747694193657760247665835451469073943484339059930881512357372221295447500392512901788635369813930905737699469147560907057148103220256773411219177315316137786798766320455861210863939649248745135596580716888619183011961651344303685513754431686879642089668961760724525368773607769669447124235076367315438643364463138232684131447165296550589887715615302266835715470516967184079109453974353215672200549591998512086708402467944740196836784048367570935817870347247496480821363662123686116147898743333059209086168905357007589662864772539224246809113004219595554064394069694957604556056034715502764059194136885083142157524585929663070333149926616796066799661787910772311331202819803324407476570290672530842821006853674595938393667640996861680731764620357212988371563614524855535246660630897576092585165331717568903097106671230756042822670430936519774007001300957066600300696696794434974874991132276322285550014474557810995045367424617129197526638134434678304593667853949715314265379238792476335294824220086796486318666870891786031887359308496147158570347310088083898353596467675211331451970683967882030263477394616163727296991431300903611770189034456457928851870981815163410593735728174164029273285540704841800790334718513009106543722787755239061299647546875135226595705397849535778274330171904573826353776113601121195202798146229094880158140526678098583384769147491044757509502984623216605904984467929596949756392120817659837885304603570260453495698403538615674675014333604464718760472057039154487548195918255965084871670559809680095451691840494344389181474703176633530344960803435151206495740443790216868544260491430569444011958267762999961436344564586481362381198419227191516291874222253764240585908462973628884283637177414443157544202894540556625193234890745263512800690920146280938716722144790793961896949226756118552385342788906455424899468521977910853573625560510220852163772436576007530769096676751816816071709694998650754990617398035974353206724423314710054948115977369057367291328698934923229605268583682751572998321298637193930168191298472198454929248403757999533876666952796322860806667323314535669997874692634490176141983897417291310280121978890999169894923813141774529020463089090911244108994589875220208036725383847802876219558342948450251586823628593316813580162346435274745306311336583178788133698212707875002492393476652390747743010285140560246123941445755982040237812534747738578499751406666736167272828069662840164361478035741065874127898723085726233301194403941313797437025032003274304591965041129482674293515875230580460190973489967566062494392280821566838277290442225707146029109205110291985576282457294741263112693269912265911197441947212346298316087951006013664106785283414987359721743299336655172376388893200140263770802235747071167165119964505613304440149275138862418652778795796885853666555120324003597800139823789589331683763386404204021806226949154751017022982994675635924384329055799417276938778986073998868525164933600591775053591561381379679538655949597002283863649344915637645695830920329402803869470668643077312942798476478493951896449298786948416946822215845157158637486305274883467152061596710951598450118009799271184255181515035751430856915634952699259075897915910421736552114700966622908909736559259029141697007724097403766866533312265611019018150893443247188249835263572942785958724035003458239171631757424437988118312181282762774957902648132238443981296017312374715888967563220865419844390768271592232853683624533228355864830840414707565520336831520110666598759986259141065728097638968010913838806341618752164083309416987925130114405764661806774999285227962001310796900019419890185041548782685205771384433496548222100473826442037722901908237597430003411954701210836751280514599446127414701947062948657846980921335825799085691400501834830706592800090874747372724290105794769496189249880300302382672405395487678978945981546584816360529868378626657242733995665717350916421181863769670688663707777071514976153022189832864563585590174563922134718486912764433437134513642864816184869838923320245666379501847368778396890324908858281041841787480162368011106489613463687713012906848947511716871999324372503565206001386957763250781786456041941097030239429426356401599605681328454123721761044773359289766893797986879008363249209936812123635628503964179908237911072588713228956925083514549278630741528068370555739381616719706775370276783814388754325270750874539040643000006475091424492853098863751719629263190717950825126976118169433526807024459993654419372094695665879464173758496551179616769242487617209871799979083225038750015867029015699630060275934763787274672747120129369862640291127581309407655329781158040390751327553452611235522025547695045989563421388041965630972651649416973987346314775222731237942137885184974347061884987153478501099477825548839331946630995050712976757976886842668939829260419723798193774830065455326602664118276720754751520770887021431181118016613534670845799394141502476129308454343201670505671277499627023268766073392276197321230828096766581495906382293488577317928174542806640337258191977066972903606416658505448635655215158019718373297851119086223566749918797690849225779048687803770694426345127827318615781567417146950118224794032349978101573650699642637846595849879865556797422586229766375934180447755481955272332591989698168274135372166591632862035237044371821743948655732840954961907557840468026524481382943904614009964057921417117035024405180251719055723634361032287471442952685868468473837329504195836325271982324941343348043911156660194653776832796582886748486941745968314022520592678116280817206470821867997117781748270300675182378232537399745047569323506107122676053106979937589399385136545504182115159825590012820626024409965093348442809702217726299714875978835542714440608332252088775566916522672588817280656723962072558757584616484762253740067793782922506908003140735481629380322015310290258683258240279136226323694787357714922889153250984210980431165510908325890861135561290021681606292173622403190819866907431314645202806457712200381400493810978848469178224824540635832903087033424524337741396771411215863577074552682870114871213605297399658832476086815872759673991847846934916682192276528203705460751078374252267606401107766561706553978574137135446343917122483798486141089401375825637078891973703456722048965356003552016708551123979288756159069840462478853404023880636951780592264302755290973218132963423062991531381037008067129192986795647405756352955348848219894752682858036670838629471092506762609213772985054179848459789273908078020216739101116562614037052714494056346367052858657679441019209287871920980830304149563944093008366460796172422088240976726417943813703826355576153591248324446943111926010168779649275909416185459207723156316473470073217351309320980003498095243985501781180391300605929733316674578067293285997553190602140269975154957896493155972106472638310495486993496897803587937330711218621769482406572756444840966862309345069366029922674944486501262149830186515766409675325928696305870019721778321289471008551383580104544964162994866548634480879834294193458675076832929328486319936676376176121285552324655438525456257410814984045533746537339664721914841698359241229399321931306567630895371386390243101077947394634977010312379166953259237308985302416020769712022423024959490745445503138415790821032453268781629478811119252671740640165021322113720927269415308117638542455913648516929354601428316135569492136538266864104208785992944928334474448252686285389164309686146986559332954542882260449469886279511075641839573454951727409319757396657412440643656935359941418559097106343316939864814944671579803054815285734899195133940752016710316720779049050021977993146449872953384549679696457246353098386282941799989028891403793027025947675779310218811352046905000361890198150380541962016002588643601745177013468472337544154420277721939978830886656586126718820964487868809792678928705840848661186988035414743658339013288954739048917639215518957997201676351556034677126508436521701633422246439380776422491957725654122629084428054230835181941233464877599897197048248567113381889747273638672563253875795998359884439160130119861389070857572298256657271691580641403284277164649103708539161971569735351461067594106285631706376689049131950095612898198364714531732613699591832180943084816822661422916721831888297305294601578046441039643436811595840439910049594412594978483195955642880092432587814832565448508676426428549147881461199281627275588059909051441439059170327201166809465032373386796491849983263914603281229934607693314855671001383651199314674650656526826482834579705267736442392260873912541109341769386979665166712141670114902782327052319519229576226190997503546089311592026738508479859401885130530724913913997245191041478426014267581819289030175100212387354496236667204743003552010013627411404543250947692653128117558400158254749603890544640331018699251960157381835472545439015312867341513694724871583958782581283095560856722605657017625247036079935943597097759828968468525896732039704289956484963233725803378568782191336415785412414053386967941799997449199994728423840317548410616149793313678751009887550027289078621963026418511923416508195688215739449593949509562977369372307492557372962558252814284792345890343496208488367769066311151163554371257764593759478464241623074563842318093162806901408987889802710049599243313746237864338516926217021122406431095192217244625498868173071884656686444834722167694279271709996032689707918292834519683131327426646385606215901495072598616817301382658555063570427196746695931649493155823070383501494314220372068054872963135816292079966923654908130296025128727107367433765534672606453239252187595886226103189667432124494256146532785207583387977069211265326995355303424915982332633405035221519524717206769271504765015519853635885862251486268582140566063408211914862508237790013548006222198380666790182716119170620259905275043166035380171821905713430530692847761305330186013245098287400438814131989341605570618346573134000563259306539210089237698171273003971700731244135747599337266297067677268262546608507804137651563830209972546155779285749259941689624648865246849333564661532566323460776264754379725829257447924050477654386492342418346795784331721241681649261200345983804055669723179191615135006044377345249166204219948451140356718829652547885765521609334390360666782426311411194103567609310793281963843400014660441560532552180628882019530088903480999113741694270278979435132332228569413765813329467663232848149767413162589966503257569337003299185846804398378072976711445607237598926518377767924699055112366732343564089793620731628179528318498728222155206007243156581025697359417600529743068373450662620162367044634382514499143967772257495200931341217003049036625330354332149909019600026798025025413051773375350364200845252966351000237805565943803663427742024252646206142228912188548438334250248498796998350402003361081697229963328944753925618642996459316398222851935833881779507845605670206592658270184279048505663962720365423517789126195026718473866472919256322927770739005825542946674690727598932748571935917728237896251510033345917382156280370331604975811224581113171886722525704060309631976963016181937951012699760010674286790605727616554785704913917462095486244346211512632215179025424714963194310460062588341120433381541598917205381260266509560524536844310229478662619176413492902073641174755814274413626901213575095062910853519814872335828380294206613845761154587298988228972994988835965781890000624271262544698180227020322273612296852118126574563519157192929695812508542710508757909171043896113390110146706788472054323332054788122845836034320858557009996998463436200242287979150331361793160314360551565226966806194187309987200417365097179393092946115765049019105927929932722072027551537675359147089185486160158342453739885834545888717416862835315420528984557251451962612591940719658942348841209871222695245708119685380043343497139367754414363731999236034876849689703918522229127689007479264228500954213334836602728873982281947885179439414669541981670019855356396183211303633740447342780649741627228855395453379077665572202924107847157166638314956696669022133563867884348400776104942347252462294494377254643621135867068014291596618891778709662723270277424443707013473549467793437261028419440994119884702415343265400065914520039177085548292196924952704471639014386438149186691643812856331123910145759014355698677181846820259895795544694072231452387723353335088864940756488761733906262564526981097286785779485470192630278662810953941562854264594985669220505509458967683411020210114744755614127590362933172628720088608202587091248977894156898228514373066438023611100836048223964623056239142627083819158879010077319740408250649216221289877128927735823144802969026267281341229949745773759992580337918271400723036667342961954013557368274753843638455779058787510490019770624000677765008352652646228827510314897220349791348462785005444787476960373036302240663589147615418768158918073791963034233546004110422426266866807101745083694253400077534559991334680340994344485755645642369561732554681460961351563175643685630889093888386450024522127355569633334941301188475368496438693384028747198118504502290802985769383534324831351871656854882707174600053496657949032307810408593381965002079345217064019474566975004386600419162327269761364308220829372543396769146962819662195277582572341092266978174356599344705758294392440992735911662086505309586547370458953877118373385059040463365356576578163874409697175632968348745221499362139724127834987063920882528847854061394656383236926017430095707917534571458880532308157189811173622371212948097761128401878227401543782154945845224771040242125043069493898720744970552247639051261039158548414858442780581730967569145333467420708688519101369456854134485729845335177781145192675531571920142414937476432738922356721445191905670029082576972584058049000270832526691933290507156393179731628981745572600073801997094600399409515935084238211683434846572405944947535628615530208739447187393616325011049792493367158956297994504262940584988725782320180779457824211589036375148846405612645972601490409053351956905186408222729664975036854632835795673755652190448809380341132509933548299275533605951905460949405876372362078560888415896125741291102600122252658393836795001317703414113149289494523642510614034256028207744825734475760110553758094436174223228652965186678252461620086733593275221585448713455667579078581431020893467462072685209111864840844341256222542026229528188844507614329591872944659293334499409897172327593472965325599276659022767649609474288839622431992365805274518146334706956547526063784679394596552969504072994927757039653224318352073603506521447813124418869876110992323039525596900691466177509164629860997731338896539941219774801061988236297906056098161774717987239214846644851702870581130299589915452572294264108855267480106149664446467659607936443150416202999576341226130755823671423355914805599205421142186885838180014127158886995538622687686840298694352538123734312788278426413248445991329335291239398562594477397360457464381013722132248773180666843809213477334267687067643006227235923073357546889020304183115059225300976471936126800813498672463043332462545613265784146250287901092195178112543417592668495456671063173190968444480781743714255043073491346081020487605504424461213440697516785667145300154336549607690931291470472368041313125812831811967736582908084596169259596986956499150221627576703044585462804340987728753293600076546530519270710645874960868885358809549482008943599386971951674697449223248230801062331625518195586160752977265063967104223467595148143693491788559167994135391860794678636271105267426862135957434864969184428623245179654032521974134849438594988702625648382470347460696149608882041609186887882657651223752908158161334472465960147325662829672617207403594437727332721080602095099943558707780160363270217758468400503995580171669064271990043462555258344387428507136365853213499694201698110073154780280904640323673345451569065040637764741733502549423250869454010390231411404871586905194511511124141923547433725279422307462464524313786802540468120752877645090027777191400706262480026413270369024285223213055696452926939180586273416542451992597204407654355791164596392656767168651000653946029765384861609487085385447962309997010109660288552095938725103328068533334474111475230754735562742851622214091559283874188762457284538818936335900591253189288114574705933270104279673038879741024889252029448174911651733010124978411765902047388597701726671391791408620897866384999357144647837408955320268722998276351760401247097718974666249617894143465798639056448002948117684162897825257690132924348558405439267735741250471537215752508031557336250548369592201919386546183470900726276748786431203372673324145861691837038809731301398231581754576467660686035476501622788643318974119980098219373446448925203617725152463023852004841894175223428889702119652127199698570472059578469422651296191085977680301288558190782568707971760021747215722688460609500468658162511297485716048269085959388489359781812348313040812840283818016445499814648969566734345545985990290382942054161473913279403269185188118033826938428223960623711345616589697067594836135322075070621731216879569894322492032734285696055907218805100884692212578299097164814451587588163935748782551419923291574389994405204235450847575038931863179078289401968423189593946390459324252148678432921400933785925836211152124692366893662773562358958718940856814635919610313413001296919887604980851547706046875470520663174962471000458376236355724306318309461416913806940255704772638767480762190141614207278310424015799721196261757827245032153318487617991498892345157138804733618353970198860186502582492589156454009392146641310316282373229759169659057982226624534987450216756566865050465593920360467872014529441509483896025110791883653141641185978012857923360897516418626239972908856305108390079236312968948357715141624646202877067592616974224206442701452710913095593855325762013420191064491764101432302036875253444117145430444075652442904707494349816536156525603032959325594726784237861509223831284473223467995258624709079614341780322955385457516040468579859710664581171329961976915968080545242026826225359561917045755828925602774719570314250086487057351681428043847047451641727883434054551671116918290614417847510589628804904307246728738378200369801800579484188917263573605971664618256931256766284208860276369322704158764170994971853747851156349998226913951135485392856971703095264134007573317958461108577534790902639786307605457806883739715374515080458686958321936311600896905965834435525291770380081505487607518381414999910330287669380162613078905409184350508909648042507863161331241173895773554562244583920780551318548082079066473591813890645605949496206508606108467761836030132830075637605132229517099582276901136470127699907997443604130055691662910299659544592962619532714737780869583079122729379829932259022864957161182145793732142491429242765785288223618337988044560972447254956270294163350591130081839536392620581817456770098864692339566092153229949161651370334551452993061613178308035939770931101329204782585007676601916944171527532090695222926502932616298211080447011096198536024767700652766454175685759552545549306122712729368816806123197774775513899884834878033443912639889240569301490379383453348697347967698007992756800742875914123007041873962378222685636452035403918904634434305474073351756400842330776527246423204215203852564861426117695360273630567391982515378646317188364589092147034763182969607831478851687408092151726968466440415613390956954051871269243892274157018843649655038455989417613345667752683714669723352201811217863995609869229744106139334065648621733046078501159303078494614390195625959511866189901638836220156289319068277214890094173534861260880857128575675463306933146166672462534241542513711784951914783622024982218047241126647621193605754452974262417368446765935042914882758590832263208111028627600728034803584310489885778340431051974282641268106454423113660020646865522087616001375799064565952391424316061117263105934640233203794070399961333686145915131935153988164874503730860340959696255623181216272298111475143079003248633936856005878371214183713366214622904054627700134889306329868634175115453672007354140104735256807218122688154483809464154594119370520581282758588964075264096101919065075229275430642334448294172084517303557198462509945042111983950250656011099064448628628378470218924780074270457201656648482538164116401097854943617531534557117391146878391955271116442212246531483026745260199636635312245900282273290192394143063655114564409450047825107811175367388957980940845656022979245622843436109366790110622214110585734138558551317489471419420367312010120842892623293647317627734177345059666969235573261741024901394068145355006353872237711244294206034447780400132654230625452046100415852930903715018404078127327363149197193582430070525992104687835900788922152419176704472321945748786960686239165425982787967975167340853802281736848133799559866365608487259282197130602579822844307943230888694664069694454329747008751890729444564599223726711043194379633051810051042012373879266247970178214835282597377808239069294622765572451292770394070606342520078265009690507053273792899292667737386675261563484968416093139644386532582670434575535217807856718791123739206524155128429609755692743700528246132077410090059183055353957314132285674632551894063293703472356843954099595118238852561087002101201280291988571416818534960661431982386209193733787537442681945009947786546882850777327152672410687463302548396579060249775497697374817442152675958183554558872311878526821277301700155794511120663095954260414919273062852928925978097982903466874527716407721398227124141427478173886826476132327191449701555766136128595373221127462068858743945909552582589381092027334336658462685232216428253730393384165110846533200201936336139660672760680049874366619283461143422882671406892114390936941640612224626376797249587242721328529799901780409896699668640568698458791471659472673874841139602898628944180060152360683321852211639626302130372707465490394010440817281344668308639761723298373941078575433908041384378495913303639356568512616653838183388319919279462607704588725333830684068771168408645350216688977399267315503406327001306478143342977389447680027898574517134871039927273593860752724083822933965698218481581742500726261418270339877913592538724240540849814058150503707774787012426107888535406466787099563865970700637031602813173244318958212481596943219280156769825420319858016654010715986421500719628137994204533371338081015004288398776364001659353041692227617611666355613671420145742777447697060765672068650945365576999433971553735051777247772213081807122628250357211904119584223254621861561950280729389599150963094581294073159983985524592623187511575221535389439905372667810312994052361305118509187898369353838748693729770854042212397007070267207310123448405537178832913637196701026976522616782209811509700405246726282535414275688192500918460738357009553127593177209203340827219827646771986966393960133342327867520883514716594764249884618364034270647102898840978133619353898367683467689165606442617549611345722850189404748352920108160159885823203516164103404264124231900210354406846334779174086838960917171661218131786155148550587525240359388820624659780071907319793919637477504003311381612833875605326273933042832892278131138947966566233487736202546464331390576787694899479162561805970080198585826783317542528267143412237197688603758255669086164494856558022626278167303714016784980392812188751975145244686413411965176527253031370202870789124492942187598357051909719559819760861155220835960778012692952048542579781766502011572433622264131236794315110321475633126542237182073286313178605441809186149009552963735282100070893254799717886652661661333055267244637977553547372931228438523199203055569557026737990147643501053105482261686149575921766277267044280703595976013189743144958071372751328137166905394108502554883937286647505919950924404177807575586462516928415785661532789386024597449724157574840154583299106218865744252370592334673594683897489272415056840354989377269692094384035589964328986902288423769307169053501890310598441025394398298722024592748011728918369084647363173948022714205787926299515440559020871610859199031746759007136137514353105444807166596834929136857388920145916500804520179476717057053683030395615289559728683774865429210917740392303236602014749382682938510048823296464702075381701460702189011771932678207386408991203981892924545189491713827286047515699141595832720208562717522018144951451638849276966297181533929626658072716393909340787599667375518337320908201618033729818766947677573728569075904208383865847809678448263861497290738826477384144540583480776276657979563358555820173421738549448406799867655551724781999287697295642102244395211886687367155312568417642211763439784380048782035857861415644221679618176475754425790108236098341628940070362737476796204914229496154304966817853195957596301347826115426461603838984792389207740683701886170204856100816448011547122282733132288548223951577196997895298566694775589819318394206359240485422384006282995284864538171137183449732654582539469920857911679523608303850096076219952312840231282745813425902556250339852712764843516918480626277665172929654925561709111559648449485893038698643316807258474265101073887166611405507622541665790491845792027014046208323319194795800031110426921574115709757754932756824790031324365771645080196833802768385689481913439646319482696988137181622933938620878232905826627304974151301898810269253386359417372501847872914667474680685502313808555939311838484625635213942889136430520329553453944098167991903291053008955541441248850379317240390428001818382691704510236243964706814407937597007007409858892983931891251038920049007107660382395676097831637184388658662275356053786993925853444626145168549158333418268293878527900263051206531464585644555355340381240065265916609286163484875457087009905876286246138328586007921072760602790855425228549901540007540838752434332821867953411337656827207039767010207362985329437613065366009420116225692017447620484424892341456124310837214408646502427320827688282342741725133095789357137471945193682333613108768747991278214293695344677284146369598259146829099675784884380073766219490633384114711165391753985156419931494391178887264675274171257388030925288237599240300723467083738422880510497397408350262457230899167125830442344366926666276995098088065413953741049618595756160894214627838776823367150270047138620131861581566099063031643950082884113582254933978873334684522189494918408130400690913801412534793594386052814567305356556701896102032929037246557801780663432345170603805234043825031927762652973207634668225372662090661673868846658493695104774584154891649537509340922527763500115421520714442826434842158569059569384765069535426019438768980959544809526479922381061954027683171422510019474092406594543559581914710168972078943619421310932097105092431802616171657437734214617478738012570423489353000781387939536281093426104394686374769387356685775862342854845332832684215269509958412572666623035837456637310882074608266976839801816249620201048771925437380635256527531861683879967344263710517595454179351520771526332072726460725463649054452858637566221025506870120095875001420129042912678391349651932720665319431202211107123529504259251613467092822279139549479242801169372643753102524135221518153698960657126941646725696589789189988522195684632361690210545827979677079563930154649491895007067540849090575824818185801060836165672657636701460484056956469210167395313159640897665784119686637516550665110166148401977904061695819541382895077173073642859126317702262221340447751608979013939100640115524786561679433263417519718456659543884952520767195772089066634627092440643322509440706396500741747609467525765481316917253293869488846159068738398937847370280920780005205191746308772565548749703075072178369935150271163092842933784962225746400550995209812181927141703982052515871605462849576941057244302868461719173039350893308570953079099003068863142758907824312765089929923346787408643712767153087584993953855915873849581194123715742152354537410241768551860682327591172753800448116130549072173576528810203807196148192996791249833078200093583772082117893785393646609966090126184913937012961637788497657337821203531713333578912470130277383428022521430005762968514205742567072045537577202092916876598641137244592134088553262253465131538476801646452429785879578155530464093164496914351118534218680343742399807121257773896768877437212642994088293087592034952733286393258701751341365382402738462162542039331257623367542854534752600374058250269661658901868629425673002104683666441314835435548917705042419632736149779219201481448481616358574376977734375680201283416717533012775854482104337933587225949287730162309025542873223615398024718977043964614176596810078623835250608901014265104856013428510243394850095586212937429741372838598090603100309588276856069738096801473515565758847603131015469562010783159283479712902909895164969482805249797525373804501122329553603240786937639093514485580206807940271395724191012432847435298171429743192590430394770755182235949457637019098595166059125059182320717235850320168787316627103641219974583550641679572611783613997235244368816376098791961211773815420567932499385682693784871797296936517310754751182090778855556392689343919858649729134493849649808601345691462107300225433390547375322603745242931746992330160474723491367965300038538480056115196846498722421517832943428346885763346240225317376848945515834242845416146997210806364208560625413815443006959659835501163540079293362569873771652940936908305773434960116406888887530508407466157609428010359760404568304610564785706858667173769889399546641929806927616074205963124906219575844736178586279308132979204076294029226593330242512174629248581938362866480509563447451058665171151046476276975502561521162122269237841824990960679805150260479485579315203212226359690428253906447811828367226464644173559373826231550420623456676364563025153366534759980363081805696023392394878085697263308384881055614356431777715303147209910205578718326925510188574368515603396552382639937957460835443929120916373065834537260451251064118282579280964842207478313198689095891470243609938946277021877210080083697298607347084208739319689470115065006744924589709573475341595311586545975075092435625594178265406477379892554446488726125197529300123368582156760712758151125424794672878659833541343554863552848310550897119188784295473304935871560909431148941052442232364625570094316308071903346262009721177270391517831608395049954337567016395700676323511473832595154430813314630538030019127074506735847716338167379615357210133007827618009436349714029559441406132823856494030004987017588192916789822966637202822294694860302701911565478597677855546114448913394663807175448541039314846442389045744694371131539929144799939282092162812538645644157560064380120332065895054571219902249066774912458404789150659031302768758720287555771986466517092200830033777944332293347272834590797454973147811152449777392488753072356398415181120707364328574213543787344050465106550976970013748010718629948101420287213504857744270770156585186553598740799978769636992485155889089065091537851282381087832135407216696087664780364531631001020626183376292314477192549617107139642941194649040860262004745240622257994686380241756687777147649306528257137788595136672867435058536639762325051440044568709439347017250380009732158161070350302620838986453648207699688373487611913219417890972336504042371626271476929203060148830108785639885994652657319559670775946477028788879339387798084844696432282405834954285752889416945817145221978772502693967542041693854798428222772440653185777100067520350869722476806105971055861981757370650783774795876418516285961932650495609865120879330017940509855837296657493998071911968286919456595731641261967372238783673394404298492645614567195187878483121852692674382048261732683708324430263181436239692240787955238625896309819150044242683468524750794916508573949372434795985552427772857083037901687198615092169721585192286933371461560428592888803221127187259441636708406723599614202999723213224236404192318058063139350169454505877458887001576472560918433125776516070436961566179134497149203879495563041655525281576009716654739110445758095154189018684544533124994003850898984324571040796120702315672524244283418309910393727433821444187636969008929411864338326910742519447340429970685099035629327757159725790144429790474274289596189910714595463663963568307666250907229561307171867199269811895188872895198945742316898517981257487662871090876716103911483975895170310566345690493268511665165655251257075720703886117257373796458803381730692086360917475109917087488772813802982827512742477508886298856534871176530908465583306403197350167730472539892876335722424143350711004726163928048673000771175548709755999082038585648497028779789416543692997749191359304505374405137476982964908063384758149356027630734377498353542709694043397774390955678115150875417345627090487540545374285871466161305536278635470691007693751167319603806164428776163534924454215824712895273386873141438146783188531998210438797095375463759205628609322447936216158581683722820708876603066529652410597361527002735332885857352098094159784377957615365290442857399087973108465181731330155563150078834245180793334105822082657032226654164638919039823002713226050184645578950854139015099189018879567848983638168718188675349316757016726855414536880647519027769499330228975068304153847884635819254078625406236912260157012097645304811610435558782085916587936459892642239752080113669645863873680117673177461809463027808809903281308250580772360912330455433963414141337859078951218729700347215633920431026728555949239723613983751057323781221243995464026058454247502580008795288983754890535001770996014297810560999030737185737360776882247844132670017446180669071774141914524519836480875332061799239604571959394151283761937949313945550827846768371381351204672072439413750339588824044071150732203210792386056426772682376247915622100375781244276799716331081525373487175866845882772699686422960635921223431745692992926148038199826002965672091810719072134602645842304100530035428612769559223774190493027418024613253822962471009420964104706115268540529962089144752987592754341266127906010439595562334589713486095568065310014289404897455788393837723912136523567976177583344406104419268489354680382556245061412603796309178488285697447423872786492471267817985029507157400225591661109599471151877289483942032846992797919723708972173315937137208545824001959413204753549133591164813580309911549793858257217664572550819761244495590633266656749801942532115382000534548002618595561585080492552578818865814191418034617608470825018030622158225659850497796381113450147693515624328610314449972419160950376459941010397701383177747654364757043675214881394069564416190102200429776053686785914204591614213007384582605536594062839823494472441003356061298301315464275670892885287482014944424321956824768238086567500849200993352970801081409693659777444060705266277526440882877467439570636933807470318003409242278824880033562954919234490991726298410661410821696686305346304392279164868794528432427645089354703694587097993390800576103966469319920511987947918269806019341835981636123783277721717170965806119124723530704266544664219503865293002057338114624579027378654300353312643779353385102526195469123368186539409897034757198687884488928553118259052047486614071673068547458661107126537500043784305760789632700247998122821234534956358946751080749172114163652172356838278681572581779556181713699151222743676784321442009970333913106886621815945190757323190058305260979120037646175761047155318984301645865625419865970141095533213167950461132146491199899853882481802395697151769387610549536625154979394064816398420756621994055721069382232173981099026382062000308098830181435197351234322832833853366302764209592118862119728561826347362194700882151382258593939304391338179363131355983540781491549410061744986728405576346472049308709495099958676240231547686623216829984611472110293817646753447313337166681344096702924349649313324452313098290950869877884684805613875410639077861159887071050485075117986658514954978356111144406148972995528663735546423706657654161652886300702504601057115624884081571985042977849161224888287589308370379434160082102448671024361939093641738332801424800462612156506723124891927349630834397514478028119507830760579714608032021872605707741079645245892703752587268657855067061801162843129680979312710622554260404059906245251770442996424541492927114679273813920307301195878656130306202897084037047072216704130794779256996921926339840816147928211114585067147495812902504079349707592284760134147721742591913079420058354550918420306980656046898899170386753375590311018314831485108743560020752054667419841747745919421841657228856704067837990617055525176940239754978889998967009916786156024022799856381497176443258655533687302503398567190720778660576023283416617935246366162584635963101940917484634533213556168070388403891683379120881721782405011897020189509689947266778148904877278536215768644235708336890493833670334514034065707969336351380861306516301368033652212484434643785927699126382235688603824363815321268832197155966674872538013206385280716131195029130121734004820239771908617811467430670618595567608295890458752100782688075877089919115797065023584403386881985955103844945904348114275143338125982612029766207640529132705854637390585539875226024702962070152797966206987613136080206272204334046306716902336254988310221936037080167341063106687699681915893232213526732091015221349525995912114268747978899731645634938346184463141026002812115219601565222343745280062183049346929990115047594604138078692755964612592000502417365301694497630125239571008017891084203039238115102482524785952678530160042481964262799647233884656784218143446174700029117688597593458061085297248599397301854959725221946074993235075414108551743913575807409716854708937785402792484805231339160771322030099515527270997491261589522455656109155116581572159230783775984415502259282205334815865741742467600941349645422242445547062731888017166601237523455543854836595511514159277422062320427800903306580606064365118863467305283529990049964355257442403489192926528937491502437426184529892394392850015033711112521411734559692018551459108156702146924997673350122264960320880983723020818738586278576379510338434369653817231953655017128889300087088689074798478277665378383553660087905066785789228100697668739371147690328765275694063032447711979752166272678179095739409313494983654999668043056912272398915399322960931017097332428865175051711028377126833793260027428853007217730914504403144038601288909357907003522867474827755053998216934700948877373572486451089064069368010627803769331283871527592772620633011643187397240044467080671767355468588770642803637547638715603678717308266861424627421890750381741403595130180371608401708921626802990008626988847719913254737897376506220816754427239429771097020509829871706812466390507777868242127542883505098223987740780733203853337945581573022747285264061469195500571979347111824765262964440344878502527802139547385521857796214117529400127779780248128196202269761012087537077367513929708477647769707940539577897382788932079670803830751847055005487720672701174656702920003845326898663789136340556222720570714022492752646104123579145608202389643154492935934924166695735874553855623228829888286647906660035222115068945827743784254418118198002146517210670081501556356034126940717984170303757154087070520945475372388828307046764800141903482514308812903192653716350520081675574276821594372329602422930338077131520184561990948710812066585423958269356307756082660438426622721306223841946967614257883026841339966658893529710301283701592835918983299602693620386090797289832557963235064793813832268113582529030930355581243858717226737679800200738124060344357128422432921161385582614021813603274006013315524211488653331021375349544429793642564182134068774855399585455194321210570036171513057052835921183079680528785267177738782218001102082697662088608450161095353080734761027993882047975149468916799932396905509621150881625249718351600573037371815251199196910892644416088112030257749295673351526380190352284919886641808419449904330426228491576433667927982440865498811199914372623353457951218604366071487989602934585653244299860246700662618391072470808989384808991991618497625387150075736284131895201418733615852473925326115681691756476780904767565436821472630301681341016633058469362123489744105415043234554689844346649359617361048318094104707074191442432861678402421377451639578377368768406874941094494287430832676216658841034483054268634051003697790218194066576795333656366439138300823036347849614358644686981431040018022323807949854482389629484731014313977826187808139431769222306521852123943673923457490185821631580820229269663591480369236981343593229436552604944963260638100260632504271800828995782790279929497675704794470066423816914599440434440193253086617441152100227318706362688998427578677779707738769872144768002838580014017964896059142616085223112679812148506769046692743834380243048792332477462941329079515690034166333453010049519677628621601225240777685432874717300167216063982627671790479281676201104859719512847085035524782916471627433614848052095919445777636121626233025382019339228238077983420669626579088262985996151539330890171678916394108390687997104771425104905136683583471119295501829170203832654407287232567188107884719783893288856428229880406177581116521399485228605987017922595323083452945480446841801408661984065686631172949022383010123309915866200050312524949810390630152645456769477565081228680708274160365258785867194138135010366308256223332219470517132491392918553527063788030237176890742636344601923965398487887892570775995585988731123842655273034668351323263400380387672165621337112540518243827560861600137961971512732437600556933687976054525707926416864947022872612893504844948658781088768438285377615784056048069357226306872505778245513573399291106972637848545128245408994280648136163270281894947845901302070615458941193200092144643947355217543158123228555768803713275446195794195905627316187682955838878968498367630928813401086185197781355348367242808809249061400460749001682895804729043748348978675012358199856724556976059571387996451437653760756554113255870855904290546897780343494418503316676299064834246826247850756322041471496049848302628448674650080604589523892190227164682894733215714763060864624086212734462045729671142003751813373079710947779209074119886292595149422109453439165465170935894778211520604928769109210807426396398603143909510597191989240357319204132924299142543262719952014740206588126941488438003233695215032525630412524929044578456805806058518432196630351457196285011622034248294261468473336107301629680565190281069937103526495354711945763007839225651327454017261764637784086079583868086148253535481102339534091589211881700510178917304071653295191860134270963246636309695395191602173593790917524225808125016786244259838595875797795346133287369384126099878874705450838922997986652147940171389646781538507618148984792342475582532485328283669444315851457385612403753753711228164424274637229529649915358506793237660753312914006136805926193959343174284386366613601266260045354039766091086216216597929300268642183167948027089278356633882714065962695286421664050343079236751199666600784662534042348137486943636453560572806400885708871576176849740150608464733024031604854770918052672268265468331614351360762895655784868750381060516436805118144629427577101094383188501166210073664104059597692941456598909748310470117847708237540634778255362763529791651551289326171576691298119154480559989153534533695225737853890300758624981379781174182365036963111903008149494226947707744823115668426612135060000794665657130172332431561795236858526787558531443163385346641705212452498478051802754058955877076709108519419394783006363998334596218476886654535716142202905361981364527324807947708704346143718556696674235586516822239558179853504126101753220289551457889247848374300811908749784272987179729571644945732959575032388189520040677055934005655124569061189151604586720170977991896139259693916847017428754252960338256583425060221767737108300547058011731485292036411002326818611156392140859856193630464540973099924035303367421137826127556049327921733970852101943748771136445536122971511392719357082190441520429701563484843081347196064310051251566765035158349881791221459747173232560082654394953388656101475827179873114526356918625477431471117724779423344977428684003465120871677153541913353762907552883922883120414153603028875815417648085567219327523392698016803489861841018084628757816763172623295874598644405493470654135752136595621761920754277474924932514624931543952676606699296955589178776191495034610834916286623186577935799372540632289296033417896597017565691964900847175085763480861299609330675262787231052857075979151961751311786812436742909128575565981189436266621330621628040997046010030388162156091577174869600563723662679870161581347128854546989962781842920380275197089373950685356815943541957602464346790151192730212975272040565414293659447028953544404922822587281998768185482731396800303820957286368085182415888366470671056103416821653893926506372239859957130066770527077723785993016087502756894371438780848031508509936623677486300160492109548369167695314490554719303507060725178971958370324931131725236420268941343144706347691787074194396850892488387507921142578311506539097383657308135050230989218077156608294923944409680733455541696268763262350901469623373859053764564458023273628617211297352469386984512169617799892080574730905232282557243933278344590394545366973304734195474299028469612850625966219363777597662979244508829878679304979546088424277971579190892581863667525760147713823450421501899264691769516524717486024150728235247940800675117328820298770901921415138569409967107106361532126605303741223590991132970167153308672033870091151378725282297360507331404596913595782094676611675447570384929896825305802294646686876113877190681945548751702786137806455738243282500972597992828499625745509549114113418875751350183865821848124142522762435977736019031119094243125067417735430835257126331533938628731867880791052399560760833395160355297037875687928952282217086204679302601773618126422378639929553297012202686948751965968337700103990648504041520533834717156688812723315325635702833422873995739120829912705270509417948200570454016569142753576770787394985506542462323915348803875451389946294598773607850327448184380785066279344994203615285538278146245648242902029852869960819446993199177264302283877772105210992846377616633320661356134374855085255770419671100407975054349168721436287644325965348191346652040088495472627589135836863996199691359913880676311504171480834335208425384679260555193007840171125162930035836437272316425971557701397961617820848667150900876546475355427015370592778329659769171661389150740385389035010593199097439966402196687045857714575791391248034697770865453460604420696623429519824151077750191444689473634489028774827395090904017374377505581697289342518029628803442393276199115258394865493328062838360800309830156690407201612073779608305558523573787274075256441580944411078491677933938374715476095356233988553937525200494610659558321736765977749359503088540118226731313964936803039313815218508818208568388428027109762363325365786961050395147942464194626174623353516011927213884860078355654226451587217905730917919078862676525129616281052639427395404182076470529595232496327228387759131500777784385635408605530626597637856694666893405740577693345466128916417301784184137335419284503384105383227672598767956278530408018808195905355198442166645463574034725795215010051545983021823634517577769726598368371185093718593095733749431624563782994490556977785777754906852290198792177660763659116460817985760751635817870003051572844202975705662208414683944883443369190384745168115337589411601735256551149881121792626665818114157236566887702651123768613195886383540664621357383667386135960122241930550426958302950566355410658823624369878839008595931483136220853191422119827587596186669520408305890570113947167180096309033990989472889473596919311965006202803880371089409256213484302433843397807166501057986632815394846022538683875278798398325017042869702488599008434194895421798344911986671093108775388318490591828986704042407389012857179720884245591773035888701027501198154476475068767175085628217777685455646734872129170981001486719868552988527661189860120307619379381454454884940854157386512872751715014498875341979396046028082361444249934505453581843529463181966689577328123990446744472175623652890813695148621935806072464152531392781534708528744596639304736839806406301638649745910026361358233879302281292836148038672185146869987188637459805900583466652415992607270086079471096554035508377918586058954676553146262994932961478234956559920413877043449257723578131998676982637486344781814934657901161429315813423140595994520045029630429858931319736458724514070543177846618901022002158725274606090584129377466180875650908513470902960203370298081905617694703516499386009464329425116236829008902417871496057336691789766237461951994956688408019257288014796392272432065503642868487426323222460182991078038289279222272659413874450908035688088945766787088682191787269029274296292706038971584898775125135648730624809129251114160577747944220199337969206753370670537511858054009722843408864221959919989626443480814460392806658020333262433878597466674609495153415730032559777045010502595413246405042716700934677859617394264854621759118055765337344258679944056248604368900048755779641071026605523230016410977279912076031888844662415561934801884621611820106340299360526723416645187901983598320498793266749191392950040307720882426404270999528173790032837826449180288938490078252051807400557836255384742602271360980459166313291948560538134879506144875387558162518327072730150379640111869866736535985413720178452352535233213202146512332583183373962359006127178365233780170147061946706783075982357546620612061314392536384079545302210016516840833307646161962163353970096580795424881803893838241108300235857303010488438462887030771371333524263915722758100053933360852594890366958838348252995384924334849739508988077502942445747688325512294986202237197919198773429442311784229386445824465688257175018086569669637169814794738408382140750579389712367789313079934378681319142666400932950184400319082894817948099399184470924073136609022918387566397393388064050886120080860095453505200990148338070513487679955172255162888628459174452174821600081814209605616225137420337435398746179668589812920655678028845767141538696259896368074708142592482770962656714839504878891700239224521871452623250687103511022113647699662670756680874457093037691679424194792023828470614563641116204988764493014002217457364766342476216031741693810496844850924175995346123665719438016304739969429502621994443428452396146511767455983379640577463695722693397854979042350566644619941736048912756878486003512979101185433212608837021601238185898443168613384533329909525644569356121104855260353352811645649809558261423635395151264067098212735979873878282423252546057642307299412659427113111254196870993576017467298726191712494885181636267717029894100479935172204052661950209384464490760276197734440089085067338130463393442883733167298806249855291453796282579062567426055184899420405471751136521137186579801844977161095015563724442067381008911621225919355270034326832052735993328930927735424994677358866861086170365621690941575352767690831057178540619759631077347771435146427664725047447167918445131776438228067793558386507075956539585234996627255331533755858565730494702023423387780200986319333236482822603467591611413485125466438059559244711338684678050294526403817613090641562966595752822242250283215085524428419612909544840954760149187967360784172645576995182667985299078120842037501463045048317449145159462018971998455014951749805304191584217908736237167827686748509829518741715168389290367647952629049366848471582855776237982365998143202801297807783236544265768236129131839254083304792532991493419510606228125268939750189355163905077449672063334498633213208807183898227993508764021319060886884388737729381189479704465163693553912433031796296610807540768783630273858171839978292348347789759792812973464840235432316993506887746146397818427484347133422891673075747695720849819106567245194359407342825220775072444780877732638253484896951517210429482010347208911865825043912972328187296801499368095364187803606800141465754618275102127186516066732189474035581401827350203406874805114999930812346401734207233915151392847542602652041476388580760023762770065501870413502826150540338200515111729175765925510648506853464815919924688079703545249395420647560746845807589282738974068454103376362288756897707725065517241538514419851811150282651009135707807396480274127812137609301673093221299081772987216271754706896215700829440464313669381198253567162578818811757276389762066095944758599357466694650324855909219135992862675344331966370390319104782641431363528778935885374118278646400527172215719970171349608156084572270403391476433113081847472216355436252972603906773233333618068849530739460510574852432802351059889273327296045141148470762316222272001189935115179852104653585262008855286428110450422033525380180833882072882241564540160257558831340889829803990105192199952416801417014684732701451716933101854411315559231958516620424410964943015195372913092067713759836562296591536904404728304444925556454517553985524171203671958911423555250892325470902545553231775682651416762636369518503613021021638977914940976612866161726050466249522018451683189400287010524347545759574877647578396327421003249894284636591211368152917543016371376111566098077509469085275356387766678916521081425237429873058852894497715308922039934303159377806764358292388135426897003436075530849620419440756575183241014382577129998581620251202293654431173573539711895216441123851721305194915797442644904864913576848592600692123075726599108941840031280602852276150195310093024007765871052720783500611164411100006333620521184560968114410916888183614609253017004790832616687832973036268912862845951375343682559126656021832779127490821779849283559313499506379727119516819040943864269582957678236605305140741863759821151085187455835333695347457171994024067767079219646814289750204477329275659903144167383850209548629839599292734708479140244867072514727094221165207617736584124139430576602695420560593675581183998955716375578647310446203092966298954737646683165101884580582959797414289962287657059339548399070419146448497139031958395933006410395769131178065706629231396397987193075520766969836602969349210947199558236632989075084163085310498029431673636930973509783552647929379340783059967274262996631540917242159392138320855566434117608723816340948139177895108729171905104446140503649427919947581103601763373779324638688094444699462993417758300764914458615691411853854555469188300660945364117285518524006538694127473064401378943002756431426130449729294218459164819848705449185198114979899054360267342524320376094496496123242695992524401793468556160287103053234868140373550740932254260808584990873628434422309243909488383253102320824944533360618772378969798384639796982111988077344079896444123494099401593165528160982120778132884121816081253236487117435697575977321467454883214356290937817041777246256570255921752287700412505532052012223644914550499269284096824148715409435082272950006794936504126856123956216297663243716659013605752012436963367000973182104561284134080003801856236818042767502582825164593248079215600597305405680644549716646296889386209166797538352143833420645862228269474083782965237697451571381556601513339562641701073085481675641759087639558398936437873502876569513782086629354972334435005001116857621669585381919101992854148579494912478078864323080798727304677880698726968603852443500889464796030224105798038747062826160010317425490024806458400326286646053784446698405912831593593248264381175736955238542542281120452917868548368091747257399580488127181056608351311683876533919653046980394454191318170613326334895518487031745925373330994053282009753345219449455929164763822935785505294351487663903012443631046798464730080957396247573234689181177304768373525566975769896106139371093582968814782117581858454843601699088233476320098090729534874776238919571785348530976448512910388362432523825717176423818047396115849771206297994052911807961139340307471384721926345604446937612576423791112657005630455515013075564680077564873775016043219700945448681645708911959236630071149983984811107528694348205035098543047284917360544672131045562771606547215503797110200842621282523747386488304756625366670371843036949684069510837731570812953204073496578514055074626482484302850218627098103330706821646879268224296362520547316784030237067776963417033024509565606660643419341575013085501016860888371931142503427545359983232215305025230275070256438446280437904399716659936798716854415533080685947068514218242281788445039085041194207934600355928007287812951162934289811047897784713125059461742557584235152800902878060284367390466386924270518779250750452989656795079186972034256258712550802376900818809461073588641092769095217196257353282857635876253141411537010623887736179512349370426920615418998320386997909079885101686925978533400262536364623241466677986397137719071185934590500571936638359171742121682561510231319737529025019977628092290757237961927800033608871277781132100541125191358395339756482713333783731179881391306418423363364867771738027397396154098853173096575952907011867105552282496299881995566779799806916710236063103135413209763040882335377726292249195062779834273817089176417297783932319597671009336318209949589741708763826198256226236094758800767966820455091579754841185368440163406112443714788368203327491956142715161303276871343607866151147451555912279190105746960956974786424488334486735599317893126920591124110441958962702201221503205850219427566278471208819714530104618001983747783085055301316884394274615269481113169359134694049174443684395375118067170059333957708374379316724540664719216765853552866325875859497446339817236423260851226698158036937430340390875500800656224632105718872642496857402501173243819652009243411383263381857761397765173076861919484816333473153801069484559163511215338622833068213394479279110916164039470604330802586741945327625481250893972095282486314768163502117738379300675101732691563883832739434749854851825221161360515719502525718138185675614391731309566573043382000330553035662167613790382931161075566204031869176074226899192852920353153011315356730201876455557706487556805277614896206016185850706885048656963649699922303912325557234842333459828476453739404944252740517213043796823736781770392963107874549464333126695604449303851099283656940148996912793796008524803049296011679855858683614033891073694739386134737423988442091087448566944878863629503869081864977291480979573991845088672738818181323810702271430806128932278827291520671064925300709718711426253352351808787496692810256590853985824057317225914403455040305677116126252738207364292446954063038989695808130946546761386723703930648920955283470640855283339473386900037839315487053804740638100412920959937543910924599459405411132737086638620803272010911446969344967671678995675210897867007800593771927287478718442633506440174078738723663589391102375045869917686303749286429102441918565941629234984970470239721448101414279396614579742727841824763165093885626556547422907743489153307642166761573500632392928184463337173135098676359787918116101981804136957014642716974719804091357095932676262483114069632580385375171372609819839492826159566167631624911295131195568011614687641289104576233072753311520257524241760093717991057005180633690379876580245162652925753551206936881910945377365093326278144838167389920964611321691756439256745160108710506030682201755987473500456980955085601674786360516917622601892247837855666806009514060912325448979644412174345110132612144969254622631345108446074416473255134852540555047339375797642969194782930966224504432886419212160099553424150678226689936600863037100753954339249354025364904259188520625351523639217374207198654259186714811033562306146581625831553300983663924607583923611934198869160645127267798104957054798005569014011612293522089439049365592445449849950385166959934900226852453443155073013867306272123173340501275404150488272525865793589482647881271400911096825233630194454832811137575962948541320853923510279900041739547978459072163379710218411356612596474366158977008464338629882692606423853509443185854751337736640571107377802424953453552756528941012639116295174379092134829193914066109379062002306522130243229046847824939829585620773439514288441036277523023585317920182196997683451919533433144265480763071288217633000995513650241206451600722790305494546942941295873790057219051562810130888427476980776880559889827971846485132794140812965036391532885535248337253242057759823058481881225934275921315276265735731181896762634624157351015992279628202289383269248283808553135323385044420432153293046374526400750609060315084696305070759587099025685947149275740389294975814401810539171484827399289827590291521174778459407588167127784437793399575058484502471040919187214443278694838424204352753476105211329137485503705528383487485437508100362288582277460471732970979977964480753043909840198586451121641605744908997276250455395170132537542362367362327890448764762143029481545979903346521141328183227853271855991103467500845838123890598922894576969693775344076036154476459944888570462493119229430801122657548776626749667838981352394314841981454367294085389733356898397143201023530094983264880156743055082617419214962779387145243206087779899374116236509513672581793434293341745691339745717395933840150819015525843047220286895109730057060897433617361084428359760888435533361789465921635954397956365961545759170141987854496234733761852779818713802802681279210992336519019412628009247978418033823314289548930200165445474403316676626815021541925003795619645302360936078046075350979011404162963706764702526197786706006558517352551727445034553734683430894954518330393841363194485595407499102629674257905909652417961400701801946020866394004073447703619857990744694490317697858345416234134622683368012632509718144173596212120464686667807050685015274610586307366114662420315091407712569892733267656403235005403790258421960042077136477735581166859659249735833717347882399777346543721484762325057009312280202620183605913502029983839038440418110061387692148087983872933633086213102515637715448311490133295938711319550352530592083826657926410924219624302420330638505542976221543025097794938878214394754549315061796794199083913527607688383531422829487192516783506821010392439228613151813478646900819398461346923677573638056055946654109203304712082418092944084650840284514298995101055690945825951997947217782709414946495392171658522496622230220106764896084321099833402023689946159950280656021164498819251451581225355777205430718848922181098683292881340357162970339499809940988936965533393225785379448625030649027274777507594476518647850728121415402928860694188839291865091503525925555813797570907716227783804022733216691623815143939796393326422623183090847919233649081049692336230525061999957906229877845485584660378207871388012261550416574119206389265737973338937570313953566274971579610856246295152959735694723918359758747354050154457683346647258332406752305498590718794335480878360911616931723768590957917917384960957136137937480267977206848575445083192840801663122805162132683492932706132960216933311769363580227312089067281222195568099073449889234331586644621409912632510882313527022947011120805951590251876787211199883949580519337280669381017035346832860724057967403504070290184414656163402707573328656344404192789047033625851935704836930806307024853908201258104566213355427562138211970229020140678834691095600622101753662025477840250344053140332069240143164133070755805058464736272608726245789847926076703464212189779120356544269144632052877736714577151416343060904621577051168730798867544057078140877035349522405662860042714016929227818166213146549083023943089222588072900596014872922045369960680065808562529795790038549185174431125818616717153616349153815629293653842865616344418749073159714935815933454907720663795974692634740369798297750464192929299208917262832953453934704180360543049100260887288872830376819237275244629632940531508354815435049085184233323154936985651035600325178972821944408108918603266641700510937000065196844743646644536271143081220050429762230200133030955488436871073793803613484396182884598324552997603166505074151807863506036202855078522524608215884479923457370146043463088280633204161856189875337913741575094410477647571384759759351050739120530566381282129160703753773370184800774228600146381042676403420536189245886662411161696539786333529685737101273841120946883993423500442445359716611966081667822862495801175894630950252448271430320348972385716228266231362353894422900487677397600371523328948202596652342914441918187697704672658480030178460205813125402677118023456343212641583877383431840151840912140814636498846481395872676553058631137434036660156402070602035806876774015666457142756720445304744551654555609847379403995752613657749789827627673350555614421742021737409232455562047864239912741848232076380345796747128375200236057659575019494198270997227181343716778957099354403532069019562881343392994509982789310284794322013425636494160263944058490834625625508111567103165793937424858382940450115125435138316213303808474654793015024860836396852389315120628687490907872177280454298100006823562563585570457104860660112120427035195995984454761633894611444323894933636649662367018143710826483457484997036323015745160894903604575645874523211880611569030054148230498609845775645987386243484721474063619527392472812531891707937101627064176764023631632105083641576804866149945010066978894369080050601385684893024887206764720773577723081965479244403734864952591586385475003451160252611425078581019232090660613446597760973203668368767394884411083098270346399507575913684813232539175543533047150875277171899856984485771818284300860291390878167571925544402738001842495152823716027237800599719722417593813105960163561135494678613882051072027147450007813707554120650697876194151832095368401199481266025450984191518077875126328582527985889310889162417208731053256906261151989404722561223236386796119633202147603821579817559718151119561217348507759262289712918041018341325756854938109175326069110533909631216773111170562841592534575468083355719344160319603507305844975819136230528158208509547760763673551863559686066726509546173395088737078254686531322975859699156004308065279244802252462130001073074669450764394201237987150439450167236946561659818970803308944187934898204365828150199201874078752714150598604838295150187918608580038929201673379780565953043143096261060119919012786959998022427532217094593142983669081087815223028000207295756245826432386864456429662486308168369050695963286141097868001603366612235723609609480953555856396053585946309268146468542410137281326958491602979440325356931685427518332917553503913746764189142805905315058820643126704065093173983770334231691101556953119803084406090409980263937149107812602832657718375089491913977448211768304438400626581797079274562899030277389570243177826061597443023715033524449452723616321839916128669833938557950923147895800376493297711991004483619452431929668643050958027967427504987289411227477659198000942097105331148465563408125811557957364928628558266812194539798530263472610427373180510026411038742220883556135396457709766655849522701042098058835959580964002042914901935601986591000482358710272243183944681989643032905821749220985811774077615052389697425079001601966606977438395440325858158055627206770357233552686391491990486754485073024451734395281774267583331670468467019931007488413608858460000588405492954274190791266437432070613179018641952807558337800194534302228925474836807811492841605429820903631109528338559596317657879820553898295750957077748905134690526012622292452271887209055767600283518033874717839855191124307663011399166218094091580693921665142245860237429338716869481977064792378887044544995729384141617737016917867268841961545587317950863022330934003399794770475886394207394157576604771317800436826730446439867887605210641328823484131929785327263144256894358624724711165254444985756312463721035922758949753624487209222876480246735753528998256392624592108782196168054789811051443980469359800298688765080560094778228104295916280896205332333023780355092308141135733850894280973330328094287221546465915903950068109772480257690271401374069742690532719113716347643942507304531556893293061095820357742540522530418993478789101729580471071194673244282837869020145743176229185236011852531994341695863319289159125989909177264686763696896582763828360645320973583815303824907160483272057035888116431659283529884164412062696058381973571790252859228850341731115091724721179496455478858639791424506901020807701813431262958860883508009637075342718941672872706715012159842079442750001528133290927144850073278408895910974479369169526866738957519301285879255098157661864382895277628985791206556500302100091977914645960247176071597289130369598254404842849426253174585924220845131296709572228670467002753063588289088233279259615144858333869319403036309086040584859940417219372615319993717013585105480127369177501168367341597047758616350153580645734984911556162059131074720049170201095888017873304233182418565685710002039434150086876107221893632604909717732559656182224998406534531492721749572674311365223290025359213733664716150088981040448435659871989902384265261482670024357225154337031589334869762745626815818151801454215221218485141314731913029332812535710840906154536270626879664880571674433430191231691611088339262701435943500824535908159220864895764979490479035897611349157422923563873551898767949266969396134046218530685455627424536640775310169862267871965451659760765784858133082963016376129595953765480940476800972385495642257865131168651942694826564372455984584519342652193363484916667848076235139358151977009233482246653943502877130523180770093547953136584315601030824220511940289097429368559266986818584844530965522350908408632425964050090185317033915760593804912020210440329132728625031603270939332856236825310670654068520138358738093403117958789759806023278711658821868113131001997868466369127784010073297785461723934115768622193610852095527336467328014945845601837329162889004539383093925469084697729299028581003980192807603196087447758792878129132104245473213674131738004540660711194832290209724997040346931432999831968048526495938043445285862847661048728684653225376928585038626222823705555482904285842465787327249542175936369623031243286068673816586723966197831904089756492015071723365945514430227419315166361268398229719003341303894231829609920915032023612027165077563207908009301369851609404736333138091253404644991948686965015757817780740428596250957809333368831992091691213439655328730328104409704668343858867131399523557608875949568972201275906148791830443980986109587548234389052077710231650877065743867878130844068729577060343334450559345178282500714920345771167264703615693768491343778764243786063055749448204082343979564020528161950624347681544234121299847130512841522589918646755944278052015047360251017203378841061905851486155117953462850917009641232678349542781570531476934830930233978144539890155936248766107721595418195793139330439545989210708628802746222097610343108724843003261106396681663666719133827503264901265400815104458938410553548820966005362452158454637501280029653531323597351463238792539326957695732121154866242404428795103796471200741013157404662004830880047276645885723065558994755121056521164238441926928441703900116572226370581476761238962591742127115267749865887148501328524925646753541573519363887811558166397371818961299859454753102165767925619636117493923055238640415345089376342102113968401733452919428588674216037996523453012257207604643203487190994606494836107975025261551087607189895264670894448781028704420041962852997378846714677663356015334174300714408534472501236874748065888995581015736346510779386520751314485708369220884645676846681141176953233945452647026916506667262072117966721766445703036510425381330179754500199611411537959378783933348839377790064671009519380792365306901871349390444994296974235341162235361764977773802104255302807610958641826933372055715776712852519055654126112623405967979171038541320197077637422216980279888759608405444861379847320323097399853514371910886069764580607211906682851935606053543314203726445635009573132665029179757224711326678015876160995681097502059786403174662464668667981825481920057262390050330194977503724531248113584717996080418163636730419990726666188720296756459226153736357118860059273959186472851244724447665253500483598168638120147161290859403159925109156535719211380505414315009140200337830715543828709821165745996691783590941409303059571223185816329934846987021880647959111556074847609381555878968967307711428232367023033016997316502070304259274431426238227410824683293694787125727302801040624156790369093071059441100635897117591713457038622450802673430638719448452139775464293814981838403540729134050025308803284431723367546694318826997682126645072559523696549758773159787564466705316935519528507781435956106111422922436294627197374178619044693896472125359414018978410433557144280474534498362432973124235087043553871004299058683741354179902569933012567937400691177065665631345066219495744125626702563280017572731278647485245615575239150846594397180972122573461008210737765724855838692703929433301020430870855113802732979003301391635069741472734217150140004958793394206631004093279794308642560861681494163047969986055398800542951649616851608494992783239996196933013480531405319375929314334012943096180176386114690655922389156882352277254615922096850721573981948706962673119259907127368026640904192691763361433543050616042476794406408130735737404665521914029453161495716098263418799472247418388735863144462413073143261963117460196104478094449889528923872755778839832104474695712037133899021780222208931616177837133410482337447115391932231130268590320128076670497262238508441203588243807822297631790224906249531226912646988108356255796985056354371209486853544177197382060934047944067067313215241748526631672567031343625870149291076448758883621465464227515122102071477890818559510341869909920790474634780510960170416606645390599830084239675689068228946420133179871976829676980101476806889926309580264069418107865533117670246499804613374783813019571325921784271181452225386735834276889290163321242797490732546946125044732455689516327864251273329043016115056383556475416238203779599403905932478808874982189430446414983459992199444001504420654039606688579553432596140290569942201404328490945414039738819415585481957448973207330655248521871100083105936651978370911753477722372354620606097477518904243305200667507925142203652727503086333519159884603196617857534333967945537885942668247442668379039201557864844310657176608389046776452713380622518362891107921408669622129399970709493832571378683314764971252363493541833688002349467226525346567540839146462150929377501692154922831577817795933273389967170703936443789062331293521706270048679581425309786465264483689006745564837272697332475962188778924742404605019745192345457418354176093547995014778784116388891952290402664086989694004261288090984136818466264564879471471125427765374261219796990117921976849168542760291261302150440532108382539412411083998107422845681960826848463054601468384157390851059295403225150235258606272326543764608743683121328279350953201590819451689215137871743225944461733720969255122278995617096513322226319835336592950657069697697753872666895543689382598158990690616715500822442914216646736254357813459225281027507040543253130653133966059140484233473603946547403250168535615231220335334469189167233552525723816451009415028461327246413350411616641925341437300651997978239789427099637592757982127075920738641884111490628102652712311997999064696807035848300558575946910690020006287579543150726495446726965982107293008811443285843234930525904163778383677099316522366942317175093800212856836659879866347825369444970602325246010072893009980510714913706073150180435778001966578062710528111988174724977397537214807169527526704287750980966026583496686004639595052716962915207285367150374347449497892921988624180785329174807173244837293188628716042029818668912785043875849029600592356996032319969762804614916124748059342764574629499513959228955849408998867159130646141042776310195035707412849464511750299743624511916426288931006117446086173086623116129812031593543786153361313484168206609209712108928804267202934514883006555069975642844667257815446049822410500373448111466857901928468916187010304268147803601996324092811693994777878890829165716890281749295354205874351971440058281980272041484859879005439559873362001441463528012384421776111771652586190609717584420792804233516357104684503398194896807385039646697529409029152162452177090882843842983171005884354046003363229163092578501253633616584349073880722141469547224657242744342215057608415707526860890161358335924737249892981709729509497119672552650644832397789992348523859406583394122689027461270124570918695594703679611861924487232867185590083958018287279190889084880182104142098343769408881140535895023490424049229648566355244661257122935251158264282224954966446243450914637745744291948183664913502729811858430610631838162674192172044929158287963269933891294867281948673029698603381629395715425739979696285108700005602739198833742385433954673622456809941783110333078315554328896627464138457938229807999847618343425183876952047511736207729571159465080914373419253770727338496648450940023610921135782575039735143905036686737204003965803950360034553520698309377691673055258697198691721380992376875236612667622559465044144612632748154104262582554931422292514631318963178949787658405211244169756102505203743824798442649985911822496481046387877049758955361349365463765328491081655964638282914784827594349238892782915998720635331312368644202789278150341193644796466635877857655772043154353194459126054513988781145148605010131691285485617235996125703344227730632571497932391711367214155678740470884132194984201034874158706414285934213965004610726509116084840872357158240556220404110485448547978219738792985695549481513160272021323721586617929241129913900059949198726292935631145754496319051272832204957470668246489721265505595107209455952292614300109437910163918004718022373473867642228677926059124760034302992045751404292608493832404181461289612376084429445720185088905465023831994553870832701072188320329849437553093652164302467420562725963915472795262277033036332350145690337636006127996195311353083953145749371899452276625134503690977525159983926803391864778840490249048835393003916462201322189391418478496650849358887894907328362515007442026972089349419680303207945060570777131875114009715401464888459277509142748561806606864221215833409367227835800362406989893182505696834052561566820642462898103367657521474339807175594794420002397686868002670531063235553628120494568734643789566279070528889845411100286945308752138491010016361012310687305925809000683549857011738390364861604159493623209946147714156634695866199500732536306239029772768057109865032798900933378464419737389768272211666219987818214011019626550145979685482681916171869048149329740149432170885849603730874333613525936650752446578672385113132117595214530772542759737409635274304894086987836418217046458604711485538646575092277260409141922396483901101523206382017736159777579306205667145653763028051904837225913932981773773867331597113944612196148419272594294386536636954803628817269363435111081448272219811887712290144283785435533213362778128853760503160424096133447604762596792850437856036145425163613530471370518688758286174921678545491485031732219845276772507778765567293708952467820194717733028444048068944589854012826542720737257585167767551599892078475437263580720208502687078610995498119838267413727927030632931125498944579334933603200370686961619007324762074534911722352465392117784201398447506495582135890820377399074951118415269601441396075287110975537539812329516413786486100919879915148023725351597198937013273655089372179998725959794028622630223290048589137072144340390716369304853791297199464551041916925033259045909631902589681607888156992552697081660376815865852916464369520013256878716354765321112707166794180665572224580517926451684594193529354516087290302450873025051821570639030387733726466778826941278321376099086373002720994826479544749206169654423870575830131617268538637611188143120086811706023984981640253966116961424238039449407676059422893501212343554133081826531165933666926772803018104373274816655593217915975529089938171893102426087667184341440571546818646490944771757921792646666322109144746583214538515260000400102246274200983742315608948011036575172723667126660755909606669202639416576001291089792518154580613579486078115006488699532681726158191935679971079406863139457827211954335645238267887996350034768446656037604017133992254651257852187187388734676148508735371764794940989336981096974808184586411720793882567233490036054597709874237380822306727616361831614714840099061669879797230304228729951346365615776485352416783049019455915677272585805761501746379914610589601074180810407176470328039345514680368092546156363060505180743388268894707748137783485634215806750707181680823785832760532613550699327140477973010611517190258720350175117354907736989035734211361097829782958706247942519185519163698788551301124091518365447463217362186035738129145585617710730908891679898996832464093966564268550415992908670432792756107290229804449660675234442938802651977655522235566691836788472486603198738955464451403934001787180447677285481954325615490545040136038058434626384990282815827279038602671958372870123818164209197852888344314255260341397055825575845232963059778834843017399733767950797716376485053246996504419022933823555119274820133859351936155097104717221865266243737130061130518944278194992419613051047576774031635750161540606791959772176550214439499724074533800444990830129971472730687201504899667272423375572572157449082753825695194721325528007152234356730404969697181809187622369419221927890679894198266713972549567791759202079715266193521960772575308268718343226125413182833290060554622012303511894503925416618265385482931511785161404848001345952647920265954002243410126287964052851512395392262653189688205268208069589679418285369261250583597540414870347538579027631717112458739203105257682320096781320560378001948422634401092280857439886281319476701968679683616990635404769497408781114233393105693991320168739508927171227560474669527773828582751120007687863625746588770392376919532338917192534050960051412874397846017455579596440176278828037613038605089547509689285442010780923902235788911529595501678841556816333199148637738886337377441413386930948391906905719987393577834338657599779995432835196884997543165449341839455126662120827685524121336096518093673311754307008014008997059669910779207418439154899103942639946326789513786268588467757356723675711712536211538481514757447814803854939092000279643403643532493169899968913610192485828788249060193936953503096763307534021239923151826290733119950869983737530044848584650554636514565273014302190701347036275947550215703196635841311492568047874032681822019002637995190237630947453535884342916002197325710054533121252233897457327881553125641947505789125900700402791893050418652888695855301517899893743555536888088340853142212793113427176082190019445939680017463003807429972884313616047831431944831107046724107063875489728364310662095494081688225899542377739384090559002657272461862708857903462382643304108014750721056713646050550904566135273679213323428905406254114137787496608028609933582621437600531426306650551861091071854718039691494040693141498131932073963221441999139420760067322356192116988192301976042367811273950210176843607705554423925078022619944668930740489814005050858981104814048582182848572955787938165925542077330925208753900183892224905680835245601471010450176722894004293164016840217941355330667844938560791758217393268311622274950223256207688052353257641883414121107768878061406913536909228633047226181032869456350684677588625673559859088657448619974856324782011081911090585929904969333204137566344541549937201158205464829497810588934156430370190008232392941443768261792078201894398454494545158298535855582085015665534054941618615249540497923222005175162704411847507217123894381926237698204874364349478097539172732909723007276731808074860234417810640172326437982347797652765342870478351699815106415972164869631495620864701194149845540594114032133084467272783035473809696354527574090814035469737008077787727547185279315247594371328276179551783490736216950360725849338120718729258980352295088768117424185173724172564138468316905403778927594501470612089583408868355382889417918359813710802375296644619587491708699432743822091887035344360978049465684785941119036477704994749450206604249068708015258778394786463540778262649186153419656652961821120742579969517790160730520122799854844691322937446115201513895883917166363950864337220845939367785261681816702035383249575002944908900743860748293207500019527856722768524123203698198921353694379013614153859265395828671361730404969421079378822610672942533261463828750169769617829203509992446717801182521969628855871525493744916177547445415345334164017663954311630649854415823776628061882260552991256242937854111926770673268032177025331109921808503256124022052918161561354061802793596950882506355490603075448879406604572690320916394195824919168165531256302212914972421042705850584579650038470010467644085887800829950854635831522875305346829823830212608644664481322983091936952594725529486763278061200321408916102577426388054058202004029706908071998801263705173112508388876243283598978564775489640946622683102714855808495331599880002702772129026008974367139519283377263783137335384791687566990792398978873495422916028657696926924979765864822293653599105288627179339460271962553286613220047973796339514426666148223693228406433790945215236769204871275126045628819106767630692906886492431301770807280085439456751069411306671614663786941129486679754774980724704050785461807908961286512663612186415108952895801611836213522819112578551564710083527515701109200548374600978938827499054349194292757225513445150634626531723838916500447876324459338004331934696434930371470059902498080558396349887800609771522506956534448918039540776955471671797210090764390539111044233423941009914842944870469729496080139351903888045000496900717034418960523661346452571947085908424946126069716551434052186668469675056596058913818432124732625317231663281525570016212105707330094348763841151619685730167676746529630627673663431654606316108641596439271076979532907410298534075727228734128151326224730298058695556749777236248997242014370992426109875805709500205226649308703864810938590908158882013531502263123863136286018386900409954780050098239111960734039549881441206977871072219997365242458745722417714551538489825424875205233073959271882497154466033315596285385799854984091234815168107681933696223584905899696471455746930374978730945597969728406018426056925870847515523266479682168739943079496667825222378007122382178170245657169157236257892293084018846661012195139819225348065596878942791553400561708647213048135569578839643626254883677062018986909509979874606956191815157225307758617558531006509204374094157504451826958812660565989366740786890366389086989906689409456016116317018206821223341736763857555137946729179540840924466138770231174118814491750197719763454814554969710027119373630248713085033529411809727635962666436756627873664673866276421528227758754503585096411199041964029873444075370615212422135599332475765002040413107991530430104821723028499120853072467894256898185729963515929307411927150888359659773654438260839550703691771307771109673123444742398085085655336201061515138661771104431696939952459664867544637422442235741787060618947458307259681168905434056702524186253264940419558177910143268525876637719455291020338405829485695426946920172904790291893822393061991290541232867052323637359064198449025375706207102889493541923823146420581069603029274239409838603864081374273314819618088325915866187540642430017310953343484974614171051488864830528103845678499882328297617621132897662415024724693318664720086199382125195944553682407538189959646092164715835249496856866106285853603595543108856765909795551504125349919535696829135702125262181600725417595949898585882438532370923044987138867930214875674123881351405091850298708046749191952965774501141253093207063407203784512729039976366176162217502958374859599808375669261078584439599065902645721726454046042413753119767053822182395911238368844311055472617913013420685333700164671635514329888218914980253816707904669030077012918954489548303242061100610845833740887390906097320418127372775834631457840682729461389653005679419852390315132871303494812985877939063766980809148733091816457469583677553754569429480713914660561936131072988404966843035379150707955618449849316696324480786956944619012877523336520748328221742255390039282711695633487395893111211762696038187711247382284257914656974136139519731156372145269004358077258415755780600888549727601536910171092114257532070820544635571689137640844466790691128191152432096061355647954079738481788637051192838081906961292740005572726341733955734129054787788150249797107277746088009713866853694266782242723732214985324542904673149822154421052206872416268482686272783425220418666625272308097138124025189531194110656378357609407519932099339915438850974362623676266477650245783917490692278282267071510056414193898006150121815641968109618553802688721263310348289878642460273038369054279835668707345982879632070657794792346144750414810609524240738881544303500444160610267437104318664172532896771172271409077583793227324649146102258210426691767890808768483732661848964396873032559285141240207664452012757606713855164769397180674714028789872533226436279233152738192717014439914766562287879366586835313445476152928812506526789189588557792443793072115183648885861024051635327240459667373974794234691217616898316540161953603532560614939538796863236816799275234604168261396007853290125286118183483793572110134796048576111627833553901487394239396053089326324277897928646376921097457619798642874966166315347895642115679094530121470477099073054753153690870187645570823318658313205648202675414859614520061520438222405432386280996936944364937992589981521170113901401150336014079204186756401704160324283484919810867816845469645984438980172604490045728220315670120125678232294371535886611211567072040908242516437293732183138078913819351152290678386128874785365691407330645887642654506991018716170336728114601067082680498162995806180299304288003667277436766101813433706757778421988997403487446470008297253768699220951291539398443154190052978187629751973983659416334357898873372133978421272318581258940254254389589946212167214578971073577891446575697095170188644247218618119312093169015988084321994769978770274870432102475754828878039387872307469308423061932418029850393147274805503663896236957096289838265595173637507204804379176060113164485940362924899273137044863127601966872077600482103974110649103500349017556347204354928399013020724402344890015817556269176685134970167438350922701394860927947901797333331217082829520161250905950846850276810360455325909363665848064281817093752491430164802999426173592907249218357253346624350077330228168079265225719500861944500819772280704643424030832896513844609502475418658722666589979060509659068236217333163674783381472419016451730049203370103910299989611804201929202632728954042153467988554263760848107696035463888120680628845852943649507111429563859392958289488914450513716527734236904028066468958219961977016529065302517819723839027661096975956025082201780579328664713518555491048049770043634057598148841102891747075981647141175679891548214749223265357219099429091056244222952147129886946884475080938877018445993531514009795291661295153989062307489409502621036110429550972829467548082587744927858997776886114555895937015732467628621939023070048606811379111048977545925341508751511850232746913038780924810890969279795508763725799359382631471955570786362736961297323753241165873816757149761444993696902074986206937787129193476390931958656430800792719046450989809469311886061703222442460056478944402087340341914189441670917834222080091278763901417844573646086477583980701532313962986878251621188170096001446475093554931315084133864179468393858574978029668232064206972046560870606285463095326330745010663395255619219416431356869954870128787427923633827738692637706891572627612326091317480664248229298502562607278958195764213958733716852406275015623907215198106175952940920394860074910972831571092868207371915676376991031976840688668630774174041744309088151610405268913652030317939350052731475329843517915396215812838563614450333132319307966928343466638686969361046824412986442769987270380626552423689057096174335482353781189445860288690478755119546618855429203918058000868221076009714283088174325233312291455331007711936542923452879540641041603810139311011740410402279508416397899055094565448192218313109206117046324518606683847112014101901498789081227945623281106388259172525480245548228804326517102577877154789852892854393667673908242232160778663655745828854442973374809174041979353469116778220903206986767043763857680484645050360304248938588774723920055510897340544122323078157881022641000642358882944394557956541553875519356470995947568357612271044480393579835753926052240679392536638470311751919269335162104492823078520542632644640491040828559018890843404594180271884249412515467117843996587909048174370616280960809515810837646939950769364465380364050412254803276026462880492283141623435466755017483074835839641022982280381033722058979149230691717578930034984704637995600705229408604041203765629349755496366044936963442014107403301245498743969078309985332171599042596667956453156094378064515528783700904048222715358544497212119538624958443394360564604444399956260567916753298032492570926150238981584710372149585415365360799084870506633538549673810757154403324170546513713664293210447485005824382368225424882138124096790839482885589868786961127341403699684648187325989161804251505668299740198742328071131481534990664955771090010394817794265110103854910658869957715586483891514051955510480364632899776479860567598187595732299249685142396810805350441639966795579793492219648124566866695108017835310488415208430997671317875980516516499495560890307863313002205771141603153222298151623379215046318246068201270574608006840962759383624380517051479917283692236455498852304442844693199360331982659985455227070694958040547523077248225927064993614470734171077106930106505821706169694976557292178506726421057886129114335977179506058872518680969409369508932578006708525703326349713337131923459609698805848953110585873790825095876695568911178370136616065956277768919783070944965043537640474995552482820201751681252648912599685901821328883643066458065162526175150145785443536537664564175123659879568451908910106852836810612322589844221147710485996498718888317951661928085802573478069010244937353438730319276291297230811910121728166780243942013087698016838189235609118435502235350333658560418234660009603572627183294177483832129652460536799311073936188544663044387289629638563651208547847348943130526793233476202777456511913226217355927726575509716647825816123885121497475887474738379234543166730956522560936940399192880774314015719436346811150042501356314939992749279553119469234038887165950694329469006770360935074347007699315173782432360161400125165781746576458749416431072578806803909631802479702668341585056356742560074578936601945013329956603565838926875166797116067408555895817128096852749795742767190595502143533573542644507417928476883771504017805531945826588573984449584358187885263801437072003831875846901561179070440495250283487771538647541608065763929369189520207976717391544323823506882400278270374932944652882099068299695543559636392317718125143957007804213703610168395313415726278678872937420896459765458251064705012617678011411661011733255074851515782049257533606273556851563114136936798194254318207027576258190449133175166438057859130556871425491081554446072786364243029278970276018006101130289288465788458893623577236981161911984704764039395193602606806100985128261548313430526723319186036087541158330643018068870437824508910184578040765656925307035487537229654105982007874419642602825836912409117620440425955433142547450577739609982602371872855560877972770125264568181859687431822870319409523047451229778650036409541596359442775719915158678151714181144345230205649611577142177527339214615391967328739316401949521573852981072401362436737446166576185840094302501854885076143445264850459266482953142163685895792347800543688734004508090713292180443448240749177754254392750288607422697066615564760795665349531280046606446904968751057054964386481908500786208484907750239772108944151594753445259244391222285579676853094655092458220568581093477981562241494803425116845696291104685445265783192225155977066307079575233327804672474769653163667665580931773176914851169739281157073066771276078943447023061033408305523208633778957627816049680655788396317044148458876772249200761187322725940092607030566431122322283697409417005417843008671778464660040811209022174345679790811847736084390371587771575517062682260417710932744387234290006054996346820834539588155090508085928881905386707122337752258886060079437150175455549008472323231462983704835607387897160843585678077968968591049053504960411789743631717749640351731595333061323498994878480339460039494287723727445555044556210504567061221839225962343480987669807480245560580572029420688042388550181634969319239143558617224326745766609823476477771179711991103018041078657825606980707558555608510776234101275549631087974522882822597077952125428375093769799766241693669642134544052780875163245855683896513788683847631770304132744626927747084918959793289133341019879752771422165158577669352657073977413143120671852883668675639413596215910340173048515897469417952960583299430895712199213104387590214720880391329762159774020272716094742479829708913412961497078244749958866017416602576274472858047066209323247409368893993574902534776336310409280394148647476010486594679872819190183287561440821030897969523842689097986462880559169379174336001193426841575524828089729842935706751466392394635591061468870198767458552952791693259081434138440761848823237205593492229880857478513470932156930268907908564884944639619591262601947208361356042194726837314522249907419409116072469235391663401610782506571004646043995878807723008810228472098448742823705742137550997378973871921784019457256525321639851534728074090140924583022622758727795415214038819854877444168289007224695812276358723293021912952457715963280766038669680125102009247272471183634232271986804535022372522034424216872697954431477161428278253055579208115844493605492466671314816599713438667840424893044716894393252920889120324505799321310703344770798251385671054384816123609419803361207707679699362847453228990017452863184515443371302802660659522385757011228878255147056582550300849834729011368666827292001297964476642472572401302991248597354377376204790361046957767806151271994508867965573484675475208359837617262295651692163808562460451775155713407495778002373113194956408969251041161744419699126909717129831075404571918889425215082802333634824983596290376629952473591262064185385655439341614342382223490982614375485893553633418184091484825585949219207744314991185703761125230228929149599015258270640641874698916246428063090484563390005268699072841380342212763958359539280702168445026445355629426738759288458287959690087158130020914309575968255101705697448017906458090888451020651225432525661252335311931309352126293865681342440450861138312593825104914717707077557903398828030614067155977732032512014142109256857281175768235559293793445376469641127299044255832127834850134489240976720756986961040458655087891728916142527769221564065724226935377906405388133959448921218756504885373669989019423664266790009780863192150124859309937480283842080063166609198761200303673561667886393409254837581543991793129706535987556420079372681939657196698234504560561702033753067925490204575311562046281963468379844065571853568496436287507080052552706974259390086287567048816609470209172799785118301411108041403134168384286082685436242166243879579492616051813424487039855572047155910431843356829504197754353853156241408821296213511789481070246925083040639835139226544303689891639872154926604829097488073448001418000822546687268532547294806444501482868397798803607385037616048559989410481062383921433279036592136293093866827719431569898654790231924080261187124748861842243612950082232808658934057451751141668837055132633703312770314956947084699500443198913179484421026750172905090239422093715574343112405657058270870639122355394534025134021374495716268601508114671390378964378685168336818701926910900956490206002509709423543507746093265070780920498259181838349683224108371247189818882513078525064666706454372484638489534854140819483957143587656799422569882122397076251744836132600187264165852302843951406602510305647500286446294554352820702690781691998690832398948015695258809666904588750224761685963336866460494797268676277031628460430586982845357024448289726068691979498784727596939310795833725794466739797915291060739676525754799091711852928707848843470890082872501339600613627723273603546469628811855638045804403655374292171266498395779452486551165335456240035121317038113075133849031288868641153752965316349869717717797970326450941063590942492151213194550771606958260411474805012371912404594035765526998099581728908138762827584068439151355895988931863335653581658024981355461042701743427091915037135470929466228424794950510027345832260490161508701935074388130861361174981103500716328949183000854247316554166826769411704379435621311751018124621556668026847817030957677162246425043726751004002154045448323227823875234179617497347782960961170643064630658075382497617675502657825832338299902656539854769078037228849595808302327311351391086502568067074252278158650242860665124128014527439934824473044898865773005289647553468680522118608049962092442232180587081440182542347920958085921315173115532270564969677701960967819547453401439705797417921766568794034751498000317816640899120858705134691804329172612044669563721489367904009726301981915885630188096077598044029943059599767855065393302575879322112324679178362214061441879787902727864598779069307272714022296355820918404342237104723122786908599062462219657164550031629221413946554524594435570763009302891785887475545214810199244564407505029102960289039318422526802356305002059360292030860794928988679302042491366895631011715852310079959584463631162531661299901195673824004615538841069501491613280182335551074364528919886055297756179342269519284992377352845270708268741637068213292930261906500728603027610962863981246049249669302830798007977574720799278763339686194951424709075280645001961490553360271802012651037342281660950464149723870698631295408393264753145240755886354603992733215689925754373897824593574515196422822840182606106364684683755036246948685201863493640138267768280853127279774543534005341743736068019288576661707702318484589728082498041901207602436146906310685063816662375721658709416579237698053968692892032527941601705452467973874437396662179731961277178199813067993925655336712777425923720452651021819532107516348321348188953651524135708062995659684702790609195760396673002931675184085938322690243458279970019223103932166968061617169144669656920153061204070247461050530264989945289231730436082089715712920449920639717139910771997973886896325418958639879618498795099595360978053484213477446005268982946669445454403147848020021267167058498437838578201586622256888440488849605788400733938117789058997285923455948620660456177127066413144444021495642326666302052032420400134422412505300390798053008523248794409905904351385632245011634885912060694320449445443927502484446705788836711875425458673265130834597829098922171092169556158294785647086851183172098376083606548691276405611202200380157977166650427739933193155062272692790795504592345574976437235108026832822641463361923384873760597494166253263688213919652147891253833007981038748648494796579251427522045854967885515859152306822894994511598356322317097072447644324336261381105455400795209459213475400554167463181065688178569216839075166065437401792630475089406617002394337980401015052702574414851053229747940310624030946879954121908149498331389304199670132226708879177641492388128737724865789018896937919646347827571770200659934692723706964013379571137010258330622924660596092458749965181429498440104816212214772835455324109203316473135731291753808244157492814138916270754037750852053843529495964043287778730711410163328545392324277721561855782036510340678727551826729978773861999651669891193363343784567695815266978715409201087888711487568201858806993809739861557623882952373692134155220025741983846180533299527404687970013272704546700632428726036317727024053349745160971977008546258968722304063554883955079309094210001764492650252209504271727557016074383310122809407200480074565839586570905836786520592262054278178470956096353550362396640538260942205724608593019001425599968819645795064985325858182827277779162494636683982238577838262502587724484783645544150083059605016973121850296493870877713038103494700732065071993513539463396732188919311236173439069444309522795873985801723489519385701139074387329176036586337282182104570743747588990474991233083855850739801683722788665883344144249258650049741710047453789216218808209167188574092903446145880452726393233605302338441997211936112762896812546966524157525324002565258735021465091095327942392327573752005307874628187475280748256029983918772606405737181588327747003013173762768360230535854252020437310975959222000605161883243985143110288004284151128162006885800953526479659812248204552053972956305151597046462817897995319545434002595291943434903217290937144508107698861645865573036743975565243507942702676791325016807242498472749311046887148570195493102705983349446365594581317932342601633349796392117204664503605152592070325755952195370174941392863547243508739613107967224123078225436474449340640097738294101842110480140962175350018008114316797427573429175788948247027309853070031244522301199718354913451288677250160303743235217248967999512168781974680256595277465815430336180157980102765930595933610452681431353615056654246879148993681938856427460087311189815291534698056921357396241378599726754541117549203201985683974080646481416620632755800771487959366144800264771052127671378778470232473934198526171475710867745222103583870369098675710086107566331354579769101208356818904194431233642727285924714937696045348675972733973967074073060193246610827319652995144927088869106910369142284709280138073059445050029716242306260073726757975892552406325078774295568127997034799783694254028963208769215136021808001190694832169350029132741737082030805071936845414997411542220158373350761822376538466882693926449549740408527659115496633203715057320202905697563438807386321181145258721366940053545164304606898908112307326300047686023632538077668605120999511973741698382629188847999551944681787404846309550448327404781664480143435801145617885512600824367830907645893937722515869899271225450257297148315604144923272585861568211070957094968241185464546199246774311239507169295609481070157696584715080068219796378628036994796933248495050434447203244503565502748864746686829642217332328266223445100212622280716668837775748032926319166867690294281298289326132094123669144473054965160178075324294581219788833741810966738472206955216196760740870928565231986308512332474604416713751426411076960005066580120208015023790436258269086620762319754066885272317180448607486996378831429437206145371367297181154652021544757189628570555243556769374231122463142707772199559630399182439739216877569275735447879682161195882751010146309809309695149769721330451815927414280036641061001657876412384527655171531663420382463525789980287748724888123124569027957661964749138768014613526377710732398959773218653146118419473675785731639808445359395323077388827686749306476456691607887693645646962329905363378327001648706690332264487985261856810032244729042622478062011615334081982243434432460325006340405853917012151966001117543888101320205387493808217006848874418224883779387134725369608511825160724531910744847541609899433220602126403407254509408893292934237937627200526247837488139391448510161501836502919152581014321584493720783116625976073498294158913301367042868357972392120091981648611884605067067515367058308448063447258938800254430263794017850893843651657923635489602267696377301926261821188220046915502038053083542316449818052198668147109693791854619784877658863392446455039556081913676515576866527443141167786943477853341885866659431669539113819940084863974810413226351189981995803664553069905594466852679906477412719227354368713133292977423995734935307875226876621765956768511363979172511423177329849952473040362802500498810954690145394834001300142326413417219201953742030122670305513445254330450875221636917282816236540634483840105933426049206581631108395013964311340315048148517024268337214755360499282007206997648218281380905544793981384049084002973116550242084685289550075936919576406029541098853503288485459626732276067671787594131903719171994770308044346099067314583740247875222715429972318778486865727255740633105211728849056924227501788518561295097660541716753229766634482539851662762898829056420934577363175426689748438821367366360138762915464187004306792317782508019183248936180437677264821147004582066695514608370649991054517086249022867092577750807228070302155216959273015911873376091518190992961327355650216167636983555324834854947363652883313263671417845504843198904020036330637506786849970837146804115227950853166251069495172686599127956154767056630944065553422464112744934947943448691785320151917849845128351617536112610303328135323536928911200651571104300991287035243980522019789328865071476098547482810122178465002261125983615637239582588860884385492948573869965786067667600773478798767244036212114171725174725153339169875028031066959374922324454868265790250789523260595610889455716275083317802933364456050327023527848390721177408786299107961028930679532856260099986294822488814107053285651481125692387882673251743145697835277784854246030736046544203720913677329845759830529626086681311816088683710061004667127349821390189457250490541209564186728988810167971141496749869741758759178352732393035008181934787332351715810039629003305057215542692277056053784974171488971131359973516659400925042176567228448679211844730029867718701771266355657675711160927269931937480637080024598223906368249710585940101529869027086887331097142489258346402857931874655831623590418563463730549960545973684438594956936683853231639000835930652489415890322129916901445141325059048648795751277841762014318671236102062271207880318746161584713403782084604846518293982392187520918791579659905845673682705578436606995885618644123971611815376285263056808540053147829428879477527605689609118118839653957918928521750181415016432852198108222522101173733270540737361736485043676306089380875440511679434192165113949971477387020599430769471896575745086929622442415001811322366000016437073096252326133645009778364275637472555613040749996510934382529029185323070437802842050215427876912522512783366792946988309194573017629582722080104698816348773657420172854639820392350599925151061245054866585717072583936735935450604634448766999197144698495388993065083457541457249257325852725633402969951870964983745476844712076538814962624578501894535661740770632566542943710476353250873377496366392648127650039994867876172692735899335334871767250526717509870897871797876367441077058713119061125616274491626986804100444416469537911971766393661676181497456119294879360299032643426787447836270921820034189601234155772686599266439051424413183748791564019837204335867259519832935951190843948731430898368279222637471951906508602114182749356801414686158285401477883930981671969120262972254299149199486479706984351013016410343643979752376493866416611783904434962314137583638260603002380432296389529262032883969729108555846791032687386995649822194028269184666815590214607651294240248784807749965608311756272330691730591284439658876408620800314003678747000171571215458342370654048729812355969767982443366961170775988151591817266888202138041017782220284417242901427068386807318016789661466202901051326055068968364920648154353350233798811940253501918041525341892079969090361995159610856476538034220165908897261556675107511576679392831490514270082015727787814584468017991179736967251514175267919340595129942588610939194087648450587517798171346019124952130116785945165185449110720314733788078472483956162132943772309936519430597209430288447209899977282037103172534406637914444863133201866254949366527679938945227305525442065888622066362239833932272032796615196357172609304350222362795546466640930877543149156270790561430338005814851676853486812422142866214181173508758908991553492672551999001309251835927210037567153353883306136840173400378078238320849033800303559615252724038775140402947691452484654241949775678621076473621564755110754467419893541428459487778002202088799693187015763015989611653307890548804328741510291760353029225416976106548944709330687657482645946453830559407578752969172702457816334466130793083859452774056805330109321373113822662129421607431134409513082230515449919141018620018804636772520286408583864695358989728603376204691267295015258593581121595969068584826697717164135717025509333116123855368769791129317305535103856564303749156086809005098398089806449992928022849950508930552166136347998480688155569613785280333785232941686194834185853002149418093325888762728196412038496097024608842661479126722133368026549696947219826865516218539356012302699553334662758713619668426881236785499646131593240501709714367646409958136252072969934660822676681024436235177054886408858692313121296295215834212186465508179130179357675242327449605700505448923931687738075601248480671086779742527780205763784624540911377541691860809072623924193573336415870126545325202015889070576500916178864589327779461990126243144952893770956193362981545305510204485933646772770181187314752645708729043198801344354823143893131056542666212881983355773621068229941677558942708106011547832985235630760563562569128793416921974885370209173706582054185811184264921849334867440501531790571434279657599084745247425412494203761511602286729211406899539312883909199973088066161865587314414165436542328936415884108022106089439216776355742913292629166299019265738059775268796056466522612004963445792483179468672278971292348325838884785913957247092499099458591090098265869473199324233451252672890804992634470074148900849237166856557519356215181173388334821708625414284054764278218114048147302614629377291687729154699269759576374492036367013873810058999400010960233547116381120852620599634976676650230806329352561588227246890090432919360565742474646492521877508558050382738493898518134065382943028286480165998086326295682226590233809663474151661215793403480557301971673320385364789778606310109457648744346866242420851159741147585788316824237941747746292252468202434819269371542158361573225680250295598341923177113784754798319227484573565572620319458005126132147333480648937346497994468819078087421696434022832774107862915168757402841530375042143460281536943847037811454248646225109570198321615970346974190611805763171230575360779216898998697321261120205582898797383361878808756297124954531352513392756677538334285777080689258840532346289871969515611485294268657731098640277234787837294060148762390366936387249977433692455070435930816567280161902519988233502633425755344715313992151511003233538704747912164241512174244389291969261098384948098714582898664010763516414113454999427150570470957058161815800076570697336138905075027717115735906970849767267288718479419690040521118888592826216348016299895391040572878506485063070213055062727022486769063580889997133621507333911740140135499194338097902242795829999090833193337476119318031538974151785087245388749637662088886934150572357600251745658402014537825620051176799056877383637213659411390981598403777059391868936075792561205587240104890413422993443291470572026207976521450113634246067970340541950520347045447115472574498878828420550395244009646040272274642267589203338091611599215141013037339770918483288293295061521012467316230748346640416616836373776015320499993100857425720814563426220227442932300076311878133130295412738064986184051418014130163950809737615980911976621643354318096707991635377789697251397904095866383226345847139206339427477107401595301676542246676737565124197996920619419051843524860325117457188514209249639382771939875435531259901806922701000749573393544120207098328328094015192183160304395528392402343607265364706084097483074230156047436531357848610377984589570021393186350369580202794869850519206485520897057241625955425035519208792965440670929427327382327085483996995347385944211198535573136228335797264373859121043046539964066903457624459701091134269502612684413016938024529527925164892345714417410369086631299364659042392317636010343343539691018578418435814719741595512786456774289010658631555365085876916334743259985094367448740093235202676317268162245071608877921757310945681511616929620621750086000461425309170696278157213498266425445130819216282013812465838444937898146137506782005123164911593802851388777347755197825884666616726289718676949639897450721864902042547064954715043504940940932318140763823794376015243157797491120404590852236284134128423990022520270644637997253098858931407952820921902652679629084533369066617752301330422209754662504501413614728677188196490220392452339000300492924444192286410383774383399182900827798328456777601228934038234762679196552248141023816853260384690457813003554883731975236741620622928373439603898451377507425885713917350673039622127577605239073052797586512584000011103624223504456418471603358724809213956435195991677112638526548897948003064889117869625516362581199820419667907846805069656732575296155260174267481086130545984925026306608261946125506198108906972428214941861200049613765212763273452839901381337759723443584652749917768029413855818206104555902740993171975613467548706818076210410238826090507832652354016680353621363312639046428894009291716077475033908278088696765489487281669062266684054551588962434360484291800332286404882145315670919847554289601588085216955899906943996001408008910378406446439590284860975227455753681712873704514346613902100973628217147848020241600851442300762710387542524212694193180046049751652760166845323806382427133221676481399775467426567856731593855695729900942324589120555066197348738157038658133599006490652229055981237325986795873943028583844469805984349187630281302733357918892830441731502329586691092484556050957057545387952965647093844386794383152889152559028231766114538943969625103134836082553163706894010229302253661835234838874286492980126146002695141477693628591637147392627464031318723593572378500384082060842991450036046701003454737084749736295227000967459813902363723416235609434287404903862078643491389284985967327375836694873817496923421392467294973724843182679347435152624990907199852667105947533841743505992163308937995661971903092839864414036304018789136655825583305291792469802127772856871657124354525435799796988023996816097710998682924482827450899528627552364605843550354264439433246282943167120670381989741732979610283594948510708736459373344759790347711782674596653757998359214185135044963682585144732667557233045523698828632031928369965151507786002295184858931439032159477274137345873293514001357445676028016943039345647680351165415299935722210334804555453389031320773753614635772244706591002438737652235628008034346189028702086873590528505639146745074920630696559458000939283298074390317165457064080521446537404377499949078131531444214331814595006379388632131546167618721804641132379531569646104018632719147333973391894858766747066606548013136442402508789567897624310522836371512124036721227083953330705113879129742085229109194630734447280280761913764170948942262063855734968511194218020145298890202868741616571862377209035052186395134981966442535239581901657724816417784921271021226468889457748873314438501861904106855233682595626733511142128501471736216933021315627819903582695468364406817799370099596255411686151979835896766552826675255149587559028835719203719518485106180960214681048023132103589569601572592245032563265384845255496601119712652091246647009321413041070836170565287929007514784845283433773581699331873283130247515461900822093203402340206824532914763985125360551272568563965586005999212161573508113841270567426890725952987271543472421497010147184006423804185454549775874424241562988041938039432627052353654533358360161731216125252145721738942936838052609831631515689728490180957757235462599673141366748841560177906791228600583132219006407082681352578829333677325432011856268962810414877165872331912518634181494919952840689057581747117622642388395494351539141690990373322944399440849794775314936423225297889999376502250317654163498565016508305856683552326835224533476417151083302079025788218081619389006796575387627669556435282516198620557436532460349394161673341578538935051423965508723024597091042414752698402577766618013201759140792742220526890787130182488773754713340520381193055825498795057424648395720719149800488221302997973745673298184326448380926610786769925716280636181029300797795302959846927170529192824829636316323147909726387953321722059327892948687032504592883935513550262308520104737382350766619169937179815572253988802677643120558767742807053570032855793195206333623495142644532969751573147424192779917962150531449458491464523858182795829123734931286992355186724246459241175860185832717534391281605661887017790006861866854254078966087052256042516108525906718862898339128526542671009438255613047571243657430717653561581138631099572029213713486660816125780054477166110850346563074927498700918738851768635758462132691774741145672172949704136260220373075697034290447893092478115685737798586153418984847339628330987047131137782372382769300732134480891358857005008188633200518843744765240641809841576782081445864309451719218250128729345685771257188491483183759457471468639275647792656871956497188711431600129731048498075448220023037772322877775879608773459545551683651188131111286262122575817526034591331339147236793362316309401529686162584432965579492302829988677299212776156210975385685704815882058842161509550099486179135960595480665499734502202919972386821036158726697468543498938891885558202962658934005276329413111730074679430110824177066720011943017909851316858757381689256658255538461846751766568308239185420256321674102809097957493717281561807250898794841492237521104405681062404088185318109945961117080429806615302575174089545580447590004109524200111456248262382441370407178290972411949116828692564269208532438825270335773889597063120116913906052801871830025093558146886323465199206248470462864783073789933068403330285539474039412212913211549676511255120728472543520755454872704057795500343952327914284885607067509530902218440216288564790836848820966697787672012173580439097191857868972045138223356468163996541120255734714398116072024774081273301505129084082796685105460023661517838013735123020443529776989975522290672957566615400493747491138881850186550061660292472274774971999429589460362016425417043962996674282872954314695698234867218345394514976210871660178042116746161919789142204783680943247289505187264083677388840511121011119447788893560803075171401579151272795997531117343405657297291186897548088491824057245431738910289215090240221236795972319455229254389381578995327777798473379023062870848488032466041522126861206113816588609626791144126876462906062588714798340677039551133065659919132933998857776563448419618539259921274152135305231538628793318877305354406752853218442919971929534157355153351160732987927111967678992745958051635260691091724509316663309874202175928507510760642107632923315876033195122957204244462682016243546102873525891537099750704554508992861297649780080969216140725989454762489398279622873137225449469233285952681288525479024629540637016513295272975282273935334623912860099368748171855948228105788473676264556378723514845332334220393635878238270486029649892408650676727908802104809549628668092880926188809513928353591810716625124759240037718215819945525356534060459435322854042599104439311916674225387342088030371618266044732821968791617703648453684000953461172146754826281803470383512221252656809137273949784916302042660597497781804155043265455699016057849879080130978328443402334992421550535007100586946785632534212024180691202511484051910158472882248344389384777109765996994975267873233971516400642477337005791496508651546005877193938259952290763361238407475155374858202766402398975583894180690423374979781274363408473776112384520882933991672043861554830675704486172413687053922054971135709255786313600402050755692231037366491219940056249461783220573139025475847511764076487821784837110187337927990529796003226902701551676578326081533205578370079120959720114581950790954861568430069515081367245393057587966339095928318470479580826390237516376841989085552574368262556183851829848119746041826091344515078245615729168581781277778765367060589071336973739824613030725840233204919998002653731989818047300940021944043861527962706027394750003135330906983113135233536007078663464179120999001989056684408404134575073060513647442535364519415140102189141115215225597180969667635179799131391552689408572500979135728540409213338943527076597000613840375086587789843766743558192407182197412589669762223662203014181217455733707277486074467318763267066408958282644327408771706640306680709654660177647773269794642095219784691109720608874626563458664235327314888091467499979315556401173038204066399755638562125835696372487198045484178883970708282698942038132747289646505376594451178129588140934037983719062506442769589019074438595258824910817627167605143447245704674770167582776067296481584287153467570589470329853111136497630695729833928959991649714457678145882766266515918308445505327525616101562630465465898060251411454227898331384726658750670468555154648109398169815767728841406898955380056373155724869452027498307834143278647497267634172572731578472472758893693399272014047044163160047900254265264615740951944992814468502859070850163578153927365756574958933521423071013803167665641662414819331396307196135167575091032816929274257934199238396816184918694794820095247336342334370064482530780059640224899128414359744038037783006503068600470298792231414863887655608353411648147861004979384708212151666731199871200529241447604135636675298788099368796438169256442021338084386367133916460308160624932493480922587803284433672877411793664112433242088759020274497981407204158162544606908022114905628404245386579536696239409337740124311477110821895084785034141538742092091151431054598826650861174919988763231515535082582546895109686954585647674581283921543266744084380972574342748419122138970249483889994630300848641312742293367115046891257433597984854368119177233058272557818463638739841136213849469592399024115032996511910910891556742062322689126770424031294305469709902996922842946971302272896135139965972970864174685029594274369731266270341796442701523242116757328405076304893979684254260769550116678313507079847821131544825020993175673481993710401163200942150877693956837081867751073228193009062543748652818117904291041927554880960151421869918097640115848676651613281824988227955155479984075614252358798554122838802619160650432233687018504548039275892568979376356532112914561667088792663682063875193022529872861067571191239653317350034266629417153514703741168505764113576827568613496413246743192515232267338027693915645361725983567360079778967023479037888414510193683580567492076550194404266588710264462199469159536752626085816601702374281620844233485631761853147515128144752203280322333840829252733629548788438462006857638254377997128573062306404862476136730730873057107269800172345079859652202114526219151875455493950164616109015488532822647101042447568574001890328335831044620807156681076272439939957217970762952259091384962533657526926704507713176934376667126638938438947749868278936129775168038687345081149307967245790907534517747753728665294216382886858332819663739818652704649932340263556805519851130103047121449942492025659546002183023951553687055143377416351294476344284066873740694859547355406857363082505420100477849370054389236572103911463837415498455345160985416133375858489717003936035416734709507948380377137545426475437835342405178016189935417163152004013623200647944217425760515458274952808691866096072336686006969046499968985098701890336374126864526782704567927596286038589730515948462249560587250677684570910122185587034562705210325154740549116659619309004540625219619779269305520959221614083893119685806010238733085750100822348463095486276600094766709125049949269288264840084877598611378329225402960287498017620144563719371845287508432478133383668726960657448077256051578669450110218456875162640486446223018451640824181415626756601913827752781491011527868216374992108962957330428322456653833648242261972300079846930310695929930857710512321790765964323659815339022665758784377638840176374049632250603969470748444189533433171874220647709194419265045316644276734002556433448187801356137010995526190880791998737627785080302110755000353947649622779786477124114603594404717759956466622361442602481181085507739763201435935697057546237308117861403453426404281874267023077399429733451075880254494605682512628888138493178847635461696664018908962256043481035258402153096398517127841244665311986282124453383575545544437621866165942168746005367951981108975105638400682438010559571745187106867199893322584819588226454311605097713135773813797278192895134218078039323825048328799549774949513650514131223479732444522466704860873756791634369190154234394717911703363582180231202310884014816703144905837122301879493361288671485815865966489461526603983792325837837263521552984182431757028317444385071436072621847642920151253757256016149729448242780658566122301663194136153597345191682812727025528340276897877162727068899510851401640252572054896916852912581500626603397338245499217715156520967569760965900832599127488392174380755075255750608228129000732257812756503864748076414448946390982631988026524410764197854104718641157030260111528845676896547672351342349054461090178697372745282576825937279436799480286644539620641405241581155722108244766842352189177957931170614694253082557833615300057726405013555449429378392927286709770874617759429760578272727489510344687922563125156338936697247938760756500474061943257226623568944194287414294819722048783779573356970412774815080365854185361650001872902149695697598302962157352764265734742542288090307015050744634826846061846962954222091527458326638974561193127496875607400587732062051022336091599779842540097981855509231690878669697111322494282680683485059271191752328582665070126560079998946192270772513410393786692678153655273361378487689471923181215257731715314405856779240545532651066092195537589078784480813089661542511982293085704664568265155312489364524478646405599778956139344148792184893671334587959264092890128618522550876851217500652407838379897626680637117740374451288127647730692724545784683649880397473849522836978254281500353330065710807906896467983306464634467864254233834553123306377721293988635601992215344253072810949277434642270034362995825758850547956979916044652573104160227154942923537116210235214020299435074469480972240626341096409462181783911918300428837733817262886851461976683737534268096315327530460705668846371101357529437064843694857612034906046468071778621351906326926367849098905451493447957994430693569625033406751906513714425724389053346832022174691784661842221948234763678752557092887521120195863700336198864246231594984632645121006663888598328367439347936117759064789105321899962097701151813294704833352067047779244669884250681800342193557477209667787774581612001023137375753146451728772009135887310921791682537637572273045059565001007966270143263349124697471658815333318106758234593697405901849129164963276356913333368553131777673528055490250303162207735188801220301014914037437634036087695002921104189688849722050057555531673996412900589559602605032703203127670404906994378353267998227750387417052496283331824613107716945363491826686829376819323688212768384882232485562243684415134514647969191102396178778411897504128198815702095939677128199771774831858180685616494601573574723301580771204523423444568523052618614471246034610944201501757412451303985891104484804780090227282672275966980542460553290401985019217492534450776149456101979346900779640565624086136506528066560105835288936898285302080220249232704599506533602083287996510114428265007200488106515096619649765744857654554096405681977069944405397480335608157891047697482158117558257240251191641942829038129337911398602944037135701963736798378232204366729418058685598375861084482749400797972767501123456433884228598664127046670077622714996481821822472221429995925919735492677030093169855217480630256021690407750172023989780732414431345807234416301367515769335579812365231797801079157437237121187706698070933890362867360138429578657435462649234819153451213094343795021295074900237094310729446311293794150223774662247898578459473308830509539925568504743813809084311863547290417464783949149601488988373397523558759849147943274486454237895142993605785845276628549949617630511950010910754009874567742358058971203516219736657718805222760969499070741159539291029775223266347381096008282743889003374123892811637347755341438427812128173486789557170986388166243464783597495080595568150571918034694152129644413220658977033328813536859448812043096610732681079923423774613756907376981919716758599862590559264056555075562012455434963474082517168567931669759176558682032223982582478555342850803966946401654623583384757642476744857173975324298901861362901013074335247154650963620521156886414405609531406548853834456234793236876538138286322223104932816918036333190876916529345628323978066170254561893992069273120718322142021846125253339245791297249152544198554474005689563993880501598076372916901034329039178934314202800816101342050919892630927933176921356559237629916146658168412652184035819328656199429213675724743970714758611344756907502719636030196064306946539341862527598745502450496942525885219398223211604064015451730882454100648344171640794700368455336893006216458582112103999503073642315062948409811462298915058849596822087641848198165932818498155371232141807695412769249529439573450163621269162360697897060128249787396461983317388127431192615868299947894166785242751942659903509764618536016806513754876657246556291582963371405236145150400495420534071488783298697050857382315432980993879000774781352905614689661620830404635179654129535788504903379142294347161619965762571433951848337496381174481546267372042709654500661772045781073855704248860814421128154511291284761469862238904634459229423912383319869057037704869703626512776450493149807082995793770677707478659627486488525156353490407436560232438893308775792879717194205368400985155485366428698104955699516483489560732667521902544328222278854400256570070853126459159602937604107463338936036473964811448747513894704073396760604880380061551080426430876795994092616461593548767872707250320343449780904100209025422276059219858313852911338672448945305390385890830619147491624619784362988689074244254092012163028390723547901498662823584180717447732789942840726998159212830616332161307024249205408141137247846964151318322017643372759736530341765620191596842897045535836135920084536538044057274523088586502315965201126154677833864385471031755684165934170773802077565329175286310851164957851123218602834489920147628064159237015944286868115040531427200875539435648968087405491016274967165813698737371513641188848572669137705749888617912390645676805601283728759982309102990847820952721505252069807496152456692081544166808354742769629914681568218039434241966982660013817158114300363680043363896725145065230184731619480675674742729388344248978018981913078763851984581980957971607809080809982359468309870541772384027825746910167726754065414936994998340036992253360898437747840593226584860291379451925867029972431889976639448089703587689941036235263299019513060270161903457678655817871726414845332951669233799735288497856417700795190932538128328875088102603730105248908348249210045934832566449169657027381973918750010724402029398709425570301228829048317850158100579219490988805874571137014438152902044110083741102501580362024216861221677070201495151566442564082175122553097042224072242484818837295793151690462737618758035908387298893539463305074038526929657158109669162102839971918502876552511881171860614180106038761008940498996653652539517085448003479698725623159277559839223606361133543229427342021965736730810406183805993242331458638608821395794949208172313121524759624020812902040433174892310806711192961408897221981743209638371477894536749777593101079184565510942133153070085500662310685760248406946507363352236874557335612751510110908894298330336500444573891220935648317541292552957565282387406783487610742135984717707157129053197870176576228797269143217581195018108048672092932555876853089489413446490504397265509843289280511255034925125491344660029814239811498994316244596043560517908595697572282685020287124786243175420181485502373497398681350759196320931602449920761002870802591815490908413646187495519190724856850964185685978956605762223974014035862797905454229954947115124166636835904400580082989631956995485450167126735720479255247886969727552176920803604016898521158150024686947446325414492683892288506892229111845296860219895747821781282787712141625110730652955863005727490800195206450367238807094059139184609691547463092243898377438885566807318218769496576542233503259264981856179034708455957549428801916405834598435146218731261066635394184976788089804372062310728095410062700284309691860684267870995300303193519616583459345404739718817908635805654640231482771611032704412039871937968882007370655672110368164317974932343993784458575267727537701902378930509046093300083729761064338634109872663856829931144865360736913996772812786153109302867974698667488684893736413745246238610546676506661817207494936392889003364211856043516254516851415428501368138506047283032246698808426826414340604420271722728004434140975892784824697567879687561955232058085729251796988243749721554311346677734090698085040663638244260304854965066852031789910567639288208638601678893633551092272743898783053740784061640358720195612127323981482333305585787780101649851507700365724285461617263920099656643706389931636705300997896630135864219662870653707467591254218481178470602042726536222945354164054323479612932284691374355779439080063765107930983589260857120335869324623631115875723043821337611602342370569301464423572807659916695049348144327238554309344491049944651007044940121655469375776404299417359278317269612853356626874331830130629402006775008235629065911394831504647443186220997996912021571347163838130697010548316196196809862457356735453802471949800373844175149833699624077027706766006262148761921199223775226152588201255437678005330266871625577597060143618789908949645873966031540280479476992447460315179482857841660656201659349096706494585311596473139002463608615751736965203056577935537768326665723523681750856436151505954888642158124709638399008361483384197548232761615229130537533358188503758648051510880035113343262042646672979879563663836101070668119107556532598954505540358765728201648240854972662987422001884605698463543999596841622282256031936882293178007541631413734755850276817202265259777660249479558478586224345070218915632432341779977592523847533174675098921823689759114903117607928037028256759615400267025507630685664951165648536552830491348392269646525502927236087542893595527453381869207789534576783497243178188534879285107734680639040524555388504397268483294729252386109129356170337661720052769122114878778845469405842138805884500773669286067341968804038092213618448555510471375040700911502419433164047390058099824348140163250497494628963252053203021454443660310198329031882456882420422799648206949899774420587165913129652721545761615886919265442547459030454819305165887785113760204607602235727491636119854143337431475391921456069645935876238146924948725486191087486637432950049683720275638034206749438658125671039113669892084514361840878423688785480090408688271307420548539284105398221369448792300102497964553023364909379892978536059773661097617920883994544837471280303389273538641716740273583949757839717016646146750521493447205321356517145551111828389302403686132203750409483861274876016084753887016608903486780995402713428560209184700350856644830148838935088512264605058500672569235409167607833065612467903807590167990975171571345111609946132730218397715464856199167533554917588161210628584338381767587171192914973182284554306533221425608980729389505659707143089837861858458528103289862936693624551661318963607455247197707630936542146330512721773944242877460618899149317934565624727580097484739735959145988810990585359638378904464601316546327225270858600448263322016856791752865333801457151392865912288803716777193116894499246507392371073378625819380562256882492869759866800165596198905217856310480551889412814551095359049146337875863388327644165769163414079771578629069020712506527265502272523946472119501502442031685308529296395848183271710469562314120239714600652372188998640868474292437929158435364972895510535356744273112804489950071663123331756174691907969317532749395112088504462368220737032577162837158689822997182189227034331565153089311033389170040113509330530764210207116090879664702742762349750489441631565653301673294709523370047604098603303582520503278578785211386521255149600410528918746920499293221152787011435784188848813263235480641409819670146818256700969411417382511197053189504325469851197950215799647716921366520963220920768950917248562681303551112951792836067387419716475418930396071078896902064159046969523294007210958585973314586105501523708844678756326416036595544626440970259507305900270712801912533439717672469223977485643517278317432288959945906359715006730458780330091744956395053922687999450746863211243425711120734111198654346357708020408449819413526547092878898768029677612688421834228026237047810970904064400763976131365300530605249700118076196874538210408115802744504465697885033917785205844068875317370749261741339721642041235820598422107578720655137892925985061980842374019822058564117173477339819275097094222764327744393644738420340896208385800838292805401338260617761847921112846513403498244604495208772169361889328646847186762994587257871106847409980454808012757902278533208057592811182258697112585604196101848722984789578088609413731170025908639373482139993414741333759928786430373004857676111870144497203158539038019925603389744929657552322858230421645243216385612355703293205319737158171424968463522273030851096011087645122088215772104084898994470273314549185608163336566893020482196842660633526973956895422019092212474777245096530057773804549056300465781690336947294256476235551575676641429718878449209434055624949194228031641803818773309943533979794014458089298926780632006008321144951893996118660342355193093305026100934266260867823333167277666305554022396853826022951171894474286755101644552255883260344724816963048765015239909512975453107837989758614432890948272059686000668354788896456283489897464623611707492673549287531410098635982534293013086469780365272501027283506853866535720091767046727283169345763392024666636431550314277724432737994341461704345995831902587564127796252523303680445953322923311080037742539152716001721623884250233939619604709311938678947206860696373244835982292785478804052232156574986409075360688018067937314622358865623465037329683060080907675255741384319116462869785850519037223824261232655448977024211111297387989312965209756701428519367057437518627622630902142277584978398228580069788357845469730849099645070648806447793637532826633374449158649645915926812571363886464353537498181200788446100559804485346974718044137077163769500364416605247260474089117641517337899967334017384444928971898256038849676921864917226971307492546740711164615035154702505520541275377588318451434221180729341418219103404652576271116809700661654435996270682812883223273599035466225740762550646336418559512563957137298917424281473424933738084512065353755155837888872424502991173901658534193491435743068349657191586441201543819721281252725174783164357303483551889749694450197581078677354142703267136384546487863066437528420865202291295477792220325688041039701626640583618882922026956182473054556795205179826176538241570951793324992524975867185662205760692953111810065553499945085195354931414116938752121478100435619936449966345101259197098818865890619552800735034950932991675752679565904555848190726245548984445427314602659672856176005238020595380720167567184519859377343080232330393050775609701583715392970849500858436851919528928143640854106515609617920360836103383065841424336741041372142549595215241598625835981325097781308923472392225125273042010224272124668367222016782784623716383127475398994229804306028856436386048062254432122736998482854671316829644061750441171979709113354641728310211927860920845587195312689582737117712058793708153102878268115922853966528975514586308292657033355224325388037030587974284820129215748711554440446830289409601694535771299769787786110662312561604907076641263684584545749185257862396779007370125183440533008182066049348814226448185090306679690171622493363197746465197926777909070230213958515563310365522970243385064709301519392101455332940165194595513724404034647045443374144757955575489637961624627456802941908920255187856140422498629897039918098226996381628940629097626678324927694971897634819615239349465409172212286280036960542436427982764307278938885268356842087787470252829868969618881695455678278663627353195735231219948913727820050014989698895958933653838570794234268584197044893425602566183659213769580273732716983223755859535005830558296243780443038808752312677307545075902050556602559532647537646147163840349280982848496525417241409854737738649731436523944411417589684580793002611402492699676721886376119724944532570308766718556662567969468337893677199686961798648166601965660078905799951725045630978651136398991980614107536401200333861110052692328658633785193688132533690963323061415244658317792468506928139550850041003034644379987879420198059466219400317414517000583897443165015269218231377050813058630793916596627558441970906933125790076724681113360353611974605686523200884836707575761676375706707165150191055981998894949335366452151317072297086775894186715432478326770611491159749906295959241594298520623043423281568307904142021878144189543781852878218469632369282530932945998813067645099362920433526047975376433498514186619883479031382401609162065563055871600983847082433174706322782132454463279586357806127609191179602472624534550570713067674276311255104728006236965779518802135966003687456056807380844911190644671098326573473358622195105473453996348023288463951573761231110203079234608641159336763279143820068551812634759358975471879401462582643451976450351819574147531836787978708842042636477294395620699196663008262934772384096872249517551210535999859970307790967275184428968393444086980029190021246789606729537814399265731801693649483093917122071180964153665218702832208428379438139154303244064185694391712468325298461535578540775784037111001929660109558581244732631934981410800773480113804796197618370581925648107226035706358340361215136332999981227794342352176062230371514838174261364759505513208747865084769404110114262019186865633482914373452502956590371559534675775776381236211974805996995416896029434292218355838587819270539642778514676634398669920652991183567377956827542980396623928865333229297112646541707679672850420635688921062670368688676065854028071880197518465500917473171964632591510390311142264754353292378685053338256499162356264613205140715865678692003008745645092984853692493389729982433963606817091750666804600057171917389322338643632163303797545978053331501186296671003378319275797369837758157373795948544289292447317132603387311442885159131712670841907244826391363672425689611341468759956022221190530490737641242688781680819649311420665326503215957756696357150433777699572243713533455530493986062663663045364824201856381033344570878996711987971710311169581169205998530974204929159588619998411254017733408725455378187482509343687607424118111172169080794482862284228924043418051983940717968991690026625246075650431602070220767030948852840546334288136812866408973581934463134466575201189381208913090828933521010173566759434967677566965801964109653521990737391945179881391888501504815480104700871309634035906270116948640329548282705276431049906943655202751153487201294913700242054699090599165389643720782495581180415320068691732764859850241107831340795410473730837137028234703890743915313299845545120530969934259153820630392615809714578863601971383756925228963889648537794794102323749889984060999052112002413782937823056027621517916753983057226042476122142124419063459681385801245894489298000996729687644795186303692183412978119835374600660852878965160715710224504174496292233720834553470711419237938839274018744495772971662198227611283958062420300279669429864376023542461749903499835067985103231469080538728003484595212675295150391332654750852374764352394886863112409629915918436387014884166895861369191599348434760927039659854669455011894478741755799088911550986518524551731432534452862011586400068129375929364807085110584282002160890637008113954759485968543373484766719999160686828480176518430543315091268234834663787005106402405993072276110585105910885397539423943651087100256655428505835577139350523971248420976140708554326940528947567599325003146951485670267118666920231708582419859177302445924278294553144680074613789002222368467889975448208969880571257372279216667607206668996741152993303444000373789286448852114813621643616030317590001192451806162550155729397613000892581219996961723376746760071113062181168504044149833564616919110619578469789484903144563059927023569954947399006652794689644511180756686142655181092915472847007686768841537015385180367857404693593885143201716085728143715925157911252989081844902389756588394267506930728371349269266316387291423746152329395422241403722013641915216853993005700404494697016959932343826762931743595013826075466870701196525882842994483431351902663485091580737840696699572024627463178745161192456201094823218623613307309868531592957770185099756212415237388954332046747070900095967474172728204203831341831150381651724422510500480028217193781290982566448764475824833694098803602730690703446674834129344619026085103536627412194523408479481512273446973450617641476223245148957385670655174289141001267311554380739341942996945323448700329201793769546757632565930299120737378164501948614903168540920100351054789703371792250761859954681925002158698016838653749336255301857777368714936582462712596275758161802539138097912470492588662899913037408269471860948320190410487050911476571530361126145857506487479221502465028682386904087413159476910642802360056208527072034677293017470149059127592897652794520461363201079705276140263274895308328047552929094132827831555712990316213173603149907890009391066132588349406416562090467306185992896031690837513805920396640905240466193499166145124079865730935351354733018082861687694622567875506721714051163519103537532374606257842775543916211243740856091955060328406329089483930544610081277225661589964283929510469438653514678912570085772302661545805074141684544604937972211785270809774343000600937419253692833622919010733141599699174915044103969842161033172010202506204390557534535169964910103284923898212520001500221911707712622154447787485661354054355048652213096143348455920792419026105973152528029773172972605160474461247481738128808688053402948953185251523527136672553579447724908739989154587058877495836630030969060456968985549511834129335197733204306661220371615077609303927797749289278721526965452788670256255300385666611381811733398245275933889419012670224686672780274913790245592122791461881213066246558677360126895432256715259158956343904421490519463179897710975832002317877399378334305347809945455063781463802641190703180352009013844485462912984634819391738674237012256963385090608647601683958579965242810785292049523979398409800803792712934420668462324022103195586651266624979736320469885735502867446950199668773615069614400901780736998654124600918083393420809877297119545736765193234856597857632306378998740871059172643692285273020430498927865428228239784428639004655965102084177598671372866124004163365025874591977228664969915886090666493317483720113879769805151904593752272940797306265046635174771643750112515111867773789911514546126256892260093347857151205475961126556785972213783436426592633410124537984412342511741133174643416295339252528791823001323046642765737350747970588733370593249083888237545196625498087614541948202006829033157016815262932564584090853713708431995697837072328945990502230271457036378085534136355063321044624851458482881567753359868210047855244130906491281285200213352271492753115641499132866568408325744274702988821611380702310674662105936843908208594373770448379650899618126950633791818022942755620936913623377631146113861343425235410449741727662434027230874291442290643586097294610661109436902657074676411509683219535119205077200358618371191519665269806471758295592942272835963966690100577288605555425565542312425267867871626501603843902477035180723788551598855019267615357755142010641056795545352882791255758414468271696892344401932079448530863874816303364002878624486772321337686788830983406514646282529176564518042885294385442977336574073798989333240942520294777991645537238772376772950264881356752993559746456338926595356357188963459140323935716194219813352147757458928671084977254259515575067579521747693134172465264324479739738287090573290995873426948854213006648064799329035757679709068243227988230206006774139812276274896658471458598377328186818434812197893530928821102700479308990138252445749991973760242120803124956377752273596948322272531631126941964178929795571568512338558862458185288143660361710613419236760864498335354927142753855568185550556581657692753119975675485908331472151892573509658584341002629232494618638804964278539794797038886540743824024680467213363513776452345343292354025445195636941653789008596404585894784204376010097279924743032380099596546913717709879113389430336620582995435194293747218386261990749608752934958893401054991798066917358201201698972661585385742924425630060563041032352778304361536864166997887746342281065646197425445815591823696232936279656515955431384375518649226800952095471454420912172311248392961217000645147502913790030663741911243485874618735458087162087143963422496319477603826902128912846909860596690675682514734869012334517198826076983993483284729580740072134440932998898333082477491571006675166310132172847709116076659807645068460967878967746488115694593928800920052747377377929827160201495470184014086689138766431768252698007877004696610865180810148660134190764054514491637900411186154026988399649901757646305924715968649612746566340837805549521249638243178572722520352192409802604937200752691348044124266346209830439801371985206539472827014675852970331362507128116079253619106533579368091269083188514603307104918484943430507036625187458717724741120977643826535089616697388536152576306871090777563920930312134524389172927092014155722284942137142154187956640895385478297717961048240078934873012434226686946604978462086298403944990439344687852610615262313318842496133517483661709664197828182287217347023173275954575411284782873120359061907531069721591583751145153261165787048620153296140310007853472389197697453305122216573651399243643021810188454853574417225501447749420446971695581841993787317264132011665868238733972673771262477225826628435388762872431150701866244315155531507958014572209397953433549692401477382227766091274981057140899023701602724623996525921511924786468092970404451636092587884419216872653258797546467468799212304897364339179865023843289929585864164733248858076449463777168007573863424756483883869002116890715134501219501970179555783494207649164333731544960831655947032421105717022893211448114826915171907611833695283649811655686708651968879707521520191333216537577232823530165553417569728079187404150842295700968396593440325993503693718620646302960191139105670336573588778391500978726994642789649928193240276623093322989944458661105226999063051642787933277729656268642519835888728944839861910159167049194519617563677812078790580789961262617501182579827209312564138315597146473761778537977110520431705221502359967830456564247489019437385263970195307594487727534331067717862813274857465475266672189403163983665417521781962395154889608163219178889537172537199660827965268767474433525502017182431607147803000389953632441108648180256974957851780282063327104826314765900633199239047392099625540162934454665998602132563974225001752459040156596256693662500115869536433058575506633597805180259863914997979905107819184267500848627168777971217496835091915488407651112196303394663659790150803440892333224634619953408793286564962617734103536508131890725668717183192545204653787359769230324131607982455943410447194304396901309179150784185867568167983019256343086965809486563746847681832600937102285567507544197611426415305893183061376197582865609381529187659315751806533443622477903374469156410749382796394273857413339479800310724866494601513197718444519100949569276187171683428144270213240106399510856162291088628951812532105612869538419823325412875931932537264385113744466590022485580415661390128351075191674994308207580201506348646659639023396894230356654711341430960532461997968690495111259440131943711568851490083122146494500822743371706627409414414938006939839955633569477247121503391161900884558028936342565850377600200907098652417277843719223162736792272765427000973003085460867653267009682827414065811273115075718153841189085709338342754835072878787303895664285423885430065229643657434849747956034549978322585460784923795176154889251150565115667273489514858055452525166847736111043555256315735276344863355708554339267898045452648218374525029236033826740351494359817675907857047297883662805691658239047267031135531239821518801366089244338349115549587518847862323463196618938371314590875498387221671611618711329928805331096422204716060627144097441983153660691989650339695910913071140052328579325382097872796726285772801077692948097412281437861557005553909253748266785230973200038647528563458971000435598326793991552035893013183642827723562581560960695771592102307165653702541313624806485077799950397482499864389875556290906888217079666329997238017085814487401407084677075693187207214982142535411328127923174375004884966740036236667229372215806773785649805186211782859478384421114509159257578029415043542854443848805789044770230883605104039708433205975544251176760189087431993945981774410440490633497885396399306561093792088429871585943133014175772687346301495386263313180121649997439219563038719937312896682132903821925692665332839992433972028929070932273094317391790461256280981311166137531887060380246003249293432010264975723721264238523594253755604715761223686261573312464118206234983730907870935988521064002319676495570943907147998031885643976613687238788561248926134655610937780930454978161419786799338142212568016636511744567442242767127131483683045542310188598676164430785622829699468111733982223190419449448515398287227205661776261391153348767617526591352992411705966471570937148035360295499260242994280012893362248613271268326977788956778740857904306642797373415773087836341464599629561261688174893942612610327080953548883554748515422448276442045212016986142550330819137414421953201876414258728514635490168911753411370682044917412279211319152238264886480271976964236795145929673112085917549155802765336045412841780630188368471862399221835065529322225223602218225023104005736694650776103302881020195009328069390746232354996384042681842033330272617783452612475674078315383980770422971208196092147516716070285092469416645321700014449335413772757421667604633194649221403024551627444524426445204988634892522889348547376261927613866645023635432053499402311975366462187535047643381318812530266335533158684407018614012099349536362538551044166353186331481157861986219088536495282026972900878090266828731420120507853785117026975989280567284467160631307645734644471728892085643154484344388453481326466251638495424718163970464463639664189697754004178826490858946582348792740594374918227686760666298553436653856755896832342277916377769536894492240770577393253586775256756754010623780912799159258163137944531302047633042025422026569553025743168100372737255544240130323224467942639576485631273345128524938397389150526216082307032043822590096733412915119087996293816180115100718370785095169668411595975092301982213242496517423540863371265870598892198522406460414143369642425245904040778493804500249247763885234775642256873898287080563399703496622941342781225092694815161062540565572950344256120998414998147721783959818975519149725068260523901151716967223053066896429976582877037210485721741496819123811997731415132237681260449674812784276460578055913670034331428147374380603073430383975628208396043864668210916250271319359529417956134550033321557991364707002697522860895000075062386172104722751234342723085736978952481959920877085403684672678927109048595722452916520800083371616035747258154224919253173150034484126457198104695165657251088401476832765694816508832123849233886850535970823428659399454714444913554840200017206152419573133598460832584987612042133784207616081557978722706860648407571966693333187583056615261218880629555533809442294053945816530318632818902328966675313885160985524303096861045313660052642953492558142397027499409692680709654783841806086436039306011827258573666120673597397812053313823743648473791731920558931438728501297516212227540430890762921426167112083699850427612169963740980378030925909770534683840960817398698436673356570963943799030485023168192783008484088966555644331366827060902027951763749563313660073950079153779917808411639437687235913814212274722672006884685979512291281764108332306011173303225903663384619967737358097037571951527210267917006518965482771095579280097981043864207381443366859920825243194904828606986397256696533238422980962406644399767709865118676858350978434724012315268017014207234237584657918905946123741136035747731525523345472976582870436102940378078948377606225802100032942807292718577519970953032693204641869096237605284190965570964889511449489363346981708443003822538936206566347418326182861633477653636018137719786919299345294486163133444030836061337726439232748217426356819127987499953221045130007682381980120612551209225487102318821319558416015785903641696705508724990101749110769387755252113422163951062260846249418648414894293939373784413624278297888435512857120746271955394958046116428883155438448728921145289338868534998589159544055016537232133363602471036137284178065460513342085092908550262678246356271209187342613205337538905259503485138078816013864060178624321120244450909023240974706475570362146991364908943163908036524969090477425256855432101110258511149991962982754593626246415884863511301652850397323380041331273166079987050518578199162946307317402196368395850050058014762720298697304413300171041444421656581971372528279077972193550002818354774200388910207918154100365396174085466343222967319484092438496430561285066061940519738190195647600376106753879732162800558933133647385834762094076699036083276684869809236502224868257079357331906293740029569199195590778433164904450764603370983204836222958044964811162003931035284688241128034879440291345909742635450829520854068841006552265660948840207733092636728835223547795282991564339270094318744647269312861455064248860338471457084934873617195649068613936289289179192256042998893337230574061561040765650719296784377781361271562312254599469358802110719991463797989744148931800268950229095979713088556143207173789521241998949348401141743793216319150227529870931140398839627659360812890170999777873753553355316202800810924493554544523054765507120094222169849291908321174510776729132379952456960174226372183441182000600863983274245734138539115982059301493429034385005296383792228507339967743431570345129150723230354971322988959916591054359124218867605538740073153723132709062651077645707662806493323516581736114923530125746093316609121095533742811438469823709485285017746220897866639019134976498408414372947375625255296152099037754826154075775691721718510344851122906599364718669203649949433935533327263364450498538286040195206309941654105671872143096313955502764211317015398420745848776768819913331299165068758125666680582124800236929439069738024891167839850321166051717565714822024245148464622619824963874109219517000609718312403560250755115321386202463361670079357600822216837749796369762913049105613708819159364752783680903936043069988602650468604410018422188243952436433206208151833062729682621037464756134647144438847003383833363432924540040545148644800868618835190206983329348636201663528893508376794246613839376091347777651129283265244316464038505293987098647207739638907728629365972503195093137742749760171196474596323227118481790612769765325665937347834743276389861584260548241014327064493163863807706925487905152663564673523429074998724857105300900777953794613222194619791817712721164860862194702613820194978816579519008700860531841497310065443628857484513470770721953307282620821158710720077061895019808189093323410656317421890943327188401612791275563342844930339856929446557160593366432047809330250415064471535461298327108233176100156571258542103262647792878015628853849886082571519348958703825618140494341029486298332167441153597306260528550587268966434458686522615453050557646058950332694545196442268086258091219690466984226897246331632340591165272373485584182694668528893396620469017790352317221649395027825136714219373197335269435980695835030386329828060909114485509648897567322701499646812903287459365729177346584437175292734704152205098694250590170997316326039008401748351092578433491290359671829941612382762090226554116090268785621718117035451571708652823190171284516356468921720723472094716949062408590264465577564737429681752400730248235886384078338208735207802405531414914809195819703108194118342234588238932523411616504792178533731783255092603837204709496422503372837845167845122745149364675550422904724745002509518013501539722818674240944620981327801457450966314769270594847070696385586875205976622267003795417866601500216655395905703377350660223972017137758371916337074313467794387402811683634156535434396321253193233008305741861008743292173999289956571097280491613074082760944152106745831777292625196342873534759911869060781065298272481405298037826785756738337488556879593978543855323693796503750371999895772162597780959250762925088606471724457074008682172243415217272377214021750602283286015051726451596470215487142335847594708815702302435746769868511513240073749088506520780109178878135142741025473489741159064209874697827456488340935684124447554270632364482060325520276447835139634902892535258325660981266913586890181139788056484049939991003800171124072729109856220045757967976849705759084545464092350954927063754540703397497651806073476807845817075258901229722923428809000492805371394743663320385993022965406749290817839341321683869493661606300812859195635605801457117161898027776672451216802068511126115191044624425455510120608917628103474201963639179476886156878707154602999838299274035854120883658702204464710992907769371424311246826595402531199881518884601105158486057063073031951341969454681088342569721926985126362730869610415873756645430370784900712152023939997801622676699033561789891715193169062422655654659571695020460807329419184827076045729850432624471079301243041683281282603527449584698249105081844002737855354586226478044054947898213538316728553227525890165760546449109809854255331262278170952160003482108014777579978733297695844254400478970379083704201159651183270827338940393082552693778971939201238529371210205815374465540699957117855478902043956815036915545926902629127706452536808064873746135605217690867769802767179460287696057105932208834117186475586238130202114218530339853042573695961189215837144096444924863193066840457527210510755975900830180863091115727754206841490841712114549969303508825261118054331368337780006541144540455654487919976982972401137549082562893462709847463959838300883661470876781719749626859795530015013410865716125816570415647616638385970102996590821859421771855108661144205946756985817615755008890456611765927689480258485241583079014128248048047091274277661137358084522102914014292068760781643249932718302845653362265560390458168575300945244874210869543622853847169775166827509163150253996587924610058221213209426862525128372182978112722526142775942742657025335008527435514501260301258299049343625201091778389034517737415855014601622553597319471728829640428246226343993404678878416031869472501902094585377096364387663469283760876847477964153499769370561247161329164419610658205309407899552691179852207065197908352988593028291205513935483864729311840773507809476862983024383403372821010340296006540649695722832103039240886925508171870857665991821721672006162791362446518651673079533186109349360618476091420621497966072487713438163458105815792206617113663190360689653771194748481079820846291983039227548650218791726483630715675957414548529610531236725866114153196983577303388032506718346782456079602825486790012373261733638906817274721297628140506501649676106668125073771775160863779730332292744511567705104314024597616936330259694015707146509651239629723072151023120962167790550130923975833625580227435482988664643144563391339009799995713688087050897538877561985213203692025787622333741895042896980851125463114657578695975699539028617358191389629191472587648787137417071546021586289511326129032174884208897047444376028782900043664811219340429286620871971602035258696141228460381380128311354140172998188273336903057671868598073280112979462072653772705095230387315124707753349075592300362652031010805235865332847150998058732826494414652645616052809157597769317054366415046179053605237777406229509433557567106623818028622598499864542602587933104029690885327613487593298065636537406408865673557922423126615486747254676453010626542156031387314481674731490835132637227738500910112352818797931454262234412885183100945555369389925179650990301005575525303894407918981843408173647999193492708699916111205130367288936283442806186037940401620819520383917106576512718347581841191437983037785034803472792795495592267559984835054664446399984343520579262084325106214833003317402382541563203690796947258834750409024430226657984114425082422545926953199806014177537130424018891621392925826725815695459297589524856261260308855218950920779357802240955893060056025703700583921868919071441094261214628704137582402280131657266547619507941013255681566991598315926154913826552666486827480923423425314350859306014049105787322488709079160919695702684083698889919181427057932200949777693876195858839539891095881676561743378629379858525331812630959466900013381355447163403241968604352401718707905036422315079391158004847645515989020769668479474588054357349127827168052125052148105990994139358346742111627238075155267423022027674541363827597840892977553788023607239277513183040257235374874086326519202392275259196720298955451829864035232068928943144940898867082015437039528170290768180026286776178649518549046900697072239435537525020057670112057014794552519155112269072201338180954143350517256745269232731587886925212283203791263021958751819971271130200026253005762149049724947712264865318984912128626814014749585414774265027328930343673699902636820882661170064976775607764705275889540348282200425339042723441309742713043836826370571806441172857967487825267994166965354936408588682596984659452702871304068585117086571623330913252580976847285246651550895717443237246114802490564642490225524355469475833712564767169772066649745537674470614797300839448474642851240902526082503278219044288009249338822329460641098087044614261402223691748448419370614800187144645136228808758923890430562882360351933782586077234873018178772063477172243513680284867473721093303746304890384644301585530896781770291725413800298415499523645294880545988540363051717137864691000482301817548852042739152645687801224555373902462712815909460952341055164760830072803981525383405663300838487567273525200885729278061959908148495820625646677565980799529877393762797527649439874161563437999347171112395799389158017352068989918831878203186758256669921718222270696284757249037870822204582832385020776636757642758540479597866307816066053665692579037071766143395222191562386561771471261011328719523898724933761571465028741414387323490058013140814746652621732043413995046022503603667707125138546194678330249700202070189699932939814925813571053199319692926081174824299697532755083141627234584828052823917167247249504116023273452719367677532983155253393997247916979240096755801993117536332849299943076957307863812762467915256636030687640453861888770787743382244389112069014716455326992318663623135894918680178118820933776242906981614238010844054940808097753273474808289284609549523716212937215383646203580219626096397025092807222236983984322904885693544026711533489080147837526673548317230344656945139529644085973305762575998041492768134083537764788538481873434284899141776237186572228209046047377767254289857117073014810466792581933284804742416173958972646374066627842736482156185536297024771287811298022449278241601997795982740663080521377650584104550535370634715768180168397852392590048737419216138821325725533865590337854220642503788240491614297780522660977195186825792096290147917858273348627380739326126824919788517487162783279321323237466098601246605073006070506892235939990889833434807209554109168915554352852243554235326051386195440127384636179861698332231947381793533822053039933116046245152476747744858801257738908085814016059525622755611030514266074884837867305454055967557367222943974406813462238616252861660894449684468151399174010844451801088027563100082323146346214021440237403504351954687493714164559623430787135207111867788592832094852967010411392710266610049542645386836939718360176563557775223746320624363687491739796430933799444803833743350562746739509844469602686382329075285001754119831167984127739593178623795180412545616794995989889344690605643712111341557982539610945753470595007284925700445846614501560568166129834496106504935337410924972658700714384679144321633430441611143599640733273295815135243583214807060697773678600537170371366644244241527965787358943435906322906693577580844097625905850417701406728997910124788272331820552389316741721873322001830239058254238900347152568207835499455929623485517032171523319187707405538824604616748889291813323269576834318635340589237774591324255057421432701409947042766766194239194251200718892554565583829064897649920515785036324867388179737122341468352039662173614701845415667446070315042182491547001642054787869397318360907566789445861926949239204129264532535776031064308638210232249560039776692737409899182335001419535536877756000462453842207927927472205825429997756682004280127245485258612985435890051760924437235999957166102704664850769435465353720119878745184388692916582656395901050786692124738229879950117477322928409097190007266293000956082270074585358551599085398776275350491851090858344939202963241231045366614479749043431253161745208563108395507894626285807225023178490537685283635762218000324675914559903289550180816355760679550753815550822506385619359495895711327137424419382608718273835841985041363405633990996717666926633338573778563845451771482142895905761204873129649513982979969983937450403389633232264682429251980411171688959424941422395763562735475214201680647370520188194338841372803306537644940183066551424540822870692408759323169168990564261714425064886732084773199350705142196394710943124570630895308166412314052409293731908760435141397658017618099408966165263398857258165729804719385056623255410556743945969093580099960184106970346920882577711469070830225954866799256706536174360836812325295532514075895336244339267227348250708186395601342024914768887217015080468142260027878706345268166466578980850123244509247196877135963865198334053179410277041746165258976908890496822728981799810374589922463584388865188302132783294238251862127176450417152975612561599104771788187534680732324281436385542894836145346930009421401258721667453517179403515127237953945239424075963120639139254219096776489307161235605330279262291862151827411987060157880496833574011117873562844511400712960503689088655472061658609512712657501957239065394483671350116772920110938044022680983411832619978101976339379684793266511815554488983367042074392069027550608491039919346639092619695716663587066045515041848147220308523450555766273677662247855525402019788927751836756730151079181589784649519976455532831031414701851609978224522303751025419858626004717418845615043436482402943471016890360350801390677114844541124296279674613775154152985663386327027186864401783684076931981668673035849802161998770385861348978729033336358543518934745003056700009807998865976748830557902646654045596165820579716205547055321099513020382563319192535917166727034262084216604724590025677203595508782682129123863791761117354739217636652057377273167212411123715389317527163455443187989456309368686616684215283838250486708095442785686098276136742123045043856115310205650915694155454166200479989313078638714794144215829999043400158503158242039011473952203647169211217945747692041608369570625689956994931409262160925819380706421914217670611784166648615908784783089820696336061588304998495307954359159602713015827889177825122354794773682950806207244386799445805525042744733011270465745536969008637818893212707283157252754631216843135695379748747268779921662337390688026671840267378273820076292422916147472558820432174264118654786908379934378038111599753763107149126497999531704479627831710873914763042031256611029053505697921276107827422852676034761331370229152941085506048901210351057267243287845038469958880003616700285571698636941928642262021508169850878976469127377460344158961154266423031935784451046912471683335287603678161742820319047091775229087377637560169620186269094586341217030831902704672854500697439835243198092530396197543665021864212813478891713768182542843648248034414394317004807792290765508735937775551827113490694669803692392678648510039200025964783419850235156104880919116642457929455592613173273266920256276113198486662450593364960995146204449342324456837221972027681725538622903241544327925450952886850362177174420969581971783753182834445272986733971630154299293098616572167944643940560083600416457491897760870192425122241274363182268440189195160319830121968955359299182080800983147817386085523795262856794440050041066373702399623826234978674985780004470954110899417856875868567774069380391259037715408365971100507494559382615691460102158685696972670713619535603050298695403263387584787277353249172343593443133933753143366074436395593418898756651295535273634679652576773489440536790351102333549926322372048642770802227341226666994105585997103462825016953562575755061471490469560918882853716558951399742750329499413837937071188855792386431055964401264683518912123168999037737005185028285607729718051335487380306659740523433657897276364022702434726731591130853436772195299009202518469201150228764032938374385552052580513108823066286889157592228724215141604119254329358456914009519145281714730095013159572452177967648400984939025238660316831981183363634893114138300744196367922344231258809218949221239610089813953712776641347998208869747215118038180311148986664772185221417020287929766979112850462027617437069201142865967768506675747956191964187221033525068881839538134167676705417236423291384985993433841022039019766380679352115933393517994406369532455408211819078141985949853529418669627627746869684564982099275301099548470620277676987531956817507399394040686297898214143286891392560645752867849661106036862310072282351123502945851962527643429006474730173898128611526619757173829138367253205329816110135139838426630041893950328752528250257746640817599354585497731874019935727022414857600782850655362421533163757256216746484249285571507079664328995811873497174732307855925937994820047994156957948381088450179508317615453726978746067464191793766245783285901261617054672594809937406010603017403034242797882638025295292251986552510062934826345290594166170540686692512425213466498637556871925801093337910530155502713787496114266453396691003594702832569795932940281084323941855440840949556708146431236774628878030270727751523371077331289889094848954833869447614754824763916808560533782877842352883095361087195001234655458491322708436294941334580896658836379807365820252723653012783371861787017917976212087840600288776749935013994099112866656921586467446581169103923061726733771766224035789334870967294079109306419969228502797181233113739155058698070483545129588126587905398800946929726725709643662377880196720982424663370268829529494298156403878757710462755353347702926673955670372983328341480535030668706463297247271397981688513528424035416712430491617786694441310054773296485604352760795095841158512934785461782451993547003639772671264452806320078790474991642124540566095301321735271264035689152153159183267046524781117341134411998429525397851260825704162278898346315158191946496619634310922054969370283599566580853641110243684595007319284167633480593746480239458563921513007222264230420702667815218306364973875699636229670878386074883390210272140441090225126586062900142325635773334020023859270623926086603328070908141261572460120733884128093632411323104633653278779099303118225573656132391666951428653397022931743396953288642996163038403936672342530839211004165591944775585524553244402439965983899860463544079598072687165122732875138470388979187951896848995643470325069201626943909185438879691888173868234213551986098708558553094937801299972916628447104949586417817109182972888098728238283508322296269616101374338733195941555896252175046453068719401438838838542488839224970713968443620729004657418765612446602373248786568527486631457715257929695584075970273207288964505158175761129539403043257594838628690042185412001602768474191860217339934467034331255164122115152530888105272215638783530661988830932433230569894955059358918399728191138574782777454690824194218229604695703941324087823273686213371335214654807122556022589462970092425499547828633142278629307464656945644343793581815459060378606999108034151762844743906117170255612827527261781810104616228733172833727659511675096033288379170021403531020964985887907160982571830692671062017879505375860690752121891777420091863456014407480682020488324031358114383151705146458098791916901106062788488858324877026044623522230704282020839661197039456143180127182768998363598874813916169071165707270795140315157396576861818393480477427274866226418540122985212303015251193373278288250835975537054894806690156943154420905757151268519448507214732683019415704942482276485174288538082556221422453914493283821482939427305234417429926691531704312180218842016057589973301098292425707000275056386186789892560125252635751724347133616912521363063863088867666221049678504203553608244085093948342891567931884946995878901777442466777967948255459725541992058323477005770475289243962156998026813482250726677494986143311814486140587255255382745158900980981624070249563839510672701965086070579997021244934401103261477530855483366442862339941185682691032230882087331507182878902347410501108045128277158190452622399063865493603444070839386638736138850242151879389862506800383225833839161582065245597589896323465858560951193696764652220420601258248211851209032812107193410813897151614348037650361146319297822094670214254662852112575636877244352248664323397867632438245900288004361799701113876129887871465785086488444832601083749896097908164095536152769704484603415564827716449507226553625303602695325379302138708097962120773382442232479124307127362875132797101270082370512306412511761961587920719100539535024332534252405130969432254274050386959803371451741909037432543754725233522104156398343123987303011318106039012819521213138373547736189409234237454583365978002891499123554950311398943808644051354142992889300601417039290113534967814579664445190269862095521473460797972507608188194197419483559402547470750471983499841702629850001120468789802132378570368443466588986344298975825336991379685156376775049363315873589228766453671788895746302819859251979216197743958089754356398895923381856914468147314888520624818597497304017287687034048170160286162466460080878734180350237747779108765059679581047041451084001559628405959024202883605393505762836399277206840092889474376198541857374843456809423335351247868759107649578389123078569072539298429842239777975736877606331433906921642312392372832303979254125862801718891311229982461589213654089581671516391967091520757426268314657830474512066643258657048586721861258950535861344744703473381769568620641708207554648456549838458188613791063110188098389270163159307972597954003251863813950282106973459295236612557985208771155523203709300952560977824331408124794040266474282134771198856184511451334436165453058947374692202677419060696680023432055635394749481586438774090275564631430027371675845085170761706473277082351515658832686858464859279197327959810281280595969276272868581811137286397111757107748791564889243381874152373969863344986985311077470790170049425089560972754535827989891508153746897207081664461105363216358706176460701269746962247898257241805100471810017761343908473408709217088464033949921896348379578524322543335706772332608406468871198395380568759108177340202527410189563604010857495025845564002087468173188536562149833512797539498288177003574474332823668670801536982329973520529163979826562830987412160216444798613653195448862681924309969359951879000425949971433882522810461518030280430961742520764242701206993481194294214381819867163682304202417698832079270518029644920372041857515664201374679357269699181449979850790618829419889391437467362268560899193939251454201566175979129050452431830003404049865253356182930945146397428000920578432772806497756899995878626690508516637169684537746072698277122919601709228891196098744903061998834255408118192026125970200050280811229795232642396461920012881860870150604831295252167901518344053045327114575176048764102122720237663185709519163102548679053150522197089196779422416541941688322060262014061357202231835892543774153430054394091785769703250908702184094244066166401946389835041725520433691113942747756262618813597825316453918633500690023644941699695227482347142931824996588658903838513193875735173993693268069758978322759566476334951615071282311855981926971611733831435833241969390445032260911280380668345424538193826219724650328975159934696821190328433202210050394165856625402618714735980755782934742780907669963658763519507491066252661011932537175986501961772694532237544487921925187210026187802869814592999999381217176169079707345222606997618610928518772263938985415314365820223861713393950102255837293218305871951211774568451780932878890754496835508800196177340910888883997620697782817439041491540389871386593937237533899124624118021194156000522883206214966500582062704463758846627044228942320302617291012926609943320725889926818325629556559238849539877298526761272584650531952389486498400579541206595361107789220269966280397881500379071079435012911487238609381874253224256431838791848707047425580287689896348879102560501955885798215156790658678107730450134078410303599528825651005097342138904307735627687009603288635086994772181973181985978604142475877887946682381010911903367254789155310689042417829344358308778039377679850827562904283760863720018811581513076963562385716319273998707024810802978754327169415939304179494731261336119296111021387114429268203682355270087645374108332081584452971880017498489017400335176134774191545654873475238693925276931054528574384402304123254616893995083606766260953656024451270278919319943086383674017963752613436702428171860547642118868771722976701452165022853653204170110857943343308026881097658370575673558520380473028313825278852962581737486981153207401849277981551902157696153132703892099818121408852929242540597515499783017625387104068368010608895229889267722650972968673604146709230199051689362152599506520854075692659642557656385223070036867750716503161696167638321226753143327082076165346850410078526048752178172697347617345209508692662954152547680563110759096174988411990341331650311175409369700826372285729889066767494152488481010030034222022588989748646535839035685236778377010058405557154466616904169193985618231389722336698803850081911389753085090776075742976721363061436173100688592826976982447839500181638746608535047541247691436874288359406558140790731768191893186137732175134770004936687576729223842942252359055868502787415431534896916444475491239076869630714025260420646415054533576963206850607283008821275056662614205587292888693580225957186224896952745969472650532234437909554168445060308575783382569127187435662226878247941244508353643351840185633683447019180382874284605586939842762480755787618174116849753990772239903540722227113269243326725851626692701978647768902797825869240791495586998313932802777556423257463387971333819992456618910830157826917719466030940575743982854451265628696792200198629618501904524675459206011192708477453471169607167286810123437309078461833275893290668026746295683445274731755235906783087515271376438917759431909832233460727681706248377260595065232940134080189446440296193520443041385697562965937446426349777876817530823302167563835710325558938817080326000875951414166164813184513415389557242553451264209256383606186029851869604527305699572032098145768759428560290991697111387757662183589035698816817649496381795412379742005566893737308078887644712542028807683568136448984474221707413144412198677372724328527315691339198894258740536648684366226629731013013950457089818816966099740755923052889218448279134128621849827121443953180083268448500177732865497678932844632452911189942048654084059896361085605875944753645395742881988803798351931462028280664863287550887037243103412692715802528899159021851045795467195343956418674166519290997993775045943344420427955046536548521204607098963753796474148912047938174982473619190186963556748790717125623618799568165182507532740041243685155123221733162724546091428876784382950061918055593006960472727622386075416584278513280708777488823369131727636244439897006435570946890459038592750650453104986069693885003805840983383324083771197832069204656024501763296568393331137138440111370815672626878976523011394294931630997481199853729449880624252701218909189590780609194685792419078555552522332034386094605839827343937648086099237992564859292839440872529532846092845342464824151770071395886141095982329747878924890834016205330350550151627407177186098342427538510233392165936510406431878111964758297372041712903731615928594465799073865455207127117692988153715220240758682548336798383226239608245051805916818509707601996235676993362986175432738439791019492825685501493195601614632602513688291816634317393519616593986663930414643126081772419699844343368384788876752878929268929649434114184995197062870044055889632047297987385600063872308030972085038238630458035913452525472314531452802023968497449550073625969157721032519198496258775414466637802114307402823570600321360757116669111857731075795448321766928976716133054919672222610607795074245111146206668950026187824897744378054756349702343339343469195977915093688588008012591181692374924338167190293325375576905903314140166790223637895848450606096901901257629015324092230675451093867988122698826352416654525804088750159585061549501449308956180606410754503049463716523634373353558191356301465846513818510845943571575216601392330202616481950589742191828503222679911124067665845591410230661706923148329721983108989203390634158153461875802358080220343501046510819083044750332286718405537594013990707805226511957606850127153409461984049670537119536708252694104465789477519437643940409420408180044988016621502465606522246818154017454510803841078188859079364748047840835401237685425756581331059038791315110511929113251588105364713934620731158774439394641010822958556196109910722729423486946708756230859945097508240707088235940009201122620374146192701030314380644735694165729155014521555939018042074044472207015449830312418669526531009443600507154215628531137196075833988406721441697286666245180194243800341128771526944506979514944701397939771822486218067167207220571402272396287121508729999949425765536488639470495293340406581972659687921384738103548523244003384221150783738905776046798189806229096773054457054731097404432625324171533914191918352695665416949587640218936664602039911216321102457556795237763289940718224065755204666040025020201293740735214149675986034055095273666990720127778015861447550949322277888878720350560010542230639796792496868011819630238039315752642486933421477677521509822185044280689810275022714470013669815085840811678679534923389608052445793577006424300061992807143938355723660869225865808696598771031498075694884534749765879080508072325870803113523574333389913368682383360507113753547830959929852089716628094780292043158930923017239078286413223945985349954622910978465461263654236396371760742645845038933039066456327846175495072163374675643953136566436020252388362580924389768571306962041116737645428530878865982258844148950343560289385891305496532069668226278549444990359770967546929151107415907159916062995096984033481716411587172413048229786698016386351159709634742217721591853119511829961099180572740191321966200891929598101869760475332193827811804637714720806449339018777438939443644615500630160490089243520356789712051891658072485744994894308082164081309492524714374654373865069507909787842247808488652180978216684029270908199489493711556090390439100603519670974808666446185848515579615638763710850354846567117457476176112791694153242826487863176124485837833700085540892844033743587287686862614821397848915174044668971730394851098191807077027979244602208163736155466942916209039405187727106380351182420976575014308878300385002520492389181425583012473084641322252347411641411732845304775655652432201808799911189552805881278758824399690970940336571370670245147952011482446861385010880062467723014379591395520808971431117982661496594031865535145915698393878823272832844092782709657314413596264027457583418623161062615864331051032911223314299772970069884026517321773394387508034292223819026827989285590467932329210950338979066905929917691917312122630165691934933707680548986226546570640931582277168026027105279897080822562834784646937670358732989739453398625603845670448703923382222979276679657566480195402014977042248393739260210637590290994583116167775225347516343692201002702282051972629171210233486020139195535294036078034079803092885704973026961145620746699385627841448416453714956336653433561027414859884017397230449305367834444818291182521376352966145031502022221147510386883515562703932610892500717120952373502149373322422835944039578174209580006225690329006533944175432336537563738565113820152215019306729954913540999794659906412099874612556682488986635046750775168276825225488238868121773111301651212919441983901794383783718565696998426143739943215633993933053964356989140124037246208691538030756418202354812232214180878884948252135436715034138315387078804992841458563646014455707412592062657644402238367086888288195973474078121182216463781644626135677155023852574627960189238699981232416901436973335616536501371208981616094229292215761373333719399191902656896949935498973134935276209522732839290047779741222396065644543718805494609950758275987905532156461648581438282353739668519827979289700995367282356745252047896556824064919152843268162208189837140131479409449642057293030178961886179820005433403796573273588660470589502999486542693971492910805152490500258636363937785384998043530731538004708414717230528296456854537848261329792843359663617422304385123849768019880041906265722866559277363816417639615282273373005320207196875497086186970413541699481028263070904357366808287535074872531766110210267271447577153676368501352642226430397266992716720629111890513927028907452201015140926907040998836376316724342147278634509318132569998498059924116822675111893427469125814243405381996575476992620964824714246779011359157345636051823589612175956878129330224770577176431588901060336568940357850285716032188161989857059992752193526108453360115728110321326827858309369874069410204610177693409514969465986277059724900528080052148113677814400183591248404225649854556239215910001595215702877167734060625547272800832245830054064567535780805660691595509298705188740950690359436894551901874134938378450365458401780462005979553203695943448159850908428562823533633677226277016775639694940801641328519140623386441080836776632322898282276141541096336466959738648055926135428904408433088084850878406708662737318577788815133759804253897817980033038988705489446993583859993197387398183333255675214039934545036758030257980653647514687036551348614622557525195479251836297949620041420343516560433096992244146438737016531237222751267515038720244614695615534895497119904427878969423267894363780299042510047844787424338378727394986040153176455817579524895217054051566892564378582014147738711953343449953254687876583813113064552467463275981455175399026958795239860672072631037082570896949421792994237796037929951536961728981296163585348438766244180411782543626494861179415706188334428997083759418194290988779254633919246970636080718235903042281676545218991066397270136853764533790724717016935795926830801641678799690206827245940088855471505160508377880884867780032811983746663296249287316626041809991023532984031180243273198721424311786904884722969529905691025730825398011235569381508930640443803150455984575010203488861298689807156172120251611424607142321326457049385505036361897351184297624477315684266136598995467884186120933050664110340939229071656794602008736888516173657553848892367788778110303165838456214731552104275876669161947634273296156580353386518593346188833337171574045463111739261674290896097611467193434852519451457557359806280911079949249402151736582553676898827771934868250407951845695666861233362591435024971903290367403004008716458410745925285141143233366184689641621137817851501169020080708613030706488520106514032697668612060061183815441040806352412378003308386103992648874577399439177076632261966126121588006873033369766653893489645942079891598551773623801647766507726667036179074170974067166962981441561074209329608842311227515907204559242300307065797346787466230966905333045948040913040730879581369505777977335105685273848767394621244725946330417122706179372461917145708815445719470126141139500098649779610131767001785202939396081849651265098393959706065353519299500906431519937559377619351947934441164209841074801624566956686875051683043341900654524850242652315748589452014028159890076430373177340861710654293599454635517714895228634572264547674242116789396646345717832425043943841290965846166635569874061476106263551693031445507845205093297792705920835227392734837256745378877260542211596468904702389784714407691498521508142309659110983880755898803049425313529293317176135694148051504193765811614078470405567372253832634816719929969112448464626688099096021280029828978564203920986488970963648513752437168418314464360889648393528682651068970950247445544609734782982559356349225311952292701273488164944312093610258938004723500145967517340504826900530066479111780626687875381188378151662521757684649861269291667277765058690211381957352903729074830835679911629701420778775828181449702991630787696618416404972348408162888060431273974867962658875691579658362989004815574469673194796717180269345891081940627431834516821378192741630724517462200429043304378052771034366830508299739120644593618021854128365475076412943183017432911347243910536518369504783630168941461743233199046747473242780161450179768889805764299472446068705346465296632211775325807843035591510605332131139385784298276896973620951590893332435963857462926775203495494182501192997626346007795973234946333865995032741996624784196222576190853813973093568466757831557460014539070275784465938432975837697833378828673541764379612637095262735652932818918392474559833950850051976764619161333785614770191288593401722283404653020173469823575490942729159991663978404954223977610416587899750576964351634126113913540412268547027854247118338739059669982801430344266346084004710444177902488838398565550884070088107063861141594130004865721794215813126884140777702962063684076622135111435584825731668939403985452307588578794799343486861873546361775079101654471549500280393574655993255473479661562201448992538079284703280926739257020563598982327426644423072238946572649730597599548630438818275532863245063690919272624084196144391816750704870760196536368773133350611328621091888584694536060839226030609601198552585236654814771295196807535843730109864562948789948669030332736303474889000911346601303300306968584571160936041200810098904240953417520707561332816707191069210356063398814792110222307053120191766082146508542252377240213997347116784887984621085867151714657695181629613680367611486129477374853827440894048368530580341366602608109716479709944191791544550520549623908780095523345553073159787810018385927689093755362506761635749298509370689653288355609613823843046204684619405988628711558735873504600336440534076023353784889702428131732519069502734086348523400472506624887026210333877351936529736909441904042363496322821215595546827615324536268742240675291278966854132981949435645779898117951498691898305191661539946462534851555741295966531414091798646198798381575281475515623191471056310937440328060391556194295264721922370154816603512004931873921931214152546743780412217387076409305330663491529430960632590113751361946380551109762538761616108080676300753042640980532240762984902960841654752882744882382739087120174137914572380768868271284849041166353674648985317746049909725095245745441276133663684843186624609106201640649102280982121767034195651182073937045277403022087386875628438630763011929297195357073428618526970709784324202836112836127342132142588619573423417609125238892809838406638209555905940401053068187785688944345860670561227639820646116207014875709569189543842577045788976741075557015652248065156372512194841496623473053327712234088256232991899032367630988550114698529185949193636118089419096246541553505277966553913757144508131232124237843736720894277829803905981126094351410447150524784690131025159304799913988515093489264722241245204458186413532835367099424067577524595379300170811826471195693509433074152685522232264747222349088947192631248194284964461927617995393110364870006253436487011951759537124934872892510890678637042322297246813583479070395135494469008320101570747272711047512060405590939605838134594865835432115099903069804898199131258853529290191756891975400594288208903510825494259360812242430214706044617268921762146995588543689434758791405986012587829412274055138398755229921976149693850633029009489112687124944475792099869941364612541915577820917583619566900244907620016203024338990696954673682767368709231773799549677535727584668092616539761998270749827336800171910383234186960470393924699932590779886388099476219395958797644786047449741814330617163785784481085752010943938995440431360914227723163534761518677671788252163755149415835516737261215420576266285710550060115773162138952751293740103856709517379968033441994721120699473036002906076367207769875696547027140815368710321788034649563025118799434389666063798729657363538227844048013244826343242419369665568606443056243653948514090832225726758804746397234832262289030326901175580909828823670746328159493171081000300583381940155004323204325946449494042297117404531887145194468982150936858362332173077134062308255927577535688546728888573101049569691411461036328706337969252988049117902018831400455844293152238090252837147960466734708687129432141743857413915318237801766042700004832435898342206523410965825282525656634318253876451017564430165958713934626712692502136716330523829427125009754265246583371029443950109806703321544320591309245314846224806897657420459142016214158585200079440829286428891078202670016511892144235112134671259335976874459855511843602361706825358002585540010920941981144500293259481725810314109246476497797991049993633970364296089592637254748405962800203927249255633121782916809996344194702442331619918166182179575642460585536670349159555119249666496064907709250833321386384984109613374502769137166975866858930154115563742652452388517568604067547878881578796730428187182521031035874272047644836252588651461537766984786901244829662398767576007075898789935848565773679053154116495795135299348731008227839527562402484491293771769403964816270917787563380970936798186009481970672592811678711268465989922709792726792969363581343921588732783231477289509430151046790579490546549122354662405268127292617358390649058516389874555027971677283666567904891641732187551709811105103198718676852663691585294071946991121594138859914452502881209430983036917740305889413699170374120507263414889649028631253288033107789915579630309734667159933531610912571282822051361257646599662348403628257921451188520290449609120598027399115684588774725618458167758211173593341477544831522251522114745056081911296673012843719209885257977852656863267262644140155821429746651962895135942757560616665311632919434389982457881496559066105768624142500904219504145748779350842373316886123242484442226897707862615656706820236870922392878622412917631528764162768415388861303756894569326597227266493661475789160543907268370421562907919932775839461742420547618289090564755249757999898491620035756024861305998156310359834993972966373642266523711843742104038966732926063278096135607464030643691151753537685108714314232275741498491027584386982915929731341711228078814391749145678630907017296663254788912614352367539406851146868209369272007232420856440443628781892193590911216457471181695133388250013114727666490161027774494000762049782719090690219495576924111531928754391007451850712142073854272883419277008063941772054709634061861817121050254039501986192341615358159728024303932492364572539330861771410027584426765055644155479273324453045296457457762548256333781348856012634526838492671645092616601515780958335344601817837810201935619310540439097039881715504629480780085910302992442023358969028231349408579017969396224202471756773616429994588442231134328653817268431717964427311384774269703278836811700691530958595355631854890401046832994231022874049072961328848820178757919381243730232499715429530188350715996805538258508787335732631074165924150658877802027571187327834210240321262250419168021790989113308872233906901141438154072054443145581917517493668394535951843610236345276651482710701357636309969050151681378644910870223969937227491901172803005701052030474111150460981499343317451735573462306125826906951496426095621486704374222892266075997103996539902079659904257374168793735028823226869266015279204698379879245446455494041930007653102773786163897363686616847305352610852877445205488235596306612968738590406548866686226513318583972285384071588545781726015870323107139437820703145420416089073204818547399302208591473338928599188599481061554085422924143305567832658530814530982665113228341406981630489720505956699954538929632081434305971204553925732535197078688234947793723374264249856319252133460224110917945391278795698945216386560853617834369636116809833163432198122204889723561460626456873479548706294394382579819109327332930805805175419685719857907703330411632968414743982948903154777592713582405145936682738768088312136029060789869528919905972467796611770261829539888997416515259313484569381741777556894003152887918919920160328260366031453995994580740861951854361797492661656483544073113898820938059401507364159330990940411539064266543599571108317467610658232489406815800967561064684844624888226132046490958505378409763580419063627320035359439481238198799493628400110857357597788324765963040801416922697894747968189619591790672565459705557730703175521441758494814516099953948458295057258317264647737928261850260626435995513454873560652624889930571428301073478517853970948679035359274870390982955963130665142056691480267300675982823368295717808821302870407500733016995438452985183182061386985797395197455630057374036660153202226982883372401641262469749587736099076486309260618862714939815142940978420456984756308492635297358428408167560294467866460235650831916886293444421897734160270197506582256975751918679467414568955473897149292210643600878453192177338845240644190051831759342049197075863288065165184903153215585430253807331324368458497658212156454179185771878319525783299991513691321877415435289205759990025784759072093193782046894127206264946969663797208898363146470359522843544014801496287547130379577092872788181456671064210620268495313016341978329989386328260812657256449294888172497705461795741430421655175322681269581473889523198034307502188856443265858556674382786876355937505981190759631706264781301997737771182070119957532824057761259313199669631167954679565910157964738470208329768843031522285171774252322181268516256486204016694977295499727318503402082245883897525212455429577770427795576962735378069979305456442480760939316897446086134862251596253226093746468418637595071517942792994914710164894702569349741816514959025084188458789889922415043942521140508861596635772662624887426783443015268874015516394498940705014477329071749298172416951396008600932360878293691776429805440689246394016248106545723922323860425139588734750736921653020993563597835930109057387286441614784683590080244155840990640020397003357573713707254211187308472646074535961289209640958509691068311720404123005861991418094275857772502251289327889328396125063723145980521461950336487145330170838825574323373723003261162428431567274633364459453518978232230098030668040126607830761102189295646869234044754783953568260977124108982796348760790390301438620343666842068169300917226383456177235759298629313948655697148771939816039525997080641362706262372811267886575978177877884986752242100113926213444121797333093421245157082882017767043086747513431916019563225078983143559679221356119393372728482202727273493233267048336225339071296081666452384128339773454047729418430038328150549639470769933915802517538251840031582570581607757698498590799488876899623134476228344497993652761778945376708239789493315986988552050973190241538200093767083156822946355954163077192935377668194457551719676919842932294167477331904249531202231868444103969812013921775871289757697898426325344526262733286537996300530119186482123823185892873114674349909915466967472251315384695425975865112003943324344271955775576828173921778733596503272953944761753852290305481923558274363168585424221024991986240127303757331552927520875043146054493363657040504069477407727218175588164824496617695812595975511632633688221264928761537950378306608703415110060754961643439158195389016060497690867889651083317633131715201185413940079555627030419173465793573573818281418718328119947525026185318866518196212610220123677096199814919345651319393607763084084765344572223102885750744499310757229622394510908741726758840934025199655217575159014960299059124476069506452645860261885493523408823925497079949632205630333781440662629574800347788106024610203201418832121597850794419188110912597324025538087680935133398132032189361859563496999510020542073566665251039478140554387544356187285838797410193065835781087653707416134925841487462532238400560853488550592016482768974904234366540183354123418063276770826246548827737789858088169755518716810150372270512255162964388420327393490249847866378356619836124038011349303772863673584357350422267670221777949129768885752324588585226631556133784618704680743090415405966973069528223017058403568434629826376346174441034240466998054776892949013330008286293947382169453685783817532704190524254935658536621533616669413030006051594655404296327909935633907878618924300097473394666254439506099618143973291656711031006019147603651212417999094349015235746067918107064856966482147958402871918196678078526044033313371907127441522805167916886111758321309545686307120477600524720164174423790674689808899184672426836527023603609083325170121332862628069106240002286903278494745403381589424424938278246751481195162463922415339302248425159577741622836843594663943372257205065683073421507859662133545364797895673766921250090690129543320970702818143383559927466995883333990580201275550132652101257575469701374233317192187163214329497671957446884032258978746088498002929362654585271628479612255932923502443812266137194456546075809265691720229041680771356366544484555612798915691469749318743468938441005828035961355439741954230166972634519392105536515199536916358246622327881477407009616005982975123993454309458827444175199861705514625556740971875112253336903168668320859725581120530081709080677811400998512455587648167145969901758566588962464121444274238319864558481018673527482091265574584987495248868103897628013061864728253923430294517527962992663973465887409668095172002103342243671107502340854911299724916810853187138448894660731065091256108489008455196314348722200132130729460103394057214606150738911682519400048246074290230360260074452735765279243515858513215732831461530669115418557176815086658149306742041874267160040580991104561668463582001538726452006973033008085356762287419833026261062275790924520160908431819556354947872312896803630144525624555576987625261270095258564137248403864214064188838229165737928062879273694215294963898252944433351155260717730970442788510506819687216407878472774679534106925946124791919195213127325162854832410434057552614735725605958431271467243025049486415652674219516059830251329017668575961438743072670850448330095618748193567857822530417629602267528568147029395415874965124150204859158536986584069047336116075370588509169965892587151911947384100672493103319343607029299934908286908877047332256954694805001090762564331643292103324549547130170179861625826992205557182604094127673425017847377732805071927620150158964847255395301326552120320139728860208402331985622828233942092134188983837283503609053066723360023151513792432943288901373645234633566255540189728837563402027078585748040630657827783282953734589298162409281372870526292185899821950179826854461937593617139716744998385141301612958151504688603408440380700947329189999293250044507156441242611556043116918759712044510609331187177583002817999751180494224437261608601078052536724626727255035654621490171080691819674330390622805929922761059823043158103175702778812668506082923731041395652694197751821649923556212018547906952847358033389577489196757095352576623403533841395646638159909491983918738937906658972443054152741032034483992581430933196411310312077818854937694923368345915132276294259625983787398855198240073219440783639461041937040866127819804947397465944510890079342788535711070708071124424500772309438130363540793445498637749651315454325093690139939626338570151486033957696627505660705265632944938200784021776870534631168515995118209815719641209145741735430731390715035843420005658778727907289759923107456006160179241893601025663199828678045921041135632003679630480438279203993668515911415650579888426178761740579122655639997951941636507827182627507071648321644962071088496205647386433212284621279416421387026496072189137991078765809404583735435018079440309175511346842462795546628350251343848907815159932540620014493660769707539951915820493002615484594625212748596789549822845438075660653261486322078280607929616529947700672613486556594356589645396719467104615395370210443320877352245970885277914033209216787122052213011447866445293802559442898013685147398252787978658233777377412152539590092710873551931168126476226922305085154568205363418084935827841370804261779862055306686416628543091867024986339323552083851298474424777140140130690138427825966292919253232063378296338013502231493471997753380440427881312957047391326845744126520619636442511089085586699398742593357802310266198731601523190632158498040015714843340027076434163697351730700975038609664326736860652966004474733652544114755940947869474324248254751905316764747121721946093752190535224670557012912022163099349864045157586365474080031726433807725012114956043779477034720275445201073179659877574491696324522131393983645030330132668840692552512490567021822472235450104609106678157275926166722757263881677925652293038661345037074126172178229327314970455833409407239600060022127554127445060918829805336639632497470419087410172984483317103694437260757265402852811374336822050081592474119441316916978078785089663674540927520371150842716328420088255428695027749935223089243835954315071576476940099573669558185473377659008664556700099203259040240704451249734177136476249585310003506008546307567558736248281263925369579632731723838735789883838172107092023061438328115567626305050584677317618147045696665044596009928587757313619233117103210767560711433683163197526108933841124942503588530469172395478101226079424451297307452076701633321933574883762617917504515416100936372211040233100123925083656034001556286027138879947768491777393995544978136041217244975675598979533248729440596349103347881470792925464163542628159749870214438101659110563304836357025760286192459678046042098905249549423915743590533664853799582495715289549288914637681055030841732884410953549872329041696387808988333364680214794171952083767026580619871935514809938387574691709380245979969810260827594767981804684712188292646341401816546321543014776722812592476510469987493684648928181781044162763755232723962638465173528070965709694371250342277214173773909783280028022721233630114073705440255247877921299398269018448146433705443393378503307479854537143261756022563052868615645131293070616523662279752248007416005951767378364542610223617109979523013778577524883541387777336248872228916333036792634853785148871152204663988036588762909762488977113664670468721308430931066233132484623646046436197840595700898888609842407560206409608360082625737920211118726353299953230721896457389663912949207100771523408948743552596745618582706510608933369874009242548762063399487888567630667809141176620191948752441439292009387207178990756832767802363937220080140465582820486634102223080407447839406757540863113535127740166818075147929675550576537943037439102968148116201354206761733624588920098281990649133533447980669227433594016563910328003279081611901429076892577449002106881827959076370578780580147346295220110858208071243568409515527057500032375537568489078741221692592000616657257426296172857348339245278331025889267381016625545591357977803785651577021564063435445978171998690015554471033274770960579998889106891163454769865102659537203376573478065244920175483533602494397621195139627006772635943175995007937647605204531515904800598551009034529658439908387116975886490806235186362000960127420475778188326526188609032373426515866238019696689659087217043915664969242345090867432469547626011344116570007233951300949086913853117985233123872885085642261416310417608014035970196341688390796058483014063886386144181259134313531908808692796298021571572774886977945375022350748279476506032247852640030656878297438153403311190907473501957188018601308783672683904541288774345749983962758331148857570519381576909869560009020774034065073584497564987985055647873578907350214889628123864896018074381581648632120537115869414576725305828440530522636678989705264854113596486453620707283308971210357182471833249328935928412877314856696097717399077515006581854024342717627443335815691424542553736583428986248555076897526663894646823224382791026396372760406567733011126868929428319455826735936472590783714791525142594512904773363529010189933045527241997585572675601165598122568468603951689652422124365638336807392830844432960697994860706772246383763503276495154854491385514000125965114560380277270964718807722511446414901005761551989806024738558152114055020021158175722738263416349168072329134371195699088178270982267998048551024798133456978783778511901542093736453255661174814756955711011471510633301189310488215501225320123315867142694821065361663417641590085494936472752493216831874309007266131661431042475070687288187750165152447274661998085501721557133358389892501546472084753042075399184379960866231484890539188522946808919867354776387675129879635318171725993008310465380581752937885807336214377678419583818276910739218295698946178895562794405957639315139382150859299468226427428931803585099817587956285214051071295886071028491582414788891040604818187046543926509634527503759126111674680418599249918212225884287972274741830647805098374653500194875547655276307796702692815547033294726198300134103633119866115854462364803522025790225799788530946371407592027162266704216853801600112668641333046898202644283012714386817094013891468025585857867098431539218780412343719195099191873631288406703839077377716221157427652287048913618752990225013520252522804664831123350211864149012060438979023118404252258639643616239516307618016809983524999948199815434497550824767065133237565775550919691883199201431204293290669543975258682817733258696010473540457417255084752036803900430762532402004983881997494327166443761331790135873348910816095871922503872343720225984693486765698096136511410305621402039525395175601849311757913621738302499896591411702285716153647719202970168930988751067396149713221619050124759981444419244166604613226804610279204565432409453310764263101780088826016547285760753255803405529889031279497819800572990327016289609037199227546066861341728120065627120388413388364038724194884677727762030604979589585454515677451720975783195817848678697378643431430860192098968938619000550853555747485601207542191235441481548630639103897939967594346684978750758484669258463579870018828176372946824751690013455387255247376434364373772713582752332920557062334439637313863381366720405539719738852821558536927125834743439815177466359442109819082790130512396042320398735999544769986013598687711945880264491144854222536285189588643983342465902768632735047619386706238896269257342034210797788283060451692957758288789999153428722368203308788293119714585981210028228496931340251328041006229097089003687227912869637905383844860257217509688002889468532106977078790390190982533316059125628381148189248445140730360729984473711468143087227453721859647743342799922939376716281378582129266254839120236309474976979502092694786053610249656051341338629182991815471958105671343128930991016744801641744011884718455871202997326969404372543024374170625348046399192594363581044492525695130605731593638174018348293023661209124757274256638091716634620987232325885846424353353948502111228329215974921978783579764073045857659366311793982787505161118195250145688318043700803602296188436707103089656531000569256724390920365746929620282397127722523300486474576900844125459545300335324732897743163482434887811934584667841312511870841994141890110289998263228865562071439014130032033052341119152445125754488185938973352235503088807661942452059780739778500424703622926356224990669886054950644580616837434697785673206007562767014764584409743514497616008421689690125388076743055480419629893495270622407382649309245179593363892653393635630250799804662052270593094440153124020630947114833751564335991931969276631582484170636476139567913299578871181978447357076334455957599883876454732634187329589595469873799887952147976510130767427656878523497621932907056410876252605473579549937758880117332277558658914219915954990503633949354754701323577901138155659915512331201619028388674947288972739754361985404380363266556097260624694232908804773646814495666257506049004802612566817546486330796274665790956697023135326071563719580646334087320381338574190092579650040283592327762621103013372342832329428509345854351175934052126515680233911852621609663366894747368225946197714457109708730445083622417826989539711634583272016633822883751384548010538448071516142910350584058878231743570217271266331406490201017775960834825655457743460945255386583271610879802487128766715598413548107641121753051634861291804143015984818359158700210956958601433915500968413575399168552124550258645159627765549255896837084957995430783093754500279102320764823068677798508628637221161003827554252546223789844431840215517378260697249970785673867600769710110008111914027169510360303772074021869328330786501288813355792732792707425612756259121311040069433564027301792275273115786716187314657171703125561639116784806571630329578180214616676879720229410954920424699848436482088150149399520990393766715864628906295237636689479502984988303982804497068990923764807767469672275077835965999662887262027392760322372341961864976453781842665321963189656100985948010443579171888611565927954315494299644998595205786582920032585173649257548633226083488580093785998463237810275320491913736171236354390790557053916373006105899116844631026118831088563165378670610476524941731375600798511880125496016503065331123435547523218071275769813912780899394508330739889197525537633783195838690432506337092139825983340311840793600983857128966481830371902794534768991055337087937472087838287364711074403597948277335764205649461726636486570354238742401338797639418655059818344262197002818262184609205220571087760972596417439266620921182519810495418951578621993860434696457787630069636855083661568835033952761354099506532729285644050964443735215455728038681248774285884756198339223283076078426617834990106588932659109485160802117049410159531251270054104770643123077288653316555544777798098243891123121037029715353446055563913453046058299728288522057548973210161830739313958353035760086304758340185787259110234763817304620712680102852354768497273687967215469055291387980229730328588248029714208169681911368036054076769367724678281782417553188003249923755356863487939165275560880461510045120998607781539716888244659496109013031087468040241617797094580264230743098530561719864325004244122319925080238032489140652085642894245677283046442260136481973962172655861438815338984275949848061111958835208049486781797255988709637943367028327436221370564802347598293687034197618928843097317939185817315262657031522268321189191759920141790824207208833051512393230577267148237848549497520470098076630258824004068223825397750705550434764929878847841069557827517083808010218221480254409983466696099610347724999650662044507046490487353764606483393436720420465611445043876839119851793960108619053844195613418568012032657358158625561917177363876688270467635188047875951801932674895983575631915520057686086998506123544487421365203442722128688132774546854960125468852964535398860076796432421555359260894123027939375980591275930325843609888668814611802656345951062460972096407270765451104930420305520169171583147862586554536891668885255479721375679013637826696671831710323698015654807731508843274383701677570405717664330066851672032529789014118519449009024478729971461231727007055276738368756279755364530263512155544679594805975964866691221396088164796028255299969984026271369501792469256874400728884565319100742888012094038243322788743457266285675777904425567414840962057679892727431607029284173171692296275964508892743736034797955772930215819669560027005819556955218539812838390966211630038232399962237255714953668345924956897059428551760766346747916431757673639684540076607406635539635341802688213402166277627553195887881487741831284684498642318630008547350938547765860281671411891895397245617386315271264359084128869933119206401834980086920595490473407063264556240288126260274743340289202406492848747481004688495740647196316734503155444527042691728895193492304021205358662824990127882334442891383408828035746613584380002077637998895385342753119214827917519968754229544813949408945908145503445321365289242959192786175654916009137128653422767868970935582022323892962489491734528936347708734021092914866651502657761406371425947772390031632379917859661091845258804205876856969761096322470216804396300302366814138016518753707310385898881190329758150153149692055091366559694690182830151383702863217743412618273342136952981724546875827943452439658863365016680771868796868663951627110255702094712979491366205937333339252317383320059920286733273525096356766181411707705439399434995188909941909019004926846045549488614935550034854405098076221864906006375888012571726670295570275659943193813122322932461636213712867862772706507928119693938211903942467359244043117777480217337745131992949910660685136024382892935098001863026427683126501593200622671936921627634947782708514721469455633573910705060352946175049723617677279931401414596833775395664200566142900411881743060623085619051369623731938599324544101877841649661615877722468894169377521080556650565175077363818817681478096599765547314749688252131017536898249025308176959214584080217825678284044944218728931405619540735677516451622202987794517874202344825207702877834804521927743390224316686223565326765275768335448126692495152520277126231861860037756214060753487286787480527716607554681330618241708526549572808258843052188342720717305237456258290594801795042802945233252956733482728516279484181631615594355849332762129666564666890461241004998918249233918589803681116566004004659156395982029661435596254967133589534078493591148898621841588439305938125946062391000480746956257367256502735333981587318146544510454027609050112338369105184682097028038120689990286425286110650867412469718962774465493692374304600824710459134074255594111266912893076322722806340651037232980819105550358696076040446012933870943773123951815764302989743356878533710675168112891151149160944182777387853317650751431912615594207328609222648659362626818771223970098719693287511247754893947840684505920822034606359819658942141064008917506633419757233670085911455510372837610083711494248638679435183176627993681383895880400228060482594547820976520869670188291161224361810461514019365144437372056348953549006315549057938452433978449750311719672867392771815578593298728079328135929428586594619933572317389642051750382027090709067758650431477509287074415259951928984958889514643294885622142522009729453803019431936383965597856616032553014665773111882414548137417585738846575651460180464114881005671054811272782312663619961380345197471847063689245279904152254787114226097682603467946713562611715539153594848935930116964925773228867379799259210588453673313886695304945389842334955766226698865784341785504736873404863295243850591373094477440285901435508154907373015262725445843745765038609567110113651318584470391864904738954244789644395451317020660086848111655434029020728335496273738950694700598574000700131888945961838023063340531829944348582117526970053546781338634183164719719623362593533162850040512842356753343160360061980113312217550740418587210804785166282126489520877566105418475376727208183553598132401508852176861227758065385987602154425752551507276972523904684937568986910996691657359945286848290588330765172979301206722568103095392134995116848486505144601676288527999960820804030704823304767472668261261367676326698501384092696121469797834526657393735833440846284289949118937274623253643073976920425892906807669773262068912428400900232930840833410601527099147234721548771395955004900377072360008580939915999476962636242238526178649836087040410380480813522723011280128218554330204634281478499068839587014570747359027454054409360631126507840762591381016781945988071040834167985365705619439404132434162194616043772536227973355732555226314404603829321662136473034968497967509489294786735976027520221086532370388648794566779399224178138055713184955234967945615962505582247818687793535178557639444687749932074059761266724323717397025628989439591554957949623060220227144392172996519547559951409232561439504445913005706783279396088455077134765495993171111883991704055648874005914556734720414564631202211889697909228617463150007141404715600109356533334715281127687811665831851826226756914337227210324227353180434256495339388049613678049560049895169039468159186245514000443889292146052391803661765987938104815517620540819463060868859219973715813193383466500799036336451751516979146516311793227565148170222907615825704326181776158358065634827522609845748959887158993862551767031833431261107772617169403202244971113030853035727911957613825958439946565902839993775620793855676980767930587695904667095900630090559306053068249437007378391826070146470304634325847839083073024712863454643381105451475639286412151591820000260308895803901180396988093802726411612419496716016163836968931761891448171948420699708321599548036055722821390451265461867382853306218111041148290387438281192381822978121522809820283135859729094605406189147899125981130935198382328971106594786837475785048217964110288109273023704415943375759434215197306980427445397265416424190141501109315941545660181543956773868285694960938895126721929790779228793081827031794756937989986585747120781556781963630708285797798609640341877918859821338105615714768404763441427382220184468838433333079927764820634943560376729444554866407876456320330463906625900708051665135390026699366315194193457375182018326840974816624755072916043599829875387784010020925569000091410062761376671617738050780101514210752469731223791131220074196558531722405928934133217630885327394078953400055482594074980106978202854307512555657922722462236228506346934845812119933115716183952966417774738068237514525586094315739920857285154229642793606754497923466315705173605756608801299272715908052333161650029233793978247526159243049910640187764639868272535298635691832509232068502152709392321748747467502984103786244096377119357053107493506930344102650767201963969867312855692593600175307750641523867122453430701239406891947024944036995580905523311323380900027539052549948994841593683934347435091265132759719233966509739432825545931800307404341924250316573830143672886945772489625814771658341917285331283499326491985243312217657754445008284860956343919781120305922855160922286218168543263455803525059304713471466233967658511300992155515251118958031330897654408297033531286717288966516001899811384821889162017152802373799495981053906582466642452376616267781636488294777833536745052732950929291819316091012084489706872227172034281502255740613897612420623700694159891287887594795081841094703347865578131681230092399702263667361689977225882306588547573931195303745254723655285712900933308584491125491824669024252705436807686923387713845718821166880202105229787187631090299227068969109157271932493609660649320904973117102851635659755185983954706423035188882165467012738210711016401155229053638231561441093912437489168724309896015829572242018854681566050431014772376420503833714444126041050721982291831762097076864500895473135666686468723008542518681030370627209653150300135510475767766406400120399411425660786198435970977940813517742857526240304863118699195662498202471149599595591905219164453814927212967904015993680652310243777725290436268351427028615753263185186213169685845451701466628059634914282293527269574848801696632734819114915807625280496716278612653425855080119692540551033922518295422921070088612242458806786816811355538066466179767067748938244413564120755146439943941115355037783149701519235763481237036101660346700500198457178300061956503640866588626825258503059411699326346728498844068799719689095907190447106714661142516278312577585823105505822948217860988035959271913941491033575274527242055779109417600822141129963724737826028728237091649493903616525487339691126358558967968653771967075985968134981137873674031857383141128149758171340316756758896803200800696835535127771534857377919556085879876254737645016993361648972226597403948525771299657622221902633645831312511702378133133362037741642547794429519598390685671583545516729034225544285636802376457081228593889803500219406454805599700290536886012959147004966581751040037053845809697548675512897024973666350397959998491269002269616344729692904873006226690750922107872155249240167137813363884213051016384225177082192655741038042521859542774157804915284111766600840676977074250027445012967157896716065814586093746563193942306615938093629860944026718598735190463066694753393649953606515306389813409725962161890162293451373172434034994972780279632976323612620133809196214305850413459687232910847086279068167865999456342182139909381344665327689377359604615530688649350695128615856792956721359202390962955472791610199305542304456592672256207184266666349189598611794055904694436296497649027469663651878224276390933947151270719291100849304206727772922537037006524336211779579948252970324792824450062406562115076927724408374364150733627560654884722428955213500823191386818679431702525562207469960125046201143649609111193692458954431151848372425279325341116617597712795758732445220349635217819442668183136341081452559476315217809738050197548542375024951117197407806281295535146747535817969137230353243888021987028932364514005330579661722237263980271206262624251260693302939665211441917844968339040999454686502554884294473523095943098087948887500123261792152620397311857925760050994690942242687876276380506223264798158953269033266685963860646953831138205554001780927222920273686637135486991592242762816106197128516143548049595910683791587159437653185200815988148441897793162599699607752866320886878408069839028229766568418982886559778681348608088867031410772014749923669895898663482423084694936356059756127159708951804421885575999501551119052074857660736336486482508116281544100593577805913727207430941244255064983918668447737900860893215364478049627234556080904891700359118946884491975215296195408002208592787372663462798558549899384293134902464461279687284494312463672861091008317113148460442752411528146098219510584591660324346319504595894986728224625295402376454068223340409754779076603162639549467683568553833560507923556000899310350396762600003430474020770814830922069616706531794012908936238125613244543172133916506302357965579312987970204116126551843043515010807064072196834978622106244261610794444403910151271665163434679536499162887330894817896412555262583190545817618665585422020272630262192831717416299909926742753578811409215307450525044753889017204295380513188181121135503164584563521355704102277342758657595121720803323478398584881868077780610749163953304264704137057985257312028632908458784031125420700818509173486876602446787242635843680214920566718498645814468192322209679769161148437121381694582541232844078493565989242432662151312123558911685214448098037888790728335128806896600414816429279387860168171964727225857515919061198594870526208902206027784113870618848549595469756285591322174296199555386142131053805178022685159177582693833759893688950019384386220892195236308478221803097775981921197952502014429511253545598472188325648813020308957901832442120911520946336643017148857944946765796295569902295404615976628993774922679067832510681804581874961683213961957168179780247270402497912065431661504094238915958774673020914222715038702959328007775236548918333796681701624657114341409464301422303632415615762818814341107419989992060697721816760226858651273206050000662450387537578736178406399261645225485636888933976457097244894977663399237541145505334032344403294462247994345855280863253084452586926608405621242447002986607593430387740504957274194132826604321242995658294438022664399635970078105867698650175347667945204506947343088658179920576745119121494167399182627980909048988035727412480025699331377452509986562018914355809124903620789446110886831593240798951219797962837286766665370193496028659254334936777917283542432305271036131866260017132852507578334569726479005176883740638446112449019105105299399921953546254762847281975989851918927609821651039531708100180920436081318617863585779609220065023248486562961262113676174012153994348000139041398218691825643042557740945925999530322551897099225539132881093022892484527685221647368777695194749063741833665865861702736887803815929165293274108341488479383279490659230020592996923773790199949502534316433214731356883247272878001509590411378975333050393694070198824624718805962115210783032698213112452023501015179956190098561577718255375591547002718861267527869018866840571951606297205575630119443867826547714778207166105820754176817385957693876884676208253976021301301504238362368629104191591366773262541615783544345789405410247119372426838405664029445181207158304987784287636924119825898598021235627910286989492072513429306922144064777807534578300117743681992296247928106988827922787479768095137695651638909951541416608370497590287374288029077088009828109853057512203882057399938451695282556820966717024802068854115649321153982348636428640274666803011478396964531539140602620290008815333820964627701565652909300463978799602127760432865429468540300675377547453865291650949786912464410134194501990808468412226624891044344552947432599620947400765312607501284765322427561607648837526256218194801711678998028181017964266095465285835993371054223556553704315286145851125025641209262125703612495969330310790090009917749854877977106430218072966468997109713730833102343989076075625864657371048894533566447443056779117194958740900013151123015134795387287498191472400157648989563356567846524012949624282781835450191403534782342265222252933542969981023978131921887825609817218820076030048477177107218256508486340680331263685627918991453765514104290417930547657146585782378425380113888750846975897904201230959171558540559158832768087020285917359306539962887813370158425868583634655069618807345163214392795939169617550061650766682527994638452222286666904331990609600652584309612226556505789036886461038380352968379018797588533134809966140415452708406009106802512790303691385298392621741826623771074442126566539564417515693421017600075270048438516076287889109720687372067829411163758384061023613382124069296853703874285489043960418570797134395537228831542168767468964153481654892990883529647713206428671770217417430905592193357042942910290370423962910554550326358649437642875344434130038626139918175236850079441572514724146478998720735832848143268369918670977632926795098794680156671326748809734745399114615767297430044492061579001071065639719768996181588233432244516110277413758497419858360634339970019346069755854335632011455147041654976031952705396169958968908530543837125210958249369845983530175297922261091638965007639157468209476294996874598730969696453405327010959616639401372124794281671921107078187494025146654475819983723123414597199081937917174530780496626540944778558637709986407575560031000155926642737492723873073392644333082805320394352181290271926494396357184159083188221292103202272130729418434967830490753622728816691370117718645999590524041269504722779313769583938591296910127269469824391226773733269709189950424732672554272624939817590623854354832339406430622146875146251134831241735151201668114425941095577602822168496573623621723408036288029661165794917348696484583523901066686923680307855724811230404869991113980674719761046981639812226484959775352439520680241018628437887277590726347296196952621334106122672061892411188089540323026904451145147055013774911277799623020347604529033230560871577462967907494464315744168371849975533330037117433847075303568980960846084972585033887536246688487806452431600202025000995263261879934751717741696103942219717411171671479479312919867369797905505728081384694551586934871977832671750663044137767810197680706543826264344850799919160215457829767803968213338794426593949930803142466170036250257215739664560885884168531706234439531257076094191358857500931005726838503038779292039140780483408930066800862377255216027545652910841737440008807176554289590653705442186375124217769678057558963054938738376630500119976356993130052429369036397462872125787964865713380064343750128207872551561494571721180267751228309217651362014430409898730345331685764491507774122198422473034388851349464409797757282224009884291893673394325485603055548678130469604831091101837327291651740327652791288296110311844489051975551611576611177725510857145121006762813045048115219033696686862377044878451015060291044484547762029857211506150477157658267114890954457413753127758361670921506122362911728264941449896802891081286367571465188871002478763320607015631795026244234180685977445131562889396984566707921328753187995660890922690618043805983647800609514687854793814557702562290637737310280580740323719224765774197984961295737345472863138725635817252067567117108791152266893492284945112708729947705142746641972234452020425394057208377590947192266548670979844390902118093439876390305679506626629598124365941232098522744704355688749079299040175647587987156630493109205872669277471372056709293436336421544557118905572005126626366181039554158365136501658096493148063806103167824277697520544893374227116751209209821961614663564094371475641044585054755084355322574918039551795703500370340113524038852977999176259559149560682487520235216084369385423839503148491057708043552920094529225624982841166811206569686368073972329125238581030794023877830737456859023281975788744617184358882164569701867675422511876495230241933620568495812301436998236210455229820324936478503674139701276065121030061024554541103195937294732940535988478122187051750703736270049021626267507161065192792273970721479064203372076614703155710277885945269849396169981921572428637031814188172453122866699272072698122728056752400640482569036938710150665689467836364000139097946046059463265581960533110730881144129974377216083427127456961730162360805883844349373136044897040574841046021049246711535784367223024291087575798434202179463205993184003861451709014180954184180630204756975650637404547200299037710556832707045142503437316546399612382662454488459327915925759594423404228930692681113966533294593385308633884380123378199638791221312269399430399974818864114044539470381157413568402360108535266883457790498488288546052029352754429758873877053434305132801099998771158955367150976319455248840432975744959812088855131920646801609689063836516038206776025366079738710261137309084233083044779260155792215295453477427946175396368196619564003410859761986958344108836254097182858520790406759352016972812543909469253665453061532628866296915467453323948343472129107384860071771417818343741919717338369646407566436977498853812674247339384402366759990120716778040919705816821576374306038060008016851786837455738366590243521305007528168185024532551791968904294170089774424300449499663827857643509057147402605748986632994872383556004874264391043690113506204312549067105239023576340216906745365051710634838635308944260272018223035982885341384804860979939329988871902399562055833032311479590090546240789734738200798274070310288503491703591174300197307254589405325073079240574411969279160632067727438507828723620935336919837417948710285719505629233725186614436498969153062560337062457860438986980552149547385951748736237310268811512192163943399973423667076651604932671872634480768145002672606722736090755080848511476069460825841917304948376027869739486107828923508789830719522604808524987373926691002930736217432417261232971051804227301844310591668326082671506126618793502834702901609046137946177371998788519621713557602563765825916631478092274527378936237800851188177996596682905190779626904372416588722954646949732955634985399255020226676395938941032252630908769655242236355005261520858553137807438147000484902164064072289337379843832485796454385882936115091473665437668351509895452894202884972346036855520063314373273732716439977047377806543023493478448449651635429701122793794393522292613436737328202680294761688007088708610493683937692251478402412431823022373131185289030850163073042681859829648119693770224772506734567906696925811329399596890958203790469176899219744836954601691666340286603548699849688920639639634093878721363790251190472905545114403348514241829342343364070289967144338311755707113282246949857852705199474154828916605164706398674210050888039549302860428690162331741794934955055630550506922874770518256440023450321467224934620625983471270038757108082792480676634757078239925486793054601599253791981626682042571615709097290025673660176183733517615490349543268114875630189604144262359126807563983061149263413176951929496171071359841550579242154626115904584273937242606167526642507953257095558077578874024503007745944873356030922881857235397622827229959447268092602727087731954681215438443565617362198619737548578913137484083449323796741412010236867993086039824706612704357995940602063513637952865516386403970157311641982599400189616841873251281177176973460152315350718009269177794949319959693536271607680916377189964243838458138174589810516969650168246222450305775171177103916918482761335971676783344016487719805714871975459774592124199027119968907158298503701611075750842752652595511014702880706497215321182325791461262221948189031577009868557694550127600472697289662253910412746430723046019970682479582329965008526772102542688935610555720120334694164416212689192902348561617135767785360449573206647156123803341490041725243595294117352195055574000795546569678012014525682728464486324666431507762180787193353890453309274525488016934105834246845520475848465523245259270184446122637405833397808702745903559435705206854361493389604023493515335951702553447079388716220670746727806151408880559365809221998682844488232281003209753750958314180197137864536197843890671399158552379923721472636230874542841605329044572614613110574531565533121924856688336191125508739422591934014848292092569799585921837843678174876747037424813186518617177687759160869444871625945516637024168930024569520694447920501468514173644583930497908877643892085607180678112709320012534857044873268429110870470165266464865985005952852647517238454668700467686028328122936104204839137522518374675972922715806072464905384872780440279377057357737102292252721945853343799608190748770006649754377924014124432156493430102653753509842176919792849188607141972952606284985010619659493851589650220951415570961617440847288954977030303617828280832467058642075429195339884120808374878551675377075161451812682051707118844897635553609525819112811965821764278567394412476028292965068221467128198299547319517865633805652679489713294597117864388879476588742992106088014204972828225862686415583511724486352155157236825806122614508782266576464992792392309165028645231219682046812324465988490332701959818496369946652181102849264933032168834100001811156268847091857321738785716086312103088326633062837559794143250157376886676647547009022988760653132783832751200067204774488483131218672436602096570434859434331712440992931464867734645453275404086612100261838687550307922935985049216965401729562727576736978366990454586690757341815919792053172746024331264135394383142547585999676570145808712728286861494048556245667736659715740693324374614737125357302996387770760387793882943493541153810388415382997743152225593173943484446228612437047528033728419169052726894757134939252560268111006872422664812737960607153981620337140051850908704555667565268261340900645209879884453007606526191147592360041761774790488904467028241300947990576770832410734030326976576356120620716705601837153939468132627834250045040147684218696832927331396738476728469881756810047311557039880088167773852776961647622569519638840024997491280346035535826851909832851724827834840655636055232838155095798474195395061008654346372924590491309608694861718076205301363418606861543946764125673930560639847203946217730768657168562872144397682938476968622681622986942952907868025724468603730743452571390498059744352656710191325118431331142654317053901202983229097352168445009406707153102801539901303730977821170579155065273454774841779129971496463989270679319434648468259330987509508056059087906362259506074753317803562890086264025613223595561940926542786404518967130913802116726423556905896243377697876903808788117689802539869485954781093600317942266822598478154265053104775949684597143544146053932586735419979838104254091479409989751482278190130591827002757814998091170065683107487057101390956170728503002905676838712268735573959245324909354736454111897005210335305909244533400529789746686752531383423755560175531080869335261557170960517961281691044370195568585989979031827560554812057950099522631357603188159817062308427271642422541300581137761892036209952752871367066995757897280060275041872148656124179099106812109351266934516736119546828924311701453174096661016481481038179247932068375938056179792160588055729780648140828377515690751634929624461807945305420136341628112048920958211162107402296846446721552397838444354047772998952516844185430570509659084589891011583822037179744220982860691775194049658895128011055493079858769078706240689265983810128873312755454560007857612738882119305217141283627137038817281041140589951295024653677849187555224030009221831544644184299845083246534979549239343044146210551815300619616036129476772276993202833393907219681019569554092530765336915384237576558894964279464570181862858090630858412006371907773151339052658825935423602659949873219499686933401674512086111993484427588119472921025193297552524678105671292146278627606750176998002958033875814270337034725919165296270173940178334417022926899610771359311614633702463611335794185712431978254168312004326395370668563841668585436778183967234275404426412428107669645098990332109282111491480284995392982243113879901337511218136391778005955821078320728612877979802856730113934902885462771005771779543281316826599502069256364678484200712977568131764338122881116565862810508273882994696992956756136067922484248811237884795825705422862038285805408223701552901832292082614493613137581974751394388595283406725859653189130241510764435017461569160853122008505195728943357212542515728664430280883901182037092185149310649886004024841469643172557583317045216591121889123300607212241213216452704848095670788677348014923389674708659251020100155888372150698566423234046647753776280474232575916193655157761241666292103600017135810886517412801752098072143663762363189547489375305903125886567223325385879082136322520841480114654825371343163055228532479469263828526424745660018725983401009102850345906625250807660258282547735024004019878887097057926702647296521590026485816867742676003413328521991995551003207755356295259161384446485422583333212617676502738222050001922467030961772662392136700300844910494548854000998901125758187161565958007724147497777150689084907030698628366247821696740011798247094745960079514780438756251351582090692331677589231376701653496143628066260830711893955107137495494348518049132341794610665508975777319031141003530711604568597678940400211442667245841475643736430062320504431997093956024432491045478820526753599497816675766483366916209703235199603980799761141808961268861085421023999521309026609244207983776697006354572363917967797634518575936836731064565728331279151938844426981298537868665952891452070133118328391071626389545467858894513292546025087444423880508979070074035236626446068967620580404089423026105079679267894723150682847187090772676375009584355493834057467973239265362222395088932951532221758099514946175260910257199857921750491083912981904027127271401708696300654131103139377813835421916795654569361944310396227454779437832280008986509222962017907196595815809518782791669810174559905662376702347434155389652486805223879689964880716914539215553735694219802427327113817307011329635990519859509817364185978851650853843478498978575906146640912062161454378463226173702828888180588447471695364870207019273997787434871373011748434356122405844989310985592464522800177688421627660230024001900247701558035175876570040483995295732080959336340645175204486233197931819032655057667337476849133681110504557667091993251184832764882975109378258709262730133575795862852320010960486491535297510419765419591906934822919372842533579405268865496150321383253909754222329503064166129823424640731195895614869680286650517169006901844700191695543460480854688033906189950932450137141910345727138486631697423278502457480047151383052289505100058280909746803556938946425526539414307970197625712394860465151685671576837975779247484268175830643798491486379679816038556074790425097453968407357639644838253579011701565283770622996375739993751907900780180162333336741768633701009229296961687040768743531427808404337515460699066468524992491429497969107813537361520254171473070104155554570443371108110651651813438370084074518554612889771879502424875658892157786386040253100228238816818717617646312037346210491669414944812861943613300637123140116506337659834793378593328198628152176018004114986345947339685434662887087595739785486916787394112529610247162854087657723501046703342779530005195026076840423925089051851907515019025531007123556135444144422188608213707571863632471523040833330933434090427387780733843735345946988838437923819374528028836907094867199705741577063484310050860492690205932199276500328755984528607001948859138362549389003005188377146655525613917615642406258479045911555847576904531218964899953230623822716429392997129789611295987268170385647319943399640786536826718592427735884450124961365146377716529359161174256817409603625691017062183136919830123045305266691161752249818841731599564510209762456877425689015938815268095132421452924117830213371054885591914336137865538434237345267443147690751285090310013720592711974050499213270481924741410812235673155355182547665710579199272734700857532949775240808889207140605363766136073315901692323639082665059155820996766625060087550501414030815346042196349679397521990558768761757571373924850258786960593536116884607104677465666717937381074553081568854212397365218361944032310161748791763133328151754721592405428272001052580954045452861242696331923282214292042568266058878200369564471036110888274974799580533615880258785535654506382772856867082325277379453170735819859230111308070464799683870221400768616394133551124304819015651575338362818227667183856790856403611349749604666002164533858515300239925466874301957653847985491438664400446225135122124092296097388965960885533713518155174590884467499185692454532007240939609393483801722995774720560427548280457327663285460891417758104055129372469059838284824233165181591490082063766033086944878476212640976202266232835334966292717182232231454278538087555484002349571475346582902238169981117164384801016906041785997854534126381004006861520902941540578233795803730839076976434072947021480746470609322023034191149044572432493888312626781399525325041787361643626274331034933199571181388797142606517403325576590315903915702606172162084235563012048161619461490989376332298703239526688708177929054925891753501171399244674569563237202724159773250786222585211932193796243237306691017183727342458082485488892152188877502651730870946119972668716186089931323101595469842707230256446982138319499024890288549531443554972213525743658060685485366878915685866191009729940455497059603521406267707320294201102380182917978083124808976479023586725169475988189882058131120084290418313945146238803494751948340010833517149115924079411990589164134482100534392550851923611297782214329274545485467494114927139380777404935005748362765286240076144269877478873912963829189173451401016730195794077994777973615132739514632179812976296059466626778792810178985870077038767392461750470110375910497782335930299280649772604339832715705133999901704143172418520614039613170911639776276736927020217306620050473387381556312541126643817903948296830631176665195090230450885713646634438869680387335289875310997077703828082567769088811644262938872035896436495462366825992036690947454366249426398275095847046618682543002144213299683615562166195386605053604248675149125769462399575782545787149434839422420998732672106613921191514395900828609837612899502443306992382126465009490845777189059884592595024120396786219596938131210436031591415454854879271049558683581603131905114780272749231005535611602323580034583061106643600021560362784546624899785688976450298960776667733120261730232699300041203521306236620142187939415850710055354468213604566316350698975643965705438294531728032693972387988452683972339193652017332410649081850491842474447449010156324218843864432399338289141884224579169277573384631306684372082611117408589898013069898032562051710221037906971725036904421364752512458157442481621153848439693009586181499139130962401703767252732188646294634786513316299044196385176981220671745452063561453647984001044500052457007598457182149247983371032033491124723626104858563943749141279437079129548316964766947461444654278496893661911200941823309937588627662380550424048435075345742186067327139408424804058327289055297206155537957761982374626084537856324628851060327765796655746209774695918105964062554881418420055669615062147749707769719484412355185151423707168145570681283301073749458661718564855873055370550107647534204914971515031470417081891779957563329706323070293446783084649173308017923664041976629312198349433301709049781740895346222219519261369021770163091469372911203649526844727654960703994600200001440874862080339352730936916166386484818367837268385313157709057049198617517194109877277892903290587390495379452237657859092280024551757765376577299796121324136658924648782016509510810441294360913614924568059983714097013527181408793401773759065090516634397365212658472955565869005117396347139234788947722088562534850191936964555328697049268789072400038463829268880146950680075221323649352810940800915183863477647551061965754775304264393773882158194148825451745908126490770159637612953283135312492566672713897232202630062597764549919406100031280467335665665147772076532447150697739398843330820572702533340941103004018682035692270909290333492149677151501326157927522355477877753987212624412596274901793830911728050543341009727213374211052854393118800236778159035892590284475567482126186545734358864122342636179714975874627752129742158738237801853995637267007142930223447302747600947315285411275345707159753910963096256591352500080255923526960171400841743128039844061598238319113847382086300794261097683035483601681763302050038257159271745046548542884223453382059084517546835177750895906488953568018980812766845945563257301200046728149045597337494909874049782187303114134089476079548658960166701757622719388775831966517887417404944718153305569478366551410216585015999897726648769972143236927475070840787745441808681675512334142634688343812656037706239135246923023389721355977783517027657478767077833458531321821685424010982035176497045111748511678996238468485792890841955055465676872997942559857554263437798774834884033273620164293001575546125737941914299048023685797960622609477880034502384141715312350860204613947905567421264944879115126796105247944442010510393394516606321951601111785038014357486126949658837532404914259722269899692983774270037647306707952685634548557021175188638477963007683908763790006985316216333927141953159681314181638581416104052407990525456306614717318042310475127152454324729967734972418734390908159024936079184240806570195034844101953085246907973076518271849499954419714270555821394234996370547897969372911832043895305589229030130959159496228725242579618246130540464056860998933278281507773758289620377167295827061086081414705738593073352110964247521589621950870352880761477380851136058241189543903324355482538923459868733277439103724319910348387472033302525008931010150815001107408960180038615823301462299999010212523154042994342259457350096516730563916070346450879476438388555924907447852488311906833460649393384861412752129510672522136630281315756545368187000204945397704551016447959213150251394397934886190950387156051755488379707146605608311519506998460937921306891008446285363686739332485940993167692952750226275158105585396298991034836228067095897782183649126168203941667571257697383865280157846400375087935806329585194848378111162321344935776217548350704156945616728991923668302242652524256200067387275628121285594808358614498589950876260503765984427932009665224825703736238489699935608393826865752167164524307236891536377606485068400309620542378444040721107126500987434113993089793784726391539304450121413713451909157890474939253702899212292690567529497650453280488480793962158713908114130584931107317771161655845573226016730042332314176700102704475501808616370692285209014557103921930647359887036877022382109815981357037815735534546120632055730876645326043949531582513804722991638673562297530520798488962436909427660496765833221377401347234936154682915498591030708468063388895873057170318719187726160077138370216939822313046552347776592102189771009776340983383268352448394879138802880168431044844814173792274476316399881130325675805155734196744253831393300477916529213090603168806658557416917985236880983452105171830735625366216291466660947521175586181641559849498924464383307565157410322367221086939863848216638381305496016157570916700999291451921588576749816957319694393124954430643646413117450103763002798704720128946429863141930833140444800987123676001049159684364851432611903492737033357110695704430528225683092105258831888549853475406387048395718883053909792076778993206614773807762592695463806525001310368694350181049721349734854861704229092267611538705800571626090417772953920991722341236785199885076647420843558531172201336715882009591467974937030542040549128605249034988087627756104555797511612711877183212525536663957025075228822650097500700568592826349365222324228170463115810658970087412966206502163040280750810272199344803580133153219325816603503458279986019324473133787233923087479228256564387968773190874438707949229954170489978287540467417042947016799321366707736391043306183180511437842790009605034884063635931545142240215894537738041819928907945972186239554691999133534845268990565474851246637165806787511394245657809383765387629435209710756686001448650293428184787085865319624382773992235333870612363452213491710144389870749516213685172064129596273182042263760072837286023419327811539718576291695141941518583536501869130489666466967377933870564620853055554075964704293948042672860646162099134819060206730170505343254189844393065691023829805783722003972660449614160405160581762781038242173291064029042806542161824247742401561337108357424285801718882632526998967519470338300835386162022969942757692634257623081925689166174676410181349409269504524556727787672888024975224098633588056064251831995594621529118281556774751862565581159751704209390048728959077618026544521771285254565054402843494998719606245954238663959090355532398196654028398928823151508596103204711824991371358227318086960419223916464549488171262425674919735076712303533183077121211937976938600731716605616896733998040313117941778261542542205196942571146624076863677802548404272940234132244715318917108666339267229693591602296208545436394595206185918033227078693772998247811791321380344769227234157068495481275399226646641482038402259284870742804599161582607263994823442679773050152216056543150012789903297234251875195481712362857417949409093544354258491138602175626796920023334747498047468926616672188827764117834900243269848667222811036330412963247779519117908955525677835971914574780684131354086179507858318476590170301903975251057667808391559488075224577780692189005690169435687914950235398084374903504108088752843454872012604963826424155051925914931111043882963012596357426161261861298861665064882484628437623512723653932476377367053427327938535108903397547537491085491534665720675629407895658750874647007807930478019415575468581048722714253061452323383441448891403523932563047570495322494003930254563289263810522995725548740699272211044944163265610745538547161668281864024735034969863389741617224009956171158850949094028777557397763431777953113248417121167763330378780364474613848709527343535219113484551940663855136905949589594736683662475153255055894615962080379965914532209315209195690981962398944120594002273693159958828088735277281313225990866753087253548340719931363969867185134589007873709312432804942358121794625777607397327352815864372769928426631989193626937798604181467215966970863954151990085927382614681197393151626061533429557180131919172986071824564948980522510061425615560478019109251424840370451776046708767465514054958430137428654198521765027938527194321754224454076106885575811306564713224599083372981541869251725848852750637024699251768259246134829937958597344359523847937162655574099514473229756780491981382132729607075739689828989208686511246043322220329122475319610654638727183211759617960565155187703578467222951949799891023858227151194472138444997163274587517328934401502663806186955288495484288833810386896656656582297800978512727355302785430029682829497402313757989696274490863724345402230844971075718184587111528628485908107084941472889661857231926837154172740142149815358003115939146298219337206950528625517476574911400601647438517912660209033789312880560486866620351188509050121428658441300911938262021643278921658186962485184587657423126152102938509045722292528167397102113205576030565573314809619441632618153447295567385192000332548501080337966084466648838266297569705343017516193258910296590564521899576146918539987763292868937130444287866684347231992761247557702185480741934511613482793812898427589515535036868667319823633289143078348879325284501726672682790001737269866863201590736628312703689902150020442045275100305234089837637849135468551190410848588373757978405449326662639458057677011178866692451935614403962105960783861534014967303279322349121811864679956891809432529891898660303281600281896075269227626007052013084363141856572333598488387159365839397292621883052328030963912393283562188176830164762829687766472945012307057882648769555562258245171574825999627729751229092174382505425889535309584685539102104918344869228819418284120665392470198601186860381126799415195295782669306866922612408917189778360144144886997745584128683967679610109986018038444739613519855936813939925579588595955261692783524105220339224386996063096825501535276791352803631241783540726831199535482427901319226524333815278777770968422515451589901123935073863094656627458300219964038765317056051481993117452452199166643744046824871247848556965110159532273590077776784711169998056286895670732372936069131173800683652989800396627822806154150385631650147625331279074969538518542842388824880209572782496788166805472134879148316099541423354333542330993383289600334418530341405508180635990134278017718043759359113335754531356877882966263411289780954255709005780883278730826943052118574420094374390063728800653477571720195451753969074979766916185319052189228570030779242111320207547369560288431722454249718437265795720057262632415620595684224984248595295834874984396933881237058611055107263807477637502540103952480685398547250247235474107770796842594212182913996598832467367464672736148139361883572548746996318408802258891471356864265976126674808730103096611642824087751435935147223092153526695265565309511658556015734758961713393617540761646507772904991912141140267325206604121671588957573283796387650039409564148617433487597524422742344442474276068281439083651812824848638994672915259681424539401273445217413084718173537806410833753483082117579713066157012109773108523438654246970748163503854249721865087233856121460823591531620369879059331701722382202746628270137623417670735087953963300040428761346000369070827746482356060612925785303467445818515210377082889091389328828022593725046221818827672965553082919724523677990061669124959127334538569297335871024544847142156874076255547916924998564081244078796520993386459996035548049290352251221125039654048963874257769687630739608272316721203846643610092101436727444226159964399390554748464637078307313321391620234263438793304600555869765403316414886488691133179094999775907742371588620892887097464094283559684664319692714611053225461961878065840685390164193611883584723847186307218715264035958191358236180018851669924782268098536414238508222801820447986174978468113705354105347070824671248737271190049764960427922267956305470651039483270300965633403253927886751000645249984462076726234134148350061089895070840026298466054836077765743196555240994133407853879334471806317102306458623450597123258352916940804821647161417821255870833714168973737962797789962139625973568630160225888104042058360888166281713868503216951641783261935577006978476433827785127500418225968708987296558644110598763340709879278922355381439845278894977270815024309974378773950851510426752564180135205223061240623924309870582347650174629052199222837173866936757015007928988789435006027657738896379206219987920811239496561952714139293347484912709876774167599114362301961175450251383923418311819101495833312401938538130600007688097301829731939623525972711287559310617274178217175369345986464882422981098196219654561058281799249746749595415399086472641133059563143351401729106602363205022738578859309896627609878134713316155727478451814435255717580805114980804269870147834606460760775995937390105712132195473262763582530165313407667360550055252522566923495519074010427259838666057468137105003348703969671101088000332768616131564066100618224500925610116641765274171272081140080046189413758669211228543496273654190763381254111622450603911994432130104059877280778587288074631339897163999350016944349298299316957368097332845825214977424907132591605441158837096202684678000887302403828103415993899158085065608317396384699438554092564763953667890186357705352399621683148870464230101439716655742461058770501757489044094624052050480293254469441219442954824170179479120416093585766177115256416263548492349327187836840395389959433042635687552275477264173816188331806973491015476895914923833457585453393685309735453097318523917889758330281456272131465912435675867381811751696208359651081898453272851835255923507654061391014348987150944620866096616970473959340848055960727480438697647387315677559978340110410050087208039354808411556582999951408180466748012952164898212388373253210652334401641317026460502116444686684492995575330253088769559336480215368025698563299418011727390098047236982894578792190081863160982428128889722913674568751208172840934483582026126835169375646790083289365946629979775394891344508493960415008835161636269475642729929841596449327653971612547128229879723210345633138934852765174143086224956804841917238445452886476969748397536601886463910670253956302760090042019852590170812548999496527689112773503179115152435783605363674971199663627740169747993555921726790039720750258817883355462475409213115474485239291448710551292642007181053073068120438429822191782607193067565066419842007857911582025769900160622573857794488921624349765039021245341501127972128296636685821131976600765488771152086922591623849373731876918742928349955052545326099797977650978022427394649592683014417128874537044092827733441872074067474376325585098277386786231222370562517564776066991396697208805063498890954962155386036293076256205140972647103847700884247714220783807113330947469882937182255811663672450347067174793011801663805556899698377361081929489185817930800801416727263185682016643522939482611287529310933513199488905293866916693722964504748970819833316711814066732317408909350442834780619728567227058819259308600468272486900378968004711117566626943694127916090558315950615616682564649117105762675930831731564501898904484829655329047728865748781840328365938884908372525693026253718678971585558116522251550816454717514702346507620938058318301989067180893307059632904767082143879785138504286736322088547997679915414127487836976301640612017450354147410232492721551819084777820727242103858202926478374257325049789294448471385665821009534973324841345090185856064955424673741279432371834658648322023422323179867630311832013835475354946810366580715551903364691548434094704503230606231030473918075116890194155500332004026082932236396355250965446198045431582307308875130400547522300853536161773950858097816755482562191343233269393504176006047775902998089403187369061895360488869392088051757219660989043693128855159884499728993975835673708889403628135983001444826598402847150442009265507779715989866575806916995041198717648808095216274677458894251180018322285538081526781555884037112885711766054857169160135403197440430925520819157395719063673460649780149820993818698797697292721690811318636509194018517391123995806758833825508906282316206566497237426616440362817706224232127989146933935857079090243620804877000910236180353636662900522388133205738396913182850176347348446477659642185069020697047213060952490008939695832784229303116591888619702360213522628102336696787996906458489969390281009789548711662396948514732740394548660790920118493173339860762400790953852889388591525442725850010390125934236079854700525319327203047792551510240865464707183194600271971613074615629429337660791847746327814810209128389802819481388311704688905117836589734519757151764398161394381724175159864752678497176597823080960085002845303699856821159563038227608417165018336350196877654609807446431695508495474442332769042291570986408711495643714709444705654815661380884155592562659904963000438805607351657068985851495032570004497415858378463018280311066893377654166465606358982990887995421670053662194281670875583352664898092391730070230054582675785615280231327943557745522068539204070094120624044115742126651065993433734513179347386371909820023149797161387269845128351762817771851926899204607184897795518556722656232771819717879101145756799499965358787601634076671792358915464631074359262553699242873916214829061776802206457889284211030806769078528149779300138631278024729595714437915345877682609809114348394256710858386255976271157804308900996807879441887442222069278019110275821260036177678553522912309058290845914811095193508845662333426603401474751251753961831258407028016123204634367731644357480658782235691194523894244222754997994899127360839415347235146236685530348713640887633786665763598717538998063763221874705805237088302080177228633402024406920291555473081820282389482799486579304021693163875611128314022690878588384294539213903695235742772730585660538940867059806908552171614590223824385203918439977365913634113468789723713803344935477709440381682185823300130794403042751392725215654492978977019059068715427526479447345246375983858564873273377229429364690492431005923771442997541696595842951703166521411924086291380551580152839981386878625809185380925378301389916301055635811844708146354678488229998609903053725362385222094080677897129828537608241912551600158190466861122511210904688035952917171847225414362914651138137980569239884629028043111738740076857438152554858918517501824907144382567777119303987601753184063667477172207583897862442530641078711814385578678688384038530533823142783320532438521277110953640637619114716034320564900116234184026257864101902042285235559391575960177953770529700002909983243620794815619418340876920763142429773335304162098069930190560521191278896738149282248798965390040425222632321142856200997172546702763990687759235813806158039019212613205418457078211966858901165661974031565071788464162910479776641635435924785843673032667054719630557435193671513380917981022701608787767396368736284413733043237223888359317816259377232038919876096975621764429575677230087112281012831984762972122249182388620056410025519032149790111812231908509164959628926559326939601908712822631840884374431608683220414247973269929830935716903494206865989158015418171974292180697025188422049549389347077387154521846041616137783675234415244130906370248947322548271274806999785132482597425885476176797720016329549613491006551712232820006327284670449137458600793734194980399889636489301900428494621169174263015017685737804667087705705555920394740491310341915165456220634731066396516103021396814534558213166336611667653185286231546708657363228846963637968481090248860071597324004063086631468769518040574231444835738110092230796303963824271479727237581809886371485571977415936638608331915224590873440437503997335957575227035062948093632623547196755204624136188846085100755521059866329025792179704092076128401937572852924215498777824614573743522005668100458321517585519477006397145206201151809161847855043092442217456955163397630338683010966227859863781366482776115700436319060848477240774529762159776516316491867651888203215185647995010024371204710178317060281927851897917391667457363336169626708007315295928609335216479134643252417075017356356956919261267515625939774848771712165658578189398210104344267976151315143110009266687669106548090526607304534819244756373031925543601095986283397313698770002015741262600044117942700582575761025908108814747766536782161774307831970259036557771997878241580555029423530210501926814570613778124101289505983399392137128400350381015876794239345903014640336529775112462930327921578929664650840040174390754124904404531509594246517208740543393937247301760316582214952928161489547379415562933093580882731422131631260472873499168368200908431709461905455838530574384346673144014595561628218315303784936227135370681223324039067490520193771534948806157789444257930793606766275999256806914451316491576439402464873046187499098530239373700732633555594886184814593770242157293970393993123024482423428411066704731376680008990656827132600380084236592897918442074466246360741912121328697150250046621411386114346342766234969101417039941954453223984573445156908344254522306461006548150221880519322541387708401244905578734511199844820781667014772384652573483284198798924168288751238240845556822498710012017745449683478245944743810791410010059138653696784872523357416200909304548093569191977628987979610681894862220492449908100570302771393901226936707322920349701656444252855217867655878746733141877690842770385663508076534564952824753229592030571825945414805519434920556762902611443893773128976877806046938517933317503897605354140796399429076959822585790608112477087559421118111378641568814130718740868621451983168136658428438706601795036248553785039258203583776349041312068948773594031282083447330777152387068959326235454304132943015231738040934046404931754207423798275042446227820366945316508469696344552915707107919731090657441479037979534666167607865554027726788534435956756977649473303377746346991667486377029301579274952904226914792425964688304907011007029674058054393163837150624884273259494512652749141353950416694005654088138909707093490118076593031692596630342285173251068683296802310143265481034780387761466149383594626279499422043777390535495080856708450243585366087312459310631205049493942215284979515674018132484094665500940076718752054094873094041102107041251582560487595675647043777366699517227578175533966480125433974931449712127862188549294155252039184324809208062257841706740001501810163884481181318854532070730446352249897559731512120713281486274383996015572415171995553030660439543344609870004507486971569446130635983310233913175720236992344265311634520744615980696419050243064343169793801905928669566449593811523532086791411758534012014523183591764461964802088258485284994299315634974628420513250249482157793677770020516751394897929450916946197713455258664176335260750571509447283979574439777687197496299969489423162609877064238058130943161514615717766274529109247010194216034964038508512779842985160810888159909109624084797285494267651145900872562439281653067241411876122549948772328434308437123317865697118904289917406319508999953139023165185244263036486112242638245178467629281836197457463324943244322532101565395274703711178807645663407891525781697569760848555561995231636573048426451869581091358680250994968546367971217935103135202063282360407456393069906333059029739271629863221967019200639686091045825195271988957127388361448364348575011504916953440464386063034847225445475908382699774090064972375409006382700374848073421147098372555265058339082174760750585357046646973833251388182322586272946540179782360177349003209139113078391046300718336511724738176191530080279088832177403865038795955601835006289065779816638891827982195100323502910040823775441090080305297184845277244928973770888085154814233548541322229015938981357505537075309132688697460590609474628153760591014919846264496902604984486964847251463807041024541204250911481223689052840039088591221869370692406432920052736515255111089347029717599735031884748070380348711850636804518707170092738063170096650830127342028440217482578078484044483465363160184679678267284855271691404138432881965176578759196722241338172253632272985629927296247223058161748218381520043084514784610538053477686942762407284440819186907816469050296513536079428633960451586914268558766800822092124957487204183254129937192542155358594242308920178047085129291264417604661375224765474756237407520206523586208735969455280032209418522782205473845238295889135633833692104067128034199712475744933604785426103266988452335785641171976468906866551000626690009063223950234117771616192958519746557897858540179540156741121629810848882019101351803240820841292949881094865362787354099866583094248229053085528429519204377249998103210275051608171928322975575980918460628412357899850861603909204963148237600332195356100055497385750268184656587420383371909463507540875768483280748855704087423574768895946287911706131978695281201372986444991690332042760789954508441664419891816288818461652191520295779694343872403559421402430404224351789309885972683279675989292000810954898806936744727124646476996809562932261483568029361311109931651193652411934691205724364694479239794240158902296355612771630617599608968928172585901488461866129588727427757981232074688073487235389082215265620070330194897801785588123122204667457234132908679376887417514733401466236402627404959470854812890990626292715936442725222937089737028166644568096467641815467321606724819320092138028232115052620141937209335281484091021044216525044380398020237794479740145214330734225126504846164664705401181546144962039838499597583336176115328312163132191499420228338643367734191087293860886240133839731438355231778961893389188428807801826405323675919705047035197262295498654519721052098755731589200892608201768825066486872738869590349678800360549562162934827151934792707771282889945706306334425047512799970414918961028369196326529879398717786531502015156378094412521372363701444816671392847296237370660392004194216457224901355322276764982582114999408657139535702962761981189831597824972498459359984069329316520931214479868326476233470314485326129524083747089650430669066298166617804745848094568426447747570064312840421973430837737695466120130409949703000765083778277369692752305033647225498340968769052517168980275465177129614124488905712826356027364097858149509484458529966595255085247030411560602580157555935843738559148831324164272291706353931536676200769794213709716386886309460045020364327568725874675487087625000556450978574255682116375014887711434035542410189902322304213620018308307233698778313980757473630363138287358335782624982976259803214612062268234081796796070726366766038415850036324310083098136221017388914919545339637008465819111365567825298609877694994453246446224758100509052506580817248769098204669295199169252516225573464208497157753227081141309640764199074368967624857429282097714614487048330421823967441431072297423061213550431925138362495894022164417541214961870475391061503492849653592417800414715574784631625180006050800018535597692809167207855623649453780145895336946248629884998190129165451640493402507365577864032715583329490127096638126689932160124024696016966686456615290961748224551823482560893816393445014339584522502291230583586171246979082304615768009756368583829839779334606513855795929418540067385821357422899913582746243898533240697021964385417937662476715804850803617801411340968264821357402779328581545664823099343760227872790269309281816283552821680829899421761680253595234148100045264272280411170800757646879998353039551549230987206554631219946776511587869756213271341074207495566579078971599807885496409675620716987093641894381066146801161325817100226469891439727680726112508311573630698031859275473498385886544808973126572435049765203658915446539191718867264591702053637977756795147321223399278921512991445022427474779820021304980099200805795238181826937376899392137643177119604460271122281025820245863764232813916620979851384201937558632741841826145272636650245308539115607928562511238707814989908912950892205136763704366159668091645841782513686154097508401127847886162646835628172434498014324321083532680466145963695459455587282624496377955045954983184952714293419151048132501806391209059853153348683527649991087395095139368751237163682941746982503105340998500036776735929664589030917106219720070666285201774477873456641878168677334587520095760653657789817019041859676045717780891751178898770480121714678853854310776725501016767601750355700359827418458234736323552364725060630738096941539197943290274176570118579570701463946916253688726042976975384888659020425896688965460155127762984316190358457513524250215916441251321035874831440093817207191325112743066147732737839534730137397265244603996955774425188699926748288063713323779242378027519458040606997707101717555121784731143062339098217779796447514774796569023558543914380972085113442004466647872233411215492545575744441943844054800831632987685586253707682672381500995657689493023876946131232020314258897837354489061807504851893606061993480655580374465834560014631901604750479841261960116547845745062321464372590519255964549479148929739579840724122611875282285417470098527580703896718211185322912963335846651679357610224658142967565801384979492410913082456672341926508660933482904232535407319580160928839813510510135570595171072632355248669903469563068584557572382261105125339649929890156161678006550342211651487348736319298903784594252753390066467682613753826051961734199779969536143945430879914960386952089807134412358179430682841018777301707041824691034454472736668543126037235992081005976841294615610409154278467751522818562565697456659248419312951510466855346108320155426066547149257769139786480575734296237979003100490989068388653612760620896061896341276676140678589806695808979520008306121956053589369886163065011922740274471709759236601322966842900606957881179656992032758417633504899087014627315072315851511249492239020979825377392095388475396107962177646170802806466868316408387275388020195108186236167678170263887261524915053721300818787419689388718389500689819438472900632965418753554492702033373489092125683806182278404208862343639322656488202976490223299291464575173240443614965792237830182249699847677087360160203289075523583220840441764008446837588586013362860976849643940676483298525619706715973478289164111933205420131942417332264070104949225521403808155799524636197329473150411594670492192552831194596816491397118771261324519252701750898617238791468211230374633409724471331988203828177053212570648633623737896547080105435259469567085676261825095434518852684895727088988525169697295701744862511436414805558848234505499375680459626760068799538704543758277634664193873568004822356793703838977777565542773021571510670788415324441571190038816809650612446170773092772848401742375308540461728919601502758505567359048651659886387779264089548302339262176384056815203216931766542398690525914929565381801293537267258792693793397265375637313999151501839029323724634243619071791237754053382867126526827971145186830559942412244961786471377994003334109436841760189037946966956413665854756544506648941773332957068255355015463627639824877752411145642635705220719422082648701923446546025734453777587364614090621123554962833564177921290473967777023381643935371291852953577906262999257798247397918531717523285443830333528225859231471521134218775531594380788839824377699942133739970336422191032797610489487825231257659920341791003055495371168704560018198441492334985684635217606356426544368134139504267515693423650463966482513454843896888108999944969092325054744981553644582771344066464704788312409828814215323504868939773453946783139884869375035693887335158182150256069248914273609470325472460420891388221636178453758891148181673091944983462335479306862304066338138215716406538368763972969682761722836720551978084829254791139381476652041369451420061233400393753454567978077853682877210509115158360634126537834245409685993876110395635690837006198807346896507597443942444154272733914019035297977353826545524264410598408452569086352604737442613924347036216078958272698853748586236618162877817882681857598733655870029363377873041364385336455628616684371241811348876735065291918653196115445606614736645125676788488109538008053566312171767026280794124451132364073478156553922999748426105300113867656683238018215777183748635357007078774520752967643889632031183203235246239102917849540864690700963829627878162818551572502385182497924549549676305792717808344620486510927099915010733311722890092596401145428678078051023482053881274611420619443459288532590997954102935807468345622662306050708171368044764761263475053779515693523916250563389211174710617646786320309377694789038836151825997458208349067996163366359588304153672961526716608294190241500700490475833079736494847803711703061603091791052139687759760945791974814820645035313922050946701688561983576003947214469086928488723651461777465117707127820432597783592003620437426577940258303769871554693877214331631453260777432592978043454502409668336468275619156462063265986859076878870064627954066243620956094078087924688912420754656218464806372262844731622901068629167400468514521508517353894493236274541248105222782027239851254359111131576447536212397049616453251893365703819547201648255212840803840365696315221057667626660861670219606841612845805661225948103893541177051127041668844089882912253388796876763191191835176773430318300905608164226432403900140702218107538902635311314462580928220527312543853778552960049077723141129103931991239874032075802600992453887488919252403419063673002487600553287100504404197407152916500863732740049765530370209702476256650157410717209986895258674741766206963695801443610300183500170072415896461132479322419981398552965515906495884741035391281833460040674659774324609801398623260758491389472273660372941213953102196147202131340664857920357058562381269673322025749791295724392611922128923105669874131928864847886512450779246129296720511064479303538332925245820327664750921750147313906234424675734269001139211046030033835182426138620287920395142188135537637971112663654136914257912128496921677874839991675546267670991885192691974484868332665588460223020274477261838398558666047159185866469305112239854719425282650246150953673444175291608573833292160826008489048338529208565490700771506279234986486239365305835906895323009913209452940018119852318790765890862273145188399691002850485307101498944547928446500839672847391443172530488004514295842329057233113581970042682097325975754576419071975422451833999516067258680459528239412855365844223812089606051687131186352306295323692982806682006235214592639715531351183152027046386581922947537917676271781523644233715479643145233055958138255171991473468424757780649676056099056545527515681869110590641337116909392673275656592643129387479321740429556513824130459826661545750341758557449652381916119514664780920083083968973081832459478052086310366298443315433088785048705702766334453662743776255093219539810904360100160618252353210410621582511338984575560257590724952100255973855816361719498140319310128745246163591508318677002983116799501775648329826481986951507136473185676787330140832542980643023680407189583116274612247669206934105820171247182560618865579661301086438781658893355282872186364373853889490919142073171190300950944124365847914468356380519478670540890618083336922284632258275280272301205717921531682477021446618532010901014338392639842569113601941644749922395879599928116169280520202719183299959159924887515940223179742507019472432166401491891421039613942186279596303828607772552214711320766258581031220916847220313879228638529053696323305814172440868627667596348453616545502760775080144228017290640780423846036673827957355015900519537128981439519285430341586144517455740531769491052773646751721555284513836993591401630598463697119130943661806913860566603889595360344736770499575150156306754471934331932669125117579277177155769384425058466943945371917524830086139960229932107930102236953440848539057388803744386616117218498643812222580729938887395970718686737439075853699919565276055749372793694163847525460322548334982789154521814777832348613005288847114699241602776607941521959448387869142246454464849497134267790144504180278446663055592521725737989983457887378432915159168861751530345226155637528795608388794959520297749781108909716737202597951180111242789121677522682691222265897423333251696240555806505243398557781208824218969178469482341322952561125453319514011339889713893794350595683418696638504186660487216786861206485387833993366550109264044324944506862719623884927307639361254806573468386376951767914169888519932587644006268189272795382933284703824536610016585213567503490427979743040055907932917077587023778529300356227136446657870606865498384405771473902571801239624169850897734152827247082257400508911264964531002011245905808411731487106778247081615200787406398793535522676464156499088889386042595107521374955506177810227297430076372569521704196128786782040652701466810648646257854799760335612688050475026168696987218673568764440265156617695968395796457399438138807593873121000881242186635433182802357918187311395926359989923185744778382739674199882962592822840938422741078403684826359511692528187052178377977405119632024483659706146522226114625114502124034158255111484210779540988355175751445671121964066506994010068812130032469640726410580567568932342642024849628883494866759080767564839919950998545502531768647836796943751779172708915863029233848724920987987230406874174787229615408547533116487553995663777802949121960779789915003186547059336523213046324391262380757753695774544861993194406980870690150579832586190209637126531963785477711205280942816399366217908404987238214241304449285882748740728771707730490772061761544486145956130683261442716985452987802749036031879673687135041610654506488254967501312962565598055483378997450920342470959506904348593326000765875186315758003625389787054791998987514556598201816691414456096032123990067112558989736627046320923490938213536905223826173355205565083134637592255798449478831340023560540966984818246964696542366841483131639146402310460239100977751880615569950844608506352918339254717867598134487061891519941123402707352283332614392663876704302201959282085390341651178959731878760134857511927426625422900748220977274315409212020437634446181640331090019442355001532246767629813098883019947762536489747262230103003056881224842581803075241541343111271764422848014612529357984874843341211309019442272112304381384050442176064060641365928278366410404434666418186307503426511124330514547478267242839106012240208725462112949213511834707611428977696853545686003068383490561325473732490430037411829344995096980352014917018587831010450746532672775240283583492233828018590407962548346968376506763203420806999511618487875190341969149545297653550189906055172786881420732825163829794573255860099268713407953406510885235273753218435002574309315790397034197933150107568747005457466657427807662610573572162469480690878198225575697560258291470387790485687043763759668694488705617584111859196942520638459066980205625863692862295799780802473268171840568614126493147854794410938089182809381999942093849044639401883713795487264529960723573338347789642637974561497676067342541619456233234539999264424282009845066468903899272646635481398900584930868126644378620943649650994319721726076007060197481107289840020515646822792312055129487074112798496139580114366562453089053459763817712799884736010753049631661436706913278087521566859400363502482913159761368343728025385595493260714787176029446777540504873464542453705306687481469380208030650640529209114425419434176173362924762034690138382349294315631849279230390946403371071795710319594078493874510418167469807374085932176954189840986614138687418209457072704769460178611704455133712745716877824060809656996813011818052285745441117603949425266839129562078730616279287091646158820718304266430857256403401750509638561295009576662546399659565256209163688188881754453118272642786352761734752109780563537912861743391206181796284439970891313895111776760483144710223758804649600085437353391924286062569353710608400555515873216984348481236311469483456153418761229459582041481712850024499296547396599519748509795165502117949166879918784424005646321402631698571759298511044894606075029468142934991226970217750516390279119835457146945370305748265510372374675748831361148013233604308631223934185788066986760354348655098766046232818047936406875603688372545002007302385942861550572592941746176662176472243878268481716833234038186691207288915553025444107101027574004769552358524139599366557711387961376251081310673591029618137248781249079131216302908809857850377830074510799977333915649659604554986146941459197385639518095350198501198100002768314653077136800820354904773819563837597650559973506009556387512076416884102858248863461512900152972381870150828151593021651521285659569394547957096596557745657493613528866133454644506782429906126021787567059765632579719870709759624781664433637009601965000916373089456215726461068495576732118320273503606846592576359650003156175737993797470106408326038329547055507612232123759903630416142573697147191987723632840622477717827411460699008634156230080602829523860151556170956439278483586780033931339107239732531077821914020733576990110209295708052131870266767217923523427476156839494507702413626864469939409836639049147513271860097150810486688827581584438121913934228191314776838502376302154496419964382074441627191258460914203822562764722317168357504618522433774209706270657200053092442078610563223482213347110562008115572376761249584262767029056898419652462373279934993736270727967551564645762574814629562246319529663052478780446545791788213877304022477986697506258175296550127520587462226380311534859945434822903486786051878222523292503566617014262898105550429222762170852798723326869030654787559464780680367313224177039723606215687051822604317076720827103749922944854204540064405218539576109882158616782881223482758211143275885963615581102764469640888809930601903300678286284374052185971817788746119756914212131796227556903887393162304259646414063499734069317191756561472980758818855642343508903746278114529308803482150243748406106348407291347913161306290126386111012713096835253676557122597562518023981368071162450045394279727136338421040177309896257690736974160780882183396343914973464863738384353295732176323056507090049312095166732088026007884462703998904747177474181592592651842382667311162098184547004929456529175960766101051330118760357839201683416499950009986918441617580189253058266695375466727725769033277964969074684554945935061089209476461447863252540918999082980508794563335350777011066849926603925914773613110544111346460973229429165450596667655439892980793632304881317816165480200817016061826060334056261585649142741782483153368042399100958099155928534161372898418129820012067171856665723609510122810237133650099374822081827523751388547686005914089924931974012645896328789186802283689302812183478822605229665692067709987373822500209130746898106067733504296033423180945478837486834712007646501114157715888850175867489467173938795159480370499725460341755276342406695939576895389355569318999208531020862438818891900976732450958444899659223998856661779713924578176978254295226727838533794110095574218664337210647225771400864044541364282647290881278538448278275240553834574784734962983067247765576256464608413742163642101187661479838922038520460366295324436903184607550400091455350457439307926724867945902807690596696378299221926495019983275402320028267687028481131194861147162078579330658159419773517602072960677424211358419312069278622027504057215314488138836765738195835270339450746914856958543431424776628467717704952952183678859600864547986097914009317840647795387489488814916769763963760287176651697464271842497791311751924432817680397179457509516996187175515966922383735507303194643692454256289310174272405489008470123476993534156899452434650707254505920016028593412516497342856628317725866745068448032915142735553316958777338020276023783491226310664307350241427809485979691470170783847028736162930150450507062279725420959205903886325294090649094602883555709787484742724884645596937381124231062516583925671780754906666885463950780369928755252510312465050019626942599235373314880199238570042869598476310538227449330198853149964743185059807216540494485397514953094994888866645590097193977685491979101584758918368675214146273711982517065424689121360855219042742555687093331903452250408458241282707153649004797943264013664632841240981112121634647683030202613750380043796194837821272090768506446564462568395797050735500135948178950525649581576780697401937535268658782434178278829207129247680012613372589294880733606548981673571202471488213156255343529592274825643825691565407357333624033846375475643797861982928844216246510408826401622450624977758290030526114585902673845155445152811004191833653455583373142207699895335938784294251611852650188227156466274667589802616537458361902791193664603749239002966295092168162274883490286054325987378029646458607092882837304438435724996290846459401186471528596389236734122948782017118467646226273216960396710469855728123692676002540297323618143929584182105027290298268450035334728626568019742069930379631323466081297756620826942086228133690645425720412273305219344782134379416591565573553050739967317046568204713520191815292679753592739156203141383137706267639967746589266263534297491801897624213197961836315588743253955011178521376584287640068733778391669524683751467649645811448406081030970606823588043550412892806483254612434296647160077825567349876922256348885880231758346747139389346461993815553956757915072012162566586700373897849068573883866657592540700080511724273824148158482480114563104883168053055922325281954190676859812630618669379023674433352619670243631401121811687453279836204799776183744414817462244890747742750632831447779945560215792785870070009598940809484203148265619144094704633892953739919863693026596722635520740249671883814856946551946771863174294988215685678612378630857546704682649405873872665932610717346015360131068194250673865282987667888585619193726671214348898713474900887305876601764869812340250052668043433860829440680715973093070942845583172711584591908812789607481159116708900152902243736558930450315154895970863128034740329073226893311087928989990293998861062547056786462401115990631735474332396702397163353209128939265754752960389034332634667706818101264587848329663160487976014637994559169672755537870793291135773687129106170629494646560320206613947946751989443345256123761478690394123574738478573292572830930672276334379255431967856338465075553170962578331028899180835420228750602138187709482463784687287944739634569392036093716525121017987968083945873876395196690616826151530942106150529489159783293507006168765066034606309348865369530398052324699124716570380298477890986116282562361924572178479611317904770641772254303976540918087323050728354266476372435843407302746361786731866826550274469026931229179489176880026455354610441367971704999093671378876268920805202436265435885830286379423235241895728417969557709379389026708090938411131412315074083994176053549609552432402098208253413178380257392764451977954276313650503837786785924164374534128761365691532867755130414544955715944788296520218526487812956141249420231776677032056891163963562344679111131642474006930170025570241931479873973524168632299146081741607576613724451941654710879431470103986099120775230359782512529656552535769437200416869856918941125893970674370647118865478860935770285176824675642261414608436534886472407786637392456858115166357893472870006199409077721891905307665531879883737651306638479575127159851319624949997867792989597254476692097828682643830893122777831989406529605273713857974567251263954038902643373941420131555230637510671888647539761273650792247270142870386170235241288222452152467492176072219403722022888419153066224387051176362768314672572843885545362294537500312312644076510151861323161987687920296658610271366304847296898965932634087584112374717853951672556071507569112575514998333032542002576783686120934403273621464636955374561285063923338979284156814959804692816174230236755055708152153144227368278249789318706087406350441779357145179876976830587853890993158672795214994116449848303203675228437409038474337724925737908836187148116973953813036331674033313602921704150505613678811619447495005095168455311023056695690803973079018556091839370465895675009072168302863961015741951396940034713466213003689122868386545558643894164229508105248528328911961107383759455413552280641653631169559670753974131270077018433714460778050650735538643536837721755219961438374579307337636248797578438241951227189924724340584283663886447855534084282471139302509323797481788289336180485995337114089593828037147981566574785463598969565192775078070652336264105512134616173665377988027868852714993710914100869792925207849919799090095209083053262561949300745173009428668128889182508175483002914219077603755314043388456730268919897893652946858143343948678495150937799275721439723969117672771986363382060721613607679893517572462972135003542209655559246065175272381698770417850192657057860475870363894232723440756330299291776115895088891139435318838083391064470984602249454853994699200676793920903252117682948727476244851218360590543678118875585624976950206136602782374064744016418662052390232700930965792064774541888724669395752644836047716437955498140576374460114341545002897113810185521367376457586659488548838149540312110048935942548774385202042112122770572718642288819631407647826927984181148969905879424066063272730803228400353252985922122049311379878316194267354096899496945673571118281773993762225074933541514383527135572492422229030626210051317467188144916817424543824948815337668561002677963725252135748791855031980635401825419618744858732343658853697849136149876150639488049206132886428172027217447415911091875627300947487090705427392324830189304875132168613108103174704536118287304567468453211633313805669241000704158165810739685553518169800290814853902744993914413588580384614521496140309038846934339264747146175567209234170115420958476604295658306252461077809469344413433835893846965641435488481332392067315870116932470888873667548950260543334614967068169967181908874503559290233554371929617381702588803102025685215376727399891526240860945999284561530783277484827214990537004311459670852934633943092211968172778437226120251943035625143269911082211466979833888326397036494900991769031510855658788990569011198901202480334868412924740319546224593856740289487122009974952116530254339915581919472202312771181712147024434231518191379702893547090228454348770960273128521856972229486333742946760765479360230040646063397932603369851957851192332805305116360797004950995997666132171029168325993296865224467050713977578361838300443320160196387019357220873152242140118802486727143324855732893469187983283185283336152250376380614720742426778383910734525191895251114551126934841134132759274685413925278705537460398029101368265048772505938286154135174909693264181839087588704692902949852295617231318716146860021555033058931091679841107349111209052119949377760021520777725518310404338888500719880870735322198959432423920290283854001162584557403402401321241076816414052823149562006964606685039959457128387749510680394575408955624900930769151487028751603205496954830727246136793520152810103474420777394903430270391345184051350114778256220504137517944778947430717632042018935337683210491956590359686233001346171030559597174065384353715470536752315009470128647837872337905232269189418949358623566722448550971256681587204529450317584344672106577302556929080345300809717450795267878491070429189057106598266007931575705393745468781492433924407026209278125934398660331672681273907013207901229583113837550380279644586512978713950974554856826288810143324534910275657221505155143365431013660057721902457816681966632826923879121434534975427822417161418050533741262097954519661014977326924777606659203006739512424148486087544284795480209320824113482153468121881705129349800745350377920049865516331224984180524452093765096973542615191029770447453755213051889513739206766389768947999779682370067534304255928398547549609294365972463544153688564662759895848512319430021178017227353408082314682820988646885581019058923699119619132682212987445221617582093841202609444409933933542637551404751693657885673788586865058739457242071248423874389849890547582033465296525409522014571719995071367203629458872865609622049597947651729155244070625820154436316746815308426783247944455483240432609902495933260597810830590446795788049660218517818153266283472294476858206094014709717792891711585119510542861926499513335257331336878383222318254026006841678743449679905618387229121713151039863711155745628709890343256031300404904755307332041975917181327742967566148968378384512961432569315633379398681300210655774860820894336587177778682960414978196064821315829559162920311413717598859318039954378598159819346187239146613433708523419299074048894187983747255981690284678670256244142532993474016306954652620427575119525642380213150522159015912149855555181155690978730144330444032502329407328885429077533215645544859259375175995701900971830816104068111515725139212430784093255991248921054488968634690691951311992723319522464704642005275823320956650832787320637089219232533942562388875276493617452130978739688728873665959656508858643548401123067377964273441633700766463340131328913599630787593400561218612395031819952130872459882916652213601563533065480541817511258887048867403271201105933571953130186619994524367400265900805334763697186418789404359391371475659083006123850977983090034446139396947559827745001798526770377045984463272311717397028443395509381645053355039998666892163248430954138688302460052315514932380418676199213925747262700614576415310795839641902580648386616837446435848861796094799681961020368515711644695420563276890009460318499959697968755987422552089118535613295719467968417558045199442251886024841097542080073523002206079332639249535194469480613506773929595729738601691048831456587649312805836292834394157072148001664738050438475711198895698552020990341325985736347815029913684769847415991298448267638354486883834246393345548733592650018814713605376675601771385667099765387196242800366106893891383940891244363398963545991360227402450559555520066369236914463021294338012739108955656312054608016717706892101648703473242157113685699315128838879599864204792774344272457844763181418586115727341417193767251233513391586917357311075773589166125293129455845410865996934337011888152191236993304172573500554757128583331432898445762551468300683426687768134341987069671005284411724637733213014159415500606486532180375441980084449972165157822631487849457495762047919412093318579141177232797536924863508987827003845731796779602255796265504100781461234500272725196700783281620980573100235127809457006900172860956477964161103523377096417726122822142996080028322309926535955560685325205466604352716814896944388848514163843113686379927894423967113891432562834065097595646000976893631795382102214173342165217528876347955164430588438631226503200509545180641038022011685220346000437729994099323656637876343890272992776066735223450122347664905340789123087086264848227866656005098855697184443911252180617179264076911853650140611675923823637442426209729605528281808292757897650272645404550285425343926562564268771698989883078988236404772243984206187717862834663504830382152556481287614906538710298329937558718529216825871030933740123706754437292618963655157569163472925654511716106770698026386094076903706098665623887663834781075489769526167488517119570464392347152341220758096907248962754699379333355935156828840315325578091656805267701533708990238880340120958631333330612368163380829702317221160857697845415303879531535217520849391732509971492730209269177534210566042033356929522218049413541764023951041729129981328146298458861013373784221350581322930383299904399386595714334309718775367087747890504472914607219109678866118563079283874778313159969981047260004751844142687029095567190406925335067992050265639237979926394016229136072718505950075455086843188480246913959062508440127113895359244788636690265712312907224671664519526564091748356179461790886023582800709335504754072734719991553146102356492176799070920687443973496312417027231443870221983010699497045950238008075555355326015355194099769062456781259485643800268285631753816093887240397310112982413743002135146004297686176094100881918980160006320983290468043039836641046386455320391623073545162508074846002749351571886638237846418158750983587679522793641620933889801668588215234359760415679092554171671637710115352910844943817663264178345459626151136536235151076025429481949290706899933342216703246410910697408480941328662048057771916258152125235579365848885161353220257237130784849428216659532815255298629039464448189879923619591558161845311413506912468009596390551912788770791945872381051471580209402633169003506636507266081197531906714456055389870185705963259764776997536085795632403277193115600772575344611175607364104348006648616776810132357427076690979415654658721448544320874377534439427442228226352038940018667047591957286814545061402672665051459633144611358671787310688550897959242859383679831028996690854633660811855755069351757698014382454239650251289558632621790637507264973784514111153568330380330036175807634833683710181825188752237488279144918002278801392150919158290807889407068257310064925346545819441018563796613335474907266921471083712562995916400151976048186283897174314536179018118002985610522012649875054287226978769964644147507502676880425572988984774596689369549319264703602576934304344784185329430366619774878955852657315965454997483590308144333868227795728625378791494348718074595132468579502662942872153896270502528937727844273525180937549589220818820034090148269654817262283261692413099772116826189407398903431467028075731777765039179825370101036756818277859247538349160270714875005977968524184339155377933524920207718574586943680181274685528401806536353516769614294376610963963133401705606664598430296367895019102755580392509440025180972823377143179558013680202772786606106490086437064424386320059777260321552144016007286542599163301807155536656636464409969251454506843584333419744398534872085133342254451473831666981800167322868782292241405798461565303207287509951704105111419400598184814552116031895225464419770931827556277355309842948428045151840627297556947356589901205819534160272939834323486625219390965703237317170835846766289219660186293835477423079697897563429085484240697946225239698450112523286612776311788817550844579006962116023038669129124546730819458130850255754930788912552603571446852668953561998546256980809897323341759880984735635499884565087535053245219144098688536467999023612050906428763881923212585570644007862528450739761329325661479929817353553214666318284323428630727770581494953490590763339380295263117506379730858499118400299945298554246667808853882579020656303848207275083201493290216774619337440503929974546276248170110916519868102175236080743978896462118999321754805274735305430617892981355410929188315502769977449682556459542165299276280157136685075023315549803310616141406556346641804513030009384861489220646548683593176177422511973116912308434707915421126637477089102301742063373715949619330364001276411508520676064415149330381260111054293984864767328002318252814991639417877298618355807084957875009803398071842938131380807337814173865975651201175244305941725652936169961614113631735358893948744641917887856376027878458393265315979062681609110181273264495956724154376900402428057743966466309722810219679788172046448742240287014527489601892810234680805180949994929269946113939531719882924381198626269464177142003163847982741020642667279630417918257602664862804254858989211156965287432970038324048392470523306679198364482398050866623292982315880437040788855307311307600014929625381059912057704350092222357475663284838076879727313616481877824055129399983239958910943767069207299230477851980570464944429909764560871704482539296024376926782377541526773917508454223511200342288131010698431382582510859845890508234912382859096200574411888298362066058078981991669561396111418863098275314354861682404770524557850757475907187136152847366075063389219681320308287269814333367449086554155028989127504747780345216344580426301789587947329880532526830451903809496333189176855332539059867791526542371281892043880305145071750595189025495624375948371942638916853212185884650484247703626069775431534267940107336619989555330588104218928273781803275214415992634977417694712568533286919056046645899271160823711043609165320975073536377718785708153016963385170535823062164713447167659505173334843023936845644406311226369164797632366300852139040544347331668698225785389321456872235789032914198099947392409647501307116391128447919811598946883119116660501238227057753042765111946804946736623537760834154520582130850561057125519376543643924708753811541442821000154733294006609187640069152497895126673988760987762865358188125712231503906671142870912651753869419109704549318317182320788339558081428062335028198948851962084581473590691722506346206179573658308059726506697485311494052302772000106234324971812998365094232496839041494594583313250324226733174910432576725404687135648547998840040347669018150310172682483051292593778791498910398257846682426023057827954524144104904437306429421520301419869761271726973650102449290926098625504838627446043596802334428593497441540621869094927440154770223693111052913097572196200587216512891563428398341767301807944920440683556923319120298885588794908397969585338249582753323837907266678180098924162118318874100474873337564353361982148573432456142464366572117955299618289564608101586914230673765046155948948220512750658024158489058379935339151998477526299332486028446994770156860242810069232970401328625857787497370465793803904370752976833994419982153088477294485359898782454860696772497655858734927990161620630914876306701640602192565714943823069289583653287762160600621727597971480191330739681925385602041065762802282454970483191223371316160086349002203059290898109823841313152665334585694473359089328291018012916504359197929338307671105852666464356858018859415532901148702303600756830865798008327381217873482706510987657869518853777394131968275506764449667982900131570450515499249687128430467437392487313401644551304267471245112077713605698637393259933995432070537300176170360434097953484799760938239928926959972681923276139558593374054541009875728360687420584883319642125057420921205607335412659555565914123548700162466358341763270526208901828177369054902570960327735776550010399705675871669682661342960043152481956946912430235123093476955726221235723553073805904882426333624204740648988337422428540486214232956145319161349256645983560955460085768495294082931135634636661146487419004187249657255938690657430214877902999441087270867825746689253171966779199267428667759906482410919046380233452308164220333464335814012424051808178503484539242283966911736834499160412685740703186319956004456237333707166117169408141645344598547401297332171214729116905991952803563228940221905403262326637904636072444158823128502840809850532590813468051391805487503254885317822471950230812153559224569497964628665334937594101591015197766792873430272150888018738292036827265171875365582593850387637407183039069778281133623834342007504617379771814284178627234308807051100175665951184809630111836153005679265067241574228891437123681390310806423205844543852769249831692519904867447410981971886608289074485118631092092386045137187319154974024323022081364682489627562963728263203571937260522182267961449647829902875331741353934327038823822975096906480883412664445909224016859682535666363446979488589090098962700871805029048944935860976420716052892852161114965118043339398046931684122037357198425880259040868467798574991066452720583338037773646251772411153715416721929788778060094084258558660082703459139269059282220014450624291240327225687201846281873925100251407261232774766749414335589420621756942503472359584410807016211526814937772130432211498463959794856344968965710353644626928961350262513614489820983073563119780116302752137712552702553946145303553773786747354663771655341694449324361450743396776027819405026239205452823819957343568844482760924798601885722213488235102483148100036171674054176517971778486104043722338156837534911734942685534888721087317084805370994471338366194595074591472186490027677430459338027315376332387661755533460411596388852558713172787275754683626540973743847716362444855646466190737846958514083954765823008748261144189779205170813992548673194401609556279396036157415444356178386755902881162717245852404421217050887071361846839798260340402335152347641038549222902313634242196972524450527145516923383071963799788667339604279906319865221371181471267350622837920745131871466990348289754353921172608543383608114768803481697933949281569998437973213287637114084855519704373313110123869556422276970002369857557197811326658243404598097407879080116162885969467583110068275535517685922351329156625691706258104900972977627285618654779188981352923616509688352853971018829458229954310898313355991689123626010482195355956861943579278514894741417498874179298112292707560457281631536667477408648775499308019620680547921722884479210878939891294225959362155348591954090642239527349962937860211977891780677165735439051139280183995021724933291089976440887320791100208460417799696713992129015470006433324903600095512769439068112105408430953010718894998580484942236202724361454416719700864469398967864306204305905511825053912517995802975067747522986394050378385398187962081224976828568882123226707198432108502051402847905481648441783420146425197676491098551700694465906924396921583113627640463632703175152277200913741663746246766224811468389937440101538000395404743048261176118942690015839377820246847557804681858763496123538628451554782976023003385943367064682628790563489249658473866132978310834868583662328131533028807484419093688681298202107927925488548797859637738537030730371454387343888155541224339515770039733435435016662114411580451381402584293365343719062124552850651146023529760428877120750323780547365730762652657835980008051589154101906395452859767291178120220470518475932326005470832993235166521583464905961312790420821227518915491578455622516099496046061673407880883938574007139897704276024459971303980536306839933330558099615181300794123248811275598472301589222794161464563749094624217719931437962554350152203963824415377846761790489324895713668319299829517783229151603515031770473931685196136428032519103152781903354879158927721675191141066560755717315856325961677162702851483571727202166074514147165548220209629609646716776251687680915807926824439271176768894208056685647563538926842422169119738258291140733430027536339507099519395195925107374953256105202861783810515683142302247509950037342269505943477556284492075919181574966302216877324536864957244785375445065131362556835027304802838182088129116599207729966492710817064557145125629938966606203241562650347102924957509795490710843950847818520435411602767059187767826062133487493543254525615669900017669284974800868089656590156270187513429724369837198667392273160674728789705128805529178972872518079512039610337225082341563582252595165033653147933220609292815072260388127363275834956519957291521597186690664579805751335754800969308257885935538955752987091849450192148786029063096708673402635090478364702637786888334118061481336259242289560960001852083036291389848822033395160238758340027086078354089544051066105120726866194425483220419427178290222173004191836429328949770400706107901622920343691623571225924711733463989090485304344423602367792157396480102408173761623574619516678446604902076018921421994368731331636824942995485549250776068945013712121162045252791071364287830327972983201757554648831209746740521076711537812078992214894962265597255034949222029494188137352093396321068070324413886017361673036542492513148669800182090742368034310520222951215425797990715069600908316169824962761942383292614933074779384157592139338707815486509792092563359072169665994956160534408614026397402282726645863633397947508003565263526357194803771564773686807086313630173532206303314665380681012424866683772837838164002243366387768363806880759981516867720755053408823829778550414969605209321151871748424455020160797468457847082842846810302361435080859799464527867749834457607537218856134266362764038919507522386859169173411811581883648110337278853317316347804500400399605823909599428739262193419497664294870514011944594702697484821206651089305769628240464928170636743515748844164479633101077365912660366171223574124331182205576373136589322925453217172866600810443548831799931304562897601157184869482199598386604947861570523013263039335869623525015810798488094284603694544663345939281369762248302972265407029061003586198788150232651168198450944157382441138539846915123924378917368880220092067044111952574497292736146654938241169934715221361649546838924749111229908801839870408840153602052919009686598561581458362834414095913254455126524710808802630795292643122801724983210710434644083877596293825433892496889711668379025387717911198036053474945090886843990874042313519421910471371709264049298827749128581160011753350603632722280451666115302625866760044315486769710666911639100227112992163058038144938449213953705283256457098131720091880451556593830893899032358131240148345082369106830537484576702657567775604858231552179199238152523669309405217348402910377505889246363632288612229661521083232122437736565941302834950953362260373459647937803475305992006552467061498202352884550657410294035254093270084104917148141958239325286583957830744595550640693910651412056039432346922676728770274776105753059826872183715370933369145290014476924436397871048656900838019558306734964675672599358955105367298718665607522089845516156170762157631861270774940447750281514550187658403247752657634304236441165848781159047063096047788289029422084882036679448338278402856896446256710911541758319554914949780428506715256307750852545562319886482990907308630646010655873451410159876691265385553588236465850445555412966219775525030263882250667357209978492874855150541119070123670649274805038849107762645152489628703874370905619896799864173576656405184008182998638335583689551081328979199147601280748553693544261184924369417924508369743776319498678026565580699483363722208547097579347619365234657401459136542396734878177825229706827526356760910074978303049419043436770573807301232804950992876351842030790044394542479905930684383170662508769801240512584399229815495194081339857934106999152499181857806430875944910480570873816694290039589106011804117659874181880289749392374391703082073856028038864926281875712276269594907364012761337441377542637310242706315742769260234321034689616834623693413160910996150233058784017981326167654248923240661025051883507442270940783848628722668961420772596645320753116368684709622629236054506686785578569231890334099129107811576819746082646078020437305958623316201440824843941240435847615352255250631323406707062037870045814787518111211360143987563826954669795744999650817565967008838647202862173059008019895367899131837837598420410631887007415156304206086435335317209070195171853971344954455538487378799587728604995139032180922966476246226080536615840794940805797027069116885170983168344474565976925208641494628747620632694413721644232661446163641747730464404017240333033930851748501217660558560404512147975776088350672230938399794384323915882340176739506331646638376551285134274511371718872310646214724581578536665240723891273259372080031512888940640713177157312507894296821618474723243917800821429888668056609028019734891383315339773213987751334978993330644692583305576643326419462931352215049071741343591390088303609059316988130008593637830136185044819336169787460775277581468903218701836622460221552723242884634096803405662911942123580482782065741244442480356262617593962109193099091411287777684984440319739573925518754329658348627101060172422785058598272240240277737197664546447490833752081335422519508220733552445727527543097442207079762332651903548825203732648863895697812608830956367039677767463495890193238835393138577789170664668265498460375895066970501027031781032886811480616305492183543132526777431325909918582223800204595659810973190114502855558720905791872843175549179104421774112192246515720144602480889195324522852706339483467543575488516418683776853456160185316664615329109594138111426495059469351364040747696252453195173590101245170451877650133224554831643777825128990244470168031414119485349327652412868378105044664618042630174991574391706044212848016201609873321965723978554365575405650903256259903055058010197584448793564431707999228789749012372080538492182060708174775088593785918515959132606100666661493033926399808949625700438932508685870621971925820719323535534909200010972942792076885355469411211094904360577071105255418069845902806563418787382508875599146206107376966891512222593668550328387086045550972206044403146593218580519826088992836308084860550379663927124925036006177795456320341514419799953552209248034109566965069342022070759224575312012510684028010658605959507779951094823158867650264795639705726621383050924473273402529456089399706559233653935975647344764000881254787640653200240625185289935746677045444545663441369974921280312979112036346182653907493981053938573483391135888284159423240490342361776368039625154748754632330350612169449422258475996974596938277050019805756585572027200909051077447133327228351254561160285077137006930178535810388135004453521083451189371927323359926043088262421431528897346255634893461426288897064464395034067803064227707159679623358579099020152480426941126154841846362535856012092824889662966883662741455845935121838715758787775933104452587422858668712302251068070524901240427272961439218628049221224991815221902569490417502016262875702366082025929674430422270865671563933366470728084165855898305111939009271273710331241908166042669294704512282847006664298862382428999221412640495471707553521843161387170088735379356677269365516134890800989442851005054309911475834468870740472207414368030902082580575274610002534461360945632830041585268100482155029482516477574683513826356542032618103491318393694808069371695939869702283511678138626285142257028172248674045692711328946829431481343223474681677456953902664930617133797369921831376549253702261948132120068639927932189147247658777944837990164194063645106181916844488718689414397663877328453591691179429474471693576058812234543583568914810845912571923709991595870917254386017072106031003568452965256144639406145355375705583627274208350578732693664519873122776873778423678130874167446998588344007722588912621526341681875705946507098219550375590360798160146402161850857017696293095140384813999159891367133741617491497081255517128370016263452402345283777260172889987413958284488042851772016857142573954842228261111044925293659285369424987548767936551576791450091422193349092907971059499715367583216882179293950054791780535602987534047975088660102452428318367590895633444628837054549630156519598704993850735263665327480647885879731676395127166463373164082132032036895151013482102092514636037890194832341329962347340520785525145997755397266668603623368064817562863043007504498077713514220898032548965230110844320929003402653207349306943052883934951068421394686637118509969086481978685511575513159231569721990847384596313379066395022746428810385885096739346164719883118554531570333402720155567005075499897819813501609614351872597890707100726668963406790063247798591960081061717387138888558766412378515160829964634981554333189928695665132707473137356672768953569218996656715233935009705102745136390615356493011314258125096838797843561447978276349243172920920694366011122799210989144868838603609582499092010254815013351718385359912298771152518174760189750662773144012922590053290572173137770099861984416292907503192056793157572801648875126087104319291012256604640426054058385850174342196570191213998992828603270100585398987129142003773082197711249601415900634685515621680853123093922109827142265622454341864840725890471056445930834753090365125643219746484593096758677004799242398410368669805992665928595600624352603459404316567600881010049376542858751929779946869955934892237001573172948211077959253337838577985642263139273740823324898974123573121949566149088393645884517590103056389777925266737274147923922133620769122993895278821246395757168761115548082032277720180649933647324609287903788866678114830068741956438227855545976821121449983366412469857695678015229413494202088472757983183461986691637883713154616534118396264896401313292457720467741181165938474523001608695421489839835966172877028966804928714463428291086374363159455170042448067178008635643820345121871881536875631080531091945797481742623555157399017571538646753963341489131623734666205304418379916991761869787629444071641983733606987696126229795115102269300910084639838989121765489407583484900475471083976877709309574159467416091939929864480706054281928388715879268442315787412456149336106921214126461611677591315087766774788706682649910789088926497548777846502162799644747151662304806669690674050116801571113151343780046789371310215527332165928042628292864566271780436962336961411133031019976738647588575961798653667317946938714034042061327832904309873662081234592138808164483475787048108676352143006061872112509542321026069024993967475824139324873323771261636970711068071530637648162899873777904949639826588794301815986165090496424346241902780055751374336519097882989677655036295732612245504770074410080401157169868113692084632597289369771610509650989232631863781502052672185846762426808383786579839507275181229529209837706538891759882906831347601593031450332995675992485622234757543246910658996708583770606900949656386520818207080305703629080717196703268566406943183225347966848803434006772683818343236289537366578943774049641161361325059338765197419785169002939194372835600267064475780842230735670746034962314855920234800943642370280502852889641742593055217120054901894682713166294231111433317798692611041534766363661111840517072941314008565887437993539342663486184505077279979071604554102575215958329312135457553954639555527433205355242890787389910597399746385451482834450061193302870035723916581549335656451181178532127958199924173804266777784146202054336553650255632968481356360808935923193348477276301704889074564169700775524311793286535227219038816231080630061955039314725254166627296962154372342370977625272060347436589004176265655922487025701334216624560599406753376306698119572318797799345271218570175969507530340943669455276493234010053691359987543792135478777010963651534620671329166669813883379403946592658417701608517707148095206697046824626765453738479598201534633200662905385028823512180246004762091315115337593147731483997722081799629255955463468931998389581626167025225199506987281524012768853667797924542167257357357315995449962441708017896546651888215245904257336261640460968053064052111908026275206405972049519544650845024774820131967459232802655521038320762977319462919685554915746855808109298828600313708836292187938916298610942182899588387352981352459920600238400270354569317406059775216429740957504386469594184473133752178549095689856244894231231088552868164240634924612702883937104708014775115901759867534594531660636125771951112272808524149662580092689858348940575625780997926772981719849209923794915479776560687823312060759160734506754380304513555943866248674897918405714199677069806276188996764804237336917497150465487382161722398685507440915010189856182910547776558045785125575798880392942972848500309961386815422257810421930865742756757466469601883100262034038722714611678199536084173093068255096580448097848974587392100581182781448558825291115176548201989679566532812577195975656685283014650787517097766163213359172878229499002716732621315426892832144062757480349073412891205579267493133481337747788923496410589612058340823589302740685696467573265994003671434590942589817354540773931526567979429356003381715093147985677661476163319490197469310209825478678846937252616208993074284084361160132900935526441190935513784281505136612665103263418919575572406459954656982846995775275292748212101199940468836922880691774265438752885682495710853539935777947964576217273302172608873089539994011863805677272097287779032008946712802237641418194810776460753982091707621253908865159067656073895677472186478659477036975316363371549403838341561782990137227838011995357609872602924311589344035430113841632875079852211506258707658139410182367614758870309669798122414718180811351131791992370959781570452250501809569289244162205959421710120882735920285273121346529147917697003101534029806777386919294567663346089146082978037399524977929900927085836944565885766703205567917983740885725056183521584744477131745885445919992612712621104407022919982172267837844451846030297148833409085151440249074256541402545265861858273981905154745752854869108273098014899495092402218695773578868360113105313910414130939380747126854679337376915210427512357057901090193458046126501453308354762603778535776344748327731742403841864819838380539863894009659763962675104477676206154270677308582259753789356491601213021830259849081835713108961334636518214355301709450584474942962516251209064230907156567060223918260990351823763362311010595078694058126750267501551022911430949670150280209977525771993590264707948028594716412218540006656376067755532401231117726521479524139217305670124404895246065567361006162970527421365024994730923606230294903877309443531683468094600685699788278501177490727961623779595955005624731454832546864505845006451190238061268283880035933937045699572425506976338084058220922945871323550814392652141062060272803495643509248639677070658728846921254228798274950851656035168355981404913683284488708275895064002023610377856747227517017134635206556672314849444912096575309228387533820724310962961642459208454066082078160154066477523577323176309099849860567050214539961001235179333748589771676261684932891636342933276580077343406587971569398750911007693123021050730748582917203872892391259910659019891411839474539471065815330029212338432587641332224355929858747920995292094571968972357767431378620882824868008886806512096272873910757121135099226142748589800987139798574286473318610833502543193884194932800827229620131069084683666593937849367737596125644679393897524498979346047731074961655857262670486851473682462308936761529729768289409345919127704877851006756742572509212557760956926486515722822609300813783970468655827495487100750076883710113617239036382251062934596040917760391414151118617879513329562958060700380931871291242581635604401585852633820300249152320567738574229911758380051766593779261865902899887746394176308031156654496145450299654927075279652484416124677414194984589203001407287471453634532809324421784498396011391322493395801334340471789127161566507363071743557364323818468340938303419720653647042030262705428274425168112648818613925552428933610089992255975990800872563168146657896467267637946984632681676439774806148598941184972156120895051208915774147888744566168386190408058965454831068020268749486649292908781782275667822887791597053007799602039049863241341805252465962912182588146695087014851809450707144565079708902947516390336515493859096247983376920673196117967687731376758921847609122088976399556742595761484064276903959150895533850213986556446147656103004657609685331349415013220744182750392692635463395545000713977058287913010024110898473332918989925511449022109330531443977112898447624206178819837606961508136837789256883107804989819860721440374339902767734525944622294977201077623779255015048362267077298053786339153149143213023024172919432397159352447127148003595635392178110464365416846534514041198406574475882973473660037126447356904257556977980170091534765028117611451361843214005228441453059735206137165662760993367993673227954063555954958667636946108636672882804907446579068892075646911718723545442858595942755750516289604425586701370533896977365196348933367964144076864230551355134968836088469822988255479683383960227134939583655946672660703721882772295160335923105536026369197234354248587060293841078370052906294611970229509699107021829232797147423508812818215604221590399060289378380850782888008617248145829564619439904920449539527936663761264882978777575522885950855262564033687578464636912477306196627015790695377744964700405366958171326511719243466237447980537869608135712560792182833572715487587595729586561478168245658903949541314516759872383815845618790908187217931870977124359530803881173929882352312362130374020547711616889252244344104412081588052847389651007695975699782733873556761170289115562392248438274060169267171119655129357805251582961462905440686028153452383936608294814616304170773336494810306039177165515719046745852140785885349532119927216219510008600311686156763980528678025056327240526370051458804302980393288441533877795898438683791523035210567318512485705727637524041636637320292262699186113635952513380899062421196497179464164396566817912261107076035497517565936333677162468739457313359372183571468683738918608990378613033227271320471949458739994955656426940931223624796932751293110407873877102955078232676938477952798473725656565378179500784523838084000489249458707659971177944756308586786458463058652547673529443025762338177616270585013104060918937534559590075316044584224066243148804016822610847090032569726857588489612880752507984688266190036570624432488003642897601534088507853893216311598943244772517070177843617619946057514595300806820373309463681872641419700638495251586390434874992020788113160312380966848886741469348500098424099333567155955569281868671988003870970290399824746347781171744607433803908095146432863687911078217796829830353312067346878524270742833794229124557031367893098059023838351553400331392919650006964293840303848136202784276934219641344336313510726646079248611789887719729083602949829968467982416146192609469196136629561356689608064344651204235605730024081198199183954628635614048884326483100671091380331282104923310472008652426319435856024086831733538235644877403574934965602304694679419266860080591280186991994088157820758510664429855042564106842939858654691541028989539031528375878305644873473426160159398180034834375191531011788108840737911172498599127724790202223982491081341132838006456045398647896706934012780228891499936540755083996551078678081426435720006864670432834251301116565680368118410759027306690483259718744043008992567546790941484010171533545331629206262536628055909064221690888951070900400883681304352869812439424630717890577912757632385938488388021156986100638938535203542272183552632160741395345561759250099220949260517855490931103422400732320241538777048682806499092742801758808938435716812494087642074803071188826566758365400212525171221654771643839188699734332757170073650947413717270832269161720628879759870028265329654635790300378828853165196176763365304753903029977374025283177074829699456788329994657910358680367708751029654803309259002282342741621609298623511507801783541285901791446516765772744886319180295800497323256047685959291505172822660363732214686957233714794271624558226192950172261369581858251695676295812345472064315310837247278920487079370209983110747455392619977675262109404777340371770545379724728559679004411220334144911490387011281073588231546689335907548831846011425544388368213022165061485724453395745742475543103918391726593785206752337978757169662775792307182273086871633250178827976353739741899692564722678552971049132312891828163263238542524079797670118187754317975009605107057171153247073291330853182483308224484200676549081269620914722713297131159593753599251849133364440917368269724200124904989062403362468423895517715016191494288407456020994365095710708037465804344611652338439751808263649754579107616787647819070828005012972222741012801057122181440287177579726885249314960908741468360823748104464564121209744738360366107174405656548276533360938380710446865000351401505974394758629031264327200789970658114939651638426472599750468898967606812434003676572364053726876175671398841812103540473734770808376748636093712672986921264677234178213917560786805475636919609652636313394212140914669589223010371966124253257555973429113408751341644886441635769116000071901293271637539177461026815325301792712251705816952565638565477685136864041014804675921000321747117823039169300608887391947044734595652891438079979957919429723427825420963095218702883197335425469630049052105082349604510298448770849298138458922072637226162676606853474162251669676267966476378625491385015518020110411656179310194934576502421143847063359414242050350878813771238836597489940773953531309396697045115945075111417788940469539554552429859529230211791666093450845328028623129067297016117870934625813843300742963787834427724194215567337647167912891698530562502560796219885410945930942221775662863600535801561462987859347000400917013172628110189603366339443543099252734333002321551142476589252520889992477178427404365979225014027616681901546003208589577567348504032882996990963637918237533421195036815029834860185076190741316578477380310799196043367043344368703768262926895859849257754136775058902420937394298927706757317918483120773544123919829111063765103869992263686091144271199330876052364803121443840942183760145133304473692138869335936380314261113443143367859062405104328795773305155278108961546063472798527840994612036051865605729595205021225333705236623543322837907085596620028250925168768025074206349069958531486083172757334228278737142962944111469184924891653713838660281695164389622509607955414076253133266640586644364797218466513298104164847442746812570214731801788503339524430206431182037608892575689164944296814080140461813939843348767883057886907324870290025193712049889618503154461352877428621815331755027893913681296481417427673167227557602606284748104429658055069400417126474528254120685805314939803163385895245548961825618985557307880618268596455570553343325950256292941547743833837714477483702384483826000562058675119140866318179326671627641708855845763479975088363887829618582916577480281845528587932041820503326656703019901872607572638923627601126125050307459183606927108924910527089619306314239310022956032426069420319468338783938356685804871459073010525446889119299626017350336881185720629390740663015927838511770628069907999637722021589405400591037395509099331117640913406806358548934839726595935676007210193543620969767148360866519126620140914220312464782138542345203401082654247797777854525435052000538865804799620437153047281289142214981447597723733583432071449742700024699801190191101758546433388404764934231014505449243916074836159530209440615767667420639577782320901097127327837544555929100765827303436995189225677564543955422705619713518939119169859535915875816773945370957763196010497081827316059109095983211736722138168333382008466277187385575224577923849346758923280323988206813106716501579525175088248383327263506388406257421215755697922212456419966046247556430559394698138154873508497753409844190258626774564577483555251304594557773648843343008695938665251047087289453489167592346003553038193471518144517916774071787901642918275280815714386988806783309505569935454307060698450632434489539730420214932540109214936357156394715361147637748278339769365938065801151961246108948556808817388704370509549210196293815978169644437029723411939955870579854744223819770095430280615173567754114511233602128288432944711325069335745974444966084289281628669777808110922217620960015238922821572784886478818476244543658335984606351875723903908008761600208406921278440983279652971015373233055876959437574047402260628497924749069118641183164981706572052650364737731025233129651638261347298749001086202527468006688192059462940098673951782831964423085834425738792070349273145771445729392921443757600309843129743055739063691621159243301810607468289757617913309111433174670754340001544603310912032565175181261972246939288291574955640493121634986108438019022676353740915453344029096274675175549151937868848472904067223546214802884569704419004412429724727047262323631542680443678453886265778564786773803240996321513960389108387355600511537118128073022860830093022095529564654044822950758564983546368058709064862527536850740138188532763275032863359098524000619786218978244338779840108571628012657132956961063463153201480372433662626544060918792563618557783186801330944335928330271544514789675430504589059759441166252057295519190184576579203917272874379648373700671133749438400791645915029964308226742419750960166105889604517208413360551964282044269602001578619176024369893553224092730158912572629894671739275275053029467303771476321229028884469536294053855786363828863185281089931461406625713981602092716546237981961772173171412374608840865701334483149336739037296923480790565934998591750876808030929804510390590558433423517946184410737900683159829229229730187017294107628476792403562100263928933906287876713579423166521324093568371786685085992114067645175120381605098242392784546365309571071323874855604587130640772932152203960928253627521168282450330600997172791429034578758026516333446857407652524922082530227571501359548559099222941776981757205764683882721903431292661659644624556021430971539304413945345936012045833844174899924733715885237422442979804004524811623323873448975536177545094213716066037416727248610068698156024546834200460506099017185989239779936251595649483095541580898035288749981676482230703957199630118789321832557702769324169147952067754684768158357483410542136114870271427254147622914192489207077409779528182084602135302895224319327683698225839026332886297834941241056379547335245978640159170504466108921576581402165543108544147912702026736767376005861950581517476886342691171628616044949236972524990922540024753865474801124770688131585184250832314513454315609456513329886557046603295440574074017735908736964152785794974955502006062998977417399015049774667816395400123866746980830441643348469169727620942488136156793532175760993782373792550086158523366683829698076520451186599916446224796085120908774007373428529256046458282620001147934667377605342478088220145778219109769024389082849162992260395605429477945297748297601042925200761440391125087344443469024626928326218869975214244268367823651001043107132379514912682623819323687646225289491209628929046267895445017433508994384847960483691220187770342578824224326551209945719424527667797428677921141062353549301534875586572011357559596560330314465578163075352091935796282853270868770646131913490337700397684527418955387950049943964048124276320793575666491478445194693722173581384506569436993960792302945255488371399809931973146147159363283414923092287541513667324760697144813302206017779233904706706190850825997012018520915906729708301586830920459542654806780845277967159804491965041052070251637264431167244121784111634689279108373315370735724838830585268533545700699317847725136148446296136671725723028174084315417831016596399606701767115631395977130442344520658618329339207865272467936613537237829677801255597863442933980478704194903609720061656908220179833501148005811676756143116518014755147413541085045176836276292566967855563609155992662327762673278086845208075675871414751348711794810402866822012539294292093472710402214502934572430538257707898592116488012769555857814066742124259582754940408091370425973516685518167334722751456443950933091455916676549501958455975385218994139731424134473581617396645530191219537571493438924175886181619250398573726496965611506158231833861514933244499236333027337281689402704828907990914506128686728808218469535126486749234645904895264719743297097029251476998432057052973534048811426089442852288171157158056685514907162477418162482112988500191632652148589799300372629844626421848630609109127554719942769796287574711952804591298071482261391088452608473289990278911728616281674273152957549068976844717160260320686339899029165467265831057530060819006504071586625213548453538758995185173144278553644889573539965279197190550189546216066848007421754730542165519903198615722606637017881745529439558563607633571841519189555033637699786318565585945162617456749883841846622323962139108505576628749369538836168537007634582369599937432346687765637288393901950653013940359745608396914638971304088609571787386337610562188848535112791964400825978936248723613286168357435261231928973647544417684723437354660316153653543200671808914959541273168561489348943932228656140463609943612741116332974540232166462808964516801868719910448229614653102609111548072699625491803817847144603724035530716805384275211136822903396168969764855742098883888263806149047071043733196262711734513759911601837866505503237052508636782947069961741232748610163341132866689209830951758123583600334791352871875424895499478918592066491412861382851617924447020746303559060381886574778885635819491117581146603459686738178785640277031297424261332283200181419782197131057437229556996108761654075811710028059158806232743952542046363614856353965775719435696558854375459839197475777374208142352040974393106241241605101908318500601381890953635761567985900753465952428726941004672759158068518563864603521153096074491254898898592380805993192113446022446691221890872522267204664025027737657958427222948259775965072373541089465897175937582396748794495953815327608727584352608592056651882378696363102764429982907812156610161168656523779165150898739711403768537989854406591041475688043749088627279755127174970754216257149538473126107233992889198966434383878816135264112448800317566760207833226510646953471681156610894940986937905287246278877475600673094417633654727221213653399382714176295884116266895549765563797202045140360212518739500906157172783545601394224329919821716823837402392845435117385991804949763338220994276357841995461655941257914982218117120317088399721746489606106565562195159125227726576813154980470252321090551188955923313491712848636110720467645035216268132857388149465478066169095246467533086270089803152203534749386531933544714571273319673543764762866424943645210081297010623007839334902301235486230020247186489442281186387789755619918199755763495546551980180355277599046816534072009771417780639737011929267876049686350091601127013126726511335208875941748099994824695744244197091761024190854755460224856550989850348845055092102561863364911773696403399971382553900729975809818411712350888734114854245054366041132696147188238735191702559377082292564639223350725685675381107074478272392486041576110387911986369423308712287512382485605178185396877535472786479523252777930522425759542050228129756956826006260545995476743968322712839955304901534493457538698650597716812998697353478271250184518493577813229762768007592808855272300205337963570296526549011906308996215846849806643198159940938418327629604698054042219514824537054275993911557497814006919228094674788593193846729495003419714602300707259998059020355551730890880737204579395133513245119730882082822509570100709201866243896078742468557272511612670640830343323381554437448907041321657998970967421330015443176464528959824542919615305148030327014917091542834360938178349194841339914716544811481507206895773218859731130913317132489822845298929188044602427873129105444402063543764919591968888216739915392916864636191472064550077783616288172719914934332764788667626514296217542137346378765976825084044587757402283435691570200293589010257169063803934977038137934248187826437753588214350661961968443639922523932581787269352517760808398010110277620940185590291638626978001356844004676803357148878441712663830305604073072771465279004703048765354899302743223922962816868190040355452231613736337037412728570765882523214061523228933689546178973854481247754736324845732588572635797851465514259915460645158931721243134869617091834610203211187010033397949560080212315029859374064922258956146536873222267406127049376267698193674910852811572197252532065719944830170925001766123170654940711071167329079520624578340581713352074308809596283119431466535005760947951016719237665078948183153963351101951902316166585897575278226001443104303738817393138167314252625696765169832213131536165845749367103106109270790270310345329683014702393068942570020253331315001754022518124351650434485493543261304726812951420603500276557114464801643249209921294097652542544781885054294742034256309423286055199221741993699856236998396742121484901800396489415738149020712409224619591932540570733137711864531316048069898340587959179511219560251020724014874290423208140388957430315792938126994532438955951372945286926759519960571683207615259225285951329690226615854687118055610439701889930373588040574852295562054768570950596206159762922421772149404619973893191870244789449121334505586928682564226864828843012591517716033686250683067178352688167953175761550902216194473733300693609135770872012489905013516269944688820807139591318308547042660206966772525906205754545324893523781253112804369981630861396796605728248948055509266629695870063349572527456303975533856566137340382501877977848594248150071442606103228178202850911141857464353010758321324518552528864118338191144742882013516643214954930395433730538550250178306825947447144884796580796559960689219207308852667573653521761399321368047960429154860029688697155313069889382329830035059504969000263449691661926547811470359709943111143772468950115143167708105554422149960800194969817870174103887129840319081743271971366968120872203820027095514500422089029303551638802526948074734065047307356031828966238293728810409006825674519196623071360814719080831128362809771161510369401609829445065217424743022074045905787382987709604170021103937750736346845274792763393560113145830779508873865122336394216902021756748846239549731202247979391367301480359577539912556447983551835086984349901171038960114994169586595802087347428787274873316872643237927691471707435117002887536608248595101965393593274489411752943510494698554458436120404063620375635621654887479130134299836028124589861348982519373039123166172841020134185773171776279847770098985905302547962125007703308743317550874372494358076162530736265116847284003760324264766876261276677444622102325350947623378157056223730843846065373031180793417142355251467675441889112589303943419425340924690925744407941120954248643351859646882459132101735808279507694181402271561117074773304994900307619216562392498641662497588367211727416457463132195700696797204798458039337192571666964179381674954995718562762007603920137481168814798825635333035535483564757455269269886485974864424438262810340756859494684827453600323456369017616797659911623481243183903702477348853188165397571476430985056852965884682148192980139282371663508882609137978549914760952513009207954200054970271773204894835926084627714496775051676194897790161876571508609925510968389379982701705065985279083828840790667115149579693026185833198365173386481197590158718758489260190949551019525592084755897022649070731412679480962326911468031807190839684689496042857469512024659800959775242295898799713996216196777320903165752906955571897490536338504071836340310658594232634035000806892523919220683841158731089074310041724143896000331031688450546753962313500503218169922565421495530638642121142051330344976400815541940876511816285586504490620048327716467304019938584156236388158938802161777210524612400021471201409524571855378178971602629419185127962871967205273873486015156849633787904911878922597132001178093999320033362349103178457802116097166548444212088151888446123848015264735399394661539618178855551244596052328239828851803764641069482384288980904934888083673021662561260367103321435350456326613921676484540216259110283859819939869815235321015022635164263438374913464993352831161122137639638245478823237207474014668668619690077221647872427372131120900486777935590009939905123798831851798136673623063259823369972366672801667353257254209290602650715105983595660069540295631919966042005249243031448455516486020544127844072141982151295926501220484071203827034500959923730921964672284633342215634877633613022024035660495197405628026505924569397623868798438313701536946716227800386076616179501973416454425138105325755906582450765863114980416990397902172141994482864020076501373679751426312874790729782940975377995527062328637221446737593531309372501106999102165875084676000109465913482002820440584619102366573851427894622770931442435191024312398432818430042241277006004322540771860038690737571594225360809300568013811661754651246527785304199361721569684578595580217102420956651291756060551267996850861847689524379313350987782079281656334676992887480925868611070895960882640603009977879153968992455040829618357139843911871507039870576520251870771136879539490202134550083538261608805169790354164884695481055947307317163857023471553875566720094131893429166962727466120642618252663162413167734741366965346317828732304413211953958693227255745316294300837064944781419308155795511788228865078085676713861595061100765883114459018663517948974978055084821410623573942804956246270858272327813957912743322476628329974695190185265912329018486269609172947521977538925162040702604230678546396097927006764718389733832667339334341592141153605256923115783095873799370298784774485609784800017919419949150415521833944137516949749530266752694079016395760023205046346238089521658714579791485009450159169308670418066759344192074442466538380203888738064416675209588552290156289159794986991969613582986479774242314183644167101091895412318473712272869988590614520278478959319715991255287018099377123029472503329040157995471625096910770364442192639379771445273890010825538747917371035083368061133895143851275344171902994492578001625402949714689434410710193542378147704499024689992657537968149445765002103277487003093835623585735551278470127581609501633302331007570918795713160173670373393385437110304367043726010119111470972363278869394326604819146996334293622481830933519439264254325985593703917102294807869561288731607172755523064324442749684612927668364432452034104185213445018997789932995297761203628592456717757719696247202451099099089571278398523766512984569709392853266099887491842414305109767009128083797690803442647509823612411057746793608819723118756340941848800641931637624926052492563760767240666077640179952205805228280059789004312477112388122777371875548262292026040689711287245231412111685699095271053403503138895925839407460308209537634903131558861734678176975114715102670540752880058919724303012094312800118126078173815055082798069757494135108168831647532329998845702061131187500651666772408327930456715161316331703475039675346172205111205672110339310604655337886163399793038072107546376079262637815415368998160519691727261883425406549502866110447000147888082501744979197813855390912339851633900142604820016121746324456840016092734054522146975546033841477780467675926803427878363108596300865593567399939846995092599043189670602810660528846127659501357661153049553211155744583653893187595676206618380524666577073657625258147352080236355912999710902128266560902288543465512331238640702147552122293351531566970967938568362027196921274012798236387780575805859591773339725318110159900498140295102445634853031236621867712058731232997165107432295976523530317221356451046676645006544972440224820836029907331017329354278212506497482160882187267063240044731654361315788111625215432687950268723251907391344173281206690051109824537281714205108354387976686405846142569715274180083151901936689907933097400253358531004358604025275451607624604960385755348202999669283916055228786842718989585378098027216836821193796921863705238310834990790970533222722184748123782400957517735051208546506460971358729920159629000532099413500082282063471837497061975965761226347596013658705154888538658339813653628002550111557566559246422797242545271079786199336436911116504586397803808490734085041797975750033946521714099306164079889506227074941900376526092326077414941834332268153928767163222946479353620261102902125328914752581353153308173605842514580513253667737188933667302542531180903086191846682426530319406545609675639504241424159467382404424750617809401548205919516282707797199896299181152796209199091218120943844686819783365968952788488500271889716214032835042897701273748565312299354737433301500509320012737348990865173594307620629496779661243023923561568007469336805738068394716408331593608395888302487558895362720872850313710389066272881745463789746789246809317749640486869863491330328024071773494650197064609052259335820170423028062125352767637390511114877727162564032154936179487657118845164301316646775895967312343913510403454259396495290247314860909854363768848733552151068166453613015522923408910389843725562681407230403972260351869497003604702593961403180400874899561499065482976653625355986009394982635017693587612997092168233073411544654440401251385453366947180780975813117025067816421266920102153079993986995601258796459792076043156487341585840671306254560493053090817497328373343835304815813284697685337338036929417566925857832946145634979528937889032485332189110766429490712307988138750056786168672716440382245259208911768023840449564049465811461600284483437267823692179549364783125701246345243637520570706190163037107580089622685059674425664952407338533052230974782078676995578446618290776007453200585663146663802619538909227016544241381562634677382431381709588100866166622284983746241503184551988695009826251937254768530557499917269318409342767759399619722011248175683791851804074906074341960779733363890350921068252476944178418696244942416788026324227738238412200747601742245215420890959421048770464819917726094755681509064408845333315024347537193984752768924468494308672169020770872623702023290839450492124953618303771232104084621477251585327341165951772232274284657764698896345884349033941590231637119656011522809887138375340423044709343509825641872464471254269057849486014827208842355881755425536537148403511997930668751843884390348268242388306537319785130693279246115347189007535982667085789402592281315618938134956693800721824424230997779941770178122799831859094560603535871653755038356596337899014632167115328427990965658830781555677627869829744440235873041794926492913191920106289350803915697769359110209552679461608833742968956696082175163639867539897259179140264294409219204505304589283600782761755414585329200506097657247244071543973044018564057722219586669553371624638268486427220784672917287890895068310694459271934167138669717009030729049367448617094313949684525343678533301407905618079315388867180760230857050868229276807766830794627349870586303633276119800122733324680948869761119337615645240674304045676202724078915375232886654196975315040830148768059090578356241193551495906010950188034138622230017300114664416177608270379118159938118129784305106437340528374969780289502394011183792633597566825775679971265243657579641523558183735774287115436082154430058461128081862227170774661916023587410511007791420199653073078383031558876594768632627770306814800884860794516997265360191071938227359597424960378038643923298312318439891502424326114454889747528618838379161462710439646501020911363860811996408865018643037018322801283360258766393045577941236666566730754065740613589173709492092839170527534214468695535332157116458336444080621521854031622762061138491723037581749920590830858448635806293865765555110192368453376137694391190843088958963316919092641680105593267067043822793757770833643499332813215345827638985224684516230071877862374780981679829763246495217939531170525054199064885073099877680704295622446982153056698047505516878252257696839725584311627590282638488967647833639317725501425089707903367675279136359598120164635774054066726962571483634669734549250085440850413795933269514465609530057577855497988273299077374479803718676446781381175677181509465602249226480174478089046421093448734675868418670672036883595869376389542447137598995738482361838025630793105978830669359774546039238294708790180718435926544429650052292352653833350110458778028062601648013137084906263480832380507661950999444716276305166219185182944222659730557402937461543071346552449069910598960067749434050665441352487814722720505948419792488875496173818811316661159856407816600297912354648682625554758230787082830622470656360976077863593085992450514305580302953811698801402400836028604282510491475766628899482314629794916404865197405783750467788902957421494804420829884701323278669838683160874417889569313753084316726928723288611510890614115307770616382886769920213159967730478382236532345542086803202157644648135322086235904079382881628000224899591154471025760809214787859777905341908327018347160934738433197382005903096924659707554879037465030119883181561813235480941060349152759196824929595151200150811777519109107908763954019353407775663093191334513235699236514024110268375157230889825812088138505203356162076709783733201655527850995402493154719791474535398502295616931536117594495251907389604869309149451033148900101958947892677069226842164361321336635974701438669897372790560139209789461131725878902257664067579668212658808255179283121329913070151478692347974513985273040045319182569386961734464177806216444880482374838382479946519147235507359617797289103521348151760307199752545631942158909939682857075522627084787777468388748671952202296915738990480322519841511506804231355292347344954315174744656230795290988176091165118255876013733621610227608324152159242718800254325551285817427354276550061904644580031157335612467701387868541730040586694610986083582005278033849678648875240231337641193463862339073118335139286120472565714799313306582773652544416038422448756675565464990603409428227690338849631776972440147870834069985825618004781060707490301616925436935069586106380583429030615089211149706840491078574897850141582713827532599705702403612768283510313954334635746214501167997532041185650897827428210725699671133001652150386083874971649068474093790839483913206780062262090303585633594938351438303677692671516532072170890169329746669565154502581314428163298555541198333490861238062181809878496870016113698520727480745301392491117723887555738863735227160659452104812306457094747854699793424151295036677376625956936039597473980119099603947192154068266017322492846746522389089975297832778730592336966325604914588339099649100994479845489098302910468543010509361419582570525862064665209201493789038414949067091474577376769649772462605176139516193528553926947800876958833747626449300213006152958869300691866258825082897375468126858357894134812176596847703107185888889292898321016802344473580526194150842183532277315647241174656250992226153036389623524894458343285831007127215921624412802611525429320341682239133120124167253552125689753604361141778726146574212222907819151433647810301159452905744805174342606757757712477937523013152815824550021102400244633096890287723626990443739447857451959009943392097002049457152933817936554316811560088812377780273304936342720349346719350451865050989620500022299896475551322067752671270713631455298073050568979811989154404473057959303699491688520463240519162713636747408795753856634515713281805707108630161357720085219673562041616993763285426476013490474173514264902711579625064933964199652958894867442843877785615305141635770057097672057513408205720676115972622805776443728478198715823427442233087593574461383398748810159986958223606693867010842773719181465313788334922635681873631503369374455861845519739746049774190885160023406612708788479962902408640368459993168332904525613499460550031272823725263017052407353628539450166053160314758926987487286521690665965999605008674654275240647877409159463933363732738594137638413968880617215783389302964838638313987587097952424050414894998872901210774622482648837114377690597238020740530649378057956119237290173100218325404855474550452744637085472978097864023960960715703232702813337093348730666728841239446037367716981928342183662517521282359622078882497919877238116249425601203178105269457524575368492176421996353078700559211955539650770155171927128972544752020012183677202585235341625606148563930999403760716472967014899805087924029493964567930981938608854583424866186135371064871705233242247665207935530242900619054348087948355191698647800885617733135292337757245673950753086572457044540092420602017328720135203327034466672788394658399991803250605514243738937436299776687750665620833399329720534148694229974597125867563878796360915918539630675750916589695781946387821221457616541808949555624505553690081874204964137492616934171531654917244527219472465251713520659117374224325082256360056395204612782958284615960925829719005432702741474993074798195129823763329772285644750266834023273693994171958433368937094479760779020915372879164278376667558314732577694124187185010854138172229013426086153172557361253873826563798376465793905376065261429940414284266841890474504263648482688045761189905473296520467875822584229505128949841758535069749342264622683997018536359982137289267688631970773307353664883678617956328309176671293050371858942411531672349471231950378373591541855748591966849132886404750755498504131366998702123681182119409891764412870322731575739037856338159050318944682459961232921101948177748553322074822017088563122514126059225561875026330078090768791192881864519148671282274794501388199120835970445508934560431092520243767231231693999089308606111718400476549917938832771631602845718192053730527715673642136034607050782862354038533263142706364867336918426371188425118111604164873118921249369367993934449346043903856379754891035375890624026706597403753125196061852762454956931299455935588116764363514206536876949291914588973546530041176690591545332370562720716246520555226680168414304684658010765862515946352525264219636453283036187879249938723375078346616466361919033846891941549139534481241228247182512983065996789566072347253191155118090773224676906159082040880705093644763390377506535607813690532706027392048452337803978671223777423436196694872443682740360778638542637673615217279132699998112203198945424131424769181488786538009549524072761123637406917891834465302165352145246250557142541108261914985299409547177604464329627074709541087829337233176363360584443905274277839791238391250763026376664526983065514979602108835681289016903444397393460864356494626371743968199114211979917062834021296683541338884734142237951602788821458521412043397301948963453654860725272164078696336745826219177344950840230597067821858618533536425604656063804547163811344974075953688891508491862220699251870907748075721935657199807355146902217979427836457812338486986905596642068442608595811220185093360791386661257096732341347187658780893246251834626566878091040139475326224501015709680342264043211484836455053248322221102281611945732028645670432850538300367394254547251098755981729008872384451633769529397175984320077562554533715310434674917813148813606899710406787527204474419419213966161502963182966036353303204703377072860671684546273264734454718605762653749995821757729475161195655244084231503482801356497389518595037611651419796914465676500659727567698012358140410749158733587609849145420779268475909334979797374204310649519319353681186152920211993733095598170280379266821232119902781286540389505471149528718744322370533404376954737814490124319298812664030991924238482085883931159947180026808556773569981379288738996673776356082203421368267063467890763085899604224436044718306057107751316201202308888386259002671627120155701247801534862989886492978309142350683323100518729177539529799750554720813071528583538583655461488171924696776806188917205494337367015130713579279911777027020682308103191303776312251640135609670648824358760076393931401779544159921075928577577250756588500139290015251815312392781710837131202558772382641493055912742046146613500824800083998935844676968553646286156756537189334170428372305256975766206270983650194836211033152215859089396058944628512520534314280876603241889764461447776072466237113430937094618373865375006174595208049827283908906798058006663174169363012841799648267573057915963259283492548180216187283502972198082634991462666340765074390102175640815121670209858400662603965568041186739986049688255139520877589970099144434749759208325400451942760336258238518032624086853969237941828517845271871624866990166851855455621183253503608434162224637453075528915380522712539549534563910759433737515778479947206888142777735782975333740143827429217931845805330978501817646287059615372242554902331360225378929472834493988324822802748344974838695404528281455995765447290576067766579245568052983225191618871512585112495597010858315170616940778946388686550105800431029069537974074721893453490976078947364840116527065169178648237474743484553577065354081881021638373090592090156049662052786267124441541225462214854699000662536759496864693565303010721633536969459438662806995776518371810171632230458663517113563266307006842041108638457492957217756654276481034826088535096004297988806828146705034650380974791515587582215736177625991368516601577186104671017119948700297154202906019151282612441375310964461727949981806744304828143139533268548865698246487013540405278278947746544342637079194139180006359015855277639757534468206573736195527350223418708645326588275706761404117630603298096424181713379973796034182299802096413617209532943292522694301259683862165370131277152298387684473479151832797471566147875308750868286141727826689783650467093029791374509539964392693834617093495489482686169456553034533117033569866278342986480113105406806700872196582455545929302153251962904633889762149924316138717429799576103176497158237640786294795391247605623966612316327747169492843914036782705458765179073563911904474192856209042919286921421996910239519843237070246233605261324359399191253914688259795940276290486738746259694903514522466672750034976107001888589797678294169624090168461742667960876511104859119080605580090200372784504213627153928542659623376772266077144392128916022208902276460608271191870064824687088524468793348929240624717493817329872203381286663935269045955424718470368524319786746251435322697005895751261716454270588984048461102371889769457664113551047333008646726996023823968268136971399108257977172475665875535898775062912761856782709938077480765284702052680333914268992071427646300428344167382475625506984983409143398538316980047302765349808014054703651372123004346070574825489689038107419418643637935436252232315455250183243208776853281387016374770231973512546865071904669073846258891290747026032063685539175333240990008180780595178760061855809215343130633363120805517740154800570729031395171517572997434807986110078591661618231173487067389922805223411361281039905088060558617049012033453995336455004438001056652246969091529188625124723819292624472477838174325019016063115004870587732307274712000374848555638281567784977078526627006081449038933854042333399249411559468270224453214629683678086810995910833867507279614119886596932615306496505034431083381493961980730750086795066316062625781139867162229398119894653093931741411094368042271756103145231209301179214059590163898141497612422129007552694013792526500561055780927890731843634331044795408018201457488194718097917162990730245249054302545009000017259966358278033803864975336866844182413248894448091913222359699633383883760793794362357156373475372457888192897148675255346270741767100721339523418734453746977206890988583246177582917622907456802905433551523264932770615589896115997903944649446275807416021791327472382255520158186618367959731047110620585572841936025871377679148569911902521524630275163109522394605572767346394032835267489311302223627102588516000744415079133385764022626202707636101844787156422047814710004727431477564487791794563214933681652374558143922759044769591410554762682539770920021411735516036443730423402982429851463240351690855404876321889581344633204301190368068674208364771181052421887423139699928401508098135047714215147316673697583332226549458562297785452198700326280108394444525798765963842041156139882871740423173077190641682565309864046423039915891637129311545962458123662979328110455221118818459910569627783342954101497317477427225307430155385135764345481258001279678204144136125233024268615958189364479259804734777359021986952165724102850569907670400185020237094771754556347656907602416951244153606390472911244934186021917946390246828018769353564678330308575660706587093909427713546413814002408794961306656028314870786970361344810830460055727912721271185709867733197520393709117051288843105889438841439883858574167317858582227164992284876594520071786351113139898776380609882501685009936589691297207266346415005174224516242231330767137573838829226344534510145424850999937067361577246607221700644773049191170080172363017381376504003994196495073620566210737839786658754918440137203002884598569693768555956659614112296817003611971735646566444628158686610513211548172555954262340195715436836879956279673613488944655046503286470818142388385787872776544902705591203002042286187783342878073223738745554901049516288792915994946493600746376692815035092856711342600359452268699256606801036156353787340969452058416225267236213425244561314570075117113516169825429206262954951473325066416371253509044490682183893490336305005246741908189706548118220471685044748626981605091951087781032593254071822743899949188727760509529999861125641101632697581578218473434178514046012972932635508165166537175845220714470325549467032267824794375785338230183383485860720037299335577463528592791199969033833129237466816018292032432668885119393658206706109399709921141258417508670347699564486316179854040196014606536819155503497119788619643565558057439802440126666759051485373831696436729555840553565932244619873108338942785785112445288299061897294164592949658897799230337421500839402883812251054221520059327926335688012384391518739355663283537754962535497155482057509300048804440785537304283762477513436666574667468651636668485069678260483434944865269511915251252818324608010377542075820012811683921657658335228600678576320473182977930331104751862906570347284847278198001552984391877155005322268207750448277473348901111820572074434011728477083787512058043309698347551623124075756625613374143652244689535341088719435451359543749595851933719178853105786266602213299466971247725065927615318197256147258642993711394858165497224022926283583466364822897952186059879421919327926824829690127920821777314940811508653607657475311512144400511944334345127771961974936798256260736492313247513826136981675460807247240567253126638443896686228675317170056538782674535252324839441161652262873871429297283447703151736375050337297758280216756638021044488251774590183388056499402810624713900913347223915810371689282506971693737470805752027193497191233744479915791998325791584284300768733169331680705914691220045059657863826547136214861069044800141504904303750999881935756861814045489765369390137984789074568807641181302408898399245107104664041623995607776474473636722675630624963651396479481524423016002691263383337202796827944907286000373338522966696661192230706890441707628503626135718206309196062032332141464814347577522820542285621111934051985638208299034303438174138242852500361037063654692349171773613445298846528470749155189367405835701562585881541996318005748948635273562432172760724549976146471558094948359019430371215783509355679290937475240893842711593760059994342123953875270345240501707064444873625169842366997633382291676448421220467724846175282605286441197108877432445550261278402273690162927384313031213424576740746056023298659496228734516246651824398707926666587200804489968858638334442234957348952159405716134271621523320280998412761597641960668487622561291060295654142505529163288282528783952203526413414034472192173899437419244932209936000190177407626534347868535643290920179930331710896385303029013457219754866882739899539453096426218134478319063606472709437963722313291575659296239132077792949242168227849711752330697968389844875259187533073998260373633890977537103465810276351078135838713625052785799502988956285368122264458905053562335828981376769055023699583242589123481612237809525794087511566080376339043535721247462928200723105587629775328459341088525489575992434085257632547829878694847353923007994900011083638993329197015892936423294521562630153567729075267813720341830642608277412870068814018132008365227198464022179801182917459173872593049333347636289026956968155455433548033417340854894482954155762098424874934204983647432371630306011591040098823964248663847074729807640615482876665328139331047814440420339125903219983088798346614881735161331214142133349355897318131120256371835268179842876462262816270658817867749689079557529596193220656634568363654563254532569530922696845106926944564659568231575760725239966661218338612548313704053039272537474756753892562143012103099550775774261076869706657877647131293292502390573420518117413637421032253113705030789646088850353709849811863708762191303567422972283048498340354768705973681134268067117798706830911845089633982876788624695522921478931972204005259917630766060010036115188211526684050576543681118241470972213015447702540773694045861065302179728073369242533663201760589070622630584005058568829522810712144056165712471071606971639450307330637956989136097313788284627211889757827204384609709736464646145626992873598814757669561258599437340277545984740166835263468007616685635665392812116952397563729424852009314519770070739261491867586468516720545015574781726211123205835069065471858915522465254257947177782060781155010052230419598905463700836701235898240333915453075867732526378495807276151809647132976257266193304860169463823868176685137336089337505422343299537835050594405499588975653654918717035297883622003028123411804588876732022969244690313880730274923557854286598046246049712358757978769176822633774743174649978541974017311335027798074252407570266689545292814698319405473487804683662638967500281494017610995141010082353100485185622701512431985429265230460265938511864142796458034129496716156823582736556717518979971765891471125938945644477400973303790360291392234713927850525031921827960338150636342954860508187376807979827792328606302465040196711116648910669490636388650313296470633659856121863093377103480423015304013779969307490116942356463407392488238121882321819394540599315325631417981349063520972823964765985586963933530020633150312179067419939986241733262103863282728690628083495101358486634160258317744871453055474449877867089142378457142124688729998764576762645425210528422357489239330372552524839121800864671131566256479067078268161931270997266085752826167894437706147589415240129511225642898903524054279664632557802329200795339420135362168332764574173060589166950408883760821809304410852561181765366413385967543872565087993529294861090629548187651907889964393401838797949935628103520778906853858705640177771093389993511534262251279384966875543918723532247805682599900248911029174029168742392290123966477546325183180087215565086357992818490640643330607636659668806515499826324509127055115096768940256813113551263903320302394035548525002173355292570875146694153550938339964237793496545516852529758319237480670358288413168492687819758644426479087624563961874042429236800302089256523999524155495987503889069391871620153977389141107799059116247584693628373748232510749970374506882378175310426780034203671921089975171911254293596921667120038972496450920846885276400008999360998168003044968143892986492709417274586931104049199040074615894399302858607273948400804166072462097723804056214481991322307042247758630910281445316726090581989538431709124430581973970717065692467794335103129967399092172943630370111740184402556158656921948407852485273374713597519454070099657554765498993822999653197985431883780046466601257462016562426539416470290658744098294539063285487481536014221540409043456275435657999195045482519115590289030363559227236466272711930228769117045862849083668610724744553909591334433013693642616237034370607720243688767406089648319817316168600542164919296556406618457789659121081295828254171466154553623946788648999518416920760567063529203552903417181414660185008689975623490561619728552252455766831109317307422477350373660803064561616536544817584575032527475231536931514364242139374876305873405014188346550513122679992448457764995040351322549282030484988553652375425365265728504290920515957796935548351426740477266429785425315314501854228515543401187911424967418029738677937382189576520298535237659052162085746706437769004798046040501491473448360861305666464926279176771983155784183433742839076962352338890867848511881512024338900168939679829887457773460290682234894484082820582142722168738463896375452874916605258459226436967588252552306061888862952240241109961628295427288383856828304969781097345023500807326768323227330005083444757899117242336967007347851139205667222147786251671055214795860954907804102990960888864311933238291582794445148718225639251345668790455794333615551790000267757011605342566361417487093068293041369668791135482799308858200417754037734064941665197761601535382857372925612958765332070074533045368008849156884876026551365692808306281720325710005298383918690962793457569672447537465852805019386351430143951205406121574159381529934312647662194611506639574320821791826941101095123992761765500249924749569905328308604875706020158081858404910888579375475075855118504156321039947414727963184175149999993245191877753606866554585586095771753733293360908725547433006793717643004802193542475311144128341004801693729386425723697676063204963750974245045410957752375589904078001511485634017327943975578086960205476646855168408443711608129829055823378201952067583671457171850475808242932177585883964942089892668754755082023334475362061827142626107324882175100789962887451996989706896884920003023624535991366691940054456457672961834058831324593414145839344517802800781391037624468753176710267218979161470187862895482726811783525628181542094650143863111886219346392225744981835483729866564698114652225852554093913822773692884587787567956226633260082857959076841092073688434306868317591072170109570550050868265469886948379735986433201971430169279623454256207927046242047945920268571445918330699294476218938205202253247188671676506233520085837243278496654676940471452652184905084964985152062339287668062797351107062329245715707141806090516690651746120340313091580146241507969109846631819067214050891743990306066495993782020956125219704017860984851906895671265182354951434750455584657667304031927887844268818479616514177696601792463089756314372793069649334838974077466292029665836332163061046335315339969876889032278838834265376830191324403754033215414309715329340349196007541595982902244598120991120110422039593059258808327454657273932309615180675696649878843763991386029076686032140664587210492084825140415031118099575624046180066713452505217164727327685219130586668664272441124583455064317927076373644749878161082802310129744840994880082191639141338146580554006875095126678104089773891127612828463508111874838358578417781282477713606004174293445925105897720634024723091929388614104903061445720305504883454346302554698217728501919470954221046752908179641952609620746461454469289378844014732433705033365008727551670548076737767984975786907288137516044963414096844922725503412998271056424938204750216345036641170892451212051416005111135924276730167641291684015419201449389455274498593026430229856324616540991815332922030668649252906592625343690911677902802141084954236485352763849069265668129563692718473539417655013782693010036031554978127297525333363497912756834305457519215123703353418672186859067994853348621100514912316787326353652772203650296270690878153905639787578986594692224654132541567733284140018379364135979792985650616226058396452283645147327987430435495250211096883894519471736469517451263268122925074043657223973884691626145460533241423079783973551447560692850532390922658232132233544311387302434654677777804873749507860322794665449830249963408407648862852386094987085961179871106157530215826716627323132097483107895787269120367391911274779557419968760304626295435361424275091098214524006099079059908188143909255073221989500797826488723073770467773289728829854568262649838333369797836440719561378778053846161512817599587318871939764121270331607045121365699698168497037372472350444409853657557195895298255292152653248205611934468096569515509477096422147202289385053812201853740655531536177140204105020098824621325173477154992043231683103851701108219488080655397599380170571338676689593605062136603140644840990242938790917716152032347653280940465848034337814587987553159382958865301593505939835505269976996669017806787117229909871264099035315212524923348865193223696570492078633140916031904492971781553000372816199712181500914227259792131881739760922346025945738774117315300668129917875629995852231524610383591888473471437899892470800859236171590900406131333768391288388294041815559761377030903800346664236126324254031407255968275740180115956959291199388148045138747693609491083746349531712771769464728530371565248178519556784816739076031549547038483835486903069268554716328301445964169246988900963698045415154119409780202674374823137257720013783004482979796815594925027072815015845743984972195020893593680333079657031432043618760023405196596474051446130712871505088877928800219390000586651923457902073491099554899666853852099395790168082815260634379701472221099455170812720218794260076555848364939411975092375188795345779754199440361984791442560508194740189381432242373392614359665516135994659948734389528178135559644507098417261358296712630515080727384062471501025072264352548922539781258685587632261946032591025154155765312345326901022290644392217328457828548268514908784165816187454596325346552300588959266941728724414889323548247301830065705827552547879016840051109230462250703292948897423221663541660769768946046909240279779491401401183715755345971824411308753511195227638958623844807418171051764543500180504021525026515368405479435312048151633848623072332557143145592939469296076834311862824406422673847449385732499259217463923435636256483473017419470027318363031246837975776871878252416136186380073967766444921404787588533293777659351871528547193016204429910419449655099852628600830121256697198196502919552249937571384574417327868961938341223699330320247021731406458911511829932698783352101837772034283478638942636026814931270222424024813768835558850511313010401326946157521203893940830527238262771237718136377090870478815035139607276946703320295858211632824068272634704200110620773168176819844542050376191779390433849632928528417856162457210392097488128375663062393686358149999958159812436053016714485116390911485362163878184138234777194092736507909167400247505792882740536863440941052860457306785861867661870278536821139372577647633562890763441242365420521450116486075859717471157797268616427134471504160055803587748595419658884326389132407080742928197441213790057631703279283505646099372430725012219400222079166653774112858849348199403551286794907026010764979125245162935519215801056503562956931300982005368281302226913101736477540193734365696200263964655782706963529002635390876174984766086823376596093794495206482823557926585500451609266324686147495332330666662404948536406938326247725484737030738219165538952075892775911490437212087796634900264423710731312508767195072927508134518377407118041154771263556470597046416784491573984477263219341396388690113626380183941886344436145368482670046771279288742279874020017575403849312361499857673758926945100427869961677830148892259774834363010221991871306199539351573183387878429184935316507677831133585105557121646360086115820587712876408170618679658030019649325221881367700401358718193728574597724039051842174176407085049436298992657556850538145946168182450648261604977441100124849260800762403101701021615602095732112770940665331610703876780633983730341342211073801087783669786336758145451955569493527997395770057314911624585265456446852938306188292342960903653050359634143279338838552742949094169742670111376981904202043963361621692472704573079030399877628303548554501849184240725289822674320915071523581741312820707037050888359056022080120585263246179988845339473743449728906576518545387415611248182953328867667205387138382251312314373896277060285040720123693532235773944441298875092541154816553649682174483631259286557349926784071123041770510151009498131363041236495501622723371502052603057379275038484778764637215653481393555817202088958648544445728129805077797409088039078560160607318591450651672915130530851002586867917742900340665176129363523774969617130929677665628772682458385616148621579191983343972248445123728442389491284486036244497364390765926360577902391983262121236751062562118038240903259568357469048413249527790491923239261580865715375480907491125899585134681218399731804426862700423973974478158346565645448337198291713245978087813999907030722852123925497842696023621583379287229041883674923275968874196462585017176015722134132829830050187495797723589692847621248840958894682093153805494722047113577626187790019871862765969481349216245767477707384691182763366804306762731336185478588627317722473061443886551248804201774513439417197817743423280262901053452451225189118411164746458474345437415340300483722403973084084882221668298590593908956938140837937117548150604888557148227595455081436766772927985446322202701219078416503146587038580415985886331966387788258527831707724635536651366023666695149285193839247329978068840364042344442686630083125696615367460466511968653764482542813315938963838305193486006818963190618630724473006699131446249404653262882617399468767203398890297053361700396207184884658566463771637360858748432549823890919492095071588781843520866674678231123873390034649468287773844970337631547173648154851451958567263914569137192149646242258716580792658425996612266640274053080424043699421736318075617705423891517926592204430928678666401715040085100003340936327120649399682836858914801516375521200083288951900674365941877403058334175155127782093733711136745444642536788567799507007494127256373446940155524761076020214806128258723394536105942301096903153594499018180871673061880726869556090201041642674459286577043333945830800801194464162582266925832032143680419689885845290081132186783788373547841300330520467779872019043630721354350841493951303866376280666221252713841440674027463268507651475646473985668925556411571878018483438866550240542180812304404305976248110441294771746622254792489233056315732285867618149400086735862296885157959591067783806735470504462589144853217796827131225910448781592543365813436737802337992650079654360265573312172186887221641407166851874667211114524659255118475833831074494831394167646277880202319163698975035691433990489080971593640083197502347664188641141054170936678334265384170489513752278680853297575195000800281866896623891705953736609115227472258347712710808304353684176621768706054173525798926457115801413796173580568795672498003640133458005821559655165193906422014944050688500940405632501437200381561045127816762915703527400875397959327214958519016936080087598350958699626393344261923030824134644323258076786007701156037959656383219338839203508305243908268067548497900804062928984420997972513519770619223346945058674593424077415991119797528016296358742811769145519561322521174503284895919827951233433788471266655545160541750922487490881715122257560097059979909750149416484237689699250586856408365000619923765562950527551894177641879629350939145748009699603119870747016299140224100009394665296154459997754083628912294795344683383248297837085630002060326974571347055397086583358069096142474255559792922983693678120496481366101208230208615117863039036529712226827789348848419532717838686722593601654840443870632652181627190915354654986013658310221290047677390622241155687542064264201542995876818650858244879393344302576415561592261456542940306886088762843229845732834221354431370023999765427345741374768148879490699928373472211959800189242821958519518585570279092243488485764020307966831654666496639929720759823875102998280938707790326719967573545499400106413355277812829979565366160505759200213487429667175493394008746246986252266458682089616081341705056587659527011752115395193477476143224340284523557559199310989623281136483021552037648623415334065001377486162239193501225250983446486289961645819947784818511036435176897774514478474302229638224668379867725637070183013597764240901949680059475104967447535071551646244883450152767782539653453933097877992260129741901423638071480930381413217856468494781458947392745806808075943391697185069101190662202263394521914586103757486540633736025442430649044568518505559504452016594700460957485609981021636251806677467098069845134168618521835060678203338824257177607951378894591438746023631709670040001948824791294086944173247602963289726773797764196829942321692835597975951254150980170648512723479607643600784037143059044743670865395795757520765722985540540372908960477321833115962348649659174129868872861491358440125762135574229936323073301871132510054740520701115300849620850217681335963872572259055639905484014597688037430367395221738953219656037899976429325826313954457357124558967125291038489237127495244114811326120315581663616421559518034560915828298221271711651727286851871241646362326180574425739530532627538215526621351540693724153909653472835399805506162901207642720026726957012144595089402188383883557366526720415883867619432908744325205617033928116787882356574348596273868004810040357073731189259252049402173294528769156110174208471739235951949413673181577405306394709288216520227474815180746952444066812709106102271100644754852375706851063580342585211441945687328709245556008155736825748457492692186831673790091162209857834753794267917334761074455140460034947199991433020041158573026388442777199083397062827617542826058341270051048160254266064442249097057142628039520590065578933753603922637193340897595994820612020506683861446417497465810823075176704710872815608688969164244377957531349074202419062336818257350575729034630288259324035083995414602044551935479816556998783759271432126367982833561971639682015607317139568480659700783321695522979883019200798635383625813010457592275281408258312633205745571239282343649836174317675787582963134002023594561651481694080855583747170203858189796799596272739513055703466422402381958358614344330025864150341852902317435413325516534868697722984008132904431153480395070573616339729503412451401246227883356362737869151055984177357472420402733609799924603484715947235359779943734630806967804691117866075301073347265746172827589431490716137322108015777348952363672365655392916006104192912548057733375490180787284124245284734952223828867959186257985290390154365918217632884129747603849856617489325355307007452285767917710075751918665662220124965044102750272645643296704792308537386042571203839941857663914262208316112571197300994259879353044784054205336447375508139499848336086673416747524249477133833922975278694257437913038079702755181676929540356180356350179144969294786807641090955690916611358352154076530018816248646499595583644856945546200162730448141946951763012294768761057115340152391176562404523036481608726085479544124381050178313664098917137014873557957134385286563311993607738630944528135946616994164698604747274596852986913939965553405248577519445771781637987263194057802783584824762875465774260936249905272774143315781132379256425479099304442963935334338258408369655281570525682456862203736186177148002889563996464915754000086815883145006755874189989341863145679969189192681983687467785974289061114805420799702975842620232390220291476779924798711214936603428857918313845870592076597945010083268526048036810954631739305581502688988646896702277574797854273748232122009193426995016711686790219017360783701923531304718974551203074183740511467140810647625885531661429199799705477239543293888960259872986578051023333087467754866682606497589801704084962836063470140121303835797691613373576317708492192372427667765265007028996306455863947841886698719051071339248613721735188822547671094710542417703274435440013614637215863357515050423902482929696643256376544302901459171147747214695274100126514495861576591005107752811483185688175582593339263119634749160223950008652795653259551712833226613051096054659784372118753678479786626174916330504481009886788917056298789203886944180087345499456306676672764672183627424153243148469322105772293947889084285752522387084235848694141769640602058956650750011408437116439097637634801384532190556971953799740290107664835934784287566435960286558802489009928644381036787036862276267839860730583468628097546027501345037762826099599903907990993320015756788552243458096962507205902541700296415788769633627947550607187126629468640838490216247830386767528636752290018197177266798004107464138071693030034585022477157047683462681116403120667906855729876379054546940486269709688553224799747396506215395783130338384356313141383878610563421292650738931785575357839473922830443736671545500403327801527798512875252073357155777610755470488863962396012977097837484178762472722380230896851904931239071546558280174212850502467285321794382145506009807613633270040375353070070236492511623647612937999577344635668090827257300763446068025600167544660438799534940662827589473050049654684036113699526698995884641185581862077128559723580031118974533596080084510429381737597792249913155477173969714912871653926964486802430495135955415196700809987597393525848202353088427527799794199998332216188716415121705046994862997623092676276728194143585623563001170563546251333908272945873643980372519980440675932801136367673433751709885278838550576027849209852802398591632882514862960531555572930016608164408295373464224686486077153358832671749516104905506147110985500888462397676891806533205531072414066828522821910304417910027232643907264351638791869980864766448643889738910457512811917499202196346256937718086392298481891526979080957524888514454955717024214791962784777990305063990144017902709366541794166600825814028368109832010472170329792606772027314265874805518772401286984748413697608564328685863030153031020221237677354275744219390171009305641731147140261356646546377628965775757794029176759697228410193905381790791535314042255737201601496833045595585816953053217905275695150989465581094653457931350824902978674405500086942397495927985564809685505824188510197763093277754893388041502573746159194365164493042599671990659263541110653427544343401160595924257648797334467225359659031169688856756655982236003827593569347119175793501699409325573768944086661145675239273672609505688627138608687711021506116310086024301928434574246583800503342896587108754840632493273477731413562124101229148670899105913118536843750458978707391337509206956886905861853908172143566878629567368410548021255490878939942820334698212725586666458944264818058027650286702159940206281779470789538445239836126397341066854768042420695829092691141493204720164991632480249454595631288782615712709068970581645237814483335044966118753966628061657984515831744366637370548111940677421768665406792880076450047917686715960907909008833541939753182499018063579227774339354633155211008499879453567289601903894019642563112940192282269867206077841810435651237098865419601672883123613649032309052915390541776689573660091937394052832188532147388619595555963382858485075638455608629024210374825272072788831904746778924459437966658751583371755229753651879308795189703440058658338194151393662834697986520521009573544337977549817146391845473551321800391282823943311740805898872950775778118273976605803081024945481696506348064142135327816440262720204914198553387002169539044192245278191804430483423941444789357937072426066165994693229632294852436965762787734858994751302765783146766471493782917571192096104689657377805249331661285188548133111465916285888194361630683487319903342837444111616972962115004276479020792335525554862067088409084787507348694643104926667531422760947255743460356000792251855431847548148896836115952304617346128518817015127234591016937958165316917632600558319813826768106256923666124646691891043625045290645843984075367603905449869570593795046521130759518110256833856658012914814448837608840826286961518470181906386589356502710997824922814062887734450770180161501573435281303031723869205146901439447213689098022849672022724323013895224345858126542863555108501905204103037461028238357789735317666801565725302232018280308620777804719671162116943388744503190747477697975508631714386107966162156489432341809807273423657672469933139482425029565099833210388708830507372543867942889603749163273194605500006340935028462465179364818567006897030861352653174398052111463908867759709915974808900750715152010122309177405928818174273681904332724497991366247099531718104901275675490436263303177316403901197247533976549575300990141114281830561438865943857760042645969305229593757461597326066769283618400673087428658556355620772492148389995554935952888482576003710309122710976972238196423523669499454316518461818929693223351619692059425326121188444907387035844887777125110015905144426275947164442190597077720050982360231120927779283478137982753990044632396634374117271036015331011979859355714600507426186635710923592710457654467294976302915112106420810008579142308665859808436104316479184593877331399827390828626243222580469881092255333202374355786834257094326033881607679833882851785732384703399488480753551531747776433311015859994844537444284504567907944484244916681216146442344684441882618156657137994951072680641221332265027131776227435521887029771325402215902394967295368198406248940057329248502987647576961305459306270019856929306422852224519926642040304070635886099149361802586653693376332748894802128425138288852854305201966453611710622480055165558737877050792157892068004010670944757995116937343400473001531687759974269481979423374939598451815265129945903598370423952593167640757732208654265807248011207357191888711039609940935551603558962405933431258589478715844157214651625070929812534679533656759914240457646827027666031700545959435829635762702586060006493255024744419714958752301714687486800567935717212593760247054101032716133785652371148901575109785602063014043677826867367723273154306718532775599390849145036512518442951512563496415029654203456212287265010253974345237859891068696527364674714123546151081703113859091271578366569545417874932177024327485370120731431550260608507335085457832744943870976885774245903096419108834520228066143002289502026616023403282073260646488527078133595756781086086054069576687710020837531930844211924884890091055039588172396999807562139002254275311453905055044631439499138443576545998059873220305174889225550046361676771108395936318229840607135788819069380033465887628559952838100067162005809845154282971107730451948758713281762385581226542941944911961400639336682583180866030999560027342341869568700172125957834979153831608338310219925299548827162251007391234794593875961907729949296752540680823886624760427000483877707396976978781726639297993840515972287250583261250332806958770557583232658676310777890871111966683448541576956207973899308367333261643921597149416295907113104616762404576143791165561182312554598662240044135168642075774768324144376760624288258374451512782520297462853021542856704724881880692345256619998989740067660216500752929850603249983904191290179508953961247629019693799997124214601826789933172023952245772134941051551112513002525709299745396078916994257259640923709406141874534620999904611245849236999959898059653545251691548325902068375329465284169327777864192175232425564403228063980011898255526583564024699232276296682346253911482072236687522271587203396136197773002381564216483378415892344724799585289272010879884125531864877740817392639014365327379977408989695096311102161167702664976446015557553110206258362149532460539683139862998431732114490333431395873805590024785340529198304258224430878191625691377433709319976943065243222693391783837448232014010589188380596610806141929010812816122621526624666008517645541764737837362342757894206376538264391549747052581573790076632408484593917823864132876671838355007213132952572895333308909623137811900790462087315928333022783353319363203475284234427812548921980095320583333128361315910200448307294874770837249550025685795583752155859645331405504134453695562639105747013259589121441976401565704175135676894507659861467843632789188492891336786563706702825899831751545997562696951311278543222556216923013124592658262766071167252764611731450875234743436276721654939295768078070660076293393494132520086286982345369134103741136739142491324392316116310972960368092376368789158863278355131440341952694893722182508169111042983923145256607612612842066253144265642341840845889429840662347112420054385297670607785134287864612809655582490440827379248936437324277192164267622845556923887422370166675436986859467486635107302745129033745574548922334671799257926034435086912722183076800158334174869216102638700757909059865844595366309004479383460623354150504940502462132140706723946727435983997289001713042873900971891077532886937788361474360039540450954942135943239484874580276047225406037940641379833234013775280168106399887695723415499153439165400005175717627902582393028402668687907737887237652695668877317907914504101810765401605379153243603223673594932433900445151729436315192562624058424892305824571937895733020725103471722155471493316974646499544387339652409210805191345115539775286849253554075410936556668937568634695960897006338133485026824105009028249255824409499847631557286556907641284806440881094358212667552829153410526255965213551782208812207670362149044282628825370896880438000318345269445077847104220032626737634207847934322735844372152440737394921669731897787287355975258376382166909630845499430758519463469699591861337890774562805420935984901280295987994825331497289047618180530133504142625978034841204220641058172544782302045093915399188711356898747255037021163649612572136488211589394214018498504907267028292306646416740956387729580203914590465025140461383594973032175486916481776544271446289827385647321687432453273917899029229297281741717059049302452189811455552245662823478222640916156173122134330812878585944430498064542490771993471209521395684178098024093456472258552266766518499627909519583389109742129594549949483155008731891438386399935322752106617120080595311205752707554808671851943926258476580576781470974291172566681897763670872896059797838709386247861474944427208691779252300785409791601676194742406031515336355694282806262654220219980847809309697977865138263701165392494290684395489661113326302189497207401647262809448239196363194262061139997300534516461125503163768818781803406171060922770882782522989555792650173329945684500353042600167585473327700537134227827779989436404926165132465928533264782415630118090550577787139627958351869291262012943432385518830350943648149942758358912583057828136982221493019851836564271625311451362710700349942639998264168205331734545026964525210716480673821718070970008826723206795049790617686624441608920735733916212705492631767056841020095646102840863880245101797519693971039587039545710287781754702791577018026306527617904364126838337345214185977379481578073620817506353212009111936867197468371849043900922192748903276146934888522964354794646161268556807436502471948854400552434913537481354536372598935275338601801330577641924787205517946825847100445025454714384160487025442439564443901118604316049090922152739254596710391334731347628637418112344290479182195014124953486220035417229996845531900470668856398834098931239086968976113455879702267074255130506739491219529936007245839358142842904796658305694950793454283149476219921629340038048189597595608447470482802474941224238161322031838700679173610404076300282980996279626686650339937061852379097193533399154716408458152289039423212792902043944823803796395660716657248443589701089376552586965077297148747240952502060914685500140483149404915490286277725943673210761381542370630595841724403775050799568140610796473984425846344005495737819286965797771675042305771709865994897098633197762899115620421348819932641536098968888074558168788191478493910733306059911528770605304186741422373162117217981068250733991117404528327503807585088123479031235356936547483059401729414552763158110256572333595767815116056046038689216713249778866577786142486332149806441195241998767388055071270699600082117434990389822593929268474829925330989856336945947373274263922940118931508974784819013419009971791903679618376715081789528450049624536188870502906414462711456447936801419141682812386978322730549662427216075309874584329446753332764805198365299839239927868734543627259929359492474834844084577917711567285513793268628033426360569336499100897329529125509622958868303468417836186627768285106996603496815003655422989339363724792536549101684336219535037122852331022531184040647238139235880826986131844292301924449570382900202547423979670619370068316494543712037910883230445578554103032297690825325575738305348371696488008388466132257385299049155960504135818505855240074894801285890913390684209594002634207748569261959072390435283061980005565260816666253040207349929893822504400812004048572069491295099422588686799158974125574471710326710515606542563172091358958818646993155145423311824534311209236082132170345860288304029513141024773889916176622359004544274202048383074645757610615024811577853284448514177951724106899538294959870384243143584156754939908913104968449009266845556893789887670143625318168060055254316279299925676242198774871058332622263548280219760692125101117919519655764077883224449285618281943470898904177365734892581688179283593306438941673763861051162946472636933193652161370971067055060671085820940620277249516865115565820915894553187898018375653303146805163493420636447122073759944461103299874919471768350171942209268957482771262200852299367221807862715447907093803486835605801779554093479558395411225673974081651627295588436799667826425811171962455448282165935731462149908480270995638880222822086376936824751784907664381728669109139190383713831982052207748946911982896774897030670331482365427550147620451715112587419895405462071002947108977796879350957187866740768521067435083639399058281071349761261685504693286194188832223037054157638711853942171070028629323339310572273595774304185638020292169185634629055592453685100939014251765738557022666956069819552280132599724113219940067708367732899605179967580353868335947806236327455664412379563573903758994292436867726643855589426240130053870368873916024643275122209798485579390964084074338633555930116988017852991862380377735890117946611928283494531377161001854736652227287071761431646073052889359909129818827593635256095904525679885861339314008394533608700026322793129146301241558694200271845497702420188385914463750764661669820885467709743693507175076379522395164889833002220518542742237575161430672650273277267752876432525143982455986686001044301121839494977672759508374876579695529498365867542636835761149579669059598617275541952531998423788701573997856239843074915916196361504637537671643891865137163471641830598346944567803122866785131831120545692122832177374588208082215345687683976488861598158927477848129941983982535893832752226833519372467872765341393333721032796180385038134752827404087823701288573810382124347515865575132113353425723600433780899018202553073237613668742138165667128924092061159141934118538593806313578008863213641462686938717304951162526997852167214540851464717906649315559501254626994274400744193745089230076084600575501747242550543797799755151497257966584970004485020923095473531451533352635770377984767509521107515763933988281445190582947880787618284361997373519826780884328020828506059472926579169708493899840298809825748856635143435145840654712835053399698626485248401276586999859050950666428922689560814024224986793970197747502323499570659736877818047570588839191023538681727702661945099271002550391461727678141752456051671695879496654839351773800299608420864028656280803919661060818106300165650818688333718244174778996919434953014106089958560340872921053041109140962430018537161442065454924251679556594001256618369737164274897057063329169467850240832208218397323964096952882348621308706876999153580380265016042363063460718061564954391316280825386486652623170897016314955536131532402158943049306855129955285274102681710493846907354516953819448500861308324287321259912569293630192614165088302510538810393240470117502994698968659760674258397591152053027714435907510129233260539729923772530616394387132593520400481350642923424227565151117927465407556345044829492002136632166801986052822650680755780144996303183225886898933860759779252008131206972253683177427152984734826036002908888719196839872932515098042803763149078119460760645358431425254968425441147434839963891821397175682984232219333378754802870428962475044736857603545652542463553246124640550832861054688982932744959439257951229572893301056497985049678894428950197135803924468146631124993944120665197150835784794973918030103986120017213673406530791122268278500394542132766532983843473469006093582349791575286861619453054949307180216905486274321201017669431876299020037763370180865118685632848693656489381069117854925588129756724372286173724831659072232038086164119288512173166759899249439103503802960733297274889386898268611690458204854763906684281540709010822284428175544942724133316041952107258766782103525084122000959899122881905499287035083622171095557771825672937326344485168595205173269526271823005776834623349559124033585870864769258544955666654613980207874444565643042126474701792035725385339786219281123160558237012459077770958270104675166718395024594543125202834329627935723351122353824189327862263443491284440700239897295564315387102170559864285465705226013418728406164211836723691190703326800371929840047397575031137076429413799950353289156741115811649667471804767032099927052657578280084951432726400409711487295193694349415619246323458900936008275776193453982742144912664216804002572740605187868097316513727990676846626278673939500429210561602291794706572775246815897984320771109296369081071305693798267034171680059272162235525888296940945328687140521709205758748850030576346126839934603767264409558552962602898918621860046529459556158328380654268484668215483350614959602878947286435364862400553555501608038954332399473061179703069839489086622950018218130638343600602747933628730174116022595443678924733236417520872919163766104038721054267323268330516449845859392561883672875156480488459539578701818515058002801064167767577281760100104078988391347695121770442131814089207273691898632631215215266503023752539008814303626880504934109402028087819820257312332971029924141488605565978162142435406005620136995549357618183859966466353335769021630501405392192880767017711383361574983254955634686269534760473825161088489786950806524326161622018519203152815727131546260482108008400563588022350374931230705304776133061023940290957804022876588057454545716072273803724839360950466167961699900655789975290066751570330042278690734271623569083425068306852700381182597568011624557975176642210933693458433710312738237046808946177677846182220834392436294273541297602864761222748000136815986531056489990144260521506370499902436886340473762938261004868685161995820647278806214533388746376816494794638320847543702203176928907998535969239565728320866589450734100074243847468757100020596327659537267643070563877126595948018651179653868696823213848772821903070490285633454945899173830696181832360036350712264110424404737725446680102701922908734484602509685932135734584842505636399098104536401911100347434074597874730100678974214190754208626112912910583600753689692448577217263114604671298375690448137471643436036015880524903931408170714522666596746904914282348497353388629312969853117033440026448471356999840906447229872729452141391752660934825793440690587893871948327289196386487980514074649547618634489252928225790868182920014075623303713576561558633013945041188210116081172066081150310836564577694368686532736581678182270604445184929958546739492742881994516773271517394095608779420059818111144883178962157666453212114699021791899313892171107471730089321398607058726984391348895136012478283131278386991150090568350088684748523952810164468880900575014621999969321605032469377137452464959694170237288319424749864158057350647537342594623047272652543587303676631163995570345681970976594869283158583274265557271750223697322658510967642527353336313829162369944886527944666573049186373529638865394453540635508125661584733839757841468318321847551943907802092135059281705979496534964537580186875484062009315413368695226391201186021849457250418623990710803664294119340804090174261211858119261683845460781256045759793369932231814159915907185205243160946094052022600161167118961109281130195593139090572601555857760636107564646861805042901673337737423371893274822886459904259029023888474301650888213305390391016267267865794362807572535844530233205698197851605442860685335035371486490811948642421898851083192468306399194298212268503931279475243996027005134078349295048621487520099748704514407564464472964738035556087149510893915911991450331591657068638490245379272931534750182483589348987527199580158664650011966089041396481525694926080868666224253984128971643662731210432014310526857347102901570066848408855039582240520888120509064749475234035367218937251897878667021057525230129655122708707015535403289494914821470825479458837686628499109045866062848421523963568817573331946028557853152183633764545642090231862169654633074434651334777403460125451423852067392903416476808665593565938003536856275561929314127070375258503776474122065369229372612219149354503771896999610892313168640509827845974945089082955700402663503089655111792387267100474844544322803271117290023418379357579402502679257819016558327292337719585154438493267741901616285813343518461782563507510089682167755967111934049255887042580333889681100014349092996632892901558313511433329026815396930871430417486614431990107291285473662867063107989940090258442733086629765952822212037007544663605018411809879439401682914034638000424742716115753569541870422364396516370096034564584357388166654184130391200885262257320964361224439760240761447912759486654138377721767427056595615865921772919474169726042615469420842359365715238281308294418162478938472513945029943883796634238796061648920524634491155564562483342766012536023924846719059239139183133753958415362820534128082510175155883267450098583885492210697438203474024875541516121270625091763497791525793167197844569536057185861631019582483367238904767160376460604977690535056201165971793863674050260944138597520405064747338241253896052415924685485925978200532982061654837963664261934064565397466798752538005662250972958916396727190299665435680351713785257114280573774690655287157698931641321667437050304391323368568694873507790907704278163005040884503625756152900739215418163949706794995871583013330241014403535552258964841819825440550295930201953799216100114936048763337615563896761334163725236964129711660704523123670562440554281635369364511323963945112246455150940772883308623318242979693168330813392122215979333305150835558315140376381210228509562087635869847681392809348214464932082664693615142451798157976675398318777075971609353397339428785343770665019400010000315079449035458246536651899549275354763611062136750961349640640002782248210630125910118989525315886052970081550112698780866972755694481360036470790967733103652701361005777153195525967470470739151319658437564155184151783501092459254367328516685437902330588885204273310551229018564781571864585186992979167736895735643067747115323017326571991318578793378340676744306937310850792067242713784294046555531530030993280688727008021090844356790715340652936337618810190013843733136294935274151509488027993316290717172474454148326532528267505005821721908280493429522406165254834156096488982776119457630248635065078531576716815663244227593288980228688441702750632671965848015956157126562254732240007812260117816600068200975587708114382161479611582921981432758038237384598644506096576603822733160696828864907149354980820934007550805951439977854378515650730661451613766778257496451651417266458523144977830116953075140056226778425886637868864533363166747478264562362159400844445803025270803680168287761781480140871332991122490671377988820804068391550507750067758989825850500539072890614273904591914756596496275913142525427886436958359828183460109036448460815351792108727438879907568449151972429872042669245143785119621844997487407569573584229258789076046596515529694561146264626626243884367373859495734748454707069699956418078747874812791251282758465070576160952611559775419797319277366414414176362468265735809517549378085469682279651110011574646994057979350453931468244485067379616544418391359835392331161979470619318586954732666036102889802702884452584608998618383645280447620358480705975828731440531659038068397644062468797192287114235353851729248952362558964994884575994115112110908096909214177499913249021116892970467753697115628987339492952201776208211297989707036981323487139625077712724148193132365990189032776527323670233221101528718820447063256088772640041026278800685505465154600882424761341840728458226431954651215492525229612801355271721053290665658896369924674525055151260731872885152202862980270037136274364947643002592449635665956629450890692631658166197010674032994536220021458384399293785558565084873145299806259396874929466823530195188784305963411419486924089359539862460613365505545959422364884250423220161564007814294052627015151029185453841548351831469460110776887739376341096811288205034147311534302665978186163181483730745640510996639098648122517560060445134502065341461263126631524687458468469290248998254974668212498388773186181189197867862773447478119960979102653718178665167185676813537303327139180436405275352118940362220729426693884904221665609984001910787433461728480250957150692639140166389975171362649604193969049727610085735008709791994206489171094343982667332164585901720214905278206687985087203035270634116769762410009981086892884057074985308020381408929706740741409865987736432952733283088576775254686229708912312411801964222277754200225404760235697419949404945152639477264297701015358097540914551997241946371578678463660937082207782940651402160671643222139935418536375388197822677431454326920018686078405008698409090438391347872870566264557272213623275651365761316022956577016227601045021163321090937407177039714474188048281802772003142967134622507847589837804538503876810494047320414353847564763773223019172294523356272441348502072646482948408349653812154093071736622289524713871970569608596106519458572846451378005694238538913030254453386948032582195860646816146400533915708054628263101756810406405940775058458742863301834477739335876698301139288506760337558069510832772223249212896344361543948601388822283440443021935936126121582056942279950398703836345208044924613520370066804116724268992821554802207659579812441902354029045673858691401680790855761566859290957882727289163569105527878199977585607030865535919004657923273788495215560902650879930566645752438523790298289412212219276292577209114188068050477395588869392980540605817776120766466229555012669857330943990943301167582306801898304558553290158544413200598245221721368369959430188033852477272214207362826723930634706507625964041508848816646375606506581583012613321678361293705681867521650783759107779905349082254233912896638030709468194712664521831077249213012115591080664317698874915031378292274039134235235706311448917196313516467004861192358742274621657162223225726502565847897332570727029039554767500232428739435490865448453990512054855440842758272969910455754431491034133784526689696438586930479311763328293693272684001592093303889461648029637040982848772120040869400283113783425852254182911455897951591620735212405724127221593862946298503827283834983103689592661797423825897582379222231169735017293168624168935128838697872909415297337807654887812932460608516808810419573819158066246337360884107567605968119844202517408355204252879192999313256226864302193439455961451786234842776091163449331714952513279233858321866752227403486696894296154215431698140172616305992562030873932539450560232616518980636920708709887012149206013312352767767660185571246919850160807657632179973153227592126715199054706976960464748848020797941855882874382539058951503859403739882788244995750747476585490062878446292526039450799730392165980845292707667169454835430007078013848396021939341342647368217418413397697809961220827748396659959753725083724116380992501391467552968992107892925018813102950936543095363485557315486909668686938135898085535841858758637754669273230906234938832837218761508208054205886758940557402860141525548126190765066605316283108228756973100009438255319647672230742064588530314975568251196420785694865613766658075261382023138524675670572243198199163445938545809052520659608161401395688891163911087336360814815818225597801016048152147005344222900246233493252347313148415873368435477843350494365208026318477493063244435212523396666544278610092854506896682142487744727444234830558165287442413266265664637201167780447245976234120351885068593121806406862889172593933752853704853576674233671618206942955426674644777448050769461446779651266837296599481141332046430723373633386561584372012655048690309586118442406085284274744814137222758869074766508678855715885136591652531657353264179888374905393782138870585114774414004394874474076289756749945900180173660996420079613962536746124047348541950112048485543936168112533364442773331473933049951575837043380350085405538271552930077131816958378732786082924100761806149845005675172236363752402329935459942855087843297041378377443769353655464532508702063799890265120717782097783850806670018434277804211702324062264893175240137074737523754598246878208690877574690503558253868220198258656532714827073980752980135193809033715571400042116833656596739639403672602514428318773221124429386289287735633051663596394756423015108476949376525349486744750030322469509273507235760028590874378868909808458478459282217793229215530902026694575198499275040691913309544125535284861963373446388504167360253258157236638619815419264831121984412050327412296038691570938633299668023674046982979953876866633483859367650731762803298348079548114032367732747837050566889907896986061973287741070555488006455940739976779271539302337373314400742500909154908739356764055543697040512249404075847877951733998496197632998498823750136752695702695331712927962864553741656736106440409650770903995579603502051388604845592209499572592588123399948879351987052044336539358146947930326521157901387926254078021136225664729479731937679232684809794954920260787541362225533992715134173788468189722285602009058305911966851563755280527811327119173928482329112326071234395796398073278305196438721467865935184799831687840709882707415426845705369042399404018218114438035062384640868518767919063997378540648540016248790551373728892296057592791475739736904766400703089228420732912379714425206904836719153837917226614433350669343627680335984941978568377783543202185290706427621843918782228912464647898418889574580769165838482058765490989426556115911079401220947083316033176675598837169486285355486415602405629773321652175798246328592276550825312410216914466375218036409470233335399212362012731877630484656749528563498152090838523557899335693267306221126554550773794161864077122304532153706476908000471953118567004857525593990128849399099752480631235272766251639110206604660954963334491820111673268200278318937153264970436804359634879793558870652612613834316045059071311690968575448333641749657964817698807049270926000450647743797164675319627252285945980825255136846530980421261684268229821838130714503656417713180408123700269388272264137395654796336668678686576826399736449100294229626413779467577762749236022657193972594083943255538243900949484971928401060023890266322571918016574338431593718933210706855105738989891555213620746508611701503637265625710379957687981005164903185691044819615861017190884686154751503116172190780562142777177391243082560117286277502727014549176699933571405435923762250999579089413685594622650673067812803439415937583684090776711689799921012165711095276170164083497206026271510924217253187151490036712561711448573959186809424952819291113031170827074562839962469258696382359629367313014919891577958848464747994705260844026135611935043628678662619704722987615543581810414509989855272135569447947405866164928349019180238863201969566184999378666231290018044462311913964808430762352419193893415675256701979587148732142735307911035455160366367979763532401695815748322619934021176257049863249028344111124440430778795812599978528592966093448659768754981199702135322595150311053421437882381153523053639441412691382438676155090279444808092844429456313555145802217394453898863095219418146601831554665942977610318103151045452021513386138595087912402081905001797451844104896856488799022936117198726302068383875220980508874721471612888594781751380763444523465632529837292958227650201605391831775916606090881680534156715054202040182737115578943583831361971724771387482171291692839784051780319948416337490325196533894313925973028885106285860147279821405872036825720242348193475142338519101272942425189884424790389368676736905787112178959131189750148259294769795704987666939478258145462301809982418456951785379238400710872849468993510206921847977075563515723305193251659554218883751601500468083809760079546727488328510485759426270212255459784313347418197068391593669153199111087742095480334718686151771655465873304416899286968900838902949040990859131910254169566703641176609198877721729776125240142585977460400631697494350984458843822424985177534593897659170642005388528219665282609150220947918091525548187563996666531005955648691461199067466121387586831990583448820705987338612892479693103159603541347358210160683400799294697426551157766119275676816376697299830278019941508474202175907892822758880187653609029103141479516051876314197038864800132136914956429000059102836220986324817185064455657308868714143038844973466221618393552567896577455488344599104908876369296976095935427455578482089623138362146139808497087004266619865471821625504995428166578116638651798825212295898766338168151768493822173503143497143732029202854840923074523983693995215446048228177451334699369226547677006167813660826701993413044680857984035102791477445361029758863899955412509725564140880029029297935180055384642324426647821909040045461083096564668163817004442997357743446614321818224693229269465771227091869649544258893870123741978609535280339091272305533753725846994986654447768555754599435722019557170001653588077246521751486901175898189818490818950995793562477486647636891841253010962589861908549011332073425923918617982628491142440950237493178112432013221291545821637958339280330186017624545109252821881168790582378731240456490598807812296591094097973481865696634665908841330290900953858377688088955367735690709646852874758772870812273533529589263025407981744731411342275761323251755236793959821926418005859221328987157057512016008139037021572386324304556247830564281543920212833081774512081220863706829164058460632612096348719050908605943785657074903415238487408202389737191033588103967090252228522948563455778761275119789480323945027722806018702513565147778084927739056571228530954348851491659255293418704486111183528400046874363548246240729403608655435831762608470789801940010246407440110925375622589671330944635780942163439653526718639755128528629736850828329395203348630132855483103288050191833595015440174936042306484554447990849216823296376311069843422777789047147496087590850482688388008176348908689452099721370503922316582555689294465660683504834539369619394197797969973393614572913250827448562598416706896424107647856647692576767787109617428223463049314576760186244483363602950554857772505111559486630095074063935078512334920823548988062822029860672355847126534990935875849760877253346676253390776690221706096619458936149638774707453596299046240240140056503831926704439728656584190788484217021684344178383790462494451558220937753193075060123948172476333737435597478574907679378773276680529758992678234320084537240422402720757713892986025258308839420455534841182118826441885294290791646320656785680484056055666823112088136096088693390651417314904380172660528309546820089167814040137563830942915614777836974940604661055962795762857879167053803596761033803661351940787714851398141243613148172773993312244373060251842587951369497685730471226111421340990165989222827178839214614921673742934641989657578211387356594917288611311195393604266789281222776199151972214965333133980756614709560108769023591618748511873341871444970465508964026720474807103761877382017029912210343785078409397633498443005202725642445626817117741424286022532229741071451318557532316200800038622976666413182036620645669475998542284889769936170173220242771452323907247158820031960995840665562740652721914319301928150178926394870104397336396530244141727473328274448548036573568553641496985426018599971985200429564672433379807204039551896024217439256595875337271263660939558410142678556822222629236740553719210355659734863244791904155651363322590710469505483895346122853942717020658708533128708129111210837233648201257701621935530284160363128382456102306977180395590910581659604375628144659592719268899293949259877143538787527196280531221546750250953211277794254751736492816748154240234838551367916424506053799921853116315955424785439140213406346088585990685019753704609788736281698298443298284552442516917572144968525686442693259342318464075398501996502332283758848701696561706029282974675923265029812923885274394715731563960533774384062039483520752066002593730499774437282247600162272636098720987114898239090094258145610308155711044376281177000119024144570130608570270841894111711779933320428623154807971517592328489645185061450617634830395914913618547132840988424226620108753145954705731070655678914411125869477544377290794912790920315692415662332105867473856919703544185834198714712216551341527702042403028255951655719425195870500188109929054906822033239953703292835379222253457539252171083418043108766311953460306159883906661957572800482986502529020422286660014851549696636239942274042011913500287602167532531884074112628114561762492072938607428217999962179815907855045231119603775844057952513364822440422994058968461906062247718922935356753903670655578304514037347746739839013349036084522808406484345401290208021943893206690924388737638479806457568189308734511807742507219031312076623307399595386414531105473836797897020065194124932885663319963976669480191722073063670428187447095321708517109618363087360033961588939730432083300024315832389947481128635144955151823568314297773935179784428958737735580745438067074583983190777705307204222749585199196768279697752792678558228998650430295430907085452841350406481788703520881217618336191192722767819914465803745648714197550866190429803436721261465064206261818283203767818483255989198675705752177696077367409289047573460206888718811120107991516722027600675657747100619215001073816350519567256804225391559748740944902331619920732461975257036228229925001694812891830038826407782507395764154356078359629909621972380340308054574477330322652476846121622596389928965568076057607370863229445229555418698872497444272956995158839600079512405930789207031025644554640081188708391468661411193228925001473416444460512140632762054445446692734196930515275942088156561543855768417048234651900839869180137709206384837692678814546581867034563456122310877580350463671448988338579586786650370068121614970106400218423654050561922563104245441368825471212263021333997300244955927249208604916758748728466669263652476598669667317205388088919918311091588251292103656496005566594420703138283616095048592032005668132088716351000709377699256171676242265318671333575420064683144917108058495818677192253440974284266867107799048539346511131905071572490846789104749413651854273045320310801538711330762840278901003536634493963158942835168080680498690520183022962186402902942357853166069041768691229447330262452091002662172127804766614143062245519917796327281654733149237696833654935176715771760886984979590255940178054868860160655509636151165571495097020106598834632007041681348456002086699907996301498008867613554667884369910639460486056940759732667618558751405920764915688410788065491072162176420687757855514117933389829809183722853779240662987070709032771100845376452732706329283758787267184618714058469248413521596356420843775891616868952736653429079618499188280492026965807185348859128337288634314737748399441572370679524638808894264571974014510418435781225990462766933441362770396545619305500668619245255937356820653383880209007701576666700266768676469560539486409791300090849711927838813126383175501874150396620078615985235086019850931482413330867885163467077420566462609361957288013199654139954111656508761225592905677219795530423374602883998000534412121908277239026837271629937716986292508680215639844433728404011203124352768610003170592298076405181479861345647242670131150436891258950414314725250818348571689470835478429517254434276199824517590940486092248826859694240268675095139845843415482046971825759069527055571048820312992514285521385925663500938289403716025001410803271873661869573276726132179059517233704273698229592590650167126297689874963935312451335562628023054380559423505315915933334207352523651891463142489656025199237113083407178949407079476423642423513895207777451359403821423039346912633532832083641938294710141515514444487321702550579348792072203627392350621654903209210113996527878649656803451107255943790336227659113375362178921452663340618039986261700900730750021139776733139155638283474884077639031216732695153256270373778500452437739451794789174371797189892225037695466882543629473387605304555707678334049084293533793767611849126548130771578198651104889831469024214104668240111997092607401510360743900014595077692549260075280368895318038543092267578001348029792039978822753508733847851692696015652384325267844251532117458632010359718258211603931324833971408702767068189490385517078692123744786510271956159969072055001646735425997909640073224321767842085530921648179415123639763684636294466204921295343517601142242196796760173499334242425685415985966946895027286021957123107384861217822162133873280857522101346670509414800722256985579196984169851114579989923901652369543340834128821446831772162852987022893417048613475253706191405352902931708969804595597791080847923847653947840574777057872618911102043742893516833732132864283063364575382725756761136944363004236610690797656899749746157971238560572406100875110332808674532736493817134131714549251810453469653279757732208502094747241230259426327868822390118740721872432351319490350227350018817544547581478303046343841150106720880258401738752354800247224855677774793143546561779783253023123754648959136772443949898613558489934876259354607438438042216382810503638362262384793464496924796244062399032360170384478708654241252028273256803652159778349826374466475238693585854330492725349230563959055685203150341547941093203930319332860429490131767294442463354996727560055836517991503611887663698520385439749462769861142772474179560641870452633433037606081945515922369475912387027292988945450998122345643122360162993856823170661179692183487417625650091089612498061697095453685004690820295722230598609661062867530671515416994651835399291205610136545831687481769110204088285585482186244588828143595739731921733923350107497086337121880012131180829661110422980111056475284539533613493701300055494509135744944261653962164837216840495360890382640621542407802787272045735409144618756856356199855872957192810674579183074579956469718569906508570019640331543053669892175671958782073960606120752048270838880304829788243723525176082616468319071870785437180267662489154949670154211741029667663217523877260837514604822436345910775811638092031077281493765319066282077167260330445348106183847010993915781178869136152989941910070635549365626054645995562707771527315058370278388271034650401004075354669508223924069413607463987491455359674589177218258798878926257744708505206702779187282967129358846851862092122685389386377813074070310957934498077799932474364480425655079456143715039328063263405226957356585916841037876284659212895882303381688502669016536917931202940442561984173321948159271588394968978420646376492168473875846496047538653574874098338121503823267770433223569466125094675799177415016022590157071207990033704750253084142522458805024066746426295396403710129055204174257713508137335162567537027180956096991597647010733794494786260292636949018400272836824653251272786880610643790354431112255971782864888230437017603225343708137551550846588549380271461202849589171209691289577282888542768415797657430494052247722744529745719017880339474274450074715336366017761873210497600877950170733083033334451340219164466081499718742232146715064417928735866587598601752142857414308337899656413558897840603473770559947192096904654644208212790784711656404751082341218290047248650366740846026490067504374170855883338753043473712506847643030605953056383692937542224887115669665292024492606887299153667703483769581120841445885375467066424136527404078406556153295066790621790143243672546358082426720787771021798356283949875953315377441030601824512291332319058922768784017158568358196619361588738036055448377125501554336370351966600717119002551975223721444156104803924402598680446291698143543455313431649249663943497014271531321560027491387569077759707198892340497349917720731012010553349563907556185425797707773253402706214945372367801845256784824294001420736027883744279302650814946585543965980913991228354430058681274384252731371109567819408393275108355536201915306589917182441831660676679504204118213676906682097670276805838175630353412578078811101968069854268104838723447984254637367277367147589096039209452563617256106691705347909831778500320058130058494521802129022247622962360499108120632324944277148930137872645449418655493779909279538711893967756058463430550924265854691159844831243270693895559941967842322371415525743699964563086069047214057834973292116166546433979062534020651202268072184597825437738797067996105334168538739953388434017382746194819764170901741209566923951770710860961504410713218855752998329821766270581265729467449752249087021983278888597053019674889239965964213847772494506042010901265942778180117091222344031410876732737812123586117070405124630672263808092483032289417747239645106257686009486684974843289275861602863442286197686323692201573801728573661717814792075988234812149712656773750443607637784109738028367662946426337308106777183954127680581778812645482865773473762694948645878042316745090489176490856124024007213164072243034099172176265998797368032540088215472244033127944523017741032890583051705677125467939555369659056896994460900320863279010438723912456978322559303299279768564485718029308139502467526137910592490794944918076065667833186440198399120124723504000791502045927878411310299354586819450102085490284314374552694168864960085685945018289422976717530483004530131060747166520115628584387238850599134357722585768016789801012964150571209825143993244541884890075713800126121346862852582916709104713801235954495821561475091627660043335197599024862079625879410768696949904747911430088312326154724659514207410463540055723940662013167948347762375614321978037043402192474444660471785000325437232978767178815821567861243399399333932843455155916369952436294564258276664525106706134808809315745766529471505401106969286369633930577974217624801376965733587074523647967642988925215305861586507057225968328811446190758927861974509399259061531899797123368854034122472077822168126050543893898154283349164527981087959119462654848621782032143317854529731894540763004973191551828451655714606462583725152827072940518073480308648691955783446582352224678196789353217441309171847025378018804247054837088651675646591755119118736486398589634003550006754543074694677860598917896576750903297612788641372067793696175941529038474331836245731839141891833868184785003778819568276612015019940246647165284166394989850119999028416138333235228036719788578110970478719827473432241278478381314905576840873727965252431062119819322614142952404738178041283207780658617674429968660636469389900157854713848048399885465348736585253324663741203555164364124842395579684991184070539710324450432890276632925831445125336195536014257049855988029907764124720080723142069302915289218214859678944118068942239356811625779484721845969082698646377136573118955356473623439324994509954416571391026325204465990088110240648777036439562648738056398592791814460621562824237643097580557802220734667040048520632234857553384579902763092655631760316786503900351326706236582240782312118914280023415037259375277860812950635498992843755168027858242533833014863714921987531608409464002882683886959729320224473884208811123989526913613671841874003934594816753231503984673293478127839915255966952727392339092664578728208829141257059679290739068202094120197783539244034753909076375621666794529996480541358727343315156895866970418553628397471810869709154575508861410435195351973429140972165593166106418478544413046245184134012154517611613101277145055397633632485811866764888064075014050342939275066108148981960006570010476078537626096898636326642818134537594370416143189659477983977153939768358662297223344172276385220581813413974420300920580927424330129383895642126513824070857997450292809724688946814947644363106560143328039040785292509856248723571537266766734616225552341301789827128996219534247142037750912589967754377018676136635913629763412306903925173873417672381535977726469416196345745484304820056859449950545896678787372761670855086601551658514745622122643276407731806636165183650492009191806482006697914141959369254236885988318312722300914228075418568087736345471013899077116987942844022134484873794133708202756515037360408198092319011974732684300886759224059700511559112274683523348513497079619790320333497909469468225092753706683689044402029368269309470313654909445617761669751198556539749893535946070235140266819860926780442297610295230535090215633739552367046870841239289736395413252826101022967521969744117889427520648621556000485857312040284870034385442584738589265928231030301472199485840559700644092044814008730018472640837525158082314221429705016605309133568801921815766103313823672909862577569484290053702863872447375271480222265172911705251743735446029835469994380633486686309059919083846729712440106878169794780139676207245480615746431826078538726643430919151982294352883041641411357071131974884596087433690388392106382241052812058456455942968762666170331628298396203745966727144393459758197695589946620880226408135466700306216504728333375714731364486778500128460276460920648568385823277473552310925856206008577782785451544989522552191358535733930111079226648504169597312869372856095824273297962390718402965287803726673922403180472956553793981337618114663535286468251249165150898466358552645687644779559457500693511444259197547044406249261884801200479884395594135066192296118769313414788152271852734350269609333231269261399620886592298224649736157704373171680481498569233245417216382797489102511037963931970437629195768124586237294590248889828446208115685538466289508302071780228606708228065306997153944833481534952604058648213475442013003701895654417489610395106546032935612528400103112227000477082632916756525737612339755576680809289128141470664220091492294268575837699603845032329616679109958742806988264049498750067847071118904336320502926827715943252600548968992024582466756031170500533250222078241906245941931161402800433583536013997556543411721649568839724110322130757383278639660797660351443426921615407075205371237125145915143520506243504965187743215092803802267035289505227141638552286677066802605367424303473179556510130872134911561364696267780206221280410466972362696801333964854738399192704994125719575426013556768239661152105139033116582390472381042452871536563834213034820532680463858157144148451995214102221836650836779591237214402652463436795967281342701322108518622539861393717829224198420247779590452588567108977371982021080094399492490376606474631837529994559911476987459977777695899709238594833612260671150794034244686117559285657915527548530391618407556360400925620128006891416626913160852846437829033124114832988912816925526612791491806170299074218851843589576588549294026715760222553735984346291084122418269899341746145968322637444851699370355285253148840520778089719324491806037333354350595551556359695485934531015578676356641803862750022137376949130484070691011780762031990709615937326511345507044369959131473579895946456185785845205087557504341133203132403260127236248572729058443707169118945515106209168634775881507754932768974469372458265073910510125801550912349914520219504539173759876436459095050865457301995780161467708833724024777948661869452207433770809541536202364152888756279127728442337514871527559638339736394953291924346257652580349465679217142395733542872553511705059924558726548662910776765499381277454273853686772662701787009737047858808328095754907299736779974224366551401739486310859636940923423818691795755509632072417024883135034924096225340804653581997025058180139629400696791326367259038943629476352015171394589085112471523805191898836105429717012330243042615587103194024584809690150895928121101099410094860365320314785432824448873441951367819685858332716010945471314349372627588974254199461231223311192766608945064584127797686777758140617667341851413637988096974658623244601811875398994023983345324095310410130313255710675397511638455442425534321886741688958553475616841025414221436096560357618241301339518888618899470110304295858410472030228563080214908285143882258002989239964573235225774524025439606646014252153917815892098462180209137108512959319226700492604384843420004490570587279637324723899255418108022444661930617754342892336578729808740778342135702246869338017087548489320660267125128668949150629049596185107792028754636955515318561439867705826544377410526807180696269045589136524309213546650111273132364662649670758840534706429493079224399138528337905707572836114810245461673046898716682690527752317824131597457658858074885411493455263842942866174955763803079599251450228740356488885229456466169775940976217166948726317264458930514594930770757849162065697650388773917679609568568503909880946164597880140388328650548115907645611173985662755152589218604719015410968859605523835974289229295800082701728984231701764163906841129695336325580745799893105509986321069189963644313809622983922969703845646540963743645060972137870055236997019754647069422301363794046674114313774844628507516950227831979333099366622550862967684618531169152659959274593168798214892928577631439007960808654537787014292802675331976250294996775505824912212206156204897717437845571747458049040256507788005656817186061029672370673011773813717344258394596552098025712906584738398997456737910045425325592896358364230337095570398241912843921011618484784913989143697420179879198131763367138825525037515945134826903517508955540757712589654463328428707256489474829686195450098801407663814870606942313424115162696906465657228669065085412279197994381011235576652806953070827326449025291625607695255146597852313900112068672824101389126032100574777710284021654263082925983618902702101806118954549675399524540412641188679198400082077219586032057555828298087454177923026914060993615028911603115808179533558591319069965178764838092763966157337222839721868114249125533649040618201453749005173594151007034136884046308169447876312690235918958448542701457689219895696242822392439458351817452336435218443986551817280253835300115128005162638420877345999014038436937114290351191391903488005818111251903975296024478574553042761593859816430863069589316235944096368941593331707371480902629950499654883694857403171190047231950936782627896581118389521270901641154761543420675778823261088619058940102081011342169767975115013308475927037565685731915331985056095624886639186847421418373609924313230653355533214862646525599582758823931282545182467306382566638253306798775322464461681704346198504773392076063858542487501912785571862248278674385996656702102703172413082963986002633752724195149124254672717845339465284978731610518120416125227811300779143389330068056930912203767025359151786836308324502014667045624537900344027460266226836783946204108617010671974260398972877924634550915337499269820249752909662687878535874501200840079277081831666316244127135770231776808417126014238340707787676744279030728384178105647054579317061246204572034326416265296461756097473244177879701094776377400030689380157065914104894503289925169366212056465894204935095342128725672282396253008811812404685202409365219531940007282581244163878570986541497211944812004115665943377019452852201151868873783773879364688587440025110989140943926708796500845577107179898838475858362820844840174740135471348548006869854866656717100880095202725509335588080938674984067776101186011198034664420988748275122676253598995622104137970251827743399500516946003234162836489794240836750022715269629812288985649392056044497471052426921613944348570878884789505246750141692014202380261013806035009196906143429428608511244345788554648307470039988523365090996782833181751724574671036527315121663651245154819348587283301034457269515300071700797129110604279566807481216970634739163389246345329699384842643877619393762763526680250341497649648709538558729014372293669185709117975152389901352499679443568150908561790591923912073226845753224236989268866861521151141430887466652665332175019324634099623147979177289082202673381929391967516774794356522757644087304383590918624536028313508382567370172525883431071525355529780925349885388993671848412563048691053320477980598227260714312236038597054872651263124004165806175206397675794413757708031214501303813497201568420837028815005115879773201568868793688830843063317156609479381221633834596712835907058226772905662434212582941542602072168385056556008741255234686930302267095924529229786746895181073851518041685067373066094180417049092819464937239754309581128844090552190581911717824558947446989350523466020396617686298975767448758925178041883342640407258218227510040940498070431905721220995999664678509467294953180227963961599451850015053654563771088066282596240587430606829854844409302752948308258861021927003884889431124720062392169589031217279267538797092060024297401709885088374037096315040117884262300504125448864122550101425005557542744756873372906608055441837289616424209463080834335052309571088170532159842209941750358220506914191241260201924850323916261290991078935404328472886051884226945365085296904627838649365495714804180491381695716599900281758864232872793183648709788056820186023289763187416944498611102544085778207795065248420382663701001050167536996913565968180127626653475911999883164455121760801448801904580945684089897371839355211212887484674637465256646348701379398653114662460350863397344141455456679694367124408835825648923460892829109104449697179594272234214923283467310755999579332135276679908711660504707715045742970005389537864931620220498129932302396064191743546208775133142561783952245681817582944187154790097154704585334754349340857231413003159740163190469870042405831441659644515905579048826115144804721096605317087725742414232628702125414523794121455481873474400695201572709768898454910079562998560662983898311275177690687058522921220772342298780100884035327173548250803115822429663652989364915554004260801408756099119071316596447174183967335649047880833374559607562716744647317067704028447361640786144764740543100692321081079408686356372087088479668488835249903810203130617039369574188630059895734707843073790812115335941597767290697814953429173936610076472540864896093684487508472434241146829328392452271448422536101214471092844840670779822541967140413854775688857928903954429176769745552377225815740214355807722103566098613149565380633961159724954802467415667744879012466963049313895505495257844006234231532789068836714796347923861786018020336316046602806486790353822527399906075851226126727682451326904923841593751999267696739101482973329979827147850789995901484807281395714102877993002227707956705947943462290851554813795242162906940191226206002083184783109945006775696299080729108545001324999729453609992547175997316765666201059058094577162405385551555434254384869782657124489767983037549609534890649599232466965935669289568360460253744543179921919787791596520644457854694803721211910904501284844703266950413268345987634343817384600190582149997008809267929168020921530711980232075467985402111894568780526584139512310689128743357730333272955470746764290196038878418831713701837570561845189495559373651010671768697792866734118950481075239040188045898082881218640886052284803845607532148084696650035388268587440285399351282990524086173450778006204542547408650151601348231704004948068525403789728388994314869648558721261935626717279698576799778395919114891549212365775549858640392274023482648906786631889079272295083723427583851005908303751011053805688460084747404988488708727392827788103990259456155667833188309317783080275173431352227194512339883730253953170430942621973457354180671446344733549893033459336986756481380151981172831701200604051942984675024045314748111363589874856221800774685179673547215303383853212577151205712997628301809648263299393404161650124910457294483723036833893266388352225445606712705301059635209827656754109117407648479617572308352721703543956302765776013942417587809104390354711802486228896361850745902089739514845028781902262255998073882797739830911828599017554078109046142726216296551434682995125714601330951693385813547678014086332695353450739041047405129679596038118479674289478606574554905148394053701933818351431097646889754597063578346882490441361910164426985475642455719939569305663214311948273601557192248231955423673090269378039891897829036385750988915093876683730443641838820413199440542266368686863288348871014889041131868436115469923422973981647372702504173835142875863871665504424858336767472541308875971747963880589816905481755561815266836359811611477579328456518718702132838973138952892164583014119655667041417501013640297548842706178316214543156746563041710496095214154839805092864306779412473263002865272356697368902013575827141608450740026514669037417365262328282661670231411616126118001984889285942506332124640065411543700229136463304430170528265638437619783690586820559328962750517991738822643188059913601467722279141844655620802137941514093764987356047376931946512027087819711896107620525632446939731285104479531376420361051676882166456920465923967348949135820904282540696476086109723205660147463529470951167112469604496019290827296296361145242747378975021817969971671998464611882578195751498649968002680919842073195653329998405652219507844690327960794424634772870457155929379879857378434617425187205003926579994953191224501406520952877589014082912472489328619265568984236398493569095924377085476486154836883125984589193745158007557140987745140369959547471714243719292414740383983811995997394790554822468873592685348975246001586381971931679986665535746803216758063411622018384504769644058930615775758936564454052813417164164717836871960589957900018999010588267116765226026059326291360390272766229820487040582964445283012141230859386944114368251606292763869452825461569950382093520337553151308062381386826407160346174911279422602354157951430385975490355268902961504894928953467316835002412872109407094177135681603337106949179058807252698504900342989628707756908242234877085012324632268906201995627323109855403966198486545999475805266149460251390925773747947163963813493268905942264382164556901764251629807778731783094502679941173256915653661663276523790034365400794107799328645463048494903408859890412429522751411675628359740912563384548455737165858919397498604805113200648330970270472719730574456864800889839779919239719910312475000635951935876015650785101981170586016585328028542661115266550191735245626811081332783498492995629863593993648398363230926465136563947518841468387575798572774000113981283697307938934539120881815953468363455370107295078261603306361759108479724400296230366469423357907952291639354519096626083661667359856528723505704255791132214398520259313401536291606214080330393129615472824437427804849939449814495348796628759699174927336286191597644696823851689113995806496627589257980203557295781782162477900276477299269074813149348162388570599165395266312198397749548300803591299016119773931999504723581593144858548299661947417437541009087294503427872629961175440218526712334779021147421874763193812674392240689221192517619462802113475680960810354844223386388627097179911323435314046495981955100951849067593077395163338345788553085464571235161088236261480867184085545761196423342327323801315386052929774277874779152195800205877993921074525375387497325598213022300265841110369647779484371470171116539540296417345902572871077622244957103843754921548074363110792662709306973222727039505526018643417490873498123983683491998805995524214873218039474172533437049656455453280510564064720890289031096275137031857140105131027844899817795283962803905103951084588502912348427591077423892360083315508249316108612645499824168162854629718583842776386522750260376473803105363249356743672327696691508380770663171662433869078220013176833485272565862605852187684515019132080271589064137720846287492470026904347667674945540250969004048989232471908319936201711508362763554389691837623436972867229410152379558759496959809702459329199696238824596002204689878101734994963266580496258666077493940808133251540087626634850677592951317970671444105659761984253341440010223931384255721463704095894773155983967869988273733492440571061786090147798704373950322643427932592014693487185831008667528536944469857755219837268299000221452730846882753348183648307412602893263815800429073011109305726040487083660225130413213165128803469297023324771673099258969039283822550346717537236576697329852825885854335079549703683902015206177154450548417684051262095216114483783133680121020700553677043602439773317131678853433075589163318249136203243107040104762323404189435944938418919386187206142605115310014465085386407477558156557479376630039718463811215919403101656540996359563279957462788800699308455285377718963030185303727463622657074996266530954060218357067155319751869416201783437070882703957564272673741390797549006668618314061929219424387361046422300451085106271886689281879308034603940563926559400674494062214804103242311501999938964172535108801288317173149379467493486590234343832970361771232281679526419950814593402779300054014750741937838727549948343166582075362046041240121028988242843007167889341725352639066901348800512248157597680166336382243983608294141384328385393672417587734940633318647187545715770328939877727170519199737660825986447179808789931650736929490981229120339557444241131797447255233864650248368908079819031372908072266482512390650288998038135543008532145578137436676261100182935066427157731732778147464667412796277692108707999663540155916073250676943092237971306166371242702086988527490508812165281870281645813534390177706569507117528362039166176557749225972551352847303150759024918548244082474203823108451438380475215744688106964617345145735091300191299941504646682926815172449433717228424574107579627591051369555531920741318650787688132169562147763267059655615131163550964792793094110569363346112475469986215247953307762503426567457354757234399924145805718018763988209680993561299407947813229445193541090928064933939472211735292796061786329572996734997385137871490915021680797814224245401540705023328903129913017278008744448725834200639396548955606873498604522376762136881477171344774805371145346973198635785098961968746981994337364846338759709574623032859118572137908674636106315341819913762895478904119959797913412501074546252799240541340490326170934233524673232388082587034118064196668111248516794836342586773113993941933555756158733573699601057232580529747992941077748233258656743580858957886743377959445339019201010751964722016048283292204056309756092033495311236091791631131970777778153112159562214831974182595384898218995082513834270564447626432644757799411147853811205876529283405428942891194946010581275599992030513108271362132898031651937245389488708678652414844257415380083277350760142633108674700891515831506362997086810219427256073459103055025821082259164206706389502208445652178922459507546367495021481776208619593904204084533610290753441253325435027734311703990989685498727555813427131424215090715760221965659439199925993267375187538931847716249462038949075693352507663663036732462935337120817217893074643702280326678182099012497127215081069148859971400850972655901967953667052042015126899312802778989753207271883683584501995293207425163678490389852781563213454269508324440679875461266672350022940901984647050108851266737648375591289367902889545978241572646099320484260782092659938568001376915855758061294020497997381427543098846769086884059091289353279762841952339704891751999801906969886967220804564753380444019339916717189202438240053172292214867607070972833093878793120200992479878837783539345721458642989725523459313159015183925827912030020691755617324190199546046738922989693435554423792580355002821086974067092653973893505953390606648129738134014050897308080646690087588913037100752628341823784918879981665879594030882719747998741022705085106794270243484035936622837291471859715748577799989412346772695454046710733160389460261882243321936456131508464432807575327703244510816991057792821175486731644220891854228829736737434338810160271139152278045471643846818512544601402219539571266723474523602534536311466428132232672113418164707083911781037202117286820268725298245936719612461812171780540220884807436535962565267348875662480174716987253095304868254810098116701999763508627552068480325682005161224034970425340303878466043659575810866386093906146614697454140250033527224285253045051158418191345483960994828185457940516546604016553966536400762668752958490302988757901861769467708960371424269051053965719875933010232435600074958772156025325132101797574425278957922073098442598435610418421858457459384859972470926608933881106503246773344757911900196591897668577215111573563187944266846040641167071779064410887625410488144601368785967496795023357366480112178030922772363187750446790679579440121498229835829622644191111103110504066679348537721332259563503811315661348432456622597488058647205590872376855781469551976066971924928452464589512735793767893905178996213462083525401313386795094964198264022600529576619434050312796085307536225199197534188707371235844808596186766751333117043519499565039176069925550355480202810488051986218384101996300391530402661513494107543950000293123837158659806752759148839544899083654423367554201923339193631653474443845833229608731274569165491753754926308632163924029709831692885576564956620499495736733891057769986957711759613578339875240598737153749846096152921594939205920455516181102549018344156228497228484938906321759589976472790808856215593641849793515942169237863991755708946943181906325472707346896048607780416233792339975303372147881308253692767892776117640707354579724810707510766419016995980776700950468806998896537838999719814921961683762360750145898467415820399383083658818251399269406526673546846114999560908666484821380612982859899464830482149448944038696278269285637426081669254249367365793268677086218600016922349406988906685018353936358874132270512893270486912758500709568596650415579335412009722214739276726800238157959424847538231581082707365285664190146298824002489826693170245232418068280094501960221696196785871188317861474409385401032085855966483075457662577352557758281252556759632742844467523554876687647094775296177700335814713949727227213000045975014075235181538413262058073688076406763374766109516129447209283517755740549952031774648113912049899893248120360445070855721034480711309380144322729541396253793015249061862350258349219426560692589820369167444699030002568415101304573316418026590780178096100622010252140366193948065025965916330413526559217373486548613501176272640625758547356766600971101847279934728008439065764715850019594361109002512405264461791594655446411946560094838097301556423229603746736266972926848493896634008136130007085938795321406269809168558852707544311988179627255600982121047984645737958797809844324307628361414690919757934632615753502677505010530777320376787407973793741322559631846625723501515208932161798802881306123135395936660064936408818793759984139013736003698400684751215210735255719043160552877490008742350757043017547647307743869444173597468630628701564969607904882299300171561923036771088567446942035025643254585275747120572535628599271412191149151379942445157440255737033199771449091703907106788461424380765942343456891929435715217116458388333269186514274498534487779873266445408586858984375039489851041695942031815599207363812482569767096960993373695371121741158428472461966267160523892245055810373003592999159648744061563763612382371069299040521323608871026376284889181048832906743195551426117293749069375637085263656643110117250930082972762960100876033777180939056674966235282742457246185689357786222438843969684711820182837172414290589293501452658626939384169828276519994006467965523460965671673720204912103337095355466344564678756651241712126603252033444534405867499015466623830421526759608163753160234687165427645484325651936714696644460054617475055663596040928920607574416633363756275930781924123802839774938905654997667612100407870193569853373327024798335971583078172088980907108637379290665013437406042899095928932031004882402666265133968678844067675194864514554267982918796708745230082573437321334008350090381585620397224822796877923478104606132209854825476029201529243689547638744126209395310621232953550187221342067812419849821176125799134843000543468315204739661541805042980038984636614315397216646642840576661809749379500872202754115021962691726766600288142807713057129432222384179393080144019493582405629412544409048171467525799986402523886146991641874744997325671547133014705219035971463912361896595709529056497545907406966961685160252325679826308920240055497967919085344164295183972366997122549180302356133049138723214230221663195131789832687661615149673136111679426509943255732212218390986915792882539454105728516533112195503157215693632335009345429184606073277909264316956845302609703998304713454124152895994735481531609381859164218196178610894419689975826451300056176512214335361526519601569653419691583473108276223429551916457755002573685286157517490544579951397193832919884009305068888290004793200949124826465997607495634997533925310271307551296286325774946707909203415229575047970699994325296695698855706929837940623284233459714866796544776132462376730337303756358452171837049317035458516057954558599344064239965217277765290448968771111801805639421785002796659861437702316986028459637155265756739167131193705479596605325524778834752870568335522358882580718223335874022039836454414812838330950405108280438481909441454471473044783153660029225240469011908451768563810879628334387547829712149305524433105539896587338768998569781662518792429017058455341375790382822299081528084629726846688484122526189312942880798289552763771088532629957393086443498594331671296667184784914358603225886143347989760552610514361506107273623137533029234262215723596281753209858103570777817377301659643881420533155552595805263700119159905210540052432076989406477201184092939694309306510500338399901656005951259216181518883691852269937442436644007062483971090691874504599938810483777110998758874455492971606341254181819596332201522658453086706646180113692852742895576729194935615471418506501613044433943275726182170928358705980039796621674064096644963836703268873085613038160835665036039727693797476236479723367097414897473060456220427803856991124136936263199657265189605116330099408355864273270688672194964156243972493331590859543124223317169804797289868032879413047471707822387705202173643149830926378626493748108782576119732446343019751603563393879284644718275455157728008209369478020689264384953316320678110295642940883414762966913646088039950832764891434688340638368183131138703854071039763568846701404273563415781816731455632494793273214828210105745994538234286896111626808957844040039282536267471432019552342567779217470006016984305152793578755184643982161203335134917897698181754467910451430777408496301389001739095705474153195442382682845607652002333225647343715506317957198960523296877745117379941172798601785275919456830871016622226206564466604098261250389674242722294066818429160339811538910221041526067440177786990757551137335093145805783923047968012932835231014382775595675223738262736842162577731213309088416647486739732674937908723722193106598226622309961926247988665274826563869982095442381896915257066505324506608688631114772448622275376495565959029284822008288796061668165492012311397496732780816750646605859086454196247543918048782664550026193984771089722791211398495235518304817148851462421946115313425870779746057220364071761190979812641246185352414526694254093742323113040049275710269759748677283090227081912481513955797355861130324971356236356311171436121948907170607236490854447148869292744326560786635250192095022634934957850537146774209502135493004484705891742257351879799501172523486306576158449906839051797326698833476136110003270863136307564642573095327249926432504575047610387769457693554487795675313725933676910823695357407368435439583714699992722323350148624606168813977009845614014694694250216179431932825506675019971251312335541204249648751550191810199120790447016771236289503893560184341569508079769944724062576820091811268421181686910017775817662859545431164832157650176981282568089251977613936719369027995589766259678367462736511367352957261743060770952279713915610162138744297727025838230149400577313940550960536947085937186161669153837547306938789160520095561915048705299321892876064996622928231938967591800427866523480263208076664889268470143185840049053519161578710943144090811765669962402714295398804494254694994556662475760106742584580529746977627346663376462662378963874909679160238302380629063439255828623482410505865037098704441647882067063641063578388451509903722426193328570584035888226217852646748592874977501144328128424316831210215128136784848520493175485168550805351209062581333898720282991082576479638798243302300359376438040081462383386733615140998277965426135588240904221793892342279807596690030448476435925949007730512090278106441042636916420301840595141846310753427099489333907428479306258253426364974824588225414136848692624426862740644661796294180355046350649739083750681479008259216526251961676602804186128865531632571475252342189371637286859314600005836729356381574399016453555391628064328714422537333113379700674687069850702087619128153156621174450927294961295172334377276913869122021624462622560161909232049884902130361844621310195593847453764449969913550356770940989348368013483591069252101875902571166365789250577735914835044744289399901021203573565862788958395716458165555577042103654621806122152195180242116258973650891032660440460501394980657947383142700288072353325479524668524764331429000209407143954688136625891666766295939252159883761482956794307203814954953828311786916325915104559362801740829669226378062198348205188261711198352659746337710707771347528422245620257998964197859811485323950396038233215284165346603591451314815666433632758264525104102290208514670332723132324314218068554278098899336517806212064456830283912474837556992542966915470229968466465620237933297359303741438492910510056414364607809155859881577281682799949657998596948663505824221308916434628491775164644641870095108712731844661167274425357476385682859532814828707249784255704653287588498795796686937983995145852154237077895572635123976813654218448654164161629582883303375956568707348596192740730975935526116668478058356271002391196363710642011738621061550857998045875060926099678999519339096603019783583228035891379077631063691211480002209323352955071274087861724988475743337486128973636284399100046240287643623453125800822364412510869278788119660624634100925158672730166977332671200224704653614782234836899560460788127131874177309204585064008069813732608424788990599962374800474278305950807906495041126133208940205919293575587439284526673554565199463028752647869557164339831457599467667149321678504376471935184654432218251954021610207658665593379552392184406112302484747800840659263250181947393131849281147439244300182836005139914674579404799644518984683339000941028512646255061299845011235818630815270950405694443751710054843374114711107950090777951067945915469321839466990764128230017961587068640982904841633501737166822591340523852358447802159137597875295625578316743587641609354354529085332022473022949100956703501943314999542624290441258939153195546423326867845786003875262364329578031402626050000602667769061372945312484468793280286540006192902388646890646808005531634197991840279695278677347009362643558745523446475244702770530471176552257241841288010875643739840913639998561516417899086113386171276773665633087259435257323269544202400046144511413296833913774005429896365984908288240020097008631957599816897809120498061718174745276337725486717492523467878227707727719035372806575680492079938994521560241713847701939103276960895301778924230571224464059933416373273480033206268800098262074339673559562311541540448847388230611389542425615402335035898869286846534979291883280282645785472981410661358929810764758362796639504595005033885562881838390142602209663007150406020914182525317922323716157420746194701391532973562328575260350182931362094143694179495072648237503015746003918541649856851266122991310787448246429938047252187282360059608050046219770135317651762389023482474448071749360174719358784571142713890644956714111829155815759670427198833600309870615690617337406795080674000362044847177072599259554430403543580735940292298951584164588117144438467399742709083467138101501286507485490139298499420481360421440607570845617693506727035319943222960121026435015740702576423763776686989224806382386471586885780484259372005113567882103623415044654232084625382219052984171487443922579456842640704938781281904890999311973567782514695510663655665757783744799562202321041678706190714651653763888663337774079601674772398694086323763267310091322504368625989453431154408139752125667069895322627108455591257479820546728680906760259627141991544677312992535032889575159901066812690862577720080627268315382706258247700217089500897715171102515004771231066041757124424480513205507699279251019177567046030779256595167969457485379099989367214919141706470529171224617530416221641945218141301542184007790960549524835914409162771702278331530027503494120026891250134044237851885819885143173992625943615759893956692793892579551142939827397096098469848204172132152288849614746381764154434871446725642908800782548832264496128955800659488551488723367632889483876874205086293254046086277424117016364758609064986711321430487123764438379599474865696241371049168771978410670522461329596664662706265632034260342449996346275941827361557156572126383492368769678475382807072725228440789383329307623441309393510697001146952452421326469613916867138808526540417722478586925765264091069077895043944471581908875490604308531368702045512810197197945092889032621024663648435874820455354383626256958375082330639672530486829484012402277509144123067680966869637108656096523879693541062462538516557362872471630607489790136458220911212720578620370184979772622887499664063813244833579039800972625711142298218722462038862469684110752264493221068457621697971517297755935577719291674414587834422391798605284544905965801633783262294192229034476042595666553934295598428462627812755008861639537933556032141921829102934799782661991583517959258114209743354117378940727312904527261500821467504234552666618051043559406900973681276150144015343824477618821532660367288466192845310655971476176473851129973571887257671589208977248315955399455612399628282353872219640393472565916292802648765156018096262733737449587899409818479203873243954562772506996772953972938023393567380981671761216043489761865862191564542271128754956601106072447089494709771099758915015323380655571238338242846867150425221152571140718061929703099718191820968043795959908042947415080205362393507978221335594129905563206843117921527523490389640516559799193202574450962268107777710217228805953552279940590477553804555964273219309685982725662635622645649598428614896413260702711944752058643674492925113525331169354990548320514369170881815875580150905339971840714675560911644029187357786126942475352290656365126926280471065618246508893769115056605351545891418087244664534402920439665853798539436299855769361002771487497260749995889779483195287349413358762259128184985571082800723202042140923658800903499314440310296179383387682069719704223419906334739761703413700945781911804537377809101174051074103690620880338175965400039822739405057999931813546760445148038580629885006884608296613582292652804174426192501319174039975043599036216410854339219131500495883549102024906893120232143071001276720621544526970717755260247485089998863436291232389997490952381202370781199699674336333791419548518603291931178848000555693297125095159491014895137829699528928916073269085359271931583725546878914528132152200436709176590510889171819316950859080613545778860744822275441696647969224840462176279766174511269424567314922777867324550343599619042119395127634003307778735312925990699370043920693471173034661931409120191803603119030836616525093919318876341280841229480310940195958886224772129374904703282874446765609493223388914957614022053243733965296777055013477199071445160377029430980554860933662793959264196688522282490971094324744407642393313072065189971125820092176469715928136355285840272841750598586531059021787438647338580424936435615460829973195144164043683238290287255887027376425786140478355940714407108088732791039949089575063338582773112287584790691712327654978588061218454381253867639432456354281821701883528801478044703819934870945876710626212262555677095693940577382525828432016462895307649080353810051312707878940841715981572668751269457391015665793587311339698256434821698802329934953445858633925033196040432403374596991512945041066555766995255700867310995634849260730409326596578569146060645811764676560184749347633936724799179839814326362629980419478713017553575510159426980060585160942087447951464555466901178029232961639062804036286397931924949633915638314925100315110219325715210424296845792955007153061807950516061167431188618918560077353665589824345058749538705196594754758920073173656361762259250703750558066974504346277844050257323373713826751125963278118698891892304050591975937425842084363059951007825706015350508064648048906164817386095685333974155347730459165782260468515379665074259689756340885009163478436748994523281104246458840828364016972412915636638405462752017231847265993651078140705591143422361532041710163312765695458854040372007234299522171143759792402813811955006382911807349764952144438546318652922595961752792969304974707337048433256443143625579197214674881177696855830562580465258857088140950620842875217806901025518286393066150316766866282368141707605488350081756601627356408678504879526007031930576324045926809959205412282222711250001633029505276065822578474811769318951562708887353414635881527560276512569819714985132300070989640478330693037178017476735497228911873264574931730573896695634772201179769767704187992689918435759980570223711936856455566144842032034743738186972348633713803784432013167520284129136630166280620602037031799779437581634063518247816145545492423470804431541462170933837465235334078219850013108311262072973950063089503434752367160815599869491917647302142665266357697062536266249478215645169393513126166733285687260213944589162773915326054948074609277139869462249279825661939514559591486170359152332436173630452265554364928457321570833136822715780460216015258068948069983004271383719695547779285846443329885443749998094512177061602488911162069604180878310196277469311700395527746103271273613523466530978750857493601659564369758358342409533641952054053993954617574898301767883247903341328668330160161838392016714625863375762396046136569696601728313040600214929523243522852097124250293358220500405106319572231902595663940584733062737395444336265979326833383374061781433852597360575059703022014571159259712999019898820638651570239441931288178087952453622095747530912677129882413779245607454235375594004546072529872609903995680375339064954583091966974385226612569138433026777233432573608983898579328329392944454261501517186861934630809939892902569911358755170184464241635842158494277801607755122315188620621073180981010057601500183601261727886437957326507607311101665815454189806801540003283327949270648244994801678964669391442526162434945125732983436418179357872294802744861503426864852738477058700631116795095395664853891560353397561271220725316725116101768332882860494953211975978884381297584020095118095302788042104483437688556836780862087484593042284008357510641327291430888219515316772614828524234244432675772560385105334725587261274827842788741927547098827799757708401667901041343435837000382739205472305492815689050218685938712489014979053241828320513056145511027334293767680740717169427324109419896622443082324824888679147034334354948252393706826325441565247158418320795781745161983280801390110912304785946780960328374671347423926605214131960524474248309002853202252493978660429834990498576235905689266698261207824681087047409648809608080845769848665995336205768384212849135555028218229625051502010640227728116942119547694021208944326555191327472249156319410661561128130152570629058994031395420508450603077762497230568688931006776832167637484464233550607057034746110584349885474337921732904388997853410289702068406578788045894255944591951706606354086442642000658211468068645400365487719128633680426490483495723438946820075907359536630765812272662502122472297509083579985950004600032097014527160665974796555983868861331574846699809450964013020221803639655065240262729554002222530708999795873045425238599409055316372391659950685996845387521137247247939200956374536164922817183547075698122763872815629439350977517941636092257148494216746886257227381526259090752529773710539829729190642961853711722429354185921904848847853183918842083844875934380187800353861027261004888695324802790174084839497814715705813605923557526347450845439828749584316244139252757317866055683550310870130622973813688211289623758179262351124965120605306994707804544485710385106459728340697343636428902496598972667475640643403535061782128013078699991075881813894225230662090184964875128781625017488275576117892474753606731854296135960242785772788841553278157444923554798933735475796162327272898060399513809168973014412085942886108432727473724808006351287490471188123779405805256691926244693501435460880352666032374278650561043860598492061726157855112082163943067057602245081857143001801902640781369635285546343009612531813450143978520892411874648183553398907930711680186600267847158021445847331901320202479684433549299519150649122838719096463828166335891264078019292106331049819377127796970028369568009798256942753749171637299059950350564943299038441414902569657112328313680365954871029204009329865408947772726341823400119986164561153848162536126143028078929260512114636503322826179773298986149260103250105301963645335266889546007999507736878949704512835491892845905095617920388259118235965331807272215156511692565927343110590207187683392200900912446470056925554866825962885051544687839953771822519724486476912320776698145634235622285420017483937757846647244899475995224058447721348788269651518488899057925033895787243237217165179460451359635849630599038104477628895466234156757905482552008452939729847012410252038385820679000478912671324982228491322313559068255845535294312623219638744662831256579310017679183182038781755588867026863079443813023592656515727153052595303775383829626533496526906302273289312457293690615795978552841243628177799820623682375067878763543154452871322155665531453968748258199635987405070532997961500518087313376081335532514156477519774378820800226931455783927768142363654814157102800940906854839494181015568290881013466197274991782086409440560392968855264926728650566704761394232219698808295243225557869285566422745081826666606817138308418516761935423421799574346820814982324966834348460614471586438367558646061501866136699317738593708300456215061907393291826978687283072347841243931488072380208617981268092725609203060130466198975249151164094963790033160070630759165468637797516924521587857207995339183668269060775287012450261353282582467907441203967032627412173224142360904900338026534275489157150076726287998338881188752631740341050474039944322997255170406937280487413021673692138205512299334282564797084578406330984176149327129010848608114721966221676497764653139281774164215919106231124311211896758865794141178993481878482016319078877840321364853464264007295631486277515989037250744904306450414852140307156020455099960780655057739872746290453250202614334624494534192109946188882564558740775307388398939949111480015951550268673382006870098893672773378258193098728392533893612889159505536238773481049592824140260265397056763060028918912756245562283351369060423898386374400167169656263335193036627008407274121118193176302600812291842400395324835503337524365194428159055029174287258896422234356521159213080789494496274796048323191049354214966778515300819678342241490102052121651972002146020059495900634798526039163596314084274163766519094079795373108669214133911154370898080592100874376736277925333820653961811469881654974225881896343086520568906532657656261920920187841407116050108545734919262966104881867441520616758204013728324589924365257329061327861460167680145853560033801146219078156915398752400097355580089573471432819027663892764493409022168968787385173658082347408891117309827651106854816174687856739130793084519979219390816989806761346190447456021644147103762298495057331654765419231822702921584732754914964652248023040740132693319484502125752231798367583751164821029930972307128255674827950980533853861577790262326451637991291709682887920999058168346750681011712398023546638754674148544384219600724912380791972074481412470212705558374581622380256624221986500023580225640785253827756160271816219554454787992666301042298909346287782455407802027944323087194153805056179006869360636564699375822900246350759252670099715142639303097492920539796331692919607995574466948615203792945465519066470349819916852870846008307642926033353204439063091753287060670933581930330093470935516217385346082580402374485706568560515319368547322874552689826043118693112916533360331026688809291737883050966627400398535007020529062988223061482649483057321357274665941461990159892475009547656234743873185230943267847289288728239220626024189037888747906185282037013722713586531094166784981121091181869488426279055313256890374503351747093156551200450798404416402360461326238098658333244880551490784025038593395648852759238235474132221970930208708861325932960025044278450139387278131179866234107812906025501283632414071990455472358160382173839532328898923515977059053150129413992792014678131804154221048131774191662310993934247651384347199496912334462160959459783008463343546800011691818012894795768634285353042945327162883123735125940312607016122386920300758688059790985235024750480645067469922671330863072736245958687078574143834287522757318271696078566115804402147767263928228146768341981353841086081194873709587093564682728122833729959953638035370789953854101717609879314139189397030971520954271108217071685040284452812261431483523360772464800964844210256509420116868356718009457388228891769640330456828064763630588444350675277252702405841672035499139054549362322728717425288819021982000057939502800714795040042547155201455399319665806317185541312423200961080316459005044338728080630690644658187252847693261726059605366023584997158605517224173906341327906682975577930668802344543781329229046032993130768864960072838221580291972995486134425996777568242870533954592656046963629736565840231804371373658326652419407762299751810765335096525772050342630925962047260630818309862615105215406758307280158351023466444175758682410124866384792508542794189376503694650420063455206517160725109691896151481047077561870477712977344877935725889915026081759326451068235238171025937167358489891016387878831417525476832941422325451109718090644548418330696818325481935617455152521273315714166506407439550091099776425314215078291207337828828230377928301097576251223841161998423627520853676787171583929175847082282605819531029772044170541579507298328936152236492831997641093881685699066919821377568826641741183768492362859367142774777967586584105751197318147751479401450883053600302105615977345562037525506011469656424543441873923906265502195427969862241397258452672201182181243492857255217085223170897402953723439355187271893473524912795617835332671328929849196262570831678516349787420704895039114475416407461397823407236048159517752400089111608540477065894556541582509854907341947295455317044123228179601209826025702744209462633506870930206325370981216173588493013025643883748885425505506453859806475613020949405901793921367822023204503446698495592548780763389121199690839394732737516737210413426626721837345091215312672665852367171685661796522600346887663053189267110318289986842147111853149104788343669431327840443189607452550788377378887354566974251468870821515924112914936608171219874958887230039257532811075178874986929872173608349720651681678910727536773020176257793864893717028759025160253090277097091849384453803358899682083357747236666196027191820730104896419309431020038395558572962714894745189225892335352791390914515123336412342901862459861583392787929424896270671830740201511491356400873619946104445199142613489528563864645587012720720905207036371775501357573131421561536838982716096976338056429424257776746834804526168997624095920407699508762918916400386701290934493192716097573801739854829572354296801089092319455701248916928989272065974914161669291250206605411392340956778523352926305048702626977667321517342763617889760301272078670734404503919188742798854940120150745896886243116285719914183592029302714107728493236680991576035412317831185794307826083006763462449487278527488901844878961368397957687812284223310356360968072137289367476753834342326761564842975047060509949446769241259207288613957252337171682429467810410361412202622200983051497875533293724754947478078620521370546988385491338980184607091635703548825401556356673341017757646107417963412432976932350619273603353559091969049798529258325109421803964197002632383731398448578172275549403178110144903704834096516320189700757726407121677010207774579265230284608988156403588551428225452648623298267532168440075831008337393090183175039813014471701729452262912125163651433587920144206289523717130416208697349095414742785169780044726130521118066163727947218879655789215992094686035868540141603220462258020152182097235233522475696154118921539905250526075953464694048762881538159749828992180907699156679540860943731467744965945693641750362284825226479482134502841476280791855762769706829112418477336993008296829206390867137182023190577857825275309965503660040747017990051007104893262897407521241825159203328086101735200789990965711432902497878824128639867226301393321062993813602550811229375519429484384875592546164907067711225706677667373086567834889438880687200703716818117101792013962063101597674359610739677892893276459725111830340687674214493535182072249688873401955346993887489485234157271083259857272301926431004238457653235936812311054369796862570751300555134228099337594235100033573477334560092450078329813450026226153844337230108138430179050015353139876805059450747333050908847998389431177744390392806704144773752050884799664254309773174461929635916515469981265059020132772139452480083777121701658534237427832534619495341284445945506166091905272472676703307833726047410987018088760932703618439323469317150305576378880123949168390322848506591870050411997654276753908332134883335390081509972254672843733923740526144254339282035530805118270653998103744201044883676026913171468577985470549729675200293632829773344254897345765055168429526670756531038204992050508074035747342066494098311487461343881414612273791724388679940155955969095112994637706032899514782125817072356165730546707452198020824378876450938027437322131561241990918614686206861702086004025818616446432977096794237378940757591147109694514961745282619362631393595525537196080700027934056026114640026463603440840360985177634357956629582837288128175372282088888194135935229461256580994048254573205320257677924877389727480440699368834608357809862650306581492543389603670992204880301616021902450175582055529827381181809067347699910879039553730184960371654343671826437901459296914602308257530303339154168037977965121677851775627218747023182115044702583118407043176092958080229605527336425880797928628012023429685095618554884112050118084181726015449338729030799074942611958381824320625547570281719036154146622465290845371591849723879132885136727381980131385228579951251197777417863077781965885193400052575525209313590503587219985181915664672335444140003483053938369964013382342884259336663280351308246899749184331242468299717324739909998678158358003271744419555341902515088841923414263060201978961248061764602207059427088514187836772551719640486074587249747601062388300732103484831399360715938861609578755880685813857535052737934566029150392040180580407172678764645508923064494697498780995405630396044260585320885280775222588264563921259783551568841779230957455060722057533529239295196148063861495768568068284649558577830627071321089588315754235369928548620162152152168802381738014828110808475198646964681510387020201352306828692072531633763135895331312503792016377339878151777525106295201063181562491008753969525867908243732369256898148734681382299169594331671210259600758021515470078657498790255799559015050205421014521067959217804173818091184802395255361134803493935509386235824017498805422520562311448109754926464705338144618913535285400383187806293490763036295939419183653397634384573792882469214054232118045935403813032438358226346796940724841410065006495606722562751534415053337418863010417305567072331019785813162431837893792075052621754518814099941816772182274653282942989812135605697487360963296871845059498687171558215454309430859163046058773696048625388387833617171097802094157668470513972195712641882688341962481823043574240799728128173948146356247662086510367082996111509061631631767768399407086636601204618741018003059097366429728946685016297182242485722457180388245643524609599438150436321140449748474542609262346582110026222322483692930535311178310886398579561527454291830116772055385368210823951343471130865371249271888646567048810275842190818738939419957716527593707763191030540608732183091320192345391058424323633595131142023698179206826035459808600166603122003394631581164978423385781035169548890148339911441644337033577045424414461911864505950140274469979710766116326698840788560696243142372791615133196392531064611072156819753382946203379908953548771366542662325031178427651490340236899249843602218361230533605455330397312022873238975067586660867366443135210915467339441449177424741577810351917120974808289522355955181250220125101149626079912110341460811382178862461030640586410695405894731218470574396828991998103276236241578037906188133775358427968667384772853030904466990539756938461598156732281006619659116172915181444397227356577977058942340546607740216861192399391017088189206649558153313824849250542014222551480479622889652441072256874064074583572861581040539940350444913851445803145534162692891598716264473170375241238858369479726464876667693369015158784841394903576827376425453915990578265699755122023213317083085850001613232848573308264263263799796255456434920915811763095723682680556869429762711870899299865695476123347367566096893260030518619045972382722162620513004226872346305334370652737486180907642133154170488765435732296786829130775041412427824706853027829545229312509134706453977244379944290927159375650344618753893528455827918571935251005878907617210695062654035164647669484396643101438967662977293379370773148413293226259590827178563729249969578412274252525740130484365003537913644053760926725327474640527218138687780724557971394200158580341656378926566993391270943781490633390325238279020196760966918177813885377840116071905181339688048745598988661050708214180827021648680856620770530925743794852853724300745394118306141296864670917981478862085704522181819669891990634827930042625636684497714215141509645749076710786785129455532765590866697771983231435394958465968266590148265558086389495237051007540021325790652219790169377993797913000396134762216083869884446451029703889836071013579805250394958476680818622220009357055988040656024854910050266853412478251080414167977679448087454075606979531876752172454731236494533208418662258569308141908463843330749623646797450573952267967539432178357975644119372697135082197316039100464197132111841498509508495362284563839397335670359899170858171636211640988032357701018588271197739426972037128485544924303367702572800198796922467248347576735796383113093159612645176927051276983002580248673162217766793160207406091842653263286432449031683200546799822811826146567089522777479059564743137572961377080828089302216079479093369480389386662363655064838659436477410277964355065453554535979702379449744142773585189525008163861245505177670256855307886921842863327463920350967176353962518050890622298376683734079148558146022444752840889999040180343031974289062826616856835457551083824255171751176057939285695096581591244148601522226684356890924759899508917241473038635386283463208053340879966850070235136923948695417258814202183279744757750442674357197300824696966890736142792426968362748611964741188122562700565586656616648265446052740859760156801457349279593066543149972825475060424277263425408876628731280604087155360775670092966430719962315044129455016740077158967102483704416426043069723271672680244191980165823944054471640745874220397508338813828383552380730194093332928785194704518954982135585500712703683996924303985890739799276527467791496141964961779375042917521475592631414753416134715201687252346412058771450491281468497763438052840429520473708160227841909913496726084471967282969108026063753763650724142917509855237510189799013995068220960367007002369628078317574044608777138343347647369973708373401968808365363616410094249143519764468047496261324455336606614586879292091171258657572108201250137679690088973666638581171194579102682588976831509383822177604696477214405513890426187488871152029873109503676074236133884218620766791921591348492276163372794014735780802523865848398418005021619987610214092827189216941114140245929825201071352835169787942725825927322543116149088484298022230996333336578749192127624866645532584767119978436034993313469332709495739630869079099547473922945192584273748809115925001687140146618451862335015265641496675435986468157627025643065772926939392987771428512273260831928150454232460035601058722765424321450339599246735775791540834028497504631453065765556590987133155438419383349142838496023249719794071634223354403894157999824742742124950914998645723329327419406643169924058528181955106253194157834537636388517357830895339687082555705720468004642849192204642683103003666394090508400337835082278048992671350005299685460053959214494868165302169101097901805172473582617425018900708078955340919198162251023550384404018674981575092610998261731873401409907851100872579753821716714242645634049825466523444460727281164187812875693426679352478631374281119273075605318736010040695550672521004500902973788951629532312060210237852707571301310425276519658708786555103526103969183254909549095546152597893636644199598745981655153424094321801981938795281544732493773187429277457762102622952745002068922914187668093464664739983366423094904038719502621273224047952275642980409248132240708372206073474780232042119625126832067594942840065450273035413142888033595755064457616846085982037596404415824129282731060809387495882879046008133347441832845644994636883823756483529981003452815670050258039937461336310180938882544323401912107897508862941795740982843631630596809989596142772796599306830743388661093318470468090152204165554772094333948613398467322042547171568959407825612971562673450536071406752370407485628999283630560080323256965864816743105276853597620670787753840629643887980223703618352379366154070219681446297430103242593622377322524696640230411478588755836283452531555013126640883278875179904001794519018920073927774903673122791219284128987315020334585256309425545223682780382177091760893474199679404655627992167918898928541783579207208320069400678462356671852490246415529168853402169795713379856339402085150917856939765788299423492204494723160094552338492833156723646523468101223187585555991763574037765015161094688299541938544634083217699496142662895756289926857850350986367992363974071152401062494302671098899807274108738077644017924148305036092977528786817651513968584839588229103952054599838365206509024643979287890232889193417267929945054548002303431278011093713387939669419407761417340252955290074447937537376417427920837745071846794861608617672210336721481100112957584853524196816604291585819892784002802328480147219477250455073072183098852336658499251753662085677276885434104533889955722756714988143697398179652532859554053313696032848564785128128813649439649781191973968507230496638140746053464892812812852079956121293790310997924090521150554959770216435486203504743069288933570784014152988710317435930403961031070482818396124002451788521510926326088757583599163355429607130222064995694482597295602062644607057845873349309464097634117920671691218847141480624156190252173766208543531059539022143166289882974962838411397154491293800098810679400880816261564179583134988007576299842748588593981033699529657630527983146667630551588752091400332590364628699226073248785472222012234770825218746108356874132316370806983569448364831446105082364027638730639670580432146426816498835099676219257674570116187112941394245822393982568612230915062267614259576463853125242310196846003821427308733276915821917415118886592306872027710216970640483089615284480664126163172387576938502538468930750836569516009431441709233363094812955179952196954063493238274169360772230407472623828049770648612404413696313749554140905186364632538841534238216187730603800252577374032442297248122007844588954306091751734999085727235575313997524102304529360485957100320265072424011416138918751553991647083196517747736625457772437509546653032149192338644745132034639628693572673073445546620102772785734811608395299935750758459871431041274007393065880143461959798884899874515097726014274668382928590419368114052968310227447025010011547372772122950489009786720165306520636549560582949641147885436207267816237333027433252833876075977193611002659444706548747376577683643664745344265984607344457762112957999685433459645182721748833467435136316123917304393376977444458243029900289007248045025147318796542426312514125218455153889991501025013997274426244619805562214744422486206292392096757876543619412486068445844243024951857201412284827869994686415972690515834060879642545996238805333739869086827850230856108601625316842614218467855059546594787150014094731600943499986845435464646134522105883230562347776044796737571957704022735518988165895261511852575383810973116799429552319429495014406656462942811634222365202931692647746196481544396307918374352877208095663018150027076478961021309566505999485266788206361927608627962342098346211630144227858186061635128467825999549751880382382530224912530817319657466933185661038993109151350857444925766716956892690546477130599742866221261400862673654141139613116359199080582648694719255739418184950606569899519691619605102405896274208133091650059072190918133041645055662041845024117807442172244228341086076635868312914894090659278074590621273188865791440944279026571554123667166115509651944025133648350347726549522089601812113194040845170045139220186847574003042141171589084289351410627819073452710400179888884734474660114290904058774351227373090581870221611550423233663007764722418560321951740583623605528579229355538082032683060152238498585217373578278652514103452970048086164372219231591990511260318281147674337763566169642229025082650297121730185033570006747503415465687427232044775512604806807890615594894331875519576399381313637341755231057975532017931380585629829469896001839712710498822303396305566878429226510593397284790700992898546701074192254266120954889676971927083537271728886538465121820592486188827414392871548314279016802475171320354395379262247436406361763380441916373410430950508353631926902389397749747055362924558777493805554888918351847013725694949515701267729141996334723963361987429913521237538122093969317844643802000372611748092846022508266973651519486347700641790395682587457378074172402695047346355862494603973669395880209417905855622371341379217446245614655087983059394364377040050245593285192546992915830592652335599235517150975129074066982903981518611185234769306818005969990325372604900625959385593686486318293358374143726482267676829761398131472621155817447124124640276644852538982984089184366881713461261759248437497884874400967832271652162865061087284686694629233131989699673198877759709812420557011089000961041021901536144223693502419016010200770804580147494994726548725283468157518266994256679710137119426318196072887060322803747743854349717457165634958623287953960063120499212231792523039845832500318908228821949656788255846013206872658968287514280063758808473938367148594459129076060005225982936830930856206364052729210967821676526876452078814500867803537588963983403864830570083393375718885886627556669453505577724116555123459404373210546602639395659801388023062962433872904130040360887628138569538757112885810598612228376217942435160024928245405444241091311394720423553742398807382375524557067925834135997694598350619735792021720100296700773071323846808915641972713477848829256738329667953482614436625926000882704124722335784600444986733002602551703905051693040376478205435158612849601312221992066274421353004823411962991628788730971326754588435499270344182412819707705014813886832423937857309448036124529360908874070759492148525305461967963842658606065681998312968873653223997674251787533082967492823246069331152878415586239375918061303036800863436361285172641544357212363721177240200657192252599645963067303476201921320152440160072165134220223109962731344003036550546446631132891388525861825931963501138058849406650139810747389567593560156923609391245876664207687311294721760512202764698221005170085155050141006998759913748103005752921293376668979895534717038456537126389066252559259985040000542749818274685598180144227752479174012769375274623020704743653397425862658069982158224993382980969060973457833623220624559243619433704467762349157227207357628534241024537465026022440841682220466747022008688348825310554508288105871086633213310626436413461559245738057629879420448051092137956627311711461545707372787493517965721598217304169197801267106143705405256774884031624076792541045520995888547396849400161286541756204562686890777509130255363555116788100210493752184398752088357203495260045079955039022132623054991802427487310626606189154211480153298993100144211400258062265542165581391678613243595438163793026845877888977428956968510748898547584153399035272814012308772691326798367373735601388236116524688687842137183624738475898607183480128452658218137421042403996827051803854979274308206469413565119193228551136345976745972675096377630587683141505858151675165827603653225271076039075110988669434450156660209442111636494094583255389380786663891225657807157856513010590584907168259687702589864196489925954034196980040571523441386119096035256842390532583427955855837852202778003112915441704014359815619581618313281808010068701689113589740579763003645205541437862814606533462272870650610797439290501960537780297783161193001242200030741997564989638712562916562991159929655090271057939050895224917267089354119552578280386665056341237855036530430852793903148753921245536825473189822045811686240992590186445194519696531927196529614821098120876925804727278143596790951950129424762889555281581153041152308284789481573965726484661021075999020388075343595428705986881817076260962176748711136435931550408003245930923611557111171044006891025169886890546171048641548831578957082237986340351409390135699992381499413442943699168325224314625889736511357851477872221681595628691096604989964205590448540925025475597170502419885819776193836128567843614517430035219140889749548246606756605242374876443725411817978008463997085074046456381051637694385137546140317787386074392777036933760367552571138950639025748265518146968779351947620327066829981996440142295788938620517130456761567117373324585855081548422378308601218667852040175161972590571936298145691713741344340490804552393589466485482510608826482299390960912393413285314722302397408675856876855773251990002837528267513942539911272934202775504489732774159014029012180921508920262810965762679851164153472165948340192207498427167356664421547799902857986753876412332908764794065019481156972294407368829964883136420406825889103436119799663306831403557029668875135332519617306981687521717872202546698300926398608049330862648150420732368152418096985389136819627276094145426867960755712512911967377541489097414723757378403719949624136811147799269896235223699789120525760752952580329484690435041762017294670459914565153178075933642467936834842682603160728495640342484610410423315512558160702929975076248524721412270602262595507941230722749822289690200310086173363258135327298355801519908571354837219611756841097296143910999953113798491484480894007380887476093395276020694103132089427451713680749810636516180877523960386127301610833100610920458103214818469034216674231750932025252737618736443476072485620711031612080653091076284727646878581749363259292800777648940195870933780989080707315822946232002065902222162477751710252224115347678252817784123506092292098760527947549682603061616814520494613977411917686706735154148761447872666499051885842697510564689876236120852739530774004676235704330019611742836027970195687211076985921443847338061938726773145823257241860115881544811683601010037763508820231156393995397221114138569292952589937562089458380833637162958452902635834089190273490527006066778636091645190787135978457691012107282510606894534273576523774672846760270267333264838355754307557519352421675617155966105070798702540120283707329855803947977116201367474099168744276069273423489209232983267028366596090331344913898780728354675660055051389970541803790492102699850873353110423487503777667532088311375052547570435373274014055801434716922440280429346060830413469529660065727094348629808119862220824608655038064577225111598611538552735631700147073469447110168044864332272609780741234085694665374457716368622291835682774097337868829086198269271450756266890218818660818236541842212270699233596599671985946729981335407957752942360118738448818197787285643135185489155144874995591601818775985007789031086967823763022154634406029917716076733342422793804551108038903524706342787684508422342832011195819500574413266175554529798634525591610214517859031282281343576157112834958256380463146780043081344761164576065078679031056444444452670718947581846483686921815052839436364715050149533441831194238543158248535094202397480691643511459401283520855609502574906579690389648037257121993720641070337780602654290016607206314199547710565907117455777518011544673484594350770463032562154003376818749786867329788154433962470636238018774673067609730763682728055845255833171165295595336103962275796275704250081804858175558830931191755540994166899568530897086030006680923038414596670964369125712893017253241113350623574856389441448980052725014225914755013781953532239357495885359649275597049220192236998001391950991762841783436128516623020538033823226827667400657567078043934906474866452007165577834160344796831108598123431059394835162187085316733711074827571358336106799040958302368117083377927771559576337925714060778917209653983891679677992411653424422483046553388586596641745561283715400838402404928754848305216554195199488935151491333138535401943216055609366378584787755793303782760182588789219512642697650879763751472001598923365948245423131764447875974821371871762217624620558560466323356532423190680459483194366552442353291708396549516822740138969731623127060683915558214611755922661215542819486470685487247021929873633339731058872886102418734705160419288229203196659544984532033283329051674218466622088313266238095542547929567185298072939330284155176793556104389593317413307210221005783189538911408271838480892004812892591539647534274145786961867606007073520784262372502478054111431513150517453260833539056507102833761424083193476725361782808207951473215879603056530064992926799463266079210097446860069322936957856095118088826910511270837055584970624787775093304432428836678202483243374176961638841774162921862929404984887058258141234368877829739181634129632931334223597699623389291516367907205175851131314842189882493112977731328688478846657445142767915488088898922829285744780314692337091987120006060427942977754024433964870810741588050724331409005046815781899442667822155480157323220613595826758961886171245154176533527247143330047131582686108495247860685941569189366995121278355939885507316444877502396167875518548521777431416206496827624126022027542588450089164408779420663217308305810528039655150321128926556907015390151729823858792005443196548997874887658176773188831770365511375131619222322504371117060164289515041999399820294323913333058933445213471044784970736950013182007568660086039331622003169070028235193956807308860061845600550092974973035443831929600045360507913622550529796306992057386272505383786623877724637719826991651277945491410261705353811259742874337876451282925077613614906414223623558254911260989577101531382218629284027710199459134672467416718103793242478744726960639197958098765307716878785855646209894056981753218123707889798468329733643031634800714963213211084251073776342525261205832983920973441167802879925245149176090441831684027200769916393041534675655276320804946151015396783677254070869862879435046566645383296978348552609664484602259236269218291095225984987415225052904846226260055362971071980394557404210739492707408761738457432074784212218833572723705082306428773161987016509415914102188566879697474789817880880606490230340879791107589391289464659779357711973658178020068391060295284293257991424702477225739059907248715817289558602854321297231944614609125832578605994958460514948081525849443448722421510453466540342563861431711321240687066806834558783222781217462937764253845468437803791828349377828199527313893236066340749704090703483842009799113836652755697931898807832403265154589664170696350144297582030911146580884950407815520070931651031806746549803220778966301633080141624899453749886961301673265729758688157276308842040449715039114111825119723990445241724026820209730491220857340190428192437676469215465548779893840327300967268619987000472733792272699824161097380558330968649723862993030911782991085422170103921613453920790770541096478264927093955556621087060635930663062753009181336598237544176434901555564529910899786383395043142818863182366687791086038623149717641927019657558079950185976643556143188882751834845502578470855659899202965021417219263328721673063313460715639556483951887959932850898088036456111009817579227758101938325712457148237348119783912154637050263915790345760177609661579613244088778843969060939744694472835513431186027047326222638317946042929433738025654866224086724973875642680199111607447869811946084303532539646638539883291780181302346191532381089887325584385137462868467878610675712969510334371225464842609326549524871110468221030609383755747750443777118211352072269318374763191563801807031143959722479822120402348212431257077876610639347656985640876419205826790957822123546081233501031721985300180959439876739190022701121410728640429796292689523282116204241516830643269274833538051163760668659864471226588060056353566801658105735652350125243456202245140051034103288676387237787294906523096121606404691025994457733048790345918425117809430232689812589605138926981292010705587238716687532436997924762712969460796718901584999805280583617058011344359042460636507304724249625951709667414878993787414705815947206758387263986133380872595639068746292676575406872174871965779440719186456626794419267613310890447790692595665599538621047114676401737618635933578667993535046549633795372557924471553836530441439138043976720168575749711165767724026758207571798205657249851221133508605030120019075274359347343228492120445200240050981191921700466696069798706098386867935014433158365445180813024531193955123004620061837319260278612496527111978084857269096077237435375829307382953651678941683428549233272711500271920009602964141303684132071741127403560844166878613281034025426709069434163156335993677206623959777169062617863211109313852153835298126892671510362439107607830033288892055349028763794462382116084163564438363449284667157217259408228833582017178721734492291623043261692521514179156980518840373411837758014426778044148904483065490635904658011110066620193864804785539517234123752580287084343670164834451826744927531218498307452645697732336176478584087295077191779111650841028454328680132623866927592280357800938028671598973718815811038188116556411075744765893980738529339123628076933208946548884899051800588547214176159468173310577634978630861974952665342925032601247648181123660178039407933128903633708211742476880390034418345389992556190026915510146991291642851137049702419727769190281222918319582100513613439163155120386141554001913931924339050788179880929159215400893388951327624510470211201129085527104831203835215112316852810225337689698417290032665647191760049485420016214319410436486816225544870081540742599729127815983791381379104708255375213240587982478589754294267199246958232125109463009529664954808895534106980195288646357893565120874950400061253297424487046125683941818108676518625067093121506118285854026239178764089042705755413427534918280328185759715239258006064755860815494121356441838202832941020402795869119748425093099714551373812370278053450329117010190887528007027111159739372939501530061617451839488874955518370648695102966363945932198849361629486623863015988374061550891922353577948075262417730934234793019081061760882682689695567833184540408943854988423873579693845098890788845137448432130822507549293526477533346115725277662711961123540163946930356859554653271700024062155542422591654171136654091517461633156539157756690158435165582723817305670893557802919331004131937949529606583161093541719492131199618211398833674239342447741846194529465881722885377342511648307483087906008432919189936930352141549409893805789268317940532851164040574428614016762408692847168211789874864169211900341452567199758675837415611052011280517024009694113355105779827014709879167511362787407790781545897733273269016538587502023243286802590381650571481993939419537166907303206014237098503386685503211890069008805828421070211334682285847629615372807504673278389532343458183977388933278527626276494546967571153335088511526139599969409009046785355788858541878816884167077353691852808610719928432580276744621087454136901170913992127151772686063983653765765990864999860995509563888956211223559054294296222756725283428368070389438186640931750688426076812489607350450007768721215007949049697148241355532510619609744915546813464850005784335053693921228280948788808161881505512623965719572097331209549513862326112600660428953320522383200276373324731952732200356378812873836008424411107209399069766846586931234439538597624360722270429719135726898074988598874729177559914253208351077290603050472993141418354679146144965624826750348322967469886131444086681575862132696792230251563945783417944774703292072803460665351410020436331318150479865918244609458566796167012994088916966245244515490541798309510137257622813925132721719333632086430030854939552157463699486497927270038481963013125340710839190583979813929531156393839034043636281155971284939078152388239733200329203967345051789911602586906485809187426067463550231011723410359409772386330650855811215080382927725718881285276791902471045276909232942551628837640482586680572101185355039323146842104571247464550915417528925896283541533889199950287147626207979279199134469197409378239208623460000477636934562661930821387145834859906501912925756347810339563005080425980525202799536193457061719302900191252948294699230303717923948911855321776376282430181509525883963572694858893635266788612863612506502366439044308234617560904715230264751451508392114912513343125677674667774355651540091678510645467253451069568529194110161784890812251545240475785871234096797367624809263092752140383608288782149947067092941682831825942256200612767826699825216734661027243297187322027259899476540717261642810237250838802804253432317360761652557104330723859128714796827452608769723632339718416083193027644199301739391743959615152547449852899487222380305986749922979168377032691225404345823437131600028719379400502704840896586695656911967322305386336843503973271237369838123238258040644064842117142747718648639456353262084572595055789394035682819004135551439588913260258463259528184207097739438512468541260001333429139193098771286257412065418754558134526984642601885138240919070616795911115288794666703257900488540397490749198210970437993334514869222074585697048140583944908692086946892656151135379454530168290159947626303353636871961046124644756707598758731055994197685928985037820352679926337990977592791045787466509390112681219688269711803544812785463123346744123871718352650563322433502934738009942612514021115027685443271615490067563661397039022418065911712099026545618803102050730273323746217834812871630000456131715966561420118665467397912586438341923097340170600361815729790241660803150020874360615482345370130955837753106765740755100181712828291131815837187125534006862355436341363075928643526856749005257077636429898350383175610188704542924374742796565369819680233531174917315272524159500011050257458189711125343448231553093014037150374579132698843090666257261946349048587805914049083831464583873476867182451597454228131553873558791085051189110153471214544776464085960314859030808820317277931090831920288914460866052887247699229211894033441260902101825290118362413408189415398284078269700371176837319042294486495010249591751163643253550791301357137810194875117698535821542940633573007511908826008294775957640193528196673481877532072976096409212100090944614612868222209359857816223883683382207139115207798800878528430767528081490401423168890537914826751442006017637047692650198908173050217319299091869376974001937434984419021577734535145820245250074879264552739349720027026099337433795798479631767656982801884063789843916763282585447035390323624364530698271831027119804285714786979467210535340406927426659961113033183879283691912516202050830643114880291564125464377240477455558610262272467155710073883901028249414593939522549447041792087052518309794037658579773973295211702433046770073706369681304184192677023585189961404604260940165591644688050735244158412731660126678321524837389875723211747765926095610055949130224479541149191223688086950163592298015625605491915299556475271289511510582133796882098172161538803796520469963581009821423472350444469258507654425301354639914150758885474965515335208314731864219758444495790570055934405049275742448047339032354842531237801720468466660631319630831706446751773952313729897698229284925553449497094094326004237105910649982522955344992831583422631776203854600920605369663351580273417789873314591505936980291146504789560753102965562793119718597429216297741356075374500680357800977489747096126074945726103604498026032447332798769717493352205599878670841712481919811216803452637978458954670998690558308704978649250122115246065903333945931804984016645765590731658833967870755539745191744157999679892186132657712554327669024957562227392189220272810441252324010779800486642762958417789301429717092556372772050528387547023000292443144381080306102637067275331552531811056022111699556127115179054029625178651058157362019831329302270766726832671299777843433568234548276337069298134242321422978350826414236130298582099636419876130977407133568695546810140236789372756088983441474702633289783530359115731703835165713162891861132411822998247043026293789668649028771813328543144285945871969393688094436934640928712309099416240514145239480323690500417772428420076731956850640833628771598679604891632572481685038743176860352386359031690413310456749852435686320083043644794149290300632888460361540949695614364865617097152645628587514683931411429929868101409851487416592465101343713667068310339933921220951000985449305953257663173149461119126038809684575312287790230515028678397481434695353110684126802419815714506654600800150505416284806283922010072433990554160137631991910324211700189301850601977645265332534820643918898838773304844950140420397673181876643186131152262574751176619554072904687009647689394685136382485980256091419088665736665935976721152284951114900836841697198944927165561246675147014577770175019931768231477278171362667394451881487800857532277207843101613731581934231251143669326198778246247535746637564983286154376358621507393536533785520270175466950593543330238534374024371692939514255400397560082300751241313770961976017557128130202926368963920969142038858673869570010047538273961696246631523825135135310425929198018302153393697911095614879717094138790464335408480438266185926476066914089928226974577244137945669191040102643905245620602597741733516627357626126590649190469665971791770986430697175416214754577087347116363124019529976981883455238662357394003118708111875294335144938625905515682573909373605054709217504650247080052067472940412556752312552646874993569693220383813072360920813218283358725475989099349641898881975358160058658967450213159855857759998619039338486375411543029081876969307126333910592594059431384082289484245320933407609076079175832538522886467636409406221189460903117032676879079174269819123468877445263486196474922862661941190098995002153564877948973765367440681872577921969469733362586481673741899587284514824758567760807590025662223089723128148829484358784125098281471815864120498266985701402593260250287194128737077942737973290318229913845997533854852204881526438030436433824925806242998752643541931848936334019236068416435154508446915367384157435967968070448739758922303383348593640820980538751134267588231083100407784644574841525390572412770621916577719560803947289737963011847892029489505937315836175270902209911444454486184724572956952225931682505506776762423686524963616166520502821435324032914143170092012036913048547626202544449819984566180321365938382259869154021672335821625663728776706993037314453240290137452953926725395256190186477057382062571540258537996321337469408806963406795507180120761941797859192555599402902597613193955568051468403545511213928599973859766911966042870205548087790674599407763188598803966674340823499957637991074801632239455965283724231186312330654562649327942865974046613640089104730067313330083603990453099176355643494388995322771219741835481394550172685159818857734270010580368686807020129784626836925576327559528383899335142295618618928063113018749127135016063018782550111808127763144728229312568285149014484687772375127133118265370561507358561139427387024677778501887872749798163142103976143840346237285584692457173270751324010454600271434642024674025031704111286953407884703341377031164513047355454501124637917754314351251370323350037787592261268648517802266775214216603349985214566919879375319749648542824201407767159676742390277783038812640969976083656325266016737986678274597109950714888562457367573597816457508291297306908705338224005137940144630790685862893194351105597327845234683530140179830530285181988191643154664608324699049471631786385476349280875526455034486730874295454201720679949229936016097113387057417981335926694628188973387553927354244419645581379782467750777909743285283454634561232064834346786845905695922542271137311894768132868244289306838104526060810737420744097221627393535542341328869125091802709909402051796648566999846613901985372594205613000707458766384686449912767767426908011472947677203272648898232220472304428274233286454405102686168019207485967561431232739379702088236664266813769581400046969625958686651944559722940981709484529452327032989025114825022335245864311415752888024248155886650307272999066776922380481694929781528528189988453776489695988496752070497275308387119371307517008134649216803948893049978034907205276882775093375863597551164995301155287481440322435230306319268760914588916532927302761114042876394501976818103470624269580590607298557494100162012091684132230987530873024112399809047559235000995927675847288496661685021178648088986138826784139438873309886779363414334916642598890983045902113973737761677586535281542243214992536292743760667874178596624006126855808316439798489251638385571657209156261693516350457916971362054321283808594565812447566351591725799502079233718628852561238741573114464345972194599263410546345836876523827249176053914278827927912745380246824496082392917031051719046242860248328424999004365888689584289752200426407621014105223891976483598122408296800639719646335432364590808664043234796601241230388488717141197652161380470283658610577690438145994577730410441074227699903081201832073910029257348118733669076829838807607528302958091042747124404774420070783226482516027162508983963150466638641996758148737282295907089214090852283563022074923943860311174891754446495124875423798134932366278380547025044110646278969623554420522876643042088865079234823379394014072057390083705633042642657880024166926037140505420027247948255410208917617808772809415178481657242666668268813371371877990662592532681840900527874097827264513157403475379421841694011109752197733450830892758897589147419630861656225373027930475213712801801920352019402429846374882865371755272939031899756199491539221058620096584831645077664542609108948538910014996148776755970580168836563270098394279844148855004550571534716574983073070718389550372639011649952876860632196198729004324402055044946093102306385368976918595195164009699031184729776523393751261204599214972825721280586221526479372800242662014318983376630575503106583887596068153994028429363568859492157954827378824134560620579996623744205027250354718157291503934928472881537692207506625571378008039081045563307861815775553192528531106197705145163767577255590598230146160960543296079495083030659671697350820371514188303642376806138612115863061978499270805898350111266382525362347786886424574604250545975836473619208937433692780013481263062420999468937232392728595047921066781357303523639762039194984845936141501775964916714430748058671900994442432345644888320568881777904551291493898383373759821720080487267788548088168933333181562755847018021436168434441129407686582258350376079472607370647564043470032866345801290881430024596753406697424640160307717256222855856869091910747357917688108845584999213142476140136818752232511529026116805031421093600622311137257897575395534651925821419131110192767163455414978853710339177877017311175615762219623886257302504382729955348497709640904818574184226808011194011333420727031132599431215482788562155255331357123408365067396322711965160890489866945469698672578642528830653910813505431510168042607446352454042575668175040841059400658566503608318075582759235465755976165603081003700401053172421388398795254650767454666175679866621907359218815605039988684996155391193829498604036141493616862998189479697746309545118269652962139300014711827633298822229767384440731239610105318880448204124255022908657889698102421819881253380673465390216393202018108016938521113667480616639179148339682882940312325734183155806601095207335780449333092977757940830186687622540618412590699509688087484078598361255776119926211875603307704858944051822394591235576329595677723561360362569833974730280097064351793163984784033753769656075412908566706615364860812647965572016467083517722418869385093393225239767774469377053978258725551120873299732223389504149612163899607744909077462886564347468514296961461569374228879519263980937419437369262498188556062599165085393565277071021078302602205200519774226277020345579503715404513491425392601320088383490757799582888915064606351075279360666097522417065579651112080880698128095643940846205028128855830949470097026163001168099690722782309280604670310617287781634205268969434368100141212585477848359262169880148833849879904025494046688193743776036453534118206465209953078928120189729254934134706132582293280107848138734522682566114945680581570480433213123591724929745921138780575414577053849063571571829055144880641539058947960207338887165151954966880517871228905433221841875372849557666629305586584340535100276127274766463675651636822471061619963646558608505052188396470484259951848539893097308189558782221185562798284106786396802588253175569979402207610441979553550118981619788946987166624595131354744107731884374146566926431656885437694293241732138666042085320752523878215607414599699036199440991027752568043441436292963881520214687322549130283026940568784627015713829455002809616322867907252279111485463863854189226863095964465161119936895199167147901782213448836922457871317520601179250966532801521870753066116702081064518171528981615079644445581465489965709633754482596234531411916280742961083247917669724900189053096187746199625222652736136144237299122155712790768033245718289228946484120818854771271594303128180796632231066187527842863338339683825080506389276864082234951751533032385193773208016212578674269267706968053546085937529437312308143538931655788769156595524591643165646334991211630155704572260467209185008625026493565888125208769726541613176554414519562679298822609146604063220350527014641669354425523174225272762323357735356837033513897104691671597696205044481538262786853183194155723542358768744837263275264990512653031700001545474904675711903985058888900356880010848942394657965377703402704528826985662322332710899904217070869530699718135035526157562691788516279779523876591949834382295654063178977079750666269525390819574843738277016852620775460542895933520050968023880617439218199161404587015442345522998282347900286966604501298561714749640726487207880529128680048525905788819137669431358438706935559587226409185936853782445006478397010434929048817848254780555642493428799762402045488924032846692095001466705241766697367584426812077283241448011326795063265159536945671578130984734522171708888664639732135061472843879186942098867059772686709211147614442715214117895213879845091518514513749785940696519899713071191028615514182221282359764799269035571985291261099095157893154366969714208984802984158574398859042400254703649693610651684285133483521809560705104989840523588182891625703358203268506255096479802358526132826383914805927362561772381106885665563545102420168649150019618326834995375615061800316265889083370915686136959137231393417057276811196357721227951281933260303330326025151715029119307978922965319098756435452976005175886250915125167098279251095728419192583037682508725329841009368986019581338570180019149768283456696134363592708254736968234259997206475690598302517231920193007516532427337324253764084638520825114149043216183240798255876036613652891203641805494596989210191102451123342629482966608553591941901105473673656967656031484543094147212175267975100150685544843848497126687953868936863846409801433631809960852504236419528548635967807623488190138116015393287911363237341710941697410614431700197974145636039051418966970799744282983144048523922447840083149792354960271868293744557272227868844442051749823278700158369032845419809727745350480004166211724951314212755491952364841018171602201866608766185449904494274577979845503099139061768950687026855366819831715748462879272141399938967730420217593139554656424073664349570322388881160814558281711027119498293326062916355557846007733213264461324122815310373642734506087194196733924205853909338289630279209252070986141967990877476125095904213714209393950387252713689274864194536781805815988014543799021722303504327992305159053109995708736611357256589282355609083972719834466620281486042576936109820871714470186768099237956745599650634748657834578237923958562146947923489444897974510779093562204954425583491618343609973360228784584202304854810461066111885502480633459402657968963941812706623151088756977439792693417335721348598559831981713198151200663090773243186951997774438842379212738121133811381794310575256929312541336207808216363323505734236680938815044201036243943959291997156060168727236196576752706558418261296544115689821715035003333598570266355947855829923816536454020559117003069083433053811663761219694591474073184823038740705690990378613736112912476750503672029956550176405036935191788522044384420691003768445454740077079825248584514786951771956180826434617709068374586685098318705107086603519843027375243874825368347882365450191539425928755843278378278052612806939152527437504894340402232076064283694291699256867154820385708533656491069531027831749527523491036618723440074253279034637834287352677547835242270963048484632746056865026555695153040506189791697413785390095053881038975564771804149080365092511828598139152878598730349657896712766696937579711557960497193105592446578852949808415180271161987467081042199454493265979986861885598570485342024769976314721897840621766851791303130082745834638614919919399860142621172980699984708627461394480754658000273690588623484280041879285918788309424575486405007334522177161164951489490313220685497093541330257830553070187178138104366564595656155344293274126604137013345286876027309613750262369436162665091306060518767661203257523577160999605550432709227398285023820669788070027639898711328844604782455020067801017729576455843482543087243562581252437288615301986421709205101726874729379822229784555387919936419757497556220884485775769742101041544565811647979508934282860282746983513510610706393376293041758896440840602681296627892806255752464734478912019527158034408222644175686728844155085607283823775401606160173767746612319021531410879760611757577878626997727969697907922972719606379859362474415975143164764566525223134749606517329209191060281223473598980776696331333009433005973911765469364712827064198501149744060653384623980025114208297833133798008764917518971384142795722195428612123794056883221146998790639301109239421691454809522747364055249086722959814656751255417856209899433822530723292186463594842582646707061135293166500237163749008374113696187142930916809922427292605999466415969849363618799522643070114097002766740669476597255970804479000499722986752365356094194269790019598448757657189723046018991074562673671719623645116761293027790562705465862935559618563654840005804172570425343390874333659983688198169369492144487054185722915412442913751672208451233993402303262251286920002800766123625721424655469858182271787740941348227455766529757067746951229662467729636981387788195580011340171300393953206730198040402383700465681158028384289004247261609363680689860654570845544141886272301746305426017300249206404586110291769682871282879080022431137441879662576098764745047219361505450988957528931011694399174280648337680586707670972785973051824622478208983732953317808185642246705996949906640999831770220238345766227554508339992871210028037892771799655624208402286145942061140222834992742823836288280255164036110411023167726814498105634593086415799805389204939491948927140016229060821492893231879993683425698533158273364459897177005140509029866131175290796489932624875260256219453543281694584253939435485869847009284967511516655697648465685944410890440823368378854128648794563466987428391920374712581936097564413340151006460315550120924168432196492610941290571927271573858287123685327393359815592666892898824748458844852052859916334999225049710785742844620451199109510458094118999170404627275105179138012061857240568826349179171661912512362788664112864841468452619283669075985229736477486493543216302790099096531303421892381542923426475045958848388270723848975049014720241198367942469416446947562189049485321284622282466243608057446375331801254758628246033266655332896139989844534817509276975601239752266245665446032563206475431665850026824067954679161282257331991389374242495012967423986591444395442207882643723908221927371936537068564110425633256081383327493975629067451906269364987589498372664621931199282699388650458719693404397003549690048045743565753929419191828683841100547865967566214351132989569974985247217794168513053632242346486508794759037455047309949300464252520015861591607558749840124500605290335550223473702759308461917718902999976813767576056130337495651836130190658688862614335337835864440990470255060004102338269277032856841901824238461660210957741395785932864052951773721914113474161512662169605812905699556871621043013991739613356267682661985060510467371317438658382455537368391706993189310230138827641857018144917407569346014849557602512764067840258277319383124663231663787069117875936528652648231546651058169777257945481261619851699634225370710328468013417381776632616288606278298344047743510719989252591460590715470679048273180826359679187740795630066060603991532859496289401965335479490062353163174691643687149171746519816890163952241175247602409573051703485070145314194376053854883178347491290572988576705446533158086834174253089428046037529846230201124015392740278019334544874393256375418766821965594027710259463848052667680491472336412123611322960754706922358915430534845925424753730836495993815877600407574516290598723139825969827898681417238823961987060600164666068584985379108201075135610008349108595008475138063617200704261864411373307848001634532530286552027383630512226778532822632057175267183543594628736856752413372140754714394017820342841265394714020686310342537876326277043339128592333198215070302646792766569953218635007500668897528362014970797992902816587902627767142680297036330080774702785042591212023521536257882598716063514845805869615661539519544883342831823295453687846798927659319032377893299856579836894888514581391682613717162696537284811564679087599809059138255520768580247634926235667709803385662718202974002005341891419951679128505304059827060548700041373207547216489087670614415573507530627487942322435169230648908833884902044073946548215561057028079709796993301747432438328698566600165424496949313211179378057119474882950257318968049412778419628727478760698887992998364097945323086765725341622774304827702152062699140901945058917047925138444556675981758802669034407984911634934863806689724611323243861061807731228503412792634801942927536806720843843314257109698806833925608096209625028646412153342038665836234343645919324243338006038917991321317971763296147118492759313313144160678219392467852148429721195646213593488155609632619799817378065097034356850160267489223421654811157158029991113238963348245770990017493429163366859164702163759126668998619807762540090495934568128311866067509240133157103405256141724183346113371195927349739558302807234606006662702569520996765668981710310319269143522892571122883841515013291934274280304527288837180303702723861127566637352069930722607317392840040971003822660910237753123951126925635582076929238768385021784731698595619187333012306784834489228019308486801343860672501829012633598913368137910138554047901576814422016742811149744228988402019359834081494895533803696678438091143843886518001544963886732565188081152966823180326430200574123147511892021096183327966612655683741167527534880818372999505117022092285054315176686512447171257410187797050207310912399036150422962717465209276317225336369878211282502230633190934321085372220511928049930803537957857432477917108462443214070881022187069597938981104595788608318980182246609501907508239340298461436064408996904378748273807240104056232988764053261118550518031308056311124318130821671231322545759675637718273086535503907555180657410847347322289536434581436284072492941968891544370256669299885102107160192579104390208021089111333186241098304720278479778661445288837868984383201359938111850855162785546317353963638655557744184107826358915708340866028569023928967486580360811992148519727282108902423936235280102489397840101293769139861040487344955758076393195821868678747552682434193318789300328862116267999645797712532959285106967789437137467620261748002408093769468831694028732745750430271783725803738363558495732539135811100538128973437239143813148546779676258307702200358131642533555255759547464425639988200308041508869937871015569307450349418083445454227976013433118584029321735469166176612763312424120638143873615717024538612949970685356328961661784131343501089623252705982169451575313531065586819783983485370639195759763136250591399910323238682226405292169697368174258588526199520040953519914828261329537957866802549659860772685638455281662769040067210052067276449537515205482416207340071583421450331783244169816726490549152389889550768735115809002756856829969551047406216713438767986748851723217136616860907052518777996526543376479238508974862007379999756538015442276937231102581326708720571197285044965351766402180793844182740094087929597258717217799355918469217124997007852913735014261710919451262834137312986703820313592605064072575760095013118314151069112161573820667717880198480776460987702977177152562668906063348380270705170167813613186490484282125481888394636785304536470017958079562651632310751595326687174053883622148153569029720069323613054331565888925764630970685350091279331618974215030039790051495034830043445512041007080471414466654659859122934391572650707234786665152839782807998411841225281215598259507413430763471613939700269568459949128837317404515649991267672560429980095290956946492527145320196898919935261866931553486194084395725768103654554135309604930543071659295879820498486034742665548072281032003851281994675893355146021185832317682167858154317039525777390920953067052958289119105685315533482238009691522456710411344730863319277893868010151084238760024001843002887569231267506823322781968513235390698980282472820596330668133562062892644891110970957893399349142299285605706938923476836833198334470850508372422304249880549511803788710253351604065996440066620822119656481525469873157289582064795855749434761726586562488075339766178950050565848772268702748776235850619345585534271840619937128343321778100061665786001492118474329758857338549696056898511317029844684892651449050881509036207882313344149951215333903747456833779667417106822012975918692382294151590758641309379425561355723960587904440556680588998407408403535758995519950538855591497985150761124623477654551773256337581776977790993133999553167850248023265155465064911605437272714983969057774215638918333052881823074620877618185990063195871814236835140033597855560307228786389956224455117159246751863142079399623790942794832971706406829497074058523340620433346721168780014031494847099297178944523645321605288095933411007164709947569751916749941058048095342236200496233741112075362541302271704167697052380623030634341195036488895839091824353937265709097499782815771543234685682564271009234562277749877355801734794931381089167603549127385931711084195595233746382507474329118815823470196891919512278329058268327228162061980607929883774308951450637343161509213621241813753096869215801372037174518310796543748403963481239875382270565507883438840825799753524924178160536013434658041657944868200300305435060843368946645699683026180069850673964535543720370329269805611004221600571721241257751979127676802148461416266364791063133228269516023999567456152025487928847786225297259862588878505543875782290183841296361750160420409632276914643396844362597743918188495215553025249411878200585930069806632989257148502471470001778759557613650629270129650628653693449529588169708583754750365198658549879279947110140324687806350932094017805182331233866121403379545840285430439415724160400742323566979697582742438677396271166644414336453974840494717139758584411608410979633386853648521962796994827989368950663634482170649668299152039972988251225084454160274101571855008976483308932937435678901943221992945176530764793523590805462715819361144675275433683782685740696686115773198879307876036775683257519114056671915149473564430155079584110021383127752350093356702639691199347024207636289345551408846012377885817530279990776532180167503704263067654099626674668659357990519782410932893059418507265822525873948747135218053145838073435420360522437596802884357524797918395292860927483347084656025920389827255086780730660579318294376720693269971844470253015738201053860629087055752605627710108967994125223019964026136687182066946627627948687665338229217572113725730774615062694710565976893104317473630738756489056548327936821849183152427771934692581057391496803866475453517958840940949297741066347234823933681061355328760468780330785631716973425637503346865276693429001435815592978798778651948314009484279155072008502197016348874449887512865063015698542372734517693891630496922844547931428824130876523973542416501153632787079830888529166343710419658763205850848867620515036868776964611702872584143623389094900896360866748299287691331136618035139351698246645038874354018937901437435250849890393850505578413799714909741750602648546880529327874970995951918959051132842470938252338383230230035187060298950432265473239075830538444103675814498800796615637344443421514496398231478417814481825120741152406859675240547948085938544132873104750550542529193483743396033219294072411901975656861560496947489269675854788866879511191004617408884391130330778389804999209314275080957607403020076453924928042723547901453654412055025916696032335413774256105263722610835545873504336065035235999377181693012368879081408960205685096423751606599069875887117936576567384107711012604738832788838687426427579449402748788667045282417743668657310856164165261831903195765784897838730819673676051256545149315360880508441762859847436432557100781738944681252934692867147591651060724873632456460546417349317801654387398707584210928603103764339463046130863457158745699016244605691672759592413124422547740113449937163801330239578012372313987655641289700540889568352188310136186878839187597501264108719229731041609015102738003643260524250546980515862470731254546455431280319242328545952062847889838638644831636134602360558731130273064334867305500446377484515705696220894953370520981588890033047348277398282447058691516984867485736533848756713994973107363954388114033661115521600343599742459494011574049641660079914483176810316170917791101271662885729783303144253805316225628822421123318244886020664083993242359258144174722627054163120382943153539654503959840551958246174556671935039118056483187280845378091776017214969016009563028209099987255835138503363975588483431480879526068866823039676941308626317014956685957170287586533620137315343257188478372640373222639365951694503400329889773603079921954814881915739395292533057789650083361444669640142334526650453783413151850337274872249900541736767719023511618200188978328857359639581163780746673355908878443242084243913845198892844832011011964522302308947828224208897171645652261523667112492920832418271233904122632903898586634655681632295937642122143546482237311026749356805815955827915176225073338868473752567653575778570723460162547166338494948385833879362548493976899537135164846776656249729787062038438877598976391607384019393839120134011633511680878866591014450456374036707301518734606440720608894156088886865741690224722455432274124064965447955991994206693793230562231234324975326803672005693024888312537476058654776563303553870329548850277878335974343379842844011488277686924919057110347618233110327358064914881490854845805661079377984730722607731256301207263638569011687782696404516174404409381887473076440514512763578341634270794621729458970133328811018537431469419979607905149685673600039716116854859860508457403083799777692642018278633571005084556631093097147855149869327323712784540519606559766859933139417780590649839338027668947191755948065099030796771953467982646715002723624224571617133589860498594610874486904758748362702556954195555166616892809627137591742769780295203746601319879668453458910715405418853672333477720900196741305219272000924390778392590128448950083044407500084449014786465930258745439635384372463233150927424894631916898261514731557073705610613198861515000150958691693640051524595305571099621522924412025462951014823909541808387463914793646631987891733545982670770169387066650423930360911765873505997145610995332154472681725177544808875125660089898223430781678120174787533711565259146450264539264628906700430981570923547835302273430196505379031165158151383544472842753338836013873678408207380572024978623508073330550926003227328811328156483640634383183536495869532822933270914263910574544019710856760625130694357595967983822757463414729956894015215380995567834462120656292449973144951248086522735188098692380386830892520313407594161622591401752168148692900215212167952850245948446240260101343967307608878190104027708273136243881006713588586978363561717608602760497191281598190268411601232783772155554698403911092074202653533629092106581960201559268982773007740315542493262086574777126713106879500137792137661698108478829751377522246461504168202102397387267937294948873816711499945225717228244116911567526485883493726830967319532953225764048325698001102145920570746846869711503125774760035000001300159378989477689650789141611904248586026621065834462980444045877665878088968609488685761224972975780157332037735593997709869379484726258184998227253712830874648162424428675444774473616076797376531420360362776891604590248621930342058933549040535312912170849980182357882141105689228437879065578519613211033208326904385026820672815310777472802879620132327483070809494522592857964055426944086544856324063055075740288088338315913988816770024577990284707354934372822801793930714119456179489055311773192386616904579662737331992134767723889132258773644748857605293181094178350302764622113630721617929797199672270633481113894212259441672976591832078429030080113221281840311338937746421590127116471710103998958038498493299585074687351744991610787757944973934225118613895074747063799166236549451364505107861720023789243643826419791960100193749963685390722096174990362907440524710729007738163275294761707113880161891590355697202785831393615797426052594486496229777517169407651349231430312889314124666341992468221167002002816899262590193537062515975414499326327696161130481270279005413743902715079087715543690234964822886012229810405814016313271302054846118369055750054988092433324712704748857377724799425987261701300233518768042333739151411198534794196498820890197847202355526271380732906726909946106194456818023660288504917126176776381669403638074125190598429452130762805627190100570662472936959047816295455445059621646628262632169677005349925981694422203298281478193404981372432765696320658022863838896650811137410409210570241097662144300482310847281275800794997252800668157141026082044813081134227410931458712752118587537845097967117249576170159757857164457724112435713629056371748478871746172363943240128954895095582948597223915239788085006650108997899970070508644859035198152511014838902980673723641895722576462485809547819908586885200309646165436473456123416557458102933510737294513278460875526289926589992666562437484600104710905429310827499035788864811892108353874136131487028726329955737944241964860214978442159503457407590476641047749640183739185732746525130912954855352490797923202388011759599035912691790917903772373617508563438782378039124332730714468717164583798756032380116081130746848241186158729739911695281232749090798881482195609344657694187803367342171243467900248411912889516763200379176292114808572737853316622023107209495319948535628563830155965574952952550756107851162335713226616279297203158571220441805348589483922088919666661576639922709660376755166000685042328692754681771210344519356728922608442941334355187402837785074828168495930733594854528675818010914722119187525462419635256047622870770807861021990210274264953016041888166343372604425675202437260337032452856476492974796885089536390962694453930714264986542673320760307551819080316847788160890489644091951710774249544982719511159781073653602248582317929469132411314686228343962704010534760359851787991573823658682855849514253370066295765468542868051617956016860627802740177771842028546111598085424312253914286677614672970113949303875090552526029528770274173395594172271338749802449297083761477607866835046481839475937978923127338854517183226451577765984858617547638654244855846502837835277573009509501848660701490925086687272866626013207741467024673980009071334408038687734495868556117847446340124536242811684080327720945919023156603433425961529821962202768447830208768216250628550708641711156015315099290127949372875800263322734981604469145794821630007118496767110389903309072702671641079977664980391621634189705720038715308914093495732623303426772328309707035104635133488237287029525675823979923394260199158757371247753206518857515711294874438171469863837639204037846604233605604034653120587961242666495910188982556017815720284109421581026869311516382479508307207191879861592022386188961258692216272025883393356354344885432165547129914479762470688574394271394405392920333915320040947502914655320230968449326170231680482527087164006775823450125476110424380233912640390251710662415146357622110854397022204941320196245562709210158398267318563124267102020247996644966128461053677897524564339072084178030253648393882451754659513702063389241144013059603458075293683573844891337058586489583057084132678562093676837884389311508369909599875281729601992535174847586024895158495895234926383693289030858746313085141858624352532599339468973319746374089944023862868624993552608936080723823094049212518057694081527321845301227876172199462831410609337741868149940364702485831311319452860041077047987332410860742571589237948365437852653185181818869116460534160651434957715374585004822536067474987914067732613126177041530709914579074726262430613846650716643721851312034777534193784347004368360215878455627134264296354607578454530379487545107617189569435110254149946634072715728647943401716500464257470067377371839352219061069674850975811186868597974507212480741060084136128558257488005483723392057968316004310473774801477498488762552869245050683907174448429567209783591160059830388012969209389977593079561294814187149247313855065060106215535827600163861350533222870014655957720578596728851287228681653751640371977438257355916541332374284008288035855447627581857766888567521145512643322535760259022496895958244990169261518515487497404851261246448365656365609894347111400804051918202298111574344198916865670016351152214747267955668436259418526599307265173387775054287716855171178494086101894129545479067278363353867139663369645894218902677386415015867066320244529051791629638963999648943049085303019712960106482879582528109261209521937244619863819615603712445821852967605554950955157224463260719250909265364268186964277424587021758063608410282088895511331450821311887395627202567999885272401977755910671707323986372653551497198553426444266210957400178009516687115689422716858242858556925344483397173443116013881637670353641638429367987242105481211589920006155586212606531146319171808472337847067248025470655927400921899425609772187922796376871842463745571293779126039204969649969576202319299147655601509068559669747699993116441846335912347595810938407076532459816421976490304238098912280221818253055158063937227546363200789950271385909406842660313199479297586997882136649677263323764866612534842928130431560738385400627668147825440641941213148849233350489447967494420431667597808957062802502671343649479927117139402999222164952399208548753257291046989927794627508093175348941620257561427099710204839434100989301326940729611428910781574298033682497573273910786379867899857320711438422116058734355196127276984635713806216217702154066795454246330869672419179686759883314508312907219149835599538718469655649396226501632732320243661807391166555784114487330343787756321032683235753910239160327636672488814143615263555984411412950537553960429484609074768008298556663286548204921325969795407884405850584772210889309894883550268335852916116933865459121260457942443723216057775700130835916904188293174674541966631555512262134042676444913661977720450689542945938608280816727739294366447499998276935149104488486631602237221240358963292166766801015492413701906144108150591624444351034987167542201536056216663175747377327946037702276979001141976799841292218449182227140402696066458634970751734773092180039727185039357188381834159449628884366603169015454710156374477804137688030784656093820100905450889030398614021711042108097143552976056951842806731454605506611655640402495458889091640841754982640150768778176626517271561465433723480504686765163970730103138756118766357863780947292354765492481720602354221788760985745639550175473595356657656117411333581995856304606111431188511032884955007646351864343703116611792103840038540256411617337741235686416788014289037379364711060993403290444834072190535540296636484333627545552892686513901931031503340521565659391898318051123407820584211363483235605597719034527320089653839487661050984487910633824404509347053285409380051617673426500588260005833681939090363717080148477248548724872578858659601032702198493854760453729191024719726189454850125744007020385767400264988962138750892056942758033452936921848869862856892103868540035163497024497784158697581662427296038196270820250273250025303842659511377093006796359006468603641744607219988332991725971436226112864329242765178707418779506838434430702887001672196468299037024001177678703828440918835297639448830393736356020080606169532698225391164724665214150320763025636297768190014555648052520789137210598018410310315093552929372350693779211536926261783765736284625915634622193801217444354204823355799745724063433044222316365282862682437954759942230304244636402412887118119503645513433152775767226724940115283809533525615824638825169721092890761186891084100386961499566605458362138573458106732199624939995970136805445438339162199304307111457281841503292196105362749884774458601251758986333230820391680698053000262294621559315436438556153138653475672875229913033174770235425589422065894582359954408321998942697820209187992322421408454918792039153602570102413345760517815004324583442406930569328593391112972013943308850508496854260760060451537629816545752427824043286180903880382174522210370426059130559535402217032490907966028288047433298626115886731755318445134535263272279705239044153204005414225054785531950499168386680634181348835017790319112850844560832281998808596418401095304890699878652039574857216021231959470551729353381646226612915642294444119588972031889177231032525596476328518939022169627973598156690992162177315542804036535240876310709625211797517778468315712848899950315808266475337637763210103492375972690636665557983454113628390610323239054360169808655099317482415892470630559577025893435516981624672439501445650119987944864152770560219315776721698029052986268666342213798513425219428601453633403272246853558037402636638309172731377252333728211703412270870139897634198697197408448175590715061766340696155065976792048895976658765100008441500493811321617577143376178141541558215395887637778639119195075769627019077334113467520989592889777488632977857654507576332736100186817289112859360765650765045600736837137638943196374713469309044718276753922200126535911402589186329170313581778897113804551272831979019949037336723018952270486276810111759658643738862292276582918697029128192614110008247562219903438573350440378781498219048818504541626428745765948734240267852271431554031796337544746918362933908466672512968729087923231406983478524319952085170945658505176288602234428323187214180196206715203774902710909970537597881493872055432103780025742564222551360494251414770983150167395231466345671223157684904712393018782962807323841548836982290823144546866496996526794415068599284191694389320306332386497933222643195465352509378967378708032942669634997646146520082868083333851889967421063214815729209235586566969097328651317664419930502817664390462334977568392677904816098178324817764513765057790828671776207226307443134193512846507738873036251449725435136879517058612371668758050678089518583476952619950342774639235486045873498095040014729710990009321808650573203445714191179576749089872847368355133550945155422431405925551206116409290727180936223476936566370574694163725779208754003586029791425343825740986598578833509239321433512791096778318255352911628842990204724229509898777080452769575753105312456570775271175838643751279051053845262084882578717648411283162548039882075604666676149976963587326163322203520017191882279070330062686065789007838841448867178577429886964507294004506711349961184274443347251575680587442054534561457757880135824314850681938439460908113992099417053126166247124898363209209736609648607219820946515529019437070292736280284018434578492122822273515036298784065436313182382565936480275781906724704826689951464475832652130816476605760407641749664202782082022013408998123943638039013022672788916767834153792833517912079451562271904366614671458282968558050110697099054185249510541839938060007603642424281840334094049296418051579737725353186619809486011457951847435160072617299871730325023254472676859927942999933220199938394571693259505174935504674666726752307499489987150542977170688537570051685566741471766949895759131136949653755061829170039854914852906890173641796948215185301156762922627163796951786230205917088070968023129514209242090108053623988577183723755237512763006691270957416151318553391611605740579693322070160336042993701986729655687986111187659696979642495322933216179237674438863896475770179579386563161772585861718923318373758116303776737586450720078415253899384930159267718763298831214235566069501495109812606014190645124023875454572217724898267448074348915388283025579779129707986851452630815872186793615877430017338052462565719963156067177737848072559071302804587831841377444191544786467602966707741910630816051611663765626551451791619567405054445256943257719089866083919730993109544387332179200642119784634572678523901264898757735764464659119312975307248700543248318026564152123806912584688592918837455584997382828238373339486721247807513948605761077131974171215485991040466997891364751008876353631646004490412096779447839070215494793452943482579447888288829626797803397958807398657845244848032642447849591972944044618726897868906019924619984824653537730073507341033400188395403630549062109202477611817071438092336242219304932702019898457769707585129484035017827828441687907173140074592122059621548816785647914193283954867669665320991375102065244459849239116831559072626026223246188291489605022426582244101338312553509583611168100064614834940737985203960857783092411161683128508598889486289493226949338677760613956267434488579620313272467815406539535863543175574829248260218314457534272017466581022103221609319403500293454772964664988806632311201135202007888188692232698991513668554456476307610341115408419199062387514676232344567723104749986778940500938933486355710398697812768472210558792225019327501840356373196963674596397473628919274874707518236648505149862833090377922012590054639388399173529634486644824099489423020553579963691634205715267524478223693929158568173024396152746314766580975567407837418942753485100167254178681053351317019334387983719728746557349604406902539109492956562611677515315191485973382484245744579009782781704540577696764041584421259228523526994702994476789555372576004943564372883849159110772055052152336414026042347057360447674371498658187537013782892584571286871350033123168887388812403171171148233561735991581799853805675120156357551938307264562939595156357321699054413125969905780051856466943298217146509518901849844557413000986532903261900016380394913599831275908567112797377783097664681469110839869160953618094247756891086383942620225706422896380792746461683099756516587242171746597848365257354738468168531204540941519835463225312396956450256278884210525357499956706271220370930097699184062994099288132687433169541072005681642585433744270017971748634908775089758726460357408076414749383813421567154758321203716759953737487431645266483654804131812524093203845385935368165784046211962951516900637769979711142014025327276970557157047583563518980997065581464179906678241657621410425202249614930992349468371216081655896717504174916570833674527141205423231615793073924638862267611853929930038082124978279937566636567392087927007303908244047769361258273071819518203567004771650072594024388239256463513214753354764890840821184845306874926036913803949963369417160442333258713345712638687910720293805594212384975120257007407452294223910705910063678953324231759447311925669713173319331247909344966198643263774105466147874429114772827486379210064319574070085993378720810574901200704636476304887752703130852036012485286267174716788865098998045860393770055587694889872037936784172398830439191117159342986301078221509425361294040051374030994783653457408857127410180858905850516935315055765983008912494196895294865298734216901201049288870458722289062386757973205318645305217459353808714810186684359101140942026874553360008060665767116340965808699407398290871208808907175380210756542421502404092577310558282713807411235762779343520743729253360121717377752303682389401309295315648728585511635299977855557128180335993965704460899175265410260642912078405869111087601919082366807848882914023442881082809678053305840991171182070774733721936243793292451066240576760672280926925551231605069045139862625268435482891362471754148207778590026769262055653614959551925841428516360607518562633019382089735547555647543265610505662264212893865450331760783485904834456595071463405483786991313828187644247718273791733118600779375297916466686528246015199412862267200297268907026894425412792242776106781751931514725714587315684064646820752055478662103468529897353070827134153629391985990134866837246729530330832618734590920116021926046804092285087607079729962275565706704896231078595859781516760829079672726616216429591721614381092250232342837155989095328694113179639797769862345071769686074062415619295341941668449741546847191568742909137634004607896104793500864554618079619736023388951798826206998739009547669251517527119454337572289940952320597841858300283727916698602038783930938812430495717894136121051923155188737641045605846333015021540433745082031402529261130948082189663345153933456539969812400378361810515479357949123861159136865771327572023161042849540718132056721156817917457021785857965899217005237467890087022138144169887628632964757611512139722909141298376798578087201506392019981111099689305779799732710137857536854962422259186685445808748574787235047439651920205440762856048099668363568375076035177231003394424721332201115412252123619605976404996918835279632182575893531617863371297635030289514741280127073263005621699721445855026089939569593717689905031789184134041469284505836876888002980742469050784323592670290664436432060353944717818438858651307654858699890031253084230443292039204632351008022864720503094166456772607560328041831101061972551440964409303165299525512630637413412632342370627870491392417965091334753067328065872161958895176462645817131611187535934103118839851124067340490150687057182535009118219183266028219728034414223543405906529984441441916428998372176415326918756995663641441847342798224062684821142113180612708326394617169865910800868644526235039467068263139187025403120809251737932217234568030069372401527050024708999938299348362853702508661739099683164136866064561597135764447341736643337454500846294071394880166022396417931923591279484502065385132587695510542182321729200174302888396171862939541218565470979425316544866153030098756092013530763107955584653908290984687022313193835414114799125718981885547056760800048173273638178554267403575192395667155212920427592479158857896126728630613118103666341855696129861404150884472887473517653686784153181896496185285908957620840866743746884560717378870125184220389202399392860017470914729746700991826752877504514872694437679267668732942289226403633279355100241663522708790314267780941239064465188393108437461793156831279192795089443866011709528042468854954858749782866185424943956735858971717274578100269962722231858492446026526119607404215279196397311603219892795904464544062600904411174619377146374687174057770438759177798090088371564210300417213746116224172841710808609193768090303840387825459341005180429484535473789255099880286136063156178573977576778051907677809118400561764781185105022511871808203276580888714491420915629515303685728724221740123542344921513256049433968134411967068755955961578042449177940552001182256518245893019959594032997793204623271818339539052426283169729653283260697794130858087938178085623213389711607523072618163030142651857658013104674434623027678462765133227662549386715977408289062451372890944560802106219907126640947640359514221852543058376235344693171541559634557470724406098841189054388624177177787613809901303236686536212806381896839563793412883300738212772879256343524324555189373470645796914334384674721466492515900791077195467656044445083233904978473470117857028244605718413001965847881071534621348904165282279721932488689015530604606228045175673280772084626987393962839048650313787705633542469714209343554021229403712407417982726705348945728111961181987594295350082893793764250166599187456838446309986320449048317860212684461746771373683306530510110859295044998372897240046852783987908691399134828452268529738258765236761687796717370807384531466495687029926327870256076665473711169811199984104628386928697055976391517007594661396871462130547264007385861987146534387662651410007671057670979233604908430271047764885414871004361963145167223844432479425896668795196638511703501503774764565574858682474120015061680684238658526903696016296328572747132013740148414439191864222795011776684628289713586613941724016952549662199106234257267764871148266450896764823107613854228544183750607264530642999929362915436574564497191817468904803399134678155776340287623504268035385389869066900833705493632280470280766229774279576779124498609076516990331007783276459849111655920313013645240395726053023028626356616733957977654563858294422534214365160298441974860516998265463423675535177257597689594064402971108581413038862156142696272030182133055256806929588144976363387040893322113694426923978423980123934884872515114788829857990857131465888158917409234596915314708995133068441199984121045457899850809218651011569964775946929254057000166534576021327904448426172462967564332589091729131671587977399140072410286464830460850541764367334523134270032747339887074315567831864051139566868820889521515281074750229322271799106623927198194877647582750592666229988732046217562638458283784646344664694645563003470037893419821790236481485502452683077170432523204853860611445637891840034544845605094872385800308754991755049482126599773397645464197289563683857577053762703199748460049912821532945948124254099909953631925843078969395660522377362117669486712436586399241157020665762378160671999514920552439246902867674893941716167262725731384511393350930454284695665226077137955801858624887709095596165654839123256254581035341420594736482916830674181089220838467892427348667549983208822684747457443793419951361865534895037014068712418973297651144943557033086172739820416879581399153824013717859682677537437307507503230687571391815720597040080686947741198632166497746342031403444329057530715915354579108305329616603776081711413630429077113565858063506884305970530563625320137220948717089043343842553367709197437643341568899202781427104589767607611906502805420189096783695628860285101800291585072919333826803377211089500061326634633196774370052107695456686013644602144100133111621396350485633790237864142086658704080211965172295025137084590904015924470911934179987003783487907518483447644164246367238663660153031856018582155150365875626587135328556815536198803554483520128061705660402535533600109951136177689749044090764796577403679643476230781189220901124718312618593600766736717881794022427047741802167635616804135724808200951485299668277280696288607158256196793552829803859386571342565769754081957417436920444691635696788093441135081826307699678146798268922306485085301610099690773203528625007599080023764953250794221702374434484411850027433993275498667317869418952280067888078173640745449842519060015861572235883884870005695029402587085475834845603342492616205327474775802406505016761199627561478337531835065636334019343065521282081664973144700380783159966253548064569309336978054296955100155120626389048795930520135161476794544585220866370885510418235488032199496351156613270567631486136971619150578928584458073100574935218186025323868674626315753454469850304215129589523467073891097835689348705798646547758253405172079454201426796157192869389113077694595216270783098683994366401357166263700269007511773503676165512042829946946051923387664705609849891098573577496998517556221180254156163545976357739114716768809390621836353662509321521811330433667799189334819226947486452978962903251955081238914494821861115387492864074732819264369170682149385395654967349032571868772284261431532303569564915036213019163937817995901138137022999822064411013166205186713583651587794186325104184156830667364945379150985141283210348093773339225076437430743923475509330883450911239422677339258869308743731828106178423091122424941028612764423572689259667730093662635838846814743315877919717968839076238973974503787336816360230622323468192850429953803490505530029572580195291043418663210658409078894267977587977060188296580444722189707515047402317165911565805488962894907690912243912728348174762871889755941012558691755520464362757961714758583257740954098459222084023361812724686028727547502693875588625784770283494319733068920893895442316796953025584833092515869887150722458091678590301322651212530019177856945328717324418355663025682495049911606548598905557532119322696761039265414163193108278405097758943583870825395730366416370500629188611581494459033959870156399548967694605744187261075282678431632921423426287685171909332019401413048442944033004902671254029178586916906452420776232002172720306643658719333095816065897139161785255256807939452950332922008159502695436445280469149962669152108419341578573064329727238247737997302115528286443987463720248437737432798879326196320531768340530896560739731123035435262999994099713282885370532284103380403706388433399304947560498466574262144517848643309754671293499986901750849011200393211607019632213847032420980469837226020408493732499429085486354342112321064785436788990186068254756432855696560136011312322311344616516559353033052334352718007990201409556204538785363459214851463167185161581250755239927268539835581897962035108141238623649475899156668455201077504824632703593403015135950963764600757440215831605077740604897254376718491780841633146993612144603685351874944494069676296564443418273768527975522037230870611698797774878378089906163423597380831100524949250966528675464953177379291520865514357640188582995143630814149494130875492084139274217747346231151090645379779438432383065216224545023928287000326861885519418106255619205546038446548129379375757719234775693711364757764847899620563197090625381375462432166599241757685643542164726728854399560293378058867203619031642797624618125976248411949977963567483021058579938141341036502047143789141470851515924293088640511444202302661524209963299385744876226981945352545425915187683889851678416029219793522347918467862272640154828760323855254550645046307030730724365753231025164582920985003992242321469905493634284069930691323609288515695047547477426030040123653863353229985704526696205186121159783516594873804457432353087178919213144210523042288426177798738437417866027734313118815792021254855347062181113461347458488234051789768130732204302845317789998411132719160061629167935436799362685156086083529781145542801380013649247469085636113863849491408009555305038229729575865159092461236557252457382649404147196872058359268519180702465929790176640732188779633228567317587986093153577388797750415210163559674410688088906440442624910686345930712946273214082454062238252854123103714529504158616819382620414396047206039308387039161732513501349283366957346239240676444908229521210036425165653284798207560364623534706722086998057884312013893604389437645024268827720301542034833802818484150726200048664352187306837731237409277384449850428308481709063817428052988164721015979157831458076135295311028367043897651166974400638884031560615560088720404845026704510792930085159029622893095743130345079654664060743314520794103476610721282578515491848675684986178968409117137397457942906647936039978693185767133577419604075081370071156596569094938012414493781667960010654746037553431180800276539778619451826739370020694403853852954647452236888404906178023374209122689538760679064458042905282818297013214822803584594648476343178855387500868535072801423709437723696296880713631325139572222791071594563154158140941430360532504154956222745786167118283019821324042789371859666076082332818873060723104228383562675350891737801660612911839520848692825929386597080242263572776870879198093808528077347697113091200065676189206759326787220263390436957373136085837895168805426974289578918178705427718253022191432540670395594127883696516270358963722518724537670944490947214506971324230647607432663951867476336399609505354673950345450675324676997278038640523912072410211863912462185847225091288524213962140039593792149200812947991285382160173855988979968868914761507288884597171610378196932031589553240031200040898721547846116073634436978640124750892630769373851973328506044820585392686940136253992050573471879189459691834935076328067263490668505505157053187157419254862017841764941856903214189461468878515272673356849797646666881719050568110245059279729104280842863651748897674884238571667705535241061232323407272904301307415408357877020952098063842088721626422052126146268166642873011420463541582580579675953790001837266437735262057011858828275912409044064554491617912772769308210193914769973225572326050695001688084270665236658803785949932770413240271488618268915622697593082195798540883191770679851937751508607036286682182071769218886347681803794922967708222775651972051440695616484899370609144492985771216390644469981755997159611586846826091276729397655427809196844805914480955282631428600334726906423489907509520215590579266130989229523115739288452579458413444129570615492264227614050404111043081605457540175824787028626309954678794599924156051473531951292709428381032017066726031262041160987224316184651528853192845898121341519901960318945533180180598196713693032250465000832107952263564695532767742746099823928765261365531787991098608121116353464258866664411019626417879149817321761042414397425682960624124750819849309112706042051466741356091292161657315695283974503188208014201345127877104064883092912456162006248678578201618764828919665752570234896320924854932896611420799013668814421280969152174239530591235246863729275297744434785022366792282791420410034572031268984054430050770346434905992879709491652346246447599378438463595701071540791177485169320223546944324915671427199012319358789657357287899130615217023839490463554159360847207669184223027729604296565748950005884272445795951120424689880511111857968891067438772739735746485795884553905275127472099449874342434441223698116306493381629442525178267414559551734017720812626514760017064962807695578861228866964678073030311637348413275322960114751684741208583607511769797058203411328380888004798929197737849945853343490230633541001960579108385483502156487667481598467819952365832799750822569390977746248160656953113513545250083907151435938413102053303585364052310992882632938501954561512263642520020319726552508188306410690406127408573515296914230047973698672294895542073017531406967516807796169839637373563223200891294766529156048938994604315249302141223549508577239120101027129354811553987957741719519028369383841320835623221744476300223295516637389954969157396472754019238792243825105193223518223923835834403355568171946330991433197891301040658438976084729329609906175945454183446887475206263610063560040286831133996005128832360948953274420192335176957433133157153744207763637977323511141026332666915025351597035378933158150419156741707204400223680104687328856464243769491381149699335971952141899032400103918034384701400449356780584721830978350455094422989208788898250680546391073441585909705198356592861048780096956707255089811888721978566824147128386950944893599272592094146135801187272259784629142135588548562971004680423938893150300508456387273487568141613164070239159918837016051227660207960835175572497531312872106203583133628140813026269768692334398411765154110930374131429586355903172997442484699273013321193058461096312501337731424597376853766067732457802282481512683019944590145435663195283880633402941507021338630358726342712105811890029676258849474668040673382893691308253342693373666647774175914042486576722109616003140977673328050210226006640212547415153177051290934007056502171212376101989972507715373264114148487768472911898118318521442783719198994728940582376844096658681776140010070904530552269688287474489838803946504583485206001384500596320971078504322663098372324299097873180398415481665521501830275725815032340744991423320262155211309992988361935143718196544463580478737727196778198323254964799995383290614857180812581253607036519819769105514704609637975130617465711086460880830808948347047453429694771658702121530754459356836994239166786810866896254719443631734799203441262309323250560596866776615928361555375896160896516523805666264054948495653125759761547939630721251397866121449540072624228233513958954353337785860132809883848203307552415245095531222696166655668074327644542466243175101930481280532483205683507720358659681088094784675962656620738907078811073572581466052863849650968792853456809487322936369015251958322848164469349717957309036433798045871281728414899643357615840393668749523790166031654279839319917649940628147923514378975903749229183998399284138995150303671433936840121201574673801116283691344168666768428024540790750472618072588062918239725297011018271093076886119266340785370200423562678896080523611362434397174500651978446894351105401882377391339715109809278059061696657075114435744988374724783578281448976755086089368695129776483822091277089799576978005437437297030417636825110395215978468157453525919327176377320946401090120890621422800674097350367129287346445119994111502011821921747138155492658867891902492105115022356266149235491801485625645169341024349961985108970477788271643585321509478639754910828049973959215225092532509373742138104202056880059137063903144221431639797146870860556440102343975082733655098282079270870940182245570721676889830716947176659916492475216910422964650335845386808119220599443639243182045521274272400984035556155363464849589884924460060648087055604894974632888965679145781981016263668432209035693452084128789538817278911681161923060545240534598289441923922955488491831027963092848211695276780417758702096464185778085834561701693974802239971051086950034756177444745203251111931614920738356379786243201983747901414884931804864701418987912383998954158614579138897284129164579421137181252149281352037656983445149057107226304273306047645161380926741914857274234250373835388394877239634263766939145898417745194325162480580238399730520830149995034455533557377811217106043520541299826489078571711309647324968192479985345597485814012366903387870137416190235781491717092942165690661058934996927337471550828586080815783429443806801711737177488463764266694265879459613927076518689260298421031657058171828640025183337515037962761945895840940715712780632393157731683144760537161822758372068216947516889214139253035603524632661832871969872195786526072524153902438681294328327179376037571018397390780706080410436618559970352336935932218731917013729364871711399767995929867959458771203762441516321266009250404284586275030631498772320394020218340581473695806923908028005281460298392576053038087018468108012820503500920950292285348013993028782593668659023218692441130392810928443248712028144119291768356216219543903000284410554537670656789191837638892338647661731945008058617159301068139258846749410615303788289937333753268417693326670006677582808318862837811138727637789969722633529117460563213080413117205630543330941295153378356860586655025315863665332546792629188119176852407868554773851831167760831375700130625310294143923924592537002896314001450652163692073556740981528252376094846536776184063216998806318332409393634863255013791270230758597452741274319561802298200977587522002622880227678612522167152578160664105824921442385489244620644615453486053610854871232898120186062991387638466835844394342741665346227865258558305849410670729850941262006232875696294878552058077813660366506555852238228797704135752635849196625010883656178106195378852364868020826097007593516119605294983085262833960674278172641026502914005684957438531776425402812970332401154683634626461105405288735525426913206012196309589465816486676858272134828438201236435874465144937069448665790533965324390735012315285186906854942349538898131874539827159661394566862727222652781631853719657039308823141528739438762444349117670644958370496974159865063150956620462574315067444430804713710103261100319161932735143460383754198016200907338558652995073775945963185940177770034569949578552288522721911406186392257760801746962714172925555534466186887170489017690227038830219329762140354468542652067898094879452047081853632266055205726237717482913449651565101936036432124290103641396025519547699732853903987111485251753567743366403182668627191512297785171582715301113934891530501187455922571191764339002724072690806522672692297953894653651836676444457180674404975526434972411392379011574772317281726809335791433627418521765345399054926064906931890178550358850333191295441802384195720826913212643877284897877961823636170930163770181708869806777447821563807360036653564353439030286529069743676825471451743950580483533550099255434638703898101318792990496268206750651964019627113505642389879761889026767980100641580058549828121899634432976650066717000013268442833800086947875295874096046109341017127306063221473801451384019392791975057014959157377591929344115208460793915000825506796389286283992968028856862333436191643245041236572656949598290036188057657210076162096778695195865777877627089226882663733392319625551042696647983079315745512393462187125382917682763071132101386707856446814535447169303617979444963813111916947449936736528823920934414118353834309555440866704893139603620676302081121886747300748005359571025976766825690806682060534054061127614586890700691355949596040063334210168921015385167680150998964407793666859991379849876655072763580551961732471562984593664592035304639658513620904452100062403663270394524578186895552318182220262267578894191913655801209610931214624924472979192255525585232827248853363397769510693882493635306106474446285958521350713658881241853302131860160439561057453920084220285425975362979753018588136284727477983810969731295522615738287006160316800014727934401869848505626645876767261374113276335117337876584993494416387651987113975462073558024030540657826364455556036861818582146280341625119517062901947754805344553618937844857561135049193557340064683734522342759672394759660251158860960527949370635057933998829040859351097041537012828798844782016055221698263484972237268600944435107708746269646446825745903003797058234010967464944462986639705885541515620020583905476169027709396025134291963276647791682436720596023933646978360663041452386119768833491852970765732976025195263893561105057907926730375576188740636516436351271960993374468194355107805608840479033723818896407067972880181002782726627500037628223957972786446173972040157158121808604410978293072029788520937006947679458268517359252220565374881129365024117496207703110373690743859412079378322970938634733258987629099246772135761664632629407480480106547676047134778030965401584169516802769885805858194483012329508860549556512950602440948015415798059043124562837848110813422085628551733793428516309143760977581888827023445145543685554349106233644404724090873761081596771452348602817533619894072655346117833866265953792890468597686179916019748905238173293117358333578838687218570719548293836017325251448243453467800534161781882984738953730852515427888201855964948879589157414041983340117362738973969214089445543598566395511741099525918220787634631596545753827789375915441869189592545993067510543726597949836279722289201722026160658720243881192171987880236155348314767743228592047428146178424543590342313484860694834304940937754753143014375067431195794524305830467965431843607320134157407599381010098518548435667933481030606624264629523941140883217930695677479979794930775858649937001909614354475154834099875929353616371640877889563407609196917470936320495281360322576476975807017251067721359854690290362495806189090244931485109072476599889698462917025983448656689639532059281150960851920063231415841521987244341072058557501148210508336440120814926369004983772195731836608071161340803092053838495485691856783186659805826775872847639652583789100271506417393239954141209053062903297486646524110903736753974951601903725217972501902528754549818793854311443225219900264914820565983441951896628630969557034251613608332176056371417996390563773525984924118440895726579722580115372756309334417760029245596995685152555994873651735061701275327942180468083734765626652931092114359055981368835646540059810748687252850099802407779268784456954874995315698071174341794143074370277788848622669427343605878810906055287449919948750472916387867247123672886362404849653543771060182337791347164381923663745812432537670746688031477868773838339324829611980231089808905542040213642553349678916132953401319720744060474454946085928054215774838718830309385307843697831335525345471222653467074720647190801421044184086582495561082397024538094754606166395387694820165963513470650315000425016309279332383391702336066389318503146442874468397911228503000566742053719202847101158730822063140982737292255457686590674759395450404841479586573750125294473023519991875124949824726333426116077807258953936739813553457571208298414468731472134035368624689829194363199297153220774171762734110654341222100938774034983534416420760595183145476118437808987138131784782934046141061452572009684092691070125244680008080747407200724296961221193629807828202455595030959997755357947378411130245485851002716244083817349867400785191966394138156238167038679038601485636570179596608483706254549766455997192378862164794141658835874651374237333902431553783476250145458889081612466830891161548180670547875491521875213825261069558811788408174058672098707245508623723474130324210802530667065875740838220280456797306119564279195632041157469747665575072962323321976645053699882456791738120921124665256620030506199471301233486687345248917036583438233033213916081156732899699275287409827428559690752556110970475901227717874575381817449271089993821789763270328379463806796316408097482295533506527356125719573146241145128119373941991622648356880067580886594761941520531016989459180686446132902784835714074727801921084979663071606312192953904648777259027117363534491884408114651470549160126329080669871734230798400157430711152068643789667408859081957518802285755878585508763754851069225776357397237214912213910711678440383907101781269527574580757188492125558054456550223920130006811023840887919372584577955337618650002761435285879530448016604687986215658559375114845370632417418330858486083139840531147390863202929201820681733268090895894499992374465270428830773257859027964871101981057294139149837616533048728382163400028499741786550427839173758752523473723077801870398179792184025646489013618861547975509845717159782844512288404799472357789238123088723633174942666319291953622788336078740691942600619911767356439341698763759193020919205912959409581742769862431113491753247690316730156827552539770712940873886822963478748888033865398416300427389143655986010024902602922567653600578761880498658698485193736302621970864286850567638334191156841538073794624148106038703214520658451815012735690331092748798728068827446702173297958103779548095746067851066787367902137451340860891090204864837617458180130808765302141873999416013021353153089606087577604060131381368086831357361689601200186117693315845623040432874755758458446843939961935083014571942148927526262503878556629938622449938702419010228394208260972328094302335237931017683213127347922166467614230756332484035519426358648674718161211639168309487098781408235837579065294134647003506519186180307902422984207651881193105661709831882526282551335278385444523002597299189021643197032298204222682422666530275158072715219860967638261663697346460139260837167588055703041804252273573713046840933984907929278471074010819919589977351896026339015330414348520998914214773366945016433666237734037938290242155385122539824101565594096480405028192066703081504711657364242879724112996500183281676864065008377105498974909579490688997578093082050875781204320243617118057176691026624133191404666905982433431588220069818844792635729939008034707537018347119404438959058328415765763299512432282212243061941561708045255559588802534911651575628988069604069383417792285902626264674864278055130421155558487236763134619036693680627595487557648888598395559748929505914523466116818071476082728189101836062480506113506796068417544745941847377832779123262985108372256996441322705001756097402564055461945047988381129774514707915416543911706656659239072860572889784284133529966594910806101509922446005794495285369465435121697507384485920191474969816371363544432165005254379004454666312076637184865673664001502604271013112423242077289158111509057875234646725889805983512522413706540728339804288857607428142621502591063350770511813100901526084261564946704021964695982353523864589927943510794098968805350870151630213011199323468524091863605810643036707952557299768558825957095530652559325856906151758966918603003043842589226960567833235042870100701194156540268663038751752893575708130110109109268418533454855794954925923095878120329696368810233632983879185686832672364165278323049080518847526536541142191140650515718739773143669599802130410386654978420218010443691402313280683902474091782417877034194121197641559246496315756535322018718646460373474117287348938460590031688499682860446954003661490477306873422715217382155875361721645202157842324379729427272749690743154403728094696371006151769253997219556187813633208199786763013189638727146320508883958964397693834822391612029850221316662301068998740828611036175228151000586029430106732049515470760579900766886345587981486835682993026504571894284183221468786490701351816496613141624052121265343686912970687928980483564839470829728496551688084196755746822915496969230866454279872479427663562907235348429541574447795685918427181942267921363517616197072235991225650350693340703828096048743147494885019489260605278942488096870519410441835922943998485411677590439865970574229990768006507259523872819227832379843223878042606428573763371471023177663234049302712277403810235573800281963302201892605814816989629882104976753993610720029288442927233476647959844714505197252160940172037357033335904898543236485830284834410573718804671165575073324240023394481453003788700541435528835394928515825943490428937811486918333042050087972223985026306241566739579533974569517062627796786396678653148792384942334109684459384303755141253857514265506304829168981573269418857184744963119041233313127625824538037784029664056601763835036634157635423372779712257262150597607010007418553655422002961979540452795778402463606766756724166579993153033795011207675197624864255156841240814748507198020090911997246877264091317726138901257667748750734768573472975939229924856152227124166708503625421656473620068600604309828995981141951627377840494224654224348893169260431131856557700463968690545819902586916477482174060865071171454182977710278661260873114081333511189775993820966008964309011064721265146882195445320383776282287461725972523549820248359612432180598109393482509075573526919056347652536575388963177107899034592726495879875200004212678560432578590923765838793524723405012204065208371986729169771213216917228191231271820716476788043096316325740050745431763990479658929119089785747589448680732718441840795447921134520090643754809057630649447438182460776182345227244235200976908843182406459363483144643583204124869066881072504295938016487226928580317927437503154979270163837679044471217058953005583287264171118786827119747402152694031445088842412004038429110700662903994270353375179845763483128893195750356036482843480242335102731605314321781307689810410562334582217793716924580909663868056568306297417534756096685447889391756817316882547452061197432969227161752167238279095965645383900793996470002403443071511014492452363469867357128275804287662179881447817702618391743288662522285779646287458870292502596359475396876226342170331671358845465362013357369527459608200237598329575186032507376974331151538580127045657880441765664648441115045479433293396091735247186928967838580453378056992991998114226454120168886291131444034995273608232219568098968931077317129564255189221381027037892644687363686883270181133200735731308323984512242306690289650907776760152211604355527456267258877787007812949455136875429405890171970158292359673796794152554528559798118310686610564890948686625799121055345035854091580009023774958856966958410742242655237791538563895118506865664686364663525485897648417021112603584483279501446195057226827634331093817610091608765653963740026717951158071922796789258160834196434650754090359440696571237741224671492086693926921194552718070999000374338786942848665912234663758865610762078311461378909380758482634567706179973198618308184764633731070489237419018704334572413140246804800452037352414156559816999453218581630647894024893549308780157286933174425161419532097669049766726797636312959850514883357800375150538843766109775251211291303096293980804258384721437968216544277736708629772974644530033970102637582872518852603514682339506038582960887097069357941744377607128929947316583878420782024476082769527602716863792104106883041740910404666886993083628409357077610356689571858089596916057962682177046091417988184674776294548990520607301914397978883651085146662161894773059022234836289626952867834890506423591934199399798422995427943731940120804289889001051290494152731243146882461871883079473594008328541614102891166898815780258003512978059465124629565504189127185567673412805896184447814427894556300488684558302879761647584989787815728489946674144736503600432152356621475782497291491549983632887571209118210654022954075442049458330356925034705530770200656435136566777436548756538836286514677217219300174029781833319300891931817242948207672473219799871457094484132382113128276175197074092071975530528788732021731268944595531144419394119612771894703758727214091408381669711078469191776580724038896609363546359296795299917017802856845766904686046377281618376383800918969687895696678935216753245777814464491266218090506301083268426766122362401627354457248948633352296544202305408684398232003371890747291319178944942732708320061904055385695207754262821538124599952665889110274667465400507190867684894306042791294229392354184583423848867766532230308782350500058417709930094468767727273105470663127668776247005822570153786387793835584673242478689956936371798572212271604162499967165205453151119291742350244035019657227679139433320653154914281350089961881031215173095526231874636118638721459586394367380868643658688005713247409394530262227552314926588280939393537235942677431803398666277476014345620203260099732573091101937594184348819352921847014249664766018179300759824803764033369383086664931451617644857086236938894587659465876386808022085498538873518680935972201639601196920207120148836535050663574548340861649453209748285919939056052048773871871991225992348281164756729102409131381350779190205311640736241079368684760279346245588718477397517494985443785717438246977743459025493585122132501034559360883622864881624776103362433528214138867716187549883797867841262412459304773561314999214752013651163122545883925702763187099118933736509536803231599023115952434369992667229294490370850523289329661258472735587150787018314550252510142845472850362744400182472007671524331724133724544091621967441386227187418157936843419933504721119404591391988767945901836483098058915960292781951853635120134891829342014480121382916933989029880703269033191972938402992552940995419483573068396120430630550680100293595617626305329603115237886255445327627685478051412996681554644517579408664237503643184108877853774923532904102806088092321001564220786621909547201516910059202354504328241265853705564903816578625936892249511063191953054195550986804549912123602999344408475198930744681374906853103942972359473929994527746829610080446503048041128159566512298182319005784867130230025066121283334621370809715257067782775633504134668692207603746495445795136002661780187770838830941369667900890299262056966328245970666240121081747895901180251150678639324280294113673612368208177893009381397233944705678834096418921764249342987187803797601110358582386950748025195779020685282183234016297125385677930091550691073176860806931323138724188870395273271403403546765363159132605092950004844884125074670844566428286912906425055243326043773777425261482904720408673359096194075716489391260160582550823962259623015969370710292406439848759205406385840200258281555976861454701438926571747627521213992978545087907100915394561171241896448086717957177966881107716681101624835774837681189963570232629265758533946036941761916623446054430301130644014501471014972229560028464917850756779398553258362040349141820396000477576100559975414724017147001448170125950495758516601339532773833044916875546256858534624746376840064848016949920121269902373145025238460646714137677066905211373799562484484868272145476400349749543057089545752309550003999619590339545732645529848793642865402924707210459204846792314184649840514515936594079167104458964238236713741890600687743206423309185862035447529944523681742885554214641725022233350671377925720993475749040930165198432606252059479751130664828251615523918930381022480604323320211069108120633106509479727739524555998696991639518898020978472795878923257799423197198998724364450075395868781731798093568476914540575000175762359188590155812236618024599342907502338245805419974635900777582068334190439538715481755469282691272233559247954949078362591214986554149744349766129647683063162945779843257614201808683777149037957645607486831843627277031826297506017416637244946758886420605044491328896306345281627152390792671491374343494485492136127551363009308456978414688086845800543589371381759123913427128179371651614782802324473708990266459099083435248568954574791544248788342020921451116727675773469158296364174221643658516215624220581802412609232705837023320929508952188641757698762412404274186050835032693549029836661466550375204556127607940221662567703065915168175843672222587462568460055512953224926465306940087012529661398961471485073773219360602928946637961040688785513045487598510820192250618200280116017515711144055189417215000995789881880105566390874422130252922675941081757544540786450778704457497234229784366576906677310956931283747902775892183927705639851981518243618131122068218658567558740611149826002302515025467042060193828204654046877536055065070319318052115762439923589918435050477257242066729437985808799978937544058221749534853395699345926931768550018098738144794312966717125293998156609162479095355735907147519826371879052886310987688955758892423750837435603062341072790230416333782131129615674396588206277630832600263933011104652295280762823321722303581777030440836725038640530533502380572238701035842337950312693003636538823297157084976000881562099519244127870288310305243298363946339274970072116236355844874530069094866996122291342442940804518038836713524784885906599704924073593217898339779598710929956594437658003511551451434843092262451449493573769987218786213228915433424984998316347163494335326910020400780361880937343427387381858346470632838589074012099503503303448476310844352151402320271358760290066936850953667763405311970126580079261015602708012993604004949510328958274968537904132290281343110005373929054804482031848569454820716502027066673960764070004803162907358052367032840043400339644529640701770876702647277377333877014539531199711808822042272524851129291605827233327552974648683878636511310542806164814632369681088674992243098616859682305113618351471434399650902143253150692582035910767144224900014754005032309596383499985706894350137366867960220442406441368272489189821094023461710149497026188029493925938475528391910506945425351155521917413497090012072536347225075114174685313602449397340907759088280747112834651146842160011076923797348523481290258352859527978963087662960781539590509412392600977631746235462897809179029485366613754619386533568344525800279481447764145962419908411890295349478699101252410287099660406336595446618066651013848192755197531912061873914457170485972991116442358841791463783264484111408369469208574982026513290462724519543927467944693706627588708348722314411403862103697363784098276188707048576228737882998303525345927236567779382993305795809181598982555299109047341076435711825565671293063578304139119787625000545380222857120170998839062824205886100319215899358971229209218336822621619743557257527237170398556247893806894108757903269079746806898831359548198222546411293803597367069852839749218660380238488636643046141804881709916539102575626259303896103238375289046278952742129393495622420165256009225085589690712439283550555470688180199804215973226706123107376838518173503587059242909121915976608618552236680733391269993202811344917480460966335195150422322473334059396471230062499817878012207820232111634878409202688939245328479994598776729860390484848768327304718821883070549832317335411801271412471341405478840348247638245991520627694099358120381767532586143701371078565827604813766527896721798977666671378308178202915002359579030453694236859544969895968338562994597523726970232349002461387759860268926738394707322412134114192765638775217455389910393925566900156589421717807050617965099529224959672737449346146232980452007302864909651064816562910497475214133499323175218609749363366247008500088506926639970521396711979655019559580876928192670961443594458456692472423561692622849982643254848836546587621128956574440257178699246580752990332803130561228222768112190139304847292014080879217989196098066316975397363224356037778313259951749454246430277679890278445554647014747545962141961101829892386071706320647237299065794152504213159391502458491790096556954226285210863372932364249438787754670060162627520112154361798574569198898586966602902232894731136834924320031801341954521674840748556620674469749819087795019099026898853265446921617811844009793478955010814350505027752512253478931129086003252940898998138691601601264545718599898963008531028939336010546885459155665545979090954736363808277493033992763473566810051120062877064448822949262153394726976485612017621696642024062406919452662433466288661746998726550840088464040908172114589371732017414418302117380930341212338239605231068564878243574724261600317309677632253243290037068332888565357778647346817344818115046058794133167200231832160192349457333837281547734382354530946017527293264735413632952767228898679899382425110249423981496360669480202407777603776394643818046313591323457948242598040882142123817811153315558593111268988966338366067437471105531268582556163278772802819115049426612328232655503241144509578548393080286394611021113344529336604496745381054876241193563615088281021038806722356105560716779574350210861829635873292021483678376620019016084441019902765003766817543940241681452424578630479438805181840370550975383338654379204678882132692785407006491082160404452656690506857789744303377554634909894004718011277442681335189173868211988478153921647658606704380569262856116744031338467301990030041762983740304118027916777495619009007708440839681375207861302322644031084419095612986333738561544451595272466221216016158515206204108292007015028620453817610934539334148791684172826663991412792305245152003495006317514174955775961635056233112310673717597154117740866054749569686994010236926357863686225428291467480233821733311405744727089988393000002903321727540560967304682245945725983634791276887899825240472930310177107403743162254501957293709373097722956871339051598561055136422840197580232777436340614828035747651206242931518083598197769910574734066407711231250389466299002215898517531495830981948003513944747340952583655855774945938934576368996650228683492978658646640786252056297800665176860267224711096213252221288219929220142562321166526361106392990400864960413560584825080366770534734227645438415161110891239683405039297757499812820813721415297441249554534909411781488677764991701196455853341355545283742898672509545167199747562669741562395208503983457082676003218907357157400038935781515775293002554054324015772641561157952380881270450618906527379711078924396250711537745351231942410702924475191305185114155816046054073677332852072242003062852958385203239494212197068957694156478298678598547022742872194356882531316181516924216135343186402670942728839011438818153827033630330121574229935510613367979947655843976343006520009594588180262102458103581071518461661886247944119894069673267508376798699620971572900336920821900546973879227192504902831006598391186847966755999536578411396725826191658296590021887406440322776089024915173292512336695867986041829220932796918078269290564942365934740588749811049452882557970096339169344511488859842251119582373371935730234345131688235765266449911027698523873114788409335358823687724676202525367789346519049797310176930042879883717965839613502928628039956803161722196571888968799921286417643729589523037722594511762443263553308732071066614412383929334706172599632997691313217308269935709776810799064730042113097979737231407122080563579688672121801203142079737153747029122382007427058096925092064972129646771957901228051578768685735067811796941102957887561989804259776040372474799784786417772468929646048854502726299394844380823069357100754458598344957349422547043698175372652301763799978277139007208644285282566937965477834833402961189506494688147766582758072100010069523734100614114398321579698434421418703472524533873641408711378204228986545247229097399697625285261130057423541718245318232738417300272134603042579231295243539755814183747049503113779681497388609753133895821938242134364770253937240463445387378205864340474974852493032902199698387422752015282997114805982284093475545124948484294288395108036098102341755126325362812635507958298912903167027512343262658337223545453755194669961064182819968317253857573046834577760805174605247739771154992626282520799576847793951369708517066837731414711978945190711934782335754614360630159979950004715645421662178606056763219672105985801544112334154533743459448649264423532444101550981631408266146608406443439427540558895465547221995926250129421591416774876458602365625060809633508121085963152303203004945542912898655533959433939393998705554686757579639670737296455956562464416610029667733629765398622054000523341746741439394910077844223679785697644092917572204822778722462042320644442495811062108821011758155636865140311147088833233388498759000172212600790389790031815551095931014546582625443124015480890538313079618134275161444890502869293321158196241488527381881849393249084070411865682370859664678225513218839878418628913608084273431762112814588604257069897864531823616159197831095418067704530981192968713617046431464243235243166026754505213109310977756933098039246563220796581719511474842520501043307065352229167437304734668036008893671163988606781360165366122494975795761585418663661348584279094623059301798075356321051428957929162752239134952375418875037626006479001178977292957290513808505022196477460910184227358889979842309834481765537027355770221338420056694557396562985921981432006263839277014327853884364589337245086472737456367000527667947187664568077446948000060899583200250010756576814642144698685943179581595231811451960333316828642506178921300737134998364385565661447277647822636542189619185001384144698735078500259144418804989706836491063331944821264610413287707609501733071466777371884293923653813397004369249934445663526715155009689446605196831188045667275537947278148172138779983094849717038653767922715254734150035897188222640211667497288618160042292692539474850718365416838223066567393043160693697112451655725339224161605393553295235475878072569283638100933979054394812169297317153443432295400155943840088168988050497405995034489138227922089548415647641107464350705848254255236793136374851864642315793795150049544436461637927705793530565859773164138057204309361264210745103817419803567126569408671788835518768434630819191467426710317096346508025655611822705101396013585304032435853642798595012136237763174178771932178241300481625456968483914923080660811457293725901638353455221117559863713814843164390743993900298913096494351866018964485043119698218025160357452192899488472327509035991196061629836950142600788999459672409133990319519479588824106764742023098609754882207335175888444679617638406561682635274165173416484081129533337721287874538788916368446632403872308479109706849522675745592869259761625691441836832049403088189459725476625469431098295586444780639326457937453660194405074032686265748294667175563547267274065410945954499786030693168909272424731190606673297876587689480079621311999071417554558280447401901442510314038799436468509974015536237473294813593306015613503674089914075930379678828801798274579542641914487759046899942865078031652048023639759117456845217298949998111954157841538183676269741967282163074946871727795988791110795601296161380886029760828483501921754515494044534120742344242991746490621266250251003782448786992865094049016590902650952990751534758739408763813034176161313722761684487412241504013001325166521028723490481339634300207051697401289970826980596979468456782169490483979781605055128461519075078603889279165495410611600795124077273446396596503848172758386917579452511291589503602150266299226508722772754332078199656907870780128834059859339279971636417332602398847261422507845422543191794352537638899370628977163656489983114224847930917053592795797394419190722011167349122000968281872409599583242322272136358118615134141446577295922815458625705293422889563841043812033890671084528760578034882419224776974974464581391194843328251672571005459603762554341552208840249951306543220865322225619417143456099130923544310299865328533652282712128055958692423485157778176940850498538746403054213491279440855394488840431505994371206255166157801268369927367343541986379389506744813669450286000228139470565867597303165515461621154302584825054999274241654170371238943089459542079519425149855036246483732570525284707464471967803223684769215436753178081984631016766561203133916711159293953483344566047254826434754172168194138722781474976732741479302855680721567920404307784936960707272736683427656367627526560160669024909202960323379767037678172763735125882386742422019860359969399700541032851309959759565482505345340304864071588127878523582492412354863911631608908885766916494415804958065794964451431993251983618069822262662611835050608088606949880142944357700790622404369875788868959620942191542432177708360098205839034649691003681577767552254042131104006707294268311365993791526857733415929230005784533362210277844254824807919092110963402094167904488347555440828987240768902787068516085465642741749669405299536053567058612503386944609851154640563053688422443378087179310174641461443104922739538617368447385047321653143047808294009510912070425245068025754043806705881728689123994324770352208387870795294940075939464549848379164658123052508470504009710902964868323751000368514813836795061429195396832801637123737801189404867240689180532545298534831351259119683160398080620145926808460448045014905886866936092484944307234525355162655191924030921700690387510813911139851956280084531192120589614460402221427167645340214426255569080569390074914834700063876637788500010115050364127887803233649500636973237183326346946551275598595801673521465012950042853404693678800092868086919592815822805621873657452628374490757139534993715186497981828878746499618520037823206427149260652409653631940099938246294221400717264918652906383368589050534041910632865590033822917859812387813954697436009009449949907439902117916965812210763960164517625829211090173488626365789364130061054763662925428669366255045459172184046181037845540889321373861520643887664371894221302681885792240731129541834183821679979832617059371886664764551670852817419919250138959241958428130051411557386603392176395989065881702021513301829226586667061964651416467394081856929623263617311197329351131124081254988754976570620222044290930335653304619507978079879618982645469248315217304384441586235666873263289882610484372963911941804447509755564676431085694299160763288268854211600451021646997995752287141737785995072213596645984467037186503189553440862678870186312110914140721452819379042860606277971684965177226065455730757722186181675857798354832438645971882376600137376956188198431777036402002547989486922219350094786942354031230125250963397899118077025924141674203603563539295906871606678871526353832389603544344797322197402046362378552842390390173691293353292272166914997417060432144024524268976527902713232512794058909303776001256811374361130105894187830914168487518818603542994722284638110924063922785765829901219774967565760498506910681434976701042340061589693743436852238226842336021435035538220496113389327445704207806604975579514315309039977350342086347059598268603958407305255584547505344455791467764761597692907385249998457068859445960394201424702989654408524425439910235891432750145955190848950118647149925620439696720372714619757487482392122204569363540704698920900049132209241581035958012279602037319999157390784607562994130692632775935500236718907029993261098351612396448905012993805475515583263704135008849009387708068821008490129731002707469238906410541069926935751932622017282562520799635678105067345512561301133275976359491672017242969659338248734946322629934195636987901400775999232744119657975629319736375216447498893080761134135307096542467492554042929438356295635718807715953374592711169626699086048757157522634909878238466367948146004019702689764949229575849264753900885802646689979153084353022883690031838653680015843488680541192262306605530906166615114814195743762102627195678881554268903373463064046451389961467168979955273621962225730544739380178318718629221425247232278208233409615353772809053812023968458305790217680996275866715059304845329581654479365672519319009975747878714277760607368681078116507351740902068267289786082946477331193674019137493129694700490879541825351318626301011400100887165954112119678203154116754238422489002317576355511385741387649120497862181622511364332723800027832978129242650061798780387955307830209550239558356831438029781160365045113721055977878832856372724794926373888908399480300712483690572691051124347429217805789344512806550676284708967895915670840955572235644930243673446479588906209597674285905132512693827317626008995841565396980439629733496620100293692311433304753961043361059126927287090065873606443848842504742318657934418249177061642137499126824404287108778136133263769642758850395945214386564458883208172493175710754372181411384945995405651221354209848787789240834317556748751967221255956843499598084205135054080591473684588979162033810043815356376466817416200602512971539253430603280002131626084421400325447783186476425320509388656668880238245485926247040244280087235584617010440846785892400602496506582658268247410225183872195704958447925597942995864969592903821688201371529349271273492517617623731241482846084357793493947156807014308262498708504506293151982546184556233803501654390743650664968141894291646265086983552946818557715142609683914186867390624015588944826613732918841360451773233547597802433739281468701688322441154260912945872623114616606640144539983970845714109367487726591985652559341112027910508236947864843519714738082845839475070365669512408318571002150385531328784319067114202172837568534516380513781613076348815834760379914432485863193655272803038016668338477112376857438774685835559132485284814134610753217540534505884742781026634277154943709594504001676805753269702541707007100638888332324290935436039203401816707903435799602896357890917746204155938645504985772607945859578901559669796993114930883520005696841681924985351802256863649029229594682686702088563672923843953422448612943787658715773334282050583782062004909349964678000332396650490241449832385379829086429973859324311806555891464103088795427454726787667333348369442668202240067098389498943444805872026819799053072845669728645110492745040767834648533585050298279449708196408726414820136308699072832848104311078291053082070061269147972543663206927484083637962734099617728449641727944863140289499178547228653924850240708861529473083898285625387791084699186459069098523463841476896218878501917047425217429599494368833255730580095420732393132635338544531520010794635014714896625055633236754461645313581324891656158779997333173675966319845866954509407788636685679210679023863678265909958245357123320458836026524969737497995340401105095656373914485542135167587452215789046262513218402063851247758233831831599697203080091115419248984548067313298734478692911211648428143358175134049361801116836918332672051347374028381306123306259490994725135565317076131331941771711856976350223967245228285617325622691829730272678137569253786701083482961433207820578632394254241296459403607244348525778859741562013709093280089177331599656374838267458667900549812170462866678619112362894371281728775888971099056967134025935870475471331444779430932788625600872898174768941525093974447849999120464296919711693452136999393064949727877705320446104332659421519101727384045062555702539079827845021689175685289163395396128757605517377649432448418739540499690820834341988457921578908588774965381702152735973728673786200455573169037833978797561826623451151185446534944622764372465327047604501168225054344283596441096755063278377017942932424495584417397315808367660242163151618122534754216351898486416680604484351782745905552848009090365800273892929641075248754504674981572058729421550035645768753969280334116975964173126658693017605304507481085163415531381991167798040379002307940030114766732099288898118163104988707113691232114006299559854735838178777459483583366794602110044459703712155218354503123524916333751233786597239012637938703500954119606110969896381447495522035291722418454157718260797092985582296603358917228404015809332368513216962465060404340131234825422795743608328401470955286439472446273612604292562074594669479955877594233377127990381157013820946774811495149612203993839537573633837622429530661983831555001623548075931713151096905344213896140132544715437689896226376004135247639326203059412017010386817176925758622981710354932157107298018190076973234107998124011395246219136864692183526107182974682789301305039964025828940186431683265666987155341478538941305799200308395800150782600545841150796853912823479161898140493857699688197511018340538546412938234119617506770520793956060175457870444599965282597161373978836078740222306631962215123992139136860101602568620123403732637556306213668524730554132424865360700808434796216135336280834183074506785138498361845473305142500542946507374089740093486474979401626409263802337659931089182834677988582916792466716263761188418825779480961761140889308929661768584815313090855861399020283559064247135358469624427151063441231108547753075808599120188023448239831139964380154930567264890715770222948598477313245486674019418633344476142757140850058630830639784386574822770327957885014483448999240256592850464989950506895803596616336095940445999870597150187190854938429082321000691120080454281034651263123976741791606958641639777196626111519782344575735280132199601809100034983518481740423149193367499067460653994682174941608655091714172998468887843996248494311175638644617808753447973327468172620482417209999441864831172932186474568930732180560056236358245717034146914982066009594534529945230204019738836992270529866223100465286126344526134260610056060355698373678365395204505907961241530883590775726744008290538102943172048826222099066896310111669294676888250117027333093869568302003366177043444569479570381281043214699250442176046855587872961319414961317929085047025998261879881055139298297272191173577059869347547719099384637744302506104707240558609688908408908785570608503016343623023435816224679324510891070049726524478207544446542778048354824805711357445351530111276594770068733223466096236150523119615701746271697311819370599265589109780511164708078692760542023709132692577345681727476610422023067063892745391856486053400878516122188220081063030838172481987929056236620111463601533124817236945094264099968339330414128332380336275912375862335994226437917101257220840834396092829655820728419991317678093832855751468225936998515911214202371038444401825336162928100198343949587489121591238361622845590737768390088408782922749132005165727157476146984407124860258355101511975061916346046693970932992863316854920717513219089760954070606237368866826974164735840006246719268268867842435033437140163599857862883912371977616924435885272115995234072060001081303681041003181353981910936527690865749595468332362761204420810272936869152675848653731561412194028339663735210610841678792867766040352273081688587599919247979403746841389285468448658673877134432161961402524752447945756402327605544206422065412585558470013786117423813770250475842570958579421644849621092094825902370690285958199879425366923730453019230863450853373712192404023340172911106426185141087020307274166280564757122008936171706508297320969282810381847186559274035602830943314561495314579480384813518740454861391921524668485487240486702576062617984315958999484553145437401852199106880067220796856430323310643509939665282272109278083435171041544980084485089129982871623554495389399801624564041648534752789157750203378040072759970387569945079813322002242160984849874092873938311999324853741186388071658793684558136955715090628283237466595761858486297679761517600485880544780825875666396234070822982627598861425557826464991224495944891740579785905917882265958213589398332985518901015701113569283785731763489733937742892841519514393589282097326206340202696598883321674667053442761185171097429925200291223214400887140515697761807191314392968127453171258261674077318462029799014310797134749649074510378340527501451423542012803308902448797954621581155021102655523099033404902747542285491975698487097154747001799807901621323697487782893181102788747123562511328917218886111356826993031034955118307735488465747434087267712912593473189552226812535808562708371987166923927352910624488889725061906859125878005680767836033897812848753790800507414026503881192696924201449386829025863166845433017675957503643829608459591461906738029057546941453716339398509212830654575932114972329814629129780262185667678310141225211858981668251724474294422263261260412039517366658908497075426140606344131486527187488910049590757242980260739858148482524182379015752026297187705229545458908714146740995057135783608300440952536605574686844813493578837323156851450147493741500398548215911331319160783354533032466917800721494451593925033487236650224615644817850513395905034924744224207377626880819509633809788547565783867561972891089869679832957084672326357829991231614380147752932497879126720841323917689039592999111299662214405554985708227465350154832360678682901758825955471717684127705367803869671159695529399826386616454322836561782203102326605020027067206962320019580175510687578746713570068368493112949577311309304599546429801235346356533479945925865277784374197966483086603256865659054167878988422321620900754406576312543592902020592942557444620143051458321298327452765786061553965347247401814944164621788304095129454747981659571196144702347948656868572964247427630624188530483915924196838531777164876288809178405234244610887719028719701148762814360040017741009658960948540270507394365229286888282352258929116909199130742124296135263075245431194482843485355546787374016890911924368330795473135773738223990928250359917615195463380853472600983195935419920166899437522464354622751011202347769086563877156471508555562765220790912056190563007098230073040536128991478466764541887651010391119454484791251673130462710309122715841278915120958605722479230220789963302762644449175411654087846270863159584688097245283504136400614308925974616693006166722660000920307573550486216596210571373996357860124581166356878057250977762168885262428304954101072718504636669970061737854001254384650919598933528199743693037006480879505708579409692780894242492043799425547914955692094527095521988541456493708096725937769555041788175612679392692176585647162586132538169191094067633335145202877190301559819891324231568052956933507385082880083800384069479716828514801484895578224565358701527030169304785772648128069450567933042684759791239997267253364905541415884277884577837569412041215466374211884497368944068925680058188524729631941954290774617397387495245519438942538927681515668306281617194650148347497125551397586254306609134938241583961121077714483669624840179605709283424222439895582351805770286618728580618957061539324250131472163149728691014955256110283287647922473195130988708841231592363710895997070980237895369602577465054412005900102325398253445100914696298282605633791002064791528601683131455348582294322284068328095579893289860497806859155615529543894986692878965064152559364382205664088846361338654885649381543299671113350354159464140102260016023433721215562889568685188337673558930885727516945491745424387761412618779033133885052938079253609801118768611016033319630967066834695439990467874565056969980539856048014272096120110607974182684868227922709767402076945250904523005359953645474542469631265272560125930500400185319079163533254600819370584282032124450419262228374286443314708802634108533111421590089484290022994236717556082138442944174473304870089403380386187298304827283338698636359362650596789268293106060568507699168335941080979201118045013024155995394496227840639508169403345942892108021199187590812608847853244985434819289733510717079006026098496176146262891515647960980716805164169679312102497522242287759606359053986470216093268431810248004211032353414772010795668213943605046342133837208932400599489526764866817265652873890911967985048020803766772261394156194187588508227593799789919760223542579145812614992438414122617974124980499041389883447346163471264726731431616034478673177452027345299046349847222698422958851159764404229671498205590255073693061001418175162132058721620063648834750416057551104021132088251022023725952621476841663995027191068210557869973917498182998577314551534903448615805474250955057889011812740688295208500401512237254744584848340967432178561247702849499209199123373255831515084024061368570611378707200441687100675588346248085419695101050848608979193237163647609342363626367175523495367188824369637716863141683944332623569411826494776164681680942794032803901069791312889582970057619873881193603373084982246217493890471549501854746522322142913831112092625325975142827354022093094849522665564956874233418035830405029949175427656118781355072922450637190102402087780854102342021130480912750087730723826850482311934805976407294068476604967161044384508235807180915763555008680449553741218952175204549076521827461776094351562876710839387916229456610419865921327212164213550732704118100642343528209387938390441549702535078668839946274354476438033035270451556733901316918050186285906258352063209524978124187533340818843169347277068797367936766522907213383987290321234454059377030434376173620965673498109901159262117431942597129292752622955091787517727172234078297370153982883111123745179803131703976443929414575685358094500076154660570068803032610828694960881328777362281856701594962842190128410190045310588628519956315314656970533476886179805888276962089701425603065769204758469368530488984841068229046270050823859423100694099982274237353104947269320873769430398496180529738578269721849234030625588179731639229473105065435223611971450843341339041635719003630584402509857331730981733905421556376520266874281070140637637418815925261047582878156856635100448277020138874658177047688630616877460786180759844522070292073783968546715251791991567245930513258740963969875452687382916019830039219357424497156678482015305266782780916145369375292709682130982580380430237122213717145254089130560503121134803163849137194112823914810139065131621468364839678951279828962148694787512274278110654636723535257844631813932246558075160737107364451556608809240980164656643710248932185968442378006660505379618380250640870460307196036453872868571049224164737321420609722018940457922504714225142077644274503968173020584950881847930373364590512498880311233788918428510854734849211291056347561363583512885526519857445790228428362433754622349103411422899641481858755176575663675611511938059785639837611151631909748569550777833225038552961416304986817355414450943320179227204834272596417297867411525360136753610224239003806968585182366161030478940044063648783162103971400376549996977428071118990063266866714179640641668944263145247423783772024874932328823179802235090195436568104915452482573628616759054412072371546797087680859653466329511980958240468981526488744324025252628425569068604538797247326158588661779951019285525131537457570753134447276183565266004259785552117686857066487703516182324214681650050444605955322534790993968396329376085693664901327678332928319551360034176611049860699628043010108149597468407204851433712820369645019175359829459708647485335188868398764580161751358393841906968435204166354457851958096433858630523239474353366586029466650486691405977518968991584564640367385682191204069306664917368925681604973464854651428782318065463744753315195911814314845000413291555319598395278903500897975624110663610023051565204190002561383059533657777832167620486007156672738589118574532955581954897429272673965865288095491766431965741562139601987744462375701059152877113871760642837910752813447519764151025675243597037968774273197216134516243831912287869670294578945139408702747388212866983972281354015609537679169671350757497285443949142076578308562742751276114432000694395069947861615033057942505761082382562806495027279726334882562949256396643197805059254480538561814225565186513934999821759560368403629090443048052130631345186797500886187503697479724265122098343591627597288756523359729438805864213489879795800842720650715189405149527780231116240906616540497305459578019919456874181940936095579737736217524206105007367658295003809124361720606051734786872424200871911307177083166237642174406476765225009643337160262137740819621049779138414330666424530788488563125812731266206891913751711596403114373618946048897303449642612202838869425191650524288985920687485101268618051543432423952949408338814293084437046782722314610087403213177611020035198790390509148562798524980026022240148732961798926998701993266583449384987394205292705601112979842620582799366586038865990580709921425603877521413250318098731170710314914557616476034383460108443826962245448965145503373912389348904103162783673769039854300663526655508054473910659491728413687400813559516395898038651080366850973772083813050363347386621355001321101549368364970596221959126830659815738092968801811435571066605179545703228616563866628516583571827539600741736819139238745910840900469440771703211409732954108266377963356034848229427287608218517421196842567708948161538399271959417816209073815301196401863240825488609732334705168789905494822623035518419521869714593461371658768257667214413339180605136570250284110000664398965344269498701447947327055619218399403432018386579698649997713790792709934475589840084389966461038188196163503597404391965814128162786749734516452276488730482969763496913752127055302115572231871957442271899285150998515699808217658921534378874698717583026813327235329076052789047513089630818544138280257216561214354109314415719616090189768122442046429379667838137989325523710330210536006798041980195727000050341003335433773490500296866252399599140047478707661104429727394402889174626758875024396561597208249963001850547364166451303332709917320789654116469663363462876883771155156533496943150832672290290254109972267125792559963658764467930381646573684548605536449055169182951571895513214775139722628965464540480756771014168451474350274667875175307498342919815610658746649609479391193693894905505012969936441423834519739347715419464886195936863389573721352290470285421984027842051663119109752580835814047558678997413419163676840612545658810651555430392528877961977342708761255928656705840005594474810325325721127189183750451319622670260778067625729133013148458623299028476638804176811779982012187148921858166751138725801164429283659055515865508732648253070526313811237995724371271226310867227020630817994794286415061718643586723314760844423767393300174275832100811963641014516891696728605976861626898356278902821004209229054809595331239373600408039813225045779915825736808465121333933597192759830686435022720140210639479301848550913440519266135795129132922192956099856778279141220919472077395580216199124792307837386202919744066824255900172542680918354592752991590424824942165292247850437514097279937816617310235352164339003592322814936107993605665146645355072099734397170205503110320017249747062178619652057293591787829567114383552900061486225889447409333362704312177151502090638249285738546727399781416069009779439975087062171901316556478433709663121455660966870893463648238192820001501084975356881812697628371130330643697989061939115182925600640243233223996174490191478614525600340796159761204422360778897648231232022201286146156285467752355947914819612848617312210458879639334657005361187154727338071152791823840015556205345925695263542778475610838155599237337135712345796975781280553404053484005694855650953227017543189345987725778119201104809978600792006766591491192163046714709459668056729760790261614592179418347941821771174927745322454787819529606591297614840841247244146736761067049652707857607533160394760193697472342971312154725306915026553020323532095948641326553483519006434784033203408085988782592611389909159429732126627669649097747806889092940723699792554629185490514914332324662117151247423638989776466821853415111111933822114790466021880648029828662283665562372640254547161053693230580769216950397984241900359993438396485602733289637841313433816916576068099646564488967833211984970738496373430856669777894761079929855901709443151457487201091936017718281626297641451357912791261930585593349099772657753143856804742241742993219510777667040940777860161819870990960482265512751951746995066196756965508160207889080804081509954417964111700309072734613398921562876291465827895686533155088510415991115335539460847810798944355232885522281068596739209888217362074157414689606073456100128309332310758812675017028731471928921321404449854550964177406503574201749711449990861751928720557427964201290264224284757868455701751397118922120312205564091421990844181920348406563215003728480450474582665050423572871594613075707874343791217747607468926484787332489767076187993453898181099534733795549699619908013274705439639260830271764193308388621435233340089672931231899574974818778387805772924584151017684385861092565089831896433870117125638978608048472651013276175269519808953127693082456872527524258248190844660201997595129294081844235832157056121930623544778056075073144183645195357665661704562249323594961620022780992774315958737319431267189528033439229519449109853231648519169803712924762524570286587735280834058253636725034768396110134044864902835004313735777899858931471278752242024107670386131571805886286183246718627077074229288010325310765696310644393111963907812386100443157466921134526001872660908306159157477469925065459187362411029251221032906465234449982735470357004782711323558634321282636359762494809508029213701161461306681843091546016759386495541362739056759908706544536774782633083905469409353806206029508564812768479717886885584954675250342269661160421644034116963582083476685073742335701809309868982231108108118686418582372814904136530286291253623758807376618510370301845265351185594376984174873959394257633403201284939342505940741897833928724928299552055339356879330359197231766056132703238692186647865406821876578322007171572205046946620159028657163708735861575894324577020247058759112698075474698368278946993191559386383452270530286021153487679604012252016035263301141547232460359852145225120131394703483910723849161277526102096844631234416523304584929924185970508387959750934702905846400645243051644042567015391400874613265520825549966775133403621557904997852817040292084629171280387523854552903092227057122400139507713100672612051990997618001250131090393374381006894457644822370737450735038589501957917432932092613990806120583381890049953596747399216372468498519801545136619854344212150562950187706140802876083613689520976839193529729147663834831539804990560969983815745777627913315896369318247664011349294874045992577482622515594896618614243826866972583755608262969323671460764649979148660601379313895157822065236573338706298605488109098915438011934160851830509321849628285077726270086281278172481573238260890203932068475654040635667584167432911982623386661008318649848580155858127020423321917955641219600447797902224054184743155883660187598200033828713655342727532261192351806336759279339539077155685145477698290415452422780887552711199771268243264346223848188933124785969969570646956294361698091967216319872923073663133006776669664583298119539173962029023816017069902171358497394148260755538626951036342550769162382824326723300279860995582798272990075879674979967258549175875562359679655301652263936347354542717099290301520219680295928141156155932064147400454236559566971927376619180681964940710143284335211184728407152178197685276365789841990326815597228072077062050668174798100796099198972519067853593831704357195814077128594085250620479983788906514480554638515143642841345548469137488255278356234735479820684878689061078549165009280721704150269846154810877239745131923964559840726814858617848026610819610917617150334844222600631919324548537634499474131283650675117710871849530109943744718716698741979270960429028699950950887784630722657893938073232359039424720971518705217098250269093972569659814391420017642058896633833732344218648982463765579560871892431562627530245135596432452458343500713850897892943262733260667456479873423006021977338616436863521116087967427892566242796458986239964671057847778157655573480186338795164379935758627031058877025187796585584345277137418932326110026811655819613569585149195682171584101239952583033388553630991380286240477394661509284310533086810436043688654547658577641322412630720444088132577566586021310842899759624560520447359808122352485941891419436136333789867953878342892885019334605109715469420170459666635212610870275919268804485618881036419546199529653710140687195911173683979540154122214797557587473881530167807642217222630291617117803779186228480217710032863132121928980365296285467709360938620568541800313462218073620768051304442972807148612742911255085056371463044491944387235019416327489135638504421655508649324003638742788157646292138471897414037165644674338940646302899654967854315298497101435846681783592717352745606447183936186199402205958040808711710134395688737467247690281495574049975624046826144043533913813570732382539139762855455935695381731332414851533443589704856104143213656712476564828296384285620435264497189990919104406643968766673524992893875741137590940387884639547903045354401831044559327130632029910528084295880064466473775291642190359908240307464672298583275393190524845519620635398880984405687869107959553934967660494295233059467468933574836770574915460932073043945610860139508644674900141739430563088050216562477829997451808877796167398819979621876356658882648923010595714048137835396652718942361202926929793454003278680879336798186235705520711910311267578144470320792994554709424730498024303524243898612539549311234074558879002892527104754211458900585316405633085404193884234441261729339686334839435064900015612423507739796386658905984330083872733735539994307816109891701371503733891504233243310610025592675124868670405351328646452096597496832713591253426281189716248436024839402832815488851301088161537982630561542723915952534113677510694048758826687765378915166062303572842235829022571495404414370182064982171191434928127655204876015525158099831726059194375277357785526872840338159750974808906459788169030458210441053648361798046572619567354968906372930475935953439032556872727383711096896324330404396590071053535778338774519586531893741898100650162735150238500069333182041324838876485368803257855344728955394243332955000455378095624832133636306013666576060547447786342521004143276212160372760781258700523559818691529207378104369588813790572105773377733964990015637512973653541697050334472253334186314244489912396225304600038687949833596431296902043592629470135884282939869407842863350271402075736479480896194331076412017039258519039804667828198434748718034834311550737915690003309016601065186672755612436783560427833177088386045799096593193525655095102716151731463753350877154432918380926436186656617982498899918206980135450032101990520012712519362731300583112757682750799105024384445113193949435802223789403984451347714000485815755896781727280682302260054809727005744909127895438609231829776684299378098843940097984072957858967087259236347549116712222172513542427016299092582532385093291713634269631556119010529920929710362174487351284645761758655614751078252590587969459938581901737748867906686295451674328376248615363607811006270342618284010124912852053758541809241922216234488716037599396442780512316904427954027401861205728890497023911217070690753202365887906627533043813753209575349641443478695318848000204814599231673338606451272984247875434267664163708582247410979402007903350158652068798489283592668080859926325508392840394822668295249891883083351686238506044385282933792690801648308664521999979025570496894693076449183045558935980189348452005033824118110384730501553741350133178257040231175717415910731031960675508567587516848912967260574931581346538869513328369465917064429993075437532155121373372893883776491699278396215059627351094715028353980575284502509586769813628489421012359144792779621428496635757420991489630748763752589429642459939499648753534374867177779275941292786475823726920775239771521488928491796547519367991402360649534837666001486085645517106049433625593945037747380051681346292407748791319441502067432547281771384140242810288688596378119311587408432900158960434351647430564515298026076298663687360594033486812479667308706748195519312182144157901382186916035581159329621358231178574458098811313428090774470100836515429369344080872963038473746085843062168414043499913753218107792617664206508613949502558265920194607527944957468053987095487022300056817953868127067242957442282626109902496283057713480111888352498221337885350647601772483497361384470810048851694497516678766776642285046439707384973848560127413057948251141420721302668186798322619444666539082317211049372440506268982597546514777748406388660738362896065514795397175208429883707184198709943277884326207484964700344194808385138465810054390680433479657432534073814788801602133739916258652117203842697260190700422814234573940523143177603849501554974719131690354571135837538098744621837488341345529823687057869064144699390152610188675890824598366664493085835097308089913304127143376075922501819433635136488917008274842400866145218508254172100416578494428858075909887686550545903770704162745859991999692367099809924936433420908277147548143789024387411228892593888307532924831257425716471804006086603169687966669820647984490044480727517583087135867803177478826872951470506828941940524824863020644361030237632322855657052997480667029632962699664511946621299385627793485871407912211645925432410385336373284383073524762887254928297142356986145789932121880039585374964036297361909126953606892662402827740044979986954738851116296418362353750473289909703691394299416888829079204076155102743868863283091787516048960236836204987969655511329826184824115927184275628224544078128010871402488520862613289679311423480053426400035855681575896800128866688415802223964792823296867086765049770343810402540815501664163130111777060238471017849862720263871490338510259003769737587270825961039407247241776038031587971318839286411232260948072417868791977516874651721302954468341048750173669565177305972595362394630087887922663179479797696578246665117937905780538963992080749797993639058147650297655685782759411574111421972651365184975070729479538192092766183555030074729969584177085473365002967628253296926383038361382180451253294316910982276502784461960707496198077241897437872775849733342589283672776302272773045331000626153340518276153564560936007523453229352550120023241800421797290096312430754173458016183937205064622201450622376361496154563413494271098988019087689161775200703199835298420040923200746845906612928220495290860224170928659060158617029873173888032857943536144375175916913270129943103919982351299757697829370259676909446824968356606062957251876959637003968130620580571943887130517800185217108227612777595240849922301373009954275964698728257045475382361615633047741949492273810284829525757995822887136042596047900870146525810404674232889590081138938239662794242689661737766552129387307762733856044790142941495496257883722383973196552612209714679269870583134482029841145255195185639319930176716881424159461600079229530615854654379194011648234993532668383735963423622845212382241657108846849553817812296347240224039448718381357285984959468997711833265867971170115324044077099429264480996541641571523695208931236584679943032111704571420109648840437522907309538782359881058194072769408849632663313741693297140472542536199147572908852697172627715843209424369295637509255096738598967040992297577467138837230795958425984214770273530345656761073177448209184726433464371967971152607626367631020461554333844813508733687500002232144478959875083464421990586729388493351447428072268614924346708631092242760267737816345726359362870827911789558813898023076466621498331354469307096578570205492340843208763542795971834538817628109536985299904937344939269840357576213758213453179477944180771197010803781255313933919727840086464445772110110094811145086892332804532968424917830891507616252546425595162895391381772804189624716631702546213687380464283294850130776111486323473539079229780075650908961022129421357514444544321511798253797130306494596513581455533775975621843337430288276680867419554951102677792732328718589895490922860083429046892689978960472630363754032273947393017146927147958860347455667723881461925523228961762395114255901549144671789140079720867961140715842054774108984880373822954925101919222523777244956442577229550002675300166587987870739637815942427690632435545593568429557827214336537207975908169072722492933844182033006642018973645563533882283942181881971474054616363660592041938149839521995164869143468867829234576865311430766289900741164342077284166747201178015155953418059954281743068411722981358989505388305909804935686768732527960779019908449610861728687969733389869726903467199966233086184348560839646360325586513242815558202031094357486282775023797646608158578719843262398092885750050201041132504655472867240607186361657887973986830727373405843416766774037151797503088299840584641200427135300638941045845059325050479262771895541526908440561913962283512933989724721456083881075315372229207949550425207621772288688080273392427922497905360065241932760031504947743183098939364470915560666624668430688818708027262205275450572733740295811886281770514891559392938172529008360594159431229468263465326120891475831403275699684894826036630385074902971056963851540076172682576932446917165696206148114639541052238979519335930769113031787416612672978101443556680544455684884951813244253164363996840410594422289001864828101470310708119940279189664673376001184971759908164311628522882101479466412280085978489063946557003319974616024496896075138930816244578053795712988075601087523184335698682261529521508767099962134215157726288770414708766385814453757517991660294694579353869749926683302351904956222728551137533758528981692455219527480879793098552212200004212543768862217216314615382685594998402940291929471088770611083016558603670812667394106445368278209258768236018587724391167414489396648893443723386782281422080115560566467439863356629676762122946287501968007872930798520343989725504700963841789342467081911528917561312595024272014868666399221414348923938923473799424373179824700640681133600481161621100975222408542498506085801539125029344846663301764786051913578296389351575753330783050992116750173034290812903402881926956815275477763551770871436124941238401959500517243525038134282724924532907680530204600677492356934436279182023947548731797948423862226387891271870702748132620789305807689825502030053851308000338494249789832258697841537198099756250303671896312260367845554669324594981703965087817361931700926169997068580316814076161178289257050671329595165062107231078224067451440875674578998290156150465190197991754025915198675182022474047847177417244713188980742901936706628230872785248146396646819266269075940206614599888485574061334468730631194566966313651666687167270913315258952000867322340255664142646294185280785585755347510619931866637937108388068851433305865757513138119907465095525838056886233189603205570517589713557880380626214868851055706606106437523669471123759788024566150298343231133239738267445531153334934857339412738553087333352528863455035729434559850364031014649855628148140689661822248227566433804673155008154998168961517121485265000456321749224940203999085238629343080605226494621963125749425562915669027948290503068534837188769349229316427389310634997443791691083933340658141063060586095959002259066001050267267740193552293293594674824618141492206630613482832020832202190960238687010904475331235371099948088841862096513058896965740187588362342780591446788261466973720979839992938897359589640170473262814240966278502236865108577296246622502478506242905401765908416000876918734439635618398216371651726564313273851115836320533774717022693499122598449859467532983584412531063522599729949209907127961445404171788475656056196341397838670745927724917780858091613864021432769041906981472498862193830607949521420460528614140714616573949102382472024085994259001542921560702051954840386638398678205370134470501555914304426543928712408573178351037589876711505340191534249595478733871092587010051435907070035482668294453323482595828286764213435617124186928950165669667618598187002310404566976620438398834000589473220719880464602562927886019131147714488412648722449400118505262084801648552789104912356957942971625880668207418251938224765064630603045212513649721382215911676704881097523795146696775101029804851672646800046518772752820359476321915098066376763370787712863040809952486139232042942086954802440820627659744596835209287073828231431399960342506862396799918461375989582514708893473759198718409353691500428409964724649559592407079416055506376776845476623859433819179392028885834117807196853231290931430550375326317247101523716170214606429940658613105258205530167139697650706294107564978057121555376701641672927031741489402882627825940881243154959041839028579969574858847134027688774177337342024014587816395225249170221125732351711764313005352317900081884153826935194807686744519512163954618480555973702371222711884163727151930319885813916033773888034728846641298906153886328611925465839643410313771655240782787626901236014587825431795444814291042502005437620663651852462165466022011765561534212623445522148652094718746405590780958341424403998706423151264465918895284781972648527652499080269727784031517942634694085669527334093896618853340417484658090749424296257450315148948680231279524197926601378652697202143688156660383093334087518379497909280962380266796842340232899150237807724853031908721012026864226734245952546250502685530263491935285146152499979556306005793413621767586554023819538469353499968781924239575761595536669703439398592099662475036798490877484263236684767464545359353517417762776907598534910822754712074597717674491815799964310577452520087659217654349842427201196070136699286251274770733842436832524918595514123528200885587063550833379119512573634732617831034437586326645072724506403591720529373618757973464663095674770813899593909648213114337767979940456877074643442957848531933710464323487445490440782972263779976940326522119064619603253089441966686513235926257131107275942767329284393236832172188014188751730080996652204173977159036029893076205879727184753171871606009502454890443055700081514292748258332977191400056073263803605677263095544555985903084207714957183083491801077971442973675678112243161108190408426081060200843428745665383946670815602704172379150079274834551809227386687922852596532893052006445938945680254437997120492844778651430970089284169474470188681442830085078039273907405911371020814049205975412281892076207871050196113563378750250418860577078188563771956370274172089783309809131452236577766322564128394680258905567170990130087099115519562238043817269708451621295364035264218695602415357315107014724889456379155433094542263724244689601516221526268199377314043566913514777697692942281970406677827321408529364886193280672959956055259052034602321822950620195349974250080615053190584291729413314178036039242184962715490692311138870189050980598923098173789425444565376589483397141889892580705033126623631937102752392114496154586134255964579108916186694729279557468530579021462814851553860770390092002124823335886711459973408913397170571715747183331743218115797804147546062262274106706379175356520496440313222787673139770080450563642076957646773533897381009720308967325908635524966971682139182670584200695903362951068112758282845520780632895117782745098885748334906821433272682872359426832824747826517152655329695206633365919634797201740927625340633327932247649283130443471505285798261240736967257039269551376899921205624399475547184276684626339889360622367303437513589426073461993916789009338337584307217403729929074109545794005872808201787732832070601386241003969354568863653612518092966238068827804476443175358217700047540760788535110558235884265132910136093562034250052747540995703795889191710519123696143848532538840180530861935681796845337841403445306163462792907129767333944503197615702536535493443036425703271696023105754016617278091889172946278139305553269463750204898139110759611423788416721958312137186785404989425306528504324700635873050262733132363140460452548105723730473520975182079559983650655647384587321468077698817026325233132680680433713288420621921119729321558859195298576423825035112917964120291721974462989007567020522971353660615951762676668261516279841793061305338790185884941890924432932622727467838291679447166502544558447613419275466766673293176994080777982089988968916761587285153172128197526473795432658650653411703858124605621256616489712589816920025557601620939940026173624221912858777157425890555701840579062220359658239178389659040299152128346829154809681828275559420311791409357998906115965292369996482753673397462700678100209427938831072323908238366733949268182454408574832316426722995595526603357655458845772420927752072823464584333919403957698362572842901336981281239460862667096652013699323615082342416414861324624733960372894897659975365405992928719272403475965679134899030117146192490959735529248912918735631699944208019862206201971059747949537374044602290397004032125329927770134218374063040209453434151559739369460955250602668595727828953671811598172755023053154376269652682354543772313697370735433290204585782290750019573310991706691948085054537836517793964990627293831042347097984788971040573063156972225349499660841657853509506046763396728225486721143248534722530623199892934413530402312028817897102390379001625410733982572892341499758444507138265551798531578020917725722184635129365589965919285088192418752647127466270337240143242191707682306478580902384337336728067699105660864302797317169524694772282433300932317281530565788396852865547557552159958041250216736673387693693168338701987497825937771965596102656323031242805765434580853260903841657022202764846148365208651119662711648616182901713351111211962614653996014056165725353164344403415042474170954071802655483452302845294648136115084956669304390310075696416783623051567357436755427856679137976854653985983173843865345910462011773780452418139659418396217721636310128464707482776642716630918870345907848117774220146168895769563661068449400881023025079704289896630410716992818374933712590184776235921787094678485939659656632956366202650954832915783416647884867816993909950789267967012717096231751547493388113298200835283282124012490518534012800308805551026527616889298154152813185705452774500489792314710463302637337357666503026255135741929439631685108732984149033678471566741977145731909647201107550455813568926370230305440466447272659751864147149169449604602375423006879281056548323461668689166529285147328725512254343586529163639766567285215641113962058932537911171464723702292725490590265293314546375213555210819819345366309835979389650025173558256119529450053528250729357434675441957891495969313157867734139068880252853705800952761648840090109337959075435179384470654109244800921557205119272589991853847471844733942899348276972475770394439175981809437936665904398637515013858998641410253266625101224172602386031937064901766491684871758517030378475550779668288213943015626532069049006666724980827533873332868538496372712455522671140370719974685129843134532267689779800252290273459324804259349641775529647321774584336933900344768733455433383274643170685328481346124373789738481109353139803276109795248114358792435199502486573098740059542558757364691621323657386954110626601207287328719968820161471266577709327825342806726439338069948176484467240954946164421348829553606283106614785266765739180613256740302760254901917427094318445931116053556093166595398245395137151998012967752319548943729670311559141820182646905465729121326651644267422962560672948401728254498734914003091443550174406108633708235560996526267898699399873048760793699812100769608215822238819237551960790331079085873764863227334814164873939453592943145426979868529863953495508249164539722370007711555745637565607584459341867521914553479883082830694157106957531633191850311180084672944758322408864486952608575925944056038759120401293958512384260278567874724180290769294049564591756813013043641889039375913400345186827985995855718925972913052328880058436816248153594999638796093399200696967563147880592237283893045372284716896007955396139479716566988877202109094416194903311006776339873864948965299118156115604252477871976816208032084125775922419221572633381468171120309206865827824818067940075639172631197311096182083250908233669774959771584923569991990502898155725563631931021857995665278487022306736955316220510923168679076872298451624103832116205343162555463865144257054958071190187833144444556032982704399473564698339524698781118698844849938358075831106731928459207829463617004216004808134032580250067819923213254805391311665133551631068441075639159268033601025456453313750461060934966437170944193245988354255186610308238989004732940020354279362028145244615601921215058886069992933060316485414563115028132757963771050371534133477537695392057273026330016428288976625235807686052818275589725266080708057879946375159217810033933609536287231745580413240722524028162746254177992137310455392541780386039998301867547731957875205872799538972858589161816802816489016802928894043022514653426071566544780708638298571124170780717919009897385094062725864154124113371081162370486558981402551090911333166004522359652110499905832255441717619340988987076880744147110822910521497081040230737102566380474820461907163583337025662763508277547886068223184516909194813316524021275052231084626307253625920325275090309062777076506313878922107067900537177636444847522243352607140263337139505996429541396490254575336615078324527874809778457547289330455001253513051602738162081995657548237704082469763347940628840841425456417359676244711465082852976520222986852313430472633001268220481709960226429599312122185746841346613171123629495688035097452299154072643251219917631198448063565842739934825616108048033715996929840566080122383780291061684125047462841355473433250448715648943829512196456438930704936522302396718716253118346697455310516588874852680001324465880971627863947661693906743277349642343313573461873269684195196564308331894934785108093430286238726718950419096634824401213191232948199807696316386143699891454701513083797218244750607176502010637923049192419817317877032946313757347381362834551411554208324599524369062720136015993760687953829901665047214173178234700927922812962784118583235672961037513226637262950395299886482181469640909420759511330079399863883913802937413947146847965342441006467729707596449848556422149601291688142224220430304450113300104613781478112586498306092841999578601115780981356751590729858941565188725255311771562786950529612591333500565556202475177753027689032999467955009198206299930491935108888358319425956041696881947798221121516578101454906436746540261193041758435771664050766106993421093043335322267296215116139753269465775595138824486225082169323256850024299272929290223961676969910881860511261346983996723999643212458953224936735987749037851233960036474804783008049894176754346873866932050674843761969409812859567738135088465667401814476454331095030325191720186702053989521398592606178753127268997367296735701702205237587050366733654319429911062913186943613766710711259469283977824626398474774322583104690617349324618297466374235980441556281259675929879918043833719428598183211412956700549335879583672697598517199586965991273764904551203801524206019891136428396634176076180292767583361878998275958265192989022608911723518693479332434668582448006102180903635220560519224273857189985271901304679048702436604049964606518678150458120512207140992429194353782905342161940380275170736295887094163690760291628831360710185123643283126247577671190029212460069999411973582929219659137138033264240730206042199769137694921295356984912061281439290296050161399379464219443105769652795872279806561817516266063561312874016463932016580462035324407048986751342755763193502570058927507678870589589093877707866864500691620326154287857941469723043669450595100305781107145403039256223305341755226699264248463690014845981334191211512403976306581636681020324188906539355493378585019748710662444168376136873372822960083885438242811394642739213709388423474668431082893986103850698498057506251790218535834599832878776856537009700689052114611298849718134482629800486238151853384250589452948786887348700470971878471204156044374845740772190126103843330478678581701266572339873083990846385590216706814016857245903415125631363935535082033608045314633414806412351691269621892049709847742903137086062431832924828479176217155360801531735351099396565033402916901480726289322204205964695913500698533008571646917705659496719930593083597490027358300790059872791505331295503490470970281435507101674845543793872675132472404813359768632551535561586707582016688364628822285636674588546928129817037749211859614910758123653647839351084233688472660983968720374663223123250270356409352416621539066928314296287699321454230711168436947084083894514473395817245878295858825927210387758162352930584546729152404252229471952180624243339912089133050734022439451809480924128737468764898474577367362192182292963094440026590259544192242697232735601433366928228214278811094468630094817730728771960692724369472435880434921433993859905419090691302733523206971124230793774846999213784394952082730314369568288973977163565341433698467749574659551557085035199400969430503794255828619516787532923777439056358424108355831060731082920374033519364855643969887173722072482973880197303973615647063200100032247287881110126840733484569877108808809467276328214319385446122862550192783879388996331150306267882084613791835215242996404137660495758860483619607448174297058069534381744720894407351816989227120454736658330612905656185471503963682359805600799834821904197223995417425964024598303308190757223927774183426829334913549128841205118422326051687437961286206683126071550091637584919487391168445261480124664627601128392414309690086972873472438272426704689823926900506729707143815624823444015079164718784970536632181846698445764783918559686271115628530241131182180949846596245804987603299376733179349279341649914090129638527667410144458530531130091445868249092740056638805025848563234203142163810120854625780504304650526321032075735641591492322815934606175332621989280536846764585120422485186194265371884618947282035622141309277392628616774649243806211554501091552284023476718847343999553021741571571163625158222994609007415026594956887672926992600692967266775321072902807091062664681371596582662349253577915208244428432082384372485222749495642008849318333949161391386948384918950719377048121379990658975292417863844670154480986461691503624936371649242664792303914220450078656240747521015745231965355281424936927932669064530179662831044430076391750952966740677402761173839056133958654928280459463380939621600963213928201401248473354105986679661359166259023298822165448028294029863355082493215911707361950748576697447212476743443772063858084998829511466288586191205890232278592326137382426452172823038948353358600305318485775767463405211278459032523262589223636347165837062062907306177181217170326404733786182685947449232139176806542616303592056541871511982657845539505814565917176509620192672644163159554574791969862998469877713716720175645994925563937197040997899154026885364745715284708543308187193806878419638023298177152304935467156362595540450058977443150502961562187404789903079401922128174411750522235660703162021070510037121687377071804813940291964662808792400707506323716498673405184874167936197072935358689498035728962229687614924429523061892505582239214913856515762276136929474833989812061129499905383669108763374389946853278122735674889610632070086658834172384781314774792084400842358697189822069902871096092977637101399834508968844206331668981337608816672782556964522263599160561709948574829794691377719721729678508007993347571174629696401153579793916572892446228815110758442601619120192178274094073588381628824498530675148452667315498115806363149488043533556133884029228240709106736059879539267689207556495128372129681743820607490792718850255445949459373050564294845908030456094305055301330941455808358870489840773492144488918685489524332872212417159119886676718078230581818711489714136656308309317873308592528550233982151121912494003247752039413742913240845021091327087085873667038701268287824106983877015894777957358743934261342196702715457597533477318379422567640007680978438188941490556860583287060072246447921231670384559200612952129885363637513010140058224341837602234348098855750420658537653133620266491410830716866516002095084678049221219486615470354706403106862950549531536463260088703944682791948790320747623245446995360379572677741468451341486496521815026532776755131779171205075226238175557519941878293662368205535895578094342831302758466658543464374985520472407444503795855854326682143741666395566929428689213033989702271044438582685906258822685484457330658984892630489870861751665668244790069789738005527148707546582148540352405678655988194093247281231480096899791355341843721741728657133311569241340177789175593779493737381809195920038028264431429602280950064162387261437497189956685154917791134795140013473960746883818635691327464668366839386324825391011977568143871427704606320223765680072489110363004152210483976891203213396096552533339666082920617290544226007759022971537670343497616225153079339070500851121946183899189322799800436086568805714709086085450098138962339824033226094585639122975220994047544780451851230927366524289164530304504016571362950924200588902950546422672957477834808046214384572047849360090216727129887580330277479289115560710312274565321404128311597509610309794272332587124207380522956650755273081464733617004247161451797134471850000124331977419155928539212806441650434860459861241508911201279419015112041673264161757150939434770706740481179608046014417846318611089874883548315553074204914863877874911080257057374794370116607208918945704501087259396136469406667821416758971232126673582222502135881542564152107685006532677249820163507901767445624369838347504495098788554937528333345573779467518244061334696602190212205085020586497642380931108940289790630727111333450797338020228960219120906048855757835732402264225662361894319243877645051266633975646168900750215150476205485678539941477539700306671193782720789232699763026066704174866158270829084189937111866456896667959044826031863561059474270143677187520283281954896115990870061665665979030003383132537653995661633329146806547779894478137263491674735910785297936044087004120680966068921373481210057689305037680545505227318009308723537818939276868985712964003803147440271596960621164193728792810517767907202667833201194389908212587627509876340757716882054938849578323453364975281988786032141460623557355710516006485038215839816077545148703719521080283506739693230455334841049634821613931666799378627479656840925256902209674304669679156833531912562483626866356016382329548769530701227772825683421807759460405620293119022656661256404578135099779759135157376352606952138205963594414955981086137779017783780830759274053639273830896001126579829473275642950257091511569721785814673913202355033789023371377880348830786091256286710104714362444540223299482766476060131563360601504665128326009109815610619057075509071114594444182586114491027428293672077344964853303474114875786881635944782223941402050657487865859897098285565180922804053086035714299160472262615953712363558836487196349863532293990888828244288999271003587512353062101252540960940180330450469637803254724261646493140488782551514921432145931982875161032947123048449749009598825109232974641067621109374077023374139702017489858426099026286630936274867223096861626533149525651939624978138858047294936444785905451684311296492079710926250029725544852988715047379111967107551889244435918379896798663385001602931015626880159075135889570960828222730123993755338228775039677973070890743254543561024923449688914037610003652186276975512307200175225621531189632501599632661508883934647626530550178977984391468076333065393663869895354591639139085700068371896257423280991463217561226211249204348848049323508990145565066574830374109773210262736073894121580263938720474568231988104139543381235133747989731649444709095648065321697432866145143449838317136100005699618512697133905216259870276178469687883225533183925635370342102987580079887873609824342310011306014722633981599116124330155359989216672903335640298676099589997266945245710030787476940166626670367579470008553379757441010467560238718948243729632712097959037702116551906784922788947903974288770978921354885976422858610687832453577150805497330331611052621165618883685288176883828840951740800366375381253395872312229245050394916026191731811387667618116726576153464221707122188658706084270563086234767655943099302969679601471222272785996652732166807957008601946367433346688427046001185863351725292290395359888274019362039349511464526280382355064792918907427783212727127947904534868712927263903864854745699482988144712820896836379783515186818992766411793922145679831729784704972727305248436585199408383295940588075273962391395977920661237301787906512370487129595618648140862914492296270673456732678376922982463554725768921669594810978479630001879713752076692088143601179024470465864688824845456841930297100942586858218585773870558576007247255625322703108960853220863861447841492794909823311420961870484439487499462545765561399741041687088200112270524756896610621408289562260274694847565111067131825859057236966780397155345672746029558106352790200156506546926945797591656092205946816634910400076274203753838638309229253803790458698744438997091287430427278447935681349036015281687642025061811928588312456132599263266671129098914620295793280442662608036540116519043560364422176057079256033242404169225891467476151838307675013193794296922485638266760659450102541502902200935241090759264925441939891545872137676539565956034012377716260576438129783723016593515603498218765498366770777209783966334835157730555013267271417577244170672488228408964164282778841384728010578677670926544626140359743271123201426089685160074595441342672615964901740757677731044076100991957061722360466867919499550976618702265953622200315975022556169955328108739033933033811018075860315889137068145935007308503104984503749460565686454845648588246866005395912056692037833725963760002054168722866609455744170640930681165169834673674594420267762911763691631371768664905220773796063729913987971109265777150653206651621186044350374899552780966286535069707720948431882123757327213245887980282040320905175740502053199406499578445360293566068188546616440764968020541661133096142564359383112658436631203128957388458167702521015088923881506182375447545660185891041215168416708988857596378354819872292435320589975771777770369858072172481804173818721232583886301406625521483197096503065792884134551626165307398238592882368153036134586732918804501758313583925358524057146979071332051974445472051159446254331574007882415045744719114889432191675720861376215207604011243208666515179221336450497362559550289400888213146474951008990715802615134898313605234810665514666646135294995600797180801592634711970177626965278056302220359151073638904966740167142598324062808757239111901749181004611035851488684725663594455164413402224440192779026341755492553358929095601675799649852859943906506136721924431423277989674526836642832508319288704994096414633554996445006085479719637931374816554467163112344325904517768202896715532260069680835800035869566068196366381045883601109253268770243648467905038367829630485097186602032595653722007676262212789093169256965931458648359993248501889718729701748196257901277075219988818995778091101953629936178159031895582200966165573221540301138245389924986948997074995094361216396496729532626103309600628773483058650066945044547352334728444615190032616019070983832074613637709272693264398833150400374658379373990370818143829540347945858118920489162539864928773882061765827769205893723218439533332960985379356465429886791381651914981672736531467833558961334633968768720613239876596368799687942428836806997737684737879744657190083264963609077223144366949403416238472806337320879820233723254821785403469516895561529935186825077373124442058365958974349935873553750157471252448948568785628630251776219968413203665516525868491402730726415149423516692600020764829049430259054577406658505535191690198070654704393867947005294043299738093913071738639071086218695067756524329490594426585626056598381577151399529853026921171099894140070993635449684139110691578239039415558763199634622945423218831045063991428424512908782714972849143025003334199814117185348496536504120031364642717983108784089716581488807539183353916005471739688101756729767155592430018552773001298377004777898435896724001899424130282936406986008700676012530896181351992980090622747573797816613111603412848679112434073953355695269780050988892475356691363020410578965947973214797460054936393862084101421576379137395634163412420079660885460585657894618171756587894686280829039022817244686083349048937533692798388707862031651691928243769284538280533605906032349400234944591069165236781837625607042780140302404157733326669859829805626344156091452742514962850625901789675587225625283230222869937730418323726687362900544434947866820320905946737587636155942159794277182712568544652698385192739098922512520019074391597765203638252245448083210889563239459239879993894843963520648680302410139211943765836924469448105233343716112882824301351937174016696828805428640043567866998501793333572517723595982138598125068537150267354146938596840639865383818974604854058687249418735805737527038527599330545159976031305175985524294492833923941315810566392076402997985331254937944716929265806182326339665463019127912742402869722378869319212977550342149364147832017026403162916963697267261241270809465045862992160792691535813006544154683565660289345244360260744214260748115166027623581841961219958052442878867798869327247510888946243327092630824696208086042416814501256080514201790253327413220473361616262204582048565511909257344929395538189540272147735024872304630045485402384567921991769793566146813785773434686986794701148834309570176930664161235911270669738570039871375299870147884417193091615470256835756703405739506992967181449523537364424412151189452876426639791150769695951038007810375208015481356106713408815802567622339227247758699047033859263179622438200673893848359171091979427154611584701350430439848849470688483612204199105501515808045016814714856332477960521896615957100262054261226431766266669784084308129920946457709274545246216859082873336762710700615899743104023230868760129752581966048409236223168098462404168718016352352537477174495974994241860041751632940616659793582062638792711501025994325009443504860795565444912171315300739299395223084766739813970289733691006731834869878532756508674112088384242331555429282798113712289400667052658716115319784911484725966568964019921047118565167305855394185094226423386366262643112707682095806494780747468415481023049750152238421109566231717164807457367935037538152978786402180098770903949989753206521428667365308996719432284479169876362652368128565892642514896002275672423478110445006607416692299258773541152816885553001798352136635308234642474011527055706924644296752403014523000540574170033421485921726841016460768582744136747376997008884132963398172679549285813688928506194399236743972049517280555801891396489140125871638268623155175410745100940695714366210021141307370451779764442227693124036798885219103129620190934058066954990255304701946694016611952803919419162155046478135772846372986413326754969907802901702751862831255940806632510533232921690035908994988167292250823597638067491237243614808206189586369616565153923498357093613251348775314825767808883097964490510168099427370328427565029002408677834184539293508480771193625633273964191659886529504192194727384459493473327745038460837365226971813169891173111581962347523402314878724818088564309424338793793313663743622678092265333086447585686598766231766726546816667439895926615643211176885613764556097135541172912620712847757257401173457425168527310403513280236050330352527546431900177278770421826146402992843859644129771096315783321743635319486108833727602625484976248167897049952078152545497877437498644164174931841914619924791088988206665884594550558830182631437953159032902699644472477893648306145979120946763169399622645966829923710364539819890763844870069054028124315797428141484984964475905446571838051019155433913822633643674712558903093488252273374599045494589534954833227971541488726726502883104922703468110792783719180791282345926852756212657956024093413619896501927575253438674975186298828246251318658228250492068202050312955601290501859785751641413019482532129251273933039297267987233826325653190130733700469214924907307740601349637638025470249575780003495588967959566050465756904585921534767781936149112584145035012790653478150733564722252686855092467974676322646654563718199962853372722106077847774002944601254876862014852499962205607586885908752820432385062550393221923960428201967623430515642696470901679270647744353237663855642513564927873492921749351985229209205616021669236113900690335747730463214056182867452191430610775727444395253337556965405219139492744878796387503853418063925471774719085553131384558756953258629110303543657409780832066453775359126310411690464854447725763565850113880393428429484492513543746438288693744659419221436518656862562469347509801461710828938504540488106555947532637964786833748470186123444870407621320911427443077408418932315685177218271684254634914643086017260441068864950908648644879428460691673020164931987433760769980963524003225116321242703255341338710601753206591720238570494428063102553614337781680708823093113355996128370126803797644433474810027440544401021128236777974662382210542650164468257462043960123767274663011986898186828392106620010737678158322660878996390454702365356604349929584768048012912967341190668797343572016050677793378027134262599848656687894328764218335375808641526384015609547967998388213132675186852458427633896764192010795553154185896923024779309742674068570774754239237862040842322161952855008300423656170256144972542267781591711702522386744985093429014484732929276676347722477357877666989907741833560150195994737615147904377184003363271118551582377648694294502076997767766981172257302001310508335664718402053435064720289353548536993863337722441320648312763734862262656867579350299049718627683120356112856334298633143565950190617562655251704840709895776373184761890810746096141657270153734659261788057256430077810754878131304038052724172559084950833255053426511628077113970834089054796325439349153135751295235074273897227220220922318918906116553021132881633896356232981747022545046806927413674090732426208750181850588447327968831436085035481872771617123553286030033218684318381640425339580871515764600585261252749859090533163307325712388796665769452250600830270311201345700628212748328952084222558271354806718723941005309838507951972156592471886457182833766070171981689089162684213366156206302922197808881287304452612241039230384697818582342012491497920542412664014853364684479647368002037462776947965242630604157670661062651627231176465701663565393787417995490733459530739949627193071379698607363200348340630742636957924408815625181580498683142756547005030184148821573879958869180202954776283851905285368158691577003237807118602331191085290123401180338000433746032400810858246171628273662804002727121745551992451993372227189558834686761370434214631350192833023714551755949864057042868126056379461483657109964705684998830361227379253280261141501017743851264416273446646510110746737205099972989476156627287105604382987613195742889715805701384598123468737710286834497349329735497161134050478893885006117803236469806111612246657359962884264890760321559676082035289064521892522502878392977107744945775295910999169191133374536297258412824486826889986178334773296377761192622121766853331923655907098694136249477840444182232254641475183424483929459204410275989367563361615428915833672952140549879439664043857055523664292921823147209039269923994395072043715665817522010256151005080703403709664560119646527540404262999123825883421842844076255757741303032206719467502842337614137870157574533892183876119867184115455064017011696278003813344859371879152300232908156167249470719895323731619681302976822550671607802073816348437186291994412925459040785964408063063702896573085281919217836347952809649195495406169986010674052154780268451018390822929211086558856917528242866195090542615818260867621284193764535522373002772747769907659583909254922744376085896893966587761302440707519852502441024213847014942055513179431127242384921042366908982093982253032106970088864580734647187070141775161389529898689910245172358318018004889097052403302484544925529257489257142110126898189283111657854043228028402032532848653258220933090819240550199623093800543182540526358532695430072613543266235650408148876499310718201541491208998061538861072168588706185275415184786352070669591176382672379659309668877294918938923940579701663511481380964999220423081491777888240398465344300269009698245150526862789996984752047807457731342580498300428276783099299492937778551377898226045956216781560086935156529231193409720746434489826999012053659865326111488078339859996737309860906020408270949115937237445325276396653808543061822700532446067270468283023871118894686599578657725265509829992870158770655256042350459120523565330697109995110225767494940721492695376893548232808633501723734979199595059173397835120831703333384648558237522077910378233925135793357684395927112254995264556006369279646609875698665690321039219192588208545858701017620827238814163782222945806850813202446299735046691046366885709608893202899209688617411205106295633011452271045030892916531903482811089036979793754708159048336241919100190847187586973498991056205079828958821586100372903873735344921381673192256503497349263267871535547933564419726196405189162955787825077875713233441776269989990422100767559184138041794192329659132750808868693295682302994774048576960697322208266782146215035035001084779551779666493386140066752998065894818656078501486299875328662771920825556737716325626439109697810361200685686311227550431614551986111742170738713397919771519426478954266276128611548446015597472893584344459035622746483812277030431806001251164359563994662604322455111615101384985294032220370440083681814180674808738982264910017798966373854520189955597984797567977798100926767590728105127374193007352517630523454701710455491127811341759839065579284772261588074638314391230908192264422427218960892042183267181771965442108933138501671462054086361686700076811604514926283453773118389474782821212364471088611604165643329207050248547225719126764690146969066483537310332198863391740463639539049607437342024977972785642954908701751418715892978623526593443800674193255234145297016933257553409191364354025162957522781145322023412928304562074833127549400441363137113995336682334253647237852490208772729091510552116232601239266771899681079114865020696007131263397108373056334760877858139943315587745816513351064775433131696051560759888402794904553565282977823801900764569619799893885310532937305275919739540334060190821947964048786390549585356291525275006534233319341614684019652429302878508847763619489770053073933106077794583775763286734498066738882429527722699741309149786825692013548378521595656687866433912287638110678669469669693484904309701574684253792372144473553399152054040669273828943036849505370704000015800217330859899242849258186377602035017710518670964643015627364541410207583856971435531771241583277773077309936543177505698029476084814522129620580171763941452136127913079632748925334794503702754694484537692088433674260037658662641594664477570823608780890065985755896533502623238334809377846032529600974573460139418280653393387786699357280914021236925777989638782640763874506280187450246696852449067184543836673861418864416249595520275190112144824706697067780706206372209294631174704072136521042095035679632893948660342834242473497823062372593428047954351185776641740933778770218668807669144010155554127127898883273745804408588825371438324743087697176668348752462767450875419649398550527518516625273522579038303694396265214221080802693453058400754517823850037764090480298501564350188250393709972637752404527612489720707251119247409686872388154346801903159965542063080369292746966160824998909401042311590389404722078301145676725874233065715905368792467799210991438806296847270626266127937104755123672036693884637113203776403349818523394119456628267654054488903939817947152078071257811234693935793835831353392027614015539002926982082576256664988736757478856712053274840539221596081462632097967092042464627412304951102538146120271824397782778129791692232832942210522052203275178141108309106907964455636314026942898340096372585457051706507004245710015389688306890642358761288686037891729173152578713049909731423045714694569391615875853471595136260201594045017665126277012291668313484497443571331497895059979376423404173695704161613208885168728021911835912053624995849923250477702375434003883646610812198443372356550305921374735020902169237582406033450426723504232063208712186747339300790344630780098224860209383066057767394090481438779388623830867138543937962483114335648001548976912570216436838291358535378045209785842452524325773129883807251947220919928386091698560372399461227312744216198249548221132456617659161852224109069741054640446047167642960913273104958836317858095072798249522081752199748284141513055102888458773188099575888473290884400852826102644850801808985560766186096612104735752370325528877639046702517029943937438027417840774389663985596329760572660567164231469154848604133144064421817224990791649514795144858235919725096664993892758736743032927735651899980849014528334582141290686278407544566043014796297948701735646526237460188710072687174950238534575421472481940575260706832836360584899925725411515524464665047360621779888967504360612175185180379398747195988034864093964859048868667514972836594163071043831941556504619410509165490315194872445390838763598365089833906601052748141029375555090587177667949176119649574406791690016933451304487475029859596808375862845600470686427096606771417928383807199377811978745273684961975308347355142559799581793867777147340960572333123727744664947361216927622631018132122069796337846785887812287528863217695311568255238757821501684183492696800113757694574344502218773110539682373706382810896816391822186114181703109639096143140061766316401513980473518913230005989852283453991499872215479943822745701910028806400097657563420551041356727376963672955793514810021701637722065865772805311687966862824531510966623091917492680523147308568463087613800165078046778324744654730168156462250824571104913001086589513459958920908373944613136982070570028978360137950193478281829820975670546402435092297629171854053440633447300336957478363583985400831821192811677193727272818686401576512441433724235113275587712767515431383348481789333030164385705680958835015675428383882412478394555280077487516117611153864443610449393856480150178784367582106914431108638092426935031726826902730427895522640293191864370208023371254264754982384498941948344352620464530970170928389889709796154353968956889440544821366108763962444986930553125638232829631933260051956278486628709927465307993566994807292354756868867803554674443937517954602237887777179101222684485232802159964168076140527294569887194773128286333569947309473778542938169095449927028517461316099085367535180226254907114706600369478954136839070678635951699858871147742830135906523948843135404847264513044791914176041716198934719307204951660646359940956727908707284903239329177890728576416808835967237496301237239717948917880843822262759926913574749810266271960297503652864066223640277882150770475844348861414686360758241360799530961971731810125290219117078392110726159554170106481917792315429327027196414173044518222705634059031703724333573437304689774512382515581897178872520896471153935935269554654827403189253679351762470087727006814788374220329111416583395264218916969680986031074735131704473396495030402194611489834870811354377301146728826389952055313219590268342224172142795918347347995821526961338044073918775960697562609469678223779972797376426623199720074971853300666978230257031322882858109618719472628545821583793868258351420313145519504767109756949421732410057813954618952857207896662504738975757045866713162501707962245153658559292402880458730848302048383171585738757959475441458229298775911617213170003740282330779458656380994571442830560453911560432862178019100351553680707104612943692102311967408871583465091430688583612967644535825292033312947123410706128461043433674416894749108205344530399606855892063861602276195381057167099095234558611173722951445630815441240033184457821123923829076893909820536862742644356080699893600543778470310100420371550692637903823876265287706335638876347868802246919176386555841542448625543942076956618873627390027586368739934215736678938343223846757393438079459152926843821910694992005338619174651240326110455847497224823072083599061548734252646256414069009347284911464916224159886738376987464463932944155785434792524484012146213690978248866530220262250923048942021812409103051788194835546724873120435953119354720056295751205726966852579894806325188630627172650012903362989636016079398582153063201320156235992138893577241181991108478465720414546151941850648702546156185568145237890436946185808652128840937271951678727758923226763982735133665754141963867994614413588103171458429331921293682529034381844483925451954381538426527327140640163952752258439326389083733200989772431756618106462196758772435909018604556260595766580700449440859456099677859015385937148362186215426851815355683326743782113366154277563460930917896100737526550210808034687150587032735707474667492890681255518238857175573774464179773372239637535490381184579339573855713367709394497382177726357244065743350294810122524573102058956922484274569441194696447809019538693542603103565186994030429037737338820994816436017811210771364493764735391480492838974578188302808983278738060621131577020898806279638077338489284543411616133997010853451571210226365147563588507174072573240541591480743165667725946487844110938686454904044784375391332343471655868619992752219511693732014109546163727441487165070360807595132999120575314864631147591396993230786673170570294619733588243791037436601651211911715220510606248775967338133705004254878483031656540920055487218345865459660810352573819785859387122808983666993990727241662569534392482894419709078054798836406046981739186615569845195588766087850332911332268393323670539838164552950846332149063399829671739332903066679794078240486021998157516552321154771960464900021234013840182179254403232991298537290641823736818247925920402023568711983812034558673840262374136254082579553580423089475769423479238433496868469850806839606743257974784976057488412463526566519675570352672638763683867011442618607079531619532053718775560818420539448226290534915712628645369833409424022399069240194998522670204537276096841946018356731872821851822754443993798253633214412160671088091924511416530950847357070384712098635863515899742973883899924880420433855007207719022684063947257631903173031998712960529706680625103190800810376546629072628558424987772727143023168868993528134894098565365946089691702724614524489031619088162294896374816378029016456951744707548233128424930966836156449664643200101303635759749651193036857539937731109906291373629548923625433328997922056511088502318106156590885495905877456748404871860644889987525752479419561547671657228469051536034052217070242042598978106569512650195791047029760585418933737708139993932604683323447053377863422924464517284967755427845555032805540194337831224971456409818475602791947835069168520336790783274241568962956428021814355942473417790388065133119785106060106658645326299400251604532784741558962593140507076389142981375519867708073037656866190410448814992520697957110343049981494627932142997845523441862307509180647683336060544475772845088148866656775712942459963227663603353409977402577794525556525885408971375591952848821861544818411138947407032370593907150092754722253220766137921752682353701507303197667970539545493571654678282730134209361493717852375164606069378292450027813916002583997976660584574241551451501956453331118170141377273113655560765355908245834561659408213327716499806480691771940690911800985337196690007247450877973003636513373536867566312819239143221957203776164124552782182214940837005500799952251043185219433674516318048124930378622775802218718284050179568970053195007231607233863705892965472445858953599987244501857247073721977976685326250269724820817426635475838980649997225074865282185053012717722502766864284628841885527985514331053615713069237616177699813617878539645340804105453782713938927789013399474485980548072725930323969827228038550251271324692064464743998942434915047900161868634390703600259221612008671167772003612005551255834094907533919778937215591643845685339363019484751079770441827045816656417569180751578319845574461845611567337318766190887436853395266686328792188258803195058816531074317794425291322140817455232912051394307322753345999853321589439956028013465640001519652190282224923674404758602779699412130525926848050366177632106727495832524098436290364019531743586541200348340714018696943389381698023261699057566678247132570144992645912701955031417141306233013389128284346377056729679303346902415653328795867116322017357148353878473996846354465837619017394221463007763233030123325047729345481640952738830739962640332167377273332356146256427903743625012075431335556615266660804074050563123409557997424174175280360731398092902048799957938967180134145358393505274374064948000758032641001035544672672423933751013512356916657951076682542336067195381047776382297306618652938632754532994673598093889415773096743465119844765540201998388226044705458086237876538477786773500902082829172587359407552966601671757733609218680153543507726878208742219367651658320597410245513467840609464686337027909827827476763268656231866050901363540324399227148115676636901992441697359333519401600419562430587520756032114026913036963149588368302073837235437069083544684673062393559944904900657032182772266117986060175519771350797771355020644102293855792219240059205267125276302101822593355929955609487728757749616885542080611485286151698037798887072601067249944270812111839314615255563213708158775728450470036133650256163216292567595338475428510115716477381721251692851361844276187714682162649116836398701548605338193824553532993901674006472496180322172639504791931086257228153490407685773474052656553545276136950779665442521431378657667639050964120972292717055290529779261000290452565002833162301609403296427771842048531117893533471946909790540780625871154834147015635106226855646656210766970814171500218482274028585107153374740845512280099784587163584717112631192516610237398071665274891830259107170849976281536793905584181776114290662360129031209765876818321380309713285779422181561207443299889911297791156400136249427986133999626292043630573367534366445835170621414010799564981550951036767255578249543718559750482496139777724679383206930361595403759817491985250731791495577733216922961892151127716605269385175548944658148748767981745118590373834328332477758143475358678563160640643263257400244044476644075835235281625407860369350439424178318684233082174752617762718780192593388217943706432070386856626876744584816447354849363351273302392272011205292467258394567460299892931173608169266222270371334518479303461060554355697945065321336628963787055741839268310189889722281460694666455227427487246339266143809740381859858704857695598907146951920786394248827481590215667795435001368491956145641248972449378681072770783486791535969797548556065963467387841680097640966630417048441701112015531798203555252037704111615668463163783463187306087117055000568714394194468987072286273539873655924835427803680976890479549145155577517237177231791208299237928876998754934563347532547941738160227227573669886671852807756239669993734215868805536857730515710892055887258574383939137868750681397782557629952843999456247292986444445858308949229299617659196306959469964580545721310003177959316825777716982387834382499263603653194964756517539100528504761848581946878195235762224168620084228393253913206802846178038119828914427662198380044458996058437979056262756122856936457737238992313323709635498173988707849684764886455110724214152004570274388238640993889601708057825003997861948076369799729561680379777205581107765104319051915013951754322634593815322163317187499507346525630097120244565032879335752847549275987262943067774815965369640418236202975996207304318529793403127669262579669656295514982595869325962186258192190910132417361981444957241198402150981686710479601608423643199275115888510913391224435065105746115457317789495723164619828728991331056901156374043129924098162163796999348948119409482992702032759789627635422485850960346526013469082039342871518383664917570693944984710066220522568001073016855265101371583533820472834226038900244402771256865418744829891726490235039264692939759402396130209038429581016906064913301435151180794785408322735777985024638238856132214883251137086705633439203259732672488470085030951051443525928035890339643452561902699541392579010114706516631201271818326029777303393160410342785566495742346997249993465441725010583280235324317447457878489591990532562315340860967436901381726118868571579927101967024272322734890738263802189261470772205455902293318961153801862717348030558519361373706286008874130853064055821565505705932073750366595971865013757597938193994915260898046939672366652273874101513657881589992816835985985558097771760830922352472962849427451752233331061820706299691110431834646718704764186157974205615949542762898186792904062775066938916707730880628043390906642314552792954329412595599687072304292366502005348055765440195501661403867546010752377425105189416096371070529762865212736934290700689131670141157123212543700722727675245772927220610363104568808362973850774106688925469889503236502558526968775434630299590214877150985174545268947016885329918217325046780346492734730854378612772094088721483656897642374647625580937246302618113078655822790433033309335126212953070849111660698992304608869977914500335044911497057922079174657649017151251308170436634266144194923231324968962756325241554613841712533648384540749940212355674556362500338838883448983759309207413369552076400249013714484828205076434401348897056506823490737706039309587553691827933834971139202479721665131208723672137131759821707779568664993111437030217019284536659056735547083299146947965964884420914897234504012623527084009332394075076943752004197906404283614692739326617504185477138900269054908813096627291245953262800350086864482947372384475726269501080564745324109597347801079330211471258347971537987105850871832183345252165593978173027253077132923815692666853084438479112076749594016178031194186500221680996163472871034642006206284192394058023109513085430176513237577057441226244275401036582028207561830861366643715053135979497240394237487709228282762418916584392641611501636827761852786263535165241380200662730604258032856200817586124616628791039371732742522013833881809484985599547239869630621093863636501621913884722439956465258197043041220665763276731824749795235936243838588675582404120746969076029200984189694700795079052711297981548767955437895494084824433429261952175132515714080550119391480367363541580753723528577011768620427259400545575832076589079013563499170106962033929430812913586518053609975623274630378807114148914179613066587467052973701956892793454751568814311399707839597283746365205136679907378374901226159063891604865257456044183108342520498432214829514989078173468231647074028765585407426641683168689415919279286119681829337041024535103103502128822265722440610374472454458485576415031362579511868713706639328609445087003957160315756258183176545583525586032751068860554076580570516741620473028440958584544403862080754815702955836068619636774336062151650340544337900531465004691439120061229258997900432769689095130456365038691267136808099837306064006201132926517988011971660977632696027476722986612233061994066135242739541073251997269176128335825278949186351853151323175806290988447917622663082253572361201245887637068723427493580394804348382119588341968489054129123089745779674709238917865722576564423353462041080798047582348818406352942622673452906365669437590865811480379180687367671248101379679266739053477795680447695369605471070788298616670718066537959393073181019881293311665129058135279918361196428603680160369226201964486522372465270617209173981983955625772264774706249004697713709848044332055538699280213577493572415549325971707426218307120305197757954949075038874934616854969747268254533898397767326584049667045318945438999325292464197011868097193515164626047100502475908439817013871583500624969381258861872109784516263268976667976028074261038006083448324603901271314419966102983824865869820390442504721163176041779097721579873434390007290679532531981449925466039341278107649734586976354224674760630095414689585694747188773814342947324932673381114206035612300959816691067175317974872711981698536993959195444137492501284456870414083069349333702006270431946716972686202373441560317508203588818130439794482224394643612354912145226637759329083326269790352166649757364768611314667962226882949277370442384220015505590165065180243009729552231257055404737103727468013879444621250279853009562183509030170293850102897647616208811285005687909143567960829824631964069187499012719114511563697037087569930574459586370711649076440268119175015215076125500603628248426708326313504562988123108235388457044329750570169757376129392211578276533980626904335520764705752344405235440889743790645111125210936163289012103932756171164528707325880468384728019587811282710532800660028184070779842053274121908589440107161171466316810465643131117683817188397234605078595935404166915315897833792432116324875902432509594342332237850398510782841658193646175310282217560405481519362916155555141537938206577018390848735622154104512972423272335130992568153840363305901740637855352020207065913982059859851509899966233925566130778217976354944675639929242165704053095630669785639687230388909261829953029435110870137993475359214213391640505955227703468080815163910535686504270133082114991067380532760280028425569837281400449115667605801886609987380389594838035444034797859412390263888669016071213761220265198207624937771249117670764664494783761403269739056834832545659771570340349810737587573137071666479160474411707049430322724058237666989370660504853957024514136236713013194133478515449453163016492592461644395079759652585395049707243839365057247678412965665255917636616557328057370014327908615363146531542144644180011641677064905329966088260198893903440700285217313875889976939233050967274976609031213578085702137983489830566274857609956216580019583404237681488387816616152201008441101603711049650756795592044427534375928007566708430061373041990718620934677369187642657728617453319925316667596052430831074146319928228835427281644578714515075454102516137025223023380129025431347868826282275248614064671288410994482822765375939818683316945818910172903958763537207703951144624571017834284972626835534141452247726497391128118807961804394183367109077868373787763667488078165872147673441612238846144309148992087837047691016619601465312203806144898173708840819719750261791454705246904303871563849676346324746723524229510355822508995943781496427652539076384427955650421331625031761238422356978689316881418986716901976733645466740849731681276443486984558700787848856123348704106027205478844663787112550247306489054220628896267917373129746863704422711459470751003306829581490701954415176389618703643917154310648139439481035887966573161136731169944412945077273881276607758126774585459240394279166640466133995439477918022532956570627740132933611817014824881278712039368836441758371759353711370771026184223297567211316360133897221281864812733466061399720082208040917710757591023250043091921657663474913873070700148027470375804827939585967476291390278861349163954911020677959898434914340327264716927680576983711367109105289600672371409000341536888246103575999862108797133316994130785450759266217407079024524288379649764344777967929413194216039268962923859003610536842828213830568283163068647756280312810377544786248425641661671506920064217479199923723315248061309304996677048393078844619792424137289547405138005209649060096467719460974753370859229575527084777180990141704312685838498843034122418355419181660214695911798382747062001324133245017432436325756436255301733566424154515640965065318859104372668564434158540584849808107053913991674895044717170862122709161459018363497317746738150037701766396319685994257006891047049922223613495511744429090236291541498661932080750513952336637395144043810808860719505849843110701486961316055031654689126797345864961342076356114761227947674112985157396125534498857697747101365628276176020326081443219701518758543958575095650228230060151584310764833067117204934285812316126233510411706634884049270027699710225394773168101879764160542242964404060209852286358829104690722324023465002163294431350501083947873021566979518352479243141495835729331254789575993044063948215427489727047346795216534157084160095319006916711642444298264887041459716746844835303339297242592626359826288288145141004212715386729344455121007870554611004518444654381445205197083315558489141754595079421516971267039549197140729273755430293455206906755084668429033528763742234073338932651555430776182622660694724049595989835822208849390451094515727782231036073224480473721867071282052867997457083929291855377665485632691277431732025149328223473871806993673892237159601852785092509613912075096204342038679086588039007357897418095699732251925749061484896203599900278441999916930906641460625935786809958422268698722035289160405608977266205109343139829723863988161025206285367960826741382926547665813698594578067896930460221571442562091425854917673770073079309216825282780063818732130711295325468884215781480856004286623999033614307787984613070433047481736764254089918169402553064874671737113288868624776284273704430155846998667453713998291740231250007551783826713500483945995844178520405111929883299547145782565233488963162110979457388382626100292828848533572372448299190007347612580866763125704068197835948278447031861204670649635566321723187210335602149081782598895806020499671359301639595289511058921772377787291242029503727073263934231797395182077893361901772812978994061653535213042741761373681205849008260657060751000716559300155383432649165848855738990806540005032742922752702084029120788887354672151528497903371197530033073409314213758852189928936095295096930382554192172673723983897686089984869878128448431895277797079354605143164031223629467446205519609622613264359080028130687595661453539247647138726997456073050695322143086628874950313022750380290634856997030557712112020539234597622958912489298510885986001125838141483908078950139519380953532899444059974280997917495858526780996357458605085981252857790011790465459289256531782012305487007208218096375067143826440630986445200985452904158200701462991830563081005746875258734655201661430790796943456791376192172162277442468713173585025712300290002888457485344652382043853182063210908052562935599484753444882888690386007682733226284421781704157837927357823180607865823692664350205889791440898703980900016633103954937651598802650444888209523632885834788428268348216720772358683887781692732664180866031282509841758259840067511879942003205689041935826058107711952728060439250594885679274901191431611137073637561038516904756641927557548836309913319449980840214547407168056224797775112246447768363979606592325576508762209428019934214446882960680215255098538782173759371098669726243142815111114911070347687602594481736866376104280704846421350124328026264958813554949143122227083799126474857228067312800818214254207734113226212864071412805321343219112785132007221717596755098980804198180678457088612081937581964169498719660358564197587187873388521610910149574767950073047125485863923591919112869406641577833011487867961471994604496482429206754640495111842462728412143474003841270175046654710447326615240741118797607382931090325522412335694977179986782480279466104661761303090043538741518613991048550180500364629608689704871052532969199430209044026716165715941898028195523789542094460836037686598069108358066123845955612202981190369595096944954057038350589109411011544462669869376041049916202035451035633317320984308079752744957639303622275058441385772914421105943578639002420228659038701425564518862130070688929751722702896930863166396071303785986748709796443152838106794769028611872593372054286467120807808612670365413696125746613228547000431472416986331405443438513343054910148099563523471741769687988786341244856645803015471740671502731233005234371115634778169311513935065993237209213731081614834661072037562419277460693903566737274080418984541500060138350149694506273907009737885866152849586457343705114234078228959741391965882090707887296398518357119423633183729828307809047055283777872367485148772241785575675307691775056119770737575370588017744594824691707692674968771512015573661541816712355822550770212945765396257717070081966254964291358669754388741764455082824797035264948274407064307772649067655289824814655816931076431832203252748587765412016618097393316298703591230126174582635721846108017918003105181610559952575162244327221843082438764173550434494711681472948361063659810927274323998016526206813498416381947827751760358962085370529668136257816906719938014994280698149087659759217263697572571169879819503932971421001039737152328971019774082748432295982953593140225214665137307427757112787663739048259701036249935325142102811695615074292809922155732779322908191676706047972413606018990741086579956129619654593569334333966506061596386338367380985691827208705094354582411598704701402962965934257839884796088080165700353824881817803779699643837370431720964920753492906657671020292678610225732457186410479367297920073010159740063815799125953590793343848594689606130617669146543734243962709183845555338156957300719313595325492757051883784687598762640057728549504259893757220009322189893809424813126910644074604532496227467589672336359110110373625970476058090262846077424408989882554012006737171182070332828684566320667570312515500824838769685215516396677252907083252401556931731904698173492071576491451348509160937104123657509942565905484911393842114436814663956377031881041356656526102975093287132035430759029238828600483518863472593404485265038456351182268348423778424985388015783810953339590244042438930944873319093266514500332942019060928280305581276811929820458609187784142535895276462297704681584299332472490981813063114336255134506117900505938856726961768199296091831730684061178009996647765314809889869258139814652976436254204601386972207213608924477721103932856793624139682470696463041212140978764583111685395378032162390826556924798364363054704866172826052579977271084824763676784171218346699933486922043932563872219920703942263309171706693203894338686477753904536090103031673392291576400659741874039521702455615358745137155898344231628056109134496409538367181449600050349496965183568823399585799954024975774740044301018795113240390611474795352448793990105315778563156651543423545201902657085619474363313580373016361611909843449275278537936325790243077547081017965192021699858400661932855230827911279139327868333779044856686373245194693545618005218446705656771528926434875990307571808683636814311428143419953006418048276932778162913744962139746000783705451486434556668698646559280397457570536626467009907157217312687646213017872786045731655687003472289009298561910673075140939943203953616106377775736385387235350616232371289310115598528178430454152488277115432442274798482119839008799596408685391766136911104738658397335324400351725501434789640337230562294966745987190963387690880869881834060424857368955465360024117750772432032095566630731717719843057754789948836574633643153716261169914428573664927808867903422732038937042851471064641823492472668966942129131986680309023328663450018935244666151606003736083982488405207734023401691071383241902521053186618952900854833880246312350783691566493432410753957911570621671005248455347577332846244164385138728291635917033071303783944857835731280944333968435875555287904767176602123718299150439193747825965890233387410086595122855489550672097248375156581277077239271069216106673927927938341344299140589247021202465734609818106091004820485906937348137213041128405913150941998230588390081721799079892291500226919225636932509019846150439315228985121458671165001301650748760466577045830056438988639945872479876065193567977361448479723767675735082731276580313064769068493358953529592077225353080929610541681703488501586069898252906044384839462709385617802906321398074439725384541072030418812543407120859402337746852336722274619698043261320611113175260384056018615523289875677619041055856732064553833788642942864640468802533887648349188260793370762605587658742046331869622808432991318995695395401672690816738232094892967728716832835140400125477933704988639875792189902162059122803965432586648375123468834797446710287165579040932910654652912870790059090354289239511099357906225926523422529437775705544054429775320150764835459274232665373490409627212407453459103697015658795126366357095437518668048652537333975206225900351136641226034815740688151328823328377621887623041099200086543277513731819838100580780498301944704962405246836010622227424366541942312668001090921671442366237116677443876386256007545384511498610172816608139182346698432815571977882617629830860957209835325262975286231776139539474915455356518543103798056208808019159189459003305530601104086187452955803801435144241708853945116586247767658762646400081783235049776944760344076603879736057669019738196557815131047485337954629268634021234917277260724073493813814383689235498521686575466388117463316345908662281301255838561912536269790451124972963039955099733468039021449494291918438639072318513142718477473386895526338205645805037045843253945831453028954456409276128218623823889765745847069156481380400743870948884892134021357520051556037527180702949488795673435429968884307614858055710794391714426423355425137311313211130708830710642773418196079019397022060982181390280552588751285363685378556922682750832843509180778410623274177594714239309429040060063249217462357678581472355915359230425923732873430194891927364456103144970396465787788056846294457478297462838120941554879185884890212211014612199815568373475317849326166131128406200546844912734583737171744778607414968966136091214830844178496816297824807114515737916432636971824515684332198043572946648723976445137286523600771833514207263591102263697235646689244837626383224830484447369784863245760775617362098917611837969778499935326741424390908694126681185988270114422045294790538928655419547438696797633052888822082718428644937887853346790976476933762234278837167996586160182379053845939525514672473741955156562539195771844313244703789004668316133194183770278963021065586607378511166044163431969941931914893564771217655677610681605080527804966402575706007860326349246050669376813740448376650065343079383458678179125501240115737152006096433104302537475483816398715650110381665643098317843856762965585816263438590137091598421438108602258481739550995182196263497691064634032194093707494693246483644250403891535569271523709142865680101854153466148348437593668656090030798163741754846744644729989381318175811202309638652982182117874552835019637552576114240761037105496936744061914727251836720795954081216153149080396691421862148185083033074124952463166167601580388245674404843646650689298907518039361854244719274032663496350210664566139503629828647942354994342139500884134546190062694120751024570745522014065557004565646235142368441508281516553110076374061699123460104615417255842324622860563124814120973013605843282064645429728856123488213465032353274317998953875235263958877359468952959682797555332653098014699912955551826519599502624354943205252104541341049736320498339674103849304043994237757176246787627912904491940765048274905910700894423526779322161650109024713952755125274737336721204699898806115495075761651408574954195493493131043986690538343035779601960809991471410298178055106949635045853426153582861337598846120208318433711001807577574185121050159014185077159396723794290212751311264924714015271383121713849188112411980854521362459713373796322871829737318671378814717038351408998464700480276879991085297294089634417149737250525472946320282433319137774511963829337776621996612039184421953431528951934923444623536199295534583253986964388394476348661965585046919116887954295487693526141335803891335242574947385274882184821948691114201326249982536508984245082623598827557070034277401645035544241049635293164924001236296030217649510667556641497791605189313943179250111589226217108493976374208133026715162464320303124954102322168092649044045083088797979588293423340637744069799459732744891515155125185479478349868361851605193497563963746907373931811183485999312509623810783464811641006912782732473625786972344286887877904776322282750914458060557340552323903877601269556903866456667997610644688279784922065509087661037267303869605828347271717622031864646475004438191258605329938068956372664129474815968879209208392265034120150463252390706555972852161962840859937772291485757275719365225177062554280347010636975620969087462080258208352365672823864599019176505831622055307923117110619605378824176801982117805204449235400238802615015358760369546900776252131496075321249097357714271527887422181625995905806763064255738290837535808540430677351911556429683648991828456212355750833042513401966764192246103010447436059944812727542472485519574282490660557380610248388098893047779955348270794371315975559118374377919140615326516700881592443422107846751511377645384504622871473622252268422927581746219660573694408699728482473772827206360419987532187044990506060786098267991673164256159361463157111463797651920559245540115283863325037149090069911304412146251261236009881158012523710309254937007122381857329114910314229834723945487406592883059577817648759724171882174246274268984912598010859262977620542615945726281576642721380198316589452257149892597534005169897793228123244562822332287731590373707750180306640125268888697141717833499430719867146450755933949040084795388547554655490170349922838897486917030594069086990554124312450777131299038128123906982578776809288664740960661173855173787491894172076892954705115506950413039680654538995831695378823088997660086900816099998212490365196213340117531734552971346648622209382167838863269544025049477602174871722157643271793851764364138138130182876653424762887129419817509014451346666360638352311414549168693445765765108052172531087281276976382787290693709425833042048201499632886495987142484994746294126884292463399282792924374782762218889133924365429315348215816043092660734693263587676683745729280621276263176392252991850597734452837555848727115418333673949822246153728251711080990566525268244695822849405364555922880919911337388636803198809591354375801087973727204731629256698510456182278976476032847452877807563561844094988917117534508613292602764749401809556137066155906153964856976833800001591325529429437549136183691481436260509373191438373643348534273001056724002530466796202539501914750969498441907363474808298146578493328311917664206164236886820480149041825192161324994717660371165264736811114087965875842910493447292718087597142229280582931464157760613276678837896937028269644632165034342157438647407223716057955504274740784782383873187106922351543915921189978643358869538633802712584896793329909005820104166415768122274721015945833336491500187600795371881296662313820810900154047824427663246051343630671853357815724448305458483491604938959865151374961331612498667338927132387612080754012526513804547784217322590517801083742084711053659484500480189574576275549965636513854186508604768555363567392170715195835652987651212274742870948440742437306820090615195869785691805989165576302843570601514961903104724571352759658207553258548950981293793368875904201742608869131116865497713908069700041717220340358237783356556262744940572050853342017431780633189831255028053891468834998186739926334059074665751911351508956102221782564928190721931281290066445853622217355446351906598447628546068064378957779117066255164926949293345289934801185509715189428448603807916702922909511259033748243600372447113626484156803049655140053705120801777711370422787173587365049443105715896638900486095638819333250993945049561987389601811967436272904775143854861701177874833704773459738448952256374951571527564126288433614779185435533989859802127061360081106325673570110162871800822699785497196302742318724244777548366382228507326603902286517318534517736654410606001998072316799229084952292432273732454613750069057079348803767514999087718220768895149198321096161626175629573709951509126812988701645292977918150203272731639762445591957466204253975521978558376913061271971175333529393236900226682684351197729775075156760223162602588253372485087432327144026300449956838745772811895735400892995919117409212149931712802828531364188171441646032452777117241911174934888671943643672003839806564905895736442118194435275092566552469416915569830062777830268125951113495489314876920723131147005792134126041523682568724712904672170238867149806322811740001818835930897572650722872451619214562494889605547734139028349132094660535485154084103762964548025623186235954031219709537843867950776612044486156019746642248150347708867931250236806089833579124853594742148221153693208752760952468286911034014746578939066398842351938234245132986981956577171181782915924881151608430408048154855590423899165248197369417562730654547543077061312743329027254741997381879275791017865656903873983923242833583726142161655634943676043557821116294039802004811834433324393505885834700649239826582713630040242145795928070478238904788725992761245710444798481640290637803493756012186162515185430827349420628775031959141873607756710210659613559600644323917093636171307891335167971573768093551328384606739638943037369118795619218735254534716360354670197041167507115961652602836592781390001265836082970317830644677900836133020072141579723410468739082494662325554027142816127458589184460963593754104001012714398438330728620657710938823168964363309892406799442715449201783461726884963765074948131522789371232289209210688634423749231051623475522573899952048470562802553517763139874119095534460647959534131692412818326830561623848514864032791545046228695509799489259025394584179776369272331671632411346113752015263105314174501626934109722955491561276862282124429025322096987950660131089498575638145874538905989971189999046252654094578521794288218436515812478877346469388117409064280937128867115850265970510674664244347459898647598840457262839287866096804519668840994057947609573320545946317187383428356989762569617826668269358575991098178288717802291612291015542184665811985460953162900573875436904027410505670059813247809152497575056691375145913231538397173314301729392214782909209913338498972570289091539404141126211122242358883381139220285539579406831661875777407732465775935358754418932771189400766374634882727697456092197497668948278642416982029134370034071495911131866201420512031700213466314395644244044184000105264917864818795421965656932187320076011591301434715183345397824069239276696353135939004159569915598790225289398861192835544858183989039676205024474797499581264995960833543843360007310218692606252765689210299346240380730739821980914215449003364716229473483505043800077918330193214491033620086668880775971230171591767436323874473396582214371865549040040066670737562767458774356869929410244592993209444592506723245301018980512595753122441477473143557115010417148408468829565469606299417765296612394521780870371228248762283751411871630901871439909590760567843240789751179862646421091376979487871565661295469910433008529300283623235916629682999653288672436927459784785006701317046534241652254092597530562479019534333844010942863013250700595717483180949587131509170995150669841035447625216971847568386843407264360961420909572615645648944378946046125517768388344267348716039342201788694183091499949179651827495931561971948305515927377573434470633480603530462237576099293255252890226182110217352540906636029235440674726307305692255898694813309797902843384157699564702275051660169222996821110439995095407612926849677008627608431534618043252036868856280065371573354227903463693873849020110168944437182147125230028887294009247626327423609974799423529526430612766861759381893010147673506696618283224423794277467862813800467893663996822655288640718223918964844019629619292653021385237671021316930401477943994376966079636494893554146158039009403890083447304591404667598870579165176190839715659762901812849337532792235004874970290367204165780419040548847876254377307118276533395779226671353331279151115874672398595332629505939782890076884700866886442706534693180470554100337295367855152310612510648387487918128714617282534096381599502883994481229587804679517761899160041487264660743854897151898356666991359848116672150705075237732755737840303890202810081808811152606879919918612582481972198607355489706937512574261964310341323991695557412247542040657581050486117602033981225059764068778614778614759532315508012540202189876019325678348278640526613380383854430926380211360738564942568337887732296187925864619963559775678517362534426081157117504691483765671682258883064789116072906109674988670544214925342376290674064365129578448553647372968256570449867957384328082719331181338864670806634723365482071554724645391241524995491896650771687773961701906089799434761747048526176436205342961608458271956291285192555284501196267155271734054127415173357508400006857166652943644563821104461229280096056925288287037849663558160173243836081522418353368010029806139890329615151268499509839578753637995874691959058048642374445038508721329870321306403776546413617143400553431292420936208681012175352476382379390163751993161137058295868295852415270216050167730945096215296566466376428233176387896486857733452757717289129680883527719280145638098416584487860873444781594734824445716290161453724839101745028432660323864407953073297190603383181121898229658503236681035750442091638342550207665003646816866647154897869443228519890819129164449129870716969493941416224974931915977386235121410664608803415734403654583726631847369674984174400144902776871822042062661811998651188481898069313545794875715200583955811529920488054012233544660836766485611833375192795943343608052717971533367607171637766589603877629278887421660628158445753056980574265642674777498431105016693692568503746874056747635997891683124059699262802336792132991292255706509343550682772557945382008918093687637384665959555747216042786893345327770619152435649835396088175772337697529046587142765139726946527494000106423344491907586005767849150846438297784609873251435316727579185602282978065140308973414774275851398340967580609869014549423892424291955447916051071094592306293165726029104828765823942039430823378070868563321457000281122207820355757461361204114920446057657758570361460700091473165681692207719376088175534936386997938845453229816345796940657248322259092866737081758992714793972363122650960429724998955053639658993365771014674056378114951582617469318693183807899647495319151776927934883696791611489503995800063209806679375880534180383725278190341998091826158487757659817355366684069730062223593392990267467639505533274230867225023650494036075434398735064190878016873143205544842875150513550723205831172449456203914754831251983033286101998305069084597338497775349259184659410938131701685947209529942619949249473893429005586171587052387563696938355730211751041885025947834305705327310632598376713367123655383745979027717578852875502571910515911096792140525650586554697885210499664056534416220906329034075397956260897183603138078784814568678818153395051414498358593445477962555567609701679932678915596830838277780821564779949968830805607083430836912932583422555507723817021676567267613169688826602190503461089804447517367811266136341918206130942498171558082782170772010879331104844142263696323473769500365838265745371418034946530442177712484683701625775161117597271111760500432866123626497714173103497136060002759297410339705398828448678503185395939814702773882048729715743317095635463572150063395827429398605145239366495995295102156016409800042179255623343122348144894327563626312097519354126554121258381824354701215697014680765875956220657262458409569083329903785177103980200326479660196638568188123980578239087483700697213553183056565274302482897820343758730171229785132435159533282309960569624928250677237213810559786422308638404414794946341799697846202802393691321315165275282449046344481678207925870256511953628053651509176329165693610518669376465047188237721090394067734642603716303832157613526635126107603703586654562572116168567595972712498096389964539826989551453620338886293646716744415820387657369995557486104406105563647771136320250725999722141767638803470668582034566352588825561821597833674036695757513744598095958924570784005543658302357772698566364784917529445488176453672879250107199513867187376284403343316117625149885841286320098073527076978215837500172758956681808506871233522938680444923959978406404945824111138554405340132038695694224720478167011144295469522327546025344244939127799359204399286625970991079155841190459684218150389573237726275147887313039552114597204507955965996993007972481541999150200635909815346812264301235282473063735730418887592380361912278963219071299417102366301463263330646194871079547729769100196370710507703804097257052601217448593233521945865134166547877653623560403084371236223362320225558174018892708410901440693447076577281739780955201501774494814159420174996570733440530447403199419938828451097726079034766916261473843475047062691953080209027983234065036869833683060102949843114985253535489275706247745396691788506278562724769526307596537385832923171853028737517342374851504774647452672436671204753852115672827790977939533042834859031190943184181636822606340066487328380301786424247822557799422686259802874659069726494671342857291172877811662226822846171457098963154241427599063747483383814970991806840896377763549242880496936161806194916228144266513616610055132602606003325155316270513410997695032908596652148226108067039746871967910513047507144073604013182925125939290057257993584520221135237340296984648366905306470153857615429469579117409030353790628309228126171757264440774487829965236252250411558082657159136530827084829263215929613632508933170085087235536300558211655442039526684637790897106510977035489816147625066122134642722044568539250397037883269577540117896454570036582444749028996798496704131434057451559178532160674447623822435245566937426842038593144979438910748262739864024349523723672235009794360170774708891981948365373921357524015150016604607395354553531570841414764754291751329630580454627935833758342339185626660593411714408476852041378139947411718494711627675529656132415351185520184610904927532589523470841126447334677775272056216707934716827896698672136273756056894339282227434927586485955253882803172326662436181432350515569066652864937896110451690963249573135628466497446739838814647547150450157659389547857449546150891859519603597363634368689114635421935204247557342153700620122083428939523736975005355009229543786591481465111214449052979711689963508915998497753355347895895494153911812855020542844382487520807786932970050534352727488803603554931532694570586677057678067461797446584000566797872397605264492410442248356294502347179781304488915938296438835728708819308487789194912770643793423337218439618699665815489467586159994417713769637724510761463883077297425890175009287760592017249927049792585210718978901652746985293865342908366361242358761908354575977052891391591865371295055965845655485735225734783730329946084548395936995503002648768830900690212183337626045739606679057586211072519447669270290682514777435274757339452843069846088624609410158612697947827932582271498474455830508346017720558738165505591758116642164039762693618735789960171340131618745554396176093976484206193621321218509481118577642496130402561953511689647490042419018131073534493322241585030102676897023908124909629392633426963745184132969314257289863868917833881559737878509593467452009414988243457816644401611355760675902945694686759587113430181400976469451260786678919062244016110563801481282732236182735756520454501609098354808519465104097762783477212378208310196719022756182636317659077524445151479506348384681836055919697534636447141401354195389987029581297807641677783724465801646637223032423034624792634897813897562114320456401854648725272104197910411791198833149048759391776034447597752134238996875325361783881981592776165123547039707545081123781580884174501167629549921012548246695416023843957692229429125345624716008466566083896027962344122714721073745695866009266732438779445257387776506418265737158070039560220208230203788899604971710907052280275516932225728175931046419052878291524572128059572855106603609492970902274351728527552135544948092695079337978463728557709522577279529191867292324294952091124878650085773732471499302095209757655217243501209552182319480766179134021251651024703214525941070671615836153386950910280681232693917406209180402662277885605756888246756405134372036723975450733157267073423363849766379471045575278200763527606698525942997419912272228620937236206766152560426575847106363833979631191725846527136967225147038697747772388920142166780060127963403325341763726265995581679232307127852644254689926092559922536965700781450920755085738898581468713004111166045896731282433365966000726426290605555819245900965485324172048983147577229744368928491160958400734919500343984170972045927789674165798564321985543207807699674381808501206007449023246287029599683530736177295765353067034310661346569948073975986989586437554220345954158826199852612744287099201352063645642467221638800749077970394954426293153907648645213467083608987043528035168664485921443581843495808577404003224940260729285444997864226112429740263254046352124661679209983783895978467020942899263078944622993830734151541090304007783881856146403027134059470649041645788512572732651539460809732050540152280041084514106374402209220669445322038520827249843800977558702593330760741478138169615209680559050457156216437188657605637504510195690081435516696347751900203550911365657359849235133598501361108196356518242273055357032138232206624207395177594464955382916450604515583515003399807565057191132977087046715280036430294643898833528699839993511190332933550004603625921554156941323317941405146577162968574098026335200751683972918842665591025865382604686562655195515055510841388822044783763631709189420048899531358925764971707672896406959086423471917137073043721176999922052164727831607733842654915043571074520463243192102887480504999703330393660784819410121495760880958449919218575590646114982241966433586183747469942193316647358521220157057372613929859845182492042752585525041598476842744448228417626605039155567678716774991093475434535007936667466966498699794114421385979686212159279118426535250948362366709128660529305707771741238865725558842349423288267337930556107977348135616928942231916495427443363072614625997035319350567879179715534252678984444315611608596502867876107544045538296900417548226269356731946517168322595343295671429233743693138923738683110722693452669363934336739857109247970436787755724574099567751695820076647505419929622424884315228170173398086877673206101090907481514590444397860770903505743865666592171213111921611454658574744945956011702165606999289987659733606771131215586167653109684963466810127279891095658588733959917347236072868791923082760173728801663962501147447772969179606413308236819710775664655707991432577133128850663408366858658807267438455775352686238454543984193633754318436974723657708527285277807152928246431405941806400150569437650811412846099027401864095183858827461762368189534420237712073905065516104636963632914563681186926567048159511531740844660177523568944637787172973199518985480128890877465940619174414228852128912688245453621252251027243357046511654080855945988035866328370476398488061962451073257378840064519592990479281983930853503508287970409471567123336705089769607226553660142429525597220538428671586843740536055603684944021362749337263922450191922334707459068396555491144463036075782314183975228546023235023560871798403303870486460046927301327889548982026799185463299202353098680774563429984824903950201046351810603357235024926844465975609104905934934177611304200319707476384137984545666960007678201878121038044091155907131458253767143880462532566311979150643493201280971146967508002043112334407055062650728153699330580803459277979879800522364140918897490040529104685974203504958371077379875233258403443360998097118610530865723081715212748046570028659776048382140730999733790605476460649026568124944565000687017921727864551617707002036247971746013276685735456418490525689981691498566458431665789454406988562070031663377183311601961041532381028196086476254123836492417070376820076029957383822913972410088555154966216647829028517326803862887419408807601510682110829603695565856485970527064717853973603559206672568275885233957875345499687697752285822129307755804218231565146052614671305061202982842561185787214771900637632047954459710122743722267272985718320928144239262041548251787586419678881713981166273391054445620424328120797154306223754326591642161338271715658391961588202068867257991056077024239366343212940057328731231433041455771498631925221477073311930345138113019859917607568992430895863859243706085643480459336186215340571221698978467220109732558836320397939715339204013794894984790503413133313860699026201491879887674892858425110900725550143563904245461417333446245576787665634436399651089799081813222279001785666374760606336440507607481894950692775551352732831943550418429260247599754638165974066890336730694535096839031667528094778074575271660181222641120427423892659161154673927105354778030701044268062751780690392447701425768168296692723058091868305785239981221541653568753468940600948655795787816712230569207839094608141398950349911781668335179601096904592835369470101460541357712592640634313623181314879905044959818597146471198403583316451160810092190861652490698429371083916744484153508964874359113482028179933085563031029983121112727689766305695884329240898239159150233347134974618743661478860782833664212886113629128723406348441870781329909562810434786313154845711656348634973488990655253845738109741275812690714591638196118233934808438110415654234034170183020901889970016511825842042075829359898199783429012449262798911635684095530639698699994483528620941423042002967813578075550227810629639494682759451824348980826299727692675446383276635817361367586947914882163935429369165801889215203941032963694858806558019444751756874683106905927198253682509257391162083224752737006968414527644902401418673979125212893468335666651537887465693413459280068578265162835428963015954157829236057054135407786181363378506235130102906649150705038507239150935178638839244799161369047605444566316425367250424587789821629468910964712331611201656629360506797600371315051645559871576854780813153120842526555139379691562635070248237870668735714327059500227632926845233444827926264580880856171782650382566376410711501486730109050092474592781685886035156619297125349085325139652975872245920614001494530620758434608325470288618165601236383332020960717955740182998897596848774548524671086541811171462170762746235705092346499472804855794767900873070815735422556145209856765711645713392157294857469045660931533442182591840319413990853204041974009295091928392017562716420340355123821601089659550979580495784243827145878317336549801756372336152657632643027860724982154789482073562938597170866449400491342650076806166313304012233871341697496677149925914878893040563979715523132847564392170553894986871761496882066178664440883454240938295251095040303052621486558902725110824759471418754302473743190866180524832290034180275419414456260473109108742596058353310845559082426323901385693321461138571849462521812617111663851246997616693878617630751138785511241843539036697279507809680117192214923819047828940227223014266861374294663116035848679091321071784486585377875681379003213996714252802312951393150281721215127817065106143153962854656361726948169964561863861868758296421051625903185715656999329501954753228488123417251047792664353307673729479699531253261511341633704115086134391696541382180333015862763733726068828097948772290037350621218972453244770857216262436447148723676662559838260836833381616213101062402566134760006334692955023687600794788705668005687276268754891239543508828102927357011631383773970364969793705918548263774918473116634380450553745678143254445972572087575979966156975690483767603177602076638152322432554403105791465246303518259651732488316852514780750374541779760048023336152848556706227179351834031042245839538577507721958821802435091519391900197839340249501860169774572297779035909523327744075929308975480574887058478049854563028373243763243844817281907085275496052038921564217531579283224517760870777479571852808626834291523366403368649108921916838775668465976119400719301412591758720737004076815778330897093143302578837417758150568706607098533083817210712610477991164758526259290120379852111719560936025231415263680928665627532707027961690162483800701171397665751455572291113587035163665741624527626883104098139510252923167815558745539618832453950683785466434635524638368851711732724235291467881769116958793559039988771505565116885953981518596424607761461241108340564494903563314176573002855609013337133134833403626414800883430529771953718942707801687926410702617293096990706383795660319930800690960630863102583150140949303403413341464890725444204710170182614384522575822705160710552509875134652233821975981909577220095073604558326602913873278638852751936567554108318220454378112301108577970848245923088864064408973350860034072382004812644473701778788563708367610290872953092959450004609484751394342300095996220052780728406965472052489282992568963011855590716768685549542586676315189447805960174582667222557289755178801866077151616733016919247026706303987211636682992540562159727465728522162855472268007744023576530650212755626928883408303136365312670652399321539210202472823582605011306815836563746972989890324710527815934196377535075235176628835914075280952438391289126726936681144480767923176534487987680651608624828031763829071552693014398767072680364236716098738912602287196664974784681487146512001386809829596031353706905718446619193971585203797642968222665975207735850500121346763779220410566425295138393584581738919073913174666753420867088900697126722882578811017098647010020747237370305423699768622976160166211699975509303465053991514726321767147943470311497505276777979688985286247576401882171862205288961137910387583715267394826032079223671090724216818026419965192995190742031136775377429244501518856956042603395914995237554968181706357694016524670890568540348224973526089333728265310848512314631953111663057541965502353409689742141827710700763392927377000574222537134794543858904460305479378426279734686387105797456965578719069223369542794809031687773959606878369437821934479890481470006391656453676450931791289704360147887309584520827742921531673010907185134712906405685744803030059055354700879589544950450298332478213390269036081481439447796693491112434428864622606824648482498406359810117107966860868569370438760626875376678192704711583558774174540112534659108205336318511419480767250468261705242773681953195851320351662571511505223705597498149334559880628105951409840616406536896109144407403066692939040435103944421538254114662545495281482846778451011357436331644903301148089228460787057936982156075418940596600568636621449873724891643817121001770238371894959536000039628442364988284737736366271290803639064616368291287219681028702324034653799527945133824242116067888297233017134204587980345918036536897366545519716768638305116329828557354047188765695574230914983582108471129824866195600649629777903560510499904819376173365289819402846019103015643155058992517075345607517565932769196744840657597022183224806216267643919611595558198708518193398338439848896425644117948279200545937602231760745225338738425169246300857278787714463410478199162919753055158120694402117248775786898026247137120423251534405860230311800402358250401370552250272820000323029785061489466666217618937940689108955827881532909572531637446701383252445387502940317263319485751333690323434984667803553729474491671134160442812263834425526775757177765008411795820413881996799311008403839822022296495424026496912207126830841531525766015400991078379502534564906814167026221037123311237635789201538536867159485200901284788181287210964169059406310494468070494497061962597094121887223294812575834202902571375580606498796727250591688842620241337315692034589985607913595369610094211477084698445167321072507145899401117775905974279764612557044847834519579636351373158398111276453888757453473826307824606616813008912183533704797501479552148370957166191163956997611991733239211460393410215283183174403086107531996358570198522819402775231622064433925176933750155717276583713683688681027217764131016248614589705989772542591338602725727941827150798514141038189703863788612639696591891089259120776646855070317136857172609159622079985139225966692971519305771723030642236371593250374994693832445767514016411721817162841671469264688461412010809035899938964045224058931586330371553972612846227251700250664456449205325979106239265844795008670015454534596162453545313493855285635250402944218397584337289826333715776243056789426013659768137956637346548336137274808999514754535865727161059499833247676481625037832142211946993096138085687554912231960833048494208754426922569483674431041479171358889688013565112771855853712821177436992599899013727586436540475739130262619422726185145417786169655321381795467438989063193328934237780856655289747313633696185144655230773346173762708532627461660250201673946022647724996121425518121662222168382591305124062384196702176699065240856691946114197845933145384701601479954707462229492810552366402583730255758379104483045992833323695123185655913022184516726739152622440582746829506619491502407095941127999515931888636687908715394994387028813055626195259768090908630297607497060546844486790864604629805616327759120665976037675904981586221935609182166167406292812813576360917656253028057736624571646146307590371267546351779333514786549787621632380811261116863961377118941417827943021342196341607569684371154256076237518283324098999257410309882973022578143223127645177700089062989251178154026551894888962235668254537633186526937639261674543950446435602604162788528615259260033018432168809492462630018639690321781080031986976099104069868465485231092983102132462227720533087594373961730578154550936396154372871414596740752990188623374521735339798280515520665353441705091573301600198869720803864546656166429858171601167227205513707571639257076187358701936674544772159359831970589831272371927547613909485405176983297988428979246213718168940698514025728843258905469635265659538454771360381445821712177311587275952453553232722221731899321254382133978882077625777776781244956282555712145721858992269433505540339844839857677725052795783679962516968821048778448868294872731976503758593144229076582465216522350247622374611375532117751387576813664802594215052236323084633136064884182441959746679307993890464220167959841079473248106231909613460547011749980124089216740846418938488495464622944003017811330087242489392979129991224403652845606373948407779936543481285286107076234132518891988601217769999553514307625856741835391316541579011492587247493873921306892352011619848089307334472107561760820871738463137115493742172102458151882123649114737327313479413029080748330000712819496640210316356599855688160957728318687449161900665899291735551266494392563803727907167249477767121992391031018091249437723254061454424326725726103192091498265674527393467171336437316379222169358326344203787572420026727270223812828343368510154390170027250367540237238871290549531459583521758725963128362319622024434959805054094245596463868037296250062177351763494810390601395709438030308237489796828366281349418987913667029665443486655681170616112080831084555459472232496492583847959231858000318417133929370630500904296606208687668223603900706440281415873975090649426074570049208080847608093584475112366682053146681057000445487108138733065985670599240968168121892452533013977860471977477232262666180118436006381442606039085055351651345377455062731786809088751324966016620499562437596251499002314144721801688047740334679276681849018113534940743786492868337440767809275401062049014470921854889858143339088689620240592017244420506536340708010823102196486391422318625216589251261372332537083349477327679735779753092244518572032531137252229058274494564194237607892133287939603458238352353763690401497201114205350327549274359176376393918844639002316560308352015095275071822076941616929991670168642948657069517059913643075172568280254868249224877472524942756821794126624249697886412831917743119924293391109986706024476866268455648080917092734129527938860112193563724396466481721689888727206589315070842670582491576938644277206774982923142342805972807664238315546569205572668314618861320553366201512155793206191982625781699123063935727591351831425993263326303730871794671296885096153814409854274137986939197679323702742614086918502086927249131308124458017147616688325732585723988654016581355112184907115824773835569691656149581851779947765356501441355014921924127679688637642350996172639780668224666529682118487215350343003394038405905187735236484382646553049411186587388917795747256831997744983512693213343157334569333798547614812438186358054076445538088801530336080221768869542502090910730141289094430053769143331492064824434190076172752691443399008582431485172373744375726976706145621096248655067852272504293647776845151598657076287397503738758236538776605190850404834632599608132374743409012101605562534908300223583391798062502565154005535103187935550628056651231621836420514771751088593971204875137239370552077455045102864254277535376679285125964263614387510325625231404372012753298789661719140139298510652264448738918694044158003391395509274977694914464418687698297794698658551085687436694891989256996921210518396074886460236630093815007322712098530920764618171870639367841686020110023869285549564994325593545378411508209595197705088669062441743460980028352819045525867763449085687832074937423695817750704924254538920291444183585984841753098198639532174909426949132520940409802110353802232861815670187357336149137685182431768752130380350714703704999161264568844967197434835273071968612839601088107884001066831875666492419970781167668317914370244004288700427542576772232898573668238161696469335747936651494532088042682539053398536882875156496479147713645820628230293947191328483127171528085024287147981277735962910167628143605206350424536306741016650393159547991289553441643970970375469667881633025244227943873299150459920351716671289142203340733624439732108893321273875832841906183974156704329608960820453400686519565009757702812404771787480672519956370699071208338910458588218911310573534041542606084453345561292264927339318013055041906569894513961104292775041933633342571670979947988117315740947953447277537321792299429883297480165070406879653187068857467758706212340983328687842716003495281997783372606978509767105158173425412704398526069871885843287731528762089221998856343551870578015157473083689319006284719370836378250726405875129125797098440977143597228539446752763843762518664954242860501937021528771905691566595681871003127960377620782822334861102360766916474548905214139631153341032356871112835590600954626930801170669766985462951604097348458128158706535569018480194286499357147998505978979666659571228780940053351927704964792667635393744535116140564636503506599085948392641329055627952071550541715364435902194012150308642156422762027710372948539503909425506332882798644095361027647746758518817365651182254309207162668340873373043354931186664931736269150309281190434188810845762682963599937870149793753589779659447846920010017350296815651272187999180577019751965321384106895653483132101871769027791657596553602888662020006619465149848587285588731139415698815191638542700429433946644349218108007050682394571935247019123796745334812919909248211973647928890284809023160162342066142871022585359519182142455515874895152766784868989283774050390323081487422377385452643980865523588902384193959884254679040931368842646487252433598069147362894854965028300300526000710032195527721813849307787507281855763580706807751559021798983187827554747727424119637774792919202558917081267878005746604042633038412705236430674431699255150764386176405909901031262055108871680523954911614938805772725519174491890965138848055934142208143961413349728311373115016779619960452346211956444309061359584497134733523571365357172433702529679306158286749716345926496179714233720857046620831048652917436939897480231021948464334855051950202298292196414965939850221662206966848083753399228162236128802210187680797744453996815912325007212146107004646025120998329184695071190352464021923714927360908426406741202754766141218639929616254664396232430745088635057964476773037706404484673798234004832072867346043834608524952982449125517947330828731428612933457318639428211232152840305738840662394454591258919355674779547201818317832745431372820077098861130816449241281223026821857618203895600100023676605724704703411473332616042773534096417150738087882464850287712658271053272442995126637707642860678375527742713531152359140339208506223836102929455933686857029097512831832787308116677789759800307855676503677268634471796761392731714729495390207031412819116404237785589522964887164987798039182658136418127417425925996567613520663393687531875608245013721835941090138091753174511104271838252066584112335881665696541933166289565752356624601783377045631612676481148681135218787394040933902289765157475567635704562841160308241787973478446888960649872902401715855960802564644812070455983132999484122884385973183641875815353908667176859804541930551493679922911306604918552840462459342795405272687493622799743038438438838552971754781336537516924353960153070081473460846517968023030752942361448700879101626092373934147334630336869371247966720149706251669691006306848896433685427627025040504901611508192528183099060007299198749342417921350536515224728142026773938119596159406468746604312784014258247332022456250416605830405632633488551005928154586548688835820055491955563511791555056569069034421205449903578151109502300811750238563778383634692941600954401854746913937919664446819847924945903362568894677071177438473808037765143418553654897065177562001891854616398615651049937679450152138993642168157968698057387836745076741354743452597352375345448088078300832350151770292938087846457667693763160848984063550192499004839666822285237535355642039373764934592028755455557092323468947517147772065836369974345526139979101227572583983220278581117180475798939896658803561473610310789842571238989467729147203236231362915735118947126224990346907797771292349154382662586534299848362735998309987456220544335137990388823796572227746043648713054536590601575749853985116100030143975974253221879105755110904172552147077808856273451168820070434952368956308483791164513904971228428186991947220100747165807356905167593331497929543302392159988588555794227335209650715828109567075181598401523313600389325055198107338236382140682682348049756772968469356729870407703928592233583951106097835885754450196212953638403149664791497824968015265125029580855177472234194631097537815658845393138316770641625967536426232942834445675835490985115080249082541286157210928250970134617769259996938714273080024934084924802585300137031479305427834444139282882885245605765641592372786058639635353506792709719008383953469461649391745651064577961345643798692272421989565932217946675885844047349829956933179544689497731905797927368376359936179646572456499236341615312298323730891550305757729193587366358579222749724869325815214425695173428665326148496130684947289013579663902783571970199158628116941990601626370863138671553938864712765535679180067772922428503049211218343442670251605826066751781159566944002026384676409357719793710390651898573439244255101805756466996061462170286032633729509676529844317882406853388681622222525464216343468359193015515214351079698739270466015964608897986464420369560087554259011866511832209709915657894252591119999891344672816950777959039430447195405690273479969084975595492505522237570479524209490015429265440691872443361706878963227781902061490067544234100476962820809500002558166352940921876431573089406787636053888816926960630736470650356519568229690227467335892495201171449552871369527718744842845572622734417585840460169755032724560386835916299882517381949317754733639809203919029554543373340950831012556045722527921064083800705337702229653505342438996835012448992751368449416494902024227215392105583803441418983891916834790850626353085261181743497894521017882749989902732647050183842736254287910015616350617563530056018149601994014243029083140104597336137756530260570785557256063439776864550295038634868895164003372517878675988331160388167323179925797554336543074115554699609505604170575817737268827520310900115838057502850077063599302543989694569636551615782580976744633760332710896370620131546827648864384423594813275867411737834255601857316936190447679879282475578061292002223912008936293509318351655046074665638033425705136373995636444864387921905619629426534920010674576609524218411410875366374294522993417264945546527324605147875605089417275612217312454898685364544325878197003626723429767894506481660864912079924234978584576436856460816178606953724955685940792184630934194645421880354350555185425665077198597816138931905805266943691820241293611747556245960916133429841631654988859096088844645285273840340600075640709692187213831610230198061993734839108104070669110428041094653195289629962206452187550404002233224136360451229732398350653244189423382839638482667795464268976828436836101059558281586474091803514299674555911929805730474443530811895544407065799799751830428400501476089095804845092687380756579047827067461236071289670942280291617972460039645687353566946513988166448295844703511755423804996783724807095998515335734613964415247663082520747758604383900798652519005587285912297581812212033123715707771177286377288624693409154653071245146872871016512296801042933852338490325993585261578177459497082459629067522834639860088039624815404636237630611515870554912587489970132280367501867087271348591180078382007966245368621555422284210571482868408570182004411199681428467621475796729516886755186625762192508049574045737465941555460672234898809649397068758724706959714264152339683971006626558284036589930820331763483217254322688552549552252147231397964067941283357072500594174381338681096016737475332630773067737633159274376010801879182963188087384178466623934503855920843695098305316078524520756642581440183603812299000257340353183349433617741444814295748453012981756881266925974528011634856097738033413147767559696944733935130448645125548617874431812833572720961893771499212403523648529374626096080604559343214232900672599295876650043937789609756502108611957359121281357867783546254628966538028843177398243317766528213818616261899922121498917275402112828056147166534716202896693249539511842967180094450015736939271026396906792088959447806552869854263133665129160960706551144616432978367409745303215802733740993590185157896745915111669941249829743845699609339651934909251329448787396968463499092261589915513574536307435466778985117148513035683336881325666271876301743716871410596618910184909095094297578238926990659783857163888916867064831725114788492949701447028314632617998683659958755686726770341662029342333751255193165225204768259104513002771834883815988524413270879243746022206779821403096201671617319808915895643945259084653573296752056188039644124536884926142792829649873364265920767539215303023760574522387858013463573909235079451500109639484398822784116951087722513662220537290696958994736324244325180070570612157484027209634239645779461261628080905015439515446083636483592504709132085310783864125742771434229097087474401207463749564414960318657640294970703750397311355168614634340972636765730957270413719833365743540279922449732167470503780407702567676278490388699746313815115425783515200860482120230837824182562320625881903407976553718589535948412631560390518437170399755736594214798432978428473051756193722347851733725752828957473175298023348256200556315259894025465137987233575665062324722756895339703528418139815157571126811478198534527961846715538649009302350984699159825844050249484406808331103538183450118041918473958824568204159180562160831981484845932745736383371158127788670605325314931951883491613032900023512429565516674526735619437383868757779187540551201568275800179808754256663911200622593961544633916438491546799442988618555060319025279071478527843929601515547356406313838992827180806826944893381543529836773263571410150834313701058020524897291593729813422668041248741287047521249392866648670183363912735630359566162219757853390121568311079238324797310507023066465641224924125555541065944134470811087035980784019526664458226829119791644990393778144239138849692231014836799825393859882296471709874639483170885641534496573493034999521461939387594186087763348707024611276812861913720817887707452451787397174126199914036518495715828969053103574233706246921223869948037645875545169834176240653631876253943221843294607102485386532766348952050552622789522294366967424279796476758480475145014920079375768928842292108299853915226182514565194787257606659031399045255069332189424419448093126310630131660788489927052912884023791907586213362235134713034291795566291994093615263628248386509723443332746942026747630010339938984187544103087159310640046282645115501127694012036111024099878478476931289064408981308374274159050728158782545919558843075197678438184323621866151365945272729278855624716019704277280035640426122867793816242924528310902978954240723898350204418723254023242271384249668300528534698171618080463485820873466978656716102537321082305551523214214371829078237058461630189831108192901552102503363637037936597075767892260677785009595002941213021688378813614361552127183022792868459683380936530087630743458942032815289145692555432067540774846528074797529154365103712214893556808238597449567199476693194991294741359787884834454274961227435906263780549730444751708586024343727960473993212932968412917583716941476468468052854606189165521967194635605117415358857214840011779377215946967792470366466977313346354132675330503998783627804521256267792626328584590151788790594944146205203150691566946657201987898927152970921378336133457928843995332152573525509647691471469784043440256365826761754340825151582871308329189791916631154117395807725234087122920668952134182650995592418863322871311762071823118618514173496764371333830218509220129606270842005263614316918673925099310883489564054231921425169751630690192998975406854581834957699957798273883759997619464761526248369064500745155412802918550146344683150594503080461392350597259269337986530374694495009608544250529099066820676446208440013674952075090150217197864832238211603972042072024778842985393142288079042121012204294400787866451066539276019573337530876856194820567138995099539842499621798180043013299568421800879496149707832391040569415604947669682264952562440528044643170808550558041330466260581894770868282339813164258484221816246356791172094243346717399286902509423242962842450882023792139087689471195953394274581195861201293096986185254336138881650429543401220494329679984917322110194101172176848705783766731909476968535924608332586890375763070757923296146793320493036277343193547026749575580550065173184979342488108770222704869336781550537408949126823162648476649497051272124994235947671705431430747948667888102877968110968057594003558601229526908769561898280989848432715806066525485790811539617738941440491181354399109525991885286224550221886895511892423068284088251095673543590184711688819932029385210611092955276556267481295568409608725377644026248425104357964176110989593410393304705471522985711686348181458919745818878657991167189158329124855218046837468226520584773669462564745265372177895317940149683279090892766149056177336248533790346834401752142034546681529731412540644236786904099980549577143713213288737529046553610542747655716747679911536087870500813730187938590446561092175932199057505814205621208828403782240201605250663684497374425925345463436574432062711588452633671190808394745008277059746715077733066584293789184138548313430504812687478700507631502460737006242494666310993453184921213069762248346420429201648639383113648728887941061354907669300832077381932947043268844390757956538509529433991273250675128961684423627578387702917360778953400726963323795498361349999598756938528717302292259142455463053421274650527046997026313157523023894969417416171117607459620598722986476121681950278498779164275337416309363768154003234671442914676005471431427431250894128247414303883314575981865013322515610023107287787565096982765855034192054146581936786708243594916904601516372332083006861671415028846557533786529862967908301055261629713972961851588847389849772124324088907599537041759615266795614831196485052543961061094584588456779968969374670919403313935396948900793834379452707217209932324196482854822250530359173894395135480155539117462966454149072816812437556350805634677790452414121120167812967309036750139220224927810730655854522202138726955294003589586593405208051173413959244266035682399218610416290658710573537997156042014793747638661750334243839893067374868625096379686934925940926644082858968654387670287052514686336931831165333255726309094215513333111103785145897903286456082119356012586949109908372841339961783224578679117562031362630992630153858821414608210778217045458207474102418430365173052737756270553569382042198721095632241307994530159023547327792012632445634088843553702004048653075433076409213950347940019691216736630508699584685051988721539757711295629752239602028553328111907689435693307727060390276147275247882983851299463970626572289505049676592066360994409740517200192358925501390980910727790873733086559143799902446088931711307716340151182190189975729382211846085819626829009598528622672843390630492953078486933323130705847459755075036322200735201895441432354813597789270235386263854832387776540176336881945026074087346353397642002329748014709418223365685902226555434863056554782038045805916534773597922872755364599823791663223915538128005057011367228674097414029989322950036820670583410384482802853449928714809070285488116422729539218944967017265862217201509471766171792368817300693245508240153675411996623880876662188712046296055301116425593915868164457320644359043675337405558938771083376707833090308794100417888964884225869996797190575718487764968560306562326468902717172767911985037251141863673058296549775532389814278139127593029618724468603760259518124160455466768680712638075087037537255126555638098116887694511550359511276417537478944780869096899802141291454638475545993911390034121502544959177028505928897010803438524000536318872800894186529977007697541969352556488483440745424222345542416469823532024335295133634444698535072006810459524906831895873995073139294941612104535196183241141541451803680108974985099974047255333874645784923522185316805511421675997164917786252254649380563946927850063850445656277597930531691735820799889881673087995581744664282895992347422057706014893786837123867994275180852958668211996507978624005560585424947640386977407776209041348016834659735236837847725807088947931880934327978226854204073700054924464939138932447737920047570253439281412980350064740505702865243359839848196189186817684498498223643623902114996236100061455996391988549329712983831309698306093642099724976684520323704267795117180152203335817260698392049840107080178572342692754778704847052434175649193961677684568096415341837622523398302645045417845018541364934895687506203002013414011249631149189723320639234902349604354855874247754280401054763649215520041618596168769507277901187058432054919376982616544302914960730908366884971328972703897969965821385659226380707065464277526718029197361778419906616235476986028510497354548587057000379125852171392071852210935441477728142414748689389420115095723903569932156298709634508432603614148425944368980428547205174726306620136992338388562404171493126403936010501645882891273948742635976018919228108811350109238701106790592519195362277555471654581550756668113125765731450355704889779661852542638490063547273113668752437915118055783395491587173852376071597130559427625605397156218076351831656007890476521030026145173236587760191044934758942955950032668939461086559057815896876910795315837561131022185662994773789020548680548276251141357814035871021961865319151126494144477558180669177904668505924893032790069988413275043142838696775138154603765365415391073721059970883527819678761902477513538257598973809534365399223239945804237904128249268868465402163393328251139202253468854477135306408016137049085314603414153669703512537735833324786842274463457191421375427704317773633264834210061238707941480760445116051144114306098041775876072416216402359550636453729994399582143397104224323403117658617333296027665367541745067700746057110056505209337147238762654227302589841132400667779540285675338723989349807147279403466174920225060493332402597142575753894148021184363353007410043680329011252893212517126108396685436580388892099127904456355324175957340443650902259751574050122672584029730879681722806288370164021046727039991507102924183594080524789850019611260649140779478762638299510580021923180274925609368659388453032265269291341750856236668974081321049613150174832871758799080648607826114919993790520871752243274618386259483826034446943172507201129981677295110487384027415856322241504423313481051189900032637493875328300589904418387152573690367204607628652483769024919834968954296835778428629721731001134531938810456499571544012493370497719237982822961287411957146897604915319159177229697147663609548192972937432258860980190282097874677444755754049587914775458840329579020036420038756634368751937937440378816731716589950119634745008977428691702939987811619978111773006050781104091419306286564601888590262051879669593883692141155877024027001984833626831903512910608763033520339714244360205422954628649265285197426579682334723566146165000736800786431259774060482027769039000241938646401326868084947232274484838915604457556028582489379554195703263661332477875242215823525504730492651408593198513076108518510252858085448497351311235881262495575075174497146834962490229240803399192703343141719687093738692592997140273039281586049252985207854984852990779291373686151394152098421887904298064754995021356855957184863098837119751787402776200421094557764958894034142058789093895995460929087946749799673538711812375205247834296681143226489296064765191904660340754994896491212530463465716302504867080478605725554124770315989564428820568096160261308964363515755457069068834917109164493539342513570693227020932787631860601366893204607335354363873677124305175955949545880309239594649626275496522825722946496361033714667708046469724122810080511079866137611705017491977885785459192893353221433100819087589625229121935397656298717464275774170886627075100650121129270094551420895350173517797545798131172103016318198159864242881031958438333079780014373977999232519082478810067284376452427586056023780196539679838842855797888728243576216062278958895146429732732865873348093567329935295181333434641142648944183928000625344159966113203584246229663090493425236420383695628298258059576344684226042031698480747525763550977069592556136536977343826405603594687155363394391387569474748834877350165734924581282388968060278964307022510486494399265193484522564097759483624009616445893604780653066966223933571713166277545675760555774647136817383584371093148831297496192907687289685400632688660753038949791868874088319271868611448862245036685967487162444685855282859820778894599158993691848336417262021779364980813563488830433003479896988844500908408383939271068361678909803649931062488100774303216414593400541838876907629535313958401162333640098853900510795938323204958904611319043051944888073907111110066259256030061325968853816287389127891536913831025879702749413890757182383277668789731753338290914483654845682404047573200733544524262572431720199057710761607936386318372081166218702273142552739005461741918100597643637065202504837835047938263598990339040106767614780384802921782168236921414586142410602919203110264214207138047557902555025862795113503508278427225645344966016979477685735049758721812033647680291357891863397768111499388120805576333648513531956850888683656375963100867673351967381784041996300490030790123022350751536114547753242028160349537302178783177032422686718420464376747301084395462497878836561340468366942518018896958761372077206478600403984511802594896052164140203468682832596303804914323163174769697290520600611089693941244634270349254664113301384148042115531969423702633233449731207469035681955517507094033766658805256990701935695039627424214563790294056015069216066791146443727983537752743801644853983030740273341105297574391783026019564103492549011225203115544156015044334846821082027094995586245398304665753791499288168904156255355983578638703274788191130757889003815714506252569649793281221727651923128823086960052160367965291807235748082935631662931503717644807761129303376071610957091496970125954487757276058184041758295171589327034010215532723538538153443642896886085330721627806408395969337093967909173644690989216945577515207408212583193146282691166665522503824468225166972898164685534429358615579056168847649999182118735914446807259546906610656975716008453914559685233500774337511863044648189125734539271682112824212276706939030920960190783299084482468332138483021391581099677410252737812539711274171405387166509337754844865812231380290863897798162861011216269404065265215683774021544191982435774582535684353506194713532511455284807979548455783921720112156275219340927514420006142800869025315732759154879701319747179619769605917334087345024313526400216470054651853722930038473555300381687056947096022510899936033677504997428598094271185758229532051805098604483753535808217891227242743547535544962443515966869231021626461742714140043834564531814461004859072059282683142142658464543877664509642789431664890964116084170116207168359909708633268937237820223691526651758349025024963959238510509454238518272378335358529919359960781238431835318445275428773954530531117007846268226440225878915292421789381239621497260012590534049851146623169591025912862115148157110721936769918201089654950207302689518663679299566312182590098647474925562836475521286035719220203088918623679603972853501954460447650511875056453043750609970549135668328482748533929151440700389869209206281213865180974644954103093343599874030898414879413109001846412418039556474295392168200264905827682058977183412975927232324018224454375830878807310248710753546509835821082391643697514837096260524437464426243459993364923569608577882025253923438922553707732201748312829186616381550779159527340694082442713335863366500733810891789548047155259649827486328968043489295539684470241945891945448240096928284442801046827617744566530569022542821261431430690531936737410180890047686577172112947404220387349729670647755479228578952764536062681365638123413474388823406342896919614928899937436896882321834200848465775005040032742225550685881229178809601743531006053188355551350855983314863306521158218843177529955809173695091161912154730460929035327362206878214688489594904760742209353040964033650507465137407574144276022217610407957261300072012584824387319433042506176139635109477423295195819917565952026514749847987472523154284412065256435290316990182217543542296819766023581237479583915358639341911698553385008287943465769213569990150893257646056151694528476369725175337448664901926984735547757053705765208920490504950144523227855834030600150251662705567635703193101934848789667959516687137034495016044072658108880688945677116828173932175063708638406633343339666166398896197102736193441628497649678221215142090074135688274361879547990618760923840156664045778967115836651637744691986220609762797012475310257034205332270214215110355568392130518542780501847210106644369429531550525957108318934534299492786815882059028404680615487208820647065413842869079277670988295106467401808269954371306462542206752377210878711999470608225739669631847498853188538038412378292654349653633611202469910271499826663977252795662758578072904733358844279623146507246827655053792836268114038129072155297647358405063635165826631449789138456952900552267713393464369371820701032129431911268358405021223108602989890424515474389595207044888012697493536162583098949472600622375042587066570988755615863445203465687395870378233870087105304752361901614315178639122518108053225940204479240295587670757055356674884751877974234452201025991412218345582578896585692881531237274678837853796463355487910226924432513319454143521243080622500717563474504360189915027639075115459214232548476658893051526971128126864682066145261410876457749344176998715231780680329786899139457515744400460010749551039458768228146395709825531928719837760346465687467369454541842621310280238209243965479841844521598374404040431455605731754435907104175739471842971948078453465250422831146336067550598484012923913467804423713724303080592130403160530729679291206223952298329090639756154617416841317572629185579023693151350885533968125491586697193951625514605166961146957480924028897934264923784232235676366218065182054317454312886601401676859067803268840597986946075607378327935078345237901794763816981201095040076965242056651324012399937659195497871831884743836291049151494341935297623517364965099645758925854609077098776502910559427924713690459124379566001191380054894372416814638682985357629353351790138238736880581032674821468302158622790546882831351859652940183836090330954267082591871101428308239623229424611481343269825598790851091426915753324324949022697173431332490341541059268232020131590407747380433423256208618945726461371747781810485710441806803581135008203266840570061948384622928503491520465272009029754538567724067486312291547368280783333201231099917744650308928294392073523216782725513461406339403719461416572299656937149641106625495147523307611602744698060660932971432640119028661424198146296187634469980561370779405812367191421145892677497019729785533209483696054402900068158200039646192154268460555414417027125893993431214636051012526484535238453855708516954889160597413866755385512986157079014401415858390948841749878802391021123599984978988066367258736583147578575336187027308434623723824274975721169537877331286816869130150424149179712670700513900096818567765363559289725056497184477172599435546146037211984391780944485220378532139321718405182760012317298416953837563006365733053288098300419232191518271711441319797537122448522460041815726108853655711166358855056949815457202778318302231188940535325425547305788210029633727003987143896327919861987184109234387092822538097621429603113152995533049975258979584396433400270050527142303609976988188159823683802618247651591323086440343430251905207258368446149126450321662705181831991578919338588117014094390472319042201185288174326404735411804452313883306002861974870089828875700221385065692140795900471685987148667582225953140363299559721164563603314481113206870908086919499285273386635004657214819191653217571768567498304878188925241180462098101977054545853446657595121002464453586604722432764543764739830612088261264985194584104624773756330683943503591223389305814631647808221238759618491111064282543046631507902651961005603812461053788193885091559104984692920160553342116019611538025452868222884933780728320554620413606410032214582866792097278821660806183476171374478026080290488130962595467593489108349284014371566180927619305965876651592068874107385023505633069259051571356340322863149811589221674169325774618016720112103599050595901797869828118042200022773225541366353288628885008914853416029375705924982089403812102820140777701967406126947842998441882081821964629511450154445761378760281822882222630427389074090369112308827618425236034997011217929990939739690284941277399739835321381657960642913099313560424273764454892275468867156831716109481924894974612281857689753979836537404743400482064254246383983684825789460403105470089544981026806555368814097732585865015295070912935504126027255696272005959687740516031287806706418069491898102847740211400695706600309283810324796233266149090310861963764254229157395397049030595025850224148109667501790560739064146642637937790941848230967666021097657593613781158327176050495819588059327514789267849540799012311928064032656775289254697595912217580848038041230055193970401356735507879733513107869081974026467883624768804470201725515969384273183174314604059253315776798270111130153731892518459039002234233401115819788101454979193173520595934364951645674021709725506405450389618163193157478689926986845396628146924632769985228214084680406563889311923848328550392327110512814600918270598174924043855203007102010724912410824160624320219093678588180729695354490634152886319743775480317100271648086968807453796333375959849412581012909939714845873683581502935852539672094263626553095812284946842631416471264221165501496773967980931605671909781893890572437838163972036873873978011709052266053961409778121374679330369188213326344644003025462005656437879993479633097930878997201455368148598109934429237837674468804912353392378441649130465332518885759902555147368931383613958815809818332439933703522338964456766593033786724159686676671538859643154647808725650378985097254896992353419996638699536932221404333141668115317443173189984411084427144997925901049453927690226133530422983354271168105951710116873436653844506847775998571518860481292378807117487700620484682184393706976640747015602823468484508043864332239857787191714473874342991978018099402119615013407758299306482616841972838597464664485690600971413354783238830842680418005489948449430187286955663165841324402299948154308946719405966919960435844514815528590506481395795055045444374290079778097042116158937237001917185557771569656164194469969421067941910500248529115923543163479426347598701185320642102659671322223650285107576249610889699318317202360822120060541528701027741313270337987653488528782370317500656270036567877901705220759802078666435388651355013364951135986397411632090290179143312072071505494933869921007151247915060541904490141526258680400845859610485020129174108841732258441141646614675715658697245736106286645066949426522146344708351338659674510466110429177717368967087520102580644140459013397779337649983109480597624437898219539121934759290592768101767754291254347445984916628794326046308933988771538994279683026360611745948614247267855281795485503439082577066852730488296233232755548812847052550463530348214780839559318333782379787326984097694068231300637517985936201926775805265425329401287061928807174295947690106083423624192286093748527873374665225672635840328347701685004622792886386897665389379193178168760124491265481317837005113341124263554223101039030840224185087898268942051033641456699427335339933948446565037711963172048042834134001672320136308726645395939613675166497248179603011193660877430886200778994252182391612368696400889996833505574057010541310310910734111157204931623129119083639725908858350632223299076951725035928916384307097704379016655379046953419387691992376421921913929630236542838793082238944266561486238555403596679789583633135707843374650786883431424221507166519086488352635006936347904956065180231914563021619981857430968879190233280899562476774881163151948162023437865971887877287952848457279564897239031505367091778546322632780664671310252185889265007123748763072899340344065892995934766758510943902519573408457713479360406077179588326557015818517496466614304706044968237732953862474329800685212227801261297030026658257667552400243968591793062350501416057108072416827240327448459273023860299184753059617260805753480692073272523859183457068726934450894598405511868689537895205365398664950035636892056493496844687679317708635918218240401873432505205690135221292819313756631871211949737429327835353382943614092798251826324778289702377185113839773172589375464006859556417658383027997026609424318123731061715384735126032460158332430461639919410622858236980244111046076933699776699228864467179112803169961647589852373993486754309437975048648858197472406321449166325562223980449059633145456934222720110286745873828451577149920126795508825290726845059062970164867426653288007354612086056021674049001543601845606666702240870781976597493825530163937565438321509961273532495405419586634131570444387714668882075518093612687695896705092122286949665252656341390223249124857901497276677294431593782907156334588071483766329945987697057793555417097921012097839206000573164162781673600535845215005325267446958859181013563891949317925121426365029965287973335038735864230767435357723195466214156484163752150305509596472983085704509913148475897279827329580040364393395798078086543724937742306507476075089074415441743923833699410889107882794333730068562763656548185405839196005932819270882463846674621725973143995778614438028779814387320133988654423093053337045974937878632490629655592841260618939419461727815633853102379948314476598392916520094542177142566182319752561988488228494698343665138993030626073481313571771047658092009793404900877856619918709553548072180835799736830945163335045112532360796162003030757870807385305113664243938725267483971947023185467519218000860648935058486944293020610800079841856067259395631983965448683859316152087079662841399776668368823082160132010545451559464983146507896849207579449664709072295095773281290275029874093259318096943614002793502426422959386519700103614990729965372916003225280484733720023129245145994610168376546436737634782877737464269435449633803113246992700644086678652892503768056551985407390945213566460145504839407394269082779201052067653763973993763534133505116281016212182831185709158979869952768239283189885216458316743800998892038718840435292480504122312891757033609670184707099506984405988115111587907110735615866746561769425922544432473455187612544057981393029108516533176020838782495978281653179648876322115625927051502950432993694459315472940732567516618409238092272168281708814771095850733198270509819363465981319352622270830585324379964321618025182720688673380264460855345336322296576250682287413068547103648128930095183276453295299998191511280811468633118501211186594776793117545746772122084562459704611515551086145992748615676233688951348584900415288456664359785381880065450435685406340925817870935805919065872798068801136240723631006988388808909955289801873656485286805514564690910915289055621062315851036436744857543187872302571142629146850718480673139467164955840707199762712511139663888969985898386089005203775961735101429077126265263888371466130614584390096836538139548602644066645843318858174232004684061008164463852588087651536696199677219763897380412601089699333069847828683075660928724830676194133169277684626174386403748257825824668536949569210128633072887039815040535318358690298832041923000777169722168975216598465363358562122861165818125879408100267843926780406972117860928712037975890631630258567795221779024993377371507445993901501700916654214785434214169220961507403832506773850330603899059876124396536787228639245584922757122182174446280965040142973217622211867945615815898269094857123301420854115064861962165894029705911576673283165242433897393070521143353516873366557075563252832668477657166493225983921246894503963161333954469403225388486877976064924370688892773239078926514532964398716526309642713452928833598510897883106352564224010373879427691248308487381066459317394415634242862326996099373901397642876499448966714905878518521720321635266780413325415657050561149764490985184650357045431730464630277711412468080808105696761757334907888028861953957590186620316810036829049067785759350071324234847944903887310028167292727213845660296915355386272552149431417506973271635691070269934285354380033457903034812323000054913144556554242944187339234392343306562754590290968330306816003687997195147641979451999161058003290708003827497913345457891265665797399398982999408402542617300058961177810876469541370803634791172190149593188674277914433106638875098600510566313534902963230060147684826411292409953881140411864171910575921954244122950242996859800355934126129673548750641287675802442812882477254589295183990366203278534776797098217137310302472853407028130312375920045846404400055384275558993755728983365123289828318418312730053459630886376611984403700215624371667524725255135284367351181783182339872842004165626929424934778543370865177520902014884715611722988089647593059489036768613068848796999548687246115154435705412152642206988635591415811570070530445801368127646926904230646210316893767602455862789780053594065299933337276010654702611626537502352098436286119542787200355341580905952669961496742651891924397593961493191251830646633000889685909687086880602162969697325177875609265521089512724636378062268397734591542686951055782791113726474374174899723830046500814071593722854695417452430439997043900644175920544201087335684626138233020480185622686219698342594391039532189435984184383547918507318399664555323175415654377012563297026963231115006172686853947631505426720852156363427536109991427058897780364245706499786638314883173715601552332160415059925599104579756634109336010152589478427723173608055022939121030351073885307769823706917824730862462996898627353695591801505189427849229996376940846508493671589984107802567572973525201082817814180982461268524646255020581362259619380169967166264282300392279949135489501790168828566933162726219581433162644789322926292865095039194906750572538333271146605530066759062772228322499203236670191743976622286288369262667057300746489756124101439506454636067031588765245275374481307241249093253499737430416350087499246960599108943375636786948243837631972480881802591767298923227527384636711911748709876268908192428057246756619477891120492979519147114055310803759880676176914951631896736244040339450936055758702610185691093440061717085201842899509735104896917601668914632658751321337657879736225306831803574093685213255935543523488146795915424631798910080884576947584727743587826507775668283779649325551617248411314322710540049877402935360548654020986901153416197208331285399556871726215720893756736638460829989508020702275363605175489455836499620972332160515603635362782829072194804349155321246879317291686531704145875245500738711221020948754340750687719125313265562851919356385356567140690366921471204946396957361716128502945522106878710689234520360681795236067964670645840286524239335706692930064998255242137349185208483532714995469650610832024985093496960372663873346878538494642634263726028033847418407746868170228953322651971975736704081365938676917437107884093069980532994640481776915596473270664159691061454972363164280772542986113298550806322444172200512946447442550902823098601870372398793780621939226862886890706548037827095249292797903367275512196793974130887695273122978788836291809031176039883303517802888363726066365561368601687431842313185020471363484244226479748595778684389264410141240788231063633973156355843406491939473030270503610299580847015114881084719066952267173930231247991648474894217458484403183261755347549672813387547821622441842071175205329597762611273981787375556278089024370650230255000825937922555959295156292225439994015144032441732042006723919809326813704528024700105668115024396777335478865725889726197165080016827580234273255032292437941015595220495836297933351978585758525210096217639118993038143771107227838007085741743296305846281460198770653589582784613544509064273807372357807108491485866554509670122597819274292424011695901943663454184070343104963612652387959542778907385014027005100753119067152981593855773474617516775959497395253873561843382070757971001251238285972906919577017919674781904851282948772041525871729103459922570183256353086202088303092602589854591741406113330352399939981461993348663021488546564256136631483147887899679794587196674395768307385173921006334595849018214731264823816997857944754691720123931682424922999436454302896157682121300767024702334777441682743858236942806790372708417393914412882412212600505466044855549301690756359743420822717445249757267560361486118074164011482933233443104902144126539362020102844052802046157666016749978834884244567365263266818656451020945547587435265608253561875668756057264926923914500826698416650734128325213424493829532370195026277802609381620357982344089820462671709197594548938724211114024989442079229298455619238449937304668326757042146411674654584237436611596330298236238239794965976241424127324879566883175355703483667970870754031503406492417438912239478906631025484650872963499795382639744902651205735187564626257960299939242137330902600023779769943913009308137998108236904796526261455128188948262761580482524667125380034582628515902938902835951888990458384022188019257181642426665542085905134754912017127784400654972816113634353644885886691545739113930378963531920854855044726427459351427515847951896604245697216908699801030171632447025653424511345040470791450098006234668942221075492339345915050807890958466347855504447582102252411667880633755877702662715971516233281383665300897711827022411490717207647241225316500678646798275452507022125951874979468420925528919787644756226352277221618510143097977830919654683834774701530663657127195018087585127148129944928997498792029391468999820361405364201074249518342287792248788104009325483339542815949998324761779566342464000588107236810019189833775743422597105965520779520635531824844555551563100967520191977725358895981182203316771010243602116183042522059516270584969297515511661541096572475474216443999360888577185597027181269023831737536490196878021076862321804947443407180952286926631709854257935033710553250278460796982916748715060639405104667825981174711109685075743482504994171753408338038902328000601331224293661059538835072537086585327453506507210518289095149237331129183493938057434634164984720440256687606213403210838105913060863477622470716224024983281117263748180831355428003440628704112353666772594208186520451055115381489382841594022725560280677173039372210380170613828576549697988490433830770596839224917479262509449405188269208226709246851363440722776736732282592232253939922243987468040177694603216002350798153433048718846685769785736389986545270009234102762316506270974839040622569526886884277196294963573416854746847372649811913107292592905457008766261738064954056793929214248093270610516335296535491082810933299593157860595743649814815338472606896019513100776237124607441642055351243665447772367207382207582114981492857343703023691196239335653699895016767301632924981724628644517751758511174084448715795112253027240234720389343861907545984375356057586281950696008106772285101922958519476650503114609613018400032076184435325730728518399325129436678457347121664075466232390751567805136218247879152797192571908955743555437701066109561214921971158040177471382146958624647682653063558589133819570232896163763736524191673602331963663234461035180066577406925851780507949299392757678617435328217310548913061580856393413994015613640142679359665583994077321172491895283403577754056632500459650112055392591018729826292472538264576118922516257056144703558328946555510940144630366825681124459282464027917980347172636734425080410315302592793555644479584857752801415696164212339608390538799546760107757947648811015263937409930837559686316095174805214718956417339555244468041221385874570478813078120013035785014957249033701647921131715219905646594891462614286607683705925127418820877545816490044027566973524815776868037395716226839786140254429948072111468862237397090700076106552119187959744909029827742060026413937380203100046079328891014128875494007071527159792875573781547882873407109352325890466853515741489014136781496053262807629616143382533859487083137158514442123389197266561731805585061526558446235754571296746219077440481023533768631114514914933988206599735850782388522688289759433472154461632018869510535512117225586247906927779582087820090443830222480397482198594651828182585256653643939915769760934575446071010260078743558221647758234637964256763115084854741011506464208525895182397093678194483118774268733331649994190334516176522458794280073914879893517873785959419887985447327884865698041055766091641993370593236294464036158160518630395626532034044818128753729435711954724701521476746895655236523560149374255770415886104426196555873282109034381220688453552427212220406888630742351522097067230121490013335973095310736738409105264154658920059135270802472230393885329518139867090044560994778613904901883659089481242911947254600671020061691462293013586091055039638565982573526703672185946266902665789589152718839362704503815032979772645794800143699890388851565854998040522745717097082238614829366358443326886907896601126583625296980706106107582369033903094185947286943860863343415803164057732268716847484003083591142057410726674843141501018702113854350086702132371252393157426066442799245832480452803574222646465086036562803265913169526342296262759681303157218654639152324145658988214593325664442581869921555983944635787754805535658362604084821681703691637552391039159415361931423694450016976205049485658472451100290675077218591481069620115953208578086164218351029368996603590766201082390251254631200070299368207314052442769493786156088558502991163746492173932377789153591811080542104855310993881025540631991364684134619199103784556694996928284523330282126040173265062949628709724240841228727378868712340960958167579036611604440763315317492821386313339700724912717319419263451353553246893153355621303025659553993501050351985776085923474027635691783607459427300949021782965326746790829736868542021194995674943680476686282452797601143839048567431733286334008368657664349723764927421428219150982450259952163471135774197045645654739375366842181191586981579668825703932715583190104632226668096448676997578490431531048752645770317120333728465121628984011159911000482181678560969799160730665543065162295055032650614834406133618162638684883399182790007568537124424325459527086946600950809669018327471386605018782526927892963947910932245277930356289396996595702651285363035074924652794488671587232956725556279160627914995926513122130094744297333035221319434256112183294424709329427663324066281423795056455615309482042001482083799460984638469583840261177420240129373752746022216606725900408501112371361105997329520480349876621777263653762172440026472075147387904422791248056666281305025349022667337461104928830952572414165963107881032468201606288449589967437863892365849797932738767707296932622418169431282940550084385251700862183843181974160551391567332173465446757575587977539629181577981754364921507869945968250589153898870136058950750645729930857853855342592619068518628730844321743347265807013933939829753045396818074687479516076773478114120591770849951347169332206991190882437109562381123588822393618560959325138143805002236797359744308194312669722118355827600764005617131187488743507578040637228281474431210852846081866906174830219217230868790782487215604709880859457789101180327811981842132895143000644250615674442473403042067088306480064364124240753062632154400857013795904345935175408257396010596690565905335960681073223394841038160709704324226236023069625062613786108939109545951453592295389409941434383386147290108212018820240884855173504392125597802287550700450684955606229052516746094064872331556701505875610495316866808703916923068249625180564666813419942650372937045782758393347087244968375042951211914172660823354103619653128825925757337400199892438319633708938431488939185535314140834816958498551064181970578622571711104283504822400087281294807610975469053557876750890731368381971664073234686400311888790543256350262200785386968459419391389774385489424390983034007831106612511821102777930633336695399413973825196268141922294510886228456253143893809597851240468166866929171203680486328415302258013906371036245583380015778660501816620884786211561370356609969837790134533040975590464049839215801923279857203665041211161280235719202480827235152026869040487525819564869291333276265716824368377690085255166748311381791329923541819407666105013543725026902452189932030264724651231133437306174433131214214786798264542751981299314891734734730156801810157857860558602983828050593457551486397170953956409930768913047728101143012895990834795598500058235764628553760029731596570352661978807917372228483757754032092296350131125136185252938912212195323144658350945575217480107725011764608915704707157485717156314940521790498560897888570002365408242707137888061306231066173424122871001757809320808018807443802728476780401492299389405193454315729465795214817438788386050409801951369369080838051444939157344137415679535916765005244289098583732513726882936158416736664063274759857235409104974809714248923656049749522576795797099023428648962710262809394782029348845188258290426255069540480570866751856328331334543485342110797865955024881682119509076649295074085964195861801627485232136963173324144710772008403826918435147702305977177606901353077241370319075569133453936162476299112998003181036819602787011309229713739561165560215815684642829272838162093324450415937245405755198435335100468482107228377696814435990408204030511413235917602355617588779926826416514311115503663416448505169023451827183577148890348273856100690523881835577318099024047385320549102101860655544965563930907758799138551567389077267663342388672241668345041808533522738406375843402960992240573950451391253072603047806964463271842896547829083511034131538043541750196769198292321388343012446682570761080453119352415195157606323621629637393593169398526125164627236627591295133594973480223776561250921483804014112809116531627667058858631921201773265350535434132480444578510886587707915750342704278226469978168641551923389130382466834178408020755080304049307849017410860665264441763616604282981311728794956839212513374470694671011234354109775956601567966644435668222404077806634317581544315019192448944570550681485719461363237977620798169879308999327401029472145446406543354936736402757172310286904939838385957936075057089495997004705110429613719553208259902071203294628796165574305510825283421035943176842955840148153321887642448784143836670653629818169263435630869258592132419937115116113131744162812245211750866963085822957661840922889361857471992446518116936854811745015810803825373308376687162379290009338269168881268872706672803240769289206857453113923987961256555100424605250039280832900238479808399627577432826610581142581654711236440930136878978004253710197991282269330609844547717324037131725639454572484582867370951252342794604076583812292703077016778440621249448784432011461948017592783899693119418420637827631062529084170018897236438887025386147444125775888805089077738988003114003917506999270692413033039478994002457869424862764348792662014133218040046534197528857606344402637852300559469014800550311792588503514186613803918557927474091942091313316704777623824482105080186585319860168191507858023670612268283920685383516372815390888846216922967670185379953954749471937985343144506272283275296641541880291619844450094638407380773738422283254351498772040002680680392949388909133297307817172770682509846953613179849105124422485458303809633847601132355958956239473323293170914852715452824266601856398576634431788412613905401532253178535260570661601644399154644468103776515316090647625761272168037385770002315178566505616936862103629239614161194994491857099266250362193002509889915743202626013259828945253692479967147520693190270369981748400331786791777750155029027712784193351897122001700869086771223516733042594629169213680540249220126251920571235328719289657041458738919220787639695542582493356564346562368152567096521723148403291732854966931081573642813166734935278373404761937221102559734483496118119951875628486332128393576456343675642561507571620508614768585498980453376079691897081405879655511970794664011592519554183520976559052242503519709869391935711711106120719084307318211336096552346846708803434395192312923651701933583243480203308271586196556832055770451677017272054670489800780495009020367043622354060977672234843208844470285125746535276044352521518113686477223980015346266006339218389785437104907157170976885030456714417135312371418840408914668512439798458105251257362988204693403450959446749372390132605743081889000230729125344268094230234825436737695187239198952342173745525945309702973149796490406983453663177529132605975192308598728402520127288655240322334442447291018630250399800222985366965059006673262549706154218331140492926005843631927992779868978766894440772122119909096506760355872955748727811911735800628255072954602340231942464237332096310518875279990702091194420132316293902462744031957165091237022151848809777960188968272710410121420686642822157851657590519091658266513539784537269840027025377652851097040816369139356745891131308235009867528601494476963985129120108836690531813611496544237102544125680372648130119604475302494754303047625982747399611926695101504230031750370306884102522531692778484464324152169589152913004277550787403193258329886389163222531085085006735515660231597427763329235390549667843449298858923709825698966433382702735522233421219240141314703098087249854995246083499002275257876631757105087602139935230504071351722063516716229185264271333814580499769307513699629565389754612858822173407989865347738062028168063750094513093288543075562093364240973271585299083862922539613478367391148948490150481889314581296720889761818773380374565782310398428280935698816267449326614411971218118909151363473457503467417133623793551370126872552663139108974819862327011484406500286926438652475739571549454045696141303073238012063716316312652453762774018049176481133279276642535923507894736651115709348129652378711346292495519627755332396689526456235410962139775297761928316425420189936009392911765414063543194827255788829250466190638294706593351908336632500942018615782918062732096346950918363565979248600497352028906861276990025576783579261174670570530141882562549810170038967189405436595188854970069824751651272213560931568679131057583170314689646613175972819200500329892345975351698731456213654624505687191552136722609596741865251096253171206900569678848593804210275845459911348894312848776850719095366001186192978023045185052455126171895212432907367436172100405429545638753722384683004815261608500463049686898343415748478857687458073513303151265980339944231023524196207713264704023118064923700507727143977273701252715059023445663355009797488917315095184374984235509257883166133382702960317612300246606873622057300798878177701390775335288834643353036355287621150670908963714134858996845512816105683623520837716321633959338974215739934220547924525235430740934814999365640881320521386829820345989229670886315166988026300905572756861885045350647998666668162039466596602263180300392667371482685244139021140823931535542120033402260699481673989103408874123368672061489320917740935281580849777611126525219221640569297442238562944902163322485556586000956738412827689356900336637051125140069695308349090379579407311693092822164697707707866637806233538983173718243928844622752092787053877161410036333578626662701638616393706505945118992339419787127991336264639144391859760050908758964874235642698496835569193968946373950875520142453550035596637034791925434182709103201117665623793373644956375569378852461839393429043282898974663351126307191916885377603040740823353881256507183152850756581721150708966277307572498759618330368476837577743945379664992477483314344410950441153082349139501638453590440699192644212938551447219969364942125391528933984305235046948062864537412276091750462940730792763472288746772488551591799572857588426258161875436277357498458340833965620994587252166451933696529576321949190356428052044644696319069871378736217922677749832107887072647522326024626675755463577897560663508693115202085529250348127815193651671013112502961412166747960872474017122185262288162279165523473474166154677679175430601668764480670453554944396425699424760903590423089353619406881052711188216023474279767916188772201214831496883274476420915545477856228633763042368102932167460717266464643797270894611498028298259726013204480914826707987695427478087702664896478178968895889899989839675023936570442163757507936931042297130678850838432441067619065888509656909618656589129960568444393520160078294927640305193242360365685387778220231820955914286486119933841371849070095495196132499230333137420337187489920625209829527548635867133874027145441792888702238080371016496522795598449205498188012301993552806124746567705808510078696119483560617301039447216869990581948438173999543014169694106185764019203472818065118616306464247146611567039707073977907658537089032043048152080007823199772541937427394628961050222740237991874354301283559740474253604630944426941609559046677715586049403218428708135035097770869513748142153502708124968415405426963545801950398812443421187755742515648765568138760980770015363839600640046426750872882635709977062805445295463745303052524650905089987363308839431394928750190416519483512379068617666297956981448053186390248682353144877495162627915585657252509555324825378860038171895528254153790229946046230167221395699326880870217344617959222157973908034213097738962394751228584943688552091774647304566035564276416300898029687870234807729911917108899492990111047584103696346701785479072408324391209251127003454338771119035425659932370078106452343007696241070423902663746187462561459594008702653046691794494971864164817834935619919725309100464662558298523763391449655452723987933198032931888207617571643421950666459649075496075611177016186873639490828573097502313583614152243064315810822884111962931899877336982294585233817476406289939443618552494214992205407692220012947474616723401423592708114234652795733233292061197368595767151189604912407132075944246824401044636121450830974013923540448566397774836990886019034498432349562340988150499021025858052543275013352391488745073502063883029187581847466346586221682177674765048882682172850605532791442815248452869569565709729108386457369251113468955900117103804190213363659874157946421000131691994222410334034466706675724480568436600723764473718055839477823636437259902103787780420735681074073210209747013662474026242569854677923833825311145814450237258772678353788316669741775317174127192042961134127008967962387178696722550343336477639282242464529427302726230933549509051050097208363568114621462922022685883343178750411764834089775799556553620309277012024785050419583280229414073944300025427157124634347969356373450519101043173322751187697693020679766142612318107243382786244497670247942156418017414967366239696242607381766275451132874786035909028491268962752532912907560911510014728392311964678434796479152833797855003900382833067960216059399802859027933013202104275420935064818098517423833719891471559013717496095737915569853704330152184631429826363361081991241477504755952165050381397647939685876560272887891963268678742077651232171106313146449956525300757508134140327700782328622369583192899331065198592681316595995010051401453777397459553867974227987263263624794104574556590387138520322533426121101776985434847481000382327468094673983658163939729676341969467241137834376045883913342773546336159023973542897648206905670906226053482841062883683834424968543280507831542619866961136597425709757893955464701511455193016807159605091893888648594772535144344048072184609388211140271707998810102037752289125938014179280031968123903619804935944922071364571985727308274135842354878345379229710283473703543505264680842214918028584569048286365551480173636690091803185175723687754519297220197708222551209556164319541409176342525770115051460009430232990829540870902767752698873646564031245371511280112274731452170587351622990383127644300577642476200310651538092101312714845907500134521463812305678739273367892397442218025738042265168123308667855099946240958533214171643348831620683991733380590822680898360408547779426611759659762663211771853288492869710596092047630424119971399638595238893439075450616050292313868590233896296929929317901731160336108519882509061223274868291512317855117782003706569611932723474132170825361020613610807557045912112887842117026044090175369104529508588144945192789700833473295910489440519032002392033626488355249489880105045658448975231179287389100303455146467891500413854637147846077545194881663644043040572920892313280744901020027577593919037343584588929547091077801910056203802451637494947464261232309117509338176636620527050630007910560559519343279325743568129319132488224320287503498693181413279143875286562002707469444380528613879750095706532808062057001449225330342361273479688338316931700887045061418586011193127490635859550685620893931686740503298717696131957955067154884891636236163501070033819256457620233351980705374438391527081187882204508749178398739210149221264470402126711064606105463382453723376093704207482359928733781523678083826252727347162807104417570125733441401335454773366735404017307102632267574248416476424466988249703118947598530136010910319088746603856123398660064199640302650082617481175178452469932238412812743850989040341226618830492639877795190710544441308852587198976031312554111014548481553612054188744904133164260133050241410939309213164259155809182750663914974082260251848285597583962553403478647305185312026391687092982340532066336877112650725500033793979308537361138087365482845757893072434189615580500109832176707436299326534358951969705497237153618402161345186916778388304962231606023106706909401817978687821923432102016149361746191906352582125408736725178971805294314264209843837417383949299166153885970284668563276554590419879058887562909414008217294373559421682714907201128089562738463415568159876011176878347650831201894973804605854566709782678487181817808369468602440027937257604382563286256257710761003195970995136327940491484780669170698799850944605748111346668253904625184225602110689169320236467573594825433323193447760260778447940416204817477623722508046754005232487616156811506403897382518680401288396942312344329131388581682261203666352749141528012821116291297676110394388527803920591099861780701653618394938501014749797001860303472637509449159422123474716269489077767593424917648208337875362305229123657495664844763136820154581520454782460280905010817262783030565081978004573072216546749002035808817616804184698777984580617736596603161654150848986863663274626338794772292172627993088721788397750797357996472705156504987526525480665739644623531961785696431542809082622718512949208378135167952873420241001771464311416820682833917718568650172575171325398793946229522940053766464652972135667980148320902394039955956251967339890391183537154127775413712881511952934354299542718964222967560469279520205544169617314120737545104912225220963497051696173533817649792457694241126893330172932538783978082135242299965780136431353082863544252086538370010524411862964065668865473122074770150266203839483148855716228838425838460913690435539787792995022151379970112754505039494944529448906671220854278840381711755297007065001146958633877372410315384996718962663117781556118968383863435146679238351452369643485918660450240078012754881737645685813366585009151554809013485147114453137273037649357967053841010344192632912509951332998065633143526362895707759538613609822495075695839127111185148416709237414156029695995517547142174546235460716745989959128000135432857552948400523732518200925964663210787198964148572687190544741179822521326120896257376415254676123206896913644157894788171585360910759253383951669151557948486418092960866597204521289905042829175550148925633835240924608324853278234023449640130788392954791171939223281532120238699923214184447973241512056014206226494907994030226623381241471659468236281166882964000003122836145788550439322499741917672657455155661322175707084362929015432387558868051469293579283540438503687472099217799053675513907136517807433420293498769058738403012465682678029954633837367994144126598702343563553432146401934488697806952991039397309074862812669104969935531966244811656125541946528122095749228591875516455347188400858494294386364445460551362526946983956087034676997295390946573521210443350801252627741088509038905777016417085991992149263946246122568248771590354681473976259355002797387594240071514609225159936205993239264574416780611986733460044259414997704437802087467088959875375325578473564898551409858242026792660462042194127834219754344610823904591321670910692269113543464727681785282946355428079811223260392345275650162337270071255344426935758567410964804195905275832958791292237709455211833283600368220441683717633034270394235838923086097326787203068573634339823389778447489788779496986129306566157272676337096554766076188628983612587627834155765873596220127735874497826130268590246933533512009172276003041810216587569412947657332890120001610952773880836577760422101778210548258366415283368665127295739051763431401906684855775799363881146456679555797432633336814140566161613793925295277633563392643546438129571417336194602702572242263683741175941919689414594036095277000782210225502038621708536298752098005638471275096188677088330318833564156171626802348083626531680282458153271634127556273917611614438340028281183450689265053948452487572744585881721271384545520235591149437415976539333432268925873018699038853178246806519607169486147352623764582287781414909527894001734808992673856065942455449056142030753875527175913889845687984305139457125963628162253438875622516483478673895625931090506632160019121805536356209249870783793476334379807252602666345252373913312506211882617750682524439136075382971720542966603691894536266468114960580691178495166948426815368393228290918528598650367690072484642866449448076509479201677205402747342140515127237135334116051765817804518288262201532436461779947088932777380557448358761206405063150152095160026322698679023271023415007864916633242100374517792229114466142361277966410025392294599289018469037654728103592762579516420413519215899668331465352058749275633344007617515711240981817156599972651790671419273660684035228327179554215841389697385371649088537101376689393355336562212852584669711731080323857457873562153147793372086711876976328391949954789325850608605619102386223044324406335370575049648567854242550522670519967772636001279566005908484723493446127945867739264296230433652316485112276292431826488908382698278058154309548300584777890852881518773587048533332469812490700405120666056969657917490013205551395804838079134710043241557910748192517635220511122536825000124924318336841017133660704260058383748645455777520309374530969930519259585092367449541379138736037151267557864098924032615434342186131170375673526275425610891543702346246427437632748074443284576683705180302807760330756878570071930729735287905786163030898902800886040272861596952691439471413563102455736899791524422099736055773294426630377167367062560664539971468800029171440347304705674996952327178323429186191957989870477501214245890493418491472167806210634071616833571339903770715396322949670470162695253917556148922994011058993808831381944175658651078851462537684737565037363129605146164300305727447698149885578509818081992502016863701145659204328698163128990320021662529535359869738170676515288190300826863288365624109304854902350597039002375019956116389681103867947257845620035132299646110986074384453103744107964490353023451287266501995431330548088838803126906958231144090176889295505035856758902687507152325301979766559197980921333220958748333062740336593767337159622424856206476434873280461024245056104825399838468442973483142235351624782347527471272505034077916413887970127320648448632815745375023233482845449063092449233115394682591936109678926730701203238232212995837228918371436757609944319297153250907324756782266136176171648102347850927927520237978117104583395436064563140336199606942857520215630425800396579521719615686251378146963602680602395189781232523895444374514499132525793511259675633099019820017518709120547003113122227942999123895195888609590123668458559366035452654466792713986601673937001487551755831115685387157859049236809267609611673348199949495860310613158877621351457108033086736787008645954030754263767158259823745208262399874541260129850352965634776060988589359727636892528221502003884604639627646011517067136377346749765588916826201479204934857248769117172903059585724298600235931212248986494293883112215808088506434842299208530369460612402360381965442357302012830289049685851720427085724883442948769355226152821974969301332191781802141539034426486075966251362801971590817733036536907777495351051952813967716673069706800483830260484946828232786445042972005361533810835596440628324980764786073415612432586552452044017013811749528993758994429352348748470529709049996492120975892204630446348744389067027659498309753793455792628161130616640775461650466743839747221262056724894116914814392751639349565790907130669813417521843436228782310770918426461680549837148557235770263612040020957198910180637779851740105995915591067703164816254833152424805088074031216423160441819934359748576994154509292463293790991727043580352195883685128750594236998779857771340670080166234195659575755329303244120601672017862663130729220916985927661626917787393665439270910017858782201959979780383971689867137286008595072312152756367653041724825240711137966656524601825941609504620605888288017226555461207442215960676546796240173864516419174642069307739455024916840177772247317424462903999664729743310740361293488011370582608210642742041091402067557132131262830852688624833251687611130620643337108037392965430720926737070342557836681292569574944834994817562271512660247905618232245103659771749829920643399113957446352210790669448103828673243311575501838747351349408908532562369734129596939148154979688841815936291959311803300246581043940988374042489656648275904628545997857722963005405971888054275921049068259662009995399497923570889593069043344083476138758478519529777213764389893805051277331094163631206917067944870523502739012333843009237706137340962741870604016196230513143375340625411144847570057224228537926430547261522233045875230421961694964668764946684213328115566299660602973461072968884353779425919608997128534481680895197256110121639547624092782904225690830379107124989870962492992640090576816030478470926354400478719357630251099089630855989166998523586242878414292270360554246692332560614406495225300143782944483354904870606999767535896942358049398692957463221565431028318969753797150944955845359362567453887947635925581724177571275879404205481658999035202669671578494115592679826952263481350615148257396294200964591057438647685869533053248868895484241490761017582647626811010175702619278595951297721485398891985344913004097140981695425303732191850221584033711542384775611775715770531210084702011300090409258262911336547153654830734329380858495612128994869748588070153648434919825089827151552542315978053889077366447444481503461837443131751799519751585998292131750854833104117765205906323057592539828379155825401526163177821057248764224010480342459012077621015348374693422201048884146893881931698075325686011016367242668953899767550713112354483718873244797331156389464746916947544807296172085092627683937653239983132116394710935516712587306830053715456085802635573376535982063241321768203372164438937387674206758240440340263805696471982208704338642744760236724170832783604931310086048292979659272431367944605939835301627217443674120148088454967014990057252020020920623349625707328267574006420169734381033622207397848302471993363691382994407513218816990341905283814194835644655745640254208421352649124914301456632393450105552660110542697073645461613404471062479948698748283537040676552832694348716469080354858616723698185281330400253250229401558270356316806732820157159266209942943272003831798570853088246750778814215447286806483819487084314210803862192339094256976524876313734551564472274795771169831514085666539958505180380253422318734652897705130580034747128994707652412339527181881057671882323046352836167066041644309319059288997432634957658643655930911881577545996257240777582972673313258206045664840925089824630551066048378576973462729842103619453154440373032273645182035922284553278444636962684575703773634852021167899271685894628488155282071603764266816860866048674119190985974231023331928181865895248981051111530321156505416222436835436439460765955226457852133340096917517283093496151073714521821839925090816531493953989638028296292349105021746502128017968480163044315462748176421437283940272376965654073662456972668911961626435922533036948484380440799462729832103736796091260723435610546644322606654170182135458568357512865988715013846298346306696853481987990151890023305300147643831731866379817278122774896609409620084646193872958234683668574270915607865064183489417528271869871590842212330060643421978951381024288497182419552771964679537725869106947811692095266915074874412587224945005541813050842760444119825862147840229177572615184957147733985329468986438231403590036706124567540507073482827155858944506711425854879820304616275230805049619278155252876547952706513816955321125094001344257007609269650828104898314530521608998043117067186718627309236941724342018436161892613834175383549855922819774296632938022571359330682295685153917375905282785612992334221118076036097049218987351608349875980273556232655784585399566979803465172236923345000223048721116177063589740163218905567694002925648230992809902576986823569518685685943022048100791201848810603493343218740302960128328410653369390479546331099425284868885988981191511235747339361776874787802811016567914604432090529434407028314007717402915560474741874905887758160544334734066304714666021010944297503005840826132811040752918872636817345217822752961886411372014150593455829551013818618472589889305123181842763568589903718685075766786087713485494291580631933339259135381591433057278213695212577483181268587541546082872125021774147316744126014668297202692971573446893135375339594305796573336700855006314830447108424654220074025807810652835365830602201698511954231289914789273460367963463750403087926460818757162419067807376204388600941712338027806282532042409403182171976297463262625647979507862642073929976361605311380796452330852289403622950909454120831791061313993107602192796778936006713644863853252732355899103523058231836978367549212542731792660290705462260266474161061074403604684139694706321227821786079255960750218624246208580009550645805935434339144915647188907874335353794741799034487332049401632073576472961959233988356569754137986832786084271319843815314311070452199864802305618604887871238095704483252225656263541915484892190629883180970108319417722806140292982509385864737695577602588885149524316650276201733950272263329042727142959440936535124390777847141834929367856226252217717279291476438044957379968168456672641714101258805603938467035492708048923154598164848135339499657229533281603574912309473449288000782601510689687235977875672396406716903135450004280175844598311306634054623062603516059702617235064642803336518654727144979212867901505980641738384620920926766271735609484188887485981824906681940615998683145786323598040734400910886575459174236270905593014007926023948290422480606251129158190213048951653697085009072535148427246758863378035042504840265226896378811288915814518910951466329351653994453258291749514788855345252479921009897876021988354812361841508283371447443408944440738082997347306221488441891503718344430932770837509778923385618694909648451189708842475289220755537398922770791265222202245014788362916789679292994924019700845774624365825598137653022286899181844895679274209624013688570102664554232744844511597329237543471865087659495598637353266300695663599188294701552504333257746334828552494590232504894996855693631936836729523223505985947118012834552393846114196469661243561469755992608520295029394930899409161705794303701056990557531623531628079788635644613768503166853182991577224873569998177225050923152031202519317540376378701244362802573827403292068036172861399701296148202354782071650886730295524739355951485771470970012679261963345318047682140092704085568249335505582235285482063680889270681057377166911802990989824770150900212524551164281821446367809016942563171949420233948370607384159029383577471919454814509608372752157273226726488121310813458613337880249344190572356987586338642716822446143925639195986164009020845228087524930384649475941503587724544141918575897549349153533361991418208575398496501636499823798293767607143842827399198560860485927845321121566221684103109052476152476610742751450120466160630701275467293096761483093112951589717167263881724873213874534775304992442759299759064184348710068107258053384827573820516511338115089577517643837343398451771800365650084626220988516964997715087556551687711147289027517127410757544085164392684952117808932387286606689604597266472107226731303153389551668946033522978028616296057756105479837960558847400981179180176713073060886315516597046301290882976358855334466830167188151825040956010468805599683403745036580550316797805444110116433726071634976803892502467673493594118527488603117390032170705818796149414440235977565970586854199979304687728580175972055089615720186054650647744826964273566718014721083714411377710604626490807292153513113852971319450865389154326302788730382791103902881913065923940642519899353719117249729247500667401802180757549727227251544898979351302382680875863353489876658565390710283419275019670229161252212668242012649271812556285835721944500870068001933485316026105592202743952573173755294589665769803087794864177976300319715413442178828265357138721361567036403260222360804932883093507068041120815416213933872750232170676915066850554191056866832648744331287225568264632357428303006006309052518825574524579923499793002446974085555980581354574062604457211113537705479362462813759949467640175585288979160271369729325531978319038798721766643438030295959758567975504014050597807339009665475763358430203234360753143974222567277991768822323385600192761772994595607107284553010637203271381540594804084197447970798869713011629402599248635902384567643619340194009637356883903770886079562050126985630878580529673925426860477938758347850222984141035495450360846469097107341174938061455263767966747543669239271857232561189349239955316587938823039646436199180714502434606607390662606105725507016527676999031948276862494174979836633524601188048883588548512475793393614534247729559564014813076317554238151551564912987349801812296341703766258221007190015244447709984619156417187978239231136194599097101307469130565806614629302159656681171921072914044123197272754439731309420759665411659884059249190462375239135174110857836906210172508445885049162339068558495945158110411666844801865660159740790775244247233043086606814927191210242531498672064338868480317459752149524702003615340478235166034260147718520269164584383592586695832722074774258167630902762013762480115350486194286494736145092801359534841263529671166682305059774178683320172795523392406350207288855815180198294362482547606490695209033143401212310141036247767541406158145271974591610775517286456606224516273102263241652183116560829510630458063431215860744647069248639965023859418427612255783987907930214663554576863034872199248736528581671465732026057835046319336442439010577966754139303630315695552025385904028123579036947547797022745394232934298387730047150531705896442061716866771349145086455989548659331897165878284699608875136115692739163788489258851965653434206380264349188409633289086244135350488970119526533085013691173791331933522170288939603027805459389870853075636063950878192886541148799097755631355711947659162361200425223811957083928870055979323900453621394925039677015312351307668528888351525010008259945864173699280633198985097284384141593856694286863782799329605279374744701146271974615807471651848106773850113932403415349798725208580034400102049426426836611636570041816870549989149729952327469742287111749769386300649695938483369585205175296305374692163623207946101374712420486717004724582449351367165705173611098604124741314097807061204200887451252334555895315350946237735596453766972219110357649983948129324532424142756865361865514880812969760278543029479564108330507709399657854566961782625158656304156377120092695947605594001110914489495907243710316190829914000970968745347578585446253199463453637248925367418124264417423476183921699416082656659857365049291840571303018308623707912906252624154816320913079050221885175365590956559614313635963871997797132114224006095901115375876660935376002313345308563029461152445713571351866135657260689032292316197192742385280005341303743011289535583148214328827218505103459064530862995643803187016193068528763389443159416886846196196656390403370762312050395437613117270820953836529518682909737331352328521563338104976848087608720421345174748446696527200585371975528104291724391676346788415000830666263514136017760076078252922641531359159207435996333432216797571505099776057384908109703642192494098683988195611362729518242007718089356590665739798063055678877510955804480269596027077498630749309953926928317713237931395669103144321711795193807306413058755380486612510897494367689372298258137452550443615261531000960109908624369307771480875421290170543082611457009439605712042401946125548185667750231025766531500819039831082994935712672843876507573478611619130104782796386469756426721976668180957467403434628457275220752127324583464339021938337215259923261773449563713298678095241631074182714462193539119523668290111240918081228138293145656059124742108637230511715852905941775713053525890820185795747491495411224766737668562798466810163025449707538148031129452826579541620771589392250331745451572052212634330807392106894975485234643879559882781361413794165798170327626515060270841828445904653323492370614759741528152887091387059933930044592485796156783943152419009907863415532820277622302121381531796490161352677511753453892798239478305886310041064544637513360887621631195757195712639286946510831776221863275628429574796936613081975145359437921987583240055179277974863299257662302653556727758366249045704073355234259046921327483373847516415553305589600601971337036404404570517373187334921046276471476538477037139275862245027616019190911088690788840870604026800957525021347315168376292546726339096663965978756694512403217762444812315134674858524561066659276096446493179468577434285991486153995645795711713366590683385743769735269261315570803362589892308533153898253437408355109607317879372384662234734347250222189130728416155978761906563522228761720093731644408891934107082648923927404691785993405081633256846259533853081739844464837814130021883042523713060060391467774849869151613216989964670683777594395974288093714517241380623527691346178547991487116415915126179853080854308692489973528742415937841923747010099691361298927491739405553856796460212311718458475163710998880831845179137547228789064841546631076884417345317039888862390164387070594496975915061082751432485128084369656525339484322973855445586846231117513841461490245423980301228797042098402327610739526156611156565327711223503893816260572429162423282676731676536356954131147008585060913203830481223375585967090966262485686199305511926128356614287198791240820661832181467962872626269119945200068417720624037312328062596872873724314620425377200287829156754595038728977907805421249007603799465098627341419206385364202263245648079052087936714721106041725293307366504696628789524485978728266919985734530174730580771922628883417813669984662570919848935450791095873772814522349585442712530247996405438539428790588031772539455235940697130383456951877848747383062458010008599012249009211038322259349628808423560104446587769573751837922312048784818882354148024952503962668269414797721372553949550005055289546849176362054709486720915219384279745405683593109698529387498109296070322448586692367068830417286228093589588850509686151067701583144384724681385452982246277344200274816169212973853587970206233577133082715371295975844490027224369349325611920906722854320162243806221687252821176641752641242571155221416274135792061623491554179423912316380274992575503516687394407349116098598409074821097935088351347681220882998091695195532721496160896205923982456906186859101570075185039176255772611499048101873036076958337853237758297858330478890767617035478772088923752020422960250844720080314588910626198349085524286262380563743454106697309283106358248793947452297582771479613266327980183943035839955227503608499378107550941088833716246642718601444101975612487481908138037574343281196144874512078744345940975024101692014043589992409875370952157171476056733914867265689543959048865377070278823374857545286077899001544915147539733384066817372100773229899724141971593951031814434892580939970920885356057782552732235357402388956142271106665687646526940397831295185370997909398077099369838684185648690147646247427645175387361571843305329543098017825875797523709507346413372581595333251016419816538709903811141114320693687875965529785750094686845074125598456818555913045143024678094843026403196877174032080048973722188033607174629255908869208465193429545522403505672373652502741560151557051657667406584958470108995416232951395386389136495587751247753104488626708102847580153294756964032456533926970824822457043446871773972548025790220812563981883402156956531985989222022671479274408922666711096952343496247311653592275379988111501363874913678215724383413855516982371632698104241014838130589848517747872523762002664827305872618513162788315982827087671093928980273326793863935066955684036368498026365988965502340647666443842136519581289312483533815002779610878723001747373437029483497010128995429746279765202199998542654764175463175610058433644798672119294635028249631263455043567303799497645559312416103481096389856245041512299481686094592892448497064860247635726411534356622631643407514154858054500165797266130124778882344210055989361624693688293235471356840485020102241167543913153853022108819967685364897018046905507271105782269389603311840674093111931516112556820553346958545426144853831639138899045049508278362852683495457735377910005494502442518667295963443217493934692295979687781735866169125759727394137946570269167138875112848482699223158017473719096676585262613335664064419522695655703521504058110188775906139176596631547600465269259348193846625734675153958305315226023770654830034556499678036732150007437558531839425332658034649437679508009598318379862273113026418651528067528496086513571477800883354174420579696891596899374733546580977801246356832688246708264598419619225227249562462612118315802616586525148599282877652614102112468990422156337080637255379544390725608226371243505903118435792819798984138577862095259833720669232242582887153205453505597042520035735262854245893137088037447460394923672168061468227456153337474491552779659146924732556814180406708488572518395800655324882977105883153292977909545230411644877844396691957772433328392061772542892914687403843807598091560449335292592104057054011990922370908518941281842496602009394011134962120675346777073974985133227509677544007970025039277606752110917822259423433254190706483380735942484504860365037772408445793266289354629337989677960064601477811005234812754232676372832512414978513481413752928070475235988741404436875655575559442355865739788639122806671098620632430940921747186438712684013756533925317799277397375719915579199984792826824926888831932573414999726005984196952266601595336635198670058633952052636050980996668587304589571048478942365483281677172043876540065980064240218578789393049482740703213351479511798870871746356374585917305771150905990003908687993954851419877777570629780151039204978686667824559982567043395197594133477452368241751759530335449049566835248089102936299878854474381762593343518742076847923116626042050198778309927177492003254263430718986452539882072360362493921884722405258907455024511371409117429376478623544306625849399833131955392594903236326808878153840313627494001965543903402501533515946096555164207687273367590174581315003844446786253771151811916171790785644771565168051160165393164334022132739759345488459483519333864306066494849358454743961036053566358255794399214093582700403190318554873791937079664127857258086224517324219640783279955955856559254868574423708296131916930127537987128361118124422230021116944206248694960325550075189138308907972908214718673899954811179018230293668819431788433185238227833525990825929376977305587733951861052339935690580814580789070315574124420426837382290871771607801339209532855866983576177086798353883073506783611612930407076755459339047699348146385136097160095066313082825048766406385402066684044963128819193167702070517423851435414873897940158208356210029854555191430466714781573555352894957899166361854052536107241926246507869564477180271512045648691564968913731103487540298399611092519701729707724247544266272398648176671818638091757786666551802294002685396766089369795042166243269229401101175062223696281021614313635618268212354511237141802712795051519949445374675950281282895215163211697934000328253042865406056166104583164019945600656335026189883570956416183318960803733923549267505769855890099491274226899757713265324270598566772962700012959329492531151604642374866403722208471244316016011991864056757875665595502967636843528534249790379870121566262216870199962658836536041850775325155617147481868486012008586423949898731635782709968729727119244313763604204758036131719985981727140648746781150858115978572652962522017511034551481514533230197121246202527288566190006340818209268140334273552893059565281936055260509389362636992673921016436180478372998144637254598228442759930501698696624355535927332003987366205003802842926289840497125586373405745624380646612419280823977443209027721032000441185246436361772752113791694816929486116078603800214601721736904018204452166983653030763734291256497261888208328595514303517629223842012633387293950616728194149215720297172392893479813106366920891464994682166036695373663700771244717835181204524348704022189252489434081660709251142459903680953842774267111925861249748932630430746265571416074052584258319816719608320842518991694336057121624984101548611295764999917734284070060054320988318088929066546268703404504408581107715706450149650414308558548704177755986069549299518224853535967661088587584590762451452565199255814725543385189212383477333905932442151170687771290398632149523761847472584841824722007663972097187134749461487903198275184550197051941751999554836319225614525909128459834337791867402722535519184265994084009917765259100581833896230237397292306403014395099607239948762034495170390646397383352605239546463326035416616328018746104432968477461962285355787127952187041180176840264472316147963220280614736576090867620128775292430987685828800419877789224580911800493568275873154652396883059935371698134555136982227659311057773132276920819719582296855492416916135235992698978177778896043655122544903870909853921045704161547625323123063521882653847171622865559950579219831665177521001147111998458378233018901424723057631335226710647595835641150287272834087599844580162582972680305099182752482881708505884059938916028540237582341746691990740368634335530467820844043847106129530096969763801309677225201348589862111262262272690579286894589033103968416733988570215874621232130428948873998794863869198838249976470683511190836180546086686356859965638476364647514893984075187957262770192289843959352144147868607284041453910340687413331991492362350157430355316309755831009191342299389567857255714594193120214664920517745317482116586877111533903326987422982796928223488560160440388212802930589383468183017881245950096134514789868657962141070573532571911200345998992650847227765228076538942322673621896496265470012804721205316627114301449104489863499304387919177155892205436592798697356630581343936151545246382996492531740314696161258687916875032945617797177741609197094925314718445101303603937826251613272136421330510069834961206019914555229550116366542796545984478679208606057824959908919068186347114500622730502106466606751303434440113825150788575427523302318560653063157750671563737769167439343222678176951411084940532498900279700040167132000576518305557435753678973936103664150856171775947866374934298444739070404811553184019743423962366549195935917379952322812902413800716254400124795499218544855335951426089782089596049941777170825526663092299991784797058195385320648946233368816624723971927888289083273916376606836352732738684880750140771719897413950104675435891445215718743554271179266065185619777681184536582252594353587655934955107650639143558594478249746581389605969881155156774516634729757841738611274659850037006872589781826611399280118772296185999114103858647193609060709692768308631806580906076814083882366425668926209342302607887874613537834710455683620452945798481498547125243573177711487878251432655567091900995801780676937210190346650868979599516084025029492228253212754951850162217814666052863739340902068120391458672994410825285530822567307440730077152522128761713001067777578112269072319443339097872800513955377397189382560883665005914356319872452330229046139354156749388441640260719631775737813467582110535027242925605279230096484957075196630423142154107309709738757630401882407413098405191828949104652933461010957071006399534813027031987108895214247320491898426929237203529142821884138552266675889009201787272256765766977295581498527869584684780753280026673421458458332050240698069778352013657677662161835968097549146244896555662363265598901671007838195076999527734130709851128645745632491988868082622966786807449893275389978602723715529117843179907157834363079007942229169551711377725872424747930231977785854074587411124785389884320073671122040504467730696444065251771200337531936799862365638836777510904250926260852580384153024105001692578781838356594866287134517325539912807475822690457351397135086646841134790692564517436282073585416759362095478855091915212362059650515716813314844538399534434997779527288401637027142805081911546804453075044740102247811712741619251485125730557373475335439886947876754181770381926030291447586870470738475383576600286221364265587419470641983813697200545964150610309818046787568259258002301693916067521496547514542742915484627580284702693837216575528128361780593104918241044238563732999651909278455920928680731766262313960355180343497616003355471299463107922590977354973166862455966970173138363881507014725601693666101104457584736326178235223647133958165824661724692083244582131717379386414752538431748846302071269972549115575021986241716354580082955825792435232352222377542501503537973586959737113712250271426266404935868018139264061843285564277857513567767823218904451081922751638819348101321522360626170767589086860568730442964286931138593982410364310707684596278348592460633252504960890909539155561402455986021893172061390994483208423386990055516913479263814837595929499400449050970731877646540797236944018542468896552445842710475443920195346628904857618472050572595483451716517805096840386704643768309001056534708989401306153953201332031075092618187151882820047874782544459641862174599943419254213639264235329825980518928872048031669685463510533716554450719340414117453887593648961284797253602070069650653153208127987437977489865687500325678986041777844627648969429066115144415947978966253140577003404040510024892548676156485995995545155123315508262537623385029524586831714938495661893349457645518848728494566016254767861221079003965884815932664566723945089293931270568987519941284237759607266159629154330453297874318746361259568802312975799686079675614390180499302205397780474750290545228795411258757452336643935933828554812097592231358193328329759618901841742231057805129201938389881682812574902786692915667632353631404513583857589595710187424745641744460851255052045853759239750730442337903910611383556000679028221733974774253990805499669915182261006129533936267649854374607089938582938246441002727533245050689849227977670292274656207232366167732738297066988029810850901013531087810597717201124778531678612931212395645750411827013707175528344790547572930652563719989621287472795469959779353727112305658997345757891299047780727978261758477694518777600999061520403480452236150192228347927006804089523453194402217858725913602565698817344575244923983097547618190187009424353269055274842526712251460697173821804731847975209364999894758151364566996007139902972228772556647477782700528862050032815416849399075033919223322687135071238075602561489102335821349259619114848981820836234350297699588392538023220686282566085842772819885171741139502881302453637508203595475988548768399854744633129649408101004565420171643523501830502000002137007228579532325939946924435911981008834969295921608825389919577734051149821784831367423239006481921307641167248954740151712093390709717027238109692953286651232215119653546207724000714261680357437646797418183878580587789984387806657496387145789288621623532901682916485744471844281399933553456932739434442493424562837988773761101286904713566875549150283538244911628652518335306609597273101569128873904745422974530990129137491912941000119670583436802476375657053205529063186943833368626847576803799030396118784578528640240634314886751949155469016995190812911033142429121626765831685763020133354503142693663183016749729893942383651155529619002329554975738139842219922258182372456195776976550509384242236055440100006091680137176389968322729671496838859136712041783591342259657870113820788227888758864254991587786526657148617881028251195047638248381838549917226212426218184830322645413863763640847596973777968234978672241689680602851491137809043335140260636548193374803750724629088955699698075617982728314653055301366077941919126195603443617330026718883935595719594747634310479066706710303592032876162600807183837200144402076053574531237537074397090927402771852502373240500145451812318521241673521669163239932769155338482576532370317719452209430862696660564098506763302887820334263673071017355304688457573825393481226990157089771469868063244281513141724104736121522667271451162429153114407917157242726513785840041960282070352095150769815054377987086675986350736133779110215666331244563365106597478166183306217527841579955356641167238864649971324520504775748728973100130100208653194494358531758338745431633267829408010468945562592928228207001767901788782838858648901293172879114020592361107542821885722553274410052604088838980081849275797393484793981908975382776487251520536807579593687418550292311780083536734828667669330289444517644880809042393591314015789991942375170646683902169782914671646110798330511369768850365797314608962486391299594957691559949390464156361685753669830313962473380758878537924771532256698072522133682086598202347094866402575110215521933739617359356874466027600426933402178171922450974300684101591957634166893426511692768765016482523948489948876391247407055135579088824125393434889917380376255275421607342452913647697167742334917063450391949438536742432196325227425086933449456173646966813871595486692023579229273802441411294912743448355360371303279875462103928459641594880694090994087897200546168746425360208067237732854697032641400404815807613143282502062057395441692493315066032170678482735571909629785275313152047484942484996836048714856025130444506794909092060388175882871752469063468397044257428487299749322125193621814051626283224130952251067618510749215921168473765996488444016550057228416576779584270801983747002148910632851646586257153977074260363562494435613395506398848886719050737073660130298720177787591330457682775242372540448497583848639664076589544934036984651141832935636255455461724853651649101220927355471552954549848174869870708151721260816829422343789143371338975699287385552434157352167258442712853137098201620749594242294402873690419658045589309956927086160407727620423121430502148995444771262046190608606736712048033155808669869264361469686752430883644153690901957946748780531171655998364703103670102764155071470293924584337607345028160001775043131147334455207222928979382798494860657837223308921005855999656217641197235526085292590819611499025373604356549239585204647500413602465894591496044910280168661187536504529199119418481560898821152042607122310648909788398871609362027519480338924435960777615893042602331464759685747662825516118019197214563570972285505408359850056464709983982637516770800007807489217575624411435713117364579260098760595073607212723331550573761345350213795819380970115035643702597123875804200417132146882288235383575162647113625765666964305528089773543765399719713668761619859823107368793182719550872395613767972245914746398049880498867672742100683356888788078152751793050890046404397645553913807654008527296621628940012632644684748304604766258476878900797277346609143844491182512558863731078629852797488655433617087241629689629993664152427784093574476073933821687971238479686804624173744047504606592539546837374862229804298445923309559299893715774480681760755366744401472769138343155359448324675096559428406639127001535674157334602863989511802761826311426518911925406925026279647427633445246362798412687414653540661807744484111179033184727582820528295896895303234249894752836157095189381925489611617437830000080888540543033801484240366469336870464292475433617027594979131080015021214717811222865647070722767522315972834171485596551088998346237821907435198569900567507653211324382889423741932455206425826741255729990846314978263571975725012729329939739927842591085954508043332203197497016063347716048148305677023619816565498698797921912157968584085543797570062257717985689585125912892926045745569487824380140522904282689548030419940171516294621837953749090324322014369687140180165921466930874409213575980055550924136217605700723655769051847603307005513552089106095369222570031515494019582373786330373521829327855357271776964744866185352316268908793093255080021177198895777822048746538586604359529947717857297080253212251068671417208271879049512046033053117529025857700491107700392536723785513533383361209674800970679658686326319812871933168093103540440364776316452091602711721065492533090064554983279758521524077722061692649558482120096609140205126337246554677685121176446303756488546032056918495802337848316453503022809613073961524559474182649608565380291550455432090610256573768450899435264178367282332993768461047940153417256796574739285327159094880624852830437573235875521782081631489985323334202818682891252765169635315020810679076674396141586082369119560979084281788345497751834576183799448508521455677075758569461099330592397584287554680954831697410526693174725129841802327941103400999569702484469681559890078990212841581245402330415860741262869470258151089638346557271424377217972393843256149932268140379243824137891661590716640082225682574421202616825965477197008349124045840766512315631568657327909496329419183282822211643038887140948987990857922741084129950384479078267794984311649643082034713670967787972869399108492850187448423466810582403170593662307509325561060336736652128409624347761000217103042280361336304032228994139465734263612155384171316897594423318571432222911999770035291760296751217952995407646309551698055834501106428618830616689431048330369439745379626631268335959115833703982974848768010353830886832903140994758187947501371755073739358653307718281455877673333169480546608808226889264533603643790781855415218553508371339312430395141593174848228216527205073991437730778847986739116564347129973705459638351303858936162248479276790898967528086087705656704454287250053153449012470944999718496316336421120546170623510527281389010238376763792059738833562326885659334269886212644438385133998076519740735508817577966605221586973967328366778607618373221445030100230201676856840733244909931555843254264495396265867944089814732686968445746333198474583092116186412761279713147310185478382964036727595651521490754317013577699509687138908990594970508247513053593690631614371316317115763923457108684124707357671798294439034695653756991671196481466443014183253159470746396138856347774810349387798633572497845478967128873550898930567513742429523656581275663314085017633220791948581165147698697144068569994226530016611060247841343262955590489883452669393226262544519138191050499216112908930596476966648938208245039466111114453570881961593917774025832436593276187649068183146275076379504139216055414873298725669917945227436161369263587154871442320364588139810654555268727017201677220484283055598777988197571568354989859363315430206440640741585227193845604999432958187480005502193589859633343154363139305884128374806523050036734743728426441336278755197700540783346277860025838298398061708675446350642085347766223134476247297110872150087028228381442465502760170448944537574861725483280742260334277142180835293761321933517405604486382249640072142236838922223200220871697900150019964537807903434663130918854897651623728099905315260366615017774088258231242446879651163163965050647797340867103382387688240769472933110241028460804757433384024867270508019646737208778317326922888974205024893420530213378572801129049053203193250225647190381126048652356406715150032726169935664307837354534864469088345681924102534567278425973647310338828076146611996319691993424467830918630066310613854717337288501885445914485176352690918660122141692094688548771724494113990540493900614936086100850404107208572110705252729344543137412861077529441632862801168374158066886697910363936225949206289124948624886384982051569519767825968003906616416984719106057693982402248937514460910409137336076642941011098595828740920813912954630741110597394246148412753674093504815382166401975042785798413032236709687207437582052661106693315075014300759762591306827016637802018893174759073668246009675951040040625283569134327658755736213018664033470420290591070922938801513101301004883497262980230140640364732675912667457964608803007278222285187380778725584971038007512696305294050341010280307177635056036601034959354734192531450388714198950777080245803227582920630838697323219659454225894225058136142926148513936012539174237217706761981513987128352851751591882290885020314225531754212414874405808287750661401411546787592391614853938706926969702009171200089227405834473242300908617095829883774550178875440917064369487047366265589912705955303296653218049465744789822790605580165638226472307570025180792963063722880942177882901486419398331050630696949614996334358959091465294686439519814863580484729619458463193571655380091726960698756541597087754859810489695274846610354841134036483828361263251003915607827424912588616703043192776211712089031067305631417784936354220778315262530581765614050032264608536867700354429872472031545032064584784059470116162703267894966632690904583687065450549717897797074433879896915810466711509136492975063629399120588634335666541271366151489726628841097546663753486572651075681601818574881377225666259552259441552776887852045769109330006153730781254068685342954878776365256425622873448954122481656905494497070475122407511717162585395587107692714192135812798836513967192021492035427029888136091257868989332405518441222107103730785578071385412334971895141530396182862410585972239103419007183978516399046986626347026935436059135270356374360267717846094935534533841942413554951754854614348471305909874493905593782507646030180107600739102764780446699009132654826746589605255492707256633087994293592589809455163566744110143871677277123894032946353646631342726871302264233702892570674501155998540129531534033434049927527568814250825057450767630938735124091149297984283730536825159470282422322331012210860283816776631562713859010411036575673539373086609622143558087975549664071694668486353870686198117675077825741854103804032143450252582598268696427612194595677746691079845636592037766202427529114383641013304231599633064228406914520489046740353911175389158803888131161235306317907614493729130961962774414027444410375211143499910100595680230346047293815077415345246899603567423947767378501421701465922752402224839613991476933863370109831817496725341021180062697412044319183644116514833773509851856242397808870008231574796206460944548533197101513353470195879230969161350686175072647715257079016688298418347643341409392110390627260710610474085089490453532529592686218481228398999203970686244823336431420704449768337841980124643621117745133853390784533276105485052046576150951200979446134468762556345628594973656150158924522682125365312442394047878570464950842170133450096838655648285874856992524115008845977705909028820318747817538129029406309790606720516065792760965511478919819171821299063760272923125754637586615647352354658085848421749330884628979766142720543543404366595626784631570604840665087301266732623591615168330899498152442314675228999307244590657222928679984358231498506212572406455684258031770289977966657216312776071416503013722231993706346362364023355641888615126897627793992814591999107813548147783308630644335940279130584539869439180182620948502832569629424945003515760761388547845661562034606702405343705011842848595198576321493886109747036608484502357752997855623678538752322221940498147023317045646696354564435707421956060444402278432512642627820577328676379707769046193424280153504182983250567289189415876236059831624381151588818748517449958157111208976009285402169136983967612647503871484297357591234298629291352853266610863081589170213126402941615733094582305779037000158831320499042998202570663594855144279307825627121280958891423415078045050397618657727075706587179115655770160769876041513458250972845379007695074914575382155371049502002856065830917671131993598291977296970276059861612685912416110786139382468746440885261429209463849709230225187596660108471087945091648778077972053402488388080754400484949692673875142542914813161973262141817877679423987100270264157847202905461286421366686378454422602818442406590248536272698474398300055738735320658633277362476682228361267059256576084342237323191428959245672337426667314704500497612914479164675628644710583290199261052813086234910084810519818162367006809718648637955711845940188224783231269393375390764170474954621795416450499555887485975103365131586578793736837886416595256042829400439956839750727754776426550485632241328938680428734125773796421456726944694700259494068971101670410655655933254661364475763578834882957604070754491789167661827068862313705277554402475941379490454112788450014088272871704086456434921183286620322730986963900247039413059760629859981694295225283111007557542021104018148197452751490970511082840045516285705706922471186275331251399574976631063283206541861892053807080083422688913766767631994032967122779697773960321036758858725042864626146809289301551159677345037467731160850127462120799618695380407901078552888687436997081033810032786435819147768726019450250630544264199322401443192359349278909209400075859755893291286253567357489795019047900302066538624927467910126591528133090405028418405840917025571421822432376748608986549366053687190741626390461014799221931299570174539746831603769822302356386611112715480121037875201977062866906103800991347120461846552717278886171819636490216123356720213714616234029676083173877768736240757378888006023701565264337911477385460652921137926298711233780461862058303773204402700821054152002553618157066416446476825784447333258873916190273596100942837928006379519026317891307622929562337831432042636974297404536645151401717556528271462714017317870040943348212536517361503910015435734078111673518954783768330109264607582157453043399151263013917303242691898590277259540010941037091191345766908695553065345956450448838506803808558021057341902243171184250741769045774228180039828738205741103294996238045109132210662321119738585804968827513062163613785653369848349351759580252222279514224049158140618548272903703598596261282907944313996848690116496264752795466560357777938656498260157249505263041494670932030560994848619458883966198754681598451318267607976584166189739966617728158478860308887579692219343409238908337625456961775337958656359770968241276126378641474811620723799199956861553221692330535551741006232719730427034404635284788050997783975967594238503803939232646089093546678833657634312887459428014257583742468952183203504120358000592689024325040698963072849985751962034545190661747982012270198227598353138527147223810082710249730622518846034861824813866678757821109960905897650653332255473260611083022594834352989323876832881467327951832080545346395772477946997713060740266026810370787505045670129942098507902406727235666062618939417605004904986961519490089874603768457334234037756304164981683705181616613192844911527143068626155177557147866639809407642075434038279740742028932800042364370728697472362754419465037558843440600594875202190141464267798534794834028183617460176327181077131522890384997260097844100294159300632600731620776705870372750987856603429668128326517669613551714497395933259602419616032149159820531063916646574191703986237500853119863289943502732825073419283617229619663718583847920156714374212855539108813595390448844015645986426501010528436562350410321371831719027878943533390195954873955639707481973912187791217786898351513620865446296041929994818866164870977541133855555857042206192337670312423786542360609203997947678358177783724709390161205559587317882932966316080510220248225881680710200848302214449425515950173274770080505409632063727227244907026655897723309100345639687144783378923633253376743799581876636791036610162391167402126102667075081684335214346434068374955763439593929904376722512246740577409759879690375857512949608398539628890737977663302833998713073370351927656493945824159383639254410845540456427179571892195791690007447385045441151235129177320313799116758401645498160228564442186826747029820193854520195734090915216866930772771461259415984789910267664453947156100589598081632110378584939017602370134586405723076777641970130622326726325987497202137052286317794808562060453760011208340603538612175286270223783157199364615620927776407971935816763704082210275443174946517519690202590504543161872253851265226167827790434529212157627650691610949705110516963419478009284750390056737836736258938357025442706729930214331833362130691148156831721948957899807807537830923522883336571707620565058086142840001731003224020739186830548066624925443481833222918423813779354486279060117407160590934490917272967052341585757605925390224562079279629371756975951099619671705594315951723723639591365711166304710620358891270414305399905416118115728469474266036366952527672850474328763751461914143125627243156506266806734298008252647769555157379863777755972689719608917486180986168329797462549962672288331891774445833029287638267708170148364841017936443672416770455877795789052522355134423840949567845472254646218691070760437301014860171911870292579220773676990235915702604048959788594356489308710790457240868379645552126191410940209580114329399728392347699020426844108568047171486002877586060656245429954227791014258570395770556318344542012749411508605580493631334608210133815042616979269167751322085606260029419385767461005049769997720397631536685361161924255306440667490119233002266847250825922091567325021078998471290037911164635636260528550758274420053425729650791766917752108604422259542674399701479813780141248598877277847784864082089378898883537779620693788778467150301256875765672665311358495812615692584449459585681051886901738556909732470045893640918376406736220328707071285275693254173215127021991176038639961101965794498281661621942317248147885306837481012361616671747529625583151814579003570545217992383950038729671369892750591325523050252386220543402821633782340414617390763367853918112882925646452842068087116430576784395627639014652834267553204203876333524664132057902039423186361509081936943535910989955722969722283393860055935824327675153293522020330853598150930279659427317228385656704086009006380237149946382574117666565710832199102995517212456270914235701938069135518137790747739507593554983909101440849200893386198710822595304607597409710966676290351296462309638143973875938770713653063889360861346758274948902609373457663818183088618527985019437741216410871525136350438580636802069036940599384572166158982359451952111822177192074974383145130012547004051877276669445046835601386273467485728903369238865395058802874290601709487843625786698011281097663203301581354159405454682312612296957206668473197877694356109294215524737238890239626470890036327735648738400493087742819760171778737020715623343887790331499187242992513416101954463452012514998537685166307097821326545958610005347667399417518403733496874986418612036096141529355244280232458754753345372976091373081516813424846881914097088983949903837364786100644109177487994539899290244375570701200571189145660072055227706163572220717654032731388785150595042005037875938087209658605327325488481412064724763353236387186927331783945377888305848843793383714792769876492086824540109637514513228163053445585999003478793459016761776059792753795866826364052800867465329832778895067299289313406038893395736420174938557669632924210101240712005620287491340444712185823779750693259304641926406373113070332171598304282135890020595362423165792592031039086257164071416304299287475273032402473775267814556214808029798315716939968734660350460268596821548690375387348114076764726472273849509717245740303767590437440007152304186593006157005015740961712694260482535141496097396318955746654688360746637663175460745432519889809197828426988974760829683852803949870750254752753655917869287330690163459773198539400170579525291391987077739557228283307505464594079866228123946614459441754432229485540921998607616970409939125738299797631655125356725985402414960994461660545559281154690589152504869291607510817994442870928964979864286850995262555970774705011289511124126200873423342146527515726506708921194089320552966904228769468887167992983519453075063734781239778071537978350027794743626517776161909501875011707584578603954447645072338755914814624100873125414968795802145131110333312405417329314877633773221124241199977325214847372612867355693225301046643764369060060703321614105145585910196779222447690710597088043753319644184761208637175967077385222118706816623080675614288165621290471664119005184038017034599306574342241076022918591960171435603090196377379025499546328551399921031425282779181480042730792219290667089159839677347176383797604534297770588964332534676438955056909540610266935421893735106630106744711449774801211523305832987356522444630883766380096011629660753716866467839929548057210742614711308542179890143897137578670916190617882886371869828284603863884458055447379074668385834112885015827067011038430600348085239538480446313087389855664043945300184430630274541159341109460122253502209005818114931017400311634736090252070019251607935991728504826473502861189075365293218244563987683161097457247225317911145420250382632300116501407386797243569418335930205627849973731916104025372708624786558065420822459645725342665522301796685026760835481886635374952665471204660076191846723005423238678404447860030312424920661308396046840973797091102646044376308987724930504031898243698401262735979361963697486128541476953121227075806495853497018117364684356305971135542322255515463726775154977716098833634843152419727431798704603114415420113970330087310256617476358664759850980363391141078815904432703283896589883831236784629888700117311736789361414715223075484917524742193579310230943921309891584862686171895026905955745763488689830886059566723560803894590764365093379500987226925804458329336025578217531920875211862030720033727804075366768284667780163612697338574615196028715572396951567527039850095971053544332428650285820287134904245223973223477948400857521004886524259936637197278229093840701275406841743389442917625410363098806387219342485149996546882029087651156976762666822808179503692410574532355668859722387088174615067143062449501309438333834571746864737938310121231515151577633734923854178669402312512141141316920472203230195922493619317915649610379246902428775465222061364643585606410697176049661645355605713059215425507314167015671475763875776421245321685530236395138639881706282438483718264987852150335598172638958339612217241512181728082205056770988307815335238498656452290974059620421541959223679071100776179666959662100335121985019826166912784803741106491161659189877435281148916584651349469665992343516780268397690227489155703935621385591937110133971171727849140886214284160106699746469365865770376206095715526566788239997842013224944935670030348677232381347029785038942659529429374908811752438788978803373420545929430222229285297465083509008346599044454678295185785445344469524669368382195673005767265536153025058692705553118801042815392200565746119501882008185747087925011642093724161755504472376683139515733157584620110858911435484047938032746323164613455214276877576313009201406831955843304744739580835364578541645287664323258879445568048908213920822846336245929934562970745984078184031470150152129125463933771429612913190602116089499537090320720761083247948426350009064700783952027166625983336952451046806269908944074405061105829308484733130712126318844384408015441511663601784816820334539763367092412410182126937338234980096774153948146648369038866299137076908523456503957426737911343378008954639544299691970099483966862198931474265849649788153059030269098164174064627968362764218172493913579887780574773179311030274157178686583724759993379147754668548327462068737984840825028446773780047565782286429055293912711992888322453579092677430063710773205681765828386565271931809766546825139106704666981476926456445370615525804063830821614403465575251497768050890018725919141673068333697421509927690697209754087260544486501155323554739498392342520167700638273656057678391671126736820543032387055994744113114003971258592813382258775669130022787039203213276929817477040829184251626819524245217524083032197599601101186595435166023055766192500098388780531478736988707242055570109621436032146731843683445487315129226398451494014983647001179925463620249830274536770767967058254545560587384558806216381241251840508521251479986022613391674862134538274934188236836331308229033834085516367909495422009971536114309795221564748890780726253713397711314045087059737024459173713797746497683020174163957536585729206748984725161724148558131689739587454841034041057914352209799178102238626088294133250074837155328336456993789082595955758446723889377526410773440359349214142103534088417920739475271448631612700894594070048611401513746335551733967645949261720896490486247338184623304762630130568141793594194218650564519799451310439305081606434422825850949394846465980748247839779786115424423252084400634145185362202387553490811653639751454579951469043949839519173543949423743005025571193511261866926235987895965585065187246436436843682232471642840172633645971314291322620910650071976893555864571382490261375307869106568487040291896663014351177616574176815356117429935836841920635591597649425418898590561440191164213315123589720334028090727729876172251918556244010986131810752763518510427383395415261594253591952229298204843229321858624055067232208590108466850370053593603201566076447796322192258187133694656272995930098346508614918469978367079449540117945375124401616659742664639752685603708381532830079922740506771132584381305476806740255548766191863958018634289300020894897385170443521971696371103100207425060267079428988910559398698385996152885192762501303686196126268056325777851755284083749011821039558253815412829536024700849617066108933162190133524922385623491427262865813307045974566166472590281591070463970332780784449360250622258506195726067974010531401641241035512196488098837926091207638103450392359760213775693499104798561919015363665239052187200086034842522517557079634844616499698453282152653763781960404596045041108131916891846485225019741979543505974117132581956991484287845386475259236641395836100930757696040946740661137557263044718560543767958677307625074231407726995678057538675285545067177667530584599189662666570317388941162965502000901531549316184522437215673152586674027422545001063431006892066283493235858636268600228430293408103003478064365570996775447725415700360118179371594410962579639327403415077074227828994213731224171856840822370788548973904393998878624109044870486959767411324403199260155694380800696755589438222231018137094202637726315322420278993900290165674695432834995435728022127631862036978253107809714867591969040463428273414456205547650401906942430457279699017553819780861186621519863123824685365110617027520439513576585225381366823461724152905252712532053907310221156250104474857055557787318960391432101581606035182914786638325419649770297891829460760229593417241449082861236096587504763274897918876981958896479085543958441499165798144806461284175232830424718585281040723349734411991123529290051759116267777940609045777759904133984863908030907275328629335721411255724785247318245904844642217255826292908151630085161147524626190516930584250020298193930844260949679821823815449018282925562744572960222183310685644258075607892621191333462290484893257571407193542440671168517170333742994962368630907046003909474197352219518293932899295950012696954672573204976901495315981450624406134263801423799582184582833788711340470867473120507734203649611582620829006216636640668787411077876451463587370882592604713411839909105869479470664412285227754965130318175539168010750084315272853317564020484212976475546578264558878454142305769558955602104221791344296008398130217211609426138906265071342871634740153449147103017959423832791291260460893316807483501089881895443040076282557876062802499556104166490250586398079479980547653402472290207252751293071709822067994641510827533628916008499531529114397377075491170788333872133334591647912242876242113951805186578408997573083048186146015867521351598204265879034444765180141623106811830524024667055842710993953041465938082737408496523743165042789494358823923381562149704195185460227971473113494737945639676059638058170912494618176206918655283312973523793192894707176742389039363983851945228107874868514823801094913924057979742201320511735509604878911299432491126720318012285862847041465068435815131468205148125805616813419331170127039877750114124410785793549217040861401542714089009990877208117425372782874457868026996259943417060616727662802883709210304858786872170496685465368227516357086469931801248827797374247428895437923791593663687210761568460008289577918706268115739388732878418453335254050486898617682429899340709106575660983447519972175278887850505376088011570422167581279384009857341206345059258075189884047351072133308848067837297661945370392171698737282883109410267562555288484358371109721055072710432127186180369231469831430623505989729749574920891376218614213689165544299602467444124483112339909744844849312561578442180129542679481290299154282960913423360388081377393014263378311778659007553769702012323050998086614796780385011426006565497030274757443187456232301791574346358147971805771501306081094910164909201856504758548192182664295333196597471603215884692955605286228439675185064145241874332074024866375185533669858028838323270468226444085003349060240895383305237133759551017019972017323474316039983867835408385436589114804402752167887824970417652720360431907140634665529953750158008046543238997796425164819680084715750902695403737023477390342429928298379552081307647895519144224741361585912059414604199605951708202369305383603026723869280526637536436666930821211920415411629085830784209087566798357195679312937533255028453181136292421929109646853691258161118738152049733051165824914551801609115585467801626964288194344866429130540960720666970119601167994593522055813343716725018922197161101849289591444158240809200297789631234172851465950425715175009073250899877040466748534867920904407940610293645386175560725040882745238405784880179832742104835958367455965702720520088526058949982167700527948545383507780782209249683066542312031373927670115288672836123205268955102434830090676979715600965772918340244048870974756258093440515736894389640423180621399930228306282393346486334130548403039945683319069988953622679835639569461744786088148304729126580803218156423304809970340966245838069973417096051204712031674581777495186523710297854566267064089666514558597527550860914923675196547987530867112851414149978136671238017553820065196101316641184207950634802438190102730143364694443882650565317263918286103419365467527635048092119825749168270772605416533744234739578011781104520095623143633337158959339232895549637129802963125102815927321157872361558687932517539474870281425882895112598506548473201454285987911818637171083992867207621885372136628957097693824547811376136168032376486790735105449969175462511704050446950291291059070936917839370015756591600923602561861858398907414057174997124076733365281230780587983761779119744714213831835449094101738162341462526856514974444649214579806858045932425151309559897637918466038083826727240919494017767897944078418662427175232292640052268072137357008038147800001970870863696301612610063321327108369663896053467879266711406098237516604403254112920436698233235504523173038290766848071543920975469245601584246224998110802359311507754753393454575697687579822336588430073272858180586340420309184984457815339644895676173284041634515453494230829199210494927831747746498794303624756519161165747123268294499469950078262792183330634130090646453911550557760638437708747390876064605766762757317645985993131055254606157707327648189731218947762111027289758740782414232132948827384657752758141163791004118314450609940730641070204362596235149600634946909820155767112864510334309011926597141114947168785998927966755753967386502175301105478477996747245000209259353212659749631364800049940281413494709568784028222047497117194190604315600998283306893744655919820523255803295699414009820083160651446322593441468020191692603572323864800466238867193179094023532891494733089937389615994140974490326707123816197432211062578116321737580565398709133086226439872756989206317298507590855289940898402411804325649667450564788460711954447409482796062838973237270047412178471465377408039885499536515189521733748445036685218760621374943357798775424147365235181399584142984485174820264182924564566048897178622526106546026004716294559472855788452887520449509777633810964517850602382509769577360738002669856232093626946992544948834717438752468560588270827252693228573309558699082327345072011024889155396269287476265771767302455499163495403889560872681181050500980574631684973361373962259804533613470061386145943727801402747014829645613713262104885215726387457490980571761857442721653148423610865660554427348335627258436871749044713199723662480373732537768203159047221656948737358492330135563640350871802126491996932764596164786162646097053880566506823761073968640523838005273166342838653412117609811340435040172279694394951877912361681421917988940104082204032262605813656180129358876414826845047352225913518218172369199562524078624796907282012933870858952962151260151218146089196151801642198503061614161911581946011503917131887641411950840101088043079910103327443621253203520295114248384618103481512014212279313563114323504650472829118929751750027816651433591808537527169485159267464756673919504806666298867895642391456306026830965637486710226078795207150262390789344599822982538375252118179165082730889342945378152615360063295672394997838562535906419023960532305010200817087815188880332216559616304004080110587114712305070245762414726605460061761953451643991458425019036859417428576344581227441857318797752052529110442398610755571152640740387922174979511090763268059421707099846220267139798472424273482066145889437135770704895032581987896097931213027540245579097589506216350717877574228032604941077281133326441983580395548830637424160582074484153387950063597710557468345739517424893671668357018102985791472956159096433688501139794403690735112660414653695903208579185263776767503394780834679312396476917352985517560828472761434611223637440658295537329335915418245248827469790555273790973982495670397754059240670796906835339274944096887259855812891551712287935870331556557427128259182943044253048736606196191655925175088281159286590736265052210993269906626199856447535710062073984833697618384522398836461680790858925846995648056632035270474322339355021556766701310465922725097941817612933542384520688247656737100338074492271412649634554019988721799121018165429540900460791786436640623957335671069011955730591824855616890263589021824939101331939080528148022355068364478397062132277761774966625378200911197942467142959055118596142182548176924633332839392610438119917796856501922814980568322203010687659992872949110395454816104449864150971355166492288277201926542147606271397812308735442323531217946172875264055433897051328947363483697168215337244348739225431541927767204433436533287035722800548275854981678006625657061826894642492350095191717345685729605948781259804266997955249671664524798424183546959341390332301069655789821023185995177745194808964575184203012659423548948734806956260252592996801441678781710836709477174898465878328674815807495346379756078200159233643233562235435792611261109472258812427360882154657696383847500268194088321762393641048485612530221530629576308263756288198191082697478038097594479915477611131818207769843703322420485627696521271623736691565810278937804934800074661098903034226667257415840876249064002709336742424951483829429695914990201531332449200747949140688680329336843165240968117300931215502643795933312022292823944876590852162477049449043238346088548215498094422746538272367279875988737215813958667979772406326148633822226075606885456858899081934046575375651902842030301815788872240827746628159718512063318532278391861634735860641389017680215426043864484283274520932510028860219660391719551523943753600965527018543500563008665630676748346881228040859679831979598101575491350043212360268128268731738499218744500775273838654329793862619981739622556562794418870362156443058798493861848553036969549958938762870316922883009532864142300414267439479902920349174423310915156898534938372684633164924126133330663655280809805553956483560163832534719658032646180899242903772444575607855647446729407341776677884877606316245441408276838884443634004071084058868584737017912921972046694721310087218304940613875202139807698876434699041298133388985744182195017203190444580660925866517144074753418841465618316215178469691326693383184592115016575224980195490961784623621066658694858849895107570013152530480061921606032780531948626539651387017725378866404009926936145113125089116926630581160636777371662608760188175273468432996372192471824065124365975321359439709123852901487755010547397543543337641353637711148552772030612452227509991429691728990085494504887841445530925916036434317162602949439129047839587616827466684703344570292222292567317943208975959607991514949086910902710547902551963406295830183782186324238663082283557162586800397567564339769109199952191638633444342619230061964293827172746270014619044095915307807999824603928074865999936304931391905341412606741454214091884789527691591809211955482922305897357180322162592383148458570687142124668420330327236158689862771234639609599036067403863252218005169439760536804877732406883984900400318961466090552657018757772082829104798715764432864233431472148934087345165992533171161528679630867356467125080342748471925304257505187547335619489267531018153461426143916948598647727933879907190959554298659916526759812796899440194271024055178779613582874384005533337089396450841781657171107647078760622843963210990543322263455461157273176521200497712288859706369669357930904353461388793103558003752356923571461074372583694119669714961669209811778801785829089951938433598109924914357223526041735110504587438901082683350857406915220827631235456803143310051318495225365517516048027656096995488740267690944466447823811098816849305215833912001700583319951408416082832995799822682848351927639780692484625727381949678049192709798424271995224674062907899716089028922862248543918986617186177757675510377871035261747089457408840335915785733932235999804530723937419905225543440754089934557308934328504951463093206557934489052944303336158000681285790742571780579079017664918584572961684146227763665356568786388637053579284487128043403717748454804007439379178600054517161678893804713242605215449757391879948636352941951703198082312827298160299193943831775112904936634657670037920536835149148693767692934230839129595702916383213694543754842163761186537582861471237896412413043533827577616234751071191768117253227677283853228130763221289652956686664168331897544705243273142980414228964801950762024111595497825860262015504868888373865933321843445401309611921064556019566083719290680885981935089120416098380076624098058141370206509738690629911523177972815321985807523717057815308387912566797345145664823773736912265930490694139422224301816136312185412598601799157616496950818380986803375713071756493789663729514842312835933069733470857585777714186739900860178949950375353436372703685663104325826679166764384749417421892531923338281191481587700859882207394131579747933301530152381123553628251493879132314274251065050805695176332838567707770723801301612580179996099418218606134166257892712034677375877426699837584382015354657932571250827897430812847435355461981910709784244988622145794065606649444927502124007112110502904754797158092097276087672681689116141860644851129767462430992721250277570922482888319434152403706022285635585712537527132615828448525095149050088911437294895801454539978340574110280589632065259406296739938330148005216162688659649426839224836191459691303051735405871312945184822428971726424273711751692442400281370140126725923230729724401352768073308427278861175919451536788609043144766252073663492811382076586129797406474062187805502141602896262496373979863717329889214011911268401702122924164638572696535332127616792039342873472324443968870406615770751064359350351779771214006812640717484649222512320854679208752026051096858404880361007152649429954416385729871798952392563624723896296963551564130033280414843281999032394070353447856920036068130449927931568936955202971611511602292122055285739610466466997010181798889019001099815017499404290846390187775462247008917397410731881116874517370754381623275154398740007054450936497017330313983837348807307583473957177166800292938342189621930557208606602927532638025894396292465935767681578832672357406225857653049071866629376435318836514492880274230623946451752555933723973930651054617027828741918002394644191856572218434242325786326183558977414988458030302054671246868664368197999055858583981536131402873082800060276077092623665432193761852900734378145454182915014207240585679138310756520888212335298999522984193450232704870737752995172627617364543410711705497259851100635429274060056611178105140797348844236027380640900633320166937850022676329638837352737013836424496299468990188856977223993835688355918873365137865786296203679784702435207248675556856799271252278555509085516833579552486724633624937897929949637471813083343906496368514683933857048697259158524052275265151036553230840831020999036366090255626833877235261451743204987696325390884072721931997560531807185183804604636127766969225247671052699332848060818876968076864622263832784196218343220884956395630232454962524309410906711329364412099415836713972336836018167871212445714259378677784687461273079418237768633396889417375840051146193615814912663216625330072662907406019835499279294749527894577692810955938600918558293445819862283636105041951087327867273613221189702345140917424258871009738285515618253072685007708783107152588085536896218839804063247648318025406997286466381329701993044746593943570945367472663710595651585561778545626915988836117082590766609731219821972304979147468104095329343257787146676019674897738414081470874142289561190617659465054324528851607486280488543502567978690227867358593155137072583158394773357238207314050024694917593485590368804634223190978472431250552026589970097247990948053473323256466571588069047672715635641280635137399311884682746845258980256495988985941004088960558783954617852290190303627767059098032516380566447218058592375514214616349279176937093991890637371167295131825484272712246053702450151429682485487457494094247378285900994715478378575522599694431375012025577893717736691922825918266556554224748972788210077608232412922109406802447464688843926348136789821504938687860396503097922173819565249605871565057813325587231460509810778899572560383520482215676102558686703834369570815547436269056835795465872031574196049900799050928467497656958633233547738415829239912980313159011503113469594236350980220939954838751398893086226872404703521046069411278804995340663431974400845995159037976555120798769375898798582659755677094018112598788015875491234767635809799408373071166187632472506333580636609791329417191856130379756274433390573792463600799272061354200908073244039407628859581910600943678483159554608871475459802435261459638738114339791610829243099707629160404291076961732530621674247791657482306533328612902342513661504619204068089242788843410805349562110757066145050612824241904200174768363060143042835863545788199710180201723653765376698538296589585564400183556772284979490084304842264655482889973778789441904035920189773071090932597750266435407274340699779548392550704593812989233567289577063964341696157328951045693982145809595583576708179799451943761159183523462112800684100689499779292766278699085472542113409990442154479093763939030706899762257587620135620960141394894350711924534197051773206810061034906518643739501560849526306401776235816120550872432684856767677083019268224976149244236132426279160609308120439958893883032174237548816982431375159590136596534932458820237394577427819921465165060616758985133256782225854691169277882290078768193666883660156332059149567038837791116407342114916226343102657264338688751144094521607492300444091363592229329271252833526623011101115633612523033998130678730683715664311874000455472143915082023689968732797088500427150260401417142642086292340245249513317844356290268902281572174111368408468821904872492642096546739436009178800042207517162813285093459226844056493533787618491465538829972652365114723265214172361163897044112798730510268871715070384294290250132149456383711437469808210211163671672191732901138249060969797077927720780127082341751720934330780751999310106543056610159377809304976392082324481622890148222666181938461237960024820918039816671119179589137685904424084046963669657591083088548788285122975046142220276045137698615360550294461059062900070147673747196355242274772301243615020619235186376708878304166730285885053251273898024558027993260131198737101723586525631159665704561513095681570757140764346043576584008230062903209477184765895143616148731584028622845626086954478030932374977414454059771067320367632850516285295074380156071831810512526864702148688585016374561467457325504902699235842218644815247562130656533970441136182762136212381769396166345751813195807018816835418887319709144581818793449891231981036061582301156683725057290839350756634032179622257410570005881372033507189485116016233271714419126456910506249906748024441792451102901106457846797340567766550916216075556911767432130145886813550040232816622732865357207587398394789333873049495844629785318785306055237539714351757023510875659394302735006377436767949176874253203806854577550905762315325481246650373967978332720634139563919962190649845656693878149322899360994371437571666565785908462250768570555862003159050608071080878359084787074208699006450648033394069917207891769414721283633578269123151348869554674123807244619170109272996327653508577329258184311858021127269841973927549020278786342880341946046129056198503504566167234268803253815283734015881811153199536206364654744476774667045748811551400904157558036654658522569173273081741740252851684322608264564816820701046713235206913993542914402293339350468785610020925240992506388790159539703327542726746207593484569221378119644292670890967806239776663269169477789352163632413923266187710171017341315791383731239356814198620093400357355088944365108686084635409588625076726944269518428610739305040528103383227106390076968501355886047700754503968360502923166615669476277744852501497404363206605110872342073431710211359591227498221653580521175561124505012649455544179941492417581100482570691347346118863596676375146572658193988241519948040142672844264543416615993628748540118366125485445733760703414303343956268158597324501944326991573854349257160965323457030204444386145685954295399443346614323507683456574732975888345169451111105140241101046812356688414820303244542211207665713085811497745858990599651822277378344800738822999596554832028752121791685524318662003058001599384453444653499098210731813759118328823923106286043148751842643009024535433549647982346406301657144861554975631205494198745100228830418328095245658262119808314598426418614030841753332718656168400010644587246806725587770032436260085235800615438782174152219771498447302558348599173843730588881718326859984242986386069046176047451605177268642548590600985915779245897357764966093601571709786720722823057688154402167450085469616980114240529915458222173720312549979828152831564103926859870109810838588288373665077416609003947202338151220185504973495894385645512529245788987920530672117945203871112722594191019503159542606009010017215970841734322751109773459944773739272360843687142013295037122862042319618394169669155976086072810401013026905896759999724084816403843026789282979072163787205502009765779472626066874282667511523135001411443991363370467114972254323688484927899098890647171168913816422190506675833230979412584562669443508795482765144178397502128272881904021063460712204518046064818140456308506634005042465158184078627761415407179431076059919611833006713632527516502697841381700546961729334104554138511516707302157097235633178713732979676993008600519853934843127659914379994120215069278970098581865422730214846445902603712590084935933751511770645462862299390986091964181663761638380748447031972005810482330390906497839504627251791786773705673243266035759131690737936320519065675268063048236749408049934358558983270880223156027299862860553398853464500484660446239392043813255966568902203023231686349857829304285082390607662121512299350211772862580676545375076085336535273860696256764824954388192202338695687725626552471125098970011785819931525101807424415732666932876451856706271836615468514895958751173191299200010378347507902117234837485017623370272789780465042410323927104795879073146700043542856541065044786398615876224450652568017700347471403329297527283937575267624414419823042339717971513272926090641149593110218171438633157357908596730122300395339372744362200508851256377331914828366524833620554147587446062604358454683271151921151424639660654551517562068174131581827912501145397206439967902343725592883317213541058159980653031340383184192545380956730020565391184279224073032297039884112816288551217567853937992729560095283846310549482277286051146797000151430666713864746275290895339814889928898065010712357510718845116277611032420997205481551489388764310705589945596768567234381261571707124371558457294164950054850821934573530625647269422645153590754200141257105400438288822635343268040112356291072999701920447798492453829771434727832712775012328509945369220918547225132922188936269709478330966812759218707760762999486194856638440623434129324819825272443863851246840262245645982129625255332646658113486265224928291126886961107368006013699354760864446550721425425475388071558016763833930463712488023566375101694821857947375175943470601684693134987336729861109196181662256209033785925518433754559857949928283344535970365253798863422790639161634668363701497616419986878143951931689142677917624405113563437975656005208617102508953083810593050303029333967574536957589035318005282144704740103732695636172393292129310917595330963901327259127535443185503199093942675466773659870412197873059611134797038560974223303960958690764240066087723726142328939648457487244662848031637462394462483347800052509910623252416118352270873960551530134127438214033238147561080885294150588937659070287157831873352059133076856780959296130798545997148396073651712893236720881262637681972120320454498359024726165590518390022467677481615307128932012590724168773179166923387824714442528753026259854255834865402576142403534256193582679278046285543706579779204460968343615256517402535542701040686278287951901968400709024384948268928587509181554018862586874383862035307917159554323371812040131937180583126532919444184700911190797245155872134818610077747522713534473648945283066663774406013285740317268533022704352252352650117917232276465914857044617318340739629190542343762241862350982121692900215045496484684934574641179172769411161022776509025587200023690934145057127382953063141350611024894167882552310746805114511340765575325964234850557872553901982118361994389920777301092235276407231912710120700766035502627235037604633841314876082180642090041108458387623657166521630882380964253762080494111183712923488143238284643978166413824348929029379044462155437651215759858583861870916884398195426099346399415597565534382737698879542687606482349403132289083168471474200197036902401544611891270832657102038330138980305289715194880132270238811425221909934316443779859465955576848118069867381524830843365499145167405617036473306690558668956275344704613948598764412759633233983798029640014541662391373441979842951053483011636008583548483837111554100568299498809382827993702546448149245829477103717215219315233405636957008434812572877418233533450836606049528198595134308015382937464437692012169369981262524083900426107950620643714473697092768898126438464524698867117714747979150572884307682551754601974823135284747788118635911113145682983581588440839062134526821681813850928566345183197521826716758751982465055241678848571363033041280782391982131687801310847704701072903853823340397619238162011653432973091441211495049254259108966638593727083000830464383682813269639332544310886260299625070946318572039441883679635751123456139389560273259891121283379813622059580264741900829758889386262791711177428121720973130835922676174747923833298099912484585336289225591215930279206249414965497243909234560727442984248570578935062592496674134698989242979129035794036974022636722854096843573086017306943140456094363724408278289152459555278690579825512923343561668154913589978526788352884217751462777791567164409718709222414871503438078839957282794593267580876874802981676523489925803783755457174458903251497731418101513729014503800316375053454392194478678031391047659165299871518190409135456207094901814382894310093807948578797213052753433752680740704345318246707531762926655602899302432358494849913310038780286088516292296831350882846886360581682092742031259992227547881874692990986111621623911343031947020844621260337927468607593189064830981766470821293664517476201943553612818807763445887787169757702345752235384211584358766891806534774776282751035646373617167413051522401315699552066307810650690924578061475607632784373383588883941636427115840639597325411680781905118397542444164179169202955396145327877709626210958726634343807846209377675190383460716561378978373248246582266925557564209754860383417971609054414334435310178242425219865242808614539862471377287463219893051716062911832353692654181026415502850078006598476969645168542287669119313909604176952646766634867383765890492486950513225654803555385335681193163076523659608610751775538016367283166288656313867330851393881851226000146445151178991430393055956816584041763465902923546231479585572992322895137851544976415874286323297152660507640770365869572314956683434244314272729062473097673108169705502047279960991203999101328710104429274375769507550571721175324649753878874581145114866864053148883756985632155264947808769804100371562856637072728748703916817965275315153148817367340709899839395495334935438368250139944491158021094128061207783943502382129808698004667104169559603096102426184048797519474548154883639374978338099497262885712399899607105678050484284727243415358466199105767178599545148038994176301206781633755081197752582358286487647603852080222576941054855213988779429617404989820852850961619272731385435985930614055198311646716990223941845827114696294721729272023772553324996882352797796384441561654146738605009348755901116915771741417968692001277667607465778397727573800421797090081285431536014283732392778545835002538184210222393760486412750884849743600912563207112376702839513683225588752275143334291453077031731755399855984987978220144509022522887879426828476580869822570371486549960347266448574226181360238815823559454451017031270138669623089162563308811653192670990341196118570480894627648652639492385161658417426166819966163418605611844118238502230441572712902160117543618619060036304112970195117663480550144144762678265821397977865277087839362288158347115881850691758267668984538308449296793736391487470081817881891171128698622753262793952836959771137728840822347187123590627815147376120300308716332135795770494638473025387124154987993004802116396945116121348364336220761694688554567622769498686452476122124233850177367685950954853549954608146512459307770889807665829542050797460998202662305591130189772148943485259240771575004776949692792866041770994843406150761844426420397774460920665388816465286185586755607808042674000796474810258904077313746871520601496894726518006516347314441368354095822962513553252128750143355837266344575621686120714115653557681441821563250506283177763861015019366022712031207632709735475374503617506910939326547576965133600903935840547460371914472734385817317171308407810418168742940710524013541958381214862457206291559173942310397748770799135748243669437768192618204644078102059903161322146580794073774676377845473567417374371135797631314296306061207691351750032748501462710693215393653566312281304737047204805799862358775216523953620493236991671120538179360463070137627526097083766716739386551178126288688018653370775716380388049736457066722728302307168444945343478611534188171960438141570421910221731666545162990787554241941150637131783885447510656758636739446201903796604469490211616796321156030849064277420403060755217037199373705991229684290357380348891151489173247079066257461317828050316664170957929908414878686356884841661801158668861334593831170830259831926734872317918309098278632073046472276364862581136246431410119125366770807867471788535831113998633162974110677990198672200396469082305457242612333202481037398485112266463957584390260304458121255089971452946000413451256110417980403033625306198792646276783644559540961497738740386323502892604966889765741430772381339589371383381410140888018098992826932021068289061690306765660425007697455194181388479735641094694429849165982273143112546045216552389255582772291615748409871239171658324346438183333608665945221845748562145438308407219328773163516346940792773589840095710008029826964787647470973589476829320455394363827944382514430818364936679851039741930842944348559695344433196614294239542511724561199551238008393491985800001452273848431547151724959987337712004832513081088264495607908845354333946934872421099540140369792342207703625265705091552122406525717071165144902467410903578238823175747767629014406758185047479813197557304843196526343618049744362295354061888104894501942452249166506688847458466385811350152809615467340645237247444592050273030921029402125602783584640567138142807998598492389015238407659165536503461663685524891392856342709941762331029756663741882377055874288319788023942679006586250629925693547955590438269361655136414988296394899857317724869182720119603658177825979013832870405418987164875874340926144982825309033753784364465624207884994321611982344744498915763382383370148899809712154478108930377682907218336962794388288562451057966952834616179730046909188059109238558692392133567632428817579441634521401015071037934140288710226335135495298431950686223096844919146057259428941807106242422141226344392274806504523447109031415842700065908645290110322991354446795929465365091332966870221645091427640385582797179794750292619764078011155183573224108014401524174343984579882064237259078097564885764525721362675348506328704598194835603905945410557294008969384049524152583777477969892262729455310235981782793195571469776251553864503474161630736522218879321897175378598479985268425778349755232939762539938991546715956875297887146718746795969808754453621799737439541929381192343629364167907108835955948393976241636400948923132298427872937077122425283181261130051750982249138822308689216092696025423749575453410018303091131995914145157619333896305150489871679599055307721216890349896128408845295851575297481726494579417431337962303904772802194004812245679146794125525382468474008431126100665725387000240591483910288987651607976367946441777413342248751378329165299383294383249378439689326920050156066139947466773045304192349323818589214228528504660297846789600615289260140696815720602561360200781431516802507120744651800242857465944104109263519778372282391992759949448391728578980680840936675935004139291032539837119197029754662187661579367489638474200445940083706216057479178182275972370019002434008695261963356500103150280938164058875625341146568036112042380403044959900073509152819679215023437999784956574897208495882730705331559719696518492733643920442612670858620356414787287319799714027435526776789561846380313369510415266379064192982900493032203205518357322183036655601020061115048037304608001030883287463008033130134389295841524751393143921002462117123568356160759599696416692036017110265897504924274960511331557777788043205805250172146124044881476153468870769981592556885873553735383394859733942207153077963552887441566868607077058579487739279711666105898730499961672698157861065235666633185710678169082569412238419574565801023429832475338018796226442117398164415533716950519642944844189109688182209170852027407542114273632072818484186095340353452489577245685540063646647379366971325360873216558308213744770708900277004473838600515299804317921258488132327267996489883063258681896808390473380869847619990707343651000347949618037811879099646322790937277703686284986458102903664163824258445519421034652091560019537180959894519798799952773856891196911004188655501933685372379798268532103438493674721915188922891215971213252600208292707291685402805695710081551208207697898613036684068968191514766144995718489862051192838608208594413898697825567538608152036856106846472276959240336357879348485291505096481622965417004984189415879689881947250037382033904292106156171919660794565257313527107055072793908022434412780346571679888808442276193280458607397002256150451258634752698876479319460768151309629769332402708731190789064665095873595050051680514645747298369497782254770695519368856396921689086026825453418085262904645297917039666592007441729629326061773350395960546914117293074458375716889463857322532115171744192590281635997350357886980106110000035393395835228954070926350520910459204860828774204652083495639217011669821090510638673325323693621438561291523501748123745219203415130025505976749148333573784533397743521437658062452158346377788417225262246816341197897571045849636421698035432887894913606643700415595944250602418071847961412564719922017521310460899522410338977583585271126878691007630282485274511925164258138139421370027140552647432350066319435666235217964219557574846738640624566708759492527880568671333490589727552136461648274784306697374374045602558886128779641828717752162065780280908026563806969072598624510327433851834096985555112316707866819975636343720102987883024876718976921928124904259301367186197704942039288191317214053435526729857436290963835794614772607975126243011642607886619421835604026791864277616650653840962042801048108852343893809603137689214312989235938786667040389401761475979028341890921405955800353236289278653383952601356489194009530368407368291995610879350960535719996755925086860783852250238488925875798387848147576834612901887282624155605520257594915883753840761762868574152683125764394607600886659579119504188430947655002336325944556287899498630122902467116528674841575453948119922591059579067293298009245108227189810968393204890331503104058532596391559110876483092697341393866716131794333078285376132130291862598807040560688433762999440373821482808996869215969807037651531130620614033551986738628798965593193436197741291321312360100292593794054189483147715401382323500205039760706118864428974923024593476761077830235060580542543315290493570421561324245257702753358605518786959318433453179856621444966527131787860929504393673976527730109572492214430593836845673512040899335010106253786556383257682405681416669303671276248817825915262727807015946387467932531492335453214436614382332654719655074958436100956681235946083141280392349547346872170779763848140568937027167722096377369249742579249791900897470852197795360321101124617412795867347775981105200587594533755297799911525290341014965150054898095673978732952127170488304702574652704786907527378662638604484968994653239931260440203637906181921357789669748193238460398842479706693125431853888559547887870002479657169116449323541668502094862447773107944082576536470557289021722556493820777430348306965382243840471037714716472666552813277722139217321080247294488835496592851728335176681570005229539726873574974124267108822170495996676498252124509663875502213728618392410948367027178616040967162410680906517617566928542314846493215152034010290689842088818326228924903667218345311787952659003804017763813581494298168735064396030655407513738261281340773867308639720275596336877904785166988860726126261928527809165787363737714227791719692456546345563125521628437439518686708702169470677468979755453907115205620952422576290786645111761770503204790388651257079560268756593172110073879803789338417114723356455884351551795414413466440236023917441129942802959865344464303071214791043129145278961823100201082523174603513947237301715353275034369808035946468524292818087530824689698401089847354304028144634444232629901472257404531364837923791530532004415343027050252613128243500567163523135907294190497754860432239681227842551588306902523237010682558943782004374880744403390381238572627042234721875922464577953935832467215156430057324310796617368679332502724436501160638006247015871094015304672470098250863778258227614431623121589221993507599326178702978538054619026808483549473980276836483863286126272202260302381919115203705533594549592243745975721142925326433119570221072786092315421128904161615201318659012752257891864308743979530345655901397020690831648106400673746867585703629136313351353019395725488340192738970911761727427299900653333571914985078182591697761127508055371179410961873138597267104907065613769004132749757292591136610567384703062091894250987485753282405857313775816047281397343739684646351899816746816502567000121095043021729668791749798865011054092747519941018049700487119984592848125834795563951118986071238994838855659937528140479780545897161736381480342246370359755921974646743301770925961420744528581449030120534097556281051442105333612420866492987546163195080301040316389276250953982927415043542986931510996784513750430646157982910379692784293482647103751198752546137676843896042698749119554187862125538258604731552415152254116229030999738632973676966197448642651134723574956725221720478760494254360999718979022033349708220442353790293534024511217004647037699043813374389514092578285177640768133533206929956050566923930777911202766741300585066777612671418754575077849479949903399019381272302889302824995143025949902855025782750472933180657009854228140734254894630187648002473859524903439405004326062558032341096391373314231627463678513071399709967156794482650292935261697298588138389683853612206950643934370317749988490451384802271441999865030643114355732287485783891261857573182617589667405292081160106810812213770107787352257663676057786762101825851965626497103519675608805974077840552212196913211959987180735690560653478919281388180690953438167640340084506513605596927030574521075113336596570519273308250860602777340219462876149460084553557380889958154184862850115856180195290437723902068917784830821664036209107684960416840652459725662314255190688248651258314354397434632955260710659051687676353917135053634265621599398969048100299893115196496906369062278754899862810634599391643353988997155778111601889295614231408391921388528120702655108059061572430950212880654133590789207510039500757821999635034693194313550189801169536910263462195027694088571014866916801156124647597369185680474961155873120294257255816014514338112404756479908646853604568308854697901823666137814814882181363787746804286007180685234465091315329781177944782365512597145692493945796993086019974862295324636364646455137237489687953263486352454735354709707678178152419684686064724628955292212152408688232822692928590420840126942466555437436739907940299082039860160263859173373453055665791467706946188762930042750293797623399475063994458899159550399459951200203924321937483387366970196741933381653482097846385672862186569330224755655590797531285482541311349501472705641289489717696648387737022426473666940696870012883531760994102125917129952332994004987214816950875437022701236643693423404478134555778672515980089434697927659535248666451102906799129290400525297858284287809373690510967461434097440416664118262639157978896802528440383220779486811014002172216343001755183751255608187978182204498955362486962575631183815894505426600058935825992012859117522336439876317995569469013033065505518341160530300417549357950911123449945448912793753135189178498769367848900932253988754970620340808392736460156378606729174067314890714564352561462707999356105732239184168225989614696786645022444901725870768665148825190280646355426418259660644680209969795873700752540043352759960203101207159204974577062472600212654715818075790023734501528854655209033334356537709516940624661443464524012695181859747527733219778999290854740071489022080086542152654707620116056967741108015361700648237800347651194722338151075911257076499282228098679122341727890094376568723059830258333927280413658495071495576364617236944128151911243348033174232736779333855852721658808921456789030650300650745739523545949754298523363913017862186417709397556727525132893847937661819594927607549168341257644996751951528781647830015798172163274486668007793147676008016300802948349702358729718979829755329633879757392520149577611487936418178388724095206156861522918500721463882113538144754991511105318220971351007845822996472659307980784384164390007804639946623219436447866787850408214346467373577564025792788479349357576315622129059394779348116871931458878222757945782259949891947357620855565095089225005036493656425398802261738227634816369103711826041697441902088450824840269483968124831009635912490493415172053821255750813906937023943290586077238077690595908703791753322549004922282195879330854144364486731309423702352628494615004992901621119277455637598901543561084938900752023612699017050988392073082069398868511617329838625352421996115060021544457552847000678570270300148715626276309891688347740790733656073853857039383961399898129839253268263443053072202400474712428120634732795561394474982560419283788077020036953534241900436955073506191967265773803866165743583851287151898188024228501568885920813337453700650137990853443682344035717656726715257441274694687185189581649782961726964024363596832146165497648975658449078737007107183785346008464082915790889647162683055189080793324375583556745191080571234914285901595015831762075106052572010762483489510161033100357547660213472683784097793846928018910044543203091146781818235566116863682799047202706356763955377689722723368725156840159384574258572472530835728620536046793105247176568122482646886345685259557858162208531080295830159063399436056293800462730008438678373770608773881350077420131029823714553667005286583773012676739496198249387177970872188780461305000663327426190779796586747484393252320092196024849578545338519298945179329070126789229117845943429268492344146298105090714452187700479606334674095612678402055204268578210102571971440020131453344706968860969882385797330283829201883945426443869392113324109597711553847390893031153517386182728859103901607176107461064345661569601747147195128745963166576589137283254121425252063957948806506128495280095553270425633273501194913164543742223211456226009796404797428629544882744314911160839178790392115423794586337513779953073164514083126670096622599167400715556448168883452440115314320542015738109888984512325298712164351389855195457140425902178140839843720376713323235406800277134027021275256299377770573718544648597676696277985353206024598547622474628037185930045402040634376869715102512195618851008306108427054052550534078670930610013516054114230663748540108378600851642141952646637251130082843354053234888332633652361361912355908560460364546036532785344708533564692683011080305114804828961568543583689189371595599425640995439586907212958463530039492332661524750626523316906040352193126842435962532720424385739359765458307967558748370536360529053633187693549066219645786259908302805087583458544323106405680432443894319655077620874582997170846145384219922252235947499564245776637669202924407295419951831957183027440307980748267035660200723720860025242184006779945936431473994383671783700011817762745898830305210052204959855144226050706601822797878757384373914160852902179430730177536140437498286853206690685131491541732536483262058007518446352205867551699506086994077510469375460762260649025196041825729924215801098739565882157228008406914104074167233141826323836176634109017561050721328769584481215029371652745519850856816122417449611452667120254741973599153746030038341315204269709039615803841690777641630274548868040858249795727993720304583125095353783023560721768822912704999785722429977009421196773118010416487800249253882391325387816762301104238354730879209915602259810817108361641949062480193771211595321772939022472544050079220687499176086435749045275761297135034358169235522549266518580464300928663810752487793000145382615237368494448431266902578244882809833593095852446989775114375622579439208037243884215441139177215231479082927349872001473896631368461212330643532721817209284774331891290780921463386928390204290725217145572886631408562071916446423202078816817714788715927627589188294992708714303561559778190234319984202692396291437176863777692630200838678162700129534308297932466259983228918139537311152965420545020966464336374924894080843731015917361191286353844620695589740637193379652249062456206070113534664668949919816782640079753402373797775079242100145705297212228987005408681998579376924222530488022925612854160730776780258448083380264016305139978070058941274318156726211858710650015302793215420034970048539144691089167030409704064540265796938385974329151491726583005044211526806234215272341107315580884305191912956766657746762320838276549254383177025362421084541255091754469362537048855911851556270565326092942145347421919882154342291285741561339828775079611587124028712183903593189242949726038967271386895834173173191587188285879591687568735020094613490008860287618939230582783889382254765957636820456412501876828127158082455366178613390717551267055611033574324638443229581913308361861317315337971442743576252631129414822404615382876555086509565815997157102560089084877338269277549800767781891125288750650799623968772925936402847174277718179581092099703619124057002121093099237643950749571625206433793260450684575054652132899292014881697854100463210587866940324342016540345881997486723559194547011894121699007626038014397875479663474136548213767019849696115719558808092010414910157825824989172901049715879023520687089611188267231891809167272775666353601136716773863288537826429499451656591572168721071613070081731626803279356878395812732791337831898505732027937522237962171190090116807094335552231143103836411775460221073947847452933101290648950936364663240128473801635486006922945530813114359364386213922757877233689811201168997228364480835163132485805537165411154870390919627624079169569628004681106983414902440360170866262436456027077383288099753721454506046700063025472799649413060634940895019747587296545192030818760907623933913244439591714589949621247655231749743702147737187211760564472203327747440950436622293810170001934599976279833414853307632669946948135501789227827324645843521393942575361671180049827716747053587304038479366634691629181893372173597732607965498063650966086529299272231422069612000177236913238725036859613217854781992519617766309381067275225379423712399548378217104840910829989843260239175056256881727593859602304935676242703700981072634009955551917133162479733164019973445060470243971881764121696511584915233532276927456934761749058785613694407601568311762800454061416944499077837902023798000259395582304523678807814916231017414700588523372079901087297166959787075100673763811330330829793187993435730199863504159240508866671545027684366814670254658003590926048854616446672118751634629122022193593895630005199346067550993643760526304766078138251449637786961333488617483983851719415741150752869709084080950149015773992148461982845236260011169517948286104552420907229429137560141603201539516070169768028149058673119418713851127842243373967615875422146712652298911329388986276995889492022402564410461108915818376739829473124243805918844519107437627956902001487228858153695716421473523799057131458563340995093401638840892520828009244333250771490571717442843603180967322572718540528528467986778440771470238425476268682673050437066374285121309599554640186914295921330087016946725558081474240240282080285400428890806017060625869183580794297792569282414954292376839844054368792328385733660604220471168506315556705128573944371728884310171599136061348025039223561759196155158893253507661752820339401826044527103383720661187919995956597540326010349658688116955712136526586493823898607964927349041652003626597260964581234016611857800357828618143443404662473608160679677238039048963889976958546718015435151821978034273370346727681525395916243430062851754494177846923727258469231649291588708995847761894006227304845236888158399433906883430662276664936200700843851380705375126992484373354984271212148785632732517463609166385449542339676229819992263060187496391446518223713250201492819401680193365461539441311352522274839753392485176498083610342239748508461707126820793366086088917159672142034627255890793354993049410888729136469497637147204466081545156548967559226671901880575713784222377179845716809037990607116027108840010843011163418084072345552504695802687289327512886105337986393027945309634006433957858599041163986261651162775626614749185751689837318111113273542335077009324067240124999059307909552846501584742648188746979130002546246841650254307194776795472328870474943044088483808156676933204412326164108896517912261596374083589588730304249438474548787489377959237979154988490570233700947420726443524646828493955805177018941654502227170030029205768250039895093955526080651374557256443782928378913301104576118173632133773966707691296338072676754858657088951329054116285232712172847568036659380380145566797956303279846741380398555213560928527488419876740092662909767204946843323226027632267814401147707959139301530517467298909686133032395614817046488906446561258550432976869735795612801681946106733324992321702381120262305561456487773910563272290113756222554527476824018361091340743965195782743318955503295177042979715958632690566543214908118451625237592457308775299706437845831587982203878234605201616988184114755848129350070124185860003022130794717044800454321547457870610707465287840223860084599897123094787684194403315859888045939596749071638538715152887744050454152351621225035524303752206966458039425289402314339633419985661616661052983646102251184326715540262819502522427027813234474603328540443186081860657154701054883145062025101822729154154774667568461829848499572921962515723714292744888962866169384581440644953980322562937315042338115564273089991516106270756000764141845319933863004930607177626315710138640139394623663896091746942270465849761880448612291090573190996982845855113690470253809400126803698082382115136774108923505220870101861378593763448789918134227065574103266693291480302763469418106504623304579092184709138085460285092150200674702212337370622507798207388512557426812675942668824114600399529784305199078933559528304459092088032352242365498350703033386840660892151833342568541579377314829696374453264387521992675103745339640144364376394646826913893681540528330881209642059413379541735016030768907755870959665311293788215421335548049721456400693331238282667867002144868662227757209931211145982403593914385028068806475270304312801846205517425310922719103027358311179967203540244075779854790195099182861618570165519421386559030768117438104726380483792364276586930450609809790004524245098249030696582263108320247858322530005860851147009251677217487588795011673874914272803835093247959976719113516581680954115974182350338292916923377379139491203515649075718239258866734255550920811029609068630824135874199624361923019170227782468354590487730310635059820590173291208234976303628388770793146984483571394052151040900779962803700164096243599590819737787580602963278533471386811508235585007441804969534935504104968261802902627146385451877203934081739443022791215102315538071591090028741440294236922665171193574486013738012338715722763180078630456386232640515663788066795246863657627171856655511783576515037442097719398789810117006517983620971369232010569729821454986264172852241168506732239078362187445792843354540282314958547163695061415874387739776548817966354551603166062438636706873359247997659163565390234581328063152979629243789880380761845132538258503468750356988064615646482325370661870570085161587606907501214720937847100220116747956725632357624964467928109882598927224690448446275515518762343539022449459393140408389154212629964717045508721581116956898485498910343849537447087188954405915639442752685207282832794880989997998619507571020866122566626816213723640589524142050827042354217236492937563443582613271292162761911650998139157917019246899953775295841467903817077283380906189100672663133976071854200953991233098948922387362940120715263763275346338250211182018335251185137733333838397557255934924125392624981298310390454262678496550337468503163431690657290519730650900708979066759250668378931468713415545511409568059997722685531284643029146950501384220830965375043545216764215075684052454897285840949767923822266599858200196357268049160255344468299415331015003483502603750287752347683831621705479427275157353351053011831490828893763627742582180386665323226464434659163625141049705326009177066915830606347250941158460669004826888358339360577861920346388513575349912999958391848821821971215317990335316413185049953001090834809330822130672115267100866569992411823780405396187427754700622326390959738370306231959014524044740522670284899511461505228336432004515729569301127375604577788611179920612244609004695669692575244111377128612224300306186688212669935754278769304986469754785181393227097313512242907060843398455156398173760832718057467990364891953457198202772842721881459656406273337794503334615110737817246473493149095586721960977972962844708638327409946921283078321650946565131709400755100183263340149398237355417036399105927729306483644764067939368965317226898771146456039085460729609024287208084562348022280302532496317000959753106585128759421827561586896749986595197651353814180468171615432234077341163634889128746819902368537670731073070704378958706903249339302985260136014278285193070481302790076276319971976957212390235603299212134777452374952690725083731695122393622098237257094702440140372556567642467683579690994589036627061263711080368476612540356161026551458538930310918530308911003072296122412977717465370487789611769356799681006103950545763181896641889532992544786140409073084782898975213681859417436330873537200709716226751388902424683199056276480803805740011866308273398409423593362677715244194271960786248885570247776211924199189352493444698549706443861023994071546220807767858504215711356514926120230513886723834292873095398253051821297165758072020924462897103228157972416128765244537534260252172898324118099780501181039456608078945492357409609818188129655342774850864428399879429641597775560456295727228444522139357132044179866235877454901651987063968408762830702696734766557772680719821211959261471570085920338560689484420866150385305429828407698949284601829343938869839145902117883199620361895210280621148514433412219994652500170770700605359026274708935110636444419117278133787136978092044450611880921760925578567430635517998568175538965741036522302548512572184582530723885643591864849285282885549222154675480220852330815285847895260147048522578497916037169215363004866374459468321051352893972542856066033081025390907191555166880978322265417799580358411033052718527632285752511674355994720292771086539278156131816342287509040629722780266311783715533318747907051187548962213100618287037297177394580301270783636383063996288778631124263466064159506657338200406041283551580876828604438563035104975861139793332204863034148292292507174411869479712036140536604912410542812436257241824157595157360746842283874904718562021365210982079782776836616673609256921243044217591875196138995871650035442768366928939950467575245562480928248862035242034037209412541189550862524360910686537269919661283409547930293407263396986247255179554830158312348255071974735660119124180168729136467194955981265513073504277594783484593994077728074852856618467390738636127572875385216781230329060532533400973233769543374287219469856286550155314687368596099720159878962065031070509926042892398626909409130838196960130800386643134454734678658947671890936426164543276061338999907930478372060203126899718649630998117820834148510274209577368902940997599236984500758967603853621759544127389720740284230204563077343412353601841558320202529156965966005468434951918068756955803484899139319468388798283636670854195244537518920653931027457107325399948458503565216823640660229768341515141782324039685045402248148086379245653911015005724923774754287913094879560646013330219332980892793216149108289946198544438738777774801066571284146740167306977426975516125600016242095064235752060471286018467275151624173629470123122804013030971542776858695429413943271037951991188004389932908657068088188018428443313753326118864533656002450006095064331204624424015399527785532593558501632281315516208578467048901708539429094080679811821062789366501030156109959301889885990293854784486715647281228547163212348633826362118693558503727177170099584850604605260902901295480604337019901650398700643392059524123967231125127111440047197331600987143933996532520312158936412019144201327999957092426887258653139621809633365399012619653451012513688117511856543671484564552461910464211533409490166795129433809028506252046485594942215921573283380517950566865116160833630233428260459129930137823476597321862990615770837710071885083234039590130255489227473129693857296258247380733939762580770256165366249930575151195637751323732911870434609834038378777848769153244087476053022174512956980001638530529357725084209366588297880125070376391606151430860371221682128259281858338669660543184939236972505331251770757882379579729035738919623733782476213542253480443126705446995821937974007907011449475351628119633553975471287335805416209063307520617262047589547122853241157792104588744408549974568433859182691687406023325851018728817564626256326122207501673143751741182915534533708964092277702681564004878477839700677949730753215552426008423741153080903509971476965382932976266565982319954465684974465301372079630020852232182344965382447163759533447425729164862327058877157715577034900995350419597185826009746305571643375032773180266938705987794244357228210779277789561934360236196428027555970479607656770980923883328718877768135625512907100265625859139954755043395657109943057144691382096633727197507707130006232727532451593760215527331889561468097999588658077824042985712081521160754187874577567320524315128866003875588854025622108585377803563480134506427174141130659887412101696700450420643537695856567122946784261639857296590903405084878738540915520189558060818296411092013005323516904081790720833927627981298760218114532102972394467235757352837368770244783218144777108468863190894553956329200986932507157084521256348656572409293467551910734632145690380954959165016409558445104747621536980293757775359048004494599717111075460175155461118665468559330584266916980739035711793822130453807864297553002560806098231446826328431718944821899031524540798862581630884389224386065956762775553292297052133674581103481585270423778612257674501094926187354443906759181436013217596956138197509315147707883380034770641365708625750839877601607580936999545606811033056540157311938320243707056285870477554830306508318251110500061701452113721959972434978506822983414928711010000954176372108356844856673315692101627985010737430344150098697721442144481810993571650121935365087079974811691225086043213667398290559302204321662919263650153306092254591006504469786841914946566465280948207313390193327549805824329342652252384852577150393559314106317700064849220211144609621594260221317529412861052168355538519050967649473166997112151059355983289979037100352968739009164820324841897180727136400554539246750738703013079840672569956017321832193895553152975524194219843141727223495294089803817454139641698854745345307785296205539614451626914266372058613409780793060008541628549929344123294735793539014820327098675052323930242267276336485475005218219855015358830890287047741344461107803617801081830904324670177791075515144433265373356534858649269017015171467565807735134696705166279666574796748281042979079069804083421361390705769585427038312451974365452188891999039500879756155472284541529058319159583489834073412699644359189645691797159096374465151900719931029596395943345259760251627455431896435669004140359393517143534139743059182034896285870631782074594714468209274840194509307276801569543203940645444984455920402534232342154882927705691809898487393286409634575760709995449315071219801531010378134495122257707617603514895615255640473184864500806222913806110855342070379687182888759101231738560016309197974403639541704225790328665396639386597142567464179847232523981600426769765764550510462002500750012698039900621694187750844287010166811780102342506025887271575542373331994315046183895974701435771166864245204773376712658189596317060111457650629449465893651726496720306453483919418647895632012806888015476241601458194274096488537478433583109185880597216959065218937824200957363457172944269463772123258195605794150218687713700464797872061128523522028857787200089200976543040819132739999013285975465403147692062315102312884813814463366416639705608980891607145776159788584508676789856920250686652703133386498533345802741276303244123548730841501987929526099967125248168906340878700362626558367255646788275104285606001339724780024747502548129864900588646612643267711295727947826060017908115060109419218150928483271320571556529277170838873144759107573187091036036710426015337819038905787450392551270953335950552724382326313430820216420222851099424371467569329647715996878785404794250278236926657154760357178968480373914355937354684600137876461407488333799976980007233325307687452320852801228489717425053572465131612208542734716153841029428958104471452373778987935731368899513870684270062189615842404281375814192400740296891662505367696659538756737886484863270659503815939296840579542967298396246130509239997829887158528737934307391396333957485767551695332281071601974892577974205116493829002421969951614205943608130353973953516498271869344145502725568405948217884996569456904190771139545055970971024224514689691960807733767991364536151346805381653197837448485989151428424931644845894164113079467441096138817828481571639426996869353450365230116800232962497056097915162026191937614460613637799210703045374938715852037523007472208770582941918081630432844755722219660234010698890432156184630186870396194563933691177219378087551680200547183877129579499093348114875941048284100851894047823775840165343419372571819702088433122098346529216157116992869626812912298887575124575270525657911469429870218439578000605438907353795292391751484739213933441033190664574815076004743833806915728671344590887935040187135916745268361892532387665545826083281076414458297596719839121850577040467016212270322506588113676188066676536101777319743976124875388374416931003366778648159116189883870017944684322269511071455668411983641789891347578379909173051981105048764042476927058821292501703717550152302648166548617798334303621835162167347956236443810395933917889395274306734447223208096685192943386808309363369129186255480276520701790790993542745742935961586565108046045143870656412061628847086599437412804767971106988975398453651740510122710183856227649640313265926790652750041264784166896161275620241071095942410511719211025144467487013406789303209577945135912490099308499617866557722553300661157733730844990754591340263318802415776293517838067163880750933231823883026142763006598354865681026025426916484058020234280009705333673011611467499033157895409256347055048320883591121776042901894896231116027382399369708493785270304677943398598042814817833904768724583732375586467894950903772081771325763182570092983487105498781126877994781601650486492360107064587656523866874352816899729503488504310337350951747615336483641987723621749225876348610085619006398236313288654617592703815199380745921382088491539191893837346054666980532323476921937742473200120583791735854136184219782992105888375050948492285615946808975489422679976727328150781207378594447225539697023702517071321352567333833875650349410182310186712274295885940848522307553923792181387225110720039807891350289911279531527722257114103633977723422883166268431933525553403591527286070320534495634495309095807652208511357324038674452649211549814830528034776842441727033986719672738897729026220333733605979224785395380217106302689229814704844876294563864330007248146350558483405724146185823398567412013585669230843472316764808575837910158773168668181262518667033646875757961421783542865890115151964537606767715793135571457587458038971661105053307887223225731808170871757366061408265480916962229877436494932454111657447316991026146422821735736488800278163843592920293472434357935544508215422111946584720359042003095240979480220001520778815322395079199817695259071746127579786278697004459369095727432070050473974927050448101458391756779388949352697505594540864198285839943804746002760315371460144571310036561321266331678121051716673935005056730588447876160623255612814054616456910687068628050050017412069568710907126542764263097386786981729671271613235674412789812856732281662669767659674831620419897168686168593587986826120419423373322456606516341181602734150901123932761551207434738382428099368430605585096392936614006168051020753012596051124129613512095591600368174563998306790205690435765837261004094799233793933201200177240163342527966303909286711005710839172019385000963685088363048881463501505932462310674124206164084165978976657960359655182766344753791975868181557892268045021350940166020234913783413612732496377450253480506406342690847247248959577392174935601993147324708236097935595067505635885891309502908772457584782721119306575558764261806280224083393895237989383695466111123393836419063305441710494425197618147331598703552846281059959114259588676280447513536398450922417166781904981820872485301361604604120386438958611602299347368009493507071557762808533088193757553945722808241927005080459611200945667287715836635104130953643867955300881539483809275351120145037854231505910221042949603897507061155753416220222598130661908234897622309535493266368595712294397019071218969403908017605645287116709354281747767740991666994726739035048052585305581282326125270818923231186234777145204872402208929334707456260098675903225250285158676020266572463030951032854745300087449643612924201949128967810729354617338626029198109330095797860110514961387025569325371744747244775726257891926092597110551580139048488546506900356562910576628255486161912283589941988133984790018858099691275512736106603953938850224943987024896469910252897300589931935844880758531356855734085553539390181030436267102092158992610568497292251423998214113180790656017499958777916820461341397277152116171230805387850597751172580608145387541475277928520293559988530167864195640200184446731937928426453774432195048517932289550393586535971632625704768312048198961798055308873703379234318968015927176450963236068994163742923705695145331596329666882582052324439265382561125498034105217180638443753920165221263774657009999421426707324558789774128793159155832754741655146030523664041500435579502444816672058061835149930339435316913874357704088920361776642922331972353717235644827928558377519292319808801863943216749897001907132416686714147682123159313072098887756784006527220819816842253624792912419530606978218257984077287391355240936648935103771762214967430145756611552869360974735049144340658354051506413943848301696922595105259952449442373507148273121491184780995278940377736772466320780253813970759498512446671204526950457250959599249115949029407157639719612348622228650718213343224676426958353256110652265599958337082153669699059224509593405756878986289882680312827081290273931610625154388623983464221810681477539647915450054812867077535152476037364256130466647264264879381079770069630725917793520279903456494546921892012621723815871540272482812933566902024503769773051278559361299242619698793910848947641647534328272066449438443483770813871328214237254660514930773564561724725971908313930230952603457342671683962529200300020620635925311789419673747110018162221070420051662918908334090650214856959627214355248251462986106153807871683320131904340401457598957242616445411409438550105251647363235280931467941408348763875386655512096313328206022561537018313202943558588310805376635012762113642139300227943249048953250016130394315306872330695273060888555220321220568330728202419857286196373860953270474615007756352152760244658200442105854284174167944868367580174189589466683352584964227473194338631225692949845263356398154490342962886476131110544041757238822466219775320803346083075644659424726396802777026806865096027697654823004298057922785727477488663575089925191900422052458348477031551524725681923641514407389323089430714489693767247071614528112385994384461982185644429624759957758669779419465017110942989109545377331777589686843659716928896293226969483140561488733126933454236429413651076185309590943751084362683763972604109437759412265263833934194647603640535488272716483104311999677668316362193602058944868163160899139175478100736203111318525544220107993423119321201163862436639920614577177374253187150861858633770266602638530608866381156603952780539474862310928254701454515994719023742228140827037005747558419548096750452768916216569464700076081430550515031711362729648383687542480754490719578268185166126042558792544374744420022886364312871086740410587854401328032310289351158191202602735688104538049355281138041467458970338990691346759894501700099424864935433359681811557898487740430844873336708712594684006242766769579387321028971351689973393276965353767743862951154721315340916752780408088998744219208288860541431835869682495001889205017537645687241104696955669928232691710849038774139508515906990632008128351012488120804616703311947039986808509775377376255316351904610502265669757954701624797414163016338835332659411723701787482128460974715527354271592916139283909857231270691647556366261078010031643835655307876739773130809341564774909167215841252267057639533952076212255946379629966804629924591644354372921913501967384439423530921941538360490696519666432123278976375855612998586471402227529242937335825283042540172448495540930425868062458169550411238106803018506500681247935758275622332797248838553905785644130429539317102743729001689155707446486419691156489078451458101360934312262688740397784934938885957511744298854463339428206657179560916067847394385427795670267666838481459448968506860435674280361505411651962328536023879068187211146040219548691617909450324990393499415287649438637916641477509711695832363497715301571134984699956058510096098872995406914943677517983224532507651388420522755305832118363318633180176370934614481479677503977140110463418227926564866685931409324162679038773406940912524157160723267080595243640687443009519170572654680394998815550675125763796814962862792531579115950252250993839447778350821644779248437962254751610917280495687139699284815540371286573423490820663257722386587855239475697099718366318971305673799880540209345037056796869305549545872219277357046111371548599209504061341742618418475064599693123766672963393667259198209180949289291591182780620852384870940736233875092242609335342989871333407152738871879865150942801480281608306791348383967047591444005511572578870547727325232466164730942620483211808225854268723234057871696934416795182687723713170865289966048565201146897045726723769597968341583218201324266036258561440157464589267397563169824001094117893450811032442330976501672241544538843122704283923088496522106117088059351693131045666465880166161495412191536054325372239196285930947945328873855308026828947683602301266507867474024133568811792603422109599514457187302671890233850969440892514098219144835185380815241172406754017723864523100917328648063305328814292890833446471931440339426453825808187102609746697861857728554195943749794115344509079622404688165923815809968493600279110631521701582949267827901173872548305621259205948560290182237185529359981660543953594464850021831697602004739164708975170572408335436554372704912544617053335750498699932090374960337909432353108603754916486778029170734919305130319733245630507400647953622693565935088191739984132699700248555293598538029882741195385201188671713719687120711209881792185432168585056832086762858879593949630046697563136298808775955369600611573542524235150752108203514473630017964000266449412969984707350391465972775978080844574483116739702327550901293586862627723709152748049200540291929820756264603498878658178337637330349779920910069609143202212188339109291974767828847641027653483583916979795563348595471812285226999568299464948470450054518951423718650212591607702001919773738240716344005955470425488517347695865886337979622754315999905978929059354085773167169703278500697864402583461228589681061123689398254954212594243969764752283179241485184766842935161480761798334942803520822572415222790653084923960144585579067044178152608558991418532783331891544798710162022699666188267827367267367035809737065483552889972704286956959417532592054160635184263970841190966079379198138218940498700140805473702036927507050993481213814318421211404375512856706799248024417257038425985820381092761426207772663654349498975330720063005487148723475989589907349086725395584029105780510007992372198927937954181673177314920390572009100273866811043039944913881563547742260095268335063547779425381700709499267466522504002843019174951197665052519757231660990677089010099645677513396382197149191915429151550380650681854289324152054697443351699372613515559376755881025108502637142699521868686289722695148026032469275911306895339987037695949267572507631578247951696942658704807805532737182260263932901244597579129146910429847722042768650369499973316111207086820485823873476786826773837598170240323033631978048369012674196463087756829809042000529296056922214238042451500859453553579327948467924890264081016045777147693472646899715435585478116827184181665850508628908265381403569795089853761134234269863267514128214210114980628826343741390885930807704795303732112392779707701739451940655345342142841676038315111900438794069268525500661086911280634762592447917978631789922716753337937208586853540821748137549020114638482107753535425243101511867902457857854202772701893356173097201698034003934981998169983963897684058164564270199190569883630338351570409215586982581293663355007613234805514635002044219356555313426044260999357259280745119735856157720687586608720449795174683944468768498960725746869093637280443523656561924524450934839231835534125426608085937305725692748367640428348938276307978835825511010001836987863986917433882723432519700027985769554036634517193619395248772292152231038397545047913871094612386700240060142540371815332605631374247033276574134551104845049911637686643484677735247997023088939546882102334969177764808870652126115745569073622582427446449624855233843187962626338426187422329087772560123245876354752255886608875958389379273248110499800038816484579956604749456738737871878003840002681632109661035146744390694644667024801002581968294715959839832677745819684026929158167046961334923807945108274208861840039809589566762445908958765102373475464131161554789648641245041760134918817325873456143159293822957701376762549444800590349674664553655383348185644113681897437351763327778161039482232987376294224693520855512028400101804585437259656943065845783573683341059100749554224051680252318960972061190881676941956766348333413920012832790035782074143810660543937123096181018472333358545857792040627688082937075944427289322828274477477324741888052111620378662875761500578056801490051185132203773301773340552865166303349367374085795013037091028823820074294689192084991108568419653882423102091477878568420731561013075556007729925987524177175562281608950303724411243540187962847479222338062480390258742419819490368042447505901845334399147051755428282065598569347298715368304717589955827487980611244063471201208744524304768423792384268907726563391091105106909151531174679584153947725695582992246287873537870100569058062418358415944086327717037523493710309810080925737222147138985081904216588086016042700512023419924155650593132201563727999729881003755866830011223116957414372315164955960419241298311376165231458604951756392889149028474855349807110136775565669104504231073325610046506204991149450834168211225825418561636418892437219584210631221308273568270812078405923238022682054800490312764002206390737003738958910668987907371156113247773316609223255600743450854048688600393514401224035328188384143587453146429636923939084087895587342144614369654820128861524442920184630372309300670107481379999334516931792468154878011949916599994051469261167988639724429644530194848330161345843560438243671686727475163654192320155177073364579832785160103701175942180124382890621229297278573347233791662290789463602653806293999317516654480779133125503592322236625415880384325917232625107548733589517453408750244480772111402883858201977169413120301482774247877248670200877163888880911366973309206618674869597507046497263307005950255857930607768091171443249708058814164498121648030390380838647003150997899977689324863170594499465958312829432429529074417767510746672083389131423368358502116304400866187725661082080218789225032440768515839465748041947632304099945771417460234864843090938900856732703180990954289646071516215306469153628869494816827885795065408616253502303631810960784811010355430408665587022264983371229639896899880935485832066064574452458929710301165035111938082338293937219710642205573908906434785154677274284413800201462422304410988144524950422685577586680754118316993867358629539257479598172393287993066807266898771693441278761479538289499384111977508564391840514924888284714275832013656801663582520566893343137508198778662786039710486138433837227269797334536670204196047556494640943039362189547951476712319569105282312079610826914301409899841897229647300418041722000466741103230942230177994559383568956100308103155013119541971596076431176186001816520111195820205439469523531287556953513092925542923013575181047383518933328263310163423300250954939416310328209793224649002572849308100728287526623954770107690546159256426076745858090659922518039597887412587349430958722275631663273522346547236280980836091657621439696179662373644096304196374816709334233640395898386794684034976857302793414001063324249348386264697785471142983239964275661371304766062210602661978325499779535163328473357165617575003258712474300039048269197938463341017224711813720973679798780404448563906906756243463304038223595823752048670013244224606631549616922660831984143547541416268399319893849222410549009185616599066265910269553390923357723637514226905361432148568309584287082650632220368884230795867329643468315711433527266374320313827238044383997691340164324088826138968667762241208911364458651569412165662363691107731985875354475156713782127982969067970856243224948459536769512613919725976114473023513683576589343527855482477370122878970744799175920126349662271825636010261185447055507194725496947963299057751653458805234509635848660708647822119422203593020937348900833554902022497060795967321349875684181259160495033477238427814247507830721740531486384500426360611358853336299753599750690511205651469906792041611988442858574695335917265962752010802430198128287768119460991097343692795100665408202749929555435515702889223810873464916968371717699919806672288990500244102737942878724577401332650008166592998628041372994373452681520189091251275206664905547581857054397181184663067902928358143762247005971462937009872864902750640394748365195332830486178031515936881692560756200696772259094752236209012399847126002595943659536072733605389399046868303948387248968868226497096352869375139497424941280953390168636105853211238141404793013170193523132331491542853624018000297472226271703554635227065821026890228086859005978980617143871386327885138370908667501805185522795954916986900434835039499722784709580356819654416269971051505572952017564073253097444530650022367432861636054034641525728570364642537241842663825469411432915906366480790425261224003734894780973011410643248912680606778525705554131008203387225287785971195432478735378340607193074375258340193412645081957011317382028226740076454638064459253391650878763991050588248420691036159365348904463660416173027209229732670799039227374197069121793222410273278023005295674851635174918708006463062662900348158229838559046164231980824775888717576949060488035209472854672541830665593636520178264314831578047406420728744938708506172992771585258130788477904783980451270022163826322159147379893583876850473616545673777369860452458679238309305904408553247367359610331810018211674941392547955735875544284298168090999564250111104188613615770111977702488162751052231538585087183362316905100352036803610959561273173754418323379512603613112470532792902588746405092580529540555980783214212907236926218995643894923523531174142385107809876528970914067815622434192544282110701005532255860350249814590130633462561663881459673302958801635138704819522863190811053079362596535655235830850268113188247968218065769589124574610736298845507472839670808799707034530031453917146639444660752065886973677487840288835025996052116617361949180484292201626980446980300398629888826280352287054816826667321751775376949971031798337382008269759701847355657529197671455955411648041556946104839202099189745643492363114268731893994790348391617094484472491086826498543327492177290823754483788021579990626258704865477471577805832670517805883131364567362185327524706856563635386510328386092179819747232633063051654593272795934251416705298353120321029402421760495527709910592126670137124478384065282618548660032537683353179631508743325202601815926605792698755931667233626783100296061039095220466923431760019920860883433698773836622651524166403576469362388438688162487662619159939193734273906147554309774697653568117103363500628013549179137911005622125829297020000967879773940699832572340646228513452295309414828770938704891480943288561950243308273509596610285975275915143229113706636459901487732956774078588532702726167937369047125133504659088201473098256251207143745685845482236973924643586345008054737723121270792149752631482262260436871316552743859651235821637384737712503261150095318164248802017079451779479115007097916955723096553786468329298326340951940378481296697595204936704881974082964809402511938485719882239910113222875868428065907582939548337689598333775567265399037594479568584593911650413257386736558472399566216339105095187849382334368346729500073283869597301705957819762179299278972272591260839926753104059431572122314568446041398158649440103223226891119054786112667536935059977597789359858255932146637853867345082097646118282547212683067948763476081898691905744519508170390400190214854480901302348678201180173331144728419823112890862211510869882418393518319826479435481339897844295643952479235014840772352840516882763480086771975072343975473885393537524965569542259066538794747095723642102105363054065284613107545945076942778358547129509526756581488914448535377991455890786066359043672081790549058648397838475843703133077091289836936032666863894685262284714921614603279643583675383897203850542649579335786185959751337207694680106495236937710736060176589086018171793922105238432914737494403088297438111073391885656590721705386084036475527097821266113800854852444149106834584243275063519724700702826420286259517502889858859513082830332166232910295924801090690070574431452117223766149698842849335773578517583665261094621483513366804386433746605230803145772199751226094863010043425654356826845537172388848060022945984032751619300213619745056700143390026420206639553750953031427044942106845287572946630320410247148182854202769821073543681368432376665505610803163513030066719884896716395253535094471916900504356380591250154607232184605915344369454776679326643589132975986939668258835892455407123510373579111788325044523306847134837827298562586179223309765994105217574811551438032848863421219022880264626607367058322309295407357336729537125867056215208079703198931167727743875142347465220413368943929481470975640196904725014894519542150796005578922186487786493414888587353893099685214897822402273153551986670210608574266023524257273684015146721730269019426309184049570866601775014832244739510606102819806928746425595708332015210307861722422148203473621278274857699591572607801944150487330855454204406068876090250859169600717141518452943021855121735154457489924145716506474211211580727920635506029192605696351791213292670260543263952848410931464819310485086544766045234767537449546386965880328127503725299899646133363939149243026506982720148843455194761697237158905261180349211735577767498616019175642407936512235436283356108922060703943481206547462561041140108779234193302582138800424973743797446020157281376038941921368535950352832821103467082703500019708699496209091390700467926881707209767901442294166083354119832420095645089021271685114729028235027175172697577002698108949549940621742547806886307632445775370056608559347574793235114216853670983406176096690374475142620330590558385119443643588737952626268104395745420078302406853209214202420831774085757421350860091012194429596602068132881544094290897142398962782607577114391347595307558027114703006361922326666868672340060892482167131294725093281297611801719231564657545020095049167956282523073376453851682756725805506559201192228444594506566015155479091727694594953316428357122087635253191016765103268961636556285282621595341160920219884844924647640027805694409116619541238908101015724305596960518516916485555278918952760026818824523662604325635612215046098723759783083188016926078026910587969782798768416715024378365005063393752556679078467015743926686903894674824170643034617575022199680937949663886765281853411210913614003426533502511792703689965089594868834305395208468345111125058278338023823098014763710927020515964586640499709540653745257560819688575789013574235605698343955487859122605205488318834670549598088078811786434902199223631173138627070172473040076166789882034773872085223985851942983825398372471714220050636003578159483575439191538489362251847443942395960568693799217798293104798497980115829024235965785183037447855409463931212793389844586700208322830633732532658982215312812892666780650459494136014025217510913418778610023862362609260638079551743544184722281022551558979446452006571170979587043619424989139335275796676374192199343773538782786648060400170436881252340768668644957302003569528255085109888217641204403692123978294034461824102977603948619180267891087476096340572787175033430457947160538507782070004229487786135028614842804674354693763046862980436433179542718709396397223235394948763967681265077347272028056268763252924725606086748694161894501983675064275496099292379787141522596595660238827634086292323930351436468550572520715387764719384827279196899694906462271766443209239192616856369861682686405495282176412501383528344731230318259101739351241565642716646574263211883036045698956532266893664804368982260564050257777579196286490610187545492375384651679988091972623283122024489519265510560005360348765563602767989193774615370594778579790493748876762276950335670266845585396837430093777125433724786281929971634272179486337328003516115023199690932903540278372904118301688004041301285503266383442668108547425760777911607733574620590119636486159718538137017066832612943673028318786123196850797555913878218004020632115689933685168835801812760326971017822446667362658983828841182220606506965690361310611342383735496024917763505420103547578379554977730751633671021929765477785286675794605171855553303089835355537856168134989267820876635503044379073756065097321926817272200549397787005037406389088825184934561677023721557024094015612261838371510974478915324886532076784419017559661106362861440501033585714249106669761086141100836643217225139295062341265057705790818395445349820805142382853586312597166122777620112420111736623440963574621666569041795824829459049830079459773259517693070472658113163566440858042121200072023220252865102320949019632200081340265666355134928306014934210633122249693989645905693290505607689904003802842979189124632926370277343135894087291821281063187829075743467023118158641205531290209874935984791619623928788813360399966585953300745293404398679173173990949080358541406563733048933996853781421563071546810291497417348809250688161850662121941264825901113065287861121555388355922083737577379212906592291999604258780800437165842946319776050779574804440073129015422076556588201062184015137251287511883224501463982870788644551899979164287069670482824403289877975654441258719714344675683950521437202954315266713582524588660907168631994588925817034198541189170374997839514876777607820165110427435101486616882425542400872773083855048470324397504337382876889580582135245188300432424631907514749227526862318338407857849952722537567776162231042635849219483440179665178337427116886562501934780670584458266345549819983894176082001149443683172674141474844391257340483499006885326532423900472539067231200837356057570519557419841823810133174184269205174171621605375897311504208305472228151351070528352581831427908388254321076975537559712936686398283294853384950538878885179868106736432805697716065417437496441240471517680233583960013501099167745238556225174589089861980051735227751143834848814785444230551145244607650403236437046042305448391282442318674461898756262639108371497398273578036741947918035604846306781364160656275957035496278867553196850502024931790795584254150655064675938050054731435037000310427592420635992524646174826844253220222678566082033280914120243826749643811764471935072592809418376110533692030776424902863585123820570376904645041858635766889483445807190222236725072071617651570853362577654550607527735524908685784423414666277585537321895704371283252746107777076425597499056797635916230015977979067309498908437869175123546604521739867847898560722048933947713859207684186210104237549175226666496414114688079843659435017752535189704622164554113605541339800929929046412055109239993963154068475941648731941947735778883449479070737153344309074143851913510249925928763030187729745198765253037589529761165988812770935231162681015468986568708009028567148509926583887420822622889246883388666327335586799202798752950114217704814004352149223350437354706837664370942551939892478945111457823336275357572003417359279508324525131062958023417010663228116705709582781768887024461682387392750357922108714728198795097142414937519772163184702921025100777548200603392812407690396068701157442352195535900331016214722980890488133800605565397654238996495966539277991605593418286631868497832056683889720153610777937997873858151122674215387887999919906108346621819467331262560205562366184000448416681111679529969764722666197922341741576644845526062984395726330311448802822286212038555388537397932558635449021072501165089497872130510063905694401577721055255685653922583336040002591431289524714018312397027404924008374265811741566818924265304230001153902191880786105354022901392634302483965845986146136317284468911885546041389829918876812839548603811269005411551940607523662250003689323139232425237950445723618980405466778664169948858910542515888252800502912498562539819037100269317615433859580930817542557965100764789428674878308559871206197249416111570238068331307728753142882404344481638836640423232322262600118020711114036164818134670804146464770425772356057199401650613079458645958622699445106361251697345762090863160270392411545053314528325990525464650044660479676959598919892240706000271931188325996972253344568572110595790617948811019427085091116274363836553292520532270065078781944029290452022587362088919590037491688468613877895078631408665633004869404214105478709510769380998255486993942505694421922025686669110292799681538496068375047102404969626593254338220373397171171255584834866095731788207834209781623805762409101041903675216611590881609848897792809082730914129703705985238678959304189139793899128066000028011087261676591843964332431957365999696195617319886213629049775615806027197990369968018845684249438021874824002394995119885172008921767662992564640298492756792921533713407670157852718784902177150686319091443822820724164004767575310787652445135916916738290456290242703839562489756445751798948728242974261137613184274428446123025424107051535667672896772725888427813081887539654358169838037196432014655167022307160605100510281200461310026624825681101666779695010219807062874175439696232416742225393190001059740462740146002264019167870776754767739794383978230984710491319977049794638099169120994079301390975997465215586795584873431402718497344621485818205140512050470070394883694239691415131456965274201670567873553173108847172834433605100063509954225431158999017457253286155782357843161967085946543765721380577590686155654112816398040611098496156031475733525490832428999029493946061004466830057981964413292700899715522814306933269256662235444340490276364713376791825510844688720369572266950990790569834187952136692767133992237833635327112527693681481095617438407432036187840243593792384967541400915396925883309229327446058850274321423745075623027562519082834392387180981697286837546066721448190867647551956993128024220501127088568278350166411474221066622942854191931902034212509667731863630297715089166870873805843884958704615340185626912802494168401679037005896836331630655978022834822086805856804170345971480181770785532404174943578993685055093449641471478229339231076113896801326999462214760113910390702797271145182104759674477741212592064816914769270177142133688483330514560654397687433709212020660164115388821236229960599633039878393113178135486466608881824382088797230536197063638269682126246743994736870733585180403244620043015102938967201469985290129145075400923291757629462894217381895557141374289966768002541618198527533733891100310368078364687934988099338908439274768050811045042393331495336034910325246279562198072210642688688329324468229123992760166130700940601768490878853816202848958878635538280542189714935878041577625253306868073955037837506825908604085012902461742384826281502310052613519041918478355497276375575581681942238331992157214331293623269686361934774482686527226246559585588423756434305153455167431192143801309055477640814813913315564896150001011691441277024238492661148419575046712395775829674064758849103492434537929182739522259294786559803422865421105915842875115926025178624406384366578837594466194387582519869649299404299665743792828478830570063746794628326019525180237643729289302985194360078490834145425081576051568018596984367912853525756533112269788227997810210928543723390057674392135216166416487172119742161217127307234661027553976950799477306177408047633450076593161441916967080286909374087362946694068685069018870221882049720830406684614239171818272050839877210452582585937493921882703298744526496389282524157521164575896257982398540093729057931874524607868188998022243197005911972958904019792122832303239461121739721650364535561646362015246132434468475400231184211376343928483447197711233755142765724787932438207544269043451563854331456947542722916500676298361738873388158916842584107412047537621608649706311557169615484118036499016711707947028914643885523816335423130402394143187409569630130429740878858960168921236581704554919943724232148432940717384088780852655433849138115216902735988822978539842533663721709599863124544652050765170258026594753885461086684203532444460743334920755057579921169103944815127610266938443670561706832665012421226671595874777750050294052183527059523733047982300651796136242569185554317951816616863667853168234291843096584589233809428463760490342335602424302805135324373867759223296896192264434937501667217230385995432458246885192453549512880083552057006919852256987353030658322480118518370012556046300681873365259459744955666801621887808313843361730020816194266708703969194678539249537223407448461778622305868421328178177569392628337968240321733393136807484761627305319544371422779056996151571069505194541395534856390089178027667058795749805039634846380055603880587676893484693194061896121995182507411675877482377400262739844145988002290892995592687098239903033274059997833499743170386928824620528772043996858470817409185661934877035860485885723783329243894525216271065568900307314041313663556337863202692026951200625365008233653311183735508852566760220732702589986454508118193548215557556700600944728184215750854753329840372896278235287000117988458667773494382345144143416763263351892120113552635759152746094440870913411436264078223331971904175752110469560103054183545645547462167668423070437343695525283158981387922803089098271043477489150858251890588041862727791946005190077731379576458539216385572838718450308502837185665405661276355765039055274021372539812801795428975519083758246575509279400484522718419932127472122968594124358433127226570592183313486899148067131506155634686755787055370327837693461424373690898964346512208222732631983982918162651674771287813411195582474831915717575342323555240639216677919582933381647035223708300530204022952778527939987022800915333454504575888126800005825821775233106476093120649405276464442757977088733258974250339265019275329188659747174154622960411756228213718878235370700891588742543312042720910643532532127532547270409924982405544676850288551147942160843382751885260460400063099919871567948831381334920771257046428921642012750232699539217543797915912757044480134230771741307459631767765151889777867617646275252960429893799702060757524500318945293338235125339540106498632751498335525048402547312301333066043982051873593810400192158563673665933422917504418701949500881646584713665889145337417621330910805337045206456022131185778348138110769853018400483183182006412017979773468276208774724310717472076373776704337205491898614198923301386671786828739181273314621649795020482948994249826408498239761968498108637721591841249802095789022725800560486407750529774838117537842327121433204320040470970752174624968516626109110966952359303604707655856940469751040089002402110924601186459437529314439804843193568350883153295534222795081109557168730615067059277436453445518419695818049273904807503193062663206047247825960830239356346114830126593240173119173036855721113060153739693087389531098906135836209593027081961510583417165327717294211423065940512655588226638964571824194306735732839573690440007473039167762141532773993062845656826182997780059871910127415624684292675115589735652572480203243071956914016575611798721663650017078619565726089244511719196790010473094803768100641221987441267084722909924346225766712127318502419553104841910266194187178479948490454249550603248535246800351372382666591475598008983392851018151401630114406390286686922548109549202441481040013067546502008930916172026922638021151723097059875331545455658662475412702008185874011799253150243782390245128849796510540560319140986708930183038366144948674877084394533705871572903335530974712015410919738219036511580659830837466150934470367725660859764207421531988624686463791738911749344863882834719315582526413303176457432507636662369687962237378131435688670320374515980134267965025046553234695213266004806773465802519624998798394953506323127660321663702087917879722670270756827817245166599324780624360051854096288384097055095658679650914271247307393776110821264653596105101849813727088071626896640381395673247798443347177936052134477839717122492517740837052117710047192071530431866719896329450994646384126909556907174740116051381166941188873811422654580064663581845211410087781120094183929023685008608439711467446389733772631053913664522935349762241993820820497953308682651906429619810348393759226487519309870531380604280323396710253735704305709348955746796086415930302509525993888623515637251647264877738366242553572102694530872233573463699804846070302335249964071914214169701490922005459889989850259353021400165798221041292657823012467147906443741592446636602333505778190068752641899169872840774315048991990566115884728458017470516678661876575853170048930581999649356744147575521172558546814052408897766762721721775130012382774822130048661019260660258128388337109912849272835682485769931846431547258018647026498864003805387048720569410356656838240422992107573592862479657651648570190533987950674964316576849524063809638224689741919760297035001787537031969901796557309145213975055426971187311528180354394979264354835512478207457484605247240734920488129571802242580730577030046379622763292158349902230516677110476554099843223006147538136600389621884802603239661867520084439687916088399755783017905835040661498748801699177654819248205967981750403766153631979158143925358501392817253548870320731848833345407558030720717396543665330530474701716344772651444126362689155414280332448645469732902878432963093180009115204943068841998526562895867537448974072057948319981395261697359098690881317920210154559669543330475949538554370225072986955432509666946277592349495896005580464911718576387344127533701503319605995455113793175831915722195348719601760296925064247742432631420296865624814438875091661182100657455693061255814697590301424646726774830949113443307345332533560102430156775401995691254105983456182419919408039383987709277372396899241598970069870847583344714015364134097225293155640488252288435961581738802218549003185493172228786082022652718099735317157595235863239177102756982323799315621640118463293708571354246475832505642009029470971471329789505120982059626762656468271222117153619824319285677418642404043555103480054207729736313575372236932237758567294562879962730298061727842403634240749461005480053603289126550831624997514900200313865448583973154713818225296532429270367356536218671463377326418322400882296894840382998556163688429425444362235746259269212154010876669344318539341767111908607615612474679014114395460184516660255180508057445540651442503998794853013320003629282282560624690134854474024102148556253108365761379444413025295329189957294982314945847343700768973771001499179565482410750127790251068759749428371116745003540851914231162552105748462509388500997912297338738915843181449059590000970548053371293648835633557770206951523669527401552590858769952556565553287772602598954444872526452486611333664870612860064448551731785539932476825347110879617606026694562086878846861904596011684023787425288460018827679405093811898915587506008471023877487065947729168606879401987872757981063587837450350127727815679482281554143556578817446335358940284800644928265544474254695810571121168419588210059488210672535656529422325153677944235199099092080968176834019428521120398973996589332949654505848240801827557122792529333238041353390158995551922468093345094940892890326117431023095347293236932789440778452530970520856242755029935739909528287164859753298069990403428645020064187698492004862598551113229175466034296789922664992748777654176607128832496384528186753073056130634612821272070459354937438253410801757680670908591698187739543897084229888292541130670718537540025578675450176512030109263908139470866441475062962197133682050120694179213760459742134321744646567503023954925385782745763485914814443934566090679214404298084111367295690173388139385876726256740426021215921813583868460937900774090147404011054278591659480900209612784936267899304018982605307801441364752252630013010316898117734993342450323254761673771023031518259800066552589859664213349803834078342438057866233519514613253640325508412798570330953355934913809644434193591136249191441282964508678323522533327491855728280808469276233334012551957525399756374965305318848136660775719477785340248395357237136486945499771421229459700995355505528238908140709458203696817446011877133273760271897111702606990497191830664719606934582258908567552635794250885139816789353021973660674682319523443181820921276626730785621292860710837684319246181869072847721278150106568130910991819981942897657094719368267913942575416912317826689610475206130246057026494591456008137544326595999396377917191273120402646782848544692409014726010579058071071275791251573820281545377792496341382198358697769300541353625542711531789582016718291713403921941813645787063672932687736542265858973712101471503433178784212117710649857162307142815579263543315425500005114179922428525589838860119572338405942453649518099198298198385603080143695983004350595147873750644702482332079301907931498888420766998760634147757215048945468069895991878340165484602583678562378727478615422270549082913281367376456705167595659816074543627339616969790280096112590760986021258975884977242815384055282524452674899367341416971363791178564534312503424845523366744256341098911575919259468294067476548803508448363383720709760032013127043623084584433179275584593079639662905340679780539375847112857945503331742360904754872097592069866268073731087034574653470948835730716203927547866520268059502623024350457314196008887844184895229524451647421812583940238548231612464598693509257743302988145394048965047882024062901220361696966321928757425533524660627612750336534874197972073587544773103634594772470098002757454458402961575053391050460889707672265701083375917898923774766215137871800803342795884861274898396736529298072826211511004368557384983468454138562387868895284406200924584746733879195234188222619145672028402345730606207068383890642824446559753254716659100642828824721088469678902675398891781931433092440418742106105732599137793806485630317485497009324557183090792277680225663446222660373245622624959103946333133400344511085695483853961813980879174307953336030163044670421078986757930232313512692619221659065853058560314852695551911464614337001818311219487918926350363523619299013303070740959446072850493309975589490335588973774912575580834793193967336645075495941808584899298909031927359220299241245424025745725121877874146786894704497752915436951256834270324782075825196432104952917529122607173491317657140965336514402920375277455083386277202041630063779230079809575225278225779955638353574704634907665459441564840486516113373307248924247870334633024973230937805839976230216809292932105026012298695291099852318065359193784598913020057712344184206032410427902002272155663029144057142051421270707059430710563423319003522720297116565871487553347813895039286967650456020790976091037232471839371171405020190439916328800391056260210483520498235413458868056072534004995983619946198628794406356436444381401794978154955480377893629954517525176906139613730876236686095658171931064147422503323013164757594521767109162568802660905146865534530624647267470542340918380935584201602547972903824563658531176073472159608730530114326953832391418756610264081397977350246615083005763648232600638471325918041291171877239711736806161116513776000253231583567416334609542128887111496572905097319238580642910211080226057940385359468539533873853130538600251765116962227618260311438043940629230156905409630205666308468357120154667905408992759684947200879552562745789243959751331674877744052508485220388148214635464988891975144457724580245775737101785176902373834505502728464883987923558651531607137954279078705919007902679151607484774063846424154702459036769285662817541778262273814476741355958057466974021323963600295412990002385124962473487405928547333299375611243693638400614106201234910411867832099852920705516185449461522843804046459466057516434557591312044654465127922928522040171309020210323097837747006940720453982428836583532358073818785307745657578146168207272494163209716344011058654504286351545152346944628985863096806006052476574192988051534728360075910885752950986188856103367415536858382984842136698470753996237583441617636722577065351076066074224656273097840909595030549503447111835811077983221346102877031476557209311854231835641070819755607499679694639796040687782701804089360441452587328397123005824423294647535017314126995847409022219507547092908520511515565249899409981522668900585084046652113551920476093298018597787590598862595589076268678998332730726112918393573181536507960103176048848023656861886100863066209734166061062053267189819119212935353815175758338257381088400677934315727279038076619906005852855361437168645933765403478695394787612139217486422660735143203902194449269546753409099425133884475428983061936526347620975952817607185777537014311593060427120386841287851797527795501558530272085552303020967132393622181085310426056720215241983736879100796537725804747614613705112653407459040735258253213242134893585140748753433559879140703673601544825114368008576426166673480463196507692332475973920524223201997110006152182615646384339401897000786586222192725849771061647539105353892650221135173480458273184126084338521245964782419271204673075370700961034906822934340405094439779369181550446993203337621523623251958294409933927280056060265552930381315271054261182008308919017691181924596516338949905250586462459651860075357552913211455359861377442074612428730276773930658858377367963012769970897377847654427322475047102045624269981393812469611617381439446799279932874710349996909448408486427965714274870085284651014439890671534895966149139894093147034940014871242138847348237228482331590667369571510026861322036380056655652897934106380565826775307678773128021940492237819887224161893854084880386830605644515786170316308228314707895533240119605528091887291245520435096300340365281442176383807381550448190765205829554070137329541163523903842721501072819339464481544917613931246963140303326906902750686666827315626573326254552624417529224500849247593359079698345169008524069185748112165319409316685087214774251834054788483250774080009937605684312896282375556051455978052962770836021048640906788734623497814036722887828014206990344070147072561929954438439902230263576042261168359787322928324284672942645469631500717485987541498239367320841320510818217189836821687792135591617745601513877830477949127692472328255077348394458260883774485359090562288649081369642097938262344282827667089904288212412207239198089826165936793662340925877061945862363605490209466152339098250296845877902186035140080790161178692507248745243272736546813161525714943496253233198912786507305845126635345941713555836320632717136007194746207707416210335133790018164257179822316400608533345485746505445472342213371995353317975952687899062314344892954732900788258440552684292152989062569512299997718208906586107207992341257969908092888581779777584797828876861595388002615281605045200990302286418716543442058399885408425113131600441130936656046389695296076791869941072820812458460161892374837617704130598664802101813960745266672141314941529597928162991174131561583653552299258277673416163946913276163234230016785335299577015140118041561568044655542001361628302717270943068758615890056064305082136008952293629192195013849603913226674530266409638466873596081011620173781240784577977570648033273194829475482088328887020980189843964235764959652884824369833954576400290140754111232389283198296904558048390686123396658962120571258648751975630952450923088231102549764465095340585647681643293554478991030794259797348842752752459443983370456165760745785284985749729909297803459960187439595526517918197297203383480251634776860456025900898477764746319068510770221939204793950379908871260183339634952563421472489888633636852039573988021766439939321395072995449450836024211069871214101011200054866554876005291255975662209453409618112382384493979593195876964595363760353543073826657722182767608535088205199482581808672133975333321802503588094691242514093745898185214898262914864543454323317308767373554884700055679778186216603893020056559618827120295220988870286015013644785826528168120789015253548549729916359799680355470470835285681319151004364718929510856398990488628622930227789052923562490850668505825731995797121066004035034475360729393796448203455853222251427528961605470408562810793627867710107510772292326776791889471650322204332850940847991391960467243386265929469659047725768849337370991208126579299466288098146758718462575341585498777840968860567323185994055249876240880576099902358591708697949848450846746865351954304920541497885777178771356082534388013574701735322365664370123665152249504038645516144563034551414176287125798716468795643469258088259590865443610272153375570485548864030606323508032749074786574531996002253164427496964537987642218860266213382719333474607726394982532393762495609867564770288761000273128137228637810795044252722290633105855803429808842887354173287643570795768623096282552192935767334624377397305432888711515459931939076814560426667616503243131222926545932946710079549416761556118569743816470074691628171671149080149246604753101260467333174112909079361407176518086367239694309708442041766000382303351655420488906623741629012485247014866117501629607509300966895341720130863846992334136897543413576715241773632646316043671887850622613834033154975344271682008194056766902830600940793508611987594449500713125550872580195964549713088626108872601825043443794823738416282350402558858280565795001067680015022228841613826429405893203645358572323827952109588000583559052066442764067699091176456182060281127955879029223615155513615141131788123997694749397012654640612991884015140801574306277870904537128202725966119436035288297244924935592798635154733289108817155933022258543063679821711575164738207808592206978419007665612381472028797285498439994872701131871727266368245561016451384890591191210225462472663915815889785821686782829001741616807707912004001525032553902312045266729424079404326142119979755704883252312706529919015884670672415183912363163989044352545984653720990334737668868606619898574613708501114328705021120730701835944580613800615030194458417025242614990986322157962330963627086791223847596890680153158954888636393580353493238396488395643707690543860726123698256311382826489820436787276135998024887916864973493122288821573354515157301083916153403462818909265265506442594547417731219681053518552163603669403298411524332524220761970260222557567395395657986947434856985958930654089614105247151856983958513089437781749790888758062649666094198717854061599628111936038923847342950106930682900068784251671311699322074729697382841363666661644675886703660527291008074921389170342783706034510687422383832601842246399313730910632833317968055870419391208537275478647019337644417563694413467464008355501159010426277459131857142140733148686605316122610958647426892501182780437012236917639105694805972151350324781553905351432165228605379843329227570378516979550552336159407067228001401596140246830894142776938768630419063953075388241948630221004984681441968028215172498107428100012209678113040642456401713786594034440980022269294219256987438904855438980641472043795169269913676023031604885038967984699333255992237198725524739409239746976911407422120013674204439585011668291845415256759920434226591938762995802193359190299164072467299698761396763153504607698999607918726532941324430823583275436539501043705881104112283933320854894229511207982727555049461427994782173377201091121043492958647200834942207094192355223988387098879958145676153155849974960758195529189123851326191684902298062357948272424822602423767672661998306144112011966702150750151053239896492641025116481565125562835009616168384036314990816340100961063218583624460432163994045689906531603445135157442162470659194875011264438238002014256039364254622585747149022001668921794412782737608895744832314017163627233749972553984961019004202791361871372812540210951944919904315058396139995402875627904369265518108327267945206678221998317308727955608145017724837070221548401694948548569443305880633314467800135983777623695789925184467543126505895688221001079922758479836059461471412237534366922664646672084794492885285230979555672028183928686973481492028705750498076083992989950414550689544228461701939853891737674277607343571280448302524184179228705301745198415264807449992876245096108101292803922300010274516334147534271478998826770086344881717093227893810118099467894466444329413689295582957124745555694755653198458487980549356010828123777342101576273878858514201073223381218069244628697236263680025885270712984402587690033387317429483085644063801220806700989425741527288241784754527652184191737843204970233965332506396960144415472285145060833352242611447843439930766807271497980477291931523932609721307672967586841711192850958826751313766915276257836705252940585390744134211690558806808062915558106458159970562897007291399429602350462540909856793039799543253368840202727320929617270580213416740562524301085674564977376422708568769101727651436637866093926303304044771336849897664646444225711385963164134811071328682320451682764028441676925128056147279687437566643114694208735130319748523736133744219968992466114729564540048809037760975858070316167715442595642895740059526661226785657815509524548282393715769295858480759260545083287118229251148239635548028264341577502891296538065270603820821168072528854503040362216633751665030054062799507706057674229654963852058099835988710050209855074329632315669486582887358832377700924148716384858952953739688911248153330047728786098844694902577961091279394491291159208656655959985682326445349311269919526419051471893828912251304850655095931868475554450022869305758543289405056142945510895742837488088779176539795410191733211749935595666632580180228792021537704241936401033561770380766633466476714050923701923275777995986068790915485837357783501500735539875617905508281584555261567101513382637558097162097738656283560893187744090999639844431937994603740281520715947899896915007784015142603081755346984193849802687810772733623627357744052994472887916364421190375871927767832003399903097482486038879466197130632818242191016497816758281659708171615393940479609518179129205409890221986372699931797233624229889012030920972239774535375388046534807702379392810719775671177844357588161926193136589413129266422174803230008046800053530132581677007858247896983171365684478169394230399558405800812821098711524481199880547750543026343818375086530211742930940727912857265661538404216058409929958071416094305850838870540475871386461207627687247784135462783106232238610203343767662973915959114382005891263881050474876826756694114105404412469084431519817663931082991173616642763019738053783627146506764931009590113330124189295981515264857252903880301581955968671688060202338367099867616374414848242289199724938064487405916447380231587161136344583111498058191064524371788411967279592676653403274459018272888262844297045267731056939002401950310119802652363139898962347875500850120255495246171118358332994877554283037057867191872270918307784961028377985661570353185466732956642638233401140164687137818905068910259145152452690503800163692324365180774432851796959835791098341958100406095971758030826187465060886942727502756358518509382643614023511740795467542747353048485143460817017268053118474177153680943401688009665646056207329625288050200688821319720464193874957956951933872500751320337638664964948637882003733067147524451182386383340321282291771266690678740650149856277352365950127642342706529722416716167655721521512606181700255126593256168688870951973775788396162910554307292365907331983189329164772235232811070104600293343223505065456891172614510661001547363786580843902400172935037673183908332783535180439158810814225563065993428972370748418522878940144585553535822318065268931764486219038405490027064702570042662800516118783749351903538778640504275086432146663510597850477129424340665288608214289242406195672346292674377997457337810393938864526463008709787243633725456406161072241660864609323855023847874678938455393685784953128433295763762986486439527449168232540651213427159461402298438598886843009450439564508889911362234396303203410775086806052609108946796306447690597954635041273448662212429300053681950399572208773474752565965475095062937461347866872464493327816351471918991533646713508070027840682186334139595673286652226914333420936656364274912003230698273853661966919987834930132231280048779163521281504237923940597503773826813161473847313372340033827593552895812493231676320673881385826667921593420046092471236237464572068085988822076135155404486515729430466209937170078748572697667249557144371435730999108643943333939521616215667483212387499112864217041268776938821280085974134991262836449611220338300261304635299350911138339979986268848237691324862132619938314052902401621199068431491509914784367100091044894413292222677526734397283703942364025608897863769258920536014619158685234792558534831965751937916877477544472359241778253553536599939370382564765125804860369111719168785151481752393929471442232119906583819914313050251005800629138273675334429760164057297828576885478127000821161382229863320601540285245707353275003501308099238912420755542496345927208408711880806245824183353738785450208623481886748071117319026927415070297468763485940328389539112805575811897644006511994578922309017540254217039548573812268867394759543411914431891270113384630743140745608166714021946079891721828899683247710733707382852569448970989659069420702005787160865300913258880986333288013035117373969689442597810750288332774744749841237835310692805522520929938399266673036148048134405995085813153980524694405004587996525836674435777611606228986871227059938389970322813827403418413911933809405382371506810990231884311190411840636301806591403862742180658957546377863124405653432222223375258280804449574074855166187077979900098883444559272881512122220495627397877610842304297819791340892088313253096846845369676466484418212696479238472887693698803998234343954399484154430196036834866047316339004235027192102432267965585686146026448020029654508485518347710050384891440367700494332467797879159142903471990523844067284387499718531750953502247557627996417068657158301078446789347088674009930869192304437449501374915182965011923129079248920141216049523074276003497074289078289325138640884429566805193220797335345525944538270282937524615800818848552417501842740109735378256573403102784134468881275464199327588502270035691901929011539374456780989398057751799809447265670238577407304908767825405025060470748732282076238255201606116834406714494597355320884795569510496173443770879452168247082529809148871808969034167922653034786943639786910075144898578375065692278051246597723076776330019875521091078343989715294799495533668042303110126711644472260654885434790083441669443304030171263753316345521270779433412284363855871797647468553703436065384280102200925099270212531733807454844745512079982244679545167939901651734088023840001185803740483152260388594976447192486281018512457260702183383738629935946709785595359392156194732440895742693567710400939371230694810008497908288688698818095585215172454261285543623180797980017049402810794584022236264286514951633586243825251298262669215277285155493545968027459894703171539157627001434836134474027770295276814276468803840020931596330317576374240109982946182663996046633185293257259114113504172995972406986787655449802271565004399503143940137905391931694344528636102836240800349223687445827759116992447231348440814407577195690910579982365816821863274669765431723047757496565701544102128167211902240153019385581068787260198470437095059065615998754108079848503563100906100181291514188105587680703007240957259464079711683217636408950101253690063240195393876680784609861522492056015985387567007461364609639612591790094997707823397974478564015373841055759069186111356695602504658430764563596296206831998221439179553509610956597862415587372666890708011083648296221080728586919990720943081947043547198263099843530715189130717213380509315763746196575007902940196220346893227989094855522457047273009429459002759344556391654365805958942975296055665354101791988580597930375596328317727352840480032147782302965156346606291443436780085692056481151699594018627970741257365493372213745495687686296021220825506980754225621204556181513839153418777652473729534989991651901358009850675422888003104677594639880915414298278243066265298994993586258298488176538082257345898386305205239127748985916495420630421259753910023762829447995943793036898921561270370513867946604007131372878407510870701366888445503988127778319305006016039257649438840086074850660171288965381330858879566361756317373894112409336400449512574423805689497446129627312235388448308309406766653290429904817445743113540591629491262884040805094092096008879672498784603952531371033031604971073814260087982203752170923239074762258899692006735015717896297357406983911793163625182955767709456290958469558926401721574481194706060076325978183849510549432015121715885240742098604571073685602567201330726675047535192948982411178673903390820514840158684999682118318128155104840135241010677787431829099863011690203301260726197029156649502562482106233668388053672954000212700556069686739253240268303303221920456539015136488905502963844836695045014566939647561593311348974617758798663202031636361208960738615882958038278274473007359831371144474283564786762566374319063224394055815604435163177789706495776366009938936556553984966695460974832944035545017222825225143272829826197909383250498972219652682583665719423748403258678030142483430409206454518985650625122585001402055172027187838407337900479748239881460532103340494694998950288576093449780246752751649771839965584899886817588657287488282911082656001873869676723544168263571011514876347322063985067546172316742979267566321993961471791518375087411366612837362802920420920153468631008599103602723715381696204473844852834021937318264093009238191032093530477565054441720859381686479842737917270018146411487148117326269107015500963745523327829628302025114559402548786450922466338588495240621435438595173807701000379395547195955591338299551218918945040293638133750369551599602481349909708540612398562784943669663536882094436788027938450677653602317701275771452845791682864396139135092556656368638072171166604667205403839247518599836917651359266647758057005600612484471961057824471213231013307878461218456449797674639804503092176841415402270815501668671828043143354256838795842348960646085751980439445885150013866153525390398797729244325180463114536043448246451843054853866573037946213099006250388954542693136980504170865507713026851134249721252393403877860550096554608773098688620088092401366725746235420067352154902178938968635628700096493996570219416766582951938684836838555342042633119566389698878147243870121584389704362038828707116200400297394465067659668811631796382265080186842085935752225367974829743664476241460620607485594975489321701847387785834329602133515813492671060342017870122289838160446683950064820876853292936028175367019414718109034225722879904610486162211487224311791301750505514980282188377950205877443580088660353871910605352825352191974973221266875654473074275535134804452262850370577708178858076506454586569686477728241167508606357038753085967662161552373073801406134540276512152263570133030606187139409625897733843180301050182986365430043256478598001584613958986297802793651026883692818436074456825598282683908969451383819047894076836647001705361956850541205795355581666781386246408015024062979511950155897006807035322994415766940028857823126296237687776448823688208922941187390614476859282775243972105927262957864771519383331449681176330815031613214214223016267476037508969019848449464026430103528733683611641390935245455788597986040471884927311806028172105001721667592521564305772228663838018340642858868243077589913658425673572847253993085531465920116431190018082495950866734757387566281793787365617989402411991389725443894393226932670315403729702465591909082209009741768696204609417999455328887858569763245906976675040026104007611636280489993525068549086348371046167814582996186113537254137445627229487180250309980378709960130858692639738380703458094976636568257099985907081379407026671864044521421515521521413575143774064261573741139096496981449897330662528993611364179857360750521156972325602576515206115364803634291714145696086419386093358468318913379690902157870772911357543793619809404709113004409574048769994010034773566319200216182027429175026450454229332588269761702912694505600708753724009353339771627635245512283830181378548433564840004964148398401085912838027448440198852362627069022754250934648781563921633693247148529862371206289130866963030012239390372400176013230248901068418677405650521068081782968875812575121995658690801793458328434704792753762883603600063589908196800333315383196912013905150441377918033411164174149985526498534505979298668695681418997596245094223280974902633792468691548667800940752175281747967585125567646732639270249690285510283665780756217691273427080541701952410701619497561167768001400532882691674008028050889923780868977093456728150733536754826230706578410226726690196888197697572290104621682181869922547531589609944848837632691899925252700336308077444673369769105263865559384941504568425968446810920539798659619348614437518466854736916814809159103163416655889698707204816649603532995537455286299843115043769365191656449425953354392664257860600739713384841579055258927778724026199355717147447865357072447727787012270972431699703441454517789387333513248925503145250904602679468632599881091311960229887891214563182918057571448587475891357968809611867947679927195238415882584927317474161371960704809520351479887948623393193045516272193576176501910086161075186473369813930479937607041163002413034305623022195268172525801820823332292974509539980232722136066406589255136791356776052521243765858281773840022553020875774385004859089254285282998942012306734285873474872133107565818334805823339285831941042937993184501058581753077774596435983601289467461212947520238126032883179575802925195987887046069491256941543458219834038547271808408548038150481240965716028409843755642693534806742500743444958196514747158193091199093403687603963046431267169268449805954602098338388006034870566646506325144331638341669549301757515730886178202023544463144880795828203730826904678666372258856584044599243388791638928642270510968885849016788375705360953285574663752529304327550202162498302633769789841280595169069525995550688256279821015330419896557122943355007333568733498481569650183153943528592769876463907462439022796533622060292174521647805268089891776463710744049393277500904872562425404304533967867632891205464821853144266056585465694454209345908232217140606221373412600131538056920467321898950238959775845638422042010883752452292619621684922029148057936395078681457048355105281067288473967856105493321511150775522071701609499943025856848180834185144420053961796898861219228931250060738545087297446472059262517790728662437858140680646842408235735920095965965577904147302967575783304366858662977624651262503158907011248706462000810538140010648332016915363509563281138139948403474436845730841137660683704030504867777374751477187060817396016197216685409616545747581367982620535790807360247575340353833907371345634825937770053827717142824117333990687313114241451791886674044086960383504212803931811577958257530576707066886996825039178823001874174157758486639785934541229111520531700496885233010521740829203184687998212924599481320259884254441995242654001419399584168659610277662588059389700511815999546712069117178686576562431856824834685775051807783247588854396325234937760013091487877135169765921215705322878805859508210921347834649290233365513464557421993904997524973825892611035035686468609532231451252832781938484867691220904664089807353550819354506862048123415385641679092960117193096634188988645110101939980879764966306478211045735286594261101711383916913306913692806564263432254680884455855415983105000063622697598045563180678817457405502722510363207630574632216713722246428617844954217038782357967113170808583786559853855806768435589150825339493879881294427943814627854544490057461794701905257156834980181357344040030144131712046991273326547838283177780386634084422190174652619542709104529151864395605299556636771576022527806964671437490739446012008591200111144266793159795046093436940811075161008731951490624849327345248036223931045077048838538378345496495482576556086646241771294791466506032210145758062305454579061469885539306132168218351800077971403898350586968474467215639010832469333365813174469031907675322700113758415018635080274581746580397826926539794820238624633755246565563796998849231158346848427820112742532994427942154289810138593330716011438714987708200744411982900533965513577037107050983427616193810239783961745796313877536869301050074442197823107460321709574692172287136150168763341201775450600141347848853604634943516872047667403978204501757198044154111406897750557999936632622673567547914636880622569441437310471190124054100473881261581590644363644929594214108376474277476438468537808984120896913522946718232026769439484974325516329711264798937039472451690384383532850494538507867694047474402435408619486897565023778013107184446520643155522339418896520537614139881542628873168397896560887267769674706663079271322377010922785590763799888010918536962085293272746098826301215065264983136480162980523775705595188087167090096727095326961967160812582482723028128322203520387645884277768967590024013153920004981943664350342029311159971425880323066120557234881037690102563256376718407678194840593139430448078738950179227065014625594032258041155702647969076390763069131486721891003088723925478393247331036475530708721595268469335411288111868401323066686288311481389595986776369825459914907028383002058398700915234034800106302723234767606378267015907411347608490930283229053855821804033304141286006604219257328300088286054524053886316666344890131223923676144375104227308527162565786452551995483773456378865478063471976442013358604997566952996413405816743437510337299526544741097170899877336978699939902819679469944508609457359638422091014400185817460554712791211324957778693111566638597198244999131826214369191031529248824194269319916864857194466248677189710271951377888344676454667850926870406238634161166328323277157247579279212411399785126141994113230879649018025755898064413738143087978068692846176187781652144871015073274003601145420560728828616894624899568147001010135427744460117207556626622167732410663256295349908996353147970543037278531169753424410885073523566815599058463931277906455830625175842118378819878804552286960363660176869547282745485305901508626933911689542994685519571522479003337772066254936635594463341863019534544923387971953330786460615922450687297884062930711896362638921270662057463389307422098586841044423309028769432662091945252149730471084164097428300447568271835126579800036778832420234803551977865911148306464699537985765515163435724513074065746632125424410209499987242318367480250273918798554291373250911263317821358256449272283409075621632283259920023821004653985139843236411698070233044972945943618894344533371908313346494816501218018060576225632406284713454488884044076581899247900341832111672829082036640301536127109677222573042755152523572665446028590128599861041456784437329516339554629629685196181466112590477609294043944244880053668181587288773932751376500490399293088307585945430962645044270004508331463395727175951282069800163950266912340126032421891880093669093863324020045051834743508060652685961994857979471250132575403712174698329063938314598996437959311067436679247319051813587900137807690000086218119461133992084305598536535774485222023140912945492135013852761183280456119826575453290071238289619489009389813682974797754625296730231250121188423068770580685671774030951201321968237022543551882801754966874574876183459187701783390725115090234752384204144780808116859798012593675453483863899554132747036346668105737558424743350207406480749661184570542896346961144170787810729239590265821766315902788098878928068922816978519163585920864645525679147744665982606779953729176392941115999651847892263861324123642296746762903170579808632974741391140116026294170433105414273221698324244687452351537347861513089603557978153333531665265324987736166683581649867086775535840608645737942515622707940620175677183857114108964149195960066505875826161957323980711470308314430405375518232764370642530726827954688482495574642298158637351860411113574677440872337636183528415752595004664732105701689504555805364575432520711430531870213218291939008116566828096455997177947721618343002164769844058987812455849496250420315836595496875461833942524403294949940307842765053187981584460201947683572650148247229029868562465289590437954857473694965349973939477848803908302344459220254897824142221893394836887331142971877048418280591696322906923239115436190722386676793248069324381866036663995119991986595173186141591570288222138429592426147513467490291207003360187133056096841008649157653155711156705847516065716503901736443509529197930753560189583503596754535265448324771216008762392005501268108517051005602595884543101537864661271342391483596475302493335968257401262439053320381389795310658960557380609782477451744282998657970865070329684578517170220056971248435561165236697957562851135652118652775554480374641769103217525333703105014063725563724610086251993055423311952280056603807906483474701587211594451368398184662328040111641328738045643640411781707677477310706897950994653806613994139326135687469111868214372737081541946022164801077341566440169866996396404796660635403449026669266874894738434676007044392356650722259991748811065022874320064277596957120331496387518476138043635292931275928734185242057855262593669397850213160760351723353563523498253418425660507424624546049655134988069649073017369548957288314243105525281737156221947857422742697133465240216762888266459530254657242817186958781681278912563471158646056059431822204045612237017347263957076329004412431765646467117337694566733693733708628858795026234325357644750542508830579736287786186339158419207546156856211405619797551123059943711520634447028033377854507822655632523160482685313649999658574382733839418783492821600068948401341182822666583078148769806888332507387514423587254386992485084027842112809230565022412958833989998115021762671864155164316438718761882097780673637688379190248229625620611289647442424767647063227625126326863168990953178950189290762908922652554759773147201698279111518054086895583159279315573219425813302504414756429617422302204376436914662233652091108080558296815747300459236363861697406818584248575731639500171308112865229499256249846290689962113714832378333492941492020379469678103224520561906867671036317582161793067865632560943097530579184048350934250193525772664940040450608736011021403975015809245043597765102436674936879466539857198505206476903470230427581508986670837236184638244762966090044391193493699172655433667028840942621816468063571949991381738555836057412975490964598705773998141487945052698700887776154669411642114151711696681428025336352786293411718980009273438189277682596866787434500109162546873059030400231978840897916663535832120188432444803049183072302908761082015736221331392711367226124140572415454384392408976613894051035073359399216264651413007697646097491577231045435100340338393367595241271609052038717276505199188366614686981675726399248898290261375291384927923278814692819741034731192252213683812941608361357630436270924371389014235338760494572814704693944779212967970574634739923939217190368071673287129726003801388787670121927667591658315021739680577096288017118874477045366016526995410065185977059800124590887771123418769460675936225724520239708890889673472406031518712820735221851741785685352366695205908873070457304613544547448442519813888497541278234422199477018661452567456950631158915883898734324395007465292894382206069686855334112184378406740761852469534114823133192000816984814540669897072253612651407281199375352057205235012384549099306459013705302851660385711530679896972001418631104605875350695226542282227941943902525261397512967843214560808031446838125328488054525483674389926217327116595431636970997216816576091209492516266452859058853340236103084238642147515150902650842353992737877569916961728653943137914220501636924795339898917253724454475233551360435678624718505836066804419931389850430571473419712221166171691423631827563487059937135766178242080708801505798146239219041595358174075391765597836763856738202048219551651471006376068078030462077328305363105181781152038578079127122460864081610375502807706409813461283427931313719695793670388305812678182285352588309089978708577027659111755543215300675784402878953269239694863932943160435694970384341466421346527825932567551171450740847472336344336361740831197266579669798514522071002215999746180118705899784852116305052171579136345801308974802809810408390795826081212888297289771724523660096639969142071070125122585535268530413268928535042812661685698254683602036953395145313673489251378338847158591748362295443486480880504880739828911223684702340591287322943556479619000191133653184998411386253036798981768981683099609037517838811327739595173011886542616640685471927301882018955439374321947450786112470577505222695465041616719252401070779440633979746732349699927269236124788175224386797337975835121155282613992465712442548940014090222402374033967959646420957825034542402134124266371418167566250766539273750824653201455411061612804997124781057594152828961911527588440178564257330020705502570596455707931020848366227232735183002949483577516174676531287908810143377393046569710668822774674214149956898972401243926935028384316433489863505490065066465246636600939026160312517985471455180369354184963123815435105386749278324865914928379946100651237817544206004573948093879428443579037368929728021695991277018550229775159613787881184441996601650801844460907932287611552983483799205902286421338530274063182814515412584719608660068856819013509439995800290535505458317342297932894674509957353487841368186360055818637564895602408930325196146960829115206364381157235681206294340312876865247632006475802061566792789726268117244317877428020687919743798847498823286375432407815037155369497664731148321315067289036381852101305049953379396768880457735648501855232729881065560751666712851321660846363494759041900958981124122553450482138571195980190885006932611279988971215177688366365225163959127878576124795264322779008609991843844357092619285147401430955046654940921642502911716781599903115214148401207356849600533874277311008326014148156104480616981794352105718132709388401493339851532344600780389667688653572901660660812416223993232643823467632202024107016454700938117000561425314304108695445983613057257534804174847455561881844714925558156184111755642198569989677419370490014820810191452963035033929353954074801045310410647124115195905838490779376714031929187305082863395209372096328960530937727150373899501004375550435859354886583167563075728232459077741034400008341788918970787423074991261995167208850729012047527539894474274526574633351961789038290307819251903701052396402618297807392568086398724326202827634907889686776778072948798868726814014868892174967080643540164246706200913099978793257882331576960574828633016618620404995746639197817043724896635378932905704068814208556539402468407859861778477873241801511947295933864333193838740783441772973661795246529218094677755513668914699598351618460564994095617320506659422326411235030249870397351264121486126814926223221964909664085444978113871721198851459788008843548824468523927067205552451228479492326624817436616473601657337657706906205106058721930299102264758261471815824601396247152079315807405509548900869950878553244199517837044002982140460637245888635915148836941719900342062138163154949497907873058039118131442878553210434368543699037161314594088131022681140273055539610366937502860247064670281737987717428583728204047846329496462768910224868355329687560131715717301691389251993857374889770370046465632370249146872531095831869747859118966259648725784529627192297628478973178825131894100943552549741820612958985229663594460236413671832434429847640463046619566720555569281924849291987997004455460581167513594449907756751811357082012283829279585486308894334264166921183958047678246005696130412211709117027475021224650680993115192963937305267686527003765376564654069837824672360333677144520502496520028466490646564899144350963006549779553584808188287182813424002686752752956527930794739018642911032771977997233211476044093836256248725491891926718907316556516434817622818333360917143436315274784786371923148022877037413264012108842020583087241819332274122865014323205250098973659470141858720797962256749339092425534356549028976231889184640603943158335766029989863449478655719859305614494288678467553769031699256114632431652201107701395702427523416197681725179051342014935839775368472113595519055475839906252705980688046370729922952400420267408870796862512954459650941117664392086403325456486087515180889540724470664200906276184832203843016004182601036282660312235757721369549400758606477142940621331972225772564237031463866264588152897486851669393439738571329016322824298168826671940294452330426462073880945921687811132643411768681287758940564631982730757948386309076738492354933035468941914338589464379138499242145029424808051385121539721135667203792370580845329877238520588855799571431861934216905894136597243755421085402432113503418571552230899109062181952709333532196348614915123877166867456950019012542443136948194583269460845934991876214063841948553534241768537015560898880715819788368734718694674152739346482647093577856445393845087754725672119871748953917726481042006574746197631013413320743018260799455612292441683159353015830497610532239152929348634297023589372114502302685838313625881405218389413900769850182496796310771723662023690356689792762131614412915632932732478303552559650405118596168102295899358688266088317345160910591715880091266247827666380921805951376387658496592283883708746067616163240624828436122669579657399403094663302228952769111573511964041361791449546993435983544761132785222180171004749249334380950064164323790199375872560782893778922696931833919668329539192670792804989140031259751536261994141969545257895149889714593849297620615503320629438541434470616350510234709078578606881162056193496048387484870632256875388799331893088034466706721198273110381282283506835014932535758987551420191218401007385260580630665471844151241658015904598332547114623516898251809638866184913733252711768409703907496426551776499570211758666546496471854482000317927411499410257614640863427400350252546027901701620811719410184373089112766767073963033241119390588352643069103135471096756161822509244988305606064094786264285297990023432677752318062392227862131848628037551010087630186433432537575783320581514620989217185187154010122868904489402840879537909051363760317001686063912981822759175224910017297675361986844268506306877064472824740865727244660371868164219028507383934053462875215404850141868311902778530767091402625284671405924486732596629923010387172297434327703278330611099781570674156174761713106456539306049302095731259295405513049510083402215738060660507634258972123462174511310899760140813502383821821984471489966854483187630090946708992559061195829048705623550091371524809131943783808297960760125086327363756528911142226129281871752759868444049783829296334415019316270741180331405638881538704036586166203110073028086225015908908236153693462369198255989826976577937609625311244130902392677247660149632227864235490200591503697441513606726306449885700184880989412545238764603920805154213852243271580066112619258794761402857198321933261079187563593458597928018437462958590883853228699523921057921493835345074123966249566844876627478620136412470925424325414826113238001203356305047605698897284419598295239062008922746963216200836271157924819423427028520575549596933776299352394099773681524172116644621725930243732562775079255804601868183433919380225733286854675320414198647162229988586684563038610998970500855389512210585861621208914572417748819909949362077838005658318778344590721360132807963797445905323766797355432397480810651991592668043187420296942422379839019328693069721112497393779452816901870035446660264334180864783395980754891732501059854227690481559596041700218587414976906519562620017822149258490972609052541799142915008553552422169063978806252694115723555820050229137698901688046433851217150318137909438666881383600585832179969797184647371015783877133974237742067867236579984048976549736453395649946630731537502473910903854464390973246362298706963640847282509012882624399588420308227881275740614514347423841835472122006049893223116244464939838593153554856302251172458186450497993438955471070769696447458376049439943316648020055555799665983880273017925577447308214270580276110873524768045395421960377667753246845182595144104430065022643766218647072350253845122598454206681984907388263606835774491022777906435338651528015699864160584741323295364438233570059665204752878177881880283140438659366347315670760327707172961898450595379797323179076927139837114598031475724066708328236849412524457048929571881749402347759948905741258888662653152663127005910416315817478859732859326816129730444734769069975494510312956343589552470434449326808978988457384162074339130816954530988074281405934330955628474843297564031789625443231828206291151326854447294635033795187790967369837176212313469772125912719510198619965051460277450194862995051235470789849426282325895565021200476646223732785012325845730183591606347495933057975047410151359945889397967908388891871225267996587456487529911813660223997779885481991128609629309589902785639051754034653603473802802117059570663513200397992747458259041262565943248865682453411057203659117242446531671018428740884531394766508099271267275329240598452877586873658957891434034084964492771405500128632077192085186919035312936606961886264038204981322154945540418904210658042364685311782381539922887932549983037458391874590414209494126208808505722561257422132184637114704504316239884122957022987451463396447470319825409979670094407806744067797673189561607149915632214130417944782199021018248029396808493303561890086993399555108277556400933025083289159931876972004391483102535417821013391728080470256687823507304219567423632537162495262895818951546012219619501797084992671235134464619778969173104994219611079548688618265879048741798093029896438260205565764253305209967905657537997401113502212486205915486526644568425917028441518994758005151567295014258608696879480810285087324287346746996265237183354529481800727087880524442970283783285189778943441919926603409243806233860964240741042844780985589701365721520073078770211256213166839026698003783280235988492362951358556837840599149374564383628424434289136384298841183437237998014884088337687550264633881826502576286571172394808696058627118787666677673329062982247402170565199136929492655233076043717299496884584478608485804479711239576019936592930233860009011372127060314532352577978312236591638037417077762525482070580592273961538803990809927877634766180985156879035454539254434672944405788169864173154211453226796065254969552121431636885520964841903522521553033215774737640735083393472982020765299466185798891819560710425811260308243724942576509937826941203419898527625856731974503193019646791736087819968223662098076885789629241456396886673913316165726122691407876684292695179809292068932080346975643458022675589682332851744608279730794988472364526721743864824438494230006281190744811929348014461317670694330841447950919708276654208574013461058661142614914844622228671015709405204610796135385675864864708836506070952792278855173246399561444384910326629976548683201386321886426068933773455893990623358068164338863171568026491935972173815444030021347468764832916687891464553159360873787059298380326229210857430037120162005486735651777039602917805648520007400530902554320233984000480550151022823118543562566042061156379288750965304822163042324968260072446650205026055172914898496352678056649963964714552483169058625089049324131403207176777439414648396671703685267128783353095039858003544970441421278027767935951367342654700974890124373705784461315908871459605703384513755024322165469388280620832086425678254705913419573969742001712851919851306354825451028024104433433801171359529676918550965092069542718330754315038399548976213563407229455129992631997948359259013434021709185379557486773853306725545035219336757734965257880507505591718441006238763039328746225125178863855622560630589695650666851406143276720798309598608329709371350723203509781139997964740564666686478611773984653476126568127460018422602915959273854387523732620341819798958094476150766570760391312333117655026434699592323423908966245604552728631957147431374297959311063563328187197430885288629760186475301799366293316424771933512496456147336158051686221421505241670316708213448665138036184569046167253583143339285197364222676045186830084525487964436605697808725548370794900896922010210584622020037565208654160294271461062028701672686296597472967716880044121801578148225789768247495399277949156421557070116841639706936317745433245251250060932989879213540234724561519127337519526392223237267654022255219961446889491134867515990460516661294557789568094437370196554439163295513209409593203994826330759588685355168022200670794170954464136026988403638744125893326106399858797505127414713164143279361280733560616814374489388672874564999377053317336935802422293533886013690244758010386905438759701972516379929876445904785364317059908454066859425715016927956944367936480877616917618441768727664656026503767372753732298394169038152201994179696284939606633854290591527039031806773357316787680493249749470514561759091038728499122568190905324482759696839512830801174048688389523022135231670246739553509103570437089390417892908713610806643787196174366177284034936169337650104353687482218748611350056673383633345924678698551959765652064460211349887293256446579929215069297952313558724629050914758500583895872746919771114915438626947249240472795864865255986952503982134259930867555240662743310801885258909826640913588878665156059407798168894231202620784273948419062410062618341792690781509141067365993395196072481290621861200828389551893419648586578816719541538009814412678560598809651876586874640628559030944493065976987938633879145317183696028056504450731440105270355069891507143095236913730578208926958143511310639150285666263478068634528627784863202833915223978381133197927820421111223042275994833775079616337984555236809416069052799317363430609859317729593924498619569882566939898433589881927343290520689777828918913281199641739083309362171378519314004919827295358331138282052175259454480532176929757273550668090923889219397560468980026108945337767787081337827789650600651388654583063474803554931743830085115080753471516814179994762611660621325612576541036307640940469635486282558104645093143749876476193750894188889977849659128179905057007353381967775605599236663371021384849361489890634363190800653100675998445746234415903221536190735109718112093666588199584581501983328481906480639131924453369688371693544686149416403838892043274616770453682860165597240380231757121608458516618378814220126796193101082715132417046100095033377659254786802521306056595364399263725629622494999085693140936063150757648114405130377896714750197513743890167761002601101395330248722216972130493094281191340534235528533759804314734892315194061228275236586910211702452309056832955895244999629681629450578623227704702844406003797833442802028548666842613065148406054529627684388909722002196854818690463717900176990257685918293852994085770740737849959147106566251348529680908874546039975963469342085798045084446287228369675429590264343499390738786751310581633317403711730214095650423171750246604185790012416038335668379233665796866914294834001517553322077373988851938420716191892216661935767666956869484037979328076668542108568289741554800216016821299273776944259450049398621083784605634405215450680250831829907970217467258434646701770362654397862098056083266965028995434616829892433700268488032292885127025233465456245420011602801228191183234743665650148328490171163389441937058042590519297398627164320841023365187054959944337042636393963578256959403803063627698088224897214253531897230561859151519496402637354189345519898364168473867890190956443165073118103420149878945018028086543165292055408212774173248312063692268091974038292265005703354661406424386176160060815900453870567883708253156216133315357891498817411699585063958626985941002258034883066331574273201478607544276615008313257671627658319994795015834607929632908266723204366963335176108108392161447986164898439784272961958877075238318893364961804240586463462760292102462625641502329089685089468396009393080628134001069191675066657415482900983883300740779822493557271911092973937946657008597935128933390589623679334117176073743993398342978573113322041204461147703401142505347835382094975562434494179113353471713166142012862721860811293703728713032864833202189063518560732947486551490413026094161566965356520981457618298610778112782517906755253516235683800525817471526677092899172221801859228038125800563791823983244441643134735793109961582122078023734782188264004174291381664241351818080664658295890915467818710036573706574343588665275330810839686793257810689938394452851053276272340897580583907797014108444598010762081397044222023353038326058671646944463598428738468265397082858463454904967394667446276910210866544988181325219217051825830264803207154761460427238107830841026300656421589173055628984359244575532423913016020084975279813385413806516572466887113106451141447322626198171252778386674455900957960873829470078863690570088234157808275184873047605925591521293908968514928363172895417532849875365241017216237903221307906054558619182881876545673038568977857263918188572627418418163452301327055329970313915454576390689577694695539355421773622102858389413146621082543027565541851397279212206037941333727518949726858976774049165121823961523581115679408438629717732102358439161312758006777360377602565030671388551904775459964258193963742405336604559374841470153016153271661855205604000545110406477221200314773060409024887322712732867619210563863304466193883007336355516624609115585257281804426458478235938819359656627822741173695654796596752814411059451518803831132295348750880370030503401137051146150323267123590160613413700932390492472675964280425405081064348257585874146048930877844766372221046921439329986845775289211228144201034703894400551782379847270009156872906585089081436831554425146964032424096984534111954796304080317912764269512591481499346884090633226166009899901127213459482281223103534046990643587820428536023260618153888735838492835466513603388031516601784732832475053257015495746442715279695409460600471927216796328200210995020060277416012247533953892815321997429210506914535963668263579687429791263846051021456911784884528108920993514531791447797259736578060135984737097901039257398913693381628332364511131855186909235593576265451777151985822703931590542767851922578004877196246036565113848067392343431195275767414847898422831592310021076015161296129245924381406306018610583130575525122057511378981397868200887197731496792496522812911805411854284536521978559287349039476349678636550261250775727014225342503708451796603585389375539256380261391192617656049237934300009513246234161649060841650342971515801374710818288181568865792865849522465458002478331568312141902537446444193601820284649257045999615900807968941953384255719616065193662039988862750424605812613132775523440383782157420381944241798884070512142851690260427461487764450624284669385424565971553153096485975758100862823267044209259547929570474360626346993806126494502364599623577425013347174790269377843725544141535367061816863428714926997554056396279940392018032835117679184099752622372040505335974985882602593023149918663514001224350813481169748857519008250291472910944520930665775024247087884188790133823556244704849143200309794270660790026774071756668251900982196916543723693413801689318961475579060246341467653168840853875908621022419838660609768535745445160649184220828492173739265423364601278809398779722624262714081172854926648035560935537184155956623443568529148981931628018865175322961540755025186052692444028356058686219512860369367653116491227905153288247371385569502098596883142043898892474627673873999701946860952215725318333175428091190819418941788084853755002380768038190116289282708469086112255372194893935233200170891160220669347358599759283569457226386651569157943400012857106081920336048940246841729808639491956060864511333206536475415867589079631135716406629792604955810062600078501884672931026386343764154408118253543925043045994731609739677769041700811620507803122794302203351817919277804365678035979436563457902745673818146797256118944759053695545307476304906085934112845102044590815660939588473486296644334256905886748125104968341072587541364844109855620813243067845970948729548854295047222934980838609952027607513225005864188466203950329941248702948891035797393521695177519794700891753031114728819466529344114419188439266744172240857861943600652731800034446899998957235432961905691843327753365814708983927425486774005145676959290048156305188505577751099666357262473577832218679564571515979202471237467419189980316204320829074659007179577566079188259621691031397884081594241400075807422746425348213741424179467355317690590211860223384026746629593463735227211941453818209069370846102565622838616490076873966891336804121738449665366523615586123351289098082662091575801654268512530661087511693053767631553780417757356128940779947091943185848070215705919563243047702454517552749115434763747567543495899199684997937281383121171547967538007981746781772506277291421366594327120717065640257356013015266528537593922797572912982973478613895842157767420174393560069190490857603091723359383117013853053457109990122063580458385129444624244127910870470086512336590646347737526048586203658811968239378592234940960774655794211570766274236311439572964480617800416272812849691779587863309660811546898740941024495192649320905783867625778966457012353027493349791162318092949990700530987479760360214945659241980677949184059101447040754556855899134676657097941235323901806163189589593293664996246484565871287421521421685776918973021488131923749880450103329228668791969937742561107010312555513038757115170150999879231757835997942833181691962222168337529807214237952274976908901189576408478133758216250106506427365445494140010419713639737218908687073027186055589130913673279394443986457688543059304877555061389464021417645223066772213365922458105323956704760737836583369441713281968731627144197811078067557000612980351014549743860721869440850398033316746947904129351607044815211831253207414430622346132746508528319872912933729542518035414050465054985187014905820996208445538214870036685865554886106227800517783040478879888259702982189423071669791488007784333025002353151662107641064317823195900413856891718310173312737263431248933838844637599072245565716101835764360088039530902438040763720031789553330011077125659323994085618064301459186942902639924990500670801564345811349155843969628349420122815621740507744632615052979246256112091227348561224897153572721739645153624917585814868735804070554947290922114077901142326117485205045824196640382990941881852920310616003736004673970477342921892765821034293287729025871896212178815025743676436139331956488887873448202572191880751079036482985623662240494270313124581476913012131331200418263411121497564742165629875216136748171012942777819001910471286528475352761272319225187245742629369313934584124766014052157559188296822827449292789456200650968284241870708992288278560877405793154657525264861893603618536889659399358873310264029094554168430241127870055569277656218315953011510150458651235387538245779351540374326124780967616270864628906012387424273476815681966241394683555605268069165727917220105938961482261331472669477842070789257156614098274464122156550903470040979930636427521552947953260182543590562700553766182661364373051377753237137277339288707571766120167407782639632442186665856928573959466946298482388498626314742497195150161506737440306306010311628979319384691666752468274213854774897645805776689344925585184503281159704035374769413747003082090394089103240079999899382093176995394956101117431247230623720278305746968992539932356522894562882961739210595576816663167795322466625721367846889281474882274405814090477346720320282062576870036087560347176994708372924377399646887928535088068821724054685757110264409441544210153647278500681486483885500778855822499185256685813173611343561675413346521143599653949961275522058774443290138557986962715048124100950608641537508266764359272137191883556937256201206543034363444720302599937465357577001040546274702218931225240568156154111762810707208437282687233593174178389173030161424262365765013724094340534258447073841969757786583353550413144342173884614160665875173122378738218814368992955418499904074405704668317266197743670788521106574816618718603510624439077641383772067560183498874298726385631283084854924051764389696722641025717195946152891018963232054228730708451228374819921141181823166324000670446715462331263204226204907914399670600209673541894588906855222917844601173769305405200247615345552879901728230114130438522135815216693445158132697711238687932650099662821549889694686340960568823454042349824367199324995105340093529474962599875531889535848437561406809623532705388391525865069459374832826501492108736213094026412553697120496626583465276943291626294962697586284733788861725064430226780718014508744589198509595094540596169188200671633716054679129605955087236262483100259099161753598857537479455181685394586194730777326129385392786801337018608315355945638378305346931062913329427383105204339269744387513670274704999604701363224755865510789368049650893848374745327592636596099529192365823090099139772192378086760092744036631259004819333173907654785598654097636308844160495022659738375544635306225498356191141103466619089725371497741279232685333160324110454531583933985195746714527877536192663297472377542099567214553133894878789829420525023656355770885484366015519774992577798571404059187847688441292887295037103041636316086847072471504821019785160936042576424226368782716130159898451306790878726091014741686729391591969024472966596179816994839684316948452915694167330355502873414806856165995740091614144849009463145673092613066172129170009434846385547892202453072365656860023256527425132640638403957002639528108279177987889655532147107674582595354482703627027221353051043621055755274383489622857867894698416887499916166321657303376683230413873603298885178213519163846304465176671963598199306717282633003831065687693611993745658427215297317679890230385549499448594565601246461677738534957137800947524834532554916469355148278968965437502215211834633833352079163761139668234720436502303914701804462684172216905816755959778682055202614825652702996383415136362036469267536986351179148053797981784873706356078206952298817932133268134377391314138781160425511933571133721877569359307369348832918154562378525151313784027746008859872214803810637928417623869112354467965853852727906347603159011819412916600676569344510672231862911973648764091650480746987981387775192365570978112748365217783656800303732803926721656296435181895275702679800713682384032007529632806606989895108401293458952743734087738014346016272591483177295942914085544621059049770464837333819028490917363732998728968913969743511511931056055124205463055882452285443344428105434897551061241348735137521219285107156012524881550655326295539060112793581464377870395760221429998117119295993443649106251999102886047128027962302768356062628501683096190502931520289247408269069936823722860316542322470796719445161116960072844713222711032416885560055482780139541462521956384999755144677277534076542708078696561174440257020974568145535196661471594385406832989856734727178676628201804860547896827525473941393059563481426018519518422482071609620044973096323222081621201566367602603042775243034888857482897418431389785628621198670802815400515981726691513015450487348044557769518449788933023298511739013665511000993704318838378956114278389907346899996874501340932964333464347602172042797904834750886883029046338903204759981460255305336655811524023160490261352784053954930720271332175577061112525920094046267970962731056387398817735100597119158938074533112618429786720636226862741451350168029957953085677236855974496093240470377309073483598467120034351734133421131214465169159791189156796793687810738869155793247045650082027536247935383115301831035408966472459153995951176840089448461198457834622174109542684041569788178586597138891744705683265263291272670257205715311401333982852009480832435229667113283712083894199939401457605678719446787596745105710438239558424822814889811851714636707448112451548821688532554266920049693917380443776566674427111455313466375813781632413871376041913401109383520064755124680790958758935669319419366050128911639644827269709327533497776044692384411293844738867333677456378372600061698771182986070712165626852940473218239322395079155771700624153814291618853811139103794584091282873591847827337243905883026840168263459454028360950947603170400521444235956647451884800519300259591352937105781442094988512197337917139744217231589300762725687151136896074866495690310323348638386448503361837145564699729149608523876960245623258839192676546177495885775038887338155449378805364462350431779388274765879846212767555886585843804497937752062172579899579781828026875799496848686773488687494387790728333110442003476126106181190002124559673261223390797517634062480004661391881188617992989262636207106799517290188676434782320086354001632010731797627307364949126938262428589715693918232705504986159436992279345949993550641238078971713922228212125590578374673465675466280320259773367519502294166768802325998122818650908688136225484344469374411085634260812617643507061124229436536120009769582508203748490903670905605956798304436208638886409926267629237125327986214007990842852311835195274620800826430493111433967292774982085288216277648239697157803964961841091876294006549949012557404708239876511749588832495877398280980042308896723109897765749556573241730511124687859370599790592073145496570528794916999531776103829827255380976620096337511060988855216945939496605200519137243082294506056316459580919833311118334898638441880982195721289875951413625202102570503287690395905634546034512665898108109091807145363089590783001118779531914695708051554059060160523647769663020021196500172432943023121868853483127087236141834697420389188296370000691051519107974120022311993780689267079212810556151043841186970099214786040470763361116854580767378048165379211314384457242125390515380380024116898111797973004253894285868742085101734747640599529134929145864431025673067823173746449997119341567892056954488931245029402244859763937093463942720402937080169456570357417747981734579228220405322532257530852550301874353581175368827591053232935359762930228342737791378683489719623094826568394992360084405524987741344102617893352272160364479000474739066302813695401545021851742108319666467343362231828453689332618305922572187757694302146913721276192777134540259492558271425094469459325687471630146599494850121601846977597533040660595412657638321649393589006897066809191604076299248127445458471813556371606517881786598064168967411609120108469081857731706380127659367974347753239597568542191997357584578587219797815566909796545939145039742658924033991824340723086344357763524014200565877943108420919706198900189105737574342513981996569757616561374147275084514171906757248215713578481691324270761397264726173633799110818454197022255192838364080529900099325193641238992624135891171874193859112421542234406205926183547019867589811901360995769936666842321301862664632791951303669463071825183797831035298152462790298720007130673718050677569395537087009986884157362197113547461080398697567363248664482960451374564955170879972881734886201189784479065435639214645899372744272198487592444456785678861334413697669285654742169638723139524557867721639435183357009605617376431191771846659331752213800989845588935673427521240096016523979459691144744766020855064235570293654952949059310548769166052416233947567245075270855370453563500233030475058578967000174365426694137431036410988249245295650936865393727744999555559036255738811558843801665486860251448816242216434233269743032597601589427448031837356510357110398275333765236397977696930080572976206630278769495983154532128770122276609776246921262813952846333674915061358470399764343294251267150317951280823339107748471077874187351672166961175966936192734734483062676538158161540836951027061226160475562931480265808694431983042888012339820313312344062834075832126197887405142650519556230519754430330634933949701178873439881881209798957696086651116912899163851383271642628303968210897270006939595350796655384248927885508167101837423601029633457389023793400109145895559531762346615665530389467718263865960349486654797228520939627116335384341601216951478232853344544000964217204419554403211143676927998848904670666267115783170401470738139656144607163615181383415219101642443285501104131930697805625053100904800709761115995071993923686122845786491323832258627471492853072609263054468321499488468607791603872643362543389454013220077526205991239905617235851311459304669246023204766545190756645354793440509799875207626899403039673648673513806433936173149996431606356817601517272423162274211898257771359025150953608050518816863288055636127895352641981373289165168465500158526428671713877385752611485472147149969869600804913771435469135069676524307626402910271869947533326984704872849678427513025336822436630227203288678040014585943172095112846249128763525625118893014674509133570212471151347025603307361091390828780276202745983481148168865484595393192777427447557572380779308174119092171579481119178348746307750453524803856899379971314619957005838216702362783316469665781440663470175201634226268259389884897007643080441802871101830220079521334529370091863303103290083930287238408953715097760503343222219758127756441195486152898468319205833167576276028349298924724717682063604004961394399361512279047356616341668420778396582850085830107255265698476250631693348500933601895884485871647782026087269848226813248097514855248355514082367446991600332393737561738183404542909572399507084770679837861742760792827696678382089354261701653211879443198384168300292909184222257534741968132968213716510597222500699832305566453610998715093033305210496108793024114930174322545943736043638006149344729093775270648176070451421934494661684856181354715026755588875120624703106378287610762925057974627052154194039971882182367434703929928280594677513346343217408976760638048627394402141862651247159440842695063633223073889158695480613821558096018052186453541501529671578510860694483505565075031219722715598261175553003071549776972097750877031283632060821678343425887899964942893346476163028233571595569070065787517647489527787248299083711674730030761061364462706569319634829203828995543926413385983585823400373453313211505582898399932078312635312561313358147950330407430439727218900066408240119436629041944563921919844158049811565374464248478931973536797789526212324050809012241732193201193804958777482223060877331948172458906820615856091627927246196307428680390263036404913240200595921846564845890181296658278627430469437759428160649048967729042280559999873527124699960469081160891163177037315524759617732796585079470541434150424116112266414096935710630324063942186548029867918218137308627070820377984128857790754212502250255257182531669183361903307169131306292893545562767345878803497742289035802827799902758533268726933215238332696722004875816668073572082942919362744713442519551299920113316210202845934881741220881032616574091686069302864213099679848909005251610354021363011848956001492316278169755880564509274248414932091523239389510220349279123083326123190999147442495393483304777909180840246834488917224288031915556096240012754759472155321215444250763839593502312986451795916718628470795600321636581055502959798755959235106084007745122975078769839235391438985164219047858110465201732892353561654911964426987629313364341467449531039996372350583647622557426818826219743904256717595798098357327923615496965447538528826112418396647529622279842116430688329880879011541756400841101677327707557772621820130784614068055885842244212630668578799560488591751858096304413232977254136849794385835078850075727364273132795151467609749695811080014961196517097077079242281112818756766696334905679854803503658447965138863059429900366644899228511283643864009595441986124851816562961561292631811714990168160056492756027922612333632958259074942013994780776087201241432371919366411125904751877328251592919424677965638027956971520018429544536648288484022602456344543370824614136782840719869243626930975708683518637111872981735474982433716254761424781354407381926117805312871855681899127206985715722473621390268533702994776711163726270326654501854120763566432540839647782894607053834463048397373302824809556260077345958926464215104904366690903264759799913222621846824458324880303842205276381511124117886675445256412808755627334738596910339043425270150747902943534873739200370300751353271633253796471379165202682871070378396072064515580616702055023130094302890799650697864514995910258346871738141511251607623943213919231418544195266613518330379360910149881777199218698468053965242749501100672802785667289068244943205691718914601833503307306896021707485463393798657164083516066657329934002626956822376364286269409886899691184373697307038629341461201481187937247695827823089377398407468566940297998539786384235423514610537373245305096710015772270860506562529733200405324575469798666669793376210587188170758604704357004062489209508853373552105111589491119982203180861551838165011478864724850558335297602537041792444437654782099489199718664029040834604801369870458830925182681539915677242694344564374263521650365654060801327786996290763736804681206238224957059177172514290353852982686090464789072761974163461097321117050636929130019809995805358887540799262095335666638081729900746336590521429564572368798962657739752723388376875970184799746946180646579398945997665169598799426482520475564337825542456632939508227923926725744544977898326408762295631441032320793801560614963188549983647573422611190558576010444042183232053259947657856407112476568408663579869122014977051587255262542764529743897752599481369904480029632299570886313447991974169940981359665751254861197772620424310549736223550039189504087892069533907327022503859524454397202540333079822994729858260287333541258995632319007780245107158644748611594767349073524996295555156770865968515162688553489778282059915738226666835772944944408888051944222989509524039562952946420832883593478042465839314738393887488527295564693292494786683736569398493284849326015844239083626480374409576121537953445993251734570741354174247603155969433828926265227134647714315149103743315425594568070482888758277062875324397852707811060493637983618840144652808295244308716549086682582595747487450809508976034028393752580088193887711855926324235550326800628983681408205206337049045794185601542856314729766113129310664326878371580103134602312185458302353938557984525195462169632646356351801674475681918208341009792296074753489456881046461235694424507505005412980092797532765818707112352699696514121574807748408509249264416150809258185636183299311978338998042087080512248694371123274966498481090526582575772836275555441260410257321974585327674438292607979240126515002913521330133514937664647882352705369553593615878685823016213852385814401427212159383476312457155723924404334167335421355071058091768582911043410301148508334332552691114116811984556972704360913172841555018388888413347810548571904579323398008298412443509265664986940052792254283497097869987809314653769550140502251075409396767240915393162285801472770387987820946953217696518178480470579764888023000977242835313692709016200908650234145363949029165263469653903712099310756088389918031106060157139911839071087841522056733043287834866733734564917770515456112217408172964133167201496632819841623033187803566545553940417353036518884531072923793881236446658342764868483282595473873411126330239420658861366616799066314617050943510811325298388572351060979790318574413733881401954407036404424778546695312601227660337155116483939424184301741180902365766720613843052147043582738894564495631437484317204020568064567250129288463253844752529884488029242596747634860275597876869812476128694093427028210304122585764196125865135439903730504594905888502543862405362244063837475217638005785846213662899161792179385081204927585065628354246402219698552851164873199400671708214517346070668079549284552203475996416106523025773621528270087894094521081578072149215829668681723378389460084579793821641787249945546009286299883963590615455763631431952522495197991099851476606440376386416872211917595541403842576369991649805523265852275259627342488010643563029681653423423983398984485523128520117318725327747786818751948418723281100926892276328917991578760749209513345440105300899274513321359767744641184648850528738068227846407106288426536398598321360423138527888010895907710368474984825099317942362799933848991572564993093590753907437063177079380243095389127799256619476771535661873891780735666246630416499231423017838504110563649237804741925497892051691114923130991936391436031491604782381012450578845644046775377010521139511929667145369851239208884546934853456003222033548472118525849626033828709562814963417348799997013513557800175920107377382216593597843959633144378987983860636769363165975412721228009303592952238685782431437708398587967943207746257725476307354786869921188991195420245249319013165847733407264648738029902392051723208857246264489086409656073132986800043101344127721118987410826364703520650565298512965341161581007104644110951976931237350758616599680687602452995571085888393290378595408838993772572415840577790221361437998929900646457754250519324518559776294279609483428297102704730898944246601712639172994456059577662786245284438527355473630631459820188240024199844431005032005117553336468489183314889988297039474655488958764787833486849988112158892302884650592209056935851362742376292444659252792019544030954825679325991031621214936511350638909141281181846066558024838636283494888926086010015358393436566902382103915892660692491890096078735283939097180690733489496560556104462628408514336916049509714474673654001895967909881750585443051965233974988497179400405660478182525131191616379415494486584639287280035765511859658451768076267484514981711013480003314352385444254736305233277454083785553962887741778596329429663638714451933590542266695021563233799918660210427976352751618905894463823174007865081837285336944951232745038421181767906664435357578993142069854987089998976133776640444586288724890753171088274035840965638819002613150619441660262478921117710184756410928199559594163745832499684365549013749015985982335074152602675018015372689511500061113029285686656606653284326773741635228819038109285153193498817512996900780998316471605698511387611694245876847604511565317137334037975401870891501452783259815887893687897717528174220833077806861078867476016522872386077976483252014757059742466790899130161942338968673602759650905857725340040519645896481536769592088477663556715280351878881866126125647560829654787142771890090047329716745144123754569008201393475768043919580512544843043047446823096354679729308358368670351703113145687232949814070758648193049616368378602939207946599906570525004207781825231792011732402430862991176030780580717227767216616655184065221446098114828457792507992176646753635049090499733863175795585633582266946548123978517838075747761772911832401898679531225250598355238261748948489273098507159731789241737130602524275385766614092192075273538688193046276233149034143836747437481717771667626861656896398668497989998699898672199999788538358527139512427445168493283054552410916997400470822255607904089731933723383315171526386044834493594791530024811492503850078095926939997721321772308584251816508400438482104133307761442329529925705121439705780788501576841480880833816459575803841462518641220539328450023093997165866770278541480470811482916267673213452606508778331314703019743892684823079305644784083403213507072119857470263470015133528048754125433177780137325928493989142249203906399679722445503708387306284872953538956507557890571788151179746021068710335629991161179244412820514757142025898108266960881035453994610873903920448092707969030273835498806027652431127911568630045127213312714186622933425743995262170598515860909380088029055817930441585645982929719892813393018343401042175927303746552813114135598770203788974052162770620014120925008583268559434442133120086771839204229087543809026199711047588140350169181335144008838273356562246424933204742979582271498969843857430222018422601811994056245469145874164723727178082263094686304987766160035758334648596030138153379215154490989008074900682618247212619913081747398606557318878803571097169787459893666369657887478677226548077212407901192936160191377985343073617316938993552390110242605277052988196655326875485548583710597400052746095892279602701028569727670536142970285408616979579955589717943283265535433926909127829389956195262024934973821767894055597473211231674281705471842069102443786751935995404325687746790127995184520963518121776162944959567023647038596743825570510571157976451617647824017347524293875213446386704032906510159359029082341252675121148299551003281907455900562183262077037195430847743088792831034854750951438982974376677946318684044842713443906469828121858561627917576732118827788694964856002599138505518799765792823794043295855624661173099679419103587260464152170851605971739146080076758747914592473021025494352594730588133689216865432822774680707969861545708135624305473372362071506304983500514058909498816639218218987709421444215159731391817136030542513979651787867153313138392895844574003705370411669177234943175996262454449768729514048033865784984096279546148299955251700080237355762796678260295710262351567954137032885894298701460320595412850902452243945162515012062001775083731749283999119003528184671031365861924649317294543991671377611673209398503530372281619591689030536665933015877588639666931491609853710775952136246484741982091556295434016735850395360001002306159984600807631824934236440101378328969563087808318985151905461350972441221662051310052797406921503133494449442596697672736353390454456460243239919515895477098627519353773790603470594962313632067506288214293259199825410907979319885468361038519523241916342778311031708280120499495146366595990051816036636984023466661780884102022443013031010510632740535604229710824320211549262967115063457640609684498590400322091283662146643870679728544911327106881891164696776706874084796685897883018944657979392812600297410830526405170176297198941649352979533017818755771589842764545611378375516256965514877845999643563617946110827114209127423615617959835021373166090514401974948051032742309418521300743076895334185718430270930498915296058501132019514840932111675914703858576367681523463165997487546192899810940238090261087640534463755230373894390977018109118045725807904238966029911475613514546208046404755337481998167937462853022699529575085010020858360530843423338453702976100429219009647158248824409166094466277781905116593881743668903801180380179990062379622229717454971781788292558468391075885154883189933414370775220692913932376042509909962097468359429152579041004836609598230777734186050582924918258331983197151405539417744894375741826225163661869135612254173200488533887433182251771725831793674641874387927014848035779572088410560886279920444470632087357887410266045554066429353638127042306697312411125576763296664107142937356245625830268961874787435404580405765087977340320910240062178626232797477822610990839895546987643550405967991076573582376798588863185800781314186740327859526769603492593167512016705799887455202897662113338459130246995422935589578844385322206834446538636301824990167842291355549169453569335425481665697553373909419784166447467880724920207570892448960704148564580345969533667214054957192924836822868333966139661979881806569815928009737727510668211904321756340825213497371545721723175628855715804662935794363379001631118314906914562457571623445001848635552500026735830264489772695531729217925366341544361553040472508009503343252557669703322226010263091904620735239072276335625476893582967420821474280907783640497936582593857478175923192412723833249452745837363844938650601416563107953799219800172142694985393981676174762145284459051234238535854734626230542833481307005661912322293841717375878805005988740306035568537206832387092521349707426248640005096829042872445646133905776274839752796391350530898128490072678551904009862199339458580184277369319209569474616333631152830627495950561878049333391916415955315785793708132712251635469853591464515388308086674540332942671116556568129108280949552099681099438464190858872024384003304500945076886957391119893378940431922462196453253291650136422043466534971996712037674055871499984489068391951527074806078603642079135205958271451142578228777980289567528046092445599869170419587661519113569272196940876057278726782662600568752595364997630427257989344400207643541841090139317772784262058565239787454381934449499206045166067793401091597194174586498667755697433700338637173609159204016382238787553870920961163754203015901586023378300073609696061146126125687904614460122854683343915342228129856062052987171343836507940856165889998573955796674455979635791775156585142028525684154357533953103125623848059325924122162209413261134582078161053714066670000492528071323499254314489580933991947873067639624153890396364984382577010541407839804039642661312898180770685303134684067929568389062134623590658468326519574392964935163794076742640190268967866153012004650026609521999779654040930181771342109649363950902302270143560624086315441996481476269722432844374031125390246394819025235804801146766594212224742373093007225426233258272925642103282692491610263175251505166739008115578731491413400735527802141122775607005722595136570061568510360901516418681927110945944059530204356990979829898506199791899897576846716882010218614992900404593452133795052483667062434589992946728333528172269223786346630309219560045003292525273399314355389099664103112723230965613150374579616061437682363835471688553333905309760950985867925264348931648100733594760586289734679878491148786639983112441268578076033043771427468424742388644520242481987322523122617737218265134946034730596740387986992058194015044102565738165720523517085221216947802740677355140451831945828267526005699036563874351811994444520065239180764122121050246811902605628019613203918753267243569665141851389390378707702787321679925265350451989801445783379193264061466424134310123495541317635100045489591634808230213938634441000849732703781100873901269997955863593532010686980737194673765641322639943754660712038177876132750327034045282978084892486836532501066794075018224374730297671675806556338408591287829531717985001580215912756681411952292513426595202282186998309507602316637539621388622597477703355521652564104072498127713418316059979772414765735844296516892482416825725574759258004929530953432222409884253135375651335452735136000255099131067564264264322287960861422040212647001002248609687767556494389938724207676845471185733870887825737994485544585220097231932210311878562725279947249286734106222557159341906401349902859353559277923804264834615757201485492481270584849822138745603581521350170935137863504329059554361496539403756269652429042812528116629359649001677380332608616604992831623066996685616777208227509057241703268827325009577581294790929141004638050114542321161532030156575694961320305710827120198053004895599721185384660354984638670390133730529022081984065790755637504462387920163078977533984188318441676487422116461847861840012091497314388791505157881635669930833023092436750300738066586683759320314567136589879571206651678397806924409622551203897756234346248288547985593753666626183138211962367385038038013650242771536882033815180994082758326091270473146204758818040904033696604708395085257251096345946871569847004597597849206902037461686869265081313687816796597261825505742989308110067940157093064670867920959633568652458030930319858040346833621453921779660044457116370091360289703636204326177673225147095810603495593737839886865139656087848741851565244650341321312032670823021257865633210321708250548719768953859273829479295868121959054232953554596609719748008119393366705918496422212957564010882721965129205519572895502554645255233366862119863398306181035205430715452048871044914578662094308347402039257743224665938386485064718181526362485542480280504700196385145488807778813007630854584010964652015493818552126356054132184183361507084434403208308084691272058883092946637179044632645549864431725894920644926332247455104540379167194639604230876758662456083865837169905639340294422447287007786060295165557355096547993245575955447110068182309367132959508605967826251547313333973818459455675807684698096186322292745591322542206509008678614959816355038152206680085299480432756137655073837778753552483105429375867127213529074068305850316348004316507534560932592867213279697119086926138452958828694250796064197085700810004880915417116110488934657772358644081292500325837723304656777732554941887907466580742685535314713259124106631316582005925311935506327621375835439292772652880658393930292427862438299846774364743926732630068560926780881087564920956039740419376604032134156288156064311939167327393798082987865248055864949816244886191112860146097147519048807942282520776617267029335320935123893541774115466785351264748528430060689624183452685878458733751642518563073585137676071746878133438244424513356235499432366503534048062922127164073110299552299387992224905808367585649987902699406299066420396580559405109057465670653655676529669467398582707899050586816932255354259166619384472405780840766889879429524700123271193247207188440677745582338296360931469759866909713066585051521780894830156707584711918366526951258448723290415285871314395301068322682092263437055118425065394326528321722206455938441583634027717428457333641223857313232221184625273616919490385490130824755558846206841075168191122992384684873610148529838360767800025153218805397316206125822360299700711926980324021597536994345402983009345518427960157008818282676498316240016098607352400943489268096549263855358770487299077497683107790975143759468991425510331788977316259523609922416739064070137560905479227644941264408666251376550085381395821378144827679764198088847323894391702540136569612566469010020238685029045572093756812600278570766966290462284575579496297252544271426464399923706994188218566811578681635672950311990172585330958357227763395932379242441263768937462901231814116647467132366353292436777199216676632835593663075818605357525114075379671173250276436953795711010114306861865650079718456471890076107588703674976528648051685515025948028569866561594645852617081760162786450513562473995612196418468223498108496369148081767312371901227557394312411887929617602916153961028263466172206872212686769089882111731474954874253433263007370740853339483175204757549863399190167382932102180474013508281050485841469381618193303862921058929484088180035418743772451366493861410415161898446057231940348023130372869466172240587175545142217794450900693299964756517901012755337599295167164467271640005817779806110507993580099216018031906776660757202279285709880754518403546191706830262608443388016682298723815021225637238835498993218150279067472341279109227924591180947965052409293295028797220338187035839109294181482362332999570515630966456871506933130272652672286265023731130122579524913410202597042907989193288952547742437504703228507612758332103469726263813358914309546924844990800301812600232003107053514885500366726139367847261667471992655193533914877246003455775478086235891285283852394487470502536053433215969953835239050265559315457937537178578525521550928838094493348289718499418293423831389663224315900743750270382313796860218814134824463037397965193287862319875441148587411874624933294680840199544945675191226436196288033898198077623504513408880231945848742338288169583624265481608896637062476934841425063546323892401465548491725937960006499831895983629260037264991317971258833035710331899481663907959692968820767497025256037547081863198748031891678154461555941324506504145058666894218374275829306351159580656612821551288951542808726083190087857569063392823186068600943859635154611994153599174408862011087596921546533322279326532397797874638212102604568468810942570699909322753764308846122105218805836357583821239587912579905436276689289712634361486903384756005265249508854879694115852139419374874229711007466707273078480621869889055193791388229395909442300097478537113635936796617693701688164820141145744784451558263914163232989117706985829479902590903010412188421093864245379768255868329684825220353824037799053488193229893443486290589906264522669360340140953765371784792112759460462564393558522593516745100002532091591919629583354980932950214717528278696130536518157123392440753363789847088431967327591992650144334797981443315185890453085729792345792690754801366846987577254131150741357716105376352891863876538495380606120012744568928666814623744600971428732818171098670648158899420623114833493056580929670622829273475870052868172978667602176734887645803189236933011390126509192101605498561084169603867897662704412494085911711693977681692042068978038044314276867398664660544102151412654194264249117929503537270731636457996399474231959919082310730953597067309103160371040336383151025646852446868000994557659544487869443800617849387282665367317767703829238133573022484599589967937421974660890713684170722525016880010999505207261496504011645003720196048191555578676169402741792943934649797807242835598812678341837387293018211016757299707657000270833316440918900320461558737366523438864002073492941455324050385961972560098847263527563873102247639551634667229350881083462592183661074463774642073695849523153152338731963269916105042152803854123623863901107785356084837728772789582616600087461211689930376120623889632090381346367604478343923314831501210965273987454560899891283537345921360957347593300230489622124751619014268330051146998218487103651861503196201440351669003828268535663582260580897333047037756368019015181101747749818599084645170589029125406015505005380464764873741402158783131186948942021280952019289591503802208219738197553888963764349129482040632023488803367057619415779064389273485895927549655724986282259455439626502235018529363654587735298510938756646047146165228729454682248924041898345486636541912626389530950464375195511547680019158031708246545227880492562849538956749559251652335112165131021104220912266822988325658528972123253570418973001218133240577035657565159264674506105298627816344598076176814375407040720568908877291084387464031853703427637913809419436305711549446161089277275115582924633631175333766270498683079827585841016942560626135506363401428798258893132245818653152077645974628565764143983667403180760207283268733658291058316541978894965308382352472028092138749808239213119538701279784940409426806674961177750140553376807398316638071564708042394512924743383566608258712322322409849687802479473847892656540787243431921536305556223713166944778963268729518305123953363941096643777081815737890064774581892890545552697144545589144218412944551347699537167822014844671460084089497417525617084202296137072919253089038423044318868330630321778357060057335002517114321376421219858050380592797924822051716060280129493430552011657360941665030577965499325613064594951430935535045472272374238109847980852542995396267045768550161043943579305780693772271595609242698232608532915207291665344855355144587839158773783191785785344154670547659747179282088462432093863961147496514133802406529004633555293290692853364405987006078675038142580201953472046698159285690591546064886501150499604975607780885528159735356355636757476460611934301573209540328819503469177408163277802295004911494933519425192851431832860058354374808332766975395255214959774748485273055003919237036692615452220881413556511904779394836864281116898660786383276545329088694805393271120274071330156224755091304707154453387185604942181685652016250884013873875248063749541527994176624530732963995187860427632367496336419493382263918040583082734713013510352466874704660127322941710389058661982754809531562610205299587478767965798553929406697855705749041720173629714425186641270062034241329046247287055505927605140254748667104127485451709596255369147680285142304165974619502664209367683592992767615558013236714523763620142829318481663494578537445428751237770450730807497115923937704108507312045661048469908257209160158504506276181253110137052452123964935958006300384832355013499858579194800016169922872610541267132189831140538415279435263143253659432736179428115640445442449996196159645449674772348968999032924619649319965424680627235732775133990987864758739045608075828352021063608216592963726320251943667511887603278395838542002447084357638749907857832363402565428676499958997197089340760196505548062798252011344204759722007316463620819950127071589133057148729409672513899740675982622160688622067946737386930578004741540568673250618598285486082935947465991697316673341587307780518375582980638640999458268296596815249292641201511131255610337442934829127255560231136032656790918392942483687053788488476225763893780772827129759849451787845729347678165833286582977220334372838056384186126777549900600676542527794770923868163977676657609807372070209628188313586578118295729398526819646828216924882139543485098159650538121484675887410869870603833272994554992261644022005016271731307143266296929815024528242768186576388811251902757483742108542175763762523081272603708721086714872413619796094063660325699667566303378730901928254178042828038314898900804169093718671815831909890291134809700908591475791621007797837266006959059979750113648154549124486578852704796845790206718687121745705057798823057870737732873081502849877749098419526536207066522311513703006094551518733150160206950936019709937063258453152579157456771161569511839321597443584299859333716906300416822251694904926608641880974072748632159607201686917753157084683658416949515183263993914217943092246704752447036025356745165439222853297255856539921160438782893788247253593740026742831374490787977772203987726533430360053578888449186928655247643729051027719574860757282203249537396640920432620478668585396736755433661456378101728766109891168409261221598473516375315827369452788894544378229865291020857830096358920922515090509040957805751818360904259495290579824883396718077252415866271280945922233240871831411131545920426312182547636553708393480488141095789974128962323383099520590170934617446820162228345323268166998426890236735062328640964448586502874927871382247168217183678824188367292671068400816064619903446391370311675886738232630636151524726176782038549566661492842107824481788097703431653038244921944227550401109180625390634056130775182335519365104351326402093734123610635659345427575294953508327460250429673127782336933750321789678096838562077071808785373637991575191319479097632317992996826344560094276173615451162548756565224977347575199709927337904118388790662771862195101904654293012926540198469904323205083859799446336553621979425645181030393237150520756972908889869526810175065506619980175976478323000905230995051984118331211290085136850453171853745448107086613039633908235989404472721206718798453230024723645927346600849797815129832743645671996718545550486582156306032124723512529335939379529820823353336828972636219909761490726230906077895233451573519804344126251596389565996224206316658259514000310334535709455622760167242230070078413684749341138669159280471734584855248905698927639727409212152838218969662597763652158942311830021863802501310871045290973449578185912951072044190477973980299093367977220471621565835844202296204552035520433900435275523835829483883114762567300667873156516613796231998005874925523807419029170063265326203786512396744944872818729497789464870029458880302843662966572435880798040707978847822658334897152265562773937245798200449179270857504502179642391056020682854809997765731006474475888626034435425782186123490638812128340887273133544221030455724926003885606957515235958147161015875590744887496592864997437042402177327243512637233434743870334527913879215828575435389890195360747638066491498015846082377275920809067150687512094823043659601429095835041610424188802433338001930443928467734552973873893473284699962596969707323935003853353089579207582884494104156376600436962818927383546005263103255070883062167378310601456461685384984946441334030399964772267288584252266887365153985754224650387641790755218895249734858202061893575990933576537752336112581726571417980391673178124029234803649892537060513427443450863997845774123741739852416152809175495696498660816962566801668936908778957454959501712421152929682270193554587809031261943639993820968885877571978748800702274970464129428043620781503166381795198562528874847105142739108138703967302997561429213739728789677877212055136179042584414779512887924507009059101947043186733127117344003415584227795609359204661110825845799943501744684751760645578422163930372418731321938141322272815998187516039752707068700778302790288759476847967748360981497664502386512939759617775305485027203495834056862293486682697767706155234591416837681312945877339446914754252184936771559504639098051586999266790406313942534250353953314894745753628134645834237815719450024452322693274012595543124002204233207021181852779483148898124581825503542718543646996153621027451834695654550786339237267230910675361851720915291316705690723791383213140498461264696981514912006245798905264175945050821776768712123640779007967400213192627677998975892992053729675176615172824066863144149162720782275631796832637684590735947193642551234531242499975976436320203560993404525723963567813300201717695086580846742668204254117486341493547204336579179993635320289287047482379485346611321995939994525646318288715332114727815018698408807975859995196169747054024402911883873745914172730592385006169830778309061493124819112126258898264205134907254841809109427335964310140521661389697736120520418176148422316587005181714907593884013358232179351192185536165915579655919880158347034757182832549553869120361642354410583936907068184267923874354700336574498199588921666921747002151847378262191765090173361137040766911683687768693451359419354292727771916517327070756251211077177500031887198945812505660223213545502050438389028369046400467636938734104878940213837572681179312462419678664590745612157638940950479592502116693841667523202383738633915517652229253128232756074498138991577518632290165226223484659163437038686816099405649982606603671261343086586937103329584319733779521104698995338515640152214707204724010469307774784287756242958401973848494622959386202193920600243839407656565723750834622458382625557888772408346671658331638219073657743156852927238050055291363216076171115426045501814347829737136660806565515452548051183003879142903428014205799352632683769592804928959685203439046318929049039101555028727446868899726227478232682200962049717692381550619399547328500607272939077656868970621112049144659233229338721866496898883751667586047576713517650627080407682608297234441850483349757796202320114643277567669108632120333365811364388662747910439059860077778122215782242909084133999675873706804039310551020209727218869913379826668167072437722921818445352458309047863790869403374941225284840132677104351658468046100112426074256973847857465782467035948011279930151525030404562342094368977343687486127220036227520572989326008529982649095404639661905145181479609222884606648444285051692653198189004476197582814594828683684030983157570274851185975414563671071532745091123457633891540111918400257244668044144006677945423738406092236918744319729344667917851204096030426396253920130678139277781879643399999603572293010610403624279916997969465840446358307156742174795219383920767661166120896636698645903231491336104484014213518700467157716688507058901632901843043668780323018238031502415620926550262889412785746417607383430230793376443247998515428851883234739025135276370292484439046468872956008574491973562701674265012909317832405846798016064569090901179342765168797391092659715753343314650625938022071379810440413619179467395217213789977767993549735056315289655632815420419244970501673889990354922978532889830607705200808317848721679627973206250434169522895637925462658753670872639408237778674983132295602487868702111996272642344604011383621670866298293589028389639928143705381904626811921238673984939112469195068677833070741724358632889967023773312048528277042477086576881910958125699191107829698141507155380778516358135460400183255751624966802082757333691579595103076488007966862913413166279860841089002753170826153495561160753440904538982922893846455264274759385309237195737687946405811083422146336631794270398044710860323170815248460907946832088784748601071553623224401495995612147306482905719030703482738557817243182157046500655665314334892924910796626218228973523030598127874804713905140669256813421668060095161204406831836530838011995959299855274277706526859934351003468556505508977823861957643515213781735477965059264001024571284859503104176812292633459380909320952347158771654117322958166864671189268937393276663330118044873899229154344361553586790374732020487937595431595856649359707485223485670018701546279993923834035012890646589621656883157911128942262077624945375144414681822541624824317757372867561270053520352509282915916058442513610783548108394898179420059083519939770122836847783161286346117204786194245644882981574156935818945343658256528634117499082675175833955027665389707048401972481057648620192543613699413393894403604916331437692054856703864153991356242683943518086667902917479355013912408031655509994596931013459648262502762026579946478919868484179325049170877186119653800598888495549527060479186030127927082657377514416785228131682144930032183736081756233837154454155287729083500626579951299994851976629295409415164902900600531564145481501712014013566995571493532814515178496661496557900825023407479685117351395466147712410892750670200089307936801228076412942964791839196792616275153730378780381022890813138603422727898965911689768809067255597813946809401295631103953940491452851129383590183155493617308209152989009305675551503285164048175669750981178470995929468309229034551125724476318014943030827392606215563483558556815950970072324870711888986278316122038572817247103909896780540383763308035516948555453187364964260253288191751499229564719769191386559237897451653779846060606234557139583070649981104907713312253204230567109333227698810728387900844260937842956378552711229414869636810617379927495884071817425406700568287713971720893830721166470695782613080563669184369328251751230091233484523528430226923185846081219113799694315875957789623333448805962244024598158846306013283346942629338834331077726006127295964379965104451086163113922245712088220754248970475360902851905841477474431577490148535720628626823514309772871502668002744278985423660733708902640263796223223743589994654907019925950860536155426721668736962919004590954438993426219468577711252402550127574933615489702516269518456619061524901868003298277288607583768178083657751190648529704369606713335717574632586867780361098099452541801097528131345327149110179666723916123347022844480245752217750601893627704255282947546225215026609483510352058422925739322159879998231994880019525101412329817348323787684773247370488626587453725207673372562892911818871092365940044117294855861820817233797397748631777976785431883420943766347634886371226179626142645437478649650190762778207536989542485347477396519684263035873382683175792916740501117101749686213437771094767794738726205004055902623341203070675810107551450198133145300049292283458249928390948703831741948467275028926080707906138451301801170897910238298754869473213722491263365374234303990078008102160015179866987306877521877002720244691998461748922374753143519481261995203048657538453034935471391062755378552793346315865144088764830372996813837448296389547577152330628353405398942536648166341516173582416734968508328695847903549485868000048643778646935764788670414123014274740665279954859838276917952152573291206220031779425183275770724372105113596404558688491873100680806883976673937015327670070521363723932866063757888815021129758806114755905424621465826395016029093547438898140875600031737584165847348291672186311592201613136745135491109690803164990674789363625618573661159057035306587841939116526711508168156154413691305051905611505716709121740482452385614231698567908845243436349335434014590412089652840967819783505456699701619970143670858213072292741657823334550472051765049929116366647884357596990536843060914977749784080530285270591268634522327355666303141247966674023301538903963384000282561820615965474975353968624927401664818270582188036852678410059915173864562398049889151570619124170185272892964947048602805021937233931103775866333836839539799056245602165980582819596926481121769289192917247897741774974472118594711771410923761857214477154452777807297813410986800515229077819493149553068775796808481539959628428097985045352871687056764686970189245565813631384977571237444734709475003830165597409614641358171323026543733709967700994236051714958711315622882281775045253878085323260022545598742134818212649068610776573091113817332168713228674092354881298085223380890507828870545740752605462147250179312048492418891598364550146123545489901978942246911314296391831983040018987185507311957829449294124078545440132096167506193988042947065937553554908070663745845108997320599049031201532189016927681603781625077065024413781309653263176419509107773772167074611540606286354526752127813833310708973476665007525123833405897673010077974900065099768825255203104851202221691388087753049215039330521127839099429045844656920457470346975966593769940223693646051355955532356833561899140729189108004940609759081512123041701565386342649657206728921272292868170691453511231645864513654670669916768969426239091534434869395591376265168954190786993997391620170594419219508925542548129916553633889883073797193196067014000583602219539954633344918690261001074140065311519650217971530825356580892690518820779533802093985984482864988693656848425468835148969914105561418215992252302362725791070009331625477219367813678785088879072116105425802916759357863757437162190155901225048933392632409811145565180251796091444943952673326697479038425808791030721571425074389141020973789566225559985350750931248866898399114209236407494522097198371977156300298451136779620444125719051787066643788706947375844435780335135266476833805818819489227432401569897978345665649194998068147782706008083591054324265561644050012456671367422933131139433549264295064436123019123490724015877511845996031269417311492742531986255942016554133047969300941646818829507048968720569842198978468875683779970527854734616840649710178362712852725489519724529377609452517806421449079533961617018114010256359640535113750924928325707325466530472831068600165121296355421510788000778499392093301033378829938336742746928858266055801127141297313209304396544383291696165237900739306337454448698026833004403799037486709571468966443284771717072077975193507166480751798301373555079637567396177301967846437364939186795943666613866122857988068160553517686002334731724539721347085245037523632328955695639019384848992098402843147493787329215681220394450514960443783941108426823966530681066802281297104740911952837390257654075249342199448512750293978640072944063320033890104499243854296185180492146415159435081708026130562656712676197272430605496923598089626317921693863291725071380819880685806194256139786396648951782817601674707819910227421532082273920400517641913476603647480206047333231584537173491230874602786316981405188487498787406178857625426925104449643313375354191825207805798824445952307815273701562133755971661872743195998824584878195835959919587993350863758621289203321163114550655037824535747782607071509285484114533670112779349690780994127270731064605684265020062435447680747100409416903541612903100083113015164962169181136624399811923046129495676800757154828955563635521501695693315432544924501464891772899210707931549855236459837513332071441022678757122199282302646355835298316586830643061293819687419334696603143224711275210843024830608186114154030854956057533877072143458588776192831730896419699911325252534561116709650362394831865925668754058020547687437236559208169746759032212719305565933703112140998523392838282583649325530352808427367351141287671679823091427096753037408659214066285547442592147393036588101435390079696421704235613216907183329899423257171116276993928466732591235391167713657350988962908481095437777816606537259281807990430723897646772806153217109666672310163932136954703140356295490526648925163972675841293741182281286661971430606098664912104352975652852541261066873417280053998173318916897556914634175640364860507092416158674353391123352276736374869156125393912520831153212596588146202672302772854090780427481053190093113725932974903317365902097401185242071157617576508167116598311420502741735328703893018015777142798500153075271378421623202197993729425063501445757396046832467927351059188959051753789103760299294238494097305782964911720621583719189576018756549166721691325656224025068851222671086490669080221193783869189031573092928144869711204520469152457739368954244388217131414869593857248027138486617782183211903440254498080421941518292710286902357378899877761433932156201804127281345151688121059302179892606617716964005036598408140086239926392858362872660386105769475172740366663597240644893446475849668518175117450518021170591309085056698013746758894330181561658348850500814201393474702490535646007967954605033681326556115359506953764610728401957445370610222332607237366322589884646963230492798968432898511021916269659700321346724506344716287030807299646347101833813027685914597448914823701090166508593317863054209282948431077236685794001974304602768147375332156423546558884210950327029875224031935554130952989642007228089740887720775112501054473491341259997453924592433747546082551569318574995687063340439974033495241459138066710388077599592039486411052495628297376496734401585287215408982497941495536232025721611181420620980137929425976742765380855059477538786586516458038763022880453570788789294946560662790712577624076607373231169806158936346472875913525399341913332393427500666821438638581102257026251642712268160422662523136047454601197882321293517903045256846550589273861452859664850823145311227410295528075004082307886810750199157865382980890784492156056755051955200500962065986151817285078719197176089565392270991975156713844034970064433754243741435697774941724282536281253244593713530369332305164705257073586781281020459548384098933108261880078949695261970454212487346926603419085011840046952631783923213299341976090464758921562685349650388155522195184413077246418316079933623871163143683740127474057951001017573098948069178006754217157656147828240762475101431158528152854849125419856219589700735784529828300186818698631386446159143659236292698086823177787199235940984651790353422900721949572879997206628891070641247429921891052192892200649806305537254959284290214412901348058054235396012766553362799340006009032362691314425967343673106221178117147642374820035177643732755918751431802737981044697632223422274220786633178470961104724385849817230392132393683289337690818562399775598796651725075853897058816374068994125502236853367686977324225853911307398203419489340608183735075134256258434683835978287689171335562549055861832028954251891370313285826900247142784213589938496297317010616358448472938430179458614137379918289628594965806798658160395080961475477103616394076114784318271757421775177097390729259024244797710894288903098427237575215298427340904946004802976937482685922128428199954535872615020082219895790483106959430292748062420431602813606716653634096296921329447466649106423335015997367345818572797754238624972376168633899962578452559876467938645519473383959374730228410615014615249984004886632821846187914412508088833888710529623452724648642455407770405737298365322297118463622592382459733656986373648785172062097101717483914385880538118119918271709373575894260934684494987918068066510230964785553215499125187824903150568492568482273534439907201702031347104027951835159100384843951574035788808205231230393718866840611060959349559816366573840231079352302982254332933415749415674999196238287856564063007134270666584628030137332945506009069841669824255372474442761863361467762033072526148885886226532240607781641902663948153339008688286712852230727222344821484258474289816203966497948187091276441394854802794942599460079773026582980624837392262132099003553208308017020383697269874528801519219108375192645138407987765738728967866221523251126835207065887732723560021680761925321127774166978571036370327739858464276971736710878159762613436494311923596782961919120404803080251171253159952661150917868699238881261125662567252817649024477044671153249785722113601232987831451875071597452112652286437044380941121267794289092356340574735030377734443861084192919265281973326021523430138257365427321377548047898553454452855353317249005808152024494623138285552897827589612013275948235910685563453114590330335253308464714702802630637393361317573543203925306808577455350966560586512624890007060791875879915960082502173823086075040043257129611670827233376846164068017067585291425334614535312890867352721839513083189730502130527788658483609114005368595649613344037694578939949908097577717271948839833180387989549472882358357243089894896026685437891424863437119408577237706246605836443663887170620649928658828320871062374490370038671403392377134685839394511264686004014030908982103535982482582437264394443281119389292072486407811410708004907526904010450602502697361509904638464617047840331368812519859969992728309932490929236465340909495435450216110316838875168494465364587628268796941077895677993074161219611158696682674596198545348939158731264494972009904393972638769455900469996979752656435522969113532950954438635754246694661330703646454419023478776105226487897057861117237471797762327830617963118712007054709913866117396946878633436012644340398160690762946863258818634701091510716551602326038363728899071715736817675423479343745773992769551304432397719303618650983345979722856484651158176772613324614286057870070114099398594752272890621004275052626891102571678691860864942338057889071576264941029018430642641808845956962245131262932585086677690327109865414382692111814458750978893766332830098878151603772076240323807739008570640037005196055473035991582606722353536559279231507051122597037178706508020873082364132636664085046268236157964360164388259195943349507096995306042585892042834716353451138921878602715432258687412752174173891419532685268863521846413410000488636982134073552303977721554576592203187194103503515215790151696276188024856551391516235021549409477208957572078066937914134671914162035095368355009978639587529518118089105159857125274102961073870998231171906790309901086432644070068252118356913918600519890722089488227702253777797143411495908201475640724574711758819451262242384253743505089837052531166381396375047150909585750586015132555046206257989597949537575414907666223341353184818621370426030988753925307777379995313169664929846386206452900718165833441617235272062060174678016166902506574265198754739277377537704696756783290295528707524363341825694679942445341266213021131755920308254983831740830345297553662331021586728150293687622130453630831819099574998405046050035859186368330201171253263843422344769623767924207702990093145712093431700258380977397682657381302194130008118013536466888160524567528552378033639125845512793135015352672612752561326478332167268893136682791181419667123140384695912218652910865280319336539693671575210577548791439868143220052322351622821072991667993268953358829494037711537430049140122982226541405930746738368654050138645231100066279869206592951572263081088923396381551068143430500255407170218621817771972867101642274868725197008834257147425639600110315760209823242132260241454716717571556473243242333748796823159315181952330342888405621255303394382978929619522333632951445850418757975940998444724451690927164946228785366181511349354915969934283948429122087616913505127742050340654435108567726292480729524096867410260613629184286010857454936269115041810810677277751635057867675101834139933093817764511685681061027570713538666611190650109660090261944396306538268958361993447470544786887695263003761889161164478270109646170347550577652315058209050836840637264466315951172866304076164274251933847706392105074150360033777901047168962625275958854229912759591536257832694160387434431180596516032290653061249518085440462732871523763331455370677960937304405815766049608493701986589234711361636131030547632866941770039308824858865226279309253150056419607102485382002626974559821023849812635170918064683119320042878435361672853755996393767477431682218659593112336093900036009341562559798298289275436706863479538727876566215646029741382809698460705039635969376898603437463827655882613976974092875184951614517063620150893346209530774378999326534163621198968299463522682345751820099966006453269078824304432174645269757482402641354595016911363591667001731480952938896149252719009964997925611598016909565911261352740184066310848050573212491320416436307468623943894004068230984296618545897333480569242197212393774652059443657530316497642415270073381781530866307810073930268862222610732713706162809101100360135375853795978135402917280450151320198749627672841036365483490959025363528415217772686615992138852074627883120398620900430549960237260792941972386622187439431541139943812786264261840405729219594869231330996012819578073048674107367927406162598398300810602594618952173400098542915475621013053087412085534618871877778994718355027074385534555413647707291433640305997545732255748775971553155684204193005176230930662774445744028887031282828781721792588895078362904038785540013007305706590360376959606309258002750836644633276468984850858393685876908251661805051812259024255998388298204703528352734987822361903467689751739054807519959577181519705867426079644247950865252822320847206776211000908935072857072295071621305920701366041651818262778554378143517512618708136167120348639809881707863389999685560714446172195850234200441837799491380727396063100415706672583063653211076304711151791261632934622934668498598309067483219286181423476173276792046987932231257960571223461896671622470796658409803528672138446324875179651034864080967679926826429682357202090063580387072229219415249703527628140122996062651814248363763524957658306085207635390598407902293804497616298302266760014790542280876130368668304263983205592131980047503662436028769825743312235276847198243653459654065621921610519581155778801462856690251261335551261096154836564526966406832264504077302450055692769842499111023647642952651919992032304379410580172841943554219328671619510620996256749664645735945669154448414114130469363443054719351087891897228061924225477285188024242659459572408017712777262642690484811120440852393855890438366990611514283438690647848452750245582333783225637724730503432149386764674812833874549351008069484358957092153490150818453778254766771613181674223317418312288153643913560504182652358887996914822453651604987816504298082746355252654364141647255893611738026752349365286198415862376679004390770127282353645765791045324358649029160040413643642634322773419446448403503522551696370054574807459891196578700447189115981685418423817044521077643677914323895532244427350784999220034126859135964847116140017309490995971092126947613912887269081063758024515841108222050405311513117230456316040817233021252555754057813276367555602704632076623463245560015932120475308562671132608078254958829542569272526858311312341735402551027553626164540020385727459422280326534929774716215463810326603611647676757697135134884674457121430318884947696010788829479696571537349399695833782344523841588136754034849436993436993027338180163909145701896083521330864776896610486825225748968798690979546027382450801847855970603773883932556159707989733040250096432170643824725219166663607877526135894627972962844333186352066110625071243498799182947286627974165599046417993868761488225338246529694461468570325964263979397369279944731979914889637927845315285819508391422760766895957147134089548636517293727178936711142710840789566331212098501157687113177411603476609690350151980105878351412656355439432616913195031327800846083449360448358072803133802838175641016225969455613788258721802281217238522014765214871868199564355189895478871739348583169928078195429330330829764837477686235686763878098613921417759416226512196342549087662946376425414795445469039901179446083082339710861160995751639588994862075836726766137628443885668172240115966235035804174895655441275614940716553419564523732847169226047678396902387037662247505609661955045121244592277060232657481981879449684170185512559383594330464699786276836584485130496891999207975480146888017523040006726435801645936108169074855592703398249936696954996593819056026505489580356644711578897140279917420184743328736995408836786305381703141579674062832922421767907525726440952665139986785316784455098509413271429401255626987231839037988209319473431912027550958247189030036555465940123947968008764660025574162392177651161258286987674076420968021297214773828004387701348554479280684627637982487719339255654011372542018434059483856479371207109288107793392616857472267757486574161347394790700359508119580719565118722083670013954682105413214695607905790713170951117970411576985001058445378100447319402856884313874002640409835485112537141018097705723217707191429924829089326671247907061087723839412401933253558857441837680238381456366766265472197494863372733382207979032589326158868787672760294261863614460152503516276337289454492015085576476672236996981988655101662453600498021646013307399445655144652837258563283269745601871354860090149858912132597575583362296535684885207278031927183578585598033666354201676949117572402272501408372061245221643164063087188127881126238628988991545170385499566839140190851300112234001983957584330935699035452561306673244425226154806044089632340970864754947159416301725731718483268836617830123125214514716807692101504479194265913609853187891486838726646834473848877140686658327900880753730391373429621481405468980953024787910308863641762152410579046922835008588205089832275703674632773114547301090798177348299268812227810587498625750414899775871113361978147898138969061930411381951186757764089672247930144934964867249863915580769623450438820814020824566091323099011723443865315367030618176500464371849254018638916314485977519827803732878962030197420101274648182460118709173533290098147891337668360078763410365077395250670044733392595892948534262002700359855935561333395933003795780336052656850611077411045557836460351370561776193722837729757141446205253032748314321781160475502986636394489468034122569326094002017788360564227741677340432569357805411757045604988681146180590193355010585711460547721398816121609820690698793938212647405115040140766949069674988272361624262757216606815059492154956260694254457202197273740506104022522680377326622271131677176176561511203085477552069496758547710498026240566320772849080192866218623610958105083994384662371947677502736322942193425318996365246624239625810135231625458438962903758020070036227853236654541810557247926002480389385668424838614444926594865876126337467831528640388988035719631807359248137481766234881847327496191584890273650979833199761105259624641005569990215168524276161082056411640772678551776325352690951213687875813893986274433116371517877462938514096861221810164074704725649665014632329695965534831787147361676974931738202208963607284403280691922991170741274346061025070107426539553395811895317852462443093002261844044284147830552333409037733836634999692617053499536096062746794086511789156430179434303189161882500715170840371695416411128289927929390952829224139803590960133016784205606472240285739853431686583759375938361976816249250374006902381956020494900935623550477097105562218077974994192332453190635420704849664598188343376552109519304662617280857420100392575059416461204388154286207202549619513510732404297364252617470453841976902757868198067545608444454933415884051879940297668627732620424539031036460693272617433914660516413951873694033049773163510002152797613952982116945500374316509747778955725210740369612105288962467322386340119610199697956026002283797840027334817145300328090732032372838037175727900380528368229124855659848552344471882057081582715452925463689892345101264818763832286091278426810097819809886850941751606992822654796042382518764991273048657578595694269647190177907598711231023581742710520094235848930934636481510023681408383182428824454072018126152356858867795788246854282590853120270759777701475806535982512191275393132229711936176822034364001970191426138555481218575754430991039015456319518232104395390547168398896851490228570715097369538018031414175278096274094075734653956935817621511153123004594610176881607510440278107798249535964347456172908288719476192950398986306279487088356357949109450315322060294464443039518776239845656168480776932651804565639006741879153512730923191787589368938916107219888278230374601727389204203512530937357324391153585656076796427321005401433548511213070017738512335906962034778085615666366853414577151660743480169205618429301300077853381265093338726030073515177594390327998071272115578074211019183051436869557973062830863404582726957992077544501510459695100940092546732635318325598384245678702858788704459069085043977600124362707679061227241995458849852565081162237259825560328337422099294279755041139107543599750774173489025722000695236514607205340302228411439572602285535169866120812350149520343616839153490867316862704894276328441143548490913318136276208239159363856676653548243705581549904184285527964880589620136872611304505952881658321553716355492072668191800460339879965207682590690515104493152732906453379023043770054379685233135151034096186757158762151641846394871925032329430645724679777330948402181720583756839948592742174124122358870133164327968193873172170863637410177380405764908171311861804294905784572479499764466671415711130408245714762590692141967289323313282360768859790733983314307852768978385701036010180028264780101373441634956300357741879892292325058279906088730799206600750751364022404341606859310132422229274736101303175599205567282463815851549138749860080277155073022758014733053169927338936190894088929252435515044513074304030941206775907498265432588047704847429016866538693624341308510593554579935962261384160268394946186322979409613062133541341784412348787537031999434725133746683381235344072663781340688286337424163398571931879473646397806992426139087068373864525786247022735805480605569162450268717392174070280162283438163860874447726389646561418669435251441277400946102594421996731940464625146142659971296972090948109229203733532959579207994808833303538712229994585450006273062910352184524040495075892855117406257926828742509293029491998845473328632376621376767546631794077602922365486900156899888845836909276547997904653245912300684860895846129392091342637255168183769384749085021484754806962330968865372376693263682879560444679319161750921492344096084566955402991323960628166920019686034607174822427028662559143191197367381204022252864549011170227265798074475043208752671849130689976048973968370965721223112444390287691061140403898066816386845400660079534994930371092248619983079797592736862252555645258293774500660040525011440645013453396842985167805514026116493152763954038674109041902883420069696208098989133033751580016341157392582560743740316156758328162237907214384094863967533918267273421543548252121970792603539902930599708129553587125568850368364526548503118914124606554056875590653860947387231275809798804845596812791321574692584742475600842331212448824848797669473518410083384618599452118158924179340207579494740300085800149949589201885453787822860149280854576992415138757593534630658777238178649662072308483110275948375665472416440259250760918712744804935189143377061350372633731788895480328177427946951206635221826897867818323422656577064752298088623753432544238316977075706233625280010193881874771627031852426242501114434478820014611478779342587036589956124555096526178288013029654277950799264876914795276714607549244781652844529928947502428793220782429071491860674616168406880944070519593916055904357660083962149127801294882273079167446641256986406722156784618703979549635863601390280686028836350618696677152012763379153792207109103629805871365280258418082615165261384254473703848511804825418697105320349532134874726448325989174387784170374610727253498473450166559091155477456932817072339249958092150388514307297650450068584424288119070064980797312526609026595578036854000015766361249570210840777665803676461390014161310020872400261498639809393421301365504768913431718086251471581581942619808984562057970700838768928497094286087186439825260142503502796266751706653742245134267800079128896852731670925322084254336266292870445620793201966122043053277595545292755606977054240455037640196880353330867112590470357115171994227794212290879570015556338350485337092014748968184662874758285244003590042154128971880125257001527468891997669777839487625433877607885645602481026916728854379512662628773253226079661367415788805932459419977162133853461185344653442625596256877371830899185734720328060111580241538672430428080573170181315737603548784278618753870263620789843062420757949611440838552775185396792328695161003937007428724924115463731480918142657978140530302828385549293049040953929475722905005071034065689397530799699551093574244336584845759008985152238094505376189799233764656180891412778846053558363603452810050564623527944409453117056655707180262832828418167920326239152169577036000337723107485218034312363425448937723331751796601281371239588407781545080607974978346975376604344579100573488355614886893012650781564225607856465805461936555740200229805102637548283361980680728293900856395177700620996896284634245885728897027368961690774293806504565016636852276669891629308810907090838138444954729700253190311490665582249345264570952755553640751653598838683286785730585251241754599956372790578999680349333736966474626017952274720518573336689499801716719265158295453474528354124647069312068558350671833054582872660448143312548935578965963027781871046128544860052293090434213994827572513405418306810942759687512948143938258910198112142025091227764177319944222801101374668171217175102400880045470300910834815571061681430467455345968556787413847276447763457575002724536712399727128485453484747073426448208495413115725238644940703009581528764915662411045747552964444885332248692196296611080292243527332932283276512777032446487443424151908052303058744420550217841965205020744141306498117164235473168497937396584729834993149467957584058711126133990779989982659909607882902601345554007770301204642575653462930297783131221744443347413174306080032222750316429229371261124437425793078598971853131374454397689437521458852522152084414455965385806180069732925037278424487381970862332285325044723360617069463604548814971756542494405749049047549270068807745688370057195872754498801097926734184258444076925214902301027214621653930477983548146336554535569975630705794829909374489029465062616500581956424098884604667955839175997280832890475621057515522225940149296021229427305349477996411422389204650491493773821257904747638116336895927133395457368041728208648912772615756107217614453425223926754052013047534580588310675315100139429541760732755660860837394435945900618957415200474346500008489238639629708298469469489424345117004426062892136930392329614396195863602551897118117008191162091573259197868531135660061396246602651421023168020437128773893031530376332218431170496920567698645021982345028956758354032690563300084620463118799285373247534844403858259978765165664561154532340254776967459676642356859425400254799927798776148586680462842416567566447211665245574260593482181855971852947186124390298639377496782893045999898743520292390895482677475384141407725408207397899214177325331365276005734025062569403304880223992513922067440307034510000063578854560736461614792710972110348991341960350371604010123982661436545460460926510824003884361099632690070854339268847224009760140898361435069342604292198902719049426303585244104239684006009412466630292201015064558540873510696282056630576621797600628071802969256352304388725500448374887210566072629157430007190818458324679663376026919097793913126817008704792594335706213375842206552588435853334498330960948504258432490570184791456743222062239416536903663934192136059827450359401126636668484805036241745834384252549806261550593075480945678564733694679327661050980679743117910867761355058504456839535788848387871405852781868079915474354843616528181471154368334820559674504272090545605855174019971036104583583107776752418629749096150626212133983038669198400689731309817514618062978944591345137942166872623432433053519514078689326622907857513382817779651509981121640789722500433242404723260570135091707748299945639437475741730008096085617527269966833598381128320342115542301508390916168659616319745130319688512933815558224069229346539228899528387676307485927428076424584199020759360239905570009455037947118311218046981161604216216836820056492802761952380029311380450620492838057372495484621728837235122285257918531250335098382723757373109231497896696125358139109807944290370243696687095768501526843131305809313726360418637028234877890317460985971185301413306960465351506900053989805192916446667457360351957094502239903101827756525102958944574978421303806164552828490938350446102196137007723718998326752347887964378035366610395778773904143968444167885025643374335800758252631956191059862724218107694265879145539608675452989859896431195222216362758215620060635609697710322746090634359962507555514523724151447179801189236896156871393628895648169121046358815571973792049013246317824014625340480960221855120317873963604348443342302138883186978323642751863706010501090388960268894603795570990550420739812140219538141172929520201423829643741310479272900820264116796446895734952514721294640726807434175572244783790637073626959126019364530540014435069515356439247686940361088195219608763929354904515797959725833985969525472219568248091030575189576766489401144971293470608942767209091662724315640407266847943977888423465116043511414448922431016462882557851070529672001050974843611158528741917382802222595502303091547677790499080159021811530635767917804007721099633410665543058684857164349608741120747403609928048991821692039933887486146372490425363886843968084977786911130263055565525107137401106691414941573285902678934514098925660643836594383673472858318779492033184761085095197313385547655875763897474989021764392425147424546527492100693164780811690964556663589970773353178743830267151222076374699318189810547448815202897010152518606354041066151604551228242814082012285098160519954570707216393453880661348158255648844525803167389678975865731993471272000891915952437157687654134190930341076994329538850997255905004529622434546685416709600225344761976002321732325892220999146307238784531541171778044099697287317842093788714805664026364449184034178019982778700575338747500363872118546396491173286604789140466999391692917800173018123256429961383387941837516329629802502971903180729914672969218632215659938259268340759806446510686392786681920845212691784123582337676336615765231203508283020615657251044477801010073204194784829251611965161161246954257448428598416377165784455094886204622938736528264123563069093619763068197988404697048692959703750540112722885448218670419476613986386815695352227346318406623344163167056339875620722310318303970269740001823715801937146145015459787297548584804882024414332707956094937360537303392069039878562816058457882374788806638885002415364207449001123355936123064224350104459932605376011944390140327466340973139577903562605496261537882639754523191055589977129870950595191381602938330763589625287705278598869583805851116423488744963267561413531014495662305358659371124544036972008288848945164640829182883614239218831249985097922992916320390281180118097016528023952288375255476291805345560751914706842872519493336098317612724894164939453185102685677020662703348513526798014848103315919650791025362477533119171841019570513498131887404862133737214876561941026802292424928433025504086272394986440893824049134102149963914821695798665137454586145752906828850764233633348747690358514194500871465893932815635027728990849177989005739965025445174657133473788836409313746527216097460307081552606949598293870232300349970307775900837990115394636642980649595474566931732548948402190990781929455486928977029399242789875056691908396272244076072808978373967470482355100784607642945601807590789140370680422119525446988389949808016837071015327077926785845248562374090165145826645197655070205187324296367423194345403716574083602216477398759367065571312499157526596871627923140298739823800420931805355975050427793132779562019276548614540752894617054217448884526306386050713261594759911290176507040222677643461920459190159842636810707371376869337575266541483722924127573988093354328546742259782017225313836053842264150215275316759499632943655913781030587885625204124449265980969906770536634454806967077412950829338289388246971594141848633613077440355291912691753209356430304167988229656770529416893593035050738156467726983773276872907454299566413298348319412506807151917380573565259680135191143567037730026111742947953006353954900142327071449946655632910281282153299525437661767762620818856880365986251326385053781070143641300383635002602053247016736388912199848089890283072174856015816491089222614860321895619808436764383979552772742061903111456721849164409228116219889532438576421116206536226571494374181066757137077635541092190253667829546822058292753152856550548965354462502489520472782253162122523559457185999504420378896224152199823006806819623141924621498721660560775823064120901830095017671241761510990346024572536497485388537593686506033338297124289373295955475251637899387942544056226357188939353642315149487505169935456463345030491213123786328925224621434972482988981289320984354085665207199174131944586276941405336614977409317902596658997287410826957984424808490505850975891441666977939012848937739422845631607307841989624698321805773205300224066623067557921645992256969921347572346203414892988715804419467495609265036454620985462031480037908953175877472569859145953715712428913654083789273258846345294403138167469221777591717692294815653525851567198553623828065318092206664884165231409780821892582928731294457438844094354541810871915757114918369575986735950770568614630004304445855162621492208630183303936304495827264730562182456362639994923418013550100636097047867184099007295443273706447300504347991231530745624430304727869241455018542383739231231583060192689185977767609111588339600673669871021033759883802812918627569912638977341099957645510992726696464497893721209229235578814765220876442322557374660546267921712502600892008628560365445355261288373399214915406125544228441927141487616535395710622373663518430532770794828946390792869715019377396700183337090338741198796072991925805321381239426436716785562639129594150454467011394205849608030518966793810963100858086397630737394084483802027605214312625114187201705327147164366798469477869844761812334508179406633804123483101517888490420997348791877838989549035739834105502861531811233813977477934574906397372507743765098817602653262172534342229924564167730559905150974905400854579086362570964926592204821989804766592183795652357805258641385282089342886778006423946736385886004056097844758943589201284348761133440772046089026914931459168198200949835512292165562132021473155559046529427660614145551480845956929062853103506962759394421788798521235125405010206916525937407229835940221099149454422995783318451432373917317997729491834844888332612348867198385140745136490035796130609985432534110625676388902652164817582299588141273269923987397611107674676796706124650018630328344746137606478463468511300119606855168817164051319730127613306920703304089094786542492332950639567214853617301440851822318469963907017550263664497936585682202215866575938856381600024054065894665531794929080638542207457350534507824065639415739703553897709596565754107054256954226601606471879933775396895590335924619335360142298742779743682835772426366294641573456676297489069910715179010580359153707628259219851038633646502768158115382592095117472496658717005382462236239347855268963925381519635417839101404024399220982155543161888783369588912460453339653196994392841650187284907393057485273557633798141736446681147971228220419722887575522623130080035760482928131410894909854606970811465485998594633902299992129880716179794741816642821821993291077939987950509285147142822687088708893997328889393106531618847144547116040728119813997161919545909472115868060586246723203227604585486686265420945953161106248437280201039822678734468099228710786366590522188372752991485187099182414809115760715813756913823509745854981957012114308920554694646467899434492686317530695602712185415207158873474057259749191488298355579037956234225354669047809865392807966610239851713703054585028141676772144317565491493496609096301122524478330823852918320507018069838985825079280069567017830719879907093688077604343756788020924255097110389896149195658404682290428901752135093596374406064010179222724208094869371305584577757932704767282440713065376295201437728495534527492275860554073317766553434031001513662878994736475864385182446244845119016752148222598516618642317404747058475861833367606175505724435524596969715763637679272007814782516993794402476835640646599699331956015645280577503276958600198595134526039484732206259050839422399916632413993372204319010154141389238784670914657558185676418707196368043335569633807115785665942819931686421588262773139871482672693691490059749145406019015454764971571481022837083382080971561621447120506619586707886470057957960336618077669933968233239903430391531659168396337488474108197312887958839274519283538605657146915950586711161923919663594597772770022905470489398960537173762334488297349838078896093037637708501931102642243545686561816614841601635061697872492266482817280812951582114388552273113297739736273859180940834632547817520385503793290165486890611676251532903932708943557365375165909299812980444980740008325747173919590266589990848814545352642939011459758549651662005051832449334617036144300548850353458190875910277392923421957110206003907161337567834760443071889211018558298509292505721023956933920702446180718300178758008349574777246166645280219582294000346834358289437063825941527171093802709914606001485653772930660318680532198426495365326457256946769367692919635800723197148414148205995782211026189636204800901735788900250046418056727196672646643992497233130091138051101522449852771187124228445251570102679505113738569561982957485145487696123830736807877264484496644629231369278165843976183153750841926018513699704372446723670552720041423380526325706887375800746417752446417995961771939096237849301065727405696841068293691844203967213111097790384000415793044074166341837079094703201918180450627941154661235358045577963964665359596755134781736524122744686121201676195762703026629687617135936246249256860587700429802003689448399346646758318707208924918982382099496099020772004073151101664814931468821732628319522262517322063383349644525452153199956889693116857321714882133504011967691787563801682948822579679609106904494549739061798418884122475037272280987180841182959920075207945327544371596995324252956579561386785204643910633523711270652312323465226669704021915157662456728859500054589290716624064809475874491256851406828860640257846522532935010584384154092472614258111225556690941707060552616104850995504447927761489434652091183526303240785309464981751376903394789357881902933118916378981062001067666470330797603015899154175581371201229201645758786241515509521483022803274677477611676326422734756436118723502052970909687673764949343975076230695029271878286618978080999914719099905367799515679534608531244625765265284170025693993007284059673429092070004958143046028654314707381409849949967159873660948071835914736441170412051762982069305909963390750229373617002341521448631431796517456049704340334308162394651651867715277326296765534655408796024966676647150723007724817356839466841494358214367584423413623969439544434654654322638573533775865894439533449025539559255506020347279337831864776595637685297901887626058483011466466798862617003377514271673547194115546215481617633470986308040776786963855320247630145195404543721684044554378661416015685087360641995549655246219926737954843740753208427104199106542550476672860480633419147719123009769920613974260321417781655385126777153468336662954793245186299557053028920879464771209340107263593947350352611236405989440999026277201040927728292092591584354891328735986868415124128311115390881560269458790568977686208087693853757614266085319808860573864839910632607722818450118562977908858486337558237362725218633919203407904778092638693915771087885744572937971606735530210229869490707546040861517227848582236035798980466158657731621172525636409414531829591704377774331851637533290154719305124551917615306967561948226525122664234753454537794261208955291602795222256055684163983166091021789548237610742052921920272520391665507349882362315818793495589343504785787289203993267628547151505509162181599061728391023327922993174991619344289441497699937060198314644693578042155060055498055473903385944101484650084244787425944036553175805482537999860689505359775081815926291571927962640834246580343836697032127301982629363955537548760410558328384826794204115385916068057933218967420249423831415028782204275669735057292763464097954316550041906423979525995298059981446803162136601717631695505788091610478588938339868554281424072856170983121869301706830455222304619230591557942948146073620437337810382372999407500941072739561641185232012540303909441125550734972374014267500725292914616842285604946594593309753154072328988526799595790745734834208779477197493042011094339747304790518845760934548493266785702911786411103211188692737827968775181383508799677706455545477001010587694887960449376468731604272992962585495769264406363854458818340223760838096709785279123056963520151904460517616992308661470837109454274736300435968772352920898549542987721045186980987540610317502754631113124443929438639639166324308807871988978791945562508734486868748494481302233924827944412987862621314953380846878272211107904856092150748020557106680103173299973064995627420023262253121649827865538521913459717065591743595836426759563942328695459214662109907302298806473223848816155705339060423512164047339355366182419950825146090213433718310205230381766214248259506356344185198140105512769647616568911842276781015406811359447212513759802825806466081033059757505979004883769265599292808627618996027781997208093166339240935232390130810673298621061377729392969115639553863455872238928990797664476099015316988269526924753072802972499431390879869179371766239013119408297692032921301964260476145945683349220337170783178430253351521408915337988355104520698185328030925135694036652602860170827434187799999753510389912344704573908855686214795700725492172058999868819212249778268208882499013589079905665992003058683422546411570444635083793136175547653180135822132371903653078392002981873976497091964123838916395516588701823284629177355332399469147606485602824077150484790813910091412535468571266473811104400387352024222713035892233420836963640442368386262572508145268724980385461924574857384712399210665889670096629471639128044551751158165425293139934333621627188963618649613132846140359437667287168005557184933262534740477270630282227249099186964722570114656887355577430427614972799968529381710841014780884361372582785619108370317687952258901165024720532670448006153022714052742678309577521839519293867743602830283029907308046240072512312143059676657962194001163344369143780027701298086641838112888013745947640762922451682542109234807329452343618039111355299068663611550311105156062364598559384525587704467409282118597592785890113586328794377520017240272681136219619971326681764830655405575259437091878813363432188633343738993658711011398906164477196320388981388817056646081285453967187022829558194073004321055855283213217777587689722042596262805343350397354189084227645196487928507934092750547908518649630444126255909217855953214018765017726605955923170781624323864318133034362973479805653630843360254891807869630828024973575479290280655592563707260576407596648052803076099829169707733742421595331135502606959166731555163374970010516243643565689387044207727188784267718549562521614053115759863901090488908184419656790004691849785036495622445143383679125314478776970595634769432423290146455356975464247194320467750973980784397105181815210298646977544474909023089817796711477697525604395861237266025717457333205802053929014434027995105402953080460510036990912808394202309886270621292055300898180609799635336200585885174499435303467178047379630128700173867058019289214072002461402259849078884757266572006873770308307583420047017868713549176667409504451359428900009949173681562837440248377475602263877767604524092020262228185569074136721832597637279795048954011370373933300672987961762722383881539756774578187185461579622913074355964566895261753842836672262411875030033282813017576017556524642241101266965156700129578177458888416046865484179006663374966941741736094598232471834920348094316782723791123121911024171012211211021873262505145841922664479311753676034068628966264154864615849652977311616112466343427311662242745855934734350436389174351941020155721199894555710012051315540351526783022112001454314655584633057758942851792755534993536404004821202108849089685823517110664852918217130105069868342765373546438145349414053615877127563942011048869294867450467422171433606183057849751003713607110460169803320749836401354997187416260086232979246173741229887140563840861622847145934029033614622310459414230751106724208069455621846823690707173539582204224876603740368136010039564536354236778444905194136863824959528663174942090114386268397154948170357798799358508422632857066724031936798360604513705625799268955503772834568479920632371426623679247700126961333034533054550846798551556394923436949764448837955714587395233440912134182069860913462006977594904382588033684230067596859244536273209416206438224706422838251930473413139453446989103925690928430763271884190715530853372585324940099080458703561997585972833600904069792850671549157643415555630530474050231414766499542602702673888844111296305114083641609010547200729682795255937563893488399704967660634575662764780047101355730812681267396879875933650771169175204032798838987652173020429169793132960002125605811154338594073252279180394285150571097973018569526179652627011634296843986418777620184412635830642588395550631492358382201375315127411774454083391490493398192630218269000906743921338804867642484336553619340748979509203369162024865718204787488481520870348162887137829887959966397432775953227221905846824143364796923528565994487096547801206858364021579180136396516134829033435061538003944318335101414112190632078716553131502016137283719980081326637865491190657923811480121187955869153113333764408256048267522197909782348906314488193790853566939647609307699474755729437104887336994016777681197908794734825374232229417191182015153611408202506505169615795415772458541171632912115094390707577877920549618158597015108522722940768917042399922597716934584239176232852979019784853226412870207165905847454115578510299285546179517905893519815556909596965497747939181353364287722875493062103711431996954932648878317142688684134832078987073574130768213136280445771862234138099686661472278554655267032753840363788437957032222441754596036023740360401447125677449107174096853977893686902366362215869512408597902687593193091266201781044471507645443894595635787985762181245204142313567201988222685241199844724628357993277156699224402837067681747510433765081658463616541290348022302978637121536320290893412779058551381849678080208645666671608547791356990447553110714793531953658259354907153321862337039474344096702659369313812930871740025933411879101272488669921465096241685665402267073186431902828976718733363336566220425049271212401611184408041055600220599444230361427084804103173741286196106598925008436068139459370045782011045707185175534330820123023027225019161774482461801854932787903031201146602403913219442984362531252972875271062487581794088484666307603345731081074393774750960074813354332113220924928026952622943282178400450279013380577235972850716984813232859692490363094471811421977453687882960416827862009376769779425794069558348799436786105799209439234767932084141785995041505329490193431292404714304878062400861565040503026491645125019432827563435392509079545407046141557978352448297976059632070594570747470359137698545319226037132114801174162388267168177678254995056578449947414612994269245270953791997431665888494619092333863965060501132970277438484232381706249351985564552745585688282396563599560665366013486109689289394095825697390206202975499308066557245846306888877730505488854362740666804549410603357539786283554611002462835638619595801158555032916361396605077376967213118401603337159810870817511412381383711818429635922003597959727956117715173233917826931698481385522058860793341409555651764152947987029115631426086463285636027302957996052285410528195732672018370884722821566964879151812276484021057716754740442667415409742137073560009288371560869030833233192066158146859002728472357282459857777893108551698137001393664263933841314733138630784590536721602985825926085402285739922001502639760317099295598344812684134478857520558220176230247275712592772368110407713373899109529815846687571925681671141824557977874954698714768919867322229349632339955916245724190838202667601219036204037721568840781309639661089857894524537236111638725042568321946067046769160591916602669055670169688040885426023107210039054581868594269736702920757662801504313008772867036124417483079229476787242445137216309581809284102046014871438504199382904822057592377523996130708055917046012687569351142623921105686145566908717357260192698766877014989139550979900582994726975586155519570547146803531344744575037675454637560266810277702446715259371269273808139756662889543598369978770964734575413513500938668006994643062665411427153986202931392385748990624102147799440718286489378886248535705759103781804423518391836255411898731609628617023757843612831869130359400335332007203000312848805665528681596163341891443272882814518234378013832314499215574597254023831649712332966932533893226918053791021101337644836830658156376761767980630230992815626627377835586315274656952512582435119899739678017125833229188494303128598912428812657986132315912881999385462822145271286603427545984055820836545125624960390785416184393068055043186885696173082663913944991379067537312276481529936506687194507154446609838541555610231391629301095643426408541427784989460802827035013704271092599696977968789745661591862094402467360797728000531056878017579756351759490245825610388318646938766252702033740911301292989788836602993237585866171443421817354710122890752490780088712469066869914285893807793638748211353599725959828759101263018994322339686315065649256983655558893747456235350194495799395399911558498425782978598595468434168120845876046237719044346758237458851478938057311703934269683873286250469256638403955020251444520639905398227268714873707516487501910886416205616625333870942227180257784284306179734362265216337590537571633961945514708689576938253896224036313325510827177999018000533447195514608117483542584798078437783182536157374946051746930117973418019669183628589059606056585800795737448419660955807169127409576315918951193942463402663172328990255587382369211052953501474518162649636922711366537121458046944204907092500003977397677316894399128016787594726078587830480196823109222472305895189339723746376781091146391688460539695570237871355707557710009163733323705106283126975369325641840476288011703842483642535574619986230689785777988041246002492195793991945836678669015011491952213472057612174419943075273476338261436687179979632927145184713992759159013287541076914910851030031770529250234665525082213448267386974865437059740542954144210986178903248709072733864482573669471204888853420816161900517867724146678602482663384375196813267784149321971371674865731832658751216133469639279096118468844727150369745498305406553079346205398478623286991661813393503484453963049960285707466966267186649100709057544450257849302231878667442560706495954095663267344748943469747278693678213992863260458422100201764102849720949883061141318116376000428862791920034049213363189308609781603862514065298941823155673000896524598292593273465794127203966532064822116470233210240576243303823904779784595524821274858488723189349447773268665099687817674349868792090293405825677171947349517950517859786731844433369647600878286100251752354718275496870348253260730143058672831325054975649468122466246861791887475546357335650144836346385061192763352098473625625044403231647910100700359681442794476668261293982398628367233682106939907420326594207251588104149525097926782675849761938600239241176101528276242272813721769664134676313539781551397475061838692035416023999805894760777638271069954518526928074466036237724255794839725360751780379818686037885456894182219862329631992742662373061748352711406478937568539496135973408925178589723081522324924926609776519096453627123149840813465832820865026257770092651322968003437123498797931408317367901701178813713368269382834070794143423884846130310729720364243547669474175892617132706653795417211763031817014859133978797233571089382728109225888496715670573233212047112696991778234347758129327383066745893164744899101437477598656337920998985246613549769166185216896740740336896892212598441516716330082719570797844648597383861444869367853730642710438101539058484626517274504282339676819981080117574752058423597187917346089738990126912575907824873023260685092187187488888731896082658252616691996481777124783909124350290327191689700113750411195474375084992545442842807447716647813305387629255683027908779103742976334991041512558808330616190101931903719166671044018261651376959418096003918831097976720057038533190750563887528519782022434814729699147741680951193284272263949399927327172090411466543689803954399727605518140198262567301388131579980253993795583077437104042607896876538739473924460791549090194621825268947609763879416896571684905730468987194971382604952763163028227913011505647253503164220882674263560191893235585493063371939762211503577065347859947252533052256811696779835039054185833274199779115073471839138914568309772573238471319903577225909649362133202373765451782302258897008613934081392146486403948966882539687965935460012190524016499191251730655052952274315539928974519702182990026660257386312020663531358092827490111539399254603972266729649753105557746539483950473489772835440778483447905368005982924853674707318508666053974442400462622513905559545496812456405003953495142003395287928624082911639856850982675491020866744404560813473392806079944717741133253080859416476699337995853849293949856908150552086236201455916677010860499974458306847540394686194731351654782683513333106424392571053301719081202016860471261152730264117465468064283264518508429457637437616413717875591227130113663715643329586013123208365910675035306111922856955499105644875607467497143528986063089683288394272242416934925121194801791380914921599371707876848227416864205896152929337524616608416462602870454398784991992658005778960261488490061394847833642838788357305386427419785540932511575795699326775161186548152053222860327506175090232640714889726738045464427944949833396870520390075021865975006247347191991505176058836907857633720072253520142865726066254706872325156547270398593826627141075343772271985491039334865534297465479619879018012526522238629601725990111963061685248631940070823091210381440677093578243969540871381540658697919988932375965282955807416814475494134698845304154731810511972420416991631395666995510090680441696633299219045029897788991951458402532134041911632225518603245297475764434061753264274989531952089110614941286736067673592851671324788116273064442587890574405555764961200732408933812341843130387899489002655804290298112321760983735377299922413471206639007421775444845411379631264721486643491165144522746847187025697327568317554530840503644193606368444208455596037029518573410002820715630506499231648181515106628353760992200697003274539010761608049207364605874465943103340632136910971954429863587117268652728845120832946022414706988326036124645335738087001668471238698424866678879327329230555730143751741819680718929802012892850575502812339771031636183727056524417587797366640677459744319043380144076460800748589174618485560141111853137197690779612066952205370647091420142732662248381206663699509290353212103730315957275363671488814318125886357849945648206144191152097722488019828452143294492548823405573957402011582627849259185841522584576401147177220094791125455661051257139996370709805909772240997863767093356617064306444637508222305190308674901016107186975666382607092897826210285741936294640839687188703616159785977517201954558882241297704182384731746819262941946722889747028450791567496946426217260329367035885658062658692576857597306526918736784085839986021015228893845982491399344778608914400481785898460066886510814559564359063019859446036441256947991295174416140902653506311588642800381618344761833970882049103780053722802561712513999140565246602004133827322081306141257497924527729962680806926366762647747523286242533160467915258957497929035690159038071501036587144173076631329454065046205409229536314503226234680241950154651013526416122300280481787328194630945511380251319440417125473210407529073509378854870833264779286101533188841715160398162346501344139272996839799196647826864131517796839493516377159799252834176554179639854873615701161184747732828195688645067041977539884382126972403329848555093758418970744308428461804076046169230535231940825905119858209181060938645709608553944210177356881635824735630077272211693705882765318878889550041235598191228144651624311840899309966745122266641012350990885039144859413225270832097426119666571781029995549698007597283327460159044353181097974140372159200397979693769721415102998545382729443490203754685874768457636631670442296837824011148226952716636444177633442900640504624861112792365617301733023062128342124397404448460977014375569104106900086799084329800242699643507815688408128836289274585304263840943967895959512691899882762468356544669008327437367629211002585241500550781780042845680297447758293173280183634278423591524661103278872593769861906826918689175743394838406960180927771355372219151789200344905153357119189314361451832537811021765644546615412692600288154311887399376688347767126003727148443042402261465036251269341175265015834090790109932247926368686315713957305365322090431534003661977760841157169834107385514769103011003020192415345774465858045920618247027415600567769296047116612922514588144011792926932738802459667693781155460122559144062373386118571974746227518373325750993540002170631221257239356129294922880112668362186379645343062659250176934697103288114400816728359539252198356710722411003692723994661855859135020779648943054993455580787648618999751469414380373032095157577652626882111196804474941018423399236222528703265587578443727586699471703973606089856790948207620845758432598142718350889840516550943088480346132368577153513294598148852685187409390673237980020940877816328544880429585963049363317436629050972901449111519987138464672021995422419263593354554406814195405322526223308449464841814440680675296288739547469465600791437330882831425105601079238833639064244883574303355430062655450302759058756957905758011455586851242496880501120926981569968353940720187486870514565136251612592080581244583721749953603232645008170476223259806742612344350792444394305205435328684161821342401751226511349323875201058774986154740862832945817212918215653101943555628869364291038165355430281625748368234950079764111147779324598395172985428463462181790389031200110136787748828041803062825460566348842345635958479442381278469246882783965376660116652946618549105738147201082063586626711282267555366647361053528543492171042317856946911181869273878949195857052281162232903708397232901222599669472376465256128222360507105959961916543722064085182879818440468552444498713525488420210842959029924635730511147878089141678807668248503423475733460356590834572068098359378040907712143966925319014981712773972167731362983909631248952553861513722760486554594759684907725701741443724391978534890186846781331248542201160381800460247901113073846640302606850017612899315916271642960970534166884774038417000920981304091696799759393404490559312243864780688355431127327645775486616559080826980988208082414380316732940323754478024337094750082936816025331034411583635382108707351581730672409112617844511733578047149789794560804102702606123028718608800677822669865540278570425338954238227771812289807521750849754533152990262809421567994162647008204784240276034392691115887737528684464233891398381775404605369907624935498481190069259187007206948394533733337822921907521230159545096040783223465799005951838167302602732019508141739512370842149429615487449928722525608733882096035142743030480886427137744444941589318025509694529825291043655287710060065905814547975081258604043461377441175964328401966199213361516158530315507647396705119238412367871085202746428157577698928705277389317531801418012905516149693933998145866133955640570040512560768045224095881855378667652670202040143701749392605960357367851192329469795697286720395462763072043369865429461279627606870960399135885439932420013336122958267384854832130792124388128502753777451496156787222303560618062158169421565070904281853926978296256694586474427021311378317879684350431356774661270834469899482625810963876240425653985724305220242687444427166684063163208880659102472081889275067957978800681287092324052734070637446911720017113597394271469012105168338677544211730264180249743827427779885509226938540058967800896103306632063942614635321305015241592878669320278224703438151573474690103637515251839901825861829138536081795398186492473107724888493801990139452396140519849788969709924629311568814022976207886856365344142644720680841375949030644248541123617416761243711741898386465111651189720928956947059395159253329341415884590824330262432270321307951294514405244635372447478214002055507566174371626269129730307330839468429990616288582710370377881411154131077420767051356268974243897596802748291796258241863916870110545285797555580532786680104564146757293259621030815455536659598180187897781388504596136449051287357723436187562491705546331198977143226636479065883151780371852532571149298261253712806126965148037983560213640763859363183860647536461273037360841109185989337435973918289787807032116955289831820544714901848552622515630368457514521195509527139006619579385964577885991929789673566549663750055803564471634987000868686641280872648704445086692247463116214931501043194999194171330578850918660026078379766246387654330178027637555095669497101261552210155659902186600191242212155648031102411649343496065994535555785948378696850845544240178583329135010446499959878762948819858909996712643165323880981991793252879265827464763967635033660410002392406570264510016940747673190448025438307070703082902367076574938933899019125389333537977533180206480847093120394832521779672535624120317119333948920147732014556994340577624443341890883262352277569108263606809259248747705853663118578010938696218493965448747321781765694570890498554779264294476392739340618563020196055529049561793439439529323775890109202677765371853102036321767233620689723204713547599556688995693534064751458705713178969832262965844937640444460143723796320595767027111015182456834195918081657357232043409399929985496892065159650055776390884570102829919170722736953059754960444194542829580163859891785279485055501768847844902120491905394417820879723070872042079220424061098231789702116531414962636273017551776878300327963250919659853135169147019379325834192897415842467422362115439930296255395917309777869912064789970415211689499890283199618449344868911870060112565984408225189238569171885717461723905761228505837680882099297523995557908911016188742462899553773077628669595649221392781714397758123165607798453803040401030546505631071137711415146328289322478817886257964117049491880561297352771302662943534958524158157352145893203143838149193823799599514363404661125595764103849481355577946850992219322640916100917278748258505814529259425261292563100940368262396451167642888682432753624178772206355592736299209411303493984607689775722740276181665421438836088204984202454604162526536826163791016399886023181834768504990812824507323238731221845296341880524698735006458845375369143498840439413273234640508040499598277050267166587896845092319637552585657729971768160291698474812857057571195748811106492202021726579112883599366809250486446847301173242867017426718886456266501608955805129624208716408368087673005650018809945600686542054456349446034998221943050836046255349740708202947313160071373974234630643336488178547030293426120797003337932415154159831310132711284311019368429436663984914974485068674454232167288593366033297073365565116708687584628144735833385645858861439124251774183371836834273925081445625819710332115438215084797094052874705102992300603678193308172203509392082856983278393550549981776760413725036738918991707679600811756477765887120052671101644997159593233610562427138427434047040532444816245105053644277840301042541844255319977477859592143256117444648867743953460113559363705269259354104781828916420012199106606793104118096896035225014265476274589526747801697954348626019019017267821651011005072068073649607509985338844853639031384885878112088326439403677100724691497917243686184312944394153654187917351073128711801809415818662687643288845306215356764032441289530191483613511431569236344950034142795237213726930244653812423407505361248669937538346754009537614592709311638122296541028239133977336163341050928486915730327793717569297186120770269168926944760382497682806138468725253055144743917425128125736494326415401041063760874052933008022776873693871759005869508287312930074799307937070703035127044312292952125420120512134895202993895943757519355811469347844655645042084732460760664274883654912171398273156136975177312088983404462516645231316970554119444532925384122071879841458077249021703850715465008784037570747057800450988323320626875331028391984310418710655792278401271345229366699449145179324023569087728632382992269779782005925200958337758890066376832494676565758800150292367582610652345783327822467760230067643062542482408654081284045721697766459159335713434863654835469335362840184303509214686354434017161266011195589710655204141004562295261175441067397560141358174434252124270105354475870239848451447397617489157917166756283093803040161530779326938614730497803887634327824449822413731331747400288458894484072708157283868193588180303738222170457227189789050163082052807035244630713041917474898797642232002024965348178351318496859641976048627559144898222193790931788890834792232389178831886026969073464474594523623411347598293075284636154818670852744092126393801371641043701356124372972248494100418587839082387235991853601492961572101341501494972412263438029458210582493809605865355860011687672260641326751782913790179609276627991027242349908599715570358169830378242139471846766455990871993521690697473555536421789152460343908671265580850240903165241711389275373650569055843678246729902076085822380490589364475551777990763651602800345494677026207351001352898407581126472570573191959019482365076837278048233004720063947124000394796567969729573124321689738721203012059038251501515103660782406075627089656501275797243526729002605764334462298375862911301804326685298397511469151161952902331101366846785462493105162863101465276988151090094155989148943059662692385422592907912282601348089165407332516514100851183442198971656597446096239185014135268052582216565647256650733305587996814625381446731640661205986048758414686707621579739954669616069607635838779580556311855632395471763341347681745867515039408561092151812338682527944839034551895249491404097069595626578348636376773125732232779782228346998011685981856776662206220643952453534586504419282248665237935981531790795302428176754365427970117009257361602300369226618778190105602636064625715909752407258539041961741988570720990358213491650845670914375161512897865114379342283149312427349821991147577169340883825609127126561084721601249021400782084867916651613413722638607983091119770042326463098455907865352463675364426567263480863901894994447006494520645207581742655582434478251795247959082614139316108214328749213060695900888813217031452646924542990482369949242318774613438256545012375237827760319033217302653139749168750103751069761003225935029546146942173575143026816387680613642422894904629510631063731298712857448586725074448044790498389186520158205807636515259968572472277676483450566208510349308749217608881546713958441318540355073083822079692511169446560960137809613923871195303983044483546010491828198331364354533379692062389141035509730224891124235178992880829191761690015171376747083200915121247234785098619601843905201224662094594766792674816789091980951755986647717628751952459896667491211030832825787472416591376528878827222715214594681794360180742693501222567262846486454343559641831649283766022024610251840376892712414697785830927591499423260246211548980294114497473515833746308151591572632120069581833619076490514394694872742163838772437450425838380622438829549342511640524890284453318002037886276172220709411668378678511724203285634940069054712274714572072698898242276219168598918317260324955496042562739219690247659952504947333566687830140676669595308847364150865325393903316878142360257422036313192555485106552628505040246569119256296252532150152262710307088163048215188373374625505072766892069635401654647808340730494349605885133971886801862467437708405006742605391989571278184182117541831891150517320949354961267008921931452359661521014909690674036527831064008193338424773946161812101982758375457626527522426851726143251664562702459516839932166654016776291038439418135651062809604313943937827873885120131959992438041287293092064845818340909476262159622564981148588971871419374601649446353405349348900789157214829589013716739895868840602955921757108332938694430226552174532596596923460470570595600412219466221136806576113669136215655491235735020127629600443599514731761046517113266119142795336309404824667285192340177762609551231504029877880281784667141317805891411262361471993913274088654920389287347746285339545153978847057727032668420207392149037926729048688548879508051561105903220604576074131551413859278073200722264451237634074109092579150245226168066542177795681753858026024751660746916772440632033675109440394765602817914170652097097779307799242833451909596959864976678644510965852681437246406595490934014753477729521641134972486136761341624650165079918276041363025940113366287645974330090892580891129093102705483142006210571668862894649680788955147364956751863848076119685468244744612734728815975301368974549410678626057953885540391847854912550395419250053808841111139938389295630760210511371063991535391120208500575191732532778776747867506043284249633285141781926627249477172984291839575717444182802689614469561784074240886221670210872050585947995375209219389795674602882683496313322877301993570670073747310214335018114835635952049146113814578107415580669747818108205705898957200181660253845703131098721155825584867690893111783698974343272549889770926996872992943644119443854534201190991265166215742375688243668772812212298177605502464771792716587676293028079873771451856308051556842386248443503547590376962433989181673767398898435183631526415076930419706209072177965220087954822031874645116032744442659368742247917144694733284334767206592029715042481279506696109280600207777318997996344854977718463631089194555972001399296533572089286413055261101401494060181320474337710631244776346301150630619706240726790010855627493010205089825996270001088305140525939919641763789130702447657797022210790261327039785010588156299959246018142401664793191629088049149236027081615302813363336974634017510612611169979658192472424369888856847591617223253061423707148860303894570709039633465532132598413143207244246035131041647714615237220710081720352599220413745573749933197434803890546919716724328147696900197493324119872730311378117708656503896047034066558222404322538591871071232495414900374600508893712888579306565833257332700434252909938350032318100184662686106455035257436002229457541636702628701201633224920951838990817309862836221210852059859905380719928439768982037132203986586044493555931219000799036491860205905936812061669141821139162143171019284078555861830699183757272031608042515924950600463470379951254623065673928727199448260582835553988619988143152519582405213568928220289256249476486526976389916364002722113504147257523530811143379192684923553571355416245453561430712681193129611652318286294762228357591149550105534949700796667761042053678680580867878571295981413457527785020847506537204313367052197098675544057026461640351568100135011312275948143749751906682284931276435440084028497407070928333308078900098812916450752041318174147059407709196077707119910718971389261311128599915834049456416900821665068392246387644876803744894415522887037464359623249688286105518050742016110632028648361395632014705601818651142690099388969351699334189495967095090819037509800405772098367069502755316834660324316390640453591151034038360105388779802073059890046385586700040834690545193377642682709196051124434807413703344784305695750755375242906710155499898205222644837697747547290188450236894383198450235983560257142548876934375538875096258944529502868475711538239802735859316901343348914000843342399754448563890321050466039219249821737536750762850327493883840719427408665990700569058336772835601479744741350645280082729758071306681410880010375702459354652611631796971988342173365610715670777713762187055494382893293586365403826722005636267900952665552889986735790486488580847474888248254699729971080219464550978627379628369165219575736557039052308591990399739055797435427518057990191044630024860654929986536816861895355461946341628373919304833793797034224588068392976655639704334674468738222569561663952199018152312929920739996942813368640792673612178453992015491809140832517449255634316467652261395256135559355288221204641430205692079978474828873222905694187754537032347363144009689980987802479842168680295187824580981472831334213441793144615083709424487091598924501870639943822055229684844937510654868596460976508653906144894901460706166578736081916477665665842896861856369621920757947902545757738025736738503026923714961497178051938828356800874045833436133882993464235969891647705106166163606230274590134921849145644544213074153624694133264369505927459592525166003585164737808714483410800584303527570964950856684915241225573509392431505048852639249394693218351447367075413894984305839265161108499571926439832417331352525387918328601521198070831653337514415988202593689561754962531160223583078692581542149276089706067371538770750050251362176365024780138325925527475781945473214072215553777179607839904958607397327913748515698226942000984110948835801670407516347731106072267162468235856173778073217591818757557881346590448851001090823497362306150176233112850225732100496816108875196256551035341464665336807840213429699630370996074732547149064993606499941428590789478888752866838614253909762395229798302880846604626259005524673090058187150799771277628052589101071105482584174160288346071320078612317484013118047415619545657757629311311542206372762090621431310539395154279903477683476681509956047547451214724707897494425899898820012097266731519589769796528403806520247372026759754804472212958403228911458390671830511104590561827689243497035299560805237774711761386988698414498695919450118299245928902719181975110123191336804024186958013972000191053922256082751023995979274744960365300011134475278736008356391630635437313185697133829977045209380457639164074753155511683619131466341634459933159272060302023117987407270803869653635599057364218512690236761985744684980858971443625923700305069081835007205110203760174678220888357197874649795622610508865434273145764719214405176172069366426720649084197034987739769434142315648893192151367578999023353775105495971725948868481127278612772714303496361995269840166229317220209969616224707229357507969825077516764063373204097667698842075963078383613858757135442805810966777821999862864570910424122735074980988199108760360552184859993620613365986729893078680767204957052971654050739198040182883124853229898970357726450642996632068800807447422431618369252756555968858929417545877606565073838541248090982440736405996477870130474253210679839026970133753179421600303125820379424627920439799222302105666067606945878178904907844012807155563497585421772491697331140887045011447004125054715126843404561742398189609935931823872957353663063643474799690612606552539540975554239714906518355199136792865332325475416724787801553845915260470285106717352110237326784724276334467735174499625869361944165563137566645909720827920976877888501537294268479282613188149367787743554199568230310185375060936320535597112704682335319765723249217340033419184942603673277709705629824328838674261179939695165562899683925564800951986687775022652673589642464480686739606895215083367687917125968239730063021236727848453243669263709228920599993697904138602734934189680240281413772574930073706029084134009119041653986942679198565856681095782864462145778263904207839887800449294126242480826397464200213700696128876592253092329475482889763877997293384780794976267455705825353389785054951966263722459985685356959366167763615643040298550349101272045995748214360004345558223628316002960372718077801504017534148773799347552805151672044869821209229450635713769911510306629421133942507889090573214584089451240614296377956688919685033614854996633587036967838198662412978342812398597910876956121276337735890011770185973495249587196200555518464288684525437637876193478117553962676202216840691679543978728635349619474366901654021887979665197195050693488091917189180083057088978327600377586041220484595517513252498298502895944806117350589526893427074930075187540184007708418953604896659351605537061242315994126085961626354290315126536536659338569094079350840468567791651617813373094393592777909513420208073146386511250590818797398324525756202826683849921899710028048599601305623096222790582334834320582512769237904360963051292141440608620976337064707978026273740171302019184776761095854396181454921875676816058825158200891628306394192727559084613367684998996278514705347616800082145235732050170174545046607070126311208437137776483215993641294327343373314873185053086089074664434214095918926783281560465676935708137501466381148380352175629606678780235937224232257319461873249542699928347502969962660098724672587386161951829268530978592888164350030446763785517485360300416711390960594124733826775297918469873782586370130733966469078484355815995315345840596088239032641742233111767000201168569544299691985707922637530836495249274159637299325752072446274171766897970638311072308277758603615867374695675220832041131314657141782858451696975633732550344146478524259836376580824337007349550717912793244890452656692070943735277179834048798941518541121591027587490851888251057352503927565490917067794306379532962356858448554400906295672567097517685893045298413153293748726237414428817244292315396433803346784709533943598895935156475872241266537390508890447975765734371941261409903747572139407237561419692663681494530160149135798222891867698490025361502425968973783738577375436544688294850004376454732405868375181228310285533899639852749912528188311263714491449983889919234575255821454517896501408264101784109211296693788631080618219165635098071130420029173724745595754284863463532337745035023556094102446366912876119119134474010304021992078455665500848096640395731569326766506899521985975240738860705636248183991137782834992741711485534440397708643748670419518958466381254111980806093881683248461756163455404960468178687893188605244463132069330513266880306476101918459197670949648635059210834370875177060645676510277318871904812349913329917301984511386869084208336172891824654250239421103928675308147310546333029467701823377945802548609977552129593203627500304921966014310982400038612420614116893639182424961371421919543947072863672310982575789580266264837371256832272685372646688397502998381036041850687108175320189584340436107078653379958048968509133509349358037977135873765484391961530112494837517702211350509744730234992475543097263449950358551429587727038833748119922572670457189189312364269315533038577689385767967662047827213617182064550003224123970311946313236267850275887175131999133203620295831108160694834631641510690096108330464871456080325602259972658691539469500682951392232808458059464580541404526977735200980915673975323087530033032988844320496894874604710598283108774128502401308338419192912364541753987657703224372427969731750421340697194625967990040208969377182510093667821849058442891223746218676709389440798861086619730409284641601055121873524667545962903368241106918010192163040759371975729113025015887534514645570421773804713397521150072226039438372289588241598570719162079196151347141031430192625521428834581381475938788999271466554553753081394083795614219994143899819192747246444511207620380704938131973100370254603815548614250202385549242210739969671367950670838506303199930026395534541021717689551595074735756017458278076957780734786660861118194739933036462289303674957302161560056393062779891778264391577455058738862611551963765993695714048135106241903462792449543234945589807535082212220145262157501316871181316370869861955154709950707497697415239211095132366255445116686939860554951676426702794051544971567699362477007553787125611487229933913968932355298730343396494401455644537225914617891440552143910817314856690745406306214320769656786905676671745107210129313464636787886053688216251596470694956021497774056199849514795726848227389426140931845467537997175014689759960467841362564947820718564788117738855111699536813374299821022437509881943285854926612530059937080709299735548330109715607977660743065271585260953039427865902949950707313135543087966265627983358410209786846757909394445733146042037318171710225641816406418666066846536024928542999313781551138897808301866503851761789948980156604001283156986346234549989603276832259335983077603491648755238575488098946222368453841733364864115705125142360886268762362170282128939004185875067967820503354596075959979491364002713593392544030646664037863968971105252985193852985337505075280605147963557853655021826107063180741459934591743635310046694658976219386302339197944996609972403503708227342894200995457257637208482491556983552367655054706519992532408801435585853822571173681658227354726952577096267540421771520210211929795649948545663117195220893319515652504931650950149205460012902114780722838352440018315805681461149053182656297400737718392543854187547051102261576719462299490853928207542633393955216394129262700912700368357253834948753487190333160407175264039196326749000135483400092858400684791061223817436530983828776946394154782339033585813216865928302672161068447509450194739845714315504648984437662561556926296077614714295279588155980904319974841749162258353888598841002568695874437715126986638660163052691549474120651908573852857459861937222070741405257348885952827751206023918281595705016533554324368056814130860210807211501749728103138045741044383739750024440411982629744620676636240989650242033334774875270902233868432096450308462758526480171992991016839722778711785724172662850414344100252044745819692507656368736267618919615560274228199104546265664741198626103880222817195286475946466397509678941604026922615310183904949527063304368248487341147211922465313436191329124697521957174841839812886069227434778625260563883203206730131562041003247187381496842434059862454333366498737508023239146214275250381173946200807248195087427833734696980875383874989719748123013431489520617028297604890803276947289865702158287720921778166156466431398718146752943925915458312301987571723889042034676805862472782845687375446685588764127065894580808332977093478660473615297457949691604613701071229460159703706420038170616876592495727799882651183957506494465191642393417721512005269097432338630068586004611249782030680681981335068397485328171404782539308427766532649765898786590217707568559638380907377984277372722397637627305520270755939554709529689312082476742774909159331688463588204576490612157401160755124793677206701035422322403830360822160235056646781403637975633076641017945147985717620721227230318186993351320492758402878757810468334987547697512556036010710312037034861710173431187379125509944597436137609087420278890450697713915014666537410786643777604620501520287627995624347981148887988265732678378354140661701213127312059229650746321665822964362902438847800908374920470936727727577839286392247841155449885045443186948988161105740058816856379884019066632023795348002419437522505799076000354604611555166728764625195984313298266109387620139924939742149782774245261549362911668419805741684205879966113019428237545562040612316126832148724424090167282430344200874849794935864537606791691947711244154993378003445600340261859760592309537151580626352671094261884877613459576227812511268335353260905712037160554694431810695642561261671639958260117021211181102025640368675379262461185199400226202830113833916342337224541736927519188187919307390373034083554531349376650139795676252757201704980882181572265878054196252250814234842703467464176769581186763838347155734803138459644563175015892828967792976989478173138960248639727220974315359837275897390102265169480169005502786662814397286326591051875313316168619864569114755856036040116926612341488559605432479510786253696138719594395220824997794666650320026324551942162831468962377870258509730197351394220934635520713754053303709668527549762284593580170336341637668985039520505646383566229816830034207606385909892606990705644750581774664584851587606730725409116842488766727069678628440536093154142815130532664418155526770198299908017085253784962845856374925637960372498122807110581116397272315179829418389166836089883765945972223083784767857860478372249365725538601526975587141554700324175379506018480425070793277804870794916416727918508020806944428743212262160442581337988281676515921527403476379125770567471272648029055174575528745832875130627469764674038734986875866922316046909230274529404908510437290524659720141739747416951716266913555089586375297188960280654623191100205015915291699955199264642978482126184367375426287909073073141528619261009554370963043709790215587967987327603551869938138830694494133298465439026670477631433452447837382214361001355235806365071287015615986325486222692844910424967054810078509553379941211154721826367002101651372978667870300451848124230238796461219799805996146712571409133996882186093394297061779098196167947725524156517675743860814525019682096008916847247114560741959038599909917247814220939971071853807765715089743983805137771414053405022044122100524791088400949120340715243876832074184308205259507131175822231833767797215479686786424014640673473951800615176261047088073534817309993309770443463057950469631697430382832175218918463417348415012972009508846056367680403155100508427028124266967928357218376925140672499125481789891453378731469409258038997239772512044702223573247219377040031329603045529794158249664620054594028624760108012331120285159860635946161373221704706121736985967208993446606508331109740976267286443580921001605431501344056906361660280576719851870998152350567025279212874530716305853626103237251145256313614435417924673094733238512390432504639112210949831114152008450181494794377046413898143125078814535429261966355960214967283823812670257227439207024602187019553123262560412110178344359088921049813958411201425892790627106452343076531281489127844528952013809011993882680258295016677393595060578650407346765317633065387120188351034465964493211376682309827995188869741318620119997038477597912652191515890486741035713732967179845734435519916298500896901114964156233593695122033781141946480300723272114483310263007889818747607626614263626569406559571916807579919449095441954942450092036829995601337272963436963469532038495950909734652993675467808760221674389356234260349626406376020499708836575559020040224232971917673282452125652578258446767423215639359837462389034604196453094661588655024632535910004633914681592834824468682897585331764030831698572337114720085445072801726539966555948177508397246291386261419441711842529108992687080478807511125265941875101429709241508631463444488214110536831144223291979410896222916721035719401207357746129775156573727456183014066522895478864935570269811457406000582674073293461041333040804614669518883198161011283532280126549040557238473546706667152454290729922636926572637130867610493023321080694310509156577356679934818345383838280885768500304392653901772382588491244506302418578801964073968442463913538563312180121115654675084573942561484256542209267112902199387256260091561596384351003854186421902937252505966766788709270771098207581287426032560262505764771400470271850836383488904770495900059021017073638987042164147629755892548612842420688512668800082837131731984377755645582679131189689060173241981810576595283360505862874989409706156374720170688122336450633741197206625665176940269188548991131761974882176360109813662703779053144631651793257988261639850115455225872422980066089032643000056992183416594110730998183304715848068631630364716644751196480312668305819878613600020334557497078410294094533046084344190168657280269040894195581738050290225465714684794072532283225958241951456914906545271346127804250192134355755962682944204118036978377429939027217640647322978844609705289273449893055686087730627124264844454573456856777098452706551302194477817155442716354676374803478573245861433186455047219101207046218827459436586220811865800384212893409728033759433812195354465528545624748328680746849230496745727513260284322351810437837191490416355401364802843509941040867982299166899039722700610685313528738813251281924462537823997511308404160598411876654363724585740669437610285367905540190548596614008988305585969655537920114435982567949247212871515331791108946869820591376649276502322443465574585265360734848023161680612148444953151978949861034010510455564668047873929032028234893852637319445865347772875994160178814462546382325189735560719806219049316836389489930186571679222989590190460262015870621183714166409697181275032937676344116448770968479713802125393522224314459506194222066708210395161485292134929625218664692465870829045924074633503683750680635821358755411227318807633184446980288351916572653151292983712849349427616552126090862338397460009474288752417416489965146433738039117182901198519045500985633382731661032748004375799965033042967398858176400440786627175545208627402095151349109779273315372369988504565802875872094923167494061744827252302869902589885239783812570365018342983722368267895520345427115163451237535210382980937888010368584103433947080355122075578216322477727585310397309522933111583444558999938990620063966136521391521847452318657411717022923988492951548890827501552277986617113756238389602077170359257072809229286269898063600886091846766209300619810561395734097437209208319690412739804078484726690623888712236711423689677470786293149283326634282394439956157237818608490055034291017508049075531900454321885814997520123582682562757621111057033486116428055083306938956139167334540104567125983347006648957572882591966183183087416326741327759680644730081911534995713071812239539708738900368342844788463711116112940103775385537704818256865501718257727578195252141375659738140136425175350160550147696516071095456110349965007620281752008208141505196514564765949520886944691355214830597288896623222146718995120112282150855765163402396167833172641169735756242878988510909981112564488846929567306658980894017540623869640882562912507631885542652855710924345926076399211503826398088864757160915398968297467698892985246812985673908777443409632823061495969061028134821242488526829837442914057930916294055226897727130521323605353088519757382657449893930518727980547007305819065160788290449675836694472006010516485360881681301433186218239832941534776227652099272089092656374731516009459572934213274744978484973695139197069419500539765183464614637603300657202701417301557344071540144563237266334628022410516611729001024377118990996719985124445085539388291937417719295573463853756083862086565208606527798733619041719593874215975608754918539121536954355508599889835008423216409420014210134676689700830024303418719898797906575147708124694798407751172577356195020219919213053772236915214828327027079665447124846316211186134399163422252968371163350600032714293475109267437809960861103152221787780590426245937273167900359180733907873748266111687840538706413577098014383308879875693509167568739335814246434748919734312194094751661825822588920899813053797154151645646228386615313444072852731558932949451015222415775598624557937205140992162630228486438019869401859323151575037380690068883971593092687748297740420056269940076766630471779023079511540920670768586989261390856701227825273501979701347769284416627275202271393707655306621742665122325967138336414588400861341467770684979357006292950885821510967573193419617812481256415148578666596368599536337759678507247212205992635343506161570729400637912868662302016539414229108494120512510138388698859282109379868706847554940678735501079694546525012364939688879587979124193944411366323777366551285821836661304551733861119325457746969854138709179537291277751856066538805485670031289311814978463666237933775631489914342876530450065476780825591734206192739981953844505933442149419171896951311982733624264389305325020480408550519447900166960751761419282603202284454709239909342692722291974971127915576118698866883893688524668234402416868338386983780884822801285753117870598559590394739208063187400553768223752537309472723689264703598434291844742006297324784082847945815062669074182697999304242201512489803060809606157452319972978785487242931092652741774842612086101221433762681649464961279945957853183936754003577764923725237353101265081102079570172564594966482004713275912759360548809595892006034081626369352784365547162049059068281377736373347776347830013696584290809044305300624550885728905953947641505845421341388126699680499267008287704541589913643968570625795404744890665938112324904885545795991428636366487143957752023776826332145266320584847958250985618117582302767432510864506701576364936228861753915752701984855641024350631208520003541377733531591421601549646002330762537255585814169522386427059098047072928466339829646118233322767526132994631741637533936516405763982392516925833687239187523944486311385278293236250691810344410395302875755488690045041383934013609540981520038253059782452599755711123333318568540734481520608684112234458815876535471786953767711079899253243198792362376956594617284199071337547076110481526899631857747316350527738524373690584206817111692560716044077534410053335065518103997540984545629632900468309017931893644707358117037800280602088151032183306739809716508886250536246300600052633941036813617869999595482149430576690057649522241375907175459306249924509241156066394023061936597896880048748652081209987515523316217531797030867479297632099938547390188479846942202812509926395006696605212127532377276997455738349451268190326682796911901411663968858504871058770574014207281223015672545643794272235094451358473344377050716300099110826136154456584807205928039765601932060212716531425099650928497359385573938636444379618197699063862855184452319688944331019050157814228808498007605892400946424029689492427571954981178152865518868238259604521313369710298652365067219088862895316423086306229000954601947704527378565998088002502514057813624050235983450338922552679308977418755191423658829954446079763527285900425471785866830641290230255562572473574847390686815557891484985453776206662927170034516195795555736067701358205145601425450623705998163966809451704291623863507035988712095743664835484418539470648008111089197156926307850424438437831484029325995897822139982806188936231879220973674163315584098192282499907879055786573931756528874946742966603160150109191078869245936528931129439800226944603398422240472331080486065177682282642321563465310941084918077766926133985673367202943139385113023583151594746570090137755228252942275955785789966729867817222532112042210141698884215290170304700067663800084588326016656847363650301680886142489275878089704251031397030848568221434650598514704136689795452896348868728127122156809949898513241910570968760818572119369158101590522781685128848701026329644173799814749744986000411029075276032890996431461659060657595102587050051053089879958242347838515211487302215349002819117421405776058722867073983969736330980056721884681711640494150682056943626585741482354664508629076026643391247505749939098390398611553085144698361016158981392240360919062937905321341781836277721305363930106225945311368792259373050131461003371925513087318666543791180490850797196188130545548278674330133928290599655637614100639835467423107374195894735512168353869275934446700967080779991555893166978791695401028052445773981931143635497727004248793187216573971301454431800924431536148794308534121476825834293964669381744557386734465935135995662879167911847013626797697196697131891861289549657970704280206558141327003151331621099070657321812235387322686470623629405248466397157753397426149857502809638270348489164013817518601921223274540604804542370260199964247130052632687843998239794467132591755025767442127049727333657793293010383496220391849708812211763511394918822498988338604201582904289473933554723209048302021447562059526794653750857897738799179690836329304210721043992883650392522645643825016912898599124515650857900090087769909334094527593256710012661386388734053945892870459628187905314489005941623307716245511666059307109069936825971772793744884447602452845345693322092742185252061831662857913019846117413058865197184702641810958539669476136231161531106740099258748098525562213563019282443464371626142666585666610843880734846872395415583629085154216093123231157191684048790003909838777173683746505170112757366535285741720706331452124990702132157895982046221180149148072961368301070763632055071030815303247111228415552091126143394606818826890429209206614510012528536107009599426275846600226680326865105821414449574516667207054853156087034785696479015532794989110643665612642896725491411972168843561591712042753704959180921695349853632502620423344791362857662737116820204932198547470814294599694785894459813683945530413624560950999545935868222335378624207053154414309706786292368010953591123036491411527161901039966515126073905859450098232606583190883386053038001132078974749434895841793130150954033415006757901159859440640249961200515403048542880081775988433666170784727773658205178185113315207347110827618704831422136174549478419087473902573442596870582023105307449688537811950306817445801582663417387743791502996024190207490925819561050644455377026247795837621471964386079478234545220432012856134623687396410377936719936338305875352547499871606618752156411307188968695770842865138381846825627337455054106409865950750394113156225831571505473552040299587883656270768799080999757466815663955712650683587177474891311112672915111310982162012133162223930488474072266032803419822775963980445616924257106226418923767190021504141345077124521546848552695451538706324558966910151274134892873303718698402693340095146863647306918543770253580575404580761644049087259873488938650581893521230027377791434451964809544731344133060709381735511415038868323545214106944356027887271333845876490696208198380499671065712912003821543508683876768780537268105110203276715706299684974800745094730434232262934657488510629665331865486394545362565263036119230652108062175022038533385037274378981529822688931821584915965139308939465461762237063879419726823730959757280491379041284155339255874559587764054043026406242768115360570938666439012289514294957825365487855285286434704264320102905170346321413695240027759496556977890945542449087194925710895061758433037475902168359952592834078953608884335227518434123110531005912812020201082983409614048115255133001691539687598007186722511399382727384132636867048813486013980245192213794422215252298562111836137763948025662489154597814886361570401605638456247341053737839806588847938648625252773787051329111546720822713951538989549315687897513116519683887821209528370895132318794361092390475853309844386477972680466716104065980578802015585981207449453225209782879351430937170845155942199331296796040269256525277973695115095943716489613248122415497052992081192433780843582938096345810894131382044113520493893525574682054955487829850047099359931498097210414344103310761969768569550433185197291700142828861067420506721882121940769193885742852901048150382466888925434802655563311546263233605886780600594842882706847863040896606545039677500739678228762278059413433074575559943246388714397461706247681565930615405904717889979858208514053516920651092898886833374429719702760777389476689886414854297311815067964426202577693558554668736777890478261128637864371145619649348561395772317442332221838321797620122789889329274361546530160677907538740098389051067991692140282136479553509576921867515703100045399350415686988002605870078789964393364773084119789646778080708804997579734673994747494049045460249183836705431366959240489102103171577829253590159126659676039519275536824055202808212230231166692481370070271828305303274501411922081004452915471681291941529410317505850052823717918275386593315633553901932422133070369379919553208676008797569784316200792176129847703994469572294016848452766894086365929012791253627459686935439209833943790230632147848115554338998989207969709243680760269143902285912581602139200804626640189151239208894778810873537432205764985064001168943398807564914522952325207817909413070015065051844009420306375476449954333054561515532480370362651454934837050875859424276563564213064719063581163511327823366232257032264707168567500797407939040444824334856642795140827675917393193352239636988896262704616610944105377743970917003438694265758506807360901487130068209518716055304527676421896415854250514921351947991810052566953801441544117286671486592533713085773902358903569537372839253949947940758597106670098627087466631294550157488368128331021130687697805738613664224081228305599554013116583431919059908646552661143663281203412399890747860805187567777423755352199963091809534023851985907852096536991965333293803336902644764780614090458743312196463601312535327623396855413330171800182579900957477541422609243860349659878774460547458361265263732935864664249112641797518985664785007615594412072632472301946444547431078382613851424539492070013994928638621328872329196218188044800187640863345498669220807242832328542402259677813545556796679250625468704410121385813853861261821259555594947607948644584444527404478620471116914475605752447960176652877001922511794975888539749473952987760934109699012823191081121780264061173322534195315690379817816695266417077638208917078656735867729236456400554562273298197043195340444988024051006590107553274895219628930833850918503507863602262823979418264030767691469907129493622045017819857038095965928502638784744048634399933402168531658729329981798257978754554899566295154659227425265609629229616038067198198439824761849875854296735755484318272664695327314313940983501425431550553736634942614360278542750687996444084167871044742374328400097052764348577199359772718261571741789181092996707556038391654453756711074722141124699439748185831990446749284747804183523146341357193956314140324481211185803955778193861456056226667778880621492404941929609845824361180925620734717538692143432473061975775672941119959222967889319224812596431932955814891900911595333990645261302484227540876620576209733607935379305587336955217745653540802390593587291406524148409168432555467913191797469904934185014317249019429307722010891012058652069017463279758562055184470301687813630577623153984416780447625217462077049899449721557628375857317127936100164149738698560723811686207490691386825439323223488228380694707975539775767064564339386311634667359161441038466766219902013347044666939293446600159662243434456611357965272226183124492298783395612312664198664550842669816146358455043004110016420147540939742885960965756975145732674425217867040871847388849397784977567086859385828458597813241799663031572916907963625754148655904373199885365770740309530963074802368651791070998011838327071637545707525775948889448265528595496236000602534808911579977424725318996466057573066344898092832355347012530033662478938534449128797078212119300510858595898529620699324105418200156560374859300000973643638011767893632136845301304839885034989405759046007798742124306127267867170611220146835730196342137598480652499349653236281846300203622948163663360677266408574657037608802015083539349044476956138843604294547583362750202129671812801804032353983283075787885229855937073950637068272204045773344217970050288767447424074855120989318105026714591083532836477961762660290795306448791307127660960702741119531933001872418759396521301400614795415270108715326688584056552825275780984073459898727721586606208905669039675990367446598882940537200653692497425327482084556318084278199954019061288316940427756731032880131672785113983063010975283584609711772822365086932532768451174099563957457878644518493042738102637824195329389139371050908603348116066303159317947015741462119979485508283976035348594075302834640910860028500589734605207431885364049218336687635665249764618978536260059299054630086513370270756648614591279148295651245952764416813940317298792562639369742338002511478321265153953115959770260825786730260584494250012990148971636026303728343059812406069027646315911381894816883033842461366394779795156704721099290868887951390446786976758711639269573141844976660865885319577318157907202035442011808672272591957725366472029556084009260402332243585492574013460249680931917952576747430542445905313313889096648701461804740488786551626273590811679446711558096430384029484878399475860816008223836480539693410885473841536980365712375167438336048810473537167306006440212447634484897343251626371628903999904384827732104340260856856391054659636780961662756174767469064804301790647231891191566527597272187711798708933245823801183966912367827104927523913283334138445446291880586890563797830938808579286165947754022603659092409958425755158592412405739098500065282596032252586726940914687955057193811880497675110051452668311613519292856365989438337388026752945430503366197860216027954212416470231143331408814661093643673486475097991798071935638324254088066967180851645944564026374913248090156622605309057486891937780009096566071460909139284307433304719016131011739558825465071684411993681311284380811073718846614366106825850855279379454576290948487205362974849371746134896125631070544357908666656960067239866964204658245832584052030759387919968667663630730296725256846698419473929320168173063013487024510415190635447988234457344910608794971678432460243107573658193070289018840169705123932059266128228121661233181786027132430273395180575224338649463725378239007569286371259857245049352030657337375055656473456271827692280378409139368271611185773894580515426808619252879620388406051041820960287718928461111216036545337119722388132073149095222564050941419183619789016282972454313974399347864455365896341420862402242694327438460804025651271990718627209505129252082592370315850746759336452632109922627640954648249725631804173098212670187770854348601746063019540172938290962985291593333374056621097315974412329419312073272906270105050991214238265560482988336823378816239855788966020832009705288509843429745208849597086589040867936829316451644946200713433711391240227763791420931372401141734269129548886215261282822033211263251898361128032299603531133962607010198524814977248306928171983770893013379168985862746585849588035077631077012108195975022313923589714025952062433362221938055004062260468147418978658533857749964877006899539372873276826664623660683612220238635221669848372263719999294015849110586037954149777076796609803427205814727046582907588447997134758867643280300122171931012138287268159673554854876389916833630329990340996121771715693990452883041511189217630126980718633203226615199432320366044476632586124409803292873956604383454247441652999964973848621179438244876511780717412083356625003165312644597204544423234438277985354053319225155202754337626285272936942880857086168921759249739989196299125058917230220368987960024726310440711664194571689127928948147098565299996748526438225717988016962114728969038709339158628166825255531119147268572360884500856467561653833797719993793671968462983777249519164587228384976593869755948090327393586472961961375144183037369492645825227620822133260225117284998113779735745590092448780818547408465068556521334524958905155643476703319326865362772166162099201351401276524892462115485637864647797204787079949416651155760155890740694045300042417128202759688906890285735280942229318470388656457344831544770093882879836590751606854167081383394110178294702922597959658587547000703073168471840504917168171842875896363021656127764468419162780864518440384073317612962765366942501481661027253938424372831530703182217012088543610333828349647307443125867627900089376057933444350473996130158389785563834175087120203511106109036307737746799024585642148570927431602904433427774900153314382639807222778355250672421511775226077901462055145867892810431526904945348440964641678481185573742568476128018456553928728031954837380095206566816300097012722565026893293529777431224926306522734628779244860021596279618783214354752495892077093858137480850054527912756684539460013402957012891954684462732316121423138661174314407007789747461606942188173973694236688287802154654068356099129641871962292427538214336252393282011058640343851935346164672862863979635568021466766108643834009818834749253452947418055808197836945962611999541040688770868267519069072669975196246081971525290613123891635428675128300580865108364558864728171535452827803600480176183796866661607304175308498236010624244992083516845003027157079552841140446762853002352830127517286045627562013308142834857039905468007180747140255742240334680423545487476401020131976152691751131466039784335510119948445341236340403789579778584550757117781074206015284505914492065946139198607876092321198515711079754331530551246227123359789969393712777178250593911626175642938298734858566215838773609437478852843193645348646624738093876776517747345989312679164192136853118471841973273279220481457384284497690382711351490380917034298460298265126693059331138407704717450812131376100776273276721771256168480233403421253230535605893668334020480610051951447474534228225125013676485078148946170261420547695177616073584014523933437943853141296867143103889329703889425396939696035938847446807314444363277425267956339167817791624937837238057896373845561812998081025665756291562640386706384625792553129831547196922246390232126379811237231440620752220878858435628568658755594229565282493781091165952198298002115754763802893543628396760499922034573749466898389575654137374809732767870100005529789580386720108395343169922294331954212167075111681272723177392135112039985875553886367501311294005184933392276467109635511459712611764597282667932793380013875086135513809293003330572629364178882183748117918145191406112740371788424593035086387938880694842992201943027703447017577919437743880924889000188718254074970787756209037912142325057517721271180721870468819065138617169885471546597816201033277658559041829414462020525484491358333650137892940837105917160305868018441636505920072357558355457454133222214475769910093790206433494191634959638539529259581379365420292431618657816089589583336621120068437695776025134383203230006679638614212009588341581538259813101457626827489059085633167472228650339802286012328077001459284356852451115861063429624388944606150774320921097576508214850463386757498772357311198709121048084360905387113491060963143806251739954469183546478813668782239423645696568134266356432650034071727791181798353789596506643871489159445201716467736634229634482579457687635023176435026822447377187927890779804864387924004635266297816851176424559328126374231505471631453851554097279882635983423306169984346232696440454239051898356322916022597022555148489206557632672094851122569111447283358582728768752202802604971899642464653056250517189122770315617397952815798474964133111155786979594029031900747502007218911974983660608681413575479339232737424660467764416402612051604284174862911739554406869322898065865393182582724622980616100280797882727113314550161489454785260959967940854448673850175269084870288207938057502525048732908163120237154613385123170638865021888900964398984867645394890880648376365919093780714498037948638938710584561345954755149873633536923163167901243159409442961594009563539510246557754977089836924641485585276613892317190773099722510811465742559131259931444509073349047910460803335207440554276275199438569924582108685029823842330660564202875145181397653818006183639428209665843085224952785368667039189741005187764077242666915450763467175819144827451438132308408144508294874510361964127534309338147872669917994819839929613050859847381905643550200208305427194793175252167436833485582974073732175321413188105788591300579837703804810225493107600043796861151910190585063484660277443916874128194985125197654129575227564297619689288548385992784021437358806067318792800616760940451799330917283212834291135823867130863953132674892406885103626882550658420990625325991342442857341824744356435493332221549914216205478055013416274572835449140260412122623637911670511241593985959117947425345903948941172923271531111188473250645419793649030406561157887381368645302441373512028211894682206325890036724064054978008763084366490292235461453727117723186032839993961527417187923926155451907372081003358572669029803877398785100881732359875709487035946636948536485661548866030740793575433296621660374239246136873152267755747817858946254076353610037511597062460667996801225171094898114505556940881590558642791658924003106955179643288246448743042437836959008462055390509082035586334031501694914483809561328776902756910030699674707018568558559404483463732639524199588430170163992440541548217516218661534697697651503626187600002096577384045853327789072258455200708793077783938062312822218562370462880143535716835814233675935986775662346043788670611445990682641755246076280313226439593412268178934562320875495921703905144303955784906688708289887352115577915093297767442030695763940806705548107614004525548169086010294009624764741816483185586309477039732056029730142545656391439498893469069606304138942138783606487314581397032102480223001592766979714314737819108897493942335127320583892620032520627222541071267447605306385851765971768895270791756661263539062908410933917194028139993231645327885868505111214138297606782396182505416705559221956232239744755047496074036744577811692344125798778816193265114882274186049906464639668855151264333704372812173541345934021949808537080396635225845331279185706113495683560668033119097232910434553468390705673050671909034469103107516598877521667292518013660019977566662344343921431832922664602243266570447170275601563395375292381032617743902502498143831901629976226602641627347218419797840960529805439507943360584227952481975060032844031021132790648185673104101909584918411837877156056831880963904735809710799975842394549406204599904922732860353175147295352515198602361033132259313461586820270238800710989030233567806538106035867643114874207651259414202655576684813858224048972503692508790228191890530763556989371190222473504637417174586111907196171225058119856376051513390720098971917063930608578221839279361573244478811359003802619585315238738213270067737862279850260815999498664521636856856186245136683212787143157592890275816348496526971922238412953355039285799834299528027790785414237156884265963475400013331635475575337358510538152685263666919830554593456043199338986511327751903566803824589660982852938760484296061777600724158701643236677970379274781856220498922133913767804532618305085168624363385453426457981327006096131649366319873583898897431709140071806733035406108456165532291288930530277554832415403205405521017561317983593351699313756580430122927245251915410192160468607401208532929695906118277873076108877653617178459567268613008205155696597474700581312719549687436258094275967646853553268877359207469416254077666730381252620281513138888007869744296010993856173461734209387834001601209534460190402644968101025772016919024366517431425128214601335505774778077589571893476750049498558688548251005439667389164920637090090044099747848165641844721930233621698274592653932177045009437080582444561810427229885001341829350089617472851703937047866784675780216037088413826578439868782836399251762696070408247696338391966393497820867113697391623048354474309817339405696533416729915550812783997832228637492511871605521121047395896394531527469409238852227284078430221409114665297045669935936777601330827836770377619767142597340080524928183012279369547507233314326386509347627339479377159454432021416807732643349175911210965775842883358889248594905105319135855087303706365156172824789304720689551844174489824982533117604585175281720895401857626650064164818226982333168524679053845827359821736386219760901360693678445954909034269146577296843648176707498572685252782575156911134376938979577505899507970269200780177588816531896198237448935107414950739835738081432291191106274092199499304985552625858420567261431700429453528005144409258926665384779849786826147649764694572286541318543916842747662855585628589347586243911006877311914072353849910191986181368598553035075001884931622755894396532455422572295499699880462500585285558384550359249820017154853132457663238715490431521943463871024024579616118903990740040460637368586186068460511803135252000493717598807017789201022426273896500467988087536615884310305296624569669031249226280775703877224481927250663233584874862746754783758839614106092095835103803557742752480424013302493213258532747618678945951606884915721856538355156705375943723685304883100352003644438339273334278590876437239195148933723511707587029231718282403507917364743229286744682521934561316206132599065946176799197907972239958461349001327044303930278386529931172046501157815007680980737366626238029935007411626460349849393903791794238010857941259742918021547441947970727720863326764142935028702161123236111933789756361382712286018423155495167345628106582031385413680822665586732503398689575755885214675865401625224443529508027712773551510828097540740613504360227923621678019183049418152212811779467018403896889234408529724458982748705379482483674247435778783588048322293973472397192175234152172011051801668285855079222729940734549098859207806596322773282953099598770008172272609704445758367316642184732876546722234399379206782435196525817034315769324356059714498011418241182498881569981010005152317338884279390304894308504065094779808853111581822426347365097841554119863674537050743384548071571039621158925862767208804115932191871930767233336898985644352565946485718872346702086577859398886457675630051172774508230140034841393637470540287259601401800062927293557102487305194571595934450555396770269357912779391265054579286001852104839343957523805723904327181576932770383488271933656042681274068867247753896614784904869203015922081605326532717545767687510941120317266199550021767707567894086805346579933273893674671406146331361818094374970663029740102589634556548146297309319660395858215623769051720581310324166162309877122416679794413893868211091172115201348896556341304577327806124353702042634954598118979632532750040595915949657818987651163491908725576363532887627163547730160294967783532461867063780556725573713259597123362086921762839071340293919495740024211353238186625755544997121589291586230111185716998550946982858417201901551457210520290869671832658562778877012794001139074379161653575231813357737546041935402777440833620784095237597260646290620316645330317722789726297137139507520700066370474393587355105252173949555162586541790152901534063062940607339075523452762967886890215867006984557930188992545225815022838623094852655592890223461724744691882650142271505471673809611515671585134404212448270551213952240799663299180375503673492903261559067686012956705407566680423168246531419944308114815203599413171917837523192084039925374843770300908505937212999018927423150709703584228770326260348749860367548202240550292039266297128067554743159725032093959224152637919108798359655203712447708211962010067381702245348593569416427617716523657792541184206322433814134562619997516760487094088422800535418542329707885114448761523207221854600324702011244721521809128804694522511620376924920545269155332717384553445682955369576176700254341049674214714752686488749210380042705074569092587558859691106487325294112208502758724511839337331825769263526867077162515373708185750252213114028324428176682665999052364476695444360286683967744525993381107620782576048752051511244331529927128936126139835846431457309728560945663000143798432091054533891751766105274497233437030331539928931669942597575451295943059225971558710886828416569425166869450505871508838381131369502620713722726304448566161631587464914171722341184179246390545134985953545077020438608509083859298510538465434338630375444689917312500583965876028108343279145146981449382319741679713351545284870697446498532252394137512540069739695007155291246156126510773295245239596760399559301288190702510959321853131941309587201417220484954904885274535002545521775444125496814453242368578491932905849029391290298672401155681969507120555211384843353651306468101540198378440705831686336874261970841620345103919967916610775335035927188399592129230599055865540884668505490165735198092525372005070310267990087247291441835931111632692983258568616004655790361602416420527625408321752377026707084762302134271295864995411816440774825095573597338817934443763060843994366726675320009314199105210042655571679992218701204811714267244965432941518817476415912506171946170096147683621791009113345536485795751453630624843483086999558535087983365619519132954520448411462879277355092713658183772109792915493842345992869296314633106374264588035765452641410833843141585098267268748600317012487920049043389360054798153123700107562948001006098787684109380714763708119399120366786801638384509856616792151623384153321897490681455162357304576691597772450162953121795585808133599670763740186515683129616997342724889696964854479824426405336215804422376119705754396561610527689837180652495685866783095036881431407999862602279050990123098629075782237818413662802273489611968166726246088359486268344221533959726884993974096050420171663611967676962692773909664651148353048844170079894768015302485365483574236470301864299889456938977226794196779294448130099955992099473090999378557469326060690077988637382421258474255662696647442163969001829594361489130622145207697961479671951416787685767723307073831378331504740487457428792676554285228520926486971813163818156196351625031012062288144820305304552289593108055441356718973522076894142172630018981561320669572798998566878711309161062994451975641593247054325888042336225271499700190804108246436294518277899293239861566033635830577573968652889800783086148683986583413760352027383209318200401222367352626442601657769361478781652970247409037286217676402455109426779408566675651601170081883145677992018444951662458654005797341110533014218516230022624892642453657877115495718118679910152768972292548246235756254367490197889762123410973318194695963285297737196510611283403913522876048267366463602124187283512944762489191393418855056277465018319136746719301969070249270629882881517889881816837920346928090654844702217603673974204565864446571552759940249827479464691364676770475437632036551254894411612947965705962107250636628883419585732498849235641515639998200116428656495585805473797478821765460534146517107202426118810421411852157758908058259161544839891697037256800362496917326110833717432099902163139186615466928620356001290445442869508115672384121209560765097646327147709393612950593059868493747387054615432830043384964360254363066981091915358161199402087887304742470198409770005836171556302485083986269321849224230487923557634572266656373694582807181721803953816771484217958173621329864206320912037163726420582749668671766312924105223713590046596309711136058036902575629611891908726563631021040553003278124512178751704265330190989266604079571412880879856595532481669601403111060861642908489937850100181324269526498761161835765503862684877677867737064507904154669644486430639685139585388902763566415275580359518038021113667657417697257840444325093135524777477905939612897959533873522291764899068816188287820979311077083853471959007410270497972735997320717732555103755116091554684343182136989512235377116234789239663433984273650460825979900846532153195355875375679619026003765227052662713048415294459714818993957802472382940572051520809652983982390178197858164248993147726649335530616887452159475849358397033949969943479565029985494565234441270414114850366198693460577691917106204727769822771653882109491023933399333229589029906283923466492106327211752273873827593086933987403475341921965303705886937101632089834539804307170556472351868226320523402029238559161196841834330053377629859441635483297304795033250287926781689763880820031419633188903350486437214206896400505564140247401829954734079657448909429894480197201222561147354080001143231010184021161360711558930572095184139582793964560821300567150941215744378849261484156844510785830040176403553026657239608051821832230519944760119400142638020321005806300591405945754933206863366086897259168220027780840693531757190310481844868483245724771812977177748411798242650734448398147987366810206315038819952105950526797040147537045817535269401131766608014033354504848381719169196708312519197122057586741878302961338334946985499419770213707610208369506457962628281707732401948760012297293535233639673784917438849575675985888468841725334958938551573765261398860517474633954924251184689574845336574762202430011699043219478717649967238355522087848491343149921650327753608614539587394657652620934802678794220195183386161904506854812452153475055329657278693819997485758425967756965531771495341748698893724337660510863415123467270366163679288645225742357807326470805717437105563688346449390535189403256963406162185090683078520574941251109742596378695205354733111396831841233999292584119523581679169527873703566257984892606369796866111777108018890448072972769612080752492432417433254692213746248695157167177349463935017992230758579524154760218657733582734531150525666557319204060385086030106852150704109944260355163586651142956329754957813854696308345823047126247901843928032473024233845405670669793023774146801853645398215258571118720190130470782408475394347541225544153347862539417537049352596931771550590090381275621070439186508971990504566226570641475494319783636740699340759697189821085471465096783456572171585353728761918953978373646201536443812410621826692388192691049246647096777032716594992161750670586928296907285699699870165324059935754937928702538279486837626529990586300068791684418482228459416291644630823632818762093040859363390950118287555011399335766475077401944770612916617053593369693014882447393079951827694535043878231561437639524989143003610760682877930562040924922730671618313421842886307095232098801125704414234129270266878243861567695651191367383172073966176507687472230137448318408680715787245193463283500256337354465760201031878175303842015920464725045838990618672247833498800724104066207670787657211743512558830550317952259833796618884632559520139360459129108631185321761418241161192831795611319244086570486612954839010253066021467958574836080554123465079515524054761341538926746667302261204141787423614475730446997776228883123364824806768080691778541335664096753477442390602146987242068808295233270452747077601655601114496807278361798627720144171693345104402141257760824086496990949001203350571888215889590795805510348965623295051339907743804284550035828884265683867981535370140917825217893117735362215352871389683133340893879486820770090743843742228230264137966302772578373941505308667189601590296231705548890092809407161664571955876196558120518145600745783973543220608060307789560299328629658006707691037352284904696507729822035461267154674159929604111249319463239112528408086388196827317955785311969417683359351832397312190276887450402773623232820411817378975057792584180037255392264879673786211731638396379580327555559046222044866410537972544632655396067690780530843195672626204796339231436895732956479063749407220743724901499126484479485463098729550893122932066348311903930958486288049321027404964655706790916375764385768014137710679578301228958248704898164503225085145242055982355729135903049490660270308398334391472219999721366865039992069115016006366080163283439404605437450570725785290175274662001455295955086767269705725068358672412385537361030693392952856848307271862161387476049783684042609656130843847399488048410427168617884621458376245184832808635330234633721740554714496868067243377110320184865023696821795687452051864269469780955415565135786290029023492670433100628084566645403130802325008936912286294840097545493854244918468329746707352161489711235888569969899983376357102799631878153539243952178808078146908564642507319814272768453601083737032953344068955435598453815850985564178432897804532469674422713732263138036911863246171282419985244680011869921210134569397785949339685800827244438271726644518923209933652926393654567996278064109378293032495704784202200997492761075526580506351988654725873774417208473085679276090642719106176219925182286649708118535907104525560865107978390637226581922602903790130606548668858032081836268982944777628908159177261255557381822288690777249904716628873274134149448248462235279149775619616440866881467091778066467495188656531924789763229713601848834679171776446208625180275377661399438204321222263229341516293457307335247856129489447012947394052754472519118480694059300853374816003388313204765670248073277743391356545430084798301169872422505150199700468863134249819846322259606332342260292919596674859599305768161444412471121097823422692191892387909157410477500770593598317447393762340834888349048847095417932699508633654832997376277177964912473140606761185912431714243134702090769474229144235160486529063165001772053826621585851534487054559013849020577212780523292184760900212703387951712267713489061272531839207591351304702310435994143977681526558931931659695159013334708818981654980149684732377695338936313620568547727643449415982696544538672595752078530938591214182899255028570647496477187700515961581171452541653825514304426656708956597575676044677357679259333560634658155190516327385707102032637641841403285406581400219193787465036908016115798484310462019296511168687424846718877466859915543657114397392836381847459718092775489555368273931949860877895642559517010940599819802064494368685543355350612268168596914086127277090457799053117149498518099768988101489392173684572961094394672035104095866191619753013709132100265871453959925933722654380506914294836893641075963577681563933385837536660922762756552847700529724230042667027472293999443271549572487180038898560638237383777657618486944611430319641498591169402720953215150045930469891463983744092625262779119909504317116702255087093228462515454439685913719850749051233342080630263682015641200166100191636561136372341739389595124809346185936287702845234695939619954613471327083206659951352901477424513372753578865515894857153969993992989495744425609095142620138204554242565916894364199062922648271720639565568149832960318372056253258975266699182076912266414962674554855021670858519690540315225726838914715764474792028806392980992763722291196190137012234777646277697766423042478819454364850238539242890449439993029724830257005047014006712321067010171290268036697975966940287930253786176041729204391890069011362929076025850739413159760768489131496006522941478287260282043798908402934581230961244958699715698583565930124449749901051366451074865645047204785909261788085022893245824433814252103781396360125182119099507074791771899996231268094255155787413019067377514036952247971623116161697459361297866634223106130786589753748171319422930597208975147118492454159184876227138616597897269728483262895740076239214555887209551355218681468784640867863106207786852128150491593820325676150469215790783227755666097930814193159351239320528648949439972389444741231920023890949417115547549171980893403031280138638477288560596630447976143013696841225113044130699956409319787214782699780304864969332428976599856652621166892180017332106930315377052697844499880822699431185479774386086377228958861192847491049996230102886813962758287416457105393300246224088127779180468667934933647770053674645718905038000588261523634198706354238036602894792333163743932741116677505502483415292520933045844051386760111696687535589102407603777939421091397700285931121010851019946172580672510491462889614933904870971123114013513868720794699827549797989019700789903642290137558553140178543249367531077439419679305071438542888821393686542434729555220177825905113371457501875814452735390972326749376788533065308859516222120097597830685499783774509416885057766626746993717979566536205947794469776680596529526934857280320130945833393166773112712861167985709750613743429194789516514627841715527802215878778310258064522374229455380557591555314933026840944775969674435884726494004319658801508073749212986119366221653931805355467506224437474761682059737490460283538111665721043826140540942334424050640716887088886450665090203394222089201306685361886992999337699121462390963513342746766699826669175327733222206321806709338074408553424423387164339291461634702222268561760881262775988441735481006300000331373943891868148793469178858432503941541747478870754399166685929346542569891406934821263774580377964780304962326131068529997150664287627907817356585280419027953615434471323306034558242523018350607751012498474726418465964247136611913904783001840615526345834614371691506954854654053391145385339103399230639534707593970097698676856445618183427125284188050099870472032678362550483734076151914990149307221307257751354036170721044334756159736589672705976158187338441256995518974234429047477506034460768088628631618955446651992442397804770866366686637902099874101522378637290580321154756551021009972904308233823678854175307962716171817506103058240037656641007561345317319724873373998337812129939335674259542271435252673171094594917552901686968839785164508266517208384265243214383013415264280888182361246857349113462471617614643830229027005132551396848448491119864465976045422296096653280119666447567729246637995197773977998346939892750079006769805949322060121168717711234912775861479883114012635030816580990937201141775912739300327530127857960970391746869409963180887406471358528498173163284607211686043197707803861035414483355823909852905000683927185977619318867627915106156440508807905992036103978465845526388618894786360624427497321597327158756513293132364743713656949718393600933883327426411966638541124842363563136043299982703767031228782300043384124381738637489167769886289365517405532815354645257350079883996612057659316345372358029041228415458467246364336382596272555685047740144525480696176047359401245517884711706379365576578373732342306213318155968294279691175682691333756745905103628110754692808235544684500292061530318632830777258216139472249735180215515728387617904940677405057200615642990181759122436535729033162649422519371940309930087431559063176095871363228599759916140048426344793662681971379003835866963626249116624113875653882183865383716087330961865418930135209978200219046038302832862998271535391774112613286098581853699090230188974753912665327637862586095719513096713519127448986991982043217105712924360423501777801115577603509400092659866326788677666692298988010512854140394073617687533694222597476149863089229397830140667936924217891777518428388126878955562150545311449938170394830657402262676324342007837334883832066270692890168196368653710487723001623632821954758688539872481791542123273117755516787515734477214677660456749955115146216942940314250842573140269096941637255275022572294056745974884245078430194160605624700514626357664513490215148334691563306112591713433539232008649798565724626225410662378484164815611704905315045793430326138656038208912199280924564159461407993895140520566059384357762015705873330919510979306903642657133964895236549572156180696400855037875533291557409203495067620334862365346460484858649018198222549577615199836054376887080795876873556469259517353707719033678526564628612663081017145648320964582063685610509937528857243747439144056430070020950625558050116152800453278748203552559670177596781066821906260971785015865854639567192384814885184397887451170076362718443277557012710406542364386389822537555751168993194501042571975844144598001415570702685141414377808251355410011182374007392785208964895824896918778955198419897823970636000088641277304436967026987070511311312765502607149053824367240374929562243776212195451118604654345300694938506519581461247341253857019509056139465065432392756582594720876059865458574956813535541687564994175953786317369325873330788452975217235590371519322957530515993886777301117649031415178915365631620844319192897017962271692659463891453852999759653960400668251412047171928346268614951685649009257613801194119176717867577759155930761148999688779009432162921252553357302570726878167096495750823272920113472195725505695769404955255110299458326836142593521839852905660083570679212754020383006799521786587851942996935370433612522901927641421991431296077136943213220905277198753113883964383455215826414555232001788753833670332698751302262387800532730468803625966429873824271220974191066860898232679254914917942019440249158858432560478774986659249315604415286615278648257170734323382653914587974291223231584100292318316669901565002992312577370042895221320704648230949867484212735489359641883594848240045735018062400007743059191167158875075808972563309886670902042969318601009967155137174541971414615057076534680176176630809794158039992034910146285133889347175449758988772061454574277115425986606836778380268954255452223240821206272881659878090493207916663009951451007792332665628965033187236404874936545990158257460169913542794182690476987251122724160661851118193611558116022218694954240449263865493045857133456597521824390326906024197388226553994471233262085393509556429118019155161183533373885260715042946730188686791657095361854643307321900435960623202020023166298217025935369162576178259064635186760881789783684025677336615321765019793313465013688260344914039179581673371395801602109303242964411563071677565331705075075890760375567833695538272953232669910100416734716219568870673372320633160940196730537933913292437014108784091859892785277553415379892426841423070843350896653434002837041376085668649224308426670504422070886346606649152074649808306473542636806945445905005488822414182785583203023569006158643663521619452502797863408670386186826959802126091432611100373776978777636234759672256130574598114204492679610412753020113280539304290850230870361715946432331883744773401530092225029212404032677688359434034360836109626133601890027451900096894176605290728283455464712172194403538272358508014044807235995120139172253034452386486174994344409587540577887790692795890878559382324862417868871192575754249605473324847740178536234330365232129916641736762689558050715330890551217429378630524007544286009970173867302251059340974086543357508387026764373836520221288695546887616822705461749868510221128508030244768324593818099465956563410822928277527958882732264809487643692474174068553085896730385174561862683313718597950283480194087177155916315015614923366121070783385312987156490309438589298154595556659615379846803504053617207074147796397364086981634644974556103822996902736281928538792415074754317679911934666231666048862724469026813046465833040140486186228526962981239785093497264491259743350102447767658980519298935790706062610330923168300151158220101758133035869359621839884479325237789011223427719839537717989019934066224421327943810084875620154506584572674979371109094436399423661395061155786428531598848235783305246490775702880156823566687584660588801685430026731057645481594872090034488288490169426772891261857610155390306085881917887416749800409549804174444502012170568439584022708048229875990532544466295883719554468237414283423169367589564551134255783221971059072753336711078149753966006044766552998568295789701379816363775629875012806736019568593572036963371501187622331209089398058668476730583892550715189724573972839992414817818208347830254525110652992799784871251559396823301623011885910129000946247698988291544700026309029802073916063703471107202704453532915005699067350099652620304280601052045724807251917678495853665204267164926374458691808205105974060440353282533177552703098586412818853329514013335576465591689664064761905151460824191695807827837711570860275912372267085121268738261179992496877702560530775926824668415171080307613978221827198300115960219756325279325030246282744121008621342518091131673201011179563645190256978692142734249428566258766336714283811227653248824480897252064382842224048387742166265564740845061301717697995292753353645986573620848372027008336110090318935137738232970494868191257386182311077872705124447261246170935098545509563951089894805514168205321900883783818369473993685338122504352523875528769015702635550086735236104736836676477999263948363607357053856175833156374245227002864310024023731907058854260572765764185565928941319438866343452154786148134040472983672740460705106241652698423918647481274630934821661212907210303613828907797427781835194709364851522195576370453057449717963458556771754106792333496476710087912319302523810844854328190619387408457099429143124032708774286224550053122445814202439207844602982797452365631977164659488143548754217123940589229686356030524572702216739792641031218313561215448607239275462304893493246682820684846739278364523143616247903092814223840212678594821485304030884584985178110179091447465549296214105188003143472690435190094340832689030578606535507459105375990171903851250986961242069410967213375535745895547405677149373040111382576849207329325424075386228147654169977581135307720446914467141299435222773521969409397969215979754774596532918155142770802742213186023136591178455082109961015861788384301481558446667288939949475062110419942392672571317531686292986884100360869079022575775665864153702736558253495723646775446640263567336098774200228062222162851490712575003916708136829521916405213351221490843949883949203256753957504039672857300024659338324394960661991499569336613300793109517281086207715431491550182369756314316924644170223338753283983371233367434604732445226956680312962167327325163459387393906832186287558070430572493669573536717765401621133330900928400022158151178100680929492985533246990209557938297828407379149888025807634818872844437545348570737546412074639258215965680089046126797605887947324778027456458982532464122757611278912637116870018659967107094537881469442648172586957225841046038770086869410361477118037398567124389070200896357321054596143020784450553582982592241035471916906018682017092001973000768431406096616979553955473220790849627354727981704296322970147738807826645161314034249082603184215965877184456301526903617160879828617555065041461897749698650124050260317268222110372471443214035676436845635737071257941360355231214063170870348437744602064266025217782388862028403526753918277912447942369023654298784165929831639219099944668888397100048810188406940397290221053428199641477994847936726047217114513411177217227753820758237045055817175630677226127061621463312816215983146933679914622083638707534064634615341946109814840698757704543251917837577019310245203645746771602569752705918785260738585905006856000868690058352114602749084203637002709947585810254483294123691040490588147049898718894012871321047097547557626326896421151099325444491405442754991845934067556730180341991915139705968577843663977055121611501485536472960631705293759808173591154116110408946175698360225759186072164242073566022302786440537243164856873599999596354612189951279321632033061597569745495781896168776816625069902614795754156089050177339366212247854842916619026153564577571476966893629921702335427004213901655694941176178684477005986801690929844792856792892491337243934918367956000678559118450993717625031744168896967087453801311477582914696686216636526221008015253519859726574679801295118332559088291665553097901572205796767541864756529257452856324220661240988883278853960447496572573674291449891382416162176616967406416036780547303428574008906563579355938789315539077972347578500690749858008445523443641451952880331496024413959527763452928977307953715494103322287389537254047380287949914033979318648658581470092017558404399345741701263337266353607407367943490360072899596573277500008997524870792557125764687880783727921326058456976027745935017042672471584176583692280709236723899218713430956502602542913818087731834494881877828628145680931633499257898536796488722598902088070340788060701070781653908155126140620729874727971464445596799258138185279789634436013265268138705705059183018559772345364204721286799437253887206302759350239926069185318423713362210811347871945583468871617454623914429966196959052146180650099090797308815983673399109786698457715448933772476788711145539971445632844252230695074764395022091852549748228856632231244275200162355521548921320605408407262986511723720810509502404903659244363118785909645321587893167149523987393201664323042687351384168620749813181187007247179052662417471298247516690242964282544567345786002027075155297352173375403343214701031427923338663598190032293596841318947452543795042284511146817284380984298852157835985435262792184860343717233111858179231322192425045453795674107618914293755631954586469697056527462146132316562683920879604677882479807384079108053122746945573234220303098725842383651722310822398123380328875955258764039140132768597053646213560133333141232947460955986359644000463037574112594552089549952912794263850658132694458462450797573664697012592946363390972396340234072877832118474839025313471014332000409141210253313576682257117973785895169887629532767579682593241174623633693347477080654340723320173448978846189177078656153561307675004706088528377876396068826994734692045503211315950037481262347529614117539714267127163639527879683822087979438602836702180830722942829904091508580758662534565081498069809690413510232440473385590886802878701787896668088708438861524854480219192175415207483153006221249906337213000739193325397848500268831387335153366918452775032120755448564741704222196672632470578310402423187573346016380243896205104924013247863695568071735923575721769876648480349817277796012944163623914379025509614221187699274189801987135280760162030146312928033643766195815671572407621975157639451878496116277047504067754573252751844321915528249435964264437886325700308306720562828323210048652437523737115832388430902543335189527021621131962350276482664925912746717710439103817925123959170699559581216547206074688372258623917173522676738977872510845496287990943423304459044202326641046670300557063109795990885033533078773963347936618286081444594986361173681006952533526807599459011383320038350136076346707661419214339232763669740251423158280891380850641460236585158241613634808154765050546743055145888041060883571243345691141528373675624619906379837274052337888088906986300271743536249774054087276002796901420103132367875732677492915595635361054917035222037121236646822256154451727981265687331751294646752085274215379044067505830233274051722565259871994201027679645416031406721195844723753413081742628192431639237023438613206252519298325653787295518875165862263085676540993023396006698493984741500141614713300982546347902238753076156753355443472656592662060064325955528428935060973119763711304113415913431512399029424958106275919974414197736362078691514599236939957318464381965830371586895792706570923047651043763107868261705828853309895759591494283660283112023552930702420547813832729975091459293991765093055623638099053823327676631668745075137866473421518549395431101506213935422640444784255307366515638637167963563871836748000801462037295053249385144273329276936702685135809686088757490338127966985806213232915770244419622988552601078684325588437011766590365808157461610698051244295313776722362835445683595388681909083821190223828148750644374410411792802627837333686240515494023845836479184268779174405542722616057867150204840074015217091379608364449878432455665487063618024330765409242515436013751442868964276780981336532726601091800298887766054655886415728821022359374888021186921474670865854365093982535844915210192560942673357866206205183753841608925521234996329127404908972162786071712742606818636544209011663144857423424919327911597801037673235588097745561902544672237357991272639674746443333438835339423058425499662556047236385242328849585929933698799450148689054064895867345973714478297704812036947177671228255045643086506215061829848177693468621570386268839081920170777075879654950433027818060046598770848653434819526798462495016441259804641958584044314017150565047187611193791750368815377433338617542651817185196637278653083068370962768538560470756350073708801938798174564397216186447142604481087267474190627491394857519069082577001890050229296527002900751614663839962163799123822503922417932243591570862441239661853364815527581118799118755385384797268015866248652311450363982981707919314835662044392633280686133986886976474334005586465008134996668051213755508834436599668185163547285887931478485693889632724918524158003898690486065605535388174399733908346455186811150445849732786926442526427422019767878802323376995519687116194106233355260060075116402589717173812918783462312405184267355469123512086730409850915725158783978136381013323725971088204651746005516203317633876966027190063826249276179893851420021524449111144415034415029793691608071339251584847640010572966349735730013221048206931804554280567175537241816236201265593192430105967748733808440710985345761325671099429762936948369085715540689002317142249394148440703450353933434708094812391500282480660762733397374777331114636909283033468612445742854354687486884664026243224713833566830391964710856357883218574603566874670191171001361997698099182396160489782817642996181964693913008724385754472283248427371814289763283090866982627650955533114958284672170324595138417946620175631553370908956967296783110516281232511517162748324228235192119749985578266293761437786953719427873900117132292997904177031885228528093323621303157103692001089132569333526495796629106491432526394048060988409097640087338094271950170959299567746292699894312747222627492632589945266948589928888599188391410969669472556603757093185729581410492314058960883546122634459355142949350307876598269140945087727957570544818563950072159198907763564999735743980837049209836727023053496087386977365533328543895581960228607618423624946689148396056831790007775606242433542215115997829259298789953049159165124618276228853216921681555761764576578287949799447543251324544497560219260244712184838918941462552648105987932457912974812877400092859941131489665405318067350223539690152282977106069975702341561336140810177499863129970812381672502511575038927251001546730423280697236547904564277730746403372671740506209088644100008955246586449650183278833384427780092271177047584670064734799640087757203285900507802399806747713312790230204383918302120463326912604616848602821156134654262618981215395718715530262231041893638923192232239562442314245381595699583542933348639299287686049860540481746600158362386732787631712235627832329840823013017066291161220572313332586783665188271218100116545233188670748343297838376425039373695851768033610109835528480827480348028889463372957434984065752727099384265589640648612455264573333129940878925473545530407933074063746958588838545646750933931216551707993986447580740230183072542507236140851254189166328881469562725146493203109890177821376927113013360376444992055742276573447295554862613783905224739123340839220415011954369518607434628834364937288514920306667749581557380033407320135167094874414743330681932242822603615901967916685034728521523960020781924996620463720266490101132510116585604776259020775392795540239504085840293765496946238632022105525855279978358456023050264221906015136553141387523456724340419821089218413341975496280111587962779225923814611406908251632729268234964881581815831727198608419601803122930680906288130877464150034930364827836584695366460415205225291087214782440166043768608808412297504715687553270750345806897967500602495711008752200063192964542543487336646409002900725332364207388753031509546983429412911027597620238053439852686781624271802245334386149286101857837738061926508508376173036546420182143609199212309110273566307250926357370887314218493057068093162492281228230220837168997039838778144633757173476654476084833724579159637586280611552592304609376905678439158612095699033634932590515095997874674358652919785002333068468550914883850724692179211938115472474937412050106346196211044885322782865211917298699297900786728171279258544393507739067910610057504063161333517931640916836561318739104787935662849906174200121017710921918125912715867155787752375142340534266710627402426858431965224466251347746777965112450259668124333362580707795045441873802588786826886132950255485009751461511890461197042790245327151516796917756441446756370091962323666374804015502101081932775116003210002072902230659826409931986027764247228979832113373186904174776505266701772314898861422244617158678628770074373112895210332842427662756755426764973461811242712384262046529710718473597137871270372557282931493211372040054832051168461742323711036513570584262400615910137282143453316981559553515401986310176493363000798522289113024723623268570683623424779130401958602912802607684220943074908278222757006882078480648305492586303131144052216469992737560169046320461587060112415545126544599683551278829352829991338261854364906324811662445318015977790696883381888631335269889508156471992407707052918117571501571735948118181426282548641920486816816065083149960938499375362823742956042929006238184338620715882521702141775470582687890362580790243616546040076090600041345101234359085398150161650802388904070838677879606498927831717443846623734646657772333989781115683340914694317110348479340203257035415678475131116454913808798528547277416350796052318208746898235365588486497015408288050398319288426728472103791170448160324244438508337423575998895991380541099904590913668756666542177755875843021749645790339315872149312888931844197013312820632917497282450675813843142290223697529594617727901358171286450388181313774393786467509753943227991231218287747414977428902512780367351387287172948829838471428831126574638597915017584463079575145322471484284503742468436064323668282002373999018818162376965198282814067009267526848154901468108157292391474851323161444153662314963594775137742718375278759807131995795230397844242403304263290158223853063642080136532742987750534980225100045450628058425673814418856593576278939071222951512115571410982226391467273655324466795984590731518026342248339734630128352496923799224985372186858405995163455385813057041668980555172703165776449842254805010697760517331695248226837495174367778688802663562444495035975055056657890830565101037272241545572151601185798971310189092277907771978664255192978486119191269618141122348733805165910324280931500944358323211247118180604037586224627892216815673130052265551055527374091928796692812645194397377834194854110217219070040678573532505849765686337001946676324494003814404016569634587271694136843560244408759673626934238116408924684111608185974415068272824967966306334057640333088435974604422047553868108188000437716296841079626283398061628445203667193049279311279137377312046074687876794524841178805535348970782240588463320780953981003818078863790880691665413783615400255964653299542186203372979639914392925294275144986560262755487136923257578509683813588416262446757710258498778659775803024077903593917865352044328794978599805654410978813045769031337132106190872948020555125602108711168298556143172748727556314805210928231477779444224310890585456450191860675677091848641946158601084613991027042537291904291497417624000683373615498181005392391943172276178556903708967738225843530454780624995090530033060210764913975464610536681578370094192303039635120573558718445662244012681399473010093249677647101105581105605593312515417876100027675925449714771352473934789616533163760207745505723325869871291742449168951409992120431841576497198375962527890179427743266667800025480950553539800484429368275358707657279199464740732957928752628668008111175730022926119726725870729947685721989504945501184638275200027598324657233978534882922940163612858185872037199810375120425858763653104789653489857976670782661772070983601182182860085338486714240873275437719478174821635203497269892728478981181469237145928892834359743989260837109275819026892620412038180453981257770991491486658156658933698268229021459839641621105442764692203674700087349561729946026119764004095061396895077829224086296050872706734483779190758692290847594545332836750465811557303419374923896493136193988998528034929779725318215383423302715089400076584237523154979535326997875531827744585678517702647769518909995405376390667044409317335040224873145787605115572397248733252235103385465788360339492677969897391385717666001745585793362812170150472306225819733932504523701913990311226917842578932678656439763190116739152998626913783370352522081071983196042240175629019707606648178389134097429384262288193835012467035182935721166818041589797852213290869697085214709358266278182334003373564047555951402921943284311350836547661347821196757054948773158527207818911356110273805793136904022310812619365930508223915813811995734529161573778415912633796845978863519258999090497510362933319488797360671318251571189498000225284406089466554289836367518817977312645080761772360635854693488268703556900329430369665196979505971665415403121086476555452804015890019168419498592705297749304796642516416795188342623843402606274528254725627169300462622752133387539839763295715384345470208461710688517810682861018113424460628977986760062961447529966061751540489949500872091409505426734353944482519618225702611049951366263026938269978632319054146019269971145710605254898521512903609639979797413607205880379058384461413001778702757343302818558141906847053053316045600431424318670914557356243738194403806659635656226481531259213304555760969821371117312919733240816966234116750967028833233674673752236487072881604563427810089284076650995974066495512799156309061860072965065357912430222224247186622409215196660432661971395220083356733176907246990593229754717532496471763662106288458058627097195369616614339265480758415016460270316800919174490073963641021827650005207206965603805565116801856682872864417040020593077182816836263042535775642354802961944779155596017684054633211225415895907085048743751977959489639830610440868675449134256601637589548489352126503197203206081970658299412579384458248200128810920965767356220164746458352037511548876289985776367235898286650372268106209076550594553920314432196205129493781161390546442386096708704453874664449906098314543209312543597977805257736801316824655939281625349641409838829555002339263206180534004116709707045807558097122883490973863519796361088241124933555454201579875187472688258872109268091780333366618848555665587868697257131020042419394225940214984881977038222478199236206882069353221851550363181529318609551971015615817709491276595089044593948295601061601984223080449993192771211038467599615098939470904044776804867561831536364572141679334390832512654551511324483456151355752015823321760977746030906236657390225757465870650701886879807315654316738710777071172122509018919699893196027359525633211304170925948261644366895992548706316995855207551684404540197039219427520795109496366508933898979067522598490409310071118557612590802913216144705935864058489894430110266843245314627459571122260171915242858000565297402622166534826010159522056399937279107544134491157719088754267941491862640040438310610176336651406218810727709239633380985233999973176083799866449225913129096330523639833563326640878225523606660056677443889550909777139766815247139237023337974348947104048280895758387590197339634062788193611132763704941725332147587291413539820869354837910597034011908310521661488011176104445482430400686149771451906286573049295350844627013593525616089002106609897299220394199789692110507696881954974176208323456370926265882596963214348435845220649306407557256502086357002312315280784524257087805510131368130793116230463485244297886213445796021031388339731447167285366733544228462223071479979331989650982834133924095376044853922765450097307935888331191612044632752830094336412948630379235698680392093213056891476923913688418816882704522506583044736460629281629411523815555397470710229702568260658612823017542250645338089691199986180695560329991856341963680335630790084603169596971558841442879475453196011219221225570408987074784920238688908219336345914509534070451417891479547166659158480448909569318232679813886446196986034418264399845973144416102317387557525068172832845461256655294793516219133342200407663549503279966951602546395509057739939400132152200591600499525920907114364387525724681256446417300035616977626441183762297281165669415178134812805859275351582849560261444879500881461068095019621212253128536246330933079676882928275679898662060172229417129470018917679294720122757303243464310147832750033112646602147167106613272386455150133455793612247598065242780374634490796813607691232228946709386837847932929130727572574392548210782194762181288636082752799112340667503066195441825837133448138450157386733394402145051133031577370836540904163550886953447446016141801901149299604410724640048166099740644567499197283956139222962932251423396262590330281738451845189719519989888673338203001614017363967980426761897797358088201541255680099287919391733375060322602318242498910332029777553082511767888344138966432786096484153887718501320528581031362969085128267569125146495372497334116186720073963007134384231252817715962650028586332648464945542456699917313313736008025768584887561985551331104615694026263271824390255116230896590484266206285326470906936251743059987138101035173535007013250063253938985844343044202657871218962589594345316671062661604161146307358397433687163134425826053350568108032296092078915962165238552573567910307731307057673726841288858440606696145645573144411030416241366368891089188815197624663833027804490992020459819477821498098651931032725000770049945289050322945595012166586334679306976113888557862791300824134761080584157191510304496143966045965521964290680585127749830372490424525370432625827006604010954739655321670705149018390887439540160079491258411348787209677794477244967408964308157912885860468393046962331944822155564093878851530645930259378450692567208842235845728288789325388444338665285870778598000668109589820954639055475305507070778884351526654454669723229230467007412727007531937857803026599385657693481618233637838182344696977244219938025499961802863040890079921091142508164924372965222466923698111115567538766482932667117307463408420899857396725288906891656591788121021288594575694339923291004670970377769620535435055406904020182489078674671419874925532468621772972039035614303923273558954763234534113558757879463743006998806890194910641125880902738892187873368031063767020303650202148132604629112891791560416609130519801120545221590857772481803373226975203636240824721314142359589665425856840648388116070440357623957771355931037071262840439009095290060060239436113482256503833440523509341230996500405306178712583935184371188548798376866323598989226104745224069964664249423751500341991666385345617971885726929011543242826361956470956240104846966024580110353224619158481143861244910499819502213180839442507511590795583890242948529172881717805707712213860651935755697183726309061764400531788401886828065521148788512357985589808623149017580707813651957525277647911050215015757450331330912872871083946322831758634610180639781531169939115022637616168181329342842965161833098789774048871354323386302814348960588221312789487799379984978681874218488347233058864752957376241518515432600016223402504373075846767214181178326744087398621493026488602652253106711244315005857071350840149651089650089299875396986379052121870538456643125259103889722681617975201087975281439705805659248206241973179301136570316276656882693705510694221097108335310218653301082223143146518683025856488430148468159563248046101222722492356716415029431096175434279362088022971138333487041992628850049789186482789247040330258856408196848460245806309771960682697172708619043595983872768710057558030475486100749206768224013092290745029994630061820544003580307673953093510193294746793691527076698985441998660780184529742203189672459853912766905916954104511829368814263662821152744235701006556990931471220465604542374814464437388638091715249508044194638364337804309686794603714483539853944714946831274580314977166340898160712912566569503862250840052374815886724853965361764853232609166755120764179714297995758534469914819596759861932909193739141681387177326555147369773230653924419307040856116432808443807671956274525873588500006220922186283772224259649971699365106278307038957999837045454901489569940032645104918709134167927041342902908856189362147898164184938481763404147177972063271264625525909589640185126245038408726721902293574003899331354277661331943198361913907189109291595039097698534125663436193374278243843504432896611909370455553276496007632766313972811224153395480775766916551141353891973876820860657549892912379189157208900894020214978832326815494357357024929062425717473864554791084059489046283290771540852827666475909241849147848252950681621396579487147751735878061813069478056405053785037998018973855462217028043319429356743907557376648968738913096699568193210313403715102191485157347089345536386215223286319106270562695037508614076642668410478933788264839469929644426297600229767301720027274297735339248440543640390629814390592356041270920189438664524167622260481577755406228078162257824677335575950338106364686689909290562189809804971726609498862426036930326019888294817149523580948737609329808029898900064779004388211831894297093749070186025475863696122937774362749639064122364703053634558514470319096227253887374521945956224230229065531085881823824645145589755184935734647802466529989347771193156139834317636444181947799942287910187913164951012457561396387692918722171021028880256983466333630762085625390556405868390433773765203404321613481244581037611546380114500874622573967382253010451896536221274729740011168208734210992368995642068101519094663484013852455618129991898409024211948799155585918926643453004938794562266081309530588040261502234995880041802339327362698037247054920404767862997837415180330033077210215561543073591155967135369489169202890143420768880732192855355054481393247147168582770772125246025826603119800563121219826591674287985144408636081092508254323863636295198230891045005211559561632380094406658422125655462347219962357394506866342598847290491268794296852761621596703607919450248313581438670538843714458020798084165902992386579557097435536220722669998492739582570064024442266154857123469052697929482068132436036626674162715287493870336228802579423407295306441321745296922087772292458555296725453462422814469439206973482819838457098422640951575638807282418439761472406708534651928049630263933853638629895247517329843048505276757831078114125972357880009545232457069180863979520899736891333918286200178414651609227389889805628817119286406851072443471482961191079377583895899383519058918573077803768026560563067911966713662601766568745959389255681234362355474142030963673238330837505846390096029880770715555169418222834061478514766692411200568592261079332394535121583817115572829323512034635339192829146346027379118225230513496979356732086114381019127711840773956432954988568897102379186759747758391289073535635995919598005746317640139373013307997743821379625871970083515653442393784565632863547909995960536961805862790581001457490847611104851197188740358937137737086271368529758036610193694041975082510561701847782527890945347690289484783497947843052488774202947706466265141293794677619918931236507306245109823255028098565159377113213878170349272236966802767840120656015230625784447199454996342380745280415991315178963532560710030639268474528094628202347315992206711759311465872505087222482129371164848125477864526646264393069950132787507923256595889454483247262575693271608853625027366050380667367259733628666853054015714790505547150710386676237400983019383515440253274046229703856494373099544085323382598147782516664832442432268128607967951666006535048334339672680159789695784301375979368481118159970648653531515206229558124829888584664227538888423368495780620648804142483500780088088816473485371243358718801071215003804093984241142811801875839582644387211488704585915060680754085331789814806869078861400167758400467019592686239785119242038793688436260174011566215948318723284871501407152817574209566556894962890679431642377059596741502682290422280301533517913024225190495501715182603494995876440322731394293634396848387701094489092025967021213510934061880374765494190961220828467987470512092847730122685082937032263014778060208750705355902271984047664867824402857564842482195601672905711031280678840788615082302611249243345005734929825200256308006967101148629839524600386384385278790970940517254675758895684409470455475302077785699283315512299955568188251294100554129082715618817626211635828929172026908163525031234648943774990293107745399852060774679434301040573347746458454570466575723483273123913099086563661338008470954828252507167097484896827688954194647715062587582729285818105721814838551935747504339565266436733407076410093225224505624143920107316264153461364249584800080669851906430049761428141803947314888277625988274122101260996294436666982910696111236172850142339193712365691075559419189225662264555110884298055986285215933311390362696288752257939329446583522362708250446965024679527366261759582326652899725215293766773150550631443646682018243031092269904986085081317668619860805549217186692050083296814442881876463826016481687612746871292330260821441953921677673372730865290511077971003211525585087197104082026593630798972157843035371053553258650845383936569432840938535834144022009784283671849862403798788521793458040436480095783535802915798277011002684327638140322636252470053950756260234053354995268877562584492937530082900054622767812142968963980543120064396233783501779085396694306422908360143258952561866734246115791215259867917618204127799736600093757094792712091970048634331146400588732870883930020997798596764441282167917982608086656867959248744334906581089770956382407209883651840894268322257839734955660733554057131667590694347603098564428584837052734968456470151699168240275492036120007849981487876051861445516969408285286879316981642243651965003024182595250876600732928634733486506612092202440159350029200975944900864734931171404381639830490908153463193359655634377199434402253720781682182638380483784749042006323160660303736520037001196226609962280693873455313238344126591078770006674533793727046697879707600263308985916721777887119791078627649271436452535413023017635512644342835068910604594172431515854193752630863489695227737653158689432871636123590038163389239813884231945517734424125059272123197756241848400703731987602882395671910746088685699766666691223199623301759133359477272024510327468917008432795064659168638026014769502586486673704637369148705674825355649706942504127233240146900261132287712984940927746634646499355273472673932195402490425510627595826285302227131412321996564106868979010161492962145831635387661009876522080209698132249147651751321735123970961571631955510089273853915133390531453125995068333963105826839405516901084311779622903563444968356747564467954348316125706126972726185251074689908340240994348991929018039763133410800046118665872057853651738457402039187003388011138436608454963277602926935510788455122897062666441434861673686234323051091663362169178190955919125844897637087683925209000268724881461990220409011822019830158440261335285595397523326162310711656338045668444776343669165060371319043963273453867034513827316748397847963844109786258701241525392295508249218009789834607941563689211101997381819136567376703223737224252316786125630291570797158842970498367590615323460604195383298052226691436246459212822450955580673880393785948372346235413882159559157447949460374485381875880751708390035759644168164834064218402434963314312108001702875819182952789209859125327323326116267748711898433056667768066774266161177745928959293445490388367818212234244096501363860614678974580705888426659228222361053717236356655821192503046731656110385979039946735969155406742806592410435182672591955063440425622755278695191617815972691269081785540696855207315088920694802271655038047725396772682922606456512575393997545616216233409365130168344456487718197420454359471666038740800131110599685747156568063753058619580546761167602080274283128835681887301107899715501090698866555770640141105045835747152544863117066597516272734732969779752645324538020475158933649447574463622228229496337862970769353510486185901257735759558586513790926376363931308523754054228756496688866114241307659541849502420419053578109270932076491039316403250066642563729075192015882205111599964732145854208033822763765868547034335363069528513637914909940346318514582734041142911972508090339209640736809700641046216254846420419897690158382433374811291873912581714596288265389709364970559720757645479837824125041268653902356071785184148624031697209130549012445336150367038044127937749970202959601297923282561006269048895954902810858677251782060265793482969252590359713516913094176365476022593065810603097907857765704961144197567287212879588321258132240179059563144552148662687869963956127217259452898570648849207900693936615811768343118760579572982010117117502246064872380271798936691148597334696474341641515391896231712463710190736762444209460831036106924455523853070011032447121587680465479312771633664144873831896581638966710186079064689148796905854492205510915519860078249925599896942001154914883593488647613234839649922670474093344553177705460986232165247118324602782074647821965148002059643955687332351925844631529932277415513994997680252268803208622244194970471587590276208006295061857858852881596487103603760644726243919669501834188311737584444704471764786060588235488677086849867184710849580813553368958353971155651936232622507923850199612868826245003849196533865085236546681513224597136387963690065146271493849489674425265071245163257399172429420266053851837326753610187693201728253715763540408261303905656418205389005337663896322572642881568386685968464174692655693492926245713720085731180624228230007082756654153438822710691132696580135873956403597964251550684381973743498200735335610194280591415829817145763832177210042508682317586557864365652328701481541409696010365588273253646191110889066563256724026453860395965817361279393582572478817658839538605264067574766250640475860492835804672874903595701721061838992299831580271964026620402612780995111692159933859237654490991439602110240974506461672603354294913951985649704101211370437993467637301175473673567736793209838923012283027883306748842885516995593386400959839823392627788964353812073930709543153870457294392976486770353212878077267040214156501236511461966256046867946824010704382791943617091818477391151267898325417826297695131399579550585212227591271625484076221854451295312035492927994942345028105153840661278440009106760880356006701722841617301573531933006252256908132375662552682814045172916647129637244907561709813687984712287520634316807004533289228044720115658279328854937544392035422331514511629130697003611159899930272162683449456745857128477545681775986571156819150359548061312203862615654542121964171423749693375301215591109821979241226238498051265788514913103879485221367809878033230273440418731450915811831973375761206583151843100054684002148673825902371610486242941263044023721377325619743762668119493368590544715649834700370583879185791867285143757450534940998207226298174669089354829639864137285855709019561504125526748721525650730965144167304370344729290894433717660970363515629331554439758505062571937737057656899035812402099180302627981553347527090808511427444469247680143585919503880587514597527711670033110940818835133577399978492556320645729704572057416686683867353644919309246982403229693822966072491463645073449986665845964981312868352740744167976369285537390524743171519157237432420677725436094988915529307976641251912544301743393955988183230323498677493059077636031870147905972255436572729846731098302018264046273245064049935040757533926636491623142839904159142467039370061700196928911813300057428146289276331158442727071215720188983116891521365342581968713125818420009944703795210376228694085146523352850957976841527680854690466266989125295427690223520342539799715693106865534779651477118055627641468062411608633275148916127873532783772771759602434875447182929766986774724967223075880444067957760342621710804390741346072267612954318643983002929734444813079417727498629543605257308362065533083224686557790367965996612936042051494699231880366272003842331447584921505912213825493519963670397354333799010085482619110578125164027939180129545455195366530654220945481090562088604242883674772479262710957423794611108266372730915629389262378279652302644480066248613552669810053988042761641907047267192820562053215427898724199872078901779870984413091737929500893650993632773599104700089515301669871140908497348599887818255389282727461988450322546690305041418421481011440729000459890224226175674247866716963793587588634823878255417701638847516346330406494278034170323733773582604368338538881805531599197260895476761360540531172522671017726861478637012427294348168987773398956815026134946693461591294924598348399269783138743351649483235056785813415584390928412614523876685648055515868532900843679354303748286723982823915198713340468408253940172866540634550066899646076689666624202263098697546501918132307320487718439527841592274991656290093455627284930874514752126683978465343800413349463634941369001628861184972881654848088783953500859030779351494084934432968238070447013201047047148482057218250050012605578436697187418565212386271255104101089641804979881995319061947289695368367327350550802820209356645378984288635810824862502767352161079058805711978599302134881923057970795299838162260207606465900335443850085670922957599770475666914215434578490945935811866961106840904007512844899202634728148308294696168448361331003558343768255683801053380808510304580443617523742475803199975531669042420694215598188403293053111726244775884566211165562017002073105331238766515032854977518322966173280663164537537886629003771371267456300646323063437947481740070982640778823491026236652872845945658666328073892061522001359893070755091200047790388211871853620335166802544974712837122033818551434202747730380169637815424804599332250807000145142508235323456773532407325670636160191091828568106927546248612760066154128079160866955830907225383787817630558654219182599947428991542489573748550127788468504008371174970296699187288573965395242895991187345351727963723868791271032792038541450067581307356641303583913326741367796282705842403856398908553635489891738015134122907606479974543322427983912380216957222845553563049650984658777367861602748820884825524988702757708253119686217181615762220384025137804408420282089743309026233464045508479442537857872523642881901140993479745583682390269657394612328915734285686574534289338398941476830761940115501793611830817125518662075250780833821879169573807000556398307388893157269695071406977596601628975053918955205087186455844170012360905746263079937467226824361348899143753203244269188245165464810341845406320598439440268381351121787532344552781924368580409881525571439581751985820255921939009451597315160133151071091577589194907329246207342950322041718114261431562264299671925826426757642415765000668787845153087616593054174130254786882248277938530126189955145859126038915798924567891165918844124197156985807553747132775716628139423636789560460834811137665669598995972811526945579789965639313607103806483032804661300787171908446995276976391230301951118676271232087873185156904033151184134696451062200215960427591414136785584037709844648039046435795556291082612814580275484230758417603664574410423617580196070130036346192109477607345589852591422460555940166200635428093487240057124791273802437185953593821010863083330115504783317362876336538997902875107648176630522184742613549514221818459580061740418378737910499418261619205432226536969903837222947898426481130745355111774970622298063437710319764411794336186821708650407937223651517825219839570776834516315692452700998392335300465601889455548839835853048763192537557972518600128927170927150951326554039897765482514652016245857354657522586713430853368138777854221669454914159396423015614409180972003317971887392238974584835153433422382531265811820780542437047091417139125433511262071834937801246412145491503196679099431500223107019881530320720773938321730313622077897747788968928679573530754169628139839948045742773607941039535653375225918475135231719229625567450840760211666473699994164296502416216243463541044545300073419051184497803268273880401140081926744386795913959108308401272877564533091229221293896420198279412051639844747707710438223393617958666834165017042076887337064040567358572336613518514751874351905319713095950867009011141024979107695967818900883720848459401335288973379442133267203430372805615053144113356888005756628444346932657503860195725572951833453827560291050946792014059306235665441612309229926029427427950417097128402449694541371877145887949410040466170417298301446587022405778800455198201733714942436990288619946956946653787837566994074271930138221335680736996973270058942983509126064989219273190038819040809418186068249080610473320784845082056090334245060895362656194669464820580107042805757512493949666516149091041723776346081368982280747784740043620157928290346789148201974411312644468413536177045801335953553217332500650654898410878729751441747016707252766253674369052017583285186636939110233769844882050473721927062258864780676855037418003767440389607966571765870525455350098267347412824125464905620538134280478428226767925188336237703302484259496611471742620498489662496619195568428151458296661186581476961621708837095822376946681731978541835702237038785116252907368802332703919038792189717396164883081970282757653793987862565177271838628052384409750300441742963121952657749582269909199523020298195201874641249080992945494149676126729737393122498370236596425006502569591476044338537700661357636529141889348691247823330076816167895560852229491497643951772933463997817223265020929968148003462224958480615396446769798996461505708433838940450024919708775120188789122477105641140880853259358969268650109112594658089886053517912820466724474165213000219715460549962580155211187468875143764889571175749027890722530069516176800503782381843223432349002253278239230381128184117863481611162780962170962732035407309155110943245873856716157545062305366266559971061130648100884416018079773940217805441110475718585735630705831098136851698703925503341441540738761411495451252744651779483776399567378879759835114971706431790822433833422585979722162798366356806218293024653668089994959116616785366777153687232558120163000749106508608125460966957805092694220242968934354804972991198396089071242083025380117181377456564811948337393544022116839297129363536203830372031698969395627866698493672036008726950087958814088903590177009994697790906947855326035844554468026692773664141618385268945152341109820757054567779096371779641855460775559373703326649626370312823148196478453101163638810628378154834522290350502148144706663872862474763149546187917717859424838054555934118659555612181844214259179259082656359874728195675946485452770895888562930536058894880230998636161731338308037699490226646012395502746912088422812094436867453212246795023972261785421581741752086338599283018104779757519901447168411040552108620954470761296869357411757464085935344074073215900161823162055215042901217707990117383666086243700546586196983004598232587757354268102287035367651999979659662945680271901045681396593544298315359641525629479759359020720651540618723294133220417727328546148719096564407888120108770099595237137098337357102981897754395036051486109384575803720104318875101974809450831691315885593971773760779755195560504383108567325456397430401317009871438830087300289907501953287652900893107091422189456409612639494440887851758974170576156089936546274887476862963527966730708535177518364430600689572324297506766400706166721221802161408112903225226506639438038831022746374108277272228463380564083083610168678846448653449949492909155688101441259737298335557039617342346021777489332498200591058532316821828821994440780551281387625509746608718842493781758227876336438492522484963620864196025048644835263009502266595868245847899269600554516278046010842208645355103023546718871105248523304377319603021841196511220268888795130568476588607694703324151860915747572491646591725645282442383736028364499291468039740028117553565373681160469432429970725688366267072688605914293762920382200035914704551773987351469627110109655068895897390804587325069419122015315105831487391289362666544183056060393122316813862373174554312114614884806465783781020410357881066850645874854325633551368250990826732748361421338364147245059134819280013692134473937234215633409749247795772805469053375141789956539995398938600706394226070216585461711756639439071456812333845140158187394337441289686048997782440957893688353342048203029360779489569157329132733997314090849292866982732178311989870743425872103780667362464913572252690082132429572696220873795794762124527668811145889136027428638599658350937578071211745842839916240506010654950738493338691648498062021587138602397233699528060105863955417382762925254700777221055066130704556179618842306250525629515610320679617499534852725749338811491794729065141659738719730260190002871816549549155800724498756163425554717081126950864213000259857154038266668367146114825533769338937221891164436283730441846793946624221223703012034381954081713880366391805478240036975967791588098486908338915999012800093894417999809798974234060023147267397016994949083067039815433815373544888271642070677633908762911414966118981007913132658415216969978417657566694557890926350805433787807308491626853929212110448926973110899408185988990180953101012635018600958571137224694403149107066383665388647587756721602030657757271222877109363645262255915516960607142400273989206662027975094674108246709142973056365244483272032336614900891595334537631217728986698906488993849683697248271357722519347963070181220833138665014969376974996822227302188792905993231267972225119567286131116281095785049901017927973593470149811762424175332198216130949930783781667833201976476077692566094576401017918262078991190385527423624032165015044013157574015340602922848646608542005783023238853750467151294385399139988595596029461530315899848154239285964619611774712310681751873220289226610737708056797595562409201270401597850239169141431453468879230685747054340591560315978987901315959280038265511347058698994370937170710824029144552589185348823582233370561546328980848754460923966880159041772908117591476638440448572368808673029424762964227419953591191038153374023779645267190660255626461497525106690046540787293556980287344413773610677423968713322575548566209018487801028289029495188881752821905414855939710100744637703341072860789071028861669416682335267393949356872038110727837409124253052717216807098636698042715409934883585162444340411186720353949127500551465713964491902790343007870232834815984891213092700552066441321872110129153329076503690964576539242695009161275511744404451605828515052511993556249506839894725433360677193605734121440302568273348411610788505467848282164099877226683325634514662793068557296287611968747081819062871836164863092531477940567753211608111403382769360651936176808580706214433577850520566215678747454054977116790040849203156509878342719469016341111425635083133194868037802224972881219387846041898781432770830598708205221451324971855572644895349918730857507450245481752122193686020764177156179214862059953311268054622412103391748117527603288922217630144794089851764976464934188732369608999055559182997312784356490003219944310650468948570804376525374662595861862095217376916692748484772305568196813601460588223498624788285858329056502140976170633587745867028171701899051904739675561590720508013380230057694811229693501116035524336790315437131491745062846151592016134330261871967778880761679174121889056796444634402438911112468646458654752728521943698363079543309538394431902364520406881676065323007213065566216569997972258332629282959581189527257369266702983368871363077243105680296206796188283238840401319021186682509714380043016971287870695913936307843045856973969094413551080178118216197330515488619238590917995375466540590554841025603360464748745841708435290584532570132275752953040597754777752084681297455177217437946417754977070339340174717409211374237765249605827979680924040359058482419828839945942066352387956773054395536599629474607598777930067084596181474439085330440559649399976642765786722361828034140467501974989372641940342215517329126282787873078466729322025547866729963019476555275949071792367959876058927251057325826001102158242317746826912214357227243379849866860504863002845224963497993180351082083424365704679706501415977599995968268716053189602957495557036191954290040914287429478051284582663694591412918157505937686211771592038352404413333368114172335059397627330306283551070844966805534347356313064308475557077524717486542339735554546885950398954476339245580871555220963507985770625295378035978486665378009583700434551918203546538371726262092894850264399134767113208877970111479230718141279374036058172125182490892500445093819676967538616949214709014624433358456588263825803750535662305642679071518584349946678530749744690722280539899861446739138358261925094403131323222207837890616243364918561230878006178223114365397257362029805270635994853481789718848899973890645413936900592205518353518303162998009540056172473967746109424715977553361475524276551217077262749822981837082237307999054764441889005055848686659342335985226502325586429135650890110775927443283279262316665759430921886996718837897025109074428879338579972137928653635992233492947004439131897332154193725849208322874412457027189390342993415728294300581999117896037467745398794551082464552580928130378478775100883449259520891962325252273308103906679721672698073195625399682510031080247366509082633694898795469382662900570071762290841459696768473893641513693748480062512513672421790201293379382466759872688560578872462870690448982721276430405540780036801597447509677385205364637749624183372493259819713187644086076259552113328304568613356471185245230307370367807439371434026383375941935459016401364537455269073971415791302176598680886001922375406764991429621580337503011773135950926984886358012533760876602347471208608492154261033207623782621111352812777721308464122884208433347618099420511626212950274441987703657455775007320533326738472784849237445655255033232901328156384617025505613516126487885625715850591320438815556054500637781914332335290890540105270188670324932824576900544158029860073875903179346761112097986030077112034669426116931734087174250945191917259138602065288692298058816558914226429738932976200050230554808599814848869526779876216930388954387370305060896970644336191651551849127419781266584800694952608542030397641661551367366333373638042775315567716104104052247873578270734256151377743226382657782653194361669407907037355254756332905212100728503247450634058540023606590597500259148551943738597700409341979028470846864999962217549433998469031518977285700356226668785552214551102485300793334255796298319653142976190875543011620413010852417794123837155357424957885158670747709187989577708732675472192028266653834868558307358073156153764768235997189699388821790785598119131696532676722053772179482387908047632199157848955009872958405410998192309286215370622434762257200965999040442970752571892511352575661617047761501565823770320932764624317890017594863405380087454795475198277625910425094082101505868940071402327454210285528968925800117882439761276998327119894350085224657249732534925926252434678902144116741769567278676566019937075398657183198770635929284315556548822093260170148303544267566443642126890942588893287995695706680744721970002002532953185626048681177703552048004255048423710620431830498475951937063865643322207754968706807330150316277990271136535225049830037108118375471018332302344201842185143801310022431679258339652096621562948923560269607213541815606891629894637752419049638642092776846788253022445917277308906644706899674265598919723851539468222513020180245184265139334214985896246050201818225181698927336958935009964153755118180983775044891324494703870839438607286169054864119539396508526700634369348603164821358646919219494609378073278633836607871178935594952498833555063702017319274503603538010903459350602324205761869818541389308228716663411407438427020488811913431132933021075382148024494855004120836910460348599731321749696911041131376638883527017894882978537641555560744828142387848561354229879835544850836604115112135898257400049015857075427653552675477323857101364072621623305181170254756221701034090161147290614860558546839912104721879214457794691726014229762552114427211182565795256175655928781732929492265296121806614842244768550375197335543573099794491166858836156574235734409171021266721668930740299046291300128841142979501439200145076564199824916271920363075437062171309240850923024192475994495980549226594999004423936393898362325680902906054026203159040527404440394404883082805714618312684764782054192076963783468805214598443704697067831971528235637554932343378320707100087564294546578499471657855772763013741566299011399253874822390071765211260003422484287423245696185973535947034424294639798896057056032852792419329507001272696869775545790966068720022197046402091181896637552332232223296611946581100427217734901159774950579420018453157593154385979109149222734347756657412869616487134564192367839465119832156068006452828621072675009900251785481036777297828724523971390158856281729678617385939367481482931051944848153221871917457365020333748311124782181163963548262495939216860490423013891357165489127204659909429989021140271672528603257411247603714480523236278949696694968397114268829753195212846436505548923294652840583154976019552710142806211375155111134709920986296555208042735765818330032732121723955168903226210321756079274396724569568205740486018199294370840716150289574864131692535862704229328310158145522948672437481405372738572236261519152716011174140984529749249266770139457892973671635739798651817148130600003790783595684295197519972011802966568368885594681590654987783000153502933500570682197738493297694181432058569643119323149213015457507153280836580295939613633574038707147755384291689860581660375215578043851870944844407954893904243522226354944060743433923556375246119887139431408028895236506946262488504257306736488308230398094127541913663934783395246652041453027259193261541834768117378943045361272755360923882036260324403289083793759038699664981535686261847421980853563012376914444856153875358494417302952428750118466647545043644327931068984385369985784833223652085487881308210975858458106227310345120257942930228208962265990836540019071974082379766341932992447759012355446764793340616594134272735047035889947882456105173732013930744710055625438006171734039181890871357784538220488336349216420657758070501472398355508726368011040087181545739453497629591182872949324708043174268355786957689705486459591791003270004744524241485071608193035608211612418146960408180411565854571580328661403394066916403375543786492642064851371024494830213166556774342662554920463002282233915203700596048673984785124747075411282221991401693841394479221168068471437091213419292137509712643310683855264050418554931998102764404095905337486073529768242335782226163996662271124367396604429170890551615448334097710934587984790936198499740468370161782786130915636984044905712759732229335208326925352274998613969902458994309445546323615140100384488278038383495476365185562380879805195632808697933448819358520824353075855546906548846853274376272143509909882519434262818016279067980558137216351775699653825750713958261047412448746492068716572662934399394468811922695059491030457419676752413390121060619816537687861188241243799695134173202944802866150344218096036341071398994982098156911352784622465953204194226279334424792662907411909935282269992701948736951675866310116568265227090456972364380811918515433245409764682710239780190397194958314247982213998351499049036282463935200925152398797327673968992659464888446004695798173089207475859055248534836227970767821591161378672795933808770519555500611906846433874486243800876050280424203723507722271043601153871947524782719932774979979831840699300428360805782555408198302485462311925082113336918241537523960174798393349202945828452362428276791922005029762819301819345592696525626239841877190740973832687957924373709137508197202377199671166865375430654567378259624969125740588882093404189149006767826508938269945403780823402777979165952229222792874472142037155036307766425056452175386521697455491218022418447661935237276319390900470378616489653774479407261521798841803457070884628918720302838465782195273553508244839680375993655897896601783837440685792499097697280108894017854033738357264054809791312603081926753012537563411442703005210926820371695058602096117752540012216368001021938473220412755774567237993327920271801858149964623017823302118263335130085291175925309009779330259987642181768477178746632985735750063902529858955506058514809003008662999258933005919961237994290778123427927751278744980523722790335336584779759833412779840387611714592490809574115548973528876051593122492813033975693833746070236452759023749732867722115863936801551280540209134110231684339016701490388152010622381500930799948893251547639356463256913169182090874920137288423004573828304912261719868604773212095779929630026015538357476810044322258417944845267519838119700261237161700600489841950415534074463794469140460592138972317844137200776073054854831822455957415961327926319505370580733767262031980195262848647815057715034512830240071251388732985277288361083739279182630430844685138204693580283569858378507791519363776449170411738588902199339122638902832265435363222983301829381670977036590734575865391133265063923379596480999206697766365485480476690503027191066502808672914953679042569373611020837782933172492799691634698658064946697009858349665394708047398099106462635069388065528836317990106164490388189111430590740462047916686283217825610777877217165015382791588787648816525694686629836640745777877310106289678501536253432732072762174730371626452202003774392048069400091474892132821638257982928055806450629108041420134807662894796681802314038798916227611193039625662193928739397739706599464654861640026956677904605877260108229304722408751931364670546705574239775891415264881661778057551871457265334415371156016848386318354595879991123733322304718894616003360232228331188269436666028851700216528806618582495513248661770191221290637977432155418177412911655674729881054358950444160885631757536100703686831396576173555478339048754456406849735227917179302683306533088924081042232258800799134199168355066540417041269044525047207459653583232984465636819345792243468987283676043381897979349009480469757572202134162914036857116658035854233874233204814529295856829776389864127720186451703196904153830459524710383561884467103193554202546756898813679668015434718107771415788583538509667962235637259916217325515186729384755230440310921563105196026397915712172034954418174064021558446974921830379425110994081740859068740030795652768335553792662411008390707995048714670023536226209810207857457582459860837097315271528846698864379269942355950639630672542360064469266237721048270628154475688928168272268989308101946669766963299285550831445598065893555597825605470441675937483349944119867364809267606262386619437103370212486775100534068198784532830669791931410621473268407199728446777417383587246588128246487260627852521037872782686993316820659198770830138867710138231313352580813750286592129327032609998311346853704589779752693173682837377553513604485662538902901590686843524730374720961840307544703953848241454956105783309003642273140168244391176945588621691749026471020030549250380035695875186598995946174952913840855679452660563794909557760582403544411580680064380202586300490745180897824674197777454972823495849190503686667281838659255522093534328869496710270306095411950535773911808254747991648518670352017935533998355986287011577834010617235455879524325281580353201096653073388462395143836269005015869809804601316237230029886398268015731130555169403606705771294587237402695353646311049307617929128044155436656121659050194007608983833438189174209521055864965692930382114658379730278137697045009753865026937432729773187127757122265292934226936111418863467311317964535393715156463292511060966119445493488663151821518321427847477641453726270574629976467157345606838032749824205077217871033174284370004160235677857984918855976563439822384420276684880298432099871068959358067202472388526480152757635553193234282312154152773758562863688469817118827856953278727860872293726509599289899674200904914139298671796839656978902039509393812402830723987661017232295578482365044002743002164890667667717256936055281004552022927532609954833264589416220656490948696758100007844315359317623441197823118988277641347512467802581036773249211636793784135083430130130992266390546861535324185090119163316616859542562832312445539684908547067773514129046783456687483424946910575056880469376551138037084552251900066069065346236628164798089124988654628952480253028790898553984580973268866919340383904721476601905818538978541269479229531174203564507222250831146001072152426548255260536401687411696997046127357885659991263967750168692117020722950486098053887961608987744887433329753015691928268994425179931011843069639275280663495691641074560984444582988369601465334154239533211750913965572951229167452943329919364956714454327648987030117789369917759024969429150343571912330876439211133475332973313715918458835380954226078530426988331748459660276796846416923914675673320181970980948119240465107653289735135755380588473939313854045132469034650322491344547276271557737754607979843968407287804376575883480074468714507482811920344796710957156679469539116500290870373378662141513461854454829736883446665469279210258304447980580960186476729556408863367244196238047972170255122279272451027960957747202899464443111637553296899621893322083901094545914414094073193224468329036778264506938863511910468964293261086028205747522335988852206976803806952637239588963508545683378429030851766439006233023090559074293997278577032979692406577756364882630794306314169179426340034573003573106200421130430769569742856509417138828522039468754008488566472385808953649811694551816474725378957676161951188312029682125817146613348901932499490480260119576328642081516577512730293038350535739573331782786907880507285323664837370857590620581095867908352594095861840630265040124965081878337901982465797839384537570476427857238411064248937520799815921058139120428291836238759628173660871016626063497315685612967420359309691716501405270775380551713337351984398912295108919942771436555045087374964213285523460490375760787438818973174514921486141010321935271741924591128180034215415814719246216620037175234261360937274728344726603221145877202709288852710979564188653000703111038008138903582410315927106053036277757414456049608551138972909419028798117136797806076824305149932092064782078985383792257903244360786514169738259296329072872221813563335408961595542880591762303701263746838412472067615822985426322046361521213118638394043832566220319368205382175978718025548806713754221726872365973936846739171668024794555563386759003111795005698672162518592424812607043454820822324797150389637430065755702488589483116233668625007017609736250602839886560207604451202586963056612559711675652450515940841173437151601226764188200477067599221884216380172028120962489157480221604442078899897922657969382050141051030580072415080699697785380568987483910167767569347245772328087321789526958609720533740541561751479732388101537184083204719006541751716009493415479954793324122548969076412056612070218368447933003844440545801143352613457465061709230919298569508772586553804036614984360107875407025522348343269215435469866435794076439142912852432875044282158463325618496561335928383201941888936604906391244516726306830124201977979460474534205475549569161296695975276765237856344298692905695540345357853204027743980597809483163993402567550237234244022513411620744976988734137349752612123605427129526699280612789073516725474574193978891395706785269594706138247014159737695298303899261597962923444761521102679475465956371306085784476923166258348197437767673650860153898777224860449385672817555424723273998899748383718195994272280599701149362993916035782776120363526673253244057783353600399045440592389674213062101916445507217411610083133104321402786071617220310494940077489507788353309370499889101862055821177492004342322654399292664170530704374037561232043632763204025991410577290165339622909512547436361076631138923053067627182429511875222509161853251900356566898542210507025182402257770212719678847673184237212038953987948844784779123752624650412548728751446930404076976067864367385391692835296005712686300638249568453688528398632726390570288951450621699022820782163567631113035718302932189391904271306763396808604560316652399796863170533550717687620466926934033111335458786216786785310034148870597719535015602207942894744166823959426118547150518383990901555279765328172703943680229989998821025022557333765751053895999986894479850727191355744861921776623332989861094681757728849058529895388039353928877039114226620018959620333634477027965749252937753715145138458249364370623417238858286856427654104514731640000717084562631229898977359746156782914806110373059463311392147115017801523000252284641001589329214537833816731037432220483000380519481896496824650589140597113441771765478527001741576359439578483670458555456577635260021722575160057850956765844552993131333746208356248278025172482262598476345016274967719227867138945480001986773724786821820983244213661334324447976385199055921203134503348790180307805020347370373542888917877004332954259759767163313426461061541340447523535136222972140906318366544117671778530682052870494054819377466797524462016563955712480542658159199279166600287962338054420891940233581133192489008952304135313609957279972028963974629554965363244974588564155320937346480195131140397213605414337157909116555378192969666080958527665520124125029751042752507673068193380448591691491974604657543746716901597913971324596711669950037328526900875845173543343912094136137888000208674117786206178061947618044848937699297831085368713427610810367245696951792057665761877961172608454824130368931751972318038283649366387925179256210046094560691508994765465234616176171197422079933099021507911460147323086732145595741888651869747928988691097154221888978532009337608624755793022220557847566354009812531896201957338666194078956757932608323503451339883692275664700495095158686607913177088093996413953528092529877124982265971052222509908545741919776254144421193110663612148222940146585154221597304643925303288523068290613666381807299326787639369195932817772590369340198348266095378723879759726336270431874102643087408132901048199135998636047845076726660170390079652863675712838178106806251912577769366290969565059189267619661559479264943733087104828245899231225872833570059737688320472619367394306058647906962530713426146682812014814976982450876896791172057430769793308264842152691646817494832989982820328638309661282552236164450084390340090852114168985259926244700987414063801440914895712658882244004650518412801012164432092450646218856245456089132423381944952088227690242354874527383640816754298174287938070455612249341475515511305850334205126286084197176776738716344855601545023894809421820490210553371871559491290451213507940958580062232857179442721001546012332334036242952858081508557728348749732375590159268708105934794151896247405432238246169445112272628833254948167948893946091398597314134772149840302550291127316378681607104652262976013309997619031948171823083521201985571460139687388720217462494405740660353029821815528870781870125324488405805220038407039272979316904708405386379927374566713146352637628070995484777697372752664846446793961072606099311264111482652314292304387248014929190017854161274849940322942889983032385873598220368821491745022162995153120491534939388981266768351207194319862898870221052523787414226544522263977948261385623285771570618536785790831811885896479211444692338844210289068463196799808838820542132426277839174775241481525792414945660454703051243825092959841082411531994587182981291986978830448102096114094948547599514080912331457262111257132143827289164358042332332751786484215105549630114401632073567090255159743993055642362911429741058188455547826077917767367808798893883290058025338772244222069887862028680265421514871424792924088805467699326735454855669589233335104297775317017508368895100978384435308831586942603286660328286734205632125213698337050459616223294007176270600355740842856863678881244552002924039856262723750426051663649103937233956264217290835831887808583281139820532655144594915715899967551594722232382975322603083746993365710201361698345701967629579189043078706739098316225300436168646520142123338293759464793636721276034314536320479164967315893746100837386832191469896363397687130862542206340230272914999215823246011479906406810158487796625483203631752633928838440096148220165608101002003984151713813618065629876366410005298324751080338933398248035542409372879249001048946139170013593253793519975489102978070720860245358745171769402782090100999074575628931871063366397576745332885268728867722171068251820482765067118624618273817399287994911560638732606971016699022422966788968280551863275955231515337150204501501389524081017735509203534312918443914962884370915090103521412197099958470421113862305179419288602665537639903860852497647234462647229389738886975568564729196336125721090817285463774491453955600743756910564635729001762733318882442531125146610726545000464836610699146509285603462071420087502214363299848908735832518984829062376128499232406942944614398094057770421509885373370331857057300757278222618657031699601519822511839138675436828843226398984567198929240618618673523888147188872276064053241745733991175660612199312410971846424696851574596378363074895046090658221770001461581528122360089999991883134906603629987361385987418855950886070306599090639175160338713050657465223554291763518309570923932254521750846886454626527868961107487084571845277655171361894685183103020126763629184353808786783184978184517508428762038972678759831470401078652301442153209979037825270740713857391048306612410959009681868371420904552343684780613671081868809898072030618372767867672525308813337366961144781854576530532169745530326154450835934041871012632684726730894791140992459246356589539784303238784774098693807831070291786265556067115365183106936873049395135150178924924948351495265610912283909044273797751669606375322751225612313179332500508561315837888693840854516493977217154395055923352648364284324123378814047585444275016493713147268281756931630144218185389715696885173265526774289781340083318247243204934337382270864887712446191046940668420168860140026794787493803527435570557861565312451518048890479325137574177473189131772539514245069693846989645350939635323116739459700338354328037558732715985317699317247392072178290650206478544098823598323843901505832228246576055912337050988677757806347289066291123206574366660084210201404668534894912557496717824242852115793256533985012215323267401295639085898773727220872621293991339662169807741386373301297081947956032558947973752490022704826846049767093671328512505750160584625597460518071516746871781339316314126737647523142468614726351020122275716793621305020751447201745338808024409959235762688929132741171299561666886376635865252486222259099465887528172799516944976135429945093145698884529744881832863294590154323228052702398993585838976094448685923315210220609210711929616906018988456954902567371374731349685973819250918311538106206633482113314467295860439652169018524307375610989646237878155423355539118899541505628341649707344224511086886969237018067248468142772354900289605301904772535939948982590221061027719568081427053841118071195969512052985598996477828174964233394841061467674024848467972267524301415466691210436206921452508750201277610705346620758577176075270524692731780367688057101407900836388487108188636772161825438513268116435124442349250566354701355887163750963210023270125947228305605358905157966704542480996924441991973162170033308496482408380129794413433636846539969150454487764159461740511590600507818779815079864942331361539818049810178651364675618988217680277753136809699590493779200808717872058849483311688462275936759389212702593478184917344614605674045667099792579540030011727423281467232964681774508358308645313648044302080536319838214906707640315045510399930305901120283852307490175035296921504703983356860868496810493907194102477195489383464595796317513472470473844642661140735366642821946763728856501214690676708907001524832170843169196795555080771236463130187974998466900856415788962871455963720787391734191523736551874184428756199577781772304464518557167074260598049271894357600477749560308741360237402654321884533452750763280672903058077895062702208065551107827941387828806584258717822133742502571088579095277142781765783435147465623799827162944221957483964739631546625607334709186491088574450458076659621342168756729369944384336870501608942704435453045643100980911042592841941649385863502591720140960406323677007750486258612752617019952856431296504775228721759504155754592890486654230107515871274259871489133382069616109104076741710271160897519044826189302149935632992417169065722397676154798969923864167009704506288748291169157768676370654108291330479951084828033115861313672362923139149374470277193071111732822601042809232688446530325217631693656432141731401567911566377725853842369139914618568565061310639414086177033696453236975358890934804667829892120250367393008807863774361307296186088153976608508011303195841657424210057006544215251483833848758683085043793377234760532480563358591268373250071708221016404778021983443424553236014020498022843517576501567789981300723898436145016893645081784543489936558349168638075419021361784318550632330283761074068604020385802826396718009261135527076529464930055465501949857852664585512024468626840783489474334993599468117856127200858974505474568220449187097098338549824815411160756984631425311604185972045606635183208553372883150757875288449632113035071512558038906047374854925657790948162819412901737402039319472047384951927261804431333152216385872659720993709205012228866429959265755218090208438472867011903653057854237359245348576157830406642561297948466819697900148419400220502873399112421104836197948679486333646410958406974552234814960545413138410166718115597044356373853444370023741796838910775940760017674885766612249012047878694421507319569760570744598638288936441420171566563171371076493425108115430191995521814968270223135032180086979851742866935580620352057019336424000134236630776746210564280835976415273480691267257016170777708809734780391169690241596405118573823507016436736410599054240064463134099024630053089482393190402358556244448648548037812848345104357862733366818909099581221557912888109305937793503942230868537194220105116812921403928999492583436378649045948083740508758872641252091328795355769170271380170619265853533321179939549869885303035988457787678616491919143722822623095702636988568905077685049548031541479787112930350238555700435080389985204737639971952923992570384718182922423434869416117176557696201821761966189784205786102400101302990498569680617762788331873015809404643399053694651027730140420625920776723988021580399005509524965483056209855603172575520071319517519018823240972443951362536339693394177828911780902417244319813348466209775714277169642163151064467934936558249003708665851271723009012830610335995674626999325359884801031851188657130745050075486202880706304460130788469189976787312355756135826759296041745569744359719473702115340020312861512194719088976500519795655229804297305082934259355028448878197111934231145800881120759525104435983160037157352591766349774656849963910245057353823654917589980369570745463631459806944411934637916367414183848511798313421251708837777773038121277199228304682874788138739799315840947464078989752583024133657064878099502014694060055757059787763288112732127237243203364190313677430878380727882210576921076235147433723146443451242244109286307186845177791342145512517449054757175810116485641899668471575236455002519824763801245432335403685450444862368644282209436100505572957370233232714316594783157015272455142864287529499634321514405797917842662617331851258392870532349697662967393531392808547447112513187487585406898972185980736086415334092875623052525846174117985723541990901346929733907448547733178998135545249222214092044213559156414138771603896841062618552706482345765844425382880105436044938613586540702040039151400782835331623870247836381392295479215764595929340047897522100395991864129854513522444026658186342529499928711843055800163794602779844886736536733647299137742874516580418126402135500281121612334376249454374591703472959064347531121421606543582486601607733221029883500523323442323578671056377583302405154475319116283039516690001451254764331203045457174217851107028206221611034247074908561774464517462023177917401512799819428385395659485396368958369129537086315171316560645353585734457948046664596600800244268145260575848203217637153551098832339459014652774971863580660594861359938078147104353508336178223131590955231413336110789058040839616781334095392815731269770173165310283617591709063187944667156175704372108081875100173468335441151710410289044091256950876828257030880649925164197253568400957657659732781752842833814066217924091634826268562729211748189239876994783719924282499905125057811731639926955812697041497326134986043398941152529774264566525015428385240017925177024989064821576431718213315875610933977769656973547553360982690124446038738527959001979158451662855472882936111659949276879958796146402249980163140783941981052781288301462657516319905584700857352771650239898818889839521655675108474133230381121726356016589489534514077143858637434446896523825747231440675513559310645497819015967761338967670975494107038533052548997118889943825510850850430747846789567939709018180683882884422383683598084510641098922963186985181529441715085000754194236934898793047061429106596237103891263613316543133975832741844625489883833356485050040892634419745128318379246945742539861169220447590097101877563206598841677309245030822703968195663141919835552530600393790521068031748688790203097029100400490454226053123497141686077903631810705298539627840636788194437223647412798433802717687623162577829853884399447356825913367639683763855193312497657570849287572613619293419436767173278748414133742262123358798246155903907445554905919027149116205387317536687846774331005247675375989896892195889866396102895327563282037132758367823142216355356799723381859549027707666369851564204321828483866415120530337884543561484948051105454838943607186047786632167147609612599884267693371056026906538920023134607185291959472474194404273688724608743803140516034667243990972586711341647738715470296994519989531972996306650148998921469028845605234127002363211347545175238072778768020845806009372889059666753279026047102411855404465096230399526424031283209991134903582723187220126418001118402388503459215582135513326136615482045180272777100331417266310217836409603633567414669208484672531012345664318637622571136866502251698572664413641827318271503963717635283569665015269632463459626102178646128352913495577633125131897936319553629565417817707249129851328915062028298983726334802935941451453079954713279819744858401756365369516830928398668321510373752666842696040683372618197016899369448698283536394834023222187114767654604963496073858967845513905126474662512123406528872259978518585979055519675718952983254504095638066515876113538094803636128808524558241247413012607438381082281183164520048870804545052770861904705415017023325952073712561997483369860462558115089795753615492769704575691548860244129979144794331012716714442060431239205455995117756487098232162425431130819962895514823649405561420656571819922524959103336776304499782541003484847272516117802244961838079442268912726707633622550195393555910870118147367639100245247923799398372421057071777748603585564784654085975189901314549265120652255000028469627184066961762635899337962949518992870483241013942342182005807255609951593075309800126534402720270766336741801012312946840564232826914565509803969241447106581461127371251734219824755669151684599095184771156825068557886752493296939460454370308366948166266956218639783022177449798401491384946921991179727820288817579541519088986323317799260810506021680509371046743355314027010339788952799646593637461465579670247705136192778767228224533035454189586578845464100984237869760435974377400884518605979653586112062708206574798401850143234107934187800884404142973982494308496974790132493514216678316536721216699444615121148194808621474969521144917090016174829459692312286535100001964505625973579411482497857784020447001107064461650678961964022873122644576212570105859638633515608435735345770998872681407916524017064607212901004809202579921787995306489759059036949527139669378733641806217086326456537116610868521233089002059739658799178742639973575026239289722908286181663359978640834758118112522501769318778169711929367422336570451121785102615656568752654344588889834518276782357840457460445003908543069334602748303735768699407769474069830797240816553199187960341883358389900644419299171582708264648009467771583382840412868517151499158452111346299627329751159302623553600908065868118211275740867796703926434223199439098105786168326210898936780471171600496181331894327357162560214562909345788268863019274948988049826622954777343982025841545452328990141639290447485516356330219431418027503214218592379141577643951554456334176491531176338534692103207720819484329194532686988216903595784448688752814710911059324470270415180420497105213276115121282194418554606015336033196802659808834714761861625709257098140411288878657663684613069516359143022963517261195369094233689665471517485390671237271679993201889084310936573701816759429049425564350276571863834556844181662152606338462581787997483981708525890340992562792447822362320955648304831808895561428878345018571936404911333534526403586384613596222213387549548400863130018876923826034143915153802420442183203473704091696022351627458243987868393874094998723077966169788521806152083145370135387132511719062594760806099486904786393916009117373678773089953247107959868151316396735016594253646858224235441453202268918910643867637120972719513465950995567119355138759659989120896624499248812257845975693600723237962698488774107890416639038621855145188854163037155676213116577251579026312197429416589097161579774221580654677363207137677464151206470825188548242808294670796280592481902998652917957127188301705993475608218411573700175537611039462026758192083025949504640929072908327932068628644005831139220110279670547888544424223361177875257161732421234717623183216924200589357879162344710882909754409155776490669687432559766773041696555001141079914067440905915026307528080075591021329312172753677664225777843862603746558677287852391570941617718705826155915845287928434009406014336016426385149945430923152669475090212320296615184066881470527860983038554592078407704684562492538703222742875023138315542454694483594179872121048332594429645681781046184679857595137667638708533046883712260577915963431842890361656096490272607683155528938270951538832476769691046977474191043673328128450046703255297556113614361860145389964967786982888996421557143082723491806280129845249556055628900010800453720453872284195092111761582003890881250956890585968069865167528880933419104700276320157046847938227020610061898163455669842518350790947031516547019228299123091715687030310076852959602347896246836360255571449297142585205642105292086127949411188635963360121637429278596278014798452467375716636871604425843513110906566621491513255780811586865834027554442111759868224835473005597223220480867069980763769518066099483887700029343043895752802800764275342199082928201918437029091785696751145715265274152721057948392742050200001967267550305853869858607044471451774893043413008001877203214172726919858857021525434576376592447205860834771075461623736889939748265534440420388055727702706237118970378855170221694077382337083181541432996296728394277523660695357686285535765871123684258174146591977097518998136426711441253909351395178814700371878260518903232571199250631501939263136772090468584177469751119506826990351112345747934201774833331823792199394307297326482551619003375113474595441804327704216193695137145760886826288381826667812110110089875592128514630989052147195222640383538984482944807595259912939639702340665771045739307080296494307672848485597649021708998091609566258171018000503742521815384288541431678605950926127372886019088885086327338251123719318918037047221641018712619428163902647836374493716834487733424948266925241232263393997366046114553735028863161264726609225579056920847425747570826246241272133930216652694060805708951245347011867762998904382596136958606722618606808498361236657342853130132579955977817826443764666492591762677533690830325118126786899558721764254638169170085889120157927867318640468869136168679860778485859282523605363187111363572655107344863544116800901441688588909338749627919617347772006568390271517789812660691151803934476132506992783423909346309616480137826356792052334980166575146545131515238636405873227846394682704436596186942731817665421102917066755788648364059281634108519941361322554012258032458613898895904551216417909179946202905432762994076622410769499980260057445624835777347804670307844656283168644032920313686736158096253447773208234460969389830626581379277567098121489288324952727778164930229830143060921647477088901734981911357181581057364931866608139742062530430718824223687782333755300289823088496631942441074776813900980534514436630185572138840830019479543566460439031637348777941753135319095698820224647033908940513380046103732334187622920226875489636225316078926046181912943544107704117485347499677048874659588122289496001032967787178354844537139335350164452304305045605370252383664150486952741982136332841491106912840617287197604231885408637209197172680109757012495816900424387355447362100635267544860792768028084749019744525727667598610340036749093001697317560170791233635862421445951072224292507900011637842201935928498216858133698697581112931804902669540754797215313382037266223030929544293510011479823082944000403740273511364987100740101906322582607663091379748752241856417869507768059365264399064588812352173744576160559145021012624863767692477379968693096936182509641695710797022953571512498815514316827487337754519949502422603048511889039296817643033949921092176961751652215458845764581786096991212157391922580443311633186798778174879861376291905810813874870042980885889848386441816969068119579253653313762432109151778923217739763423362908801659052078465178340619438054084082236228693801597584059663406322459056554008780201328067218803666203002052543847015698219925543396883095551324526990294144185920028711936089028171555705839822593271567429843386289163433503110089423220789659534720365192952537112743799233134728221150729456351667210137737808042259323639987504797313938799781404464965617664323706621865904849010354354120689559642333027165533992372917265216432223882775613237297967906113574288901880270627787490502556669905900382260460265566992824024933050255378417718423244278373042497311925754174229466463599531766148215079510016837611590051984708988043910274786784991435747299707777779983637138987228656772784111266927992218770640394462037027652776775112299091958179560825717269389137665419348207866693310811648376124356156284796433230769982801522370655063147387987473885545263923127882661170470508060427348530519106526709835855680843875268085186215312232107958087469517442863955115930310082817149755570940467892118048006960123021190175494259897514330602800068077169252721457799398554645970258672135549210470011960352501850253718866333231604312887570590646411244204319149194652953250499795722649006445663409256500862300099521395076208891422801732548490504107994445135839128817047587221814728714502331995545458515573246958428587106653132287885880511114986359223230729349632941002271488880670886262895486009502857673585184900550320955790283233620142779027440347367707272699126672369861137246559647864318177759280401060730558886134660173312467946619697285109025484920905707863439075949313212598020787967393103436493966987957781143217470419992452080734314557929693580419974966507472835616952199270532537186449136152487000193910042090982254049284285303908111779489465367732851115067582476878195102045687853225117418690204640287879629917662498436997573418230889579694074797398028358693778970701273972800069176559463757613184834456486271635479969394348079714636149944845692001520533313107152891985406113570237795085039042685608665239464521559173711076006746950689097195806399292721564247632102974452887423714504844550992491725434584016893672796922051774225120025241620138405857709131583481501838644948400771531678608042741636827787669275211164374693410381313387841482295057420798333760464960129546891778674187508168840799197497919606623153947844901381404211367544774323223300954870840273197122220872950598792414716162675751463071582731831348419207606626540966579525862891390635621498668574873873524768328002044738628595860117494213987166522509693018182196431994646544803332061920113072496389928064322827772945444258658614259157322920763453930109160201474362248982201818801066337654305226123332885377891743437935889349709481873622917661098403354867631834393981099446759891292196482422631428548340593407755434825961184702867213348177127450172574876184353036518915248317990693246503436479542015335599973271204681227761300577651801642673996159971832155444755102667275807098463169237282678206096662827026059620514111078251154072761770056865992325787379921008513703683685875337161028215687494973543675280147611752451384207066219210425437098008097357058049105264620507765550818113076150816552770048040800022557341982519986985204814384448246437631064349643827985620135353860401294208125659921285156701503922510435875198387302471195068223204902682850464711658088722449948346493341688275048415660857756638287078416050792447275179579995073764594113374730168636518431216560737535666159260885818865667491756645573377700573508435784209073186852373016625027729522017573832010236568714907785769888187977322051710840383556397050286901121999808320342912640464883123216569613606269560026135351342916635493529033229004369068911111581956299915305527478119379637169532202848307738995331052974292419995019414536167504379885545242937079528297125521164121504379247798870792728849857415963193745132350775094086253582153644076133582926507191493144351624758228081060226658911307762621515115461562615611493241475848424151075681671780999034754251764681864484856888333109705640844613054618231126258673289539768358192365924498513189788662962789693376334064449438684988985782902629609168607436491903723612392550778870345880702004754865363714592838859448747733472225556175540596830395826482682258913563163266016047063491524672722872292450316251463472234512033836195969212389493391898255191069330462267375541041252720854811278929668139825747683570983064243475229249257706383813617927468288375303113375149384521584916463476014792656946241908110239563568608660467702292125634749896380961485104631349512334063252106615275627626053449170555858091238291653698519806204719596216133598726490012812987325128179180380172837946694528897630986663126640566923530612818182191279863791688459094755419843912686671197529586715853732658456920120120072586239930583490255913165067359785587673353829934786637175463743504417531443178238019276740184623013067224981092448675376575259261318963195223412470516216444808904919607007824176892231577053176485129624155088318704440302793108933313541450651594647971296399378363057538353185845924406382722158632778335329459141428701273014046718652301959839794162267425737818632883398273257330588338472832817931756357662963968682746939640328435009945111713782501477565805416529136784551483936582774751700353300222161519950096070753542695478064709425058486777214192024027996095078842472243307819571558988997245559229153085301652008320491794921873929609078582034237258678979822109569469712698619590335709458221282561735881485411070032824374769030268004788083423887986544457819783989935549259772677579727433703359104319152070912027745116280146455493104842931552142673094262026243022565084498252908079587215492013188191992743683959077339083702008224670096374603401366792721013894614030497707018802096370202116355542903798248717976778852808417837101604007896498197193811422029211439909935854116553952196247884905002334012192752639281693876747929864895793842800591284923418673599541556861008571760650129211780754759332832229087358758920101503709305683689618459491453663952253171262081819208551626558614277344724580556047870818873187723284094160139480150891689216171274200080895944595471314562449484878491884075779324460513486930886487946328125140185644126613334869799795426812981826890413898601342087290445850422839754287609180661258492136893305573101098181571262430363451584371425610629685647287608384634119842865375763423822752335793680340645869767912380653588061777972773945652362491210243833625716281562327612415113714656519668534679266278350693609263410451229460890895770066816935425393427486259379988571233967230258592109668253722567487525389528108687078145659815046483635256327984169931910200796214583843328020570928055899330885932721262551242301924144938086447927255381432037009423629511638534438224960688631746724419488738942671083010610488681806628019047229777421002543244940520798695540135966792478095850286423669431405844412131253531348808754460507214715828761142357198032905744299428040899780522234406066122701363784417278013750302039382084235123801684161289790499126030537718724600869216571858586745823198417692527743047963702478220696479928089552737340327395404276563620409153177571877462337694919003705146724737092506102971417695926418197202492470012155939750188612638875581820351318098223013726892498273459232027375173262140894749943141926219884801201627748964917150701202862385424436300347264414593692457472730692267053505135463775436653932419672420701316824352168364286570946871716659860166390356013901839266106454305345452115089948235459531683296767275739969970730372147390933957895118472573616260433462226188755149588787941900174179227513508244436980441034116452653780691643988238762966550826794410506336867203557741080979648829329654360781840132867845512791595783133952705041042293512321940143024537884180314340023573294948529825674961282624914110277230220718505312939660858854883892403815003277094076371921954069929524388062716510347966572812367387637746605191913980677711954783374315109666104255856969291694159747332766818666323867853950583539087382020498042054041722385366513413850435515388090161252790344769133134803851692279649532236364555526831137546040681928549285804616911441687776935632649908552080385351391340590593516213784149744920746210116743359080940383131897224650373705241675403220729860267907200585587386061023489268952029987600625144564248690756173790319871053389598507507175356506139192675714366355265273970532087155765112073162488419372890584311523801696879009152221586338916030815847547391973409905425062825756433110523999495267849171994431756207684911483859588241787730753649333848468130128151439826269919678542386909184646766946632599728143240989773680483044225255377232920984781280176930531395104394289435245721750765050871395654420858032612692580192711903517646943522933386231908397547119681647371738013675514021334958473907898702563262163181511041559569973803378012670630620724046510193331415334758950994432178151891533037618018792272846019401260842667760305119538757498974302753230068012959498434025867639891878884968067100204268577112708480346565875721837587077466607813355750390676163696968103744970690184942724926924302318622537280062001134341041288936303012539727614849407175211997609367130969673646664693155466496573496220868162674335389841968682467024656517591091313304709479399626610925281379351311308377158711005289368205770602825637474331742518342474622949711418385226664265079291283280097645552457054388249554019329546293036808096155244991020516874104681296669351063424567355680961568015932925435762786940994508796319755011404706069898964063153175790690731383047329742343757274920336861903422217263565525344308414453586594641087792328832106694246489269309393820550883184502262258137936617345557776807273159788074993747680563155592232116560268349656831718372629713830781244197071281318521260726907083049904238675321214343051004040552948716937960770922346565709789875720088050398022263344775513586887319568374166658179036903101987556971496399765273518121835154660159714670270567762259366955903195245071936835837094779729535228958157276061006250603832677165110063936450923696177352846738602498618084467990310232557487647825709748639360657387752892978494111140618328433276837978132503123792735432750326624323694266280852668760243488293003836200057841877511740328008056071216912951396165603520893489496350190525889919699914220651324860324034457042814008507360532870828973113390044338562841161335076248129749427141268597312510441688644162469548434993422049590857760705800366574153250212848289485447532454432864176620487722357938515396161196910954600757625167163046611722375856672209505585634797498939096113658077902414114921178853677559828061560615289099033498904545514036449027154059446141345651844636987358177855540820217490554448791888855209487459923843518442063891809587167309844571861753946936348484634329253404551698750116972783733514820721685664313855416827102031405665318660197202801826008497482864669841340346759989084916291126515020878118720791339417110621339585356912006346743901659698163528002625947851790996296974267776463025806761866784721699853207685869421445255794833380757659587776482487280255377978882470503235938742811077976250725162003448619160417274766319069739649186164818273056136798289179018957454614114639569042213046160799847772274372003597255183173605516424039444531835301389738815521575891784897631302296708649811104229575457028421418931616890410514713224328733726530842536891559749171869366881506813640800708013199756131560549197502414268965583958460990072172740979431779644503191183403282049535032315939587760108224001876448590622793313021131629182902330523565015824960735269828540188416792420380378808239146197041408664401985664753768559893347321702278498330778578561602056760523937839113380193899037886011571222142565387611095364149856005529157105580055678793923325757710759582034609270543302486275691748925799945302044267487818790753343732806063422051551396628177759538307104163643924697632021143237409583870221102400921386871040782354232030293634882931857861334970067105078084248376251990975330644175323434547519895456374579603487590714066609262456085308660595196873761813831924437945821105357057900892923535181657494205590560614666515618465931023681092521608066550517283647206097328236268611058987894286474151391251947028738974284143009375859796333646017320060759792314371834312021683660532737343978522546158578566929518733621162605716087037999689606277673407642822034982591795666612975353856053633304792502854750492238910864980827871035420968760774295222752395065422212213862143834743161311155350309411268772928514719045677521992418484197315905471989616530751942392630126350724319235143254083499809949527390715042721912820870757883324755455088876705840195536156052639872670126144752212074855678820923306815757388286973189346275345341372741074611212310656904900440342243063914418741111003215676691497923792251033497980792717160769521529134690320121954070931714261222936820872184378502185563952867643682620931457384944491452679724579168959072403950268594571641905841300994145940659900776816043863085811439932727298358457846362187821297807482844529335231095670830983249772407141178149638954011605411487998440565299025606761152395549184333353428789364815244430843354943922897854678280049479445077121949843412506300606091528823565329265244031201247597870194571536463351754461563319651066722236341251831959152647463173487659793489349041562233862538760640649026179412033713820139139626830586177403921146728347730386418150116037492106707843127542985603482744409912015882735288208592026532535061207004087967316544086068656214209415546898554980893565369829941689683319677899072980896519794206507545648689965567497374876325060481860960310046310620917867221495610909148468156624583085925144181169247400939009445857077453493484797736342024686505617237693603447681305423936909805253217161462958065618868779359481151374726503084553483071149579255931203353745684289523437141503415473240885623528741306584669595408440776513647565149912528559563988693806382436505603556703003256436189702679058290543985974565453343189474997969676482104888014265082913610531860643830640151511726998376967158748652904946991450517289190184000621796157593159455646773490085106684041085810038689619769572366443794982693383104711061734781394347843972141152469403965687166576556706715874073511633080053534563700348363569366996811100629807625831691504997517261547731887432127859053566341450297360143557557904058238920423271571207095506468359244656931681100594986651430802307458421748794326172239516818090298349349181868676730470722897170451812336865851273943517345061640686161351297243164416677525499270525054973402908680127351676890412363253130324028431280070974705007085365418755612672664113716800231697050712836823866327480488436258473978900416271616235857604065028417862039104573053404556345803733758227532278245243460505687277217766154123668820120597450340060501755599277869561219862012393498023710072326043014625098620964995912167046249516086961681466899083085729512801701122190659098515769646117416459594465268645846291152745118919497590967653749886160366374570115079095121069020796292733321166194630818125153394723086929168506739702697031341611194825317672711725169001627165063034943131384744259859132097975675106280238541450742304780874843433537099398457666172356348562968751432077494811076366351044592265847262326195752736447484998199584383967483236813555680645619988047028488009083276861431206188183839900933237482676737685242721807727108196284316591577900119705853659143639260658350264194095355157214498837174083837157734926089562513199655719835183219431933799280814301350048155269912776801426678851346991327184144104162694071121351276351685426097822190337460371519707406650999407096538784988621902084029724785426715150682022759676906610181981075895083304580145437729923417172346109618059805149201009052587989204796211960369531413577667618304435243929177703785287508113919392222489816479253478131977003259537707403913070471229976933254356953788117539246691942885861770677861066879814074052366967514313810576969928536942824024988052155647228113068968847526624049294181262802240677375209433708645794036362498449858069533598158927714561371478224239623181957220423844262092195530512704943360999751581413066101387624855139096964726146666049149137896361214474373459854365677238819938416783379013900694254702413094142542515594707726585620378444793872568540490423082282839873334922825510437028001416900212357824535895687965543131507831101905034172306193545181820355352377931468288425196862777467966586019840287961132176819296842893881851025191287915761931700036031593018233961400391216544490887241187117799016318127572036729319627499754523667492056086687636925288326863914253639348042974082147163037620572879582851583881711011476873788432538150342052370315581748944462331571187385971393311390174367597185479109853680933881477705957610245973495462045967079887701905090257894829484576945320814096526724094752287512360138175478732493162604029759726122255646317607020758766159195732613068299980984966966620135065451965016098910658802143853902389211033469186918472248654354721712911690097067713469673069917346647677212948895413631565912940818954631504953984446914103288188421932914292040363836548639061589591914448298187025495338912496349884357617334574267254246027634286986422771430431211768048219083648252394412924673640056175842495706561982596321016916970187158170592130217106575967641788898147051658981207268196832200587173208516756277956749152635439008344262453456197877291196935545828982711628901260244603819020392163179448039944386551974251245536936198482987562527906112443792239189214709240769878717712600342174172090455126958176206428040680562510189814114955797547920809871546414755709125146989361850897381098522849599726591438247664111496749284842267599200873935708370154423607451276063009268217033681094215529501853486385834168277432961952875462181313980295537453801234324608107008929094966303554700421014475233185053239489623331176511985204953090096312022304654274910415691012149698648528646360919799266218440818971612294206300126117589472152785333920889614725640062872472009059051522132277914397607832067941553721063043275507351781887413422533116966423849222729486533105003770431780298270769948955678708024583761402299215707441182353691247427661940000668103890194060377232317849370187355152278129732653185726431766581876635208945729414566836453123792248747561670258386881626459777373847855284507060988493397495897560653519001539181238867876143614329520813566313324790924066856909321304531629131482218547861474723857151206922650840396533121227138797323427866483374194550287651881915229949560174882695435570058162718154520908996090934044085287574416460945794659907595743012722869716705690314248312509004315829740004316601287262590103142681700436073730887673426493902588982703009251095739811364168218804549425504268467124135147004822771598076700861141033552583970289845417362708239073002886427379787169030432979638016751137317395594662465627603068673776702959502898799000495852993007403385252663941186695931149654504921418451512037955400840192785721011295591730234356968869998225772562911560732505167569921443990198497332343465669419372460557003144250034223443706921740364264862991734501551815730330255475309569563849530518034548133623119661015120849048757288508324058080699561107628033843830771260216782961408848186269001972806395342622363433541447461105474776548391800615295180608475518654835037451192931082720737525401832549988351534686594941382778489179720570318316765150403329885992185436444853935581624958324888307040206142448213659834859168433941801848491583806461865836669321024702116734971668834826069381218977915066908063121543937814015455693429627352698267341622693439290892390386772143854642576503810729093448175889870956748887958213471438008755148665909398114582883174790283480995936442214548526750216462170177543744021111700724424065230861316082353845884779436387080810303106132337599352216228992569234789841259295437719788196346978174808304843402352666568085608363358460930422556836421408142717082416371496797303575797326765847537896045527838251734224906921695326589575203039630691591050178542110679534793430891086104627844030633835273658645039541614093956431062721608177641444197975746421063651909058738644635062506087654041769600916767696526366022407689824012071294781297812652548317360792069752974750594316411185816823922146662286910567113840808779396944329934366233546065430688498130001701813456826506936465459789950781016285109573555740317575498148730477428728440258195055929646377896919648118156829228247228526809616202597538162763985013906080556910250857781358997869019746336558310695925333090094627841983095436082528049556355787914388747074356317948885829374397051884091506309177222263111136860102598624520360282680140771920976140089605157383154791178340928264756628946887667514710412748307833512942704794820223865689663233692767167678544243638864426068668487047892723687730180275987889145106830402006796958752054834386061180644912864806134074383640208702801657757729528685978128905042686916967770763969446457738345680928143679951527594626816380317018431567540868337592632443629796562944444247230907963976479656914332120539086514107207891932517322081898502381126364212542603537286304096479549862999784795376409348949770868277405242470792377984116594067962747414561706577046086145564441797347066001256965305258968357008804253661074919277452307131077785274788788490453453581231765706334960876748342184581174734020111733507341359234380205150207856982580435514980598078970802926340136669563212186411270910345557664337477951312681470222275910592388710777382877971348948363901256541316111732359540016593276682950315409897219182472653661084167743694946367332874639742320078905757363395416485491807944499432186142081522348803917209776682445459033760373976781977920669492392269265468494773074168818975302869780127598327644652435897997597881450914230172493002720182281667783560448288523002800891685887883393501032715337432705518744595940002382940320285759865095860753403070188066255596373439404258237091723945779411317342390099094660877625064945865934175667898748583376721759432223971241429533281296439062705942082936914129729625912372243672046412779407231041278037180320441095023433202477518390510461148420639349065489533659439535042058055092303422081662778457312418468800400492644018970933287034177230118966112781208404785595721403993655400427256173199943076296993876122583424093832834983402587753702358944553560021633872018837758090354795513598646286478468663790220403863450739707137840716413543980326246483163874958435971933750274800347470109266578894529133038488334695444108376423022534411907077903179990227884884885273594808886266503470247375968536792404148087521286702713539404671695118087062838868705130916567495623983376788024543875623513509600195652066597019830883035045488450157950367431648295814969957628423774836829278928132579646462440525938006474217245941609545332827736398364347503244315960455858214539680707202447242921675328969064964042295817237707349276770228045235429749009089276739512307190581345971035257337785740553760323222805340131857976703311035266193834778797061615221229329067884207721842338816075390277251599568621714836133132232789623639275776130989220872934080704028146068027617366225236809495350932855671840692159909256235429426142230448915251987613325888637761073558951806742823471540256674105263040559623368084060220826010027176993211292181872766063886962580768067453595163634681545032865638564287692774075281544076173769838905053467112876306453523874847108404101446310772055554481228226030310581755519896078383522527085636480368686690036679110915051908147847748744949589655355205823187652182268972257513183575105259850792124118499417891805661193535776330272857510597658895101365096599710245613418293520210712947202723916745168958773664058245041445023521342421651659786860012970379847637791966503810988893958917676613111022211462608072973646826957631563001762869534745453334516953210994997361278071490633832756125948085850504636289690361902768205591721774358359059266464317749183962849490296470590489799759905265339082219796231412614080717233348002926356573894949627609605872506045367460977187671184553292568954429155334442070749923321694042269436816133391864478361626816911827519752861189808202436862104013898650233978380928446693197593805182434449640886672154503992760233290496650387208309743462681230045137754480883777749289318423923105303539519001862764698497649694354228592689838331748394979643706692642158831407192217785449263243351716646489385794927885345287360739972595612358927407193475446176281371862977016217266504050499558264991736047645338639907452241244154345623156618215012189255901296876320553062390627637270587001620934645207073177915509615713574442681370847486569888835820224133609628873195563116486061331131894808676179980874583238924800152677912439805157752442650288756136664303158139667862421438533832001400994338504158865424298985620527833066751439888181259077152661574068296349162033170279676082182189373068009592724600998674633401777303651308353675944217883783750638758446526713400338048817308090098070612875337053194864279226931748532099118881219487409690087375939706573818786993492924394901603737167657459901642823025708217452052157076319296706286543645695395412943050583932898131139459003263321326272340790313309298916223528170687494300513276559586741008348141704048217060880899201292655992929327125280429148317813685905260781295091036835099200527392072279892940597643724560637372414352300857330651827145696540526566651272517627853853080760846535442893067399910063652157190178726209486004963181922403082533068263559342944066552960729889299753483956456317787129153971929063511083271703723042504787147713296031294639483150772903567251790340759833900470444440071659222542590882577006463240252931276560526484517925383684092894552904405292348872418774044677052096088370732171393197890476363259367430378671169562358465816404473579608209044061070960322814528811090658068281106269524558888333292437360410248664870825893633644261314726007666349578655048206992558621692493830214614054915415217765597474025154875714434371311247183011245716065886710815122244927622450396572893691163769864517219859634914359979117802471575048562709023343895071790491218804933383623035919334892876548778160846822239601416440961710576548895738141862861964592831004541055032371069422668063214562556167403699257260359824816259968007431412172984104036335655006856265604990991502096119087151235033661421790773884880348713281495401488841176877072725571001881840733761569827857610480571349934289128978003359354881637992665893321988141687980135411753783777271561636499423373024244210710890121709260865957930025505237337109784756648840208066903229684464042545523379220490285331926993865768784111666743859042177305523880564905968755837877624552334201844606299925654112250457194229384142174538121169855784489499173645424705942104519964685731930533604345106132099198447441716729923147018146936292682857409935204480200444671742460083484004229747006767830840322242012840325517973266716326430630890729345206734692653337808433677097924458375365052120448033668769268728491881063376160681845582173364740663605159965097375082671465051068907620507558069042470713790697535769208431795885467152092478285262748035626632827325092734864063590258921863233636679396841259872499104739868009873041551666395816220296237620019958435431090237626730964784661329876309403949862814351293899534141868458157117296755986892908847172820976097325863464774118684305856053680444357122618991916777921483736714239947789178721642269684072952560585865241275448618407900358163896443732653323438264006793136057971902070921987955864549511802564814667561739199782827425474026695139044438032646660823300788518693370326183811907970904048636703975675860809352331529477602255509813323295521908450186352832963848910473021469656721938643164880972003935510921215729850998303847109646999101051968477267029610315126907368201997250642214017295481580258072893669586590283414883238621024166101459119806296583972374300174125814659851205509996662316588333372131933244372963440701606288784359371687523201135673039217308685987022105453322755778681825198888399492276154838477896630737719872479644047914341450941622473234131308836072242364902431933464819755572975242304446690087481215274392127448194626606368933602531937425132559489854872419191671742493443693811634420260826077563951738709825260083032870903652019218440837261679108795558013001556715731765182096022190902493027168954996986832526576232413587698582560413592039890439452984190257935361255760445259254106024504101726780166186796477921646146573558007296719247539864504762800137890999947398142827593141277340300915837720578251663563839278304647763473445752434728536086167206174719232458730531986462275882540996435748762308814100804051625501961432031154826481703073362673521808008966335253543441446587778077873993470517876072451380695647873642459503207082109456419380158190069826631162049957883585928224628988624325715399870794951136213847625885579938199251879387745288837359402806727259466709172482419312482113897119797656622508926285823864839348625228735944605599803004200882244032992670393239686501535881761558131067956637185333209887348648865021476371802830289381009139964733648416413116707891187990516725047457888053089570252496484870534294578448658010371077250338047624973817185458127788054423050270135007685378552450798699055785654011843383246559775919294783204383689360894490689467577685134440001505621035357738941523995671821040201131428806855578384562668704863786366675661884252475788745431203048801951868025395641970881530480731698113348767894107790669503285434251716300053510854266240409069314336830578377491153040049965111197668294717488653311084431972721653928098965113581040006065668103512469472568768199711014821248688235148602703909713595732446443163231713114315190158521789458872633089181816060485444948768532455482334253985982761672889316729904874757597779825797194422633195494139269290221742402886699245119091819058712067016567530336005594878410868597231161196927542166021690677966953286055029802110084297193987827925312656181879619727857283231882532242064335542654730198391390170039902953905445913149961184686557818638559383982909062691745269917657935333210460160862559033211580507843247003473823226560189741662201226982354968358380040788844884766309597525459550858084321238309883590541929335718880120266103926758954852419757654456063290243729485393089907937274865884356344306699462974030498260563457397915110415861368506088892921672736859420213791240293582598962291778480620164578040211757478450480595061643198476651992727438850618191696330723408654485522122154145044280071775230661735531554125911379224957644028450777765619978602612619467203801655839868054430580311816914084049923640105578796626202848653436490378986916487004929516938348302342493895102941944436741329780227265887806338979584796292744603219424944958626252886725937804954946585900563263704996956875350327024780941807059521911115120834718572498010732489658049954411504461075391293889444373458596573066196644089266401251133824198245990546263447491739511548332556086872402653400066706839685555747041234760268324846647590524406925840613939205157355598182528991442887362702373658174137804258584360485700955891151447634810788107157834112039265082843655342221271625269919747624248132636370336639045398285743768225958868058293149244622492997674063760492316095304523354519179341310707888515546257372658196784922077890516659047367729830266046651078517789248814779263798766859751319342823208422868397909871035083224981376090009143098361017674172014683745440929679577801556095840257610012504382212151455543818872950296143342542668611935126369555612760398585950423466031655383310087299279149242328565646688888764505826470738906822215341174732328078359940007784810692023047032640235042236862038133177662260715405065219455322819515792880798344142963765639880311958399442036583038247902517581088722340339692005072987857479829351044759236365650246744516689307162533130448059785902157560629160870411650995470946014851734675244129527025419686064276664237274072473673023769005541723190987833244897567865396846020904471373233561948196741308607982901236159547734028663990370435098784111760337544756880710991334576716233503590476691524371800031597640352134212640316738664347945092862597409364690459207104757209292736502340159983227162858672130287098149662842855795887594169409239781357510849416833223107733633746938919178328045698709778269636239889067811763572076949239232371982323677489940269067739007096782612128827740859232395041070060579644228477450406922720991893817802954505440015841450444672034486153919679844476438008179518369801919638967113582761567659653327082756186036597799929267519142090011646340992519835227335836689349862756917482897042418554564610715567004072004136330248701787295053315494317803698981855436222684836685399166840290750040105662581393812105717012192285828002799460474457379269030974263168106021929816314730087205300435234678317698350994325809569045530570809382621265334099751612231988428371753640375481550263050522837366063540041999926259872009903203713781430625172884470453799645967771964937655470439317910258136365841678453793731182233989564776708243071914149342692615445597034358101372805979717756839844684608697503042133551719472618890470046568420467646914645370189009803430751021470691812806483304139108817844076287143428674885557855044354378221899463442703738094334170553107258922243921277021075221407148858762311596916647891622570020258287908430527541718227250704491003904074453715511583639636793564249319009089500712971565055562821913625896589058112760416167246232532891954175376937062749260246355994195084385487509525683524104130412148252895601185943524337129102765747342339131765093360648375899894889663831878110211309082929490242422861854099891913274066796412430656520986829113802218120335741818831187666392992069013752957030446118484280828424508890163732364229303554548314479401234777231154396976202077582117589890784593399353660406807621311481300693183167249474015432501753749457245959416983971485911738169028257623498276094598606445111173321359756890669278286038803283929365692605355867376042400871276389030510033069167748057465362702595155028697059455655443421713110961110718874647181598035475904857203271189861763267944226367103145221051808839909795741751227671693641471017915221996985502912560530423786765060998697680746698611892585458886632390282741418507511071534179356842690383088725793631070401146875483844032303408351873434292565243581596366719302852300531398477954391434224428646590625599663525257889265871833665995675026857399803368527364154555368033513737441025219497163055958812325573134567052847833267633225169909097148276174695759842983300716759008093791877105563042335371657587074880293436663629025815036799536089540160012507704894618000592504132711476912895697077406488671378701254082700790775884192884058170735028226700625040171491368764802787495550197171400227644026787238014587433151194089215501808792082470365792988751210644892147111009746944658230054111381806088678601565116173864791226156803702634801207650937995679138028700782957709253284271742613474654032478030346860526988955408258501384105224039761861409033127280948118153247279424632874103425694124128333964227434364472647716071701901294232141921155358058359243029476476867854249998984065314981213466609726153877991140549015294130030790888947782871996485030969276877286809654084698203419435236044632210874320746417766869031318570421979588935835550559442377571174491163665511374465690701583873246249170860742404000246021539214668656969471616208565979449205833602609013003260017742765527329728963282498662256082318499100432196027866032169266113492245114294599518065836261962296057020715609390701693708849754163062858463167201147742965404128314127886752085390770218089031174363397769730259684049731749759374267749611511080397503700708057924191386918350655237613081922654053713543783877246091510166954431598738520295702934787399687100477543488125180515926956246641644186184119759837708654047923272640916796151420310883254232281773243186826574497063201278763063411569974086153413858395414927278496185881687711842417007745348638589498082280979141121115589671194634569263532234423894255299570568379270778633343742361232296842576579155844400254345606791377340614177245484001789915063071740586067669650411357654790230493786578125003638937420672569777855860928212603802269343570677988720732142957053377579825832417696082614374163635079324775469290276167712314998272332865997387877564214659602623207638042383973286898777914323219826951334253428624478223441307779871779602511510693938662058035923327261720491752272713559096248925903344183883874340933046788410645927299475499877676422141364015783126605737378778250228823177854697133275442452217325607853030582062216293731850172041682463130295693531964702755392594180929142220883065630139562395425407153967797947136678318905442796325301823143311573158393500541775291931885818236155112421372741481468004573658935378189281250519325806709550619976601357283239508325273135251047732699451275135153152385040539183536067668908871413303811302367899754632863863844042932077091544090160876378914761534934181095310589737696791300034604769542498022893811244142648882511572932572788828313147301470660848180420266227204334341865081648952201009795074001998493941878110935515202471894461666103757102608401643296670532758471358801345090126140687371956840751304660087182773390024273542311845435739867656160003364184720319926029107166266720012222053817691986011459129048121038978788524920832052140993760498483765839639681270815198060259051606351194598795099792192218936973368311528470364672370410123723209347258490050442481190905812814882500571270481614397888528161207284640452264990353556117527848787541620005470589380006422697913795786330437715658940366509767218708971999014643124701112991820954607946502988968071643849508860756877626344020524255976558925407613778126731231121851965516042153682215187020520904207427030188235978558304947351889620153799478844709895590748991529744671246041574150421802732663481280628495541827836340795479594843650675437656134868973538657005924464290109183987764376534036537605049127569946035248610900185157369720795748347136144193913557883316018441177263149807301906599433460603257549071122630043247083403203509879484420511251954193237642500198963084492282392099460796526052932666903226954371025981918824929679980608697297537625721014633802483073191230292340658548197294954894480344585908180800783476498043680538108624618229582551735975425737760986105849544440778037212039930792843296434997069184924552980662415642929304296179917108072142296881855630901211916511003947397703189529001137870884514591229266317182018009836694705643132421929217261662458401239288094965464073771398091458631824038039668241562597845954879336281911477471770043078818676225873758790129180132783992383214597658416893427216341528002175889383599165988793375586953223409391624427975537796056387340032567297018375364919686522027121305271604796335126776368829970343093863163785412206771429437107852161186328630126964352571943334708093786279614361118570222931007657485877894425592736735657328394346183101558452414820272747572038776944396083124149203128564530169796929340283413469781200481870947567857189867541524327089254959268546901640752400824186146851765758309953205967920262848397360906385154711134442006427817463008173912125378956345149203053184806714657533939342062031806634364708039871268785034568401314031603358870287657388585869755305608480055431025087639867043621717841945031837791580724317612702586820003261109426468888050895823264527855002248741234959753729921039945011707782283804989691893046233898512246231779052808847475389359661632420881358296439167312147899231637283563593887155155014679123104362704240032164622858059665885928838035902505522452335996341132359008277445169939727472997113025451818937550841043461677606437260373165890574986791737024371843842930914043650965186902010386344628128107749528167709922087617662282905777735137564275190336964181068433581742258427084725630404631207669316549219822797978501622316592820566610128340896454027005157622847623113701437347102799496529368783817823552507130007760175729867167346625419976512836634958262449013267024267907630630307493929833846796553878391742470417117427877346358597171711458074313418962746134847376175234995158083830344632979434009202546680205510617693904715718371961113904187865721882131872715956710877990534776137910046036174152399060194870860653428756019091990541465263681726205905750241235770396463537966151932939027042481813966531199773293038710149212536045645754027757823141964658789406107694210279264424100271119805035420386012442499298711094885765150848251116768449644146892888747535468758723224275292283347484432285825148518009629195846679758539064777466120405853903347978636047056100479514430489049613037416437146961355581408161847594460709963700696479366465207641371151611622771737872063296846032219012763925057293420827099536891730257805717717509416691611146265378384255962636890578031244500290598242867798189750348456831331469723027851241167957533664930917305244334427286637691445265833949569895457404238191376563981804477561221808067536871179023819018510896974872257925174056367313201036312324704563589399181607499089866513276612803368085204862017311587065169788370261809156801559892873450936762956679975543789212884537418143936827469788405705749772769185888655382206396874074086797621637651016295244004877098121580491282454176440649886971938783293580562083844804597432202244529294083739134526786429149492844763520200572001462243845034765116578699070836569719985816156447978433982543372906623875020012054792832284455223651412073276082775711627829692728839929569064692443247956995330194347431777757979910105507513472928897054579398620423919323688048589990561978655043040283146944787832731490727992489139908495244478916933574235949258844707685478490702271485062606576760151496443935370706549648681230157583787569996720224783270219729512272423953338393928410613229157900802732476408207770425777700362279438755731072337953441164414699611108360810873545185332653277714302992664169667518781333945768074009278833955765457505618012253804589536759844104015065577204443487808144808362306339412651512554763622748491461905185897009584446090931282339096087190107478516444194795035049459642768433320769983118591134299572273144125680133622348398806109330584511405758364671739790553720378676870488925099059762540136271129984561536982842423181795904919374860402866046367346068865688319472231531274397648946312210311861125321701680975859756025025964766107496970277866272740513724251784873284313903605865642594426711318197401543239676500320754361784046360200521431500838548267874756319984112523164151056194165543643088558682020608549358890177926972178336640755218764644642411702914846848620871301668525459093101174772521773555221004516895117403467254079221664070205267737750357635188997591489929532969031473400986694875568414580477655527639826270867838568863360048820974303307066843364780080030320239290345664708542839151629948890094411791109483089187468162963014523224858747405181660683063312746453004660928186236525219262769993180379723998024151807536417609086277865975589853064321395521065071766997164450430996237516040598417135084709447415017859961986225801926025691465086284659921731673714548109956912850551801362266781685688802567249814259959245973454163578796443762477049201753209484878318818069736846266154364033300490451598626862930607178178300080308160909430286558607118449859311986358858685449791916377011511459179755801806799939607296350092379640069146200487555038026174106546114332668691232035785772905103864610539722118327995465278731060709743666356850156555021306206541565218756367175406000440092438084323171865433908470417895148250742012856614716623948223155874063556452031633492191981435904377354157473158698367618031682971275685171671654737500247986698205831793802806811956815381933794090631620953944920487269081867247993782374292718064021802372718841861390920089659133145146848039673379191685675188953201258536980140037172626690508651294309790964294768454385528423039077328743496635460379188125980465572403155339579163742315673343376203605969706317931244050332139846374714974854592071533825340915054225291053964907702733120074296687409049529933776718346963526520605915348858595948761621532051966403591067912813388018704337283050307718097170509010826096891234138275701432688469315258139524146993218677958274652560789992733433084043785498158287539138945620423588369683004429108256683382706886071842287023694033969928415195525413015644568421080672310824231947724352729256350263832531517623337245789589606012514907293460885090210045393177632954763745005738918657979991941364609568592859975325783177968659384576615965450548652071804506444180771591696814412772119047257982377815476262154139724680624103782673198570252081888300149300554563294178522716196312115885215087660139357099983034848823479369675598612801705867946254989466476685403403675540238124831893948624654978843285918622876566562773652215161441917230102833834289161341039181434168484684810015840414362596763331751696436679146213312929572081571143112282251923488617317478692212158804059852217674383942973430289996877205200463504876364433806930761444329474967989195922736179847737953021480981772584115617158518131694438536649024414652851063072606532764938891755193354422849946745042091208749431075120447663271094176587761253089811847573695107001756082726636204094260032264740516752039060402821468573108527680514773426019234190306623120384700230286495704892476970941268480991687560674756742783510979848485045045288480707859450933427867609995576450345940244931977347909172441398754484782632217159931233219775102855416526496760926046274440800474248908002887386549595648085423698612420722156616685209573238022889830913456166214885866529837705252652708611562833706175797257788789195124913148003751585270378303265108246780855547429238966088850159261203761443948663449911698189937111297102957388439646848240027736859319051429318429687527820463413059872677309158520791382814374573009811086349275717666781395730041906044188090300260230927878295955151310988065714387415413843486717674310953331587010867083422232463308942706740407529287700232518934500058945133539872597749785870187522422787815953774982809342065217468617238693518236370770840005836503684001995071630474848694803071079519349317154826396056949268015313663538749728259562687276783103874137839232067309912893834436856430841778099797832199687519488828182331058162271006412144726972064451337953075402347720243474835946996538298728377804151506135075225405453762852921807351032671329600163433501421268338633260047891157182990112806690168688291303649926149004319700766759534672318516857141248491978836076626531529422551629361389553054997663177904617495991584255067065406387962963396444955094149118424042306128105554706540260173531224580862044719311165625447660868222686240488825557978658153589509785028572269462331363466001027201240184107837037271940801812282634222865050060296454716406311754828511509548163122859473615296640331753443518745791379242847297296429943570334912875294396920082224567319727884870356182584522266487655391353147403520818865321092424326827321121179418476924449028713590260478514154934628179512915979100447248870933761306060200387922224898613073487649273432347886992627581411287289517238372688867659424568556025079348900727789502172044109864457726435413327061932791856984749173355899516068328232643693927888163447796543024686786997129501615807238179996013692318124110362701391461916840160767130724088689512028687143771373835036563633976893654537968317438411259345691677499994832364369295775573916601500488121732031306428803188793261596129838309660380816852541543698345114666232966232336695530149517657652569178522362326596933725805567533954944667422053584292000402085663369431488656284035356762565889812836859910003263915290128727651820887618829354256211613895445603148556919323840230736327923848530626853859762944265892379643624740645973371629014584941925971880090479344340200994266196994216988155598684064441391382813725645601724501760999876736867671239176880282944243334135323515579093979682124619020422280476525302442068924418753375297085664164766058652318619869556069048514206054474653297786948012509767676434726478863758844647025502317016078300771082899771596464217834946298418495845469667975873594725505107175165683255366542871211228087805568997916397406803395540316175343191533613825996084472545549091676869075664058585477658937855284181621525265815215145008953919620774054025165172563193310762464204563664192729164039361619890697362665289474271794459428239663686142896672035417438141774063427754052633355886003211426447779085195858213730344422607346056064766716762062047608605161959015622650928039283206554618319541807348735146929677737211819980517547649998263289422425822294626991693458186769408225537219894145033151564985042408372796434733225974062741344214367276067296598563388152907212940353041511808562319801436757083527280807038017364798109984604866889074977931305421471366966468435496409971445377964273164889448487219855523801553293205489891088197681356202995003842454785336783861301006341500363507473166420757788865392419945022338492466091569607918008579180293582744012124640015919190098926410987693503014226218785028110397987737138823409457766367927823416899671633370312426635252983596996849730545383890468549013267959330895946668584991778832272064570414175270268070270165514641364010308572057271710658921474886509084222270249630205592652164793271098402638538517657864522092131170730891549469681693588368673876303792693633930187471565425333171989717542284164597188079585130186428301864567091689331312368563581417685952580909871689193219942277560706379117502913933863703732568701330194325115386915161611628379221894446605609271860246849011967879358773458578456629526681789510686246435632060855538778733628914285962062608638701156275960792485914248448545616784918576603454951829577112656028555462366499716499656536803152177169764630334716238160686447325121885709547242905306703946617297325209120469676461587752631501314192792661559911548928898929807501194286832509118975331473744882636357268671375549709952343983380957508555132593594452993244149388515167139399223174527701440840748756299025087096375722527406464908539815493614375388156504055861643825381320175728897258473844322901268621365249086164216707294156156012235627047580491951874031282435385654625486308178951294399622595213086957379325356854008641363397389980849232955622919780261632946490470720855936169422650158553854524425458413620385005679930011224951523290939008600967539412649172919041993963019111014079050194537247473085318401426749149442193049195212267794084344059112282597504843417160059688387502356689224199241819221796852394033108678212587668741796465270339355213200444037843780427502546005063806017743423046315535047623669618399417286388655719039295192817589360826286633400719883036313565202175229853068104130167315417102948187319079426110515440245644118711888153581890186834713209225194964423608504221007113507323276662652677680330417107597292400753050939090306796366298413512406319031299078896868197590158788348555578129808435469771723535044824605983390657555772022317536777874823995396789894537710174079010254804332057258554452880737226438713905501241811222424963790934867176458666357324457668015358840378517043350660126119851184705902969188433230058441586796074984132885584433984057099623926782815771906119416611137802716669648574514723982063723871659257338791654484953152603211450860661855460243609288450963170963252417482264919109504540376327227173770973726693510744411977559380560645593170500979914833328617907623755011834143309262211675325962274936717495708320059609925226599326258062415839745494794800439343806309192774389910940809729602681955482970313015464882055362953288231153258805386013771348626398312490045590668550664876036656554735552584187090231621203821210109795313576343932890307021842965680091278247468279097607652451664713054238562591810678084264394196595146071116006378469678057105376900343085041678089361098178813384717430582697715657768604783594928379020568362078057525025944043913317543459335840241474938499391261853611893829068472581207131611385272632524432019910174319828714217380660621498751353012209946664443803248115931055911281743769858455662802897587620946986978838103084809277688138288075787621892049503445362718428749802816947749944937338437288684830491711806154391320830123011010565878901108333104989246796057173329882699500141438763760488579313412711808630562582417194841849314956529412913715336637796708819265516057815930527619275570904282711152704207504196873359197482638307071921795110947625791159754266676901810699887127821797243879960688937451273132957713163684495027755945072843007692761674561931729993648255506552673608038201026824620546360242135635477192483089887519812026098549284750678933623420501154996402130892258062056056656844526899583823578984699621270732976711532491629470373290223515067709948598591263863606384302456720138769685160798760545674123131080456247647040106613854772990643102479766576043007367193616399061888768977821277329003248959841020433934088872517821495161255272525951869792485842206030515597498271468973117739679891008427199113425840285531098337863350989140229638256605913770430652974413576004738414411837574172666954502125468789752120399171200725553520305215150205506271653470290886085335657822180645116803982448964753211274830732040263625324950920834128249868894797732943587569611235002472117299411915075439708918110736286906764774517198519724028984010966336234042346421495586903192961580348339857165931521083619790431459613250435128968701307692422075253403581257819239453135917032530526728950403494593518437273355359813611833385941907639730162807684441104047315907257033510137804237866264652446979929381976943973484321182816584037635630460586541282289483144438994044705230207031972039710392959156473893692621056741822762982181245545542051138227617258835242724795473927256485661398954350961047095520391409312894006631235993960045081146253832583334633181276276271659264565579632741102207820380083629424963023923087022665596742699690822700638493370722256359687385736193618485889573012424737693987034151234944467580808693740285204671032701007905884172327025830077267867568109548306545720329497318416168383604070163778079826560029341846473839605953214362799048418120174694298747692245973054511011838634591424659032542033180033638282369996403992370225635286895393642052001992943759442200785290734353216001028595032239440010027605325760044079652235976314091066620857480809054811617834142649010712055577830794201444178989284020128896078986449920915128501249589270590837742760446019417575132512340274092663707064463956591846083915128361954809335791023861894129024559794949410184657007202053527122090152413895813361553166427926462397423976062833520367918136376466543757821191097590184003897018548216923974186325918768931866296673725214874242865919193027375457420802051061397554596078011462759269172718115995750046268361869261752242697640028478727099387931452428970610926478639620317869840763341601453820201698618673562557904612613356589160277590530223080947751597958729530119806698200262958937724781421288218664086520132449501919235027445429214013208442439953455631184133363079984966117768038123177032523675693699892200148832036032484845465097133778598117999000246992266090952879516920467313271006871087597358524803027560260807142235424871375772642273156455896785403922914899747587973415348976681001058957652600422075216328175922301904564550487257364467441356945874181865541154330153241537772391646625703030647370391084328410345510293652515401669546553029692406372580659282656249825572715929312271573731139463309914823880070130235439761673557178083309380186640285177676709984919711227971057273439318481130380879333027985565010863638565450635779635656026461654231991293434780411066354804129606911340204052211890463605503879220355648291468513270347005898174455929970711266308365698183110439507888030836965848660307848283757039907560770215315573845742121744625928508021728579356107913696474486648298138758596441833553205195127904112645589513243089211049535419279256341186974491333626385992183733408660230280361616150039064742021655778996323540405105352954030550159636309223383787691472882935413736445626091035271296379167845597854844712736229630503037078471854105623690201958325865599908620155754518377435572154383593974167752584210979718965359845498467898847137729897411900249074522862443648029605507048709105388149356433890360789520642523869302546591297564259255224179350854594830504770231615286773306353627625319760040368855685161212627813423124889537563344330896429072315622619776491510457864946903159220713330034435079445649620378731339166925680188966210910539604073305381444771896327950772207257884423390793421892706204941888342878801944494158423393503947686217996068944601113909290491388761711645492819869689314378853779100690269805661456365702131607960169954235476609797591058964360429875097978617958129762864539793391029266136464643144266033283143092273981161164467285661960321601062614896125384060291603804886607448964515867648517107984426772249116009129590932105117028220219130413421031762313669206600007206403052217719563167053041333946843725123791156910898102195047540487901612325908288188833870726770520036799594891882959687346167472003854028303833049726634539077716032651958725383135739709101917494603505895672441050065021336219766512033703857259294546593020741671295348083713416986892820635150178007373579032716946237853458890143098378079017803763814753735704547786164031658616221731665643057567969861873769162656805905896192798219000648761797134818420708613928583175044952878299269927085749006872150174712345364773347817319555064333104180471876180741826982490580612968001238962554301643377870674006016162840458540737824950348335405312341318899912719280428003017430834616881474416224931006554384812298445548900842471354295374410837012916103723799114118435719668716642020269222227317895548165498603138480024866123609317111021680889984928469963203472889596270034122844784486659382406418459878781375193195532001412532734324504023957597778323268645277274551144058404317320484087834276975528319523554084465227649540565792775724685091556230166870231248153153692086941880671617395795095744821520492883922186320221946540389127874251623038194636809515220652895821355889889725281282057311326601173670826991315366779785446182503968687422073592278046441190800710011218987616391911486440711467505460488237387535111588620177104743182057537412438225144403080561623452441216282251520199001715855260087960393255221246970136434696168233438832155070328396650610407296392204248727802309408201228993449598201486940905539392220422346752165535231732084106571272632278972195931896971418541972052804234925808263234284748763728028134522270862456403332144690165826068580476527998465519647171892462135859407449556045416979365128898090704489252562043990009156301481690616868789511508557179092155769068028548388384549482185504691119841165308317564688146803185711861365810216083850518687346489419924417622544958246063168427917085540871904695215457223819872095509769539611304537526002580754907642235666707441591000497670429435076239385477053813029062296824480223098054849779585776425689448604658808026834139620200644113536887477416111677642288946238042653909414496168489599493982723572500101875569076925160909419377963035266219215523235393082704390480277638280228252863949496455096297432135852560289998817152032754133648593689924863910492070309217505274538930988208607084545785078034566872856612165281564623731405164255067909526813643007800676185707945933197161996666778564626205320524445372258808295833380596639902104588568145944824569638437783269404392088049294187436437755106812203405181075663877776007308087499974264881201234559846160351569031457492167798975399501666272754275069622766842310328317615255147425121180193593427137979937899003168514645017152589511773518399558065860448998893328550761962665415643560942598134667424434460306134525296076854317029374671679473264467496691942681727857684552762968796518808783245899904524053480494109416917796031017212295677137980758219788577070493931872329005475977880032249843200905815905834452737677949199774055920916665532394657064951677251467388793688548647464487042647536175517822689735562375697619526388471885827681770660397272613710661478274357107607978309982448010883563919288431779128091139019289887726782967317389076830584585981238683018230986361908604005754914780629490317687813766486665986212341186197795254706101522507648529983745039196333502839411792714531740323058664291297975545803006753989885272319158499105201474314401174570154423863497968390806653505748934775518624450392158407135292616350520940930998395947705674406277410332129847493494812687096431464289139093414332086188055330687327726331715108956726590027131947143127340915962496538301332626455214876302812576718050978352944979754407518134918193449529693910579113771170306365562643128122192670232916225566263348511703163842820616863610360976722791237375923847241099101197372040950584305635100217176892369655732717633263688467274768318115900352579069957733968813803114795700415105643792511676755389898802351806929470760244486029184162517472164654047815570727696326746936465996429152418331648137442770232015395141189594170052592559731500234551803787764510455847330656256716677910265436090378995030569633051760263769615152638641197220545828416933627225112234633971945368356658908873315751359646581592501281002356284385501059495068157667273479124453163456906689163980228634478988923591018720096518896716922554446902210221833074412676958344776625339403087075659835007200828593296360608514207016125304374443850413919109954557513856821175043890166617946779248172212199100978141944925566036214541989824498252464662656888365483354393173955447574572812490071538239756377509544270786180201086359671030364831056005916684290459410453304746874696090680949486853261880975358437121361087932377815898820518235804984135518167416773163802156222865904897855877421535998614070003258652718331447461650025701048658470184826887705486702119045761596098761956518655731836954577806699875415978648115221322711951039480760594179700833244456994624013829632576361098953083230157333896202195551882046350469295265598470639737169018750695422260792813703126571108853450133483956735683141339786900611739664102406148636457939917007268237329169283043086980188998681262182724213901148260537055908978185465104444665433552973455020777389614118069106210381595330534686527049497060781536478443564134975202284674236480742721430215817654957050882231802804352729328619397268726410929419189003809132545902731800690131857620844374740281204261271383558115964363805174677096433084689350769236206763921639347368343281394825799104000263934847094107190739013073414283469616892495349785756763745430164835145219825183783495789666669344926993990274394907583777897426246372188788613152641448493453312357421551900710396254741917933502356490488253140056741412645858419632643171858674311496656727305234790326106212644442675213614058690733817673886249692519608939139083600909879957745744127183808805245485766319894427057054720424086727057859487661221208509621387354142404811264424184379847230959966905227576621970435929329276869443403553824193924155764476831972952921308087527731882946670656815911079783142577489252773010333331801916172624329625255202827022717772762064219035464578973783919375449078294749199152715693639880208473187580252888262904666668773321042833606578291135413896275684756121275320253330637813408072958309901516429654241178318285460332040846592324674711364273517838976341897611412737371571264961456643902582383416898853139414945760976235794904100524070830386169874631066915378498989575787647588307217548559552545754073286951074180746518261066906975983386027282024310208705153607374032367570011462385214738607801866781568698865368955486876197130485292057061551346640553129927961521189686929160036581134361420470077044190563013003404943602758666780790179506479017849069191358559949589382812916816699464184984071945432278284948439716776270956846279551687883555661170421721778386485206894505514316874791639758314598802263376905925315966178874535611538461019777262302289329067430267520803449995044965957527697289358387490614090338863793850478791146026635211274338948235537883267162434646849944429093484468351777898231806665705035732295370945180545901892495038302168999753162137809853617464923828699736175111290886124801109416269660462852830207802035771963589707023339150702498766729294289099816604883680448045641370284530196853749762099802646770022408808400886196451326452512932053406728450027550137542541549075225245071550111542463926701665832777039951286674437771751446669079899684533060987350100282747144307795073184152143008063247730342727479513512164034217472325934433074736035267923695298854920398972034803903025394337687710312032171655839854673079419372654921694329844610592214902563917205169937375761377340165412243238449166116612179806152084216458085120602550312452582034072076896843718762242779381898130181148676343625202047041473918247066022082096678706399151860509710147190541976743682730509253296758396874455481891559003847754762175061013732801730556177051191204693521303245434728855507138619159929032218894551648240965668928580401517092456345048394553966410967229018580161504769598038027534436866635447780881352033736831570759315250615151336484489641696349967664054182414164619535794948900425402393289968288691188258349542060726071247004524363776049462419988808123606601029638742024361594198516832466997169017681680694994801329798302745841218673981167715284372661973719521896047976878205442553128839200700232033959835883571770961667711363873120496089382995731750756678083252742589607475704097354071914811264568510355063162230437165505822893693357743261083879485686178378138219749298383201980288177554910532878520785877581345166460511521374746073164415907805873297478564705582316511870358003093516305359952065044822235383229775194966659476281622423329315539030647291545046536555278457063312075042827592743547503753280384459121906015363677139885319153240359594150412567987458607830719914868510800762618288779712147928142824077003850915887013125567754410251707148601576011511988324408298576985844899362814148829327210413909035105146043450389616202353551192278048283915867559715527868925780150413341881882901003358586336717468212942335693982331346792501507075555530155977547156202568150383217092370437848263781855891487721513640482491156077797618097239809512808044588550374244719071740840485933280097653571076658389209433113687974500014626358543713415996763923139745872355560589956888908804548540899841562611399015162610436043788769460299202460005581035862021592580310420956028810278708794787322119773967031749588438419049847995685584374876441781237155654173515329588164096524010837824615452530375591705473074235912748491912117346246898115431868747655581913565216672821907446722378030983723989692840827061444756300723769934368224392168043915965546551695947212422681846399376351880775831443598473390508119593229397428080208307396697655785912059843475395459642773816711503638470622680567018197164103740771419993702909893799343067603701413613804418636440977983625394704928979623705499120733566072911830473295651003005895763266157129796735601063522129038615138667274433503054224629809372451954355487378214351482708458135467582560203447854143564681893176667332217157295123481859149093281851807112178592501939847322392239417171068816511060314633326439292097932337603609667939276217315188948001667301067036545229757543597726138097493999960133175900918680016738698235956957820573217309752126262650281801537517895059978221517191678142637680954538428399900424479968086312973713213311003453810131396195686070430010099033028280108901690641195846823899574243319654553142406467889273199852699643846432564009961655974412670561851222026983816683375642199278802894311881529685989455986252309945520541452835977763868858371897788124833028932678898693732211023315181138029889836129245339575006961092192175738948982444514225752559445877528269401835576765368759801874603970231451825535235391507737528403474328324541933139125733232041297658534538398105163141539961510997796313743854276243292793043616486384078689969696814152428933237857186944163635461816223039155108006790444672582898142809281337338850557242996858945584711138472181167629406869966611966068589764979593320203238201968092230140776318437371617864632105095480664075929767015183374811778909068922158060957414361581175401836723957811211389072237077421619975150247358460862132830025266670257114273843796086232918859428006549686215072318210217062195161943360617238087908440504515377531804555085022551966624165929839966700786919593507839417875916381689118869502506764077899650233418816990126602987362845367255725013317395260323190416149777380898421541639162599882809926451190806675116440501123518394586798390454506054912133966707760399815305587520914774203697869404428226853546693107068062155367479874750283176509793640986766186611695269356093705435544014466071185094103357925116424061396114688615155340887137841333740173159450564488410134040501516607920050026663640159329638509842094262429392563301020590864677500959668185454353753054363824201780355482097026192447076279208363634371741350876451272762471771098912242445674461627891393315937134675673185957779591531695439964648728838779946357289036187277976210866268242337143522020724333731556608186730276137064078440323318392209305229813138170844081997983655744290390417658349420540501515931562432637568550852580196053834211332311570631644573444536838055741708943386245515996854320576177263096326447223716573087780227570455388194574907413875143315635614377949693472229212454286216068779336330426505558188582196043475173795726490180639925481449579403804453875107896154183337199661792011362791203156883776906399222892110252900172150184037598176381821639101180676535024043884081717211899726498773722688963791924054194294875895848887281197326705409611524824737263854854414451684304061796464062465724290011922499622502295898890549362979312554549252474636105504840099482931391453293067312722885145992689463557175733489927297447695083708186740348503276790862498737053000072742359008910576149289588198450871812524863962979267567538688561317669113007540326419053283808776540619525682568139462816122167222617663743321554862173518643881180983046079504665936609347079202870158565103608558031375850275514313644358233209698382615542139474934543278279606270670216792735715441680077498164120405977251666517741430642824541991360484347275010823223261720244614306091346476226325811774422571677206659715557826118099696993582260074552479667680359876586826787824276471020174732461904975461525235761072188612556491407314351180848891598006052752894163126432297481085538241780620415438995219762758327473761495019372985446324900237879774924121647875748012244897618654475897515594099942095582500527898295533260343410696508252760882603730961657283011957370351256244968080017248654564120709336190048897727181312926754004016333329542055104659967374549532112053410826272668596078113353309084358664866608623944961022444207094788927705980618841275765834815556387986266158717293499295469301368799941631416045375042381265677032766162817756370072280306947108074410570889267023391790267904567668899797327715946348804937299936597940442662787599271780317899172867929900105600965462755786026071984649700786044982770334396517424000339749190466938690038116560599225879053229515082842094499144066515703203510177115030203919843238032368059439633330988444542810084068821330309014891262780455686071374583184692138807587889973682060451097884881704290251065211563436305481218813986114641737586915204198930077847753111635444978590990015732792409173536123008998718232387896260688368880534442716264227767259375414249109237183828842047511654352130867284313509871618144302382165283828786406860662125190161967312033853530114671707863709513533643758343602543327749307538510182766178241536670706166880844760920782721066557757953505775713674902757817227610843141904346485023525631536649730538807887485652954342653078941696780783341895601438548296459694534218334448609019718744369846303210890137747450675216256613353586555409230148421938337906341556387747141871236178831687141440852258461230905864310604743498965714819306971566779461166094349978564587840744002777418327298017494255721180605378284925497977002540542983031469582196538419376679413402570184905387798504325408304369792606058182101813840744517475131493218390637000309066432531654608642135381007228109121500354534045086119815392480784715486269148049078685441376791214318311117305777877406682852586019020691739873490410953811884580288567133481904155132599000278943953068543369049811665559230289753485984604561266137471528189546607324272603892628610731668532747910030557952010338792714133138677102965613311823553195906027339845043772647618820654046692534349974823409845825756288981815748617123111328188359457396422277044840594509740312612426116683430324837778180495508228179744155386091533026076051563587617009840855683651057261363334634761047305554975464185149936667027109781019740972823353130573386148275347262492708760513843041033256617243470959723397164192000960287180131181051950785459088475923275217443501508213631748713137023788373865385538937675549755041851127613168545258804924326731706269504468210164334485676900056519135419410119275826633132779361815489219613073910997659604480603705394597565059343010022502351366564281987813240699489273164829373563460963440639812625177263362494182687754430240647036056460741988987331464786193728928092264275205064839522822643434611158214984355987931387465862381044834119500348345072373941501006020256440374088182012194996449196243064672479114498190980656752764577071713374867873104679501792917091187602855635255087544981521596236577045198596318104325276647737887044065641632565300482244705394954215325708349757187450634433406591785251316085467950149221894766923436454683607906589711859327780656757765955708625183020849522469253083926693665204030835189581665870709358952108954701068905815845338292259624186561281952114165509755067215919769749629060058773627515559959481775214543737572637223497044697567452433577413372841912761153955806529450674200053818011578003466876117124694466477302531679096542261433444963782700994299310655525139046995578511835134717169822754877755235465030274498102904121454855017790914752801212583093322697958623866691256231652217864191573233432138669532525147660141201309406125265907814791372143235853600849237748661731029531042757046571452081509099707304626725451216034035440897481557345959220375021725240231605763165016288141762583507666885343118910724311992858302404377472333942190961017349175332137558251936650236026773412761700538474529033640069092805602099333996514362947541495751454802712770934268191429945212861024422752308975053217606932937407769828232557523093747694071021078363464625862116495929928772675445439802901824866259215385428618054740261456943559152680611592782987609512743474515521128094310971501109372853296151011736722336153131495669130910872002586455403561817621104911112387216671746114460320066209974325288860333519918301784467533291923325682422051849867621916651076181986223661142336333201643266478750796490546146180065109389357798675710501155984929185969884704499019495916822333454673757068099995698175553478976911211303550805875949140145731547686672335858027936974741638348726668904738602253640914018836035055310266557306111363577807272125616331108972946581108896116748432433139899158457250017001545896176208315693923236255502976808310676310611525710490668149130461666830143367958379626582558750818669029004334692127535110799300303574927151992644338716320199503941052578017122542299536082653798593346154991281359877027559287853000776757461294916745093604905391388727096451361194708328505744525125150705083258068852503632994127467703099177173332635775513797332956677098508862259897112870934124041588228178618583000854962130358678368013310015384383585624166970991316113052690799644718299962546799808596195423354833586328760207851126964085059730858383597814565306061691450980869239329754793440464738125452645522332892702887664897535192996907918416713176257100459294472303417830273784368183682501606593049819644272878140911135139801447371964710731754758399755994673360944652246079934778535448877138104470161523658730522376599541881180582704228318090214941017152067792164017259957833196215179013895663759779220119448322856764063794431077849694154437952885186465888331225700334910428277108882778197040620556566194524067797746918526005145861713651333474191239717753013353052977613417832484784137264580594592964984587689718866849941999190904549147698494693293419272469033427859680193492277751401281583337083595389456981646751243903781656213071088910168797773309999843581116447406096214375674018049290777708313648016657505745600867412148811065274487920894324148134768208820761909795918961493602747074296670753757406985860227290999637164532090616335587432149478416285792394790756225055022384488476754343906144004237347956253801295498216299584353045389186708766377004475604115680869826096199393238933153614226580522203210611382289841133510163434336119839925350916289993351493591282681031079199251389273162891019987753665267460986240715535508598249738688678906790431650695991602997199926786383970317455293104733881623728608881263852110136252700198945859736440641001045239501826600524525976117930097584843384751082245431102442763064492018794296711473647659101412095707147404487722241564031068276757790429069859641260144988622636452028044993367496506208507640354941092450350714311686714485557051195973127977918306714316794514765139076763208543173859081877293313270180382413066751400668163471904203311748721974498057219542141796811796341000112547352322807606384892742993070296854537240170894396432261099543114325057490797936586910311878303691907956431724774844093707714173798849622048196076193159318467392667160656200666313824999059333752701467658901231576175692671372028392190274406349468762241099110857428443440185325057537958792555460508896171424588036858991438296456080179770295863745286914702267078696713820965490539509590543503438231929006049511488979947184671078052660122062004181923521025494770336753731391358861000239863711501087001671701283806131957494679355694505541337387723154813585697502397409660128153875217425794849834534628317552117551690427938265802275957625357189103265003506561629442786150998386136339352142152846236433282001487286124944721543785904690305198555140942501716094944335740665039962451705798708283326312303709979619730003338218824141247245290095356230234041356576784041475233183950389813435030862512500018987928549792845789448697582670306648534622459788061500651219975721181928210898904516916173884415634720606828274473979679085755008003378463105618966797995860046416937308323100079702937705790211778901588798964511724420997429496717814196963406073460204544125543456574587625026422901116043189147653634111668923417820759581182702439811675282617221610681362405681677721177381541051655420402491457333507980340286641587289900954835866601565980602640926481097510350466542235611421172924717732027813591446620784523070849951691195738975513184662784846964202620609987638996269807143574431960125888618752215613612142843892665272724322040040981887065248248012826647600416425007882270009884112709949719941284119128008888928591973089393900301213032053979971441712005203126127751671733878720363827871640690197631870866801986431870836598351086673984561207702151237068818061177648817436965409596970532026231252982106090109832575992499800371021150722434198969833287412724893721849824195801210501397987103187277327911173557209544245452227304487029623861984797761004850237767535429289351570991844958189686064242113948315827837355142245759522074698716096139238293852990467168928432101857678891688041975040176828940579947286275086906332293852074268470728932359795223206157256707841789992340084847174740979661728460308770824527572095708412749436409604718592208005444696678313219648042550223379758825960348683598118756362104285668667115836296032465239268618573413547300359501470340255697146241178895850739704119283014974202756325405987316168459977404749912935738511708089234624767462960297084206127472098543503116800219931308432572705703100162916897639327289805041562960533833152823976896768412903769269698654778015918006667741121735059008788916862692702122377443597974521156408984477067671361493625974648105000626936957464856456869370900205695577545392431516714805671933955624379529826211194174468759918278948613677017507975185651245688098977381602602198784722486241812551745002901773060809812867412636278430796864428639748092455424218609313258858570820907606084003911470071608511365828343095694586926655253056802093461799597236876831917893559595275936263991968854618308572751291002246851539702566246571611316094729708919320514795616312112584422902410558161137473889543852109335556327662872415064052164319551929313544670018038458142864665662880047470883584339782283674083837510335622888869326588275444843138213825982589649526591136631863912378686002327823070970839773995649154621857196535681315414241499142188807652695382348455920115630172722442332683445070024180133640017725491622369097973083750950089738032634080460106914997783810297746443818344851950786721292201933613999943908179282281417435596240409078505063022478483225059921842080661341291391362624225055886883923323382022033444186295283539512727826745487773733344329885587702125438538402009866118610047019162010126433427429922083023611371838535549010057598479603086213447385709522536559045954842559576081144787530026569591173527381387988257268836642104737001028221933428133668673311829073665754166002750251928920823464330850390956866689741334001765110971543045583175154669175928974887469981916068401034643974830482471204998955987410506483038613479481847225144864894624940808425895665837989062112262156191922435880391597173102478937692446661397568942080987626234436570506555196421814982408162195927233055745127831245592424090191551258625243620292897868076025402678377875014329622081054955733972251245303684061458804312127996504795569342303774964235232959441507941975300688589549292613680782771591607463775291715429169031876685239987832819393853094794964553996119501900946430025556417932547985770376288553123962458009937100810865259679685021669311051029857215115784584447540955032894950119600490652170508531617246451024637208490559814234424700782709327027219807790324777064533833979028309957386996184816682525794513512334392751333308208656314683921478490383450396545458450306727689274258522343013859832323202399473534362911497792083801290756922083234039335461597639409385237980352674205087106278714351080365367038045288301859175394010983867887352228933910351901967538641733832646894046591076910621052059903237948368021080126905724013343937137445179078260642736846618245593207429370437948713804111015304124320973455847941451223829369643193173360804196592895846498807884575344822303558252059908197032549898021781699434416920472951807398036592007610338159078813807887422919226930634737859174446520722215388047829175498415256945461587620562219982279560364969953958391667806319945026384981333308559851900758119224418476133124604603585805477465554257727368862537991293653875765172345972143127888141801541827559829615994560705335383017969318749294239797491465494952137798174669899982917547739164036880575808736537649429017370692254236175731842056112125282607968938572426109430532211258508090188444996197407729222633738746508437373863771012904145221779565269065534035449064073121198478537586239974470968937940929273422098750918626549831981157486462889721371729052022451561202024895029007799109207870898317214663641168073276208233903858116960372954396458543222603527493580443716039756430534440547450579722890889624724848411461259955028869786503852896767175035400199799775554430193093321748894882134545623165627257023047870170637444351931960685322866966587460461558701603787523943594366630416629641657967631709623181808709393120047137053167262933101985261105533748723222225418262590094405094839436449805781480005701020052482942937854644420400438434880317299976264933336650428537706544523436778998887445751425146195101837205573524579172750208192861448679265149618221942220901126923818255917765766590054648689201030265069008299435690246402853993549138193847936442660163557850176489302949694502822775051973717457111536586744445841751322163190653630963043539287149184139795701623037670367368330910617648605171892029004344518458456043297845252478572310659792582172672403930199047282696768912731918556985086332045187291128654579142710815738849846276865608529369466964569374320187191707526242107636097584079252610716953604317964642943300458464530142486717860408269887966553463655828251178945571608728048434863387353451319501014271049805805105170165014569207460193187339862367376612028084266588174799419144448646660417430148349615962901061380696115992082667824360445258253746942321612629847823150038912738406609369095652778938194385599389210059484888970428250927988595080555057350970824985961611726984985171015067174072554409393580351020695094269157076571708558031043071104055810244977105454938153883520274177907637548230417016480047334855273806112737112143873207123511896073495185082039912144906259525932714435131965924855576056443378285614286385054294439999056683158216108787153627063387889529916401144522026678525650547148364460964678044016276705406953173389349390790379626154385394071924022614300536251852551946436086767807762185792956006421098439271247404511368637105960574318387098760428995013581705127234608504146459646168881637737000473756929866113170422291421041602731284065800850975018975750434207182512758643104205853514146545648835283292897412266633477762195805757397590826073797314929621688399324568053368235124391274216170035361317625540204032329407531629942151832024942058417359139729961625301644066658331218155325161289290943996603839652463538192718941986914996466957512543725013968892758024323733785729456640090549060339503207412990753186951821202515348377772218882126740031164741859454237908016896698930819887941955266448914010723727402564947724567596968203515111647226867229007292511226533623858760946414525824295154019468986575748273573883273248050046112055206228878357713373881879380222417353925929422652802593939544726282178155526349628197647968973017238837529401376882840071565771744801521836625404238165514663135613115096489710873979170043695017022608213150776163537351143063191970622967769231181238603958767247151460995425423496927410974749462342112581507093929647204303335723728358621385506117949645735791370377224968322614977232470738549747084461627641090313960810706825991476427887992631133903997697652724085285530014770067252444719122097511166176888284886319833198044711037798704943864686316377618285922447576329762157816639894509046532306367886638597362011302057340461463282514303364509106038604704104979144860843984369453038201001871605223596084812407067886933780412142078794111898692461168284440730316255345892827951492843369172151635424624295343699045952512003723818242332175192754274676322160377344786725769162246369050237500745035612631174994812665181149694359525849413982985449750502467894777655783464794946031984825660113088485503528454124131746570046556264636427666974132928531667419900580097796504728800907251489557287234689400240421812599019738276334608449743403394091612780565763449261491265913691880695574521274848197120084937149106374466235959606548209361909761785441640123646063762928519081673510895918875403309685781185415902124785040729399218730663288999108075340464672442122882047874341952427673816765335706348808167855401264298509826744991484000951624319492916533473605999153762649899591474626768978780441898352103831337200833143773462926046194152459635106000419809057230762921997521424852221632487858873911728665946467001113735457223279809555915320142813144148079503962783043073808308062544874734631043823344277436648007252969808729854461768143725780948322116243204604786983273344079156370481631547558392084461660650373764284961975721175398946368986633387036599095005522012197266344307842058355214575691972114954271065634195996747684237497181832820053747222678837794279872254148184584126096464275394500864236553532524895785383134554794773058403107653026721426871086289692140288408866796376289076167586860141269593715467557455775405320803624335787193996567203876668877528432252749302275227930930628769473996228548583796146658311917823577722004634868464078096770453716118152645687579746416106870052260673917349537319541049830591891492615316851355233243999139409406133837330946971885504711406630965126473145506429762849994134711813235835271163691677610572426563777660376760197387693698232256412998496622244501456005570612021828586753170886893471978627677623587868851677715552691078552652657984899768918447637866194390129509814161824401460378075682278638367736129781801658488985766689535876919396936170463644166800243840463829787153296215598801635239320558467029735145674026411294337625910332265973939950981741657738347713000390489356037562696310541291928715867101591863144974914632731258292102608874662998674951663774135017798551539878650065794800565937651444305506743766851708807495681789957909679508977495383892342103315272990676304463988024403127739302224561799378840071395890663306168461104586530548345658416857992046948032575364236421135321990489826327067984829329705205312757417031910697975140208448615634313515965745057092839300710851106379724507635071056065114631643643323549312549616559274636045959429806556958924302847517602866159746007126548432824230273824270530401365471896682334294269442030323932073303326900456308564571783136286225626856376848108025944729667077504085748416524056353277144563237165530319767825754802893534251917091351064959696010814614000496118662420005125433081785463439643227456260189622163387206915735747074788248765995007217240284708833467612640228379662918565552284554486399290713758104490801780822816699251257360155165751666053944354584857994050719695855702307884199627972344277500018888715344946496060655691305531825777042877843863122162357437358573756337284009587575395924074623677807432326708154282627610569991899873703377783159147790297161746029267051071436572364075903185352729856975754442246267828834786615397319565102916521683362828582872770692849458247940161276771938323433412963563358107024263104281491816429160486854059780129487002138540096170031356839499942033195701430495005582459163463743057400280434733027645482539613363313961773966465515551891210408987651979487816986380056660923588995705189844392773824162991382257810857149365040745756273427137028028223709101826374423027188487595944504098364581925706014510802747942062415469640038471170810463901549769878545937195012255746967049060023779828890190736267033935256584290370579011517384973326354284038958908650103833721177775297353386637231693147221122325366542054241149356737035115042010090328104981937568567235110745765399343916437867625321598752875699781120470992363377720968562023743242419353243699633929575229620636839088360933992903063433530326685847683107861160930066267772293818152756691265412827034374989044965797707059207576176038997189334863945939483924897868645676443838437259553600355747970928815797512681308045027495481082128124886267778312585069027560716912527980951570921399268671676545810073468233485294769852355260754710166231364438115787915132368819866492618857760224365377450933748106008522789857099936672082333509726821245486081020203551013774913139999202782595955520508965647146106038162818985647375905727488389569746945639190841128504162880145559669585038371298428239996411774812045983021559304974122210449252760986904969564247224703418078117677114229277830796243755230313213602356569611970014562041607923326125862901551013125139839335481293877078938502764137249857763381153177187550676994132572374582113569626775791483298323337581221061602860412214102286151142216221180723536480795893551710322654154583164322629985100984989771897649413930751272912308848014075578918152596274982095493609511211128250261009771091748331397703801626336626797519826682056932454215368703739523182048919312497804027013365052311445624016329154374463531932633289196913282439743451636304696703962234840152210638896019477180843815570524476186781166458518536774416012420173637953935263249638104440299161042026665756819654136232340720771913980913960290064555049056816533860911379482143174030199819542549214269126029005124685952643163162382864968195109500082933278467801209185688339908526372599969645774390297266207351448601918211418339943640802937201164324167801088007283882385100952298093101883001969113163238764112599188851143560912076335397351356714150097381761247022353151859005174947321670573242783858554557466450495120174831711332578267616046164403896109481367751330144086382305074160360755000354544756947230320137751393872996623519474059503271639754781695094821021921036466599478555848098122522363376176248493454277028925639790046213271406904275145622002140205523660243888860452597212529686930842731801816744360009155937675517710159969313566590598931367605744170901445497471514903994362913266803735976415784432676733504608492993225357361699741992003575071230239418990558019663655952469302533738528705100917389107404202083855820243048577970068739208547364745566390124149283497863409252667586875711499607482234498535599972495579917963023461717157701759270076189086680915436477424209780678043716956645832104561645257407523654293931300528214702119469203503059832277395408609853195752241121709971967241883137548846594111264882376212653774284173643442956473721330729364947829491292370775223999060500052083594571774178916308106366890542432447195160251068428512995718588520961536817187697030098218996161008471236544092584811017016232193024802867089933148625491242117566984576512440890822356099069188958910563261812538216288744324698911898825972302851566980354330658303911256544206722763692016179406391392716176778159645702169956608407116431183777583225244272279375899496214324365160314821894930219072253650530499382990483931977663614358010795543497311874306398383079325437853531522808829332220416122399754692476572455783969300314159828604304639420806289147830794484789681682606460649020937688669508418409532706379850799170216859220359137793825658353529127536232544436744512777198874530288720002432304666360828455842715221745611181129053978063688641794784170395640058150429754397896626545745697996882681190991654025547941378644779933234464127253506258438607095399686611270509272928303760432330123019059747612725466112469239475975078984342768508449202367159160281509691169916973753629460336730976021644858354737424153900782027592083037782417445939881522955099311813624644071858236597574576367265710137871823701614705364749097824945615571913718358645292802310445071372784397707686186525484356877571264303592027729996324840465522259305990661075631768966351820872145397751317482896244325831508708397812796604498313639332894935781670934812446407350275122238004115600504360046453292201547880800369952086970471167403191781105369399084330754007925178472170188452403816612700858062830464341513373278671168796570413489596048139653076518885677255732935773692235980845412965619812073718347079078895237316352189457205351044749423260298839107213649507743479434150419562338025117840155997702414942399605283033055047096261856336416735276252368161594100683654881312202888283676580158869347753042428798966546139849059328607308117291882526414970515130468443096701074294296619367172568312795693796439153937228146384165336055570735557430088963646118990090515969165802728287815976252575725217102674013625426946376236586454852298820238394069688334734876594640422210548355231747741416031594819033648303211598239092230071173510474563704292978929150836415163558969427000968517599149245972829552191390335052300000477401519740782970818379248359862484173196416612615527822028576162093183317585548677663735219038216903906422830176354920271917663735463910181789586983670828705649770500677797291063374595428830933812098356721381975837395069910798575422981045568118919286825135417302672932414880356986856311563733354625394616809995803618971165657919480611007468180702064519986627381602639973562374240729046902471582821264803701262537867378953830793733575511493357316584852791945943508068335176852134999192100319489320065505074255320716833562505667439081406483175733131222697185620193786294215022662334513847902712617487406020004658716759807207522047736978089552427285966207079074748067980455743355515672778870513959115461897327255715815496247000038227097099775441040297840269711589673038490668704650073501994009562485784244934560568063382364573679809575401893032238460765432284600322684582035189645932036723248527577900287345730840493474622145335961357246511243032482656192695828862472966180422686766960370516142479942672936206981752422827810839381428721511364411809256108074123606726687554572772937751104538079847564989629636680529971831251716436190392805164215462567529919118815995908249767831912032459513734094273370267104074257067172632188255181408984020369593719223525084759759450961664330935427720640618669366146029359182825737587555470856975408052732625766670013582191650590314650799693231478118523169326569260114216401360775763833628661737832351240224812406798518574708284495610914949893001060096793530038649037371822140568421649618714628358240006371807466783015719687356535203049978389564104620546308620469148922984465175088814680554420518864453679314383480989983308625464552805424375725405003415657445716877172591175738711388026783277184456534021988729050078004137466659550333864007782299201945933133698881780812445487318564000550270915505688713661937197787090927398371289549578359561996522379816316749345794163465757332983240939240510906863231188578050303263644418306759004163278751373224913144644461727595451866892304451966161842021869863177696286923325056995336221935566696203990163732784105373164376862546395672934226680919705756500685021950107169299422813031004048735934780183436326381684043553395886896060530309861348349916870921487400980270731516319742667335701060796486416357892376189993929703516033754763415198400499398886939885563356673602469343533049815936034592098487246562615691165928064001401393936715640825531208694016454654204775211277706689348058345351743219709679950386461264873327340700815548839516927800115405022463871065863135676648594429098195651077614821265907552452054721653759445249420720164836578335280322891208397096070207908448713639834657266993277275938344619351516573848283921087588702324036258752977034981712679233241193381108146387066009677518319210267285823996329762236753872493792815338089762702768072245642668435223214558341297613013976315732671405758061761892493719724739184487734456749398747386264361950813402479667657409481770806858335293138306553999615598468841934746815580262051754366572100795049615721005163802760747958668417565415117605603773469398840186476019078742109391106513489616082624238722805590262033380477348354292785133901463788519108995927232480293196567817473413757700575629241848411455466747862830593391764461194897224314127790808794015201526898792739428723463562267876497414106811677170903518936935716368811808323336461543757844844239369690067580964026293738298927349275470956244341376430608026014482230226997240040116859009737769407071638293855641109183477912828300963944151361072561089297853383884083279484325182978014909098748020353873899023845798292507877074484980505369022586805582462761074205744948746793082645619253040591644958603447845695872213009081242691324429673560216966219050760180565956770995110872247534609156140652213226821108484225239335107246730162065118007451344261798483389536660795271827482987417912896215417206170093533589604959557380779323199822051022273310701496208874736296186293496387280544319785158273113690598957465187575688703193539995470609179079594651612289243003264112920295356779131009629196935989329423209740538451014951257518527438749893679326071407408600749630521027497394537586954401138124362544916475934967976952801915918027348276993909032810239106302395040706308955512232716878991160236915841742263734417041988273313737266922549283023367537191681495066544334127299334722363877960796043026733868333757016867513610332861341085822792001239580004745636908976928980714373866029788626261586694477411031166177419799727244155352126938117771616066117664539437290965065811615114982829235728690976869762493413217896007204876720845727241216776717366262789280170528529171638088464765891042970218969769276459926517939002950558182618643882691261578278692121826888539234468050871937182447582179491200074704337683708819063892086585321757114945169328537390808252808005079024258823161389373873370087058058312421442261973063797244588902070628520353594145882444360640252407033235460367906731341490528180543236515459319530710944020928844465916081320240475062073789047045443089719857207589977068454146405242917036171423011784553333029278023339717598214161663347539094742086952062909514082396031482627059335671798861142188899332648717696782470547456225679265041590067810752095390900479574831189623932714156619432590598040784581499901427606518283338489440967089924656286882210681275644217932325010226261810266426205174134555829676516005012922199523377077460523608197620553749104266018227036740759227291467467674053637983061447392115723277401515318128747989937961102254306160966619938442554681511684358633005174834179156124263512703513432242100567326465241026892978478386803839460243432284176837736658958899639125267608355937572129993778255560653275828850777739370925354664938716517234265202351592654991444654951603124052816434587483474012163119951153919589613531687940736174305096453623014486467907536274835244265825596457310749755441732831120137084983389726898025249842421700168537371824235063284769093112436091255845956990185374996126818388735028915248087668542483030226550811002816080750500145421810521902886123334912211407626884018979547065096616109040121270741406522032269187354130524302090879649535312998654868558758683237203689340501325562069155631847148686863418627848589729735421500899644039088635954288682682710866895453999453728713475539156739680400994556446460877047629705396560215803021254655814270287643360826325653938352003389987659637458760312808367219748005574100488258056018736598464717010288843583394443272330527739750314703901442415139317507785849929544200053103751699294397921868480255743717278832326644362634647882661195844711357257809524760766681865438156852629702344415812588041896030434247973824691842497463650792908538232201787429713529790406905421834440793658084568417111993855251765576961016437542192671232361199810145457024350652339140102191175538324259597642583391926012737284978055376251000778552431074727239999948454185057275175118507947686440421944381194339464166371677106044673043907350950605023203843855743223465261962514028923387220096258854785325392616312347227624200514035910066298126679096527895138152972749697504565534817433036539568936680043590815669962453184644761092277949481957721495746438155778512099901687011420686051416420362869852704769689621816311001890893620082885688106174555313971971810418871371275517763619587405207729659266490014085300916506229128528820396945313887587829895548355119783039070667901477952693973206382117657212934864645789104096569980408653434310735262814179181023668627802270697557371472343606407178745799756254692199413540995632604180542999421036215405770841948460614997396930462311009304522807136979843021263948519041964189103957027886209623719977768856162440396246398176701897932445646520655660672158912834371750814657674046171133115573781945732855683857182411177329954471483859156325804071914916771347911277618044394993582436411349324960829173293116422469104519699550898148079179715668596664285974711327175927281188233759289718037104401600653645489655589150870923297661543692778138348769584387381823335465202424575422433601461426936749427108397204553672792549366680592839228380126585052450855146845887607055989959609856129519104084549211338411509559300166006905621687444852564039898921082960935238087621532496017350022029151543123041975051756046806721076840451171799441111391722113220434349677730812761645711486477918543371570074001590384488352603666341862772948790848677724567682431676756880875840331401931022803037112549478442013425562130836704881631109243640364462580478985414556734272317612430707905741510382088526938150531828548497121398326680633596055739388759218477849405301758645884954585226174747134188955999252062916498043576889350309697172991479199182084965181773879595924085427576291988583285756209459233568518976863712558045998311972128299617223148141593136328191839757676278443882334614109029467765769329256218444574763433628603456307433068430591266090424708169069254985431179611418659067584217413247887683556386328494651883007469241718252456436933480723201755859528829331843784374971244459071998753716583248597764326581387521092064829683542364052632212970019233528935163364227979911347074955203053018848515149530556746500056043135676682420954935728356099601562977126587081537356317511932895393248494605930160455871050388614484713024548490137570986317979903859182148256709118767618876642025610218786399907661934713938523657890823547605671900016285795583537581392140455307971900287671313327450816267070415641678465079280995502351350867651510854799431850316044007802858774055385978371219512936913492887655874157071718602625024706694470748592140972221431366431949205024639208916141233812942654130402368070855957879694313849059503843047612143785755978504514266791196618814189060694677977472208556539266607558533466871438454854511476918908098598313443970995030636701852321516205724202606248982025224156388412940522145352878315899507641202027979318955466580980011226391741121348973953031487371328602941900977137579173368213510893596662719042733270882544920245643045656709786474489737241149545084415252656377297846265255267188010093852052583357404282937980714000110053886170644640218768919703893999626956676164111501855642297109535404813408195914613100361198034131020965804191981333799370353622488871099516167681323476201722250033607805115885829400110775566007870151777984979144371304833437006042196197811037644600486498947503341173426656801426113016332972515514680319383971844526750304411897614829711229531895224757051601388361815416943372743199085722965448352222412882206330821965119814407227088910388627557296508051505534996676334199899563925921767543869688006683390670076738901122605652525771546927196364656637035805430338377813249545276733136515864985544259546069489631588127306691473738747252726835140890543941784695274817031812509563407419151303954639299646962570136313560807850281409531218247795525017601276576939302414304613856767309509944576210706799785488741839072145222014079604129612145331238099862246528852762441601878691480795282469174893764535775733884028955566643360582320627730739745663446996976093547318975057169532739846293243967943843401926195574577637483670796605453573374016177909973579524777109539259283030000658098960321456150208856206887469645175991277491316367469387794381793460704704282458420973914753568644187525875297182502407255437282890794562214890321192323507342713313265867265580793897992129209469317809494531116038191026466804143183915573321268828367527112389327707907906411580053298872245430494169201201293409445877162941772052761771129095653465059092110603451488707602717103572261943069647363160226956196907186509403912674012962281112082449869326151664188482223711075280754153339625893612695625506968389304673143263158213043099718096319877186622432893509149433276999304764338977551546559709366302711815355325776333413287843217681318283827224432760611377467735434952241314868711224687655782333998354154905777177719464093851988468913636035110542125756813244546991214656326761194526500145971664254424050749690224324618596336504838401518217953132154431221084973095347599879608943965154124501402120594443474785744712422904268213334181614868046030151426333605641639685914916381509686460451782694383622587953127192382782308501752210228872048491180542642734672894638934048127148665236488351396743617349462483654678542821471454573580751847938378889851621032089183945222625139327939680652654775809244899314289578411106380455678981541920356016906364054165056115302312289124245019967061070275605975454643747270248163015031810854480663947485574382961688519818065990934392100214633513604565474873392349222628912980129849065436771125086863845578434840181411094912783023176250143556188453577466736065237216301273028069602655795513522970741692905132346541435541822762602152991514527478627738325751503291249587605577191541554868050889723390765776199944605943232939083580425469343620359735299408066466579372486852151955418431847356774895764416272880479554860027756230858773388428966128927407858805021706916584386592843739593985176050512906217798846030057494651137961351578531446564218144335666995112504524121488335138885533990403309394445873244449282396670632784462737654497866649725318269932621172496777781720923408382151782564112472286441699338945292515930295900531064761350848742228161693178001351291059202738278919970500790268741937044442200940313241418639199674644097771199180791034667694552173684840026739346802702156545171970282520852539161013476026731524223457463784850664035031880535641035878218061371720141421862530160430543620617559399636329864037637639866103738077477576098281161199182810851908750220738060188297904463518824033851337509768760111327755415493033446131897109106366634560485053106259117421905086825709290542369061592284192898111867952074002880082665340715878769380985945987774035124691320761518135046740698961125773307115010954508166795517782437839441315189915728279167158771320365708333582741948988258274185605635852427801427374245014091931156398727902587048978654442565283990265611977101003367811225585650405905954228613000305155104139749860445450530746535376670631195203903659078936599351655417165949770906149207112595741482290393013796862737882285958106063588605248250311057488538931838346243648594755629172410813693207381867635877999085640350301159302360317809488362447125064053684423162564805113760341690284725600192261855323073134463685736850252005029121995944143493341961931745394797626917502704340781628465637017069495304516652840943301874909510205283521868570463855366517167000068888571305465032159385138688610992489239572744542590441414561640780113096237635864126512514382035221192182681109621750792363722885150733843259571432844008222566377862329514322031564867822393782815395265835152882807697013566223977195932988345974099745773586546363323857215481586954050148149830549514703502419839572371645757139772512279600360408109135378250055750665388534760472909978724640354665417708440854507652335859233311086031336719182301045913738659805255853931749294970417044891420423357206514817984404740988290484727993792013618700601498918574990803389482948335280314531417589177810943900846082045060656769674673445961749185187695898625332310155705327180497166054929028621241152685554406986093749511781048505036030211606529568426344606381286895511408846614309776240154246267532832890982903199975139278910726057786115152186119623957279011693113361706331595750997608461044014219291957657800453654526063480740441255862197275253494641721879203188625533942003514173545480762271723137215138587378619310733708820260999081232311567779935467671241135320662165162853533803627512268261977657775377741017474685508598325321480044569758735547781983077545294870214564240501496977758329723208596940026012007249902845859993049452117256767032772120669343224703848290851141165171635217467046428825828548168022082748807722833743100772601503262600291599537094442292593056313510738135547867155046983248115956692090186514694482507478760895346951534775553663110675158114321526964885986564778429867727492694130218184548107916756298612833217596929501788895868796209637410374672437424935611925023453802829536452099472017359105728834559309102718101300699650776403725504524827968562450721436634971765440548890372202947906265568143221873378020084101123767327788292134030553357309610367306376947439777018937737880170554572323264301190904930300939317875941519624915253565355605322552463794182842585356524965993730071053522523652407845094749630287687932036563006805388909339155000905557774001522931853726729964662750214829586647461099136920447115478275898982526139492186700032985977337752301745123553938492563260690086984920041325249295727384067192527185168837286428956077886259804119546439330984617585274515246832589434755108681195751160433839110244562918939789007141199844039516141681884118915110503079845248125136471783326821345720312137003747134446470662044423969079134450918139888984796193378555253169909229447981274507317538863260114759627025306890340776099205970119445118793670538076286810581996040617675072620499979722245699605343349589473741751237878734519977657419757428200353004946112815585048396362764072698899808947551769301022603848934226357242769614398870904061093105536665822402808309100206118567483673396290240901087350975483496437976710988773575878914305147366995518410159484797527606752116331964896654083762792264665484366876025864128096503157897477075225202744716155617428527933275917970257031613772277622029938585178087415967042736926841906972249367057861069099820211409116603900858597129654677498330152970234552821132162818260769481534472771205465631287638416275734710777855969288794017571644573675628232621914498424183601570012031217313279050931614285525205092784345854609529769119754240274581118893380103277976890786621680082010039344810110664908848928227630223984000282527956057264056677471146392993208877756760548122758001044836448535891907815929430586960151703509173194774940031025525268183605362288427118565598962269031487785675755352552646074983622968446785463368349234625549344749840845273069631973495529824998442824428608992849055771303405133088643910692389091506638137418984664204957774244532560685034667588887487159810495000765306382600195131730597577594504118088796006110324200318000677526209284482461518908042715797620703818645686140451541094173831811134524607369632432529668017214274582421809817098216371224858126962480166150117995805583501914698944516466895764481775812853386106591845105099023792515413498906153605719983446367704588603021592484473705976542171357476561452229887819590821469253413406262850424371546744647608247956737349674660999811761844195144666830753795331499077259612187485893479732488313168909794326790256888432854024915494536384744834188960001949388325805462976420028341867800601367116723558360335876076978315025021607821917957647065926926066408824402245734921609835279121873436884389011369880166122205325821406461438026196677019229936713833041511290431307092648799549378050979869758896358338783362928236229533340937730399541654952170072193579993876001426778322098689137062721601180863742876294105913328147219562309380671931199249906269462234726520653054218328715273412264748884584862718638808814340054227771392556086882046837946510498089639485065487590111854090418756773898855083702703776644778268759235898517049413609082210817010188815807030573849193100042677844893644248233692476227994446607999904514825095985696902237320855831277540959608083680214982543945610668653046678642190347610437406955322975981344999468253815832184858790740511132047629291582294174789698544004535433195171293145110699327501782624575826995700657920509198767843754197999298343180904732951839297819372306206802632230595706059875666453035363920860162128735173681778130320076200166548591569944002868183502316617403123656748682955623375535725246408649572791117218298417094650045260446095794223274249680663947956024537459760288564482781605464669910990623408209339833376753051324765488230325499674727510482413270342124297913264928831719304049642136911797728948919816430964164487252967710333961488671051583826554669097983111034966228907917209608168345812717645212217932878553910446597955074731344708452270935559132244512788479567411191907316308305091117472198308995337024432194025174037514009642027669223603010321913561641308433102551032247880537194884840719107991498812261789554533976655921650727860741970349510593070834027395720070582202530524648144889516162322079212808094710256924858178164272108871392288643349996822380744630818706981484458310077530670388171544777415585112605061007649758902925986661946738465663562217819168113701090197810061389124036650876152661074035626147542790010115284716575991600700043707481460745365259014403179372962187442081594091566487447520652091426845923131595953519878095763525725356931481836392231084601931534972645432576822991256266474742921553790305391715297966286579741930849450730368029402697920219668152501369708499520963740396383756498387148511408587418983773523109559119281597460367035000181318697438077955604664463694091685721487518969460435429192604518465169013950605131707250646147250017678033121798779018782852399614760514063024674017027652465165864989857632972765434780065744408539329178524913816168118875764353501691149125736528703747042792911220290987767264575840552865322082489381740379769668212545206818199968593619339623212892947446509761347138534885981324589122293359867309052845809963844109876826675705359488151572551304929607967924205657438078046693640495481784006021470525236280558283764478947684878935162327468144344164030749912740432923829947239415107281598610712485684064214770376054962256750152097808775025862926850003918563481472782271711440526906773562075859199560392675090826312452368556289615660815222458229540821610022339842831553028636227342308729618480587775429715108131062475270377934937309324705535299316204605736839977445635694741847512138846302050612911333698253902721672176607408398601816120839681512510312658909807672279558764591348909253493463078512268783166193904710409883679926253904039806622344386899084119278845344522740378018457343463839963280501513264759705160595947352019582680350034508108660247080893532788216914942132655636290969157868296094926094878826419036354248891132167643186575973983234073474312023710840345653956862886196494730460726931289900067138601517924487995873750147079596856260577106169196736134080520921725048772640951525306810509648921119393368484043318910770299166977306780010762393197648920970975126931342699331392926039403765383210386535781184851175732585279713990512409095721658406855704643019599593785657094727309551744848872925718794066605527024429666156379993328387807294331629753472983586079320491757031840949221567023087037377804889870776355495336340051010774123834055784905842755848251234230433670665381963222773147361773330989856711612264465513894357497969121627617404385899586361366077072028237044796287411209543339254567420138223606112764821314681068244614232113864567387468580972623888105964518722071582869375294116981973336250066816869842110241976600829875202051786271577183402189593716072599413694184290126892698788198039045816775135837691520250163037711205706234753863652779390700836393863473833665129887930202028518828567018867933078262762474090011169896515631844256795780087657729400506394029056931022357128993759932155987791403470463286119497643413558549011130398655917393162908805038169974909955727788900850779216126106698381410696094065076714344637603358621991855294198954773924104996663864559190695478205353775905670534394608686119688581033761722911568764964808965546208155492590711622320526390394387295318271401187428422884270451737465417096828361511067982046472772567525083229144316004530028315276561799396335925709456185181099814635697835114429700765610110507974862980375818346245442939877082385472241017166854036644074624347637733338092747268727271620477914824510572580803808855828964945365299628108144529320536252896422867831164637455296683515860375612599351112847114831936173086040570447139234684814821374251440183954942130247325528413025017742331691260914249807359134257673419089698526708051349848481431279965359876899664423373148446674707452663333792772631857587938292902210230591787327313700290941891620694737820532692243630818993027433011460790960439816627676044585883844865595371331943636553304014586687495854952827570687719079173337384507840447915540461337962259030821545502406206137614559803548956264879512700696537068112829619443733162509305583535449746220942924664703226091417105592429802695349905628402595627367637703963407233000324178769144734371155726882293122357014585752961445276933078000349521438705241687876918461213017358986754823433409554095236541452225476491782202599752328233427524500184098708209608449094267012375347919548201793122177097409601746799272048313301530994995018942676083512077508476856870302284164914691606765187740750924775586230118978641613129989712673015067902304361360820603477504796346541767049076695692384485145295104553703117450712105894999071987277302367887481947012817378673677829857079161037109931460132862630518825561368714401083773425936428448597951762551612015723084585565432374988963300336927790219944134385696709195410078494503091975592192945189501854552531030506573717123293507901671173819747670651650380591207267329574005611478052420663807956021743279062612802121195001934470718212927508243245513496866501467808680167234688050065356749199002704486325887962769290782940864555771239400271360256288758790774326809878656090040612129499651375608657211993737750514621649473017018944494413219465139575276648187903479728729102726890818755078461818724503290101997100733204916453740071057372658973657614458426450044915083586639710209236563662120718978736175580338820011224946515582261131165882229743573663131368856704423125682139072637065199112069608747916380548173015788555403944124109232044140209162273771007089790300031729087034531531707162544972546493143207670048014827338068007389850887920437805094551894355535585852372273976107107746233798236836731483388081504982120777756407950184486458030493567162310300550618233293030408547637776330510073942886214773934988603457563066836170873263506524234740312385476292771313992817379582910394131018247062838699835227283778379582255619547809339599038365019063698445688226297861943042655877890452360472418822524380220381687435426453119201623734274454698683900883198852219681406254585921682433059169526864794957264615193622210129093627524803690599562485194696393665023276082575774242451068844843104950344059872644159588962721658929035160607870160563631341996346681055214478504055028778610374365791468637120580549149870095384716905803999525947221351702293933545282258069851846817249807885833504128294766357762595053847753151762184304271925165957762308172886150744187392668191431324245376729304309713406604893288121182320246238569818422512580455861335373463452058070697686984069471545454546292457530438421601997816863731011813297717408823656280332374004531763327940828142243198921173423369574283094642522322436902829851991712844250905639571267676262116918074201465564761155495151244266479066556768267810282498337478334921693018489534463475531288749412232446371224237299321671183793016314943321138709694440779462456479484247214600459988069478501817356423839768129498057093243723935105055804306375368898715593930404123991250671346243648783655885454325620879878087681072240618500805285413788416504816230473072764397096502589863700478511896252123472257004919748610939882866795276397924888692226945338295645321239797987681952994857545756313190802813816661833010961791960964715667602060149893027889799397406741963830230140330109091740118312024682755496780058673115405619486498791689702473736226399961292572749845721746080974060554115183294468070127267117333646836669330313591543334548598519756862879794973686341399371839862519986796246229390568869140041856513606448140634825355797738935973560585735408511871856082045422875606275676850833725716266182969710193608582035554572553198232093877660853829528618426334034268658981563878164709033267748546129215726260555553173149319717084116902891664501866576168797210584093307585463983356747350394466874969258245382743685302944949625715352471360156552686952525598243714426447864456879465137503654365947539960430065957551914863937339354169666532260517253202152858999101129555557484929232903908146414795782820189567144156382978729231799430259702451556374855586973705474978865777468390028146517207312354477219793599762945090534748920573758714211416607665859784043614378992679989562791037607596287742653983342904015947702232344459024698170191440647397748268734282671623381200167659537219096590122915408287626654140904494404972970411003826310364733694063462449886760250982122828660960452285413418608326192808047640116279494902775213613073487916745007025866853742688829950436526681309166840745796892403785795549401106814750769588439365853278769223901457926369491109987527717596877357656084332995094825394277628269656783787966557118098718360488412799461147974093163636214136475577751918094353552703080573809479924795498458808138578231727692594266506684837235809213277448616472737536099632507709923511165387573138636975641452702036490599398168949972706752943034440095238132491643499081610246929746624945391977039114377192047191596826962816452597938564467276538642117103970329884194916266846930051847909980839990723499972894911129611984802691706162296043228395626059045137999814348265225709589564857185188154260172873424544985122876308704245789436886772484846236369638369048638029433023601679422005932984446281941487788343620514149575940502779830628911996394630954291842165611212048069800825154140498552387543596860761095469282923214112816503774912632960222444225405703372650906614395170918946112314832424946741954018936143061432281318434427469125203217853649248572797111292623466222864645849039444909220017993062332849391764355848974666358524044549953694478805327690281673275146700677905006097898042636198681045630190139452528250132732447165438894001310912790796430581864029050287011850563127822657304368433706194319096962248369366170406378040762873814124919539268997547571390163964103760743373843096835120721457568694919332953797172301355322066925707266059922344813046062651181974862926395725254816290608557514075151709273085162482408076015171953530542776387719819116839089055922454898969391443237208451405919308971976820039974950056277899039762863228543657716559155455032630604332714511289435580469482030064849992969977815487459563000667715957762785059829658748915696013366897869034806666884816004097273801821124144611987139823077494784057109185800150514515992056629049447083772360291640578651927790852166831480320200705946585843535317631551546169567800934776196606855839476398223068538584384959859015063147602495243182456881160890952335853992926878784507301174322152089663010036867165597376678288856962301456093870225113027459850567920365602719279828508775527720163330399803599045279061899552870736384697467952772672645438946599611062302820622122737634245840601264560012512246925656930924900819854254704371800957887515278013576976036082335716520223968059487547775260399619004053700386631145023668729084558278940213218752401967631020399022636272586311242256059188776886774772894092759035880586847452849178625174210603493238959602646108460574626310602141164935826255791373848066766870718676682986062418638790171197376045988555851092537318790543271722496334435976732071949108931562617936442214635578566588444278355697822914958777050557951503154841650332212740795164256923101159377269088678467844707883969367066512788135996152279228458984827467693581336026326449548500772222802975414972285820604809208575145737800450454092204177419322881659832624061708259126171155078379208740991495487949860478048983719564683791476180353365374062004504880144001738648366412037553880748663251259452818632862129633976101014823124880961103983129673861010151259202706982366403140351379003097356873231445445642033872399882461712410236892158564158481780139346444768280937278786913135920642634915454025518410374349615995890557983478172885980937856097161282486493017429888568967847836450472608632465008000845189743338793473182072820731611337170040698682763220248835909383663407800866158773538673651454045814977869866867764358985190998334054423044624897961613777359485492659120533602067730944312978860306170136326562061729904884163123862837856728667560029905578289272781972649102845129705758276873518340941459933644604537248025561086343228229007201761228293650151268157046188184071198819105453264628833839393219222277819073664796816322426842458242804899170754186189763830419688923500735186945456900764643529648473845884538707050197121018237202531625716204728861591934277339088901398067041547318765609104269524035952572808092427637706401180476530459750559590283024081423833755162146376130960099202591967861410612293801167850170726456516866543648322630825065887598396188788767154767101774124844556373615947786167435616625291292844661335970038666563036597419146479128500151989906637831181172738442080692865101954919160766343181451596366427827156949332172669148666520361383011125735605150981538407296447359133666808306197125949319698417491880026390110800540243336816367613478855540487984137110464544942743807085632067542864702660454421442347011347887740197310617524892665059503410656979725179715365437109702425254052052087496364686374094511030851164494471162161329487982716506162442926128612138036544120455493876485836661701876577888073664482705144650852605473006396495122304826682697555934273937138522312855313952348225250693108635583068818681294501215107539251832980453873881565790961423832846737829062764607137648895830476248905838093825632893288324093190046495646531885389137908458736795023143094562665862916214836853744669203510608572485457538142274155488238950741107646674755398827920653523310679109845355317504165019558215476143688506576410332652370298429130663116362974043810069221772286384752164106182675660809731387820728503944543860704785253868885129497404319022656525175073203561625135703116541868552043164302602294494694967999437528443047520107557707556558871112787484029075894267522454684962954472570222447562325105477285962807363656458346468775094721831621669340621322478228342514665640949796638339358829030426261709921038454814150809599630545558866578134349476154828166417646412294520656419907966383703694843849426801387549846847075407750716165867557286146542184342628049264872171743262738127821363851315400983814064819318881727515276351132807141907594532228877891769350869672147540028069411458124336421368975917434788854149919608379427639067050997226112526878366839530378836252569846596276782703516946121809531001350485558370617172456158695704290820734489417084169912715609891095659676016447163946083939627807261820321338961232038868488348350412889881253554788731742688174121329168259745020540717795660504703177498706002722608636361861224466263970383086427187068711114908231240440398873862920613649367453483031201854299413718527557796563525100866099147580415393542809692955405512410217598442203634328103388115947156831881643830712924803031381393322042054099385644677504484504783149175243895540492173666842407485305231964914856745004180865688046110710366976988243367953090480965303712167143939267667519552626397149414167019467335241228693331682188523033114194537112710524264801662193674520137598680188774354532859563451390223763947499014910208450008431213254077008340840913599747865930381275730908491051025069834503317512445151213203770418768576650103194414255229879218573494089153592674988729198217035359248376483053273831058871326490370197470346497336439678933281350594964501889124674144761723807390524073761536377787589151927915310988126149584487760716336283751778602358931946156976046892056508931652219228956384413421363897795328647991359319894598109065721716607841245857444088900350954846932738913941925769041706230972783145619789234228843082163952259305170628721965423610688295068594738647988397927817399952177969783474241982040986739630356208857459164594139696642941526058516391560075942002854162221636248571448942792400189866738790376627017370303389708262609352437293603717164323798640267729347350974657312744446361610217351857808729241209486825249572818110192268110465925567273032395285268420584106809899000359377847729798975902962152108468769059841608676401865135022422070188534321811125631197196132749816333154313105026611146754178623846827370433042165190467712375660203764884927758502591278165661683406675302653916778382475040934509074570523546964334728673280080478687493991126702988651485831244711098219960912821331126578655296698121804923096885413690700945858659265276986096490090588254705733294570994984803220535253928000612345922919697871992523461058669336145425712136896394824667223888740422153392673268809594243626074621516231894764671015247219598267012246995427115330065957739936232375562990366692826007321617844110693558078993143897693808987379037396993473167517946594090157640575612926941691625851247427024436798527342427725683808783781249712340063678524653359582477777764907953617019660347245760193172993173208252399531290130794365569984643977836545640328082245845317091600636237980516129293015921221360398343480307206517279371941063584604438346703608760145533047351322769605622117408720316828461634864704903676971041610194608036057918057802195944395583484615447133678188886359891575312098377515390628764237443261269286685612864399711740748760220058731227865733151713967478066100938422180347965963035439622507859074696869840690797886601881457938652964532430168087126803542959074946992506194623483474989877535707240885172489765867285945831591253452309846264792110314636154850771805247315345976590301118147952330818939649485941996969497980410857564818427452481844692577544840088369332422560103200627905381114001477502135073616918809870562565538417727567861088295802690220659729277344712666599259359828952328652737922674608244057038538604199830453150111977652690695558054251211730137394719791958265532150841939531770482559208069242652836909511178319423692899981509593407507205385739981838665422410764855489283192397051961676235549173710088683557451245587621207277186620431064151925371385704276453350501901014176815769202077482822343144406600838287978574850960756278510315343878070349517585650267370158492160672628599741494340012006795170656243817881670933318575145383674160066899138767257743560272412403515179910309411709094687942297641331142709030669919021373151179993242063719431634648172296812555107006570849579720328771255500400591800210781378414347680207999038630598290021463972064337415232442889009716145674018493393954221545150787774909641985584036024180589559908509539914695526706392024880451533568016788968485610080176369085395979145807228157985772853348431222112436190502200594548303489627355662519909928369763545084034964636775569465025241411904218104499086485467465661349095138367819087826051291265631192242396314596545106567620615870121846842033055092731499381234205623232090968360413608663319777222505042574386314912633512859335534483531329911620029993320865805832629216328368717170055653570762051561870940956282310043526195374225806127845392976878162743647948528283822628141489261501917646543994661712836602099122081875192469751899304414642590056996307708652329114359013302379304062292035193915034132379956985346401207763163914034329772504159096587951561342281150658399986631921419726439004879880245494147725038759200908659193529292549530157678305992079154477447097757814433592889048552365374057789066482239849374521727086470090944237169663645309043090830420487533113124597418263844055127890986299931993741407034769436906173589178651061923938562576369408237907543960386888217874182262220929550343835070044421247459261366231496687835561772184533663229044575079288433597007922263584987826376871922044661644060891577243764015287473344880982349442599018616095994998891654036765396204560828487579505320166242910846903138547733838774188134058722816681069136103036814613714713293467000817644375755271123287480611665336377486850601121446389954429952206888443455598639439667160528070266419982898019756998043111497700453409869750750520065824543383720581321894942269119414644014765746159171874621634191276644354183241949312380421084437270158563748500421143997177655783066372839997407803767475451191763279083554062668259603472279930904384744464879655010084636841037835377021069533540577127418341002761428271999491427489553220992528322781959770872045322593158357966319628107687503831671690105827717052925378956457257224939804196601976546380295048031213816375193013994253918870643995612080834941156197521032507108585943559210731541787316797544220017651594878568369978013192835650066154788321016681924915094936372651818736181633854345593426089122289918541476128353290133786784245608808490813849701627847290967139771362731879638894721407481422696558009521215472143596779259795872374276392064018205320748686035023201061656338960663955350889512385584376984233302719278127750907863464280425643972870930867681540349794944116947664070629584926336272384827936221526267277693542205833240102175634954284097230658426369624557157621011149089155171454669627008976778782371789036590478913584850284615213487703315802979274481577563041869198296930623982623160909134422301967302601539168742499445178108636834822988524438022128654768271990589505472208957953685756472379631357121225193972490442914861338141019944283082414089898408031456368599282071964039033148852348181170137007062947246745156552383252354333700449610423302772954056361038802188594916994223162543690124697995402423568335374186399840629140409155812143863051006634383228151516691804073564992696228442822289846308134689539175207312161496669216543390521790024589219616381045265320058069916839791244827835581779828498845905723496527867046742352371199086716671556588513730867473038771680341560759605186303455677692910612728556931907936501001652997552891413513301219441526812447643111897424051870698443345917826561034470348989708951781285883403896314919262887954807595520219113469431506826057226948100869484249619157998631377364391542190508756442825720181280333182289209535946434877950622387377471360187212147720229842377990567675157837827018380015899569095791772935435703040736420127243710378017185647505118133632488914318532245885343175079845206005926306389589781053840640714640515560340898133050640126414116010884232571629302504105755419016743671800798167234459072627267575051488058920367193420604825741211793242543366929835141515187814925382067519768678654279170039455800058913759625749908219282742669224574360281393711918997305219742349121812714095439403808467662778986307467189326100110584739920663980129777626577732929954931632477654914858893779997747040343845630539875491027188035202892497644030310521624518603314416278184619364931191580090896168457620549021849627740053633816834829168989442017948881820499776697548042354210452305307405461558489612129366623016770448082121073149430723492752077850566686826039184806206128267894531998690416685398050513074342913951683432478125655038373409820699785600496286229704824073143557186787623992983801667352721614098274375924918123405265424954812215906537812802558246856725138988265032043858444377456530060235468418538734240768078204793171403425346527615780197307335537313453695722587822884426145810820908857244825258337630023913283628280994316672226123653809951608598490358185610811930534362187037819606072097166114520946415519226387231499773667865473691740091324360644104072506111851522519319214301750990819906122470632009715770082819178053137127207384380988311152966499709967923332047222157619418608140292512056278314466900245989254865849435954389931682449124882225197194377389741713398484713174481762877910886017630060641665029376724609673155094414771079633062889412570018002092101310673930944766667443502460252343728519790960525226152964594468660444113287545458299258604354853597137854848186876436906107496287749655323555822571357812532663693019506798411985721269495892367965027918740756462517571409239243733320281463164316669789171304350070321997909180329466700377882971742473830370126307308463147226382791720335635960795202965825665378535235651335113301899675264507198676617269270321958299181023001292196344348322396636905350149773302320366058287181272362006519899982340974455596298164464942749215891859870637516078139950532611627414226221136231847190632112279874124422136078558082419215030630008495694454184949739147109452742431210557042660993018338437117155886752316719868335555049532795813167942981588780376009374005297219303565404005592014648731422584558663945018642363422758716166483101014669749563307513369766059605588668791206061687716611811357437499850522146620745242406097630080005450758826104093067960444912455463305808610883134812421857604390435145035450434543516411276125873803628996942120958838986184942060635460193922979375116455349812378475750657915579227561918168518006332094269329358956150178018325885780658560836486088451466972731645068001521918567693552697314814732811379434189952840592283507016598623465574475427581505338302525922228686895370903437309492312988566907851368886254775101670404200041854557863742205017149909796176099476228392557689738287841703484572186347112061599898959541520261375525601410972874968848786038187517511358515459580404321705495700923476574039118874506267383471933044913094146118185551878194859401941295013203023404666755053524826032113282666028844419462651638229269883032399795152546515295507049061129066943660527184626850318810024922611718081581861262956757368287202817010516096143286654514076911632207472641190502381178844103122409406526361949967753530765278404321683268344495281185578544707393270300676177444975393052008082712792395826103767290121849065010675021005899650856034657839985898172311113748413766942863336332334831063353002420180781188732936119855900971952564852896571608077848751477594303491331262430279512792475639065467660263443144188029489087741082326158721265734817953359846205942772731670063582301720548358025286881890894397663895487438791445127929032010697893783295232845385961632746879750677028906142300004638649465407134683655835028974222878412902883427199283259722667075849069972218221758631644009265027748626542669908459358960774256908031139390485867151790878119871855144609519154501943364791243758302589544195012425888288846020838421461458315869493218321565236070333753806412982374281571870629630348849903985909395689081914355217167862653524338304442686826099717140034593743264762669290443303439022562267361546784685911927126081523126080444412409732284834916062059417584318364789392494227273979659970908909618842364719676220766521693669557660461279399691977818817752550948763605430903001864928230078991587914731014580663221346732607587315101095273251696174505499414256763880129112716708211131492435522103719053599157860774221667259187843600382001372014295261142095138809186313054779967431912803395570039495219362695617717900195130181761970297207676287677504613833873447317063147176886201813082388386637739088338284754548191868949430640125017675716518791846342337077889960221025454775418585820788667335523137151568628201563716678800656326147564171413167928529373908366847627496983442553884331479816904793997786473836876230633069943767798819330490434145900321979553109729883423952845581467334619718566796022078652978838055437915938716994945732656724184742778053895706737780882757640827325659028732183270576205285680729110051088113575765406558296650515979380123366003655514530683288263424587363328507091522769205482262473804410420043349967320963449528883181460262240265416174170665163130194551040945746843883406708914681259649087067157745299157509851795187645370418756004540332538427024524331594429572891501599493328681103416789990224615370414730345577708437471849618684157032984654283606145391989462762940165817418906214224736899155219775094911674688500743776508439820891249593371811316045707233297317966347366138992813041809796770318927615167909563556290918111487760296062398692431536535500609289869455839509664499990942628374635801928604107935454244882604073042624732216954858474131754671657342530563680726146253876326808824026168082233080900935159734896334594230807540090503467864711335865837425908120281304450967988302312317544017536369741856049466523601413156707084107309232469867186953259509221399181315420308399502491948553638638050450334492460251451921215083642511811281342688343765526288301003119586593455920971146154144838638245570780639887568903382693292941827728159197129372673828572935256044868125265189365683618709791860522192811692175395594503030292175679517932192753453173691499583560426940550820242085764241939535626251485986859815901044664893084808833476166396366498285980390191718671132491637652887786486516347250470261184360260932420814985537588414625995346797758907713155274342419500923989174050147601601532181715102006525417989904810270960596240793530937051395206587665913424080068298810320013939155347308903213860145539858517468115544902087625589418415924043503488249030895211614621713628415677555032758380816976233403984804965022041851991990186712294861850906519251416317440208341274248807484038172215880254435013449485461565339647039457978871194012639162094069130818221121734866674203521434540210490679309767133173958549943522816280216444684994309938580409556631288970045053853405035126841276412269488591420105721026606200990337175624146854348048454005446794738860811453336257003480618893353577654955154180092579699671331340894669716658213786315350803004312738042950439447720678464462042371101494888193588804211095225763218604068219388152403445743925329113607427625965203365131892591955954940500776943746531841137131964503037621835309222931372700618456475887508611016779986818604285082347001274996366590499280112352179812139681447546337417399882573392859816850669225720182091975021822743125235156526539387235694953777087987215797594748759332928566593292229399701962124320431777849167443824590953157192059032478315966156687452652902549700030291506939956223657423955912469123879587683855696319642035540858284867058848187593161134539284353569750548243057789849719952910914042716490426200269708401199534565521305980570810439434022844570535076448339794553280653972977039377955531806488906168558593549168969871894121405184709647303244657074366167438819294242449588258227937177674084741898610691278338647308332790728451787693632239307081263789840315691631388850082070697325821189095283725551207597349401338603548946715310780627160277444614927681065514649930447490479094209352587068518830824916093022862994396339142036538031516014826076287297578287894453962941100265358926233673550392552989536943825238454211260506032847036426681509300618533219702992171099664957414781714276802933677222565034264744590603035256155340732860218365512292487535750495722530000309331834823097192416252631380976318868094822702182442089197475251095806701969398525395815279560649996939642007459980533703564099106224987352443417950962547562408266246577369070191100109226103641589571700087159156692362578830629303510428884931783309635867890000867528426551474552860387907702032750824844679166187946053607382963521149753677774836767722570524869677172169058731674864806837889820791547188080793327439629961941838950977801446629649876567324518075087287730301264642345793775490683544220354776049731934235200768204664646372961162175644804341619836402598113867075818269821617057025880490019776653812185501073650914334064660610441614364074158684574045713124819386479453030920280362402325362012112051143033850289531385312288026527036296622391634938146687342331520777318342342160278412296055539125796088977915891490822951764391237277180358859797527359541989349234784413742432384705562954920597953590002109486959922245297463157387514347349482501065863674202746565983669711465290927944179354191087661105445009958426021163754891353215573795431748890992773195023100744393288777060733613267959697717338190297298242777376069707672488894647377429105035514488683096896842481325836931525987357612265178070095961052996892573231417692256588735346685554749298501567407177334217638001220274425623536584641730598330395190403272680836980945155525898586183138196565546830923769328123674742935221229900533404956610965871498289346477196568833941441446173371127913489774112798873728518388366746211743464258263712648451382505032427762721520090920806890873011811768076028798599448556890809842989588660814528292514145516139191587354293156463129859454564146072549318019968389772600176961270348552672126573422971659399966131005539287281763459573206963447335717441814637821292971744731017599306757233572081646512005245233223405805668010836129389552361030997030301412823930961466655114318219445425636326946088660810679536120393794111570778189440553454305607869833108590582548980880104846682809652242513149608629579141223158207941935529177067318782080804881420481993925540958576063224976848755822676673940931479578284133399701338169401544524946512431161709347444061803496410526774802056254932638866988253587418222315800027053176695164642652294801667982346620053488191754856724943577611421146976967085982746565731895618073058805909198377508192899908601955920766800905323045032893685848142426060636525173939004556607922815873864747438298368991032857397739236282262065420592039442568407487906091043997132908685492085098229640393550252374075219100768297643702517281079636653076639272862488227440295454339669880677322436286419907123758198851047271331915488107935337811374793105607425780224465976262174722301936798829776494355511568060203425014925616715911313185301720449651588423781932993092458100173060438288409286127147956665338266303061599463324999276887817392483514981794874851025329351971578558677636175987497538187807638205726260858769437702397096156736176643646138899618730468667935585832692919490336105784698882861211782613414268559454859734107422798044062389856603488584593542490075570317960687481478031512597649242847529356471212290512620406381893390257561366873860610627578039859933629691977708502242718540452531306281126413325672520527311719193941212838303422411064872845804581060101202822578103197450511907773721643446570529228537826992661522638601437567842495214320523531017766858997452257954431625115968156379622491176030572989275408254696088147263275542387456329857359004006262343768909109186566284659793805436611249987943479023656580893544179686468705846069904872070539525533766098755247007393146634772601873598437012257669396060816210716658174749074847943343844083157604878470433610527623596126343013183343161782784505490543821685876578512192816048551721748470728706967863223585161319569787351867795211303633555365005578773442962530990290333629845239605842299721628556430343404097635094403667767312753069333847780839600980078926978918354200910200506247948326347763807241669949845437410944727464669010155270794209962861994471842340263807845777589505931248939953682006255416880489371022042081400620623616790451634247976175029510109516541102917568271842677579666804413444248745326629824619713521943552276688087483047474944163648494832920866583076094645005942105558329627743529160493963331191160017555390089100186084214725536321938722895772795375609555048344270011212859150941798132451327866430265209053708776062528583751887461950663172167992498568200048738508735410664696798145188634327061412046081577545717709311642603636506105875714844780418061375908830686764214861715849639747284169730286051728110343165632584108081632174608556904903228902932501613041397277702846157258070419877479974593953657668195192059670309544722456672224073672829969152210476639090690455359127224605781558515841183977641468502583392591129605460198615895741330209288027858624743094805836250243106679033603937237769835663326801133112076324681773104629418314005072327286014964341169620331783548526724467649446084003189207596914258853737935817948738189159064155904126181179108000104851655941230992601185509624280984329413762317057059654843248666618557347440755406306919363901013875152611738631838427081619507006460607883644707470224139775525973606958801400617913303995299331894214785382244187739470240901575000999200044878670899525858547730688463584594986251791325498719895112278463354136581492087449001586619107488877110849983160558101910680084599606027977092207259218865985500740998521483735058040077260339973754636288988373694718548257569758361160536274677900516603247290455278903122122502798788638127200482450052911339172861060459860610557730465331624984548685781016822474125019347707029895908694228047032184643029430163875591283838318186502969579329520782290910606134679327244140106832497240879060193316954355096488529656865482555729234636580535299852685257196714578560026696671972890472990886029047235375409127500321171566158080408025232473832481773208213345830693900724164473531665171503220230908655663878109518329253746521285517387655107597256169605534788026082670065270703853949707308079032749237823505729895778628675539981994899445483714528656356163433875653548359464729666249893169623783660028077277733036687498209690772383162490586174967955768160203554726651901335037004787407203948847036942006810564993291530477986676257331520153355909608321389966986618944164555320809090747266217445411207257245253907083255757937462591444771221059699531080274720124503444094518820954979862913799046039176956335576618450395827658572927234381528509318007149424718824698291785809592099030009741731792499151047442932929473409879135796891017094998545899815599669075635930678204501135184548728452582700616315838929318550913093369697208772501744277178938837709080328965670425376718576855363204880911689139433063304327413552256910538261558300403091740288336197252622073798706788241632316506627698847884737815048332766620758366336437623910064567339856143667969458671327155420581105202817638992482180909322364242604442237644738986045487638754897171958554820570156553822571381438473251624580018515970310570616488700268651487458281800886391983678457170011001948629648085797797129988160391918520869031599661230821561595189651755630086081699065904556042241830256569560868724543117951864578521028623744677246600466623221368473725301481795079397764861373622948582275742533589410196514489959298037556246029806571354658516986364787686903679778722247344269726044641762094343099994786336089894926011968009527959779437162466908368806520613092402756371567414393617981119085957748245883039294855820548559679522640287781824812125283721636423768884764957724080858163095697465494182440983780179522995295992570166053541415787303215604928054828878667536527410812229914074812015730168067733365729488444899805623359172401099679742236425022751682405586813493657760290210204053646448012009430367462253085464252614743244183117892634284785785297092568736735009595670837188768977123352114658699125575974822935453520761818667889974357290412069466670596351699054899768391433897791803431242221676866396152063716520406763693574208553602426450397657060879078023910524075724397300198599299324376806397733196255244099971869687948676464970585712083786678019963949594857270441111903817624376686377888746656676848308825020732376116652883136382087714829532128435963002517702777750082582953522111075983541105670668756693146479766968974481938836327216530546982996467060244658139639199476152242733854791683041299532175128254608684317568145298991293509423736379560812402667634914723185746474569439237711789237682428014386405407062812867758355155384418022174189597150217403590092485306231732158532465346578044838378315564419432315082597688112554872441357742508892348627622424540291341916354980005630902474794019353607161816420245041233457271267136390424995833603798481175423016382728146246886214691557243701749026042630216046800745593541952781301096581062713630946499977766233997187619774326137513975160023929739755375580430345654237196535098357207310646129416106066307634838143955855873894734657638315159702340046812683822965866178740295784574966093841729320882491516940652064615792965039170534854666472930957156373114254262780935038766957573571110060199485986459894025834916010423538887103560224444590873763171017461672739444288569000513058209408301882952807940150997831588132744422695428009983441011029610494200782474714493186424647701092103286242595126049370614934458690096796088862749224800375419609536830566496473498870042910051123250589738092409438518897816263222219184815477601069120953253226537961485397087955964927120206408863111901318189101536341447609933934911731390786154950342574496752138130052736879706721199701101347926960218324038533427775365975163888267462459436946363035452780261674850240408500866692439504194781529752937987151266287211334787709539374754415772644668750064404875092133340400802209133006142324366146117509384089583609771410019189361537900149131620820296261469573058639003644048066036412534911502799404324893296507384919363650675830124611572240666916911547844727395841348966339826546297095981716039274017256252759311633017581787801005457596293540103759221479400994723569150991792094027397249421425605101489903398713433729786146351684669009929904689050513979022079107505827876714699276551343487884354459375527887427676519467182014878454733234660803315534379358863915171714290683528801421246761209027838809063409064675384399905141605599003523153646509936212749648039995726459907541845596223315250973994126943873853587445341864548352189656277823725459545508464953013023348632754798256780211585439158061639369362035937661562626011607034906193908987444746277173562394792246957168811098289050204685660262566806917515582858625762569991589106010584592311054782239879830420467170781142186161604177695583222872584168917784699017192912325669396226427625592802659265811840717850840930116448724083624706235085324476147966230637358577432613792790385872988521985722079849802344524012200987483440802492118283136667761741418839155662682307098548374710968034334517982102439876685375618868102719240768785745639671377192017365451221822523029219874968656547462904975435996858292875471819488670589406688533064799794900353439322771890518832173078296240213567981685066374133926717462918739425782962816466097393897570479084631544014288301028222606483070032151793758035625425628806371184922039736649438230997395022621764805780972049645036159922937901120122276223244763229068013156658369582851930870277139394177216056327074246434206473507668390241925122719304552195901563530369117871238775319162232452216463231742233714494430955300135242996291519426962792168647699032171776363298800072994029987815057986585710703346735706190667686804388591502613631047896319687898932626149317597501107503860906572857688593600444120476445961579571062311317334395835965185891252763913040614419909068052741980977191323546947678567855286496414317812294891629554263327871955853011739301476773399717281544130325464134690867824611969283396699034206179925542961038674642457915658514052101379595184811672477657088341913193078163439958846146123964780347140614113459782860546019507792615147175176214722612050398740501964561857787202840288440264259728337451141228746338113667759903794731441503969392883470541053681740851029888945826875052863098666077408646102409615940561433794160008511963958141302427360694146931954629304188559556424925828255360159315662264276845384414101981924749870356964401855558868740043623481952784819564210122113574578871799154571396814584511170419458358361056364208219285097471506559923628791970549162125097166286251006225458868913240421427975215316710357720744388949712753160261471619451797168566469237854230317534861369829466534149688262455240092374984628200915660542053565223324874091397200606292671620122663590152546051086980593843486072738176622482833656976451640347517908075268759653455045337125839489204375518875524182209229640157565217759714499472268041394863864667426910636666969805714147941905544211281525617357066040982924963007565217227605612288006311181107337166044382102815966386349461222721728375734666280308713983940047439034146192301234430840203555964508622140105768812653037753632738653475017585119855217615553959709528893584501295581464961316825346458718251242576868443361412841918158862156955981718412679717266214385787480051452823048604454713166571681016117824882228276322237354963002412805389952489210357904145495773110207649160753478023420599580168266624052389048598064167819111135747318010921515826589387899800719736312258682883571636028526187923530497314188799398095848257642088213776525431670195095185137903083092926758917495454367789489133976811343936503911382946438865522164390943639225809670687126338332749464012689516699021832544665313411253139676647454252855760663144691770775413805469593767591582311618401790650127383546978928827641182031049260621058157615216687452792920587956772394787529609268603961621510725199441874931417574984428512096427198039793799695837955886554789143372711268759368670040502944318399730517339010032173822471275601906904156637834298813083787463336797829751953938226945920216479667712858901978889784703676854209047319694805764496303010837656394426927161723555242534072249787041719063422946949541482445085307963353433994580172284461808237585865661851660485305813937677827412571855438485522275183111517786703339266416997411829132144033460823385641689667908556241285700130709003872270247991578447691102411296728935771229687702098636631658454585291679024257672081274480639438004155095659866333889085526587461835823918416458582432039806448037767438954739853149177425869956409066043961603786849182025884925115348149404856283914566063484499814974392785743435465664804452751196737340161209029353853560423045079044077556114132014377443948115998641945855992059458635206544864060733476735981693411715535043761334596082673966018590108267567331892578054025023647858981751287703934727545761321948991426729511799280420183977218556625906952475432041560481171388814958766305197438802228152634860227124800586696537165579913815424551772801539610444209537638154969384009472156892424604392673196763564367552890939796479713196503338471620208891658340066701968648924280482358915088543337674358215351957823047635535158392571913378988839283502229813900616286791974291669715839758392436816301571671797951084978989414695823871500271648111837787689345633719752250071263012358785308034589070637251838433822402178286542433913003906509323768593215270720086500298950153769188044573279266276862982428142021240717659887067422287562624465751185183611632007988480924941963519535014005356281344199447531065706449268855344691857083565632862381350626219595127098672782172510700269417775364026463400984877143639170851815445094739629104952652455366627756152505791625521732453523303268022141039383424064133671862454238119762692862218404963740361994259058982672324773185146280618326678937777058668672805519482765990437025166119298500399838897841503525782442674288587556585636515944843192125651319511291578920903263379201565680336907332813731210664788450589843948958323699879456627004681820772281817836671159262397870786246064430538447903980311381534033125922434352550587363884740438420431867639218479696599123471743910227027866307495866023392471110133142286408764817360872320247880226287169631024558735697420009109235893311634076224370134155427384927109575770603722818768783191483153790630519376048049779462412345262462973732180571013769247607583478040849194058232714159813535943557145726395801145693455121125489675282653159478194928916220184252668567117167214822525442049363982084373851764522462113458862605559103179910753365047525792168032085867729597438331314015809079208031437819565612933017011628886478897150085491611425474371716275568094722891885313068001592673747763908191850039866841566356809008603775149994513991776646629253969638680154727341082248106485118952353678620037018792054390503525005991226543064574471969601168568682893185452493064252018548608198033460638139462763868039320565330561002759517550943886396422091154689580789538892064742210190416241960274288277270390510353718858083177623844340101555927155564513387522906219972783842059503835146057478294958030838489022825726292835929537253128258776203639334471821629226073277075559584876667766542639584012624069126081469993672836559772844752220104626068748153980743902653491146111530091742963497346847161850828108283900068920623649571617650879081613626382958700930470777769858744321503749719829109044355290094068610185954553157245285167575882668657464756227801504620608742481130595517362309014037170403804827041745762281621787809670402372765267572812253838221883748375437715585742076734640059686964998759488588914793995184674451673900264398053781945447849427467394890264646112613095090114845736155793719391455727183543554551430403445543786425316949465407947001997673851202666664779849559242579411949528098336294927834138888483244302633271163404422642675250619735752264987816650554691514721517561284159588608042174173370792529589475897981178253130069709862529351067956023474403912156875530976480887487686838732376933248905614038526456707605009245435559102995971576618828156742130368553899633614032794921626670442075403600866291121068854134353038634969326198236209421246931763570247147659789734344081448870757283276699521606278189895564817701774490673645537314604911702023112543373390650386472132058441130174373332151693122936439539687646734327283323857090690093805383626652251628114856924522739652296110798956005085188937013090293381978722961530253446443768220004097955425949905716532900106399457132077148748298317128287314717644198302532153422748478576716765911448476930221314228701021829358702259695706982940605918486432903895672243833435276005860130722503765244724790986929039901627466149493690449637048816874644519107181121957561601499592304026616139333301334712910327335717879182849021537776689458148945585836844289882947154538065432846535556545646675321188737248848452946603104010079413284009356053498659175225482790294408451581914900791776918847809650886895830672909884688954953573477875296442139655530382246356895331408213015988030117185523109659591364210202932246906593882471709390428688815870039085629788637565786060314321163015046959064448794111415723826349057310911664264964956147959461764805779792870181517194686877496926985894508134758794652548153723284273257474758076349402267747806185994931689355095520565508835722763052613879447538070348341366544860707611204640596680057115485373003784614675439834343881890257312128134591512143686305710971230075441285705582669225570530090496681009962877425942433886584801931768100865618137859245745909547626695563700097083280658954459840011154273851787177277221404240818342948738418902809962270588249044573275673300831331097896996735098369608531881453534960646885414445053643158612968493667536120307369606814655449642051746459230531247623637574073433061374460826538647420250457613516360644813879078771198547413065357891004388769097908190653587584079965578308942207010093851420764729162622470667421854915117081320697640970492821791950529927377040884226722763268210481770079355415217371045766472295537293843311777090955685058476949501344528372781101532711576390278759870431064551134380338623033997062290809304932075162664807993110001590284836102400641980265433370924564243254361928739477524310929425399359676067153907741037710505714310882051935217255750858698096669187726630868238555001284485879839163438023292753550850129829216317035071295352732308822052003602330186922219726215413462861066274599390911686031392090675243317315500174127096523556358182775655731443193919498747618104416694078689368738876804896481693545802369045305969579189819861762302496007428609267065907936249954897699266660485508491473296794917206177622363021472491899802645001372290862649997284096101917842741105012322551194507684149268438827855587693666932090384349844584669067111313179707528451820481276867793664807078731242315204321143559302868320344124989950062971820065707095941510710997628689017066835845009904402318672887936671513004906470942127102377835542339067305288516308882873970522386415727770020009655942004885342058602372670245625712621738645099612692814751576730888257742430454539368524777068524341056310349937370391890929306110531787965345187442875979970285423726503889651187515868435919093486849671882423856306302994579559329459874667236765161576259583106933212322289783794390802029842212165994967382045417589416154468783316656414918227889448414296082623438671059307907533509592251644639488273878056633250229293730974941699000022622624489262767380992572661759000788728706692272421511216882076659530334081608784547738446202865020724221809573456192221308839888685000173365673442736523006504020777102454255276102581858102923691266020767449616053158679684300727655622823300418434025802758137384671325655630047386600852080088392976699352563819899056704958054006612526132012324582162875332920367692408522668448108603755281281652794206483063994347946946246188898015726511381267915662988283782658872095947478176543896510780483184421185694364318582802959548658683410102187713931483113261381409029726938333000283202451044601544342424120637166203462916152815435543412094406014441401952584574652228500384427159596969331991136293397101532586797197971627257508201021904335002240161133592349455205453429211468568397358481060766684099059264832902716411188311303829906560283732343304550706702441666424998953746454517983005011093401847751527024838277642619952479393332933350943215863101678434456252680318137960953199752996836086378500169843077125897851690170612302620566475976254328758857535462912377691611772178017277339497988470976413377031007067048721511949918822131722658045037786749080882068846901282633930941885379119823049374930197266076282196094790805715086521328543605404280565849998411832864654026185381243237976394155733119700144450391663729556408601148496033273464125655387833648721233759766298341898900801156992420909901605312872073384208980239924683785503326499640300544967771172651877214574432241345153118530651037878559241120941803037917026469928750107608915000076463536543565185475842919664357388096985804272068737932200895820248087304049647314176490571992803187530164943783943657453766171450330358728182934526236702052782776139404787459922840514791000439023022786303108895049172573146742636079645918606590765944023099823898638980995514875992700287415709095193049032962543929075481246519738796237356896228165937841383201747844816212668564067866306097872480994300634189671143730816472540580884600455486338862457456694819899811455611371044180027075100333570693765057465536009801513318256429771218421066690995014926496223922274901261725228932434905345277362436822166006188945725654351425679927679682653913670533753536043780584333424479557677220877178996318871301296264945099519494821679068710639494481380044210392303730483034243466050949872341831656871310326960049210234199139480965627458347815326167665416347150416730058842869614617866007529474984198812254691493038511087285631859023921718610719526495664930930388900252556237000628137910991562625158705708115150862449606749542451928358693778596118834024517772436551683869222383948660865249348341436840591337739349019452661360733085148787372376647242077341118625067289891742933195220034286681285379945202149796477336038430284506472830921848240993818207360440786841799641360723592369054113711904590203472871720828216303440633712386162126410760825464000973749498186835535139129602082189296870914744591075156942840237468272936909714561111823041164433881496335334301065762221336800337446407164443648049153013191232428732507387475763466804223245474683961727926201630741617190630329119212024507998516506744571191397608133833383663269012759906277688559722177839195650685081081163348678627098759452931180509110783029149627532924029080230692777929502997225998410912196848239021747973443844495949188726622719986711688308761888730367456044357560981776057873142672227314840776160981689917756438437951001599205155104848809954478155120718781074259729018449252214167559361098483193677449973372572173353286170592827727264383036622897069134356154332182561779561991934682438134676285109812551354822623311317728997456425446130156798335450280699272067858779308365934326367328215399030609379447926047261055039469757767790815054935408639627857825118409541398190695098838430420852070612675733585879461244651772880137677411575415568650620238081692888366778599666208981091281127751992749868783555510536766674692129173319613900926330049202740220681023298109529389220570294803718571209946507510227936047310148720814369265426523021850595232648206264253273989108070372904203761239992912598354925233829720846265540001005626512848223912330716040200919669895453666533205925145013920795032945933798346448739034612317341885435937311487498522975607786016142141838670255871538692367998073209261400739175014381569082965465262806663008033936278470424510262520528243250802592771738973518900034872478248959249631255004520544208575899308492143557248016479072660168004014067403016013891195923043563457177915221631232781166340529549567903106132894872277658195690628069113979031059332549119276314748079899118238743923512025285878806101549946410811154694520450796607763054610113193425674389672998100780297251607431182368216532076484733571636166711484287935144241908173542592023238757159298657548087950730618838349708111797840826712583144234587813849639143398995591915537363672451163052557800362174564929453584840171778987917580096453118460237737074519587820122293915037866087200454123135451027490599848943810749781800419737423839042036232345080236776134096761987644345135566760195179008931853272702842187914670939037136661062670465424439024006195056781468026587777071952097445741837051475272272725680609644574508416619474076755608123978582055239323784745518908522373707483773630519110679170205895127738952322306898227740461820434770509245260081557529457320086006322872000688835160552621764884650391527621154491631948473573496632068823184331502871951136345787608778506215478995769182491991374541680149241870089360048289083654592124431755062307992671670631986179334898639805750642237398705685226238948869773336795494593844920063806186666048906426402565600088529507686745075925667509514870073588104620574076516197425020833731622269003588281932327893971441426694505586173075883465759473348684213345039353017087121455129738406071796460396500959692995216030354032803706459133570861855979864171811834499131697632120261248640262095492194091427525821459913568872240714876344053584848288463187084714880019660851882348675294339477154995890014933884273384671054177366559047321666740540015472973463185890271456116867444955062824951046857825868029627790894470141983974723246812463494793673115193612333330222024456243835303721897985989571521416685428552759872794293340527467707962656894687605492734663315444269672871353932284274831560290024702045947019064696820281077588868909087197563210059088339443543371822037589708670933143862185970470952225045009322811887619856154915725998365704921940067661274298338591618350689053760271653388712034232650523578504034498495656907085437151624770897844644530953033566607930626229404329624134395343409485318463932231776420551750599716555234745869729842849733913379279243721371247911587946585230732769955429814355050243599892613070557067917568553808737641167686495785783902810316268453495560472231586025057884223909595741003471405947484378686240667131586730811787627192957025184849903158355841761657445416625939191391068144611291641268869111245663248640040415209782248737058063628609779744310873659636853603053500736064134715910516383380472560637194002104459183699193568442104778481464484336982721439217339512120852332811671953443699797883052273294367300330969788265739627098005554678110554713750057103188804172835789595332911803108675271210033980106917178046394170218442170447044188499109424298283290121536174918593062417724254262344798532540998393855079307263027800604059323973660818304830219723270173468573666712901065084367669797782294863137784364545683783261722096513806064904738674187005964594571067371168946921861794059355094914421154565588336000291725809451160591390646399076060596328833892230019479275055361330408318337713023900339532298010225008213415028115920651714071998548627117833335974822463391510385536071633811883336434138606258359627875334625050278636737223875372940283345682296087959349970577577569665867834869236348007373265051262108568314595066551052039020583422829591542292411344489077815711678327396667702440743877932219635827216644340552526177691115386863765654402605547752642294877303186897661295732857172312526447259920990103972181727317808649581313181143184255763508708906905623478976326369064801206056151116639589668744523986081498751491301007164508102132570963901437596969930099471565315168447742370349428767198539915799701029163304050457844745635226057742009362252553505573521006508280329452015216083749725798827910274902867235662104548205199543846356289065093636775471080257451406370320274016229020931700609933484467472467593261524416619130304057257047482969415135333708931931027202070926555469670012949205783306467474585102057050582702895158080812190120522249655947213555519229654175537120377403448059030088551639190264563649653569858719107367263144615136859032124377359076310729347322786644364428414959757371227790280372215543698941240674440670068846026267430095279599166423589107150791110097986848546897864513529341095689536710661632236311596261553047116285724504914571911750419908099627560923737922607748508891153917307650626400300780567704875024443815951916167742852262863748349574195101495852212022939361486260739593439913813075113159656750525345703856332351417041572760369260652441976536843216949320000307494043052961616797592071367869959498660419656954795545223876355974381830327265744268461852079263083092269298974865276411892052753957874565527953424815005730450958444141502303697780436604502596645678252733514936051464773963421457623090431419495730509757410944526460955847834192190041437962055977572721923399521590399219586597858613304862406964374474804410175569361781809885202925081371840171294562698722782234066707744813151820668352101489203319550659378095886067596189932206844401156150464104087824675995855054673860467838991931332819008775740047375715426904641970545074025883591634589636924858918085115971572198668613980509103180321290953354150386044519846438234065060021007219240655764754807244850504080441016762355138977268165342616989440161791946963760497288910246220674981783766718800477938235808780366992333834396861164412891203133266474183078744341071228070054478695419524291752946444147520241288714300309064564377434039153314734311937305681751037267544431354847216068805535343818800117952951427529662105841451985220965750283025311711868371615172806242568419390547742096900761305613464279201903555748369776175161308763728333284192976944873097093485820492642825360907616639522702897357992867013210117981948727078506805623665616873817917286999724173926722009578548939902097911502067404386220572715541686944191198086585032558926351280400918528519026946965581522429960990395069155556014046479071103285187528940331546008340990643648493965401163498969677457063038354022604838991054134221513386914802359586083978386575252647681529978072360004212478315658662185696712442911915230380937697869273887719279453585432517463608513903756137710466734538932387998972582490246357402906390735118940811650755688794397197698798375388116281439940599324478127943072591856860872181978850210997359188115016784992586927498345079923613595942915326616915765190039865020622127036186078367410907914606871844303170836849031259049665103706070651975385194257874796173114279754573456763574381385467032909873952205788109737000208521297860699831978778428744499610403093658851720008621513522432752377514448730283020572482504691478594910553179181390168959938075476896311153013814869613372776997920770906408560530502069601982264382628065356202107162895988753095401945854687824607778936882279584987112425173037345057378423409805011835522710182200213506885474556966761437148015546968985249361998734703587232187713053696386829912513360091390247132879463410855234556388379162233217481916922189547600180160653814433399171613468650702786141516013037772553061201085016728773282266792738609047134495089763351977830252673308061678947572861886414434262206729291431610555308364794740880888432190707011482461799075147537132159170320171345092816970762372396537841421113792643995046558563217107819039988073766138868723269151064813812362234339997406107745260797637707342177320207682170043004132213889545520997336544178669875230309510784449727053003530032532607855872831716569084056885119819211911631162798252908156509236149209099205737200356866585428471517562555382676151875271766983763762275208669287273195381983031104860072364344883490848693306401034106673801158402345879564194254016319396886055071996612863125014369151101398220351039798005633096684385399979403585569353868383355116772704566153398687010537300835784924083338412473301626580341177726748789370502680133004385975878325468312015705133976679784373568842430891777580835006274756024454225112863221588723842897427524320666632088988719249395230264327937493766570572874249967030860771713693990659734523089837644222929877817369667538501975064187238507756751125156044237518645865902484404304976309678539790566620791904096769674273923159872375410145052583978139504280702739795458998297464217431973973800914045373499242020471313132229423637242303774046241412339356321954410571895732850095579183048733200751290034667368717422286375224609954403822619074338986624321931960150591559542930568246220980618996915357655780582817753591168876883993907927836417886743249549441118964567430653717474987514200499656774188642944024231196077671659116961766835494614257139682486925914557675717618460314355192703186439718005911948803646785473455656027538010480732082461035107246513872921448530031348942071538336376660556687312555214668936229892421273938531340229483026428234974312230391059576409761018883865767013034045404281333762525173013497734554591816428024700775616927656804395334852663193882946490859205664812110937167630117631467027458825300144525104139596524641269531856684828756952445224144686952871558221723451142226601893755994837370470615391031187399609622783659651784879206212100426426706265878555629818292800754801506619153694843866245762449639205821431848352205681338197352540538937016285318598929056046059160948237776502729862394962162188681972413965761318268752821043229963459495562851627071068886645495153905746538886877555196382285402535992108291108394808704656457786503095299430420331520078117822644674532248988615348757472205514910276990392489743484570155648975442414851750117484092966678532956096756396778747504258337759935952412177306768038191103582506171676513991896370715502681596780060312543702421246895943166657004849048121953287737832628144580533020381299109270709395468170885903463585456076665955445800401866189994381710610269661046257452584009041711032466457484956333175498803340084421556045012912299324300817838292622839631167181064931068222636347030791703290609254899419059139315298308828543051202621040248747460326517929817099856753958700171478025132517867531965565047499192082653137822290810542371825979364704051541369761297357769335549113574124744483809282352476280209363817739790100513095851149462607591249009626367392622750154032760903784412204920359343870957276059535176698935715108525072800349146305785016091226891413177828982488490395119884875776271835529148030569254079891620557496195435191922012083537039486753060546385373632217931026756031456138105460359675887335931878177503510201897117781388026236598565805570700543899829645892197359360786106665608480851177894048016977288334058669091273727293702709212372264081779842420193304643301028927329089869069959935164730964717713466412765023922534739937693123893643537153041351382541576515916974928478177974855866860929383838765839917102175298923908125005792883442686075266858071699674778732558996480370766099461777123646483302150368330569419834830086519567108697028556946684611530588091633904908246274563728539094265096829879316670851308006490523229180790440322711042648172339711847956117214797236619464796559344463385700752512967858236994579513417078109643269505577292932639671692686491744250502020749960057525868041469161138491046910762731043671762358018558456478521861439979624330296592768334375753049436168325850071752623013279494167360909159665236667585949593168422788391245798371513769068529743098678939973258405164443272111780499254889711253153057256347800069275441300614010152392764264750879246392303044637251110168634262577399485286735386082921032479167518597551386978259978738224090412461298939577089684966675138514464518880295912577612160373914854139779552197899647858624119779027331183687277488806990612828176808544509445016310616258596811000622060975136560823257810517059309084689159310909851096780121255027427667266639396657165095856815348685930064185724702949574381299371499440042665256254300545146266448949869328617862005884376491159122304981851203906803437321038262518318679848062530382719845631302136527774715929031089736482018381744514052282135661750859214486037796838052025988336446592885820989929637849838918805291263317326120101377232160063323677218112049051216335177675556381450455515215619481401377900453717809266310908957504409081017388352535652967262470647701451584855892090287457707388887240863627160433175652920590505139188534045205877422312325188186343933440674880654606596247787197534804816492962062323312257751565226025120808203952029626276311900775972733631048205201201099776264113804112747666528591672760910821457306123665313680925354461921135817299653739917275880535359028651966134019345040009139579502828203161717292046997886167623449855629325597359406313809554891366148367775810238477602078837006997277433561873120183830960664621790219181261714721150148342363770526870962747088892754522837996071179354342606403895766372242359657239910388412993978534829279500673873128186154091570529848121925403213157342700210386786868873387285248001546767104613493674611327426914098072155763130743153955344982551776721555561398267998622625700142746197520906992468785067127944017731415823346891616934826048492921578334066142348767532407567029805591393943612887735339007503536548234108200680595272582919509907856813862103138915984251894625342794515676173229124068962355900002271127074185062879181337510987303233489129942320898866516365045395650908873773473126618835016122077050253923648520409566221394740752989304876458297446057230241460620123296204771929791432660218970636321394193196256665395949924281364888358294333412112379550027432776893164337399054593645618614887866361258136730760618972331481558398015330060284552460548292693830651277687666432413926840180036820522800084838267473489125410906333147024458939776852578387907265237192520251810048364323998090088724464926227130348538659310656001497805258941517554373304542571334812476974011891272409725777664023322866285408311873506944914184144474822763181455617882725938170293482483763868011501283246970549356448081450428415867243028609520723085830545739554177307379024861190800264988329040394938275686590726546529421666610156584649629430105876857204852183343935582295145617005652061618828102336737784194939355376997072257950434332184569574311582190476259288434549598192151623482902936234821460681460376460348080672039440608035397327076974452813149726492515577288239362799681028337764389888571541407785379087813134384595866989952672504278510567438099386009407649070187538660408360477564167259724896886637138821782893581899355491536004653958158390065207606360496521033950238796335660265989245680990682487230621542824277817653712637436775413500018911175751638579883031954520090393310882116492830745201947971909817478746127768214926483666405855675294981596861824458030398600067706208605665387286758562559646724072516994933692712564852876603625597394249638632251606909945257652828812538656794929087054071263119846544736487133853386272459382815501348659069772957236347639412845699022597339087616287910522341482472394896895823814231575692443334183073452500969652435569327109978301915704589663521026915615108262072324695965720504184480993926982218380203701778118154518310704843420151006729261432544969326512696841366182560132402396624078577318971866903356127493324452142988237375191354331673982942706494180817100312394285028819155172877149702149414273477917607130647243002779867393716261676036396432317226459901363741386577853578652573905093447509293878361714822670412706511429575148071835308655757585733521691663791087990033929873436517678816837793851461714073990578444249742229901775404332948455489688060349697248252057553714875982686651946514760280806346944645364378733952229686734352247729328425444535092032050366558576375205913386453437274819819660730749981628768950748976044607842353310584009916336244134134668115899161662416465927827786739609151949098930275275860558832026798296572685057121997650584603568011587665906222450386637631489801407795294437051145067726881414901786084740941344192224956020979240555651517127266054801440080152916501008986837323239717382000316175595697812351934394329120100773885198907469822198330507720852279914685753121304149391236593898456567921194064885320530744193999581348056370658203380274369076881871800871631283542656740400943385235866794633054569109372163904896475633660937549123274291361408123988559952782499023070272785909216020362115593544682713391918045218284106007593750088173960976686849314368921012179058214621400808158246955153749950258621752810029450201205691806235958050147186236045954824871040062253379986336417610444240917318080289058092830762060995333034877760297275273491828072726860133355176359019258563467744875286855837068292220437368732380658644532020903294871027862463288040772920219406505688884990432813594848427820684824250692928409858699055519490225595611315505771130970387531583067171736091124706069602752172089608570667337490994150139976648039748502483433797036513388128154233548109392242351066988987414086574270082660930804328711421089194999710156524260166272428204700797139708757540219027785795658812112914360360553889849787093145870782782346475035597790045544504155746700152276786557570045437074726106407348506175108654688496838434544582528579444292781533101906165287827687930432524144753779908061207666595814499225295605224642317069083413560674551018052374583782865817674472023030381419266676360014968946877616988761475427251303303450892108889674096608458445340621696681293040964139373975094201747818872293107936238730408737620965564039076225876083649285284401611635839576670844216314862829599966785319526986448736032547379156007441720942817444367700207279909353432204051312066385271680962206472395729455644926822098810945531126482511999589534293533824157143098443590982110137217238988064499624210607553685075624260297186253333694065974044439227628450204983970280412027290848013809757542929474337946458522638428228563554519047448653363630690731044905527452579567234680144516659482050013752832455490567702139994386138663077272164014910060639636525832983805628696939160272669679720670698160923505954250309677748589884918798109067073687711100519472048195470256351289675237148356214853007412123071518605529989998799876516535327266828820835994807085556869110086860968201971493299803406034766100442487477413186362836240798514431346018795053529393831578586006853861358720007594392025792057802526465337684542778049887981776288790254403274619940339106405562910014164553342183105408850201922790102812120160166329932031090576105729962558649520799770534500589288607794304126631766463601111634679316209836454646156874424624075142805147338056262454889980220818475390693940820635859704104764307251128890569269919486514511321792188159106576540677428775579868012791426238926340277573548107040668327908577568254334151387790901806764184439270036301975285500400313387182169308362782131904566845524291087458363840043166969247205360591606135252225762995185590593399939866537762125008956446895124022728311476880110328068687905724329536929844125521155707623849823509166366357440719009631796965400583400103273276881602752736275988116254127832632922280283627965892644775436105785236470503411876368559652022232183388027208617808401590124159493798951179690478700667239124688872872534483113888581462682968387056517027225512438316437200179854271778991308323398107381085897938617456628030443992058301373961791839914598274567243696973903272215597532019909496636722999406341211776409558816582456288611385149649750842019507362341373089517149823631853139453073648467477922118592508366388926061585650317082904533477846853481581606704602710548826896971681234132427220698573169970627090518711775857572412559910020554319411274602350654752612419817002714756557953984884539264844293598565912003105822665841342537108773390316433934871514009534412601203510885279677530864832238362779158346951816101939983912418060615895976503091364054167914524098172738273312609189759455784453625242444712589776245078045142073843533369875864876182403808293399071701650380652923722028635999298732853731417671823099749800585794971976348849583506779370283725622107762836779795234151267688802317434123530216065791105510971054056990448806651202251293234109928190784900608207526396659437100287393371241422335826087264336479665079460870529698254403219126403847177644138224754548275710699014604667727698560684426399151190498453929276024941090239017521396236009588215130078610229477127424942227740789782853067184755201835838807731467180479017401869430723788947301634780816411257386787972596456302092505873223319487763566399483918230527929072360537757487117766741911995118225883970153232131785047293384514166299125840963573080711763182343904521301421662115411893584587519593489063361450293449486876632195024362949961109814197433446322946333226926922067285228484917014336272849399692922631633630019731521753655276735319827574525560625205015169259339248298168279272390518133151604936791359459050720029416260318095568655583680764982508802261742252466123783377569390997700903712633301057511822827915626277555163704632841909898167447956117470901828654411207121927673206144963272713762949980985587916312896213347424037730239126847222383015725403889570293174998275642436631075536425165287237111242880026680840410975253953233450268800369167263114451208548444094324793000854361942093846366643703943197745576005994816551058532771263587471496373202846419148627312876914947831774955339657747712416943895508615610954924201152307521368203686717093848569206603050732247767593045555842801833789777568538589603548406458689510063498222911494715138330930590477688418051106314013706870686131524245896620319901660014131372773154425447982658624748718058665144167989374095885151507413084900875306849832689508908701223256747981171274264145040362964272979965101378849059128862581272922022183714373932292059970778036009493510116255305916548893655179687976431999369505685534355455704423450453290693715381822290160171889335775598267644859297960645825491941676494873595721715917120130196826167287275663321366895679603571666269360427945754527332372445274703864572595334518326369142022945406253734352231470144974984628658477099344013879275506391388033532964134925247913073301777922855455305249027243590179728530583176220289981878982239768889083448086623237167027196567959068031946792629131586511525080503164269984132442978666653999579648755009972255296860336371278771069808813896421276997873898807599183397221135830849103667398556757248668054224779111596095929320349565506235705295690432184315020064527167813758114825924602126042108802180170409773495416412274801721260651802212438977913454391441780670162516340275673876043621391748137101302017612814860728929333864534326647582058337203351609995328904991185328513144002045922435231201889309349966574514969804665674637930893918653311776459170786909028898202870982497547022711583301307032045774371180263675749678803440712565404696186738046240933670761987568534267306343536562203312487458548985889350431016410367882272833050517386456509155648652010365260920832883523370144174733239657233822998759813478686259747114997511059515405253313222901617532488633416155916003692902020422653778401329865350710647740452020878431861313566242993206524329247351923328071090375135582267505490749931600872365688411008596533891862493272152690822296753769538825820528256597294268123398067148148515848912231909962063631218822150662443148634887016585871246403642902937181856241345916169835690026443219010740196286052364630331125199695979371361298564758857946046706804356099777105822100942804151402031273754302416268298305660260979283776321318050853112693388979056867068146556724537777320226753908080076674676706904746396118158618897117910953933172130367242653014181881489437397245391861520549052966222387895660475003598972274646116409685479091784806814493269400535342699058848368776725635336117565694541954199553383806414005290672869173910703776198443745384116933073634383903850710215896614272650310689107079583574299894146176170279732120174897898936970593312859300367398989746256426696178121465789901502876529899133910423597928494189628936471196354056828653421058585772336920144441771167297489111218121585601960845329295820669367210363623962855811439000801550707858331561667710674698031687605009667380043841266549547437673001841635812609960729145942352983419739860850267611097133151978438702935717053727149893515006635181090680433740827816963047302900828792176750873998229459576852893829550592199927255965816636440503497047346907593652567917228309135365078534518163372214426136941365663007903145021071475533996704691805785942527582158005520182417478817858641515762603696778374985441650516105924399921043417630042964012165219692035694703210739782825994307185101069197925041095796263529368253101592809804934178044964859096817419197599876113007490654331716836862385886602814575840898553158682608966640069546303311017911680534822367667795405706621840185773076864083500036202005363087596708955699280286500996690923517941264553578487506072072095799728518885921339703802537281926883790280316764446783229128843130693364315975829724701175874317670164460567203799182692885986128308366503306225123961687620351726903812226498610041089519643308496417409244831222624877540907335462990970089204126539324628620548831628833246659713451885769957718171402142651353556677851028610997367806359403181563918494461402879727439161519615528897100629944731628673890147153577974811378747661462514917899940174213410161493596878837767645454274759827590111836880110849158679060475202507264017135384465165888305150054457225435630054931208925893820624263892505486854617885618129584899452826813610418645662156946036785020907709452755626176346348863524329226869773218999811892650865285896828919625208897445549050948389914455528164745178916342314219593979373378288326217619222337816377338824077550703157634896288062862650241700610826289183145314355856152668169281245429779237166983026630418374570884232190572648538683772158239447332745167080225600904225301532277037243978064646960396502277821704408990908167760851003502483518225882016713227345331742940813548033130159058397240523409551874569723849862608273524393860664813960758008003336209528547278730947942270416538913297265336430340734634401409626846056562279486454089203197040566095531819406126392437556272708057412789959569727465281199613182339085524304805921940375465999328990439452464454364514576671332091380786575767798512190039541226605950927597161605199254966336365183862490887419421887336771290913359282200738354908972487359277700217290151207494991216434040928173742513301193691279309811234742547178555693999364999052135705420825293365446849149690137194771558305198321168513179869234338008885644431197558561948989389153158576158447428726029068545515416032412247611865492365969283706338867441692291146080864197584918655441918054976929957633423253380530085898677867949161658400896705488366239049712991501883606636726487484806003161758385377940782528369358475288768779177137856822832342359686082875921853984488787782979719205783302967452784062406067217310943332336924812467328347855945874136883974424388657129738643916171199750807369252563969492572484841600756662283849749788426441073879056867523971202801717896377085004114197973142184974094306825507372368717656333988845856424664124310140650980927175547274437005946804525647638153615618289364136598997507938809748954658669821216235661837857592287114742523452908293665636764674891042558094109009355124399652759532253096507373271523639356718640049467784947879882718648709916702850510513487012751916052263067205959505173436752606672708824796839665204627292542670233859221310139763592295079886425993015043903851647198230069444771340431605216909701596599296396927839630101081576482516390180501764290019002208187160139831005143074450090658554473218136192126928153575313195685056837447514272637991938044469797418911736605239789186894757566724764417642650622135442353540827901095284723792251714276120552264737944938933513602851462095112579306779520961269061337791034109125773484746213261458828377594527793305008523502696173840496396261557509818679519688325959562488589550200195308740346850919132362677548329849019769347941557454173114248790260412976528051551077474420728602740334778881275844831546753223476845288027794074434475241261875572430025553064473145196610846900866217250992765401017687137965573525182711980517083621134468254825949717540842038473585209482818366058755826351147728253116995050682754327799476065258516672991351803257704791945991790440185962907838802467541603671747382076419353900470464028346364355336381310296418740676017428969166037579476080013548555755424638551186964147031548719184597031431307103825280495613339198409988246486595177248846203358089808909386024726699597345348279993224457625652727051082811765619225396924894211353993785597667360437449582770907760329336220733210187820593742415401669449247691430189905704982790529846453963325582655343109127980552047268050823992917560362328786858494935036168307568782819799888335212387365332538931204992536226756339374363403008580695547902206861807777061606466472581274647832576763151919043883478883946510526856917367011850118737898891182830171612518895261216620439830534587431733086456323889760703572988573941651474992164785583490695524556336370855790136095178813688674589784802436491821808496602008071428717363432906749182612548827006405708591526969570312062716906986212289417828995079912457331920075776539003918822414838910236771026228831425984601321780110278965829803325083217999853248553779061973192324955053847206054580868795466990538727239490943215295843243771138712242120513343837453107454674915559374546879050259404786124266312699128774960688824668283193552171713559928739552378773686516291515399632694640046890886972746944589841829568713951606977676460989273677461394514082232383001663351582047218947589766008803381272075393634726885812053136112228055690201706228620478378816185162327673278153991299788244239630854374686254314155307390467047625036204014192678467027775382868596289723556875889905216590882790556978770407685736536947891400959162987168886813022528572845338464219799340212874701011650333134793520741901860136139656604371296500215392490258374917063456118086117961136058009636457408463570045273169246453109239511652729246128595965708408136832836916584247790915253811779980781672796921687013857792726272520166533313585542437583818207394688633747910896392765178759637965627821425672533813185013432849000809384437663310485009562232765411261657280604965657599594363925233392275693512687343877591110028941256926008928021934407771331489235248532757232658248634796295381055968204127591443762828191027840592651044800243061195697839683815656854174651209275863745777251867502753784284122533004564263270785066133134261390702235277861820791176705587387061169898679612505119518980562041177865716181281258686077699600546742048684515142810460751066697836177103668814802217229944572585473613807120587595065104900309036973106005043911765329314214038313743999848479570738976241741407085218783446460653176021549541349602712930261597683881870956527419344541067309362445617939982205355898137678876417300984166369765176470500479316993122399693343215032043256269302462645362696741152053788924002673718240825415545595756208727733810523245871521070800999478946349863631574119611907713789164023824702568134825867485232341702568870764429431570278076996891890254952167097334516690483685704973140371715201477285247297405396970883165114825431202107382359835898311937125068064790947622001033468494731181986102244000268004425690101656307343552866083804800995992320248137581213660947384535130701472016942769190147372097758129035192355330157846825709927562532398340093611955401709423662694542243516523551014445305212715322755427130984325920029667122979071718566544519668029911519984208490428004750761763237751514055784713901405895317923304464959003390704515995989982718923749838454402439100824281189029906753155826222524278447866038243214170447477903608589969852679398377832176361080637983384980585882433240531883730986467256598521816789258626565356719413064625420814054871477459247083541191865711218941891183103948178378806574333190440961102099208677987997728480000982557389253158725687802992477857987981821915428919001106470182223079343368159694653294088091123096068868920875138824239805431036332232368873295678938312604153707030498507637053132724374859146678831228908747352884019539033872670879856194981550198820849353389553505525598153236029561982353779862116424336695005704017765608323624784345791803724704435999629859931956186663984709130944843965733207524126614191416581300510373302093004223559775637633284735165650613275632363933833823586858675876934280125481228352036437699739846155999342670210786907282319608658001545072371949249445533174412320537031747213991969827805902998422559083801514171287921781983891511586009330664078465264069671550161303042704018452086493739919264551943416890330684968915180525226222166158078029267256650890921460177336869210927537170893673539055829279130504676234528331110744532071150713337421536138856384009330035316687837683623837359575760649773061426626691552577857603641475241929277669636624824548678575618871286715745711972399848839196994517972118442852796982440414880777900429457981933801015358345024740415914610569897194821821949690978629250679349319358669227027505900513992183770202010681849942261237278681895011818529899512504078417931818804109082549262366678445122646125541989100739059464944999454201713513561900101623970210377938166494751757084136722221303392387294309304165705136372475823598082524892292757704058021369693468150265026798425990682148460630255069693800094831162984927570939440218182145929265339347913642885200869451895435262076468201369991384711017360551250911125190162721968090848027368282032312349953151222332102500550772007990690160687302454518647388303300461466682678228669103498390938413933695072718607290722035175661092018727634105331610907520887168432128255743895657884225263269114255014999830076605370518428816911719803060823395620233089934685049209895596464026881220833821847066236647417534416598367282814781032931771249673416127099618235350386041932027047116329841986385665512103736520965201544268894466160521485819859636937119772791196659735008023067205512099592229114843681337266628528273074203154731464245780445024180709896972227195477514426558614732012891640663455460995002801199605745135739221914812125294842546219192483418436481718944399098101011241148664618246083307722697244355153361193046758341626775373673469391972020728360655504809259577131542636015099708415320442984764218828416410401596259055449352089689370524911690812815706869062118006716835516183640459513554620015538829161930188339050191348340498568831624981645807063309938442672603836817529526337683792371573653565834275664392370382367052873884139910773407152976584778327902230805006467561119449120138620107909549724586381109515250319883667819756988457372937041362257875329186342048607798551230634604014358814781969437548029593704029134930862490511315921983838232164019561267068966147579427730121695656303882148210198757711567572434030344770079225229047402319865375658915823531744447630296982670847102077778979548512268555210470695850976577269607419577202835751053121358560804684753914405046771396406177332285674053682011503439181022864006172144174813182884855264644717750121145378658211789301218262932062443211404165595890175082076945514174135404516097449770670880188696504844020180712766782541610710273266660028823878583917664970135724361298925764155458409931256084286113449910836409309266670709887483980233664311098367389192406812097825868836842545804852025554250239306406660989385626669317872278861191201200351527903551651247827225071132988114856441348963145420821054884734013979280449355275673480036287154281254580688636105186216881017763285037150257659916065856241434849169814304955325555706015894457796964266655643060152964876979641254371432176520962763267743222113296267983266637156503107224853868290427973109099327737187738712217150369042522292028603228683788007995719857842202082688817563687370237252170461164417217332447529086060638127857408153263597419810946315063734787458703438152677285811466497107384638682194889480691926563988926499973182430980506373524328588186795444836022215016403758046968412919107389133440543812404630956185586771569686285157669348337092662821176468954901110858761767268275125175433724659621448385623934929825591214817588289219285571052175693610126943127367754742311626521036732965860666582167001219446534185048692985412495043949198591186325987112813454529304512511919309042303081148750514147978026828352170164437182069956109800202850860490801208651890583068569604007261551768383847198944486844834358141926688654353380379336284040538544200663852441231379613737400640424981659078583409229533624982851473309678850151566629285684131423162201255973455765641319319091078417569539553731406820984256723127056170823310893939161898941875889599702419081627813969585603414918343045559320898294915951036424812145018584416922981910127682137581438569792002701801898440041387135932069746348497750064259057353615335057001153409529437487383106975101751384051380494398841908598258138677380627451523419185384083754320991075994230380831114788944441321073942573996932418678634398949127381270833035499711729087461164038131011697396301155578285716764461924734054983369356401511623689133616651477250390312118038859188575408811921398740843299622979780625295230635982338355079087730587012762274339112043498642805607497098046547702698268415478662619167697122205143541613328179599524940155046371435549132339301857536290523903722548843548514559146720200222834964347998597299819390850573012112018740564310967276810720398415889025857244691990905179694905581909843835743358227479270518938343830294279977270257122733834643680371764216376887016688022619226837899896408456505873073713183337238169231293201166869612690600932112979604548563892389531966680590141105980592969260179388532995219786564758112969978279985727448878546231616889654017323242842960415021770109279811944317607133529783014320315612315825841023668455145078848150918170874721847126832521563667569339208662262868628988577680256050381212952152855288397204340905860126214888888688439437509411854411541829753043124415205516416178509960280667588293480526922563225624600469316026176053218689363078876933406703553225117220766609841389796063848099015704101910834646895093022572133600297308192605508603346048279243310292881969035896572238519704345739458969366081294573825980853235871836129892424064859054122864595485309638592183089732674385803955744472563713913635609935604694376056559432777102051067279515303283018509256109286908696839585023522662438872461945511780167419686484884383969360862646422598912407383075125468587120881033252039287926208884089246514227477344319568605062112266966639215941188812536524121876088226608932763850283360196315270550824073046828102039876962091515390919114620348933764965973934295032438162793056822170975326692733355097578893221944914861834232312374725082366818563366783244508569576086961338469362026179413754330360578026792486138440723859735272991319111680908840346148970245748715514747204905024394691990994314084279502750511148658675557963993829712358805402257413566022630815037193493882762168398476862108634152487637305444514059187920354908285209076586727975652373306453994347803208726114363754209214818603602198611568783498270818450120303420803442854648887214564373805170635105840046110658255803427227819792830874190598312967824077638209827941116073234410567108470931595974509450376822173450918765891773234218436970395205413880807732887818592103919209425115362721832209587602127310414695450975227946482181717438977956135109610008377597208478009013325931052161508762348043571559339536708521052267373973532373064096400682885788508168669626570587323117769726887210499357203512902005552189261873455993428991018776685974138169330965429154880030689766916574021751324185842510731018734696354403829721767461862883805408900125406017703235034433297057899073535448930271045189501449657912058930154034125283142066088081813698888192827910106897611672377287604718976061606756262527450401033749438845989523468092413715146312830779795372662707771064670221267635259933392240955270760502027913167137131436336176336299446776152922497633115623902990932595723652718020322499393497593821461677945335778904825721262616272627359811371924127804360689143219831251143986478365195448807603800238966889657819539330080862449350478963854167708363315100802959599616114502809004500588611433760560355348053677213823108084917589019831270251422413830115094703739494630369235258915808611242744072090924633427243933961986513918197261583062279065086231029238134831565065000449366728899691218072488921836208254383218066718102355100611469948562245050679446066359038752375678300229830164781146790484337412012603904816427890568580611284975195143135937901920434086623494816513323511833634023066831066387681596191084770541436543224012746264771551145307176389631304795661461430535934570797315403361598499819567331005521214794008107617897585875016970776710828642810096024524852953766474110884416319785364917827927553401943246843702531745029083508739463051546231722427360468176861079765228312062816660785965668560816673621091915735195598194870464992893626343917401946046417204049491224466055218152215743606383172254671001750354354174983603299112898567954608445775531249641557130600275950346220975210843691959499019852948840584413962957627399521196086737514807979283561691064555061827098526165254043493208116027873488582954392801004153858122581989561202467461961534652693105506833437629431858945746672913994163289855337186563591016328199447030156647171416486728036453501440702513237100419521171443836359420733354830661252627179356367168029680952464673438184892685196516787275066613858503248236978080397362550960117287959173822435112716277710716577244738914792805549422854728518543241304873176373153694259726969170464282309039937317639564645474868727130917551472048340798118452375221954910346325403314956212147613023651797765443591373057124974866023730451359042908197702429016753455261010367507136672175739228202033083161408670040400678064245902486445855057396845114813161056887965026140755808248743822214890721665465189926811760847540284244881665719085127754490073022922017840413006653075188424131382735718037094270526558107031617320323580160516454425451859577303994058290675623348870598392214525438728043110652780345436687113810090042352001192169598627933299463635691496591568367581446749776326021395306351806835900048784281139964278574940463009474611923101834931671297720886493533167777657918753294514041486388483695335155439347186042561695265963503130702782180255845546816638346147032095367446349392389282641862427327474293997042083305237423989502531323813549181056949263618327686820010844109818549474441439218009674314381252567887007219954356494740539587186363826715524445824348968412560784072837713799252271323135438540263419623106327946899952746050325500525617747231918580182899503474305652165401668556254885498869362296108760692301803513745588399203116956305604929159854838996337874914894666441866132850952777535448426460184050913255163713030674380356156607297692282019084133766391492676964464414103469158112721060981068150009390984166225520035465310568790764822149614604339779597402838541208312868661589931244752756666146485482257322388602299383696113008890746725281470248767824596014872667477158513131390584865504457285865859884539813939981135649234606187138958245345534964724100063782182527754780317262957026267189127568780150830920989837338098537448507373733809737947886764713607689184664085182522371744174358117081308792215330297185214876649548274612896438153794605230710829690432058211291519925949675958690068480309968307891172291755789066376488233966819921756459742825087980882430046112204204130909410581111150630537349002903337714519338115434545812035685331340953061196848620342707497684586784085978681353782691896821179580347455178575166957043687182383273562139110492741811298084701952109119586368703330379837501368781255500687589655606143922304557708988348252439338177653215945029523803003465551729405818809381481858483981221199330760437509033649767841157409181771082349756079531784395364870794285040505231058768011465376402332761043620507612677154168493470410803191174208467901685417118034079168690073893040825784007809554268610775784729244345902846633324431914606171949815029069463135526612769618112251396583765093865517711831483988551370931845053690110950860056608924723266642812016817781379452992296695448739780544370359934394655469789597948608938445438855683803107557843975601399385323827175570087676370197319161983395174173036700652874061098817106392023183690582516027245740530424448768732077840874646408337856944050544658106832901461732372097634003304518215080949585456254422458339174778581357842942842543730707320842817267689171712969319325478310198729605715603776857359990496343581974483070278578516678493146016754918831692986587334063481976988266398990439252969137891530822579044982326526154823897464886345885732049851040372364436797901399082409283896081285654132777149470352643211970415474261459926733241105396938870129728258641206813496178127141171875018220217442429287681844582656146184412911821704270877531203296021644033655855132932523633423743900271775266366494794160927958899030431413116960203450470383747688400728927496998092690900895866994276593672182996896023553113455800855410046278738426461071777889271932869121056248316627319988214219957690931524134690058131739655320486845243277735526709781885131078558562216515442465934015801358937582616585563991065780479211579859240422872285812257156663051895937839078631460642650384819768406635986501327747192900235392303332380166521857167442490808240593379961083646756231236380982293852515434727112093179519454118362269458619128860797908117780805520003254275891008554848340548958755225063447535847400437032901450071570621063036444173268099440862531182618717119212698951636926851620584047697898514844896569270236857190865100465050261254128706335198432488800663820073963137260296998557629907786522446271486570603124515464117282500980971074311942509732130436310653717725136355631783955998800777570293401687772003016990339489273252398957782015743536519451850515617348373246724710136273594480897276415927330988405993451356001691963576074420263584393584809060214706431839446924965225111997828044953248280952144122835795316383803589157787664831527125929618535837627693025109018552625308714210325531300758198874420046594496602705817437439756512090876048771360056419578930198489231941405080956284625826654721488391703675458240941558000324077525362571966155157553492226292472199076566609529774175776207112370057124651450069088046606793919069383972676774736258303721702493445538813074002596003737318270621300431027058364214730762815773201690058998307285516095665192891087704596267764195310808486331027050330688694471367535807641538398230172663298199936039208304221152888691025971759125052824467846897583864544034350365696365027717435297633976200433764745360980529233177321442497836914872097277911107496708127012535728199024004127500813395567161205095753434091484271658885181323634999850356202488674191365961821225112018486434436006127976590152946372642519820839033288240603472268400157827209298450469640741887227199905727234439380775236905622140349277584099736054689544119333059515239544869872279674542606564112612871448742429733144940884831090988903281985684855596974831597122879054213934399851881632394649635073397053901092184668006766742293810675073098029755679902226264949644775506738050978983990089149755651434901520158458835941413793716702957934522632793163185316584388511573209189667447100214074965430613347013816338655980227114758559589820120357796736005920263815012710759422966938169090787475224847868399600138237675859243395951849168577451491695817022004679000374957579073857560192722953754837817080114618120328041209464068508429495342797330515278267672274138556191221977711024917519125940518543396771673716186519191168119632209939570209683533131888492677605485391632931032164331549314257809804732078687212550410227555602640553694377827262629371215360631744844987473907093462779050251014313757853639043654592158300577574217599970114901546799145882559829650144367987357790763453924640085335044906837053942137083588634698866421161916463631407545230681089822021853330607710373534167789004527835636273763736575914488331126565235499772908992329676234216637468783169211399956142690081588312075344681666258631552684627675173544448898322936658749220177685200199060529005377590645795326728875122289511333267508545844176767091654143743656267267702098821516299035852187299834036039701020487446507700724974774031061798798567063036771128755111858292412148480351040827838135836611750376282271525157904922285905998598953994142117823343385472246215332075894146522036425680437601787336119224585460029110885168452977029533896653095082023213465041742177175912241041805444807145062045767133599472789657346247411257201119908557542196033336448219598732477981618155343221086836206974929666475900592906322762340796337779532870879882488650032553293127758305126989242180060399147645065465271686181528530450087737086047548391123044372090459537238561105096260285811582281474047606851807308964051318603455398595886485394969334183000852226008994847535408381484200881741283896875939125723174456958677119933672949667569823517690038642438907537575301656692689067813362031886519409328171721768391184238897328240783257815265990171478972055274729474819362674503882322708246515021373369322491494275777789886412278069415669410379545348870688221137941430622866757727188348933899562685132518808092670830807984329835125419832484855234700678260670786749102596471895952926033020984966323709517522692200202522322606879610926291444503396821280296821847029620402235019593186343844787026694390021420411251967841196701457203615714670055814886584772752432194943421824181760225529568585384917827768237410336410448444630858011957372746602595451120000780608864788206152152077805325654619305240977816570859811348158296513193244824328450256118972369101911152488061766245433557942510554739241497165722197163231927314888976919132523383829152084912627896347163784636213933324519274460513952762201597986377108840668407263638462735387814202685341070282835930861493758765369935641197134015402708647758801109291017104885137503079362135910836645768563834975980481073796480671170420126894193753706978291869092158057087109532828035184012932551175798414936572555796735279836045495270166090895612390764697316461994428696110514706718461606478667937643032766205430049473958551589931460887116060917562261271773467796291922145596183300335048658086273234869992476609026761408778946159904507142364736121520072732934501608166415090861519761075357345917821478347013356366052069328184776026069049129657457017262057960821897959697477030785898633023371439949614454939375811310996974712110576826159394060413247893303627808237460232710638931659922168820522075582431887367757655513193507083980949724672913435380824764399875751616031685873984042033734657437864941991602616642558319374699103227138052631616792284507820348276910661945713156442181773412723721290941555971294547858140375390166180773027456253312967775501460799944158845119991433701871493905215189131981186311056803447677591401683749091846239129573847014741699729777578024840051979046316671869277052978027054967750383453168043141291782521709709731496317488277205602786579216443886142891140049559572300187725735244537516122382885756764930978555477856374407089374444889507288678123900507106980123573711388751537983608988558214578969540388865812860420911678107052549303248392848546461663609289501150846131278111920978751621781003724348528259577141454651429868496764448277175800330961863611247982553621570862641157969501954352468514110817515328318749215278539948595673676201719729924970764065266593595160190882217217308284287162718893651171669484584290159123145821702687537112638467268581955579093351785801820893601910986449212396022127629645136344350989995681099609134406505371750026714221437138633057885055800174459902368621125935510050429765609541352057698071461800671250298876040328801159124882591964965782566967921884099930017492229561915462514103709239264642079393366113406105287303944527314091084384145742308783396666931899001729480608148801739972587486837805103558612224557202420510476568947878432242919054921955707185249056231103969167793149626140111483038849832336963267522324632871623339375000241245937319616603685804978176961187087692965169416642385062693247689388118993768039026623942053131715683856531816753462176684598396566226823965501456945608184738999642604772186114175690160159604244551910270798890018942427351698760559091726654624907560438973711115087071758968671859094508269996727693044847547931689854679111670524173314300244536088803979619617116664306247872161407940356495128016334249077782225826409086114890239669978029383326965909355227136532461885753501385136514991608669910194893636626593605567235403172936032696435784378498917605021972690244476741082172553265200282555564133669474262695276071132977838300676612333381501225799462516599793939942772205807925806879120989533257873586807738818743308262501397097250077721465285286977373564741562811113634739967981499544024787815103831612426524795894958166445733483334259837110993266299468827162484614491395031447477209722133920105626465280618790083913085462893281622084323019312998199985458367003493544797757978664220848375098155554644935436219890588616697510495770643045493920852933174645146193149394976657177450885992042776061423117954446725260166361252502001914887315592340178531437656437334558286096195846878130887027100011436271627486849663132202758217521383922656552109125495127615571494514535956127626082242265032625264707548681224237573024909690446155798913211754314825527883536612134270194829992817243813865421728655053509124569153941635450798548715279638319078888488302942285996918350154608543528588542670507331647075187681536171799275509105633394974532998278057844063110524757752625023726636159780695972734006350415061660368210526780953120049301864633120054568113014739655809215176181873860203627183733420181225030118854781188281438533481255290082365733781940833489414755310672504533455629597106894431338464385256345771890477003692792629046919467125534861010367304400578423261002905210498554232736279204437403375002418466978453233073369249810744972172775173924658489484515121526962377498622482050630068532597892552819241537420687178650651715004560205063032490386564600140637265576035238897899763916273723714317740790732568979664193636958801662648225747111144333581936655328715907545190196630719365363972007504166725702262124203092044109777554752654748806113970755741353871606553722870898374709368045377220386623756764856405529069350805450978697806063857571811375633116881593243496219882740348544692255191391298533910271587510604337855469853749544404370305827581154594314183786964423182118240115991798741229744231641078854915235943899288856490306392766566853537904751801575906171772864889251716670052152567540837773864913073162387299048744068184397031357282105802924355025000928696470861667531528039489113125983892785064089905837835003850614559937250306724991340761612977558861007603458638376458567725267926313931929159346443976813273884714345376763968647615794782088213231001491835698665943336469111471694533085396228004260703269096290212112364379412668877941530695353651278377561643360951314662838531643853993889188102056132148569108789732963018784689694199588039057089509824530290248672695889109824548838317343890363927531833131655572111377140793646536086544073311691673086154038275991027651770791325961786706137999424480799058201926013756831596542011504435141482623656834410669828180805581555665142917783048228826213662012631551080286472836252601720049417419383807265491858076814713052664577603867643616358291515507206277264593400479563329959278682518296614713460279344666965250710239711793529620461035925173004269174448666192047327793337252849319804223315331480817074915935689130137804889456140722550294038122025498918402171902914180940514375602574427282755004599653996686107432605923205500842081354152190912021945504954703146167452646472188547276897429462672455852693957398654787834089649374378335961029510703831122041982109744441886893299174612585857143044032679087917714178497125076559612858352566737258489394287612291003062938923675925913126883666432305367400812984071642511456565592560042361989469871702167051479996504534165879324939445736615545306081917183851259124551306769176950217746705481144821288840464600288355810222270985504690114252237808868731705076560778752555186950668997363071839913289185318355127959879066486123295648451877123786152364238668245497951299947845142762799303689758009643635676247168554538277552031933599111653313245363296958462800167369177120080314916582658515836801853330641080470121527637082032156026187985952133703358327030000922600267297473028377375235423244079133633157710139637103854506282736411717802707988481877294680595705726621151683756485237908555971641123987421650404935835826966658311148899459194214971924404375428941286454478720902473319712737888185919872304804288305490762916687719454500504768157394972502592538640589481888940767044294330327913601251145428398721684149615978885717735904505064442014939157856786821730868614425736422757462167250173027974093320598790827385278476447906132027306533638758730869126873921038666846608648195896952327797226960843901360705084091625982471543640727106336621731647039667411712938913616872657570292680046993599086765659616714870940821473703167504800550478035806283774606571404230159718130826965948772881778668993369864364271674243542757525158579347655261656947002439154880956144117590188177885280345769930604833031236927884508246381532296824407349575367481413427907268842822138847263541088903463956098022351239778497441893228003362340970558075730233718213107229644631619742076700973814651743959363196691469376274855845298522124158557638760942377303341988354361434715218404256305207825380411101292603227147132372096702664384067282147442894241293520613789022417586449112201698167129158822251400734872995424868567214853334216074505763527052628588842782736997494372565395619482109482988722772079864267944633840619006302288944839962172601444627335487669651467723110226210791116588067239323894853948401155571308926873176844160667995093470193518898939582082202453258107581555277382980063503792356510183143450644731849790106623010306440287272227268587523315063133082955098128145853517027338169256526870092318991972916367808798208635110696922342906388743781847820509584849135464672374928077636459846379054847999510652993392475305159528355242953215876969963085312370972680688404730964416957929059135871007717089820983458528017360981510205713866395481290730498339200062319711433078272629593785464114296749052586322384793510064286334902308698198115558038366157456017016273370689234874534548800046542990782517458835366340981905877872319899836406098795183271366676989471440407125639542363619902145423054505909880665234821706809704040718448025131075296107757067970680894520876270831695853659853329578251496550129188089320310923433033556891494831979248987656660887183609069357508279310460194418805634589401415124490639783870353057506629258581007930254238091723986113342270950133028003071465740974824605969829591393800907436487522645797069842863725589080589281581961934691249311975756194138224158489998289251939257967135204349927757675252636599393707158875695092905487533467755908844228962739992553734917548650177253971697706609130315503722765486754244062209064138847135010518334796597455824883728015187205873509548124154931803670792213561756478504589627153321027486012521211709121569356549386182523388972052120088767094940464818726852055216968979907460269594999570639048566510664946581054389115510453386273969688114511916542509825305631334406135605563821867122324253507056541823190418034433189012225340230672820180911314524117388046500759807328143548754616516305349291930160864243272753681437584682533631501691498913397514398146880963923546352071333625141977479489782543755812396816687907228613869041082188154461122951510505158803960833564552196555328004963514383438740017281670701288074278594586523927658660504882974918483946309017684586847872429539300537101598546112226690403304675897060625013276275610089540478237825314965678782997607769636397955927204854261142884400459304917718228548930586467274661765957584429286623081955885403926211606669736425024592650349762482584719129294233136048024646356883667841834123993855458962400290556661796629073674591586265192290860580728433819544940686414306153592375721649919150638313934155818037966110027020728613209061901883583262287696819064539446723677668710947899020019157998779982213538192036587254453636378060461537141123542406751740790529261825699413824032249965105532768422728183657334025433078849204505289146796181979082260314178887738221307154922198676738605365393986399978786823942898782082785770623144911661933287027043170786384022914172643390968336506761589028785028608327601838250635920059692010176197206992447755552678201600297583969727104379206730121358934767884819376772870209288787703115162882487493421573400213669400409725041992596427527589675307711652793180561868180292763177742402566146901831559664987982755984327134984395322970719958351758057125058550566452982430351759161067002843699975668668472599052497342859346806979782643868517874636394854489421692917463654331243234458170690977314066795440341776391629050902927329880974852890152476463014103923604939766397116163944847060352510976216510268940842777212933212407188517688851984448996987352870466828967781954867490975629267574772952810073684907337740973654434928192516673844279362913798221331789522045479420977417150468624603243662472537897923567000317401364546539667825103383229929316356921354998319614039401225119241718425918994862226198285732237486442693724128639976881160036210110538048913255344074685792593219947642069417396603851058306767536699082461897028208580584903913839158687031750219128852659486319112243189103137694801689372620497753468214664748175633044175062268734415599416983124556945809331929948215520182194227246987103035472270230529912711629490717039780173390538203040007340401214635566106895542458255125148867421141662037104098332542044386696859643287657267734020945159792639806638323342185576148157765306054807355116245450162578910657009104914691745451041380846470802352434492965384301160943559436618338948819422050261989921293506859847490192946427980623083522139275534513197212495233049022783352603970229445701779625613321179344048024322384077285820846463113042931888218712458143583455903924357662980063068124503772309251623669290041357520788954935698020601811099758804783991545707500813750139193090987986911795790655148942543638330752970961493259346837717052777328489860413422193279258767629482809864064970126142923016021294336944297699695607950184693251516096570989966096210603543592215437957960942249618955101017247886766300030059108042707069808340581285159159457090057936020808945637078274730579767097365293040620540194640903445721880588637347987231565009815553842750395288218019820839282859791305905187718325808976379595252471792379266043315833477098104861099723262477630719804212376296745633649376819685214271423642034984160689872087720998529881066998286812757872198540088774846340141696369571674952386876995107347028102589063208558991204444079580735713509358109483769798071862684067380320574574738341694232518990305232494674861155516105946259577184624559641114208455689288373566121536792183034463425138924461737689004383949986890579536731931110660636238942185757292016819490194686815003448946312778209940648270994163764216748719891905068908453117426681298207250589173054456861125942722589399372334596725818664280165326968858923224694802457283599687727139499216926916752709606243558851801247020065149077795496133847693856667360704618695256921943059606213764595775658713773732373145892646478555632460881522063036573364160808438025722892422919200361291927607534142891321119876689374721837758354165263437038197443740953962636383246534961703019973521362076099758531275880883810008610158710174938293742928264540790272008021700135917708251219818819235349325865070983539103617496504774366573322925434557187436652624590516084161622915744700023795544652977267099049420522208253050358598651460592225865671539276062396428672302902576245412734674631374921144142528348065632666636284599192303753103967646939759305821638208027318547640333469048283910558243691597947323285718410116991756541350481290623143254151871378267893752917576335826712561299739543339068223796803649875425449813754085474596082086216890118979555157298452336786392534509947005370549017358917207472364735845856328795494264615743375556967970255224616541519759181865020297698667150334002311474038503304702655298788212480524364550360013025303054251986202242804326431152445843812538064596892154697415512559752656172255949940384183556250775779681056308147452592696577830761403787951572455409232422463282824293438157777998060326291894089333874254187468329169650219850951118631525618707858618029766696579208243479300545912567528398958399077505747466888939616518977863647853135239359722948828719207251529333518658559758675594803292644548411084849944642425599953187644987638662705341817986945692925495956805877126252934045197290221715657688112291374092017152895054015594668616092210873821501285574458121240561998962521316748332466172277192583943965232025354674001162362719878125471837963372218861209190335709687030093708774549509414863243673818790490977424279633977972393705910115422204356454565508295984326885025681707109280885736211443308771343838828230775345922847407304865177335305353004783182379762517887572861647970085084136459086490467154267062618713958725381478922419608286917690581243616478360269062224986147730989221314476221275145487398613859182049990190142475711366446403285155724637881079964726343042848548952009297315779841766828413512263000366785220682389660188173550479130140266375277943546381018396162560534043794900066394262562291401219640723669278179722106290408023297476236391311705168419571337879321892512387881805916691023957855263570934669464400370045730554029602880426435308102121177291384659258537388600471975708244599360138941854387268752599742920782800158438543597385036057414059159147103186887617683277707164995080520123682012038922015612402584990751683158840944491421210357962256195664020695766328216997695021243302239170381216045912888814305324206998434231848063988057085573297279395835913027283665977262234148529681911990148246007475169224447267525208422444191088405291256126052330759367590888172409603243906481727045219825784177558983888741940237222648656464600291673857115218315611091800653271419260080829169902790945550354929770262679955229019522433694731572612490581925623646422487153409468217241135158843105012442416286558554598913090102147801002142026419004429957911146906741908843122257083162411091558438197198222588109134583740096722391223791877801252736959819760855586650970550559608114232567308673610105256582348987980486834993362371085535217306185907294868952152354446655586124560915914623527258696851220024702930795509296988787754248297566733670599795445901355344773320593102061760764840902434840404809630852423298364270137296018474254740628297332695722110879732305608543674810741043546417228277476645003640033208491211374571858605529857548972935208091206091854235792517900362458268512652118996811851088380539980173079412182555430486166203071915785714919573315079585425231038117973119782397393005929495043960390605728924504006233807762665155091165997070403249589298410650342566125524616249126674379465806597013693056251802453788417027781071132141216700820683869869704424195707124185543683349075701730068558050291011712752390237246577306143419612437084401607025739371469748165764472172373158969873322694351258383238315583146064458595997078118499716045252406533130398772342700333294322723006577289537501118600750295285523102248987630322806053279242336989744224621097195040798704349300748125179414110686195096104017417807329804539660408900340140670425760924134693300731317608869528732822068081025991673991106850156704788872222535837585658749594502989536530330918613657560590626922387917094860110361643438429617500217214018184883888316794990372485074823598163540042529617099849993466643024750363010659239636913428339628650741392738474616373881199426238382320577392095519700886828697775566654882172718909972577916321890532757450091961119641936670730083619359327219552377120903489633545291681279894344219053302105237447624057634518246826929016530606795857440842988851756005615753372578989930623291911222963895029311009615665237077251513454087573633831421127041251854253463323049766993081239657623707366314686808581301266213195913192852991703240867011060353926402712257552519644566600510692577644062456747383023707185383221836337843201465228489743945210758924045775591349533436092615168233146179484581696219126134136181369496281429211911630990466646372381964123260880337501921994626113619192190048395803139978913573535392466316467430499417043745548700662363378904557865382742915468875901046695594732124324932091547197902113129127718028664359780339138837705846507294236145225050212335252809287802790702498595492996481446456717560571722626478933535697838613493524445161432497018440549766249254626745002451919942873447121241883005218847062909299650693453245031551374384552831330980678331522318269913054879008976889813861538152270442761540666191854650838106549955476369921449485602246511856641322858854466980544343389316386771825661140952256892631333556456150789142450618130572858723132573389522082359070790364125623459048095126321702504326500319565364389033825562336269584614984659663212095498105652828278209252885251371831878706624144678727531002975256291288857246339093422011040745906173176174617040888443910388661856782421978077817719582741290370699086311384839056758785142426113267396189961089635264511933057169834453250713110357140250310213656621311663083621769495630617667309353633366677676039066009469031803135982056678826133348463136583733598723368916475576210314143463973845664352247221276327841001990721277511622695406940904591068199792461099713294136826090596879593928282752114653876307921674723297645524348414963251460910036454152808109039369351574487309903774895323935896241328317968509025206810080585100865689896592544034804091028188953720696352303409199749475457728262723993396244181258719376457319277167517306193290626406872494805510264772959717156719454820427611324150540065761035674288390357282123018496784283835250051193895803327868527895231082733209535199130277099647000763356216558581299136187160901038737673966526761607552021376596487677786031783003505707868512794644123370363027522647503239743079438870308461562610865767396857617103315352713403735372754055005406351327724188963963011891472165873224305904579359202511247759649680170129367348528435973297101339521483271850028223963385366348871514300173281454458239221542235306299155530035689039029263391463394551934256094887640951429740324613152098771250422377925477746406779299843177318930885230494525600099099305754958176771361045113632309705702899457604007598116788009767613507442736225717099265573519585170546523875887802591288210649301769642589808919125615585356585573873414651495727055036033086168736698236440038956972394495685996293388619091024476233946879157329090939133848926472427781555240921071274732184402579440872252604397192757775008052148794869473422812189120651098459691491752004923477418267098047673209365031102313187040713466379319217208243906770759498529320323918042862391514319057859347889698235864586726507101701238300291232796431875815093926177216687097076335323559721488376317571761528889825863826873551894574689638755017549768433104819288043954275813464517117532770574763026749340732241464127230787104376545777013456692800268026349081273264299084038734977600400320969962711154222376872522900802297502628291517197473558661415809429867083260376515238226224117002926935088680861337537120971736732929891811909045155337223926494839866543724240029280918090835668799970530618629947796848633495479434076723929119566787467353428833755181927369237485035196683967892088817682596806741489660804769939299868063661127151117048192750341247869884719758290065591787497236889145344890049025744824681367191681281649531544213481263271882934987702846784158088154917082305981873531017430441684719204899803861398209342828210629073884144681443378892412582306467729675427785374401467346150619569128334834794630883706074612858961205295194169885662292444316979706474581589381237092451993838874515561313940955350006088658650906998731005577295410082662164085147420399245555122659967845342311995888201902500589308095750057291566264230632601443802034348914877397907945722066937375480922060206609556023566721842320283008434935286110125252433381891834205182298633485311774880212218882464075403131446186741004920492050124741481919285992377402142825410104619944830934370396768180001080541128818814522555860926449495321201210782390182463206232245255464326691896399782710719229842043873483349499250830389512178537411312624986582910466070123651274186125237029442860570538950675310117902854454693439736803676247938719173656732742424007052796097170180023675142813498220994711632950745146071105459756613090112446196432786145382221781168702499580398943737304639954664057328520017599865418227665133939552219869792249241021483329127114457614518780531514519063583486513221885446678695083072316842151442831432211981927476197126359934456417562395145482517239513696445723773686910317986006921796023977918127307709621667249257088566191448807695722332125612388249002201880774072442577858647790641445990079274676091628345195067654023634390151430100484104539703084002365710437660594984091328597515641482902735452137050192723057698024418416835552149637560485901144309068118850465500788708633180626933284763934640193344963292881890180582155878356818552428390970289117724979298030022779898526181762087917292842503075912427576756803148821388245223040749938416351871254677617735917011194364579272597679573554432743017946000724110895245734392744047693022968157919661489511834385805975931629154267142130233073594299668903392261599727910744160215327799093387503228962548861002395121002634271784736498046748594905510399667203033428807360347877856472435694206894518238877014775574289489391511666224960213473487476531822788068731442633286860662604193153126467893720083561757741289942872315739254786160367561790014393426545070338280047168509934092394889366182079744866172614826871354711270576317028757303044166257621673696379953005928706598480946560743109547206500445435590335665377848340130725784839293782139086718207020255493039160412062467053834101419764693246150946540760335132067766572088701259452425355450895047652930211580409123403809704339262544114599210102532400560765279467268450109726447634115634540758694728444453472085108119592071403285488309455430993774474327538812900169725230147637054898400453420808197742013611250344421272762648201525812447284347324477978030095770248484006275060550307282564097162335925314645795835142780223813128586053543441326872836438498556799878863377441769124539280968208697878339983859497839589339278688897557960546407666488347622333478073508880718660429621426075193993138097069645938982273334861977357748940152650461521657828671260230738063794215859028172851953896916394157640406774781133623832681976353764018869406275434261868110780665578297755950385547893112095483809868596707979729868817241370822355517713322626164335072106579088535715981446662461988246521454567354627797217356175477107541225350702762809248389869481718256403983756375959499856271743414210697678307851256345636458939238961309836421976665921347977507727849762394418894208298696112671214034176606583172936897445517454382100155920162633644372441285200764977667102954416642275687659247858993672904819527308116828597713225960131003127987278177694660444397614094924444824103468662020406702971987779571848209344118974937550469615214355189846067372152345668022414508380633476930309998497774589816210631791895611783799503717245105689520140908485310563075388879987103520572218391140679478427906059534447094813062621883331959372779750481774307252593739605600016851317815112579410077652925210919391133791721303957040536557415446047977661076439763960964156785276566148948994417348747091760776858342996026540089348671074401499712040911192457475996937577102105250968830498569484926444894472515937953167268279108045366594067269300235271866970746828951041323618968549615237483163497502890430805615760774533084468095364179007373169446937703256469279331270715070531266069229920451718300062823030196224511229877421293072677721321948110989802932956298090596150880801763482422275810055562221304413377122971293303686956772367236218371425227376711662780055790025179341671510381946406631454957241282871205394466799354766948117556437254008737727605476366881006007750445980848946545340475563532462893306499522923447054625000386486026568997985931485626531029731607904483878995431375857599587750374639168671203663572492054530441044724425868206037131278308697832259791366063460518244408500088332763070371180651089369763771103190455608033850485015761730136790822086968556752884070165778076229001170828771678318783647540157727271364831810829335426187359487279034250114151908010476476834615848537958479227005437582306685258491180254612934426961290939239617097684466682459449578167060631182545829188906662689865815191681303556544465240572565308846741619158662122339504392243145512823777364333146446616593464288399416384604059891823043818440525295944042990155061181444968867619987220568383719086583159300972746022035009127249800494156458678534756537732260587473750454747206072406516182307136228435892229630847171284026991404336628249137772757412974299189920328652733012629353854582140940019581637939449340694497339702043745474138554429999764287871525874347984535944199821370750751198677470028358312359535580426033308236646077658966306101962385869656966654551408083513205737624921167714898407037707021006780479311087149245497476776709925731168395637119648143707722563294886180144150890023440410318752030473099442372443671709288106150969442061558578010426078050529973292521412525665848405919790302061325122330277276694999166567996400130648732076157938493688381787798283087531102476993784668825603667843953042610664864738769302980167677455835859965115623314914443975695856106309044666727862527470911763422490028952952714410216833792110267749941628907527301788863275309632877675569886029492907236551637973606178475868519562080155794693487865140796617886539606843146817927526455364076594248559492058730670737634460880423661214994434611218603969830733034620451129487617042714792357487984814765962443963039410434981706296133826944095230990449936790993841438983849565865544047882158599932927879480625425618644951507822721364981732545157620494742506315476265897565491575573228020378246663070316664994176958890574820456269962437895354041811615239339929687573686848590698202927110383756065484689134225171881976305999647778868435318357218972911728112057059891689824363054656114360070242180444578938915782620614577889548652933497315638222417850649205583589406175867553545807499379293118785112254674549154665738739185959243900808842818232686937571601800982734070359217630368299311769201145402737058963037401743934842888241113321062679551077943493145892587772539641968691671960206597447245323672284008635145518960050532782585594361637542820677039834456635267518939879229477339303356265853115731948547857262647790394786725993240785522755015306160084893987655638366241636478252368471705835182423536692057233834500854917342390521808891037875284923381196594890767937522469591608975595339410516134553337844527299898178743283161812239142663686756146738252214141692795663607443683092321946229885713627615003132411617306489193956071304798348318644600676406775509722912802112886985799770988715969788980524509116635214871096864947673544435958089513901551445506416934558342760906057692183791446131205241055837536386607436688457462631857253977805204434807170887581916283899823756851554255936422120980921589920833437587760156832274352827782183992171523219177006818141551908857532632943988990007094857656422011913014317158499902329137403877881854092173594387416961970832236238611431606586271277604898458609575582257937807500212372055597444113653518336952646204526119584130946341157307231313584108242056801545609197737577834519761514879360969168400154966843260985688283918077032873284666682535363695225546649649076948105145788921208409979969663007660455016490935406826982370592302760077019761401573914974258293336099362365962704141954383349360812397948695770332482204592749835803493762989520428501412308457523977866797630616178950245743498640078208670705654016937695337067639135955412353224975045483164468532918559886549209149242012218727458996284232026109140516101720883611314917257684610565690034967790811201460659546584087081480194341107428785801291228308223218865344838135650729045649007457528552947278205964493710208782986075335807005785809292027517737163110783653829112950276213504313400347089839889804093494464092841129844008200847941461338586386772785278716419695614341294055967814773318774822670524046214032878508933235424147930488250605594836595228433535982843169168878006419021457149449858472562822898630900571492820028116970536343695006731736523796910938357483241093833355852785902844628805030881639824051014815210656821676509980345458426183983025880178001948817789511316911900749828626182686614918589878169259441265298036265214568623055903954459807970266689920681369406987192556078611657709318092714721276650411529762689756526292656579086413085662818183383856286205526383844461806249501248691982327795708976934930221931701252572273876118271651022078738957354719849005478932552791437489099859429583713716656852953552766060731522165309342949043991813159317553560219170698886965137436321824444056525159638238020533317935365164900870672732176731239564648764042918523911365391949681733557148201441201769759947124864874462571915981954453889787648247729699254445764530964746008574551449750820163158858308418239282666952233824301366876588233062290389221864543496280470706048460187191867224480220176273747202978510608862629258992447739852678959665714509348883684485176858527961658612318441709133894118396668719393944441152265384653820580202035185878966921190162857434500684289201366075655922242360792555939847656575422809494488741179170357196988975472866057346808621861581652043794627999657390911346919214098696283569898031855295621634669032153759238510671521863757433940445337034808331777124809686178300127152172635853675714051792706903708449507097881137844014690737091721044670990203520166125440725398986618479904309157109883809482855039597251515537443219826054252517009384089735666240171551867469415508235690703429344195386207096446691727405002574058181805479229946996571540756825917277579693579572466800190743791346778881874529633676867295164891456033919211139075071357136263251912871374471205379639549013204391434618027778484853130177653643759772196061016962303643903835926183596199276331205399918532128634398926896109586879520781049894907453138963186102732627628773719219681363688114643476772452275200696340891682518543263724013637300221458011866354873906923677626704352662101133705974427427059728464011342410528424760738518209561659722869690060339264396762923368630810567317630247668439289124179059065293257915771931741570971391096067088342676717072953764314562581742993503037327513021383214425781788800192851190981190839394079757757560314204486594452811220732447906733509259241028367955427116347419658170809753426306511154560069364019164714758318887311574685916327692094983089407304241622416075533835869769531209245869620481597811751773850594988591061753054851806410577418469305912722932766648320258590753670898200217063162112423967005583750153877611017576423713052795917820537503329068280892932368842025760629186840365122767779462687328247423529913038459967908291679901483229148636350037758014343125460052495112860303025719569049659122052453388515812139791338408811330793140095028006680044091988372162555735645118695336576483549319833879665803929227591960587888776185969267131656690269928753845057027659695221459785726825558815831144482099738988125253423676161591564685895924724909733488598146847570531067929378573210778654122204897955507039942985518618103304047753445321647684570753292529132891384515915598657789451180408319664772182352895004413206151610599953897565269183683614995546226085013547157369398654770809134164086681972258644633127409435599910369290210561534468843590807975789919409308053994050415516590451665440939962642430346244290234560016600310062541291497525365898352620186066551052065138932791538583046146804518170180770185198297004138722118160275036885440172359985335854866050647402855087405262982364142138285858666241664644977491952775972138576686648924780241823088810286443122999310270998162246136533361087831137426190830201936879702842011538166555594604748524053441372104487381223329550793838951828894110521277210063225681016889738758527012486887271244079182889770252515154221381782619823368261927592418316083391163107423231947159553412210973996712738200211746152853556820116065926577772289792958318096816370076082868347349353930177816695488688143321215650994533426948376771365285653622016443383889633663180578563521575648968823563103983149655289223278279413058346040599909015317124379570998843445876791189887453564248627808320801500169246622973988794848798508085190995612589014012841492970757857556003042628354021125260066711987315332923489810755789668245131024349677755231770227536767427186821503562533511440092745920970091358806401421752047082554538597236157279874389519455698400371335245707521523300158571526891418415666928652286861855367874911898750760238474939219150675064956120578241594741684532754948231392928770377397481584572129042466410381066881443204820918364981754403701634082097052164865576470102119691444915134106788240351343312207466093439509425559081376945307901784317701931372446918641463072766143801564603606584395850477994632855613158258706825408818689486664552331310696812360357825790040585192676227824160453782014607212722151810999545833890879583848573715823439639843118542603659676834569806659587171122289792644930226306913905210896283015234894643087101483332893968347147300130167023355858210900394333008932751110837820641688659763307383222613732626715667413007350439020409637370366425051135855408213379965450706874550792854647187935052894268920466631545601055442979835658648128231645439458421894592385376935708545808568734520580589723422061024054423786876199308378214164447006049968520618502672613887879321403960347119929497421571568262365936786030711064880797734871023352673933888214330234532524548781285030651291822178330817855718818569910487768170089718434964463186279854416596431214241852922714466095580420473021261766904296101908077585939256514938890461984443809733241605125041323698998988243191321170626950124334637083683520141969666293350733524687887741919722715406731729416491664508127630585686416938792098198993112854221734325660987160922081029342027090161513625340790867267193614171996136892361279167835345041853673392668186826903452760845394954909201782026032770042273347922891807368629173197738723901446607315762672205168688205958494000415384942371777081727887699743401397565115043806588620382491044530010756528741802241810802096715747657979082325622790737292128428656614148849867377533928548951586498411390127133728325845525664508322850614748111324809238708936604650791694333879486631687266997629999602361759801730938660311521363650854226823037749435332384857333505542140250101503402946874912729880178156623795267904799684712133331963000317778587996478622820285561979476904808543101370940835324297939605296037913007657409368119289589262752318230303419070238482155345662291299808534511281607579760727017098404576910140644637857185767270858886500358842337068604816339596836046650817439137036115916236958368079132305089261345802373081228108405483571438733842538130769758424497818283260037213545644268785962428829952277102827160207064802758364982221350729400093363685325066879340850932249840991848215087205760218930399718076608603578102212135716737144742024152303300024658743082784713236775493688347701443628603120011200790884770139415635717522383089376121079524074664986041010449056850228597344393843433380550679804164627567720833821121014946986574589810749463356789025100162861665011895489096311891869783328458001023373092703923552382624075325888423137669157531108072134422066950539940975481506157780071382207021469451799970884369435272860834166793807668096461318728756694232185212280842284580222089491162292053217889752202504840190572115236968375555983269242589490736910185449661352345749779989827354751515977204410655046291993122868508751180805295564477608304039971537423408094858317843619156679393105470931498713896306499362863009075291501633781458193082410657214969226810215029389876669561099383479408487704423668093262284441527234202947195860492202346046367672256772764253660196013626881437227780634100203293189325621499226421321916613037460790811229085869180471245610885370046637939458217970568548287174707582952802831938862039162003007334986967225054729442142712273614406457152300590678133451888310710135383001340892503132073025721953810196147533801132907148153024074937148692788050151277447610161942595455732916243119646612706688029790205171502097903361122983038962440662216618153104520440848589106719038012034854181664139236013765051111363791419448383192999953308495395655691508686477459388341866033474673534729131371707228851247833138682094164803836281148214736432588563143626249306101856608556418342191040861843913603123858353831938400096287180686081990186048151426118972423167174140643424610914819957891564811125179083232406315890153165631262510739733725815888270702990591701194665685288482760394368291641595261375976172895123217570094195735805208131805161689536689592441038375197020518395543817340597092072981642631065104461266177872280838189215434911958359861013793466433288734104332987367074950873540590854056059047515326393030167695073829594211348041739106678708168508050308865909789759359143539731537007664107416598781934715552939997925336078123684181020915687924329758385487051556278684864758382922511339407801173231794695341751912350958193146079909438496741576825643308137700737748079568986507042256208525520649951949383172915293219468124096510709543678787275298609925332345401628518969112114917946563255998491510914505252069298798668610219140997377557776642066394244051353975145624580380563605438057540764512679788514202753166081192734604511863055906971059343155680538655051909695393400356045481239589636192865289199595474674136369699918843942455709676103056318197707147035245804447090579694646874352903272573364471521186585882289965952660053559436680845153329105069553351414091643591821495096440898801840624323362981620356080577993199573391834949786038270290842876048544859131834758558530368365129125947279366450931070627425852757296255402150254729253793485094805691320822561378547738244728049215160855364074710183872726278681322183846806735520663059395552995181591347200104194926124002775872240299671419036283736828219730008820380988867123978086398343931802214764647310242290295528448404979800163707484862726615430990994789245013195549572137962595110682921728749767161196254113306010811847712895059234088198114718389319109388579294199756716070672032410452474145721788523564319059607139807898395667989545799160518756036422064754712933511582918282759292743554937860773822153406577921579496412699261133097435077209708163813067470397289031647160876285385128664826309831733994350168242856964221236985000362862556124177510623091572856390250819398391295093168081405170334443323134054298570705877452159913966880344257246831228911125094992361310270117112207203833130259784158263385962536400373788133820670219195015574616365760767009897918054790894892038403980984162708233907244917258511703585919418593466762959424455272444922890400635008534788062446513648287542221079805407859968587596446622079962027927213538623384304563752475460742936386730044536901151074760477960077254095955297679941525886574560897237103037233992443375510717663413172256881675129777178805767901469467381964447712962790671676727802819593361983690042769166016204213887115754633723128146569807898204727019586052101222359131216124440763126630394229867958150866374076847343696304218355212047758958687170711021132224353842794356028629554028833856452965751950012420062850131718415313634939663923671736987977707280787650308833705532903800774104691199814987301745630772976294537873166620330266449971508071696555030691539738088434904903676250801940331164108446747631468556191645242614517445112869025437161710978150487913545555173669955646355056060940455386877988741238172694971846832460056491048768162104387787892980086308706261831481660418705141509502691380785749136889374653988125015216654645241875514601279581614215412509468370786122976359436859312866195959491158994848797407233413409078623788136544470083546407938712865159074905582838627744406345753537740662235887199352372009271492745265031973857982313851043217102852496096405439646331844844344758128226611470992452020774926622261854288280685661469478326049032582965689698327720839546314057683488674022250327005630397460495564392576580768232623565537684151492811246819252632554178355284134898657010130746953887467932425328439063876186704492776993729753916097497459217528469032218435259402550288702416393928310148460308225163832855436139036857597204566113986794815667486977592586975114485442110599832765971206830098150828803615974048346169963651351465026001250037146139725746422267158726939650015171651079192993272850200632106332678461004803407920205235704247600658943326872918252762049904361746564649811506227458312451819689448667805353378653652648963047483904878965301735721083794375583900475699436110038834289831173988319676275807868633396124109581619760958123491967836813823988931166057075797880720022823521820765769092993801745066368000807256067698792808501422536006516972873316372165017362905013508635460700095955802044711980257956491230143377148711046088719084216609920724494577710443412100065916519368795160933195494163548888176361858965791701994075884453568543877752358587826500692612120524016967727541500533972860979310985478669694836249397173906052016384125550605348265182952412557229982324804100634697368951428234595905715423771450160222455001914031978146995971862043853257478183469961093987475811232738007656773895782535576267191401047278228770040858567576320285804703280020108823499214758702563785870614869071760024731447376687938922566605492216911538149134701093551237880539468486393357382770288589989113207638706862730584911530446749624263580615157732544050709153918828150935206866014045347015800361633769029787001150311303469093935959178933999972125646724921158499391573994634292024886721435392535248811369733069236129396231414529771966952021140092428431506411104952654348462386959793459422685853619288262013431659157599999216450963010367390034520999872366836877709694462779354815671867790298965619604719920302335749635790958675442187007626343551966263692832067149251905959762371671590935296275959789175476366539647625899184923108052456896594562794560518700469788409056360133378171993108382014308390063883268145070739003823351580669354675224811295971358059647961154430275806701565407200499198665839399391956908254181975811482631893326072209811930064411929583113471028415601110677756103864130039678811140066330114697896711100399221016176636474182931965612879992207740559356202212914252048745087124854739484832925210558230972007167059933566585571413404864350404346964987577709391039982005659890035813691689312109262595883879952445698833620261049850463385578794621441342875872806857750694828526065547086310334931000166094679163136940546862490556285043709800851333563254140709886236263367445292380109009724514485034906981108351777054117389601629395781912729570644901525028071529575102780459375877565236426131604906453233837830411843022646688647217161542222953325800215903645605075292412383544137887033966296894431408819561854865091141196083742302620786599969841727825978866436010045710155600482907234833507329173256233712392360354875075342333318249249844291145937618289532622545852674068231933688382580640572139783334612143801950970504773876063059210966144509145742194233850229530973863507189848305414698405844602038280190788546055013302500082543193704007517525414953811348979695677387561597423806451976673337912802463022036941683308118629809437768763434041451716733887878007761927194628087398892221350417117275584083368436931913484730553206231426585259296816551520576417855679414874205352131028185427456866749231253454618887654482876853741028588402496454214329016595740059351077125216135558421760415518224658785701724557723433470017772883848161958738222219100776610474392717410720997725635842936889128342017772056292221913444882623242678371921453241496852089765128334324854592684890377245310244723760373114833705183017206249024227372968230126475846955216144255610468608197746612343546351610014450614868061376832935383400768507368443290372987754568806746389825236048771402714172791609105444522390957286524167096090728267663386671424900519635598369007449257307385881371916230120328861527278582548095669375945474729487054394404492590849726681667163218053509660229425644806134082636882850877234850528519931026132530811285920989777966837829192411851528717347210247218622219911933528516701873833357990719628892852891297888295344096141408998865527508690194713639044486954202077996637379154556612602628499762829258595478420407500161283024447470680674012963190219004062421053326448148371641730989029284669809376637657631852915616929824252892318630228038571235179218252843326208534277119503746549032612984760387161259381032539030137324003551412978178317212982142431451990898637757060007268695632436716551640739579534690551621565877386268088896975847824897833984820442079319748015138996186240669003316795425429755127816216086577342024998954766423370163261700833113794347785498050259076571758076947807602065331656595311917261845465025708247941324828787467592701123974451608923451807658653941161272253432174080322771495693842903913047874558463030422784762931478027296746303946513008939589499539586907674865017952199258712362959283654623905686913790729382122233983709822390383343154478141414894867215128195766395451881321271049179303289531458114740263738701117215318754740396506299132619452577242458419648120207233790696781690042130517173307068868982414120524934425734299388513192240756336711794339872931240049813254595095544531580406605418639821349245763518711724066581773258706583506257199621228970656528083620651500806784922913221084046146504834502929091755550459148352690324969039598701894100480900112248485924564291169552008535751677358330783609218600460024985358943825317448854442954475954327719169082804703417513194826549114344076600535767490837667136010468280218366655412286476816591753925333159480046023585983911480370601719587247633742947577171730680186534506727229560283393742048061476568255076331499046243337794402118126653221055294585933156259019821885137626612794573874148011986764928940791688269040162789052433277745842225110722735591348546218281983539066079629705314505991299334802056451953021140278242270991048485895495685297815828492676505645608556202981668211289733118347942023204454354779992049104868509809977887310397717527792966266872490559938752638073595270265347050646182206077314949306306387826870037574188333469306782362108134572259560341333240882556990889911456181566161640243216248256902418476997532224352351624524086932295828399280750680403037570013677577085300130238170629004120428989238824856174615757559663214850165251283252556543381917013126454293585055588900725336196693474702932135610527942367442559507251274958617051221640164491774263038621512294984172968425880751511263337243339168893422460421410579530711270287555358262280981020428631986615115736707819505536393910638720994272554314048604528099041456016994490997451868767441910396804816252779801826554348905115972416473527001056955832947199710415028592221052594719121207011321135886648615912159205345935210111752071443625671468209298005236587139336354296172046060676226277166745111290809336481531364604794973420812877639754354174146411214661154088913660356101077669971114559653299227856658042394638986931156171080950679244225680516918436316931060043254666619868493952967070041718371722824081297419031906815747340960438943320574284228462048354987258971880379428312906455412985070945445114411677342891491502831946861332413344929895291923451274990618026116403924710796117952762878765417115512295397854903518184489890696750557735010010747063960400561315542056778616467166141655375717238966554447132641743149061918650066151547672224189515575376422073099814947027593639710819255798467874666926578424616757656763685819651119358499730488055439163155129176067287103087465382216146703038356034975574653825774053932153144080395729722753442516751525190834634651541422336143282924614625542402940706615231101421110086872304173818346443684937177035673301368424958281886341217785002737097544138007898914154423746409406854432370876735385674723682661745303808829485074497149001321616156441077028707306469978051373376717714892197970312784404190665358121392578025481843359266975673355627561006721418736778883306895319471890250743115362009852402503223906283913860419458714448485513135658850958067458584854945956500934749029282356574769160572334036289723023513195940954540549985582119964748083407139179197349248531739517622166202922056488944452438434996982678687563631264980620771566091989222048905177213086691597455590741671970722829029524717040448149623001768146892902350157806057553911620095679599559653676800307631847377755803993881966829620734728113083750861445150520414951696378872000344506384453959966670949166161643844303482078896680965143487566003030693436123729103064448654695265350074086375327579384976595016193759676226073385934483192454614070455800307324891998470374971256495385533303150267257962081002048000143914698491048521160477404346698917663666255735110484494813595743351665264964153830640174504368871498530262986938298768816513103192434686897848286269939074420585491534349681405392035440653780978608350353560546482151768546835170738529824021775797638178750496904769329538356300707611263084467259556724971119318894789731498179536174154758793843542038296394205106001542175011987399384594971128660057168204351790518510226474351058094855622631330970199848855814464383307900181180131635071111743207016635074136649704873819532106216654156760681710226584632376211047319965028437917559681471719813395833662284279032629895768800702161240004575243798837785321244882895928728823384330910126886289508367286126749813233256850841265740977257407311276830747794544946308999363287199999177170928371138600188215772548050271224338018673617726711637098022816879493627701547310178070158517659781060828836592184673773953296614538212345891261683863017760898148344895196346526618982788640276866868257217892891227467120734619253433206422600765180192839145740056483564972416485557158661771731300480947542653845490407043376468132387595315848321388173180768599174443985379341762838180980041361929330875106143949545149987131623035381314695929235131102754996307101615153690540689763316561051382571271181383200484585793251768292374439880069387124483043677953057614279274638678553082951130837984185682529755010479739401449246872327450165223166892433232019245697127340762012489187115019969748048867512720988644519054982833115043947348056794414759677906739366894308622039213460875578447201009330550877742386635746700414441658906977205265272541364642712946292222650928950978546976002220040444888989000245244964948754140028339741502414899532147613653567443653274335971130456928562511344807919548941909690354611799684272437214261077417683443307408596004614977052767087068979008672841383624013369486305616298411000210193659644596664755431545885260809806601680396214836264489818478078858557987208837541712895697824341143264061215648365375749689801900321688711143295669358848992060798811085898138444533566953962610883302817778779475048661685600334631411713695170984373181464257850722837831400840480408912325894752729253477332102211395686344730840806413139959006586809842586660807025996746151764125454432954205373737762784606512568624061963343644555521883042916639472676049186931068102709576934587346924345482037118567242230369668269911744390368357987885793604763727990451904705296369234594855194526961599895659943534192398240986003348856054641961491914671379661733528927311950596862805699334440239776376673845745962483226072010535336618821251169311283066005231734712130690992409366648264766023138893662629058849741963497753920650580256793823031089056226717516460593434997228408349300187248302042298697912782559601485158939798966515818714508279694582248069265552613981265997891596570313158038483095530124607638507557951557683379076355732843367712573956484621864288912285053681211392902894181036354234760534770357603995694029155509387257527151900516939169992360055780254605626103140854576844896237631312277658147727721249698014876179578720258440911067666669779858271918016299532798539829234601151653263493861530718055907117168862735809769310326076516483707073243810104202841545600585249841702808090314201713772390507950102356974223859689000076427914993737762523735978400526465258270217905497473779827364409799755922773422081996803161679382107352588195575375388212996454392856458833714335519267109678874495698634407774932242646024859276553330629717442684012849275464431036634613646701372900814229608409328108010661794308880984956833761217555633265884681411408559952804850015225120943814969008573929847388589516749510635308992428923609853370198072797771469289238006717416354449116623104367010369093234185577513770825459193708162340828731219117169082887947026381789661179247539374454668303164160377105469952677063387071990886075202894729640948564417983685752268811112762905583890646041598996887399560804951385677803220669072645776793190076917783115688356148390241195451391864360679327053486625743026558478895991555275860567134305235749737065616971390262136470152827896937818189793372358005352947575870695802157533477449048934089702656214829256029247003479463970747135912984084935681007230339413325933321989703831087654646015476125221889211357460213080860345316868097803243303653372939974169784310360586545172205919092889100468109635212468383931589610296172035079812203356721798155164234288505952246409629744147616467729824105636730234892701040676260301984908886943629777879884982960230691556735115790433411193289216624360499113859204927473546474989768878406967810253787859626016726300597613569475541302302204272488278167664564325285914138168070056700252796076134146913307530753443429089779460037932560538009022387707886326126303707631229435968271827620396251631866019304358238172695429674890375338438742594228929291363853586036959936494046739070733762996199908410792037628780905569317102347818114119816770803581091360154455138556209514053465269163110670015810554990365990317699439216005796283307398574926952638659046951884204474740111869555223075481554303574397029808615287431045813898434825537521373070613069293948610688681061632672777989859281247670304869775644149404758364767239284954595911440513012275358027310367580495207408017946339283196959722437648258723492582495055232314784912529774294765821252605889168664573188808472888639718576472688896941571260381826142952027404213310316645945209966903048359956110593739414897380910254844286055361216501861833270936262592783808550121191325012292061244207138455525664251110592698931068507143347679606370012417733643925371321689060048530922282487304925011057665457312396004379216133121404934385108289059376743161925492742558873909913456075255852795217069439198204886988836654596323638556060918839077636425539170147306901594487821784145913645868914380364732859516860070713773031897600362870749207203381671014273875377780132022845474495609644522440849945384985326330731236377655534253401389440102512885591770187641050401990832065559972996009749532889670786814711857477942230754077440195829344277405046051143812944822636775804939444661109088689556394506829681538820310123559984102318956298370061439599271373052232791038902105899626261615377970867765105017832022015868864249516994067904271515992680300268682721120846772082493746537355288939117006173874550702625707541098618093058198782702616894638652751599695584568572025957390112058423150183871196727729531911525402550384576363299447102846209694669472753806022186635259739676721994794957737695254405415042823138475686999616425541497633937971534110369954468399055094520034763041487384454784934726875283759873445909476656356050209561579442343071600181732249353536006841506022401939552186116537905982071230200043216629994667030211789092718348384223057246707703078220345459604490916970390595492281080022184588144270366156530512697402750522909522734019195394249203673107459474303236167244682951728102077635930892913470341362966029865205436894415666942214799455556867054448886935662524696084777938476793185218536875078475100466320662940619905082380623502077831549365986580774716684702349088165666333321762974220355385119357816210125702146077112051398563822139562784613318679828067614234170883617924952495165183413978419395576138493246647148759610461391372421511993655411793933181186771758224653794226170592165515163895706654875452759929338760841497047464449734243731478800433619931365621644850809515410149048435108434297311371053906408915502579916011974233811474832235543479834160147999042286510774398248118879085028755539342221919742075222554417702282708457585298400952762254841550172764255358889690437114134158607551826469185632585128192100009332745590934114814199506119953243863124756440357937294427422967970657211504344512634786584852830786108142856055567069295791529046897339558865727373009929083602376279030811606244029468811742781881967485001629807683562803422199477478553693548540620092762093959169285822132829480669933641765072675365140721599310550457778631934725402917374824865591980521646924055723205879636362768475050101223814957174102055610448026540317566672708711297868842594214941470409530760185663941585805060034118838180886820901549931474150307106365544301524235264859246340579543574579387059549753038536434652644110101009958598245048998618959633934866472586159193604907573345460004015437712462389402768116864229681091292344046092739221468620292638345757791866314104019147804567397271632792891538889311016295787409241213000260093014454362482187618516472481804877290856198521527587883519992848949986184729281229315891346972231056265023544575683773948935070979611434527975185441704615507246392101289922509136774868619512930310579798516049642379024175737671753347588223667281085615446345486886176578944006175663931613646690246149703903168425958335797746377407347313158673360381258488517628883014358774536212843827986992667008783500284708739488321176115725345253168439579776618258422467199594925378902799285147312476682863851047008127452489320979896980012709549204235801477260691102272561189107459106158077281183984500710556026771487974940629310025387778736530506826092631067892546803359407404257560015977362708909753879183429312535196746586972802422856616786214439384278430747796727109411909562052745545524621823096016999474049306159583105287293079646953369113549339609007132970995419005660676173379962773893895730175418939837359973386591604522860263208459087430783586636863236479406049195438686317203199700416199537478203629229539134138725032249512986524181624256367347707202221202466485591086317240124063468359375431738962884522935444013072582146098445826189323272702022796984603548360800218348368266844905285899974762490151207028179042274612263869917482041417058688110650462179574423302240495769296148301131367741374562668237493165290054949385155389881522301407734411190752383956896556327022245728561684704565403853768470789073416663792884575942054023206602022684649952157253269952419966197226706186671270470046371313267314948130739447850697395570486838002617663048905480087691176408130370167833694965377760295769219686791100268864181057307345134423323956631580970493147958460711867134381619946725117377543576208218296928397885971128326056054198538107963938871142130332975580326773272403512071370019878656129504502871813307425012916243196994947641451828939042313147646174377646796378834502635437864076287682795630192628543315946144669352036137182186684113859964429770410606601189943389939528712248621965484008028005283718347461774722023480331380106081242000052109563150420259851239132931635863450481279568787507095982504764525581298085072976087465476216131964379607960915610094296666720624516914036642866911344536403169849097687122773521385322468599445230386338934839556137034376447893769978279284289272251990591131682094582544128089610948873557165443581810360652319631549191839019147625811754871373692668546456101301063507761027335179836128394609162821425800961762902523781340545421400663482581168813680418207655009775511588815245083045441623129029108797076794705557899200732990068744797950563064823816665581453519300640797570396231100674329482254174270684133795150884774574522880513745846169124739910625397908220576000302168363004726572145390139333791347299225088224886760352409440393865928495836372732547815409207310236002354899186864945725716400550007099374180172294039216980445825155536801065130102689762847127284838685858940557931655770425368069944078900817509681766146334993349998352734948831217566335375626177701580766157731793237156179740885416563607390655145534375198158200748239999381467602005196733259081931611179720030398380266454448388847631740768786252095397045086656433613416609617720894784476738971167517971890670570248961377255345586866515308921867199581253448530137398233830090664260018722355497124294599554448468476102665146078990460450910572626133305409238423678264327979888099303222139711214385166101905484416544925399913474537272044913563789822311926040826218201049979948340724602932669408109012799223935824781207027064552893087253931503984447400873043557999344535035516499132675976810595949040490018937695143662209063303796961907440070267460533652832840667755574693660942837844873092314327062370859342087809849128860413665415352097229467614105905112665209639145718171144649211762614782584348338529730607298739612512070240332130898150091351062079319513698677525198891826330283156399178338787692871926711520872992526518568605638054504048139877205635883055383459661283749593409719537836189216925902018887550286134276336416397730488270566916957057497122660822106646927416030050741845362373614474473717822862763830636812979549620372898191342866774197737807477797890000751744932561278014935844751250043844437742999504632828408775778900622084874224221303404219034346056426506060238343427200383575798001765358503864043102782449859438282160626285697786770208284761971584513647227561341701483467981095515779002949993970889171487112920764103996047889497326799318674713670017395385152943575082419498344499392230876230700970477756116811742593250694095454485812217045783933137755004002840138138804387320866715243152425347849020731995696698888753262219703526043968138636364697795961756852220559238123397769388682289560938205621571111653554780960487362804163560367969856599865376812822106722349922288277042922714838737559644616870917692786140795735436233743308207511730035880446019854624458519418369433371978226836673639641192939123012190346692355848052129255369227162919118081082876584817092633791717930463766048850490796008594636970884367124040578745780920508928975537988605754575226048260943493548119368998833590280581685159500331922878137544089706364283520012083330733967332089314426997311854085150289763696480031347068457202262062297384349960090372324630653408101651147386845164833724896275958131463317196991056852126161964072798469680671327175081654589449423230745686317667664564611105782903500162289086661945571034233643452486186975099757923841452272283266200260392656510831240377747046979646208505796558897465107411736915580045598486670017652880286620999084762184586980053402756712454415387852185666324156975363342741988308439999736030525747273166310624069664359218253921371727192361611845634111933504197179959677419965082254908796434324139523310368893524086990670950373434768522141575953530427842567446303673285189101958057290930739079782265985887790927015616351651690342007207930407811560459935229458306669535451188912931766577590779265084554691050308710647316740709576404460557773327808735914506262030865321874916276541295786333049881644946784487141479949150813696916689108656980935446222636940997063262553754107062061783557669074588111497176332070706514374526563078204540367864502579421195222151676034166636943745194357125783566331218616261342077780105252570502617271685229278137175003597228046510866285593473403268746763762125502954437124023223436122715267210240248679355851580967235271930770303777815237218270946875357459830862179351609097935626766700610568808047548455504197097356351769573641022007291885623555401121013183749153685698507293584110199015755710643687875500414342985594195168388653120387577329554770502923187762331787180917325746765973426718939685608633030403642702493555500071539126687042325322525992265802640783234478249587270654729200236534965928534976554851704579498003012564428830893246712393038166589273277172629386666698670735004458578288406942363040514639804590226692123049867301788770120677069076878606963886504779464880986716096996852302660498288177374026023448565591979358989778019300688225770780924900202405506673458819199258268747989755381244630613191768483250203648084294743606661492355888798254193475201667947084252156041310132963721961651079367725672589061700141529914042321069719511521711889119766522103799529259263680358366001720925269276180351458850769178987368234812142552121419771301309228037000540487182507579347017626238432697475330411242149656606563050849314814293054683468365524541663560610858934660855817851596044347505614161002407391978016833192514358929720986684727150480032815714742905910204011710411832548425103597967825262069052655491712794878554605093143004817157199746344544966490670027853242257565126443323582234305788456528778150741498585244523369086893949502976562985779611419543126891813812383304808715220910437253199949711155740498166655831732656068227472075665084593195226900945742425302249975258948727255463116095119135980423136045475534590278379835972663248695559067356806395071420935604316797024679017446903462911546180331917436868621479921193185165464665223922436538825362625021044663605032902903910113985939148798627893856628925918618989749592545185251716844752761889644565383218316807901861825411483512380705746756357110029358881342077433690697710271455605136240670350707421055835253980206529935765063916046686403445590339124744349532429803164131537616087542555865727509233067014225438579615887270886774911687560251155421913201863158120139512914636368063098055849280770448181561738588428299389101805389758222095055521414959411991200194513195983767799235273425036646960250988227344173480339357638984912404474189588044174558766416086915210335863098855572311373386757027923833657843065529222012697216252157314959526036069529644551127477611625672273203279613317422066226593449704857619531542710986785615769836442964090324124339234127041130631180548462756011523597048775419291158481017137325883240156487381360155610559275074593400309514925749772691148982906664972599407918406075349787824565376048420838502589387281512971454755706578503472426392768962215314702865612892168642189241119240473261558605445112794102911423609889457381492045389804856105959689091329132438033141766333365390877522983071286321006467320384335168531869593148518103403620991573288992507177312964245593472797894660643485709004765859726518289679004217487568944188603164395755265920617339080317212769861414059145955003160448411726794489627949163662580752784553356727003928150778717502910250299387242179013265404518682950002617941714884585476054743206379560443952592007459872639257236484511339353533017614775679880859984428157714657407811033149240749843244324327512588139529114383942723802835755415731561909676373952020411412517772706466339353003080025926646695883884864435288304034349109727375616942987224086646053250794306416361893938012817551668461016815339741128885110237065923211535376147504248970031837588760025026693292053622551783234533655818873220570874649336953323285835822240568120390330123671961588140454540299637078061476402102750378889935303210534211385388572784299553595601649814929040856632047726418241771924719861215395714763725566450756721024662039248083636025631329793481915094114942586632629188425748017622572539141617787597194944685294246096305888445117128829612737198014078833048043254801257400533975153096293204460424165507800746389619877048407813617822276628906944711383689547486835763294545379033593375200353622737937610325000094496188909242119214559315995620058509480126341473388939286159846902523337728542650536851180793905857951577268365227095661412473776457938447390216112319140682649042555105757873497156241272679220204668545124028478185399555887902979236194970395283035814018926109612893949843535844433138594687396674349619819874394127014104211836767525143661597123139050485011012090514568492566444778638305443441063907154752153421404024626444709559651504551607557401020253262171649561968492332873646974471012523020796230473363131315898276743405934858397764589871288537268173219654991167770233921672204872442344031067353518723901847478557737627234269273292901050519432254505297224567812083558675123087153318931847718883196606790605518477951109591528622129730876604245124703383919270730066568087448784198221470970887298564748184248361939108233214507875092175298877621489295024019661273288154833924586180653193200658532837257057623338298545729530348064384083978269823533895424918366655661538334611589192631814569012280751188237807784310970630509179976530500791824838586048154650287983094616833270014836795897275807039544712833476396833706337310235853385198257324640198672193508610670805666876926300846543832056456878321436424423588835072443885408273692912486532636245489757432361508991289719500113939053254224277052403163073252789639846592281349770723318771141099727763095367813499535550231314712716887235920252403336496156855066235254715379854597838064991775006806132973491314774594177767017409829323810540829452788120456700076574794269570936767006494547605545955337519595845364383261130430486428997792816991273410917139679575424745759188358643240396080930558180618751515014360040593763947959962795762885695661587501975447979196967104161867789590178581204122096162635101438501147646933718610652548644865421162074065237356054891089483973831880252661759133305561276318232838404073181210800886625373017200162977063769274987680043182842011772374131638141816448398576629513361456699690282277998051826610853088093225878937712316777216004103230270521203605216103752775222460883341200886493279704053124517458684808399691537635305129166611532304449120607340805705107794421939019805382192550294024249741277839209308395053399876427728257728592362995883237499031933160086680760604258807304675431014207877666763693401365585404457767560071335053612842869751557225047051391938962569821008909091378203337092652887761023911754351365782493596527830217104645710093869150056412639519432978831456263538345031151453806239121193848843795282410090468141521319395838527773819032326455127826970408733438548610154109340616252353186301225499783939231968334283389203085935643760574265142386608467646521914405686779619448168672344933611050603133033846548466851217204449783686999274892192716691909128514242670898464142165938836218659160830462553712851741938070709071046606156080616224679993293235161266369025915580263764162816664648338699330136259839947831055727239740835145031665545759848516596653811162184295825893378319781002259895472530033821632452241602387606701103900137162969467014491620833328588555880828711105626572265389682889519268244102093615479284043972799080494190316645100222175329958707822428332201893718268984941077476946278477031774603367196459748598382407989474251125849867586631988430310422018338694946996138417522448420458357652508215187146847444921195954883721938851788720772827157862954322417880870119317025216453786611978027482415067803567057951314479254913055194978283126696376676936363124932730847870916986616718451288368080834909230419827478467379901605009474855891395206483835669196870079904651637353663959169519389290452178706558853772157068219295777695376732212999785422503496572852847955157954856092865776868339427454355575399573465589136952314376988907391816679996053554434281936539493954437488558486984296002441127703065932770277753964711978906691228694010867313112229489832834622266499021247143107418595382272838057601970880428989915576526783598253323091422449737165607884813495291902597573626388689083398331827653242283374562619474963939017866902360349490669621061790447710989324078274574288685959943618070726037380081074307563083240968047144028103554940065644548376370278292271044440406213301110633560127106256911763799499623275620316491649401821146665980919968248558953227299799626381709765233332278640895029289506643406594268180492291082200874610338985958203862464682804900693487089887275045768466950372241492014664137229620381698409784579150044755168651882381983801417514744278653369722637449959257248467442724062535776830728883678085227429597836851073952980892288179150533911217361555631795288118332640202959004545556944081553891610443841262054592385318049120541022481874450911286681137417703169689253234793717663907702043033615475048426131370855915916655177061923663293502156334054953797560792531375081745760366642719031678401345235261741462928903368549514182769213586922849446909527221275348955661328903462348848450528970816967697038191485805748559022480640061253929561796934315641878695810014042528436528759497230146784500712135751160362842250556063116910864465571342016711445941391836198449742627442498706157354764985423434178123636484684638481574926779228965603474101272570930767319918306395410574669410426818984072311807517070761923886611945637060384775775786005524182392425512340451806670531830791610699662165100889986153355289349299139120325882769258359096249044065078238923721152342370172283453248176519846122374944783842777011235590414354456382407234245993352408763030528492541882071992933904663536038936627044300013947414600856449549914689399234693938652229024783177031207586282375314998919484136694505743226154423776716050441711308927561019678946527210402591429751103203263818067126562771055198591653068808529939284035258497177604438285255236511066893274548444067552676823797639286238335865477622884960248236998676325528937690994270316096465399032815926766797271064696496673331332231231289505016084669410698990453313089733111789622550107800109412193722594574367498255976650691094104576935692910713076679529522935086364517324887512202352293637266216427395828449603071057042156688791742557123000839358585293302944388928064011988316155867698662491289104233016269693540459405177687165932389453944281223332507083360708999213592741201845241262118362428058503891921475583040777410858471081874811599258333500096692350696956663039984129048253242056998581215935241454111551943000860553996947060064433096175743470779185810953066312193477053793777411804552811301915766496787026638744017095312186924942146674756112143016591103015874123863623539201372565903740969020097193479144757013506417614791830700096628844573598620676078120622276298347561309213249914991460913339607702315178366576159374468313854736824785127373808034076608544466094783875397398030828338623837500976558365915891092346158461232682780807159695408963744857485556650674231544684234085047243940563494723493665122982627439595277396130689434029432392720500282966211121270696037617528376485701481005219213013749306443352565804400396468204310520783433040212866254207998514055256241377356536028961327830845100358012949616896503528242535957227831130595175346240023290807489600191990271637774443475193548616482789803599778686021296359483845968526803881701858757322362123419551164014439285716819228015208167044795914198532081282768666132452701705036431063329291121998515116005487337719992108049745147050932314884582106593427189917910643674481304842278026385870949665304992589682924630955522373283874803520346588802011898195776069882322927565318249788165027376781557915501107448336620589934168825168507823545628042281569625146291027964497483281142268649561838915009970402751273038417221822328674567094373610880260663344636949242524217727259174124688837697252280206313176338992665802631239853207576170782104047546220813035264040440721454416091824833467464875149338235920954257377546682777576506922580891353163233235818020754530659188462424222013210610962424053918285792162396547426697204657478222335665318281528751797244183049692764635586518320626098413116857970131740355071529831577566298798483879819068773397108450283108028597072267917239877705725567048334973656852249642954420351974686834252302623053225642683205303480043705215467239510585756639486045704009065271289310583880903092712851741463445597376348237271530167821853738750332634460432651700501360414511047520383287028848280178626733087514801092327481061520989388374934803344233063642654772407447341913441625737472697034069098541819299935041463013146029898920448861533075033669826528601287195624935338893359925095106906356052836278146955257167662479548044497240578437714534536950748846337608039878785753899743050427970995627176405381241229416068291394864785518443980291107999488097603378008429962630796098603320756176792728653411678384836272346529779102108246390534620587352382662231585914576080691551633966519984366731681736204717076914421195934131344052475483635913456879460792288712305357229559551124872284849256662673564629550874234218750594037230687061841139516689857981886181720156493085198573766973179426835824237449626240940026424113668910058442532478311169610767759330373298002641632657893342764437807489886203498853344998666415090892575138984039924218747860942325679258755697177127771867110395027214848582498161432363858002689760194131733334661769978147750277372147658638042967490022041789916789944737645006097146924847033830874292563029536839288959198481326182801108863352801453196614306355217887851807818924578154304050025060523843052702254947668096560521380263293837459783610013184693217336040867282324703830806518447865610354850508553897333720455535094394821804296336955933374815713855652680968081137145687832127381491430267846335424788888166781612986243114962058235038536295989849227535884843729831908879303651793257022218725422107510913795991299873305399449315669434654069662543283269177521898058082320394613889525897631360275969977747976535632442704247817658145979350875680743143394395039496967340406219300970563517103960777599207017838549134740445860823432299800833983088463621221831553739428107848866602338586105948475318233082290735689904581688532225496003143912308838836267160671025137645363562166337354733512374939498717138997327600028656107450803408950529375461482944283354841302381816748205252386905169223513613978755286810160528191082753325905715241163667461035295576563614701937998302035775529931173631226328433692041069389046061957823902115377348106548585933445623558350454187656810785331812090832955796963700306997319217791864513885225093223578788762057021760762313114168037397797930436097645539879801890047954402261811451599364804256751751970960754440128006802501137854408667716469597499177197622593140564716587495248244888470550984220708667882294885598991630442806368082703836790296417699421346958664213045384167245268989188811759550373175395714608506310144594640914291511874091101953161706723681421471521008655653377890374855623597193329811209741775937259705305497787197881016679208344949805534928113728018280476437133308880217023137891965369411518634760584086477727695113235116876346284901410086074987829565246327545904445288815857882933178415122095168374522119663925460220718192637293872063186931681277983700481820820442550064533238800236551899856036931305986582837495593514510379971670522630528990465623914860318798886140983756582990145864251874297957580070262121228129624539135583888953237219783910076842937907390456264603239604167715550275588170228395585038421812791849138355968037903961827101550651317823245560597339260530197047978982839394508788491741594493265239454153543545904729260112725373192695022730179043963218359166539737110400999231450256399843696331847018309713485459139849388219155232711837621459129261490391657000059182988222112817540345424029707891401323448134449273058739401571836696623731628549807989624157969546118492801385196605081845164324881499566730971110615179673992985417320631893734118996241003730200142169545769103363099359962836527642430603565332586632902845573837209819315570211790640532686480959424863555876167449550452835056555151634174937810566225857920620564002243654432819287345495160406350402378620689073091780823409400423463550243839155768071612800006598996303012049905901592171008400366872402638788357234995595120706654423185876509942757017330478784941116252663534122159063401288785557178670930533288638838510804161933910592976208484086381563074831895418513347328853107260414382017129266272725214318575585037701754005722182246255044056317430535718412310897390222928958693731966151635633122410174482443984996183504154873818497261877396631937983704022238923309499002856412246137840619816635519678971752982028292114243739498397079985254818522479525471433465632227312702822699129639877068422311731094131012296021524927392769233593948124756962087924533967771578800233344770196787749277903780852049503107023863383201420284628200943817996695286330214842736371203400439556617144885838525914169866099825721832425957978724519185372265894573684528777957173647703598033879728483710449144426424354036945790143363590000919792350573752033749516795425197920589254499317932475399989689162111885770047436350253294807809536840199022784039041915712795236557245341266696401386167825328397913902652320714518146666377986019923985898245433013023933904538980297466455866153060876337084741509905234737385008756127500660115214309943896807534951806955380663578820412456882360942272331191221521580100725753180765504457996012431657468859293013118785790329763591301001043718316104613325240761795069874159003320780560465277128954256599053450165358014246558996951776357611568932180476574598870868093926776065380891579258739301536992224040693458695871541603996043417318155194591432600303882072716319095885452898579711698361289115523513042111978989892549070072469759376840511994117556802784124448563852371737081502152127200714777639116981103698236056187000575998631871440558272672475241298573104451694001497148437595040494137542501938898350682475629704371968366517449174483770016958875141147599626056296352185441263115669648670428193781218131449999424989795868056354084548149456404917049859846736997926838902995078106990641613877062241923753248061691407683323163795389898958026377630979157236622225235762586842650319307058072667291563570660485170602694335835565268370082890122816711296460845763837042932746107501159173741936509977717495134416405668821926580681240185254438324937888927609063574878632172361773396476339674866396675832702939110906268165765608576526025850311194524004991213863960977759707222717384692616294851200315517904882233387666817917908751703608415869763014254516516053990560932087457913847166625235080227130041811105636684504510332714134455571883521020739249093038322053599735382305001280476924861116869004708938171612893590961601141428949035417240155264484709341456118630774448123648524386130550906318743827662595462691668650262190682085408692909171972103454131680275228651894934163897035806448167022968145192735408723218283446932237679951098549146575733643702564674342203532993572529605879454907667292254478923497588110785842069209335070583940169775666044915994129653749982466216688990571529431269370263471523526886350434652155552927466820482796833503821412067420988912683557851227539925068636376758950935206933221565886475555102557901746384238260753581717305062809263442214067270292240075017095389908284069969724977961503067532482474474026149639117326086825110018045747893694821483118637069529076875375016307579336086799144870681048782100690721880549137318931919565648578105418599988757760816374979253925428516265653868978743561151275448492000185195919538358972607221863305162265701370941539831868152455478981886383467354646372804481835123410757360833756197541232396482785427178275787422790826536884183063716630137232582328277588521248434436950560861711422445840166706235872362593485723933122770717253941264441368559269993512679784779316279901965372142718588330568220478573532496657392790217629432243068877736425471717521583426618387746751772879117907472266523347305045271830542906998748525997088381336312756555105818153461557177838992224481778706104493676152944948199145815268128732987302557803139535244202430992320620150495186821782159622656925561542405655200377745490605510040486244650660008277940305169167415152646717772930182358566217770935326929510148955692945695519463964167482308923750540794097145581446213934516624723907738601383632919548779779769372999293453853304438776113405409774745797078456107642723947592718933861043615941780328268640716197443675627415659842104453745281402996890417150092520944344124177090549004640716103739987119194895113323093872380061798085118474266429830609221865765028354594238252378391578030939659978792359077107672814978688472850269329580390290343833606343472946197422234052538271218267185068251524561056749084067511901325759328500101846927286007945482480957050086610393974846228539751726330877901336112815666213166980897094607749125354337058184365474069806188345580910782387872790603821332702306780826308266570664483403361073459105318831390215280249668398969845886919652641954240426151519583706301854181250754591428086546273411531729296069745521057739333308894293524950495467434742521337598131614021272550801271510612855763319133532425251123130695622732214314089306028492783783091048321259954096040486902939589536833464883041929962429622465666626114451535397811810824587574076214636874229228208691277252811888485068563567885217238191391162440450482396020640532836601301510083414830050684917815679891110617684369483318972448927024207036091785130259469878930896427724446660106783274692520054415206918004938279879700836085295447821367522584862896112255103651881421979822708502213213800381926087791797580455113989441267431780047597173096939176427820672694631983847109029002255548440715532154054910737925684293593636865666420147451719050689425606462522197741928262485860032863909087941213253567851954539573398380776036789115519687696391984467667559906864374129670081550844315833143443031791552474142008857385461051659664605052550311362667794778997050142539095186431776236765861668595368271824097305863741220566572388519644161285153284570430486542590647362948838821073190133094544745332020162484479760480358517020887920915338869172457417867021106295751935909831389636793085881179821355991164040925191336707408568684619567578712679386531455260228730434151470228047921044408454273044746230044206005234858339798883530227968439330152361002121672546195305865793955454674828063921624623965321704124084838683786222029743154665630514332950185363130634205905601624172780509310211029640314742725180572106607706009472251290402165469159331730457629865947300552678284714710376477758107491037518543556524478541536185039300584555809918237497182021130486360066233488479976800111334360211075446095342787841879119393917277772810343430891827256201770313466452396216694906337892762934872273242964978682797853710808028360811634224505977836241060784213277941832613468505515443898512163662937136033825449333414991986785492840528316747595232294669300673465117924182891234773456192225415936561412033243159253744374945448809683795926957709491175636135327399284534200712830476222627892439185127094733930319921081729326152144841536460124971808513570319002461405040650793187706494620991637059116124495945955696370502331090056774183415734238297286194196519405130803125595157932661727493305364256875194937610506310207569941159478441795426545270562811474354678727227591438202388659267772544401892170215017677291448887892499454244521038210196876852195389097489839107420885613958153515936583698919296159485937375892341604756400218364117785639701204737388755349096744277017423281897045849209667855754400754938712703642795357627925731919956264030177562273692119021200425620115158070295465719204364261622352180042572295588984277342221397652169542354895061338350596528126752067089217737699498378319950989614883072343106446130315503771291179006558056681993368712370216034089711489049366625697134175521552409809632603348382619980521535584127090191419302348535351939932155713814168089585043805235172308250955835212995561643102724769466466203330186890079806569249471849800359509082572716942594028717169516514214944977880807502953196191249606320007435790533038457809090417660418813809179433130676165807833400623243709365632332647769287888846066398880756868310567561527188959410366098832671563225190956185017394653557593598001886148191055813299165161535200765304629435714356864754715018024429915091078290223246187854021644437287706095085897437474720427336782848668597882255049116926209317850006941146821638891675871656779524369413988036476752408118790247814717069573576144896352150693136707504106420176610535538584280977220001268725820270240105524256747134362578394979750184315536036460377130007694946197617807693512468557048841854237628611401567886217047730231176114700735142409465707098365828546924089308431118032466590891781192565884189057401151418708439171674286754656256298828603207400287412298948326177623525390484396748923575701162148189693428069552956733683260551070833278748678738199778325665450006980710615516241016876974051587104351535069977475470191119347214231784634203039297380801350961332492882466878712709924762650895993262078646106478102288637852343371481673665416220103078941671700454077652121192007879664235717274089947627883347970841574050018510135979056505710438331260251055021267511858468554265596889597381922195186774170518709548043050753071763578184175217845446722483610834907534313999475090551351544953377927195219901309628842688377733309273715901507792738372269832144957825277152093222710858082189359737648254011675290137446095540793368479260537939403597137340018071789333270802767819174905368779752103642641753082152461611447951831577570723937673400215780409872127303620618449659364405546050000683614761396785551722118427410976732456559958237048319361398976410585462317083894004674563985699226553541534497649115154440399266530486269241973027703170035592057109374509559944638152715843859016434435575599145146750941239164929121634985112342729741182109700946743756166734593999828828779082582328976439038206530016672595856128181481872484577898656342049524274633101626906611797703999300733479301775250555249544137301566383271123992651914116897650704322977903638910042529831266832808720781114112750208306923817287215697390814333212303078816751347135175930395973316202065943953012431163628497525841744090098810594519475967645010652646266005091457132022007351335552083880141174871115695952101781396039625803043723207785749065845239565194596889086855973688150596036981803072754912671426630601949087305113100623618845045470796157622855732964264056703064602541440448359124239386459290317358706641300526665824072844704449926247874774035701863245021810094113096636597140570643064395589838496250859130715040240062467323815935219445091089332885288077262722899464756165120945533990984151352535504434256129008812959616327908245860732480697903770543031359723204358607528509317691859734971173428383591501533028491853275677545074385756602992334598531300724200418411791828221459425552800856798972642388371477117658412051646852964398281735197836758274688894435801352067834963524486896191495790065755054522641363398010817569524460890196230906172891686903064181665963955871274736203717985546437826370685304140878309396458009333053012442769961264607948593711971276831176827057097029438108797449113122916346935209882177764932891978690106461692474940991873006130483583367048020975970882245632288038092102981810824978211993576516974026979691220768662753756350615731977441233172993210108400859323388396258457768885409971414281543351820273114785699157096433687587883551390473989940358154854930684291337207641530677610422215403183861598993977889063559689603644147944032669018640936803788307233514628660117878837202943030235891047298568727426038285373296427539906926557702982788770082400599992864262152107836675016454145337372171512792123987681736282181362648752225776401153712756172745478452094171289115275091835948255805370610309512396937657327236230086300534790974644370689925078300239508568166823651984823135508268829049304512758376534354439309567819822966883085224841215703648934235720409180162364367436504511232421821029517746662081727036344415786417492332118106789902905101411432419174352222664348359877498170666141213801161483977151368040313944356993112860054342739928979601818540810859872920986729466817575551474947439411167433385984852715761941477251924677027941845057189281352916294499669217060795830025215649281751984440861866698450043572205216405298766760761621230894303741765456426601987486694889183057873680754263473980265194683295676296369127942930547499175170076252364476638125297031074215445127821007307180287584124533955300660072942774773351349446250603194124906612803012653029820632352696737715692978130746734654561793148264133543263512795416568483629709666576590148632986820283070318304560145067121097603313529052161903820980223442323519705327632425162079180481195655466944784784702346824130907116982103827523867052439338309605562757397249451487527702116302329247126861003884413988757326381250348343373353814656664860655696171491037767686673809035315628258931411341619970640461961348283369245901095245829051655017800693132571068646489169363125354557280226525140454219170952805165645984414222144370395983247496151213961857757083896379459908823886163715763200498235870248856578728849362567383624516994236195444399223406679998547372988149317233620941045697379517104684386090398430417344832281861722822319310604197620437263463823511620596088110784874318528861003621579627158324792981023022214563139572117371275914951804225938097063487296033760471420997542246153706931790608153093232992406527936263661141733472694003156500112889032846700342186126439915151052235883757149504738912060614930303726098087083743306996750178791092308285604675406107409781921972061374620555079342420587525563619874856685292988621596977016399497436966347891706893591192310641501785672181151189662083803558958014765653303225084449284957214250627374519639372897234542913273994882156182498829066685210428972010246236789198951752497635028466800458546034348047230813960794368667126430200231618245892474894343361631957467591614932565863269121567933932166114473248831130093178716313641660484568105602560189727654641377315119905954151045725013250554979788463096996706994196770140459854181836209729417976510017556768714140186758740430144530375324378093878005373784229624547926590552875413595340173604397038921296390544626011058526982883987925138315510740710214507172088894436509997087385025219579545473566883769532557037205408054580821861931454371355245403851496404135214931795375324238262673561691554998543717897077922099769768689210419599320463619943219314515079925763718639722643621434548623995453921297455788880446838930478404217121664394334730495277781593021317061021479000936780733539224712465705098059328182689565079548465982396036497460408329403898159823474015779671381598785648992266045793987539452601873388065384630606461655586051971975442287992223857064677185304816973067418563825399790332253496698659849744580193685662323955597998563343908321146664206600448309487370197416433723691273898014531614665400438941558259177007893363357623811306334458333866358653004812837496242496822975797277456904858535999874127780882583881374051266599901640840382124795326524376481928970030949462891758091324558552062520991428781384512920194886429976576950571071741285292771673902174494139658895209980029151875385684052397230877434908796000912358050382436220448264717420109785275234969194360897533208485441967553376130494624479672280986947189423594972941726927435406971269097056333275187963614033635495758860738225277229272168713384002353779390966143063821868339673311821310528351031184901217326058957713217581629546611748832430451812547602581568674254675877275550147229353252002275478678323377599337124973358544431687792481717509015772954422589210316692587714704920498408585827416640432484668816323777091482000017336290930223043920179444696203497090682287251086485584114506917872354684917472491939796255905618082849851955060346918012346698272304380865425691185350889541262422904762405355052029264232463857482338532827537636394320465604912487424450169742465706744497913454348342298195149330170027071827186450898491136048993710376383289377048672040882560729750714623970159522617097067051955141083271279808945236475450121321132179528718932497351646160887858444784401141937876194705221341339110809286240835743663797270970332272834036168419023755446568689579850705113961679449073040019697648203920019296576488844080411505823419192279426151594695290693276023936990543812587729698590327947361363127000718122881199982826644514777532235075528394800863578773138196736583874449802735933649868255840476751774086874449651753099199300413357103933920379229672114754361979859243843609119163020683159706099476653656041823803640443799820008677884601219548552733282915373250087304280983239606059856739530241999411147921066059314172777856994130360205990381678429963807937161228846249045493761488215510965697748918473044501763561775061919910569312112718630501994755544457358759670612105492302761902601491034820382443308738454669478978666367442668806311774975196883350789747611203723377712394416392867721379175805210640542962859183666696403063903781720034754733366582477252512613877450135117256902403006027632962909170701741230282143397583791595648441175901914762835351011754642995287546449529979863051543611864891535143465345160742471529844777098180738673966353594145492030204299970548252066275457239798418396386740940647174853650806635048567204914132701557656400767104022539515356502517865843398202381666773976387029737388939499758617592924865329149114518243788056740434627835618687645557394012904314210360170050798524585222913741477255110081887530022118198526460652530679807385693775465658786163210293860286637300733914947038941481478026263394051977149809855931626968515853819225818076866357617285371070275102574095502232904006295182635303568509418180019341684273062477069330033776948942237000514513457070592212110594409647075570121905960588898844963588062609732258590657927975226370951144760201415464682634848542017410440600303479948517510558601013929810799032074375362013822452316360172721397312628864838567074710127422875478154391832316667598002176200106454339213478511091122851902762895961915972929146122039011370944400519380678784256090988995933627009571260185313927404885401566333999391185343427675973083480246917458349052097191415134773590725574103545296497905171942635861142979859743146784285730271572280041631428631500204723646058407859262594746441411790991287230418102554651930625666681108346245970446095624953728487743277906544884400663418611992055214063162412615724560543107530256925532118121071263790121564189352777228808785954054003485471589924871130716335895905548364849496663118731260112297241052078667498781688438581304859028355875075464125435697800324968058867974715434441293839239240226556270573949456240955124037923836325121922067466491806313616235230067765036180065760240141678516577424076851366608878038083306778389751630795951047694738968630701852510764954318325296696741845812234397509846721273637448085516189032598102087921995321149612519184876315151098383609451317394881607908443552434570385710860015244515684707087861827657760594649036309105571795613719605484889143405426157084537047735916072400327752423542054809248496288557203978946549780629093112907610687902353429188260667937256806942313633041195994193889280284943663248675511654269799865088501643925553262573040515581309915238066077253948259629642325002406648733714446999063214520553102795337713107365200895466545050696350588195302190311361668234655135510058382866503572202505533277692500150265753548548569851119218937532946758931638061401588606697153914675936713010570448420439548935192893672963914214708201540235478763023329997870942062748675815591144356072733319813292009017789228263490876087104624277261151818822334945215387004686450393045581236396686545832202976389779007183148148699582326988282281906930280458378110610935921335037554736049279880403392725422615313274821704774332713825140318292260139900313190432923795438873658368090922150661625068610893468220553756875767866845182743155672754564168020473974608491173658172466998194746263206858234195873196057877384657855328256839953548666609925202361872206625551076049172600890628929704978823055616471866645595175135688209198689603357670947459316927053048686235520907198564784092090110769582537843930872130227388997789167859216942813695780312707856947454136135507018395645481049648353834201007635486198268393357513868997920472489349938087913357059550416727165056162237871151235673706055717887964853702654308577075020058440979838171818411371233326071854749705187912196286281992737531852913099280061513346820962945950479212378844576416516244184175935633241090693645193572067827691614865891456553578929657661429360006288184770744996939407182672560235897542262681562574367129281255817387152795074604186283245691307163966749745280601056596707790113348911047068717963818936490007557831812600014342004414525225972642499195602309103040608749470233997732179058299796957072167129576132413199371972212646321255300403603283835764480616985110201419776609966686647291510287426106558819666870693453154770891475786961490916452263584301116715326461854114941838749027106941612875696986105101106617149245720433688942818542375757199380641471961513036893151438083163165488260390215570654310754626769421152854644068422051029428776180475748789976960576247194984245970975780703745333526112325255193266452087147834094974498196297513159995263960079504083836493356249457991160442128883108264145618478843630502301016238571970089219722590739955282275011103007480871648578306101214530558766731629644910972266549281743727550692162977995516808485267433557107816081457367324181209527015486531758536275094927295429840583108238095231469529972857801005563530841234586538778427897938411783925938277473209429001048643358130193326744785572919518137278258327072644950327794132276322443585776352607150878055635067699257070598173005551934215532554433225036576970910321155934511584974060978681777018531646559048293095224455237445726707536764077325763795356070857119311545359832546947599544889728649017347994965214234762069938364691720468693807860026531245883022734365478712795747653271146176087692410652689688731169753854781645512602152927310230044905162841418883027713098504804246396610827294031945061875225838518077896636609368062843020725246216209047198391624307018479973668244192464172492115736932275196375901055283746265642927197393960392855735774575502460274895560759520333182470698818511310751787617385452628573636028047733381841629350401829685445488340546994757100939639320230263184988478748094554658184578228772879757519889584579159939135879188866441227827992290177653206277370953883258568779057761752411495969929159029147440144824916225542795345346876033921002498434768959090559159855480031326154441407854235602310231912032351287976934148111006748210808631409759212173060099704026616202199642065938946452855963529173196077964787880567302641804715584905122562099861520436146430852624238145738647775315467212807782866589484173120908042793977567821408030644404292145297529428312759787092596980843104238455826076470791188458611055024828919217066197763496699240585726509064890904879089916384612898546828524346076521078072493938546616047195668654300520613036104536871047557581970582494150046744382236153383405799364506180845631367266518356051743144116623271033628995406077862310743579315862694306492450282108963229957320491162361996663494799744269403612547042742872285523085586833251784757205419939179159490469417332362019379514507437893773265540650246296367230522018377683134657356266856296536933255761319091538314505454899495913296172278029865601023026280431819306279900266586256140214998989068549629626081491194647121918331862045300017817966220986105060435044472321851503504688592942242301705473292122155169317554581833619397566304114833719980661686192953199940767224402931455846622973499708350521611125138299599085041145619806151534694254671737776274604876108972901235426555460696398779108200412501586357116661845756149810098836881385985877891366360107678616417956143051452467119131427588322827627050793591157066407063312547074964728415993885125743960870029091774227058228008707688263187612086608936032997193973217496863265940296235653836459027046418622162456749977610738497111972552292857854885441417390478636935695339008396218813799675681776356499652359988868906186294557426264105443752596124766338072908548765074193304515500496059832835539756085938536040829604316064644285661036712591029207916863601203997809790608152572482491833451458693499094378072244944299936545948133274748490159993694149563055701051835582915105923826366827837533267114248629972595482631912874193009642041307994247944040912274060363058159479682121518891485751735772086507910736845079736791803008567794500161632727975620432807510965106573004845429368601283412881291202115990042984820838614777641268502954158325656211899095978966587872108389092867011016947120261004045751707320119081458868223154561476100828729999945048342349757895796302886157013040313483139586013573502603407347325251049406503734475571059901967217990533013145882953929463216512970854910495576180229894803367235748611344875424295403280843879028045230041144726542558239153100564436884583062199820557837562431030773148810053591170245352593981037107026883412313527975812750248892589102574951086117971883680212435119614113457778812218497703077988440340041550917198280981501614049002662659222157115073455027801583956078265548766854942637135773389984266659669288374634495125665821681923877951890916964042640515516581435500640446005813891551354100429495574400190208829176610797393301965292550820402549411576241974621145174860875145245632576597240476915510602042474961652582123032842551239987552955762169152985277591097386191759479452714700521960913853619042421811188217281773125904891433399646974134889523241194842052826097203084806098418681818939484833474553479763264630952719017737200233683019024349475525765044315507961552396509347168948245288276640727901511019857352315182576916205068953643970367868234543252867209827707582952163182586441885108436903113807777147546382064391341043606245694277691677190464289705271473837879663768442283970581696185940513808805942235876097575031797655657681316365616215005301438434289442022718338745802416929366583550592357180809113754468193806517897577546404584130774183668423276318250284008792144345509512095386139187289927913149621956931578303936167773116289133203616915938233575376679514430112781950267813376703550745485284687590045210974851889914081205107812038671035236071156217783243685775700782032590803417174452173634684283780898316690107666748986310055948749810708701059693933311363609884114303984364058013495089516355730076978745365997706792153607213142185237877513188930264931837716991225978963280355540157973724414933445112184761406331930999471518718305168215066327643039823684443988141296851629333082221182001406140709876892348157801243515545434718838485986352143061251141820653461107009447216739225033299105585686847026199416114909480558687646618519214409258222954422353822891642206282872675066256435328344345112997343763201368343413675870002084122207672758576829489981935572688233020920987846068030302640169031947173908691074257012288924253522555593962203125327661557281145323589836315103049603715128155742329156979150041644668676158230842793928584949969453787617363676336451746412511591684711501574367115033235324405023008837532494727233735973766199178771467262636918346807283546998917364899738231401903793951080165811425947293955891177833649814975213719492213593861805096574752702388643390421108842497707947746674171534129907886562397407621990109142700928925123297273080771603146424847867646073349149928470477404376392567419797628116463627048326061404545535041069799889694326210075133160100291682956403602058860937957974938131227181733208714709383420376540614543244275257998855816803879308708144249125238522193723569268921944592510468268285395380139204610284794049215837862991772864622200004860065697845476102825140832609628012471657039274785798677302945729658734970711332826403749400521407595802282830550813808238343435699685756478901244555902842047833717198421488160056718186141308772549837929434821324579702626604222204403252318422329663367670518659595537466335322107686215508960507865471673278678501491085288541212912704336238449214425852692740871506786499877249967945484839380440789120530716214930952569609078963427094475010297964060303824534975307631634192567893666261672959130544419416094753419184931191413045604395192918181490182699613580333430243014199680210909452320919029169935611054674035515059057550104781839775016475685383674738234443698029234302095846790075485936893691692728034357575461141311169546716870400202660892942332247085309696143441968229110708395510943051192010131410752737511054590855075625018634328904430377567476271606409600867910334293986012599140767132371808724193249315806605102853522225782935737410330875096923903918520612918018270545710583104433177346544018609059241089756494046585997684665866490717564938249271734753324272217722489555935262281266556529460983499175179392780518820558036899088905384137063278144000856581022998783898293097829723175552064320217717441591282468470640150720167271123913000184255712525208392946730771978739733164198875212345811277109118846279105389188898359871982256087373947171050336714763384192232579986848170462981333937718900239038193721705096765277894892958439192912105670918669288033978622313777649564373096363452330151328738819850224677015049766025949317922026830240439037113435587079214908807492695046492020279888327886286692371609454346435280116851968344871733644365867592824064174742617690280184940998159109954662052612491079333250609856545085165887020053305963202508477738242073958094559253876160821487579277310962147194302820265237634133567224144552816022243208545818611718987027507553574178672293708181012950547534844075120085250421357952050370858787641920475534235263920870299608706281483778136150907700687779790303315405911921009327849455256891904820943767825621470822072697687802522599486624726527986544509842632658497075327424607135090641111010684402175030135402665243377444382852909621327961295833966301744490776840515410288966084701303039404108062911434849446301409219030438279923324942678657796679349639291273906363215007844878872978041161993341544819709741321377047061888722842531722285663386984795369782414425743782374360049815853152070260598650676688945393547245869296104400980855799191260989733732174227382197092643650812174012887380987690501028882677132325386141773409241414715907779993388577024999468070708986941682348442787851348634968674539683498969838687789057846900346392207832578195827930954846222138733908087037242423350258786079838034047010383826893447248277329848562007085583754805296410781652307234292352085979967773363087229601550217392189790127060921495960823466939471119687208551368134717868246386692538625540483256108518787353817734662204560260148888799801037044985465610410511230781966595969058069281139045150844543092394758166262603474679213267555056658467123951823416782257546055292381736260925047801593537129010613532708552283369252195210228522606301658370237038876311736565637037174629355565312287164125983517473973732750456255922848503268378187714261308128413408592349980118062548409511785672240956169245825712009897543763084143214580291116781780311662314688123641710322745402631301080695631721987460475684772052547069181012211188738887603242011397392396985672246840113733619971533830039592958778813533967828969441103189436474204982605760646224186916509952228624593495097953271664035223636371560936987808963825725373840791229318319771086427127491087465370512533878690920507173099356297812525566430026669152540441354015919008534768000785681989751608478836466062504835288022212950154052682064860674360766935628524841792135673015549121194510610192994268889836633612671746541937829350752029245134132110113868348874037044011975903784374023109711022230220187622639676991675930648406738051871372519469131651038321420067477538933795061572990159076858357295995458609262187747258510724338614729806924535278863673343555853937816176945121626230017262359320010067396515079507003658815188328502435573409975580207295267942764484268076293680669689244215478897556428268654858395162812039199532035572914489009760737894893751080963608805928105940321289956342803435491235624416230425741308029857178724251567150085477866132321935737311956706974780602206754901063884208997312480092912117511276205092138726589184977274537569989530263595145472656136883818268609552968657378823107106020431864314054339426417376556600214448374757834775641803889984920491786251865465336904149227170610504898170396162243589783417359565613762551617186726087433562601645679322969878988921711266415021351352625822734731753415887439829431737573088901532558613316035335407527437493726633128623528483802855926965694164706489726281698229796047050841643701955386155693206850481821709767095662325441517276717906498697772938387833881314450513750832189065848230645837123388549600781411431583948725848431743222216153178356774774152875306192148622118864172592029612048458150810629207353198883311571793752382346848299953173283274062032917835689367595182798771683077463714811204359862283682287037475854548452052975763075787804429849331761123428082531742584180399055870953772725911218494848853847247254775051410602179124609811086238324525995357346688391806066697599835403185299701235839564487824630671763551776082222400054420919818272112421943921409638422574336207841166578414482229939522916605349009000044556618138858077569699332710545015429198946997309554911023209718144194282612201163640748363815440412799796418918634086034600164157434427123572642920989092045272498177770764794761763296797374778817746874271731428957702146636248271334756625649361684805756548010368308184581347511460676694007373620506663903258518821647442626752568616048997503841226984819848137344986589138045086088368548269175540295847475178415454282659881517108516714797878913535579581139883939276626363594067371107622759192057192506233586917197402784232668425393264721075715239842284192097158649139083093995139031019960919238097078125216097281963916610486735436732728784709513696393767324287716354797453622783116380235050818767016990432479453367362507003282016117325908925800178854294336947787612772790271234764434804559092729908604094209034632854965934421479381202120828620566094660179748514164261317742622707538233418595759168873669982950862103480782028970613558681633179308538587169091979419949993352719327531423651292237086033005266601171986597783534213839399088336153364902102356704366693327247362831974430110029087846297113455130675962741325380798204856251289252221067030031132449794247774517282179937680708174156456215641244075767734849184456702968056656437626668676985491545899193571829391121121087538979974824632063849239482280344364899967425450624681558806655088473362746461821185426822103714965986902154382359966002721743243896701256716355988086059846795842986853914765733791986229193500984426122919260499132304657151415645102763323276665818643974042825115991573195528344369564010748475419032785123734972094281514965987966134853330113807040464698605195492928961607659959882959287256753803024127074950249057163976287735962809730562658274568481463106444356272378510120316380419333220496379538315926200082652252308196304702394222911064082627317691888980016794658642705323897460640487527042938382164962909899558855836464738028364076744648582250238873612479602864183489569114794277546063529806244248377024059251482745695530627308500410787268075977448837501007282030267929918995695056112031554406446023011639670740611085736186173554688070317606609198406165302559731168875294629329270555905639255059545948090725318236013809919074817358914761001682849163674992230746377988834143291325317548531845046803242269740683594496007406156012217472186316601783871573822707581236082905091513718828400032426748637068084992148175732779046002707602638828918605293855589450436805311678989069721880130252821267115077466029928686386060958098721273733317832588478843898482439871396579624276256458164582053360658279988354673272199462773169548065787691453433250106063340969569680767144544921050059479695913779807166959042810724202739424390457223929217972526894346207252416960791786843032803900993295222336560832754848070117884083328087484908186000546674045767200179755942535368513751356535119482439968338596250045891531479049360636329996227201311617816806986676300594083146729743148518688787869416190755900825402964333067189619299455942153987156248984397794473142571655904085436090831092595733753432939224616565082894887111445502789207855021240438399183973886537211723401135592019109842764950651051310928413083720986612448855119695235578629568238760032324427625733288915804952873673998946449684383734752801120641518013801601167435082887305258696608485930841357481245984384796210189192761303776959477146770312883496611454355188210641576753428719305864038086494732543609263681855963741923194865581328280057705359322205820000808178596670180203264600331829994988655493290576226238145295925840164562606056283853738301785567179698986963796561864381578072383586421775521911944764248476614141762109188404252214344245155446049359328144972112416681728443600947722225543244828323136213390057104421262280736862260607409202105921812805061622826104993700442327736930928965391657596673263470689655524577309187818283264352850822199190866034558269129221761065907042480299045479135757858099990588186838867802693837313879848332595731047114005044939366537322818219944996725483266760231341208174377845048483161529252333065221157153820238688287674110454353173539070681257220844627263411830292631974991370192461320878530650688695209024340695119518268201871096532434659947076253639303270000058502270753216322531232947719527571735009332691051099824643152530348424247705625984941054965580770844521043816533232560509791434771728279688144884040084749331308018095731920146342184980007411180060098673511321341036389403605082284512489922635292866785537656260609160225807131401247544014188057814700507576265794148799700563919616533115033894576494836719421881401356701230256746101438924554729476801975040478236586555945306062382302592976336749404998676771410908853731143524294951784643304096395444911919947743584034711014999505848216740780300074646831504898997495749156499839940077486050520363087623388503280778429090956377849741946888969507863332243679978616598235009622627228261961291039975824188061559118178858770508483895467208827471796378199358012000749246178444705718713544170015652274323183930266299920109054388364826347027694687088930197695026254066432934957436259278105458113565532807807841265383937505673582628722274846754797077346469316744986944102255241096246738499521552964426651773414011057693290954849612283881732713622600212773907799751032405508837603234476706459727130490811589204283601150417984896403372741464639572474052003340541382966452921161410855824919067426021011824369146246968118932452313502652380110545072046300632581529209738099205692027718019820008995529679631027846271697119991956704718605905509600652536291826321233641454291689312803413395497467611757040916036133204704275181182052978137680379966311592572917037133002231798973571890605976218213027757019065698853187083638230019881917794708283117730211528408040120908663194722107555429637014858792993488678488661381940246971657501935437953765606781807748881303818392726205038272883607510835462395528599095847758911979592740224161524932641205491855611273839873813836221492155030623681461026576765577448027948177677067084599526486411089886477955410593675487093374411422773960727953463180631291208642657429610527414619848056579868275993170550960775349155841572130463843399060670294725712106196807048180013696829465829933517166239755812038108235108713483045244924475125225840654476579044187359839033764226327627371678055276293418871684755478707208081477698308691636071365312254271444171762084833351094335672249883529873624200134603786482389064205465958722118547326156575573300218883215445705766868179263201793565494618666985773927665546041098843934002771120845436284061687904595184576682882104096567217627642969738872450713165212857217485577412485160515058029595598525247300147259141554631592519531376889938443919423340795882015356426993799264590634486012944936331885307276865829867226151278634283154800864883217899646092735282768754740743343172414544780286226413182635287753192173911297823708916868796582843191114307896116999097083559465464317837351939045355050722413422641900049400812701169804763520786295189102289152640793377508335184733191002916060099923239743615913463008782641485150153419833023681646640329208098967260007365844363033847476964220022956051112570180964608565154748731477218175528197639825108926277810507988071493263859914360316658772366995943128830519642125487562783130911112441502445785268319682267022309777194997638988166276881454033183712056320777167276243144505088142999178992232862270906922106779537315614371080941011505109302367702478983206339009720829262933177027532232107414615824898291908654769166660845668271317843926347140276393898561491899931154769294912310385578270492606326988511539577086113792290460774268564197636139263810192995537405679915718486855386199714190791509516669941235225781803019841147725342283912173878707064609743256095480307888246249026855707475769592916527493349695860541978043296189883221399825215561224040205449972977715223481287282245144804006384177846630783886105841103931172169737307494972809187822681461085044170204917590475594430868308341803408271737779172811704512395150637656010949717047935285194611913776205335654837368969213170783787673840951200610511606796890756349880295643872085326003106243407900636463801075323288277451375729229831116865281476081622824782148646312096270405279899476475361477679815333967969867779178716538859194099186368714059187479174778185665221039479608634446774827526136567684645686921798046602290577352785842147419564362911271306573255326142302250471697907934888157175252037502882588188489649018733952746423182073498655826577953696505212064680797756309664039721294337637149931083871574738280162933193290760481416789770487736192367656020987744466190691548692265560142907553078179878501383145129499807324105775782729194049232256082948060584288224809197271022831377662740357347245910625521870959481888266317900464894273268488005691340944044110377957913044767144206784804518629578561963722995409399049465270508926128248628555410019599812708659004611998276339425986851856141926789264948113287186187745157100258616563798514427307917007287932762517361621478645991955765001210468443367673487801028848712722335054576232719606215034711193219265709316491623658926281850291081464503204085084130497592828763765488894043189584283139843873698750694451715598601725095967720434594545820797625894281286509075585676347188767297956563186276298209944075503587921888262761967547485579337017816731093791720791004887971002717562320247550229397933294020418102520250897764027311113332674405137402097050312667471395907719018391643197711495090015250939977590994183127629895700598347740069105350480079667958029230752020975199194107624712635790567119153211582568720401563834960520429300162014866997720083369139936831002311897600599343730466706392866228594338350631670734617086505227082054563981313844977094252369707539277699819177036067050629281739042048607266896976869884184804535802567197483589561001958455216846476941944326615059551527500541677653364249222044366140717933045195775203911391010626743589159111894474078927833484081814560356487652320703183815918625866183651282653236282495661549184818701480416475014249475457548169225237678422687021902066747150532937453771762175153800780271327089975946769940248365764763393148885090567072962355142332746873499122509999184082018137000162972483157249926738454094977815162385008870410120430923652072248329052780911448342461254222572002406292427780621751918762070023866822624653665766165273121571397425854208141208348713844065121602769271922400214044178420861498347663389895281874488289643295442344260691745096532639111722228422524151335434239513294972347567669427869522629337347967830532403929311778697239351536160415172720017466988650843749476576520759788954603635099610774075714781017867957612706725240901594822510097949328849284254524901313369325784662842101639703957728292631256723696335527529346809903694016772360407922102322945043659930921807874574231704877428418929249496114944143410728208727340728575751007316781253522612450313589553898513966862179187044204354874370220847248352672570008791473532590318919850633309999431856187025027848126139078845884734531020825279111592565437877884282131336101162709498027670677552776962529690454204150061425176741698963613669457604988072072825157538451358263212738037177193475375782758776652016063590087997173524629115162414094274939817511448622030920030013029800846123699585189074766000225191866371955171565895168085354746298478692180274828457891140576161920451748880159698550513632105630668291151274210264237201168958111312227609686136407976832316005469017937923569773921320614178505848335085761915242896218339719786331485471321686912217107654942148004795289086372744814968617011841786561375436768856443849724271442691858131678193397184289046719954951694951421744510099420026964263468999447873403802898192213696762593158121978175426233442740969108272120761546697832082191506191473831055344421204055979406839759284614570542995634032932436534493833708085874505824534457254734838305053657397368989087045417119326711747294206775533063779209186044271411050766485702495452570740125142329010929439852144620486981821760356014384276232853513287833298931987773664504407929443526386197992096314434271899952710077825101127177973249317351388554176840756946318651702566956642390287396765654076411727253922045673080371886405776023496458842245743436369314032524517469644222990848986449871187828095415564290322111749461933103660565457021102899242165122123504622997208970985181625284397062698550816039564643352818969388858534557782962630543503209472502808026256846233587096965437391287439052146395685432958978694810497369570219792785142721655357075695225468908669146330714778757689491903707647767468028946202728248318925674936689733562658572293282360157317602672313138534647845229882116764886176459636240577432528713141572331908270505310133578165716826551666165313358414437339264920859217897294384340653816108622562322149118261148513776001276440594872391858529129344280529032575509686221402741346280727108495580237452003018829572956433231126417487602983241350980361447436166681890251309022628210946207286759447145066100478990238131742944311998581415221597543229761927317646822925463542269187734763294277858963195297760847871312605995174462011041478044303753231694884439187869224420835582098979399032711113557689664779240427371530852228319244207827344251209883761391383821346144736682255503384076036200741753225955585556779168305309098227356244163399391777201429796298462485229365148340810747677673531384297332258351363418892023231200732960240640136012598817343319426717985386130217896691217294587006981218443812947256599268369967261288770034543825353954487402998032880244951286681436825611950551454773016234738456518805252824825241637664405485786648897275559609397597689890381518844418010390052542337076954087308446343976827905066734537273501546967326566173116208549269246849014960183341437652302562493122245792408952849176176516853820910977266433668779335503548536508110422754389347717455269150078105545676751908091549183950836501074396132370177113641133725739731493427017637921810996804057899648108854827066974494348612976049019479421708305981948185069337446927713049375795445428889216330197147761295241846091338703208307005556384214638712603219386985565121215968283875603323468377445975433007396677028591021055812483845459842259743265185162349912447739297791476589629594547197326467019837701576595922460733186558085428846571952588477565541343256108500825204823661102953365833326178774756362440483234053866620167466810391973246905676842238581889890878909415175105892781272479093643597506281419519224511600772673295049676733604949431253071503837644294234553611438178843920891672613171831690572658657863342375874155113934578583220981919341853121429605341644839655125538204151627905468952218379021833563651182491865607055059722886958449974467134228778700267681966957388195492927779661612754691021663102453845669910351379798795850252220070994099123919556435970122108307590521474209641865017001099778967779288817615781076328207033785538836037630903000505572380702240519241090860836938904203438191023367986654018247043821281286760642618067612440508261435615023704755165793765872870281139429799737971302834616571148458153472207610277052147218914276133760833852842677672675684857302004312286562464711840946391444537743136648237669944719811490310958283890664630014479352212182565204127230246522377442261983887418066088018689854266626053133180471768688118887642321966946016211780056354349687820888540573062820018355430957594559823009731465399220460077912562734376910058265428201970478926863298553072732449011464573580647183243396384456277519652737801007344662399550997601548304478393172806025344033955253939978034387384929009917406844681734401298733199606028499032757957111059299272140707380552457469246541285734451669257330326118523753389155058466679052490119009375045624516013370600961252912741074346458995884070722860859886102157991429991822537240944686258253948818636191826447238075328398986047336663844875390126462612695105182219704457398740825559075920382485169475849708048875821483213409342585637809438235517461053192889028259745565972901706877998388602674421048644152851536044191222328605307822154928940709875769607646593639962749149425813932864039846157292354333445186045117262729500882802993707034424578142436368699533662988179532632127858441568324243064232119008076428688778913528619738805462548160408232435481938806631148233471853005114309286653050574761809929674073681213271143973161452697409932259240255409466020985697064801700779315864397286540222432874687875773719559907443683808140871718486157791497038466440673914886297490933725995736126761265662058539824215137841666346699778078904542839370864808510281009492332385248633827123597290899756424904727240070347682987036043691344489264195552421577306837999779195456419664355915319588253786448112497380481007864371403166269581138515402514825213960268241565128133288703957247361314983219714784380203121370808552847806254628022635746268944366555393577679429662155260890241046072287883868560508892629373424620888310960084306720678179386824824220434963684194226931288618731260543669355267144530716208195355215522415979664711370998986689758262484409718005509225245324863851062670173313966738662804964879234717165535658750634193418401629838559655540746855733982948097840962573087382822404017227694416048900846694365564965746729491461724670119307441690860617455337696088597416362309046501961438303576288048290072451549221368348267443133339382250396793844422194611309693595573793052891359620005994051718074337689410498873501953343377465469380555583313367267767229558616222497078333959565992257776982454264265338982843108538581925990682105817000296981138081188448870345330985047195149656342951484646645683557912921999591392187137511012214715577483722053277951230919522881416482511331447559631274581792096771541676867551210660902184669750794893755103759003912062223761967437385762791810632654794275009294072996312359420273140274772843604184145989968950266573025345506885182575908742541911419136220928852983778285725124793667443401212239828374238867295973801546865450329359893834074590263070786455024574588095558443960679336385959977312038498834387816196707578876004306916555220126194536404947180586938218482234371321457738539947663982783360539073620312440970833621743784688446309922301194654795892368542740244192102778745238429477952785558228032064453265895738727207877486590604226138451589508409952363649201649288111939863170618014254166978918820082773724152488768167598951710521260845721269044528779261842612439543089127105035922189571735774874192828271691589011476317596912161321106801600662252604425381681052007651548453112603656047033092579510625944560252909718793202830870850581508556548716992162478640769300300606011309381949190598490079841029634756380145425556424612125016411752685566933708102390876389319913828268350427040049702309060142029678232165651788715474675948418048195142225674250455075456085573075851260445413782887030791292022158264125811745003541285931890089396031149421870775674320610751277636197680313582327842207418003864945266535532734001423287508036948554257116484727972525421870943765001340912843919956386248134530583400850456149200537527853056458852802117966008154510774516738442590154240067384799119896784197880945350754353362298372932768631142360755820895402567561923491414225319652245558357410131091208395176783077474535223682058527144836078301745169984805964737075589869179419329808304865185161266725175190441384825136104108318843942625585542611153179742620664122807315283664311151090229624657559720022860041453494688590468036652215421849003115143853839135808697627765183709700841672177715103571530547844867769711566754201780133351468651020828826905507271180034701171884538548788459582213981288106434996704824982813485931844105780510398871852526839336224404863867025220596535040424465150026009035715952696685065077460378989727887504597104284333912976003125417706438431318166431654206706554757233655381989192603386565290776667465760013817546770048799658319085074551893462094911515885798883062924175378524545714645681862791064225474382865722855563531196058086613489333263787308530293822497525430796379347194657417637818259137207522535322594403060663809439070570366300509560916608191181640220885348015139599701169735994087357225763337245672815025490792047163744717053297811857619785427630336539267797719475450296944448557968916923944689527258187123374880436432513526522160228075659232343900249113587355572400735142556030810383281278521158401319515594700548516530010326143302504604528109730621239277476469255597794331451774017095780232381588412720919133325641411054712136597705861929182983555963812961993887579986107949777690713515170981088523332417968869823125675843274431446342289385449452879507741097695295795626063815148427869772304261441130734586713141411024596647998485130111277317862858758094603968655489345606676677620239569868786887541152164455311263684076266219894986961469766641251581311771939424630969027367667955452207393115693045926364318845619797536690445849178513785836299810559991644099046859227096746152854175843125470525350353806997315310750958521584167740088927352712875305996077220440436542657512441141277784675607305332604122253921138287282417069158731354797267046311328117255383499778616677339431963598350170458089468499498635515645852885719613473667247773543416136885745297555578619607907526252656176041866616981344180815738917682563982218503636905270556993891012128317986129093398070353908128454170208032259570586620269701978534122500558794026688330959307635902801736922183412748313740873395783755889086951927554737987628045057778662159163904339141779352824987744637757613135440097976220257795893432171714363531321816529988402053729048689757160644116553535087711042115715121363753980433290275775252532890928301661303293369909827832524015073849351406709496138100023257869958295991739934539343303394396452907335578574415368971710558899020985285231421520734708082419257385876668951263210102788798318287769180188345593239447684649399807737797490861000905508419369681741864959718494403661134532384775499514053353503977980790894969378180975324885721987690122050521298386996002512807190736330075527130820281853034034921516787156726911808903160021046993030847842863256791938005323372062552576846256811081938992137802926734480942063238664780412127890190759780512064274334893955051224804573533839752154458657247983227881996797164839336730893947949071807553685989349158171759053081527047920493753468073337291439283704033690787577300341392157360604781365052041760903920414093899404254546906087878031385151890237366449294871267821746192253919241660079981623063650702586683047573916218235319287725662776808312185644924961024855078392492758185502030734853815798374026310114173138153005210284014106422823427580410181063479823214692555018070860677819329059863916743998965999333350152637719957890607322136446039402656680599791545948182335116550618401716237097936412484959255471956040031621402594725185507721349258523218850659559705506377155084825271004764757899021282100010627261891333025867426338656664354205171355397791190457069722962309944383768877663155760580520823363560057492175103218515865198101221161969448427080941015900738347024704115673843426860479713356434670339311959209472145540181511328515691907352367480452364966913756001372207291280390845521081534090160725717061396516310912605770439016412866036663440216118921886089907050312458236670584870943400578032548421172186439353746454742321590669896728624254926622286233238873908640012486110238210876601709587564867956510297375761873597754050569969263655371539836035354238934964153827964322143257137145600213055738596140458804162371741512064424179210917931079417775891515474994468393574281378086982956157099294315709006438603926935565162893392227685117037734112917471205402677359984151810398260233682117668008525356792217521584285744950424267128598864485156274992411905498341827210645441430530317116210322424602526079066062021782045655216989649054377356558667502367884155021854916208173717512428261413175170118642349706686043274725410225817790668096099655210245547850908411923318621925943279243194400521070895935804559759038452612447548191521872870823523158419564365846120195335796129023377536383553288482665330583198435200110285066879088480192449954164925048863355750408243540481014618109645501479511260362110600848462882427943130878431950010841541053954931589986546789267805841650367980574938996703671533457217680013658095743167265607701759890023209794309475269479485779614684711936718600158578775663006238962323790913041601364441725447463916485967680432944226019510475425777960430090203198344271111426934607743042391395484583353652797485403813572346692505585218224346496248236612423371824221461485893024071022132396973210799059759520781393557268495489855806219947723256978809677206235353928326604449241278381606583178322819698455127812771988485546595071004167668497992128935277427304886988413719245023033624892816699067891545049932349994813005954650607860030447162648038882478901808638642806648146251206544307969348533003324023109891285177627546560636187665657804413202267523373598949433704751593001253479444089016833777806578156988401190117618435257681178845254074891036984521419683841159507984267644835938579409342556825741359453473996835008773319511292212925553634249045810021783340394483680654377069811165055004055496584941924064191114774995940099450063601879555902688100728394425457399057162425008505007725736806750535159739759302278039342883247713455495521117191088992444178257740780911923502023756870685646699684788205981220086179343980220884709386650679878400682966897236006717068550989496044080176401721176145101405333673328869201091495296894582858590466968908132254070134293104949142133844964896694186775745749480100749326774175835379364313569733485097638773248863137282412210261299894808974820538864943532766920810378855897052256438099926001696826682411493964557598684861891420839075047409634583078024894627838514368579249701925551658930211709515302531043519828083130210781255108279450487004222037787863875730431830587894282872287405937887887736307073077526013906173188584225891241405109414990304381163717260340857489021963437956998081271796593791456646400637572206344895989635426155741929669427540805962931377371572567634483940692069441750930768787786133670353487329623368490694870681201754848181355640300005556796199725319119632604609465742712497782618665400298185485807733871259732008339198047289776317122307598193961021518247476180882966082158064814219759434232173486785377106024803236633135083229885310214579391550627358341473261218117296065143687601585994729182376735154864438700217769116965828670346556449068807068947540114077883496173018212435063065404889421756966759156156743673743468486040572842065904329578403739369331113849194008836450130765979525233230769484018366783210857807242452733958696075516179093559298350148877035977130447057587944601059889887898482455265045395348060179889645026467876560269386196924113668726460721359581626208640046145536940611372749100650695415831342406454649471278968784328362052557893861968722947644916194257276599320861506635771288957827749524973271226519350838106722126393921324613269116243762421718047973034271327267612036812874624650226204526433445117872227803881464702222444066826223917587646984031775821311713402505255005617686675852255289928213010553384381968761592716350062846292161521999900003489110434090275988728353410317822709314804035696902869165098953568765661455583191430102082111493747634178950505612182251092631551745996624115782707130213693221602458405212204879670351357219918402795739031076608682228486606941137475559084423485721041541796719555565159716131318335228269503809644959939930005201947254659622848386172924277855955495054908070513138919206597833527368011376616125469326768079647695711829113387059222594570367612289357851203171684107005724020637155925414829379701780766851711446773857571836364353215601337590165231586466984347532962503452910879531101619650914994106171303590940951826048757094741695197955740064869685202670657228008366170708563411009023330912329941373477973823516809976217128826988704624574231073372164712589394679293474268988747790477444165760261539078032699333152980092377138179441291042182341713729424112679622232804656025357473869588619119877610547915235037999092796031719170185990444122650595649902365692330401516390683657017201480209377691338415618980628801968752086337509322036206121257147673539002323460702591416599985650864171293749291693742601295717778389636816822568687754096727521039091498222261200950731963511614312404587435433661333516132439031660557700736451491193441252520297555640876209473570040676491978330673531577015956317848449972149927268702278477550554066116779267286107928795854968967060413652626692162475547443017189126326310502565920183809567617543200713318860625522187010505946473592262270706347645145388885612929001634362383612353502431439498862919806671511919205983928473809380865898704506471399873514740699040887221090769975838947909247468895631355122482631922171147464099896699982631187175716084969086165111279628808118650929730624465252815743078753304457753027259479201759293281470467857471486212248626472451985908562979651523255679921118444469860565687776215391379610379993726656269095986929335117818480618442535749095630125447941015286541757237000692384356285477242197923874678151411478997387722224175817303872017900342466592346580239233349398687567101530645443531775800385032150180350270593492834367879909916658971142564874506984276536198880176377389884580564444926343069704163439996324870797244729773831427318288169372104871264295864455679739534182115877923796490782810931345987702456246120329658792971313439656691598980254758000712578031176822483462177128663290830515499941036863485379695234269316953468114367745195020371195726825767214359903878660592858508615267422552195233499151556117147987797443039151290915272375299455080608159367124121785051294097562923003595658677734491335664990590346098591092797868527003384077073712998133246643289269271190094175494665620374132042522471126243961932173513069846518244266540196583162604632905352101279793576369512115969865125525477952581333611055748194429966280822078715192343625130876027905436559077141692345400264559866470769947139894484840033294504889583941820258154516721377338380191581304769367185235737479236188467527490310840070901041828190193117085280488920512529590123861896547500433196052072186967761948339045112456260454197370079548780032325049790086105689291888491646446716462553588133186096646139861967135966657545542716541432083731981786262441129028627442951351137949766860861900504257450321730241591723694819404158912451763731824197002222687281061526057629083329542498352591606388026353566950405922265166380822745925580937366940395310553686408545840167541851174676156730294444192580732479576495222288321716453307968867532170920318786234558347585357241514932947017231237521214832860330119864847081299084724702252880497588240662441487007603792237401153749863014850088835923063641396916420398804557814358656515556470426797913315730643432506320552646464580100012372585787122826700831550025895582291933286766472671733814669389826297835806046647568665422655461173054079997348647081975332914532838698891285502737195645204486641845590180266151852475414183168855008987320544239817633882440474830790489056701570568833188527033686809915834774661824715530722414432151074378548350501912256290867275509192579255955938996865858246041092114408330952940538427003183468521352094470507801278288854074651690733802991431419247754463640692693683048191767689464527487755016014624520517713392657932002169513883591770863153271847377843698461268046603807645623654912325996416447885224997646668696913489960165917828645853694248849600781374130584286209910044854063870114939573466619812746370086228462996635246105740342143755105618567266744186427146644386450831259028224607392862014580090732938644081066146314841097696225307191956643636090776177479389553874809341198240173905830448922669511282193207637185134061137158373382029279502570367171381798142700724238816870168529704201097059411614706130869215465050505628965244847282426484901945222964923446913213266268357183020977887053817394768867063013109007765862278513360072506979274366971911826613009668532104510221046634510711504028763697536411186247487550925577605917471053016923080971157780567831021188288533309250743339168456998262427378528862491507987651610258001136266195228193492772747545919144241790724955044917843906357843287509854354983718396359745256930086783990472549104112957240909685041451371790164073694244402856582546490998467531363910477092311772322548306604776207283795685147857590601194568266570591956804119717586805208387382463463728665118754412732687669916663075174906742522812501096318766585461380825604674186919643090618240000713123393827731499420778383116603726788713037351984058185234228190052361137160066749960373534466262184453594061668212772782436599613777740050239447957658905428689416247468737985165634559521229265258958629569372272339992379351231479038237227022231428554895251312049182290767128469513414046159086898608191653620981660598758258172322274283956909061652515887823871052207190847615444423811576221751352843283891156023033069341819145802897435524804037202606871195420108530039752769205237751058283568834993235686342964193797937955355957599634446106304227566370747603338855989865392919464106966178927389290990157035074250980051667339312078997612494428080452166300961069019158554670228746717323778451886475624088827570031535729349779746388118846748403325295240792163921761378423324792892236408890373563020836581148038032069126511794492256985669510292943068898492359151801810384726612609218951819052733497541618447966301671091276534750751287798139761627725690540717240849097346068346619236636019968774881035043348582584102876994574939946275162210824393907092791837198160254028062772947827390871511088803507919146525969990042873492714797189056039460205364516879976396803376134403704170074269742962322094786606231542665851758877592471335683492538349628652045674101577345979410122926449169250959343444443267889623931409850725020991413047566699528972696208078927766048996194696701712950477648270692835701078221053741508686364527249382291593619852059091756538982611315597463413435140753831131583865388376451238490496277279207020935323950495680561519152986440818420747666473147018971250035126568178690394699561909227080310440271714313807728032063139708888211683390083615661690998014869162314867845641825656065383057788639552688138555492122190029373607379734765780577675864699303598271800283779473920813105941713868189067789937062791279590709861185387554893130866262779494987186434892562926837620535448625641297370667564212407762546671848658953193867853516141561484244412058104434317775726399789985780295033353486878598181299700883022267309030759143428874887260719645610435352277424320804355228759222851375770436719277412297343341435254340877706844768241843894827015212322289347666704116717686540787063448735440375489417399839790571666364644223367060707173901204692390021848993963965587169296782063402272798914265768132240568735914636606734692184044947068807702126153265030655148739986244547442219689363985842489868626600458429396950579564626033461057979192952208009784519322385364627181100472333759761378671003061486748008401669578494210600997302416678257633521940340071509170459156070071717540915693068227191701086782835433944100143527520794825384903172045359057037485792386121570742658374057712221782548367804429944751218902063152051093319681501595849581624885119809469288761407256310349560979815039985130100077170119233688540556207802256061483565954385383139182454761422821890234631985966834343441386015862436786429270853899763197270927466865088107760003797734389111002612110686159657516797364420328604238030964631567761800019784583494256152202487952790427429681763437743564506125402535891743674804151314754726777356691097080901840581483372505005606522326357027019913364440361385232326665892631896098313581059686182380619140293052204052481251607904381548923471338751762780733596940774677746059690108384506622412960968092487284516290698779198886975745436883710539816493993401831106932346765250851334640209288461988182934307682570914864453643569620321281527210377571022725752721371760896357661902227410999520655972790223035336980530214431968255615071194194676463503149456155858229359590646760346562739455310749418440390361934008718507613426105839192238074865780436961554354616789545567501104599487017281964587780603331968317415999080468106698908316087728758677848978569411594378393395303328940174994343178893652724064155692384277737891751234527497113145620406778141407300523678718706976293660002152456136895439940412297046768617982867057922961876709274175497075992966557186694258565898699822248789465646447497757988176049629766313212025245443149804553478819775112086541374615685461140088966784181644715697491081870976254629900280142891025563927378127121951039841150687606477916628224851421956942277701416183657485683557596941857532416686772220089236621935742788463421423921396016355261264269745619339052311996101126952161879830617181551062749624526840270332574203575380189919880978984487503966392095833357144404279085614696053441255294082335891278770518598068226023312064768741851846798431793982478046731230338501714319199434466723072389734151707314445895238961713928938111502930209873971968158776286186819907955832736903987754859935460263318658158041257458306258441511420208221873245947405740193482044348873457644368999662712066289630266328468475801692107073811101761333756664069465958211273417158387835083309726938440712011047774727492088780943427169905465832820581427224146321899383362318767396400671916963856592429197143879700096691890843752465079058315925845334954736835718553045275616014144084267673233440658123246537998484515290222754611070054933943883793672107422217928479350599979777944551783664550649401593310132024267024068232931441959042829754206034227312875785934710073285062683055449634093659801759079642515016126858985225912784253815920266472856273308569493404592203567551821311852777156636999549023582777278135168799792539023534334135836186351547711992667253472139600888392932032607617524100211469269808886453111569968814492521777803196648690042957855269457809623103086698311702000630616120167138819794864908293806615769167361062595131451971277367870967880318639427418645889636798424202751017167899358762535283447163813923767942530270783750305479634076411881393870734574829238926841731031202095514813703511269970263596609608148593391392841858939623773331387339475060364456626086780558031825549473087212621390579865650966780440372496190644419120209671174402002756980428862844625453873869201127762702703436768217367473025287794117677704236151008775198420995365952466961225147488275151430909679129417929256566119243409921786313534065967899025072152810647056053908677899052403176534350833873926209333294692433273570661922401721527633948019460175992583391276525543036810479993475642358741498549520661420370908015530377271508419264736268643150390633492172026369182010386770587527271053136597416172833794047564107558503982267111083363954592780274022372642285826407871978071625665295463210645257216299434050990806583976957583851444672278144314774476637987979844766440192129451299258974365342778228971209791701493913859822833606864789940946356750395020800012350109123107569013165327428015811445685697767267636259487971068739788641877184919293002689146741502709761115489940297561744981016568370784986787944368400614851052108615071728041360920115558265919437057047344526554964049423984225498915446407707901723461144224558099064346437289206812485453166758420261904214996077481958286158022259654938728380512172294518643192130312613915733476125738342186614179223193859660712873346558167315984288784554669608823487478564957644058263503402887454957770065344745531353572069887007685115253532527131483506994449633124251749516506862668379226837996560284655475615231499141914754066770508957796658829515995507295441998645741289334210579424814835638667988034256236452424875425096525672139823739304532156001913248300606791817044650989227362753959707918828828703761762127974045572754485217854207753470722673292796246108244836167973395107551591223787868521806206499240193841279710887966667666044690425313949359423248811758095926783790080118565101614226470723888701997492750075908570265600740479743181818983242780849000781677909954102778448932267486044455790748390009663391149758292163932878977428801293502816633827771800584615565946980096102275323956430873377617579850951130605136201648952036751264617387688406452309245139426544410618539854083923648116284562524356183267096991174939992215153357156281595415336885309954297032859365920701532518052480827538511901966526948493103283972351213459889071970588934917406658482998261826529998715218756211100808087618756397646810012108429140207241630826360502085263673693438903805087976404906113447376360785181498842486051745014605600650660319567044408271714963412579346787406908174108615165070983609360401630044867118801382670598514301273362772805882452480042030468350344905794772721544069068401399814414127230203021607960017934601482137046389453838747028273399070357046838765528214409270448180946513248184439856328783280403293846311632335094927853393138657016189879688328422096019792329585850672345684518054759939987201997389507308415283840222427546196653698758518544725424582068974930191342392533835948126871972491617985857431888690075093485570894360564904848039261943033796039068869037618286821567139166842977371920997225720086577196948332247144803883486279618986599620389014544049127832004103957737524931293130282972213199923191463562980568070016525348941335846593065693331188670940638893789458416955708074358801880189326089981100115175554044446974490280392273835846302489472302920210101422396089968910380849257199155524024233480060373549548047321184543813712808361155336546349294477325195438765287732254581311896417803576858535104823730039914107902882192837257058060249008639104578234597563687087111933049946750953654120719298719592817508145954431330895029130426488127847772350556012184174868337962200582926365991483777872037835809125048229076340772173081919925657737668840166346595953863105691551950734985046098562060989087613254097608670730060341542307670092233809472506687362743040267363199705743402785352756878890335437764306550979182113308046173696946822366600983881415586435634978581148978311921824052572301475996718195925719958736857163817353856071780094326247668577702077895491368361629568176743066689866443902238942712942645838193597317613809266897981996008791169856361458512634671766179032903130130021807402732452114872342753377809210842564985130106394528941187328242443058592737392570868353615892829460873636104106593543479666548189893068886790219725372168501611568237370086836619022946410656183397048317849033792612151136352406743523141918212658515198575028276064104291057971380831850792947742998073189946613964931038756912815744341139998596253225618612190983189451690510407191348165190067402051077232036987106738278767845162327025661725411971937725715976341390728343128399267966467515283999502133459945264499294893676988700821984850604866181453369018983662233904609737600542496254333296200291064804000583215440717063256041262599178807299286987439446366120737266450162031109490491815178384454987133447692936212887616679764258789947331803802070650746609127641512996947545074216991835208158698095952274664950135870006831220153057114076925861568554332754761930387841956662089446550571185645321572298428448604368648559452564883403874473169590516894747561092238002186493124980327421353848573192910695940394401613605205335982631398001593401959651060199210920836654052920469540800498392153166759589548211155395297782185175201772305796391141124380274464605824113206997656878720509055857526467544219766951728163060580463739710063336546169399364568706029673155344770879338384447974143656158008556589397144511958644992017452009279942554885796996402477309229648535755368172810932443742179534850517191580865544652432446940808622296744086194693326263686190912201001191026614548884791468911047916960394785125227042639347975815074588577321161396346527121399580853233813066425759888052461469178850278353503261341566707111885964475807758595618592253081522175011872223974757397585233269833750140873155240690727421549567207056943182345235629481527013155462603731697829385447188340528724981273769577177132956465592938583593288668010547534380857660670206818882936994695966620071188839542444709210746519252654146298896483994283269105518453614035236410613372456418476360299210199410364852710761179639718953148385790502155622696203201473855257976541088033992692604586323788394605418298647811859117144572444624404861097060343872789595604972885676330005420099775957162625568794551588961113300212563064761732280115943917430960262674922616948690030176728651778263685157073209323097434710406183686476645829699413790822495251079980916484125013191349088607216326563422027810039471625578837924957199300221686961767388206921719615212995799475628150886502194349841756171740795755134264316194078465524008746319058580394880473378987705747595967448354991030602750780038734609947111210481281775656490220523534002719076771486000279390362811908731163704625611324562455391126451354831244728830295481018411134127139592279110340011736631557467973160766447331990097614811019118479803958217641790787982581950617969824318227748084793904137877212632892524526057115529541041075982086707933740457469194261335323187344810899616432211242120085467141540988122022438779495459773337697171958098561389597687355212717316943007756665132951440820724717658908515561898741212405811944040907061411597736081181067498878874007243050307491259320306571006789063976957471651293127119830345376491050545787267399564340664926936379309262748795936034875141382957686452617886636689394300993310694794663648362603610162282156830363434577960034641625683191682112362246816632232030575063271159838051791827556903354178989818829244309306278495175684648300755244799446338929704926738286364140027120334782530505180750992655977134637371544950401940145371308281426416032617852299967699824125454945564978129116079076356291105786138283004797003341408327483770629160130761223184904160524748476283561015668052395529582038519807867158055221066745269929538626168563788571907699808615533892178425287791309202480977686008229772158238595137765644942763414691711837013357810789350620561970168951358172011848287237454206121521407036629728031223958283158713142894633987392786422486968353176933335516223400283288102200366892899626012022580445260359463728301255476875678248879585284036824586159605288314854359247846900395085643580910006736382705299471108500576981306072388735572254857211724528086538597744731144697423099297989780309098011232654986984222607958791708712441744264185181818626392623635262484603489421265722269108744882787479664608506963636793089429863133183879586937328869741227693668561702767925666901085810752392675623851314919049086665277167671777635017325784594620879623742547182474049588675502587705367933291682908924159633239726843221481929497534684629919911384171627038105645650455361151927004961422805517931772963374969989823963225488660973663848110595682794837553812188475128919640312064208190052717839450894559560204007884027010806763960160448570271717824931989575217942044798477064810843201587356347605344751994738762571666421740647624960250337472816673109581519400618221361814945404558022235213734007077490653622623053334060020600912137688886247389901061302204323573122367834731031336987428982671151380388152486262655730417163793920121459127750482020339945042605772863672426246918025014990747628963478689078185640078929716902484049043603942774661447041746607544963430990886904356051983251543692348402707082962338313471525626427067610165087665484065023738850542685348488756906964328235272604423298844955934036837871865131820040027501541154280190010990165407292553076331647990693161156651020214575662802410499220235932060344441534152566393648058850638053792397618233484350299005070671337620292059121599269341132257105659872239378700627447877936304658502329400688706370698296613686212073361379837781149548767690058487418147377348153151712848047606763508115476891869973490454312438865345954103680959804416512772030074836589742897303892288268347704265882051762212710487792824249866109207778397025950888403932097470442561031874876926140837456676584455921930531169603566476218003807397337315379113519573836815453902055707235227286354582238948516815884396518126341722406795308449892955300251438549836148187223832049142820300459096812709944113159768999532989990658042532644569334077321080983486956421687847463848553036746333136285571660445187111750290243377078404080196714716669343281312449617533858435957676137465613869590927553360004894287412066412303414709663610635605206286892813013932596087409774335215094415156374009293250251418850009527614635686799213151427593103218585758272697133482208229400310888796663495489102377396837744236585871002884407637841311082551423069955757218261705875070825594819182663908427245339212971084161192404655584098392565198155172872237807730406628270890239161357475544761335111992726457448010592416902708398278909090932024185149223838491745421557270970741196715587662672195020337209868550626537866181198090538913394502101248671825070975046367999653685314101503836366128953790284040159431766550346113426187404790236556654992069315799777447850883580795538901661670747444238578893058806636459856083807203651341560128598485016972413573143874608957849875131342018245471920702798262098254478590625907448388695091776399599400130519278915970103301452488536109495593245847875415207994719567528555230681413833023467295112661690485209469553033385155134498489680760715370241992095561399906734912759921171481208382002160852740202114462136781214673235385626983192493769468106947671538323784148957512427811948826625958986765270636871155605430891987628878231914531289731842078623107671946733879948652594799092327890021859637811427804828264561577367904824485142903587813216540751760969734680149159691663561688580267252859660131710833254066205167414499677649158353103506124401856185223953902579990165388006967953408192466739037997221716770390273407505834203746783212729945023735377703708705388082963552541841476063214075145722027565205700524657543770203652112202180356202871138694690678419569742489504589021885693017142258277917106105067835361523120745625490746902471829096334968419615640051353019552029788274187355605073486911107692211375341377627374040808677272015450792768191928005415683009996465358340450951107331277140843704811500159485439730920350133750521115511227367609206208845600176494623735516592467271863791757612586758894593872480122638604586904608204624582223056041193998153816496590952555443200114001501239467828730186284382868607293271835818554248524257229682755105625414861822012884928428436584495448427061845983098817166606329884154512034409686338256768235852920368054300238342797870127031299186660891800189202124910142989142188469614185095414212389379734692757874137985842796362855425132960980405868284049521471402212041776139107381422974866707863359363394490675964848065366572895145939115927643432791860469068774287252018028209279382047162798905373532622162778858577340069727352115329747508537589349523558164978333136804318974119898220900757520989723098752500835777324123318582613503504112670454108877651656686720952053439849176651225176836806346620381560851833009235669068282340622561992042924248404062656430215197653298261922123255232567460812623407660436757504215489293226204139204365208629658990962823400241027858870366380424356926784505675039448069249366741638293538020146972553056589695562316815136907209350021409282936360999212673721599775916971805404151039272623622366689500909621210328593676963073726828666913348331986512186514963609949887747335028286235051473887395089001641464179331965684327743215778575667382378477800321565998610421493102831310025606586633085991136302308870530009775739014884082716301472767333634050698433692718998484928749616122960158208744340180797127991396228158685635113819857163242473013153910234648834479237249770485818829203395624061325705658858602663323430307137764584905968176035315923994892367786201541880539890846239749052513066809188338147221672316271549831542121806523429052074868326046929272871344009311295669120060921946005162285213735799678507564613748070459646934701738575751624177441825714048456694227115637715758368193114433755614858528061697865940147224926362759308977804132431175886296117308446868083186208220820865514151057604484750883011354707730471656385291307471902124919820441378405492803089453464303020554734829468348625542707366572227902375749453786200184909749789789600908778072095345199427553994686689153769016280601185318425379832832258721496367656071428817408739755486298099131379414115430971132434055868866774398049841049904024133122687254081205626831520751462747178060782463042398111259975957084277067127368092638691996882893898626130198507630682160418942814496289864179274057337741635982195015301397156548313075424977913893412199692589984989976299156717314519960643585075108346291755890528999776025180159032699351774935171332167298710709275884506960339173360697702348477545457828854873745476634895922489605646330365453854031222739441335781055261993631377033832693147649648967192860665584413087815876480565263366466862512285265321491433586563811784292787888508776670749366677488523866918680529877375214341950410296369614422823236569652499979432009235458392523785159456403988411740497835881562005823833295221382191504187074403415352905699087963965656831165676487421755415195567694330052746349630148024663306545686897919036095166926890549029391581003198403234941692749273360587655294075939329053202985569653590792890317885181108870443696007370839127174484219254826631671384015592847450472370853056591637876070782055589499076493387719450503833558724040822921670328225789678460118046977301599607238495736250478305758642247933479681546959275433445234177342647219414187520198684943043564189323924557095090392310826828747990948184974407122114326364639717710861599304751005958315851625827121247702918675853767098194653587810682085972099101985569133630982749585816456894880210047324890088765033267393885785108309830318174285991624458722986391540316540399270668322798281113210869707893851945451105324403711573191640180949541580832035840129153880329584829974001315505796674295307213815040322382969827669318554573383761049750614527255243391406288636915224348539642435726077822216705707694268778927467017229159344967099846177095817608412983013943983136467024265515343590873696182644695851446393203010408191777515909285712736506915171270791830752212644437296888449389611897955395974032205867945413584531611058814961502011366234805100334362019616824282655209207441718097362853380249621692306756862482163808733437310715080495843427686329143164212325230462658197681276154871273299282572052245497588813169210096490991880944261096876446709806576231335964091493796655467650370584653559782281396050893111793092996045355395514415872269021508279117197569844285444146565318781236959748145874329474815249369141182120136312631185537842455737657341967823707006866721217086079773483419208550323698259210437900414428788853362329993914269891581643413255194529209540089827883249095962480341813473496162879082372619791701569320825247800709320817263998312008665060519652783751227458129961848887940553267987852124836527910895017094449485412873320044343011584723004814094957668815648271721581115572148755590437866152866194661531250626096437435310760772441764782147018722616855938895599202374273422009190151916617686071906711596246843746058365608212358225354978104819687461879269108744595238840132184294872121335234527098171428344059498111655523533841595207502173076193088755206504336847240558196337461360681461566591045307932708961191508755677831137318008329959550742987307606401971074452661692621442213031354331903340297540043248739177673553910499872168207583309775661842039882329942095769214474157107876640623502591737150652389038093501532407590281996121860375264000962311172647074135261166009943243663437337959648558012475865194029208830767575088832988975361797520583140784803911868663694876093721072056274206356015592202737618448996060891341445503681468488676390952846414945693158360329359024310091859483914924623032940656971799273812046639909228676673805275311357719810806322745109543996168454132822701721404449892785692253713034969316903774381374393125919975184082716054537334840496426517700493115542034092554348423755329383329590131848712623614805119601282933283253194926757637325875312953397355611299084784749401379177749465451248240924651152393929126864760081888531514143733725580423010514070769899890655784920075507012234590364879682806662283803096154203564428437511922608814993067766470197683325807084714375164576232543948981940693526300487728210497455301684718945432645567032348696156735275337903134937042281922995127867676535708922791349314811408423728940560047539733900567893526395322140584209203465332976402242996775092357132667087012975805335743104815736937487810587592755589743429478521788910732110964200178743241617594008873162016583402407467887739120538207591665216121326346519238504932848482814884212122269859078700438053748055556953584630864239490585642004222409721692293077741479156929103551536830671511832978734574319288310643926959254917974688972849232116137884095461520464146360798003649021030310305832601904064407211307724858878474062779274474825278617010883951191714987569058093675122184978152031388258234596066209613564000044056396922612785514295277056704262584213326980446054967112222174680632619421639345619036236267964679673162547904872750587787505548875952677340944734342706619251577543756801910367116321230471948585640694594505695121135599053872588367543768096329155882955645597044676105224073187439928408889313974435903724909343426872167048120383126478002338471039067890741627000482635685955997611694355055136996697603830625093851419797446624260689126032948273655038398168344060874803517352647161111224540433697831378666522567877040558407064361494681277411732467996153802688976244099970951097419275206162724162744281933817663810355833114487379736803457060349921672617469982358198980551952611682114221029575872644452363347932002914180231594745860118831717704336979996505772649904439749780224141207657662542251981180848808064947826648669281794375484772040331430648518982440603104195745498913060853933627770160586484870332970424052148260564701480858550081759368598438654076897090375448169509489245360713363075083799143673831812034107229032228982807480368850247102412383400793966662109710578537353533251972706424122430760224859062502410014150565807332363898494881179810991778513331462421270367398749491744832696197546070121418306229069211983823151457979258651208177006404451021113953991408802602698835732346811302369443495443299203014021199970088848304865528054253689952978555846033190558976016080505348399478871415993566953642549393858184995070952798043995340049419386904855947785438490475208235085317785926007039005298145400634695916634482952480727655914272594159953837490820767737305450123556259493394614354931012933696262975590228543724894293850282650093639090646456446393104472295352842756422868208586697522740040872119846561578289408846229421522745215677284142520238067799123091498471757216659061453058779152952194115875557744296179170571384337628408614189273919500704859935599832515615944236359509305520941621998658714378339859765651773004807584162031322335747771633542703289621493574941763241061420332869076995468474585452136899549806769676763515718491936589557766832144474717976825632940238339680579037241023912459334006048390242936448488596277181001043113396904520190601529293539983309736112646764120582940827704495761364745438361248150266383696276084853198375572959020005944815412803223546732712285692958660519115126430958419937474570811846914105278526476476265155937514402600186291705365632784308427859699757969176900947606170073769510390029546980372305674767803023674595336235454286462579109391810636769146552073759165967037692053884204556059728069599783326827333172058555519778697128290391491359221436685719183922569967284914762896429195395053758212219382289491237918654372681402477072993320476504693202405035076506987464342362465734439763074950541330432200776973837114591954667239085422885033194653542378928198389808255738298750500955461935467413544833864557574185076235314948152791298935434670119119026400442285938762690345790412315050200942554720670695534571913798331768855734418893522925342363979856097659976009018735653172335441624030224049711675053084158574409291777563551658065260999395384958489238097232031986550148432664800121725542261776722614307184652627038618662289847415413586363672447594023666809424217660130240842040443616941026459600005974319386725277469806012440124454564848046252223803248743250441550186834675315569526463657432013968114585372044268754025299350772000195212329477610297667697241796775306208571811301606013561639047344325599387835722399526682034636689478438797815079757736553465338132497623264284547769713254381235817414859529450274862995664313627396487968097710614247490939976782241932570085671748071320160163624128594130374771827354468027402902771485512746987792718437986160127743192163304833152433696456657275681388662080657568730275950036722053011565837864145994968895968753055752727566222271664132733022098126364189705511070369194371440927955493160500035041338698983377745045422099864285152895030979910305490119236477323004800847189757131220402345403578840807152971819064313617491108029856597960648967652393938070844497201695832793335648698489344785140268834313216867582045988238975562344309790246917241314228286311984989060098947354748555965675259134430862913401873570465560159977280164575873269216403385578408546102255362422858262165042627501797032130299881312532466939427282335071620195509258721476139340519056472114321243564589459140753454528128726691716472860583345941066001305160525909512509719398644670973748600328478737339648711907272644870410048442772584678899229781756130169964124593980690052612489342361440701077096250224736806814498345434806164390440400817034483432221036626941590798733580888826874842185858850098491758742481653737105559720680720555640659404706912671429694488349173271801098559711366014954612454250298680045188466912224239455243232515050605602181382195852767118569033759708676479500088239890563419810651327261713753057005298300835397022397067019024241775822280212042056380452216096802902191083904216565780515471397922207951951589358222927093377677597712163293631673353322492597540871603195126894170565011161993704937736195877437820863272347657276043069102793240424629850920232912978985616339804721185550635566453915656801356495238303345988884077852556290817828058753235942811669954311136325805255502916148923515486522592901492891368002839420338174199674764592092981825706732399518320682164716958230419920490877907908051171234115266149595622471450571870164922828680460777571174446637456483907636204529275781938374306054769545390268820123082534650744362458786753218496282165881266392502589259165929847324633568499764977137618022690874440814068497731243674314224551041915721848789366393213804261064074256997107375619542898693448818944039884871462591718314784297259826442926744027696392924003169193054798926011377058341089804723954040332552881829290452371170541233063053345814832640166638182701536906672999241354811370657488748864132704762195550172642187873019001439360539566810730620856058685732014005667062588283563332614996898577701895015244682019129555357552307786731881756626351586846230832117794138823741700498240643495072247939365891197892231003911019672953298990400724615889526436634610641098966641852393078733740589422153225714710696762638376171704406054373202658864290518220496341919890463065988239141157615017800803968657036772004541753439858234904743409872756892169965478078372410226120905117279161104752800887471559252073489533571222158135733741066600190851483893016763922931718717252467587147433980954825568504521516223956857259788092252452101184169025018735569953618032117992903640897969687811825416012347297961862568954104496734974912016223364292276093602117262720417126985248817772004483654239579043820215758719815931510139831608860304574294354296479246795631801232406012204456852481175261782743173311810721891911796526559948175834652084378235894160363956868502502539731086217474642273827666802383246176967990591978717275275174459459512536844491891613572558823359034441418674481857958458784803426035151070437184282198934116598128046928919989420518986212148388665078889139366306235214189940493849211939552008942638424450665168339212803893572477838508057470308650792043340319609654725191028692567448669457908158225546883079169464222571026829695176344911360227875697693153690031687328815043492064465388356322613695943735008750525989131651911133243148346821583787349220232593404121294571926995577634440805347590143455394507964277582589873943048136997500852072507443510187169891735874980760432871726210151914576732757078550127944046326072779589091191092166995511573579627258588012792773767312911459469354814478890936032540514212452075864073572709016197410083070422960922304517277687375940692992026607631605625126797923615940270995114553524582971898994886746444778633145608465795829400130599924904766911855110625865715573307520054485339485837962061057345294406190903039965466837752254160140276226756293747893646691094945688455625771185565522589923239013355595943898533560812669695944348529033408597316590927600068794554316121216561350192558503594407208026898562494468021972118718674013343252741669466078703980359728191139428370156348963052434007490555770123141751201462730692631233407522255289672256480996006806363829297248775361855169786966146061313723798414022710122120052750568158703822702073740875503867060278568438896094992450928556015292235940105753750826576817047588974840971203079892258683324671393215901862962507803123484170975347631344365268792480523649817642368247886979584507068319709228368182604257507631579621163081370470595268398848743868296549143267276359720181462250232915804566396539311571303683167221888448591488550541997944306794917119265234183293418093399691898518222457997658680854133800171706050963078776439776627133052536069707013289021615723407326320319430604389780496862598027235536693863802637729117118858792441453641165319414059023199473585382511053999896364958722034698142293207700075584459650266084028137303184383460340207415444699458254890610847006910647914374213291183882985577656116488105803040238985428200252322510345128960019620581236988701752666967852299303125758323796367050298353388290157589754077323016517707804519786938174423172688425741866679242524715480022237990712239297607572146435208936011958888385256712976303015982079882163957676131370211303997360925450109691870449385893041690413966552127961584192118305525917017121568262033062574510497268967776436888651524811740788686961192587615792944654189660568018350874590918782628914030531530369237892933210643171983285965462380006219938273993421953370788277488535532155772010735557857450516982774838713526377239065856454755981288559888304001424156635452852768204821495170929886952949253396197426118628458669393244505229357803717631898436243914626960827336859929635957445170395263208521728859941722225056015291939272159714853439747414663478541270923813765732632090340801139167968147295409098449712855306718957534249589739523695856629072246686641803803409115982760719396160414070444016494126084314103031557885922401528371374054721768543903494490377465348681466245371124497602180033801637663727760813918177308853043365318368238806448229899933705995697091992882643638490905888590433866961230654766766567379074813405461207923527017729479627211345194798005789857569592949853456260140765708160600409179429817007588087544875185587184526749753936317511496009358549668214296924525177488902790394938138485141937047703145796662650014083321999485574339167122491064292709103024175889294478532881749217574479867891632694176030372861706883958263411608432232752661886841835871224292593258178213691881368113871478202285863974725003592932275984871426976175492507965047091739363042842170969190258333815283524750065128927244208892316443746371252167003048478814491898889842704165557923411042942721134756992758152097871471236792469766145186912234463168717476340072289308907270985619089729269793570229804527226761599971128591599819788335868630904692749087543589575671770675176694599368168699625542837396725806105738206527540844278431386029474814138181671052504003157269811698535198916983788413222386174448612633332710614004321814761791559011724987903018939140272842561190766429777151497951782928014884025679685136259759862215653902606365846551254614793077352935565967647407648868082517903961114580357082196536011200287792787914311037747347010473304231174138980616616150689322033857206762835724571340459155445436281678209297502332086234678227420933811561664278576314561220221034098321914514918468808282039103000537755997004273403334703243662459205714478989290977012179292875773696602179703697158263526725833765091143638733983931579659815030530772281449201323269488638418877605949697502197500441911567460167298079949134924912530469152564199334143123460296734586068339916075030948993847257503753412819057817700262112012580743873018190732584037706950534474062994105333242117935763073467087792292742237476569151139747052631755416108298018384092387571260460811005347799012626939306504495363663237734174685658838124648148009651053629459413217708527224741191921456145692914894733065372345787881738677793280184890717837729484197218544562127420286588629027234961453308534242010289950623145969878901413017061639347508726652991304776382949583626251629354134038122643256653592616585755394506171693365574853808259407970733141962710674331004985047788603194728038793143901807619753537310360833585949255760416739351121593633753715563391946634385656311294889909451033798360084486636569633262944012983496410750532585771616734706572792237248211165330247770338688215933669723830240144887477002305094737197213866212973926780637085871030189834231551633796661448319250188553573815384880597766240057054320436809997654677637712686247639885481459346867281405795379791967505938694840431943665204138445614878728446802373755713171833835917928322437179036850917592441243980583567003211557891080539134092167130197860311288501909129581581377100819841315231108206294512564911272172515990093324442507980350261911879063635234520542357306836308991289840412734817363921941142880633308984372232649411594148534731461262939366003237955375742082082813322445757444901656604361651186754281172880163072900914674217965570407730184094675033753886807737804882454501171387786672292193170566615030236461876129567828194055394568146990070181377493870942609918104809898263646544535935202828058694257381122354407994413151832380638827828579675831484912332581037381361282565612654869215056685096720648028997456006286363086510099461964976432166667099022753651268629687166696531079478882438187194741432032111718667396001825392369730169934417958752210524142516188315809899984706266893264727713075006946963417095161822919103069886994303418973785967054246301880148986201843136887199255650264231012850496083119879427455688773604898525092530276366142671384525652295657455604496253876600675452317822821879054434177233615429279919870149759501463810927751163617045524124929911021931906446587722728022314730751341177998853424935128832023083388992396256498553737489725861151910299309256436853269971479820063136318057931238662523043680546712662741052361699133729328830664299645684018867178065603466338219529397026681592698325665966811719097374949522277582880261541498132992475265316657687559451959627070394973053418258315281814068613199550002070267522668732329336403245339289221774605957828512327837389725195124543581032697285011300456208174276841231713418883979950696311234650638743389797835731454498268627891278960953527867257297477314860839113903847735529987664481891563185806481159586145749327050191535977193579450310091514597123165749795154594436294156694747383741810571695069212818982374578117650459453083417356966995761208362355891452867370095808671803695561009582314314524897821143921983800619309423317790074921821940715849713277545046829912591811502360829735783921396391260660780654593004025194468983718186770995180940668919657815481238552805644763201024733822563851118853001719737527551127199755404012950329033556942986617370264977796541030298475867326382226430976240781145606737947716540696488249467967336421418691146679858530789804811015385880959809650155971893277055284325270423269083075331919218395173952458761647680453000520851004772990205739810082956948238988883685873686900543240368775165165203474284607152702275301990712039960935970672853093449311016556065289575079506081149847663967887207702456484104653352496379205331384465134580734255330615459782519632623824406579084819013829133836370435773024765294308437546065105969183543083558853477629414924002672609407245423555680074107523960345190769986189839286718790319941653471448526905593354981676123406381263186351232880657990979637629324653589568961687551116535384343457663525733272029127660480089896489772192309041218635633561376855301170905335017698491211933334403220611860333824314014277918316097339033741741581589741913301077443815299641202274188201011927419836316666653136739013580404758433243949432434790096876855795473942021350861413819564286559886704163399713960798542597238211423932653950432953626439971988645245979239536748562098775856575103849224036073517602973982484262521202234377376517898716862898398611907139064625517820273176749678710492279641385402998871601327314954320327908428971301909652562405696193682463588772601149337960404268481872520996779907152583246858494567049498800957532146814814612862362562829917981971659179338357669908915558055555143248788150761422027054253343746985073959999221429438272539787015100719578013894056967520683140002970064479137559564261115623582306529040712488289397050306247404151386186463472468063555012338487868371334281323837879299775999171070419328629006960640614551676605515336189222545304376637837181002280206328892569356820599994772255987006242304617656802251961054597919596949819208719202556087839444189820802755562070717783275535442939487726285907642977471806909559336499872658916748971375136946235500790041230944953195438598926522119306076050534626841131459530782040532215830611643538570398068566272416535889793842264744832004097571854892299549247133908930627615120340621247602221719052452482901863527580287973543482509266449140413773344338763083259085742080838799808837667687028115334011762481110189190103978878291824808311329249615218651088344507717960864565927876334204515839150797505251905684973261812832895523981405009748628403766886717486369953459760180497792831733201388286282675339934573522956614252121891063867877533893168065077030765983022200649164680002802079733311062384548226684276854384929581093037811034893337206557156905546896588442829127016987730653034912495326237090859718176260017272585034544791659672871564915434251360466685894710912462551510451764278299392922087592640768586519117637320727836311815066247764824807208231168891616928250355472631875002616735443653905513299976854903651088857553856793785142887971715605406715474644544435907834163606302229207587513521101234679119284982512678296151344503487396703316065261869673051196221163198375059337908889091823816364453834530611735009008948678108828796436182861879254508496491108265996660148027361693708786727236456213006358604812967400875063168704146105564804301183413589705736135314952936849306556458932911165543329814811069463531054239012632638201504107956681590097244254442963497808405173452616814532910747523541326372959072624199518421306721968882959410419183255441472146579589396227849727251803800353762386622952271448067836526282498669784402100922325362432137812095547872145210744056649498019465616186660293592185999746747103700322476774207026342474087243258411652574697656732131668497300697267623108358673383402398862451635255710617235337791758495814446355067806566536429716908024318228523964697874514984178862400892469035830115291674779703112403053149913052201387220652525182574517355511562808771449007257770220750538144149623566151231890593444039605403083860725033611696928367105389136520138507669327641860498342273124185054710952612937467626079215830806162136619834466212760628640103438697933698771620474670108674523965571990429600317096598052596520900707625644626536613624652803332276495451931097319741033149620954011003564128306297849144761213027164621573570385643182429654967115587277628313806535350921648056195284107927929115939548626768550437045864408014761385543755772596609853120018581240076610852631813473650878129915084487379009739818940983819926556765218560135698024284977919420179490630696265393210972596787737567357164029273225207885665343189036363735006933390132746942752174557889954392961964597820694945227412660261021219947103386837398090767805271066816653830421500082449083550305714727530248856318075913344762295727238828621267056207088606601309738911539751060721529803445421284362679583786592872600999629870803563729110673249991652171756049471614662579127879900232605918310080774187276954737755967854039072682394843459444949529244258109499248141150691370474348736329614055019463410416519470476454357250820801082997985384779572894775848793892735975530135812522696539869133442104250706434224080687642856905204994487719512424008084455192864343760900756367800330485712456808539302515357148447838489376421512723292237132489265993131394889550875627839505263063773059155238473065777436456189507738129487074457935887450085297684887054002517811572144124695241350341361887253425356402720470282974511285932194129571125280418742406338218348378256210872227394842162313059407962662796343711626998267808407167612432012462002686844022250536684014626513691836804154767599897011772045207290011634079536667349774033364322144209859439962645268652089705872256745836334158839466168456548124914704638757353950324919967600826790199382418862690240376801500498627848458614295132690370279489093918085110087409944288764123862112983397295418576493548437148158958390246255526318298135163815748159283294051228486141377455949980950470949013425867165464191328479313982175860644280179911610651535820379491356484429048415818079549735818251467980922065111106042421276857294407567238337812296457003379823107418090434174784460833579323660944067594857707831697688040820841066304530453650328810697028847155832447333677073556360991260416126250897487553441749870444695123140657429370775036756208926245107754259857733428169306344862304479128983511738468226522914495337333462585112147315006211161747401268432347449022477640619667843416182473360248011575527259896390890562844671477488626004810497517868172472191583250646878346083289335304637897240738678604326911298924814775612081031035337493763819159031824077510245334276351007033461544194181772193914577380534584474536962430095249078039278564070875224192663112424197067611386643067523390973701786681372386163136463612033299255215481125221118511095947595389475949612121088980696309137064492556532203760794723448147750145049814058149766110219315999847844504056618857891383857689399705105977569989241867039671769079794660373491353975304216312966735084516692863378788918099951318513765889814231650592253076056316725419616737695546907907395896133886067177649144725367865487086370676917323484764010237026041099525480622319901480232066097675450085931576154079357733215477565984730347032782094776971853811035716735023408751506890370516610570372540064046394604100126460227386237072496797962566714378640785385956356860381593466868436352480763309490018990938865462321163115100745811761490603885453709128244820508567601757784296757384967551287413675026407561959003481994809110258166170352015617477138748014436913674706331546305291286686210858266651380557107218543606638650654943196732208473616710906967763947164427156142543259100800397209166938032678508571768289143834613202664289450002301189490281045345847810160779070262614423962882294677446146529224420904114974127092962973020650637952266637237678482083512213585917656855551356579913970624674735878581756204772703240565135235180879891328587850781788279624339125419275705684157396986309375737513291857538066732024314479682087198408890230926782337170225804772072302168495252828126392199489921069648016466451003697518872929828619475444621516882656065300080096017822906046398417443554267418267037899269370673839741568068144311057485551290312774026602826243593207266356988344291585558737188723291631901403729412469917339075593527414963301140511451066317006426527740597146335474885064603191483481641430090263375467200846395567698237217095099297223781515225858941589806933942497951725508126994506780581569689679905607486870650235731967630849152049629489569356360827046533853425853389588922511456580644248348077592718028288050680485955045894899845068793630205724122344695042869222972545962247433058863389801452179646707923349967342982478605609463617098809864676799430763988931542332771913013109796855438116452795842668488182081484564816098613957640689692668607376515953321275385126133013965756062705393321576478852782974715013879312341282888631011095127994005614671025217134221668325651230583191278469574312670236861842324874641694945470623683880472136354721486501271188038557690478979210148249502331882803426602440364674992412001036473797955081467468269444250156967261309127949018697404014046379210526596126314362575762423970150564091685809836423521306857367956703033343813673879543197098712128636791571305446326397400961535212725734046227335978247648107200167514335904911862185814234909162226739282636002679397132683394545894521421794258110138794813060228862189538852174372843400259809295718601010254595148635875178193575253320208699217323776352518018263185355066251865777620444812896483807557698855010414685051807669021527933673250987059425363792719571124942235699755547774000486268701951562221929219096054558195124950739239448627886685406996166084281281429490691138387892005164975420457743587331550072433288987916214993148952211549949391677068531974716170409812489282657758724973796480459385081593563772487403767827615965966087730981332231380791669545866948626416620470513970610172225306072056469127519868746119196162430964401732622655216973255847490214047560702864500449529994274853864574063295615242762121402451969166084526330615467497005085265762278389579015892678236271940582964202173729121342107849181540551729276115748412722106698651875397961345067160941441517539382206745881381498834440487112380209389503686057047102955656819062306555393440460549879437176364891171843293344816668504661000372467933864845479972085385772861817168808571911007904470720449830555242651276179288522417168203937085816309772583612701977679305200049753209746543138606294038929840535511170988484505700614677365086477140721147261182792285000284442185545938522535287385579591250065195105295248728132779775179892423812077757104879837757727976934193698225834518651369198798337108357451166780262957019768286362071132222239846244751819591259281340199611025967677460834122470384518405752791906444828407460156584770088770714399773103030912294610276517448797779197423983713566896414394164668746449713314209603434512379479585612125991468219851185824730266417242731199538658214981806453696084292141857426076357157394187813255386124247684662478395510816243127072355443909163178185044241683028212474506730102219796639354485011119108495844305064855451335690443310507263716895859324733189445895770678757539446515066494493417003485959435179782076029764755934901316036096394204725924386092079003523468567223425193177273665447016209423151932336940526033962871154575540118471364772588493361103133745242718105672710041653450998344644241553542133078969981496484842071701378458380635817221769465909888716001913006623529223600453528378416340049697779493741719051580067021082870191674790002593170983947255063073735694452888848647755461637384952728674117521095748459081385323082348546753419460963681765811089476294033504769488176804582566756719776005344496983815908525478530452714997523632087551790122344116402284069297506824984171293757549819110455254666508833478509601352963991750465422016182395814805638835325403026840302613164286811270258370171705376641864256940315041445903154084912098620640532773695740891326204771746759494566109607767690926917270754559329072508462844366068297790859449626677988415032984332129120727270680768297554239373477994360267351856157407870030696730118047294983497130363461468209930047662306321145132878034005638162081129190187940233833217922440990275600892828087566819275747230640096725628333394968616129787345295691968494814073849753904847538875919121433288044336859279696323187798835595071416176506807651737880320367251574491590250292988898290912432511643722599845944605065054893611799616905017300283139814592910419452816319893006998206014003176442379231001354648765623482171873024404853519811906528624806727224755236016484627467923203077107902169499493572131830096853762940454255019645344303066734925596027562643089686891431472993366880920744963924929002322908372211093200999594639659990360352391940315751427028330482015343446598461063791893359775513542697731744161865177583333935719295980230578534056747465020577200059754794489152998718705408588991645154868081529127127438929440746425268022805159312967191503075005157210986135167441246481292971423636584140371317085368984842373138728209994937609364702452901436058013676933888543779891395817000460289095245362866898372170638794804373621722573936593121383696431309778360363188837818613040842340958662615777270924085186695516451407966295237859923815894564877111370533008639874107434999772970258625597667749236879687140712976125784877852625093236820753072877377218925433695062436292060281520027444590221953887568334808946479207141264976133335471441528132816231237875568364362274480747886232483831419739975929917775850128682624821039670354976452541576643449140539955762872841621412039940915888472009450454066021843728190932658835802865514552256678460862379602900559289453067501545310035387723407963705968928722513832071168292464716679929704544048060687491662957878581159567161805560681052511939960049444268141552758049444498470353613937230392392262990371942449395566803635151132362793589299610942603798289932023879190517827750731261945058084595564886512622412340478368683981053221678993589855961384228367943762008857534259760723151059187568832403032131689028571193809362020504289893109207908975893998750145739382047794690448583902417293511643823935192581670804660438494556397875807458713672035818441812622851526693718290361545733799595071494250124065692379569528753141910661788037193349421855654974363243319295688017898750979966671352635352629887707751782108119637632917416262552407772361713136162711180836911734213365217407415204074389409465300202250074142198970803611256882485632507535025757777470656357121405944465050889624428424855419097047679344942430054233045318836987898431861566760689042147023279860658774901216241638692524747723692911915583168911123389741137204839233834677319545484618396231848710049188006516061594507666926928849319044273189852572964201757131530386243535077102897379813765333137949264309120365037823423388837226587207309836663204030906743270442617520125322582339967176451678622088963101880339338350872942537261719208289554664782746758131850263197879473770159076849918464816289072872345391946629474238066695155379455458225008546113852902161672109048668648202977630051475413142048109744493390970077335410285062725819103891670692137307457844394654561237382573842218267844658335776325924546001034228772845408792340023179417748671821785897642684734111715777843584214619043235321939555541675926407123621767399253471365518499505605356447448540403543252211069473975666512158045076456916089549665902939331299278886844259537858311684860306568268332129794180521804691835549584682116061206457815412365772767565950921593081225250199302937173289456857464337441688056879935967464067037424306097620165534026562893238519544592681711175398518832789260104268693424436624018380979880699491809254889679476713000484024360090512613053724865652324688085324748997830928909358097643134705475286344821635509977862351053826782174554225205407157064235751089526616775309557913549129711507620003353650987134894631044562467283669173239512020100531815207900481926083258402871195715602913878199668211596715395780772808569913853714927793277091528156505848570166780836020310934045167125178226709216056651355211742606527909564201249424655583693530862389178447658411882135270895897245017520254772326963628423728851616103215629997061663982903452405144898405869308923893432891018542233007395277540227456351768638227565618740233276451995355450510882978788989123236743359339352017938468929599499300207373335903175151776496693706544558460527596933486355622978020615271858421959740628596243561155495837815031763987575704235091684196603204987118453691026900868324944342325197213785687700614708035110065872592249746974560956642149591660416341514913446793073571141770923984992970463921566215489075478927400486914543946115887401719223204150433505176744669177750793964232032044841028589368672317559342125367011721846956930409599730957899424653532790186199216689388991533289139433172589817660261970269821074791365582895778091935840518878336453680648141474239590628119395396438601911845996544661335763928649775147522022347551886277525068471906074561115343976696935531010713761769755529292845094164188311656700888095466282496444927791914831302284029741030334988534522588220873036713861891659263947013613782632328652940256837090653640301927135881956496750518117457242260119642590027472261963674070070069580133101886000118822806473967913912764282582150618225789989405307199857475679649928599870077763386662430018531480335224173062106778928370360844532187225683924160515328891158135231649364940525361219122262911436785740925432113976360050928365243862953168918079634968583665066394757362943602430143605188075466725712136650352365487889938154347183564487176150061309889111162991413241859308748847785951336073096118528386627445200937823430523458988456967653847494697656781278630428770944404576467825854534072005715237086544113278330845264215702516812541479546462156397974720150677294487433785665489372850310978295800887373117275497463419212214500182630376339902411146517038664466012721027179999518395029449865211382376643329174908631643059208803667438851739116737426783319344002912276401062947140960736056647423787935641563044797417929499950135967702692192062587107509346208491246530902687620450811500506279191069143103553179463239827121321923174673928720975629223159941244891983369776019629146431914080150466960042756390632639695636494057744226597360779769288694608589184623246736005923217608872092751103788258205700801861751506968640388325143854083167605919091593414619493230267248765613074802126526853332819148413020601422073988193762626658210054732841044442886098228880195313319872542039609430850042701375241269251705318126807124813019860524378614949788413023628538411176072555186122966597198456242318684995135864536500070485929081928182970524143358896364809696376399759014549213897220214104397651184735224514341018702095599552827893153187415589971917094125918096986890403163707249288248437680193564601790878959778160809301371345521813043407031769722286747235339567764084748003650336431810489170861312430018045440120864123859926979747300396946570836821292166869866379486091060906662154067807944642291500819329392741130809641394694573040352169649415341077131986323783735108652270741492509012443149662403747619980131144341353720977245099701493571888156680411317185707582577672266826948503619450437042234694972515652408331182740948039929287380157196254622004351893277788491125774753223434630869239744103123065977898507330252143576874832406449982994101058809134206898201538226022432510227659212408080076525144677007586819322945329662152496150831801884926298554048898688650653834703454503264268957852265653713514370115715592519330359159357858443365826403865817052173498341730966844582772613447495164850926713659106362267972686032701208001092031247258869374060595855432536639494373357410702518728691285246722666279077253946692184128874773292137165525891637388680736824185491927467517755036299076661547270935494540176009159965911443006301613548785940318674098450741338515408119876232613620075323362529198010447434476818695464449764822093193792061285067245449735527781490834681135496177559336186974135262231156092501540418058150807454859419114252005207222029246825352889864915884532292154036600590604298173391430262249765434964295792603982816701453089554386033039074517652503509825447845929007729678867608284408208433877490734478761819553518909886048249204545088901824078051338789182063741197459538304082883152402720894948196302988886473545725450284748729226127921585445888939556671886573742099585204361695901295301450218137431407269179138250786522513591797096872523910210685519245102012907590080192591305141692485972271036710004992099723504514708495400230128386110171372270490070157128368028981453586577402575486700441302778355509308003942757736273541250244319276736667793277086296543962808329020330525682457250654327290287131564288987179506189682750096906141572929860771552746365563558138515132453950402322794071072919982054124809863726225769877657498720924164508079693887399977940134818783709597484992650170239357175701515525385755184931564017131676621166259265074269349166921499640819748189501137707844410504157278620465216132138677522331445295009509029076356895269316944580122853052483246376414903678280411291149245885164279457234265226196079078639984598762483808147893322073241879528003810804545007549219956911296927566629875477687768744313081458390162884796657429753006286144938799964036913395020804303372542283794234328648747044372060708173685539331543982150911300207831089738596869652653117421743546876143709409157210244379103683361464888912401596639609712863570316885350878986395692080278319565123368172868937485558154910214153127855660592962283444927030155734409005121092626444031428864269211432240724554217916823120362048511980081185750088773003533813028866925257001340686478491031789728554231830186426451665304232108220075199696367783530238412278350793530861283549876223565173649990181229845273041364791696691439302453529098846184901684972084904464082509339100166367705554753616876031475971548461809109644438890773701713826053868783646390296043651281296736614518630897412007552897323067740395141359088266615894030779388898678205262312857540546490489317035597344907552780475812556208985791297158277914445737363255904817255080106229341440346037360152958095144901423889382839542424986295045066049340938384949640813048252701636130138324890381883014668778404388061246340711666133069791935595913727487925019478761162845475478788135014578481858557325379987127921596973225029980292619105132124762777196433392440533544311019620987101839656404282857722890184409021266034972262628828740435293995171228790898713678209782423583853672910900281625932924889175753064810783209590499066902622207098620846805099543141527645102492581078611805574540506992021043439945575711554072881925261420417785144108691450677798965553941590400993292119457841665297417670706371862424190191614463719607588299096539942841099449747021714892348771875972156937119218555632414492727740599951619404470306483563735091951877034206883252245433555609184415433598296965922902865707475101354094740095095116507520835865320486992022549040874402086499892300668476859206197200696923605864576050722564095725830856250354346314360757384712631232443189959370743915443270780286727063107905404379742658918277363840011318022062301058445438083440542797910804956444006780288858682084730846670283509849843678565457610586595067496448774669718785350736708680158078672520599312991535384948685114925986136706122890977559540465366508429858560352346834512040820524281524719623856405456667735177487540584122677477492282543939209620303090408235948791914241730123708674530393068620415262643888034846539764976721673502061167373360130173035681785979296494296651228832404272435005797289144614789300405153616936050377168967552652273983739697583145042317219355668935015316874483150748849423623423857897446878004565730012528728244615332345699008649949997854011452206553903761771558742947270544157142442432697596297085917911878844932621649453340959661655791815574088863162681687386523224047688587398867237155334548629148589413837777894669145095477331176399536423621960158546943138926539875059784526961995850899892587009773512376808204771547233457844203671680270977309090938251236554139365746766431059590776052967660265623416842594689372344736607929245677434949477897371910281994913625166008135561262784005639159582700844380107809545874484367651406501863346481425685013442456549239772536019219021355829729178217293287076705498414470113882058650006621890800768376638931305119376370723536714085164542469824799734343715330708157278176821163637499774272037247391605187527360771113725613357843378620497741948227614859072927562008653230493615120092461121234866236450723701239650685514352207691229817047629779800808004951145167649355026635667485946522827279966290811817665475099798438947159459667561410928963133925098322645092376197158944726688329025338483720187901063040859342269437275734043525829169668634208390130083118835101841502893320175971828776307568014128527083447612488837555492970488782428520964874218334059987290797528015548335565000137350049729558425702192799125605472660179516629451115485186307663083992402942950113359610389256980157883122925214194388943179634393001425138987837904801627058246729121393710293846396185106012538853135824126538489260591212033324791001012735023932828799246415538476497886718406015501240468962426095745445539509866489820423902744594087678769449642733477260968143498213932659405137800637867023562060782337688855720346803158223376609685875727185675184971402758280098909134954808180701287965115559243371755480559917884025048866348813385784896672882134802256994558813878956516374785486981712387904694402225082050279450657409618571521936981330203113480359960256723981131778723813667435054853640602416830192070143375456061705850098345117224832511755493359064857288702207171695311919639372576960512122124152088034613995849046121166899710935356451731762068263156961710536803381512318765559192667914852253048952675262869066499509483921955220782372329276867009365852215525856968366050623873989345608495316437844824859829567786858858684042224258171466745392643038235380880400767543389932836825523912901200060207776245173839236302037541518915862844950684364250567318024433548793562172934381774980431906024106705689567274347321824240479183788724715936128994816300325316523672873624813081709616921044468690446710983672606551534961353194456742774291588702251264252826058633917218446601449406458784721237640982078432339450666196821882661192579252393928901760488719876163626081730734249237456828046152840088635574552818059213559898255847348190652535368022592747579972861168053242492748588571475928943685233883409979733416722530597661436309989579084246564878109208263621116597966135896177531113503411741502838466376313185608622395078271903790017006331789468228490206962065677201356617331805508333429674288426474839965460218177461865313997633049138305214365192769122885978122062686171938695662331398860877444430121426940692999926696987403164665863063399280388622651097310030186672231651151816323158841990628467514966400633822598626357114531353062801344341984083281959181297815417456357033480574241835083109849253470699043205530300171721194328627446840231507254025107992919217059918701344454166725379187941804898889295087373185180121518874571148187847065079334492243021354749847296615786861408475169814950129890660096149565202901396532718426032026693149396938621815539445040960582137828642680081609912113012012018915957565757547824678070642625640547524339761397881691436033876503971903721795366840886964429535078751575728431970551603545759170299087463841023158917686377868118421299323847267038177383520306433889763184496849932602822137444144039967077586730863973603225382369288954182062175240515711288995887731997319441910038274119624074326169204045541554868460761369820811222035956074850631085797095457626512579325889499789527641798573850098943771513796476962789310202296420332394959803963672286612185614227152395958365127151696643223308361329914660059138693229850794388086739757980448682330549797385869698036639811972399932360197619932220947678576436471868983565552624090796545720082400083910005804852076090197960827028702918575260001674875725797007008655040602783993369193786197820397406373542069050185674522597378031281085464016839065697730307524862175572695219161725316274359590050335008339589455801168865233552727042232590689073744046621574762094380270120066555946259087519616102574207629424683774684421530495072224690884608934186681627200256073105572397241999075470158126677852263994749342824641062396105381389430925974935734977664217118804283350832274045788646983942560707164970387784083116330274758573922486188325742993550987737353934532239309667003194997040688851018519022734259207468796641449420961172047207188260408804647636082943955566948650967871548632610723082688500769802253394412448584011790536781238215077581065395492101674042863849981246896914302823115738015042730656464571209066224190507304446230288427080271329801800741745425184953656606608169245256294839144610605442113074780174910253779959496746202607826509255573794957849940473194595839657046387206846399842569693876651997286004551249805408163592401931824865889085536494130311638854449748769882248908279957628138106135849461002433617158583449619315564398068092510843595216324768795103651510647855168495126260036652437208299982506706775130352100047190933211983723352942074719267714642808101361144696823677587702769433559917256510100901143562421863226300610501867915803962670629442245378593237610776961410516672108527650579167936305777281021825849017356128595405508209675597689297166832257699329830444732200270641071115245502652725813762316874215908306874298392977761747441691648344557284848119026677964340792055951762755490875782893480076551805813310431810797584836986316232478262173327014603550359642564490850653598304336713818288976349555587365270774278334740013274814802829226778458154292197512799888253358704526213889621969902368690962853722208186894855602208290667897295560798742580821141795956122242282268093570658761642052257024174784835067489052315174863950660566245662533900181527488642746518319974357424918967318660285415709709771851293614135368997940191169616561014790481494599821514119071350584090700192944902218672678761863727296329572684350119934852078473716586449127227256316480554299182059135432865770805302096046126630406557764196910348896071891382490608437406984592749707129249613087311697301274705569503048971694153473321207848030096981347377324676234191349087672886429883332677444706712709050408488686927244087802946256811568998726294026859390403682578288752179660110887738540628722064121028181686199226625559066124476500875407775730313953546047751893703142523476194164723404588838634122903788522646890317268687906549237554061324824715623295110312639762975347083108178061473031516869961897708023897263810555178663302013581959525878271001690427850795542218242556747483950873932220757050443596416374638819742488981399945336091811575277511013079988939315506091204982861663595393113737846356319662553030075710441119892159046691152040625021272876187309941483035399631034289155037562867909797716812032201337833589367120870127725900248390980711169462592720059615751510716059799215851141829455449274216254649645452084068941044150105636624694606346440767909345142283000069827472747342263489336850259378379497186749116852029411192755513037725327951397852522999296767023162166358806404176492235912832631419212043132200684999753070107406465171252912684469972759196116217826558377471804109190255175659735660494688504346734705476707529548235004987781287911105752309458196662807477752921694836173716119294629465274008185931350747894643316435856398616234626507062171028411912031774136484842024221905349518115966279398453475013352204269238119457084165451807104923772179417650715177081869586624075957407464309775883491105572304214586477007085458488695378748049272103694388510206539570037927150002830965309640574486936135421777247318401312616586016278247932795332652001019161788870869246951603503428505570549204708249684163531209402127173529413644665885653915994675985652881606344236107361483802898348829041897799485122030453942651379171790895599723762049071337319834265119400348324834810616671119501537680492269302101031483200671224243334180369744922422724695995895211519465091053461312561998190219537716654919195618416967591644707902275113625938858576684122681986599818776357334452581293195805440207214536511799630907467365269868816958530310987695394848136562253215475473937587409969896074525883105439187470436990257847566663927774448967281615543167200061284557325787002181526042212665603889689753072363426579160674347966742379948969227150817332290720538943864023085194566099397122987685841438145802526926471333694563946532574503758912916942588209580419096997686307762379704172274439271953825976401530236792586593069717146764838140996400698851535604682337853701775209946426992453021763675798617193076706473748245303605831307313388519248311207101392728206716482425474243454599239518397091981737227631966351321427631919039442777055268801047467036856694897494903593154537932422529214130250891348322649226414924040637934154073551851056203282438948515890136665389627897545303250193169942598605017471678331930628055699855837145841897654044278127044460662966958475815413976179885158625220144988858461175269405123314637930612742895655034673549604916851437793400366596581098637089925420978790356142539047311781590417125287951989890134100804593607879160188108659692455506098378109373908643931534893709963637413019153823121578455436863874875417751882861183833463854461796901324924868060856744877296266309939645006287359587184907355343118891495265701297667154116870387163434562691072475772598656581203362448395319670821601434778446917933669337300926656113098173264721284821686886492640531429265228800694574169544513971528532478896513281139432177663071348346164438457340561028566275163977745132921422650436777872249992759922466520017098086524862315192701278488640054773436409823816334758499620809320463489477985484432608776848361481973790289112443278017847073129821319427600290444827698485795548749184635965368451737813141123906600954708412443935415432609309935704606393236750770019488489348978752466786405915538388637772201222472451329878992098937774171805886301410584192162174278007991361632355225104868100534225825396233744527055027155955325733333760787888742626351148830668449380557462271604033513065080952301445990939952520006370879125057578695617251385787909916144771401016897684834081124262429666452736988202801026695070958818918051309736823535851391794596364516002600501205473415366101176957587035787783527292884383514971115627237714290275290653699210038344265641420249733209117707196730845753966417856935252435600644974015163340228246357646587657316454741110156421514370096781605820489802124826632410078596245194769822357789756591006822951959868815050049235762701427741098091093620547734717077582072929134544999432494787115757854794392942726520207022498972869582903043941653260675705143535018501462195061392232170406018948259075424922348231881106560995237903056007034091717662460090019654282871502667479660479135903347197499253481948026863783859959513716364507136530150511318369201931670261013535399109185956403713551950217542455863359797050147549843852330387195628838243907122440826410143034449008317405054010169161018891473818758919397643241407970204904719026931529109971385009018270663631917326760338270190979607552007658658834062754499299832013172645255225148007893271830426876317528690936685926786316533749149271387815528305290036051696252511643210159632357773556875511411696943021054434722023807316986666315612089399234913942088322074062637926698553377726813969895785197266159194551892520620756544416538276831237506507607089394820166199658628421584763834053142550047468186077169370850074849984967081816926970625572726360060905779104048218050066097980640700306115538416090306056897745438217464806302533826323570960811798080321396541969393101912771138973937829688564980399442119780341453649189963915557907659934974489350675153425969882619789779429602580249434179940397275149107691104510773975480015751717240149542634777400294222157992261427322257756540049357003848007433116342174442682974511385657257026757968180286879614480841343276587289056464327982849390394332906241079939190789588034700315267241702699474366214934889203833687910133299424814638018234467402923117817884049547250903720029563735809048137318605515174320612896364021454858842253668473989737460009429104554941939433789526348858709865525847103504145589517828853283535857589236387996628282059341699470875655573369691375060945665203864202170723755357442266331390239364650476845164171469721638270599837841194699546877441251372272468419493038916942114986316992901669690158467189420927158647417735260698096829017836496640336083182581693068291315836986252233314489939544113156454296302294454315099882131616631969966526602553124864486297966152008512317790876854976984927385241652577734857670208255223566094928756378723840976221720022799217671444779171088155749463601221953336835666366712357036551717885991248562592842640377289186009004522806824510072342381466369167153115595457335649975111187464195150652992074646339242492059531509523719750602781739045420744761929302579641818060835475347506128259252181525148489568092215675757736412969492532589602410396692894323546986841570439547533868181820413691448292434138649998901549309316650503382061171547677520264705964316946915183827027084137566654479705484135806482822728970537547433008683089231995452696658087427496872393899961175716811385933420880502999532035716647175931087895501904778665585010205989730255779971673488432110104569688445872456428345994924431332362322217834009650965663394211093123000809624947601608830234305355859334711649646762037576862564545590773862122809366051158281127535406019769760298832668133597276284707105684352993685100058870287447622018064767512516330197525445435812417104606150795377375099729301352294662338719220020231152407140803220543184331567862836680969893391340114676157092762234165721786197458833463706405032906455739235465946079801656776023187442201822260162910158359940777093450941579130684541712525680411531321895307715938760396768524578672743075845160259621491470803747142050681297682476184021883174518848286626497162244491332181006711806054219918672229831918258518671961641785658617266182718541290346121762745698175322574899688485220053001289102724961931408833787035780414399625788203732966352953237355993342813463490164220408574816723819558217667599363598042467086006997384911603868530933343686201438307944327451696460373803218346275931635315071212834766616222797153282948401282134885448677245628262893704275593877909749021916292751211705036631263584943170639354277251691824099914661853053640619880396735909520324476891501991177949950514134407960494734710049041812231676225216321435185879783968621912526978272720907195850054845154487911630813776949317748225805310236526102781109153880260685664470150164749370055032873617797768547711098253645079482050978913222114926551155577327147746498752640208708061073529249882590461348581942501333653400795607987055067736508428299302639977143819131716497059127883591168603450172441707925049666104265059542583388994231426308818283181544272780165896857152918437686113525389054874547560751712295750773489393709794419853795177327280984719900756391582372164059112879010643150250640073111517462022813643247259582967824594132669044046211298049333868132302249514627645441385532792562275352059687198069035980132369868686899842391997043375574574423896706044989090875614571757864050199966511527518888057277494752880462171612377817359693414156708969378024498914340142873725237593193322368065817026688078988333715387022013821861249930326871729740770740091854065508250317354881005397188278180993284945060194760576499990828091804844278853595020544647699412063421025942376277707242407313637459364624937530206127907330456374557535843570940703817153957155356598924899608913688660256544970227848075694337695016387031410319424658631369812925947434083951985834029191311110433649440946262197007130503689575242992657925337619522449433512820279647558084254691095933916756845347095152325824865419937072095684993925981365247768363188951892705439730306951437736415374009961758627150048755670526259283528644178348486153730001146982649225631746848013533754556668041579881214177843122924300730230264037833101951309754783862749427251609860790934785397799755907390089715656780830598110292931255487449760661860819185347484424507777315197846482546325178735945523368373897711942374723663397729565707466264992783363817236665581635841730263825118257877115189760896529335414398702179926214673811952857149339201623449917396622883280464339655763689891233181400783727068666940028240714386262821031027613394726905108255971549237346010796232553920954962824635808510724800987813878715124938141152580577224609345094458437495077421804349131633852673441374580323010955576383928692167986320439316275760392628123862355973068405712457310031259642887458763319732528458280275406125121524366684895555127007418365819974321047999170013697836532034736593268932432206719034782628543589149720306293679434393266098014223249299493686515810219152856501715358612189709037732580929977030193867213014738285991135555167104965318590100809854852825025342394328106958082035020910573814580655967002202074469037461548786511738789456692963085314785948095527965214341675188131502720072824327076747619123468356837723770428520260411751043059068646725148910105400749365258542161315850081361128302515324138695757455662619358439558556459877676611043921707579553541185144379191599227333581899685784546845726491895634236042315778294456838071064556827663686415460450591257773274873796122749518789590749529564332700288871818311513679826593416330309600447155721378740026947178491545581968069904117430433061979234450153454461492295127131251075595920009796438696286395192998665174708058399326233590868260794485615747436858285112753492266352153802827524347355068248634278099859003308839090945178887160819671836329922399848451639237143431053249680070180201209318078792376492824069993004240131654270181333696529807250438544130850178494070503273506207987970894506946294549736157228994975565821874480450731857232407640317025932938171093374686710651672789382945435290204275367857359340536260259172523164149625798379373097731422807757028466004738006596178503367166457119074062641374108008895585821465491381553871780414251785076846033338002092375563232077679478105090620228982770205347707036392242210485100388242504752262450899639145070719936218915067581200682434179534695189318085253904577515226429191698177769206880944362679889851169651107871569950656843656939148805732182043557793870484914500849520715609060382674311464421053820292010151526419607889065921131715617376064698663466064803787407161365734810186772058409242703191110635339498263906407510111854547396018835048521947473650839809747261240584768497502840504942515510906065119308342575878455724407762522009311169812191151768607071985055209124905012435894961223930327538974978511888205722469191923757848279726664381132056271774900501765110683410444099920181685376408610738844031032411818279141662660366302715412942702943106683187258488329145809186794368500136864141208453584320493646076705066754053818583094697463393068073528162414417139978329901038319138862794724326639977350600313229596761220270473009131381050039725523443983912034835999186115498669827626798237424927655541628210848515655371666760397600033611257327822060837619653911569719896257999765933069098622876857780447140809094476787983021526496363446526832454419532458134371879885741215701311346223990557755505541436379461205705594482815390992959127303474430209774485808314818134931619741847751167527990620646184556435381355175017943165189116321992738101011097478492204015737037750704815685623921047583397935472245806431808855536388282282739464611166206119805966812607870844710032275894024097829743661285395606740659192527352244258409448939640666646939428645209934603947436219388626399214748480874728033367356659450234184662609368806506323784853423913152662005581930692503881267835853282884150252047572079893183251901692562672754660464572976822549253579108241398946023680746744536169591665831047233373849895328603482738481131683468294592433265940079566834335923775324009193746361874482076926083970641031958385078966498249747915741362925587362086177464435296520784070910032519407923543912701154550107924546158984385905317884636432258662056208856412534104136187693842098855216408310093677840438936807936596086036203930214017159483690382087001288970334374832123122902697117865346957806810702488614896543646272807325835811052088244260266614367308115072567107152886341039950800562658972654466452282796392825148056402124650166179881963334789990626604069834303990808851113356829839342489355204818062194721032045114967284098615081631822247623534923903490943916442100670336943098640154528357464393430435744007493349462278731930630906340666769229969805301010999737930079658508286380995223242791070331267392887491846701814991034012271439919629886335317659328469589201735111455850581301073495886973502489864577178341601648476782276055564074155692133869647234802358297133844977334590777486146917648112670656077203580210009628411793552791658611470707980980891949858771021506911635299590832339575633043554591585974159780162692665369030556357046398858305076070183444637790334009625924245203899687365917566684826191744530335231677192915052169838571515633769805955750516084575118063748714457641859232775323901630734135522527587094712953393858286936498440082799858970717188901905871152279672101588976770939700063839850714973153471091347523052153289879885922800022871652289941927213536611995936067444174116148592600946109776094038515921291311240295227756636412732404911277552131027853881619885811956436334132263093528091937600106873939421171173274375298592532433632231040568239761032093435036299771516480122588594364141650782127253855911377244386499037689070295249723863093583561787754546775004342689690182996554176613804194627983190284227190316168713262460718728649790266420389611352914935593333775589473357835612076384700412704260675965538937384238866797320914463709100298473794166848635175049613788316909235384126195241877848176511107306306838155313251876805595234488020132297259939608698036108288370472206321099902899992249330986228304148057797048180303882763208858720425303264625084839542146862585782767060811593603638243324155091876878884544136533868197439302036371081388816433574904529989434516706038365612821405125629147285108919124926159210654674063496602486243943808934374398241097752450320521978713095562799705641575193714023086487020483538060462584284754267727598976266528049795324655340537951107833243576041371518214003311350062711274090689885854668909650701872967600938380993080638554143560294939776961641807083274143933579284454395463015949707613456487788408177818067744314404317554586101902890325284844389109326319794453226417216305949488790606125633416013272482858892226681692722342478644482569591163744201875604836395396345468905578572957352795084018663159209175668988591436160306796941876145204628464986743682079327608662791816451118061877732354791769157063506716512979036283149284837945764613979780974058971719772743137386252558242921123488740957049786836404638863319520511324245222012435309058863598225567486950935361739524086601292648338873884115604098466431672155672467405131311957233045273994964337640760587992188372634658412766307917246356287969631037601156277124583152042886057058913877470289623533871080435120675607768015616795011669202582056519808755664318038905005511967546667845813394880671233970888635743577817275964083826288455797217478297092194902327951353552501525294213755189812271767605321527399239418119918571594957775836630171599299251083606840433396248310808889439014531601332692773860012896675352579928255599530210194635125913421731299799179633895352889686923472686045984555686399169479190132757703921201485397565573393468420772555974528980478810554605126333981295476849066695047931032586032295659588985866242875225973098519014417164426064088934561739616715745453271552855331074408479273668510632124897157588917286871531777351849946593689254093547701341521447793440897897264233610111895646246499912384708493654263563488240248199397095587823627938704593009103030909462439131291814004422821766129794844593748591128704568810975974551986698583300384169936601776613126061919831871987762574372609411805177564060938114132825814501715589532585655016548905876197801854097790367019613882425988514665602673122818318904592017828889743431488739861279067856045904304634008783936363259568912900091000640275243972975738235610014074021654525305173349941572615375523951675171853330864001918242002408574924059457935449394790323600341586173341973880702206552590496246092338386306793964101628824810289271388283178200449831910749248454348425100192951468026377845045027263228925585482482413008615013679449625027089919042062716005105314204251891605872808210865041200482036662053064886378771569044502636998601244675965161177558081196976371046174062962591745714778932423751071625449765084420252752801683877479425456775857816476483411016069207907896841807135042389371793051197821428907440575972594855887406460032749355600129865922280672883655034461087378851725457524725687644428074853359082982901253374115368733518130784529485990419458174239041528791034968413069711257143875574881503239761573068795583713663499145974449560322241881027709926839869679178439702224383953055278443685508282901857277122127177670473706601504007296892870615457930705155140454591970872542650464894900882641547349977364889578688923221873921959554201666911663142860344848673875670337008772854182167639548984526649812582142891997101185696683540426877404957123493968063291440902752424707460507363146796322419509020907556865015250599033704848171401050153867894128753690078232259817211346098505164768936346488613408388347941916700992472563261800457796941402871615269803853862341693112316980199531724629195039519316749060326477290024078747085563367512071609804675534312287102225131196373520916490103809752811345292991102103350245431711745364611260362788097550372150141714619445162052127174590570970425340952514039937989881174192712099631613600728521201967979236181758093963078210069761408649082107348730278830226158922461509097556591979466794078039741326014397604528693469734836781094703603684933228110565818183577910223627376129729891691210636966439613064099955850464356230672574198057950978416924034621426184167139673229972578305144657938511761856824389312960557193019988625750345474091250803818590070167934499345343030734026901116678499741812002863984704939106898947305450069495194410680093152305422447487223423352466415645412961044762252421864554328716820561304922737520670669006736583648957577169286598276368051546651226857237008975536548577951214480183192316488407930889247896784351614315897611808551241506570496751777710689924715429462360632275314366577014658983680737400544207588810192704732577751066996127700719547878142683365934776065331481347907256729756300018003420046883178988414873410035239672735348153103171410907807116292416076501833299787927786856555950958757425387701249252713415066485284255788843098858912661979864357056907180015192644249407053297457914870315566985864466411399901354476095634534931129024163913823675235516249328763306650272176094469589639239923299786329041740130767025699355141608716127987741650671265486467091878384313551070504491319983974017011975505362772739578871623315961639027849015129114911617866453595233356274262740223995098571600617832157278817174429192902396204039849339729453033957867999995806117469738117191748377571982368957599391232220361282770841876048606351907614076971919252145333841140176669777958654537286417453152976611779407095729335407532426823415069606159774420089327303935772734618285741629176275161800435919856428594098722106732993730020245217316561053130704864080746272989751526481589694616725512289415579433893844193521270922639809011904260097064345528905703434816742203849359201797853331201804296043281319798781186382015324323597368560024155116767690831660473631752140641354894922495808372456476375892305315873206453833977051536997157654848767909798602965057431819628304054352023828953830485456988359948304197696490982834286802063841674573388491555634990274336681512692162730251511053610251390802288307753387388298041242975357302267440374624550445217849318948812122254103964982811005344998578512116510700982237004267007662416578333990462845664675461956688276079448068753967748578310235688245000838933611612058224752493144527031828678820304877033759483965628213340166355609587758443350036669597914182950137772640119241307976753107776532857511245041754166500749588603006635462914505128637871706052544346208796348817170462412053621050211617077783452933908040757958613881631322900876602754080220636631587551077329346370308664946425235440230216945400128465045343500068281548881364143272609483804829070800342201360749174924312088504242362012541735582922943593812930850935038924616383916605817926916184840598750777581432772831821796196383428449148848316139426707425075525850018756737794499072230480946532057735579265439524229819332121057917321707825871054433051306762615031891787321292914875628506500776920588965014721790224293244880824094231378852928864092065866722639698599038154075916346011909371676210217858146202808415133395867251844040827155682039364360362698608704273798315251674357666572270250082546386214606953545391033533930731098015383131079969075552799734587622653794936475813260043126646847317996110256596568505387006282556893164185020918170568042934785968708981895709522647446609767172283125575704127778839957849395900487821849740023553337672370464962810758060021970025187404719074582141521608618294861327792681946592777418201572732476351443169537716173668374888381025185306928157472754804928857287551392661978906037295744823339586529467489784875687218507891776017923620713772999749264678189337347748717457221450612467262487566748375956364284354642056197833472726769806222506634002386576745225524397173021310735719520705102633668432184201776130517885764924100828786738663512826942711060882482347986858772877426107733584801775470398134861932819296217821767882722888194579926329925518689705521680303972245388882928683233551006550583494527715341100478196647854831684795359201749950889938142858590336758467081124084819549435131443098139524084732016139428372296393360187803159924103525657000529713054941857305755650109491952720411619076016259485247636379253556099912000179377098171910360348578826802965261212592299829436266006807285966994589114841784002188012152068101486081386289287236317718362719696467353640063509786451324334137370563322308725484732441691061720969671887997728592928171017569436665694695788221235657744082770688770837619494396801792323560837492862055004504500466926677200103180346585722926081490719757375375857906741445465082903323658346895040767244159111092734341100270193996097377786431229948454179388678871089580665379710661896257276946144297819938984133615235744081832405456642989976229670059076684186533057348762446938708556203551764063916856338186137955268584043617261710463576135928004667558015727910028913500897861475075701331488563670389646242805877112198518288319738890825451610463286144833609847417501254187936291861273634853489885734358398441320118734286717307888803439189753218002223427448178405949357983716942191379940018994117733121258600354041210293389359696101780977686928829347882572914386794131594058958603712093901005373909323638616877554842421198470010080996103739729220483016916066165521814178913438368578707907733233570197945756365189425078913200434472701931726604133267135809207909746893778992886892257256017851224704995427024826816501279451156569929787864752796418706388909443536584601947258470038486991082499977488829544138890791081858000194310948579985368956035139642210535694379885541844818349023149063675420112040612664288864077685702672076747842596002629531866300713973224444052293458397728949365852462354840542509544114062919520790191488535371893166668375590621471865463905415736080495414175467787684143629600200692541639635482977344807622401974400945108508745652991010600232608711495375768876361769812920916434656862486642537312106983976557480369820081933044444629375405324686166330955029603013339838192421214880786677285003350767526698238639366056590200332716112670063712128593869934137775457148262823070756470037498500650838644325667685616511649238819132039299284875599995045556205121370343242903154299061716625387898673831949260559383175157600281731980268266587207049030022767211491096552527409544650610445287705735699321307814203629546406909930213041638869827603855892924027444363633781884451260728743919012941595932423710207874584161227472165212630564885188134308004276387636117950411615356588401467703358877378863516147504169538648721772520941858977137232522757697014720111678991097573429764334374712903516728290739337508263726257041139464925239484467590993520910453066801475178607361707222368050283186973251943558807094817226755161850501325961881687556740956939018207739972004651554191985471221212039947796915192835224195166859346804769379604663359308391897393182838339452462251296075547391639351775171754430331924701103496250815512476783824178636454157728142023736554070499499246655354870597258195610233648156852043132669708020734063941614230298668737999631018521381149025313467568166193149259337683987777827355613115221058420007147251553709680103418798255267118321823626687104458386990874318731546957546270611408422350029788888476719799383643378897616290616579172680009216382911193698329749279105100124018251052744700997265600838827868705062271690037731571293732278934931845084188005605210502861144733060131285932358343282724004453066512041050849262835281433438215757436745896253039293201646437456187852227134302800989080450314594022961809918601825828804133893988596578983095726273636737536138370344392157355400370994202123643517262924028808057036494931976779579729781242882317727495281651978402970484963687021674283054735398403914011091224555449469966737722140330995937762656448560479085774084094657580713168326629786043048870598756603058839550236683172451109605783270411479016953750697317287572394751906540728985919843948767119896230299328334451587845376388710261177418949918510007459726565938294705230880755307426865549559590458780943996469488566021204605432114162988638684195159624433179369099631825946172472638907187484999284539156963407264012048853619372009225838030230611197212600658406016480447050311895660687580801362841925076022682649983543429282051700447211044629082298096224895421969483200244577955174609973828566641380457092479543077717479572575938312053442006815985438729815892978583466618185365183861909996531153326886934849432854020620821205830192493493773755323825521929542369856480098372316137676946177560951743257004989946636664522129863577606504682664444361600677315281382707366233651408543892638869976392848400816984229928693444400818271256522344878629179412853267360415025164351922422467872942988067248322902747932112874177807571791576773771179264071708393179808800766860967906235431602691724014105265045497655883446359280036077448913591915513078067638872741658447298393658725460389173180374075626286029110738419563906237987802090017505218939563159764785790458650648629759215892690039140114431580975291877287911839883079039460115226869120789956778647262819589834288850351289263625769436028290080581640958296281940614097762191233123455765006036228500989072622478056830807968273663912777571277756459064862505529866823552542391440188974171066694757491963434217927133941097804261584207436841405961686842463189382308758687746006093872407792241784521616925627128463871251761553600099146016995418580225467373219194947959633622838078074379695357110973328178556702147261065794667971679496614260848046194770368068957183216100726774671284223735620731303107855044258814947369668328682862199987997217618633197216000612111140310310362637274293645909777341918576832174295446537266481134093918092403540338056895635378169283462796941287171767915851777981456120241291406525700975652919600646482493292431912888164253406618844138902451014971781505760750849590553239197280377082901143387716234142340126550393728509553599586958255538099271145936621724643799900169359111265756313106365182510352799391921831302307768619902535565809010565183522193637226641895040278849075527027499655671705130728696920081956900401157260701682795094071884460694396565290068873452198597718660238801437966928349335654743963641214401633788087999182114968808641780370051101175262515287972930048639837513268228593113219374595736741623381474133589244051827069682345172413721309028470802319265090025267738428916027158684831486337675573326439173064092773870077982566319513428107350981250032494830513726688808355358307588346744958554972790824308305447427748021799018051829821131675790012490040015264756240111814430168114437926523789112938841134060495506276069592712500594538492291250199211063006616605873840204902926170577723704288522736050128548765820157612162664682038946747089757016150348600666110853173958496407937796393022079305972768413773972165578798513187695873689852134796622412467303219535339478385107071758174389855771603365491095499755603031470796496868211512310870648609385683584802182445101065631223739861022858239925311836140071516188792130883213018845751386674901139702761934143955870593355663845263128458280607947780960904140942970236293323168797472227797740621844465102036843163144608431793512731751753226053560140191854646285169820479759411241665320779775993610617444089529577085661940990306831083632022363214504347536679395259708588851839938065017674871938012262120782158586760800778649819088138073368633319750929882436234909666900634098794786257509083018313342273828375325868615511017948197144158477834546603487938895571962916937847181569833041631046433708832063042858433525320384376350597431372051157466953077748587165815747944610729286118919072902795261521026015401427035343294250947465001593223589756614864832084793994324680564114554288572181329661480562876434951530127479145134581574699845432752689840527732998187552579950640170966254125779905250778463695266962680568224516573588873247886575659341887069408155543740742448514015758872944862189579494783013314965568201641757498455373034579762124249113698050322619871305051739784912095825720973162708988735838056376207541400999481148415710734702561441561845789494813354705886462438106805833120768266239369469923277775459743498470178300350678313660232346066880104742180721603733821558165303688172705377121706526881615372863713454933204242045129654493440559318313368385502470621126479661391167945114205266511422523735522771282694067568900252773365566917392482371354289432475507609614183112843236318313118055196140839350554926915716377759734677875991491445481542101752936553954132433315150379544748124131025074370709483086889954936544402881031064318413239772150399431515106941101947371667062684161574990691553097359316077922317504867607053856541478184151160466512162724102814042413944886956257501257881851613106158844962098652578965441878072985288594410825253115581896015496253013885136412560350758074977799386404944080102966318867229195205929488959808890375473780913404454752697637473373047406640735099683094482287145007158652688956496563315638598112958163348171466776194483832272364075047257759878577084012892260613229616722798535628130383283931005508051947011530844860907731657170860802354941254582194896076664024837615077648818565041373628163294589487635275784916500227088569192300908399496461247732289788946240098250475146716204822098698083941378522566378739537142140436384253404149720661270980613423770862588825413545850672331315379559508184487978792699225918765866538133274782516526054731899989461858223437878769303375969811792864495063508966754208551848014363650122757872922639084378746404990193055484455921283108393571765096353612598336866860486022052989220278690174484923647174548602124980482121448323960858592364998976168426346939532664287342658872794827504423684280274220938920076059852749482955192297710575623726310768494441939242676891679888415245664461691572569495088085868584639862062645383349376725346176262216054031233740557936532742655588553203023780896296738312548626572171140151542964242351592652045722354582922017047030180785613040834424358624543408419774295185255134365624199384029096221107721035810356988766065684854794272998236210080912635230830007236088574547650480901944033913618997798048477454632245680385942907462250926056510556847357882390649305018433642879752839276658517694225945366065393186323618446285378311666939972503383390046625070388732567304862412095040103162224049674188191317697117898572516600657175264064223086233464398816280950358865415012324467903839185801848426388590601677260288583767976975277076435023495461534056663352779653917036615466667302963982874617215115538230690438924094507017440070017673869534496835450790447869984300035647983343024229079335066519449767970420295246592805067474998113781107423610868724352301752570171904051523262028462798684161546742627327333772198404870534455261558989351008780322544043343405198666197216421919956744192595226713520060097278392080447935595556267395167829963051387693375196301652552681294214473461286362366326353480410939989796182246578778113937117298175291125021982074014075256631183776352631350647787182658464418315281138338978288544314820767566521906580927359973427869866814095838409990104990812965547572059212643816569036739577097180903147534619171333468689823660218654614293132241767254656368133640833626380968327663051474863467050491235710394287769365291364640171041751461763375938897351644010653016413040413419280443550375105409972265319088015451507527595784452005255806788625343553936922173187667418916705073770411815887473357930478522208437584240767999364159367662789657578304563425293135433246734036176558506605530834618730187465319097561753783508872477334452844766450862094576998242986163400832634689308337108012414622580798840195691688910381894945776260222945256849378322109875657220608296045199940511680421062782883632575402030971860817776372391423825914449607804756128218279944835228241085872231328221803552843492152446750568481156143359114741234325524079897731643159101835650780236417997926961755309269404520587363138464415813801628283818948972604160403268215066501883540407530805623427566887721054678253303958754177897843943133547314330421468520403994386079257531882597084698884444827612058080325671676532185802521832299342123351378421054944034533918334318974585394534730283784279714001954573416400670562692586739853361762085618257936453759850417752289867723761217601906275360775278795427235748887171417252366269549599812449978827308422109964213656584072522218698854533480540509822345155637504261243677161888755906767032037537857518148013830895611760853227751878096892488057965024683145284890519260407617912879245105790550684182629009664111337529386225845478638825068186943689136497104468596083088207116004966136907515548881852399516665657849494674674019511562117558056594800660328321444474347781406450455632965666913962864081999866104705642021009044841950436203640488833414589978794963900888832435935637935431787814662847565956171469554142548265673806396021385611944343357532340838401770208767823759696594220241665637922647145061593078272727295550332957512610056052428636060580310548505458430091900668198774593833302303329447290340798608513274857880764400050971967917319936270665224777527151867026740268602440632648878726268826652757183291555952517487536789956152352401797105632498551748785543753917916145935992875345211761409176044157033331824669466266220095779771270257634065797062871253935002234446348890564883817547865030130739375540719806548003247444127460147712680183062448443256874669111821166377844242434169175097402624472521620792554336774760547166441629281150457169446562551165019692062487671974928552944687833458925709606433362870302599071521133289075969263301790257384410679282539414712188328275526003729343236031138768992829199505274576787319872462415501843581981458472302713976586937783529820661750264774841309741825504923170716984188302244918192549367368034008797472527058763966182625389698296865455632980290085916746258005187281440205493856055607030414889090314623797550066362356877918966166038774130525610012435600819293629361433198823968027893551780009977661726755533827480917869863992113109856548426218099085867607289448446622293114165675949506343734894550337594146261015599324802982624233212772924012886747380994977310533462434779474361403899997560814960100578078785169696998998538050722789310936022623885001724464963216468300709220108620014781776561233615293616936826820287329192635065252208165068842673427200952635373583866974002485155955360255132994479531206691688737677064361645082360663573303266081774648669362909164955659793135773110752520607131069906088611272450796485484468324553660804239280566875927043602782193799294214497853661862281153586193176111425369567292550332549091290069666230081432720619775033338759359575378682055119968300010744294176539224567812717696638565973570336690661202213646759583323946821376313538022732130697525654592516624719929924418948705539596269047132241253350579974251047608205550724431276806003825648492479861731281720647867179025415995428898739303574094021465731680097025070112459257673297872235440131827439059103698584383879705511224995835040895955394891429271944133874521256574199558004693514617696752264762213459619662972139172032685476122870807804797591537299583548962276654221991393804111081272805955214361504619946399600413978098408978295409316298259442213131165259720249193331970862939956314407344502057437022904749554721215870654980789329409972439957093861155320494074292290509801852380860279208941034681459626974683232878263114263606033496639527932148480440970101059927819077998640329917032662548917601212043875169617885912087907231058639868727135791016909329077556143172082693182560726292521647443627188026011157477763042037879156517656681497373864238983163936722600990995480981251185870980096687303957532132507533364381689881592347106122318929583546538769665567282380246630960445177165553371605574735292264191111001259757617211311218026862877303134613729467210302111005716404194924104189630289732580103791656134673582177460103991715169420152486650377852171777801244350160630807567798678831461129334663406625117674251595033350225553826519980247686118223571893883248117184431933379645660741892080164780664583288226595849917609034186593949269338143621357810821891010302466231872204943283011228698752208883251465902139013552057950170550472895972993227816624676286039363235936239926067237437604160713229980952186607355214594231826761923671866887657768176258646370048414226032550903363639251032971965837484363590181928725442225973493926106213840923344635450373898103144618108799181629840984490934165228184607901773769875770751119917800112574466393589227209964717249789244771807477813363899059263174136119452009046680109769863413367410403399065735481349742896297122200267134159669541691629850309525013552401744870000853783155666020697637482267676871925873697760919605473243398960324967641587207026303207935825013758722168893891269359017406888011663844169192791485612851303356955990616015246949399095947294003181411162819802949977780938589579989694158833425736127745839558846497375008969368568707156412833438450881731912442715258505167272338505430075420889143922391271992557910898999868307355904549124634268382872651560202552497981108090731847532199172558798401339889862526962635768325154848478681040924311369865087054959615849920611030177318490983327571243962319529741272528418008109689837855852966753608339730554234974579615329380878660128036748369056555645782769280255198819169195827689785473302362664384653114907960648851105274811185800639063169833168702093317839870798635931497931642866119591686506438639477740996652117479084006251686330072327016998045332651221243275524195916813039608537429345466240943533668514900892315549724890988754470780257548628751207417748253118767040179893045830884403690378842847520053049889662504940723403542565982259896088817707654625144172296816968313652826996900196266672771634534314221020821117524799621330516983859528923369681167500343048310014254713170754776651318127768641795202709458017862864173943097816895176002145530142233674360957783339882539475581305613693675375448643359586062468866856482024703540506472606611904932705518070598307184488263070549244410164820849995043396276931963825528588998702525301565384182422264075764077648717180913724369236065558962387397307620012048364442440147450780371487077174037080179953545240425933308764891739823670862752448289597719583013367718278598628829972948925932867566241786154578697471984022661308138754755635254188757763087197406738635054969558256638907714880618891858390301951562203129571675575453907661199361665417754294056610490751894869691142836788055930731543244132214804289994935209657853191049327933453447063056683549945061772394670905604094046907212248879838815849185593491527906551487909364528564346499694956340514089760599142895909334024314522653149047326498255693264744540111087700366037340664888753339700578497682039009573582371228582121057386840471188758878148303614690250673408283589862696452811934497181211745223557705833006165195545052160412143619231633935837426008151048801970234688389159803202916327771101685964986553378436039956966982150736115435972393731151927037003236694904974955164915877431959494393911608988648934468610935327724534153357132710147000887978666105190674604422822079250334500982618898648603707365978845492542600988792981992717153417850301698269411573565607542114605674437142283088097947843798122170841989487340493184630136967652509012987735119148910434391306049362041896173131396135400318877090084198259121744750004734940109050233796590379418030167375759776538621198282019055346876247404538225602476468641658945721698424255602491546917146267330917107210844655253796110648479014800012803350306566683375774421941018474918425405858868795540237564567845535654118288719120988419392700766372855487459558618344142027758892544135286019375970612549324050338802764723132505408722135341475909552947494753826812686235536008332556532080366246090996770292366375955000364200398133427931341499869360841703417002174067554913043310369235407908686766573765565115236850662963631498883933078325837111794701382848578692375511751215585507608995642593462185361379926182338007246167276727558946617820581000861572659366467645050487758248060307255814253644787399641401487852534036834346516131146324694319422632841316451977601049380450702538784790829315328568083204930047451847360171701511783361233978265539640814968978725078090436714233654036752942534769502551763753161281405660242674453442025176293868759217926222628805663890480446293548937642487411678697724166016628854647567246236296989481464078769344823969670292197371713607766482493493615413530766756282744759489244082843593019354250187437997653509778288448889553434239637832214617368497832811186011607448103345248910114306778464182026039441940289943979897088438492014564845607638660425901596773498990823581519306300115552898943352225103411855832281697657530324021003898128027398025795004282842757021562807738306020730668706908694631109880450920630409533200183880457665177914993120089768007247059313395119294424746333658529646958237296442027656591472732387837427561373714518061951244253002384493095326328697501220080449893260833760623530319818122341692055428825783141398675525329248345400336842853379586848637043474628583895136174389019341252359852068748636400412041948425872207095072567532194705514371226004760630432959958435933631467039740855892481365996889447477661976175697824975178187376415478505030348271200836066138532071716191434366011634663260032851554564018672083535329817237698488647218409740035328388384102222112033113236187469656962245042499555987367013656129522514146808000675177626751899197436138084431434797647553841141743095629777841762692925571681955264933452303417911072923407698708116386295467133815377264628967114350232230452460597343465180934084378722884784638466712767589600688969507276839483342964713958570700628479857730078812187400533251234487613400181261018634734083577974499876718600489303206068123981583566131856983747499623250528988045763209820906890553041694008498641709222121501683345345717994514995399044872276242898362267576583548916959590066777701634371797003523777306221965146663169752181023418628525866113798174785737759780708798108921415128914150126985720318703271809561755982032768563325954274618006261467894805223942646223451104753732087243526305692636313313944678843079927789943222578798895422209739447045350542015031572612889132019667244226282541827772146704829125537932186175254634033958234119140028148004842138575406292007031213590488324136362652861907015714952139694255173971095408089109623523447109257902494195395454494578118316993266146611572757710303979941799093552501083038279505927297775179723276734283756108677277171716467816721302536204516450380392488348619712909103105901112526681544294441229356516193932736392424906930241019130248298528114593659063660176263915364778534634111526523678763308297099866211298535146181403612782079220094036217016281976548788621949078580347022324345604229166402477844023980173599935399637648765347727921982415149331475718983477098917338275953808754017872091800825113333532506234185350361229613619233730414107312341324033481959506062216195279218764661182693822086763405348325859943738781972672029088205639541766398927959128242521653204323933663880542969210690127281531744477415489771271346784136728384715700684045385575037271724976964011611645357775520792041750285966990430310810593151218707920128754756642425138678034547385497687329111723137953043388405908176740440356283365659198284390877142131736703161292543607250642366910351979283282497122762559358684428727977734400089249636472663877466437169333470420407059325230185180626205894868408686875169597535981997134509006174193584728766592363570417934816396079952836280190290706381190451377448580774290784576400965465465559767371572656445723696209753556860525820830371656586556731888503586787188411298962976674290211706385581890797883287023180089118799552865107941940436993518003937109647732097115791687775970929890692430970361683303669528316212009624766670547515706742733865294249761749637803903783504647759602849205317143577103075441771235666103961235815748475090557336585101802755105459539337738849540642831677223556204580641922129603875583887592682585700402883974342576371867185871105887003463181490545482279664466180646280610333380595549458470817038482406199979186855090128288363878963200131473252222246240146868331371621256191986714114671772998460650410024083029811005054733528187092522153179792457987470389396581832661724727092124819843605402575942104412969869705340577452018319695187682273375783137550042190666987657030101414494239015487898579190095760952698795281453394619058036477104504267271939638516457971875091125520318643740069643584948912874380217667426374164739906198755852805306172613130217841336050417010051346370753209165895467675008218357841744972125478423355871585711079105067768531606477143288739034727550266925985049013434550218806097840832318567334358797872572503376392509720896160372488123936791208351378892927559815777560670207872437169837622832040555626318271076925643673362850470177620388718247493974847967817350931416202124479270838114591555577597206669202690689794128717438306088723048549505779807525798543920029490191230000709726886959018265275835796338931591922578445838663249591447717883784907476700851349987349979543949304529947939949741573815418828977089200640324723256284632464848787523428425822351583032763277179375358708735159356398581821259220590666234469776849644449989978713243675146171558542569315738711967834954821888124255450664528903699091991588717308156520414802374704934373517094405981330686610800676401311194106879303665278280914782005792283297993996962330777345220564816340082399830974856372387567038086530145977190145926783275711527785016978171794158893278172761208964863236619016333361379041517406958023220765317622557792122260501827125031041508310211934144392468199977917093734253786230654407681527124336296113206094608467674393202215226732118957096188870181674524451505218487160456923806904578071667697998587846670584101218719942369007322132648345321116721287876338202314086920437043241892848294870328177373336477674313375471319987990476465060179420179651533998957341827071747873872660365367185846867377602257270909514311995576083420961503895638575190747291407756666180380564142813427010948607508041822534644877105952404616275751074638826482977503438172971570255048639235910078652075189949314373886566685214574412463026873850139425845601313741826394159583218363033791542807561002686431225794719772441265531557854037429153608322352775779604393890119460622623648751271953936248601404467697156089052290515251518329696039639677046185134625688425199248859061870778586358091976167141352318397448713287818616831999446184633230458042462355249156451314990179685184887101671447075556756590536045672726094294736293621797325242452949747009606304198830919872559084644048925586507886847866031151229319419476613748568541147384819368846021015194949501610468667501733076659846787704401692625998672835046858905901368385370119339364012266102336851306591832520404776906198790425490837307320882007209823419865870581779437392070063683471938999709455980846605555636279905886525974791627902759381627781070322194762104964467098367299984576429101170082494512890920013169639535766193941222925638159157954429635385043526195329701858865001574662743894088565181514003439870283274992940271454346284544289135260570506209736691861117914472099846456572254766012406058345817038723608389669097338917350710251548198911824641176277366005904087980790623345485191428524725433110928324351831336719341573029040283604892588336060324482868975898196328785591818727423678415771308731356325380883380912718732036152975206777390764375204105485926144096302096108897279636335986637785156818782973012370698894229677965335195186389254743148572289768344441519506574339870776333257533156261662576970160909813130202570455505938005490144770504613095865530641847482764688322676882177014429260918897790117526750356103545860051699739858094518426046056950873859624663793443585153417854131929772879992799067815236009993477465078271005721738446121211830116160490455948672179721269685088464644262768396457145718005434796593025424975131930947758878169067435748421149943213986523122242850360178625917672162392259025557733801665029156880525114654985667816327892345114317726906072989327722468761750275734517437261698089860804612296316371498712633521346884906085579307200057331700260209791112760692133894383919352597798462946049005561781631176767378939521765173409747556158960900408138175992770078367001743571300910861823216888197079883768470273115076028688557799660055148897739581533695743364581895553492240819378408469668610285658066087137949748442323612969973020953651117430321588599541951126490409206535592302336186434977140387824557672440209423987724157872111886729127958471674729858463126853628209765305294898603298234720666301035202489498371315823239678787341304309909363585119046620909048083038568421713215751376435119104406607312123599903282453570346342703730941511634595509844290057451268180437838730955131515041071479126392878347804655095897849905966687053677079412076115465820643256888437977913030666055600670368482938538187377979127624521674921830500698380307778161994806990061828223192005392795414047579589717780864166991569168319040118196580932029116181877926725097522682302735606936089963788249178443423596054123983684305946509074628670567719444407889040567307173930111639941507794906021403740037515357791321818479808721867492250626337049842520790324305997372083002685962484267313200759158745413671832502819997138035512535725633785496361086191347479303802986201009170311380336505057644287809517374260373565932633802167262885791966641662960258333758801356056395025558690468757859416555464148077096594006174341900786788424573674141116670162978481226803316638830453098075632690624074878318116002470497775534499534448624922377395562329260867053832582406218830414249792278797225823534340067923899052503761246680805984025894870621082294754273067389105793142595400724360818312469573902165470073222264189724668714479918131480433222632300789204355578745141268449773648048009365290340191342663993861650060284243870356837867700219564548578631282567827014474975948495242531163189588708285123961704650180586083026751654048697927703871593706914859896173023359969540057078871223151957512882107537683791179849334565026087282898995570335484714778504795409364803604554309472383458887383361745790805288918246062247504195388503374213826018983117704120325694622230737565895583574726634938842133083850272542616834589192085045243049013215903458014252423553969241598300423204870428774316436380371463335139728644988560597009916696862731673821225779156793824727382879212325984128066604850585815473954091048768181460423067835888354002569072024001072109138528683409333835963243376971657022195415537761882119362432360607475150024430352878862276710637662564762918663700186704600109639807623720625089985150971559710083768203801738816384843925724476978840879819874397398763256344671055950254974862401150744801581484706588795485608298439410287525232754807140234370752548044758990855044618284254302037360524708143701921872531654760124853494958307090112478213789739047073563884286024237303939829097726675844733709528257404279494223490896808906119564386361490711114394758331547863552443895766882273407042831061113847437757794734747065761670039142341427173081380478422536133128227574548671318694395792059891531693332693524549076579653989723311076842871738916851407018868979180836298853520665690787556908690962270492149512787499589533739025643924403865566949895148441843366229497842561042830956723619680752061854451230601093266096966131108343531471830848680970669056375298503970962198185655120354963049138486663826153669786645159767013688622995509027454242967730272871815142098302490496582443096089247506992770848959377723816056914950417814907703542728195758432602888223859851724447510348352679578318847553738284438018846421295660781329628272424809205453493682354995760594733279115142744816106608988156718350521945559245223782345331785378273072475503675745529852264757371861150129648214951208853738238198736796727335196740628662238635907993646621464415993542309850916989291479293721169144336531096703507409353473246459542457337885668868747673989648747624946749526956862176246331877060780902532043056705803290027948778336462514437525377266951693919875117592080336715898250734967333610432044751498124089277130063376663733430432752303214461130054286588664199425042699585868884414899253373903746721349844279360175544062065540235528725172347538211475302341991846128420364951372848508345114315230298248830350155813843702493926674688996525282727934895069940715599303489165240924337243021023323661593396832786713306843732387522798100578105923626526500881435573711109102121860485648739210431591595107149037989458759570053500952351336547667482247737860227666018382552103239918909537127357035334936306889106105706042090603962704539154188785103592761577517890936651041100176868709053302939667261224467000866977136570408887610998461677204374975945254314384302546660628041889187736107242248301898847886654703835876189608937376779938124505403968961815914839961040266349970418633102148280962760405302925354371699869806421319145283835478271235958478040700528674826005892129348278696977203217252724186719352116285527836379536713461148288526058579483646784089285876009460913209835558043948001358420643526383430844151931408743593028781995556497098898976255178025234070945074823286870494560331768813931557093240826566579566948480206256186741033790502654921592732834418954070057513579341321686278042212763811738583178877488172940757731061746779259037543260282908167312565032176302398955581606504627309686153718471552584112394175678876399592240716657535031614365334173279234186000892905942307277745509262945903214136535966981783692285262385016198399994739969381565982584741520890123453041259027668415448012739268966595229129114848952618208921531360831023607890975622409401629779972084645308989533199473327725952697967009822603777452056410527005590605020992944580601066043087087934467195723911949678381639489002276492076955245513304948950173691219701052482724975609238450700408296688954957833867753465884644601322197850524326917126533080633727169092161805044869995193788514169299749497740825007610526249002215151372085501023913283305286627870257487483955052420620855626965833262242818619913835324351815620277566981736161280517931786851930106360749790190658894939821937884544935407910747598852631182543447643059212718826713725725503610071718043066476383593444040739710493738432051050520528914294355926472430076601728358561511974550743330403274955153809518175331860783019323819587220395098047877216111967669384236274332368399929596579260824445336428688147646655301379505683997294709719517371027100776256846671810786623433796945409898872702942328288779948952983601903755885865872811837976592507665924889019091919239343600119103066906295340924760190000489813286951477346140553797883531386465745664173053796199311398146931535138561991002543894094384751498812246713878881319134052434303495375922711234827511427505633567200584583555717766222267516551010211032984670318097158839833527104432171337802020785736952712455843837103276024125078012549981669126796641203625170211432415240634244767020507068672346398068623869419828459182598172882920809004097430633439076756616055562467559934940456359024762900931672812961482356967034119580439986685566227182639305723644053758017622143905576057605664229439434112189778200425539334854117151710712869359226534108815367465872091031961857017204845348102272367545334181173329907074213893149196974618487621879117103553442815560793631625877949167927192149900346888882634883855079373889010632462550439476135441919580822339200975124845962370920278362935119843073152352844896762858428460624040146608184261378009977540409996103446276281095224793220493736047945783840949305258684652239586489112988255700756892485859398245300359387882112135654469717611746000355046035027023833451585735873979783103448243534011643356552150985164297860954649581488600648240958230132783644175749620694190344919824189364621124436673986565853639247677431185181743869010026706737633034296028947832983111562993598112138809245495688331001263344220933969027397283329063931916415477560595927836413858591461456995352389370012286065824900894287006203359744148428113249158652788328391184090436830609719844067239799662562910500421884875628554129512887625354456024078743304887897355632926706193854132505251507343652238594955438043345507059344965433818873928096760439268575513786515359990612992944817441556979665508266424610835221256534775917651529606491359817374219053599259408912169246442559507657277898319542499911930232201799454976212773462840592945646273821710598698735927785631125073513585336715850886634739818265484035857619201679150538980080824089117794510235120595432112157271272726489699614158103433251440113677379612501579615089440583874648344066240679330171323426925391319041923179106536126035839124449566960187881002299424568724851359770938888929169288590652431279238610435039710453516965763474652004559975668510305702044121668417876081327841266788556825466192689197887993839637507006290331321148029868021538552238902286260946566416727675367017598390811480531163929444404854887272955944262185883899012741619522496018571481208925606937891425435860198921595510606783606041084306546935703298177007110337910736990066807151457508965052400389712473291937797622143746320501021230944524721747489680544876188023425496980965667517269065429476379245937336784831616718651414292965511930146572083506837790333503612658728874162154355683717083240485970469868753774958384046638140963801221904238549536601893420389939384859237885639363274108111740694559753794198696650695042717243674680709646311342394334939310394926846460239746755728571706758777795118716296192595269247730210643348712957553870506237577624412524310624422734242540575483370322985056588612164575843030610658343409176953785446891042873445590701843193522241411826345142539132400943462232476505162108720423862867614317177137557455561801061668390183085331453542516122549666805579134366317064479134952956474142545141206811420235813340249301451823339556746196377986016974829541255147291937912878015393870347800343195289618320253037988537044504938979106997167007480720462979892966057375856875837961615675495702449407721709432015990618844735037826900916217295765655996072354305942853613922559561074216616954856198891899546382408893662531936216078948744487535460207375371228155846417815913343849852137854947777910553529961941037870205707420380582065871045109776708510506600091111981982960559241958243488023774974087879687764426265505836005654372168230134300224180821761267276687283591799665345897063323846698768439590771313177845691164481548741628059219651688999142449595620081839829410979407758954088834945941731913454254385352207712930097742349548511548723316973375427314287021387200807928029008695605408602745037433919089267136899192200662859411209527401804462394113190580233926981466052052151311732229231959278557325841619836323519469188922809561178204294460475806431206123865952965835620085014011912750077946462933124511574570217438337985308379715315780407857228680573373821202419461843248791511113005934693638960410774726030070770352285485503176166286975795001363781634001930538446225990746107216253690979327665409586810783293849429737809160152265309044701076986041241049664214687761656718333349412850600993008948766999403227302779656127953046890952464978564216470823951879350487329841434812982480620480382751140647221440189818668242257539406276207572262514544403079887478614447023526995469338929644249346895052882202211137907885672370278948352716276416429696252685849855872058662572784293563126124409412843028283345007507238601093259769089503804769003876187333634658127910503776104067200215004320398617709376718824663807483503512499786441140854071588019457464170628835341116594433167228449811319709990223226374265599053686423361369687406349667358636030408578290521319280806420268831413655801513072560343521848819819282699121068048589463845961345955757074822619739193317484187314195695067758620877919045071907094001541260660745585608752380730240875512805120394228473875928042829095586640956303887360570330264938335186130500185427552470210138068556935312430123195161606279977805958001596386022734927431723403847089249620465588145979854036041826036738582470918521838134432516648597604211978175867021245919633201256691867340556540487067161327818129274066922749643809797320461746589905607793340941208387814946530971873966764843555403114730892311624841706656457406911898390485529982491763847595837936153492904469041519258127630054735831466597233289180713687792564573836976715821911065746505403182595671177669614789749741068655841987078887243666954847228619286293417802484901082039168449540080067050729258223668441922882470058289197832752402296583714228701713675305726969480067412267822900597528277067479901416254567799228064639739636393673431425161028057526687874164730570512881406372058901086603292473458450101971837428828006171650577254661317563847474666714171665417832263213819348249311957591054942755177273476266717465664115433889590935695668637752834049903080180434693569546026701459497376477727409350597038734469180340734135890657609604225870389315580063627504264548326981005637375369012105800066997935006358132205371735920859287421302703929493147627346840605280942627255481443179719278964333433425575590321405705539670535385440675488860489719452180947992154981904420194423766468201356303973541183201989031617759178388226755152068062491875484766368654808359068429237589198116120004924902579743109129657784971190299519493072814638711802452694497973507678278155184017309108815539766800593832777953547154676593833405407807770675648632769464792152171454909993275735363731268792494109123478880026525643892251696082634106715538516840531856940313193729700182303431877519942497133978540114757684423387413231783927486924779181966698427044839487820786651198554124237524472029843313350622802485678473630061715372191857917679918241637876231155479947260738194708775209287288898655028209906048983614291991092775553009005259642754835072869037661868702268426085953458634137019686230580815128692432772235550106769283104910233721798382203401598603495351742554336530349850497773692523245062168213144773273232594144631375939973196682870382377635521626718648136113168655824524176440887264297148714113084297841061372508901502538668701151605742536363341892147720907167732733431088138109218093051886406137685283039974152395842527995299621919575589283669052137326099485078710306603529641831180266549486803559781402380014957242868897221457599686663816950429415961873282720484302014821342643759535359830991517597310984083533215824849445738568063831639452416776845845734150693076130908870570544642871419602716366113326411793099787343299024465621515757249863538138045725507444470495277345379178656074416674151124602100301580060111216544410125813151521137143338289884865492078571971723943013677943892130662150716427323919042775989202079159667198314634949553272809912788141791146894302640271158171807970000262289372397697630884843563384880673731198555504956497080184147896634853910105745938634616262424611611193774207287923383346150079917034417076892961282812804505972957287520325057452141337512092954603193842305813719136202227194940311867485975981986767950959333288877378879133271850319701031844014402752817257889940121487539621078680794194745818796698097456049438583824036655215130348211032786380793293700369088348096570448802690191545480668512260109201196582981209451233731027643818715490481254547687760127866696234918480593491865252485875642223188368953174673814278541891685549883831100115059935837567005227412773387061761714231722534729114744276994151342971491711825897414289040979360260092357598909303981283739639295355693514999426374919093524779320195402763495937293070486008983160103617908271476037164429245546622447793823774241280012526916544308047024203883428817200471754783325723977171701364491800279948448850214542164737814600293077549699613789547726513331754731037638000419047491685826121011078326756760323621028031475992270005201450844802851949749895710227487129921569714074233148931557145641347245990994538747689837347075988870977667481149861489296117501120567538192406651370691132425849803497804723022489951084757946770035517001675397754918211838526461232806291229138106332238938772023015994275678272744752527792758860659893669040760316121334734901432920015628034746949650937555708029533511793563582671466565125341392102234185667754128309087382366503732916731710781040394017364969128740173698673744876194064380062351232343075026575777876958119759355670883132175425727407356003037522027805652522009500161169349642808946741235155201616148197017753373153906633539425046539437559474460632031241059255999844393397288411833973946597716294362223729476335064858853915935897302007517787052668309350261535655519461186235745012356517672336667855156314026703102118420051863832587030810467928290490471524410680431474080600798762902939716028103608387943367812864404425281839157566845697387731066321317628351225253283186321550455012316956749354454492799483762850830495619805938380812066284003828839241370290751247349511417017593092879519556457888329496711022657747555860384467405405062941492247105554168511887483972601173837838606944977668970742794632667520824630892706758493463753892382557781283184079724899114827926204099482080305838084328552689011768855720065910053356559937680265421465681405124742372709733041653910846547537064334175776790075285077606061541442670314189140247671890108164169408157225010034464691889438954220398849407007998646578900191576545339337494781955211190982934405156023179846472460688659430205820630006210086571757977807757118249474387836981507585588963075254864484786901625682514490506440298175095911718425284104242945506875541569917666755248897904458614208696766503740708166227083113103070599806033126707850208776421706199849675598805771297934287916435594653527611704339507320226232386984083876045933299329091493003475247325350741971907396453889070101851200178195038026752685268763363672332441874139339524433002910814922834387924955180425602753940265699501731384809675774500253970919378430275083394015713660052156197918325886767504007295446981999757607670685353541325456447202838237051738339980367588836457702686640461229917811575682737051047352338529439897283511822384090878267210314679449984785764205093829209867591971439474631425230093094603513496354054672927500238772982577106830219598493606904973143873788528280749178044705390642467236697258939232049234018075294097423710052967893718192444021496396577103976443504249593446778813682446128171187314173866801379633471554176368396896953205985355315618418410852068252189131800253386214055637368449211501793481009576984264838717009972382324721166785844083265621473532496426364874327071528621376902503951980068822331810986720220923559492255934117832202696523739430114822848302019687172216919276314099991863359930417363202825641516075461200707580833667671040840209180035399689928680165481177882620123682002997169127801463324825515583821020562563940852282679326789710130152533150032488043524364108086912706243053052164094649080968767083650450530867446230292532430177283893559232589401305367699458006350031664699954853739521890710311782483178184814757178653377465050615742496177540488585537142572462569251023197858296086028325852721433161647194379230591312708219933024621513214808420158704834462485277025152134539303186022852075964816619073624879337701593555273352559976906594826366086630941742489032462096644325497113571263473302667984118107094446809901971134884417340214584457406365560727440749401191588954070309715601096981914309659972379478618491890296710595044282465915670528299311727745892912820805169959016417484514755483839379525124257653856110555011696530149067879278769803572691441674755377788047172975768892986992946279857170266745773164095117347394926431534396326814535709423259896939787685690123250512676629786757153680547029696997033358803892352171367051370531778308581544285235391580846424937443533863523162546861378228610984305464799583075382712295810019965601023985723686780278222268068776375303019854927658208101048509406734545415500289481179330428733415270060349988977814591787194702307369251765988795920513498822147050667952671955997620471693421468244758148778450902916794928223626681665163419011923284824574740612886697073682993342512074476472160204113215337138866289801324875548731813304183601566843259479713859837419241283203121786130971532483985170855703953923115068457053927523005660329552983533870950256963211965962968685789902512518963928478937935113948301989333075570354722624673082452456316338210382371325386187747812437970509029404374628737977115575027272050106607397893458940748025700126945371670084307047781840408225197358571581346404704000394187769792072873067413840426708041460783368133878231362195552997591716191391353862215538448274807573059252072564437070918847717456902403027954441707217455155284054920291230337176078449980982753975057642596807152647985983769189481308542828934410092882951519403957795088294999444207255813769003081993650789311469812987725209182838081697933792733830536404312155014433855095578704399457614200199596158263960518195464690116200228654939664262163611282468954681453992454417482103686042342536305846339128622972903214052498316177573348082704894459232362516100732662306171982215024803814286012674365814486141690275807739265914575273251789662807600719432275514816482489076373070149202722958204336838047632508525948372603180564068357035793820601272282591634083816596229677134158541584092505955000186252398227643292533111961110089649574351907862456250491409572646498787541862140635236355971002313847175304981653664139104598425063743774186357950286529230611981988636913735035791551905965291486086490491637012821394215760636735852747175155951028053478205138872391296081070068827030458260610508266890720085833611824916086509660303262760527939519722425815332717296944842239780943807109151381027723820603667331142504999981628323131028109528543551570539147940248977954507728400180505594187211715163925605169076398479003190714295147779237096888316390701701461779434660967420816349334168464851645004369688431948930538342859310087265454625638159342024686153081281122797226925527137312941713164414160091485939854071939321751889402640420033421348616439532224172456922330867916219492978872567856198796764217072897691926153201403720137446107858793719451280782966104680666424865061446092917486614350647099228855353099963910999905193776066270415447703754154151804101217852245047966957201640910848728859506420801961261338030526660811025498679591222485891104282981751000054098845435145256947927201577331585579592380051973598428589245874785678605541130929140997474384300379298852984278098714446792794753043952740872275737245737696639715159876914201645209143859055461860898075343991068320994899871843243277857386687001832830574549971222007721825167584024461149004614492523849826341650231920621766826114299419015116421893379119708358543150440963591286086862209323256623950517483351159755545556697571968430870825181039337104127292595183062800419785242897161106914832799531323835044969743867555925986184364240601379076694234850772818697683763736275371618647208882573743123108701836878965675373551720668200682724380056124040991601505424293462543968312354993716126821829891890809776386364109213223128142522408285034325720304839392154975086434792610016471020237221809752524948555950821203685004385664772306662722567304538629969444779210764449788033391462115094286896825247969472126442484544976812442642103043661065750774652834621340537584706141499510820117779058536629923548930903788920289003079921868355210721956024007782619407712318733053156654551832689187965109978226427767357854531723789622308223951389477520030201177588872531203959384572016013197851867747720528382228516825254625878686033098425948822567175160571159483180676907304839949444759514165236475301434770166821626297464066379171406973649171762928388789366125992900896269479645385678539663320372068464793407464158711189462432868560965390364933328887190043030782017864582844057767731480205286020399106850875266959763633811990012595846884582168102038425131157578156859289964495417581765258507192653047261784887163535507770587574039217116635361633445414438153149730098533645317676226363577502429393238566354038511466748207147068871660450543403382380212381068255634552723962191058675578611556863842792857358746008069690922865706782457826176862840933816050575199445872411508064181166719897144965092673993341148750473833054178696110186354772965359544559675729921451108076275459070695229051493859897148360053769767391916052990677700576246663298696445760536941084412377199398775002573970733109845879231179827642302862342183818257922273616814644073836505173184512692991968633813393728435636294265760788734249179606728597859183224282149314746096360544997871065697979060603219193923885573956295136113774113447014841466903433426536382414818226264998555829948067447327096082878097532571404706990177573291537612574583143256036079783399504258159425748247070349187830422186993308223439920781336068866594426963149225266508257347161718400937509919859824940173655132100187111129236668218272663837468120645686314615158071922982987205768142661617363291708549022084442546452357743121452324214224620740130403384788859060178039892995609079986396118044162507056917524471513992989259623794360663573264214741699022463797753079232632182998817737137446499506695538619823323534611419239333684426545173488804208749586087767311850818991394993439774023215424584959448286155628011509446150609615178864459320869411463476444381760282634136808875749424009166512386291812123025364083003405687099961278070149597083010812919159379738150882916266557526044565390423105291767744190866105608968759037974800120444226411747073985308147712089075151986666765770670344615393744983500674814885170593191683126883850782578783040747151786692404510922371394416897618258756141945062027805587558620680067467075342300780221689422433470867125507359780729527447631295248478030098158122032404620282373763367743423729589276564274871634369193696703485226005441940931631609769546231749065818395890825679905855386599903505503761828531960715485518388288091321386232654488073909197880151931784803742771248469899068542252709972580177239015930481377779558717780648725092368841966496028756514157812867640884435481226773967246344001056065084763179390876025169059897299301798458193571965084167905188091136896354051160989386185816216602863227593617110024422945535176335166940034299551641117913766108312557920989855293829758240754296185012010444161157938048732002941785111338793276494293497649589694852592927485353368791695471863795126445544842682502328175333192133716068843444133850253117789940083846537187956210549951429404158006948129343996899759893117936091841453915729742063621989568085156128799841451131114390132318397554704368582304019621915087143044831154865233727385410527456618525627294708050842624483659368072543298811227409621303020066466820870938684613331414910912441071046194893256628614750472174267637180427241674793276534124549232452832004237980717606258929009243377393518629974602911918082228661566344920270435481301508959681047898025693512199581113352870889772648904713057079962614668767877933507840887918547651926030821195585549207484205593329929834089034454312629104313181473147089564947206633730854071072277881916169912504025143689370434825487795555223664546956204113940079465910829234974897554762119044313731198048220240151349761998457782548659215364548818601710888811480137742227645915183628069254007809986990005052798611391153899871647519699887077343227832646874361680773513234101271602095697999136667065088432725942856295141826398220944284787170814362055118002841654306997967341339293995839034608684463469807138234626016184548156949842463122152470084682309844036969514968290077220960577241609942559308471657794972015249969953371584026776737456514718954450064863818994750959797597741862040809067494116095354803049212495040342002740164572707982608909618185587007569098540863988925540267013065850451390031762434427537879987763471746470519945364350659266597040502006389467225381246845722391395247843565969499201942826699618984887243196288846629270769808120639790978772081382566887826953696894633296856259935002153012393896414825811343988224278400507327005795392327410956336914634689111176716025131278343688335966312684644509821543076577152553603178968325753900496591906828133385104209122461174131417385426828090238797359374563581889679122820541778526457412584965060767021341088200723777070825098369578003450634066530430684117954321453287938266973747004898884678511171872000924633058719414921355657617193953929659337084188406355047211714328621339779032804539569713107729803067711992939890957128372737864711546743762251924412967821632402746071740226555659604640560741837362565397249758251114678741785512752239962698402220821218865717492581396935027288269511123244255079678170244172049089441575857470318645918026745374540983523512443425248467591172799065990905614842552419752170832682252784143949388824024353851921048422995222996730758957108827692851156522730694125369258068129633302760966764178874297709929765095360068275387355096920007063144685035783371447120915179716717625158480372894455045528004652040221147296522799389534309630601618456862092910244089204502825061918651963639302312575838042253019634362036587788017177192923043498063325503024637407076389420540701073575397248291726601620694599993857101333269816975514610247760598713297240088578545156820706754942153909305395669157901499687816681736220477305662132280540900536401444572702427126674943754097923120140043838474186555413720436891184148434137022808802792991838353988093055182654098283023753755218488717295976299516129558899856332952806339441555739200175750565292837900329149848179704747602620597914294762551464317031939110075299100455779254687954992122791758836896747129107672764714820373275615700573814919453299448591996889475857469476402678087626998842056674765271974367189473498966062212890373816693786223804190369764470265790632809689589146480556315303710621269513923118844478595495885169574776742007764768176984277881655803259943707644177902928339060211817893441769964037069203333032976604470293435563363229641012153160141998414465990012055187252149882697883351499238751928213708096507935501012261839822013749356415012603233163136065949427409043364768950005332358585172824232474252955883704758587505119812791292928639321276422225426779239476603146998768364834922835807131989876472445793299827776535563440730653291999515109320237163784456617203625265697667319255391139457294501131707213227854246394476647210115733038531255792988530987039628134610274321565594155988980604578482896218211312494438646665007410260201657531746707646423885587109842950230164538004063304616807287669192915541959097015164700387210538344699415725437648888617301378760297603386088598665903298178615916638578860245386813411740617894969246484768783346963479522784522694293739411877262509831811650248652584263560148088439903934890092733394413877333677560266573426189349947448417388337870762030610438043632157108809441776376237365786395684837310423334531266743857451912625203290339259614791742224230048432580366202917162232886247704224166373095254407518589552064876160324336739270905144271291223207733152815581786882257529765249701907876120911438416369322681649346526083059717410387444159991032654405653081175147250185209253555715150011456499500354318499247168780147234440067242442103847419752528830447099888158109058673207396923702703811260433775481491995626734932015362494642803671692613594060705950101808368101753746213185224804001547938794680770285972927059993194630324149608952638563534290139321864380892949320024780663898956059724048923909851640525438525571388367153031512695251968905456451200903505031743011667602551862521337466897696905453058244632165897555417804266321281253421122177158848858951892727318287117852059374065237886750218016063193543180414101168231346054167393717776578671932530488635654192732850774767147509511255662974050693628108161643031487430718483429881962423161755546656071177502854199681643244675280306365800970043881658605615622628861765426741850033771744431314062379748990367777620308863239790506145273980856617870084324582117761432245828463691870366059623709833979408515015831817870502321913145627790925987091384263415452321072470742414079790392595267326280994047343713365597011549032888261532238462666352461934987678263897099123831063688599824815315810077410110124523363611559165120260936160019251710615416527924985992873138386370897677471988795433376193124873396124037579290004016867681213160489677569129226716740122209202710601736802852649650512745743234610495391888843830323817701828509217768871334517216679814829901467300710612317340648475520212385369840973721018707494870097815026679085384821996078164975308975442235345372229926685920548097191822753320118954294856514907375339379251859701685436269509550182442455787941619763630099938516365598313931884947764937410820808630898838164887211835028934998360698463628603320492346924067990375517382092887562894921402918077731352180504426767949016980437466591370050123414604009708097615946696755901989772877000842887956390153824844245325351758974110316841125078271378859290459553664034159931224049440833575669998008870047984941104476984626787454230080596471306500631376866555355750796511461420478867922140745206883528864172892389597818585286283291337630032075854643426808864404255234934308802793072454496915041072762755615236981534020670289973570397212582716770834279734030255071220168092274534432327598718999791480037243097933730213557463240593994309216198370173788877464793157007572214051603264601448252274797343465899982761491597531391286863693514348402540732965173660244450397132349741297526275020552640659428859177428039667431968992888322000811556000851673717848208057854723033289291390902198416934364024417166093071435077113860168331990655265802783662816525058103877500667242815813874020765334472071432161612862464199454848399730977649526971693200638590667181066171929050026211877604808018301540554989096517097073450033764342201660598564037171028758801157533626334830909115518938635582053632569668832946627775191372276008975056211452015847134083359427600469992593703469433179939445202460934199859839227305379606583559566559532935479257173997143995286985327988122432588345537697661485057315852074577863722690859222465412668728369633282021066358273190489202053514730395354489662679534888163264360133023887773161772153042866633810963996137546944513303301986882186620003474462614746670531124655844093543245903829287507794208059773836717643935403788932375012042251688026570786145444657971824297419529611775056636511570206800931363500777047040726502954554008206322831836631094879395556646631554003732981837200049830658833873708577393028390462048945991109085492744065840401137039859841909438216353027847125522383344564659938512503373743146394623176680003042354095834846537319866900586929510617541755554833847656327372668486998527231525305344631280965821537317922740178160252527019354388244923587597829203700477756214051817652052057736186929635575603548356533059922758322516150315188120395264921321703003212267975903676008592057781064024981448748458905134449844457155043443629660228908151661764939369205263348087591484914065787817971635174153585148951708447343053417455212629864121028375492422958242034826004455367767762991713054189182196266857634357803882101505576272903544958425350761860437631274359101971214339762139084952882190017816894808780223761848536475007197677630238945844868317587372201211994757202653260557391669342422461836803955215081367096220219725601670336160509179339840958663770224980214391971671913093451888406581047693263497543394060177676782565762887376346900778937879977544886542957611655022627290307809060252793692212984391856390014786938256765359834021508778380293700494238904341041570400014480643800031690802004201949016523064039959761948745551630624895016444169559261677738459752420291145689252106505019928853102690639554686479477833024591930295705969866769182157459965501673975928035512634217614709887475598780709571948254138798024511447474700816334184555674118207990536767359332225607653195405997879515433387663697093550230480831218086912004912006845808663313746553536335165144402291004142119861649285116910073800968051663825441488847878171281237708842551110852356883065246810457633737758197792285490628572270267833868158913830551861429628078798460837562352400548586782766761231149568016728044913877534279101471918761828275124098985910525390337040072378671300087150144097239029746271817708988816989879898259966544784368018595449200133328031323961289430183164037403020880974555133091438638718039475068569835019367055370460649933086599201645913210886186546174737691430823319160082835471840921224381277459318639376520800500903018944525808149641850797289584983472615243763062255089130968236152848429356069656257735339004096429292957777121977577194877154654464764140058094079305125348581996533799963173179250432399459588006945544323891804877327784626780446744226830088475620999279136570554485917876002193846125646074653104293956426788193920548912357787322602934089203794098688918378233403206152173332929851143589371667718786232012936307714956151688184397982158290462972907105057565761321486524668002955352506217615701988910159060169910580438213228536667312079479140803952529953011069867057304511127433065106419150235419859476095839954103958292686177957330701803541018219934448927246126536190940851527290006499074600651702113868420951191710030266662915737899835773617703717630716114560461175155717194629367407092437338430004390661474376172857756191681335869679113004810959577290157614524793449840794259039332763753126356983661936873400761281490009526996012336546480537501233930355662088197911590575850880828965270998026885777950462470310920053605155976175941198059487913248538224540519811531011703025826432647577874182856460843593703577623314912484422597012677403562902279710454500845785703850367141171969323250220708065026169366719538737410388812741626179729621941787637827097145012857444284709010897617245909394940396762351141027165002571870157614451235351878800225483853230315124102004547817416636062387455748364391409262382677356595480050528576431639655660724921328237062801740115199993790425848268853906638227038689949375016613611132193663572863160499790362572948858275539636550896248165688614199393197980212207379708000119889004536533026529795892625266828328484340567222108646477715245627606934474698106468386985343334003374442351405097585667904603884364256070826136733931059154785121263305639477995476375285927726988484981789637200874380520522470014772747182702758341841264308949498585368323233594371655659333290915327463971091967986739269257650078895707863380898439155464127819635566958277508468598225905363479816194093942271652600310871727984960178558573705669835657720048257801497611568844285755536080826574812930716693642456272219856602359501072867850060692867649695107132279111419331368348825841549539131807890146230232550361659835844305414380861177798343759274667431195924310368200962050230633465788404132927328791311499988152064248651687110285512022832901129590738657835026624709882361375541746381139356064027211933800362539438869575715683492529010776743990643492160312264004068492176892923347573148654006731199214820993526612732555381792739986391011880459723033930453121465209061713618001076023286281495967020022282450957783586175454995413309585955778415720870415331021060804183827059775555240994937316778484828129219887069909275273298142251530582407308081971755966825621321359891277753801580138065233472453113976918692056972569804396302877238420273289679822689450900189076276528301953103053420113678111496772962633464959956167670280658145343852719192195426316356002440246151665351784010146350122870240685212564561755607798187043206269224016972490060874896629962022906848381979214878425402829771709398745493023664269252919111105687156227709799421895745980169973361444336130129788914953615764048657607059281871623137957732139729682510459301305337627047891669398161133988781725894449912662121576735012383844022973898514416538905959461954385405657927280009992058465106340139435795332057271616622335622235095634871870333788551519456913634583159583986394310971801006040145697141331704761945273551579313616497606920757930031013191628318868376516401345144383057141428425774518687448799711408080159995545300751183608486655740483237506410390107084635697530188891677792326858058009935381229718919294747355319608620270367338456653317236082095064168514307559781279164456246569608593078585120735617856210522768191778254451200028250312504137051655542599401928035952416963465635091108517295590735374963094804515444065644003062954799717808521937610609321634718811934721716861253827484792501076981514747785061670031239603660761159734966113599608086454780251450203992947093277686849087288637145296970442564997433542087035660427510977258343178264962610200265841095567433590873752357742001069164509470202289686746464275787113191319747496697251520556450482937802898985112200632726779801695325527845966017608151052322326304617913134598607399661202715146173826234961172624485257523819767645731672467251324720579741407256771860401764608639693821711470249013311754971754002783851272013356414788756183178661170280421771621053256067604636043614271475950333973341635429082171434486894860728789034348658217966424257178856073702768082325678516229518313191969806973899773502018624988875593060658831231669097640775508199444867562237199610706174307353198570777441416379949212606542592424322527510591038451501324905879550343623438580424763469140336305216024520780898093724016581668913111157841835516251589913585801430551104344867805763391334393451870531932589404187402430508610815421188701546215758127789420821931483204243631982893136695966918934289686138817948426564242015776850576211518067589532753173729700611446792220169201093671754513042854955416526643761731651767884593210347063665674901817119340183470958906909897226857523739446960985130337776019100543845897878574986697552899659294493407273951439735496465051621666074260029396164628962771658472251661586462882852713614566584818081730774412764778319878728422392111150868347408759168292004698920833718461621752530636653609476481767427157861183619042941089426286916673554730602676417374462015828124791387086299106491828566533215096486900644578852615374533968253130293652347395410436297339756224992075651580531678494999849967589099718134947762431052804654007106569163223998174125147121678994236171083866117952034497141994759774410933174257260549012427353604822562698676297723811491934268188355060078896909759531744845310975778398869045925088457411776788218350035595276202172920351060711655651054422213608370137057410749407239142738114235876374481515451587165743458871313223594094479933046626892400946074451288974344649208967057888126255549282844945236004647342866205713469860116770976446844790921844872723201067837884977272348807282267851815368203509599175618566375269569277321403699164102014133786371386384146852718827336083744165503549100645234202130266738922782506114489586439600349738509027137574177805668929583162407481540987444543858671889625639330175063991773518731170495293908655054144938259328003248585811285784376343201093537148292031052815975721676180207722889336211711586952544776093281997316249278922121791790496803931694990540090943468605306385477446309521976343884295540204852011381481318361051259839195148919642479293127072876111336313198284982457950345967451888973710964874243825231179251419656952916806347762317778150427359221580522387975613309303147883133821004948452383562161907611549997694332729852544270135948895425199335569732230393219883376950804336644123409138674997522097138136955442544256935092023906174739229590042331312477910197948369900035511978660961313667685219775081074752943436195700275968823044671600150233356185675579526438121576788962331614853841774724493261355989052115907732654024959771486788029400746193320454325202401219588527337852612835497086784897380687456870749060397635033315333653617514854826388865844846396061653723007853088976402273459477423931163651897922880465012649502375534049866922186354106021754152803391406027190789828381997946166146291736646200959000525848484451934762705532010614771945752134187173563703561597289216852530516874878548941632827294508672303928128796190583795225563457226168505654367262173697329282786458218353164564823015677505739594581787438900898253597852140340712001875042346293543524594930121969560076853519612358458957404964425010743771067414638812908048350740085158946031860951926947278664663517707654481916258455976454556340685722886011698803110356069524516078711856096928469015276472129271370652672144093989209916875428564230813214165116024577637896540643647361002053376257343528027501060721670630194336691120728432076561563366539989293455767140172184921491665731892715010550367113458123066450304988404883507054653519275188644515128507688465328119614560828671124606901761613538102472136343837460937498762427522080069896280249554116125761596332921430865934006881919954497451400059826666308900109001972923957589475774558881624804221797863560124914355312433966218054630053143017924642009540096590079499232869089187876514704533221717834566109773217219236456279682608009606976485174619185989664985239813055732983339043976181986851360965345367361583148885929266626269139648165696807665191263640838979490120844232332823595072518677525597085532478159807138073542961231092245616047222040866677894726973688281386877483139207553911095974190222540552248534102288470956453220333951032152489648569231250423393783628695015001077140229675597630601034301347690437402887277783148831451309966483441142706914920287031294815056470778477604265819464075576167468048879835072597269604554882139231244614678150599170835900976431086173082713408232750374229844901399437767734845794627806878986144602303057259694707008499433404073132158882920357499962334644653388121364093419039973631144466169205007181796964327743164580979544222296037600058647818143667709940802351095821632167479578335328326263569683901680785014674432630457716731266608237240491822892911401744372329059708230618044098030310155929941786468781524650471423199036761284045205230406500219555192493812160406159292876230479176599657486968668158869880728765427317898591125893190505065560518886007382756805379331407650291934587616731587333307770073624053763571093620794370618835338323995674373476969283616916362946528447072314388567307426945826952542106598331317544620349412821423710344485780142096939103292855639921130759722538930102673136633891079575955998262537089135267776240821451654143357206072476929260848415584018376464050512447298103835333911649527443472251412095189112476692098711806003484560683822770581418661145940420615869843073430031643269643782500088508389981568515312500992365694045138265736437210812095517086362261334719687384439096787880368794641776005634574576706906581299975259990886004882458180712533165745603043446272159923265527996252191838272359899801607286827109309322830097687861508910550013191829951751340096487032127614296928999285402352288325376737197132183733746581174072340325918217835685620576354714803216877363845369554174738564441172248498141735197440092877657331548222484022790019513866381687305377267130592462169857937894620034887295291451278936887198900208894014660161368108196104014437531828544906852769440285327391649950362221129712265655834053360266342721561269652516389367675455595073014127842259258889571413007777307856137752789933242642096913481950213002123304335136905214678862004401405800793779287838560344933132356599583630160559215966245405874098585304868687348781084913946568823730246875635879598979933726020077647214169341704049584481011033464943837090560608495437234615807629252672211264875612587285933910082910101508257164004067796082356743224747812732773832835690775881882014063705307392210811619305986479549260578581708781619078919193810285883805506102576781646820251256984621319055810374225683458342110105371825443631125298499208837801169944113105811208762732109531193053367153453818978379271612365182889285817432211083727120186582223419683828743653056058909664292551538863963665427655801167415913778961302487056507715753327849472351474042995751828909710583732136920899365802036999518481906395708478361749522067334438288829485709680364683825237624161205141397682897418437488145800888152160831433322853225178669329446509173028980846152385669901375372549409617299773111798298624554703136218609309671456106369953658942517271105428489885951910779374285152028042171849730120747987328337020091084050745819215903623349225842849885782606440079191960509853668864869281804987300451605986124791528707236030752664949990555545105620704678186555632271257365660699329676134437465532926971634340673257792172302483420979476114527504977988640593176590723367066044011417311879477786155862971027338077899922307784030985183987981943829471880248850677647295668063238258902811231645627763402809496887352990405368360146591539201617340799452857417276302407822703843506272127202666929547011590545059944131266250471194195077421694628203897674959365591762523183706325888267120193572350445881265812874104175549676468098204761807741708825810459994649449638354495763583959623031744027561202452269886561333163850367217802277969428891052012994060853203833501596521682394062827845722506513703775997275705769818556873011323071309484032048539978644293397074700922671857957966692454473773140803329442213119675984965135974304340262409852769941189395411259317975454590163574888122149754423080002065546832294829479019993907782232409920134258224943621801284738246762123231653195715176539567060339750360408617936559603570852730778238229827026356002222816986980931371251062549811323434157037413149786538288076068421919813757200462316366025276114578655342223095053892576130587488250106784835783485474706022525808256605473756734732079821980738395826518531488135376062019573401365873385876055667846135249654532621321959856459123210948245592842837690656449265931224265467488863819590888712947364598192948913619623430563738396867945820255589380994375385439353005623731597734602371519959698708878676116902885952076079112209382244887779625995423263020534850120554717306079028626499604722331435624189779311227583070270869215581643692576116927525215127763709027644563493119550258218770936052561067571928770418373184529603382931164797806381326857261555508506708656660593491262376618783197073931436670536627232034837263342899647532564473412532619076254764677832650523723687160653527827834886188311872873288019976195782745511385711377941959700615762731324443856048696803233155578909558167449597781591550400705598308659727611119652181210267837087566387707394944101504283049494354291000081687217087851349985457517630862980040769773533410402849785363371830703329609066286693833082367037342321328443372582932652749454431246514502514104799016650034707373012834134120124307329346324915879017356604824125208229962741577851863617094511348335024637377313890291396830805911241937683388152833175691067432337840718047251873941466543057708129982368672609333441786886740967489740699357368722494456259953704748961509871640575211570089773024113319620264425371304810241363545960819974616724865464664408498268846995568788528613407680260188294283992072089437649601279888574547854533302607184178821421551214171134124002615265807274186535596670880104398500363125512515310400532767886619966824330103018043142119319140010056849578984301753673745100386488179052752147926647690727822066294010960452006390665843275516556151028991585735120322802126429832246122375820558877743148734176094321873996617525704219976704172262129578144383159723503730675863102392964692636392726385603801403389341933510740045037961561541119776347679492424972885922250804081300910186034622383719261923868044641560870186174751411210121005846113032124658082240596946983198107912091567141292444322757746740284730044994361160169225542029010383784617513494364899988636676739253357303930664776160560545288171181406838239059425672438777212759896923161196897007090709406198045177861581751640327953313705372701344622388034740027139306528997655134635681677636059605808635813851753782061399423358774961300286554815846468905044843880227077137790264632268273546985652930973425771396221961293745155662767601635998129633136079576784604019012456838841995626244358733176809487360819598611428218372506076016711288975829211046453608859544104199216854237443237183940546767770023620853406251525868795749363948707773175880327415183880027773766102425561003692386348938510070299875097903337942741564827119491585493745836398297115702148737528098370805449583927509697299019757171440989099070769785783364976668192163761811625672853218767724149934974227430083596398537700130427612325047697887876234244304960374338753765680124499552052923104056025245260419118765953445941884518574196943615740523426455712009071170758847271828395682071978912549357347690857225839163409326814749728729251074208511036436516565645902749184893895952184437809025489048113911618654121852916370952197493453271944018108852158805007319281353475006458944845604776287444241383668247134292700800169839555567596434190828298583078932846308419470268621301840187226182628068452718198018658353852726866430446185572460893820964305537339303179179748554660478429666639525385718984817385539082705653399251097037987242635547806174550305635973020687681169661623431512298777966335633975208338081292262092825227372270361006693297700914913510132074398369084087547479760070430697569205663625628202201789514493084678022272902898332500716215077090925969271773169289816953020973959235774798371435557527867022913897539165207548799508029619491490243618769355778936597972671691896099440671245570981693036048276320203388476159716517717562987055397360756501682249924647517405881168573218331351850507342752365719373492403422867824308183141497255489247664160991943098560773742163673105316897390058688399880650279967046027333195653394825384572828868967881953653615587059510758734420765046099801501492505593320217139838869149911213541871838745598804108786963772536248899534097075892300937902943526201322641932086474594498572543360071795383926781241195247365494629296951839475652901921305371760434861072460541043765215306986835797315397014131784935666340043630797737809656811808686625366425338989886751361162756223251260126848660921889178083588444799016285961518883173315646167744005492260269212374367778729078243496641997292612250261782457747166046303033937414287337008516988479956874495523903204191120147937315706025793952287970919514810730007990250704743828750769176306714787914025088555810563176813575942395681010875261815002410225814812498080785030486834081128999019089051055719015542537326604281046878897879077389027103505215535402655052527449279674360733266907681140625783501228585667440403707844234557974103429689597575717095489505832699254976591452070432302699131979996804514831533394956847439322227179239420378558566178105976707219913387425344908952956264590830479242138298304556979818806609555034740310862657213554782501823589657727498982079425310035691813041648610545772400188292427921283028490579324750686094545939805922924251312129565076445774082294123912691488138486437666719087292385968426241036458624290069248526531174238043899497473364075899359067926214878971164003239485827292722959693355588060526947650748245379643648244976110158202842326272657109910576280798885919928736798873117389582847333715410348200851451792389927368659583356219455414154225918634364694525205155484178594209901457213335484214592079596994057444621618691485664105084162542030465182909527468012637596617948432373131831310030383045009674639071096529341611679416402812221946693239595442310017035810304000236630003194901203187549433709577377170318040984732582834006458350046873463328780069239009988164428822744479524740879890676708581552717034653716076459973013065195756085025123429425243532164432136591302492091005793602714660065070617109165955193761239556139938589994656071967000520330950651775686448372215817254525509161620216070520335376655785968531148868785404001991871397436490649350303392369951934802722668323417344429044713249973311914678163296014063073289018789008247423177220820647876496284029080382974780439729910121137992449526029157221441130469063022356764138574005946732267762953615463452861802855848960071173532183980274956235448772157212205393948316360569672522358547688760696385981759957713796522500872449302956207251248065463919463460788425298415666737860278973062760061981819707692937270762132882186912785210288414577879576093716049962016341605870539277970129042438074671739407000575393344862561297081764548768690886807017653047470687187931857732942843441876201298347759662853809657444729280442409777039343882357126294158889245919308157664512966474532213184230953127944006004221863401309006779140086105298335297251040673218689149275070387573969903328744820769204587237564076185454877970460694809230004417284272769647135349606715048899230515972572544388193973537694667618932103173739330523019453436074600524286187186103783978186518188266212956173588412572418176756465587144946818933036579183893670255362362027700479604505618697558142254956556197502640996411374988225802556622477822655152464483118857513810965216677037941415541436502247248440658604296484040735689974200448569647346258605073360186217317637481558887529792779261036985793999703914187138285387283477279003744963572165601052480903264180407141087678705930788918165536631228450743947152114138748771395203349846181813908548082241554949711533774709887253900755996984849287388672527503701217486448234142561235172840078254321261122084641362515451200606350989608792150284196148276522943402326568705957036686079640551391566428730986011859750366414620759022160318340394905214187407271365543379950495895598633728661862531130076316055580139733546135181201092507908148233442732357392184439934974634373529002222574128609655969226940775004968814967519522008488639341516963506231177789283721465257837545505766294729442773659977600057747161866598681691869709892395941130535170690678878742665722782790880616008418221664703686013130990993858957424466465898132419068335942709203643281231753928516331663785063555124289926456206198323358952169788215047095595674371707326880503216296505678033326554512620149905714647399648841632999016878004632058969826785954158898919804630952584138159773728753497564565798594635943103463597821412797142415565505956481954298923770358389973315349493605335808648502593435867071379906195873308191132214861108779978121625702826255857699721152130105904350833402141667322407458641369909778786478332571047784882571843245114601441181232845675568660957622703588323141578002530658482494012711325841949469495266225200154074258585987730497596282489515893982419836234092240788865144931635693881531878117005997968050955852480605143064526733719734379190074198400360336766571481023551538212138303383301447239743592876250626417719808861162619164543083019879849852814450091017314841590049344174346792740879301967915807396943133025158388883548990218694643877313814981033934302977823846324565490373138455794412552686627219311977482977670754654652554949264636630040548900310572262856999929948951755098082638996289754972574878469787337838849464018207937986586203753133586339807730541759118315012710482943062815886836084250580084479399937131953837716594249304727916057743226564501945492286632040606114508406144373701160992391005316437570281734968116158289547474642760723394585726681403303690227655834035042317093896477662327155439669735526787606208957900038202357382161313051278200367048940963767248915253229059157337361408550168197862878259750754322605837567530945245352771598703266503641256358346799870469277729537484401713834340365440667375096100432417045840985472201325284726411950209693297363576685137825040783926659188301527676532894579495848603133196901077245271946990921967723676190912157399273072262138752932634549634139672127254028399704025302071491889175512605945603123323799105309578420102715017506514941154559033353690320271613990137919457269483680952872734016494421695233519219802520225648756735502140091423847929237966415441382469411039700862904359151185977448525921459008034071991918796447310485192306889437929936122526320504189537396233621804818534829692303205698968932468723417344725441843004045586964370902515725240673254696087805154223796967984412065931339273099578793620046184260923228109106917983086799498882261450958517362476487741982568948191157873911561367591030838358993383638759873282996882792657790490788566354459103605452330229440487443583070765311556542211018673712885692153456590702527251594947704660199436981883173874149190192281900974269846406419969950830967691995585990678751315395375584510041620376426292505917751750969381445412738880138596276245756078896354948301205950374176755423173885994857345004717906645780866502154444399505143441603517842058305091349143396988363691269059025523067096881442954668269738366736432731353580667254050310017623857708555869343990553071471845124958358764919249378516240794628536685582866044905364127146631589500792162799813527127594155095859957771581741786883085017243247015847737844074825069264180189655399067664192579981065440876795159270487801983411868825817257576757205336578098857313746802408698211622060318131303728984444240454531291394981212055207068291264503044243313819455703400766189572054381968427447542000019977938322379471039883229134035711660043654312979635073251388631302232419965215271492906011218023449560058126065055915647634646552592217164394683135163467196040220877015082933202210604872539761725164919264634004737728246683275146476064748012577570601283238694199968893616165948717217849841110964131873680644251470433584420439329719165333238618069292377617817425088474788150448965631651111235642659333754710003136099502349337586924947706674626334515915480823950673470172252510066409253493499751131958696199003477902824512039270386597785319128594898777830493094291137497180432483535923352587705539547513194213121018755249191383782519788660863316569769346633840419957003567580465556723287331782468308709176178893681324719968991738669705499915984045640574401388858231368084174994375264796668606045762258321030881466957041373050498638476943232840433459431122380959894328042539343841735268186112334951020193732583940633436874992412435538872403141045782378107782190418784419745117788819487743934778560956907214090132074336381165661875014989401517529070640652705109491498163171304010598388583090355007440752263603255229869452777146858727951833872475087931461970262260771058894540208074137651587225241691568077105399880631591996167840986340900689522960676188518872541106651101971358420957592687137572598428786831016209827120270162374824927944648888783860447077135855117697166599681179310742796663506738487593415759490305763526576625926651369996452893787992280168101184935357929249490299174055118534214739366580157211823847808539924472931540194777543000505265138957531944757735125797538302728871332280845762959048435700343245938377989191102507037750289333984773860954549381017283027104921136702687225279957319512965866906431090707137979236648221341681668840163050100522234886286961166451564559640438219708368485694962491443061666427777783358731070901540657351855201585427944278141594870175976172006880920105822161123042761132057983473071954530481343839608446549442724420989892401682995893920048745263968805637275716946382166230182731503036136060205790176926873713970213797863443847841782722723799730777161687330615122249989751257832232448828282856370990582833554185099396439905656528119365819267292851615398236806576247261051396564152905341909578473080679151347341274788468936989896205306374450853028589159544311384696653065158360579979473087337247986225071808440112881345605246859145320392093196869702094006996255242589608510348256092782008769915089157207983607935790772482687768686675660845677997556655784003702244874218592329163604195600722682087274142569860846434907164879977354759459224500037852431166230451913990869290902409978257435646887830153626926659551911593810973288327253467603252601415267557169234158745151395182533538038428711960946716131127031097822983439931895518597790141890865992967019774457057821020284674008994359190974232129339603764928946301795638477230876684004530483733018192483161713642337626483334539786287438401539764014016385767239883636810313094983856279987690704532090601365696649067916997541288329263256974082139885648776559950039979406681763128421787506411067839470045025181740721493159150804113737824817344715010228939159288930005393156272232502651003606977006076739098824360210176267399891807675908031904193262996940421047634613360454619600505099518588948107408633896757483551505011276329607704421708693146217004471893577563440142916127879038653239253429827926645609690839249763157660008304717007442828346109570640527586036711450044169851923149003814393062184626989701564342798355024622288869218358613833334378228620524860550868573163815329839674164340550348853156166214878623129076649396034899672145936929464254813486410223255916354770125646134769238618827059640547600348136157740506110943527347927687629248157073632466412829956517680638955812120909379770806491484394414895187506358046617366038960818585650972533800155713186049929605634501191485266446824214866587359036698296252737794574662499566030371163192838831357156313781101919368874118429781898088793253803843688195529892109765229935946937348863503625500751120220653128049122663181749282652071180398291091584400223143299772738376942651854006091070361105023930748503504609459720969104246876845402798561660303859983809449488728168264040284840403085532009736749310791991391908015620221793962927940875942423461573062150537648404246460265097871690858142812186772574010481522828823086180088637720821173400593376842290470466953369549651978156213662027360250450126695002176737265648746206092470624053621228987488585350267448299412878929810173033430204310222092702952060038865839079867673480292477567869638726211021041857074234507609642527876818732236812289426052065269672224216001289532789554349404632517803393061159255459156309715642930843789899590128300153348175968508913764855978019042354190973102723851436343146246913444169682837281893654281418704890294090835123681864017267206216773825043450230761339799843178551628375949211423706400700269782227742677878185958810289748622341046104059481429333870558292626513059995102462735382499042923030847719849560665170680084982443183151890612264079566937798361135077185313492957506465458429919368565032518563644598102900532328651632786091111799611579287630946712524712758596213597067463375544058440333358110907856961055951909631294684302453900283149104342566565673107626971576076925292971526238163489643616502633787485236292337998663619775566303719936791311374026656982030450921180729310813776429105960855833254338094642738345556415131640229417261999242461121454949044660888352613512065551794132284847646305458114522197610922029028294662312457881514432724657999147585818683979238560495239056079385361507360725301790512637996679221252107206878210029234349799270301011891960613712806965754477594485892206182777610862522839945427679658413982814632821418267707845888779073032910812572916990479612463782828459893576091200296660124917554945502217730758223349170830408692290499192440390592463474608302286482881163870063781038163457272364841332687651269762720043647799599020106579755266322454885970854905335565347500930415999095939627828876548182361772767967599836088995206720967910743946826517172376063207664314420188185631870988369722600103170724620372926996391613591214002792369363008235950710834844641245527555010263594037128127486117841885820479439354515753340188012918875227432441046460473023528967315333583643018397929071033472882408243089330981969344971061610133662925296678948311574560282623806790593243468607243657281106584222617470081646128499030615253340036500612199037528803830365363973888134371636958206877075769449925828934719390348487693832324292463891896662302514306798324585723412798588914698783710101342573133995867627329030803065121013403193441973423566952014461580014773542134902497586758235775009087569481781898708247471969084782356519866801381194088065767603370217789255406076767759656962186465310276227647006292218771608427884475998821399149164690550671881013543225924513134006557676735022642828689805162474174063940350405822088435702699466152756276061736487425842300837919893105746587216397079493201592981536212956961603615789936811468442741129624041948085843609427259761348992968404151163876632637755836473765918426582555571549057019246139693034588117523537420165721773710679314369735687403147156934523627871631117286419775210886415006006579185908599934203654346096466342166782542049832537873159839419977827918744249657916805821458435609239631074662115054415867581553706448002165573835417137134226008602707841588263063399552825027573859371315247087343290516577890660361749258003131151785125922399349952645362824569068101072450807095606184281550645960956955554728862272021074374955786277046010595275463431540006050600910123722906509596459005343244887285531675314728118771630278389612046941216829937057477018016699925385506501728025785378676864962930089918466766006908086336111736324657560905425147836242632632091215448523917275975368274456639572476237639202284963474050756113376104581800298122717612596890042420189648467985181273496586682749611181936907945292893749769737499406173471724154010340901018895274740764007247905845218415743027393233486277136892400947332364535275076890262935464730477283412468887346404988940275886277752986565767335378207537316297308053456216864805267221723885130255253913791079114148227008645973437235999932655330264527369409190976905559883672961554274495407854474649219777674430760996908111385645701856895771564355063981147865807793068467775361924981951040455029972474689996525847561995236892749269012915234055075608667871572530347624825291997460505215523568715644636873905269004868043110276095016499332950382178173839226796786689994522555458372105289674762188486255645354627615431960377681230988398186861449697396033112898722954586632062425080181608722705709910669928338346283787732872852456790399739297018438718074083193160773088949319494215945091646132769982461315233950744811602054460722668311055319251733006547118919600629210965220576410088511027973736686551314184032494787148991495766991058425280235837296359878347156022877089447511878603619366092232009161585169200603106037482482390436593436991863297295915554171573012952074992463808070093509910985005127422004022894277693151570928342652905017995523624680135530630848102248765387759819979276930617325376065324579089743143578060682326472969048587114271700682999252655631968332054354544469696043987478445430657584613968888221288070830256646069692470552188832489938921446142976978132315786343329412519480183058566719178270617269535804534607476747971145750631977164947299239045181509440917100484938605397058927681730511824616368885701275117736356804696667012733913286402055575859717453091818964236319001067824763493193873624055671526686420556060536736073782590207853638591626864783264994566062921581016901019199949017513688056459892033339345254770980767047260095877101265933361201001155647946799925472892077857569220913137599353853399136712803005127829845534422725309095498538670387777892624249123786239233477156438215620141145407425300973132016335200947825876589553159167754813124076262642172671348589423770174604667038830551003115189212468375567037229988127711692730163932318928863108630352184034908623834927889586719286729232940622571135339256875361116084384815366015919106586941110574612745243254743140274214569386695303036238838363715513152678511635377734936912130912522365104832607283264716854933476998403348841827202026104677513314993042855823596409561318497050733708226090014665249147401141498764966231851139540422350286554024966566185827532628162414174610410652169509737975999235552285282748809871805123657030007725683456532394287909087128070951679255337972045361106235750655376595039089222334914276819628225296275367974047124331073964273516512606406861441230215337732458282756216356247992278261399157950877756853289031818552741612894722729487438075764506009972406032643932761401411443548778248917003734753164552843076169211829505151855430301819895857443073210551888142494072214542503426865752150246916552161033766762824415560461837588668375456215581570221518560674793661508239286616181629610701953633853450237009309132339051795963731003147757492295310067091730760823192920799750399582172828472113305629597146079166985262534980197266606475179372434763335376694085578553102818582932253826331875738750843970301204693436615957878112312458506349906195226079725253157532156548996098576066270403915279300979010477493483017082523298964589381420300190574975383814492851651274168550557686703632111910319520562525269826689665035566408426354622314802187549721314649858193909286724989116646502420992662965021130080273590556380354154946511120279678841452916729061138323428910410342039674871692798888094298707017447400231632395004780302818170520860039506920119592868851488592171294869208053850428313671236938212819448129754296428853725072492543112025037196943254006927409335024705076161824176015714644521313947593766663400354177390017333003955494039770254130347367224082833494956205147115758373051081565667090562753116638491496339074653737996975369277308633956457313996880776035820361493312459740996005316848196614361649313180260325855669409659204702267396642767215416696401357862286164314561419039834950770792367228433092642928092424435211815366403545049221256682749010684240526748401648250175210917352670096681694889093772047250065998146762652315920701735174796020269062372964854209911523929935311660722707797070082701384561328684330163921756755022041490968332607039322133620283692604599608682886874203330304293979530515992152747294351366504793578284641063109031125612523482133613677438460521757447593013677271594380209978902482060532286317905003999913987606005212743201700494865038292586651815660959491613775805310281392898512152834976532769371487612406880008185404536487166907843622723003146642479939890256675189221671084988644184195424622332615158390213261647554827839198762807523085612477710250861429605958364364791700715687499797451869957639878247866373454980136279114165284860934279802244575912899874501868554302080972255553759036821757213206314831873034691590040890522069184296982591195166393295807183311223579042426017010153153672969997692214108981785463574995519039542646557909060206810008985223060985894044262752226792591178896457833057759107812714436375391314793827845428958121777145851159464224752344425617809892354704956369853776331757433266368928481878307763033757975704924505884959253363622196189503127678459347783948655979638140490541647236465118545466232412580289821232224788604450913733427785405555545711286633716495605188762487764141161420388672329155785227714703487874073140735807001820715487017487644017304583921070397926967000375353901916991695230553617022553078791147415150191525464669307686685893746964767280845442580471091802540016133479186556811969073179017534186852078362068557853367163887590885797876815222154087211843399645699324273127001728942723402578846441177060776396323811867585827255589717639948120036077048420994598634444269359759751561085051956102554448551442361782005944079806576642638992481855596231777573848118453353211896098364221161602770149529631005269657416819435139092455168219743091427004031974662500568578522973398107056874577574544187953620994393966071764397742440265152387419280938658386502105844298032594507586511572429556356518349167118105696399083494999911137804679308992748392270522810585624092897721942492216175166290511203730740528111164599127411887378576646434621931828664042659978234686297718251946892727174968329724610243814866359995523616757863552252604769282683573521009469542395543043016959963753490918007206372616523849396743471885353264779200065895962430003387775299738133779366515881944922012225186844825086213894117568537850865154795828025929786941548738992525749268886579843677059853780145505644218392865993685056062731154100352408157331117453767178994137453536376675075418291675140963256536207355402644075068784816225854121447721186244801059147480841873414527594096400280892227992480581192732154430127343539850760597262380179451734840251863170214373868516722135826793914485815757541089496413614805141301905604019899232635558552701564395239694875990876574872086761297882052569272173120429205911794842996665850059256392529360054950177089192632242109487978650616559809261081601087626602795625129329025930834267111712943649256363643870517050939416202148604513434139866438670294666222846123046197513450340878569388260261830395442319626993935696607733888040013904415014081227665885661772016843502443074364064112018157372467648738156956817437879351199265167181178865606169778218391115076223261495884863814137803169162200146771943024882409898372276480845794670435901005983198405730033999587444890064329255978345860579717643088954313845552190881608875136419481244400505203878607896908033343236692797773518482922687945645679840980914679358131607423171157909832653587226392433329467201348620085582815727449912498874717536737951780990789036948436990852378144837047646575190220334534307004438985718563709901238910135767123553793375026321218709333488949219498885241087064868809501705832571432537287211873312388154346705848565661445564829740859078917831701819073964422495542227382140817329515175004180308400494130502648803569662620131494908849973092038943571473738985674624868594448249529719959039237833395010923962337019375040690818635121141312660544713385151613739122641699105902554581030507118036800140792007932056865746466869868678192882116531457474113099188189136523049543106881713023673942511012681319743400575267576358969004241926100610649577115203441637679889266143231841232566130343237423975846084599487652427730493716423471649156465190940862444729771107392479762086924428386203503816588785490041217257830338511998236320850242532861336525040279267140713767875387723760826908948988906197419299116711209586029297030835725819830669744354726982446314791524486090915306659325480074323797164290880098196537119521451876567641234558187081365264940783444845259775943729047607838135145322379925788976435860208975469457777724069880666978232060723032320427690299746729437048874143248427208395065576628667478210979342618658092893077291152555854154487651687977138885501707571141918206023505274742470312880793813652956460581274715205565404443597041117930302517624103744777542232213399366393138378767317606608473721133241513026010573195064359076389812291216135455027177791316134856167287961465086627162168459338527708056244682937029209781416101998292633471965811510215798464700308248913666944702525383834355812736815956802717013555497187070866709372384010332272882676770352521337620060903297958020580841487786972655717887586278880680643569662586571505362318165017361188903037160231199586117860998498557942265684662245025533995475402028430579020306814157122266447404052556858796999915874511042169909250844547875025051504703948409206702727839194897703138670505294024211393888455011683905078211437117515214129636322237372664099230754401718659745330767700858653056221607814459863526967526135174319041818274137136561905184294896767818165993624512365159634216277439806484719199669838772997940081978121313706723146023643645821812523744374809567481716579916650781686450197223861333848573919157753707824784302014801382770616594538650336089180633842718117562872548869065572783092941482942789647105604166429569988938093016803340508395720245050700651290070246229827020346589031110194589395098615601028155159973887653703518583442390997793693824347661349205620149864564699195145948114969578857940347204671792592086535391489446885458943756894759203313787437742231246343503738455615385721946701731709042745898762813099970270285258831146825057679910876315132503818571610360576998335918735626613700259792145333165739264852468154387891419222731782567748782203941572089231868734765206831321589687694697377669252107625676867398309642150628019357976262868674549996192614257494015104367928304222422125732645365535513243309304523097055381741571469150732075869210805459955514580699604934454214763915883634032834469909094427740483349264490273112124857730007944318647352259026160518641467317096427848342858632471202389154215739639938263733277411099504009433160852212429655491634282350262142595512967990841731269389067416825277946830826556028036525073578455409051475566663143015771623941872401884553154383364069457104053185209332102651838441203449265928082045932816485068280338479658343715982777881411626509732446203080820545147846363978008760665842745159821212916894456864604266547775758569373201703610052761955886840210765217709505764566514019704840443040274653048793188858858049968241851139780982186090283365989565740625853618232523750069565401861585985727522102410271560152950034964918921733954189748387017396340331196363635919881297231797975488036963413885981801818181372864529728724504936986867312209471937860120303912543034921864227941246350273055570981304885911352812872304748099360472648151820697400298712865097753922081755515035054010183212049305136692061948769730085134143796360814227876295560033199853014784724622355912803873701015141529620951643309605247293506049450576113508933495123020599852021225906481817157618867373411744295462712918427000648942289821703671965236277699300707678213939909343352495900001259643648938952742528108931191220230505285903616581308073762902912903593892467761104568712604081758867287505025161496528850323575034186322335658853090558045117523638787519609526450185664132994533472547192027076368193204428590564424435797684703050530049336094246468397618379281804770585220269641201802081879167268314769182122352499652711271285957222261208647197195954779054855897234459193285627856502962722298905400194803863631712691072026014018213770357871551870213813559122950019008730535734231958882791445658757381096958934458076936279987825954445193160240501838992926979825681000296291025431174155901076262273938424289651663308384642192003372834215157428853439865540378049616756817859201596757956424796788210332252830707175343979985122150335804321986601356445841276450746231410739896669562076377395469364893004790328411625009707174483030415954294365037202262546406797724572785230911619732358859277735624433870632918455609498996798753213282879294720645717996260344295093084580344963147685589838175445179587481501176919238569150779619096767389136915182928621016838941015620123136835117299508092890966365999194237009789536791558745985850458663859199620860330610427500428124833835354116372398647046485848723032610477559203123314566479324263819711255167609244590291398879607964188798032296273928889947231291094143137069066613673641186448709872722435514245080956053525624088374140001299043025977507999844765895105298699683994618539879553304126636424939260514981139236554585473312101816092310324500338907976602349567979733883191846478239270904178655019133561601504394503282764935842972777695439577129551475073761154400765939940392090449399926965792194367662307997411470452619978511801049596078863241580400124382291906849594995372114945662893532802271816380006095839303289716057283478740501996284288159587956453175270213404771783688188469783447262293546304284927821438748461444215663499397001664845931354325224767407870520821720449664050590824895613796276305405791045130864655409851127123849408299336303882026113813878677028042389407643793579696168492163314570350810733400969299141142817138108562492078091739084609494082991769697388623895957699386559409402303479712714436254963464272669349033872538430607903088804957934498503422286439680854305480558094991862713498907491619408957580331415423881461801062925483995200872483940229623686880382704396943555418328523280620177323109091416100659335167347602698973567759251319291275196446950088765186591195355848900557952151157360976807619559645742113225580413622648045919170988707908817682424978192092799983326307032998342256458940607261362233625842073673166814710792405153548625461888996566684567000829935031242109845274108671211376430986184672157842001193282097923644119253751112981198815722326211456984847510585307176539874410874973962002146215579159329160459012284237591078544633221043975565767658263404655707142321201935374946231985807397302518657161105870422465603868032728072608123403518422840256063763197525446684792683972402646686579150660095227936720835679815901766172818670117315261496501745663521963947626977481542603147902777878508321408344297037106004462976107819000459167016200168967009008737034373458557049263644890063334848867736538933618704254306653830015071659103392238728984669827582359012910172740890661864392541611075759556639453218004653309786664364773412326070667501911113331863622887716458065500317931013411074941219422117716598336898155679749097175954393360405856793875349092542490351720147549173521714693983175852320388150060078543336040306389758947116784043241824491305824257232618328927422485460850356802737230877129789631847039063441080069118928544157399875889024362256900266529186102384476002972612612285511857983346551212993288680836282399603446296282004872404628535199996051259497528997828614659441855638414762092444997188310349232462810610762855225027995435329963818249541564475094615565837860619051988980128776885361938747590712383693663228992608574989831090118691552256230489991841077953111898393164553169962757885185127329536382503860784997389292909449672807928814967149177510569204595508148942847923323755527648814787803025904410995832149964991455225677007923843422557143394242651004808317276198140184508399945473698243831450156511632901088512873125107782843793682450740584301162999407143218998581305121374870907994985776535741307693939815969832221050859415994905810547299462210716765148538294122934129703799979487151338013183814912305210846615005919962214978485397258709790105456631232629579029569254122408596771092446882959516393997902245449353872150233470749926079480565136525937521791167996070598189366567686109789040290809578935154242931195233272743269502056385241232964277256934013579497830836917262355953636112454717056904904200153245054215716805853183820916655506466715892709899718154790826022816573971071989721730190601559409693884090821580690291408581289286176221129461507391542709212292499162979709073817148919856368114701502027552025543340753446978227003359221139114035699718020927182002853386100299144427028328186803890602597455871127809373624508410738826578721672489986761368411576150916212744247075933443898559972767736103615896522021674030976370729481337442870324868149711184493636162924587236599462953920093289046625721963433822182241104394607832909839784485622262509735848179703684982190178782767192916034135284838165649608825623177711543853270863775971787265592694571472367269411585867737014238990424174457617977734414595519203505376182875313882214521074522989435307057288478292665290369446804483180523958500145977726714001681922679992213986457948503643370614625545294720490461697943901760984458635837563754677547730539770232868323231530708046405489362523799311454858006097133318267859049441350737300086795866288430700505918167231193105159700107206850044353291720195688776720477653042196870463087697594640282446554734811268260820081919258573553591923325245878556762416427739351237240608489834756411835528314219437713337119629790551265136376986930920359371340397935936140715211797262357493412419482430751760311602533153775544780326996883847569524337620817806265737793314714970901469159866567585046667675525795765788688982487877548383336074586796643787990665907343605219411245357902689363602015249239260636423578569645710453802642764372750740343347377942156711865892590445958660948573302159917211220940084710761992058704393415934663886414975128554629749894263370960022177553317946176116925929276657468273030671641809665609506444822105473175214730333834821776505365430689185561582101847171373538958292807903562233330154079602932808973658066799050426796499737633929356974933232061764044823559942039772613717644740578223194305516692162747885694452394483212252708176612397223406476683454017545771012906093076788604796189937358147939385390940043290603767742660530847979539801846122887539993543403072579379046106821674993471219993442556968081446265798439925408532592742114192894052844789411633102932834243436160927178420166823668293477560044851208058542939914583240012148816978535284516112886994804100562782674135762632836887251176600269550498841459620046260182737970846054203800995792783293057357625372505920530321694089998067796481883981731715956926071748449429792819500208948641892326654033732906687335345105748984011579272171921014863227695885916724891401904134771265154448529696031092924253962649540887377948502136936926326628755156296870494370398016455631685346406249747232406190362389730581180650375621461799407206807520854929514128605202961600929634268047280117730199905676938781167429650580612618533390092426138393969117626879897984824137890426286813149242595965683149839077983885265267124494303808148509587375026279632323799222615217200663216094916723579746937972130339411521100917852120596394539155308386216222907697781504830748409794355623307913421586370532813672996999925665227153572955987303358312110021248794453608203548150778057332045257454510066244358759454594865626756762169367175999501583719761731718663152382649509219602948646761987089179002970230512905858050462214182159580669675131445528772064468141175625697303739956490818873829732289965374223660473280167450121327407744352196860854496891347834665727729041280047415284964711356251899578262571547615584932258569558552977435136678089815728759247804603116478857603262525030142826467755346681654098959323089112477605665814163244935337221708917825907867274222126178390542433869310249953119255815065640335622303559369403492633112151256829515889403886961750917170989141801648966369769995612694451207452402954032311035866278211148423199705826201645537323417139252136184448016707082046161011502775153184224974076440480021286328259153164836360035328062566012580870693839184657475307723744236190210693282621075414089221258125706966239122282627770006045401005872975577126340033297288072990701654113432466343104610874760178314804774306563896404664652221085208214995839784276290842117554111437514041686486616921996930925071035902230227135261527558897022305274434110207562165899769083370088620023028604607397224817263918440773801717052859906709417902965564298000498315322226940526341897399711684878383393989798242835098849435859638272670753517045832251252585167692157256486399814737385882406193555512106182181053801481562130181554602742793410616667914156792354105156166221850076448259285973085338661797461684628607365090592617847984484624431553537506317650718561796220375757752931614813273027693168764230261735329103045840412058682444170876767544428424794177714485644065694151479522315138207117053567171295612124483315623230722486957123502915753199497048198900284012558814081523213839381262649844366255040788201525208195602369336509890070616311692757526294615725792466977004590303021323935687603452675975790405384649867461468879834204090469088206980206690230698257896869973061400841106588382517429388212498539008145236714873722077769445762750933976906624530158389243844264786424705614091431043589088729099290171554207768861648005344360642937475402945353562446524832743942681069923331136249547377434449285568355083487897766688672315508046397186656082125468897126350948184460343534400047371703172163541540002177300730330176923436580098217311565864830436639327320920958589582661993048434562767395879539229217773444075486818696160150962027494926376661380677997635296936872866390907880703238200105389523925583341762151276323244938916231572157621306918326400416714280286378254456837248557325622004530934835181826784214383148285447311612645851415232619109637415506434117975754559284127953849408452479036059502388929116483092293208655555839249533099696950479728967791278108109809973818660217433519971358133543266402875763917364729796014701974684344265878331317770319563940260225010156291699018554341363051463774434715435381296414380166910824750109737620761126745616434341621733932045826532317031261493482486252200147568147624913280466623101550935564925087475987119408810598954224948701957571350576767562060968597049980868156133716965668026059765620015149341502026321667958211967668060186262742708411791540823973578934194312451459916014071014751501757832375449721385275778032047089496950483407074257426218018619061978328233566103047475800158155969990123558662175082313982696546530690336574034592517750023915921205690146175682552209094588520942558303563618358053248183075238868252294546958511949866663486512971898057673253988005758014798396145369288883564795147206864630663180629531547532796085556780088353208598683167871828267570637043643747066450300568530442758523880167637832793156948192433608679266962069922285674594168108153891686227738390457288396797933039199235226796571142557179503061410149648559674119183433508336038141440230584975652862167007492002977138176724390059005344002313730172883222249800915594777821073654770811306812845577196268283039532641377515383316462386662973222442390613380392887535333925702453768287068430716585086804043530011568190685550257791042661810772507533655085335012497229858783361398294654215498347959390236175419477998879248717327307809983434964429030713263353067384155702486253447065770004950472432973978149222142592426315790880447868344899035547551390631133506035130582292155971423910031947374889128117054541857196005247362688352771015600990146993818469947889162219442618412596658699625471138863030505036079385042038993936067760133010456703754835010200012804569951462321660831799934454134570475520790794852036792710991633633166767662859310575450739633739193185745091733273019199508076116618564497826898204240499994988890302401401218938150553499435253523038808546833213999864883347258753467594774559663619699429970180751592508972639010618204595205447799243555696704427632661215401507797657431237700923338604136487216144308412463438311186405548308570288479199516564171841107931154709521095161106668508552879520914117409441349521560572137034781391301785170370789605873195893671204642125286230330736316315651750573120195540916084464558080680458725326599927440315763677611521149796469605132233575778419646392283385682229862828271783049798339036518596134822810077904022463293834477389559853234232541294326815341044880883312925557440203396907142126212885021150829171381512004540234123333217102711261825437227803164814857014999393421828913329755978184095851596912416161308974408409468044184742312709395423654162510438704382475565658174637666286648889217429768861198525340928172125696404680028183499592395934821732930546972405709681276270949314384828749973725350877679713849515341676509523150436440005810362665152682081069451521527348233135558272014223481318626644098501424738040375221904534723863960819277080098883436201519298383852634974786488209827577308915664807198832692385141389240488958331030320032808387483887151471672889823019778828403290526819667065790630811667697365732159475782651857508782043332968878445157310463490808921977598034506586349193845689180254683699106664899242834487797609571060232747127242895849943155557946558348186614096529351946507013297041021674376675531109827471171374190958947101772251651481041314949726429408034146008936115562866065161665613690021672649774272146480052117467302899332366578804299693423635111664064256325133165271543996860827624153973114901866996882826048116548995265268150525090086131771322704599857618866512038368568241511733524256662701195641128204553986623710942898441917991763383921438837001313752065074721992910577924671418162976075727433997798334616766320317058064383443026454104725967338381211667601875884308517716609880376753498647447493875912235746871532427048706651210436695985422822617330635710306911132808496165513542886350675504840920765470709782848296443993513843885734282376751799019479828400807498927196942530521608707075181284209012224623743494353557844640478874537895529840949549096397293139640074241047635624470175561637242681938924449230743512373425401392920591761351092418649346290327261486973559789251061123312486896960140537155134262945606048138594302214781832556247371780479134210312489726134118355772602024692353692080839136571837836026885443979671575853551420504151884110588173904965351515665681528898962207312171981532770199387929475488619912398792331481807432755618889322273907648073513640194865919285975752632016613676142517377576858790419640965449397113568937972105599025553840902086599008098676155466121018125151280306666603738604552918082756202069082297717310329356314273481981853181038959976592486319942272655666299718266533776396098154569307901645194054610556523092531212167347161489605245807479721864859745430149892439716025168839285984848327713849777930271704043854920793008089502409540262373392823455764066994828774552156036865249281967615277648149956493946500799512928614798915576031516551744758154398416923036009445907507321503368393717425821334953209192748715891505188745863968089446019971980889491270459930851627825837340606357886305689805191847511624478696178725297295173268617798736935281744873446904063430380076947284244181698963325680975494839696620372957379768691266067292769741287174778888738369512282870668376067666895989821434760274454742552953854897037062950736161788992630224258356711713241118801996742855075256069407312138127521522570725491900471834932303265462301889618846685775055771315193125174950617917169596842054890307658732094856344800614272112577875829308115946624556361884991661745464731274366278617379828804478892481384589013825306917193094919171036970039604969956617173691923922875123637851991871149904393697515587195595765372004539809320593615059100611189463739688984099260957202297577215567381624551338786569434318032722112621236892468002708016748058682941496413494666859770096129847843204675681802904972283502445523498756573232791337106267246518691477066330195923785016630926320642467987289469866840663389371510227891362761441765239144489482586709943416583018611522560093810237396950890689159043087668750969136157959317970220177725036402045428003212559227454691289518148142476376347205120220976110049723519293651602495777753894281738145778041937802224468677611006646695314483218075823744789717500306446246783741951171037629756479534159373877899491563023304315693157707158956249682000365627768711075485181514764916809802908897579747075507379277653678783184227731162105034353432152713556182726317269105957329614873265072384516689189182722886327554190079995962222699133555145935673834938002089768886714353277844803411284661465093903681792868700567466542719089993945577614707988989699328755745849301232410582743867929979656214872540635704993022214806876769761461989125213884752202198990928542733178578339673236069164073404048003367178426520030284483460684898153675347583143786129273634674575112429349429672079869412581098177580338264196716377993270508778939618299070784962116883713067418885333123091930320236273662980123631823457058138172219543300610306951534845203884372189778162774699075026005351887766704720973145779819768982397069955948951323006279933958670212825938758511978819346712831910308586861871548761169652190033343980263062051216110600352459357328025328501178648515619015930173539577625984298448781176755727731439342242694408004000623518114730940461616696871623909409491599440065790595895119046329035328539389271331290829275336978582266212044938161048898671102100457455280968138517134563667637159729188453238093741442057721196925069852216890278926470542837868158418268871143721355667846002348378472763227746645043727171207841111185256491238198492115373449223629500971218972469495767602494891528547109574675036342006093219765695750255560240485046402631402666832389516731957638682203605354912404093065265772163704101023435431498030036201555362535442097652263792310194936162862180912764620831036678479683499547570829285524236866363908262950173985150882735426028953800487949882757110091854348208508084396631704791734705890179377632144228428133698618522279175643504531262281983683253854846901882179484506618120496067259545587535962530370140271448284240222925019014057594226098736678103821920090344426151631486377216386088511150544889762414173883188599190698743388415888177745877207584761546496134361544969960743174232666702975246955755451314283447417613399583109365150164204664112863699125989836656231378299958719481748290527611521606005771828294003936588944817054398340980456902948916099107063910915532881286232813820228894461204098403600966180825079169033317254957673914307740801282183845469999561056413524608634789180173023391125632200519903107912306368331941789926360823367898624294015009778486802064318820786110548998954598317734373273376649065755433171728933823392525000520607287720696230364256862479931799896470749214578047165758559943849583862709660114151713976607826605991630153719520092239804657359195752774510751994921059328668694103953075881707266251967061540342348094645051738197497517558502324390045385437529765180670592114598292112863267639227151547096412307714128701208981716644350787602115680513110444850703559041394735008875746330805773629110753787090813438473505521578088966853316705065541792891111000116699026163358684360478810483940016464270458637359151295985367955851239902558588993268637089089745663207913237600790829390447414821457425539032173107850299053425196291626395804709006962938092436004009660992902616840140511364298968033856426713813270843765449024235282766074987209832430812989015002495426669589198295294085744316023587069654287939704857693121923832681710237318459473460721904853766603401694808459137032924243734523397288028345766514568139214913803853716373687712864362160345585237751410522511494766244558948980949932647183157901928838360480272691353160364127143071992357936945790170322210008112488148431564668654286381274970237041078571466797419271799645432092817811384659388393477658751689964087163486506822105313816543640839557239533645281692912295275992413156051196319972358672649631681058989660522381224722670093273834078458255499087586887638175827423124871985871405313867095347827810243958513384076141877849070385636152043706538561448485737401373965273922976337131341601218949686570700437878397219117692992732696440081128544719697411431131861588104624433806226956002586203114331233132730143960206278327247562456512679067685446373925624012679268541074175326594394193808295878315337957647512042355430690949593083724778641682580560267074409675321175555130373275995257012042401064617091342054524783574320465261532433039786412893115526834763039253081902205314414201612904603141700884099539886233478959229093350378342684452202656798154630392295233855316421683878836552702928307596582131221808365120812568892942434273101589775452777657154702063381403155410581343139621117417811735065416522975373965650866561059088164879588204904446247795696407108192349527360330353725658401999579836756781593357055807608306705290180038715608428582557510216352032386729413355414976837387645716094319532854551097573855370640871248871748074896205881100701319030807715335682114628886093733079906483034365691581550742264053651148904608572312712130763936098050114380121271623690772915303685267567888812769779237044236903505085146001182657540255216018681665491567967914506321419158754490218709168482202983884201738627374844243896052732203261314920127915377033299361316342561214746251571217051214446948349309352688454151853092198656447934606906128618873901470292405614182494763692253327024761779792164200553629930658069111969358774885829072051092456201896257817276926251509692193813780185387249280461370175776534890138456873022514499542812929589236140796830800365807652865450017313147693378669216423312776235121377618074007039957171513258225993100099363623164280915690618782049955395723276066132886418438962200459673352906554565031155978280110287841397449097820105918274479502480941529363102110857814700249906848207350004178942773608218591410559394241390890060467275280943583936515895554777363274820389176229348512245146069899488532319246086499212024582524013074736883584088305267714682489487943874303837320536194483881333683223672797776014382166169759785946099464103662594082827025942645518774754808637678210229219568862353083228839811132630205282729960774011047416582294194095462878561385368669603722918927739755967899677373551105343782052961173441456052980354607825538963064934553765839740636260852246774976151489349309091306702778562369238271296200632474302128444497685901162316776020111773255305871657821084678892641826409699951989524693538052658053495075428435917180477580791872358300293380604654507991327668035238970111714847215453392077338047210811442534156219989828974013729322476728299780533079539412479499124668124607054160298038897363779898733077333327834226528493499753836875048186469386192461645181692031513359563045190481816139031277259367974294462125827881873466964457964037767043495560819669343973120030348985634267461330385459044586934941032897513681342778959212349886122803713805891694102465279678888312701445856941735294807534535600327621460468906477220438196895658644953235858042427153931513131844685626558306818410297535993491490072848854167776430291632594476291552107596042312654298825839243738995780792182810459991703119726299598243025862304272335070447943648095914764403804730390439245525996711458926269606986354319125895686587945829050978898729163270982621972505993875137519490689601970233440299608091600879925236639928695191163087705443126691974639505349694557445309317524421811260069581930467260645005051585077849174113336842026684635687258673805690522630690497592202987227505897123541444778344539009483690596372047193553130225895857721889932100770329245571391324731413147146386078458029117671566536319079529088745341361695718665480822236743025985885086237467927507750637779937085340459268253067115776713961315304721303112443489018221058486635276069565713178910153824690727381518746013707074125291953879708681065169975129977246577048981951604876996965199079764107521387712682516552067136145014190918312465507431598586109223557672667292335289347389148267203363466085566146298332832104581922428015141460748452056650316810200606809575329015017430509164509305516263400408017049655035390899287149106515035462190807654167845261329688836441779208830332203278253351248029478507737685697661894854479250880800425461003192900127327424806567725461738737179833649733333004238687282684555281245397499471615528031651635152628178529026498794315838104919705749142285763925230125329918465660915104223564282282478160443463579555093607131299097388800823924339226206226952281180405811054058731010966882422028553028444668309634417153689239038550239354211086321856885150364413785226123691429032868982017756247725504752705154768818058657996618373172813989212391470370658786759262325193593781293898304871742850606123192760918698888321289840468693527241623012770808911674261781378234318851399376055148547670929121305685062561676854725030876639536687889655758957553893513012290247454187252959829035847912093079289375296652166954631328217353550206484348617187582920357476609891307568025957549632571518091054612663035495934363288572572705896645974190277173231434982488004524832347623487740052376294667168039898420625808212762900669422725863380347584239774521712675606577090104735855489299538858580537030624376987236267366280761311925557188830490635921263207731160233627747907225855541006647355953120802990890293629792625958298699687389985286162374122569431566213893855128203153436848392639231361235807224730655155169535027622874312204576975313372288866562676679143185399819948266187940194587108021887096921075006420855407802705914443870264847640086469422794506840018975717916145630705491679366226884638197078642349838492282064004948666093313720614613858603630637240072936925868610288201676729204710489352447174363533241840897672746415099187575483297253848208999769311961054500976804894745438830165402802892967323431853567579265865202721639112234249859157911231758376894525195547248731692107925876158205542338862414820143990643976264771641259488047701205766441660561882337216034286411192332414427518673774788424285981653004815540382183245582193204765510418265381556802817598304654644614178699936768280199052589656575180455729513529553076882480829820403564266985420542999953656068138613965333471633959626074267705130803743195427582623817929793962825480143852461095445905973519985096186911265909267739233063006128701751898540594375364128499095548827658645139578475825830417418592495173930709898839138134492386479970178451446402001105561941218985165394458167337526991291380886109748290805549542525577173400999647079869565586902653669015960340138330881044117181155457300791195570117995391846809230007215776668905300289830644504169776327742773321194561881661432728853908732260821284796441428845885777595736202964129084653949741993977793864298827756551859399213944651831247603980142690427196207683743922164664182370928022770153743044855255819400063692202504716388748384454684090485441505052960104966983020459479826387555368233652450271960913117514304124943887251656924253497730011748598008729994053285345104116600364279053890661362456673385697682173943117978190671854303088127643172393629632300798097449733845759282421522075825570678652171265316161683995203266856672567249534350169950605063544820412529559252737677170264658251282110825204310214291425778117140850025368477303860932495043725698803927637066718100783183698356374223913469548811071700226929989208222114799174220080419314731328310030690158952033221454935225930783070120079816615466819162478655047926385695408783732030363297731844553149725139664837167530602140833603008879876387167360911482404688728472840619256473511177968883579855953600241494625489816834097822608155355199326451408488698765693995324174932169575520158590784642413259453233223956751754343275127721843060686989318188229312134514606945388969066338284357851408430291000379316476597826770764036337155659778071863083197585966026105650768865081119525921112526822818135971306227165259629055179983640864444392977456307119277544366800451748459323764247382105933582112745220941896553995245927344906002556235277957483595239292921996399205004402818339115018717769983766116372983011569849201197432935967993869222911215770608514336674108295988548276946420734270040913023641040339742699736543301211069213384910886344247437193334118886524467120694292552610672165173104260545450901245428077571542918958556794652837525093337518131169719147219000812708341170038179240104495292682959015569867556311158321068396731228889059678622554291436659921017376805255027547317177658856736378201437361829342233382790180185679252415644767225312172762467125648379402683103053057141255760881625653680330483299236417542271184559550111179361031156914971318285678882784906807975334737384805625253039454754949993244373606594146828209795699845905029842864537485723949798997227116597336613013987054235278916596943013009904939250721450116019284295014047930967657780036884443423290925102638154209607755441322475805271971994086348913837346178255644358809121091015854368354282795767226162491230485808206585964128593052771256411275121423874418887401294054374171775317443337471803801143502707074700120021810856116528643717108968191594286357516395082170196134034244902262284634145767399544706830913419299920172025601899914550143048843309827504396311551680597045962564674562056594664844033384969951959082872364230020989426886208110922670042280032400936476697714601001307179372488769616806472751149136678492472997359161839874220933955475728675076516793136373766351547831987790125241461390026205867078702338164712970288690554085823805212768017440445991407087685897242061073697652071671578684167439675297574107453384795613526585993881600597392673028446398118107937332771353301607166511337748847968664562038785742632721530793610749755377749042917536885856362673421332856788540737923148364326388122853574864524835922700218528632099562686273601359411985949027307429495485851298271450144064101355672718204044250781903807400136656197330234590492824555438785860062660187731989192660003036721161376276123543745227069088098740601801566503707017584872538116774044201213186026014622986199499398629510357520391236180871932862330445235624178076012044420847556184780308813400645799254278408263090898648147819099393553564070903689383369396820016759217939966742805598193302063156710492083629682363172570265665059813702525158300339232096695132759087669974354697879070605057167505786446660841123557412176217149343304087381099915721695306779390030114931660056512440367873533097679365385671710345682270326807556791033178084221412303239664993806674390257600774472230603468084206836245056577937559119303252090804348334966209472051585918936771794608119776833128896550876648514659528660227371663257137235583930235850922065598587747268006889094015448601862267755609848158261370302643256669011364241268999398590935104840529343367331070622234842523936944885329078837689837848023945714720770640080345809985920306241397121094377438695743129797243640597780393865827301550737770607673708484599458413876015363808162561810142888132516043593829410346532935865260852179375586675590062026432211248378763998329526340008301306729837802450075632606480054638606692803680756329620225842544933890533728932402669632049438524004106952997528870945877835912550041042643910441045383343762174133512496136479643950391459063042507473313840806620635750585742348863546160456275974670383710325907801295450839550201160023474172296264520154604664839576312905755575373663640716096098868938873362211042881563014572068304915798461885750308290483280116481267148537795466572636175948773894286914963623797387060586955061236636595679219099714244181565315460801568294065319133845611242360232127359962667371814594754863002429987956686889875292345036691148458956163905454103306989110967029607459867252638733575579500751325063088299086681771089485218673313817258021218802783744139382868321585544888652910193308905764506758523920892402801812660452002350191901271561370855052912182405980266840174517680413157272952162215827537611189132790305393593463047379643673980798294313597202687712847712449029930919089922783611065820755902462192388496764945035128271802266482959345015268112221726967274662714135984212622497761280051771619120611982610462014783644952180780089064309132290712753524921519355372622396904816895329136128127716063758978133718188227355294689895003447840048499731257140915458162583823644611563814076560120044337733731470351880796040952202257430532524009310940792216861106447240309602135303330936291078219638544515803227372355596435802739563482759412443468891579362551212273668689157825775867648852274811435953993407401241474841116685051379659080974702887761526720179419444874178941465027747555721339387982528932866889265989490961712568012572850716434594009000689621344594775006443056484007068093210106348982056351939491744301363599932119791300405942813679673914443695877255457693826927075683493850324735751268869943707247287257437785369836943570882598815925272440723858561582057676625350191905535414733387446631678279042858249363962181264427313176172394613184698584306774123800922319510376084793203997027747665158379110385900076005127608219268596758762368216821279892145335366440087155507426649359695738137928170682874211945938254724875574195112342073314641730585436020010495213149731471435939711466184354672784322419907281435846563560189519907531397302558117791990895620062043068744359386611011791549295022108639421960875519882039814895886490316607325096176049578265676662263625523044628517997867389962920247811108596677107111019017017158082054697429595928374588850638106353929843307182304903425635060422330105570120266555335231686315434254692775056048900902893269950150062877951579117503181492262431694413253793824991712439636108435269687079321339640992761522117369211514522175866138204907058717377022506093401997736408865226020258449884012747670010288279940969528948697942538116616768706116319619267033328620212553224071365460564430411393638573291554006413415620794895858708819681009726778512667250522517363936341754886189502177170303814277733326717579640352301446712170920612830369880416956700568210557511861371766367735929787980058847739663199918670785141870820081369024319751826384454048596565050655603284070344881909232654475208363979561868926197510654833422422193778063646531746448419064745201021252436672217957166871735088925342701479575804046104057450137250277680184690967274778228797540059734825127220478907654850462595830269637601431768359728361691209119407489846176701847944555217042302776105069660828568509011412247302621566821943155999508776003259526931792177263425724582137866721142124492905868694936001545907741261008462161225202967413091106539109061269295441566391484439310797443663370879173025209437202576440445839678194954486319355623026472038594114047041359072645484671098045287489985774430215102631491242091513812713826026003505941387587241860766821009983056941619432098235243783505948341619639079650250115516318618385965280692966627383229589289576510315425574600189484675708133864445838502041316472237484912947566931606390231303657480896586659633964206245240440380357047922748438307072078916158226046602732315359019482637597316367732132906675413755533094395157532097859114586592815353887802915596735612218871150719355095227431700532117501352850395263213968893945315504694752473729315901152744196984616064766170058783086226276896835434833794999099687695068899339904562514024762741578122691514743346767748565257335049944654709830892029230319906709257874375114476551455715630443892660734001694361633996875752483563007291111030335589509974266683915769448384177893999115593017514799710510138798685501472525904999858501197208785667005242978474331505736545362939744909332220775266748937093782420509166737718523705653885997684205867024073074561027447971761404870522009207636876984741480340704460035827057255833219923026587787758578123113358489446710011938489269350071855129886566515823488993714083591210823203834149225438884353636987031097440191680562904920762085705774314671502821272183928832145745765269517351308722586048994981104355136458233964982346876840488883351685225120964397378782224453096909846686555070396114100530114099091060801837479253273182579757954105574527205391443844121495997863639096497872449671400355160230645769829710072816496596487344021854437559930445986535818172138603205475743926330782617502653586682875633093792919926555194413052380989593118819596008530361396950853545731673449427599192512182087736163133134199671410746984528240814116262472712152319948074011769827001755050469130427900946801910146571578541624256909386939244264876623853946436510065612609496406423170938883711383101586732574793599091727592510279052195472495877013905436072832860412702853059402021158707171678813480670745853645645311145861073009691567345568671759260805614413097607575693080474578976186781904185478474899675015175796197669518999255465608360058845738313868049989777636411480351003997339170526043303018677069639711145374148558217581760554692827829623778454024723739492246528601812426120697910456531392613374232952358560120604273831314091076307710056364942916256173092227961944749346191798355031065775995646871058256602361533263865434087697631437481673218288272888910757870260981037356568382781675517714317374127752699309323226124877201599529377734515254514230695559242406586903949710586978764421148310865069499379494587927901586160106643452692051181632941201373005386687014857216024321888799210196524154629487636493551382321347171739360555389204174147410816785155424675862874661299884690606846735239670088070515935584720747646404289315445861167369529712072889967606352441603105921734045729343566980734014586912102504599311794299893644322674385233414530567672403867002023440995369223561702017507239454023244005044199909345521796253411584360101341285890487248887391587617413123819632044829663304559867925238456874677811355154091970363115725284835315312441757311701636758969449904040675073844016787037047365922056940269504424998944311788448012293812217616050020346478660897906751667942772664426592785863478920810009601407653792747998873381684559571559601091731760284891265324322992314603520768671831324231922231898951027328565333123647509401768909019665565993393247947463383007687792884810532649656183807396218250538535880978824018428866599650901854973622278367408028891676315445504308233061660358451619613438752379932691618373227511881478864561997496811888158720126641638497520833757897166395800547810501169254298184965978283975451000144705796465317210677397986564686772851105939602081649095819785745904593219285685066347170462821934738936121076941931179071230938369117009685275402692364296170868488220407629515911779363551863849203059509437473526687750227423726765559212001009537642746361647178967412218038767691462214866319958673317065195750484461818789907819345124135558930118726312405210912460575290233826146663410024283071816506269019607926185751410992878972948569696755485524054745252956272043311803108436438054690635077868899720448881567193664769616109502866159119249497558985908672047548271142989337855182052233830244547983071666945405458346436363528570906376398787776409523914481573616097787546753811708597305108132008693358077770755615692503765330024381712858981717597495916580206405686455198957548108950915524122821221352699095408878290877106471405933089578617051164126743428099814953657310158076750069369044593889464877759563211662612481269461534234781307426715679322272886822902613817214176675516183411706994979914036236645617906398034588385900951277578327505179990650108151469085941596907561441937828713353052128636182298214874739227072064816610074201059475885399913007824114110740159166885871243527916742539868541113676753973556208795177505596175094550777446099765365099738593365558445255894584330907747805356166632704024714244371395285873376889182613123209870158544476369519878751443324483357137899001279989900824309376187315530039737144671751253340987555735412234529187003174140815279698927947214011414783642965024383202578196494945819767924686647771142727605382837636040960658545836788412752529417835410086193808163116995005382027797251388960968572955652551024639920615851689686827564692238876261771742114859638727687654816231784305672624422039012867821388456852385746773195485107520767099219330051222164493530394341184722790222567479548044614983731758598127060777331503019296948271264753673763272713288047507443132441225215141868187923924181116606172161456125055164820456234408216909099328120237269264012730783722593929342688729949525464026038011412234231207714081967997800079520256543858424695758424157614240632717746238659791078833973505013400747294338703702322566718987718724330295066646661955573313635504460906115906382406190950939086522698853166227713310201899032977812996306279159866909995290640977082851003586504360369428267966465196929968193806331749370315986854065523703917259423692676915327669603352358128011560250359271668111892159064732066189180067640979807923257217915956304184847210551463556607244982880656348947206941465336710637635622582944442445977164406209817511275045236064230443164739190460326485692195265527143866726539301817800178622565046303584739139679157187063890460027684745878665916288967554201577158472841881637981251095410750156509688389530914793902746203349106434826148304473763733399586512926893899499235374088163981857933953752701504696221312953830287086084596814424706057150850890706267638268726062431395454563929741756315130259305088036958234357605438554284722542470841258856583328893528804761878497701211501232363069740761421470839103888419653416228645034267873219050533789316479674550070163069398352914398996029926041241907249247103712870866254803761767796239979498011562633976923477360886859031702623059483807223749325661124723171832051478259788308610168139000105032184382448261906985456294138145114522684300391646385916587271631021359986325694328695111889706938467475255663966413146414515465013221088511405666565474552791372447887165726497646074162467574442361797173343342289611015132746471539965582706411802230259570512887148912297496035552634259621604774383739735755533689883255774780801389456367214524047466939772672542411760414525793322833923800587443917058042019760541527671650625799665022746958204393598666538004991479014818735624480432627273667287783442691271696102677940276952720552387777674105149181447435176520982576153140755294288012111569740997142325194478075411652965555096886163701030617472432267507674661548661858367368230250529288586911951533904194342152118843499461499507168977398167562937310385589135158365914175071346901895268840762770231696539623653364364906551238054487726043524263033777386262618887882759241945955010354619174989318203729022468805658622738109456421710053189954652485874782718425953968416728368154427521211179566478532792300320428660513040098279366433634002019759190072901242123535130781256339280324780404780038100470386155852587527773479003125012655817551823671842378807632785286781414768006251650461643706754244642792482750909197063494122578402183395654761011420767476407694268429543730751170026108934330784901733604032188334742665724258620522976387471634244529077775743849320505065467925704654476494990624144651781619257591233366147238209116504939571353702420730149822747971556317702294456688383606083709077533196917577378062970308029131777260009672681485044220159037527064709352597712560954164345958923568706122067024895290213067717713492810429920995038019516347400603856400533389793177820557169049764019998375140344834146720634492403086232629308574052356671077463890035673817474185977997346382917449570171735948577033504608515874486912661192674642421885435178693076559884160722133878312463080367654371415748302813396737946310935211824897987803713623191953564636260966639617745845654054564340837974573747683338493821097138320526377000358253546353393037389702342242343687241872486657964899450386750059618469146784384842349936118657896875203402012468192465196317907179167110266787399208841452892638226921478920014308854166199553426570097645861086811354585416424189119534746947346521237735827403625983272103597562786550503433953150370960431374169628171213237051904588007953220489736671146175895838706132043788520088795701472911875582411143828563727206766994213879670674654423848772228177546922076893003806044137352109334220093772752982285019348130767895160463455685322539690662017577946436040816483530434849381201979883367035140300979213283979966750900015945142464858322808675501041209135503387687287968870221061802529817054274417929524643685588672222824674885543404637611351746670003967297690598862938775306035562481519326824018346979279801107942400000103639494591322169282223518094657303458594456291724386087492774911029488290029973622085613508310839360028232954532544064532265076445498346283747655339408855882651567782840617632115205560285433063060135208410370446134726663257567854280581233893614397252447181778140993277937819249856958507858332498634055928762587091084623619904043136034930380962456558651121944197976354780271867846004918998066150479676439079084763633124565901904445727867790911269261357235225978905751107220099297808140413205981355310924997954843594688995642918563908762098930608292158976657621781275383404223897803299369938816495293720732146445847553991080473486583288903781030744415346920758870733132962269681411272297874335309055089656115936167856701152410640568801794637404491622735806936799256697125703997531001734124753769564231937533680418010112379730185640397185174439184822857072304547356606411755307281803816139254163283540262565739600527808125921571722704738578944482901034682165819886020468740016218689707081297183579344552128872913798150000302914775910261360794952956567338476640884461485814337986177731799449429970835881782149531224917085435029747369743837641267652379140472129840497750446015693283132331415445381913043595132805947887772728092045550443354660814430027833924045410784507278604053581487069829088385660766439850618248845835242980833212710017172927996926295355345220568117878082846457033115272760773767420094100862556156162852388320133196359559919263055713675006410865561932318938078140164831239770524221324345633016843460930470250780899033115704087350961789422472736525663291452118584610710886681504416281724332614795025156487889995060310898119383105896276880260925779907104802854140452817353111106455616328917121883074439464260312752568431390113639024848469074160708869345847789099242991854922837692447081378541949593948602594225665354500445276305232073519097446039643222852042455641052904513426718469781415112432124197812701062262469949840779981174472835600965377067041910726242076351482618892929230070111439700204554461651549768827477899789178175658438052961437186835604574502279574174723889469326658817505189396878241513880392417721781306397665584367446594726056080165887269771571052922947115870792458919221556957133865086418561846370881609488852339466678408184470904558438085557618787469876463294343931410911640176296611717682113130284825634836791619905008781925556764062793641555075752579341136536232302020616395264938685280344705128399504206985556460843725235061840483555666576240285029645890675134472620888464254791882168498657515785726678322014305425715628655357435034286870202138302121764223593980920789801628444667335887608584861996004863748327658101398955147022663257542833633483356364011610764654558474841270281710176920045922542414148165532753359123929952875327166606183581482328687411428512630231931432621929102677068708517397258120791592983180284862455558512835847240494274711983666332338885271575552345686088402247721425110120111925653629389409207580964748335047780126126903751984890386314641499511795065294042565212963673966889151369980578653919553376693791204492218212926952897408467228485051992392145068123217730757248363457386877180786989726545678057925612441180329758539174356662865394797489698015246223612270892600852943810411332826259550697073924919550432114524954195631826392831887633513542281737774829163871754774672193390437381876788837762636900010770366862325272560926417062873227337660214767193221364672611694785427687564466884232305791053573529462303075995588028156337614710858583368474599895652519834577498352907959341900097062403538368990217246932094837993115422392240364955183958061005239171989643636034989716656239332194048180070184792046240895405446872684872843712216207823837565872582802861542743523329060116464880812013370527249980900980539023380420679161991911357333799225251719742529749836798355189579091817299979580330985588718104115553514345190867136179916500085711374159780880865582056900632277925582615540595887358914971776574778934864541857734275351215179940441715816557340309908917069857500985192596879307283323987066228276090628971282915116452183354643781270593438161022401140168398338333572512707333963819434232968120323204659268168772325742029320791644685511902995390400212386038498202376839447304637359387887758779529027921064677938667915149181009650619103365487454882974147460666296079845791092378477874395097401409742600671925987565126562395509666163846325228188413850419566636682317171986036316687625744360233801296333303777354442762247059761720074632439524627932251958580671858547171561669324520352760962585925191293704414097176008886232490769702995804420603417664009115763829613514397999588339359767346970718035701712314393217305000344804036148045538442486889156164801452880820608647222032671795007022114698420175253804128407661082378261985657320560972531887871748685673060056249890321994805330156292026913819778220402149251314964345313248424732705408255971337209563148031981032397110817621934282230224666014156555191436183277793630711721258371412113512373521001106632963016412119369483097361649564487124169523337515037453827678955444481515476985931757455733991498008613533884110337757123212870155186896492147547172595370850518898875373260170869331267785573362515292283708618109428797097371945865846481339749620074828194610386221978686694105064483115359076834019896682383657614274374878042482064145562667896117301804633306782521874256471983988856560959708955737019813004654315531462086422116855885786031795674704540631189311418899372603805840993411786289937260595209367869929452890589457775187816083667214164607622576282703617585705395334866928862557347303207767579712698746681052654625547323601185078572367605995845140879339942678267763284262816061933245850770002788083344474973441787162561634568832694766262229464474021548621809746544311860569816802792059847403357268184743492937529451508292462436509407739472803665297278623154961898838973132264450598913112960455701773080421694741287105534104836674991938839580837497343601928626166998470558218596513322554569736205284389527129355849893537285271871674028500189271233482083007322625349428362131598707131485186823484091374778512464175559788935996660555205371569190633742521251771660581649374656059805886515599471962992749729805789566816767937281463717116370170716663340065764993539507063910620189090810675626081427614110662754926579570382916642273959868209104190846557594539331405337355369749443927430041648727414706477859488061132144191431220147995687912803482944028098615945069693908330447113018678595422788227758875950663084096899316405238564716637191205010088801845726507153032570878560636778941855363129290396668004947287660455230409848700727525350185988470094057410858632180333818310810385417197980128636169748962462105039288931516186849753483633158128200555117898735393604186158146020704160458160003005102657096889682968472668281079409726334264609809833345838180094656859734161785578857130059528356366703809330543674232143840557967904489838449986730850077691971521886174408456324871580514152687504091265500574068194846328947370558015827783917684391203444552064627876811051760266488718333351425662033767678929315394083883317518725175825199219713508088403396494749008716573823914949781347575499805788515248376935373087702037983903031629775080434189001080789627415641991105432940923698813473610039188446543734183100477450583663788342631532061019573041629084877361044272719413361084053534655710456311093032457114478045393837856077635253947757708298121686786306796489347827579522950560583184770329631649591531245887976623207084995047420362832178973369288285739889885698943746793666608082173248413669528146527334298130941036557993143504243779220937446753216751020662680275512420483172591013248617472943922496141929779272405955334477608028162624777160191415624700702781446294729459344403441412007817750498746700415952842684303610895717240531943759755702024118705034461105289490532796852932267121525225152587951284845725218673610697241115367666530609531010073661004363625312327786529280687032219605038212864316900248533087218455050967785006446646069228858498619165523714302765810910380674364207161861681390370596679338552121045727296966718007088622382489197019197756515723337458925173972990498806660159850233438390178770994040761614627746510136217853902565196841765566670223516307165429999895438147231220077093277940121493791520806783419432164759901042872799037768162950967818218530051783467794745101854292568391651975744702649473851391923291925075288606450195994851656290717993124212073693443135759330596004563443749540494047134349592344797102727478894364917813093999777429726648616212218664360127750456498586216394886340542912664687703023807267958017940323663985098708307527264131769580858082963852745669955771075197769999390557502708238506297510717264371554943367902315949542748079477737966088102028489032253815995055585285229107592270979281853236348028343437660770592472132949387448363430689935684475308352652935414625218961134907488283920430560717518668238457766292839263528047151032958375175995361931241881367881665209264527492497393044775246000578409725100903932692689805135340889676691080885038993425868873641678341492322356975990762189834199257468875083934524770218333687451318238990354675714145682704027704394575138502357308221731149291944799500630310705669647425851783305892896665664790080922002162151682742103332736066538205698070828353820800908274262079301848128989222846790291063750588623822044321824443214795725094172850624139022776244790461306205112055708002393787403279572822044748624128413561575144087320682031248555182443734295799009571252767877154796999403630279293935692899968507600865486380374307883005985545138882427763437275115453025622628687893853679051321638580051007438726727751812164130316017813395220500750032188195313618246279018109466136770586621734503323549895092728836728166313045520913707330439979964184222423143984826345137492570636959573992112206206011115408291813345687191831886476729719580419284510412010564745277080509536860729501605947607926177978450175297583081468626378688385171581550355181272847078206468273459773811220654981605608632573671806263131877757502868389604614425764229505626551641029224563039660944965458450844070172447871352370624389076139356483179129682009231528333209404886065830472631785396675994117805546829502118126790040338026878768844597972013549466217163069026463162696451664763614994864268285426073976434091083855584812088669601273732439430547218368365466757415037843943611045055564856710382912117054494312390728841193961301362095478462050744406996851734797237844760213097442743214646759401684416351715048827732915789935532577869119244594514034413410445621983135782530396194180372147666568947751375755021988208906810937030805156760745916342223603698464078165123997138735029812071145945072594949127446038014314230536793127914963833203650872376851706954674239889961591106056627985393443934715351502387095194032900063692652110215138491975826558008165568415237658133812049948117455710648975255172216582371890437853209454037611888734645308045988394416864627315363490576835504648044132170345571498741577220623861951046593091514175160661999316640854390965818495857324417598790392343532794319385226875113166347142244114003319966536143115659232843266197806924360653770907376684945889774145650880650250997477130882002784465687522074379392136228878970490504382060825712844246505357925261418966105712634159417362158154414691893151279086632453518867456542093884615117480984485700539328935278607565507084889059039959541144793303716178186085667784124438912444662468146204906626729026300710834790640688358289846071474229840921577529540132637543340817462115235539323151742660103088902735521033114795632560328560814175442611491047555438967275627014777107679235127427481781936748346632881615366674575602842904140759082739936157190878832661296236356322935846871877657731931952345314697178302932686703772246714948809524248180142791768119682262853680471409192284882081701087693783333758180289071947407267706031619484246263998908953914994084811529020300674090317146406609769230234652725485875255562568578647451546224682330474248996045877940067140581615657636368249060921682793685754857386300579311236891283877229606751401983401764787134626300358470278432861064433057557028807956952904948676759707467233624234478861626527455654298489414593253728012669414286353764301576249755380167337447518452249801851167154275502779828954917646725709340747628544472035872298924095575537772236449039809175113903805062866310082349648761022238921482192871633103208064157505030319201735644549520369500621504246367065895958733719332199535054922785531380923279147841864997788950862438426584571749816728200895013447923294306533302861811828803110157352663885775366456141615531429912442767753642858737100760157995868958956588531195050373255471889606908172364753133640586780158343036121123044970668078051996695094670987894471768408086567876951873137101431792976149301240377953307441926668807346536720629256849701902149724418741774004924723994355255553815368152307039100011065282557900118115513809955902584870604300805356784323274234038449298901256392423799616643604246245613880323960713506633655325505167752819813431410310408091073032231824441851665934680219041913557107979843044278122236431115849707971275283304968976465966499039565545404759441324147677283877611334684719059079708312304859833196308725351803801157247159791500336116222924539705844714918947431165974803586741135559333120351933317926405145452445898445888837267134433055719734163024033177828590524287666179827700476931205606567583463781377785108082666793482195897295242859655649496377002227612815563846473101924624969730732032142665758423874549910497847397674262956274571268204360242339298278685771573309706089711398611861082070933338606646353317989702915887386423309187214585168902409733268131261786986721415163418259783607572936101219040696409370333495572910946734737999803603756070217977020888712047272003423226164575471151071145202716303284861063940131410407942114081984676051209026289758668200699455266537533315147968892310180158687800805096254870543277674278191064757504466975232920584146517271544146306878257001965661284092523076590988779934729975939388382865628812979018353094510805901626082208169472380408906841160318565769239709524261290515287207493467996220995633673178269342707562211008979737538454308667322596546794185447711373657810819202636143396725167029105826382658988046291517206876663782489683713913296602980229587392701561040157160290513294608900851847302443961658145429472048187917687693058465393977221610193574690749134927116539664753845453753921727049504817705908199539000696773309883474340102613065849147654356960269749820079791864196166942828167492174799856017877212417421186991766185164245433462614943740231309971053174351368356542754920307098580557077923041847608413290504001765903232112062995966709243121485180055574688304802535385695665421715534365304429773663337731276667265785330098582647635183599868146318977904779450086187704011604368097064512354115563661506020828930309869155804049363631346932028726222612984686609471136299521385305513214786688985871502563680185921950596664630467654434587337252023320953969153339664907618641346268311294239456296032781724058894848964533649931320957711271754959565862560119779337085172483136302837710784319927116756474540187721449106269354226234698819720814376939857342997780372874830660370369301466176505603970970243303242904398854241326736634513211773620410496703896225123201265711159511667511095149728046756861448781058526518644565203675951921048529814921142021311541349116720378578294660390693986307366041706243216420013999576774181922881794984075980941760539560406450139747140588676443084489842746905502456600391058753559233857411828959862911537607478028032319741693366397771534581930269798724523351168392607710433002160720402145623862040899967169903001671056067205551003389553784859145507130710913701494412324227670061125200094155705861695944107363996320782854868879004555916441497904880995298022134240553445222960550872270982303161019776103093784991026814311323506153691948205952887291987097300451405964456833895124175777264583147735815114699119473904892234669501523009066269843104803640255261485950509381262166522481032120966107150073027251425118498800626330479554864423567725250398041392312131960365390129175252225135341378495768597446862868256131550256462823717356964512770292546262901812276669893413660450237988832568497887598105639333122600112382884463233334534504285703309349502962660536920521504319880039825193633902496676926414137922517484993821890183208119525907010745354278657939115564753484781404954123557532607065903198634174282655474742074749890061849885743572452465739907713204290761133789523022365680804822644837889721770178162043954565927765767673783100766519227923056991965265241715993384975506746234227001740293748776854703305264110137717051684008636846513870236859340886297605963485879108932561332104196290619497413295319457216512617261794685587820152423722186420082993278674306476470664463710395747481184136085136704780949378043259812187251006610631825171321833622190568860487871854223198173165559067601371177774438151245052853125429110148586757968164074040129915952050893729253415427686897694116592280566730001507756998925210247636388991209269776345462156641889737725859813665354524977172891662874416670828024928677435566618518501333435069044284585572307478883454652235239934990135982355393285805994177053415406725484193869892408178397041870869266149320248286967846373810924864665741568873214355042751461873184192507780970734542493624799769110683965927258572127393114325135741005602258683481852494161266485082581479062016598803720200383508904905577251516930797965471947745589824220468490124540096115011801826610551712495030832061751940344203653953892748725174804628562535034265533086172073078390362219545618620186027349661800127950273403736027771403565854547662263068619208640478896762431162477613877267493997891196592931145720848013515062291058431363537934053632678695793653431580095140425925111694424978641448249307087430739638335981474069391961538464429724889617683302088110924482287154645456815317568393861566533529388010232638788499549396690293393720092147241722417155463188848635767221120923982370494684586978259043884996552282998093197050650718293482693997225215557072945267602553689195100418498510664456266389827566827185675873352998812773367928400365952060104186687992104289255212584475727046741109219314465170629881620568971938017359506296326631725025511726389621408837740351773198875427801049161491755375945250465168960793696278874929958237266216892909387344151229305483701134971169316104459387362307893022869271054265201412485084128771540482488123135938767808092568483094643191598759940015537065000552968227151978277024233430248600771005913571251514045587924213955617306740767265397043550677801866778486516005968206904755129316846927919394961164947159503221344576830886585754045239582227396466395877455250705441142561005540069901773578922265189483997323557575432465744362467869473028623624263521584645218133501071136248721120458585129929516007843011429314173750673475806020861074515073381132871905445360732761277461294264094206206429341440725852571215827885214688069917580348119821488013709805618538326116794416861596456271868118442699970946734297783482720913869675448813039730122028512732077436560730067389095316458622929828149390184778858411238451765855459991504908845207253681281181314726866028765562808867779536226787664296030268578192666141741306615195433532854848116614755458657111999764329538551309426160709349309890289214320128748900074338716166180611176465077350845630085404672435666301302107079761063201527876283650544222187795844367267451827384524043459657159845275208908350122273198547346508742176357515895973957633649191233318273195996240178805647030135209212093938618810683678708365311117545488702993243305124393412144150809352962836561391448261853006409753007354326795760315157900419342352872756384283645440608395955687608182989462101499707791926515592373074153830301805176623611428233503049452641112046112549941209538033029332284303291584945903574089700187470233986787033804007145821861266572614782977639269285388637532128389059498963987834973780189326217612920949905361130885139991427217559690569359765827721403615441932024895011139769918622655557835494217167032860321772812930772353513182407102821776505924512651887257230514647463607512968895849254759188345722812292063056650674438948934773301989971866578943862379988659840029127113617298751017912508427771343986065655329542963320766993467362181278425057727768250498113670929290814446677161574948827362541446921487030712757126521119741233687890550396037251492079428021265612138155817249544818195834151229611845857743539389391610707166531753996627530068746333852047523484746574507258165211772716180540371188552731889407282777596225827228245212797956071320602203872430743357269732247018488082818618599808266299543777711453307928691603473242004195977430278861021951530803269181141478790209053383779787438221314693783182567399912405726831038600055832711346835041358823844345086011866380262277961879198767194028614078981218878170887039999053237071961972661103107695697761462757754913701968957422663618910719451849876086240400368986951806320952736542957630657718781345640199144226278979823776007491342887694543863621220146037189639698393035227946070941044368174796294709593441594705760673607239728145215805416914750152318517652773601397468746267232792320021014333769351585813821710051510763220621916937493511809583122843568448667188336918953389607495050226916028411057422990999559188807200828314107335634634489367610167087941927856685328547827246508807472576616637739309734723827767514978273652265748124250381258241646062028031913254101551851788716268898514547745120060305450250575133490533429968573850035492479683001311102456753300882707728284042120913863595656945829996643821698263386370102342963110336347719309693165558751436748060212366432082581861515674330857279823159106948416728147823778165707712148224844326711040445445052945972203785706884165792303870502025215986460365878171868173409870347023198246481724499574010699298683265932082799393420244729525330959966963772462944933311453515390637549856481671572646701461616329281600858499044719201509818395441006396020849704039597815204469243804025857641989521986427365511551170565940964417539121219082404718404261873324772375199160869476921749744794096499141551171078510586549233299459930343561848618980660176882967602232264467648212019350422197881994248600622116002060558661778601570286286207993729465372355464008778944346708359578406973212050024348512428404726611843238458488167704662502187026381708416881726584564318776542611290821672291393575159970111949214720229658180910077655831969641825354807404961765153567835694166090796074928920472340729754380546144694319791895575749947460649946420087152470588180473579588510453891554679290071683648442556727896784258309383032907957011114573577353046479567279376334552633220545941133131990795478578237406299112119963671225820802999806969674498885953602860308562156762812604118811867936423443237237323966848321090622663818638769364960636498127751141518491895943856938760161782818743867435194386214890327384643385484388261716561106082898395192358993246309898383201255391122127570444504916678546659157019839757000867841638547038193372744344925356193108861429685084434174896972309286119246928298921493661701785988474836216329972082872481293933949017812667593759456170390432374319912124334383493968262836717069582735244579534319724810857731944702803190021521410310770218489362539609924428286529980705064507872894502277687800553649401501797914693207297845768562605994983457054765979994569935312622426290707093469287161162641805234947872377853883205020191210862294326791058638228789937275398695000487209347583190466439341032861712672098669987297930416702997277307526921589037981683371510684934298266066244427628328547591150277438645431361133334302384732428948103921918643167050073934224956275990044117910796613259262719406675712571212081619596210609079002977607507166431025817926832266357885235558277641119942173243616267955318215243147339817244961382290723866137705765112952988542680371791255752598520570799792752136577221106690284678419602338710179222203224920405418604767640743608162725276961962743871420487096388573868525463200149255025380599467252769858014235979974287708887528123951949176894118103701071790956126944833877205551904606577425201653203990647432358592176948791371296561060957200674212235555512346343371550125545558388433690417532825531218305799823172324581891240531706198464562497081755527280514866264532077756645302662425647564751475082602035091802221692950014748413908074623521123290199298624327082844906342645741061317845369595370500389740936446655685434709296770856522891111264314489748479847469106793506901276454772442159970162771814852022207161736887203917148002306251665971917019947018294843110729550038414180370628039076259460044045478109092326231775429793484084698547630800514356427049779495664116094003856366797859563682643179909669108269812321253027153250001725621472404542407228443938742044316231685292586027997155539617733951422146531943246221705355343013189752504055569986355895920929656472710008234279628308139422532043515855746660997736121598952905457274317828597266247944567307472853424033837017628025620037862567977059584337223526253754561118257544351191493450082530027932888511050699022217141602165099964073865511277212538597699057877693117235771832850161059298161204186398595556921580570750117787657986051293151070077332949850477634223623949742314943419326003228316992827922575313450481406239572519414438502593696652391172068630408798237352837285576561006140576130640560766999657301365412390157280586034390100373321268082737511062686279269823997268207980633008396437451972073108892704361141535983771436771990148361653676386887829895958521908335562090924166262976632639584812952273771521267798551703653575494034197074542699665642062000656973190281751264519409859207618692310845764397377601732448397000884722166467451160967767530860655753334286229065147551013924294700303447661809912563401503015119506425954186009433180769292483020131940826794995820472398169154816688213697891820323883460079756736456510884386323355414391076936658668109568531937568488869677693809893961811540954244124741133088383187687686092218095311393008739720093755654013612923296389724658660534292896131931819546451859534374951359292092613159686849604221476312715442654660011901777229471229197530675575715565683920749684798946388887852516355322639372861080499110292019495448237208971933294536429260517602030834370418596122323611483980406396348166234683998101994742548809373361774707603960292995046358670721705134290312956309167139512666177873298116571354946008631635456302905504660110471465147106398104542171700874763475256880734374693833941587787951486598070911212839730381255392092992318887586232753438959337428887513785565885542964373757480650879196685037012580473873920218955947004603200535001386144473985851260083860253488535571921039930568780751563670975189483145347741851503299452344089588490251651910233174456918345911772307983159051119716064420058886617941487385901010899106190861569646192390288393737849881869609857738681481909693966112533301410531270848069262409626656203772685165104984455815616379756968127695917042104244528668827662441128704509736888618894429697458789980442246425333389247072688230207914935739822608702833985201608731788488432365945765454404001917360834450684132382457779849672270978613422338366234520267961209019810931894013558966838063070169308112576584532286858414445358784205745584732834134094105915615609458289160374276251121859718739049936863074572169660484770721948183550957434521602049536271379249433315808547961055337066971316126355971907662990029635924555794357724804661398362897540833125975146804715822494201375031003529742182231914194321495155485258839804817216700281747798150896090911889880364259675833977192784751315795549983393974257965236900087418928459863491942960423540181144303205796140597382887706262347643883467914058049909055222420329729337264133655586523272743125959937247069110207357143133500837196757541344119493367897624752730937440284904502368481579094198022559122451672114479121418738035768049903803231239840839190305622663087033405942879761131386550430407404734928236427827017523136243571445962825293632610636494344016040533174526862418036982841494044266940061972736202757444271293436429273246936599563314502571014375629245383962142809287040450710470714792593623855266399315359341207928073748950229018015438320065773746415008811198533539866660530988946688805248110706482247579703361732509068592375722029556464989927822613555789017069178519986883109982629920424946124710381064033161331407361602544076598405093524986991256728313767275626323669710195150944866295285529245138448911537597170398823700330272910971672222555182336510292574125919612057788081308904157604315175970119824374663674508810952891810100789399102156719238928999979289235464650856753578951183406905506497048260497801528173638115784381190191296932018645897842523918031839107649878910883819392270753386741453245904137077843087344860733608147453731439126782893352814072848614051568758425196869697103488283443612835478910275749666980205232589093001601737709578487767038236132670083466460569674712315682123501164778765030640188176525008940209177013951378109699736712846101295097488173094989496704395339396376025315682965946090065959984692021422565767860523598666631903183982068170135632759969613345082010353343377423699454361438135983424721674020026061120213731098839193139839550132373086026361672888692660993216591765003329083146132018635995454616382392563581315274855473870741941851602073961466639242495713567539022347400519389483501554827178601582786648636702179137804863589267529906427198795957127812890623495557966382821606874431583318252915141358952425081553259399237789763971992836047801776514080375860210095480544746206673486055733216690041045759278262636263972597896539701246827099770870706812350898852539313434006595980090281181444201055502798483572416404272371221339956759616171804397298009415041702893612148636162442843549969326302557335898453274728486267286716676827264259668303369867265042488635021001882177353328212457503808225815791414439127290539656891234234341580379360951427526013630760366757078719333695884890471339952469329674933472492297358314060523909311928784297774663351004376328714677108992277804643462541876584663488408545355373507044967862588090597864795813128594710384078571642198557282372158056776721844691276224013666834620014769260367718809171511492357323786726546683529820306647669583305219273322370215180599821113633624226732233735603229633743689225603511224822122502943685959087436090099050249788643371451723001889996601725010942050894278329755671527464198772565619762512848373776294591569020046319401290187827200284058874436600594629117802279355336549550924567962652178389779253281951408660060903165815138567559109409504689981972602596240176200847613021329994576390161173452280550774225720725904898629713067793777730427546973975894876101191124876430917008429504672272912151526144500077223882102742784090033138173116961787876439060531857277620258688307585483795994535383834122163498890220125405563679729633773341118346584371138888951917121770432123183193323717638416350365678808086768285718929225763452423245039602322873760820282096136781291392180786540811284399891960812771269577003695361573576168168672697388783021311865337099718357690493598722435949172762291309458049786470380719771703942471798560121705427033045506199193514790084507022263043950802414292600446618641282243608049272168743097773016379317391082591408540042894619839484095039296917754162219828492104788845736520095077302264576973409269894864514221514301596609421702827166926141115778280082045595328366346269575308436365499688105186098764968354893344300262303915250683117437988795034498528610443704394179342830434713719488755406133715623590659149743712536026441486727504994897664027122063279809613047843245807806082249548601508090583044279968562818568169453357955323587661879299195773981966811559429473153240699733663272425646541445366140198917122467931865329384313720629390250353951620862960598597298015559091222937736799654761623239580097614794925799310204201437415166714389431059988809438956699465904125254142853197567965635970159636944914350712287697085790557747048085033180052843899537722784760226208396837396872173941259727594859628741292415781990707870266741183454017056926714363666983239554807068931760828618678123547772261449368403673037353979992976861263478899876537596715231184412494427853684107723372370864219061927230523003525615703399377589527644840093324097969208146311922791403895245458629458916352301576313904981366299846725574529774449722074969976251693723308299928535678777019365335162319956713932375143002227748712700865661757127151513861957566886935305668358352260835101801436657558930481360050291311058946637967608102228595578558688065306507814341848711327749908030389751024991932064689599639363719703309876284148821736353114118682599235586695853956326775341806033279247618827797727049529222106496983668420519393799832680859783034480509529354447510586754221249522239054967378388985202177671644119592550299275735020574389437239309674278931824270847473735750483884214375451446281850706518269860043757491018984360355088534984230182418132413024707090774303370779876167540472016793808254786120336004669269099342672964385968526824935168917230660034741851401906066373248654318684067675065479808295551368320455444847300833015902576309655303820483638382463557255402234744502826223618495541114016876386052474022114624895177707203154193148072282442108865110796900747832077672795465122076494821871212177463962279671008777902238097660226171561181981170913212016097587701342515444895445580800880387364034229691770012589656800353438897303611169662588852027461834629192200235452999350660083576723447450734860221593042618805566909374656788698697340910265557524258835804471682923882433691008040137187505318113479069568719597268838494797649434533390295713708260059197310233468942603159532929675040721088294899576717565320996260891350835035688646317518099894818985765302404764939964359520189721981423221591448866788343458335709251276094953039280959333212254741804797447065034666229928459266556719049577883267128170421591908806445122893193551344776018065809358984687862269102988120507525549406343484912962094760630884106587672134197321652261567532246059017815745834448461768205496394826672961683532018533952680265625154851344361895160567821558246593913089891989715373743314563832875060364240303437004944118822960045842546668561970855594253823329126470391116198863822496663042948170682463669312005987044197413724194837067031218783986915296215977507319295186378155633763655792224803444008478332235559661457030964142569785798207308694082900139188576545091147628945249228707241176552073083441142530022580367332938864631805280525292933926907218421390833496832861816190248677607666636164371513471754097087450065420569518973101548201949929945665276681422544758675675895928680314247703939320925855974795749081282240946842434338281514054565243732837004606346249719496037658971446014795178436812694632230733301125030351589208827563361101785030461570835255075395744168835419574004608307682096714057450987633995693325724352081167175836260523744378566802160030942612772461079017438437237243449002402744359925873456437629292275638276249794118989097213664407467546474678634304241151222969806325409374115147280738449213732206136519339086114333161843733791250886923821099538724042373118960007590916729125387153831835341558507535733965382765058844391367748118185061751115402583689266618471410382226963534346298775059180759757803327157970504102625834560012696669974207428931656134425324853043383713086464777308791369940641544680147213471974249279038214379796066656879606355136207880831967699448879879643724161578558035973838284667795633041262346302581942398519675079312940221772420427950262699752714725845948694333554274154183240859407004189236032918994404561928448902574432970912210812769867913001403631688409928259171694041193710840550373302177883607224498511662112753152395004546221892756236150416245923723964492819487696454593056535722415570051345726448125622412423416409316243752005320995852266573149951555141949444593886593258634187940683010292027626871023616239965168269666250730802234391257403075928430286608966329434567279166903142396113613845814190373632637962024680594076118036993750511527693687536154592363835654632212187633809255729715337929964935151395047477540278868508958057711723082684153777978614585792716993290954422592812180586651069977045136122354452419188644550550609636766576024134099230781101633689230328711232203899609013673888085157179591924014059819180175103277073433206420025596418106416564896648231982025045758293414562568168698377451642898688812819337366801012624845524258634514997525994891311285782688242123607000599394467081634278724980217367082355575761615002927978694842910343164353765539660343515559832624310469194918918167129482653124131833336121525344625711321530103982184137957796802234469822134421726105452939171177712894364151032395747610759890309284700580230976175991991299914493676780936118349193289123487325945662763977868724907790084669764650186989482360829296975675532291442914618650078480931790740616130051879699642653376375836261033891623081702624171787704207885486692679855043322918503586360544078593291902520252093487821180792471857994767349503631672963054647882689533221903719490854795218062545298795966940956681155854750789963939698739625270521729904118687580131898759712187080429100055268192925822900241779501223270549462254885110467361251862156647204814522567808691591811810401605380722126770569208337903564726190600895588993461416857490385905431738296864354786147465261278535944827032180434762449161460180589133994332075886514825129597988146322233765965680458036042871115113118379116598227728820083757258808978012012953528062927034849603626849942074867487226749383448582347311627574051535680408410367193801378267739371590891786605454322057425964787428767454013457691869867227693245448853054605856931216399714179005401296139666260487497259253324936499471276701213624328861059410883033686540925872903004973397113176757191832711282848454383444524287859565444720379857924818542459613085916946102383979838840100851167394244899924691274497448236101015779970700256654307953939013082202862668649290102321376985801401722190153824936349294553467573267999437132359994359160567553215408304653679386656765878496218619768357465330871147792363385896504483655804988439001245278459561479251430317984950140318297766759344267189942042272630362235000180954145783162442283581004027863717150515191002056080133086729975694236913976444241197031106104863828177768668789108090634647535160477327522175217844469112864865400073533445873956098471709814690924210914220517499089054267603068145885703713724629556106122110013847150784233175823584260160499594527168073848070815085665061612158419950028701189174814087469324008538553825346853680262112803501350199687915817815524163060560807581715895922204104628144373697241295578036974802851864942383754958884155949964885106309310652507702361025918621824810958434427362822626025549123001165927935835124963156668380944680331413387832144615896700758205472496883007327060501498979231742081043697900912620490124820183078808693846742584803384325488642215349925211443597172514550013968371455852485786734448735792912722446982797321501878388841129612563483637479795028097139658719668367278782938914584759635654977818906139939477515106567872912799604249112890818497382672222565001198494803563421911887299101636993356330499518325734537280024256238914699797343388767039328507699789644571549771056926972623738754314469439466539959418880487493309311903317133716398147610746832836978653323364733278889306456813039805061617535972262513336763494461481587737807577817154334082957895406280602431242577300950551917457376887166496262907563166775923455820822428872494917339804832974752857502914400980191623326359709876443706396060431383029810741823477095411427655609583421717354833600490137941253278558197481651996749858061265613000662372058352275388122940356741088161039409847773197873671222682678504322323285991367119770189732730399900754887539397467675109866784357695515166047684632315175598926346174651216648623568511998591020827357900868836485085663652138497583102061635378362421476872829116664206128185287046160296240998842721442394364365107113568239378700133053438727709486623563977532947754508857617979450773324397412129666756115436442194014549930231187107090602377741774829854026621367135117653613560963361517449441641691340177020199832904630294325140636859501737101072822926250142513994905243301446933569623720771833574186254239319632689312763509251796931966123852371574815064757525661677141834313577189943911601863601801662741341604065165789865402076146985383540839770027514795797388792373532739098601874181455628802593674280374487836420510096933817535158152340998286185628714655965091696514658451994730600302622582434195840620297418525562914926717620174215549858981603412521398043199770513746813201655927698894183756792301750028990847820907871512802857369026150134190212966975348970418284638457561899125269347956412687814368529956311431045296905420152554081901543293133518978722964115691363388095747692340785911199464419978930541655931156981698170689189369752296326289810982298328237897093835109114119164385649347332536850825884058794482064984416971418617512793789930500071069333365831981588313425035578932825637105414783463270324523824789287702775967367440149095287865632033122258689114537397479494271855395134821257418447700132240306160806266296493105454248584536017815139215811383483152777225738860696120895220782008704223404966922171655692423465163661462139751578233643886593585411584835447605763571676558285139437416111591362049205257707433753638444496889782028528766219437854643388962877473006286458055988919854645132576470565900391739649348723840951732652033920047425178429622377725706070551638778153942255463944404168859309277274909300768822039713730906952773991485559673089618229765302903680255083088210291801617380351185938627851683159985712597191170427606961727290207882015659774771735560906991061538572654021432953552915225923796730115427153488734027705447814071401193220099652947906909224223852027909013182274431022106958456260002546963394751384477250085756703519170661170182276952367201668925193093325236674351680396804904043626275211246960315899359809070882562880022747458566177067435682040054092228731461387380556363349471152865193908709680468140106946753462199944632154455530854426993183377870415167530027826786138377277219216449840607488057078808016797156461959863965755589068061546783260282443051788903752013757117499895775987307329189516346001631670858367860445096173183741353326321652439125793231119498660520630422134917718519985022501580043347082652019384758646812269801205334996326856063731616758248811049571245652861423809850273473091261532753410427974350925139801959563799911424969407072777632795273244440827069795225458048729244693431838695474026720013423752215089762002297888168549162363393519710041562986713196654428911342512145576649431258088628161789431644010723185163648481904925402599003864991250415730982603729753384221846263315123783782532229881093882943520621206326983854181100563387991650297831966307848836357819766345271327371938784438926874015818702489381853145508332856262252552288030523481190949645558990749550960408394137707354355485569198528244196716658564466909341444857647309072287099477161551857376356337887356460783349189055474805603562874784869568221433435297388348529450166085924431183843785543505472611252935626933178190213591799851335513718404578586069051728522150373979525619800323958252079885422949109928837634883917051923833679037354551787045956918010048887464435207217891886374640753372638371093231129672915248178147166841126787424118035668196363851099407822778339514720069894212745871142175436591047544811696291709994805545808786153367557686305315778528467162983602792666508186850108805278933044635725355365722210935604551010928142876261046774386518006741273582096943707482666810878665180655334258276223912597034509854421090256355742698546859667941339891258620761231380142164702799017961359776833774220597613926586181483659141098750609670687116369877670237189532098122616286863441377687563629331840569523723868814764464360049720668821896408611538513518700763409684199728614351651679119465291887226451358296159332068736763146806699704349631586822936807232800617293892411133709580091171712122320071467730134208996111036128098170749660220868951420945550585912001710667405460296504026938680027361097838243001284295913482177447726375189764651581704224288877005983406341193396681133314168861212264456763391904114822926567534315868425035483211315719436497869336140695286886945627867437208333078665548257924670475948534196987399075200767190752106353816880319908086508776915899187539156659915806787981823000569472736926541666404190193117941621677936539727814611489758472971992553577582735111650807843862858485462920742419126654623101163652570065142800063925493959933581723088864564170443071483270184863138713826341967502828062644313229318557312342488492533698946511205072719883841582590644211103335879525165649085096672284982339735963659439887990576751900538930232445503879893673951418902785936528391047180936756367070698902476333773678364669059793530594199824729915797480627690754764704006646418630970600755795806757023215377290424966762039637444281556759075690917089377396938105549365277353033092840774705772553295953425517406491537469505960261561690766702317334508321113009711971349659824716765186952924076314471345243534261610738909363096513748479180351975186464873162239506943000442968404182393925398969231782508465864647507463891167388734337627383869630683493340127347101698114077301203343110706761126638472277959980193958638734401017529931948790834627448200557992230383814874837114494093375497557339625645862992908669861034845610658584084886974195321536390706005067786572913497727196626360521754357422667420340747295588233078982700980250114627657042801613405186426281315655415499127808473900448882552627806915568277575233229671098172642842389360846843962007555732096657630321443939498101553428023789252217595317693780519912467773193835262072048529013043890178522476131302117926183521948038347467956838337504201691581614271815832509851744492165505642080708751803447890213996191056691751357838393835885186733007802155825493163158079356531932985158420020171348177497732841960492918338127503583104028165809081447293299169092826021468489946556982752601078418404064151365188742734325915408896235333484957495973944608140705378618164968783024965646901606975104726412667449207885050421014774109627818529697107160660774587029297662617561119690023590740697012038879516651959463107622053486381460342514642515316372971031585045644247085411140319955934921914371666866620124292983557252184743293334647136710554729336893485034051598302442047199747609422698344800597801035115081164084165207731744718166041528018964182572172274792054501864351731060347296095699223457467818532748113349424193347685479202297454352916479916048485537356706511793234088604733571163395570891206409194994203502371366961712866755294322661440710420115489668990816000339808687888796939490734979801922172589617331388497715137812386166945304724309550805552291150992460562821267284716839953593741467091289759431516450441433643117632851121839410476101694904342197402367114642959239732738358459177019862142395464394399033481495009699084449769215824646634070329459263447765832535093435101828768098002935461493328558517445178018226364007907673996110886621040674874020123668317579554720377249416530306789142487099459351142000862160196026134718032157026339476072408613437360992965493314533947426801802743485579255897072057195154164792020664823679267930847689387770333345534495630603957216433004944611230701653084074444487423457360703433156524118055938240856846747291107726064325307241862422726705011614993253524598311206948701217801859898469800781978835610903565209298690242925072460962036384566056796169911641549467554593167356663333018217765582720876600109835776460292155098132560005238565324663632963688381046918849908768776295663538836914671771296926344816272977478697579330646173819789291492645652826981694622697521051399135433902896926342833487425535688438359214218049419434910244591167049025806850233614077310581930876780041132354085271431200972841786871851196142543219501932897847765755412861929101443296184070318129185883427480161566817522788958911405686035707341763337617937474544086621377193197658840512952125364252600216200750680786012203022537844592648576944746157611514771373411724958680532428063601566293900353070338715614530701502145067315783952860264988600864811384352621182999473427399571005608085612136832846384982437432760408581007266259151139157738898162325341906529711819890224894877026150747372723282732323845401022185225406209087342437514438255724582361169924274519926753325362146687895188434822602684365252197431186777376428711824046882499997942685728112969497300300991271449091056136132244129616145847493047711108154925827194123087446342565447528853612484722138648424308799481497423272617292868666654606703881325302046389952521959677739809865940328067343057811907888718115994680623818386815460706109045556080242980361785864663272758843629579615211862166104682908319136423289953221900200504385050925816192402989811741580288834860715915884813272170438614805272989273459972968456987319818635252860067414656398308151604032168763650680879148983005712137473983668713978459881155210502345189715798923386055361232232867811737510386176573764284844628181886669764565839962519368061304782873545816062971706726584385785458241197938114831533738325300168595520883479732082546609593174237889911554714689079967671063208869975622534650487973618819644284376090447158488094555147919849178656252629489164139557810468378085469568069094713564639234156586140304201991694843587666056512170078831489043246258649432806268277657076995344787446103343408066165022685325506873898787918637457513779573363575814588619564821354899149451923803661980935592189108290465733466463758402444848191052188524358966788505114853954537966747166956883622916312401639425233403231453567517192661406648190515579265449541309967230201339898914597307196618216687859004016722303051773229914516230519481516114507189251859642628881699167814882811973828108246866490539769275595395086717861173718755754630876267641125161262562163116810607747035640143817676681106026365443857518050120781200377417551781751935064046415198853787699087404883677103772801055678422345277613800723017259880304372613782476202614849518610880636509395718573495894994165877149302576011507144078931703332044269371840633668197139343585477675398454431209919903011188436475722733440073451352983305102805112206922825276483012010045322189289682797987852386654494305175282634135170955450303272481437819793057459783350916700350026277271404354442486781595821882911934715216174232306404921471477992563445634752080536173573475543749374647737459972240304514869383915877343306569239207171276110278287414419100381872887803836420952578569744183254896044140853700690024912220924900006496282277498541313711953928343640659908049687079701345866407312075933007203295320209247240274635125262359888635823164940748591504515197638777527110989206435094958743510951500733055899005420613748683131327906704203238824794503063743079724899731923446959353635933330324113774566025801199817430327525823995404113180214038606143811159615541284863368520019227833152482033958241531751219177323165050127855329901313726872252789858363841751352497634619396719211179053406356167236354325666110319870871579594925700863519119167872832698045626854477527131312862914813198357455497693308471173980429237060999792560772509711291323274452564718961766454305848492230817906907876046705801169516196832720993054255783890413835152504170994550502836265630906070367217304446777946027483450116976504943473223125291739184267049949024584725746496635740951060519891598370185410999230353824936310214322749649208339375567728833977653418513483819470089375120695752048354461074871310373333754687924250185344169929818569510712783718563251123766011283385670868406184756513352882672541308038955421302011175491758628802188339803704796914750802009112492429030689365337060345765827610560110377965486126437869241772212585257790233151105879910021187123281200999285712026193855399945379390064810490730680333444639361434215433222607934358792014271406155718714084790332379475678013207365917989150279009684500990708864661222389701678946712573522673502231146142979439578219000946766171730675836441296022508966596604472173828783807847657729319508543070339038321169941612548505001027220024608792244147388310147659188933466553190445760065658001561030935033013474983734043096198126281619421004128203668263883286152586435108171839087613141233588254467989279240857125260713426548672427632156822939569945143300938626446088893023271231000489670610905272400870027143032984172288697612742238494500314957187390803493506669327473002643405077196037362807818599216237593097409264110665862425029776680160795370662013437938748490611993912332528795330227063476445835352331030204086454142668521826494340712673276680794441914487785345827030983062695582049386173920357573375717603548378274363851113788610291020401105234385213899724563232536863223776456217735490867442074179776962831810966602935698205802238583989938141418200688021214020809362245714787327289740253129482952832686610877104290082427827863056522868980146171762506189632929293644542358982171547502020240211134409325755499590417593439696425851896434836311646887346796987944616745714484058460233861301128092129204951364487698781572680624612367101307840447636853454690640376356703071649590624307236909442196864468757538668272817864942799194468955721151634902850788716040059137795721629563414659566661819474421220770079347537383846059236070594777497905597911792710015245722693027948832173286770860810837834276680777893095159893774496154569330959195207366470484690319558927698326090484629717990527261630497565966593562556473567986224264609797227513108557383943025749446044484244937103421849799507215086367443013825560723085858148422693893132991380598078270484453841864982956997813462394661753955007416560652904469237522049796680555220240548260913174266470165987993514205608782298095102651371794027440965087547936342290267108803101581997070369809108521726532204837455814084783605872393590398674968958855278274319667386073268806005716100007021736711382842570867176291265580999908981305807549746220092721406831918298111254765712753738096349411021495613926041407025380876040759325725079211374980303672095374608353832625505018337333852756203031853228285394701202208148453425108159787667282573914719627081070921136099087142271343867517248903504523426037927514617940979012063799084021498121247907926523044833944762969816134573004681332089266868251632724880117685507056988183276463875469631768550293263476742504243737272561218118386950638214029301494437032267034126127468142765843274934789826466423804857438990356571345716904300477445289571491556993176667864784292964158189947739817901445509184902072659839157893308799425758205279246134729251393051182934876603655716025619504687500388166356120982791775609127950555602080356634134770171986059214197722616303320500963224303462848528803131573429773762344364365252111442309241539291895544439811005868683952874685348351782239599829887687661695701053215390882164577718026145369913897613983036342263176141042671187022577584416816932122976788602478343992128028870880555653820945562262913632205562075899482329526938241494888952652774731017743610093463043544577607867549994798179354422645169604666697081882030160901011713887114111453871910365036514040657327118699045571174409076233606782393235183140217321664044496296827676564544405904492559709236442983060453121977127228704388066615724025846751137508560466509046100694973924665185026195864350637236338598161677797024655847014184881315195428382551081397528538442991712980686166913524179002987364741983562731026316005452386373065409792835586401579864639746920310818263665201505189556936588646708460959281409081903303114129343305271575254759760195784371238737891557867365861764398170961937379791145677226783505186955083369795489857736080732422634128946003672945915398312454478655773628675519859810186235819426917036013333046466276477692987505962507269528240505273299078946909910248950562542906653385090433369331808557593240014567560635805055078820162762944139129282777920599021930800944551311499437543230922307911041731110094717913749510220096732095952131304840711476531699215945043352553190262541406893770821196108220105316385969186340729197037434414082513886622348544763561024418263638782360362589353541721593761815611414812464846366612122465873218140805676601954574359616682742225488741927554007502976676930123823642163523411621594057367435679933715413647228532124031681806264269891587059165226680848957486613016051957113386631376932939973792463110597753988327319778154230300893494412192874882069108175475430467327457418244825394168353116178140598601207941524513790276900315331087428100333712920110581046777269261718548715635423162958925057664107739270936340199649231061646867238583783100286617331608015236620349572435434186352588255939226655595105361646109275221147286910083291985435283119225387543203314393833625991019515757739565439431652869397767944787029257802144733282439106273535596705611423592745200736869173574634868545387412820117955720213519643132645422528138760843046717406530618217298643039454926977573167986197543407065571930100156889818470474536661204192719770724964536812839088874054554542801828509456007834088026780027188043018784148823364105880731724027265693323580650290982809054372548430143724305187859374244329913262209893249046162173136961049060888433341860424810804122349109665471833047910076373568675061907416605085469008473743820672095906623387300861519699767478874532351619539153713740368453071396142862265994943790990062318635642851220180690867275759384716521415710746646358044169197526960688464965746713290566984815675769374002744474439599377583593970490074912403520822801572394106081341926315037269678524542195460125526398286585117302751825011217404921037710394551245206657499974510233195260047816096212808290435144803500258571263259545707545018486132738164742867322343630844534159390853259842012876680247121068471306315005537681201470151982502779088423095512057899644100830128279402013326110029862366558598003059260631232575900566137353649592649978105922600908377301077356523465614493168881704953610335771536345361041872194139688926419941412045164652975787052766995654590324720603348692612527716185133274703111189110020035855631199777440457349177236944402746376629528137322341567905054613259786142145332790472830370318610177370863228736258091634752836750353883942975246638533310775943362117526113143002095360731257294403237456149232770690407203369647902235405862101834810702430712317944634111485886596841794837090815094599021876385173401956102235855369418628518931877278616536348408397465575283764686230210201058353259837590847249116967982338997886712948867458673178039232359232540845745794710042415992908603987419231337724718961362823340672659669565175715650802996870341059337472449627935310077299493646916439394891025498341462956545850958759681226762199471811250882154317151926876491450240950333527643205198152053182076418880553555743895350000456597569863910064195140756917513635945908755803702074242315560637120004152695884800102234376754178751516404217407170841735368697212172806406048045304499714090083140923939548922260366270178808805178405694712399914038190760465391633440225112995276420228513146569824650273546198356376819836472705540053819873735985596409857574826501428807827008634963675320871107290113498425760910598387620255784494623437147598160498070750228100109757561981182292853424809251210244746499828635626687059504061353740188338111444103499776013008181292232843010649082171416127361745979957640472127841956845958990225896659251409159437691227964908289240061887333188400675673884425767838938300662367265843110097045209976443038090462327241480665600248949909291251548323915114933261256123224675229129031229412681893634823693580198890109016235149879573863497053826183082535545859923860817849972296549598212460955418448725403630768739270078925094209155853538684949094995342097021016224307394395896345896855559162124621438846516329701717226034700651610283581717999007055434177182847275644609422354977347136877983600482926963513320502245130681733823755273755918476165188367633092185822034861329140301768069596851278402996938460359007519206176496085518584128120828642595025115415140323489819312852859499166855690648066476835393778834030557409160505877001117133228822176602490855909544641974874783532163580005697319962394674305656556993112055702259805338584232887272786795670320983144672975958980409070705243874342115758065403692435002853776182119181002637802963680771172343312929817451754658242186927662276865352123117286428591550849351705667796544028405433815962843451753255725214585281970719763023382958899411492020834562659992457420019628849022377823354197083438923835931622345297383482220772301861335971307869184355478032048359711239754075918628704907107018018069075022247907593196369732641192374174677799749051887367123377982416471385566649501513039320163373777126080694241428193569425939616455375549619549679743722368446222885257656903921272876797534552233442770350542422761978355948943358007900888882391233778540931017369054913974142608636543892799807698174432235744187316772993775080476964452080766328972771459296200310688333400184191596874125213328339259823256124427234935852350971504970250569873000971225418313235908385404903962553726629449345272212782477930170114685673775159427451195701166950745051642307223691548170916329876463271400954173080627864536199997866852147425952430770524428665338223400128715115164124653709424930061821811533333532030267040116624231264347355892873510026899123865786489343311983791754201772090744674120502220344806939099330527611223480575615940535521168430803119880506146616768931308504352951707888755403110028089645777047015688231085126831241800718869292142256953534492581329683472589075695314210080544189692269831165941631551628980223734706470036437034293872177003180734757346314954964207677568884321893288828633143391107090829507028271821885016035130739843067920962050215772104911253951547274461578125451848984327064227219660284410062597297256127693272837316596151627806333940488364865872391096594081808857910394186971845969651494674347073283042508826405051285323148618226099457304049776896637522582845128661933740560384921785239479445205830454618360923024109737951650506386071100121509462610900012153489135383415580696565518160440546495323551962463812112688950578753486032406133706091290976312863481848991731855729030114541600144003660502897376483005652967589547320257098076937806150111684007610329683970579238500975536148039376220697643837699170588104243385496054107178161346083688196228293553088848134727284797691033018745035071124070592289791379445234706348541655700755907047087080069544306820058467504158693143390742109838458585718596271616646716038358698053865254807115120662148463881236112694104988325510882718628108428380577105053008758123871539885093200702233924326661146448895613333735667105940000280089644334483908965646912983826486628476243269364398966750295750149561982979506093144301988725617402681594388648016220397779530753275330322817085136293265525320685696487835323977339028947083723194868409302835332973987025110745472112586010964074248292442779036172731239673746242801432921339601814815297586873391060875282760060444492538379601270895388227421676617211637618299350874430536774713476448914195020191038752416520202138513317991601076785901188245071771211669152587026033912417431777425297456776877436129088935227077496400179560454779786077861483548260876455120121601317368576696100308027764598192635214165859540341796959853452502446692142796356291741732407084064529339715692127186920175194138380382716129286224037837731843884235004365176422736931652588670316109912921189380251733885983929750210648500708220248667767246236909418065456277322235308653915852916939993907265025447415332457448108768309575907142043243742751047217413260758454777153638615678741682327479694171401119092166608828635702035289599530356077527080633349662461410995686563439486306177823438923140656568743963749208322042620158049119870172924926595466377865526542296879096273952847233050788425679004702840529804957128392209373051209957708162376716876735185612682020845698816448663746121263857902123788216126086563962392507843644506430995759295241557547061248141654380348692477298132247467129274355794929103086631383769301342751693140572983319995103733070663414607103119386758395039964320929497059084311050576776299767647634677541841668571769690425738487229588922576052960515979154723842343204803233739898045273496073745967272412197845259839508400545136323699853065895247679499876476243817046430687089141814257357807749421014942095830785061842279244605124968369908505316250412306409149175127385552712947203876349958655037800490828189983710089323117944806676961132296671362159643425000820703752101292659628565099282929909966775755755479647724518035982680556420845449333650087398526194275780273738821091798994191618984478040741306239897575896928655281610476458717290661636511203517125751247585037404838789494870697444158299325106381237901663416557958290138974147309306650895384268192968380913166288152060168754569981662527368353158456308655635889810141818454272606342532756372132645665856531047613797388879566060847572161357258416178619350365050797391502893479568879256085971044982655352108246159387089698978817164706718633618779032612364414900980054986982932019543855572522310157887031633324028801684260686823168557391788108778339258002475149736232952093642824481904328817241235742551226533653962694446691219232994697360776319333190233871358550762211634743100902224265429322916882298700638475121086127574285291509899481456314415837997993517027482308853714230893786064428900903820132232811286494241516458665734558916597320141434382828681086060429491919181149728914350416471794184102795674711374543556396818371672419112755509366803508283405979588491910928757708763184855675096100746840445100806761124037766015113145040631268003326670254617107515378493697772629803302270293728487667838217610868329591897261048874605426960944599470935241818859777671302540596106489227694965238674926037773996339521962186633814055676036082207781619288410256628009716586802305654938096505193401722222930625259811992031592804069412032458433043961053906310608784980417454552468709105971855772884586896534662476810668848768992623101868182033208463267468981536393230045519454731891459907009221326519668739327258845371392814218880294936848031064834131932090415699095699895344691084218014476968301972218206580620598192290206513093466282847888082621286215018723181108356526426158253619471843347564119573208777313471206606896025056223217960139065277896199070968173533584818189260538575154838396848779997564205927107869178689128999289087236174711337328482612621089924315237716879140547499205376513791873637186703311312211576071199579801746580074470691111668403813145143232812576464560843136196892925589460915203328309876828361950373939239321190340170001520743541364954032376501844997801807434439405086128908558903736812007182275317262831507739346938405148976867795530604527702733102748848341536781104623357831816991960170543608982225439332818856699741999295566577224309708104764836081570072972474062426901666723442034517399145109063642510923497389524790540974961167611037987370827773986222852964766224354203722756185246780663156239774933426336025414251372310498678343094035700931272983517161154187450194959545242615758262509224662548546936467734131396787596891600608361336700617900154935751401227630323363894813163124469502795606320012176613668747425578167078865103158072674174168418125306922258342448174669832417250297807027918035807327228013207981131950063615973269516534234129442512166251989007889904132489757009297838747747211267184876773742753286799262040666150961045757351702543466613714348143661482019162787583327927933457979360825470360402031503513720166063993438340844351197909904702060204777540782750750669095137515345383610148970848097170638296741907656128261470342009155992041465922348640741152126688991080386063407027058506148862211492364008003316999337602999452957082356404474499289400240918500349205186781749626595536967342660055778258572473251248819232151541170098261537329072681800257520429665654908254962471159135365994219438548075197068053533521184840273757851077947868244082800981182467562495496713681011233222451229865487326818455655234496972692699333532032307973024498239070192534525471002456814587516365954735981887506320957458254183515916881649477036412269125279249262991315416551826978203101477571016462725955541249010880158749264985104460593296350545775444824991783247320163908335177992163535093530523417196972826645044490874603742196674849885704950449782029274964459902294972618698199185188683586657634187543720801735906441413443855395659399596872043791380250605759857287192290370559751990713851471624523913323312094164797971190353104097590165000562804023389250270549630220476761689257662829419760946909263494388637220559105514761391964932295531869379802803052603571642745589927867364208819884981323306986484394889629469510083806156424802484369001630316228229653367070689316616255093252654383481846094185972004444617527051077519564686565906988281123604207934507479550310506448746731207098024517099847365359994157924506943889526660605592384056182653356369317357113327497469003453220409665919980484202429930388356659284908367384319237980013121255431007718380619579757035273386607581536997335718514578654104557853933480822189144309531715400188769129569888226568030551351991085571424423485330185978966506916722071810940927359310042860317608994615178900541097433874930306105217513739636786831311252175537424527214399885815559790549607121825668161192470143150477872623671102870791588866976555614529281133266458397755114321047903072667659176196900048990993822972158751953969811273915877978104520956243239567568682165961266458609819857184342476881724783526318601094358832600833445596357774220291258532666214679557214101838363564855062003224824766176631660927754763106775836932161631384717045816045562379120710616573078332913879341327832955900488949953114485639505246815605150256624126106798905586524558156996992609504602612614875921353482617206866484110195098315993051867918239882631672761834911624863358001443953059258964535025801491934152548696057374894531561923821451807853071261635452579071494306494885293387842226259244996691782898069242181149879670024999115297868021056742007151050427943654499780860707914341233550817999402162195753551095511075755900155300662860593873778148199549474904093809795857760070489813703619436100807389028291284750810330397723002978523602388608494440469980104029649835671548671222388384269768088984628455595853022576869368844715991411476235304103894399210228256038739236129582243964845968494742637086953433095886346048014258555319785261539605238134882186902378855496867577674409731693178348199911510644484962536654131558539500806174162087817606711965974371393161364885103736543656658063357480109768434210569413915235349695587838675581196892210003028304584632389752367182787736646391638835437852454248067830697216934733538198891618903796736770705515904133702455900888585257793634111112952068185528984221086170269185747417269341730255593522708710329613083262412953770364794570253161807760056363437063980353020406924867626750026460583040026578059739900802747577986834598270613051566372254920186271866948368554052323647700035569208623922434517256150185867380035152023832283809751022776500353572967119154298107549241258716449602710417837397775361646747767340242334707685368407273314248709202059818824209668129684341856831619584499657678804492628114432433910797782200170490980032979091672665467388939213418372031628004199396822767106118092678640409685798796266617202066395609705254623369346681009981360482162587112847702365024156128304881148555738402812971677446892089474446790411564184554071216793319723699126362949463960679500266036670047308362089414626017188838335520980788091216520212840111278797471265485149194365176899200966389252281390616740504059493363692707441479418360264014485080756116428792887575013097190681498014504124508899313067003265272194640279936188580638735828117443139655255999333824857678394534692324899940348410499855182050019384737701192995493905997494777908683065489915936059755050140267773377730040239299619910760281600887653593158262340636539434205552112257275390688403102115704761586261237701366226020043572886604860916123317598913522885408209590626321933820251453853171591636034920614609511116801156348071977989629155126120171247621701871827656661763835268520414561080153773312830528658041703345211377314320401321006763001556941843505834894579027595472090889674909282036924835805743329300829983461018169254806137564956868240450235370868321395389603985518144115507976828420115528738825923173048230296989565268626189054944667991313241712369434042073883814953729137569890325957062577716883677435861625761573548890631417911269563622742453316869680199336940400126644709421792378577234515114830871888079473383198765035881242777339904876443281988375035848354371533287890553422882334358673706926468713983450425987764531191513808410373065364604566560463792253658574849383259511630179621164682486746951483518113123609440287994458036032206527810568696770254710195281300732324291696344665030045414750828110568636402575096950606743527300471935356917122888221011515295335089804637042540032226207727218358864808461233698990448357845958648183624585204140057394503726887908438838843463654286607692194306869541791211320837154272322918861202863590141818074048863183103049357077494382299241225204578191271388486668151866343959580628742604990843570261144458400272652794774494524876810595757340578345820813326335425222210271760240275106296077779427400633081496830953783646880458002703588386204989053452051085195280039730450634086469075385819359091419849266683803044318994076554429062496717838196104743237492737995749024180537748022157306603351725698838379052871887771158026545800923410185266642666688391393077825922648742003049078061392865688577181203954109894604824941785258765678553254809393871223176035972761599261687880063178297218688699154402829407257904356394702487537259205781727345022897369874185054924603411688240051502703860294805575203064208576344948092444001312018986932310068658819357061064660565705385588174144025045194890608582625638505433482447474677671946456603226675155620015730747987730103107310888105801216518426442017432347495990596786094089869317245228502246314893064607250016512638995434248482193569360826482272773117679140626202489530315645423814095871512544176162870074032816780016156704712608526444843408942675154398872773851393651083418177425773366651986128994100303388768192896032877412012764308442208601161893986153446396510312663059224692218017680413544786957366111939411110790662110046613752262574483251120934063753821756353060640137508025922225343571767319547797755770077814210182676515942165755304523604191250324685351793788344067030371485383212266790679268390810722297976949525206059780149373016783756174461345846378664464981366716239897635420647715221070630397365497285246730624283270975468977284208797577895393905668707144632452606710079692479472712165452141729538187474726995390462889016256582062158987032976776303276006189328386003151765174660511457484889909600343860045996385891351339261396058006456694518378245817893789719096059983135134694140901098004506994762065380671881503469817485928851267082216473644095753701990823015739643936402019253998740491062372074789488718771737917484309707113805978464200202736105320395709266759276398901047795013817243269732819792284533632422175085601369883482165173900835863989063494535215631719785159618681186218916014456240049481567731702259669556975098816320009701308798336519034202899504666912001695961166216576024982680567428210349847511579192555739382137010109103289961282044324403060087919209157300971133757566108957748367839013818403750340268836254943254452647958471517039646060892230074553414273678630493611629515781601351920987414427650177806944663180790020418892693858283925355568961254059499648814772314392523097486952246628770029668051518500524761845578065408197794223238817915778236577890579562314440002232544011782734045325243175824864798785739667267318647538760740625430101335080326296307629142259902501169100300609754152061639271026912320246835159591761195004568175818628051969817571909386125019532679780426842985285054366871263299177733462869551406307294843752485322568061052250495411284351614647867944010046568761526363929379948897862849675583394406238312811154373907056662921392967078899608301406412524986628999921140126694167529817386587308918730966415425740029418660332074506667087370518523954405928088089754834400409895403107962887806196147452976865506797891912668039680287129531167673421564312622604692663437858897104972914388363275835317758576071454787378774996475449314913001915875265723734331330863988177517661208805519254181727605073730006597986877209873370533187752131508620148483561260148959175286727432400878791015974636044615880031823088100044446722078586726479037756253569189964992662332754830289006389568254455399883698332618420129895449322408237864002680936345429593651415858423331269672212257301593482553848974198778991928044421461647904421700654750983530201469731429422378189853952723658984471303945669879519311248138866202680879442888881297498256292475873720660120696054085415152470288140716767573107233052970567857507808648889752009221711203594783793442933705047320128805088645735500875917296185837497382732697767498973298132253893739745905771279845923068568629413078440010656077290763869549720478662966247356938351953996362168212756709558634532128275217889398771533080151338464941062161794293256585436919054350263407202543750468650553333926228332317347876267463445787103439135826279911557060347016490627844782145777831586901236137004919265523530229698734447896724734275014766709507143725550815332995399449122123633470085886806263527745201840169412438260248826028425390865118108096715929508464496792538900075034512569566543144641860474077574583244250664475163006173115237240967074952101729313401144743114823864126141330826279826682987625154624200824618788863131621136302096675019763400564193945796274602999261931758322922184322550072090142321030496988036710472797055811259328615201009911944697112613062376518995082180884718412821680108038175382462846896999412694507789952432292774797336798604944140407596847187456874757304244752039718649124488247980782954126165881908912100180148329691962397109706532233757513210607209836495266048151833075216003887494592764639038000970256404995909282518211901244781363596462335980008727564922409064619865178725103829680372293858058830739690959494811658317929048786333607370314265846816473756953829436396924694142111387282982898727025649413361323928710216466305941531631260714792095753672609382291493405155901061000621696228186363682107411380592653011837902623958348704697731513051354963312356590866920818636816342567428474732750591053128077672031638406266387492791943240380565978932771687896343488715628816093459479831720815779775471259698751447892297683151258842529150330307736785608167225028377740284711684143158403367642845113504144748461862290578643109663495741591313350154901939510140740330447114442283142983625720632377781766205018514492652329493566314059280286249600409737654216573738305732867230157059205091318178203665292287827139678613969892012677413893681311052197750075874863813906208094950987461371363010315294412820103195758856453714707540016026181917834100865208449019076748858117812391930282165492899888889970388930075349489469684189609601257656996140538235688485411943288048936936721248044765236304279882770118851942056270564457338797831955038958029277359189053216783867871758280868937282969376945193178641225120994300767402544525947458660628308224152702251982106970930258702562391718892508943527653910466793941674693797298143878899648740283672309665109698357934934293993718278496936940409401304180330838264367668304409975636891680304850657362584122025361108230932219403793854576799367649157239319666161017508316496736340807927113953648389943980476117840613192928614775478307769534235120580866028646114891929435340846385699492628464866310131331064904591130851474132552125615477345566833497603845588150522310133030232127087337186101555341640100381160515655662526833086608004384043602234157359184754763537605650551941997728401012546604278221959459846744893971468583029953462377929890620593684951795743687882017845092659079029546408279842919109842860660971508870449578866381225607599261418515511973300032653464276135648922747291679752786162081360488580604686234834252632806963894341140641326200550111960052798741089420666720748563387272648037025046989790187288724974353758841888898263214333666271063005023213697230871166871820665201418220136666487724946549099065488578355887208249181763727855220598459905005954183996264924321443271273216834618134629971886051243536650437830736883811974125454913386006106694302751833898264648532472986120283583176741105932286524932754622573576778252054138706231086323346937340053338945030480567336285613756758974862986861816547250631424110538632781228435936297987976054301448949286675436457675070208170605171786754962778508624816043473799589070641649292058558729163116252706161159993460593213254895576500764169716336572098807271244560801201658389439720286516526352849276457600985211991899832678701989598496035707715062476640219555591608302805494712824466307051387285644478426635710606469933010905617240381440884217012628318636483927776523664362225462076253995911458062141987013624870094513002762309210127108576649492218243000349374314628617837229518145809112744255362394321852715960521175366273672138790075710955709998649213791605765626637678419326751963535146341556372525700357618605965948765557263499541075797391831604387253332506277138995427151893805414938605868455594296397120833962804149855142520315331851822207753637501622564228340181186523417430491458737333557111987094950012591998007007468321033573496864854500203161641185572487261565670312190274271233931254924745551551209839361791050495948092684059893725841720325710537936256354663875512960575675446397628350677959508988786840345972059223822383881148678005152413720344098454046009247803816553863484692550166787916917093221994651629504068659233667169691414366861183617058762793532147344361396860140513874209642473260622283625211203759557530879213550839545625737346074978147750854927600263123052029381899985785728076912833600937965655737638504064932460201976930088030251340952113395873102954300562284514686394301041651298847952738614260023684450276403755101143945786020672417977015476109501720822769241037851107889929922701190030812027323387504999913752862957913884553365593930508194090291884377807126712396140166381224577736420861966120009777501740337589337461871721962519467452076874797534966839936853129098978597914169415858728728607256430995347031060732343309538525711271053611630531795855667328993002625560231060886565487895443895947657170675098500266615229449642129984951049879901608816788822691909869951381971658478981594187557203386869781950728756937233949864381030827757769395024927336396213906971965938424735707224100328333570488386238805740924740734621532358648528885388344523222768923808941867536240184780184560511941909171970829014559553475389680984729659717982650786191080819817407285534808471040439024303830525634040173256742676335576082919919738243342677884819846261939022599375423510066920782980702928735508405938724638160855338561809812749858653296837419226905536734531011506714987488177405785781488837608727124632448350153673069744633819563941605132488781909891361873949363316301094818208985198504923324142468756172518156549814137446609304502685535887059431874779894372491194999520398907356554662288283874285926992489996675674168216263791260153086809650695660309205287909597287440831929722528831739827628776068913347737413526280900130060217816641213750449162220729641372358630524357732476103888524271323116355447201651261766454760246843686522401088089216952467563284059692220341863121176766697368670717818216632379499377606942032585717903734162114904657099144199607569863039754588088570398081490003866565075760034145380211635997130202902191797679687731149778093561770562257396078634628801420765737280236124695073134893591544233588152479115591443699913636565788960035897971376226186895596346304278658439602535503383943992257948737119236329912243789902978952397042603697076094192773004781981143434157491429529774972603460221552211617044810583889032059133567838016005457568737587360775704974206250626725455231753206790936056986719564383037113622058185488893729315151940816524865870229448894285385101363005555086646388432383533190524137418309466644224327285297287687655316928132244525372358987617494448122497704256528876652381336391421810459701825532508670506481349770402321517255816684389500332058148963510138247297323492081035666458416848739378029120587614449869690450576415061439523137554511957763682660164833843927345917419473763613741862863173381665549509867341167177573641556968673017257475280756681152184011700209981567585341201657485283057630501578447476102329715584938124739425229556056632264175747879546014219026929498889261133355137252756097438482648624897754246598902014246253621485794537897415806931833222794802085928124094706391750181022156909055219597715758120826437755788190002594774428549581044481076076907707094038678461318675471343626212688552663616632660570470762925378991045570785054799299864525649522360450246297475098788659340072301405131244012602159236187135805296108234938186996434979763937478254618214184872537907509516284374793816728892332510295051327722269809674342087989599276431048535240968817414692967101638604445779819851106198376097817031920644424166896158855311650462574838883036452586912602951840479187549847599454432225924761555125731774929765263889944312977326758987289835843792330465674693294935916036041720189820557786039922210474785997172358708709413239519133363287005470470206262034174614650154284918664306526369795819380963444863330629116198676344537146355721367703803171822413157644665198108365767566452269519836267891860180343335246424219031666314061915944430614009132940632375965506487013185667991115614090313139470047732512175938327323512153639179798310103062894119487879211792127315162398657171607129395524565686565326496590576818701435801458432991276305562559590197222254459167914815427879551895482600975756491271786916599408412208218137369543573276101867752062574144925951582175289556381726026651150285562937782338419932048563230493640305901897828111667579949524427264527860941722850991780676714541333185210219768276758231640285812672290517842069674512917960992374921672796798029236996229351678860674848732734612816643939723142834728333176997879894258402917933242440721007606051013306434878082039058893663325717441803754260811803258062504544842100955367977195770859070323246330748045296063469386330464140896533806548166405446413487817560716872073009695073385955159357744185855743638219674038769241549413908079644062630746570002654714554376924822855118090469452849360816901368804495995611719489932534766157682055913541645325408946449204255010009787997413635672082828374365003796812810022668909016946254010726343156051933798646793911659931767357217681079234650551452789576031192121196867691036920205447324778831790606469805745450043726347988221884866602834473090673030291876173448708714399887428359029860055283105976963428513651536495221436917177115976530058252539386694290553300134724745049745303551932396128283159495239377377445134537852527526196352643969517885111679537768152771553618602754249042575546927057046565005557307740888982231924050396899483282850831914585795540706203541768893017850587741169665884561172135514543714166852313423669444912096384443586518982363357349300692969180248166724907919040212571998415032978327917645517702266620879226402778085036441694132314280307084664211907540811860560834608222403227640141820308792157333827822276092775430917571856596750921448190198023275767282867940506800522191526723762341815408714874224120262829717513543669955057881922884303748069067203426951990955707481414221817496516881531470931373004578422047502652283010103766685746010418490086347297153230757309508635389560638721031801990184193777589331796841909184725993256612819242841238895708851862229251697710111396207195976636160526371942855792467475293933381148296531222862556437625756734379270207119533908383461904306780758678817545415621293046817151364270021303619651620135048330961464897151037411811783588480310606050940455657619616415802852350835126937516367094568511264280124619199402554280889883867253870777777409708871601117165797193490555984028970070479163635482981012507734833158435050899603380042063487215896765615973767754883306980677293224568927522060494677482927689779798905517291445154324801791593012856011854085536248426017741477707202446926119216099860680480577711129729853970350617545402890832890057575386341599104633159754909640758733484350485535268118471041843156643172625117848433115144656813646338018503075826235553721905765580367798323629936913014649340635624328156266871997444788939963240470248697425167167231217365912938882701861000757440819631711480907980394411696487721970075572965442812484288365591784999399995151792465765183370806493472837800780324601836764458072910754146399818999242458023460806334793849040657270158880609255226919536669581375348494357670284284620815862131612026816553156298653423645814969849573170376449860833555150411721055117616831279140747127337318229113331521199749524816540717965574023646800095228802454206835527754557618338425259200116080846166626689663226617243294944501597126611248741101464014155717827174162898222702099308869495863702413619226417429375466115918621163695520972596666132142679231833411751736226266929361327194236413103682137484374759042126680049732214504273946027432919874220242317275882797758741444770569783314058436910324860030118030665334077212121876950527382979322344968190254618246556856970951892152257998102512626458899788980110218145281559179676493464521395746206086786810147920298490959805891888722250630737935906909732551664598545713487879892033194021595692010390304217895215751566807223830158266459328738548273089115383401218828501596488293888562568279653722570161600396140591545255200956304971451340195303392326087287438279814165160288827304665349230770132170731664918738900935279215482933607823162273990353099125029987166429415860986925104319999443072724028408101169445460417342824665294187920560391353037862954645370488860984180142334402028440070436706972918182482439110067166891281196945845171918975660105408915526817179789993435359349976328221594471162537382754323318806165315761988420364792250574930943246458863043171295142187588646476568049964199102312969165210721049427592293151658864360358878580957003833264384768483661160128576159797511632119334442090705558444366173715689639783605272927122761184542444516263143308212899595118611556168414424260939931278158509443083313564762854044343509104167130990896802965385912855809701384557108955246194501402627996405984320730442892004769800617015164749490296792584472962293452162403604605388840940396533513628068260643116189167778093737006751313230174455055244968629904123360759278827342855457930621050839147176009886107289634694824540843304329289583616496590778010727557152369518581807009945563351137016985702896942620469324592794392215318052836776849868390023734074607041758726998895942524924592664492797365989165026432180645798257135173982465985889914015351611851772199321069900399277741634396774000627098230729551268712669546720005487392988711675807915455232959615392751243265172140317165273930311173965219277099367328244094866432811192885599186820397636833942916848154451028621837396187726867248143572845269089740828774447901384463156400964424140044773460902728354248096838496413600561446495683445100007365148538931855017192679463028358785368120193216671327658404212968587661326894482346064642488132858847216446204044155485294871997731733941931949740851907529092258412120037558260013651869928718475620271526554857157387866797999096143943354630944771003035372020396633236140927795650886759092667721490732525540712379899730441847853558736739135315946902232688857689385063507778936349242112457338879070885090594263833074847318594758520670056452398000541009406761732000976722646093906964214011953960038454046362567791931209909663481781314888483774649336336311811301162754152192376073224240926790678583378032007825352029860341857595846773677184187151528784387176239243587311302122348922214234285260268392442788860520985879970390875569555728059735506407366122996041233479815543897076268025320063769481852532920708368681357683437631691864834938755380321543730960217183615826073448044438938722504338884784933216856393578444184134283799260593564004988992347308673110179714177897007915495558858471064308441322277500320570372985714905241036319828643182661523302016233857747080372545672562018899799145421550437206694593373794993115629090846484490249949289493344830148774841537228298976704240748360908664364139836447250257575848456874702130516025329553481537440356802680791306583112055830032175314802124892583746347055477284210383133938731312201717039283536194365906722997952076261272684731838916803102814122585090301531390043825600033830360700686016445496558890368806179727132318086840858708644182098628184729013899153601232251863093802057335185427321423899136873144018749430605315528450897204344723708440670806282906116554291633867226722431078487818966750859409422120482119457788294394544351882907447903118309915023004199733780758516146653192805910551730674443430930048383282503091649469132176654401387461170358538313575563142193197002627516108233830255479770751999727849397665806062676159500146319897713950365505038449381026717100670296796302998322380104234763502872681800654681383869574279085079154444614337295767461685466482992564516447008113779445504612212255139549393595601924727797054031013894352204734284179890921977347058100985640836229198964611549892264625174540735187008758505761719010065487861385695564826472080141412761488201967491690226402475208864581733001701807408731783916198860160949672880095540462311732746836945831085381988584820995193677512843415148920096421558944692267830460482472391676700367347630097792829265710790817399867505330548678006141738061916494516233677438059814903680587596333434886474454263748692061687140001875972132673479970823112114468096470947662473292973469039877563999014835950823809952132365102218675217796271155729793356573469570270902478453587972089482967108502274821024297220280511670332225048159902079968311754571454630477518093254773232333165059937233381194461831629088481138909028309803357368642475446957651008078228313739846645781415514103900137943822756388377877174113013876203973791742919103290117341833034644716366236027467220459236850783851840516422744455219132851839062474900367807666238277939406495974748752762602512565469476377410870161343697711654082935368170343124504440213695828209861039483626537237199279821396122784677590903936682963353318283659029608070796596553280821049193089395057760440159036149445620015282879131974714164509249499993816351726927185082358843587834228239591029658064150739995415508622071566797184434972420567651075687461173458132547457720677228489798826443611898030759500283284488226039152882935944508523516257182047935287419831129140872536971475362676061377524364341066458756407660226764014117662775802662018321208933923091583314677062064208232166170406147090604049921157011919153637558854212603772538123149499579550262458918873841454393087804038475261223620707649492163854283267129187524882749093489795032895540733296857935020757606732465427220114407512839843913051200739462631608790685215119690436180774733386252188229424541129804101985018339262036451827183409028457187192983818300134025247579066417262073609326023079652771878969416063330150463857260296324803714470479261053966839719362920279150332884226466098775670617077628233875794793483132789181422056527484590859393382874006702189025551830026020590123308511351045248015572292064976770371042969653913702492602412362735675710702720339617834519712614561475429020997665730460205870521678274158552139308739833644265444588718716013746745610165423282269175733839885724106384062040564187307165594053365998557860644819076454866686768750758800957625108590200701780268629649562171757260820435833224506570628887635922250831109658359832339927781967169073783035407755260901871989251146925076378597415506046204610034978589707675874018560086022177402645579543563948747927753366583046270779649196876391375601068812175735736507453044177800057800486562550389866147057056041852271454182086022357498695799803527449504244989474315300056598301330105006747449822379519796679135907011751210629890899496565170013925025221381651508541053451298305577130431676645037797065030002909763773247979622566779977988614176247010447486596990432930908458003665330721674397112180205823832762323156566026538340784120404645585103248622757186567454405219021590600215550492500671679666351068699841493358587556174763336365000177019221177188856723854262022909697431535041028715266127240690781811197126252995472428000351303526020139132325637645926537011714899559497800832711316141763460846393018572175387138007604686990712636486131863208459097927160265357107527473167477768362610166168962934203580756768754201400171942520858674685408447674551338473727761519468383893904313899937364583005866653392468656438559061700096264394556194024576505779494771389620559008907623251137953314290832212192996618027903915897529124206908433595525664556287517707965509024364571105840395797448649310036556893021575735667109825647861358721127012572220835916463736785749005004922846657905164909393684592592313140476185479182524931571908538438259378647970671849841187781934620397136386480616747160421312492249447687620147217794165754512996873976510480584959037833827465959264825773764345497368615635082101440446914966183950858091454562727672809243060926623864578010621634926672855602141210512529488802147310108462519004774474639112873820970773650793290803915910978796884843720959336500962671194165745359605680336926162727971547296195041497606292987199850395029955823128632100094274948095793932667758359457722228657203445706013381736296368223353234713916393831926642831874620190533841489157892914928446590412815160073425687472052591917826344641304673368323974103735507905443074328362953467786243951880487831008196864278099668265219287261313862710257816575230641716679422339544235913264015556290922627303044638911122983882625316128969190493958997799529661571630351492024900346131114778720455447782494456238564972720936909522824001146982272488140386264285977245428745640127828842409333488872769700091857142435200935795214524427259245849701469357937200831772638014333215092893334764812071554990753076743915335040626504781551279578797539959890914431937936748083832147172634040800913263124088132635482407444792943223662107700936096323280240765316494441234752594054268875643976979079074077384558269923539143214943350704243075829232633558990251226565206694857535474879150796078557495022245449515838357302710397574998945875864495980317509972713868704871494735124679891471953516658436288156854346309007956942643628020741360206778204703710194257920076183875204395879763934914792716019844128726278136153882514505144307826644097363817181115734133053233700277494489300177674947644879792876884086941674326199281594916686553191920386143748606603665693608006054952677355362102817184838693504713460734307880283024068247519263057104921255629429929917894345804443240078286245069123297425711637694125329794393816016418729569146494222263752864094114351480934853155211937185326573761446064130449495933109702600834170717559935648564357977744988206252198509830937397725758777940094926362556010424791928600821592933860240868980889904042515384112231847593774276403744391336778054441700582087150074096113002613693933036348553955587717297240477019838758978396486437344299244304399428276397926686635405346445334769817546801509461486948556084737521478085759433043926767747820699783303878922967872532228128420085380197698391258189445721553605542274373759009310104218592646096672878555583333627488205112579094992577994215043191523507090646838679856913938875989427089536218200408010389668754296651076853040217642128690191525274130097764112878295130921267934750567512153530136070815052966170209670602037508906744865679780348861647540158478504371944032172797349110991520177520213292421258666523083970017518642051432101272457289285702811338181745321996860163442141342239674616764074807208081724763063643952089673900132174912537903673949660140004921992910051710377956971188189490800571816044486793640924562145291153367357417744679518046444603792939948120100820486317157680459766107791643076382501946688147177826769687857623507720664460097580498480731670146843497574223079007697483953393142419996249449028241977808186860347707701141418387426187270798707250261208193382039799294362379776181675572024125146131090309911578858839501501272951651165219633822746766905765709062938028624791544259199702077164292191979417209555051644615561657608339900851997059170587494540415652056419061105771549082766918080943118530559430663016915839992727289814106807878816540959721402883977538580733081149583923568620851026844319882750245810289860977332617298042557148101916730681394861731523975457416535059441003113702156764667568873835669591037461764237069704574769452445941102341710445479268765001672658204231078149971890850630199431193913656514726935669936467670583510216834696189711004587068292937134082741745106811400726932652810705481024852751894380608623293551253944622568796340006122719997495223874754569070228368994064830242510805097061018145498306124822562131490241838099866461381806810169797237025868321373802373494412426534289992787249038693584812425713772986314770693987018566890760393948016792771296643879809052173463139638743222773553427453748175110110851504249519490441957721523231461545535561830348131115707005326640609238224808916606421265320520649133001656413629208491925640424523927571312327797127728406036315024254797353890802842129483758120772682070483117267920215976948295187088504900497284046655686231894151675839661294313160087794136744645635133648599618573674861408681432771835999832173557284292808392899783084000509601364436282303018948534497154194329679155764095431579718590778745911817988628974832011299455434378871613533427020151547273321435406769177969748913556858526899318971294199473128791570938774877693958790634227123148588063079188314176580277281867015011849814075972047328156733379896058653862339386271044064858723721083894822418490147755534815330456611897700292198579136665942668545177151468142964848259590027930271748225358899592416649623529045371993564550340118588311416059159919060150139727334730773220520655237685069557532402353418946074718106665676893658714798949196293392350578334032741539161771378876010732593557225195322860491534847549783367616326805323865719481538440537526727705211798763359472925223853375341186993321999085235611135688419096152796175729340981142518619864517048134708306051913820434796282613639077417019461028634123228064360128405338139174207733104765935236011621663503892903171500395633978664690059624808749607985544926310839872913496244736144369129424263371434870894579122553124358459587715140066671822951213609034324844493577324363729292595452509306821290410974957877976446255104783518452666044153173750704295154363657120634410987475968348624367636094579843180942034070267632867250349262422743954198203623385168796476410036097527333434995635551041699674413478309685382668114543649517844391696627657929968915469954127370693391857292358740469282732673239322345793480475655497393329475693498314625574153355928220636143267989014893807785951135195848258428875712794837984426451746125918185240444333612676987351593406588073226394222373003921650210810116968135495838899140016615303049258549834125822790358928644728918194089879904282342092537228916048551448589757770082356981855447450413870913258086627136768959955350243193552033031198044150909104766619301954510057029696355242771721322007217529304713812136715477205305696577324842753843187461103617410194800700904236705251892637171050273140865902695226688024649608261472797953306028698007540736563122104923560922393464397424425987144226125697168630444624163386040960826375362520083037136659495481952767182268438552328351541720951768017319690492725398632750879981601090190254420860491190655273486128693553909094574155101311033528103883733507485411256424879516229072955564160794369944119978522783833600357247516469564882929413108186779697859217343867985163154024080966844745648941313237120347029208375035762254423284622356747069948871942022288750803030360246291344117664233558275926298729796418290251014920887262204646830037762845071195268961449112838265087392518918659688387334056450191196159810374830532473251148835613980399337668356300922305639789610426623996090029294255256634644363890357297403980454178484502004301833090327004449875449339733950316474204399724707963828593159241162826275661115080926557200991949392768760003741452906046791638095598905690243421356691725350414889622992199444171758313181849813354520356182448401338026961661777872317393616044710359213022041926032282696801495797866420218168048027181123364664558860831136790104770844274425843901032847582899458206430653361060943054036773481297719210200563611489748711946192080053187688461681181887382015422397913350293039882292128798003484324820520576209728076315478630014392963844773873857361716873217397237632929975296717317653115921455985785461873462603984798654216906531233990972852235547759781458891916022935728441206042632100878837247838994570162282017746643641189758595278872281853583184433854966015934805274863613568868408817452131476215084484447306033087994459751113006090345651396094411044410988653180534878617308132892454659778844394960134154812907772017670358394915849489043262868382249532808599860196134172546486047586763742983111924279559580037911079041379641138988878500629857039225154880761620713852634970087192726261837024103647547519646026628481707543950549133318233349478593873536979979801985307573060172194323125628466194595511712201307511368747317535580599278100118412496286840338056044810087800010174314608245178310621720498341682720479622207845560715256488014768339571311395850641926203561968435750424317113624943599650901395274052694226052148803237658023407901929261370110632409098374378955567159564196095053904681628388521763427182165602169119434274452944110156216133625283792236576654990306050808702054426997799293408100264330648259154809788815321192906763949485890533385750160018052449577414240980826284814882347267944778786348348915715965462215031347274929857741611996313041876222702894457329851940439490016481198374481206903499665129017701920193125492389738596405802128748760201835027059777663017316415618191404037488094948324125725694535014957374951767834965240031187711524374645002392756806640564738498909915493546538033720361834502744385167397636510017348393585448453509642872430163550339799376542627728101796386681533355310454837141863187537318592591219845216684524775914844977591725452036006756004662157390858238528135913706689327459991917086264593964244250738537480237653441257842944654441591544305987822820722238261827440828773382960657579486365427900232157843978954117929438468020402952187801734301340622646632128921250174423606507634839393781267554501704895743529818071212369263136054220982628889357195947883795560047645597428757588367283727321300418007212660697421376168169916662506697156855028197648309881218806950278066401712496375877797550541542647208420384169949334495195353333837792802918750511673872064119392754198814106468154008152605606329234478187452163746654538263339832133801952101837302968832093893771175934917633900263177731360931610472003801893884342021332443150547451929535722363040747165675846956607805274373519617526660395429158565947688512078089205768910766473122143101970341196438171943555140938130849990003869992536797083016459194986465536093470108254363707754993096571386202949943511022691424949726868517515136904139803307652804661800627044870258799294113562851125770461143535787440666951429144706951379498023477435322699845484268446737931447881353251258255613280919729645586594575843538476497493113236911681598127551925163803410640609971826698351913647747899264631850787165118701823165827762123158961613833872865742138336009843926688657583424430031348735178691807435646191387231778394297092214942024858272097161767407534332800448170375919527606709418565293030310142915132822073854342199983028131279230692562826511932238655040336823511986704343984768186894056907565376192680500086272375867452135632235347594653968755803722064641772649115276674580816753425676352246197949334754864845326312354284699838878997763850249670779348658561645262730871577247047734106063988860298519970711449091755165689531761997324923272634550871981606943141350169436899783418119065289031010997297726927816337248057574930733955507792668781346656262448267701486653765520924518074503533624300280568459973651783176907087468696107186601288997413670880839607375561234082810333055881498438691612253035395238986293284538457587145437960522676764743676757793811222208155673431170469205787436365672438625749052390285167318880832735667713659488254702906670050964378722316011105553373416528201888875832500457110352671281765744639355362519586224337055357591556200617062638272799369169730338742884579593316121868040868683070099935784196850956670952246150645283687323807792497381195242655401042423144508886561810975593874912826241557807735613187922381846800000293644463417112607095917209831998428251774802174872012267166510861183474452943940363819320544382041861390667811838953301403231344303916754335939341854324367213432487045899203609256502631112836053195321738003508421941742864621721483604797245270970549556116555936468612169890239468218190240809633341571590562727793235450504731689700790599111981419273247976556262092736368041732124745076950490343666512424316444329852198168260564351426045554071953620994869586636160447016406301688561581225125501200285542806555942381377250451117454396170725164556484886953597826921144503595131562422517143609230326370825238430501704857004103538878155290009790097680804638644345074078676972088157285348489704621260443862758589069781219547604349033029247801273185684749143320781954934993651318330363724327057770566301264486545486002452817177376782298381959671053859832139878929778334072275777546217374128938590645729160399938494609645344499401795626125736314370036309747113001301116680516556205454605547116285337761413063504234145036837233744441288863907221324537037411116949444093238953704111544086781071493810646514405266484471567716004198186436212496701354762779503571548989609779061462119931874436404474156154284978087934960132745588269022793566226717716474269882264755509580623342945673236371617903083538075921791423981979159118885208045654461408463536232396485389072870050793889567515021147789219301078856672370890976597554614361209228819101727070260250850294892445415545688538672093843507353130395067137298019993039068180934777193856094323158826696508138628789055969584138421426650480046619157313914862926912132356060218048739792598570527167502125180837628556150032354948989598538834787553349226215082124596644811812731709072468435227021070780907011049818842439227499202025052261395557606540389708659199674214027610301149768897033701190450753377088271753883924984624220173121860674956060746869522315178035916979055842691151004228219142677873388448957642837846957994930317203868811036661399195624322667735726619606843228145914757408257767459079501902420451833872944483996012239341666930640258566442074125931646935994799033616616798775217927199283628010581310374375238427394136230293353978410073421987348482288770272416513083416896172814573620506086102842691661329953247772734922187536746672734778775669187603326349945325030605901760244443481746421515069745256995576437348452431676344305757515308650877871255716478732140352715534532413595277526768083164585580191900735301303271069476843253937907769384168970834327629036477341076918580036350037378597733414823046974499086496777217271384997543184845338751079574857848767374769963601176663732468318497307558071329092952717066215147404242059278177411863717764975225337429526207301219544624311934319396068295368073685646196339399665494973317414530497973423602537120363543765947386996826034379352960014228757679603501056330553758646861758104441682566300698585718354025235821465287306539086167441196312407850789572444893573663475285147297230393498210917824770166282603660821707945587253190610529215963449744866647511852989901922083027500263979984160281317785029158461418476412831104255737417001528119121619018515928761323153764392372062792421868873454073033609478431960045102384919416126828265927195276225334099419197034461511709283597376332947270827219374064357204456986484476068736600647873724953522464428311577965123730470074734285746572394237691557162782213583201303503949357641532892262745424713718120174610299378385070858867405252316194705993995875355122277798616550679680578173448648772254823700713920694426816684010500609312246465757809592101600832017800461920328867379321732808043260966757277789096909866370093199763216233710251952892114203551555485769941141638746962093181003552887852546163787796541335248511987712224718895829361617201369332498333005796458028684142074623735012500523540212858418606912759483856326278097392435916761968155022400726727837803782667529706513492046077740831200555887903206434624648711002985896688083078188336679427566443431292974701711529328749863355997473557307600701511453809150738731638867003673437671122809642861798172013802294739894894855463745553241935026764623365966018250004966595527349151976385710837234732772119150722004909948117732179558598889083693083295921895102511611168442314698070883316172764400757409683887070582651005756334408455125963078127474433968614908093731525124019652100435532709888231495721955922894659186337592306200283719574012576665880691286779006259844859572108876487218795975867942997162916034133741725658340034349020902369879882356435575344836265826950507270114678842538475268111527406884124241182533504476478173327186035776457700262534765391670392768855252557681196451088185136515090329351806685829732530244165199565051229000169395982193562616103559724577372370580053138764814332913721041190305681236488674769076129489960206064259094285541305143913009483918372241663405944097333879405372526151221718051225664728828428996652565833758288511772517630385701139027474223756402904189855722109752002100154244749541755551366653594333218856983195673632383414559805071543397356660501937700805315679165915988441221806669309819390663030197092293398717062393039154640441043504300049110639429968661949587602644830739808044495239822791971018043609442311939972666486044603360911331958874227292959932587263411407826365390617994235197592003177862097061264763786490303254502712694621638572791356784039150666807112950247376921095338998194884232012737612469873698200297951476740210377038608751888933008733181066875370953329383395384384283672823812707320369310271504707871328148952071204669246216452401088550274807665197471907033752023426247702320236613468586540837489296114790899268478856136243358315812469132721766419968399093741201500436934958900337905289903503134294134566763379357622410298180886185418752895812091443860813656000596392675300552702083927562550866577871089015616254855353682956919388167625807205035718836474766637676960842071795223731127724332830428491122531082595744482568707510100390130110038785364488532780311035756730483170464585005836065686727420038972430787349570890847053400595041923297902839900011192501318850872177712567594211627358297181671552612180511830730512730147958313641656465983661347398122817497234860789059078937308980974618387749177585807809083139598196552347373225556916677745782908949789050220108005903077272411378137104666640740007481567089049848491578783446227858494521616876105755280241485031140348580482165917395883910054962611457347051529743667324122655787769959815690042156512737145350670467365487345697016602800507477112926185983268648702394754693792009489298862186017423570922084393282814168391788980470409074350588741449950814885721301313815415224542083697527949250191189403264668200072294458463201932251951291419568281409398500716594010740414278799979230888172306399293335171472294196764284927299177328039293429026220702364076408901802831135243698269408828748421999767830300678276434482870364010000485449818968226664616028951184010192709954535622267747724751627308326716989914479740866820162018567054875325068940750639972831205009225451102361478438867637982816910826167237044676678949270026849117547928541255805400062728295593602734193288691428250095666882661253816436726648513551073933163288790711367076243575040694440972231669629274098091502946183681328666461101490708969801752850385396935302072797039110956794773457614099152512973729051816765009664146860616651540571600511074576995740867282859155864015975597929010510750478675304020533229277133907299000484195260514116923147916174035398493676086111597836182838401475588598873573361625456861989296347875957590105257473664928769328860935584692272985624463948228213129040249421203068963340949395713954287510978200001761355388698305280662466781566937609862161690068680073313308362956712691600483850831380940323041178739632157133222395172056950396533841928142648102098643976808528421095164355691256105918380623213499504326628250791316670028035172517936193770446085822561030190356366905190977403244839268102617432987153504845005053894130393988411254535802946656762092992417255165544970891913019344562014902004637426178982792611730531504218984277323472769823282503429658730289544031761220084789520798043256432485255640756611734124931294741395985992120459816592497635386178122132357280848691887675366236444077676332821476995437785075488765260438366402134491385782849221727486487816550423450394810841498836137475724692745395557805445980750890287501047195752428827417166748237085519340575770583608627551922692966588674544672151445520703723885164687907304767622222066407601678689370939554814742244029804580704920526340193204926262714223048442637483476784466437738846154110781782761214908239914606502730958863884530736507672326944489518337536312482793915344702884472168930145511940940348676231024642222798546155859076913426414716384189119935540429824041483539922721454842753910175039334504557881088892128913175464061566530054744702738551197926326453784869675343854225987492819842420935078697063956642390867689351345391538025939629952980165331079199368500122638336954318451191842124118154918499941349538081296219933779427449718514688738598992927925650848983604303528366958059235300176118196349388581693936499541680133576462488216123677075970018646713723820719660078675712333637745851929314311302273339503560203618121452012135048764449903589638684862660629236247236737142830406159480288192473271814582633090946966342190225238054799275784975675439634839326456458055652066478336126852155767013151650420279743123334858702357600657644971480748619193748598104949420838421107175552312958800855881327212984339207941518357413583295637388607196376874420059379752153647264911060766684249827682942404787092744579962720118740312320439145128213878614646806453905631404433037240358172301957938572176602239873017026019113311679999386568001388413213871350056094325383268882746532784159082939681773477643753021124233497892155718486168350199671228606010560596408232513429250327938076850980318274709402799100302382258798125122054918432028231424397307372949859219374496893394543789294717143302176777426671253726668819792117474447376834586714398167182423590187628150216375153286496161669188244904640282929949706903528079539093413483167675144433856874706704201760627350034389338139363321644565260506978484725065368867243999475182572287962002318611788722189878458377357885060295568745441882800550599973534191802651454552709706458228331165593602122436506220305782757798358994239870322550849873861647086904356226295195321354442100127747393286442021473554600647168653188784410895772010702239218199529414983147638514504967539013631862628475777038314219009186705510809320630815131350143749798520635687343199481850545379570165948249205454765612469878963825368099914598181605692409231694357079547827404297602848134492793341540071951429544285098450060242036748175414545104958900665575375287357826979197004891644992355982763983997758135200627457376866061114847539213737887715028178327829244952080590829431334962227141086879457083805354637750436497476181317073443601386060201936849323688762358899239769863666940353226759583701196507126479982805856658248228053665619032616053360150537989395768175662354310066250386123841519861640167155036285401429711278632198452916817790061500457214042408601253518914851292110422993597760687765308061619559621786594799862931244969684920642787693567429424989841505723987286523354393273268544456510095749126376979259858019359175118382418930803632026806292016468680626235165310871305405311393498435366958307636527674074513598777028593937222399306873029868825611588504197117208959555632202170466176940486528273853471499815526405996135914781356150485323676092672844401975290295218804292792364852686521131790196355974591102729802578432256261024024587298755814025668739452123117328522452081546710556604492063577811353296939912065936356527687395588437489584667179941642466447991883895173958008404601249254315674460565153681057298048527633508123076779105102059889123429267184820233956118200393971436330935048285827077808567553434534426964215540155551108560771779613611049909693326566639620016490214493614970499223181473920986252412171106384223222041355549173662451924463510805015373547504622122150806629605153236323700825104373527253293760841789279190718951796624586014816338625051674247644861756450747807361133397888878504703283810481574723756376598330366892170142029911140607044422715502880697786449624358095161195141470546098335769982142811558492898872783307275453661940165171442431780642082306318584811022302590790654576443182970784375554085405449030370519322264124036328953289258393981224024435142007332921965609858785779831529999042354426122724556730123584136426858393874175963619743948150446868994929872516639080061887117689921397670167495162048374462302019950429623750841971065939629871479047468200656474128135687209559734654335511381064730402894160621565967566191565947120650225588229829149837286401435963722487966365370180802961413897441647306803620412038352124014247529856758225294530118022689335168800029838003291912627748218375752867354778369658318083890880483964086317092651984004189728670916299974327504101390228864296210114093480682324850401087244572772472666706603262670116595407019333584640384905125904934481015617788971739719046506190086915587832968571806941646182099338630099663113546164396173511539367565936084906344109278373284713897251674937604319717484113261483469758664752487460889766030573118126639638595384122667714499278416602544529699604814476746134026003562476587083774395982851801419012357589438994670391536171205572402209036628444107952308100955716462860223627186569723309497581298794387526144104748405591341657614275499130538306294884741925471336612506639238500384746965980403603728756283635993678569922810870839215726017405469123958365991406331590520454132450849928232933386067059675954730301075482928567176130748981765324046607525346150325061339344450682795381376491198062480185968281471964158576481247542861640731913814748761158689869453040335212891313559324788833608306724131261241584048647198000544300744373692422562175285371695035071910595004255415429638127486743976479088196914083553526499901759142758633649525908764088991611505681538381629086437202294680163006103228717511691474570523236350602785012819938254081917753733952394437376753883638985139997588818958034163176436571260382015966525924747446673836422983620206655360825331722505288037179613913261140220654385497716215071840895228810741251855573296605489173036687866467614296432908043759097167085304288949007701640382649732698207939770727959733704190932859644628144978462262215664528832429959074541699478639501477270603679128298016619866057863853753572581931466582323420547735741806448707146717578737985890616467955872074651304270572715713886034282153405435433366775759529402071462687336607312947203434605447914286618780366064959847377191574588495990194572128790694326882886181215906426303322441990229469826751759555770293581787363451530752961516904212017214564246060425184786088073351868857195341729478638279052136634133540136950379486788691183143499140322502553920222125386799257620095335281469651087678076285241175128991620249950175353527127335316043000218743785412825931103290039615470356902803574686575303552578223964051308075858896829286728598789742480278877221615366971100053924805293216424589297818222857361257811513802614849767565901826380510072861086809085120599656965597104167605838071522241755855986034596549863161837965599547372296064667098714745059992049552273445890973898720701602620408677135991092433046328348492421538032629729297421277205809004788743397658993186776639450229952664534640926054346985042481464158409443757115655587714881674080728854390692248586219465862061948129793641874662871442527724076750497665324580364165612150133992578901278136229588145898346522410512808708944471730533321567504028706024616762365928683894826909129373352399620814093502788120193516301764434772897149535398786908376351740106262760406393780615745302199747721968032983370544367364962121881903831962303841700720691391239024737498257310270842532942438216294823873589559626628528452183330845374782659957183530775543100360111459795981063389615809867208727700280091681755211828227782366650530843851963303525995791960025431330494735400039565560523909279482492970320065233087415300971772534821290617095836657941359161844078930425635581038022052424544942088065569367976941756546750533955102537356383894066930314450105944677961720737369816232983743344589485329793733007407613940990449039117036838652750787742991824448741007429577230014486123715471144519589636849211979948403287089927232626314905339273268746127826970598166796358986535616714093822803366509333173584326770260932473775727677647580802882655503612758392878156708318315405162033221216115348993386504512834869604878910087628611118799304759543110752638939003859646781104448970276069605966169949829798115011840028123868310092032033010358152697893600591833568871035149380857840431934939133507047951440868197572228345549903699513793234552699833370585860852749841744907257039650743491005026722162681034043009525401339056279401375307937652239930527537642572809596327755793940676491337245463732500476280354994466660699301276135949740111601559594946700754105436123901796911241813261040342305655086499706711984629518555008674347676815421148998432326400320578212156222728339214857419842455079201789626886005573891016734448776669197761348461544866083784241164609033687991458528037186800435249892793345011825602589004103823953542712966239741782854678216103749704545183616163888632143829430331281514049622056699993297716573122446867863661303376555909521561202897357363502834189062294837558433487118464450919115294435286876536870722814693892551724303185910992332183904034052061183451055606808668513635960577906630874424665562280340101890777885055148004183309889944886428248684355652799594961710282337274982040788378317236268895881885104491766921313909419280674938877983790101585471177384309798080597034183570857117806438960057096821376267626113979494563853755799057479435106648443395431614125115697354447255196852227983530246322073269636568246451805822542997881565921646998425239981804707449210172548035389049985443379273658259282935525583266141826590385673502217363220176454606539271270477346835554581867034549453514863870437458761327286390404631594445401309446513382931420086583853483030670680397932374497807139634474635276469304375907815703623040126537093884726978834460028655653742358109878634259039438510378327244721305977266828038326221695716808500646506621585491214879405345446448768336250795656590969228204320119912937471748624863113007977689514422101054570879793730754123733391663346481684867541080029712695448731837022794386799324277466907682327928824690457028897855968539484151259347155071123673392268795488826026370102450465113091217445070730359053225054778439979304796990922231180875077423479102245837038468698146958261802655134786706215227112095206340099493567882260651570916750136615801204566146237586123353878214031606566263654508322149201706615359123908299373987880467393519949999772064750307485208671810198251679877592701249154543078934141966689096322045188004265452999045024798911879820289428596336862360936856559309242493445162095921970259322987155771470679515605466326256375974889938649457504264243028660794731313356392046214249980861942525918113544465881844789367283748525881803814922504193332204120833875583150640896123824898585936299502609509904006492606465600133605648700245034116566401216174634264671427880071130382146885278582708609057424606078718871251612392622850817957042407915892138353645691587184089672385709835123179811331580993692639236000847655632624166419590084154428647782116577227683232497791366222960409556775942576315257250474038656841670569631639408313914958134019955260678660645163517685220269799248868056041050297880891875599210572088139427195249183727415843337663695671187754377617824566073748191846776295876112817510392769234760216920325162112401497693224831364218144295031881766205246367360356512406555991987532376179389732863235147774860357876776320878292871529960554037928929132947249960756490126285547593572448439890754513462512494615344800100058591196203770979758751239093655876341538581667842259828455648062787507215812054229831832658003900778810788285260521944902647943198511756930360792111330500057148705192999164739339327687520294123955831053325689841513822127046187941853716547754320742515283254454863006588396950275303635231323039311088946490781847601948852259502947892968792938577548896040965132480730368616472799581619839324995195240133271004708374737445148524771952470761974238532332162207390641334910399528972223822007756781045827990981905476003070813444745096024856298074841151593173144372166837280276633400459649970884296314448995928129890299244487953747639445265181084053505566646468436428039669218618476296652287948862558267039052037867859153685198728149922346800659205662964219748741239761179627162958275923344337250504471429109582306489545714591161062138848079986482957450874410366441444655483502030398287518816093831847113262581646534248176159575391418137731996960530447418053443436158880996227123773348957176200003348040333038746668287518079834443033179350681915818585824352623906289788128174463659295119719846938917258129613680028672049714940851178275332383040259660205981066121980788479296535913329774255283954528521656212475980399003560516052201429657675493949365920297082643077083468115589975633636589297011305787989200860005899497805926038992676582863975220982431198833980849473594755262680528874300346120208021557172776403861093811263495342047600371331808652108850231035946472526073237612699330706526620691534721611652395760624739167769666444242378105388321184532240955040078966386875491896517912511173845947718956535726855409465547928923511468867801135888171588675007137891924774866981757276918227295340860277292465614353276328781556672819674534977975928893445984200237940173815772717697511045412791303483902448771565348762692596543341146614050268442886705995962905062442734425252169499052885124363813411497762297307757767127055542620681709978612001686353091296157283392757783852090880348560610827483434679875750723936555271375141585166950977895267186377818307982832598908134580358742945498984657751306395367060275291539943942380232073644113836121060592661115980483843657974084613872833499457904069575972548596790666637134989453292251848470013572741263552543852189761779597889307567076503734960259472650841844522175770739928116262222479030992474909591601539157739746462620700834892144476952602912005066139707048827537092217175529658657395466701141599037092137367792168494310438956010410022805792382118351295508421831478209934111003731923455745263430818726757335307331684156219647611190280921864202663402270246796333690829776639209087124252067399349286876749936745165167246854214195018518485441601528021782434721732200356646572283855909076340889679073059549706287911351814039872243108937355355988474418176058824138103010803463360551409896323809333782999019384376845148968374431749276230962721426153821540763139389757601842412362566206963785211441189287802725952056424563221690645643503054620007497631449195101275527104828715237134390487099883750204369209974533140890155325308859465863989353214889092821710259513842294742371601912044813407993850423015904866209219172387275613097923276542505888885970148449760006478466644201501062231760323910475559317307588393748484561662348247712032755582595836612091094936292745731196267320029178096224903736590169269997932352095261174893639254025846621298121722694202422144093433079754012297888353192447024250135814442231699084784759548134031585799592741078109714958338650574517424423751760923570923760117756002161031539373772111639995148610437512211121398418040324228868273287961156149960607560794987000543435360962942301916097004936294032624223565216773523812416024470410498693104435352869636837896626883306408153119511768353246503542008236590489282709743483243213262387033259683530043721222488238713229526049806315829482968901714342166235543844831559509571867452984087627418335862295649978981259744625275750533774993891949920880865744720527857054606736073986844954014712916629517906760842574275982302695259031401039586022490345123879696742139752134718866291692658921896703040082756405361781795034137918238683560607825506355505883479147953249385850586663583754573818891421835987032254656811136984535610309151250730434821392950969237686056755062093882619924631797841077858209268230388302338151971189063347370662688725167166404149381434658622811814876717762014783065245135909081667505104582288766005353837678425165278033283328515234691583531385859698883515928443212742858420992695323759549975158446082390523244819826400629895909044656166571217687806701043430261300500477248791666667515799576442767673729321150044204598383645343563724671223771011319177943037144301858110924634200942181551871291313980278472653447193217373680123109386144403149148621819146872617641661329106067418999145884321189726860336424718621228825105493615077509034458235576998157098931621819825309389776221427183474390392075824979377843694161081109364477542391318784296365251748499312081862998132623665327589788245016946731568345116929610595414567248175514889511170133698935533882376420268085557078126944816469417164135492977259708437093870895172485169833000873306774708111595967819000915042217551036480523766249369694488152852766213312690240457166576219248265140211271475943665360976333965197789638645946503139847938209965989845297365857458444548904125492022482043436505295811908380125915442431344974188967019623117693988044084490192951306047829203964796563178050143966280678736229850863987738042221521865935153253299927637636808785302385530294031182360955654196384836579904728226154365055503284605364956828932876993837605648423262961523408249749888924709790556074194136486795411706816127148606147413091975652575027460826261835819309740654048139049615920834577761511596365391873861823713159583094526601741192188775332508972490397490765802965753596367376306078950742261875601902933163705053697808668561120802342221184875246804222442796439847618622308298925110951887545824352716958253710788147143881179905806495023275573159474596529155804403712818072092590348935488894227380619800461570647694826505200054000058606333930966184579694011115399955041073243636139319464836373150869910037441219059055319015259731863211693886912059768165223109992254047809167190873210563645631911802200586784178032580112393716070858368538723126177632176530613950673747260869988518165368894007624555806188660969273744186607945145230906945059566908216941981967120610816292795150852164991854872871683729514527500152061188978878736409254099465376439609576299683961947519393791490053692847535619349291802310190358991318479595130277362522597083739607722849349499421672042330777186479939301940673322856947168727976402812225027954934314697820955793062064718591536613370335682669586936655309438139908191726124977395842793911125394201787744147221361527041492128995073843939696725179289186830392383880867930268581652642188978002514249223064225949895863923901160269827132028126167535527472994144314336634578598229089148007345467190642865821266167783335179731393144859839209680332432486985838556526888971316350993481704053577285019254577378998436918122067575368625679285661866266354173428914726080595346828901613731495978505254450429308230873794991586888102974899132155388657470165290404856767510764332051578853195691351500060663828822997117732373271409300285291007209668722171879367114662752470402052110470456057658114793263127580789082866373661672047703325949971718866796846094976916002139739914597191771117246243346620338399965602021545490479469039865814728595288209086762451980856225819590914251275178083368786450064880104080161196045547816479930596359509864258423934889926607302260539001895342742770306868118639739069162263449737573156235349325970079825890478331709856643218601294128762547850923296139339452341037414896224367468970536906905264897199652694319947174349082970226940205874671064644460748671630107182249815155621411695176260814178214836240819739066298116048328079713022695231564912946111166836173625415877084207562628609032937474220655836597729337433909712430717509938926333603884238046358315566227872011034015661038216882779956974260220709712927388625910922814333533625687482106614252477294189637885022052939548060611963784520641168840363286155021548659328794747005960915301275949723168019181522901000014919741042018168088151073338345159376756834275856267194885781405010310263441659982513344635748309075808452206980708753912351920618987098121279971143730622789124367568060389124543093622307948337398289531294414378484758759495849061068794251768973511045130534707785979666340722091469644362597226924895939632745149344180980567588617026396098929281455286143558203087540177144810190400771991969748559411217016733499741379263255749143383288168475707429582013846875104490657588761945798106456526760070337007068675812183064910124061230610349949830052055631189229892677540369782699291099421164206503084425666845786594549794627460375894159098347145086670804321951162516844985886213360519606538027605630532951910390708226258602312176277911340763954484417990259968942601339038813702692785021957662898028282896662616094070420167972553730993365782751530338540675110729916328816444876271192116807863672531223470421187304155213740737692407062063929689866751176655159258175453397252426967762754597361221856169421165851314576045283003316430917676048550851341221711424733763789463798996939013734400873982810664350570964092863153182993439583078632214801951827011001770328842347568556150275237934878035053924247253937344017260506041314259608975249203722946284848124414152187929687720134715338207278488142088562347190493436610783654048319880123725624516055810656220785128144841603054788814146430356620577158371525075501068518847440996578917044784536363026391694443884521176267451748820074566322420862325261562437535914576961230733106250199384869657232434357327813020481265278567421710191520742633869579214513766449813680551817658946661428056612494164962141013801774803064993343075166134496946230407569109193734450511957983399708227146723665475651101403647810138288291737711419833756924747456275115184245945464336034595327313497883742203241774038364338000755199927884209044430503828492960124640627537959402685736834723912209888702843105076400357228934586801817276202302371249164466128618114148910852144628640882397615870214599377704548081915711271220376295691074897980552978689353632014943953884441946470987044571557579604789307703143226961783552167170571113806996616757612488331889793383102867541205515106033791970909376542523895435001202089631229869979677349401395953905358247461068035421742791175984151426839322465109026988226177594225818710551215741825824498778828431314276914927210784744820773680346053879224439700857015631529250602441851526223613937673035847150528051091119493373873157163707818413786088972246587481039903643250636206097054406661299662372240346938172730101329406927109056509809281709195051684489388862643178382758999752714952715211374638219115842686503673332072944153729603879239697014495251120592442276487516535601201895321395319164970879698406604718828974736829946306679281567253194256284673322611083867581324888012629199370028541756139394703104119402452427299205106321244739570838687250026391679122788813600636218604981468382253562500311997160989629971321090140467016338404225674090569317824025235192962354361708261440755069109030590322614635522246706126690643725856619892710455531378434022061130626786861845939232386632504214959819126084217679316458044584880244346449183148597029807635766852190683477766622812946084732272722131613004420853854564556740488534770554272573661754404039372514682621120639184397927904692626615272519025640218668356849241306906072328124998945129773398769912732735417886680969204179934945709386867624608200853526513646288782794764183089506326540421048267890360446069800596133898940525393203191028895354673107230500546423463779599290778570313689702401336544406147965701666803389264225925808017057245635259829639724083381830628314312989587281054150269566567394844863186886917556032904713163540085763464409414582398378566905487784840355713102711744340860420428268001283790493675295337489250843049379231326854412830484690309538479628299857376683067343089819172507900727803787552643432420621136169989159849371682614910479838950144288364129399179858796221122869214916559424651062774959898761045716878860868538088428979782320482916539150281675570810016842824130395842943451141361249801372071552028262377180423120639601367077992150645452494262236760847255045373214854991670802236418421748255877497750121959105310004840277770103510789705864232714855399253473188466288336589066462598580372344209572449589834396662894017624587293722483881180533299938707568345407380563602398560608630469371648645908547159136234836571122726001099321909290951591228314295802041785974982294307933153407532584687476977546892602127095103586903614413311034083052687083748030522943796462028608938385152484145732706513943321027957488546348313972969293270222090670276986567085362327402364781043815296243939588025097453611026831077255871228144173900049339388800620862761774744949809183624225070043260764253908400444465602079435769171473034988512992209377892138035256717553817780796577729418348211224114621527877069733513798251763920834067336956229851622297401585101366588243121258653177642770075015923401684101913250992237822632199868093792389088136836050128484572478898953665687374410346598282944030506947772453447878416827341293010007533674948443064689697129902039228517681658803830592840011167645112441829795400550989735948790701965036791750106053911617227090934605109753133468653839261906523559493692745828890435689458853800243618016428329280611515756803392341312080494310348876806535486876727081523563620361865464867620248245581647214541482828560408103114169861097008180336634942279361639947136717449006217256535422276796166254854795322874917455959057526532969303864601803067329761786862803180644534572981680185342081525160961659290446304423805788558139394862209675184099763333925815553383455492261869470798877844792660565791704877757572368779360264664045188154769468377687470204378566165359488308530730101948075635234552710071701538123241383565392924453024331872043513741160336229876987945927882677882285337830348877972618093139192466541711418532136195748704502895619755824502326882249016367138257476519031334490217021168075595617521046521646389197553985241831460905647481761599035069353367454531346702979085752588642237326823312286499281083738999805343037795222573794644447510463524308268428494097435598439329722854534909584595014964932073775458602318582916609874862569114447565266240768701296520345236980848610124724010974441318893280969152906094986615253310297741342076912613092969063417701695210374186527412157634265681668845865966719801025044791382070436541073922690994145793227770134234507491389322030570325419575113355376483048332344911334768287357717774495830675506375966308994071664796820970498863432678403918724664536008002034078562921794671714311032464691670434261464967115924149011875175085425564209054099668915401232334343753200977577274201827772561164357400936460188575106271001107952161240657526489141130699696255218773185775624153125772062084897557242105741480667244875857584834240163684508480712723635021499051644613789576241174060801298031580561033178915407376851581453153590288212098427708832785545326786332021352347253508297500533944244600154753702794909147609667040613574550251429047119144955935237697951439855247011161185327619277385829455712712035295126972615847406656892803957976777314245542907938706463684844930227102494784123025123638831529044557833450770223553541022434203284320213006944876042175191711393916478746154098878088150819933093542879989523475762263985512114813288970687261565832917634808405399512862417598489982976490668460363796152992093906495268572850142447542369764746476765968722228524005586897507904125767904650050642029372703399350462327433682135718232465590664083401770487207132297581868120831310099068350874521629443922152306161065764134292480142511561258945393841344865965726893994157043110969693011825859281079456065802743642164082229993381911059218391646188452546492639642644903333734677822179365037852302768962854299604207561049849935746688603521691502858055930048211692633644210348683959144588890045857781555551489005918901735801076772990177340741954908980323568400856266260831806191929127118398818024451421338336356024680837658802849666424138317192059123074843787186328073399484225962531114298171656982572158084988095860274121582358546123832509890287167250907771231413374843498978073831309065729796065930751687921549463232301144370066155911231618598269867266630354422901447685221088312956315543236226014828565839643216979105229657954594584834134416149647745599970273972253612087695471963208559485590216473851711556230729897773377307594978015865203891355949212402480893684039443366701842011255358674936914943669224954791176427620452469081205398637516044107890773697549930831376340775369531254535637653788144501434043743619064135431178531283683810507746196410609665187420666665437536187075256655311120175193440930432419050951209176249961649645785054859321461860155593995652986460826019961534754050013914701578864581498134227876392079482441942681995244292978514514228367936949378817046257022718032255291294952053368084420157043611941369612975333994956661264648680544873049184615533387297739097261892489737333318098013955001870590982637094902606651765327798689897827842425740683409124608460539629202047642393741177632003406458871956642443108795360530002501772726099856105013184906671285205790828605951295349838213758437113669985311021564755458221329258023147193790819703390752281046689417926903705416893501246141530872395409664075051401162321280050081633341055929103413184439190487798990702797461840111645566749146826122321628885801344310802980454260959791250822601024813187532912217035555853330931991258512075383290782636895945362180589683787849449224715679104513693002014236676838197734337390135778025578111519201889757417564100150385762198767182116655667076262532277492992142137628495965636727750022505087669062308621671074332768243322744960243022421412294827557892202966698534299050858016735333594283576392801839548622061680889211647218146610963590495028625005989297194507908108739584730144505892076927550799887643466782104091379657470768606596813429033887024356702466414354635519314258717482848762254591428045540544988571222833797663135608010793421829324947592904983790220678477323561816472959865700351576067287462985131979527049833866907252862925196056649737895101714943194097984788090499757979744214720587913343589761123326508006390627369580357797991871820739694239632488403213348559750505711111247422317296921105096615199003579904400675245687583585797185855465972624834196774562281492891921216036208543413834712825588089240088091738661767293958299907367224193121130996747957482039875205851887841750047535927599646108829222205867612362905742969581225861916016630874737325635238162883735706235291669370815025165475812259253836208902375951686154598450085135114193959228606530690140160758646276912029328420065850882760742740450528701885575381511424548335717214452101926590624170977782594711376843328486047549152817338243671373124017695275907773276771880204700746684040804922415908752422234598407165114466191239739885714018938877402792726787885793594251203078724053360084001530363920746658397161948417241753583656145048564115820004374844682129529053172361691769520483329940681849994912483983691894362532700689860784937323300118294033036648374630829916895942770864420802768637728879816192671290714125396800287769149454061958361704196145951269184749409763131879230835311410541662707414766952645998347025404646901508758519473699177842919216666849256354580863255604440999048031198127060072665430040832394969428570774839401954784985953152600241315863226844346197514726652206018039780968304346299525348512956013570433108196842836299250948472481252144920357173233100714926694522530669276634974082501933827915500638505963288591816564236083026622991293206363289207967960272296576123018137255519170364271672203051166354932090176433911351056337091945017534828843661357171305200974207867606854134043897231833698711511504400418661395591883472360253412864593124450639670004611809081932269945552594344108100224535664626180997977002675069334657465900876567528234594472831804513814305042759006555994245225026795529941046972314760115191190528916717769740668674649589541022135109740825616791097886871525581060747626984896654879732579164099123105550565643748866207534121555941965405117096097973505648342683043206174951899737936725030228441686393527205095134639707868274240069437873573073436273083108995817739905765970222558060198349550663476514997594245522786079752460541227264698399555588262562614013416767480790667279120093071951310334271229924584193565179847031467824439669608054611879336962241063041205391311325689621639770242762426595523497627971629532776577078365676719758912393798822009720871428790478948621343231939675484553288061568615323984313079297863358548366520733163818340888582508175069293509962617611230267643418268885159324662072867726442798938720478606795962220425301144726678468843447024725045692885392872006126182450067799786109388532664188542273541152260402971519320442320658507737736696438848585933692076267374536474675750116312377215496663073128371414316004517337194254306435815456044597484289031290623555722667205592375452445566334587628260164384921304256558826889889444151089061541752934518862307485361963490336030280589361136411794496469391109029142202800292109951443523826894912160228518252481840985732103933467089804966254653807816408646956545359443055724262435441704412961467327126739891471042352784867937613979924106157698632305817193885256078456078455078671147596840315814431733699234102958994197785999021146667281536338791256614837605054186562961069068731230405013118083781405092042121747524456188091278643731962279569614732238479708982609514058263206390918929345132937647640597247711225082203431503670657024536331219844844134989150085661336187696333580711630291747641961415779030780828738356438207242603326862519783194408968419436856282392637321211200588519736615242967724482985896538300515413617246855940502023193925747785878800006753076761628894979318578573185015845579676630942591683522469050911731706603655095173951637152169378700432855983193997253881145383162823201752861604150036842797881037900088308017110008066504627057820728342632649793698785843978018985930813388293238024857921872470480974099797696078557289635960585459112344188352504568393853870997388269691874885250070284731648473738428111562488356757789154257433590207541917276771823143544443673024847949216281687233745614404907620655628936913853803756368705993815189159926992269112001029965751774833031287762602799980702485554235740239494698630781672410552840397038321718330056132957380017798079586080052659221712843903063682979377544031396853619643036504740962934614272964773463657260979301277858882557915583787231082074035435665593409803529168318539334756323802744786182951200909817341827494693920689774437788547491958705610982062213865648260547829127036521153608431257212912352386555089796517292228522980837316678396123508664122725003347340876012664286848176770535363061816965321233911238013232390665124224066518238688395787438723780817011641427398967796496298139898922326196224778067381751132594478912534080024074796298475242952593623912824188652519526546341746487155450874986008167268762374018427360384928812400353372274315103124787183545674928541243900108569818197384964178551457292045453992157843131661771974331821189922290853627370602163137587919273189975091483958230286790977963600987656782269438235210653365558248011077676120906562805437813238824869775401046299988485750593492760107896961063999989176141738615950623995387010592123760187346703687182365096002864186589481364006710505421364646841481574596648226233976287441294529524461393670270521068566248626325842642130289502312108435152862042558193780686549617737965621815943623031917450734865189698761457936264978408645470492824379785502666557010616490668650318341304673492387422329548967309472050558358531465787025370344257559985746317283562632141690783696271384067942436525982749956512372878514547231171759701710437153664515925024301037675805540999663058815545842490212450968032667529681844580716509746383560203940922013710270293134911247408926959840534958355747619091639617199464866707270420735450205251556078289131259290706584980634416637698001581916882089762536654468677639992163027303627861835591961711469690068150177807874668365506075474308920574794182240181339075039244852997291417893294935304453640358350592846623732066222096216019802520675351484882732085710933124888496395054348718257901568986758945184446028775379675826010755316987537259739827807961037663969040297837024910349414462633046088190423450588047417382891551991431119850345703255489549544411639288858339759612114918008086600605928382762641548511146014580736076777590365423243375418333906156122026182732014692063439599707887633684198866858130748872080488786312166905834832769942565564445531168097078635953764313710778933768189269873704700150917496440836933560255442891535857898328404537502226049711413639884763815798439251517300670496912352313011911309913838610208484325602482440745305072644145947258671948449889265497356760629406391016972337407592809963817896438185177379373352270375861135192360873287525283742612000452111342936084712025773914329183931383201846597041285714633779557890573419825429019311713316008925060238035773511328212208115612785689738690635601667386837631678563133098490678033535933127097729572252877980518779911937761740493691306003004504779874530960165515236818476635499442687549102001342510858102896200683603237807905667586590652203990158944645511911877029567550416064315726082578834904939320375744734581356941531217607774201968606206909516194490874152776721409056034988846427396097401134338096656583344666995867128000912051321816758029667429521748353104704798329446339843019548147046027423433826443147274423736374842319773178997687316349324346707597687479471967526690575870399855158810212081410140889594640978273153623992360032671835568500608475605689554582571593364503445903973927651028996502818570372429996848368063618909724517593874780260008004129155932728001749405643685860607690232443262678962044100284598529065007578378317810145364749161057931887134184850516965704334099691750677583569089401978130645061536146137395062418698179737484990453126717841331523559450464195489046379518186034388646873430273937143902307697047724407426460066815718790737372387057939608857023440441632908503751550246824067554036902319147490923515400652345652268793783934329586130457891566089308557896444906853865812692846357973410043700459203514755000075836247395986102939698498020842213136897097252885863863365711272310705370040478024427482911064367392773693866964495125600650998308816250152366801398638215343885016110134733069295485291945673778187748631553420697528459773912037020845116713399695322745771750655979293675109267679611933676853178713218865005354415383770819477180183259709866372443977445106655898431354636073213704323733110722455921544571790681788076740529982623186109363837843316044311101657833766276846557093001598610694384230364610052926984909617070591981526725751850363393549821659666979959127166338264103597086278213060473920577542698143447317074662128884554952272563008870067781417301652307942368263349446606598675592029189447138379423826371301762610617287618183198796994766032055593580465704710553237976579059591546235762994379108382665804243503553559762534673132939595378180993833627215231248983347210799138634544620653296908525939283765239278547891389428085359522501497910935640470109810923230996925187316857333199108408269025702160274177503981957585993282175329764194646185154696985285255370297916961581787912901159113442131207043635275718161419035336272155140266440392395694467699451598853469065586470286793883655592871194825747518537533613321622226082078005905335302690365200763061776176795534431954095831354094202521945183805631420323022323635156341004256163001095983977289841981684235727351757669052398311207556924071304631587303797436346697487491773539143098541653811720848264650973061249579269993048809138002894045024917015529381571994523579720916461964363674822279877042712962154106611907173278864651919964428267615768032548084679395985331181816275750377947784017121254277810320470197179201904197532236866403521484954541444583706927466315139797283862026861509342581982759064211471526157276857509368153722478841295990255799029135057116856512883838243386950494231391541986813781206633798534304853549871913055307424303468738142872339622236602426420445449230542514951551112511547444503015678708275347964627032176074035778140584908694896700865586157817466910121914242709145919932810256418612315242315475850650452826483578385741130380063019497769114270485155797873325213504656349952216492311246230216544409707318749636061954973947358451255247522580517659366744121341983065855257135952382880398370735518799169529234511758356161360180764114155902206589659212549705146440563886036533806936046262249905836398801024645234639254662047015573638993098440188204208514831934489911778648541852031261121761794756223522393566740607233819379007676915442285994450961762637931100702668233988819205658817056306135379524164406350211804411985321019719578756978593669037247299331540045529047126345814890346782837847550292260569338289852399462156081126492204903395390403243980551854177242962117505401631732627213889403499506286388088694637225674764770504037588785141531345930628382391210129214174519834872411996285515844374657187069522820397078392082796674944284664265938129610852493946001938511853057710987025781488429019745836968081964719703241297403681275842353496049951224019592714459440695938866261611148703803382730311712203957916156597254216469706078106781136638254110581369711932618217774845609989601802118109734308785475502147279408033415420178651898551820167471780017145395209972147887896008998448599654982282257956592399069562830574228951529329383805567350403282357706841089286856647302594544940522422178750964327088846330586681943043157278599444085545424510895192666512073541587084509635638485144770626332243361218370950305504864234350181655446349252128330081028273477934785325165847810897183674777758693215309162204818291110011091884588141179784925626672558254742044063466604178631934095466455340451739336046934707557938280124968408257273857950174347059341165170819317074006018538717411972555509096322420665423013509557139958834828696302829859876659733117425919035128177450937506867734792290481128518984093713332595336185709475098781702209278329954952273404650399742553143439452633791367900598001768941329775590872503031734048267460985114098355442941057865783421986764822540918600936103136401569294280190574739569942950211237691673529064640761936867728438693902105191780817697906586157705673608420270379635781611837308961567891848002428195978533026274475698778366329847689537978744200079042530261811552050890557134989581720251092863756711091685929295464282671827599626276345642743897698645870665101471768064904724960588598182115555619599753140964030032611428369374625153452209478197821751739628483759918946153174903957572878680710703260746136309176498406761957907345748839653517112134497740254482197738837661790997538439554611062303425013356504881022660694235570586079564478186844533543698173567416222268960256112025418580639950163686829349306464521537574632484607957114842433117351148187186304986788407939652015577205047845079084126115707035235852370440821900259738241857391435990813875942278671935822193237614576751816324514986789730569693328190246021965740591065188662790193700214969994780072682710687705034269641126071890624463721355796692595616358075975668010383298875772761709553536449986686747538179604755416489535991028936759735503685696505580778857021587066095777305460772291312395929735096759031798994942002213161287902214873156968105286763781374303486817625127143733074545981758596740972457593354261237023989352454063392840511701322533862907157792301926841497721140842288993508478238131420876345662152716486452023911724436887002210087305608915975194920643938660730063943889333040241006456032782061663049556757235317408984154049334819358588656721833681334201198013456014370095790963959531741981659957573658495778201952626220426867950414069820731648927140402706830864360306990655775359304678572380258092120948716783970334205010105194610271767659615664522886873289636639352838344463485429713229268744314759045668806563052802610324546375251093051159693496789878412484947099598241194495940660295563153306954924922112042536530100771881326561719887792082275530354661981066215222179490428884011482364746314507013865648921206316058752292203935400615257121280500667246342835464100143802224949870700093526577651318740512792635015719511176829992312909471828274470370031419980425125833055404538959497645900064453839273342766367083782714177290524974407663161610227644551723816015096911414965443371944702640571353679700778110768569405676523132977158095865623763280680190730364197488029882870297083524216520685926015715829899558334982242642102315848886868943690374899757687389517643531121581368251845518664352835214370377714963070395534596496457612896500619086658536257191251998541313860555419561357633882494291582343323794492563806089998203261711717929182145519019375994191575560191321599767922870378375616755456851740182533698038672557560382576982275669488565772713370706457199204688675779335863933675846420520904258281757813314212457678844899687996249901947357043141807815571053865340122797193503911573000303778353484268394756347480903353561876018282833466465802578530134378809084896946586733597175979369579524869625292276743183208640573070051293434475151076506121993472978316107910146486431453491390153822975771888749470722987434313936208617342263205660205775060110758133128124928246214731108865760742658692876467973520202362818295833396955063717866659986621550779976544645390928986374594580611769210757326279216084473596089482997827565777401895305473944933535369284739486067740909251480124338810489352347023630670713867797040885034507257767277848559668795710563499475633596979737568734607920486207001154791674232183007785912861411771025295011337101395244758652813049834042970931641138746590407862641554574592450077776335970208264120071104830729108238696330908475073909322589785798121090613073245755013939324632966214152193111346085805710485348958655217676096482936452644406178514168966105409089302360073997389251489774852522945776489261942765476541094523130282640114668294366236482041135369628194510186683009997479120893471931181023956503363363664938711030376321836072894180819638171026071019457505604266621811885152189874617331977011243300618235774756790149197549298171755040832929555313734254543572258928311622969993455478404486370378324695174189126728493019387126588437848509450087117410097666491903243039297019410782182282896516304822903146203666659015394311170815931258033095026176794405583028379948309648548405670303829340021401580051901622844005737290000459485562009576655642622239231244514262140815815041966624858061023862182171221169087973750904542491707809617779391690955038017066605601674733336174062651025694299311944959017906290575961527160298742696277492920715349500548351670906274447660208673756310668864806673271065540933730689531091417689380625895918093959331740218830907766516677774169492838853260383863249749217451004214368767351367145289033737387574347440863112605610070934029698629386976324050422668796189030461750552650650353867643572768676829612299316534615303063685023133807246302458334592523539232372667661340513837943655010486447840541225781216240538907369839735106547089505096881751866628921106827795090582819916445921059742964497025333200382764857387371496568062045602760909888678048990712733088075515573093500249432399576588906143113655044267077812552955145683711722264551520753579023707124937208639226370313552979981851204619709119773517074283244155530074816394510496291100735563070289694595430043664198629976080095582857996607692934202755685794713282172349355377577219069470340558149648861775725269457179924266506894832694989049303944121556467854898559686942263793192175963032279627501768370852246029203210158817727131501076661901575730557870288781603705889282662279817725778864977014225062051689624766648893863048231248607531809959626314281928029431834749084901791723420180093330447630918163109662152318079460383600570363920217942784491054061927555399604527509333499925518107914912045576385150246645977261821610551710715053568292676294503462822004757139443604440717562848575016790585994816348511095341769489963908218097107313051968836631291296106740730121971480554185057317931990825793403221523354483529835633469345117721894642812328753285959105219815060964870122695277878850553161401405941922598638437616248086035201332868580885007471449800579681062115039766697385218539056148948714945551906362805861606933234795064930417706301835897534767255968328020219727695339611843236233121392244750030548256665568863697558572912515791374230386093144323615565381720390271094123216320415972129093132164134149933716635511406719591975835235161452729853977275493383008973827416475376954178256486024694041703032488921459274771132973891818563791438526071675462213017017814984987695110272144675151832630428592811700787169194702414588667953125304801838575768757933669549745330932186308995853906705337542940986882048587926532450764773721644075538994031770477320328088725799459216979300085732452861630547256987689377053408790700074598300743456465612295377091827832066586095485782732631166016922226185999122695350290910588782226117105371999270638079571992414895528708591202365110610886799498425320140544201317322748213417499262140630543502188510417572983657635220719821546318723128332804370174637214102218405659679668204138399504486139970127958790397191844928061048876230536233808900701290448188097912479150738209300407631740401249609846218509543863295477563873459348936941778375059110620027464259191504956281032393008276697295982846762164708585653874847654290455569402987503738700375771876532990472003780618680122404724108095472795627397322108380626794602274471197840402581688180557252220350341306324336122054006707702156122077929967546230216881834770032188143505892432177884074527934606010846519625068786310630017788320112279938711682293067963520297955038038143170288738755044670865187363090815722147990098060356361443379995529372370276505775540074636170030271460044465241312578943001462011509956351561375383670607897150255420376819121075526583882201310107190452784817079240560237685297024380590163035828703363836930668933634082667077876823317385052450236861350228901597934059147713228399062896684043476232775271216484573200900512558493427899782986905334980980759738385383281360127489256599855171441193122994899412283063618463990655193780377596116043433583898474974456909859463415501140289594782802262851293681352124528678159991048917953398837776978311947256927780679519327837571547768885068732694923461056328656554380736420005874031210626540139122816801602220311538777735213702221211583157098613640876248235396241768377814900233233529599867182439408307594006336501415567671790592697153412052120423070685458061323378017365554724845101163979133511276045192777340218159478662052044923601653491044940802000238513835511635336168498130107917989026324047837202627815808858262619937764366495149723586512012229664827281906737415711362497295796315277880079125329847263486218257991761958303643069473555272881716428182708940424188970383695598142255542836117743399625096758313928818879770413784071898166258730059018233531813504867386837818842056171560119661270176255552400574842251374778948285418016545054965476458546931978191117631950266770203487000855843128107502405122365762241461946173442548859891140995875120206024591910666409311328632318719463563166471357083902604944217599322819048223156284100075642130510077500329274456859387596537657197886334495665605901071155233145146685409460090186486646214618342838670909472420960577051934490861948523925697708712415034839349031757512631783953081964826383185008723853851161328995758573143121332222214858156670491675253761032600375586754514954317377182227837571016631508614761363973987184542979045428190281917338979204325007576765211543398580917254681044490159786754872299268931634329556369998252938569965083573211895627579203695455542699807087362576812216559110779458631578562449968882258492244139888670486147050752374022975596123782342888466350314545423507711426534280144520443290496144775228182076145377683124277636097169178871026598348505665028678538472742364331844215741976979052115399600819739264412152458723090969614504925362341036985665242952109826515283993618649513383772535347888601516807060486420569018997625435999292466155717037349809984655130386753941528553708985557744107888853724598263574987765849183780627113599755909540915002357127856420665240920222396880055315272988539242786248573600207116706437483392558435918760389354332117697366372234969010055957888108375487943939552679678623181351673025228902957353437181059106763609888471343042257152280889018847482601524798397927830243331874779361906374511266410515233121216707885155574097117280469249041930338262561973792117994905170432947116283030449419925449556201876603895396513433637317465440252989180396332017791849232883119270968001038105703138498673890111596551447816766295577796498107037409779673036493581674311441066700866931860416296472063013479320558195066948805198623706458344233579592738023284672459056132738684101599367475313014169236286194584427166273777121911531921857295020608348986808658566337165245677393521928117280539334675816436004357218171045461193392436261220652571395519124703273131271870328008344575745409072243306008868290403094901795342819775279336728607587506195173649062577039772264023574100561731539796078824586393708497342583018672455385806886551828523494084362261941301412898460351655621721069971811398176087656337149610663606174582534854424574886304240498115728210451964676182061502789082174938344432756346954403791427636204291147077445281460808798669079570692099829001688608238616171067632736134340320008556566296905084278163761049055037571819228131903311215796644658769651635320691043985271232776660125519086760315010778841660501039562408720894813703537046706013571468104268527169506422474087870084752716868441725986045145521641641941443114830296189922008862775458825606694366323003687916359476051361213253359645927528582692898040480173921534182336145434917060041834529793306504182291339540085657815439097252234356997155015329662547598314474235699764596653247829119476144686135480169532434437791970551497860996869715552045436434577462633871497071192430866880962004693286558160635981393472035538593940820887929302573737309888513435056607787962753450483035600093666995609183223006051219922726844764000081989412521418301865653192800408601766690217697337506700293198147442203371016426183627287899191446900587468960949256762836498772225893131436258413983298800731360600402625336858343925571300344997020748608327772939003925791292502985230216510869901383704289323191135776303149017666429113622002847543519997852949875619984720973016895119929371443852574734298700696448317674631845898527140517927336548414732342706417171912260234579824681767678295271494253297686806424390631854763793408563264997771251743727139196815534105759149403954412829921570643031787606632085767454526843239743692178364350113982831146966504737343200077938723160671421331865336814620394176928249625757781331529067118913033264085614679470078036997309682042826915339682792869051395735668789025449828299128939433550923041245907198953592772681642459567446945572776169975289019510250153917984134688559759563451110044409585796670551194177316161321516366894384243156803862082238626419506015135951196577937607663463863793844666463988743129465612035302535752604759445138842266937247977956732795136039941349286595907631819015773513483263723422218233608232345737259667642730267510324482653255038201203693225920304584888919082520257945939932711964092430690470550032591850034146461651826883942242914226248224008592549170922086574178783214520785049905960883834195547025995694949636163158153676988342276056636777052153313345407225404077683320591031683650243988350872675915028223592388243999908615614121703411512391936969897226495281729082772069331619204359218366109563178441699598674599499228452653659786781629806218916595599928020371475057124484782692096286719319000488061527432828383414318259799055716538019582456114191829373159644232043062830398159535343429752068173580412913284231853604909608993557072583096111401627687758476329270031110717345918983407095120727954468267743570790592404960154979473287373982629124120531380192543385291842710381320618578574514687500608689360733249087035007122811315541111461623032614036614365072005169341096546509212815414316908128193476244125990476703413887451690008412146808393411521623267067326553436669359501113124223392714474778676590107546501420132830668997634914858605107513274140453648442642247345793675800862660733526034232941450006376926378939588733428110746028101416684717430756904380524211143406136855336248884897332349573345236438055048014574481612363560259064842987093789611112573052170084977517955585540975705063031898480039349987369639791736770131803028888869536125364781532488402954609690439208500164427846916387262969694764713595821386947072197170785588212798679185773512863772516648310842752845874639133509575497025699951829856900851081901300161019285271583220652415484573154947369377074733543076165165415903228598729980539591438144696251208496451565412146911730974333635658739930350332352274926208768626763448528210755858783369358878308356741237398624866927916330150931189658546933070073008523042234268834300200982785882611037675612944172637689270869957720559783244250123892435708864126964631805241234785241877273338270706256220363972489834869574597650587978005574887183333082501614442000860904538220528155048411279050405191977385051947767942961945028387776887836600986993737006782251455891321148758953771652858866879485140034030668508769028325570253405537515019403617050815429451420604581830576985159899357831920892901657317728507306798090038574516162315524133172755517523642182256807537301585286442389435546829892752979993972036575303801981497502559048119923100586220710609193457340623184813413337152209576580223038897434428550143209172967561357858824450616574043758995711490158499949502899816069291798175775574081104989804136559153768366456207531817340316539684022721804109851827040271645871754021085428765616558961409073925260303898634081475139118977374777913408210147233958727601814759451220214092052643273419574267807316773976328426940556214270594261673855622830147372806112005670256045305459579610251201671451852601023159669659157996334380175314837687482578056499581688094311965593015575309615280094298044136286440027169983320449967005340399723813374593035656362546816463098387439090253915945509735099489417957511535147308781353667176660809447713843312730487860696534818853261336194074169804499645512547707702465974727414229065111556187375271513597664966593365878698182355606582892834714979282132278605276565591527843825402427813588964138850076405724710074677585278263595814442175255895175591626305001065053060934757930877935067983549591457533807292864171318937437833765745570147412462447574610841023375493541895267166846952711635625933925778388203702300794029142051607100690089683712475401331863577937786389152142438725052762622633882870680577985767761665078344320465000141023900832980356304471503472245711372086755981596605923529716070288793268873970664218721310675102805131926382943354013539939915608160539473932941827974742787311261508134519557646914123109503510830230955739622334621209935202776045018177888621739055557911129145472208142847106706251962919434186780312360194204053134774835973551636719491665989908296734224172948010049743860964481116185935893553947214251218144572115218524928696126269370666626636776439032660056723059799516638436946249708710986840815892479897057139277602608060387117925797529230039567458098600766556941611864598622766626166015444933158093707954347304080285370449724522116431218874322874912301990870481788146211126030525294568956760916497392653189849451329769428624764251034899864208466898230622733312112574715122255416609519816090741703375508183022448069944979287006286217916618058654758347062359798268574462912081791537789499856894605078311861938801019428561026401273718643384579123556769144488434277928503164097828121581114929860810681104357828784511549075660933917637738673528696763305581743114796720844298687017856965312119436502317586174949578420961960684744122251718232075063269170756341380808330835557535937096705572083940188924269664945380869840042400090239801206511003595961050975058557769841477936662507803017884150336088695756433935338314743687559446751534595737115073658914529736920998212138755916994897868456069327326806892695652334787435325674589402822576090570259008066327771887909600197288480637256796980603488737605221535690186023375607428283403139247539934221500426832185807974159450268992803692161873276832557149719781156393697708641289181062533026539954304466990289917542711978676139525676287475324166706772965836815507205375475084399390341834984134346874719332856934661688248981260322953389742775807786553091523309462371321448281118016146593476437824001487921315708764398434993748755208467719284628819403268877051045477970020720478437293988386079734596111360285314200435085610129855069097890605272445378447369182914649759183970618225170648738564944312074508019783666629493326143540948565316998355130134552902493227860593883645949851179407928781989752571703795950673115632992365081539912026093237392961077903986742864674757405135474706056443572138451716381371385021230696335102837742802599920571129076401840768818026257147372673003743718567990026327812216064734080727461277496833598124306552069187563586450668796016778740787614237012130925522125383115911325857508092984358223621648122705027279401260853650416835642412112533358586930191602305817104233465326855861883749029853247034328237184629259166990820931037546013435233254653705535673101194227802310561440243798329059584977459130126592590765105407486784783785268071047509543299705715202272710249651219337257908806061395022247775163569272112964239874721678000879849821719708633276465533210303911007560289451810212744279028966005388767290600801746500890309722875211631894494515411244700331178153602949669130411197498319754886118547898867667048455241921415531916003264085356620043355245822514897377396058375391396120058137021191304699499077127054061457797688190846950557739345665493617769680331069291798840056358435272255003719303712845644200512514277533005355632043024230118947066941168238455697188088180526625492244016056257593454127066771957791812055149187077440780910716203089342344337217655938714566587757265057446368446581953851368015244274857424529590605180147527495479707597074963352703420451867290535800465235927020116303453969726512823731061420528423922039278208812549871896949519868287368531810393632974051844941123932814791597173017415041602566058668375327150189227996881347279951783529413757487889606112010352146321293460714012672113473919008547141081989133039143019144594568431676543760059164302604423350734106245472999891452198162689908888490630428881476181104156107945895460309652611120730412142553578085485186164540561984137427747155928513995268355377327792344751329504616074820247087294832934715292592920602581183582701993888815898935488300279703759659697492676473732592696624751374536688492379698012031304155003032604888647804333255176000434765302373956963211426436672718172734476186397044926806709698196912903636584592287952402858886791631189054723476613572690007620752052521044324876078459497404351040953728855626104731218102831322909559110451377809645496248248043816912764757772415666052550921454369899744709144569216747879226997179151279832833581038501634466443902044909873346170065829242803841312760354286208511582105384878186783473687624598258555813557802213844471139374320620803847034999338588932088871864347237977951087751842495807700971940891988070252838199384905208591656949752409726953681983057349255468877575587402339627069603234932278871131005003311750037290098039723141588895280395183691129895706885587540616330506066024924943841300665190791917843734843675624266220062854494429703573888013438804950521211139289102087533935262182325611965791882031038697909652155517644292615995693352205754236356955549221378615564357778174050694639032569499858392367217900986302724372097598051179943868981789249138933432916034057100754015950954935967937815825626265286111261191769713775351379332951058946098499275285090335400208752177126022751638221916931522106983099475430397097499941266609586930084209189238201352631525043049638433624676585213607160951647108560487175594373600711210434877064191314985803604644466540669916199517290612933531240663323082709571409251975307543921881908600020558202134054163342247374737881093018205738815438909219696827108032875850418019819831861268501456803852328500267210789230028229565335185815885064348361126864551128072713699796809517322494604168150186142490371308984538697192249028621422209441732524660691065304489026937310177127439475332045680046443285811045098548288450754510567572543782275289362752285386771576695467653481657690701619499675591878459935995466493425576589337320747332443520653993438004689655946483745594921622854502941299110382436461097728103133787469271692636123574629632685017118036674305224135112250242353073178211188189503669899513756383532453416086631421741348754231274769521023029111865124464306624731445996224188046778505494019286872825024352142274375302246698338148865156980175126903943335344387483991149991654309972245893439968306020309968254816485999806272291864182666250397051468892432107515623802851820194012240607071852947857729485600536183470945199696576871405672169504872744876922294423879519795780929424379280701744793345010245105523404174366724954088229232037940762820001686473065626974814577558091427335938230793874243501573199041972836098649311583034023725111323632277703643737036895137959854460265026944299493291494131274121928653711557604640591334739237228248477960100636607163563239378733670557255327287583570460450496709696837792636789032360256598714846488237288429353719049052546948155872882061290193703041250773419758648055041530906618809999736205186821742175708226614158656327897849407950028368731306418589918500073309379936227324986554387819114594415305258581216967957423394978807633653628479240111015757438597569857029437658081971821319517511184956346098649596600048913470454398450476591537947326674683660792983012498742038405254229280262090125670219891416869261841958323519079769847319761517076737849036275343827040865770548635328737038398011221000892836222527968336878211224207364736075937629392388928394430920783615349266250613712837732010833391146258724670603000855807685320457807480719475219481869155719834825689935294343202058900800910780362543850584157952492594401642834585125914408676672712298697624115447004888327689423934766722003548952127781420315975968496278607883389286795445253313750404265572480316920179426048137753300408868047261979879316988433154019670344787645510156282324188466148573848799402743488876140188257775522656314983527082993851847650672323823152272437851118825387216624836217519868888896387530202277630409173915006916152228571766537212706201243425456109961734896479194091305125527096165207832724649278124971663969576100038065633077289709165774283453582415787114480024753622910909769817523795732440157524983472264285724631148747342903519645606461328747893090625687668712835422029552575893583176972599610281328478478235271438176297343565858441026491700692408442620289307375276449476697433913959243426279349558719480169202941512708340726955573493610048341356988817366765565959902928722368991602388078484068247427085736439479531271952954797071283240818137712185019284321796837259908968831619129665035010364152094403276500222646460208028459054869183174686607412308370286533977763138440966059419526605510718658166005402652066366631002008650825511388140042327518549379719722913185553660435439776345555199621353103034462003394090043671784373098456399159115141572771100574911156559147206584730919508010624856045443890675509352937561161003775261147021480826664384458902788307323732018895729365411069476452285618678802253878709807464600038490886694950107544606364078028290670021738478301732749050528234333070171508313360408928040220996870882515311602437087481554037790840808523355709283033180644903364380562328311951120898835976492035867690744548030609620736762598028406798482188563467669925539570794825504890208794686996915103229145262433557550491552683139042012239402093486813185161798600285945383188833086588559864067910670414715944285237423210402082360157032696613549740318144759658999259833115133289564691779321736532946354566011888407352405583320372038108235289353585975845402158305835536815969723182196959395988604088970202884224339431750023503090551342531500499627123796335734406628702441625582812932091140359392318623234439245364843565440253358672164410636326787171391888323887223688170468308867076557233665880816280205956018444561956217236212553066197686075077596033278417145023994621532109665676966636768763098413963089535548719873828817290250204310835821434100792396723726501410357430450867478062259388997536990519354738683823290665672947789412982826759402328308824888204934602324728854326953506296569506989866931075023361887964524909646476634006655746678971547940083153915650170501649369614155516331155449014949200851512814041209500585922668872107444389403637778252885754068386954314362006535465071418656552786304486091185437775442221485330533472851853314324568218518888996478976981158564674390249267805826944764013252016835071510471804529249803207332807112663384293102241635605049791554101344177974715937557430357269147098905916122268320004176150253960460248537748184585645271644959018784375735945576837282712664066799525507941264793361761527746223820447194408154043951287800260243681445851399861356893156809371157514104786910190471811632507310422746409295643377142288167998743239690402536787548885245524317828348701173858021659775162716529501772588149712684253176972921038531671977056084814745173258521027930610429318798546069616526153426354841890052798406985521715783870499334681890055691564484933080513826573470261715163842190493860594593172076704608200900712984941606890032437499355679124784692469492729442348220263296819567524834236411668555174786083026968315165887925501775705332796227151439548489099133132624003403032920930306977103118214295048471825767013191065672819061125793407544969073776655464075181262675766076294193015737350803972121559911899403896961025284759525703512045027566511388179361833758430983974973026998165872460385032434302564140847317386325888838893720885060795899040248605225252993846770886091639138100943851815541443812388102577451008114199936946770708220580083473499650335614740247872959836895041479643749570381652683936632487240231099483561542511710433434917142055996418640069914259850252454721271545427434220332378221828553635694613499431690222192451391403583506457939539693553960992429171378771640229363709692575391092438489866515900879561366956202400460724623078012624448235051208123969510731093937395279601938157357799345628205958390983091039007788421365955844912706600120079195362402745735119386024293263533260622153517170745084400195904812487091101952163257912584313626605423129648991799594191963795184986893419828262664602986177691568125131817514242705935251906125754345624650746682827892447209717259223459884075377283722574483866052449550156842581768100316664578874610781292464378602571005580212191133888380185516648690859939046456624970654287327028058266277991487611688386284788971357419395638798725235797088874225477354682707168796652166669121503007392197337536265542730923838058875412493246108372412499345358571125929770818547155289318718124808773963415779798728387902800176174128087202610449878127801868373559542321024969508641836441847093029738212786002512357164802446038529120755467860871477986151719767295339322196246527238846718971984536021734676078299842628334649312901088439797633269315079508272649530904806214169815874305669943944826145927138494169619378513604610695008205630987734743121248435351734881484563644426776630784702592897650181059842364690348055732575209461261534034698640821018941173830493654707952744306945438088715520420188744056688579394134872695359801057300503744312938877111871978933750885683137410272103622266964705467726968284153075921204033393204994879660736701806154181634535606284443787847954691086921577673333886619964721097127645962510941339099423361322259083480218041934248524538941631005538243646982784938910293542331632598260989443339846534224653980815140417646763169510833053144523747310897610408090136072857191102427062702506396971202464322713974670785184447922188278392994544553408824863751418472971871026165237105960932237424575094855789280881801713077372396740964237130925470181190350709790354216345678254662963417771727725570836108131941855577817012927541898862365282884814908687007125845610983872337106077163974518463970319434088738221730296656067374395977619237694721830761987363980563394340689697913072611395681499300282229345017544652709547885594415366543644433241963709282219557821862118500473423522792844090618832711717609662126385661537206055667127898445463554475797595674042519141928817380685744856025941349814089660152299882167705374595783796954646604405091092056933971993945962229934866728818585601504170787428098800622287516573121328700365963849679595583933057528975823462351639108806999938430551808609927732704355025040997380146485943784565240477119692141895765536266306564898818554664420894984107707292876021247181372335490862742191095541215570677548751298173040395882587220588787318095453861661254747467736201753992231343773947444978013264120081805277327992067202791098521876480052823102331884480461880925352602939357941745319831263816549475880983582520499176312556456445420487036971810907102668661559021636169476103220256087904539541342298306921773279357292568221133617320937206815271231675035984950674490480058347248433607997706986492171126202946883031142454280054343076725186715422400448580546943753790741401368274083755402185185756465922401467494779036550640701925339800396025256516613006296012199048401988330445495773833169703990201665816932777789200064154777457855590889609896816528554574693905836170648554190692081024178871314305708157271307713044399754619167895168589449757854649913813987423870035768377299911340621698061813065876589902508880190364205315312657206976548668383470953745429678654864766615823025718215874720704721146044651256611806687879210090769344836265351708888883143472636348386780169421353079362699955279139942332085458681399952136789656383629867144782529415142533043511700389170592615817807417666231266921741184035139788604559714515883465499439908676969831333555783119586610034953706873973680756154314991301848979335150184292822097655290430222030832176383744706774898577434878008738223599148081245038125935637767370427326772547214771185742122513483808960440479542892718762778077704191976194650148370587993015156325148711020021759665187895104381786217364912867549048350068713641933307394462719155441590960747836463378965261913782899037998569029994236358054573457820859038752764641877881554574811387878749537049271027292367946939597959720873658229716901070125615461085782309419271835758907224104235251585072594668616190552467700121113636151011209790684670399109257019850501393681043970323072407062656107513097310788078555491192165353743439700967310035908810890661819369286310362083755097087571799343266958520164048430707525267561985383114216042571117201806446813670976155188894655502506690064807256894304313715743601665876951584491986817123171751891829580961548340959278384782288713939175274925019234167492799320736251427563395666410638219707096883453436110046993102859406026030993386143177231054690212997298469015786297625385436961062653118880993099363697776801476296654252070011313960486563550550041108735017960657046183626298593055518303983958488663714531493121018819866063751362986925351352542683193743384456060051510638900552232623732037352579682247806001135645896175837834422508927864560130066432038579992872353339138874036604957345330827398451947629445023524604212020870748602057710048112442010361711741101469299659337928381847616498815088824849425239791691667714163511241895788364122530933676250003056672869367236891534241503574997230091569329090168388783063407548167397606308581653978787515067845358896668831466616004916127447572636115891794051151490182928266062293374821730021852027987595288681065909699629606574077929624927052677169985095158708478666101328850400363559160086386844616819789100294930927889612817092468784215852624035719817414749464391951879925858186624002829790823106778957471925820192361260351653124207134086965784926447645205047318112878909618007174391947538140421425561483304569510190383183280270492241676376157759155651961902006007101980893347762678798061869175591703304466171048300918052373575118048230780961395309752229844536474808993083013133921180613769275600092228683565938622441959960719334387380544274622988098850550290450125216411879361484410083410188635808922719283926877563474539097191292588351639115197573302658614349917718035786899593369275413412861357627148602279975170849904797206569368020404042837102190067506264975697551031622789735781570394928719287414221728689512289829804000482357213943976548071172735049685140192874743105402467920799682053753023472323586216849443798957033200735934580438044526752647172306627957501257897126109182098990886687256464789285975425068721680065046429105765357044051167956939565885828779631222806919052309839031117991706093730242585043981403556045977532048967306776761278206089547195086513430898150622938586028413732800048361222729782941269136864124572599640648826949399481594413063279501139658815908746841869496307687693718070892008292017640470123894977806082317026420583708755956571457237317329134656114523903345250249787485649573572211092601591218631092139114499890349304295884786664437584867310422819395690538755990245575325829822388797206527112249321262976455636021985752048906572472312307674066233488640430907075234637894877372436587608839515136329151145868694967988256229149769148028094332186656104133944864952166719618999192488234160984317358275591428820154856883633368486854463358425931224243474292576913814145101429106435276593588197005973853123503788366802680173214091073946511777275192823588625806176146050565701420115238776491432157356838472931183855983160066104450002902783408795498426445739958561407942070316044438946002545324647408815983253548825928015191735669367129013261139984238281969194978880907380603750760680270125346948172292796164543437833150906270099565645317173368852310468331982371153749820025656088600305083058974457674712579667284507764817146827425552845329949343238626298020540178025476676045990987358652964347301995154677801532968212262658373230797060682613536637898225160993431664251558388683944053203064897428502139515818817992436178511670892975559183148128414486417550646798958045648898663434850689748389685704750001477962975695731287972759219825473520726773379253841431279938869143187250654291900315051793490562871539672020994820880424660491572981096673691620367852349811080824440754471431079251447876271434979300487345588514108177544112911907591653328792089343540488058258032728794058825246858635075781219066996653845055638088681167698459076240469708687195713025756037670828074148444653079873314866773892059927808690791168048329023777689548374047251807035312136724564360677904426491314678093657240510035462174049100598949232767665705421467574035678665077895609796591339238222305257641744943762599092820486472803019526467647462886651201693209906864836498146207377179727259674238709493678610911440095162220146275751125478526820737097525400425658849449232462937855665615448380375857806641474570758071008378147604250285163749289757785418920211176722648917605684473324996542895231627978849421354354976861671542917379961911420659632953412846787369039609106379398582036152925437642719414273540978722676585696087619353577689545226003533919996765954328706466601908029935590982243846794152445045384574312647963286268800992237112328372411180636396797520685063091661402427057855286281661305939402631534168044038911197536031601525157647474749595469900523657206479523449522742687819043231102315867631798793383996177201859045780048851696783421790781567087782698422626291680236787339401558584461412974858346081977462846865360978086037802819868415048862112195058417294824375715318308615444206250092406469849087927037532597394916821672323786413726628010945115636658451133647971646239845123228787850917557512662458251404169234445940712755865915454461830687336093376049640996872215907894015055618146553552277057607762520953779182140347881540327853322705814444348341543420606776935210271458248223755120550882129593838222756020369712107981214825642395939197589925232095203906120320309905284816148735988724249308467674463991685860293153905450741256677004295258914256821115392203544530726789482359391649812093267760613188726079192029501021648555095908357366540594388806090690258422884293726222982659125633498467290081754472460229495278176131324614644301438449298534711486146950693028050220369991683949574767146897761790617612298760241476396168741541161216315646264479789109617440997707491982061215002598590783773066681557039190513394630898789604257981261703518439540750164169224107220597731116403480809419596020926877344531071965762492526814264514328023354328690449682276605759885247560868303008801562296416819073260438285611910709746483765133611309180448356596369963942415444689798395279697846952769481069414097856171683553818679348597502890994822708552397488740021439465396173969555587938697102275001816737016866702004731139979578523847401997491773135414137010314973656841037837709353179204012131699723066878372578620283746311884816755829849210475563531810720998661622406299969874339290763612726812581290389452547940088644233507667369033232298776426505611970144698635586860083122285947661276474299232310715857371827182345860394430416816503811760817285423784135588338732352028649262546032958980032776015118133112885072151574297495618091606784680479907207417777348360273186364480489302554461806584946645277691356063096606856925449304896471385925769419937609579251927227701605853772782171403306177297079650938102441432945535623274651733104629133336690673432214341218559958549711210993155323817877928490632531933282404916188309533756352258388046459017425404114638895246588710507114501771185693480944893069103415489123435650906884385109538605405401175215351376187581094328987925992698867161811301609687865496803945226296269240953193078750597724246337763953403158389933838941498173766621391879950003153047869351675149481247251065773572623947231396960644244772338961777187911492387300018176534894344595005354412060490147045905833778218258281853058042482845763747128231856031656447994312690484016964504392751398141241194526306186301876610748884011629246784977251183641115838738734517364927385911523057480477757795620142950849856699143827440766029349465580350204156820898007531854368241053862524673468577442798788676433566293129926187597899303793761449387940764308531363087461551046637609962921418251467103874582028617143006201190270662125928998889483376106952281274536385465340965382379369150700960240791746055086749739241004362928981720168626987408090548557445167294519778803374408247681227654904109024527896997790303495770426848170972077221328051957899322571451190568273372391503969638136484743249601289144839007094224999102781111994880455336298088457006223634322877605653376093019867550425678945034465094185105064244890566792567040212525102883115863983072509311594689060606363607051837151206016145535522175333327014936586153163237874038369608926001181415430657513970815444756871246175286912553222923895899501697300321951444434379577399593830808798942360104166604221713530870215459348432929413973591260443738754689469506341769308812769605818890072741266662842589079545414118552677554236763846662224324703332265206966030447815771022010886911836536263433880012938425978074525708669102993001446900588526302790224965567345208092559599702615541395315628776405188215382920209060994085778379297446706098644451256953987178197286030862607540511190264880892277658753687007880052252476197784778760615940679169506021049726054330236902652786649586387991405425982941697158120594655052423334436314477147641045413183469750091438724194257884185401443250727991666791455649241142265079391004464639931308343507639679083230364315270010167500938906168271690259911627232122262115444187513118148083754355654803292762235560639486225287810011147752482030670924421037930335266102078222848533915377753577964173747046423317818622471825808653127709807189393078616476440221486017842555878266498032953553072155484712094456648960039740044391613638601997217794894881018089159802186075698418657139179040909913753847741226805672142992499641403891849885905630758228347803991653381642907741455357243641957711033969323095701767743230717660198512519999456747124840352282138312719263486147529186281629636493544732674355330828783417293236795268765044161926687119081109895016883230617861134535297677303085982154515238884528848586656157232206377306968095218689501530184013278602593626308272671120543261737160222494424290169712013308981639124379402885786089593982062136113480174163537515991035498478987732005790060056839355154083696747253997331873494863659072961380587701709210157924404914725635936065378033019954788527153742565684488469129373224840405134006501231502745709761889184746052074800485110412103897532526760803929943209222854214295473812110086574942797526205784487094047336154616328667051664275609519847831594814227959575121030241086933083298409694853289760838093807087686446511666917948207867653383497542660419958761317504451742326047089829687406153976788552506575022230190794093924103053149500562848171978560113187346353608601637849244953107544385420583719467035274009847141154564156877881803552312312657121392748993566086802479199240136159863882132062526369838435385023148464452884243322363284199257776494971950325267352584718768738365308297994867215535247296205066054317062283181630192409978711219332595312703746416230951942070863468790382369799597382765478062242590558668844384706815523611657103461646812384725533980649669341163858424682034123876011384255507980908517567069550872476791500407694760591340396746912702293382027856091439494579865666088036446907572723383563323160627300446167996088635754324166421311606167321450895832107158045651474051817855983143240890915026102155611297855000030563851642013954608458757882183969611621912409284601575454102084725729107948048316905175629012494464973015870230661886169480574179846473514146183576381302385506510527069270471241041613429308142401622454966166323092150784926488147819356966976919974829509937851998822843650198820343680625785986463561882890703919240776185814339601299475467121000904225764985095727657877824891521237242323018718734365134953099981420430600917124232340400308533885229679474180282928728742274414081515806901299297906731769239675480617962473308445358466511254707238514339845933463150801768831669888832403945620573175964364217329114499670716013069142097525379713966680410696094083845712284055391593932599488103496121029764736512030257711231684564143980207902860073849155200739020697277990372034184722820926296297804463089521367682368683518061658739520241766837936523199140198843203289104013484896392470881621106450316662814688847104300156646716568375524830184061530035787063026008535964564775211167703783406283319124194634528574075753324054621929991535565848095376723919903817001177093681587760228958088685462396760109246845287310677732773100356592223814135503822984922497782182965851543187615215682812752394383618252291068053970346342790692716290185335768385802064992379084401772986240221527564928898542057945659665345670437956919247329357784808849190224863994205767561436005043442630894756161078642146748401996383124803080607579222094374148915709545593826445818681861909260716840067037503068455662998806853110440153730130538619832031302093131825934570376399622213449390446213467174952409157095786988880535693945941243288933136049958820751390583080216960573238879886017762748735421257986282306368016368761927560121070953607566219051769627541966833923076027018811492472695859962359982191409087282053916228240625608714613026689432945250180626757491993727741985348614648732925577879712896786684000029914998989364984087722640906881678784076404365189301409108528707643686430376671387791539088199902314620902341698862586379368082106590933140239787586109862100747327289603321309597424381035033532413201128650028767390795843296991723692119014698760006349400739425526743038407193133586849384630389426801782733528469119969287853275507192811379020689177735561101992809878229295900217011233596999745202693887186632088561585652052495030601064885305513542515029496389195297240860228853270822193666479428738095950557635783518112505958354426267295758714413696098265447834489002119472886438304087642208698648301490369169904613956524436018067447486685209296182654824702237263350775786909153648039349979992071406296754959727177328069066186802103073200723997057134278800202855284174769685661690430191442182412246688518533206471851400665759587578580262321613727309135170205425889247236359955695575655124997451822428410781440304801834425820279543393956651075975668188340354264107903196476085985500473213460545725267628490812851413920777640817412487349638636935231259279198359146092050942178235290069654650670786084988702916724061151051482875883823385113971588040846041418417076233514552707273628781990124350856663176669254241984027907696215778300352075023738031337745175891237987829579561291368433315322799662149063347003043171717620731068985648510982291186853927816218727642266613762708486835359799701756029497397833639085313466450925396442926176975578799751606580229197879232629668932325023007899620901938949266839492040652836327682760907536459735417238858629037626683933935124291519796066059099476317307560353354622714623747478561478126217823648367118540602628117813048447854199574916108878771646703976638709532682737466108122371331611169393609569988317047225172952512097359716258783770025481542982057744309326628879670576042448610143025906281603943576077970760755628235355938365202893824063106722585974326187233202503546161962059179979179121555766028943168414350463805255588891667720347214628145682125076286144745546326014171282750972123097552391868209002431569121997193962221352588570069446516810284476959922915373705688170240176933501554846507065423681940556156433518166100002816899613116419925723140335741972833401440618340191158208002196124680457997389441771618300336664665620329134021066183706875644508749910607425068263482240992334560900654223079226693563831023596006591672586496733963276074258760914609145569355309395635648609911165478358944255884415292368824974111231118595390114296002310254041952932330412130052884895398289765378028051752543684593500829920062656297139234043773944919284443012403416331155748864248790869553925335934111604124273709446515741957000485743133827982666670177266178576440099179680327818154949271348506462005500030645076511572241758430737026731162222442980705062534816387418845339112656458972892266059701451136697968338744200614751575161661034863120244482563479930165563459774255647805136024378802649234955106443501943957284143164142324882229388377163003195813760836019367626646102407937181154369987704574990708720311179128646076072776038681942147919761981948096901549055849770549750681910353603677285958180473494759728470659847084321562978694658245409725871709807590977302547565382846747444680770847114322672681155974298275809768320107798882834905550090023013615348211484403339557475968658980455296011735284645154633678041566658783936926025258479902628629174115329081715035328328659524750729933081737701096402676169925288092135340640938471840909230505675398882700132203734238949129971802771585489509941057795956292038334136808882907852113850304895839570448035418106233598870049400026112836321046999099471446002303682732766420723636468936750908121502845986852139602917388937185409106789592121052360703328323850955909765247175796202354950974895889256274667280447601667382412558779884926414781234501843816157778978288114948659578300261665218018730506650855008866185992342994111011646474212148069796960433232043475498789354368810911744865886233975107461325045492202514879971047842550023216990827661307131452955326623469191570298922575435535259101337323632666940963751692873591868157936574378180619662827563841188500007351687236901208573314825159233979388104487828640432443311346915318147993138218247340427909888089934863716393766996225044348964075548916739837469181861735879386704700130971527932126939921464833834384089454576701474471390907712220538497217444538608870528890241417691392285343698673824541031719309197704273592170336110656085697975852997686271084931055384282769156167821019295987134843845124215358962610253284982324416263805805689118097866676957431089016206738887192264513870206140619737298941224053340383655296839548420339186297973732068951839911064525345821013716683222475597772112655955404050175189411602812312629200422643308322621095334320412781394550954008357053452206153868186280877424120088038921130866685830799085276895003574151627424874189135983583138872123019163241497571721289084224554617666701251354093470337439121860940457397054963488355405269058872573994296565203719166189232706948142394264898052092104908700277700911812452060687144816629237734012060419102912378903775249654857225025148855407884785106715469672486148589232231684157382579857790928397807389342261315831018148090586736019694257848192367358616053737122265583878452036432377294608520616584897436507909804575351678700726470106483396771830587048382057206442694676267734542732497790690560424262333497775380088079147438679372991757200458395799681418077415827955306735721850721728772549632502998259014456460418053978150764285914381869794324675803531353786817912353579824260285310632552395849503877929951523988429304364420696704856287673210725585498288781586556079613050558264479383504217071393147385102705663511468336078857761240051112413956369134715467557394264333321603742939153717352304660189325678635981099332470211137860345402660931661070369628398575312071752980876747667660803371800223978756714939320901727887070936990613873017254497917782783640393121811336426002071436590309792748595622172587970281294745388904459198284761118443275232582621538592409785756785662755747489163484980028300628262598294840141508347210549999527175235732085471401312489582089280289196889463055144005582130194606086830539292087282090167562486124567239246915239239983366432323379595140576245441506879558046608498294244627709842273680110008227925720304362871389421205798533706324618998360839107245524866833813902803492123542644710523011097037964602575848823187982850972078471664020852614123998986021545383322614818740690074271142087151821206818635925779113700148969787572781540909503556381475821058611323731659353559922275448207807431565277978548564194505562190643311317102263191414623424917267271297356663527580225451752052580282860643865111639878219278342723393210668273097566347361475458613324570091178419104523606305513167424820634595531544098304380008772016344767422653217365983892266210116418905074443151331382922601480701463420085007449269890866893381966091461936285351083244863261782738953217650215317300352748026985178781830435796907546427658301463838388913128453595745852599954991538459679605683911010332633901945799658070047824114730818037208037261854666983271552167902604809936319322352722112963431547192473026359282779479912618708811350595371603829986841778175859573681439047485604227146322699472126039027347110697700865894426895425216381463455780728250124810584283501436016982354941976575033286795776213662173609105232015145742047219635018864500246681375790355499550460696056944885513112829867892526969986100551441048729574449735760345871106502399371643806548219782323827367857911108232656744613819890325246954138051096276221794956069202617906815656831315597427869588941661041345232702521751129037064443600568967397212476619820185177185284748780777920477351220495586059425162638611757645455912815230373972895447335791522493232628001437571203606980006702070748241383149815902090653304045503788210862910632560416718202566303227384150065175661343765916905898904050592944353721858732183061063821495843817564807369802177106097335185913173021227427627108652743498329326655641751105660355470736753955244249349339714749886642217043519622760705333875055760808080098866661928350482738664711631062583083675223306595848666803172219768355561648753429064966694612118442082465362913068344245917468313413874471553572845556097007228783248339065535887023267610417999429668718799742759628157163421077248401937738750259618852203035710962026316422790898804395600523223955550157049994287450256266268263700405156651753595793437520824739363335046365551399033147441363723710526714646438503892532273964158019426026701066785840638234172244614292403178508848543525002488152763211961070104193208275403235214041457688468477065404578608000086567256425569722405767829514899228812191521104465064779409569724224718489688988886575926162880738538718982822338285853005666448269261947645092899344548012376919839258059664849949091054216080171966383473265134241144990400160141559916177532397129791010242484691283081136074818150986302074935183912914256879503602425556303004163506341827088060840437391818859586000874538941036693122650915341843064802001221932614754376790100572650769627596738074019637506063615492472566848053311302517237929680302368257347177080243163924088044667923933309863229216767700858896486231219089693913625071678452172916943762281603775827287278134998650182192315275916683577035276366011621601703144199279015619050367921674572185509526863180669465793952062218657954204031015906770115149620415625456931539373800252666003654109601238230456565143511493331475931926753223330485382010981589879472123494268753643575155903271821548683940941258257430665379684862113097899734102608540230935743805846156458627098026812185463131170599655866384055041940491325719731855636857904491630233809946246345267476357223241401989177736903587940442550623368287076690679368268134706364903406753512371826775915354623733832368571336069668179977616613615923762797765082745693062558169481432462649656127405533967586886563211472763364298920820456406064198017076316025135045553514200274343635920335755974933825783139650638559097708460916328720276309862282865828697381355235054378173815963510581214838336126863576086055878775949149102810872845880114284230822916973278424911273529461610419756999914045548097431258161515291102656502775579987066092769081859698931260834756610226845075085978450209875466464820906350924251496396883369466119304782245744791224957256242286287495813741931242757210768362081501130934925821273151393228016411939467431733887313417542389124038670707418946632532409639246457815142056628696176695695289338655902671608902211021268737011466019378636285504876783405068786222475168172753395772313236540886578686384075348922586942681171944771516271000868690130482470948689147461326035456726091737516462795498020204554658338584673554208833798040115631870507644034278493522511618135469822460283198850731485159685268286316545502298245539163171236392200313962581008984526203088306781943104616513427552045381679504547923447561796362194276948557203302311104011948879985974725449508167274390741366246332358895273209864197303726780976394396392210676963776424712790730227149711453143624888907426327255788068159594659721854334483190338126393877581026590006059216202005945785089317868732371452105855284135884230529313132294600368406754004334489664495265929727092465197639121470077465019879974753188307666578398056689274198976575899182563661729114552437353602132944729826931474866863061726092994077414543148646247933884136356299105197250446870002721317147729780469216855321426452307073260346445306933615360343965484361397814421891706271802722294837610289040746513362177952904346394114417280162603164410939369618379686076670720285547378244770639279904482489487001978597361859294535035842364254144393432031731323727265407428942141434256327170561170890731905954582083388360304566895275522279695132082408886640865489330418160013194625498205709769463739818649197354258427428517612018840898786740782064681799106554225038366705306302447982217817766771875230124173866033808722904848629946748366180175633030173719979355144851611382858591753282652718316871877694616728642247490617283992062249287484209009979828907311153317502248030033842488596491841616436243441687621245703005638380300177732215096645100254241476717398535607419586683860872386173826169985054939826552285719691929589288225347098558199013860156478014800353613446627380483116940479572011619991095343517053559499920244105258686843201043101268057856489578754455906617353424211108036392250936738751062584649967611043686415197628911670344989524533028753684228886011544831861261683213771474337206428077396351833220148643353418670640768393865823096231275567559226350201478322518764911485980379724570813719753878343996456848538580288328996975134020512849502631333879261377875584131473956851982441016850091021848459305254968679677982330878619503938702875782439201307158290269440272161795692459350682509087744981381226202712865848449245169335100672990058114439747278106082880081017414358349201518899989544538970925118512346171462467170438002490754223460022120696683520520702958439789578958556694468576930124951455545142851684783632527331721867125086441912345205412602454589408599726480858926727018438617374494705524006765045206907317140926527426855749480571255713317757069696643268761686706335117972166474297558477454379826136125985219112668549322650110814615513732055774944630562197351672056548295153356954857450385194734486496865076455288888462843827818080098780914082306494124153722597850164675265313456971921512075650769915985180990704261455558524444658087872648906964239865942429618469577799071043431583732655868454874495400409260129637479709683583321503281103535670181315145376284347032512782323908919439633936215839568828351768250620264333532413777847034014616915536287129756138238759503205393908837617821024848240238070450380411207116660887826217633687762595483982872313571870352199797061502755354508312979798681995556871296669711057093228545904168732497818904939643254747170219975940553033397727474616094314185241059378846528183454352228904881611898584608330252270997896819295394166288508831679949062862341916216852437163470566797409715044820817346831530127795710187870557319698747285497041752853786540080226009344163576964874489554917268362865878601299332863592044842211546558718774867511911547792890484019851638412297386852385654243618099350706983731530828390447212317968942769201826333437931694139707727142328715805966261298702516837032630952498088954995916023454328411588288962896393637183852331663131320201415387526437879818479048584079753638683387638753804586428932289512328039712858278101167611078313819487141746731465250837794276542364970308229351612827536391221945232484046739178965064343042351438603132854730679233334862298848365570799310925876862971772663999764719791529604403893987384359058873276182790801577388084774479829598297914207021668464588053577390047818849832013878802362884475356277747705987303366992572364607199950787049028057567932922730181014198598492836494592770304637945419449801341384963122125751350028389740166773213059989105304545433621974595997850323875638066230338918839372808524765863386544500220636560387973815138114682253799499916493671342319281599930487289836316950356454946783118125905772062168730298422678198985322534742086574730374285120836911583065882093432454654689361135236021278200186178268541570122167288619364749968154582239376240834562796136545022937230032926315620437389657978921805035051020700654002345875356947098766992881775536007993319585905110109878162251068926368886197627387893512060894349814727564316741615430823400356040604456583409880230556033906057693354599399372478952416990241318807123859249240298608380683599789456426799455309123246518180185172488043740185700428335292408029733182381152082520315147430795719457051653298487451339781830519087867254315744661541694644772950349685595995024663703635367181483605076741902886762380036714677562674903509697528808105249675594346913637902899561154019557781212971879792274651292884256997742628210936215167581566217683626583832622718568937952575656207969804284289308668545302840084126479294883448827478990554880246123485527085527065174993267322369057444742371276226562739620381634684133072465584298976587069906800415501379570576083181686452138099089376457019798111409767784917658182450298965282639912245104984449848945251155152592595661734951105229090739551369169150364408146759426960786882270111740114021021172227506396788523574212974619302847105279675438316999708130589716804023776620172315702621698223394183536200339890941290293797011803915597228179152803720683726362308466912409104596175038952508659942248783944507742960090744235940505435575680774345485195436379953651606997132193288297511800476098956233250810202419346897066583394574541152041473030357934377005671935467729951307014668025443491026795794830335873313690334568974513134883792402782892677713486796566707180844049651826191604030987238635935472227090697050498526650192988894602664763645545865068668685415310576242012819656234651895380201793859861055183484094308946776022519371631115169463679532722719788705907325997895228055600976062976135474700378011173722653524643352993261520476036078910527144028016614325595926864580290008499487926096000210484214390444587564536724401918672477700251067021128625745047415345900660687333672859236241238375990687795244143076350396387400628948310334674432453367446291926188551955458470793987744101221089986691114941851536681764853348855397546102286069247646684739242055654199416531714523801494708810657376949776613508418858825492457605121932780232680414069955405448237066229819728966645970274137536585885957824700471865715658324227260573446610100849302245188664846265713543686005773375928692948883975806406296657621779058271498976210201990910934044181660388766145996959576940857905405608099548552984198111171343434334362112753453705430576095619892902379561629597462047597498303712269569359906538605097846615623565041833299212877505610600684837886910563249715873182256990228676393431661999611761166052621161095179945011238592761159124341124428864287901894050660007037492746968746250729916239281519227964079392434382311870289608073399108646550305563824172813858286985891712622174952293420633778599969439561672493585221320332982641990328876022484749709073587999810931587905293742809712512372947135923660053460272784736391619967432979887684310197907386434695588370660707083713387705092328811820066021807111751858616510457546520875700414686018771391820825769195682349152465631992807061859058669197753844556664883674619415563427500156697287596756574097002867693270588871079351645020212194977471330226122335645493850382979581453502077498508385530320790328427266332221884133886629672365849724904435384861040523443122383283664401546750055128411255269126754981882039677492253536376076398251446767163459977400007388635066399949535525265197226393153946829213853059666355204015634268920483644141795155013835065841309488536261918978913883934426699839423159643019070951053977510094020058510229186713137233701747182866170927326759267275888444505285252331477492693941234974855471844578604590585642363839767134991996185469523339838306900943029599370410551489188911067991468361692119103385406912854535537990733707369990363317518490838745627321510060686606317922502114745254967790950260205182937137605156913573548058474581069636077143667471006696888943202794443839238220866312414041517052482336628713433610227063808779296787100140784793052632871022769777935363600578871540543296303570222734399591251833110506489774433114116546792390647166186155813455283084066062196521895141781278540221688067490364610072737955693078176290909082717817171689057894871258786476099829952138887007956004506917486692386874469182781044993402570035163925295967262343098083557624400937841599004214968264107468256896615655269882041412182974301393674149514678489671739147789136891818345948564015189885360376121493541766252686835034593525043435474118061201509795273319768331189953622784910056094507388817871257842814770292927752036842718129423127574937399789899924468728114635115327808752311903014666420603348760711578859976840346880975485015666576180403981685296049225316000358433964148354806730256937182537891116546980611507909071813100423909076643244763510644850215255625568308196286211667269475153943352932107125937083714281051939490467764880141801544289159666969724145501833847431214226855094851133414441881972933779911189497931651122528383880773976676720459828663919559980738880599403020968619282055398149946021967597199622847046938964232866135306468827484328159473088333248348618082238105223875046869046892589552140155830144916773584909131850708212091658206584070943571442694923691289096574553835385035363565230683888792696350425574544889503890353115207860262919306254942759298916337672410068291835826442812853356498631377217724864274859204208271751794312822953003380172544606183971908584266211621538182519228891955741439440606980661812819384193622177774979694491022332208730647695334173526212848845051153245629674759033045886684978650832696740377080629983289873718190592976837192790105437052678193579650496221237494066822940018309696421651219382279246307958276134478277996625296591579501884954613010561945973917960229838684084897763491821620125216930267995482935709995153650751207939860706278899262473129230931290860757747697038366547844350234612940543606367963531119220905334841286542536438328632469660889926914708408846336189292353596092588766122784924613047621357322660030561200317476235124708268508682114708557102158822767960123401598421032265488148802838754985779542352210036606473704813712042243813545793920399891489399048420018583136504603499409920961887897801132191638214196282219090900336941752258695787289007898439914771570618232903012460371444265172879570216462043023750183107494675446003102944728599792488822286321581370808040270515573126235864739869035516233491861811395543536592093854980615184629768752423286434573845626172701953095952088726376730884553722291861163737069608532320097183445849564863692934586710521520481220716339201368806956194463360003324006072101025723616732421409265270755456075332937414159752086660523135541416047104777813182878849351703292321215394317512017107564619520492135285567855270403212522931454960954583421880353759625931849241937206952642655016236793687901690094696243049140189269004898657686038717868030928073146238417986062687901347911993773155404849157624268554514174317883725496652603908529585528601179568406575949064315351265864102505553327279313803561501346733109137212015661929394141332209746076125026196906392410448681461343600648835162673574033414346857444746047858662995665814099509001896804641118891319423355718848060196470252267296675269668133069299048081522042856841817159965834273611410455044730827062475530257831578402300277286241047834592209009031770656812910932142799954313617349325183926184872758009522128221664444715117495516796321569551342291231331360122187300941196108578299100186955755944063569647467198268105037419395355408378625930465270660330934646142084948356430032330038756736123915862009810316265856820562609171492873432209640082654436412616003500645203214165861225862227627640090509036220611035050831094958121950956057946350341116713995858797725115931660072084329232732993271716781851828039389962332455555869756183403898544442080745925705887731821802241729652576688791005824965502907766547245110344876384037549105300412436366130142827248759373382878050278589827534609836790781760551386586061069162379682970800400750344414770757160793331750334471330273743774012630549749570644242481895085056407635239659820398713806776742621128166250452869165091457905309656434294127032184755074680689681351698056443446736873051669971618038860932651163042403230739421613081807630906843744874553749841443353311241350475868469974521624272524427552048121692969480534114189664972478535121615867865779642392966628873629020550325991682259332442023782090327871578716592899370194697165729427784455619888567568909656580941093549296895025368404744423398853589882418538419343056002724436502710519936417690754284510434620955586858864558513493648244327407929891385412303814066203866427197560976511335172209866708357202833622627867600248800608571190710602527276444460462437818513808351990692559507585956634320292775019148805602340325777299888360481849852033043101491764740293302532677622290876788248581907981175464861323666318810327685232424153510498502995986658847043573902476538510102825542158445727573331831217977870673037580200350273564268942192138178332769328432897567568626483114484530888685007508980322162305517549882161152700906639976966884211476002897577362650707635272209822655310065003377540906255998066293883498224113634246773703584090411551792985406857571563713392088802053854607466646743707666888077183531050131545150275078406472738439313076272698584815369021022410940422116277271989511300184356180177767098006571220095416166094029694003907341564235305071792143969727179676495187058948658936716410238803775091256377240311679337238497917873514038795357212977462545775535839762760070583310421988892871711913484780350762762336484818730479272237688579399692629869427558880150325228833861836817531951888724075135343529193118711865473203600844588962139558995408046553992052896441793123141890438282883027958609866724700648151936001595997560700761895266773423190065024432847203889070737193354983342360173048876566245257325270041523386280405452272307058819886282174413738423319181026510733126870778359344713227158595756501351593537809723713210229558062994557883899441751301357802627625585337255384002940343649762456402133791739528006315351480092405940511188649577167656706676212421551134741646470021536947614604605307011502607356198719231654165867322948640866206267985560213832445001900655441914072995121096902243710487821194871219981319134492405348177388412006163533862906456208012831638292642419892058917217242177447950737532606966350933877257901462858190644029741767125260728346342496947716465054698705635273147799536334705530954361258653046008673823758514915973584714735497541665846535445879217898344187701577148723293576923656405269673906792296647977903197014174284270850291134575827139080399927819777663613751253109912683301994626322293504543671172237629999991338354584010203005171230991197272242197271953853899556269093641027607096580905176380087373301535575675251824959238484448398430227845527959636121069923334015108223120822135117380837654221333641462349140192862014320486622418846868080091241362388973743452654397219848008363883599357994517017698877504339046396003144263491528983984713517432643479855155975207845960193295555798779653282765415991429961045558869818174344742211773274106705219478712101527676452156458317269482954616813600455487623643416980765140669391834939513861323893563369076939393120446173148989267616705912253483537152666292045388625571702962895424821263982490065940618914895853943037021452967031928477188109685157406452068600385662177467380357210899611968543283675444451112533271877885228065210189375231941159450599410218974680226509046719398905959465698453434721789664404070180361551574707723597305304742169267610208061716520845345501995480345201091744589560454733514770891138816141423618374508334458023085669466891097559397168919362130349565888314420472922586206223433513291697415944769384564703034192544980847008005951684755480768880516543861853589333207105243350084151692827536845152962516906951405501697396684949530119191360883430667132155503899279025664200931739092445890801294405129790921222057188941789700141620770246260009508787623825758149049691322782828875553443587060808572998499618062662443162197623718216008293848017951220743202324522712655740216733045222820093531883770811601862873161022758294706738089645090280089425782832865258228886428946447919813963857398860319505600700038244550414508799023187840075528083239878066283685708391519703337939913678011572685109411590990416345503000167982263239877022030545275757697364027394407135586647239155259764378493238503032387543035140671952297121330851551315994381458822210470173523929888096292078080106965751067567916898197456192075884982693936694863581513957757512992669284866778355122064387976971777227618576801483611013153563971881810495545035877291197123320105210316429332058324378603905501222460095693126614822153695536860912968652562393160044552226750823744254645542722903678230224438327664670353358266271635141630032706109907656204967510505992535755572524038062265039344964163838369708164643530738997154723060418029789260942908463839036285675239488310447801036515306325910534428625376711378011961370629526063812416204363094582837257948583157794790381846786127139052022586718545379794491706355537334332642462958622164691037145889933198720870489778626445828377911130731629592435032271999423649589792848084409300339552803678431232619321268439418935996631838583030807116689568226981077594869538482066098424757239035225959565019484151100520589316256673763413070027646574186790545133374644067117276212008350708066713675976622967204954285064822074092558860501739940343424160301851520930647161931160233652169928126559523477976662913624369038693181292132623444996802438108540152689336158686366746692279846499573691241711065231431467028711908178988555189466807602977344285681451089042088268091359484574988359441053468020618047655268517714866054382780421540142141643077690652414904262713432132912427171967343491751996016769972556434093962510382830213775240337945412404443750227260980508944500164540959431463917859205036773910709915549616650003933921366347611984379036122593486543231846632361396510686699515125722649056086987716719298906260796771568393297302551018094470416403402968944580653606622165592792652403782777607207477551594166948063344850563451987960217015764728429666638361977390256572798900193459314602125361246774027590136397371430599460653360350293861805321737268285859362103088374580850178757857435621654861058071582573737569453121411774004506604389561437545220208074876438883920918760478860432256624365203771212257132689549443510697718401666031979781472186226952829983247660775142110983941161310427729744130382132969703807397543364076253227769509380237393342577203944264983077071063997547178645804271072257434017558126824146295858483102123390484489700638720092178011620638382996218932865641779558154679442975124409551497823838106568182715916607398239042516267856475433855281531051774162608142306548385703664927659416179800062065710968554834429779622025940351754303450962820260371473308904437139260712113115659069421241619712816422399451682616119792509911108837073154519496005097743881476224460164294309476986029820320512766010088209481714319212743506473600139922459134978881819117766924182939182640079321411381652920171256578183926755771161994573860691856480818465498846503973941654213731276438154504806835906932576773750000514316286701362133558809302945510751305682258764624163842627707797830268420759100509264598438537618359716234618891468709546776411939563491588306263742882305964709185027330931181175805087367474177902548240539572991240758737980502031457869418788607524617600939750956642640068671661465455937550319032612706379937919574515566828915797418880747525069708460296365872218696576244149784992421029099338867671034962584784630470833107585380409482422749574789700107823426685572027775289226063708166217189671252155530998438133681071759356398187484708091550352458541140625363635551322404082244933632631768899726677915424916240136010427690716520555754978694014136195322698330810433630924891353221912058090624471568638123774133477400086135975471087945865311091079813989451342443070965165234955990581621283169164587143586407802174142123490599625127881056427067584401514525912916032529683695822941249438953159256122043684258864147776259195336530713811621076985879624077889740149171640900203640331857696362490469789441174475920310629188386116527947805712569751860832441896354371298913405720242829719581060330989079215592971890074778048136437802123119802957058626158146220126605897445610375606949866207650583358474161566562435483001247075328122378003172521410674824680793920398044247106289135010211080347149105737187190287033137230399113938476578190261735541376031905387677943776218918805245471977821873329418777939286718521161489494148690080815188781766781326440794134570727379278991877475916886344849149069821406080362770026740273171121153498332299968735650458138119741267247279868727510481221874963359996649938447919694446244318391210180066078933156159816246468541925802702982889727632658617193016564959949327188434592623867361769337733249809404038828118876199679875881177254655222268087500219143640776042746081642757803460169999111078429036576249461665706394844865354548269008131544712560643658051358296181219699874676421490859252597676873811169211100686712957289617296279666214525935733257652629609714342459822009718768114789650872942727026178959631278888655198242723513460717351459368900926149302842623416813492274832915461737604547289202453535687752268292410539747311334687998497312549236925425661369594598453023600958804551566389850549534377975104528910956322455775565921264116210624251957644588444610641206071931680180829488172105992789188156718782157961346066583785052473235094909619498308085031952003077654665716989248262999926201182791499286967775699452606653120632532442339223543075546965198405045533468348216512459879457297060714017147369341694863716011796111381102103334853621249921358513768380358583334884178053599334446886115551018624476465432350320951163787549238136396960425153369593389306435293506514920905473612186786957290674984351264155321294285298232054024803206810910350179484718789197362435454691881274118959271396393045769498842010649603858183142960664992598182716896590883255273373328502953067686549712774633603831526429356886554651110958199655733947196207079815975176881534142070202882713264985850274827162390631608561631741589511111436085454381590287431823929094706373908671907792290898714393557094049088826193110020591967289529585054417465976430418015249280046711004167794184400628641835352408143180580908233195162303962484693168430664906162485726283635063880588116699318268109139722586965097847715390904509466448662437417846414436887522465385048077686407744761662497942380063982810794496193560381198223240076078577474553048233866568843608511438922526223926225685888960961831132959366196161782883783720744585320693585971209782742814177123584449831720697931417360359472735297654576245559891178294831625194810014998143017198696523509628744974414485270273607849126711072509070808788781587272061929449881484195258812056860922741859118938159385040429699879531857991123065728378633183908297006351202090545016636342944181703633860204737643290091669809362678096902596329045332533338612392458902862110025629427510062279814927247862345019535660253853690223875277290549647591090766530067881889939394065023828111494505774653043892911762982861342821715930500264354546021573555217338193531101972864661366787853542846076834838991267677575329278642350628737794204429458169985844336216044928219591922642487579297514545137348099799364191802058360059252799829222433636577412420794370827939805432603123066479231978397926400082709420235990533255105594495165237098612213381729406369944469681650071786795275436019684810278948127910978565654689776665822163349666887952687486955043232375128706176717756332237260995459505313361356231714674470453070345968692619104144580099394796471621622557924326182920008912328225027696412174876679995875004040621485121802642138650097047230660235537841625156743122000342610410732470768305544834903864356723057428453207473328666835021954148557220404827115934114144986447292200789601247192677822061603545195844211643163032881653366735171996098128059138196937067959744899352220254859930485328225933330071903658894543508152569588117698038290882632614987191883528353558295312528679792298277536531170129865907507875400264652351097266925238224824566083361859601996038749870048566367354496573296778793040543543928041959258646597122059776005486974196225138410666344512365371090474761980106307055728136115930198364408105852985070141464245896832039024901814096379052101910941953385885228949889374975774431289574266095225149313552635960861130492097845399801346680275704745136397848226450501885002801493287297311404092970369577322267547630898375198716976844114520820732129456098242607997409288099931651150970747788485949580239024429470776873970507172343615039763633547913809458928590185079137260979440752612142719110618437566385602383237855524641400376738736180675493581392689338115454493378936550869044126811708480297501590742125917229997345800752079768383783559800505203832835981660659555405761015848583652501494425248797522874726325660956274006862294112172289557498042998088006673909505028775449663263612837035275451314896851797089925357585851193289934079611947659224081375648153061093722203314088317753607900671631953520713740693391113121321872363427220438994049855002521660763582165508247474506617540940725825163339370113172398304409043949919364327544899411257049588520609656692663033273645425438390013830571891080573289613717672749913534468610516232212273463243466145418003375509126169657700620125477835318504169078558948565687298432828847013269653396789797197459864652908217285831720650179103793640819138381737509761658795367550013271026757672161695747717741995907911975978625352798983450419040399754809951249962606931556519816782857233144445335466153194177650411500047227136945722093606869297306597854400130470988538393838375500806612631539002616759231763181896449980517254705784313550032901729540068922783021725129002975492865916295001020011528194976079639968243318041012030813953754872733554096237299415165642697919639318181508593317472278833256748440562553061744310281607760924434672646887235110874351139532133997023108742917293822112274541458249645954575302463767717143376706108982756092408916145424659605583881269899928198392039277455001327274474851062024613411153788971783988140746903976441906644480479832379119109697221073220560912611137239667132747167557234549471870829535677445070077088206477383792331107911495510785469448219031954645999461006810469476224081390038310599475332206269802623723345382491148476619687014555632014633642507396475172740265695266151066881151958517203365329483295826022210181226720018468895068200954796898455949759855072339705375081955366901302848698295940316515504780351206196018795274664572643398090255467303078805929848786175365907308150130342180820955670805320149175088599128888955763085690828990901207037911775320474727096688020386204013621093197602623071958580268146825808374219606195939936762184218310744888941170310408216436841198418615479737505379935987550419476277412427516539883620033528800616826342479933233591328968839648108692259622533405058319668245516048726885714192133751151249654175790325983977865758191371788538044653636327450991675364361879885566263334187745093765995765353635737473818643206120011657365525367188704369048901531309214748720172245216249258930458195819997632818446674525236049165813836343813592968066862162407970685510350546152430334428823937373735186566016011475992293804093092684571862966783716567097779883453083166888376731821641537365741614059485271514650026575854368941444506017645474110968360715580876127256295932290381198525446916507137982147463201279705261098707833166744360713969467337407689395912585945867609934789425737782926549161982393110858985450247802398653779649932492956080173465542625096840632271988162406553748962979085142092938720803732687098033012533859352932072432939331306719803449408721672997368615250563578655542889544345810782493352267255880829055271823941923944971298514763554321162720034619817727213004005261849141925330116387523925982346929426525856936132554943000520971777978169408588412063046685255123157628682534235300393188377204624818291825782853715732102642312660729118587547465789369385887922119078892643869768416043042105963146414653023020802137648859539772927062989778605802400405251842195530203137035434842783282599704357878215285030162439652639724923120496774599165077481160082034877565125897385755444902466166984190761131073496432799749993485760801107287841711442829482259642289775421109013004035633701534957950299419847220914131167188631626295891357000137164792163166112931166030180092310343407270138086477779877525699321876641606676965518428241320795526900683523748566081618233769211753668703649124252266971750324678235397897780169142722109919888791738883288896990807104989967042075597927520810009117058242884582544074795074652638082672193650083643698408681681370832842673232374302830281213662405519472139976693029932117897592162860006806215760504562131133810692572151168968693388120600595016326136842065207932292744333037261984964273922511773187848776543239286924814522713364080007300005948445712060355032628957104897129348892923861030705833111295625579667215714001065528385114698699346284746690024409806977200838065885199664018972324018590791236051118718020694456317498694610673185900373407258909121550717542793496531626539434487976915608045276792671991574358029497765058466719381046190038923325895290371931413022184009780296227785997320726865123127552209461072735673964915537433091735862941893620496283513456025193562995889512276320652934751835742132608042816410709986434329303104862023108679807181498448446465615998828223327913086555889186879502516333830914521088689884061272381085277412369279782509609052279805703218426481627327023601128311536774318273385335764270303179028527971239084618150441654107309540350259923528330106903391729924922577807736943737668572040920019165155510826024637091445883534406222781697356367907195869805460267495401227964617404180154726095789567905213552073873671791872759857629910828850363549071481080274189846587103720654967092407567585058584369936070154148087865732595363347377345225488159089282613616042124695841247488876279910408709008383886493947216180936995732513022179252284706534356546475986503539344895958295963218868020576443246213096228082519386680520687695096389164967107686564999420173391463348344842025578567836558798927851166921622347641038515566690424537068928173301225667446409616505047594538374444803622439521203117296117782830909998113699799738006490543691129907758042840057440120745186521317932131396997211107456576952688274766992468041097339893982250088007673583424389597453970407040017811753164304249742113725525544232035372110045471089816210973716075305196393203216585432541112601245685330006598293152325407190345623627153836853961726532731848992347576519522696313486972559854923345993937274912035378262562287741641770890649319196654030408033575985067264497900437537438203547773361100397087750540221267334232785651882397750658477422164439282517177443235604044662204861922702977051100224086455891850096946673977261393019219783702475562009981404971947341411905442808541909107783142426767929306497497782185591059711543979847600998373496090810604469490800013450663598210236222038475775238939793154154424103589201185417577519936660213140879908965973190325681168509776246232309883723479634968964086913738189119994883612406324606536716271203480447594519538314183864038417444138019239190413534127307076617828416800989956485860464042705429682933893593319086608520956839063984051295632215776270068676352571559931800325216649378423563317389930197994161201310590834877238748965798538548686020552286069524862794445779752140757888099383712549996474228454656197459054081830235704779806872657229716867418588882559931176044032525643648388635412056408802451352497921157590708447592044712532547941607368201830622722842254687751356970809774743226468292267824376929124752627697543421728169204700671970311525394538043191918602226900896403770501963728004688312920489751071907501490837237763021899287496842730188732516991105562927668321852776624959019053540699788115406354087956993499617251060742054465141760375050189143860401555360286826833286898636806953720106770599442021588151873378648379882093767996635620874746522076831592558263694405864963791974387444706639621357946872551971775479010851981862766087892544470667010941021411115174231874298684899720159558386560160832689262503252596500195395332308413028369474914762128914287903615506613027557619004419800287900313087383944513082517198314213503112005207640458705583696675511422391377216545422293546299067696399442621586612883571084230366209653534687689692227029721450872589749237479425083258766317069307200907011155819062735813463829144304366452856577823790018228878392150825768771716945789784349184790743603891856589707831954422463044833192346139930421856944424037160437511708778211618199471486349222058796083360191895176571490367864866371320712165872088590175590768829215979498422314221804583132099490465223111540221571761835786720085284086927172442782836268085792682574140950931574674445332505819604963028957308316563220875922264952393025458474477936804125999379756131258010339163542854412630477085428815182252665787474899071017917905824641923749774077546427543208357723027198463893371706611859089290230816828197090374326843420204923230046748123462979932953313375964875490264224028939835814078048493689729900241934596848413519378288042612803176410863737437593967774129040083175583327800674867485022973605004227314708559902818375127505490849361094050140711544311848607961755503838325980288792948638256816942894552320237178805072561075029743406155182500720285454701876706076927686479706559012078003304722620602217355417928006953422139750040498196657701837983390930415565194032004818446627260300803247020024305323706764498932426215739798575805823298614607008016606147539871860841969553563559760696971847810171256786213878752893172654081270013143267017456385625786382630562980257717419051144429414393183511708696161972905784182478590892381820455816166530644244791124099276300155539382661431886393809558721261163690643510654072624688311160991335718095931468884466472832345763923783875645304892968095089397181418761742264061491057742571013924756946364987271193160919930615238286904408951600591550986151085228465571710531155544735935147579393558146566788878268758342691290719166606793682277089950582344039723531083137433937742404678747061190343463266691297207996398902995135663340288440789170477239653897773353717414792499619731367320484102647055901326327347777551879029625576772951499439713173269534101829491211408259979471914593149413092766139746933492266727407278267557845729029276252369901752248938930738183592538057681267612403840579582844527632457439265371575787694192567674112337564865366429245922472875083588951822944830558123672320499429357880985937054088861651415847429061546265016725785302629627251612852225536694989257637169059857359629714139428247681181572221228463389978488357614982136828710447448969766184667840081444420757282288054138332996608365691726330465951429818801353224922213893878355094609019325614913756995219659798704363658304550012125402712878722742590694006541619411500296796139065590957507838668258645706922670540192613573508372378846163070356372413440550568413655638315960033457666885793850253624671888587849645257216848095941796443510232454393833660743118050412138330070702990846410805787372451476984199102055896338668229157322637986891325170424349790486212006654921970950353873105565778489218106589195607744569519545326108566546230526740520903629680889945766068757191035233220618158720009128727007143916385074444511928683851816307209289265588310145244709387887252688027414771498440375357021260097207705307127915248944624318832230079677547722356607568540255740488900568805454531848419621508866507469322700348217167223242465367410731334704736365761433080821494701800519167475914128091786378034056426552362194801646578455714922920628802304448349542424892513504540027058562922402018196623298713991839306634317863240056397252876691296517370903723718274934826157562153324298335565395656052278602597057016816701777612648015047172706980935619269090859272891512659863186321960995570160634558224641516362752685977757767115593212838085826052981934643199540520845551153779147088908332540200518247899465165929661248844743543653524937260380719346698552392655046336850193942660688451107028007139277994859334573535051168078577368206035722089573812390204088720921565353446271386449207791525062608667642257927006532686919084896094775522599518888517502544496442079593823139005959896073708094699915637147843944355354749854972340484579075325240762295068718341607890578933646853276937959950897947963044400246005445993881486517799676776640830569086269119357809682308600543029987606809311531497729329278895935810225718504381908512598893692653510601134363131187473322665529918714160018477750421303478656693515836296842080384830611664468119841213358072219207744859257166283773849226151970511117228347323655988060031813526817100127553500517308061328413641861877932759829882036710297293874629464997111144997982354552745124743017816360566990794239188035772179264993489034963542156562422279913192565722177145700699759307841262811118521763213815496136103124543619088871181360263235212301368253219310006767524220961576161087983528506344198767804353015212609105558326164317783579065443667503032313258609317351608402603209896095042084763974388202249321862754335596513842962426421546491291400025947590886993280509887051363705652066938209749990003784590847292039779373523589614384809085149146096672302636079202781280025070531271872383385226965142191194691335671345540547387397738879764213181004674397677588999320640542433096516503748656295959855767562875396346230402897852282627730633547465475641361365086812767593441392997151619138854197290772599639420416070429174614529754386588516335873300803157159466827827510015745393863206671470848027682081269706780394852175921711414143352587405588331037894285825173031139376867638817351290366973623426066064698712148948344698800015450431620079857690902504892095973989333376601154799666678798570010538961142175529847379747358217088425705725185953292094250682809203624971315126100831814788374498743458251537553078122690848812111247586923572347035843089839328595774074719890187092641888409788300932025072805094313524719663222743533899056481742010525442256959972653730053807706106421325196929886149691530137766236298803552746072016254641210422483120203227829262039524260733356127805195836739724303886723288820048205309749397853943767728299917507233420064226923945483489299898376929228878240814765093239642081810511268887978372807651018085368931281028377738857625677133191489966237439784983494483722386112323648988496637448949341167724781538180495954467991814061275046476085497623727553057814784997147564887659536621201497826152123093261915164490451190882825117502652865665065124843967671217023889100781336816465136435312478732423583739362358876145786225464042627542571241202241107660060898262575315238430948330478688969851054368618171505257090850653913468429897254678497048970552724351390928051372489192069035876342052942578617269817572914237190484207272968043446995958817025436705123249222503320028995539103869486169721103598384764895512581439217433327014129123089865653253265158672596614711729708289740273060449763754528107386385221227017435295710171234460816141036895852819763916773701161655002751097827101518951275752380403403318996117834526045297186042256334387443035910769562892570729920878450771073013350215467073485243476690506824761383511426843064039142695814619336944643577257652007262712782835998944082749505595749027938003588369356699721656016753613512214264725382655891697580570250580867582984614973330213067413511713336562509184260220181529361034052735795673200352752859684336591604421022408974131722851395471126803693264603846052974869504153982128553503965751013235764237413221351627407804777919321152835199260983446200982880771072793923694715702951655475426504798987125516543159274386431614038497881042615901871171652409386522670891416381625634599515734741391949113574869926201590184304910337558151107070433932661512143842266802783659052232355143314269503702587511579809228048383663421811726477681946778066816653711099430946018422853755602717896667791891288107061931514693229012818608644000333262168146985350053895679781268402203520836897696392204735415779663792273825665615287259269795237252092151193238177382921871944731975776964196812867616522137522526903596998350050323782382783919021785424295143859114348356894814934040777159553046137941595465213857227578785538500422329853737540739305432073141767842203238522211606318445978052540962867915344013976124441917333854051230035039817643999442240444886473114347496597275666510977537660554192457395832913067765192932705581299034576370095533034535248439185197431677247300856422364773924249967531015444092601353494109407805003919932580120511226968413853288824743683338612641907882832813709963422951465841109877464151421085745811317831212298547492739850487949251452621367204710002426319669803085489895350403334685661528850785548739898887306924788928428695638759695878126623050025293227509796901987177514875899881598460555359579359714809232263166893877056983141800663238279112433277243699773065092933524805532531591278134645600963043559943785129705100298728115341128845162997632450425670036312915311739715812407427976684996789748151603461379108192417356892753295034847486905834067777391828438004333509733512682855223912569056481093578237877317442262850846088567091896290260565317216859309226332856213454131012379155357970890580992557049146019832398106460432920791014467784001525937487788315557706574807437284112377687453204916778921493206099677056637567508094792122084777653736868124111933047594534167334618137275718481116909991005201991954299756823311843607225200250856470820204372540332241294140509446162285738556552117034302839848544405498198761629013145703721179404476139603688796584505121629872977909898446790006045937562684835337373401304362722536469234828582748113578122421143542986929234391978028732191417355097568307771624740171094616037927860892564301167688773072593738485281469628995611989644667672538343047143161363012975978159123744865429135330582107763486294855562125784824556919082295898142849702438276504586502827281864165880571354959460449590354616719033639809508243491758789491293741081824877016921379866605147938762258201784177312067588994466456995963126632467055614112906825823745319808583135976810070764461032525954693329230898897627019738365447930737269078237915151175554729793106069176631353968391102647091642844139158206043512203741710471494585339155917107939055336123893992403531218491509686262167034808096541921064766567970282671110996529014830686753404980907898270574909342663437619259942264706459698428927921417808284900661708163699256294000033474710400565695709839837007102394125776125439442157266906952095622065694797852457490052206081117759377897509860270885836694089608122478667971703779169731356895780458109373384294288926124032742690171917928649135147001950946413425813942855682024854359464672067895128777987503038819905353983342465928633293873659627083160050971258302041332252627971657162427692933643729359838934226739956373912022035500051816921494632461917162240268243321318890771365505226769003156260452677118755376493561753338025254147624628526673841812728296818902334196479984606368686358787496164081554836961932177404860900072000108502549051089038799904376349509310758486064648423801026102882061658216203585101144980310939562799044856506588871108293588430658551234722845931231079751122739542373913560479956773838256049989331026198196592150128321644577749602967781933910657584520882505519848932766918827718321057315920238899682995844009488136795125705513223946483021830642192267293803184382480792199783440192744122234193987159008061605692779834191283207818956460839579504552115855830200495217275783380295416102809323370008978148782865261628540976138937017014111052116653763844901687831882798843870558734532262700786774132134473209833509655744228279363006757074957576472878499729652592447962476673117381203170064061416162832616903227348294059489121028330068209994139144802777040182848458754673160709060435044381361230469013820036020104312374336950643668181013853998512775428920547985657860005880103073928476687088382018344016284001958643139933395521480847357028382141864995078429009404238902995807024517318930850034397875308924899194904143666381426234138378458910272736206120668837407183102866616822809812248616509512030590595772059273544281799160381014906310108944243426902530216311219076650556273984555292602638085911419618987923908464110921338622689974391689723389036820690068683938176782610121555232068779959048828581010179245617859335812033503430075654198861435790646386049500814054118500699884359040211503370988102687263684327863044721345995737548443477254302017927851053840770504150384256142517282109803647919499069892884930026604838550086778054853649037319019785499780692328069222125658360167339196930816549391089291221591106510419192082373784386262001769146387072608580065448534451281457016158623426386186886643057710384835390626048875103575354850352251570901815582438580079004623247059326229594116136294313342340676659824415393282952283655807424501746759297119680880295697079742304614626052591493156742884552486103121069481560017091016322010275447207887856100063393170517699507796694703779495779295518595894008430354227297145997906757400297708391091136453814490837960631234544317574053060775233284753892298058020701830308336577478262886954141434293297687395780273583204853382127050087551191855731558893128178538106525297720722277645314786548565614321829074446545634765861079695998303120501337731449282850677870351494531118434984789038401378488709206506736612793440178711249522077744883883338428334858594407320654190149557974563288209389490868668386279303587503727154300052239302734240108869969151340029035816008652202618858026590331207936856077771812668912646866928209943838466133569193972567910692546913645917371018583557380527789216385864507877039124941675260085030591011167867393644744487180850292447208346732621644299281158914075092352856456874772957341579919030338918315343721455714190010320220824624463564367665210307278026442294865130238985814938463350761230254392441165971833199049766358044707475882229119406840684301594146444181702494936689645847583931078149265964447442314157471115436502674069434169180996611215803120704834778550910819489838113802313294192487889506632427657823755616482749690679963885401838321659574565046134506662271354198028986501115633896640920883307857387308092702762841447875500485450721866721591030890130702218926775611030960725019650704427869325614183779847031316121931074807423707751539184739184659059911092050815680384690210323157771478703195414335041262811077587107396958990804298602909480521009353900049277869242588747953221034553049647393817072820692679021656030020913447936237125019186492105506699708482652805876953621663357727778114789167998500209885995174781395915782821167845950268981297944224244920227016308158445143130889333974576042577533241673557972151218306713041560960620404626526214720012252401438724463931364685790986053820467072874972922505744520835366827996738727347880573503516161726372579018073878232335357065485216030618192800622655794173472367223888976445279410247450792271090029817425152293875064753011348186474268032119506860397312867187992019822892740838426961831590381935010620153166213770935293952785222081349356680096654289387616385058517651523480197379595374464898001425506382000644500491216827963970057234683944707324066382276334316429038441835271696378274228644696890382884487730480848755050530631874909887786687725755488760853170441029069168971259285072486133373402536932391026321974886923612558577575121356404361582808744838028552427354401163340970022720195319370443868193380323420011004113609616229252359907304563871536143280894442270645487498182559891931607011210443384866791447916519628853732451814242591076061843869425464191283438939813680989697936793594155228448295027863760177729371373607781254393793931156865435820156031511367794298748941472184434145080962109850325768196483283651078957649974285952826853579048250926882792342254310056254809474141497609170154863378677803767906170403807513430973578509171390117267540263628433569481618960149676848243545988060009371310320031241272738788019378018121290369954092697912800212011962056455041473212409706073012682481984320891236781540820260771645969404682783303374258704894827959490889115718014720221604316339579019333165649213762888568106454233740322449887618846533491207148014506603886393910199127078066632151491570048272155249815523177530028713984941751090311237858400566738247690648193278218949153424934207884097174524607126122362494442679743648010315452408896440056623762516267330501029512422749583816159613632612532919846093479963271110851826199144203232599640464048344569576962100568784097611609125915768164648990714317252412414505327321096628243710438928805357536198860762531128559138919421938875480409750722325176446582553578668566286216235243013230489759367175249739244534660924392535731657252808088116441873930434131590862318104335484871865505018614440896238782586568580662709613789401745891431697141369775004527993880623739319671180043039017055809391470930355578799857267574620964453147687830995394254596540344742999697451152395103707109068020192276067461349816565272674785179702924386071107102976541953227978203046324149545041549453458576598889449710437641712145947428128136212740918794425971224697230071941264573387710120338624208944362988810772000323335520867641823558222280326391417443344006961742576654526308668071315851347011030012576892500610615729083197539980532307800599327606392626608723638140526351273826958389308915527341647188230759056349082020854469358337391570340909530589761563753566552978478760297346231429903747626350290248260398800348623243765847553768890608815512807509729999809350895754972555537269442514510413546810428450008761939791511326844504675494493055134320827747190797913504220124556595112724124922349739405585951015864393118743738420407624525307426573570620719933293241641494958921279439423317512371620640205191396424610555324025382379113773697220416619449601235459413602270575238312763094518929216218018192950334063283303098303469621792192856397248604087313586193664256634721964626882960097380424733975854900212247728098996615860116112739347645791691348659891350339195705318406613072217926104826553675401419948655435907644026298162967660974290891111076402259498990342249934232621769663416198819285199944114881550592493601612430017913081439716964133004844823119731438748385426366063921801127356267393078684711586085569643100708087038169130068879009609757994920471786380483432311265578953465132771285961251200406399540659196638539087236499359561046274910588207340094902532846891604962865670122380268539655455975066446152780399356186143348492581478830628213835238044691619368941388329709117994069086172250732377636794734841118425913068352128793385573048948440956804054850183333056279848075829981375827099811519219530221397240358474832988395802809048630042482381023347992766034089581453955675069844241753393665800673828840654732454668041021059577379551428656984374955350356393077560973637581026798935749912739492315426634298072697692182627923035172223426783640433777809545026482851668195627882613483189727494812664896510063777804758879673909660890541670609736576898649580538854271577459202822996278712896125816103367674558981878444216091284574705119170558620679748068885921996607731425716898072534391474909414469500725896824762703557236260355115302689877028347550346443399248226389541152433871382711343607703012980659479058086936798151388526792265013735527809219903083099856465161894321188538540661078652836163469505991016633361952130916072350389324480073953263813581120423310366871346049905053095150061175973331759719404190233245605603618058704394303772427578502347272353303472279116463532326290384660290416029450009288362628934038999311516446426184939936178382600127643898434908080449180139933427559842823257404410854010066550737277212088133392478971551214142749064650696604214834488063456262085082593205681176564097264012606033139401899668548747216663666799047992046242727105847544333498532276367747812110634876924505623744783342248397448356265776284613871608805217312696566398926887673327244868148310543524740914470944328605676073803487733502148160426683090083771039474795906697782318295514673411571849156770458733861146680106782421307284026333685020678550036372762777876640144824868531612250412106064493194277131520107847613924431414495626047316302029478723512159695287229094333774282194091271152704644689306391998037935978136858307209435108514076300345144766179839647131740522413518555148832640993936633385727601249537310749427330784484893065335384718969169015754589592755495589864915574461497526200715307530928626355039075649478797519217753097047068385844926927930447070090950661777766585907565717313907699910339194094187963569781682069097926696241448362841892538359245241447071658954677195180801636897238602694875021152782050329039095444119543492010631394113069645323636137912189204272791462277285450493631664873369920616966398789109377314121794858417976185075616818869184404691767427780417817545471385959156785970638420101617869817852820344228395418649914184948936289702756228939429112991660809065118384466308714667032529628770113425325804181948648386730426127029504020457239060429493285462340385996211970262189851001152850590297088429280796224354002735880514950719249793561728949613814410462452126515230587147560776111313244315185468843783702511010394230490781708930162130115498229926217231847586634965091075675535753532325493680961380740853685038958251184993982635696676113532491141575662985078594504197008583936683271637911712469074651425448976306633230578543062061319229132122858349288215592091953694675832238535023435730934298358702025158172665732974909783244031381334791195783493227030282833321118592514082167077757041859885502438494314524576701724727590036397450991947889894653585906405006894596498843783030054848826217507437356598028357074034208140397003463117033765617693692143922327763465855949293380139653355545828958859147618923326284868900773049508149264533381542372187588983553459430388779940045312200781438716494235739128495392174851734949363122867029065332367042080644952768992172990917595248662660442620045140062549686949132746236200945499090559371636074761486888470950957518379049257656829902550336290214748930536278795341027013817778288698886114279541978086901644867069521377859724105454475352170201334976629071279907997255174429610594708622229031829446898203312978994915620466861761389248164477282041131558694936926372099679972955622559963995948625122103692654473252076624090562910755571313990912057345224055887969934239920197741037884762503183534281253366172147752758027082047779495631237324575231341208505850125115630659764884801561253645959383187055037193325988972692444479803734039682154011446067460098471302735436702925398284339715957596886142053387332693511190925045380297140528719334527877781986826980711779380052842990531663931898630093884289707944058869288360026432730571723598109917083538168203843172099238396121358954055511384684790008403567395945521882391591855484763774361987470320570691686425580998955549089830333589841388851813069366542070321441948315873648630565755866518428079003875555598724785540405336491250025051360464162153451244144198043877401989128096152771599809049180744262309445178444392645299497677844428758979548688514354199603527300852921737376468526051962774617439818005712146425812847282560825524876365053504093208305553590697641676668922467798897476077010004315253518630621563129015124371401470492594432529768247667196577802517736738138253419015313121677881236867627219802595832765065723367000663896947601824261489346749221993922666732248474635752591691564833900547507335080101392858141068051443936721998863186816994805533519989638687592033792258948648786140416870469569279810491470518729629761137503134634421878564724809571568448223095293808533290204487648224454792610842999303611199657752756597063444400626338250081509754789152714720910951882489056296624954970109723353241606701252410917154894496913893545399464353546753800272621319819241614886680189551703036731489313074451269940201779557609375215737192719764351891383714106731188910971195381933986831370948970940535467906273246548906736218484063429429592636132188644741507304318766497265930463153337826652858478411672515085476334927937127343288060981525214168374596334838359370030579754362762725420374489129276348768995201400909712152915385868769331888093324619501472918079447387065431009169530740456660539243592500787600862307305276718373750084990685098169576224615433857837304933008926556485726081373137587180372646459778780135985222041962984328481986991927785832660486304866567247838957374934645166649165236379070312276162454196423169302887992360061180673700694548145024970841035297704532308268664868099115601981425023716038024102786172407675734264841737868255395580287016159260345852170665500581626347135656210755496159019362824538193246845425046355659326520786173719896686693983560347809235740396310234226255153256259615874539382178392322461128515203846379604071919340939702800923379527284670326767048104687326188538883728120628398847833024373244301132916228422514774936937151863769251830562828214808314211206017627339428899437058547410349126733728443873746328106929659940761172618004142294486357116052844891445608870739905536832392106945280353854365914847012900459721199173556219511251790761248199639567325685109199646979336121388913270133502862113809267708577778456863285617203999438916108653971980640242451760801417920404947561962113147253024170294389253539322077505590281169108957422233385106339055449370238707074903732915359415377404469281128956971907033184766024562695280338757942075486202266525342193321839255116561965232944185812417577110556004464251383343681568422386253117373247427961501978949399127973317603616416407739841096265992317348661581359911322304780625980982346563447817711341805756920193400639395066803339887342487527531191535152639850688404820594217324777263487043757891296280138661458602544358736085502508487774117129590383135104889406226983797997519892449973730067835366511617390455418925263237952494675342757050139533741035605950277842101916497468254565948406717402114932187213724631458131770834924188243141837622103217511375031767772331134340091542513419042940629341893338224119458241416991668176410277483370161916017181746606051020328681830019099939380569469090560871943893152518570502303351437717150366457798524608141701974792005736384241445540515138672763114583535328427353271808000025080388361083714519930155299224624379175668715131277965159441884937100183597555870783725024989904509187255043481107958129618736783574924871796630026830132210198901922456340719339081116723600083748370383954488252561676734417835430311292747458940211256795379284851673607424763046656962694842930628220620202756035184768540294867232390462316656557539600807600298155237938813373183186549578407640747650130443933849152843926961715799059083899594217189618121410297452967258849924947472625699476746817614662332044389920345293459809891003882022167709758371495630967210966185697597880034317641128033897686498895044601817940261050841288948778726566725303016113094747227234803415883499497598025889166567245856724820828655500318214038357488972490127380690932197155400435237153409751415307633735022185032692800348791107782988086063479578565476950704297422214368011462926023666043423748926137476367312060255035085449342094763985822792841859695318973268087527949891761820540844119270298714181673168938244555153652583204884432451985690696312203767909839116705383630404425028778882724964480540516264517266135482989680174809495009551425950268611886637799182285135073662580762468123496566133709068246780541476454139067417942865630540864789163864190630308191730091186728058111487572568530109153646361826850995721906893707646822481515031409433997199675633222837838582884190067445547814607566582808022500364181280319062347050804289715420051439970268400074721417942792239000498419821208960152451705017537217727029369128972281101431317603799215989429071240051975935073781102128360100395345565920081196174992603128743101935637259472805814059337206953273661266815306850760658385180730711089716532879964887538599064634090125908909795423194638541892757269627697677185935073044206404996508612963557392476381877421688423547449124044971658116319510584628447839721264852273064182296259942804692921138550304518253662571490324900325695540349080867067001082449241639631470925183967603605587412917910487966502391526953025151784126117964787865726999173728078693330536701963118694493168191813608691844880264788252602782301994761742442416246020568613591281438432125889231837958148517194963922318628862224238240063715666506306422185267350190869154117093225610357017061360724973116429359172540280377770176012326993179549640152741352012910657001770870272935314006968866768829969228255544227742357548127284038971161009474613444579486797165796901141475573923464940035071237194153215806947790045008625792169024301826412800431950604688159979263138294993014653215713525130398229156744177664157782379428162069674984536279929592320337851736454204644191427907498208556878906176135499188370493247763323651855151094791092271646809418702198365945307058415983875701743918260938213558534061899094997966962479740723379887446218158504960704227823688049126139578817882907865701542097027284726991828914577662138547096991071639917294173147651181395882049621688615296190173643251837192685878445343122006187610913855059814885850266846976644583331839041661600841203168443630214182583373648059466952595323126117650242364829264061361648659731674562702348318915756019173350063260661480940694187119176901224590504139682121418578923707205033786855811953729629573590240927693140055271540977785746164884378432547207227243756084023099384814315382076212459255617861692658112561371417105521746043911694800930293396454587536974378270896002035957004420680738805366440845960619906996311271839359481842055314491965784433148973471606542291800298070791671616400868271027080915785190496967453483997284226119153421376059843038107233253667295902441270697211859821030232962416831404103985299027156555994471408971818826757309234340783357958747384311914551103742516284758923930374645818603313745673469644003478456984180804886494525226764646785311601370030119272172288718280717918811899216944953062444938496829656887631877040589760306282072052081318439345695103411587073524851445238678428055773219282311041057933072687540965948253106323229660409400308804062288671562839875282167051687904693367600042143621812575439178051997103450770280852347720273072177657912432299301987435879675920766559738231927812937250565180703165406717445605278411040908300416610398633863035911912817587221601326135273655607007054344319295467223628114799731062629744933667207754275512672061246185217151943205272003214235972999888868657829491627540491106439597917525852871581879639422786089618092243527474771793555993532981731662377334793011683065775742860585104931991176519689610342879389896354611121363743051670016426263832963173810668005179800916089511927036558399150175503034054010469522460732926174727972342391891936932802157724840918804094870336143316256002689408987735625580209978147645204168421382921912587485436708851934082773020593443224063223824639888566344535785674853979666656179672146989183156856789492862060158975392879779705875642224159919436372092822747862444292443101877066920485514575546353118035862136480481745138327720586164716192752091235775273303198330312463819021598985628773028320647426450300252238243616340197084255725055236048631645948113230057371359073902295070191361503414211246843450371322981935489197959717860567267394232678484613641851328966741139823965721241020524970881554304072442116095187206783490647569254186125709945759729354682906600803144931027044110351107465056834364219416148046671383609030160795866970121573376533230091617123620374465099128456263883077180547979223244367167940508874289804056909295331992447546220259673564733862450483703080555442393633963577822825043623880508650737738789382247174286475729192904491677154764150194649467726065587706058018395643097677051044920526300551750133873916388286321246662456047731475143020826288885134141538403383031874542421406827585936317559710512914214504937773259367113527662939802882924050801386031831739104348011819652191537744528301889306962123263272762134273624317302078224283732633801132770167481470571057980750762117854813988921758015007637067223818227983028844134706064652365751928870300485962932516793744953452609991684499736127973156363182584497808912796038915552741924672811415802221826954235976365911329035665493830098818677237990203873509827778996034317612037704025496266582781291613708240589986384018505903902735412520370287235937504274718442986982066311845255523261843166926495350735829785994695675959994108424541128573807087484695028046140113916934993249601077954396307692119840344052590355386753409486415399795308678200231740682075631635976000105125204276351726878058434624013776601833371273752785595532747067350078578811362232367009169565904697611590779634191148544882256208023671189031880531238802782023348555489078358969982136422219937311562959645528405478191122711477834168521420191111580149136496684863028271303685177372673845949770194720574247755214288517130438935520760009738994150701049079042501047968453291441253319547296497749176455024414190800127177569909942552287035551328157011962989093022146417231660740739669451826346108830504064662713396313833434733933550147969748674602277162252630306232453381644558014408178120655240072634029985657606345665792518424408716018150035152180496577273858114260810512568929946645564673358908349804061585627163349022221469115782498355055707520678303500367219531011693297685289834989299397406645998770345919917301733682452341462448076411891237911239448063602321824711158657037403073746606649113842906638239523060829758812960405939825962972616208682152565990188445845842281911394618466746713720895745652426876499180583487547787128675985042051632585724894527501786059244487595668850089857595138448365402771419466345093898183705456453222646840197968987711993972044287672167993573960098477225828011448350987980305117078113459323373022107403325105501256344973058617216038755188163612905793751058965229624744338557240519431137435083319124899191433867442758377647290391126264224230397782656122158228890938544873391042130376806956691652101895900757397932913167481501797174171682009682779025279240605945518699006529683232703655866923317136201897115964844852588774781818889874980330492820408831724361886920420334486778611568519886971255309190412889463155157261529895617800579475378753008998394924021552812737824525490877814291096021555030588446471963808998625204512351225402107386806806946687520235950852506935719545763024503202220619089334806838928430497796445203388038725018625064791605143257185926989457138403322244415368137802583224006149416307889002701106901101110204327420331636429299116265987724716533962346147556012923790669399061169292817735594485951211822978593193057353009021546182213230057951869439067688442795787416330019926589302510852853916876249950907105420927764822287540016681603252004907385164307163461937219492512788118203261785134936939138333235250029947006340572895846117715346862684549967481190853028920745293031450808543642261735403522050266778431977196304944850737998182533717237899819172071874941980408035420452991189577932020729610691570207659637059245964384267891311888340754337715306458709690084186658662829695402326760013883800622591932656375603469902613731969731011743831185303467455068029749154516543921798831994476243044586956127671040063004354481822317988991282865223524711339089960843497235418354633542918453357357753316204666793049836463412263906670310835535325211012500765474698615906353557815777437189082932167566138931491735057344301849546162780486263532851734860972750545817792816171497282140597086486108893947683688849240565099860276899186539915970930626846499923078119618556028947539312436125701688121501725307672719874113746353554703431162840210461409267649509872246927918751937196066978428514284945561275717398785927999583753723740981999980833548250431909891274785804341480360522388630579689728697547555360747106152717681173911551912185915071597302347555896866602040910603534238304659871332377321844945996164553884618916868685832825065469939730715750644918044322712565830706466685747699911703123135305377030342524787510635062630693392508482431129185845347638265659015190578605459392133120689677137626301779213870944470025154672343418252664929084975254752107411864620065937871521302648592903919941618046824494373591494444853353705160915577806302543752235228836417367594971478924164956997133022172430603786030140504613668823115416101501563476853135462064096643791468386701836441748315064470818880904490817933484124334433150691975825877063373823217433753580698292585934741783188617425565084196653622290005529426225840606900836134722408683341947959140730125844002043460076203635665713714143718144279705724530242886269071619308829866502928290826978298992827761641382416286332979671147667824121791475848104447347881282948734554452636639166181979111734958558796907788128858425278907058441110564865515514860221289785074491970852701131485147941394895883269267767582851031122495879227494569357344965295636752047810251255073606699262315989605928380490085510237161257020558544228969969504864698949124727972674625634317723055332792221527612240706911851147952745090923085147520404690601144441681665862421118723670347517611979359914083549171791417383148478403531539817172360484121206497465397835838450267803476535060171118493497764557259201311362870545631012883240073185135384874633305375874826872523033670162208961826706622433987008789998500885990348824667841700900783065715931220189493078333542673620533371656352019379990233023572739035021860675547900800245941768862059230389221711088535451852435204322544050979553770266967130792636388772212310363813756494996836073822281852934096186748803276124405981417160783073035374841666304279673973293587408919724879249047750912770194628347873758282766412051272949118339083956792148223034430795041686808197191987332956787179171698366176053328981875387698678711643058292348347107839386258423451913845389365874108937773640991361542979157433932613231747537198285436640006856312715003213196085106153046718284390812313255563418048919479866391610147996806223232304542576064309264859553793994978242589738793039613212236773928151013030608701011408123176551919713043889427648599979573818958205333246831363981263049571155162049715305237577675501952212966299618390022434120024877657692484764706688940554043418052039139149190967895744992917084578756994276945121133288222460802555236941711584090689976726033735304059522563376970477158162956329906584235238900204248039417439817277967805117855441126918475708484554466553481212403664180923685274054052617860627658760746417670015564458043517281872565062005317085162149504106624603648855075848227616632046735522823865429888014411961665158275555604634164807131643325123653662155548127200073197901585233747613366939063372705846401084166201171159370761785342565724621809967525591958575880888283159203641498805007837470676263741361046511666697003677955722822171834533901250132980913755866326152938549239446906078259889506129719242175369248918807652202867364732687038713171173964689483322466227101867598043319450949378199657761691417887108934970726344100176486698495583809131457187405150803360551012592268052910013566419075548984172049492124853345409192559965604495935201356108926517644485747813540440703401250550731451857475034096662441331566302068157876329344060262523747741919288501528818919508293546908668311482873341294793729454681277504323261861042957902331694145934681395631023974987385245377122648710555730220642787768470362215848068357062738083609051213160378025842158775291743740414887185836613320185553391862599830011274133814224445025915500436380081054416740324009702119283975615364035847672601745425656453704902799768838837887881721684472672303886034343329379123461225196566399329673103567953241576239306752934329106626838451212034090825684483527190797245159752262459544983527506152034586469138773010094702717334335908596871142067998792125957969171323467645582919374771061489365468916701407875387077831047748522843262453557087478257229004296016335159123143051069426327775377433339448257023560663599212275514174469695411937688989646374996717580062576452930010432552412003014951109980016169077180510839865267511643101019084227396106195429571626840467447131457502006218371309222841497271616263376731402218338270385751164849480658041647338217984382853812879938757726843730273611288812348313753589221826253213789563325269539868867848596052849080250215008252084728607027365073324630995910568333931388152865289775723477715245411665107408837934753128411950032484011990947728990160764873761531228892714774526621823402869829145291545022235441144413590825368849002547964624698262455022105088307272857821062959853149906431119561379814861504159612230683965191385709136550745199334681995029923952100011950279165703941872635549942377233173269521269550699324638284546524185480893611872458598081005160381595793648946478330237080163661281636613302673638836762819506500901507406608437923316624563093651371584459652920747412209678955797688949988348151036006976362685062789959271230316507504666577560538392242732309223773699086032799060589358581851151991546534292463656534352200810062109029357355987278865247642138485197143564579013299974056013932156110034029385825448552983908345221749227223135186114901360361743659357327335788549348024674721727807754046860215655721302980623527624919873426260879477765735543365296005629278124771517449262164962651549676911090821392895341030077732924770127284805107070749444543443024858826113029807682725764215967967045620916561126595441676370084094075352147172819802907268932546468399789651347926190203273892495310759716202945857984715733145974707955082588598413661680685245329628579301041194971800536713714707467490859719328167894006042297508828909236604593682598002415944869920517329432147996922269463986511465355260598893357896398653536057162638876767947784909429617542611507178369519709608133155482207883022322467203383652572243966094318170819566096100633693618049770155454583390971231071195158956204186119482107084469670697451825407083934410787496412369097316881559893070280778836344996911737204025264128666256967500677700029512348316608638852098986482517540609325910699712503644313597280584495480316475713281230774308467445097913019353798123876469506760653831243031822196746890576784235211093004335349039201010146658139212619202340479874879264094631045423207975786756458089971323255783225339548817653574943141060524271419657708438610231403924874437018845566166904790609664295390816904514246082428972769357326113186870745968286777417200670759954682428045342150837060814502984493974922108663631400334374905944128654081455093330643601551254050528989249912141826684858318337455066730249726013538969455981948221205566451869678042836085235801431280673207933182878451471282482254935866664778231063419079194174048545895445224935456863550640833401242475200486069295388914435852796833783556467067540759364742640923250436318322043524816395290975952514519700956830621214060529776690461624932363450478819527131216847415266257013817305551297636670146069998737117210833154104765095841158132232091940769111031523613524570334108326952857737660517275868674893001036053508816930870606606223531706805063721214447367502706895856353784709297613054072936894636873524598042919781589086413586736580851936607832868504173073103815269873484013406841452187758338520449625628456299580047600812661760056314368355770988156154206114018435906679206704663987338411579697344483077314140622648129681751093090156399187274225609156642610906487141671906889572638508803030244176207261255066697881364689747873838509633730250033551997929707690058519039217302753871699346511093837674194382302326907993773378352683758359462003257377250796195034515822001791165319235816172899179521782711026137762355444004892078710243711976262788632204237807474936712696435602315333816472911386488868122920206292237623337702730265654486269820127741843433364283684272339173673055506567081192229547457791463485216773969629872506057361399382931215778993687945677638404634459268893073264649874136715017543679679264543962041306116976494178724432732840496619367242147952218071883255733586894386988045550916344815987849238139914215745002611440778437153230865390302180774039025294486200001201264196110677644667236849600493684672118020597268220720014716025512314902790380533129435153508064249477122474130147669859384861435184805019950331660718431363452847913901742947432006186707145288959069396697430042277717717428575726079890998426215542978553940645032216636035243672567668964854815615085148309808916714223696965659271597897035676821467603766520273517367753604354469526455135322589902061116792782748771256803955306250939462819248110834120179635983594285230879569954527037344362722766123823114716492728919236785651547439117707782089865755993419972260082988520848502491266683018062090027899142023190991758756633509006428109174841793143299097561599727073159692742331043166264254443624441034063811393743480417237393747003285738316771365878226435091882268028794407723733320723202855180147008301768410792603629864894094405674257196029467049927099659641577575924251786660491425659419425046969868942875467099601064013902324817233093146383062933194090835276823191721200121072666840302904309158307039630440020549654742935887366470054567759077608995878349733332331007220948931691670675575477131568704370796556154735671403586277371250770775243521563346599432934528492738756858943357567898070435951421550964654225483161788829692196818224205815219896346625305954598832646533063489493285600700135344905765584970864192183569127767856378828991364311413101760405452606209204802868035236954329017594427478977564140036768773057112587028385988173112315028835025631654948019861411226827804595522271586750098003652466215572549177855011041250039205200346386233364064041206128211872000965254682297856814685172686746458175341315698289610839990907829685604899462592525876537219796883605364781381917487312058336726874809143559656545441822518821212352793056536302768758065715955701796543685327846163615622234133982335880844737893696917080161900043684252848024789105089035557952535839491692833189462466562803924561131477198484728101488763606692005690431731925775156198661818791426628856845720986777143793070497872602645918406419012562045148972250872931427375257518963176484039327619192366678570490736880795707337808859559455789592544277963360899497113050388851867081381065752672539582728273715756942885441582228334487462118094096094144639678435673689248083551688087951529601356711327215892195247490748203047316194340964785399852844927183364980622678996763408682344340066273717940645427218077508396804830747260769303058321033306778650444926594864331802731477868080649964561467643730085613814339926078249280384568838865064684654989917873592765944214033961762138282791798323149982615202453156758381242084920895207678336090038921108263238771445552908089980894557992571890364087087050855350285941923509847684590444724123292493097995210910623923168428888403309593671747045247502451184518818544073579115348173984323278689757194193549611911925497018990065114414456086414187943332746084798087802660086185742289241767475877206064761587495400293172362462499887856482697519444880226216859862495512121741236125968014187381469858295719135386852687934260197825743769163285433278224162417535216792068658770170391929866875014791946502380829796672990807594747483946777273247169673518856945638924745775419975736355039533477889058817451528090580642126465678749221051071706511422724631029494781870311831482537999021218974980713685863069738457310154485687861362528175936507540348065570974150988430037923889017591118423231831951157348245175447043008012370933491285548435589659216069552734631995082476774646709159906123607032033079918241601623558913522729999941622174847283067962221026152864507839878539608510103169640286915446726275302876242296047935517830501962800766229432764852811328379587096978036301648399531708016772847738992417089464637170239110632782562805408494055161527585001732023217955181159374809601781948447756553315205819261186422455704130493396767165227473858823272791691112936464039276710266473354665563501995832291750460591844587094707251282072272862323341880421363131294518688140027986699190558569165209470660284613934931303570094717638012615653363478705526500739126819915635510121663690775090107713474600820608517457476085812376372465086672088325124669308857518333949391106039454571363875202058387857574835214880081585842026811017862193207612833730850903502319516520737156356711533379653780276176392370744158559878763442661147050711086814956170549285957996084355126018459524176478262170604919043870589969905968108909759254799762141470447202365431614987531272413103059952360604766800968384644489029215874660154809295392201565766396291949795103980522776553862982020705661028341231233182329426387375337895151992277361325269997520880832160839607483534230056520416570677076813309628556127771730699069255476039886599577052045481572046859131651856791450046936529147084635273335322406102426561633879487472306844125024834403082064617436181861406557341030884108984345872193826073990327001752028419339233227427410678135662965977399829209187504739246219150770167617454182550546555396309504615612803546718408186998767685589867542268943622649695096731852267747121434559731263940229322926704806289343258786241618011707622603173926967827402352627818150521929330958919547966620426154688174025582700908577581803597442534518490115718860656648073599977607736323882574875430448973413177529955344506472864110465419147505748323452028496100727726162427836411305035112350947824877610512520337563314152242667843803177064403272510884003406201499058151379287920184549800491021425483319574201579063499352570284974125982928344686367811905234278173266602810969630138836898303256683532068076288005405099671935429190696639109620369115678588010494197933940552667853697488999727790845971255221696996911550329380270220799082065814405865026883074988504510416828315690144609188478808995799903769876210477416538747294565881872704005106641039629861408483358583919945693361297159116059766436265410446849518297939306732077670570157652436595239525181717102242702810848007773502450533613343483706183919798058992247366524926100471410906434829301563573390112248454031513669770006490373653068813832103103248317409143062199668280794279855371449344917156098976443402828587711563004490841144260339013360375031696984777728726261079956678110359356649899149856737590310567011417546045150336210621757247794350732966821648774078756439307690368775235379674692590180770839236110723140888856707138972702360242821013957492942413993199278069680294355768109866340540567061819120341540005417391535567250905989560131895218751427319008359225914759123493803109898278050718666857182868165300263962536273164248419643606353772602965399644456643006723708966368718644510501273604677352942622360153112582342424474388699218733178634510641629406362344103420668275352320136336656805165368086398820924107326800026194292916014536770751391193117791334032149301871091304396370305173443199462262977667290891895610352827200715333254739682987054407750475694972757370079439716431384286234800360224792162728610914365747226437443958575055413941859614499861184132360185452436816504150857889789276662053020524183743043740117179910413417372290867479795301984277774609195049532645447644208364810386072573713171829412804656148777526840825315755731965636079019322760754634120373763389075558862823071430091294500911978265174135924094729023393450704413437713205740054926065357449944194897181504958663308172565714753300682159130870795414321591489603379247897828880056691913757507655781349811624839283588985400895206059595213169098006484324605839686984987177438217091142142242673149232300361121418372743353275322430640728953990268347127570896737535266618333038770246097316638079624325970330717187610639611134024802347108637489434211924762663134942384277600669575280837758888773892075356079226269856516853914666822470692370005813849916381777998074393155486272295917462448125040210360261777459936867309234350867591697003074487268581681905304565740858126223635006372465251955285942138814355337263292652480683035700987368694875414590456760590723363208351894897017854378852656160539352367313138036777238712891662299800669322463261564954184260148060060775191625396740441562224036366405332916741822641223027227927739885765242653654368894499021000321882582565853057782512052608701513362941614717105620893540691609813327202741909842026618514706061161840013623357618445131516084545556260031574186853954069403594316255074357871527582436592679545084674136284794489724239986227387655494932916351880605140728018790904228163612367253629146738101959810850568776393616605820532684206497190405739850707563786659917147705428226946008753929920659585608935187093892012098622583124935654598038588581806001926706047302234528704402406603191194708279889471047284268470985888975810610728919023571774822718794595285540059806535494760535814361819610682177837629680198029967161633707030256933687170396507823392936014145872846575066811919290242122359559937883258310165350605166801821371876068911537922166794409617434196038500959235690069132247970983476471903670477782836493792746831679792478472962329623626268419406691359075993467678161467303191665031864378978055885369360309584381853750621310115075808633711890642605667425295224137226600951154498407653788141907486009740124354591621597581832621829818055041713910857880529781988321142056389505383682603792976609684488110045700082996161120347521086637766086286096890623963689402437615862530384105902097548951408879149509055527457452412412242874681779288666888995107977425598558167182723300675554261903716961998145220940617951432513139171503365299708772283071794838441475481774799426746445827094984023040733373653671463675600166691819711481392880730325154819925488511036521718322695540364740658059438716539288620336638503259862338261014930822324911438289708162057288773995703568215104297475986982745953442370226464395034814319039543030503361722462929760217937666259719044212941610484232843132094770269726116057646877981575324223135536483804064971553305312893356265537151561311200708910638332662964225340610948804733138568469208504113388513094865719207467508787787578188508293043794884763634888606924875554452224285394005086416577508916294260140286405104316897073214817862825062359083683773956835338100693848228128535170087252337330061701773440811888494822372794567807380436437646430669210917620534727977150628873214325932976597995175468580922517100092428760820730601360225792609842556802905515584203806770579417863985987606729960775226931687984168915451575677992810809692202271572716786789331644041929826112315636209217147722505350149025324780456652391356525344308382376261047719398182702006514135423900793784940968922500434592717594203168153558042834740227732718043682163804258728663628202952473596241541512573451528660878834858743387308609778011313297486791141362954880094072445774418497644364094326891262234490527973998685844768963983264963991375606329488724959676925477689676531899973015992830142552082412797053748137160363252336457908786278150352962203246758170797758064569035710597591660450480124645573190484570493643010247943051881766270146548790763468685333488709156834492656970356206182383037462251193427156105427406768237114702107336640778444358851186958269308674618959794162925678272387706054071281113871112478185128543638700442143977311022131089122608400047324615956427448055043998803616348477253253036413462189731741234589176287635293412227416002336615630312887389823429487542956023889511713821495625595620731424693076946843654600511498103431857246339475407720179324045171811722367954362638528974805368595083748091390125200205562954130039980773610354043946419334433012523071441003375658453451325129853057948012169829181466110063807198326737455101831675386867788451495587131267200881290245468209586960707213734164347779831840071001640180709612951283846606744998350927892265804882916215455010637562391613984985402124856601468310193609786640605031727573853926143814175586231110123684332543609813584214108485631176106720993207941616034536768603056981454576880020548499436682321299114058399604072233438236557350967596675381463951574398952158265636851704282094556795232252016927181828855273266692080608366966627267897923764870316393755168764734655083815650343244854190727746043775143487614076062851319835518072385498299761392744674818711619949272966520373759269928798227267722525875594227143199201147311820322504701258916126386313529691746896818403367123546441921999181938360035030589994374255889547161503766934901442477176035255912733748860994487968847329351116502254354118052783839654154628713469085610216236966523371884087437182897737081045224186925330355974030619331186062924350403433148181582263512159863473992822714012788904245772888230981984617873574905800977402638702442421353520746796719297536278471880902117678615634262463002110846012027457750214473172432938253084059830584120100308378692845017252530147829506472232198223841089676139808433504388854133313179810730127274789689159381560096939426965750871095240633252035193274667416331112416188893501964161140905871168323509598446975506617099923426602723620649596016777234284108583442179413536749675814381201933435080371271485896911543274367237201104976900181044510314091229348476130930086839494304137395183521105788156182634729196151795569715968540520609415923483663721647755390540465806943954365560673094157247649274905814599680473595662288900057864105355881588739631617757862582824946697724442600666407290644407048467670541268553366244516945232498191573236500815193894167702597174671013342287246777268398972508186401639576014208951989293871752349464690586110781720345091277899442414086983998142042715101699788688768642103949099395592476529930222686457238200077384549612638732971696231278739728664089983507464797766076051345898814291153697229090777372692702744892858095577349625544790159039905716665263180178913680168809498352649568762080613737951552094450117228389925043628141894595906012473639596242778316323699150255307407818771897906433426570036240582992736427392039602709528241981273009975009055366004560869494920241390903240179416744609570661338743948459067469903550610788425450908001424079114218648881617855358107140568769727142616403201203067548395602731888390269006827842675266481157756259606778854536049372964797798604926663998542744045273031334955132487888282073197112773968059110071541179947040223370340612410065938957697720571074545211276258442238190407870959160571913063273689954896236334997078375207138593917030448567797646812543713158353629132195671289170154240201285061563078240664982836309047536696589494509044496863627844649504730932999785231594509469361459822767022333373521609815215824587979352038695168890670070638048568725753592784066405389712076815077760943116562393885767900310590049328280758953733286728475188147047912447208136418074431434464680920656446118268462361723136815886282809774565064959593998775699076424961432826148430336767905111651401061789651294558688213077921934126633260208755577850035025169123909327605405853680875345521221464829337665312723565449167740635103624962596221721788531871880942861918697042737617830827223107904965921641765756347392421277895307373436325091327552604624120605164394581213668342732407635889364807422748586797628759014990353288039884284809782410648280733744436332125970938858541840862072538910098504500768456859103771008070721268002588983540549237097722702809602152722000554880368268661142064107500736312322792126441490985234108733625341196928094663742838562456852070076218164247560799726130524655319645568069823206899088623055916975690302736069556939010539496264316491427697898871885335624075378076871481995685567202093713909255554716754211208950050767852119163893774037998392188998156303527825656975329153358478664761640210981267207157692532760604340232702976061226193216910716321766502502501113817476060877853785865023868637471489498353847758374245184285841045193074041352858823448796205802541496570068103074019439185682051884253646302935102462486589198734294488188793479034234880592200890230175755444042713708830865342520505272380072232170999897140950690650516999011227267341762895724603387158166468946222308947713176390680834088792322980533531964613210138404753601295955482282601679743680093946614847836125485326152819629221914875650024615056529943643282330853066449236881789023252546242666813806543409155178102344902987034171194475519085254258539420445657167059153055962102263557383988674392751730752056662398111972077882091480137716654159455597044916313698498342711224259543121323243477762001984167250488788049598981854893060736671551757951511863335865134294570677455400580949680296712167122996967235528520854030123178003805524084291170349502511579672137444377567332687196939065077664387300426216945650058455172617741316118902674059790301542102356083486678087667828563023731990336553247650222283078828978482586603727563291837208953581452855134507984374887016290076355453170755064952455340895374814177699610273867345257923008245381590518621959691123044824622691994364512817192252385064837693372890430722268044817718970107003380895005106936324389798316767567105016327792623487820171249226286779646184278185495920343079128903828848527874951582805226848213227683619302897508005014463962607567668063992268784861410269412771117582292479139427281979370985884199556943013777798959405538545689477800204836300194857569479585165766732543260930352899914764084605543554401691918719742217978852176354066939229613624520738199225636192759384278979998435068013817234567172349839707452746097732354484206286228687659421056717267571478708681612114786178496922759802475797609714000207395763975485076983990384431124173485171808930470526217048715827996141048315297042834343235279543384004102506143576674160423092926283705593230295098287409368957558013022633089364034165743921407800912334212523733876498763719829035063931207294131080137420031711124500899540433640214367520419279223220670407132880662603576075278626767162299871487260136152445959203524391560749625372868833737662681359025346387982472611412924915988925761355107717910503136619053838524652226760584334019337185105527212876761360783302518650024444372538477613143672511002078412529555916206041715131321950922732418536645838524404865604639952680441706218303239152249437640580204979572482463783195176110498399503342916246485139207630183852499651154980534129039144585414698783037089107839311709497633154568885054227474632513156323957953958830445036671246980651701453821097171932654075089110382915416541450369124021869821575432681115895580508868129468048912092457047630573570117396152368135502128548564707070402046837954545163877857747051934196184104092141567336348770050270678422700040993764172768164317678850352101188154430358000921388822963067736370640322259225590390091115663046353567093519321042364133428557818769546590106040560518348924075550054422261294507311600501862788797636101920175857575989955201423417730595374987871557537564931125987338140666251479751530023940788187053332891440826036051439110780421860527721107252800627796323640111308654969857087483980588889314116641024956016257805166187070389936622245473203716030354886383803173377493119651248285926664207943303896518909028978501508903890136533017209612324152355189955442041514957142376601771106470340411005547415552618987409450077383278050371593262048345295387084266803169624714084873797198507928525316156850876418851793724819238434047947262992233954961653977308549115059455125987591065905087067274303144042584920071052350514713178977333418890154641953738446304514845984591796082800867777657437643707812117086001863318277737147277358854693579821196310774817042962297846532328654768530291211258464286653143653089009194149755272138280131401942210337633724378740494952310159261837222816649519152416146074010529274319401275144863175979220946170511574215461126430823758361213869481880999505813445201261285934723415775712708882695869961681604195662541327908234484728896135479189475342942905752369638771220428476702491151131625500855948176514420985580022648573878430826213041849357459046682905830246765176654407540245772833934860968353648911099545192880197292422191741756127254431118884337966764823579919012316812282315686435534193204091667034385704822593821836960121870764193674725893439252551739168360251419542028141882445314453627661992094574866038675207501113919439220516844195480667049865521443776115062271980844855114371416384710813753822611459689176829831684504072506678699327696176267570158665257583873339717979666509169911506227384276356359512199451152557639045945762948180720560949229316913753721808285352399776833972813147735935740384687051724889100824032648086166623530073058901398795320605501945586913116424946557835424244369215086682927590763939728129357719491725875550852287703205088036838115786760819530609760996875097688263085884672880652209900421495762309922238904660020578986621929020674657882531006952853133499920649976133863713693129962158475568265640308722411974448876168404356001412831047943086198157302600811412215318363095652526232881160245773184051934583014174337793516991685285172591706261849110089677563955651417940617968736679391884006475822378773027417762329062621080186443654267411337397146109393901757563211017682187766165529467491790259549170284753364450993217334690667022381478887792653191746395163712888605515016544308763543815053624512218917719145974050735733768604448475611808050941930005568475668334800678552683926454794448433704239172513644994205719141574523005415541924492737055420510202849932138505231545621792780504836338309892564784020465875892822089913075198021494356116350328486881507958546002458701340629187955818637318546456884477921947883749798678297754055160136086530903827438650706454784002342620896323189427338981147144828956409719519410594878605071200358978947136939288178813574987486643500271685807948958179973407375747707277268097211353843482435377094411554142047196796800639491984406472053779834028811000688104374658629667648180210558093716553423063931699530313428746813491583680413600499219009485546012344722530732334101901053542229422838254613750421051280274152956142227550587420703632432349058279898013031489634172162269733111578317135808948720800160113260818277047360531582431990665397966502666686536687392621984507151040306286043744304146228344588139203699647797305042065237188494518653471749505090848610914514750499385369011955378706098698392107697322427117387409927461597144772888192663087438245703949936780003011750880262130948396242589050684802167290653867315428585005146110489472494705217680706033738863700265419115097922096236834113646850281933047103293152688560198837701858289945875217071614743181986190633292485252408938176735707194275030736523976400443330801215341562816045048436840121072973623636201705339334981202116951035277079881999323502943731926801547643181654824101386435422906540886572252522194789960427314556849715218296156113049192018982139763921608868624452161576963534082245890406611247389540968234700222982011072871177474014021479999555374381068285049731320752369794044361281226781755994672530560607175576391707200489282696600962471927668108938746959364526595094790570063757783644873505648237387513253350957290328782346685665930784329891936754434833163406571638977840674579495318950557174627065932465986700551111149040441693335297399246167348176453412693384960992004350999763318427030536177918171348438875945307486702330155493386080794840122146255764347668553297770073712842115966837149569660468028817479163223013814549724958211206273237830846337013479108622612765231949357069155329699600251964583410155824334573350062878560349624153461678405970032784131191004122262778638297919837673203080585407379497871622858433816612601486619793879729412545591803848055959632166600099962550140598209355703653507415911068514827994162474765436649176829823256043965916083770288061213634085412369656487911136313165022458082851565430105334478960746125232204246343174202618084582213853080978079411892104797407514476185512903415742015843034623127320756920986736824935908752364092035771249234121943539746665780552971497543819122885706007092888215733589528563418840953932063588155061279639535278487064037525552967336631823750989955616045276951223148792215236513514099175082590927531463521675621209823732477430022960420788130984335117084154145190278009301930833969934495363065307549421944144843554139340357997678892904951231899463499626101010939749653907069293076690934074115572159013243955806241905656634768506803083091218138468532384300309988083947459600291802275551842801267407710085603860794558514162172018162770489433894069704333288010182478885513178220855391662022819033180149928782384643716592368371287266990101663290214716809422411684370272898724730008179545417643803037304803597364188674298708574617637119518974672434065808714280753219494452532685930955806255125351814170671266640207663573627332526899658914079219701117199088777248922904800056831514523968868914802086004720640708690398015722573267648214021794095209417816054431686005993139482750863230201274566695922066216368650438221537828618191760430209621190073177459981695054259499415229108780143961078794780723539342201688444634670866320425793701569163842288463634851780864778694788014101224711315817060789167108798376201735963717001633688168839818323416221493594075672803912966510675137504791817953630415064438011201359715282383611296889020811554851354214273094966673823374897781960154506262908244659511591410960344861667004250263255567030269107759782194026492280363196782556965776085972984719413987007855046538686147940302251543056566422127004982991937418015085029888754225021103521123844828691906404801751618444410313538625907229556031595583169358601955674629228115935260205503953818059460553175193083452819982417370806686167598049718905230993056363990694777362210873377912009935357392739739779988578023093564539119316458931704592908419767305295363737587932419057487039370967273125308577622007375895037862757027000808556712920825292987484638183315109066381152677973593373082037951621653888442609118090507293843321494873715842969928804160916208316955061841434752308110026936049344238922180916085616141160233350024611674630768487126156824128786537438089075018901662598517187898100919903731913405394981259902196168530399384965583648935972097368274647951782902274782509726890956575350740312130411398196137100078298137515234660719608912748721798934145574982120363283874412759591108697702947436802695424749686303135993007907522536681993233320524119267966862897945954184620329761804843461401679322397790745882512690554386052637899714940237097641501329120782448858066954636792253574025868430977821177714642708911697085767024201717829772664082926051266185144605077545796640939952064876878653108256871071474103100351224134605059898305502592700373802651361137900101126510719995078742250989336231092409761341337392796709479032360855329680890134662186065386384074492673492426549002543870243734523659650331313855846981399093320574591201951294433656186607432742043143006211861777717720248891911520429459160450272441943618305689676557268634418802019320914258414250650455312744726325688818249715345140567646700380921392288803980932025129912969964518255968665932841816255824996551196415872268336274934777725772522130387799530755529400800676783284987161291555521344019454439328668842822584323395805705843881594332149409350465037309483361927737992851900138687671327256152516326787252973846530015139244857115347754098166230401493173483032096193748402694303971595735810931639484385843661785651118656387099953849569486964260919287576155411728162312372178554250428194853047870449224316634708123213805513093706531206254299172434050729458909294401302482575137444363830272430045788513723017248853719717990687360561446135533138376049480000233799665181381772139877205548966016755364222332865603815278317247856923171062054885201593448327691731011786599223172179708843390587158104682534850473352058475230096803305115118639707370151777998315164632325568699563649345391115917902828521095802975146524728697879188312114668298838047984355331453664347909533275020570680526044252989910837991342689182645075279676121120212902516902643008317337598170091079012966609350470659760449847606804275120738830656006190988199415055724809730147131291321165942863105696161668570754620607501810349508936604173244099617014554989682172954442018434063878861580846181605193791526795414583564722197395096756048501497280312933970146946568416923431323598186206805731130538546025344873950225477570870717318424173438808234217148017118730380880866499577580145227872709980866547351946566985468592152939658620442887382406696932266078536598102827874721612236718488699713784161020600475204380068659943344126976758578268711017763170689877377802645744570357000832489806149588481168653452226423143787726276819638448691410688648483538673333323065664389856322144299650658341029926438478457609356937412314644510894179203566106951450625365114598647181498590468276702249619778338894350813695236406613121732553945734597271555878295375979974951165873964323501750602578563881961934429184554687697257669172774889707846516529943944844430164280126857375413501959185260087295856296063365393157891269028074794679845428975054346623466539533612401477459827858476768607477593304351975652472870860562703304344962775744538948276240022592029715183546040830146081080886005012333938731395677447132401278400461839671995759324942417761975661984983393996204326950587912005015282158810325432999460849597713802457402963070355679918354068694304438183184654416598970193822574763072229439155685265653737940627569526421042932118056785490000020319072571596652290351711928690472730261258006782399395529952517383504322046990546456246875055613076131581174591281493699565211255658215812842844588529141762721273166982059243494855170742043759896403262541923548479458243715184845130335563528644859589040014081133074319591384165823204528726967501494375851995279653413862279348739504805961216844495232014673344025179475048859088124118387529538722141391636879274136717099388697143165842912420002527827001728409119518720919855541595360522773479471244845787121318864431008860215607649444423868807684183825104346446171317557482533230979110878914930898446888642551482089471296079254979308729949471895009867141603124736007595373340130176071499119883323793269130000367810591869515409105339342923271593411269954909282594718813286634292126362834851973017134126198494339749148930762475061413502099512215590673944208362954896741415106005537717901579562871241187013225706990075243174009254497006107287060441809366507697700203109465228354486951152805672686544253962259429241285726662244186453227065776006491780631189366920443200632307066906876873508900722898638014471915065223916767875649141739039045328391791572337731615558813237541902370807744525608877942763866366578565489468183785742549229843664202715836154196852109955823137880823000390648505608372230598678819839377633840951640692821708604894379279739520619722300164279597696005745535570281852213585143583237378780241989042294341278879868586003204364377702850407229413976670700296381310781860960675982111653426524819261903553894844874287493520024688510323059178158060843289467182439008465336753261612827647173952674462679689547365494591554481564928916617522541167866142323319376233027670842401320185488833248882204606463197477559326460450231812402496600374332247617336517917779580556847031140283819981369550907541990499741044463626389952519407071424348271851905832164902869075307952279616547567581884483024622033640309505277730622681810352172634487283012676705610295691823337630490554599145888477907127329156927585621139729575524905886774989679826304457037214295040019212125013137480510088205651554289352634166460998134731566100927517010359747635969700346443968168251190957346957519221854559223207373951340368176630795608353459478741431852626870255302840659673847905642361979478838068048657874254223089934023057526969555642521731451105513693544309877716118427853983179570577397672629834666671437841674291931282357358273320350989102753915894679836633545753212229309004324403685079633875127315882830491020113548065963150047984263812530350542233243809349258496241778134059159653590815649420543926119560708678914252292588909784376462975376427317394319803865166324275005327251953656922434333735812528710027502338414123938869736788629317805633810044380061440481750868110094462296108043969691914530619281726449818472892217083561808721806588160577248171777582942191366125306529001825313023641521594614017662538864257048509994882811773224041757107754943740239254487943186412296958046556349255482904218502122539839778722566518025787384540149818606228702335043682057418799285424896497280861332398705229539271275578663237866916341287225219017470239793845701056578042904159666614977535170327665551914569407850682215027943919676776927719470787039381108462177769175057871797127882470437610563126665885576463545733710027297713705458499124364323742844387386410213147317918970004232319785420804258180764861830285926633148672986260467843154491859435026290146199287111072424765146663927825240873123548107416957601848088950540820364446528481727391657255784559966348624363781322899040454993697822582953956362262221179929022306778899561776749310245675138915675673838763638924081041424013115064319919050657887603175333748242856276824045701684477351235096851313783035700915040795443798825546081812608174160379295192846898159074927930573886334534410774361028424722965899179657503094963262718188375002675730823668120558542477197074613442555340689691724400631655504662212304372364508211637969022820106527425390955358846320632752603419660487795360525951976348754142852606876855949505729285100843623101436293788187321058796290725821289160034974452029195407837356106532249801230331594844002155695815470420290473090807273898364057745402842432557036769824867955744959475370513267081110553699607543479123559610862811949589204289730192312770236077787723917187270997726557519181466223535694878846043701674743597558906713050079323325774449437594591974403880859188040997051358563232776215073655766064745336655450037926404037954724641958268370575517881973923980371719028563180780356709281958015058217410132778110171231335713538097684089242684141579573386500408292901725975357746555684434567641108154930690948909352140463378498721213283498443544053831341610111125413717701817714818318075713599557985484634336383463129994533374106707578493346240910053220573360691325647875003626284974048243315171197809381534109438540624279844122692925097525108505680319460751232977822903123400313209471482027231237731945548531443651869552660165492850703934771239999869052919347467202987994474908699450456409894551352169195551483555479310046476207166365282606818982104793403995212833720243156901945482304858870364175245357596531333916132658126137007953644557010285067750605209341180750169578393235807195311673999332764373351275777647905321727206252072287992600840118627159093960463509872956745733294809303296578865390824276231127948622251008390905779570724110264542464048643787740284070145423860611302898522456699148803914478807528069246076734683192327767381594029051705648481753788981514322700186761589514359890674140627978324079056785878698275069696402959399199073638558979028237533025390148599083794369642673780074868335385343760300645068174678142580813275964619357989644241101850560593122328301991925589853646543199255026742084265545227591682896527984361432978945187943976517074335831839167317097788039615178554180162354687901214284226346998173865181361923304012066904324328177134442092209539200146275828661803058219930080646497034587607396269276331538772391654239772973893770406394019903586677955991471373047611821031817629655050412374818544230183758827564266585405442035740508988853978389743706784925163011474280385975485754861998495227231817805119928897433503188998522619984823613375220898722311285195319042187267480437537997364968959658991832752936646770914509704772720194073529819278125293732865986134585999345648103166454219051461107185365792266226770218354457511139500184967927227242041209976939119926962003553530498651829994008864588960598907711257288454475193972153058508938186605772510533103302555412730745553601293105173599663916037680239604719626603755314387284278097991069705117184474781540326396999804900559326372051720552924581019088570995980728434772093132648607819061382085266043075977831666862092914241933109484561970057323376867927480976302193463341648073102767296287822445272800364293876597990398940088916710289743248849735319449399545751693078093211322249855501409568359475467977177716394912073806598174356296528622213821402668737176220506755996411273405919248034189883491271964839578879265895037821119047429210791078821422855639148831405009438082923750932867099188338601057169263065744473369445069524112402542589299884472343621004446346421687648175350361848239478322791787109905979101662995569335062675513336257351092402054271321042772535107938710548953901729934933900407815885145621108556775508213324770622860229442866522666771829328300770637397439906092873545382733419657778351184191337596830559261357972517360120624730138514580120883431011556902238053489109912306462802217673705298694857589660889146013347539171517367712227576825230420411474826979162747980952236181333387615456035109627169168583962700812633914587991617280204503151770492195404641479036546907210963477926885138030073481008060600663156767911600447412540157987231046341589552747551055926437514201472168429794895271343158001754886455041072919542405921291874442624641043836154960697826315649885127802446647989288317236148362482192659103742219068110151100195729293514597452392746254357217750909143380167247935428990005558180020942152524604933712196549358583106284572145281279859854446211173536763966023253204163417192769288465237481815230373569411578054388860911475680809181288863923265770766696682341253700605403594951265405188978860482704544824540773859945557035466747033506011425357465718736602357107678345084463033999115845506306127143560750916013983924384396459826390645688446005137527939222390452278508500982164161898994320318092921758497381907077673794963413002281248699005474799281755103841787509546024326870670123784438535227520837579969150411234496336886684681102824659781395840589126389608573325009704362238364336809607604814079286214238880284040497770218214869137807424946185045122000370621746139101466506818170782525759958669014308935946102023824365725871151947481538976317362624671920196458467942438361061189605248203855559125320170906765005186947330625284016093181830967682295126038077935855656185547419116425870472843264123320968500218235038371543376367530267851254487068557531700776969471777804377344524384790631342543257557083969615960098142546877389244411994579397520125975818517093146825306130951619424397317161267582691808166112011806051635826347048075506246259588715863417580411915308003727823592382701725659386615549587267757040055017231994565998325223030020773229621594957284476549494076717617979011489246949353161401951356908235973494681730423573472158551429360019438140935884468920336398403418775073605805276518878276206220509528224149758792254191053233203878044127576689893259837435273534849987604479591101791987503959569512956601774240819978277022264319634378234158895390090655330997225597798782607290978956954938573636671767650924620152171265239264141791075496089397807437936655799295423008904880031077137288140972987548477780017930932258536700453975815045325740960059781550086213041628991609556120692567395408428830325402858274700951680252138615395559927832470609803962045239553734716290179538362187570832675239234656631685007140688207411671857133116232524182360607498780606713550948867835450808259981494136556216614012400021355983909502612514725483085460247039840839419398442586476035722706219336340471304340963077757782185205933271175415175349302392893718288338085814267693317913194091346995667250884555964139665398504941620223083996198745425861361656363701635116356298831944181468438655506159747758368718229018726390660938482471287928037156318528035883366765886403615243203416988304260688330727431144845304356196969940707444120284370806639841459742244232859041855176132819470496427022282343253741969527301542881966452882814580118885312277310726684104081513295273791251027923051270281600519571845284047377351154254161960783023463006482584791644851181151458559869176399297490944553350658240840659877048777858160929447726196859543395953819671606887342615552997531952829157772919497926196880311938263767866552658393276098017853195595580170979823263806876579488253651862012303287675505034152264204916756345149404531045822695516980028883463390535618277024893074710947959741970119072297844054617390997963695077711590013155164463931485404865697842670376081785267814880845772167038870039488470650022920038962321858482073540731087319917466406782596281493486552938386305095632506781295121396343264272907586166900711706812856648102022746134347215853228346953157620654985198173791461865119755112256438181171202071744064306732565410782582354641569766467380632795947865578047140043895849248962614038964149264730402478360296466035656342813055588001300536675982787977196712659247932960500455964176235550806861516195602522161173817691485335257288510567422109686707566772667423726909776291219516930605895309657423065778613878885321892816049375617805714194828082033309698933470973151759275714096262138036844102681768902440433655935002540183567024222504692056904655699518456978317537575169671272106538945062770977904573872030268073573480998314079122031174163192876629519466767924583188379360845113416828730259086487221159727508269785486166877886742382024302090307889487705469824205090870220883900699857692854620439074527448962547218489396592685833122531719969808295874038074808923252892398582094558925880247966629842959759637884270018262594083706960999790779949970345163070595408881405888282844282430434963719516783591083365803642458306974374902340112585863373786876843248186933604037297159494693886784627262792893481410080395714243255829758915323108808154316397821712711154391834827873070949731094659927024765264156582221574269806466402580351014654881295442724046953848050390435756578239873753441532468697218878357193276295329344950435941023368233369038923701063625694116439837625023125695051094932538948944169012524938289251863749051297300189280344693518561915382023909491407974009903903404692802206170854980917776293700333906986399473764213774980047906918167765104145818178169692682338243129311846351644120482836181939882707405667061480908812282769797122396704853675708316746015445170034912976265818303155823660493299105862666466042789765082906848688388329359259899467506361370061845790673857638258779178209199119470347663522911956738376498609383254123669961856152904937285365255688857731151226809073645596306079486011191991387306695884454035102677816169298868390743144164190996567830908610464619230779047952431436041276240021904209745987206035167804654520986255634499969254230173591334180678469614770545391837073800922425601968871939649045069505340891927148751366436924071805477947923365311359679138121413400525281342497342768858681757264568937182114376759576166614898173918059869282865819338315827233192516527317978741915683901165857060389105427230109730099494474657939404254405232170668386511211366335791227093551342341316249835969702981891300555664697280836573019923796210413978895733685984733580111708796309004754738293523028548427455648673873309060859336374905068316315793524707487364460985509250572459375107865120612821495511801271098797218713416527021175244059124185217529781199988948367089586239377695423347369661568772336306758789560852490767421250773946550303658565936282233045382150932927905423505314392542705830641571752904355852243776862535147997978146025252696151491961744131410303512779804656218999826500183362261921782380361952367354999882102200070008241510097658473039647508705061298707931253775263367113691302939474936476729492898858472239911581404847403076995926665039864220175431279581215988624128532274578319045110438465612492876910127182142619304487395164116600887768189260257137871742829140566387264500567713511608366111055240267661838124673191358263078527075569411666225606952840967277968137548853423412567909849212763795189175002039610106013904067429813419760544627625775655919266148774768568447464432613811655696655807475792930538832149865075014493277445846790562557364613555685731570931506831215077058886448131774067965128214942267128539648245875365959599673129652482966278991328406355724502810493529163830307503720167735299519423145890848003995199123438519980744997447038099246708851956512202802680186356765158997443700433374459483456084818795762892640171177168457987012282036547305386005392573910151103561759237995778133247244719482833962766949339533076160648764966259251463268131291966523038350558701589476671847510112439599614400455318326547075483483458713304372610979532816122093853834960917175065795563098272287355399584313232683437826689559345191322441804565863104859082824952263548072812315174839287279945386073505168471871895266688313347632556249259781191005615812743405100516948526802945367624775481944810035752950403520174003280383276132577973190298669695083225584186165218300529814588040394726376323251368652180766784272264653729601289435871564320761074121117967366976564450465290449475432167497827189049562530395858003417110972745879189106092975381720502204455765181577297473001326775625934905363442024442690290302815730984564532358072813850646864416701422283344107660619856302237615258659668396635514393192922215749661403621107391270108906585315628513532643330153650702756546523720094163860394502566022605790329417357431859601945765028852299072544993364738272736139117922162800001341175572926059101194617255979554705556691535200880091398792574857371049526573850175399567385843031638164828542705783490720633014279802851365071266425407060838738453513403278855655021062541220638750616898981667081262570817322242091102184193721205609340491052589184025221031214416358241772613558814416030528555872398555084081516012964195283948724572690206477539629654011145779028692351796495333071055165848278900036868293149429685258053231506497010145120534135138177777604451142461921846923709723964785201874706704892092901584899426640873137003136856805309613790102985122371601702118272309268279357180145743348219925908702747656807640404990321121581985398569869590758341223696622176207030361718315920152255937998205844265009396425014786312146428510214318541956023396562819626707268948635451258360026955017152660693708571027708628009662337235147298247748400210705836101973146584561041645799747945938952911781668209429869319609150937251865883896863998363214516160296325323424288631106218768286935272554176875768230513004958885332608430805371206962791727370854107942884417606108784974908836813132956893617555839933516818216773431668830611751670125678503040702640994870238559273421336529747830488694389589974032479818586896970315565471944116204902634543864614686709628895513243133907273090556988455090635133331205829231897570662736876897296330654834100250732627624508450977843726459932320477798668329317454961547551343598650173561982533623180857670223547981589345667107231682129688161613422254536924233432944528816078584032536220426632314916113391191776764650275676289656457544566347914701650499083861913455056251072133004789150666731841006405441788228480844822991959355040294179795788178175104728113542072200239018795364025441201894709208172855453809634440809849537984431341965398716720119258210704220755283443967363172052014594415704365651306432680477436025963486796658071806072305643506780715096985188489263258697108866104224957178925712362280037236701105017356414672994185371429796417771155666023028424665931677776034100678062928832827630834531060591006098535505727169557034716267040434146445507460419745733165845672728995434997407112091206420550905157503632858082553691170359642775016279647072707381530219682806031213213313776411294303404464667813802634857267181281576142235203339185006317409459014038499809434293315121958473043242503640543113776376204602110264531527305909935116133347938126074782050611292212957445723796120838358319927561188640752545763776284302940178342540085821412316216494301847330343874049531081268290016942772803368806867121355095939657582379355014984754222151091857570555923616438031699080418660945001656348505251290676186831513093398970809233643543592770962377776953563552592967354608521193405232921371598177101413912790452939469413366799275322021533348880766813153231505636843364975182157155041804307298911280112908346964613394121097176278451914626338196313227447352997722414882795011804857416668171129990313083694573599456556938260236848902418749944646435477672303780520835797595481435626856402337429722787172453712863137479447025159535200811037739726210410404602220255046032423899327655143073485044278115439731714045429087385351222233396812414110601160253967617798012313245606956739582628050818311472633305634753228324407204682394419970320862936025023801144179863604672112967344575954324559152522729966850038559546264047146527213100705252668070535604088038360954469394906646972242301272313830672811666728558489952059839320699962443543581209548824100398913145378112276793893883241697796892892157599208591764612277552388802941329384766379123890781084359017812429899442982328543118476468725192073574678568098096466345657007925295742152874309904697998218780836849818115213086581267186169958956183726053391939294481409070617526124139692466092380965578358761970182681451635057590070602555438300570106750797026438271945417587955802794412596567487861990298251331092993864643530073214302851508123434718390938546136427658129665445524871590618986926656360920617481829573522083024539397823505415399599270549059012034570360509687820707800824833546777260561556146446010569809431878578562305055261225068348347739279678789059207245656110392582584088708952358113634882442220078284854186562517314140140472999673558987913355721362262442854273638536208547204040888683313723724313727750199040752538599262856222196877530234009848738279135176937276328024778490733429151161558654500240703637028531501332567483045691831578691118513340748368688161425561806396386420439332972500495076180539307885662839940813758636198192682371842555983010693848254101621288430611532653886571935585427315932960741282370743679215450041550048810758292814840017814978737114042279336078828865922023057344578535543222229411627947271871653312502579906704572215533885392979013629233102957704699225364122069823298809161554197844510172908464480104761025917887949544415948631343857474785275277811906892899631193764969797804583348048646307817638962904177455427578776530152650177739614246647464412998794236626232287576239026929591114242724864431687466217661763570914436570161193474344440684185349205301787495968319558293237425265821882617339778624320348146149571095349960432299338906190518157397063443787125284382085026868333180769686504574603515371374873874798035997399238390962414112225414158064904132677530265300316622346646804802600683661219692818768603303799047658411504939798172041335422450767964110711688697488962738195836000796713981752794044036101921496377300881600073905724536633267963623655705272709872568685576563110190347666069623970201092029807464913198352309380191322973337242151051762557250960676154821400882281494820611573535808244313176744911482724005023817497474623369825535059413255865639682413312120263065693712865671682143218917207181413270041150573398038995436135306154999586527206426055141944899866413169987339627377324166847073352716007982452867274624806539451520854105445299202012532417907676553088316291692997354187540062966665401367513300354394051720731633305453134773990263325325935598554418991949456378881635722001577512236066998265400339932205069123112419923905946185369342696315045583028299193060951052989154969784099401992640811873695661278012668610573188009070799989434848420968735990447921974333532873780120530686663969047855961447474758679021713150866394883320046929035888018828311580342906526445782970484312306978375162233934486463282377866064235304947926824441438118336908978235675074297113303172372599917852398708106166823505615754347128149421510823520386550113660901508177565845327374463816901599602008704823762108518194523050705396996803942682660370967776425740765957115462209368327456244771361046685414421453699198978385115668893175555142351230228276959644065072164665887670965808577070847381742118944942917974407820089378401380117717723854709001411611813472383835484011207102283026593645970755678186912079099564116074648472650393583337834374015300980045591070117873580034716420427383384280385247435511115528989732040798388772991265969324984701543045990318749642867364266769004837822758280484016571441963356705797749476500154500221140455608755991080793801174048558249263951034642781609324771397000149677484235881993223770759564131112403515622747622909795941150338001534871316395423486644488478224664148269093295784522492674725758708138255981743053642659375843829903214914370311239985587996357669258270807560098596589740177027674520260706559851080693992205075215173322252277093508425246186920386081124955233746582394954123617732435195369273675986509556292877346813534807639191638403101993061169414951008798827462782356533542557991248869767471517644124909757317967914505116932635033931192806017689253877464296931614831615565072869108164277864524144954531549131401275087911610650019139252620882763314011534457467928207133256571035997550129193085056918740808536531730920689544606546261908529554378189399005695862439520945747559433833596562990595447961334094787417949439918325527079011104791952884997805114198762826518257969557790142012661834585822854159817762622656858245019887076196370695287279148103294512486147970940127545075408886110239353765386841873457529643967302250155378826322325909196808501035438776309092130195466729125335262772511029313580092775413707524407480231169390673494919113189755501275410549278989848536540273912947727734854725278676122388886301954190123108790768764843450823330214066235291645536861852587882159961028010342017081311125265262647040547414697011066862780210364062209758539011682591362518003103191541506291510664891464740745516650968763900853714572789213197923826372173093798021492797430639581147666107319602968200382348770868489408535698015203976849367449584023154012867820136558659927271522518738840677932321986916581293512066849274674149330129607259402624584260849644322381240790774844309512152228352559582909653413951245859222927599339438293083314700824158734179837093440448193959875542404115161189122087243529738562833259851891707456167228693328583580221805415112967333748794163657717105306448623227113540156352851424906921055503713006898536310591687974262368556142901110206562112564810129019696207344166479492914718036097234923922072691027415828986809919777888043001614432845739041526450051655712326436848407669252125164870194142402036508535405141005002491433368491216068769519982632626222873780404894011039928403931942671485817143961362754769833566465013657380594619183229283757886275316877460937507131080944208472134863837929064442373847536685301438230683175917033915894517986712365547292427636519722255917227019395307134658604697540801818390006034344197217662756579113974515291311534500329596069693957258821249455156173794602588898375974715685216054622497419057336966666584877454623117840744010289315349596007067041810601438094987862308808478929584042855545554617845679958410193473846207250307155121125453382884639377741454768028031277283414178181076878457782979218196534635441685653640472184679657282320623069815067724918220158622021862826784220504509055052762531843397889798730116390987980662548379324450405085061885758114978650808634908197284906726446736692893901069147089995171624517602299499414140564448184280299061432993109792145016556495085406647226332273300060751110471056508773076228550005386170798741966360835512222046656525487549121384024802119710180872373444748570368902930353999843085778572410764228260715082847231812378481920727912580343901739800998715200362255506547991146841369370248061141193774505434330965550268826743274024656931414357181515103133476779093616825882594321097110244701414803801826135979409063528220272740783647024334789800659015836896418883133289673376801011071345974546656365898427904020081955244865995872006852916072717655927707817712642782929459975981688296815752445884375878926001678989679796595364349934936015174612689045515750564873807110531363255743452800521507133405945500600828142784343260350226245204665854708959450143058841657235738506101907589972569106929221614202155208726593742183111151156046592554531431786945271055466602096004520549368255327237563685273462466818669838603452532835091995152000743981110173547586787045789929216428408400791214312233530652789510262401160327209830782449142924198583116596315305446790259413351556503315483555696317918824112013380530734969807400506350453488682604782513314084274831368531523096212985857427560481404274649317542429264004459293645789466204784266851125899235459858394998139539900405166455165486200582666947344166171433773025562034298451117717456485814394037242900933240588148608551001118595785108408182150566853000291017640986237872657855948173851358814034657957612768056698024409108842929377341221402375317422610235520931547480207767432751146499580239270212306022146838089837414119431098290971613739987519122939567495740335441944070254415911080378782487328294980361345809070828587606475860181716632197012045177196655624472820310299163707433569604220364870803321301105410355407256344762470511822245029509542527031768285547612904198280382033824356347830803717062093849772033725804630601558688401771643086711883014198370611737643912647713470556848963931071161162066971066968578082828360454381827941845341869948768230694326817076049092563775806936139206598492997138902732358472677684477985350397528271016048749200170291348154530893115662809273737893264027093635450443631029076248609278034184718273138777464044809121210362423977537974361201585399977557991018500475294246171994831792459320884416746324778638141615791336382793175832329646072223109593597057210244785198839000283995406094301096934512074673215970877835327901664457076442729150463093860091623851453478163557139025306109352464881139212179232877021711530567197752337517015560019005170486961084299994213564436316153501732506389220522013968137065024865839985781791842030870750871177398044299241757936414626816798715928487525088924890544864188533552346975506199167742432827623159758645839489585556857491039380627620864599925671793988602262971815929505549873089189575837265218567587424569588638813256758415356727074182016526835051207439444728460566527146347755546150904000052162941333614523907743638951529828008988444394572728445865691226069000779305395662463670096070189672903496178467177929619224160612960770450399655073482233905348935203170801990376652906975053969063084202061584095365455841236599061069060795988605390045828376341409030368740619473194286924337435343964061373513264815304913807062522674256323542145856814606309867663437896326691081706022488138694100162452281379238145259489724584221001606293311609685755949491896209035227441310643763707802466600502405775620713178567406162580140209874135157008919574125615043125834762087097028081491283360297198453929493521243211552703714803692619676344417798494085171141326090912684933442842364153634685838910975418213466178905508503009692121841655610412354681776164824296851752668043660356416927836051074777375632463062440027177992459267403217279102315042443241499070418642174942259881484021708192515997909421952538151950987770119109516637725971192619442357806875225322300456349233175314074901635345578847243162245303598825365712936779842260920119780832056757397366018517764061651813142018792643814486476795501522131126414741399863876181421444788825029144257396910556358886505320183181290751108994179408571071243602088702678947483113426977291036845474453332371019777257814567329729168692618172272868624352517832175385634487337617737308635168883390252466940573668087156703536097016551238163208635839362371377546954542876351104080486228373257786118916652813380066484677073616220138387034371937199352149130195362579462482298707695615856808346824638940598407756543587088509859793924282817766055100128445851371105299369334197684297266175848450121674594603444127475214290750680980064881862377452885770089943142426695617143351094555820356821367250111935338239389560837846139450804746443965566500703498102508879316173972582217774162339842459835347556100848545596943233206018107945296358926308323579319237257205902243796710615424072794064174896663515880830330407807945514615013354402711244035181043307236053751237622484599719829891445436677843616338187783992499987863016377227474740143127781110190012574733519875544067387926069852884546391054922887354286735056447419634321791963500469903068182857027484571972494526810932671650213139865962698858023414331539358918229527298811048270608283815447966358165831065824916525383036329501455695874424837328027973242251081625389828121917879914469301166653430647644773808049920039591719432489205388115129603908058364167312844419665359151943408657941912780209247047704742497263638013010742366058497825440104536670177131209419556140383628017580218132329478157007423959137273093041358058337444654421484721940152963558003674819303218102334522820824114008829438247311280528772869130906060536397288757057390014564954535243507014848869682167125521428509454634970388440211878828679716890844955964684824455240538392200117532516940671816714255365770988144896654397699431442437167107065909369909934993557974436508175797384848117006096958219591534262786553977744488417729145527783741081423789154695124661733467015056713045698898955657521231458649102797614787764909163005925540375378159697437217094558676835290949907536657111106746477720072773797102090564771365295295238196856461896650036596367340284861770192171454366723822636986999316373331318479550948848526867993460174226010890689991588659918009918201340474461023742433247049786210800888276974027822429336829225894504775995168812946447647658355667063152190579338580696664392524995645001818580311854756455394954645451350554168648909815357376500207488800953567540610932913808378903078672200875847416871196645360445850219786445797362398949946059252776417270129724851738672691365197655158555034490358458468994930327904598425289777340435504773365808405484340513955908863876639909763575887283740595890997074061475889981626796985260004471807061575071657295725784137420243807626353289991192696963621424820372166344583428507407544294299276829459145995876844827914701522910847330740518502418813030384150377282834253393935882929985066420024707289733887699605855765225969692622512291893535608579473446571464500218357394919225686086005534670816686258167794889030612896667833571649112191556881154809737435268108708583113086925824589245968659937788497892609316539126687583417660634563464224867773447821714665960597809129019754599071471324409389917533443909492961953508121402233476584722856891747956341162882245766676736753418772253034662277396918871178494197584767456213739199091727908171219109983692698067992072538912435814540178265847952608989682758784662626249251854146409888716307452629655801513415763503674973074826885342475437150157647875860402155839189753123794204693150924814769093027667486766370447810158636085890121812440094216012861710083056737053275052720954307898373095751584372939275514175102215587911525642451120327138979339801821324755943410058558432703985311549643397099770751251524922997164005981717994140705251149684643588793445237604200666751347345123113344287666098081707981136926084844801188116321471152103074978319547683805101349485254469485196886916794474738561588686800214635180140850543501980821424979141636651294846814377575087681767811040406360926051518799519302167800520283458173803986717814436640608815979209415148679608987163615278863209685120450733593279556598418900506802261495268114314727812216441127277429405647426644282904044727319928976355781466709372511783937039048449992431477824184128376174511242714959554815295402623652992824013873342703154507105233050793593357359377737341093248496904497129064124384794542103056758547866220512824739449855755159414505470179829145085095016131672609136082894176635204743718819558701396907221314195484765486772043382368489243884902856378700526558292518018731484748659418454996265443963906035662641265512799985542578370881714329470997264116477220944205096045294804233897962046736801091347992187372928390836940989406517874367000674027518617878562141070723361140881261228756487161026263945357805436969996930888109427200983286208458019597522744009250927918034556787437371628607868361434683451929511106821785057556328641498227071767600056798624258567933235502774238135644815053640331335443168447514926584441938662170137248155500550346272650280878138076451585818622396026174651733535830996158940278701028290640535680021776290974073459792608604921781538570375231017783971775655200836766530396247228358896246677895027263318247664315364525082856890298082821949993403691854041782711031472058963803705772543275731460035414359641502523246051129009240760883815965037020054979872573465785431410010462354053177970023819569379632634586536350983451560055177104542187214274797928134874727734384291567863658901238585561005268759160526774669953952394753813118807645619563479432154926709135675346867872067083811834464702356539872762071496058778923390191300950517891250676573551654270639633146737301202433174353257323158561263541823532412147424376675775130419381571665517859198430445859152718056956591214192648917911102236710503814059622345954838552837590389715622931457836244519918182525214279424075556460912135743374040207998169499375180729642145411271329134095838355215115013132240157314085263175559408366491941750923028994904243350514380543157215642324044659790075124767214129841837863605871133088266145941916734184371173581625655309166633638301156428987868669875219752364762773271547386125316292165111030558557700606991648641534685923238076636381024844079348054359368580483481389906856518546519761048409466522685967638857865888446594557405574702279991795859064335806463544547233472575685461712461004799012461652211254930956780050342125705566850731835168234326751332909578213060961396701754633710646227579543584389324834309524057516384139929174499615144393499667510877043450090126809759768187246104596140622764101359665720330711487488163300279217452003355315798279833039788501677587507785244736934005077294909539701013146311123998479966444903589326329180841334385759795017571807531672316526793607557816964095694656247907588870429438093457274052842077914535702154373052532201800335490767490446119863449390319534665801023001491543132521786794767727266208653935896797969134983748094518132121003229433607352236604002240083434280854234619678005427754099474254147510028513991229179618930328407425735051311284395330022095770724922059308522511238427502427372208123904361006074282922669753373066667962198825613796669829843202743163609197627616525470023033751182889878194196792822107014513258211026972873383945877261744632336311522673147276608572791943354021536449739275153819316204621154921515323154419126841577514561528203256111677973789251879821886227415876685162563081785375901492523901178993148405962285275652362405135361583739050795326876344054125151309000588827579686154967147404882054682865712110274837848640665294933441524040791339806027641876852216751590082715938814551648165034288459202300862098012701358677836556492992753918442369087714761837257526751457305840204818976279661236389463428316860349924490620000568062806147677466204845327891591545736350180578813341064465805957058879555833321316831138015879326747313553953283991325998822668290071294306743414943304333960793923750194530426999638116937779972639729316812047367414606122437692152812818207183274359749488511432288329568355107775754929339394883393904317376259657600781288993960930640622551882410399096490811111177198125542427474316617299213240927049732086458690970919143810518057173274669480183089546586927945603395050920760817286831486300180708105700292877949886851013555774753441733533276554698783942848526527087957607513956504933760910355814182187229489201480802890791944355998803790657117614941926110616796737472442574650379172791502010875977377748719890585709833802512516201228461944437917839026959743391828083258685369227561737447023088339534442943998796882367317491520235305563970445107406923003775386586505522451663389168084110405252478981863489469913274300609740800518541936214642352933252733097547995732623030875311762864736598358000224786759693529867407182980410632680038356468729591579152717941013565618871123519077831189138941825778653937438165536514480663558823845940739893248103477945010392413506361118505828934819664368762803707969927113324452775138348332361547092666191932894163652365909522993737179723750373602728005288963558773767881904953601946630985951776689708767128215748642299416529459236527483872366993842758565304502117917184444619437753872542922296961662467856105640004756948665905550360778481945746174030802825545864190456648481952874316233096307337918947039133792074791430046340160421083445819967913124047066151641229563621981610008810183260360094554558899741903370716201154062292562898092315685014830679767272421714447605501470009425656717272381072467059335091516571826801934788446023060636422441954815005068736214807187555751380307561845534465068106256814241402476190768521488150066747833450053353976796878605688974803537802039518534005610971343208711648930034481479984150886778651078358530836892544709969428383191011182634914436590024305889885577294883940454541665784895092795779839790798073143329991592648049482955721582963329062070816182703031525480544153278965912654307985330214565785033677378748440964897971940645271173275330087611257304794376744779881207265321491614913100260855955243722074235208189385275449275205020784225720532341044576584789555028682839918288452210857532452832800547067729779440901699551132556002904834367447157090102097955545570260909571108464024453704186741438506690495982046158517464674323002689543500606191755111095820765937517498511847850328992461654771616435517679337218887613269914658852936640970232186162706692713524910489260682403135899631645303082180982434679370661614479991862862164146589331285068579295370469414707640423139858047915924090580310739691042596012960697478723245777271842456412402742760592564454963389094048678828076641164101425355842876106243923934242256907446032394981448816866847472272814598121971591620508749241867222892396261029250857124065414082434173203628291509782507181435503638781453771195069739070535813573538602460088048343935065990012950681727424716915082063410138955574459530435949637405508063851356185024347845412320861010425042879056102318565180077989499738148182669577567209168303023274349589454742018499473625892732610878181689241810640412598191747310433156832987364107665412184390112341941944999461831936697503143195455517446978391087840937931594903408525229421860721272169110923453098653402264438505718476885661900476237124569883058489386241905697952330440799416230437228771959460442060108252390507702807484151027886408627504482371239904689601002125902783732509922745728971739087175665594157944237931961512679979734841750158559112938578725008004669871157628571015106851987236956004683717305585433660864342739012357437837304759825485403671057927029163969889645877675238934924702880561564383194269629539303785146676368283144622312563131315590807855301773418603742194088001815800048368813830921205941840428821335961692062899658163396241686050379583338392542169032600467282020500286288146265536530077896126009897191729215754071353763573265489010756799366738945723803284559041386682543288384684661524523191929102941906069355460551651840879402901748374440909560328717643293705147741592505141913053888828698761718983667373231417715450804643686229172743307548558509880770608524654484630633477553386353267772541928923359883403420894025445274226426711676069989601661921055053296874723187629684338996103872273266674849017943500638935073313827861057266354708812321673877811427079299681105531216681812943543884993101338258225277614443612080471218643865481248214460514372635367236093497341377968708269337840675625269702397342947637646111857270423659561832977592704213214616505153075574705564739947880446999214096476050863290216523286282960436588473146494923060450063171183485301223349254909402305270584364514196291392027975777942905259576488931249810048003494261791526195505937376231487652941434978865781800736549392471064485038362992825787971794304045809534544346283233556820624665293832693814336121282293768352053672933463262268558656687971736443318821603268489947538343550083994187210110436053798508100820464226418416043232739285711770569157724250850196848161117240596811483098764208611247991564345311806862968565387108800402758918085637824167703363882722785549966588599352639938177734731307363078648665870136237912300479236012966589945573707635824502928559155775345870305258796047627892323119474362242701214616743993208019753334309321777085863970654096642553932178748069774774707446688052001850867807044709636414178225691996829668167034505605321615247834451129680425456469887422271893289331008720670597792236014532381652799469179898043254258956658649856090943656836990201051071933332375329393986488502336308387078689681493778510683076412648844357027114892686130759125292377844766945894922898310596441594234228813838636084659890514388475877885230851938075757481241063180392033863930437434768257198762378064346832152661464173505852422446832638760980636884560489459802690576714429255685268479046090804095320094012096966327015850465372123882831149574548728671097342132910471256119091279095508797815791027259202586595072062580429734109182579247870904942729719107663586492054648029151370860846621214718674168593506495303361918628423816048372718837123200970366273024164150890170714107331035620704107392545512701608053892177334167997170679497359738917916129749810005308026066135814307906914045921266638607517258568484270660710130757556005808581312849784740792980177353655545739736672489398436921081559994401112550975529676131718351252691447497143110963060366353930061402849387290191250638513804876604287857368264095658897770449269283543207312797267608408502019639590270581671512041681824455915018762445097665587279300308054280314288447341359510590236062220471917877298567353797118845905155048340935034414767760847318259646876278654174715379417633233408904959124308468265534346718805402528644635260816632272190735714442234664869532638292461015173517238153016922832475442349889450385612536108145437661934724178366514096756725267445530650093565223822607883354297480416604252651783176193604940486904271117525765252178496391750002245013016575300192824308489828892050105072763494971917785977888044068509090183114790082453568433833649315344656252295480056474251796936952952932064422393230908119062607444013396450469025558604364555200498403978503496342187105367878595633192091489925217314152136286063552021074721026903549603911173321684918476818246367022477795542858208928651478048165898534136722025885801234329046255686445412131349779678820229193687989086814871683352034984797545230483810612157203435678095339596222059253263963604460993675769447305309308054573614322656824915841443998994917154320145963215322344027646962316346411178162568840329750019464708059444473494907972531132176639702487262634646240220033419847476624006738561700351288741854824100092516842664932635847413465726105804747117905720654548937775557884521176556007362339482187627283980002688635005079301060478133526928028284288064219443930895279241856224270741749866914113884358382445773234176297861261916940624025252582860273902801033182223192787381064423696523793253174005698918284425455440700937123878681821904461169236684621109895928461489588687958020271689518060261131258317790070003862594241400299626023725655671267865697683572898438787709190687971949547012347935608608954918239820420476936805025052373568601704301515147337471773552823336358236018383511801912955674415433685484975607967427252012923271090017408950424001072330566056255454907437945285361214153369825813136823126465042275420341371631652692573892724201443934165714705785590106949840107373381989243851576747771467874348075872065316638521626922773105725712664529789943175445646959052787823397260301155824859628663335682769921077489732500148525398698496461496830421926252524062467532550234926315331895289301156519395269863838554257660126778402424346274243547486326876425643060007283004572763411072470793763098599880379855510497100080606067206815457735305904647133376450635412296091701714179919073792272925084082169225216265548169138780202040088045232931806761032307778028468257379015001302353799815641030063624957517086235937986636032872869108656919734007661953986522381382012713513281451970616791899116907716407534167710185469645705447078782647441580972795843379443960706325125034051946499384863440276128326543236614694843993412394174519159324355665370421344592759875024723885499976424285766050018319570751172364573108715142020469356004624909668130757267986974611560473816022599961565055133059561452480022874898476075388290740527445714236667305760133200780583489331186497008050194237146613327981280880328500540465706105685030879909868161626193404646184107079712532911005502856518513258738496881465583346648551126290891254650509703678275577113605813118851993244500968095670432914831560235572413687242835309670893078319595631828151742398711150335388604765015915180269463950247745331204205561112399134590314635680960242289234803133497091766367177030480349794254665334611361225524709439542465232018403767041065937994674397826872423861291951892701844735330441152814343762483840250541893112214524301405337955970719397033152570449049400923096765812801397574333282257081051807366653652518851841754544085023725614510738064916621919044815525139165436794313105105050273276237110013413391507967535697355868609263338558917163140526860153010810795340461667861656157453398384363078280408430602604249884965865951536687125260303088512328731635193844283919019281811875944392929290953826449734437540052989880636119801383461145020812272783401089251389305151896346545533718092755286163538961783650229643802523545329754413066886440386216456644275422740961853568434193722257673911697507252761284952340056726467401614912327320424030314149820441442125032805789812484320484280371244077994857825808455103700344907736607561138379404830772284247154712517851516969082372114176799435283171891834522504211349167265166322119711747924554957940717645768124148103232858606255784682935439950709918086135780643989823215831600403259788238292681554320389299349292331352115058236704740916020328297018662173755168923742237534892672091679921416120147652210066773098531748630961776742022606432321024702384015681298637403275545566912213057426757773327565532784960201918867800217786782298903667218071231005311520112357613519444012657471678867610280227642276556771553781751358347869495590458631373864674060360932241062775947259199156041875829552345536321128516509573118026385455222315382969710466247793804996873219084217190969925890768377022146308505359971658817199739754492594383649358968588794929914469180370352921431506404887650641013643555684129100346016773841163148199279538133512297804737781432591772675766420777884989855886371125500689749176536980715307361816759233659011298879831543378527952312360317684447687093098449277328312025346016819963380262227483600487888156168030663575876849664432381027407359937206957266156945916446695172423155221038676326705508619048703277696019658441564548518602801256257298347184770919006327795107595875427803570826643674433134201276858867922388190691377596117282180895348804647725929883898780400425227661831905106160443331516576235264794518208079164796787271998991179336479253010477798917989826061547155166110816471654468242580153998816113662648153159012410416086984306408464261865067858622453151330308752747680181140501713215667538533553679041613932178431426831747639902341855558510333414304428313507608115217066996786684210253292920458702598107849569795785900176984340449637892846679100207012845561538245484899750636556077162964425728966685666893156641559773443806811231291067755897887748604198442528904661401579670839386858851891567575925230051948542937536087772641774232513234043052738351295989349381141481480257375535003914096831405306997044596256909263222858599051709719536799101576896477263295444798588394508602610352757607830545722072156731673145836544582131150617327354555446191197591134002382597490861640905024970313177651079879960309984215159661241540635480468718286256860703829049999577430121890364395013848130431305966334888878927833166688591161768683182919297252447268756441098349821017568754500403518528689447384375535528601186495109295791686516487242074288999690718947419359731066256585053998374801059264912627220488019643341173379544776247417282903692261128883435765672738629899889559537722895988538435016535604717159912727004813738571898590423134874152848017272597019657639316145336216011233342834736820754533070878386490666724347886118950450291455560564362116868744199195923122950410637486884192394796266887487530255672243582307221287954107686435220719485082116785248004019385149431273568481211919526511571274471955956942703931954369705768799044298482602523999699477648315846393630250317520987125962770789446401647495693518565095082714909002922027512044548874557187044049444308203672280990643810755141230277120384100051080408149321036336017079185531721433481232364542676089756474446244941276657679492263281415354970442597191943691018151056901844531513375530228025306514512898659974434102718695425211152738058220937904881768946895745017312863882833389906480132765762211314439960773468807378300070323657343999143261446591793456128070071495640005799245422759410260194588407806567566847995856255066434008161746375414468209056982850009033758394846443600266280787516569505325796246506118479617814831105950421374904513471157179981629989702582078249918377849458099956089332596698309460161211006765072344541701133457572918899014315940461207630807826044333519659468262778697565539763627854380612320724775623567730587670581981274583236233696746724622514633311568319362732577962013718202394872336045426042010599961458625573629380651436070519499313604491987179866073086187330976874770784032818066151034821737351541803206311339729868109410803943092894558910068989069430506158007549423128215068391295956794634862890606594498192860138419544399283894063566620817354524258042588982833403050459212139259216315401534625854469687064868913961436515310503274451644887552828610320077077826826743857132050631473811214371889256873993613986306941645012180478427708278728832795917257769290853436691853130834622132219820270791349692073713393755391708732357315513389915546340964630345894925119454837294004539827988087720064416632070319408614123866608490591294187615125906361089221977125922399339870371438381235381609368351991011113377381713642530516736108055640363321651120430229875437633977806035319099545183283112713901773502415322430694355989965721577745524459583224132151740063837852786840297128061346130625576849613013510761062698465258246037592389708665664902460514909117031426627189810142541078766002954678776245831919015139561502165219204878725768071400853242478723355150128669349458323475644101409998064746402529650100767376271593104865532632826028108505305295736832195134652537178697781185013100304417222449795257654388144721440266681988751090787597691474189644855173508823806946315237779891024934117505069807063738280905093619929894740472140869329489054782278441167638757135595000690113497267482824454208710991732232560391143683691487343461074475313156365460846504080008445859506340644788517866151912172392836485331339095772158193920464342213807447870066907072937710301118109755094253896458377551390746068225359191118047361461742653081277312879583779893731659446418345642083673195575681096394526486904205958693272449048090370907512487898481278108762789570270047807140876512789128656089142983369677134768148613145366942714482921593790391739066163423177340654668284842779436192776509810367840672018701231681895053029081581850256474030577322626612124532833363722828927818176561932772280491537360340334457138376618145425633789751937637295687319551115163156404535527865215946808994831659360451837452429505705281910611685328117220140856781557573971281985691108218331615599057913217974457456566004481962840274619903973991923756424812316294703530920111930390427739623431364251919458794623401710937143067409173931323725353565240251632607146038371007689548106544047049154272769744894689772278689122145318878863539779774055480034409450423645539828869799743713412704962787968731875152318004227137824699601247686441098536094365066682527234549154012045662749175746481060039465465422735027884053481962891758421679389798533398827838882715810387471086199113301469110518003627993453437111995682857552058136995773116473912340839008750059123935682797696170278068130529399932118157310483897171069488475952054667177830702504314690927279966767152135251215055005712417791848815969146209054231401258004873104471160971791946625624627586794769382707480785591910842835517842141893057922179574416640086561379887770127939024207837326178390648220213665756043048335119085300569182549358950962547779321927246188956584996923460389374079251612956882172122332720041224038055096988078812570798163079124402918486429148271953111160399090596483895790211367833742388363333283981288446413199774100451283704888056561884180399351993171796062172355517204468392267835173396032076638693119520129608160688752229733840276418026673961747102795216564942609295633318743860959287106415875874019510237130356537044738048235226237201170470213353837234061271255991951726919975638240493330339352817121071882930511443188879682254834699261538769875493897532256520101380519502670420289125038895843674801716289793965672286935855613397375827665317339379707808648975475488763273833506173363240549905507672275448289919643940910104589612343230062109370153254506333687934973348997130405335306405901147821134205658629618004085365394473828455588511843131838375043060790015167314346731940675019571376019659479551285483002805448555626068386358050182149816318346520926457756099802205169834548990603632156923660270911038649161487246302946170516210731102899556888689925787351308051247230423824093432669278321417441465047069750278395738640801745962676970731147755567329963545958445896292228534735658014309653983688615830499659077276634503530483996350790280728339213574777808714307565625358014650026503532750416807129300444719393855481043031852959187558573991634241486095618864611944722546407386787983630007831647394534167860353527834498499463044052478418507636110828234759158486518852093338957920031487226828516637645349993839491860097542526938552233330220815873589623418416831397882331730847932998915968789245369980028912498230694388884950832205405672709085266033872594262363854165613727522474301772639630181472025247308687738595944581782799359025379007856489169583428656226760882750010278121690856398619551427798369185196908350181227010576768471818431907065604697696182859290240136553335283509255589595080250369470743439090148347550992013518322617036453190367487178418565066240305201503383103545949747945834102304999538077843572425714570393449986664141150045504824254143527427386608895696854523524020876600808964165899318149224412731566957051569898976482643172953286383050031024435441730971515441029329366982118449207827154988395063428512627620527410486524375414680119973637430320873907147298950533371594899861701189071189630797570760671355109036378832476992290700367265877851941233159515753177917235044404033155394635598675688680696463371996271600332535163489346067410523979317222619530972847707121709912484546302970237044607272773496483845494894100228011913217646564050832002290265327244898565768535514560518483037764069678265783542857603676922026062112648387462424045967261960447343238257058396661924767265895995038478148989116805483709840237796259282084097492105936286884101509417486713924684992557296740828228464115915587228885235089757053423734711074800153202615239680297231236448716350904244014395232298950755644736361178735393506359076068891114072475471319465550345643385319269743513110455004469258183071510653489864972440167916494839544391341411737282889840208162567541995529047549386235507310516075840903874631155751447077057271897608641477430575937702888479292589949559029230571662065835969949303125033537813437253787704481928248518895126334355708753006450832946609015852586161249523841718512154799208305273330848045526476091371771365663966511115223518711953507510709651995938811911472619436908180551280916261082328337871277897870299210222841703061893252248524897552570233611670183841660953996168171147978259646786875461184703428747885147578787194408771862998715569963607900844654937851727778918040446125429923232872297720425689300551750503321042485515555595599157814610610072765386934474237186305016621788992315438125243049188969599513346084219921569598365913585567896893733445908624783661107044949508281619237226582539643740503658173918049034142879742671914243299637391086516315444013073922441021972931959633407000891647524530139196257361134097876760387102763008756109725628765094405884674970947018065784111975052164126596973989912314568983705715809688107668224792278152491575316045396324544689496343220356551685718379076823816023346749489053659615554041139767581973155038311027471049773734381706863952681975148262265813241371908565997126248375334839424748882630134106522719726663960933054323608972077192934022387098119596206341613888591754589370267671790437384410223509580100137134087226355645924886858162707185115316297686124263042731304994446047858427837845902295305348370550535869504756433704009712775832089227740930029325936640812321159823757404034388898280010094623237032689285281952809262466011246126836937174271527662850926118114125209752079972262571979526842387870544362419926533427176661483221497361816128629335254766329231782605030402371749312155293590859609940952499756611017717827975282847589813720876656390703357243220212510992690899325203297179328500219184669463972487972065649387868301008586696213802014238595885100503057210607298243140216167634867766592203724478787991202978157650523736035390141070883533835661021604052517218538258633276773472815468807788296050998499959185516960750124045385650472987032485570141797376295602053925042770754865021713554814768946482980904443197444007373763277903836227418173699394990923176666558728703693845739057308351209911873250548192290816128209311917352903621761282839659654657006732850220919537909528394022342365433986083402928222096616180478872637258337502872426430528447670853109319376272252492912612483139217192442177182965932933300344324482970240698424247631965078842062777347634128093021194627098162254025452821257894334928149983546000136178735721886637759276445562795180015872147276668526879936150236135821903996163049528108194253537456538031989641949286059459072196258446585912733559104988267636404646049203871517041448269596938648174921806863685433937837329546127150873744184064561342223671191659724477710325470642871643411955276180615040890204997654889098753953049289302608520128039246352452559618649836802907103454111143668821943377732274135047392802239958139239019282421153902046863192048938194150536093547157637248428409319192632949410069644219347783511427509024267071057262085564171913022858255672626863594927632086797662672319047391692001673978562108446683698520762495865447095929886885632293465213089080999229545402528869644619502802509762338846948692679699897256523566681220017370405737356894185121048286939451466313861790975442951270245351310172816668206813375907014368644233772678984832392581342620207844147065954020984728834394479600779177044964106343537844707367414456319010793207831929212388668307804400444023709973402209901145725383545687247203652762510274467488379759020710341523880728774460175648995935906289947675838796422147833591309853952892223690872210243955737235415463894594820811448402768046472188531364940205146740295227483528226414859867838767626796685095299578912638547524318348465642195314668708569683197860710047196121835531190894046575369579714252964986274665153417354322897240801916305949963161337292078939266690507656796833385612925793115400090509192033127044433157484859929471195033635225521010350961352465624847869105935053397781750315524255675040146319322066122074525204535071099031362885209718896688036502576077193076937235781683447159273962952512173894436925608497780799717708559255454748118769936475126544013217000912660037796014266636988845146306130940594206552098050514412402468937163247211965377787707520280409466755353256349169932974450664707391372793780109850318589510606224708111661213671876454348296867534697410407659872181803965914673752234665252300880340439596438506467808612317059082024842569125056079374020924916413436551680304566077067637218578406871223769852185270256632668588369934936381905038170616662194718353167105667758794405799149943555371424432971594493705847090257389204795368590621916093811571338906787171599854459240242676882327517920158582307874503519970529904490034201997330175370837022393600795115162033445923026219526726138315819396043132535341972523577165679577573892044067281343807448790582187437211987630308813623512068790710995191520217238318612408599106353164293178362165822594985047493511832302276682999173270317895530536893483077585315881967312904966593585331294006406782851329419995956090375476964102195816675858094549902406301718743997923034607439095092986088950493355739186202631204166106476451967271524191591099070255270165473784523930344754716689576748400154779243690479223112234936725862499965731760595718023476324987395980704173943019645828492967533460231491359744974472004317261209127390287972999434002874593440365463988932462192702054249399490282343654983838901093889002063347373130132249674475543062836677153004638994845412582369165295031281503896475286253357817210470932746118424077645930252097835658253014312558364952211575515888724533291205298584593946434960766148024526944466613333413624716624466005149325374290896976415274718050631819623743816386627154153598261610569194153882329961721342912124652366015651958399479637239919461194086124972631811001739222356419878204827937382221949255997113129361102011222954339914692793973722798047106384671904712930790916585322782724333711662318683265486383921255089598174666226092452819183760756344165746129708031861271365161594164512116513135415031668147219963605487301882399221217010404180346857349343875593448480201998794840687214283664133119071972192346157385443729104143433683948109384575925238540024483649769582426332159238642775624042751481687864567079553713545188143826382286492293031055912309754169634988771315544201736252940809193269302055949288457435295968281971085420176581177600816208333795520403302976950421031875410175543404632514673874473280883425762971006969570583336765329804593328649692208360494634517115130156035039430596491519927299054818906048076098756960633627192701218196456795436489900668543241706967140244650496624780623672462080322313501553313029996450613115807248131566282902278871460898970970081978789664382754025842694859153976440895519579771928373220368261745607542201145530086735811446062968493859700728812739294303709351348896884847285919899179486931877940238863013992189009808749754232419234462545006132111496244898410399491528726354635746050321541663373562091090885105220448632095993031439112531104133492902930780909761141009325925639101883731045895941102084766562694994131346800075706210374834608576022860311464123105413195360808032842028139420124703287575044446511672825886573121705589681964113099418697498080020710251165291617336705257088831150714636564188594228025911830942264353697217827361145460628263130913399587751224404532371910181792473431554449585583776147233730450503667331696899862548854870498750930887463495191426573549402302344154267225408160335797255772530704937042187975161715414693358959292183497043674869211173717711642799794704259894727297840736227376397567299843407487265607614485298428902979356786024224831414249575696693565898176597624825490425874312325872524040001805541393018986627421498795557647005200642770769657323607912667114411100238039934506974574215616168449625707031795646290129672697661840453501485374915602076384927841127163034607095386156033864289242430212817957380744025656183073033624523772037716320760136090419113929547305273775582884035943411541345491221092695627928696324053174401170603918495857641305815112408199910851179972841800414207720666739509484401188923593285968194990908104112967310128039225922593209588015084991931793200852001891113097006522681584365117167000726316671426277474301470744066930746857768087188885121711400556327902200040253458394340723739350488247889273544485411339060356892271503750225163801972738914865861211786972771869198971403976398216158543995945679231361202003361258713850920755098948498567530002269416664021194326309174418799934952263836544351125699384226546807504324339299461007170330332939118552889205131979177233023216596475293173523174887642844978391754721140930838139302044971532446476151505215954248784620579650816412074558875603435800279932983997472871824717046218746957057804482095541404222536967341141826334382980232810229442862621660317637044923117843917917736031325992367582704284217858190202070631221302871437929790400053730275228729315640291405710789716884361069548097850840843376284517810154413901499498251088272552802467228115631359515133527034358805274827529155004044559526877436082174380058664909451516967512359967569086886835511960224439777698390870699999692328378659569339788680690734777016951449896408456471604596812542848288047576410654768285273355797624037177242102800105659001510778749892481203897614562457687366366398895950938634738573905846813425468036716741225476137940682743836042136478690481188751340405803815067416086331347783663964448369760199358498572355409157103005245380823403674778966127369980638847050109926007888778077005454311309956459571483263705980828177995811483797756286817014874323888884713896386246266223684290102796122704468207238900496594159465185861054058468355286593166326885193563052561335755621009447210064153051561259670992850755389572489892139523878988966506187086015750540692515009915293593049715566277608512729302407208308259208764572104900033934764814383948796082801172747786424791181448989892833436344136122194476634334130187553031066266410300682093162083356645179486409882674803839367776377139038725349280491765255429245279108588610583216273282394208772128504817360729976963159384539885854790635469209225211676842581414891973972484264498923306944381119336650884611594914638449448729969754862213556126882661520399383073029184421287548379445202751753230966476973655935140834837231514822517721021780595628755250771512072025527844794166786333357397130271133271459014691525777131871396710540130359566488070904610517510190688025484567599011464310127325844668861659618070450037218419220948623482060040664876473288969645495791394855763916624470648329550511985899924320143754892688917451853796242961864512945890255012570746100767839869649763875633652849260590950451333200982344808376187958520674317084813899270382775286356790236878914769610768623333368781497312885141344883372585989110239355596428368915339856791526835970888027428053788663242394801428613051986069833995601530185291512451062623383618270778804134335720779238554197201965790635948384288885596521959948249175329738082245558709228810660057740121180531511373394053299991506984823048142575346752390701202940415009141201564328638491392427035101934550957245605811696374846229084951761575306863253992214683481870569393844956782162740780698087259165003468548366540489068590277043645149317005035191301871261352465969953217933591852365507449584929717629328866057820435189750549720013001701624175789765726108321418888824336356468894388328791482315879488355648509900151666464498295311896919693177949443799991693532971865846115733192003687360403704645677380170105815880611494663014030591821184118637346063578411264834266404179391613133001529926207044188257732969924449848047530050360793768663125360942093188085571289335914697833109030567643876172104139048623538811376651660880399535320951149430017899032497064491178106944019485152043038731878992260276346967469231092032220604708264316175065712931787838788623383148200135724280450163490992210923890358467994084408029502895334760407975844849092254855211524951556825467995079718472028880091203734685057800152887361345145627098097965969727676065362537548577325281582149441936510371672998263545816599571301240824031368653759172896180626024222662815624138161970317536590317888118020055841497446853862076942960609540267877422372262249500601281841262677479872335402048047253528952632166782692808886278593576772708304012230506800153555838210105457736292640574175357649138392562858282149464476093576309670160330488999336242997675890981735829333627835163067079348250507275381122178213673450291974684755085593586665232059799223517797625005619653159788065116575600105201779887530261620465553400496542423086265388128620933185298632631125892313992102190399998027387679482480550885454575681616661175401616609160081299605955092136197158325148026604242240240350890379102870698251092444534093293035428057133386381387469811679080945816089043819682165740128999145119166501196550710237927344074335899954551687427474156745629314099310329786368767561647086509570798507602768936134220472984643692985673514911981399736066645710966802495977752209346502198582273627382880702213350460956998780943986886209303338595776080877419347631977570671655114913204675115263515260505074679261671290517331117519871726801637895518249122436617489950199419211421508226017588603635742348266547244006419959572298460849580088438259702638624271716908513227870451588404524368505481499002934338877351650532225095971802654584894981191852197094048723268705085857893016348244318943945606096872583710380276317092143633420231983489992755901357056582572212450995646680871271268461294326331487474465039486266813197852547581012404039487051417647034480774937699422012566879460141074917998489466743719095853232707122808553333106800316821052426065385755429319847801697085836115411456002174546728574541925308517727335728395411955268628598709961072461229475526013062070455307526647100233387365218078607394351294549361533589904918148560842555690322220156774666913540477224435638007078801607154056712621350979461580423862939630009721510550649289938428690919389432915549461332188692450093160594507481026079280200267872524504329769964916889044114660060375732361063278751338375220814642571766075063084142739320382525202985832272791355712799686043062433930059471370581385253626052730762963961542600887952357543525946149276317983426968863035059822851366652632824860331385646618745866333643393940896247742265151914817196902447214354465088512950636117929526619991834079303321825014201509309718697018835325834021773985242147068977220821473771554786981086926659800070073361271390923621986955299456260803871330956895602534830702567084043420289531008331494665318145401915304829947856738938117670613785566429905777544775621930407739942067792629620417155473789549474145046459292070610283312092292274812324988753074147899214850876453240709870666974997714172642213477564077986190461848562313670586148165354371365544513792863123824654182266303761055628598156885113991338498525990320617390071567700812511376873637613962612688256695909745894466410665224836923596204087738789561320475723674322748256089732468678148855182320318735669820378894681615008691341523637819543297154220181345645417520421680349333312801132997836050116845826325876806892776800148521741556710940804728340364305965334249348094832188088671535456947199765741689355158585153178155003892315453572947626026729170449826162240815845901170081832661071996627295311896814442587253874253303699801061370101070909107780571302408887789686576084020368808765131000080555500295102001837398783769158218532800317565131895118627335647150495888263128811443458555896314958944748673685714809876339934102867370192448059657574971149252451746391252955579378615779031887224054248295471287815130226469079275073852282803583018806142870374900050997068324241114035293484838645474817800132021199118166237674220137835744646161769715285306223548779498246206048985826922646107614071214244056838576769925276002427575574492745986229631750406462165118964053618146513066975629134452602864057392418494078674868739747687438604814812354768781383900637836214553885083027675523373558643288658273297415929649022597592542820784095334481027288609220592477860437679171206635544996825490180758127989806883063320218462822800125090407354105425887712858440689838796396231302921772208142325948386917277100745538594973167968798281067769079144401531378403716711562724460361086400896410893339821433761127104145969848429629672730885161251897433519469525278705085854537579924795008520347403539427009043998827487321224903051993297250601222506274496030617603566614648455994814458628949471797475937726954623638846902072138629433619164596358810622073745010914240819307669544815749104629541547397000778451218712182413098370233073796734552000898429659835957070230378723560649649045857543443801603354054159965199813220602498388150466548288410542373720292914940446210967646929131531956112850571595829586718450115150544843832974713788198092229512526929485243975329339362194791244265391447501441777035987196590994802399705390620974824601037474800675665532929943589381940232253141934380671210471020607850961027642006307734691302569307191709351170265857170353615100879096580295323493329923199433772900520249730392360753839787760430957740574778088723940458540318020906872753169640197705302223652195674709583630833329853525708659541317783642497791513067570192274899490955609266245660999904415201071665466560560203418209767097680223069814268783399885805056293535715631331389568192222449768692948641577503969938312838387020926084278035125647215093806954644931485612712160230836040663345078190753351835732606742654788562569516784211896719738376664417332794223908903229032269662174446636059797861370388222906765778282922308937584900215647753352031671086831711192241882902888472740948391596406560346270244522328418597481244691932948188291514775059462714515046995423482551193807578360086910534283108208644810007339361352302718936170634680747998720593743496494607603490860667865687001943073493393318443084876265332158683238348754557669617818697348545542208768584223415638810473262827819451365468698456290817905847954175140411237249204155587045289428553757429188291976873729311547730280483040802184176360440307217408211712334726326203485568439273202588163817525203204924678302043857804651050754528454250714200419761434671747385253573054011772879907720417478088580816173157731962828573889434287787518686696936271172863485341882940676635135087214553606086873125715809940170501357025425887957384571317638997357691512711162377794132147224622197693644305642039657170157648031768771217734477187561576426185824014675114728452863428062958418652153748239883093790052272449458961601449773983442097022273366159644531705795008235660250853560925822135779594634215731298888003286822896799362120585991485217984661838202884839731797189270915964193444917593487389000427328542529717066607200554461785482392716990441390861816605957968573195570112953487356022640031259968400458560333292991356215595689227226911736622193403216570407095104987589118471145342650970531609304873057257036812254694890551064229043687914120803343249198930431199575953998987063254650694677063611483147071699861099641201439106042325979448242928127168678814255629518375129180266077871055993945323949474887194342979734586091054635058855402115870717153244801797253174725673196702586247747489443207007972574048324072809406921711744365454857952991755288133912929794675059686967977085189184828436373506292381116256807709220296774253002747028155970181870010700295303380153725266718975937501265005951131531937970965368735960791836535885851112871665457691365843923611415045477379743866475283110514294182686546272004680093755684981254774866243710075129074247974509765630341095228808031989100581045599515944631085292697846587677455462777028137412857257255326620757587309471735208748682078114450440728589936962092983626678282333109162609196816851820179368265651276355955822770890707885224800307936156546579786566487363060615808722209513907231359515017121272167608957973610425111247235978710076202887100135043235449872062672628564279668528769277825183042766918963700814612296362056014972816362570856344837895412759311459840858978941216628355232045019270710867379402817903319731092734790765226936977748026706449828401745121718893269915242867637629529554988355300290737214014005850435264468079316298696254262601884926368427520487633160359032839377286366388247027124773218534412837731816132790163411394141621512900496725991309356046043027088293530957353775914023521721962251547326946243035638484381672016503399712380597363746701183934456680061532765227383879721250752502324990061378085678781939625177883596146429668225430260447013082455130742366675309939889279909764053464484677858453819278962260082079269781767704292905451702224544308637641363139079199463677862180421883747370225412730786392066667865222099096154743434432306070348401144050828758350868351310766493273157803451975040773260716517730440578432021164577373981941374248480474506138339646210068358114149453949113803570551387072444737695844884634450136529632826537737081308717308339606875776393831650852106382288059428385795961330453726676725664840696562565385121183240355417778532776536339918458385617456125470711641330108132194272033160447879877192223769604723857556550894986102006541381478733424334445513087231918634302998498771367496586478699831474016974542876865181986222948029703943352908913129499526657580829917627747276287102638833445151026843594869524191001489711074460343874624419653954611109613126781030846144187159555946414760420160459173592530848895148024577372098410295614260847158988827870972357969742156301037794939887656754265417030728254003486440949578143136423371356912760243270048641890050800573879888552227500523499297165912271174920327393370428256959359360112303232513451823729431510688965998922457526011070886506533407831671998316887532459961831238657370817166480452793130884486923972864943733611635141351127814000261894490063292034553950171590733682384531451921403118450432543041237792876862125796234312431457082216091590582223773094491954766263320919783251910623265625036968236081958607929868606052570920563445676802575304128412449787184262345955710090687446075328064113527148699971385126121565407478119298825120437071106417116304712073327064185636688479446375604363230570380997551514584551501260347587178997552156047683273596065276368974031179294726552777824083943999326459996544116575361112155701447866886931766302974593687075974947080814851286294021596275980680597383928563252719745130474963252035478344663232108380176158781124965432926676021730614686931396288734135433727204227975766434994009879668365512790704655037911252790576961991345280634944206915065460576912379514387696971816895192087382048123430223042092423922894132501198898198217329981749011503599626294350256121692577883759561746912781322502182781882659944814915949284853342564408479280909692364385614771607755876619792423886578561379177543988465841839544348126961847148176111188723960436043132051746585372049505991954135077008170162476808589248069244605596239678462320617851445267045461616050708722447086997469830880668995077303265335027682465309768238310588154301748230169159562466020271970217955122961372935093274603458836415381255419910284450430132872564931132967598934819049161693703567476608827395689153555905954873069033405822684272156084623915642557306201234877382589363769656133752586641914702471700271225265758926819675652793136338233332348642532563367554167453474096660319364338915587700726407206013663093631601331989292982581710090442880617528915899093105051452659636079367541339346780194381192705998380438850262957509928345508759186010723099487561073866393840059209717516973338402745022686165108973821383013995778182081577723833883376498807712475597942835954276052936928479920511259155950182700318034742470916492193691148781468137554440554903046824429886221591032346854912980915453991884618583810474371656347524486796858528804322866524662923318706358271827204879527067550702925826187425482195048856937030738602113963548590262269497922326980258400801905811492398442454431240647500719860044474324886669470012027878282011475368190673217627288499092611762766858496646318683757166630381881124429531573687028261077352527444802324380107556318850222142083541406057773320494897445577408409973513189294044465918104639315713266155654772498335972155961734204010802323938601499015539368609491207638307835494374244618414849113869244066210780402816313682480317918544929199085961460632729959478848982638093837165343516484600820526670402971523957883833042383105460128136881876832990637557514005670178411780233305406300311895547116549041558105030632290088909805182799325843396287210991701226365739522799943423998183352337921894332825787993251806655585376707236613049501260308776441885287222025373848376641914779062616505105250482559765833331661848556852483411516854560157844487309905480497525949595482813571624043384137846336413623113276307681279440247119019898729421681284178518142618860405511072712520316514137429599347966539370899148806610822395486635345140146353189263669105717923469920875622733052107164965543814471913481698626219623604530628071176873070112991699506889614499284158733872612881348243815263246215277917031711896901788875837108653801328395853449551997825805401836062983222494783549479017766818720165213292743797776863273344454720307284140018841877320185760146458242588967937828742192691479325288700763321364725594065940296494699351670894447090193210709123700158777769672057603768094383598562985616036972515405014322335720642480482329736756158952015067267957407619359014245740156031762231886003370463011722240946328096516668930592466500047546183748134021600030588754026424727154749627609545913451216982452843946902306946869650358644998304654228513047893004205063684784808196199897442063194126602211916693416204536996841555242561369950799929936932783612299511744538622616232083545016046157967353678555807272349362807938895120270078393905189370625030584596294843166482723536517983944433994136912394723392090667384608278098125182952375863920588071295941522139485692026764009179559935775752918852456900555353005131871293659034926496398555332604297218737167612973087125372530638600070923724675452212915851589634464547627087583612647954583647860875623352826821243444607997340893526381955274192568396336775305519366967280750975551106419070911404792509973280298714912933162857799914865904636512907789619256292760630614547067291794617366630697855715062718255622098883439898957560745147687751329886788298487483588354774699382573420937474316935818382904397897186609062529188781374697807183172165851441987321820947929216257668757799503503262707608830103330212413093245862136999754663224465868529252885745485327808446826266281158290132936827573805435250873215626042956245322935898515512415088755986086644752380135795382717984988416343906336867123695279865255126860317235249569143930197131033293254956341263269611943563119357314911333560605164903676402693953584477150483387072123115724782027254208252308821003725654028505067337581659234382222321076130767840677639670212634716357681823391654141307774560860486403526651474913868415256032025837146710137065575087074386117461861315605129930922041348753167810004067207154239333826494375818062109406896098217430907294538719774087422889321529166989203668725368641192770117081743603607132154779510286535433330139962092829326321786286243007946542744786111240792851884640929705417683186844586445325384213662644341960471334215271321305713480219165695360077261245032559323355582233139070562244835768116128823257456742245290929502611471426227703775117199332807642209651602372870869907766955081130419216516306180732980801220528617731323741694437198781126109470166267269344276115810879723811726551001302993106378126721034447257565086946261371002283955598885131754818783416872033821940013376880575236442538793427732530652844831886569842810260775096316633233712052329517662617983334894205404767813639646441372799370294627470502951964486039733469008941128407001731956040796372430633185942199206503626972921880978506032004631664090239429182080327977007252438035595872116579830133114396007721929732179710273013426517481211033113308149338922700159896574646417751537133991440806188550104852144249472917359761715182082759484970193889883607686303985753612119645149692505824044021895757462432667804470902541958194726872003326696931233923256216700084937713949923077071510878105034622239271639934841458671409741804777449875398101455672444267783324823828646773689560424734900388269090667893675932616902890362060974294902774309461957739154050874728640432889165050149826555699923052741256714252093361976128071902960993942657243061955706727997021218338353379616290474645317051359768576675179277669547523473596444929960929282824520597245341220672846502471928383740161202848139888961021399656442059676817521174255386024165081323100842922757066581705826136605093681376728978321673884578968220652059113050859398614940850929905750055879173443895588787044015220168307293542988277826414988684959455011621587733500840991584336888587013576118987426913553035038473781623812378704903734465581854320328762095345296140295822942185098698395517873682851574691422853977542921730788473373124757099178125059627524190619351616791920581413832265187870112577300156651420263684915701971054188824071985736071798518847654971990491850357805160864629517719558616049562681953022887092853750316834666663580962300229516586500266147221739256406998414379374894044290838735837604443838258681343612485479057270472129158247343658947553247921494035323280282105839381269954492132979230724317560477001755120221385732453205464314261588275643517247916497981584759420806550604529781958021674175673967934139660542987065433791544592044675708783361096434805790863965574902862419399006059606121827637419034456775993756085643108821485153282137378897999879692636301533208214513493543266860968160814478626958134941379383619910385917849419671027896721222777581243590405277082308110087543235495899469577218948112742500013448766001010216296069285710213425904656451329367505849187016262432913059799574100910578656865819829948871253875012928219810344215777757280953246472655184607154858043984097398560068033292808037911194032459137564401276265730896877867397679088053811349822304783881819476576712246446025607431932599161445957446080897719840268304750396013874818095166858781273012544215530629599438102558517144264283061245534143517400214879969179595573732166570167133150596629122404933353537765924185247595469848162745495530223723157918580163631046476905055942460236669913651052176421940560939619945560579283739304756277019599578059850116922078124102167337375499975627832788532154722767081668608714419102322984221110841313928554742288864930446187021628046478485110852811430407251682519856933111061401914403737843185648584944461918538946666437103315987874799749648234113763550235996386686371555868205464971666375063779734400169198393317802299005543091945713001982970970539790477105934977496964573305339205576084160358913972425514277282673878558596263477402200098616051481177021901201874879805426346745399739817114376292833156978539300467719543042742767245295967774965823527505704684037582641911464466650548965367332586744222539376953672148061174474669255199324855216699857334279439704476780640005544084693098895325953664159067171328065638697103378406204135724913461310295052225608117806103679069168539073043259294862662183575996184579291603527328526045582359659573648403337363352619409090275602846335342811621382682205051179741569317933125905822055673759517574428577459222354026064306318096352154761450470664428906256040993226567299165949472282601444462451909910332488088995427123106985472426146692343405129595761663471411253980928566360091886635370713675143974014041812621874219764930028350415266961341600373164130177885075188199438129173909864563416197974483217653669408981067328983535352330328937499890713043969058330915400712546898229530954879435986288744639600468289100838699528410823804069931749795594921505807417810218191461564773509488013438596757967658099482720554405836893411365930291121524313161663536018453952084100027962259053393336472325868351461155760972903225540282166444463420045746457216102725463413638723531451502751036016259345489678773102045212245646652426651719304057329888827221237158459982599289586193904106480138492605026966597212997657521442705347458892339671406358347759300064401781863223682308854537605093742315027388314923452911789326910906501125755156933090050223386876529753699165516269364705286912664104189483201911230556384481098250006719589717218133210788376305027637275225197422308625221104530864675185352613225190839444008657027975981790687288273137246659541735526556423157753342612918766364293264301615965964429711464873016816562390577300036869711948280493543897968733228061855222713795333925170950818165790224193576926927239671503049083864788658235549301846577689823056744721796312077221725513061824473108627960856832014035660927757333349497959583119666177220364671901507296825774633754344516837678503833271190368460919160931621745194883295525022620498874395781570320564717975065772081995595356661923833914155466527846791855947281990399499685230784959896868091877968950709820361593430982059287236309661148103549439147426317624825407510384415579581377014542816340294586977822637620869739010841538532207591027467580217370170358628196834861135772676109948242003209348355497250244518641551508824830096764800804298479321072956195617331640252560545655041723202038174590600635548435608298834929325914364477309181197555615769045829613732757890922842165499296996823265312813284037555853086346639112170219420142739052628499066305810998165756766334398196595091194365120050510371166277768291194430035126499323957332412532839134157760952202314552479564813107031805901233021763671814737711435478389707650393364199257350253712256977522360893392065712705574246041951385943706947466616584572853037625203058047611067851693720848702370989829644100040109859066406424498253444039973499897128201673019753456968028128005040572253168237635795284965935972344255582427098641434915397123399609634365475716437306058713016248675311592750857243087684301374334640074016092260205648630420384328734150635058590457709903054907459419064539464926737731113230370156978301472121796912010482763234902610591543855092473307934747231336843649664448377733788734168993540942366822028794958741549817436450786912496265205944408019589741799447553816073326501112937853927104082419345780222659703017662988108168446074324489490255334287178627600758681156699603137598566208837868581375400237680318718349464657489025070558932515745968555629986987077478512670870582943825251189142796943059205731893337671635401667448468049875325900090250113142490699040491507908571145987291288621726486832760629093848759833373560113400007960634522415055581967135496303905578470171721628359913785763764881158307244396887125915742961836277889070014861810044193402846509667581001204585974169474335970080802086526070731088585652900822788024799576425562778237044208690888579035750416462886102914914519691713382780554896243688494453408104563990547534987666793761438504315577678860406729564548387821836935985133344902020359793311070472645828646877394751277267656537141140015686255417793663680277402868017474348523495843407713741456242472327969240894746903656376663513691732187277582122732942901352070564667872803848954898228828389220092327578748691556784877763215313661596203416568546346428448631828693865397598309854109583195909998823072830689166271294401599817192250880467713875475645506432509889197342729956140676556318120991128196693369073939092442838525623378518012605650806408488122410804034868411198180611593698164949438698668500994775222454732604326883980136860386112258137325430906447409075064132727982436849159361074469700529415044630931626469396458608247214259211925881718257950678117531613241021618037741931733343299451811903282096497247992367621221723119034775687579092586457352728069727125013251251404861995379341744897665622974886438005952792472422257026693511937377782642846502358141177071280799503313089193250262559916730738992141166052982626939110622173142473226347818514707034592960932116674145338333318923782557818359966410077033960689103839246193626161450659893827766320604054921543452212312136976236334550236305842071934982202285638585255930240811110757260654517416256959367560098310225957797390235147379123297402069858692797039176397621795930041148040629565996442560019413216996956227193510439909950071991382779656778428988704715488436532395091721262671817766812138218867959882475533814348250320449643650276442177194504419282346128887482137524760601223669200084014238334461804968781588078658288392421289029450834671763349229914669993146334782581322875127785355298890340137411616508616110664962639292289352514559268242029299035615552804615623678397096327245321592193521373308713205752043351466227278023090588517072073299003696236039790133106319816688088175001090344357618057631655853870739426957968105859905257042034013277689547627794908145477527899358381921925533026733991420114651821589556259053641122585136797517855446243006772064604869431036246660978842083212730420692911904028424485961260304559990923281983519070114792351974486517382960484115218399182982161807531710621842830573517499148772030020685213072309054034722608934224523939701391673001158685391880505039282513968758627653025482533470756222040920494698185959062586059462594649749356940534367458908327386726388455998960008118858989405925285736063781927360950525099991971128894704314785552430520857739727957306820855517096803662859632908394165349377712054503567903807985309726226455100130363477681300981798445021093592812054176015603745610385022801814075600209423782182984834003755848435608151571151458371819720822749011845750358050770604024034617633508457839907060180389227556822818117156640763197456824157637447302038422232837316904329516204127260012388163348447526746873499882536865283056825297870723527506597419636514706873426167918307872083471694221605104127412860786663949669121135049989717234361874636384459502179308471335610543965026535016916256821395419925252264884856325353948316517188975434197945168188944198113810703534107399726268993153269524437188117913955822039991208056924749727764488118596033006184852226339426595815197841913604202656247017435885630293962245411436072607933655787517815227338727945370892848133984964647338737712072184915080395505475243719335545196135099836292024542817947564195365213419207093484148517274319996312189989806564974161598494778746912315795593446420069575271997820420116721381581487556397778836987137125347952383771381190714079609812836291491383500647739638564025271616145338551524472634572681540135136322530627890493531284721902417752743777753315228098791710769243497812189871599484719833176069577435050123112975383207757420487972033738502788422998714237015146639756007440985701983283122313784940249126514037021546576718922084734741555064727291595988889856810762007216529220525114055590511328434284268573123117085031779403101176887027277051847656158113952112659750040057572709281325489846941471791441167459478143703431359518245495389279325426490941707693917278088929663533063455527703944111416597947286756155911974633855873964776116472896382795029177615021482262017577460445853507412640847981839322049199658229485856666299180749782956140105358138524279461951314302572710232215443871647498075308890604722417134764705534055326293347655653075936717894283817849397671046080558014945387858489067067021524582017567830528428802623594065196557271945873161447444096647788081915914347000032520502095340239245748580175956815809305825348480239150434977998936082688572428463780208594674448103853001616736851487979181002917233709197510349800862408767292758109130006426277768817799833216582363515440695570964409890748379834818945696984612217140926714589890496668919752681963128821108476357702198221820801450929740113352756691764240150068251709303226741668608333884183414392858058032255679476951556306494265888825440522330540862898444683104595174261673401609564033968032806111483514010413181222640477403889641518240475981668553404231407374502251610458865775039439827739837225680029313554860810617622572182781236401663446449857841608957778182632397753785827756751763207459138649747261447236107467237172127814444542204128589078937297210082787792393951092076758950689862933260148519470433684393785340433515573953700489356260353129812650020259981172955568832834793816079040871837165496743083062337651867550969071700280061052473778650560395879882292892324391072052753098312028628762879267195647098615669480377072231373526779117521287762507872475813809876303888894679149624665911435828805329012843638733326169139797184583202709405615872928433908596704987814145869331752338037177229332305699241459558763435511840806773794868867195348755576753122539649418563911002075014502557278249070620027149985146100566765226684541984334132390586485318435134967622426868483867212682924114819434026850151212875351908809465563394588051099163723194317404779629391506068739068484579767069375384933006449118837754504133188084322001036849339767757219700613694519874788360131416574798081370974241027447840558346659872499040810695018580054049960533346021419828487598635323400539622178877674961139242919108930854770983784275296506450809852608588484207466691422269130316336002591252964732800888085860130975453783614702563414668351532376657614949191412979904138971354631147622889777952103161529641257861692118382165238507617126235864146538341955620428938730340649748111643812685960937559840280761003629906430347267159203780062958499412956699091648463424797510280817825371119709908354431152411240691254197391132861099604404055571875897825413034676362132464108405037891250027313321680426115454045045513208123527633454859448186404769561974782667780551190304768684838187789611922517542688746650609039467331232959544649333352735324449718951718754528536109815458716094654164420822582320270866116076489797798415814040198754012410620308917558344872730342011819870890969711960573088242723068891853225922655041368396722054222148339787338671325175021837330299206285596767611871925134106930694077849874392350114870534563178720574323339304375818610878212144908762239294195559328920176257397029191911764555416682982886118379395908962203075053984075586605722456389893448777852559662540014843100648116280091891729699961463736402961937539524613664836274238530747401596280831130541801080127508503757054804771341581698922855557889004646908107906269245936193663786240196165799976349520253809596296049908061028737254359749701205955958924754517434395207028107738206788342981092626330872153727811374926109771106023841803994670743682861215523875154915314803926357113978290263152863772696572637369606531664328025841635737929100325473846017426846644227439527521689244677709208942464655237237793570489967989280156958394280738921475401109651828496013979123052709970740333672681856649730836112704890820867416410208687081772708932285261063102098229668784692260820068426771749182659249950559220812773621755534838427029378329822275332807747385299758544525293237585572874862796477552890850383486348015598773023854977577570897371425393427167119771574458104679418003989077097419084528715540560569778504343320807232520090712730401058256451146969641054448915451428628855537665328316755758701019413154002301326059773208219195015846541516780746204341892814025016925328564467218390957811886745165495248916073343844545969120064610603050162973524610913547550102849965769328691034445523713823532464268493633202750968095282798519479595122750247349456684812386803054924258907811650743986474154274991979035497749364821833020056795246884900195486970416356981767530362484833251157102686123269492837388674860385293652491803983096042208500625095239881814755460539327228087022823546368481239265154894826332074639369845395377387231054425507836764934539692355474940483255367698576991826789697557432849952402163568418760864110161243099199625252165957901423900558558654191657110501211839980151875188258046136925799235066544081343453880793459612523605225694566942453736210699878016847102638563381426959926118002305871311457577151817160361909183473872373361256640837843724935649064268373531815293945757106659058796470811382258445164917256945465437161463063597667858664221139484197886542905293265995077708812962568264587669331698930557645767642779313900262631051711958040814293869702238571241512134846681135881853083885113745476098235213724193211042735805218288085090103115695064176410228567628484035941769370169383895069680446610689288524990326156827833709877262408808748481715532193460266245368693091075695012181738490337565618570796334254643117015526776522462601825688073959624824191216204373046496498972661253724263996585460010495374489792748831231141754165966464799723624731995243539747620664692930892567530992906882482224253636794943098000957963295936550304910601437342981197075434322274990132660038839617268268539300686968483777462610644154516017344870099114433947132338512027943886875164638610834526757377288921418460129855087115016425096375084146182897455916638296058916907158824261310212389857002536030469073918234474930832734445031179975712989011478190063554456090484588351834686973026028014252417082578521010583201430722848088159879494709246607386641290191311153397987397711145610475024496762425994023263970973506847724864068298126677173103236486876797396761456511057770691017248178946392593107370419211235021102415392078273653146795399099438768941747170219869133589711248357574844476576664997746463637695183928672863611634124758941205788429793163757631142884558170869848688072055212039158323728203149612141833720643889450890588646954445727828601092516457605377579657692143889846805367582822606211084244422124853694479040017157310018285844419449306695403272460309882354596810988879450133252530140665175976672445628110017185120605791789889816571419533640875503696953511066312809662554804484710727348942664671689164325588151090038910336739156579897719206308530735427797599309271227644141004927988117630900357178346726752119320423113340924188696404769603493319797602528677887396838379410295119755485247977175656161952878249781393186344987896781861851351007083118221203370310221380424464789680862325751795048539143007353247028824791453550348658130813078184901250831172793604042690922366058197004710148993335586438192734693676285239491253663319916130834001028415895130841729865461305052235800387697270171423186103008284656014286253408837511140240855327136580827994409006051388756820343665548674544898752373464440253346531657270509398762871894977552752565050370936447063401864038896469456722274305975556660743397090464073657720444457101788356814641952797216278209480563254889953822573194774644212950363689718302637846903131347846013026789201959484851376416125861878500218346563752710457374105602555339612783278677860870928321143794238190725044122212630971633164928996257228535660663780726118572076625086184470354594664537188123698699481999850792109860160662579735408205383496364578432701981160032807935904643511406234793175969539751297944556950514206541548521532270557697769090723510945314686049996619329419021960971535765967440689545536834001592929156411242762278968669613998643700454046886969392570661937776948630995988814630836308856979382954216394950348666332286624152378681600670046232689425920719483225556156145739933211450404537559370870363344986570808681808558487114661936300134314860556101834316188743214555995327410845944092221511206182020845743439087930822084122269264589336046159557912254620580377193912336667497238522530621163083859135653143149077578257368778384026211511658162115665203538892572061173937910253389885572661684477681959063476290215770587798496747337482956261351382547237319968309031418014356099434158667306774137771753387627183343539286706332462379796976714848551060122601341981741748470230104701859226611994444550198028012447435759928337151938391338270513376553476845778868836408910143030587256465677386060673890823147691932386745866696334252057994666371396492429255220994334969481436783898034489306596346748518357297592646897002712189231474251364813478132937667078493176448459355377327097682867418878175950315914954629282010511942049681966218666009461323047841828899732432499686543667639618053896660408029059966883679028802851894616642185488819843416918988676085472127450959562643736306968555830891285677062799320168108305064384132586610920131047554012735563449016411235298766939448524128112953696227480734021135315739511155785772194462023493131699339270603845213948218769745524391337091411171022795141677299752516115100824667873350240530625143758731352583332258809435297942127655880809099624463036939181029206236596308992577053338911459821039952550151575768914473475463285753876952231212303912789188205400774369695038909170841562082690909932016385655545436083360774680616025297708336256424569335883406775650996361017150209145148110091078704740690455929741755759231129220632422931119778189006437673804638570507636063341722081672065017195173481694221555293408972352757058507368770621173726437239035421186744497352387071594786136026642263790114029857811039038757023295217265981353664027103107695478210606917339941986559154723097651022223824852237105475529012940689786532525900343755252601106616059588274991781223307556622224921029765113983113664408723503763849235241519248671833000610972262363689664782427693299186430017498374802911027080448648118427597987152007524004917892626373716233488037873196078367507277391452253001880668662926430216987492639778258462430226763221009931297562463588502923835257407205123955190854300409496531610698325376815311574453917700476540549539548523221877789868102542790886481770464042474261697630724798184454686655872838083782141757043071849438498210918991924959617691511519485233620977332465353736893827480749301723252002048903629786075564715835641637983956265423734292306443841400572499879431221955640223878578313949721226312931550783075248522738466913691357772615499069378700178309853232353696507632677801354821390121728590472523625105008410649924957145004534076093615942861275382119313367189910133666868532487218993959537289212561096909994187337272505234427457232550983778305324287404074782100980303260771294215674623967818700497374135939278135424208970498106080538319627036685263067332138827597468546798028991555996360400939955307362836430066068152150058226084708588576029925690927109005637474333325195918124297840640656016734716954812668711843645977315174119994379181632111890822399007936413221276832672157580308838617791893072625728058743350740361949845333082394717791670591547302153471927603913118686886281630596970955002474483972182175878122314940064624400775474143770128439174422359018188087592798387386936741200450287991827277725452489918543036431575054762889582114680830182036609694639433390365658756910960826709585831377505584185809438575505740945860359995671803037708641455050255758937260740453646382806516071621967299977010679684697563901926272801468720823578633719904677715860991843709522399732667870301501845201748099961243824295343475694370438241175509353149330270799308032267776025617726993795149805694307137788297675188642970791484654498847182157683495459012879792718810881181875918463008316577559518748615925284215397180701638643779412718673520192009850289149417247326930970931567049912876347131585417855490169520171653879155097513672211696837306564555536186119633358492393401996136033707186349332290795780798358346230722439941072069091441071304344682954111171201388078362223374149816807200060756097092630665117825528453380337764192360007310550506919955340545509403840501859472044162040224824162837392675522597281863541161197946426149190106899644971714160588214805310342062892501827684616924609030629090345104262443296825583480293032234448152155115292886608710210685662388912443460821989404042712027678566548853153535074873742406006481081640313917401721657277604562932519713332191605286695716132097673058478211985026864917946476886515595138859234854745636184669887786997811061258653135589794549540232932818064122870646211061288606740725617160186590264705370051805467863242680471038809741805154276783534325752322929790418099906432452398557403099410074450608909988808838586480776689934622856112681487953704328370289256134614582910352438317577938052738885378157654092576554124597548360369542245356957456141604580262281870623075019693629719956685427918703117117585749572469365196378703510358187918287887762304242776593353750563079410348934364099360557027526822399396317300290495919416784595327482268427010192718149322819016253673422968348502720783489833958959224984595389745840952564653838526497817041455972504519868531971971677426786999822650290783408306519714460291562196603451429575081309979171390309353553076167021771587296481640019198195043297513712394114235174091237344484549955318822311292765339748203257015542991762480183807800365377112834404302646855119446641242193248302344510215084647538552918794876701513765472609164234363278424270481982050075118259710532132343749455898372843990342876018835767713460057687338467068609709263657830232925895286364744673249214139782172251140444188300363516610785752581674904191798393900910649598962702694216257449837363818309899936884374338581713862027695034625707761160827182068899721730227555531093707999149778290194065482944664574005534725718190185079441180061345988541891725349768524714076875113241826186253870529752771144576117807138836457464063279281966331610388881908525405312362974231009423026246010515285885507665869436304545988483174597546507497568789676439008908365657077642369826957947890454503367541976474648013474760919105721524364920785023292511641708801530148608192418850005921260681560153969580762612261395896302898421160110764511557259717124146439979668837393467746432401148141191125192386366333135782187451263823328423361155968610252022933351872321986937236668906484747897346071007475476725030048727137401323952127101635937935961766897759043658373206835815913605315545892482834068479563386343391629126816604348231461438694677238093163546453969774360696634597356444561098575456485086640741369525650459892811229107909723475136887128064494370478484119292111128995871284792597861899804407253834438103839981721821920331574317583932642871947997273703007773180519249585637598971667450196265610560032591310130602422078025315843623753126916705588534144402449410052275253695150538524069215185343232683825200211167846439272405953676650244169247227910148923081473587846338761616120923022694643223069114293859500902736298196302160299753446307224606826219938615706481385926480883974787864562206744877807987798502345841401997305877261439503223849747084707297839445679936575688352379730987592073175151899110890310770993146464877637641244204360484884794942284133887858582563484313758865131393745388437141304599598427541234856056358378438085843600942657819846324487729206169731763602573652130239798928908898399657433496074710286787053172401143138666670738584970178261785816271642352223238294423238100428304164192358421126298443991978874391788371472691707306356252062692603568858737496190587992081410571537172114102369179798728274184621168430106249915975282972833515059632798841212527384122013058621544093126675903055423895586288442886516110326687867336770165802720929076030407997542242934067288653771077507709987793630927680060991479464104267907574182529675950439623869861965662804837279050161574698933126511902035102500705683202568618176497192664042778351520097025461882546971969759613359960860090688090001773900572702185948480111156893788942852000178991224539518739716109548660189459055027573773093598120347321285953018958246581690331732961576420248168727619502424236818850262452312494254148523010064907799842101074894733398372956743298975297822311858669529846747224788336384083085776490384661713004778276139237192580480027293054470484447672632983632204610665074331486454731320594262469372991131778296359341324700176203131485714673253080421771247347738800279787652099687055174839281384689368671088893154344649222123228650278729070240442722098456457668808681686542979333543755384413574189629650188953194708108000346573289692445187153265662674639623099703542288030120471844808775124305297595223943312497313606539965208711741263451633438770545449088318552130098316435782571598193319250353616701412870064714008936876696035459150179516736924290915248472179768975188395565913144461528221557498795670185987250715879140120155644017024333678188741180394554876667800591690573182548752447601273938963765845806265095131658631451350177134402154436550992452919638390592576876130519512863106069123375807446954988741634272244923821641790015025772630753886226449881416210773025005744705232392732427122765500057601248544596423437070652110537131645607230306669840035890572256970685706269851450057480421246257754486199492510845382141665598114540953854437145609828971547747447038681525644429016267821224557145613853526337868775738502920720738027252487443838913964544818464805234527205789560064534866193861477383657290481101810647989647197705528735814830551347155270723622473294681463090805188408362675978269756265265728197496774720076243393043812074896538643603931549047956838285758527049039270555731335596008828519230158433836327971730610727525774731406095417745656292969417872868387774954387240576767131226827825975277294791129685220869111599680700422180170371469634283377139918373425958083792000187077261768745495683453863013785077746580100199987452351209711737179535002636728202928146527262634195220447510969940047423344174464574458317678285232868061590760291699906918662196459694816802140041823484024081461940027018818557005861144879271649523128420294074647559452102618095070412425513207891137036556322242484286805119796518606812355756636056109666268291644934672199558532978798099692925898629998330933943065922120037234947641249732223739779400769782113511940635708887011222597882025956370151937393807981618135013493782198986003679232446807960535096423090012272431587779264953103367608053108638472904460167883708690778252799503493091605829478514756815466384455049987114743975677949742948869678920085283997759962342897107912972840149387455681312360239401122621171545852517270340875268555095324548894731734511110955516181197764950443221582331944292174063696000926775958226308596970488897857410032557706112018583413902855498859395334478828024866167433397318576709992486543152449316610717207329016929144120874017266102242003287344128339149680394130561174719464468205015347609970911454184274226219601297448721175098837815764029443831193028214987551467124550829128044918485795533315409365827552272642848419822500733287924450883694035061092000866312202575314255370966450522911215769087951361818101064145615538197455330029384498766193552597562043708932331891472919307407580203937087338829983130691501208504987554427964156167926178583944068562212149688187965198682505280731389644704557974055416574845713261741110269830664169451003981457826483429560013313097774021292320915638209232323325989089831515566679626199134579517695459185226786351890487077525048003645759720279247183136337324697217579505251805321153688687880715707455216670169619052348890543377972428101503570850377991050659215522515894316323528793345835020613692773270262668341724441058765868167843664342101752574570391663785995440184942697417432068180477728605946631273312289188794265016794434182860024566456144544132384826343175891777677141928539304775236986549768130785816935696129542096585079581240603354321025210045484174120743363464405267918506522361041509377224504419899150427371197530990152040571909570451451583683702057806312597895949567385342106125555288444617199779275497741905375317020757288561468207054121900073021062459786725105082025605333533044747212176408118364192387364392926760947316518835904971872884325696432653096220649929956520864122173161336035830136338021949678432670913767476190422165271889886443543139870558833018126111547019824186184039071053230961775509504179154687424692652329875060748363897971609527024899495333197229132134633708275867298514250475598772395597634657395085273205313101710627106526850536609994615532840904005434032349165899858974505192739565039296782019241819817301000236902273846205460920362415387500811366360701917456000831852809563470335150319016190196667132950577590343589890518000269949970739379206394966636830692154653805480020627154154130691930624919085273146238384856989101202046406261140392475339819787057926227066122808138413434373456429787379654093305789050051058896048853795654660474719482241935342189584012838699954044620150926006274095410758755934970631801502249080990900946173494598509254545485368976608324554015614151600670086724804156461521195915216867859629773912660500365881278818387855595197411345153007532268727339239190799956515113848335142565655367916722847388248835456368986079736044299006323630528752006725152828394546213183517363788381924364093619802466139024973317723929911208166345205155987961623846375563904516540926875410280852785334898464231510704393420424615927865918185997321087106171529542847526423060632686769539995818350990605469597229811152287555866962817336432716320610090965810558798860004861950546687055622293813855947673954611922079782874148748061287581177897231671567960047786240775860444725684216580002846009431882357121557610704792682517988780993176592872855790833363824346488870228621541290795872605680528932768336767661186496129437297749770801058757342694811797356575313069501236891724483026619896943098657068532115672831256215126835441413275326437472258826155523317259236379845786506298150286025758230224815827022393384232606640644832219387105594251514840855657638490879896353086724595100468136190431213672326552979751457852364039035488451553691944501733332688761505452687748202703610331163723098103647816328384500026201873814875811502891275102606057513101365411177263446447696186148852534913909069005656869554261026773709736023535942123845669846992389389869332044858600196096337245379494143990338943270307124693816539829807143436779725972395267907186492261596352356608488577794895647085609603668736972522684675099210931839427147847863924160856749821627112285374181061632903295919887674272143467271712505417069517473088643158195430864004223022532433950050228126390889282697665211467529148077796451475610894084003138109549526096002976430607609413005808552153435923646769472620175771016439409268954064127370710937145555671655701987013848316168180331898962698118640855905007763262203496582241775417256742461116823404101338061647197481321923741287722770494388006889357081111508350967002208640823127959330360791511534751137247946874013880151246448458344695519987368442906169509897408682997242050757076724809484494590880288652492568232564253472335600227222650571465003180253222818521164017029369835723227904145926296115329517746570778837529792644302461141872807319106329075778814971143369147874293383864128733591740392017457482641415069346107200143559682101721488192430956911468079126695475736055330974722477082731037670464541480359139253084095988453173132369586780949784547613414909347291073748501994127682362652820067724069657837323269991456734869806327539779414908459785877694309700842376064078702944188367842800855913906666575780960658495454739562949192150206465813332714118458018103666969797513755926353147899318196233958269700842554927382055382936688250887338451134882692990179212191956834476180636213425270426049026109843663966026921138913855941288652599286774195525293985103178526694145810815140524906440942030118214559967715634676089786570036902471240669529640885726655267182004909727647710642909108691939854611970664373262324877741463305035123147715337322753210262589508780559365720919895010306266049405663207285978538267017633375933377773763495068098907699904742408399563760589890606110047793746489377980116055202560969477055042942204174910997797705516155644148071389890002694017098894931046315358250793583515517753258856482133501573466050628657656592234821785659990494027895070813200114505939363094939539466987446382710104080077379449123850447243249939581483550256436164663808772602432797689780065198606207265152294470171258761199196825758281553376003679935272597527196262490595040142834606911588018486356174114410677359503569528923950124170706181846453939544173048134787147940755263886844143121658691882528732628725424692774848996677580441598380202701057068323597778998801630155458257004558015949270595713324332483929238051007458159274088382154097025532585770721156194540083713797188140353880982244395730156882876135656307672349903170944814624628692906694214719826250655033710175155151127016014421842081839471426994470701255063901231459334271384169499290722181574466035394489350315377865247275790872608326695483654762011425998036720093163943201620069059392397657009329588463742899173663818356807271234247953024697512571115288010526153062749492888105116936626909368075795979707029272327545486002367294709179867782122894385088416217955838648066724884186236702662169209245873335528553136210571841833426666877840647828406468268134365401431905275637506293328376299343449323009133606503276320351893875820439601999612240229697167197076316904177295509164134229752145970237490780265582745230788975405000300454735644217569138637398684999217329930677808740564497371675274933230989983200642568846075033950557301444657588625378305474248551715085855466693627060051868246318611656107774136006269521844245813924202255949632478739878066538794738061123489151798083832965128707791600195711657965800713779481044319630142803225100468282538973353885794495601867473362234894617752030682705150197310843961036663203553078450679679320885484113194292154477154204075282283507349840121416089729817192622255278468508616380859458283699589387137987467489397233685038325061946555532277090168801277203489504060734251878837107653546924005086263782074306957150089172978609072492156893642433530146637413488760687187436614221756366438615884280408223240132456265825613549180991195268295087157903354545044351535200076998451388498719794186629722406518746454401372389579283552233516997777129290293869750999388988392447416754592815763416611007744069630385105752121858487173391673873391259382518381720307150147851276001840148555402460127718598660933377596905649794337631472271033689568408428604595468674107366588106565960603108244012884675284678953310269366389074444157641650978529765411055342711536738641780458430150746401488315047178313713455982143267441134527060658712398074630572188274341874814958039682763492412269823966948247441389644051052230112163362661015517908330090221349633995179075993156912362625226046009069169121981272087624041623119066695432562852279693934980957132045359710568954016300500459556864676456255522092117360298998846170482879454440659535401719541709892499765393426874696143382669178757717257915136096426394322954407799505470897590100011086710199854930055670861342649353163008196741057294761810966543748594158820334653675194339203104523541333618918111758649510429205104463809479509860536334790196772005096614764824713467098444214903937487404098330504838494022056591109755873557356325863887736697521917145832727354310043064329812461561204880419363593656191800908540622410625601464921831467610404256762798429091475408099781778290826803963700079479373898216122880015672025129407410668869645561811964847231586825993020181099446729181696097826912539713556116779779782035669932676556204012203760212851672648739152410355320040205300963400433854339653461346303246747535484318628277893401229341999644998801934041856064344369012409909665099937462318035511479381038182767173137735318854164050137944018002647670306512249424681216379384230286808862220566862051433718517889739666551279365335569570599298057317083732140709507304900100049021627270960145586768534004373821018470145501062237941415737474678778787322683328905076219500048707386222323333655099709238375090359662879252262316876772896376013849026222849917624792585711839173539041212696287268700559996905154574659243908457444942134219296893807128846069880692738275754037739552939257929714454831851020575034786241696283891789526616685330473838385182424474776158352258075510661577061261318405493298161237565902130422899232372723169244010862684673692616427747514545159029312521902780418234413139678274618909100202412041860233358553835357105789011786474799707068975010812404862946212860864412944669873030185338812783948224920001430013153394125272195935347943121297114100520971337237489628911385559749673111060227941387041122627786093022481537042965465343242791739259549230531390050561336748769058700989376983297285511885624832264258174423268252331440013314817977183488526068869469603366038035885150564934518188368479394754893158369054495429745746354408223302688128255935583903538650776518415709445745170198889983495412445122397392475407810838885956801099166156324530725650710121531404551731594518835229798181887674965149687750293638125018880179553755492005452368799684064688110614287355156530754365328288352086272632758024034992385720020000702043481810818706381187448630024976965267878276102922490748608803577709679685853809596369174599160708046279104099436547025183282056078483770523554631176861802488423665463737734590880301808184226825235703209712043603637259376807367798628413220753647339490651768549160810051144276720158773382761713270182498963327046452618685877393337716208859194912178918464264762061548837906994327027556967412343469768250926779058791480229159518459111566518978224511343231473704337001740822079444631748161519212250909441585269341723630964758766094214724075533648189848157798294386764877853359928346628986151391399590795688376430391610530559180699248046846353707322030477112080243638666345508785598947086286026036643259916258501324548415769703203573472860418046076049636059248889916875640329064299639891029793942641697993290380473067188657685016350932380582933967486219196240909526532130538069407366807766935775879032265433578209910648813888448326986311673052919722113483625652925771450508883089695514196676794848831827691375846828351459053924589572885428058093725004348896736531630368543240336298648670536885909157617876232545874803345036789157382140138049380383373434788819171492369969338382330703467793549196798458981475051328759754544140800296320280256672658567316536311187160869132818276623709895134834092421053009683132629857811879469252923948223056604957873259706063412420020736139651804679364186246526435390424437644146960343641951455207933531726901812653706486147943780993989823250928816735424490156112807917992490408211843884867601983145914847418680548093605012112424827703064455000234672084612189082541157399228919109613929459929856688625435336592154158418432408843658498330237371630608588975678176643394771242412414229596663776175797593051407343832073306489289076882952179422554938521548221623101342668698433046520229870866365670269497168480751413763851212348741072951610378127031562233238187654480430517991485302603174108827639454432073373804995128543638788962059972707256394189502063698904858196628446873532902880908477583273112250461900201580013007067512262602533852501143537319701474891342962801437404497785058301992626343313119892616715193273128448292870238816210345944828226186010486846357231381569399744585627176329660453655692362891992801963947213282904116989241685303334563934182144586496188646688166580725361520823886262503608968005837242177815372606681146138263350969287141134198669008811601658587060245533233276733422605854451218940206579872813644751490753603137245941755221997883662710581543249866450389300093431352845446960328210773274897465911118474623809951298916883921349005382276166818679879777120529565673735074384658035622079732176284661709927033217887424953891187414947061135492567578714494132279980160751869996517131459654401741639568522365652615660580270830648731483444539650710678215250541596322906163614451142605377982687710240510095295140584025223433224331369418812685564307026956293526363014503571186528386296304398750253495057638906135842689480445932844355095702845738400025565141981114912290227384097323244557563680217901109874460544500583700209565831151984776841390249417427840989739299670566662251545891016492786399744261324297867937272242216331901459842254647773536756359228293389549578550655220704954250437450370037695058548667683828711506971535612379101195674670956560203336745603298456721676201802480656965717893225610693554963299171330731267365361816083243167795894686720522531764753998176569881640381210734201218746375474186875044105759390256118027064846836631053905291221175870351965254225673357978304243968440491642097217073987376708575491275168048084410743423806827901375520169008007148737744974147454123111434606496399491673807420906806557049390377419285799416418817823853492611441084712319022943219983499733945414836261385645990290092690698488246249623238502668342420856534625182516520524141709389844465146270768186811455347350750337023400682407072424988843998014018854819938925110464564911475325340246206058963811377507605008259343049153707669878092483752882918212868975962161763365038051941938048234710302745426603323612600147087660354770356428744855782203277633496242465958184991861760324312253030413829404072439390781498326208979939180065167098014408730782957148867202222390149421705615964545058030958780935744348538220297653261518088906936656996425239235823293356353069343526994138853727252701088155491522957778235745448398194898280079157866419711813663697064317854545171665443694808669607146583220102727199127398089667528831967573452441139492371031176001929407875234719997226700867361546728376822055158784019830228760814766055248244442793430089014757672465441200495953104991775388154584743736657972356211216181330270695309800456824044593392672728365989176036203334147602450399079407331983959504853997239523410005298213231731199018508959377122562297883223565642078437671006934727731169351312728821894594557632410570272273627949881610184399713438455991963682001708484683542690764018798459307962984457193848320710665275297868087921738219382346386008742159659878073418014901019450980832207571149104970859876201130655823295553062888815417841526520033599476233655601839376523897431542856066647058703277364949108918035878731309140386474938608793323945479488857024488047502914224875701091647892757533088820689253983815809064419219966013329362297338397558572227193816127726870514803121525066925266076428565388766616628477348991063847908300379411503778366405504682317045417353204614865818621105949525671598839026539518407820030336397044857296429135665983772350813632761854452419913735820613738793381631963735084498954511998962063310320943969084569474143008201889812674484385978012410773765086789677851331637578869272325909345817210924286214325401295951311213141398264974564390790567207065122786616516907302842276301399539668949874445603995554677141275916224522212849993276937876411198541547807600443660580166304739573531056468515152553732905170652247149638314516062865978048577751404049483483704613341451781702099197439335312682714533732853540412011286512272943223281280129590217576970983240204968665599214629330915042778299939345842267771502272021295370975818714468991262577744764596985898817702825137214148049418848956702023893574139295970656693386442770828154355335070516016155745427348179336345643606529333798648183003162000812424847124731443194635250157650842731277145132204800706966384398759442508705355051380941948482469899921087860674601748036305458436576833076920286894732117000956389446211500376012413343889844374923476266813267646247590252344952100919824200532087946918841456468681926031543917248184293839898058709389834476821133438409131069830328957346617106958667482832098719818356486373434576485206829232978221408503203853820258815977961018628786340470004818256978667986892130629072743273591927097412305852776630060380316093186159023019903616519908758535763488700928412678359854058011355095922315390463363972893116248545412604334148734441456295378699484440604087366514305877071561428492988081381460356750330453119032889296511522379228983273903610815325119664837248177692366974141851497791527043026916379074756243357869329353651382123045493847077618547082605553533590192646340984755903113460230483656637912212687650644192557429548907711083192704466356497590671152516675619577027043098401185879664189758285953885658416930966438156913263920986218845295561209259730445410950364450887413040019211516705455255195871362643328295290481414437825668017649509820122486382991137782241806014731238520284968518515139424183654536893877381316406745987470381660059368186677144862069186772142161974973448796323310263023499664336888021708762840769198326242813876220320931733628338618410959666611294708867820554553914475800593041117034438551928246066183777751376074107392310595509276579288486352182624222419755742527634921669738604036328426935774175156606340004823229757039687375701530648056980601780274491181712376714067076585373095144029345756069677852332877747326804925601962887470516155651955389609073089947850006051297935358251382114792210606072675902003519245784986249980183970063582567209186951711236748162183192406640106086597912102643401776039297727500575085082281204614522187438631652490936049235497918984887812843054145926926079195929074464711109746266513027240706168545116921352825194545630511724070246535149736454474393981076377258049673779361217963295494378529681006023608202422857267277939475128788074879644585185408679498260652616788186133173423080865563531826019226064806612824840265600177086837438299729188024936145855735362509681584353484632600359242854956322034940538688948393693424432500925944870344823385574151695609229571689004360922600870025761652613279365071721768327050470211339413238072495874234126461148343870565025227013555174260134624447037907235456375060051258180932296473430945827469831805722527744706612231740764731847959161551826764049189502049612014307779091523420136729144857491073531351135518630552782380158861500879951339749681047830066688210783605239156924100411469495049155843319725325268112797521493261196927158116544984677300763477870442354006022249014549164581381191670749343787186125593958396323330399801421826060546596465887568402890758012176006062308233626274566277908862412855507320010038553725725810857393272183560649291378150652433980546962065958702167009536067452144727747243665264710231844071035890546905116733789556711126385841514356880269380350895350867225727453822650824705156034123261918056392953550839664009024720917480526272962630370279289414354040375366810143147444360894388121998939248817340002522399099070850405038439084230741873434771070421067499762150612224947021116483041935009437686138173182575115717590067344622206374314252977066234793398129010792816611023870897153907371825093116407238148578555748495049840830469093043347112819680163527027293045635791187571551004833461314435489834945415969966033038509856709637822428244078411375502990683154393409207088746095397010622610852418215932995071521764798673561155099214619262212746048097382781763979536392187535487376578717622888266438164298271098737125948176867589232769628474870347726386784652423386477700621639442821187739924508323493611191776178878489824630499512620098473517822015324895419228490645067619965609399711178750541576895735702793826226560306576436064918529946661140377835416461939325100893870570983074173228427985138147456082614110055882775184044252070128021471575470347032206778143728421407278889817249121501075566552597310078085259395533795558544494968824137052413522765271873401363550717702843460587400125840364460574295944341981244375046726394279433793201204887854939065231947846257670325602052803801539471743162604913464232670852351882781175286465504206402794982551926793302439048558532218269481096094883305238085519963336962368244172837294074617526411049155636910013470489050879343087524070066577189574685669854187700426082097499020342235414387876769309059611979335068866566745343635565814002798399586049410727009703170223134299174118297950885472018707207484145499064300391516727002362740460746752523101819205189999432933647890881209653942175240269771903198337725556130641097643525838213093467852141282169331033105087545324906022865288749915294684252318941191920106665246925187448222140782063315261653618595116094187793089309600971513672908103566282575360336256919384558703333199777175909888455256543016776214537574277307689967244218229738605757807405547749817496388326138846779314679212430464196478755153573898592905818475833943410456071442047328162033181265837005821161222551668549384408563085813319546225355500806955639698737617268892065275898125389849482409961805365291459149348242939963523489887879294799077528402757865813268086966278489287177207011066076837953027914827098681112067138313836866745635669957982266886169726907346836907140605407500167011198244473027446377508989284431192230397166348151061799096012101737027422549933325135217842390847777990889013731710536901588446944285369307375602425363287339904875564772141230214577399384179685575000137001879292200661929499840384992701465006667199723182349670182006628979255973180333650615362255186456338539329500137079395939000759875595647524171240046094454514345858609853601153595921207074908483170388827062478343015202427232421282504448925332107725483913851697723195056606364652268468298074830623869450238543289191443207429328261490314991904513130681310616380278445098827043630997469785997906760856095114654181344053072104768531018916173368467290880610826409522331772414371567536346882097897401704083482578428323459360733390657524166827379110491061493225763045430041822109423940156275473756601246016100508520288728392148052078963587899027344113122614457009388952837966322341365124412228051556906495878964728710015676299374691997474050532513975493147575140674273362011775759435821508816021471275529775587097950414494356094734431381632022239481214643851384812818511206026117758450996428943662105597459757478491487922261817592005492482711653032843932401388627140891243986364111518089040932551303034844826848798280312355763600730076247085367031507476816280679301592273552321826955023375906886681986570974904647980706766794838606043173352561728415511355255789663019556065259563185974312595591246112684506992284342015797811954016065598475816538868012925303304267278630124919633675627457232406721955812130115395791226183991944971840826242332092448110787768451896788513487581301090360445224740394392106982356977621031618279693208765132893568376084380615723836879280400977839630519324112818383654555518356071534824646853664048749958988183132259497898241506251987932230877199731956045969441584645864326809659244024169079066919089820906323777199477851422642699256397198556416910826520191376582403291019813274024238834665402518025609902014550627474561543368343282780315406055886456536016670697556908439447609837799423612039501751234133850054227891125030464357929304114032996717816663072503040426112766077951527396973751025043168324660800440805687673798351724952034008399377465749391915915496088808453103718242492878543942748376047545652314652054970789472503796209652477620211206339237511578087959317517432923150885210823923716473514147100539829640707921591116732348370093574456750014839775310523591612118240482666553511664356301048858515281825103463758151173880441657012762186809747459411523987062173600659346704347346375985335713218875791311625881269281615956560337161017981420884680743327619141324577354270088606208602970034862409171918344488563148191783966179575059268228541372303910357395183231676684250781801210486852147244237892233809799674281460015270948447768322757534692773721962716575286273869980323660905869839937649957561982775612339908542182839357365325493612109969106309418951894694251747217491009837491528051909226099245340258113355022404014952946339168202893827969271697703260067584604237380601426226969234329878873558614713768490217359815373248595902715029780744719138277818334311726792245988133217316172973853320497317323465161110229941358901956435452034833104786718588025476196702728607878858303739502638367473741917678819094370948539522232988772731939866652875007379306117979101254476620529486958864944558496740152734147946316041142089729207491964362290773070885138285145275356985986570866826078213676923354548481550799599856501604480665689115027453010359074172838008984837575922775871922816383828647654502198893390007770860358424494666269554924646830859926341126879389513938932803244412704294937659990581219182512448710104998607180367129990622983392459030540270645539432236252590039583052641142449501227179160917913327661077969531749303026250850901393001452841151810352524631911380669739943095885104202477596585426220478319336923989914043459343787177692673992265639555747698813903257091986869423123068014223430507303765521013356448771861634722996454653550371994260245202496866859057241011565343844467659636021758645165659525799015452205972349259132867491457841717762023577380518261169118109213048279081131822613137236777045698305534903676287959501282532501354596328454474259180018953463952753887476591135615167323255520039753655042240402499175741611402485907174147649612445412083241355269233180769565827929635562605929561041899937435898953009922918680519627250766837084389880370140674933757416423023889934465687267834070069500978568212063714065781374294575548114332982549738844376230728867629266921116167427834081896039541851267056857148227018283502471040725480700394327251765359531054071555214404806544485951636193877046694883780973568304301041935956165066680478115800136504719985766869447932110015930594402698620313845840900232588106718479858842972974991334345887724371427316135691873621800931651028382439998116487890240289630568999281903879145472732982802934723128977847099388477660585702318421369310023331389250035363729446989108350332295086253472601422658715774837129137109957028846507858799468178272360211861796249076492619234281203316186783567237000729167967992124429090008290714063597877516981595873054254568868358519860760939014534699089135501940151683848653578944695410588442047406295929299680442034110406981902114034806914728175825554129657259648501122089817835289619552085805847442012006545275336095933095771506055398926341783259459948213505666449595656232693331773279014840089856981009730769493053858074173741754439671806580022291734220585725164540382211849368595104447791681519022081087677282717018275992828443543993989246155680480633652234855478803124938475914068245588127623555886832244814463766826061408617997421639866181929565730318845800592509507497877132184832126592113529242315649559044723518384068206956425009981177843362478375942531054851099763369590803050241911876549326207176293580328629033030274166639144413862115375257597064871918027308332160632888137564561459462835116353706569249793785164848730459365553525487658182101702412660969304590553707855637236808655827614509619586332792289132737268371098799079785525929116769789266842768572408768493578443503866502309112799015581067116881269120384081072782421001703305708856531105165483521561282581475803942128352790641923682739724204302407343031352977861555965843423638605329505323394528960295322761114179319556963889100467117160454083907431835268428550456602430264324037906523331633466944388086617251086728943432245254598983698841971513567578400537939069413624187874807202359912836082775659135088022004965686565942529014103809184292838701384611618199717782111139426657324535306036126629136061986401644963520788693855640821369001807795755222463339995007534669787957556136082713771821435315254130856063797477305491232704441378745083606235941116101980805890906091958947325478385763764911239146765414168535988803101600092420265375625280077873652046333809392662825477607230616865474226784339232767019544775545234666649289142758616587858793726042341594850315630832161982084056145159182820846571170244417287273745309855029488964546058515497249232489200085121623565512349845416438798186389796973649550341205685927973110463960375994232450977725526546023930919063809279800242052228328417195186685996153472391297927835765845781381364440386318067038256427363079175564437286261928924079279628654261203800232399824223284526343203867647792708214518410446397431309848722153761567803151115112509311465737819428184277648936482113791572878050805382199802480589057083257395241078503352711031395986767594362775444473548185225169624268470804225750159041223902854697303735926008150136255344923349569957049150130865715177289904447825491387584208138717114431621951950576629044458016708798946870299420692309268234437936921041471224613602012320950549714410097084083040805494841908709618070615529042772921657374287332686728169920255516265608477325486683391097278241125339498644998883666924196037377060282582358728641965685571255977736373182519613650371488362098578388647261039927102192207147551780321984148476881095300182348387775524467571123113722729486499048127089337491053284207828669963110004699112907874387510771703184399778133979711857650434784092909933165879937479620316040782956039677592410120929874016297664693373624795464121781948598395328565765867317032551951479672833289506930355228996812946116586167369887461516878200073599278649687215012282749425304918087299983756754567315792670019117068483259775732213283446215170817281805289051675641399675893103416530733350284067036242259376679085857603680319572112185470665249475407230713122267409353759659040308317281841786718732669027716320268004493599831760450724378063826768617779791729335179117248056105190503708319382738611662200003753802340757545803787413049554991012470556765240225199513487080728117505351432140697835692525840641743944095394896236766007533871405303535237574126107109210606090023653455815589877569069346625744973930292628017234776684804126467511839078957938512546726312740589458821390844476049602729784820902775058674905197344145670133129010688332006261001950338455800598725461207894592231069907726828321363602207806044740546240497491397807374465227414700111335912950030505295454764333651925850809295026107944496989437060928228260313172974156826188393317217830388840084387631882387796468428764942499685699295144896520839714911268771536507569821800932708045925478513100164820638574800006580270281378911928575634414831295447353141751684034899983181695923940070287325582720974902906229792671479800805541824908807903780232348383662527780428502441450624081232254393608954056065276063550453068835231031850710374922687713052754452081634615094124484495250135985669166088939913833968486369740649908178398403021795470889739872534089055490096847678326643596540277886572250642857900545829480370548958408340427779636950765511574978482956397007293831922835111414730033722372939473595778218167921134669793684331256965456106298509894714885228548671591671131830770801457187147366779830169094518600477258833543283401806209701491065637546252649217022556034330365390624538088634214138152248511561598498013698749435807165032716900472665000449720780776321125941640630079115497242876828456467193282419312334389918194932601396686549172697255458767094972258406103072773307314270408788579994329630250771763748469813437626868863144916833707795353517833991295926032455870744359450709959742927956429278542676894795740888664371518144208075814544041148017023835068686888132538781964002372284373931659636912170424793768382592781082512981013423761555109722986288455718004533236275946352766379646983733863870556581246664532402521402744514983170069466508523540116930698513670951424150572372809449279020849968187509898191504125733128020336061544021741329742282760201761996528051350743662027453015275716637432301467730110308235494720860639683034263529157338321749683924282518835355550134166927212924916504434826222153854653297474287891039088318980209924625543029313771052347356959860413325115682184236899168218619146379753080839163699524543926467235866436619844800706202107247365116405305647375708300027742730439321150850710380772156095763672375021065291603597946678677363540822681696765584397690477989726280060538659433999111488693443119944296088186101448172125247320877579722224075619623011597978551325493239960755669475953992641359761175875652524761464837428159478474425775342939687289292746244789334361046858112002987708210831378930076728104450270127280493778678978969966942821287123767458937252195830360346522172742259012987216135521061451480188633866188953162742740346823139338267962627508521757707570363003859475806085508389091983988088047135864692382203914391905346363011777384404246286966409517086999928171889811539668969556525318034678785086316585028584948843661205915082611216778300849078782714784895576580385394721017127934870261766273437080160989068752201052442064729295083927178770826057837755106648834872581117100022416381574544136581647225292862940431329999446715582299513802689717405089502637168209487559087061865291643248229127672621430258733171847795309313493055583187607719963499157632942728753895033284180592225771609498964403525158710835831667440369023079644459842443040648052228298721138931017780253427561224616720487164435918610859347540012474823615177187624132906743466553127326075219668499579373902425552858610236163708314485661179463303347950287366559267806544526024033584395921165462950688406792159628745094252620324097213281265804511474662052731354503291688779856823697064267461994657731066643341215350985076286348362633450028503618279788075699572143762358154598157729291262004978099019314976483773603242171094072820831139328793679917727483538555562738045629346085964935586136945755426109532507921431364721544962569751240146717299925758404807664150197090125243079932023326468579851885567793103965580598074884572854821205314047439481986113911441917840250357253628038165111413194081998980399841531195270056467963058411884208497396931390585312691848254713255789903993762248269975574774876021347998088785698151294908202710861405072637581827893273726303660384364705396620482402856703599566968923535753366361160774463738352977184667398502507711680276533784644516636674545797325656721361192701994081838517008139914661219524234828049165671762384283913435412127218757348310485907140468962222051809109625629932858785186490049323457569531076231851863165937858993944993779368134439941172250324510248045671758876619763717634688148709728894107494102280621182777437230085395783386695928563774985599458627645403077222700969013865493544830944752361349399254514039940553793426953263157779183606360615323547500041660325198357509191901157534438814529304693145817759608230328763042650849326504763128616934077420405288869859397186816152234174326987318395092177804062089339366026355415948988953621825837811800703180903206032826804692068792736462564330454129965080023824203864466322410781372349483437211336177063094212157349601054977820492483959948735346464931564979350423723513043106432911446903027060508238121850107115169364253811589519911595486617597010329095762412362771347269147066587760508506325540854281428316886503375403594902953579065315111240592664924735888540947726995981060879682163715205413845326887797610793122945590641784179182253080847044352466915805516434029721365350023336052363154427832497246179233768645138001447992628601275183073792474477425587094756352872948579690032367748256481194811636083733351654565145785693325404084449927795905936160180000578687735174266423242573292950635347068991879572526804575649819884174335340197443704441159031218995445299285060759798157264185327949367436065853033249405078234766504816432292790652785667462762928603958047761783094276977355827834676608636469863051426043255887207174720421327776925880440217071126474162354828889087833404328913274855884899519854726474403229118260199973545248545913546603817065495749843446218719193506074978362928849382012559603294804235898231950010160825931120639967539817587473083704017802925816084052058207846379413123903516564195971212839710314762315961429581191447359376947116930510581191204647354493949803123529262536261630911873281172706960701594209638035676019625380991983410671797884506514361661388724725832110438141084531719475999182983585812286010231269312428210888805596055340363916839132705511539298200951608285070655326286407745402180689205326508426120440437860213965150765441996830278432839192024606996701936891734159844287829937409460040173676411250921591298133225524684524296305027279236781485701901598703366824997602818205709903788593829072577697103039867568006181173867441997914787015509646804644511438850922919992862324101007066516951226672473200570426024815399839940452352623426972013156309595388421887915084939542017984971117031522744015403948631559739485000314806531240757006993377382943741311595255754178456981255464351719573462027384923956040063128807960159908584604019642877916089924503688460664115749728143790530215084184648662862653027222435287733165419007303796321865724189532808809364537724875017815846506095784073954573316275370610513591432944984853879875570875055264152853485036356622409194490978096745406554664076320305269111249376943844171564816662724466727773412113223977349715343520639901149299358580523343910642474680669666317130582188562922127651354952731013305514525715723821451116946433828677603892723798442502227789315433329727825142729603147657049285971849302174022485081037995293517049921949624119578902611644146773118265570692840400888422328909348697152706635712961224368687477109608037990506655419571591628254029756458726906949653709926612288718073759460753309707470549904064833233285066301272109023066869957509539414071034806740994749296531873255963314980756994113965345923263192821088360883016230296663768977008680548581112846296819574192208921908966054015913690008267579319752271865319804036934913038739538628966886799898702155267320043609848753819943053675274857661294132950308632460340698434574837031296037490117851390726397758447306877228651772967202978367154851071533249489553346001434443869569245023348138558749201330848015960207989501623451350494542537182417499470232999565166842119211239214989737532241928851102309389926903092930539084316118678858542769609245412246791296168030536604275258762928394670520921824427571077358412397775219561073487135348042391232863769697447667125849770687508685699246140520400946676826390081826928908940897815204144423473243223310803668197673871580404392334763444712360883664774438554585126708101331499986371910536137642240829088110436301150652874894173964653144828422502563516986141507134488706048921550833362423087780341366828595109629963658654619519593420147036498863595205949974150586394373144966773990402846339888232019102289289134335727916632431986881573296158224476808430534480461157165900729559911702884255496942391021890169680990170067990184701279942612760482480003041142206379565095886889685621242402151748011289361395684872975725212442524014078558808667069212868033578910474119821289553621121645627416326145751813900071454346375673294059731218189465246530371160909786173435668438454938857734518818696162870620037191257092495531050215333508806259528834478505616630019671218765176688146935811568479181326593194226479182009966505462345851285440357278065187214817821300633060561493060758012753921713792196668631047547343895833823588729267095758639287387679782621706507451762283790431092925448004903666084782961104705353199665629187849133172428322148168438535098998709177895838798572279965100662613989941687691690923485887298616135684314316625654139483781416837051285080910077241878641718257809824452253419228332339495396839733776634619921743297271562049016085758313019595099794709192278887338639165434731235324341193996366976706364300998158141873288584680339407332572558240473628817167052195655322527035702398474312388521664670367717914277997609542639283306895912704247530086324031607448265439521429569845813211906789825650550331203922177839897245001794274509211983607836900336502154920721224522206987432420421963376200725599773641776067155950610136355527153642420550824473324330091931052928317749345063663871374878332271886940601477713267561669589396068533180339962860184663791724537527748897058814170302454632748187359054741597249888921417238496007806738898154651341053600451944397692066291589541204344185037121056989982861049432447137491661258625359278990195278575640177636973807088931963908543571762526932494468661271242748977200918112404992438352740638170063929662417534430465111064983083437666857411032722353497810857629317631124750193895988494535746362580613377061137556052958098694152177184132768285797625527481778959892114154526326790155598803482462176421402932766178821830421726458893378153687776799481001591911793712255197847143431868594425144381051016316328224273105168928361718085684126450094153218074832407945782392318512219730279005299326264794483205727016709560370382523168699409505723875090155544717223705383590311210299561244713900801178317551536153827314527061606125098927041203066046551634334590891175582277630955503033360884280064738994080513708524911509964150942037047680719069773733117519186244984108373815492583431376123047396176194550883909281560373020839835570250489382680974643390101772274113003080703679747109604399925011583685682118333191577572634150887466652753634630250885030691372945262421547210317185849089289373530456094998559441337796247021489535009825959044305469955076343223733751123084239931553143530556952663123053837181374684214575056707739449642486445432982251448599180777302465699075572951302242567048365337666004142946061118494371311313216270420798923864141738632613953335763662140081779156263403698318450410704192685963012203389270550821732403807120370937469669647624528511445113972391539707362858031300918544495871714962789591442185150945702768898452923700930762408854867304850416187275952444043642794054280564012267875862914240604542731564750936396950269769267553216661767043327740423710588423495875166866850310779774256707456962579728808508084976486781793522667198511678073272680358273532842837091479765503809511471099063479501509585949364943168388635492217761938011613782967823526218648723103394584865176259215620298722208300946668067468781259709519168841936422581494482486582189654315753390113351136062724098889688460280919239923337104485826120184536974316027252100956020021934483308361914606113113337217113902908396045703047958744790725187352195869946223537152536062916297161446557211204839876320191241446260820271233063199984216566540244164410200673620393864668140210381605288787098490910175797253810640857545789002249479087634239643123685612701632699885094240413609496697539058717612629463526600171653231681634143875568507700572572681753348974592882575267395137070658877378459403511351604243347412475209232145858624821430763320246179890390799054640317401251929157276392118166874438361950978528936755567049605326777591006653747810080761949988982801390593594652160352546184611993934233350661329751362773254800844431280289243550442696144560040722406254664197873313390770563793878402138231867284390098136834342801715347013636059771794335986575208989108062126252669978215476551248422327751085153934111519347285917642574509087672520044664925587574723161280684471794811058269078089574893669531733714535076519405355377129736191524537738314557219903604694076955123269005996414577465061961794888205496156027902885219265021617149150343176722184721572587430258737567726923664639317484140421191481213181267963125951179754030053982180721738518502396468858732927918002358258055487848675903874752957984687759883270157785074861559213510330253805922520198616786958705099904938419317379144894430153501914347705248310266301750892266222651846877622147146282902148578972361331400233059021450224360954091316687730302607456058985679803662707745785261939626277892822301904856601039204452729367563999858925242998672101905790281409367791410933145336834609769130001906374438697814031440623257345615642227120600033084268727914657001251454585776946331893770482264087245122103238155309602268490734547255067660501456861914281774582934758098888428468635607770847948093791423881037360005031425485170463596792906537321889351136842640676926800613053039347627368988711374275876544576717199416298916641857739591015689880526104169100682584480945899831780359936663426226873746112953887127553708567881136272457406828625359990343167805499720952227317731591285232610320400919045537954682478907854693389778210857380356859522162176531361086915634576259230281010913490823829927109656347576481245495397223499204149933785546598312434675784689490603285051675725529833907239254228853249334822924763966497843340604042611283454526807632868112356642677514595586973145955301524211671119540753681743950517452967232231722698674680779958100603192406963726050853793279839313965648739801194266686361684708727918584041651275508430410340943468773147546251739302269915670998631542387686398310405509829744533290040080748342857864369902250886348011262289974289510007652405227650967211864773485472677262893579404680999172950808481755477230314228961349841272138223930642670247965300917535101248849855771531402602946322941313784363004940180049775259358867276856219923502650165472565695246529594475169361048073242074986267447283796051235100418516120860440111204640754416323688588909906725032936260523488088088039186944358961469015548358626766450502597289630008277457482493831551387772398127661531632166210494317474461385531278030125927351955400672874226069368728659720476732513030217047274860327053470251353659508032628883991815488516496102676098547916727773930112005908429812252645166898108121787630828710177155301217200436308822268626843249237402819701418205275848393654872474973623921053582639977441588881117369159690778237567318082695793175420709624873651505644509859532532282891543762272744777948372369091360511832730607241496806283000869267899435209849475140651421219722690758202134195095021701753572355872312091650048998415279494490817153608359670882921607132633892503473295502625692601936122259920301466116231430584419141130246014372406054685133401782953777169679689952962799232768329342503609546195031438667690689386945683441693127006405818446560619246926003755105485272372354152875322639381538189933469120024340828180053065031871033564096298671975147798220988108133743357410649716647483271796961270870940109665388175384950464768581986476200118074463422130915749669787834455837803432643294875321137438571813806906232431754544332704148583670682172798888409821703321983805810900214242773980350391463031826618687770372242458872287375652711326887927052642141198417935440672718671523634371913797822033497059981611601421866747022522838945044301007944780049127219546547054803090849523326856563704490322435580074281593120758057149618865161343721020178999941820346427745698844268781050128155117194320534361496135113467797654796241162101670514746000511902339130845637929790387786761246711960044927441183032267017060640251889605941965927815907989310367711976517763510181585087592548237145071926702838064093425259817778754141888376159328855939923663106875291813691498654854081055769313252533931618533404241001952633487467201777270150828469513295243201314754252107742322429386469291622144910880989179581315401338513461359237833559578084870285523677420858961869460522788679462837949108776861819921217216935187459911972801788242472105053666416786553133676846199188085423347458865628202266717847986333017937135080007942239037108370537375804233136977078593240864823784236054298330513587157717622665554170297111060919563359105554356514812526457600164483949759949814935220788179746209893250034741697905622168715141472117521988781483647270708788384379969707695017787523079995532562557394702986246398353892873912867047398432097317038899315143060478518278102623850342426453480536257665541778735430521275354392139187045720763265084371750380460090969735933922625632412561277001031310371646609625487405227734366478348488486395947625596772416492441379895085419491191379786630351194474306049249344377512924868957699253790529742796167395106695610256715812652185159280751324815757426976828030516775759901493353833294959346003196579840851214950782125569931542366271318758667119854829247580285387296147074341211728950252753446710516882860893249961539525944999623070907704104243143782945713747844687360635208758698710672146156008118200400473035657514068391129349240089301152744434895525436536154011882693935546247352105407031832593444731400661634897873057946801307756008152473103558869026690875930650597824002837626435215730400353487289488729679023067973105084636859886983860382932736941559554605107534412830443035826652019063423264077037703887720963264358971140033484140421400154791919480642184219401652019764248265809529815158043319732688110849666560138068582760563268224951737797334995735246671724624576516405317070396836321974174003757668321193120203602409846026643975819695881468125642292052841590989321638203417031131028369394946568528778349450682284907937534141439842938414410959473741730630644965826602994028323929977842920087773123105048386014344118990137259075412205527910891536267014466158708499680556872784614914044955551068769352770364475919789501611253550008836232269783685974886986094171879389306421483225340323103897220049759896828524189647418891765144303627429409177553617730563873093223175555702423376534988054037104176747914148781366724145612387089961523490357319122355273766385149623550150865697698912514502143470631787220352539913214619394554457344357816022166045182855755459487840781769921096438538736599583139572714813169036838765717077048284031577274005434232474683832710655279890816161385409884917173197336893341015087944911026608579390824035539183863810804858974492278436759518971785330990661073256455716400365709612743420663618527529542277871080393745044107927593278195622843522454842211006819011199588641029183363401716574768688232913463343843204032371311346202951277997231927206660250885057231040943804154133069226245039014597506454857217692936329390429432001572265317199166952835570270985040380135421034892540808595772028310023465873242460850989320512708738701549016611443316075101842440309696540607066695411534492632726412410382259142232629989168401317977975597874292134156870474812731836376533390935481409044455187100612156030593418493307296776901417487625011294548271302062896223272587619547921428014220639946784765751695123111286476293407706872609808964240110332741819672723283443734603847243361767228413912356955388348156395491536317121792801002706697473582479077108208998662878610962428392988857272840174258599626604167277717390896909629837928993507622378705014575987197021033165855098767368248807679657985127602851757468272602633444632457156152317177683697406615088770555172405914172719605787491850255892987234825999757047656253007931546406292101429577400979651636080786482317985326177549081392216618431634057961569856487516515464646635175466777918917448094342436872443865068771422651159544775465419196702895561740774632683446765270965544219290582435154966728823820221486972591934340630987502763779648812156835550155513964590929843256972761523775968582855028235681042141414946829257508015168694554671487299615611829127295342099209541945737927174989654039954435359308565437928401697522529346889401985372459081893172346863120232420550486753165599473701009263766277281731349020912991792416247948809922867432503569918024491674105121140817023542098037231158664101949049668231340105694969385074407085225543839205320661451064273047743747351789333755432480523843322154912923274495695069147857839229959593182857077817875379485576823500194312052709695050172407721524560240447757354329234461875226369181782772865583026609106295881188511676483276871859708451163721258420322611371689551968102492924120423681951095798553472605690210288698681641048438498953597674322879750222492184834144811181837766828749283996734045663325158774253444383640343719212955155489334758781540211114733485304369121208280255560010000950071360434505330583106435793280580738999461251265861957354629528827210733542678861210074867280425311896361790584432225205282257619101439831982798255092987885439829900147496952892961569886597162092567398486252335469758899810845005651063740017754718774830050729459691848645063467073933462491052048941466820212483800946388038414686113555295890913366383174701147093162844480223251614358574532280479747153700429464504020577225846685129634364994025453217946231636702571899250707204875620453652497552147225336010705927566350609194338106475189344488273309001657256268986892287461012374152904304793946790931279060184105962281024169793607892997205680979321742511436157170687502596952214635962858481274246722328919433686361555291153744746917704673076379070047675632893999971970168968569407419870982143221841390553925454940042505707389365900365617002203969392212084730109720447600283673362062002083047085669319231699433364651001356915179060002773181989712279284570952738202656744935863823357827330329157712342357780084475432179522321793899003641667628455745913653072154967559801470636120788587949352102438632581091424851878544784450717094031205766614029030414932253160581102052247744626475622398113715977602461803530191541852485933928032168550831426442913700074067721659898965514239606880483154442786895660707655941509786593551182647243143905653286850789611303735577431373198290852853831751359865602612383627579440910232176582141272823614968937106359369060559111411604565893704327491890851147825509588083522378688494801340688234117644601395112763722209000239683511042068613297604387748313726303400173022905359456326026695001320298066176601252822430779911408737759688200039484077706644464504072770176559656352513140545559841083829024841275925950276205389360956426376343184861984680543683863959193134073507620677032400148238954107096041723784365016840796362945253299455355951511271837292824618196045422078016017375685033569085001598697188708877565040742891988343370737722622651504655813488642308162763419921403959616960245141488096682693214699055267546896726144088368212566424228017623027659475376418518995604212352695197242285799587326776737219728141420013950664057618554895410242108353237325387962643513474705341204421894059217532634074548639648507205651502204198369543112212478497544193233760570272277844560308236702353652522196436210296617998517819754806887951837218282965774853579234253151460828694426216738469301306733337748734525938917722697276138096799174614838074240155295771484507683157291620493691430032293168089557584876539832693566718053043392348003680729001293952074296757631928177669196547696163392346156157635045796039603782121560603106136824746214870106619534113276814807919639703300175397073743114468520150405245683333586931777444204021536742394887658905725408903989303066525184841034711709127173864842774064026942891324836362622748513456262979114823353230065479433799557912566647154750575013200682566227514610518683189533210216087515962365917965294370218511991503212972126395884623407968240499882502916758480254130073958983725280722098538693599536682074360845872648475398214004506979792164301913645641899709457494588019167144649270782751736239349075857208341034645260431516466198223678389944375980936976894399382039041435981446722995157213367988679066779859608173871501697985831723222001774712648924980766168408475433818220053817618071750911458249241575335559062278600143412066418374383853136572837036324941738740480895754599043694610451734543107611172673065434881495831553945170933188197824340788190091693020251005274570783989135150541655022823778908145509746496349793232705435350686316080325883398337849925401485997167965994970322272473281084048238896866147146982927563055898562415763317674590972709702177723138113026615553188755653933896245184857657300669428034520792929402041573502973411866090827664656479788014082517148711340933089807065040801383169425066477328129467330761219031958471431056889351640613408271053009121815013418505046195422963315071674530377794329955547671321331763240649070533357941899816642948602715186154427163595151033823285840456828620334992729436442319609726723620942698582258234672776939278184385608867710875143937955843573681913835600904699317777658066570802604647067413192672334480653098466043172600341130424450150372841022611222142359656452148410190156295708095176121505258590156015498451883532575359413157633737025311135039918062962365249569192384029348451137251353327061491393467711505237877900742182931198414415632279115394512948056194434361843632611846248057078138163615925910576536963009314971059568090006059208138588691572648153527382940032900532464251349476046421135243676075232997003873433939862139010398792738537943580963686321551575550193414264795522057719017311833345762654478141785766199492341165208522058797408981060202866556917472537600200376340120368579139937687793585164977168081474047366442306477234210737394140330672342669204786509244662369626854283847800286067979702919439220652576369484767370542373013948215000235510062664080729836583078361060345280076025126946930494056974675885803340271633265777809131777903063440262547862544696172424247975663336244282606457234444255611051753250046086710172545400320038437780011085432747506260738146889127193151612487827499693914002441867115813001759763245230936138644322712414681297850038222629486707731451999057922366075446892448343493275015834149645207859460160175461690637641705810447734033368102026784692680427851355717576173531153045412205186283334187810534972625339371089054927574415486797286637073576783301842713575558234688551178020159711508189263488905573739903771422273531752593705202820421891048416386944163383633691389793633053778361694199775327980501641941984418376219928743947610671537517679056712001694140019481013076284709391133732507028218013588786058852747255099652342491885366924327488777453455798570093761181192804160186730997725869113006739090076388694194720799906744679379741234557464529482833887738630377075195231874553105211649320779805439411935868899679742486178673925385429366746587636505032253295077519273150198315699888522356020579161665249815916098543945924340665775112553795927446247743339156952018217615332702826725741468345542846669572514553459198488481329404005727866038944904571602753750254177824326592506732614505303815077684962432247325089076034218868613247165762468955005229073382644664163287766880162758423820692892831537822346804205038016497133028408510682210212135529707992065206278508113119184600341162926197901139379440532066297319480781742489036136564402823309894717949801301430374895391940274940085972328820726880283245557411756985468289800750670631455776626540769374587098592831177482231028975350616908670703618534153957860270568939916062800576960079076757877930753752589901155850763946304986850025943540463941089937287280878822072731543657008152576933208088653806186244929282539917748910757024084861744831097809324048045544333845455839782856232618154547421067626914048005988994350633251609262933162706469347963893500514649136712667810687029666233897759575126666421853000040352124579463126964492840962203737969417211516642068109304966579325676544284729985962982728664315904705816162550304706372352564960543846716436291605392794281981887925619807761720731002347013332626244768176601927378256127761994421444148389782330206013040109433696503728354597960251320473869506326461353615293745724361378154418563871878268107593305222116166298570667263816576216889941262802477366522977989780623436703316104850014580641621821646622838985922088548732552784491038912390420342990760393807088293209851362221537539415411778567388864705354133506396397534616933927406385392139969884799760683980525391901344673352533761472550593702610876251692931869124246078197207699322213189222106873964121036067108837428288185380541985606816493324916659953364256257851853724031042033712485374277348985052724925338997680132606644761501015115877962254674230579052834577198286467983687868463121914057406892818500260190644293447568051801761059615435951517848348978484250811645754051082120182785661778344834429536530664352195782678254322357466394982060254099705395908283461744958954169700479779200100773985065169456851627384453963963436484640725575591751084281125291845759110812131416345047300919127641633033849956743313144312524480130125660698860835059795435787803886543156448405672078441208876987361102444361051554225374191363709610778932150183869216874900713734291896633362752255227974443620856775104743608831691442542846024844929005856800028952094565305281562086612965561218831096634901793596223819948010382279658050007891036098547335575266700559287419319294975358423390099841676854714706654218123522387623035608697514916275415453795474725859477493686722863362041456791733189845731373717336483802625595310567372398285466946167970959161257907060129491270719877284098070772748079918273752857776342337339907502929421066837409023347112660960402476425320140633822972318440696242202036710926766452088734907055888637574020048795661063831193376493150838865835112397741861645378276218128089166201843645755978357871681084097926300732042411332114708419344852699556458719842466358452946497171638617867993911943123447933559083846303169172726867219036532921739507104789757871591807244261044564383266457274381388354292030559465696411006048772524101417294905155190927953163672702976761114675491765989199211655660427377722069119220929144180768194595958089354855679600728622702589555972018820036406312416074057393560124217305608007329650448528497089864529535573993980470806915361743930392822537307768284318729655782337432107431149851195967315614931489071936078615939786068077463239138384796930287433927880849309702250248295796217004240786182441460362411396926022999913783595479441636818911320709242433446193683935329753688592719848576970276313635991413762232131807780358400819162239692533336653965904535575064165433236881515699729041824214861497756654856999785155527368939658748805611508133177444879547629700475013090647628599055146478458426300684935573319573267602580633908356176465710503644350605358529934135382353629898250952909635499490794287604982749173086493207221534895101486488260673547793787000362311347553473194797730015345962884294285753099545069017954446154930171583748804664291916075848063667805589887936735486145119709398780704494449691738058028020021784227046159845449731226037458294317338625080263504076223387863108121950194336323706185993706871515432553472461364032841565703275649537567535355438966324105172846551050100379169284720563888271305102822636518595746409897708297718677903288905112469208012648176866997357571076030667635659056522539508219249267538866651525966615888177674565644239029070456604466290504040954834235933097529743972774336247901502243368792481793001983407573292002947176214707193524912147579931072943520649369529859091106807786432324451396035620789390108904743967411779576652056882383926190073839187202989317316158856166354830031644546319358815769702349391510803120426752055304565911021437426552534961699621120223059663969062966811984273459435260500194704627600369426496769439443930059220823678210189704208763349633530690986854736954379400207584709422867385213971796768106195505591562699532542221937238484690743726291347993750071268059460671257478221865098763611328422389405517063092312418246213373983242542348393754808190618143809702351735912874063371696633933694538593514564880431212832722727190249312077245148408423560266939416151344666226892752558265912802905826430428371872667185202852371245690307132964261796892714908949828747017444111569229872066242696966124472433913834936264647871834708466838830665758293371641853373340898172674721312785922322398323939428816430053232942182763306294036099603762610381693226900577296376839875647851041477779758429998784046365766313542804449577917263037065320849012938094835567235927801084629322842392731757052341835437101144962166960475049747648498255103191161341412347374852331473492316944765546149516104972017562724039876769491792825028917981224482217979166552312821643053852021887772827243083802500034077646776848023566586046544398970123724881041312996646609543583776280658226393328972530953175614272814532113660622578711897578163859676249251949586410376309304339259415068476827936085848339199326537017357297259925550740972593015063973981136735372810951133915097561607153576099332288585756853241108874731710675122463141572858770722248920971181534977783585168618394797727236964833786538725399563603816779284600866247813107743695691001393545815087982500692281426845326135986907209757899853774836681916294131063589015673009236823054237406767039724410019181059366484396699888783770385251826963511812420671945985964204518365514717559586570410989105707641401412579199980075851221447972585563428860028480125199479004202634715218804937404826940449220344368120089158584948570906059329331587197642799600161390656228890408074803370275850964923498013829757802041432052529738360727157866577853445904839548944565888729072673828626019672920814350701484363719388847367138308367685591356308182600234133502537038881385324818023115799056260383548774107044406217464683127840591158943937909454363907134191441327523479247125691033978053028784524541890057617086412571438334953508919501831830992384557876141405358781899998236134884127505185105923729882956897316250273308684109926533674792782572050471669609196472508903260527729113569798690285609574491639699089179248126265661558352449949638420020308870572146890091517119687237359477597492088607131366967795609477489257413705911372348377323264301888441640395283849847061903715248548179717940566020774635951336397964521089304105004613605166334053207419914711769443127349228338786478907550038974151597533529997320872764219523270497257952079881947949647404153273162557502153729319549131676593044123476185319307965477509159817923333996534548796570116135578366563629450417952646210588938560590983576250876423927070495221105965191634031065094555277042840933299470839057614377547298685024114693082817020344948079347160242497483026791987837812015958036469003002095875350426268786281909970466017484871179344499184508843412226253367507189739459468789720227205093308719540099322685693190604044617038284771008169872280764763747284346282915285952535698060653952734402593488921016303403024516704268022377266164455556064397940222462237859686514607550653627527910337448311474048054732080432158305634178422490669153689837115699311237715900932779776254906429184208790456130645624437943072544552058237039111581288913044598630345869241480915937767982384102183793931484420265060419847549368326209080569123051481368588330838937542750858470504347550051054918871918524526580020124144990336939988055796966349325326691032210342222059693323269593737718981981519472679867068198609219856448911551625945092215394532306864402900148833432593931764956133009309982953541921283318367288463942862252855944252525260922300625107035820969162720252792470935147563475898704356929580412254407227700997566946542128100307551581060210369585100964507800683419429355677160893987500102391345604738398684119353073581631874423523179474242909579286365926781846000862196808527418146755820780699726010701295348038786065745588792829449129905391083048985838846015730308753756561874765306028719619534191627437980630935951648330569988815170332129520313601840927153587882954281325366859299682501627781374189143162481765602152613682851309823987918367700383420525449068570626473247410482862267913795205595699486458415658893649976737053216088165215676288353416055834596354495745084119944473155149166099246007637096680047114616099473083455437941815547609403043577204133894293242175036009573156793216125646718410382528564511641903507653179821649146131129543843080732880456664641936041196144135433844066987784248543203331729524917151564735571242973078247105890471391051867529511510926302017336794785524021161387310985765794366054533647403370396001367001797257673644207751946593730119440390436619965200486268167660617126174502016039352744706907001025864089523461483748409862381597817158494256762574982650737372520743537647560960078306386809443417334081603688692768147870854074491428216689676769924643843040677842468591525475202003594455471003686179979285932316393806709910165136567331401885840192174513055037767839534798835012644161383116629959166687058047406697173556168390033063593323081714494946288622256109897432340141937246844184386837265931349172900921825634558565003020567890856010360084789183784645207055397787967272769775955140180328543428058968485540770579126332663255636424918708720404054572317697178061922302078551577972861594362312659206516366402601807900598850058692651814466330523488362790786118975369694452037545323708253253837983327563509171476747305671465310394892613484086181908472732055565641614900639189717307019484536406844646668878806835354943955145415766575156619127789412517470556971723486209294048188968306920369770191325505420141894577233604713398015802532178327899643473473236562618421138423325578284680326488119709764966589392367532597442525735640040809392745945059137640834801337333045277132555567370846702197922459016799618349189160384195617138226777012624763409091254085457996008957474932156983193313698819845736622818895976339762380311386287232925003527947433042740199399739708368388527695378839567241898596071528067723405983269847923606798594963326100252412371842741838596778064503625677192011958502111049541256291140074756963050337391528061304573149828438388153408887487731744190369539277136228112054244272807535185528295384754226148684541314350338321283574459286146400875611269947124845988617857015852894255521823923291521877556119006098418112210228436303350568589084502150645835380627778954851249792371057224024066629306853873503797206212193675859660595204295712866759031240846158649696487813487786489311574943955975427813177790305254053688943329454710281627606808179577325686327848484278050701939233668500148420004128924543104999078919690016179965704623679829737896970278588044197544862060157357243044380376111815361363483642526961181411144338363080426062384152055087694233756538979350441207157397383732181127096165204382196973120979175855925829531545221547176404614399578808586046099272066372031674806295591253782246794073034497823375604760160716248161684701499677500894958671071640191579571390789856717836082445938341329353273341439036835819927196922668328175891152515188882846994400284339312228850896141721215750888012705441757369326040234866092303826550257027187482967633844782759412318761749030525499875039367962248556635916533882870816384438647009985554054691799932294846120025869625467945289253117569774992207943811774643042034155365025376981857791331862422817339295472193792127071439895805659413304125450641874632864712775059430175487015308541975682511500344408507654282554344828354724661065196235690940930844041084600941683431364807455004617341103963804237194265929855970529994220971297763846700726022031412343897373612316009634182196648996692297015299575108579840450624201556994189670644996433647266239316808117431807298722805133242610121713131900220811275014445619715649123587652274354559430666365222249731654820606259311169670948387505524936473163118385529356321375701763916690901800259704428268274403916431035037105476950836723341874186365523431325814325553835515529527767322361829217428418376894602333657457682856448327671952436921947737382816761436027487709990401510472410618359867616433024950999292294062685045394078521793423797963169373266921723436035097515583235317679738611873520578380438066262465905430424423156473388004860452525929619461178052726262047498734341856688489138802534307809723562023203088783614999876410079426121125196374015359465101061865314178051574512140283689392090661187403905109998505354477611873576964785508036192261602075895947044691509847530773117240683437516953785301510500544037544116641916953577622071192483477149953426358750216564220442309886215667879535727362181941081224897598412541582742980469305033975638282919638525019348735409302096189058093479747329675023851170216772670214383901107748629364888761134536047252132443040811898091510836797739071354538471466310380616152640948805098382426896803277866883787382313101732272382337369035602144066037908243063917005685248233134194880631990016066657413510193521375904125791544598771654131896225889060068262327817835268662836816084182034950034431904397770868489418841763975039679405917536017757061063280479788693486379690994726488110205327846449780381640656756741065809686913804630585242374135722481653441463019107444625689881094545640074177892398422795661437327833415336554017918111990446552368647854022388434236313307052374181902471661972659484566923241107796373687968316949143434366634953238813027110565056346105928784514083788109233130468091479619835317335055236559958593675268538553598150120790154058366894041867416400445458901248014482902200163203230854769615526664749667472647350388119637156481592747559993608783575266483519759254713403702066521255239712055101838521714790251891447961015194462541138922676102872958286267264458674485937294114163398496318347121313936393384298345877734007189944672071959696093946017493361917894707960124060834527099573271668064275581862736480058566621273106437801087242424468299334441697929688179065899778901154789656253283654739929035614391909270754352917177345610646016389168594200806842986331921424139302983007109440945693329940501015323790493184226049044411452267237426943556455691382707672744800869477492898416895854321940063339571921954800207614927535370652642709569373896156459628402864415355736547794310340613301295370833939779999768258301535640982474554808299609847366957409015086171440046600993518290006651755243675742084611303992943958397910874458404665132432120218615254838130839761430527633634585401380750894205451749195834148902927383041514721410039706678706634007929350130929092811639793468112573965202485024027366896737987975529535363735014839614543240439403156434004081848939345322011723460274949148962085027984218222906861384805063936187035473028033597076304120216133032261844160925058101125789855160216484480089353583962519461074330786983784607959643211482256551439948917880127719679561954657851021636001187576485861751616588474563579757735695877695106170659658582641297559542729481632111573275239125012998679754162151669919472001570131537698824604447560601881141698180616677328299818377652797907354984384673371824758773258769672054956700908783413864585957237274189800783181347200506478385964175553319911970581014083253048396250941924338437044510424883567235912969618525518749151810504434909758808344961055551491291948340278812699939717684572169888477153084163718987101530921551613512109109081910662699011006115491459641816675243453833790918208168167191683472623869525125467431979117516912039834059191264485527380391644252327467522282424557371935783987793763134382369353706832414336925195560028758525493928969331901060247941078608360030432436654953790636019632515266941948095699623410991423431958910640974379698953523299233142459129994572094750411464587393188794530737251991842878087914095258401142862787043492816478903016195475013247402261286597318542413644031922496902626987972058012406621710001300494015690205653193588190775720098372811534219952740588026763856867682027093106811018750130370903888269352960233215269912433481511452735199972219561855832409983235693577697484528652160594016530368046919917932743199715744252098032067274853009235028826997847269568459168151040903093269563378006085860403866524687227754492421907653931852142967893109020648808956860505551197229318103510666239784449861842406013918911753974211499857309659402231303227175796109087780444799371118405392640403624543703328283210812049057338033637355362043510410560077460699029353480519361933736407940389839851085081268725143452045383747613313889787166696511667678185380557940512066296895435817949420461366614329086981289435313660006344548399699961227820821726247272306097667630040013278056007863969522653724901838871090202053398326027291361380664721562294663306104525285808868267499895843922905675276058636652525503361223789698900850411813229954420514070839522351153645603347056394082169526307227387056555215281884836394252761180642967773768199052961380481823794671926202677688416192119873325868342667731173794168537573804630826641238342628182270827919856409037516881137661428028498389325766032790397873143729092892377655582719777795702689017644370940995460157406325410431040287017690727519111598058971746116403593842382643792657803007543735092990886287217440640513608026468365105753242127431869836762806097735395435831813458101649600278767306058516998594256848205688181652414295544551093251814410970130944632100846039619995782388334677605230385348399379223500044929342376542662654221608831744366192392970711091129172369667157979847762841286618099857072482043184099584660700649378474020709417472730360226943025680824778894731926668453563538332939544992026637948071855586303509381403552466617818089231726218213251151170977874115083433639820511773666286964724316358684748154352111869577385349698378689810738031032093474398506231315256844011933334908530935734610899634321906942462814040202579130110435449405971223090526013936632396441603297350181029221047723274566034199821088244946490996134726210759735907992593551884869463481375790275280688902681800104387430449779798643895098481340555911429405497743235795854034513724474860253927457945374493170862407932017954338761942235520821465794320312045934948974054435031400240825363991237677733611876318293683746438545858613971655861492467031871377419610119649608895779797013023794693597901167086254076373256864137088535622581066680150800877532661905365721394949446649726416802308990149921101342589787894157970565938736176200092787301752737988142317000820684972472215661619234741323161571069977294689061009213546776939296331327016650025895744676444829187493402540638258663609182766077189224774386322145901264707612598741793116082997150457676407454560342175076077298222530773469216207539263660869827766273706403050833775883082043636110733303964398857608891063051857944792471280014761610589910944400970027427310622008470545377867494575127498459662374341620506521169728046956218929678631588428923756351296591744673298128516943568108952505817332835952854899424346313378712600340431641003694243763869844002882054218518273353490718698081224977785801231281066279486520191815864494380427321677811536697987046337683284464970118514912774338027189007432167564967649810078835782452605220979660252303021306706628145215813241082857710227189166836535915644099064040027593424903913473909822009773416276029401327660264379457065465242677776791678556020719531379599106583416868427670910619741474169382013099700974235450128265977592822699163208645410886747542287159611974889661999961447372878881009104033199019986330547794854766223637528330039371172623559671755261478073461993725654334570012812568778147637136309690384979675631012304922078722615608304142371926086333236406105855738564040556858972061797118285861404470972111722910808429364879351473873425085651454820131797799025441762010972559558456270143589985084042567378937222098768425997684700803106423013070963797240189161212499134371090768452870265465138258245572604209969684742864769135756993838686677791394446651588009498735864625428171439246880539941054967471289023322533279805485665593470292995985980029648909306571833924714444456645304145671890642639761261262889633645658786365924024572822441687885524611445937419039996003817691363772583358348889093481362691756501657945789986743265381066947747244862492221082668454410670624780105464963467632481151972806301386868176643224603494364688828571984040386483991278888601308807080522881624531508254563926246046077576914708401852476346371046472584505924309107562352751721194990212980615282819404522538976003933752724345863317016422452021889939687142060867788280944429264650014567017642735297701434826685943765110827318196896189360802198386908135558585173313615564911294050993965431158576151616723132640991164060832654388891704426344024591973488323243048746866813716901229247135996190868041211481169574514779719173690519765091567226265893941831249356566796663864050022368109019028077997828551324137124028617385823299053148303203041154691918243916972311786701056805403881029445987793401704582083913387036556344396738810670753249468136024833595519823895539881413051906956237136044665684468192466138630443341091912323737290698369169702464203062111609051225267616041980520821936424493196010153426937375558895605119468676193039721879824324519628635322933886784346007659934253983156376482212023037163346601841019733862070444833455643301010429070146031707764857170876177860543035946870817348741834572082264393604875918453560288044618060737878960196500236681101556086186326803955210937487297811455681204258124282964568409367114543117052437176151782976638545273320577796988533207884694784354222120636506424590589693942738470702699380194517284710186616608729005237795097448584404565541323715023100606556677179085899415316901347063352750857496417584246064453845376889642565388835169691834746989970713915840835508126379546921748826924682528123820623398783623073852740512964066127069916806295635872557213895351347435608016848216289882487715668309926002747102465091501006388354028982359512567358593021717674078219423590241391277889240929455516142450997987531351470928124203966506179715244541078244188602091086454020752624490993769826287658517507129317631859724809546981149340365456436171484384198358068393637998756225580909387211384112026970285759807762608953376060985399256612483508972847825591577185525502441265510031903983645692519331937551844212960008589021782794923963251048205164469541911420784269592682308804227579026748126108143880093287848203871258300338428098354632098073891138969125111528787864038873440068622134586353945506452654327740117648089689802821097203436043341863925048840478324587994686030114018085613409537501238408664277816134696891452636832124932047503631098059304972845638858127693871623208072620456225393864901069163039423260676547674028127147577871540126734277052085991851125688544558040699125858961309802076515402245931313115593149139116828208174672190075386415303161910773589226937663869120665187437496518885016010725371509632834371556030250905651464275379317809603239756648774701900262927393708733903934918855255078210153169120701560509710135064663267240573163443204991204568958005946477567963643203969203341983361722587859881644312468620390012036198694296554992003456652296664281288680959269507966907715413095115844501644920063652118889307941418568023815020718796663827417779697271302627005522626146203806474156812970699556457107082242383591862723057111782507038372469336810800619642780272100891632400897682146497229851523770820226559500507237970623423476823594502688110090625267866753081726872788102708129422069172415516864866298118649551890410161819414392481693797833074738116651649786611033953575384174599058411315624466724862957378408690988327997764366534840332355391364716020618137291963363333086502206122317581540524908334956333744672168298077260987533195554439773348121207511654486636211921577904717168658343340039440025905857646759745496823934724659201555857429531563421352018317461279402379315723294971163972026997949581466108698057142639866427039524829834153941986102914074010285814511732274916305932663924722622988853719086271143298506901598539489106293802059562408420763286381836157356007651282629110981818913873228413339778556409546049187739384222084319730648677588220914356634382027104838370924596522151457801843771163247194982439954788053586960759298739081763054290480457032727152300354856697883548921827003442557245516025220302378770254439698915291876498202455702981362610174363006393853255760252800687420918197691406597804895093375491154170789882408638862891762695976976993850428742537692948743560258948443843213847975171778325946485466803660956515454540270306349844230233928361308409367836498601725858863390339516266979123798038639829335340268029305322585521147392655779053597323125339474092748197324881273233207835759614052429306022867478439094578750604170071613326621716416082497723470492199280717019268595898266485641012275856414673107778946272334739226367781402459101218681884557363570000779518910988400511657832347170314060219212899331223812615234975805328153559683352651248697176287025400396925263224928387744447010783051385260703649956549907705680874194991892549239847313966585979580856335264315044782242626119693593691455225369659936000819273517734785839189204004242576011758886935492673339107940311380391246101867395535283012018087151042504819250412361933130570168432882481067408273460695168474581298258832961936847375016896496811133075918537220720385008301583041013017100892442718684722914362893803643824779149136748159156552169556897149657878403723091673000104489352375399316368253712554573843260980218392981568636668486008024269517497878107702540262458233738582321248844209340716753823340696021695401966741881500039725348324449170455034663146128152616436297399039857811398397250684884365627771449084532336210189633957698640427692224119052961449090811406953542972910587405808448788551427970967510173725248858459586140316116321273504375064388643833617006486142711716514600945508232714110157415619218100696622512902955504497087553906537790370612617894411757508053350342050530839587677321433732969884388308425576308174070677951966809016361812874267317921578668345350971782765069802937884663243002186909337549000770747700016580214006024333539990480994059315542898187842543374976319034328302838235719305895728924617666937151537315431122460357553628580284657812991680511414241847221977463607986090413979590466544143238937597025924718096077760249127374657361766894203247952352009392236110412775937593568465416299647536101766446326452356614113656175631684897679297989120284668291944689470381215157327023414335552473602459992751491275632143310009070185482340812557113107885943050228596946979718552635522829795648623401192258738241284199579042535519057218070284959650891136926339180656798667954611670004843294497683716435280402966722260306534469105832096083905973413076863075905805042295221620903577393391810090841728329450814134381516897109782209647330332485117238459054829539553691757299075486739698562686229699920297821438758724748242558182923555882097249926586790436808421448101329260253396315271824056296758114581103201513091542973079009192123273543154315600827961278062299827101590500367021270582762274514751854424519126471732356927739891356680825002460135762425803694246424561295854565615575236652614521809826520650771912889800210438369441543814273979791053147567713594581302776157469589935918270938055842405389653561971478519480169349888013355021997533134595449682660688610674266368307498633796586366319271050617650880050472133220920122653758785944004130648556196178433846515873777930129183286602174968032295153263736743939228687340163639938844776056240957999525577385603845857129317785818505415496883649321857713604537390209022627464171871335776372310438839097032268144631868595080516445769962301636650187966679323810296808164567406083282514741936406031423967547414149280691613323221932500310773658721394395770555214094832053175651018895308122807619270093701178234727645964538094630093575842932670454230117592736969303860062795967558123273472525279069810269051810703811853392807204857148156449146715778213383781085015899186238026294822228885528846589194947286242355482956782630155390050744656506992446658051745007525307966498095635085862961709111996869734328786998591842790870499762752713112883730126049669673251501419240178364399001732091324531068149149144708609617082811772384468893677399391886947969325820710182071216302081001505546093804957100175461388978179261456366993549976931748220296478290659314516077665387882922103451418792460198607000333692979089693807487887869406995815148010969682333438725757027692335658397912220576203362007672145740150691921762956511796477740865377822734247680198916078666400098495115394936635337652770875180409918017756408018943012449881087763381500139188352827383369528164333552542482885743299329599873835264001363389458596403541724740717688558709211160783810141620735774931903153484289104656961778918783183169847578709477802691772161335840662218495813581903302715273543959621670191089719840298741913026215724465509827371240663357331958216546027721286790305664112748281287397234753875228015006924893310793603551363257636917341574161818996985447680496615442372462552781104179515979390476024186613466848558962382278250141448175883860371678554193531917295113500099639856462291413435081763318163136819937603806829868276266790265849992887677703720519444442554315145517984340408757361390415968833302842746952163142881722592529732634144270023852818175143715365452383795860860581058885422527807897857317278903154115767503924636243152010236151823918366670780832099209028325011087044338104173281698967620127623665384281880878573974599143411710187267827081501662401687932419211302664940576555350375282236273601080180838558830302269981630371134684613396370724564786309604114286065189263675226506182491338558076473003133236390148627344905569627739079040952110291611196068050032523955725524384256062687526180036873378744920498826891639753908729295960579080000179449465884795181262513820209732651156090572908163591245547723209990195374807908293431738149904991123647898650908182835502830115042447697100342819309442110320468282612827125823551570049188482643879311361714957904447715752551634831338133210840840197219257016443463358876670003767498563560098547689198562694041743247034615462450146736322230638125976581536397741525466160578528495984228886224209211252124907084653928502887122719197845784114429366414566220709223803827237882745148620726136938652752948032471922685747960419260655671969450606177669311103760784898088844521072617892707899182090276617998306211382735110701528606584264420573784371073882970610640079213841509803712749825999225127497727963216449296107368962113187806364558181283232537243362991250950880609185629783192674214257724843194401093549080239292223588684354960364239733251186126432284532562008513267637491947152252222311819863120451484053056518209819598287323223319738443708315178929182801946789879418918530037056678282519572678429882630208616839989016933849013648132815332137505262776864902254093356631280273111772708724887761834118876886561011018962121765032856999327922506578062644823717519696944648581241029413050803098522069203985235073978969381401202773332462893568941076099756797102454625755721624229009845109189351449544089355887691976594911081843297341461458022021858939756452281784121309359587539401201472275175403445984882901535816326885696757454156018469295542329431311848931384351980918781157473491022040871532926319245929626482848999410022230645505585807544906891488738107720235038230086776807712970219017431019096185783878092481138122015396755966904596306182411692213615334761348423423759242958191595923281387022225821430421594363727692213553955751762514918465477743243682894117256149442960777113025373858327478127396798943373465621593745499046905295117218158544528125571781314885245309865851852819221537250703792439200997494434248639072287329144753274503907543852973314697364034996434656883628316550255163046899289715784624301933029381204993684266201416382910543759064475262315974444272309117961635878122266198356398861809578644923980660659259955845223301548137201683438209811529687891521362869996787747814484650407310996317270629678922345244214929624319874025029177851822043546137024715523181247020455016487604696387830954137077762392859230936903114127592686253292918613597355075403478456183641876453479721069909393773869360943812000548564238610018666328339129249330293191470718430577666026531454934272789022296439574797800862207945697483251638796716884941648584529181582122405488116203857413600072967800209358867965882549941146913528888813526671858644262324086939969442218428031842783144237171969645092716002753851587589646358404417172252092163999367263877622787257714941279813038503320173132712882325752605687668298599965569611411173787957603015154722517923233183670569674106409673712655603831137978529303165917266904451743449248211646060132312012758528946845558597314438211020725999321978138970562488361335077344481275431386402818398822359085942071242468827087187680223879885109174503766740186708637193924856678335924035073688122314160352144919523127534541945497259856540392077521285261231628736344458402943662761747375394239142407272655953841344856392340503721769056605318605305236144418789704139893828920566829546395209351637122114379810733758564044082489492460172021242383992106512808080282959295605638145523401251606657572856123620990911447715482971381535548789202330380219409271603769488488340773060108537244078091246504538143774180208790301292470307647588670167212934352299792241768311747914998033526104429360998018705385679506425120697842218845461804491289969137178524667099984921763639191845726681955392312092663044980373592534130942137042227232515886843773076453325516241873571600874962354280606247492015887238279238995022584893064323437738484168338249303948193004125355226527737117529055554513314598938704723373558808071466359984804416168127201423625213254475595962526885463792280942490611928219481718432358806270805184928878485482399446110870423577260024088436373578142239382026699664555587451429031470685120762055550296454454390546123189097091937319607593408155733355966776872908329525510613223319793458835438086019638713776595466732467024078239180973103463867577967046306626689726343552064409518170886121579871356336355112216710403885400168601512481007907970156300686240413255570039570216358006463020903788433148872114680176680854818795848143092658039829095363487223467767454854270166722031866778604794393183985570574232953133764025085349071023693346365639507445988297889897644403827263955416388379388576405655295314298758494019177890936113002047397495294303930004537947041404648905204609563708937363150226967128374394545432978823496460900039014929707176494225753775847641333314138174066365635777027929124199865898538784564638298760456940621666379979803763881070699142317950282058283686545988083768954059889885751711685786425618929994902235020329068922193179854692301606617892880444909306767006465978379071218492581078906555617589507611968734751833649966828106910986875643085960605743494474548522948461196055666303164126490344857071921779176328571164582621549983314580529541182889097184001215268880652543730120099178568573586100229171759477353678031949434092721924859027275900721856437331570400060803742067016938888635352567141572064715201227082104025233592684576738022191663890099405607486663266532002824158558678779730337559787053092121431295520762515033768360273865467942891073582100456033076268986026643862111378272916415717504265172029137148590054967432548084644668121168893013522186858537090587554490320252671955080183325365286159640085167669823454972556453233514005794036179203843044730306005914915186397364837744994778263157492611929595107777203883987840939363298505963288104260349651561611626894079812517963348513476238466463176305130779115419657415477045175931343385582699235657484023011179551218688152703317196534705828756632655788484688949511231967192336773240412774699209310508845629849316376724474614204424735094822639482312501408480032898075332664124781501297554102564567747524968153163620811631646918947522474815365178245508870773134469829944340506328869888571733433495987157072442513157641241862832935224074072882218453182372883672110105742213913591875190291482412381314787026052033098159596170582445388531265593869495569147343856178649836996054028567243833329590038136222904866618083475970999598676351567273976435714047279966356226947752398690164729444780419902272075644447998628780346748778832145853662603117314307524632532757945859226300666670711357041844751045035837215883404978679643408354001379843184060791543127310554386141524638025852797226588092774275177455579752326781640469270011343197312356560375708631189123675644981146269059643993586418774099873249074541598920077364958111522387309064737501968079100476445058060916502981482164493643572060605070616932646566509381050941312708351500458787066964116231833355198265321900993479246088409159733723450652318787207429543531037215457063650459901787874644545545283364935227128006881021665670564276276113934347626872894734787272673709963682205864348554965977988749860667023079358758584073765687458869813457344504252122391717440758108477636163385082686156763084128461485751382298140226180561328135958749168381828324882591281609457636294530237297499497209848778807465673310795510959107320482793215676906318418971362581690381870562869697647564503622338862335294725138867113347584624541308367266211609527420436236059379270217867761299797897586083050730840063021980125676720019683013067477843658701855759359789782043851491504718226588172038512174020651310843277155666474080682352403147766259299165992112407645418248495944974912237131806061546616780835822827370841855992443531686654620018360659546139608735718805463921718356954045992381056436653033312074882119488883641249417461007313864142892406090398039279451439038133987177049013402257609816640469988038945074414058770343511686224425703645860886356235288235664322154312432229212403308004076976273442556121399110360521253402126067354511028768705941359675804833247427146603565349569950121190964428732892876080053579771893592276398538730949000328002082427359664086179496521651663993887339525878766695227841243307915794108108083106893877752526394399467419737423039219055086041928972165771390553391795667945154133639680758749786324753355807025741170533419165404342846356719017748832379876760193320851176816875386958233719380261675907073158402610177903871568869072231722053463539148669435740360864794410125779745124681915483916953011682351684363967009597661785060772325053401449357730819277619473915890204464841599350694080030185895204344246540432303543859422979958958899270370276309254274215753837078091379960229629634514797408664184813448981882406442276230971462648185473013593155343243112026221250357243847077721007014616663652493402998349948417873618578872003255817975057078770107967254044343592581493543471223249943293905174397364228837190770031600147760716057079147428454511254197525306344863545732947648271014649079618643449881549977876870479452512984032039868380136630138449135191701985719221416426292876027454055173609294560303498530350183896158084296069505469138171005934388571650091635852060941678397680623150804602306504656131060451881750977386938041623956835856426402703688282654587838815953649628752902070240689965256900726609761541715267274367586927687852394530684562951188817380377603336520399503908157460762709913365745286531603389883676400404612515230047502374797661337335710310546559692047944542465164034148389137449222046831411606752067476275649409776685281768188941676581800165080950634893161569090394304854796782038570092947162853405288692546853991876596351816826947031283691750499678532698661137065004683122044194194622292040079982174870730258161585597787577902082674185704091572691838887010154879472870912697186833822019808728577262448877467143744532501160925941828910953984114740940365846538982405012507923849433765832695504787786550215018663687597479996265067081065729138780925551935831050210122386733125822063168567764347296843880036781280266822946770010647396840762465383907618897084339584967004763818355305175217534167303126746365495051734216706124664061863969265543723492022141324617405003581612076278818969110760371406895845504006189183387833275251903038702448661953858234027105911567149430873723577853287604295114588974181740462412842859569900266939006222247980905721018096617745895649202863909749615604680535512706494401683649826288112172372938905679744019722108747552373178590348776777204561279503300078141775083683673066559742309500282345737058165639951115163499260389579747433308637056332706686396543514279832790955120673035221728054343094540672903695359899128582029095818698420808299783331111255228032723663099456480970784683461898575415918036045610667133565425020225454567607071762197521737941300525831911793525796676949708435601560374649510607378619934389248358542824056140868416662921234618242303623562109210473067757290365454645078173491014503303923655532066203865404102683721043366099726780572417957849428392665294652856915416464025468789132157311682054335862024706721345727354395915127784858371124689680584934330474705085403332003815365696985266511806844272537083594597973005472212073237743693008319075307691769422879136042426731202315824201063864808990306594931728382723436715061771925208207105241449419806728299969842266808406167143300549637190095359693726512160478762621817881523430454252279062312346529673478289524064180389781978402665501207696629138474717285560538918019112780369796403064768425134819357087187683135764539201551425127354254519541646708911658315354652167676181222196044696356053593174142533728732644094857222818670992120127246051431558310248404005169501650440401980776628644758251670244322905414174901128339229503838824774287855098806238452493890890423582810559340863840379470162467203127763562103433224810399779455524332565185084924736561792274273030507879826263743785742276576137177997306346126603954140541453165710280865799006251615092577084941043025902916135767557630096087517620086313470265761362542903401821440582011107664584644454202593848043190901726583445842773977945334279397710429327009564006584608126003596627826926794420953955288517980029343540328690686294995830275344554158927108424838657446765829135737883840088935612286776412093667090880201953147913414223142704368960036206031806296469021311576737023492003719143365939775271844483477432177018566718036401299637593361785841367818612587745554223663322833608313419518066913640415064470879499083283321335373430161150211038920730034729422267095738043816192989748107651968089661809889029329652895688887786351875535359199614492796838920261724634047238316038185684442907967823704965913173411920554657731700384850891360052308006034021102299927414296108876693459980128283556193103861337854561493125500712142463386376351369650475651856102619018375403017444909224955071959685768695983735397623342831802695683095810131862167939104776264722273878958277179300453727628214171105619891679996472678254254722660911512124381942812737814013244080002307864694942169936014323456951937823804062776867792508629785829868521628705029044137968039197012713607917278627239354997388192431223619703839387542896752249949267778342512768338062075120617427823537163604213177389192548563137263237968808565989009938209468197545953244404009400970297670304689965229989131899740425005030566100374820336954465315782964994850253110162924118462875063247658843872672391128591981435177006711071907829002575321765939713965483403458609363470026606035458175053701726330443300250513476364675979572707318187591067878044852870863070661701194227084786622222322739937884933057001825284381391097373790091345164586702293788787182473869098326829050373912831078711739583187222688411476739592600226087124457054165830742582757511571797389364039158467369605890486074179783874057368849961649276864014767724090688013858074550055434862902881108818986465786834650119684364376524481096342223687947631726493841451120665250500444639731405106707001287751711363518786563343655370193894363936697475509538300787711002131250894214490397099657660119262571001162321045137240000130634725147232014862366453129676350133990591052305217559386079347320850540724032468655709762799992187753374556486696675266672080194386366750393190964247481822325327044796974018943484309729426228411587267216762341778498440343956720643422402243873071656550812660234877169946275476339605565883021419294083923338662943312087066855123394750693929340447401884273473583765804009695323767358924547916845065429228724422502415672769197266336352441133171995101931885457264714569453341230736557485441918327324176484553930850118366172517356326607355572373578901569806449215012040188623369662034366822486160694490247960617921956129303115115149729513176964829687265052066610429652668205760817263401323692223215933211010573978060548445086528840116779545229483299677655150014441629909109428315769375486733958498068573559173704310458761338172477109859421246957398271039938421181974852599226707292080756602373790515613983878118839309500480398668210853681571937546220920350721869353822134914307920722524245281003724588399614385387335113057567345612139538271567086412294163695423683886863677574947360008334746500583040869841645530117499786690345133706970461394102283207772842833172994723823976334929541876892953963950163257859507423247645283458680400133572609004513601863519748286467218389351915835438047515993028394091089597853103591279449720772694291326412376733491986176400854183662071904196575775673175312781327214948855890486683132850404472949236210925800957604969760529111210126449609100023306343453728883825870610402455133815487252006532981926985002254439512997546060868495404105877457975911892516638416053882900316469150549495511169428536679966912916693762171090436660614396071649610056409768723011690030862817124403872026036539664696870188022808908551555923154482924515564985447214124672609844654127863116684756619993210494015280573031319137460025584575956579740875798988698145865057682257708708251420580986136439622636259809549940851588426526778190582651600547594430372045114608651004200685442971589738004214604611335367775784020311698436504043453589096117244711000528008434448952002791582622084701061685943651667206293742574503443850603687861985071560405284810254627117430635918234531635754953045412098110757170275924536448425843573941794755097940535277389135123791989014260923665662375442637141433933637337918625355213543003028551470716333455075033138011737178770522727466292465263819744027472911168814353360736734281981334431163631216928548493592283801353813765051382369614220746806994940066295378860260616593150734670583132381799960925983493158224258848510656056137221705024613728204275502236579330271705217139223545654178584471889670265653191302292692067852717563749195876361011464061893253936328503329149229415784872642118975276904870293867926138451817243674873928463797916367336736760128887124777716620739598943976116914413345157836076288012637180810152710824872566127968499545753856289859858752084927316507738612628270707530453183317746609864505467243677521013862994683136045415620383089536723073774877313299447612174046102578200786465268973921793525535667159362590628372859864534636907516046438385055475828065599870578683789237240158126553990112567406844486812715579780980340120326296282626370833882948715786155070194794787837106363211221226183744921619042601066877073650299622369167202833097881289401559753159316096839301340128083079307396694010523684701117801579051207212311362859190405508422566969697427531431252630584930430621661310714297508798791370814607845590603430730430536489416276362064028344597659553371327495359743090290632995218774162000592627222591885357837255352633613878284988743054518993523467545928655629263398177107212543582026881924178686779260658698921427681985626659908556471639005783461947667643420231933365006444437595177548559882480511080897809630749106345248777638928088515441056022389469672321980977317138676041706752646542775840833807489871725252601200908059923300160758958041915815486153534033310527401605083421264748462046488127443273844533110593994465958897529509936562839225982065238040884689955083647082045846868312053670454606615996379393447796814818635634881339552849181966878369578098897481573582199863172995595314096941858536502934807098826738785555233835546805181920424432786981841082074597028313812274035569676533658211227933112898389634997095500538785711270536782667752549530908051036988411771910823134913485551193370793380495121422987156394985339242020465180494820155950628260239419643126696360195428879127223299951185294253182411965516826409313411739106772558811644003104474519422301193786400560390468989058013668918131728050360172028948173848099030218990618049422930415419912091168879009356090742597764413008503957986319349332269588876392702227584889745715443330255304839322813517673629760085736270395027420440503675501017584011308267064555196789894257114412370800634038509282421789094802591303401453730858114041819561632204615645563538039483789401865803110194453321511434787840277019592767313637797416440915086967403598452341025447363437009937175227258002840394867622946483016365332685441824944013633348289551821718616791980473412118728492754592352104251492123964286670575287767913419283486886532699029861712047127144334298858850023870020282384862825171705660974154691711356604443836036482100255470289548698072555356940310847939054368083484312911126802992754625689971907650471924555655016881096958866741649988848162001703534247242593718409840509590231143281286660610177889285681721198675987623164033993509466127112952141352147624690474806853756265618337129125805368218471141388669519525453111149218723435798372959196494679044361256400685798176689379368255374368654069223777886424807215006014969754361039376824454826150328375984793088816220487598337109206255341079362590608370392523974616875046029865367187350213825026763590478670664254375678190669513404255319809889640132924336201525378275340741752722457588977783756165085060349196755485623128319918163984519827925168552055350639962114764668787718597521272212552925065367335781239842984221472270195161437558710440199151608140232832558255992985815782009854758783518766556940790388170569249626791554679767891691587059546993994825756401853399318214747126387739594649705163749412974782335092257992541141336181111458101833303950119080194947351965010965150745084634184045215762909729662388580797170213676701375080451518733056771243199732716466555730460116127156556686467863670496916749468958920432986244718193655885834953172607791488383813950089877254224273245632817779223855679482102645425247363155681202996291350184261132721708269414580711157716950357783809990271135933533908425530607729123479837152543103769960376132888663490286742685163597539057095068076699190723273779996728190572281229346375436405024993379833632349381320607580173523020596460771684335305646907017045235019552978942835008341860709210594803064509301984869911694243121254409605507963360233837629893793598126741764319173542690859258006220904419532611590993615075964430675066346308031107797225245229175382932046598389785447647561475629396560014947554366204529308060785040503990990608796778985772683091029500456290391563675735307729329044224358786150566993135096750878444162460288640723875934381263649110702153031889009881521058498661415983728536272132668553097939554516005966552730958189813497126122999594756932098583571697363537781810963550820239263061105920653481431154084380159523484195836818310936087783220154857195195279688407959423404739470885893265974892587344692814881565193065370479541580509104340679615209985189527491510614609258129199392813626664257530495374420021387711174782720390186283538684288109529988483091628134867087557502733830722793707363849052749918081089642899212825389280068594452237600847205299873071998866881606976722489766544240294754331190564186935409834210475241394767257323601785645037044762005944626583360178203223731346589925240691629093264423479871361050228592510739651728090455834957172492849492307955335755891737107795583390496213400004764603729466474214393882302891521219852008192501855350091254157256828382865382140992914987451608808441758269685928018641632914821951799295453823610527305189434392010068312537275997853322161713980252487385200407765575261794269892997884538659299235251506880056232157419793795533812371849486363742134310685060263677059989175194382294588330865148212578492216431547820186336421350125062123620361835025337224661714303041050335660650930247936239809861638205883119993822743389242299512342840526399999612145962099431286408030431251798808477195741519752714953830471219794389247702124319554449504843701139605848213642741077391029266109184378285946931577721228208607472522589220847112741661975521755224606775383553384590974833546593324981931554231919213710577619291019151434946565210077713251090370995444792884927423931033466566535771172330883136354729080423222921447180952950845645078570106567250696061761294461196947060896473307033131394014537896191310756137640794049149719848950008574808953204042040843865861102381236438512377612571231560997178220361726198719082932509061995881083782447253986994894884493576064765713606904382476251940134153577596015871965057976744170956581067861612711417388863527385637193967896572913261950253915149940748243507798432028284852260664122257179395393457276630352574628192018402200090708863209127505623420527325702867663463881680355015945993020483306525397619935444453707986263466844097700386128241046479303736493501597718795502666635983163321348148827442409204843189826239845329269370337150128997409721109960223011779971327467236358635523532423526253340889121737877407972721778720181688470644211768314884256272061197091106661306027672971146372796604138158792523752220889243244645119046754982231688998823394273107046469205497632023173476182453148677848901676466232293598987422067249779602405505684041431094337543147494116060736036528138922572575519428099469946027895432661429393463116380169530373264115874057421858368020458178633434369116092536966502277693643630185737822523590344554453561191632109267020382995100598079812460375970009333868054829594771178679344703329604130773387985462168951791721489992096442189241720149487464343148701025821438940309568043434700728894660799278985974702797171256062420693097963715800615057265703666857737211360081190431803739466205904680553673426671964348259182440837964996515627293527178681119219089562264182315585573626525618250770989091254505657186739981990175076514393146086152787257007161636416514382414136658808418640675078228920998544451686484586211164496074763399463653927245453104004445558507225429458658820133029282401486484412619244686410410154978534656734183623155568513974904950780212298756502600923020665332889572300932329897185310891237765176399136552572007634502359342373146631341145121811895145123933583261875810340973678457656710859363904071577167046813821910072302030716577377983117790626118807363293463044539098545771268152359393915137032854295506765004089755413757088291610827834389675613198663471394637139029061021683506853867347344027052831576279672998885185782963136669923214620626913178075704979160977948799532607241156651826994704341826448114407266892630571292458900543726597300425384393615464877061651718059322484277250667931990471890825943550090906895551581519911044944542663090502692144002670398546195146468743067151009142116749591238866237596882395489625809495808156395859088637806202070973317929519474119342608320805482769558577153317040588749903060217321473172307495983594020271023951601631139872355565622726743479510493747525471936537629791799046502593890149771981245942770399681736524038580705869173948476406555309116619157304975494739942870272445437363536132608312380362797044236380372274586103452793340937982386189273455691703052028028681442363117717946490365798486463338450772127323081929367746392323160265964436908838547885374032917818195728276939460474346214538115955273368306360325195847612220961495686437595009823461460027410562144843608098427521615026747782808255292438611212188789968046706730956115667396261908683668448652938345370742575374424686766035335668225161586417874332399473303886028677258209026786214561930208544742614593776166724662388432044117462848658045686612136665843491177707293153584211965762457425458232510461803311989958605817023083397781637102077413536714057519088278980550000244282591975474250856323724126068556019286095757166202242369130392906392562923310904528735426300046745964267864849603069893494425191901038833476457293395412776600227949497091082384913901277628276282025593311452545220080628597520215754619511761779572728879773870577688150436770262640317931875291651799476806413964998006632918531678819539312532734070397561444745297947620629561554065107698969985982593864609754195712120061311135720260676566198381930008074515545103816073382848726029430184131613800390391004543235283757971315574595167590183019847327388224473755951677296733897400387062440615044339816220550504044314627933381439022562326637601882214074003880144038457021312038149853698119300067794146493605010111787957805437976962216660620620814835053136464162764117675275382003159063825714425215982903793757559629208130295262913469195931757044133811989504248582914480015000521542443741676018046362169885534571125266382893371578547872340216576593233063198510331010180790159616289351013642576198813937592686625454274299638591721622907075017299299065364890002215777686011390590052331619965431977104187879159615341968834429174511276093242524575583716293763184656848053926238480779634982013995040383907027254589137501731878229154003890021854754170026337677215258587024784044481177035826992767539135234828802084340486752297192543789051197941515761186517582497851843393092164580440172608138593545662088729533809760932798794527232651639935612112289524471030849620629558015225285819324649282563863393866877254154267631379168307625147757927292760065999594337589702506891300374809870683102738987812782807259463777960423219479566392944338952810480066605919904367096476609761266239288750241689397886013418704152200105416971929761232619263782445418695931320205467355442711171118511068420131581600665872158390948417110862010915389852441889063859327374493625585963028015506346322229358750689592032482609698389361283467122946643550672292077168827156335081012662232360800546626917912456174675495931440469421070443883807648002773983268514444120960586401476359836018113736598200276109380584449610384431793460397414434691687930434806399494996506893887028349624243473948434701610689452376693440238880220793587538172174663885833621017436285747178507836347661994416148312858208072227741461108274077742664093491708547856553416785076918417675999383404495481023540739279954553414900268852682512347038048424502942920628869049001268144177676043561128224246278788951350531662661557172593234619484184140783385105767848563848591463597436424734523055230555753540564171563443086161083855562595764051019281452470402369170381748623447955258536356118982446446628154212218758332722145144345648115191318547450644116803069326408311124621964978750486568051094710815644977154113833715997922937532041339858878787406847796208308831085948589196335510492938051646093801577024429586201915755047213362846742291201456066782564664198053468585188967545084374715399311679708564515677828810012454942101222660645733957336935378688191491766796077151570117841203465933760559474660651564217363810777406673231371145444243635123546182838664189624720490397418709463226919055106900975580857478285038149128056424559990225449650604941414849187221233212171385158918587851897342463157501030196300896963405069320856390405574959849108196300169049015700173972883468021695124742629994133518655715287389974918858801872305435323335240189901721427358084449605661742295624059749222695884144859597359908478590899907949922745485037324069393861896547511536613320176983555293509128281336986377086623019178794982244699613182687132677963612244893294385161858456088374992166743293120916096760222331537352968906603942786654008348408161953768395710353139881212784427814069031831978957036273818229656011877152175727960297399097236146769361821029397717392804719311611608840395713170656329902618218976425020305947696211658113050215398084435763045061001340658297681841823378833491706209695273786660773188936086942042909808012916360920663892983903600991080465579190560058936140537240435051493456747949854062340824713175092272297563774670370214788611058597569712395205103115658649627904584271344154054917311894581698609795231320263680062044539917003670856904722014542081407469931077609502757130919443254910795467235675329190239581520628322934727101129133430713418913862427083790412776977142956374576240237015028571757519856112689642053372868550571465359915385779047372014849664414278524909481656863667436335558580424167566711429560735630976382784855722410505166684778628757100092419590762582258045364189185166792387581664491417245609171904969954810502785621705811962151588390893802989523511810518492896033054237041170038525184634183713234080761148779489362634230601214517485967095602577709568783687386591949251852608782394970586181284868984306740489068621887376717816117182973144940124721932448481887374304205412701460112096273089110305189367760504059607761591310651521397066264982669010020071182836046957207979045339774817035942601726799850597019196746911082687266502259401909679406386779934972948690683111687283528209621470499342901213805564093903885672959052000036587523340574640437348615333166403813118792410419418940427942100142944322076424400229369998549511956542100168977571614139806655699323154961937068393676809355405179206666363067386555325912691926823424143010283440584655214141807077382729355448901545104387415870456256392471528114237339009197925291778226669849911837291959073799974614211047859003730856206940533945481459859651321342509880835446122373902794299829132922187976164210581988343477035334089779881153339044154405785156891601483845790088408082900271321587583153907471392032557211299260742866438844608711241712327861795379633898772528534897009705711583340947403068596538398382688367795554288429417536955968110565764912393734661211960640084626032943914934693427867195894054133564132872131401181993079685593672634201200126285414723226716434108005944504750743725752107538842504097888952421244909566305344783424258757606495919360820289320024999845584012666553575928246102927777401682684853441423824017216378235846029449802511978303555426459139540056010754517001699537937624351052228359954299639723787997697712677912442400355013585599159845533745005647209996021160003561640986759373904969081024550365915811172283500495247978546636240472777085708532866747968855210855463750478119249772755671839966101082554901455049772874982640824806359723943252811539876646986285513155885498242291079817360224499563530230375124328698613198020810105133903816397879516663249690618041933144764444126347523267718225839487911412103203598704432738828856826259669796507763080547643143393814827225432043106195087578099852887467806569834258462805622667991632842547680579872828262851090231983784516171649793348190996176636690675898501128355114035922757755387926997958489286862676102365228471779388932331909093198905163627830438351867247221952697843862450211504493009579420967491484712877949648437562376995549822776214663450823893099602350799514242363225148367542624505545187160449201345384549573403403623875648776811060268416439192471901416010257650006846233112377204496867570339791922192430049457666038800011727332540172622965748310623863471627218826543464464249170409392843586841707365626682604135939951116833439568238445586706305506787280842084765841435148820807251751301048287033145221257318375822852805739234677789656110349765614016469710524753478208417007078785523442517765190498398154727374394844760336132495796236156052995017225634628373324763870671618226607304049851588834439532151773453843637891403000966647230968262949068257855111114059551420192235686542724554313808784699645042687495004974480211633763214090543744098846048312303478267771610866048403138465896640371653152056730121676518460427487057531165263434803017147635329600691451162467720066931808621710190440728110487989008465768764538931769494293069571294921178377575104004773422089230382524187417073850746380957988220675076386830402504182672634519643188003063212978665871146992695880073674089174318324445511896704094255572107836739299244122210823004582877417316351556058296994972578616996535940934139025919748787492193983855788081543112410697901716971155822510711074987677407380618597751433328104045124065990054396547849551766784362510523109214149273042552468624639255046263858322806511127180022661567614333144197113873925060420031091248128950757914258789419042941457291302445878575208062689046605513987081128891619407516504905132565006356436244042045537676199950402733593068937960903066253723072895378210717355764336725264218432531625848860923819262819883248499513203193695354477660679279775022921141565496970897446229841003194447777474935298651167982716008062382271189276523909961587906172631654399539268550872244673496583943647132919566770619238998146130061240919841313804070882091588429391026713258093386446619170044699934593106671597874922398374817675797498597977519081272083821576106904544581812570110428333971855878690681826844819304919109966910705367284829429722171995940047180454640309232025102042109074929199005020085565673832457610025054198456152501744792104074397329439366853857230048530334716582402696924813570638735212579143134057241401658396398248433475260943489928688293773222793524382440351925206323699046797380786957547130990494641875788198554095368514599050602516802187663823932059849846108798719438317114328443164878024414476701786151292915820582023875448630178131995214198049354011508905859217821246226254877505488753511791386906116925204767996807469038576217244038741571616364701886561587972407835088354116251280485359080487532492208908716725469589258138905581494465588830624184927003905343742352362447718249436524685038086421423387482363857947914843011506363461325121645613074912494886766089228623306517737278146096727577214301140635521267067380432579288468027944349701243809094881443545737802526394032879017499168482331327934373799469767148866256182165909731340612228396368687457909626392306827905792442396259097225760274085233299978128087772302880707884402322650340605836804131441965213398532248308612973667767855533197778637626924482193043357184518225608222527253236721951863467504989879913094797695249750966962973641200313723542969197957955202138973491331713157790215213991021602920094721504744734322010038497886195725751116320488065596758383517207283869755559760306206270971264224997612166709961611607929031362390754158295055951299314348115327353393474845707840193281277592197926690410162344778598279626606877543372105576946475802387566840062688567964222261029011170735302603171894034441712046887294866879760697995944895597094964232188041636443557103343287605372879237015949482100157347414597921715871134474117158711791300099215048249666507686599827962883530493747812189034740778574254546413174189723463854859768021467161400483082560016835065963800516041134464731228122043011194450833984389572770114668928946770196730014015419712847554402582600181259524857308763037758299337982752515371847888749951119497705949807772329067892411092624562299422393693612244768493761962313677969053992526807678278285865863435947460229579324201945641299757017860876725095687121051102477074444159182766418331043799424390825054940730251414337653594373260359341535427590810890025946124579007607583726695011783438604774319613451119025246023936323586398738931621475188968518208094769876538343692704499027335383150184777653628719373564929734461373148155396967069694289832779468921847707767940291246305850951024413912637537518436617436655977839503312912586265577274877370545657603784424072145901224796186557564415930234684789684492744439891337591554159793448508300677078768284354539962201566400902504196437717497469902856984178406514629715945935814714615034249672497491134685058060241476995064275741983044333655176793998177296139174102103299345645791541080729825820817699156111203648087175420769894529253731004510178134846246347203181218387857192746875977531423589543345957917465299350484686445071763319818531914470085751341835565114813227720010793021893803662220065560249362686350969244416723300318311945167885260790947039765897203714129770121589375276007478353773506545777939115671992379204803190066827578507636776691593241141003430987876464905817563462138270951673074688365564440535259492297155489717243125579678214978912739636654031460469090894122226451802728439112266655938849423327116478907658386111251917450613974214554620678929127811984441215271726079588011670773538015154522329221729374018969237520028012469275772703696605811560678974128570000770677555920687004441525400802573495023291847281479206469061618339869088489552578963579392368185571383940018680074302460653301529232873523131213021359209384805196432906265546939512501600033463337190431605907156246091103859479200580284082251744533125208216926012672977459174677693702655479320482072506550727623931639849652557598861983281528562725545632428751683838969286191372072735666314048297361047476413672457084609137661323902916908031094557212262609934166823814018814001853515511245797097717862524497320716322780824484561479705368309784497191317023223297107096245561237419233379664963785533541638803857335823469475599979769157210861328980209916057431233710214577967257610776643228481586534780648678117613035641560559124803558721286392700310818540459805949299701734974946718718109272327918185679566614520277750184759848364585971604109239406854859726748323135319148927610465950525066362444943290924068085856865979277228480755769964571387338171578396318384393408092623111122642244737377044053007755407952774144155329838854523923413879389632958725617041832775013081213319975290979555600942428321598349770427291707363655623778112248951012998936114634529724726345529335717994041977216808889053789912400123393551895174102913572236333249397352341387238192926149840497392794071188249337847967384716075202696134744789063137799160540153443216793570692591584292562817313999017822307063211534042706869642955056433441180554386439209662654087657735543197676161378529127502080834293014676813758966177596599536781430901404433340256097179249804644502686464360121921012835561960881541852012910755587682380757472458205616049242045968520385501923526041224906701795711889325380253420868130485025620466233097565665161812427508053952476249628087010617668107907780187284646927493686233551914276342760702979815168645072671434039128638055615353446585451781131862880242146796532019620560866078184318241405418789088819795511124221717074544367405485024573423498228246198799155758053037114096390731018946576966041547680437050447252788265785981801296015019361713508541171486486440139155132026831194856463643578845189753155554830666097405970127881318534360255652814879693458464532875895195423265175296580321158427730752490772716447934421159870501723992381925354582305393259932207642101199273699658255059681871281916740104390680360557223722803813433389676979062920563606297098765619362715789408673326874700348599113535858932704334817990927539434661471944492384302454126724987039262117658902982846892087466264793888446127616703445572115379823130347686108445933570265547676582550653346955129235289410144065123175644765728684695104034049190830112010980099103820180146818738295262067521414410481014332984386682846196947853171225771496777258567463632981294641287265077979173316675821466992033437416662948786326653188144442332695273888091549047960403754948479084719213465716650192368594299142810784861451765102556824618062362215711570992397493035466622000091413694939467913765474260357081178008954986358265084301284731305438954260890659280869617502611616819606120794495370510117149104163456200993842179237939352783578483591373146429120529513114260140750382410295250442030815382628614459929693008332221813360718398554191146283523394112422734429848079205638039188194725228159514955442206759318697321736443642510972523901464815428140766254204683900616900087356718936330643442189859582611969566296757031691116323859899032553180082189900567589762233626096462482364292167689573188923089362426053726674478394095093875633595404472477042092453026994081654184814507564494919882483345962388319761470820991680372714867634246569089386302085821963248688281200889357329864138362895664469916025517700073642150691176516901216104346994738098295405703235231954566413678642175615270787747932364667737772726026777577722409013581535739678099564324603651054468122462955032256046280603016296718428276778818271720661795638529651008226026405998253851777242238724408996947025666879766458854820508982303847075772202383111215640446749807522873232498088538903649673081508396901732917409065072300688386298079053380152672344716600325291510548610768895345150446721017051702484846088366868789437807412808650117253455901226479474759996921743568023647976862468194503722662048526063279240858332375632712295155930659385490382397336644876107453295425346364730872373334262012396983564182340001428792590040991515911779233546834492562634651007487410672573487331164093498042011873820855172677249311424674555933477247420796715387842638429988839606502745610622512951517111504608149344689937963939409273184690663417203365902027490390638475333558114207019960246809616059860245304527548177982744548552839719494676311503400445882800042655997234026149567854987127216962835974773143038608009527108769700975831140687822016604466691636289657232604779912501901712759757980467818940341078601960860172302948496523814564342095134399031308349161294652586383404480126808502166342909233606656148496830439986767996496133378054276716391430492764828167385464320955109773431467184192573347447036753207429648193676234899317800341204991018375119672136470080780257403468344543936533745554502364690116002174700165119362860363714650456741092768177334463411544571829793780761412063548066390293555865198925249722567271997595485372644111297660078992472955250663328021250822850484831172983124781569923289012819392372245268108056807015441997497940623166193304908038119094478684144142290903114669930220045206492105188392341954765093400802918770829022193528113010634516374201432742305303471037156205931008348444883785018991597368184078416015593697495815947022489717435926139694789179681709026943300977912304263484305241387206219148636219392355960897335494698163614167957103634040792167939448950916180707301647645928206617628413514398909668478562246895627572794158939367943409468681059767137448304624312341768256275667536489628990405493664987431395611942142805999529953983173559369400884302516551647174070121753203701101262422269036472770632359400621586421512273478486759888111582238992553675364673905137387046003538551982289121969108931435250315961230155752410807548867706771428392400906576526140784540640565572117489711260449634994203012934545051258422648585765760612310999409966053119584146508441161352444592784251926037713979148053336536585556310076283690375162675845659065462382034799331861845327581499071549069477057356363422178263027222412146312022317862747482370920388635805036040688169898501865219475492716074579719946739181341613294977051224615577048451248614926073075707633389715091579924071179155033462583279188750590936639669808371800216263798662801631981076929796440500787888791002163417951775073026601228397256495488648439171135421398805218312452461116396698467272809513331576646691662799707599095974726654031177598870584890168370648034118526658400430446114361553594638791847250004178143948138433368921833794126247446797833804100555306156613045727692438056091309101165353086260723551940754035608003321608622726755375864019563103003943407824997422694112362000480767996670348390307504304943981535935655564523619661065622178936286946479249244976726353781966523366413426424324044314962235295985350936441771853987913993923838248156077879905512071108191304178124179388857099608037137581431958716089144414990719050770849718947854168910606898985910520718535426382288888502246488581786382679008541907499974528946182541044816059873050223864484840740574257164137834398659550454847164041171649493722254093765043657921092719912208893235303387583815476801126814769589138638890002547840992528913157773135847498088020793654821551796913324544115591465809284754275086730445776160742191217712849022400996284834786873692607452541078461305980832667589037736205506437066054785383354013736552758865562635463038506044059944840893859054176996753855621095851905199214132047340054133547328462270229382843616120338988341534389112657942648363276641410906950663159005183144936589823925388846111227703875378017727733882365358098497072836296894746657260502035509327200065117647777834004490806894667251379796830979390373847089546279198820715941443871084010721059088947475329991182686362657611220830103222211197633985254420114787578802335035645737183948897463578406070341432993838384897125991117902745777660723953219355678450213026102297209553542603434759338835889335653693970592712000031241590387473906149160697884079014941341294804537234269865613907783100086216561610411176705640414564281179733827768630637463871693547667798350392476295986922439431582558475610420871850412567727198527107564433169563306662030741990240899180236116780114794836521243447406965873927153505316776193313770687852126235442907813515151124539204472572150570185695761005818407977404432042611594247207924849103296223748394398054900868736238068116294491639403609295294785054179406998847425914306043545897475575004640383409352780104421312294767002564480300326393278728328152649128637180065354678608163127078994577980856746222328417738548571323804548970078404935209167497958334342140369969123925052040815507186478506907419180040504301317682474311264452628602361560747250945841815268343196612538547541109301746377144341049265211918434532883895218263746590550621554753714353456063799721973234052126783501425451264081052063672074124941719730314608111110014625283797097035710687035063051334522075463733402486620271710799565720641203468465328532853141019291467458055232035862627108460227406609081752851741692520195967582549595604735477280045812848022144474593368253411998940477947569112989840824443582556261862932706575773688369302382914303449786399351995814452952775270199791319094949621766910382058493629065319237658550085009584170750691002147487521688774069373762953032809763207891834370235719955550792612802665689577954048718662427499747008787305617482284158392913783500268409071138026057121483031529876502629686294981689677317729098931095475886285407833377160513946614589113988904339618126467865916535834414777144255905355699264859771287278750616128994990410094515216366260526648722355635437054070973806843710124275516394579161156723963879175778863727003397517371475214480511110005684774692010636112859137986455342873611415222820916915664766361575980274204138765211230814340274670948565553242173300576179999932476702232991988615995824177141134664635122984104668796407113767281523827710031829911199313515916224502187013085970728339856638304400142993706923164609999287260024488734512914778123155910423516524215444611600827987354507026051185825831137009723439607790829735183539269672027733724949153315516383550031324685956235039276623836287083650242167027408624026949357539850257993070795814417939193532767271067096609914497415753457232944283273915269201994142968499135840691481240277399051889394317705419069307841893649852594381904776201026168692407171740820564525719291710988022505007101929824092935384624909723226642676487215217154989969346174766601384593236355297546129352102518895171071843345135862785589437445305675016171960518163610665073852527086582614337840580210357954586955716869588674979666908823686415925221628537515798829295940248303795360556612036688725204470906881129227720056423270832530912581400102169162151068214294847856339362199013297270301225972350208802381369627849661909675401425021912505533568517575959299558784542585119234118234260100621992402972582741947436552813635208937204583391734113788796255094496132782764002764294608652239525126203610816021218037048857700917782388740570828491701773445293360630800676116701993366061665399953960983296962858476154109145361645994643540898148964694500089348399627598928237241314387410299360315759355569873071853682371518996157728657545394479014256024534762385266122930463218834297917975160926412283364750912143452920669973577745290057596784512243449076933905080461376694272435827521652152873271927994551679398005859851225032848220128200566969369139818558767794528540688885290788068028047328828192993247139569300323968088633551024799031376645639486505248372456742381008241410068682861603406335700862324596765382258496734729116431928037336946148638812792199178327404781640363927812047721441905722610427199237991093215891748428453892259328798354368581102135847808007622785779565068972070232468141964907082237264210512841085436261515506036544487761540686583391931019789535244294870776789957275192517225273823534200766816132553123389662637670748542116491572471858701404833108305414676027524647088877657594393094198356742518830854796262292155252413040753175543338956717055370818018759838756336710074503139759475245437068236676218607161777601503843960125323993260534582401282770440201950517225334521666429887860165893655591610241793222957030283901464801594306259541951460556546580410190088186393943889300576266126615138916363154047821161740917672055166911561371150134422194267462958043151578194228751469246080199954565158752952872644414292656155785086082831184517008018970390703587043165527599878386903599143024917219313165978025286459725268864201604754720034345262849195815001503841569579776490259549728778085858923642274210839739163762032035968295086794372311883666044850652764273972599606506049863499376688671268137443022344166080976278176328382940397222303338845395164003574296610811437435457806799393299517891530787183586527435409850581005178606347245033985839208779613127313917084184271502659391222070978756004050707296134726306606401372174059875659034706171672867791098731997502632910285076932206349505029040495934448378875727755710319271360171055891596070872633459356922482226360344874793110635470308629683425765766287253785384999237351392898224232730288825833694250138223127128640344674094712314916353789944503088770510363049024184858109301915813914401724018696440965193098333021894693460274850550451262546439613238716467744181637822252715675381091571170633608259097351487463377326117840459821359419302457216231260534062493490007879896582556257090073518552886760052564194998381660718361375186741798513643504103490068021179663203583169644811357178387530959507804155654791259868167288287338679515512168273263859481946894596678126771439113744818719195983353510934745393789045818314294927466746602261040794665748781624633237165676811305880885539189409935381815188661191965858392422035423531054068602528723155230353369261448322595617523575947576771635121930714712696761959215560224770151357101771852306586952695184060100963903785147651661938058336065139530624014308118431585961756472995984430837589119535905911024482958209513581583789105792801712066937430534815908167029169231517476413237855305060452723086594564644210949684183052126939557634987366842861382470331027817330176080747966489358082883487297150716485130596746492894036331333014375472413389712999023010557944419817972179798090445182473056188149682333929334264815380786411328513813212366221479983424440867295162158853547995970616670499273014732899102030161249773362611192938364171811844841946856673966761114580321176649988386906960487913702397924596912083057588471707317248619100937120198032467068030575392813887897042970693711232567504259674737272563717912183731037730342441109930692409331383802146082158819966728738092343378748841978375792309023409053444937828189062662311532939146720488477062796485622149421135523643311175122240277872953685540657150516957299549765377675536094859792093486069264217996136695582043761063901033476788514333677166047851339051436013035739382229813327310739624008400976086993687459607335027697565162160529979210759666891202946074686413758871475293791915271724445612753457545071740611246222504912672911590192767766536871512902216401862205296691083905117960570106585254325653522750658173229225526612436606385231998430983106906570950374120801691549572261855250788773633464232636359918380848170001004819384933739599337471121946719488606329385575444649728760884881637624248896428523793302829741531375853198029117208583283010114590889714428229020484205437082779296110202235359716435297457862494302100619667143328364014834592026096653323559026760699377798877151831175628493785314552623641743513325651981992646940306508214008342598366466059747391613611261685569842557968554572668214507211640312536976441508691575395692646288272219739905457001691514494146859915485797451162907304869944535436193913374679399066334380442346633441579479137413794394136878514598252522354818346517754475109813243360477940871561547452286525872051997836532544438447757936300853300546530060776192652089451007366769633971299909267171552625224182206695847753967288738890368962755335210200188850682689051245577911212952432872823830570202581259887810298939379528098980458532882347384539319432347181301919951738674213416203610711897276466727437872222447734774067036213843378941077593816090667466386391235417484393634109142153225246484299810001147615069751973800237669590110629371357876362927401751865801973681874396235601947451506659804981639680797343709624047390634654156800523405681022653289507917870335976884970310744674018046858215664396155241290125936347804666031976041617789771900857602214618296337367235540806968084753034835421191692679875352269473533125814842973732297610514327004997273258493988060173692297235583050414196252803469072075517891273828167245341819787946163158265611979439333410015252508660679754332763030726100683840976081148386000446641761087746237988071720904316018310691365877841814942698062623018011034943347131367185604540171451993477817376127401727685670828483960805882859590384564698827998949110276885464149661049448260921740163530357567969998058169794912639777097308791679751216639266518839199253296511506410668828301961472783705799241751568368827768654118722814242393935858958556292928798249283106441234616700221502240498123756326380883216867172088360875059213194559146654037804451366261369212747200756934876380557023673891678500373502320888659928717776580676795380060067268570325736364264838217295946313935120735365616096656554880935402042952390363572730687098330052377397819022127035240618279406425712699040365461803981752416949543221299451478688637342792646602238241330830364165525381254409860489986175073071760539683058058960749738827075918902187027395360076563393806776578779840124252651063214534158527761248240266614088800489770503581127920484442452286078092842140766763486323413038893913285360427417589660109603560513759848755733800099929750459812244131831639278850768457784837370678663877461784720441115928947699060124796852832911292950608374105075111819303809363403773262652424789515672305927087145221455626874679773180387382151046934478308915878194887414728109986546140370336529348743638853413687778297697485596856417840134362082954384248751648466928091024719639155735511082888401082722108118386053980815006363709911874323641248343802782529048210684453510204108790677975685120097444813947812664798354478234274037937087515510657906068962295432190921278427691248698348260209197272008993912344684751731584193102446665242489200379804620617755159133487017671827489742066694167694737995690278656141576574783723166161365176978295648524596171933793798030235764611999793267030688439108739194367341751147711653213403931719201171090134280334302194141654449685303467555727892442496681990050498363815695445415513525609311929202275435517127607923936304858891793776659067458532642675723155461367716426939181533455837205658626996888582781872485441434699719901969726277039617179170325359688642314120797390946830624436170994393202512611056282995204946511588423104038998376208901571734633935972265846062927531352456886693548680653439024437209598185798452231013622226575166252797017515983039465243307757499776656949396486224650860941490652672962828491998724793794371323957849171306012159899090767375903929161423290562158116262175195651304543539369225384252466766263602624216805192070256891747027572202909240912667026854469384588857619150784578188951771236082207756000093608703246648637741369208462558130047556241055357379956969002683313728590318982274116745607290831556977232067904431570293999166392621066389099099490591737360211905857810076089985325630069271115284257227051308163345413821531969350322396653742881651616737357022250108259757541071995518897746255909836930312792035295230300241954493813778190978703908532093135747457136360454843330535248967655404337408682516719413959054114956926774540604760018048429927597111725975877986464703790346886486682920888026140963933309649126317718598941078010814794598751288922907019719707265441386527249392908852915592674282673688806551753779290407067403063054535929831663388554106262967993163965403274754365754247249194615527741821445455091387095884660861726223388854210745791020080185034014545922083883399296881071624298445502562123326336099730853877276461121860249401497904724471386389874323446396914214118928850083968661094490317026848105231366657576171508411221630158644008858203877493736243662022694392943048511066808187797642489643403458278889805278035719265953415094700525260131446495236313267077418992231256825318255731172270859619927869979711349206045175559181296117370661616421204985128369780874619066611360865905832012463056668280445735865911209404347619341902566929110893815498831269114445080263773627631730176605927929199445781647597777011978187969741145091715519458225591354186583796800407407898313159617920217968653053292365142160011962052984877995827746981855489328333250988691538388393138648341519718505276035967801478805395310885212158978561299706583833577493843199570451714571357789089970027746810604263323727910523161400848910036443836201459663200722368358865429194501745033860595290074941557131827987995290227077058201897461371725873005046583471076029237043794972566525080763950834379525057601838265488700573583343709146494168172455446265658349024800305054937988100477011799881297789885989095287581156024973223381814252947761677590021336754742943345721037226138761529470343469384700448384842514089463481939513290487238699486327124208657127052354289455949793830502703014223443550013071924911973663641190232086884355515038129206326373553365294775746705596323296948865517537122292094466118682710517132780345498120860929010945190864498360751494545292189045497613816350231597443709195588988413733251536627439612718245268236392226830267826458435393490904570964459792732730635379022781502711838902653653287770038614177283880695714850055845885640221736436246599908906732309089875717638912285231439544135062714656603812899079261192665142020231777094722324680228184553887801808742431092074458633337803086273858705957885529447129924013778011780150905264439110388909110357549975881878309951268791548662341312810665373572850323274208703952478848039505496810973165474509705292308937148101438841572597556927187591880537709100161580089625568152242962460219336562534089503366113490221611509845326981492885288789438154541745019291930945560434077724769187479707129562723577088615701107478294359478805495906627818591481694415391811786738966185102397853944788305526817019931625563868692887867164950020390667144769411550250048347753048446063587706699026367028538573329404574532173176868238876666035940085994190316476242762568301792434973631480764837694163607317561999184026476174673646081141919831757098856429179176316871236816647482133160164620020547314245497907601563975092414458566255588575198118400275302648674459634926996870310055836987276455497730241601789615612403106823345398782606575209283172455561508962850485349420732784437783998244649679337040918398218601691724825705436084296942528413856651876718482506233014283289276763851338431648638036313009776358414612914446586886244974621515100128536178336482767896122481041385799880466246495849046725114800062952732406695476492330942342746756342458688462453838588405377286993455149081803362948796652882201571861091722397797594919930054302211668654990065495601217324588302748197508701878456250088917792949958095974048170123569140551662325256570751502569819255737288519560370442243265876494824837630354458412163584372177746488678048536783340898189644772507582216944446632642106230237190333920906894437010180032404251575644731493693356694032879436946470214604755604679371451688425840517410905103924576834757216794844346255565017080564777916629061148408797339781823118338230471571175425701468132588443436435333300299858978053693886499670114001683374670444089750037653346517641541580404662006401189854371513862250351620467273794927902411442671518811914124432791959138105997646188657803665046068177698471400785729625439514645452385638631306786193893627515233222475618985337725185074285525234289326430429845641363138484789053254139766300516793535277003405767213081313556832266972833611626207137717743396300769634800721418348565530192779688433517494192340386569722927808807882911561037355109712601726556934391457572408699957328962722427471274285302622573967487392055891647970896529417905343971242491168282968271200591334791160005896399588484965433242079061812030060949296050050946912206383964028625329908562563143337500547251666480577192803098159166764396590960340313453305624361291431853129948344982813685536563605337092323663873918383112868498725586648811036126692347606618545377985792775676976967494025641124097335022271209202170231233564731545129601176174604643568249754782049474913808903138785173992397702591097231771989929981447848075161257977211740886333790843981536239971217731835801608869104061386407481524153238456097674834611478665995805175915815734475595318561904375902849871648802722937695502569356897002296341402851758286836466584748098439001255496582720040903685241670431614713285741592700835957987315458861843757866916574857221215167698921731885995255512401855320836904836984159475709302740016084318861596050852132908644190550322192061833604764593632599578130318737608139845977000397687800342640628218495489653570797703452946875804925688364714345631708245448428511649500041608963176267897403490127045975728911254505178156121779904035162056465781743607683634289620073392000492764864851026291031658628306515211797403887149413761816297446776378065847720663664988657790040931307436968008105193608323363964684247164362057280780101755748251656698032426485682407594324225605616749444748548439020618339049586844231019726194893536675338373944093832206541728637410803357366511990416709746150169287589017176082122998915995074398738559875815224107512122186831390285880028524040494455256051566164428047211763074071659791460434731160644279265861074469180817729766376246475528229886215776830036470533703931614281769841431074687369076370495978592986473525740982903685971157278915196266261145677343154953187061686551818218581395822316099292704364891779285161592946891601950686476468431743459006221849913535607068106771823443242053710375643072803279414048254641777453478853353450536880291779602781728708413650018284172887688136099074957086594318759802267637418515625088207897583144196617626926459508912018355577234125297925399472427854863365561332142866588806767396085571304441167310120048173899386826247072424906573433499479607691683435075526112324681784070198877157262366014456267073163863468469444035615564118375781097989082177402341863697755836438286061440872775059989704836853432240862168461573937341329931466075815859481132851363998209843001185094823863345555244487737623996590820776632361512071813760390092667451239856340465352992620042079195892905660913577818274921102811665002247383066714527285375461778366630761784959250559788828036480337843787806473290922228520736952871990993236281620376379065557532580663117146391479812410929061728000829568855157010149468075747570794873476532963512908326846086482702864863282512944671316704533428779578711279792205831701378212029992567578619108070092483716311622277227084869721733670551543031370877994212999273962782642215545609806019847512284651337139711774963179994187666491051232619782910814985217235921501237433932662232286592673555878950357432586334827069855494469315881466444097960437111407854207159885748885204467855561072845910476220921915601987388468047737965473672457309660414501807996717407290156396068724305699812025176402815595761982857345721439056347411190111380319111636585109056802070270268315447812158370129463522936802776342404289137296216887983194245020156556870909970486489015516956997060571255879405764650780913988814612720582152248039162746785057701703060464968060807216422314724427034156607558791608812734208338380181178252014480205867908289333633644618261208895051886527753853699844786917117382548533023661459529827758367003246165242648844162307841411769149819963404178485500177926118511568133826227209462527407689369282256994549721472075373058504582078873999269438386701336138862786199679987782760852481295876207370207231774024204007983588810450242378337558362038676497235360710147614116245464431409876015814442885791737989238543662360458098623422580215686045875798571888319893079175179168055986647359495499561412558533603212019842087543841204022321676371494698589143617984559696824111295386677532127638852017663082826406459004091570139614317358808633259719390591491480967075829661741791606796875476093267425857573988189462993911337798201520467258927467574847885173082212001889688098997498239345019300929420627482205493048505965654948232392677029302554538080547376241774075429644490895143359008084064977898696810926587884428704658503966686036977707364297863963542318736292424079488991400943883911175135147861251500960380187124036259690616290214458539092220924085937111316707444261414877552858654181260811720461162302199870647805866789789220824727610372914090400628567030683798009530429085000883943729140258939561431960511762130672013728975288016876028825331531334349717166303041584161331749016918203544733278552359962771517791884195381384680123684483286284349273357686919813932918300218507154498668025930034285550015526380081703208242751433375133510216438298886337346866960017177904330269648998361399417645550623058093348027450118712799459509229074094632650940089093903008322338706836718432445326583441851271649980844418512000972706334965649800824799404378774588120437347786671733905635497769109923203932498369744041441211885427919793696562972684773397609255515909589969541151351772310758552659823969298200123514965164096431073126619640219524310717911669017599716168808947174537954392669406072510382066873985781001987822055233261280967855786974845137480666959493966645086935665657616094177888237488615847981583198542891216920861053486196246470707914203798149981643278165707305004659715727330995929785907596092443510262132103182656419643465911538108689086362381783768572592010840933229116176063013405411017648647629816168122133600037135334689930219155329518314565508277425369406616558134152329236714564975374836126407487981846603735960700692864842220689502176300643054074740370107546232458532489031040344783358249694244626281982772355778963781211795074865941746268057478946183691744120453868773961966950510483981490823484175750788493916259511545531422056808155478224698200797250172458697767489240185458081353352628533443419810658762263182288429969536244891917013345008311373332750659355724599443658136800380806438323480802767227608173595999238746530757690146867226687974642205097877017900046890244052980086977095528076242940369970085646204327078769733825534598442111461612335106419339499719814698587469631293339285423050072497177290629895271483645888240684569977162468224073538674426533720107536246370743062244144579840887635589248847091510901437425957137015343870806356496006007628717799600473946393735024294991613189658144198288487658672899155590958808214948685040712990199104822833854250523103804261274937947119080306438517287496463774922421236690945062707487262663683253212794328344225166999864358509788903405320299078692589110153035096529968734249133157922555317166325731739873294533507975105498041611278880417101629715953968533196112715947752596100267933973547792561607271926761124611964872628471273076259758850183005967859328461372159416905512903706547251445389099041323215094695648888849752747469077466663612165555231566512300024966851631581814647900266125645974733728830156519571878869445146306583093226313664291132005997345900867865299157586639755694973073015540843097822170256557163381603174985833285436080973821708779660582411379344607682050349633987726640054386828117306505570235158275080878431060587088674300468553249622126011619166197764500229409778942473468337123775065731303595227558668870964697229639052662322693745110479122496882217664044187857341457218626714846612799697145760749830737951015716895587364465724418987804698593982141959961220851248525569573357152256271906827383699055185116251740039865333977415339299937911396253201231201716358735063709037524249223597932405380573792122215008755081577810506178717084144970403577378588783659873475960895699452449063465113054647283333722937501382766384337021480023821016774230126159940834513027557220034186466252792104691985411942773652331564159876155336585054897920217939571191169438332956269998514477122358770153621059248008512487358450887018518843852679778931071877304939556468685371019883716702416635420072095136939717469312082815111895414789732230808614476841134163614510720116969297409746147553718541047620605128415742207958423601739567651771600949617603371862333232435915079680140313200915096959712083840436617931562685751919596697281785110588139026542675371118564225606922153110357282770874710797392048737377791841855486266632220469272905538315321814374803081311803731475438601741365176472238828438409912635573049376405605709106499284985340237011482151579962970693317131687605806932268747710614325920466067296054030618299283839735309139137958799113552717541815602712303496987093503759294755147722738316127586576941893575071330149221792155693441038298722466917383972830101499723179862224286596600870411559789879245546226700477846618624108016388693661269048163462420250609229454918109329081905722783080795713051555386922919879941025836436662903663330760986963240921127417525775914445688740697484134999331855019058399470343158256389600999974775819803556184157725881577331295238364470491932735851889492985168877431053827830164857435021061363455484875664063544211142958486384117039938129295750872496371259584340207294966908019626916403025038787588654130113557681845933857241343563915549916397755712217753706758670873690191381166953407530096057957412188308338803707356549952482758801912691581461801044070555959336271082416292055931703359820131493140928085432181055613234124320843408916699545331959682976299969296281145906903088027764751081609457691650173078203137876558897578575449250537624699864940952152640758671249912021207271652898689940395636760917688227237884647799251013445382181109265263744174173367010861450129514052095297832348993886399732543084394905968656849459036899869500636834241891537932833252650339517262987438267569423595661602859633180511459683860973806815277837738158430419396394747165805470905794283458364719715978406327238725697978894491017406656247657176889566622896106833940241783856920618191290680006675026846376086058694533766122459054110919938289540478713159925648102957301097980482521833824914145427199839484628772047307606834197033259559825303454952286165810847030616177189794996970073004557431844219667805596483265056239315561212195430650098946715750590493416449300012789567530377226017780959507669015476563683781550818324581468487763484981805356777801962846216044369560832854980655747116960131107404142267839237534838068170874700331829613380606220596280537324083496049362962331939566069373134842434453176811777693732164508699534244536900076017453636374257172138442363971887170326703179146342719872641244556761899188937166662758559828586909941719699642613800651516751353547066215442261431831558076991208846403216471336975044092992758655129324159656509604805765404607610834837758987353075243201674864539575550466632644893058788728568459562257397766577311548777973972119996738718842572119445039359066117026743268824365529118989436951891635756534132319697428947944252459849841008823621948939104428040957470571990437503869756217997480547835017184078880669940341514019458438760197848538400350542591917178430352968050242956436541780802955793944307957269651762774410342415302200159646080134681266704735451176106750801332936281211002466683172277407910868052337732808918157056753588699095178070442819799245356956183146834819618555448482903613250544208984454662901520424614473789492171366001584808425729632384980758462393368110786937784135588517088846489660534877665030694533432127378286360862899320696098257878481832660360748361144645372740926456997370037643189935595109825364735177861997162180220477694606013002859299357704178830405016537601821293865194706077614755335838469513456759233243559189427794862827906026220762241885492560126921893798342616910367437635053399450326816424262229742641583800856766497945868791062427948973386146306812902102594274329926903237216453256797121597138099241879067612791722131606507512055286898103732696906306321471119150124099489608824933546029726579496329435464543637388947696681387800966647776830868872550266304389970400493346089466818336958845509066360783182825885769578612958061645932638474721992785014111231677576356238294299332123204702271796768122299092872158859487828420823862644773664694883387461880681524345542048704897878701940159879629863962201241811613624181325589807447165654660188706901604670966557975709346268317597753960148485850558751516995814410448336872813375536167254576001423089474345706304785626427005212103556877212628347089723572669146837605625096377346589091432716931223929104486523791539921849045272788556939304539998341925246639456377000046421936409890509789858032171107127677946796385630245075795847734981694630526624552303766522737393436467639123281361854051480760314151283538879919174173985840575686939003404349832118620081919037309514611592095132045100597955834132780372422626030256926167998965203896902467537178474292069647594112886326690617327128105411186291849392614787730207471067960349372493315754948901322278671120444679356219116126647876535035146894418118264929554363120372581339400310235538071836085436830609532970255936921519080547908885757862840625348757047270195889381065094861295839517417793535453524557548758332313397042984087381632006976740405441270622026076529479675007257316338439383072406184921056835194846672956605007360384044900378959791040649608450834781075286880183966329027419418430629717362621460849439482382094103868528481513711009800390398868654805413645774996698586700903041935050227875291436235655535310835550560983984861298448252220499954042873325497852536619357432003901933742276847477965320343347666468247823070718449053174571569716897019758845545932918290854446264227087216998298744059370071656833892445437067168228084089475391529423568199110956590906938139266393828169251935005841756781352245989508151487440973002736182148109987154981586580344577344390870604189268125124538286068464344819710374091189472814096424776480933471514293475302537136482470643380158821920250133503253931419867910849864504557442409137885494517442287859902852538061519141053880585847071362334519433244206534502311105641014669589089441263458047641036119528031603591975962719208429725765827257167853040134150736031339916369292456361687905213234593533671808390684055717821662807337280698079645027815406528760183375106326900471324352499025978672853185178499425940793991895903315317028519989154068136050018497270100841930600604869866468286739198507099713697972760284019979449743207607781684552661425435669833514691834371063552997198991811364418031836535819257161801417001492272284671736116949715320104936907224303015954507823296087288566575631412060855038625726808284212327175563229750362192588653493764591398572225350528465760222937872545370239484582009115510203603255800462764281326893135464215641975209311310170060989239497288248643319084980055787126549544199618259689920050473853548486235683571113480278386100240617172513968652307048082784559803933234749843328300684983833165130532706147444749844818177554643574279000014648277359818069018481609728625408937361129212191498699076867552670296341541782588089924416063422352032670733840891714967752145132298199315140672682337680515491137159070681417894138117645210435317144284251788865461350565437997505368194282808712390584865482089391263896216253519693136590244328944878539903585044078155099437010899809620143220971098900888979845032234112656684137038873877004443639923622202544704376879825495206528106670692165663064542728516396831468222095493248711999435447514489597933269443662168994261300891106480756297505839202031308194114285121843267760123628380720096428512048084596423056461397094116796111214957761939478690402783494421822094675071352620347995092183395730088649372584957939016356658775854571363437249393575954572012217720331141209479157717851997731432646792741767204848627666158358571124465639336505310267387509992359786305896824539243583489415094860584068217575542372655624142915282783855387838800880029394541491474803906962120489534582756264921838875212212168460500749976934085293032238417372689564611783906420376946528516381355911777595960161249395279371562775190873452778272249400669736742768104242726109108027006835917828275095715522946536573228289712929181713281390740138429966311688494736363126094407097902021515977432858478901520249549377054473697056247210917639152803765816702241012077242352227758622542030997689036886657725407715879821286948375498189837968263133604298862048828375474570196283316088127372582633698349204873522018709923751229336608836645180100575905840336745029398606921172332638123183940744380141445230020262213014891553730207832515638560003065201765405577105704986276454916946134675321404767516225799215664662275079236477190629157355410671847396196887833684021421061619168373428586699021446759615807246311658938647242787243842124923457779606157721778260921882180412955436149441404093737249745443085782521080903348465440884465507219393438056416387266969248927078645346187855209372252430032672571756549991893773927172322041328991220230439264377558033891943834137165960895941983135717264120214458908480992173717986149249042272501025245742705130243284812081740944956518169381594842425662366389174413580711237723943756104260347272244533196668119390582575022146317542548004497280355451563800581295307675415839936340629669353786705562706034625356581764305328159955352445803727763922748196394136539917953431199548551591515839418412601657137655769456687997032521869913477815954990488364081052499380097676471328767144721995235455003345982183982114777690447080348381800818050017933680418032302783772915513791439522063737027136762516834741645771609888372632842693231689462200231923256791749841701863493363249317270906937079937678365603348475732002773496136872432354412243857220498097242417660439369615950143584111602072211191039978862943260190361692295445004101154424165195182986264593119126498366437847711648243322953698243135637752202852537566965831554282855713665140071924382863323983947912177702847159402909823386774603655011937007160249294894692843180852702391122033717032676533018509559925233302544716766387085672718202051258176367033329837922692984437817911884778172650039554902847144033323854532646494191539973150848179887086791491594359662553904729996303350064040100907521863236476386695198182507691145384230889971157788235072006536703032668942604720392249969463688687470562689614812939331568966724757640210920781865525212844383183636001510369713007917974682834486545862695352694036439016904236281583684526899183508257171054517231036390941827651609497152635583422185819112000523679763829285480278513157873713579939221166435183984898649364900069864541569882995086870523185510368745451816670978302225502934545484669535169189011471850661009526944565335203941811779919418453421143600601260285986152723019986066673303816538356052822512894998190751228787198868557230422105023175944336962285749438385871897119796144660309524316190992192623176728801450409423706735119166439707478560395191713575700436733945074657554313224527793296946668163494069328558918992690751108447104549562103313217804798077499737886533141081096005086429326930533502661401578032428144056018572130944145753750537033178194542787362754051023684375891378317483292635437516502166370984513038953524936519191247528749801277472632996080602969027889886541151068224511776191056374804752888314662611116891902628667775146812296816461921624338812701767542239993146068089456262497047895334005507517035772098143817315242632548644245127343836818495202928428115893377927989199810662468288772462237430602709063060606502968093023388815909740822805854779256011113133084820106605972113128367106958843218016693710807015366851321606746858229318144139024799142512299331562354864409094644658895801241151515006661443868431938296917754993856095456838897767469903840082528934159250314502799740740852044970176555552128201822469781103594188740353795073063589131758896109878407062399284882938991840815673743948727052561591190395342332089621792881697672829873257580130077532961416745668918500909528964712071300092799191709630499504361385855134626835661828668411299408945085757897709162747959207765799483277995384432706237074919797722251081225633548729543132255386212530853150588327070688236114707960646106991095127404392276203819101753367853072937649424736659270932224211916383404656083854009725366153138953332449614809701253653339722658228784778101001214815142005235690154897642908758507612974503053032001333666461774473797315173481008933586793761044457278989888409066265744665304433414631341948133688830215424112164949694575900806787519306950923195523369105698340549196056931275144176048897106042611590671436520542321013091993624577893085760684887117866225724728129961879501088081385462031764091859424074195301052323521956943364266500210463841449111627838078103533023671229351858685908985782719740525277102633664779752901310534926113311511854697046802139661341211955870560120963674843473382980471272476145432379523865087451228345782078286820789304105827438719463990171908680051590500510377713387022223566647174445302015225085855849473606237814390158401314316395734445033883963938686205535990164954752405978672207608347471363131703793794665757376574099208251669517186060188914639603198028198373397100447967819401997223121769374220600137718332979366132470332334577698813226524657469655723648881294565295556367604139261641615220107496176466073600378541159413176791653622297164050698706924940726553127280927355619342305187216406068651902426024067089319656048933141415095296803667064028637530839785939461345984133276169214326852108729537419789252104239541083361073047234699631433778761304068266999454769362840319771999621109655084599303863272722942601590257120170076762385278108581078623951234363249711678086312179522542294653922894138925965178122818691976272240675604291612216539453547004199922486900259634808100031938416773035913485973650340492889295165927051894171241771728780468289815773742059031101443974143890765534601831071798229328314221636903217722874743034322084566815373974270937082024978871109121272493895768838044149967110063467357585198262063073419968285729407886715775874778290201497769749720038670398218266615622864820239453505253484020604147004982244912617593235855986286440154410946233849507108554382023520222599901187283782334408997941425685014954406352046300803228836526003493575549561546675309246984922092357832047342143240649602991530777713765911932965815352321103228455472052159591129231646661706156577191022144822694232170409763418602690696314633826277623073221059769179798435004726608646419910152299868204968127106589139336865550586466751091815835216899488288177313649096167136139399518182386278001618045544035806706969775016945725213224149138979194989774410460784251126268152327708795064426426535228054115651923387876260090001946798815457718798104692817671649980108152741380468446107264897490986834515378966083242925943140094090590908247053302177717017970504679840834735275884981956765967063433024257188006596118568251598205438446880007873172848125020609548997387136621410040798531015295936506133321265273825667842141043853074469893417859750613719859874237572019783790740488894039811846021596465696510468262195618496715740140741723207613347555107640775663461575098528986803879645460400064780010595792420157130384238984232635601063585961019937530833532753557199084270714006676529335294929873146744946624942097738708883154762628341198261382585663587904255647002794554906864343516678910903251593780005601929980893685064558141871823328653223121832451439442868651029822261548472314057770132058640538010660833915298773799832341802943447429031643818745029159932158527967304133181360987002531151082874503188394316860592962703938762912115299993654959847739289375386797876544412269967624774557046232895471424868821135719719970788852128119808965796234416634622471147511212931975158075116376496630161556014421614538215437355686452823288273787041969312127709923199246363725879519212412365114984797237191900862753534452866306183730134573444748171119178333945438119232948868834181390435576492725638403253820749825059238092439881496242531429929146185971553318734370498653196258758892703241562851526566934795321943953830990637250195236134439561834999937663345474114041970084319345819105617090092795036351809916150032757366854604938806625276471092213646851371039748277609532883894757539805980528438174618585319005495317554074549113168200171437009691791252677322834710096758941122572751706929047524945421332351570679330305552093185062113745291889405720201722031296038985066112037965376685337753825596698777448750827700075713842654685424800639714990749404335181949454794740652798232781695305370511790070093891705158868408162712938420112823366095144511955369043077874481315459148163250607258730884578038961566135120504323190053331859766379021559558397131469810610553388916974768403165967545259005181752737563868722211968136239365043772925084038590716283690299732904251594108870292588845951778077760339817538827288989027237454223983967691182753104470190731660577948406892893559451234988754934352648501435485636318333860488569163994338371110576382305720948118319412535419147824938780990115438282140439963119065483058504265839815952354888656035777544323465511528136495646024350789003039264922026579011730564128800311329656463032138547257747061986167573164656204349552498999644277922353679342695691618733678007998402058289116624917619050952201320570158054297010649191513216699156894265717822848256115689917786082565778936511529537336810096811462289449237016730771977777276811007947771976331928481869027610954449716715128854972064349755091780557746613735921141261273076743893251335932589897960304230395888219011313255160727278597004843515500598723283582780637735046622494053296487661310102946929605389971609552646345825428148623210625012146201580420632731181777646568288957387346993099177812294127862650319866209050256984936569354621018557853746362831330507329449547943467436277815300580014897455971022922037369853444798979426560782154150928419431633139722686112995787407085117432730523887043123454797401802305415243526166909700761008159641473447123817811799068450491613019232463821617051058668302270145047088822016098830577169173989831810074142496942192599845045517856783929580730967204927343306572782400681350058072662761532257087046048242215932467507057761820788064106700488910125617587947348354643732804553381487407549140780988761912105592063558764722505707162516784691697103431135549558995231566276073164823564207798670006548741516559746282318514136517289269406542230862207260035784724794076069360034799220757168003139206244582061055214263463962062389358642802195237522061747399728018229819165170103621551493238929359780840024832552302446267252432627084284758657709393733263821448335767283083436368352668214561627526130053905219795836385618110761766883369319175903204952642226978080811662825490945017285276786975042108329061559312643399820668771054874875886642350816240135582323649263469118684551060411169551121791006166096983946923147258735112590155937002272060534471765878523447541032358607299081674127523958375584963180482087204420955337088832838772219631567634905073297090705231022964425490048480138018709542788618923446732785376166347418413308254836851323990205969352432415349716381807249572160766947939999546829324258543066540180579552305832796437844503304926375414362455867982778296149851454913907433591586170211220893337251194088734090965566708880949827597864295779690627281940216014074683932122037360314152168703324628904741499973836160805132235043310813305612754644847742993253980676597482126422813285621097479318690938884546586176845485290887480818685694337399076163978679174355580189782314602475069549678205295520414081117331221160421540965682779567317836821576853507146825764301854488160947386006345154909013829857785340031618053818761064260494317194967527487016873938651744836395228540960689717073178239535202487897339728634676581661697844355119203585677964456987558937062012814538336517375269344393937081002235754329623494492426041107875815789157481943767108733169836584756390255129082139560233901035807308458253202238571987170770038506602069037735595053752919597766872350142711516710022362580031652894325397850687570325997697485159251187686905070319671363599254643453313900875808684912347645206449351823740829873019569846751190257950655000313741968987312705993868867419536322979830827292172726285390657599178022309115297080759942557690471546037604766523191772197452141231605311335484071035674801052022696345370397505410511811425701198364760887614164129461827645009471488746992256120701174746069653591565609688453231148516908100667292144700919568830639694966840916209193660985408038910866987670034217254767806802893814449008802551203777373041277981851710007161269410697745681354351399162882866761646447501104250513943966723429092986877275757485509410691060200207917114575415097013903916171868160384446903471966656432651032827846082768128259711636073417527636429502185209799976775044614142030280160827378920503377715186977536977682809720464266399397016737793278755985189085398959596109868008207670638456018429888098551755398697395775115683396671057248493999077764681517584363171532628335024625019507135822229975714641403673249830486594432186370595960213572453153982708929961023847627883796492214600308081150964789290690718762958553506470485552330291554024702332629725746637738780676162860844195472397915013077180785559091640235372682992192694375054112675782798997030726559640665419704943273590566999625399398905189802269463306388873569509617696747820357511514939883922170568528895786337094104300929695499455485999822103924345763940458000133164967227284500501320144139086995806118289283631317609861231485093397625611958918286527635536208409993726385491140492950027139309265665443532300516956188623303017680804838257734542733099876555999279622502347831746464098921786036413256177599507050906801577148323296733625777401245896579710105557935426428408932725015332217249346529819356506179242881119017678959381455310190137564895716805935553247965979349898306076157839705733343079772106530750846458849499080699563713434043405919964168003884490870989843984390467844798941352222503117706995247208492745127634503360450671507070492616471176985280036348669057117586051373277046597940975819685591826241780083451887780673778091852982710168015264114783837632700087876749153714301153508056585491847055714319885198660893191860765362709832892486322390043868176441368348835244709701755201002581507184944558855083041843123557588638714768376426079579056505128429197574391433136800799950126598818915699505998100871732509195409699353822205639736557714635947182466922443871135798904841178011101981886771740731911371262806391767438297965085331232269916063700263223058841701928830677609641379602586425351492705520934615922163880908738283866118324978016925929193873180273648572207852366963327514303677644930727569062365140275101256058935805356546942424816443957653064191132807839255985851492414289057186639324933329836157461229749834137835220211884394699419585945217783618061188447586508352607076283500899223996052794684837406003114279668710230693766394566831886688731284091201201369955447187738901589769065824754912968352722140663298726681267556475693765550702274554440505283738136347247547882317897442083670515302068804620104738520231613582399558432006375508913748213211359361149434200213996100609703782975157109146871172308457146326408785264885203318827661251534788979081469434244809886439890237109993964543039840037663882993363746623785576865217026069311095214581350994996328232299811921009843620690885379486523915216530143738989957993788443129227823304233631587214823715548062304446064692305740924192656946201192698923812463069985224637683450381500051101859824762369972098405442755578323969844250144878342829240322182282668419089659918739850168594665659820526443100589887393088676084333161808588440624351494393683366013907236314704601970238454449286981308994350329037246683577273811399419481861591535316270489798466090717956290837729201147760489835588150021819830534634168333975230076912036292669238946734187086160424355487387015837131752549863116020065440267624332656689982975014570540445041551092656228642178380187526635287908438883965141087969955055834184971999727231947015509338570070267446491511720003771092129186259953560219030073832615236498953123512286527337355026792163559265270474555375058124129693145950847252540025137975009704526730163247157049810971513193239187644608001091808128419144358145767028310235894754570953141366274871451641665171578184747391107559000722354559866140038954322605833951474854705988745473405248174526035094174032648211527559627937253493465629265856224809609657584883904002298860308650847379990900520950715544341616791150366634781501269828417871440123975599175101560574489140433185538117970886608529910008052824952188725800615798452406773441906510635573106800266211076231958296310410807528275043534745517086798908712770292306533274302211499684596594713244317342282912551151384316843778813558727016888064989694587909363990564988814160286700459279336231763039780024060925222112534255456778913705703082088575670811487400172912877758381999604546823908630770365982922364928722111924277719786691273667302454157857991748180214273397034245832408345271399643035680238615093749570073999200563139431816426099328810619534078114259744336942348779453735997550220519608528539943539376359335246204644580660076047569884514773295684180367279930317778842209151651844221032502134103708737061760562072447771087320037294688786061532572672911314385592695286701044784967203637263836750324551945617076897802938398809025470917733404714941604701377902902863793540673359006040488385154015378585368645448407740270647154215372393816781623790022811506231036964518013922053909294527676421597444853608017053284669531605790021617233337825339014992863589915580035766236116272024080823511328810591690036059541642658201425519228624661045213893012847843397130374634514917170117739055805343426709426956823986323585161420120678017432606180478075327018011154993348214850103782349312930214891940098234046290149683338221868593739461057820537622985701012102685873614215842565321585365719167350845217035449684597367695453494347720197809260649042985511932912506814165483842800886818231857894080689539246557188843870420500343281881979112050066090964001092756405864048865163815027495677223549742436361252482899300401843987369687199400150550847782049138765963941632557752920117666883169608186755319621470441711635889250299424371239462649465821539514649491068238099066615701030526909550429838890450418554897557592340453351721414495476730850309809968943815608046433088869699258124336133717319536550116876286891693308602104863649540360800722604026984098955197488950739193991643923651655637075678207255774251019684243283792610403351809353079786392517218656522617552748651416389909685489584879960207239096976682552098362658484886981133303482543964025781558817841604688388874261290377741383310764647777850126236645495499330488015385795070493188945298244538830129832038428732025325337503138368290164037456557166884578440576838048352664762601427958209923093162285349852712024745335280967508182533363798505733707113783534130716249295608772629935280765199255997577797784236224886679689449572873887616756442786400181687106687693290667126788951152121101491573584366622371840195369914068704425600625516441823196118708904570534913640695931191698556169373069557044336886069883267574327846440458203406405430114715104265272655494979082511019912787200166418743093778249721023601263669810454825364934057336897738553453973452363007669818248711265811076379252736477843760641212869689647793412843707038519421360942092112661492780530076082573615451230276462145174272087496760850031763061484352845116416452719025537643097263218881011499838965218839705723950353085226705160995101988680105312049240513130742315401464217637043027531835484576090645606353004536596362245675566116629213709300690668552367111162773482929876700576083961262300178018319760219389235736140011092140706085954751467086635047355504859506058020383020554054812602276865188128891449258100046159021356592190774491648640471861874042508973268269188931384962810864408591454005359659952068925183228572457198549328421415807474862270204876526675111929534644572527069607537685441237288792679743380351223673195279362607894263867929866506960301157343370236125995851604189962661793633516659977576050693911638235042455144027586569417661383768854621658797389136125448454693627546712323387898484783695882366247565554391405578719026682438483808454083190416360565353541439017025226696331206986436223716623710775498735279760408358636264302513668758445525402660128869051154129083981777662312926881703337406164710632525674123157480949158770877377750011180211837580735528756539576479964317071896178933866612907271270554765875567268174790660834650725724117165923882692053866128787444339629591966387470704192350266967211783331490182847083838307364039585184708025818372192789491541081479273518477073811579995457792519741150187039675167657320100434012327569404704349172148779675631557789646607891668893630888976953315655797710605079134846399415645606406656679678110021002642846672270872483583227039947852973630278927167102477338679240969409067801277297276950110155702342249053987493604627356138850530166716595550133423941341027938514809582083191009328867225590339280556821747367717577288443739154989477856399830553931486210679782078944024704039083659925359491720241999319818350094006379079931799739332023376997898035287346666471929944127571154663242218244146897719183551830216504867749108138631042488756555646495045177738971120311439749310495936656041886186293009074529549189175329940375504697757338730361647766217038889786191493341570278172517438608039204189046235134043423299648517703068922458784896221905372629679300085306846605534876257921703778015692973379839928683010589373652502204919510827140184669119537766768502512908791347499206115287664823941908209002261493747507018891595225279370922570571252899642912407899953587368167108606935406983251272698976383270664651685100839622165323148710436009724316618329219268692491841096254178790525256635469145187344623788263008702331499574419002803855484286739326499663381412757998583759090828174447078449888332509785307621141146355306754524394410926047269817851715741030070771999786801729163270065695254739712415597796018874580156410856465258113807042795539897286466911752240174635485529360564283879584912056425704408524326437687096794107600552018341474817014302968925469433940784215964927276575155464882478526883594565068433304997234480622478707334479148734924421560223197858689335081500238636092227336137989991078261702282829279553809671112422149493370516245079937005738098091947880760224373816454861503281865705106456692579289875516114919279018841577142045400142425529645557550748328007651813907106945316099121733570366461409140567590513550864522656918367333574561831448816740337369886641333704781193767838835597629719636190953420478847833181890334450256453459019360973709881659540204528091557839065323141121074803021960567065518157653344339050006197932354461418939499294894723787688231430357019683711794097558824177875140832983093730147802707692013913370972445526974386010386937890909242970306010267830057730550647249892370062610456850853807947281511437752931371544377554293882293446345318040708810801400574650617225051989001620005805141983478796541205249824929664945376343732565119198142478436524418989867129251575600651691998843441108633115047926813576034918992152349604356697568202922864431980732802108389470925824384679736358231055461302019356171315890195510891748283503004178079645678164822876251707304926546779612007733439668722240957493019426960568119315396196304901210677897986028870629058084456255858322632739858885645881255316458201336590364413604286492657376649411437734566262269427586437306206234363333379534711290949460507766116010092397446491257801210037476780509164144786424379319198473813829294094424426056690956684377650500025347728655545972929636864774436292478535017633153815899944624781225606533649639181955033026189327321662677529480188641111687705963941995859200788063416787888734110170763615536410069021176374946449580566598964005003065821615372443843635396877484461229715752986071102420407743754416536265912457675729823795198994202429301355620516142508058822317747399680470406410951033547763410025236776202618794682894431564588059988915999507630855341367984697858578424739847610479636050210066757308910022676159640626381428360863243486514660319889880629707554398170766447992909892343786056094614789232733975081718526882506386258605716418544561755063315030101673951359170200955369530584701925127370766969078698370334218144388397171983074616946939074680152274925662438143583326954745322721463785844832304835855160872639544819268706396180511812101380521147570141413947073509711584775540189121568924972471006998296747076856760201942563143294105380950159511340821170141451417282002656138598774005684484034002249357814779480120445090268131687539227440977013839460433383264704149985101063338086869025407347051773341008943015936377462603638542074735932040362985434937632938766068017513485383873743439119319451122855185628833935355497781540083331602825902211047619078646638072211228458220125004820742761899136059135512186000640565654615484895625748239087879376031152276005964503155708104686367339533995367112841404271027976232791150212261387118476690530922150305812367491421598931518108618509352684548797825854778562997725841103308683829131113293541314900714348291664065229746781966339575151119579846590160570073165389480350754524244028809817257926783791675056101640312244264172095232336801061612019842614953961369710391922930608939616909299015718984456485089719220771678234078323906610649698111909024673008814033810327516168790520963951533425884688170159684655941971725596858771270643186498864960326045807965711443408284809567698717220446949455842092964472665369959904532665022352395207940830468960864590468301728293126547491140050311944133774348178941799858032196350675426644817953286955322898450354759119638797193430724569865364423961830133957079643945063873674074056395757988683930782464620565486000997929404054309126947262883231630087897050885996122601566154940064286088727521605595423932457782576422620254951899123244303806327959225546574340758591715589455356268577280746288907317242066134893457692119468668389378438881802668735186527738546177702979404628252482317914672927972985680634623531395210141569937637748708399002912487220471471045553791816531834119346190700379559152770527378460966581393721658801346372713798607513873157195173655553637330893042406546271126138710279397366490781162924917849778418571792574221406627823354100356536220898607471371466408245224940083764725410318529094046397297193713010144109783673448927672310292378171256883934428894350526368384396596773877105351702968655626261193993755549200456548124240107549002915310947445499353530211956121284048605007625512083938908797809741754300725724596855512694386669005674731994709694609594050495070352237458821826463209695734122687444831479962674981001799216471183900954400612547446756931188846657646383362847857065496376720770048958416077650444370546078518102627868900591920413731952208826217710688740578234133814820028078673004016808704326445132222413961921028500536232376648083089576652735094772818458966059893574288979823418223755801360310532392092724625327437149903210086388507329941512962549762226560532277061533406430611856359845653528406697258388592368043684000221252321208018369214959204725745492620127020021535740865528877911476082194419254130416302968365333571927808418471396849608725874526304148824966398346068000049938885591134692083619489270019911473044149749071723875779175431875591818106252822481900799455976107930595705400483314117783024808072675575888888625055982901082003918271008515068375936734526838399879415541495999868120825867504095595594893895354166625407415128042839324095961509166488882367041829622540710686670232460911106080810855460435461625894140548273556949661858269964836409560469152124911020128962860114263276427807719626058077533767283000965021395094283143996958247194006516376756761864431060682089670888233618238706816974195154237437245353305225138074768379563046468554123637447753996456792423647252047695408985304892003880533176618697830853656921008823135947139130467803131399697472033864816964206632508350023545046243409451350767234682120853828035571611424640126958531756008416315860086408508518936532799390432324813948966078220524544541500290093647661614522038261340027932305635592897093566498477474858558385440743851505558320076602775857586770967214259684984162516327886777659169937301024396369773629576254375073736266499318216593926909383065375713568149033533453593864736933060495180150434020415523730577982189380954436635394798838684557355574976454623207554400447578516405524106983978586184115740099651115690734023083260952622491418452884608407940011622863126930160001728217054927310495744080472269891278588191172987279397449434711805837566269407158559602253324103585626419138988517483493477346763816403561858144624086851397748906575019530319121843305456255738750259219550878963119777550323784408057813585551016701970937858657898826459878421125114605402533598014805938879475692344805747193257283513445142233784726968008610413090949015588711891298819155969193967121252696563860342366904292872206096861742897119346637880931019600691318587900269299146158064295881867671343276466383669197887866978081071048242601599416385751805806875332626678418712488808992244652858460688462058364779034649219212523742348567492710013181984838828934254106191512707806375484905872873566276573459197047801444221149748062309655814115625028411149098368457784014726464429968763319832553839187432183120931001009499190721402574741520611502988439135679735533886081789366209921446353798663244685181741315105600130528797447723469389381942646962766432737312365196642262275965902192740089201463605249477323152455062855260008801863826888288927070070064164600579956122544699395124749742381737614561505605086943040401925056166457825196735800461034588864408117351176836342184767985548620752340436870180379592884938225027346300220800815227146490402197644821524266115963807939289152475457517518348237851845430570262219435534421582674199575203379733589599432447377571951377413686937833290634258625179016816928761880992382628650248561672382391846186819144730954556280172160030250901386417862076818934578114554550674915580800354536765633733634858859760147390317092768958326927386012704654767827559830549905007068101150859282399461092746810617701578010179685027197892642695019760073657983725545147523141399082370653240584420736652347506240497951418391903679460214914323873410320845747096542922775472365499296651962052339556677441413389964763455736079428008637748388521876268521952632927024675440308408015356334709689908526387494476849767940975075827837464714464155190976349898667076943296702154575163753232898901387479997620082477501985991613670737241973706913015736689497526261179275114587564496823714090457101463143242398710350850723303670079525427705817843978351391223229678340245380684679925427320205032741583636334102182407574314683572475999331887395830445612563782913673655224509473337573806482707702167282466902398809430747869000802029981485905193609847661472024882641305254818002078738675074994531506284482638064979602147485528613704839097811770155508885634239161195439437284548693328449498465399729983745876701952436959208012677072693109950979669020264773600441881694080166113339485978223456924748187114204202963026043073569253903683985349745488048653572541212961521118858851332784162515835300991506031248523034410931804427859188074034340607357334227136548327024464709726926537339955663837957060016163710017466429774827563986965041508281517299832182062882867571446585630412505902792312156269383036469119580606623560774434863503157861065428670308695634489057968735489169258601763237234184192404457857818222351751617604402618563790550787795725491552366297926013271989467503133035836196145437177973786160265180456303072112168557266973787442824984379214540759497092800297350989227434663812941887913393635427359693236167348692668302137330495846632157367480573081806008104576418319135761645675373526787291497529531550259230278097251586362856679128811038702739097755251082832050866421799070743645930949234641877149969947608007545992445732887511784670088261879023020758056545064515402681072621318286297907553619317422294384359984801259604779188308917594443292375431898336990721351065690686898515156525074577335612979533867556370698320171280086749751821131541107751551612905163430980599883880154660682201229731373867523012045896251594023182670224808583627910413090496430093505733215778987017179395113137712097431259706864259142644340774291402168475061499409755980639430359835930893889052105314389618390340925707145671453048586817067359516774731399459641642458455862072805413098701903842834411351455053489385860453053146826814583955955109699270375363865544907573268416799581467217767971243155958438127118697526752595356335439820906439311605895614696687274159718898245122551542165211183438615122688484542260247457177991850657936459137654144705072663549046919323506765130267086007055035947940665903755074042727793596818007074018955602539312202610409052048414221341236867937441661868617138387510874712081922712302833581652723899772155181721344522794931528618695466352031101845286061632748094137973468599080292358598676106530504001241688609757815963777636661261563789424806243082610385142760032577201542944384955931656942243348719743738152087167263756039541888974317480176978135826806029907403984592012310716439702364527088353822054203925033633729077105845275616947345057659028002222595783040240874474888342376058868166161258893233599091697959976280082380801120917428459569954565993180611158946672871807778318790117458629890569511566157453836433579879284122177551401518264814785650408701429884222910678884506892020361476662433109275018441930631002074152800369400965458191471784414053988451027723254602762237010030085861560044608119239699409378882069200825963498482885016196161089395474686961285585146326810915273583530400238508346474074150122698732925404828872990058148656032774674226578095386528398413138744119053402855615434345421878819006304481180485316837844518015823190612043868437269323692681611369731751906425523059756420437265480526598858801716221782592824200917430930925454649287355969686603558234815166248088367933976033137885204522427533713059206247843905476752038658450854953754412100312225738895752171555198994232291843251896427916641289130003601062834693568768719008085105458354779966805176251705618340306816255683345964782336499699731166730931313919146060370682132336331262053769765521911148164867886821846259566202826979096238546002889683305451444359154539212670683593315970511256258532211342246561286644672245004072441053861331126411304855975966035308604332933869721862389201317932967790302354034932741076590043585072550605726308868799874516786505521077851697491140863728584579354156941807994556345366011724000684220295855864238090591718697390447204030340179569113540612744740679691005717732738171083624372348123506147284120562526116812429282644806281168498613365932025878202994622331283611153084331922285909340718115673648482640413585575837026322634977779568425170391798938332363859484055758646304222087378102780911503183003007955427561796238836328801280303510300807958064466724547129095331394422678179927542302246144976117248902023808973784955332028203721760158791237303335841228281024923787911150014494447871357672072226002986182716649095170048590346845893654255796682689470883238950899325663131106610559361292187755980455889152979084433722986133371990144251889510565353532274813065551328940900961499678844373271202716655474892177933461295164034092312384597505990301908650408412466427197637077108402023458372579795102462064546978842352361721262115043311748029669513998679014174445410880604100075806314323358691515159097584976219317865504589265359784628531883772354590097407955107823264324081389436055792566850317854823124946918924941211052080014290888705920578318360557994299254048425314892093056309505142642658925057756834854998897016568280689291215854259575964227389546086765527557448868665846291789832679608814049606594145775201669081384499340081657700513090283745991104613515454068021328902511877404276814795986069491733919118232054475170648685299150031840728677069863651723388712582713405577791918359118177569406295301487030938189222655218179719997672050175890202233100764849773205091934165885147257158301934917978482348199222081328202433949168448494017011689302539481469627785674388656882129406182646872064313274972897485947396852060191060558609075451957945855713528951526218075090157465871990911728436582897108002504788987342877915705117249329544517766971707396944036287890321851018896799183541817740241019928066320380177109372677129011288183771843299939869001298386116221328082079278873707935345680822730653370820979480521638315571794237746681455479124355768531515088979265879299218609736357050428389877346262649082102562533301122277847289866920811151395747018065043863207131167194189490001057687685588639377253691027939382889341368018954146232948628870789329301893630696830673740895418204854300024852360425275794115949413105216777946565069693458944729173232257841158020259362992526084054246246254656654433662766891924628246104462408611532824735522187930083605072340359528904813023797070981523509582808241539187573854477684842765268240755807725352673931201157151758739271695468682391626609932697870217027773678724658945848999005819981168866267267160447511214451651823246571056421416723109359933673279243307610213518107568425329550568346335659628589578845674694253970676107672031140016798010023195840548282291856292304753240584892711671295413455687890638336419442205592502386282216862659739324782389578412925598658157818636085244810213239919828910909893957041033229194527967348291359068846049168795345805437723969811142130150195573762399022971422024897756234715058159896403636501912320194630584287441700264919213703110652210977910324685195122901879947319531155629469025577754722567923738741941378764120538475054506702609094032507425588924639496077636490518634067299353443985481899648865852499521654122372067697172980853343541449934390151575811734385672581752988276846416465264725120751032713377301938447458252514131268756163917494391568847022462411721205294564160482279784911008951718863689589448129418064743036356123015805768085627316770980879001819120971823962765556377469915457996319360830822381957306685915237923177890842061219818249771418189512670142698770540969776748849756834867534730023938590425007429653477475936443038884301447970848806272939821059714228142637350353353411079834677455495444718700476061315096860833820594006657111918297310935050454094827719749277935944736375124940161405509995846545206841844249135297277907644727981222811909988749856162546832732714755812780852436983618609786181977475383140558973370363079476397092116332385901428829172136677950152902439252660802809765792052501300200872243085312733460889671649659018100147836424580327774309225256650457504191223610554249644591940853790597760405436178501758965896548722668939253450510262151836027919805549518781728299187412046710976975681670443983779105491679772791432120711030042958687540435624085552215267181518084536048069778664977071679722022422228230354812067307976021807086027861490936332505676465172829558216692584562531252229363816597845008111359879420317154876761585589760872216486616056807983391148221190803590563656821700319058003736770597549373219494670106642913085777187562366122594108380021722776903999409003107775872001142404572780301300114668580947192997576395410379263555907919738170155801978936130060569206086557916845836277136953021074369513159486323028505973893570218469120855843747803771940336446285726851924674116491043830976567757719010901128318240346805172987049332112785052122315055505828986806488456692119292987494767915614982874996731176864499559704666622744803057325228301810025668616810554430519270958184006561523796655950009465243301916737648626734774861628440884010500209746249826233480066020195606361989914517048934466173088484856301877558912531750662843728476793305903840970365974188852947006703759431858674066521243473106604414323141720794652803634634367697215312814507856043635067885367961145973188136501330825379336632905482355244731096135216349969126037685091549281067662224918332771656652540762312412828220621807913410179875386193940638192305230762473288519218279009381217358284611531206005569808045279958183065221273570222733156186834577534058573864171865209626781132247637036216464463146889464768195772507120611616489001751985552323652089463547276724107182942397120230183239804178262516850726824654799802889316652358264269112467145755644572561328304224734221928441409897921048922270758465042824168134416439965346088940760129491277192060354582665276605061259791271703289192181315080889120622460183405035344915781463039945974732343960284111762298217028154393848386244021088273710499508501368045340146108607477924385723922503005952415175624428095209848997415740999528475154147888281485308823744809177562053667901442019140644687418797035110822392123056468587957334864834643338673425732821515047623299594904726837971087187248697850926397945651704487154698635224013945632756368896409441768424493255414026720674862703471545652279622606640767588016851600949526045822855277488834250262165282495646808250495589595066353672291767264506368569077187094417168425774611341922593764635224919395642973818334134764346589993350537709829209316262477083263526975718041755046203023675814658544290981835464663984579012647327241874233274461155838215381186192880318880473958828649149027458012363518181666056802786396781809390941317998997608132893851790243591485580891425637062303095237824081306479728224035134560013326742097746256747534730916636859215223084359221823461947663398946182396863999437724000227288768047039307596872499678041249752629171759728827244941134645884686601849789830396424989544891091007795147744115340505266722512646522338597454481516282624169040322495517475698175279007349858422839543071751432041063288435660691348356755751077100204509247347576577691932887926669350910128155326112367915702726776218006650350223866534657910528756214090501643779424462699319702598014465897511788714539915191309907348368877020115167027821929414048002924115091510165286131437063972683168522097918817110842589811077543638883397915900071284795918010148147585478387756475334954751901833917057351977430072961577535457202040672903027199341626228153941680236114497740342423594375213751535702699558857324320521957548060305483750958690786586119238739900152728448838424288249283188048534516420641952244712056026318883385263011582615910851561299952679122091953086106091644468795754120350602073491095078532008115230570854276829666661201474657335643640950986924422237066700983069526279165618598718737347718294362181863237206653711949597103161212045703411390517018444405653422498172189253483592972722732812734746450656450024506925470777105149309062351543093150463699628643048460454026715244949155412471703386173811824315153094641736130761653322009566452912096962559773011916195547509315280955687691158236121269280309378873634948501909741461564070652522139781083125202171644339778772587018870475064626104785286733687213804699004754238506388546370930130162536145524740205139681601303545048267887181831690142347552909825955985213011070275084726498918793143642465345823445383199161542829026175767724312306958906106773136558819473280834917054371024283083154729336443361702198138490168603318095031284119685356661492047553451579236932317924725429841420436972610590965739589191794255409945124399552731132914619267345704298145707076227108435876377286540041220372288284837553052903532375321342965661625359951612626441904175119183979812213087402413734520626888945155579743625774869987774580670736680633652526613002317568679771224907438956660851734751029875418067624398086104177063724411708059746641680880055505558179173100396380512802002323507422496394987156806194034466592250292822316307697206267455605265539298534145454377357517322832091613753994513916615128264160258687232995430529934210060858664315441138468125363469413555921390745175044638906528510680383913385596315295944517954188157019516554055365720557071379056457915745293835786700616637415536083056771787928447764196144202733931869281520834462615449525674138609475469369042709886976231147030503201369590753304143647168671958094630414701988988336585026902158003621298964445420249742464207080096174649464278919019671528850479762078427891272469550262166460525935839027798730674948255204049960279953532263904949102087380324799349340991164777763596364667594240327115804860182595864697363285167116934563171458508934936413108105452899870287525611249918525523716295265949514891982141347415473550832733193754952263670907931461974695533651149777256069161288999305943223152910427917574777862572840311481641593543248902521015084628853462855401981275205270597235646314577290616637517759593982399054026003771914208973462566643609261514481236647416596981218691522615778311556998945487235247534877614109314062834507443724432884959843214527401297964468396237131755952186005847198335636263779249348263013317656787954924419919204370158123856742920066581862717007256862823973817424738496322502948252036995369804234721081074695474839757750905564822351846774715456865849992216624283893127618872662469880743956260535124076070575816580774450112855160505446535245798226422311622150176487053437349105402084018419364511119366021775928965915978815246121051705400014552422854586930926008522193956380575752790072693492549642673355999240408313488750229664007903345985269897513297149080814381658890563180740340658744091041033653637850628545380842807544579958024254935568193657224551779113912230453890009754824458002775858487191865645662213732968784327828603103147545537160826073916097882542787249873344917774526664876046708610129871302482036508016785618446044034547248438988138029007275753861919525454166181555883622504445606073855196430850978311508525794855946296653513527289966090311874046369087186883043871784188193423208230595806807035067356537331772715886430342204505435112071422268875300521664344555445609322552313186249852333622952614648189220177918474667324028486196748496310773920241460937645295295741966967156348872852360374604415824415143552631530540041442308772087581939613133170116988813993716507333694868150472381917674856047688230700607011297578270290887763199189980444888642786511917627367784388801590890705665076208227821833720440848744324941431288098747164313741054427235166459664564776430464090995791742022521084498531110229199307205250295203119916957240355132803919454870484744406040169716543379439824982426253669420884145101964249014448076062130997047746500273002191249115131392062664070943784010738783003209265596201397123432792189410872827016064442864343932477547957157573012259035516221192390489963513813666072213024501462950470528954833058115273390817467585658989676483049068820752776689817243260107991378105832630206391680163485532563454281053565993409663652005833109765473712531718528288605738784527851974127241763509138361686504735391442749859872157234447672110358064266678248672597839524458112060806841358744372766095769477363719162314898194907688187123571253166249173731283371611512206061426455610822011324425847051436126206938731742673551139432878519797146497828503762174717971484757778900523418785166485921435071992330607342287999132997039801269706259635310202304709084684103383237284134393556323283560333728040646043037029984510125664737451973013207638192788473397906880146446223685546718541294816850314155269503278131400259107530814779678339980661856903552680502844497932167463834199114322699484173422241839754643597683850026789491784516365413151774222078331750037039377999072713996585109651243407186257625679933190547473029707424070127990167659726575459622579408117140263870726248463768312940907866058140174980324730265704421939908810250061354657470463685664654155566367873630458009531255449388619585008346191568669059936428200352677407190419535835869573878118410233145590931901980977407354669897736940184151847291473178154032303598471374358706671854068225371091346485466155915804835418433648221877902890872452173776073766858618733054972629653662966007473711715218497543626711622721495819504795488560999011482970756236845555896789407914723214392614762726858253394058547635065020294970443201111156385848453447053906446365919980315626849039714398979662991731088255233784732550124949816547334477988660645046373755566503789469896350102740295555025802849292500958873085963228521267078087085881114611304044310684445056841705917605618911782138165550505588285859775854393504620719329449052617037146829842361794215396285638444295236652451166666819626286961208951856069958371299348325683678682601434736584374444531676976686079807120839588880737410266301712070234298701411025237088855109234480902649201021725575762979021819050608427120320270976956770781254256239258279970335059419247338997023916370877362285723568414570594048124475425095761135540638445058949818789393839787381046348624583843830995135319348387561866062561830852520580431579800202728873599643510357008818787912275836109475627797210431985304663381432838943585711669336047532870893487811538110941708822346928198928955598692625803115672014003781748308758544383248931079196636452381104334438594281831839265980189637004016587522649038241520314894055132053651369310979193578207392612899059156938803302024429262484516778655024508732794709954622175776415043037280109712821605220422432246599022848219899525681744132925954089787792643142702675230326390575834478296839518000153016989923952804076296596505386864361788908468547752294003403045932210243501652354769011114851219319385539959247024902457314726497773110185794993969632258569145383043764473309991349400567367832190232956887858707679102913445249523659880714641874227213750611417556976853375249578794153507812140133617747889060732047206640484931552525321360906915268508478432617902413329379438917060674223241175462602063391250717561455919234520388253508204239216268511056521324345237526548374792273597432320384521586762287783944705884234780936693460601477093650092018261024356168176177050991638157258719254315564921949043153119521924671329081766763488343433850758858718749097206006483363717667287507913960638023594594161000070250840077784362021385167497565087324042699474821122816552987415601553823507243435733491481323678663824228948450966254235102256895136775861013893246797288670317853700612855198863938609921150805751375433744836672502840571700305906283568936489909584304052124752285491969489549154376980133112441804102636402357639128510097453652182039140909472776393854588611346421173459177217114848444996094548539379600833247935729492506622151649479666570577133687614681717292550108326254851202526268599724932385404832667790619837759922377936193502127085742594657521162601873810921122528161353376214883446305180164008901041191722764377994065231319747625885448351126504914071561390105538946842049546057884675992280260497711809572435237352175502119536632187597812332131257360113825522044424300783592618442456735426252925431673655550719605920655587598639318136923799405821369781893523327809306843487527680343587442044167127078963067128554638168361514911363740364152045585986876547985530786044757282304687940284409619833838702424951573423980281677398410312991433369332453299983633282437965932226113953824265784519307437440466067803532860206431537846433650533374590472551751756183219346202639806612502568088012773936368007911145791294139393556675650175498820704003430977203504350915885140152649045983189359641373035384547871513390742687399796879821050912273330897682407539793804164124664722777003232258681191015508163666907088323153565855540858214164806564550203241447230001001510063969375285343864704854758406997554289172078096929324080616574495251178384248785579239727454410619245314433929205281766810980441880710370189175669904804739861364034172929098024304942899617057283572523161952083283560623633791003971272422472763685126725314638469813564321252894876130652390718031184155495528399903633958077646385767782577457242602618998028057496775098994377437178191811363275418090834890286051710839697899713374546401868933843168449119012838332045903788235754174804046457916878824678017368501238074142636692059897577369711087139849370867327658974333319568832647136367092486058137903802855384127625709844709150819492667248162256737585850653797300950322845225927364028944073373805306900228246068696589827032442177083646828373706690959161180551886062505426558711278585001509060981291589979194223294450953875857720608682125681655050042112724881933937944537803732904258152228864645956337859758523426009749736423544714322447394440076251953774708533733496636900239178555827146817229164198785548047059169806341112920621984418266469035258064739806207792592421528045239259011959605468979075029560143943951606194702171450268277124066526088720135758231872822794960023071065331195768115717461205759997952422564642401139965207733870731156628515668517228798672347529627524510704216640030407183257282604104059031670430036992866215846523868273479305372596932890954978162965229089074935339242064844160759425238770614416021002991126944784140307895381052213234246658420073930633876617990910762253753437890015372618544103131700282921206294644159526845107585163253711169151113592553844426744805901649524030586281293745391332470067418450521252334414062654836428427499742723248676545157002933429759641528018537768524757862988403499810288055073818942902154884542931355237693074307698663733680397393596118131587853497128342265172019398276022282000703021785926805365487943664399956099617836436829052916143566176133728321564467453954868780794067287579658739756212820645246514496396029876991376062954916146792099248139156262600255317899321814948139420681909441302588938015444219137317985959116905979046549888862814475491238422380536596225538244629044554860019785874396436595686040579769819184396324141853463592327204846403826890270828169982714813898239623879089786963742807807567184867335895882997120426635583964512726048898058887666074277582867346613364440251828615243340111612680499409086365684416936240283287434077192390480282624534970228876689036927824901323634756206017393140411553934270254189642315774765682059539469336173274355869360666063810901874257258542775376176334479565550833975214131497618448122748312041228540195941414241458356226226311641315948479972946769141543512912592419809277253105799347658908211218853505845163066854112867102687184503153478007695358786553271124516425116553216185257537643895585389348675569046893534218296676947799947216149376556140534076923060381388984405373331244024696107730473794280586593855680356664155238187699909949036855957677980806782158868786490205329219531626504286295947741850420608923101718248650679551622497166020266947530135247913319950325793857224788239619641354082322973144008605371538000726287925933629655351757284343311245552668714127857746707107562926957327179879247277024532841887263424482244537291205704516277566802925827953134768042191012933431736424197011794262213652605661188398583867766967778719353491545583619161351654208365297104067264645354500728235815823798305609457816275152685234942829442867349025944604181672511023447341445942419284629256748276979312476736017719057181619011093400674944319439106237797379508783139450573950484089153707632390909572204824907000527784959798192242066245722368712063632779478335100139364052123772070622646121845670000189548670467716828289095120688315487989142588100793175470019497997875528758876621804131383521589517783945839302620048631493035108670052324860026931724609022587577299554138102860772493934911770316361437062641794799872212414543041864065060652366155856077743549350548221178090002072451942076913716812338632887724327915649935807733629076551330032217903600961686087774535068025686889497591236717652090532890164671568877955006830333495367781445775891997284573413465076912089975330662908073060886770343013330135794375049534255608543265842141267060076959178306000729883408810990552601466715430121573347679632231033554342706181362212893579346390584842089063546983604688907720201473521898692259246502486976899252672852102735354238780477282181862413175571159441103604622818470108683789994623520261576060747184820055242780521531721964618954985165197491231858788140833755697773693468499130426494799537354552906303698573178537038096074309760680792560867946141976817037931361880883243320834765000091098472850476799630632041860391862143549992096484802989920863072044176593035769668401198927728005660693810728489679053282136118288504905181650827800809237144068580200442719735596119045311235470509598836272122596640903769227911412374972211003563839990918510573986359775094474918002237854260149482377987337369897980117498902422906689255538565091297579047699976349562482909671611821920991194503885439981307847818368442856343660756602350319279670420354432708708144396602060214245274392225058109159434604152912200660850428409633832571325565461832394117441194259212048155509205093884352273235602195485849222362561941728984354797546770135050159194773441341090013246423184594936940194978515763448408947498825971063648325744725774531286085445344568881823888207335210499079830816752101773610986765987016479220416890234953767474694821127423049064673858687059412127143883929686799829277212843333309759610436601440604740245142616882809549699834642238185871983504913145831278397728345771392402706348051621667687676951768360784209695890277883408260306595819360237128818223140962078792904353480534238178982627526704610388896537536071252251967149571099398337049852860051611344292541701837243983035076889468136331144810800650071936991623837479077651472970678379201398579497711801134394824357935449286184606953298013416899517711370479067593517582292964997921842502820673923390655231680366663785815609085373766421180669598060644518859345142209228618067509305827017064215790471106892078160668057577093260903356374043253322074277630187642649266835362968159356005471698226857598261019693903015370410518132842184987277720471665459784388805878130159556854886898739779728395003670062126612804416935022709010189588832288881302117097639610036037256824807346644756260307616395318730870921921071962991654197365704314022357350325122425260339903071420885873015063058107688593868175015675723724744594570647250498543549276487169658815275245827215965454157010004802695853433168793345969110129153756954817164346462644199715007392182558159502002767045251715701740159926299976851687756470888822091080274185268266513702937032660339239407154324972831805553997633294486955042382194930558878306243481573053312797465875365347831230580589157099736311415285212209123172280248499593652752955349443013601121071760710398267361984080503163112328667292581585593505862726957645996740615911915730397807899121248653345611027519864479431099422865029575090287280243553328653366758547911228559717012615231620841124567411161171776599112615346240303632735356981971854294862554268891838477550530656769714827255004048756554022388825941260231517180225123344091429334434754641034944872553126566134160045603047139461712712963109547755617948381886155255804693264540904658312729905285472594578794833273018220681024039541905323255552292986317909849697564027766609943436544970547162716266440321263382605205995747004122326835085435483958348911864433464940921187446519402415756670115098742264219652345439627832109007133409936380436935561039694648920882004110931262622753847776455123496417604576327295677098565035843839166810473451967746715868883180851774555864518216655629905365354376931935224580955842634824154578061113344027751787261255375973084602077420122211800898227584108114627392336380328019969990489651615712854549222958539869295611909777025793025416610968657699826803639521337361429647250840258572663666238358861489407661554056743357195606656502382137318381022170799700888552636626040865262826732603631188834020592825685501128706998300950334306201427387278018883155372340846384905673279789468333688777141139720085768317810082643122779399388445091349033888352600909223635606166207219610781362361374339504854966923038483597521737301219873008582004305779474543312588508222517656522455118415384514430506346948816642150612473914286410992179569159072059501369421654300015504962624388531222404958923624440958412007862994779153162988738800471872403869177471172855450099160674549551845931013542032580176252479580657674774575771178426503777795810455825307972312427759857049632155096901824398579938117032246820017938034529591022218131750238511245892675436922352955440281412333775667853559928274301658008006245587257774221721704481419686647940059538678538884885656124290361079685179881951810505920947766495579323066433609458959351312562453786745528881105133179436177064787674544553989650441644416281931321876669888458696158060777855027806730975963351241085092218278036365072672518585275319683197213801496812285784694849909773861094805696472994507674429304343871480175447471074575646728908562520128194361969695748456539634224316229218376284672301702803541191372850074082768009971110432652113321518679520599378183763573466182310864167410365381280715890472885150711723503067062506194416219664365425625393792282798299289668559100665755677940965501513199455748344328296168231275066125848413027109497028231563414610513881676410782136048431724255942518302800353950842043606924356070669010631584665367117998235386190101916348434658601793731424036026873975266344910401166260604333114042386979428971880158422969234481952660541321532844805375087438153266824864014196591821556502996615835146792058782246395484124533735343186877388844871461742922692437319102459981269414648838710366862336971460304154639274013915512536258360173966740953337229881220711264008819931630135100717874673506321567168272415442603622299421418294950517956784228963663630213594189692642091921789554701111365282567028797909815157929686703770446095567504470445094676371613627032334791213348429824634421592163334348242338244964857104103803431820504166185022885622941228563365075323431392240567195521314114490494107894333079662532596051118293628863004518490937029638468867221918345854684486591476417080262584386175512748771743234688552212441149463615963606856559321916617606663527059862815472304610942968512899614812972586803724616647095566166247357645063929292438835230247868809955153557484427372235416503496483782071713750553648428059068868951811199712003347812201391226164895865576045940422493820453993837185031222588542624224472695155119420943582405290635040970459070486153166639022227497530386457110040445246474191014753111307433056517063889390831662834609616916658423253612394052629717771020881919128754729610284815973333659306598647839318167048729322642079538655067091690069794053082251878925808356228510993187701171286303945378052731810818493256392966836670444601447442993361335044102224728085199567942504294686261850404036975848613631665106797012782497628979115327618857120559166307684170395474682011019532928428111359426217178563394467914414702539089932768598510957673790831580048229338458814811549244764146066136296004126268460081662672787042220451782395061961134735964606447353101514065789964350248468781191528859083570425472479249700989302367760100481323397807019622525573220169591443061117334565434976546434606896492280547091934157720182811084322521225181658061839284659084656411457107749418530745788749473797972689975166272310648166368770585495443641929227331494714487747344691500406604995756116522909738210812087814584690225101043445704930207731457153153184949232892802161839988616489102318939604560946100075171341663298729223771293356210510362875965049862697470071016900354221344514178616960030323226043812920830012694336944968608181444425054281171274386886513932806900031611016439497652623062233062919549450359369997481278579897938895399989941062869889761376858610312182179078951981444215906590968949394992116316119079582420540406635793014987661729527400218152907784554511415365044790766084163032632445343276424778603270193124820121995896006974338033499594727812153459230968061803215085634035898629247039827235871661314126677577575895947728691461196760381490256564526453570464921666786843080758847468537724378836022308890978182615059917245970718760623246002165075478779979198122745597011442978395669452472005887547356399624493816454523676520206896433837017313084360779528200826298471601322113330655401555965035059238826209040302005811960042490329130014705764998812820842613239519822431603153604028052482130552849849963820819346382960793628145896071482916097399765059679864877494444545244234364656158727782291535975679354396164835616289258096994593277923048140328149053177341240718214832658218410976647056769484911415007422431162487414663635093515708048193964022662237013193258671581252079956584938248344959752911995598522974143773745568739676944148625847400429780208572719968756106659533747550313499856927279754810837006445485807629693647624318165761489808322548797353648251734212235018628034242058978353109533333368600155237511342833350645620352014199032052520334462857272744351749961153470819379031253550776017990658225050047658856200714972670435405315530189845130285521826247276378737063849726425105581819392361482994453067781978338083751375228359864783540749809347257559974397591778813140529068015740733987326890857286862370505032278286795461805363421806717565963534126491773819141822592639111432433628361927861852235437158078785533268154957518283054742959470603130004217509803232195525124369265093324070229746619758976894795901088770458212686873257881585356727661864894939522491916645738006244861770492246236756173035142929705548459942100845335372416204062642981170408599187485307678581369051520863899745427690962131908160382548531238130006750649304502527787762276395022611636692362116198332972678175411150741451852968965893900977068524587317705667887475183913461917519146106852961556167751961764123951959209188177442014593893175463337046941267648334600410203259224526581149499446998039762298074718018303913740112402903041242246833337169736910540346222934788085920981457219156861372670886034986926642349496343902946612249056270456108191942528392239038402483714153908318777260801997244498936691333095071874340931343578639893342578666148829665560287700490275438333830061184426847939572038622406850129678965599702439897586841829391819438058484829132464744103910540906360388579272910465100159361400319996505436512696033605573021231670618311562098986463447673708014555859288914857308956506966355403871501096175937007071303670799931545506594546253155472956683274208341935464039689370801572488958940649754933223720496025850261670413609261935273411987663060886885891505024056321470533266533555370580254550319149039022099574416859746739108309188907790590069053591049842892654377347774900651841780209197111030262355838176946630914452684024384147179103220477456422623142371691491753739464020892668407651056017257235845076601137578625569777242989780474497978349885405394825026821518840456535918575723587535485343268100648690368458429457937588705178435063724944713482902487792894367956925213442708166050526903573653193159402162200031973619008067350779161475656397648099291467878494288228351685657776724763243819142653902964587530769963656446697016954974592915286468285892955334460626435258614033903669250312080410813005058104268609610590209379038902411214050136268541052941487477817186056645615359779982582176213395742648269047920889335641888056750481594730699979662670748306277133584437946838558981551800180403536036282181434190756963029123341789808606289958703993466688237569664532419406037799185570877810968071321886153806152438351586771298298991996757632978368823712674893325414815364725001743301804281061748603931776913619548822949302183912290157610413321621016597591928647930924738277522900631973817032092295608982337089520566101737836319513058807246743769862407262175148241390006963239938999195475332159808555801048544222028287009775948969628912401159040167004505766083687350980869290725175365735044987713475086946043684930554196668800988243785273168053956048718021556606000638008018892454165140324726690475748745976543362817694193427634649682263333243577022600528922801728487929456495213443980004853448879917249852497460467599203445533873458629917800259712820041605672815179313192828939415790253214796435023678141435135659465084694895915817518968616362801751601869561175393002448672044076318014289013109208782899401030088924568609201804236374587237326988508542443092807079743154893933682269434327151860446076590753123622905078145093911122900126908092885730020353021016795348923867643150038485006791173296898324284278430587911676627886343400340730118704991662357447040915101560015068239480132788043436455133311097566819134065979823064072454889533877320819502784068417151748419864593183698864660401624855413398009485277762985901270825753325804355438396180122737802252485176693128137885072242256543431947535735702476168690497173855491955343172782738876689279084788116524520009177099951218638093789011429864614882299668659462403992590200069961883410798013468965816955100355321536075542253125340287631645763271022236919111332024041335661698986663500978207910322443201851045368538677848691573561702203051910678257128298406183509871031997584384435255809454799175267741466854594656332175738779663129473877556003933719211464903878535431135684726336089697389624880003159963819963158285098293327604549357973692822024229995252673131524913131522446551732245780420347409608992622408795411948975211113482254538533781252882300275664138426426235383653474321640144495073989021342779023632081144837957608746681488288396853134776976977483912665876523501254298847297588873040072512721593367965404419888534335691967582080743355262009512830609189541657612335560861048336081543696987784176108842777126021710729300765624885541200445979728907277528998005481725355910737243901613141380459558878876479789058739624470490549791603620961283575705454514206139251229897349217089157671284471138831288333700348869171803096648437931215703731128627518028381670987806307200336957279077807608692357473595743889828720995443175274896782165027843453518493948271904281857125236822956199353029809168998221670224209726255472201845031984834202491002833529366184674465091313660859403333138015862340597013242510076006469403777320081569446812959685094689349111725089821603630149159741730265018892795983308231342590307068706534134888467002726370428007709850224645657224617488167582882662779690357034498497701284920714276792700647049313235421843715483126450720469214654009611393042924141072623847441649523133476029126738889826265219591169870376862482672550933940934197123141055936819858671948153899328243433943821515918938793889971123555400882160011014952820333132130496744758219392821163284491424201439740689454221385081333355570093137953684716623302535647385994617572585934307137713820069201524537111962832144659371880997994152567134956310663140792315801206968666540118154124314332395257344908070229825935583982363392236766706221728223716333270939339515130093017623431303790083305824291004505570028815861526407290502267407512456929245625943824778340819474831936792419734059593473976427566009891293173699773524898381357336079655971035537670689311298220025677923136898160023988779432427624847100797346375823721955302835943079720318602186549266662012207739768777408965525924531056739409683157611943393419941808194624779809965317436628257722678760887987242456501698212572067940430440176820266678154401195818686359201976228564034535908260961522593496592903244649738385735550148885966957435348774768638938311802106357405093917762242933737328125901363785244114057580903813733681380904419656847109087191544515103052772706016031182358362224280756710065262941722639217754543426915415832120941517836222900692501183734843440480597545548179786707185554962532039588321552514248003252137669778572052582684094135250124764648150068403671653689013763664162591538741258055438231352812237618608222257781997837145807605341026943606205721055685805413588807154136987479051016404699678785947679759546976686542519758088629315976892994021677549436349918503370247621405776927222502199273504400983597943544396086524416094008765176407079786562919763756157647749590040497890640318795215444856751371539284723118823828558294918032015917044941022221904845708687314699735734319458792349881358997489934702216991939407994108196065326607794649249483179946721299476692394811662125125563190165294510051592119570047230095657579062047989833235338679954489963260162671678787831587315455668293801068324733006184996676642642324286015941178483659509009438028055980678200508342037550042104662955002364352611792993733126870936618401714613334784898349201918451149509683274114770681728185307822633375884684254852129120038265343559502693566539863198257020858187901790641476846568562294834818660275120637029747910365318156357608669991260177823755620475382523398103455176624220225086401475590383937657540012998624389286201214023305575326382303355777382751463047485286540407099581397921331219996143212456875931713332139402436569627132875665867067689545296289918941991502699520120247224585359326450081531383313006776879223456414865365680156211937225217441789118727361879902652690537780180160846485749004400159877378364277157254831779481313210726459810352911005109336611029929764490775330652864545238186667270476717480794162438463045955529475584043169344800062754670306694636479616859470882537040951964359921707523957985736489946796234553313610887544237681911639677332432198876416971984611996018740035219003067472689770954107243383326045716257620356570191927807233325584165501601002589014336172088423377711535406886851762668470348493433246805683844541496078735858978477972646917775752379279288619242273219148706842414333377987771799073695358280372767879329528617827228696834668719930646486308378725834233456085651233882487149382881343869052400242215503835519519403566443812995688867749183176392809101696762229472662463057229265450535586586432930777005921800623459110593356530721718909704804981087685374568139567956458606251089134715674890953234057277695160636190595924601660765141333222196056312000036071261231662686118624990714840225071184577316282711534363967515421735394153242514798162845484669824446500002324775943234679774557591678167802660024908084850849500382126096593948389336802684999185591731088291177812139143281613239164282229608493629240278915262349195793171502920400454181054100794065634784629045816241958184555352150687492443602962823687952981878579622057343018930812951385104657847737182320295013399321865199184618572531745120465461552468244428532552657914819878161405745933971354612239959759368220189669124721922576904763132759010077330129606808092463362029031980243482930080960806028855572660552976296786985436945373411365240855627572953332857471556280513718426338301703156686471489211992686554643448552058624421122770535186833211302196565375306892678064295689152606547677315145477529246876229837389731400690989171211299423470634992017618011076376423247332632678640274253920580388574634543298825617630042759407460764842121398348000771097753708703600387681996140089154984522148121472772652371564589750735313403441854960957454838188400201836768904743642649038623196416464174654669807536789234284844928105767776650792677604130228838804958652975137388647061120899276015446352566084454825254147646553349205425436286700326678215660204069103520532596561657781976515895108254739826571409997687175912015037526066236893402189391819091258770811130392252626555733251849154234515471810054567894145970324751556526468902635084711381132269417459165745358259197889365642930862581957214388342647586588433803587995296415290387536593957333535177958414073447722513660288923346395872422060967981269411400616621097533317581103610572912516972912038821762542972904286166536606195960160272089092445491723130122727765116494237646084784658355358294131345409317709786579291472114541844930955402904027241739803761974546246149562997097055486203119869990581308908930362835445227849219427048345778336665752626605818257194026655477929216631046134582444093426059943744661367272305914863312828335698937801198773961730897532707941385936569390184724209281968795764414972022027549391401698426348801893785868548469596954806873654265576520500693768486041184464891684296958225102992492077940634777537640202339547485600029871068885466685095544615836801379376517383269094032998056128562371317356325870630767367936449085741546467955657907425298306341264940546118046805893907666815251378930096114793051314280111383327827091636454460317899968000958832636674768638455578799959452476960992051608605612514621471701056059508616393328352668807209179259381560330370136760286138266597172862429235742794085359736044118437572578287506013707292693940016240172950392419176875233692957913202606797935933133541240420765052705422061994891700094397313177680296385250162767452882894813893416475677695900558034893231060917682893277341553558053230959712470641680901542580940905969418560536992632897213235094838664260482438450381012603595912397636701224572521197645570319387861780061669958787350534152167771750960130734673894775937359128053290060055105115178043235442196890933499550256064233901538511172634157509674042723740490117173923903599917730094841498358485595078348626487657049524153126162001711509730959769853080053287884003263147697608122715615204741012140230596501286642967663154699440190696956382931937629946797230505711098997874902461189538743143738597955793280363490580750541614627300861069380224415085152059226101113217943700504419845017856167933572210311403245540827735976014444281167300105590950253297911577906443313927258086679878418847797854535810330264684551511719783548934873659101950369650798458081037641462075753692808867986672045622754543534531605518951179320336009382990626589463968124081962901745748399866932696355199914101973310077954266676229292431395354903327905416651453499851655325707905501315098513301575914036371058607767611689498483788380548016171166754420542211198047592849491944683978243744262703792501721256169011476919247694715443131046699882713117185909934868906600077717132704630244260862710565711783821399083460746716621842969406079360041472073508251655882667231038484875058449805409516261715692443146236926692656345637391484143488809691215298916610923961187747557313522257132467085703793094586476925841698738508433081376297198292189575234997113808736038639004431447911783968238286575711755514796891267122975161871277082653146064611790695492597727956785350677531224240065071776829135529185551106646532658008025114294104965718013988509373742823149250210511608458765634363194438832878880014217876006302845029267395751830669201743251996901762576382870251517561546354972407109166248393139656025824121191707270419359122655630892941002640754722778228257631444593643986983187118132957594008771027857440607900997128758460087591759244018545127779548842600949873198954696051569883704250036244094650695116572033469596307092438191720392342672080438436671404636667392238000639723879640925472337041941932208183703764556090980067595232579956696652918745101507402856072089755725781001817835109720002834098304106645456438134085438474111678455953048523508931498695463649877182160589207540610891152441037227193542840882218043874067437385232639521897078383215161294766787674562995075370989504744086533274801290544510750303692268588484624500509763817636726555086807525119173543610330333799308433528383649371297502093276963611311370330728282798249949578332162393275046231126786898307732943823140171116532543302570448495146643497976206131484514822356610903024054957760781867708269433709762072493629963695568802960417536972874964791555807811945742520589270022558417086377139301632474499465425234229945718589622863849925910908065453439178872264234728131759778549643259711960815937157892847341927871218208113005368626183017462141087000363604313547033733562884689631961714930402887966544824522481253580493809132661714995047653916688298718641334637463400406029485088831886859032292346176757096763306068859266738433863614544581491367982359640686646801420494421182180112569613135150823550310537513665713463450801356556109182669645918613353945817193341260034171263660640100405676045529078228785817924156604172295118400027394478797716769120235074079332090503177012225771376918355840984826933143840538568538402591953815410861066782477032548001487622284116170710105675588213829608771265579473728272141353172742569971636644480068672970320856279185316882665731350934425612477028976963649540363156172570141482836785175412827626824803137677537762353841133398209008486058082138518659860665677126870284151196574596523289728442195295904685156077027537166053182572983014872574994068713308225179150626184431338146064475694245950604189895378792554409748081735781034185282497324625045976059342709932419041658802227050454900493582720072607328932864068976355352219328235701576205554730733941354950952850766794668765688956402603292112735135866372228985003468717516260103322591663570552937604886138244518919800283765846296903863320966925838475417623560996910506676150280258099533590019748306798973057451605081744259995707819723380836649942746080891697902161733913092885660666328273549586298815514864920623550959706705477426442027517331817011062301577297585838028166632994873024883009526380704958206732947151281194144557482639094818501858747399504219778008759735036620489161644365405385891915043906490722954079850453891767962869546516945823061371071007107958282233255406793244003390463048404561857381499833317848659419029456960722966965973675276661800120345698642655410257331735862095099941593125380682853110599366871796666066355796040686132098140145759121334601769818486170067840584012231608725384948671860516519216703833312649353909221173141319791424192085062195125195648823170476794829207905925067573494384710801586548169464073694708435200935054236342350363909196423452161340547762374858759832963499568028052541766994254616348966985258995399252389881862340311697023157333751919156499829526969794197175762818674511948839483952095331113973520411462548944228794363662156510707555930544060297600979330722677679000819392304806593981270291222828920659930448967318382101290596702911061036434900563676754515889842170438698815649791721632068352426175735134731709774029298408146192520117546118266267580322291994108277910658111211447249815071101035731475509838199039137823213527631583383263377241658298222208400871196797483165145464727668836817879013176119390646767190963256377385537764325137113591350278385924361974520277770602128563454359177071669766053595577044532686157646309104556534267874059954284246593161935059449138065469787159402981463815331486690364911561503567575623013401281359095797443393100091916937504353288960735843116941124088246403249052430242578529487381789075682266067292922160369237372171193600450871154430251415061471489327901744481873984916744545870903989197622681925650686302735749489020028686886637574676806124476823119045596041163974177990319495763974938183038892116018154255636108864476291094797223473171865492447238846069563148638963730414968590847413037293970331277827448260103337402651364100892816026365485893958845163318400133658455708888521260738608943341733153930630147475268267936976964882299467768391402083051206638338480479293765986777116738264181994947141364935477745484100304569625457816278728724050999497939194864971040560325317304509197863039930734674620943337909635781869781188770401375125779966631254797106191659555942650030203251958766587641526508192521172085862442175766967343393722903343563704711219221283155147303526616364933044394852243212630988238274818627161165221811799148050365766262430815156230787871617335685108368997925301804515335225339181279565907287804674350489889472408139886076987507334422044458346077095690090011120500427020122526347244169001642559438153035990501816531639224150808484268205405741501996745255978151107465830799451042431111169969742448467186762061320057601300866998140427141672528112449387583378625230642377893629402551890610427541144815570254365045665118287293378923711516102687468133634415932642106511132988992216327811745251331110711626722464462542735246092091724896313270984253457272199752924105428765623434681175747460446969703815176789837169825063688045242514142127219099302431492112040410651662108174153625932067723216187477304602439055281877586413675688644610481842663552277084644717737699372951494803246213867118878137169057711225920070693017977511706142188692724178970386669397780995486235611208266622696062542930657614832607450926619198470067117134759571678920222818760071211480337754990633269527726065165598016913114626901647823023053334489827473062879995575259993860460971142531064469184323350634057074312855736108915456836170403397377305099960853357617605904305641999739426617673838753728873341917602295463868394495564969277105611436263688356754759304423514666110053981060723159024862074040340050962635119532244611862953168804781594041953068504351647078602194629282391111038266338340710907529851971780469225534131638389702365392632073409936082662856700612991492383195242385787245961011577851432675118689394336270201513286285466885562913057940017772144842478855087247038588033972094449722559783125967873768318714726441003392575102665332474603889174307822787797631729808261011028962278389859851737461598271732284553182270356901907561682946301607366366349966583079266750971993660513512611588559538359776384789488370940920589475947126089094555112078589522533555093305669859215058792797597388386292213688986112007712803393466942608316795340821230416841450945880837727269770741978191496847800786217648842412518669289014412701934296746062893428684990741969711076335993319541635252327260389775127607647854112241462268839264742867625630416882540352409491951935421981184090057243620546094921269181889181967818066787971298136284776596293635764468276139857907795547025201871616019743465959581163592935430865853205488026313824844997039730234298395402329402510160940860715778771916746042683725418110668058216250425310036173637012089512969563592421737890025611932230067978626207859303763519463427976696525148641872402801560062064740503211293059214962894705995184501062964273103704077143081328706236378313321143177330417745087911584410529149617369218919716436382902814163903735841971312745880224283507175420160677908555319084593257480138329609938697364452067869405071298221235353814726656551033787586194692314385347397157393642447076223856459363164381433110798080220403850038705345470724283951616209209335757830659425958993608134708633567535919362072186558755942615325864503773485356240843970887457869697196806867094629505940679007642130555680358331441343490825577275899856804306019938379604864702397581720941793653457958146803284468405256203843717061268739820698406466654663237524706827675105882181414291173873324953687913536102104381190345266146947367553916798060383506803500583939513893760539699091237416756625944512376657019765713602255772330289684700291111954612108071180325454006181799631592747816209217594499038173614435955041922870558838997821860290517361013783278491871355052292241883597179267169643838318438169512764094223781610496242835457791810410007005801264712931033611276317283327776789252351342037363317703261443255636198855796664641639302491394453224664553819760443787791476439192012637375870845473909884008517403126911999606202603203774511731431051066227961961669288321428164461981098585198018692424140409448420186265158130218604627574107700208600786557605447675326074562138717891312252370227720248521842169601057142650230074940421196368431311897713327188574370157564099523680925299507217248405308965700303630744675649578532009245339554284857709473110697883653174046240499387982747963536249580823032710349483793588485711887557813903137986742868989384635061924939496180351577333200714424990807255840100301018206935380591148286192343849179793175396732365798042114592450580169744069104376251627128346866474616939173600028250817552552144233471022725827732891972720920498154600432438413959335289675888046814374146361571146260390975002354174017908090612028792263329610668566286672097074416843002018766887979543506597444980219969102199827695941074623471162456596201355239061308026736298799365241039268521881579001616338961830747338879196041125593216319827322349907623415165196812850472589924979769740544645898624857778910468465329915765057926122499473451672632087127784020474715319751495009311333700660385678650066977442721583306872274065868653739657469037415958485964781077432269232000191656960972543006184453057628060318669930655399962201919791284096401376742310637301803818880270814727870809806156032607753114348531373987564402526697874265021828637205565056328060272408708634798722497712875260383022110049576772955665230190814128279409904240356223261612238215504529320590624408746561306745580576114536849990604640099026149979797597293373580193821096171639939769514693107352491764580237139994399251957387010517879533038430811774301102894191958559912149146707371869521104261835089969256915784481092649409220153033238380311755577405542474262680446132747712864127833473578428670288318566680596130091305662042886343830801447013969213830663327005531843560652251238473899950623369537350571786483444335338586316352769485095717610284382956383174210278262368319683055979157735126344087264531315337238221422157380227666844041801460940171928894943705785735048299482379088664134807353729084177838441485888288271434112156983788629790184165243209353727009956975305444567674825488965995240353060459825395523771227621095574678610660767883614760045810489037834322374368907605636891940676470094478628254730506549369492544811851696635027986761871055136115231450589830345749202389809558212611481360207810114015564164800779663925793250723850104739009781410988904931191684108965013628697712042441113634686945663176414740384652047227138408601711859499874642264368943234931059105569445326080682292243648695699078599388850443702187090828976921294678076010766970661243862504525511987364110624795681453035062381184358558018077029339518064835919911087436317085621152579643917564362998488334160261506707281131629803676928381043935352791999636728595231236831475524662321268891865366426403064350606620432371291183404146577267336751626212897780806117163076023115774703790343843574056599494964919426400246143716272121898153432505418304371193955287541073071940368292375939976390256230953441458859163405104028049244075725745435427199452104280170261342213143868747179880609194379668937258160767827356630589846657626333375518924705074640939511979881921083976992073906122350227965465593197441492145863546579829783964419087839542486922536712467372719517820266190417452498269823362758269624880783587360380516392652901209997110356691182520488040542163802245684466215775747865631847296179884852033245840519858475146706108708771967360643318254024929378996714872303661022742964859549255691043534166994335181685164583014984145787943009281303273706073042208323322622178287111592951249147705718565512876208850545735048279619185599214454502119335786905941271404848352749694545043308184895767562042727864476337009316204257083374859913660950092711654878665136042573066862848516801056687003197450120957988889758212466979922194891577971456652265121104304054720457080938687363919641101760080562308283443040868184478609220820440964496906183543652413158916032275035027183594769278936834686740547580720494907582441346765907623725228978790023137904697164802798683414096450384502487612717649494785432463483077195217441121666003318874753846644465829833005507330372523598691818151431597799125303506589444816940872065718213453011833084497579072637355006673145584845757387979896130802350531095376036002486940119304555871680181458711040796870321432786126536592666712434944296108427884003254666166907878464172178835242103434302968116687332461944911217295802172279162452760517072319706917868504569393417357333917621550808982581183079765273820589443540422428978721100253850275488869990945801600864112898383003706851792912411036629385259452309513484364074550415327523786277364483275440898119714092394561267607624968974678792476978666094862479383746334062441552426380988313400519853960966570449017632059142851505189650485161551129611581146664870885811991391697684265722079998631058315747246060025158536281041858921771514526505332702193596869405706733084476068777307352032216814193978444049639631958440747741898630955651496046346917688593852982435887689883751772711554806568050064587678654831669835019340613857921994840175348271339664734959492729981780967897111435520844537963062459013228712197399999055067861639458973856485411173658022039381963411684869699174526760910746178948778068323229529248422048230651776321559312848285164608934698212924409074390998528292822391954430107532902093049916777540473080487715476634555509554003267769317798867571713765190337747908559574009189543869282211873365972495724798963183165262295373633500245399128978289759192286882103612630815004221866908464242305155221332214595429782304747032053677696496705438608952804595434754998572137385440771833418220825558429051783716179995032608878256661512282305856802370507312233363061364440567632354814347168587509237575113153459892727548727196685069218214153128939195430184159384308100675936412742930143559011542931278475054928890350789298847238088825122806993545138314713752176534416091522726663325288324030360979761432930334834519279791556629272636032194068806231570951199149585855322901245848621636557522040462287922797420876886346811873812150026350935446985199598601746137856985404811000020775687379261161674605949555509069512269147667437844181847413335959258122257507861055575762453708120996445585929437203364005170847727216740703694409951018465286042627592064740357350020580867346832250894713420931082190049531535207824933152004988733618234286882406037400125025145701899027860415092304360659249996362425015879056459818155356617869778241360091748580462669208469918234833130941951527619059144755801411878624475218089444870355158749338687179988366925071349405210453772039279404507363975462707097792257523044336839827637148686515985862565206637750434501326712951370414852774146645197761258915046368002346718498392576844625916591180930577074466061827416923239850564742662507562849619225201433520393299887790861452678115417363850042389001469288874842497678310512814114813161606454038350600611331486666151958866426794525508057253997143346533372846507807557085108635700487395743956664468519561107877779106929858282001677865493426360067866306985545838580637248505075217273019627745376430661398591296108514875788943743083523425118222901727596606628352818651004035418683952494848536354461044002915900295593770579825582755771622075248485704635258471584135350692123499635570973492545759277674756955878618273509450339216769171314256416939241822577190961446500708176480969459804124935062152828156078661546406090056880822148739544160968667644506036141507702069405606526610642635119553164204240236738419519572703270699068210725135713890516097442344219543322362707164632890309027754044982128925727057699198519721985066651865522732801410496241084189231871094657623529482148707997766580279632703391778307739274483673309906350517125052770990772044575443713120162601518715128209970908221496643727909967818147070367962728650980110226564829666176730585511556937120626419608867219516022613498155883641963700854350045037301236333163226899847675656310449795702787442418743665486448555904242880283310159187909631803202798915839006545317907586923146754352786754078600238897291846323167171013842528269940067197643432081019204086997803260884956349244614910705150069268513563348792984343996642798282177301965421403338655725931557242413507503213236572474474710351005916932088027120991223308849344678065387297349644632810601790842070097463131290502198039923073084211304204848355781875126908950512880798485050959350609948902432570519586220781398441659453563357451105413655333588822613913528795596538659713766079526070586388821311303863101240707707373102450960948455569443680182418789220838807064043668779180548569817659990339881420765310876455942741079807947269131004259935980056268239355390780309873171036334278056142282234872510888939969913123645286441831181633470099240131590629599471053735896010653255552868374822663095344847498339910178089925689009235804166367817092901822689772743768977460997653446167665578460975387268441745214184643076973791652446800442906456972521091525349142522113237225297261441722754140749401484837166154971267686542438040417363781401621281880283382602507737054999511625856683611954454336484371952626215656531578060900004539398628809424035364186908033446794049660880298496156361374525960510287217871687339121474809281477124384469112566644228040865621784457810721907541450428196882039557827520959071530065206434853325550897363134900528892361642447918791662887734084372527406925778248011750284074768996853947360442655716715889149117478705409629434819692184715180490508401035297423791565811527979389006815652214764048251210857432683026597806475024002754959673002185709397825290729948864004956151496943554478018045361788156264541333062840139524214574477078845911351056980613352637840127047197351956427426986495885275177435394003478009424181830139174299056746128995896391440376828333964004280504616178963362548822888353752602711729453139077238482182103778606153779111991648956788111594478401449956196255095643182162413418757055179407995299160797316738363359932306818258813212377282847782423600259791504048158647966374512552506902409414960454873289450626180146280486624047839436541952051290501032688911699227648349857309736166242193843700814120439631779887847001179289543080252330748636629099607094135371831042596031377234436532405492476307302649284153528334172064005161054161189913474124243447453694268928844908882796955668787261585519152701019178432601466601947785825591094504371199241876316944322078827800874337155400922732676091403302199949741574745563795321794168600655981838728479561722240186472431676649532861699600110721593818367883119280182921441574245396663989518958696413587607884307105893107216305588724549999179122233771934329571135744005435783981660008992857201310003586041074027249161677825620525727104911372896644915222059925899539990493209756117830157596433267112971129554966214475083015470970380034007991367250813556941458625903039306050652106927267035448540618161160240253699772823269532629080168518604987407940738007546476000236217711933819963465452201373022890475563195962268309844709774581476274744793596757749796528997507006480342256416139692290510098711252011041615351685621040430293811720061390523158503668021679928324567249743963975017046027293908032092255125726924070729618691971449363568233412328529333445909164413267363390808744909652245645453767078920470774481011366254361062936006388407013870929269629819930963299509412178786929816991456930672356081729240101822028996411004182524028340583146401018565874261912692140786854394418774767776541543588518259947182164131143176867785568070049142024137761762919397440174412439645829633031523566144657132063058129976685210171955714158525393014471626103947992213507107556028168961846052959347916932965128357169101865553987196911247837772347101949319742220401774939838480633197017023667298249863515375960575452527279279311106892050022895306735694257029234548458477950799638621748463452436152627728106969202430473519667678040771876533452349104475769107076721806442797392821589171254702080486312885630535358693181299980938005995098459935691058830734329187251495798445747102793724571522934958951141524147855975677258143093347303187062849741581403173899612450927712357932365068725996904653942508226100257276085935304221186616837521871928474388463092029712043902791838471132725831621210736963449786043219345335840286588724206677846440800881585706876142854967751111412092865670811397405537070033262410279116242017945652927419593713176307535491040880938474686649384255907934358264399643926629955488618410010618818614873577478389695803059914445927723657247408408877477182947791649172140293672266645298287323594550756846909178243006792825548931059711071067557687865430799141951182410950621774329589070692559894416281941805719891117682107467071998399296477743589733141285396551964630475168724997778804778203687250885960344731259172676542088938844360720989598786660626777633359052825964888156069069649886357795615006501460478742438621241256824596968735156830492599593753530437603630704755583381117705467353975728619055553724649631099521742280650808524039540869815865800571153557397791088745709470434658535740584842683875505963166518023198421928845388447400580347512180887244690713155845548134248368796736692043280709242156057616905795239727045417941744914009728236474965977886649950488983547411866994605985407760753190514639043037319059335992360230415659073392505678135023340225726881833102069319977418582026378313773908058186567070148263360678357321404241762120305746904838893002184604588476856432037262054574708259507528194947945080979426865782619964916992528205033921170792314914653513256328484450162797340781177302395889451503333195261493040989404567946234188405999226967400684445636159283378470482611559940536838699912776881769369696597548728327663999689458834949671666294301502731678411474387100114243499773442391878372955548447239849669982130785784487662098082540345412448441363445569071770956592465343136673647353258876988122556920805838982915602732142692147723445492453000379418631152940338404082090693238354417817243335072136626481848002166397278431558436539877155539061401685186104524150206930132660830251120454746436739545344493488963950786312676016510724032930533269231650818023780867597894681944751435328915762162794158442124174524621108224674947375632531122993652365192133763379676353032334280732182287471331022554496800680595249676674659232060403676808331476337125970103362485801928905722934041775674346698493642891517603496343429049606916915960933532168549291410793022979762886953682022626544312027133101892022347943939577199939973441139407553153902666972009457808246350118520851786984869791256037851681635547122234278472874948646042514862780809283121613221300860521680276250722368769770154352903378092037104898873493353676192429346204262048827086679493191572264401002401566977915565964267590936152639470800978190403638080162191303502741945066878622268491225548018835599916992740678105170531709689792221874149435311254281165081243775095161498620415698838806350700843405475122966383107156438092289913812421228022828522414623721148683866115927857374703073210018779760803068079318575070126834714761605174776733574286624527545225942698252475770552895694039781510332229564618876941289962811872874153438269256389424934742896734193436940693709092994781586612184186081315504563775815247103492536439665890801941432122952991305357218347070965793153492518081570533846827929197115654958074455232408357883203037718831917299357079172746660434007413178715769662621824749318521022107910915962428779651845647524668364848625444111793450154302320394217256523388490426197235693571494067664829797529055168434907938947814345581616920214315988267932527630976422604463268089416089985848735130821816324154461041779906324275682096343255474838905233373731716447645674357119952900837878196370766710646802889849106932122744614272030436418112227148483071890088498401086225782969183349488118998481576901803043208278056893087865339257232781204291840524724545033172467693673018586159733362884057366063590773626316846585091136622958552390002858970237729112628000293592683827170887346865243080582030316753686257309062042142792486549782455003885990378885723879625199336161325020174236606119004073675785601587636653691063250172253214637526109159333404137585732945405596520310527931926991420426987716271545809512039132662183080701101683320458205798246938785389598880760862497025555700238733430988708850471560847706302542683132322891475271245940862633416127705184382294419010349293358015999862430542507527582496791067541001041070440193861815650138184074374506344909831542010361822605547633298252301570014984613610378758865593424552795817739877746956921809478035660558477212223092013916312508819621098081763536073576216802888206466838806221618808749083454699572077875841509907538884004487730076716175321681462008287790897972185651921930247718444176647987715256227713948639347547565272648755839421752564517462339490824248073431607883645473597667362813670898964243619504294747440741234840723894418936754622604857899755989375559765481318829780566392546978077054888917364942988460719060040223809031579019839933180454501808210534323646381313344929227914736710202451525709643693665037222061304614074677720692240732517691849309232441766803835148583139081431049319053879245683173309444868218625366506248065698266314707256924305551193346362271455844022163689515441043279726081703412114609778785285628831537861441673283495113896465989504783823741715268079755215496964764550349274239304557709629944426824777066558462737631969031761780674107506874271932940328039212208002055779942278205361916523784298888581108870969139038778709893674462258134397947788225877671030884342895451678353014396577771108805852121998335725613293733241631538889821169165571051009003327037654824404075036928757133732397877464610847557865807258206645834391295688261330557874264971756028414424668195773401645738868732314880751622835687351590874695188719407020262072802766742734550947451495385407121629584509583899994147564296287543216439130969660408604523373797000910450758208583645370141422359582610872211094912264333003204216215859641542448654265448206864726778124910622420833347824556921338505677093339841942223102139995491050583275155296319305673685494107103879678495537134071635524574475801288905044297997540446014278656789550267239680804671484954500785118354153482884895862811826621448378604855962936243543021350074903655464936457908178330922692442542803296708024198693267094917865550242420808841467281773541947029418565239321506621539771369483420552621795251888697423289092519066456842018793643653746756509880308961611423865157600903179328257259670980556223918417453215013545587970073256807972131746551237660095534020887763550226755359214534341678695773702181004820822780239013003411323486494520539311067606208445682883458257960805316061681738958290872334214353673933275510640484386638878996946147381710353878118807590033512197354788896311347877067292348442268489664810303019715662676079401597777677524992668375462261344010295113345192539842219520742141052714299477672197759314152016492126274435697699138884508661478574959034556732753618168126448306309389169249207559022486109857377701625727499008350165683704269119373618618624999108005314081027472124313873433543229307825829693421270095917770265603294846243261453064897601992750395618076360335188168668202156062849067153067778998972808738926847665960981823733326795429038880808553525554298143746014225865878286261430787182391790052495056884245815901024562364487838391470681806229964812152934184833039707738796385703198398643666093317048402115921081666347260675262506471066559975192822423764750445265276392429248546675218994258259638433882713013967345462334870041273883351920024416290029164061023419725854028610570664323113322109439871370249933654375920579303489608748935482226357557833031125374417283707825796035343834040380649431004192253509260826406660360751172021911914848053518838398431272858632590766488134753149683026959781804105663125068303555363070717131686229485452819814441739985071646274211350205058369251339014000924519809801153750280766024934931839484250238167704506867658194865512854895074851864324417847408726902410269717912744192642096328930824053705994110101890668902931072294979451652860723788357360681584829348188338944546524016477849574596476822717313308851243384402939248711620412205681259362303128393720826135721416278878195791266272091188786089439723549926254323559961056504661538345613456875632333877959379694978384558883392341878958783811854447295159034633105379539737446909557956206869396542699382905725787558059013247267774788518954695066619576461080758029932593636231120942685332918213384990961741989584702151580010561667595016407785999186737530039502823491178183756988371638202337672573808017049669533902563110430892588584999886341210993301721009931682641040623294626291163062378278719752584278777615335384191038389377726197165283445240746787043708357304442129616264049311704875594954872112649886550843869865558323568411270514240636394603788222238732007365614958266045963371319908122987302888530846577818243881813901203431807886210673685222764092118885828805076640474892116319102176466984370583712850246948207579939224379979375415678298911912497123532710917475107712672876973588804291133107351421326928705530884143241175200392935792023382231375135575294992057572032374722264771231528340196247805023146774240768304684146338428110309898711202710020693653371530906022699787876532736843955706665833034318062877425982263636835053485870936400123181487249161060326707646949565659705647140358578711351116498611647443030965568965067189568487187648137999873472459077043467475586544387449582649112849188205724264279459332738914893019941492168799557606048713280097064174927417297949608692332139939927143904143480967854610527801164898938136441373239779292678897074927305072337957897448891154470698327447574040902445102071331239954648425290048459607356768189015022390211262678167250428273789367057059000768501026604899147584913316585944112400640210531447382345754729194117777458084656926720143751457516640156516729347576951230571712495094633787946844644626676119380137044730826049126595164452230955888346647825238957847534406525525334219312789264284588634754849314525482735175201329106387152728937527184145527834847135394914721528035709407973343051353580114307718115683019168370780172064512703176003249452574953133511076574739978412861404215729205927796598623549273388733267960727174427025170516782029228323592559649306199253162811481239301505991276145128083834558045615772691273544484055036573292519617938462426876812069097558084428507163379438031614198584981971899619359583946058802730621086983773649617407420556286273533838993069668373693902722803492491994283217900824437077680532439701246672190836142026199690701132357058923191959731679310784401971886865921642402892292190308545664932615693439455322207150777845200584682887135059921601157730089026959551265839934096185931947688042340528263293743267894793149630238087621320014072714203381041874053197096519175529083778027643967755803068174708770640664243110111010399351079236460965500469195564332544580058198037906323189541053861184366553485767423652362814524734760167486756904312610689067484913863050529000471657581394161748163781016537194423020084312496081829821085195299860714568095769258804460922975910120242854323657016439434249630260906969603708978836396075515585861554450747899986893724401005532177493762887536221913401759236337067374659891609701196512075146508856063743185068881938071727021849252472272455621931585259923904373921412420419999778300314185161292065642374835912037177501747287823215574978689147602568106271196413371929885797936917829244245675629876989373001777411988355145970081536500256899634429829098339010809271198235725365548601219327519814296384486576531280030410164272800713884376320948362862609245438641969637089106477282310173365522168054462267444211997758527500403532174375466820716209998402037114438981804031118334860282374125856910204745148204654620465547529822898314723956055865011523295051960907931803020043822622757341605035992959213930143946790518018312255780470060819858642949589279156523517498391342840702721247476760376616213484204779034684781947651483513305335306376234053468974570629359451581924813355263876561155962351670471823174839550769824896936581449967195288907077086304236157080789017948608548456045253044621701366024128853825778219876975306215555938009341738895841312972047898502018978330401473415729729598528705821922764298502611929886750877200587053416563145353334520356270657204487946101818131305840418958368964093079780583294600717394271285573341749317445815521036547451511350482303936559737067508467129283763233788658963441785132455455399285328324965443911875500385581742634337848007190204081005615102967432487959053377311985308069912483207524208246821904275022656680322003852376470649891675351432046673449124188789921413070751116974996395535602996092660690871741292158419220445906338664355077476122045949650687092621225258107869419687801513513850947977611477240024552760578376259932705560557450626369588997555909105699242968214620542046278044677566151060264677580145413600329002488581045142038401124501722711688334933570351817537869800709347999706929397547316747810127644210496695923455469768838229947121608367889133218056204133400451165230278262935569234237035967142397440907749283508113082437466680227917441845961391532197814155723997946208711656084028541176561514924393999167526330887660359059773663257944919284081922735500503106414862179826464802060441410935529104233788089591742174371850905080706459990233903602681175802279325292746938281337911970884357775558073535084221603657713315402143463881905169358579791874984736851869714807593233351915825714064415734791591449164063472140414466533700525143158912330189080332660196344282081795258600159294995396560017301809373177138712933848658557911581367297458898693030192548565748420111148363323321864942156663331350635502426321226593330269353897458567090474720615491625663861996216634948299961184271819844190993585366998693354586920905655561988415111678001314588707656514693311705472165963534597500464356280379810728646203538830546511374901428592229429441546084430877318320088971279533438270576531035901269172725110853298251935150678240972005683510667681281447884838874574095527461422485511773774094387467769242291281760785918217144195628577460879329454814728559126239324742396817572530219047352269218990176938849823531199642206648667834479052206289105434877019133819456932427562844962206666174580993298172140704982732517267781116593561279109591247510583621522128340562931736086650917469547053645350573544451188733507668388510811894110330409364452733959511250290630821003853898733015785233483019577104420147375802497341126719494201231655400247750239893854549310044751568212577923237425739294443612086071308503530244702590022345526981420573795432377773911961816040055453503200999832335829764564710380539802338375532166390097110327175828933435438245636998410893108015182161132591213887876222141103700786811250395357562147313914485453696984035803744788173972705245206260943745547657541724706736791665608094006715362757081852293581222177623938248576106571718492596910531774840467477303507714093872644721644177772911340920364895244180438913188800349585232571133895737481234205080997680851143275302590530811302937418651207757188772986081518516837574384073149211271452158047202860305552094771551251882960349199128480498011599507576300254628476849762226474903490215437217433987577881730979025395081164887535093744025195249379160617925615847512517013732354409122792665731000452285657361794212667882554001644902158409393272427790802387893938486071652086412210169449942635078972148919903676737534777794498964555997026169140368766839359811838285407508796472877253836120473009648474428410206447192750451532700338826713717036360926068667642875499276867521843330377204602050471756145635996879380062260906309979783533256524045999593608011568586474204747462255966280149585816563378710460387619094480581887971050762543939359556651686216090815663780835209703534566297647170990112231133994212469429270831379637177420061741032817800932464320448675702611855337617815144432023824890804247744170826442201406361921976912345618435363685020042923037272416887953897629290494907227076827456366886656510633148031560237092048990770135759250337524136038223352268793069835206109200581501612253954621261030600800068533018845474247170059002778388584872645863288608772980933622946286479793219101117390377537656604628955294951615891705917113113229116142982309817518935855968689532886052056565640186351617942136184916034674561128731131738103557948272887368686737378278774137252702213878458583556529977446788083217826086837838845940138110750806608612413770504715890936297979431182289626455394538213628759744079980028446902079309408690789342372467041260972508983316374508997758353564104441635024224903604000801316232253929795774722150768567258931792092749431575923991219068855525557285646091779136172352562135258261226247889110207856549666257529969899347074324043763342317202511625330454649454310369671572635143546659042633541926495712887345869141822639915834027789418953241905146752799824854766004154555178005760059309774363834974219872287486555690148419574568751438832003357095397078308519747270275568714661514877344940896501073377467285625406315349305059193390502395671794759409050394154965585856728443298032524536635115349117310214028147272101971172860598717217327984168941561703475702019452523822815526522372254385566569496525398903735080302485527557295805648984066634921980623249275627794302609166657911083691723746559931033856577890950046417453284334728597180662846220353694613702712420060298497154993755095176837118417983996916818545850422437763849430014689614593918698178529646992433087393037505367664344222600145256312965898966716347307818293780025741795361887373049527013247036677660046741689897839679948767314248936057428531711156863855461555421503746126540218887951463467794562834502982305383441032276030389156015206636678994954294018041877152175435939017425191375130408499451310430206811195886780468585529940991277068102985436114783840153569846864717950790017516588445875618515434445368722129516637195172081982820384664432809708125387164944824436618300978595873075586552283878112050193543773748982375962087425894898135635847716440863324664183569999341886366788681241451647117592291028012730189021931975641056336876959637317574352662638557323393723843225106363392524246246150955954604422242219434434299730735367585005916620453558890954082163244344515257866550570286438417988793030843851288776272843869322445227641109567751869275152504927116894082086209736904891753320267255110387440882428709842784330355040201754778259999730538031483981596675436744789540203011698178574767832325661608608168109701732747353030165916249675726532661867208990371095101315416584549910411257520978941031511122539164085378172774112151768271313912990189775236194020742839473359730198900412636659154819903772329584955821590651832241886331099824972213780111029460586787244983579265174495680004055475030347896101639085799135917514801677995738759291758345154123934937903610658701089073982696801942671306990731193350550740429471379303695333274236738840234738477815523264055955401863696482559187966857720757684617558302704337049118836580301483206409053239209580853266807970246688547463810403889870206879704427843291483144031921099443027613092760792619992754907557539399027853018273246165314779365618626668578501128559829576566580230785467813278299754784393978809268841973237112980667283311144197579995106763602016230297497272371213965205257999654274962998858373322876219364857524507722502526921851053389879808811774344057129795793085997877908934443091673870052056084096199999609375371625151842649945591178505074988257450824869679968848327967793554386388067522102769194328726128226874623879465832082987228556105307004996627419627642400879388510280439159699803890749853701891929010367472062557351098215874881742588427926285107153124816253793566781675645888385600012510894643801617893985501869917918940701239123451359708639312421383690125286424402828619850938936754762423080887644290416948678956765403514406560443172217344515901098144269331099307844860719364733718814838764706761801434126581617739529269711119014237163155549581164951243519476481726287961327151944073217477532339546227937763655891738630197500897658548173487657318017265115486230087516529544287935610384484859731349219717699821198868631529263003995153094604790814743663931847919097771506151893044857635549469779798389650879255484539554161837253188284695029599792853137867878181478683640461890894174210779381226977527188211384112622958891082866022553839086014290575727511927946943678447117385372319444305600227824330182603358974329993001911102883698617282997556375858361251071105312205912131288523624846502003668764758113612816056137760737690916963366425771195921423462480247971034037671548598890277748409308703581426606808334206089167328509809166398628828931597970237639223836881231642250719223756083959886832333483583007446105926422959271935252717152751701847243095932508782061183796004487426221102978337927378803676397217590631548260486637216513361375926838325788322110179030358809910732835630079268707709656547265411438275634679203006069757514658651037636358252884293303684388619908755463044783641856299130985105736190989173246115859784289638759539315868576261831130336237047271761426341678579277122144134465956658582714825300530287845530164828330058872360476315419814870262497688735438933499278663005764142412476612041011133435944524705643667833833533453968126641441173824486383764194714547422795268042341678572372205657469357312998300156740154119747132869602165573827551927730016412297925805313308034979778414095841677021735184729596120499542885023152937012130507395541779048775965865338467661917831142084463209463228223355476786006616216872609695723373819385150775778279019459569476334417027979251333416953178030551341913546899225264112004450438623606324175509030860076915256083510304767359239887484157657876758934643802447414312928764419144624302674846857229381632523387880857137703980677239688641544507647184230542663955596252933294093915499409672981083805987431499647835848236479936282751542271865499055818568504538433760266155505592845698762675444859325164015231503712333920894345390523412934792649536647562756580136049988493604532755390865437570667317233646691738925978976057001760737881237300029261395541740362020369053155471776006640852695900211058471311995934253786885552417250696778735658119246094300142702658073935812638501356151027284758791482857071506818028157421135285821150296453578304973365817619303991183187727071870125867825312799586476446673574107210455313012518654208449480150811541433607312960755092669332124399996317569917422770025872966744301727639784239920788656732546267044045200541124345300011290636614995780888911928226947348862743306363909404990513713669468090001579458303730731587978435392461228470067660755147636921169479915952347304741627876408127020238630634413730540099802354442605220988073469003814820970786101799673482240461892904301441854694551506990506740054753270641077671537737182952279062241141753446613373399636432228820840365467769990084366916951761045365380798478163555733634490970534434962080965328968217731728577983338381742235149150278088196918280953319633981050928647053387065967838554574703217044776584734955976526851530556017177980659070043513330690889853853520253309893157946519407836862731608705323679646808030022310017169709945702612171036862062585115230077157397911449121770678347228449359274057223435596776275606253135995793276228489107782484926641128688442473380863256236347314870396024351833575343836647814438395807819523647736268891417158355223251270457276790287105966779827009817295884891680077693155273538124672627384914736296018858463304663535866350641671516343992219798131119394100134822172601191784581734836540920263688127487124258204768923295300418830420293090342586574281699366885580834077544216773206140795774884947190163112858679161152686717411810229291750696250748917497475172975083645073353177640523807179692330184909802362270180483331695264912869887765182822411167840265615562594407231440451853994463051794660177182757145794726037858994056930055863600024634207989158106604748082724849137052553501329064009692984107857330421711631333710833789303710608872715468096045567617813473445283279378113289967011146039784975706762851520220002232196389608311569078367922533823421395649425269540521001862244042067879070106483755736771654899087742574793567588074489980295747100045006959719075345698123560514067465809513968993333402053004622318470781648282130509028235647533098678872997711509798826305872670824023151960471131429954664355863154269150567545627583256563266929724423454636640173158969937268913849243109815150893424234567551113259535111326480230875868807423253806100028500301526899152590091421775172206064372184213498099999623885207847613858499059221917493553287287386365779349709903213304622035432969635973293599229536244492472122038034864804845753148578348715738131117240076937053740731409259557726053337653882607145246395605960210295307837308999604599541186002086705840557760771018540331661670984129861114876031717245861303492692609039116465351315560083076995785289834790617403598933091109856452021247006610715751700887908252017105037748258808150839232317991552871609070376659194767551419809847019361075648865576863884294910745375514940696877934681042917216670286897503466834482004290001742168710072206726681798525250240940076171553332463988111772326116034369135735948401151707983547325834711337067873266262812427605799686214338053635629945135507875472596834057127684592169118011982878668426881297525139689920631588652472390283567603765140695776476975642382597929838846520042600190423302285403541405854546283338066339396673874918651104223735216471682275100175302093545688381771432498898743781717891074503563239295238607065537887564116922018600675292921443542663120403086942092533809922665060802775683898422156381868431066686313706669287339161307038080973448338275257131015508066755853165554023782031485668058151498598565418390507502983431324930240769572680110505964110297197928438382807828471162113271337831498414391547003550128086973231067997450855027373694042606711718984589756965141491249828408196754101688686854078274723795764822800305068225484176154053176442809618479372469107777028433386646405221108381146391660026907014020337436055126507379677114676501473506793277615030474504908918962230686595871035853047410724020021894199728060298715186010502375183389467144501209463525999709176767299911556331649888169600795488449987241202651236841961529006917026267819272772951061281698292625379363990219986520803352544371357596892473714585343209051359484792660638745853285952748800021331819934826809883134138141309946012913411285313069982252634921994251890892533952038167476513647414146131592557006853261912359933343364149995535584126763303253398009238267988504239036118550829078550229047937280211420939923359329161226541118135362481108722369091073701480044718757422089450380467277739363374101747532280566653734638886328151490966794760173862965440113389790342715958750686090345955076398417475122874512128207107008058437345808450903814517327432956376312315139472772646070130745828460554077303502911652530337548763249852968471631823232593682479932626614540659896203449255331594080953733038421295483371947730310321954604322154537732405687381718062398613429165268144833035021106104980169920950908307821977237830080650592655594924383066707505616902396933964250029140531793961051406076308062133374932479157741234693237924220432866985321474697896141440417292306207342924075761339342514373231950564449257851179272324584984278629761899654213278345114619538066329908190395503823960278406335137250902697116879425211871940546346488194854624294297837546828724303157081325267863301334685851686182632765643926595553417159451951458147894457223413294497995469091767702055976530132807671329455454806816799691192280017562009365678216006872836842152096037409585736175312233571464217396721914261142496473239249028429275001979304956859937465726925439822825593013687768056212804073792775110522892899569472195637340479286777697375117508975796490475428321476183232948465455704104139076082702947293388525286672073522758868258022668858526684404089000839954530144694146521513553954135855999552134314309709785201082332609402086086479148796451971119854917256011799730908203693244392455671712889454455616322600698766967080832906200389516712478189070111713433975348093936238571853360331271470062602129145463473180342742167062851464236631552458717318900107250913457506737342531308556163504764900212185329287416159421971151702052917977806762288483909357067634608724967842642697592333704215187918281226629637901467801082238476741472200719062321405641078941396492764357670490382591586465120197042262450699431439715259435647124994836072852406007817825882696148822900489094575511035257460451745213797267510686404548046598798270025455624709973041948524481979437299580457310611591943650601418720018765229898162552957838292744226362645125938793044598170539681661699411523816376251208528876360036754657000884393264678289369777197626057829652958652593628158444472318448913443145189169015066685008862937783698259738947494088818857356219254482745218545280961081498205582031465847689048124544692893801592865939993799112999884575814362347000495795058669640058462992636420548858828635045712330676323976687227180349236734764014796025255163412981012267501887103473084875440043467630542994623809425920702503537230815187177127787950380587377970355139700277020699463008138680812211812297791242823376910227129538190219547747556144994688832934882837648068464635301836699918887826064428237690150203567077950973670075269248694050341145321799162702337236507293340862752983513791354670713481584029099934538883201582593443224307918927445955912632535171497289704471564256496799651523259904922848575954847237199276307046376227480388646577383743599043043571902107354090539642046082509770039954477109709314545764771405621854993599891294715887592002796613363873784224653399511887064249447823634690364142144359582477234965241653403796083590017264430349545904770962562392691312753567036064956838787594123474853558372481549933161767215549599264034255492866038589167117591195010024568315665107735991540847760977757212820659650168557531868359749140922714242169768062301705468909078714211557945192512545035932197440843686024927593219036908278480020557750342757545595675513311107575325951754631980001731610684158282090508213749192442211322226738685335518324555807911001981335290300151819105341601719048055095376582473880128765097168306916458898707831814789491868923965073189782736472815122326189991050436204061213679215326048621489822861711362256527164865869985710735631848159440264667969300537535169896536488665042211162354249715616368022212231076433760065301803257621425956675103557296913250415792301181537314652624408027157933022905380620813164595493176391110283988690919779039869828706832694441622330379194073473646116155017710950119022204261867041757820830884134544624540321601947781797401917946808687694943758518437937543929253192229963137444900966980323041223487978850945156676117791339925536925591962977223304796122874229893362783597692764828925315997915674349205993360665149475334218236090161933038861752976756705425773788635566294529045250482395531188453915012456301337117916450900829211786120313465404012482688142885706674423255988333417600048198553493999027643640036702432148753946802128737172147485572283097193507415800376150568768546897974170173068439093311234669534166388047660662126566639621720853278582352763957734554946586900276409028596397279456494537459899558105039757890403573859892409003366938341570850225882158750404211625655204680968367956727174750101667031007204524252233683904017401710690322673462509610944931034682024802232312040873047672439833416011186102458937848780695202749412747636512913346663299543746858799790783446881333099763192512819635322585252136336161956641566344482358903824705354200743357373262557334754903523491863756339858174625447312357120441425678769704477415191563422507210890262390515413529458615687975403965027483531835393921781534793956580846329527245042880846125885797060389136267632969523076691874207415116319110993307586201098945625302822466328914421658892797363805613957359132735139998169141753503848807292373710735061402601488773681275841200837774855911232103156122648083022872576415588269171828466867757471289883825931167436936323993140624947257409704531991152007393395606392688844772640189792747133772964337776629658020269881906361377715858048976346946957959888904784132210824761473743297287741915619804413750377554092185295082472814350405655104964100567764434565196420501215449758469860708425472024514820415067523370509668835389331301153022365483746278224111692926335433644142015413066367707983059914079063935341580539499448912145969266004639217216336471867199349079384676835938739219061930221154061673115037411247125032862142428181498462318026500305386916168203017525017481053950671309733776864815996686103405259489371420409767648760824123116931486409150608800125834668264032761024487500262040067653650942088760061188688373679764580136141439114187744546862908527016807713664222061070926739839736473903065031707767880179985678153368305558488659124686818636936358220123362126543500797706878537910186167637336903269303525478741584448946655103447990350703862730270911072912049812380324873597304305196434947750113157369596641324871612003020186561778132415625939295042381011727646281986470823834928665769592590955188314287222877019766810059473984356018226650899248718641310317562821185094242114321716613153267164340914918438219076436037855921677901951059428408914736006369903930473231434112818096009376266090446100597592478521051515414083663908293892305976191062329327103782096105492370272723620717289498388975653271457573457495331113186960669223542401074690242312624244803668524825093509003861040728585613284918113372123486546238924510941220586479020632476222000496566041966097718786563297635133265811778482820277862631565300752206054540961624687438414266697174808819194033302493689694601869245723308826863873887701913512176588568971105611422277342770869361223148271445969505720236943595412234988162944193324789285927227518172204827200484080692381208416739948920032084901306566135206901245374241202011256375957328850951263985646891395910893633981432140621559010189738993333239028437082985757022046807469343314676978232162185132685704313721900943266410905809513319887646346248577488151523825179774870762339580088438073679032866034382451426425897121117293350496945631237967301366284181405386035429512178228728677820162604339480662746920684141295786481118496452460921943875724548831157886312480309134327328506993461385648626690439004697836413010394613991434852280533909002422558101501869662869317501992542271843647566109111153687570896427600735384664550580417870644480806017540862440986496023554932947323775685545110575847996706939972196752330193655519347405495839449652937181841836413954474873471154760229331677827431715130676326175212859971536578641149607512264849574883723252879697816274533073765438703089223033780344461219671172565171647305094232420036521275914266583180801163579770678836777300943406434451060891377946776753978231370123893140061222620901381061471434634492219798735589608336466560867862373079138232833095972432068892188206679526369847768905344573470026175214900395155962590870975514777262566732280167894323041414313827727634484477820697710557923197676162535107521132465536964726131209462002995483674964151888014267597884571913959458916977107080683327159264807942840323267988725122344172048832200879881990458075224945369351090470797201325001017989234353178533330549181289693117522231932380546110609431117037577865266668390210924963975421433948291599018712983258411569542409336960752069887119299241036645746517402997564401772185579123587506215456956979756125781443921378844487811113233356804986118154083387072301445915877189577791777831710096697634510027771697502852914892686692387688197938213354952863431941941341177613883559832743754664262375577581437493048330224523993918981230665403696578803508417294577470728181899024636388416468123189718055419963135300218561509873392356322437737033883357803755108055802765070964808370173627574734504582587896483133616948783313934626525537918576815843698539488798657313587588627652771490968779821359868130411612119766637557459752642307223277220881808966369102266850929940271084770730859526246149238144030472856370269085358860396087654448763615028952133515297754792141208319826819332137531620383308230536526614366663742946224966047355903080723468212351451433529379251856921796748577186823547590834475642035894379643729510528059622235256696927406048152726341246290452733351758830788591293228553938980242926801933068994681509366838635586486030890578969578776457321282049792687434139250324701232030829129083042180050601527439612594276939420596816872178759688651703595281457766594223562889318717425699357895477952634603753658943321730960317320755134231944773682640242641087750350821519810562459393926566586417182120853888575068750657430483962801352573608423618654535999408219438118351467992751910017329179372826330511132874908429134850845348928016872597449967965284877606639813926958255900580619613091432108599293063632801755224253959508447811826171294239333170247480451279023162549580763035602818405652354840467621461510787818394044463144763720552568076155236924218179594789229991003005395100417521499056432104617178064533847505426573515446560124969017516064656094236384609032859175284475705540368495211366111121052480605751508118819976469248766589897240947899264791647950939068927970457752353354624724436856608710558469789882087712520409360061225102109182292666822507400974061721580485466478734744602684698990017494345755073680674753362955560658962954915997358213756273228519150520320795753160612496282295675230314940338443097866621544069307036891497591003449874150632061830872980077433382898765296638813478538678588218672271077595076623635161723510655181017228009363238508428999368643577079031977675575712956333258884923879721204420768049081065801860742627548281139779191655490324288853616262729555453521492314570578439274955845965808781652417438015094273808499714607495328587397176172229488188117022714523896150126558011181544663564696444227557692181961719439529738370581464484763429921151963043787962167496681980052925625695159420722695396546301603572197851883284132308969609941316227392260410135980466543266883652133394387686760773418841896027458103311001604599990698413692091708465546224545073031483027326770543879600544229567407088197504487357463387772627070249394418408054801443067720746516472043044189174362661780990394648501093479366548805179971580672745410488774777650065555804501320351279435119292554249706367736074028485756973833482724271531000955483967637040421129403467034127206057194766175108267698121963908873060397833869240136793591093036698506043332559893680713760536544964672695078175685534773077516244480418850025239057807215991614465553500163665310353268821016276231443888711955640842452215538657381212785237027685413965490657819410722545614581162397865024547720154163114315609325336796516244307418487987413492392776207307471552509112959181803950841080319505053244777292481494021527520819153195809826400648306576554819827484368116595846527732102769037395872035219629175616282859256672168391042448435961229845593637038040147878292079822330960701178517157958311298535956805811755402106848413546575272130544822635241806940233207471305549439262554656045284457250985218043386659036224100952926996752711248335617413232391894338233463800400361558792953737951402012236689162708423814461721388073281960283102861762899718795488463337964119901296089337313683766945905203140604092066382355052148003129047500833570487121963192569691090263938191981936493772538724919921215450845095271104225426218397505199722676747523786993040080726432802619060650949455122548615846117944955636822221508241958561319785770938118203328131708549547411963908460959828442793663312577436907079190489191336830451671350878858818447092597173426593377962444455336303874602805316573974144706839306190082216454051852083097073776069361204859614834915981494076968089636271368520483991800454829209378116507884649311072809302630224727325606192774547997110943337528893372469858354786357127589876967554581304729556316048419536342534142957700369011538109728938936129505057734634247774747402534382721159198164736088576990439752281444311492749596295458389299336357102369100781342475639105322881870365081225924343994863431128437318207974200371296966043267274724144192655105589423582959194323503247876940551790676044894443968584020272491625393966574723589889001811189721903081736815125098133535040064821555864649072577468611986727952910281438647010558918779441624269884030297943800292525945332033262940283821095323290715430123364540558628279836571183638133750012009362649516236761396785375929730466836598422183191153437557584484786320962629435377079145101247058494708869493851523834582456429873559431078389852961424013969401055793072522320810495253977553697098126819656579653353401363624021522771856751646276674085664211182218344860319913190634847741688810528564323007057630518298600894339568344468345011369368328406234732759269778850135748104614609775961554748752164507236268399607962243655117546384638407535762392593232864359854795367315767720257489073630615479481827138832149641016875369679600840498020921131505487652920946636954711155645466161073427555589796707982961605513749072287651954920305424571101236770167314836660639768214322686313203604301871951410482538778817132531559104260332996518896538465238112369887543423349020975655444817697208577082671131109521135218755605849674068739770346349624987810606416343578343780302925406809198364316846114935134986778820393056968462248926268415079030769817343835488988354680966701083815427790004289810956443674644883023536583408661651043326463993703501307594633417189990774347858382927781831046966190884204233078535390800506785326069554526391262386164067827220697618688540030499362652528950088538754464259396133774782431830416236702585900959093772533928056135042821225750957533853801229670035623674459940234918783959753753972289312438732719495716055310619320442156120150686958376337755545741291157540184366085703694963967786747406667685314547088750325331259157526274667474383884573343731383282494621324509984056128798002462693157624477952651460701771357715238711445292386593028053966703066751131080246277426042899563983435846718566321274840483939963876541267745248718816320539259636789648093454381015428476772628646124563475018933811160013714595941863831173324717185931899573652926779924574987182174712545324615721832997328382796315628543042682755338187576063073391658752993247757361846743581675300629480724395689965764752541588284701728592463016226776992321409276104018178814048693462180517738185542744379681315421306094354837317401955799077127441671513172420137641599652145820912170663804613558542486418052025853669740034223176213607490937982675767686565048385792673768447207418911664799474634566718520687812377527099525240695734310573578308981115333131822484427368124716739271464353486966869120143964169094555033314699426811090467745604900819015275830905742300329350010712651951102009930660197914653087048567183264868549122341447605363358258934059629693932937392083278734832804743545733583449406924273017140631549384309592159086184266075600867425058640584864610797835346138766207123388413158764070586406161001289955535708853152811617782412332246783118258895868418629939652993474740373856912630736132124311903134804276608983486163403751865130031315810492660436594248581503184881530337805878607340436711335750103412666954733268857724001477084060009321546568064089266220290521676836252945632806333326429695592001375077227601822098879674270405197826512685612704005874959522614602649521159474517143068257403156816459531370379037485912129367612601409048886122290810397625896536066256654807612163145657870068550306718940722800298719919312498626755185749576201016425083334007287122608113365484094507193243593735599949372297457153759643739573552158713561154026479871563493370757813433394394244589391581853725020657324139924142419358314401579124827543100864711269901241229803492263280360065278049502267695479606277224877445281258510944473817050776531469657424724289803156394134845111615761002374583193749755647424187443956812709486969164360872737584550027450699204431949905880420829067195742690308358886861130140003261700185627612026395391844398517997982735671132524735346959656553542484525444492601140297515601247279121296211153667660036299160238096773076581253539613652453782078477857343538013365740047910555869071814027690550058658268405497592659125492396918827679715344024728643653103888113291701811970180618800033421399695364420157333383579627217669817615154367753739162890232112267353397519589747430265809362888549957831224040437104074974949280959392031619079458629903608327114257993804896197402708669226759715936693545682250024499715523146768096588825839581038388598096392231122111658113919389069924116333721585316307013992567896121719836330454272763317186166110132966769695282144839916365718233646749439307799722385073292900131257926077425329959481214046445878820916764605369980708941975630770713575074773004422872328508363188879993887183750189027900492955968075251064614364648155967344805181764511664028585188129803632676761329794305333619026619641938588148911482766494718812089939444510856034467490710026569920389417292806623936499332982849332518313226509299980754299671251465108185544857425800849106550788570535414151677785647478146021843888072991986316009820678620210064010193578434595222909459685059811765553372874175856872159610781195636798751617183882189918018417570964429775612170430765258114588299854035607643124930857402264709839205811250407482342446272403080171967156699625101948246125259599689196469786423137968172469954124908268023792099885750629791696672533859809740234709676711551100329628280656626417243184732100471650801979828141948402510446434568600284674291089205976049127450248147740500228348137935427924722108870640587929370403959851431915039614348978350031548906107034591945390552575383624756617358510289884277498981086269880065887148917259603574407891350023848421001365079243602598235687762612029131696564674324238130763647433519236727682022593558576307256216217448960997184901259664645259868483584397914092213215808014791367574559807304495036476639461912748429539537720552329022995631884834829401340004809958012949837192780684638993777940240269329167502484502461447747091374882923575361335174451609619698551186800684206665968261099696349826867606473370228241009434716559558670310433867071304619781221924628739020891604228919249235361911349146248042716741754982510028089299936446012462380509363658584145235475450110338081194977427326274776007217490801869624219558658326405697479588650802085925105259073523238150624906914718237608171655371007157085023580188384765490611970290432627991931986432223169617871549443679251409423846986005378102721790916949320531607692006807262019907108480018472418599794191058993803904700972283936043886670811155379769619090741797022219647958157872968288959055641624132571015590757072696182585366566897511398359392734002006442681083788057953014861299542177483844401452330110291552640153585672861238943120795430215798930520343449806386266517386315042252836695889040515521402790875787833751005625266303736190865936629130231459017131384537224371356068073403285729455060162581183266236625725714213842543432804946535201443249401471516807855142357179757282813199126244873436888866707735013434210071022964743580091734350220761291058699977381870864055163360859125884544526561732416858056562104969787606364474551112362139283342559049310898335954086228288295200288142235468477481488962107631381916246522199086409675961152836773625516248842782794750121944517778573731663674511208292027699669017189411188745101496076108900777148672784651345369572669718172105421560159462452786013402806792437958994482149476110283654920163049785145348714379671831621390890364529100579613138342830531691663104568168251742849059812588326892418821858378604467042725163295901599641276407499291467776442025417978262143726618033849472377517083984525179926650927515200288936779822211937250865800504126976388454512632101844786673256270034636572005052454548764442250872294570654869590199266475416150493297902401114858610663005791090550023908646107970589090138304337007636652194556258323080983080796158510415753628484778937067690371145930623623942580015571601106827547657086250152356050621090570167025932514021182997255068246261371217593871616063661160264042833932411145773607183227108385458296273192017753532865887461225208375140112050850962575100845055509615036471169337562348934455726033257200440802348959910381854232540370049858722014464322973949687158347335345579498870207924656598066767584508329370941687406844734086111101418224334863274788204282038933913386650384654538869862755622041090911514689906504006016266454334673613157379444003730744181683648989899080950404444641747914130317746303498428439912458562332195543314129226941407491277689999326424802988705699979755410444310861502828307825011941669817184932395402294590831850957756294405708435114882147618803186534484971135649471033128547230393380911694048922173442029994551878120096173103204208502255104347901827320631386317677813845371920039701804179584630517729308707605039355589049399541534738305552857272373653263771060918269842572681129407652301841844260307667733565723624755834282137539739959249552766100302580419760216355557025797045550273067075685563589724466733382501179526894836535435870139971580983824223580711146582155625370319039987047035859530314345680315733914445544680283925725678668116388331383591592775854439471858965170867654927914504212466077828463991649082588426635201920045549309619551846123397988100116267889948273004784757581532783725518114358462517617548783484099090191328883315888686178302886997342556138092493560048703414660557871802747562062759676326986760768498583350401826385008871448396824816220006752871743466460320824129113894608734494520852677448068726255757205495248276763677672764179390571479259666433209241006113936094118954380376023519862298548547896225062104613758871782077286830997045381624823103374792756083549592696998697638858102771991584793546320560972325508891157059252339882702538298072621965135861363530822107716665973916344343220530611693592025100379353584716990381761695684820716510153324329443358127356415090612857157874467332465413649307882425941591738675453370372619486452442513564374189386735792926137156120544893492965615796409552909622816211860904575933301016418380428990241908192747087151263651532969755529746854618106442889503505824217720470858609444739677152996034955509505655456625121376337280208694660465829197901105647295274398862881119863814429459285882894872147497401696209072907347963880937006990487011179001336369536845016995595376471205588449310533945590800679678512922746620894807959077210492830515996705883119057344385860646014649547197012064671628792720559061682009568901881528537817939958710412809037259250896084366108201029319242599600017960310515606784023298640935102142445719719726456826069895570510177789850787389414283058113903472573823013230789776909720125628908729601210334616031092642593170135224630902893464020206774651999643864694309633692804292751552879954525503068520379781920928101789351701980222228090738279200492514202465391021026280725921399024431792566332508912566937920286570123722894775130047162535804770410181212240936049598199979217325200931121232537166588950030884719933529132417833094234186131369709246849724030145190511651201723508208231271398390373555630360648087232000656131187775954581297175506053769830024611402905235231571192590601248884249953321793303996121562879439575159744091529942894910434899195479673756246557051155227865751990847002991266636609482508285081774745841040518388745405486459197008215702845158242413933142392200530170152794441120635314083837552144912561809771208445152922410762204876839254617395235736976592647190108691675897656659571577758602208755668128944339785134603279921349592212629479567078179653304757560385180595477230604590583845312501049981925138757956573679026074992355737645324876253652985819011142397066864221677863857709811585482267005712561825341266788583394638223669254801254592273733263864193719366679275613410567931936484273264318520531071631889777390392497708498252650890390134040728867152487204981367909521518911713002699944038008106180919861867474658793029702056481564437896129254955232889179072500794927463386573425867840114605631829699830876209422926383697732843453300533083994142737481964414601533651265682563349641232055946454740683645977771497124060569119402007107628646977117855151794878740214897257103841099685130456306898846242086696478254672069746155095365793816364770984464425671309043311649418395157161235138900929167718737483971206850929671811352545069361779735529366854636025033495998576751845607998420734340889209519019080249627127977846367513800045053458602172398429723597549240805425491204613370985972759531015339754505983760615091503262667858662234512801841845218592969150653279700397366634753084778502030359629424587565609153361969213660789105102819691164344773802445301786641783849706828219267938730130172785923945845290425127893823537481883960153167886989079208679364375491638570397193714488345785726924571096293417337654946440610939732083673617211885214055862676288732106522050706365669643832931272301157730962459817821781630701394336308836631552571263989326224353219502064371985242254989678813620186123624706143025642266912787703272429581307171212153782373132126659499223328581532279063429361554197810150373063769864416443624107286665317560233712841608141467847275768118763118039533865931785363658251780305834970499550800003889341999770939085899583401249002005180478085861556253445758195243368061460355725315096686041357942329951001260503379891522238774385465459860827060117734275443749337160960156625980859265134995991940970662906776549633392103685248338506784591222926803928509437364639827167590197839246134092091227275824612050798516620004176662147555270400770115697597923775519232129634145583047883525835704340580064839824833822439348738174173570162121832039516303153704771970136761354428684157354937957611453314098306869958959931544164913302783556182338070640219468910582176163372660034128788431473347877085698166337467482923696509102935593916056740149420804761531363162804858980219149594977579623119930434477395714610259494111674437728335013792767915029369261362786248254399019670227556701507691287184357448679165458035192957547892281203251460001242053739746090850676916009958932786215159119444770570359849319163788128292936051495087524457031344132321221036123159650028253750036535472607988119978180860196538447043401020243943931194631256486251578497670428350031232072602261381885112150450432569010769720206897172761054375855419679602439349549837989995231390140542078927366362560252608390285900946106304094482097853775291820967735605513637208401617861607159295105940773334859698674967279668528653498385859666947186087814596011748680190374059061383782912700207730466588047170252694199368951506730068236947177882373442175798336654345301304961235920851011398467790943858891587081223014041029583119955413481406413405601346388785039404015049399908394620337249066022517394207389826305135074365981975417447128507372569799255372848111619506663354321878172858537314957335127503778804667758708614686078846922234829424357002995334038032009547934009280438485756627456717039419399041271905204228558958576550092857375712281429540739156599248695431072848350947822200536218596845746727883671583611573796595514220807366492988981409152151909866515855126916682967967823195401446462019536644815617332850037258659139763160727244913981532614514431346979125381572144420746571193857370074841963131935086033385024665782876402600617616100510949904086102421597924513686253355977815593900496193351855301776445334346077834125986727745775194411100021920023372665253022881012452774607666424288421644475173173889557932916201200582275220488540155756138930374670095527781775954539778356678904468415876297857960897058540218392159087045409590770640474213748924988417480536297941363287830894290968560353354033434418068771085282366613396115034792026225907709866135905098460775926348599762654361011860734553169058470565247403353684955013708039383633613289416704747283947699388433636980312024551387182934722919522634023682205099925361761104061589887515241340414294487989614162787355966207097304016883592109440047506011479368784392931139660852200820574120358489691350654621564617858606273228324037894997330236352729151112471723682581131756990263172280005794824996098170257398212662636506652369137011793815015309184705444675523658966592696118691719152311163903134594292841988061421277251332044962941774419143688332982907989890018652846317020669152545697410906097309285637807797204510478422175524075503336588698494549451404257825161105438897907106534111613825077749250709161888481044562562630332949323935137834240719160814034544726816910390336293802550328507704223077436048794720064705831489647299940730385956216317430023889504891319572796350079876824305740188501328974433250206190730982315876621334278243170080676091122046488506720291868077549689822614775092630677935321166644850631759803750325981309137838752087028671990601321218917505092738327626315824662028757844256972836721125513378432801631475573254771933590751834413690793965250506618801131173066768047206488387475395967698145734745921728581618819291420795020386371676962689281140001050849933167540187217688585132600209479240895296297052791985190828887238884308428452378024444126954520752668293749573168775037710223605399761299400138015945487835497992401713287351705092400358099594469764812671681917928500464305799653166400214076251877092029458264727258970006581752759822035715929922605147803881474869783101232407447658495413386797876221908228242851733919063389254583962278970543040808802605181739028610975754400776989459480981832580485757380704929086807072908955241106630566398379016471634732437661776338883021396862490489813862664731779939892969034142028559930745437031910896416108744143803238784831141666953141087454494996285437550375472635546813384197208588507056587766657402639685473889439137381856730072580818254940507115415996229080252179394065836042529581868445928409812159827314831680458250611923326338606142102519388686233082772985896738241437024250830264586645838523091749970469011569989856423641247983426371664442951052523092718169220638356329216185308175872427566003457916072773416208878334292985098251075601845432213108465032402947539630995748048845986532217699124201590778458928410503941332645819505822418608045415252218974787609800216357828620450935214564323203171530904664059268908496364162024208355465996472870125581476251718878129185618909614619608142077536062946137525329601463601895925099765290755771430751439629001684938472893722008944608741641269591425924527969101445929282470939601374399196654294932374217467368381932119667503955056166056637776327380423551406377569286248544209369739252347733682107575743541439447287769665297376973570549402381305087515671913768246876236987012331645181013758978464764129523163239075621510981666619265790982499588564508884223494472890551826921154567697958821993547494594669279032971091618281917217373273100736736975573493029599078057644073996367776912066937055339069355730569167126932893827532276686640985381364310795257844262784885623107804298102002592531171651144634344078260551369905625379120935250098821729192611187820801279606028949526280720138605767774506277420905777803979474707466686894556603756354931799693972639649466291921813272881379218774075079219755369444316270277781111447191079371989941296399723779238332929008815256828426313847453998248125363541348714413924187050435090661363655551627928857148855213080290986710362594291590229046273472437453916446511548103153731701865395184386657870332392594943177546190803216873297141805318983433445869279400883440559192279856345916952597799017147511610608871512419180986912115595390357385575820377815488153982466492618133561545262428749512674849247443277205333851929890703721610830630279200689884645277800399458514697874058063936717782194259412759612256566706970651664609572233916297163096807865472330900772846962678545418482750637226135047211023990223713704426642575752474684146209577730708122038853514678220643341463902845538468202833184584256450004658497027980259392775053858885435799075572218977789209081318774164572249742828610134972130221524110007057867385123033252503909909494080360205069839392110653594147920973656626492892616169000099322582433934078794671661481234657452497205044213673576612643126726679644061558391530286596208185816548909797309325949720368647468694388370262202353886916958532781402065623498377991556978275645275982219501157607852578136374461248960696505727010830292468735081488210690967366984839008383505927275449660914109234817822851085665473678565967658246856487145981147101234892196126801188083410986105431006975404692312988267570771080482602803583421751262704241822671809304143674841702155502628098272223766208587032421491743007725002748713445571648340035546936597419845674110194557207345898584192153868489866523073508697070950724090138909338643430382126354974011033552141110886229763381698992272379840847462924905672668213442367848193079112016837471401811915752670627020889750794012647032501370778476806932296979889723124358192290229240778363771073384620775031139607313538761490377703215567063405579005843045085551522004372539036341812733079615647660005869502868846875947677130617762056345258126841522980381372654945231447622810039767824177752761315706571982055254744933071001820830853932442957917979149600158980228233493181563922828566610997183065734423252668153220748197953350862697339009407010912256090152120988509318397951857970595155671287873724951069107759134935318151300683654974626001359294002240304806556296151263982189766263188296171668754654895331826566300041021277419803014205596751852395749320219682498410863007351873960705832991974347531234583821248421226255213597906375634162760247568532715688410575716740467646245306264779409308803019449452580898002124041905196241339072625226436719604101871497586097168955851877947182114302296416862067264854421625743058677588739204634794265750857536167875877594108878818455150804668349730862889381255084273038363174779185218907669541056732085426988412614505820306724151095183553237867479752421388652301110855318145525617621728596977741662903981665280106747414056839156442317575828839278516779860245405400729411840396410671933211622952966170218706013223815314965280846452934111733405490274978720006280491200884122286451232730355358230482584778941381090170329841853944834046601254332864961864868963088188411999442535742239515096972691829214260841365802380098920137461054694809675137012965311458086043936316308304726163654317904918530569778358005320770983674218356066029575436035091909943863772996598995349398442049378429148236581591331757728613108669278375353516491421772392228587274528945796951557039379412128793487593939071988216913992381656952113860143367098434303885816925351783497909651999209841141247423142627621329286334277831316222327700292934969137453320204238712313161932886200247316672907198615146279990710160052552598268317109288626126570286153845287463588167230981151164576833144768833099212105511060906425316785557945252283611013466975096582425911232568822724528522677848232768889794707251722600953172912415109089386634504199321681888031830109157939962918027487216763359424123607624167637362844428786879084270389781064804763333339841246001258851156000186013470760092042134465973187745460529768502132545849669754182926278513182180825573780685883480487517418885257543900179631214451701865247789091843567010693110041268211626678053798218381724201099368285380082538610404576820791091900289381064486264582074982977643332976891231336396808823014262062717945060074696420448935615097077353342305063346279093382161228750671046530687209825760507366408539928242086478051541521027096473180572582981811600771704456738305656324653544637683173484063389703035581547705436494830526134860608814328423500437648294205391880847513497883556008286675905096813641851884231714202572393786762765598677272269248653244849182589638192170904714902270284913402825618554908049740570892075396899530557052303003475215862405624120986469335174045291702747548332435529445587983047585456621909026630043778719321361693856529625783819148284356198325839817579651304819084315961450738932018282034735899258902961345931997730855417856375311447220273402653611192851352943881793162601523119501548274496969424091728070789660812108024802801219070960171970290815963641602419186366111927803961614109076920289866085645502154363769208582826474984908236121349248201877543520917598062196540492375289686049664918601386222512664697797999198704818700560419155039874204955145503388249538645784836139833739292367008440790725090506956234992560371625808774934398931948424671272124143189803834256195292569151269242782972536784189227309995171169418114151288474576524539366659510253622500021804860837888793681634564034022105280559538370832689312876083741577924235086917857155956253471218308612028759156638186265904057474098682750662885443943633213696575409761513201277876542089146371122692174571357410460907668514961968122639323107474005839804614095508408005129465959313204228200537320661144656216975738232967842745459091345984196332987102539386240814336991013159484530429606532780576758196403287585729859144956401541741837558003824771925457459009037118144131195448819964148169393563976707703761251540314462385271056006231273277592357254426287891086057636424939355074097199336397798951684162676997418916728760056137064617176206817877734374232703186048670046486231692703725035992635065727736270175291880909402197610914876029778723772146127778221864633380557330555711977708062845795324662259409536929516643482104553345642176772824908313780696221113756437086059005070587557528221595980803715594183793044866310293230038488869653078000647960231183880962139135251657193602658004978000843920780525739591762000831556242144527381981630346762708711488700886681396058687170923575225327264764777370852115141046302470651101976602472726662250648344157744276453678207253633785615493622186898807522253745392441519898610568065322847172216252708568365616322142213306292537349392710487027268685186467012341216148592839101680364411720325386312060300667114478108379828806207146843032513148461647006770757952040851914927634507357049011107153034466057060640410122070867014560571704675233793879492618496577913481855494628040618774508392448291898951608592938601466833954929853148351541178511549919463635930466772929550141357788671387829226348430459533035195715477449536737940665043288274635246589391353300959700871403088625608923741756591279583901065396338668999732854768195277717209352614233252321918337990202575969722002029798488605392180256752172556677403059558441025546780513490203496607690637612570287072146437395609921197009583230711179411256592833068441181672128013477081599065832004262572641044928202381414915353589473852582179577590462011712596624502160553107497543777001719244015535097619809628659936740040080427908297248780422316451871068747631399054752199539555176474810906354020899827434213380801287156586908553682190434452846058500449165089736240765352275611683965031741474745409603322245806572282641266738237571744088402526341641042023835215402221077205964375530590969278330421882459461394205838599726011925638376842167507467252972071972365877856904286696290915258151547899518721632719819798202074656765535784646148194849922307376676953638298816832504294124964403742249783631976113715893404916649907405421669338651667434976071426283947936271432909521093369003108617311153150311152613863329374575390524619215483344369486894454579769609355065060480414861792364493936767077939889816290331312460523945070432538222481097531647844094272138404842303185096708306624145066409545246999097909608664037463073587570018031425693323617166809902060615803670515018014219606928480978126319223427123035875719793776147814938248923096264031052300569840193049333745369413518913067750894956819190075141559789619059850500714049682601250834494357007201615352103693229450728888454534205960396281745160804756221469722045918409807610007889971076674400028062194881884735403741176465668663126323360270649636057195082128284910808698989382242381171471377366507194686658615275039453900221178774769088264474621595288672802642634930705387593644163013400321801006387682748720782449030977060980501646401729975564920828082486332790259113669699554771676268193391342327286992060739090879373391459342098216110310148450105828490396672810146827588681685080055465554243945812063807364984560455930919044880551983007475074412003238595013119854502753684342207518025964854142501877738209178382344726400087691003555921796045308777312474979725323338040862734611819255169355709717273949685418412659831121257713297409913841056295680530534801198075667640724945027169852298021499531107576957159847725101944669328665189310278844180793436478577158618549974907804761038531384780852752634234389814617439477649083010591519000082440164457762550332469478310695183805394365807289706484734453898211731252298497097951380032601992746210076422748446449719935229435420896429816832992384773736953567596957548257174401450591137316331806963121433727253196683116142496923151863632765832690284324773319635114591300353930966103682903656170228130606179900727867099909750082323499521166483061846822388639325126405477557935689939891259872299981283138273576954029282892116835948181503298457424755158088883675947322740214582573126570460302594653099401735673264555823897984032011589267978279839209601809695324585679622566809003950139058712577417581848437407377851384920005764726794679379621889770531067972977881348590029646922259381305750346886170293841545408385813545501610322862276987405163877906826585508520213170837064723983634446564419379227309911349507912812030043728577697858642519384511807704919271701305007609208594898889493593458046074106703827287255014723048598147474407709596079939361537757544699295894646777034152419167805416301423175091069830220586016409888821600191355017146447367728476516766360103527326866669609916918917395029451942929243159823155171112895696812704989192626086690079857481864159760041887665422303743553217613823979665888981192303084015020141924775143545455932760280013312047687963641631442897551230771432535334233340197213714727979718331869836593684673441613806963553911256987783534705657454468425119068143422290904476696410628850214055351786973624455090655850395302625508294609229853968477712851561094683586840231473524534792756567635803795073415731028155211162556632967525364440377902176219763888037479385210582752031190346260018960286882326934791514707555364197727581685013719532133191340741893200619738004533926408494525238615027530567634229687981233614593783164246501985494293199456290863710635416187778836039816284515398560127655197999260665508522114894230995338146912638471314219728330450106651790576609072839972535727112120415912655160533025999464198199204154795658281929616293486594113119998331647351268285478359719064850541411835132965281393465915325607073558718284575524073449930271204179274728387664665315546033170310772125364963354470419552765038494718605168135212033591639161837583522324443099979365890219162277965152610962628945166257663486996947060594871201600636232166472746754708839272008021170411207607197696031692498257822623251536279357929682523009133906379640855206011334632404596440391111240477411390558976561636973464714426645944307654403866014110429182146294481175603389056054059454426101304057086463395259007805557728750239440781252133375023504021542010068008737654846068365582378939493433414078561563979633193421471955785451775942795756031484504169394749670980045919952924169081825202853789561090377600818043114282109050930642246100910655787372310711604109433204771473325624742740846222441026011304577292974933991977334780743523620730583279922279619089466787674447408650601447282660240134709290612847838978324687597997111074396757893821222448202867249173648930426797479399429913943659904568533648829922117943018128953036944894821567421434964946485883659055546206421763230922790273777811085226256489999763436833119280940623608784286525738326926233143842873959713355375778107210462216811623752192236896514347761180518726489747967685478808345570567098084782195655533874927812605966460785915159623208069005250881959756010266121519073471282412387499619231113998946219113305396113691668946807057116923362738637867260788137934175311558910223347225297808186536994539444195638651906446577450448714194875148519159103887076069081169180254263550832929945768941488231114583302996391494276318074224880427707361834357207791890495486226549407509453297870158658049810804059317831202041841938104169540224418977112972330041167755803532260228920113495306670653681381083952514991210330823527081452691664863554824891581602106736310745489237817180737617374726375665641632571931641001858766699546507238665259417540872844629060211221328363163680351401329424888926089417958392230144341077271591464935211902301422050330271389358986361018490146195211051155606779691551090320492004859432318020117590459702055468587877004760131890280556376425157103567342014649253947727869528031611115973598097306480474483498509818201813665464517362883189054807518794742815665488250073925126343501207066868051708039458331394706542296083218694970456107988307931916159951400218589468911663542608265528955455334328847255462358008577493381064994591418191025434556078843498716501329302727714276901304514771211575873419637464791431753188126226000585424745386839008674714709742981434379395276908911125677144427151646676575590722045833395116578956688195827850946002757028936406432460176560249528900598061152928952585801391668100920458483024824770544123671585403516078021047399788898928505169971500435545085094907096423289083300279028792654338180211001649122280503369943459653630674787675875365778221113921400883879950424631206494730211543542487369692559559951640159715044481784667754054203861310454095164641573412558864774445812595875976844743686067889489537818701416800323220009694189505878611778924700371283904480217182344435158700780402177006645210894840991798451426274530465712379497605529893454566960583261869296700948456734789673681604989288197075853384161438573145415355614785534248278040742096355451819511460608015754725203890656583704251879756914823541671773694075000270968922800208069871264142271139460185295649614473540782814341689802025691701854384496714026082194349250621125433544939100330626951970776401067716790241338629936850561459294051868223680264280681691370281969737714344254277439499228240969822339506578113187585969883896152928543709877141774358182041633122609087312978499143615656636761105752536414645759555068787979783924706359939280926433366669258011574333701326294688475189451552564233775527807608737850054225786536405613576238096236944141351652949071897736402754314602907886482749134424831674915435675112990245136091926279812773598994207144749524093615600544015012603748204510121041596222959320577491538767696137939176499641955317325924049802559915164545442649307978086667530651258478885302742566582787424368206998170483185389410719302358192365617244542806696844802236084079533948814916652432977836791250030268653625810489005396934702661747150264017604361545886242907766299322227300359218698988418288011942530953639229057410084761372098302730176766374921471078352167873293640732356745792544999750280378625133820415233699395656643974860731330623469555217988331350219761365306118809832368432997167259658993703731310119923978289320547502162871315689988894192547265534051299021823701445672519213743101901606359864734346479296006044789612835653761759471366678879056330262984965548061306797519648028015187511564659183422750094245443703422915422393241215984388576325229713583071164979816563039036331500085501891458975321087225614134896160321610135659699916968562739581144079450614556306406889578349126410145887159319934029485318440689277787168733751248896522029416261059723971497267534401656687793849361482429887403917686558986970960868335838902156526400966911220983114510461943603317830878066114295220261228653508823252586120543873169669221711516543314110390348767390129338781891227982750809164604902789739402433697710573415636586485218778383771528558181166375575663232134343099989300647612696090190187083887022770865952097709451195693243659037858165263134579189320192626302263839946370222968601354901877729145937814965431615078445694098496296356672419503732264705618071850292646348008151330393790521964750744715228923758142859371352723306700349244821042166857467330512803132854341110505932463495818441071014757437580772244872253101834515928495974761135831891807438553853795699616128101632482200413218936633640288972156834670259002464386785047946199887723633219381727620612958749494429902026849710764594053181678243836538620941216672712472946119100200372747868984800909875640319003751046069637288602986516253886604828056008983882500073219145817004258712998112912022053065975805072395065537780312367825785239198112354262697857151772708158207598633998972799499372178537939124538910621107730352236320320070358659012619009750271387835847439627132000634920389602286552745133863227519893240087140982027029553803099198194856250684948615119018360571761141044480285526422098938723729153495981933367425525817542312963877167529030656861981726142902402484063427388618232837495179813696681691433075509929845141176263322953470420556445684370173121865308468102264692582365962208096847242449603936113145362343585246219724717859783427955765357609893190937394698746621161692025196516895895107420044718358433248765414425262167572557346269341752821199763629537212829091530690796759523788245777448363362345156010225037949253351548035695587757769677654930753259611711010768322946722200277675253749268115963106600335694821922126353185541137768355995930472453674864065533022414992354011434015277288669899106630114556073601994867239904521757085677796982809451471638605004160607289362608957000467551275830395345587178873031069211754820172174470953993102014471579220610495930646898640181579232903699787301855492387663985998808173321678799576866370750523487087636803125742876797790932316140409036211871516567034360647742934582212565862837473728976566977037289875873933520434791559845652660697952604512120128368785066519438946328624418115164385248005164851103518957649847175494209675126745691709225592975261450848595619915807811653686537896190833985973735627190817400288202480336287178515903044241173593957435972668153948876995576201171780076273509052081213442250116483637402009565509327183102935789558289118218758022661900889306069772208276761025444659176767452787498628595368599673209774054461412725766719984792016283075623848709437392224034591586194156134556258410380996998010711791442182647369014932236543006414965831219396384211294461538134699228023778848609548752118222426036667069175119341583959786467503732662571646623185823893568025685649811080793289231291910733200851242679710615786270532429082048883371334708463150840805185813835356730204940254314586520784500538616630279861095014962731029557519680332048453778960672862477831649436802269739658188864024835708482751555599627042848280469320893229909307127165326268005543444818775481189798760987774238582835700356459988286949684277216657312528100703882220071325787997028282077100321294337320845116940970755122847799852110979438952217418973695215225070112618611271451738954157304188572640020461575595219823162041444095983247270985599166124260170166517654784268783029998079494701393042437257006818133321398245518607496705761318940330711213929532744936487847787865665416620709831754442269931535196538628986439601218762820345212804149143040028407078548332921216230080845175301672807634243699256845317291962215944475305494498543139043977237508654404731246541693605128105254139337291922648667769569010014821622447271180894404683540122144759678721293190949180299035893044382224019157822420744997434212410742134466368565548814580982768439710621225278062846775047658840509942751613348227595216843627468174207221314692025346998955735140653944484315379103328979133419816259464854717856848291343996487712351229696637790820274249581181232863796558596631299877565807654589600943360011140965208917488366726223613712786268798854287355035911550560999029319529885571894698319345121605575406079483920879971366854709141482188043341268932238813743262320807418141998823296737622716288106335147795248497321118254500351588316488327269786823950222216959107301056228530425897616707840039754987867593025636894209283940635359093096137488548699695000637964390556897871670325069925817912505161124738030133223936918010251135368707642355953506577700152137569273798065927527200563684079625475891916463943441831119566684796574507801756396878883809293190461699995278622766562043147844947720540380937470000065174715351499396518601429479778961489795314116996589323215047532794115025095731736245167641310789368196437702912940139980111139170938944391972331275427001641424748779161059933072671028919542047521091740518209369881960385902301707125667904217112634566685106355037841110116463081790730759250904133793693901980357939392065658645375857792938644840796199744309308948009327442210207581746756021609680464864852108402412537271732014312638656184162727704011680469692687953018124172850422815327102761619805890342772977407173094265813582349937341251080417275856946776419443124897693655621557467770630721433205032893123888672321416174371805864789888476251379273744413494829015424949078789493084632877676261635058712121584798838103204574614434013462234617314485897540311590401548766224916200052566381793342790447804508334148021035307920016288073811318422491533720958257635764451371889298955102578347057562469130776238356684753232783170289398322230146604497977577172780842391638050029754684853115546068142931228843124865018271792591176083584351640006958937965548325019084461753783031705052750484382174823270537623173473661900433607914673496811658210854683037190396275777882839913950780680925803475786538542360011711249554844872447230017569660140406922110542422239129822853925869728577379969735784435033158195873354417842642589884171134936002174147491931359691732428972404229332028691515765231668739078801931028555462053131550467039222282629547769958464711975625127031771383611341098283722679734799263008699849614751002361724229216801273428683765915092155416777369568256526677155422633312897669523638255763795830000060231103406256415475612797490054489715367201946363709440690839952316649465543142306210709920384373318286910528120887685675567641497429566399546690860284148418799104910666741582871574395860100109822057507214082081507473748013609636732122547698001903029425405527741224905148704247983222107726232651894084812056894261889495837481844881440472973945099970982811946652397653084371671818066885274409435612593219911458789393914106968913475165153659186467458335476201810180807047507746284148536392617688060546295853851024682636818561566843805789635760345006096455254455529526691649015228051723638709597542407310503175326532148321150119339047114759502091312422459038300997780467164790298903978533462502409467478803833499350296864938318239277129627102271217967561922665241763804319158226370625912102799775734978636653403379845582655213307012085916466115200670703180927379054026626945965619927337833145315861230956196869194512297743127044216874123807767794976995076388714879346684444410187101155823819307050296845257485704542011253200100591890941804457846089933442114455926314918622787881774513408751989311604046921518725925578817270311870294519617760396441744296315191631233148736502039546128506921881820576140045134128792580058328192516448891255180974890684240200475042948142492033191458313365360320263317811310744492161679754058145029144888135407830699931590376385021064747670065075463328005155161010732626162526432220334689185539906990052897429762921593940740420224799827445739226435934441653897494098251087662409081483356364931810655584119982574603957551441240842092167039122148849189207953379010412446587023771743817389057387314180192448305605965569566532986223870484652348819230747188626708870947398462889464186930765546830533510721059533202758387446597577983451638957862911747080129914492047034547086758848659531336723495158176768556151212181731409039965700200903578002505177805924110774927748229225623949512483007221312480820196739037770529380481567558428441031502221507104673339614077609191606107557844474688106101229876636823015564900725129381265081775274887345910554061670868554370022707374706596469929007993931853092255181117812581834821496558409655722248416376940046817607646161743151316659520855848364990392144221298151978588418062505909643691458477038529042791386304260966531530921306501861213626999031675078161590226342353486609183520847848633258567082403178378157780936073799429567770342493934036896801516058810481825538188977587235575446033397258096973706565628990516326297701615214195068347679857110315748750933021085375510160241497521882115019558046250127517945800361004370704971664692950729035585634419546655414086282029899579746641008923686313612531908818435583790899660574737738838470875887755552008328538085634778220168114328011677522743855594728412973462693166764372486914452677615648088903924203024758996112031485121923697312140560368646395669488617993637286059170721268572938822029957878940558484017489064228204978557522274254328437001968490711650895799889177692768131812204171019380063074674564840854200517306072684027691385707573430217570403849271278060313667844923997902100723940610033723194791736473262655186850249195389546897124215949315190631876937340754209505882987357231068063155582794682442638815700073212419952861762694855302678065545296803651780188626946633151700431583272616536217647304644281298969791777774707257359637823707240602408409982303657095123406967828882887935560103302805616405734345111376797201292244262152012259234317403418841525224814800933662971927972584709993203839906368032165476878684375947697946902877527945915413262949947933365944332032930282353833637190368500154420335754670068628919398829439605538955407525923477496353315903556541743243202675087930886004768193873562826890095110797750502393160512306730347649843583291452063702030414864341730950521803322139962155188836182771385297042895658102599015273431962733725905193841795544354407764344417275170844027507616282803720341903107348365194526985248261144628889827642420137452827179084407708216085927956581126208372439190482167698206444918244789473104672969333445302433417419948705507293544874725645420706881371470505400269334389414527386266956705895848310922127860193396694565445075689924301777996965037442793740003402594224251015871390883994741593108430406497512599932164777749764057132159224576260452978027097717592024715887084012392079523013005455331914952942034485513228778329259744536689082267138448111179416322758955312352832183075936867406662437381158013532049768274831464158071595787252498304023779151756353068250662146372451017282182845482502214864911750120345212083700070011729078430723798939222774551524972318281242608134548558531911114847604951150039284837321948440261386981350876498395040421332575895612304080063974404050330914434512403527422161573536480923257864710282591903273119504694850342345411910722478158912324441297047318443078274492762922442778155637675564020456649843750998411948748481121177017378419092287740094056256203984889591278319431424599193445874303076959523097932856328452575618875629934240007826675386354687328333241887630137203724212180797717333175864552724563204866773726459597476627982750765719662367789819793811233289357266927696167951502578373733301008601123546863182973276078686680602657712276154436932407453856067016245176502068198899148836983650572417051899357448278604946828613548199090010300392911181296777941450580709822176543760559689985652751019600530845967801760767008335951760810231794939587661339785651985258289375599084504920596378775707346418040368932855778302552409944424297123409259628215362470278401825118591460709810549243679758641062143680861803584281672782243391590475590474277036132813613349661942561976233122509067781043191943156048642592851612152807324949202487090418520538714145731566503182323917306850982894450169198000959592932293734946372412363501194285807842686391834824154837487979406952134629179391492565834958460444078363586559858134519058935874096003371116959832606557888758509053098204442140309639851794758476449202890977761318079013709086511582954019024036994652412617481962498770090929535675717559178571314363602582609277517732323278470150285204791867936056464215632354833430183612025571511120399542754977745372693816794035569154776279840839434251638190478028817410266095700605635614221772643021160960412591676439978029556064035364342413074729982027658588958050314690314142748660163810909043010539518903720005288643055815653521407407990641992943190733481229105836037988320652333158978035809445340906535956453448605800169829878689463739208260412692220312277525736217873454497789045240111680059405993395233068560932945294925723567967959021636250880326722977237813306303561959133271594635981702443325760128337816245646111894466845335118471941753768014214752857415277335039954918286569770823626116180751743252329279586094930659197005926330558790393755153177364944489264566728871817372021963832045302810635067813725781026105279407565482622339686860884695638426183100270848347426348987740896239997151049827492543447536902832417669713551778025473179754200151773941953442766153813368084060150046980209218268130351173178090694857974670476318769257635940279175641611009061609424278831177647335183946015221036427238249183530358004183650287071165746007199081614046853174668569115125811692648801223334736300794278227724098303013361624775341791420282928063999136446897933728589507103022421423583200218821550414773201126780688034340878854611973636906911637399893757128031306650022795333621148222856747417259470475839312102875520108272625789808160533110152463613550893954455342150721470308674661924581307762104558729634567453485712780839386036313447265241894321590164379784071094015704074458959784290853160164724040860599936517311384882069017203865516971199395671144381464048588103469407425078976983894318378182859604179929788560313377947392083817311305831234118279392520173771961909669814682599339265415998442245357809018506773446006674688385986029329655756163808108103038374284339624539518983542814918736725731772589351977600063312556469214304641690103439578966853070071305633709938626353337878577267584834505790087975791109626187226610945343727638756140493710839767920092144470737317803065406447127949271248152183724272034965707586825195051694909888802285144247311500238796136045911743353695307627126423813803534181420480811015404899713116523987370347234334518297631212437487063659366661648093131529601662408660938865054711742102942014876790277511967358272539969659185775721596009427779769347672510354072554777099097151647015744570339537501148471723455019862279711932449836825873831666390404392002788991662285477824681202970740268326947196546328933715475180411964024595127579802979179971879284666669658192800109671250554007197137230875196082322966697417535291899633274592277724201307061271574391263628268339123252354950315895513948394118783406539925176103495437894643721208096619633352037457027681568563645876239882893449912774565722598369864119483132092503301836416569524818628990413677522812174073690345586174689905643888746293511706931815473646465126293233304923760198425737059870942706256829262496769169230168951298042940922565147280736937017406277239997554195375707517008579586653338593779630818546518989526302169363260783443276473757945888967026675090672406980195495377172721981886730691832441562884162455171249370248417049915694631053929998119599856224958518227989051803932916603847279455071174558868461160729166379966380680948103404834381951672298821575446806535589037307920187604525026383059848359266668276435204007039364336289226279039166194482883394979126546161998827088071695523507701223109401460850000687018212191762022273100779103202836979520480119854226826486331231055918980355866930653525947167924773933971349893258087040925949264191561471840654141642413292938270887957761598687410857771994879333113213893890852677590810258115325353810156789742510942134425544833766265465362786784038925694889800324637337650862165818702671633183074006539716991097631669854036563343018330917641370553989731840961267884735079720488541425116302493790239027747328279504414681383056788906550693307864097013103820788780126956058963202484439934383281999518005148393880186773927159266566213282016611118534814293804267329855799761478439565184781903426204654725573085574887795276723446451676745386207645611635492433591251616564081361774904125500740526196845076489774429900870402665456590929681863338654880037422240950666395441598036668090702019344705451376330529205399222258318746865868303299559332892417380556564398793268047811656032719124745771945392359576773141256772715230054668141016121359461401759039266472257957889262594844497368046337521305753455190320028587970520611865566828585915492729756018079887980029478112228987777312741910709112461504748663367578607402654166599129885866116062495896601003972110107254105888395373480992629064047170162918133898378396307682642328032421581154796797162789107094973329106692516941180206258368947298686445049206069587175048732319724879796634811947698930283747719437598800353951080743818792443558055526368030239962438852093645535311122128356970895109856101224175315818927620776927712391130907760763251072978363633842570600636753188864955532747842928021530263380604713673646202609464621473379792483300021105982493219725705016073456468452377992116975148909606798988631232631579807770376966156688957443368721052110170184649988383180391160719379981465565280478225829477848911547677275138132584200853437267486489554099023008902975137835295143072352985305615679477593331585545819879082300336282613093646094060545727246616558798136250724384451076500178216915676835621215843777144297561990971533744207031843180513373983641280355517793528948798269414938427264092763102389418040687463852227812058708024736483107141229604086016637003416684896724936199477891407922770348013666461112474245673336018207666274739541922171489323164363970715665175890460116355085740918659153794841434805450873049669522267356341495816783443474476544354731865734114713597096507200541132909182307653412456761053138532973829977606970579757983667549460243291214882728558417327534977870849330622181719215669362393366606735040899891581234208557288457843614358124503355749668504371851552324119735237762901776895383668003574435421439314784605016544085004199410451929092381054717445384584702997417799167423092464800383287685380896143406498404599487781344303969917521573366105762746803663857129026846713711633445534932096448557977729456108618146497112467677049014420020512438972915890096957937246692730410152532605405972174653446995315949015235582304222527487884274468091595718718404546902998059177945817874654968407437266867402352460748764530020252920324405517174082842354978275020589048910420576167690388385098597429289149509422948332802168436464873143667490117953734287970333171271940650268921006353833386751373457518565281817417921529327443377135556668075707123395978262534984671460062712519266295426976994393585369383320933726231338828572247536023053476387110357550331074157430171001614501291828764348106063356534842277661374286244526963567412795134243245085671229327642726310994162471961249331469221232038659318308787453229993075358480441571119250401974340983924344095108200484366981994775324993641985058083982236962619134605650409023819061387528260956717051153984009371244946530096349040551407318741072443647240652952083179995660215639891438333549781708250532164095354415641480408376488917147042384094764143448034206444736488382279711895085980550926007847821526236165728770948825324513126044011545230635154399006807654335479484395666010353538492086374358112727616694187356790473766787857587059066130745528713505075129785870395725134989148055929158197060489182627496216678406107270587933239626324849044522480962182038466978150113785233649755434106139443496798474442545268152194114290610694421615011405751953508746943711585547540397309783084591799685375946979191428409302802218353126826033733968470204889677510450874910888268235578200753434511642342692063524431186002879140910466503458708274077145290894867877548253710836302667344906470077533187257270903947457041687967770064116110683819447083803823253065824448081565144859692535258501173752647762731908948558091948551741202646213657826950054138872683936062877090552341484135133784708436385067224695912500701115324194117439323576484131014800416514555960908836942141610447598416775117505731264029650138122559213135470086454951379672159548501590818732138331133344799230625370264633464675316002401892783802848685589493856829101720199421233934445344453981872587963664070430696962797403736091678425397535993333642492141630038413713799669676328928834858636830913735748727464464397136778772826722815268073192707283305407659614411639528486290521250277669338835396268458683638444880561077394175276157208891683203204447798709717905505478667137891193574060863268678281448724055960125217894122808725428803601906950193400784347116482464475183749940096143493589916549593494657495380361645581544278368851540300978445235165414949940668244045323550252247939059276522755826061209800335899500289276902152964800956574961522867836064499577260186790160734084396323332036718640072536447523566411940758519859244444628452221349506989278727907932187698483684119432713756434919633918911083277832766011432091058317927275849165016934666603908683384408421024522163521689978406529543310482455391061962680035782738641669028881477922468397058222509495266560128726143179761994303912704594534280024932241540724038263154873842494458231537122791761998761901048930101250556705131620560559048484384701586277769598391978054951425867981741962690993657545131391326077574254023963149266759164400018712117485106377018544859725480636597290645685088102715426335176607690200876765212283624296021307400064853474048968622627170478121908200720826426394334602345881508587825825523451078583200500038714383759344223266377653501315782965767294940913582352345991824077014422269939621103125141426883918837459665345479276525590936654624434455128053601611369222876438215517846853836347098710287274749264866321348381615862225136371783941210041108672136477133147728682649080333230313253901321319922352497781085299673005441886196142053783847181078152846478680959040547202036108977393918825734777873015321044572780503061408114920889129151465012678977016010573666424875006337621152159915954520269150028552543738352462236652531662795969958978402110668283255729564625754570609648411714096500697282129727368827588630564581080782824776792157177883973042365252722903447284246870164054326354818195650912644455675123836301763787756634788307585908696475086207138271838739602417246526619067251230372394431002539164354645922909513136876448763878860797396035698576002852039035952862334440395441736244257821186276857231893327176547956929514246375647073958974123353270587068631536044793846040612875983011049086344275397621626364838922503826619183607301068134931945026881134499683552784444847228139987586246625349259270227340558847920199644067239098069442302508516739701142076367977689461911207790764881311291597412079260760875113667865451199127521873098583007878934157256962163088011309934910934555948345586269345406460279338552090677885565977696820290000044958022690682408521598306151056706385348848315594277977854977737691780464376925265806606143526143690252442575377483981262464842108625525789507004758204304616094358782975548565348694911453660705255784640883202768987521896379291983903170386634360595464456794625696023493122800256168780507184997667942556472055871995389426323434926098819044511860041638436472079416543173293223917236274660482334887535508267151546064533871779176479678224035531464035745173252512601472091038438335097507881755024238413330407212514933310469923345299582774384423321072129209550575881306158594886039443184200645168058820407250639742589001411921926242416460998804183177737257893474502830193153076766887490088397490422159589531443703784192652070822931169934998520361327545940708402923529826329663808411656232842434851856777875879724126354380963283310967511391247982206573187799222558936295520984833368784264196297534759267711622965996989013877115498355022165253838278428557464364868015239096401708659733047862201360364930340973673756697867162584513719711118845963450639251391789955293814565394151175991306862847314456361198493592481846899770469645173508534799971915568041027594842678318678877004825634966458568110715385295254152483300417351593578155546929919402832616617800441765931015076436295991441829232582284079867638019500545990842708977443987711183805327966689414684718824893438658929342435329762132407994985889811996482838573780033544281654184778008879538891205463259356014929473776143574074805172351961624836227327510554958920561268820863913993714762261837102884541555641218201520060551880912417142522632120237603229654795097206355100723701897562324768255868313642161178701895239955011882110890241209339045663914625554131346796178451422382704330441237605767309115097963978556012617017526480745648252750980070937092805155035775378898262559181012680698149297859732769264740705395146983810929178230018629937701108908623391804527302921622110209894941183733627835519216629313740542532510089193969984802183139568720262038356943844495076017739428255925586236375108488334537976499877820466564278132829447767214710541842731315707878878274814503544882116736324651944495575045726775152849749032796514603017805124398700609852421104701385212375447833797980393402976072874217214126511026954698605224355869021840127893150935611463882290064057087689573699769081725417048023163505273945871776892783175586928525751817274092928910989087790566535338471522605418058471247863373009899019142849350673996528005500699469575842104276919419795638737158353992225266870615507589443930771319872760491263106947648579183988347859381994090981630802174912124588696641504364329191356706461790566373982172034330538501108596593431333478451176938703996813295454252431750628209038275222669545397529919929957283789116783017381141406748804237087478551452186180369858379406841841082231939193749881053137647523155533787346751317200603588305913560123669193857913542076480967015984283158419734223976758231515676402631009011828172632199115478871618908953168041066176115981854913168023605779727451449434855426732953826474427593504398206559541882769715577396728992495909727777001229139109156641507223847931130746724662857100483757631561040072512678005546297686097599364649098681077787488923945459310780756810968652574660496872844771400796923255447210080292963905935882759886775143623804367271443236809539707034769241112993932934560886916359103490307578549614621277121683589803651103493744071998729622471880351078011756996219866243579520952383027604439821593239968456895956669017169278205409760500814494328854084373043779868663891189396938824236880541057238281954429143029325757198140912808709790888287383347819234206310533580347035934441227243108939292593285840236961580123865297796103094957903610195632496551283780441402126475198671460865889794611737607990542834826165123248047421459808484263369219730337558777556045007125635908156316314190680575328635915411299271567687747774135733983416415080536526433490717490060478000629982890524104167904261487696477113745536069977094186353450793294116587883709963352593368553244754458979548401583784190730378060064729516490589144870922963622091914683887063815932728617814141869810950331792559391888105734511422713856474157181617336222257806005272056198909572260774818902296427296592198754118884142255478887372263185500704479873475908369065769755704415985239542861429892370423805718867548022193329288252056996837239601852778764371784698410241145550362760580716491058479559550435320604920442386086812097931159324097096203704184957205482682175338621488459083231598505047434986199437371316599552412566786158424055936198618432152959905552125144026615435987276496679582787965112143454834867485773329657327333421008422077299401248645348607222243029135162616313786556889427092606304082525943464122010412149235978593977743252052766856007617516880673459832111429256216213767879527010398659113876728470659730032130713546939116804645247201647988988672061035290187976701556563547993761328090984231650619756781530243230318872914389132762797697482873848676990549965953341358049305424316662979207288551348638027974974497445823102405601312385176642177317065149068136147914490061225253904350051027796800460471133522309596252581448909505072816008113772465422929081158843395750265668374525758745061239578770034945499336924502964337411048602296819357115842711357320667138215445584201966651701787479365250578847581101231357709026083440229246016892775017146189186915246544608755118421292863190269336571670449267306318833397862114393639430826491649391928601946906485105270928003715508354222349639196561646633734481288240433922180320141767727294186117317973207607401307321049259390839242694916313593961115931189785658710123040895020378488852094695758627359110530747702626790555704401724237783986296415039162796107547675351769908439652458689432841511171090783203098693033352666106392595271490659496911974868856752274442490320201236646594329566014117053390754035780488687595204317797570219416173775851607670855772871909865196147479301881256985628788387382130791209207778535458797127391838159612369552792745781629845795485522434169030794371095401197343565942967343619074561214136340325487396742517334425964647707860770388114313838171986139954045501259195309317491897437910136601900119677538814386738149355251674817968056545845656592649393173555767761678404133602416279692968744465578074250557924853920788568243725037069845282748600141393056654838629262574448525164971866393049004096972136177698751885077647899510771654700870133406192329477682317440311496648303048519129121684025810983810272841256783825496729797300204641467075215483499684363988803654254706063331564882058690689350405838039269031497132078759143887683269819978196422233890542738510550394727528946759946227847188170394863248763925788138939154541625583289586388111717033265960768772921241579790343805653626852852417612269037208615833552821463456317475645485173341160858217562321207196088677299000982368905118262442184802988157725338967411553051389160226809127752142941895544326974050146088431609099516083061419566142522219129292094944119642456090259371851941052244313141183777176330945370765401771355669991763412063531606480979811326522993843201572311203187975882335260832570717527321794531883888506996921824629197632386834243873160526953394208620306221114245754528722170062201597565978349309411345489664875519573956949951240923562894900719991038658333069271799031194386749366619318786696075145208828827744529768802369524508055416915804723457365329965317798588065690367323331570735958591358054382395863597376495810166994600803424403032765872775091948486428660964839402722745704279660985515006707609507383623499748905883337414291132506688459629807227394832140225873031521925667186438163812386197085753869559781374436726561637487221653974036044308265756826805323968412086809879749446672179661493596400842806029319411578291753611279594264305172099364905496080921525962584079359678269960932701492202680721349393182984563721866265735901804225906324721067710091814511389904034886479399859144697819547391870255594328061054432562065406540657830219893811836536106879057026485903449013852652931613430841459625855058734662909328640669107214375978461230610083533584079909568096960848650166364537997200313222497401397438848641597566276237587872342527896295191310071228168267308721253143956249138990350820410459678597089790742314839407713825692953485044146217097320740692590815264917126453210352959761457380394552172104475235498492082997305460927925351022826532873088096434363676133389527841706637220558435809927599276726195684402196515564051488540954380573638304874044447479170511059719362223850769553593088390070557661433479760462188877368088892609414600753697028666277193044727745826756004948435675919842451597705571857739404254641398154933581474243433172756578656158031002321332933108111592500694371667888350960073650056188835843476683772171457062398918155094195023349689349016497629492227668248302884560271826835335187689140653275967222462100507039424561854233469367182073317932432179458529291324837911898888954168053757218075034827818660869971900132842844147323390417544295450094991521410353005504531538129547433166943121369404832631272472522138934343831780251961755157746927985731804822157025642815856865968322729425870179835014093542207522858716914238731537886980832349140041775697231947533448163753266154949918418749924201278063022193131682216243456882824758524345869934517261322487657791805299580206581429676254568126695819085508936833948519261080853201150281804139638781082539078979078163602601885718660704025510567977096236949038183008536821752592700708540362985548764682116517314110729013291386669442597984590390287052431702966492666211749543439805318875398365582697017325283559902464206462465926488031795265238893397523055251139824614927358949599285499382511684336450885256904679503589559350074401359239522933693896570456874109973841828642108106489770926424532064934449607601039471479649160083678611444436654404321198433836679133358223218737044748081241830738008703373857619188720886063753130833242275938905151186737182295519266883356359881196826037378676241245644235996309105797621269814429390623383980747083720234181503764130498996572511268555308174122762218751747188702139475881646274414815304818485973572352146120548461411886746960041859047166035060980041633838747244572382290277153828564592743741966649032284149236361290791760860530473660808178649980637972490283383405704916575422757677112234186032461730979918564832056444508188217802423828808200543007576048874615364422752518960557606064357768070954701230076279526145097286728490377858430192882778917882893416126327542337457244003962972959127381555900020031392640287923815966889397496790896919096130052707398063743957475203274613483403955649871332283982647574658137512318027106004933991058485356047864871677827512132806818364219227292489974062329573240612890195851189941451735245043268968073142411164027432407766118824252899873704977924677766539610674178387470601393881880040109459318961872939391648694262654918902242983449368731423334905750871285928567714617740618549110014788878547743045306802398982133186717056325883570227268736628264373135429438003009312476224256485992786789650557121454815095720873623001708836548999081954492646988969018373560951899552205231403036787690107121653706028849508147560131243858759685549999668210177108190120224962699671531529925920249946037023269026607214880698898868701369444170087198839439264602531419446410192377462596364700886061501507110104890087484509171034347034483148912935876913632094130277997560320076847562697137057383806357781379764298046673817697539365379986959148507066611462493914229623265842520900788514399808790018652215537979026098981225162440670594012798659736646803750661873417732658444477666153193404017872201543089450290113865357620385395187766165982574311697171668627096173688172603490692192735651998037195021631474856767274239105937535413987285784132130377048859843530073287222541156242713317652127420659643371747140476384181106147479060128952676817522410698687739303759183745868847852023813084158581943192230975736726939458203764310447923151593345387508598993853174770185251009573226440906333222778915105491628785334215964950174422472940429712627986822763711786542361777954100142647722383236635299838405427373676194400597973711834458314629141547463362163085186667417528249479929411480640421497302396571379430506237934448642057215883959284688727378838593605733962383128598540947063993345286478082714730914000432125484525313361382472641715871811796273985949694030802190114850335632567526957644383029772447299309387055787841893520596920550621455287646996758051826511572166649114011991801097612462370194886517398530668878188057916631901177015606535476087350024644728899511654255657647477789347707850564131995072017651428473736326995083011904392586149014817178747684312803167169412771869965365910781691977951148284127747664422014747202610837757518716505773570753522469825957995091526026752011470316242104787429829134657528392085644118183790125726997786289504064294824147087934768573646721164778350974832003501845467088960735271171154549961006589338976831166236230656801228247091161991486630737761213691919499298883115168027004570961247819808082107444508485237251719438555702829074117081631199117533974103220141416182641689697678860204367405644369446135383706851338334212113621436806894289832389735309548114019896978649144390277502710067349375619366089752628372222768779080899517652357751228669254687842742750388351096973488210472639354158603260783363059654958801832717558481751069185680223561914945545468052491985531564554671224917595783191415181675033235196945008466806484232438596620969815616900255540753684572259262548156230047168368540404860467788240048273585232677648296078022327046840150522920803319401230415090485649312942931726426790275443861784665149730649681504206431355687124708241722991969416099498577334426302587078531388146715172127279335587982939298985169373073321352069085540345295815116356738480323906783012671172205959150082028376726310117755182452833469503698213333839570713246623743594452609106581383976199202420438782821641141963476158240578735201096137319983489478955176190893661953025851628310722923801809129940215464979649945214016197564987344788545417112315374293503655680327399255697770832817571820774727011181334472439588806190795882907249209212858690768358761570952806445106092969893007369327517273918458339670629579305051222012655131538615745974878708961212117001359624853059589674906614369964599639075877927069272004609100759585076127836615590906653519821437866077572701289906240458025929705214592570176787775263312404717455968867305039559600501776412855207452183531170569275069884127993598403800092611981452613221887497994255993689493546520959214186169838241053829569544237703213361586786079432133414941734633953309990712162119992884735318583228132087952222540514846390635293006338343163869254391196221732641131124798979261719174813367182133634449608866842125108850385605254629910342354936829532590817253619702498400420830942935026713851197592162457727322242241080849007119491738066943060032281962440825923630716399154281868155621678058608074650100437939388993795688063940051881069406359692095103296223012385470776683153747827860297470619522400839188195932603857255265758787298247177716931209929270489280692050802489028216878015182568191853131402813289791294001355852872869426891336512277659573921156686172760723441689256532381189705037861368586479858975474461358619078484066152336563981321183065257523587938068213453910334727409757539857207609867884082338979740444858412342003268165476987566913804752931349427938164130961285744603466031352336581981598159256914354167088279571859365845153787114860456025470975485623759080440353636467061779655388330390104915906328745411370179585269247922453173398596627785405315015008641029704025237188675207115439669938382968504663690979566320726872739429792558424750815167647260051788830062821226100686635338265784044338966576638739512228127807150671353938893260664818794409225598065009029992763260744534610410159990322115910145427687930309883633158725718084275961083779906014449457282698774552196721356186717169034834843712663270436719362998275091364314608558676782059780663247438738508468971674406464134923027774228954920720086193850807436749765210468953622462030749966888417297974753741510937382672051340517828025623554481734209924939744990679066836154244927188590607953374189347437609206380953364459713863610721965976099188360858714535993301255244543444157910941633530596688125510337731565346582128078652769362759049739666344976271033181786469457921736050613516690889445739999723847238498792295780574236713731262375517226402118515000394254731802761394626872497733617530292481041338258185501126844803015337547796023343561196376539384533556631490577310986069826891530613853935203017216162308855472230723854154994045423608066738480483607209541146112550326057735644610606301842645341720953836625049358330011602996083090056284241906212500039244791345461201402508949415011055415658841157595451685818168092403441303679165279479717639173057709112168529227377970185116304806402130909450205853637265851422030577854449207717396607315648061339867072470760583722126629935296084131839432122615757465449518045341891451795679802149624167495686303019199637637935082135689122151822315429097283725214825468898566477957553388931283232842342515647856974890806546525495164597605851010116291782948035551679099235656264430614563430393729068314275714179466765186405755520040546218385194987760691260887845522704475127819763758059043816619460247282501640053278202905292638412633801406940456261213010013150553787734645700337514833620448421548290888526422325748219732283195006880911295105031104658362835440894108099234970313275464563833253818969126227384646741096215655002747232941524705147439348132212786080355837374931935980716626934648284235399748523921667854010176260523040234375411813508125192714055549658458215582127121985098340747949849781963818959861377676511344454196209574605965182162116358916046282357326334339714624756809143833512628345269210255388065729268695287503343054760795192015771987682203549030390504994485202845175214403871557617289362195564967088145724668707785871412761874498423460218333466817893486337439842112887237032450634926486969543542611624670845501624925164036809265412667494852625682129255854872280606047317483417586849168503725790375412698030981192707827608670787947004399425998170558696156433233174525366997627042519791193729065105560297456054151754430712307398358067759864095584300693535322717551172551224091384666767610823786765842580675585496383796569111324276916352055060652692134314598839967294840791416582520563339192745821868576237159340180188918396582029712450831097018220055748970039678534931281623210498874599874535193757942980542932869561728078179591346955408181250879871931722534367040950786207293282790630044133466349492551931926873288239764252549006545333986191779090009019228078639333725627832026983243299894376073811517556268838514210088973481980017819835262524421236532008300737960958000390973421535390264635441822195700360206219943029588660585639825470840116367396022852200007101774872098088522185644351031926038470606976390848875960167662777156553107880467888971110444956257610535056565720472768755602778749236360026928727452335743308918467760862914098460070401042596355983320101219623712266622023412979389647742932598056130052780030011891160330842563125927150303171892760351994697443390295371716592679349678872127333083151899575360442188368576321410953460226558548480953494818351669802769310884000720096707173322916366712978770245171738969871790039457790268088788854393973522731074602839793944738272035722276071736704421204848596025197031640019845140422246730843539581293924199338298490489851191349395556234342554932064275315756600179569188029728144055221251277119964305729836187621247276294787968062099399920620784455872278596750670360190323312820843723280317243264188525172671228257849677891416903889435657089616327181813056606651173543097016222807840323750978389149961310623008969641539527964541904820708862970325424584884057753131306720995659774362736033653008036588123787211686132362376945990868763110287199330152128984619068350781894873439455462350224691930818358844947348693680413248491866767675309379095855276516900268886913423724599391414220786384099472123781228370076490582459465936833699598004996680838305563597841413169221481082254874776920972555282539068733205755933873315611405952030176745006189094240081355737755843477916061664110571694621150277480926664950076045201287824936976466232798788695613685682732013992726243205268610865004361886815635095359045617689577922052912268541250094090838460548638693836547626735841951498728720992275162640905966898792285079877251477838384520401931767402245039854278822296246448878689349433739423789443049278038983352790492775295902936288560816474210951399905267263800551406106099784812291345741079480741616254988099414949413555959302623019150981961501962586101266488066260144099664895533818874498007099976298837678055223937244484212579862816493261554001409838681681246304055066480040386212914809595872681362603159107532026192974091976542550664498867064730448891888573306228202735488956791808634223701630998050781124521592001063034312583894557764587482122443247091748379535433092572776060267142578712024119086280474569412504157716898029056709361654459797391345388011418765404452805676219566615028616782099650698812108944525314719188844127407700234238770015395662019086512873889945053170736970499989928057859331269007411100259583958447372706978945291353656920508753267655139449506698000576580432366075796963484412020648120656580063476607180286295967610480843310473369094957114720345451064401822507941902266546568376607125902757300177833692867014542882414070293985695401516221591525244128836272780622057800809550761762719516953688394592278103704068547614758262270880960210421301549575687861222682595787482113170890585532736762285913795519498033255834989869122036704660848365841296309575773111967564258851250682845831954238528662601315483339605976198605544932076681316086802675053085945809325971565360089936369972953219851543645167205467577646847507935243123571495042907129506757699877055542455859875732083362836687528748309215693735543305416966338640141948417363124627705626685115123388655096184976527564538445119133017337570693748703202414117516634147311262613923133055276017859257156000657707297733137648800640258668674751523220220571576415087479941741215122679045719469430931394373830204127501722936952142037526171918625813187470321963176803928462956300752408097982972358027816009871323242653898585551329569075772960847458290808982532652780769590320607840351509613471445480225244438731768024068630483225120039551657234732668386819872669733398709889133865440581643455355570212878107028867523576329424616261406265628960121182268664340123204241634083031050415196717911680028417217767500546196019351263391503095963881351265654650236705967144548146689051590204015143329105172602006029751669541069833359202498560193610055029440763088795793251909469583210358848046596363652600036702470870156556872652810691591466141172755502312908581065985430587779149607075334030568462582710602937950464627130625347134562387179117222197705575586916876407320337462493167669732282702855331755106031582348585547120528906341692364140214699565471220615015713789144329102952211641417844250069285985380720560031873802176645406738311343678375037824789933319034730313882862536241808667122277478723369250213108426836277417621632532755644799500314830075338925667940989510786184085256880781077773481261304099317916220689481817396419689872718333496249751778971537581596536929035365406873456958012651289703708081743773456295928340741591350713408917974598349438276276188600919171072480164099775676273672922032349372914427578115177948062641435437714338254836094418518630039655227606617493850889989621447349224219592430256953510657071802115982373787665083176749669315964089840725214573515575911854832859564869974818725053646164507692165136341853403715786365214890061901540798247519090067160754860370721381460313707465644434021832172040034376784797898916456826998648703551365007818578708340014061647310507210997159129723783004072429859526297374742281309919547018438734182589798270295566987663553016641605847760371562059392302580146528886951413953556198627720117125541162709889797826430922900832663557517698215800616354694535624348557192540824616071904925942274333918171781413415378256851781257863510730001530233440011808869114562026119561268501930446864528140383302096013292396624279875301487645954671037908604189337149221071670282673471914440849731657943121323491107484873809782173844131758773338295815647095067413792097814706166859089219468256394108049745223192250423286609022025789236386540968451128833193619724613046039828875515883498570605667845451187632538468889720370910378568766275267502902229330287204389692144656827639522144828930732645169214668006449799009401726961632091220607604022154016727248144398016510045543746748429064942710121091637858124970853128268190853322952990102086110204738919258731964769791370911311514421322460015472503680141092684045539994410351384996739459825046750933149050701936705949118639851377628666686551421846862067759610759063069453605966911988653753468158696366345676541632780901485298774675742629775162377530399686717941962893168173590036860606792762007098198347661643137479028020537943818884098240986758529173494852674973474326273626133366473214999265616911720426232695689852497840070009379875123241735391089618707951441888913655342352564475435058288867358953039105034697833896526418212472706526261661547938683616470751797968238371340101626457868623700111808112609436671975674082840579356174646688271661790544745405481231662232714464554824906232588712103902750281562220121144471431612106973050115213379694560289319700337381199486495336209881375764681095372900536538612945690615485324189241428267943827760461449361172896226141326631792570011858690494309371345654380558291883015471022690285337506495045271509887766716333063168818508870306698372452364201488388540393707848892025079735516145055310140228620657550424005684453864678801118836781411052795663711573721140892154235197560198416122774757385131194349591742947913068530150712667671154287926221802100939793046234398226330911197539159119403321444307953620864856204134771767524685979786790873593320691627257332670540407713280542496270341707392919858583895077334339600226203902841135012079383841915604883277008704101548915515741450338986542472842175618620062541016374251703555441788348695147761276599509906894808762138270798310214330283299883196902479695384770584304912362166919020889367395945666722244418555322330357160145185256503209276889348576562919494629185054271027174730411056712460561414023427995875325760210744746355217271528577036851684225565232748715418760156120030559822300271325011409951931631943116151435885057060528387560511988202278114290354243962186975798812904682354984636170351050447393249810985831623017380715916021105081631075484976215491569951881582762598184349571435643252303598145283079258473679662948699069378429506687213697072720261321682195683173010348383584148714579210863693919606705880914973689976786488344210420298986295724400834748632555703521836767746171478170855668388373108302950692752943721819369294117477281536425126917815112715142832514710120425495743879703440701211583867797789893498303068898657887967870786799352051829165543356115914297775050027796149558890431881721212754428431887006055828931773900986174253223575870001209656240275881127388686992738279117990412822068136624060112605233143718106044514970466061020936267740228551908766352125587380493802781775696399923127490267237071493484685668779414819378315398871497464874734100031203462526491111766720686343505835176605059828810588734948820836476836509516803162134873597660894069432466841011812334989477179488862637707000153069603843615198909305009096974634796672067362204850778475427748567796182903777733245605539510590448628631555973531992594081679828607514665938295167610699878897439377825923207528690638918429612958719702472419246684765294739017410581143322164237633442665160489186327817025751820265408551708896902269175504182618033926651280938716700246178860168603193388291401311425360201891968145769811707539064068763117961354573050696184116696002999244779300251001472145744222333276700760537931659590005326262566341129413445135458456980382196972475403627323674096040045583187381850743349197050767915231013928351606874877139531539135862098423691556615828256148204328399312141052406374673369311620012745064398918975286936431248028883751235433919765533466093590185700770112851587882237032874414731610782035069585323636756406064087723234028989269802710542561504341129642369233421950262560962104603511084539009070351747611801302623688520586004920165359048194582553670200411356835120167297838422816817364708151701640302975750794199400182345300429472285633008979024001662778505735237869373686445900138882100314824291656934602301917746330218669811738727073623039971656012625931721113227523488127582640659306279571621602611899530891379306703106389854983120799156132696244017041941749326488694297846664597420414960144480028767059210311090309123564952812006192969011261458985874121968392959274351918339362930694193111454195870310762137249498155105514072969920908184097015572893765272685848981802690583132632054762289314896558978963266030067687163029178431700883678903085358898193093288261348160514927060202859597242210476682854299427296499871203902135705013795185397478921183629574007699949995624379038005496999651649968725401593208652251424417976129385236051134128240487999878633449115434584489002310344341658178231720973484950224977657607072608615325452287657781606067434223547273951747993872945500457788475745780717309477395541971951611092522213743763975279413057986331885083550300656391780233144481990372993131488774192383482693598206007928437704914242136434028302670170573320011761852890710783589612044893474726367824060868103975936966842769200590430106845953477042792600276281834724320364938294200071451895643257165781694684369867544529916269757788413804692110107088449982585049130891878439312554279874641196158339378601567323312658579203300344586633071560789527007015124922838880373550183939416590971222752457690911938911869200270733885020382311380594833387325456087557986132290818320314458133349113009294463725027609577243434599120891755045757167706869196419841414994361366324876796171473052559306193824734583443898067440929019918998686736102886662665357984416795813119192897878311607043250587633875051691899843076334232958219970449681990397024178019920995096551650475368474791915552628337230111707537645361423634360641649127204820304893338051952079030588991270458797729841992908796232064417687264651833435989322199164126858740762124564839530994953839316058161273607074744228702457342010913830356255753843476684547027959285209956182280204671342757155105280990406520401058133098988022148469083219336544529795469474652859211342043088320170671988608729000704010271410580911006614219949540721212729170669612931904426651665501779158273588776594307107461512084970920602541405307533059093491322248630909773092401747146768605714476748272524999370914753164005340887098910405335924416527191668431275580382409963606891081849352109868587031668316558337095729668006290869582092811425369124429948076434913255687521749710231130824372511980762846762162670695123635676842724599794140961110110390238897140102463070883439727255873102053589470223236658016403180556517773817006151791060146309665580156253889184784094560952378345905617158883351698459187535397299988119523910564020624999881164254378081274955771548766020244056412734754708492900091436311633198217075412561114979684889004272415945701035315229151649026725950876316308100657276537034248840362708714335966195702190379910396614564287717036812884398494939110975436283444232671096180395759426802549697920821523834006453235507900147208600945827015548017869473053536824588940902314610432005453004630471167283546482820275617173641422657486085816829288663110685433205632185162083001154539700600207616239740828620751007565997081947101070296814118671599812484354607964475359169253292822686949455644422172770511719327091259917036444680468911338861092712334608476209872338573618169948260693494122246695183274015114662771975120216251779956378537264918451102846077476866413724701359639543068813998165365679145223098142645992838878667302709273040383091889152535406017144948498868683228786353956200777409898169054683309027708918673906667686261257805700777528475396743272062008483288471792468718250823896438831235844668343580661340534914784312207617254664359207763531568641764400962798279691785234954048253713575019955263764834124982083541808089174630193164080051196954794217460181879600660523001446865276843242004668596438276569091359196927177700105261910099397155866204322652166742796888971752742332151022176913589099013752953422304981087345773103778511735045869097170581965627684648734932831435989442076239873721718958953682119212240550249814317314203445480131193787141409173935918730093584950497111546509450696449612225561705018566765150795507871138481634515550484039756043803925923006004129594784247525042763526407156801676417946995629130457945696210089752232513396101971601384415439881935889142988324061370046332234586911094787361766188961750282805521149009133931406225353870848073436189256799615635108639163932912607419034936043961444915591649316117344220716820469703342923994368841407777197717524311777566520638254939949004214095266645860630722798310445642848080432970149855798536408628221330642612115728749138212173602084815683702797266960277288875044627683999496484055227037856788463204968145423003751997039405119853150954612729961183912245617088850186718835937996351731550529868305532193800942651297380511444421471304712998300748967191700819586864487692811094444347229895251202538459924393263299433332375732337843054783914581754245395760750856903008327377187231800619357739879533469394282568216550641679143890688931726425874643081747731729869035626856708134070941948074321048396447115675562986657956029138954156584220557070920300600798897972005071426091474596652497169768754117974315847983065524446925874123060587929879110817843180848251908721435552528281855488140410272312835605410708868275534001458487985417765475367027810575097049020580847398951540426486589965953822983537410885510545962718947151367304575232009580349288477952231176852791030147060358566808121322303666923822107476888586346933897539854523216667048842659646530658010933036791500404440688864915466732012234094947072552574385566213043974926607445368518572231983582506819569529140821997942876139264005003539551016553652798156622917214570330388243967815973771793981482547978582181326118289555433028798051456462886404743753795565414292893327826309837736066322473174368837867404868758785247443399919161910871185805160860296441489493787519199772458707725526732520377519369053638786896025406252154309328543656132669835721482686241148804972568323259087465013108116539946659454708786257451527950565935334149212273711279638260262371023918787291825532662396350376148987341196004062541381394842004463599586360724506566109596059963275470322696769003540444792091013766875945758382355521642754794285238465221620436140359787321856207066043145448761959552888507563470465367173008335738765091939242431018394140711703964372815950548190477872168878797906442689008362704771352041016796832394961280322890845011531588794694400920165611320857974489889730631435742139238215659395920877596781330110496469762210140835422546106577466084347466072976023157670766886403650562116982225098073765538746549726234186134149455947931846023172727537482607864162745032698712099866235836587352867643542457702999915733963592983851827298278482053253414257002342325715706122621190624277695766077824625631754163681477258494109006289330549333414320105984382205420204574597717506744031065703473759915039559962505029059576766161347561758332092544314725925124182773162513980141606743177635231156899892880900486747892196363081948750661128989106700747055465272737346986652990994236304878325937069722262534717671538559106649549066900772522790821919081236950904974578027172895232076061504642943771555604137335114894598903992445147437386342012041431361894462653007094271694702292400645652078799210070954175202127935769209087057036824084157246438348765555766172302800638323680982410783757312680449556651038844892844386481330681598743183848987085980353358899909079322020525941536181571020045393929537382962277378807463827679154858487623633334063934085619600060745104752804619477308326140594352112003578705277672275990169649098240592713022764339563282541064626504377884629647162446116450454336742033013486987238682410711536720061715614183154993836688196498596986707532145786699456658087972853145043562147196939287406245941404253243823665303523016096766429619148575130844176003548416747427283682568766188531926940830122202643658284149613291124431501534295121373549122150099946711188884610194730334309730905862061805171931866514653954855392016543996114164182409357779354191739954502476751339848095556476116968658226214705295253670012370735236429706018674084778352032735685902605020995583410257618466090082358826485172577641304701626712105047406310531464197450449998678274966738148332246063636515534001333720761720952280797359880663740165004564810097989406915876799886458025129519133007471704285495666736837381741798909635140696525078823169361645237559175136611360302281343823072075155766955414868386834546187254910693900838218525356566217231063352432602008864212456081787574576022298659060141748018432175801019859624798552964455923947580755480509835860797923228885190680125198059632946985586001751012665859537603852479803038172251930860906702600698961127079387552219041061077005178322695940789325095485616697389853195286070230219895300999975316989502587708722464821557184102657463039378727364380927968820547952335955339608401479589577779982685484900113301403627636825077332487340905044185986260884722374886160212086094092751621612497671450430814063461970258519987177402675567632721717499401849240905629607774936789039332395603040717596195879349573895061428026798541815446753750498556741986083285582478631596483269936657416128704957962750593012233175523456936040482207502200489009939175589713889961784779055916505459539557904392587278487491186215042655403207748331608813326998253635652543124616275071330260892956766540106692759062977410003962176067353247975647981342969595086734081095640332696040626192790581021352716897254854632982948970247525042008846626939500053251553106118163856584608475018565975142356047887573639952936653028772607968932125040668411336389660429499311807311754041276366740095677618416494680808482610731212583607986119006357093152626097335166310724699220717259513950965428792655665467355641281351896193548765179682551923359741780405339006480646935038277267716276085000221853664395703295948942887848815848211873191492984457425561815932659214542345152893040865621767098085919152526046281959727527438326535664870483654722484848419955957539880455251746514190727586215647267615780942891255437170126647270486926174497090389046376220229208442806540870795958273024252230610204481958396053548658719006187223472418501962281428675393192252657742956014850345069297594944572794683981764578756062191259131076107372746985009678700363660638430738782712794688882549679482682758638176429466257590098565083278373105858964390957542054440316426451469079131631597889664280556757138620803244082131537158920510194328103987486705156148203664579045115220523706848496464584443979493029236681527947540547199137528305576534308049887105348457204471214624592449013266474226292191629554129761236865380015037966078025573595104418669212560917015942356102273785910085423008737431063034219560816137130606455783897575282266863324091703844961289943358637474837040243896164506503418683354638997473351465025205562678554490154003708407660131726596575095935994682551997814226539200839762853934417341246044565890733392171368947356724132611255849633774765523167771734981213824437132477092162502086078988302377811033567563514875012974101632292736149905988583512747526737816689711187138706259068275199773239910147099680736778613889394916905689228001373598156427374948396178715210896410105227936511462095389805062048551993829308097166831113666875715589364387620791720519161086394350386908063262989230124382154564080916310659762908886037102253446261461530963372175601610390669923539855725227869600972095514254419828099994097718357383873016640330079658599431816127404155077727711178120870872408216528711845975217756522595639409414361375947731768148454174932397359463433610388612888696445541616895627715027779016455916009602653990984800106390583309598517218203627963459242422406242657665222874889456785233174579042727445193367240805901690851478558367170525525901334423663991402621598088412754400903220409956362310916737076064476494799775036444220361979538515240728446862332895347397482099781196930737468793014660391201418382817094195960342156049178023363230468260514497962438770083797360102190369440068488863934752474824430042812864496907724583442044449908212485975271208443035404650548737092117124808147560444233269445296602667716033069914698784018938811405295637679781161496083953652559048913027807553020779864741412318162968048748250108482618512622472276514844105944445798904498990158812464696081598400148375622316894206433920833703060961591775661409190289536492612844018272387255850281956700354735409579307953697591017079242153402083553383586215642576496158460345898638769308572586394300377814490723225729052059328710201769858982825309514325174981402106099403994971518632379105463654971216419767629726340721900826489205935323699996723139697876803623983453425292703392799410921535670844607609677494214212299142192152860047405927460411334875457579251507156428971548035817858018626155326211715246206173441518093586520639215343827225713695787414462905560319927438291244158363105565777837828543314914855663032018865310083071591782399265994927340284037958668863095686023078443655657740821325012252827458456091001527793227228970783296926148186042935142717108269155269793390579570569057623913745220413265574875935330066753377008840057014523426093557583667499613588066791273285611993879806291996634143290933929719997756194272851314738374254714516137907508825038685296341534251803677194037835226804287159918211196457807217633060788778776443975697753827676176636733821244533321994931361187478118444834484603696398894558340810305188869427107003517771250551401619895117148167384022327055486551424290551808656524775190727484597188064538265297519450058748547828866380284781797469075400235165017881221910423178269127594001710451010710372693650117813476051892634514977760110060117757726003376139824331921605593061626167396750598305450146165055346475897006573861609865446801431366866591399736032929232644277850493023761118961182106114440395397850062600058672118627266410882010019149219388359836347801824197021738093632083369010185527751641358078109520114032713005538466612346509104388129375926299440098203413473645174874529358208766577369923375092266773130131935309493022617737189568873097157273101526926250538311160125221234511741818436712485728814262967517992799343792482736290198875231179164897328927106342212147717444709066046936501870467462867049351588558315173114075892071991389091351842003399202501511319673492680121524798161015128922721493071064818300309902889843495917366339135895944754989102270270840512663721616672999659273274514045522072832039533729327092836982608356401234259856203047665941893341336997957838503981390909717345528241911283332022404183018904138543092407469831915406681701368512619385385367422908654076042855835980413421943967210962272389633779587520680038564521260595727173589214886565537185816908489402627557916748479010179379311862575706083793537954987656090890040410746322296059284474629359168350483792678199406163585502726767467544098462926969212575999430753458791456086209834581798994473023484252157616973379828811157222467822190503137672127586314267396880142446031704207826735511320364111745994259539336514244813149416302483892886406635540715215902516289198810885595284823265496018899211228549068515018985782171151437748732293751440806874848971488802143332027449771260069805786710129048331367613885688859827794020264428320161601382301914167892405800817471498622195927429683785577202338317122297657929872917936632629830612615990531917052317100698741914304690596823833566715789496649726296536325866139603519494657697107169601796087198676201822285383313606035579987076231391963372226954923433287126624074971618544605576568260261832135521407952656601453603760415687003733864180549268444272018070043285727871543264918005345701582767244493038172834770495561854087842061117013344163019745948685376710990334669396434282184870079519060652569579686384335037568869231718580474105180952777808240156870953375899575590303417744485476551309148524822342881601207302983338345888690981997363645749182306877302255412199091720725719758675647430145459978540287040930053670077940227807749516285037285148758608946224636450036260961113227469988410608559809820568337864646782285174131962772781780530846212784577349792947652192483644623308407079215822010429447375394430810647139857106728399977795552664546406083876817253570969897210547074160888072394462444870574580935541745461924404080135678790437066602006059578830420932449870304674026741228750886862162075930558144330206864613610899200085598135153470280872013552784781368887340048805035558777864013758405684664608175379145898531682797838825825638658214430787303736424647118801036642228369236183983177889997185755396068619424858938579783009141288499872380659763230039116405575213399763075076892991929386632350839222465650569594110943518163666480458518723051014684231634887172644131684596701728551567956441626373061283715275418850542326815889702652616303565417978268754114597328176807673307189228964733315345760062069248280449375663511231790918424756906652111393248665860796031596171505087708167228637119913688691837519800326499525387500513339666138974148958721677856814687669901291662214701071257746861511500094912907106973247554358497835742457826187570002412397303746710611607463378924886123166232746908117097167422450126561936150145757280967739986689910053990225808820565686935027462015635918872943970472387094567093962844683727143675646169274836330948455563905648579343012411649025525974331606557541223733627931085073032675138264736023018210923948794866873123723525147747050158057694148701504217867399772908254860191056954183510433644662733270209128713083252322812694324749237507005399542376254433789201282027695646678931941306611748732437301246466746411648113629956033216005291460525314782110432940585399416255292992058580457078585957849234094748866588883987934403347950799697887607614744250751388033014037998326861543793140433818819737715379826799209562214425129265239828926180427755817418902628393218531057237642423321876212147046752152427259040205209013043721026101788357048581229094767014875855073517739625308603473351010874423473157058152222545389657843330546330607501385166780666584219991305496197811217886568042536229373682078790607925569841763780551821275714355583105192722293181777512818631817396214313752378369925174517761010202857585956003532070428746167039708693631142546093462885386408194612979639722867868852092165674669183756045712081136142578527655204715494949351484664663331919447676628285463085083013993185802226418855810180200487098211391139713263932478650338855254092526545193870914490123031902511379224881133650473293150870042436907002570819584224567637134901673377878606797785765113517759400414150081195977976139678666650068314951757633952629546382787840805797383588355070896426236157724669584693204161870577459087802172041995373821697941599186459174356374111096854977721498465914957184520120465594631443837574308889654370370773837807571053281810285343806801733048524175493209021548395909141554352691101292163736555245571925005420187132405354966069601234997895218367041735451052756865285872326358655647676095463013311184562140621172299012487784440171314172069550352294361674720502234126273816727957513986243248827190773171627924405178313880017135770997664802648027896506041058562004116026977913749753365388895152436532424128386216492359286275603894313878918266380920636683301892080747396483602153496826076152041062377442367846160299510871526924573857294285553864834810656598665108041417370283961671176099422808748840924576083292592378578766885704375047021313612816375056167139837927147842889419350339775237982261281346510629364104178409999561992273010161745670628091768309499740522958424939376322724542999798999791849271547019341002399298760663816567911946320547912833217341633905999750788391971661018188468027346347996756649241674864844377977703652834251221803448002489201390803963199616326156651666486820665161206717061053905929719635471629443793019981794593685556909513382876672357458537467575048440355089707557793684942956445528700446253716081984619780805906868672290134318567609268144471356545757191703621715921497927089376238423427400159577453755871619801894814759622099445838436043805678775253869259955592652935883018847063457410678944705641268165453546595312878134847414655855591048455621865477221438255557193864628062197759951566436406065856955684034590579380318188530614406789959845807051632286567617459050138127046588437892513837527878966249122829281665609364452291299793156317224096861199881379328173117389198580185211723894604242377212551905741658648018987354095819447886843507628683242699178656090633920612817656509256960425955513190264441241030380035767448900623413208483182985283395438809488753772072315233469142566585494063036732184105030289860657387844415324750328855342845647761608298104215631326518753737067382996165142112535255631738592512231451209213294830156191975018068224891183571487955732506174023391419004943449598047475221002144152063458881933478373017093691422087719776611955880154316865005131819201641936555664312144101673467564983802641790947430189540812247060252228814879536018044637709010508150761716799006123771872022168556536879146120885137309153745180633335120725819958547513231455357147275742704401535957307594196724013111589330561363321475468892552500346307259201876816686570204366327647444656307137010649141553349690371247197328028195460765737909037760919492535413385549979555057923104683740971819899858484446004276901335478309706844769206507908147494921417165928083977836835309705063383528171334326004758578720088644914892749715557083745582117692100474416931161535180696246557622864550184604996306848017429101692149835910994175880089143372565979421434212566350441388369360006425757790303910008074632349242161681397771859590328382688497943324579458062181222015023100270562089324727066889122180037294797842656032417482443849290507308863356832562590513017304707176107996979140463855821489067279261429146357860452664148628446084605169228189782764772641726508234904986064163024449049180950773379975605288848926137065750105297964619043905980475660046725534662824212951688473648848099599438438405874489709249777536520410044619340105209580083933297742880686701003868490637922029989401316179258394884112162669582147452205818686201843697475576879661277958475837769956768331926745800402500313060970131337687786161245249438365413856624172250558639398297610199973249112853890369271792288755609645073164264437398092282211625402261834930977552666682908748740994005287525567360761542784250697789644592287458733876071758805039491657872576644597615848172994239737504375341709603574685330745600289380381239379874052232834141548450661373704371889480267482165863400386422164034361362010876723924992426470066826028593312942776760701180030505009054062032468723838475767733594490648634288417928012306687506429144402810768198567200997962398121242591790908065059193796787267528921601268269386569681820066935463755574569702944516574293685260789628457079322060442296019756599591573111216365981124373235496813878718597433142323670833637154891692458605147584169519450474600354000128146015066427720102293145613091361928998868561900744761267294054764765804365653708313908285891646627997378568747350637540086365564841794340140035654446789905233687926587634480529981714163232372519054205881249519585553914341920782256820931596817279855146836301164217283626994905258256753191112790815796067781696855859221656616021976065084107108091123030713604569348290620544708551530170152676271422618144039527456620927088722034542036738712228916771971889201631273531407065208344352425481058328731596337650793529454535564264266249998565012957607187865897177730627618351556011665737599614450212726778276250147670916497581781880550241139676017756302623569998139873424994725991570382355023159615026156519694983348130378372206152156696534370291627676487973214986795726408123000499517203412014265518246238595304111085125082089540618860277177130394455638640684394727365437637332254931322193163569251655519371955841638598644082703580673208342278974428976768985967312576485267976626985487464903601811673238296450480691801028779303308258742187300924839425687418474187366917911193341258275793705603222629871778956015302202268217174832460814683844152645604462126373119628062065471046491575287864733448952898868900074439421137183766114968631150747568314958617751156617302588575296144369127284581149571484215463246004226760867435567611824835540356750020420505172436259761673750187074432473083908111398919171810904524681590107635422660963232382479500286487293902232931562416416219759358934247058388085446542236526644804561702208693664409351880541915979543815308340840400775012082140696370611815266707447064823389515297802358888612996153456592628193464714550279841508208464872079565905128793040723125336496459688923940416484337596166994170843234230965665646635496507048197613971021274739519299603145291477253437861752144123659092170284536451131316977504222842831429969209670376249486785591065033414123362558686423420767153790931132986394512688569831712526145816301490694235843011752174834460855696700132568557418215732806560044123235077739278460983878504652375836912072583610528181553306179309228821641708933694784467318148094321176628751806621045021409282452614007667066742660856338279137030169774611806698119033795361424091687135875954903089516528667205889138115984000431652754553697515421811766979237063883617293440105786737769253084224149966619101775395736280314830305497077658701462822503439641276666987245780864559115260290398619740799923966500513769479006946649662985438112378700185481484465605174252874162192980326480841973468159400291873725829267490458585530296252873411496172204877395219481478400787674867930528112535566773765946102074817015426878721084558250765260767926944990304053369775933182132776441075818475829709475930000876077661619261280570860487096509665997501173712015724920917818350573147992995506268261322912216277984620111638194237806280177758067583784748838718145663176165438840836949199842025406315189983829632851966103926521452230552831323571743882875361016826545257000154602250255419861087477867337107720041206376156836724279537017442198795922519225310818702188489518223896586486824619941624825724671711364049194749703259986843887538930073280610943647921649920768783197477040325491954577381630978172082550120410625381517793913840473407714983237930611816683570369810196947401178977635878878607239669665933714554101058495538083435358408152628222028839678188481965971775809455251132236047958510393095039069992221911331247755687633390269300444662198701931819487533215758911206460341673851932346030315292159169875134617396327937137628789639935772102106359655537582216125165310025077826113351208702201719262559858378924034318890938141719888982678125434953733285262212604324068353050082140183039072027015322513347295121082998863246560489522416845751721660458917918831950565197339083299688462261215769913845873214850442373587603892957600719354858027093388750504325627802139735374037842278849951989202426448954004995288912657482125502795381951146287132388688290672390549975888929696986788268840868653301178017071510204967047349392098652454967402172588257126709742731960904327762047801925660235059994866473835683794991060445304746375438255957840050919796297889864075602390712562694099886197999433290334953745466484846930587938005284035371841950967229744972150102203319616342784494904868664380124519375159196166568078480091397865404045612098999471825418616739663992560444056237442527368800547323503257140984045949614956657536780456851688341439042070109817189143214045334213163558276838958108987886710409975563812316920662671375836471308375922967567735475705766859470233463168443791036770740303750320793563807481306380506502057304429081949957282046199522376868147454424119943517263791056273487765569427583683441865455270541569375172796031651925727121865610559845503849538039259501811384647695578871372308748676610669032788663122300879235713182304820065539512741063799848576933537313516723827455270985744649194624023185139415903928209106563002128938086879343011411199913537301152400051328575926577097654504655684288416748377777055506378334061181129290218628760040765868530156380026530286191687533012964631844708932684432730071661196645614869149794587125071972039432530667941072955534367703608987076648353158483644921974958367406285600696062247191156731293193529555673947590806516346328870910476239085168113896340653213731375328950104173022233516559879946392030908016504605951847594936725571271080603987039706398792607577154152000568014490204468079313434191651958993297282086004857354165861555858597162695263444128557883444342848537891617905254169660662858010327194548064881503737660951501021274758043416026848021046056447585582129445043508507675187898510259119576218537712296125234320978706257390531967323642718418525902848803438110190110562387400377757282926057871917497501971474611356908891035800513466314706013072537752335146041726402822711785136938040802133519690116798871408899170626949127374882637485979872899434140284794637006849452160581538948432219079572709270340602542018479722593156207033135422567505818706927205516498964602907132136535701382227426818215525869557518205925474044445843402968163104662530904150522423692074316989549289652431008896126682782657799417115596786697003093200306808334850016909542683792352701259260415453997834033029850840336589072540255582383048355997980900222176033830242045084468068299004333483373550343490953796515930806582461372535873798287303087236983334507330784003283633883413686373155023148310706227801893644190117975168119395251649824158377283090226729911665607988327314309700456078850329766519794209347012450585200112756610294343964329399247239877236912006798352770705600563539590181370504799785350159136111949674558561677543218633889810566608988645496582678838727183921279773305976956897986475382517159246047704069328688475206608888421594151008619307721881031109375050463660843159949282866307708439016188169815120298781622765612662503872849438362794152285653982132028197878590644367171180483023359139590675068982914083852542987712056700914022977864022952488579024779078673730880934820793314416104692650338378073290122736954786459522049460654748174859887284725325848057008764972310838924485958666075863844492068503467358288654653785665456068071059099386271738711475348758778294794352508772628813918090393895222309415965537291237129286384315332462001425058474942380179771537699004117577793076356705886997302681846838331060610092452045776165768211218019978133487518423544296987543961106260444678696606372279390832550871317351274726192388942450082695585771901658700328527161291266787996341270211344893741133034657682273211329838269151609117885043722839410386925880931280652256932708052214516556445234493121646963418785896749536667443136449464609510265012171307534420838003369010297152613848651086844075141969286872599322063528740235875043608239419496255298035340763327432757937608436058624986227127095035377021733521262830432760273143717433438806725429416961133043363853051811122659356395176061411761343891427258308429172148755261969938107093889972818871591005610573983105143482000628834285109408919265248827109431199257676677727484364223339443472611645654484109465866494379190159774661812064722533784239527205767879816460014182564337070495881257476998501732562853278841963250207866457007416336320360307042438820150539502191528007384180941517073373025980668830187733874779960750415848813138827054756748391452307162624453615743869957250082813105557476729519413035394742269047467575754829367277085180552904809126734543038685722200475618639182585947853403435296275208049766653029238876367080722469985991023081659033534043149948551892852521249262249716865513278994121592780291043651344253260249495108724881381123620859530081577356898872922353342092239636158153046435253409742748093905077946353889924740536429297684992799086016644577428253131581105492442931218675938054213954335125115186714607686772114067715439103353161446034528675381791716126586547677150375285895223050792284609033655706406367147965110335053150612787461283829288983777845382634718563120613798145509105781597370178557480934146530921058425335524528683235503849764078577787191363207851732185063198865736701170892901144792790707662775337910040807997794272067673668015159324676662235368931862304549101595220337434761958861355698053055585709894371457171336669231344533499780276464127499966163719546865624830614872381059177494072507278229474792794889537282089316060711107293111478044611563336157489355565018700349978166588548253748910667009928281935942967664294486156189617231088693702913728152829997608277452787799584021890887360367862022912859384955479480427212241190008773110682138217432705936009097877631061285810493873406640500266624775480086772852098863287209858345745886240059643401421011641416507790911649021222334829050399468480485967953960672402829310597954197185027960594670634654021363184088700089531630253250274935030998229482176851771158329015639191119332650064496344996837501360202774586988838283456882359689420156690570619708528506946805784779834525336254559010542126982938081599427690523052810807769318811070659302693948233865241242369940798408419685762983093372472157752967338319006250798876205291353417120372723929340429966962296737904225395473854249476691032271197499132114178162410003063584260897764414022329150028712080773553202138775602354580271015069963585084752756877776498039289683852192764279864864482889054281705726830525482198368608720454785895155319373591568018015907630233045725327311665845079750147502671750571445208977404319826449915241034644210670577488437245152802552446904971048108805663901319835947091068517659706913451858881766052192152305497178570140228241470705336011567596810161978523353866532691690057798934981624072805002435613382870618583360553181044440973990892562855657672305152648774579717816815432225938268250336069384326010047865421897125995633874944337949702139917942566416086697696880191457245886558276274209540956487458807173259177765554196503720609548269634285020112014698145779918688750107846126158403160885797512004013094349280919043444423228472918318507489158668776556742496255732714650750317115215100210784962571863827362548875403123209392122059798551931967214546069154128606070129871716873814875194025661481471415621659849372574595062255020330807442394765996198941403282803113396630979355653958138532974229492111894761789202860378709871495244926261689749399572844041405750284271148931118329979382424734749127980525173026042355229816300603772519093111265127764403833905348123397155743125634265819527340199446002498273548879301702958021978056188613932376137805311164001999245282317156181208711177860038058912248117039088811818303409555680291832516326119725967975145893936718998303475622699403811891961006871853418439145701835032220376396147107527144280228273399039128255064623709574503812456868114786462315018444556286204369280886290821209762474444001631248520445127804452646674173360798442024823521883886804059762051612394209330990177281997774658429487378311906584318243677720126634378484709255713209605174266979169233884655483444135567163761668612608010985813342975821618554109852079698839141581225558515012552966053552268714901619165765930031767231731868386074327252325082349454893739193293607158234794315272357441442658936889076254079998564924826917904700490336644148877010326267637188151578527405032524454915042893299775273017165139462735739977297753054259626853397296370291502555046618159311004218234783245309900604438413085076980475829681052960660536591256657842791837598526734769434386426119503046905991639582095103523666749152679953897119659195249993346484511278911603130436340786920607660915264366411985815393486168311650574991763668011540369838477769581953262686788361317885514939233624277959699034175921164483185645714747318601977841554915677002529894458836901713550602158641817221719704389388050334326105542048988097593833209087388029207829869225344081576472757275611431356740009206196884804713470193122696480906327748554321862575248430457734187392187041164970382137310814801757085461009267278852475291762347579115778721908978910083680736795561049254887471847058412431555777469229201673475911519484648846573493513782470427465691876035231397735642139491797858333377636360239827978934938816972641398439716731576542271610958279741482126552289605334799231157565140106515124651430946599278589211449658614827519333673318082765828351640175150345195991408424083892911623189089158738591072922731032387958947696775450045465255158587284912064559573899602511553068059636280367641207062678041026358851898305991120737167323501583144754940012379111370082104504090706912038132611517282795958521935027813845342065970220996416473868579098198498748331785155264722066568882343214447113304135026525668977419945723392958824529764837857996910938992101867776618153215662086308810550992654988051792570666745604026830320579410125009640533190949000853617371727360958448474137126302610992796089404847888434709405912118057317840419708268031876609243767928814316849245145993907087700100460315303656696305740613689548441951265975955015022614980833710596973868945643855766279063497825458889066132067899398399223404388915702607202930092377192287258346137676579680703861928298399728295325536210329854135319802003722774208353832956263227470218925818877958530548033098704282419379723796942065061974462241588521110777656071958509035510268980248618450776138096663816239806588444776996626315424802495115961646307683367404401913303378227038454689172134549179419932382618629534366721360457763517280734673919809640077152046773801903508900177565909179054762153831817440651537524693059751396648079082848469218197460813474706649930746729756567544715864344680878745006834173158446868893197277847431507571805114190596325604976237069964682256428579435247152458326823840035605975351871347506464776868456249921738942899232807421131348390374956759270946981823462677462448470897943983543176563692347465004328065282064393787074331628242462338117291327917586518733835163191645257430040488214294829367011090639952805995046418446369652017672943044103247932696086609228969138137432949546473963397722136289651065639621966138452599843802608447547883566613868321859031389315004454709428245165030934001270794295571919062934498299736688791158683230276139596641200469116966630282252094433628660451915173002675173928184430447241655536989554345127636807767493728159091119869009353836638353966014235970380935643055601448917557443515660212074167864777723022904164595517065053624682802473095465479285663307355484243042501437495990911645614240769782323560669671596112576476283950996850835128965131540096405056173465430769704602999045606212780082957514017908594526497298632500237614432827518129909597797186043084141965770065832521016258633137440276175005353392630242923955721169904710672231322404945949999759296106642165935236675083592470170642937249668501620224287783609869368116361216095190165480823858390715726104678211556896672181543646445187154253302190575353381479433344248452467636436102175211169980539609864401678860727701591246011769152261866134889891749751185315374263588906130084723079497657089016585646993559624017739341481138606698207139313914970556631838577354532634693676293162920017559162819583645263071016845089352130038336421921575136666231368011731417480094726905237519027806282567009053853647409130093582980193920825443740896132713385560865106294494317230394960081169568319921926173678390951242764037288860221075542275180236307538709772472527991772068423913699096144254332436773679905319994562944731265363320624162325988417404619890091260890310287116010331256981946468926440570674298074188469559385296109576189408388133219494630280134415839914110257554393251186952340115895542093621612312533322638691615747519498042190280611704967826107539121018819641382176070650183943048461770645692972119593047228072140701667282510461717132915720612797343187434739139211786319533240323690112308258068437556622816970119959490989265869241265946536324553758758315814067357598349381231171200243692203526545004008316128551266940961064778360109710811646245747139764249924930870354780194742051050526552929503810022893071978488975140362774831638265439671917697294139838611942572600346199937361551718249798715671619866603872599557061953627358766348815067381261583627331741713535809713222334253543693848208772304165760841985900885907641500950397766354044448730819277643411195772769576153614261483042248880114671274421743242443526561168309104147878783700719927482354111417706873760014461015482271025973970312687736308662759422845944210138729948309966524477615711617072327555991459964463327187131617679294212538158421322086539827318499132073828707081952137542006961741850063499495476482624093201110818674805953429150264918417595414172309332422710912749851771108049273855536855713958714402396003665393661971497319582808166874404744259026401232766902239881876096014499103853142858291699154943710270989529106032305933166275084296103775207791059628134221593254912175215020447507516611388314974106408728367191300344551565696210916505455154836651392607635462118021822660938483498720921387924412480467998972111781678964777159549798118446418479736319451583750883133844294762234638844768293220070308400094980853808771876256679994436725202618428136220535010468734484705100522363642807715198448798764240625595275425024563959134225428351022430951513684655101626274234645466785382569366958944227850707120488110986871781405715690419289887516690777174524255573268979031216953752294113961960455706665586534915243426920089344959086633810305812601218452626842103520447868218049033924409270009541417102955029193094312440150751018915744490814681671455398039431176387830688273427224364503815094259008648685364795194111339026483587356210630685912322999562769236624339493033475491473958646668661674107580737305736350768180590008927205475940100196651619535476190259841551104524266915780859952090313444139298264132108089369498172304124674896588010716789568968919965666722098043902852284510037403040194060669823391222954292143146805017083248334939603816554585602067781493398099549922794363244124957376828819409625519773341418848728039997956689598715610340658772078880849298863898498445904458055101931431003609361728307433114238731614317266890768540437607321772004477981373832763915671923108305186811471616880348799676701102521710490087603367626173171551485470629802748398569964825185912252323362996616692833201225662827278090933134800755198810500683368825085551897218400114767891709958280136500552065611239582449089079211440030819245550542284603239982924570376645162196003023501179581904089616606101886991441284206309471029453353545843201102476102145751908938034537642848335668280926814388746630829536294003442825136673971392056000791884908957126737209455248194517270547485771500619178653716440753115613712647874562912370940838494816531449854894524966025795370556892073852840428921571123465528083272778472923106729773029250367237003448338419714298245129677107592643757859494741423424847426524102006995490400603180938529556993339683980414723050823539276482847303947407312016250407375037044864814872901869327956735359244041561005115654308682478013144836944996940516078334356944841519439680216458651616993893495288769804641498285598427670405661399941227204464319381040747597437257107331476130092691494380757609215889711755766198131630524667870443329994869566052039647692021118025119644043263828442579367196915224030415992869672809867380818240107854821920939694875781967843074753908963041912640360051248803157230180907785735925243609192674677084465085901521996607842893204409321803166963456313309576749121870875876929132728945082081053781739837810380101257105516860399049164631118955323767159833364484381177787451467516087642000779479763151116183811425047677199544020734298384964946115941062065332035977772114069239410572774563696588867592030278928499122855881412893774727336763263210990197366811487569097247041320712376899579574352059442384040117024615676022280058788362104771716081758688037529126528083252271772339948321147961902920196383056412644244511291371807412608269949047641673121617232771366713469152704167837783738828387445624637084536558882883271361130117453189732084849336864749112021988426799136679754733802005226412960774955476314999885777964506151222587624564328777104813078765085895474785189325461722302514508228445720433674637134346795545852659158165186873745768602869038720055734078711353449517186938219112195111786710392891663411226164323246066906155907911042689643404594932846988641313615225214223077706127491677476181988200236476753180588037609830268627774983839583214414649682137149987106404838844535968205557041150538729155729052486805483616527372789479346502818394670957029779070935552412214874753501324761205130409438683740475976512291448620052645903477216052797794433780559736488050193546024829880976779767334183447264103717027654388628832435776465887230258942828255703032426108327653265683886262253676061867216762670271482611816658054145142312534926267995498789985607845065227205105241267318437627483376859145361886853043257301675085210188395682243413206684115353031833922160159031128830324170847493972363940018310609643684893296682810867234468990435460575862810322017368911508874811181165893282572368911411325670881309903061881869089356640119784606933345562786167242727982995403534281014372320750286332110393713383260913767959846191060047643668342490662828908244920246220154673351613904165547064925398424784503005144672158842566335226154478048274088536780299157823023066521519204032032501041655474401523357264577187696535442016734414230305762279299054167104545114696836052577511302052244935521690554575433335991759892841331721351306969529821622696707559257244427491155632572801428698056638918709030894569773997838311870135153188109510492673004718700654796674697231916502299573944103730086942998850889285815787041069605388717450940553005847602905075699552960011613976234207698776902186736427583166192205019213786076525430164745793789263382107635126490417595351692499942874897077380326342247738786921672833433737868168842619342925264669903353189330761459734749420686688812784287171644484300470036354716109157607690064172615937571660862152571093412671423241007026660581679806146632525357288515909599141126624868276965719129813533557021560411401828278695367663176660248467771185119356169253819939872763203074020768075912329579516935631324777512550037091424672969554160827665888367446455571450821493882337891134845264188401360361066709709053639918833499965342943442877594453470580258817108886611339957640872923730376791135809605477856207024129041512259980071841185616119000053403383840434295854416349004423601847519972833152974795448548503097502665447411131959771274077744770394652989261699938172068339788877666592619678499079292940109743638690426506440655842598360062937980329337596867381162174926775421286735266320415352784826979740577651436487562721894869889538932397324162908657985483205055975866072392837374090721313257400775423852126698753663266271832325806192379589728887656967251587265637703382841415846131390350342275033741860682164086676211186946896335181669491026707504314095217885406410913846674706176537977274295298537783134625447236069567814715346881663123263986152969142678904036444752645120150098688721837513916961910683233567191183457947942179661753743212902752890670179437311228089724643430201982425853857646374194839381971102808319679726445944093089539574054378701605158604724136523790649138173423213310713936158642909798295370808493841839770354917245710943864810198217478785770060537312733410792615620160911308409546800231589065569996275161827542684663336057419597645811481736604887241724527370866707458316585744758265592218675472515356531637018103087117358278045805754932097900324006429271680491374098825931053354232729566179412510789595083176667261343832257145800807986277748324305692186690623217835223786781213788447928940532951026132276299774990140207755995020128830170392655367500662685610364619708227076330764745787119798323952294319707798277941487458555878099405759578619110454048148368761821015628149739813360219121908725649006282303119080375783432252260146285585924824274612509868419274003534525947923309470680923089296587825593241194712730174753090743189930411690725080446847212202856327023124810101811180265290039607671735998856861540039505384113094184472619769627958775132765243651412798709599519735081795342607264342554147997949866758282461764147633131035398979794586479256569428517448767042043550315753557682244841002446265949252845279105798854851332574504808906488211632263574177813797466698664748958803606835628268318254773400007304601605970477919069653565246640583301089514964292456437980628118732109829118639073219667963415760031177812761641444862027240091004399601227228884310016610954232411100605567656140645952946615620214173671662114262792485371667961879326591785811244795639667127322467448857900261505332457658923163656737619957007723674845732032239832538934880472631093464344317963826342618563706875418837017136207350431185730841314511559136219243417714954159711257288903971104906006476289351225316959731671947446875494895869224594819354274312730086697866516432517451096317250685650052449735285494857077334368510824861831075628152954105693655212175054520415245546367757376166884467821520000897474551428104634807225256759404407670485856093522346770822631191589947220481057215307564952691171915084946782364330350487012983552521482050646973048601081489857291328475585014123441753972428680519934380298926081769590699762619154413323471034579960642168540001094440742906653417520649430840018617765526932681809661713039757577639019457680982496072831997400289591273000604835957143586412212793580319939938944896100199007119840945759842885236396195006844333012692877278058288629716973181697511036576070986198120355025150753390382810752972501820408528785626619422184203491800037361175627769091224439171161178430489669004825125088295514178611710231524178780757108957785245377884091758563967743334926579350638620134821075431947151164378348371340442083440489681742286021361903938693755983556855684719018959274288061175552542185038996731002939337369666457900900859959639614819349425065519009105124447508681334524175055752027341437044968043446476433513317637341233002148971422300135586377051670163399227839190547293306732611963963989837469764876176163559789121702875432002458500925983895190126745725992537437155910579458950604506418086877001885762231803535049509521460714831736871846841452006562909634139979300293901635795568162510837678827194330286033804087349326402787251249093511228800314400268648872610048844098688998557066627580837912278304302477776126064451501103701114117527743971354173594432464565236107411939570506269606683414229647153457289216904487190834806035864960182075562441530727665064942549782603007734654747304585076500139284236571660112391177066955810146781288458215734171321318114230761056997332761747283483939161451424953661099816303046200772794610586324306007423062674634847615411561271617309796504255947766737831258099119554825877293110624534960401561067679418175881706155621638932484173061235233718178146756886052197940518298349861806433918457514610329007432271512766442393688945300700276222359332988192397217174835329460492725652714852041706389226145911107693193110977297974826900752463727465051865920432632279093075760804588551177202509836921078486942346940527016444001133033296983844857736881812256532922418927287116065327818216649683521344207119850222562227478187596987989352532295350228418113016227764385233240837312983542675960323991036549650823468728154522377029839955532070565918093938695662569193903050348143925763263495373180962008385118382409963904554367233393992564096247121328342886597807520945436203695524180159384867234090024767856103108290347877223227037770235262897251820984429355327473550730338563550403436045343984732241961343371082127043088941601653434683481954477677091842972175559364343005109390846510130983147277060222329657748297794535585390373387016803626209218023563429547078344033911930353581287215096338154743933279052985186417582597392395468510353771623680095155057703175776075209419874077056045930967861440963075347221307844383774500952986447782162344327236162738906427031408976608227144078814624370056608906325081106752535895610492273805736845909881939930857225360009071152087899917167510863185081304719264215415992214843260549472461153299667028016289519715087108863605822973543598159185422478577713785523544315958766080710614881542195029090451056651262799281820594739542294067414142980038792069382968515573244968534428062462429087307256198326522226282387771876447315827947972407051552802651669374939163582930485928108550919657419652822567753850118226210832341554172829750340455854514860839632848075606138514866054127471185716075618186686291313153883264605341222689287834829079830808621961760345655387748762804109105572764406652851252656671141392173099434033338059510118448239530888248472800467789772095958340172561618583410666859197943219750124941016139494002493153445082625491455441761620758546748123428252461528731675917753942909326461931109380607421271970996325326442142496959109517826653469918127616346165107321184775280394525998082510715075047494697622141700259860668553929407419970226967186084007142052960868270808216726778584828336654592908342242758036393196329951035458796371350805358488479068707999253674454490580091335407752280979106293349690610201235073199428922306378732385593563191086920193375951203095474647730622517360892740972385485493323055107757121803531913342036341094355552744404368830320063694770458309262344106907664400965634091769149307993423612325926991298861727902479522655865697052795530231387514073664534520563202733306237011800700066837080757489639439202089181205158106773087823478051255711470637279849766051074392503516692978384640358850408686890112277875897785971699350336220757737485264973204600132433674475347223589398071902566395606416287273666578489788775517691366160002464795782313378806255663234949323166539638039254673716057345348753771471779974230733133780704213024559158764689481845301408640872461472602487437467975029193477223002246722146519005775989329135285166872115971882834820004250461675626245214332277922256434765382174909308480861522567298729145768650470082084341434715776064310927466759322661681144178011253352737556171209592219118732191250656979143836655040928542777528498197975615578282332393880103462133882240478227007234471199389085208326935626327726319429031229743760593302257027025156956912020463447964043767698387064044585002722226674498180825230771579184655388515983518080628425226428515217681433864761134983007022151563559426690499893860680398153345457624134841426828653314179760488549328842214380153743315447869670170204555702397481757302347708076042319899050278350336662871799374923431817840849225825421263511146197141736886658730379657269145613093010598599340015547927681712082532873088577551840636846492507687717128224176340205483439651310019742485920752264195383939208747564525104511635229194270750775348781254286899706233517606348153953480436464359722527500682249546252492937004775734202206324802655021403793793024930058773077193765629106631337537249884899908577524647540707233966330945171820173894456479748255071903520088621328332809815098398609132168892498531766311423789306433799884268116830275523105280537741297307233042964981116355258049039626383304810011668703579083722447469529335926487796595977458482327957069245457552980762768071463910579444921915373512230796562605836260543864926816293108113209767236565526482581036964549497107487470600852753247389982839270455695296120633903407048695826259424118400038688457548168632156304924136548537511999573577188759403183675453576218138545762926511853767554000209495782394682130930618482489263419604116270318138082494126050028277964903842239709887601500415289314739961794215205807139775172201270837001903714904617294867460592373216225604785482709340828641260581904863756033515476399448696998756671496450417561221528129117004881035904820791601358390048602246562379550295537327017339522804504440553810043673134179032510556055071178676070688717647443272768116025954247193168269027057566939721539942012187071778709962693146783514924429350124644246953226415276280232618264090394283930308969367602106770824724362947106082091445579732512883913029991477174664801180533715941180724239181306552108974994128753845816410294289005004936785825130131375240157407417316453160990049938876612705471893786722705916878359928978753346929663392911079348965201801036820859966684738303872277439289261032094148075022128724795305704826533456063785604392432397943933473681605603454806391385334804676818044993916117070203202255150963729300086879052985241928502534938957849784434111327240936710269028396667718699042389272601506955937725443266296900584824686756070565260041283866143486491298570247065621585707586954110230311944799745635824145669061515533929556772779180854515397589452047760099359444432256323986065197159022214013062803310300371958185183659976601292178600574342162761833254996079432579787728738454895470830943585691043790084246545260867421303996420570568128565844653890284867903503999020001967934731314502577495276376765232608764934840597927793274323050487602913141435117036939545172590248419436588812347681297084514529554453361372444798390441813751175022032517418452126650527727180665355007853985377860713510697591609983691160945735203073816173764555432301170124967897117907406078333456612692631530096281694103303518425145917902592998836500832437191166827648162247429113898994993967171035904400310079773519595730238548719207912599866356728361609947343413307079730488642736588951266918056131780707993377490003196262948638860593432745741937015423991354722589065902494282214220700725001372993922027901420315780555950419027842935342128501540778140716894252047685274650864701647241532811752695063737657714481720171860137223968599746027555227741937116849771155120441647729332132388624810919128453243912584008244686073681142362509460718116519576723488308790826368853215496167326424947391208136523840776262061186794122135761401069812110674337848561581944493925845173116363673196309603402757617658985383118955641044125928614913092722557907410120241572530650327654453612714269672462841532820570167878698196473471500212926191777443549460609044498439246542029734780865131197185049412939442361517215193217039096398623243828480084721735466664298754866706298292364544215762024687590363657527537182185394566138517891940522884447438493539312309136834424760335697679686268946462937810577374367978392048262348903749237558664771935946044897574643174262662155172177786216044558514995178702954418835649672594434021144209204859372106388799452457943649560182141636166711091764000986879830117804752512298768635242889488670370665103711658000250691569064564681907738882674020265788540129148129766781783952927768091433607733091354657230220007162332351656222743982891081014097333184912763345324594070412660443543043841966459786790708287630715722591345691873753044262733988463944233565531667623924825909377686016951807659340239684861935021879208617969308155131246577243056173724426673069204548272235422934287825346167594107006230083814303511499056407911967708137345353794516733434020534080713964670858071696639000189265142805398700195393621869749019409016964333917393830079768248039797133806192519398220558616323029231430871774991283941485929387273309465645035020886635087107292252635069272018330303022434795210081708185778583403825734173766375538818208233702725488120372083171300407628421439618149760861073254796389840187879277756292474200530897795108619475783974263660589851825552205932889925513811221537718323961203644812523081027248245856229592911062037124385248089251089805053298368637259533572910826144512232990280987645184186897112224088617560326311963040896791495241002650723235574277643253690899487716394300443612219758871277879438850325318794825613667685299077476383699979009576877262707486793090371501651663591526875937720494894841384676792826913348060563170300841860178381262948162336857733631351254759591177578787847199653475593425016398293825962178271477011575484253778979544746100449757854296679567183952035887221284255129302924396198317540467242930008791121504766589219758440673387399732259188494693587665309879629936939892156798619325123719216217458885331331063002013531445225232721073264255908717046557646277178443077731718094125982508077852424294904536969067030283405156285544575131527119838151797708632244645115441057592064672884556273184242633775703827283078300974752752563105740461489315116189928101152051823187533620645369138417614826567327573457669908441489781686951956445371369851334963377703747015635737360153363581840326697954405666355385719252347020244441798296430415322392111449041692865137725319739053604537175829093745753356753402322752314361137326759116454078000738345889113835078786608321259917004691123293323932667071042651613436227580624850419257638472304026716678753706064466368753273892494999734992310378569926489994873810886116746830460030949245639868602487883867803118790438998611326697408541738110346843817582884653541805793906649682620107016213569566312061373051951558353088901555632649735954409828731101934556294136089119341077534608948129959265273732095062186797464780537131550811981589649072491712292918411949863440610842585746829718854955431409837087209747178075580549724631431012195729615190183423237769491844782496692097074139525751678142012751772481423625179081769027035007203959802131600879597568326172844270521620010489798808086624058408465988624746987069126159768021005611588508847786551990292199305216682425878349640311361966953846656644722891971463630871763544842539606686365852768766217006245216910750015098041910505421255848698262698010247219571031463010363199299177793235900427397179238011853119830616381961925804150230330652296087123916921790123433213908071278441158722587297474639779472729290329246355581373674194343751345300387815619416136700314125472843634884235938971212371793829008093904034615802586842607858065132636142550534499466676051455789217178387851771361469344876132071090473482352551878554019254998065295395517676369938676728815230823569780288911507471397183856026937301277716014459487812452060486266275215011378565087741873148506104883462607822012995356511078463371947537794298900455540634955873724589975341102284377682177682032239241302674179553065223018777898635668352150369280085804862246702351857020687355240078339517499928443802427848316002044005338847761361048028198952484005281370927650007495653486745465363491462920158964571136696252903217277758547277583406890610705812350511721721730284859122193147315086266793511052873643548796938679522371318831110907095932817872558280196320849884430214100871711119543406627814585928657743430336785969515459144712762516371306474241824655120419405128603485931487331990959239681125454633233391460864466870587614804999639999748517247820984865481055394454513682216419147650848367127849590609203480771529332783245390864753388860243467755307371492845224811116750361335337367742203873043236686302722962330953100573255089690866947218753217792587760918019111140673070636174793382416604271290103451436894942394692764356462519180946782461332861350104933121518924017511173264649308239765862771968978640026270766876019687473525213553626306677325226048852321975732722519355875529283270490161173677195348577081049408061609021361146316321549219664873785771897948626016790421390772551615719847018542000221109307250076947434928034578844516126247523394319865839143616322201402937376285911753299194828538272889929086339244763585800904231747790389546005474232867772237149541857445656244133802665284686779773072196620158362302282784397954745414787098304533774328802097350992422001345578856184757623650985436191464532800286376235131478427555479126026525396994813011367239258579251643299133569084919666650632049846645428734651274586795459466766827594074541266147101970051398600079542503622614775059081861349581569919671566050004162876849918691733187510359796343589440151229186279646922290310231052524577179701242458724795294225770900521475263371869759352543582703083292862851548452209164061327831179769981472546845417678378958032222695286504443329603361234109946449121854007108753854584274977162877768143372133666077827684752445243181884630406050904844761743571388666066553907008718285511952863961081057267449846815703219861608212787943303657587283122075756092323246775800723816335410301720625788653013460897201601364397253219388237698872920874012940963770663258184673355675362795867159664159490971466664691756194085640787223885798463004821848986659691140648274173660619593888771338900165486177947259861336146867671695132972288729377129451971803594808835379196223108007571853689465269291917614158397890587962235956994642238031466340332808541544691845712799911034086530318620422890027625448376998700806827298450585447054109841993624005789672748100313409858747211832121085243905365460597182889995034421232478039728241096386187482414936474198682190515320279541143473958799959081513543607761075800097878497845281495807862369279334541187353554296674150097984989708099458677692940421895076144906985216564299889561659884745697938377823748977050632144058565062333629450547686593880397745627683921479804657549229715483364044509481177523068404087293288484293619481309377708051844153491404302664463547668107207460925905965073933945773025873525925785116075332472176268089482031641645482056126257962001218022142608618356389719848581229244956627287744983915801202729036814354955529362787335534133649341868159307515306642575190924822946102619620464054523581919968257051189113899645692117332170227235276811823102869925671333038565043731805484946995655056316368370489045020328610693660588189368279233198941704214232126528140760090663108423492292180160336175846746345857815034130665097398276082045169793555792780124080969033146405898266581376120691574247880951725877658414239315301575283036308194580107465077439384862430675480753288127964198484002543999930725481218918791442497459868722749081303747240053767447102140003196309563843324248323723627720638184754918773669342638676788512903009274517887410275591375371453291773876444495948357773776763567644498157532921492496039291681800046618212446470063847484457404778356118587229150369931264798148608084468157447972020472027762683123355938760808745321459843917848773306911148105834158915509528105796249229999450961241495721288248253066450426947051951768083318452922199326332372700861364902946526616024347606021426471250785310336230971660593369620930927002628444632475167330524607807629780830067656390088883927269897799358305590529435600574073315106389000498241051382664867994798832218733097786072577514788399498882585716202814065864504837836415483395433239531413696892761703811796922806499823772196194357718401107446286384675433939584202931544873973457024067687921492616310191186868170858420679997591045893195811376232774620659134321526976174707692473643461994882855665167388278526667316774123264285373634459168256965522246593145052158713113420715693850161623836719396598364591471552938646499186906529316090714094393136880645294682358882482905808944586725862407095474307844374033326664444153027794738529305793777100492857545839623984558532093649663013639157547103890047627852376325769716185621672177713594710522342896640908053214128334671262748636058045032521944604451115072051605516413975795124369836678505184929347184157136792897795180923059239088675705398093338721080783938408256886830683539373364309810307044764999583376314665824247998492897973825618180856406623321612906925263847770577143704686589614079409528329419006526426463920567378921597694366152312492538716883367982013497689943328288769779287492024415966127640044950785933414559758562721652635590073385445746390810838294695985569101966022479619433864999803785357658924670855468944401513395126416214650416950902215783812978938651358699441982545514847963287775058241490250991918117455178458981923346703236207045316396051160356555476527604547060075698662003404018460727012942095524206187483559945936685090605892611332298406404585433025656622696795959369313637133855273616810013953943266314776131376925268239691825387854754934400956833263398004909877005648404976592580189525948058217314061906813195337602624822829491676879681488841290251207701620584998794332793421901232044520595763533467717327579774955939393320233005245823630766644721108959379000405046804448807326161608315218179742800894650175028354890422370604515042435666755145955347799989699693592435188678038350774785477667726204333295161893462807457358033581205404543571302147488412765920954430557957250347426266502714615031325713443031817011296427496376460007698172918259417329636800673151401111792318337466245964877175881383789294414612734054986230183428341978266799215459083798805917561399958014574625725570318286544608577954720226784560399545380762853022579086470666461840653786251731308423751121158579659364422250643113308210413003973711248383115284587355307873845532309274295284300487747744942171292416336039345157445603654674224259258203560179810118445079105777534377921078009356758018878506102163479536210367146396755670384846578159862174185310121538764882878934974300685984678530387827449969216970211964543190435803950212299699813291849243942023940180470356632885268271397947206572563501352209600747670797734228188127279220655984373608725995414747288091136088549871835079991356627036718865659602958844008141097811571576687100549122714240374877490139967262173581408125190336095375709918406313756720468658606166729915826551923900204233913600101661750496611525147952774576848172264904652329777732453020927674522623880758417896756451241196857461137618748414462417976445271520041044202004296107048987576622017936690785949824025536277423644796222287267349226528962601956207502980921388101199922827637247968214896447195978963208084196689091373093995146165837725838595260318610592790303829493401798591931690230455293732013593692350841995236100626789519879319041027208757468256666645516742477004729228965847501776262451530251093220718608268778859032729646916238903820322777112743581546587289815046071447000705539684445799033632043602201857797485569970144922492001119253821488881819045659452256717273397397415720202864275968440946110472413548135941203777826619659840274895933516576538581112671802160702104321584037968112094994276984571653928193626715315539407195313438293445136264094958678101680864398117532719707302494855878941955745536500258039820151218388629658086108630344000626387851166269149376926519823659374502990694629760849521990204059259702169147541328350616009626915241447786689522157210067812859418462426155120046676307754757195453251578851103660019324935831115810771320380441850984867737114014172178829671436034799394521578926847907055663757575011738275595335189869805808785410712387041131748719758667767985893168704012843225550230372615382273629976596444887761290112819718199021113269206227814693623976000653651410964885738942822621248048169808091788483275002154675778747806044939878277443478040078700333897028709222459194778602835689773410883102973572711742077533668607914200157724778357889545946516917138130873962076712826529641095393103955141117704664904443584677564814337614427000863629721073806803951677143780102311081830468017888678140767873624957542090378654656796778564141084867524673319004150352918220401203841978499529548709938299824366635752930340661356820476342082209237550127055806526161937625904312254828632211880944070741651669117202471427968750831015858256543963581259767665990911488351961216684896909042685994747186812718177076101476831240963509162532728504629374225531322523599437957105871277306055981517457593877100841483140769466036553427808658065518991181589660161631363953599818133164608084532480514101133490216364008328125703870352877074220205023091300545583972421684388929464030845417665862471920128202369778221944693370064252309001391715337403400576098440944451846735247708966765046501035070299128491443498602147491509235569621802092418072502586307906258595377830763633123008999839027631082721744566657763779117484014600745717424428950899632014184233894757931452759082061712703965348790426725803754793338408312984253918936234796771840159999947208094474969988307361135579835905149703345872244002431292060988851634653782766095994800459655721569637435166671732878679240471111520989040396005129687423519755001625466867208050609012438977146408846527771140901731179233407009141688148688939956229257213278365561000181141143233208066025911954622617895655536929176001156732830706459356193380155469947432118051695025839457893365877855975242690786062531745519222347698473776370198257726529356307903527660341433583693620425936748272428620464214539786168585168154852656728687710631021995866093342616245044299381397087380681003673362504251971467531125435673382480462846366173851413582721040760947060678199182749102802047672197134347235939095166134872108090293347468487431950091365137618384190856666291168431522854147302130902143500089295319985830895245652393883520217401104179138470336635867258471809378416682395943042253737838278320738286491603231862318615415179603344637230140272483376425628480309709404860039432825977529515859036462068189354783992986364317005727168088431096561728525296341988401700468998508544154751337640679766896378901946528202112341194803489119323784152626527623015796886897926907334771117316875680374361462242680281701785675473003163722070584577960883378095511086042544093055575927196142509772196774340859555042000235825579048030628710701387338830054227063231549665677961580353259549246869428305479750567927498575146634020046263220763655231182478101734482747917427641669074626732235519517323720015868994915586466209362931295870612480573184743026521463401971079974031886577352328557285729516075604476244212907130503900709128186575299578053838092805675174227581618798348674531926679143416376757066720884318254454147472702451703256942646207772524736240033901486155089386916599043556237069079598765356511094808477132997483961049844219830326808725591582256655414525085612820362983452762525575814468036918042376813933047611521084093319941477886395752498602366929992000452577244658834267833829563312967123508313557064154968923335613740870751661982171804112654537653062380103373753650508463037999070338824337894265195909421925786444435939830124802885150055242987966225451460445305837610989170147323261768040631613706354782776871779380570003637332125324664744715369761385205040785619608451892332097879488968302221533899729087808717445765890333648667533195307870463512951720660193258458723956547534406449417326432643000491745999189024232234734030373891468413109541284610775318148389416898747512039259153338055035310309102858211155120200550686890258706854096780780783528141195892434777115967653648720724553854822036210253594277264611880063584709069406462748530808039989595702110635784164566874956326771591317728585106132695099654519502738547586848952988899701880404900330001117715840560856839135284932138421271915171213152789582546567671294749688729893166936704206213707998103006779991388700474295425177422246478318647550521784301490259922559614874606928544527564831507630870123884498372939607214487748470186351293255991740161973219138708854183506827243101264163744026099287616112778922870740857164130015302823350722424729768812431749764808422863445808257126302319044449051794943790203286209624985849448079257395395079744652127878004029987092153988117795906813241180545578660117459078169196401584198564022119899521767788395828157473028701796090413395702107482770410585775781074005505022407149795523969512945179903237070952184296207140573516808792095961481458771435520870899870291707029125048407843711584040049827985529121929521430431165086001381294464036314979908781268210381109399269940641804381054531967029894407883592025489899762253642643267456263565217849416044140088793996162089610038923190580011887688077175416073157282173857574028703941301921883649972673762369553506396647308677326795420768730719822922715825943977784482947057871819559523062377024397000121778158644556561802532658443654950198892562598130244948369380883655845206489174588135279524054583889143326551367385861381090910696520136702826983707699110989474804960689395708980051725817586004671968050421619843918291004467354101197093883821773862419064546783538391025779264116107418357975672527864718063106338279332041917888973810676711613778496008979586429609569470438871548809361326376292839618275704726520168097069673281457535231833520006794964810941724483530593851194305999678934087658855569677335932371283856410235795404508914746579154602143316129301447132026412473428690573661735080887251262190915386717923952980985175955012968959399674652045214536543683696874992195379027400161623175143966825861097688935272200344392988980004547668600192125847233475115516240051915855295684051967233371851536935632786318974526295122653283802099514852917585394620348469262507834927929452629718248128410295346059872152543382384989569964892317519653692060699184270149967334290350462850327889148830193064689920330904178519896340196639386531374580699677069413200602915314486814790615076697541974711790978934995925949427179921637306835264361549496296047562679193310326048511405457638952410848743682769650886060152491143693938189779459058034774665168059650040836076171412448792034375569335306244225435082485822661218025050341722239535872812010869317041507231808646195651357206574326602760995475995078338969262593410393976463304237049829564417501184437853798732096658771845666170425594386188122479275123663412785847598466714003950886818802696923238552916847584789071832448181906779208695396442311100936872357362112661763830055121908448411060122190314416287418182348401700745218358369920236314863038691833220309465252429246631721874458461471182469828330525699059047800331724971400057063062221864768183195609250113428590504838902995426190778323003514666368384172944314036175255128303117516622372156847577478783072220595396145529841876449931235153558965613525309638114426718344541102520572826731194253022957101661425480947512139371016659581584599493888097559399130274925069192421730467383994188261618852901541569323196341623286287897455485787336107308796227440351948448789749647786410248862632721459923891931465256948143265048170148120778472576839746717920029084219975136365740764150425982129175636520385481458102877540344369579389352324279438121045335379623267243369850820141735221019564144927276520506783677409024035634718681925511642868412190205640060583118834716351880199846602645476290184167679387856381751072707990172136760866896208399745637439023607229090841388380043349641438431444058205612049013803961043464613219060986336010930382197154793997189764957041042109343874730645652078540235364081756716137044496481617743265510734634697019598121026450898952279537081247032973125387948579277363363617919177328855303250344067452002797209949952789994702788367750362204744296597159244075962074123913103747230228224657402388683321642454920864145217010104792461136153433326282865333265710245560842876946900282915592618443396673996169291588858923941821248498659640628284749375680168364692257232452104984285711249340598718560949560460503492938826627686121011935186069282402476042320313196967586131023617363606081103251100884454411627769877195261477252033392413798234832508307429837210190207702048979736964486179211842172732906767506121034048795299382406911681592682203053055030058959611817452785769979621640810584360706711864914084077334405208136065583320908456373202128018941297564733479982763914376228577539473897587464081259549252722707994350982680628035891922348191314569661883520974419962803517203354908089664366413791769343192499915206075801889618805245328269536986708400742191050980904008564908246770676544568338111788367119308924449070495488588645793267851810182110862267493229014843543900457656724642037821137659940386736422693068205319573305293128824448204817853177123871732181055679066385226351063570386108995719301907409218901231662128367068884734451255585784071545844277662050418946462029772552278435730150577834723137096449309657762931793346948206283210261997610025206822896738328309687426894747749310658215435844265938241916601005270076942596675641958133162802243183488644689810401429486427874641159581289936777331879469787070109743787981669629928548248201212621606060586146636968362910266489584855071042758078026954820907796574568727062226998762661123140512894430440049237989681412604052118869651810606422115577721707456434632234018791215855500484601738600055353264296073154920449251475826435531107163044324380291294387024940578392191591631829290825205932977540495307760127916321939746413485265425688070345387062057791465977384821272941005671166230494342675652229838873179674112960912200511209709506230798438248451878548937848301295720341609920204529132719454823779293485647848335987626873400128078294617587534840022109697182922866387873088367770762695597636799240015879241354040479654623407655720178084923635106745116083991912365138547900546236521595421036481032823777530820860739736376907992836324182738027984170338298859516173726162678658532752343113833751951742687901429387484069045236212933162917247825018692717163489818945323652598557074779297815700346829344110641825404892215701910172527403593902351550453225336143755763347944358301971278995970313576942311800058894532956458494440492435776340354208394802654868305161457712893345309978539146003506956819058608448186749104042841107234789543867578145913772499273162071068820118104545500612594918266979661212603483738934894325514167547993185712029746632265623682744172274198707291075729767522655779895932520570156091386046767400323875653878137397131203399867981712843589518318637680028363407485263750967090199162891240910000096144803928874626346419346987912931720431406302641810389722381481052969785677288134623987308580950308772577583160694281239414803510599520198354284980084682344448798318610505716302755108793887004518833899679366148701052544111656579090268161864236035300390511444739507969526730939886068242869601899048440479842062616334604627345932594688914569974840230382240575808079725799863950624983329948833439651010415474286725557003408676229808920474495211455285267834531707209398290143197463506029707557509389796975504674981083190599776810907257714558725270793288017037921321347768914929944245373704696711340825606761013259637023792477055770393022236525680271802187279103150840228784758750209363339076039258246811193463040126940662799704164446234077832816118570654502389887182363791039529809512896583217144292778618501564621075546056491384806733695626215472084281431801451879596057932376401148273128944736062018120944912480385081351543767318860367762195046985649794831100345312323784311906810240554291507712316478787999830734087184328778878184434920731942340859984215247197806860426059802159650420614232868980914650613311042827580243929762615274135455164346007350429243483626979712316147833231121045369856848683743100859004425501145820261447222250543643296785305291887782518617348279413602482878339976098814880625915778666983537342237092536032077628518214526004654261803004604075566445113904032542248438409410428992541648481185473186227481141638312990206873444302254396917058385970993717704743891921025350204305488991900819592407890976557614211656066693695117808963296574558406141087944472028917973122245840556585452410877651361330774796564531139301138290674690683936311939461600849699332267818703342901135382552253623379678494616084266069466754556179743705112242680000538568472156722333705334801815997054951347864489427451831214239233635584306965595323184698147104148475163299402845456508636570595043421569390298572204743153872676774170832430803494146836609629008816571205866699839735931280686984257838308485353484992139897754037394475395076925218038427722059267770818399329914619365363818673823114993353624336072377355416531967687053993747351249628754593359658356138988967903539571642457944802230545473665098328347365575082690918174748063471973387072412240514244073050902277921551395845301159150850115108412288112256704404754777315647081100188347312279605220713029020234146963083537810097681761785612465681159299262919515389841450855205089994901639372105725463469976214465256330055132317970557941385227472352541367423720273960023130954551406612594614392656999670095264205709806671634859574622127571689463165406385748963711309352398513270819372086852378163991135636982959379154469724355171134287708322956149299010046444426533566678333135689546070552415903507373089230095624533874327224891331994094411044830689783376381492109885751968997289871470770025822145265096723987053189134459789737073622006474266301612605017504869197736633003804713764174057032822200675530813465865879270965482165069341611793545949320903001178212264341851767004713243013996239119945622020107368263914285870831062310895958741814580736640587464281383058775990721207586981547524099754801985146353360778756272727494437594222683235128595889155589874334856232423897697909627395680542154106819701767570193323086712509990078846338523693173685562475974509165880837853461612082083236037872440062217322618089864193258950976921941676857004732251847525687706415657393637538676569234886016936895010084303957484610792540669536347505018602277847674214597675747598358737737569676027853648288155718592864526742113963092939125589199112380990563519222892312872088473198564904983768650787815404462511532629372824406967021123799509936196257973169166681732116318049416278305028073063503409378030732949788680295948760274026608004683158190246287781171434152931630934460147825933764175524075438073816800934075580798251092673056218783014691125241963304893183466476958697033065386432011612725506022477976736556769419668294401459095838283241348441668195654883851088711417047906330036162498472722608717370562916503632887837500423503774041863003798085731276907826899745380923015560404912806982853284199501114503676564910476591394006577651610731547877156141668657101120452690859786327470047913882318583019240166888834455557855108171095854555333529676210994377961535806014606675975316986966898967522063532322032033030361716580138931803839011755743777530905765867840471971606873583811898863581745846960456554499355684050708665589852691245657765770313858050820976560025743904739383938521148259363044736624389325853747390143976907665879447622477154017249374239017309639357292400184194115281687996773322557024427712100297804887179609397089786534979480014363594527453283527049135480413243399848773983359581814682040685633950381305409440777725609128730688448332799017946011823712999083361366822707256569664027427283403346903380225389659088215802375823708483265584855141501342956986952196907266913877289823827483054031838631923699550481551492485999492048396164511085500963842816042875975695484019229547339219058273658039976937814460447545571001371564216241670695491290386397038850330737721142198980942105910681211101514727580564832714464564951437408881379098190691206788448746861741981660064138540720423530274361497293366878096909041852397830211539938278011949885405902060876397438972943827155493049434691190534932805836282063487694538097223983681831829618308600819731639501264433710131617334659639170351298318227872250639269254261787414221616610570709510495188251139928907434522625814592448378488131408227428650890760779593190910405093355821195299317473311972880739553433528335835870180475991415939236913566754893422058341089630715621977303942995402333710231692827837431462344454293382611293352289300166663318485457863910160674483319700284140054190577522842471791464005488102154115615771419068510687555003125782039968258723373604687107392835763571974348227125323017860971265598118943739884954884776443757866166494607853167550471614090456006750897075963169372704782655306089273383594881140501136780578288985599985694728780387472286353501988276763455723266280447365825200032834533758617121448698676593155540383483250600492387268212787176406299320110496490893851261297789640455424886349765416853391195784854157414618648984991308187597499959656741760421153995247294722289631824647809866706907489845996001153886599121007399386180002621080060596620808855432354131963181828310562880927587335939259301156379414166208535990707845269119459610267585477067117520249988789323787055727871830744018095688912702830253165404723942653627434979207628785885266592412589855511133567416801655069010271472003941906753956774719720052801502193078692620275865279251250838187324124863971094617411526373999526979019389229964120539498941536659137678958722225760265689276811501482751444426511788324476445722692485645439864387647762464570878764755539993703092548625723348981595740629151508575723766447201145420249555502491215984775600003288096941684975088168692856196825728315192814856889040198067688359575242031632009328978535272804784406718871720431970331520600232969040493221807606506326358770254819307557740196723809870121955397484140880435605350904445673896037387104996839123208684288533822713138149379716674413654608595800181740559180525761258880260536444836415532941973125068171228651700290581482599586535782111519575656188726370623775443300441134338644329964104268333616395463539643485958223636944922639231315293336031310092046826918282900310894881051298661161378028794568578333550882173617791529073093979508400613922909735847132431491454117313099063610139465500188010902667464303531015051524690084679918476691358691838689072559205481947311650129423861730545051311754932730707141814119967373624384751589956428697901668318930823091011475550197492320149374216519190641721028669901916227847802989186109979995178027469738774622630907991107047286190837319540645634581853251931812366102027962175617775455586332176946835363675012509031188848777770103378190681429063050380952739181668281163159466709121932380321134749398347853663375215020465877309284283255454027044772636749039637183082214563752863683659407809336610988567550687107113557450596264631007553327523047198382080372420009592367725121612661768438000665203870090685914157645853653931541363491964700640492178827799100628586464077129492933656145130865987346786983617712912349221301952040663016504554329768310002959624934629051244862636512631356857480486399395267352889710579794229013855518458440384519290287635446097939864402820238383740846063316061613816143461045827270704259053796425778936834617841740225876376225868501068023943511559989230808648438217787132453731567007445463351708531571275539736720032054085847570319004062478548406126358285595188439137735959922799755740699706599651035691714106314519710809844145244023913297765379028753314436617129038276819418591297483531627171923394470857178745809886246278055407296781495489387846772464086498075044795614028651880026232958036918655233132603086999724921484372637693764149435954563566962933991482967432918454057381392198038312078026158687501725689944277087436501322007381780565813073427328037762635192614674028615251396646923853660912126197576698243095232445267818083363982459236079568939690395963925000783219754293059607613478272424616795320317986085484679325500401383938795861696331261097424379740015623271834473169475462842310039844538526159574563560983832702673799336563300303411064799473677370863360014487492872275433069770897146723062401236325707981643229012266671501761486558632044377424302381196634865903345660180988802636923379041623293219264577033170245721769783094128812782310671161341568775512754094147545488844379787601100407942855677168070504370962906832383915540248188430637131768203873111371433211703191461254689608387819047882827497411290806031212696598558348514323007606575441047179282524819013957141600445087820808758288428395709346569698267882352491670641976721568246625419496241758690340182889037890931360352784400065298588887181731136948870977648550511139850612252539561987155889505704292122711472938814770337899761030629355503991664855581527943376874739362735466284760057647694313540765453063713202052268774247149882543968146815916732424413287781965938140729456699699052125227248058696390864080113355398557617562704297631516763994009696905862343659762776124757382077176806556812482068758717440085739207655150477252718181987775265732854837728560942882359174305005929570708773444435839296148077233973452310240174439776234399795245671025854068103041667906199477736370412022378586553115621914214219788216686309098463140740280804087330335370933834449892146665461050994990500070201785340433485429857503403806830061851806730065692972812175493654240601688766867408359627029676669155347549708163200691605897492811132201522558470412320296964746698868197044514910863018959928826763856700427238549973236745909450571928021042095708356483249626262259501024962271223707956077589628308540998727537816935143485331695001231094130820593855437907747453533966115313360696197112974564337283502312385874890029012960648401199415103476267925701800805188659170368776533689118337940341285771673193621234050009896626408182052839791880315437108475230630018346846310478888944778302639429164519208570067967128326899483154379731364970013065734879418344646335681352211464785543776111125894665442737652700841467610555353763860712671571952816035919249869164645727428059033248309611108339964226530443459416424460541881070145347906281404456219415108352695156090809158998095489414978882230531021315220084641119180643383425632825507801011674229463628316247620690285191070888262234374524850118690366124459410099290999316054300424642494582883187957690394108956385967929347272244388320332516045206422772557119268868019156026285563439918348487179898978648838485529909287394000631379874341958928457770800595993650862537542355765434317248057769436751441815990020850193005186151939806951029754917153877593774356435238617728261825883858966626466042845481355571455678877515603819201682669977496831625969267022584981468036701425503547861897909869978557397528495726286929357648063802766397631490811490290872204371043849596838843901958446934837542710204112081705145670892091357762634016453991538690189809417880240972507176506100117073219919436268828510066397037888951692665970171066713135917184153591014134880911310303079345653967793007682468270057254123374989979029419671874939119145762288951231104309817362111122276619395865914354453559346953977188249771073947351511237817141861205455308233224091074508989038570959821315872248250273019105954472877201619629242833778079199610909103143284691006160179980501973062820811682435558276778755801193362078119365992531879531806758146296871581578703837985654132979573066847156403541469776118176911773907550480066996061974738884689612086314441212745704758158418154094551231451800979106011880412770910749385937911557024747767782524240293602395587659900299300282544624493918489444701833248545164878238375117835253123430233294483265661485924826102153722062483881606181899479499699327750173969900144009613197202461682627509853495514239137925163708248917668917514824316334424351791092648191628074086514073711882583891074938163597128112041783302585307310210130237918687817749921172660984608939299693180002803282076888545059867024921995329717982368819765677482850637874951889855609343734956170992340807893015873104097932083239958609228097166802672394792179617199938943009746603139683098525165771459420611115282150488122691955940797081932964942383887218833446130046573339286802031237881669063156753826588340857228392431636530452789649490266206488532423512579446351001407464064052647216520527023797378879360297913962222071750899185548506852360036296356440709841330643570741851502165862844085429288671440969674411020070767075092868756042223590659252536831066130180310390497843444943518548994470325636523467886694465989152907090914965157051423192490046540693166951830642371801676986815631854637917752380728046058731487046963924648820746033490267754579259521675605323956935954299060641112351682952561619367397392452929981069775137868377581789709678163931135924149733359783558424433994758965023857662216995818419826410543741900341616650495864993283830764520644675812337743464557275933165593436432636909203532770154479209323117988613279088969302672124394816102549685023482602510060059724033088260140877752323556916706874552822909790779725189647412447351089737805387304232717758060799294925252492888997532690378910625304434724823936644750175859340579582397240543299127634608127654636624964177530766887231293755098439832011514079517601936464265461643502218077575953341959678766064707007942569430940370082180157272823414898724191426110557611372702990186126866276068552065354052418957942127899163365122411386058341436981665952225220736375734875788429489460025190619677566127764561967998743155945433361927784786397777051612262767580607864428957826748941054379962040249711418434933898534228799410800935839609812638879589783940458749008747292649860678360891490544710210048194467100917688376324180577961579416440123526884931545379101535683002692060386189405804105116873855572890758493277315793281141403516391601297002979911790416172948773190182241535078643468699558024790954112039234489430787399528654156913453787131263997946910490498560478598662108369337478319637027927287910418466666815726342847384328479313378956923563765349229284642632736104817212835043402986557323952951897786885149964205874578676674737650564556484286215051988813829355252884550821317400553872222670505494156289931836006554638947101814059512292737020200833436794251618880935153910158785040166157132979704950854223718530808987853211593241575899843759197904240872545717161866272559391566942840567618755768748099949048815438908366791146791200664071329493693960280792491860429985776682617712688351475955740132557161427063617888058125889011195935792043594781168814927899570411604629360873774694317134812992961899646198465228411328630078802847020000404955147018984400964701158536766345759130749638610569681901018394676892711444134959035965354508723200719726933302317526875799041379866566053096982870214616356797890415361172595560958111513919355447160508666065509051224010795867713532319817248922686923280526338233047768489230275828682436915904134710724944487998004838334373844968913949787465666631731276738746750061405060861178382139722847765871395762557934787525053289153424422414641228287407181313836486637877917353358427623022398089474213739610541125980062960341359433131154419105519091939412814811044894726645301336725218856569715046681642755934807649662636743389818648617733860575755890160401224870927962890271239064579319270685102640486295643883318416077762043020719738055931274057995630425412295218470838502659084201419402103535935883185124717998326184410237195791673579129650054673431251979784014095731519453215407756521466545999813236834195343885831230587089606081823837518954105475940719060425259649621703920690779646899053331989859608085081283089192614218221527435848951329695794419529138621011878220408479542184992983417231172093995618133229165225329384650672117808815335001782885971159564617116096059286542344657992298142541532426052977062334702842577120711435428583248813506126570436900079084214046975201586976797749963943058537846771227670057353920534884539014846902297691351042718773378461855433648176312043543801473672425862499328511291545582994130349170013040716319794430719452501044619644224078443735558888954603472275235509957807566292048823879425186812292590217897024869958441949458907419003556793257488867087586870077936187305640062325571181505810647396121296696283262324810202627613848959343546704921515549582778650617740960017404239815171959977637354292011897307439028703631960583480732068008836382340929227369097011339333557251634178636929689115370542534621101058670483683398687764125719732073165416848916100428428506842047104235870360157919608584711383587080181739916130561057162609164906701507506478818472369239974504363873636820198612705078991184822196743248894705455998421744490711044160985184836092069800125330600024256026564134174196273717805394015675719480904845167361305900746849537068562022904109048568886636316480197234110983619656153041639188688039105510008412451133822951659500949006191798177616241980167876630090108210370631466496642873795639043837302410116854388744902663861930521009707395566357590218496954924730290770265235901134151104918003439956322518626875140173694675785090208872157374745752849408188784373731767448077749340361233260153740350148565038727439737986555221276836723651998607890325519199806373077520144129114807685068566787630965856558152554024478607654110990614011463834918584248351248851518828681942253889665751657655239673511052913416756476131470150005333413741027655456126747757997127018975057791672802423754968638911883275756075128549350044753783471674279605417638825450684719429187369403910840198051706611124926913060422641007819156222845080924208513655137986269459899843713000192849787449179372283640542746422414691491712836996897304010289351295959476653995044543470893390849002691314393561779860209817913259830174947787427170815480017808883229634771795117254864119821709645387823190635024976321852100576880583812269998190900430662461658610643707363343247462013955280132752249451573125309396548863976908672338422691312018118819787923111398953337025936951241150094476011698613687626570711581830163882419920364582639362554293060341789932041261603802615220456392440172510519768358135069668258844054599929262020631744380204963315658304387122753107241312725651965648294125087991709454342839583126557344178713886339101076162361412733399991251960943954904425563028260200849149107353572797966916753431536395652699084884139277053299118705520684723752166416994331437033438344780333022303049172553431060801176579330032531542408987142184207255346392880443394420725023863264366541526815826060483402632916820180582232457875656458455881016034974602536273844883356156396205663062164514955302333294729102849928322340083505302348916062029371580301437278187440066315539972745917261150522239421976474180336351228804203106765172397031146227964391005352562428781502657285237918098235269114968873342699065922385352101486041365071464269071197319210894131281345967227157915842429952999020081845159736047373067016100397857140502740760172887767323171822748061518893642713573979776206564504923650678551815439839053613794174786076787490534732303162357828037494800200205214822631049051217030001570724362121424874706581115835711942901563122467693996704310673581706189154438764148009645322427231508170301209080153102307487197759955600327410140906435938631781670160375992388469997612629314910053132590091720026761473883843339552140759522461896007878875820797764850494960589727083617399252339686338857032612279865180241613930960914365352855708359021872640143027429344700195590665269257126714089815368228450881239380972597289953267270282526126090502096836538577086483892670654494681048150830613308992885488926842576331612117336678975093379727553809389588616733959913513712775985198484169740558357178107695304604876888866769707231019050871070799398315444962227861024132547153222242041874577690400525815257297274053821729703670974375627474600179379001269803860474658627772893280763280662956443768339664214652569446306552589538200087989306623568234445126761655824375263577103727191010268198299683150198596783360650306743488206536898224339286014776460519956717923427508144199568212857368407611865393174131859593690758400913745152540058171988312309738665210946181590110362498751252861393093864630465773772625017033320919600899347413423967955847894876375938109279517225201057053070039195755438775613328985494749085500371285311172697141902156701121723875868769340490156906932119483064819002492358709244340019026523857467739531863475763357969431572925181638251946335498931040240758893460933700151912048574285079903210466739069345808881724648549866057943353495940698629822313432265166678419971463854467543895752764795596339322191509695790343784340634833635056034828215811150999316628505667073677537709526854981835211406926012493485038301764464013858546388015138131964980100561959871375332983223907046004812547846971198602370497539414552448417125648742045521994490636508331153043556382971615037479449375831845628728138392846241285950870128121784912627659124749040113501092632969895207702486571677537911319434843408548796671554678481000619342608838079722676835221796005259753471449065252893950186487573369017834429163122386196200200712500296515933442931632417456649551878061758733862058991472446243912345612974998905340687100439215815730249629583775892223313396057931193845320962915397698338684456958859651048740246118154016526825340674282198022862743363298920144054103812003698957812947742666519971504958301025109611866621854706369884209072311296101429847416102856974767381451310369296339145516766313070822913975698745477178961636086425075361431232031178099264814798530816162416758116819060866736241453953780317096688845176931439635840014176671921270076457365160750732562320951965753198897716859027334008641704960168082311186995858025160198393152241821314558864890207439954106900653647730439687289724865053352492754424841204916008880046046727173013866946459345885438759746901831348635060733768972752332764569809163769659947916229568514696145728913354678437608581732969702637098241956330919154586903747092724940335731110684537106361803034136387449679387052510785951598699877062886139938798397526972377020472389528081429779125021837132399198472145172590778711305494924612687330991593379598404148408208115858156702869347243627530910360541498251481209718612822550928747410517921899051070470744669153967601800501114716222479045991899992083865547975549210198172106516470117963255431542201451930517676460706224908714907442617250658339846848662444131364822093023288452489017921791891842687335652512910283983946736945288047526686728188841357440331136631021627269155191242097680953951351965202925940248932482331341856548134574751368086234421357909276207737533350663694081844178266888059163092304972383929212683395576502790988667859218304241967860987088375235608240249504386650103090159066037996711117519773257950322375714565331719034419331401077765915369923566599257546639386869391186337887513331883869742185153383363342996795962676097716212447795564415381653288788088250175551573789646536655071927489913742212292999243407471315086352496824117624244585075502216898145515780447240404113118913839289915147887529933199248423293465547470227527846074315451320978823926417662647102255039888379574511791296228404819258691534868058016168248993401746731834565039290783463937953415446296951339462205836240989635383225453720419745504401059363532076566525268231863079731750612410803952557964335619685893741640795825406494455810249005003997224970948850822134476025904489203624682943823981703773390510117250529273102080965462828094706753300349179514867626139044064516349489939475402823548136498505077418107311792760836440931755344035855501844679298766474411029934993104258270993845221430009049053432989437983308016486484745433684236797703174875757645713272646829106094480607868045961494605039602006499635329353459000528370534798611495052414225211847023841489095203914278880514232727086486635393076955784212422114437325932340396067733516940747407202837112084270253824111633642331260606820822249149234793114075211925421867081632029547474303232927071675054426486878384957716838436948274745817621608670293201414968042993343633794200787818349357002333367842909432898015998296663022211275588322780437470348665858667369960302938868247542598974018363766529156263472454873759175729822904442884827991263140029656402957140526624146466068435764117438271219198696198261772464473246579222253631799926145725947583224534714673761617581600186754217484254495750918071666308436291280055440670908266833970682809501782117636920997039313155616511187034859904128345553409115061558068434656760979621144132013074701153553397089962237135796754695900269150481863660127246334540565996115467325250471070458794478576355448488210531558248460025301236499485845059823332469087520495389118328449516847682159559369549267251281975256877920792542565968227605323741571375607184660627105320988071367759484011653619506851927200822869743009859715993944366078758426478272075704559964657474833019236910704957573891858753657187357255356929534851366743037676987222585832949992875535927286983793177479018742217903418233053086107608554052566848253027290328962386523490971842314215369692623692552254146143170473450703315886839231020812033057750967927252667790433174093008717643739067393581481953756444558380403205200218610191687967296726983328138447868732891960289946727147732201371862940773636657054249806853442855632959649947232585126800138438437937122328966192680256784249016886286101663846465369816013707234955583355766282136708164272993661646152097922877469014258218919586791073397509721520931950226622419290661224665367965603334277720227739013249004579340019920493802986017063144864026326191036620613316661858227077916364210968093958310400686633113543315775874970101577375705847182424656280414622444725919036412711026603323903971809160700493097750614192785043904378332284240917439200344997024420689218216219423794239556809068939896493805786832980978890205188961661550080079627883060570517855173304360630623925487754197504087568444168398504186771225103305010941864423488377534550339607293286286644034944558891413598584100275928146435206195748997655484468981326011006888232671660829911835687593586282890317830118532262620635554222309137707162049094954469789359889730499660488053741326806674512624712973010964722381879396861902113950713393642681456985827893282586185213644140847428681917671351103368201876884459951059394126064816515269425325685449204553924797279541863172544271515911879412248619287411659589325255900990032706409390652031677395826381818428261343522829691616367149204915817397683600937138817779106061275570491702182410765429160567824452000374925938099967136806825882299968200210673464165620290599556780932190507596647681420131987271243064263871915920184654126030647272884441335065943084612787437319308025094692092967267612903032430350877340677291381143220140507688266329625149312346381451850004650200842937830858543916896956725241767785087767575319610177574929205049752214583520686055340547944384529159785503937466037334398210767874237450510647088359260394905200414149697158491397024690257255420131521217637869663323899825876452794518196109429307189392163814447801560342430651954431443906691336591656905373607319313454146300101988022561880665133788972352371114431818935784092928994022252993901460653756307906216987755356320111110692556704466412427133266827453338207629254341965418797449376822134209534327720925089131230147439009109749530089786402177707240602650355561383297615097091659902942241526641407781365334931865362952332609295098539986752574022777328599658766447974465322091701584836873886843281594400830077161413301035428378206614828007803825206754553644671954578470712477193615355167133811166712426835944429409750664752100638184295462307835516092789182919465640630957030673997102474159658517334134939449756569542982664773011799905531301316485450347002077275146194930285857858779072241860268927553352769920162738210359858431475715294673931679876987890693784364392088350157751572027412130676722012827150094420530606938703270976889386135445508581336055218052844492720058625492233303953570780437209134795676057229366381163326163164698845647024208193675728477709810593794911898601909102196519028720447555523535789972443419124933616720525807304826572501182233618923640674777388291647012083927451088265715997815588715833221797015016627677858428875126635780353526878772276085921108888875263703210191640656569732357654135418300758435643891846418257936721068996226602496543545224585037860730582175709046657030152787144986887925133282294660891623945285348566312230991571773490726930930787938121297577142438096749393576651029660069964548101254858486219077635400771344085872276724127070774902233789747216256333943068619171378052803090711055654322781216700010067737363004443298471417923347875014586905214147847326575483409153499952062260804907608462982109801440539204864648215158479103942056319472969686632838984753900697939954792565425445816630567497376574351789647174589106945576004113655643200301767346756419986001127671959905651112491143589559254710438990189218241086487799743510057879650024232671477667568392544882344336626127689469665639547288460782692453472732539072906781550497365497889172231970546582578535916280823916341882147687568896696754858179699816627395266453681242560681020687604862390989174975191780008508080203331098079572052621355132902520242850715429393393185896053451218209521599211540116151678852131791104253316046941730293271670970530909577289932738844475334618255443591459256645092981733318894540378539445329277659153692696724689683916010968658594134156777473346734484478954624889412662932350411374619743729907610112828716263189781662508997057696212340643394372418597755503843590896325361503933067475972069175552906834524523531555590342438207581093412275073804239672773595378075219372607570615638110119166434441592063181653337702819290663587793715924628918993081479132614498147515665024370457155420332580634077476109614258939501421877164600138650591529796901522022097937756340915040601757375901025391529115387066199600651070637950325763840924866391849302690904395833122584201146100293451018297046175459121326453574663412548602479373787529825280662801399327048670559928060417916293472536714599278761170017613340497434022227417708193229604714444340433042234976614395914557794762968833169259072084963728322292665535455624383797081588405921343926853016530742269546249044971443692246849244465040519922383253445483898682952553014796092001625879795433378898479470175555742214183972567263946430336604994847379691172484091114039652115767451701840772124891239824521576936679929081953989855408804137679193484945086708259344426385821034177339929130125180791438050324365370225044061213712972962767011820330198987826867610121395240261166703387977382963647876740557089008482450100578020622613294721966936516393972854878974159356080414762479459210326640336743891886323377495786191306566083960075351460411334413456601398649595254264340954547868057809430467700370445561903831901594078762645190632620633460790696117950583686503837242620916604354516807859159196026253717763030661853051709021365504803085353870391403167364644085809080351300043529578200594166654582672970381072626912441293882071305238598634769280428146788042050659133721953636040841083005291444293977489794971089751188509328463388692111118428946164661454324633038878270134015586478271998067614612929311610431935719413871420257812779346711024853811335600714079767102024917642829596422160563566393991105641336237679899295598239603725588744953262084806784325183782405388067723253743823977237121027487177918050786178629784353253526154341050975776464059094465288411750118275226852986934145924475540436662206098644093122116219418135182786006154783180310615453943395505905564714879561947993614776027555806449254110114042103138149213874411210113456537127415761198174462808585869314246177706261935484549874233266658405755821370067032065598599825805228825719945979035704220111444710974993471448264561041066101684392864557872122187653987232493800769516624387572258917053311739293626775512072973357636234114928261908031335685096344613476680354070996762922773584121895421093333468211034385522795979635708864727526374685610491754365868494125992511262897174067782695107232020891470091281711345472155910295987481360462376319865774735554548424978394461132795140923672308886236044086004391085622875486640783594819316501567002254436646026143623338146689713608015891657333008141898824760992151649886906757218437071813609506608369525806456474663970478472227013887051489370862716252133116854537429631399033617404621467003161500540903788032171942180179437546033061675442586929570814593040208182349254788612750430730884782555259445198476734787316656775823479486527064247146785837630468224561443399457761054768858033924242856179146999482961852105589527680504080617662115291681328673651894929962484001982707101993770326501230301011382468433472180969551564377827845583179200182905836947802042625688175463655409006272029122096170007511810151459720702937545016216506030512848247539548497188240556105284547297116173095402949232822094198052491706517443859537984445657394573745224788610740318477166155072288695326069870655004366767554250989594250872276253850790282428627659438711918575276678156560674988646929150519796787427284584558506492415952817789476554672623209165897861215116030801718718742446955582152704824524412044723671376594063034914659480124097773886348629670856789434913746742666530308122370113130536002053179859454847170412841409251882988060802892710510795364006302188490639314188259938142150223401446827283207705717504438228199769878525633416992842181984862905172750753557231059062608256219143549908503043802897956381397165010320457412909691369813184872710319716658468155167144860687272843146145738653862149022857035682426412684131137790425003850105077790023528745315855272224207851357364224700058838986537356608231597285868536845300555633307779984261829958553911588909718691693078383239105509484068862027732932311241657881049120567774228579167578638702179168044316413601401948883021426887454643485479700396492696875123762686435059944310977263845819404308286197511953395189750609184728352454623408413493164064767548724179538079964456588298853550157268896799204685697841544801383405561913486286665943107122984317117145538652832585775565124449918298886890577873574033260737436500722089018534225720573521888922735502734066391647861985865772488344763571302153232335781997558795093398702354103282691074363114646927136199766095800177307374950543600216246857962297866665391913886039163639825049863488404184298718538214004283943483499968417610410588653607683961685991779127234480216123177955018899273526495549159746734320634344525375152315469878672115197013201579208394413681858930435875178472966722369693092631844136616197787247584410423944592979702610015353316869761427950251305210552825868613295250483516807247479671299676310662691575739787052855662608660046616188277772765586694145942522898022091968888585737582014186030643515192881867167840773981921861263240777628786243333515626683395408177262194649556581030496794686540585150796718578763303146174435611588500221936771195839439627653116039575841643767993820049786410468250276806334976354788600923268507414038188981093251545208953238798713143549893292498930360224925025251135057198302866248596884678236199129007259127068644190613357166795948859075868202676638546503745831089545269230926363924433341132241061696986614754996368238877633517090482752033421052171255408399956568828339897856388821127760274181014658665354698187327701358061923518960191854879302404343085553381217549461759090091076277414077024891346858051547228712454105405736698985193931604383855311512837404634425944975058178041967294445992927707013029779210804931437265539083393722292202919641713024550457667514136669605666058275898642551593797476882454979247330429156559528347013139403293082669843545253376426989321164305444414508453618352073149502373887071817420747958545229858751975808594078707261938762672905011783476294650807233816771674710742429039352194072386992259426465692029581371237230026976229206254974873927019023746027489381744169805891185890413235354844532696599451879810861820743691907344358965496970251607173999356636490054411121113201604232227650588637960065000023400180248254332529473309157671310835857091782589589008170909529536429280102982886941165204505557464829884306318758446470094228283781235802325293515580501166744462654188059686570551675313172185967549710350780969999220980892533702860064523941216797335727059227400016372345764766906323333486547328030734022184935218567296507734773988433494738575761297066684019478068266436063892852112776578952810131037127564328745792899950237611968858488185181292725579543114724379403814074796664579543655433086645052465321267289667564323320490792575381548626138964896593780140478545525959262701831475872630544949935282902054266236507432719351153012560003742343100835212673905460345451615000194984374514344517642273500233444390110151438461242670731706315935644710962242347724265684963190338746287213941147430765592337392875367661799449925515327896966275755664583401665099577534410524469307932372889636969150121394252632507402198935938146820119961153329984475459569669974865510795852693749942438051700329242473412497521267693589480914898721483388555702592943606584971241103755443626612967469737480003084650245600551683183345111457090297840074671500499047107582571489703340705236299297630734494540303701266642185225994643052827320407322891812255154208516668984613609620053075425635834413803735169620332079959632214696040020203543657717490745828181548866102075776357454307781879863256464007968385873922659581215691870101147391519881531694050925120036382998906730521857019118157364705550242158074852140070835741569371228296140633801142601237585715852005597528871671945357746267521761735340832078070459463813254039643714057230549261498115307834415477776557549187784469597676419265224763631233547953199670262259580306727464635940138485423713984131307753420939684737354731761875276274713008257021015914247991187845342216014673277299762929237139738007613743151284113044659610913030179857425504525270970473536499865301583781939078805658281833909452061255209064081653787415238178481353817915079211750866769872315053944184685303050571787125224617660273429271237011001392229808482847830680919403490717652598105096741634005571635024952643617728751201494951058715928296582225634691743055673950760837634999869905871913386610064457562914464004371897359752678973924958994447452478350041248881222867820097716625233136851764600061263489561808051086729430313591114930315028268087817158170097708326790367968471898658528844252801056298526535188696756644304154072874622349778377183526802550739645316079647831113893219945301524608817295249241474065612939832445941841004903926920945599438085025624829894055426058395151032347516194786303930909001695337072594425281331951940464944745535172573724051533365576625913115054153771205406604979502214216717742125035802813386206936623344540865842904599315411051460302379794973189642051080625977921939543296050321514371702082589648565335339171936925804388561579565980053405518283924775297003740687966138868252222113377381055239375420346876554041053596351280864970846755606984069452618519198185120763657689415781987232023290466352629373146615161705610501190421573235825363285202691881122471628277600871561811237714595580944197199222780739536088002784493796264650119338741308465179931255904980385817892481233000727534668126055594196655396512171693140305286220491309967175421825219240526418872481382404374552037133292744706418905426548595861703463629310510601503823446386524183735910026266335280479343446974386995257579454593213139318183010825114054475108205037714099845286344524425300023152174647911940603034104929158195049322295335184839894243405565518327834793449681248767894608483913235976140589399572259217475328102535260890235684034166930299651280055816213601889389394150048573598753896149537317180449301284888162367647949748912890530099000084474664233201905262868760607216045173433842628707828490293560928056753082256070830520265414581809771995850433549949174602520015462909347484558002121278435277385543849155870886486884514170223386713951556450483908132091318490813367925608160978753721022159658617010463072740707919957112212115799976608384009196765328090880042255845604969290214866916177166847287086346704420107921495818899284094720135573169919087466143734997477961763789748568167934805678205757026196261402155559601764850441192483042733752313308544909837986328385877727534052360301510805050177311571997086624200218616212035894317423311774315491458511914800557198702381406736543848997699743020294419081581268712380246727743924322211504229209899513963063771853508057572657495550365893051506114648002570326415301742748450234040367411513008152963173053059553347018609165108619045622797455260239391026295210512738367236786994364275400033016055556841463955263357153276997514362946402555259829844453927120854471768317494663380039195328505863648838850918014827454861856571580083374710432231147279089658588896977271329632072275293436589724289580104955160550234298330057014029628460803768115440502722011656991906629235982812445317340457084974766216860300876700569093829421701976783297335616396525691249920333372466570288338314689117854973447807285497577798588616794823303033454459843354203045420304551869524346408047436726530346285963615410946589320708939999961847031427871482945504751802157637271998704046411848707718590262268551670327542812160777721715719168507829140525397917422960893502415761748231974055516194142457701925661911157192393596159776359580822812323059791531280047346378257801482703005773145099606221967865860521615296676972305424743296564171424310956091545065638973301993740531063411707371484817361360271577036604320781130838738975660225124378719575571529787398701602802377160373841850864030963008896946252739915985214146219797909065664754237569798553726655783617851366124930061372372168324428547763762526350538792950960317059867749354935784793050921927178900417962156476159941365028070062351860179851770406435740841930200303044497905768257933750924631759213800018723079682444763027899519736915703546599678945341885668208874955316111539288540094181405039026907261957397617545692279992187556056669373010542284599570726978724095679782623641234282925431795465853621191634076387066069947118178686926455055233176640604200944539196541872983935781261098854747840859316362076394203340683430439979504775131111025988778540821629265420182681693617532057970078294986116838095340373753407378534755293927605315884731221418835552518061420430673212900314360015699411320776086291125623250995487383755441393358820331231354190938956869209005467852724070909882268570995589909923910397004122076390740068835794917544524906436556852703174091790608833556024180941696186974856582782468630173864595875475959991281813929419262889487342488884273041550178509848701424563329548567511800618691814842040340486264249008002551809018654672751805754802323345642704389174970830009422332936804468394518680939395036463668088218936025034716302731920195094570091419042031428982090944528287298274872676961673717859756582960363091391572434952319508530398058766227151542599276289058326562537926614074960309841151499100035473031764594397192886829400341835450970753939719058603918137569531668453794674275792836688230067949790381002366928970028792312233463823022066217219715909016875999542295453279004124194484629985437958324192701351253413882797947000714775598279670854733688936683276352355838870812756484721183303304117656319444237572215115016126760644682295776233532161450867036280683818973583437137690779930844169312219913507696691604722230964446265017672861561415970113725700891143519810535850342690641299707228441797822412342806744980855360934953420014274679953923735359134515024452665007199947762368729290066616591421275984106509282644441434038759956837008408174392687350216541782054099483052289935645435786808628770194230666791494581529849376803430015456576093430726239057865001252982566448394870861757331444353369150296885627906015223120065120132293537935435756987706262771514574215796407663569309982165544400401868351494278211832312856923556369735321360261835747955245612082441379573045628091098703919476155528753796261054345270509146357251736139844142108294228916532619713820696575192246879354977861529720765340527743426085721100429782912176803737849608241035095673249350310859175631352897530296319287358529816226007504827602784991442008812064730717925515614148890282942568992264752609002671127264795967092247274486830510831237918258636563128740046972056231626281396366087778868108795965230702554608101333831180236665058137351600195411190101051079305637547078863698070795584292476934113589951641878094848891283609649724535450428927718530108190711424501616402130921562494819941110476025178311166296865149858862948282320413740519720799937327470532617292904661916223329165299247959401161717189220009378567806514186267611429409137267124261698066794391383623172497302489460040402470787116284773035763501812092962845473839693586293229040857435949156539787496490061503318549121680652434880809002401628862843388738176063531016705773074262161772709445268870398785028717608662000650771154468665501565605992756821697997947947313965873784631100746858529052129435692101635818903761181809145809633613282027552960769997690801950032187514167132921454790252764035063155426953054424869954223121127814572147081767623081005324050422196744907867237090993822594861972211788770236544488746104503172977825135105651546227336269521635533358519581669279538561557006985789598676092005574741382154961533943445548308488938679455718057012335677513607471052462879959149364973980256151597949662279267341503979559034132916103712928143098849900539964184201666210504424548866606678592987968758569800292223284282340363071778471430499333785644747100222667809573553356223346491147205290314256188504908361587467021114419977983947573253172331752618714747938950547769417802705780807619181565299686909339240920134906959901872321140605863116916595122375353758666596713443964899404879070694312962589545304619818236864425598659365793558665309501362358604552570086812529640066996820950479332877675296281491035012401404949472971686096482199135398305234858678261604608025194464092611907790212089924184098446581091884765694223349259746029361510126396268442657450055279305151613365597113757472749093822083571622186125698554494020466644913954070205975424995983806395162817588391101626288563695874266972857506434027140077538144537873678629340397939810327452812170328952447455436556230765300389843907068517991082055773528150793100034678394770386966219775493698038355481001520530087197205106844271533533712945419624020917904233986211043101932266399898650823672272593439230427344649109064157931347603450049214148077296645949699532943347530739357542589356858441441552613442120735043520860775221610407357420579525372904220816603987786658156284140521894072033793080800570220577996210351315592175832848967254459888890065437848873336291376080133246789253259338824441959367429804841855716045246738727667259784209767700865295741463392367708387302252725636115682286434449413918684012543711446744467228715872567483711622323611173427549141737958540025211923992687713645615049209082381127645874840049550917048748367087440269475551022967058971623844107371164870691789288049608114739683220650562561980556390940278411771786164607183913485434299015428423222258120070365813350479275787664498038242801492482770927362168941057737110156176336500784477131650006374443458268744965432470643970650374987640226265605203528429470553637641624900320132472038376590164340620644419469436037140316724756812314367847818037364187928276539193514304861426405546126528562751671113593547811939305054464401271588740513517401631360305599063341352417176843149544889336639455851124078639888714791521996151805554701681225552986212851834544020898223668251081599470683808287217246434652461171166773153593084451676537023150024453284289225647553356510186588278331951519022062196679896910012208679486132292297834205154391198129344429674075928037009902316250813109911888786406799500052659195527098945196456082483724756540898841848263965921713121829771870241891845710289695315514280673546233674325420094317726550227392449241981463373456242613697722023016448394135672774401369775555348374778483927797523070565322796472647293709481375510249953738327092091778541739400165548424381839301082841950958866485473160256429482993543875551014219388100510989107845808795659538081059975357416702143821532999334593439976665184425881746835742125101709967468655615905487233492485419991916793252335324780010289964987392806241786198382360681158404380105732872222441375604433081369575398173882521257374172852876728059569437292434900812946720352150268857793032479189037534127191224256913373510903161976807610445230344766866244892938635822386924756441682959871312297782705932057041349219353028748774109803558619811814556339174762498097480128431070023744596410658596064726739067519991718627530956477174799489998610356450053240880828612934507533985057884840113322002093550684265351824804770881785314042910906779067059847676253271208515973451452860631095926148033926924665999271360139493581418508437089419672478993913518818462487782047817621352437471855249015319029904865539475852265950598061202253454137728115217978716149244782518017900793053851548608162629137086419376332655871112886348317305781221959558084935654694905136777612542183337862104916018293007784570302405758230498947183230129367856494102822928758726713398727010424367176178282558152696536858679915094445354298049632822069513914997414731998522483311732968299531018251726793745879616667350875864866684993725766319411040454029481306022068428420696679883405473596682169817024288970828632030261936016959036424858150273357150679123701922307083053138788238889990068089882453588297090542980304466069039604369777731775259383461161877489131306755662987540860579755303426949314502682812954072369409619738020350461982987658627973388883507823707156639167121378557606819021482336228032925784566639249284727514031008366723114594734225089667734338551847894258477842746996526107610592040990679004088592379426512317811978013120604227585804962235520357070629044032697445670038493292707809062357080270975359700855282751256282182488896441635442426971340305770816677854794286207835956196678043367598236942519324968182523410936641911224695309510560032091948115674707621826672793225875881229461469844435544383400085731268842748651763647379158416198816608030621951107899350051141807605497478344249045629635518242291271649592497609671507962558591049690939871991468627060743326260315883406616341776290242217400742679014678202660681952961258454762922359410841961064879610244580221569087316159068138825800169699298063315616897911934891606844257954256523087444581799505052878290597209912770741373740942769144678525927529130207941004182494183754314650272952329322667209313825536595183159967875969018165164770505333725239558808990751503753122795066966872979673713162318667926008008458299697656206385965327930588319436814848585213397131205651373860305663054675150925566660742096246301871090241953112815572562598854755868474370618535206089966342121162270334009062599887893957546791359903781440000904197332402377518566441280878910082655434383785346342006537358726556192420818596639758821818990383622322808903458581255745646911335663969139154559554780239901084845389589910097717971720750439492321211279842255037459647886423104519853689917931407387034835139537234754045892730898223499436544601731417788890104397930061346680056679780271958064698117490622173724860437693339283061020952600699473812219989199893946744635029619358920085103068247445140846319065860099578831710269809496702515522972344229094056095056792171614629595114519852665486801531017503934565635634835639159896180519670635828452577192745091005179487784942245290746779531980300573595496346037444872021260454789021804546576719786124331287219742147200655896658544993149709381295202458990098866331265416080129679247678471950564259736127873655860482066955858556745830062872028567576209184885640050655319352726911959022581405682193720062348450774082406660536535344414143927894369858158479136969342861007358560808367760292660232496864297657343743937677127687552017790933555818069111692189557476882118008601323078702767726759360530087878267719899102915267568153863887849401046980393877942742401883593387535769697123085517738424392645431622699207964409962993539654915133190671790170137779249763534885061444223786342726171787915474197323730066841008449205577025897034253732342705831317754774375495274267708846501911450314166410183525588680110540338335905136116999279151663652497874540448108590960069233142891112925153307075598976267949691771265113966037668240837596985978831393280803553640032148598753167732140602989823685422814713648126877543459242508668271343269328253359579845003908289351195217237162731275276925442916721518025653710642182589009989469512968557983398407962045218751338698102589914351562309868485604061093836164156477839518874599223358966083878752085042779927603749404331467069260649009647924343702778903454408594285937102661427177428243484911358154079881931832193100660941967805759107233558243121995652349562690449049622219925404277951754012091567508278755178168752563947688425677469727740932716723749979904849209575921198438509230624534183638722697825662328830272656707525432809027172396668563397009275080423410657553222624911019050939780099860359450439901416660959036878811354162141313245253024224775308021553402270094072753063312686312726282496068232010381128645047532251016725734209455663472219695652949576379546585814153295379260091259098796718748828258493461851976378015086984296922618676811578081040105428811330313431130128444822675079695065046707284301294647347354851605812749898842441454267134399704826626360900239213327130492817909590718925578096563036266239067685133621500596107208183023137654820869900842688761271443438405153134534177310551878911584744361702949142890835051114340326963342528225028211898227369519917357281879816146422230354097379846193309964436366985031386790205959795038735294475093714684306068302167811936183646829357691896989611123109415334627819274194858743115946080328494406397945487680702644172789761914549531770155354770804302692194037635373957191053914690089401571687190241908556595751969706391735137451734705236156381663378743234791660707464651346481442899432963671380849702451332194669713634144863779843062218404298970068582994471411183793844051479239789174932052249850414347483299494368088312617234309882186094487471460561003157013967601689294485455580644946279831870677504409417691567064674229437636311670598249068515860203792267896466187361599206991559527688054754162024492806028280523757636108174960646031054817349810839330074663871726798636942761591561020285112750156784063574683460278113432494099119258943543589900656862405748327437331241597156684221432404640839527331218148293226695085896120351363195391887740928720050907868987890227034927652363932053820059045567528157304152741984166931244231351072702839008559011994068794798448049423969576325664947487823185710573988040578522584766816601481007220925044105591179015380973428778284836422149106519364639679366388226009635866266084476721094874395515000906785787494281230518916940044454876903807929767141128394356272185308282810751809216287728243253835505640290718669718381225036155130169964082759752034382279995338961793379414457814812618507340114618305280953377628701355283868984091680779867240143074211920773879425330708348428850844435309314662841399049592634038283700120578297916527426019079031907020255095385943918407397170077583099720358976232860901082309176748972672322067314031263979319698209432389988987051035808648440567493759964476444293773488970324046042762054180663636036911570214872377608002502072653719638619500506609913793985922185197731514497905307611801464521085386541638969115109919646924318900642962590076075670860471074985085254896889018454337452933308321799091473493495000396094385437725796317161986030108685226271464742819697090125065500541813260609490742966810294739591410106245919815792852186220852287538501359706270042666451705888479034555777703501437356507047055495730620196960329782904060058770632492481612933713085760550374743348136134008722714286862281693152358690297361828025312983763627278017258959831210251163750962299775955398996045387403560146838649732682783348776746657968120413584624556845047044935211003495639499768712713910062102127876507694855499420825499801146106574618342556556073773673092327216271456802779370763732591095874848740479655452206265298104635835407218223256625090571988576414938049165358544344653583913116921735785153497251046070379182867506258736654204436534592305172645893292685149519100923728941166214682138975094902766827445265081618012581956584031280936811533097681557903795578339645478111856161176472981499613802306550101156334043822715677208221582085568517817649991439323214624175235141648078211280113555787472168274394208401366034353024588865974120736434488378697352988978959558277244382187034618890331114656633102793934888344864173262897936482806209792290620115380285940126919071345977075607447731050063258499399798577558073393406227321151771458696669584859358885971902844542119559376339063499190728120169809408217179516778317678707546547350466681053145668466779847284762291198378945905552230007328154942003506290753911154805976674123615436708185091982804042449171391374907321842720486553495944399803195959158648471706829841657566954954623329925810892571494039797968339933470216380334823185167852544952548738429810022536392781571564400953929567651898725426954955025995208189652688966064565563074110953144713664935170172359023421184495111516311796524660034444568966580824854779555543130740284017856160822320393191910478148855925003088137169997315424012060775683719392366103393183127991775953118347655688196329131621433382426213056876727208864253420322790254984815838479666028251657721871270144972566681745711830020159393467098003559774228880610427571984393910483087051899405467583307970284256244107030831036752724090534682698879559914608790620045903584864823090302401522616558027192135727557446352421144264298016150580097088036518077943001294321415458467163167636834670807555749443241511654839479915598991692419542263542542082798677964538862335526621853630436586642595867460704931974491335742313066762110375709181589434867829235327713210780857869770448187285596230883273993020232820578424688038310261671813749633525179392822202337600608553957788666191234353409807176562887689660391447189339593298675473827416693817088446128865475177876165618263763603673375915507016255215460283083615316383639216927221361697059073446462899294317777407106674115345861303457936081934338457812558308596368701244599640923724679701442154614374267656649027722710170664782028529337849570025695504054006790776475308960368955978808058224945825019099491210176405728716409534739640922667661940258756199851685735424485309704258370876767058117435806686176543931594217245358682904387482769595234288378961616973971711300848340345423420528227684109483802545494794555911803263627170622539455231066572840584652201242891729450861117824329997354412025323469554498457678813638076149419361327337727314435253569523697250637921412016147073311376869209345382976872228490249530838446744894124797404695778408357524700799217690655773785712659613649531313908548627779989557118778887933213897516365056308945530197763451691499214768873996609552863456339785610166497510132374314946798448653938597402467100809460216650393557663005531714704491795132210895814644798858489803949770881070891528757947698119078608527547564070717052533115282229202565148823278177337870344254435600291684161204039327463631878764614705636886421073581438355525089965619398572455867312929106901388603611288753756450983054442375300339808652685005650942986464739199589519090725691738175994849652565558183560092074370524197759825238361377392785865091714330196655727776421121084702883116970543586800014278817798143121631632130928329093810212847176720011944668641722544077828383121577908178508471541163878451044704251893615932700869348647183419563733114747024589826618792478113686489054885750885198903658488873881166175114104217348937177877345529738349573311004241873982999919298822095265411533050608688299288526012371250062539603001371597442384711870334398915362827264035385362010123015679731631880408377645732636626611180599281341736609010122677894142311731113848837114432313057430921830316864530736138295208699380183243429134479329057812727915496557767763384151327702371340999708609876010400514196017523864961989444772500588856191149929929585881167952800468132988740915353495772782403530180140492451523521167844553665622288186518940690292469138061158300323174967526862861063537284674853035214412112611299794347750889202931560674373067347864441341872073552752377504713670244408761791332524699355928216019481792824405109442682227753730869683217180228395360522625943858891934853321472221324598271958956834648627974683383815540614778213339428962176136111842347523296726511653000996563102336905660527322420815690842937131441464701885559925723897099538810794665098731656123855238321003902317442134913481612383646376767086767684533432194925852625107645088122138523112970565493395536043421850401793018598144806888548682287552894863233292445705243300288830846099123760806693115021061609202455431936202987212138598597311830494352302528824643981551367919964865948962809404957146076292239128786341958336554875036397836461354974286349113000548668223774735436428153206022507856545245672380004140430311311953332551231933614070582339942587434213191109332047316625066484879484140899907600255705922656800001315787715961941031135582694931356709560249460021722652325122227959315509902834921637226321118398714376943266494719285091253861991312473931505008990598175971018678575160102555625174904468237444666505077731570380310636772033024783334835657388787668488399438471248805353035047449503702228294996133151239270603694121476406046694992889628316793075891664847080888310761853649327724597262419124548222104413628985651010911672075852584711361209597580634528167556522117129621040398179634234556638265614335673506419971613044442098496954385698450725026517596101704990528117888203082942135003812194929670665769496502409899691079880212542298438689664019243428050546429572983477018434014407843038696261475243072571859488363799793148091835138606677394293010823989352983897688335112930113516871644536517040730682127941714193463527914457881563220872273327352560269908452345524873643856009409682650285226106857696473962091758456865997476973878391251558493784944144272585354492672381534869490557336792022819953636326075930356199949733059899558453007595621095638649906449776555694607903499830676936895196485191930247186512165545720878593329336244961313399988067339099241506940338463798176265881602012580837854630709800692382806752919260104170017373458113325229528972819060101543533478461018623128270648903667967907701259491186044738504485450184514193528856443258282488438254890166578547427682434043724144013206829181321839313288827325221109504461673122076028443939525971314334078115085042195373975279018828781389611497102592188652912178449171820463816586012521635805531124716157390572277204028463554768932245386251142848458673416866297331585143462804142330655157388440780927171272977646532512157420927879206073902859706109273965781669779145449794799289722908552319587526856027637070489840827390655642279557457334834926388835456339881247562961631302893815985501435674276255549390973731495454011201654542889783374303843032396879941215365392951779984779093221375122355941755831585265177922673863424662915037329415415400551657009319554376397830547633648830690869219244038873692130813405806225739892423605511680141929247779405466539389437786816225842738381362255927499930992898345692423063838729461596120571722640008424911912875518754100621720507242972661997765674233618687590338100551962056008333970914471262906577987542862287564764170275831076447648084534223236153125048682040373917069609581135746826307630236861799493743210747666012899872650031347436377628203290587925050097608818556624026332899009037185220360623261471604750635100013066742422946528744652677887144354614587929753648552611231990973766716361522628114709988431007160368934141904823407812206026236434237610776703600522142037766703964333381260097712762674438207518860675925092751513046551646025563543047765896072030106543747637589425389847361933308689276233198463661300230658006821473152200761309579225017654901032115459614948382425754485288062876987459921684994696795747084611383954057052177869901880033363367628002396268010571541514178314376556252420249259539148277292761459187132655889688887866927034314763958781330386636021909141661616906132412146540636356095284945393449572851821451588887609411653639036508261878672297544845076965157600943130287542909509465502122544564337179534161690440647129345146844178128978800758448723086208223753847506857232131547807563003332696045012013100003911336321494711964135375558523551290658550152469610343371399780390172542619813379825586595008336700615212296343264875898435875974390667201940025068129741465443236390731330006338866144966865161718166994936223557156754921931121376224513295293873551446026559082154552526858722941447335458891115222368117437071094333690709292174557078020621797329742553973716705355848582378731707807196622768748587487466969062582422605141018689445513582253894210618396070934004303997066336259147159106900275962426238467016118011813553390349085497039306083797060855971976095934482806763547757399184852653213337676629075405218159663390741037493053787508171971613686964270577297325586769686466472414176264383985469477527692739013339829698316854470501240846670893055531690288376487448582098061356831246818160041127144137503068827761876730709357654848716445619697980640553521658597810129703491256118547932404106201566358067054980338992260850497402552555425652166434728905381029525359082735407087005592438896273068339335972432461325914909115219787609815752435737396079704852918566395220628058210598529278254276040060867535703074039535777929275400375629459513847887977373741456388830927893875220578720041169961152597971903376696079888841292239377123491889920699250750755687002529848065087235189429888785783718453012600045932861902600985335895912616234313740217244133662168113653884768379708099360541049328763886063948147128418886153080436405117699777770555278290708943608153804126493139112803572703724517655067095642651775953359309752226082143916565408892416829426190188052522471649461025727463635134096873490737096781275571806449526438048781540436280374252927854700748159840876812380389802780786621811587422216540408018847458834676009330821345981837816042165499632616155154858147636695143889919534112235318356027147839654946708693809527490991677555267499613591512634321943905764938378236223363177470287489188119546781416973742804650168311468606949578381888634036070549908877257380314581218274887639720939091022478548902529945796180357321491389851778685891109861860955729173924179865401979359460870691820569450826043679698864804860054957557758482571045061791557104710694078571433298068156161435851292136504782954770834986376692065758549765529698817536198227493607729446025664108967246776754087477137450326100319407325169304203183261257648726168041711289747942821431264579018147916427956661331545285153076291869304980229300306786896768709523937353279490516700994337042890502230193072405741250202995071525214299993874661854110661096970943779162544347223471855320807647791211337619163479229153945679566267804570340698293423979263442398839909068708357854272418650778000028075815704126782556200290701942953073965046537226582969366243927180655733993298526813910147419890694446241025374596587057440879437326096897296070710119750110642762495310744826272242865320506460506619015252294195441017952336280685361540295558609105332774434547827182507968628519455616070745393541938171457442233407004328769205661007787780370779087520064613024402234039540688927150610029895003075948640953964752116148701025331871204943826091755179812431127111479403113888567584091123511887518952699209276567683715602069798280190239688618401741923496463506912449094617529116414320323597733173307381382947825161154872277336916825568442954212222939583679554137781964366810477728141856889464624556063460230825942695357901747593772872831324089748599570795375684114097183970971271003646135009689673740339443612765477346944784387014095544185373784652538702539119759250492437670666618915271125804637153763559703489838463118682105970687488347560171354345106266096040854622205426040451239062348754818884699713391761435430598975781248888476953871006911965344445206497496453174069531385861164267309069814957843330538106660112673239039977003433652494740665938110496316795661403413808784693481351027134341184562309748275881852310284055397632530417964883843105371674292084853775223793356484254115686899515140568140771510043123411673961457610451996277489536399642566619753895256792576329491573622101997933666277429601326506016441056401266068422048172506999287447680131924002335111516859522755059145376971449979304631773395625737615717907462980370561324243414486606497392625366508650905061915515151060992368133734390436729225120569703246595393333861585626749090016441481970619190580660864380367210209506843532913452226302345711621399625619691207051453389420130548167975288421051657153249363736452645987640354293814057479166505359062123135174913672449100758157842700441325378936652940421015840882451841395771421849196077129536943318864695155085727386194862760581008541291937097613455341910690679417080568354508119089196158137900420958972553614061732481681613832196606817740688122115189882409984727841082608255963260492283305823022949234373710581667053446426193104636514786672333761991856729475952039573584876418389555029775591219749590412869275517419860654742447229779517069976083153527938857933290609417246104772097123646972026852325098208699863275557467297787718609405680203130395325093508986225897235796390094578689094181374482666272843607490208278392274823915891059495080335660849155659889616403814897058571632985581110184492668010745712279339112591019495850507347194082115000552132336514358928216227717665776759986585121813572372101361466985923044880755558070362506210658200690686256919480891548435399519554544928647576750725619754123247340036096022937010054119289772897000059916051179582759558850411271558637741738713400243209594032740971584955552635316206762381605322284574593414612396896622853636972555317837796815212384576413176604723726160657885208986624435038746214385057635243870310188914962631639518568098240620579845636311768287704877683070597243911111138351588388750271415614585119775930852364343348186385399551145938843293121430291463444666529652931529231896402688352393108246763274116234380497052542879127948941991688539599326578210089345311292089746281136274126161552285004869093728632249068133608237252271846622145757562646829898372247076280352370428851422487089246285803910798329029484903093299762922937548780595101505069508753355208046838690897857179654893950515286473665111491843314256117484653560432764097055863547040206142034347601505073002085242461463406820367768809704047751825613357814306983306378234408058592609145241508726102353813403065608235687260638585914789451035212813324076100499885817313483986679354069578158024379208494253079300478004897162332725260306870583345504365025527845808229804998187492380387818774419518076669016784647732175814763788015854249038695843917948552928570643462655921540890389050456077183245478990137279022489457509931299752212700483749689239985559749648301921512832116912682138121071319079642785642021191598618533518270151958152455346350241024812207477156111107476376214810948167036948969688263501643685467709869944178639202057186520032407504639035306854683460019735191040218038073493103261276809706398382555439079428148816244961006022251813752205701529136049621548241111770268958938927348914867990437767819733609822403711071986605404048104208788925282402402165800110992031542655137095668495749719396212334295246948062531808656328604546661273473373114875979703556725386457992017229860352947715603205332054769401495783451335782026680426632743338270927068872890935361034448189595591696934213310840434643424519921100962620838969003380126181416764232526502006651875477326535783239711418006236380444889966621750527707458792922228515075551982683944311098231645511765141138227555438416326681996873390939842786513519781527596093088249925161305525323685841131876442902805296538629848740667594013969133716332071026353035775611831732953245785657503940501098710262354531310706716397197194751356145576314105856825259981080214712572788024047760643087865164756065434797587797838181122030395341883930575482719934865381379119863283578556672127589750520415671383222333258980684022039636485886771490993701653903358228473178486868951197389681043578567010938733839789323829107982660864226191427381049962396285124420964682278502433683511357029586347098258711619543471692606351475555474058438610646525980206825508711333330216961280409757064942334940943648966879824385966672517629354103479776749516039317003591562257273599101695819997387864561455691193069173750561159659645337712733855938218425550597158711497454469445230755199650310605960394276641449537711332675027596751111663776925748839474328376924634951886549869196838117872275420156339269643578866392789741017115299653828869077194898719506941161936825946095687447350857040345617446377742968795544745950006933492652042754708132932858880785859939305134513496817872340602051272277774991625988748120389375061435315190018632340814812854674117699445547475763675276942765925139806722135199390327042552029531673212749013970621282014874583553401325152655529276417811400379159549994052367032618291967649677824237945622571035098617223751926679655865302829243234806015425273831283832932009353127860721963812791437766538709005895224535719554402126141955492320231935918420521420825056134755869808093594700217153984014962015052585260239881135419581825976124607302903633360062123911573984795231081353769007445061023566817755418581551784307041148883007933804953320002189321029834085834006003636049118687788540710669022349067927355177402466538567577847273471369263291661102871046198524135097446263678527383083157097149797094241203629178124506115499155566917591836714840809238350607621771163983092043177657798363503846300503959277288471047820430512204979136757005619188427856803868240751506739495292814356117398611162051882619640305578949563669449226889064718589086990253161174776961242811575107997940157097439324097888375894623824356294653094993394273040435327494919310759316480019745347344751537712514205008725275858072326848879836227930456198521412147767155834791324398471545744142039476743065685866376522923007342326211239261228942595213190745495330409830098545439271560251092881956197089554574545147898524480765464204074616506134716058360292279812031960859769002230692502163699077031591135083067886838272466623017711530250986829562022750513963261067367117557233415857854454133747469243118297663916541062398706167051755464887119785266773343534500316519611214966820355623452435290902312099557391671843461438956697412903465416500830408066382205680309112730360755415587085465905759188480577318575399169009559572598877856984860908166411419533441329978619196225192508421435246607560359034206013417392571981810323603525662605492591740339855036041550092298113071934946688438973422481614933789185192707856154704284754838824059791106262178557969435240351098571231302932764732356441310882195560070573618053620965551840293617555919466744501727702673626931272675300443733197908420574326349988732319751714381338596052927789408813357217901891893184153667507436908800895841129919137239376328960739945706746405033597483918855932908282919019531321286501219584742572990628761618087355596306370588722885479368675165815168672573030281327056071979597929496805493024004782408857664320907322851703856811714016488586708114329717349705424422290502035247564338826658349224950025901876710498996252779219690608986296899518979266429719615339819537043178278510709218231664477801794352685124334348970407386368306177614115321613240966467910390067413834753088814284311232226162665492029408341972432604407102746732466048915533520325884071038752842178309793865463130078703958675600164340836339987631239282938970727011998565116839936524253722777189886359816727012504183326232040924966617042696337515448938017176776272853198777228127759903774661247626864762089393584601665807758421581304762274027106731734692625441252514206424087001507381642919688561736182494687059416227628432025020738364519745410893051776180878855165335449997003733951200736725501523114280320352213636205748133607578822788754771286727329273373798509414119284303026019054352667289219628275382720539546109008199540024428773116607312556427309770240522234265909310928443697314066169111497996574876614258234031159564252120638263265453235039051496110367138479489502483466924093758560873344631585363370548774459124042798887952564419212793364652317642709233738026633305138274928066519546689287146560199430905047982127724871670142353360924772931243739690888998743416923823600253791195628522261274367949295983179776824121461927351374021423460221165958525180797151550857537091332378274376933474446284662128908589366413090893512226239961383246376348724118074331354475967967561071535636940789616009773751852186005483470072623693181905450927986815172835187111490043744889939192421596002307100572518584635279145053952378667988741032739840838994271058758675568726336522083569296530967209173373012098086934531087328338214933651567668205553321499665827400359673747793884255514980494371941332381426980835898263011867844988649254499937726642281903986898278538671857142326512105034061075098926036754889583620848642868310272465770689511577511391630244644089085100668397443721498877727878716670455672726398135543645235719451638315745997448916572566718041714835532609078556987002492738201901085718656957332291636931164712767558651786687323864168153624896402153168197807190132036355916205440948543205922754792048855983894147443694527063823324857558136724069212333563878111391137411607149165013157611267307276921437934868425271616896150776468891289847785853145597369432004357307502141823263633176861895177704872962347782973597846868761441689531702089748537335548813746888282165013865879842026917568630864501318832627590163670435625293176466283284690855204097397739015836954191118583914509993470073601913295164975580915524019964923790851171048120426124535406450318924327545470056927490772654780228495880919131688946567187500326151814097582694624543974763774932169931846112108545267861391412403625452978876564451990956111166397052669001040492754511311140751130457421570061701101633619996500135758347721524162104078103257109223010748465895332159762694596605714424981908773164533723834790499620953487614268839208938131147183056219344364896515546398856213539864691090971583106706178932587224244235952920345855632334606614986195951695716286306035914549552786849788942226725108330558382858710369693450222033606308076253866555013541891955064741602079240839050027202135084964024782798824075733330031437125159644279945570224158354186069916575617123645416462559893550592835564420966143950742444385208688290663186965998099897568257095206814466950028312899931949235425096988127682798864200128340800225587096989675660724324009641974135592078594999983699454349188078667549324650854014081735899862538077729379553659836823452988148835421867578705073981949441426199389324350720455400417534878152647400151936485311113552176046838338925649615338349205077346509083445685530396791676144134093203255193144353142014249260742146979566017036719459376740660153544023667358503402342835558598660989157429790129643861672385691739802376640658481329874961437538905527215182179097658302219266299374142961982863128802410983771090172641629839473915301614906449538033735076212971780167590514732652631859148233641706308110044963102880330307357307609738328609762672087515480294858595397637332395069881160543241809816507247682712263283446277062997444803454678846370192401837610649341763596903757773260534300348375110635912837811790434408560860364699651437873548487175436244390509343012238566342349586561329134088877616189022551792100953485813262295363737290039034708306426992516459810469778943169214936293930734414305492136087184633474100609506952026641270463492747348014544534487877452002950566885909850350720656022273845443545167621806632749076366370400089658108430385808978604974456071334735086229238791121506018666884219876947476169837900225622012951168752260474106775774911039825986758159033284356748996246057968249244011398787839274701541694557275302229732958551902132525279601766809951813898230594134073504037718390476005777745173945815702343427952175043359235146307378666281334386701036884933702239927841171262802815853151336447694317731587084104611287937569871790943030842060648309124746850824028356534091307437806588485813601773035147208650565804980114625727378171014189456564694589826597792380972178497573938777498538540894554967700564163623996673333182106459953769841834935798707076634034707638319470306680787911640502982946374615988286529939342161196164126149432573788003339626771824916850068838991066338496156317017454285439239155458471522060979978373140807008618308440678826942814837365516608360069666079523125554307999377851422018069045747948625945877580563191266354607640211287829876473268780277967070467957650190859285217025112362563315019401547617906452518947717603903484119038532383827262118638469904648966197554120398281794644176472506005152198122147210265589781688489377084801576538520977286543445012385264349775363223817286352102851421307304096899522462782499685226565261829843121803290809430481661401053085587075706423503344029312018932544737921364193129844896767287363491015951800282228913804322060733014669414822803405322271019049615020791809711357801338480620514095043119244259425130210649468887400852487490081785431785777195109113139551149342689549160458306303608672675178160622971251230541179018154117437425635250665109648434954657396970530428255707568760719961019166019660914077449369420778889512638078315664757000101046129914581489005864726293865568028265796539662095753166927977145274714678657897613234263579732587050812101532457835393620005693346043989306607614633271198778300375116995128167839081027400555824295467156777288380916941446005141884992970489365071549011883764267424607818879710600115343745506639298658738662680485698355066921934679485943323769675625235834787780640912350295755012777119465649372331797221358545138024326376384703661624822469689544620204026371194669598553177375728861775006732044788223113685502608556916866336629739570844912303955914768419993180573298938149202029736799366844668187751369302566006932026399984306046161219810220703730624812042969564892695727564552983140776652479394794017130237698114033528556024764937109953757623464866788803824957141205255801424428574806313638516127584421671169960024645805281470412114901014323024513826188623601821244368879492230325556264629262336819707220321343259120320816367558973392801577845263599865426851556779405223664345604766231637069090717763763762298329976217381835306337786757382305049070916701349224957992632454453123508592104541604276073801759295936661510129913969552073813919184891886425219437983740105955876490941834995979573406064988899210440837123556481474625323735633373517046894497497889894500615472213061948470776173786774226371709944778698865426392758064689375494705699314084223080781054493696314202608237422285419040341416657630596863241555112063098236710356790839392930186632521870508759572116456087152203146560968393449933003968770427020543710836338614586600216779448319069759009127654404670747893017276019399021662931030333321227122929499316117757869799600663661147437780445901429548925963536752298402395094520871151596333233544130491246652974583818509638803656295653023034477162670407338781683779867237028443210466068472275392605968831709579051491743810209898356374130268032728822084852522534794307988661030903448455847739039904610362482989561111425126349415821741437499384284220555834279401192624355123648099911917138357982881588662063768188054090814118415603767135728069929246397153401393727699505360916918170725290015538842186614968836776491678843322922076462824500865811549618094518170725303659012682056346397009156207391281372057049412045070942478545775471479933822468273476628579731459175793269877956614187371405088739995153735857979145070610823384599485011453178761093730791314982454227785338323991750890734293961717498061050064989475534183653442292559766007254829976406661983935734742755856744580482605015488100068674859097659222790685911001669494271459207119201297880706282799251517945760938052260934867069611212907379063343499433540291680757194495859879255527484563830099062052090606026515381547955186982300342305315250405538321879746367348975530075292938636518748403553588581944641589989096592552003826328332351088510237064587882628340739531333270958533980969771494694768210012220893340483165638591134491176804794861013782772320031174124419047633687767335487610292199012714199957498520251412010688763081420834149954219197428623432930311015489209344441417538398531746003180458134538897750408934948697208618428872529459648286256285390083175441589674614246303033741554810046675289434551947642198395410146367834283552249022942742835325622900561676651935723165355296155392343786896428695438269269106195942069363364692366886859250161111800450205824593599223770834327826782261228006825837911019442793554765226186248450077501743359335379003631945667486511110809240623295445618527550464967461541626158315635836946121636092896120217534051972023996499263829735649177942131615268511831544829860729273608619130914009120032678673414051936371506896055677678632709768320502229533738342630958600715910768147852666958828758448426626010966402490564843339517298156667448182300666385036268097878249099324117609629136056452685930094214154030950887955621508570800443486614243216589131980360492043960729408881870219006997946243514175982498665191593342673774205644603085298379126306460243861750798866112173270457880669584862157101079354614506393019060567417244778027357558074132118847295736205968927021752254393742922321063849266924567233614543842922692893213514407044779663596449613521805211670001098606228741919490445804598502679017850575016489521744390034021846656698862883626704009663597070016861405186843122055197872005346369981751960251846697823499324878917683172903065250064214415270255409040629328313746480431415292616172558735666837152400247380012661061051924656975380877531897676501115495322490957578231895997429583146441870040347456398379280467272578134781935983301212564316865685005132437119542177433599142599041530357311144883588313082273896122852998172619744316744290702098669758938265054150428330096521985021274852619538489541702788316898703835349035548785022756272054530475174240514987199060472993125757805449279467779371800516215243246992205581344161624862340068049812823557488099755556065244041650950707972761552869824591824003623549630897579167904815956003104776105391107374253004675349787151051404773641214359760671520589016516005377475599186133787597974538206861868389672697644438384188744858114305346853275556193970396616477415046609194892850350445228786723620632027380329962226378571130170414840408905925436267794133615275628368113209680461689258773005332711433328272108595992969234600788988830527720755402004417579930589978001142028680713432713226627437950672526715098831992340427354601461806144048194280465586183756321883378421476002539645313423941285285603240385919234968865098793543052828716218068485373522238595630968722128652883858868201240965093138721740323097141455142111230999973596892142911217389891129229313923693554312874426700624387761629567156009608631215065733070044989697711221337671386490315083040949133130986631020184527649648738217281250092482274906934954781488377940131874558505812380985210668364926943776511490968489497332446514604363001095392112237062235622245124935044066902131757219169821381581371539388457918637749646904784798485829974985905302243637271316781503964325341460454301768863872621408259405617759400868513110876108871771679552246842538280269180401811197659940032374539541061958716390128893783203345920960913118859329138086363312133941827460588190386435077761471811232989127027273152411580211638525302357925178730314886545595148237787796908191700568602263553368306864313256598501622752018777089969595126542121388632245815506142183181923102446989881800558146692557394057657431074297902443305774201834491775217646775679250891122044372623238727606324923698799418585388637440705737358651630047240944444769827010228941671114171328535402119329242897068169593699804055166926306477810218638370463759436297176941075611230390519991905982413861926750005798165322362015267415669286497222095770507435207241963075074392521469812756933272566346833516483138374291436733975146930804125182207067082381749209068575825408396179537526447307262051437867741478111749146053582746612008334473061709169574008788253153161545058493448047731232387066434339655582135026806343037233116953811044431546404558531423623646174269065935570698011785807989704864789158761446139288743651090279241545425563148065382945725275212686323044410209204836600310771549107367521823984305331293722281580765886940325689323117593407741903680542706724234145478778255311073146046094463689853171134376395377330690105093334724189148802615266466057658648777457242471436505729746125656799364714322644242446195755399884249970835977194848951858081894996262482849041101457659088947242762532363182820680189684535473024154748930449848722416516350777139199156316218221461661201070702799790766231245698644076066551257833305841362199234119142432307683372491315980771983423358034869840861156018810419637107383848138065779750423255863412315077272583070372341017609968569732742662276514033388743722993965273077679723666531076046215633409902459697829054119716163592213075805947109839240444984082298767942777851148933469015790170129576188349431171166388579157423704397406999109032453859724610190343231019675637369569501728023405032375109063192207589400235268052031174123664791570772738533774075923689803477052508536133166717816626856005386348920011539115220500937443750339188247345307457545648191335692375347026540833649515956604908797189707636812070436624346502360324590320460849244836009903380411249184231996375470911223340349910018293866831662812744615660166127316042932560217886896434268841676040714374150319315513996206976767982076290567224453634393451242486132859165560186862298072743767142226011324083026684794226071113312882309873328298501281190879655385060754568347546346334150754338114138626445703514493052011358343474898724983273763554756739062449767667480558900586247824586905355114419010438299974045990630953061031234867373340101334810750955562836489860169038735265345588266270244109949190447147816924441602417140649537295121391432974893138658878996351766057060954866610986728537810933932632286422796072004468321704309899395064737322746751421087902971436099710520648181684551522678344868128900062566510208168486950046339566123745883152887567633373942301351245275337557061525444927538020584339270393927686088402316410874089689106973561598274805537573560923484943780995955687967044350634392248550168915349854328027051538693449976615598444420479730844979510120125341588757299757322002851115154112892174140949186783461070297287097853205236468868134284337290349759341535764436931705530267878790209306553808001090026252784480583608384540477367862978193248793921916108496910078171267927248875373162210085789915990891185820108392097333984072703702144852277435252526009995271067802642431781337153289814530046682975543654506173211195509612852896599890763276475299512019397412758022459751673112116200097267602460088677694241727717483809359441344410189482484974845888303667306777279635290121767970879680537615638565584411510782688927809921672177364772175330028675506363249287278673212112594324838672640400688678812712303476387948988797769853985291214018491878670977468689909320411713303870051893656235977194735387547731033915722319820464618750312710204956147598450517920068533594202377664452081749305787938805267341314396746051597227447467423411082216202379905434496218561499613812549351653929298124106390777133086743702875085129889032174223314759483473566141705073108830356779815264632327023326347649444748456385781495647123815836367557876762629216224693075235722437575488551477275668895715706819143162073896351159746358507766927656898435524319934337692910577717211859798706852646353748953720852297846115778235948899374853994702270461903573046253335690857963399745035049927102774580265470816095091197402858491174197899066261738888983199042808249927754567167889499321204673748719667825093866103443976806173693410458608693571043174152956239982608292969012897854781119174130141754831271265936887774823155717099954827996515385776123020232478214882232064339164272016930984715991406745130914933995427187350890930842794461303707783930645111224939718408347123577937242597788601904390024986638660314413100432155738533936098217823842930779186711578655444221451318973384025898865603113141605849613639581882547153787513400445204727752465648272002267362139345762035397055001895352337546178596124078348955261685689250908232476818507078257649539364451158170659151710722156292441542752506515371525736470875713110352847797765215529436006298572870684441191009892684288536190584706082793248911106262588303609075986413032552479978292481800308841439174967574711596961496389316540673163801022493813545767398430559542183179460415139434106417248212001581045636766492207783591798703212558693382385751396355628169904277171103339312810652292484272898657145069186437314419528800374193428009685572839255902820392467976552157049799112808508897377463019533345853620709856201694868666990860726294988689294207517033516408196634051981790200684202131172544186040894975466642570295055364563454039589316777924096297511331056638885598112552878430146832953549075050688556051242529951266150915783510357160515218310993807509361253225001567684658529587548732253020392636867611827741757725207935587116287558036595717416636842427669819913217203090018340237480828675487545269806505136403248771609090924651389675586906817125690501741204161220720699581248796261774577126471081268340401135569636870747429002911018269283739667495068447859918521999259894601272889900521108331371533165596996563060485976880829007748014257023037003791238776019058329834209267718322137958531120835659859680141143725543266909270550338339143747802560571638778168358793872702976732195225364383911175452634263084649385519867447367533614646554293041890657876671849591175648738272003374654675853687012358867640054155003381332310568259572449006608161045963430577815824794748390253524284780076853360574368629336492927282597990456522861231698315571934678873610986599163333079033045432513699037661637190642647818522235743735787370018868451567322342330189809179411028968452103163186861239404437472582565938223303012215531465199888153721370248326158205940976576993083140443198425887123205979786694345352190399805354221586258973170671319500205032212409768324241095526689182473081194713635871296547932777832704657030925540112078901855653992380572543586309958219645156408745001585155627153079540106507452376945398404986449139773895511315292562308102985212658681575948765050654566643853121620225002460723171501841915553741320509163926133999842793230221901295691271060712365220687259952884934930177716433497781631682784489961227471949860514038117111473804581811598267915267011636628962050772301039178092915575947237672449349038035315679657338886168612638352456670504455193871596340361073300598738176786167765634773941917432070599792484847000601597185809095205342649204472970919658179121489863994266682764917976509071466806801620437815542954164271460775460534839781172016626833781633971323853809284687364812233896862868047861486317149535062432823008276703777118828710952003473356436168604440260045495992262186103780865718306175951074288245271770475090212514748595518187694149489806408652634210263305106059155826221144164334256421271314660809503923427377848757190795930319746948028969376734596879090191058906517960497759917174229954709808260525999651373782155933205316652710807284859352315740331031365979642278463905019237296357669898381156680541984289646852963166847248756346528787665642266428328956369526260284863685364451147627083895050881525667631645735580850627040133558350761548877966553900117062310204707493897211020152069564074561494131189246856574932199254605134905138935268141879134745147838764189579538289957470364705376068319265605975310787469663196367959498171506823958601597443405758560630023423775690291109379283864233494495623704918424423659448017822165821484878641089588385631811205466370351321588076666405555387220550127645623653651129107137287078395447867242977885332018390148399242214225818437237739515000155916123422125605067480719657124007305983186459285049095308070855019294936624981732298942704721503262827838452901902368155460906884138611472461076310338013239507649026231144754380114258051902051649994334087186945877880260903637203764542684174533584343287834543173993892779487496309292891477178048116148661561599234141324186320922249794481747550789850119605581016172905582977245809956401734329096030540572183079307367793429184422950893989358230205302573043336977380662457002942619325826602573405037920009078373019989667225254560403006639373254245445633799291915014363759505106436615637252697444545573755560068504057093673783608698158262649239381160215432637760304602888816708068182817067582429031084470997890574341040154185554641788071574481593868976906303977987958201298471458902704623645949672537498035411800802087730186675780103579588942122679291593201465102273913835543527478369061045934115880252160836037607815414716159826700255549511475068763418246091196694100236049786456680053062993986024550376730695050462265795027356649419220696081347627307127778018319383544216225381021025937475082964258019864811319726260433869710143520365643049822895624848507496482862983828652445582329921917274369940169866087061317280149148899442385639706983497954642625012382409684314420249492426299319311240213188044920606910695348146755492174745444640009606844937452747724179221302768049296061478218299461717153155407180492201104473912626915114235424277072810407863267356534185415736762173703718878435831878776715935683799543950162003682851481528946230905912435820047833317490310569268036688289679749647441712483892610293928938456380889944624002551631952546333842934177904269163973387372843435456799859944215051732885984973342354435914261036452761283437828629755310567057335404974054111269925373808718332844561223352415947040393833001654484066348600456851565219720563243972002950738335088935954059195086683762509028320621438020231744502837458598208910876668844813864997474145086768421144565263945620073120661857496860533118344788355896137130042440480105064128092796063068416326608609192545409300652624116305065898825233827303644378493512982579757906550432759806185246381226540852112614403030461744347196507347582841929198262145450977515342182884175039008741777611218787452495442216456767795009085913685566298299322857089251520162070290811227459649496706760358787183050571654685487616043808568518911852422530425721013599291740403691553309229134691401273707371148374127286096214993253272706792607559758992056936067698552898509170797098451480890457657751140175749310624861509077823734559715325386641710668151144629799329968099112967324413323312382387075860278521455897213734326039134856516629476010382486465636178211305541662086789153631179253111910799209604968943570844638018140509659346117123976776673349754541554910849642538028757129452272831762006531763274986884205199635067873529536194263090101656507406395261282285660601981297281747767594537580288670314449122465335627256464224804398068801060314494739893534561880645375593604780762939845267994780256137961890645643246014572120578829332689659483284738924759199342649599876619631413658799537509120455990216037389332671981825707038309886565285189260495863818818028722688474478110076341855614479586332691078609687044474867007547662352508978261654353525022701657203117299527882372059483810676659227602566237482774523938728796683866451146989449423261966531035585032198791008028299296321885307849557014555183156388854448972600413423397409321173505194025393015051171306669296283868997566063462683775764760503128652506713827050914966156531683477421457642334687995330016430669014977022130372280700710289935569688631500238821356162745603468840218512618080625911322486112596045357381535692631750555162939400871284394447413860935148635413316840050787717723033070179215756428267323474014154598969135447065032835675246766186072697120852535512920494507539557828489042748656834320875668909151604857717462357932176050636558565017521308660957205698012409879242005640226499641690276366405244385381445135946604051100326732689799080602786855052500797928639660356857732186418710426353704083633174252630381532922912487513088870107432876997847379129563150005126232249942403605722983863307021740956575706628403048919027934187820883596727249170171222073629086518770605478550282894559244956763240500521925220192187225980767639407567625278889862922482710607676128748066873337241114327118527062511318254098247472884758879350701754745511843667765830498897241734173636980754839203361936858966854404366050758576444993902005387905309258808230696523834991362381799554495530568814910672400969450539555270578094885467544763694681982696133214413023219967209096388889489687080143738619084982717496495933945808688523570362501324465824305313410458671913901992007692378062341172368686911888079839483002154949305449328982648196989114051333449914058144893449289841851812960699593755094940415318957062200814357386265548871282681128254024230184772045038347764920213009910401618529376765603267349365642740925016537369153497474645563813337255576466443217353846118319006330934628089486701865161239786796342678116364877648329278227412621876469003436674117392380275247711260582434055922274781548893920413240417587877146275826863600178987260413694274045250457822773374957771770973559880326867987969202761257658993760244389114334919171943502956236252218268019630311530033097796815023411348878883156549204343645284611829145449481630682645241284934871380859967560040352041125380734607133414250385276483774746398212657668661197577962958340488299719122187705647228768715634288611406039958641581056939511047950154063563010230669943031289553303435078678648582424954388200647430056497016060678431344376954395464880413290586992904751546982064060487874034615347356121762553055909337762189274401771741365540425428181784943253202778322514541281702584773146631359328976804743508909500169085509810489761821652602344985137759731069878501754024406363062963053493567622714893158743724538171865826769281258152808866350576700745319164195419078238863556134884301151551676044767978006375882946059279850272359049996075438905718690846322054788338624399340367316992313655426429973050950628646031580666104829983899610088920529917814246459895098368556701937890482272057497441678030389328917025509239453253882112174235747279361977745785074476814891627788718759383922320027086411362935310193351066549338103150613379107101679130450209837571222335164903315281103845468318019300838311265390020965937835283845424486036559120525225468357854473889619687684772177760550234422524130858379639191715681577759733682096903920145666678526709924866744207766242324835620906078214104269468486238816770207386912081931385717046709144235012615454956600758449114247878513795035876951055547946375677932976328744040643359528382038472874889459060567189788723516325640133023063478647659653916661874061307466183240124839662531322317449580539754825570336085684160310889385035660472285067453930405690187769866113381544613852477869968373342385339269749626637748990868549469240652462431307472939012458088594905181859406843708710845375873121524370121138680983393507891865325295924457596601183853892936602128561841116976379192777197963664971121060544566577836313905073974490706501556187272472334908836742528974810873264815286776311581667482295624518409445598097519778919720122008392460468542960333383248678668424619119830905154909266000931027813467113985571679115375610125357445335898540748091813072194215458454150870301976631030889863449470114840399935022172381857231777072968236268639912655532457839814168924169101400247600069235862939195922648115691097409200034880846484931788236305352992255272693937200389067086440359160914688604170747440892989126775011257654351054326014135468814267708988572797037794911243811783812665695725281347312506076908709448489808096846052833215158047645738939369428502775989202518657868880073254165385565046196915456005808211555762127166775196675845339274608220351536870722011691159963959280651685552039273311828270822010052715700476277028834662891147522909536059184391288243072200892975064516078666460483595297077608666322867690640256577125638577366847021026163248068583278028108364939677722721914103731729746366468884667322128383753949431626175620502611325334130044683384120846719204593826675790052851689839016314575839798695817448454724977306183388336340367625562498009889195266864820329625615483097092444724823397189277894304494957139230977678109430136969276095877654037348047009766252993706082483760782034262879069738122237781971551303097134193438896054984357401026750580950124114720845861246770587628511282123931074799753512136196072016190116081919586185599260811797344702635654400427321879604333562249536546633680368275820845014159565153470826687763088418554752849087338854282506846956821623464293704809143991949294152169088061519084129047948347895018226108834285565538956210294880620264314726352451133177907645953478904787025881255792405600322936464686537963102822176483857371154125684374314526450426736046900947304787497612162913237304873406145027893731990275768645333264201394259976335683362421197784647766583825451461295514970104132800834034378489768613686976401920767281344278329701521837513507078504599297595006728834952030963726251562100246860628718195223103842294905009311896648264839919104376167016584349053685420269046194307455117124299817454424256378627257104412273855662572056898590138889424003723474265713247557309298111296421915795115195908455934268404395152326900191646002245135641010324360776509892598196188513731188231749432595755353970516727533283693014166545769020712439103127677826764095145026905058895136883402046143223688870454920546600821233068720692933713735888779819634955058272446057658081904697330159283716085657935271372384719520710550793859343304817463403980207297719244013165119005055284347639184651630127065132576893893888916620126817858475354176564360331772176513568314345003285119562622169624763974024849188837283238272937349908939923456950325356103275323938572589591784217778263591881480791143028062440390026685005746512823249208448634936873936753004790947639647897393095959384350197390548111054296120263806625767408025662580145294654778646703636622428870455922563231720647874226929827397205360340511014245021471662425110077139471381243911280641950896525462595615119197084018582122861174753130977484447426130037583664618291972481296940850173549692853364944193782887265400019460854186430419493801820498506997104135217682176607086249093220354454953082789508289747517604342810594613132104199402342814559106466390808642847845881739904819827577013458603305921944162286963514867705003376187846789299044403150544746213892745375810542324746410104431560148808592540087881057878207797812414941780828587247882093301558336708920534841190995481671522780376665572408387216415457730887816384633591262761709306726218438191739553669499678264923482086641598313967533833907593484331761802853083106187388876964914127408208165056802504203606576172020177138514900111526599068707427494127874009412576058159150354635310255337329975723447971506968538449471701127714655992505432044938911577174762131401691101643183189304547365028591343485632578015485842877120203418402521596396593356977877856592102012715788261127505697853761702465588237859170253565462198214546659353782401259053345033576873381108902982988306475561320849024458844543224544240107656182026780248602368298637944908774371587252949095990066958267248214187789684308471457747877941008553247453555074922423504474234784318910761804035855394729862455585653621366855716704367218097344712203405994481010742051380790439953701690860421638537910305839448975240563366787809431272938525657990528351041571965139855700825086610192216175959298780713710559668252260251091426066557224701775111966682118922539672682802186833551124668128614848865469023705600027584050251129877881802547141853274523632734596078260343767312543053088969382869308516814864326801473720515971974755877709335877718749495120325906006411699774509652094744502160589608191549349731286037470338824884831417708671504304378399614867877047104430913972801570930061828346488396215584924595805649820930127443378790521708038971280530888637306315223741655140181073121206034081972030853199562403458211212592898249747661955012069574388466109896807960265037135917523054389580218162743738043907865701580610234251531241109979745104180171276729495446705878148156597768717706750893118644794705307096972286576072790773687290375638717949209347950443736175968682677407622784085503960434705017507104287037072719538144387211892072592751388710055884943805743456172131975625216288535425290723350068285249804743825514473093392108918426502085983176329982817831537947051717701652998642017725874300248173230351842011395653981417426793574321774752790019243902945372835092761781367187245207773488917279135149679857166687425994302870944463648735177622392542033253892660123326685588230304599443749286731231704096497829022709015675048610070105457702390213229128101368608413401380311617624671920896803613782881394717301404929543112332059426965026145820203780126952766682648249920288077373531868660871288837082137424614973076943351583459619256775403900123260474526240377223963403094749690968606640160478317252140471489974871287459885936686042248646490525952775230483274910827077173656210842369834441273333837343521444766140226824979596287696595464797284450603022215466866600769867220870771564860721025564479468142774832290833131703999622400353954463095806766914553690670075993038407098453052376184976452020066896468332339422702042972505333415277904323258359708895280061870113696580139932836999469243347688980708928607388559177910875024845858613459417871731266900748318179557185505414894558822787247835003907530001805480449708804595293353881847603940464456757796376123559612322299608983762103026238900300522209837425762775251538980070640139950002782274562951154794284366400315307726914387871976005737869819623852898469928827377379711174907155608762994194550996566195617018077455381227769591698419796841081289226468659732020056563332896831384728705199614239262057908123870965473342478394669919283470354775461317002218125169319139167269933445832750812871596286062460646428060719891030056838801084955338263779785624610122443941941016609548921222938435235041786680000452044115732710740957170496284809775711051345747088577335499512603785346990269697538726719065111571292181742778663222723532053449031184870468800471853468700767425612338058222964487065853315843604160176697253676013478188802273037544820998134892614744357967466175511085765868549407856602389958353524504191730356571005893217502775627243361268250078942451731745412034956934557445562271412662857767755408092875735611792582733634004771568216087133166818261196488511655581958610299572007291719667971716985732959085716179567482831300805428126870585006023918365467543455117200579105620789224837358910846574234083587740809784444204318875369946481676451383204649831975014714901522588044831064373529848950848065953431430461193663968206388129695945729810654126611996747400141851728504554016901146719355698394698821394679801388555012725774086295908356692020248828026268733241984369680911463490834572217329492530497597330515461148359060549395394462385539497780153341146792451918028545432972478502483747719639095272133298654801542863081714350905198742655481284018437676054882754778286379866201032875230473829539602003908342111926493710841202193073849766870777694883050099113911214982082765191627870285557330960860676227117389558480619908275556817570233445734570270745701742439009231261065765197066685720211669453713859258245262565205783822946351411407793741328907809975135067556789961826017644191771389919807379293151103562866610612946988123996141426530220765450739244701492072231270546266064898056035648036114489893057070656627678403553150740273747635123820319509613566161884124986060439025570268534574561676862452006892594221753249818473058348912104901449954169223413609968822611164156679444659770292463924014072193439037315465120412983886608156144945955186965476085542671241967544760736579986845153765014663704541843310298260731023242670279764215515317245385019115066290476067554936575854317107164106463261937038014060102674481884510322390638150750712365099258927362347424489001436379398582652555627724204098173456459964147608575912923226280765520981141413595309135742329825509427285764015478813271876779760755110126479973544438055529451525002112543343025706255710025159569597497229093969878489216697843129187364195423205088998880965033489375052720244788845581196920277033244969625064078999246496817723412659623818744261749683725699323666013425924929166785816178874707832770526886378325537657173719180150294973610022648738954046904848032439862124375469704023844362879555595333554346769643243587554265757761657143303722751278330065811156946784739239244597861017094928615139546480129345451524021360062943890733562138575206069202320634981924288313496256556237018863054712608127127389292240112527281324792229614599252503312701008215016875160097213005743648382506340324980935764769819988379662424619999576709774920968770578829139047277013417374811660057333831456693796485396080809125990624567462198161651976958163966015248903115577944912587155977807316309643622439960353649450886109039361188051959070422021059898431504181505518805611640148110273551470466481223592251352338193618025909083044426863564637329193066386672128004207234898270985628669080375715090696923947453423231077384443355245340824183257329014770454252374448736974522216410710114141522661025360581252376464883456190763691610807653885106468613890699837362020484623958311691536680546207896366485755224540774995695757468199307181369437024504587487094784656428695242356687398389362734767625236159921758022936655614761236485161081136186755005639907291947825200252616796906017047269910537287503953683683295455464116641075136843730816497869699686740141356969271594829603813940529493083084637624781148856754079557942357529702999266208722400814287890879361984538711459727417804148368896328462706088184116957669189746733922530782515457043190594208889475713715155508176334781209552990502853095275153995375650695027678209299921556065922628395075355428061927683613116947459130949546280006696875524720045160036374259654976669096705626781078342975228064546217101846068944984383352076668561996861703281890427136164313050047775828414857551389392786635011470621812971654499717428003747074796208617622711580431153714067258915198368958583626998993000566325171631174892093339930953884465170884031934234204200848385788302599502364884796596253792440981263567905115139095449224236828119379153763415876983253482779190391667933240641335948361706601198365804428266916493027559204747084245930440564058041357225941917216990296671486747665243704022648743566714175325442618971969852744608585841034570511499315070383903579581227365288693188802055056675924954678817598861073631669029390266095885335281906231621571035509607512994715824996579852949061272145266274277018444769598872909658070617412549742465505423759580798565914960706493595606026897806895723246342808359591159766734914914721387929266948100598846088042567227276671636269042061904691420581517028082183241084618516319189321981905101540057843691847850345426750575837134054432989481781876767262335154344674574535150553052405126244884015679385401095233714083187129157845447847327262305973650302279673806547528572141400286629324151812203754089602654868399167814530923728035140928358199029218440712148854014769720826998232376110046309746085983779144081717783223906512519323756209903491557979099001140931117692294408148129041104145289972243032790952570212765399708656125569231805603560348530034423615557102667353866937213816375498188918269982734329354954077833838642499876692704103359286150972561729476665894799078084567409091866628990684898515717053714205316410045710054706782248596225231737985310629299789604204320771005390768698275986237600020866387789666661211366042620548045099104991449930901494388121720650352616832755357067613291382093607024855994047061277872844060802560387514572015205844571344919597250781828384491046840861181271345531536393242853480901584046822343114569735859004596445968928733618974101711435827744463652981740178340760345381713928475453121644016739934684612138024567942430158770208501577105628521505141957740302688628783464958314287040242311994923450953888065874455561738891077719545524408678209246432763652379677568525392189666315893585091702240866547249567989109611418802704583483036759374263152980798893324287749130429137276118353307989969953893380610881206033324463410386964754247819480830983514774896850944550810954226269400916549521473165901696416487763472909086131566445974938837946730278552798226381989749763287227901852518347673616159065492122333237644628168139311828324239662590966008661056762211901124174659764668974015491129362246860959606734855633599875731623068200988019688977992001692825346497637329954695979022632325775505948870016159064835124016154241250101659855586454919145825242216825202010872179584457352434754899769414102221290115330042085970857580001802039642963112781723874186483958036169454338683597918091318387144163386419806119272799485357486409316257817019359351453148112524388485814589310567342668019744561921920091803572386990873160288586204014157714659529273356917454496526131027424184335958245006287830955910066581168890335113432927352093685592917421380336392820725458145161807890249283263311688757727137235761233086211475479579588178492040281112713192785903723351319012574875879141439952442272816429927503667288448995728866069286306684278978513360829268770464712648254483884349496305350693832267636270264118694502698646050144708685874090268969888299305516865099309919969156236028633415231999464688835456213642916709108620135625875708349609884996429316726473400027356125586850877880659386241011901072248596536206402586218960599102075130201548700384828396818360262373378512935423395097251574641755342131300282930355305740878712083565938402879595946052075295887749493651379103374337940167382308967023365335120297204504006405458875582627045751990347824107844721890816603877989149208607614362847735006755081415201073527366369191887873586635405824143379507635154786502150855163358041121840656205055179608447115227966704018193849519815402993756595234201398668429198635477162639893090277739640036845445577361102548632992728966674228394246570730064336213781282261199457625459203611825635115251660733198642205344957147789966982559608272102285090511174250153691927385390789667254122090993128678398183574512783925740561216825321681737995845484748053970167051826500669461473163501738144362657893150193798899279255019577150045970399540812176155958247397943756802791996235462180426906640098665580603727439941660541799424192356451842926253242844621021582458867733575645663719923716065197141005520315905678937727879492928190707642915908995299649651146294493106440359702297957331176704146747528490877490139220867433567677285678705475029279524103950662213538744922016889912694704263077319251668444297632747067975841346805552545859230064724962415288650208305025285573701770675967114145603765531374426030730042127992508835170954159763329664894313873177784904298885051221703980307185733434875432842696889286525158183747755422696516701434666518599980963955050730999608622798813754848623201011776539456982214907634670455698800215098989859201699930097509139264091803154501486442448853992333909838093804754608668434365336051343377083640797636619723670335502356926723367102066330578188672884256276208843875645975957971358872504481488906304548619402786407620114242835839715145242003564904656331750686396925754193792992703323901779597723843021160861502250396592595034142681669020722839136854442718205293971572772984796698335810087190983622303819673668039388361848471079978093535459719556708729817749624291487209475018630920262575828987358711373795108618837715897741985636049625178162803572074693553290330639530576614661095768008704273823383765523017977490677394870303378554707365667142685077428007186670177149666108157650337494886759346810846352000018081033631868594332882510383929821879260414102226201178922044110260140966119544187949052280765031925129623240951310402096370662404884656031638434461556220449445860781595097557490214509744787622602269933113142175962359091143753512310747000665452993496733722844287893738769431974471136026463759536312285826154145091646327262922192240527303264344889312689159610732994119940659337029926090347757564584959191488042218020016762269400354990449524442619020857452402406236586594342231303038540476426807487095301890475314567377996542337228722877258679258923543085638141974794663842801986605438930889271581329304660617850124433891446534227860019477703026327461334501786297382848729391320346503395863540333949420815292303264325987933909660933061292663886589972263193578988780625740604580063119248566845465975368051929415831296568224155678690148206909614379929117991290519388692535025153061555120968958601746752759872749488077881733762154421598575808973659876243949406210367112596139054594039083958466805334307190612238874164828650276585904317551178919516738330981302190673721442694565332940565497510279631452397048594825286080626138746739699783441132274144633894350940178068659636975661365728840124886911598524468366948664475286049354714220479231304442897279386762280302699318281178142747854121125626711772354388338093748712807005204120617974182316962997054915409917376073784779892213300494542716083903508384392101871151503709391973832686429157834372194737699905378479072597332879361507982534956364976974414892392165177775325473517903499207694789275814771908492773177084514799181832175308531918928263705052266814408138805606327324441608905912731621449073667639719187800262409786070529118669424060580594370494845491628456022827382040314636200056382150089278741727745265499989741692912995982132553185436371370073422965537908736159811244809268668968282668324593049904624352289264356386396543046395913491260466417493211569449948995661420598335097676385378637874520515299742456845718825710296587169103860550776787908246418371223423049963290955903560508315265128994477125220719626922730230387061543202958966534066994559005206447228207992778356481914314755084323566303799299353973398109311632946528776535973493948117699064449024592768909938518488194800611028414475281868964371489921690987585554818893781658479216709392526425159429253757191546978444135671910733758926375557132501818176153403747152891386013719977193335588686248848688010838270987482149460731100959791673896279371431706121111025792846605509463891248446187631081154686163651494679044251486609368254946263087667253307138068882767839566693278075111563719176952304599412573451793642710100071412043977461725185238502268836062851403357078530962191590062789707354794398006471013910896457792667746932911204790814223920027407803890087010579298358838543948905429123330923409803858415839819995406100427820725974423057563080558693216424471367522661202131061479101992985982384115217588641854427623546017514119621439131674724214047588845512550117301761263326482861096796773118732490716427601313780136759031687820119900011563569202673152977274740326633014861958373218582952718581947210596942440281380817323249559338997594554218297239615502478888787773600059186309971209738773291646784630545028585226256751674642488276871953686194319157743084744358976635740867511803028701100414211501027848270050856119836761226942474985388013322987689275733543768097536512911879461518408168660474609603221241269549873467662116158868566834095620343050074477923003729341580038303750702455536002462331870257579010809246709770914487041484061157831314834071346564222246721660648667223376843653746969088602858858118030151348816313544349612383578121099017524029367052663586346434752863603717532390910101839894199464745435738592363955661153636697816064703133028403081719902363283053133045127817244505107863330598253916611537720083429212073663007231629274990563544598129952093564687086733899763232243297778611164541669394659612289730738607212273951037270022652615286196365691147545296881374071635518173491739710213699181227544476717792242400626300179347036104843485496701467069893176914616814627662907305504137394072067591035600320424467225124148064511708014821912075453488585743279108339672675955521956373332292569251451879728710205472563664054291291621076082466317086817960889549482171770782272777702446294855687747179662498450174724734052933501223191989568878258926589829162014110055691101005383451148805198716983866453671608402880285015616698313523845239920007228032078003977689319491520014326745313323146368219340740385024517959741947446609235715797836195049357083529530611238241231662464832270506341694571470633949174071887414233618786409937022277831268278654700372893506648646219673481505541489578677757974732843838869583232935707408749395837246137606122149965338170851467202632458417406738429718690463537786346924175542863584866787555386785999520740698545094406823430746960377261053399967180114081126066670994138799138350269022198873834792315175445393769223998700408103082834881851342044795506544922023975933121415835844555255149895939919519874026016168308216530277363081148244341957552851321467668979659830435369889946105630199297961595511437424541287210729434311032447267061594725161064992223003336966419673657954260960982913970243957147111041785691302619907129339534552188865743617617185890017545958532896923391428696200407248010101154460317844922836646769635612429312012410148410033874333863104677191816747616959241954188491884019371157767509652924697530091801337673357800501060693582211301687196795302923134644300469468745075801234142916075216026584227008963572651336577036478537218670118099281294123261752712066636783075104882090852902507634728325525734833400680389945418407836452779556787471660273887837250134001593992094792344994379273927630709440322690016568478365094696207327974773362475363710127663781818128077642321060861911481140040403980047306654254728569109676138164144293114116422476475529801758767996422828035980988432674658401932690981871097632583756680792325174765326998243826293016981973434211787483106505373255158119775170221866006058680902032402519139239192646598733633643643574156789370650898406352903491654909687630974713780661108289168731366138634380024123379036162211596225226361394325392574006700403627901027558015869210169712686105122497749165316918730560998372039121945124618163541932242883131443128471920122386419704292298525915396836957046499790589071414670564349121484487276548403892802294531773063952303304897393843413648224599099906367157251161043766552022201188589159736653780949293511387478635483950122283674981262572716491719129706753864222433612697283972739468742306872806574033787529478276119687851486090782835153323995194430835023426008240414601527001640793812463368239815757895172105601779465363289468759175601503203554658106538762207096060300340348479788875488663947216671567710282608657216554752026159670090365478833497316237599542891243372615296410558407005520825699792312992747642994236410361830994712635675211647879079954433890472695925428400742407831305572394927677662152491291041878022637839630513058372011472426089930598006333316898394840641237154099295588752766871981234004803421871356609892982798316214609015541042270717747515932637827944863282029394962815732011295393508949820643925267733479792361793869497971564508177206801447461092257377895748542448565956755965216282281063368177977459781696509347332563046826503617906727691897295805284749286169765288610046852828328556119161376102597467244087701361369296239813606004841041488513125189938575268557010299981923746472151951929997867113529818718877862179949591525491167598107031382655607994263201510747446025860158846033678749497303203524817007178622777270862825705117708280796051573926726721277749603639291637533160351446433667684516004432677997069386762947157818675943955907509528840786103038146722102884172989856681657827561561363600286897753746183918168566752842691679190956673246996257855244579873141221806222414730429791538513749824675026420297259981224890939433453712123130547871503277006561230222355316096675922142588385347731452346608172438131914219462776371923437542589078936606530680232179432851545373934241451593890378810601851370033218065542061007467227612095859004245648106896393381420060639297681425980689549636270453712026580728782882795440616033332449835181802889698731234815672623766487091547116133119631905113040778764896858826515421834996983288781001424939095240328574484580902207723961240325669420377155297489472233706319462034314404937563879195208758237432806536790466474700015673250089917878036509720170394847501444573713719979523662997770471701534695992146010641720781659455239488017526830177905488640553060308432972332906436605324289599426015846216624482750884259363064769818106146802492437426275024463377026022621597880858448770624498934636275084880625330027526590763396326362001851522818611502057452183208734287717120843914592029692036501602823167474776638530178531164128643673169423999567785338240052208228723828781434615537675692693556969900099754629173783025854662998388634748456827678439957225461720252441379668357997105015181512447013093793288196148052043541609052638670974778826562059719502667493076602073417901104393038415765338720423520367178859507342060479166118297553290721260542322877698203122427900225865515931664707170394797482573698237330763123109122230891913868619083507399390923806901460331055809867065742626439623878491155330047749419139964718557379937069539913428004955325530456139861250891609630422550864539312953391346191881559297603533618296066584004750777584089531027035376761283647913410970522724213991111398635590167348429521778503248092983681293655081411777811745024536277888922202528301013602219658548113957910753600014774083247244096374563404876398754253019101866779056087452318040611301790513199341404741020323041499274237012725725936551228023845991005960294267263175293214532600855468394531922011288633033534015411860372953320958729549308731211216828285484993165660818030594325712430430049706509911297349374306319422096591158386455734655237822153559160179834011619232865563751939960336577138843719616492305028310525574126960362775842781051166340505296299751499316435722057644804803618497691884804896963603522142966046210881007637503001215673810407428610054156191097669667470469260105801909705482822256662346341296704660272724412272099818352654899338246086044845289163638697444585814801230919667767895690971039486246836119228364465351804394063512863599685033865500906320831760375863880357370878309054380750463110388849919237344616198876183622585370569043262525425446022188020323369842298502587143255032147920101561411170308950326915380682545392294832276024400027981456250888132218418631623809130532150116896502306619736431951101096153299473952460509139808897835291339100647449663022694627314566735220974276532528508436469171259084234042504006118989473046609808227134514030670605079390557705284230524439022244989981930424468323727634774355810074072859307317019407746083069881014311457738145465364607450457840319943926404790099716808334593535210941943310710096716750658610168749956740622071151069761210258188529303755608472999725707994656766532575576478271504076521901429391801062879017168786942845589371805429406007419411070487397845997631060223186694293704640806913846063038833253067840867964203358503141595137516179180722910993220578124091950980553754949562427835195521913568929251079011210854353714823947681139003812606556306315917558214527977089828829976662793009754510121591246751528143501445345815263137084433359977558391112647792506604163063626342413745345966281462290137631476740368699755669847351921678187945920525136798348739910204429058406672954311378329741195844376837184580412769785769050673710441238291163162310991320112722910964164424027645227065745367528127421108462169464198247471174525501358591806236229473236882301483013152769281476193807405006364310775299187779217880464908925570044501856108097149686392238345417606501537171712965044888447840146507100555469954433305095442269826913901185996557264157720726491655958119907964085944588919572150691178487820730200191100817279549461404054799335380195708632248500966942819398488271331699841759689326265065179184097850651076459508991606043568713732051257464685183521218485986673357315857273760326529947553358631049556363083223799395411563505996556915177023569321229633212029941633872930000388754141361101598986372570328625675843983574414398956967585715319168890523458422870803432568964568708721974422789732794675068305250712536899889154535801680288330425558091358206587246966963708203020036575768249258815552019522454687223561435230066845940229720166909637723099403903739596998849389451162037973171582511651562373849975568992467760039129676306560503944568636832907226772512717493494386584035592006360694753738362663766608568982606331335710315616502060636568678134958793526518696536246512400330748549359396989007366209899808427309764989443854754308319138495110957255421532487515609667543565728280474123739973611018681253983806729158637700470213534305269652358604173810840351152026874090725099140123202531186656731692331106138844672757024964090504736055207473131937939921399729318503944134183997656864136721195958431748485169601269884627021357365590074169759137028733392835078341976387185490824949435233482477133798030408753959760269269205502480469913924190686557864679249483807454912144220692735610263765738556707959438205212098771341509273659834047941941286727023267819149149251718537836010772399408319622903624007916191445178028040888898155554364787660496197338051387389648109598514923242334132433765867414840245978122315180724830499880177684629191841284420078043666972374995924982800233639854252622733022008387334006988375915190466426478058497352674397865843184464790946081453769019027002229717342180065550358775371635225011181665071365530210982725125741844472178371415807688465974384754287362601139985022560550520315728258149584159179582458903305386776480926065537564461593868118595540401042480646611313898782709448948340965609659036952209259261860378929986454869042546196794782376251569105159462041835354512523798620741007660257321325791296829730311909857704608829412368093158092414978983522890337765194608065091624446521848211986934410748681050340514363244457994928944616597966540999334083900017108594809565732927610620189241764509909701519833558217115601435765185838851893451278666420372162980550987501226362370774871885054051765533390353031924726894593776482377823068744274131115980792213847687956164772801865259620900547015642165900306043531204337763016345197674326543268411369238993522868046438150517684319007382645632409029658143942103814250698739923249050161224712532746308671691704243367969032496506810264991947541450514225815964631112641449509478006235846540143415156081727049057777820961066267453791069100620625715726708441669798571595560524208614110578331760855667301038368555670133949645246995090147131521647887223122000078853475532908818524228339932640322201105377673897600712509564427720845392498106182295002597740151018382168147833804727199796342075561287613877361602533042893320558135017281829348888575288095646129060359130570863981264702078317097273582224367676425275999374305309092652805324428541148853081439187456995273246836824749415807293368212878428150277231855198541631141380364106801701033044669330373369616360298423070257271552899455121659811184890424433214301799417722554140272894960940849316373224689477877467867729480164633814749720212593295703558456219955051086341019142746913459129031607485384477089338960366066849099280400005706144111260460834423132467330378102607419467976163741612105023242328937882030485266136902912860801155157819133844065713937919127164529209010434548970734324865042032666045896093867457756766260483713939440065717326675067673271045910147572674427387019504387772034640442926038051077281585184723439750773076842866951845564771758704427680941156677081988475240136078481307331742888670435104072625666300841576102889375959638398263895999059025103502678679549499003609621673408413153768097519763929439392078787248845907374639625881412067598384189446296171901554659618711073809410553154973952742730873476393732257378257481827082685545015134429664349684549323565415156638146701509840549461001682103272374021962562548870670926385580930845036760753707836318389756440027782111820859576878208017807903689929280213211621306744373266494384691842113727473159431898851969896101937938740858687618400222844988857468610086069102466072357038255225269085450696602647459225681448760337403432094019639191704305161272898076239542501984316963385914020065938421114035817330472064349263237863263819731512958861136061747941890023179807008403118806690758200931230126165480225686736571535516500254805922384965358795529428456120208853414081366032361091121408081242245515553048198757382794930402265050954033214394927563038827818092440785506324127718458031738358460077232235764750875906172315567670897627737549816968704218616860665407631600959341116759631939114795582501737052159842942960375171844318871317658171343281619730971430210955708649584851938964025751222702630114537000787585213247617574461390744166561976508356061772236251997348451205875392695246604791219618882014886048041066275721229850270880041786473307206645673432483754960379931242242144753052583712312839395256408402189964780313800758171472551983993948202496683472215984860464946368432820210993793519894373908952996341922131268941977766395412617440271558157590725084674035535664302222326586312326530533229498535484419015298190542668387736364119679116633039917042420425386333304478537746727551927911064696353942223941952545683854496350668346448053380809686601608000981372720022727233057242647848704155272684109505673871612805993887990340133406937165945429815938457440687516952147370902399608840433827169656375473104341560204215385711210581402780193397260893420525145047255017330549534380516931343792898170867288871276048181393197499643611906105479403477630451402817590981224049577651457748167005309546228735533304105288161463348192249858392391078450217282111525185481036228846106647895072242030929936953221851027676788074215308610589733788890102397256103782765075647612262486219455995267978168387558463103431361483459727109152167572486756270133935334108911022588165671492487466290937111019123588853380312068457097285470122372921481905184089422459132142170387171388692675426138224054004585446114367220759197392341192849241944488608988769997018776842246276515673354784007260031620251435156779193666402453352400206854289044103636039334808089343510852266871181362320194306477211991096528329810905424740977589515432224214595446278010860622919979751271657274222484232513698048564771021676784639155214925982699204148166749535363847942218955983320278349988314766735132890442843483696701151304085023009737539952995718926018405908050626818087014335522716468166622543439999946445417771601486565373248760291984965098290254205973684176964154652573755548302757807702071760482805226369145932792319053060205609573232033886712935743610642731292323766532293186341803980791631751923172221664854784525031966759766135323831186581838300366228942030995197838353601730484578928537987162238758110978907291048636635852580009529100129796350100782193106289003242957461001018125597106953361695378400289983022919108068913339440924021183590081451069807198800003915619956448905947089133848024350332353573012491860290455981197160023206387179863784953071403425129241755614458395649571024433626007713771123633182599401086016429446044920164128038977521840757038988297957847427797851089969364589293276966051343667942798868956926038901462570824342037818289144656871397722215263752702276099351420957775715741089775649895891503228748254024792035293741936208443773902435676631978620057641573113957150703486213115359851400075644299368047916385527809356450957114892759853388652480441038569668914548792916305288945701408963611640822551492170047492571710802089984326452325207617828164772303205321959741452797016662336355956341426592686408304971895538587708083804409237594942826531598870161475349906406946639188270359266676709806556499798102175621282438545527195293087940785596530466614135274238579149440122998671756860686681685212117788976642486609814118094253942594144965509285318821168527781012365218627990310176774418381465768963871646964312509605295133734664348428383697572561347148180950932676105610824870647257313269120572165509455107239394150486534948125680159139731739815776037380673013228777557956768656607628464808023374264086966581282851727967591905145089156023571197897824950127877547591120606127046930628329359017328467762223249994570049759926043833880674957039560767350770231395186458115843070954428783605434407356851410759131636180290485259134948721513110156499818073592339313129790703731021513693194322206540169160386415807975954052829042424589526287030970429786294425004861197904284461423779553016624500107222439269664480202465849329677617043282356408388191822523577435688711654835355164580401183441711338129716341394607881646872794202061985189861818800495401399396396126767148107622837724439946146980411223868019611488604755613509564617729869021928930166328480679965614405130479836107609822941774521835799079193790211804434405184266683728903077739759233919570546818487204363876230021412429855684766019512631744072681643826698871984692346062350294762068527048498095379477106776616895386802171081887959184469685432072545950152491605109363232782261194213634133237080615246192026111767046168772613355116975632453399967056424141342575626438467824349833196637540244365939772657867110440402665815489936955988136034052395482497343345654895434799900694204909853073222487011709648521696576842162316991456612550860564537621532450132138084300750173263814026433268493233017403467893303652111841686090935447232567355657711072361481354878355283640245022942452824277027163422074114531195706624640160514506729832052855481234612456442795961173832017867921566111083482582515375604044763014866323383927291130371159753245543573856051049862707291516178896050832548026229260655963951576059913100375265979874482147254233499283391876327221018152652434294039106347463059815480199896884223901434295137102813001685066271537571671877529747522582236016863021439516676694306954999502917990076790901261381466956469953809311255081227188378270173266477826405839454213436948035876895726757769854475740781777958949870845923802305180216308301027715822183768761631404808249746052064149363912539232020733065749377455450083746631634892182896851454476757286585627875103657019302046985836687593841441074653585784084507431150851821930952573602859587185785355399600701377875094903738302968497161658820870181507651451877213239493610276110071404538049217100077022754187231549125545548842127186021224124739118343202785007774687609515246792225065676878063453171702083057353913563957749521138290917742097301110378715728213449050419028404560107501499728521178478890214568354051318982243491950807651160752388473772167424541808319543617086303649379233555604404587162780880363145753386033396427731099808743168560579346532650195637292307549802416475884597956547245889781382567561641165577764943784202630033670202483704940726535552071026396591031941387951084812357537194471356537984404307764058776775551845247093700691921667152619439062903687419157620339044230908312694154276870027396393484030080627600425990031214393964145967200021604184394459715145055736270179764200429168984437319608827563494022165012592707425061327414345788556623244990345537622409362745431822990323251238697770665414423201466976673771119999956788417383933580996636748350658690839270244334963592353183299577244008650847113879055869858834750299470081221348524269592194337926904068499590530101087407019404424784770011907754992035051201537923698782999348616230657375324162438097888896839692919810677718650142650847441796862700364530520472539821597590399945376419080492381152989305821440584846173125036066469180530329467096836437295842883835157186207550407692419201286955626196825959949414773457784380813477874834564521001878854102894799079701216693337154272748391722750710185254058310358279186382502634531999531157748537528137523813530946804288144004738208740266979023017804866755484735730126927381547490896986525269000955774434621854141856486847711024865146493005718843474826929117471360518493024014636292537509147752851268333052633217988498135490355929028381330620787611748175250355479539789897879299085520459406681290124192604800614879141373917102331201354545798424291848449407633433283516653313590826225796698229140735435846442626530306628312359274267920530875265090271283611699052499337338122547171310880094745103062979809732109616443196820236883564776315586604125612013098275583766252309752502148876926886265261556213292131412914509857216728001042384385424405649728894273647031493225182516390838348239588730781626350685318887112520727293320886227202731707962027781187718883719218702508067409669463051922429760951911138777152898338836929445757091687205246878804535307431057488281732875422052983917589462869254177767236148132419111216824088529980404121901691304193300972691440849830046342448751944189159884864839499995225908287419325719880412250681220718450933353060116073340556638464457291663497764863730084423861802542553078279644006785241415294378386177171456362484123449086485224858649095378791410239663203077352590147134177527035673035768780262987842774392145226411665183540907118999576546816260907992361848975266890227029551931366562670941613777566147196730857313567875478917850768851906207478520477569738742886526992555939568406582932127656274111218359122651667402701365817721353398680665731869143051774474133728068426547367789325929496976491227710913806244206037981024152581476255971462260508570165415282544455923167991183568582519655617506701296113713291221827279935826724687464007071739548600127982804127939778365543535444530703952189284510805325922754975144862679908833746001710589766080086186442522580269933069250580058646461484528001825995408289421825479922517867685018398328159862742068649994846004264136635382334507246809461220566442998073214510270261009348466936303583736249760560271500549303456593947829051123483815819808290283347322076671526989091841275337907576180624831042973076901187036579912327523537357280717387677491883360371586421063826665274145087785396653656076027556289139546776970393225234242027419955546092775457819445162799382778750408812013217585237224510203968844666893617051893897398437574065079928938707493162077893177304969655089094959147790681960841712933888791260452010035941243309568226861263710650587059494199106660512714756061120671280286675590225063602411521096116532111723406853152760198008571732092068930458139368704229371277061409855636907669450883166189977569092412215223409092723417102752549469819195236750749041563513301606016444713280359245617092539347515265000304860889568174873959507992278046184754950465709656022482886889272168685129964173889350414902218253687363277357580612978636072329002224664428813184632854817057957037561178570768395880860010132045477098334023814467355932084290578807203839635559233335423103529117088133695715396872982754448119270103781160600059102008327426948823994862376262003919042818184835928692425665957685987006431923490209323641974758287077320865449498296158311967761412606798835213077593657261554423435351619544432660780498590316357476271960915937053443087650318359833370656253475588642773510599034699925965071736913847427186081326114632976794097453868691218997517892115440483165952986735078195420649960549345201040090440362277604078446974737840397170837805428975905857248614896447975428803399407529159000986438874253026250229434278950959832020947902028272126743285893125504419339955239579498391842434771164870567882592827799935190815803012235077964551693285725934498731229321039685399389161931453806420085178172996092548138963574968812678795921026642009553976316280357163303715146300764433249597336029817747239432494464601058612265508650474271423801630098267664032447048503654520135001743231464291741370374386204251900684111226628487904354734735941839341181105134031910578688421989412939402804898137051383669548269615704171130675358273461064137466462723783352788589145316532614911874324894926081653156228038702285151829700509667422459852538264860764647949624362255200064252756740948460965275636754392223780726887281775780870741106414768838044015410220910951840913808368576152251185819628549631613484002702159130704128203447649711417823905080516164846647259242652217223812930577990742443302515151143315502044345817893771566083233137780507164807310714586520860208136267923818123620744280813112907818102541078546817536145948981139367106029706114484765978879774634974459289613699989976933376953370722544687286099120980698104453404750925584782197694099105892441296769062209775218484528088964254280969868193744710593499887602827206760380396843871721610822000215721416990985913105592201603207464994517391675747623273956676321297660428970113109714518842851081880310560172402333571125683766645947042191974868739879439121477417516478541780321315053419247489734450902593480260085568863198606343590252876225180009619345166722757718346918798110522069816097067602848375519470939856723879797396740185738710273647890903845373215875405630520500281204975409343276257910606381864028572345714127468850775549984158803783848302310182231382666771763183311954897398611561446369599808501015838822721398302472419798056943050924116454823494906576995353903513560207700936954300378850660836051637031632591223708170289294875410368885699429035307278753033259520613414372738838072261298716001827436099401626413961739596532640611445734998352606027960211149172075170419156370382835277811203077095950223523473123910025121995169240912727538644010928418889291034994542351671252079981574416323968153686645984233973222432757214028792745273627097462160843991807631881905308348201873144356203879148142749856683443731360476549852354439257492532411430144581961390567273281001622969635982654179137758682523700107326326524082767947278100812321681157818714047124845913369461834226707291829812676983237685846061945137788155906099658396097462752543186099541457585292414333024113022133953966386583641324610812257253323641457850988257413995260479366468530025470632629681187213121237686963114072718188971758884966876439292921601225108064018502082745150905253237922978322509519671009500545914677187622593330068797187021431243397566325270962729634592659730254440094351849102347575455374382719326767356558156284142061493247052835430074295015659957762657423840503161147356590422838543049876543951425185611977812742186318538900725768483772531851120441110685839797537378042900135299151302037810500056746718034679291514459737179852716423243980212281944457209739815300254218106423498215534293992874149870493223900253956436320710924847025606559365534173546005067990535000546853073045178142804800341176817443128631817869420306917530484494203588461401130567085495737759099163310525890140379137720507486786567095831764980539214518166406505949364216790249932284319471116138674322531285135731589455533820241122801443933444300449089704276731623683393399243763269533300234300263401621469880036335949641055922748063130314863809195938545196634348006178203376867112609700457886596439247561640488399394858770845873490682698742889150079403854735342432440668015012803095101093702845984750474124501439738291423747804438027043101589156201098922638841588036302275073827029652247027959429946712314786930997754175510789541913096646514490622742348284567715446218768483895580031009951046543018702429628761503142713825969109505378247965294398272801961505336071899890248729636132636234502966632576733989790229013273304125874688068556146949342797570107870639321736034277875517071675629460740227458453843177753749536306278172520081687574653067376791368594346686722008512894898966408598609479250851285503041248012146397511930298183482566502167687865639405609108942817126794418355768966535331242809623769393543170145517601058854177401178402679268489209292276876479061373971427220204862978224504595298840599062737948248286385292734927843423845225052237102386364750305897207906408541875078140958450547890910091994957506611438413836075529749034071666050098074258631212902640168817088536427534669914919230912694819737370957043396921947454485824749764330180747938446838380471601980894127012695255722986028183097782921230339934810658514328546757036834470360604428923336325196766306751498849608797173162430267642478860338690357946164723896389022903108272352351880762585640331051384082262700853873120852005982978602657639644169931896459997388505177720303600028491344838921908625680411185468845704369300125406620507656393243504233668816916636451884945515227300120577561779212531604268153209368884322637729141781648712804052975296955305282543711665368218248494413058462229906315388676218645589476852900767351692622836977083913252753569323218478525049758631230215506039789061186845667710604574479156619641177637813196856925299374675501860431260440383498636950396671958487127939685233497264893431368685162543358558595655184155803737457787956767245657149718217766482682944887464528618225035850399130200172291241627819062676990738700503090730048487679401890828317437441930685425499989946278877922257807482977141127763288550590811290428394155486808479477740695062885895856880601229264178271923217316713599472557733373857721936744329129705332424517856351109647725406717263546168840169808884867139689904408910315543563464500616593183878396026817122348365815463891405326202365451656046132413898898914293090760351101526987451959005589847719610225434379146428955858678515060937175692013634648443068385547065734306925160420854593841798323667468513369018918893084883722515966033156682580388435583223844159630013955798403086476510557229407531526963500325339466259495981834492199023270171579420912705845379403466773173044208867105793842391708484209003251110408315721273169571838618058125115861740431129768975399412690585275078163608599180792591997113517593872932477224467618873212429145915853581539305371570306872028756100317169609748640323869979757435124316295423974493347464854698420212616632465008922956113081817871914641726838039572091467227449537404527605686327391802547844062708113922274985814683116434807070526251749744146672786234998198814265119852890166186061855691858476865581879131918356174802821476397777135443801903076643017570355836304878728031365300226293722236833911416003939716223004498903984234137771182334266585831554102411152676948260807863344788318672926782367149281795939645614847151254209289714035601976947600920893001170084703746569242993202845403023013360498980426940110661338301431709125271988604558106871163939063149734516496569795514434667293395910574032266088484801080592818141206544670313442731123040001358784585523895089914385495158800915700772326887527411183928978512685600595616469239230883601907450578046757878920090417573848545881256041976320722614847668813810454474042784258553621956694931887650035898313399089822148661747002543044859363873764201638458191773140637674624836637747708955023128350834916882227526910364330609478188834229634681293684594105894387350058947583013861428669854833636105034009617981003975227129159910799306836999929014264280317057056920073781737140136624856187369104678974495871210312574629739260561051628757372479070431283560264293798123385063465404858712146137060840368715352198949846884184051850481612568136723300945340038247173194577527959008208754894193080597900589131796640652403656247189187610982302846970102696347602308923423647992447668046510530842282263129031392705613050571842229117358217214493557046841837402166014312689558339838550412859306400942916556529269344538278742450240052341175342319517777055370241696327259105110625484569891571715745606342700455090709974376779152394966990969851812832177476022060223809640350979547928793619327378124470430427188996103968697939060575636387168736941815662326957844170724292955803765731783937496038768572950903120185674327950535404259344636724055119584073324330189671424638400752480862307334371374620813888101297689840895779803942437258267585083581432577579905720675077759806254755571103043965642817223724853408209838647719255064057425030023431174636056320965344828314525455588136029577398779515151020948379660769222570156289535602175754757113144939256962381508612673130306519851194090083563851345245709535506865471511287229215261689886998466538736374142047133615807678657118034068776161012895830498159356392354751140277515370132351204233476994538932741249755306792644338968057921083229601172798247809593284396474289930563804281856197563781823878992543166758565038523122894095593134194348169878390055975059106583045503461404185285602955193959060527737068289487967276215376319471046706293901371236837433688320958800928214226719903103334452313198224181723270957788848579321923343081455600666464128489068509534582489202725400231837453930774784499910648293598651757015909921462575702161512129214890181357481932768522638105970282033316595880674369459419137033271453689733097427499753981025477998604014077486158434578146541475820522710929701483655258404726787589509296717338182933813518921767805154170394485049367675738102424574109540460695950203322651974741611877531834980689138595595323065588624280033444521518657455979015080933231626184670392249072142652025844970138681234768798773194722889367672670941839774029360099840819962358586615991848070884793981555715904992412698812456584124349552897822480722471912037330447571735299532633048762565867756267342515313748259488116530092003185919801867546137711973716194146874996878011979747660960510745093104985812403851688283417624894379581469187930651482525219368939558003276238158916720919374811758539753591158722706930680529166298060715122616773223249213884663326147058668810018692355836963322436369478373566586304770653191710626118513224662523647902245756938533475091040841296709522926905629869366194372606595779127713120735918539664812401448325379748606830889794885754800983690671973692755853705096167780911866086569848577260708803621835916501765263190938521163351850835914170223167856588866299582213295430767721129757322639287321038519445067282977275573095128046472133902532456037239928645078066862736830644842188844437332635645812746496998586344589495386766814417902100953762228253814832184232450127524532913347522476414605419297071840925329769447120317047817925315282821697020613608323955159229650688710311890296496249820019755077935764078714735674197411165664160706771457473825864973315268890768082618932214763867352863231332427562502396791882783655425946170342401831241208373846126269173444651020653207025623353402791350644776810818127084246516224374224273648484379716566701537989086925153148111112140587682385662291930447692657385523706461352962104949423547854066487255689551045111172251512604975235629541427596397271783332559845920331492025583046111577353870610301629080944972696427144037270613189041348811615926843191837662709138366935737127719463635035283100370209330303996762931832002795661448111098481509785254545523064588519745541613955452931231760796176781035992464074458300364990838864990935372477372267693617480724930727511526496416470410585136833313776701536638723958834051001650711822191527205708988770770563200274202619923343579310295185506496938009148824038649697043911668178371916586952548588995372516004392804338016936694762699966043229393416588442310148946998094888810450941767833379004723388899089695263268917052863055425031524676315934795471687742197519905203653924510297553657850975654094659068251875899122904579176656575580491965883134792712177596663319688299114526665694700479995044732114209253885342271394251019482138327533803648021078719059385745779494983877107923135282982152828286516512476895167302596939378753965008747651344402279372252078659723748843052400438866936576527366359350904302529360067876878002279135523907037898848173904347963422324764000946478515290397182474260866981111784736531137021932198430642761227740083276350288824330391546856809732808631053143150773298798140883096291748293954750818781850919728393583888311484214611792819168548878311877324354887431654509383082586638332797526272224902153518215209957105076142190378583903134374896203424652287844657559812796685602968128042050266340917002247782974588602033193169741624039095247075909547473210587646231085920535361873770829331671823611429144836841797141893543109741233488066496375079457037885033145125806838214845460146071984926372181781276176999635864863222283483944776912559098472728629396774095923813393200749281978145701082150178974867985016259835584671744861966426714796699945600099115266986865596275639976578553575094060433988959862642961253007364616681334549946153290194561222184022705421838764314674928003680083200114213381650362333880645098604659188335444656429205546587502929895265400263807452388058814827894621556334072411912709517684983123044159823215173542686445936241286603214728601308746241685981229058377069906328260655356199450826135529339423900771003949452615202020970112582970236015700553420157132300001014178437863096878356785219465394241776264508064174446111084394957478207711338983565202999899610150625200269643993935589458788324999281022240618682159014500642975883416224784590563654688678232392272473768415409625648117665070216904702462320370163517915670327795008034385212885313368601519095934501663518930461414393695656278003430755924002624212632003360252583219045382551784610628328223368794030809761234630737242261826627268880350664515728890858760948332781612772546198880387083810695570997768060500766333098442592541385274297795121072924539448157700169889647705659937644642177982356620304270660482351156010724520348989236607412357805300392332823073951443689484886301302914390612579668817762826367420117594378491438647162519015635690698898356926006568343007664893822568497803294310867737797465573311064957005759603326117792922429573339457947906238387550675424379644375613268460639110613722696058402187764552537144028977540416460289963827708747848963730439312666051796145010352695747390936508806231548537773250188296587401711496851685507338620015051398759191369213495626667743312734933614328058379193972258497885422904335783420233659316239691947563131633434869844832109793104215344636474608447619095579975544941610267789841991646952968306661893556718407634493401212090536251942325511476128582241239685643844101585887928844073060220129494264696049050514471165324376489108336737374549988446091332704193535514836445586399336807735710902473590832239064563961890635416959418774545463299095619473731690866509539683858722345251462620324842169810390884682473346219302529065059658308274446487150566805537693231401313572179122403873476273214867957686746983408578193114330914123737089898622005796774713422297002965333699107356582608836479645668551291229261742314049601583975377133288239211255325388966360623539290831771065946036051801120331155054590332601818345162033782015554239517035491120370044261085438925230138813392235855294832432282556725106147615354307942697403112750773679497602423081941175320731499799445120087045344422881263726629492267887057441007701469533470913806862366886113048096279336437958544471807712063565053780672129724618687906344377019216060684116719960315008054765306852311347696741442687567181984644737397258009839093235481891526434751949328777263311235836731159526684678873512220679556866827377501246801863427361417682166072617553756024225643308514838868827329384176023583408005241565738116498100044840859718775943017117602236907985204280267735563666248464422833970384288567910096294231496627760954475460323146114771870486401719393718870298698780430803643175159950024122682446900897286385064915708793048041502584601878655139259606595215590136785196571535910045136086568615585510537435245448480623849995363564584195646504900990964017222315852733719336349173757761209783373423308693127745428629043097604918862328259176634248511399309390137378526748555417158402425857914529465088123522073250467109606593115017594155285131579269056380855328595235804925583890517373845853165715887437455864143179994011058636866303955901096329920718276748130792695047927621901348666191866448533099047386011860070571574111878004593656594349815757294591500676726918853073864441627872181521086287457109489286724533806631195423452132024121345988075954293192264889768653554622693000500443196535953617899019558931143287881094236329860582251799940752664399505893898096840358983922722994777337958907710966030572289848347498073243581642146371494252378881398499391971068197097434410841940384376977138652850755052323628589251485193183908698696265415152032380997193823122265482088800501245439008984705561771726973777305303750859229176109949900511646780313978442398674722396396197992950880868889836459726997818265349926273245469829317167724871110443118177131440880516958542972158725608014695503038033455290938091247010805237577488966756582498939419967561317711023928385979996156177025926704174614825366308493559793026493074905868262100688496916378319680990318392401461498160533742603717105141687856771210347359740364626394469876871044085240211855466429398839279459366742397664803079751324350985017687118675032369497084146995081247105781422066931632648082674193118138578588387821050981498927091675738059907097346461945541461962006967222554503247537714645037849754905907405365350840388945862496512649336134247656796902385960439579089587142447965545585459811460351721141343116946826888105699268751903317914612551376631017923195405032072204031375666303147949100577471971025678312974193653623975255154149462969510651376492796695815227352183061249381789837400897976384829429369057616918976758633396488605435674386130935564336013033076461315491219183013496621881586505611547470622155796602453136180216468164983768976826087424512076568158781230038952246316630613275369165088863668848919680134819433341234615508659064287966115660379392196434084141914111601536197373858591328721944615773083271058770475499270872909329592640796745470495585677921078904771271696040773118685046910618787762025414485167495487944780549654080741067004144181731885609001076469153798397132757940027604624808304859352066594878802334209809333858297279438467870919133168426901101850681906829589739503641097508777457567628019987446655233249999776386546366359547801436048016560514898517796456373630737718229632855873531422084900814284549197787307716930530136405982633112057447915010928884999700829016266780574635360547488800241691067789200373618631971605516292973769848653114156664839930904183063587442557289876089479540863789113737806080686154888593089180517659715221257587568840915872115692747420420525083157495342662846428058530293835653916208552177146873437349843018543845686894217128709087666230372369605873181342149822574299319969330908982432285130192774190194151743222774823538713060564031706893806269852059881541768187192781260823565100477359631139555922772718851592495428848078669435238225889305235935257024359680733958200606757547911134730550333291827501366804758671522085257842151853687200200193488725704707183292693619015766054090808056992904639738003973413224984967432560483561574971129104582846713684226545733127450436422493344033850972605877236904213653722528014466203380328767103707593031795694655566019207687587458983065301658573393565191581957545447205745688093521636901384508635410860576530865947127777201169387499921974986826245304094814937275255350726582932765366801260041022439982552518282776428870269566982542284017141165714837959584645505602747869980154988234937201821427501549303111543298128198558836119596502435191277859614465494127625650741257397590332459179262168883945675995423752167034782676426369836542815220075765665056085685425492662297044967423181080783938328250325053699471943460374640094250243676260477723366863939066575283585205093733796163134573232474214121040926143384288010070550000190860540770082963574336263235864969232489166240239243327861176841178944899864048814824154524694091259281564576821569117805371295910676810602280254600926794682344884074700277845882057406869351734744125516985664688268198060223823312119357239254442761236546230364321077726024527233572859709668002039963272328425832713498920125921726803946352135600563504078270371395144008893458991040837674849090350598354104595032727738444525965211944838059287823525650538013727887004917840055262614626029932250863865040147467076564831091983221628233309581724398966816324554908159029926513742219276698640499404610272489931518678747423132871798569413127403158929952160159177702530708105430108198682719007174301583041969166475134083238261187266067389692906164318257128417139846181940606348029447667030332568386478202251104705197012304243987914044068478063782138633968377388697524391924397546737699465586275230874563060824632889166942675274744058471727590415351490222469367658542529291349633094200801103581875823151564630565015740361776005736200692073029043148906736447447465882458197085491696950293758223492850581554968587498175181334954720409845650550936037531685113872908836034527687113903488882992878072145820756104704890188088626815443822441977840366142207508245554310388658458021913584123163955155489389922065610880496506717115877000582429014267414940636447804312350727866890654850270879119095039925186889498417679838279024489045518700734119363488312245497595896433331123756282479762404253364198203189388483795506149936083440319967672306209814388155610923638521580926823440959391023173817060345282896226613276756533959720096196312633036772604631027606667076271742224163312393753511427674337246134329569570751230105278885939878502270680131707850421190327596851569298564320600351272070425209927653825566657959513108173255377620257149878239268769133464178620279672026755841396894563210093015404054165701896925960724196806581511262959155920101081896465551470289406052920337407839731106907188867069108549720924640518381909145225136184937440033631877654505916622472088927347432399800853631772208125817540482910322181359875243882048339824574953103073986377534821294904731917881348707515015411992619064531864799475278825822009575516459731699351936897786922954194200707839715525007130565528387346072859849323608697714844181257248170391611403598923679569947905278342410622322987044072962319764948299493194332136030972269646934118133426580436360242055036758934135961240261775987940300517543721884128130947525172827394896444158694195626332122746472529242424507954074220058242326937657662470081236229149415583670829493421033138304512591567388792173071073558543824734129162934380626409254939145789932939545183928400905425387628759323571358020325483278517986802873543265133383750165953431645203129557433584165559781584437214323527897641674424348123319267389752321302061412352094205556432121817762658504238789302622528553723721749683605600607045405275727664619292437912917641063875457599224911538350050216326748188316206135673333227981797219465400109923718455411003273528528308845533359114252220317214348763774490354996981113284276582750966292627840963794435969281094645009684543694010259995966305029907935346738685381731714700717239740272183941619462557915720840691428965389662614902297900797967738020602444947998730477464399715520573972746158848794242462328533193980394126310798915979010801472993224265662597046456536636830078207954211085214781451903467717312723060258807444107460547677144954874592153963642669270332095281932872333274622964785899580682793228554301201413917657560511603595288280773246697629528245485907105276861564408428874182706057870123684868383468756164147899526863510182601712539865598933497117669399429281733229265102927471601240401312055778787690687762583808903830340639258588776835172567466300208892213231149905044095061164065491560271244332133751664024280775900264589976367974750654573773885680605991608352052040232837993259812423426661053307223104937325070434182204381281761792549888774521139825702385475712498723198946256844422416274371155241239134373506451170968195889273196907796783471818494662481582989236202799757478642115487006217645411592759963337345563016744591364561744253932093143722253547193332783357706006493849312501241298174747215232292135760397604140621396944478902604650066137169365862289923301010787345834068258128640738901771871878978493880893592743524874736523994026085319220976849619028859836358564112502866464933304795759733520157149705698608562068086242381527759769995534092784629678495511608079957574329619355956859345464056756657104045936069278790758310910895388130034564525787420138700925369358795000069198151038906535508068915491837940274807549126919159186850109840396003334302248516190886635540981395751322614495229907038772321236732110897901326124729812337636954669945087007179880728246573670330552105075303602327747317618987068681762267093537934582518956102800136833758808719271194124201720388667558676123868753493194315491680631921302305646537144685090425140736592057895148648648133962254618430103642360206134839399865667465785150933023268570588999378080032655834200948885190001501987643767896434177057819808887530571073614107742274381058517914359861843394704182836136919811083951712261100106114691961471599056545765204103875284064552425209836849703129228278851972867868432987049607834213946367546764902500175644951943458784407712419336067971284979555550769035121694931890575463620562350581243306329178287632309225848864718451172292890048209072775118429519357124487479616178714472438137733378619619502723647343604048426591553903903353497356847626465036996061288431710478221790675832540482110956682477127330054746757693574286683667514943632865238477933889915939249335103991612083443752582149162785663712427656775158182474833572909970278881957983276069920599487670176870645379260039891271129157175153019136612570140098569496092589777299041178921614115516648822582182783334674499189963865318839914864167603112741933135992755081038811367044001845021346382308870637964699018329208154993837255150866700446818267619709297983006392148667185012289094449568158903720977274677022104956055008060482235653751049117638788099834337161343597782363904990041582606288522554209480108640634195259746095144390574779333442701402348107509974489313389529563775535623599399585947531127986827228135886164078145098626024244793689550376678674176036251484903174479282345645155775075525201244016471105317557728355044942438794373685403194058344416960211948631356491591639438524506888254726216548321708948160013520289141099241682327836777067258577736509093317361265929173404923565007763083644098286409481992634220640191559597049071994270367221009541522162971990076837020303507946582509096587789064067503681903078766190054425588307109541017545160262112891468520384639062071006256278930783370071802604258240214705752780452807902127208144262102475826540875212105117218041737267354324965366737602506088843433536521028070197579016809209485963500034323084085469173693678960918665128855123188544140273262963522364856629657380261772362710557222652021657422103351720835091710501883454836576152537774738684214315366460817377756310977496313774758611864217533122000209652516288158771867569234062860978440705676978422291246537454348116374587656894234235281702615340558871313619320188717576329400329763551517247563238743614366402570817727064239637895410977808495689095908209898110979213092544685561894438415953958538128607745874709665957425341524532672894420870956897575383909800111295230311143384196117581698833343652774003311092790581550831941719567288911356411285663758866584476492631752597160627049242949147060750809901392455124974628087408876010606378588543509692422740789940278582455876116049002422181832142623157470823737194641225228338119385693583788837337866081156453062990694486578208237801734859197995274866441332911370503522798038686640446266556779518015150604776787235134182799519809290171225732647845334156005420166392082982490116134115188896137848839128870950541765855001974477566195397987869186581222841757114172322666311285077690546988322600098999937725026884725287852344350597926721329729457632823885972928258588629919108108410074698694012302571469433056415274828058960730632677702269211313286510209116486079237749702433917099305770111256627886946738563106655618432615710286509070672009952260449795923738144993006222041162153826454917881235972632023505872540448706002020736093509888185320901185208436446025277986407084421057758555942051034009055847088998153095469725193885839788167537629243555711777170929392091037552918946154015430207241495636880549428975025075723054588532406467198138579727331147057083452945349553206090810069023745659655007984280264114112393027144039519740290583360275310683793343772660965026191406732445675878775019592008629920612408558549475881679530971336288757035511827272618818462153175284874357412945959547257846212254944616305115744804563211202095010055781439521364204020377029689021232737053287846089574890943273116324326882368230307844571389142723186093324187264368864016763504184901661331389448411422538677169923751388538810118782539834978744893224713983379613234371554758933644857564824075906782776001228362635572771713367560092435138059354090602627531822384094131812984239255223013628448827694293998489063769046065578610680507884505807212466742866249552470959288904231317947777563466728034130514261293545408414120805685932182272872678687109056949289055393419103890740592488838181441208554277028862776131672359918589459960696690037271455299029549177688159290322453876421636450115373218796873596515929537606410615833533191317605313146522713487379030913270638743538754625264164380676490961815200060482534709509192488836606294725452760662307239543232376678080529308788893041181401661273222409468819038734743065212686676090433702929854511009412282351083441976025021807481291151282898216662368487773506009551295512729059222169060518237085779262140532527129950723227465510783242189074610088190066096811127355761433085747845823134382686140904764650300921660159118483047667164089675720238129153295514885769002171781646761530460836207284897351123194191288031841384507009907249571016192645519866032217936650310666673395227860302911522734167332161290020342458474975170158205770382598865359120548996804454143606539981623884807018995797236659847991155765565189946031180794950194609149701217566728669882039955194748034269931533385403253435831051286831982290890661014403385781235606018624939290657399262295264110998930379360081711809199594593055060958693021757161242053107111961043260242040675459568663824154442628223117760200801959696078363870880983283567140494111752211201863814982865096414865170558013836102809486962252856230525914929794210169256023104247894777685413475345776807268355083897608834930911261075732718385901529167642665043762885394497976614256579402796184329325488525112603500005964064016190005902687552234222106612708885142348138458500521154271121762317650515039183497093228955173130809042416637932147247043225156893670975614672680222369631477318678754444252472404508248209781612983520904104089844081995063057134950536369630453020786359296675170639553725505693797774881611232139086100333197901649873407872903203212786596200084537396925331824199962151658538085649661865663224292419591878041840124125804452206305510211640272857519186803557668101936592239188690083912977034595474417787691682142166824713265203361757560875618452909706009156122421530531991167685919959087750928203941579975670251958483573571577045715079761092643655002536824011888001496594642570555021605299092989566262049253373706954966444761881945151929550528519803662429590319590993727630792001464171632318140562033152624958994873069984406383783516783095067319564511087704708576961161052097840857807096821619897872976038810743175107134376128821223488841081756751822875987854774653759307265626209059992608947600841092934191813192598897146871308682349787964200185620595856195859745233760527677736808094142804972361822970860513489602471680166248957483633320233827697276261549180115119443319191438944434288185752511826318583671215557857571225567830294451092948823675349451831553223869492994991175768394714080000562113694919292789573047529684268177174065539331434961190340081239526430807270698796953781922655760578086908299232271381231858390551629358729358392479836481297759932280498670540802310227275586044169161953329136892766182035859324347611641933265510598901223185263689877966400284227363269160124243122659653098273870332229879386196581202962209224310307293623169623141960857433053906744201352649127633302994381474109736179415146455037320476827014638470447126402914490940945144081555629797516655856174544624359964196177969444000036957277050598325346053971799592804056090202767730660194327408020476833188703639403110676173335139691813747816204405447331647440393994452985554197693542089594783948578052198228143992924868285009816832224840174834349887872241363543173109423838892584080858908437832057610737491407925861054382596230146390929952628655214528174463622316201081903572267193292349502932275065950344508428749155882493798059759082480844172446851248739797190343531707108090217531934415319570081111164960784153169709094538798317090524366495066988089368315329713278485931821473709151182489313710601515787911910598296491985859498847396403987175060608817182034527275064183808548385410137862334373414667017261625703169967971085609850332917326043162473839500765544918643476576048943883683964365857325757265861972364246734523965493100693767412811993048183643375439456695996993094638555462559238365498226782149655911717383088658988373106049290610700800891038748312443569085600149991195382756645619033368001546189292428494042652195000058338315976459608271212510232919305259125157536725543510615793472775347690312548768479319888780110600801260738391944459456401595372436553547972079004970519837034249169175605213970032325128790353217296441876602061100805445171245815246949702422221435794835093828108363260739575353323074983422477777643515503653482233159769243552684047021372684560180821724991606845323309204681012034483074850178965312334179688475242478761705204653434737982492537011604676896146350241416067685209486130765742469261343899477531245925265768880858833312993093111192364281688167560306219719739950819814649319250228300315323128046765249136605390287511317380556087121413647335827214892192264870280546416674586255116298007956909725834187534669219298452919539508154616287902830581238761316499711518558581894687419334283270837186128906422615545540801769425187541040639436597175843211969475852342471301384795904144100366610426786430895528257689481008808615211143869435295305852039763009652471056663700271160596564275619981973434155774070416436043668184410195027043649004305931521807457748400420508021255400777860453649535090154948941166475597757910215052183465431666402307847985284527998830647411012790453644238881123621884006112652880595859674159268261024499889982565601511510372036165020775650166944548421308595729524900687986225698830912591532488898028461733607604856877199751304813986578696275144595127744425237236350464927143160249437061784059595018235596721370726138040375500957674722277435320667017781716366217378568380548763274337538892267248378435207426107055472782449681639792122723753992233617241385142223931263924813011989164821951059275934115827842152632938917020032041666330731966140502706048052197157292823307253062901740727889127028765763449167327198536060575347071532151734220436152592065943414180017490688587246623474787905008838610206823254809788651354000218041658837717274252806187722557256503268806864075558777875120549542349814270271522510329161745683232940004882666852469922442324874706382534682248352218050589939199198932694549511556483427050106022497099638428035830714969742623536346371119331882987965292088403843267713377712734798436883732425805283671715612580834067792481267840311788016371594379124913352253515183039265978321048935560557475098017592264943280545097015481365304081145724641968710774612638429929899062825785230308014942448898890285854765285624145041536960642941770588982440196510602866753387819502368005126225863089805781527263964199388304688094889400389636403252224652822873874111856955358655184800056573078615861055369564378331191028278062391620678548031412047826098738748619742301842971122776015863764780073372021775967371376941452034101649058651011357117589977456523912016817492006236423631691646405481677976549870107453552501668282272807539308187379470861078395744132562321409412493087150412828885995936358108738476308834353092915444070872573806682434522557531524392727468338049957605753644250076780812135037105884094702481084979582608285799098327813802997603949413072846564500448247957475826298245203474566331213976382833294558677539769658709770119101690724590903017164059074013624375112422977714458368789981328337506993460505838591820598656677226781062804833609172616584217075530490665029114659503905104496325529052389760103300235768687699119733024284218176338480596057119422108156019882071663384798862161333905376536537626465507584997854936469110174033071850688953338879891857937704024474848689638682522812995541375877124977756555896046450570264934473201190451436732372090967274076912611869141588451616682332503993429438507758054714947513190679080316917064743665351362339761442217710695137367092218059648087821452592931461545057129134616636441325881539219565126981513131749115292274847202439478315686035128213585508317353161736978896140200189464188879875687715302030430752182050663971146715458004822130582785399199246131740973042885886166543224481288045355497586576629102242144564150764595262102426699914553450019304240369073791174495743380009930264606290725094737115060219004579583076477589693009043367956180779682428801385214766489175477784203577676227806771142055076774418566755660246905591876936239557608968385571519104803719000512394832724907103504418050705861893673458510813099118408653292635748609019617722580355503256498625047989695631662853577852096805143796777018539842017745735051159165823141299328477648888004414228420039972173545871709007907632047219378972697210698428543074588273942434611570184718410661818677231357655029232805845416353592879088434056766824530938626390855216375608069518342854976799707803860327534458087146611833592354247350809317371361852923368421614061398321593543455769348267557233033515985965096471369993502660769580462733717725429005336500499210897481384767805251816328391396664395205870563950425627467931416349841763925343751361100254073543780167910784603209174814188416494593135500060082969440938424489415019394235663336885042565944848766188356511228984196515096775849233732145082309741138867238622140964240666518098838800781652995141394305512464817920715786398050651867242838298760342769491000815906647848438104618460486615373921091719878152161849364108376204677464836265164176301833379087345699701102071454787029663991032842891768466668590305912859748995629693758426651006787381110962661227019341545719413727419973824570734874979113085627271203350063613217293571298840869243534705827271831693994706698358345973972821299168781988906071189539582146668661954068895738247262858759665584219786011153603820443139519023935979501708161466984686315573927531395996513545983434859266628636790108378821685921525875295808549793338045763560686228308200582867336507319256463141390500125109665225264931958187719715721814302436461743179519329905737559547809394640598911152809804334066119729320381663530564429816828742134834655925771731659470227403472252850203845695080096446562507479402139442132476882675170241199792336361270438732294106055255494798275891390684449950387787633537349257136970027005028417381307210613251293356398968003318889905675616804205372749670597384235703717159543722136965733544196013010964301947473310245101828968710576930329104080768292175992651600751706529528892734869745561518079071380873571043661195136082480754921984256772362483936315821527738647168506512328177728508199176324940120846843996481202880537924487185870037734574778836485843791884841518931490053546535880913026286192964813334826167688674033517323447713297876572906579690793334655216490082727285320797772621347140954545451377823326856993281183480613602260581941448489981830563145175059864807205881479118789393062467272090236263084030354963301737732719203620203894444215253707485995243915383342930526893261037403886898255650143779984968637298252507481964367909706755727949630651279912820598996238311375223660647021620507580464836598367969623374534154620786673073195858339497989752449650603601024439424921263425850734120111142015113502914688590647180896494030988957640878085880358296657712393379637020176812135651824418260907446188632048480604009401333915716722977800812438631006820157076044044894562084818585610014162963632818244291225948673304982720801019068795874893342392037315579223590555457418531229807893303153758336717280642056966582618790777473598939429904774776138944794627907416305773435059025950253960387826922943266330582472049479959226928084426135962202204091883791277783834886746282897597850370731912490555271851832119454724957410294541649589299356752597119300463826721790844541752279018829332541690352093333657364834081313179473228040566453434301446522062174117999799651719034954510379387884219252668764103549531596737043526257991995953315876966627180061282348290899224799184999671983004138527153928938507076914740328599194105369032470627777177821521877308072951204320220081600445689455626683313647180092575471252911469194611255116857434512354596836650751389582291638062654019364354223968251905952064740663022454610495783575108173675548686686010927202834923644151931065980737610509801145934715421498071404079300456427127224574544856629077589166254339474172551257722686641437098070898375645077506471220134636827152456346808344646213795643102464894168143918623684316315364062592533353293033561960152008837292226916458700606147609502966734124529823068985997023765883526865385679033081942040941324677751497691105445932084764308046021335083218297381145560554586552179349617638522787011289914961886328172450177880186784136783493244798165075992983216578343137959320843546964691994874635457658351057147439900693039323281460655029088916691694102733740926939291420742635972541396650266232756653880815533828057409433991482479797733572650428357262250401076975963568934471746492251106714961759005507843217282749665964895105319007723680192608518535078711126202191759677842876562334578883233594711804212567423662168907786789161277930030053716138648722092428147844341487708129054110571053159261633547785301623625544857881302771640517220834111316536727559150309272204292875595521429554932851148606382437350687986181358380883184176298590214222740804134519519673541874066478995489940556465688985746449954362349583004216118165253110012213798431463955000008214614370154260009230357564742217840268854925772995032012711854412378746444970596638604953396215258500318819027074557440571668569793772162114934582176748222109226809165031333317169108579977472847370640197299836815447726192200701185391724674743436012788040801162799440448342194659133549023841090331080255007645918767258977825656650940851907787774229500849705145842707478431783149550970555872630815807694430103240118362271394037724484691834588330335445239278926744645288623075907535939259952768148340503282701098347541263823436602447906018863167910812059819826978103431601183795318636874066563096284131505865555794530986286955357876620295766438474023655350469809832325112116965641211959178857965050996893593869974582955631110687090292853102084749861518710807460188791063975495219784007698606682671470979216235016551885468298487198585682633597129758137203919194064178367726269003748460618103763892813143349525399532599248312739795980077061436848742830996104456449780847338657757679062858107265483823130863881917121945890908410582298553170399734635064807175282471290450116431859690691135418442792190594855867759089060102327376350140367887424945867546074501024065354034598451999585927210686943391051867192491909974332984759982559557561126989321841883422937818954291985405436402139817055270362291861131855291760276460058997796550713060580554513069353921673297458376844857856160568769526827211034550492648940191635313206029855483161438658716523834340659392097385243585400078890261788151899229647256816488716677628426675777945396921728919951683848531806275852432957499594645478988771220966444095382572644579304823232041183576071944623846607796824114988652603074953223921301257976531559809520391037415492695077744944069207614196801750999806844192806129893798862593376475851482215622653376129836054658778522181085286673191975303641336252707824831214452801224527980750378120400234331414580094961815597857767539243544166874206210451310853397501783807833043278924799177655826811609479035507770533224208064220297268249336866636364958853351479086615779122115206756160787499338122517818503268369224166353677712556708165489102324321808098799638104983776047428100308431171229680602707704107713712517979085315605705709796718779399822869368556998437063056594310969318935946483723778723848505756540878833160804807407935706082156539956584662093383830128668028378955209060871347596769156312315830859730123822998165073902311972021903634447167552359220203741192059871760753872431983334222274179946178348938770945893103993115607081667860904947465933685993555259705560944359320254434385118604135906508686577888269680534728036553541217646766372599896599710059121125100769686440774273356120813641604506481300089674378399746201117900833562120360193468377221222179564016766638850588262383647908194500980372625486246341061158886796673935421885619551426096900890902126048986643436572738301013526597022773778969719345816990756197415053284877872410330869837638318033928537937351684262203822724727045434958082688349010216136659149810426211199845895233843711187684205108441180071082782291614522556969106082887430494121575242388253714391697571264556867315343903302370006882080876598127307545493593089899263198363728085442791654201641770362301293932549712662886828874954455651593231127128780734369111014285687063721219400331720571901215849643784788785542633676093487025058391663510113108118695315424345490771075247527768038344908310666533604291607833203411097005725177807382931381004493135538419721648108055935587801378136084960024979837519020404680008040802161118798002805497371273174574983947242332215275486442179816783436711607834266727203811155471467419172867056802191050103346128724200581161543284187876670844656651145028272754788481963986438447099828602806106133424986326630492861466220951755894895163387258186787991567799055418360595462539436893163752471733464208548506075460372854871803514935233969280040212278612794738391940947590848042146659685849513074431858820998196582111367031280200969468997139829414190575841538911763624126421721417555966049648772911952919639278492163153153973358629267932897833320701692704988410170932014289439596756574217232885543175669658860035486653838195610085625402477617044099421129445676239992856030840941312015586290078761390827793583354441329811456543479440916004105355827831124245550227261147847836280174278615300509479649992437072159679681678795057496262828991683853084880809577864681468892663019864178395504404904766162796257321452299778704564436174019971347715508549081161101275347145902234515763948168286178534271314988594065094018579139748449745234043829912128820420387925617385347498544021258284845105467595892638255985721294218194661035951249202425732297876408989457949008258990960429000679038383914465279178997764492528340033923231415411884656400190793468408807843798070942150736693245330442833008868321984721360506968362679871066634430582617614023521928740046994581173932940227602975695679944889550844492651317809416793135729572973804447841341553085003769007997242554560748789624889639368772269158843754197651689392314828745167049009480595516334236909944182187302034373712019781998018976811917400322928983963623173532125850371608877881467248525979696022184170626158066094023914656916010590955026282219428707212823347854212541801525190446062104878930561502754820043523482130392059786109140309838711744188065188145482648130914392569879855255206539400456314353391024899984127316559872964963499367255474735614785226992447902430906357964355014034716525271078931410783347377990095771170803940418250833208569438388461706191557439799856198893169209413465069094451610379503538909926258490583974568690629621639310506110920300307994628321177744309791077959384501356790634906569915038119795874567726265246968921554811170764619559777395335536008696828995790804689692947293227990444289857492259782732250528189658160488481972764928612100156754223788405176284686751348817574798644502982633055249629362164945110759077363041746505831500721900367965748060861226106798514622208398369843374924325621246081645012249804019559143935293377649614348169975174884748850180585061167057110646475801187922744988604532252756254994982456357606547530896948145221310774386016590405325011091418332735142087449807716965930260928525334185508825125182675527383298597514240677806770311053334438466150870887146927878124367458757939166491343862790528866775694853785185708802697398519969098331451528864734790651637487718175030332516823882866890900197736065678249589379824267897316155558662134333591060621046134905982264531274642326250495075464973634595865166998160676817956104972959144398699688579106899337729063694802907293039233531129865918978569892784670972390210062934804942107959011976716711866754567520593141895000212807592775633378858822569988606870334684131733934893099274032988810124937419355919409237632534986630770929531648857392399797002390434613041695879223012377985527979339323664865006266559111291472763356814640474637867845632192966178997453728946925954814090431294526253647718613048306902477962767401135992481116117548479000672811845107815387513367402097788047112929649077094771167343678773101792480062243755374217656821583276439470200874345215457141127206856537785884895028419837820889829872499417295280021456422477631105978044384928814424310690842581804408511025435660815600814041070126082738018935067422799530689443678322022076556025111652020931657826721589039341120410361104506962552936770371463663656379704860949057048446248403190686507700689086861905153634709931000465101709580136469444304251380280529232512770288542896541095574290574905937011313231798851028387026302129834415463881887033696237306896080398210072116206534326745525182815102145666789816005331795776501716826054836663114471751110494827053917737815107568800507261551650280940393798512082047010533917862372566613269104639216411608342293133595627956079804262548217489532203425400732471150518291969608667385880828514631638477929838885707545077956272796657523616338830322841804121631341536621296737150863467762371149356614961416231934495210384755272958691173728418377347595549451233701364575583426023305620987817041064295600680695746668971547793197324738906719082569523483990709451323599969356354652205401244265228534907960200460936384240893327923848435564739426354357769959868774348114604461703167697310635989712508311298532475819766228283726661673109130035765899035315215690661397311010326478415461399329838798548459300418387080939985667980226114472774825997505663813070485813415463777418775382355088716452155249904862995149598350091243068274377373022522878791731586739861661490903976352090343006778604182973239556074023082554238603799560162492112586299617413513550936820519692262076445356534097467344895290698065539796589336764997741456993683563500961207242456679309957285003183837054595197307032847394557043813502010203956149227105864940478463184259121375611379518789440223276596478139979598192159852664768371858166852150442357008084091360892033516990429941037154992658719975914913549641338467222639057764031295911905016245175933406819545443901315235545325089130329346176985682651369934039503080230015481925946612153339527631894089413248949344014864537154759020078112648702190282711886919928777401425785501870805262231087862530552049374499884905841084003797604238713623335639178866201259611714824799373938446391314752985098865336538108853340481742392967860079118875869983892812602228788485671568886067469000061415776376274059210535925879270945943321841353701219667443252184926452836791467848200858908455332913433874554148022928115177402382815468184439626110045403938181366025915250116680299745175795886200166526776281218832184578748022799833887797366321450287443548492484806816758994183376885259300901759800933425292705945799536701954380170012406970005151853068932076315278308614541427668376233154730899486837044369565899203055894936718940325687034629357149392855136786184723707243245071566983714217619299921397806604321007118010325322667019458845907307999550426088968201541150881397591336524570114732007355966880031521548437561386788416031475608646209798586738277659370424115828877588162111920719416804405456422150400008151474773228890012644750521463469122782708926808168809980605388462629360444275554080890739046606454507154136626708765571630582497450620741158975347091065582405364764012508886155726418049782683654024093072571844759952545487440442519009849451769052047080109332290901612918230959490267667999477690420965899717251325796261167784159506951079607142464884044202667643227181942428448241399292267837939535063224071896041541490491672245483176330507429942755549863551415864919250082618205376207504874472335090206538128651050410299217554283242819853969845981228396133080709959975561884822021672006155116631201894859574520838660614293334848538738641155210547802181876527864454054040179962093570877880417692171808993027149252244232463972915798208233924170943066185134481028181191885036886620099737715510807927297022699133878790461442597889750929263377290401938967623755184436345135930299281848346786766349813982154109503944245684022096924885349877404877295531467233822884077981720454423748163922445935874975176563056133897902191844725455768838219665274518205269032089537681707664463236321019734207531632785215644389346870210536077128349680541457969427483546726519476776406431218348757361432032019610801892706113945723757409510805169804045408649812185677999504906659306009409160998741143665781235404341296768162966651679764254911041432302891243790288282223765627755052164902320367342225598790587683007174688291324815215798286631548467042120393155689606813313587541067156180898688775412340294549973054288728220365303052201613282312723569088187612240787865459079978088397121761431372171290162399980037080976508482127533442512034922727480194781617851071550550552982101916246232435242793941550346041783960747708149182386681246761134391627930233416530822398211653822784885802901617986462621943269496757428807415741642258585277214940803363769692475680183014157899042786818254371576955458373535608559417940687725653594001703130059084344515674412102223173387118281616418155215678105830907033331750929080829354348495036096782749207992163495943243094324807633970201334386230539483594991103555968550930058515785406351598406618988613540337695670449276701815683635302478810964198976180772324708163244827602042498882920730173479274711541167782136838718374335764804156210060509931189304472395779960447000661794397702075988131932734174498377621474880788340703297299626328236368440504873761065402821838419694684040291771915511393192283352477687274000837351816505013517334135276982497522170224596500965220430287218203713826492130406785364726720726193213025128214296338310748387493596999267058058768181720362591783953027087283701668109010975021362308995515324304914601036615747374717442127384776723287692416670959843191992765923302022136009445444126821878988315100974483889199188451150559495229741629597010543107364707545908025892263610702602389547427160975283806599623289828557271654186262996477734361030573176133997002093401081916722850720869267840989619887766372317721037134408807345863992769639369653337719023789094605390762694473427569068755328934713083090728592052585028454561542395680458745791936279537739038594875743357143264661928899722911919539364162372514382768609507914648025933175868487238319830952154879358672805812758240634495623800190640699897358456491701702383283159822206016260212789185823890125184870780049277223217460754184442548460163491927870521758396723627134845098520390926775793871711288563691706095438366665139018200632011615922949055866115032080984366900395273853552795386223672984594457910884131414602975696386301434181992534873948275717794843895868751678595791129680171945209483929553016123899771069319802910700356091921353177804136252195093529201873630565064234357513086125576965925897972114753558301216285721698589016699725442680204470145445996711783623998575258338226081647788919070718694491286331565107825503309027563065678998327550329768660642201673268980506469500957528201396030327792446362388682856652819016826074720617697221861232384994612801133027444989766225380318230295882724006501546138361537570216843877189600504146662770751507711545416470536576676934747850525997570956631376521714027738696756858006414624963093508122595700685982426880159404287966207887442743781678249000254655009687795248817364452747566056574776406334531256004068671739207848907583779655656524702857626275517623014208150676329206345007696666794190505921354450225443660169719257953680994011144833618778019248060667041491154422678600773219082542130019557914243781506111106481657999949878210764089948652459738398366041588308431910460054665220440722984887871830696822838802240172417663668818998257104576006751902668860701486049844287615622045954639180289942622368657649957966055591933945461321930250500504584898584918544349166880427341185300925530667513960327105039973143193869795763828388947171228524738801768120869687701564653338194557912042752046696308999706678501837149112656865342995877547365881061698965563741949243364582785947889841996840006889481282248559332668024416686542522774586683992319994652795259036917840138315572612769701228612313969581951598517951514944446423136331211185729625122130780050648438339704663636522751982296973187024714777657959424608385158449427289015017836319937523799946513946585341007849144594472463325839445309962253082931743848198036752370619959042414782332705830237310400605078449716558306543886635243818182729272268538683740215824535631406662153175789286827235223047186412260962346681915455884912123168118946433048874397183808300267410609362165102556515527812748358040842631547027258849128240114498145524082309139448641273927074609173758236412628951337728185272417506932407215729352559146073684725173951134983397194074887153645551560076799818475200107353731578309319452513423952779979789447057137848504074693774994335051247624083411020129770712269734606182852525716599194830407077365185422989462668110212450460759322203693273440917071345683670383852049470945181418603215138760303027399518993140168684478905107070020903377740935252260224308530537340753853034536297383317668793167956764468690190130809089400075519398247082091349679902998230771181763366025832427882310293942860907022012375316259210005477801764718048444091119310361251522195323276048936008062726501189680027649015252643362474855463205917358436188830559902829143488161193410234795604970605465434569958884461125268750372551722653854648719872875269101608308723138046966930097548137975122053073557740770435313735422346076628597169265784729730094915175215151259265573677132547573857033464567851281829860247332218508306041279790777631070496368343892053348112154192981014989762813599159765850308247073170024994329117460479197803203409596501515451159841590716981378012822879921018002896483244423174206381627006013953406751916430395882301160649867571075695061014734480808077547963003089466615415960203900763907665945184066040201918983556667204326692886508937865727540219782788075010139020597933494831803189829575351523405093706326053697781189225539147919008325514197229898673886142199144460915225186935803201056024948989669129694431007018878551052328526620521948975783855791051730297818460268026637335473952713934675694416854093921121790789399996271444108504832097707422211863445964072831025388357646055867684052851009185863004661136036960896129285949437945334991586699589281362244949179680021224027784264998944486727253127659550100550544753365069100697256764736099366043595143931361031225654913755753598214613727909830042027195696289128343350834399078052409216968576540400405792482890455464804751287284193948813992510441077747016409898294026276642577794522409113343679652904276067168802922400922175773030602619884693864457265961123894560168267479934324992359750495549867328675165205094501517784384057283665365005867242379466298049358551421192745280693427989573593602793271994274699651350409323240697193193629943743804398964308932949115421392297241822874695884759466305086718098225963467600119427323793557081754793185655037426687730609052084680584560647405962307507198642123788045904129240096431767325892864351830722547564947168464562184772697737119333126004007115973008903100288001742961729008044962433420590722306551677130425180627996010413695302981363363883624761452065847349324640840094859658579646678763109159611478127927297093934137662875037906824340380802006865841414361855628621748385440574648074594354145932570666902795448949714677298635752480124312318704619545222499633661903137239396367700830353488390250881793777332467543525176809226315716923869614997445306241133022658592162509112184812422961810737084158535278135277614571588091111895867115429342477598720061645477744665418648499149465742564003917411033803030860439072550508199443574274619186206034795854212616089923673878385053010803881461100207381071030130132910143024536493659410261143673186235983204880822668743245417983122178157363548728215787379766520693868379357294885182894537582268430684900939515808499145878228192469416852033677889503568098529234992529590277017364090291938441048584249998489983822049760721915108205233845555852662430553319410839853594352299012888896114903761068090415555507717402180069469744541384890547201625025179012014504305128272765447992732214914714560598074587819067034869165445402426764733492620501097061649742342536655142653333751311318966473212403920968654896125934994454181232100526415691849405429283800440963055408306663427474410782216027454984891828535800064344459864047267884876769076657549759869616001784704245663833364881847097806124369751496329301289115303677687868551452638125769203173224482365864795782251613687291646694175280882518995791092460959867160261773361761164451194851949647830768488126485508534905301294334882355738296329236071340722387992783753465989676289737840636223236941443251868169267929914658370049813522207850128439378756135743047943279100967834989991972843704936242332327696994163580586793479797519962857430598584746402078086138010682215089333710056141259665985289396588906066354523035604015677259839330910596563835247541646806636086377797579122829522532016323721536477693073451495494260679754999380469613429810323314274826140252302978843280577850390310131984779581336730027278221718352702011419526243275820674044111229216955901562431339728911021173134041930255230104470837978922487892006213973439804206675237322129030173509796521996909801544627197517269705332079243804212270922534249420309178409561320253240144871374561901806405650502939134867413041862686661062733558779312748712001819308070600365243563187500125933297273294295747371037033232210268825860362841984612675208286694120565209536078066005769567405807316227859780394824890061963931734237205511096714264723694955143593536811616001802010300123196122276941476979343843190166074419283524969105833307840018419390072034952622816973946372946084703907173732322137318280105577676925563695131079122515518942721010590257581572656738986586962505572766099528000937375376641980433896016104716082582995815489752788963355042952889318688239883165591012427415722479380249283109729877465723502572116795275140843623788281051010719646175629814023499177717549084466431844095298040771510207172084625191347072324674147796571366769945176580213967993216782892916531590804443858743609733800168157998935390614593617533258507419142615958926233430149542451753574730887204151595373210059300345377186053072356078144726574258820957110844437810208637953956209436973986088186973657794418546174686392789658416574786656067339767984341632860229116563376598592603927488893371906233722841153050075061124153630346383343389214279426433905828518220421180556072823256010786235977600416401780080185575787849946840757704166028645569261963522012138719070976479326024267480733158329418485041487616313793239357948765446571592157892059005073293440542221212056397852333047625491392581839392679669590258312382196759496070709766858058974795332669742086761795579307490148758550765249814413590775223922772650613773922105546567600710389430725752477957835029431967435437381216898605946154289281266851547705880424057485201355527184275197352356374037150056539613024026146345137784424533417168312250929806727211702297059361585205479111643999203535646320967378660369215735576627530195305589364747703676103562443455199238407499148492464273067870221090332640522734973112571505209345914201902573934681783413933860490782834499214966019878401477980614334637477457952265859685024601999281875930718895657543797408326925558867567293777055414489282959618969546334644991330871450704428848681502039377118716337186695755272253035101475777889693640169409342204846050399093682930397948292434301573361894729288553144137033893028281465109704609480933560033149615575687488189494376630604715151518045866610734503720194918072395971400403272925675453222887508644869150534925861923184145579611601556297901470326303948909651465776137012753513156884293002579453917776340195054967578528437136181049939871075931611348546563191532682627438210263287736524338589577136331814497287376487907741108447635073918386696631754598062878854300074173398945888080530602197984282410356682309808244889045862942256371666638235994369050159032214337559539658468303503340376356594833175226105922200744517289968053753087654351642895430166014379317386236557906383277770608899346019486253721775668187047231357150346821860408125310043010035162269952193131219230800908503020323145109772601642790111194337148640133581830525201136759330744496829331172215144847060866377969293615725286584237861089548701756401444076968073120288061906525475764892074199950332634632077061279501785263824921143982350552871525072727996377394170901197600558166617249717555811931195047061715951557686671988549785023215158788076621208689787628267043869582109583586112844200372023232347543844325783913698565878824485338738185888987287070886636532829053644551528726245976835795374146242031154371168788129694755121089984605396616716414667554726125776303312682561694956903255328177174133074072484957343692302407144018279692376915283057948807761458491935475101034250561393204587684925596081145266720197700754631897093247905189889739424822224769348564231172515242327767274692096295840591407735134601672994821819564743778456042314148366115416485557154628203154787005021064490859222930163921886848517637497288722711760963351045307397590006123342330263761700069550989731863594120960633268597235342920486886419322641724719218614985856788647808950843158132545044781408041021638627941782731582215559271814899163238575155796953129636345332553198537698840292296908285446597963653705636650733378833669937225436758011338021374712428048397977212606853039884409002508679105746459747209966843512051701930489062956064998848730074057736686700519326136956792503378164490956096214633188762515930613196230455291166241700239445491003865592941441510598661015355377001693603120082026213915510906327456330007350904597179739950850190284417513301000578270213640550477499635707857563813548645513020457534944069935729902414979244693638902258507551432016388283115908654071649245672634745927116899596687256027656076327027001401264174594035697182706610968594312017745035728266264236539030194257208880821378281708501809892032573470441393388848712404835632808968821471423841279266865299771613909090791527891807544575123953603631044883958182456006040418508355200696388286029047239135895124437588590333258495091219658261266128460387072252828261488810888183864733259069487419849484690652194076477506921298707112909341383651483469951708583215504680548663589218998593713264245233762444653993810856873437665423382472163732673072592559516992492385299013610692388350993562232969004860980178062657846211363845135184910147839125925077448663643514197753522674010794213064650535430224307217985233694743650556999436405985512526334369303610274629782606418674582604031829128288988658202892239143391902436479816862225830859794493405616815004951565852253593885978509215815416500293316212673245620131888393867240261415886113075929671653025087604701642974661456209278697440789620301649306154721826195066199892926978184922914058586243604817109211490643593582856607215514626662783024590071374117495601559569583639087542034771017376837784247589827612412143112650473238315225910697772623850080550349189505718582813908344723926653304755093187456276907315100745089732848616255329638395827590951989840840711677690160322105552111364627207851742480884013604090621105736162540949495840575455852360030893102154759615367345845717432465867542688166512389948605693488835091110722409290183794054725797235417188929245079013101102613539036337991623226463925209812259253043174466177327054647461526034450480594745255732955454395820553032031136957775819239118503839192258281748791678097778935272896255391010773564050948793534964876303272050384242434425278409781905054196212481852074587764840058608195743607424008159487431442230401967988589185564603712056092898191690108038898616400613186822485837136728998693438444196018171675650380767779745755223938858252434579028209967396710524333773596404253525987042139814989279249684050118003055979027597907221203541761167446990260563834180119863893503069820694043283344172791949803311685637199329321737128564864150232372272675801083048840397468614860387633819418467682928680707276612334317209591180522901893365196778984901523992147488449814568338008636615936405595893201625676928531629356105021185657722618360733944216000691129626241670874636836089854465841050907257863518391691040307455423014169873696167515738947743831785844595156161040485159621830599002306211730353180261320663153495680405435203411053728817709809868467401313118579449438329398779186570259365292347659309065121720515323961325037941489401576744339069738746258518368639249209054588049682808978001257868431809391537474277788102180394260427776405016677935564422838302885545047855811837965822976116760367176111504145401018040141306078011119140102930361082840422684157508604239635064937521416437755274026081112626832284758070507917226346812428955882193031770501731556825281298092688141650659935936139685266868451106721913927809619911727608095896277198154132953417641577122917302256181261213170997946858533381816815789045789488931036328814079168180873826229349952725376442873035949569988781091688405903199237800689018831367131379631673398711698481768774819092911078267711998328870991066207653574171602255694883835172296698002501989341082650754330900189342189891649171532991199133928412739524935882026343319897005716820502001909578079195673950484876438071102652347461737841010587572012225898591746004021346633274542543542232967373073476744539818945187805647124277868424141015349356557357645370694973741460641007099654466415177387024284742118299195331727073911030948073598062748385641228108073271843988516512979810493487475282782072096116032185720110088017024049356521760881284792222153847384284395877305985740256260653364073096127043673411493516873767731969867099607534166772382192484256655783122958473729941560367097471523079120527342394895227550256167258098166869473188215138327306602693138390601027911559666381486708354659007313511133913212418440814576546043696880798455761478071290881981415250669703763429585194514360432492992183593637676917068433941694895023228132399738046800921580408385133030003476194683254702211341987581742024187236618623402753772471259488519616484579349291997761703091224340357844078373921724048909844905492332832654784282853565098789105382430627853426988505395573724826563081701692457583270847799119952513616742786368701952025207935840113820981247527619804564503093138609885927839359059151591638185366832936875481556039297724040497080966931774549541430231097024283851894676797742042180467965877660462278249427878381914844070194344570021176498999032854694456798766911416271687145938906408477159727780639806376281068110234826825946042479958076175682142711672544001639413067768015833196157656165812772088151490568589676842060824189751836125563611469430418072338598085162578330128944354378018095824718342020627528757694056164182311091741757197744908509055817626578704338107248689752852354828757712045366175724055415672484260234684086733850042553902791443545608526289950151221163334647840473235731829400865813442218825600789620415881498041874414913469171418160901267266607429961823291463982066503987297363013583107481519389625418529286915435423213576336989240112684250009385105859636218602311210594822012411013241911463543397686722155078065275944739397136838555883175387551495462633392451968653154517693336335011983532753182043745614938628071224354412816359690904551826259138732923720031640655456689685081734724763145888155584451713976319347134324213297113243699004875057707214076681166036021969504772141819747245354520344307340995008751142422557360330979606747130122056657564101514677795722381114465544874616549503254579488009985667067783039400352183388938577852958102844656637179885097801789230946239392505959467326114061459648588959737565955882494817124648572831426750769225412964379484094040152418622750021582552355666303692286837051691411251762916037733138388642539602746088293904678548228037259122179316194251258533959432300125607791690313264317943734730682502315521491806004509900367874979383932943809728940359144588065192713180492334145899247517197513453321827373198619544911349404698680316627098029075090953393757557097797072898290709397097357588358207842677808206060513307386037323624513618591150154928220927315574710693457393166141648190611257247703707465835024339638619842472571463299742119349534065868501410553784898587380350689700468715493705798000515468164753761912936494144522999806827624750998063933309617333972065059401282323731545710390619714265152092208940479577803105152149001883873158508969824401840541793467999092832742117023194651981416148110090945347911175913735914367377891643214349800494321825356786261442387915667010941261861639376889410765862348204406774756406530035465111835817535134958583435269564075294169626741703401060289188327036553731866205458367402166496993619006336523464479982185858274216885617572584690532189792862883724881862754724858272706278975406267135502530739456410069347270676623173004038989320569842281790576244874608988018867146079985610752708583620756151561096609785813632563249363243000073685158066729676669497925178775637186889814604735957278251389928225029105843903579997277609917108343973341959863923044251337475176993085729886842768915034771830932198973812821624859616414026116484875022456028971630532807580939079560797833228940742781101755571407000493252230277069771926814931952571702114921111527969081403124834508287711876586507998677941792063767243007968339172077667854002732264404247288766751631093702635621121702247355796491433929795490918902883140738339222503701979587813918342796943939744715911375304693005854347975305857745347949159822802113899914077307643740317937069801170777835319995164322752051036341957369667834976354014499100085909438981498553154812772966116015774770865094346976137554751489833341069432774604466938187052657443803783578214868463901759596134916453824338566748151208783608536684954362662780240766310638852304207278660393185637327806171830292905476211846008441601463163200649448910774010022110987670494924419692314891354338185750071378298713827822206190055098479102049180956833546768057418229928446396203009222415770353938395615305121675441176019936017265737462020343498012930759662497617883404407729613024335839066312566406100019332009133600263511720526936438511418599324644973389319453741473976049415184614326111823738663546810746535249040735293699761017345022144170098218548774432648732524928336242077301092064849107185403975583491615085806205373166074084380042939907342791281549570515243289671804310989530712644414853740350754414582850437728629170171994778467017907645864993826158422636299220661648020100338087006526370167443565029900316653081454704736077796855661846287252182517836733891105498639586851296244660824163286554363194832021983407963946290373485903701527206484033542147642356483579210751557766539415928394794815084678892653061412407658728532336703592154118311691009425303070609658198726920066846240360633324920656228587397248382478830111534839933383931276407237315170535701557091579750104166380396240578584072012113240197858132668475658629173370394855824492467093760618971745995267611972009221248358908432012670862301828918647929205140349598448491509187608576518141631110163878770568080229318762652009760845260646895907213537694026461958521962924013722294622473374330944234525160883867929951831861938066097405280276193154537242988340847201600902582073521286464498429334783814392909449998132969690648925793813836871010814939170577811246724406248971219720070962801209570303448747541171742408777650056300408346375413398563510443545415558097935574104507439248549520660154205993728113206993055723023296539316657006957261560441765403456867754478069088998155943608363005872657278556442093505122430324704688940968912751430903223566317916808434462913253389802886887287213790499449900874828489436899246144888958713306997773191214215273365775921154017096441074134958820588246107081424322929893822531094881821746062732797997173886320778313133639767364525437755948248833095064843805198486640277734515339512303390244516244746049860360400276683842957432834053452346201890449334371080732159770750340069607345932500391740932492220167809531589038046624758865612722279533677822489468861281032132546764608443914145421205575741275104719888567874999749776967682715824841838511360482669913441584230200420603862763810286524106665283509189161545607271388690897414669348946287314734115138076845282798138307115621816059188016951858784865839944313838389240845969235690165642937007165394756950682427235538890470843174163521992056288020604287647866085310950998270527640965028167513334742723597609501376453695705548097092908969525589500299938523697804289519908783740778352291228870770126397191010992028502107401490021142305217216888094064263184098574556351611149751332990262126265660129900350822892494318232407916306323055807993520908859827133899444808843353549902921217345743928937833099150573307402267227472082174440204735609724780925387810799603823499141587124247461330632059692016903948195128627035258143047604147567225274165193398636308789615515431292178191881594636722050273137577020597946794638202408071791748862190906890812944373368594605598240961609645884563450145214794839914248550856151887464636518234515847344848442398206524831302466814910913107797258835950291947689385149646264309675372510690548953866867110259119306878899991700331086768102208052716265827765960614411326004670497485445670330638334481680141546209774289223637734343146803785956029837420641083364848629412140433707523409081822080132559527296006509004091404552714482176208031921326168059970699848836047523581883315807364456049865631244073461851472484344221497834162326204246686482941005831098432521663778899952386647124502319895907990174830572437420816427031230012244817950465991998910820581038007172296740924055674668578963758527114442593010771948375594206303888003769442408124098175795659000277257216355485518703755954650954176309155894036714715438027806836957386492299772928233490110820675903751308859448073047316430461824999840861495623601003040343230324702009232321750356204339000801377894566547017021545409670727093856449535283979265381410282128543480445527687566469720484731592640880438305203346651021569373638285493013966410882785883630778592718171988898878592574243260571689856218984889584775741974053484511579622344778332950171088489785345869272296234452060772160864719798203226672329082833007729414822198963571792542663421801768693753901921917814602605862235573706476413053645268066859015626495908492155924565672239506542474164993151005836763764481178266084849360072096398151021680062065173350450664019108304069975065402647674365579110759572270188116896202946735876773806658730811655810803782300782886150920330365973761626685761688047929666263722887142574815579685428847947955315986477059190992574111109478010204101942532236732747263297111377164814312883410249137269545602426331355040484265058919179905473142884665271084504947905608748933210621759484944621317156234652125520397443081010581738201445285284245890079417637344960409246698950246974461637745078682050768190894242662153601899456229310908307418531904031452646452509348395832271099675680138674164963867814606636749889683523153918670670861576678486079470257256979064275132377097355287083179284526667142892475781253367894478400456713438167151157473001751559647793961007867103100845889121755634341466429626448353645590796639200909447737893950124213754320686304254537844768445689212769338642816289001599550661368808985975443664719003660721537448862158291184299385851409542728098055492960682144961768169026103848229350765636672735440071752343637151118154016698719000243649765199453379411220126952933191821565280484289996964472952131075980103819791034814767348601657262533350812746461480234624347599209407601261097874971375856397420519902136950778408760884007840540223206423317370185201318500645318239133706147423876904030085926860908590998945548599898902482115314073461660792881514554127022166071519902370568164658810295285785796639766623871991513467154553411625082315791244575903916341173824594750064965871871810336657722696952644781850233388497141961467854839950566663203479371381468085504990016761605454298149682421131590361589730028282176012649028348976334622410011838176400908322677670624921263951042258114682733642994298210923616274262069039852060243959028479256800155545314142053085125408154996396186855803703748434727602964416246423395014775751808996517797474586022533600672618461517740091575783622570112802763346429180500742146613673484893309271896655444473596360171660053634011302903032141399185500129527045383568264633045312809820893032408262849497717214499563903821052866765237356688651345031113151434091103035964185331610285880090303231759494747858709749745643682184571093546690205711725496432265477399502442744068783125339928027620948127179915418876320802085658730866100906065710801428055299303351476988271396921163424372368342957898775421826347593099741371010682650776598302024804323598119601229745753827385073992968928835723564221057406662844426880369613726035922093449079201970725156820585402051906246539073414045371062619453009356910913761747029537242705264285300375844571496107396658951831219658686905250384996744609544720221079685345551741861488576804036053931147196734321783956243732527205003778694356956479129625997310867031268607066791776713528030897505242251541530860341563965756404142800000163571172805818149584660563892395106102136122815156056156521551969363822212040226956537294426954377341320403048976958732984657859018584031922152610324903562318917719619269542924300912825190720417592985997166786320975658794118563600346624768548221515396074084721256904919680090397726331836918457291216833625600877845354394192469891946732113503894704473174729766297107489323209939710835868787213149068431150645503432935536477782287853208746331843607002323317012449867599663770103092871315176633220383554506128799887448633581900058081629276446066401548180819733557233236446917503639580364252566592379484904178837132232205154880128487517754460609998713552891518910526684277107771006379741552308765158803706795165275328111314203936393573496882566700821800618469346743473535579846040411802425310531547166286562527850367079708262358701471899222580860989748711232473347567947866177568144862118940333682140840700892173060186751289572027943789051189863322446287750356559030664994852785268339031233429765214994845867596717129838116461951174872659974667468121127448883480384762007974658671230077604022673166796263204213041408237756948134105225435173192306020166745690327282007241288399961613956518224349660031509071515824654926061015622716543192405686855013700016201043212128314112299154250659348963900406690888792081343597136206536464038969843694258868574327947957272161523300544564488457953732038853594748391989910148909916705784100893952982969385653404118200274545590103609940236108128646294000332918728905310412378649687010191149698986529531714426770004186325746697421790460327369643560908371821020066710196576879355772609062201571959641721619495513685815070335456188828528604780169118846663017764974036665038875131618998533445914083061719332651120351489540563499811455559678425469534139469887853157302208798159553504032419208989822780758614728588702111733455376856969851641819798752363344303450262813758920302190711653703104622555384135240269933360994993432443425030601084373503193475630442952193661442265645482694804366631157952669076873183217121187690509451021081176586911803508669246369046408846813646389046135683683356445164632593821630874812943136166891204794600217345971661994989410208126966338377674982807813340454803596978374045660378153301523713074798223971603740553135726352974297976490344881685429630216213443978321548830336526644918362547706034692849565582456206265998933942278902978209835080863291857830478140764461723457166827958137075360038037698357931213355463487351576397057358762220725381753702795952870226565474673440103780191948676842000822731323620443461236862426432166642827263459585751260681638715419162298033405864276115618922864843847943180200236652720029689865630028816150808383443335775746725454768086084414623931347910962798001277617753172476795991858432362794740446881349080208257201435819623963665290585057923392952518796932089388045089074579285838472581819282932885240442515374305801281324238548946198446059752857664626045433529382748103801827831454084887610906213557574678442772923346485958328051845912495487573619805773389740714267228542853460028271077926220344477292734407218093455759980410696140063666060081228002284818376633069896349631040575751008737555479424346136856454308577462533828947267662590410645713909173460421058986541327231509498813073858329209509244936598058915788010355382341427652948601923774679046180025004163147003849880646808395916425371668585271775999334842635143862598349658978320935781083880965561262112903366980391297452073083726324476047040549254393924220415761464863984636209102396782761741662268374746571593753178759951001731823537939038421192445600204504081204333527892223255883219315663715369890876411219634806369263698437563723648051620012779132179393569956614894716219774053983103541167753996477257289219305268619609157259832359749804004406685160632282306755305525643574072498768704745969366169707980597522224558350256368936298774683941708605873414546671676571879835911234732638123394472031027891397977238630925325866086492613351850667257443352696478662282661791725157003369958874892703743936142894721141663962070032173629855990212311041856828809746955829218395371250606810929057650825114043411276736309782546739230583727038102875162391860368508336294883151508646229895329856655993649112127641353761089992562058000630376701916338779338872885646174819721775643762986540496933627721580836246911542187728168158441874204299173400690664421920957707719749017463578106859938514827954646112360947242121907527777861106422890754097636516575908183389614721819207818288885743798825575112125631949539392731306641782596737304241091840945752007323620152496393252681637746531861358250153562063747146993796937629924790707766832146287984080522081874964963315484894787574450616396167378012450165922579664095251388597909449003646572739105962484252827930631851562752791056736403213283181764394349697803488181116658003846123373531607507192029677715939533660400633507237123665799300805039697511813638215033769126420390430380578371743464864993980881068371948208446194711926461128145936223716197250261765911229496817080087163119824223680687333539455107963401666282606379894294052702203467178619329359115992354632437077284717701537331714742698705580424762484824660686650848110739056310920744235770374336839235043838867755243590212739013931321913828079533895482482569760148788449960804252283574368970597705778350627231779718288394973003218465593139809071293960595578156732832733274318065295703639282891287306148195718116290217478501052772696370634237274309798613095832516889741006288147582027393858686423055321788650544771320578231131137024456268681332750242722770003531356274132445224230450441147418548344712075657952438456442887355066031566584977305491777198191934017326568977766851141225835418664037965214198931100394337362048742290001806832417332930279563671420201457377056360885965056425158772791312519644490889035663551177489477214793443569389895094296923588320676692343252049139753638004443594940958568547812938603980640014734823049465757178551070072098104221767019621089619558675472694609422562629663328627885128126108095416253371139227257586412139420090047378885300378227413536997356044439049153382150404733312075168586309875553985791903851538239634559316340469612234418406614246426528411834052848139706070264942942334722820499656651753184258987463535046108996753430984371418930168195974117242562372106880192507741336153787901257066401502240884826138351222819679099262691175040510108466842293720498687149798689948277609876635845585087336636612346789948412002002962149452537951134892406630810425130579550749336681790140837454595147608657021292065195118366739944205596859386014977306516920635751462897104905394633124154504955264984143861536122667882451478576352919633249813534841341140117053274102952592034416464535652995759869916631042661621033832055396183958286058534299092267608637033444450471154238311281134205162192574893226789300709552205553067496937813743234971637045267822632108782962893286983664069406297033193131709773299173627740996885666568642444866962117442684644174284300275728267891011403332966332797058687225549731049495067229179119953037796985198492513408181253787804838671493784362028387268693499620749139293076639642012912357116478084043572347626166960668460650840012072540996389983017566566251232213628589709093327544267446118543806233371105871058160686644866386110956119466905977775116327358786089690243187017445847668888557327553890047224907375596219224712457192562991221992634352504734680439814970083802476874178365582320048249243031032594859138599997746888106506395896008681619297605156037163518410392754328565741777457131782479015951077048704718047220674851153828493249745566234658793661401234569005921920968970198249335262295431228282612294023442744323797044466561785286904126011829283858127603357556542155851801315961374093182285604864512026241799867050550611489617366005013932418848260025918041041173514838487045063368199034925035584430459927453651293393458346035608123050095486457126120640238988211733438571601980784784808032699008000311137116480423867743991794123995780229096822802691858332850114570590991653179843089939167865221275000714134343224667762087085771369788431327318104790011351139782168886555293066850390283446325807241570690480448783848410210126388386610484967449795278585329104425380937121644859586656414132039522228922412064551822836456121029161734833195770642956722205019839574171478917878452531307920722083900570309615141175584246610333690808729204278528528351191362039283537742195245200233537333602994406692199341091580113687202337624725336430442587271181869437475199177423081105959068454779170468912070118271933473005056724017911045312523491674479128056956660688184227444069102878010073183099353119190211027703969225877968932948869527551412441094598550264461241469980706005431081948768218299097513175277390863769809583997030253705863391079855330785573470672570750100434917104252301487830190081858276035561887055643602605139489483440269309791941844444526968462983296011604531133732903862939606179853079423635691544840516259473300029063573869792393010767858034829880065171464927652101879336579367363372521956895571264538955374939866305095591221379749455506081253115528802270996773848751327706393779573943487206691255717375762000607689340626934701165057963889903490895498685027011816472796804051499502090369456646350479789352077186686440759597194644980261057223446907066619193348631676622529831508095042606601144068557899623374170674503134073295215814479191027914829640110842849085822240059564267307748160155308360522582254110951822842160004262933209365425410257386737880705460163085716586577401492186550698850936324535605853851877898933122802082890963216887328153981258860191717382505318662751300575872472975081727496929988766741227951582450091093081274247930454662026424119156664445867743658547626420081745200232580306462012308796036077901071618392121880949651186096108383687211808580068691875814479016851256119816592820341498304986777888296066175533736250909972075337114773989124990212960574865452823634267351288758339212512638698087354884730919588940965459571157673706513052566956830707510354893473274850005344833913699086298922568513456644761223665648541961957567004847506806604614988599542773718459903985965563887491116046012451899369880958714925624968629315216329560864518648431672941639699789571797876265618672994930805050461943663158084372196300568512408329583892281216797343723252193422165958089152490735872466305647958449994194756800459086641321975318925102494226675856439753420532289562253152047065833727274900605742089024438157230724366074883078122265168569903192409680681347141624916503522361473494838545205011929900599909929808498538120512574347418273272340578174615412119987551477953844056566849153772610760672779837117113100946921704465690829060499712026174913508537512128054039836857046653370585983308999442493291628104399849213114481177954279809450851641943637886245833556474252514423339812997454331497202803393400162637124577691543856248108360304007356698647939018708460223874716892745319121515192530798757470501960061744559788435036149587321900112577285039365752188477555153295190598726213351778381690597668956315566911185642207915671127906932471505112502756492554004372711822317253274479631347037423078533942398193099450046716262720211064399350391674093217233175492222007487742053614590312408578847864743665631816929113903801506486399156191009815308162393371688504181259164059897196907522889972839605972265186596963407387805349512676788911017082054665906798649320145080000654122003931513109228403035887723868313167467747515131335401058493968712238558132808449034335836854006319116061112017554620429036929870472965433738920833232938689630881856536565518940995180464081528540192861516566018215772326397013831677666294940365619851257088857914320344881283254432834887626119216463474485484667775816728807111302407444780678784697476992567092943578365776771593072588267502522018211169070969961902196503788683714560802229764705205034911737834282801338267120600363638483520072441680061396319862846979467478590206706421180587306716978118876364907081245110601803049065613978921511597747103259179310335328219313437616311673980307633755445819842282994588579070285527863382012889522202099861574689890901249385297174589022620360184864735611647600654875295418901996140620668707506640321033814290027955753064455701883519282374333941266099453853034135390871290161465774892073773608682397249339675109608654228802952071633483625427816418522683100572889998064151018131234176786514736578744860024450686430057530465449623744864719003621776183167779701999629667501396886644974370685142004968016639222499023729623660905606444874534980708856863160347627253377374705095373373975642491832850475617194758605480855214640164770590020771384966238602434336029082812097875219551180335736604501814594936652787820752048860773499220747787505063494680245223719038942511874018049225837617527874550634254309997397226131697061400117690509120095944368699929821933582054445683241524666437270450496347835530745252064044759489423331048115738571117801040047203314831436399447775486123611503397624014282670361231759340505581415634644523181501777716041637027365381731045471594796347156086990714881794094985481687224360121501662974502061632968746336236287439473242234363578530639942493175330641106400440991456378497339615241322823829380051468340442873583780247833882875741170712670997028439271399622542686034219039106572991891311482399123334331945741610564458593130094915384163257605710438872394032888499060447760737804536472599605942789581697893278541500045324743135232037616814956687507936458773852004320188065192621202808531332216853643205442605854204670685760448422035735405316475315070817725467890466451836464571690030115299510739978729850753599223392372880737163619679095038676233349137519124023693287042403312893098361763739355387377747025520477727361168050886240687064646701180220180912081700912164284568324904296936966642384465535932686996134792309698970171564539150379765602317816348832786639321053797243893893467595650175700023386566423392039784745208346602071831222963120890319164150827999790770366867308004814085579336490682880258849999988459031684979358928034588700228685899681816179889233649556762591269915865770724928108978123647199883257374680458354765019829371498292191881413525345076952948992280823195072307092152870406670865901734703970303224194336063487609030260358297338081084381863433782240751909562894898488717375532366953435476162292489753180849507146734525474860866684749431359644895888698269259518343500006746845771156945897369308714455008044064692852903306400252830272655136715554094917401744956332388365902285135331382036538246931129374786853107160229272234770321237198589698675444258355870333647870952327758249308247044106343759624087027476927144999067478243249766483966858953509826640742057287333522582083989350688023147383049523171549063900581342890983196297987888575331021476352217213334168553593574118044647411536802741219822645336066617678466244763607885241609801562870304135016196406409091096504271910240495453671363181267938699732981659276843862671039815903983849391034260735358199664521923906141285037413027128977013645520905173517261809916669757758166077029660800632911472937293132811767433761220478389729651517682743485529837105850963784647473392935529417335841846292830347856075614545804787447262891338481252481450686039733857038520023694165329116088454071330628334387805350394498015975839615931565236411556505634226330754042389171462968355921824649549877774735450516765638089456140855661438246111535294503120351080471516884765418059640398069120040986015307273835918105864080075541836379944286752399158064477935672564425978003797887673361101161280808837698195606041268208105040315069532218028565572812491179743943864660650627982829341661204880041381452386241153062944491692795981026553333754355667881151630498721057604726515946212920473849301202066970858833811046201847955321491813687722168549057437050301469163495508165681372548221556925472716421898550776189798305847737690487572208890936956432578191727272166159164033623181144751222833905037842070207791654819691902548224957151236063161008204102570036728639252309599474135487860249351267970409877541631031019334709363534540594255983314471344702250676486090539656765268955158952919742738136268401823154441965014873549580463728295576276529920236616329867239224771003559158134254264500770116889904770323502784951596254503968750605653042930588764507095554098393443324064869229857754590816555039047520716474666852884117886245212394463122391368448957250913905182233278675479955378700708515028992405936053768374355266022443311136135836993825707773714405693351345418859773827215731037005044946132373034086594974532689535765111261828950302683736525598111952397807214255934173021072123137744517951193328821740008444496705983299069442593005933771435304990718632485732604441949081436071891218112379727338677161808624840151999998590939265354654746351542123034204414430967422846654729878207431312648197247867955073810929007126750356865204368651063152819627215772892833649747494870567284544023571693063949964162154018045559752919596290087831513731770331100263549937572198894213684692853883716879963943512555685564200072796819075162972154083416803596998848693320902949320333343546027028285491755799428419012115366366967654541200438186077977359054128602226206653876316165928815648465873477611476961383914614827006771836311113490617498783147943753421924372326166965353005153318256019538688010136111135790032711160319109949356864710539802340532658554741060480767827778010330434976186417407685694572458445676705499773661347112656500308046863692354314946373978056303411359184451985824922215940719778150052751290285420038625053003394453972772382082971319266225488259207045458730126922750366204314863756999423497725162411506804733470262099585118000387464429658231238924668107888647194728606452326833373315586518092922743919963501075345942348846709076397086138578640403803560811960281053623311621626338398442940399334558738704042005919241894420577369568344237198462357902517223486131167968391644723075786721646332295778840241111144743459438007611238866865139157327821597147657374142224673320813736741863812453522673379015522782780374066452388471998803439808163273682960549126684203666180195185436650897483177595004593296543018290886169618363543033641165812913107984371866812442460948868481736809359419788374210173552252871482216446856075675632935108014600555337768385845994361004374534385231626140270791975304156468678941397891287361107576629420847508283143475463709299018887310218175702654288709912953915807407327674553142767608397476444048251501508370246317083214086503181345890037241939320590950921636600924668094106511923125662141714289200102499981385827200874512681811730565325260306925501894711184011529686200542498432704413690084895900250511989749315463720252598822388483789005036269050190889331171865204690384971602846148076595303114832549842198696324329832578791729858382925818945647644207615329286591142123739701830195121530706210390467415721897319563399363664668743679271146185443857734557687355598022066210947287013508567936278185594280948247366882655620367228568377834758783220516223253525580168131759971358766335152303159539076534127423727186682494496516267015985317280269112683814272190799765382006469911934586428242927600619093041861100993655745763234337349615728311096106704294144915312959659269755329110149530400600489172168239511096202224397088551898440857913867118389775159361998002580864134411371071869006931741262519821955451471178305990318674657890525976529382611634045852255418320468730570757792057535461419491059115926169335131687297810141803886070914319583697595624324887305161449910631791382801135898541883766383966972363921668582388934670664386332271944020356375038731306487117425312714223089936911992342593172240441742531504038689494595644384471704997976002889665487993935487286552604364158511753755659092995621532890959256119423830271379010650708855740439699539254562652064334375504220307978189090161544241679245438366152234739344545838737043034601341079156606174923519112791999123845610666495885046352265075733961942507296559040419081174066948207474023917028982922654455716748651294968639095065608536800449742219006871200367166926911573536030510452237078636405685691015269411203568707569468915396466148481854172883766517170381584539171026301166721800619725878828189150640979571273466742249750836166102325377679830080493174446678435497624611261323597385991075195127031649481066907320308130664698674841806075129568394990293163465583619874650027246510463861850216261489967740339444736199008470826836093226851682178533440120927255208568277608053846250571246764575223831769280629231358915295074387598555537673019818893535784269822203667334470136940512368771555918847269404139357241833942099787855988625854324822978868822975070195304213353440560642345990610487231987082080838643410003091433276084582626309968423808154196034795106102593477826687219380569584470022277293564335224780990695245060784175372501044582367304821749485763886460587196720826423407807002176791241498788682856702870942085445633938762722579950688327078993163116366597644952175232380610140639838338187582494282979015926772631406531266918839812136146686671365054718766202067797462979846388540065903477869260343568341244248769247253223133096191634851561130255933415417716628834831163839485193400567720976916938393062582059821701879555323127431733568309706198844484390363888819371291240528180566445352231772980939533487674023861215663617612284308179270901371482391975604834639322401389239999438169300737890917070890289077992768692843901585454092141885048087817942088212913533566515187993875429397637964275174276929997752653461421253772599101310170607998989813954981897145431172975003347427235137021772780811058200007607931372462079474922736004253174306248038991722499708800551009009983209488147962571718733925594675236292226615809359609993308903724475606872849449212382119591580779941586135620564232025943801056313282094187422112334424784868496296129887532867337015930710563648192161565510730352841534523689514599428816687206386109275803708304580231642201100464987243503233035799497105666685540434359292899514580953421036263636220297339662993873533567967951725419527903649732024581869191588298675913165646566752629955758914064327162654069886860903632057006275916109418562796973933054350457676672212551895891602518758088100816975309167037509199505042053670956173113434179552797934512183681709035955668851067158730975258848067350812488636507907158145557694848091527757072593165821259002888315168466941383816033324744389937931730686553423462662118302441631311133007466447507385384646061722214297586802170377146300075004136345997447761621195761840430508159168705353771745766255455394694599887952572848714840866329282636519601983539047284183243555456519707166028226504394722144288505962508642544778529238480771336221215925787370506994058301883922445880870398699175005671054523174052394328032850325734846318434965883684316673692458127478455942529015276311538229491782433997308315184185273365191774315310456519913058071821061517177142722194678938084820568687586791658608453281121511637330806493449735716754481958444493582588664223590219322855339236450105902403169100003750305742352038033726141283597303377439565275036958989214307600770707194996966920842856212031337047359556219939210046838851431815769571639042293567582328550183298586585049274199330634134939995367589769450243218549810617268101922236616019919793001294615135539369859868793223429022235359914490599047953882686426796989123063639917615917704767027995810402729947510763689867331626140051720618205233699189551839122660713367849613158532641311461937927685677941335543044958134260196141671519718512505158289903376432213587207878232405305971848188003611836882113581929357955439501888867361027330789767299022503789243187489280350744293942888306841878219660924076287351066395120050387441791806087960373171436687004146967102630249433685241399015452656616089919593975471725808519773854945126053437994407141364431014194909918125322089259326165430631571143546887083666996144070881793613731720913898791539537871378631002592938778903735818821159374573545883505521859092305946090164559487479350123534606485960611071925203617495018875865989824523788532896547172940965140115449617055635266394419939780657562525732008035072946222888197640588032594092526035355427864723558026912545650162855096829300630317511228963135437163672875802176395489466074768115693778106796148497969882108593466225567238611581737952538305956712413984443938087869259251426570014621237732798578982606596762697096236616123647795275560234405225060673155845298980993996807776116070419920637317009850826872953774552897886691982653985782238502595519110519235641836216783612638517302451645000855116879878097576558675131175425298540512041998904196446012430918559279766644747586571838350026575419538078861725922532140883417649244717838787534000836478203937221821220007474624799290920182867842243618781256975663875167518967431059315046071201905248470380854802811795886458601638172318059274623056677243156602945727698927502605275719144676660857585903362774688761935605964135412240036914357516108489160046728549386682877619858730703007093924100315634607203827804362814736572286312382692281534206812130587425615065116942754402034001439691671103978403661152097096283224515705848277954615439917467846954982289014881663729993476577060987329637251964686045871456286546807567386831089033523154503912914627658804767961520540195271792949497845161117537269452395549609256602102698003620103859691303294773672651006085173989702582047634597113628010497659354651418561786781773803314326972466505507822792628078378760066764294988465371961216620730178883475333702439733694015253398204787575552713369100777821936489962451625092107608984959738012596636969103890630363178448012796951229222205267162233974097176542234645182056976379549859041453208667050341975675703719910911818643182679467303980869879549450207448980852684857600962440803308996456449064780538631237646132093565567840480974001338271643747339282195775586011848454353555080027332711169645229082785255091551789653254085596674889114967207121361133704203364241435308834142756635209903381135046608583962473179704792842924844695785660259448563029206052506939016233142623097712626151046622716831573811366260794385975627835198277691215971225731538631067471589506629489596104136242573427780504865508913609735309160519642899856749203395827348077376332213576402136574055197177268884921007016518197356064312081948902278886696064499149652110495675788808378573842868365253835772293207341003816074878739881051955527671822580273827149305602261129039607208726033601577633225672287088956870191999484741373411383565948809050170707253462015008928711144934360098450221944979573019802371438814926077368345567669602589272562638316652902109841231064169440779447306159135294758416009187095073839136019143168440929050460379190274919912854001304665091996436801930788781788502052594488214867896806992920594321082927206366582783463896093898153953385674150620184291900764014151057626709063746632207465962054274105453480504414388917392211449677454720100121865272072123942129463611641824160162968822226987479317036482422265540459059398002112954521282508135124151540719099923753514402635512815453337994531122695850690533515836461958430634445711424268591482640471554781200435195379932843218015987609562876165546772355743181212465883198078143754075377991990604100398885233961609038916813195494211142845620165284110260656148512923696702342954184003148969617434702022350875432220855486512141882268013143694982203415390539132257969762552377384021709665128613216396348215719517907118863177397331907099718633016028166716952670996354669423712437926206384148988242488711793027705121913789881953888483675054577884889330623184699172315585465545572696991431998249763616624245720978524323728593009355704494661891070126229704596440136719257291032553427645375543238788692394612426093668376229234443324518231063306406521144951281836743879732173656813582645847779614026607439238726210808978717557932323828750973023469666471780067149720744260862854346784487187047484490546749357242661013524438571619087939673543850887098903733712963470118511036072323990969121288710380118315147357785859597229954038665190102541367545495088435594128869485374734051636331982033540953687614711561635094383454982056112794657558453625513877338721627060380564613971664605157775909178423040735656701339258607209949795558626153171883504388717437848453497564961408976919467838357607262009567674056567582494110145138852320195963479537165414800182859173976551559995832300482260579444737921542413670621143069824313791181851676866649259805880389622540194258999999920427768025201798598782839743187213157737973642266342501708514219250970336315960125052896467411276355556460079009397634663270904227927169924991546546317878658919240228461275762142098458934465309711988134447229832566564418811665349526304676945875720644275814682510562325923374415264573893092399812995020876611213382521977112856074681479936473422707926958880455305823988788530780039227636381554452005521429095182947534273537314012609089735377594494312563448576748565625790167337890483158708571151768549483134443322779055717592157526331422658676154292066963628766106416797399401548802101144750084513529568887773425565011343374200627717666007730779380345667976506646560986923539698841779685606797186116544096168294337239729311404122631618283142181082192755967302212184228490149202719498156067194133707727242609237276691098517149900814980453411160855986625902432621839360843055013865291218571709532028080024622810637559527884565173032661403633016498404517886160849926984020588896096671179397437007111879677391887358704250628481004012248354263984564063432069451334180922749009192172442363796287047266094711364687584893239692412904036596890512790195539679710262960334827776143170152675841919025815622058721449911253383136921887174762324801991015157007248939117948898416758015248767207986328811124518045494100487846529942843594316960268624894120327219050054440612586560823321083553469787981022515927889069295094098998942122454234083713741719705308366733390297296048959919970680388368544222539750411835382786381104276993218659766048280920980361641134334209508577254005886891986898125416800644463783981763724581435692274063182466850516224869406279343609719350175969919887422134148892382851362777627939174197215298928952329878905791543749002782232996740229489890677865765119925654194175616649325311085794743070519017176017233779150443108690540177687145036563945996159537607961172184358425408268601809628410721080401154893710301761997636231239969852280759708044241697575303145644706508113601597175301573000797449103573642969501877346211223273667382115012318159746581998830187973232854655805363024826255786134683112729402780049545217728398854739149613077072668207527137247315260583957995391152330590102129471681611819344727983396112382970120347868612187885202284500641988003461588181954574620204432709713910268340543444194548061589738590262912306379902545563974178488295147314799235870614226484616042811550978046922306551311859973190272014409777196255923513676477619670948030657750306565461863472745683438058494489227573205631466294585802532070585985012512338531744894917369962615082852265505865558586123646608629948411782264535630729115507601343103598094807936159191471582086205859779152133166975930337707859520267769330899168550269203946682519563215875549872258211637908676898819786396382635709195947470549776588105960565507317176280260954855251343711457538513828890542000532353891974402863095067438053927833442294285946281779868501861995373524662269733545120446170249998889850904688067823819204403951524280833511642011766033286124862883444683459389988050447352852687968265821715751662973044974544599765291401407821542865626071153909273178198083781091239537680831261758233280884425733349292997671553374197847384399548293195427641848551140017684616359729203271349105662107746617864809217287418976133222178621486151838245680401503422479515085121186122622717661410145268787963984387306920888109329698487219103067237814450395404072780558115930843371750514829556880153441937636512351778230638199166474241573706203079473077473901009642565351068218064639406107998558218800537045217095884778864032254258872390195260452029064255277671667421139224026067732150777005330433887094495420848829911862578126556909584749928732901183186402969749811143974492707051080850140634464850504988542067128709307695374729571441514004388783970961564127957910692540824577253774865229512875635647033506734376825111810051208404638556101560432028773653795889037659560911263959566557662388895743623182260488754055355027721071216582399618567863667438229742119047538598717953294446061537539707469506960598351439936948414744975372980177664266414843948723942813937746876543139637255437569486750498838372367047153003118363118561632410243004195287830326083953400762210977098012740342106507148933496589886676312250021149174199302478437996237485700961982046975730396166097726475722408852281313920422702594139094153980271949829260846305580064118743386336612080254051241250381759556078998990149532853293248346000553883722004833279317857002181705483706930451630836446745572364232239879320172402257101596840173085537365729109961839309566283972353990994841119415928145670490390775156327807125336272687423758972660930161898686764702389196154325063256258361791053008152010733795994526095380571907831048438662170245678279062854730057910697964427697606021183647023976485171643277127805262854076808836094139350833646346420351402148822305110035385611183982668186003908344988226686763166410729870860254629654872769283080898515560346895764677225312661529631685999001167331121011661892341093908786287022239719237757947637536663073775064789162307265619375058551314120053699759206393539791221929437430338873198961421541792937654221798053920855086032632712708371726356813542801918711275250782602334907024827561176319607921980710457546467414284238506296326504460618670373950254140620041174710313705806967081275149248599717518125610807535240674935742965339530717975527316130623829135849286152199595210177069373891192656566298571107964903782452574309489091914615950410545726454774912277177386599818458102393149674910731419854000676891668991865887321669909499089366427382960331329630013328162859990627122006933944366131631385809141539930347091273917062258700435322440543302220708935051002459736533467007173068685182474093936981021548142797536670158230639959921320248441714774864645108028148402249201694223071114951707777944994232850917655112561343500023108126013041562431532232904988806653563813138690151362668436011137723437364003331531965279479174548882566549490066247600726082967898789939609503395158218889721968069658716964965713911699446796827371263869831157224117870652272063821351002049128788172534906544904756028773048366854335742122668169933938568163777190462852367048023125216216260405532666626959532698749978751612968313841858021024456094302686378169287477229832786685624102720423027763013307139600092638814264715376523193062770545980484438534584791829122908039076536102763045848124049353621823843343042896031800149930281002823117623603451786950494934812204252090872808466590159414480077287153961901766002882394577443660925646646302978455166545370482035158574362601756764871424745121737189606520927605810702985466938236824356019742171299665574162560085094801225643734519225792798045452645083548556759698629690790991851317390332075143091006812235291579904489339546852921838001944948411808047341927014245299310257027061538838568847669069605056243743612405064742928478820170911721233873779309483504532613192038205758598224791178063712725739148583740627758526996494639105714867552558847793883001727278758084383200215612929465238817418207242379636435792175459988976927367703073868084800313636720867244977006335584225962286192899427931844155232436012358153648652868357965099319353080382819192691935152319215475807343171957189157001050711729119445431947951955719308352607878648628214741166930007719792512197969428148499458977555932385628128997497523874454331668195311691917751079568119493629878950187918197614897989992181030023938039839330059668979766877682268142016840312808806013622443292255861103680886415869469129150842531445051135859232448174633158729373812248241107126887910532894437710103850220113555486650029767381346904711514567302509958115083978748480539851521198273085881190164586940803408415683978498575841101055199504815065010801857689759834754010718739999501267579314294721686302671047577621018205978623052305501225049572654974750868539256446511897535145029285179274563020993657163780351380659917419739178102466992656779742840642478022155061254470972552917716749381690186580971134438955236338353484869552328064650227927470026350685957727469617013600851975167583397351127274416905232319598239034278882625170469231602324858434784104015238950635079081610776739529517917487213336931746650912580818673341448915439432825801346845933889179140222630896573327712002080795283382824510950123665023486495058151005424137400612906892215795962521351506870627586192457520644226634447374560070775114205755325230242183944333191372168396382633764992709202038798972509426921240038369673662668538207503781282298284126753548590570820368764413501939987670791978799868526248741643336764911024786053089301493999060572884195469442129761040050629928378131609329872705409757160436235108821076101912571391322584125752453699861921305104807712356667119457224360595424377570344462047156912853575859369926801367156632849280210780132435201439975101396671604357605533028713002852959271596933777781686041979440043397239820238226959504716336379271223296486279160792701014423124071177372348329009767913298562714750032173029700839391953753500419194818541610784762603540330822324376314867427341261066698384124739107963063355354128310278892342924814252085242342004920990121917691797776190893825469165073176980068592511615153020077227905844040360933881921139127157563315334357371640891030529552330720004962250816289622674871982864534126370229881615227755600178283597414685775656361329786568119201943303018928749331792925823029914310633666113666154937006850769327580456220616779238210917107938065775004625655222584042267854720875854015400245140694486228518775030668489389478733359740017732088774187010593051824638796754410489409621580076143451320323110407709013714932531918551913218631233082743116835254994615133544987143091098332706323259393090210339618450489460532610670980088542188739034642530965344379241759917444525000297873944508598013415682528601914350098770572982942580578125637839235222105309396208089845837390969361451853658268192821246981440180440532047329431080013742292647176359291457878713102082552694811692585199907315140902537911527924856347981526030439569055600485406330681056675606820909627332546932200032739921993286618486267602947090378644244601520117519276845394514494096856381916677330771851848105563824755568080541449961179302800414240359228009774183887910023220906606647551950609016489985390801208850354349498336483702751304328797743340781859092759381094106735908318819239549042083290864174299790424362623337670071487857275351548986097918920855049599429301218893592524654015445861467780050167798497699669007303537601367015292425494843322807354830607104526554572243777497530839552392653118894879168087236006148329475664992563565816089925805978144416118868849766481958959879451191627041964464026813519955988397940200713932609605210797871902843629969558642949221306649149102888206913346673912493205727206211381714280153666847833047986083511198640457681008080140413281318090544310943055843244606892373969408732865419624728849514106553884964798892493655124814813078990565085555035391890005303212724253424561036942085363603060497970623531267311121246886928142501367982368346891191393185577238137353016401344489405158157219490545647279727173109138269231372434577383534714346078693091386300994549719085819120412074622301547108330980343248965106259505566895046309880693134832340961066541606026690827470862158820751663890942946845382572782106884312978038230185140661612164178198063755638161195576636930154743975322317043744260831957391142509727054753781701603839055478566949916665595270616246326566290494405760546028601721425457565681456734099270211017784910966362347670355677005068128410506185001048206541744689706145768866538382722093638709110313198754996082152122931832250816060537713289575856032057895493816087097288009733465289166399960710785526443770683973662692468942594049638612824696768222859344312777495687197891255381600939892263183880312924109301776513632450087037996271957789921668320918386174393074225104138775032715088037725361549640662778972867541717308969524658362418953858351942970331866394664327085120233850509008229601976982600295615864215966451003474337557013113039485711033296375497802526284285810340030975220299128362060214990400286355022631171191031539651762385859187532782865683882897093285928207560771268028616199609317534979233469413916659073540941440416377145071178314316531272455962994045451771024298167453553524705087124873480927979128433252662705666175781171464301318011363455446485917770883053037846476073843994960482966177505842788570042759100053138253601704790403945014105225887070598870722820199464225265512583227915508995633748411563025426662389178674311582917879189545941140680460628231453348532965880666182755627536735661382356040522430530061822073514069700285887758764466460281381585283584368538466539689486017628193331315287278977708267056209361183425149434022934948146026455353413683224639604851311064875379790540434850225929747833457086213037257127968050960590755819719183315269782415304792457836101502713573077555301055577721072692449391107489795546691424061825398082714428671157050746272503135086037194855471740424377741852264162601092885944150142023651777228316774254486050900961099369199433450879344330853777426451127372137651601172149129415809180822593651688571099887184694964312821389436829795368288424783569495623127448817991467533426526888450979705475386763974427474554196423248343547586488653055291245973865162493275120248830035734913557353680822699376651949836729020360027334945863655094364381316647943903654310424285077304960095395365053979789420247358760444155393168890583937516898727334288919250689354210543389621984887378992839602552727988583564161636719565333683269998483167210151231931943096777217581547409410117434855135379996998904824891522149391706469533693921140995643746457165849010214428592455212993480264028876129952632564819276052053861141446428455117967143418584331948895299611572736961637093890533372086976199088907491871694435792806458502907668795775178447726048967914898686775116934201794008659387023013725721460690712654107071545469417774837295522665879759097534401699766568663023233290786457258162722152931551976369753429993866547657634726904328747448222123035588132938181186186906559386240822938414188750607100702688005379510881274593650626916225487382780412335221836193909737053767137640118375569440539852830210179885059548734581067357035429294765530778047132957206043527792692835049780943897369736684568600726573163920911003171892527999628409987268678781762574225219222136408414087356846149522907948691918165425029523590392571501914113334351332443080323294551956927807595404130365340567467896904677491654550970909599147780137297534693990745477391724619630866754569848429023736930979747519295609198208494605289853200537193898805509477022493706849821899330379706851865394883941998330521138905738254163844075831605205213423791622317216159318401282621623421934480786239691947945722732628178157251375004442568473057573404127360640695336505119158608739106058759515639272142823388330739237694751560236242527483137190468469520463948804063520948084329169880654954861898096487916726552098516843774353378272064069941791139088265964395182579503758656615451401185342923567825676300828352568824645670978176284364586053750299908993087863418054217577489864625024917244289598652513804917565490571882176155045154897971333417320902356129898107209425674430408489298141396611266274667253826394683877268044402012149533518637401858681289153660535466459923421649313005004602035485762634697408351241485657680293152100100397214536136275507521481961012007577512347238246845937416031186358449623708771914365936983320728433370330959962758041620542274525436599989091703511927027360528297842483316034645857842454092118882571451281553031769866177654336402750464813223026527916839050824053351753082074271853683673506499428924612210621150509421692394616819360889451170801334968936943168528100256670596304620653236226157010453785513089847907257861485761858181276451716062262826965241818509122897775485951058354422614003673487903275309863864489175982874378410401968271489190375899729366418771711980494129088150268649931390800946297647176504657484534988124083094677717587004155686119547914124409443091312930744215281762039053456066503461692018255611790424444841031557512163071997826301610094272781596117171423740455721187813104643439430210989311408129837699497242540728330536062408512726987177566612435235612314789549622654054777777064214055329880587860161880009673999670355674731659984503328675227501967159895126975344378413184811326704680718838386611476063505826766200534766518698946162713079091876234119969249164034563440117699149545001875194750568312086785774261543506958387008252257433168773965394169334721971181042573234147947005279270828755741005119749647934763335403151128346752037841332430263480759102785584572116410195054511003129571002230073538900200572443697417542625812943263280098646449546244343965279923623997688942814325768325149372118233084655679047671074043538654820602109402949699822110021258834931289802802574739357565606830845459471550977903627149618111023332088003167130750689338197831046246709263902937994152322727951544721195004090990694319179026008994448630042352509041149115505471033461210957968630172118835192081293772113583734811020642534475981206013040455908104974628684365224369221230079921901873282453146672811668168759898559980179820447504487258271431733008891054004168546958634339184561046984755469934621864941549060628497729147261077816851953559125448789656183903397012734804479010858688259946547446981066751691210222925568173231320967536555903707695064516026381112976755819072309065823124925924937358115690508145256878205788804037229579546523682714553272297885505389847152776019898446762737452313925146230001290850514061147503029684720586138930326492017587386334414444202174600804358751044064511401709526535979643135778803802074090877882980419831731000993869907150293243910318109622390416832696565293843662002129276359805225459066050718633329105264083067824191479359866587877495051066071640613791460562504400883218860125484440717643088777983910962131722397478072943686300033893367585383303963019322278197610660533042288115876300678902303245254109082045523729081135534491701995646951367075494824865017752265920654444103228393916152265537526775938773385275028409090938146228735673049744658537395607644922961519443330119261064940269584307915659107573215782401395504202955035105101734571066283289764016239745626783066949498903149487544590031057710556172652130193847717108514726195152887487747210088996915670861050652815982902340593551969760045245065030278263636705067138253447687487037056146627411501609416933274346145776159035475486636533766970932119693946681589229662773236655334983941842329261756657035034157320145168676049787285881400603884747543642742902301066401765169404046960763386873142526878979278963056230253569503484040697363974040227709384775687062406443645895059285842216731626790870087536270856506364978442650291637262699892863496269627214076687124974104424980393275771196296104612968357325771268683517379634985014967000819818179317865498478748952404818436185353878610709161100600761621585072554728942794956199413684934850805052627981951205467830095851063519207804634244229333160182365663927312836735570447805094301142701285784326699254499897174362221468522796355905724505686533424586565477916242617249286962182302213831349873850043693948757761266523752158160782165172305889340045768610425785317955168578777458163770866341608209325694688225153508395685877020949525788165787464927078553424415344557737685093558186434203880004486062792877732957755073189092751672711123034125741686327497151874825892524344251684949896358196066406137771302347618449553335377153093467390270985911798107061555188287549520967850179671144113569402522080614170912505300484672304330631214326697047344304418858929972750913898762677506785736561983589512475381714805398395746026685638441941094482943767684772442314628995981582004118087478150011263220921051792595983040409825748850276850099561823094665889258326302883899210296610361934196569321628445130295943999501640382841918094724771016484672770896369810512191135393874559170660965791868702701367720130963296668289063510624507219178818983805664935609748261784427024352351715317555882972867397859332820195055292907382924106962332717887412264111228241603616403604025480806267666133151715728174898950856001413773123658723726373866130096666286501633172186833512125302356573702965596845075040180089891173737465873771990992616021690973412613776554968940369929772017441975189330339225585997865815006773561950298447095662152738419737462159369077288133654172834127101583449112408176576105656452787673403679634017040471911201125991604051288984176412539345193031807467405756929282690077635520330670117008738874389799361543628674942534404999130619701040284038221228353257516355691270080982257347485908533309957388661998154480629419983781210084378989552703363592307781111743677250222787584613055914711812856855654607387694190495465054790636693999800151312772044890363677558476008377747517603456292252362322003239667428089651801707071447861418966483523496652752857790191454681844156155215084801054147723699735717501284317787202254844729649740021479295253849608806156907138990191105869037967482267963661210358204142869092410690842611369813822954450319580570250616545358088703196669028200806640646531779289672303392571337575691137796105923786158288875067973048904842240318429310819118784507238246265647365999072250045814793068098966528994368850552181308751118902150241764888506374713479171645686024315288203023005939872616360693346998742496034904485937673425943269679601283984852481042420560835695175974026203606860547023586620789077370286193227157182100307528865874272855240142436286156723337153518927538830783750278010498614423378155509263355436796801881171474807304275894024092064925390403956678292977853369313188313333961165855251555848125412756754363973534323757850525518861034274894368140428857023391424324039375305040319116929124836513516716924753616779103716175989934476187414070327756852849864955500701544888166959220651277605438023413628467307341927853594298324539606576271424852681863604770526174231113983387963889839504019205732103415093847775710644363616561993458925844652190294753284215096357513047970619671819423945542378446897524169256571375297755017200773835567057341358577447607247463026997702499159867539860354869579060855406692261939099684509622240222868501584470401642540650542641724870564325708303803137767263252181126078974793716521492005636715285518509848418459087529745831832406109758097517800845690576818964495995619244535605562367408452037957375485270741448204997910000122736095987554237130244724620886383476927072832471871078004536440662654157097027067926111434975032449813660820702349065430171651392924115032071223900730624382305382564631155368826823578785207042384427429950157662295902954789479065173373465088658142916292362391199474029954910154785092412885278873779616344458614122294387431487429120980834653059886451927759198168247842541705590635067426370805775106182820035884824902091063965458512600890944569241220548559980331798305930499526007479439634437605445489389563978339234426127314037210126267676486328251628744300878676627443855739564644538909774257808533566200805845720936810292943251764218704639828864392339462064243964093363092870126377723776897695536990240092947648180955194083579342575478576431265347092524000235841540653978019100193638196678609314695975626112347670811026391486677103876221271563951717603108189365339044342073676380435649404644559965731744969649018919707449140472201957120997334225390281086445088309048960811728504113002909362188800705859528705980734143161988275572121099710149021707920294099176420803212461400445364155590662586586776444031201772282274233607797998936602553818656219314928139075897033884878853299103635952456357766644031669330925883451653491172888188609567720196083030795722416451414821929075120166163631062055417371810958719688236389107898169576632310529774147866253390735901153496958894977902523528133789047383090950345150016006520449460951938720517631030429659098070861605292942380044890516942980029201063751167475581350138872416400722281874653847767481636226396373062764633368137618762669370056430094068121978663339384808321602299222096336762010237657571412587535642477036289040853432962443234127986874124802994825785053644139340650782118109627442033547109363424224723274090648918808480448959238463335991518229489691721733583955588243393380748343062316166521801654143423029918334745072789856457948328959657815687889357162425002024202029484535695881764521633917581225783146563856435170870465915673722928466697335965149811418423736036575737552076092400839224150868235522377289777082024076478576663521673042876609946156290669002453223320293314411208592501013237736854650601019382465393847759255628074024482730805343236285831927373828239863292687796760593309523537744810754645853687656304423733070031719448240296949874210556992996908337461250742685905523603577554059570153794594356713719951546908851141549593932921237329251507614105846411510589991359509500815881091375185921722111388449482144839156305272534872477367490404854056660922709833552738502713455876460092793461219348817209384151803813807643872805968251079652717271116296897766817930845078717739037379587538151670030395742257603230566668656797946933979871008077016997452139645155916602737835419534790251080453113000095106927977616922344808219122484872825723374717668775632188887188813058381117163500996006424930467649981233477828734407623640402177986572465103809635502973883559495057751074178499243047994604914580811958340476402562866896296233250892307727819680212576535770485449319380022302636110233585033224655879192748815926328826193606546830522308593319443268984810008917712060668653801083344827221622423108218992775837302172306175093321882362059261111238736380979159475042285484645629651784217584382743145378355590744308109034276684306316053511678633577046404376955963746686120279290909683001553262186309003199528181975737262072783982803450123543483087965060294459464638422272288510429070659677736326664257776684510100727110443614125500332456798249313667519841583051471070109061202041218354840356570347900551668067267252417614646660621340711723275433002290345381665706085917185934488565583380009395737777892788313023950062727746909400165083632314796691867314262770053408251289956928429334612788738218104040746558390339605995448882505548712939838722994139395570317491536544413813786908199908072718772871162034897961269685011343931839629763233675125238938323522691570242162861730762949902467513900099730422910338161528629387518426816825426126272122917277249119633044747566790451028507272884662135217161113452904379068731675986009580336269420170070172911901876892322916779591615379420609083591845321391750105075760788865913996962901966484105221460562114001819257781102566762105671151627798954069520781393584368245125967792810119514672144245181130577905423940516218014821994908547163756824939588400380089366113593214043664242626997918090074139067598103903175267117884263779050853666214258420105098931943177920980728932876693858483197103342176599229267417927269200241970639598484185597381054461871051377802609482012900441768849476299847460992502443684696441708630276936584075807078664833178615625763013582030704939142238677621387244451699829732479242462563012451128093786854279078110818802232392213929859979988024758832621832957975028779299160934319053399430585362974121243203430048739081493525796841269870577613807469128176514175644880669232247744254838564039087487700951168257337178296547032016553268821097854863997727750286811985614469814546366125081269620958900173981020971813359272733090158284715169765376561203564705897082994462799463276245415082028483059759659664344573927860790210177427872203569315147570223048727838714418264406622766605367151531122126373147941472508145421675166685914335789753824197962494899657258467717468803509663686929442642998312301061377576280651033456826036139595674120408805222481874922851643511440272902413302715538120878510581082768720291927777118891628747803827503707506047061391701472397469909108085226508723419725114888474008405874614771340558792327286876418347845886805815039046546501245368240915774407586722914350577872831222789292659540920271965502600385729125421392792778210831672536981873742996730168139249536449677392441025531689441605637676698724205333631139686498255076952517912037716860628736084183535132898536799053695066070608324866454622198816717013212443715798617042115551031818582157442064499010883403041106034661895007879963760853551004146667511038351251118991054572878534478102864473200922964822410426004810975834245851306567652961885268029847541574101752780550333522937642174919084883256946064150169005994213674817840939016176473316570263225043386678122536846414640613724398441707252664050187093731963451017438502141998761051860636568847963985317310533356506736419463662711350730487047615414415993219050989669452803256661241834644253493907935438227269796257759107416942351962014216929436124006755656674813664914218640698792074666367816825078678360130533854466971954995968729184058013545809599978595803316108671071800605508342796275567723075461541143037653419913367653339116491509150168232984535177993818362627250774292835460160868474099668286496301192099112556460026695214383711439105916291453719474294559665484460384441403070561922278490246396708847970370924570302149545129574235660023561212030487197980624394868247178838508777383242695351143659044642935839794029031240705496155829260859936227623928556059832484646471200813194745659408446548191816974157184765083930658347308260570251467730381646460587319691813114711383734630263368047863337249754787673419304207956475975970545332377718213343981445817156920533249507820552680950929558382290212634760101310118303716900977912418578437383233748867317797929848859534736395115194432280676878263501601452469655726031422273997972784412594323277622821526152382185497321622843448120093872554120007236067795131149754584135703711460574630498527143540470304763816182536519172826273869116576452674072404827917609172932193602627294935836052325368999932172230084185889446762250236863507512289248696646361935278794419539727367356478359505064610155359876162304248931874650164135272130979969603218190096218952257878085238936269966576546122662259976593682596419063388666937783047818740552543574834411730828107786338860567562419219067608101590762285210234011961776388438006879915447118519316541162916560598382395617217722870250807406432742160762666055289503051640446008423300006985638036803361287723423643691231191736262476101813777094681078172980443286873930207061008109138579499276514966378687850708608547895144531049151432558533988357809363033889234905337168793251829710726503363491019251873021469733319995947124464779170639980212478174759251519820072271905316405847854528201738856541523213707291899364809294439624332948552025261404102849988552995926103006121446996419851413491176546812228151386049874806144977374987205394175377748649323651706783936421374263875104556517510319079062297075928909608112701618774480229384479572660557097922236321565969278715669983404119766245157627205931755217890930086807059756145713226186711760793076424311427828031161948211416254460282267697018273503342020313600281070898972353390987156708992587202614755543827488765900203298979007141692439963521476502573946896445754788297859208202364925837417522689434477536639614680694525726208908760291499692184080553910471154299472493749772558424129986054684559036971401022108144572861689325275753088492977863457620239405932142803648220788272194465007632857904993905559408328827935352127788982468926331397421961062030192358658203163523590066007774801931127852810949750761253256329345276357059884281911687796460087330888967259116574954727894314243471091290012722791087133532046191717485030458331520629773372347285669314336555166778683590675338584326077506517016532882376525136429476097316464287291234516280750413525686239822356815334496219280251583764955697992214131813529024294466733591920733836095897798643719111438947433932173369534538726333782032711309774041541760600582709187945547828958309204563061480249139136223569224515012244143380694789271620963351868595965729317789770786501723406112525678203390492735076095326200397862931601685953515644359335561473795936747298074309256285433124499220756090237505278361013027073295068374950047906702748931781014577099708503871992187667151050834718134566264711224037992329336685588477723383749387755970118807045771497090500117898544161894852239262742718800350087854424356045796085082108842433298700573422065304224267374730665758351701735777980020091914970212629320755639205790617323018224222516257414709362105609962255083282788317446005045644277537981140363024587354036153712960541195598360600690685160715634025883709951253248681678894470042466127926196116847667951519651721505250254247206100524380580039135104043121367403945970391225874601509847461708284515069981630468003029343918274169693298866795371568672873214882611906440710068653560137722004574097273239521757282302250245833826625373525516531949499192242705854178573879661742129684393193001770804446851570198893996364085961837746817344793388975108046944688649439316144039414998452860438091257275587971570467271431227741141033962278808240740718085900487329940909047530659229899932965853138192909473091860121527295476028815069689240443172543330946380925209596930050747350830561872041414798027184257278242860608130595541108065781256530166183885672553917327698807447422212252397553641007573860040346846041658382339299954866414787912613646281644650137566955238116858536605432645107818776900589033603102834249532984597140951993684209922421375983677100510836498385391926941349159972433550392907083046281571541457938925815821457204438910441079469266913154973341053442850493336707778616932512569199653705109038477412228232593317803167305378957434301826843883207632811254998239824640706218751404791245432762316003664623448471242071006321909353518421901665397494314558648427206889593666487107346773682529757638701368108128112135553980340367512720290651755138402889392812641138065291805416810481969969824349504652310232651308093791766542334544464658219346167831396125771024073309169631438685513686881432439795008576447403168988960301552305842167993391971220473811246673527839070113755165077810751687880520086227274069852594603141559075397150135626291424156267220492898013632723965817970187502608230859456973294293571046803573477399537629841241221655023366506102706301304270327491693738492361145564276499217503964667508962662681646420562181450890853039585836841265145174974558609650283896832104045398542294227726046471806807968773985795562438184670400244595284424046288951658120116893345862491961304432708641550882260434401178781463140122738496504898887125764124872643302382879194246988229078234814822986518412779738828913144733154619342160179095645274429733217955407087847708736789428938780728849237905080546966351975094235188420720417584873095001053348943433557416641936322380106850357447674738380759121611866894963430165243583765887675293835039538571318342400075550259884881442599771094606390034948474055182359435740047984412475119612140767400508839248300070983858989232285272361978608007785805189438273546062288937801784913315575480845406121512972237276496037455212560913599795030053467332354319561350942615025619618289389477928315084256976958376883161233566649578706376196615892811614382355421561683883442790352170768755456850516375896810985678980222885476204121394023289366283266759085979360849547737724816425349238924595288457897054003055212767789696198852757984533304546854383439284962012579582754426896124645232917620831380766852477920645881582228288777486593742113471419529834681381856565989674877910583748260500505727500341235982761639614252627323957277852936094215425839038116673595208037065887149215107328194082902483295279571615832107445775765088133541509561772636882287274216547420973849415993449646845136427322226206243174600045981849853787096778682373163721231080067279555162729635205018791045541746040933896669645604772993095707285984145759505477677216521290594494174733844995470544972915426153539567677038862715734378963868085451052744729097837111295611930295925940133193973907548302813823694835356843556602485319224748649667346572059117916223365278937682274621508060432542813360160800663624850826118090767988684014066636426595184746823765123951661202328968959766925198076091900523523617350128007357738313833964097384131645661650775637496873489328188732900250128632322497416748170878533420834328052286504575515177672765530620731688238164186004831611991042714885732103499100608992930342745495232163939250045711447670277251860610014073563502472827497047650322446713056088931879285171904751835776538297552803285883275529468263739063514449851912356351811403008566703808876417498488671416645998350848842539346565088679746052251297132238556501261985122061191530868634743673875774342953211308745512445499435115283486193453231082545618625637068807951349305448487348128571073066277378148479775543133350030021151037070939943360351239275933936578596130796301026779083402671673444665560868488699831366334283066602815729787597286972055612912713788538678871990206391907058761775277246337210902866269024769978853819209204245276478967166639415852935492205782983728350149097389631803969288111056746264399812524089162763625394369911493921939066155442899086367953956470952529443528912090927334204464636287072450216653872373171346134783539568375926485083969259523669376742129954762935073351250600738929186340190764088493400723051418541698763780180795012457644500359156044544694420198183878975013745283803027281725555279042608738879130947234300169762765107406758477055783075608283843239191874840798129041509193750601245805431763519437044020004217581497317507091193511988794190867620470420753467820739122335812428442398633117795874071096881335776241488662377100583646854869796213803764777707217460960023027222164816724147207149390357038308331617987173221606416494471466499586020036247413205186943273390884105271469019379966625546349574857723071295353128747366318571569884241122600124036313281252752269007403332934751586990702083115342198715789503555940924301182145431156922195220721952437435019549610749556380666758193944062879781903329852560381977231078355389764613817658001038697478980544421280809252342136114675744365365062112666655011289117497837562884755235622240521995496682068352204273910639654379387717066809028211950995923899262180331093986227250310547119980517832348905758169594920576109198585672952127229463591466031566926686395690616062412898152171233211527481195335548005137550712713851392274347624210766450452597784184697055582439054824726082437683806318137833602672049108768043308763434444616715755733299545892799065961683028359070564920385535358173285781228491443682421749666528654815453147162443631284209451796796314729257596094052974529056971709048628483822769728880303417499257756976975647704912754040561824506372360489447601883294364239570744638754223865966944016352271891934751123783692833449172455633318118359002044736158535306778195110142947816637164071676778299454187809814866722281913332504497434073039028804154697155585388293838686853166479024571599813182391994717306538467127581913268585577646194508353848624511400408622320488066438056095553473960865754999089942122158179177843631610075834090999597844935768103617295761880484189603036878337901453358609459666938083689716242575164894471931115937663156942018593454369093069880338431975864362684269089234140735036055130289955527963828633809179593949610706219233836110621427271440622477216969942543856962155761723842693494507015447831458972041169160764749996567657630775889347367154399572817159405665173608026543029241218665574081093109147510857172699372823491806419474401084579096658008136768981333977554840833597118070163045580998170329058401790096431143889679820827415508937009009070063882282910167807351978944833978996378547598864636176621252901848101902108142659210962656910510770506362824404363758161978770561398891229075953626244523314257102216943689025694344700426302132973484841885805185656650216107356707151700117512289810155094246591068877352990687376463179497509384834074934748462057178699097821070440634185972395249607761855516706116373878549055715065355132269442426528044614576354219934356439582432851129728342093213358329961333517546047569892974988861628540260252359973940462809585500297048926433196169189961263901545912979519421201544465512563440691043030207836107185268870894762864926053059050798722112111027819754904506082578369110402569491216819286498129711306228636535398731980826462046140938470814478985309998293700622374411847056711051467902544833912315387904299902953735760864633035440421715347736555127363695486246868718744580602042430337467582930776598947749057667093892638647997839602122471591655857847545740161722906570168935289443896801128494589184506409555841116364823417641593339731228836170370919860000096350620181024584536854134176645222125294670770305287490196212340531815084173032048307859045882823507426105905569604929778335272587808999999751467217083607137896871410060015949998724511766143535869140392619863547288881401172195080753243515153467756776187022609331884454197285316663181367858635610893347831259065334147594004663916583230383740036391762925951804837206902514452156382861019433697097439446513058949773999585872896011260249356930595263765915122088083885905616315656321754664957920828186608395528407765061083824564301321116561582934947391754392928757441126452197896218572119044984311721516450762938969854689833335804245058347537467570983558805525965560314042743861457149205232172530799657431508695490333087910638677638524866617843581998281292411311155180508361052481554587055894477533275121447832744222301623486573438068742574820569313874624589004111861859128650641518900264645923657989232168542982377341016408462251380567169697322390915027737793300301870136456667417346570856550778775892421744134442982150381424439101258926229072087087102278678273739343056101461210841493962879346927249409122883518355478327717674517813823626105884906987337038300224053681928992741965957306188917128825131887798511607533071922663685520347873994560447100730832883653315796963980692822286233727243698977650892656275936015068143640924535678422507014160863402523520407987109171393972580331309783998082603681890815885111501967300022316430786268082921282884161646770437798523383768850214427439517295020886556167789965150643122730067516994254731023206846218002120226778873084341027207151676314045501822615195065150395660818773677413397533571782957771610373592952303598937008581504608420309640757435180081696553925286175568558513501607846859982703177140520876300420856653070337076669065041794883121569771549177988474297709631860454260068647621190489661256186346771787433679577553170726885342916576693414621012459650991056226980159155602452907195608384668592483210495390984297975098720284017138006094938670205770356911274405654937144739134532519375295994758383518696327824449022088352728690516797657070195669318203885996983691929488446085943869471301706886713031544333785758540877855021734883266204602448384957637267964922729535633860081049406278084506347794182023790634422912182702589485539883574459181225709153103506025710458051098453087475001460777310283386717010062849706156153693000355838480299538024653706341305099121895915794859864808668751806538791656716621558713477152473978831987343227013734729635487503027092465474176121055112479130119429175489046680392727084211562790793512236586049528113499969035390456329494766260293517185680270220730421759669512798752373861043916260257414989618010595434014445880040540714608550716148779759618883102367592292580549141124488765323691852374109722431750527223920064193124962921637439739181127010313195727870227924695376697742949777204667815792819627846738146621205314104848658322669613087592310311898007416742913723577248214122155347313611674736028460464753751229335267085897452518546888344984927268005007482067495444684351250667506965189755907674585224760876588959793173414251120007601581081280275513320898147541886148514482895103877138542963447441591919058258902784284929054621283211551617851059544328420176425461072835371564556033008165869611345974588010949559653336176026020029470085494686784814048492852858056536029107689126364014194851354539198444579909449672974494010939061785956712213427179549145467977454218953089377421445040866399991339694086515379036417235562307682990158797729539670715621398017663738743302868872236533022987909250338055737070126021317413302813382161043657428218805275198676622223521904682724657821475271801581607355593933434918601731745794924512730037030288399236790601662307265120599204786621216957657611094707094096535801229851001923425178693393902825863228338780295255823846662052155186971127358961714600659581624639296661896310084780330202228993161376261809409934397459561701854712365320931746791627959325506520176155385737730270923999876026274677263454915786821437700107460751336584041612256334985899286615282045567919740032146586877343441505678107539402974019971647294420725388360185567541686687642223188642787776398440518367778548147613933995871035890654514934586519461471127545712929982971675887261181178435381880863258267775153520693792024383697944602444807389959423605274501495663328148912799358123584144721073496181100000093804464909152202187147084794810694880358831142875043865196915520912907897182615351593959975907419394479787137010471076591270887373882303929156009422257227846218304847540373556704511892318061464196737440619156839686450197371970369668706786049540743049568521317765721509682761511770286701475976136532017812473761658302156065636079133393112962323452467784044142153189739802904349266578019780113197466455490150065069792941830076434708879685008103475508086088476142144678036756826899461991119220049131387159070066810095043396166229809457492908255333698363002424737564614361192869812037106558225631899922969137578220313012175247532909926054243840258220774987043707819435886538170398284009596056330047556478923347850948940676392457997721363263338686749820744719088166843119020537778664840091589477172277804781609668071951571099227652425286629511051738770270365107204549225987728023541741617875222719770735138471745739342319061926100748058660139980592310304157457317829355593437107558518384361205812134468011064036976181045839981433513218637276963175088421438388346181953824152259597792617236151524106083538767687813513845745771079298791213461318664688531894788449081801725764567322947328554636785049674032254075591018971500591508668575006461682295842503140387231082157310106520499400414288617932363834897556672529715686141453892675042189102074583475935509894242996536036143191906769180060383500446922473430021611806467978695592278119322113201811962351630065130010312250086907457108068007820460104580180246471074472593259598340818240902265712246299827000494089714709017411383021497917064445757386737284082811447457972123447343151819075269578358774319290765343057450710574537559196778308515494068613999026417222582357369353584092713683892760245976691493476374723787734918697396305085466371187769362066910986645199395942991920811432627652041525649802951427245749404467842261530961970719738927822533983462173634515476711722709099605467874336963614983858272399389390363090752784068594585631210169664100449440819790890576420929823751295802867505607300488473258570290060466061580447716640723080273808106570284007807793995921590046277959311363602188471683225740444149974360016421378078884020752450521787496425074010379886943518118553293093806708969089605508613920007075247568710813043821863299433568093647322365554199474772213168173065153731744037473679082387940903399020770217077962200357149876356622465821486563413031921816452933825335259529096763496039127391172997683423343441946857736047158650904626686460001092405686293822729821305904803930284234034873310507862532578281676731137837803171104342628373699123256981643144542192707306056263266144298852974914481665888238879752424133780640513003281199057459943690763174553034676982326386635388448605369061968407530210202275792663275969630012205680120782222296611609986653271446862105749835726237272902263402282522453892311590223637249232959091510116598580539044497740592819922616272808421550120196316473226734007951278843967961458135036028561562142042729929627938202003490478076978018248261941972488692988310467393867454230423389382529292730901487517983410896115841385101176911836719734987772323779692821459043707402427094174211474007832853865147764175752613169581280301755283105026146052944039238168616864046351470691289872425778102270263940984171404066588926814706510048486107923739153978758112779099682665254098304557598616196262708885591356180675353722364230540632922325432118966530291483267114939926459777695983667973913727793430795697715147103079686910179441973737206890827703772067607517845145385506068254670388474304534601551927605782328367298125312409141471978707514642071357084043671537193913279350105303434739573383504024468672167968753761545788343391347774810271972328107885640560286978294737947117288572821539311426349499983934634698621125139549715980486143071794036045892333697598671094657615063599362197300058811569652226510070748569616855073489951059236181769309267167642461627033532912075778815438480897211286139216724000461847778290318983091894558826392349168776358220140225773058298408496555998862679687353929468736955908039949544694867787494082775041910358972367896748775684334456467519768198790101823422924009187579784593589267387116014707234784600660030636397860952558805711034250878933578400214316392477009049860267665946874441069284928833470201862722152961751704149500815799613386498767758905962331000844350170472590406163176366511070595133059150557786789873610816195751884154295249715047354492443137643441845046893442920268924488302627418944702143359108781634860251696308823384032778673408353022003666677488013913787201573253474355547207482679522879346155320906883343706798196870885317721401027739410950248719802704698691625412678375069289092235659338300985126720800014203319300617353501947902205475213636044259913726634672341456630849817364593004632164266450143844304377523580470522857711118815007872749754375421893874292618418086129063644808407815181247458130303930508969405267557674760633124017577870237447546847491731631552069073797655061000774327873915435259366022382048950643855704828686440963802636263460923387270854778300175787386376740083048979019592075814818991371776514501243703307758953062663061610614460551333490739883242528886066225754566886864375936869962678862164999220856502109885428337532393619804569649459426167632288017408699165994344666291552851776259176877100590258669241554565416583140996232296689973338703409117511917971377953408351625871449997445058392932685686343526006140499285067338816056244110439662136913447192866006624658912172640580741592140355119854572710133652134603903985345263707187048855373779981609539418355785777647916680557507310985861074216002363781952714621461554096639957590028218704221395323808721537098588387325299033018378358461970670855078173469916077950694614978228165848545298676218932213489883906597312779048956896284573729885911810850757378757427785057506988354211679727402258748139337941984574667313531817859666675359372447612267575516015328617889213350858726732510803047856025455724137206666480479953189424976631925137707138178628265275833987929613237900965919186529645832756630114550313814469790085097854278115565103150650508884542246340892250433160033441791777590957858675481831348304533722754496821461920761522128242855623743342327373625924679644711638919292684469510497410352296105926202554902741001967645136141354538381747493242854199280065592005335099817910589255040130177499408206696145088956512914220947637695873909149236304534888112304275004796146552961798728159619009936560032556695118698114717568901842614031037684063823293533957267911860643366604621909433362200134045671371567122653751958702246003865925334093579185220631986053391921464899238352986500776837329379586808018686288275454941356330859540722270716412999560500864542946466309812190423514679729834220429818948477847982481962650022321044905360472131331477905264411935032304336424802093269248692883622304348468824110742405923086191311012597994426896360290059582087638323900883255408166335094057664760710522974661848734778064945534035678912332646450516273334838939581191231054303630341394417911270177812981936702292019806738007205938368966192870868140759387647670988971312162846286520374420843962235014597460426371887382708483674043022761202655353855392409716059071264384516019114829653354488356696714465077824502286159248605154289407537073368896967107994350603034949216410447423473685983016136423071754967760768859200244647451040746333052973264060141116548511201011838647138002288623742558314506915439653810726738775203146182443462505887757111258292532665227643958288514901794302527219567508179242570559349190659322235224924553976528921927500045299993568170685248960438722244032688019976526424626478711094316868987337162354359173428071349450366592619393537138670652212359913867567565726704412786448646878666183426395286385488062442220448126471840361459788639361846647284583202086695100769020574966278055682209985087495061589997472799394375059062414688064705614184673990604388495616658726386785050254254516726689399148057929661067389455658307434791532190559058065962395739706568875756396670244952904174785135147013608625952148392297485824515758636062648674208341691087390357937062959527024467028270362132150355309569033802612962782519188036203819482933980352541799380439139567090550313384657261509011020896985025234453077030451448178151487489603165632857317356209996207404218255234743810412974051846302840812700837019927013840368510848547159387952773675363123764504871276588276394081173744486425542527126726401628600980754011643862323360423321915738503075107971559489878086915301192253903970090937143439278956585262380624325698041368313513226143771860540428746852823960826931400796332750140780261675095018910490632632925236455704184554224009430085699110358969433005499176994954001490558328144050519590856693983661534957467637409753255262248734019587515317535859752226622958583449767183285865343591331936448984670226099137346183997495205132802933349709895134884477382032889680352293719503395546137261642474206904805759603820537956834567918349772114621216167476484153625186049418943160378214517052216101578788854429912704800576405741806592230661230809293113270671604429161026106061645401096690205313911340655416560631591619950675772444444679686045008393884942892572563329907916174367256537221174132311520796062675061627511302707381895748166466978975151630552075619486343090099062507991673454439097606859454455599162806457617151560784024014407411267950139496066734854646356717450258871289096913303645014065289370732987315198499793333308826535503244893142972714033015276992893095635416084306906263958507144065287667818223010993757380998572444443892096519888171008226223722058444027027207961466957463212906658591501356446233839995578486939793192141166798128890075270621834411276845533439674888538919532742520210306332680991704847277989280470333011828708697515823620386516616073950451372276875568974379193992848496800933051425412961713525396676779361588075033513958069374641043265464506657553492653071744242152487590469342802442257345551511862801344159283340444779468642446008121335628306552824775922545434461704915480193586553019875395584759768817443482679864538756181291413330213376188219427592035890538545314004079570275935169446852499733372239577728332624911661062633600088864784681557387464165224144121389904422318678827242951854763677961343522587911345671233311784328450225402368431725261815245780420411060748579136447778292595435010676660142571303661929558314435940759259643195462952618497558408595231075799758862424977599818575664850682404988739322005434038570888336629010805941956903236262365844107212956665744995748450338744319061723804637354919467013370589161482960574105295825685200196903168045921719940838312729896127964473490555411622291543087621387953822085118015735388303426160825565919276624026967599104485228668343685219630899460315302767018564697753665999594600861725579215317817626032395840269438780468157823948746107634755358228249352397428125395268420329582631122129565378375115592837028802165534466312857269005183186945992655035836550978573244841379960941047437412970920343587035007708430429453533771785097428923048773713485161752414376237201106379029366524556584475330847225213626653680435311482585919119376667599546184289866294220488764356796654414121969425892110812703380184041631545459818769706758020114973643510637818992649679714803303499343269046701677758558696927354111778516216985826877268753891176501424277106400551797027023426204335671095792530950608869766019433012217184506760676232688634026341201223399658531421127283040024530318442450725333216936750210950991729668589847161103574585992034715034322277579099923784513699014945587859077907989577468480522077438768459759349461227088405081028551466379245895491649821726226231266785748016361312907933503642440622106824963689095149786765936008129489899007900261741885721845051267042932749147776885699472585197230211209108757127199940735599739950813662007079370555004292970531347059884637516321355298559954722149542694064724727557986279237788239174321762743511206336992468555249527456555438795721008451867451227873550883889529707052516910288973537557162763744446270873135758901872061826679147817292750960257027087119261394804845762774667131374115345295251280140466810018872179741754303704027272367255678205104429244639681394673550093086369714271491141792729473423547153665928747020501798716296370131249532304188992255257922330339458282227600198987988651812285216138312156043030607974397444237716610930917831601578255815326296223013800646483122273457435006080779662842573060166921908892329758809740240897072597554017136520009574797457956121071509521587308468967190602072034025982222040723529952790149632377357280349810900896476174237777898408725425229127589513324224050427988192174137897442070569105478974113096628172350399142112652495118227411206907453595896419271880400758615930273904976955166656271537197725139732027686446139501881158603199691436931073034038969915926058694751641991708605390091950721832001873616187699912436907607798258209706584279540422260576570723248024664708188908886303326650630362072134943209416613663095531697305313819739356765215710093406650919109560623526993806491921811993150060944350316843390549469612183572295201640654815522589714740024330830001880643218261110706016608249600339470667980487047010219126666511745288825590041986042502254532951024479406589260931069123222159116816324632557218130327521631285931169775983010018567715286508464317096938201353686299349814007615809434164528840334401159543976575320507654610416201821531972450312610492475333893438882419341334227291367764687250535970100839532936231370413902431208904758597180607012076661004019081305684249676995383811768298083534927935997329165375859918857265340825370881056642056031972190044020922615287767226070762931250075945760573430468205818160924894097133913141665834001393588710478562827930679953483097705297126435802335402988940389317055690257139724989401857417282113859866408917566105302615899418688073842969717948889372270485934637174962192116131604591682609945195025584853145707088462975476183744706127925421428646117295833187607268132502796653763504357907812489163869175547817083827954731990421540290172682486935580187982462267385562056100101090393581364433455041551596827022553511904495374345300033711164568145334479109919502986170344204470238942350941877102880207974388067104517487603727673197880133323969489727857813623726156076805409454314671622834735626800278917041125266987586639277362530804504931555072473399957474874754597303179264488470870762674226106232495625890400122078892128838911935180050631610800214236984331348100016650126648072481190648537865610365831012270637189946399032997761609329044502679195623863950542084713403498954297953901396610612636850334263052084768249372797029542510951871577159949058528041056077020393034293297833666862155036511317728111903068956459884103542039793035701719615645909105845415090549980410106403927539672173368831874480662213432685848421846175812287169847453150851518726637579036813870650906751413271054146228077948985164528383687886562935586223492881287708483346321009608809351772797251506787468681421118838020099185570891386857659146119479264450352020899020789786430232618034233093055177376997842605329552931986446709864616070494165444981058342936651643882878943756618392985097243218745902295685280465334093480256576683327438593611351436013162516314687426463000732989437439959652933547876039879327268408081209824896849959991694221013377913524875607509761493654920008213751541784758834381922290650237398466397750724905443790383826717098501492340122908378799178244543645731506954152550544585253542827494054624046237203928538497042853686264776817004676499527372440951385227074295905189761640740155560788130156853276927313691501400678179410558216903118521470462808778853218644020735383179753823147762250038696293994308322982752622606305002942942337454766360411608858421561630728488386363383826818274920254912959904147292350454633883460823199170298517479692026206468677347175417368177969888262811435498279595224980393569959770885006648267109315546744394564750021530241485260791572938503101055282977189630391697601398845140118231516472698961862868793645824098018405378536694898692495941021853260423303153718072131585471859533022094762799127941183288138274172200196368044231321058933716177143858796700375645136042520684828474137702375949023232242185737826791447252961657217559001483952647158831824320798271715609528553110902895683865474171954039973526714963880514300186303073415788494777316837301801990448296650261656088804278643946247766614642999574652603897162759496482793621820171943077463293699070719252668063276777394291814555790451881576392578979369409063553788141427258791565469742599003996502172276919218465444233307657571762670023568747408407206235803942580681150869331192980230762309814473824552910783866749076075212058295716480175509013589359923876599565397277876886478759020904054619767223188830630555535429733872800573164162538430263708193164030174743245564271652045990818478284672847616971611145417347779659265823404469873793652756373646237891998447317307292643717867325551990183691833674686982743862568128467134919847308670176625857637670348765473244391287766527057537598238252292734520672726519223153771178989193938669124854387248805709841106705630879152230963029087858143710711723870298554643577466779000142349525894747541513992520596412300489414093477828305686033462767379172983488728719739286444386274171272195467329960205345596466481706418251407405589430149713967837714169299229352403686380890250510821041619484313301329491178747091730311333045535955548954558690284338177218847545997012488975157740279122525147096224185840880713001931342676998914204159154504029012863042544460115169296659527785483187857229162373251557111791539601854815850066096377274328439275940254547886177199120670903128742761261551343313684171512138716757252290176458155849539502847708164872121803615493161836491921642979445192955481492659079184975237907491267082320237790822254818428139666281371348816409810714240259036448755296191980176650652247084066346214539519349842028065489822727879808635816011960995199760950220054979987284678553198027014101813589125238873324673612097997383463764621782599468009352669950892177770366150597725324357398584216691797919489610967483059202926029462413806222289751564853560086125671122231546308124264241605853394943535863459333122784688192242156127495386510589989085188413302111191882347249936511063795873439758345234235408505999145411700706830942460766312575996293023208055220212188002889254914942793849057362553836632245317480486845200590429465759073492296193588606466074099709158242552461693719667700211245299675060555905037563456970787433125886514781392435152142845966021424249583909137901153625313512481370362167977333070428643639329501764017504570832670592182392484633821509862564754159089748143017863351789817523881060197196028016673093076340434379859524000128962891864106555009357114735363264599286455104345858466393460712268496009859408133622175169885659417018421080575031243799525482001476246928912499526763587648492623331282356566648644113130201933617130580623621849829708597310021152961897148241404058677602659799678951760928374158847209400703613845370932158513947128595974951267786076531435867864264869970797069029636075415549328369265985643727372992859191458870544032983043552974272134743215545369435584826235254441386905475598272691780087658018136169081138388826229168780085927227950759917058403758441124364085129745273951557868403991908056650365487438684253776071193376633642926068544216002040879537177413277329454531091198030172249310275515089071885227845093117622855939078795995369721420199385598997224399294022771618553367618415445507648605487386116220719375246258348501167898979602670982646546599219270015442691213822987815195200963799895727064594068291399577404729061085709786315485010269306196751639435224819816062763931633956078421446035339279924474662660409383743070360427589315132575578145484688053911705062821030745517993919804272685330872897968802688324257621401679763318186078274673253610930233393518415286326906658730691173165907689993644466401529689710856475562971618408604701180861148705854305847279129748836522932247176764165441075868948862600006537013847596272107200399752175702216354131518835246853235209306902541180154270835150711529558584182628687663287679943007120157500384924258563379649737696474037445947906798574906328295423664849373693683661291845027656589577275783692293851583830111202897614139519767338538799123233604510269370770609100463164350490767118011930048151525356558331966029765210807379703464323325366440665881345966677343056383393554158790641343799611254046927665132042254084399406203837386856831811047428347112919025537659934036101723553040652177473246241993384330530233025731489405417638903241748932901187176585886191751091825870005186140527445021098854143116070070300320479954323222179520552219910223850411292667563116622032895327769318919924235164787642686000672446808269489563953014866714828649435875059078551819920393030447330939142045359166049530095403073485780304488711246784863248002737573324726029595406406774258077708743489956644522447715576369088545671386379297070436015635197964025516576769076392041120855137551434254488790667623212646688716056778359918862201006438204757632335164062504871925761516575091148602879197395603216124145042804765865640313308722264963833287121450009384920216441867714642124908491204279192435624195877985758428911982577885625835623427030792802982998701527942219539002406489148346379335013153290334664507481891278768391356095686807878939753633158556367731430429460176371960354628945436106279872948070175353926774509985994742747753528131644303138463813899980415473394005711316941101669081518219035010194156389878468218601122671632468227327183909244749531641125646068687968220999521500984001377729250432188895045858725639610616353572629747751094896420813836030092081431760291965567601283172454814182641397440310320097976970349827041319531268854607030705100283059411448570429380361309190184950255294061028581196030261432026001785789674323097677234611936717272931354035236828328369965112346360880417410805438735237693093046562823454022830180819374429767461763405499701284159061551335538773844496561990784523557088073890122647182568950731430266643469629007320612128605922941783442951913868145086173649059400944412687638277577902556023525481396252638290763201757863669434800663894922785308897056616400504423588658725082917144065655023403678082373271802591804550721876397810581714471866270555845484592922828681453294932173072858129355578542650478046040251895744046042603848686685237605929283659541746424474013238470554492248776973570231753848441771605826091978863075056860488932766283346968606073701397559918589324798664804751022335152881635009552182581779635373708663481093052940439505856857992335018285713800899455229307599499447662399858096871241782005485305061603350763280997061346143698598363980276748993672389930896291934130115530385162850463069826600671375414376273117668212218658986647778077709114039219464289449547981356536391757001199316791547827624166032039818800378777570075075118198016799460651252540216582221261772918832295556366000801061726974983737969780324129332328115973427424914158409730040840094928464927351715097837334868472654549098754281299775647926328813431861675215031646626872601778845753389177172392616478345357854337905215300253388542873481507879869136052977607280888019020305446766917884713586193312251449628805501170358249593770682227242524049212348676562425052359299303196071270081902371947808004780331498422074996785281869687383082648101608187562714032131203171362547505803498484673948068368677869483934143507759053686103189408541941307480840079132725680528613898467993730956764632142761900953011172698542229735805158927543727624725254197061565215861580103166485960557703726189763861486071438706660151168549637068143790369032618207673879701835857386740568370635767690346698841821356297942648455288408929384676476151702851713852827797747452653424597449360878680579496999985678818974436046134318592697915763734987178614599577562776727816855784180581321347265833090607446128672969941727675243693601015077320210561705202609232540528976983694568939111405990974679489739355659033321890493911371944263783997203153697755972788672674566549998092275410951146771752718729390878274441712439810242930743936900831750120207529686375979510995187791233827670990960231523636206336971101692132713681097665052608210383816307885397849418831070454238067151214397199354533821531199700759361094223642166524433937075149100821740111646966698606504833936091795663178578409547980515110556124447663827263002125614402686566292824882180760395405153805460361262137097089854535935704055839747213999582896604656439681434216847132729227909370178454508155955831914935320406233585257716096101127087495431904556099607398196903421442334380337181217669024330936207530983596186186368421473778209051370474548532166540575747988922670526059524219349292790730276367386237289731674952313123389670792497719794506095670336885269279837648315684984286009051057533323317586017165514659679228947149149636962063159774927110939713253647877644561933244475022283822254563602092137051185473592179372950539107166970831794852383719112590064661145919827873032491521460097778439127945036229092281411391045836718568427483816751091353039629678427257045307883601197602420218712309061738071035108502185188732642271455701457850928540751288406356675536460671604403532791494279464896146734832391478643166324808260650680760652196430225607447666763740871940975137928256373570213660102161072043370805177908144701611399340523669843016999660075644546327188983142580337568226836746207717031774032498847485589485880650609745064149722123747165430980455951802274054327677659502341335393773084585067766521680733692262763425843973374978288085931674564195884111528795456195190112810139497705741546257039647909995459307419617918221156936974725281196183582344525133139547305132656478039490973676516379053439178888059516804747998277680502414053468398367037403410580622092213052785829024698300232345078118078103062447497601678477290681941248648702855785345873709445652146057349176841533745268485582175338578975133391935670655499463951654934764869558612603672600928529088306868006951835954089667550652702314261597552912176320435913366443285131476233424003532300135193926233237893438057036983725118579469107634663490698449666458696418788291967872493767597369158820186834304521206699064590736505027531099877091736252911112864962214901944592054365206327249598689354935712409220571464828804910744517818558581580079893977161473094350894767871834020969554358292505209518930006284188218708290417513325307984575021044049444187784714254747242826217850572556034516564815066619027019586922746545682299021104244019458183024990048148891583554492747407649935948364005463207143594770066168713695204770720052771055311606524540168777626854570372544060982308784897026666189680482584387298251589199651163758825305978721082035895104885783488134244122299022426388429598091063651543762563044805211444455398978007768025212963340958558365918028367351673671923476908680635284743411015132730522350069003449128034861104636545287905107108110086022137617228507129759374359223584124352197589630969176346608939859312831874544380805585338671581912515663140358834874904308974059149384461129484433959471038782383799977077736690774953194473206910265326711537648412191760830577286951245570450009582424977231967239040607472184321496400579742021871542501370769052388395572388977235342214728124683545737914526513691790656447856713141015077935558964713899724002683921858652321937344489954666440026662202825424070635196395132296912451048490278825456225613855059791296535606538451658326012242202486362820234348491809425880453204789000562538748037926219242234473947895600569198613221210630953774207504945444575299865064641764465844632377045001209176958675625085357120461530674443667865803902978452839692453303577205162195818969793991511431773626913400459928775890581327317762319869058150391236720250733881114637950377010735330285097749667545216808895448688260114309096475331671283557072232801449136086111320717057538139245846419138251561504844862858657657556305777636567437675624503649588356137330628589254295340953953338239265777543229674819008795004215010394395663590293937021992352064280497573617981896207939450806200801165811382337517615432349661806393847803806547158847580867663428752479968737770779662232462175357811996051338206823040270500726631902812439941064807418076345178728548781954239912817304045776612366433733892170751582880531163821189860180805222325285067897382956124029618720878614522145767719540150019687581052564592615474702341316624339946853889347597922376946263076650469593028161312541849937259769055289646044963949759588942280609181293406968492490655880451723292091480358777986615301909404046748591227285855764001906881435611053662453785108364412293878993158349985248095841531511604649982495070904002334993148132489114700407705033212404131286184066181461986563595248094227860168116984471419395448170217763682518107348408279250045124614187878520264533590750074834508502243979312613615258357129178648625090790054613148372600893924091180472969523209728702327113361584062555833367419342234816545534411577018920283303613094096234664540564330699055953442061727334096818677177279309415379818220423884014361079774906796259225562584136710534765613707872937511735413306851198192840910594010804123097650960816153201497885998884523671268061904794186659879663243779720080492128924979633444658521114184325566341476592316763775349064756366553869049314201159013627306938651564769755577119998443384291858911216719501417270991235254660969191732823136398421350048087640250127145807020117659514996340618187779040465035256518937900842727303662068854661298006599470118402714116847621647657095928385557188085957952030319735458519430159247529545477743948328914442233593722683063744512420093098833683228708940243417441347090448704596167008470828269248158268189325899032447601523411571007443388607628922771696465856337341831152662248072881172712490972268308998255288878259928201269468004721479520281405191021146164680052394764847839521102954584576505301018039396401036511844675942339238827631211630110773290985856224009165184165138153911414100097438172339726408781906337838819734606519903964203930909470283318882326317184572536481911489498786688975788809894717829344076691299905543821790824156605986389201431217852885519664326614825584912698947357664707604303837884900524244983191882310804202998271682460839665009890782177193848681766917509634443629912789285707076646862897286023878521808055621286097758566264464738151041922564096801084193239514638876490047739060462489036238072897985833884078724919861036211312975203906884789444913715834551243696961736432930276791940740440573559973417659049970587954192315908126206486254454890313259033085439799181265345603618250203442697890897610993568541196942961825532837466382603181523123161421172847045011656516643337715257529258363934777043798169037400807675034350945604960224394136656215275609901872047726630554779157523869081156439173664193512319548228118444042008571119035427448419872236416531108236942708393200297644042168795847337682184226287367577303610371595601602604555688688164346374038562661118091348353971472824490950411006786913905181644213923030953222560772151244859050318259917475568599461306945549421313346031925796804885045493074104172441542715919444276976768962923326334272021014937279465546130009743962317861089882606009318921352256058415048866465339114846045818661661691574515689135479235881570963295089198191105883859578023851831567594293865468332239676724592072623250068527266392798643035434868285668132408446634538060763253769868616817482571435212059400249745939066437461941628616023272988930473412023824565552795970224864996860989622661900136454444243083604422019698782179044528940692222273325856625999909121924855006146182357992836700773501750840004485927082260991067749851842730858271487273659202755401707984998548268077226414912888206887185005531799697879137138915325444906133131782487038399107180153073299428348954553240564629574054801459777276188446810012383013350856674244365558894633671348119372408945356901730593625441152013206104340788772881836756885525826264216261563244464018733232999565419001942196136366076117943004740578505914515963223734135772639913740944873085570759161243381532996488225741361367107192491875627234318490958310519769971387829617346421970843408055663066806767930289540071579398091815208145936012174234750516208301943129672984094528113062139285516715753972178258017481667058147882443878495894619092826453801613290597912437438446019535304528561520336307415081056434531383929335622809155464184263321635630666475658099828893280080481789056266896143582949767356743169205172171706845897338968004780331976665203320528461837942929909383111266354946139116287709943888891454663509073506246889869140483006926636447261073362489434742423560433053065809944170335688802097311984645200091877123161052592174213795406037243317857916450385767946253121872438214701886509077571425279820210230272159060120580098667356599175079723580299283885686970718974629354732465543751471587910727785810158730706936814872361797502875581422489726714928698949170214626319650666463980264055395812103745030634088266490032274615688626978433125539284260363010335778203046722804200549030628906923811684720318410532587703640509679944373168542435675140456464038237664978529604618759942342854108484299849669711442243679744596173333529782899137876267893573186445506109671394888125732604286829099299814466940324093207155308778714082862217208958282973538060898002549418691305585583056692386337233661295769329962209800711342512255922593383026248802890382521172224329412808809514268206035598114756050252325014674458138711615234697824691436917875532711636927282356738404525900136555000824859639780524030988261625494181688373879129923035633470015206388757397167895968958928785800851775857947805855912049493463740816193157210985099236692879315611791743020785861160368068082219659300136688993212005266303042795186102970011580648170958502062926081483641579153340253462029322178538826581517478328716922932748278868120046111767304455570166484704388848534961476946272461734634255525827718787208794707331920708339943553609540382502796980707732532816663790549087952330093455146364924679492143060618374850822054296330046308649062510611729048456079107479175986727183342497862047668252834934632314773905184444655092792139348128526161859370351507745401580412247753372007909126786048737301106901437899210005998224781706614839809865219399937613517202464780674677557739071444205787984796114026387971603388233027531646081992864559864339263314822663996343051076437270631696136059704486387107609811845125658561215518934638014193550907765213316232943354546817986366067915103660221450921632627972830988478517441269909431814535815594368770171978702218614775024261817079145832858817936749812561189323903588467915390493576475938062124656088116397676775849807944688252619096114254351161112495050673461470366307117453849490741474726922815311672061985928992824351803116463377844547964412659251738312676184772592624026937884352363479958465651055177022978684126696506526722867756778595926677985519272069227522444362303708197504808924900630182984866828910203926516310204044383540503101316794846764705344444302340730157965083263946370509894794405648257931063665629261913770648279307402184100421395633846824444002589403602091672522314268546501824176783771254350272479591609743765148364884195592587122666955685759475058840227827961030313156237864955734429820643081227416342002637751517913338606371211637109057336191040197777338845715401589929493531530281675768894223662938789154902296036075162050655899375952444745205713438684620111570492325522428166114491706092760610723354416111867320991730851797066922333564388355606148665452339302674325572321494091904706093753756178666544011780104488991256760968387286041482773057347505853305159823232555413069664670255000998183873285282379788863055261553227021590918835690556389357943585492904786126332232632862262988822191264060906229454858867245925900314619769203455102928096932923010378689269538854802491548522867529625754317343369653383305055983192235743777601448523221453426912419792519431740949188914114162041550946659685052903987785482960220476384039089415932628394759054093968038190188259632087473767877524304865744985953195929596596379869364457549957449019527899485999347818614162874745454822307475771062454124359516263014681030794571724489528593247595884814373813539652952337318603611302019754218624308694263054861267203360748353302000360699374213486806881724840805692627094484830576610382165479784688332716430919732236712666238343402001247664980876336609310372531010139392608063588903250979133090823190087019836012038096796919312166503540342604156604160000767200420192709177824258152141306253633962430648483953534366074197538313341688282385101308218644110336771024784719121073501197918740329721060411549042363526375819851552072943190638334828880223219444195888916182169169986367079062598192826650088534581006113470265671097788979065700524047618044106030050514617584168873725869455815357422492884717797586706697267288321028616879091871628806181321777759523243817722178804868537784604411471068210055432234316051915960080867921679297645769425606045633924663250625641434580538378939170435757460838201479109032616891248170121855859733747384155365517004920067044579318241727168206845374843881076262669475064120069136577615007645177042458689870021140697308913414490638955746079327719825331767220243872216827098118840545736411557625130457161667301953147650189322939409662055458633926801262253107968862353620400841573726983639861700120873192601059857110776622192146841354004134490329856294263899384018100498024947063896985287118094957179883568384648520736231975737266624546389972312383866886110498070512387810027490592439850857942568840660720545097720302670829356103902509834221639895108365806618265018427996637370709753451971908964635209123277059759245664871814827607946936888228313104166338114682978838112405050928455118978366880503926068948390256106660153964586630445432806249135135402340649160765964599272688049351070293421579642274906479584425173067160965214921565998228243493334243819524792806335674611797324954164458086333951233905096178378113861066122461075894477218513796984719983096871069300355333630667646829305781986773172422209257838088664042763026561967464128314489221489642680577579203681188366363257927707696847504902571943948120762045922626333131600843189476491362450342935220985094159036367929917433179246298877034158869415596177575008424203811338456316008920304742317315811048563530947024665948566251306047992330983300664457555531211085991290291910783804680220553269997939704659344556229949829359048959310432728805182244620109717820714649172593762057332107022853530839718981934212404663787422613209955014385312193436829014092486933802240290526868505935794293161911267931447169603141429862041980289831576032930707700305270129942445871041421711822562004467070299283527291296599341645864618270039425908487253288265641993351935070296576886651707845709486900732690581136703246512315535152419082063425688034137473443456111948042444791286987495299606031057853596940472823659585730212084147862088845931776902528297108188675979936131255181479411365361940707272283648539293748310140900849908091255228605311492415612623962995423391514829673870338727750608297981129675024714974075256881670338026577069675597093009194191200246490056979503670594026296260720684180630668561940278551822139669855024946558580366466081297700437356716127709801565208845115182204177977318528984716259768130840567752221936431560606720616022197744260838890677304576695812647721084730733648753447470446375861223697711197360131319363747292610729230984614653510951691226387004391778542460779987411469951783356824461828331030256407803728357230409005921996359131767168417510397249547299461879196994759842679895804375944684295015076942423557571338063404481902348344506873590359544367308828763597665450638998217343352807242329662862525380104925659688908829766930356577880935062203900784810711237355529745681576968598654950977071179800552768204138599965850840203797763474719877068248941814064963790269071039902412385843430757437865204648026375992749522750408454430905071576347075833016080955748894940327230818758080677690252090029033814236798483580903792710999215470060357732672198862892449936520226064984992693962226331011212941866498948095796229671579466838367417793335665597048096928357127736126688783833851351221150595881324402631018083702255152623451774152649670043055229453988897508680113070597917661485807304654096098403386275096463543155301208708878825173355628069984693187215114752700265353657227288100872171600673958498688885851795172232554867500526665814821551173967158294869787445630292826012370805356415523186829929962736896343856537894037334862914631378528005075593195523941406329012540854985449120782124332100520649572093420491149089900212888949500356334800727624962836911609243415798231576310454070068172444390070656736962702749188556745285146829844234762140279618653248097263979171576197979395032418213056208907392980580437693652369043103254653379874331045354142440004883047786460677448694446748188195335092496900586808942296831250049052385218095074034707068111262917295319432215430683688188809080442351600035921770756896465906465636133267814482837905687061867564391058943823314527808180311786764026513865311002427419647283345235402140987187326442747811578184987934933293418679448778128894224540414135010305497435203805665664525775922866538680590285329465858102124079847869781576195362661229387354544432325604395737869824086381861873970869361573923629142956208574584413305806008681546608106969669821100529995767747805658887358647288273877109939011745838863354791596789991362026336985557124668648168561512254103665978487987346874128034893594981053899135483790014451042716583450932502905484195862044921356315184987150155969055664362438521626124755468900770231300767378538812138175980394501946266122099433626821556304783911218699685086517539241236244340313867146606084856665738557939345347216923059223617263689222392231369223776776908417344275385214550311912754056328058632847632539978068021612665362810041905254776889961021157023866686290119742499035412656835769763268286867795486065425889248522665994553820431639419421479465056649742171309644916958292033355865943889105817200949057301456511484456273457231909996483464423418133600242148755863805002785101702277487205126821735929315635999321877054429301505393441213551896103263141249524142157835345109837072162625279279486704975514827934545806133448464378187342116988778119924644610126882998420358734078776864716904494892041112808413591622093706326974284968077227525508581739142636556461397733559382090036508929333752509638395010655123099689936159703984740447724285940385398370119531568266471191680110731077184181044438596383730786126541055863850443351316981968862741446965963418286277746915864921937239498525942820125904775011254134420301992999358359372861811697147994838825980606774572755438527051765956865515244504379620600798212800293932316031831973948780255519609863280330756772017545202203430639373415866268589104319633309483143982758823859523136374842096223623673762830564617267702818340562777316665963437152627113139297660067545243015043394310807501722505840462196376312340088697403315144056106984893846042607791500878718973845092069714568116737349044249945990908524871480412770028496941847192062759537992900754009288142983456272173033633077703299798200045567452737769747392326208533769642198232371257117049973837560371709159717866436136364407565444626235704287184236164994480867322672480032634479798893885849190563792843464551064225768970428803411869626474838233972638657970464413175892366708550401557004095158948208649545197107324423902801891440296727261247283423103479081366759992723621608201010949786908637270692082514050690770167993995594155310125547122326841241070314484203503069423599295682747933293318071040449794491885835188239924640686687772536308779579266059896684970878029161221916856995954067423303998782384391401265529148336866429451236566711504186017140452477330400651359511847580706747127234262632223729092379675898649215678837188843996978262140680469124702910583535026935799266172398250322079705571583378962220056371538243213278241524653798323797177470119438709649694842392281622199414136975620736305362191930258755193001332691781779248524234104815215177105937937128024523222075430056491295382913969779406439510467509046010665250582481990663567068027603928731274644028223472339331005439720006450062022815445751213228083915740184713020088378452154016928159471037799266107044376546199876111339742870496600433363193253755283919960591411917360021700584273000530599973047542334679542551478019992693413535835136547879893600096678453081968064015707585011278727339599374240610034349000845985222437955978389765254088310683104061444595219616820205967715751659694975616720508887355828763936035680092914290107637762545635446890533186747464634585191724339673862539542481467528227830735400031170019299485156018880546583224164581603501438978448138878055524527986206704334867498429190698941038362765042448161518118307749448234235367407509277922370946234457992819568263574892405642691936270390500601136530395256630592880309171936926156477655580883032724712766526468053661721830670865496363594387149578440935578784908446196802343328502756769450597836209354210717188651629838418410497652335874060474056395025847100117182568235894984127226979615854479822303832183742528422436129940565074473163469247410664475796496499964763501130782907954687371881440497662651735735413148904049512441577932107560216475459264173182919508025087922121827988740369061578129716068407531098504320961479238153365902117043466289427071734798870231495295253822887050016071671821811746577752470721337764554558465496335060941937709671987517652601541940385844176526546836108517801747650020371542517390984209968085941446513095823236846591922722992934120633822850674035198377451656326904521812827664816223954584817337721021288643191258005696963560833918724186472357488015753102327104000095647828051429575032449749331912445874497236886295382301735980494421277599939759477456390330350829962703962256758153460547358133563346820957941922409077453489406057302912238918034684450070381394091122913534953588719468741183569030155977764448795840024680302687040039233204832480173180319127922130031250415668266966865828619167692757517196224704371878650189542051727148618340491699979543363872695530926484584048536163609508131213149184741071896077696695690179581635345488204682753493951749967556853675655730444705437734297016053769733235975429051183925906545661631311622557776499413786184991927299559627131970326084800676929838542206747038321758739854778506315507680230975435649123115123203617057929154510515678172638251522230056757440088108052748975645922688308569726794212732618277240647104346718782417854561468611918139735680837064919444097810010487278125582793588154462616340994999011689713087493437815978824975779181463417384643893963505987471765457006881676553333892215786925062374220473672365078976228436092392774719612511322412697370352140537671042253350942709194331251869910795482521350841918106287399312386629425014727059669006848949261212893859719965347441975653177616378649802008563746545544235305028672387726250012359134894277903764810967180601450894293253497319203621433873990471590055964184442605579072235437439653862106210767361347125824478394139863126051754459877287654198705815080940353164348116368041496849428274961124848914151710595313527401801744262584612985782287414636689654462485089644653924693020306208209200028975419330750079945129082898006807824954946631433201279509162750579440643929381676335131778650290357788737313260221287676721592555351972157797056066988520506232710952227850153506360051343951016387860045205365397976441995823688259899311111799893251929856353730389861013806773060778106869015863013153415763295363352691009075552542517687406237697082277281626925512520558859383830575190798102447647084764265459534173024874527115554784297703914909530535412532087689725486030474343321423471295424847982603417126074259977352273261380051996076327240523892601783755493022217622984603986086140331557258057115989098093092606116087195629513762175183740158278969598260815978544349170655142114828744729183307600916581845502955971360448413089303347701204537983823047322568834794639271224491080656134025918213218893845842691987426138382341553436201206185154970119762853148532042561871515774469669628550745014948120542924345444622224542046696692902123038322210902320787953751899638529480329247954439933714813434551686783312538934095202956409184384894459643166774580824131745442102222783858844832623469720281113012324771218425165251660407837672087213364990508392961239178885660162329581962011796624285938176436628702030898301514073115581214505173532229505882014655125309041034612841581602219389591343366804043858435723434315852874844001510974773895043621991341749503321132279638749597998519957763219575610528183851699351778288353205393105540944220420931183022541561132527501808509767513052751194410916366622889307368919055676523969516058342329578656604469949571252922772288324659108918219378114650428481930973280179948434828020566304472083273478408542459030370483926396156608831597139099871468758425137471732702832293367376649992623332345063343711939405051419471594498095451501267076805298565732871490391338877503094950041407942868414647729917726204215750216190446784840419145234089466371532166660353319636067209636450022150726657468004861274847967078995109737157625311780380498460471981648822276223414382852329453874360857671511658439723533366044197788346867871890672191007371057411610241236557997972392778562383541935900441217242022416985398256385688469785324738424382544347041928291425753242290014859894903238582018911083363227015239509495132122672108408877157769567400343191483153143136658949004748061414046392343104434469788240684775091735601125281714847275081330056350100862066772041756298928963124791820063167673106212855062468631550297181346021822337537174975296952495616617785234901896503080435103874472819605877985999712219016571560754733488254420401188937542887702867589688922735465365928215093452528835902845156465127902971864837592086605148630839159087882076098513973526423269505259960147794092982346867895327988390725637386638919190422257476446610903992771468521650894810488644680722418111662095054247615594865283755392904007513648938914260350586139593182928753878347526096575878757232068075442852097007907307920993169188834276314095236119592067395051139892525601159107162058396731577693306808662471426787945548463723019764342574406757249260591820299521865667954661559432504601201352914562061327020031852246154943750280125174064787487036808992627120293310742717511592682008865388750347228243042744783510287684122601598972806229353990848088065917764423619448027553900055831947375679417560091920886321800448433670472559016541917382461599611845565098108138543759374763754122885556140568065954212046153902386286323210369271410455311017625319207554628518816250461329209081992193887401646246225745216637900779433877334481191392931991662286128423889402511850459691618012265786370011273153661533368008413813788152302804075678938351195739233165307829925660492858828534571591249716288847682054191437949252031078272504351196148509346089971263296348428183583539163064970793546431868242334946615692196676108718611704662123533453395137318321028025995184567393046886508204414004430826683516770758041376521456984932290136410095591708520752127667607256235515017011676792405614978010503849823680529789899531569598359260447577191224295163118838833182264984938360466948988844574711859782200107824061000960936299979968841877848105137723049268052814255574028113834952724057765237516131346226015033086579640207719208147812726736382367210752250754244170274606658587925014992170753422139126936508120716157906862545780712789638184179513140165298500562611838163171383624046890530874786675220013315728338358442484276482070905377789166359592376271548718976013372078217269024974741975406200608177243188308320354733581194352650702338221249465582458828153784882994731037424691639890993512494426778092992261020934051713834917046502529834882585848076217308770162831749506517338073726070268218314206673722912147114863700968196030370193883584582955126879174361978226043021342636208298429462391092231312283955717011960198421342634134132714073477849007462091979383077284481043089211041708181358479466943739098953635107262538899669784708192549800997924364979572522649361012529943674007367149995069906724600617956117001932887521648055321875311606369520185152255291720057305526646142941447563677291166714486851041952243577998871561578495909930862224090611933762555971812003000657879152536234628856076243421320336458080950265340066723046094831901362904792985113470408067250508999593443378402372325966749047281332481792302439097028589395043543032280865361886952748793535399619714229773284599094737956127285121862714872958219648664693382489594901334300097891403618100484948136492451496748762312159296979025811884181263602851630182499347990660060107167908548176122283866522227620286322422031526597925415175473885581229112032636695683350752457782851437456566124889316948488896094448846668378156114845872029921407357393998010381372596158737261433802355505944981951756956412976374442608960703452085789931901368352547034213665774984691039759748925707089847365608233996761345473555065117326367647813657919374108548489138369896407812630361581238903767190108938891179176307895164937647852813286790401810303636689617672383267285977233034386997917856657062763039518325927168743535648658823573741974000623582906127026213818895843492455163586938235459718035435123801412207162905458805514948572869968926274797387263023831797334620408221109700817789532336919912686318908744734552091299533793231830733638691188591217952176923418111116450000284240057088234436405673815628181957949079667561699622013786991480012239207357568046953530268313876962650985376964928097140457384151842452680684629535997603855602840956369178435099559997010246915338974770632951670023397865485637692311461816915864854179016329316711357397175105284528410907993309386478584224771773623747632787402215170723957491646873699762035002285657114948679972868070360321438239062691307000384322706633712919078221948471412297031341858262895788469577375854933565455825945799310783612526535463971346719700919836799665014740689435212600632811032075477369028830178204427456613424045586896151957770359382477660433188610514691915993076810751073319840945902571614359625884772781133529153144536795354518819300623132535729505540257537132422898480474728496575761239950073889305418487199813125917802671248046583016346157915090764678918624017115674822674664431974574826528565116458230833360328820030776341028808381756289738872699655247186311248878328862287125950209302728730800787079352827819894763758145293860804199449005216307857382163566090463099114198341397247403085352854729091991775932179786690380092064828972164915443148317545469486214393219448204160444496940375856613502874365531305641967203194913972840462843470854833313568906320033135702504119062958396785911346426681742746180912411905948152040532410440609857765559125622279133464676667987859936490378018285559585204545929761541181456858370210603935820917331938963310380932019937261560454619876704566480344486035438899523602593312441981278394482496957142619591678359036911176135417378476959548728968363944646624538546717722071221402298725034669459928086261831189854769124167408869047295974310993712057323380795594810636505029281805425801126794430453037633678749661732567876862665291447636969710432139027945583032641440037031885607709766344645848538780606850039712093289795563255910724710684997378905826515911272089950182809937061457299991744078635293973184065969646951485788095243325172932689173253724053717979388439856625540897326175954404726954586625627026863969960863707608487194681678180546108863456260507679405746115741749312021332355848229817983776851714493452776500715445360701852974724204324545707962083152876878671922686012731877264132011823354654153707982681976871967258974611389982584628789047468164212595288363111286939098595793620590644082500079025871631312713114793043127916790397317436463085477066343913166327944403015011516825555360182189728079645511886011898818839432063530358070470591385316907327384989043428875264433918348352544481453574222821420403953724739662825201956907942161494974006318581665782209944522377659003553039911976971054237751854962910580888700338519713622225327410887874916134512420357451202544200669911157092324032861047841544039242014468579067218036238875330457849337927769106201028785186508786107942220127114972532536852658284924521773233682762943705657444597029106672935259265269378743391240318305066630837003848022835156422917051862853700983759967112132557601377634638454255854724555974692531816684591270004605024836293793340092131232846458886164948188674741848374540475834154422481197503990391917480810276296805713041325053105671536705924419296283850787390048081248562422266725817945750203149040637927370986158961488712395191600194414139092966247789956614444849316332196056241806507860665817103587339020166986449040835444339402047696477401598066345910454777735928883134567312749883324974264401874591916082454864655601088921815535943699485669074959983418327794302701093975902797542864602273922980471660884062927584506113278389712948308224134378507496704211615265493023293794861895170396211673485537743550568545795775915064250246894419766111558965028542708415627047590720323274254536851497902051447758625985048107101415022279855552533579571629446140430177496931617450758707824042042140768774721162070740992574574197506118629245097558889454990574026334886076456534756902064721447290672208873604835262280210815211908952276394527241538189745084225084077703090983068194400587123244043272169546262011867930301323103539759302069235771715316686661446687441216194975837631933058406106561634219308693504838871311375665050903553724234177851746709993606366163242904619673211259066087658603009134426380570087854786173421089509313541020994140466623751767447606864587377338890223351559953426018218338427819323693704252844269371539324621275191049263953252182605464928595524258536923542526641665408326753350687032260903294670699556198060327649199501858483204873767136517279187012554820484613604995166723041539094762123910641842524148862320921938812557461392741685859880413344491424205489237092596701590032366935795323160024078113309050038889611338651770210372795284066018539856725743591044291984186320497893409640186770690318195376968884261541227715252307875768628003981525364868900014661328335764840867892052168269014957380343214320518518762388652567571268024110521615352263652899035043790216534934421603462830833749909736612093290059732355222051670088339678306962700210524730833845761497240221077163006721530561785350981320195805497413355702535663682700522232357982076749191675300294790310490506618488574164570949975349812967165529445104499773465714016087801192759421729908967719119717111934946454533109866468594979438958299278076969323527025232333820340389634428904915291485707233687372680415865279303146939958300968325303059527413985348679661568646080732463747780525510882284768288817758555900002086306489015098378462483385590017316250523733758279142933542776007014166755119886043273085710265098230600006897775256366854351627756938040799130120091048795918205008191130439310873349988716567286180686921835056352605501087272303122923080990331566768583131123341387483995114192581845152901620078921848667377347037018333820739574628148982771409203013599359619960749660230820637961428963181897958819118686880593816772887067153992505532093899406161048741975405748853810897277909722237286000533804694600824005731539516163208318079449141509673921724230795911789474948477310061851299379047722557720543368014674419769950046767431851290795315546635887486143574746882500433036161570645563349787057109890912789316696598313851226953175200749153435740441690323988567672167684415354009785789473811575564926575359406630031679667437655064441747914340532873680187608315495563597632982628783287209260380436481180011013825543840869385738041308804882056731705227238130878569323947641567194352245408621525473999082221074162921235941284608883104307053676078396303027101346600130823150036221202499159008969092181222468919850732784251054269283789698037002802889759505253392650772716260452054920751618486742391363512601992458198367508363621171702639217555834494727378096686697678895445376512540204533502593978538483639185471317114182580963859745650963719169826625343294519117785651639344117615164193906451321372136417095156886372205213793443721705041174286502626416614600740862575935980576136554470099027248691583331412843648626628248621473927733490254306500178233345977342709511044612104575171130081119208207023665169120356477431118212955077558775905482055885335598591321637666518898171964260105522981887512960974492753989162961382505395068912397204396936948150578720864485448633704539757290133243832516871966922906867481883160557883320264747528386618467643201911566131681482636296639726954999555503702950628818012965519537362700916102758397626054838294767090094924737414921630461881194340486055110997616679104604619110379575673716543473126166212821636683831025368806876790472929624125687894588677911359658159728184274450309590590259391382509482046526306261286760829381607050385299426341535424700809215453821868869735431077371146946724354771205345803983338613619909438802386974438447922116012728773738156237443028112468735522301002560287292785657390618595172595696944027941268388421837840027951180197220647493275999963555385675789028859495477726498793730958746517550455037504664267570112875452085456130786643825980011799314338090364821269444896149947169727268095744805259713000106426539150895840974621469167976597164227008405233291527585148079627329486387813594627715888120459004178615723247843606592659287750732309274986213858031363588444368709693432336743648391564230017222834155984839162744566430460203808726742147136046953268819666281799134867104755450596361589138012707778618886523412543948406319975564814072394232234697715011371109017849383726809195566528658494595029300138026529820283582250649324574455672677923617739136676384161586797323322092759941599235410654839832942752453025210376068890810950850861122577463440486835147895410161996497320182059043934638641251525226538206613367361506590079147511949090143092610755102276014251444483074641289908230427024348802913061865206978792981643970900837148400278909778397818957606925865649323701439454516948100235602113833228592627353422716425950940155046441430691918978635818988634101537612159370310021023036256338339632185764486076713135070384312367304672582991506007453298223042824754292690606049428298834816945470789894613955203551179779864907938700766161529213125210512755938672607314109632861686211728831098967279279378060920095632782737524047782651606965012465625012151292858805672588014646740698210077681577550283314220666061077088890398256889385243094791677749342394614065567004871509871959745614755800434194946973246493831288421615212195151089576246731913594123973247947763854061754907436245783430262002056868530846137240607188719189424764180290318816003663651487990985550961183213869147025865033063749883135361973447237185153469836364768377651691211721243011951427167087938193382989202098347091668521534553154154487230913071873189558613994070576810358012354757882821408144497418090552789274710609499893069328266537616495883608304038869457018322450320709564470002451883892455614449877896981288054779789168513026048739384260542430235854174615399561711661241495116944118241895072323879709283388401212692275967419968513712656628067481022231535916014528067231801027600693338068505646562550608216784594553011867560127206243773658482516794473957863165806205527788562346523950120102427437719585350149854554302124530320698029884503823941478661983434084339883284833379294364460751386704979655582586672334931033297896909737225072768849050962980790703392403104473511479491121833448878135697480238327377578639575868619965173435536904773624247402810227357444307093515723237384511055567331112992106775841863642704629880946752605020053169876435581052834260841224418183836690311751674548823249859744286650690209921099824176128610298919122303637858099834289440813235147916824642003687615279656236096645899253452793517000957353840760625551453422604635282680467427117300013998764448268966436362291098813575063227925007603055120182313105161418356702188240069222022607823738810756790234073506695460942997473493347499805738574364438604144134736394444105401970472756401622795688068759653224712538274920725612447308290256243599964524235457828736553677400527649176355779778286147011563532895870720717599706598420237422306469789800467582608677805890028423150756502367674226078025747937736906895703974368617724152913419133573304249163690592665577674609349348961242522658705885308741025712652479909960067706283992550083473392914478559719609656287614189989224026273118109229780249100209346403963935359016939909059060983269084434564185264042124496166504025803569836812278890700109975886302624687294949289106150234680249995890752943392075990808009350753132276691612146887186652871310283834995316579359571082768680162588493025024397514458477921126006597895081534516684571101873899961808916599441819298172704328418916253595395705111198821270749395192405084627396522041786803526050595360502772606580025191122409995142283439444936373904875841447136026883438807634308039499125963742859323201078019454261127612631062211896735985782461492495426779609076280848671467541153722925272708919726501320360289757946476954552710533230858286577420305354796471405275137121196447568138247539804647726159110849427317728634895935178511435754115835210349761144731081198894298985223971687057867863648777400552178746219614286606778124322641504009004770094432414409105762829155059682783159382314360320763678007097027940430371394062191500057152983246612889962782416174670799438726524965311157928462827047856338382935323700129440580722000516524515468291466130345477791056210510886977826433535985485510409262162097979106626363361358632927911570394260709226012606313284663156259334503361578738867563695307047665065892071648720507331459953635223318753885274206549674238786935581065491766646488900939883558770411539041623894789713425443307542757583914222258897694020215037475885148730190453558642052041904718007284571933914476557360526937395551709022216528054069253091571829434445392718696518750200044828810223547810110268549430099604022455524672186702311939224408086554820035110581997387667678095958361856207926229614517362808379123498144484106020411118827800891194991961841000668373074688100994076858661280858911084063372954725435851446762738115754149609729796791941035117213472519466783451613509045223935284451348840402585064623445385328839050050091091899218599309661212049530915797088464522728058282924271281251890347219168346324228320531105475087624836682203682081139789131649092185763567132108545752627621225649929502233280889654743853402260679402737816379902035598115562854094450772353603222948428217056353887815029998575528138750098263287846078266347451698537027787716590460305522019312991241394938366786633620757821840626215380882985376743288830005374971498801199497757609391412021574147761196763158767344716863009857435116719045941442453881257965706196511405222159259828858305570278789738564352421957279101509648482282415813631925035843486254337891149001111415079917375840540661748018477677822319898541942460564068377849770001212100202267609840666032910497680998733497564763971692247615985987096704692903260865767295710704493247180648890599146512710716223048816792125173415740229909546326692626121797780728870505961720291586427306948285289690694382824687044103476195149339142312562417478887495133243556872391057959741634577930508237372553373316419826275159934128862170605467096132015645443860592009419090452858045025069650189950789996904549380997314769183477798552287882865059032479365909924101568106686925412619654198973159385021870014120970302056215205615407019205745077068118268377138360416005748825151894043591123552281373137389322469052450504970162943633766224620067876881670545755824170508168288493360383583029554434145809369954384182219586470260785955538093132650618741445514178562062372876164133110610096158309470289048171738864015710874602943866409704316364943531631488990090090578707939768772775517130310356325415022449800565317783157641444010657802464135213339051084469245914302566814909631094278663271730834377456183968114828725789726766376903945029227728945018363957441232104775368800993786540596605484669244032560656951944222826185388647985815038266783767165570077278977142407813536712798922930380677815110125173255665689081937632395791823401221648312367712960997176933885369640472055737970839337137471393599426030963634732597286762346784883542432626637850853496844207755710933321445739890638530611453722941819972970650400074764383708327321720323507772449757155462824654615755923522535286464250470629479209717652631812430236430585086921459373169298375837502219632246286434664653166294083560946473190257509761521656932687737121482014720485991770404551192766300086996260281252511869735130823602091019602712659816836314934621061896912387318125481694795599267174809860462256294217634231241147947017257376736574538158141666502418405547933825859964311774096189044208058997063581397897502184547601623941199054728094710030400881547427283810643745423315671798464296220583694492517642920388903863671749441265603687530900473184587845552914073590600335517831604270190455863035632749271346283814343356560810721398278610363717791446732765389936423862636744861318296602669411609182186851689555424270712630431672746475972364273395594577493904292271944763014688288666169784643089208856389345526515889274604828089322306490318181470317925787948453331998251287106397541634027025217036674724541560257186243061063925662511492240270886191801200938379018085374760795276057208195761759676078302164436363748049925555168118453740465148079678067392858484112403826103344020905619856767551837629369749500616487955581641222996693722382054191705785352859114399354288956920629431841645232573715106751891197262034831660449913000506386241490626039766601721993439313508424433456875081116517196037792630832430325412759369892839484098954362781944502669333512670484178830071407566833645695621608038556082738438947113821718531340813330960969053644439824491401908398601820667513140073432697265427558168615709511899481717169770617639034478452168175582281257956622656089976913334404722366360032863948210114196468472275744411534898578361112317979555927077217150708110197176782786891123645066594641835777494528165705347720916708975848633075643163881152627843218805471656220693457987190953529241805561045357300972721561515038190079354535817339026831986882647581383341889224343255021153320533180062454725506467793429256527618474691972185368803972091024411476999418395242813419861881663027419992399146283014323855598039841316040481133998997330380262922040618820061181031890451481057732363650753431424193639673332194827769200315373933064686923257706331393332062826575104268381044264076167950010057593086710199202617667656414067408209379254264074633095149164479660695519403980368242068777947239652427957960907874709150006464499959968936488600857500067621347667407984092447323406102739286140823757403670288791548188210093001630403039265779973541362251634542890562657423754582227003981500545294690347685283834210556696233485303154744718296228066880774755042968761309927237490780163897935291012339194506329949519444472336962158859646653958198355933061907753695381497819842743927152591445626585672560982394060073822803386952029963740852637263169887974416644340989213024010728571895121800851995862228805597080012293587818121929779092591866607041898160775147155875361726271447817180615797752591950575393194849815210436714886161163705106365156572583568735856560490902026197019648224713022804353078173806594801978074207849146307070069352044392401738506557570990444909269774070111856614765989521094068361082499877096282092792014338506856495802929221415388998515707379920762415260198573287673807638308454616097499305543168774196711848026905411873384436040367668325727211109582706545418974956935549129904125634439419425731527523745571326354257916907389699878658902038883784880062500908831869100240632017456626944143028182579675844344763601151314658090814151045601784761484758019724224775934986154045489983969960989037775181824754031321992580259077338212467806916357786226438609728734296605845501987385885292184420953677306769353840173353054189103532617376313127912242974530364686663387381146037860222668347972390027363453479883455608673716948482992371013289476353726084667871350079363282188787383524323529566648588665889978612412425100449575560764655666867485438927912746631370661841317640466581970823405052783900251166211463947787227722471009363387652247816923847066696995584389031312484559952461070848817684554564084382712577680938535534137342290561366088304109332941557482068496230580584253892927805599670919685200733093081676092672960744597468260108297229245522420021108355416770800773473223588729367061728555224863380134510276566860009649690932575690554015443309444261445024866169990382283797378210460989082559462902719686749716924571039506692808451260130262730271911687239439195979536613638259186253957969730461645081478679227356674687913013262415114076639553821333567342287083738782624955655400216320693234976531148421599016120418060375952717131183780759412459041516762360429706821544285264398737279108856772742767473347549642943866069434976082285083088122540504846776059301417911573288228474855374587279453396294084898630965586413194808419437013876315494679493724935922146850484187571579823936575625620719552947573651317878815432025312647286644577367586508062948604853963499551500621143745223734006080843701592087397029480770057616963141411742255467126881445772336277196587502176300434181052703938163443422922647896820599574438186719715851122766179394207048273798150819436040422968887612246185995407866243392252025065537664216100903768984902102340020942987605079686840657349888339519032836002739592347852328219249528440606557085440737470479626900336326971354392864685471315137248383952190056654009306783424650615167007765223621174843363514651089667430474998581496550005735597898576262989330042586891315540716221408945942590402092559127161583000939822849945872903736983341388509078608359214684903128540792284559095531935726769189506995984222856710100780889340565037043481729654134122289560679680433663615706943770916560941499810237894721248026689478804358985410456459414709257979997028056825539113234744351423984399849753281294455636715153674970077010171965890788984297645931911674446862858357655174365965153300899513868847443146078685089969389191145083036797688444337928306050038923224834844341631181446027438227539603558182184177213489714808382842901704389054818499805527750998170355010069657298667010567715003892606312110314742210475085417160020194485071024369762335297197978706673572159878519812276870262840536717206780628687675915392547116425583944263205932584912542585318022018174196283999651603333627223507227322920936047623367144053805822389685335261390136263766860859605988414337617341274427230147990774161045600265759810349053545191087447282502747475109268641375552110739208600648483521800867682652423455051140349722415188639992135239360226892176282350568896341984047644017076530593761840993786758713519761094063607995570878395157690522434444874206844234838656091170123818577852739309303671441513878363946646391916900286092792430537547486345187573697448282398983267391459318496109755460001225726583692466712473361014672681399493496256681354242460324195790559104495219956813314435462726314502918997814994730321476766265491796300847443502841913244693160162062365994810990577260118785031054620969751948206759189019933229860543632284524664474102375221346473863360243409958877659926931323383307804741868824322458184647777235017180381147233273823725715026634913759377939793076674741913520450530550129703257115040247939567530658392855085948240223799223302829103679182864718556708246298817849016747096395985129152016676728018008031673020765936895851655871058499302306264831725553637309919016809705787264808447900535576010888538187003458419747471528845364425503587217987518859281571179832504140273037174394181458707827639017424511691229288543747663908613420667368648114221081350399637471711900816981622388807043082622864494589285965450015468682957670525731992788619565489239753715909314421175276560954037355836565865196506564442280528863513101419227320291192458507367218042949236852451134162268178468626890139558650399893371606879005626362677774318260504509678223991402230040367280023967878989178738749145973117971680372323354266838574529910368730357417752122987612472930744693780293898230255623026531325668492875799624139016784210358030208458984412845427865765366562367262696302647119482883924032224285292377287332896208669704034895194726128659872580778106837867996612270312713844131273991529554511756514377878817453817779675300143263014753036047801965233609691671948155877571769499933422861412888081160831515392434279736889877176653215205412613400938928097762147231396838616271977035880765052228644064554065804885315937910171656383993083580837246330073322912482679965430134324631614393452550594715506861672132210594599372170141592225600470168441937679172359191279570445386539586720036616782400037446851955063745585761719013449244062428258550249541885099764911826650831731023559197687072829906303957618684336106272948327271096196271474708427158256091905674125120791440819875223818857896027173548268354529765524152417478395822371098569859448627247260325267127762884355675808905921555912483262109263213510125857034726796878020120050600987552806923787997305685185001683791456685886623481080614174240315408456163884734889703838573933788095664672586917928280414027896662360124472258514396659859308602465482471257958464499676397218600699269539219872381784266301302022228155603434693432866119094875398995742506164356146653400864871681904000592371289767292225926247768540539494962480927430173590184383020637511960425998113440569031322662598389623667175028132267743208249980026768342313789399704403715129270323680880858000965728974928177677230938203912742320922584876323736236136261817568900646570748460440674018907245818021397546994550126832056228303448614659496232888336019488109924157351041252301856371463055504991739509041531489096915306866472199555282298698060271264260503216036514560369969187790812009102273502310386626471697540305954350461821277882326729544002980575660697580800526867520058274622207138270411994246263518604808373062323295485656056655288494226349798309655661130093831604009681767156252713854233350566310363791643098242640112743440884121180303869899597961085504359375335758911773076305111366941200118193446862579449435768781211368834476291106511408814663788420698036256284118410370343868323062499634247116802392801489677031677605805848187183791045382794367145971029303257588889488271781030326246728054899104540622502552010637805279822514001381815173401166762059091990686873653547494761931631677683424720156566874071346193470169600355469207276471112033775442288433317527279791633487429063319454227677917858023209658809134560400259200660552606330334573386746918845500368938942254077755767930228423342387913176951891256169277098538003415981802769482534475944649516137308830444828913441739982425928830885441709210483947788698373345450351715635578255153425386368414094062295177901943250871320991204719362989696748240730843994701036953202419633794324886716398116199656015920035466452403055289754825444381583629506301408316607504916016583576382620346797367925540518788870945354040993407437296574881579589526834647030126543746258872530643352759504863045132099721862584800158536134845501485354613819022122304748446942511040733939085474245741080711439937410048711295615007790866927191979179388611471397064520058049079889939564079074040233675555857441116259380644098079423626143746149237754822281677763291671377094980322979209125633737215018106877586729121071789301037923051955198192066869256612185954211531931364769128801418870376191918013958152786937701124239958885376870102462253186684367323521783594691657659410889818705895841832013648147635147146149547264496031962771607885162741308408366420094084445292741162526999969318489855045053533204547114556550912480937448387434424486182607353761308404205484719493670754639419455241291761393733878151931362171535492902302386800401788917548033558335093390434580443653664818575065097506580877151173130162914924798345138952470565709296050791223261604980802572499707351496698565175275887726274939824662317507454579611483842006143836967633907301814557828110818257852795986021315213775646069058595001835827628433466388709053291148382115952313571235069859424072180647648099957910894644486570891150951941370209365225123908583914635861581643843794270610881547356427060680833106957326237767289861408588095456744747663897437814863342307968332702956006615214947088127209926709035121246366554822719047384180270503820394449752317879529092367972725750426470564879780260108290475579369780113948495834887992046454118878736954679868117947625796622951755200170222747950254969334557582985951417231670426319216366210965815033452072909993076280587753379679215921329139765144191424749339334421032096364694575897986358546629935180027245029614013348838238737640534497092065563578828172522494586247858343328467904419442236650643967430776986489638010405845193852490021641326413989779931774054496164268612219650187398720101519391894464754318282150806793458619026554927238191027160315911240143848307660156186652196197889967721229960235530094428352851786456089456135759472235819040129450133538957783605111544392964551581734447873217063890640627652518272666959444989640620857597828585786242415606369216616852758097879564353207333362554007605574436266518686016155554602698217393163491386322434823092076873202687548103890110530881792422674254516531588180408891273065330093811604216940358591109660965480585591559511044573818006521183974217539228855912127993602175379513109503360674724686040475296826093862854344974549233376929363860376286107197640274357217429055232006506891823749110017633162067839167583250422360668958944722929742992328283411102582919743846254930743977470206700167516551916596311180024200415078798118376133366931513401179898257525021506979252233310860244618018167729787639692388605392632775642717156638774481855111766957772748778494414262332163451238754980945528352878893225204303577598745735206943220834566431331827284442277746380622797768462700073252519997605589067921640056338655394335771663679774967057237188283747003593466549131548329411331316406985239777578060937176583626824704949189525424533742977675262090407419483413357023184767389019293111254858819469727595324787937496750528482809007127120039017281192621380867103119520757888995275822078234748963398836656134470166238772953843741499364847706494588372475232935998287290212441794082020938645028260464463978156818898527151819090378647048321974846053948671083890549860435762459210923446030201803213927233015419658269945296672374325967540176125888679082161712429512605710383922840699373169888831096146887643995807850559424077750714072200493350849469099517643570938279457968154260238883192096621499847396349853388687487972515237516871824596124080011102445730217049168352940764090567181660111171047620374710969058329873734495360806059344352782320185202846652502859866583929522404892086331460908214794232068046164663352902693606306283514085236479722284068024373748322334636428015412196885008938765354908150266034730596351114011372323820953424770183371668405119089645413098715072814818370383827563279863520509661084676367091272148445035206906908812158466138222023164798919533848837921730172398759940388875595489881769859715214505350094165740668914048417932983192930441281860934257694456474977240966220588085840564011770293513075134957573179030473483537256106431686926053443518211865131196328171494949733800812629771782884174035808067813680717303653494548644847203306032040504488810421313708888487347939075614353569549825071208078546478980284463500199069519024834475521441539422121694006021312158444523750290288711837183536083810745084720879889495558978321524729378767985467664269501719422914918537342901156208271395449272302206916945535114593132828229819559837162330962062404478766103135901919590529076255338343258202309517874764283905050841273849503017160960102184261467673297996413477163953392741243320179494121005553850583595626777985242709972929155264227250127303118038497340698147391869367213919046093418721234139420871642680391153384196439805791049938476681066334725050645215974332756981639195709403844171780324751481262540541404450319774086924443686277597287830928643704270259992255575677803573861628845745919629302599261694370307174495946818178271747153593970518513448250667302448858838435180323335086449709054607681294730297888724544535112279117897614988462077179707748445080443295931974792199930101842020803396270785328904612299361762071271885576069205018603655998126273109890421861396245158426071876069788092365986534608600839939680923749727609631500724986624215372639695909863316435336573600932875700828369396355341276236902233066362583018988036776365197371878106869465082634910335379368188506510735209814999773850021460330217783099503466866031036348730007960390997680076661134746208598228981129961430742076356383412294028748030045089473766248968879510990827566126517360748118409339373574241671730746126890273862414112472825427656372589840271758643247541883926652119074193327509993234032440006520685304729047206158799561389423681548997696592884987705595850567696701017457481828497526028210341473118886054329628446374098860639963920408030294390600324506163973628467701824077686536981228132190413572115926021232897422998921666861992873358047090919788076409663565660913572123972652430052312164692344701512122706071436315685200737089048751289433118581853123472784346498268609927533848854582198165682800177580445934292238803960597560647907401321769041513953187633715918262798177360353772871645567548345331763652541257080454177829287851151121367056829077318928621815286179415202633409197460006716033185620562358760713758125661322072056753868704827139870948136322797063713160071807351152944991417211494527121041028856724118096224398209879447926438624595596851493291870923183917619386223839864777282115666832208010104659781560175838198896382001836172385605947015473733867136707981645487769253839893809778420981760552825900933771624059211165473880382908177664160655931784088234787567355039879048292563683013101747936152348581443142478243926013666095097391066172939308812845173008095219620037409045031541180977669969752027345827479397196012473798461163813138985149092791970485842620720559830652514510933758734695190941270167891590580829758319582982019707971909629236667090638377621738623676016968258660179915592939847208552773688900226524494712117965311965219536742819724092828157555186920717387087718468542755521214005236564161388015638336668453470466750044926212200502251107320339461414056193641663447718592609827801022294620597320443732687670255864996933391383227902696543443685238863452434178502568225591103609053751920948243695231881688992121780377910078945288174547818635491056359192042869828471345851536969711788875553729744087224861653420938647227360811434726486053403276899211194699958951346338819796071770129331579267581320245560395950862463907826719984963475584300118166448948119057921531242511249986922644173246819623473279743304768820515369574006053875496107157557398621475751017974166238649175082656605965017452171067150841085663399639055786799981259021566050573334047617111255606638909808467421820963014207743232457893001253227474467186850414849760007891618230862181157922750030738650734052471094952869284794598340996064453333683056518365106815037154062978017293222672590122443046744733547126213639127771941117977647107455770715503265033336941575560058378479347707834709160129302966048213002097583771376183083338027139546647367220468639914046034276091336749319910838598708603457911845233367607965465265249513454052043003485289482598199823174265928922724356967386098430132605201782836324261519518372391448178984771419915562851817387332911304128369556759088330421735397918835584044230380992025924315102236302164745226368248426442901630904592137555403109829855982564723738923667982235474416636387072662405074729694806122188955419876038773679973162599488162474797681960999806654518398065207970859881181027088976893308463048932031198304560345420036128454436278006419133219133599454608064437882624914344431636448937864044358037975481814109567938327692991768716115003892699729831104730777020536080281846115862841379096994449092312393389021326454133821820897016019180785669450449209944476691664058000165722054691054328492955347036176150045067419390888041096799798817535880629336177323915722379860829386298554386416172801430814623122369194362600247443228359747448033925547653419085469981472654539087285952837298631096604553187400213136149958791986021750818775710594434901210977300466830587920270863725806702832405067962407513861650886067676814629597598132886595748261301891343318093253009682000327144582981306195048150854124219426745628159740136895968484411153330475542829537442170706173418982009587567787773384855190719504777524113645219153667795318849121537070276686331966462705111247980392685543980329443760042064656015856479781182950302425449317136211280250915230686360297852486573978582187868956878142386092096876115506760021751598047795587611959861217817510194494514537475597755970590015727517240608610436468776422546246115818199920195351335703192054378025196334657648264260165383455137291504959115821781664026520743403811905706375048623240471654084447651128862439999524056948620255315903825458017301585085721253831825861704388047254992246815718828682838343276080899874360422221174375651317605504005613845254836674952594766156210489175031508835046736080716841352231527281242222912596803630077822610764881549062151296418844330659375463274890871849788870738100200242005919667888696401708020819607606078272943152151188149058157816568629229902542213473341604356682014791501213957102925600364725394539784494387530985248080089991438539126671882861232919128183947822687102893944051905621028707987101817259461378986840622997877158390102735240608740406661703432521439167013061135519976180232449263462611993861234990493868135432749644356283486973622136881097460614001104415010999483353806000298334033598846406322938781365222578884203844783205517214938539148453383373069165747203249447275706954634012408032624224740736235108720013646343503077063013824704050120106728086772374760064769535330172650410063001333627385184830156620969895801306320994012147494172897985594854414882973592274885963789609398972508140268212658107905968147959185943902600005220937051994073518919820990805307659733958791816953653859359472153511846866434982489516412881733305092269230219033208716727651241630704850178979115656508181035471074885206229870767968308640720015390073165411908663262429693882103315056434364752451148670243516875018686361150747498546747588525879657480620355524303762999276414956429647439285933847676045191921644432514200495989318506323653800954076289251962943581141817160810474875743558716980997863993854232260699594755711387657260559542829449535957492397315797790839965416519746119049375013083839005193689105788033136816007234616323354344429461371930106644149309615521385823734311899261080381919380709720874745675185896769900280474224869532026264219702040394474791544052307850985335658281621010767909688608435548157413479089174715475691574894914780574192606305690915019490904845918575180542851736361036126019047502260867795201813310241887076514989631808129978878861210760061262216478066612025074994111188952890447468254187573914402916052004928988193125906398540247454495897971547554619241683438248723284073930763416597780855514707518956951859948247892016344956627013144474293512806886094753558296489716705288946545526423519390445779649513536686268733428008104994100337376951304626941362734885925546759877895424388358702746335295858761425150224310435649422852273296486979780759812001310420847878298848114245154935518520523412414909771271276839420173996955174409961595917010443490836903249392356467574226767970975096727940739362464704897745272463036354378746056887790185472295529990414221991366701924745917080741843382538555545149478265383469155999937393365300225587684594538239301600463661297516025237182827025100544403694582373258291460729152225966513919745920349746922114195862249896773098052726449161037188923474244580185563012713803681144024966636023499874813281720932336651240371654794821845536695270128688922591110614608129099993540178809668313630142457851659899059709334915881456269818655612058935188660220005345186983584907510637211616414719117427912792245824551843837489003753817672708153580968923771183225828629181132151929206585249760087955813984966742997131268447509120712687821013053755406003263926016780959944852960175799585266314264047372518570858101054644907218269997672058745050738146767443580478435350236143923172400662409833753547340606307525083687152904880344791804665531388616748246296147971604152549786037059449148066030712337741922461827783332397583556153462126280215216783417071166483379689579602204863963670145754509593380158704656337596732393541437060157014596071412900077070572791265187968648759337719390941668293423065096582095732729949687803766262782179304631051708386115473639567338943145866614427902813669752786082872553496118754308691581523276473142869448323666941541361860718522642821296245845801249704695196049839501992554382669853358456869706881460333693098516860638071702381689006785207937585588498301129863251922962541786086258036719691414369705617900285363952997520330246675357518628198149954421758968338664740661726965720178599120062791144291420929367262529395516624976668331103732382203576808054177573178829645665164855058951548635894665820395914211041195282040190051881364413809202224971026393962805790064428529094994126714100329705309319333279078169207793730936196462538483008494919859024101677224550986110230178444577626387713305053945260453920075392242061731537714355139148128664546268956442737755354608025546389595016783937838152880886082274520652180674585889255113151672779859800301878948303255535638981250815892087832319353343719433503506554522222554358590461367810582864567910025195268178266035311134927552651987843530452984124887745181551336799447540342034503524336158913773688365619482370773892522257906008520737785666911527039194136938385372617248467330595321823036860303366599164234717986707389843539471778607904742903980990006560497322558815511622906853771083853987221163000582720246530210859479056129279934343346363907297892229409732842113492308927691432765409389806375077387608033768356281695129671189104214416694690326782495326778773005305913073997560036842495044066054038204300633154157162024509021637319489762461269603094395692571085137257005102838369562980418336441671847688272024284284831658650057744134827641872934151606184759365695578521859884887725701633210451143028266744071897881730209680428887656539480472734122022524350892373651750263967158639073167549029444631408404322647172092438605147218952752806404828051623953468351441478195438898908583848307074111208485174084883799382682669340802148911020995164367859117199521360065560616483155386717514964129433557550747919100332425106818486854192605417435351515908785122759064811016621556652170090091604769504489305920275163808092682863231486839860503069476528912993132885330783336470182256399090828702352603103331643211399783072283149494304676818494186482469658838355873688836393362143984234794353628014716300615185637050054874835454238838678673803897189041461807195838523377692999159311524019539552394231107886750709101523735226851455485540175884975998627160797772697274474566961554552815035247079517174972472546591730083885591211098741506870626189502443456333078771942934054592156940119687219482002452286278568376669336464242943113854342930222213561034832796236262178297257580361311729886695923562739013171452858208358729514723391021931014084097900271547859078634099123450121179763645838408757189327471663382057984140005388161913589503529261667412933437205251353633451732074093756300746697199864738996873711985683913326617708843498178338871656191609212245494286360046488731152100573323413164728919815477238192886983918228753659987818678214612403012000587088860953245502188385897691640935188247190626926752796779478474855122049057408229991536207361035127846631647821699281244605228973499723264422502881883030986561791505974960097742990226644769360966581810115963568712670619908421540347476322240369971105211537520735701711891002613316950683070399122520918310451748848340133990579168289251821700726318377420207481735234738723664001620895930083924655537570172522839784137418499231956083164750826147566868789152810900876832266711456686252953186306614797344676806800716735979226049456451623455992933742033137150551828201954216074426357162963370941960184670223018987996929026763571641159419683885938864011309623775595568287809959084094893793888922156399330387127321845774745320814463881684547359068761151292146642914230017886948031866926492779220988160199129252202118244283524479263099776812021426967487816464207416181438447988645612102501564139688305778464478301860808297773916406776248992592424648331471437403669869772725198081434926730392993552480453397409382137513775933914680967448291305723285571957964865347529910540450923369133266564383398280755403314493202877062311212388034393177864352236681622186812783082404569959351389745821635074618278596465586163255156236649430940541298926759611477326945029918857623551507089848542609878245580493198191057492245405679931999778606447636408668830748408591203220941395042213485976253423683739813873434257127477075311791331242995162522630144832513235796402583488209015632731227416222612588997289714276577302633591359770583571306316508593760606254618050635539479615374071190712226741517116924951448073016684849828650144112978153049015334845469855314152709979429168168486306524946167163722946199499015314243970348953966545892505288324991837880284919184031130386222416541246367935751185271660547017297752340561556867712177792181907636100892000615259926978842339092376748228662294658639716644359707928057992920232017700253245597824039531514602587516498245988941185830286038463951865651191836624798844283828926515850876206161941645228802645282265997844413375353408074826241352514304180688754439074887123395460282723691501726006756166409992182703012291125695757128100207346257860601985280578206789582759684833763826447488812796283596400667735721644426493623167416600900954263712222755530204738784603431385897172680597670333238528096527894967073410186921663809368003231124790372346980474783213172291884624876631994066795457966377129233725425544201434256706779087472663743407719387988548626289203715128937941813925361342899039360052178739610568685519287594448738136088428351796930240690298695154852940823832383200806650641942492382684059118486567523761424749541960647794284949631020127433422543920857890218221958244007782666693314632688390393535571944385480561870348246822087970575125715787096609337622919663764676888917286951962693725401153949921211340759838173748080456473967472448718208568478458769043630992467387239826407442970650777409849982016993406633673230893596119700637413563848437075784500580035072944863511978247835209915940011817749550906220128352978453812056898515953376496009421447503213373171800119064592156088959453743767993516843286837872633026375551077068429936684709760024531399024989605902487246736527437737786536365020733282364247093789936477136576969814913327655573020754849055884393781927219945835289794037067339637708860285397317830783766874968494178507395105522298486648253952764099186326227342331069068584097628172063034872026456744907480638184088991858935007671254133773391246229801715772281421868254303059835658647617772569368212318136307898843322715643337260746910595324448606461282890749098754079140262426407026677820177350400467844973207647028073327763676078994843940832904398337003096914738353125070137422161699983550416324434338493292773100972436232479831862891842966061510325377556313716093748294980202800786278696485749851356916692055819108546131501043415817943922770082535473340269566708970013494872352510550928977219052391428557545000107434391890648325104176928141595831028984679351830234193632357685276887069295147325485310849186535385759473470281760183446313517395268695351224162114882294067131201184255427676102334661235062795510437820720620902769332473818542415443651461961653797176293889648045925892854511900745655751221519346241399327135219405398567483592768607836948767336198546989559263108161513597488271200189497096211354167287018291416273611206375984594099212896328774922618829643706270179428466195068964118553440295643358871462947848535860230078266411164264683999445622335623538184068779403790592383542080020282803969349528530263313502451835599886650228462669036859953536602831133623313815105945024132814051378990622035379256630899154561948788554546619814378369657127360762468862129441979472225280682199736063217935408364686305164835229072500064299173459703433745898645018117966523136905775357420341224429955607101946847756262041280794286171757846606138522527712823874965242569284826918136626945014448297577549804533674760174778013389680121782339736060202998411697973795133633775780474858559221457241511443241502224931905695131548968949639518425002604895815593666178356072166306203980014558706385321337128422179157944979390416320209136313096104243932393229679324233077512593676483586369314990984364968004238191508176626678825015297307187463187204304807273930081086919455485624134651078899605373283465925909553408903440888654346353364182472047618410576580144274446356323676827167756740773178159899649104948221364915991066165626742591360131074191243442368420401524132668603548095614031845434148312096912486302711004225964665900710350893957035369629753718244591843918043433407351531975506706495829089086448949256904083042120165595059952736741868669044119989117865883805922732320344329574710881309880793090557802856384045552707953129810045627220208099718825666409979595172123240434823264916784900786681085826184447102215937255247447517719228868499935015407229198338567914211076089854907778342852940603461962407477190738771181649960373116531618788099795937818765629730269695982776187081475982492085118980466013078088473819659803116344211563906952065543617753570677150186143102544228174379133888748903589001039394226102722890169473279585087171198111624792108765909285469668487677755275261894916049063391131739192748860875752295796816445929394393836994085889448566884758236834888303215570134613787299563996891704277157222165124906546751387348288350268287250748539817752304164713924040882635152778630545442467429856557772413262704680897088666966638355785212369845864375798238127715396983674868414356767747411838776050269277616038621588586622050504380165257686792774792764239012066259411688235826218353929492910087185774513046404406873836066745041982220827909594223952349295758986562912698993850660781193296162161797574960228465581847404823649624094553871432462868017767072864410742101138429937666147752208845032700393787603210690599581363590285684528184626572585969107728474558934288616606937345313578777183924087647081822360394060875765908478215710929018171392171047571257782013101333000186413602781770243477376610341975964567088514582957361282061986977119493194792243946161357070030123304339063970923964753355331357740753423877167779402999697027007345601763992224699462177799503498926462414601967846227289214828573248130106193142615827360876208169737572471273636620929482700325812407982220727069174167868046569143303069759505831478027676042110371689219362507616496694194490185754685511092962684869504590243824626270468254351439731262409834612341561187144258250942748521708090661267091077465879111404393480460172292621191000387779489922430855127263593743697138160573246565296950844462895717171376855502717350964082421710359804713260534861096244302471114376122637424556136937703463557494178701327202767279103056915673706412102196074991607396589726003511931297798111427832347721263065555720573927365086946937934149379888295511223115810428650427007622164016042402588966267557172117980264731096545917357913870308060030285673832022151399620200092623220431193264195810465848713312259273502354460512487161587621269332830546891322135819893651845610172196099758005265049705358432436557250734102697470411371895285433459626296423374073250489861121719903819138726619651939845216653979076952402190547912101352109620850963266169978448054090339341748364780771853376789567480327115786721313935581694033181636021099382536745123388819604993841425243742494577948747052290041346679813745200193140383581789657760612690385583880261045838726139254943322731827927409232679585846790831783171172368581134825796169546116474824498075025840582420752313643322972436013771230446160066267685950043783502616540111391037563153312152185725089488413098398056095449239857775554739507909382704796544786613566729051392322698272153847103331908811009400278550361527572494409702344910730726508510332219476811182889721498996215161020889557492181575909598856325726729389646998058754933881004313620756155385205820798207090108666703308611651776516801524332176424304872321534873978423353563759182071680185734726341995436290547200806280970007888722423897439024287943783573995564740013933995551090794909935972545756190535714655523453613549371982393734738845156398628933160229658872356787335300176779686949738970414741693755793697932471013123768342520887511056759199907291806730717397445602340456154747457358311361061961291197064706684244740311354541239963205388775596315410901198881715593375261731174332437218937421221459907372202947361245849327869735922261271765526095564262917873891167011911700595380327635475085070601619530153070948057214339346459633544329565471458924212945438708974829495704246829948876297417945586281807775945514306482615245420167340919173195217783456698378976106756892150336304460407013393532509060733071291323202557256289454249595862598023982541961669620481002535517320795612794731529958744518408298654139239594897685836474408745922340254897402606569558428408015247332467479624462120415149750226171486770333363083882267956168039503444833053958636738263084430401681066931814716735040065465674573910983370815450728285653133891285430698429433192645534242452793147051578616542381832482903779190915902477146983600689616571380805682392669702816668439091480900946379268027607455878038703689548406224378361002115902656757828132180095113271595842752161030695555053122212936960407081026017038946095607670101821547449041956244364948806187541400330824228987454227262892364989404830743720152847415473999652800268950968674320837022341235506929770860937936941786965982435453377658970221367114159188063257370599539511739022987450789938564978603385522188875161759525078020068372646900897253943224984706775159699041179058422527844460048083131104100519960836073441278502752423169014821129330142574601505547255256656578649072601662412145798808349647211196909206986072256965030374541117443932348896634396263251244247104483479308812041839835328472767192395562415722910370234798290071562306684894385365235722406437139627538990281264316005268581880039148611003546710439639156851754384335247717132461321311212597644382608799245949575841163948279442408002404704987276353444828959629202233661090015203013306742306903189895990832144868780729234852645319353975343767848375676427970762551798595547931790062494660897589257785404955482472401680842158305393789725368010561820614381889532666320991680638828903366602211629259239888500651231292250707698171485069399097140225134453856717988313767688718243222738679002555005067848872308295764051595886175910202671173835794067201949324198565904323081054598963409997203954693814623631862063725374951240412632233407507061652152941180863227557232219464678957311649084333553733562906624369597177948977388074470521975340147342785681778985188996210715654703630390562807774673132693510201360560429445203959121796705216626061095943714729774697445348646919798313583479810070763820007784666926150487636669829474398214875283579774593758195260650395002476259431598105577551930829053862914529580564972682434816202859596135849875440556985033003967333418979233657048705138434534384899760285201384031451179594278539086994804363174259873277788050208427535551863796728754008553994083564308801513726871548162678902966417340862402547041122362058259457314200810582134531618907345370693688788234861839985133298205818807706558971527702590028068292314514309458669072182512147832409773137256623239763768308689613605446912762283867405990921199622100259322967419345430982860051960151486148817734542310720258747780856248188746702666220735877122865138206083126635977531248296836472070944431989367337683581788094822785222494580313053537541183159022285612721633927384232743960330205407018254014211613241902313810339641034493364225189773255483060993953351806016418958631178251054655552179223274081142782225350156874365828128553614436306248763229706905519050617711212846700650160257634227644184527979152141620125734271087438849333012908223205934329413492565673148342183073663509533900026551312112091969867509564795390903814664965050467286340356699711636602096871723528614836388402645998036562190794970730521293519048499870479273614241132593417199011601061127776059858210031161738149917891759922847204068624226956745521220668032890400287348817792987222337016249320105919417012269614554458505051684636011623649208017529663912190263077097546443584731536854623747657302030577957519081225568490208471715290868088359686448007824252713324768075118391749868475010829378159873035773245662990782952043943947461304804561927023159277722678271957520576099720463768030050698846233858106664569956164586718214060251037461404117438499928265570331172128454567441870224754014845670828558991979982611364168074223446497238118724763182599333659606813449230364779556518255493314842087193165077571468543652292102773175741323281087872905039221866254356974138850298907086225828740600991768876420608537601753932889700115186116231342759332857640976232049835555728537909015973067803612656414887631092465469764011227021217694281770924040073222328526995702716991685762517059842584911840389887354875837678041572595409012629001577375598421717386762464388153010417936038947313264306065671597179157969713067171846403561648653554753441243220069805172710791785476848886772196830661878881940970129455819319436745474708132293047263829845864734844237300108590752615803099721424767367082921481188064308074907542588922445187373250407278294261661149848544694788186830539344381681577502643789638837096908807800564534184645994851906746448428379234093631175620360898198718725023513975232070460673654177463381023568102658431448755519517282143618413424004270844169762398279424342615198386674420658662257945903603618587974304697571971615467698908049408719039613794980843021839372520582032690670223704638140377775375684571473604796345312479238940801421572904068506299256339851601338459895014076410037744123642715701257474776742516509949967306905829090699197075007514315116676285329459971915362814299812643397326404242705071971402810133960458822276607504384346710784206003631678934219315756375529933421455078054031923741835773663518291433317854863664104385973381774688363508029416968324838126958953825264097205424092179343088764672901013220689983045032533327273778682628980516343553229119387976078381817873310748514672023770614442703968320053098021736423846310140444807027572253554035127931837895097377319909326797419158349444962225193823182826762511463185868726369054026140373476036421222681039623247816270850289307701288612070240772167900256267046681694752300035158195117910709472437205876991234997941624837524254506396023570478858777161166493758001778589410377906156964961610672246363807032984914188000780685081952755421663308561507374368394022973611414684934405965416435809463152599825273159308499792213757407629643798299487098507186633665903542925695938799129285085627948114571898887776213908486719360047728564114153735542139397857384044459675994821404225405420472061913339281304399042682262742878655961558156436215368560064614995035203362494097218098436359414296369016164305516642910375449387470538661019923439721938685216699162640834162757853701481188097189611822262286377203822223588719500278331789906934443305930513329213910378092049654849336883754631323127050840096292217416070644749565741383305336420809416364742284609578046962447486647118551104069893675091305977473777610433171066980096752570430227247551999102316822033485913343341979469755746467940934276160275518786561117711086224915723168584220924290045568734290069890767640988938075143147873835857024682139648245052905625144086909997432477710795362160041343389513786536742940977529066519836876672026603949007516043944679183330067854174907811070194929673246705058226436726049503093920010317466104639959277630733519851706849114326582771296263754228096426260223524980257443421517796493179115506099271604653473564800381786125571397207995018047544576937040331156230906256880779887474079851286957338289868285492741557161092903945828410035600132574885436919374131286259031931331773256686654423834162545130103995718991572316426547506566840122577099595698247516703531769871740884072720793966636839689325732807494642373020914797984967194131519530298998033029751992354192755928256266972805715085821641472083831188394692356938187826275346903367207453690088118948865648534896515264054849570730686032409924959847520643776600868541201685021168868929966592353236325813273713993153811709138944037722427855364807030135754043289179803788287325996096530134011687599633920426758150005172569398557851491612617174738882419253823825408310586201887919635640585108830080569056968945075170364683628688115518841318385314426044878563280005689672992280132161980531141246784362879418963620358953532862027718606787041165184349571532827423796047357995542540778940679833400703536259534269861167165664840523014672783618441026056198137496446311998649341736514499115045079453115824300245482391259347735787781884704625960403082530688755753944651785280422702244664975813775161567585278923745760626760306116021753788428956059666426877374972621797371859177289822203538535885082739532679945024542107565987810045209562367366237570741488570748496139999258781657787643301073297560535157693678746843250722954858075295995706825521101712056558780150827851100247883701845616308451035224864076177106007611414687356441824013365002932518414016330924228911236167792082378245451678987560928611444914782132051721449859088381445306972494385127375133234892219146456167340779160304558438767444331039885411826707344358044650982121315122283128973507851540573855440412817702833939085126720698716926892683835164945448784956300704315469056667037225958081559845463059990044244721679157303523581665308344079370122814245905551349216893002157697777339326498870910508102490031808389001186996528864476553264932619665918306086065563271115743704169909506522796216992509900872352244018493586677648851766145330842555561394485356306760162615840178065482725953897915955443973823054932871445634267288830752605152275291952712661943032222781206120262186195512300510204104721480375807119352695668114271855850038964121792039051914589610477788668644356814344176448167699650022537457729469177124126920732919634965144395071269679409185946369267221286770085586574244138189658838286509234487006557993745786843036422830925060934701382160081363015090160788118201432314852630724480088050127815841857480187722724746871458590177499433823285964703720158642856322521326612063200959150823889529679891767275687063840819205315160712351221647893958744951650505083861580154605738862527424567220420900403053321352381319799615735605568623783983273784840553028492139307679832136519335401776318601322374124781808234235473018869691924486241837069492731986998867800857037697983224757063052893220533946768272049585648501273755581895773699198009934780703518035427996246883573437092307611314193279261860328259849245805605593626814221175161801782452211421217537938473980938066286821008355407198972879321217586544053458333590241073276921427035412720523332524185385326853665136444447964196871506124683766008351845940711233040672511479757781884146443324159544137817014896615923840267001299137305590348804885635302098030152541527900633180295386565399892778011307124179269944719166604504562734237902042911499515093470497932003854890142694188741634880082677394409090623454513999824064159918494743058515388570640310416648921447064644136950838395226276856684251596571104794933032250360623271505734204849895863300002520814104128221429454185414694236687684513860191880693843809322161805973609903473005014631984740942777557324767971677381618053889179479206507311627238011712998047125173560984440893360418059217420427276575679509679541551955682980827696360688611818282886372789728469612112822408320696429821558643695841113429618294255659533431640260185731040781634709383000832235830238616432180861712400453366871495047068228404581572218462244340029395962558750661554763079203552359437927729804051881741461592315615891751744856822933433622391596838768601231518502180771293360121323101581016601108597052615032132046305797045580346020400115149706451139908829389150975116295719248027505990694272376061120552663222935374216606744048707805601809491663286581601515105152438034799621700014596302981310058436557783534270385386671135715217235866982415041219404730823426047611510241349769908528128900532971446156263297280654540081664698617905444254297376442982469788493732049414912076430321198113872788925615885664595654013207200366474187204354452392327415032307046021191105149033516811630039362440309223337231507881971284663077466939343527811477046268716106248057464762409537454966613846135912396166607545970471222943518242694944186202252624207510224863280953997598709838400155442573097007779321065390363891526650566459181592354365454643558878554385014708781155041032493723568926044145914879425399611212150595293249496209971158040961069451512842910271881257598647890587434209177924121976176304306826296411048396161733235833035438710845083768995918918756240841771028377978776045528407773363228890843649676152588078723537602325056349553478667873472954561475268016249363079781619802217845848218004416208184903483982275963214661927695666652916202018056332323299130048298530141134209803961943170319097258057016000804740968023232176172652725861164592619889263801216734650303763341242457162304059097680917099256860927369564055405989203353591904904497356243188306336376245747202131576345951579707767152883640172164546901574281636345803043270238276710480806950758931016431432565790660976151573957517538591043955837814873664491514056988353880832910707183258341236044460219930176651153595031536244226843061396769652488630611717493993671542261308672713758144086150534201468526866257002478381929089234337362790824606262329319402979416336263350231096637625125380337685745013906081582664669627194867025719441874849630229415717669331325021590741925263794503491188192621241187470599342630014198546233475158166691175378636986953824209771601398931766611213447770450155221767505931994023398392149587400001619539797600719970894496986786654411672067379811382555380414609198622656349058565396740722838670842483952335949791037131792331277868523948985311951040791316849163583659490737977402270675300591355896085825720840466586506590952367432044656746832139725620257241779626986611981128169196103210199847181857930452605258220773622038796090399211927561008146534683081086958072550660271005497011021858023204654953681581666031696038341829912396749416419818331685900390719658668675383879711825614328977604083100112710092136884453649696491447020572113554981426951958767692732184749629382924238628206400275870473241298231719125689706414375401331138313742638912912099155409748382676680318520769593914982903634971099376101094632742522720495632796101349891630130189203670612777818649775329966543770668265506979477763491477300629676393397198717698450273230566862023561650127561753099391887289324200677557472134066781773764497230374902924974176675221923573711149653662297047998044052747557001591081942686087017872257998138266948586306812511869754084423818753259679342494599963362073608103810973870683035223679775187808175431719747305056985308249216179046160866630078839212531323182000731979850886788830288870906264807825938490816825096130692187798584211654808739217094858496469473706581176149391329275910330958577742072895847237168729646916416558317803053861263479322162564420287376341153886561123781096907925830980601141340750901256785486866103969114602464257199907764895850621261995976878711515795427906688131433026894450800837916729290211313631577817639905599544767052401153320361687435135926581417736232417960521264862269304409706227928949467724038053704249164884322929125841484553174860491826543578225108177612799779327914905167151911957881241558164044989102649602065489573479287197516468889134515362458437290529902459273318217638147376662681956136267832158862922851488496117364488355815831404550780053652265011431230177190616043478272193696183308880560435743841793042997369127573715385238436257890215891342863385673748541491330512681686418455872260034008763647531943178211928155026195280692210061050070321406200873421689397190858073074017463817457636167398191585068755230726132001923505459455307562833604270805121979147120064007441827946177918315334034416781278475972932620075014108182397703676283411712623845638209050973854912717469170396506875630559900355277282669654349421594559424382182055839690556678860966070621684721957297497425614066874938615408936321499336031749964181838474521027249264598138701976336172749311358381222852060353460689628653747244070490463184679146037004416795303136804690848086174564149367292957951343186458245343617701500178338707696148334838991558343950580556448483070214660707957416904030236364545915494337644795218823407057181499521431432535895194794680782297970690663519806685319285272763549094814681412355113845448172671210636203712968396679570551314420310372592166597276550770332662546355833293022838862786460663551355538973626387163025509750684195596183058814476321551342358356668543157410348819649958349724024872671660547113792010844234516839818683079213058227465439184713248369628915554750446351265765487012976737008676615065354694879677582021332686479117691864921792117848648405927671656351741522415010076203861135380197798494098858042191315403919146103169618060756576155849244886647327807863849090564852390835097740650231766529356469488913299734773729359743705752412527890381041765727802149208849109953885469771959101585649547496381473733887881673343888103318807063460534424322305373708702659771959161167990609871371881007605327945128987392457190224942324137247972325036114471429826458021497325383660987239648046399636857214473618609570195908706605135077297476684898267143362049886055438662078729099076626359977831489992822714200456952897725689027644459147882776533389482129224949955694600116676606508713409418503662896328432403470111826576049568199474067038946441349458890827711927415208191478334570948818651968187676543636808618776005340957910391438692140247443732905681409318617178976723927323021373974598963975123745663287125860755121026063477249304275380738259096564006244257344145432328750541200642440815719048624070173902486308049259954510310421812658450333061028845361781768958757851472782535301684624372268927385730346111804880601299512345797910143390013594743671042745188795795488715206935346468316391510340709359721291621430171279510322889117358695214549955836917909041418150162037405921491071740730459439270754351436744510139688518908046382708731620755742944406705540093185677065389055707824531006771035589869264121527412467808403379176018950823935369009673045344956803044696865713479969260307440986647071370697997827006422649672888734439114259490104929162980103407942034085254825116350197558766033178116825648530802306030105260582441995156736803103878961620098403240573807589585723463255135590683959428543616117172252771740826045289974756759103299337302978597777546531036121900683047666179179976238451268839491715822605549728759294096632641205554096182190869794572017082813877986487721845890959181485581782129229690465643526217007036661134563312147299266113886498484180428286526570504090603275530396090780477088438559931159834818275417227321139000209791850773985555578816873165928903441123648278066662985869290738356093560415239461021458146756534578038618869266730445720905894989780356084299457917451457367090327830251866712748169961863706987821934726756643819759996136493476989548902518610274620567984290945161146329781565774970924420785974152954591334816605589134344960328126259664707338261521085157921422597065788796345780793148598483201485525706490925009432989899194934006098356793135113695024495725088839640916968069587746031827695771697469761285703891081279279909519174781152378554369047496627956806241141320577104086113282992931382554473477799445743020435056935246797457995092645580684918879141545645840070053119620776066754061295368127240274683091147999811430471330581091124828112546249231380808849683881974587105133611838144392818658759616632401409205721010236704702279491699669708984808349811642211386259561463807143057678028822859530332568117039583912863948404714519194117631869741309086361968700286721119052496650998859701903157510432113363615317597783279801586940616891989679370868953573816247868389146465068476300281231287060188431360527023548688777737455778270074560346779789460321565995694850331704564359507954281850653038127925867543664024721074156167476943212388275934408340337224582094234857430760235154639841222404623894884063102433683367202352665569094985698788085642729827847377006388882684544947066974668792158357965878693107019052080839668498383910518296067954412025887804266387018924697258454571895720566239962478524253906780136442055809053585400206824834524647167380745508929216428341093744041572676118694736238534307978229377851925394458859858128143240460447989187797540327589961267847816898918012522608014674357228202333216440799206231596307284755169453886219307202388371394309410231399364202173818266942455724880063526885101021636773689323139745249096277138545507648369169489153145528458411154278458890293667240660655908213898218362941246211711670556384561930353277657786022473080038692168734641660295685070430523788189632376714038231085297229696539552446340837239423376005067957253626137250676605159690870101014650879895410538339694401198211724022548516239541475462188440387765110802736311057313859688732807587653562651412043768533063181531264461690390764816419743541265422377793935893133950612582952957050239914920752504054587397876464241062203907940986796254152006496998128048535996057928861160041586478789323829603751345671133765912286138417772979261948624538375097915132001029441794979711234220066284989297143667026194558285726094833732353632507130194942917975545292072973373175473065173381355616368925096604403914966782178329640089399728513732150203329132158814830535902266773842943641236120071050812590949201764321251118893669950379135055184664587394540654989113052400042617489218869439149539356634999554591363477547078200935151175671717310338964826450165411136373137724866728059824721494858947846340829370438184253930600490475567364556258095845100356822063915721081388389578736768626730956969060648514245847490533418502858738913499766501219746131160262862884730355257699468507132638180492404933224940406519099969803688403240649922687392094044560890991513539435246641295920044875577962887458174374833310587778352024369055382225072371256296945880820578814617544602476923270478290445543819516961452434084472977349285666351170525776877250303603783910173461350194679411672818748706160474194138628773453515050814562288768677695149513056246766771161988047534361727058931354583298861748017292272787020343750182589423627190535161975709181784480945393467597372567053694880760226651382672318714555092935746305664706304450702586022266453690966896124910310435613751510391312732886317046421844407879668344087975028225954816712272272281873197095241777179460169474514351520886930800335958830135916266813251238429787376040331545615128214671450886198154459393461159462754051909231541666354284804565493643497438482552883513265181266380466186293719467004810271084183402090590824904921874487775871121624724685240172881636052700198799366877881928332126014510337947279550247752042290656352877090253831417081949415284936766172216985951946922170075087065919850483955596684879224016215355055196806752502693666413359230899193526946727713441345477678416328707069237294279453981813278715101123815752397777302766632834952891891959247749759384383773675306852141330538153648548349367394033164166596975332649913874772771668102907999850421959953990596405714736481618762240438182278950597057122134498251884898685935438994581124379680773893578276055635202674093777222873078571263378731168949488706987565291266544839571681131287295855337862637229792277309451414092315643554992336637125828988718595353156117263815640438770923623866996989339007524551856797445682293316058228824070308301283549651239567464421290250874915175457054196135320550818429423898495870934111965892495716702979647441332675309300871299364063859991813871182426391809068953220326227777999797717985364727913401943447411509559646423967169524773790406253850379363414114836095817638453529069106432485828680752511584971804584098854415376369522401930005993536430652888974559624838616880303794570299981801359622467842490828476569876898207046717437368026094879720646016090255326223305692906799536942515149075459879867158190181120707495893350684979883717536687631213190934597565315120984513627926400462228073047747837976154134295072635830613311312060256381313387478538959898795135159445313046617865616322070502006185794511091634796179035203946979938396314297930005371597456253498598309926198528151563014468489255826970338394033411248984337548167541261632801037153397779575988869324563417637283571381909572757291913644866722515121453058926973831309923854317659534911793699805357854360704200326265153449314098013121568829802483943836663986411053751747599088362049776361064083126793157117851686778188709348623517454360856704819838092725550372738305639776509842548882527976208073941945293571141575381305933254792869084360680600030990328195517757211628287220625198161273409707027474816890041977782820059874326053485775161804619208807496752902080056074603426946209934616202751327796554700116293737178127300062179266419525285391126502617819674323340728884283558755940201083762979024117009517448638909400024101670010280754306138843593535232476166303480387921674616335506294328401966413491371676219393123299903078425648378788516692266851888357253748879331411955801690968445885074312178036923551065024286264981354674201740182230104928389055710903029401819634554769159615030447309480782704120564068696510963388246793960776614353718957362786561786393718902277287301854074615045350794388021004977438668237270614454212648339395724998081328941561503942949276631906391585370648106100041637545472247024672851440848851184079068675157924952632117079119160935218521184965213368016314920148589956822590029777661177510498433100348662803319998599161553764423690241379411826788739579245831965489039294205485711184079583930767727077812728076660625571512174292180205158181109180742349516651001535800625068352036658255549553348178716081508045099446535001260907870143825973100248539542524207375494920887022342566059265185659908765663436751553318390158473237530055603608193138571686966557668042934141945242966081266474585706082460585652206329089378078200168587217385796497354971528086330196664789789353621243098869353672868664062978774682200821067527557026662620828381437313764798697466732384659321988355104921529020883685283111042094483794595639177489536252926588296410642633379946412388014367867444412659917702049535636563012572733087179048811084016515805446457401024643177509740048465846237106151091547053976721994824306342681018015897328140518766926753804852354386586690242340876612154466918059321218643036686807520683674523877779423933905947642310264762213821200776294925144460980036331357975259409425818386240272566867443355064005398209100213804096495627431901827635832513179027929038819358535079293944235929531921745066879278183517929613956476786509231073123493351566470020731337738059703198860721345905655851820556492423682038810600552235573027864514190914408742413960212193112019969359152790229996994256492148785664128089558130694350467610888814253506957415462574830084515877500018103388426255262747455103512604828911104017119804416684296186231097679447524350895721047223189145043129811405567501826902612469029491184647630954554728741318469668225205708412010245331944061116076755642605792176912780701922796673695160983865147387618939269503212507930574380825503206274564702552109818640898877889335754235995263247539573475395639383569158378632590212605269951139496279823095977872947346830464008650628259429760095059314398792408763300524287051043772005374702841248587017249909858618179488564255426491451481513464866387812540433604921360956475857500170519780561746040168657586107705364743825554976113476076006678686455996884162986698884096947516743499143020163488130022141354811586814534330967535111354740224780852605382299257046211825243319299137332795546455589817478416662533657805174317062716871959266665688520402849202895148884093080054153306937237345607787378767655623484394336183751379053443341585576253315358261812388533958157642079975254214955735205443982182261303807886130986444005725142394257359869006040739040108513687810530495580943772708059638530573055796111565998465197812151913875828611904584116312432664580599418087024168638009485013378562341408766291501175017649983109180375366553814901201055553171115159110303439359859383313967425157228169139617104078127847351252955924869631207243616826945179879083078363862816557947891816639652517718487417372813368582909715838597142277989126556001143557413105760231728317592500766471041045494396164296686483894130139964721533188816096775201907650817529376064487584386072600738110328143504885235891780287971004834873464859112199386174877224989208152059362496502710784704622484760475740834768299576841094320120610733374078254830256688769533470488874598538049138314373156091560658873220828687221510484839127338678221223029252216837407612953280547337628948028223098820318467937382388506751214995696699399347578612372914281315146392491535827668835637052129859328675698583054368637454380695086144872695230637059084087806049697463749432492572421527953346157151857018751798303745808326434600222258683665754292409681833890403404109649920202597144572606288433130749454989726450087490037168581928639798606836740012345696047128797655897578280041511302800838197971844892604219177238112976483904603147059402595910695728328446087941897173643047580295537061296902839752097580228662683971975301287390803670313081969455744319995841131462856614387034052818603626476083204359904309747848632706209170350249977950902796967268788870037470564021117137510778820131783158739637922835766636283050603988208751394177734104645047733578825660460679351840842656115035747354398861813111710654866134200890320937102277234284967809999458153972949357260963860703367386110724991038198526013243948063276240547631426188636180992307469216654898947627160298813004720714555996183189031000827509214352872011844148410183521163810593802192120924384072921755001510779382181215777128159510270833007913877926801389569244218655389696766314589983950607887451244227644298093764527847345635065833018489278252156062505493220817096061759725847142578608099235707715413243516808021436036260995881297803486173263890259327449110522900242949123996100647952066930332514876503313983722456007421771485752318820489968982083628655506323426685224213780064271237892958369661893281378356811403353047564616164922048785953555435173771004787322742541151339479564704653112628810554046043855373692489135306059784052064132733360218023982350640824534613504443874668983843120147667289053653270113319612651728545074429854645286650452883721618715827472789745238401677907145617955054119724530341010635351276626695718362339757518438528783701600626211274320912715447307874031623425047118521953814202089681689629053274285225348409556012517646991989767386281651574085434511134258962523021362040829331354043290216337875016068372809022180102999106155241291939059895767119744610766737623412980217043232754726504294777613649017506226713457567468653314588642643437786902391636201352137411522169396423657703522797709397474373389138747636604545970172697673181610042089473015715023378659240222788071885258382172896541796167317100344735895134752552736323583074337495642211715331079077825208859671124764480980254195267459650113696180414076897370742994084366028788680773566262914836389382744178704359513985156238593015951588798642663306320298608252179350484921571532755427385992866694533313414271658756415288653943162265499740220473181284584006075240460925924933421337840519173702780520650881470568127812150807582218515275358315822656201633673672066060703061450038344931334828266885380395618454756462216311418136099685688840870127779036723544748173913146805955510021674281470119246272306108069643879619705668323574576639823577335240902513475494769852860471676861673030242647431279386333351818328734399952421625135239724006743839548608720912512197143303439874053659239711353262778003102901126485016171844410619339315916528570413156755958715831984520692651023396338791898501158664089887464345222263183850604291917056783681040872416780268620255529921776595290105837345265712204227448153477047015585271475610944761802015230737035658770768661862922765118591152446274641090445058787836661819318972078549085806956323647718165554952867397566606162068470142081502753817027382221704861945412273249103290574578692933744314921783529863499827675823027339161435425462042633294144732907217314260866402532112594313135966305567387538815901758934811405175327789048918510164235723818035328143020366990437117445686610196039361818939356842136880155365183278316590344383311873821759604834593542014127321816062747141373503753329220344361690262125125701155276708255333404859500648455631733980240995164541862281512475064670373806350440533294493882119331489948097057707222391057024458435993121183157177684277452350734064334645543155013886026642104995219918397663421652325242208350939500602914551393452005333635224597583888106125755467409164448336435993857111246522361088730245007588692602621138186663642549908818734246380811703376638311004971217251288970670157605281342046738111055726252327102163457806211040966826853008460037637983697411854339446992471098146703714324202133418736457539891078168832225043600546149771416956381249514852736146991569446723124835557917859578917239557659410627692718679513246011682356674442533436857811664296778901077063116584110799312095858560617116333987269405710515800498702773887541552131765792181888841145513140919529035598762297049631011299213211537703551610848489665121439194357618957778956435245826444402662944582443718370549029406571067863862355529064415995802993094653896182444092492923922106570219019759081189966681359344288082782181998150494294452350338748258800410172487053571159957771617097715228200610932316186284271988115462471476896334961068582823768384668063491136310457658201595017212477853517589640437656319963673909608013016215978892948183755247015368640860427446293308245093124595384328761043289921535648294137312656147417083721028352400829939974100581340150474006019883310722150851574436652695872939437324087528327965669366378817272738662505518567451178893145092694069682645836072548466951286247891957356876823886581693362969419674565967202249742710472792510918106144907786878882953262717155924809473566530620072149580874901187178034240745384661550500971699078519053694276563941268724994817272663018793426354575595925107048575003686531060292652943698364346694761673534033034773349441911798924162183693381759752381429361594551606665031826073317774572330175158253133930598125600163569111273162178288727483247027507023161259629605382760519495869972156903969209260261261692871812586454306667450307869711081656468017842385174004575213540060562231230257569375752715232709333126808259404019922151164308939977444278132715074926146583360205928588641178100747407307095153016568534914882249655873843940594664050052907605933095136579313186084813698024718282437352581730986684573871796427965578570819410600712090330543239928808266078709276892161902142763541451817871917248495872960303590864556377151355783524002645381262777867069873366734035839999036303770805334635116823753547368058556694816107717301054310395444990364940755842819732600866873842468651117816794167740469851349988278678287986096723203923216485213735337383863007355141885462322527626725388231489236951990393924614156763981797468509865681551065525919198425713500263594539636770838968377065143419807571736620121710609910736546138936893281373454790342377413726894076364806457084425566994246012930657037446750636437697190756699218986774817518498531303831638264471791326541177101171649634258049980389779555130079797345021466216735527736962949102227134921002158812181821639114479156746585248739438940238077539920052782988634020628089528979480070125196121055069612997261777262361927182612020625238785137761034868457235557730535741217177678916296901303444173491285729747351881261230681992620088204465554578536406438812682378480538950208605488576693079964436523430360301068617733383523766917685581833669638926775656761668593229988008115972662032422651580931593171645826361133655162228472467212624659143110271668205073121414835568493141542060229003237700202450423449991223373375641844334540238609647216216765050118033297425323570829178806181453190533940818987016758037503710264632956226813168922263206585100329863174775053948171980433268137293840011282525332839626030491497169777453592845319147548340871639241658898924293223394823052572044565716677414760306878445066731345942964700728963076899601829284268816799673612069405162442121034480369419370793155152289234974592468482479412163054538467945265327263434180659432226623927778533363801842893281223850648929105558131301393367076966815845015398530321266306548113877894994153736128958144990642417593149781453788493433986800973262604872834232298741586067101280543357348890813328832506422662037217677740950412846261096791675465508724110790847952185956956433724187249773872537167493419423908040589645289349302521496455721578835817117612271404271404348150660881491843146568193895814632344300874331810588335878454888568299692234234520504016455586043084372900699167340219503397670383086478452282776802022136588409932884568189662422873952460558652734900750541483233122192151665596832364808742663119712180303870802279868948719187166208860864140606271852073383797581272004120858450569274825661969655395616328477510660966295491926697411688288800311550213202837657039957018860991161529988686860547187979903063332049737743810057327873259380516246051944211601802122298268461251277190793561244694980428246016152674386873061717301577015764855499870925860883805312052590028865371610044795218525177421900359405065102152927182138067372721519113863294164253380608300594687490827838222512044110477056449388808704530291261886853270700942600520685819810843396372177446728058810248150318409918162924019010040018796020433953604161103318278587121503793458491283476331505900488755600486778802526627879519217999289566022558499049461384263684163473839167596863848987918254150338142224839152491249671826201313028640592090018143525384694352498880366295317171274755185987691468692364876141487152387100697551831623380944640695373835345322053184079223296561692327122427452416431195875217288232654080982112702585573228231548214406641855548100307589061333033011047832913213075830513036843309822814927179657607747630738588349526664111144989617779749713555137451025600536219053436093126914253913868822639384102114878346575103402153525793655363706541112025929641593236580146754438233051239750778827411004222423319990862996308650261808550847099897524373716941079961035534560732970348509540007160561606805671109963940881587552726097312110772379006284201254273578869712174841828724307463126231305285927349576633134030444360703514105305394596568761785059394780694135336164248697627860754539242135301069789478594140974224755778248299921187075879644945080055187662459393624476607760076111716289066892503245605477862787456763613633085201317649275564202413025986631865169526050009274625089152354938980957141362312150750494235240487635010304123965572872647172762171761352680892609717179073259081177284702007281182247571491523998254793240067614269204523519373160163248330004604454142552652205270853096290242422520503058586072560671329465606503269416498979618251405127879740375167539325840814168103805876732658579527305923763300084469032474325544450979970180661476703310119868401522658589300794577145399222868757912011871549030007358286502239269832088201328304358589008590315943413238431238924938097301253222758864029933322641303930079025196094437979226138470042078625932499622704253547322717591858495925544266240689255876880587526539518780361527570971636070572415690131700098109267140490322440695784272221197968414763531686644444457563429550827133707360035784752432469154797263689859095948579497983855535428618649441831468650156885387556573918751191009627586406242912916754630172146304218966089583124204896859999817391530692710464439009502687806406120015000290541125020482897131881640525387546418878672273211333800964778340772238967762283752710049628682599796520576080379968755887988376884470137452091739069036933189275509680534448869920964806008188183036339594114043898361774804533807383237639652411593980038478186708643555136731343542796963636671808100087625945290646455388733899358240776885793625564720650465326580821186966431950284257685627169832886425754013286599599011035946051752088204177943976811120648935430830077414660956084786356577299938049710609795476200361063603350891171766959703383555060939804218745049461792283524210835343489739600832340930829287007379069898683146603676053811630943781274486905228595784169246208751257487724861115724905340200047531458907058615004053845493787752716200808947233194305975562149707304656768645395010056530364521940217083772123439219192660999648258677724528764010132944659740839047813874789578378651388800639934906651227660497747293609567789731740836121574239845612644104563413560314603348611438908180294591091485238930543300962296055254749366056076419548823429588891758386048096199490157706893747215574873985986409757851429806194869530946992215883733163588720789361831433709783028354047054913896140742588409174880216823819983771970018957578905723695336972126411054224721261140337167299440939804947520279779770887082460258946996661822618882630023066927329149332878123215067565955780053675866327080712001375639272407354564637782205294598557802197243363975399668229094348029290514874118125288485686564426381886049807904671459815870191139143087436302325202921183033631257511084197783199261755248528326069095050816747341241078017033641184051838587553323903930120860051707353490325041236640534457071737507040500534688153804753982260866534029362654739231585414034820083846623796889904546655956069205185562992655276892537028424607778128544157747743123411177359007206369156349302301278741812495608732399394226394445476306545949958277777008081412242787063749071818662734214012784061654324454498354098471319673098171742655342529271156545206500799291735175595731751734760904669934190282889727218841949619523441887028389369401514079930729312112965352941375200229140656897510447839348227014601720214426819311115240207009895595967012337466284201600251966228291670920958822119745613633165286320428052496613110143507444793768058175421857772425019327213696907896819720483237926597426666387771896071015550633526483276066480843796624929862754961776584403751358306144443710623827126552679754806143326585887485293318443306236967793360654791329137524224942391280852771921870603996761956668344155930721297531770467611345547814715184516996556370881046253770799076437614683182827301231831473461927881426454489508515936303555961824605054220457014451013988730710840014938897913612149462593066643391938642815857370337888200205311686314732048205997653556427165242681052833900199798220150220893621177747884301342739325492678181563418096925039436820849578618479797620972687529936125504892229647403885566912772226341542782230385841975013889015291401982755465074689314465315532353923111564124899757494932791646851532574073437315116996811819236940152520871181676328187164857948302651683425602400110172125456609992341195776504412911918291164622265407051890865379134474963372759232125485662143672364429616361088533559128381322915251360484069996827272682677546285200316527064851837256947246091543039462401166998643892331326220161189345782424648665100480387083781092261747055366578574892466953219224842864819281401923093309514792105193316141334824436542639696443037066231334542563055345890878007297887140039957787391395428103989945036828892788288693265003901427298629266081452986159319569101286540424666146177521892696710032028059456558171211097315411691351821657317664570769828579498431741316760769060727734176016574569405903401887548866101528319247765617008009909311063616673972999622700141012930480218133478598537089901003783932675908290130656793351904326591837259356729162469239850064618823435127836876552276718433686774195004408934220211610146047563639823680854584502891402637779003691905140820179743861080207561126987009337485209922693610793997190553369354706470811351470707840490181490940070595815636642312790239538984506175066738747566902150659665295148874717098734652512612999841523621726733710612355042121783127892513238751760076387244257205172883519091759615267417771221116561774016557839608689240174024399512155006268973238622512868058752182481470091060092984091352440769160781610664659791534458151838859954324812443120903877426533492951932592668648678878505148737651867253897213657528253862751260620562355325734721278118266709771963746897953922351967096953496958997389486023875196884151242505799673811469039295537735355162626540143780245299311962575587056664767543228659736501167408825126323610878916768730070092575418871263625588845257905705980226897251888204716248514645912931571445030925764950795339992233825487778483557383279140379814239765171764705702345456706883081503967256367895259220113753292522784087513116714382359091029274177584914381086864214401790866934471733024732878320178546512363454723030531600792820505209307117621287122674333108043945288246142367556091296456455326328386106707801490176236693869283500105791094685876144208479049530548967341171408129394126979825497518915791978571940689704373810486738741740903300295731880224928671065741750638019763378051561313051956447202100763582437759522819675498867063387293383632575974410980017350984450060684408874460322529831481981815115281609322492220893314929651289268050745465740341272400372532726718183811931305848297786302329432603852893019577801431134592168670275574202732595924947043367725396030397857220356602379074140346560181837085268616679010062988328290995083034488805268119477133862965654396428882337126204128038257118515946051674865565825621842430631099348520889903515145837506749006235162877388102149488774952983634672637829682351403680743664192871470290486128235004625349307816034507828743950510332858442927104245462803487354325372601823141092141010323511120385624459368430792012309426906685879128549233542107811803747831377911266699227661358362430194931240262270210364308754169718116832522587979394579722955258838655734123909227954568475271054834419677882575769258211379329484417104125087775474168720054742241744767521129420301985990084125031319564808395021432216442907701827278464132700449870199244072259663556192487468214718946736814277759896682231226924521604705020760475323822321248839006451377539402605719080783080237854704608369067011411689030062102574886702869212281300749988695671109653076780167451527201984979881120125098805652827116894768959458830919837929157135529386939731756267630820009967562138189496824216257235910370716054327093014029398671699567928816512497249124783987242274769134589567905588329911808365726692167349274477665928703831280255582778500874595719943327589448350650402056537466234669010424194227681367531993730468241403552060375129408033658463764686579981305621842539729554337558888707662023853534893026105174441559743576275894376689962581392047255196519757463351370936671960278913014655370605832132134986480561733709152600002233285848511676344984343808177972521174413417494244921580969311900477122767927971330589562301007453372170739930126585149007759201745093879645151605026457532424915444540452622449892327277058228395220787564983796256337466512818462633191612857442486878982483798782982937595575566525110068524247814923502778251706603830812313562615643422528962313229665204895540915316966745587851817090716680742438121446005293743828704566052064345722968341531209561763195712212273210770489347791496461793185808849346827388348920221623274749835149873518029661263416326626893352318089139086424096354146401113834128928235049343470251124526438986036403303757586580894548623611286349469868762218940770383598118633495396607670650173719952364767578759133848271113408342246073151341304807774836069970477174382866750940986183796623338694422400313141699023182293341348784227308316373843984466465910850526750631555930633102311244173509665732760315525220137265525030651812053969793511732986745564579841725227769928185807932859119931846827086927586944189084663663296455520843283416731212351262414372807125632615775237364083066195413409832314663312341812541468491643763093785272100473210683124139946633458431644407993456341937309689984106284947592820888449561126297472011049091224419113226193587754157475210472283043652309045102141355023769824711109858093658335631692967570944772033238140560373870869371479748282829764185938371261363389200653741832765634258521823750043073766901567103767516697189081631734551206715017983705132339400258875218886406727972086370543146040123221339163481882403012147779434960368009205782995652374378456548914281396586873041794665732082236689595185499448921308888255251446676102093251591943840468887507125404696231614569271339603966860653501558849085795266880599612595076706344532233209863748958908918258039957217429736884577709214759923403149401819815313286148617267523078481603745997932452069798729165962693767559772411900553677751708869788895019588297774210957910089307521702598054517001314702882051332285085124499180071672278861815362336372405706628287279101502748072475644652960053630639893356081801732170263364453974544170430135978970411049269670664870274981871069760520057801458685696680230266711263498585019695647630897173331179692405034857933148721725497380940815543917192727718525379995411785289513140977722748154076100937436029962239924696928269236104691899608958697887794610844409502772222844854122202099216862740480245803753214313364080848162680392676340640717463444627799634432284396392285145746475645741830852478989118554651208881198130444629249607265115519807963253978766538006918374696256806009802101481266994881906488169919385625937582740645696787410830907910698103830678396444244509110977809750172869803620970258242074541619776062253099148243812484246475051140621079781760319344846048726434209002252709021399525197624347803324540199406301683570562486137130708015081207172988945213212546225995324291650980301295286015014352920116607469883631097808749658629411396148751813328009911041749207914393244761590505611514965945699731649917166638424860010865538092224257969837449943991807775151660460227361981619427218840867841817710142775663879707385027535061902607325365288142173351872277242549783412034289615336354221630258419219523172204491941735440336835196113418895381840467711626093395464090791790984101840413017362420520162407303837833970066413369032466398642182661451315973095377743399882971289259294139704415031470474590668058299093214827532761051759500672324501141802935784744490263034627177282946428080421270115733189869907973093172334182796160221173600081124012798047040250208890779872809033876134940750003633450199085501896091999992610444957136449691631180419046299911910538907201232357409434621659787820761315484543298903594258270070618689419835675768438483203520207391827085594080044753059589605404864925199335345176228636059257913358912186535884012062059463445342480169150896223929805876128418860459796351661554038499216014204444227406855516497375154173526025879437958884721665418717561402816134429436289461286112796966115340600688337404780844771627685769401702758204734144432746262517639148757031672343089573028677226074660146044427245388802987770943722187118506351314660552040860439873455641605351575234290781557902302282637801133837506011662882001341819554995742268755350759820845861173811432966614087215767051166414070910662648358303198246590614433927120598398031780747093020518636340808121123171962101694752681538732748169645615889439956040966885324291591545494177682240487932065968219486768519793366210704249365658517155786618620290999359334129689873150943263322603602187302622923112978610099961040109762803784481745645369202444149813654144624603305561081658836394740348018015659802520514266649677433360656673194402249972783664871380178953070004449420402347339526291479934725859440535326068440058172838054899528802849895224822874105483940641127165124310659745626567192893371352516972519283182030446499670572057647884434313771855138200449155641322385458914588692728546787585870616145878666065325289354394062380164037811698916400671476833587386017638091463370299112958297358573804192615728650136267806496838547971079654305858515377709226351054662022453553546971112163955323387365918594933818654564713269890355655538145634748727101026089963201118623844665417705449279163796832631645357781746712648912360864457681001175935451227584288178529711144479822117478506901956188111165260982721732087119505469744279987434466337015547212721835571129016750043095356309471360042930295528015083908439219173339101319267767216626205632437951538709988279606645284405514663252830977303714142800020034924612975042785486557857167998006454390053468591934502003677959126468830278212192293005615733855503126301044009621420681738986926000693072099841884101230048745202150570272855951422529529949500255446846249633395411528472451717700978024617434514635625294434738861219295711672574537193256881924897950785304799067483190295889001807923239223167659331837740045713763470846233527225030013966107265145795353205085428108150762500454821128324615817159540067206117825327687371022042952220511376199285793741437857193027918240602953650002350957120415404730622580449870418577627698066685405651939915375824335130278176365368878569734025213815747892982419515423947097781627574986783683217874496268004221712858777370174242739139721690493640834340960403724999776487080633213085986873981180246761644316644541637468626907620277087415258782218321605055038409453103275660077089585948991165797795592161729287247344675007579665222431451513053319592911598291558959835813208491461269604594251810564297581640073982403451270422080951947804524284466532489526060142797757668924360520523501535348492703858830502022152372137325099079640308369641151174320411787848007605575712295588482671419053633895270633063663940423160240173065555284432152957119119392781815251367871537448760599416454600146519619664145248973296770791584889224436396542520840598296149357493491498932644774718505775723103479121192665039484402515433526447107967186631977220093156678838977354785412658421290700204759689885676407812610087557703430546113065257556796542086313239100566877250349300458969217553077004338482575866272541686304347097371209873378335911739796600038082701153046492127512384678027147861860698629447796163489290536652703563752227480646069348660860017968090558250668094970599217655259207850972374152147381356270183238656134465764692337966965313119312588394723133863188316649046135096576343637760029060129654349727293857081609045511412333718281525902067901996572287734795956422613758008627178149389526921678130565719508463160412378743445234557187288187322052937930586283701865431552500043351193183276240024020104689750903579269464391355080543647350333107821292490209389779416415054553422818245630168464097802251830688065992191131605374535117370373130794114016734039647918279518445417764598726747151023926416138789368142573157781966386081141567619028210842164626017306821982854143748828431550512506260508120367845598661967974150801563864146974889493605902204008959557482906742323341103316067208091498054615075645205100865395408766907696848374140121928452244419899078038101390088551315874685084568060189601310782122650741101029024032336283120997292037103265298980641829855069959639523576903698067313969447664370897053084272117721177829432383792320154169845812179941945827895086534511426232870828994163014300250343057497924955183201212342698573792093827020605160680597158781902174347820633415577025285748945507267555141638797493618436129796897351911010503032879191725524378328235309139675423215493073745927098002666561814307571636068642402920359390767028140533126603347113366369798455313104091616114262267664011037635796628207373377293585783643954285619655893724555937521444153340961117359721189626086225588564245186516222273358222919800102976906904435926635229745645452192817421593739552785621860163048613722441081945770562263504334225677441575941932673008199267877915281639510144213361445477958280417604451529003312610848656604290648556134979096813277096258666811290714138419099097880254022359718727695090552911458568142537653213905241555317964534512366500858951695896561701270686072596325449070786772329203827960011126239426770773408193531551921955505386049987138260361888926494516960348839232570498856565872045502901181349444449940368144619945801912086191483662601433802433567971479699520392092599200886666975921215566089707235613384172474627808578765771960212987129032760168697938089583596260946103463983013590850192652364790080076258897043601451780327631173080047312574479374182743085938501833173099277785499474099497660123980393762178093118500504710480864824277471622190607490178815926917482359596042618012330293669160850942568334463739513728557034536478329268470485767992036316982179073722787056130844136507006520721378786671092534884563508037047992769814060652988197320844171608758693264883848082458323431209912021981785700967594705272166347189306297962691401809166425275807578469442546898378853285175204784728812197880786385523117178913621941637777278891420786536799932334270547521659332665450418810249945983742805629611442247247132004666418557035972895000151575400262147436043179571578635704152478213890038011169224596809984491870251662716394458233484923684258815020085476595978425734110025739456748963510746933026926453406639384135506421173402875059718095904030037275809586855450777384192672860262532403529460398683738201151410490867859948243987605353873381872289227480440643246033513148208135629052982350696091182378586363304213685820174108945009020589734386230869919891808221806984734456536288865555289706626857213214883455345552059002576594490022923615248111964597330158738025728148876611559816766276009919186846080164227222048878248379418413981435919289682930325192237029081571838681490745491831798439466497552907983135280902359369658288696140368838232996731754456826053837361807483749334494040567956889053696695026459730470498757223411871816245147650704610325594606180060528295605878902256303937238211722113771440723469351690228865408091225155696536240376940031259131730769409262438568183039858641330959142515940011975400018938745272482104770799991758629828207814572333598045315901586865327382771294499581092430620168531820863282130435944584886505634419702960341210753722548660396393267962413063238683484678790651700544245686475316624865199559990535496023892282518492120849883591573736505669508805608415663810678240884670130602328268931578242053280597891522652144606918787156716530412684348631181355348841990649231713333012943102536928205800463105941302605938459293450754842732274055871492857165374162246321197341090306207368856884130916985979726511406942969229146824431859219088807691183906258240743662702125233405794278749718703456631929096114729090912948958842774889179860900455817995540462406299721457660903891474110546662899271420064399908788152816212897201101618293220344462435963160084613675410856612576320947273003404568973874826544304818369683333391200613080627796373847807670417999191578275438306184034799609260938919571034160885165506366401278645468571134512522089625211201741541997521805399236982765705431967858743651121658099198746170151211800309491609484112938630354442417818460250517437718556601127475848741578548343035817218374656098064493433971487237311612657423291135283835177357299967336709521184882402746524989231813787012211525980127629832947823950819000929107277057168697882847151749803887651116100049068480738564735673026285341268162108721834236052550080468063524374966236134078709611194750439328253285276995964451679149416815535385917814587374942509998447362770704744171040263244091991485752241972519401023739000343153243546214758332722553492025621794619755563210868664996200603374958247923764761969118405431136691341433285991681810140337865844238979070217545950733462370853150790901128869382316691931111895271584722253152729885482761860018358268936216662936385332998266266206482303700513969660097538328567124038907554565611957517693279491146798960828265807175536149244998288811464739112814164706189877334219061118968941213656255024070843727991482757932733000241609228939072230764921419144538659055200267557226738689842016538828770707879990352156770647575873761376156025116665281619652882065237830612397343578555719569693049276107801768087890197538117045495386331546947581824311920630672313913505263335811738688984698163149656997013819877856107918015406232874155733904552430596700554725814026013372465329160414671883725616778053054725105684858844430894705292256933915877532896684388878694598545556944266881442383757255565914265762187063366906602701930508070006139805385015585425549138423873648630678600499063973613581850211397075974029110354473962466754579212196749857473381680895942143269848286383127616252382191224625717989194664354125375301822035605667084660235230914986017751975620669783745013448445238406719947730437721754889869634396244080409530353250771435272562180936666375041585600557586121107673553200589745051712273990238747749993331179072438691625789886881919964749072958807887785887343469893332781587396146531436278793984294331495627450796043748628908742709275934087267559197618669359201995926030192155010625984543985009075817060220168549828045971300328491272491811953028584376578540397662750142746047000097945232656828643407931813605275738866459405309517901108979237831166692144712851568388204833590911633643387958756319077601370050599148607229506203623798271184553724685048401109606566719031262464502892204664454325027373554014102903798557672864105663928053366122640021977179335710891512600556879257937699436334114406419705748139404712532314456422738078454871313415550900103480691904269744147440804083516804499284650411105615514943316706390464557660622235811472341904581662839016256153418998193002228333747496136050694075830834461366795245225583777969657811742775512952276663865750719597988436553968448109053972133398809385583612395060710182897707433223090255068942023467500378269523329712580532148006566862393143277584733452233776378232045994685839410417761123227260133184045746113522564273436227934898753424793880211136087173317229939267772913398403594608362929149601387641065801974662176432827400590937996906562570837261347950547030337775173417066005009281840151585746879521642549273090377780921519273810725337116418200830952906632644078664910983526491530212608564291884707697586145381424839256058363285506598134702938799825657218533630906625140227967109700370017987097919602418471627669640415507070171362572620893086366397954547249856519880630299376439811781825887420843192496184166959051842092889091466755724962874453553449165728751099445207388383412926936151697690340219717331582698923422861611010751454106745070947039251230072845521658461396732886373981949541761827219191697085957945153488987345986001505340414151743980177272719780170434009984494605177414630406456291224953664508708537638469950669241523188182741094344871290941688971128783155593931351435693942356738089490815849902030641583517723779783355303862000769940301964898520137939887837176576094887075918249209986004453442488858369560643764255052859105223349541641858731889337419146707395720957688671346106345413565875542205474239705756119633621604980943446716467882676739018159228941013771202628194930565090247357327779194190382593650346304476051296293638561590751693198530944629985326645470316880911513056011233179834216754388505512283524520012635167748370397626921347517782433747219262855486982372580144244170106145811109783877475680563054935662684150666193991493863078011890753431828116330966797523022507950509611455186299471742209323875998456447287961532393835859615094720655299019418034226542251177470548250042273235990563458998601248185890992314350667747427010072357485169503031601948975282535790426282544103243145892950214621248889491097346810452689610530618359183520557675784280807965247089442550111351322338126008431281621306029002647508152880289312567650623136886885499853508401249013883884814089755071540303380787090359151290763454504753994912670045077857420251461768701287678677395954165561859176542998624099829032585880621195153768891993774743596313323213594156516385794284431429051910427529080850942312971372709918641593969939396736894446628427242775925399537513332707512694917521322965815957894634598363552588079962198563389755471093557453727207967893971927782899074759836431902367440139396287820091022369053437976891466789561225696689773201554953057758978239499060172446753563043873274350639342206610628256063997700140590430641727814213065687949807197778981683002590691289785084187000155446995506283704126259621937824347213603139636070261399518631086492267135591558579590699246846891687284949473654334822321020481093329080386509918763330148562871922761262511521470218218413021146648117198095954480766480552426438586176694153545499520740670513915214310064343784795136357855666103287425850822067769685774575383396475863096426169722155017946683364692343514769830678896837148280636974708206527939682191267084022282950722068679866507187474893493551211091496710509165436037355445073997388460314456717191905296354630931880434352423925031121293789748366808636792278785353853683544329095904875121852326949309152011033391891983692252201878356367798653740744427568216802041511018179456049815048787048796945816253027702044744301895622578746522991826437274841438443931812833489858551128666591391997318099390904999646093832543687625845638573052036270544795527073224137659434175389628651698161972220639278502235770997535408378297076883283246977063490348792047941862030634920653957319306661322167298978559016273222537910271213591207357027493752443834701807687711211375906450425158932300973463441994930308655462170959849935081567941860568590548549631482069648566000326239961329666035701894951342426261281812535578589497065022865505126141797346653993719798991902693722359299561942777689682407710177714106825597716061041142643367648196536716009172068160181129663401517398019806070723142464902940775096077523006499452960656845221879991079809477125799659868852141045258325287128381319130885724445512926702072132402489764196166665632465369406329099722555044904046677792329100542418158750020373519061871080877115794905780707668308134864300301048802136930628954562898543441332910132712428529149967616860956089933678444653514531454207031016937349845852430155082629348145650460435300212230387588044829268428091617346801491047096428730669659229844420040637676778476157005350667189731219527522955980405827317522346715196089255460435472995599441523549454940339189248865477679191013502627943374125372460840409590245035501970030895963182136011202687791171478424859890779001717479372587375865534792070112057886095865581406476186550869970112937246387197928640718994546888082421866618846559439382524930331279704610665232381346182228086180829618999906027339403992522096938238529152277191008999362238393389000683453724391715762847833475194319267016300216716007100383887628603732139734992311171048571801773450527329855588078453905090218364877622840238445349478068080149422803452538396494319346605586683354877191357779523345865907394119750944270092763483427198521397282631561958726689435996619661174225238069923857832168765474353148126063199989739448393686318050157887253489918278418908390078190888739802685024447722139867271294142063969393771525344395758984819697960557212666052953589616499391727424535236954584546465877680360786968444967861270078691971999790695100985532735945365280531388578308270983375962984158165542793141566533383560767827048345976630217924231073684142826135522893355242713603342414218208552688146814839859243999761328294840455313746574304370737175653714020317603602709176260191203712032729529884248294269445122025104084148260229818130944972602533644846349286938099650551753621979131242102517984612038534408407383629313141524354985327369599974939514625937230152418920592158563741106122607211249117624416550547567962713628851784550319219537607823367682827660855116957269742163674656780325776684621205802322219216939495547977355929654103353056576227611959548188036632322540081748967825255216587894837283185283392930372540350885718865701469855333452950149798157615481265451409312159615742284993564729977090377275802075926951602371454725964335902139858840782290000346137540844697293851703380137962388476496076086178433060036601761921176806980122025997497663892858455763057002637403941380537030606769665090489946001617666400448204288018198989581888753660921812043996621451418150784026891551545923848740351028240518987675875965440432579410578746709765293480265458300598962801290233704417509722219679159113474463535112663393318920319367774640464161735755818699220829955978745683591020460548834675194204408709004178804715577747364545733089971905142146079471968470534859173127038783688285252622731329131740458156308575731537115832482617514520369478076897171602431290963780926398504797935591943971732009014101103537227751580795481054320749964445606501034641097654428456386429323403764827030496146174107656984016231442961827893965428657263871165414854120178517954391244810363351131570575091158665823077563881241220243705307881134619410336327222944578309866919406913831573277588853902191159015296253423329490630190216623820937819087466759825502461992113868100654923227437511195397076028263293763682740267713294885035916676453142581343026548472395004201869836813859756710874762091446084147374061073613828747272887682057795171391092382719949615128134533100137795548507286526127648378964604183100954786170662475235480169974927491169493858157411279587626307158104779284999610773091590510898455278615182699827798226897124621887061407599838024958975243539180325336119893900577376154913687049644371734933619799811895771698830839965075241501962686477535261172600795365458043914272453223291650425581816069718974724320704502548209459942309767205443230631730166675325791584601345489053068169547124505302532276141189056376718256102037543492947541862265373049877267239999642651161030702958931487823608159954416525815569232271302040397713306180957883351669751681598993074416805876151732241244212110647920133422276157663084184197120779900256604466999763556752995138419346282991022113767024488156029374413241065451243604495216349983047262546494588407523167086740367844254114041512739617546293984514991185891010203187350863115104973706717602574825550725414106349828289084900856778655574543376273854285901827148617965531876758199349129767282719974732024904778016488716845275019398387972586800590626591406915936623548904825023041475730378173454701325480926519817227455509431791021034297817039096638541590778508755046655554764224047497517740069271214696649901719754455890796803515134699380951582078887956442399777678378855746090846165880940876855917160039457950918527938950854108171070989897753508291170304299598442457690085603525968068818902965867614118452755774781410939684167846044626382215604711219665868903050636077721596482685360621542876990333970269945230452671277475613454541640995364695797219931102367652654077234150493181083523665004397202015457705476115566217675590751570804687379568508440979402290631588470363715105815763651063072892814132395211949745081595275875452387722909569928436708871769137809744556376124061242080075217800133617776566404345957979915118487404478641803008694365936536513409094540906737065390463116057674099138725572516228038342670456540032554241240984935415211088775915556107219286379844566611469557633074223133253463678486666329657922797566981708914490366435251854222692681604819061893570155570360686321012478889133002047087111362073414565953843042810861199598656661957149341344314164231170785784118039289110756376332044895365338197591136718689359610572388074350029618974344390744298488825063597877380025883346431398226485412777104185989127014211291328286560726762158149403252056542355435808579227027567575557743271022083699866515348828826063488653870523667498319455180644568855477842359823291993080221485183005515341609752231113246932077650569224761443400613856333872757647134991209062198589695830820563684058802950099016905275960714409879343388348328956757198268455425929583612737883517172273754225891256771240384673991316615617847483685019354608490771517045699810727886979272840834763309532172216960905867082068546749895384314090185769972031040684634116773917984343015874136989845127938830768249228514116870903915209470237412495021800390211911873423551587026476250466248590011885130164803643385797038767131493704349558801527578064894379033294630208430855817517648401597451865956463709523077860342932054390558505615962964355254547466984245001314789181064428372337206691546623996426276503509103032878823430142702064404588700767526750849291768371721746522296529601763329404122248287424176255908014221834642266895955735201857450060273532582436699145845017376659033730626603259251872400090329130467463804737408576170281056393265188792003560567860827877235863255505406616052340080395493554442904547574525508790695416341947222176681997888450930456043912731056250641276224943623524765053835448222989649585100017502252787193980534570663324782858962206562681650589474177137084891722595681518253515870461304706015252065721432910046640268640908526423637970785666921586340207052589946930456698771088522466461686343719721324375670845983586221717928231619647498545868539392367635030525008290834983561583777131949466566298077513029130557841332769618035876086070216204732193644236983880046069007506662103156190794433526540514733784951314990053971266423629070701781194472604049631815642984382302439466039798226765415219483630560727038338545646576007282812482878256781943288753023067917716954097329459156956432933204237570226384418543367088935040327127753821995406323673304595682023255665661640238042695800410321930722013720532848748621355484654414592885808226340899379582959613631875925177933548858022772085737831156427324624823166313339997997237097303654703376877787902702381477814834707462738565759973652882796440401676856294465785022689301166431313771207563936845256597444599429504561379074455725093416636652095236570586066500379581297253658932086807578190313998918463067832113975870182335148394880520913486404755895394388017189860460160395768335787350714136401687439249316296140148515153796522923347104947287827139540441890171989441288913659455856325992902887258226023706311760840321386269720139965195729160248699222283483832429300159109882171271040585024788545061800578658515549065462860888434323958682638595992088436511526727575006041644350245699713580577918682774320416120908566092573623096077540754764109473808866273528590037751937267490285154939746022624011510619277020518338179876398844803398570182477880564997501643193845982616722374278011661274990234039804145801507904562136801624190938174939831483916754970862332656070602469834734004837324528625799685740206973690496018542357648953798910072172245944948499631399425987276483743591245157323574209322983125035969877328380274024690069394386213097192374646179022952274263310730957097123063078532036558384286028558634262109708354307316908209587756621610791032335687607735748049661056799004959705624512284225526250113824794567185991782965696084527986904511064851369811193515201767214398304983138551874199808708239452100044423009258196185973186910219199631489327567521717146396453068943529739787588980851805500526827796698633639904937725625723820005367583956295457276367646222087812909845469860318321420652032863012451263890892818306120568375717067938678492407995592446684622975885342409682476334325563789440179407294931073442549805220530015253285137996347314926632810176269290209929653221809577285560896569831730442958492919251259997246181723857450009499682843769557318024619464836198974127645920931951785691444994935438857834420313695057330749658683008048388158461622386428163773613411061913987012052711887308627057533948184101710814546497061061118979165769361557469475556030193443385826040156149380080493007776071006518234102774064149962674204443677324571333909591280977227696799962658656879927653645566041562230450861103562379987432063901460989383647201936453845258373512896852819607694325323513144731746596578446308790949577354774249865108978694051869729762660555405892947755510844314968396614426507821566856391238599375236183244602381343775364794518259924565134686846562255325943969024722174853342656605854054732568043702469532110214864093192693227918530629327867253482952802068075978056260741769354988593059236095994648715062352683865407568409170587031282738211318206051742816712504234397583565030076425217161924970683440784978569331874749904857510707111234002996789256006216175202759244746183292762177900154124749777933009244774171856114834593399583810007344209276924294814646943932739210293916872572701517957042311034293423726735780321763724567415075682464864515030064458559254902405519097498396748434505982007386093274055915732111379159406957110342849478684960182043386266267583808588625094491916563099136993762458165873168050821031410801582768407300690593975277081848876171668405326035605110583751052960190115877309687410916556710781374837095777245860869658236431512259617313513861008769944089412679650969218279630417105194113086144099593803023808735039951000083118731410312306427314208995406840413233352908775158417300555430618763728414338925130890068948103293215880551732126954359632365070108120462988203914740510459065367538147708628739858217546766801436177878518665003796154743112816284912729501524790317598472379736445642484973941098516983786021277820550352764742557275336241146857242561208801728979060971968483478356733009560188135845529012664534149915665290624147011320351943300048797463665332314644797266271361693662218231152516273852745354362098801441961868315848331078353700882843338352671938188614160097448222376919158536461843018248824862228583161792524070851796114353016887623454415825005436007930881023814265624829994646057891879642196150467052726002790625869189375362313874938187994305682752759313951847143110926464523882821575504478603166147389631222406235150526412768033138054276785749780035831272010201656370994191316671626716194235177032458809995116342256910370200673011729946735450449878451271776672624793266097904003059608735286943169316721811669835898371549389512548944714188978585986639640629464471442644834810060485084561997599061841452020084134955746844891840103059535170601504133166972580139546837416322825019053636361358965459135087109115579364885395878165635477860999361583259013052931675255176268587550107577842061012446248978436002053323193905836849251946495255413477512788461814046543091860466050884953306333302550051420085146079494528829284714977058885414916939570949975854098119544337500825440670747733410625354803073299224795760674668620421767564267903101620839427992647943626584312017843042806281294376504068396942061609672925293294783849205469137453813571709604933386028659355924394811425665230879734071637534747100121978132420637228356737497339417724135754754119929741345365275549837450861661973392385916649571081236285866375495127088938025266078092669449459651326615690698715398415555435481966154280189133760360255222050896706262448596929020815473704755902452614115351916758997909262955389670424456688180626150204877148797707564274134509226844676183938539298245343678211633180966376890770005393227158259909555773476396317847866068142150803952532964912470317639214244257886465431294291271312384205755630849197418760774323698653970808583301239253059386260691119377743088474066244443595689636788060033409746829109324428222481897326339022266343473354639631152946606631380570485609695489265203438085273810287276544776862357593988945409390688407223578248798089354498209989457984588579555591153117020446842655238339073213125899484795025122471050437433543428378164803277865891773130521465717369893947041354064766595079103189634836299599317466673659709506731268581561834116814676061856390642047097029723402066762375144913736578023223874242884394754379227921726932013725705862845833188902307693583194786258438843769560843835715828591038420962669065512479674515626118103760956422130608655725230834365055188193934127059765357157534831509419003501591237070540932569361175289347824635791896113283968504539177005793192863672772855942784208583180012359486566988101234606465920791329322244116907287311608694298797778106654607724415292425563791236971495743404426803221768136662468042168722936204059596331692884598881532947949641060659737984254515737915385966403632499488613538052039634211539765021531113294376355663449337407933705060031926348749831766567026227410880645323643972036551576154329924026221428135754950135514500782165006355640638391000776660992135012702040350536632187467591052242230347155985112997941582976042698013148416606076933772620167393546919759136197359462183059478943203688290351676216703596960885703066606305492688197668678295030457334870138053201248787610956240794387408347852043428133821387348521181907707648214760801556419215648240316141026624774162512544346159015214116591730124077227700860194865799696532763983676713100486885738460981613700579825727519720500996691515363781751017737883731223030457269888182386459855735569975222579836508951312886529023941706620464075289609984886929210366880426044169836232664505687302622616818364816667692543062651767281529708368016417745579219285814336468513038906433800944441416630249707877106379852713506525786905484795540418617747825675688075461098186738611966198641000042276857907719216398596747813370115895330509703108549287325535570347755882976123042810944420330296348432354053283194818422479521988355394921610665680678821302247363054062479727171821887151675824316739615441631212483521050093486920322036482894538799848318484979503333918232706974762310069070029147986111719952139782056315021908049533702146216162031840233618496330799711397103896367325355494347499014162857282488706471954803778467498359581217160825897034085848966739461628337834802672707575104274027259311815113672892836501924918443354772532767509355952596464791414590824875019677698375142745030319658592983123869594393357538032262565017712045014690102133794338591937252912881992328120369901925196570129373202817669391414862210011215959730370905621722054413062150320441463054244827205347631194695453583476614689340003097898127193791381200526516041029981026983000515988890742199239901784028531358682232683752403361813655800992230856824542890880648679991542624780344739676409365901679087135764865877411194090956952246599734423096421625388556158788073300544201407198989081694044206128136769442112881553767381178241551793689583491168500765195556353343678664062490130518986821578165438805738741459245265946996856748999639589195093125885465460056483842413826736576536343124285807089504539534732125571298987861826807283835669704435761770012365336521136457090499480223651483642690923793705157147074600347213237092075138298826718436123225699876156657109952329930488089439865815700722976639364598498091073410423761878701817520439882366938170529748273256532449911153034390210511631954753129617529604226985707041921246644896580121447168664532216660022919986716706593657818806475145854178408796118053060067735929479940233269731753074381204179941137001750923820702859331205442003349942810797699024591936111478814637242942951666886961820607256957537134403494738048981835580236772106714468865075615134466373176003770807992176680872338151908465682636762870724817860099888648234979980404833577689915203203711362307496654327021788081466887072824936000548363985577041633297944719399084981632681894366805095092315041726618390930083018861950549465555456088714233542083814772399101189667440556345726237637617007943318096894290719515837002756942809379938966612115056494150491605908115982118918531929257204498287143232608679502231775600597126821145969923538596181443835419914542733001443589486829139028594839582212631607394901952177960321771581064054407663263540420071319171678123306710700681655311098356280573376450336481999942242839457948289875819601259685624428834047664478085112423253941298384519081699802923837412693203898301265770087594628752783206675666071814290482586281187287410085834898415552126731380997440926345162948910623130961032904830265449989033398581777012579579483479671119641222796144229030508248433655174427122623450040760979814569586933626189919188242743456096924939708049759705293687326405486170940869879274337084339804217780939100895268022899826829476851188859734290340757952784763600082451428825184776567179662222641056629078675239587265889691618570275543378871395213821060497857263045133703356719661725282442822088835529219875823993860484424523334948025761983968955895790082663273862293499016695425075470717005110435218618152070301087221986848564498865668167500641327122507359905600871298569516071726462086294929862745724809774432955764193063917653858592674582421200373726935999977566042187682640570188067628896598010927676757432852843536301885584994236417489808552250662468797160060047833080786708329669567823974846170941332959547895882215116676176009345493189086251163125556105261882687945620841184772146791022378931521476399021576830788757060419466829121347042581314755548721642190973371803220386559626913623440559922026215144044020205531125490051897698669242139045498476356694900566206245313850559099248128092227895317259525705400605118121496893873791670107911666676163178375968526533211731522297197308176283482375848948624183958469016563996801353946982044291394764678468769798610110717938724029033108858249457750328914108555547459002455001035087627879423315310618739799786880829283566300849776931946524035860097491797459467111573540167128825702056938922358848738499036486642209439891873739080821152223145222711172129690997122231748010667987862256460272522892818476790298840044833814476439884554300582973236079085463863251385949788819634673802884777244273927617631977962551678042538232473286684684278869522043576993630649172429546635745635015397871492592072936620389283372690125248675728707835109333329601179876765480823697047511010504631117875640140942887491958656622906606101594702426565398636486230558927649387733700667199880670061376762122502082684206659184428108282492889958348008768735455323147836076434677020454615430458681597679706848905489155832494211590946631765203017111400545718360839840202510403840148788377122253160855690982293387540428979139903270097867425492803329554041378270388307041987272731993550036963454332222753811360192964288390696557346173291156345552878025797620618250227131272855570402468911200037541160095728963236595693448468840855323570290961153618717316874949679162028813412527225714387314459009182194900695899037307865272868696273022174777070929752229767580354206683293593346536247843788925560400106845643582011580563535353777512536165691261629847942262194113985026277426834200821648684748639444279107323693419632791235297977801555911409350875214145794370225547779580365521028034201534415795359313315037766794468364549702401551644418051639299107190795637021033863907549448622005886817209245047853900600723885979664205214076715126259706139608393234209111793163497345548038229277774100086398589867124897782122427744481551956000847685900704969801436168229066192679488623884699151400846128990422816522976411216808578013424150290901065016436259167865478052192924122745531803615218404313588252866876249330412913766624874474687229001132942190413451782436095936958413035277678027169295744846991457487801341208186568416344514829972875269116150043314177753876691653513109759610104080782682746940285052748844079872769959678250138364444120949250934868824808190451944452944683212741824252990724766629420481212285207970241827315367957240447124072663215171897165856552302021467408507805148508231871056842891684002289099809080976931855360414526305263970543875948066984198532147152788427074264411740382569851907820673510755827707009395583519964074255533670461671042321975820234716038474631694581357580643492319041018481423760356964661715537014304676649569697341457488235188301394451503214679546556594408278462176961891801262291032857091403025129926003021721523041462004257577149704279043836573993872440437558712508601622498870292104957795185841297638938657200127020333149712912970762405250378813475150653884431525590445634410556733502186384184459861598241242768100803644707888340114813778250568232370357118278038071130015017008827828501787676634006422704015830879155165764976163314359894705424254419768236386712486492618464897226230889243422407315112704639599137934104994824618739503122164095742347563918809542392677041955530473835405554221636442206251841062119223425655557852664177387086502835246146104298831021091777421974266511864509454923600845152725716169698712055722484085495689718680781265611681877280807237251393752075817179164992315975111687418736090938437948472188563919884175701020365063910186891670853785325399523310743310334431123545661302071097254004693819172246333538782622997729540543466176933290267696262229647401659465862151286432670041474966889450024517835144538315027972217948047570967633092072669341054616551303227951471021198228524239145451205737049252046039657900538416520833631494756604697240232536388036549770527142638903136716297537426493986654940823290253049827449572587831314722021542569912273535342612376832359944482653262176814146662542022230144635811663339956894748220636642912218956048083028771264260891214812876013029710965007519393938878588459067871083384032759369578555396533255118218362565130344265517950928913768516258868772672101690220514548265526679226341539961849864429434850104394105877704266318948098185445164429275578303171741304948254680478256811468095234213125942908885806078353313689451915475145727316142152165454555905858895160269744596070080426396632084919426348542829930084010120348920601166266192067958218772976251829381771294094660142564731647976731246607611026466759992433746978199195933448907155321636695626160237939466745097202843688517604055737049243724156713520502636926290418814599596441839324647008181620349530802586590504104982616798829500195771998786696306400465865505858460046183043966088119706821879141525103665286361999432463251908841788677426345899947604609780364044612720719913562864423407244395871457168034438980324185389222062907522341848605118466993517531489443550368774833061051372307910090160573974415204507096891740470231212261353501832041735629524255240813672761755709363002525385646944573757170591409736497602568282227214562303965031046260832126482350444470114316220132473375901858010814964970344707441823281614440733393249056412156321303115664926079895556093208965723341089851450238178007427198978821039932998758689654091327822496747741253995150303210459515870877464217623575606798850730025295901950037583175477206588398881467660177456542362982070029939520943768633904383791093919661117088817615845699207121915941157841473220631269093551279675770153161539995103725630539359255449876088288240469066432728086367208671250031140793644176874990919397200421290064478834296780639104113565701634921192454903934576706973529645886253597534902684721862335647289335422206674523828634429265669980074493983909117071145311083975332301326903903805014126411567663102350032873118573461748180029676696889889793695341401544820686426192088523466076001309999382162936308747647914716240362994985358066237684459540685385605281370411700008555121660501099184161589456715247451783856592531129644756872355475912756384116056464636434868451567025867229245490568421473764392172992671587791143237592304654233860229714551969247585939241952932392737180200526819355287834490958557670994693760211711763022110166593056064954693583409720319096382900419749944078179341869278417013079216940297184028597902492790477118935981261368988783568159688913208282722538550700011913945664536648916202419002738533259059960758381623398334794898557942644612883347892791965297868063238516577037007434827563082969456417632117644049609875997108969977304518923414898303342042049726323564423376741465536226124201163559388407260100103001733151544121117663348737778079881138528917269920019850144377007555251490780387457578450743453489680225198994047049410821310288745546221826591976568125162069310301770073233211651116052643368265947882124728757756029303701070538346122892018284337372203928397265427650244186688312831257456885773490548938132636886681785121107115122537306818196462063932372659741188651654582006651723269742086156720848558112310685780613065356946959884653418910520562795368244514554163407784517770505632562098867278017405629702096239299786725971103019931890587429486114603649235787578083199135260517698915753892786366010292555805565794352096652374623056660305426193499284708781531532507114790235767828461968150735308671469655860776462516341534021025821334845216414004203992944536150940568817680870637084594551411209435706535587987425044340874339805297012563346191060847213505427660926390873557526020757874782731209338131992639286348527377828929729829361557740195807239140506959425604952712669964090639705833093247896404187122092172309208758895371015340421261621144848602514393609874308728821811534825626261121653582458093185354246352502591501039285279822188555193916492758161458630567321262765428029686781292713932818495009825694881131896603341578002117921861903229506748516354816623110237061228675097472816263489028813697644782335518503767813822314224211218772228491955955744987049709956817907819594488143024232980531975487500084971498975944009697128388243045675469440441247147064464712093195649552075884182015199889623867728242778322981739331801809402772307317995974301080703988287340788038315114068942110438646439641436488231737052636354008062562553647354242065948830369365237989546155130894216433227789186873603985884074848462461844384980049325593868119704100269249136573787187612007411010218781314484697067132705859180647036735251466838237284603505904714340661355052127629161333632643944657858402151638565035100916387332394908804084829844757718855088311537986356637856964166569690414167760007409344042381683083546056163899977618152359015275059671570560684284782811930395894873336508322085805046856253685336708767185517456130985022524027902199062791367024720886891631909486296436796227268891398087205963861133092190967331670216201177022955690076481633514483231054027177337161204708223786766267683182748651893779035281832721133689148094022138268274097079786025470686217209918738223766696476234770712331327226201163774956390832036647684164823617391951726900825303181015844288675521628254071137923222297294331128212079996846181136953181698183570038710619643495455757045403687970454100535303752194475668124623579691351309819863157344164464929329531249507576410997605397542695068458755448613851028258310487722624563254808719727324966329783166107644253105326198161415545633532965978512886856786808713754336738325157381105739464616275234244964407844108646463653151701044189487521494998459689159113872969110782475686889805728412934972224895710765152420412838468713675616201962249711175316399706792907060379167101308457539794762268188573827053809447316350585563514644439785963399302685671115772613086920902206717984502187731629755478258009078299099571846758038993265360341693731892571077973083291330957086425511755972036565090261642784885541160565564191194648564909671444393798637510742240263360774464840794584005716231391342970003782355889153839420690573907604727286833094663563348862197812723222729974521845223861992468975381604936795543434529706591238293980386100474931580378557345473046161534060074402776217380350036998176443911874957591325944972415893448182652140363966380811517125424190389816138235230608413967661200105561903472537681609943446857766100860652243959665600483337267745546612373426246285814010819883063288918722293094604255635272269843436736548290126006410862340424669691764277717359793686970597579176144575872767433096650709948918478106184422684685690844087165107599691468384135525309424500091538650025925359469861987991124152066714417381260122322629198817658119395879261931227330773223576671112974460138523619208944267434098176368938159815481078992601321979996990105091183265278016401409565186736331333677502948355634133397948542078925003325707464563664321665140624510992117539097488826144507209774406511882467578979291020759282189854518151964204579169912433465862553775080078971968939718015198473756119289221228602824652514186760831399029320041495541039847178593691447342316843320415426260514081176726886074264875557801539934465982127229822990007657680878681279742260118129904276885800725238812667393816729713797984875472551828890167826818574582722174760486429361962644865635824823699573883011095230687271772458876633295355737564092467870782380138987578487202958441546947667822646285322464466653790942910088536485616573337621074453796109139276147658495772115820076836234346785839610164457362576434523784493377403179545030935050993287952606552837800152907990128988944308967980535713848889223282294066384041754120652178720680946013761131385204366670108523786531836493249187227575234465882950957801880119664139277826085012204759225087916372862770629100131846483140546198255838888559113711789910291904936531122115074400891652667149320107915189398893370621386680780932846344585170691264009367710427363079890481645596035071704198079942246142880619478856867329606354289704145518750728656576917624149640784276306767830445489412241455811545468457246751552665407088315907875982396620726249318312634094161054318630908476174051361300437307660646758516588077581404439316165801800755117998958670533185805662166549540387741555249182567209705951714694370849719535860840710860807876875978918260157282830113426001128515843495949270151674596571537093924448358597394654564515268768904708108572465601448654187253994178123617089422449436621464862350161933181273264028572212229708635899413341684504363889464462477289002775355621690366625036729796190428392653171658437869362215036783373746100268498508433855235740561449050441687114540802392452183419981788076217096260034111136358366435553033112518004679221357656447100455527629503548690757067348490329164374567600896986621329763319321622941601253382027664718868224988383643601076487545313425490684960353355948172511795681770707496148114008383222367648564182016070603524379408326947433591519537282978879522815511597142233629178393661743453775029971375120721044652209007518681417625741584571035488072913084294994454664168370880671513840508198490897150000434175440519010035796702919088745450431830763575689369363934675384977056418030689970463791770771180704978175433246488412760905108099909579322031279504186555698327604138445118695942574171412412247112082479399262296928554060025691909026392538471990475203318282509174560519516326811719238098358475685368100256554646124949216623944560220943620801534263511277378336258621456198000523801226031997419642226061547146579968472695999349135943838785179011661223551727861162509205892139595463708237757755259110116155585619887078946230125743833066041057858624816723558989653114676945430682343718427430588543134295266056907936943393830145590757639355265688034702169461318378565381435958990314683592999227559304417688103815162929382920655917373805305925845306464513912364342979416708438228067239023933175488045788392293124825706437050717960283137384657705818985592914343357272285783760238520602276856846521847552733980533888298013406682425454047680623831652892425999901536819578714372873337342851527270292557434461804689258553922851116084098424170485850934725126492188905199075737645905774364051723004714165646701812858927026190891538675555235776210675048088720956298330210086023312359796339737102742121966972689555435311973599909028122488421016382379016112666620419640876435517431505784108378064107831094032925036111019185797258482167155934392275564284145142825052732572660077955715442150545682322499817305312736603024865693225322687177976417904011451945538582916124520261837580879708675178173444069613427317659210502018336189436825225454896289378224789571446545640689497802726719132069217024093827838208942307519946385641734040384014604674967885354452085562480376463968119723591475167922053823110042115381128843935941463192350761210148616009497854345861525655654330936614863437193506567367352879590336653604016336899848194257452700930808664308159659065613754222226985240595273231850395770565000540366043786418845751332998621843905791385060108475487005059949732010233689715563479330059246458175440994682303859285271252035994290983678279990064539187409732474923446462165627131672379193232422796475725838974282953707360150457589877654798771843274003431480279710782606689648663214209242404182511040710369518760618738246231114176481645673875099785626521132094403028878704274377247070429554316063570481330805007413565890949499605756323709889566700222756304520473799164012291417563144919275419222896091463791322828949180102922276551280675643205801169447516621001709169681222412820131508911661769774838435136876109017065325775551107984808722505003693809458443293094468985418136411981613155611912379579319772687528730638933390610282110374336387204887715939499218751218369113781001606313861667048101890284146784864190440521659161853241617196002130480337361366772444203627439793773193449588793635673888879460862091637470953462061671961079903670722530408216576528830512407172919546159171870869305861398377665280731036221356193946284623577558546880895053922842257758867749045873704309210359031296583156707442343591915710696469983485523359941454278384258596884566471454099979748471663045662322618427074029017366668134940142619838637740249075862003585108623424774225839997171303225546761322934533959447674242983405133037004107091972039682126307325768215804525835326249152057529034175153680938948512428777363728640440363774683254942530014394741823821163554985576393471543900456186225316278515680503136552884617589665497026704530384297041288649034683146230966784690726375153118228425116744569714046188169634596439443614936272134117697508714268488808426972835354232133072372380632767413751203364391366497827621570940032239987841963028021876568738941497912703812105608877182960255606908529802901073482981324954348529831689581985208690075748562708807656625675066275967439572905065811385489302073600196467166001144145872597751388471297981320195652708040482621394060176784224505057219995606274700310103265766893555466241333926351987878876127482674957885369084813876380488833370540902513312996697891164345697018687552695495924694141327579438961451086609014216150532532285193794167427137724991950523907503512218220796966861373169783409379531633330093164499940124461252017745985313925237109597153513530130246056209186724556353128359791552675149299910594253745285256938813620208146896666475380942445905877491381912833997995714335790341660356821831357172680179635039548561297464762096775996665156695571751263738466235825171555127662189772874468622948610304592842901216393432075390667700854532843110510051227735962366660807560681891911290121960210154590889971623973358662193053108677555135740099542038406904379274179679553555535100204766455257138267671072770553161592250915999141253748762414041050354662420509598211022802761409879063551176431102018109030406099817950668849139267927909888629102153373428637060612937343323320018441430598915848226854927361866460002113666619651641648271155291330432258543663866732970014555912404723588991403623329607238625376343079069843569034478271174459871820405280990741208157941187580425529225135203749419953959340375903976500213642921633536254822444543880786410491631737194723261845714025184929317582814562724022308595370284881474481928164350495188482695068818318684869214164679275281299735084981054102254992584919429884858219921602927624454279861516589646464665706007794180234872662840749300681592678084236141704014956894219574860324546973119221476290511809803515063874513448419225294478006690229704444793467471402989302163672294646002690442929008491913742557134069308959985274642816591062809176563131951130170033738529044604368368106521573854356664155834716261879742691515348426178728791450405510708102585477789576867862304539468310209273852842035684607800288091045294970100584731583900199118871407415459722551684569238646446566290632486680817398678298181908914315830741466405953252212167083472087369735897066880880088601011252673470002761981021616040196294785472215402349312428039865485459392643018774579625439128058467882204140605978132272809983854238000253159702797935875191293272306292454788674132084979469695496022816893365186690034058488148246816680058119989844038874910640430710087800702945390999038937941188757067135539450375038833834235781620998601075856056911016693665829473086547570606773724568531930029879283915884235037078080300861239921551761241497284638470612137793784104228339778393500157211544046372579609023348369972117869910157341979099457011671288610622680283446795723399217973664836808045965306819926143392867738084838096808127757917656135101693862987287125155813381187088529682247854535719840280680890135923575798835294071266344711703501324580777843191105047057256186388788339125886681114142929648151756938784065325305269780096631068709837351967019840658532338968936851995977538409734224138366936725312848308104689869159303352618798233094921021579268351355087193551501202129799826746728382320683603959941649318658009961305917783337685890182960288426718341265297788573901048230593317340553772566477818767015771268458669492505889427912651487299560704563343848081334347863094286419918739758254112268091129394628806340412861751718179155275660661505022401431186910934078494947691402601575661887058397265198049227491498284827427535062377475840433474244486990216477836337236056117705294557286673903854674417501526746409681942704359792628088395561268391040378961371264526301380516746591437504047554052494640792808110261075246557550310610317645004507227229654170733182647479374112498304273118616968326500617294428214848655885501533790958310398246359593392894928276509967375316911490824563999005493195151128558345874631687715382086012916440174172234568927684101097431029478788696132618367169569056752087437085756389700834497518552808358686158550595988346802432686940799121864366131609875992776926027310157493419405812355964207845668602667987502376708365798925690419487487880382419260000512787484465028628550430101377591377837536027363692872848048091656995659867554571198606255950781239629099362479662101639868345044984125201588743345802119038861333383830472434552040713247298281815323437214554983919375319318586409184465680994487622643310865299374715073155939574594711594231729220801934715646354113909351140555061005875092910314746851936001033415406166008789754739505503296646469885226592245287523431206224487912779381802453847117251208424659118271671407663133881115826248292020675032150104899803889051299879030436171052363212855374025280725489091692404786560657600208566683251487003889608559016392097540940168124163534677072267974810161814128120764247295698413991388398093566929998447695665671212685012419798162431347852275677987155954552483491172749185092911120543154512739879571204348838708330829184844813122880395818781558561382447140090420845502424563298486809519536640309517423868093585643518812435794654734455405064754168043708543237283647214645973388577720372658190772292694922989048743728166456071596199549153424148896316835247987290630300819868243889467686305872466598709279633866968313397089041117284790320435301699168870059855972792848720015854433823463199025496676532968195096327856842542929940555936856055526319802606880564626424126612223824414809848565965100274650803132221857067039925331257768784654232619875913407170924573309434881843458140263859090211249866444090265701731742562309623108768447268317383061856604847372867906175831786062514515639948840161389540095895525490890054610922387345327778272106604069004037512709559228430922947696541496798291147374714511511462045573562715046784198172083883184944214027217097846818376359888702832627206433496422748987796192723899761540157200357463865779195992228749371606954213829005682671087340102154441219507312704583572911207159686291795641505480970096551549317568303553009741142956368761576501264042115815262703597044221761348810086275016808529784267544506420406870726029633076124584614561905382172278663728402028069771933584399518173785543967166269159156140420645731598402958579453971871292348568839319183817533506326145638634170901882306195129481918416160740282798665189275483186912025012257972924430074056665518196087423705080899664609076778767527427337625616502919575391209808868488342462136511719842675822535736133957012095643511415695706512391894516959152811798790460462027988036502452903661879388076668060963843921675715989541364658451746028104723344472815585774342543242360205831978652707359800053536408879881051456983370164749893392878141330422049932596102388988631308828544953872509899310541357548339106343009798551142036637925618818464691110921607729042644162547178604170816509572614096055836453069073094310479375563132024222772843416015077672777121238102253200734492738868809060655134474189057028736756830752003081288367152718638100876063393898656831621268547861852787333420733153794664467985810812614917780328904300738420092704784685450551633952149200808002044186602691384823753602771393919526872384952640426654743759189822449704650092250595281679845761700769057389344431021813980548466074431381826449132625894450131163730865605214724925006508357480222290147380346531321606514163298521906820753376799655135769462968398939544717233258051876007895282833051910293277169929343856507349487843448782264967609042313525888741668377017958822391608146168946252072035080429010261852296654297788643844480304507750433091235639586476329546569993209460357527910546208558249045255392644900228969462424529094847638371434676114810552194505976300735582169596801533222238205930354473543075695142682107071738118512084995005638533908792958878153689749538011072052174294648688032525911490380026428282663971179468768565589292465810046021288080636509338213119585621337269843718014053016262630840693317266487099104350515149805017816911150536683229691241192647780822053445518152932599810747808438380958948840763389762075558719509944907050346130352035481691345812846043509715545305503506420607096427977360831478335204436272788580356406374300634715452567181476628812256019469079349800250587705759984240745359181128081563838356908870397099024526800080321508174391488140902328600224411569302665633771659912954860480001952894825768289857188310910950652579729216727175420014846546066689935240352783379322930633871929020288931924448990116813836224093873812711758864613772113717783999614678178022256427858272786729127877917436214522419166801019428493359613602082304570342265302786607273006943026032537133116944643233271257276865861592427702872827911350325372840387794509579854878587090853801376328250650502902005597469267171938551855215775699971018824576369754283309688414105364200475705232503339599163503525842138649314853235283760181893132504996305284851807950453286577706300355425969223455150338973926145088097173280993840737770253466344491115194079241153652002009212657933618597977805970828474829151012973327374674136811999075383351888626498539027070501503253372043856938785833287972247946419955478328037261062788419588241805487697177334968811913036130303666420089791226972814795569749691937141914038633225430114038338214841151610016995375288542172937038097567571437352146006709249728385757469407032487158410640313946398923580801851436748705182110365968868591482143282629971677031909511789496382038172856485393930853111741694095716047676858322821147537233263871863237038226125726936422473500820592109654296839069649906734296765501313726713682783697530572652512117034550394010496089175987460796369678363848422887609444842230528304058799607642652360803898631104595334458909873887228431645624353721141133373100182836184092790201985414002802814894425457560412725592940763803734296576733810395818049268551381981334121878422768142476515622181163198081953700620475343230380031836100657270578145191931917120539128935748334473121146990566491608358054649657104742212114355739243168900776028077916544121962463076817129699407084709901846144190587922478565446338746365040334974703950357342790472788192710313403614514906514318075911753840878664315303666144462799568555568809558276201518392541870801427849399407784872342625472838409504951176560383723488971513139445527311441778039606881788697316817693170037522402649484529257501053481211006321476301740027149625771876810386762004004027650341418146616305241876336436160401390545501323671268678382569821844097786252603230261174501668060897200318813758553740459590990559491116386022410890463140195422199570834119358425791051034262551375499017623429179142946076715338317314955870348495349281511222546799698292904302926429938221324573481781416523482054867432663673953249745893893052457293493949544485362170223283570519655641910897453916650265314664743971898945223817872627153872726048460014386425307108011213815888870214230415296046202497578854634325707206072014825847421712775872048931937496961427071510084557615297047705425396254780335700851579934170332771968434779539176939540783719816533287926491044537986812073455275865376448989114703534324183755492448706302565648574049327872366764352873193875524178173978526637848964680303817450137073971343875301128178853564622780260207232013306208380274797137644088452458504011826581075828583545695047517715797105183701569066591071619879922187676280576046725269225751756995747192783104219785101199843061364128619319339299242377412319643231634007912201808344884610577332274274510732574487810569180959333721451831545526348578845137591373674119248594128016710858903578882815589767969439951233335670429581377348131732082559226058033190824791022029726181703242317419722319260965560526867487028401888335668894333706185775462419427746374439139070413239885061329290729843665787331550089219786459800589614011602691481986126925377556961439901145847531080528835143397159331889225271727671857236271557064385162030808313555194738340926410082369377144443945577210502445813671290170064941543850435874436769545885190013832824642002731437154460759625501319132779460681360457505808593446521256791478863090564443320503873640759793244227431337063682886569021527035944548098432525318155075427385660326018997392857221301025781240434857948005396456235668607451039904087677407039391620190115060177602293779039102615819040602886482893309310487152297042815895550216688971623415390430050615060082600667475310476419384206115297350542677500825030433323898071736383567169288713237827539567954250972995395272002041009916742227701540157538251582523756660162063348193712118596137136139697696841685651898091226210218822307692751629565124203042491593136069779475739585428674831736999575256177343631724866641108013379427696664263541781815052781040561748109890089471038566774860751614952860646682738897117884621803043810191821432216066969587700761234624637814038167245769341713935629189590611331454866620013916851730839722181378490112388087139343872717056462360593256040151555147777958490509138218392562486527081158800813682603104545629633122898990466343537381760560055089664335368996250264057503739906648019238332453967297237389929724967000780502033058182639624237916835160002022264068142269709704031328233724737412538187659676727626738827479242399254153448156274048205504694666186581753792172763614333823191379263859811909333501364704973368852849010162648058979195808612427509175317385253345853634294397284300847616819256002311605586739184379554615629593530553806353447603783677268499690495939627259415737755310022360127796626990508766543752391514185226512048504300390159386799014491199823835253104426681907755926644913502032809499097737461755863674782410026668332226492383001558305222276606596745856384256756678225849068130950953853841262365543951781746362784473047170531944223950253484152437246303763159838618424847883367659732578901512967984099108472326787215357648817211392941718260232719470789935881567343168310466841325277550016313269077173159496538115775733346645183093160343198219303285217546051640779027151631126953950157591395096124099154899345274441449830383855466457711041805011262202040067924548656166319495146557690426495608628592423026209949782853815868859969862399967582715301040433716857872002499301142052070382072902998229938430314360697667665635429170259887412718812898728272115345445573249000004192243394910353234214114313474425593151830477864674144077655732309279468251717285198316679456689762140616984688864614149242178532808644888656265563440987761347128668052851475655340754293302794400607108036271432259538857798345871358092451871269332339312227827804104279788486320036233369244845675862887541128817380596506763081373925644170961573270402724707664735815367501682081840896505728024148113221281899058701567630690262481877462722822558292320963638686174899744962621160669640156584899657610596736669038652026450901006269157214534070633117761860927328092343539719161040507357824089049034836134409688300957809654980926572752796145794948355298043163463028056713093076205924162014347058228200937258496124034912467728502654821327069487832500506494331980697989362780263747271690604844873841066821997848186391457709223911265605237758244112808215592528846968056227848791416408125405121740770063074157577037470852610593206164242158540081575329466683140841194033007680717397999325209306861481769736737891069914321932614292773170666920832576396693398157164826727209820236438642523106346406935984476865270057586428691623110404309485747165476123557800230766091834080194941719467429896760066031710592041917061325053011480906120004776068819236088134696649087241791471417179728588956783647133655061700980025884263610830010692595839856910260844549110023068377426325382186354675877959995262578016729263460227448790742180291204911920084188876893121329509416868287688496921205102423251975292103952426131787793712390246685537353215215884129525965061413064096016884309334543174746711726460694806669189165579470834264610361091106894186549044175320411569458158219347580566087345916940339017994187063168839429951697615331930250057621886954531536409216207508116626820670761180100952441591462236652305018499035524238238719882565378283562109901792469396692051513822019870478941631223106179610879644482766987432489976514888158192378107392677316852641391108462440554991433181764382656174098039683337724948481559587546520632284623705050296779591974309955621742489956990681154112296984271049573533116918813773536035943230731209373443138920982538876746424168138606402987376839432321837710555604199837356851862729410118362170115102429429397077697754186213735273333495602011795795909504111308845712692299722218485047570063561177939406620431777892077342408271020729100454105044233220610211648536437730716817485657367327235270234536003600704885847688661749548106713554681102964804301037510450165439035841458100175762560766852037988362489588583630102157593871876696979208051730308518917325130547841627699054013853324881743773986727543204760574240261499748228180973821250517601694252211848728071981538936847504434219973686103955512060491078605473923431931383787479921178378869637507331973033026482190124244984394932133999631660469970762330516254075034319794904489500400186626618191988126205739712841865500106018771738226999284509596187812717012474154219601764262346098151766986679077992906218780533932318578794744842633879527348887860866810760010714243417531631239724068367528514065810770705207048753145010836898539152224055265718078823437963994915169879453266414010338369974461401571492266104527317785435928697147789595323348250571420387539843530133925063067925911290597133111362825893224013681283432027205298694941362768471180787777606087363470527656139110366147967167450833747389127858489562010493539633702012679463575388209653647208111355805153117978834669987813471438720126234075564908868455133342734721619878035208592560421372852539035751001180030895212942188290607666297742212827385939675545277848698088400594250746627125979742712192988312138396980576212255560198690317906632027867280838622593566305421159322536688986694148801853370545990509375288600809723882613203749732954001097020685404830678939352246101337023317635698543663789430956008470063355627147075248870483414145058322788876887050615947117672420736192166712587146943165486971438196697284273525496272949426875880825097478333647714901461922550348634597012745618729452922468912847206413475841655765083885726408030504854453907583674619786361629917051831554644944367507620041731461374908421631807124238166708365715924111271616103216055445339166036191726477926733356151956280184068350544170017055915164625452931579483953523997947934965478085881841413811778154291943964490559511847959674138711080576307613930813841460518257872859479008669930751482951697855010071684169966064793206602524778868972785531518232656854809101418858165899235529311049100833009117799875553712593126839335825918437900987819975154102294816673566728999589598366674049441512972757185429497324896667744785408639401141963416343107281275628857890288428742282901505078313080851475687571431165263832650379658508418961649592123324178879051318801140473738951464349166752665292641347220941876600729670168450718043034904364168348835251694326652846791578595703257819907295672011353993509350472210085233319081087126735505008643490881734250477988959450205358805443043681841487675919862232189390448822414233985063763990914818630154454510385985151289282323570069522884615131894034050289251930687341043218163920520378035021619582340850917205052288861024071467728576386477434876913565113157636424295796947985002325756358893227912155692474996618639179050026924049468276978587973869078862207136297308188072372663349961122236363908450004838545106036409818293314550744823918277631735591512868898918156051565842810213305387768085736099597481700490232914914796234278308444194335963696562888356031566116505382982714437734513614661996207474391815658524871826020983413095173750830594101261450509104690086911882282683017105477863824398575411288261950636793827503062691337358397652204070688501559804093696642476604742091448272710884804459188783504136369422329662270224459640581443532576657679956415448043271323757505697626315860327427806055978593337852227334246795119803381919396758212070279703080625461701857015406445255131187471378110764037653264935545121405704832010691021489989739394170946720500203823690852984140778878529100712836662478275594485385704548630370711934418971028960381323333694208573986071246391854427216983277825814907594387277080091219370625151208488448774678698501097293120880402305542330344160820703659578265858262126300742784381252798705630837511242988250964322851834628673270273969890577698572516822285334195469536529731451766537566994017985012913068715139601824686098518283615889790241300777751020439577127336416331267892061128381935970291088330683604729069080737058474750434424663021591141667018672303863212386657347426165528966070982517055389214140572908355400742880105792670751577097350194777972084619436831042885724944086862877407349237462800563052184007275604728992165971822661760237166684403180920601056519531988007967803648873661804280451813451306405255622318931167660965426669732178469526292182004200489294456690633892298209209266900867447766711014791307769977247531038317786668631413827721914316933829865613898272646566048561655577621253202062861845882209612199993725665911338192986896329134010319829011638138269570626972506876668842814936480612390261591663233221322930746767617993455491295139211116617606436960328810262290909587813140577710292902576141535247757797175466193411297013327631449933571422307074433590334403698349730832675418461598062829440514071209244950131229738614002293090702854131566993414452699717385042758577804950444140311234152123094354639050068176106131870878200707601377857404083164707019691780899562552850389138046923933603274785471490616624552687541132272422311500656065373543184814594216339029129544893481038289064333133160057524834380304987312357396416268815899220671208365824452315201870067169991609350336192901255880374610561441135617277629470875887076368011748115735485762820612328511431311434683031489637799530002216506820002702155566974509518541385093452774260790012125001054775719800661004646190602524475900846265808436981362445067325982016666049542920189035665655113248417647177309776060425475207333978781069233011847332570223503803690048534841669089742287062887652442359293628605636782659063358629229823560850831550060400717011654981630216802124952245173548763781316036023264809118793618002142656755601246082610183719344736679298792385226835900250472625291435897892942054511928525768916972477094146587138414894385718950647614517366025651675405666673140026987498250049791752161619652864633981425902582029038944342694970189046856154525991630554528917091485776915581946646684068561179127473057468782802315213588424972086367785003268219510774332714182841705737608828765483543773539334750366166682440625474488653940837105031077129183187299454758760510146555985406524730154039854096617023046513988935443541119931594801122962044454448676473273430917692165349949828207841309241835507111988701997344149931791152020884792397941783611782331231341591577618905735613903040488413636525128465194195033985048212470529317973058822305731422305420167874773517381074246741942881193764877743297769518338217353050926171441185653723896487450257328129854481019258378990130284377738683449487507352479345212488330522538546813552759770871141697121813209858209301650987176021668817975837703898508776350556592805808018258916525238827587443816122400714828215957779891806040989929937121091930527708173131365002997776614651050779200701806713903208271758135326480484654932239129666679087650955846325353072795873535880591569278227936331449740028354190913502710156606573221327408909214015716474579849654118981052516469283792222131273019171895542010803754629424093036984056737054286508898628590421380370471597316219110623095266484427015499397896278330889222792694678538305086513775189827127904903795165318712456242443026076915373032484991108364092297974571418785125032441995513516656019187575223661119798634316827241290400536625955157939174751903954569364137079043222599340497788182798501202487104069268387301477629922292664344144498577172024515154002117168975418081441378722629383403182771867401583680815675292134821204850710734581060713113132878462414318675256333225809704332658701364852187567137936965134056378387604058811368705449447161038308922304854188642919132136164909483453022872836110301260679924242242050215771209510575650643177630565181442500688152894521476802189822630037445234905647888388066132951107106322756981584767733863556255013825678455281658669582163553138275520120740683935764902428665163711944385746531663688983619214356531922966619620132626508784527933214501981511257093731188846686376646615438111934004895794881913223124884936190888675251237546900990933610051044133060638612703281153805151708447632516920004427152278358782300383103614751226412551463939227950360810757154615712644847625295576777372097566408756144335270835556384362825499071860961485402392854634621327689993328985734668861444454978614621922705401016805010510492640549481645983481055752603119641240910903155379106109047164486385617016068899807885241298096876327283563464607368871812987516926348052710905122524604965668729178263665062905768969809303375704339984486715085863869351205273507179070563194215085173145221704948352232965783579007658166027937974944095402069145132912408936918022428466227997780251145702109210906855175082771626390567012799157701944489748863396279666357270369226547177844615695144266223280384741000952442268408391933371345387391471209656789924453281237730980985155727583082668063624162883903747802780092514879767736613573289286413037015176599532765598590226203318250026129400098101400195155919475735848078025894118957028735835309810427566586348111963960797860934704815403538948866949881015091819235396363414013978910997654606762287150242293184487880450736600504230676159842991656334399096487951402511930350013704130251016744764523553826909985096106594292969530307469609714966396442750565446791411305246189741926724966304680637100426112821230943611520215216761061839959428650872905048396105715636700687468465280650839521695938131873915721496159340115691729572373692903345168388362991371438020291004940480754284751453037350106214193629874200089887832115770147803301057297446636341570076937775682623159891704785843581893292138722661715908239739968682197473060101659227049154901071753299626183590897383421085951124262003261656149730852654193707631905922429818124541110875599934143844253785010274469483067965044991492591777306617474166330388769192189099788048265900325951956263573101179622889600585290887080481182284410720305163716154704401300110419234343059964305520682444783548517565250276473335202047038095524309182815068930120651577161830580057524121441978888633170846213947053104960784746048606418264779552589482742022266025718898640149359867562440233495047618366774151352474400437700383373908390760981847907859189786751403692600431032738509442727160509866722606906558291430315137781033229027965950098450186917350296508187968293939755937528241330450735945651507386194571191071806849022361739674266983214808193153304849875416424069542909567584561118984125967159737078871580049340957402899687904027261826687962047850224895231305736336934520891852998236020059144186737901005339658381317123131558164200675457876958417341324403877787861283206287773529497087113913539439157756658963630018338975738892908579561883878070871580858072944364333017337260314588178190529817445387366867946030864584775569524644771651454285722684550287618399611809175365145818824461126502732061828259857176855217205949741108495696765348533550993528902633336763891438159573728074916992188183489494428629371358865243994968391374709761327312446781309116153471703193686620886309234427410774300815970669190048273202210709796007538213100980443022622700114626746429638405240779920485446935579448590107616125618669447573955005545320308862733274372040050570824230975191703243247709836739843277614496632924818122551746529901193829837790065602020473254875290760632974406842637580217064628207488995017135854637756603800243482800643019016567961749668939710700572383664706908357127733771797289643385514870411064608621965804685191583784568568092530777762514925313111301504972131753211032781616443103755568575823919591565801553004395681996328595027494369804842382665792801743552284179777074579130885672571093446715859230661615305082340352886786737634644710026291602432912084790885783885933186260368888733311941174213956733581193886119995786142864365754428685362390071668636164212402692488890386722503623504065295948996782394226056253681210555307534419028228602895159892316462385147776332971491587258266043165314035385389656674016394819469019585440858940623870757771914394985569764100868640277099193331642105758633395947147801800699246188673311129146527866677667659440018456230450047951805713731244333906931665793745982768936658926304878648972083532828082010059321653654405064295850948392050262490750207120337825629409554649715576110737066652313613396773785001511483748135505348530324013781100472542329750917011910808985151974699037240225958227802528604900261786688880918204068011924764743519034671518208570829836307619646550828963943954970038714460007572851250923499820857522078717732982437695370200910596376708272498596760147949302789683005884469120753406907671314330333162954778255721331887595825224197705708266976797181306035886540209965826939990475531902820456559400204916832712092066098472193746207543626599838242205202754074354006176523289372554771768619351593070821592166714459838225190399898790377465533870096326591902871887447805300851057120360056292565414912624704069968606412305633017691749379850759322397090072644945546394221442636459276436622643430040209173670317762610685881228189498196628612275289924890559096776880806831323247319766447862151804392213654993964705290874101527426297709033355076695763496706582659002381388256587346259123689543587923083811079160799311276718770161575765722067602515798183654130151066850877921320072370284401207178991049889052154519707693583312010639237547583710801718551692279673042723194219113315293041483076716769339671747696217710416806888094379704480946235990315659740703006151735153256644486940652048985614385825697041474441451581130848886573837103130452995171755911823918720877685256169379596671417990010972601465391643061703314808956652896634252649873001236758882793387875080029362879803331966511334433011487681088793572149943979225431617321520490365310763176279651409899974510309966087080431908100067377969704449442707629174964278143613025943359658767783511212045127227299411321245831008700482173476470686082906177354028538985401133065795105251649133537269486582988502698969652076043992980896750936257375949772356144555004338709117713215659370037432032703129872845758178536297433756811678624505096321485389744664978672620269669832208345306695077389964797279459333564699615426564551772177694168074862553603655469801628303182938858988071839775502405948100990718453143568166236646372221412782549303940834970174434722801244847962242231544756902610751020979727260668108920564763097367025023329086597134492202146175884898443735216989111057850212342845593171507745976638749250908416923472014915090662913641244748726414492561321920199064070826174490114516523827885172727740556862860982882856089999954527993710077597651069817122262255925366343966117150655233874179093357316385879570786035747445323648657130200896993977772550356793740090837379056123127854213107993695524557178907518662864001897845297343754714827253731975023127409475603114890340030029698448357483574965290503460092482306943784552352539532409975642518265959326824389887755660809292654939707216380262378043694663895846663904399551594488946559976885044161840670063349039424282843815665277732612970090657894432463588455020410527763105513834242861151948720174930058006947817896910549603211916827265524125631812965600229950468020140911975638893799570801981227339942492810108548552506687336599495911272891014905100706217755039258435537596568990544385084166337014979272237751912105957921981307472494468921568482601912162310005156725778844753087090565568832523764263915345557622285304503488014474787227161704900318226936520135769708249252962761515142105370279200613502550552181744892301608838020129631625288181808948247912999870016472662425158191462611586004193975788448896211795251056825994316239159997220666560871772985923522286698468348466445807128501613623799502377038237145980157398741965046284187922502514048847926263724791474825683373106135149139968919984992079326072139617453072134159866143271456091715572615888100079001525900513823401689524439189548893072944479980597032766316135938990731574116125607654696547692711909582547452113577494526296203032974109118555123963458604183952018144605638931750913506918828136214245471501365891011990599105098400763179938116057128921096780460108625211755309929241807430599918924909212485268575283641916489272538399326574252651681770326548336437312827878973517932450140253185600698336523773313566871792883200486371434177062167041454514408625013792184864913013232009824396255234372618250930204229857301034310798647238347368817542917489189021573477909307763441817073595421051115806014037764680835373705685086579733454685740746621681882785975471319742434006516737862816564461512358688059573559872340311554150743014251776404181928495719569401366966944261597471885378360458021431673691030370365844990142532176993458847394511719744188325606620974526903895499710722599422501503094685133935448816521841795530194200143194176709691468908551127366249133200518231778393247430976821016361905593052247190936608666833380413776204257236655052265703087486542656848462416430308748650514742375150529095307394151742636921589829812515703068631556987255613077226698225336541242998244918740303524220583648055499095278234121349704166629898358447656187721247144098361018439973736342193063883161266837159013762673052326967026737931823210112542905656806593101528881780645091608422735770982551641671739071816359464423656868242326879159349157780339516210726234631563553642107638004181420125973321042963474678819458826861486547816075195701816202620628379510477699199965147649107112295113886959604299356574971991488959390303561519822380939121985421091519220533586004881665132663986686150201291321272408595848756028227507399875463856497364585404942980442895300587824966877585723439328455342144544837576663487906031864172121014041871698668236447716389718167441947803859856366134674020420530707832544736555253302177181179323211625042858455560608875930872154774406951041147988340352176103338487122239478711475528232864610944386124964566181810856599259487226369531835665981179515655986969413839743759405951329527462733147288082197859650351774397764100805883044248162524085137649493569076779410486821448600722139961387398063356785793215010646164184759476692644545197864076913995670928092316457200177996000527728607474814745103656271937236018210597730040216548417581589233142716377434611324393330262272921471147695377754995653361751269273258197885030596012715602961250373742322881848620125419086160284899835540715255009826963100308675477857945281963275560702914606387370443895999033807389608127131119634403923343406706404942415930606579669638919318648032984483553332981788445983491479362910245560967589078715805725988682708393229919722261676900053150883231335999288178272506422481607019333034894824003880117054587788003194859902120543285218648492196550155099679244734075991492247788744788545732307428148475746886256855406298563630014944191653081388280477833137384762944680568077330407677778716153665428130002094910592178434198686580473309325677470487217724040590286368063307334958340908735159946969334544578052196560056875184739255610763578793801626891174563715101000049132574407470353949824838449529609412131156073332646955171436779825189897305285736492107080335504498902039866983023308869107644299351623615177854571296011341315325515457643464211181027440594458570924411815079210714499941172393020213374598084043834456935381903856810625664164380002630501396515564078119289978732881425404138277739162418088685763497736814616020416710725060692743212155674495085141678960436495162104227057096206884561624986659146362345279289257029979708647083780356929845626237369497783430901768386698767638637966649480978691142063577965731854574849464475041777423772828579823748801966507825289248360850262191525962087374115471836226785480653267837914346655115533693528741653708155709095197811061247024879295800293940623611313991920629060905488707789584547029502554653573391988510858517205557191718528100924443854108168913962325186294566283785276314871309157308693563829412884461570937015139900695400663330854490519520944311276529483774864997348018672161916938820991758748723785392545509596579465306535364932681475426085614079344527448915484260412161086257557491246820086271193496300102047929895411658723190272177743588632401159048956263693235449684526285768701843920154528915305737775827786761299969116812997166116971814549404910647804664994542423117970872379732552249574296283500261001217264125644085943172630292411898132683487098915251377520830071961617057566602346636464735572634695784823026280599964409614977589450258901446060675424878455820049069830473759823814263494085943740637287338367421296216365287675014518592458209091017021295433160014942116549759082282192833348339740234820151634170521053148499268552661381129967098090511748921483828559653295503461173334874582869353824587928647077394302062161809879214459818034861254384072254828820362556506625917170228861782005307172548396796516700281511773405022924311593941239262450915743679205537271701072244249356965487486660004725303162123403690172431618250380406560296309864282457981801523746989145153493633365884476634362015674090104389357903557217430090591595558970547587616958310670730906085224416410265556242291800045536931047877639100808487105745472541289581599421275606352851826523025683460525130333519476020933382788824694590540809633651178945922839438986739692976692369339571567257875531142734897268871148108171859505302596029888387063160585350128520638436826916068053676561616697365860938735111583941648704085773794431446229830293885850616757056590733074977827583732859711507856055097934659237380436548157013159411410320555296198446272648596698765291221027929829290554805661518061446348585701014859709556812346853517238887133428483081703169428314229080360345276117154964780916887685483338894646693173295241924930438870368960105791623343341685908444985026468130260179018323804417430952778190099866887906423580044122797934043682945010624435668050665378718610312980988930092650952869014561193146516717400435714639977329111494382931848946270105948842051187604834167566237758300452142502869505830515317933966971018459905211575155733661297066025638100291712591955325538677971563919244926901163651242968405290566470183041913450790804053124086898278167465213575901138265682873775757938976679350805065002786823415069751541399510816517270117130934005739154250051464341547203228979540733810157269438625423969999919965143692510090708681650540010199931770133994030151750263281970132282529961309108547288083521829392433691407495708016118512458429721383957976890942955455159643016584583773887883708112349201750571604646333808534950670444406676671825931750818297341275816286832401825379271423708533054305051379916000247957477327512169884133735148558547817738137594400574215227721103868063735027188492178113196121998371673732398462119307888141447950550886827599360873649986100726177444816409948786972872330018004654886939647321290705442004862281030141821784504364741924071887064912041275243590375536057411794730952525136448041368580450963975845608852784951293458127437562969251138903994184860030862395053634479189984886962709313623301908325286214507749798319652437399532645284123837759108552848217616427914817913550373232140087353668125286784025277548248581260403612406356646479738823010291766584608591478252778141416757361419535791125373467992344235379689615562085599001976933123677214782951177876044718979939667199757378040875018029882536317708976833150936478391273847644710153216609064224102649398098322564297831244618852678699130429612687864001147028471617161736729339822691180958516737170349749256833918966232119084759963882702062636147452742934619683605399284795056836703935611669414671112374518066609072292058559202317075523007741255945914659097342852344362026225588235999222837125540462614406450075375133902318189214901824468323852418579973968921727268752320532883201039927999237259508896369756100362526501601305893270187616221620129939258347736306301924078795300678241552168108488872167325783521329773946621267315161951742668322728659984577269365992546885474720571601603622434934218852151369914164175296055151081019295459447240452836317000522811651555154217796173054086388133826372461380838460795733968191965395141089226037588435132157100376866018777565142368444313870056086966528535135249959480846001748636436946901310446713246506556588967059111403563951532531291708484594491737214075615801394058149906148555540425548840228323800335560199072981475711219126892336977577113614958590559185335118863593742721902243892282369193184813718686776170078621239627946074355886836697166833132598863854536708916929911456904525307436634078931371627055339549804078406179033246859347349461410404555892003286099440944283531598925398359305440161473679183304009840729992806726182507955263427783059881650145587981670917757446947646707256040027352732263788246057493501248992154853520672121960139875780381572363873474346682420747760623912015266384915310679798886911898151426935644560710063459128996236412839721916522554429410405164720645018818200435180210092544265095457817208001915530740584688954683895953238215346776840252487006720834214714948286599913671875829460407226020015036345557952522354739084064250989560423510350582417120790961673968566197110148129657712726361068198347783558627025283916688211821961088727071041355379108902113701466191348168033140889385702140304281150319553060491123392901756529371899315923566869873521461429573079166887627059408440918607525826968802975606435294894090080332005908507041324699005130250154242357562096435098894238456362864181820604339511882726366743414548637561543183374151184042574185855068273687216616194132778026011001333928303092012959319157000533699641617527006395239980982858727185942499980680402609353081811373849947325439632771412043809902765177017334373365524843042422949481655889169220873028360932493367838884915156753504497069344592502055052725646770182123897157580512119205169980973367906853133342307674540548928053129669907688387497440823772978405580134148346869501790995119126049120133211552442768513241922352817302551115491848866207290967865502461398008081380306825671271638056835128199404629082262644308107014024365343139168787543298589793093554324669379432862471503084600124319719794965696675292133347341469787952509478140630205613560545299698946855472656628499727645450163148183381982317984288423295696827183769476391842729586056265221358319018586696345911407055580812158637501323771528795826814034449418540637140650644815919942249057272517173156898761128301080412528062157157752625448262680440025683407322036195794493367632093538051579485911145570497350012599015999824078662453341970046656167861133926578033071374053908098841692668735889931075702393624428230139876975456451914187078972814179359911942577183759989090852996913145138322632595950772672249427137501787545779621311042406190039146160444538389721910193580630630909751195017142719230771774193197603586026963412949670636025509789156624630472518780070802614055863865605888870186500108212553896906977276237292368244175425259120026921968722471110171462124515748409408187451104831301425025036946006215875738555292478278511688453084173367643571128241408943747139745472134622033303177873447487051995493951187708642447998727283905107958001796293587600780108363409975570217157260964833591946530501083381091960766017045339190688357544888835335339929877088256924630749451048591534465179031891358675651591957444837004493805568182741492337173059571498252446715263197598580161101206377357140919780393797606836716906601866740453586625930912273380611453419786789443875496913199392475454344788385063154808825039609217966156249952093191852563297751254932506283481358356702859993577571936722284236597578149154430806587896920182467684025500215466363048121593757821382897760491136887549210629834964734293456875825778081203137396985935175392820723620254940543692878209775459939150580147469845661918256819345645610675325225580521515411975936262038209390981391870649287925339206708714022103818277401610283171415645082803293979646791652698796257392901687174770873264444207044545974935074357385929813670527350245318304923756468403436828234429178217160179314796854662706828951715045673206591588156212674661652349839631606559489595697197586530908969361994670799649261572893703145546332356304994696578708018371093304594666975531330850684840095944254889287142799248161073385909677398111578208788580895250863900977933054694824347718460587098133397020052800964408994757365876864031613201324818480674503300881319021205560504770209749976246058432122767386759936398495955732411752948049696172605510911626865883423966098305356370177891771677079474710722065185830859615022422104574782921679231370633650549607221116853749087021227504371531041985039710070649858367635688074558107807427691794954834336234455784735542318405637995488419977875677921652039804744134472122252547915128206635509454044885930325412392890550708619545162506964562529032195954699332798092253690875021846036240664244051630992995596384618346526937537169201044637114765427584437475074657730438583898246046378664662407114000022007152383288224666193079754366141748413496317002590795224066422161844305215090697435247391196792321332689514191595045441653807861807365022563464220840707224808595886321492024013266102721517986511059047113322909142523334613441785992015183010553320909939760924600543873139605297775954304454788053606457820110418591845889670099755189165807233057370902699829958840005651377554245861061524375728598874619940228965215849635078418958649267433292666797170717868795994464745646512171892881427360789469088351202662435181355891802762807046468084238832545484726621495638312267741031732458323064066939347849446740914351189579743087006178824284030845881971589304456318321223429744981259997733696032933904609635361049240234928630321346393206155039271828160516322172341718102803897858688442530272836789869135113947886796279597228569166873342987790971685717983487854650941203666897247072705093491917144336775168687669671865812812812983402608066400608491665614036524965473772316154671571015579207962908443251201910407465071969091520213592809760671871171993393241932705920724979640368366245151456441868366162826665541376645661188860905859388933762041318848178574011015420805832768338434171365685980085968401765109858779838842913902369298869929123879420403121828671848270500590485119955450135301099047850315561256481965195298773724897108257889539460310905471035067320590081276606043667771332675128117371188576057458154340399018584030922653696914521009543575166746117520476941199886216164375567554910143045472025453537187057900230023145932167298146869681163011142048136177535401217977019219712373646695012909755474769360275220339004917018300082620803946981713399753723357430499914349853216072554994632086112308268892777750209365329259218670080457987014402121368228210481873909391956023852049101157155813470432096508885235873208560912056348061762558284749122501545866335918020170332371464679842136710726736714965381966778259530383067787244208559528538218340891375383434296649707160691707762566978840463638912075366578482573653521070218921184951279887727302813924780140624952204172777124812845312939641310791869931696163269662761568974434212685816891394919361864503946992259850480731529959705514170246295992743729559696391902087835083883786308261511543156290948189045060978429700507595749959732571204505083021043669906768814484416772954744840281013771360516184447347403302180018689221833249330924927694833638891952274441269482659368386693725296283436892803824081992052155043283974067112500897799170832120785585434492732505852256965618770201095996899655061674754606940626048282696963835743714333902299025250856140456706720092474597962855334186703381168361779485995241708907724509567298858329486052286803020600804922719103049464675041189997817287068529078009808922332731041016454655632596309029467176332799734449480468530824250297695914619324754955755357892739258592875212942775245600395091570670737588656519199584475998261610543874533829581492609461865334284296421816355089274093580215347872368972474289474749227438657518718386507852826439158702192411114615993256296316162958452529261226170326628584338451160879333841193345649321541296091654689449892333517963656785907481164402150002923222110149436165685513193330659358225996736655477306490920480576888545997528158018049713073436243480554570255297763085344518347317432425272366493410871168843633452687380756311666167255117164417549741447697081853474801587401790493166704581700994282332657373943703513754947626613246971294102365469742764136020360348505481577089827687003058142618123673902465212017077776788983744407780898666788621567362272044544219430945988216692765244525752832049481409404199527097048530169935338148209382357520442441710141762316979365712849120032279263519134196102646888615604932800453841443027940784333075337274862077640569878373826468409906267903802305813254055643575792635371949037507898801251272527087193739255044026765566563990023313509158478636372411122272733377328867468538244543279807846359876943651664559732244893809799866210422208990560171277933841426738578281910172300125302850713351229488725630479468151428907352331262705603299152978528058186958356251400066599700765569345757233777152934230156459700870745474004238401978479811129834774201172815321774819057530121468058679609083063201230408700512316896005088189917392738690883378604313748566936094240083811044818625019954171531172622439000903632700120966462809061255824168012832989237509890693525415178154420450830177308513265393316309118814400768916492352036138344404750638688248714135746912224767600779602807982594845021203838081991709099887913762277030396207090327619666909036394582599815245403697473097664221709660973223447705757656108031830612694708799104736330090182643830289142426136112523029839501720442633710335088979964474504629768835981310779052987758456172184200764161935315273194052637333699205877812317964390182981273419286960725022545822738572676356955756125075027391271324177258695053151697521963585857685058301662014332729689429789985287581558505585139531050194212651921706138181026628556465755923523233898931147875100726469111014430596502309739614147217081283870963062692166627473454562661883581707567914019572288901416769905747800790868268014445083893283869945488011703223772452446590000245258451755108394242114597272642037005707628551002708298468780018386864600537259298652879894943864961995541105145476984136314000972679302368617672397115069435448762218642110520943306334959051469003308154476261148811262778579903499684649966680393775316005527466831506096418722612968157542057722704085199948983309959585836250781978414847930442052920686028569086330893227455703232316499387258459562102307602475650041226015496098639694641691020560727450707271869567854533917660167684168394060664743527554322410329154631507481259522186749276903448002459508591263269588522063349792801509232336764562648047952203540587056546803362465512209507640493541040262936940039584961279323770710495176961971555076399174670537338066736711662572642251365425455698677701731787629837700532246857117449595542313535202850503381742002837551942526536963139569368813653106817521168311145447379235076501035657155904476740964464822649482327593151797467194685122707286959825295582343516362334985602689170765872838882331820962042374589829496687101945430333001971685397927282989637381697234731546980439602692704693395807988622289848326205720720303481408003754790959205348031101228838500065359623288877173352494320390077880665784481491055833037444883944660696564298351198644192200820193012781080281369416186630173374749035253537410617842980397482183791145883887856731614045837962760132177657159975323419390741063121377379341651291031106649777770432397100640387473392390200905225884980484541947326497052913756599585573825515539820874333474038241918076415446327317195080274065685113743820067081657037981823973521787255325749380887188771454233188284150463241094971335668661451675298274544115501914659559457459048332775534075741419302433704429604985441980957477268470777387014777551380051789639928999909780890100982277136011501157989332823895861255176488699564634295549427894948914228541103674303152284561420181535821878534958680669182965899840992877341886203503904834924145127319425210460529622869953217968349401272304286672829052059144921198068044546836038419674339935917128524794684381336475902327981157618046539005732789321007062451873069681863316112942263982077333334882746544411020318729179354682734208567006970509502728895325838415698477620692071527854236436006913943195611605362906908601877078660970417425600448226082833762669144508695626541112090026854360062221274959708046875344370706503229237398224954537163761224124403193545765283669137279022691114960997075326483882748333036891310042650920573086736388574307588453762051187003011449366312418230630828541143160379718860034387901271835888420140275402878367269318793306310714752470489347725196913578076620362548992703325824065389082197494561975591589770542361445596153822412423744021891687698661868290857194102992910148510235921238845987445369598895198187946816657680242842928676759556455477185173792969014434783802312899390516648005218361285746546074297294395325547244277434324105221479474145566580234607235575277622486756528598922071619293835388366906929480760414249413458585605391596276069324510589872888007745685147948590854487139728636300703440630763998570773398192756040693906866119725417997121029215171055808291609010780268418081618883174541060072790287491826555590531085566654878331476086098483078807438613042836735958217475555678210685581208097982760221226294460719195379664784094686223412269134148812686387131983106981392547749740001967088394003803921250933046411056653058178294692593089754485523463389830087323703488939206789088776140518854868426355532182985057302002443800647955978508815070530720589176074172480254279064105389094321298099484189381839462916894454402718799299377175998676671255353233845794867112355366752422259868594421913386125069711636596742950610512676109826755002826461768373425423473661182387907993323863649326160676738259450346210550289988819038407916806315416158522446521798083752407219739777913859790982438184338228897960306432707212179794641162830504723751525403341345981731989565943267439122741442475842134728367003567012187614174299200928462250274822865677193546452943085639378326453561660046937430595001924173413550175904817886396772185043487114001513330206364744190734774343450422286773146270163483401447585344113573304826049289240561344343142380237134399601100971973344095401557384211825905045432463869763475480849883641054584971069835420105855390702962416353481804775549483117645665541079463877229904601296003255400154328131206071099892214716688628420978702580632138760986311485986026261513835347963394298513817871785713041518775511965908214004810323941643231506667604173691086360803497711008039685861490959884735711892413909789931189061713158756383914393212710451351955804033730125579255478607342177788367570843234406055180684893596969751571194725346640471500121494493495734888997197071765368038108491494196513733620410749831942852362478359015885865583088715318189152212186658920116277418908075919075158016085190771445000106102643107802099638424965406768785451952469953568126702854953849238115208084855478714346184273850672035101513645110232809819160712775086774781377277640144922087404568803212288644263782953250233448172795863299606655887829354524212686278788619012878560407154848842094194269057120070983339013575889623189830627745823315966967245601457578497206002268787679774822898522857844285703770495526835943411659628823172965377379264861743960753480224367536468115052368976269441702927999592488215646337181165938187379843150424513361819816377515751118611858811543481281375483255050566027661036399913288015425671082864292417357290055020526186744458796092971191355580346223307468083761476280117813866260298996124448063218121056264636903483650381557005812078195182019903118773153224478193877639703589496551548734092169716102251859711002634915597194394376284184651132235190952779879459362221536518387060063482860455584071518660762865375360724229222400841679295283984815362692058051327832247449245038798518994822394400172248542253299239751237635514881132182473126846026770733935748579289846001383773425857373526732983440911228772297314658025508683685869990899107724448694754572909725179451419495478160707447412001603043114941901490377432539394679129435289832675694255058219715120570305443646624694173003332747670251048732833235825399860168005395056513328808517176260118403564881325025734328657238325984852943608975836071119315027635212020142223003751286937237497233588024327243331316831003978712987448688080976781628840547450082862084252569416978628539915484735209317911200455782438930344526287261039412112606886572866096779152554623096809025276615115744416607087977584917808846535612704784131209573632576536785329612627704530442259780217391833892039199966143239287024979045511280189518913637253268725520855441911980685072746668530287001982868953430042938919735548997328186468527392249502190140631200762285257495125391865898621551122695877379638581107175824110782328111916575471643352658548866597035912503008071417585529581746832938789146478438038696933589242305641271349951968822146043410837385742027992588398785067459512034108513020987024104039248222984249206614132557174759550389097470085470486855384757087072976405371948323330203756114324313167851713721604414613183409068970485703790042639928007410644888531160478073302320093412729921364407606885285632222399664949342561589179151009971969557454363841783722892582136984244519142801777992553831209459121364969158107056368928452744468897643528692392117661590062175924795618936064971479024618393495815812786027761303108718105295725763536412705660838793705307676122247612382432131513537165316421849321121486143268853287022538562637628386099900051728040514286630862531068724734968539469311107327481852644662750916754649094644863739012639038002932246323704988424511334969105495347943521010573900855476792562961063209915907193383949420423305222753720790518865146056754337124430648822277944312603450655111882222740628473004253907108841282512690739664461538540015212156762655963336774634455463015123941771700795154150602998162187068108410694541158904733774677946750258192852412694218453656213246742134897492077668619574906883618535895959442487531881263956010983091863540361464452226572515321810405551074521849143475016668222214302909494563352378652616997771920364210794742203675391370985305102565733880612773416403415985331535944476594396714795407435653432487371594639594848419430399429214710931343823710119144137080015378940021781720680828161119043797032341213847006220150505417028105174250804212396067979457259228235507362803779867397079407050008029456705504658455754317445639962979625449330918323332637272045613656112691510757835447184845867369023238234516708450810440825928044323999655715170436170516220664878399553125432107526909128062837975319168236372335117676488219813128865484379945912472618984066970624942209396384582082166457425909166913652470426567996136052577327713282090088225900898285819752355474546650246322126799572241413670481984136531557435108174339976198125786936338836151295428123962826654591260468388498635128550004433482800171323468864918274887141718312304668728047730745225709753211629183020204042600939805523864987102443446143698236698800512379642969572964809816944200881243296507158048420138487082052687962040108841664142277719467890219315918787296409316708603002958593368461133912732329321918779429026842360714359196238540581930897101824744790905091173949318955226306610756379285548562879121505622217916579030640170034240482764900493266752805788806006790542639562472773575600472425415881036241637068360114423146282571690385652664452316081613595287455940031708976033171358639579755192215046671532975247808712362506632676687292075020060885610635191749499000687600168863006080774824260799595483749253497974366677451051907080708512076365192158600647999655689079751618957070728068413258660178789749882421591505242147935001701395991017867967594561689534607207978303002471771351835829523332018614449608431825432747267228108230089505203121338832200640782994463308097011406106389720479753513547143307118529765262940149742835585091643079391057043489795248144200112871286802628585063891141670333755431354713037633110147551506158302795420377991574233912855125059478583939227978156067833940484669446452346495920882865561909386572182472421843186174095998943586299618608281437988909233279241713157109699930230676578978591153434109008087561775712962199801491660843606465600244461739541073128568002784902467378044612355801318619195984474527984726880618419783881322613750632701887399539774772114726055929834647128046064724294837335408345533707560857310460606338415896896362313851613514795806161938829128912775065574295324641653775891833988159358017515666328613531901868944642550297582926675983678260613085017882931618475112269582866351729219715707524876890451958694092717219009436123934643923338519676498266967179578175438551210438504769626074077820568755422154822474998105258356528255712241460232746149120363568770306320156562473287080227841854366606555464291594729199506207943047869741076263991217314277752612165287682719310491201110874996029404494317404520803388974558809638755773019681915103280924995863647691028159251959243040497912485725969731042158714520418508260098517337044408146513776321420323539021971091912300226432952849766237965003234083236451467681556431009415926368191726744544104473564057971580844970263566919136585870200026675916045591728338986708154619243367171920178288018068271777107273933748559795920142704244352140421684557516506532682011665777546198072298293522286338679133787008089576573305542923008461861290491425498614112661948674960471210407069381506635064969419862690330476611027687684111616577696678074186524318022569598069030624010964903732175901455644478840740727550708158211578181390036315820138139942896035777747132459265044847113621285954682039001819671521504097302723172162445133974343212125864811070998845193611745994842804786700919340673211299511565760652666125658404988878499668947560223397701620802571053482616322628073621205688370939641646738163838564886141118172292525181113564966230095618072814403060739449356377060340580380026199807631887714100589197293030106198848341152227323337993614870591642310811886482636119586152695660971436239093151859683218438867398983559615243332084529566462566650120072001603824312460572152092978609291377793626187279763935223584008481774885956109898421955778953246549649395585714947964240392825353936530733117366770098004835021495315486324776754215140945252310124155819679337632312826666413418968024314434887968758254171609555754090711341822573247246618785808171745593777888703762317980967378782374001461318423438300192647468779275755912548245954093434208778029036272509185631947897862697637927133293242131296948724582573169662624031532277003994469830997146821509895720899000008458640308310558815094923454969021329029416006137583491501547841483515585092668760682692858351291580787565328868666684474609213664974059450403049841789497841499586840202921905931239226414995792048516403296690440866793030044309682841950769979785161504858560012345329468445285521399675152586386270460624950479217715018060345647747497598770483534874364059630487501223329491692092116443740612436572510545445859929396406108423406896337607052270316293348625724290434661487054915614376033828016656295340837912290057900089676728625802918334174671060886074110425799917807950353948369269605880736787265958050453286954704048329963965057202946100709587340705637357141543630040609745473224956029848781818306855270778442191419856902993867667051259867658442487947049664360372664892477677133775572251345495666002853412262813729486838007623649761853402135869294723401226449407203824665428662587549582397615534228045452050443690478048602542102046434408577413611538048881717353721577235256878520802656473729319270261000660542164022110802058589449977696418385972888669030890296955509321402124395205812684455255578212734288812207718283557052060963858436989009553412234482073391738385807089099270426761298344947065216267818062510157011408196981111729958783498728622326062218847174830681775257917321086127602116565006573205023533581231333551155363890714020676992324852740287710299682786117255696130610424911223142928655399643314349585538492607809118370441492546146215230373089765706092470884079998481062784975774645334356397985185522714850154654565776903015750427151477683601138773476679142351361146915578390339819248700290871824324482669570393731361722253746022558577245319452783930374195404139149867209376988552700011303998410957839999069382756274053065613805897047490120716442370824752515189404573773038613528321462756575905398079289997608190021778000930787966893313859963434111236901942936019617079155468264630256613175611937903919809350101568227758465986820041978251821900070226745528405422603398447198447876288941688070471627335519348232313380058943538543077111935608810268646679229755981646369415553827192404952730257829209528485561051243844819371652840001036786078865246995434932270427464092692820517795600485950129228120366780951680134641011204247669427709543897058761855062068785867761213860656961048381709289929754308359278544886301797192642193392441910639177898068366183336083482973985876227581780616372865011546644601443773370019065711493999047654718232405438708362908687493658838677098933173492636198852640656226483440761828223532747640894306569666888773854657418874939714748920114481023129992321632486974626976708387544379770517093302161232394559108534964263736448125344342891134231432749659242851187190625702747681536639722502739026488756953387076282407240082146265749854719552447626429106553662373682705955660585014368638090457632128152117208200695765696955064724634947867761841212061849800123184814235914359272612259253253876890217903376183598818095765384013057412757249874869988340554118240198233950088408598864538532940649791484729758316992073234670229603145086041627918358423189972251579033160421149773916450256671902988273261193311522743574194566684404282331412960174025390418425613994749145256174926742391800769430019808319465197116575328019823774559863694656517137668344213030400951887176283713244115034835466954373308247027666293245593429545639872684694685803561076510424219246846411974432987321801571663612850461055870907004928988768406792672482326007601688921010877183378616752080378251510247708983079908710330391359328412003528733959925526128048677466633586890806176704476280538379931797837228768264793581728186547257445425553443149474870811549914546874095301180816087787128343884068044023931121244739955301856659157733465140949382456916492829921360834580475024257914120224545593253886147261638446730050242991880223253052710914470274644451467992827393640826584628926435163565727934582052633795176372257045496215548817261892535418742887960918367236717444069974144704087625969316101449828205137603801622036747491318691567037852685396448619950247785738619560020781909907526123907489750316209511551631597708990468336564492300521644799176831150209024317768537447412819228928329840147294849279053290724226180427783243649344631542522871555005818910855099912273312476697354882900969796782433351403040174284306455423234209430202023982119521859670051289350448662134394339853724485561268883886266222893592754802254800398704433095173399031650473543998906705525701397240125169857651578218300659045517330002704219074721081880871381025364480608420243960577508229164145227675308885015969936433736032890466138444394932690006173056186165227924162097107255472507485964019534618844531071821553123343423958295888010873295118873772244129220071742984018758869846102020739247157623570027770451574855328492616889919281773706131163243074522308229101122866814628308579504766312934560075239421176615316469723272485573765258125363085071155971576036390096898930324590117237638010587405016935096227726626157242789082656209568131032181433009967848696956483235985038378704326738618892578741818084601443410042695315175447313950354385335080779972330101873492672361227063291908413766622942119993297667993689282429510590752571030714511313087602923684719843435019916642628186829766641801512001999057501318749954540398583684830971177079666234322063473267134976940253872726878954224277403258947887287045224260205973557593899414091453310496280898925839280821631696829044645172474341514775343933727094944419984010370386804633223139345048769031731455228285675390472439827072402965172516071774542336249301768406797481430783068112252552630132964134763504303020110323063889943123298035107213276629818665090587019109438542278236520827749175927552227599984048393686331860075211068649416219438272769074322644500740627027072970293233231510845871326875898762913530896832905531228154364877644459117399450296722935322375840071460252845733520071368009967254106698195618186534167545646065982772247582743981471573589237006569418852232180386550860774263102326083762264707355257671724036538437782330574819640898068671805222038878787796398510892591243563966173321529175861897488602858042633740156045234546601569783377744299225140569576565263886622783248058602102647666503310344213444295779046898378694166262702028577228262167452580563583339414849332645262860031997413616600063716460073090480370589767868473037231156572600256392181906390801754716500003620879204053865032977392139400166145615037716306828445520579406982370574677841608100927790062082026970476180209320227986304754572084912513918842962085722093752843465611141327394863567619174660224744906679129452583629151790254788909492657607011711726690129685900549162267306614365693429503869448795614484889358043809339539933174982643251493251644672129852759294150790229517499520462276632313918905056671255512654041075661210047716801000232847223141757706808236844789000112793721245567330138399067776555103478258749595459793728868857901403626172255047732379693126308036075539747699217554464550886857252086253480403491775755105917995855745418237432679191719304686004284227503788006913706660046867593998982507977727711011796391234421665964594959794351310263672818152679479674224785369976549834422880649374830606985787378913271201751776115797420010158665376255349916929873508907993194044775211004563855101314490215195707342557400994124429458304467069535138390864891209173185939400716872725517807427279296421295535063856759404859192103611143938652726388697534882280565320655679786096722045377353447723077251998346120148498413819477627047510482490359780545756914832193134705807043610270529053098807344744791039386618716986533907379036344361208115848218410130489613044122322924603723669053595099440057522655615659128425174603392460000145522947446317655148029751068897089275003277175704943121753237354674857191245693164268415435285397392714498738115507477040755915554995982762672388463670202125330539278508245707610442342111086622098670303741146312299367503897801477594780314490254550512317445156851071765105456246355294395950958444216115637137024697005648265024637714484648435448482818487662952776809973129994165958254768717419862732789374460132895095875531132969103425722105837888284439418954729676962194115369909138747374109720645990358845371534207967145712532218761021020364930963686614225566609679321110663699541639844368371645042837755780526689229198958851523370391235171702715641781510484818081898273592355860523472972149940368238641436515162471018239260014286700230001427935090486301553569915364949808551724829819580857077240439959291172934464813455538461728044075363661135345070051700095428425235647458388096233545689691126893236320617500454107042687733842953360868041445893628684416072172762528298150938467918964165097796226368141623902708882845870141851207216491709049629296923174521456685596210729376344989627354367384791939854134721247059206222424786300804013656540046809991503645109383073954410631588129782561675850574230040860838975832629319671819798016968112879834777581073490044727451799180112902048359147601305653787901430951892600204905342703511145978200194294854158890382075719171710761379330829324145391867921511464879065915263155957911432219921908938527990629105600505982220650773563946639612164154901022466506100488429167905852657702524288523901421399614277818656391486251783879659929273143180697427232683484383803947426822661303238412815284553324216297877154680118913054412922035347967479318195300911057739698714860743767685567221122193010514069727295558614167493675084785694546634498801945906956070109448314707230865774762956713520205357726446349712778618161240516666065382847427704145459201913961832492129335246056923902443185621985595419824313059292292965732916859923047783155987843677139227685592724328481831683211389966961424268480871844335486377781691670391943228314473831627727322870435454684871362295248457540708121006879846067807195465870497036639963311512493078092512844498279884199456398877180323524149469208827218565904765366217851160553927121097879871336821796030311673996133719252324176775875571228698007405974197270623214568268819050183025050350387790162277245897039189244742392417880763215737601433139532542995306803492111007463507779680787805952316878529253646353068179593376406525595482835886692793500486354297048314758730329104156764541693516151028385970745614264469716437494275015533885119131818606066561746211855242212901429080878509341937447794979485279181140288556035540319459548598974791790894521094229749098744067449778491303470322218236711959437578354707594803900717727427712616033769441165286407550991926340120244094807487835183460460101311365034721944647138937036337991375320955682590025768371175216408554741411305098841594072443259960644799407132577669322570441097634556715429939545797062936508774621935365066446766172969907799243652295823887842418608939972227591434301262515803029919465139564471851599630148862437532943970814877043890647733645127840251755076744008638849206870526855594030008785949992422624655461274194837367545027930495642944648253358381226925533374475998187348517455247292186261347548962701891776497494588847201614216708164781479486812391927318215597427255066354564091421706784201064065709020787402591028126035013577803477541416210303958315483506707103916433482696641429595892588068891806709484507503991378561465797670630369249857020822666455904478109128691341941165405106490264980169442392181475185579413220591873159188165952158304713521822388319574210491877704372361475210863378099986540791814374844489000481605478943563724462710886781691427315608314591926656664308779464871821782551884823877877206640897784937100962149057221123915823677983943135861558926752249626825983509259096725010025373190332200901180584146854657358930884696422869535121380794513119794899781783780545511341319422072147879818667975277017538797972067252286826707063535359761844966592828119437608472926125213555057152839496208032301653506087283400532669278042092381316378961915097345876338041301042780986635100764950029461153618203850840872142711971791881647007862482148581429392971830726870308774074228216257475372508721278858851754312509103796678013035973708205316133126182684983588801517822615913710047168750139069788323808299242736402173029862238240416578852238982598516719106299328989614187803227317322940841700876281843381182201642297806671329359044664862915689578988634871512812582958997045460051818537032265560212365559493212100271436290038176617446147491013812665169332156894442842082351426218296950527068267660528516917712477440767520360785750635993701849054166409424005801793836716898579512969115451486011778555235097798046496706193919140638605775813696812451377898107484435310839942607410911516263112597332438391444323460417239942220289536388459905778806344647483009586579727750259559341682354628845357327037901631786316781230663835361932400193115911120380411365987413400618277200383497524265956602192489088798180218601495938196921093926212638126579272377593799740792033848944828749008092726429264840661289916525579626881991793062926647425482017814993302092415158960240056534092973326883812733597577950456868861975183517211437799159684431593365029844290221731272266166075494946227826417803377328527208335781417597911294009749499044501001099206571860365065704551526650891625899441011038521340283776717596355743282628077397837750861687151929037466374346634474456293313812360023591973847768888933901369750634767838365252050605379348724436439639530366696835737185352569941696259003831592190286413170632880369062362262907514536922293208287367778160633210136905877335960720130714338812174210141624163574364006271485497405662936436133257826481516804203754511975452648691385322743262499974994628535645920688561055464833332248577211498018529591097963675875437947000899860342523656843275547816449437320899443419951601677539494576637261741696832482289066136002809687481646387099179044392179109218361261941631587612346311467710977792948918293401784626082422075811764870360524949067172477475067942995486459354405212063745823415992015879854641073572559210582180571541646328828784754972086196109835816803778711635728899473528395756810188809837523557862664752969181060157269772592241688063236855309164746492286526255045309973545982534896189947151314154961861566243588456428734250417078235498756457384215413563548143185164741484199248463282503133611043076774194626810976042916798433003713553864070362357283818626154931403164947396484974050787660670191733928791727853363424120331819333111759011966108325070007486158994243503069181865199259125577783747516956071511242509458388389145898409746800084573565036954392940130262680105384593642662535181971430620072940194406982091960344357564682592685677499465478665774453394001392620720988554423430744224395381962263154899308752303051579813637486242313819742791705828864067788165109640744710705574322621945252806428734452434902022559461528599817339900076837197070702218388180994280026187602592148916943953554889459299777783643453618988525607090800927243967489315217018457916681007589493436079041799778295023742999331256126361326892512948736889942734108314231626778580633608816850198653892991683813623052440417864285259456210958470600836869567907299729131405021371268201488177614570765271796789169235247541834131961730391806293576678964303022325454454290667211432753226737800157095083455728216109864442372812364001692044171565562196105093967113308220573582154164252820780704006349927991676849359617255077159541695041413817720779061288268887903305561575297795784979037779440273170559891905837443351409236020225204210615472801278509956095397138379585731865655590998238215913423848221813133264872575565467517282985340714946533412065743539571811044912515136421435320149880996761992340625882007220885499312922863645726906640786099101057637705670670878198703411221695561981557895074123716827102138387107491140618132511295929216106860127208901359116218316582845582308536002544537670102794642992264493491307682349792194570862923778530693798915006155410846377297582264488873091776171632022420046632532043884464571825509588870066776600494345807704696835317287760925794807144601907905871064691609378121181951915727452596735227601947767363812672252166452518238597826443050477804938647813571389729485195577839604246684156417827867829915309418206425237670909089659453610271500174622094516096288131621948384605003156799449163329808165856840031367618774374012634147822727693380547998135531887763210940778933932688762929739826218398220257083174300416482218649889704763491975477605555009005365134568180646917046692634031235335307669831603856082639480184596188853031717111005150887098443221804868754626824826688704979009945574445453251720603831086898850959486708252985399231048893433264606707214351552995827922577781237417920678596829960631596381313827944800743593360246729736947455559205359437715230034727785036476727954891720631708631848936162572106501693938528985782185657004453468769605158911595492500706920090519753246847312891297683554322735645223594673260192229739657677584195630696180703115656567433002897178337047508893494361812615443294047976396612325298514488779234760495125163793608229671632941887768940441740833981943623266990925091068369002232096334124372964929668503486695121488098503651058696236827446051388475420241289446892772188471743120299365376850779653716761941610668081716433077559772552259407952116471930351079974343209941721342486001342528082083074666995520625277587597352970946765016752787164982250737239539816357078047822845382734014592304679931166537397707910154780591926066425450157704384766901836809328761610526007328507446069419849957156305343834683459606256039873949053966990193091839610947808772265137255027416200292034648251238894198437965976353943471084887779965617369690842013585063429666268573978096675386031830768036001765208961970267931392128263094138080881690633351836127466938185678850635561796175023493458803036756248643622211817040274441377613677063161415398145976567506040302991400335284030197934205223867504664496383554166993335457066303451332376136286044884630388030858387540487635582437596991701781472204660289888632823157666650942038179475551037454522602542075054085872028611483876130453380345910496482003708511588724371683463464581020430388739960580424820885213601721890352340248426443556565937111941700169812617927277970516060243043575591496638376263921709668335128283016349275986401596550273302144759068076378113386446800293589694320575782155661023118246393902431721988728326189752730019650637286704792379088594578933861727115982498660545362796311375260758059113559027648930739219142621108580479659788583516443679212706003614449287598509092879332345885070651239955849711897698236550382775325488257624814380806822834860790677667139565935830555971297231962963653248663900826235489779402301726536567484314507104909789189804648816027756602475221865528035347574122889394918490889442913999188563995964333670050384861744029380381077296725050552137598584531080301058686340946783327352554577266619793902223007872682600418220215978649940943854748184021076606033693706437052050556698042318379247004579951634926967681972309815126578155591099232096522794213862626081519613208819452563569816581709588164596902363620254918913672987217163317845679105950581387425228127124322544696834722913786834486818233036771756357546817780971209660264520742053906040738700232372816266926615784046745470700409193496593617144753436170448118580148880689010920712499075548542032965373590497708797547752277434366322993117091507558037671471426217133316848770948004592871567889294555752952116841834479775247237002258508001278722388198295118235104501567128008235276859137688009380538312266177026442806865988655790678597402509694590915508696563208709285178669576305423193693792492386023220438877808208623045672031819425576153942083901787948755383203502243115385234193111038534914530034055430098579409358880707303270607441628985259868766064207289474617998213159894659842908093437374258423651407598129057891070217930489767902764983536584392556627703679789405075604578868343984104026204601137929655913320030914034034372358193985456635953593687774223735202703918086903959852484534865468670314354474068567131048391519313771287182959113960851898302993582391221315347809844273078391282945998452951897525886304701529995425954963943856863337167742391984786122710702790758326057834056272293800532353961769732273184987278531664418458859682302275638767698939676564480606596092878571801494314267852245868015994628985735056275331751821423630208888456508124068239163232628890833019181417788848609116402504154754429233668787504022594915988410159075766443786205634107779451108547261263263934883391187652369341135669187675183894864336254244532644668311751458977112814834741109338809698568158542995739004864450816353360688955794459490257288878460972378814897803069871898372213012202186826723989262014354517837809690741753841254600838908544763176006876431145649091289895732137123325876196429426166710993328168673835105694962077239074430840958736333787183561417474580321285203715361876107105884825232542960267951490226274364127554079522875617392782254714792571357697638856026163955488101808055602700301687019717843084534794337913131609829886447468873934882916657870652808313251221011016812320549575784526768712289514535169078259056296778946048528200128407499166827356922979040724441400020157240742230049197967937406379478398348199284374355331524583854200596779789327369297788449425009718964911282081132015133348163486204854627090058674093362301709344030378944841656684415165323715418440288528679703619254162749742978442679971435758258314759357231075186279106311340695888409111548536938885580549893068478534126786326397917263058815071544910545975760385791438613154556703046663170948275605166512762675432695778642127192609433243714204417821464158829062182085509648515369781975356109581758977926453539741117670384669047578585745270531884289203095469394065100443476334550081671397622300799457653259353007517923981536699439409210554048057120181847713609077468666456622218525851951167737562488560701175487459692692684520347299054641342821349386824971913799708970971561742033039660347471964579898379764557910824338423567280767148523954782027455302374095790738100234801672088756047587939157933046126138994804866411388563458120401382588186689335266461480578499835322826827467076914340896063626739116536552343725167760467183286412833055504922204938070375290532063759413470346706772954895771923672294123259729027598042291717348401682581556697251369631365874760042074340706741891535573038475478479319170337201243108779389589384096314976005630424710253355271148141635274709599815559645770581016591118474290907084903630492733901613856905624334561122853237626298205629464051810117203506237388900899016002442473569853950335359430203673195447360469781046087477342918411657855296985855297133547890983516638359318570261584696359405156504977220383268689609671616711055513914833403809309263696569031401861592913202819233085175650991401259168644741863880267468393413522408886257646905942724755912929165767712290351158620979823337926897477313455437861315285883654278333432302444524361725524832347269077590107519599435944623689198162098679144292771651173414515342596854189171679415161336127286086746080117957207892851131791858041494015622669688615364471705313096536321458884917453854342685716689593151622466289949369087926311442304660334446024972967855406601498415383623488578810971273895054741140001155331964090817292002722036186864770254837974100520385827717676329816111859381810859639328030393984852456074823265590946969445161508518563338343977197786752338259725556046312258565308509234420001165330019374076332548960005173686531333384243354091782614284508934580599613850549856863784533855458366158464143498300771038749043357845956215348365826884482575347705955571938727584242152336818865398214100907925172741182722179472250142341280700828334194092566976769930672656218191062211955252497668766466382961303263786887117418823242078912072751362853250325548739373644551260922879292640916428349295781706218507901785167042977185630038842348953490482806491599377565637527523533314630291882619808471954628729920546203858520116825480023515014541915931446835230139799736708535573949184701729036307791039811333996712479050616028187854502882899716256285358531062662051523857783918625911710455231593914053410908321105485061550457948374716453792708541152192086855541167936096244217936428275056690992403033396463482414249558732654787254759308923469240148259957438246508228859922543149397900149614743722863777236035540332400256179834397974215632326344346452531952822533685687912209156481926017925824728150055251641651375952193804990811891470346540575439998956926205214715103849624207693201111866494718336819505235336301789312812539620161400455140953906634225108433684253229907663783223808449377048214119456411681403955799780483882369231189517233809448993110373504783333903621722703326659656205697854617919965686871768046501850807976685254582942034947706752337098417792988719433431265551572089370756815644629827508697245964076626169182131081545965032546829979161832267347788327853455905623114343828440130485846243993498563030490441715414432574376597389538325465395921375846415539086449354495726691841462124594891930264671174015980456296351266193908089331089116544638397480528172351792821560295329240675160584907377169825196727636357700579442254333662920045806086527609605146860903678641250269640200648162665877543741899669836810235800855433137352302309491671112794730716399092762569712393312177514583347170409706301160619668712650878969415913466890467010532022308941569538286780689727263373593006734342091465212841651001188004961049521035042717960311174371943007827785400488771936116626150752701073035114826305136457772166055248312196045752719997278084567336731485855072634185149792334604727090048939417961279997709281787706417292976516098500642382548664405074709808216624329869091554442548541928772461545274279778830676753614141540266534749812965454896406407035628505194654762761479992635881859319363646781343262008793784002662583305403130786320244818080484175937757214869550158679135604967166522723351438794352045396163192360284567750204280660108178438051022310500822381275109618756226755850442341383611422262317440398123438700018749272617126124975489692064099009829094263755832140252813508616422365556111966420296440191097638137090004658154052805820164758839008001294333499672411610331033892943213799972807763540877660323816252331944436140066078654670097565719469907294760180925967704386851254895021688747486585674217322895160891818696403158283122279928893707772383822668075974929845489618450973874708996601000233907481251175413651646255354205753737022236416166654161699002612023682349163828390769962347882756731434749757574554482667003375943752053742898722155517536682218379980590603683033285746025631508636934753678594582260067636039453436927404685583625398895508260838552257502534568014494008666367821044336027444864456912089704820952541964284609109827170625883505544071847131101728412942943436920352324773207411146692913052311260393064815941050155020475882576505769232607510856908682161372084367281456457978770513274362940713890880264374575859198784732896866609257183607425905143071067543014667947310174129819233417926571924062655431029479110766864313828457318119717094946448307202572937025120936673227285715089226428252358844725331492622274001960377028089635305990759945352975662999253552273037552116976950996432161029018608782274474869076803927873599890176683458159404155020174693074284601195839569579387530020861212226355160766553298411682506299794052426053093558393578515912330502857153950850502084204398847845684170889669425353165764027534760169905407287782980732934820006281097754918919690547603558438543700316126326892874986487354983145277455089867944368404392141713993678160426213776762653886437864444781207852273774173845668759012138376300194941712085130734030814848245494513861673257202575541844305735425389743357733234280791179920647389599970258250590941140023846129790044692887726197421967277942806855681943044612592887320985672308926162834420571896296953070729777334722039495668431611906515916083975590013822333877287737384906621655935416338050184435232656252001055994005034885404413738826588834779970577896114572240937543647623744180945731331382242833307205203121578319493433335964772714562188334445494567523572508403517319665123250585078905456255535829548848066446711018439425111411875910567492900026476660520403142027457913085006759041283894142531440964750151009858626427440871770853121076305531166133509729218989128038606692357061037854461310414268713394377536326134082562873831387126877075450569225133894504485836987139477615811046348072540277257235714568149064699020742555712577603533135389716532991640663875939501150456888953646378526054944926005216285802767526701378315005164571479373624410976869128328953294038942757034922133899804979625668065375262658733625149482673423199795007280780563381956619078339501853188815464004071158397385918466110088617926323241968154792037093145214402292944903762631701778575741605425891417898268637889948903672076711779630304383486789556023929039427580646119556227129513663677125152780821987003335695829770524769401709510373243347208505367224352663630507440507052041519552425282291126982005672070708472185399524432540745563369258687590004986917866402658691640650036441637316896548470211871072457129784707284600050813674435202789800419557954804114618664213557446015054136938265427876588727977260198749481731084042724409020985472202070089741471633844987609567550728252916379527975027398217672578055429961506120692288235598547854320929022886623334602785792119994050610565978216460359462101455089651013640164813041217092711272826938814854440097275230944701788987497328727579507175716071862480630455791255440368662698935496640204747598137696865640449551914025458637122045801622846048743535739281840513455783395729426833129692653180471613758420903755824948497524296665603705552361710067298095552529235133695771382618866972621155895328592348029869457704785065460695830239909637987470736951822176515266822383830973091519041235377633168914712738077957258412639330577625343495925377189436070039351181105089787213009902328279533886138425285848059446313398837670195240875997872405137725713132496174348109263897004850314896767829866776315909072475354397210828235972548904245934191264456615735929489802109851674097218601973812553563407240286376288092763541485715450666871696582184792071870791918340545368753465561535395771823099891508550088462077937373591254047859984822651598156850131039173104543633427699563947099767101437531825177434957314350519254208717539713987349452608937121643997855517769619540516626852764343403273479735028472909496961935369622625380976055829686413968026099611336735909339709921360686397622575210936327777336387841729747499157185421464116279076587019448015638398973291001423620688917761444076885352348810732008647854931482572777439304680464263401285768554545913015292064659542940548262459105943663898421483794634044180442105099988381651462440022026521321147281690960505122345244145187847152827352660225452113532575989057818600203416519493846739048355938108923330427787124105543910508485768537649631166048461288445030925389277266852728447185906172741066359152283732193617785302844737223017759047837234449414227133741344999769662669181539826418629800883038706047577432082224456811698154815761752358267089630359171241729570435367721486167583126539578550962219029457151685150063754035065042479285986096829218964374998031496780868217921078995499556026726041472964165584825780345459004759839427684180525828450594258545261379170563224864365498697421001107919801762191760231884807421671388980031790388905677597187410680084636374810351557705505602831302800244149606918318720947187568645959536617678891445602799996835135262907601977731501415574101102196365667214661870513253480102029284337730817900470367837035009744605027904811881404821498727594544972560444134504728158439850338978893956290397752789364688444256132463826228852192759813970203647349009350587639171232820366929184460671779131453268058374701470578560944901055139214653386683259950802882296155507608899792656113399861689053808178787718743459905432305563236292665149998985558596202310271602377282126413001911574966701300164826707636107746100203325604443783694680953039667269959916049816109805495001583695444504091044209484626487905337548307066745373658528262428463386865180580739365950989550134124443588330891762833659800456946977851338855715401462569678080460026841613000247749236044543535375413954449418696352849368410905134070580461556999555112319838381278440977392860822988271981282238697157609791968835038369509588825392719831218940855592619800719648901755339467416842610993293741539081325002596328625263981480738117578101756605285588779679684563906444804600650068619460564060415690775606941754268561833439559249776670903604421544119868186487567124720351853021859263463937500480231782759729418328014079013258557658197423631204064102665740148250170080134203567443242573136939790405528426996384015060548655494864860040102124092349345142460593751850435783443319579601095009628438271990676265694893090668132803524062753192326028769606829986397410747989373573695047151078318528186557719548989394099641642804485294540391819714541265871114324417107128914825040257428572819473035436796766309250469864514357488359330472242928036057714858717805245267497248342805679810051284304636858115107674522702169893203978062204926281075493763478056860656337135648485881905452596838495141240392532835496861536503534944650229592554078364131845189891401228010650973731482597648832873566542408278657495633929851000289485807304539885901589439599004590978412052677699851734037951339667031181029848186574518171977976739230467139632741722410367341136663923683840052843031245314729060855783037925201969202760134610963993537523844435727275282579227666408808361179215772516525831903059217145320709098104156777060283241914498609179715395791491497132810091917808795141745022097965912928835964295538540917022745335669973321437905355911127704290659350711681584888314509047604514865680254080502650367088153453965533906168938897657804180176519062186391855250078000603849391382773146765906193193764246232839128960264297697592038309692201914817277006612150471916010671640115124654374996953920046942749219981452002940009574430539768002357309474057259783385252454222658924214434850773681803848403399392615283906356684047743544082889764094359461860290526213150129149367732582963687945424036707390292590371360031971283560933889699383150920382602365027756761079210951522125026720524153936106564608086400964414007375562474125311273221364358920905508603138294066647303062430022029657942523089051218147814109714107511499950395235424766465019358378598735517509376317975434802474354993440920176196969599309217278784661646111617106930478083025451950570025359764266585912007602722788990989874358993163988811461403680077665180258484994302226410376820364166364362116491056984711005080644806194326857370009438675438159448920656782405697841771351976124205298202040250777059832046020531765869515762504085974168760811847875029284084576371168109128297618866159988302178241410000393888730210815987798421896169262102088568911022115649887298528657990488255043995826574601306194817097455972823383654141545737634138357291104912882367633149515132177699890260550839685075194420870737707830484317156922724276852963003309961077942282482176046245477308223311452013341138408918428678676713340415583101600623788489699368491139422411800232617012411227578150462791903881321894445806008052404929410079034690433248780558463362487269520105660867074153528462694087228829757904272231087331974256387902085046009894732951743414304809270176100227356732840329964865859779140425601323870238135559484943057887420488673479065891481769677393400937563385092125457996689812638972288750488999938689125509416954543026406488971468516296096589315254133863291388619999767492121133562477034264315309444451224042219430320583816687429549326780568976735761674947724542289114134901512562167327846330157926164106031527978022079380912072791708039867341524431030689148713742485863165534614958719151674714150277836066297933435021352688882459423975990354233039321101172865940273303556874647815333789429589656841882936950973042736638407365000021819871555341030015657718301815987381236130016031809777447146497676998085158134653816671918147242727864182814226515045892236155974072936423616287683827103951599458469604368256149440308843818378869285269562951414080999172908117163026223791967107675471861306890887706984262089337817296552869948988736637595358779259274602591047128301452308219565275873659512496579667255576738020149337769681945773870104950921354185223020574915748267022058074228760980763990436147558712854795424941205562737196964735126096406640235946010099926998992769682134423008922315742921307561208256980166527644450126989391703487979154554509296042759982504369756584425216514851619285199074452465291164787202664454899787848334242493510996934353308931865505178586615006408139683006733136394774256898699330958908286016460499091226981342859407760258846760328310407728659692527948132001646271635562558340964076291077737305631464426650707226328786146073447388528202639999954970979241642487380726473260237603485285449446536431547361379161495625758500154774632650348193899558917079279272314282037415691487585328974296435645421766592534933092817619497289419687661776059305732579248198650132490912482892484015921410568995137192189591198127027889941035749440508534238436423683197529483328288832122570076227131202310608232188436253370371059633645885605006319979183088744179936131024798081758844264216266073136447646863840690152039248079155132334202222855094511660279481135440474367785867503172364176838165304646407099811093215029493062570068501785259960578477652761491819922439566966911622772161809874488653318903271374122121217180101822007731165298773624591326382777259515863027533301531494341579872627386029936016695340739669699829160674011983487962415994976414354073191919329844627584352321772051654993022009762555278298204060033591529658718111298863241414431847152718098111261641865043176740714494602538646081727913352185856484812720080282067646873247424464030763468762124493203641622263707472913931119552323354525088224864852910569491372978536302595220482164455212111177194396082808484222711433377238353243768874686531705384745077392650699938436247571899820895336693572102252961224661546045588132642697997603520841252259181951378057502594688778968806069473158194816016109710682814503180515869685403374952526774746556861782672560240855436050113120573558442570326288863358703520877667206782512746048767830313261722219301283382619514742321750388676087156009312645943516861604031411957744843138488460325994472153546044487118927337592785982853416025044644737557275560982622139252695373808932102550592723741003550039650100652255011223258076387318861921729036241117165497555615128273216931816346179382547430943942754096699123312883006503011647476764310379607427790296925715121332375606243511581241545747094844766672499929660204197954693213073175714006109963830583461166303973055927364304331745144921562205228852513383747468162523267593922389180128579521174046682166913595573024942314497315701412331170905256807840413587460411473232949582879979626354743461516347321628708095084571208270072616045832919849748065665643783867772076499972094373210661911098602670664411713140620497769725441088214352348146212056190660329848175826519674177132356563276984511247078986520026168830776999986708467724955888047644215232691615181213952976703588180958945130479437270482842062701129646368594330801078884958730166608791725431073119874401275502885393022136707498995757529138149516409227498902250176872131418914569976086890520008885609347320459858993534417448343335023611640986742845714126689885346748358417468003436708914486407380666886170075389043233742138298389249159424023939050583040929726672398306720183627107259972101330430083626425420320918492966733646333900156121349589215790505745982639530297775204412577190451998917263768514171398937634894172631849481445011006413670247456412075721313755557054199927492184878330568805162598529454344510315627447334486233956252212902685610943608413320689594153911023506265045500864751494273858922436271279320899458412855599534895119373212160127052516594044039649643973989216508869195845250433654931595969240264428642290490634070595241652272091538515887967923079772755330880373609701815201473327876949620228384955747900426427779842589298357490653964274530114902772807813231266955697773734747689416859149152678600462768231517146967272882679765558845564085384186956739446704321454145778824881940053129772674126670073724302177881446330623881334819564461726870388442895300357328066865786161916945009919018238847477805564682016340402721534741885729126225612710277237438837608441071469639117048082593545030488390965928350291178101514748625630385116668011924509989228452921750540336591657022055632594562416062917372770623162353425334178852880984306114623805734768606902743934037736518669044820215750834688487720541226401227329977862860925760361097545641600879377912929968613512922646610770471617129969061124483844097720620720587077398268826754710699290768239197476001551538105932337750556575180936058439115938614622851926677105129983438465995520038543087432924897782420871754078035576658100703913612518946154146896885409271122591132227736222031032276968598019452709300072951651438626109920975888251283245053384948996722675274340777494956968445365320773153931706054598651824225380562702217070005664582422995882335786201490903561119311748082226573269419665914483147369510206295935703521558022211723300945184321297742601298265072179216349677929011827519992345704738620057856482633335574197217981463128644320400720340569050766723211275979773453715772511192764630584156457152154264322988050995792890502546245331563669401691523094724969430301868093707403542857427654407053554772626665762454260577493160697338351398622100976035558833611378357850881170068787135532407395835916826515754070778554736182574611926961403840330672801577885198310774073328248904572755577014871579015360122956574934234615144916019497570434558322226186698262322383501440298172088569418481987653574994729492090760048034759759691863883798306726423917931431351186079529204089038276752206758664379209118945822614338462330791059176654487833711227065446730933812321353911255718020474795840046555799342590223612354558730791377752500175863975929200605819560514165987172812418568256068216714065105661103721701741536843502166429788227580003712869683631972804337510063457997567543424474682503253902795405146546407920858181403978683430148206771759895581765372541312773772920056148654389841355768865402501650738595559562153548984833357646764254198552141078680100988329605056204700356641320311333817341321618900940926757208903985132644592683542067235739269399270805438662126206312460533239340395331657216611815016638679127064252691949175051942497866091996338108007074118144713328603918673244002874907568413611976641139736223202764880952501316690776114138021327973046300713748685944303510717095415059918442563200163981501100639808119283859887467213142531216421068739649490810081248784458152246806449543869963104327159019289589943994936743808077307990946738486315231309635631851918565262286758426795057259210268594129621495892400897537492602187698294871183919646950068477558854314387535320878246545005987707254948248895818175498158232046229639059622906731527423789456168369523725651035099878993157417020083734047337942082010245359211873929662422166009281212041084536403447816997007141727167215911976992121150694222573001094144012505744347321388440614994906869244607608483862069739196098272872537747347875415570580523113878831039182677032969712267688944299060181603515551316875654818713479954029911671503991867654225691991511073195930095332401362155370203119641046211268622593035165575246176285642814461787856395102871275911568746945559574284989602453256832360744325878632588138543951523815972079345433352947711927715190592788630174363327998838777119351912503756596058460942634181638775987508837973472872854486223601562208521262659602631792938942137578803184218551125519144493861922047386929481957126340852524088451047409960886943766797583867953668085440148203134414892821929535407495625430431044556681846891176868261707820676189297445516490462559328966444342767122981314792097503531477661938484434607657549907102418506931201030783968338066691597179320775563319622771766660467218517489606546480415027576139314673263978347283897899503314050102473650618814895626148787156409789706563996575832648258435989287793355669054130418272267619253615330014573279592754147022180013738530936511243404877550046484845750628819716338888614343576425271222158761950940578187472818452575985573888407974168455540188780748999899443158021593522286210464230220206892912443143268566448006786761243317183868822128318125807298459802473847293027608888466575908818203816223720304643018972011001093214500069098790455467743437833284163900933833931339663229670524622524701791685184003149914662415261708402450796720028844281391576444217194806122609126468744848203376944206989321390104262735356467851308862837618650832856710265627280944696165769401541496757972263932605621374715954345995362944925138700212934962239870360422457048261449555496135637082367704854005714287274357471002384038007821173970575005794176961060714718029425241481622890142281671867030431398915518493844174162491181258872354045851987686062440143302288810503331096262884592453092458884827493214994056887551260690721925796589304748521548019780615515719777047232974801091470709853302165349898378522346271888227894057453023735987099879630026186247171569058125838343367507594634721965546122090680448352062071095037943845267591765276869994006463019765163585039804378510569800357273204810105946811106440227905766464899501667555652556414942131371239558613214505550831771907459955484312660437598078208506388279399694732739327843541147994463454391433350807662804054976124051838150522915362375211033897281612332783262129634740934226585363776055220516262692183733614539131193385841623010971257335597668832708493629209069272024803727892619771033840540328161286051660822732502766701716758311078760650290394870371023538225837015827288222110240076239279717154114716245558985718500293471212715325481965652154519611558586644677780484726373651464358168768780850711562017523288362138192821268533353210675619369212464696373668231338704722343481204252709299304608177300296473101836841654887721583339832183349700758544826169685941807887409957196253525582931363335350048333541474382499353903886623839287700487755840568923834715050146308511074252201954026629333145935316563526382910301192689885716272866796629805215749407840984525543086527709005660305396336316192565674043308248524719889065886647319862239206479367143790219773477363503339771089257196930803277136908422935577706832441705230634105757610885406239772457421460234197929972328338762169039798815787782263432109353765362625859074778852178648405531754651600083411266886318573400975595393946184330194611508910284180976192888648390670258387274019433854525052767821706575397820992110979213502758483278419414507598505863614647706446380114119078580144406791668576996265767787299269797129136216678418212946218790811453709308265172604335841627648820479764267295029869733071294195310269775549689851362198820237080414519563593683759043446489037874047642521537937803982002405195681648059325682508506958199147123708788336715965096315957633035744260321421891595007612500512378742517359977063591591490010551390314087480731932202429996949291033096648646745171615284762314555396459687965721194484071430905088582824246491604251824174021957509472714742820884491115799655442726993413564779725723846467440989645162141818401587534852590893557110272040411460745707457454679964444003018783030349183728904470315609908826575363621744980389566575746070844835751734012579987114158333269457843343011178626210212191173987252182714752524020245980905000544778122654875844512637253358293817928739175253733089172589929650682194343656791201495193544197718104485568869162199581071810870143616131876280857794053494361724446525176971067282922855130787449899856336217644418478572242434508289825816322232138362188343952307457588088019786997576550825593455512592874663335167358121914433215989159590406674435600544356774344324307411491967582490185830255878160833907850277920115148798943504624021147802587604309624955319791286377701844720044399311620653616059603330345684069223450819305609398459776791289895729132063191403748720883086776617275379950940982046115794599549827734258031966234518116124047273734383292163794309350413460493850091276499365525373420034467569109210503033990175242200086564580235891960136447741592389092591824329036217948655151837830719537529039608476214287083720928535151786723705771567003069451490648730896792106150743077645075530043473278264656882824948493518658408887602654829890248806431696428585725106580565448759881492278043184924976143035552639639907026313826106135491382575934739803805694789357572304761596376663663632089456776197407821374671793204261314920987621472729196052850648125590389803873513635473814380283485017840180430191701527563827424007648001579857303070887303141481463432489070795095567160556605788159376227349973062251866650544892511602358492527469283148970867977774434731837663832049904791574357987584901372922155668742374234478231520983868997871597013227565222451276336594123009238851862543338860410028922400390126133522928215283639846353524546087067747907582970579323178314457128296215327100134858786958480397912904432987436189800935938529148095150911607801315158624501256734042046209870361703602188727833747437050788099565616707161429872096145657356961525020835803636013973704625650099584874397054510894560326159715736500830374939158416471868394117738254471856056446708738493894197927235278951890903418048867525836541249655069029430290173657380431362593858405150772976282510803762674745542581084773957340196911127943065441954149242886630660219196284641304981988710958793408289534395506024303401807756021428819521067887186653249019485704906821564935165254029928619003484977164703999482296264317098513233628390839254405937518561049089337492610492059049162119645021293379363028905797545377472940859967212092020399495823632092100078222661390600976676562875066034424346494847674298670327424106910287986102653261520729651813328439619333937985215236380230225804929099538565565079487422660374976046299135984203475095743586198036373095557597123536215360529274223355971320266732499850840768004090069723180485524258566546042772067346932676604086784806094931248904819050389055414878558579747317264990888460749437821304609342534464783260761490212914118224778370769833852309392244604251572128144537505537912520004851237574570620181549241415402687090651867802467634356368991338928253583112923032801409421009506215663740740215031230421855971771410760851451445462511894502854579575084420033190154798447068963713738561943854984127516589903666510359690586200366016164202950902688318932769822558460869477714546176114011745828523254671607528781596933072570177086401078932085642913380195932865818562000631683125272022417243437923957199340277004601820228252198945453018955831028339144757485762044866922805714865447413909331340181691073106635800111597167059679741965074055471415498372563262772293692582551113636542684806532041811112174739558312805517211890320243648998151837496460158263551668614608597094147582192644320089988934755219391855614908972292454186534558096877840735710970042127284332095902152787132809542171484530792514604028384837439902162830516253601271828046886698899020872638239043149032748095028174338561999257758409770051901053588035805123250132717099225626154250899769839289089551886407844893659260660149341477274913255349178834458705363062178424903179567789086822302846973572537466106505357108023191722370188546787568194648874540603547973686268105816669136625156130873509597302856108438663377364073235461884838532594292298902542914674409099019661182044762863248341303742215777981646998307378853920322855400926894366180800860674555496809124643103408033007379703324782892085357961940750039327938230706722127412759511605215771148268127622666700851946952090417503591753380468811513610340909751219212594353606504480177258940642114660118937433589629775954841694653922105134938506690409555036868751401886745478007094653734219339706976611523764942786681694855560661353919662945854467060536136990793191678637986714892269076808700356740977321510136423938286955801901116765790835381972016829111839123844403064593450280604592562183816881966589622072116131293005572902531079786035712967850198903652695086863471260559254196743211196062434645314460184974401127053185667176672345341783129071972523343253742943573876793105533500756524899364218316100903701557773651656726222554978618566944339442021714342243266393614106112380412525705644207477454698924406896355871883537630320056899345483774882367978974138061280106393372579524968899630373222899484431645344915300800439843537907794279108107637890806733574970188137093362747016707610318777068069208859467453791016522577431738229251957170194181877028336958428210053721599048710641932018402765267042508767361233353488762314863649836178184822758696454776329615632304582388266823333375076835799839188029227352872835223197827661361502027120802089037705028765601913379091574972948764864326339984496067959240243507472480155977362581359590057755347430643365304401640005491896188531412908316677383220562735051078887259151420928447347072593931741859661261321706329876906401848513202290197355239121189539468576935032247576296756875158040570765538657829172981974433447998244068427039831425281851762477195553350859204389686072791720666452859665174971366559225328749974431383482912335418134056579946731428053023461978450618441669629055579931462074837005603327164235198763034224497665536708184456137299319996307822164069203974185955723526464201193659214490238647518840173058619310759109732621981919082617706392966240200347759388271727383600804056626517306516143083577867490819062479299774406736453703753192076149701096411638702646284018368131245446206385135686132310064763395228384173984152004182563552865816160958320758623735233117551221470879091290375130970992763155021748061680175126105797153261177680486890368127238718016562164134299361764467075527307922918765277795748607994054578704999789075908167530309389803840445547359380424280328663483830438199225684858356963096971057547322606396542155033337847342050018791403264294608867470820370751336845310151901989764900652270110788609528095378269893913620302300381613871267531026322248243668688499970285301944717829944232978385293803565569244553872052504981494571639837608868251330136761678292592903418818322224017267335370938668500876789943503991788954911577731621153802909225414726430691882312712247403756064885074436075629628732945997214438046724211048599460747398122738588406751140428740738665755226109888108897798438074334799292993632473317538388868210559034378528889542856180102105208855930060222468854397236027378849156538983113841457694011778526893025330948788946781166439682107288068169447849388510126577574956183050371838811881368747728230575287712789751771019622630697165187675517381179794640477013505014808546658825205079342224489306707059139687136301401282272178162592440504130936404382543662065625284692963925669073224108688086245285310016825735789264282946996908500960195554869951201930552273805406035020017370252920356299138691824050170226059235361484690341317573297748829239493674388041672676338644466048533361577739418235048001415842397200521930436912334105262084287508037327787580669907774284411694301748286578209681084261041619264900688090030950786538803340752190101844778217122803697267230771068821246147926281954506359969281699080543687531743533318719655793447281441884813618260817638499797677806572257429972278380042478760834842997894676721034426321454537343314476294891466546508295320970509129552448386418391133293568239364897263533421821158948470837548294042677894511294828915548309175297245819451716547231728711199055185717792068641848569895931720938187226570758248911944776536746770736072200371756227725226601137612166925179789487672867252165410388741389276005148759219250538381939966296873090736053626562551155141576594658044879411479656834318388815787644149833052339859921065967262984402216753288062881305565169139123268170218006742449195319085446273755379199806673344822264846034973289847381983224024459915092772649754201725517621130066527728945653376936920138237321169437620765989778523290416266128614395119738093347943715693183428208511474190480298286948302850131099499837272342143537016659498331622283897326820317874001659113446590134220931400404863542778718638933272590270075189498858472294540516291747227471711678938733985371765975135460306901033316740727491830485147803485908981789858020986325721458796494741936629888401991568874491042134433809734457922876356873078182248489690180164310399173616207333372701217380907883176313363497292842561494471741846174527476522895542480931656512671279448845596709581001043652478138768953680061837770607873187568409544060974253106489916085541902672374009757182268958692191398571371942694869570366323159091167200758188649220588970203190368989043112247354233699625365709129197740467737619401781531896442224119971507453945183032798661394685653376626474997926296418251818206984142342339439829069630548692781715516483159689845553939324792954510325794904786797615578506435235038351476372136012358025169352240195690854038802210757872402478739254365861398909972782002556986222432748707751619653804123313575789647139247666992078803494042893341702378503870861979540453614054687480335195382618356637035365181017279372065452761256028543089309749643765893873447150550030805421157179736925385559138840453340775113359248003186957002605884767348804916095615316304737345389099471167974717517882046411437106989114788547206690676644361819952071152829500714608082158865999394593865554673735845078699950356232187340978227084566212595466921438222379662918754070803996768336415977139164840752656175272281776814886469609873481257822158691960053805335266344082469568129980117814047483806994681138344757399100456488648895231432237622097109730893838194272514321770416784778005674500843459314139552488284319103525392462870383231285959114488023216551837856232556615746922352993130475509617251191487493423262797265094418582859830131116922381637213736060717640464638125575314535584154402555839559530238693239327393036636554355192664859295041032067379700675671816108864724362410074003645195239159489609459750352982569145977607851332263174061133911814663366050756974194840245911207959455403206247267584258644398142580634587299174541948270363444313071759985609215661318374418787284766775625148756092291109529650240805726821753287925476886337651057029846994538036329104278476085586623429056860280844933442365893025125192878733737989986347800439915746584685581588694723836443522416732300903126187705122899397547827211894642697350889319399028917584753647817196124961563307800972807547604455855451427115149958830719052813860351234867710235509126235038359391713516983497375464315043377453872467181196391380911199688827527489345756624961052042838519759714585222231466321817693536359922860782127934168451260335380585269420063501264544944155350870948947450660305858697519553255935734191102287629800896440841538593831365219636648798534980882267169476702947891348530160431436676236507483884726021515339786574067502228477677217899583842268649573478222553420481390619548902600215376271112044550576541990162420970228635509000540896114243043952951429856868308312510435551624120039987893589707344522706594691420585978548090863901336225318588579495637034108824631356095840421054158099356842095589382236272163970891060526884310650033282505983772628995911759449181972165867701096226256172975672671873282448324578585954542915502099262831944671181266859139821765598074797310973227362134387243928160686621509379821626539328897083186823344625001198788700041888630064257685052440547046534995312139352605703996576578789260274040895843664248795894528761656906274080655657416156553429772963272612270547919578926373460888771670085535674906404497565890908511674553568076447100123811470715439558266977628369609647579259023798097905847531128461997445718577802832235684972577228381491816532726378421245703642790647432099844548252678437297294502928907980850873453955623223107492569411760196298554715658246296926661500488225990441537226564626101356986244849128593895906959389805367499501510670212108658064698613357568547291483826608549566807579685867057779487812029204683849180560331796794093882896759802898816405631936411641518717044075859147757502451072545369623724893043128214271326634885104841506059105619768714822018713071037448236350233528853643272005957159017761724868750468256923518125718596368916960506662574629144870412000924923189909789427306401372209298665988917163453813173506122970602916953495839768173352547976278838951726721279452032599392537817212914720198591159091495947184587146336368886049293375369756344094401528543425281917650222811430843089836319577738327823053269759851207979653056494398410428435240812738003789528768611193820263698411320830173779032133009819957301693892094312813330820349884618644147951466852567218501134182193870094998025916067109240922482248022296290209541031991402047748741173503845785019997141583703021014651984323267445808203427286673949477175692626070014183834428077434490707256063924802271676222082025108335342295901204976622217309137719944680683144034412660449836446666451304706501707462965649046060209984216064082124560477165722095593662814762094772484849306713023278969377728514183172806336582801571077955152155378425793043557899039567423880489387261597261782493489247504823245000812054335007113139081529095386980274801833405766960263950105885197734614916387963070144001923137906999480049867108084467271602267389294462615209147333005642323825361099584426217815742398340154392054178158794678469444362969071542607989178673934499889345842779203217876153041430868486287787446296375704324236853410154853580102336844522240019806045032822652809793530648078047396945019658241640408992055895191129296191445997466180873808380201751200938945727602921318403318581796726264948409637796483743235980862647485108732412653586140318390506001049821890686898949128750582049749485298457664936365561478527212470497583108927802614000734657633681756124334154098089414587683037235472780571333772807841211035624899036036987437136667764768164417742817439890373238156913415683520069430619953986468216742096910626217070815551790071784783574726844011401278034373671830386652789938537703593004916020170917418255897890420826192981746278627937117075096064265398878185577576828259621176822524579599604980477666698106618539655214429051013798837274259434109359169132894138819191852319818591941169120908906550780349285876928450360513915519335105696005496795915509674972044306477391066260411790076919634257690277795109845832413970945648665458945876356666273180793351610170812166679876488050323644708087159189129813720171195019502544037674847647451586508222442892742265714109446519898631382187176574703403863728448697074189531916635304688396293554098641539733104451034177945554880374216527459906785294843383531824742706572234843784753151584689245233635282611908219584865711093038511195390448992856872602845170858473118845201097792507683286265603468745248839726897737225180782004963554319190020253765864095593226244046892883946068501561945981950790083126066787079761416308890978684668609329642302112057674779700500851602672602237955901437137643942787694832798141953266525820959261605801487585793883139505093794883228175262213789604532563559720869390999930603968832525782517798076396789294836621794797147595449672502027759890491983768411425703800641447100382911028660937108046831291333336453315514592992458287924034560133949099779130433990285287454373554919152601221855277812271059791913130406935598008704746876330799351240108253687937319366047892950167050019118020117130403677969624548715447594449224400425477212608523318988145420973165032135741659335829370705049472928600010304808393652457809313052792832853679771319575071758255121381632118968035773311612365790058905453001020795177308172752739575337349070212884459943803733020498368882081956797014251074590523654599523578872606163472588605970821432498608268131442756846791087257328700728676278235371743202863448367504879340788552097326893781470524338596072372703721550424731326759561228020641674774259107161539656723951404296474578517940433116276559292861666686358057470343705627938494244003793461836542041714804124148553020049186866985875314300248461221736957994889228422985456372808885736013208672079935489237068265179271422499006769595650737674932308947950354077965315902391121960434195450998444515828647763964960998315470256901323369172120531260657613786942302102099143775094968646476980081306320393493746453600478500396694670441184278990902129126948186042902084055566178824268605531865171281542726466534117198164061998983473825311399891138738183690516975768680085156731105668635490913401077235841430829449437813461739202540018998298669686513682004980731160269194731324543069816008050280820389454174745729550551677723142655357149438629919995813333045390153386218986186882502667849572066550692433016839040166988782603239648630612436888080552696109271931638655516329061307175393389212968895259045232413710677337156614460328772167421198286931630707429629748283460629425835277719624867008891550845069049760556598356826864723543929356143954496386258319160084077257832399394174301438443905232781629496404146785932395361662979116959287750597790869467958880762300022606101597771022068425385992947035356179124966802060674593595066123938429147512898034705113633955046433118366942565425002746116609264113734343081514759447399079363273193764656556374740154633513946843683622760814166838396960253843300594378679425710528660127853073685456617301405957599620431090345291810845911203740597967025246127290258966265556368490916500978194722617023880624333883290690177814350920084109664796966407002042129790936757007303614824722717659326184543866827003508477402045742388963637618070974267496480722665306007168772011922161225698576419940364382111988774224221750494423082882978267888969050406509412965615427904744273431615966773628113094725477966075931195184198050816156775323670710865583031507375557288192281072650878122515992886693214020853148131111004978042331239379936651177430289279826663463941215354650921751711284640103748147950691227021691239035108854647674817814841033335228642041545835101196448729507121750159053213478930739797694386445379872413837579450119147415429876819407782392375547959114431780748138301581793339341198084354195512923909729034143646712952885403447913344096564034564188888174460196737276243548254125522369105673658957115766343929240387938025973346850763206461967709102908764815675537976346225269619564621881705312102186045518611385218574322482348312028934562444313613022051786072539804873452360323942919414726919809317771670351976463288789350837936275130023988433411215363570949427133609243750248388209978233579920597653180286446697189595317004202328778050483436111911304386601160266961199395285841641725472839522630359834615352705767656584161161389144827923328247258322019625496291984744053106931439450628001751749928215314831188330532714612022040684695726673614004158983387974174963947202692319132121878449461376133644196120000625944552540366637906709309902684582779317746927572080543254895726066499095282205863182041001027903388277422834152805785056029447822326067307268603846357418608309449664556732283227259832411993252186868891201311369522462856761492869554601885626339020356271918109689187604112836475656121585792100624272370798923863599116361939706366998214107355722506652275168526567430979848342678462175548255270721821162279543221555431991533652916017973698686296069612661652797134658136904668313056565728572629295118921531812565236432691519515050564820811347684707395206032278631551914599779639953764264491277931213558959407896643648049154491827249131421917784415268461814370771474640354346769405023111431441821555519821435414223499684259263232217880196094387937470217948996379143832767227830920586554769751449023797951323800350213821756379308131113763729910129765302695584650129772660594798776278060776305390552193251672203737725327918725312896612436746421777606460033624446376544442362813708494652657585351875444136105648793419748535873841294807806163180370448432581510735059543119713893761919572372134484641421251951655962039278087354205205477231067189892733664212908143841330266799773579796295766395178439281959753977231956711818983868923126773636789593094471289020031976648641228333409550349694763872362655598847498725730248840494731115821454944828692588329651866744615156651248227308682626120847277651232207275969896835538513148107646118433267348991037049133013002398183060328786394563606153128748290805135970983148219448584671984078729047329332007034321547134626654757849566202253129247670824608794846490723191919458505519475199514670319428151050150708355068426721385106421013696705074223472844182350759852866553168789118238896555295600968795455023735095401385835415091477030099364006842602448915435292282483001507319786739345803559960833729018960480262396914572796007661069393220760585221869903828213455703599280488421783913915911069107086199220784475009810672003753607966978878220155666917921146718601189155069446582271128216376253276304421545398911736870149600415763117384671723348562637918287805155140341639370264875728603019074428098643377759478402128010308915622224128041552291954493692919925398130764315895599537215868794546990113921605551493823735316690211295950760998537748675179334992491276326335462961811408620433037113851555327622476102402222665515238552990574246735416018043361146106634477774345474986440426663452633120307799614578457157373882761652094089035010770656244377183927742529635896001265560190083615309508782169436122590750635634895534184421403053460980053031240404117083538522046056655811868241515217618499738715667585009997459209112180046873376646170442224321230438452957668134412733285977206006217994141023521005206436976856858112388911948301879763578032416442707694326348616253201785064983488979437388090017696530165188491865274980583160587002642160895255395340800070417841365099685645594145789181971207508759689763697769153351316160536993744657821443917751875278259884065029719423691512564226005043438068761307276980969554153845861173434283975755340616132717296597917828836418798772201582959122594738203047951524885553222973379178925954025245151762312403698845411650738999414530206993501234267145801401035520893205164784466633920404318692449310167480696945301021356159495612154409305987558867947336768920264118799659361973791449608879415859153264271569229494480773431648303063979428725917204309550871051292543552039195208081144133482634545241221973303396832489130336755652574012653216967427642319747041492531200331786050778087821814957613683532874017214776781985933706204008513270112076573242516205022980335607928381996041168761130488789948926329307566501859240899001428697286088290012643644165892128164769853196515071707688926194182036582300039146890760407499569925338775691502281323992115585453634173391730516305606178152802604366051123395243529798448894272396809913880824437543956696429022931653315729422361330282508217301077472018556246907608274857007693389144900003906559275678214578068584434871064436610677031442192642651185458037945057749321609547253392224759237561647087870269626931854748470559947249084911636215873975562203063725451560304662720495553958864672138801241317212662996620993283687675004177177918068224166101710191028233494150020220658819999852470463835360187619548689392318788615314292667950248992873696566054756390603804928342495467416837809784797567818410103497831268640370996034168221557498651306542889649560359375161162308176360893195676794627131661441432048491839948294063513880243473702186789408867656406590135508229103649509244222236373013730597555350904293620706669602694669767293556049918184230398215917620308770592279173435877631364944080762852541259248244304077848338438665378961918341283340412852840880237002062095603116220149669960306522868659264468382684677909829502164911207755086116301095279432216448018735049749273139682448575821118845804190899020601509155211796215522313720182198301162582374029776363991161640387566243173489440179562641431463110450487010648549265380843523641971707475366436157407312850910628460399951857339099553271905605078807936350760685584627790143390267884669679733765005140664460809829545472028915239046894286605194060719045717266529440027876131731518278512915529018445653713739495837252002032001873921794676987671905483713678331614865347685753022425000424390259442631221431077713764063210586217105049737311768505183673271021156076725047571957730301220761122442874883061742576010098104237058055949859481108618678502360042266572626988062330855524360139493719556953926882919993897543299220923524217674876434048349637010963464085686418609360851457426507538127431636979736667509691787994064252979623998715578984421295202920757796079422924591132772964727882822667157234018804564123441531335957396945091181629983096098290871075549146721214489096393236940753072893706669206401704683511445975179883881011259164458057705051209906435453486735004509521004345311975511475218200199592178844905859858183561599377689916005362897119461463769754145265709307748351588560148957397728276979292655229280898667325592471751742490371820378409620732046953282230805193734936016673006329636879066300428419453259066981211884462779689468861023592781283467599046709837947035596197237217210877770337615408388009748312664865382912704703796437023726662618081835841568438872729193994728560733048535959313173700894903021728906523436597988461237561290736959850351096995831529945441492077173250478914180595183361652692358304814602833374019134932094863094663262015587942670734293756048770969659489579246251010099572759462515729372746810528330871587122887956334188873468773482161514273383566895248344406274566114142074408521014794312927065095628925616746373900273671625802824043806354822542186711141782205658640315923657782859575184303787380147091116838528197509001632158107247501723384319028067338668954655313748266512242092266901983061494506549161555788643759490761755934175341103204623653299118561689253532891376662096740074087552826767175483056523097193756417134603888521099304745669492649839863876553675322916839635607465301849894131743659522470951853052463966467873036023170202809895615291154055971569532223426665702978371204570054727653674483027339990880289029931075972824732410165860330757271378148467214151534066370734683912842555291402037544247663456967158196294346360614990129976962964022947547509048794164248576508533588329863318038447821917696109912405913262585925529137221785932299771482618633333054378511992120099472007906608373664336946833138861055637368051153391889265202324979002206910929005696326456114410347779859864248897368688601367186151260348099132029602021170332567787826456602937279192491090066002076785279124764582048360792204336114270741141756296242542781584647222291719032196537925107168700661586244899139526876642118883462704995319840661114380031054083967630030378155294466273144944940606912238567643322910427122129056067645301189306995493605537870037362827145279815869574133726731753110968374775377653966771766903207473100486340027202594416541694203524111971291048859300981344921655553210447710144792064617877739942843744825235013527311429520450294542225872095244558329752305027948046414297837436727013529906876921917510440537376205853046823997193581396975233091913159320793557970876500335830403430220862372696918692220028611086220235220604118306552667082021413399973120177029838780068386922227590940922520181428846884610780127825333977759686720455178861278310131691450600095428457473466596401050217838217029817271116348406650207395071926133605600306707756660671430812931394185356833977894492419893581795045453843986059096422683158925196044810969980655721060758070483354182058548234656609582584770384960736614992631010763557955918330647324129951611537834202460815414671899541875987084257093789665462462492645002593817495811084543615398922718542783647173829549303865445320659426405115426361784526185153691414370965223546573753389852939350103306889648868066007514202016948073014864198091483568674965601491765530720677070697793603325417537345880332086394824042616073887534930104502663256898574172416207568155021623803487748180934269462674198340894878091714569472559999062502016822771150698558323039785331275121484671471786275170507481307675849405341784882790949328229136666650401197427174314630746003344231384735939257653011709491852257373074392108012984151439263699713581859691919720691198834481403596561880641541942334147365005511230208371051565093756688276142822341121572067619403569236232542545058161021828026652488039779170875458677891938902153989503196728817278036723845097399926847521783375452486357296704005145903667467087212191035926012878265719689607091356622439113003752782882282519722628256547399282842228058568391351675544258339034260376291011645002508325072785187489283242125546681626258367469836203914479156652858005886263068895250478891656115759971718910893783794774022902200177426027455272190866750354766864600573665840210745963765315729890226300104003589623724887102579962345827046467992046014104348558981384406564450078976875432052991922263331702348062548136833102465734841856316290769601969506031243659608961307195130842475693174708194776236467050479693363658043071835168283107211054550253656767289810619106491613140136255077056095101416215761351174804943928497030788987494013767719511163151900776447416460153589603275303832405475829755745044090760342798211345556807013090912965424722342286786874639451428948091469872473446047246878169313238340619583929652654093077567537489286863340804724750526772671301091497530826625849525886567794025511216887908457974349789601414344552347342186070729698509263010109336000234185676757462728011943124125086842189326978910012407947938016052776649403486559134307267206874717104112080328886284458075623532337485869574542379259301034570159712415424999868539201274620187667216840151137688041165563589830650600877191575921422723169926297112096587308196920488961053666644131275050016845326048215469676910597432950687602824430928798129187635499006170412458794894586908897854290631504673159477730219118326780641611811386658952350939075064559560798893029610198689987847718830159866601609078577472512302616044678954953489477213314695766871888699535400966006408643819394808515047458391148863726011800380913748157567223697292059004407233446243941887820762840810396727816227915965412917179579288631409816708972040108692158997765590898814955546358432555124667157997294812849756823625865480673729626221693678170526268147228957132114444462077276615342905273717805417718482533365739546479114585332340876715625904178811358823184398269588237566425647530034507707141611357480914823992307974956177283446695586897060916876179334377420071031187342921186659122039034493420081018232040481764748645059254854348038615620939147673857444436290972849011406473799320227832804450934379103910793348025480432699907054285725180610706895462051395228859581220667903510725260485601713604111641895959557188528119358026060750908761962060381732308660561983173359280676488967312593028266771126988280770205687366189024415280185200766308640313052087437583530968593979793654181475338038900353049096101812796785450917086588475978430581235690539157612747366641088053940686100108516678311313229620340628032211055005920694896772339440408545529541544955363367750019192414044810855772390929511917470369386905622290806258305816047189905178571377286072162612713740910186062860100891906488203971474728143912599326742669996231345428078379422219549260457796331869238054995217400963453726168637233465590305221615977153820125916469532485853463070704116345543289726594746051271059347410141828851872128557957294201872009351955351900018880964182930660893592102738636224609277195706887767379682239101142113713883630556111149955113524623850876526839001154320149246661187771902204936783391076396790317123260360460542065744896824799624311910126985222961873239347361427888734717340798244583480956585718892138366722039051751439287485279511210910574751080124801362527180046656980894988143255182525270023670582093480534502198091723269331628447267993485462865158716710726602245830316996191568447245188546393060635778763262690447430962935702300150906294753462595480404388939238689712326803253119707053424023312247569699041877149266354327074035626499317553010552919296273290362230194721039610532656088879521639554708673348975259471156163323245022140790291016291444125184953373810885966661854165677543089316107066900191017370328048100268886953111027946049773614424558041421835147134744687769299708646695212373701399661456758342009243589228439583616878870353197467683318146280650154090518095104073094843392644333413359226783946958835916021003661835556878574233796791781500593232618154808747563969663587834808283317464568725331869482476477242816567144434583516045580163633854091570686155747492252668465624504739458086131760460089345671915410943005772184472280731692275081960042754316133335980097483948718689926329774606143949336120762112098954075015766547178087609136255745237112066450468886173461041565932007957665108888987379652347279561252962871699352163991523445652275762502556626836842743716975424594308828096352666390214493446459588508154832562046815434686556705621252556489839426849490389435787517972920989020791043511135348871858839147683620383733933102146884752410792150000538797099226790801688703863195191121518796953306265391635322066581072881855139185660455149360867040508068072634911222317101958707855782460711980210551862739752863629181556500051200731498746887107970698929111091529133835987047821541358309927494578731899415736697509465359007688680643344892252134297090232356821644167592973826051767012474860259467331298901070259413568694430391016365913418196964162793857433163199313601364042725543715129101981274630563731457091750153882315528815960593341350287363310634917349350193442856507660024304188750938409883221524069665121284901830697417044257101219194383395028156207891433762170155846171746379327929077871402555736332796699700166534121255789667081519993206586429023901155755369576026106851888205324777157138858867816484632070294641162160656319838148094814310823668691611160529717959050513058769534896495770601939531621014627430892829010019023461859394550900295658930398327986532863641959201424431255970328574441215636974762485548871173297542928837097917182177911307967339626217642988902107759477437071652250858472736867150668946195963202282106806911844439993791307204600869417832441370809699392556122047159036961528827561397489224273580775442887413742173292866006862244067971881728562671309984041548317580527788628380402446490674430260790285452452880032935637741044056347556107122981069567904522387791851280597944148836122121425526895610450035853654541819339561680070753724478574690719684584481268902012393595546916431158796603709735379954122392897707446643942231738411227966531537659811428746124363811232766087958993072534218543812479404641080317339373491389438986945097870625623474291760339566002067952881479018770502079279179132183026210969421338601624651538685404781940767813806332284955952626908588410868947384662464755095617200618331611223539546686799546056769077252112883536614544227066368046256259001455434704558074000690140934623743599547172104012588808664634780224680334074684656395435163174157715421025424512533073899565489503928211110271418002952513195237914565871842279174825632128351941877127438014743990653239691325921316671514358129324924632522962170357874158058756578695339872274647296563335764225357307639329235851841992228362898890592906603780579881025948493984508336588659923646018045024159905756439050631912157026357554378183373428097772038396968674644233957046807190519104904163087606110587415127912464935577779108461774531028653062285193595063572523084343770944936501261917526634937418303235140221333019816062020252375795407837008272638278681890924994394273982504153858568677698237345922986190647739126798346779928994299288333886380080732675683792559112767264139305292372667576086805982977383841777754698738769508583325630081343174900506114091466214846699091633057249188874341137613686212766810702445952346997506052559886121139898559417467642953144337350115624988463820571116313896874271348699277258867802537755697379484525732533272871721400562872862406417993216211272328909471949658308788788960604024208846985501508350466651835392461096350764614055430481338789198408295875916939407204687539847656215700650547210111229157095566715968718068852629610486061748557095007873133641637094485730375105759642231949294642331876291731781220866198835273717845841206363586607377572095701782398719694183057869926204175789581724968962156212975691019890537921494014081837248123605118986566265673874126794230345761218177067208436789008045409553870412111121975357536291973187406720825410447453670163258802345692786060734247019979599711183971588066197062700322185269375214002764217858242641510910482568248446421931440300049825862057970038623826929691105790629558716438910529126073006958387877169686172616994314574013846552895579964368825601029667185408055453935322218138631739251403666034156199485735691629233978643016757202863019122642729697171609347396192272633410580990787997721713734774239296382641034148202403317947142942020366824413577574756322429472425484303476812629450250619183031099179401724448773687197811383762611249630934511966103290795697649985695481008184910274954759784364087286554627011700028460981013411217680713033450081171696592559991673497298461334270576145266505610301346033209624528511366013466152414643070753708190635071813594671934789615003032714305371651813632912568982272744275403953029899548208643827497122592884339134963358107633192222873860487528736840284558498045587019005177710762448248514969224575934358034637124499828988897070741432932671834057406650766200853343694133949176104734381023595678163367976507079294936880683122087687502565809193924796670413693420442775282076841962576338094135510912875561168624354467890391776390006062535258678209956081066058377347767109208110563291522229417878796213795192729606703734210431996280003562547905715767954470512783052789037144822519826622284882993106123803488000762647845464997477305506716693695611732398602794915628259036073925058706406479929354109857816318764954071775677611999595874062915520596893003004459607480740698350568221880025366893534067821791323664407095019401567940964393894216905647330802460463575357281782866055720449480321452372491073443066023813495881472521349199114595909507062466273621663186505528475647192068871198426086163822089950410024360403434416211263180997295227829765012595284151426723484603830263776192584233978980161280951951479417448410805374992364280113935643319142810092156173372196383856704617556384563801678261167725433354781878612184576828094259724704858275762867460928587327069725461489420751357562986659505477954990791399365697491300414723187771900457660633858621821264494304198128553996386293871921215958894401853518943562263820104939687250287703495321903057291140352659843507604025599074380296750385744077137246837582312762102822624130715321324892119645289111475808603058210124724900307269569699400522364526632267010049929347136504889481207579131414884536907461458597805256178866481925285498462900454033304165508863138293081761362690620126698797935850048556767732396575011748571804000312705504559212018506967470640535345193098256879612032018073379475733549756637098625317772472269397619762025371247687189609757738064410047183580231602079821992077645778642851236635352477615203323418962754227861448385367615838762338396013213037557114482939741002999415693541576790329949801946655619895075935769120067023849234571924354226457784641057685979126926722164010500978843938947303961425167337032715197545301259791444227766204855466636325449081882739988023387881578583209141091010365665123370719170941495582170666621401508546495922644286209434197681123058977497106046308248209634291871927629537133689234075906258692282864820969598007426993601416550802797671339629583732171522261531143028231349504759625477514589952547893209235523898473096483535597333376650415745416828224268922009072910969399104455832567567955696037454745752641232767436003345025703672899175135213507727431328003135065609249669977575768610005262599363329536770667679494368705417546362691850138779199883199877796158139167184105416480914598651211167092326672706879056050109653047775977314033415329284197401681124394236863155049795889570044515356248156506409964524319197240710520436718900524372961731656538414625939412701323163559020122090726359562720915244588365627758098127473540531563314731387375179667706669459260761299972154514107771595997758336299610170725046794062307577805590841821532916355746765967417481589008480334977621064913270884143062687211798181883606696291901152310039806921602513808068615288065465187205649536806754935272821725354930658608838720134552013659689149302847698617281066892435341893931996930880735657502915586944758911956979350909459184810998582100653180584754418047189137866894385623337593451021483852150345761258467030716901819529991406659518818900403075827307400110456204897520352443980974406373215716472967631856186445149551789362435652742124124888024737848298049651671091757336716314522066747559543072863104341709963863085013499608352098836442807326602566078128644945597304814203562251944562758613715557066847590254918476938999635050231654436064247501810965101855987189489808896152363318678786632283560247452218367937071668478685449888521305566484587974515961610883930384628629142764808085879671884565579031223224605385568898464150751378389684622297845324173929980070324026533734835178516339460590933204232725560859866370787042696913275510359779350238540087428730954103463772397561242334057926100869461291654644728063407484821129414697749714030280193146520774181668678305577033881511226742138631493346997644472390046824581707985395451994798795985308452270008003362370018671669816265170156696446197058289917881936721480523224608293115932203377022925773274858527818989824744465589781203909317121230461920474263815896701602231227491372110765492409277153079300833841127160763619727508223834141189684048381826851205636041560568140072330690861169369528606658040019874900877148021132558519706303568599347162154221231887448336638599829987473934243867606821645153980082091580631588481796879485322560622431243168152771295329416664724587346457900646611037586037308390061261237029625714770944812796523468224393518925763664873993359096601743611600075938040545475165599450772100314594504699024146278365635519565449678270422808678239119997914072627911205369474943597286402215133263283172611049395123705555757513449188463774343617439487567600388958324062206089194647973533194737177505394668503212759785981766066543362229625153981248802072083843657761905308998272362881189037684052323502487723364215588501026643251179323748034006097969627888387326315854411531837618527921288264825095894387191304555820232659954198877672805811041380163528862294621365837894859835157011497117783653221951340500729895367259895913915419682660171370193743695687700743838177205936894051285146719561034910408998358610473728179612575534155689624515999788045819956178389181520656558479536015757494433070863275954968994700109574545666899145230212959470703454064266752692479184899344706405280789201986625103893487159753698401721846203333037730590492829054871073710121474821030864516289425964980359240309539501569046346234026551713288509457338564147601850133541383974311136796081854304921817291128547961335007761954011789576563377062047913920708044576675252911131724361084966414105085377649311616842968178558231480249948223320322652270822921564384913933652428153213815994394410748571567109656574707242186255889106421966122517275194763319350631268716694727374139993775082870810657584793960040372064833906000513183436435175348316260843597291403150660796808565452302165453894871088625295618233048435635218636328551182038674826442322073404985843647611488965591933090640008002298698112539553744480404670176528703994924521483700749415294186165581253846995003393210575690262679359397399872046734099836101739094968756767164280847182373148008787986123569917666422192176267610501946671196376848838488424279114990046448024944462537942130626753867699009952945332047869940183373001067958014539586603072035666110895995612295505199251994541996550247467672095536890119933371360397193582769010274527662666415781957831325098830465008500773078113830381834692990861009607260983569133905991628675361510544538858546284026908704464759475849300127016803166844328687445406604217955180353854280461198517383576769369047977833630778654660217713236073837268037582140020590782427925606965307124344661168508216953304300745097866244073552433986088850389665635210384806343111422436487487976320258204459329491453340539346424984899475222926053400870489997933930207631426433469855477484658736047813703552458053534612043662710508448398491479939758228100839568989744287611161059763974551169448105390705345427484207617341564046236102999211589475300475682726144193492069180017446007245759592832925245597674038826139695618098110290734833334612116622212328377037993451597733490340947830344363667982747660567178239914306884281008478760361637820152883265551008296467350711299977881031979330496021008719516947004800907910964519820523136517671272294312257914629692710747388237361538023674843735584133065253052143610784888490395018133221252579678039707731457029064584703924495132575853694634009609052717959143755257539797062995988169193048253104401493359702743299226417992235925823733505232701190405903492811735294416697207569628645738614476792482124052095717382307189772852379358198056704196559702310828185486907360750034068377612453517163687068978183715194519522304467956336554924084038523227526640913927268486447472052233278609320324419065895121837106382927307480002277393222275549899200705377524671936880843374954588702737938015035414079986984656132232032725324756023260143356190641989985192595371189025728614858419724261836541712450312297142015726354291737612386999754223343744183078392279794590513121015862232288942179277293424093746581208125812506222927646697082707931325726680043383608171797168350672086788834855893923219618857246778995723768874375890588466955415327657155893824240519290053398081382938348961659661878619520936445632033209535334936617071233657172563308002055083668114260331874497302661295043038724912156252092020708402401724502451077551387916619083950097373687342761890296000687447452606188853663623808031285995889815123634467342659303450796342275771720691479331840061051493662383698890298841114684068700561458877518199014817339319739257305935552780052708179570999273461205927394368718783482222007164147132538753303769379593973337608913036936724942992200088217364490471771464057901462455235450732487979664900859525187639761619925094808738136520599710606678182014587829962412545013455719092477116184472023830498672480154080902082358221457382184456310644547445108256417430680225487046738972686695436280335751923780213248510928437646656430226581039561306923228248014159718694182803299355848464010048897651085494407819569112077229447720340756936559438378408120855387047575735953889445152177984928700690293294545062697375857547850013027222892010353838833998350623464591853238706512944907396436559882442769946861634579400170873838763247539005933133365803529092202431119982451804796308148625045712548123197072645859301375852542611377744621481389289504222141808989478867292657989988573969595154986285994693845705766540884525389439317763288077527298550535068825621275603817255960285251404548077886098443757766411349898235843908480680462531997278714998316030955795590702503058718365101325187926054100592478413901857373641200003752509049395778225795087122403069156594329823365853206629463206498239139483838524627020490061982678355665560793909442510776509394884777488929592676696947165731269465647545697691235437597291076674658348971294503714139254151775068103626514301471625000784573138369438902963184638039158517960635196666232246206003893880183962068915581120199178388775371575019096610668899090167325710763222712714278053507781063196608732159359362169481646211898372597784908419445546039748483902440555280632546912943984127839121481702577556732121666122124080614122916714359714880578746429089957582144888661593081612916785695710441415907747435110649802323931506589987545020121932265556182932656924392616431113970090879998553962619859426531894601747128282186710597123185083665918562449201490218565010502521492401351399798133473929316562319830418124129771100900442130027859125190389713249399485406512367496398553702276599176600864969195565587862771222222023007038393508466124156122007921267133590020945966122483865676157860036681514411492977685606741730424260336208567722290534835283717987375617658368532692430087255600387231498081907135756291761150136349548021440315945727792357443113966866411774318676116099630627565744690955690751615126072112581876718208038048993624712681296723412343650496647682779754071809398951930980744914662338767619403157443289197192586204141285374108117968408969495536534731503486070124707900786641321752775344181419335257417018932458649794842375158153509121762344838225333750608965318461769917663454162897175522778914112218411867275454511764389080457009186173061430700959299933047177414571123641310171889694256364710906079729014719136286180307977151532615239761695380715312486835548839713028707096844796907314117807116367736847591737760356544594661419701835490540260480464690203915694542582107553938226221072308218764378659507714084129509969336772046326189676699794096572104702854699264213650700352374919735326495724434444583498423175283570758142551160498023456783624142037359264249025559152570705921195348853643400225550379776556003228991958974814499882407084066925402216057834792724839005730673950799370476804404570305559515484705724064631942988971768766783727394043729555304077390937200305048263508644915529587157448913139583786200143072340964249218680038352515183071123080962865615972730404043717086549230693827983328965248942532823352150101766490326311442377988578367253654144567249360073079873237543979806530520410061324926817106436892562248164816698710113804448535636481499503699317117841342743152172810987065593094017830054423686318515618081301106204955901796356092630631673951626632578297453309636217293959457488646606906859417969848337757901214249595553582479847231646049209784260842538276213694773084183849980638296004038970078535329302493308170236330195148297349165788150308116597171402972856255303374866200368096758210068932426963799593237636980843303468510548839529406438366980426390896398028190489302016170445546687869235783291134314860958411792222612221279955913326114806016360916159674106445380510620156207952470782775998358890138984045221158106666152287614810398254108483949089599643785813577993981781070027968410344754120135312723833305414709804254589718000251499367236293852109360688431272680226951240351465521357711650412211473281816000755717429219031421860428778637273072074978447919013289817376968367343514107097855073743954128148110217938009588448136645078660358332084255455705932146275125208797198399328105481173197359287214134968225966109548401655683024002022297491749396596610530044351720013296736317845686643408181411856579232852024130466259704069464793700104039892658759229412253744810599694324660319710428558547221845187438236830806093262273011710396382471342873275817455244548521197689631382580092767118863929153693761163278426582746178510012427773646361502432162625169805374443886507018231127939787955060322218350850049389309076312475652453899792026767147759771940640359065227811826891404229754003155523968622948282911844024115081804273315597207272315003409285053810076135651957054578511191892404004890694549215279973689126909946401776697043590538662616278701823324920439836088112452779022588140233290664445563505565679566888753863385140903523748342317720066747594862088944707982221791077542341460838094607978076520526988092283766898052811684051999733672967008681858787048907670974129470389535826473346257018595153208610595522833203462343142775806146682820361989018653286009396351412438903580044680232433646383217248256802225002426604950814609140018612368247385450510671142286884190335933336339193320857891655907084833106849605245129094525807713174024296006883360084999822304686987509838274729550124997198629762702301877173548986590078348969005676620766947968330287485200641124683926842535479128625365307749698175632669384133391117836570368529242959287813274964405480351649132374028283492734199751346459217228026938797696178153101689925256714865338110603621295936356878693780585685079701397633861415499501263295324512587730823230262199494719898634292608751273372016905838715242813400670133084170522181393496323570456134174156630415265676166896807182540371960783214704184956070675138307392799504103481188431868292871530186426972283871602017177394755048740384657570713889326061183376196148272351232327784452328888603859184063994608353276801123963605461864417122456919467352300398852159160394225949041019626404724361513464952314281757621432658290973318737925788694009971779019393552897525101421585839907071860409539688203799062933456753690838282838488629785769756151683899369336513767232366173884970380223896602190259520220974526166198405382705327995166630637144486085494818229490615671241167891148585024209972843583483307957473212410093631187812143294239035184490278868547902086963085697619182601626336294179856216531940111719798404853372643061874477249919717342552826304929191743176377561485092970583143141005512407880506908640271096257274460478937044818488197969696270674064486273126103663748052539836444058994181691457480003268345878780090320523976368964964119260046059586845140900632197033377079689013907225831715272051152799820843417058079018372315645343296684531002107608016423214176540547178183335289102950980345873426180281100902704924114360278709560702630470413346432650390426385194330929311706787223098652491678140908933968629334937639174870494671898772600482382930223984778925569303931633635908405011294125842232899283033494174375826959717523181102322953134659976705699442819678908430848163346189422283850835653848421024011597630170057947635570807896485093879409230855413724766629591560569290455276724878402154799328083785144480408404768629573097344474088602448396097661436572682612097080837139933716962263000144612099751223505842640584549221687687458744642112216848430025827551614888086862476423204416124268118344440410754677750137494347727217589906124880424953618748651239087233630715985487152328186687765287810130608804146753891020677022256715237888195021516995366839690738208754062778514523285860317516280888708091710205651340707325563380659027500918177205719605552906219478029995189971381599498896545751835566546100810558017895926684710309221352795075448870827283251565158275208922259792144283434932485307367200264167955866345451891185497720636274168830694199531924646766782845316045499938005864999990753980193382342070370611377228673147748445618323354789469243182763452461054664479118624949610713289417851932184003171327928805045496223603571073482962459062357548350559935396991636135570536939723927169935666310716562822777527253096903183050917000440798747225458039111809762758693020821945161938697933757395192377757259391260404493431938370946278754072643195674092876310277141915031263601832115903010031679819202794427775272414945041362061359114955491042527567115485315305896594407835939082508528112826951063925993496358086106219609841665025549726310634750665840701610123791815974473723979635644659431474449198873876193231297536754921475706175299980043974865770001149662348472412469930500645586986046548803744389702488371503879964308346092522606944296397412376211958102941202534294439069780063106926508028987719914819353388119770020394098787413541675473851865443050881547278415826329439881925216292111570695794210130042151378332492352677227159453395247126865534145501034283227426366871115695090943273802262801220891464701843225386091885297258066280290484934853246314709583899394655001844777789445412208452775492432721924165940799670353330910228649454626435085038550140989966204213973646382979485167828622313951310069308514473880241391356465624368989742165015174525336359332249005663820203197867182720415120269539742758708693103629030924025806370889201295704003064076207892920590574375276231245090842475080075901445517122798738427603686438750057287351222148170580415402596033627274725733176497376614793967215602034915601035751518634315487247858812347508515816271811158919228509125517365915390370769563404231999299694668553386698926768651683770488837580273927300573794828770598032077963648753599723550342533019470069317508501117507171588083133736586410657786840129432570785442029427355594446456442418984549353789121256554317087202855861829902083070992783217696781700628760430153947262995844249718163399228870145489188818905123803900615049817546097550250612406515826342212335112385921348772867872474787970609733839105054333007072105694743950256316345572660333844733609138969810771908036640841419983688718187337292191753573078916701882401205701496233578294107124684318199441490428843779283329772126433762082427391595277587136173812829005531734734430054912881903837399799755362130417736195893937328818858313010961498015493990909500574182637515325451247543130948624309012877771641944995284617105923692229967555828264441820505792896102831648210748714817289016907399458262131911226262531815074020836808388358993055411784454659032802206566205622375887247315139067362015498479751682828992811768166418336658818789962409226990502435271458592709947517361709322548400060167314790863829634811659316843337903827249975450126477683565098907641345648331277698676058449265336037581009554295161963251025843463167129491214176313367357201100566757377403709080222868571639297289291945939711401363142546906198541377755098903649443326009669655778469806243192517640916173248331786954990904610607058141161994690415963243226579582930583374631137674094336491788948202111693668397973551543766359291907532522038911631405715992911926877272821992649839625604048717108352380458728612167263894977199251255800305427181989406364273543083841132564387197051610457788691228390123976036193760682995949245310996443742772242877235658754169562789944686849372923936848003284680178353290086805216836789620378581117091318330206778197754079921804056331510984312683292349043226155830157914812997545117546288332969534957041676741348894379126746332444832697398858603199879989153629199430119713897256231160319738702177133621198651536067034134435858791393736043558855360462121281236617435492189650717283082257144113455612780033584803348128616091036317358356524720166289232474514696493170832520298435658737066791038922658275576902544354283743797357754322686881763192109421704697062208855872251729651245027339252318941148238391903621539454767121724683498043900828692433851382530190459451111250105318492123759904775309289091350400434287595859107690262123773358723879868434911533684878574381783184107820000435061929289460312533692556449485613790473523348413327782845407918182110044316891288341247474806411141628534379108093239894854189194924461504008701854179065341080205413542343473613626446931365118730898188744116495645990367627919516239320098440717139082977962518768681318138305874170730797972755831083614153688311433291957631846866907232393724223060407094005680485054592718193286523312391355430055878848369725659598828015839593286507277216587565361211370544443189230656350680719466034098921822945978704289129597570694684959259375410043226519890138377936322514750180493720066169627249301152441133717787396242690783182151684927165533236389982510738743491373508172767567092619974755782754300564409909811990357934716831571017086310190100700198237385341319442731155732070593951558784210819636241536967938382325135489739159704309485020729889683902022945421814920656725033084895956489635369074453719855750149552670132023716897851692699704516952948076892433626005606145528444377830635804044686540959126135189042033105729197298655214903551055858252988491652241195033990425353402189367455897507848558917542540639587666667554914259371601293233549633617735941160964173729535246526018163512235034437158390624336619830781317986782293420549671657060032669144122095369240479190402894904127774262794182226076087093671655604973545708493734110548012726526510009008664246111670465869887796017750394248088293162988893853922144171178897316959022131595040490819695210867594771371996988752869378445650028030619841306551057618720016218518058892423682927042409837777225893080071963563286710253989857744618270410257468828210314952016205354685090771264633695155710082852874859373054025611564712903084541488023969310652662168424953748929360109141358461060685581409613109179035220691972305111647636126826748614105143490309487038647357175386813856588868495377847988118993352651545145838130264309111217230498778912753638838171275447576259875988138497764312730360022029114278915911083863715886627220412501980787426504674378590632869219107669855705506922514975431415735131095225472274976422542740508060610986911229080375610057079429728340785712767200934376414877922249059328688907862594930394418341019445443421316222028050610614285599081668456028588249666318186393497170131108123047112881115300081286836006259536531922266739546707548511044254384504995442579350185153505585063915017351171718042698290110442502352450857946326497720043947243643508991972725608602927975589986845402094499263202487535697422050606154104352492235363752328051509186118832032358426773651125081725307481474096085712515806875425705490625831973182374332755815054971390751552867005702427747211466340409450929141314440603617370140259149255691364000516988201051648882410400364429370309863964431533820378548693146185237998547247421209857132650674300993362235669403008039130238304851954897049962234583785638039914785432718664243357792540606725620444808929157094276962517486245215007846786069289269160149621864275549020314680885898412202751286357965448301978052615210492998969724904125863520090568109011219110510631318664429400981924949186008303751733055091721661291558999345368850195631371072050149872457426719776855638053950602749019118168337901868548882002844346496942922329258025717606896346141553269609627497744830352077023279812157379331264592756207358751381571902074212928493403575985731176142099408703431832543265622913904053108401993000922140854417673315622827217587340439351018594665831505001148462620440706333156422236529881748112091088221717016573626750446908114046561187651739094276800118578675483078027729637037913118867237433190143550887923302373143629518486214335275160453440422664926003093788634868356851117692025348963687539199246631671468607305111564995985544248769659739129327421124284321245978749269865352521161341873510759065869116251946722364306413998703438494544786328055647153112131279186756809790139341268450753457236206015190401922704564826393753721626583600932662414198910648222092075487411619929021037320735137240843933464881446571041375395972158448449540925784749459358480321898139601942832681007431301810083491011725117435755985325901669207825716168620363879071451647710496569133422161607184054515647235389464395346738593515760055826072303376182402366485535194208098619499433848305331080346134509502822782045799416066582099305337967129761412706553853214532818359272678855047381510817290927173390428261795305253648314563629999007849126680545490894236681087893391613493249753341312491478409260965384629884074533381706779139257195109749236952004007729532312191053664464791669461300001146770918612381118711653938704700853317292278724303414300163296590165587681360043547850232946070117044833009271160118523398135209615444568331007401331914041086042602189674737691362906447008171019367895485327079567068974086299341358361833280627366091838894882228240111651168646729416805951346160996613820404015015236068023851949676275321300724481352107266640250567930864722344757243609023958417961042811171757498102122957592331263924821179269305462146629346464662050852230129428057732466585656226894631919229203084796770521186957409344427024735510678823937819305833602978648141704102366477901302891529824251187197533434029409292101908612454089034259701839978008430482557466952940116665833538224763280346110101183915576291692196589986502103986053233297344196747357743633324664561219398645657402202660769176184366093134792543826535251645769252173515198912021720569818428170893174230454153374468743062348617795594475924889924564740007058433429140779774309708471848813927940625264106831555943024048715012742568124520791877822182421200733185468982954210619344663217800309064825592020259125366948043982752355491916937318815878398221411850023184549578410254801458014275193697675127900466288579956745811176379328008042030039812523553231508603735916720932799707074868049105106507714473563534498810515174056379917672281466509127732602234995048285232753631453198187480042847656222482421915156744860097396946558234791041292082688789336884654757673682668084744653761204524232800251047743827678419668567515805309475641806510415007200727995456864364458053372695763023846730753715673262802804164229474781443384150197207695365675340804861586283819859869449356766165298266719372732454038708623300967062987201485179986336227410109740611635460674440023412208647825186417366884249494190483000719538077402309432065237457918757445194673414644564232478576597566758504530284589558847537638918574160117328445064317230718237674001011181508895267514789643777081993696749732393242145782126424724322541373520421475606297019106980839911549244253439611733871117666563194449281771486153023254791090859611994704204368456268248073310240747036635863290381625845237932709587642749483131764912751425685121370542937855151078444888611207497904950344998645125041665156052623341410559488941093455762409551703353329967939331062953327909559844947849232365574978940279189644970816195287550066146509255810446582020951945508297931089909211007606196046052219810129378680893140595663409844176993819769000199624683649458976883219611906880374304033828057978712108941050383857202298083414300591495390563126087499723363002293836682893328576198071522301912685661267217692855030255073691711444409853754651536358021065850563260481093311236706229357901267295056271258177102262557073624517505264457417363074587455593793349776864923556240042238871262258538906074700872353985915423346699171553709589120915882273354647101480595827548197025596111800099542288489055869053610846888174354382486803588135069362993142758905910866971188095972366430101106084750744889269800100843034559324019074631826690331883126197267697627247218497538027212296916621171509340064456619168477676355807366250701563194803053335895901151471389318758419671094051903217104224648638300996261702760158739216264062331279057647350342216363314510748761957508756299653677019415670160959463703419177807117302071681550134589570167163616557507659763582797297632922774892677595237709288932638496545637963680253393351559102283832366790227034205859758402384576254685531719966582397815600035429179352605305163143962213579060049188494312713425615425697973765281716793275510473696240940707975448754521156326548423739861627660269124094296200131810474257455098247774651660165616865671102501145003060125131228736745352116606278892138556509255199035518768493784545144106648645588818908821362800172666919531166365083608868304850838661336344333325635678392812028099691811978327097574548183460310483789842784145128419096248305919289611193618628424489206982046969839574658540692995999487135909370298676596522768291720656396102676639625056552025720028246075056422072848830717768258900266782544912077031005629843540065493575518567871769547691177110796889889307867052642813877708644058261129664810529130732739302144477361766193042422104274150119319265908688972903889039818622857543659006017297609765637904625163250239029603108417602464684495914571856118449895072227214124244770643260969481689891863738374090934826823332463336622819727697467769986990268075495803760239676445047750232643511261404076849862709110145329253461259777873510766973711330840623211594636411516137750321434521687316976512054823684287713570002132826891005602352706698666933973076173316668783790822920196999482694140826454470274713774229151995101053330149501303761831249467506570559557570599553495644292734588118148406248438701728929102108006473892536249371113387006146622081716794475537251718309145211468676493622168726601379974180519429584155899153544729394060988842034662979047852452119415940836330473491100698166485942571673271120117642586494372835997595564071209383081177043141022784769025485208371851955567110312212130482450421932934954697468406393890282719408843863745084005574514513474593734339555683507739589470349750538193519588312936543624841233674757419473017657979956814795669322407069793219279411735260515906128189859755906921534165676055347418998016051879114665951476132563358149674243050652323064768652339417056910027064178477345467853272658672632557694148000486258194803313756600835276954185097912539727117792135821648873336165581819240105359061165535343190349411478823565954333255468785886541797388916023853666380504597734996148429422332155746888777117038049915688332685452512247120217407031606746889996155492518819899288242051000186494917610037113526437155813634250879016011561148857036243464083019487505672110383998136174332169076784820814160580483433824288190886707322253205659959087574021363577266988232819369946099779350528893541231053513781296182585442587048169586986618537475841164668815154952073298129129190164500650050221079522299563713972807096686485240657615042097277417787037331851912698519153720156845128222055444046392351573760944458623347055648143860872070963173043610706065380733452637055976802965845935322656036845312625467636769355077497879496276181481082165233573572098100926763233828005494812406067235710203293766621518533671810776421894278268108927356272182921096507780420174136300513054426793520540541716129987530715454912269526473411026333473716672878911562427624944336356619761251983083756762834540722293806448423411637156929397139251666564816214312029182082032927823133046392466983808678383004513232289918477226898595490944448095851998622700157947543048703706744587009762262949346497784996725221324909367801193058933370347747993058433619886879689411667796220600205069365902294842481343702004005171498350943184804587414535336599983592431357198864428982693971525399923760726291098194036708397967645158215019915955741446325758599644780383964630554872430159599132701934773580248238514010408436877269125781289861479144140135256493959752425424067325128825554997119551455295558010284199358251035858001953422773512246733765105448916809047667141159555695982981243428930942768204248079598097914321833654664941620679905255225806658186318372682658803954591528106341664983614254488376606074118439643345943786249923397977468335285972755668824239768080314875529974379522052356063135565049617603365532098424925025400492986657437465329235634805458637828374121467939062442553216141114193600509990696778644858976639713263549270110656208033619263906512387416139975697317811360875616555341840502382672919824874421190753698313652989078250598611388076364123667488166967530435847970053596107426465284851924718438014006998886891930139732102505703976046171327913789601232871052803494332581275765271704546987834862563839995641622972179176466759253854989640009387667028422730821774703152938529419092542804016115793507754997555816772995452157622686464429765474081467881141694526224866598886431008201085021835662627727197383305950795830245398862926367198704567249608376806587979168943834028408302641932093799489048884684395864491080312084584598563186877734517454708194342406702330565772467074971739667139950987744551665613652156577068804244481410701504084072708096723761088833045952984314372274481781655387909135018107458037161901048954094182272784088076351943695627152103228881416718678046805817626257404023796427602121447773926261229583527283992528739165404241959550214605833347602603055500175515049819718793673782435592686579471425884624630172763813928674494777282795191660782751948355747619530157487788013174913508447415748990225153916117242409841131671166147670526044927095893390463073911183695602509964951912599935045152295596186453317426879169530852024953007056588534397927566569520391682580355657956519449865378515038214094922503690198180415003000223687591080151483889851651711667795709346666368828241989980817228089271143948573892066711272329529309374590815978980045131417382014244773375563201887688281758535578507968398001728472133380324877609913987449824200795785895931711646772729975881515004760965495928865076055972550204372409511671697420148883005212820721311673153930695750824189879477018836512254872887711168139463838230909862469897468608511692591519669130273145054736720452281679400989234844980979044728724006855781208363006410860858770575187119295644622969391926808056709184212621836396429909717755013570162754728900715557167348907776403627054266542786027389580463395990656554213958390841596772968419616407020517361693822097128849234787027637677589587510527437999644028103686108831435998652873260714107279383391320549057304559065258447063474406101085459761393342690295348651398722685272895743909967430107673307873476240345200079693380431741471369976332047214072626286801076243653133595220680817099680137764231693321024999187420345324451627347796207368492453804808615503754798730963859660439039564786663658564479656968347121771778701339514287886037150551404383394251532410088018431874535009025825449363258630810277917972736586777012445190115180908861948632902881046038640402521136931236549721368003500756883494890417209936003252859726487106123810147394761950587940575357104730790431028675532179041815484670256683141697338276484910005261497077836230292771220598890263742242439105796886769498227842970985282625713072195089377301920380690245562312497297890505930331423220555940126449920485784945164517707886433576809766296190465407861302785306297951816889697325388231509682374229383176320707025697273953754364453926347131836191979391133244223141646297279968647425242335628306901694789516962814336371203335741420969464538497618300303263061170316822822748505445732104154028116394536533689286533312243159444157326765678521090651574276134208295196457978485695044819776264834252207227433306068819550305416692855375326603757647368223548490491641805924080105591164753770778282520251720978364612253447564108021607780096277753083862945998346025293016346947055123770697190960156209621702436875596813756811545778501946066065140964001242000413154509330864894420099665656905734120540491450983796445014247851437505280866256548938280658692351382922782009025274593714750756543312735227068485294011628590560945247604706500214223351005152761949162021959863756343719242251346458976829779948718574001699436528348039281619981839982298165171743918016677215941469194490164802950383858141423675860894408464542935494440568260406131883969304448474992104860277798836440669129507083076082998417281942540590439847627957326612889400034078127907306518874339771052110315708140846642717030999424609045629540939721718236770697622763904257750348338319166060068734505700008679686459812601800108899399435724216586764822282319200024013792172740632926304339441951456734014082690506426171547200262733501825463321036178589701786269090385551013437418939949373983287729164469084302194755852597047844020417898697861680610295536387875305959107456513183685959045013741311878438949857551269262866508468940124678972574495471404430508011383737696310075550774694483838638228667624437048004216771007394851015470824795854973026594549702264862944194856200200766962435703960600762598253832523107451921240797893520402818654945538043125031230386576533402474321714745080034810214997050516100208021956620673960105058004782375827215903779685424232034298584246791927305108296164421837518646700881926455466406030592385559544383415148629877579869856425396531293022793147846328354195816332729766376625362393811914706587504356520940092516147995304544666736613568461403157870910873092160424979228262357131869419732309304886644707346705714014384859822035200225954594223678664713961354861292346706801805516344848943914261817366816215623481267468027482795862536209004657450398715277951809462070965622548752775233807712856015191667395939245347483195450437649873828111889234506869486248580672232745790776731964973593296629592288191194244880498089170219942574728380256963137360413040522882385387852907989205759188553588615629176989373773255352771358378992417781324409932041532655681833215053791825306851315800865813934761282288250407908259861986830358156259464899424445758247182984940666688115541734809976349216128941495923447367567734273327057945419629792297333936940606262400238226126852293188550644705365055886609620265958393678663214817316298779949799581939046140498873142141814014134057274039343766589507799931281705011415222531008598149100250230353858789593571512623537522829647549478240547700319666304936965995324899432239679369950050196761402006738904238281509349010362926131863940440173260440905233735784427185713473295398119181048409951869293772501279725948492130582321236202379129274645467999452009095850529065138381447792417213811768643600257562874857003082357642227345961258888681409339420273773293246934733017758375193304039878433696648499769142778107732138956011165647030871351199354327165169209349168746972211110817254634050532779468550833498251970809850485883405937844825502825159068458376080579022750172936171985976654156730256028888047248809905041168086635383825589246750086316879953347487165961987506077265475210121950129505427255768554811123379542051316031154687941244799856532066587820372739720427225933155740594560537828609506829948974525970268142342552928577875287538370851231729976012552478657800462153670501579594076709524008337615234281915378809646384531003245012115065830607210954581441489665862624738281851951871504255324458330149813020135062362666713036855844695416315025369459175921504486135591738225954186521416691037142432345161206735931576807587060412072835916172649151070489905636283887566531874678522017264060468618452709739566416827399385543868203666682329025657571650149354368385865008193062783312322013671327806144602164308077806036338277552782231771329239818740477376552826314209774607087048371397786532505245073371973314576118095867791993628697663326245265575747801069381483031071412560324364208933901640590545276555616784549577922256328499622918925347047280760566026805588648693220074170668405942089218387302650243106087310635562765091269506867770869126545824315077324815641868870708759995459233372301232057408820051220401486015295238883652008423755744540685950550348886638462495547406430434496094183785117621481954967707478028508883362386149960695515120209119554790011536268801967983867848743487091347716133125562133311469893249618273120633401654917257884351873866598329066788623273406910867071376486904354487715651195769473176874645853820433442659224488580275717218483080689672751397503108710028681319079313364987935663282904639775134174579565665918614252890910083019206164683626785324774904297687389229943858936725726974161735954341952531056267151552135038586596783001115129518380160225090950530097511341773582504441326234878200523757580141910655359904369886536314302368786176685928035434498655762457521358387770868647814743532985032236398990073552775635745331169651237871712933891772821071525517607019353234365981742519402459862041319252784273659373990022989969299318230700048803706701786415002490931378438535498794286141547217193304544048011581515036860533735253903938638896365504922841238136490888841237069960936800755024418591566453738702691836220925062522710859342095352350162771656683835636645624899002378177732691140380870140406822641455115651561915652394215698426006979731914035188712422222022086810491655865072542948418885669871933330961125645841677675880137497392018616420937387549064971731851619128922175908916438355432839194466013965375329553325680352174300584453739380831014304321880867412326014209163674509151172293464101434047505144371158900815781844846455336164620660161024219667010520086582330664271574263716981567469327686312468590318010350284248714618287344585447959665244534356966802336450828230133320137726326090754383228215577434494387020867375376746355668862480758389041564068319217862582916184947440322788015758170646844397009006323336162955540604554449688158805252514977104467984926547180968499349480905499193679510175033275428913618553435594754301459229079908592861346788337078160051563138026047515545721361215329912484327474205922357169911276616215570035556798169964034226818438900700415132273355738797281672694765018597545140720509343124059466431506779264890862280031603139362896876806135237819121123286375336796836115327744856782550909576756015872094291889239375131159961011387934634474171438531014295780306514753576588994274452317087452443251154336166471351830977650613981173015721037191465459808028259028467971166292316236567345225791434686122102520001840104315344875785324726542851628165216349849740349836597927039649957423352538749204500768744652111054652011754221353143290016842831192299063759114394585857713471307300857088337539822031354802808587861686529263769649473830481058711789561340355471734890970981633746401604917757244407809630690880987361571940801969462100802014949205771464501111279523312815601638136302859271895746567720405777182711925748318399146584480913326918994149192718361531882367673180471604992099755227057286277590973140696677603887495916576618139307684102913501351306496827050518269398488747700125903612403415894992460035738929734472207350790958497462153166862391356332091322990866076393230647515785917396893654186330815932640747542689711329803620067433926420601553662649679707518057658608325639915426080023422155386324610146049795737520218871145854080147421298402996775702962436593885838125777364360696315967269219943523873939542563092241959577462104023648065257849653065600813862738149326505600409297243903937570961646648604126334605114707067361625960377997496634452023150620889905701724883484619614787248982143634490658616011419338294975305313679433280847021358256819967723380320684034576920305675092179419372134299351876783195616568522095493913754874525915029581670355800891722882271426183302639916874767171292846946244669387666449545830272010729611782199815426239231301635387697851952477544279051707831870351428082955637117017056589175508693694879084752507998059810445494161994011690764773596811444846749549064920292330687286446464710276623352178135103570841531069824521326645026332647797324314605892977750383036777077771097262494965383309384744678616134639961491823431199762942883471964782539163928076871000989035976291829699466952923017498721008914096090292594836457447010211518959010631346817858494579016278530114935397371842874120566627826604480918371639999702028701047306715576913367134194545175194327534184050978896792482468087760911550221624790059956585449308881347133987998367092619976386445453443840814433140500900047440218159755412443696434302548071367788831324887096405013105726109472543457318430590868982240153457942876277958054822593938009612265624936567572179125885743076396717300521024326759165955985663244677811783006464134724912600822787713971516277056464209645093699972704508046816722104648594568595865866275346262074746259748772180379338616553599957714569781152085402120381311172277997671084729112203914967503078461922631675390752771007277502268471672115157353954260148607388186953459451131933002020371890008642102370761505635730873300260609566308219286634764674961083016955181874383479222696772804867046174682640012728464893454527534411718999900622195076650131125390256138004351803297943031368344307054777281769390755526849584046721425029939835063275089436502747474992785220389260675166806280786199012184370502161300704370011644024651461863414393096248922869806170145818780729608298849707879753444866758523708748353885753076717859058281747039317758706331187661909620326751825227793085700941454098118361493766466002945022778033218527886126236257631113569172611706783113584666398766205796181536300941537599657695859932404783054311042008216071610490830996442970145987291879343952995638015031123739521308010430089157652365605701807286720206256319020252215678616937237894420053493899947427940091561185600170042946824186769954615047509473412355167922778451775175467446541705758360238534454939311559419613907242651264254560398082317799313029832733074562280760173777651907278822778395295989020308448027739704431258037283113103780802268658571311348377080997848826362954924957652538344981298480254197854455085816930264503619439726235168355555119548939773872178018645582079101232506668519670448986300234830535100997003643970779566217676825797802218732292924177508957866287839740244804830626052816682449077418434237283180449833511672459166531561571205325438194543114804030787492635030166010390411170278098396758923898070739507908313773551504805375943923830516901188740459124523004486089268996240010012355586216376667642751862277712124558230626132416911294306495105454990481186433285827839061714135818982027242294601405939094781378874607613234663242159659522205896858058947816255921992565399751122318301529885001444833627344161482368258987578835794743494971041298460560318611367747927602392268022171319198946480068001168489182214782173156978049598685563754356641062379994627549548733032166027252168028004093356201716942433747223900876072588808947578026878214681062773072247777394503334332837413515884731839137994746922319033232635985829828866217508494870639079395320103381102767837045636452945791414332792249061736467746601605366213672329655253186653414142273136147748943182743157926595373208833758212611319757826902370930017766623382292675193068034844805209620314797885534707922437956699532958734612340059836251896873381830757261212508970725763588160193700763106912740623464243237554386619163258354883027395396503043813233790642691999165311409284740948330582253018316081576209749478383212397881685774424695204233626427872515447577556014848487749800441044934555950819841104349361556342686478106197659218401226649826164410287137305184345881699030713328298592497203487662658523268612600263190766378950637771932167186132111209396184518402475568266852765328026480669807249314058089914634346762319440194453920839774477162323054277554869315428579018556330521665278059085085081408130965501328100270953823709654112226766774872272614674619478628305625129769808606918513871575585637921633925934825548412100799491441297211882269611985106932458429246631176509167676848664027652649378918339061464566024694746751921146392523346845766982887559264150872199546839329484045595507867655896850433293682569196440585716432992149384655637004361047439166818446617216954424120658286589376744741808392437671708930151938999406923983288955110217216764002403326762202048483608010253815463928456251244901273361494513089741238569842040737330270698841945067760455147002620196184879186973135220590341516785476837232680461460893655019829958955612401273635422744262548724183506548385500887246052385657770386005926473113150198810460485380816246754387395346578973896201167892268273241258987843440823608397756219743357281847809164425189925398659334552669402961274818435752643052062176047144072326033287523863125430729068077818181972383129185872922322144898761132356408383693789001307835173116697766931839956969514426609212001257373430957848004101483142361365611370285232542347302569519212763348733800725371832961018794668383825275567641796587867737519438272968346589131952260877319014595970355008901723764226274259769558258430840361173507510729555922749280441975477482751322883307963428648242054562412033412464592793018231789601855775924981466325415026899350328220335242455132259116546054234779233342887409144014291851207777813120787755807123591933892394884377637250637101927351273529600959880025978221160609195137340687475860890444092607539774708072707943226673722650598013456297530178404958100610786942002339164209610868601649149034455564981677531844319023407138322317340430149585891100420251668395103091701356054687047260467441163111674482637493291049353829583240374240928574540422597414341744087886887520040243040763239000210415736041527999815810148500461789287578222030382221588621996395791572924767010788224712668566776375695853621701671474213777942093430702271956358688488855183966952416059389495382594773005114461005974475027301210206347718311444228277865659158271808031894192174510251250771972806079783568031988394912362277244193922592016458910355846081997964957879429281081088026681565829160733228997096886582384436947642659078092476742758113752763699841193271930726925373716745941537362974183166689495898438038262747533010096851806303945675479112445154230662907114817744940296333358385422302288373225112654010591153480213622636602354905500081948425335986065865565280804305300533615496472981548756960477867598705616990137895137309920970741539207560078816061228404787831116562231335566294247718721405076746191193131078458210595162156633959402809203719046427487206921949986721190030182875006265883696829703187403529004091623614798313002796809823211886598937258494633543534380312579380258209317564542019368398764625392411868084412611629539310557395041731034716685246902168073529275925975546161536825346025675269810348643028462940341837971758593063284196863026226419783118105258721221883088982444276200030237007864200474231112514420024976651558675881563855654607361225463082201279382124761021001088906221734273429129252277424199672958450900563214157677088001918405739066552324977281587084719834421362127753842172467263238760148794455713877599444062856793683920297729495646435099081490627738085323749095340872176074377617593649680747788633596952225332141299745599803074620465373078828955993786010535642124716067200866415899700183979133759387931643506045586709348776388178260270034394091637310569319412910732172623331558849652026819267556076136069859858517550039174398105553528369154227691071522946857347259169495635797601297087711689147864815095499022947868941701537500163393934833640025043164655898822866443460114602452617171307187034630012433870754934931352054146514578484168880069681631200129882872465658968112716794682022390708744123416645049854072127469040401308288327983396799964172777813122102650428195730355861607096573648053609919315709499299354959162926510893185876660783663782605267923027537755083575719349172379739318531685130826950680371566732608674687873375582199855831526778952165627943846409512202095745905912688416654845667820949815584178717095862972626349622792939085995914679180565560225923099169918527521409614712149770584677644787479601703389489228707002189550305481984571703080176480514848563818399448964627389612690623355913061518072409308525874887251515789488146706860346338126767103486018130780606439914411882925120100538026166156786168101607737659038447786503556401914959703886798648971475555159385747110836942970841976128797148540096979712015395940118355154995922587079579170588503858763311636517049886487488988893258115928877704538245414310684084345529030597071730808451866502907418452713315449921049643948580927865941889376859120199196750365802204414298838359819085984389048469332995628495902417793103720679991665551408837645106736397398480439626870394385958393747214543471115640487826880637123879101999129092760816460122792803206402161199822762273160850844148132411787032940401294538427287499847392006554570623276602729793247531211824409245660264489812637156084049674784787227283227589812074592540913225863476465745214603168095866341420842531080938770972931830055126496129186289612011709347971997243379419694748945667626100037956087131788341278113800522175383919134947236506121879083854117469568192559164040687734883897247249224145253837581740306802728097080488792795042065697280823178680089897102980860711689326953589742655189133142342930096392928688990420245954999338111490954645465785026616463609973521840193061910736182843795086115827505166995677770586571464264011354948485407406799496009267683418029186101732286349297888210626230457300300946174629319473833545524057774503075238915186470870304924309740398126707095150418843353612840070067945065084795241608956889024776169076815542780464749000727781469308995865561483503817753942976020681209116394090767900100074465287757139980001821214968710605367293360204860565725011612712353696493615687187169947325606851796992890391220684761445957591865388962886611317095962786843033866957140492088423163567990469335436800834443365947099932276568935834771581802100154565197409928438559156531532074687590244599750452500291142465673927357712754841411283283885122579113223270689550963090565528743847956715344542475860047605406944710509076833422827424304123583656556084864495362790631998273573225975023579976659479403067900443599546149060439268420558230199560105100795482209740304198808387801516672578636612329847607418197154055098870749882533115457377436147409355797245633204952076012976444390521890428076796484014057769142570428250960403438029111597268547714093595716869968396572152237402117396170466956670410011910595542534848441248762781303147535936844089682945687081199092329347032747620127078354203796148763330819179788123505210853291767799959272260736991005913147977668628500722154725609613205678743158403153557816093970713987075523353055692967934980755864924992946013027286992412340797119949113079181888468165081774581811779674884801308199436793361811373167170719760192338160642139581480421994628336597100924728234788432341294988093139578798428787298784228666659628831141734772919438688271487181930223476818381503262224510693994834569221085446464857488312842601959961598265394457447602573529476927378392278143675363338944578821143051886151374421157046813310663820762605890400659314143642614637878979691822235922385869574138868408886818763139931131905759944047364336403177415108771237077541296769927919147672660418232495563629025261452346350640020483672215531578714556620406216230893013284818857409622674541012818662344306918478912298025287963987507656974114333267554272221884427925467255716492379754086214282364186521607474059808641194588440495890647538142043092057410375936962211416337914191213875853209693639889738980965039397091775434831901822047635977942584053539262470892128548208112503812237407391277223532896378237390438630328667117047407512068765671560224263497305171885327772997437250323023358138102000317333139965661908973878383550116319623904664406046571477924150124566520492091276049602736388641410497585321847396025522012446481977567129127377848962714705619664254581924620565436421922144935992715534595049987652122561460188645207607308035128889211066511358116876220085925946815746297421902608715106695831095673948741991127409658777948676069016389947054466681432271523682064556402814693444154008300956837602599875544820036812630741289902354272722570375319775165919892006359269902711986233809506260210648208984896885569613064046504764615076120364497937984481722568188307570697331491898988718423529256933699184215764391839935394447951407405132384419751127094423614270595467650498895136579209181493016625600420276718764333742411556204489068179454708146805357799087027211158944830384024477739485499578135880786978050141429138229978926564789774190433818587060571313556599949118707037715088162618839598349743974496488595909413580074983855053678015393989389303032445239228536343278172743042305427509293510593393233618236121462530729790308014036668478850032875124945328393823716142541181757637451176699818399211489714048321389867279007387743199221869900772079879050229456292522795072798160063372208036784449110427773730375885581553150460989493806213554216212800091062452837353772524566399210511941249183338710360920545821344530065068091369520064714305119426165465650588758662092606823549235205166985502093053550913864348596785470244875820656112508359599660494018247734307874266511281542438058579370388325780888905730152105366212532756321169516167741689716451480018947747982492190606195376849119054053856061716481903551165211970919365871741082420532837641327263627047934769384336672525238758837944268605335304433238969578654469820819077805471948720431532241102590929860738093216393784879469064482043837159525699557608262659294831129210244339198837828164179606660005744596547665961392596975886030611170168949888860270036727805241961632245798009002139932289299137619054487555412941628164441301649832752627555309527703019930105095288378190817587424179051206670690503043002232551734025734328826433167725710184281180935308578071241218850708603935322440708929340492319981292878616341903260662948585267478397868536236294920488228110407861277545935756509720893348740911625602047645399153206868050320738195968339726793158893708458569327500030713008579741698159079248206667712724017092417416651824939911236079438455075876108893131321826427727951398615063127121204100688078984102956109001678213330128449236393452076529583008306742350307728227110967988690572081929750864621859283722614207477079514858315833347767852730535351536688177176570229357575196024464501855832783400360074504950995004169281636983861545313701172319165801966344831295728559792943780964816527824596482799671345693530677275622932551324485991196966841422496712255811726989123033277923817020444279115701560707417946594731402626007471338824554313244129219729826747574232752770596032661598161145071596549731355209864106975528984157034626070402132196994519426582449588017935198264102089259172468901534148708859415666065772504297949750553314347148508063432306141664244889965311319232940938005163938403790132116559384601825463775616723324096828099940090883475630930806928600578972362126817694837388844413527359325061197683784228569056953289570632063611769087822464719225157969273558568525658159042082424648367524464403065986894888061526296607996273629216292090431340363122345328939415678578104983534378384199462327712012914598622090609582352295265779115684048617795489184879800356704614962286169436154844358416551433043755253411234060837733251692502478839377661639213136197235336561883098146483216322847107149679370217451862162450390031975011647076981192566521305061426458281610762436441357683026826155740864177896801469321885414989999227353723138154622505845808907673375151668706658514112794721821954719696477959862630782543624890598934676638075440557562518871133365391941526061402822653311964299810997278496615543847935074127036740796456084071679323606328982304147488843871713299390449200682304313945047332887570382060276497351081564183680006195152652061781486484722322337997007675530500078659214344415659682122729469708000870149851880124938488207673567352284926769185991238918389570682249332880238761929843532318312809842282062830973842449365269683537093300273850699587420277841982500881673522135084217210668188734429421955110014224778826037873132528158298620119226819069076972087658122586881535144312569065359983846720749560159152749443114562620966415617190189196954329387830704932323014079767187021410801244496162634535974761076193417362118240021758072011420029687365658459305636410027179725707045205907971063363326541408460514937949435933079416098197339935181155732093468876048783735633302982370199736726051631485676761401961416108866593598425810397770728695793679150676323240444458377415598751706873360808076666280923081414541367457960110994980579490333484356560252675648998171838123603585140662055140310825707469726232068696546951452291769951595610779737841859793125640382942007346816202195629611081889844990584123553373290067397308010935784425421335887978965813204799324694026080375994255504455613627783747015944480085186479681276965327448350408112542196810006084639508977550779115265902834406652781562739498726793123000438159107274532414358440195338604022435532659053254481068255592160156846203022745130365363640550989564784518247773919322359930701525891512067334436512377195888053525595532610588388127261815049464996383846379534657886445668989330550351249387059528251191786035768939855786136120474532125715229291945291101847486276175115191345346526833225780418005236605600279939595165526372663072324253136080356817475285837161044352678742100801320078461057666147901033514309237595330596697077135347090022166422468509848693582326303390520286319491424936402016714774502576241300174869260467038599217544933104445147523666518403553298649252740731795982039604391005267271883658573410933463495368764817397067129216849587636060184163788432556546938484437305902606111750342331049578451004111749834880624117638645403636215799624359223641653105347303671542667809438446915243033322675013046636410335368132161890504920394441988465670293635881280086245749776975034108607676264806064844628618949730921277752287826873184343944320210617466438816014634160433819295490282558567262020193382167398209304019095274589232127107491747424316030913562610504736526054425280895078239111043845340340629749514431795585810430979634813806295070657831931339893800001378686569128677060362734785991663455899736903879926964120047107693707439152947528929281382354956719798113744933510360555916219516543435359260252447367510244437918314280532509133428447305617292826701963469537023764732805321166436778278170916458136003490283950337847497700315484082453935537700589134167461786693863341683351288081430138041228163089012269202677457889183022081370295253967583252300841010426981980682909516989504077609818892474517115159711750803659432142169892980057078211692149723440489427459562222201188953506698999345790049633471238691253430401591376762290821772791986001563151098733503709789724394454059321514166498860272488604994952769535224337698294007458499608653961299085968444523080949704521315310485100385827533536976559174085680372934912185706904498304401428730573454430806916179519631825656401318793373703988307016154200762331485171076755744459736159625996675148586720675962870847599256379703463496467927306079477082110114354414229220464551941279934462613832719517446456378960638205605958865496383763895979958160516991965705331687167314337563760709512518051895901478858952852279579572419486378833763293267452188716856959901418018703375630076161105202982547081844346193543023647756381615598813538230769564304846066644419293921836935822526553962841084149448631500877608140314366757874074318238695775101569314167806122449219426751647839082392580189612123603562969919412236705797844096332685831526808000797404147798805123325226671579151349406778594370098748596799028572685190309505093130227575387179405127711412863438296058313971393977142933282510376230206730740430377661843534158119334923572019226255226977667105252524593086091799125845322309560570709107477392757576146574290863041561651529004783310361494804277795075936652625758873182088697362258075281274767268414312853255084057981892125500476738392639386508853330395959806409886852610488971960895334572732226842682442275775574459494113184103573301430214360683622539338843743716685337938076343709107753848756453571820924913763261156548794521585614387562348452049689821583226790213151902489735573818960537541124057484960742546681728583026835164420027893776809749900761350631234141746189055486225529691910854694835908069331811543665130195512681017852230369019502701949192481229312635217120116985328084914719940593465552655385882806464295473615728399544387954208701383479740353956160863585905432115597969482699561138159617546106117630502577090449871745772872595326748717844890191456507139908702909263811406650957801478754469893815465512890790260636352280594046655372872437152332723930069803825094145853248309162718234551965603977221657056542040430718397918576436955222872157634798115410193562708842329929457339562009211276232887437168006427817372326215963586371046363639778061988072684795315957006502902410416031902156109436479545946963636927340653999705870486506386857482131626872586631630313398956566693676506857245938160633644745688260693691884667496109152627418957820587785316693933683998604328662547268425711556197893046325181048020345312200555345801193703794102895288630250146952484213935012395553380048391659279720879037234632096857092048801171516588847477381598122197565612921660147223709506626404117777226422427330865427590494989037514310945278617506217096399456666734113676823585404848468817746639104847300909083520685475450175951564482801573707204439841707109481773169942559719553645830916422955848140109079309243246428836819566317773489077259853631872566848100828848410551656495895494916553814517405596730630022869104616754475274211357535686772524623781111986250530315970819757870374353840158217692135004552165771962156703641681455292752128144771093178088433225523492317154279296516069310888584229344121831027865515162545059290792248624502834695517583003452087379394470508765242865665558375304695468555727365979476379948781976640501867605376033888099494973425272645398713020605738702948089012396565345467992383635433532187045698394509559862877070672984643393997095409841085954791931382178080497688036414598765074371043868628693675121709198969005983589862680285847535999127266308125692710098877469740469757325800070581183163755887345777473736878051344201992845032104686751234456455759759826574395602507605602105336847384514280801336983660257736849450128173784354482602171740062777589050124222088764383584325076863710261992038853477749359887966742150639025957087805122343028799988901241002479891740120166512194091768437419363688350122391876169881827844221600353467832705043348792870989738009547662889888681794247495258686988653093228845375882814397992917652793326059330342244427037209467133403942486137255104447020681067989616540184916278206569387986194186116971637410653506496163227024399758263952247058826921499769631196069194680382725191711729005545829312244508571235284271963056120644399667749557514134374407463193807459275946064210552832794046443934834672722170208456887446052966132500091456640294856523104409742884946409019484951994678396658672576097474564377086295185682355088141354069877669579771510547174071502402371160644123268356231409471226073036507497612880567468888988147885496438309711446068488992769859082321500816891458495135999273451967367079866933951256653615464617015204219352776777120041354008568943175738614964027056806690691910157882372358373292177110628262705505987938022188813385681761702193100689354544213631385006133090797084279995185909329370524875187206138984660810308972402353758236740977762725798258384136184235544243984864306103624180526030264213513164554397180627292553604054360729207754763237141618887607361414306839388174227272070055229993576290638748987984283244891333928453649692562434178185173877588741809303372294723974931128553165770839351494745083090886207988260527128545041006258455053573252027865984393107258395047387792041403382978314679037384353200976022455408434422561090578854131326075564289241547260406786888827943724190462421802612716899178802538943898906331586623840943260512874522698136568214450953462170045337522881556683149948921862967635271724594712983075109798383401757362464713833071049854088229503996637578997791425370205063849858803714725898090049161880565527196871746751845929801377940463433510394302826024002972437672404935367570650582738484625918566961584675259629461662798648748815199787861221666823579544720773455867564995055055914032364882946893171540446480638357489471615052478257213584968166502065705092368995867689819202568409111509792041834178783097360354215107924536398665519464488875965287657762534312262713027884862190694100800241005523270784981657318478367328191862872731807250135432611648092012127847933645571987437381671164136976277307242011377085247502202146488179530393513313143703094222491402068643362982650325374213907031807943291425640301534126743269579859380119951600455727677842692941536153766577912810852419200802729109989089728263051707056606109149839311725666933844200803802532373956174109118231211120326126293546175076770853372911213546635364803316398170253305343550322026846991338940620593504840097218070701292030425852709651181500193055489592342046564860830145188187004412678125273272203688917065352781449045110616738537522123281117691828839534060304287317229224321161366326911003905550214976870832698140391248427552881900134865883114150718849883892743649160019113198813038310350409511064262391939337876905284931301661291268620907949968847722481436398963468666074966977245850607638814802228579804018532244780649230755192571399649459982376797331354401469582796088405425902072001563042164586950315674431932717765442491183676555451027226278885851887381788012688879064011377268032323196198302181130149934219385952646800813077783222664813430634864769044873332478406159498950583938111637283407041263033506122329205796001178802012528149114364715335437538679883108483659562872078260856161051181382622290585757321236233339236272220997996005103098270386260009433648523827820155018892320747931616208145172060366213030019781975576715503184406996633506554425685249271833224826928816754578428077318766877203770605946918390081993469536643966887070617546758258966260445144687091411366186491148952683163903712450852234742451194951486307616472606982929374518774936780493395181197000610341393210593467004908520304785826659240307060614910674789606363539859473437866860896868566894463423859282804766112837945826580337094610656171621775083924027793736302423956643189712646582184235694730903698114042446800825322822133078223627670455884152432703235967731328460053892160917375841010961980898639077247970761418245651154869167292470272673819549745603823259088710181329115431964498573026756590119194934261893526873219275934231277308119138253710942345601374661473819411925289101005149452259130720511942358088542106275873990310642140739788570456625613341985194081631393806252485016831424820509891357574136793874864949980730364009410524125584328060344339969055652491061151201016747836956792443952337555942690404896991836234809017631399340270171679389767277875257157933714750625967144667171905904344804707734428066460756411443394463800252383150891737918883163773204599794360949423667447133332845624412333445760142998316346192724748940908311325467159984274307660879181399360095032665016400028485621990648397060986316773113678695562690033047048779870688017981654905770081748978174481987227011614853803713121822319065759780459321841709673676189119325845976988407010251896722516244174077672679652342427441678686794876269698376410731166664965420844039435012290517671519929881259425283755027054577835346921727244290405862678831485123960253778729612731841856061131765613182301416154664661139244324118465709088789915926122581642322508104768553041162483567071921912688753154841108410328589048322873910325501435355717499548544055905853693108371482141360438656819592106167594002450973098711635112452192512708369707068450095596743502261665342318359781414796505375961893454362825987202600403885717374914010121655882978253781687750749103814840485088607941244161440564321091152790774147574184828520474336184526850406043175368881540354061766710429239572710861399365923381991608151584141922136253806864165167554966177126195665282582339431633633489582279173821113005308605771230972566262131036297513531302495271716892477799356452483617660979698930186978680674710699942322638780997838870737754895043959763633825686525112009871644747799589525794673916280868874991212931821578617878181658667810235225427753711964891238641713971034950311668027291759979314636438041347841574901957474032992000669233104619538926904301548329242811258991357592632427193896288365504013139013744331683638563011526664606393001532660453785095075081513926429692850062190824278217153359235996115546872391065640688507749204635241347297403962179293735816445163709278730257828124861221405851899761328949600182561488423804081771210418708051778036855726945933078899266417413214053433703519202968668472414463643086442633519584071177152969509981492205916180434981534265366377202366045907894641396897861938246900539666361583025436455695232623112063064386950683521436012428162872665635809831188178432031762173466336524138199077560645347602815977171226706375719350462551798050484092792185843844682919751349738509324589339807743214597089391091528578021047542199288355073444837031493758870040142553139268377962339129848800423338259247092978053233943157820889271338212868660906541773217524065974765884374889292992188655198820844513443801418497200613618483911245637184586199237457850627271389237392927267286794814644028145528762439316224255263439087088535131629706184586114349662352452447994140305223551192204198248319157332711035891188514408838323227329550039594281171754931496374758640575329642545195410267431361153605461617865724087630451713255064844743468589068115487107187778980282120385662827540054048867966869030973949661262477659407437980845564619413335061501615664340164485686589827848984952982846297591304032110101306709089760891653715179852938229702221130896551559459541867167303737106607239157650418820386784981234962804408202705202627831473014081284668267407339480318146125649205661365201422646620045423924674315928589388256153659988783119323864425145918435328708243403436665117575730320153499047466882984549016792969047753586873583085820889039648321309837584063141501059961792192753812093410142002502592427011646491045464982744805087039353210082885100230169197363723668030056028459890135588922552228331101231370035114666678035688764735316225838249840841502116089551265769800388001018495683161325317435423867776396580499572310359635138620386022950828073698027427548437903840219314580111069684012431606603171933854944450412373429253927090335158634036420694664958751287526176339104275687951283523869043805316828831707601804263905862543769998442782772615052205894133076039056937195799421695933652599323383565698007718667126409430330958596745808435669287407035034344303291189884588691505403793579152000440163174558774408712209834322177224103029484651483706957366870022677319271018312628403011306930729722807675110754458924755696290886677539100075639356947688102278265851722156587653297784842772288435470962381234603358201373507968142127641818764313066871179072016675374284883498334712912722608709024957489856653369374968434790671409504428897915904180877675084806983934812322095820888927460798858444748206795518331188736269696240569550997440040981712880768018566364261723832074706613719117441455039999154572762866152577351902126714523979574205641259776552609694659151841292739743620199256786623752196085165575698226615194180277700781945966501628297675608095403821804307799749720351694423609838090156440345800912406097504560439813578151194918057861381318820714349120797890409724338912182589674402350729235846222152271410839639145335731509155661095617870106860849495242956924801449940808330925481806002120820793095567263007530006517144622431009832325022624817281046934027039460894415343970134207009976073013283449256035579540275547435381300152026726722770485068509335586925194361900857959985097285484575535159962934810793218690404620655579288468006327756841662641854486180810409157594498292446465346091367291597534355013062379647338919254706630942029871472513220817164719992843046851055498839315244123236496330371151513864075128171595468586998769912831919857169046368900116234089004346560334964239167645712279619190310553159771421341771764977441683604361101550542342845372861726911304515145715378668940295797638063024701739162917126901967911990721679901628292144001526834977858613061715741660550107260613194063321912768675680550867219056566489497411003304355795640674389767297869767497542343692008860186975944425223950220860781535655357663982580051326942104060066640187812179573702949322969000171570414410365936376808580439726034674614842694198068481481330807921205528259088386500755084453539849493580137851980328466824446329205666269727110746830874868639554823877888780171684223655851025899232584348943751331273883081833736830247294014852818862169130136615844628843496347791616251317219987359875874850070998540033198793476652682452684028009178805041435690356486570187078124791086265835275496031762210135886541749076805904369217485241825950786065985094675097730552992815831140730352252594593825995155896712361188145820734412451766341113103170945757132612833777644640643745321825547418335901450886847169520125822613961405250833778890215925006738415871798105186343978800153176219114220514995470541834900215741237662244051934788071271555597292057938177820289462790400084925564685629096089467078280960720865268853620663914554139429465942714614452656849863062346074137577752478879365279369477181325400825676228637566756341504087371456946133314185426889371490935858155460238157422958772652728962680578274094959749790770616008375084541427040334376957247987128560235587944289875555038360977535143702379640730314476055448568280361446436422685474804132711016981691171744838266141274486410010259896280560981362990311209842354451852410122282122052671926237919485307316581801499491534487062777982021650740556088880860458246972293863656122697540590617519941518031888393779350296691798910514882076475469716599913817517377365087888949837932371651377946611697298633197576663672616196005350127209381068989296576043052166036959184682093408945632852959896439189026255147869819550694229730206677001414011262754529343288971391162570158224530869439717932599444016563597760016251724334992798272247378598431335093869629358774825365649234025568886800672522501861713974236191654548076834746905636172996746647528869992392514497327898432858655494088551342007295466510015327935548933704614657308768841708781265060442832768522602163015291797926036934546818742925537864362091832960397589487298924766619572917306562500333980570883967428639221720803775519912190554448810618995820409174937306315278844331337001147714500209244156744487661903564029424497585083398604452673346377212249893204497856583268980965921000575802337807035981080777605629185529891244592651843372506389788318597841342458693426360439885266041837942608628790289219244353896112407818555088876366725936388029206431999663768858774954540326099632899895531948221868460006676738172616310092733425781006633579432887212194738366136795794232610230480204091997416719256050636655031333882060580565934447962599240280850737791467858106240982510520069703466532466876317265294289127626824118361661837192692664203014592730008692521420251785693651871069354148812396647491030416512604971577326261663101505491350034083182673662082517209891743522232928442143958944190853246352006445219038503256039636421551284031568213617488246925936686559954221777881437437365624251346100117842157909698148037645941306824217648065411468092197083282747680855004384697181249511047702432740579728321694443549370955281777012839129469716694596827331618438678687791521009720710666768611682672160424473019313416575919529875811916158171650923563246935703125683490597046538265596547123473939676166872626743803487644636301187821785509693307212988016114458267419202525355556180071821814584315788556902534440466714406495342392707246713242905063395503404870965033667905202542881222304052560784459389425756196567996515251865021149840938788965687265753937937484620274904177048852004663703799215688609434467780248858818246672125899367656395891682655300088635076468468815848951394767686107693576129128487183878409932117825939779750041547041051037255767845040472213590874298982568618025140116353866533083505288083604304722955199896884640916383752582047204106503919935173589043891823875077389286367349543767221718231877029111186173996619389132390079710455041972616072221862774840585079001254146448131503063240046324380675104121851420319107146366611453984483306897846766200889533691113719174035897556221848239227605545557600752869587821815608417125056546615246714308811189991605411708613148702653239148757939468129940017375655746685576773993608995795575051975388205092772029244282182701251440406371924320825033048916801547646008328912744031831680416245761365149099819361356957636688103533398902027942395159722868624890125339635604452112598702424230977120518386826553138769015774055456371906453000199973530549157719620392931280962930200004011148202285850641516934767556648898403912929613538714729721700544954854228263702207260790384164652423747773770917353429839339876630922347447584123992796041170614894609939997108433766765315370640851178701027071340092818366701227616465675408246711538737625537347958499963165089833834296339591808432508644981237899037451615818832016894734915286309303332261242324510027649408019174403109716080866056988275831992870680469862960220639409272176827590565596914759468041634546957138291317386288597429055592548660038486924413800297962168774498972183307098637842724270253800524444547515626635147593418048000819147063572607800067218562605302062123279501853644787945481756281813267524408678847289916872938137390852224603705253748467309175450786162663874997904856789842562437947305231069842485929125514027597445389942074359595953775336529630722979410733259354644178395107791399379548762228963128190486709817458649121668655728579768343333517529074904049882204198105840174762066983958292984979244439423560819978564054458895813378757648407964736682478617328313580989684918108774243423964007552569559613705413825390277691111382326539958485099908700805812137659764418879911736194831145460830411508284459168908950040534398484025795079797023468973956789355063935406956759088668470103859548452974534770268400751411751222350239605341431880880151239928802636219432436725482947175562795322149869565336946170166595284801131855399333719343963687416514617763239254412634419013061662043796697146632773682040027744299263843602464107471503818473073783146799819319346181949528899439809836696419713695592182402060137767756441810593613570508506752482117432493347130915825399279278919779152561028087252549658883525703673406707615049311994245724145665799105705411199779757306938852811093767481041268648496929810547910213872969444695034321222726444760242334220069439495855665893983209744972809935067597720507114087812005713148222788106439150383793192914579449616703978826094348342049378858256803330950528106215661166183919245295211902454014834589048193363503566728640804546881201338822927586258382865374299259228060957119407823697591453686326680597814834037490904757425128419651004353245493542572349000874091132384627783575728596302248711613528593238078229889954212325224363222776922139729507259728956905525389703385454836859547515207310906727540664626500276312823442137606458974927172793009596799816992704169118474302156394172882400000889472532972579364096551897107988655518162165757964815316015896426044307655674611340824350695195166910756588004680298816451836618797342303476534619763404979209303885723505157977448591222717426120601223021932070910430438200817132417287930792684238704935905155027553532432866440743307683776411584240300683613009942554036416424070365706821180119383059131775106329795489254926266209911976253207843734352749665463836773648387869623012084332921229111350982104091129300455735695737355042803429590530389313989625615658854331367096441110541306376252022347055678021315698659874247213462416580035306417186221952454358491153007657382542994220164784497735257084040585046232035195291933615479416644130964849434291377159001366425015594602634421799692905891198079301404795509461208629401120141965407672257802707274827287441333070616963248241066567612694758032584169257802934249576391782931238884476683213982716130483915143112967366400989204904797364256343481769586941326318266366536162117337741185301493551237173289612633327577502566451466778844740238887026749746592149698301198569893058009561041051043994567750646110387677756514083518295772977132391243871278919930981363534881894797793524765100214707233448699685267427125266565384220687889846382518143284807501213256507966500921789449830615319536881729620456305386718355935028328475625782375110722196570026980320368111581108994051803515168616299556987932371274291354583111787568958156742668663160942790032009902991922851485868808378091176092315346736922186683454314104488580212240354416976143520590743855538444040432899837773353454302560653834509088792993356970599521746705397101842398956425618007832767318784150143377653272406220994521978515836068340916665418986113017521104296299913049905902421887394876489864598451762499489870690056891456811325783444334058819502161989938225485820217157528980498619376235543383811269862777418723916041025704837348195861704234417982271257155065670048187696434711388110150534805954124053721763982416351277616184169804323867770105985151044609580895031307868404223580507398589165178554882085867835637417136519632760975333130435737718749619511490269285631309333283886511746219749708393779821521331894112714294662848250354272233362775566845400619434274142381797567823298121462589352453190534222232136571550188408489477905540100044886084659972960315853769717148282159047036866176454100892678381989254142200841601382472439492500223534400406345927106303179076283740576904018973404196144038925425707969622648134917763337380786659830101652514528540754676902711924431208972764385644916933492367009591529484484620386640272308745460549205537126887455321657818977257328925904949602600933135777616887011706616226413885005223647797250546125277951840768450902323512772710275577859309662640985673454760320062101377764011699421446472704476823375040576902825999159599536915185591485473570047367237293741678093314588284903790115262076022666669306899436798802339245204668146622995099416401805189394090757090146514465347131370370261807040277680708855299615767803102196843164541346359167608007225509689257119892965173200158302782778238968073234970073667548916066462472884618280936102205776044239240241056792519258381930068435998520620802017455784667904072962834274248310308958544040237040496537246237935612829606289757206452670245769754130932508946098666735974227712721513869309286271013191673929484371264000392219292475092704390195101768180902335266242947200296547611993900700935620168459459435574402161840047527007165990656218438907674641052267661987878424059120420365380474207794074374469908635315982016456035461215392468040441631829561066743361606766603309317587800698288734413116582751983644388919308325320146631564819111704279384088994603588463000214980639357961563179277344195947931928527831921163238778687313492381574817248506942898141599596865927957601819018737459754360685281885918171851300159665918487154412463539293720985012120277410035374895942356736746223174135059001324625208429641866523517348321777763879516215330676036817198320346774803184839397042784871042551946963454196679064875685961921085863406064737790145531533361298000685250235101125664763269693174249474445601086916562402164079898066464400526947999695729709708335414217669013055873722010165380937200840108109947618896417828232512318776600191448079273636521190078525451368419584038443719375292602673075147898766831721923359491196276833154460062952430220721037099802386379570213754204115172686702685916077130377782325056167758505484361387870064902120204441178663927837972537078650545257314373396299234963731595770259653787107280488415405322612419640656127885191561243706416737003843673786861514669506331762137010147115687592165731584971359561553963913648348510416267808899779158886254973899846101901273786233989545561058660931240153877469521620101461715372203113829718870095901460631643727755285538060196734008237751554422111265878791391113478033677664492259305378221307386965410558018381804670174694592715587660351184188028591445917125261091341054481992734778741310578731475877302065378935115393557857234882804256269908489096428581151502820821862597633092178156678307161924141994039175918357748619194134077454370635125396345752235792405028840114517827533868448434154143361301561642734276106963622065915634963026287807237416614748136584203734773751064846099263183255294026417255058342779827786695777906537713513340650070354039792948601499095317244407050171884479576622236182215079916439557173384085908515750263891813082098130772594697480705114543660392251855999283590307499956565894399563272584744306563540637399411371000635038377410862156493807922992966298043429701451369106429214245261150595867167807960139153362729357157942481747033100097511872726710222363104535451676887390311415598619043314227237158119929573377920323737245364538294662670262420612740377746320465160584541529454054647392774580307980131740292984200182216373044948806788096475003040809052637746246733933342238376935639260502210005047508420606072170486099601381869558514378356101825412180616797464826335135655035548429515223302563330474573321814501843107603531431791678940855088019501324641166520792256054251306624421860778862946632492722875286529502961818699093330036595077493390007026725958861687554421643236141468407131301613489967171048983311885460049712445097060950539668755551008128033113596297139270618277152538253282874297435578591350121650998242064232997329252064609956809180849586713229899748162888664916530235112490954418888660302901690096516639726754678126681817810201035051208117254187933393986473527564675415682916731894613197422516764230806070166209142403812913965486266068075836621353994558565715020088745473790634280709755344655672834276945385020040121383562243984914612176451120021192003141498004203374906908833412744857458478026825808314378289883758293688608333363778056600282937783964925088801477120838638239907762093039600129246025790237697571889655745795857532935795190652633811092317626174074904505059473163068000588622521522970539398749971988269017641642635249739543640910910017594883760259517551382118507115194613824637477054954570002843995065866669282222503820729346760224996260130288358685014224674090935832467171187913790741483643103890872423216321693200028191319827798499041057677086240275701725389114844247706406004505771383098588124604816379531791128340344107652456849560592630202125385005533993994582350319141342195555687238535012502034228217527427776360563491343118884271070972457875310190572893449013946427165099529329674181965168941671851761678220048892926419001426694238037352798573445846059294655898617765324232229828959915499336903496045194630367309204496786691631777584047275430290973408025159173015829477310187368625780593445848223247196216153311601887973401765563475380019336812901887195761267794651537991433357344914240721961434898623023278035717160136641165207410615917469921996791302557594341898639830770833618111479132297929715996058028893185387942414244434441279441085066624114148482497605991423249801552814533856538940426995311293826379932054592671539105708366181659123915621127395379407462969398136422544107658480824855626853854253310797193836755651537690936830736286027101600340216152585313243740572817805341070505101011746124283588697953720102624670206266041527917616447045889074417147919682649477668373583434346765977709147753105172739805609498066880518818613412811026162197622041951777155209375167844089875611011030603288207907028426168302114552011604685891878733326505874567528649023123973511768271393605654065144319452020671816983539122858644047650554188406787372208681986741346612025017619816202053361817730755387082386043733075962292048802339305035844345234177256134134224392643075943439856559835713944241252544292234278461618213161774020624421842433031838135981253977132471898946390892701417698829617049277339372611772328561657732195985835379288097695763098951111048229018056134297848470752079776630209517349247844418393264070106007457015598894712180512270855682123015545061538687585295387854233832880250879321159963489243685758718888643838402082014912765404646800259144936375388988184590089338179873383217612450688140744937355201105451267537887791793148795845248915313290172519012379241426383700943659367114347624753918810145844586520267118657163570294698259402507930751654060799586250480390289408735691479953958704309021719676961691520054017826373858081797259836515179460459658197662390468194627857914705856195065463079088059124300716690516410681391575885071261656266599120713854922666909578202003887898233210075893422275427961206220115898820689894628656340612983103135216416829546974014664382113058900077494261509180538032667811501316509929477742873016670815352229701891254697063170992673311704844088599388351541512380318445008285421965336920797650881464303325223639772367838629212695319691355876257343061890673893130644448032157902057019709941663879799661288857832622909927501180942508513586537551045387360635307064373527638250218580409699137086930367788513162979716475519910238633203765843135051513896197151301021956031336006689612782879735053675316664162140278177700859496280153192048064991227934833877546977540272193770759954620660846570688271992640729151781966857346074606098944225639593704300820232271773149740953907668890015421437133970730893883023169066955756833506545298492280257950308099261199761780605181312740613570708583074120960455730018139516757378851979280161741385427075903457414780487207582951096472027716348410728149175792525197479709160596378940623431493794798080146148580316598499607724792419925211938469367447552953465095094187651236296381076359697974485808517339517804018364730145637531957831872182910282657146868381753410171956013457368449896085682276033552029132011063860799648615034708570843592212353373255305846055129683971844760442882007261793135967127734701204798874454747381248539027209752508938136206180290896301908330113187901613992011048920074833089860781892633351707208321356662804493086219830919873756300679623614794608315148796169828229600575216672560284939084240439385854004234108964206437483088302454454722340022141734648309096718000909615175302379988179249718960315134245500129326079704812634482557124848844931032994681040862684764471367241736100414345928980991891214845076124169966703459372271853554725615694606746367743413575050029319441180102735158180780986730410541757818738462481825016957372145252771948447700361321004111130686471996509399125464584985561182522711931260865881919020047265297772982395536567928836408513613673390750277130552314450458067468051309528162142522355577352651868164096531285139912788725021449072428772542691944806481314757722947790341159929995429120306213833153689086085239775731605032563698183673883074674466238594649933202410304439239400089059574866254345802811865944167475614333443772052765781809376329294249268879413882997119114697840612657303247643400808436049205315628103016562433648543899465197400745865138117525973750725265096719343816842204272864730867411232456414824375303882363104549998439601193818241668472761675876494596196040292646063296365765593651634299198199177980514694620994368665075687292727643004151903785517415883528220801553943282877141166271202513656686549319820474808828683056436757979754090495967141499392704389566526146824198674075582353513027725057560293659736960870736089191624809561488520696329374793984042707688976391681440823457081326927314651274587096659094364224671345645033662526127211630249951776737567560449408208244268300139143146181834535570496289755958089071134917287328965604666764184371212773196348503150258122959550755697471441310893114254871332461480263578865195088437080837378584645365538003421271765157975724414221266371353001352298606326772122593656555352475309029435183048207200036751531394873895910562589067264753915286619997100777520276560564707312087782577345052404067261384353484981160895684462366113945585756787711140694461814072555799612873057430477704812753067868919274344654166943501263234025232048983775588095377312021243209085183508868479796595557707316545255979787554806204939485666348293786375633211833807810229100882717661172594016532755687654912893552775253058202466827376433891075456962140128372086394541382216597427416956419559818021228655164110134433198292802574309470504040424103329546883924560991670265987843168224819059488916213475866730324398549927730008526784976994884865629500676105759561415414606084234364245297539028412914927204865358910087343621472704377683015533991993129587353042633510303811710462892393902073269605354791165919452490864119803144154132895743061014397611012379425962141700559013605184937820839998087734804044425821634553521676337735665107255499166865018794332905508672876385354314158117004011352109424998403834274700785707962890375550399176866581195122781308036572507647808041739261946525863166586085232615454822606515746448727574420789659100468896627952552241923502316140828768414960949558243702371587386163292622642633094360035793309395719739613992475075406542257083945046932039128827632673311529994417172986533664640353893013473810238647947163837556551695240510316647261807858855238028518699930713122872720050156386775755166154292243804815027691408946282271167136571578708910423677313550239426310868634454141572444303560362440504270313173906589096848013590825190126748566627791668875970388253296369000547336954712569318724529236411378786355202362033553213286531892752640357103468326901844865332775911265224860011163312759525557772315191353749453622091338204982738542633593478576754166358386089323050248579115411202444125630115712001635477323783162476033322482934902249146179222939078687217044799218775889560457534230021767925922405883132475897220781127904548006278604586320419602680683248343076427241436812453437207337341794638857613588443586192632473787247042893720141756741620341879495358914840291585126437201685867298572027242306752171308579608722957905118676754323520167942857418710987914224829961190121760124509925283463632362569224213273231832054638887886870488274755519330600079975138150682479743472575986499117345269992263500198600629544718589656482138822708853573981196196627045662846079197654824043743893287383560460991072519321257825611861623560180401185321042811700772409202826814629280455285719853480717159707920904333727603707215270855912478553650690619572732727750079759849624465098189828384099241780304401677128453093103136397731063992674653154094975519620254195015191228145174479972863820294544027935989711061868394810797584351404934872842931416344029147390203162132078025315754507016226712552212760373791800311506275576981636242544679647855301390025173064399706285749378408435731374267690168595993196296275589937044333866801008337149081150669735978477931419788272471948244572320079938819286196333358787690643020285770367999325143346123970159018146157712398681017629538755113790325895356410673694467911229677078001940615547550739582153152297059890334902682791524860504483853541956842262724421480976916977416288817139094633465013785402055473180305610781338152774551403262688320792624699322640835686566798453676528592838015624219377026154069927004247189544217703485849688482492804453326317872753919792429822507733952983645261513865122869192644517759752537735191233109032099687589381150623948771257668242728055416108153111420330895239436996440325912788035354196658466018505708351378505739374150783001696573910398046351762640763202402409429840468480275299441963071905275949363872715793436370102419805061499816684560164308968892303435867491870334871185349966893530602820421362851751516256042929065221534022431442939049591249812045872681564761903360596417952939620367333496407448983625739592573906502771097751109040225199401332060012836573644769063066181681340180208512384633943294557005005840863886666015093034610906109356657387485064794497941873789994083874968222662619662982518931585840393119777438075903332852991985881512332021008912042995907751852844840323697645515763340073277358890122939852189545598633914047208074078066380408445153422721979693343556268145074356065451178596528723358448845240326404655355342817105671958731128495439430354051649047414573490061670746272465764725467770345567039629022461725053356717307378940009745370553005396588368069605014920156043632682296348367100080892080936913043501174787313627931431527811949018694863694421641535069230792793457706564787272786756120142001377917102729973099555479087288883954208368174170517354357839265171240022869173395861093043552624335454617223735959364450542836957769517791824902558824371992361580462964970352072797289341730375048185340048851069957794244160901218960876975417872850846035732279378138740466622243279785905156940374457326442342593613086638958400549921915885747628217111153378777056842215231338429066413289151018626544142968400592902390309056390385443780395156548197703694637134318827290749089202751941275761708561638024688784460682379291605740815124181240478142225778934006475021430437722899397105000863987046301011007423250244686089409925748459669838506918031308189916121166424331395994278147777595053990198260882342260253069863100240660935327560720289881877092334250797602446386945348898262084322368017534142362362763064736861786081372597099467477011726692579863933939128067952225272082993858769500334242285220301589588224828204903346151088746521295954519168033025546320558422265549582846374724144368111426388454878429457657922006017109945785279042280069363187010711359883091425273128418312705307267937255364493852763363435198987824045032587196215483702446233221747283362344739136225934057621408366508635844274483411850328066491537211247112002912445346333746022492053873358834865586522073335681739587408409696708567932557052519925287833978925278098216261798863943375344722223421270146758201492568784469105366551133292142451153590668302757068101644634155148704948159747190188082937021976294093165956825434094852539597553377744536019552868628591947657585093876124123429818059690238417728851868503892552061771888401982618712941804916353876127803008995860356753290350438262042212591642563760446266874133825546988319332620455667780285019435200530240673671787917090245554291735649517608164776848639234513176511307730816616272839797354161907911355753672715627983639812603405804269235110558969627212018121387354366607963363398567728457059845970143329330802258525941557974096185061622469390668213379723217634541107839775536255491890608792322822211694223103856323803844379209633975056147119897715479108207656614116587464273737114623116673480133313061051452067705943358619834857586144189298493052363139329271956303497432316497481623570122670723050697370677019532677172139741649846092257600431502787758500876423634940691357962584762500928770489381679977467413250196454095748717989865055569000178464810092839219354642007000143368829677917153382540920404728761741908960253124238967468975751413943639905003075359433892701182973541832311856934661579721397874882814790176118729078231450542563122982563652330992206789319009047783355524520566080889932017302160507077467064822644897837438771948060825953115090240682272340134598010165492068506891799382732652003397282671608008312216801350668395450522326595092115870403835376524179366683827531472423347708436114377072890218016387079022900230726091088375302430065456743690742535479242453789746665380791010352923330560321579747849875192338256057719461544708894142563596704057430085001535685040700526472275407691360162577025490147595183978523737995503461380647411832815420909724087138676478191714236483552952916330362836713108606476604832224415721447530307153115828802945574786563589699735532776524626508230499780955417390752061126269196394280951437364253984479495120406354136884834630051193870473577373343413938775089209890009345265000058893269107306570858819643791069029147088785325013007760513139893746080559769044985479964210854254867230023122002184181394886318963538863317310152345544413373624658188186089739227950848694008065960191583176747937015926494879981190831274762131309348847218492432002526144216122038117996908106658778645092347764442876582642737020855171613304443481030189195969392808470029306359720002901470899772672414284149870191765802765087402432113375241496995915951806064575534666304097363759576820141279961909995778853467342183791796870986549614939876097803122801974940688481197310612883746408664992484048424107508147774625577455869809629005634320424078135354091048696746273765935199989971142333403997481915420768072194136378213589523156867527163443506496613267819911834720178151358174813667649259332357876172029976845567204604819442821842344063740606129200983025049573981420861932470599050304585651697599138941135956350985895313170538538039043557477117743157777330973565889678433325520628678029170508182719563960707209188008565673841233854444815390835560497120177439865021144269979120745136222058486152001397217759200066466360953636850245233615735331700816381830223876952633921467381481112692616981852111671357277925204894127380127889217207478868924722687933226846566887259378366622495594145221970867664316199484298903531062508483523264575791725636844881657081300979551913502891874457739575154452516228283298091246363651107234903993412566872677142869953199789147030690408635830816230009551825495636617305963715825374234677626217359319950836580499062858056615721345114327776867231456859254295615105223938746290838596303381382851959042757110407649796084494821255192675678386081073368805958409069022871843083224663108990772552233973914500715913546496971294984234939697387115391239285062463932262170286021305937786394275588276087593337350426217596552096448603326495870969712309952673531899446494275856027023517896995621083954712646436254800991034918195584980923877995829473774639802784007534239332585064071307966337002501291397102665421431911138941758978464947328359640716815938022846663592696294817945026453263750802281310592664907835428085231786920479890311741655396507626051918253161393821706349767774954958620997812273982563185308770075684059175784693956561936114809864175717242049389218989697544361542580157143568841192436447803860803414216544800194209584918926251670419281525252143628199288842133313244396102780954148001046210127099577160184566356124215759724443833598649651931405929231705413167996681771448143258185769648791451687590593157701066039302475639186514180947090147336822802944044825570686320467797190612046917650030391161318637820372148351782408968854967681907243417384992924629472326556561999920209184806880869544631118354314564716813641468896056441109720119059822222934827063341689308947994197225183899413916048331770410827149989298036609926465582281543812553011510936547632637527993716119388388015343616858371448957938119117149904731710110748468064281052284083505486054562393351775145319529272692040422432368178299082051796346081300178849579198870051849671429857829364287471040334589453631142618970389046960018299440184072721458298393692176674956929603094104426207915261641661314450827730006268392295322346661069006836238170499658651073510531081916786625089622970114529272146516365568636017622546909470194030198278518176366496936141355625734200908534295950647931974662991706290926225008648159130249350877555032814810024004791553758986753981932893451294567534160417217425226182488448169339911410161934849834214100835861658670803819461606657276990070920397591788080660170403965175565039897971606639854879773363435914258724961898284178127694976657574850315885004240698472473125627303902940436855157308585601753464854442347560628971173126284145777945543794087069503249363147171232168305063565541402599429957372956636147281966799863095562884163203852234291996712709033106372623339436293951484506137520431743354052227529394563439029147485397493147628320836749044203989683906026045733628786895505797233521929352842870115319127860675880977224616367697547911277477958037032814523911767482543576182250212018630300854537105614499918299639783857302113579166151175368092506249440243537303328880359426146431120873869254475938797653310527766309335907528367915822123946472262334974601060647777790926537177828557681511299525588712684273174057208781749876066834891890592914212425060582729415575463201414977649041988146532007251428478205260437852131403509166388523862092900620165849836492267415596629034108572668534267978775012633935897672911434532879701711280335822564647172371585232445682519002802942871462429316871480866305092824422706066160911804836416088232618466129350517257522743190315900122160359857664640080593034375380006793154367884512278783674475693706282385675468919400472364519095737804843274582958905377226542734664698461763861675430831472259398613571842508764256336305401667949757622094807679493499781103673171968825192324170006540439188957552236546458536101602047569932152555704709026719584716944116572861473860209163983847363368009798923354955835481795139126095173601570972070836363949445243881204202345840029614847251687091440409528090724006479808186566469162486433416539545702271046891242425081508579002625927984703804434669968979969872734842307124123769217956002639246638279654709421193553472323964414313327372259707080872522416427422528441582770263219917526658616697428781563108554166724462999635693996709171439705053346614585400269279166745863212818446432036226658302390491495316149204746134670529650706758860389762784557464521986132611180420485501424357584243866906980754462453400012207062514508002439747269120117860344761549452818111041540535106401136878800184502945400893229954488470837983949340922583355148353484521582836097822277399889837012357887681468348974122603846976253471871974155104904362455235265640566451134543138784318932993625545037779884087924300910064643130635462017377667737832023409125949038754158404006036318562974466974118500702733142072522071787795041784208196348890348897758749607428843782826453998889410420975180469315672083850868000220696104586439303733493078903691296468487304691628695978440098425234972213076987399354596032621482458505098337784823436148990311423698701584128620712055560265287503339608437422592000276010164588444322424195881415035714794954099528689809694409221387054071141331504471990665308675009533193993794078476462651749223383841777838380682570960123812980097061428957130566944590187847815440858302264176960783539429406709993820774697207192967486035394321177787092381511188196969729261566226977614549182753845109151094452126397133460822504707748263278098381770870544505623642472672597276662254766058248247206734685709167335075280083501843654851503835064828912683769912735296044097848017950481109152504811738698757269942359131931221341123152121813800308592873730706460019821501566261703984466709482447042973087798939705574345215693234610790905165078347200876690430085955939279321016283937023256176926650058318642091302683393312039000735374075462791262061535060933507488302632650171971780409881414136707624858920639719416270478286834293926846209117786183391528148348854148623695823110443240986232287198721735948316113943816560584104444825312010440082936369192494785346170962498923858881504338181254391698862856785471847305820717953764745043960831069935034684212989468414882932617211298452666716751964316208098535683264484182627218791339401252212518863478756832371380439879638367467534821245449481522462787965073608139779816335411489963425732292868239108916394924899623106810675047989649210861183924122787859056493783258998321019174733247323468622960023868755098135678928813840889873732576239505135320233907824640620666486246935714735465158403210077785301503875267515244129190335680148040756030824255042382778129781363351811807355413950859078325230810300910165323492300958471628356543767520463452310865699475149375911765547431850811471044977608893702958678875950027339923175199696663774228295945415461432049007440012074280576206209773119351719598634759749870024785523188949129881437342140833597875495129032328870472908239403136040839221819902530229518135546500669698512188063568700934542052503994183416433247765668086032740250868107010771380982055263998019034190213922455299801166515260971807713911686714413415471833591906650316434824290643429835640870481854013734891717495781033077856371176661846259466829415940281910198834995881886992211335319570487901566724365725363449041353591219672196891961684486989644660236208910656921435654589698255911140028758212310432345208619797324124451666306248242765603270823842833488806623073727438746871205008805460914859508485523856323106750798116363714021539429809105460868294476368530706483086620706592638937423251653460544725803185176931191470774511184475893822001725944488945274894636391659537357649028079546334954239843942719586253790069042628728752809567180723958966084115856381444899544558516912137333055050356046579689929475148508480593234213788023839561633386213875294014321638928411588485376242240576386549684338863564273531642308477090763443381599996495894374139242118735947786180467706113120940678638424257511818095302820820284483662752698045446134561217546168243144209527053527193087361175687552970001830440963698559478161819754647030107017504942833294280876328867057958238104063228362758059166241122549705307002735178494360717249248894136340879450097711925875144320594813527280568866889118164428740341088474242818902971244465347351910626899638008705235783519314843798722994767352728415345776643050945087954207543499990429165438314283150599263766796220785932602120061087329992148167599702538019925564826052209011704954978306920089980082104186749916947276146189790389151990848879857740104006648927455594776151682539775576354430324820643835307681462783223810614662220986711467913203237022363956009027782835983921565628780909748318645273465414101265823777097656831410538374639669339746982305455185636615842454379090711146851462341035632792823903824311059629236774711099437262327693608538076339499587016769858982228213256395174998689425609231857092983870152062783164369236963454797385852750518069188130506416429462253902592438614876704368718305940497824243057858985465101565697563304123732837787069804687365214101648894646570620733079950137426372722743085094090843909678722724264277218645989941519277962171863777578538731776148712557970058701593578210361779956662819055778427817060864421637100020963843605359259675161243507610264026535506960029781568987239541095718012207899856101568699989990825738886751004156368349352143316369696893089186921527419920679730073926792374438767336539795851826676220066106917204148315289763602540124089719403878956913684735823235930092632221013991164167580464969885527470427362862467738598693303202140859740408152545536326792184670812886080260144371623065630803688149226672952434834111580439613100947305391008322531199154677384746249406822548727763086716372319159202243963984777392904269398260278426130004777328828718860740283500996506667632142126099743123502422330653305537486510098199437980509279023378673484576956454877312708840947844520845804895571312208451014784586183309690683447720849133912124873712299334653690588698675186897127028161402184842549703104913090012446636315208215321801791850160304328190757771224690560717128190886210768535500021922314205774665379509435427233318563172722427326668092376374734664842269771314512012275269052859418450552770535226951847757566760828783169080344874203140801349443488469613227571112704031826605312226693411880182577722023483348548704678772143206063179141805173305523968084380603900623338260905914578634778175015950746651304903191816129760304359903697834207805967317705005456146806311705992203413506457358464012743225845622569143977174905011450915709007761460203225382265329656473788885988813195159745415125851324691097000185082388108561953458441207770114186424477597372202038554326254158462026597829226158636243261217646067029614341596419960716284918016213798041487336238405343606046154269564091286307643476575603427692833938708005267928713487748365758021568666059791028909167834611689478522705960101592012828990208503157824843587465935771062787019154352771177278602917386023618934772729559635531862035418876224407546828066309522219606896349935292719998500398267630765650574713096702833612240113319863198314711495700770412510351993557983167132717365100805416696737469885091201687174714851638413776586409669517143710041644751288899575471515960128532386956996808943930627008971165998541695531884466569999474109410460939429844794419913417441609223054371710570803121893545009303927172844368396064390045702934718954480279755171640942057988115405005599746464189021358973434642154102071768464878251099836785360577769614345852059037498626280752668891870808757695089994132859793693980210617484754577134458886411112270755460050112176610900096118976336531543596745253256388912728647509287313565983706088118069728376838653638229776282252047999272937806794271855462536060895034009850670786882561062923568503505386465989101276044101033708777806835277982052156073236587502051376554833474516086019570896499941158821503610428818415488409387735760863109285018090301140001567816115372160183742101026816345025566950403317882496511247326892735480003572225869023431382883943333737938658361895462050404350691292286912618987794641658899900468836404552617768589502764319107060805593401337919811799656829836722447933443624670393023081593368549691449942482868867582641399853295322081573663745740599901345755622051894267910169581556998034434415276063447998666458789721358457923910958399404824137807487402402768594009805140830734006209802660854171256371806700887953842043170638758249995542260748672024905591678008228615211445186952417866557577829427658145874057149048979403686461307064905325509140406739526705235808951627892554917682115475658678695909920563735643545469971986158936003908704117353394056413954512218345123536969140824618912793582134364865956038886868469594237568389810177978419736338411543566940247888581827106870581969391351262046971816038981799900000751205616628982142560852114032983054913725324543367898484360107814490110407965281302928409919183187434715938844395521999911901864824078524752675786386203020738579559118443026184308827345278974103523966476600940016103064416906435317216063354661412555858419357434889713405172276186407956858658157382033339300921032384162378873327499289610635805646075967231665696955145365781540888935838972755499699193402746564397199535268535556534765605471630655610518974886410123480775410572732250657716037064738504333935980027044812889989159993406317689197312028491521856971587284826614574246567513065508816549722553329207352808355794809069754276957519029689686447370684692574763947418476315264580609725262108904203690536177115418743271696313912250657573241719148541583880315943563740476164445938264189572484329944385435950029728052774922101238173924765981163479056539793724635752661658932783808114000304109161989297942245272999434247854536553382355959538202607370816363777140211025624896776319981718574591765307957814430413083013154966351951625740025896440940957791399746770709614832712104216828614283794591639639074687810495769332342370376368219940329034840041370067890004206469669817282981731715504531475385447761529356892913242884209269792587732682630972335946012675385186529374960627723857340918153470837178371481147175266049044709071941566510085150879740217529985670345642769418667432568676955610964247345116948451885974546193443359828404387570297681719151974957223075786116930079778017888249732079930007754674798544481662016483070644736395781009386444604143810855305868297740403936500070412182043036521549782018831728047985293358410852494718854654851173130812547506254022236659452245112671604558387992284450911739431287453184076120718193105370375487690742718894008085143249955399217240032409331315636837097683060447044250929815795608235127720187417779945249205399230676269464618328067584364833698047321779930122475343001171616488505351154541760313026332214318365007825483800610290566667357691328045725557897700806245047320240292604889599873787438007733832951061264101728096099729569282197140942637084880190176527874252466871587786726682741762325530431642927489288498249317213134409713394006244800941475060504871739823354103156991497403298600179634657049200115576183400360404170782329496804753672681984476159195010617473330236222893285677352508408950545240510292840638533385235494042797281211943626858666018743393562560202206281212563233340209740577820753736704951234477467002229372432370359125582946002969194762604034458318638325730267062485447235779745414467080414213995953840884994728132889931263200588363919706622663519387254422679712642330607081032344895354826890723506605802274783250115454068965565150842118201602597741244315758480280957777159010979799871430691965678945122670690534976151521582716517183944238306657030190067656294434020223144602577737207566143536118229875313552383819757952642854224446226718723507935678407918171237753423876633501335670377193120084504056434775321974670748743779311119972022372889403115128056555023669916122262358842518676615394024818681841231937804459191045631254971458545503714836995199090975109442706213422891203518309606281154504594724208880035436340410402909404621595257950956055529949185679704181103803506799004864884607184991491905859503263248451175208611033985655053391797625158162632238784937651984202182485942055235406861011555289150330005814241904170583786310819394208364799568778160054238737895038276053756367978114979081324994023290453205552511558824387146419798739103783971837659059228364137182081522932234468166084691941918011197803985156640516433104666435733383078057194854686026894399636135422462298853408474817896777971774579998034615497651642841223598165698425208313160340332049532219092356709650439633060030496083367476719412168270241855875986902921148984844734947522904606969614545037929113639750161719472613648936483162709099018021881658770611423853143561202245987737465167498326191133173950899988133930385300899730760402986842707924693866485898642866277600480105342086391735834199988541424998664279641392193523780320879520268685212287989838980930440616286403091393245782550934388629576565665101493437519382485881662604714702467820023122148956012886887972503355511411871467166385771114070650257381329313735140617916605926365215329238137970395634764326448835826880936132680497693261616661226793233236509363646155841812252633084072800156431098433064914825668754131475792956936520768258533700976667603392745231642319157445889213185709477097476672644033639241454981854794074636620060643881450482828332578564079482227682146278630316144192987907295176943718573767121023572498006087050541687430318457987358081195716821424726930116863410185773906536380955661655501252455656767433844960723340853792429442908336937226595094701805440127632316894864506226993955192250480171731319654439774775003411727264535760719613164961710958918359238044719641894638246690034357440976219520469589582407919338256480532824386618641906889732432595201978531075373384401239717659900760099296234753390481575545299892069882731626430489307403423567008165826956619124175943828759041940719532844062237944640522815448455212248944177616998956384654452129792411798057249531482725435671759092462586565991636046511090739129612366920610195409503522049821353926612189543728727777437593790814106121183326590647149268085652818331673720139467797705857636385330993132055251684903088974789934358378346208425095606341597399253235605274554470107457477127068435330965224115812901367529511958051422514003089907496708371283818217555315386923513936555147270825095963576474641123468955487327442024376759054271135616655896034860656406789977711847985616837684359907226741242492233955350481329009266468863315749701921879297280849787084050017585888738397098878525120068305050747826494035672521358437229282228102006066337374701618667674143417271699474162896527399429970520153985806505442281375888512865034747440996534689996162330447850974175029867358867473970115811831533164510637023197390172347569443305717193290085393429554101387818664308724686307504748795887355062306520955232128783826565449593872175511156186126898017670765861448889631967773991230498807682699102734201936843059296580695914362451408477855801718242531399671343377608132935097047615642154963980843602165065777077320488858828666940754918073211773217654071707169058047599353742939686099691878725216706528908288966675662767493490642278613843615064062685095344996686253340738514800426047597091436081131394443270274849178932820639929060683932286781645235766156411157179063402771569490839516095857336816543474464981851998984242135179868800811223762705083514938988006946944720762471778877385698698305132433407021325447480029594445558743685267367164993047716033128587103910961145126082317721362264065759242438120355521593324933493384890352849975897133030332416824370291367546580149256933729981838095296288117163322428127756101282168196552137900578001284218563684559951266405217311157835489574116149666373174332894585061396576592120514822427387892210558275406931175344542202019793086437012399376205880367237962899955079920589651928341732480899039378533184116466293514211663881067490274590042973809788826615967490186220042708801361452042962444521586080305823376510351889882109497571265488590326506334182185350951562002758439695507832309097611494903598212088460126674789863594717658552690761105427686046948259524409313345238533099730693702586944988790723726900624824810347908895576352404724035973972280202646301974301352588253937902702967376052264299731209640695865133633521274998094813263254872857598817974320295740836604712918907438317039064953597303342046441896229430141550249259857416236916685239746172315796044308525139245429183653205704381325324367478478770502589489528538463189524988069049568762916275000354064491843980266485949901315139740247768361482696262027852175141574546134218444158117788411996631287486056502527965737879094408697708307042324287810089670375224447652059508534549835191070325398171600434347944569151814388355659107519518630053014962279274554949499030697613755663062619638104080888090388584452651453832468072987220813349981682558006429986027378609936438374069418255971039774114449884207388507406949009828690332975431371700502046167059177221014776772876810623091540091037750293673130427290795987170578264440651089359346200245007582214302991702660324201103618699307384006355331984081517108756310261971870609484891970600701374501919320943856155239510233258737513304651200533927161097204759771289828459254277572184095206271113727290321247467117976881247210156462735119864461683688463041902327802468019796799719923513729086660669526207226700470293839462559597495414979028942970856631071578301243174740261232834780769009631903926595491861845411742617555155042111534749728094100000836092545017753872980212997513032530015658733493891111001202794333681820705969456125063225420983913731288261597125300528643347963494493813173287886405832756329111480497804985467995273303139987070948146748027474685965076527346269639910042608543539863142388557306965964435114135952456869067193077098620222675302896059036034010029889230040866682372955997146185901209226360223184504627868202939399543156519350038986996053001651085774974709460797777462225606638009476524572043859715520148800930902051724112175893172422312920507464450657472696774267710132276451642752722149969242210481525349457755339846429583525692429545715010004511828643301643513924869884349010092945316021201223625928598794864575185865776545542144381531621316134824876163808964972719327165146978547907164927043983655234146529791784496397847968414173225927283747290327730925895569983879494450530708677213490158922881545985888364389652877798149113774916320086589765973185741967001997921502740406694296867001677594261457893743463657437482404127337778461725915032140702714536595279090556832611865785540186071129594601805354583830874266693111950472711403363999662537918205197950911761853815750811012031326077269224945342754564428962209373247657554337456938723301051033920613674871260706037350520134797181013580708466154463130261756385932438567281307100497619476579029443452013588608589349922901499406510828823375416541666706082128151939488775889587602833443225511027794654367893542138915677856967251810342713594259626289890707877786108088208920729537245288930354956816531885874773726157150078122436001879607483868280959876134631127278606711168366050693385167253371506737117621406476756722469253454296625324887529725835076088090491019067982602422571728380159504256396847930973607743540709074289111908718587958577914294321073128263181698586827571135450423822430975216964318291917964903378558561224785735232949531030053474011444321494304770521711335083137747307122245042348485686216343310139401712305060569710714391365295574588097420279006445822556390178627594725772729990727715337776015183520005979522346802264474311043291204227160596589874675960745956300894240843117006250015190083844730133995113395667636449801670999818071086108090845389749447870091191861843419458966838215845061960242226234849329466322900434520304726814426365974042686567585938264232833632035779662304222989503582498840251843013531174290642271483385256609312333499755689989504930466624044772372028220225775779349670784707961672373589575306882869339616473191720055860900203745468643781438828912862879410931952416094093991198075131374259397975285932193916064329053022034365702763330135778823376720913074405646535698643321562814631936357782666938090484775117520300323715604285764530450523483081421808408918982183184241721870537905723828833790935610937452390988861552161950083772822882504469961961117446623646976317945443636811505175084121425324839956164008786958990824920730608376547984950492844348755131078068260854610559213200467776672663196041925030819302800905715264603132304595107527669614820539099725001533602402157127549629198502492856551314285527631441390010999385861691820271830858169597431336517632750096930591138524115677396254288079988072899043258862075523420275010938053528135219294461696487656939938549880655089322788883340792201754341006405350288902429918910729148011776979429802319397497651708880795778082668572080162927994066989087477870758218394030277830264270162091666965649151019037000534658081290091277499072154106004609894118258090360145073774608181555681345499445728066507330096796406215573844600104366685400098186827600413226892200407935060335662808481715675132460188398317885557081035650039035921081955814904944837407110917966410784787397104460942841569341131082004120297067556646697078992275447919215041037383389350568367720559079877498789115226919384889967829597058471847227698880049314369705799878445759304491092294473291759793473520801864073792346843985989998783344563693204483003542636955584294437276003959820675989612986636124547002755926304592314597981468024391250041449745076133650026479398337165568634646984951878194329271040468348342747645496856652012582824481438403483940895259235390400074706484836786147845752174804269622660708288438285298985923065951980299513454599466288457229793201412991224848033660257458258869483187755623419978713742619553927350919133855184252650324184124867585323428708062461735406868417819082892251980501754222034920471995852763232140331334922190587496688731528127866918134598215754992037686836572077099039795562766682337104907708600688556631832383613564901516482642701207857859033591708145506991954374902016588789633730669785718967156511666577840654066676897748614722416786586963219473330185111538255636287377747743020721292279396657793283086711107101004882811079558283578207883320715968442977372553837854846788428354061114372406591538524178936539880983164032166205091684237222148476664039601971901383983411229507152748836287865420274374421815728359325570037813088411106562495855349765728448337645790279595785034700921067157154532928358443883352627619080348268430002912778711192619025634418943228735117553513518787958538297442076777666157860618768670628775531569365602737165423681942154174108488873089356538133773714279670771175433899671545516752159069762376070965956329776511302341588969459916105535039441132534372008102919817281111664865127111165622748953935273549679893371342212770055483072225430199836393878234495907621286231711044692911405704707889843154962627313403515910500160248260823429071233858418378296493265968549504905285525488392966042507185839172810493194870675028079840268075796279161338484742791533737111151181096416996060541990435151502556969339198588834304194946104061615176599235763297873127488798260066052620966357113724383644711311111148365219180771218976763695630295427366991809727590460622361682099669566349949229065374115263173664167569464627849445348596787460866218729047734209907642275510322483051971153611694706632242698615386666249416851552178213723294456643277023625427461307607243112926445980913646973237173572568702440207928781788077121716784477326718516883954112363180913236080493847787720732877440393873635541782256471243523120692472550263623638762100365763327441719318544475913732679979837772941801658157681121826096347363218364458063413025240434748090084299127588020325807757518398454694415017980710081148800863598531772263178315506286844982446786185347812183000530858057294637748443179120389966046797007037311570440690357734938575101323207930204667018443024263129143909570461263691752490389895141390843013460959289143002795070830810410287200176454436175455920574068690603340753318477406307521297382867136842934398343178792906029321796184674178015004981368122258760982885419046882032744639725694190804205892865456398798052021554533919648435207829684502879748754743274441585801894559893785710151981711501228065002611015979431470740674388184493970892274134020143044393240415899435646420469222754898642772252105860965798089038179403030526552726966194982000366736992336819965210843461120798582411156493710790400125356576081431966247595766202392552073677904365059325227698787270749110990755940242168849809514119493183593234895138226985586937877042935316809190938234657935394752340912423565362651137638347734874375921613660686495997853535600612495961473376268011874606255052882591064493654694505082360566478308960417701439484909289461936697011403928281440697303579100323533910732859294921193210337073304051696712238413390039529511030875575275273811425502230441579962087030095597297733489898850336025141359333461684877313636215833963308565384128226170862472801946473582745768709776624132454270051583806409471020958869709316851494327916907093277747552139282670073173489620513081052999749267817965794790164418007231452758005453237795113566697843625959902627493978260388182972473285271354188865689657333668464987839394385139255816848385736854169263548768190850874655324488332914509970508915248554162144071047108357299730668379281445997103073931187660089489680601529378860492535894111853312989102242819252465402683736575588834853087787978722653046015911266313628359871445359224315648430081360179931547508472636505325999067519380470607186642946170185795239278127107480767732766888252445557206501551545049898309771401656035656842309689435033765329219150888840599824147500086057759140945906036482019540048300127116957952566587983903437429629885653104038635203901342158244687485779224788313966690298659030142982398817400829593749998119387392264527729111631783414082285200469645443378500023169014243743460352284265236896024002244683147286860961629649866062252010309222751029926145646362547848173467678281228581192245939057389963261759016391307967829837152521475714626291668800477558366298097825084277363691028329327955498291232302947404499006594577685796368979863960786117554304125708919299018682415387234298492050877773513105444176769468216327636041482335881364667380234298544858727938838089373105168443742836873650906227536451211624598746112357619096582390323754752631395391074857136169725584628442736636609723970440296512673566100504125860657434898732598510418340619793312673447436351551110424911446043065318904495198896127497386972799338062729606559488086729225993012785374448498296390902505570182143447446996713268028410995460180235848192857006044180028743413642379117923134318951121327087122314387106382229532478213550555291871961672685369525556999425170235853735790657391521187583891721959706985339447121986447876554458772164375485037383992515816728926122130474319621010248333286773998389046212744930114566852680174616407425775857619627238949533312614510130730256437435301028963721490239469197937459116733032788523645636281625162663955659089586721784017038137453758047117013904220538832504006253289954863217817284072428929001209691645978421873233877705911242993890816459792643141101320843232892792828003900303778833888255703089369973298759424096686767361395449780852386854867404932215467153948947409460397949669887748612266878498959731841098199154924012678994548430283937921176986996185685208685376681026660940891674732696425260639258047527320618378189398254521763411225243213512794572111465423944608345743245887164998452834940889924880092906830862952898525521160339007755800159091051507963483381039380272506473180280773139694685360901422220745997332853260189487594804793071413323356566492345282829277535038284366353972302222708005052690882976739605364307396763459058768956267355121737117704915363059835095949574604629325383800588291630418365922192149952409093184757795645610910320172163217993568173251581428440249692860751440807689782702080965708391075593998229421222803704630782290459654196826534441788021039888150116712021359921760407229329414741356875910126418526388181889365180353787551437204576741672183811839480882165852597959601705318399649063277011522280608477752190495494957144039007715671462666565684442074640029469995088354290393182369926022973165201334550850827275799396780444122033547497150821681892997235602355257780747993128638575452538088759625578467248891433157153501898920596277996656844466795269620504194036182359087311506976392255513306038976348365945735227176834941890433063894798955726262028742487472070664263682012904300913140808355322047821065552313121714308206625907095222028194145177235406720371992501308397730695287185415517671222862644568055733354451327613955013212866003144237069782924762625179524904478960755122121781371560945925559237588061137781175315781034148628985322973356653308073164178422117742456280312577751130171151127035024236286337384139274160214640109996194935493292943262717571432208132594010153235927493071941558248804492482269579483762654570578680070966391432710048075872718317669475342967389124608534526723634004226927924113212076919871958223862236813329425141067387534928256867901309720329838318070422091640526213357822931293672143699183669878735154809824928498723012949418009868199727654444135114426553136022109814935689803609842681956989199649751365727750511089177589728684993252038276914602000521032171003859723521384510115718615101392063059770549387076093995642694063603417024086686664316219653291439948630869177368501138719738913591181413316017437903555663920739475868320660927644329553653848539918320720942421894370150301244349257852386519343816953683521265750931806906204522211037064869775798636750925070324778975028905946583628343255031729091099471122120126868024059309084857946797277200621641248811728517149397153242460972318628864839123728070450693439360923489459119946703112118248315729665206099551802048700714499217146037843795626108135978402816411103915875885590434767995592358638665249792477337239773906373022201136399159937305111666373123575232322503719065054095590981829977461479227227217939846132304608341553261429999469158027299022599506257770026640418086604134393301103252304948428196709954180120980137544596635580632348286929512812904308354213053557824940759953714899120452240589743904047121473110674249646181818831197350042391134142321655604032542947699490816920423891717471101903755503389864942703468176734643337469540714430535614829149857636352833496694745392242210549344429787539925210846962227580219711434970246470328161721232762566950469519727428460817119457410190760081933362105768485182978253153279864499748874081820534337838204405013192295483790895130952218488568051756160330369033671411130537596199432623261729571367764063183677514006658106551186986688380138770918581820297584056826635510089616881235972173665167880541426310538038419646361358799370715115497843978053758358368746177970252639075566174524919020578074266554188239534908722781696591634601602313606804726500690856012341882822854668564985254880150170282520498913313913362959458992940431576468981116927912465786338632574202976959864972085539425067110916084743395410249927801069183324817940488105822380690118422691146525851475707037164216920584834513287343006559893068260698659709633314496874226887521270526371259055912273288939454457778150481210122921779237959459416891324917713074764518333014526341796557089822930339930405859420358953662717948078553219245271100010362861810418921529104119393811510204801836776171278457073217287250701418205380332358013697287468098323250523987448355648415255237709251143786013706043311421242201696109118936163335601876223056873579624469805236875487729596781537138919210938010602758611682210445897331638758178339366338856191645710830982524231460178695956362693427364790208657000285951949495764004522827491240763934010184537467323300762425588280022606164317903228175420442478156886796706947805379636895700262016962972296025287165472649300177109926374255112260525522954780826016996578985980501300942447213661774456670649213104445478543735712964217961397567889067625927699929526589093022096553170151743112981628069336970209764406115386898488824036021387028534920062522513467897956519931389212912258739240357060775073994086402035606317745049010072351220711864058942604105590774697443802020325600387483630342219004098592704398868836608438772932186900514191509342570542973567494350966605250315453694774461874388768053736098685066799619640933548574846316284490997460617122412166973845074656276788608283991881411886401176735167910313655527003913429272293730957432276154291300819337407747998011504169427407893755492590561299450407031589495339448069436712946089063719370491440456176099652850171576153465205800668611138145396504834748911248568758522516397830897618744349123509981399568999019112064292040538518959483596008338127462412077950249524815685638764888804853617105454547654332971262022758765672607687337653586732687259105050395549365030086291326694986412086111265261939441275477086824150867338125919205007825457526389753917268594757037598681716618444382282062316178624899136912255531801649313485575029410912931812302360054177217450037778289886399322399897847368779803227957289629034808928060776562062924022254753503531879861757594920201456092385118066590679084043483280075070970361562930790746510517194476443661068849664253512571952977205878484728448637276282064251291959458444984370509547830843819744185965911099495175966530972814550953116494216434475945794798254448822512989981405258068925419896491210055881261801460276427206210765408162139874829878346239947015759063118599091280950295531256309740567490463431383112178527130614837947240717517094832634295843610112020731933538415063505613913874256313427247674155465770694818605429293970622383861062304672403385369693257152475745164887440381018752205859335860382421473554665870203163351136455661577102647896746127197586120214741592140793364946479786977959543793610919386329208620737968778787420558731717656677211946996688042607060701569860577510335056795776405996574361813053386330731414385858411005583060348972235735144355029037290953365928599454959823144368526479641527841608901401363201733490535221995562435801406312474733658461173403413063859926134744346288542378681347622456689929634978317636872434734307635048409444474329388290057753203218825839485156766439307015645997607277002664574931964039994955626357419225789779905954431677698439270025117688576715638222379228156627390535758662600882537964516356489671217871350952585306938560336385170897335699018208565294553257338131848857190081304541963217627725610086442990252382987347203857237988189399284971112545683887871913896456686738416760131088395266997768937988616761674712077896412596395955633540564660619002644538392684166239407908824729182523864921035781475002980337239097901098190240404884616911686739404550116353787355189888223154245329046118700341116988477531075447038916415298252173453001854498900545377232542729258450723789413216816719214060131617319896003359678851636249138482322933923806712241115819586426719407092038918003357323385126419853613756226687600832518824859615095543097311131017686442865176458737483028153276933218899381480770983526212141279813319871861987490953649780416744923001400541807227611957612855134175946728737726875688246751742798575311370957468229328012175772080028066261002234467695743761239702596754112019792649848375025680562779785780176291147920895073171560734402357021127935987388475990362435247066619328675671291578573877373442020542106044285425699379507651433385432069026689486066880861059519647189235174837588909037341686937843196219185298389391421642223063801877728453667848506578901052126229712697815656011317410327430385113641857352942026888782090983076789933423377569330838474780165494237720388525500926178361201186542536602880166711911083092377046320116920737269511895163664255092338673417511892749035297045921003653116013482255874172094209796226063367067484893076223092380237018009529547991796327752294853996930755930532847330740697542094605973472097493935083702993323701780077863954823162103266012496611839061327589660119742293291569566148610407990264969414855517907786000560340720207993425280729916572182772866863832982432607407801040187907954085445887304846888003407804257063679951982414332352032822746371226389427584435597124157487181255682875956573095018330484113088505415159450170655002663516239582213300173368616791460576714323535130781545912477754783013431839103119595261214631313270442127074481871543867763127442834794627241424566370676485621870569452526739435612383667054578441550194547263663643242793300661007591461434000599492410419327533385018253619821167273476117627495369274825425255233501911096767922238572593419117768332203803270715313954614372573065494368658402074420111781266283021960817430788830401872331322846364978219855871924859872952282650118082543363530632323122660177627256168717745216710989810171462319080981367949537283230280313676489823264754105786826709966705562160529743411902108768442575026700271067726985905254046177652187011428863929880571305790668837176191872166409666164490842662739949618359236011327261315572937758363213568448908546645334111453188032658139855863376931535977334919569199785768921171423903716516417244191622042958334028272627194747627007122315625786785733440249550920664333125778665389927818230454157327940017702600032702457365705253400588504140905306111953092915736668226717215022289931382542754670038586212108554824768737280726951314269238869400473622358956879932519071738933231297126437581290744501125407617055423526489387461074680575019455451958279696747765762063498245212445805499800239900695310461811903113831093252879243106734779122502495882727164801683876011920537509329170451133543058288915749494300529720694738582155475770741750138130326992356962669892983131844179759635275941046621744411198199191883766947241966354058293484290183998480573673166716613184726368066603433842213974403346797874338119405338231617128590564641649709248126943743559057310086328248312758026235984884913632007404754663540218106427141424456657640266350161028877922230142784765172413896787951187691551077470110091821373912078311174454270426287295469847462621524798821852642306274149654995429833580863235173101782601154854055114871216265934650864150394142431521751474528145976544196245474208527777222739505713272662095260396182105522974513076586132547336906250223732701396547848916372288199844656731040876709338107073337030259355670328799968302600389116128451928719178209796805916599907637589411047911181647537152356030319948906746572953075793150937230530561747100006606445544300378878697919610022550139185251613852373868789728098272185528085146104210420149788179715800831648458544122064343634260727695363395201155022946615267408467507815484589440859304837780245076355861722630992144990728161364020417125567869593620913102433163275999677808721976607112206910676856858786908938661231400967197311656852844892912506763963116249690527825359821861825326310584192694880810303949804822979209670661056861754149864610166941231569991078859189224055093383639651708207979777087062355537001713289873359594949905048314107614734376514136225510442640453748016419036169408713682936477693063532782748798727741526427527048919973927738812101565696587837571782490534443365015629026770530861747725786328565918446013357224582806656193862883461809999905042276221490173043806065590883940178393765546948718595120062345787732729620345400143480943415657887601216065255629732075691476343109002393559051737201118203248593549983902016904122858096188982782702784331517205458715647111734992717753269634149625826472451487782636641252203203520572043158491520530020534962561263083485439188157481106971877254778012376712215511015496471037898367356871109671237671270725184219873253048697781657402733807090144903793504394575448506650960844281723919141044883760109272332262230535522962362350893699254923277663649746843784395682871730154308967549154335503198874989458002344185121241785629379586343622076772127968060361997873527597188992571847664199063942023477970297364385507133299111543096563091167776302145862924900156428199115147058475952804237407065608158574408073490860338695714765236709984955756631406312255829016264513421237873626364059301233472559218302304174235916129804298401782865961230298915043210883246103940387519697612595945385802310629447753598324130243715850125467201417154952526364307994878868740081721926661216197199913346444721388444362995684652567775628632615588290275639972223671247750219208156347138392692725624331967737521158717721628133121241526774721690658691127625603590963974486096949694556706604714027329323536062490844999125896589063052909722459343141580406827391733856851059152249796583705964176646927878277799246448399465771627012551870931987342872976634500763366097815968116263837500019302239848947443439515719246132463381761589471521923039619519797599895832669860472306758360908312163670474541669126999937806868881409154664433450689200478101334839606759275114294540137112229441119897494381555574389047129938927357781982717513940872338201148741558601187552318472325031681479835814497334899046356866760655114407425333033169338730804426742087207277325289623629875927499329737017453053599304966008703167204343644301342254096922093468634305171498330174913945276506322682401260115300553725557816583252314813122170393999647645683318771334164147871910496929832782218336427707590512806930554667650152833186231138790522852957452420089878686325725395490501727198179836649233691882856780763889097680107325627035004001801442307757396077768498712529493936636738072320623514395090318965952945695367237016215478808010655292337133624821384529013361393631792013850767043951008648657216094752101762876570850449563489996966386175207375281988498667461003706055008455539539788275045336496283777600292603172780226949523643969336685429884416949997111315565011787129443821311173540815709907884640901484539829896434429033514130431067470330773329874970856781898032130386857909385635403792982958667769367098342369554550636610177982828194155967577243181596329407863009853417351876197054285627668736936708611407852994730730223807110161443099068733424268836721818054652208910290221257087853533373945517019665296311096324215708063422303562450912984608223089517808331640384903379912932598791543934282984240193516018996950486745057542371128670943170697164952757268300625910345568954240313438198623580457847689526900450912114048256264473049858921237208835881245858332260711042509361140394184251517841331563941970460956183384263752879516589764102731203297143698902694038547144394160232728897930579429751085341057444399473878451935928427183122104376829277345369064220814740570862970653769865215308550275230839779594230981019830071106716489231251507607730373664564248556628718007183366077816073100977126622302420354006325791472116208946436494916685751098655819288133287805479888019767183791556771388050198013019900423946206683120761999818998137907792528661107889082345751429634795268813059329101523357541261019264596017194156471486987425142053218264642195749873667634441091683662985396083854882502778007171731328712248647481109668481162964848625881366779383046973648239243234099068473735704243707491473598295875425807653673187574845138751177934556012413681436256799240237973246503081200866028336395200444892906852396876854045329015850929050643286672699861462160428833666038581052179367533479916223391757958517172379828810217283618497069320825773771638355899894695879546415989963608674761506347424641853085335562521287066644485192543964163868438403386410733192109233275790714066408264240856419952535962607647024361629413190249326780870492270735110986946049153324611647786708812124119436999085467380920226375411682551849986248393119227735350574674348325961901883839628517064241446296564930066691298992142024152577782459543424426369677657970162061673057772939469082383902439362729315016390484821257274026600348710720332350296487334850083719681513028696953496690908618071816350290113107086495995817249553421785347978676857883118991143957545235841892867421717222616931910169450377352150937364335196612571332622575298624600542113673726401280880570393137514948971503138549462100909680197674188579921808393595641664046116098163529419790516211931667195461231561512579958662372971846495826456542624527569488810396396188787910179237845015885854734039294891951657098189490467950942552953909017492134792314970511471583578375824581343388208917193365928061802705456657223518681703426202977380576219398750004174213119182586537726519747855252557135106634148167458578193319431374540488716222977254166425812017511766000305735527277684513002965592955043756056358564098696486617746944783660603608289926507165145195307329539971267381515894372345710335728441990146904267846237742946261384014950238050906315754783493586259048584869772130410886227138156226734158375190099252366338719742155784029775419450337300744192788171960899283787350650949133398894514783712386314446491398634187579988370040289205844775330947284718791195465511297679643865749561936189304940030697847560469031868358545240924077857339757388968987008094091814486208271798582170641234950464916800680133168101499186566435434584674397412852156722496616137108388404213458368367706775253693235754321784416620115287375948757203757128906200397876893509507780048413169928765560069000975938716231988915526984524386471840191511151094378124787246511848410629787473647181782202722779795031105061885632309636126627903657973186372073363447024294822255519395571465378754681371426414636868997366541033484702511676584581258641037671338755368771779379027325093806406398716479002428143727678058221034567261709137481144173173325048888913776582945638099804143300828524873497301093844274154515478197803452563990654485064598623482431488360525036022739379923371228132468356353349124260744766652131696353256195597241137445308417850538808906492746127148751488167695462147123820866790827203238473084531560876409463811924783860777968357902643035905441246129870590160349062323288397926101566446571762123580019265284504047347407620745860561701881572957966949049976787074654353286850828597881352023770185968140248101798084858047649537482476406332090012074031538659468424458023451616744787044507271880357123322242590460774365922053767796468355941008202309636660310770354392738408805647816031619015576287659423437596213639797079619680206345349475032808794926425214593933117675856126816723741404245064735548677792986163585047024891235650816247739034747659762746704316704207428646904993739745561093519297710846334780226179530271000323300379805262517134022699439666593502627575443469527912460899305935889530917112804708855303388243594394678633078188298259731405949645954572025421159476943901477970855397074004950471431743016796180878016003399488220449180508815013879145181731057158192152309734419287301058156363088168280253748591784848236826332998901100314273875117279885559147598679596664331750189891683185128362056348474911546916742236256343576785722317386052690244846028770485136212246290157587584704004339669659841494833860884760979264211488816343450743627883948831560681102365655431958407226750139294157358696573370397305534650868823422246525049281143398903987340917533767305722011854043206457889848133176743680596081844497521327047444728322686668869495651272042257871609371542804687398078490668732842163597976026690667823152820029328778207509761275398373842120815540791258120047551228753398333734915334784517314515278391617538589999512753461184828675933314782939005274064798893696384574250950959483703002141422935793700138467971506585274353694212095405592494207931384393739159501467582272899222319197478338279700880723908662685577148910970187298105541524786634292037160842365107274789079381144231950296596272819574164832330464500389252666926356569748517667263304483877456814297237263377695520244433565208561659235089424183191330850030701151679178613593689832294823266058095835730996277133746811701094860330048532467466760160118071276909630715265414456984192793489469948140504995947121125742387236913632270457391907788826046878818767893284561048640619910975008067505768789219555113436786890769799229680484500047451722349972375225143041278636234366356867123027524335491883039058767195720840770055323159250020026687830540020383202687003719903130595477976531709435741222854693593876146606678585008965884908855639862392324361493119863209448123900072800291497223805534382723255969238433776465953886006512378433641095605332585966974151528664508680520147704388903670908997304192050302241020306268926175863874286518900995684914061601859629984539470479583792955589186815932584109713749550682624203833950284094225452786941252944492009597540407952859750081708307264072820606363590264790666922228084820212018209116876656836912094621187290992687686585381126965525947654042240572351302367896388236642451768568949856879336634174994936255323011258403882113716312029242718732882083371542087047426613435214279569180014545117351480046515941974840974708809824495228376056638617871602816806831290832613570077645761025363986212510636127688622655484006878931667017036430775893700931104139837127280901109667032452954495525259856638517219742725126743871225796418686782436917808508869716022628202717560536933311353433909304477650406382419057367974347323865764118771943811374690935933291726572512054462721006735304018935348861893708691548956868076884483793698329512265875468772279019662173200308920289493013476408132526517621246998852548160918096258521350315430280268110973464963847406845845147064316380864219037979004171360344111752110166162057095621478056285180639834824019581216221861293097227396231145978904098820415235594541036214651506877193714051600574888379642858404799766224178693454463247382343264878024296174177033481000880935019286960579200528569178356370409172831193768928579401625163027908034176547224704049300789139500884913863531687951646728297206243022572917679221714156820020554740766234755202175360174425173481982440114480823214725804433416026577535088979182003700174625292351680317114328949599034095786670802176301117605030253121633508694467862586894672721996343622838826239636340503575788904076634689438681904893943195419177236404426436115369187912328732754868842645409985252564848744817705599044660039392288969866772441835731458129432646417070932177037923499363963104569220015324835911903504613616203264576000532342874946008586872053925954489110559145948812882425712883170774073192948203504603843678194406075175531611746603108212751429906133011505218724260555027076828516875078816135248591997927728765924555413027844666223081082566689025520447174222831820698518788405673884902675862056559482994814920913470312653817861614171727614773966573714856583628001940202591696065713184954194469744176415385476094612672105225697440525596319071992483271663016524307392603393499406720265633031771882830176952488881897680168217121106886211498250539163090578236223789115421611727104200548608371657965513252908008188096131256072631752783591332039882558498521840903034877070730433512520503155052862947797417466973923465975567892361437849650805966314836286189913631758122296517268580292801061396127645155398317152641540660399816924609688040197936155584037495499552196698084856018620757923527990311467026530740078751166320268425467959127042594641434614505299537029541976002316537342811087720748916500013386594339466332004286222233300731704020751462376438855094343339995443550624182991055335552381621986515134833367424075814736294494418314574275872515512247021398846525900717981591020982084801488616369907865631652101734467181682912356449276131731900672785295960963303914602609054783262161231241692416328851975349983340486801335200634957783349957012339859055690421268089681148411916777409948265806962969188358035549315536634100565973884927378367043168894282160245082640377051396045233996271644829168171446393681015226891235470541752052730494276813147497933558567919314014908603170937108212504745297695094717566056691042287149097401236487855898153588835186996063787679971912118283355206337488673104680397003551211573235715742072920503723901537126509666753708258035470459973406062375651735834935539634515817772300247052463068069635895205045287210333047753923191833402925056903214359336318004403585277134489165503778371428529910356246829702696877962790067127377637626367486548831372451297475105506719267920412605208183071168462148380112693883340356001197913340069521989805567894621611507359645553814275902954000026809630118841021385031953113427870717959123181952740173705902090362746432719406637202794965938328029897940511528336656944902088123614665325057145467384895592999900298168825077562182453620845126692467168921949797862602433460587570708821466229137971568347586022436896025343689868437445593423202537759242800601587099316011506640728235146705113509690575849901082517740421911409865168836697326478101591510088370045022646993820143451653570409255087893803713534510417511741369529948956525371211833505577820175924650838319662611099665268621364548125536598114563797036509312964007048635955182500514636659413863353345119035881696522548228629934164240521308706748591795137398933780682119676138031806064880983713813948459236542560970145393600306985133929153499424428772708975300737566007067711552635341677141002780058415387303303273677320606930324031381765009221020901408230019284288275060594414606647012267580088364788156413793372169528335615965059814925800247739209826607170745930369667476679994431859245520633840195271500056231510410037912396908920660006367125221056967949984152727012129602365872377757987429526432143142409107531694099944962389496405932345032286124679288620063062933283836753579854267250475450115998739982295030004165657180175699381627167631300583234718285094161858500795052162420922783990912869277229888087903760648595662894004294687495362809440110036828052676365040538640217337316044996039570490792059820616041914690200921287467311805649938766767109270728362533676390325749784766034682261614673114992031467138208186031678779866050699810592573787441307759261192818721931629315478499287093774977544193288550154238384524691611868882161667212738756539194989096920559500373297644152318820909463890378344501036982646152485554220080780881432207958506353520773108813795217632931387504091123981826649890309794582416829003888649962433211788797280876073320489351405016126399991827811586882914027431217595430703776875003401830544539865764643520716113519296276757896610662165629267045437039738573318238556255663037309378543764172549602224496315018956546754620488017495149748138131638547352059336480637158881133810230831658229353309037406296684700399844920664020704567644968316145471869340838991616278801700809280329166317746174851157810144897049254081376687573879930707228770981717544317996752580843727216089478184378231603392265079303930315640888960134172460852514796909149807042012375594921817779393064807470164804251911401517891203639994105936557552509322378622783773077605166049979789699532508012753906480954660214415801812585372463358187383392137655906204392327439138537910471898688079135683174903935966288439507262647395000020382331830045998496235846920300048908406536734171000876246131318167422870785207656671298631336794929029625800595264696740244341160415236737376709419895663031897227096111631205374963164611132981399766741405874049666733840592514341118006280518773564155783287218193830207045690436266301401007033306083546164841693599995508081345771765381147560693518108656179435526381430311559027532730921023716281637256365429888904471713654517895542438382474950445431859775931523396513175636268233147172231966309860862080115937283380611063035513155967396495589426039164240328069244729516403557322535084866800910656649084492798986808533118411726249342094608400922106135041716610137791226139685203263398464789774715196814044099757401578742970463162381094808806147773602938540480678898565102695011993648360266881530406509110588891204208064261870314418141034555557079293147137260991060133043249710680996913207854464572839550830674389388697820758778907183277225838554763500846496087652389943452108593833806766097940239299771750612322437256847335796344427975871095814152162597198088050510831378453346896378730579454560348554418573505587991582605445758432915084994965849860761853166798287970795174960005439365049700080205617065661160084558252304367581684954332825126676947329642127196372696369393753088160054999247772228089109809117499923950718746506184135540780088639321563582883986946561076551047954601288742224335172702320891329192375641835104184101710775064780885093653141872430357286813532534635079784254241863565237881155300087632311357006200935159859116240508642814108349746298945815681422226744378912895339041643692537287074529866644710070902171023090133906570053896761917959883785896854017017107789631252093892957404171736873183716148065132073653245375298702746145985705689160856745883289464255335595669838073664020361953676092635140241725827512523494224710502343427678746350731584338611365004984825416666495989857604003770405018900551602070337635715991999726655205444292398386289602374804404160377597446889377093663232424525038980409254647499724847567262360297847738713162554427897276355414819987652079567912755417874052054060168089223390411909013480564693279960387909589122984028178445596746945383721790323482220238038287305579431811745971283929637429002435354845097051290531773955205216898331221480905007442986342407777989178711505001710028441605003013018273109632985247488067397456762458594413497822551806943106007536433810596102978017649640233418710130972297243281025323976754894176445374600461112616615101961966982234657912943675212784168594745339857014368712378977490210250975275016784118065217087283303815115044293108340063549869613170165944093372371246298616131664156288597306711247405317740375272396149896054311906365139183505693119887939317844630244048742220064132485262581045970844644884429878102877371854821972717821940578663607996886142096916186289449984901359490791078776693357314357494722208310028101876680939433696832649038834451627306363364180846938923910512472517443703751983893050850586274716573685520999495710442876229732948028558666720272589750805384856872720998567122398783230865722033950183360881079813131935755650055102350544633962861373035294973990053038569615902456730224034940845126592814660176471430219596492216391044937673702778783215206635675034895440330216920847616732863137960442644176061651200563800766499839419972763339215690108345228187645292738470013769217113819624202834574841302814275673781151941709326240148110910114561200487969309400559974126348964386233371799743007426890212796833015100881445490161986163620575783453632913859217131780101214706273998861802389182238194560147044083049642447223002766726869312291606129926646925595493222532121590434038151962652235811079048664415448757844968916969010995433202642494165662101250119727583791060005149261579258102186190095250301520599549022375655683960436981496299939419256304355249013060350294173830134124814408437050464248757800422580576109647996407752070255434096850473558631536636995970103128940900689304203817192382365518934367692632888080471089232605858668299784865024517257569776483483607553407313490606793204176860447073237882780269675915951115457730207414186305385678820775438466761817435047112781254859047750407303182921702049619474882004657980629736649060795105772722397160449952949540007556099138850510204552226601361302734027471795913285088604832245948815186905283787731597905498385383393198543497886201664445050095800185494346307799876331411376916067962810789678919002459712786966784982565777625009140931087833151961049997280556345401116407100950746320431388452796784967975448966635144451175654273290743305993457324125313832868202580054093141655280777243905891383961247908522824701039020412758113859596595754826407326684963837724479540893882896156962940434261814616222486762563537579623279803615026293025646988652418703008636881059478439712393326931868680958061803692176224963690970190834286996714603009911579400664949208255876367628884766585033401943973809288636157616513547562543442107323535889881058141773595629822791608094004129522258925615003414742382640641220601238321070133441264645782008829410196521685379886399848775391211901497073150644648116848802616189978344451777543936305520916293792205651948038996748728523243618152771830037533018708524722486924252732357619487382649691606558923352152292239748860019453725724838334550274191890041465347510171563779779554348876630783534114220009247840147678593092757112429926773748789547659339915277065177970551105629177330818808811591238764110472969525001211350226657015602840529330115702764727464700572073050214061527680894671951507275378470776981512155771520617156610274480377522707941057773114518941585523484526661741887380484844089882024663294752604140075039695708342909267616965292651504466589645998679321112443096688399730521378130167549789837227456771803072458189780419996368178529704169855745937698059871956188454040333123379375159975498507749756068576214896953433454021099894361575532421794142586246927577218245717961874775691928664263432467921942038901600796335166639762077644641406922298131934224685513643212415996280832514592760748059461955480996540364290628049917650106869721002319422670319457701999390137590627038776010907292910721697858837945528772072792487753937608858901854880123652018359679690295044925620807622832028172943699602725692007744953871747674590480390027358295653279924091344020191408641301742678472534127006796839067840734403306579556847081768954252665787492454400249750348951846353410364061534181002673466313136200608739133437520073900511693035624790534582271120536511738573201585971402796022877964311541410918262343161051124585963897714437731896953780775855981313384058758124672427077149238581537165593104384640824202565644426084166268226423466880195655070718680952467442085555902623879468880732114380052944154852248830474472417244486233258166695243776135243717454514051912451018331076175598303081702886733099587868295315617207632133121054498580540819745794707226899042905720375189016223427915146935151467198516324433326717530745079658944235812152924825254903997942988138259759795311835371327818477812974771986086520330029400042538465500635022728570854038630133814406448055107631994325976030326257040305526367446926331916565110975211343969388605883384762228751907945575676106548752726419187029189326698104597587555813600413264320761189212602825916490154970684839226702068270586759073710283568952306202797392610350562615011680890208831085959763700679939370926832765671662955462966932297811075317270582746583431965820709677991088291915030946137690687571247669413085025730654757082047096386395415958897677337311430789093785259637520855935049955380950999983083579111540664468728905174533628153252884880030293945335286948127421354759462550526466931269658527024788263287320355639549864727719329221104111469818839627987506520849968072786730600258066304077078432644870552754495769557149490381582262857126760586026211554179698580086216343329480318234008353224655425996996514058148752440208607688957506877965567019133916516141928698487645998846567313378897702758971319682064387562313555612419347533640609783281585001822929065072340540997290451443639922297321784582260636517815553526812041394192876084371999786682042419659939840346723892507845616595172520779692048702270348471994584778863731836841811788942200126014471942024335903861112384384310954080742027925111806653372089330014960711939572151297604409180877187508690856768964710006037114474208518568531641341593372041837136813846015072176429109880335849671468263731765074661591204815027756616892511940765740628379994154161740338960209535735878341454827335591269620021774636707167774980190403030474614720915109600298530775984014688099327835275648229889542578813084916866806213695687555326110603367425859399579208215883325698782370833930969228242149660981064669664000372218263978800181095640210924492832775742451673550696024031892587011066955643802703679424086095126156768185816137742795801743425388304311029875460285337765447255805706275469514147179593781572675002655466784682150633591306467142736686921364805791954687843635963192826566273638554200906829085128934831272384486181624809601084473959491944477776762885641087645805435730198527811120481337991752843785801285215135009133550414025448167069245111454223792741314093694061676833902601244170504483033846049582570508347559742091676798128136834036135395443516575635447831990520506444942472336751156152000343144792406285728221146579291629539814624835904811324190338642201724980774232939906440536806715644081576865529521985542387199790032539008125446522692418136708194566572810536723539093156933237294876341917029834405102665816083742956710130005604851301493216620212126779133165442067868518461552909510989446452430421665927991037047336951215728319163335263316331138542550718068221814696849023612841456938834607040610034638713708873835578917478474213437990655957759494352962996688958729003924420345358128862042560234623878996202119011556313417728644666353104555665239806027558290084053326803336649210559071182774271165201111211413120005532932558530223986545465625798835296632044951531885940577959743767304008006253874354681890335622290559993785719737689189904394915960005003925935151346017095046257796708298318402211860610127897885026674131027429084399207920479696114908399700589242370968562104875518918121369633608020015099047899094816640068228477233341720516763557042726999310139497784419171576881244434330939144967104215015474054446411855222666801073935408136898591883159370342749317977113865226474641572033205534118727825664134023134072856517269725524460749121868325708378818011972000897896886136638506050684641832662024575402465650391898677127478432195168132765279614175822272291883218995881366908213758066595706091546806927701518120161918027350459735517880466516856691903488788785056136848027507167259259530016785520293789268444778079309334848525777044999340910300290247241481622341888591597953905944527431486824126523704558095508315259609825194267890074982352629405250996585948647444821557921813544726741364685896402362901365805341363596379718292071690714346670437518376641909019026524907970135577106870966621227555820447421802465866438702882362870756752591665158774434369809848365955617937243422382848270793831864346419011460511295952077771613429003332744862500264455116751806180335997696016801034682446590980653043398232831651472562586596421653338243833905818755686010117750646015359184544257262130464866455602984369782470788947344175473855770824886625277998889473221909786476922795061905674117344475280610697085675957703549647656757118397280439731088686627783383861609228244716673773712356388954932239703155105453041758905135752596954735652222846006593259600523123213078571551857180519074010101096571363936254364155131390254270946477057679589935020427932400565277836137872782669656722692706513400221404593100352843030059217310365038126183020643598453251037670833938878163232137155396423819061596285041490794417374353322373272822648928651103473894524812160396212439559911212755219144538671952453170944715289346334626704185716821578908975786518265307366555904734565572134974149023189929847197533002432950954432689190382312926768734325891816664285277434888224653765689913981107411323112357956162385065842324878158964669096539153188456187409556396874688983290595874904193524645621613880492154077081775084602048944293162252934563410024721144980034668509444663999350344315560760905758703508248308690099345148023916831866743265570642465781245740773159244404883395483606176645367245801924584431139476079421385340391162559456392212257345629186114121485854139703183546789410172390494789974611969929245137543771727860534000941032178335060784896430001575431218623347694281115822604067434752957816235004089892892185766588267534790113045511140509671648097207074572252350449057260880221918885045883010106933500813829695402049845127923140722092628862450005422647596526593593139946166869006234972967434252000594687990168617377304782382691819141500940864624433166615439989174593014014369609556369752607788304221492222502919049914549642665554725673816555190081794459597688298527308671024874385839898334267680053986495468970831590207003385221165973459797856672338534433892907851552960174997639456894893179349262752694143813910906589466792346303888161365361030200558196764941250404883928774134282817779654926842845457248180391072260018130250821751122851259011803603107290525726677182269039846419489836331277477686621349740084201526074332173810255580552443226147554884196166031037836631780151205838708157349225612135060811384802153565522909541696301929218126186167008414902211139925456169473701851672192899383182388995042432348602602734922667805841054840378560539369260538489615883825300153616841383206833009631339401609480992098334920360469312984597005699870467800557993780842903611588114682615889641701022556678642795295760813099045083880779616193114682121509873155167571040722813409604120937324893417505470720351520180685224005884336586455332018981874149853548985775865358706682815525015604963982402882980244782595770081090024565403868884930976199259065951302448193794454992296291433883788191990026259854985783737787529541207383642753819969011788045454982483351182416600653084001135299208566352042402710052171162643565664518638159604176712432081456727853454328762733944844180854317134533074469897692568836356299413711569747656890303829816089099637632743806353389600605253178078856812638947737644796130780459750130060857909289773834255215902754567605986350574903967522285301252571479295503136921207495034166010886020988347655939841479198130071562565836500886216175447877104573606278278422582472977586126064301637678176972811948267575198187219915988488731082258900775414560985423515511741608891460928302611561969689089181553953051956769675346581977296618255595896037109689391692882654610342995407317647680623033459267950568847750631911896461556541062237136708585241753653017309539501958079067670825152104478798329172287282243064827257448517729306417742280252630912851184956634225340930886302972550605707397368151444655605921968357229144215215665146166255267572403505391888594046020108150901893068119231182172633111378609193255767740563068516449078359186647189705012494029428554074254384139867106655334869573828896400896485047599738216868509865903234087506727413590871572235127673597475637924205222963913666400984278078843078225240681700484494739519426252157194429687727867410392870052850658406744510764911371146585077007441754361755143848063064574647955104738250911135139089420185219220249721529394253946373637096860777340064236348954298852258611383175095585165529453166408754437283335357463653873785042228090851514908819643126499873101715812859872134219035772597979984481590193583993875017349662504736530020424882192857799572478361025140005359066453822950334691033962094653004289000838728978864488859711758866042205877962342472209426628275894876450048809390271806707088853102496280617539921091356709577234336851721801315311196810932775278560443009713715796462213411722966786813837651313630337159609132533182220217181170199836561134012108976873801563140664572875042561860447784877380259106490383388297030094229270749604771150260438077722785022875895462046414685372873530647381967599146424845701517918304154013152093820342331523389505544204295858715641565261642566431329377727128771833883062602180417267157849409569393917841839372953146379046694140809489302709178093590040716020222798225516432847322403444729940423570192343560655637209904738071976428702389798836133810590668665425540669212847694736281001006256660796242265747580812434178764540014591913314113714295699235028133302394697046483813538577573187641507356878803012939434501890968016224586318676090476088510268201718369409048155523002290305329012248373526798566924597876300446701875831904800780160620124100610727426951669134680063583666490973730791047010760676666675622100427806499185960958255030390073828524502720269192566884583724692857352166494565664225352543235222049055209490655775066311608087223623281248384148457084189231306943479681055171938994960217473315529984213980242584635453339645578685357553313743419357366313564960712626878263980948925780613085163700160874379858203460297487636307302748992418317983405935614639034907476407925525465643162364738901649303451192974830583246512297497988107897064789834866552649229731779747706412554875175442567800433270571474682140727828020841691780387988071704792103911031639271078671061277835138223366693933148593111260093922120705630558712524003492670775402532288977470785724662297861695906731141064187851017291313426131812741306196616434795981403823305023706478000992308954891589387122843784573718707694083517006043765754121886072457756095936323832632322582493805821624534317965371992049180484519797911755788499766992822307432128597766987407551229671041936776853804665070776323917897164139502130147241342762464084313181713934021301643425266483840472495149630253431172595979451269343102002381832087201902044460289205731394409672358235989776843193169818226687011066746666156399190919326258700596259811173140548777874289286147453695592440661457213707081180123626474442235993673069328524553473922812152051323317710607445778195014225435618918701932610414695825653501703481980056822901267338889088312828586803911684644288455954454370862809287617914002588229009571435727427383805569828086943589523281085033549138992382546237672257866801976944692174445144914805431867705214189839005140911703051146812091118037187973924140359640494965309785618896957977851956197926205131867804128947765442133836521139028508400456970398345748035695667723188497649164226041557721700104099247520466902791413422297698600254498646037344950870057089627276745395967454807256093837286835170966580001709034849011051306842247185400887612003359546698847136062830173006886003091788541811667223469572767022807255679656815128028756534151304718176371786065425978198649650395280864174428441439401120224093490730379830915768333572030778060700625597956714404346909570529604616273119805631121424672383426824723403628378246002598502434692788651539904994728115311574325401957342389174073842531231972012088863297344616916941018270820057192207861126905112941698412792944650242464430759071701123396127528200232300269832679759758150895815719265636554603580294465841140342916231365435155883504268537184365436901242642089740211918088410837211998107750547781893488619271040113694889480113955454193166389428984594485440755902288842722287201831279973596975183277659003404826987849035278613003318897948236717630031867140753256972263288527917011047353848350826005542699797555821756115509536164809582245899474124407695047304531364395533840073949722848593816977998271617730855099902493680665855741044352614558904524946999866568407045376859544551661203888724634345166766567057947173719820405958958735351243238660593698862692889205570582173876299498531375239825672998672764256443962226221286108870916527849762747055676306189659270999651005935595470559984070120877294361602441705135332942273175248818749305451977838065063047135474918968908559753595190915237154054816810617489101147066774948262219427883804174342091739587155123452342217663583760597205217386805361805461428165780043862800146787267121064346402223769400316089519564918572658538684556708787597142097023541329273413787204937615369809899868620037958974118038032002706162407665727903827166295715251651566652527965008615512950046889033477256395204147803787518856557050775431025668779840074591339936610525364894880247213036213279439618060641988977128559565803265058682469925851655039432758160817442144138528010403966128980875474576700035843044283479536067537846192741937380403408881635491250772197481654810099250406215654543375977158471866494916306465776308536037748598357495706285800622985770994645457576907477738797724083694831756935654216691348367601245298981135005215277384078639022607244686765792056809643269091685014576471045584042953206053151744940772429222439174203093286440789021573939978878924816336713593094636456030519956132499461442314808772972977514451260417473812223833810474694824153401987836184128507609858431896776430851296282011024927723827078821245776815120851099055302426596272284521239154869664085020580867206610589299012586388867435569019016847323471538233761362917507174550967596733934239612644532537845148970937485749900081134227912031830857313673514889436576348777254223368641296757142590303747099635677149937225083144812522838146268988473937089951141263182845613645997578532841230059763266561663261802147701198940560664114834644356636097026589775364018579845773261921789776617777321021001881074332916742798572988934184573212846089058695214785212899940021220924190035859249846044594485582278927470226959916086676776961484840913566391519590936226100499100794943423441315734682152426540267963867527369353789709139303756683510152470259448758331651403836162266722454491766530630870526120232946158189552638375509581589962351976987867478897242546105737591838518931059146374350387002774037516988527501521973632441470426161687983922084771533801171948431817619208242521792248711628851893329063231807957937463757901569254928919783263609177181341911074089710523504441609508053317967896690527227074660750202937795150745868412475242175576042126140073169722855146711564487293260396942542722361721258579572486652544531953135202547929889971089001966469243339207281893225403460119230048027404584545004991838671618575395614865826496376888625905485355031447645455528885337529802655579328348319869323728847382178359105186984506619511313764281661327977458197215117272755305451208454325019523839057845038246824958083728401551799260621019016260954507984363574867064781187107007684666617744119491114934594455524700046136260215739848118632366398838159294072701284508984435728701795745175774764805406806437443359885704976612039989574224789420352575132104106567776667696080520474613096381708643567462349321796297178449180455319836084754533088681920685332797142528395649971665702533371170955530896390457802085296152283162755928026064921443278470710291959119713078257391722416041612925134771723406439814062269082327011759993185978238085026023518175386523919997218126527823258085546859911312967870577475118652979086804665839433519553438212859607386600608475851981419645899480559602118299047445465051841196257077472011363146498051027399655339151302158334154939878529203513536022867266742534851267677266705897588561758765636920309567761251899735938472248190770358384629115984665693745887080578226081449385226218387171720251569070291621797464041360808277631093870539791833037668951882881373692950771750361726974855843529279727125068460829972466949639451207684780055581709244059021144209522128428429855566981351121266583742918900112109432013628280431308875667816359936433937714364825842304745322024532958496739644051907816847101797684089176019988474539376385659227842966384288065805298485602736219588088484104952392410140128040703107312368559904074833663078000866758828754029856099282024424597330616235922355189027439874742906864570769885601807908713367179994253125142295372389338008688061042601738574588439366844344964199286766816698235152071652960195609258965319407692959661629670735569490100540726598398865349358043372306932451417873605677698839027429549584985911483245172266607801142352647307860821018101671155550113963844925894161346662012525691496357211949329657360108778988647113244859961191978452464017661978431161124079985999545770995534012886631466408133572278794903727060343051889236613683621153176151378656504180941810716223417221091478785982913330694500638918405579647702900246546811427607310254047426777021625414796560242808469847257875438267431769206613035889924554308048007024875245684059360049068030689878142873683733644227792805113444623659784632735789087129020880208230804592868968748583490738457555230198171842926235318252500770592866623108008232245185992668350027177847974979055403838970585808238052339678762766248250046793219892635536717464860573706674177105577931561787861574492653064489715104161891742858335608059009043312389652842881618732268806493419103561796705597844192723174141380110088528334643060089595655573423984493865262030763541166870706343858921407927578184359361397491979265169452224843264544557841961135345960785156676052198308618166172320400278177082264700300441316728301757905097821832470822907261726809893191955728386245638920611276436554896110627275828454219925181985992697864839693246797821977850617541365882554450549053644956788934090445149126053335244854188279837029162703829596132262633287065434519848391235777976509223156912819482531911707916735149374895716900423335605887810450005989642861740272198936739329241492880825840480127788107562594177827114903815414305413388927167992268112000724952526343374330886528560794014450727548607451768394650815527729833213812509821574718971106685700944023210486737848150219083032685131961227567914976421500114494065648476211742672824383352711147126943135559511779658535802084163219683019496168409997709730595860107888844797485257514222620709584488534891765078637435000336186756528135184302713598134325394704414097872504038501219377351638688263599216267685804648421120397499623461293327532111819246184888400138221726271595382793794948973178088072856484705685780283341906270765499027442932621264570951732644334753603017233607330047803025511486702305415215645311550235581708834157427736021019484917349527612726071791083009247136211883136558294375249546796465210316968123555184234068524742824422351948053542841221283177578675111935818693239098247948955865860110459723306912808107208356633445318672471456886743294897704180815340412960356230597438321084769788341136710538876283106482504646590718763542960683112829005815811356870511699702942029178419501990746854991953022478996503815788637513075918691799776483860282766024869639235046619093635049513285310593772750134894527971809152547994887163858200516180469932461781152005734074681715865771949183529134875677827678740828806471162690426241203580957688954607058940450024723626656434886847645082300139173133787341581665712616856603892489173377496294807766450030709648432203641100312764433842123372542540402486887235297448907204288656081332596767080417973989274918634364799790066811100353746659237486912648393449910026616574278431765713407990369034917344030726480739488309202965516982118596742319605690795886555422122253884095406446209379660276794482455967158208372919317854903828503518823650351453784214640213406792068452558172964334758877117817461494984511496046108099180165595835805798812068446814394593943213076012830758669901141844244543890915356072241537993983775866826615469637542605918370684174544758390489409309038270848907562603864243385287081991924578664481272281952939023991109708257232189636927622568899988215184168327720700236236171052635082694627609854084996842686279404159885092235685937914267263602227659194174264017883445948122019919472034577246706126125306453041199814319309129627821883454640343233092367909339904262504995772113325344179297399474092394766581655886220567289924115921617481376977707576469309549395069605228635094169965634216202660597316798633235103388197182436462098105947017643614653866956028235870509726819536242165647022502763318395645683670527409302753348203657956046271269752607809607531180454754238058569549411024971906943069021663859864129967332374803661277608796443566402499820696920414515050417811251173634528779537897755298638541570742148533779933214728911987867513432513555735329938056139087146497740850640098396939686532494307782972969933319960627186522131985921179592407979927006831786279639018876759471763465178109507573924402396471932420478001985369945778971410097952660960785295121075989018771017326512625128894776157812070593996213372793107149445680589894148343510583623318252432576360361409306455154552950666012693014068799318448390067878179123014653476988407209977212753740876936037055469647229796295176553566723467071935620048793817541166456797389593899897214090467068794913347180035241738198620087112415049332582244053393110930143556910517286060848212340996205826321400866084688917916676565604944225737094016648980562184345749411387487103800867021979773349265407339250336013468950637512082014194602482575205914765415775390144618602998285071755868683175299201889864301343072257072781429679522008899303092474293301426005732281124480636553007486347012927018699654542084892638966520172308338676861336827962481814274552031116593669748194884995997595733114905332389817697749285480344559430851562738769720280864705414383416911422985984892179470029540053637851160044861269615101776026247322977344862877836226899910459175534667361691043304085945952477358274428566510647942925751704800902588940395675320288727016234934204583654784483836665775190790480771065738377423380670471514983851313456837953689293441848090857249354275359663403199172972418427992673396677829817466527811555318285370653765611914928130747834765817080560263393600609505830802488319696692827983659100910261093411908524834965153740919740786995078774355085883036265292322876169081755426317081230291024062721580187442486833299473177046610291483842790715600885094249007281984539192486982988651207460610788682420213142032227123819132890852938291893727447448898505139415803289565247506511717149081519649423381520873449844886706052017743794940163912115259034303410964798613370854086590613742251234976014320000212767861091725277036244835370331132596492178622471043132064395820559187526650276192634215942275960829522480935247512707424803459957728394899226256451400032422325412684855880862651218846328764738566731551861465948233036334901739177829689301066707528428553764619330314815164296937851547285681379187709486010679704617921363189049801289667808534337017207687534405498109703571845679282364178430062901588922594063106742611904957972787144213449817066013570534444703818337020236863023059453833011078275637589377553280190584524396581356596613205576634326487165511780644385867361549700312331485518571158784304411841148930441040376891712990916317666040090214925442969697936559004776043670348541817007094441621817148085853935709325152750613404559231915593785069603536550107497454592028275488419118912263405542549940073097239557208751447602156581900412383337512152328122715734798357951989549712164324306081168548806618410187987442389426513460434322469903316342701669426476730800574303237859389559175907323791832139598694456337369690268015012193382249333953217825889875166104597549885434011373157367213248887738894498019583923075733680198714992571282588451629430905133749415907551739160543797420657878822162701801455682089021108216275394825187238397044985711569301310788690421156783257758319011220872709091621692745844456521211682317516655559815387562459585632207247686996594153192442445993524616413138570020125689813138721866325118128085402330487746730593318326902985720813289711691732717074117753115024390603910236769566865263528543261908741339460096982737256086545030913700349585865564775522103522458821402550673182374922252282666191987992777335143015247685001441607600066056449165111365019681445704722445979971927536103043435663210584772949539922753009253033622940407067954657051673717749860678735968162048302216858977448172905942223766848305188098212971426465616878245004171069325454979616385136625439409285008476454550371985599728733037748060632486974457326459228839258306896967607179494274407355512354391322465020410626212659294161692346286159880423042297825296526491309431372431276331190606843886366752200815265140315100041740049560587101586491558560347939560248100122008324754434791619686592499825701684010123546475185126741544131724498385481992525710787854727190011227585099207723555876336010865560736923161647022731656405981015333150072016184526531328975101187118973845873912832918022079926583939909489462441464197644589715725896852261995752344692255371355808179188542600367457761146138175820370839891651692416048756585135510427705492532671804512993398438172283613965101181898813452282403498573801694195242053594177589503103588422518200056420822458881401341220883973788579127100501909749221551629458625653928350954129554134936790738029054123245885843426362115056442678229862840712476030008666593777275378399223899103653611269118012046390894009312298088108595928007413532188620568558719308718661057347813770902950362327100209154024458373336327732685158508717933925317349062109410202269506004810063767751099307144012565447013817185971215885025505917647860342294645246176978181759154891624295100278234117601053071232810457038646971699130477683805389789973342500834310769685324094395716546842052752183229840884717068669946990044950686182780793689762511109352720429164352725561405613313962778076312407703309123463371488033422979992511227898787232648398312688136740627415285980819571229346100169636696486971869218908639852073415775634888540756027010286670896065555245060776107508921135642941167690829936183988234253428455557436812937298607560838411967833332613885857199891399247700982618801740513807632788190480587767211112199599173576519941959980939860690510384465835646303249331114614300505968752265737648769500084789476951317307246199720451791347298448530128612666328920567899626593702384156999924478073699808360211582723885829668653800242242716708214977334827729510354445895336559199905785054939543569950521457673710606314098624249602664333063414761716288701215205905278472726982158420342266298733165110971380787400173373101393612043001878177520741357261573426221529961748340820898629934153123633835263496731413817877629162799681553624076605873580460536892579881620115169021429475933317530176883939979299902893009323435916357527015850491910701796332686033432919656916138129131567771627902607062415075773030861546928335976915903424889580312727889489906302991853806727583158472344412972506648961689434834463154674129285533068535923691687343910119119998992480175058665542085007915701093012336558908847889376240938644655270605438226237138919924342859081467490079000080366329062157271979591824828038976204520086405261975390638773771614007227901043972929502625768443386775922550829312208520009082625893302874867648136026311897008030810723518859124640586850382801941639755391590343246878503106033569634061145647756316475858391135640209601562994263299791805376607578200038635607030537934720556072349606735917578560297323923937192763827641722650966641271253660970055719590107787436063206657594630293451321615047743859578927402237861443271440905774777905015979862874527441332881014927534191950709770443990856684759146855451647246340655552154773656586893666522256850281812349063569830909724981447874660976642990241113123838843054187604899607032111036642009814573390018919995843407865471657917525799243884291455938659126123104689014200921246334022879063073781311351227617973036825452120169101355428155950738053465455905153456170335395753194601412018189345329403249439737203976526086329297159713480688827764606745772229283987386057073102012247888478783858069850518068315923697762001415418806558111660815635323121837263141570215612053630150353352801001428426784208328550012540778726130366133948086810109995202766755680587422688909573280969656519653091291862928228130819180110989526621387509922557056682796000662450165302578702606316934605133129865537793563850087106756224015764084704582596335096788558897361082796471689048708738793000344934564878337727350889220182472360727494569987729889249826371364880636347837009382347447376813044847273303047905155501148959760019007196455958695169218770108494010468936890029778837149181217808347810760361839974411769548080331463459193775616850677004029499069307634350770479161413921116998125144005135769780580230392456652775295168374958616680184051454007213626796466045116878218752773251438303343415694500848727791371786905792058592837187798912092114785980334779205500496244229803993675025234650992678879942349671407427605620287267227202122308908193203474358741368310340968707909330635727269524519201772222249534220836565073409758196570153672019962133692679078626863235541595673002755799193076175439431298646792557938424619687502670361581590227960379856608409443029394084188678664689406068413249722875434007485100673826994746679157868185828468100218346407038443124090282217653308608729253004455583779521101562604510081759183089526757422729762149442005797856433425035751958282640502050951814119758465131184686648354976259736963973214219424139481228839608549232161171735926704525025495796960815164369716870027628580644757516394038834413907993932245444208904880595472012413324975189313606548152567541649702445863515272669239703771816074628766573327271427433899555207584327440542231087392802745055034337965674054292593424940123180727380878924491274798090586063632237183215379270814031201850166039781847042248069408924383691472657444297224973494746663311112210137293650665933012632087661178572525936571950092935423340463458317709265127574966240638172779655717976011190830178477531270995430572217357463695918873910237456696080345504083506478325411995334723487586453555456690320860242806441546946090899598156482686805860810088010577847768223516084072268993075726077707109483334828687963705502102585800146304050822353360910575309688309763385989213347630350378219074566829613458529149653555022772080992017989153786630046209387162529166261498212694982983464797564556443366918495014654186188019715979120150561335629889362796574704210205943013758853237709935324822676179058413011050362637049347230185516998432512892151532769710901173278088269670074693996050873393361612926732028088597763393248975620451284579761252080509724250286649154750059694732060177758192742589453889687796287794942405354799165809162041187006980843969494988026459356065511085807862530225310775692436306962481929763566147511392488491410915300468127395053888698160050880764418326497452979551536831837424839398369037155500374660156554736069976940686752068263959153615201684972744529838966444965540933494520063108862559111946499907841574186581182431679207808837749467297648790911595265854207222808832966371983731969976157114920806054737860785250062482160162709612599922129832318219187441595665033438486488327478064057945975777912635361919078713278758134971438949701506685529996865598959233671124577147667593121524411569893206103098275566822351473120358212105031971292203968953719565659042971998961111909188512385525358505714757624994652140721316515608494660684340691393003787723089107800641955388281186113758817530823960874510997155942286038830258283068954360808323247591514465976323063725952939894170612984546340552284242879492473558309322069618682721990744279879399423965102858563369046285429391918838666532788953957920103536267661050309894263964929806286788952440464137051538783872720105746788735267198080998627856568072719865128739166214370176399588656072030249905011785365470424965425808797695726737659714135246712424269670853390772728043263255050504503863440517868561786318041254709482906276705069493217835613792273803544790099046786102409696800957750619744638209689449309923904529499181310106386705558992053157964108142630615205538999515431053579360664511908747837413037581199346348192222706844351349620754873322222854757876759186822895931352765969694969037880740755273755742636698258686721073088295312989623017437813596375431735406382502059267728001747089952305291737416761590640101584147710509271151795624089427285887648979683551877614747912279537208022142350965407386005244043634009317872321710059440899431393186483630609852244655258131380424100482376181108018972909343362241863293183984498100295295484288779153932758632497179172598619437282327896464977036247911729022893358050236748497989014816343314985707740510374822738923797869559985806542051925719279804711080070604320040375075310563302754180021857659793476104698724093157113882951506721506791489331511958116176672849556533352932166297650909891429586854715222970828206376559367543235440343999799285757729644201010332056831794155801997024100692663735231162106398772513492572571543558139607583014226769121066255471252058914832451471763874201262911134513423884155481244875703854544755107069834446088088151059431413464309651389283484093744968056580273882792033397516151985726216060032307391373845079861686900018563686980360507264069962702749038470392629202397898552863331769539335025399565557869516369074334272395769953246310710972963155268206473945600181304633297629516525323416578213484232319092788852462343215227590736726180031300145199123605415889389846143387846750250572828797091041953526176305543357080534375994267805398397523433538092438295557903131848070425795377297029565133109438011215149107001899485048995826014687563000612106473159467680313983149446371297759769832868337445062612629897773361495004727811104669201907809871065480026549860028269706344576341847080619516260809143423410703250904500607808159753684585893405262776795549782893513755682710062304982382993218872594225912195181013914062194907258395214420284140934738186498606647839663777570272240637043485531291195658795385390196881675644913294274305369910887676559682177205214499447893746099781218429266750797935061376421724630644108004360648212105119743485059877311500658389432739534300032728460460324567549055447394297914425613049681522167242748096150934208588733142126187606597102207912215739944477448310011366439645347642366734488053332877220862514135922028811184314928871228844755052621255640990992551613465635547482152500094014826439946842525549369887318764799209615459473143182746410703219742459094688189200461333862410426318798094328637268726111728783040481628415587796598620761091505890021710022055981360366406523835730318447512084661802250765503122137827610074434826994291750227219581067436513433960500811138955780291873774779246989752561977083907621689823640820899985913602160273271413088835515698444711255064111181171034590128507805896681799235074701824125115954530834025090542798078836391455728011486206819186181141055718665309088919428486111090272744682666589658330564593938257293722455823601863706692669095859771392401983319399983705345350857714979049279363431159784499367858804931590127532993364284463842925447406513881872912308781160949461386658088444031614099382289685498835984084208495995457742930592040033624068170321072196523917220046545631008802307773295229669889169691935281331766234867544138821842383746110597842286068845861562778624225302126682896128202471655245719809533927973192337049877053405189935809856236500153883294769690037857226426821881690546298789013483702206405735322064698709993239666285582262390977058854657416982126132451637129932104291279181216258956145359184659060695625641978906835005680587382422179505290086211058360514156439876891132867091495700639011082544579922039726984312600829002334391598554073824542879912031936481030693715605705790853148207306420125720845020318978720945458702891413898078969036393920210999894173541191520635607079564188422199637219496112684473244099951045360155632049169285311919572713348754249819912133041318539491876913107787442034058503464738994413227031301015112686956934944794186995563159004233904120991421292162285970867568271759408346165250895319231888539788456791215829308016116250317788819302594171092136950240126050253356974911560387281414341983712531993276571833435004654163171381622030272364468685436314270862723448365495471934835119443859870968438419760112982754299718870563262186672119085728538783827447040944910615515159543050342227813437154776188781197210189329334562050656896447113667320151782262116758061371872707657883432878308180697019666535105086959860442218276627640817909517976714318738518891267648683713760055989488062796557280427073325211462496122555366950327237236606101515044562604309964144717877199272047221271040503859437330062033126228543907897848695835829704672830442801975589992564514072367198808905660379557065714885307345315908637666747029457125979412778430703208891662300612707948510922046082654843278997370460225273729032248331105481158312982003095783584798231450831721103389767722442504364607729464420770436981986873272180916926068412088948465537826118945123914504931569019215588940306865616356829619265943516395862182293358802161217161532273919482944552718491318133699500856092079761107085343019229303248400660980579382892552534860976563514916375099738658744845981609751147766031445203804454086244383107672198598250998352478229935013999412872663576648718003650968987115877395101726931090718514307582065485263140596009642911373740030189099293433830759823994002718056543858583867976546346099700903777034150021280980723171705671433096191401333954083728580654955427936543416894802539467351456842239876519424171668570084534694911084284372478558595272626346101398059505991577367902724572765652689490295409226882302642738485406143192916152767603327115101022491163621336729107229126591393112084475228837914197757037120667265801377691591146155837599644094291887456939261792633032863251981034968148981959420831998269537547728185380043100217573151601412701276635091748646756623308076851724965214458677291797204698676698962117111918370549110203046762380181584155899654856700482602299412835560206803046591783626732086178616907104788392071777025016250609492397524990867437625729880386751203851048393845350522236189587857759970272507481865000547576313529201983377444592048434474146109776678870129016621908517347433965199738242336154150507648643620773846410754915286327271101683036517424829790435021050313478357729473409213030946244398291389650093293005032316365501930273907931198496089385745926623179951769552101300989079064073491067199165451919048946465354683851604283754507075430551446068229990627484872535505916926990986634823561711237469914107183332910353900349580080393699479339258618469850934765352546606202745464233650170734960278764037647454323227708267072176550619998504983780279331859399498295192090492522150784590690521868675781333822518250706240988279454042814385402639073338390431714131636887218902657530464752724020353935178069283412978138147951847468665702715000283833063135698161475815003105437397967819924573612005180553448160037858587255798638853057749329378654593406554990300929877334354594318938802574521160262640568024395741331904050350149494580198358012599375528168795598468621351439677316276842346676742049380841691283129176369490391393841502939081967718487301573001549585059621524961830877003718990956356931877506102162286490833182110224370411723687694510486257131266698296887395503451784393336525882718349769596711383946259742048961557715227783551650485038501379560400795050060426214900877986529783416765916086729012749133536267633563627725980836624690992392622803437101411716889163082657630234945879014562576643282666834226062492239594375478641697872491921246187780605383114541472868438750864572850139809568958827010437542782588936785430750342888232686414754788781575542155339895837945359101143765527423842247719651239759579757155342420152359399752102382164874420756393194238127000970402770132017494672758644306715077389173858311437192892939393238080944992984084359881563258740643170121381755562004742876822244046457997886705673339991812335753985134306014153544997120172707525625994060933076614328191227322861396056574433578695293909517751589106675585088930446923941334829411295652318215156259348908043148995497020669157183802194806420204239155460412371713990193651072309942991955686803712033345530705178058868291984516494068110575222131232264450379537288517282146737267596789867301069601589971770142169463324439720626965240511318127471422575061212889392728463732747210151881686334690918300963306144570907944715769940226757464368173801359061750598132453608271906725872921355191761618613559540686809473702773995568244578898006122954456201255391273445139617427027980830386440741261975208305934516372915035383710781398004836852537689664012663038451943063549590494074815104653510431425306182998908312026308022586079892946577871011075144332450541268138169931706540990775623600727928714315912868458524806999020238056827030993929997395573115282617178079318484287684311731166564649362055632857827913659730515541974572771360867481397677614056160204519792750038268417102402270586731123347412972437026591529264172902036395848314049099197103958438078180690979231061087177200963070433297450136688622201782958931033409952423478179901548236805013907787636978502716415684358451746545352667130775197017316931937063719176134073278613838696754268472015609393775475717601664927609258427726288927002181180202439150368684833908431945397180459486716298534126894392229605558601938038760616553241068530462596609636681075046570507189688522645609667375722469225328269524153777833104761276872816369537941198692797070659223373370826334098290685073689830941976499658604575309887463849618459103294371009109871500861615524307865973827583089810600819210070072970737246134453341729041833187963665528667841561718391209803451724803741182476045632869494270601240123297959168843288261699833919345734151389122625831436132433753350656481508121929614580184279974979643346352183902689310544639532100525488645760589073411394759894564009824736056828772411332803821763520488582056206446517805917039275750678078453016906636785733678207416866214231552176394365989688023242849425835062407173084356474866495017627872210723366009906857311155552566346351162026189804969849744280838015736417706868798676701530984669264145572817776407149863399972542631765362444693162661231300588436996933515700956998560187184376468212907893902226534729112234431500467042145571104024282528145925309721925027555053728025831403127078776084747852091695045162242946659530023700059034662350257843919963094302708112654977035696662372345734795375532902967107746531401329584798481052695585466200341332531290163918424383725145609318258407136321373967501934350125275222255357761032127168184970874763485928665336049099518722540565059633133606168269452222847190227696783902629757976086802737482734165709944073204126933329951191080058288016568178499011947007177809351091672766761943251195317785628133198334644229161765450120341633192831792973836510237308411816487000013337641959822459705530600459394929041521320533140304565466259629386024627696223797619684412551588552678641638132164807939305218429705344820151417565686619572054811832834337972368144998533165052369053664291735069134163807070833320262106139297087850602240302872040433575660518802475279649802454820835362477036546632261035435693344068552941740922860671307037541935846697864360823448479763911110418171517769858669166384377708188619525136063545340271596834958413785255361733152063259085303914203736354324300449659777670249987621595012341959796700233419267547033266894730350680574614839989365109162987269990747451097647660526379400704788816746179287468801162970966760441222603671630527728798129659031700927654521684017307274775024076594886760081269360136178360530578019621042671784923943539756112113167110922473515565860911680234466190170686468597859541638273674425863368502972706469681132817309098578077640050637920574014568281008389308337821178458592438718872524408461807070351204799204872672317748708464100104058590428400237142092142661499643236037822271621966120352898134432369891795921489293688086337840952641923456605223539383329679616988152356538364701332529638481936256861772175569231448545972273521273868897368446052336273005058031875090142566691779143029581610532715325666665720671955791946760910946025766958237418759227232885821800915366795634331542900259250673310409290195922896289870749367924320785424467963315119744075089647407055771164084279627313849095891587049126330844775005207168991526479118630075095619802629346921264528386299979215667279179758479068764010952341067645774681080578246519711290130339753309499912578368041090023271749972590048748724380201268542554286549418390283069172456786626789417635131894680677347363665685442027899728326815548049018724094790818893751104136310340915781797459983054048093383952643609142070710995791037266723345524128115405494896647179830322005018717229548496720021868515430799196613840594754011280978591727926655814224589188371513535171592199512534441765196663067006846748761873706590384450385305532912730172990384561870915609098372216151900386564269392485831456031377645817744943091864922877696679344865995946362346714131794146558263140562626370137773432290959740215445202492571497941597080420060843802858153633666055377912295924902592577577749837649571063467879149901731032708091408616336229080126376451447631275858681083186247669556301118914015131440479180989259280188899396573784540302589833837333732068166632448297577749541545100342285896010582094408711299669733740791718102352438021518860736158623208872891173338919473514523776107402369040433719108250006565518859681983216185199940498855068758601403874742245824109313951271651705820842530486373102155472550421971737700698843842352544903152308823621462882047380472957924974600071367981620960441940937626612940908848783141430194847463836097271895731781735574648013368945438474960584916455833715343422706432601370883931943428882087929315697041819287233088645571014523983786547596240702218590798216970022087057061838419655933836908155027884992118146904590357816441084024015916518146287692025970050485541018915271255322243971618658774624104341709439046219164092600437291118210589758950035519299411970157996145692206853922020537306558741803737924712058126532570352857704537850480776036034306241008356779720345368824881582842204657390185430426410015175782034451468760544901226819342935646834339339461121886981768315143882213020907109092856888099326288466152403514224327815668695870384971266545010762382865937092745661363943695561819317846036602893012446281180696989754297011793945268419336914152305230499427771734743514136192833415678955546444651238760594064564457903287109644924563332669920492397542826903650515637171538420932662217789666524842578443054885718753794063306988313822088430107216687809163481320445262374474486374305010567091750875464183780664328923455640747041763124446300443183491091692854979733822126207038369114731632473771130234544651769664985453861080180079725779347926787839751647676403760933083498267261030835063067285621198003121496053135739624504146915653622543795224345177575240116699559563889330014868722714711598914423164345499226764108299388163194933587958160575475294602003737985922946469564702920977155064922353434373084513732401814968691078413498628327406105126245424790293938128879775210120113645294722489519502681753615851272411393559528325239889449835519527860327127314971170829902617979877961832105016762088711659391391454907482011581816369640729198841403186517714970961242969854045627317008444209057504039854822674049942416882428196950493760267529507351575403807895078009996667149320562114764588342819727795887666431630385264455757304091784528332895896254285815457402317252547299726257702154953146004324903989894756864231739598230797231880913410159165393904930482506161911359466372877561499490414410268275198087276680952369379260605170067947319077239102142780265470355634600737629538608761732619301377778479101323738484417492166202925901989419556274334258141118918287106317055633988237606492380117977254685397481702775811183845279070459344958676229788272304252191607861811974153976980832842664781808368704487267626696906400278185357669747568355281530238610079177533063821365371161419569573952557560789413776016045589868899305625781853286969163119932002893710823730883949233475274667152113453602054488633084103735961376855878617476521497577646872042210382455427528931823099130211631761817544579634077684302342783725196664490470062150274113528238187846213874697187464831407797991347170746892187825421858004492056234169422982405908596484831509914729931003217550367358341027892469963935363320127334386697083237045005541404310755420465538502473408247379532071868030968197607699502100580825823353316328571631819035890482268205857459455709691189847553650646068768110034367389432576482879967700314909118512666520188586637916961984170355860361426311186351781128633123580684572954389948354978222281414142200887536060423141870582704211397537956460105435866077008891159150650861449741435978876106446400112317837161682183990836050641725331158560976703395276956236096141220353432018200995757716149103046321042674600526167944860620009116277069049908901021322353789144396183943106783657457660946781451992272950771207975779732561095793994265558677935877098747352440504247516820924184838566358114531531186812089366658350321987265825567037771878257703995839386205716117376534917287359796518447529790407737425870685800977299426560785451134398674798156641395890792719347528929974098112170697410590982545034898628835442475924844573336046817097040819454736345529587618360032136733985874809492969280837438843596786243898709589245000573822329864338474301073015834057650158222217262184465039343342776602364000929827524778864253899984968740010158680251793649263574704393959847437826039908754818027993931199369942024143685964715702539394794184570655515755446738355092056996460486332605274961542250639915372434177623584275196311442819634590898620865200228358921770590534744081793559804159054114158601185970064692431325831302098774570748878407070975863457012091077966230453925949590907362601974188033148516713826200089703128526385659534169014658332302265527736735944927204122008945098008729791265997532967629143985502351960537272479187896676256169684438174486313566605633053398003264527096593787283750761195262790434447604175101975173281312707887700485578563984415990203203870729492605056701207236042856920288032909570833781359403226899810679891448146917877409843132527161229673999323546959307792156803884654535644521846022421338463482065486903611288264791565278485808135538451879316831070904873004607853923305100395184031577282366537919617221228424665405010947468405515738372757136283688099929719485854619171875893928208861300700600760990152242353012651356537697261715427480291975137579271660263996458833207927177500415530064446483161754256601533745902078610470045038141522379422169487680892633574472420819344542402796872367724639220380289211429692242663882981977890069052054957107999516420313521414681711936215197865707006629597764897129060374625757492786229535340271054147904401400407843749302789511851608170725331025215240632631586518393002716677399655310627536888195279816039871779780405437469371050896545942277054826271055478212389167221099551735237675764800161541041248528843758037829026440666059614661964288730231617918718243260019140205924506252169616867163174552384924780129195731570475359739602479739852268347947485461308941242703869527928262376768176406805278760798456505023584787893178910224493160570666247113721389605049280772491826908459750422072533532841463296218124659552320906442880089482562827612866587671428846937484909982118350173239903581802611391675007831628970231710584238951949820037446295876336094983403128780274893881749361793025235552589430864575437800877357712595829582697925892234558062636119043985128694399594270178664068221762955330127151376813646648180841991108227088380075895878841224770257016988849468643464596960543506393692307470759114321909883693387393917916834055237180884081370262073957160106886362568900023443285811062983267196685019940604596021435158703586958993503101271879274272934482530594426689464595104154363291571904962784495515796589046639625743776240242873710258319509572197020057352806873977724354353799218428800277423713977715352521303118221359179227748377082649191037031640784515719474870535781955735361865894913083393424076089224898164685481673244211974339235069173613352004758982119860506418716583576942962416999665080191726251406760035108550755863911301455506830135934754374739733122710588966575889298819098161120617306009183909893427521364223895646848696626476493690569694271914702844606564560900318043271737736882869478563864915639257720228950633684069833553207985551532977473077080282473640078414173607709118354978676321744687021584791074549008485646351827921397900689334186917729824479476128020977054921193197848494959871255481745461299738515882994195437974976134924339388645843208122208295969777643897406772273875776874348570299215752892806439151188864410303245857097234671378979331856025120206801055688021421177252858619042406531437580775450207948338918267123046875099727914404300395173925373715978808324979777264518705501320490916684369768341248611305787462296523727254119467184019985536420313083710310529668602819528297108314422391546464401443247404163449271554002897299742465289218039928968071780799649741078609811404020619877286129100202167301105457059430633485900968968826417238530163027147378744487314520459808060343944219638991457363334626535649058253763605027885189517993151347100692805254777156941954506134040406625194475720905543799674524114148857826620808912527657951937289289847987038045414517120891734272765161871289936852528994359792892976419601273809691743046171981121468719138593843111992993028862905549159512175984965036704684865666201001347647385125749559886888879012176876845660238259667523817950891238961005722706272804454152954019735829551743862714879083514181043493363028949623379099997919694898555730154624280961767045598945636013540699201442437783965929086948682507870177291094771294249079080245939138067644773922454971389496520735946470021612195123711289621497617980527643702578763324534558395974655754533701709629066439137115266067783339816951817870062654339129247106390632774014473552632281994162235614853655227542475988119969924291580514141705641078906497845493519579038239903690537725054751395141046280688600959781570204585041490335649684518363951634695689164194939124704368287305961002335209821476854483183659104733534214810408065354646267299854278518421845581431685418228108010588169389689113939588159430217567153509909775248822264418816966247299345425957229687896722881573725478428378999732647708204788581419933471525307094309417601906255556108309218211892173175968518059605781814397811943065139490362791765389444166997347595506607278868460521192659284657958288342869318071183152285050231780444406929917818722000184479883082485218632652159326712934365129116256733184019455231746874330612038859624818055181863903240625480253893135165083701362414740724845178460478897604116012116004335207091409201570045883673452473323804426556561428285820954081392350723445595680982824163607623714783302037628462864152707895280855711316233714572185425219491672079535165190398128118071440852044615422386172431369111119409118494345582167176582153572509081902748896912084911354383013578746543966153530704078199069838615934829145874361572828929341470315506068935880586727317691004771257592031420272714592508577656243990041574855312071450044636879192073359022460633949121372467229184074342060011155849309351422884462736599806887686339854715157689950152692615596032820428019245920430048500390543772277107530065891086681766786587555183975716224790823812312011655491866170574994176167621026525913924375860944262241372997953532623354163142758638918859171964174089578805769435981631849404483999618285330379340073219598620223978329507079296064704886814184787347333298113556321266545199487951346760787475721462638160571359635736097041648273306729356920127667625288189447236248793273866691693813002253935414853924919240857482394671088378385811748950259688398504468479024866643124988437578631210652519200009177092592982810740051914958497234594664150408881147715573882773758806179988621973777090343661197872783363497152309170984011116122639458472243363029846838311595999234489679247768742149731755752991660717609081152089554267010365875770440594134451080443092538690362865737535493126942512881671990238644123515077813065731330114622394933290571064655672969535973613825816900685913797206465762521224934220938312242439375366277219089865558049743924605500760562581480916578983106650756859623512173610278037042974011780298219020650833986127187359128449292404235029052254330304579798306994963519315052695350554417339564188589446410626656543970790518266136426743173686309062917671740947069763550696299010124205155480060840228674948216151416794925944403361375157932624904258127562407878316890273716583043303809583324651159688915273607642221628301900203382996696172773923221043431239295895751274841348122737080248128256445392075631300089472339384043057582108259853674734431710347632289212085255630018408463593601882940053548088004692268878376770123647905586061025736891147570260400759376750757048117018752901582123227281675610979908354435217085314055771567200668111326132953600566075622875907417391266191043003364218573841013817663081004971964842644606306755712964184608188356997260513238304032367710484245846871669970546912653289622021651148805178473162756287333818059787070900679465113166910939589380931156954097990691438216000505181428819883100894819198289950505192352094473620806485355521336715428446907837152848778984645985057220130804628914551982401770405740860550244582583515871096130532061214657466464235113137120686870905757339345745831400508063473974221469799122269756823569124213208145124599488849777442414297167601860733094826418555714303346547263687384221405624477059079918560271606900480979880151074840644843252484346651187390173234540883303765906122726926688439819461603560152087714707627604512881228883719993169077835137131570841739272065983467306310080658308168005939042472261391089142051673124875407576439314274281004557325137592619592286542577177641248062561057268508703642548832818336831053823438662118051351154180475939313966531984982112727232828126918420814380574256241970903550098946495899542612444729881499868727127434593319949301514203039919217302269742850341589668495112495400434036553475263983930735426062819391411683061355434795972660995844905260903335968572659123853782551058342379393591879694114911383232087382287675500897470756398096983910739536979997372215280223954181733944087840202127776886909730049136268705023737476204267139702721005854941060092062330120999625200534809515673194832227702001987280575667349801251773772522284593214830609617805349489215171572949812927083023965107136004018405529165661367423393450432698063394752500539152087450398600015841372029389007802921910115666311946978089909849625040859934567969553023860369381815491169743818063834166270242124228830441933470351744973477138441376284414840786639702867400708859707685117630109290112800745071078645601267405048796974707040460353773537337615310645826166444757373748916697109009853658884174188391287154732211521100191875097272579794384908581903368609752379119639226292495776070811717936245733063907893859370614999506865614316304780027037028901354269804486510771192843827545203433398745863541753829589940019217677474174984421646104878823730396475966848352089719202030536142888276731982692940659527777762292785168021024475628952237322834471739911694490777558909126853857777821423127080696042388962226673237173390415389600221999853302782858913371775441159007384281684743883928784905054839020148253894545414544664574791398144629386924505558434138920308143149866607253213309520430177586940062391351366628037600077013906707238027720464223991434539322905083750891770642768560287985019375004976290396894416703578695336755236457182101516348067548386246107162426137115293864626829693559228576015844279193065137166456257201512289738988034459608719474795674925073246175074327178530251228085167252818988003868720203651057363621350039609661966883431449211729175134654547636526870349366818661422532066890938135651918368940043390333578472908284124664433020733987645269233851058022318744384819477542945723170100519281927813248670153721308697665308737730185877555693685279080950174823211593700755413596069584312467786424939197194545666790768489534487776860416261257514315482710774416491821347962707808121678987645207751652643564067603901361144175879810871642386885128616393741252551270778252756234001790017028782595836581053798484784608866214102624621687645919084806466247134538230003959994824166068730304267361244672347558544898710108663257518234024992157005655281967727360135896903902507022902173296199871446080891121519266467881656652330710653274554381919457243363174969704203502934166518018306623178878856394947860741291171746981685677590628233452794879099399148107353238925283195691382935723803721411246523619314550693247964525250547548490008076889455695796752683476081531101598765681211944434186991055824767937320004130696133371673366000417863668518564626789391467857314708609297503474770165696120508091558102445785264257498062624631049286311542989278881305250650473164936814910615743220576319103821283827957838192187853484418874103767026166466215697614830932550836431432520105606273754222897227417070799690223065961542030884718507064900077979164032209691070840163361876343654266744482475242234880575829064586257441341304027311496808029185107287684747445822828408721762074963613756508288192950803515967967826121364401558630962123479472670251879413010914575953434603123655244068515237566933326958926066901198249375504077744806477095340970608549585857256567819650382497639145741426099086350994028065187248888735227176296604531318010709983443947139042184084235843057887944529417151735501131633629473772438657287435046920425882975850229521048177792960937076005815336196617741863022190806003681781038975896495298144072163447901741115015867475605033595523137622523161533042388487892244957407407863090047474427908816431534591632749620256123800019251040784845995732642809523605861145960234345404908028622541346423339740727960624177473549841961752149260264519943780823452555513102821088557825620235139858790476469845646420608025244703729596872003409170739875541967694973042297874327762430237008196754858715369083755608676914092277210528047493022025948579008292045922857541751632200276525777451238330014248162796908117145927912578854527042728219204502498494923637856566498511298282791568855720649132509045814009287370087327957903624309949280710682043046206205498774411060124211723910551105022955039191297630954970164421498442936789571160786677880799108018985358743154268174215633189351283977374051490519228705276114137333364718780307046507154534423245899505956348892159344112492301642096195599577501462286984941690759118388336719479039223632855572733095944149616466079900312243305165833001390580614155296438051574227403922320376450481713993615907080769051491966715342967665506905788451475940380881901903343965739627515754993881093120054755147080899090593014675705159073634415058372939067705213950251783404744328501789338220332903423157459304717555281140594458041409479957586002480201415863355518257935364271350964938250651072384407612839543416990369792756265037818468583333017840639145247898829228930472426660292447179340776527834577826462622310174458892507251831056199544091839197384274857295097375871591870294891119261586672849620037374391634637153952491224399748308032998014280682746293778866994825841702180591932171134456923958218548053444782503851043074055675208555393071335453729097060962153857660053039598590219856420957519340144922666722444658594702820208930767861852205441002103729266813604991139691378840409416403337455186716548526560166449384879292497630208324667615086608579983794535828374336701824895892254884662044450066733543605444023710257217637777299276601707774263679527286953624445550793115067389993327760698592264064670602994065873887126968421629644107239018847725599495792626354743738679694341326035323468104526021153129050127586352082260908292905835892965680247522150470648392344895124120834938686262777661826544064021208533806316791665550109410680280339210783966646785514639596271650089753752451489274464797713301825045986667933727305822727822236622791410517353017288771583133069415505923859215068190055572451657763700833167011879398778228207225378192132715600178979552732764576165492401640168522018520555515570732830904478563965676939205531788001698383001443130356965895932388927254238673109723082406458331550842996955678479740333098398644954061428252997224904312219094027155360959821372699211841774051682979880143908547550554356695360838427121236445907954637086129585280623910434375390905821901188507328109378803801601659755038769476931305551584708276527997403051175806262800880535890761941637884636345013584706332966039125484769936058764221068423522019661481048018320696422477877427197358213072253508228737251569284790530153378355392512492955560104708642570999680430615689369522003262689155506475083556915738666965534831230419711480196456854659229450315629055282503929535004333377251810181868479973384172978615201771262060518065124126118227656457179581296438373389535958575239668627901332535064834753361577377885861119247073706786482558771592085477214023032267386135753227177455743377192696442547056661597359870318536308268140909356386321046708491378106345482497144721779790142695530861812187290004115131417554999232722862258589101628002506469962252826473131369440112753571155925646160946056712204728339209992306943298677555584378605124755266801668709653062005499930046009272643402371924349747399280711192446702584365658626577642433537252050050920058316213323798099441597167511902813298112962384631066390068135006056389244938132853467074902415107294878228380806949485833706589611823286725920768500490071345352527779666906672952253684993332679293311561423385360123769483184403012808012514304136026466318546849671767464521484646425598761336704973857325063651208653387145995072033338268098933109021359886398812639159712517202591907629778675272504745325857124030834721671314950691497862652890722879084077033960380032173583728701055767654743838739219696622963915847319265298048206929085959375244979290999888569739190429629267163928879591352426704565562535754644806856738148242764651793239992581410034948555351968630744105299914503325622626477969642978832007626529138787633085641493387549379070222160936537338135013652919343373619054940072277051277390066265531676930006463391571012006793540963441823356397019887395649016593866768944784470155925765054840030482398790897017022956929545442708536690000042448541838704217342036817291319013759093027321271618218213550390248143836413031573989797697727136919142440691495848389934201547016770140437012090766628171813331724724971931883769841184560152182648833740809482488938688362453000301725794889881952599030585722143428982076557425324915256829220162457596610891084686612692245776146237894153398799437590725736687289298011850697945706671047491786045214029008890274794931659855318155213829427042026763758065131657438907954640928899748216304457595666180600799146411814592825523893455618381688682345310014631614931062975892068602104089103139675744487225174723570358372457296412008124391078995022195147090504613693498454769140581988979522875824386572345718009501141353973029210183037878524650017539181036350916778819925719177362946694968499605144374877479361442229863177629371285055791041369544977200288587728069043790589301022719094377245511276812930722570654809458969621749485073503054691367028012885171804339782407594116114923032663634544026110584459924891843694869999595164106823436932801138433279968399838821063353138622274682442104766107171100952014512436257218195449050403274605884768909671768788570113872312448041790011378978017650011979230814930811899327557562249802995013976815230212503765819966723193450912690292152053327797132571589750258085599193981944646841166783299212006259123091718427729073065447419493482189681066319687713354966494135257448825684052590284580575497659762244033215994918060190491941722448212750076832731858707702364354183924728445098696646653852198169213408952699047318605206550546784743124324443447691235764872728470039328733418997532667259622054164069186040686744582434556089697092817567536506909837747565926464177564839553437810351019639289173652845021299680779993131705289886728301107737795715075315064540894499576320405885284584766960800293551252130366191448559335585946199552303904783526842246694061916203997432411278264254534644333753363549976466746810302827086776395000526492800990188812521050404416273015065042096268706257947570981823958641758443029179421905947578795498179603629670567459541061864654289352287196415322835140121172816409777659812324919675606437492861427865262525725647262269517424405434922138607918400373245765959951663998387162706651366599467126185282457838034266672473309142462993135920613644655812673004496421448362826390057956642084162581161474943802065443785858315050823057460342343589915512661414034424566397411802421618354815681515021209656112393882669043083728013954735005090237286730916614355698642691128055666126300513152024120725812257648148461713760012800223235276684641515291651546341818233432774295400557643023539798722138590662588322419092502454700393087404229104289072514178779381937776747577306556635160623929290663914626975190624816945459543496438095182645504978388906181850513720924104543255195964407241204998275499050468361344988467931543756332463458632140553724946902584061196589772370379460861896046619363434148796374931291120007892575812941850468325440908268463322067474566460048425239778776012262871343037722625358409976257753787788251269495087870069779066320561905482124553100146109488807455391602177284821620794154656991122264355386507025201977077621943607176807450077600671986929024272272012456351902590256621179902317613817447676883629571564429813003321879702169108718547349721905267441300165702538322276018303712590092283302753045275650963349117969484350607508827035000653414881775600674584688920490858990861492371194801091614254120001852841422909728233992829817984437168651426313711708414891114169428805279463410962319295208301345987886532779533516722853785344141745855049682499503767047150540456348648443390865968753106095251582589337729488333622064279121279139175435520459081941022009089641094739671314115984502443381634185491446992735358139616774308946682695909680199610955464818216616361422886204878581105116665192848857682014326818433548710235612740898646030625872558065203424678429903997861926043033171947550221949571512040720588936580003402923967977638066240649729930111695626323992455214299803720713851779594408110680909651577694462520541612988759730835732727003434103525476449621656313229445213310807953846529945444526704709419227834022161421698688023319128605414328214310211736642409152723428817901092151567287583984284709977830277210687888191369920394672429045061097994988551368312812641704522943790325425943842945602448798753452943998873549954386227340284057564786140370717148384264519123132914589931277346552817032898875611403526970279887013393339374035088584904054581660477029047973474409301604933944972516180492722037569074908897615508286430102910636087004672454290400871350056735923480319348630666212998208422699100944494954397037019904712636532417325750645823918801108698634491368723883990211227435836567239350408311933576485528892909897034581650012488078899809151249966764532654922055246767804203676086682793302109315571428839476001493649388961827158624772318525540047609980279209082454934048166007086404248422433087949288567694760480990799876975166201692445312913003338909205240560747117085782377790421426340840888472745122370424594404137538908366955499073103594353402028199355458876412795843719595506975603003571320030988436669028889618096479749774755340843544007181241989847444559876486654473553987311016591864903131676255966894688262736898919577295973825044855125424777718642034500081186547081929427351418138365106150425656874860307037195761817010653906654196304230627844530465206880866355912159981659081654567868631192937414827570951086934147295406131348734325334057248083385914092520232144146694506707777809248510244687016530781331003983962897980182699536174871994811392563474103597255198657875447890405789770382456444388528725043045428495947580889485215037833940835678163145070469014486489098760341093231481099435054615900874156688800292862340058455711844345535027625547351455894073626264115497287356054016026565846773808696078401613146729721326940869254884974947037490092375065311131204534683086740606393070660097974702983337200450913649447758528905458556729794918648482057289831726675870586149215807522627468580878915047481404841952482933435967705623776235631796129114489516789854536468657397999152550963800858278934756804560558683379386718224248401687797831375322744886880884644215160304369820944872772522225522488134408094524405551981285929888447635439908398450181250138486670877909103074742422194703369647887655945595766547641307645397282426842794899158808412882685979611027996992536380193634105013190037249157103364566747990562454892701211352575205693693462961864065297992163976710405842853172886438743238195789318785057202986789502320218774965278038244850955771462247793492767715193676264389040222947142269772484336055762610941935093126833929856973160800418459879176146505421162854687406664852908049928731874160876097035488390719754436852149384470166477506894735616532776183712787600759180672170896185494003050239856079150654474767809758961535836480535589785643812116866748006551742987976095054162954931384649295954613643585663435722434400039874715541576886552579747544789401194829374061557908877566269005058164063754229605869757789138179388677415987213012728263161204606166173039290075974482071977406173363090738408823642459537400528291306908175746221620642781797782177730447575550415563680549674561274463413902482308521562276596211361001995015076557638644107375430091659748068494693499168139870829206857253318560152596630926279953051117216454120461227248552423904747656310611006305413960323018671475238063917813488499133676355728665511043337971484983721400180152290530582268344823846916216658292898145511122991041980979851891016556594580471988382440579394840616663521930637472017287053808371498779574140032826160108584728947944789700246798921530575873151779796360808218054545922837080668461991587698079828858465745142641054320134583877628199545569794237712355418984918467823981362377734230206188648958645030633032050886203752862283176729946070260923560439237445047437428956096484148680527952321631235118050055880740900833073637443310005228096477256061757948844329518141846817879804962829068403790100784588338488498013278918699215311482599233324785866734457915736375030670484375740252509993214137829033289549410293803391704215550213110961896476211746200184075409055059713192818699094724918681779277144940533265511636804396955151290295550106091103740770597603247917183682257085768177928924538521765382395779783171595387878110596054014395695586285528320942243866676565918696525681635766462738530466836939964984498522957263836105377237643362050261822822009856785916757321317446287933340689607446569548016530382892890886744244532786348903966086026154331955807128519452059878897324130587774605128748344589314054778220033172322026762760576592575943221043618374969291608223442609222892877987410398598465688507449281054409301169089673441970477318514403222418717103221496479300555355623160311870728951458915178616004099563225732960254703998992248693935933279300982539146110965985671608592649242750978323856412578427680815066478351407457496262451318119980892108813887906473732620700681891554729758348730320654766440544554726429603478438337948286098278400721778182885097689540239844815425139988372398231135450734755938350324176228186517228343993368884776494365302403650085552932229414485681386772889187925772248301649755904718001554959744399866542400326107101847364229386247069050579176886680897821780216674243276539093166120735012833790504245622191498747388198496878666928789579059764728999728725352086596002234731575622462738636387062075333113480315840292396173942637314430218801161400194588598138718312807030231892267831165102232734875910020948158817512164414977855149333134350636102121579071945638533522060864002414595356179664350221823946099440618942228184216421870609746891905296673966550553337593646894240145599150803760685183234142942712371059003875602319209889615669665320591464718992056228058205344844492861115157625736211604158381571334578077931104305127147458945385396218652653242446756229294661213626083240126546116255161913252503468543105088882656714200881066042380756113566674498891742698563727887176135094098148883320556911335612684672004705380769553600002114271571580719992891817138772521748161123810928612424952388600572353214928644401797473679358279977290471909443581243297839865758489495754569515766295304841496851809515141552106029369278220550401579431923954212615728517299081226224445927333520651623981342957315945997609285205453366302060752593188121517251700354082068566324130005014436761131757955155536856066166465668361572130199087222898429259558467734831655454211454597307011327439424304246307504919848645278106319706996633554399541097224258939690351146553244723565727454943343759882021338722488156463375882498633691651020752278821713241678447738565475939506792078053024755006950886861990944240385964065476226024477128969256667972272886905404411424059736972209447598727233872247553830332580252072959403546305910109751746863474890042740584209012898690244070218336155658730786128891172041121770893971557139799488829436685624930476260568855658714560941609184972449199826841385492437701086603295428119169848139326975058232375136887541266677025684342071506390046115276575746788233649497332495415054700285023552437042258117305051570790420015478542592983046370342632546455049871496327961728043163917590591782064632012848887669092221551852289101728180546331940524849278216231862409302280731074297097641572800356239516328839299869046674222606899464072569903193632183941588286919351966005244005056903222786700103421661639507294918509003319668611258325191562684589972115959264317899867278337746447876158356535273314274172850712859988717570128159910231436148890275113663140623477511894056397143918072467804202350451307684598436025644023653030732908433995669930462595639830065933040097986774997474951634712946586337818777864226011215988113594102469438649813151128185457522849809041149585383793498593246475522636449393705932858807320864650452045633287927273004986218117437172184680600095666150799492227958402879986735771448327334902878687527080878101023382441219733488440137858547627544657812050600118974819628901951260186324539005225688077512039424474728403716060698116397439475475343423634261995418329035139244294289926486540689277269839133077230812543178576426457900124511221113632184948045104904722437823697192474191812315287482550313487037394636261774391389562030654506472901769097106246605796029625828573746477207924164095787329776609808444501157127888950058756431558181070258711937170932385294824404458683640633369297660399237306894744167627337469274833034864100651217423129874130807736597972073331169838547921927595509504052387687555363469134231492114888122435648866070274172293539087322285808926525895719532676517810533391056037371617642205605153968435640046570641224700147429430807881352247514589977164292168114270351685495317076507044419166961234975526869434299223782294768157007321801542201857931336659667484117708292092071501192892925962544664713211965004011836194812693517475547579523094487180663461771637829779746023602913419829323303264962848857466478304491929006295428762692127959426754991688175403882394594001831318325386469924252764495736156426170224023259404516912865526486613006788529375472658830858999936448680865140942146995117763979697581898780668930453995984050567993716235873481762074684014088327220042142355561326827703842693353152635280144321546872691667549771449297875718148597056129203257785120099933791721491987716966262424992087781823617227241022248112311860101103459660169323457337461881207570151258929361969184589685638139340848887462377599521098822487152895060937286855520000197552377039702884259061578196378527050621587377202158178764016329638535184796656445005750412354169596583534914972788466168519168730087005847215309952357626654523312010541292601044044755254836099525477773391451085829401274083338783139823596187828267744237374042447080774931537292470936112302861819245857597712410714183480004191001983984792347512946894909376792350302594521120175412229742892830310010087120782437765115192987016823285258188554402202950336123753225312367767587062269270467180616020442211332055326735129589238681396505598417284971749828735208187615848612680940138196945934290428626377610508085868732397411783580282764725019680624738728698469379385534823160264944578477129066752794291308504833596858262359988671822801025730512186273240478899763376805505505666412948493911410901663015511640849012614356205082446002292648040392879126904306166407245036139372552467238201984341715565681560017986680459927915298306239304424378700369347794228362465591416644897050182983606182980315580145614853294940693589379314286296751489153751198869602878826685963155092723812860568079106601105598082622653527169639227320586891783726167516834186995484042040075305841619087063756046449906643750899130095967764939444908397928875288381879109218357276743602356564559396963365911505151307034521427807942021354707949501371587740595432762338041203696405108272811398216742185080661931573836148386405748864723019313112846557169754829128521695802367952273363269934315320808320612872374226072681914156393377050544975163128236005489308149538679846411064265663026309510873876462685089981053191970779386272099707142795333960114683939450928664157029429365855524519790309410281039191207756503776703490491705803366207279404239088129381971937385334684787638670257964989104224897915320107510224013406454373406543622713037883695635623173767610832893956506166204081846719357504073839791241154798656400872979173840363847485837704371779869080212218717537914232665312730056335421754902146368757194525185972543835055611025300524649366120407640911926420575860577854608405879328807582771744272244306803222916813223777398935850446610931765634761210622376055391913243725308455259492019362720966769957624961186316709321493331396393453810834304614529843213410641413493581993766159098095880386583663245333264451717325796603954518424743969062778346643747002835525067934596490947110700146868302228167184956354621038412002301382579564512230501354060212889345032883634748638661878060437564182279203717170046408775877428940060786543351822635402373993269951765505938005261972477623030693615974851187607526331354822191814400033753884038961828537334231285785425153025232033247597316667023346348613604524282264219377143131215519271901467343336395809932234038796224100614623447583424989749179521589800351320831075066895183750287311635063769460729380636152225054271024329741005327422824894228902158628964703776813451088497624988056914094714066355574925340435041472299501464243842613823340977522289878464209730973508014917134799496067616890376795183025563667657330526273796300133919193404583789619376255165715911589654939743604316173912135396415879315024417121912326389021714803108680530397651621601194403823989050282500654571620291909928828606067156399926573133785038640357240939929210878702657114920445655901021479125721605979611250102040181030424892587556785881137342779215721321606229047659800697054742974476047398650928577002507722776354058288353023112250903157477722675605811607992045565651927611985292517785632193474977441137301074242757440787241050665860213447220787995889552906174623447312582844852611121913842237174273384815263147669927022531172678930005404113464716973391055739219072767293742494139432941136909802207439628935664443319490725900391589839491810532538388534900177082216776864657660492465497243805976042726057609430795158869732779213812794361070291002799941817318441504208474951132157686420020902152520163966219871684492422388409885658183742066160533787596868228165712239163604919984529076482658521740327826307537732758751327980533719497007922788689111976457097402510058932248300610045579721279063659818624807426482468922351540173517644249212471358289721128719488545823083073707034221808528276770243061805079284495987916659771492127767757419343211621395921136375043452405717996336436208517493872333035247365279770093971409201237503776457361066864023196915980995384279613351479728960278493126509645987568270072693691668292131196479541997126860161887658069541279501610065291833815377387870132517011787750491673034597469585069633892652215194185459306829507600927958119794586138787332047392048792109572427178965749931475194077076178998006428036993626302209348796929323664625106841749949002491279653897907703803153362791232685417486572763178742019217735931308896071646056701933207352757668943832109708225153202654349303191924870571051651797097844807618971554127195404119085112310009320184722749914354427180806687759477113145976263827222923157336914777229254634433792254407760189707613774188361233392961832004148149198415661699087987475259141448597051749857444899874265601981949985455169817336337956449011566578091220154883263372706341578278864845762682601413352601868841190333304326495144142610402154699402311732967022352833050181818137625091634328364730528521295242061548711795371907700939943898232475529981393217627064059722329467585791808957363787920680507691264857257984001654787751578790403189615135489701268717975630115982063394368834131432581918030447407235906729724102876803949762592975675185478218078332166062302195695640256590495377224972023374609834926833924131783415172362516769255476264140637126771853720879349717553110725561569626304247112995921880628572002459595281171725443896747301116409725698778546742275525730194696275848102768498625274383710912533852343665721868987568279077339383513579662346346576663712791594714619678359416212681595075495752897314297679539303116538286879574973205733945778019923568387988376849706885421963694706173735769620213665155937867545359768143745266954033508362335443344028493855959554273849293704824931145007442274407322574930064606434412475514952276571794269981776335826303921163715560102815070946560752746176373704505507745755429755501591203671242226617243781018205915717301962447001708732658114832491350893438992190995063154472385588516458633169013422694293024043608689069993612643453407516982846797731023502685053166711672332127092736357666853522843441113440643967567215635901732335313454716394371993574518345275649559828660490393051834090732560913892943807980106503121773738481411684798639020450051106909538068821629005909945213165976334241322642025617766895839733076141305174433040382859286672645500486099000762938920308265943754038687566846753981964672603131856965046711749486437112033979375989434631582848884828396642532527874733955981709686608353593815939141861111690413963179283494109900458827992909004509011003230746562667634135322184060096747081517363325879724007694142538739894036321801350316212454227322246306004713491262511006770312206432521273132862416285643905384729950763468174742632233942592104420857567356016056844575708729460983404670327252346670356699529707549349678064634842284628135838255774603416918879511116459133111901390231656637543347322685736068452946090940430838131355060848276381582952011398022790422854995125667329513500170641802643698263632477794538581377433158601261692387332074737101382928687781379547606808027756350368958832205654351666396580078754176309026241726088127868063583920845905597547677832199322139886041199719106255585488662745701918115988800944331379253685365326480290553574894905687249074187605075626475354423765463576043284611687910287865656922474972770150604160744999647325767417949659172873989135938339351824488952381068598594168229339448333966703730345396869564776188490076475927928785512049327874333193336415620734130797038151309694003715656166518908308396661726237137684543297903353029122776319517459189956057198519686705859333096324757310171285146861631219456573507719112455989466547896230388531803938467571743699255970919548378378861211247568686422054519165584825678739041427926575561708503192023209332682960331652898974895921155321061281366353366464424160550673373120893661311715095598780599068242401152441454572628725306579592277593970915531585648034384299883359403637683632302743146245126872183389792411188663096962926718251027700347200160743496293970352498680098491764924331531103909956054790923654754408358406482407409589136057082769922277605131183023282186534874258246690419552558942144018350097602362187155098832881052830075832980048773397964839363278009858398139817815509660882985115998485621407486277252750668194305226521449051132244668762005166355738037346782698503828470248197325637378289950365843522098644904028040519081092846800293450886414127492168598380200614533810984302661338326550605065365837530083998139508772220825533924587329097457439473188516691679003842835728356200576430562851013156764057089546955005404345525901017356207166469512626874436252119115491490578165084863761667524509726142734762948441381931619798528972701327683945745269934868243360211124373202655093509800044862975404614178809507014499041519660012406968437126696492044739418397271613294743026493890940800485812941163801050577442477938757917812115783490112121207922981487957579674226691394478225207306024631573914120124454193673991401291755313079735637921654277125795626759354017838603857853869032280126079801234708525067166947226036361498006212125634592354677191325352887323387361925318582403593785963608070766644692873019680630073700320971289024664117261184135739075072644923425249092015710217057491564077791166242891318091534863515773287217093711286654770535056415441957794007000365932647388449453794323387961450881079630614145563700166099034416544643487551793555706150584680284720913843081967415836907925255250533220865566209372358989525894171275681112261462597709570763477693971674933081793369406922276129834401643535289323363365954556479306980399782422085627280205860759618852500059253588895795156215563677306217969693077007515201121425587864098520704292060200347265287728921497422877552207978339545728144032164837072543543888601845529266651274883208417051996042186449408989961414306176135092663771079287225607082268474545517194137308119672015105097012032777562215511709694954822280946792671201222334220163649824157546612496746970574426503087202163352330266002330058320140347458309352999761141001063500959259870370815319805648026633564090736057382849929786798104766431796355475995010547856801265098556070988856781190125400605934209011764931755678924316292610742600739964411616945229007302711807960592334391928420531647419862892293351630965323227270872026281255055085057437638680750000454522642527866686382271312078576461652639328205126636905172319210131964720080809865476960217378871657216970012871354088539129231346284698829180650613144128685299310496846259519346219033241941469225082847979487889396663577274938574506274185177458137831225613091516134040303683876890457403318243324239785558779369363433725105843939176697070073955093965013929611976917718827008196225172771754382963002856336693280217256229275260057135285084167159649625313343024811049881034784599594916892924488196061956735011404617658795224651312513193288175258067327947930973694264742392079414722310611030996340068635801612572087118547632756117286840490941730124589916487054623002867319329970520370448280608633911810418774105247418519156337271989209840360666904059560543551755983497134889671289395623569094131065426414555002487697411345654518419898571306256771590646958043167055399096009645528880189172150223009266929538810892830568010422595678013075443416208835634765356155995471565582026848881895806552723811805964767367274658067239497157390092390874219282558488201874895322540073832857319844141944561979050940543391707134222096602091592438572928250319327882437795254121316535725104933538458094077781468575069747331228020750212982191249776999251334239470603989789994107629215682415407267510408013598666984718194337359287877218903500501015567124805779271821029551078964132718125039519189052243093466014463490960509482338164240078141959010359765543358246513755616643827064334056402845125641799551964340094533908042807053939550119491884950753128389473062131103117509539116397665325019494210641396149449270765537963361421110398068162754970224001128749017400123819666322531935240955029707046176457779564062928169665864081107973194678209022328495587157427490997426496097980304452563244356620176524091918403653948738610392765961511312931533635743764700261382147853403320130346343169807920160234636376652783953965874939744122718336983150048295742409869099243195673145744930984067417335621977064269794451133954551889269288923671978631427890164589526070941431958937754423736147876230511600418575906930319540744043628742397334319253609554776102903767747156462610306562074199355290479111570929538653627403756787685869775201913654937605122527539437433138140863793363880257796616791991861444840617319787365747043891632759079267966792536309108569106465631846256038407861403174383689763862600013003977276194604786251197021480423994893905960731745765520208895965268551344060856854841238882506670410503049038004331468069158996092277401826382747284434411428067285043048086848041248482623773391660689468677005384778280754868829267933124481288776149244067400923411383581982579711589497253053699275999029079883796285652418489688419472286808915819529330457656297688850836489025114243705178482860404948436512542052310695227830006235712348104284014477276362836297968137302958344335282522058318327916528278641689174653235256182723825175731280494711984297144436983978700324987761501566620854318097628929525437255531495066384369384622076445293467548669435254481301635677219176105622854479580935547076823554792382021293368483804027731177195741258193959351853028642812022502064312924423077680881470023820106932470468285430106592157325840052150774257387219700914754139292379898278363200359683912066074661281905501784947691880341622510557530380726474649582606492175438959680437254764778445649978715960029413177174738502463524131289329706926640595295850252975257003277128840425640563986282689896042946588810774020942878056511494211214169096393394049906691966879824284940017802460757261321416717857079925366088336262188769848459183350228594337801186091044879674607441328660453259943483299056865032658592482315583815327421534905153335751774088653725580079830227120772222231322483162107827543353336023987367385316587945016159002533595833395592049134028205533373395319979993950105672567643953350514539585012935414630497214304570079219406164900710218187429152978626743053691716794959418675650366826069348012095718713942984475325221344813553504344978255995849432376943856249315232319496835726066701781600637079223585942375800391165327200968927366596842113446707160770706349886918727994292116728666986640456146651614728937931517652438010034191510078669448411960761947780315520400421067801606105237414748518535684150448554132814553721709897230960311711454904932375766109920893671260169069194473545879131190880233570393007679318568129957482396041650848333961163114011320469163670300890762452167154924330947485523308638079199671934669581866097877826643438532374589747118297287355314558448246066542744623262689132962101104868092679911057773486344312759943390989136473760852369553546004719545198553215599385908806371809872011729226680738803722908328383119121370450169823224794895400371819017979063818393149934460817634438601181215088837440719573258251447499596850531325074133822937450460562416043590256741720774452364894255844197177027993064336353866307180072883057425367479546880644487322685619326824310479791096470043359421300691564334253158093100721132706890343386589940598279218424931602084482571081593385979538572441461427691314164194723587662133300087737930526309580837482697737852322762207741419830545923760365483849587850234967576074851476545999461641805498293443643232946528436264316921495784478264514153648258614925191993833475159489914850753209561812839946009378363773602762782497929760883990872523856352821156735283182250427830354761052718055060851827143741181305176579869782758338196416810681874906006224408783164539612461244178168517766251050819090939953416139749365829644600277340333503716910939464720073019979907943891106763658263177005312140301091423551678230982776499479478739758292707592835603484483992226831689945997840862595933405034584416804540997418623326114576425593174066648581436269453860595175223892697138267571337297364837140933178751515530724332681456819704650959057653101664955856126251729559693983895172293948553410858810910686978298520604503035558408154180873172170300594392812676182837322661460219401322656232722859796481968728509287271018853311517841193162374057023240763290043772307522470386723830830901090035462088055962133314127858542906769476360675092808233792097357687689360840301574867895530078592898620852432301205103215768279081399961231670566171352710319726711631876227545457299938087202583836807124054171330526273005829614090493546833109148690071339651597720546986146141316309839485277390257861754394056192315527927625080994705522575989767675790274078287071572823100284126810769266526177445883207475919157090887164229580891318636525576117212559006471037199928338113535847843895800493150802228818311951922548256298465343781964705765046270234611960267323895997303953276691659262647790703071223828079884189500224654504222622741842382241766121502374928697764027925801953021144265894029766393318885034771682695477710634217827556517753834242031167102284279454721244605674621741547250402641171479201077143125936410580163846833218209610603325498419997761898474991271104428625926050859122048707080399771392498561996670623883637329313531996125771782973601335251628367840254084206194914954645430594722863947294448457539083144351529769840345222207601412104387151089128185964649554354584012492757680024559711799254233773799503435237770662091014445582678058261402281367658038911577511133120296734255976713656293699938371524211910119564007460126133566250308256859403398494944007037023073100784091570337706294169480199896810578789120317764216595125440639874329081711204931004714108026091016942890691935530099164073077147012378865453674146704146587292054701623509287234877004863914726076813183873541039838524236341270825554265782257274584231678056100435349927733306860495918049498522699626864167479967618917277797632494949400661019948228175788114490234609822282339276972483122177711944843256020999703910685312371551829403219152054512306990872519363945358670485258065509090815527002828555439278279672483456452566766351576425308064803053048974901366042920206307170031907973307451060751255190920702789061824531735704707349754869326226104033709488203563486678202530531783954193510709573575393588556987433014841154427667748698932461357359491494463217286013348952731711783489696447656408647043859905935737886404894933746213248672999273955432126578720758322551976084701953255594420850108471493508209951282009252363950624606435533037576477372676884456585430441021205152972536344659771557562348717679647205642312957724218103015562710955522233577608745449847624053758018038631835213463902995172321553695236646972863144511154623141264702313622004911326947288137659235696623535504309223919506273724631685944342040849572626231553401465226145996988721332537927974509857308772057264326164125950322238478024988906199635320385460052131726676413992069343620705222205412071560737840361438999451510913028509080330026400324952115138029059985562506534504169541710155698752906743699380160891438086107751325572620078641060799322542442967329441272886994780082335994414427320763448069686904932711002290254884225317498374703859504545331203542692562387257678229259786324069737320005592542381958141635632207084016736457565127933025631338846124023996406795696237044697039470943504221684752552718749158889162987538373142027367979234183872278069615114584063480419659525137634277117244106527753535585042524330787155794646391723623596151085613181702335260677330185517170729671509802479184563339793761040250172389878694718675606073638383630872500352137957763523038569975937706638104841552546052905196069915456114634556015098226914938809582131769215404391350112023517604914101129337978954313910774498305186939982911002313264999874094019011279636376702475711757832407617121604165009031777500209951930159638672084775725455333641231185576743220826766196943975741989434117205047096812125954947827112617952511769609689149188762660914907763278737329294928393513754780166936190917258499378613237651987523395559177796578936540091920012997121401238675794198057488804906215175521293776339615128913282194453416206618492715564951647797216698107935419793742477947472220063548841301479986118637882852207464120819371638329382449176479825138359892045915744212315724148057689784778017935503752932897175876451393198837263518476552019067488856318822140644564688468617539635761142058258380856188369378893413110267671597306623831183644134152975011458755108454955399389290102208074694014143900997959348839577333888075584251391689307296489003338259421191768580811834852060369978017191529591588122377150470987471586438390154446628145638491963602812870607899834788369148311613522481723395709472652831272180146322229896260487685507008855041274217048536357701381820326484559717467323508331158796164657644664238377845296526315262511513363100116604035932804299626133879649036459598813465839419025264970899904021966856149591274044024397712514663238342709101322294197713434194964573398354668800094588676447506162806052216838899431686033353140713982397920795956005709571617571017155733066368640621096730698502144472778822760565257373729883171202927524649570956188395733618162650695293603432310923102076336821798906472960046395800020155461680474338868879005707018239005191504419400960386979022071818511026208530214686266100755702565871945026769734098374115948229201001642812657089210915357281359898791021744613053470001961202957200047831880973896155251253608020073489059206551645523171337710631553924971865855015803864372893937727581958561135853912036015399283720699523860180516433814252611605985107004270592833538954345165097737787483916457544411976658754067823300744435504266202033352662951719978883357623640759894502847134807405433898549942228455774624720325275142361876051997365559329139633047012840601732684464768959275455728136235441458964266995682695780635521332550347170018438771418346338065808228237858080888081047979641789940592596858302924978660159072688058655856777033361889105821972380739286150800744030711121916239128649077127752519209079256944221364782258406649048683648478972068311521318521198539471916868341580681663899506470409699148191489939001809582313955368960750331937266094655432207470999632968593314122980465852314211045070591792871104293311253847487869874460026442209674784173668537639821754091587134854353689904421338740635337161273837792666186368529318958494139160473179084768129250078126455069288860876334121738443666285822801196114283676863141048848043333889477375508512871326446786600621335802746364649892054121863152998192703747032991506419792214749937020726719884372291171371905578949218272101502026086122994649525542472033861778016900696336906952761781969228926847896265680786527388453100988275843944988489108627611424846468357252530758724039928067040480861406840217045254855007746548881942562608763585426834332113993308346752338095057682727520290792678876872525205250643586615480790809447908835309734982597284016888534503446825404915910228015198128324448036044260331207282668433514371840776595677025288258859785458196883984858138793466448343275435118446395685274477711145008935219373745176045429906408587891328799460904952934448977559307868323075608144005155240174906696906298244535880173235941355097230152838085369386048494145902922720853203948401441893456956716554114022221948243632302020989101802816694814189942818700828140388824889671259612701794368192520301036846281569735564522792337827705834752290723438595482604964280816863852142309755233108169306199410255533214649462803643175652338266165311240888184512877380056513189103597430913617749959235342142405835489084183882655385046243757815378722618113401887600740420302594409286454638044563847580377742895757063606850205598888282185036788036464271660986804312933026763280667032550316832754479182187654210878790580861131663198917669088973596720199431390775884073093116667855492593477098273247740937700198587635051120986127689385280646260816020949122305072589573599835572579273490014363321025659718871054018248036048720717824366367356623430423654800607313151058218008100007304221619881465371002402794735447063951062450329783618739261294604301548890150593411597283295136091552229412709215269547312242171749136043860454088662562556337634353338643543178764143674980726395260899888178203370319928982857777770276769354464829017348635250993344865793118220342838644196519401505955080596754615097551423844904264574285968408603002881970219075558930394615758803945301815361209698995675855154415200187197562124591153261623414987492061468316710021678513675403305009665157844920920191602883322671374779811689450013368606022248482985750852967884953479220056393787334492723146299201676392608828589939968217036553057104755050843187507131453387154289739242069916827058887636756719516685759775138666542003888019264495646334913764584946587940481492997823257540189401873610062781108271824417309039007655339006215662563625499914251605287636377964139711721462637602184023907254138343820078129318382767487073301008699928103835890993211404190446059436602231307411922723497902827262076302482805277519645058356027951730288510958401720325477950114334135162628308166954931867607985583130734449760841412739171263841681110368915562953976773332881456347799974946429877255886271229047991325768203748801126507601321600667216677442194495685377031015093321393947398476832927950347122425435132577164834020934320362628703371488756785438289301248906940527334292016663877913720190909621150579901139309764084984824358430580062789199792763436915003845396190819218109754080465438741959770984650008443776856128941257092718840427573959168678118476638140180726574716931266269778332685593990314340756936633733772406089940765083791448059519731604554980815186409913566573339835096405055498664790980522710633539876422602215538906027227126312136474876108950148617317504288174364290624334233928114887618746485654332300375601692069681286131969375382295806158534561095480780212117471049172921935526749310648286978170307236259830869232522988238838827016737615070600145501447503373533393001649980534698248731782967408572509718217905725531598734482666761570055368475088263721473765176675385891543495555297831419176568928103842319479740410025306002829556929633823017567925116299290291604990211353521400548582488053326987838121930856301955295177292000006612826473941558396786494829998956403347967504288821477587868788666144902320046079889096083527414774403064940800463699590258480260362734659496938061586676391799197406629783972420762500729438601904116961907684429586661303130096753181739463457327296238427313480109768473504051159086511866476657092552024208705771840096863989308738151339047626663972328343458041327444323130941950597093658463398604072872139064189216432918542993562289179847614645825971701720918386546710197580620709169015405884915028483051414057063808433477067028660718379592413294959151268286141872048471182003073129812920326315407061200619780162688719423749704620080964436446173276490181882257531244047313029892180953596569090412460461892734523162755148167998942949232454727067222203711203020242706086317652250954524024936044365167880487605058224888129592796823728459807696738616240783269644262550074723967985618319784493467156538749213258828924247320931236334679146995272596376112639074819805494962852420463022406122290568610253378458428777632483068360441003996138302233764458333057362535786756596040008792985562657684271799607218593189173593366419499763220537421044515374266914832409146228687754173674991141995392341075618002986577976543272004787082839032288749714780172713804797676795768065819703938024656522972247842416802754136633932524968119817237660876465790091767719570099623969726376944656493225859030846794897334338027516105220981408727208027124624227391088470781932388208811053216172290356903605498927226901167064367549308932134966533860901093337493553013725626774943337063472311369684330862756549067587121173898578722965559730504937222155144360038472816147485371698846925895024076714088287864143780233724881974456179781892588480464499669572638339654929514635824916299538424706902118428894004323066912599092631518643124332781181551413002587085211555400855188833782008107858325384860906548599273043966214848828752949360235727605528193313652143621471510551610528829104026292013474985663063923760198075502199168768176997469181873576469676114352789025507797389194168422535714275208016899407575473717910838974782974462680632027261812655095680338905621622518166097722320373029712205091906732938578469984029647558434067995800109708161599006788007509879650134574046135782608497804630708636295388992402793453920954352365684610903153820645551237245666019357437892167394466000015120279059945165281486378413607418655284218090858115643406000499266677322016060452085140388551882398476862193299581745893933266110175183220217743564701061425055015426357099300423191027747528281745529423725074944920023914579655196320396480174383640427354774463857048855473341494168342911923161075918970969778148503503526610894119499620416495568005683901845499274184573007409433971282103146526971619131349465620877394355355374149518808277151723972549013657365656914976358789294942900480599455699912087584778588174809457087969973248245563223296167994786941864255937862245844263859715229506119816309862882458262353478769037030587052171156688503330906573425916391032369141240838151199500330763932301595954222074875851332949136895049948651143931034632028238616598164569430946240240908319700134804253284128903991310749289398090972613782996965313795378433532869929594130542061563763163458669755192277103429538049447078133669445058003923083277990877031110100249257658960396727084328134196199633806717951143320841793794158691126417455030109915540784853647597670858251317040527504289871342616017229112689327616448656776154049756274716304123565727210342096508439470155970258544549480541962285389637567204148011952567198632343153949321020886198671399846139811327783066212009956678695465700052531817439158060177286190422227522520997538695505277112427617575576464740610840030218564254245899166426669139541568380137489272360490459740819319928743387281713140444168379990849500492622240019715705685895235615771115774491483855127538645664723785920784541582632424014085901076242635514171236744020248761463779889301786537610212880303712234788820446952866874149914154999873129446031116730999127743185531341325886503217321665962278113389940050595719706514446882726457654711419815789453351718711706980398487813914398366292843436258822271921194457035402005636278541031549281073024709788235017086832760029093601498577251553489230219954916666945809137804532106783610276630060733007329592532023848726075905389864887864559428311538446894266349473466659383696633530521317076058657237090023710322707569450930301663203199465551303429822738438620733721078697522202460237320313364450742033560637385796867556201831661321404453189514615562806274201453178066712620610861368715746079395154085281673062406063875244109375514031324948311073109093985599862808136240184211578355640737980224808820231467800120143999437016981522663839459056664688321965978622058156531682877419736284184424296271617957506415138261306549727735909353763902215846288863916427362570206920969722468788725185429220449328608865993343788612814740151275786680367202453026633786692224712700003040538198012060848765259657408914316121940627420073699667540426241975721219371103084490918393652593084009143724586559002797812882886585472414322927689161789140427110837543902452139317387916293021066338492949671628797243284309956390688701933325561663823325175116192385420044964123346889432756636192230038948557907957121762937373822364809242255124432964690433550494466036708125551356749816958899718295126693467185377017922339566363156674745856376312894944951046982983952538525314324897566526535127494287933556274267047256719584258716747970034594730986976686029917909179610393843332706653378667563680711449958872195130381899582648309530494378825426190670607207799044355895867957830683019106965304795678804925905853802357447278362681347764948190880840768292877506067639444592744626395070157799113414944501465918925955844541115862092030923480906064798464690266263703745399399089337868631093247168323633410296999652040218010064044904403722360735419702545331581796923805860713152176009206270428369111343629436540392416742887492011731405818303994500421089288896156454552315252645270217340782264968384879944822938341607148517651555052206885913851188518126544520963716829198676177189826053860610730655704020457308703292984476342787228973198114838478407730859496444591240857593426951916122680299155780370971493417142133306253353589518569896994955823670462772519569811431968392014186268618030105959994437349976122896584541282502940293219389580479692179948430325101500157677052195735941648533409289282651280101010100883524692769716072959604294050767959980459109195781522692684954413454831577638512494233785639192432513471604125909779350757695144308020056476902310476803630180234010918857080640093466241547179615975792823945974347821874447724081484680021449941649378767527930639850608287761302908255588972935933452178532802705345520246233083105532988935062272679314500806221713775809359242445851024658398795612501563572417044554833866111467037710907471944440612807613865642063193287712277543940907871324684096771411082254676799652674670207808655787362908481525669630524129248395649898297604278763481156502161291722672847610635702491779024608086281524590838189953314793176898971250856425418132801219565978446490781670304413014423123173190070385459980711237262471810466759913993961195688578217897869611538652337902147560955239035989414035233005789821809880817545586419366803401129406688161827199102342673413653255365018426851343083079330192363570420142899848252776541371219530728755642654355747357430698050037987383812844257644412654294431820607808037263209932966545723288876346534694011519998106120603141430676678766865366599872338309474439665988046510773402619737594043219778690032844498977987996276398501816542774072334138813711342254685397481902747438555068938826693371787227831793163650127584897491576666223460154602665385128367274429455276911934812611794712569829540664623466118444171322102492973516148709178879744980421221314800779372873559453864909585421912541965944918605270775246380285194548287676839981626850812430392487361861424611840269127533756232977509835411540117614280686420408087015565834720347254448980753220588737920503732054616555865520079735377317309289171939842618989891668926873043297841460053698076240659228455834976599048737373856244545476074926616628340532125186503170708112374428058920666922001556375919941568247591676341160255507633630547345989909474977612563674986261771537712063932575394445593576662056865189405304229576288220808195070068333148537603124965882762437193604752799153115132936422151222587711047711579392724883125928183861048046352010440374086176320936259691695890805618491737252625996844799349128940085271489721960773557588091679639410627729025361737715400885813927186189546015870192432033946609014251649984014361137036725995447046675325453003249051169520264596618864241717223050774292029545636848810437294997626752277178956125857651456459555193880220883039261394299876983064012674327573720716139107293045536419139738831170341121337093806491483125943689979152316108368040092780061279430110588423854742814294695804625012254963004020266375415815905060008715938443270296143762330073448013441322947199905217331979482560629544129138923484652832721722109063628847261534660218697703634498739529638298575694547401079693764943382209664119883442783137724650767887683624446153447269099111756068569657329870743416781551395495497865754844772983314158515911318550063160397461294297249990270906460655788341897922379754893139505681110717740943964874193035135327218682194956241378122715699374036162316458294112242377671760186904449742457685479931397250258347186044643916571543543604044558079205305743564466497270724584586419375712391284925241712236434800479922561951644687848836596218365984360952280010790973496388521579768258960460133810444246728166290247300803636253029332875612472838478713899025710083928134157450844274010253937820785907379117836249970480167101042435989053289535183991933550771698253022893309994147211241018812319238416185267713733246883948853936653754330775724203712685060067810084280067995310959317925613990930487618475073483518146251795477081336737672411687358720244846942339088157330821290373768206589347028564422674756620189850447028141537631301772992414301317854200424052086794629637592166705008068488544642024487152021580339363803582512970290581112221169134255751558170406892346806553896130350474540788078011372901946487435561255233017807785373047958637509025254743357909839909835779391987350603524839220313956729231333826776144453240803230956818494758334848463686727355691536660156042145683646765333414184104767914676911901972649426473010801954394033733041781333873663029292294260492549884209922319065314229714480800011117681406145317289295756120055923831467749693823904589208000598333137366837190193260745200355683876161919673899396038237949684072464919510275607252981250384545840519613585724840588099361492312113129790460315275516433947889391968969705841554491811661142165443006928289544433866631510553176475276962066358502851847671270224619412947543595950084979352459538990742369443918990738606761574788506050389146015024112254183397923520508710438811169970268733277526799005149032020492836795602528232005493238571045667152679440120581734796400975616742289244302917923669656385227868437676290255455337257877649892788948014542256243205546171301653879004671160559669861365124196245488564159686696296307878167296906460387613740158339236765656270436985808594163058563600192560265061758304938754692435793165450764945668613706117518169122998060248605290564768517672391765509659134285593773794540109917847578578808757648473087835204449093932768285227840141976167542419848992626516960476545666455580728669354623834886372258800960473990785279747205670479098309408093626331945388182963013722418040541636958413309718562420929061835504967335777336790614675161657589264385166847232266375736716476931361159762944774146886625640010114837484608970532514597338798857760245009542660650896352709297019406353164859718071358845237823293878784126013588491305118281265353693612872010174926189052025535771930617405082428526362043997413146545499977590306214238903456738928612365909976883199293425597960987894176249785301085912290275048833074646923705988955568696132183074881423193762516053398730356905198154176944181991347211698764933299831400736027794954499623302006349881553948775749589168631484261839745056257281331682952864110436942315359349061586603086034663794116692608642088062855461807033577739338311839235660453487178582417105298501393054349327255905384634402720070478778406269074981306152262373283093176281608904336628061693827568372290302623202330902674019195683622190553619283300388729659614693661532665040888521108814196985444025681772913477327302530922853880507364481329027309642940238110638079825858586460431619825459572618408916537347971008646379240778407869573847386602250705921624001390935047726052881875239110074703366001510372877425085871993109456504834059255141006287921939744803272817354131775681693198780643330039368235968987946203888875950508045834227516923185169392050174905784815627424126768426123742964481345545816592013438302026173794955552608122068879944141535771023340751120400809438823554643764599570656030968629567286419303281042156132781593261935064393231214819505333454538680475504588589107623258584314559885228269185423482136467461585379986576866617414080934789543972193327829718558858367086151231464129429624831692016711436508832092004427126871209447621056368998443145940052924672485445872335649878370523329930746932227301110547786147378937647286007354709450610656693088590937565477880715307236869546169235869623281677898624709519763539475140000594775289116441473594740338023960871404072728538447519383988459915184890884397648719274771081741729742137560294687551906786392592909782609040763160806150615287806476418240201430604914621612141488800121806658247299105945368397797307772672548666898885310648074113694758803408584741865468816884140180532166783111634222793835319717261565653179073058087921058550624457307120385372034005190499704361917312903307319730564723458576520818540552192272520431608141010154712112387107976998988344786642973762628162135783620282619044403383018784478301163651819172463129423939077018674220661106601094816295851563522801353215007139232873755821052575462246829031930146379941345735550649386485971404686962869488995693901405755200069265316047656065178810540213523083357699953431506336414072676918482117760080960026872881270231244871501524923399136586372654746640284324939775245350605141851351867049504314308105497209863342975517404569177587061640520410882977327941055714013711460790867115803106837411721760652362788891051099361567231350746684234668775755880866708273050421828395893493784787110480396509862103713911537004934970792279046054635324987764495258898222682590121945887279618039370537591270156134951255015367537590711471017646059144375262900964954894401750437348132400889757052030507328126226135328343099176104769004571579658739400969387138050895246830354250699852976884911883161715460982750067921462621831798819815390806326251908009113629009069404119959931345049993491190913801787373196483334250341640848348178379977544425671291691278085628948301846827578784904670414020577251432006941346443133876847947347390083700326109294766802451429887541397593671665051547708660549623622179985313041731942587571411711685144686993736292970087493168391057686659747515080314854344632218458423565799104969258545262043904618015520410474955713580651181185182573301998804627746295411475954030569123554261765242343000310619629765366724700793977225748988272730648686445062352178162584655804005756691508524674969841734639371037212360743883184516596413361160432046323608096195122759269260897633686910462924513922681796351370792743739415768074448977428670043148254260745242206583797817512687275858609909169268864449423037473408456681343126949302683623055610631168539319334398910503750368296823466138492934019590923385702516064078045679704945055716293609134825155323195637488100063787142398637065453041117641245127577033092421704924050085156871056092795481214340389263630186381574633182215433861861115552418599448531423026866659928964439005295369195776777257222528067426432646275996590153693023911704914935137582728137495165107905280426617283583846554825213124457453568362272829460652829077388814729563301929427337463734255139654295892549523677693123419328170703353352119470985675794330456038337611443743867495813091679726811780318224437161942847027389858917270836372582907266342506202315049787865896670963998468789071555095104190497863939561101965783024837062990778209036515133341783364110674765835614678263942011828676765887487092042465832559355492996234629287970733753651421444175163879617918167171603391554137675978442784053978519908609203337251938948254701857946546888405412565044916132117326948391527062710411498128718398623731596174254502705013110816431723060780712010318038831472533570768987338200094805485110889504625613094139069101412135976058980841914611003209913356999437118314028376939714974325542723435347979698802358094092595304389708889200276157757483452715975000400177440455001926880682271760558715190701268560258139110514751413868518190836886397216686085282459689974673886636683186796896426205148669494761550129526617878824773012093668045355112465431244555945525704094231981917183443784237900423725695618972779970995047470498330363554053560781748812959381635246082161251583288450061497262584686642059542663494039506559441942798627182324786952800914419547664391592238320814848764475108647556274254857741579205422018990601333224868218094781764561003774738526434005376127302148053429276084823342965351113585720287363833341761944687676825585569634363097752140126514239743587156126416218488509772245226469462828806851792505357932521200764631228751214719411561866653520839876630925520341791479430662730672281557824525724877562251476313998574348761068751691178834933786779470945495328928964163207973053286885728065060423969683181519285250077961451703765802670763185113204829770349379212618916070399314738467931680486102118248716537044149451491944814761958679239939381031572548555279773817370788996054269609122076127194297345841950855487501421416149796466776594158231239622410199177187293192538016672473271841058429389151637017172136267208912052393482100845109676202002690910898071527400945365003849772312310247646685910925647748949648274130681584378257253999448124073166333762553449791736505544030320354854622145130419850356750717379400437838916551016764278826283568111335205857150774864242716600334508836509691176312538948117795738606186929399194540258280341517239607041288584413373100256297761977472082838020378085839069606300394592550694944536721484623505152146250819623714733320201814924608164432542613081276928284189944047424642368355910418484338148057882345035638358707739141939916457518140932674006769410370228320071407604848877608470458704259693639482330993829264729634053876782947572751797312390482444966089299110714391191455976682685505713354398183751623802421682314730907586917306161098530759118496455560475512322633117441812539314949675441226774046680521984558429155610850262116482029937672427388843130180564040162643631428030997556724061657811258133303966166117919918210331041545596481479171918531418047602222789201696669437498234863693232285919865610922987595082618327919411671809457118746932348568495253669195328426294428179131248277136734855782577948913968369200079960750033593914309754017113235993324372699549664939211100139109467846713791682051107735961227564274656754991584138336265429771418452985034301738869462392610457292601790117127764927720020105606955158494743663155454071961086212184300035375073525672072739901971572403961152174753587847841212815635496310874515313242692224955863942378928589794972566960732928478228636392148427857539064138676958998074133370739737840981817277253373745297216494575535517797958042551318711508378133570806862234479630059639058057571373683768246443456816844472886941846509687022423181385719222966441013327060359612700017932949193357868912894367509402289827193027584728505126670163752904394312693027647732813521321736149404377346535261839690584059094283325579745092983539234365185614877302928191786434682923072158540256798015474484070502217550089202835149889769595929092749078058257283973560247853282379833696120810224739570905101109568840893697514718480034989808979412460967070337266510313972293431152039874272266622101776724556091784421533954678350092182553650975042699192917792872659379401178547484032142118275257341713274381506729246888636289559734584376711321124823966603716657794955202725003199758378856323357858185494325222558056780660814236519756328217381814866823367115655147375371045322465212731365846446826277275456240559177184051796249296072757411153507587732987378056755461989420278858569941129003755805537514980530867679467950804966616308476423284461422668907636847478232203324709621431772216290293903951366293940394562073126693496173556932761345541423863883617039920582718504758606242439247552860518994307512074080670283807977482537045264853002951697862845862346107580637967114330106546457941512893303786396092772921269199061379184842165267099927118955117103439248078990763622331702050265672976433985014128342122829105424118956023627172990909870278688176141893689841512391747274055158336854772561142053780736798647904099828404950811503261155045075416752705386213425901157000452259241304531721477684670380939141694679144016948229842658754992201960888533866400656041389672813833794221964450731601158005147391489402375839205704129568237225089524297223203867135007549290260396238662748961443906318972756207687948455128594220598445607940697897061810308163879175262889520916634306713127724938464990525481577230887841564850637933027518298779835915718421438027497805044389309545609554087600304739934621537150432120814569502682176203254825285224419973207553061383774367700686651010682553354930212752164267035537604226341370298248939335187984136952842513578176070892455172479580007172919115514899574371871763778016988338322434661551959494933944119608244040827843879130160142522500642183486126153279222540525196975853961685869343499262710285893811706664930588484372513548819546489577739846060342454985803117628258859637563533406765369217943198603279841834122265222244212019303027509680000502931106380352032934493688195310617885594502431881415610331057065299985550994716576580691158890345430109036334153178060767037503290350116168785173362275550988505414094095510544108530850507909576777542803781942969120711809255883244135710431450769415099753137976577690684987945129596792361653298922250913647996643943488890218196873700469427924197097841454021094770065837625749445662085512136884423906188478186185059751469626998927712617220575131450744563291476234244165899275804971597258489863980091294492627554104371583492055714080414613338219738978436242651504714344888216472698340811499032100573260782147094636683799725040488227766305546680911257234277827073474749876379766681059556933518010691314062087022718081949713081784931989741688985495583406139531985392505528692163429856693281582977328085114931961779787526547963833139073651638273388093055808785495220166138838866752589672670141829782248369749956135787618191993679477523682803337934750652538751443299634917837557304664732110817789379578916241094057672611944562054421161252710545582049228094753173434975052055462576970046207553521745049187459905280158717361336961528319787751679632942581178779766885252006105442266520427638167531578003899003598734610548874399270181461633137444173954308006738505754608471058201245487007396543290405253893156338711168043371703021262497598192523719354401746124881397199273621872002079141164321917681886127935003674468979479280513314743975479891086098903828488975109394833235846971387906231603798704618574051705954403150027152828961988759636899816784553690941783823004202119690901095910815806363657335732250524661485215831252855928941144227700201032052045807341394579927774053247757738522780731883935230846106536977520873518542853871418496276370584689100160060706557467025390041419309120396921200106218711527041663866770031881248620261897800226585120315475297528512552113111846925280117592756420770213587562955932104131483143982636936391054093734467976890111120571056059105897864392456811401593686157609014557873208216817095723665465101927539636470939753839681405690052824855207095969246471568900187782200958718412259098233253667833883267042771971559215024573805582843598214182659224900162273404597945787868613605143815710235659166681775245934179074649259919863166684192286924894184970167180254622524545933962782402638038655871785189499154518290771217868565801143777718158283429175350414422360616953812614921266286168224038537079544856032596595070365914260688319355614555333357190900460859670470862853649684813978867543193444856425358774254913893838221565818914374350327422494713299029557034191230801172885834611169799456433401229091382928637392775936712552491598185414626331151188136906036396293394841320985522776913482112753997772383956963153515125182702194040666896833871581895650292310655958162100068975663171088202718611682005100305958860878011007266429517527788457961435578240378961177570529817025448167389538428817446142149411100682834351556637103259761983264166705806246494963762517417743768334605699302651210885689273001875761758727084827918379053900627797191524982178015177515074892776540089811743287223363500339153209630105383121796411667392185006472317800902926567225839464130875391695236579359219590329620714084824029944988685749775949901986777737802515242482050538485629392823176240121450423584679562889519057385140152431046681395564131023001170471556327974813461893964507910703927631267947234253217170654569494603296183397311027026092923861528443204221722071476094224767293144830143349809674425710632952835634325313182170714923369791397498162545544464395995476413284703833451749522149949258704168944651777898671746940961180079429396458940365813910904124714984100337992714927263196799939623603329234015969603026687333100437013805459489806761877383147744428157235985217601305101830845951933015466409607562944354918008512829119738628949658026448700078664325187645993787700547665182199867581108634611302233285203817028190176103242460045038180417442911613921996732518823410862039862842106244235205433401521016630029099916269918317736311235593512228929562081082587962950624378752236951796158435083963075533246316977218467732576558165449380932487116462617555360055586071325925373697636065521969730340368478351802721360292576741662281660251177963453066504212785424557467700626629053493004508337126369202195531951666643910907330552219547123422923388177803345712096578855303764934306248928238356571222534697432555325003631756706839941596730608963901962300112180703729762812790692997814525574303803038118855653133449232792886755374872262737747007446657489325700832494832039407685906917775813458967130137149334681473180136989296518307005813551558008917749065659077453950746686643000451745573992467135639435805656775041487658189696845261288354949823578478256942718595889956935898312028766001090422161973526404639509088051545750712860916029534745891679514584510291591905016272926642994370730563594278795551723037696640472011716828647036450546089509624952252816549555915931197271452879778593524606914952023939696593233188642933870355914792099621567597178991102625481458482601957675769217046001048166440038982368271521235026582361867790601247079603030225240576992594765487858807366763797245124121691207546211296645668557241679343890396682395167651558165271428410580151478208663625456622638497032984443375220654770582653949358515527462409885581038192476639443994492039899370358919526123131805424662711617051993245076790844532559877543848530175326920256097097623087445118642195613370618210698507953678612933992842309565820825835008344175878046134492135325739371151815518559535495927934280393215295072707343121671372121662924453051054696849983647459906898959631823743955854755513890163645799971380941885119551505422004675874331824735757399663497534178666407918108624382223582297770749963977786594319683802485070493895794398836853188803448915896793997564434203232237817868812402085814273855659833315147699098633808491210505976543804368496302717613741801746897655465898471479376290574894476795678641790739829532942004913030628599644104752733157294494236936954063876899765591124721070619008353427014192753974851596040898136934169651943224334075320289990306978069311573217017661234522471933306197822351313140656142133117315803810801986763761642874259782795485172842845736482726841688275932391031452994261724281104985565003484371195346592872003043543936417278384927790617810272625743110625296870390678577326046054563836327406320388275001319255360559528139748361510462893014969243092536954810772573217662567225354172822440106365883827868852379647207422470616702477004296857436820924042834603272755853938251100526986343905819996344583822733556231705680768860958442805700099356805610016849628231744649949734247002730193942363689026348772934283277952792217353923243112742990308475981360636754035359178164012906766477833267813616306198855045858895061901908235711919346701197271373194082149144127344607899977840323769740026393488329612345020919441801988326016940557885441386051633752982739911807910019253535270867094671427917537841152073455246853446768147587793777375648538768756311764607425739287486463135708211821974814159264017987337074994557054878510122974933680508382631105774459445704214616444528601794354799619416241852376455083794380631816078223814751151667095767219551768170598295583276319381858817441664849654477683572125262773439597538709194352762368006724115850669470944505827319069455070731753733591351912599244739315495070848468486445376578996040133895734755885665235846136101003937766405203068661557889546769275154395435665281548460249553319320077684786074572063123293697199287304868531708806359482870914721477533320249910315005851323041393399153572885843180336486452561224957570605492636415388750489166481965863340005913255876262343295857067888894739262526873179435028420467093623515152364057593282545933917954300838558062066776791896336277108226009486587053747725816300250847788837803651166002795825469489418142753506096271615406274375104681120450995706663030646756120504950322869279080467985663117507203759232079034025557013911484850134310482319915137446362717578670006296959340089993150961046571682185289436341431795181262837559903721137079583647397303208756065249873440555296785858443193897922968226963069723949767475227058816099875445467305986332595980777372758740344721601001842393255663595602830452444576421940175892041741119910379954136430861470990736326520209909343440207577965147668980155874088034266980037407661689238023209739309861409650623942666198798850408972027546592066560597341846410816058859797037164853707637836397319836043292764843305964694168539724289353704266154652458173581751167738696314132885790318390227201062688435353695257444422578238104432980347229148510896623283898382173965942959806052053253044469260422123416408459002756949124788038058646371124162548615198995787207956264094034620031085853219197991485749641709358188049858615578645786124082238540766993131681400520728697333529272357286619754865437725035207807530169496584193063096704605798732257372971883716941490560288907730837576733687072715003092993017119039985017918751176097806028670788954861803335679537093739786502038843498667659034249719264517094357161459694162774388339872503237942040903090786426833903518085865102608799957413005065262312388448031725682337930219760087109192677873477829771387713041798885009174874097122632313797419896057589550312772036324050736905645813265686187107825536937052062833205228632793029258267860037968495067169975154889411533772492163816161082638571088958940115621028491169202196480782649763407373669318762209697010900798508159865621655340213267101727403537950089455192391334757235882858458870890748193720211748886051096484127866142554924154122335265579647228909491722172360130876558753754625446598561269755858351777374299761225875475566011544135010969701597147055272940623890051760660752462364479889724870169042874722461802303906975275266327818758220497335494143282812720241871542344301935005152166524203748340165664129577499918286170866943367770540796793477067659115198357773111044237588899282695226416708208287434067938069740959013879511191946635240700859287830394765066943634521765023571867495162562177799010222591321491352283149188466874380049649729511167050322311114240420468445586093534534323121429283846312831111870500931454918607237146709951188140803531890966755603323713287882555804883822615482703290579365993212619269382317528119366459156477507463748157675887780016258130913875264460837870247049744212861908808503836268136788184429102453635944448126887906594302509853911591910129460843648923082385668647054407545535202285623486386405153787512235414592152065021573339096928966191979533545227634707805903129566394153395322236184611459054997750713665337621205950795957929362445553360875150012082843861832918457480239442922276874065782354937749442876050881022855334061598429991620506552442721223112983961884859948590488340453562822661697982420226880827735978875760363872852392965498040484128970253802226846328784478785820404150818164751862434400164917980292766439594058394309284653762974678181720783354623822356078845571141395656139213297980704002655762440038594369575111729645818895624660041134377385521028225471220842395657475448648809916789261183828876157529152880808656528393924595949628547374775949963655477941100795903784670906740055456166794490648395456516731599325768454198836017149954227957325429830894997476493207601801285743336174092305595370044731757458271864566863965338049805107525926310123166022928958595467739384250446486916274440439475258672801880504025473826906711437006271944820893993415381125585988992542717772578474813687899905173841044415229158434267642549512812069798897579487090652120655862015961283631779063515509148729572448728892132803652391343150143850156555344081521056082838792662520825503663822080777691026826683547367789626381050485259000022025681964063064517886602963123869531546601077720770509955541483772831893860165504641049418281600452075816774549162741702660086666991112045930664441171335130663941729475933062163658397059581233387095687045800788475677968007556973021129214262160129362618450249389962311436881150431756963253315405063701090689238025190531335626781545272272343237146511362128377580109796997544394254765000929146527261372238446892130286973463318230764158012943325197115891463552344676935492787474993747569354195510294446754575829886450440363060472179695962305175916246098377884672475844716609679212573738751685382336881120625507770819566605897578805938115898291199976338450472469124058818080978899998566617444325178196825257416892846995446494488113113487357844163043565290569798003479931493476960582170373013732800108689625116461836047823001422940571773581236691256836296900746909412335967574782943455353983142879304332341536766279102047803686667729542166046961332572671749603299823850969440183011338580269377712246221310261321825394544474743779663485885368975917214647708412502789789757548384419033741104179523762876977795076986559530682659225138842691936306692504999645925475774915365531006385824261280514740919279248308728940846177785031203065948155405286185141588356988911862878536622630134936852834663096625827306691350611529819396000259193774736159024066023635264015721388256394051137555765328986476239824097117833197224217811537443355931339638939222817496464519560903599426289522074014960336081275180520261370732500574621649318297250107260183455814437420868964274153487805327377406579343818117263839451601979329323734775362314425699486089745799562376149758946524788961818136894303942663723887161520254339279771066196441131529500342400084785806053878479495000484826126974829489874791318748929538004332639337963486294356700788156457172655861599463746480995565116112311243403310799563229510456925172229620322165259192329171069027751564147616501272205561947525761975403972851200914821292040253883049846459912316946260950600111998305478156559900723200256718113870549191459617693335864022173900822900465007794764420295399400947679218487906058415830715291071991179251665019593007360809285132604478998712556076688395082852430894442830764389347270215611325599945288207811696420714188258173428353393310845429717967595182727915211233164766477083498841841555789310131900019586187309735637785716946483405419828305027965632033062311132902472997985225024878516132299275873019029270978499879859690962570646027271389592718651309124125298688497790257596542318190963393764954696825333267757089220519022696215431446789088874008091650440747551305157783072658712987519345494509127803196688772248124308805115044979079115770249509633332971137288257764043158569794318293229712016213651332918203266552574344633484253235523708851303739664021235169285178674495450981367559535574817536809776523462543812054426624714888723872927733629518882129298149761708058765208473495186701437981383087484626883171877505807237417246125728681938004491601120498933266649154990014244504912903763801982280831067225591928901300116730334440480298330187935682025401237665758298624694302492645740652564550495944997033145894961436480495388601329182176356976886927447080371514015062924018345806673540817576779298561442122102057635361520673073013240729295733953075813212634755440709105751766173282219400867026235041571138922628153865503587183017460002972397197970855132613316792889568118934259385143788286607124093410470715990155309927487993789391311910257760994549813492495683656565097551401700610155436425317368517930711555146634634152292937056665713532285644546205118293641614079560370151317925160101030630071174789367411572976237558122596379397505341468374654088586907368673003242434477050111368656060325462959435265390760574811830931395317111653623048793990672614471536642268884371657564794269252299840547049006583688066336862660652517125831718351921338862737289063233326534889943925533406412612903159949138294447704983854447165894267550458147299137237279755109408036854089000053499099302277910588489301254704573804346351759674656971106856859239400399924566193639666339952649996200366696557306570867739051843050792625698741652020035304335686408119638691212639175323180068088611077931817189033507381417277810274578785723957211253270077007657356472941531128088084263397659862784024329686377207271256481071500876088596699114797586894703910793429185635858623537438619578597129223215519797500567356521687704731794662145240322932054531461254003097294516536774266121995879286665092964828070403375318524569201353606158707169353286656271675208841466014996005862463262846853547096946766472392206584081122320286888307080337887703676135138959596478230771378687090990502390559783557477373007192691696019214568996791347641248997669773713759875227131950924822053657179152192418590621660849456896388053403394876153473120120506015813769474192157074510347057506770825690592781678995777173151876279616975965350460996381727201828579380526251542015359712513514615309153966343219272902275742375772378295482064122300259318207857394892611982071814718397782181615356781231818594949571264359337216563594295012851183229515199757312042089916474851697108249253474805854745359700059545815562450183728490075476640516633574909501065819018161742872794733527105415199673136684410172924900444253016784143416218074762920523203610419538146237014885311355234890307020902874082608669229976922838211150656845305650328015723778110659008034693870538770654303177345941332764651275920429106758073495954320859499990631934403251154354837006310020710815977973945906353632710753401641031199411032475123582297136026184295262353113523535827354616168616585721682871947557380354010368942968408896536735966939551760978962781812638315308927532410689206498688228099786707983037476422717153942647530407523547405981667765453944358957046135637442904796730313606666874374839109830432864841737748349389191043926056153321117644534103243911477242958423947332470856394238234446939632371506306062820716293675980784470366670236733401325244187126112786965034148647627837027638113422409278842905657465596342587831070836115436621155098220574049722414240122291897254480426760648910136198430392448773417250397104471220245664518093148479885988852913591836618723675175630060081447558212705699917983889086281291647040934900900849347735618726604199911869058713681363556543139241156105579994763503945929732937785238702521364348296485207847930797521745406912844441926746659389145640141622319349444292533416170318460010578472813008311191937008445885724250867087162635715278850317269031685100247060024449650722636777071483468284927871108438343835636775234366669720141952756119340382389414867010051357318106283578353927658959697649738105709294743974690660080796078405571059148835370620707898046583603480936183163151577282836835235025634371529063997472039363867490954533240810307072974087900355773786393187623888719345365069883649119709314011531708165038163013535588023401267348034009889445689518010885448401954588299830645334602451235882857687388844058719072577995015768895273025381899301635090036324902774443638040686009361263286929881812804946784655041589567332132084798498812998987183574892550976781351796446030595265126857569869525653972487737286957513359868736469126386573203597677479723141909459298094583443300790471313859802824689581569092665343910671333794332732653487746892983612100823797264859749898032579698188944934050083721424743376299411830030710910066195855769780093216784095206583296041461319530605417589653794378337436540767244176450941548478705401523965597469928997900143368879637818858299727403761403301908655067733069758275240934988687968724662127250642904308113560074224136284123798340888079264452577591844580131399725349082861957296360679923052967769841460872852679350846807260230417784488019816616626186142235773451942643965847837582420807405188044840654382252759824032844345979452225141371442667567581585216251331073173937933434826986010096099503012723084045020421571351323742348829252709239389427268046844577924526768890131343251000908151903488632890563544253098648045119335383307355059287960916986294229357995181107772378613068020164491504321219073408239066486933508936827386089809013478832619026819432439896438841503924468403781965924017440659822985528543024729413965717871420985630178282473064059365534414984676283310227600860745077613249386741155178399467607389922659992759047286280722503331070256388504922961873904549422905371730345431250476214865393794496452585331461522308295568904414996930915857848319351446002201188317793279233294460277093678248142721499537805961088506195734141554357108994932466407541216857973160401391472414886765409452286471331244146575131031932143925483212615834070297897703091599417484365582977810163497183818163224480209284284351684658244298691490586675391918199542457825434170294430186536868825408994201785404425444871703789167247800920172922006516126358188341209783423129866964803877749435020736891533469472188563524644807601040923732633353448645391261147611994405666443447819027979475410607142414340917867626756765542774821588549377723874115955982777434832751340911311548513052434818977366381175002698093583797916684927184197752697216345165783586367830608707116585972153799905918719011077455406326954463117697248066018797507211257216963820942858538916146389294924027547130570982885078327058678135032236751429710540546935313722068257095773351547006156961113973241514077127045744441560089539039637832108587805507797321163097909466865086044166639278012429943719761792726989708574302595684489593266809117594328901924566782301609309952869906915618617048080584062962882085387525905076952140306540055448649574817002894681751765385038695010348915849724921892574456501294164341644714812980544560778257133001928088324588232249498158366096126154670172304662977925784398416242713992771029087257843562751359156475023659360230882216857406730887763781088038572022853479470449924738421670185005241384862707423080909043390254507282370484084061712184707513862884885184945721504263997219224955607749755137728567850742404259473337994309340519937002184463279696173912586155726409079609198090833873491205312340734627132343929141007949383268973473441663001265538956648092057907257243036685441534719929392530689402120626039372748228833122954664744939852505679646374337536888591384963709794161656365324851230232969478375937044269456918300977687810436702634167799776083047510201698420913605526365080951117570111356502162477238111359821754632738601778890690815016334754638002609935179317881271068972919716540136180925979849561075430753266995834365174189746031117193264854300729923559229428353210359614035645453668492003738656250831616183114036876550361370839728270077464582895818426083105576660306692047546244567455283717118361081508461296846379516337788702618880309515043639421396827471295937981897067345182932503787724043356006645611373442556971278539612544937054880614795872416524773215402892115097521655424069135094704318724785577358539702180828425079301952500945971690043653284232677852548717810272258507033296252450807544628580873029443081480172825930660723862080222773343216724221866797551396351035771101617807750194983156990891118536715082036715703646067714071826199122557554517660126394979138785153596536232125353752095230143760814942294737070209539491829760415930927189779331725281940137350405156381783979400504869834920636563404116529286798864891279386886375578421271149296763300898774420726659309962553273426059285451909504023452368468157589903889352180375869881567207061487624941955342933147836975931145282628944994509906366028552099358493048795886993415927673126341549806168895673235357887220873047573784690008468725095625795724783373724643419477545987781242470113696311942266455022492635670345528484677265034573376633545453361851330873442462247338412542854768526006380377793699356112633510302079803563628201883728234736555412609309492646554046261468836647027368328076387074433427300764969863014939955731368178048162826678979064999675372136547717149751892582996055288039898381611397772356197128845647557228561659913374515693864549910693754948132189718411993343219306528988609739451489367271814272826279084952358565562838195515964074231354275554493684839474881083088075299824098842766716262979321954421840205640361721348025001110753235067544920258893644606799519681671740320184364653364989702812899637509539914377429876039528961506268269311430182931410784937689054861103540537236627701389417559034802855486835897982930491336581990120401210546259873693096429451959333819895635798370642100563170570743311288965507281677436577300301596101917144360925452727041689903077106895196075414412582671137234909168703790346603057409943190174678823449334368159390828866490277005959236176484246267068061236763351986184857050778604671238737421311213640813133860443543779501837923094399256519716784775244080540204914366558320398486562701031571990851426379457517909784866090222602814793188515387930010506196861825526319070960505375159372027807185678225750088356209334568596813420472041363098822130405864027880015022235591210983788698912627345933245083699652738478493324064124444155987322737978403962862748998969860943450557859713240940542452467673356392427908041510578672026695113767933429238531140777521223498007272376107937305351164402630385774987715115723314171011122818788621668344300788941545443352214174169013082483440414848496291178917834773499087674436889096625859281626614054159067282419287470084388420349595328119238383813740516819460378467129680305642222101831969454402837922423396192134067638869005166932292896081748236449108278833470785480552213914125639879820218984494072546665900505745770637911326224297110303876957291295898845920432080230221075095646372007838193369027761416178306147636198484561318956277486892491716892012661913218618703167123368668538639391525640779905810280618428287645659294631888485148902148845092083476191572927648350002885306527084884201661325053950541261431071365541648253253927311883053414133505098289305549564843047953242311766783277218644173419810164955647741059919002056150262349508337757879908483332244752186849131151830769579884098201689785513447670822456986016088606331899966712066184489600204727696581839465086889464006244928980054932905911050903071939099847977938937480219588746024083747508756188466849573411023197059123040518243607951493952922817397986404530869346819887222383418805160803645431178206164425971269353724182361497538784112232740804016013349167417948799635568573022054633606294636059481279229367221130410521602201060487145220785052343780957595284719559619969449972362795768081083265278408000050175898559643481633845524662299281907557663533863439886267612508620200525904714133084546959980922374329431580105576091461989575137151572038630412778937580955662264440660254266803568795240706795308752158810894726368742079191812921354394342636792882493939673443872839042089041249765518339204767744005794006339648167248128188811187145273453937884301025612057372504695875506167503237262042257910643566361623936656793283272142055650578515989787014271192829316178336867532969907092686898307095000973454842272060718266424231766301822033431736312521354102977315188924018352573390325611929992608361540559687959975226004591156326803636507465882104898597892471641464359523493657545961410929698086062154697358741398425478036160080787282014506837673833300735988073740272290355052761508663716908809566754762898232651131100934870863753140847974769923003516042591646120874478565857732315947137468332229471753056078488788827542812323554228771562985304792019242949237603352904197344073375305972786088161961622740887443196941811291178476140652394064740970415862419971479534301528758793717621924289609981818849171130720671080495473208288237925797131348468255055839448554178777190120438437041485240771024720974068104365955811603010521767024767480252422457485643261898789461586616291518136888103062488209945443401616494310714194370575849280787637558236324130182619059482966395494900285074207091773707110118180635820349130459913299967456446347534002559140306443824926214208698749423660276848504353246260021983270905530784541376116046353190925502676053725294906992850424671827348717295364195354372901513146041209358960427144605088173702409155460858077747801557208340065916040446858788213238481494219320219019448876774859540160505124684359983846118910347235656744277004568632115257763402772506418626663848108889193182434940855943640311475414987955242819774481579205351298194378470286294262003094457220993435893585740678397052225345467227890484153291594813195680737053559129100423085578945385972100497023940696411945276039292069684010258620835220002713409071846669781671739829284827823496234453725506860048071464438827000166395408129517562650809612908562704705924152936191716774657417060623391892055404830241773247443880738219144876843174203951418348722280712270453610631297969080219626099705980012520446400148275092134024064296090999900021950819785565062834376558084750987166876152623001836607174930390979493407376891936954683483396778433959402384070693358099773153720435090497363433183973114532296132735534460064993611208270809270797059072341991442432020507180332071540313435928146623391999787724610638023696804324253889907836484904531174365811404352854126371624207528819103002944868569727570399981864911280720050861143628216337105377342444655800232586520060539170149199329262036487625610786537086617035837408229885396043836631443269150342221212554038138670792269217516061945350340406910895347483712745236411710335422989229038373655954189047517050316882613200358656429765380976221823220348728412287979153959997264594744714053071500014620610819574310419849013321959126976866689281038854326905090957587811279593159145656158770155310150935919603109245706571877245052264038051292461509700447307911591295625997929822437891864412358640317257193097906018042806201605218919532252512761092573940758386511695886940069785540603373449576653179603321766005474515705503497820515562711539183117775772521934617754295721045264751722329637204973868249004170657313929811410326535267085576277329972643809988988550605407995301893646633524300245620140291685053119421543280104053725908835115463145296113625780578281729327592360158395710213479741514182477017492922991650135846183097571558534005999147374677680446220696330192096769349429771877306525072598814159643468772086819796900623215639184094845342685964422846368105857475344036732108028230828028215531722350671609058419766281185947319973049731940919394159659623797658122715698332890479904586125648586697693110891749247745594567785996866395861055304610567024668026966699905652968161535909740418910609507577396535355480595444501745240277348124619423551574790682082298496523271882276009478984239459455319230335156038057546583706011921135090991467039105658271997494125648283187965872626810884730595050531859211404776748272721756079591262716415350655173121393378370632447664610479798509199797177356872865026020186111406344953225833622569521283991263146861680872340911656547109408781126884934624393676740881098338293945360892014957408921712820023879653095105359980151803099591901382639591980634801522800998090418369950612806515442926585979417722373577327382616848315600009478156861417312198079665912659034212109553895952513062642368907235860161977297362984481839316424963008219599181050792021247191747472393086127480527401197347052253170324846493890615019362006265219274342622695039125849480371586692575971578637470327318877148426086749396614790266619512930341172743026495484907966619124551613864703544765703630933187035124361184410811806672578857564490864499289941343180295495494637091739340220390184134469811821754522860924627596374797751340163363151919028301417426780641960196956392888139845211700600898394000731360320673858863902850765090862962335172000993807353414627423148378996118600534290649163307775369239371561711660312144139567261514671121834369551729914059317759121541357092180746915109115766575177970482102882970613094656457400464594084150074058070054267145819865274116870975638072713264002722918462416013173845554034463613006107015004879874010430122752953182332340196323315464931084020443209600194855136603284869127157198682589150837519603600948390363906859139541195274964104309438634501683272956047059727043817490978489441325041559583692386695933959747311943132674562093954969006420551750691033680279204257957376557506207895632065412238852570002008457921401748985091851632505423097916397146235521482899576988987226439994183219830116362156334207172319198146561063402726407483222080166355114014004907835925292413298625337674503767803860136697122981703304555968258345379835330419057064710124767882652569984019544608496311341378269941372381995990081296365115211456612468510856045661836668653599085357280545698371393337309838156418487087944876498482345865867062179941005134664137166213724143610918620268370621472941542842167103840221021785075981896162497044905399044574230795690192044215923522864534692028666072231767733151565998586573933124040193122468681501276829432116784201764446676490153497000605306269123712333213604679707760288131173888284419232606632064807859926371140379125367287911505840346429416768160495466738119567285912177090140031745129867315878815362157532013670136612697746630766847321126206748065942802904110566674725477352822070365813300796701723550145013905068321973919570271314384485882536766647603751344144324517338370320491525108957923871847389109629598835054519744652627505866850560705814722404510118199124272826329415689290950163577063633040806640009962356409618724803372856098355578666158616902018012548965246770268602515778035115454325280135081246425162517868247942303897449108249174559687369512183974553422438100648509156022318577079311701184630495913960954926828398539913447165547954321720719818210934399239627062700299619476379438308503884011477432271371484519086662605058291632520460238427914793252167913194508955296908900646294802301736630334390741090581915765340426439538973451767469773309784408344359768789012954109341915828646582483147999061402329590982632654480394218558978263930369237285548984653340484566720561236313479612650321940457346682228661325641568111778810875007653833353851950121403897974354743759125652183776064212762195553004509190965756259750321691433402118012497508864322622810435507052798604138445572141067283473229950092768221159104377191777105190375945747301027054159176292718396060762989238055604653811121128159757683365535810430535342455427894499107520852977013938809963852449883442342272319489057972902765875508290143893628828876766744570294261321181133816667808474632407860042443916043506348291904315786912980639476227336524364082171395184768446760212113788284741178053875931316266016009733365355725302263595685975872768901309059335628619017600011427870238220913897768533664041487911026352472001966004942889622890067698754904159166223698505972025916822754840523971733403099821172196116175329625796339183853860603226870135777241707848869487119011890623828173816565862936962777875655015034243030090169921348238206812202099157094559800492549641088954301627488682678376502478852678541498489424689709617086178309201288858747141202174590352724063010176735406517714428551635612004652216866917753540538916292928886286847792582658782173181207886819157588262164014976633158002657072788554799432147432610877814562108494426981170039329845456536863229958496809504880461429768485087379471478504214021745190239243120337009949074373019737685978692628882390662347079947955410710364815712312712830192431491742990250284839920793484434354889846534603271955468996874817809473428698865546641106056851779864636414269563584083382357402407862815954510642102080501467304680030457255292935610640046038610988168690835864988918460561896495792211778405442456155815294663564670995745365300423538744084037960521117703673762833522123855148073070010956726479560616355787372515440188111819145172446358383203790869854077059177099609796170125659099247907463813067340241357752585102766122007005290253017140655221905902017453829187951123026465132778524327665160588008619985174265412367381714326396129103016948770858871260432431804196575303463722798034829452775870757613221100653236316562952169818009373220165636283091060273361265490615245886888289288512200790998211497223272766659023784902458069254007082378526515961116579873664769213095912354859405534299038402128821789766554626642147353402380477091994474592597824529365786368298538379043382741678815614289724210086189386252557062696870819890091708708637802458494724757152229064508601224110480583668090860918112048994295616148959210493477429398017045901605736296885890493565226726369528445596529656809512078744702487614114243154907225202661727159569690754624407339791523694630814575705557855710575091031580705816231078595837168248062415420024925254591899837895204440693271988449363922442539295614340597351955117244370121871312968012671234667872708982385486657911139036534865764673702242276147798099230950089265305897735729404628420525065572854875823250921059789614755053787800023380059441681721787012854064248143978125181668495653110836456392164145618056732876310315828310118954719426678986167774406361056360912686142410932002332893685460501608147734453788657278873959530711978936058256168436759594413804286456448318416094975592813359822844882763479346836743881031760773117770002591564516124136232904775260621328260499975650008478238171032509609371670254135383590558642628827275539801861627154815960614837694639152574676808856678369809090769191584751476757826457955277017658400049574145573153248491435697871009719457035631523801349469340852870365851330756398432221175100416331650263252582474627068484011174184592143589077044167244195321782406070916329836758470940985405489504632795028133298947501684126045914199787514002737269495507296707885655034147433284068270071780447319377739333448948328107713941618526631558281404500309583737847520259605804445551279842374102577762086956106816056789576191314053658873097088765650831567644404029249118298098829362358342926183718873464012388334957747343127807542533313396013454497271403459020275756136298381008912853072144123024967065834867866640382095404510087630405477180269023663957198695816523853380139378088716813922288222746348810465431041976073930962764324792040192471976113367436350786389836520978421065167274202239037218426008750725468551882923468273223308610557967666388512570331251652003837418513559528686492901276800507480392223611086436796247384428387501328343981171901670056238913542052186829762361096679640169012166823410633201335937076800900830622064062220435870158512619792986906965270232664752989787065513805692226680548161686402707577240947960461204807256698375611409232530045810789044515842426064788851663551667102789190334973706412795215273739483891295488622938839256184213692077286612658255916147160487241516701639249290726181238181837861818430125200220863515797690825990140102794985717291740410773430864029301231032790755466279110651879508574090848717060772193828328448591256926683783951050294027697858423132693033613917609081688489111649401760053647905422079050174069416694732211602694208092627275876724108900591102019499041619427873228965627565710003783183775506511332704276309401673835686486095671327715743294237294569892076226936721051475213588447500573723554034479121297290360488524486940990651706674559083531282824879513320506822115095124674604407888072040351221446948132214508279417251008962823998174103970905023320586131293295216415208766938452085588215513648029867224367159596951758804566318928599127944212599794682657584339883597933630988843772439959357365266693020966215135507635410946662302369315183441821707601867030791261699434329886887631076509993364781713382435475710058206821006655982040318171632290372638585885570147745148682822112773255581509718691858289432256051605355522430796550236108618519464529995763966621133485161179556271279354486838407249440931359625146958056918495431432986365790926827426582196196759678750123991255890763569597698880818140254363094983884007977059110597929632284050328147392872165064092216491527663040727781031937358335210836042740181758005788426378460605235513536898767633029351137143337503414837752674589035519685738291890511780670520743005861871401002240870488973207160292848328487467912201040865617368790532062407533194577467827643638611934201238492091432908263421270037618941547932159902250893477023567781418958571878905830429229770947812163105197407197697523975325659705527429216212314559985185643806643482459145551838220442157656623389712497544846733166582468779302526886445011975645270238989512876576637234083586285376672169983458335524116398685571518992211146040182471846166857408157355339754676840573013875273811914912544676290456806558166172884324759597064447478170836210808611891484160720150657285881073944096882613971965994481410185611536364294175130096665895859292767411040316657123743611833562759730083349751135402847944767867957930560486725539751133265988873826994173655640738780019391608042282966838929827860352584170018329615099281765255735900545956338070699679353311038732843098777515106604276299366668615929724660953880303567989419053158701425167123757388688088021846546275107752939164969848986092368843365847239625996069545439250570393455642582701228277468205851145426257893162425603630940051827952082596638195524252608406858578564573816348805625499667965566813601545827544754717859821976502334979236237535128887199428466273500318957526328015614644810070360450505684876588211850539688367021646494732472926675429252235645375128685784046794607914091105466601149425099587054269873230457167453738226114428883578491604509821266270859790777360328377729873183357774824546314360083575388060750706014487928858573007324244487128034161707753305961669019533195987346550160376140943904934778534124540680445452407108130343651311898396334194276069167705591436488663182005598646890085076552044331406047803246962810503454348640962891858258309980754176378130628002155376572800198327639294785648872152948960754821831629507054034096609019226637480048431035188880463471986608281958046670984765942750520661603326369040463574002807613039287401720906649520792646126073562877716483612571900865347061863899584429561286623918057576269672613470494568455470687500047460559227333789699233644219785994908963694292835664883370689495195983170534737742274401006983377812958669897258602119297336945073466838661724876412694555938439522392873657002165461398977234722463831326645090610370122548579220992093069198702643649815458468896691962722833746038277845859741864853009107825603165062313892957083501563421579192350880898690149340071708575576244806946864650064612500223326215332882196622783246554852468066894951792161812197995468305856609478600251190889259811861965832576655509260647152044811934743800352335698897677497511781663556184068469004315089260977274620665061307614915046826551670866090916885364578345640676524484295853161899033319054907881933912094064145802980840170509502888403999957463743178616662568896323765136638336385298571660616613980311829820918224689579369529158738935651576082622256436578513515044843348948370694998693652285424607244977587603960269349738620042150760113293161593505207827445765959569346811695887015702404452217064381328100509100748856051735570564658348037303509807004468227967398876995567356458905216034905001816294930792727450695743439757098792949136243883976682050804294838283643679854357003870029581791597859430685992172513560737559572175484851332141848052263351243402521679986100979866944268110447058764500198713979171173505676882862313420230166712732578747091488594846048186914894361357768285749559398595453409719662095738552312311239849582924762802761130331293352437142513228239897263202749607275916380258481236419473166606350304107516273980877786194227420251413895909977715063937426761101248688674327984101763832540946503143675840154673603261795444951197997185487057137987531057092727885663481016468872486893563608331901676659808061782269885944127057521862227205067352627581515531358721240737736629382458478791604462007019990214088265262141587523533420389535915553096059811985704870801926909802732205989877404414136256067945008407480925607763341345116481181831794540633358695693938678706565222227894012026919336574842427832837025069200632477354918477917177766072290849984058482589629778381220475429951197146673630481586924554155664168026626089969864071665756355501017086167737327891632615090477245282646944934690776854062224507809122587868022369008377642424302879183733984493665780872773968186507504283359461920865346112712298823469196146524140291681843848045169054472610241189547693869510294299527122719765466922525911121466056330490278835267410097874451615446465017700527254300756362875219539690467577907848418450735122580480571561029791405697257947471894334283681264349705750497689892494428934747516327593936140596596033976357684210847677106487349982691215813799678625105072331528372353444977841185927144114251034585098357760227221325663847559027617502798007727994274699460058275328286092960520230345461835580638518879785436413841273797945395688355467448589490848707724641415796919046750409737474623666242517004419617027552692280159534595184015357807371091060347630655205917824775486473838084796153104890848483941357674044644395331350487372982736109431457822493670690372551314901706437820349501086986509440106373542303419367719831584641600150784918982055020090147650855819101257104069120596071874431566828124757605987155722986208872432511913765897429792482887349030516448659171607142550199432726110387252196276094066859424827475597860274565809153062206051883331980993799440106096386563216286494695568810907850392315530750610395440551448597368310280473052327527460150171571288920696056576902625062953514755693777243386541162618114804911538210568899348588620240549243006126553678924801707994243111314920639695118120633508666595522321135062873742902744195710552883674071311716846057766469527677581529549804275195445352708499747636019708819162594417174277654367943053764050561013887524743812380267328811075580739981567063307719498646760283651214744958469341580105094855081678074514124442179374915263996913372791133517628517828388802605422201243434603329050917696149911896723874547483059200904211069825973430458603374272380359740772371597519681457158596545696992395209960178340617742194586791896902883428537814282143651891271843236346367318670684070768093672358188544599738017062740473828168701858907532031380129554405628373667592532064461779206593024967518124582275556310012830731636712859164525616323708533047744062070190034808081303999817779394894011030913187051167331135165157133482735954220654121179739714528692541650259143102969197759965139352521417979857321096215295926847588739950072202753249361205678391898008148243853775838739851382999271666505789391072958663031906589195566886677324200529718653097517614277838300704971310032710986803829240927405094990407990168720615935499848304744108884075281663713037637929824814873355226986208791052824056216855352635521377883402401240156878785773476589288304283514909245858620502978213812415709378439683203306582297435733346180494036065909506707448930063297816583076702278256487022157425520970430463218420272644195953447204382315800359240453610350874742239803108824816110747296590792480092692789785625011131559760744548697143437479464787205790074307572863878584000412105119257212037957182152231378728377618867160376757299362391199728191505951648096066946013924252174265439989286327376935275591533418891064548233265739599996993295430995675786700054392428886801967183634501368223532240819909940964697733891135345327927726083548614959366316752359532815045731374013042904660160243093528508552013493910923752361657289576271390467767616548738481682978812698336995352459940183836307031588045111148305196716121911846778734394999740699924336017448309573317844934911218044131909193650134204668633228916373221463744011593900545858330788644973651328888535576713855151398338855533433111701229569797703897301714703624785038051104637396362188943700521783537220335546693590709886801740297520037489395948941417715587695912140653830940652578747525439753479752032740677131537813629142556968859098433622061207419929259595913730078572492910785454498782321043027977754017177239360647018263060731565198146831081228651327357811065064919125532788381570787623960185840680773776703155659327893948749570741622951317223180971724991390209570884256661752142479454956430078263243013429067510121256043768531799605757440713998410265833654064254103759412601780564559209318725803830134212451742830515805811773228560713549232461660865057764917947740001458289466689593333432412713739072046180312247427339944983068278367175914031384722973028821914926005613473824529659030559987085946419415220704417014368230334488936640531202952556881018434410364770578738715083762953206325179281205023275266024083370291939756518207459326499739956523149329379125060235720717396178227101446779460298078857207511976773287043133649568643845200623851674638142281941671566909256574415771162902428377219271051557512778762172440465738684808486119284802968349773024514776573555007847297918244466359733411614932419769813830988375930138979629872943685631500568850128429604172337998883512487805576991720390844544706171483275850259385082852708436641067515954569084570644255104204205570205601786229989999570621857079154399791312526377544274253660075864068548591578774915157428647432129292724131278352873323725448589824051190682590308784733781000456468812765599183655290595371591516143267644497765369137164806907767231143308818517949716164475546992018437511255451818355447141469170785592259083989417356197202689501874821713357448977117826771665739650395997916251332817270339257254604403024130124786604589861847541674087376031684139575630984241314858876510393934763833664744139294530713407672036512369459555379472910568070586153585842462140691165778946794615113745239999121041878172626828515121540013853370773782402621921886341580227959149844007827116178472927015220477667244134443575625240124769831060175847853210961051692123742044986358812963906498383261082625979696510648883498430098363827857068780202114207151969915911358324826435513725781379125948559334525175038321472633875952730629925310042323400641777273298875152376580317106707957934599786250358474191661790434125949295725092417654210079500150964745946095617439517273381902849472260872026716661471945369131076733236744466645042905184275654031643050226747486432616262371165221358224470585265976397497367733785729090571477129710128094152477794248434523697033379465646723665828137834955816819633957713597517700328530362298606910509990963172703413145368650174144495159811646899165065759540964420412981480060249318870529164811047170065587886070459715126130242388658827770671225948362554175388664305908945842470279948811854290975744686975439811920206492438062151120057041116313113981823296121548962750496864548246824940502800463706966264257778631408288430233760443335290750090897359350435965923460716861103285060888628095557035502821146441915645410489096811141788017574298364383327408614501009822923866414427794526498489239325312826419235874128063429467428502388403636002701551174519091413351456258025299869976549801229798636028684498836349254297783834135699384010528391277817885610148131409125652933491728549741171061398981998570820855819017791641154000618268943550455792721560540917844675672542472659593083800616047742354028893718056923055662353095732415994927729174430022999991615068928523067534466121661748053210894553745728357553906195797901844758147544249676776505778235819819864488338361386294305137547193600003640628637577718254946261220167341679844297725923127215965691818924555117063617652794847615880994430367460118067642943636937465297159284230644336404233376846964607236542894400783468047986085883058174253529118272407516550695471471043094597179056127804471511635186206049788804623392622458999927876331410140524565900650386492493098866910484493802517156252997374589869569232384673425369228390568390082523247873789770618195263544206355427372281548733823409032809456810619885053918655589399940657941936007432445239957826955975814457049075288042268453420350931081614945483378049482136080023755391278441067466635279145768062441839051659035528255886171359336615720602440608388218472262190865396662704640303700025001596492609801501923382569752727208689568137540577260836477613086199929027789165885774263916882676424293745609300848808938344238035948241982492408245464630122522361399236873642187810187279634067648555869923601909057115271471510661373206120908243383411090876357839356240586523469013034180884036291783553371943294812158247132118500174340196658144727610693633246389659920315740367938548887486448306392443870428849189271579384938338989198186376494124592751351283906253012346679859579971354270116204863018708508085442796099903066317799969740368771254723183566335211596399481393209314330674429462281022397903947886987754230685242597233107816299978630804664549648315454151110264164439577771182011577966073074559587740797884679319833934224895446051916168346023880764389039600876791336347620085752802302224200932858559825562856181014750978735481195867417553890321396349481525612509699612782086348001565674670797389291919458757123643667105677547138052377513141797082892145195015545825892202150842688001733200826076822187287310478392446583931833429770032921663501074900128317543332746769976713410103738199126724177476027725321167927999938245574312469297887546159876380053821164960428185240974634220710380032097710046546325773948044417083056539093331015057532118751094623096339030735082994572136171273899830611758964815609090866823137330784046393229424417864781288129508592492923532155477203349509897172541172968981638214783029668832640081004944053466951735481178095038826253114307179400287427325948499315842149107100710428235273485057418928440896514436256726570656294346901433931139196442831247520802766251370848412652900758572513104439867264659165113060731650302144757596901510292366724746244120078965604881542477902816694197380909039857455318287256933919570498348056837037926826847092943850157709310482704082194553654125057158502398372899105212113511541442550243370707209900860271917787755365263006282934030498563970151424788303042248985574514905755223498134856032879112077379494129159550848479161064318778103293988107965502656226149153853714413216151662251769165122424646101087255475068311117219578393759468705863441637708465318331131248306558110153844931159576856794998214684648985856738993580617666663968169506665334312081830533673040647620790888838167961570763531430920528393217592374028881876255729252087540719937272335974719494879630656717226973216540958452219351099155515305310422930715990038640381857774638171841264262552653514794660998241368215836193372331055166634524370419071443505521776488239729228280799091508064250235451374297542470868280435012811119676247538453239040647216730617455347760168262917955889280090456388768358599021085715345507746682257912359847593102102645483056827423319392599362005445264797800860363477784028510543803566736085281715447850605798852279835171592054906903573380667339262729502034312846299616929222564858888296742878944791687215975953836574160485508086772611376334745958868347411221510908776035929105932840386169156678374992264111724476828389096307523184361041149065994850903930410172372983112920616962957585905580708677981750294608837877979149982088687090518608155771016664217790852006235119571303316162419941305636205216373202671077774970282889883122751616902153572708552289827346015405312373899581178782829594111021806771464294149068381515871244378554785025011705842475644244851211635307090492085518243012957711632909251179530391440299719092940128958766385957998232648692186439994315545838807741583150947821295827728926740899253145198818578328562404006554764596721045692948219445800917937839716703798868844183303711306462371314093943351747861413067712462710889293366211088606291976774763362035441319512828913099370469432681012085675653030465329740439815679540949998031330432046505533200996485644869853964973575135857372183913948126800232204030161260490833178997741026084715149647534930222854582663583232001714319394529340256121656189414633557749112275256430336597232514172317441882617294894064502584210570673388323999619120730893785228130333169667153734657830027527668261796929996221997856335571696672757133749379310331143481099417232848453680473467080077682150797551475761395060982930437740161010200959184730846244731197388416103690730083988683526243222262149490895820216908637587319865648713564720759486258967487874187494421817097712045136664429449259701894478365296121050299053704747328590678824783508117517540707107810664458049084785656627710400424413685403173847874753857791427216182781871607526304616652194948542278218581574009815851863406795577334933041516258141824100941278462311852660285090655788999665315979428949765494871762031101829663203315774499807178003123832987732262562753428729770437055229486226186343316041611592886556171046742187714060885269325838755983412565016959356194765763661358423829212113409567895127103152808825987690894691409320197375117328387208546249494177002871274080409716912406826352914645336235394813013191612125646437843417267959011492565500674650737750165875900116888289931620222416135662112564787055033281174233555925472914103152284760625504587961454053171275536814269109363684567714899054548353903267352897935209053008745928275950122867352190652259717057253715049885683261012184515001754132720737829782161424334878079836119714224126770752152795201433302618850227384303568305137400025432709948485758377771591116972956369806224112893067908607369097289446081696388094651331152535356976919325798558923106316356692001313390456656599564173039753664157633215470514417538265999394281203047514472232518249225474895153019396456459255155157191571134197660831495430729458012588217125689622662104331116574392043360558733743809986112155881608469767473009262449265134201715465772071721360774807023582261107323963068172006772113624026314274721464119992563110316230264413156311766256083929026061946451067940697043740525353308063546577870436495962146546395109990027949503280538038683847131809474611725674530785381518868458262036472934090757086067210794259070820015177856335276881019633626667492261620024039266857788697575314098319838967699028832228944021857716468397162408961255902481975754246385835008521810334819799839700294146405488948580515245226388547786479911708266475623690278513566618242986018576697516635833474053963029936614675402117083766003877405670073701436115577649437363899539085924340406103847163123687803083254208968259957075313041683716310783307579811069656354082210986949531966883838340506130364098325529459783136005431295849752050968019775791502402011938896529038109292388856495512186574142810283153261313338617086320729064525946809460592413721545215240127713763989231930443942006493960120920840876082211424579957730430688127787897806243042382955256213385541811943325771432922831721492766939515526925296934938772020261351855712096026880637457158514070716482743085190842027499457740715575699237381560118317863263306139228579700480377329413380801348763062269022786949075956205728471474499505677513111913533521572660604334395737773137518938621890547738464419158553527905746442123748496834874319335098427684314861529133697535250926931956422950036265485157055388630384262729304036804173418562024738842495138660679328739542124273407926510342955668598715625407903801518452941923615896720463764668129877517664346552251428927773260770778340261257561607930574647059721851901426460218637030898313343901480274240499983210226814931298174659297559769220132584969397393754986070904265506411834733806170898927433050454830940035353788199448392058723757339863591456349410599386429499592354460489939253810241107603118886019455460273989095487181735683736655010272839330470343222499592523024354260579255001200763655879140175373303578417658904377299233545710782630284113406666340582283808872673177366664382695056569232958255255555116887465796919350563987209662723175590291519665795310374512417696963973763721420304975543372410586213330711889630387414071770464878421797669265953697404278374969123275000100601708214526874288753501695829196688010849274041431407832981674701309550705522948161191655860611802614568657159416042927023440813880466283028886888962080330505667492835899593713106613480412165696628654369136338712153056451602523081536941519193772704952418667554976638285520230450425697725338258125592386197253715090266469943781848383621152481676626523836801740659980058011141535378744001625947400168556097432935373467414795975108824162286363122350462266937873032079398936261565082118301501176751766061732241104636575820087027688858607586188513758591869004678721176785873514030629276295506991837161737642180513967356786643795475914719305315008837247496441843220149501812777982757303571360609039310522918068596749339625218038468370226937630263487582747934542108602154211215324502597235385131321589789267344987817672927482114083135159004510639376210082673532484790565767389741196947591102093240633768301981343745733106612257609575802157608210987566713404648810179821567883032201234195392523701813808028956399962668277722423269874814184592303059133975639165485477593911017002756877305952045744997147172527195696649971484551355820363942222632215029702596049187153254374375805037842710927152399480706212338741130511755397036793783233964629917722224183142483638257922310382516709343340064524646646510709449478024214671216177713953814645833319363467522210672199562679420227084322973587939821628104806376149249028814591401414681097349876883157474114297256085653050057803303088491440793992475404209249049643716731486476119601457446523717218570186125234669723730235699722904609531557618072956523678267485745889645805698788528510021170496808734254669535371863610818423911319636525445464978519296955386262101623378547813720388949052244885738008913292057750608474074129632184805135152555673118217445798947583899423466510467203488671954539052029678767290484645494895904574754280909638792005583867157382187657724392128293535699232374256830972194191163869644739858087056076879720841267548268858887201173346452437172866953052661455620588565194733179258730270946971887637200287199868416061828566291844016218245569939568812486081633108237503033748580319393367881792696223748992981076152987329960218839798983463913958432809296783908316211852701679075990045546276637122341280431148989228394202390069977827702839003549142883685728155181955433467556515310319011824229498365835398673511601767449758680651610530633862623085621041897691113726135144149813095150603304941421917875903823085922453235584100172228221321308245960519980975965751004697662901322735754186845891436048956715309010126741510441889715649929310637930393629373394953849035257694770566858734079051436373569130460796824749787807812918260913247309571679363257795210046644643049903079621580278599953161968974144591829084731233119454941667790937084755261429094780464295003399868262145911498423379031321109591691086798088765020003553022164026580540815897982877775257204166063427290431389470829431533961774809048850169529464509148850059236995698045584140424950826987529397344854487908915590518659947334683941160220361808146002810156926709654949940959517735874583152039105084292859257691558880931130238760971583133101251444295024394815314961749797594225714259197968833100086929025527692089070896597250094021186150866210416039324225795752100933645194019601027268122618768323078579003472840834292035265161599038107712008494601193375283314123158194502108513513368347255279624706235074144683675882890777869767634948762708778900813721868519613008730132444490944975656540108188431698563245688694730844795938972207233772040791118645205987569227949413314983690190971590979673654572476869807359079125246719704364341312189307717503091664616091529195037629108383200655587683982360217543126824146480985061425684898978678920860746275786216284871918284843909860977433531655182764424897729156183146592735196419027658022272975489427222338889030767241833599737698398335107407890363297697091280728866418560779472787109257727218129047787186620242211962032265948193221798284166724123795252688918852921624374534922930943185304305659565005013139474733134851220718956361166127089688078543400521647705352116752083382764749952309815003484493821485027636046271336281734738363135371167976614358432640511275913834206824741488317974941519298312435370329121063505632810510786241484719005056113493660792591630394167814437207807736818043154560529953919733426945526010711908238003113805716931427441998736308105528315285375849268500701272718583709343978147467580019741651101653528161714160007402922457631046445843455029454601230598064659991552437597021603681522627228889445835267544305833284436620642202157361087004240884128288223433003766504362828431094421883197523269724399455237467428205419773944590562510035009050339511504081712305127456687396443873934252220464623939664405793408377527400640217820894964181388319758466963767718283275372074470804962546405588017001316112862047510443168598676812493242831526264820234197339261745763476740965220073270725674416686007989187330660194838870268289518054329975393531481994726702512737137964820652564702640070896845434908656951064295372578136047504240521013402484489193043454151863560807361706076071470054059517512768064121429074374778013886829531034953442053572897690082944010820493566215225963883202654314642719871255280863543601404614724258196437586696081258111906836882728730099441301010770150845028950224330749314101795744560215865918931137789787159771746103197515152077947362226389535156060514811453516491394141609871584669063428445529323544006274517889559881795618266473905780030965831104881899734651464386777546427695378111988348212430379271093618029557091925666495890704165165481359179614964077633992810905472204831881239835928501764429547208737389374111135200825812229149354909819196394724607081865340292423561183295842630505856725000546248008015719643154577424914908897692002697311322631955351001633962958721589386424644564601938387005709187332624995987593166379173005970885737019355098582522624776651175044669427193976735999430831452519998673929183100464917766500067299584012179528441528026797444506724734830301374772368173844213069285277934184022844002569795623674396871058297893055706126445330610103462117102532267808061453955630621692212752817603477551566031473238776716265113196124583092043619067414912742115693900399759070696626632673144920836582079497846704352337370267930424797454553472978632092734548914978057206072851937811185748206537511887222379019416597693333528193047152391676728106056034452410128720289257527937304287792056835249777006702596582721266174726248720276138759347375631823910671973771634405506019427956768361149869292109375149770286091449041839617946388280800895984796463102920272101401319458777097624759969999314971669525380675528186807133870214291001016851277613263584386022823135196503342201255486316980215210290219618633680846247916221745117857040180761617402520308215393616339026076475390748705602395536135043817791906358366655382382555269767142813637237855162712284588129284537817602307600651823167894322166036243223642699040512340825246125662302142873488448398411549687981082454728298369691643039605606173885801753548775156549186311945530681709288392666378209758322650406254428676787415912351467887994221244298733123241919708700395641638708470102318275964310944186806556360538572260625695137204493296277470995995885009875895637281746164020295771072285915983275122290461647677370144465746982506399308512323517939533196584900118737768517042686875981549712013610540622077607783479576303628154739423965357865376555599597562133824143322468950520543827034425000074688352119153462935030829514201188278345324664289571311658632576707565112653959566467311822875797854086582252564280696462402831333148228316357542248153328116287847882649439341793509811895764515563625871903741251237499454168346364103425252431971370688734095027501023893109457434015430202653873996317739548325430256206220315060377461747351660220283643912903432661564935101138434622737749799053713532103581541446837731749706174116164982678826149826339371104174453464314389855634398376321029353948019337873206353690352577052087489044955977196170223231806807042967761800227889817751371343718881024907596482014644546851920832691125993958409791688246667918540561924726304644438097766434550879845550508999107135560369989296535725785240464476254492063330875130747693245902211571818309875340157479915783417271186402633700258175242585763945320164931704215372598666338182300559674155925397617626535865621896407577956773995154379570482078128772022072161331033530187689304286862122312833023554327765416503945257032193162429568543769572891437572003995775141612541116619542077700659262248817787531643895144800405559805986618468000768328275392226890155481315001918677326036566377365058065046004219457517655242058887532975100653594679295391915447981305345991033411225853171448588781169851791648717214609070688879490598155339525817630135811536725444293525984046289709686705539145671660994995474401281699084175985021420277273496319777555950455140564286296652936768285852480100096461635159970930062043025972463041938852033301052484666516796912511861304232712059979207943152589378951341933140458735377309082145932203863287678827235178714031655663178356970202156195882145034434235649688307250219766673031019172181105995794996020625903018358484114450106636804131086062992058426969694259963780261865578109841474698237657412241766336362137564866956527663870211595150161957147928549386599485191421672918307084131345388898396325626275969877450147158447480588977148423056523032005199554712550662901888348497892255971693187574853565172167200499420368473552372809877240896311377185183260142100257990839143935546634881733777447654520245672539968962805295940211057291986579299390621426512243635317336829702125381501892447161485437167964863272465406265124775919713448372707489014948195903539288101888749610984009392795807740258345577489402175190988438468196084548523536366730730685841862024427882787408616784998037920191770025507182621748565987330649876981676454860529070780702448877336065971803978214074808101870203984602843034827179130830821471543851467081315227279423027871234006023518879650461747873575393483184430141475947607320848009038187374286924378615114330215630813475863492079730182895026779929828445258309522799077523060533103861714393457142522821154127620638498985547890358416229978531336302302501730619371511367697511539784842814924276527805008186360377545947814130698401646059982999336652126427105126596011600362570596111692306298650289981567963896515603586618554306751922550012821126427108721289581109244847243055078879004767411268787497700125178083261885584729510079482761143824090130979239672997004138648698056510466091177670830904264886539283389729989758713632253582757468543372823047785745141308515604120625360261570379855796192688304750750623612009626471481528921649939664041358572564901902221817901780144591859263884519245671550584606739053599476206232155616830641404440957375469633430561431534127809364738916645019002479815359856277190695008161830228306418898282398785601952127495989705706051487194094105715549730548596937374978439805733219751590305805833341941423706421716507913144000053363874782415418577955349210705853415316713484356180596228415393982364612246125581466794906399187076557226250916469205492165477976071234988292289001506049368289908956041281379778540857071418055713016899610030521920632561160490406447939037987082532998855029333771373946914799347930890215015339455083273641828288375879300971982050457457507004803899405282506164496881680498253784211254385538780636158325410737165677663931695936304712240010984055498979939548825344416225229612393088404019476211007729033677815587937497363198895265822160314082892607769098858918071552187745750808921062250669168521336660234245344893995012177770338245936583934907003661622283545427274681936774295752677394217415326017801384724221127600702058869829849117414800568454678704275749424553796126409151274758835945201660346554364208814778909491622699820761942719824808681986627241248585893860460670730622057410955815384152683075095139831231258826112633130368638808309564031767047199601653113525621947752577764660958771784142760169270567665720309629380402019094066432616252756772890382336356796945663798629326714924981491858913339151536181890074959928067669471979092837139085834065311383719635459937263223539004879089868516655290649187057354379039510328567259059471078536420647603913500994117503004198778828348449326013326881838931644021776968697615528986057495355416482622306762294657415747220007614385475793448428059875375073904427619304020912647915631120048464728403903589169233724464155428082558658047030684872985789581987348572015169719354688669567246124261783574829380348826581826336437648691881186730735816131467397947871527320356024163602279896045312286280052056545859204484179767974019072042068321114088902016085734007330333296609793218553009806844867532509660176437783165771736678245255632028095075681250507560380732384152316637959652890716731940115784091540591867084540591273052571525940391322680589230306042442028890056679237557383968638967492666067702909047587753269585602288111867999429949347016135659785021127265921809708496985327156243275483892882668954750856071911590759798933356298670415266199804707878043601681878869542981932489562104732062565692955463668651871205882781002296318106826854364582811252016184080582543734423070266940694233561756228417682341900856230477970174933469335655430709526086515391014902281924489217463582805702555127815026600233622887988777254658946591920258511495811258838127060250517102455701108341662565675780085891150642407223308814029150169779118955974940240344122508646985005361677249819391045708789652562613456431173790369607312922672737495689372211747595777991315619891293341324444848106311601897825918158005880107416539157208398472313175296497403036363393765845529017444408811476309007469945013141702997320636356495934945041353343664459419036260613493322907581645583060001156217625393087247539058933360326290058632774443237261190144045732537942356153091078795153651503414924594648819362604694969457241258852426571872635784018966706400901523661728883049999930887839591936673023989524874937151722727631552660045281867448191783515650817847726236637220698563085904012946494460846352667316012269024810009436976063123481743735701318724486969404191337986699809649477620958076611115416242411977170076224880507997905823734446463135966092374556237992438597765514196083611676419618011160692043101727516653402048234897668035448541220496991480235036554263143195489054787719102217041784310988269572504468078835960752717271029997359354411614088606415814527017045306977274122323919897001801972219595542388059958306729510804813083524010390619433609791601873250233856657539752835777678862471069980796136962022318524022482371091355271316725736338778204185428142187727349126488476086407480625084841196822774896226063823184955214482383612439862334982212240119236875568257993464169630252092700835927688367066480932221911943135331586634405453180242105397361986059057134555651322966724215783222699396466601044027412393379118300146606005200927403942871232427088203938694438386226525552818296309045927836103416390392453767396080416180679367439494145840238822376680655696358542305062068229880995814327817843396248592868401851709153431744875136101961485802817715990922712963910563047131851721198834258195110562597020990496343462127606840600306250630897637657339786587980972055355627522342796353931075325220296166138068944704141375152125864351911584819459693331901771708918591501084932016113551235524819670093269792788491286951962774925237588489178392364822159214038386718525236641059167921120877716778044125389895504268256987866319087640381811059416580802019615753593676365417838186850684275908145221310563105097275318367952785714584640787878705074788208926275680736939238727554642249915969060933081858329896028888933617767319649187055129287117387182049875651153025107296460271387556002865999688795330310531270092518065481841722852258101622646636656133423674104077773438356160128349850373168654749602545170205983598473991638155734394119681164423298880483317075056230368461503339945723621503916078968522208767016463319935104681007071559609384121745008202500719346354959469621257756412632902530327277672311004145007641238122254207009478221141438335881773491665912099099971293006716745099113221388447751952687142864723203284964784964154452727060017202432186079275511821954796840180323105740477813282230527969560800593301103377143612364359547441636341001532201971565683668898757448019125587148435062850846449067985512160374116279606079708847136668763074617423812569139120682733538846385821506701522771724282078550965106313319102754836990061531875098306181706291249115598816064938567908698791183017153968242175232940170613316898396158549432751624490769798737721757503115305845450670022475847523115519093061660098116475034939318531876637322975700531621110487002623186289002258476469891879315003577147378927453333222952565406525440956129774358187413239150453288144898405797715846522675744143543207147475888329050256673534640125605735833243186131788191840235432728108077338068423978368353525102949158386044752727859974098443057689167799426233479767657380528483332997988294817115216466477997079022798750237818724834787024265666280833449374514705149531805734435071041376080016396182471816950639853684304733472515122352254664537442242027956812855153375246977379582308540821571567296474226592580274815782300207816476443578440622985074009427671431189992726930341586726653605839465030458614427673530825344195586045247819261666672809530347043865319464053571003775655553296320311373984617449150630812557069467749393485372212698110636403927971588225053365060313413772676316454557095736830481798263361897349075094860158755263663337149570605276485907768033989192478990831239290610511000259764816461743351285956634108414251113158570651572689418563599550345838516664109281426727760985046601480663724172034748610356988851689777619101644049043011398055405741926743909661916967743198366226029322133786284884891086753319604892598514937556447658855566913538601871849426503425990628183074511245224721415834751062556631799687690604957052248710882862910641521383436793678086403420894240260922368961252106116223179006033669030649007751761511327703588134012999119811935449252517599875432478948831215307775487793645553417570354177539850822640041139265932664881334437383656615334205316604370443985157947370769899095807473135740966425295747459370558319009080408635711615235968231363879537157458909655693570785226922218529640281825077279873009000927050054524378310287947637630935409225844477262392249730480359612466919844479254860176009673700419239050164893195358260091067336219725322756813560212692138133480124057386886109309757330929734442676496930038726184052631309857591891034421156109746282904687851644174782808138351564315444896942779751958373468128699975850931499721415217932702123672375946789075712244104919934140822228347138256939650641519583589997734049201302823926189799337926578522347296738191606963201893285132606249204701975517545271380658379740777563411153419805166500341335521289933073725395829500862251959041746355512082949195004527767751541101920182262105995325074765665945395032964425743219176432097028853020959120264792260060676666708726474580195214003681445501351448691278734765820832891202427749950307621859523795541749601343737016262282483993971495985064038198108579074225384610713335751598227208064134962754215223043868038643674453666056736085846232542777795362170161508924266382817943745259128474584569526808067006933098852382271608806967620157712889487094489393984989225059328585821341016903163773390147693640401473428029911978523617319741133364009557394210056636940336922547522038334363993089469691187063331271751474268048521153135703793803837410475983014722051006640269449650838537254670168655989641264365022337379722586038331654809267259975714259732315945085512099776406049927758916897922802570009897454730443121867859172765607462419226181024406067527251617291278710734659032491181058173875270275182817318711064706697209530235804386911197623447255396602771250420584869257232302010189762915838052834423666011415943026922320113329846784093001296425990053376718478788999842287871703796085460928212643183331303273375224450389780126303706050469082347331183669129569921156347455180853228759801884770421956180321872213966461369524748762556430869328939282284082620561151186373758052682561975646608786697645357165745287048749177092176671803630792777310939838921307556859369778754871852831420197329071460465404770358594962286583928885503652250733441386662479055347919414063466779015904399430870920108010497953978066021099541708755688951985590611411924434536483708264090884863151291770352070703327151232969713289899979425114178395763712471177169716628059439528973419884030512807552837631336724899370361010767247164180465956829332456008863085556284037946813826185250882078315793329611111273821845098618425507697190862993880856915609815710145552937275694381054686493275544290177221610571329115085049070308451765730494600411947708625302072610196591179364568648420819933037175302955711405569935219111358062409142007358995298477344674522928793862869216058167404074711265600017455160490092120542299351911847835110933325711110023351318301577358328618452807272763369618292214871658076828186989518528827358994066440744045491632029804677018646963573727414803222392169930400594020073830203056461573208719022644900827762289528096394846439977688980645698762500286311790880127115215519418280297402758553762237101951271677085564023203655933773980208234780377021521279299642574705718338575533152857867854461186430006225862643566455034371268278433129023315811762144699248064331818566244709043347302464358047083739419956356673275130925453915076482914379207897177934588126985675844852992069609626177177213792728590653374284500792179977136107859824348094888487225976431205618616506054346273509377383207356425266180683032366711236874653553675141038595492051906598780781005597608104595723515229718497244448293387018215673077254526922458669366130828668157866580323127393279083962679425857195775655857930025575747893838488624378660741046569961605453952947542844037364333023628513536278553314955393986285472091273585659015598745853035361891156077147525232363951706627069643187209356277034974883888813640962904680194192851742669097822493127262126845541994554530989586222118469636402814201818675580715909007563280639045798559479368059042671098196938140602923321018237808898872726210303326938789342869190355263935830876186304011023965252073042657926074687038561073844259909212422071723448544263032462947996335163058184190576123363576012257971642588513465434698260570864955827868567747761115393145840290951422540010509186964229445071752408123641577835935208724751743853286732219166151382789709855384946836032388758029365349496454024773017800636581462913686002169305600050205507908989102309574116292450970669146524967045362825054725651157395824691028602481230609078312787356475798291067554207371153365693055401060776507192127949186490414012762624240574596344084096137157158361369734749914622455222779284578633671934884944838612000969744553943590802114708439444725156091488821450514108976190026080071220149732389448355526346822476407138433503329390879024514420588773552384225102310901745378400730589475843773614707337913389770497445969653899667240099439943273933874488465852871362724383701304160201445417818155288394906740325260307729003598553832253785797970428926255385262872533321257874924914332559957501440314070458386894328654778324764105905858909528421576523660011945338101844893525176687975988868337945283374087943484670692597779376466581754250859286681011480395563392249921141851252478176516922028742803276470057231280466028788958385798553246537662566725848117959462572587002761783718938807867032532442231519103773174072493108458859694250841145561924635974477110342861971254842976610955753655387859174675237239560503413408369272530464422041548680428613092696088353993773999762547315102066815716975008684786727598686949244648686497788450622582995729595574100039513845698586121368167888729998065597831032368621491888621917225084863290500432848030851882562082913166798196793006184479727330446747871342963965050796383024430535855586282959344614257815241708989708335724858671241158878732747302536695830891328686929032233529898615565401500265664112622291844971282428183967452207026714873325976213149429251240247818659372757093437566911451694182771875270444594985039433038479431677811466084080833648117852881302450318289149752183111296315929187704409890036397121355125198691554918726999568746951996717292735146059548409766059694578000115421144801012410011378603155273174921371604864778650647111619086869254075470395525061303084100018494782225976444499382313162108956798430618857575201196055415498543855227211748587963181302788618703247621741406174843477407884049191616751032209438469859239044546314099775278264683748337944596841914755243880327826129928707530044003440164306157973309722718244877876944152793002174437409371231168068098605400657814386094601051565221585182271069031636226977286874457683596011835638906235539191485517168426337762748707093056714245167802828332830744215086646679257566530207974492933639973415459124372621123517009594078228475583466816698174150225338734929419906532395845669632234695673585378888572419624034168628414641720544904320952149465425988181357458361086119411509005420537166919570318185575475106012060464200595419535955151223568436553976577927394827970926432633631881300198154187001433167277530583275000878279708351892636062052397650015895361966276216993983140134579925521293595891623178063308303704507883792294381794585735566762032664913428370200125278316544375174540768151702225014822252602459863725971708569528596612580673974114870057676614151769014259732650088004833949516971983844604297001796907402862471072996338492833364930273989809732677323325763245291490771339503832902658429854400877934075986156802044001815375771672816122536056751919422520581322753381221451684819070756351023029499460500353282256364705470034092960150891872915418030754910499508471708268365603589221231308065968103904384789733461536968943503095389299348652552076452570177856221743688313320923252024781944028381074793427414771875929798950938456768361639134217054585325366784118027283888939156323704676842830137837679750894858412276491838299803621795000222958038683381068296217299078201710377574916287608231335974985686958435668384232904274096078520607110356106993844792887706861818012226577929441910322998905262923603695577008793270512384593106075599915534743923198350789995687664596694263660125676399788485135556146501508048685291926299081941267694064462488183872716456425406340943727780998602262110631221530882177651494391833124211072185477480075835369252511467208578757864815678228481750901875973235006910289098052134897666235675325070891741391731333760240668931507225546352984709779652840250277608222609446170984190548051769384981481492530687628997237319706075671163218001312655747222993888674118147548973721835181408839223128981062730173095763977060329542294413047123849768555558383037936902464985101192729308306057965048098283950884444198540002884386098849960740057745796817508610761130565514085513113497817057173721269408104815768628047273769555732444572621015641667966799628534793143542994003980673502293258122167128627387235379933916960584800447151309729269843001146441082080229749822370967196130985926071910164514474720396664508445801587172102724002799972011461031841443107649222449075902713114695829821700401815601384977965728889764864606711135018190648610163441075758130646564432750063763354032082106053578538624142112037578819514481091451782676503139747924474117311841205885643906223125236324656163247596468140223898567293635840485475784100826528660961610282662993955015688335133422145517572355981204977020656614515340354957005746118488497167796282655578445891797068917108086536137868044202511895289118861911477804953112125157176062748227694733507466399865111318599060939663845091528348431672028935322849503099179490418018213280717793197125906625265737743750777850362325516198197375355980956754261974983637481756335633892585554740735277227948332448762904677702154836632895575654566255320832154853582665809219944328682702809107755927666443760630093830562639133130760428536221932099124061782693535747423387668552916899923000694243365559423143319371073037485783440530957517486726561748574423338191410895511377913559547309363551679999569153869757749946305567136397362372615493871991872981939070212293066640752995387409456974102647199766774010399440767261365255972433067376639224369723163732528493868154233232880831833302683984710000506043136903815924874004710481346171207694466057759992257118978251337377127372879692525549524225170107375956847775171835026187323530498390318061450110590542401705483266930167487834022073621642785848147055867320017641334554516058748742559959821269225031215764611131165252196557651925352872526803748007260865257759246050112325346952001802676225560639128368594385011716512407352220246501897486521589814233692077450966055096134361084570135517817881803923788206958356009035304583623015912277948028378922371689603268944513307615205687683265860292191654687204415140400795556639927276531494327420286936962679187438079432367950087165806947532860550811116135295288778755378901225094751234813898526598819841560362193438493240044675250752800323984503020329741091918300552301513201606759612356370485692636309601270086935881217973304482688516414619796459126238531767201456206122532294870643317085957747163155799766267494070806956109130103743652735708083137857757737589030797374854596751519058953682230027458003748393292348158491718538041730099466926183388239485067891616912715633064419109596338105326704629020252704132051780325860878648313791606132700096871380172388873863742976187871092697611653820679492052430889045294253308751234725633829530118088827808874853130403426898995073863163002522109773095120346091862892048388058962934368839815477677850543791276183037781958607072409918939792696514597799021533701729680827580205601339624156866123558311158581243459926800117577542499436890008714422491246763220154122836482574187778436914041464681859905297520929165214818216722552816430417076237753696340841276612276713044105487880273669365921806861789962214977436510904234440503776869872778097748743547296852802294719223976449769357337047924666956857097724917545051184112205331370822692850645586247722027769302720061952066440863339977284292153343646302485122494130862406791035224017836962065612179221965230058545913883621061979483352954155512050901523637899954885623061753377351978892401811410760608033138681203301462354159533231011632623084622070375712586276794558078548939267234148174468421806019563126350895553077269025637926800744512752463428026364034970224633277290428877642636605697359796735857899666323608167392889317556160390151031475488197873174419251712612533596525634210675575650525335337530654992179414015028524008709655584578205335275378871903667718191548323497283701987700661765536264545728221600678781486941634242455594631946241412620936199495426590320122051261577687333340219047344743966202411782985323218068950288898672724172620008552313084201595491128680194698858151137694566483887307777422626586288211365656567934010843790605236847388292871896042023952082235274487914610783352306746246956270927250002407785273829287220251879173739328713086677079757414302790971917640198220828400147877521385306437918449222453450986848104811441491189534021967699784963452861257041133717371472575322881668756466216482820722071809245177939427395911592508057668679766603938619625955319832216847146021848224106390459576437507606293691305940761799297872340321759035425813770835134319252385345993474595327088922567171211079717833561809162745636140979721847565016654542719559147876485496003954555040519380684022675698875778949675399942909812776954655502579512485866159429634308960267368603571304875230845332153100299459980127598268490668899498026056973846679654150693608841335962844390752914581654827412017971839585304583352193135890999500869068025665372227514438925656225162847607207622467375602426715528418656667659357245356016452320215727288280901539204492989544748479401842656251495146235186072076377651400345946701622067627701924088620883904274497240256416661932059199104950591671644442807427931243640712217896608760744626909859932959067622898571336885356694167723958452295937929435822154301716094478391473493361599225153390996665171704365386223847450119969535324371562049362190645013152033029695868309125461979098511939859402665371978481261491746685182130381533061310005083292142553197410663282288482488184744811379997044926396991331814442138206452805235383570525151568758631888144012177388259675545228836949785175122216087339242847243779154831040103850528924878372780215823468343350002504863824628417068468566551009015366993030418338324352767693737418514986964616489362949448866680189349729638206677232501366481811457446396648429588378610651434658097233248083672820647271738299467563604769064810082647722028979746178791302586452413688971251952049058732717160621080103031493105283081605198866802269734557744141961901935106929041758677641229480822619918698391528328458721234970037465815953218115910908055077016410736519065277898541974599027844492433428816874058415706131183439065751585734548912079261333113371418194322230505716337616116660984642127609284454085430650510515025930236477620033057670170715384921379976451573556863565839657215733132965724142021099223870147848455201901492186577544314893622759530712712049601644094353885172312693584856040907009276335594852142368410569604252258873396936338380167527121724313681749804046367671586069482621821505066703420534037734962211945018750051494376179836185147046055698120603496969113924694740765705649628440830598548097169936155345510066369410584057683972242277188102517480318150746047355955559997666062391929762845194399757165972602964720083132739061903298615006947235653114750777589071555623392179713103225543659263410170156239599199863199300491173366057829494444075148383890607231440342127700396084041775319076069134240704588981681480937397914081320520439651045614021564066181972017046910554568167807122122310741566071624429457906741822967289380925120472131126259678648604411695017965951660956740329204353604737823562044159753803905387155194976205323130340418185371649329314800555509437574169239657480459438261996767872381809252122683337532353971691354816574674867988523762479580741363678120356597152304346147258250168920396134276276440958725743902684402886413502002768120779980978585573800369011764605725878592109868158976336217740337788541302610618948963106247077272885443287691236691478208819603539322300208953288704809694540372390516729653006722434654757188573704205094759742912173432129176541404091715826234952093499327963954323269562366219107853747341015490074274699220246191525850455540866956343099943410394830695131494071513304749297359080181280764051527001296327967521430222501295334789688066674075404928211127291694568528016911011844179239412442148957115426227401321690255369630309458406373395027356473545775568938501088166155068289511500201954113609340598107054780380696282782605522677547544181434082179532882753189271096599547703379967519567849560036326528842446323205638539400164071610460536446518236688047928341172473280477295003262031782759143670373665146413410645050139521067658937634583061234683308955621496488009244395507807547168470146130217619424157448011565045049237200165747258800861573570764656924279011362087409845446053384578321153964804180717921721290543654885059661168187610093963408896501113046219807175423332085737847092154185187588815409804077174128962422705102280855295576047689240441115570091277650263316955616820130081278582596084598263756538796453983167366577329536216791890262077216101824000512884656458942889566553235751279894047147523096063901844178919985140654598004474175307546945876440997772383750441678442406084046152575880063495913568853355286394235875674144921146406040240831861834783037384243493441674929896479209510028744515714847372989096411812728239683132841331889219455053744571555627392465002604700584519104638609121420899458468640848502729177254151741286352118704260849052333247803645377708822776541064927444522888944724812985873177522422342895162037082145201518712587453191362554498268004521693330703046412017235554269194836407563982392502526466124722674444921086947289508548613358760110354560189664501860768554321029528376391720736952219084745732920026599243356327638284869289936844125075251767629279685071758853605820592883013434869461806672476128035134923856363045288436929478945540755806187374838140932913119624897355718104005960403399856793215561321498318713546125717151738532750461579175777036576179553918938946361134520115211126915340114826607971851471559292394407849027797277559736748953949918468602159317237307792872544517596575789815577960168862078886715988023722952701350001124694232349716435626211144311572615146740650673296840057252347820108513901982122424292928774904912671110873580055863305028172491434202260865306213570954101660038367462127680266552486321442098633515220673857602405317458946858179397045868497236342739220181248760840664250435458310856715715210644186602824946133256093436403091820566463597970066730601157684165650389070230106255813780228007475671443945302463529955499346413903902444483654264686846203465859926372840070641909406655624353532839389781810152734121730521048834006791136142121794715332603009679690962483208827640390461528298261869374112128105509069687767729461567128443385526330854951412818855420026065793392844458086880743614799492830788717923782302188725884460599371161670895624985852624150426733073099532887325378035092917109119406957072489539856178635133089379366741324290241648617995980588289081200365775301797168184032388442230740995070325648760814223013471706075302667888426868518490606105787800612742139207703218685035397339722634157306363109384958443400989208941873260097414981733911648768374766906941629907029189273281012958866826209065030842718182321726468527955305385397863846124667940096151886280402211546336556313769271508322198399441797102350247255025501356425001442845375221969298934508981618130849061929661358067431079254548126057438559022832321200688760672668997946827620973849813401813931011109060016802556515685311357463746288805633210739964947901673439814227125433171384945421594521265439468046656940286214434747028917399651588048017848275473124622866949193844961880373115659571473369772248083220376169487161726806720239762809310565755028882039341151370335056761785032422486035121632493876921313505064848955617346888767548557552674727075789784550060935278898613329805673942320240771090957041038659442085430465870363175113691851601287474053965700907052450413709073153218287243687156908388033778828812620468747741108491900025536821142404940737328468559172817029828342964488897805463216738321981270830406016041003340544974883796096268631529714857846954060893850947565790879308431801574296040900582673834069567980007955278298887783140743280825370856523267308802010319645547707148625267417741088091693411441682579303701134150124134817015771166009623471642521647956783414219894504174245580864263331250659146573734804249563247562776282540554547034891616851891106087838447285123722491815619534880737758291798667666068491484610292066115878290995078707708636021481192393951386585831379467637187506443220358942970336498722862286457860586593204980599828275724694927160574070027783281062276166937954862192719199636063848138914859238489475065305693393559971982390015302875466769522458819729830899139485485171747482091736614211177481353323097486261290757864919037061314130439673235949940421988214594485180190181562057472953685798192708993607583712561017318120579825898391947977577267949277451519924876804719697162563218543701424378897536425217606525166155867212877119975366596778879428111137653730161913158057416579774351965282049027666682122073724920682329222079404194538298773510589183516885560226353603988084737731392360427094697007760090595247149036881925296830120048363659682217582549595396865506384071486397200441689187715108623101613769187294349572643259695914431851561957892220016076831634442902584841570253960454142992957532154257740922419091900374223644290203283017934312887369341276511737591097830281031417414300195258766610323903586837214896372029083594651045278135373619032830716664580141411133300829386676976691149773601427077859853755064486054940025084421245710883550665782994450138719445346254813094882345210163829007464055197584845326606960325540843907285424809025875446481506381317982729380358084213859383355387886935460767468375668994303627577972909709126900097869161091985578011596342317763431624538029437164859655996614011099721375527266202352034559628118899016046469782780911949006243949853634485308853675181825054410124779570805739930605492854889418148606062219608672058843290395384506357900755076233790917770522291315646274057201039766449792114096357175554285930645857161760205265138523672303577623038636562388916738642302246405071322181775946882492563321815334759017367362088899360981645182040354890757751064713980337024965168288835828019785960096611458901007195188862607657847208985244054233152231161368802738712123506193408727107647669834526319730399112741157002062726533656185809623436754358305468209745524236049421973829322575869430143594021238582819009295311309479812635257824203983824785149259447486231148744123073217945727836908015845593182334737771593724013143363880724537096284252975156502516013186540257526744298169631851800812454510741670685216498752825321861513475670421015524558351935430487112859828886709448497877651906938650632755626686915406232949486397769552178799857818178893142011304063292363626101653893522975858920390842926466794377146815821653409815108888388156613339181450396917461713093864726967982901141337770222453488693394809623875020266276299559110538824472708763875059316564763711808557381043800248849698978021772346034310462754653318019491903496724014117170285280306316190920234762185319316081360716081036369690542357301968277872115942391736607759080337020115648305951294605397246358110227981068747136177993135031365694783602090662739045555856895305594444419445365236411401892437870443786065473494731529545188109336104580869208488623398229195972590138214546899698445699622471860290390548537303696761240783704674182324250288479020825461040654386401449206315912855013042241832214483337320488889273014804755508458794202787348100866625463939141725582657165044047882748468227442664712154080053050021172766716935945289598775453347155227508028884846274019807958733305638642330116739408227554102010804837926690953361405728318704192760312846795886022366847695115595870401838813503964224452657232444094234454120205539810245090146491500044862201685402825619716377516788105792983584561978653814495352544781839068040766782853585327071929269873464294197114844436599379353532958923019206938758021151521661263678565790834680843644204131136555746578621666586969072961510225760649660635327561949986513892559734927458245766832288004671753335782151590091509108629123913885682459828481480353505044450827496421094769005748155620480994088198093240462903686221718165947076209088799536242195972702670419998707036125237019474574600730295784202544193364553190262531853768949149477451370909484763475474186067677720632861595566194740116391763889699790760897483437229174451757977269413473467552352128201729281461011148231997108651444447306295075400573422131032757650420573954241960492379829261798302285540172718393476560727062600892339346816601775117820779196516328153195833499292008120743168296152114645830118795138129910548225124617357347732890049520715204978870920798855117620299526381769196420256283011192927512522952786419126888629061110554817535943236036086435037293262175557143023366258897053562873940207486577646203248704421688022758610059858252423523486948167599800753312025151707883131023820959158713953492884020405815026194117026759411556106217934150134786622440639780419752959785931919445610775465936158899701495666305736928300381906435891171050460430063949467347961866425983858889466771291551247511722719176165090857004594918110042410848938835968926126432078319219467939371132202881317152686566622592036925637447988967450611965451378129426996972539957397327052179896555158211488504212098820300116363940623284663233069906036707959341168452821679546622643495563918364039778034753127020608349019665350865775995956463854541946363062019103030749276517005197692610884807743522655784715663988695476446948195599277140347827004163172271429302159069494452297810096184985730307848602490106951624381161411090317018070840002851214040402967018327059165098134110083079425897474548605622282564447044264480566968230512800328125828772091283508661541425703604215770482905528797290766995539145000288127025814969729001054026179342250063808748791084355568084971998331558826814676801659736023614254259327091914974974633235543566743935099911122583689941007607278360968462995739855447014020972631705939487273487916429819504113998659541940293827516383064329187713309509979184345480732454614918385935072962080998304179927941077721464520612723200756420957731846156765143139410793868355624577750951108593011219602828410193339362917126726089043035144590758574213293537766206632076266373775314686854941663763799172907486516596673794756269643304867338540895302501683984494180114859506802232011908332852407049439674407870143333020097848974268042708801530614110857616830003523517797435840457336821517622585004742669940443410083733189624442958660283493450005873647944365561968635598724914549304171203699655272969509952086170326208241236547320707495364710486098356282276159330239036141390817169872534719413670814769705757607214866916009405423714606120393690066362065176454319123545339281749961590056299583704128049852411672663521215157207887279573894312975057172689691458367066139117476996713358422813717970298451275699487348936698039851439215918219874977861248096013400024821773818795037147126213389863021615704157238121112410436857669204417327226804891928334815614834793566337259486895343154970016600581035684071266579617230512033058768890892717400715081980684579109262311682417798763780188198849416691408751227319444801284128264365828038733581196195838786735674119112533966443263309206223568390655943093320301158933061899260391598235927601355648242282397844483732082808644005481098865108128470708311251360601943736237696353722386039865093884485242128386778554519423866847271975843768861437578863401640913495260280829098646536325662983601483805083344396175484460459248427746737398047496024712217427968874176039130419115639034146036399771667352408616732353940478995465394777253449287731886493974414977992483292646665030360442756937808403924578748691490147716378719363438015314249738655624537004227172393228470076258230529250498251196869071663013099322224054196582749456836925199326006333697239348984344352325145432029028862235543681407859519740557343169744648489169934548640302068790219024038670334667274543048493989285932938436480296474050497645924352672142769527862263670915690681894412151095984600266610581262399239991858433668189585320187189115728307250838925134216778042899527841941969440609365942871362740173489812766417474570528668895701727522123523917340277752835202750537214817883560105130684790360207112003499701870091950171123685513717144101755160301362209230866619289578600735828851085280367268708795483086580289547878714290716106092777383820501967343677737582556383703147181025478241028622883580040632985432030293225422801106189492411127802009638898189406827338296283835021165737534807628482891033713996242932627276370807470943452027168742322969596003859331326382410983885942925772840249745527167486353509220251768745129569543548871269007721389831296769342117455340970100924060302677041346670685568875578707528390452765426372275506940177558461175381811021319938242331337202560372787765547539955477615383281637494255539096726772556850503945397945793309684990094815655630594391428105806473348763720242408645361136400189321418625685175465303897287439626495099116035269187758812840955754503882048143822815975792644241721558791957415139038221557067730063616494005404196635969010397182752907215874181148698323495596927940204890010549834750650219691158440012076504784779543452872380535026842977463715867250363419557226181767486320421862981701008690823796060197069297747286013478381097660924174926668896039884474841550534430971529427045423835695947520406982411012145326622895029645347514742007048103400982826016260220034062282526127975114224926330136012972430655568042503702604106719454124935386599844605229676208430916851792776070381218533109862567352891652668122905209676881147182635750911253365634301773826535913289369319150382505347676037757493851464066600022479540896043480619637454328987257660000186542425585403160271575451179330570962271855707688829296462887794222026681817452263913443272833128494259820635824147009726213298101854175959446779482964520086593284745415299795790467485838272342712369826047144739458278959826840409174658596974924345958882489308779519545480180964313623227415719543267413803712206697363766096722483180990718688489014622763796184425097947446458989599648156908716940733799637257210398872838635016942891936668666178197798550831910901092058322693846456507678570119691604808648272790332099698751443840108853163948969407259566987536355359105197113460658322965065436145107467886374150041998572352716819396535213902039476648442670289529315954670086939625746952972029914383441255995454427745583703313517280261342669589127626965109034176492948588225020563477260802896397812326109147987372830485274716838076972431605914770407975547962730925683461648290014293559616932230829686402140397383515278760300933057409470594499724394829784926621942370060840114838632028543103220415601660262126799872626263531443978310500877317929884799657984234493978885248805259419935178425036899572987547425991815052540459715264544164954029429340213556199233482375937556634600024818807317048919909148405027269643726358153423063011770411308429386705423213974430528882078085257376571807633094735617130500861277375435765473511633500506957974644336720399059464282375175162929544783958765539787424667009619473370741676819605050806357047677640699888032288295462489319455811297701967572534868675462772502867100521337276671897406976457404894485413424311368132052075778170238583011758857985891236285578988348280467979421741282192897409554207680127984372589750950079707359514716312448024217253531316834117428481289426327101286180971744161506550344958894651432015592208831013046794450223228700777602121352004231222652011841449183239586790016377043943688934794133704020105885630317775496042581839640469799709117386948979297040790642690907661552351517375819098008573059168679625593538199381242520421049054404098736208464537818988011642521500839522471499066205327630429605574596110854043935977657217587361836131806898401539490465367562276435973608206342782435599991303700284435072159122269804334239046903441854274759045023291673722908401201744637052930563581475458977851557204795870080523332698386479324573444718482307667499465474189644485910994340652699866004621514707468307853226364715060671954816044872992193926856759767381521850947458005239295168250566245123505448600182337975678300895542661640014690518299781476620931911757399389088309236799939678588656220690561166161904127457787619943210350447004849450873619973385247040034406148296184208500915764804134055474066627341135673546073035836204553782835438976320726402687814961433519097852729612184639469349446777746192837518509252928066248900833495474751777383245766094419828182602321498444766247528044191842744787940145520610751752323503078875024153969083196133523705935379773359456953914621680069297590506983179342218710690478887575399063970476529136558260155883795536352954937878561378953390697596618663521147694779038370616884582308596110299047967994284936899003411283686770490416869531941185430639926066846478151056455400427282490325710454609370722509907955749262010274760579559433370414588061771386372112147904683410980921877897558089349673005046501513544065255795215997140956349005723037142406050319320740507467719185157472298986512206079789992286331365421442120087008922285305937761135615677390586577648845537490430777205698652144258246549652935840734407492538870159469196164797894842143136412182289092380420508194992001598668768694382264131560965267672623095624209928620536580642106199653320951267634410613324101216810347127754127309006010498237458548550660642380611378099239252218690799922582694394415944895898346863791727232717018716197933348073966805201136363802558855194015349920667265855414361762979726667396057604473328989540838158849239126504606865175347069256012879643894412334902605007682041172261895009241608104653070112765632212953250961484800992893937808799295320033849106440664529236596119724425075230888955793119706984860994942902909092966902546723714250688908517287435008045610927723637240975583343533041950537883567894211136050137208246502515932568418387935877616658233249107147102145259484473573032355308665020022387059776763559522737565487040708932903309374060894425107181346629796811988332679662409943429076834945482177269660004842883851732367174001341334426782500764418275338158912804405159510768881925690966889930423863675714691673125550462955011400393638005084463727025639570262916651004564483829481372826701772248357454228344051376347388241183051532113352919757407586317396234973548915957306583583398142195062282873822544311780148443237583954304888802861291070743401164105386786499254772941370366543445623833250601132937691736934387554466210518498275061340168115022167996616381042515244377316935048178048134787056537466404386628728621353503633807587587360225955431287700388127771338020289644160566498788021849152567367345477982679818727115592438102976997495158484986815952237169077140144692966178635083939239680446539311969307336761406431916484315145490819759523515274166697825770898032891709221362151609289718022281427664237444549078581782214120672320910020073682402621281490840072917785665390004897938563107433883165861736250989094612214503374986530980947241358844988421836877894946998328298198657827698293196130596522907782992399586186178072512871566284511024931205058084584467542173534801665537351536988043880254201227574031729957567735431658568684682307343425654194295635323402702926170847568907936053790181366143787651884111602766955358930064915138606488441948459095202804062852750413412510110479271060653214707430178565155666898432746575244133307383033848130189810577317184110125098968834224675222215013057525459087816282562187992228189144974825425764807011799416617011850951128603410486304441497937601835285139608179859949683512390871769260258721209707607283286370195386064247821755996329499309631191235042175261418885198114624191337073964530653684356810374843193170462708800534736042512070030318377634867240375997534216647801687913391679769033942731011423896188213195209302462999246058351692122172641472915591314601871806147176071611832881245027855729443518348796189103134001174933923416280392680927774020925026377797403345468124661354572744248712302508136044222717720381905997379900656240184333018121124857163903849965249494160996382979641816010248062656558308803642212619893648349970458973807604650962499869145682287186998717259990357763362391913212526046069174239611486076417045052978815755278712505128388028736491818748198835533304399636512697969360618258379877932618905324589074793814241747868742187155642073517436645922770697003317941166889939609957666506695527444511828490079817933294953751062828363561954924271376238215842340341371413361613682919219111496050808086552857561193072498833432692125314979796791983746127736916400908485065142424271113107086683650811767983294372130490800404630886880016482375635186669546415847941015294110954993884434456410569005669525351175520881801563124479799209795748531225872826352415943835720518382416073980845930433272743207135697427270386619590203724086405566846006924647408397354883423571471347041160112807745093064168706360144691628855425163522204582705312573894861786882053270272471121356605003731310616053066204740126006116507160343724918039495764577795801651999511062836429302865012269471920396780436052560918533661728272884769100536589070821266084123836174189388992379984404809165524484125355000481751500919686343299028968091815063157038238954572384253967241946638143467845793399588493211464672741069324624401912036378429914432362284889633873063758831589055433546636631608517076534989807763408459228319984694375911212597580543456061903434175773380769023152767692134732749826187547233480835160989239708364645859241948835697599391428930618695627250519700354959666091193232853519784762290235010015560719336076388026813234016620496277495465717395709521374833550876923565941046331404743771499908310754119938077399833331104042533820913174749756276527315133421790696513050719910163648030942343430856297872060568436213702002791236747778229229395719730917214011993947414721388434012288880989526948245065355948588333066944859412311952462026126709593123882227266121982409231291162631255981669783749021299417158967830659981491316144495931672527313724581980349597088841396416796096368559450828201510827460725958198880523000914865440920694581943976360313040051868473057366331160788666381050748287200866935319591254455548717970674938385318492536083887102070568657619990783489553428304958651895922728256965227045870400772316761864885300936085236701266769075511400236737186552568149714282945015543130852210821019201685729956399990922512963191315389735338462644306512161252629810867707088395848829095134908345561522427757637475239376774305894954859747060478554857543577046367947056009577657090277068894185211042033076846118061758715449563861314366685318207614250304857730231617311495987891709438207923650409681471905595490900853215440975460184147984854202429487673482859127757480207722581609073874025354710001821027784537254308285673034225450701543450708998815766401150715538545800772276691501639021913228288297887093283095334710598723105621195584261567422790355613759523228371910554293871722272643615284568564133183446879831522639294198895413874400070738468294355901850965509346151720910208270438250305414841917041031021914582404899993366300987616347099913455653631134378126734316663461180396756669923623534914721625981067392590188046998961265014283168834126193162694733406261449199098782007586808432570948798774307547414860240146808105375890164573938367479753320285157623620212355942881078087623409187106084773777919959713003656311113584364852455774226214929317122880112865130502319501773246538595518481554092866074693372081350234285536336368625363575758796258160841068842807067668981104694722141064499226855057607282408604594093492897249370822665148920147393716406409919594382974979265369438391329030004516991248741628226983163839344320740698261268079481557704393094663033699915779218104358465612951931073296714699951374986233818291293695117471372266610451788864837153085626358120949166171678366008323300975642918016254026573971084113248842968262184964228985903979173830265078744732551057827566922459191720500454050345717172580448530389511485330507403893746365008761667004588834742739298867529867691281587093596048619889009270434618066524909250008235927815547320747787644845005895315002280022077116998660539204631730130920082045711087298188184277867298762321266669013610441613004706918489303761287513869337557053168697422431945007934935307564747734250194462846242566579312721313729791958661441304107404928076861839210792177900137930665617352062956910548111128633491406157944166770413108379192429777320519933421949948905456835479575385789550921567437972648838809091297991607530877261887929733989646792412838539715856199427075294164166176950717853944094651356811610132769042340331484834276127355275863699145783266704344850243996412400956973573350937819978091479036984063549025920636470195627599550032144179803487753202409268158588588046284689571291890850209225284014666421058763012300408897475376513882708319531859884106894924263531589799564680554106001417278019563964083588066935094551691132303509819031536889110334930099376716580282984790155401732632882534179487686126551511573479581821220990741538403024891335359108035906396973157010607965501541428783493843743301473266308456334186769014812453809975569017526278064274901532471739275719285251541336500427602034869668185553836616938080447083669044553725085923291185036473624886309046709278424219046127193898494768996472868603611497243697721898240518257188825695346691873264741274835635384983984551223178170831568142359121874439528409601748252930818745190002201498779971605957359611092581099962302489759019502899535815172691268717081629127913274317884086373784184664114327938313016808498759669913876693431799558216684416425692357089352822525817105606776177799681664555288686295543611959874719092270642421860860273746835463502337342057883443486527954607530799390966564330797316540818104605241691183578852658246618269162597125322113059559201833797831277166017547010716505554888549467352689150256064173325627938634871962203847164762516446394245402920547078484397946013201232583365548906639909688677135842092329165723063476076491027009024059203404080212632096719634554122609888534092030452655346999992456028268449493645115707157585853380059083220615710180458164671352350941882772978710225278536549787354300852427331562069284374472435270024596855400278080899865731453582917395694838404176403387308760112442360662726121163511837148044832408615753130682372103120267262232948410877359541531967260955575148033398528948353215558064191703818289241023554963428595011408132059654794082528482513446651612250363817062621784274097127916443680015379666779302971779024966164321097875238719459675684252115802779658118873231138299198519446626948632406911701441660037405278264258177100734187696739708175058963483041840942913980995423495379581654623677666613797625345204366088520191643154419588202249482310919129298869707585687507180059116465617346335407576653874145783624211794200600573698873074744332087064229672029172657485496500056293989769850726785677135981870761524477970406687816324742380333956344049897963817986393894850658892177831737318803098103707308796700167307094280077029662810916002307885457541078820971210496171574843290521366595419896575858724815633563015665766455591503419301615610656512113829438435823928373283287256805598147214439898394694536472018907772282145782342705549689104939355690312669777677206525941660884232314214229989753842697296961409797175185934051069188884774872838122132738024108130514859675653646263820763006632280513524821542495698234941305019114615700048303053723315328037623772869355981147165585382757357217442086413618235074952257387561406874604170924873919345058274726339164980699266999944918375776299408912876688647256883490328110907038132602148349501000629378583729893060172787452251789148295944565388414001329570817752302106957813674958507867752409288906878855678538174270810554595239858426295833818648213160253547719792534738887741775743093304065121564510528125147851125484391120110058129455304791561653861310129290547869969308104302567985655018505050677174062894808359454374325198648605842266257596891635318963053914094539079833801593549140413039195099969637920942383392008027866070186956000376678018258039795045351591856027764532957765291578549597366157732830074789230209508224403345730942011640272894365213592538517443765039025651785456906121689327420957700662085891594233090239601223390802665504864357084012796809966696269626219135874920249833912064189490101917859371586273132410637605590791823120520308890004583965558563108443316534255154450170454514703149509553720544518210366900458356336942805806939651235307575697522534236005470014593178787292906186603963682019411637649787534550789019776272580388401762668618899793341315539071695114921455968502236706241959872656824036160147239623992640962969634512660245058160968158055854465999260808674304856351923843581234705202760887277482790761929081368823409989897299914185117321004324725263257666021573556835043333159456136735824334931856470846145867498134334726890996422740142445528188577208555782562860489481221529243970558190458717437906453674788416783708151121415049920407967907078535611651853093675082240368785207891421968704460066214806372131362576683665602383137464684894405953578209649415224278804921957912957809233503888549647245891316896690704139594124983990635824333531812346181256253904792286844095970074100850498138574262404319983264217851491899792909316019414388853609883444600875416921045284103125643924364140290299599718565169046554873702273644404516779412971028488191375135912707975191115104045458578829036073126137169501739792049636654597741539613277415860375232451421712480434842978062104216279724672101053152133882822208385787196318064452636095195889047834571057658531713952461795009818362189154047568221731211942216531773147758620459600453349193823001303943085918334837384959516859000879024907845854764393407790074776191684991316905479818806828948440196243702615002066061597558278989326743236668679526653976696421520695805035566566258669142476818355103624363403318540187682722977356176596005092075993982960845864213415120031795833252507217684784484402688968560490711556306608735715510824764711067489607316683340187815996194418580510860036294317482091518129984795346422095549329764383323359251178608022184779874952685005530513859920624786897334024254977482164668734881030759840492645432293220723232886571965964540818150656507206391825210298833444133034205823830652761324484040561774412679304041738876454499123143400941224688687087179840861304690623962414822890022342139261850150840588777085575960429319879179809606811917431346214125356936269595092404326539514937205801227768783099854803485530405787552105059860815102201621689236351608903344008121208141415259817547007308470376682207517179812896982726448392527638911888244090773690034138031023140925987194506208684614706521893518066262237380143886862500194571345240414376564931580116226279837721065305693077101377150063414850237593179311147907105516020949067931628982529892972686936921195787397457097778337290403569847227489865650797923976435241309864012049424885086940913513742672240824232805930912994134940290651392084782985977314796590352947233990604658391225865669069985159462929452367166689088098472849726240158873073657351494808133843133732186880014831653324960383439799638973125455580441296061369074100723089682168668273938823566266073169723498898548368828081171461946173725301562385685122811068873721183181107710823245995319440026389881700547199375189888807626366181184811320669200432546420889761091030306498477849600785386848373213804891544688141255746053398926933184100656507066427004334484100846125895692563469675025567922686610785639120299982578921557783136502603782982527854377646874863544806722104191509397157002594486601844385178098827676729724513610799704171377570043183084402155910074534629447104685915324278650611194779763897637664942448258821674219888761368525416915838704305849684773013648332546037154179858224026543515361210700636582320543575776227186611292107397249368277261154666267693519031835246762744882848633342867316590589279689081022781641438088459274533687587110520064106215615044466263802449958034996921965543376460431565765110942604157559888562535577989870481589943175855347348042279767851338666027036618735782041457005394587183976005139090407037781360565861496916397469288978160499635003629817989200570054362931114098135215679088470962488661003051257768027708436909953305484921691109937397347955819619652120198716722563989730238283544759871658492084140152729543078608866834641930299464782931447060799585974466308954303612771195732341590707487563343173023239871474923048337287530557466067954209007261981552370454539717951099288910354814999817668977363601916854179882183827675180476680950932614356569225074787522362215717983994178234469605474403787523136873165308654250088353444085519987959864515162711747628183842992354960670595375230040719887398129437923866359951330784558506918551656439134260905549539207179859344761655668400270752643950589747425629872580234821985305874465755242439022403521760733332043175090892257420557130572938663543870302527528313241375524322237729046569050354130147998935505180207140053589067502239663543562203146629556890493286388513049090155541413915536166640469729049198997301448628102988296149042182802565056148245681244985159108454026010895791137131696133312195478652501120615888645575462818785855549107531305714593281482635486624324097950419968712954244037040381930502430685744308796834403067714849282852357863238139397380204513813203484411027840869297919441901788296188133455081387147095260109557601767542988290236827259166829790843191613959869184648437467284497906061851247278911941781524521858245640275058885959800577099796686854072038659259882641758086954771714508472221854529584413955860807090059210541950945839759674839032715921186643965431982937220951084541877134444187990282169261641427605301396035322885828049603607601287022021021253331356286788410014686209827195322160895988117279287988552376329329557311872134038828046458672188448834911060535274494756566729452089585664590051995542642604611378467618026875313668120738475702986918068306558681119630255556825801559270417190281836223193457012496370206919820471484892143890828471505958639777821610375141449805852293405434867471671031479186957802989678603815587578477025463154321659105869549845549621070825037583777196264164221783560712146863939528694535264946030937462805851425143608995161498830642900608539120361333500545202324730102181085311002913233388577894927090056584378077829274121286984183128793226634068381437452026842860793953881932384968575277722209281747044734627900326350946793357489124328033912462651598227857237454163905139496369455374204869068834628382288081413853156643431100699284955184619011858980007566896441436652375025702910025064138780524168611766924672306376515279647399317327148190688746643497730357041336711647189653015032582981754448493948536267886866142296972986737792893784686717449291245620907860993650653415802011963805268533390005689239527146913280211583048626534479177444520592193062799365883213355680966901100841186720767037934640752847425567955243230024944602533497286862865305950773888589147133236079704913809874196127157408918523285002486648519668318913564622364476994554522246890379998439905838332424369588632862249656559971978426325482711562384945249308395575502503200661734315667154722246456162670601165605855918896072612038255555527298648273065221984318743878863686746552273287791083480270846666591602081598973173309718785110269699511336354038857935254051591665610421288363962083992289120980270191385170272412363597501107796956338966825643622560867801609759849390277706555436680797543701744276897368547666817972909848526642902761112671523239050620515509232794525718195348796276256919422453078112488854782195761715148379693279467357734397024424021635048544742419232203957471818104992546181921661663591390986731022514443824679867266590602839926547142986678810106238465557084010965133179994639863905169021622752323798280157708811472915505324230238071798605304232810342217753742969781508420896367889960830649187362062449446049805373335772446329302198095963262754287564332703333355217954728611870796870605232049027787843851505939725816747729864251215234044091957145925882175654182226662725689299609424576197048606685121393705764164988737448190818221337028238451447278506048259063593119801573896305687187469391899423086037330156307140078009276403384716034765027695732732441416905481771176510745780529845235095425912654899394237796795583730401255260193036623076879541997378678593532190336287775548712913778857749116807870039701505945392111185819160686492506882068172826131407487329955297168360080382244253683683704961796859197108119502071685447736646245465568103325653878665271939813618729291465417366401789636298399870898930903837876306125960749540560784729649180599458056745489939579911188575906344979903440509696002853755374892047539224217189289673312433032153616832407774326363917966041150481734860582528134451994009279042635253991142363512312467417737468487597152978672182170461181702739598963613958720519186906244367302185089397688298938947258136890152126388127736070556796996299435306392824592375753297998837395918941177846726677739264164492589997353766283614131940770732312560797839011385189452058997389512073322455790862221142974360649232548645150860539174273791625219720683329613257305686521721356675435526988289929485081335039961653528457304206442044134269042461936418141364103025685321421661837573623468245705812162648776953534068521788458497640972931043970001129706885463853997165251049231085600402916673625641129937973174389166942429505608709493395795855697610514037278663549698817749726624328994649563793530071126307952329020398880066745471235331546274760711184448763709106672171058983319237826314933040623272527544534355207584897095737253461782920630158676491863029155526955415465872069634415119145315346498542349638052132031789575544276060217651482404734343986231749551294896714166464956156299961562765432154952320123438886759542859653564676659933868325265860114891478171676018079204137681343420247388426939655998531330254692773677191691365198067431160695447077134990997689254641137540443387396304831837779780459621338223603042358518267344264124154085290586251743137186730721150190267410322124982141346803631835228750590802839034093526468231211411456218167733987278987522317040810276368122867847754929190546647662897649258823303750088647143752569240528902458497295317295556444540758286832314777587423690875884758165138745993501001292883391648687430194724814090385970424158094526580328475367421954095689434764858841027957099711252027686467002858017755325797472337465782680310470526522629637401775559570221180793738480265707448142925369860756079266161872500973997010915662833904712683308128389962551663783169440574281931215726335832113958958780585575164592802376371300102549706124464696722581848003006060885785207717649752963130480213605909712268513351245438913692440196264426726467282463187420944173715930468571871319408495293890308585019665446638383217720433347555250981616857046062605180484799228086374615066975032319168718697526238152747597284691400541573960558121125662147013997894325038403584875072885075577110560326167723194762963297334378185616460120212203942587173790165642931558767422025149473856128521913062577798262128021449052840669912526445544438352534129086435482285935215313037324616679737524775609149421977645297579996676842425400758808193120769471827513887669136922504405263143530666433394417159795948691796743068498079861809468971863285209943413506723083819813545795541705663999064115693681997517688156726197476085745945402163799206180147878950661406483507130604423243130206565920664231035852035585144320509569464843553575827185695570168764891554628103130990464035790739494313911405680591452343620313337588240255396574449444634663083415349051430328438349330816153278720468762883155048125177202141964130453805744373137043355739214685870529655367895673984850357426033987758731912834243802286804726740610947232129116958039364292445453182233423974746412066415193884166021302284797868247524036373551861254198275248570472454035205623291100769370176345265366030241846432453051584857457024140865773913715508933494826109928031353880140175342998234025400931570992494291858126659413346453677887226516852233561451193129868067369116509461544621206905166626364504699185250085722704889824491406490026008053918784362654188902866486728824556713382433853080846789954439370029256664649712305885129733653517946461092225960664104928289671002698016160820424344096260810839065162921890204678489040954039929891388074150468834659058033288260537587182569963579584600843182647883931640063681134364240051490235521535091242360360522196169611118367437528551009286030868320895433853181231206624827781188065594024319723996796509494335644535012339177823304989397030540917570573925393726114978843664662506044333790619406019697532155143889037852584987312910995869680279152948458140633579444957903194748493446809391156212874932621154830789245098987601891027842479871325791328169962144630083891645488752626035342613022048806091990350297790270582143316619472124256393837622689008451010251443735227152502712538416601307656259935512083713240132315645800970833107351326547490061009422906225033190957935722447795570697322825399701630519119458604200978706814369690972096047441898463817517536371424425136076775207490190589778541471852999786339599041773854533936471272607372752065518514701117251110311427194072529163031068743240585598326258926930252162259824151978858742431603374300298710325562677055016696441744501457494329193481177858041529393272808505177375540108639895713799959520931615584536165551247870677288846888511082969113961629068773032091048927323257100376055037883000301512847550961967403731074559430929989371328681601422342444516639974191047532953502796043658135918029699258131239704613241705254561961559492288188395027720047318096793277271866414363685289304226804017150956123396339448130353024604697255337448835978996912370017318052000408110056458680482642792365132944193028507808579473216124728675757024571351532765939751590078658869523241259900588524194989934315485044299415838957948602565052631885282068157566157641728543426070120842333731066147778182000842391747568757692625750622193895657101833740092540738690855525052758762862190138258085067421389990571133358128724959661267561991825297684738971045860308546905344825626980831622788859934015341073333008880145881146326902216507368688405943915355324132248201469255573139215258796548625086826644519090279241417927369913591419599842872122099891066336675444854300739880630631075408717281385732879950675107378984451461180434384455129750327518671986582155887293712936570603865877368193927201313148541814853267343512247548167382349189081625381074225256411444333759077635107196136583830624924588100723080810508356289388222950665438880950127125046662313907920138946894396228986229228576750890577723814148110714635826386076479704650902495954000656872698754528462232937860290033770357433974249653873016689929093033815495680242766288947239277572798996366701214511714204487894971381355266207328758509804487295392535103240566001168198649307787693505683886537986425525573461140960913413905593582787890069076695081145702061436042129802938857903547726544584460872359840646898743778732178797113965918510011151431893248036990305181362642571093083620660041417317358688279781249170250216337130530739609425818695894900571738200410739185196597708662720325426297297735064549858375098198625711421658058670235509230443497165244361324392745347870646964607626659608065153751010306888453512293368733361728277529130719253523541730843147122307959342675195290056287531201048073820802514264562838228462668675140986978528392755965672004190763521383825435359449952628627308128359126156082290233879049126142240626822601326568522093053657144737641715088973888520118974020268738153954889260548301608424747663409448736323567639777587107738483916434098541249276821672921405934964131674144307459398159039102434984706989437590300854770209561556308840863354729233745508125370668156008885494671552697284509094783871943039814754593022525635806610192827715349152598452978566317851810527216274076492103038777557116658407436090734413410120494461693079404145514529629405300138760166244850556334003557555904985742921582256927798780658423597015308390674915100434582448877283723435794937397317882933608335816254092367872920802563738016405708758619527248097144196460564754798881547856343811053132339975755709028750675235797549777511495062940196125931486524097518857073591541998183852570518013553430984509397227130732040195468012461144283008812033982803172680285993077234771340504811117633574828088661892722199649885665811458427633971995197701142896165113197527056274149021511121333848597839423511536269104882223713443073706074530609728642476362626530138730411692363387366046792276486412091820152930407631101504429809316907875833569864472423668754916015275991742494733528884860176378468389430387811467102378879863347359500221050060348690064394499484116112784604541391184695909238160199830876637116558676843338818257283594065695541107500845513751883883823052924124942570657119281217314276058246766690246834799201897178931674481303108107868425130128802120228939257056621407680743759748885346042681353437716541065620418310345949940320383551338783947831528214387732301860674274077013003978486200729407566129657460248534354511661821894278435187883946234601133522498069122031645874854632439222706636713748308197884869233379065366692410521272731464363670518276911457125656086523102897137645649486535204180551984471845857126754988971883992822795810328549556280987594931574012743922001046639869419892796350504049172418770896114922046481344404241953116424344519659125327791867033765385023955037497460037407348135142338309840826385369748763257967549104081900694056410875900414779283540049773010239933615834298246568309083583960897411640698058858918021358836756237133754084312170045694284852784451788461930752098025430611663067064785207704562786488393009424889054683460260119080194506991100589363996508898566727914272403832911391866226176835764744863403914540404963973101777860218925096674000332934927649352128688620811053459474494370853389983365417464441203253761291259738435626427494546434082141327380837775746797653847354389301335418544605002873073536645774181831293690830468200492061858283207553219886094842185825295874593247225207199290318611536227298555853959682219414968958736440523852981373592649048416652769992599959864679539761281675291250264923269440941674557680587386445782663138619259138614128877192794178555056116603651454058400194758517329658380151999342541455520618081057519277552849569119872582956749974703383358840672908241720577536008905241320505228547530365995631762413321966028149557738570728435318259353388274885634463581644516853321907101408348850796707269640678785320432092965192486751457228510580636820059371769873667890319493931095457910284707961927541167055969865716902947404761757122697247846914168737690206227262979590513200805091892511845402072168876735578001539612458977919349424830050017137449570620873761388274231281821929764582002957083618001355678914892485930407949435125409477323871208581430763249844451288896524627548542459889129463051497955309108017301567195946060664055950657383452017346239439932749803113297013266239997132570609120247873789754511977000165318416048642151422589529428627582147331502088723315786748296824111773279468572872334489586825482821027690595918033887707961352479041844125007123449937833931466234318892514223097918150764353216571596455375677790528854811060891440717085663538444134898234280086051358625270590403428090839588573713296542495895656832459372001463401610480416142878228319969860579287610476173238143877440466643755462624017611817347810774877276611832884203339805578681595750410053727659643193171703705169864337089535644554984919795111088637636386858749742668581294491455852354392699534051198833103227943553933068252039270861629527911315754282754640282718943526221044152729095498280290398349709440622270433214932221202932678839776763736672409413100568142602381504257935595384488834355930628893287640812474164975135515270075672379803733533080755271655461248175366963768494976139660579741571485104729101847999858248185201295095220999002842661322149116474559857994156506097159232207778709808140697565495989951233875463336407789433483343327867928442421260368623040405573491720139414834136881116903647212186056863745845346051347827868578768132807108869805346292903890852632010196793105768013969231066803260934415790466308764129752279614628690385554020990552396099284295411542392264947385003725736971287980737630097734507558188793444560331116712904745313324898923969253824561172787288314987230613120062527991174744854494249430859194897475752958549389183766280801096295267375564356522865675212351907204242274800322735194129324665749226641220369527184288810512584043696194674797051991552765376474273686496692401306284199890305326680541653326490205083231319578345622983543603396741834225850860040101387842956406778657544799020381552365793856148455391595185227226051200004771143592609627479265996704350579388069266044184014349059752983859451765967298698110747928403684420649408545881958574162292764253362048756380141629845110573013185493177641583275425024642456219207624778637007663165982251614547808458834758710636220661506653724362437406646439021250808756256737850630270810191839610129434801987610336500701516105475533482646967338334894348501069985723840230850143619805913351044754651991345306300056398282793726900786806884760913962823178299069811881734690492913276909741960719499442626154802071708068269645643744201632997563115121239140491016846174433833061993905550019109244609855631460200718952469701532233087302820798898694094753878773032235230011357051011432080469424168680008927283328120223295585573232295265465026839776946289629293413967939162523004566798423988605555140167215647180953392329807855836232962311017742581856171048501090172338265740336726605444753375625720132500351381224603857652634029842946781681678775004732761487999416676983732081392503494140024700667308290751022245679672394485656593131677359919027725868338009870948922264999772397244804578913654660109889203815901019995913455804626055905950628641221018715165012020959434795530452930644992774733159006301169759151641873108126782225369347713811094572588332682694200556398888550188282007276092506261770072149936472908338228948268664537650514331084469320083955745099455897424090566134147070090068594081839339439765593351409538886227780350247302328876453675547385788602315208008509240037003043550583042060992102200559706480225165105748589501185713594971461263336780637788163870271686911926876956140404750668423296567603839607999363303701434191022094705552073988963111928288448197731239708487910677650970965503742178578201282011023696574017646681526149353151178439852700260678547217597436539933343101575485948917378865942151010203011743036452443674382814548524419407023775094122246905496279402890069974291861862529963582557124838877566547621606004261965874169311775615684753804039529517764249767381986605904931261096079970221474101475726533735400450599702330042829706699840232602941565463922861901827379317925489333105056425921211529953424325124018776416460709623449431156382832953851910666637205797443890463111717753636933343697962266116105249976304722690644933711780193797245474658316136891118592560784462107801586047769551686900565096138475690665842833815256837921400135962130378150126821662533699141509468990505416986989254233996347304148355450409877595110686160305473053096853509197922485295361562909247790482895438041536107205388649709373099158084839837738718879314762751823664413679674702770650721742581152332244137970973898532008420298787182557707968511531230012975919787581103367278995739139640902292024909000243401636034190814361558028227025571171973346643583690905347834349039887481428572077177429138910548993615443723615720993591745302008139344903877683820767333843043619942058459214337334236187232917603114805902225495958688770806644931517260656053315400116497277895132522764453632129557921909360283100365185280663567830922974983798165949491691194055477072712591627611296982614583539868521048286281982510375901899836087487589681978646791492861723441215411784857538497415188788036894623267521687747218535644782730683424360866255856432724308865463804237961549129856963200107115771254482952667446408902513266070251367077789970787718264831010203092516279139612506771161470236641896107056377182383183891530808640615907003887774308674636946595372637271234500749090989888592383617766604533923059575654325234109407115555676141865631152882544510384720930199232009475472800187585083089743110611043463368144236198585758230407577694833509910915854443409018515376498285336185854033577176413265265109011356126094982103246894673405115432407466785220423223769077122621718542080004425577308869343331520750517816051189260416621114112038372403105038682713440718607955313757625524092334934920051206872353126338765492349014742466909226539573713857871854199323062103449890025620170568037250533896975569093880059904433532986943003428429050806681015788792151217122036531586057120331004451100560411790148109349718019824705478189218338467586430728436707641011835467085937576404476917878045865911079668642691176879615992892078768690808652835870872389732669067445705429186143196223033477733047083780515048894684799688309576547989296132018111485155748339807314368195296624258088030924762919880605142416017854504108545083856800262976982984985005714711965994501894308667384685715236720694987283591918826160216547080600077246169007395159950865281169410630739880739562995000593895832974328486605938169041376765879688409539895056289361281684155572000701895118093578596776929007480825378363933576282371236770296085467189157087339742085569488646460378546561868364433024120657370205281961986544649905030059643677960187760839622616622505902650281525295994142182168409796860261204705024916451094214963875437744871750422548212283829258595514172413844372842310381408733932066525691327775160455308148819979412701777923699954497301960318291585636734740597936417706893369950603305347592505008631016326015432441307974035231444885993538653818688040192255563713280618605757000551785685281220899662283834223731522195301485818987034026636746067937453900535871867856122082592236500303797395681127703250314163332290544622657007387806618876548163099019194471405144461104398844272831599545939512228006688315617028157946371941211956806819212446643323347083129498537962618568819215086493450290825525321107401720195933720513940565043286895542938619378998501816084235135057109414353312556777504749107523121624186044631613298631282937601803662694248662175889266407858036850339126797334826626911859436065706472805171277830809847092010501854759872540511019451059486325448847989209480724180105283176406256929974020810556603093066151779337849574437548691476027981109461074805930388669109917526610172150823017692161549261970502621885335200317666618128589911197102377265567476888704476585402146467946980544185264070047669795362134871119199330584105583441772719764652333652453817422778153694849315598431520903721468201106531655236203752201330196799070845932039425402365371169347039312197607926037291460642705181631917700369903145199868645668856298842065178467984704060898784178638164485191187292949158174704455047768268828626592423269208977638361139548810312240021405525215838685493039582954175907423380137778321940735866815840298532170392038360962839943707458606475460480550151188016079330067265366326367257861777673481594713311350033835246764664102804441641335520484095453299687399922591517846340080364092801064746107597001552385370807510621943578627930483770951596438009586724945291256327604077982609128140592296273929685320195023160708599980879744361877887664004584991055034494490642231544402220440258415436683033466309017510552952448161718728065914714529668644682197451591079855672744812902909917193181490835467349164599154677456884333611559108662049637695707974623157940237402712494423616802562101319117721788304967119731313792906643870076195121118562997821552358944961410193616818505232550173713609750558636105462462651851640699852360700203760961475652797178062583636605824307686552034431571357753494747625893121767901599133853223594355806810748304972696915784619053364554549205416387364163788352802442735700875017774086680657110843424775372732236807645621264414939461921157503266549561313787136544150998411527670501545612946977323125532879837214666274707466710207956692231197384352266327699446944069393873473484276757817830818854389414893853773051440788028025198750135510195651090876206410810018708448752729215346388173237062313026194189215934502623998799118156251467614774563455497087766583372971420791512250745052783277672048799726871499976821767044938019562120161048603651597316851371630769591468039750170443935147464805004037573994648725686216293793242936169496755870012576392364188157365537684053097709644034274856693690138721565573851264173081669439002976256306278532337037721941512124615714181624449438125502526773620436026884705386607358382405859730853817068249327439662564899287734725214295568696706671904134839370593121636522110721267010903337466219379084345019065316302511622185265652177389938368414785638126836509026445003708761027215395475247741152800383500876723410916800982718441973253936747373517042717275568616484083332493193655010120526890447030738505642700404748478710360399858819218735832534834908004399256593604727030460557490757520640110039310307126161307966843676065762165070973042659404296422097516278616178372711795381457573992716713165692136951702048081456924912730184480030209625357697912168075188505311631361484253460084604673943757887831449050858816906183809687725858676598246769917304383952166746380284098823371617505390023139120799356517461792568284327784674740808603781450484624427904710970957532517640024516056140567304131165042318595111901786848865558931836440725992111896337719491486080433861493360743942941590847790120351118680540582708629609414295826350622889136636741852330212886319079693889411108472082933813993398741579830007311654777637598391283783952113052005738546680312476363784164256822158001933591916840560389646126298164664336892782532469270050983701840120885121162966827950357770305280591890499357597838259807114544096500210646361946889238602591593282216503072067160211705914628168524559212192558247321272721148054720175669650951078405917459241942942521416215959296395740972888947134932716617198769861336172295492953729433482678035644616274635009764844706023042984353885480596757650520723782290873701546349632664153838723784047246112229316536044047269959921556354582846946036261859266907335754177349934702078381341342561815269037493852025646902023306756571460721966261741784158709146897135469845340776511179357931901611047906374179651337959489698592139798893894660023882253131845413051948627463177917836667895570836901526285061412810134594395392262671684542300801894787046487624714391844410344227945029960426286823157264699827065890947857793541406898507562889897537399373635432271961383897345309167137598332305341043663532404424180683120877752114033661778833821469268009808361179249744282187933399430243429127865669338708996064547717929610766319987499857931323670775397734760353650922805322661973865073137200068859722896954942931101965838437151523321297444067271232074843900407863877268757019579839852227228688435981289403961124442692671208375550250209536698229323747809058129670359928858746761019687288310774391376241399617424261484359158722511984211059934681414079892958810627361665670179187439189601842371890753800288052331958548299551659793250694847106899684608438086290375344231442199944748935747748176171719397292620417169550739879373801215896392956879906139325097861436973831929603685942969257581250997070473526821840712252022349315880426410678556366054954733092655573451684521636548494900688254079635255897718407511250129745719169344034420833088769108862957333567134602757007713262027876080157911963174463635037345477425249581893346567779652571462470420768281114722807818198668028294085070556766293548863167633255866649012622119472501596908479042731437760398927585974925123182689332004833395132749241032315881859641155978933958022100043089375884552870840819940700306557711111814089311175570572068210388733187994840994310886776464848128058267463618343447345789739761805034128144275431663427336142236230106583983953154677337515460668378315730721467965138802434035355413530818217794712715424433144044457600376294977127012105846919458558557635285978590573860504021693647041806808283084275652998208934649334543534696439542613945873649685903680287873496426945349422809041429112001683307211032548050260343296812116278261487126566125602810286271221809409791998410031148788716724126819029003141887795718323318136396900336608254990226814106119919887003843817837000102655287828323907334883255838382653352918865955912805092057925161957612666611843788108320653414068637549618147295282946995039578436524349807591781118300892175214080772632443806814102653556112124383504755762540564149551876265907893993825099406875006137134251056691866908097676322620293702238234349901928321639095562698529509137690005669439456069799800601719582750813402115089580954731897880917426194765500868589821852612948299915642077227219304538850049272189044096822798897495345332124758930746510261808677189672291154972903292105278405204003908005984549746194968040264364973876631716271071019803304266778913249560123730944717279404569773810503788721428368623195264357030841854392582078260923625732619662994276021328892029491883140681738904691239128265752358948274303660279646350108119584069117724162562678656841101940024122657249961137504712874234505355751178640489409949560828491377960204236538736357093030332965590304555023428113256165585465109867350430546048531504372919911286069066014460475771336095567211824562486782047590131660239192153363087810742137910412508366196653928928548731705765738740988830080133898228898180649704081992910727387247002892664613977550602231497927471800482313722850694808306898433959892755104391348305182404249284366233324398091897404227890984247332265838244423550703738255471108329905134318584928185191900132297564403652250846081013749364604172603753331663681683665098272028107289797987466143381310790828887452148966488791401838079652086026634305807378385033314580242197722212037672760812341087685173608110014634805062696476195802415039578812566800695830521566150346258030678495284699248211494158741173677057782216561064311741350904968124227861557663587255653958909521520417434607098818694325732009653321322377064242651850256734604601705924967034860599556218035242973829957342077120768238801239235172668527841451807679504806066688255836381528775892361161434527772342847418465765274077166172026951723637816597965624108192169779344296873315237635617332518055608302244244423095023751639566996289914856929042544085739942845940502317541793460284157980150191039602384422074057613306384456229188581888687022653441147534580442543320176304171643247248292711549812500671381248823068896262719919024843887234449911642797936930809960337679724950403558706037468581831640398217361596390603901350724232646214264602858326199218687758697184985652711556996961068938200064272100393924992990010197432567207953308896114152669421580506403369350682421330973614283417761895502037492397001157189335728234108986018449033137033479780016827513678778589457968946970916555251573322159998089199013821213870292069122000341806528155854796472799942403629281105320130067586349334587538199765371594286286013735593776729480666346810668181684337673411356188127312045298887240598826474792212541730017443203908447180028477822689671343944608268877359667946634739633892864406844596774911936866009076812153856549276518508542632369088512734432277395783786844313803631188435632504214506636939306428364842233953692712952885640884419214768812551225648273828576514165260876173375694173155078027081059458365673700779616688502918497294405355183756325229156904838745443132448893453212746992101830013690996866919313093557700465813308575041992589276256435362040794966593646037521303189405872458767710706338699414084552629903636336923218431096353171359784206813369053786573238334649248770463231076957251974384036909548849667590929143942458416222355187154795229727970870349854781709864074235304705185598931602658126940491647358613277679305148600895090974430480227151512662720416653666075969680144183436798575615331169749884660706505047038214346105054789031496136899513690904090623053944407426260320617331528114274723577040801267048373215336682660292949306956041362715729556635930784281106816982962148286251334868047057646414924335261632000610101976599528990723397599206356016910944348773375416601032174813398701752261263176266048911052742396919212210248674132075622257791786397353060616150536734723652175302959669431216244095184570005247711694595445712381522468101097975442926095309812799440198761380587284118736120569379531993592846162793968802849312571328541240596334172049579321352955976485613765914477869135630341883333425963873245685008022029785554934683401333491592710403995025565233838353324783744624969534008013237331310266827613921567564835517995438294818985681814088342116407899453697794203596971701929876476369563275178549511421387714582218871890323598406211812681481731433643589473622170295865128961233255129548400159362432667932457811382139489611088214322334212771976755657680747357868369957985842478816335942026577607294025875872212249069526526439470034297009480627167425242095322760362916901115536738952005941749780017079330304169947354555833305411531994680047411654283831160453739171007870521097366078129462585671296023376910098924324443645675976939687562247020105761482264071662506952038772118664783761639310958347277846231321554137379357199801132644117753483374415419220732007205552241714251633921784283640294185845003435946140053657756902759325221927040737085726103637347043179829989192966183619716794331712337741014506742593625223487568795293681215506178358178124475454382895590694777633067254435560429530504304930829258963329757598032357802007787763707150816126299003426087175903589046604943966284607862612919945275580242892914263139104899172175109186023438397397431247376359104674030025276849723794746955477793636072566331876205953376005078769002812004856151415999487512955265270411692633748159346885975286528697618335430222575517449987046338892638412812154291361224424782496359816144040447710432609488866765593853404400641776126322209905436656537683984665147696942251451719580936586064729893307796414829975525085412037307319829383667299997119553762360315087656507279144497964779950135377279781662278812203300066547973902260322855280903715523474322846832134960604703180504046582024940509944727046834055218813878408914197821602320608457957486803602840196140666993372096335060656608641457218938785552620632074939988279012565022847300400679360653569349379854789111077677531481929321551743116900227736379560458218720128039844226411464040395017858492283559845075397582984687022496792458146756163772886721435488024415970670072883319786992061130777961033785914477155521696924302465183120318388303822226093412039936396715046657141781404508728110415379366301172874484082702845780391791407089783264737163872790443417245903503036819157926011327935094951731398799047086914674542968300717439530453868178857289108125436194299829115594797366289063080231819663039980812844386933365221648710473631458306961239745698565340954761915612564996556163929056583992088761367620127418825199193377711273956532042168356195892717082552645067226070716056109437210495549227853225647478902698400882521851392080051812084312708630180461228537053009967266288890763706608843044090443767214316194005115547031022052256111104279498240369098925785965236782217779909758129611748102327279584250777199050009388162698751125977095340293481458181662074502676077984673064977362795940994741813077430288970548185374663556397256613652310098752118718473579835098689277384768225736001451674369817883782243476943900895053972494765539095681304473167363498863210982648338164190900166507660661168162465441487178107393176573732748883147463194916655919572923036424272633942429819741964483518542291333583899113944584298618910172722453358181294122060057289817019764613065515469622144330903882142845127928461072325326390328834670898084786835383301618955816492731912336555662938380317838182160611648462256459157621795272606172536597252942462175925159318174936736319884380621859475189293537498398672861583224037214060794532588832353017438869981327097828891878942282004884028033738272812129589232299415233125142285373298182877656403610038313510577688724057667783269360237956112923668947805932644526215168169679384229561990857135879951523462642128144864000924183055465086335846947716876998782310715346054605197568642220816610687364350599318806431498893009570754346291350173551505121965968093032303615425515691994451094500736745161861971748820498629766648130863015603834440936387280594937887736495945287779904261131883752012249697437744866006785121630654348140946917157262707440413658988447998410445893609188900520490433391503066934222344347237669332413916230138177330608644778414608505053766397460856063598188850722593047144797444032131733605864858073423059973984363590516577959332120077499428252428010464743402200322461581695178212575713952962427817256873064964996102274951802419906551983097755327926740545660705052741334182697300157120987802488203413918483778651523196757616570686126734904463397070548836937374836424201827768644948408242256926606889740876488061699432127443807993163863058665650851431052534481267364494983739005969893784755333354605464431630636093637407053192635650047175456109188083240684563054832824074441245981019352219566619000001901416274039393725643128717907934642432602194595727779444613091519535307087246194915931141089603836538052463428682117947225506060535272994512346529804931776884953833087010761307096925265645095493703642070367681398323283878068654472156209826092026380774411346151902669933286774408065387070664160629497716916312255261466182878767957269539399568998851991580078762529169714322496670002437888063828891329477822083716047020535130866593570479521138458883856970769349353777977294331372313208275311812204092091193349056071148954699558906122917203538097118041618289122915952516635320192530132730658916009673372278420080472844650850651864577812202895756810055651337402249686654337338324353913271351661528135409165793094491482406426645040128205195873921233906586496766602365035326879534191165037020049798492438358307911230365778779899994636744140456815759285913604734450617638193898459867092300247905352774335797147308657431147286466719768053784122155940220274315319362993041745786304437941744716969809434955574497253179232315488033827716155402801641955314343593231389066564648536746629404144753652395937270193715937805905562528263473141123425487406754795425566760569264659206067324502781323566640914297121145193435968407369886762525389665163082285973448437428306499859430823700720873414584038321078107423250722433261016958212409353375490532890800221668313405644202274964842438789601565796406007620511738863184121774707151995757771676008512632678495899732285234510547486413188939913134470858939829956771128433061685696609864899188863811289448579014517728349718387735665951884057965532713702264102468404070409365530451629372625536156994138808544428265665660366408623987705699165651739516244750759892775809301889975131569057564703841986553435674755853761621835192808302279719756288967750957880058411030439903997086331380281929938028713435940975210373988024613045939988517798165845857907716676729303036850844475249482858038503731317641702684105959934311240138551670112087965747990007087551904092106163633168394281896276238302529069007535967187615874468634190340697046554905798818921409864920183976511317063758337519994042991892257377300372720691087168417687264666200231719827097355383316712275441453145333646446318421260696559602316874371547867508241156627682121051801957770220183599058584076087783282634735380215638720698009986581713647693446682917604670986346743442516462016279184046588008756278895140958754742888312895906940882796527417745230521940406992073926420803103069382398673753032369128988777594544370574538780830008219178057953431618384684368558930032334434272520899689895984253614255370941277455141455010574942390813280782407135566747533023094897524971385854714521746247899345392684007958595738773139698768249856765691771489341247514331748510719942026726665037340249746895209577243779714568330773559751165501003233294311437301092847566170792086653203380563378907379515683242036809633501401456878815318120164934028902985061636408854769853550410383376617465813911699687852811991162619958632824951265135395109909964449773490047666806946265006345917351379433048187140125752428072700298242493630563744298562973098630235883326093621001673204047539027367251894196859440501483200811421604563428253768378798866542771642511796913746499641768864573877589244450713019908439450151319216186722733703124495764852022531374716504716588544539861495845415711675892694930289015000459624526819964503766814880872208697587407693355732696888757321446051533758479824540142562755240936577142914875624359744414075293992742732781011220968680852772821421393638459106043790297040989526182917707731591502316183107233183926795577510802620569725652221430174427216373809612708237899688165247895011611768308052547192718118786213987024601932969114207009944113191804011516810040083416469935653148077634564115691259374791078156822622533130257583518643303025040803939123637992824592718274063759411108646910215509819656498628257951032543431759277168778554152022157549971453543680240323968427492629372380876831747107967389407451528907683434336211585324750311026217901556487281775178853188477007219864836527703093205377183871001229963288970977481552445198835298973381315471207075110194756853844278876998917379957721645629756531883411965496576772625714868213979866352192473496232382949391948976358919306207757578716551145568664277814868791632746998593578770831713998085462691678675808484098426596829467014109610124648305619115499191886581202334676806432838579099956702548030135247691449016291382568493328346551926123673806920070641008760358735343044489155132196013456832362638133748882281626552251379245418482389008246841873160056273541816540719322077999712862341764368607658966104832332354763290757126290024490225836178937399861734652136905060501973496704280912319440782486949212351283010409788589625851631742695199719575768986653351479013275382339001760329993430084065552588719515830455943235846351784730019635748085329861537510274983513300026707769033108733143085350934939665045249126049070719984204904691563154184147991891623475680861853462828882365370428288448641955454798751920314848513654423392582487512552711726941832754490757508369776507081458252728193287395569659450368357941041705124732327137522294165109955280330802033221143556841840208244567876116374131168783206156420204436575927640178947983281905556307228093011198756557744362542228794257571698428880106082292275745720183730378771105569798106508496037247314544203752169755489868445515022110842673334135248512731854476554753900913093554449365080271896266255885080538828891191068798051414761985054286190541722576583403678365972438926333822155359008212637486314300295840391714318100630514158461757029126650338981882147763977853602086686861335665052377606419445240179899201658049849086675972197340995781752491247072405404424068924523219824670606784286953053331283686397174568409693548985915811264714068379174573527429602062102228224286693535219844445546658832627696156549788253341632670935169529981661365712704475870260586064714993717110007049509518086222844060609056308064798660170185048494119138619099340179331805607602889918262159327314077296036954870332503226402574086505744124563300708686429047868302575908705714260935833196204778811606332875154277991613678328227442150991683126532467644484484582994705722788613330995409638875909001484891636062871393225652452589578624553178712498783041209747306401062495552560546097697819072886954011437632882038179438488691553008379076646681582864562152783314086523448797626057867350851670956701599256517390069915635321680969456813486458464554802899587766949466120905934551519823012944391255174447806251754267895450139629067801638104828345810813718206747458102987068945595974013339192013495410423599005796873047976149414687705883048484058340570309374637941027263723114114527341806421920111552246522082260020298019543775631143250844200965240018856017558741567406327448690667893613294060865465752624638115625081074367152744867308120031006047341707255962164872777090314489358518886934578084083284082456962805486408089918150022334779754520266206756231886648264642990444656210317930188335576739350228183364210442739552264642728295705549788955047656781198174765612740496117595829102811570790321518195572429853805408800127226585813862980378861660381474465390117792670429968157496353399461685372604512145860787721638114908503700749406153017531222407259786802813840166988951530659814402592352113596403387390317887048873389489336007485600376876052965145819759509872928476568839866447932872480883548197979265691140924646338375398897333545495196068881369647131755967874772122274095972305523753141363211788412389255209933245022781739684219613932855631059931137008608223566880248762138693132296544777449304476157692111477584146729751691195200516482208205246494248605475088115553587874633463490534087797857084405000149177498567703791725447243830378553112788578149055005849264448007532375907857345974074816568686347966317054988833044235137210454261875506490404003587126547163684401185234409667147216129843888453933797671322957006356722415990628550914294240549061895659228894816090463471483989409866704185990023562647320849482679515112265832428804833622252268413715701689222496382257942879494760531929977361467361165041747935444764445204568413395922441612829200917625813210155529680424092692238346331156215517664851186820107552877782619245888483263371288918160225482814396750856750239420287224645294123741740522586839901738550515389789461776241479898159735244264987641262221634504669647988994130682247832841767414510906534288956075251265089205582893213076641977481143257516013566472891163598637925348452230525573170266278864589471262166367454173223259950922203129380871728399112586618050225273025129454909096017711170054062162502144431552135609890499279782026933129038548286974410429471757754237144734401193854894654862751723077755109363731189790738094663119619481316354483138823286422421289651756871746197915763921720305104154725775599977240358961311133113497152827931352446764386209409971334720786915088507507059706557748926266507888282842715283055341914026372062162533299463207027147121226561111609018066053594708903124545217317396885146404155193364870620371420227532794510502920444988023063062146265585647761239414804599756623496555562922401588958904731925789525510369067360508243481484589939257769713930364497269220752437059595147437441574875636207224967847306382590301298310117236758129489845447534620232780855447775589351584823581194427513945743149442621866771024453824817336879943877372554338915509374731546903806231329507753412993523690807298880603807711717247487370611643878204322899979775401421718210370943498157041732208232577238782142561628807897384682814824478607105416044551055289233544497988507589781536524162947753593258180574990982633213895264313459529856500052703655847970275034119227617392603187258466284451937461240435998097274160382426709540105246815693251387666438511955291937245520779704851485516980321363487194335049037570478719845875020027412810408211234529377847273299788803782123752662951594445696317826003006911824951973497538152117883322467823912230274429960325202528002326977242754355075303689431025782499435175671213508334666081779509267932428534172037218190201540910290614780968123955965297930727766665588798585924164526754822406989611477689140283940876278153860392278808812834250959978859769155529666348081566170973677084234562825429185699606310567844565173621060944547437111027163994327028360339776746235604725277671837413744244970362427792995616410468646124352247343951459402716203969479252005130264367454717843921887417346916422620390192331599908792359139427519037995569711810424672981151087689118850714745384228999641904814756726237353449184533802317244627545048107741691184966643900045808712026325078841113672821457705717757028070015509578477410787080322912919123314081188218615719473509497079870175890668988882700276661996613268154534089303576805551060372524945818944899764783705312772290445848182695748045045326756298348402159098143550525127664705572380124084104165216132324784668523741211152567141257345789113554552426744018780672123731106558874567564454770165933704392817326327912229645701080970896887019262452680379593379914797705227519702176282668741131568159397309569946448249798326238327942409638206019452695754981321636438693164884877489873887960203278303450839989097109224798207101509865582906050382476309681041419280256762884531779460116411808518495633847458157734242671017905145489665653086260790227618103603912302855716689311961697302605127161487589574256083797204899643085691773026310290580050483582147255294238001491482722249724312380530433393013096587707109213544339455293534343970481052461231071015779664560172178441868920156756179633318372010375539421571634964757000227002123270479937774167829486710055328375413504255045734915132422318271135702382984193258615400702680998745407571672612135147936417846157894330085410788921233565688315221786625997054334169360659652960907663638561801775399454957794414909081301239567363522209665742283951077144076882818349131365829741121075886736537201971019914330009841146032427921136447505095267841924812490030225450208479325057606790158089577845252328852673845275967685885246589463585754001403420970551239137862532495868324618184332847406103208504338110442788060365248794374350353407721252394117191340606766467612899088449132915604856186453750035035440959405618914972251865929802709785348948466526384084450311716353732068723741555515021884699594872897243046623104730882208210991989979173058735369017339048396806754756008514294168010045983498789567807649345031639401630973292234679699621664536540131282330498631291882661674398904113479870523930087434182395285066799123408212685852263124195448548175363165102312029809748771066997502449249881242590190065129776315475362228509231703056243476408752987422448940274334212709468430662069044271063939904868720727314024385955878741560536867941864868780225745914372134359288602375408997436024046002512653695158877146815523389590017343795491870127802918878001779629443786539739909612941899636978288799054324155710848571221961485992260956996249551146758952236525971189016953280582710164502361323720314016914504851367369205828588837765634489170453656289477789491256639669099028584744778555017708099513189148515713084593515641231505932551092574632400321136807181463921526799872510718734312888588565796428540589635829772046538693101955812772243267671167286039522128886033462960768887935051646314423304880120021761246683513581830813570042780785297954447295722148206001380117513160014372730050499028284384700506448304172193799373484648039751016764192201533755914720642268105489551552009086284536032808072733961740266852423919681072412455834571565651257566668580983755246941804781749647024324359437247596038976254587656545564650607401322915528825049737597874455025771479692556707496806610484906252458193957653134865849611070584563268374726026748603186531414513169481893264716065806137169883155759271407955680199272442160585383830636532437323355059337203231874582025510345919098064114979176606638012250913974557931118900231563618821549762148030341906114177721336486183993740470628553073382399044004374910481083517546299791184223418496225255789701885584091001627192622448462244409200451630071168670400855285697826519185690895511142392878561329154230477307020982915380170551408077446682733512515654104269466532199867859522321108869645341810960853058049465995723430061066573348823025215978463009373668117343563240940376999696378110938151751987266611305658286877485459675806362257158992109470098573332554129181209430834928725926384419724428786980222043959111348208621544670595657507645303786568800337042057015988213043725503606481015677462524362366035148956073101224409690261602656837907009061859023752230060170292612675350520093755249549064849424036576195474423947352196607312798392202936523284109622342633507790327317506009053842151913701281025168136080238034459225003072673371376968032252711720655967659975584902329335842131087067756296592686688100734586655693684528045405642243574742494925533864950209696217774245148892128634733667401195480708758706249758977894643444418304511202547653892368124194197218550212365763170326768665340668218145915850163583448444641457641991257933363409483687278677752070223465492011705971514912595245046852563674273522332421560327673439197043892680686570261810748771321084549442650333350802914014135276081785793075735730841668327250766401280539246154925756560943450529353545082946504448714210273487230275835514775108018479411881939520163188035976157407263314641361137610712560067347019546731243292502786373879238774174858095913095798855986814725310772351251130717612248173334755936550090647623982346563117717093753671236709882706585976202851787713960805505601312439794702222592161369510706249471208272300765308197485558914002689468236793033647285277347875030584837648429883194669947203467207858216738418754227192121878215284003148272179577108902483759505163251243504688603529749758339578812563048832186433727155895121292695671147512218104666930243346080661921692932341253255733052618701667076419258583568964257163384151977067967910534077869314499858972574051360329312188244213749312230417678534599451457238235046336635433176647675770085328469465668531116870568691457745719439408061421016299597028665816690890005677139096534479270273072007906789840876891853230445103733780224216768933768939775447900453200998360879570590446061883936457000462609184110558783993592716880897656045178461201779682490364466307175764851083666302249463408697221918463682411177071666127652971216289086356960436009881443753103128527099012347969653534319153498976321424313598630712140186289022072480506652207020276048557427863053473423523564424487512755312780356249556360054039972259333934990732840368753220505561386439075907643981602972103181667467172555742833429620096928390347374188698706235285618735759685255702346936471608542063832422357354534253107823138169838442175394985945283535206431102843093832788925885957165874957110818520950416992707626761523878491642267919306538435303979736072438282866256652738407075994091946741666855610588048589411662531612546306155963059494957350752161245779942392054158593650993080375795125615656940979478044633351808886543302231212056830137150845803801111661804630760988379815805665098787050513300882404353608273150098289930838201960779849045183882931206019036964738080112400932315035190835482500201372594950846794822856755363759378499115703535510607515586807659188044540024158894720349260610933407757176270785784037747735975221788274216994037508839711619545365157753381768894664956276505470765240637543972770276403915027398367965414655144850712115650394190543946636109788093931592980290582707173376943109253252023797405778048695193910592474532377799480739390869915852461341476899795575414418684984267100710018655095684151432750792203137832880818107857843429108684515151099453990664050791650191827868597004305387425010909866825305230736842104787094974342756183119116485157352586566062012713204295529299035021984046741833593880063744895982400044705926634069617743317949131423167250211121478917646553309083536079859135450804474541770254034341618551961942549087913309469415460280790987406194277916528950131369494862053400211902504705510004837647230453470112706520192867418337291036361234572192388886629871645147042600846857790772550814877903680228420230678495017907092449565869323707907227991259183411569921009231635801243519408852719852999892561750485251947379494247458799329484491961944178850434151905692337974880893011169628974212782710958718148755404529313897189317305571355703843533897857629465752698799738341907287824393056218144892411173793976706259410006791331693944258369688971350296448171566126781260681256056581431296697407227716502830812380615037025050230532829684796052832840373597212348315323729285877076915149659659848185202865645128231933560337930782691786874281306561769772737072665499370003356549331756300388825567367979026996104678865556716135341735750208444223454531236586854581531515335241000583808925509196707630380517060357405825443561958159667509112478047351189158883409871697745505822441766443083289808293923762632546056168496597790867245255597792708762645544982760662970977363853522198356611584875573572026703500709308361954984798744735983069769806938161575560838696694627133757504074856319120898752952439827756303589820768132063865158654542624067932394666395423445319201334864131084029613099759568355254018520184286042935217645524897829593603405804138850306314989312113453977722223244035252649136332818009256554079371512657871041952904330333834119407409717332670273934803484667883804678858095001878639464430760469796884560944096965090766375676446259812610581040564904510918487143552234585655776127997830392670506843156257886179632654794521192192886724857470736811976214422008006694597511247708797722946469410303485654352022972443136338160891946323072260258198962382764837239833517028713718810284063351541801790196626142458552324250496351883791652237107638311309147918160672092868665314096800272916294541893819477750151234580490825940019970079276332921869946924869255780003641140465208187851346618012975892927001919427002268561325045378366399846541157701355703070332942333047679233686094265643877844929858769052128785645660368745436204313431931230104476272627331877976090028998136807662096936079955901793799907915325589557421701188025209249902516261399710091492326892223665281309579653145087983396876060034338214078611904973908037696052307501485093129267176663788076694110195050999141879176366913824853694353536541510572388737520419816452486023824973779279752311438488033930411781049991175488295425743846272122714654655559944306803462119109589711897032144147363922965750978958342596304694280414910982522888129663451625922050841216651965152249173513382838725108426022939694659426662641793865130575244269386791921477747100858407817658443270850165345195693975967801840772156032325910046101623610976239131667221817549812545849309385621995310273536738538926348824414242258706221969989907111204349724167760352752315809125702866846168064658611069283897022636579904009598148417651977640254277452850241028104911321259601163833308390233714404936077835305713746844832787258144695084215093320459765388206737590176287115912733099813489176398722717704594752634816758390819287945355973216454446121970068310568249009633827358624354881376506918409573848636719633125339842528429972402659854782598616430247196426783128773036857087893399587846326165074577038869973267705720043963843408017515541871026411086310337638439848162259998217798798327076892850504714248671079757305557277157671617618241179137723296284466987232829075653049830545941780127885749289529255245149979879203514823456836662752445605561023570247781547955889547763182795014137380431347170371696930423859849700300436427946810172976282102151423022609147006910846928189276853486258804960996798226488767641786322564033742102860005331096982999558372989714988890668425388166099048604064574471355157384203264372848859038485133949442206874477308804302052267844834114732873079900868742686063680961939630753421389845700574346978614292322402854844405517248601403385871479166897188464695986762531699842221141952231720965013167956806984184257480379920273112275421512482461250334337585497273618502119455635717644255307575235346668549481137752748166110173839653448314472846155032079811512129277027298780649709479093925461386336702278903464823796486085926958973052229267179776046471821480893614039937505152975037373973540458317405390287053607785329615396665542817931954313900616830144813568156763459951736579955327126263891702315468218881885726428477418575260622428987429555457607104400458808809363062394105735941116186351256029772471884160725820499505996241097100296642797674335467244095795218458450721324058004102064679762688879681673900488730739353178349480695300463339203233761281336119680056347754390112782524593216426987762000978269555020091931114260791729130977811212634496499814160318014086347866273275516191106378553023109895532321359501693061778806092004509298788936092581654078076653061831017679969018614619666801885133892713691238467196151927248716534493785212630848142214845135144358364308578961022067088036742375890454860843880582544128825922781186277785411783906159697166439328946673357852873040790076820445737719897991129688446533335241462067438516937668060823222532865400681066021710163042424208543046338958704587772214989918936388160341900820337316183911141800976619241324726617377616164788588321419008974641184188685906749934022743931690085346141055408257030971251694760540064607383671327323275953091623944711372102329587377995691755206618100442954821550264175991004575844097000785016629107509026596364611604033712823855091840506680929947155647534581815317558882552332648579864753997495107131808459675376329171603088296669312787353415324681723773959461567717005955653543387603431624712313944785598531183313493931149251669008520060704739327132835732763621983382085835682604113222478162159306709658860803925121165465341372281998727718491577863597334326771639770225156795943123882506343784779179654299786833682094350512211222244355380954718729983091971390100482774505452628611466567008258471788036301840019797940626569847492633441059700746415871251668023430153520306227875111255418270010921338552704093221091918004373199833562208594055875295621950332205038143840882523446969645716240949299476555460438320559546399228789722040847324872911438911892968776637353517615804386460955053293740175571145390781521733727824070982066097466501160122194377446673352955286551358137186794737142139485075121602991896186347749589465760040083349541260475281987121789268739998118663156314090875573959308012151696054156220532016045221413811217131295372014620576462024168331799075990297631477732173663220274104948909185970468979030377386876002468522904839137345260032836272520469562165762810237466101524006300394749094484987570733619518041164869931921291191952225711913455514216978307454276719261689401297458589891073795599372665269463933895315491298513132510636774005197161087683495667259616741027628334099765361700496264223668345985729574864050995009462199838399131372160445017243906878888880492876325246674879197796237669701393354517757116815056052611320037685829268133179689020502499733357444547973519942591993623315797501064707128964942428511451036073867151075836310577876665658766221794897622428920400302897581288307679071829447460761242262788601960752292716116371619475182825362172571851194281481941018086366380928670279068592382242379613977858388367562606069828101446709787079558884769764047427703114856631669143369841828327459424256463592527745374323263835646001527078170718818466110888571778347443299052082048259427035312992680617152865592500882935644585508237178900847364987467300875158980079464437659888381723208220144077404937200150178062258479691603738432540770483039555461796305303815399997379193173806740771569140713318915180086656439450328383263238990603476759422383906073116639383558802747891229254338885113017536570662375627897490483321790850682278655659446264112607921101420981132919302863361962905503142950040515369488227244608205904176198655633432937286913470295744757277508318490836598364138548678636949522302547065696361624912154434152266154170356914032924350065203689979845889066627975763578100536750479924527587621252461190939845261020277965297137323518820368526604809152610351841136056499696904769721641934866816324300117295084146746618881406997607807075040581967344848952679913726009862321581100345837725801181294951992005745355301853989000201235795697628285679494090163318680602925257288921561897453314632083386411101918541287943762955625495148205437663367163702888619540713657576950613190151835190205767187636604920825325259238331220310603994757190262866393118524248090670822651346937170348642435879358801037992375535791131511460816229924420795956951331693529792877589290984099470336977276166792299212934677066909031898804721660819834230441893894997176731280011211378872060664935569347707744452263264866418044547693948753304465639224242505791112445218315779383341698416804600950267363049496049106054276944018289615377771280575605851054515254064790626984411521406410032466828677201548568218740998790486361299129708655727929826981006021616592737267407481294021543347090236399145227857944691646979563912035944793418683353296365904825967801222694873663155832701377607586637471540280495172711162909831609521541458573808912229172545110077672817734142651243678484187739683724356059590541130107904591575585312775496561125707599348595596702408312026482261321065962002937139768857757449072007858936511313172846233133209404573319189682148089411381678443706786839834894294838156823279268573429497950722809134938047711329126215624756483206841900873419983669693446891171456789176720239676371090882906868425794318361383642165234243910781924083562995585185522312427423623485234084705126427802385120440922257300848717724894559752211642832374487164929674768354911428827103615504744203101814375379346548806811451463201970930467523053163733845610756851422059784184102755223975110669856755142169305444106206475343865996546282600810643051343349264449164044790748071962860849481324193636584135048834864351605933783370763273690992991416110776667753313622356838767865792409203831509132879143546996939141047440956711217977994547948593055964560995520311132357448195003463100583658521645712484973804259313364070091156694594924537822528058869666582046246893322945444667696556668098551246115728415657577240846021832530533345105567642268691039464368042284183390139293408064319921794429404010222623554320700718372649058480479598824090035321886421972997029440246596786499261805116764015476897616643474716456414009973937873365658879902704981480121532568364969156360494697037382080555859532361930102614054762547378857543934220306511712776570954542584859847295045205034811083802207060001671641832975975006856162176253439713660230673652375210006473459077041596020675238665938313043300478258116572846238654450955571664019748366669395814408589432180084327552131275564133592473022539767307249934503369377325129859568703808487342442814081403167845202981181171911011406066131202750066477789113529801652838217732237510119106003012754706809151312495478442255999371982655306271897616664453125005953325510320016262597000943056581845247638576668833733803666467180290060371172370333378762760600760539048017454427829119662273514657196052390968833685506630521122035431756997392311264816137576327786110709589088807165849236035289413827832400803907801735223937448157013238555732306791851488764530624713719361053919168875400352253866481888386448911617687103574409390089320867611260635578459335311332021645859798799376570604177487593050904046922649072955902355516606299051396090382425210187154136635817199484664714199639766927838321512534502516995171664531452256390354548033679643133049013315994415838696446060574853654343965220053389497819242615256261419106810499360432432678847255926180375789815008369156321941998538558813394277395504089757203514623497088199437730968205739127216346061577137809384951536594655560582510680257350217862692361292890695183139624537922743340677806234848541634832741307733292289985356341205877164496215532334334080859339323301198828770553349285774108774361557821648714007057664012870448258458130432216580268460237752119373524041159505483919411158579378298981004645728896402216164472775920694731887471761883175746793497259070608810754706796082475585201834237534825446839665653452472798305685106154313675206392311104127685567905685896904334707765798584667958871229381536302731332816845218530130327312895652096574077893443177981081688359098389950121084280478793704682936139611852263956397992777715774756577531408084832982448911587946386085455000246454030616577149631822315479919565103527792475112602357792901378028084020465023351263242170034364875868270038011274701305151627364484432832557575167627267280895366721351517426083049274955741179619028935583262943401732021366600885764774962537741807773837246990599936071863574473159542045401785359224173735952825693015173050081198524751844116580334254382688154014062636517874853917113752854980352615153265989765696523084131641956296200516395325269404583593795273163899955697954418133015728647130562223137997942136021811354122051712611479579581949739326644885522555239283844551667168632708197549540564820992742050824779092489710497627936760286562959109548286210327322183075099892578524858661854693701419050731165154802243508960766371058386224175349051133196814848642232870513363784078249191683438268844003834439088460521066737675832045983517905941434864987076858582994921117167614750558633034640245078531427182155874829692505040014291441240031306284367135611288796844787389130744185379862025641544697762704463015353244761301204043868352373772706132078552314761384718056901016403206764934369437713279769385951459952576405769352562599829358117469433298820974491693328045385505390083815295668171113696297913662233859397511678125770972458942893773046245185997676405815749206958532253359923915240201659923089247446678871140509632776545479413011991422050699876857914239296216438987975590838434499571701373789405716680333658555121795459397799611149454808581279797444358048527895509192592717037294721136594852262017149176073219662529406331594603799482478188291175012099699303314676911225164848271781149473977155444857124638678739305106975542859103103493776759534812241850650271562720208416804784158612352339636951318292237818853609980492545270785904462623681809760163434919764720576180584920877290003057968992583550259516889642143608584820193964509137356501903981794542818760574089799854508678546580935587347779918657578453764951433625447241400309196261096638291246897939657118945544894691489779723404297087223712392023349860180536845615696793889669028793309461887829975084041884577601243890499297345730482334712899695524077156589686146618482596186036231805938471940306672811496594209344756189869178927443153848482452716337668186681240414930224197524408704886362969831478565255194969645879805057519494062189260311397808600641108909590558176192399686028327723797260086901912635333902246086742444687601496941605758644978868503572441975029534298287069139234047739307521020196551771154961820188248865007827023435849721352544832740478231881572924086126064457503431642686886185985863883565136598581735742417203166576336132461660449110319787347057437772702588269282391816979983729881701198074830513689765977921754131527327529142513601732932485621912756872340428303105956319135816387317084464430038876038202611060430538532254931241623511079758659274917866392515556747341046440371886425829569834449630477585050129202840185704445995064818917062117321241650037693380833466800168794146500339513794829033480619432762036710291486647221389507357876733988144011286335612712670235369256318482132070495423141692022416570298613732297153285450324654147660281913732776711309059027466229828587468681240965097751072600499928645188803357964094032581443590353514524689715766106200859954469860828936127970687501374919841984587764130784888340768919751113818601445609148758466511222292341817942321039215573881619238271280050992739393798967575222881738165240088203395386237572234662278016421220639100961566705786391887792993451110726574721512702622810115946546573856704931254483177580722508541482335291376546065143369115244773261273749789447077277036608856237738295692023700312399174608482690590552744965863307152065086253515574016806277401677485172567212215420411889464369254088826020859229358258371931563804618783602188139745799685352842721824295197325339951848742874735471808282505031050875736610105691068847312184769993030670804855680519947606842207542359987621964568851998781967803181392962956924350988900983558623974230299206823181279330335247286468647156802695475344244004848768345925774143336471212303368964620955831289660361236299706437278999259778511075733950630260391479125668551070735839543698284904079675261508882035848122600787136546806084669681403134976601128065344101847047628050172580485586954191114033108848016370268330922141005455677386785432562454509892954836451946390524178022059833236218597768216167782279895242034703300896273078475155498330877117046193364765862998764990235249091928423477526008230252409210091616483150705007602156977026060935900605616061400766415103881331698294040551153285836182433346047582242280537950440843791119232280302646557188242180366372857984846947222009806468280565272490781416714796228037620135306726760202171664770560152074632069111052331672401675519242947715824019891335744121050477103037102605219045098918251898731085271015437213510276406610027347991987556049671250139509948332832681375242479409969407349481913922680662983074212081700697223507641122465944095760459996895579900034802415636068387413924892435659400081607095465942684509832968998921000340506561192101238461563794475029480829243141733296374888876879006848828043134466601434690427411346198493204011650195523492003574990095973594050182014811283569953007267660767230588992559339198221290104028703841448760751117117855283677341474514256914046332252849350714315407518447470112482493808783990147971100810740124487128363011336349902643819007069577292441698568832933392437767237371128958344378964373520498302262654409885746086221289875892531784557497636864645018162239305986100032580778554320902665302202050562494992907947517931461136429514890198542749404019854551544621593072880092653202351646220627525186337566614796139930859380103162924437048143092299143265408419665516400524034206878642898275852288981236955472936307922390412470764627247820859517570243180908908459596180375713022728505159908134910379720542581892526639597929806718359804156220980415902226076263099593952245557549111205097011284053585634711223457055176170661253967139919214215916123387645402670985876027924106934120897974835027093334008948304683889227912959872044342247688486292169024409803651548955898313075634778546321762159534253285065617760950260012882600096548314316210643981235088276026942470681439054921963736446732329777466178043918013011125880447735947730993190783454552438032739123751216827652703838323676952439785406382176228556658826659251447902560739005165423575340800067193379393153610824825016158368888616928711494357821267753274900441628095263611419815226278662280274133758125881148749061087298755828627802788249463787282738403339249701523199575775933063062228383884332702224909103325839900927892637993318644810980471835894408522001452328226418330432280610299117905352296761462038503842690435459463122715843279098063897312114949757940769097838952517683502145604418245104495357201377212084384485157350552067092044005898165426157162972866641593715643631523481882313803914594402826787399640570319007843669976021696088321346022895576729972869865303563303312782318769219417932182263216387413839323904944445057040379640508522412953823577535334568450063082841554872175992774115540551959202296970565713704489555668489702884304194126597139527556994310809124735349508137163632743169977431835540363400906726221134215082159540885860267584040542776966781454809193006643641875106618103621289798686649775596915386464737993392280191023814647547468498328644066201737196789735442023594822237305132874853875464203746097619639516616431361728967770411511593664445596584551080624954371015023798675147560887955221019544817691291020137747839702697490543671968719165618851703090167099446511833109002060519381328061868646114532628080844405733347878485878868098918464173454063329788049080789213727537437851582258187042393689534830401510140254788591279270701876990345353387583044827651974789676652530034705161805710702361128014020709114160292564969623940666569519974528546105461447692422244229381776952605869373874604118974185988115104569995274519279769760793516588071860061644558350313557586006757436161434565395849331840440283758610868045202311369903313619545042268016018440670107873823265473477232011818648098042335270671643315663315510403139359641901515937257138688251064526349477332560036357198217929268793302813568068750519235857668557078017659131367280445233942391868038930229071840564617980293867226605954984204055262960057419569674261046394560319502914255645645935547825436366152877674197446273639178833116057417846559500508553792480468544563895915453770847368042631395221122762831781757843377459388095339452439053001279880088216038929941476605420605641128669260442388555837096284439314397411890283905953550032077547140161618881067993937851802319413925880348787845546022077673550278381746302268186128166011536122783404605686929997406986742711368005565312237885092436769699141231578109804011572917271138761335898898030969799040280424225561839534807688932619132915810506738158880448926568747851320164629531693553691523919029001075145308878756438079396710947466865967928384901981868441044943915520012627828292587521262879979824961497279556950680809607683517662995119409173344296077617351977269622817227196801737194153111305693363285610639878724975480762201424883889857577114562408349318550338485861102224147380747974656733055004966571845658028821215374975258734400477949333880509516190914131677827489228789723516104040649122765912770489757252972626021665213219226015945732843777213340242991633508081067536382436790323289145827877650201345423304719153873472777862267235840509844199497851761170129108706053362351888941527405604826791586131008543512889445421628189430668699644798205328692422285375281961384514378617148029181336169967415721646757818111642987537143327128461075497112400752207110683920352558426086235818261209387882797829947815104697896873508208720024552231372110749612647865870068512602961016671091895239228626624887397278228965234833860660202280474563539032137564477483817738599921118132614400282905073068466837644539950823584508076437587335150843020908011380594077803111519108494547763765188143653200210987713023300953542555691343465281329578371788758029037587116953179304498529195109501621642897610403121517955289270513919528947316549810591519432332162162381059110976826242850176851291047591969900451293510452078587960136673223600733334885571235617549374168930368731336659652175788469072945728195590205233414769266788336065074195937951041547664817905891872811494716891292149015505444491107228859829095155236876988919160335751126182019204508849859599256871410226308785792014325341497797097090674543985272011535314649086118491746611401491941712775579970912779480080581032299497755910064860729882122711921315334471671126987422210755347277122261047514213453946647000887454403466752929504658450669678207356568105492404903198795539275695293936408342798579315959541329437480826426849788921139668200738569470235969290918577099292311515209790634194690411060189997115800528612600940352794572061523139392814880204591552686627853139618697964077989755280289900440274629396461730749191022241239810069565036681216738186027389824304772247145733315524937281108181255853994321038185972050317085574217469080679668274133100376240969007206481068507169753638087615839552997674988715310657031976187389193045833075000564409878885532596471991393095666044445620146099341621369122113962657178997052891519419062834363701512728484172921998908396623287479604526158123987123938570966106335662129748982178788828976503663914436026646046555285518016759621536452208994840809802763078427272061561138870885910488890719170174708102679260869896500386536354352427836313825739818025082335857571966524973546125214359981500995227344893491026095491137739011720261558156543768291806741483575542786733575060398062993415696650543477642663778558901875059786671385177315366163989573569781420632999201830896492545716452943689638014203967779481984187499943087705051957254789040135050323772203694059330948772360102282671824434788048447811773682275560657533649667787359905468140240706718247135208434925140528069280976626309593307529407417211762814365004619263912847415604882520676846328954229119154465232149500905900236806325448845046562053306321376723702427196557319229472084244975313519547308845367170577565418723220970402627834604847304937497791624941313427185625974050825024108736917208255228263140624389423900462937994870711028667052099814176098989927751287627591955544781387202016637861555686534598715388669692162741777506032915878087366706604754985251205791787257291727308815857541702098335864898574442146864365114733314674937599130569424132917565263132039675661302603103000063787770067956190150647636065420361025413949336702993131820343477180587264871287000456183094549508606719138955451989739509681986809887740291814425378459739129876309759023521903618210202375901979105447773851790442939272654406884204302745970112400549374941437633912830855657709998727945845785700429082032369325863734639042014757484804628765531460082119540090823575211276125254177514957175837961443975875841028507488943465715928825225070985531982549400203833320826323204296783711858950280050322008869927936686694359727356159151264151327356112436083695059794448349928972204710536164611654972853373896535545945194448132284358140312651724661719882488517870468026794656092095254622507197034604190700763805891978477160828392744580455183699266485209888663931996895891551917992576587364856360119202188318879921083655104511490872640612668146321207823714187087241004235287894427866291856902597744977312493406665860164017028705539317861371371752999142956889006181065121658341454457360447343042683826040624124088282508825968249808726924211445350630310935260901762432995279277183250065577804854652115960956572830672214098697497584824839737941050185484795368791483370498723011665962425445927790838158363950906726871745028639035561953937380522499469299302067530361124654775963054942356573680517931543465051482857067159810380153633081651975668305284599018438680763389585755888651305655922642547004498841418854104464907353341740464778791212938879231380526200829542098916340464940484306460938634563745187052417604668202208513574819110471610623590169132960534221064366915977637761042220061268372804488228838346512881189640020292025615373105028856183717414689346605446923502008026583001241205671499334892053712121787371799152243889897409667192988232749500985572893135712947870824027422107598258736213331202536169973940649484810601124613269789636680856024022188601567352438377255159263118191211193824836497218638544947718278841595860666421004501520268436775928868880282631123452682345977046773119141793217125925223701597916319143721621993708964182463053587627754721584214076771157084668191050491287409177070511142503301726085063827126745400007436878770850579638286474900158636515957857274253402204571107020693124637434984949371048071067601445851189744539841229093994578844277327324072225367684526998708836277504521348626660276863162901281162223184791919373726700103710669934059250523544779453026104525222093173758461372339006559996365474026767229962799240002518645003080920661370119884301840116540579337966843687261400769551179019727348913173747442528431176871167416605644565371371436051513469626577698755182549433224078190866822345896671054855714460890685550460476872456556492653583492897382727026243759140161329952400513112258451778481505988236990893165521238177401455644914012417462713597781727688301958106632238269834136534112276133356343410706852051073262138568278133297645072680865874102216882397199918055150968643085560740399393678825825976797313826686510375373135533523217562103682666308704409647341959180964411514931507666106371744483378470988015817968439631120587215531839244106157067282654831481338504912791904215950433793118787928303691387304546111753309559622911043653266343902702695252076036470938654123359885184621974264348578000477984474183632267814027857343810272457835025182374950710244607785723357081615815871794555393429134727408558092705442915920913672653404482574450879443707141098849780760929704452748579230323236409339704142518207753602255855214705752201875523941206556644692738194697151605650606735293731190316426663493059088434424480656392028501180389871960422111095244081931840368480058752759418412478283340330798052998984163199127853537302545693585433554373820573159373489109235054397595578069098065529351862896878903027032299481732298811686221175979194320761272112105891851964495411661186176566210668338956870537904122890116200656759706242510447830201019312173725234948302078086397980683058484727624379497583683356833348333442172562896343064583088145471848225123943825720915070699762743741650336461293762830321299308428168404818041566528435795163547725591722224450035983901388246716172204203186117764251565200402845518238290888026064313088339759937359583591192603897596868815167998989655117277114821211470080565372093070908987091020926719488807559828992253421271623463311945209731621770899523279497069799968130561235510527865130109534684944011976371503459940474047061125373764782562157207195102437808910983251983124969157643697664114294824334968666995024178262346089048059778804212105522156681116288446285276422363448036611131521211030132167071472185380052756358273332642355754112380171514838516826812274751335466251660398692611036279463943794278294573541746435564947684766402318760851746074290185369215240215110725111865385848153057469250948313786168254091125601407644195065720094303121298028396323748155297793159931524142274953198693922259643098801874456289819182305178748893887805845843497298864964661165599853933865338656567901493591067770508639279395461390881835945560335489795448326171848705533065789284637998831030018515116271597408034243357956205137219805562140170481904592746627021592402453617591005492653434487760265325610136918352888813322263978062345370692707569291394444422665608776695149882715748675525713470426199783668121704143166471013443167178377943163996411197281523243863914040193047799962517439596888227873104415544206204638715360787651942696690632078159790032081557983864511530544707856532235878853062517684234813567448914428508124585306933296621393715966469891060960214293563653691710807802543594258297706511803120516863774691239166394246328362383343703105417489625542725655722286028729060278171169417679661151589816121710575461455737441787067844251360571043100038502468791822105740945565565286839062585353713052154916429477287657369427739385687112020996539459217822425543496605440665436667926119716819083150538053498455341661251322335162597512643606849244622142674585811486003129532756267596644600112484189295257751451443123595230207497554723925241633972120254270781398080966326436959352103864982103856241886902523281294715918964009162467792555017031672834962252804847877245134592653630782573153834368788747709160159079619779917568283474818877335442582026253054995680475233524098762802808180166478540439576850261390885139410744943760956083476788688436734064208178198187781536013264941604123187867066705505858860168180322919462783921983844083312264176017800017485663832329026326341893014697539140354572245746013862356911652788628620540953201929122543130764313165358077954554233941344843305113330332310274163533673942950881034568725624539081525999297878020050723968245543820663650017727465054739252045987384843469813243454341224931672306166302822370893054208906243093566334248587143717482144365197139655375374490121611708716888605614617489141276495172562034745922969251541321421333644861088922192456506600613527897651615028725974214556552031096956952882170610653990719860046713499144551020439555356329692676335094184564161418558204107272776433675918530042010333179833704151055625954203040949922292798717757970035783581910985843152789032270156632549526780337144368004229651725352985463825829953835407011337630217753754034044374079239503587672657513012970632684723924801145209421294632593727970715713705097540148405933216302888682693796291734453709497782486237950167331536339647846618371738577962666040707583751670278049503559666220030319608607849823720355270191834061161959222128032797808276418602476189575551641134564940243960053954840501478258835203313509912177363080810966923650327357008303687833582286486621235468651655909924217355769106832606142409033313668457266381113760956914728476926628584574159366044339152543026629592281250906020850816946404794969754246303122567540798797613978445807299568757397910383169556114083948824535888318537909793585100224868987754091508383531999715588823581540666453350349245394292179077532309252187374879734122576122343525053523258204311011913536628276317578211320107067038667780769504410452547749139683069686871954838776470630275212407485969937545555578108195732347638040676564649541636944745001655575953004585341777974308102922514580176984207834456014268279351932054507571292765110309470960417227564487357915595691240296465140061849572740027306463261781894690075424277188608793343752192528089180387020325184159748731911859635805035482937276900538600326658965827030584238327720424158576872379140763863192550757833734556384195597754208993621335970452023273267997310211857249018977023856056944121893281813074081918831123720301921929611488151020892258724789039341283142756825560361008280120307878231506132070437931064209109040420850768039709873253601707255431762529282904044215561058966736349054649289534725788940831753266854757432532010178484849390409359132562515676402881324932683133148794012045084272041881665694549790443192599936241098955579466454947845058470574776177275205457375696834498277565657206557467723931296604464330290653334350971830660167580471963177716874269794808933901529283206779865089634816836065933915134895206066780265469382836631641876839014485895286935742631297818221695396156411926577163795530793180312700791003238024013413620224202091844968955123761215471966635982433650509400126403799732037007628588639656975500575167237828055178355028466663287781158601491358886833543197402712515981825175965946170569364640624494142560324573750420418759601723780601591122526216110482092120223939677707455480769338618159059852251634389324512043512874009329823836415999560799389378697316603743839342132591911414824960706006959378729434471004680914775577389524935231909948926710243865407879527048669814146197479140003740907977950740429754731836319587140757715747498282905674667376419895030190858808586283504532383108963348265348452526111621351242208015556885461332116025013388593685386831403690121559301840159557024749251868354328610762467023740845871367147505160330473955601341675982847040708174288684856237372626176234497731729321712368265814604164261591039188491479651916243473522635101222049687516570855893354243889086168896492178783659967102220283695520102955636150581101910067476047695295721072783744849853491674578911668078597750359715088932139283620079236753789501900594033392552355891242601682275179198733293140769880300987593925048010619457303918304840799886209548894503077966503959918923736177852630315378823474191858520628449271504874971623594342100845115947908717510902740800233051855015318985568528254862931967670219491110417620905710274622334584117598570297510049162340564901731545747061348445276562263396993617349730854608606508589892416925532479663998616541702792331832228019127835752911889910379790453970319486744960263622074399467096631909592416065508183654197363970710332886441541389947955092020328253520127402228610226396426313574891397159163847273915946105677498939376133155797090373757454052449911917524849761197157842439724518754961327960225028398615255488914847921325153043947396981596658947635336632058775947277632287234909729187321632044891252724740977889072999757096357012022538233432448756295087277675718633262009662561233954020624655582298318634802271518126235158677307212530161636249203962768485801370563704432633086293707505322248897753900660448614529602966485455859941704989777091956581331687432819878264362890295720064782434489201551877265851540998334045111271799995547982410994884265672662563396375549345576097709280123482136191693579509011291240964423019074699649943625946376772661946103688969788213841601468689278290292392304867353559518973717188002214351000970125753544400934076039477081305007877368717255564500985812010814372847757503580729939616613764157729506302018705483266354206686004129280585193101738048529556922297509142239185651042937629724513075765240984176176532147391823960322230824749642497205706830413856658644851741704074597155808525966403185816299942083001177201986706607080685678671641976565833678084425767370194718234261977261453484462359056151905254096448434482506047742163076894147689838982777304810513975908617873189079613508299871008430866691384104321646176103805485329995259014832994424212868791606825028501610199964753619697128841779590954393293898475277491302847340041789040250831555350760414285091195598212651402398427339645293330775952936390048157867198746554987193134866034488441834042307880284676154995256526281224745422592649312241832613941662672614052727591705689416779216904758397465595513401262086624869999348827816537439679567853917482751680533315723105340852858426642158008044919667704525813229214180689280975076798879239926657085678027778794791827423102972747603964508361907959633126991910671055995916291083574091355144871443685403047159480603949558056127775524524166509670217384410750545954402172448246731260307587252221722400724819190771445312923970159875254076684601380763131517644201644370378641627043346284116312481685357888078730199352132997724787228219634413231819257875912132779092367926347495074777732055262378614213458195317191430304447171419786488710263121710203130112485497830186691208304597220861397405580092284191963924960021842933205677411759389859713278818806175064235777925660915619221507359415835011950655487034716242660018293371101000324546921038461352171352243605211793413974208114780657920736506370355738555120816794360330467560578987882314846334516944117559972667432029720174968522487837679564226110462177143554105880690606975407779597180069764198616060803147561419333137116189211313867549090789072797858799722180554978937311648102264214234407192240829453855204619826711170998997505252968055800053447731204630199903253043203904894323861375651537134214755721527531509648615707107362285594117057437482024901248592916377189412593869381989491916539700179376873980854359098528376393649809188642686793424185128789420596129236507787699132667810225996368039534477818260629647163323021391813370940855709274146428565084265217660464682198946402677731545439878044398329232550038873637482633973622905485885804896378824855863928420308284103316464230504510283959391158342971409043022587786030456300923956087090397200304281934815297126264432847509355905097759581163107042630993867027464377162674746807290160213644676731955948481650266816977733450305318798172158399969445373471543634270696482528459339342039410803793780736916547357431038529956023755625862400557738386917921071456487858219572832271032314141618460344208382639787129014670410635310621153136408296911914179315361825406212538014283073636138290079861878799467378713240395636668484856902719286962224284507715276322832536626810310340267506656904166044584878155625116831518539535475594749782881797754639770793400470819930546633110478091002310543649922406154560140822264671223715007180518768097493868948042438133587503004388826419214137556166052781202511882916329502875649940445616112608035401590584489536602711957873507000812669241875233579013747560849940932435993522425720517109991297702476269125412751660839783915944701579536193892336515859097849693700172296257988142396611062845871713779706198819325327125273680774152548122307445007464638685544825839744771727161394781985767295085692680011166073827898303832364451184951438001802002688965080633360409161690273008810067677131676472992070093408267463684513368424040630315711414462010317719705487526359857682204077137347109258761202581864034942323110980859897460467054760099778058501274723755099515940652881380186607212452523026146256393138204880603145499504819598022481815266415609702036298043805108887123302322837286164663393187113053337767349008167795295244979173879470218048698728635858026272824303948559219247609287551471672099764248444833867696547644614782953000071503739117888333240048594155619444972606288382722074220759865102665874428175705636052346780547636723780951255736948560402535761966065862267063474556152525361258676219540286573296764618229590854286878589861217876398627612431609449102185044000504896006350080526219363052652065336136046735183765971129262948650247458417396609967818689159378383427129762112434355300652537817189778846316599504098632515279474520204184544729285397526191607047255635284295109580934898096024299985368916710810954625002144479468492200963092155290000301141515709739119995012548695212697888880094854540893322215439302779465089531571421262148082229965940658275286564898510537311205537034194129314208772974769978943417749826622637093111460525984800114229945076143683406724236891994890886224272593252673825321757420158874700842879867018545053692623103038371289546574634970456379882466387126829655473992200322178137699338851282892640060917059724612043437337591652831240943202616974939341878311683684695910780456004237820437802094510154873752686265738092210469485716549422550356362198683395687863695246905142669411394632075180905433415658735986274993039330748794347747177875842592617451138274730107279453112659525869554432759620145888403531527351452252808013652012106576399690965891959022231230070887154461536724774279601456498384039647579185826685544918045361189572187155632764912848541832657964153220026141176528610772514930820228936949491845661053016991118303083318386562302277922696117589604552855855228182479370200370033705170736314733638537532555839953417282725308873528668691087125973813324096604276748433800182217227871213218637196595406321632351849410356603177975904726797386294434826463706202757702682226169463431797671245307755869196842758438773633095865813860125039213684498103656215530496255266142775972060711583503175102355012906573274465609760533775696688727251605694283640592694416580997637463966827338028004241303294782285967987584944816245318484318456084805633356257579800006425287264565958447408415397071366133401918974437119594144734969115744662813703626202257513936426532688808524338453337139904111905002076275071182206727656007527430089799375878408158750158244400605057916822832538002751703492896084794362978827413535796436089749844381947886580567120833928289655756163750012415131794754312753427400537471043561099746371364704992451938839035522366620615343398979813549033002081911741675231592700027791271645305514382149562478454789256181344078465334850260451029684940071901738952972989838851359170445442610685351100772806230795670104581513067078108286362843204092664040643765720078518387224201826524680204962906843905155507252818099695137816060934876855174674032134614054657156971803931761707038201058554258537158844451028111866096142659201287089713672942246951983743573689734800944108686634817771862712584225745987860319107879304680203010698208529063826650905615620638230288235558795733184524973461912325398000516902504388148736494738100753420204162091594314487711098596872570382197144490331250851678553994628242200120015908319137590204099954672897470460192088425608037187740827481202836495583996301738904018686041797149183210869811361222604536792563776978631735758568067014509789428845682887431000204572234302311451051845348802457305903690654505843043363187340369478686164891469392562863457304539860778525166431451218306682277384580484527372910627710270806559529817188562061929870696700828246302080751420441038257581741231581398626872592894672448954057295393774593712396954299141105265153873286242159806278061154712062487801797973240205007099324158138251764458087003446907586208663794197150606416030701750230140082807329767681854544023668912906258730960772374745528264699912506009447143265042064234090525300251179197808547697130368815995074169167884148493073094254020005141136595226215129525911247054960363953806493915339661441720715235221791457721831716961591947102238378704144774151104394650939838102281024727813269221205687970244986711243513302717922174549253728755736953487522390944735853179998727978968619037544089876596866478214239766169020286743357466001584846267035360466440184215610906793630900833108421620971753109354964419722044581693693973737152909616255497797384602591551836835773247205675380432657755673984165827385166736262594477508522881489535357424198880932983539246504995182540195519973219843738896645054175035541126500824859706295108694371115610316968155455057799416818409276556365982250571199020424210133645463675684396929949905756292052259872110440609633034991622535975141392773510864138125730362487210152347642128844566042368778417848397172680318686617549412310308371200628534025678436012823190066908635850829440981709164818856243474051750714748065690706045402373432082967893214172602232332047502028817028330665836528679497389994320714629694708473981681005211767383554624993726908573109453810257744874978754262084466524002422709310508679469494548707166645298595991554764013865200766292754879276637175149283106880183601757162739461354105668429474966815337926266044234807854821074369601164514392657970840448811891272811480064133040102802166043918269776851575654738606753700775856631460876726857397233987586254978819098121136034564646772781505175562964902402601640595676172477934756678325516322710503577221068672891932165534607895209787707794399167890808381865632249197287523061592979281276470650772805699534262298432029517016494143021838932236184728867135842698137253570561289798502757415623839510752435198347507574773762951398732567612159514624025033520767622872271826211383030584375115204711075886344771628504450283147328328315136285993333194236952329396036520610185638319289412093963590224562773139913983730828625159936491723507955464191272173629779954277704411433835006403446963428889270354513293931108154251549256440406151064859523063135281002263916871167917243927733412026145369920053497359690680457185641441770348391741574421608858903142852598973358471014795342063205813432879232078469073318518166702750683516631129024280015969487612047279296200189067198011147117804463202995705858191106059786212098073448615478949390152796612987405640214679559624518933796125706398306155107846742615822277480428805029886575601149987734796554347815491581632670771516810018266943925726716320047554984819211569088354393597904071278287451181444637994860479917085188710416391528145963631729975998577576833073743650839603585581209404659057728015343320949116926843798962612970414494711329229159653545041369986782152504426976584610795622746106242088459303332442916719538180048739628946806916476305961560585719956770106091010995959197610846459530702657143276873932383076374884057917707711284892488942899159054134095344500180894392472814197635907281443266395646459552664729483318819181527933542241735879909461488103480309326837917755605500370486662388148825578407589373859255565122820018928871281902651777352464181814267238956897617664318111936136145431561872714861506904996655275534418388134940524451187653033790176761366585898292620276281691363118813017640975428366900958101096441805890955254800688041938304010951770807454590664158527700026164672611742986273300512262143474339536578596949895161643556602659498401525959752595490632540835450870513818868968267479361754201925207234133356039403415384693713869525511308056047038048657726256422687244982553958879720962307673648720300369574991743560465479640494529382736685877445251154807192460807452302976250679780352906521038556686495479783842426975566070471505922726334294556383412864463793690317890080361056953516937798838801310087439618294953642995107400059191544305861858383578293109338098597056822572216018346296107185066278208172862423688672572290492383083830456419518049723009817260350591919756093228110650085707405318160819507656926661438664141664994822429541948688782968787347657083318099223466108239432543876396327271217895950135601159795651021490200899583679899852337492145361664579421789402170019045737478420155920887410085573364849545876374534189386810054476658441045347786107330386646008795078153925469269031657881568205665347951298977326048563913772673609670225294916654862924926571088465251861487396069125279718915614319387749240741284412241272200691771378952254708042619571946859392541057850357601294514355573068733491541086006818101138856533419846294920512586125950522898728929601141342937019973856043793920584428483580467744369203016889617802212940786071730310610224838474052402044862185080420699846888414779012521486117091391609261016193663356142356203470888982311117960281332783418566983071383581550015855885219093973419195156100138780416018031725027777985341571967756940102898997619763257661156173400754270356149679670405835651961055504899089962846306348913196753649152318436935763641176633729519578940308224529228433369399560501639096711135739123390478350202462698357193331830096472275705601413174461517086165409418152176738382380551006259190667383787880069989782386652359601792943965970920758882798572832343450084227925906128421209774627941665797533121147334864499289661847092175277548063417700421618859287757801000221184866393555026973686998143037231494830207362707180717489103842008977938005565829266507085996155477785554764486041959586550422378159553350032819849698057800743997173100929379371752565049134115120058297866409871018759984570724739527371975264742994040916494349892754466816106809289843899347889377193066646866038937210275251168884282270625194521912807933731270584460397139521239426292667114314043166087407918152247497843691823798463765514166884759896184509197412320782786021844772376134435211299765431128985834984156707507580094266379439169254247621478457500244937016771053629503784563117159051479067788727837888154077972610430634506406546413396283378059269832227158470006175504387356281369994798609426978636719474012025594555338697286897364374291739943125644406586159839912314492795869400790678926493034619139257723578781847538778390933894500735176948548908157993598542063496030011424012666829224519549848704760063953144296306800676223059461436821342200994199446720829655488220277108722938955720508714610555506995252670536541379484900464054185141464187362424978163352784092926354847395639210481480469751415413435954537080686656007480958311317491067019378063295905608402422078768460033994345673172288917279810788195996885197900376049581710004125451636344379646249424704152671142052777905649112141069536054614315938826182896560853877707201472977639249263675613455714691601268246766860464029845605191007155684365250277697928370934225000867338059382007695331618853610656409707849970706343471978290177058399326199163556860485438152067893935728500658405721637426134371080421008213855330264216239708538630843190555602393133893342062618431719659896383651503645780636616214484596449255252812904837104392483451493747371052324608938833018771313897686728835095167820468488353399473595135734146107379509093085750212513688422221030308076260311062968035381289908775933420490751599873300305574023500516209403522888526452906946615986662972313439340781517276870879869388527226835056007598408704183462408317110055207785560968342557868713185270981028812952935802623678630809907933160886942935705272408713051624499787283053630847172579748775436910061577637251485366897035211728493861800713593466270100110563214698155424308030423152652190587018855263472519950720019611793319515831851397691346341602896221299112290354490240546179007602267477725106664835269168842560794063992620713099861655880346136263499405362339150107143380854806168452355222491562233213000255920962061040192658064223570461084816040387556156367965356755469322745451049595059083842308782454806758737468806512327509164846707662075479887696959836629288650671075513845389389340001634346567836758488603543215682463403588352680225699263787778913148712309451847422547656972966012627357740920126899878865582928408716602523438147903089099066173987374844218467324659284415657746791141711960584010857736114227513699282870454680527635657687549307285551158451575904376725889776484221548807473210500201771285216497635257791281019167936111540623273875497199258174381676314588122837144768094619762345562447780536100302966096648903566094100573521331660626884556844092292151048528470281132140524385845346001801457262061882060205448451802781598607199407833367530170206242259877740940206429221582011565932210103213584391970169020746141199872389710514350240519280573275031411142376979880039836957012591282406429695367349735626283208983005793158062242083063782591360458373079380235790345104456902243521966229054522338732180710159265213888308997378086211216424626457381395151494097680827110358392958213394699607063612528837838213968237185933130298051642415806132475015113702235552372589107098920006105924843946470292633419220300178177291276925424374527222834258777223686393018329325309695908389825127588857230067961145222593507004248328526585323096352897057358337013818204229959809814334455552388373633139812349214704094947446056953949032806138132118046212634606865302782491275912923184386043574649116535544793760775438366780644038697033726466145886999664177235151388215430090612705336658901260160470735486998355060078852341488521878870435755581106367301678939480821157555691353230379753572389657030247829066640442671653214833728694080380744404935659858482678168705465673245110092618173841026067425161884226754104617889085673476524940720808065179216424037309952880837846384610131242729244170240948187999346768111591918227397899004782850870155118062671498101631493916313608208902194737403782744677947496517521365561363279337384931192376428162437439227931763059520554512316776899842018499899777467715307124746988176187058629715886556055852566983343122532361126113096352014789591202197422116186594305796304558199260973102994905997926167225021660818145931734880888677828839325572010090757565919668078535961787673623503964096765249694442214397370177425848859843035071201006340066997015786136489090126765445840003446324238285724461114941707785031723253139711205410036820404517446412015786444380026692700407136777319654648750319322998597659072701627609739286730484270420673519365673345764710924071867728907426324635294267284642348177393116815831635171533949855279304872163252600927894728831797731632639837283467497772919796982293957775626843696449828751704891081637851509554254509968148674979275997893857583636834859283778351150485528281295422088483700977209950605554822996070498951521085324261628923250747224101012474454688058433158595527670875216524434907815031370517200767517184190633954726600470027637457566534421258304529974795033976078875604284256830854890522277043673263826957224080329588200459588433685502738462111203425381744099068940572547231876640289198717564384333221871836129408807962738337329155512012188576340391717673467725487862323962002873787759546805332472197740526334187658897487533355759253454748938136775791391392916059594780128258968469071607387778785738193420106673120690010559002063711505493359368252085840999601115679653687353684978069958676504948706747310756457444296767897014589105932485126858949365860497779310390579023856809924514839248599834510551389303985513494811634085196252210214621743616357755183190474644609098038217726554903778147679404125619048864260014105506019637205177016803151468440233204115464717751007687209269364294533828176551208704656862225132368354169762808615304193402977476057895866765833403567692022476561110615378170457957919402694238861107424666237779161432344615680326027213724579609153258920993045257002866807515976012364186124053185663489962034920920484913742194194329381063801447505979485786371163208424470332194723881530857739916081429756589952543876496101690884993920346414275007738340836477866761225241454545493205861655353431257333691335441800276267624767757456993503885226901067465441938672993970191215798599822988886835959818758945155898357459548675932822125508926520292645124107229889976356839382898540237075304828836241622961623783043484113841124700550708133503945760577675806399868320473883189137727556950398779125794672530617649239789332440266942947613468932259575800349376005553551256749359273032347443231925878295159925733767017352243927498149852356824322725994682467660066005146031070164402590460333363672552312839794141303090935418518435358097746860674417487085375328060283349659853097225442895394758703196351372549033398441576480814089133655786033509437083772808332106182617404955674972201617330287795338191415333718910451235145544880695345520340359466014859241380896975642956969765565726455551034105349506050105025275649944775942514862506900885284349342019307994618963318112053308530990226664275274291223253795020448993369622417120025257245345071939615074058756667671470175989578449210000481541481834297221394514123869876218983358555232079378799716451355072364077269951173536613611259315557514666174300856410410339125561685863903465346757878248688611202597708202454187434589430314178741998774179185417476003254802543624774927507572660147188038029903325770851083004765620350169072030530460239465695180354171217580493972485677701433748478553633236545688795986291318421415158945994222182207325368466541767287657440764333773506351564179043901113755918945265468154901288895974092143579187180234153159915554328349303295854171832333181222780495058476297573467182133847994747970957166133136677843844636556607327787691207763522185144703123352029645531648983507509591643589008484825363871718655565001446639335749710197643127552932846818886590972394106983943219784062865909417241958247732486619064224731060049162963109944244800908205847145120533153622451544202269269163728678595776364644355629749154406955205043587523571229905476771439501204080973686431169616181281057899399795530675103884994965952038592335317296429065977616268814156700611381156245053156685643957628465060689898318305447919683093358862731085229658503885317335345400587107962182452681425637451938327313286022764249230744925309368730910748734052797199570091850632790589597672018673740240382293893866183050045413771540963354105882435420381265800676568313639469595615095076930005439282442934812932513651873315901943669261300404209543761508140728725895249064877219733428806762293055429728166192740519590610141818522378467496579897090865683532951388102760576918241954455172124343249607623269385036916583556755370937799235136411432229518362731142789219212034478411163831785040459568207327659657040027097284129015169513201583962060326230993465938132102269925582781404933038872505816967988473182366762893101123180085410832122601447891474405935133177924194294064430790944620751887168763733313974986022524215232589462091249719914849582113513435078648608445435044387797337447508767727616730974325915085134575933801975236906490383069989613033651693655007575737160043491514538321884520636924417636813669797578504187832701477903839462102695400475994370875941789207312341590321971524591091294391131668999147296728851520418544227064034906849748074814109114884768744019076015921244497910172599484695173557863495305356480182970161972147521201794187832783987916453049592547194958747855982275041302226718631380525397052485566851398442368335624052573629707336829987499429871518569162149336760277714447807133166002265958608156898963935630173632044795326941504628968415922086978036096438450824972679949266744473451479456707699470263127850006555631637740480563568973084132924398866376470238355127092725538399388456463656176890717881737019619109850405113122788153190537397469995808658848410656796227133168908132922194310266445498495810859400366357990667060744761569823229209562300974029913813998471212983182729138679648914894952733555209046425552864371508164556617162037154505454048494700694700753717455759236342371759603060682785192181973117413424888120072843839711640072294621799949369854414420777568900266854637160002780758651027032421967195281394770567715541734954794314934718283815132303145434509968503790774680798825272034641346069197006547247007324803037513173864545833180736611936973117247053998627513932446773902852281150855664706043087317107521465374586007417370746220830958791199232860994760691531165663848989441167102170146573134946552116148386133756594423261792600476049130447519595070551368834394372447344938992737647830146242267591450499963961230540424565694467101457478232432016183044899087679578444422007578130028365707410310809093563411998053639050293357507866959932778422572244278217550112147559864140835195744061645783556512320351786428879940685196307662342855033949504408143281984575293163593931598739588323734469252812208692696642134017347342616959403887810355610079800045839498005081678376984100469441372812395229917753047856624955742469962502570508102949465910834774284904140272456931829511714955808689319729919590794893841050141132151376538912057247526949415338238579363680176193394309054617800161471294405790296010229307214784164704221337368224275984899433206564974450595387592218599086280621924183115135558978036643997215251235345209911901447814172036133773953836854899608378284644730052149283537634268744064435626155140517923844346539584015109250120287356668656963092650901411853980735070355772903891700621525383523371217013919966373522692811025256169029860877471772762611366276338334088246797366944588320611836857704329722738972178821208878208844331660487527087402274498972869645960321795641210525119334234021172974037101264774474639609094041222224083750229188925661576454462753324985918274758599533495123058443302024644098419478539058434692740292964376155116137707106991464610890291079474643351813288154575408493425887394543128456231023037714014568950415237746910468186824970083177442926804002312811269914528608554931563350827932087625129179513936768125448808410987893416890274170154669532347118252691686733705950057581588231279808885285017867243507237426216418379370734131643947752687693332946251305605952154497526836558787444095568914082134584666102775705012212856025353816679079812151509305137652690356321523794669205951451764116848278677813866202266584206865610964288870990383283457002595976770853317016453533996464835398067412232725579581131093457740775635156580459137334769251127529018890992439540614403201171614828880306453495707716500582492228431339089111037638372012862715047589918938091999855028888776508348297443747441586615487932418355041703993077056348429446293300251277291794084462966063202248534963076063488842070446847359733950431096364388892915498748119484399555993102779444980232541097404294214342712729337342319911377772031445730542950124242416418968624605851645459532525052321254844340822651432482498599110013128261879668645302572907578011464446912777430670058315471746649930152670956928771571515484010175614725762904540183766028581858276058740001767725335987157249341597488258504603773326105836875892018877369268554574991419812154698193128123791383256229597030102845964016106826406422623456397918328858254282035058201704858556801381219269665321207761716192773005483440182041584162369638304243908807815749331577473764167701637772415556066165197469646298015928649465774639815883625710665146549765075229260464841947052408303268750223929249982865874251572507313591052866666244967160827301715017631658937585091172197542163638795747809794200413496278870629877763754851460408373112238920967739352353534706004815546728348243647512483860222703061550894332235375683431554444291359453384942242332399967598418737971942622525248778697292363092570394052134165473132583162116517874031168605753669191116178301863428676535014927230197303875836474609055362871804900376944907471749729324007818739665744534840843426511581711638704447156896724796276852755176545783993487280559520279983132743980943820379888814892640961460069898489990890312163346197202203955730111531900961722019713702844975555406404899416355956972625790327186719385425956814018988909162909542876946100865269394271801497614368009539148369504630398938581845400619741963581641387298146095909660409445475035747236232711821082256563002146451639222747596706793404115700432122076649802919597765481667176693422575506284395156035742944498890690132517691440227941927748578860636891986584618308001117256323147140771596113061300620123738836205394938419320466328497096046770913772142234464117665091480391397947088679938445072711400010921273090514517765390012597773421437442800014488331218201527689472629649702197472934475848209617612623494206280236398009615158121047226399655978127452930326819406388800569869889765196635137083456406903340543187166816034904092158458565363010007682219778510504568127742589231187262572308582124816962074552378308125728597748396911834847635304295877620310292406244293899010153859663949805335807824396964116297639599150553835574252341491479922336182207817111000127001846798107530298827900844270412266040728927626848621499436864295826874801550995636040816483363860689274901695215429513944392515211952897643441073146932393426815458827496660559643904629820792816445856183560456322063496747658076698134531498928072621919083528794127233913572259709245498775711192831890925314286991087494847159309200876106569707129871063377355297872390739517344777492060300840183237003688055713580532224930809512073800302053267436349426961795083741729427002775187983006213870412175675104206330338891336513801963550092712630625888878336985734877349940781945567926514557414160228761559301773605430585401178548747276299555574139840205210143913372786448184353734346187900257092599218899185673347922590803794453944594475558459657638517453197399138419107677343756542356347852742165413893381854631698330432403311547244257143369827600744265863074555013954492930962884370569250368304778778099606748966837410430433393195339500984118097712886520765468062003905661043089194290358558241580603952626101641636639466783827248594808615926362669950515895814132414138227353605894877158164627952019972024204995645491056456305924148652370401567589543902204059023854485340899662095806988195661576446980708368328603291633122446403215488203216229429264692855845411412969526393315388406518952653797441007095508295488303821949581404614194664074948979613383810446647660214376799354016443512257280011989879402203214652689034901902794634244163002928892440381417590513972005732392968917411647831879713037651945884875320399185298557399379867437180170919081105703842216849150616815353507012234951393451949154107530488467169973201861305987056275552309095603176316945821778046600050369713369922541601066024881564369042441950215679190847595474773938264649513999220389957390099326207569105866252926439297113252309193428796583130636407802212671584979678059796143739432623150319048354421372212105544652730776242814123404264028611766046468341038842611805747829411429159912164062078770525678361052940500461648672681449690066801637182436098407713100343170913892516302293323051667812003847947717561853777915923530412930100848014613874424033798453002166127116477094322714249983952222701822047507232630424270030946306898852732051379556665900405985883401496892228201563692364617850017869403879750335026736824873670914952979500294660897205376010242385271247910906110455936128942609622712801712633531063175218518261006325006078202812452649010814294705192520007527717497713174658351124297459398778723775008557043204626476268211963106172929163531678749292291081385661487848259735676635436248109354200158201668813963511760790885950238657318723678277492538634870156819688932305185706269219299723125366401031023724587755671121079070780424986173820807927244487287233154927951370557581577181519430442704993069191726165153900961845237856445905700450029455281864119074893783713006357708299165682999573421207756887944272058102662187205637059625799998586117016870903444821722827202668550692975422690802834034034437642677750380784081619571146106287531889069534960959361037349662180796207538021810067525305102937744816122234550581636695179240224579600142432067971298934784173795889928026729501891528345054937296735424767755332228077529355379654379910588350517455960284360453033836549689623046754606445374618656279961761516184367217011418733098649101226654220761667647002010421637070249038772440283521028945678579506562469245360358859931470029995340268636070294828094782987366952711316351627050613668038223228886941072222283623199964721306955203360403265864150882628875117797231570759907660530242065301012520485103617906777187808764876138445741281904341602095811109871929419460169961315562247442162277518153556917117336334892481406535962384267511576057937903679923506929586892467697260471619069261170898292207645172490852116859998168244224530255918362351888436279868066647221435210018557053681790177761789209019207675192401120722985761073304059953049534418619775002309403521248444143683535784015957105299946321024753546205599782710819172788256147632710822473828721808726243433742582440952060230814558606811674741003349876154683416691844181778832347740486554226608797757838450075425159326800679676016299270534748803986377877824016901159070207177573652697237209699533186009538327956498941955630265661376812632833320333752611463472033511920898266025102632168261514490966928296345373496324267821866129713344190357605470713610641740501494541867664415324762947452654338229311412660279058949529361845868706535175599048905457139164176991227154812102582923186638850434229100667751896111495225586123755533540755171622564188720108178011408317871962693973946947717086400900714689208917484352307611807296972996343982431661836453420137832144273346808137252749601631341869104651672507429438289757228344615338286159232789452976069076049317087267052076446352744495262875171424403852574458467526938948530659441897582524450231550028819743436804067648023013770958312452888205004915884151806820348486668523184474449412391045360365825226055987744725776235456064802684200411324325757150211702456935962983450161583693549353906607366804427419878148610821825160282266749500848781634404103060422109095083415162958263402656230290955056140810187243353475507599798314323508031283958328255800877873260570997560480114889482407097652177776384736702543011527381778892859862774948048398737309409560689007658095119608092151715682141213939788182809878366677821852727501669298946489631356634218579067025461534292275312105466208417775819369874178176215194778237360045306322587308082740782031423637456636345605785450317388777253347739971432237108641859983564097249185940901459699513061794425841776104031574869021442563275651516034616010662552128368904590720840726640655537600828123017505009574767607868865847258076385078669647884253125958236555300828203795985891104223488501183314119485771958331324780490882926867285612172531824489519058686980714218557972944107355933463862641362742647331221301425674858797507381842403052712317143677599276249903232250661267602189256208557972506635951115146261804197242769113365587581137768712990013502376570245876040699927046821045340104845702421601828268389512652737620177898420762309313694996894338597966311279504252962542645088839720624609000098865958110209143176568116864314128639949762439235241186075240367887102051333057739226975901560951883299047065393574628699727332597757900270951523368453202228476403430896746879027641623925193237551454758290055660703478828334126069326634870047505511628787658695217156682792067289666736686197967373099392213190507735428762593354478703328894954927539653563917207475798124273956267307668070153332773550300475731750109689796340340577663923853889642620629763876922618976271257169757998514488392159557404700534287432877367607756135636099162397932266941691029456395119130628344437972205918584324213667310666607250614034023438188304230112632803284427188879251261497402642978410226336250169130768277669142798533409710868383603473420115949092888473867856483291700311143237251997237599313580422240618636505960357506195673431540431604449311677521050588361807449143203760692119089892342328553886588016568421067161666258907546880723904446288134129288397056554272122134482612577283682491619105339773264962369936277811633665029227752504365879216818418238022950792617294142532105606496831265198238944316987603163344900394790598662393954501028972867998934381449497012303793513077155069049248148545612123659522944659021245504647924924571886111818770319803016952379967559458856540995578420545324655458910692316267390051655190841382904891278978795086120123637918142863871840932843947643027630253057812596506056758505253900898398684481961799697418913441026558520080403976452833277383557417015828983269492933932830627568610544289648546982965017655880011798826772421345023623890207115919095466279513837403520861346147903258885159144399862207712570278294972742764201854835791224167760724832377568867403634264006327042204321566301420828199701371989285376346317044481595825343774751053124174834169426913988531127332527702269084217281396916908869754548308322244690692423206202204085074081664659272895092922818383380751772283360148387942546930575727107161102376134068882027956286826074928109170457694798572770531209666808810117669127849989305127521830296643018450940361580691339914161646976233079819534686033689579113995865325412416907278451436378418136555254667839639188998469060771999920828058381201530604767566942511777721959963979841253584259775856185700993241275316924493404596419518104594297594878747597563804018034416407281709463232082297561120880148738785442673057743454345832852278429688850985897481273404967314414383322537964272654776880844076167034703030120260084496467351783931402587486772581911493249796478958302958117332584110354139525291555757760223398602774869675122296523470780251702554493561378386200049874670915638622276008005478189709843171189939831670745033409507474585398764580509093069667536935319131904121483650056913420922137797553737287535387048222010760860655186743110756794041463561477156472958871304986162102369205823800988650498876917562139325431413554998520974053520635612028921691420892259200076132145961332169964129886517735655380472968939741183936349936920734540677629233810216594821452286991918587452867767575424435844281810326272171223956572612041951747835429687197366171126348267153863002222613570128935694574416769948897326548352798028924448020990112765550064905846773600021607856043009732600398920471407316837505567393665278103270480937606966627167594611635127031600506730526382071446220626415202017320243357425560834592832771697925589481273557338387099962067808032284753842017358916778444327306161144116483037662514489828617816129904712050388985407047264453138794952684762270150981890221260632091485864181895152522502787855943153848510667969431029506645318903698828881869783695229318159317897365601473232563257226599396041273580190391417625303629206993803977096096568746025520565518833374170985510640059181704768631472642460891080794032446975152630497081399857219960677324782936577768252370042449058284112224703675567333832514228041921059919485302122250250988850638174830304521029193981845486175323107483765247671900934082147042523385158650013965129389821442875557806588920796728368156852419614159370031518757676566996060738753067285298120056647839007313796814904091804813484530728521438969458662203278604977211682064492897505573801103475005086515023804875604654588115238117635282864061428708026352921515684526854597185589840078342804079753191809630891584209001110940655780518306658564019357850735561704573608302931116727259484571604180833053985274138200185922384537252920064518127546074971941350616886569529980025778348721543644420119563346630472279377007424675008962000698278715851744424533522737473657632464569077722661750738520356618607163347460881639277168556151243894895125170272372254990853101045290843348193140531103131313507564568256360211971585047187318482636034152996170358015518134429183528344563454102087585118378942246771617017023251822335336781799303285602713333132881776708708863426127509811408012590331562539032306566470306188577378416343287699801738894227367079444039326529972117029561076924712850280907818224747296384282278055479091497204235338382609843773413229853556894731936377457203915363599687343373855638685229774454525866392196820246374339553801541128697360197667674717060286931015327817117391908850219311358660812881753306483449275899462627751060090583041666592191572882016645818427763074723332015392286872441096886018717443559594561986926834405482703245403959700592064790994364285143677177910132094190906813004435273499761307878153095896522252514014406228028284409345973682561073678310657823813350485003703144288162072640985887602659704227264576221332529025362143925730531377290982975201760729872049740400134886057102358470592361134659302020839227600079019025725352911971453053017918170190101508105303548810553969442835545899390223300659883003923489508929680382054437151868178316622703867569043785415034698534250868803481839992480307710438220017960610100127427439803639062971025461449340713399313863397838884284752385639418623599398707647076187482564162140514703297167001049366061024750570842547511287951593318042012664428509286008179012068891037959232655659968503995125058456565973329375374782604596695471643990853215071023268858009732970407374476930260114837500666564582309569178780685658693672850978432915044056665182359179304755386501256291768237674609417502259127401727246245965438947174780895760811607405006154051899429126240635284714895329316367689352299044332236803740580925602903065566096742646232219007886836024036707462319493879663143895945978558382096740874221625705948965734432024333383579441242828802104758878953805591426348774782435991481483875536018266307804763354694920535369531805854690985630841500842627480837145567120173369474150630621522759380268013867334942181936608874204628376752078656904559733027455893512411178548540063283891170377671296830799705474693023322608319336340747704091056542065019627964608734600402180028867224477689654235981840278297388000935814514040874036124137601244480789584430487550005797105598668326331979625035367767157384698935264313565911386179524759814156271059935439101189882802575990608102027217959260848508212875336720640308246705998739037302141769317297303536789085355399495954280600481990695369882037840749219085486633541674879643860721358166139331449094402884220415892122398234549939235614124628063746064456263743348974619069907809593311829371670928780624322894582319083977057605599104953400917492499454613812743063673083054692425345349678488938873844281249663697947082035939447346516783869309688717540825475480288153400388902876461634667773848248161554664922788517300295124842885544178869602447537322139922073603144219549531800239770307564538212973068434127463685106184745511428006215529609244636482654341292809920498960113647316308099951856398212040619062510157423112777904056615693442900118111819173650584030363482214256021601966961288954176151237998848629938732701210092051400709844574651025154057506968552714245173459857325717779811445590099811392726289682088383048850690034948556188570476953618299350779367415793626167034129020296419477361974938106397718799417270315367225655985250602343392276128677733550579308299594682678088952990223375404576159235926234050681660093230452109797269124200179579588022383878339174799648193040548717207356475004604865061023112373981133193712314348297376636573106186504019932837476055219433801041431080360873159276346147356339309154428369724334009421547566598442248937638277027681387416477528317739615764582763723090924036076534945998714146274629949210021000662176870451557381912035989826323526972318959313033835743913043272230661125421797391947257002344771878519496941480637162409414935182782319765587601164230853902812906380797296087478125052931353430703642832890740602717654599510963804688708323337745786667705538304346650440232579849509667607895761956111795421931893450303225706460109810310508637566808694949143250672195205979090711235859744365665909064074566035538316789678011017690513647664456059588023741227088413043405647649314448865562671639177099667665044480130430058582520836262723267720540360994760697601717969475682235245980700630262366272753286084357170697494934953120603111374088320286484674924552311924458537411903875775918578051657950779227456425105580574491222914198788079740468612366965432211463000678029508779856963977447951549020762392870933142889791980321731227238969371895386006926490260066471359196186062627664813279992669037754340773682332677009764869936996025309229455837223812765847560072490009124300656078441381501936708351479813375101241823273660928918869799125967589356051951499019558553349737777672783447514600435665582111849319575596348937987141421500977838545703095099278653034927582833965460734417719903110428043639054090630434241663435227624979649857368588521541336373573189571921962098444273037204563606014067539177765695816677952811798112395342056084627754652678967661871674733298785241883372601823441820135371639172561683780606375938557017763202168798161730540277582253332499429824951822482528203596384696536901273621419864018707807566189447058333687233960972498217820477019768221903967781067238775712001552770964361419098006853178299702377477782075175826997727662340185134541412902123234736381051380406281514020789566190762513705357000714530689168707373796608206661059550229906705257623973289414406119330022281538685594170403070029207607102493816972891875177399554990867395511479627355762855513620276363028784725136456258912274056760829237622726866840051328799389056618275486620130055659956567264522630359130458378783829057213309900757259281361985581168747875355610833661781692753364242731687014056693760890115079551491844974800812195829565506514195538249781349299640182067986353706151968978655367956034753331412860698017374413194832806092629261200359949791941418122409022203420351291394356329681961546057480617164824259286178657142651968970499693555179173420224944053490422605169274160167159839680563523522600839645340598914924921326087536926601670966005124460113064459856740488793326326108861507027405175876509984038485093472684263705556364535502775482906173615201607391574138336136236593612000843037009857487530465540655852508211116480105561396184887453254779035650857118464945870750583769078874591073185555342682561389069147289576770966857505534419468246963452088639420090749947819518849053698316786223695143534280014535281455946425573839684853415309678814050063512949339795131245693351945538517966085623606413351868853171862934735206095782961059170494576531899103674247607425228220564078122509285231989855375435132957796461729201788904377184200923053272267033601309619352793254314372776940989356353150617883368250069672737909964692261192831349945528790756440805579253332456945541566624558299748750416060276310773831539034368118973143247092606910570467060495290200672025265121166953413360820506549575015791589382393264818826659003898082710385349897264555492950565112414681945417532288264698748335900729231796639594541977843753306003776387009065064680608848285067444910031021119025019071702691791997765328411262361631097451592288884420402706984748132619677997719362730593666542083432849584750604465842865814461718075339204440560379734471582460210036166670289126405162198403967193008233586214812105635163013894603257089405310009683909150783813708383535108357129698174202945581166694135161679385111587965058606631415072859499526915754952874568156905884529579604755047513846179498423749544463346413502209502520417685075331064945665171151687976212929792345436434488431429999422501562260551271198702610546597753942127382413754555432610015103660368684857158268576782206100932053132656950931786698594000127452881121563322765678539101339269152718857929681598526438230896677536705148144832862394318395451691589756328764494132183590712501584843653493371145652247656551091556554740900195411874237747866876442345374711322798811350099694348993318201704994533060696575517403664782090455790393631634284262079748841449103758234056583654626140256781417047121543896624311217533863695812018887853956592303913798271935133824935955816065460752501145686688829631949935704132996468764521099484342363306454074955398301780861404587216262082304493073503035363085906633275475617257047758454012172633559313047654955138104393230164606664007731424099082764481397695077112160395148734367245356588274082463341205861903617542757535786380725911623461205417171505899121228898783060270390798589854980754631174853892456153810041009086512016384318515763352752661919028854285766038009965787444093372456358025864882289190870170563242197030970162364745876600002609036502890023681622812103545969006653338238988090324187514667069414114060690108822519885237924171252290793072208913006113769201792682353332356502997960005150235206022160036790751150394906925428731643090160730576811297968462670527359189609144376663613712484592935900696221385518240877898051131644396830028129241380019263802567653760752680286244293225834280880116190594502834353332553395659367673706746180570103780405601409304080751773561341997890906680063296946752812608838904567285677465873273158846166311775369843235169730688228630379168534659532379889261752422393959114412458578468772458871802715514318464138103181911896401191928663825100597212335492366263999797042233904674714265110303250940758821795244746402632174579859207748376491416653914337509326610748635088217368203412434823722446554033230334951127063728323474981160876160648281834297627248934403373526471642048597708856659403762851166346657255432974851342169104857216242486774507272936179115019565002609570224312003001057559213184026688586296029771325494116395767522913858687087463992060170940484068613271417304378151243284102671911372426824506624464434837362602408801144023870195993647820080560067874357873485274611051917729823998485703835521854821777527064729775502315567145766229753680756333046662808903252329063185116047038926208698408148446542626844215427323743509938794230212295380404506193747486977379877513733865750092692061670789416975820024229336881347015061022882713488694651704197254485763700104457978982533459604237179188490231627731600401020732026027616209521554576135243672441455544359033423694317576091951589025301444107539212118049813846377311456152088427391304231073511639397998360708992895183404247111163060523627732321245991255604538343084632145591259467386000554185038962347803175053599383398483681664974098007357848369918106136747990963757996814834955326234373408300720661961080047416771827541960695619223866679096969963394440124817463013201951387550764457573381487631183095352423993230653490172625193594400898517081996239100107460717528852387802867349773361305300391447682995818318430618163284420899232290548139416014315726674198129534915929452474094178139429968302528063836052470991427803165446308655964163280094221888588345653433042676547167374234527049140166774071730219800623585940302217018250422778428214799099438384332353522041420887041202024017213790224631829503118301155649721342850095570353261749361761273580774567654047520612940442193314920646159985032918921759873576372073945894631221530194260709708528860144066324043663473178017229374766376929160252933131853140730587279792693835112311100722126092631643692652430320142169521208541914165840485611385716377338802410813602389266306683269521178311459397151164299053120484277079360481631017076271229374443446174456491587253635710867766865764554750874003621346800815968290252481546985267068543724907561364660008480968849425482571617598733497786633055473302354060172408336233771897260287147322148354228776613603579243126872272991132718321021589568331072110734114446927138059837003808654152709620999666600920414993634652582575759857756844424225929270769734732767088863730620069654573484950283402632838368835975319191045438847909407556192408114525677660112008433168747532861449017088147043015939685874066576258564364151500911401738253573791917338520847198160804190423351489779461663248775474220179745470241107966736272226813941784721014733041075159275191722196732667276493186845891078780335663026384673819579372726953522358885698764825574005423941860646150982302361525932758968431244600751476364012293474786965988630168783893861132757102081661022770771040899608612294486264171227755528946506782372769172265457683732534373015930063547280696320655894747046992744784941799883569255217042875101170728718196663549954328984082811996030265966622473834810177161456902094717048211536363996515058820716697188525888587646800520738761516068875594723065906861874568600888563846492932572833287767453011244386057181988864842522928840287948477202866180494405405148537578252793467694233669702535647912871538660870973314846626220011297755182570665440666737189309482474399227741775273411796247774507583792532231354162856513721691175245452141515449183267843292795505648158690976838578466829004413824760573630908824111805870651870977199100949888136818119982721336737978671296478731226185033873217514393100980321734871192127616714818265988265766636510011531975220146929432840650556281688732427712447833640565290399695292667343189232469694593609592527399653195071797909444880747154015448719152551361030424274789291998825350348813070714461435909460900540113436024980192926338357557056000708060331552980264125968605425730532011946101073556300974776683998652405196742940367578193168391306749062431490228136527799034223006914098224568270220994446853904487057151131338154779443353335809239852054986036164398437059384587863183612996965223083706177517584829513774057146470516584266758410275750695964748709202155836374937342686278558336222974362306008843654943880750876433711512897551510888937507210001847231193084098886962838999978143920501524996567795649908434895041053101938748163278896461809319711747419173515460997332009973900634818477377719392234916976973125143521890454271550366780069692731517908716992241227064781915492427042797797275525601833339724320696131341819414667100816967501248441800289415724298738437500090467763227500525312593377317767662293833647568952178679483397068908824144254273836288992624366065977632428294009908731878504388761302255419196714567718954914570710869657643265047525725728932084364479400252741310253083718944993753434441894579980343751350793593343133890777431687918884466186470033358452957848411583940246753682832328202018760033817379428713739141747712477458091586230941274844661887164561662977815607123348445356125388529251316908925335359151875678647157207824205012909804211904026186352686433756398470292988324190169013678112291745846113227342324776073462707260894385572764593643375227745956659634609131978624611241284668628994637628164597797271791928867801678077975393657029705694077044192648561084391109667485830398162464555527040004695281202168733983154252037331389280187275840781575819188061880184524533485510247906845092766652759391452672640963172026209227950481563931904445848033567312770978398573160472280060952311513313628125243772164999002326435385582283354674128974106052726704630871634495356436320574435478407494037386008892260810577321893632899003514952195774764100498883659157535778625712212626828065574897558898519890455722290942516484166569609023347317552857907944482523635120052779911199450255314980418208884615624660742273677617190023091462379393876972162200504369151583045674535715302764323553389303438636301492474301866218983402868732937613812692532107453999765219457833464899629211769931818373828331277805095592467797268254016867536387458317274445133695328974505981964529417151614702919554837252250734039506423676374158090872780841216149365297331839692605088159690040806653481648123480275734984422834916961751311777416081986564543680045201871454565515407135869113926360999408031684837014775222348244854573039896020195064215862563916118213783535438594025817850881714527783664148388833785726884157568565102027105958893730047866842998485549506162926766454260623209166218570226797247305380959372272142955171024991643551048846113608560169969405156232364721821203692110971656150991206195991090126788917376946245238951353469876482244731905551479361013505054959257811780872534426689133732955884739639505669494419728059976370033886198638788380206313210253791308848202941784648132692600715162730590838589687621829763253898036572251904284249298810091719669341193159083195207246255214469065660186867196852295439102175265068932706818548878793513492018750347473621343785464264491702735854984779602549482088558292575797774726177821845205620392215595853527842469623207997764136055668784098357341658183362445841130778548678596633439625763587807822880889981809453323872586524032582835545250660990688496636766340041353815153489592957067420422874755376733442102837081357454961282421978323231859183546010707002577708616610342737401330659666932798235630388914214230169327764158251739106022990066616514665033007500694139179598362366191661181912877164874204788777238165243040378163562987811633796501030388605179200077760419197742949387114251031363328304600154200520631631549072347845281383633444800356027191882762689820064254021444361954295984039317907640907978519755807758612648608204636504725953666821804411769747396925978942121560342753911535059181254189496754969831772117961043737800860120703356139555107852455639581843345408333851217170299004663776285450582308949183624279337651137911788244442936266736017181633605454115694788806104354085176292381048108598314529037912590922027730204247667920220322489235008434368631749057231871532178583028701079167516564808523017365608007525857590679149129168207635802676595231005746839256850411699913995717648606640047198600322433495159030833106641648892189980226065704303163048628127574617533328969192609614770318277879064865733331926544851325914909497340836434949325789585455550654688449041731758660417989259688330504531996101718862205774147949090856359254343503471460308262250534993122719258021280093222619682351096522311924854995830610896027825715657055589953137819341839934833922257782719588848280319565161500749218009206106351910382633477735075414625223692530734376565070485764362108050220227925344936654054843104599484729377545495278142842891119190087678044887043987120752808128105949761419293164488554588103295572801959193694065226717887558838955369385102373340972531961606137691423586044008398852293352859806864810056976307377209541830335750644797706470486278970638396940768128275495278058482826023021521312618961012152235976727274038369560653041570105219203932574438890392863988394860412482706421532060584553005535491553046978289219469235216015896474786386921355750339102841559319435938217074457510969690434484979841859841014218814400231647110532258263305879430020450635068942975135593994506851054857123326205260305007623350737904453680188411911637913293432326663103753216079290950961609776330430763377508174191835572803409253938804937941917325603404994213460291940261863338864292102690941293596121523029206926833036938281296499488323080460493390455989214467639897939033794292432561033201940121364780637585606293220614425248225053001148511723241369176543748402180360175652786973151721041512197359835711695666738463248296600079923313792615354874054723434537139428835674702342602026874568918004483017441804275139126268362449272255284588557687427703454699481232238223895484724312422634368764353661181371684605483625250373310738188265203295626124852450675351043075922043298227605851475268467288233471462324028584403492539650859251260718738566243537478620888062363793724680624588130234884844976565183345593402894314373695117490089395434682588920206014382195675972627173486030407206463701525964681917033829232308024603837034659761241844160065471221600079460235112470372765128704628601001446320259047813185915617244011142225697262184752586024406115246476139232302118784719397794246431971296859393676482782605138236636719376547920894175553718916708897900388473126147988152757098415086097925411170487735235975581443336347388721766049173327503590379388027480053439310050708786804104700559801644053510690035035487976402830672486188874600280201661583986363644316061166810369594298137610081378669397360930000902597926649465273598943695415320003152889709135584644237516391647606754254819517678991533869757810127641152639385559698999306892820301936604490621233682007021094572259207476169170281738524619055743627910852171361265116097057874786979522955581258606988290842112354933198031254481443453814056053344327111804231565292151984216053563262497135647185698362383198717708640254597305879829620562585574768407449795349483785441687900238002326706835466761578431855440536254919225538022436618212670074283067816204146653605326344751924766851297887906464988594685487503678487601393891056652874266300776683800999120002041571152245333579014309046818988592265303982267341201363085769322174638497122954561540535711851316491985724030981006985973143423333547258224117330443529263916006772878953119493117894599884472284481649630350324971141179287293330521607641599310696070123599223511424921338113619398764947051730116640593692485052233832963465288928422877065996079147278328217580373684061123631394933939689774530078457503946068931783407793338451972619998437688982643765069504569628218689137530658096311204368644799908393398037377245843508018978313017632434321110944353244386208005861863537615563680280363332073313761472591197169970429068434558982023036045635296337707405107752270425097523403094637718691716396915753542062653291419171197574621834991643350179978635769513938719450779743396403326388827037557860579937787843729647272551422444798399864411819796001382105476077541801159119471118752447480812607881367546111777626859169062150501818860600797408435144506127751224959859877008527169791483303847338461634392749138043661217835951009417250882029011290845394305748441351106418434246940142117174611158559844573846248500126560026742910783570979147395140205220192068616600027452480339990911473171259258963017787317164678509732562440377996906735872153515125770031974676495925725625986587683299066767313258382178289018925735136622223544652325521692896808519663755863973108037582772302630376419051064249449951129528447823014555443281170395021632845473089395635735073098382999870912384925945252465426155382812984134543564753183826255811017126129036777765570405618879357105844966993133643835209870173778975746138780645264427476165060176600401027750173798603737678879247969201694117497113946801163341995860976938395680751017960534809654661946618054724083570662314900924761638269794951852534250435263769805221617936061721894336242875903454956462819316997656074682289985164285390002557365093187721868110700896683328799534694005070939816221213385913379399999478377142302300842055206274534859750366559044169799720813382804746130380177834046948671924199477866458641876024245083046476541835146450324898709719208710488763717536404080835248721762839278959528731370315797479135243062460815523371440652246676725156489352403350029735558285508784662479272688511817219080448218644424548955575805432762517441613419367330991588199649402276468696021687544959326045220007901131913999390372520513090446732780710518932266774076108557557711595452784875392518841872738310453193722722461284701943634571968597831926514666646319474293322344899740637208403462530162579213356869956511511705966660597909607347029296431137624113215784009733511017539705620041270976675220683366766987871652218607235947543664760451283007807601595049442929596941178075213175155246240023100964807996882270821294127687078320705755523944490483474532980277148585185024076607345780360592059367223098626727275796248417618962953255178371911382448874006508249727711466419151553302903271454778170556399196785325512157950422528007880260952515492348457091426527141841713935484553443188669402305678746998715753100720777361225251261607355061963152732373825866095778690892232860799802831361276446971265061830786772852556942325956832309772031284081826455297048876466158991094235638124970904237843770528152782117215365355254541464008888403415029930558901894189208000036618215241405354385709590315854922804830602387182738173593131514742944258275802137367352025275283488181741106345212104847412299956120788956050988156319585551501103566169678581891587039098089039384444711049563080292873405149310491428889990311454179804505721008493659623731896538741790302010949846262838764677609230652209712150235562463721202845286511123554650859328430101261363791621989796121524140983392769210094937483197710390717850945341348418637241882578356794506739646746583728574669085538309724114826307944324415821668699109745149140699059202772980724892358941777517481170984453140835363110268127138997077096459999327315279506716619950426775018772587460835635051244280899911355972919111564564567553386818348500252134037678775165696575612203838035157930096836367654151858411280236583078173052468404691303308080721016829415912855481118812237420362963684934909134185610348322762452333052324354049899978013003045031196989869807681831406404644461717388434309385323995225598298740764369485950645925600981898030882648320453268503912606743628223154773795202114172533889940529035939423683427686110457441616024473424041952875462825817686104359547328360542119567996005326248129030163379159674286880753972321796993284282762329604724787814467263883336805389130097281560467765312387667299324879271161558681388195814963880917497008488435500890814764911228564197135023272057033419310544322030303169159943260637778532776535986200008148535639894437430157449091626912264409320269043700261598371001729688584654951496317559861105632552543916359262497771613173494988910825902169210783373287569270186688472267932153011008498433211254474372139660533216736613348920447385225232383226653232150188458069501204757141731283406195946520506309225327731845214264331154630650441198977389410166786577297451764502937010372656170437165419141742573224690748717853616905931277241280097006352068057513628744373876702234234693026857543257294101547827597992508449727404916436335427195559104134814286315142953731944676235367554815721009457974223900389612572600868279640020520758498479179584029547051039215687702229832070298435598150396642024778264224732402745847500769400138676019883398914943882274934117650363736834297169211166651500332674762611352665311190771337858795912617697241272144679744324378410361105692609356340817792050987314389327719903594083628296609927368720867893445567753797590006205137860312429725627009672937245114918340014844429899982457281167740837383951585243766001950132481041425280382050266600108926787366608745147807406999294892670242070068060881136373309531219475923431989397989419074657311351879730668541511827261197586523852000794356130454867760464799741474789708425190306781847276664616867900154078234708857884779473211174936835335091161081482864258631423060873964115536214876417778438515732221762380912892444609238792714315338961372195518618211562232282598902884974438809294825860967724249168633595822144118231579989023565391414018113992908976548134548463367145967493353121908384703354387602004975846772093480774059552494248913336545744110095530649771294506205397939937836624274598613085096900468308912479141589100607650130442956756856688880113819715858468347502431256895215759875146541714337109779722712983695828535608476997512429963521727960695160516500711206986074306122209739143431396159606205754209120453839867014633546650921855131259413321025050039108419527694286596734144566035956684526008383106219024184381065780871751256049241370000368030357569138257831331632098404973643367817616426551921161859005438036785864599545566963666105220763826782933638867926200333544360024111420912487045753857028651742346249234907502906263992968051865112335529860403766870750620961645432143499948236398123798686510887302722178430942698648123095914758709429789024266328179728765698498954151022213796386070851133166683286963092978972830289292124759637916859852642401130214596902148257479726376403167281333695441713046027774755585970962866216792727585459416036670419480304618863748552166684299323607046497889182989343997549953474024710380383104314021238712039200797132077113094559268765754570707457251183916398548970926784961476970043355634070097582661386515953032814975782165760029150805314829647743524170244469647818998435509223033876756008267316527338964850682344314026566559371286049655916664359198891200870869387621742137177150779143942321638764824994134297661631551420162439310877795584218737596146289891285382482529567044205381903238171899682757325228646622876124645438749654889244640959967303915884221053867944807895962154466212624839994946770809349667910664221469848578756857805528073177101112375555227534390857468616099087281374675590165952966465562554572671738409112037580983959336197051735619579907060133014866798235983718010980650724394094481867176713487717451483239279543448653819160283303213232112336178998062098912291983324016254186547289305658966716188613305969718785973890587291731963830855146523979177807930148062998935550190193340824504438898817244592398099917175152735487091631132173151693146636277864677156787299300605333473121589482568070140508672488640248408760492156133257131345221957875872431914373667655885127577118474427100174254109412298557933337842128479866739274929287772652948490733826055363473118104236403440458655927927133228921884363985062025612901162197407677885768080483467244346040547323215751404962243877626516687606593275856919767289743065531752014179968607010295751275051356623038313569300007456725260234806456057996499990767641331747594117625962885474619474116037014252929742949557798216730260030371712012820523512640324295296502266473623393494414299729677661975719434564620150199556155782378675956250454509531565459693791910739915255561303568701547540179804015370839715636387239771095597741080900216967837010722799702763543342485382551610365415176591588033102452943592077161995439701626924928094526963216198507511295775754614270256157703321880550591871571207969926101213262805559193025370107248358180505449728827740419241354325184400833026876160137049141058906819716313836241049885997273627433807136537641794284757333978886556368583850630615432316897084290127353730862074230677469222484791710052462077578524351280456890565716221917735040751779415104603642444214252018440722603351899121280563174548291169152815734099899608414071829168929606217659857058241685869820268001467634678031662972646961611521305305720833350912731736071047503994330531439960556728578081072127290175107972911689500157860486773619527075413901081013210156454554404150314150697166957631888476144816656428878767331155624667322116690427118329285076831366675277234311554801388285633063757465697199617133286118641696899597183849008790386800524317874963998916856904258036451716064100895754576406503054962776129305713771647891040303138751639875310550996012325546886303168775958661230364020864304290300246479167255957601873764110020611398090682644278837009018317130498002901312179819903009726758415883287140862733550333026213422429928955808069369164413384742133111629898336970782179131667246154901434605180046367437297651399191044782668893336481510544175147871024678423086108033000252439855686809303966198943052276039981322988939087062268339705283457689177215371985759007813234727034140361564753168594030246852437399166160344843603307228834719015421439815648613270088812937618498009589962799132558067617951126327305448468021865563944709759161534589707868160477321131860311572629478795443796194010288127054133766584317559834800114965272697918536470500543116618030644716145139545465789698353039745166476279143915345492166331952891126965969452257589686776324847620207249372124006027405622086192839599996962298149718568669108696491797306603014987345201144258362024185006488332637109319886149408933783474598561713563785023372553356469175176738500015341511543741280259577141817774554344816794831349587894288223257452238297424675780720940990926356796579508596325603025349213366283897946127200993590377692692585583706527778300912100990026613029085443026927923489062256644826712113607098326308903862697972167179748186991158181607978832453588183016756690187669725921636522898381113095966367306149212441478492152687075914681103857775444666490743269169802845902946564180523088931164054851669994680145300099196676789516446709072478602440113486399921461879944843433823027454845806006885310076829061065526771011534083837425014868306470085585567450930637401394925729114402727098781696081724227541262037021675593878545810913778919816705040941108219422515410813910607280380345472331013299861151619239972064876854224431340371994124856084381991617765620339817210365969622205621283204126788929903657995520171405224385198246012771926960177616057910709356857409033584218068704865042822157359532968170848861072441332667711754331963035367768714531826197213301681446219693586163906575330741478388986325260127038999577249556154446479942558288385942003734229935024906033715661873238225257004464644201108031141221559883141944870310669313237161285758391310712059350420703509984400668457715547073729096809933270573342818007885779260113834288942296375969312228118179927603945189486579962325684329392505487154926011756135546592164915817691429931489266693633565881101438588746712052260142336154223636832905074277191283066115223155163559315555304437214427802928390253180152139039299212356472244106180387615186639624232419207366154251330539814130326134274220581190985883779380267312555537409997830863254507084210298213842233905764520132393826809252158265089444193104227358935954457602051333730906794696726743687835997299000688449619892254861634275901176019676427600098530745469564443310604469495048250873864540532989127232750410683088925911836481970384447118927979715269813452036655392708550928785149894431984812891845505662511362841020212574715208932294733844491224679674034398736669959639260633938987381121823846794879092734488123542522650467899561548204242405579074849380619714888981581694405494795327187960832666432659563849142666267089259217718654902954965074503617994801286254384829047169601189417115162569156738796729703588574023058444519004090405871394750354402542606501617246476660237634910286827468593675469162444796605716828879439161949204811390383094516555680725737241147454804866572191694729803374215032567141546508614105734002036319243913573587951950261817112247349712702516991340017093905737982817882301799513263459944827903566946747263794565376087593282850832521330966754069696609032483050283366982712388665858654891005999243667551537870269970236810015134758254318592929390650733398584539570889720881782863244752300717735175894886729603672722015219346097511348291378138889378476121175841040652521844988058310098746722621708171658013248958621917723997060821962874884269524872069182119967005809109037566783527245215835942273428547818429533920172083465459089118529298269810441349313075488717763436614543179888408516315101678358119658275728728181687566203713009271636549005510159629121074629949215596528779495763800559133186575873669527270909854008477506938048249643713198342735873997043672442872744694122745973912193086481925893292447367715930215585960506665635831830133528349028832086984384333232667044500007488246313682716065077027153743177670244628078047081614149198107795692256852336894367601326416693708631163880184248749620948089860251158172566742449276854519068348283009074459103851348135656508515725513951298524283148412201165145687280504383236546926827036442675050464153945691196014467141334937594030789912741157994352113562519009404855335263152241228584462568891612846818391646154870915876864552109294542577145673758594472803040670247757326750636386086332604712864636809482150352403981634616077810174257591719132976530697142179915627885659854036732736132524125283962307128173228310939298575029558358671679228842902192114556740324291082142234493288329869502757646162336061445763749730244927668518144426556308450932618178542640338045037878762229952593315123802177408622602404945862417812669130552077493852478566118907732803760651173415731554248514761823750778500441572132118935965104976973657663498063537096638869283447775613008234024712014341855035301017447817920354981046674421789625157143636895201169986970454078771139109993404182048929488376809737561443494049363627015305804654786917517337041437456687513374927837083203750335437283670123687738652957562587013121283536793038431668113051177579747740378205742575506971357551886900887621434959788145804296067328037301991751831654334187209587865442526326974231994107271914158944613113076673150841265951876018381745380764641564704391570414452120805321533455232918243857473174628714120091973152889347244759056439820685495350296484130297239224680737983194466256467617661659183957843894122438213787351520307842270232774425192584207717678858765907858013451895829597427759347200667672658128630772406055649807472799867505233097738790272366217329223144919192155210537841839061121746730332379190428056900407369872626226375215021577412486598258107318505559309085832374246373926672001527846053217340847280827353070404124472237136550768392618042657669879308373193730549263230747847616939266436245343386175511745680410942499916940241436773642079799211112449181293388186327845135906029603441942318734406633244313053046978193300003581623884651347279103304833165169893152040360164143178448608530559457774807509723005875907001464072309554250960007696967454359143855482933137561258706713680431887650658590370787295808900982928641064266134530153636340339821543951377385265631584845432395361716513808022709639645809095463521859891750598860518327213707881279189205811453707735161793883174986397984285832954991834126418733427282702799053997879764587939042732614357539725420005046013441829721694378671994799400329388556263253504599591443755965200946534095203113457401182679763310790820862096493309287086658193548854046658936054718928347863055678158770720734270717413797899087746622714100913600359144106438577780449998017229918275846022190185376151402373300855982504758055833402290686820988641706205453982123441607197898171527985912907681486923847923539299526989271536208399666905257376224296623636077015293978026371522248651504432266378019152943490523028791692146811801185523924624653358472617077200711329764555371535910287692022567530183755980252332396749087807409909229651940300874766297447648788794277200873325921392087339486140608414253187701607143759229124309609662935854264929169830831672320907596702470849223535774617813724837539284594887695715528166818045268807293060992529491442197621996654610138665892404284997872117837894762739890772014867972443700931933074262342358581307965291260066301028259110350617111920137090932085409307171157114909018877775983482574556165309733612986751200168213070840298053503144759827011586507499431655123617643104655357821477801644883899548488261257075781354557636431706596629585838571995511760771711994016592512694620614401189162591836206118277747853606943617728322968494471598960261310836970863452268882809659836734857306784727841459522401710759813673760388119775954504437230361974490799689334405940527957104297184265021812297630864336972055513887505423847386066909191992037428388111093612782411565722358664335440119231977150435967143280550950272925412027261037383066549162530213598512535329876668360009969132004065977433577092758934321990233411254187636284650972629656034753381037114460243270712851763430854077273371107042882630349680006283742813782796506909746794284994060148882155501344264142374503418691925439322421263022615505321985815760917865541690320860014653330261035001493477974290599055901029191342167230208847714417320653543000280552671857110100097330849353152821579621765044381584718793366747330194017117356469609906212409649703273197940087922608547455071504069996529201610662303485261357790517048437871096265413747169641377560381808315722572089114263823515853772632125651750535274865283589503078634908895582410612554000416230269012419059061944493824669354346584743284303841626182474291855097614972159611631559000603589374469239014416669812016360197632628037541054910860359299219882025348268937680560248807532275835835165484790696610728991697462529997899105066890611864310707510719784483979677772775539370032502528008797011865571156927387421309801086464801865969765808827038373673929342744076174300300342224210353695263537467298765018081127684155157411203558716679106093642413776225123076582817384014310194848622824269661935729231864345628668261722583745253331109898518742981640570821281346387198648531653584164780665495647910076642054433440959471889984702907719045898468871090908867454820883231140939730737689541614366211618943290269993245707737580810111436343510727680137743852910136388449495627809090498337762588786486875501512317062468614451882820477717011169980656484718348328350220840507681129467160493841857038612658361996695298500774928749528275350176878172503591356265968086666908867640637664098834634559791981317687113221779443360286704227921540690777673777777485887078361846408420016596085073582870351379937223842494968921770700017676418981824677600995049351738112364857406292471753318453770929492126683406665757305713876435996325358532358585408598004717862366852828794770412341152449573282197079356507548715096534211410859563393746266525494676296712548454261745498639745473566006216664324502524556957578964447214552346344145642981234401307301924480261167605349909454353814754660761108620887295126932647639145432676196842820001979780484681491339461035300425079833313245416015118162057290878955952721508703515130904638642220415325000400630666050895906046844325156664927158827143611663444463745764129891864378861858160910895971669239678339202606227393759617899727130537474760137410033948961438227766905432601361972249808353685295733749589792173413637740409500590852868288672842252644550445080464018531614877289229328948176827827342209022132325027624468271010031933413687235183208088107734307410253321074738006234139711104534199449484075883226376107157628692624892804322719469128139121098352067380350046336880934750749886450924229063889200847946632365315887419727563225308562923693471811602835725271120854297096644366358580427233054658586700134778261519076484152416123640151950168584724424314559378264911809875466612761620266244929756395490331631880386530896720337412729421830244264990621524702309578722114250739134894394526219277124176664558764934520813329982978314330939966202460493153808985277467751166946351326660074080096672393948614906428408920206489676003482564606957245710194293106806224422389480598099204718287004308705014948429623805530256819690003795371700622159214408040338247867032217816567627200945265482143375039631589773629866731965329063647834497460577806097984569931877687604101403255845264821991346440006556443586206397966644120567976849621326076620813949399923684738512398579831165535684868498830410094723876560471977282501464818214542391440148871567234986151049231027313434454702158515825985784158827511273426883766060330877348878423834718186450950067696129185042821572452432721700751657891713415006672799313020576013720887094822152012542219453478389073258039745979100697168019829871537484968113183349095101992995160845841374004711046355446296227722975125763417007066128298122814223823560583474965057562636206498076074433650861300384407309165421370313034969433726646736795067443511987742680752466770891695812581956634271905174793808220700358198370272046460818759547560931042402864987724383952916999910788130184822275514135856262552366359766508515198908583280900649980547600113553619347466443976184977943231527722994781304103604016404357029809418769332182446540108799641552405133897613828137643559989132683286783684979211200807695227960792519648093045670514566057250372430161633832735393614769189554765569565085608917216823677926837520493957425614832964786677153942990742803396427266201788405904221406789196214554451569383062850559555924567966858848643989180506530515790471300376397492576304078676750183558048927741897274286370365096743813804852766479569878496288563555457487712405587192214580392641062165537539691638735217797806464849317950549693677760295496007509433738085176005997137449925154319262226460885693434694990088879943973751729451619378158901528263289031380440742858602972058524364598809230055620831519646111419961137995606666322587678712881628359725831524028706975683383241736365193272363164416602012332948415756977184600681654401266458840480683996575369448358471937210339748166986316956162048405683685799747676780740302226695400704811526630228230936808832172220579879120309669146496537307522860154684729337491430292281008210475127409449671872622142553619193157177383989529058132074893391954945445473050209165269955325637699627362442168164896570618728313129538009521505454538310304781128177099274207143637205954808336205207609329482149312432076893769976965552188866269135800462646880589485595414385430040330547184302425522725319868485804071309786928305876136200112930370166338842774774923719023586686956940605564707331068237875451080488844371357102957718834319488598389609773908995321050932426187930403818911499843548022070813931725915681833716869462040616468483560687385688659817522200527654106043801807870478851823899755168629103582935376464580092158757217316281493203019668194275931490734140617484761926430200305477311988422754739927824739656298213405129112225671931484406479338894522373311634169244539766166707293133344273927486804602818492080421817128428709276644440980566753954119814584430460084278454528311932702444891735049072179603151292011838420726457438006569906441067539248553397071268130977875511803861969188556074262446095984141236345585918046322785019259179439006248931457799061575587139313800722837774005454470720440971890733907809833714950724165512756001488968995864133124569096795393703495972436897535805938996101191450451158775277523906720258595745293480067471334363963510482921189865636127279740929648811005192837376847567718338744287217298966045800116130150277142264905140380127845073790955776496911034238822157346480983880555732495965734781400752327827667082277511397728343137798511008110617343013963471540361778988044190752239104294544371670506148418334045094334611547485776730684535261748479515731017287793758542476467797360240562689951743049704433618001526272482449263896610996085804464882160704305115150609632724028225252528712869510038755317265563609508087294443474581296309296423031038952478577041498030805802425683356548071999241541562728829791782240182044023962059674532328146996278822937893277356053203162178064107513965364761731142524288811376295354396235193314829277174089477712896286256768611724924897970227372017464835476574580754010955421181211249880363537625735874513729314585443715064037330397539891868504567292522239962858983858964283184896146484360504415846795251190813731781764262743871660849038153897094669169736074680540293307390375183723442475235092744661297427590090830734143224979169018649698225936616506980712351230528718416917352200496646026193310639215078039427471014977065717502302832809801120635176694748748080379073028684744226822569372739867375921728876568298686886486113357697973717121455432455417418531472450078874297818811681981049592360987572343054881150326801746456873349301970555882389113556960863298543249646717617961960740638602439645576646240644897909993011422908692445060635534813486909473141421524870558378710687551779092985778458460065749093666412614961035457132149459252668592575535926091520393797409254382294841159879240905925779091538628548102784309558271715979479471233096189445098549762611987921685541270142225195772136695875091575112458421401953939220609254191310265954676340019615149564417231389286732918731823248401702615100964828982537626454617689899176685922524167382165728502132151728980477054955669577103009522304357500092900611278436547116770947155738098378276972288861042324605953415707084020309615175283782968826833458392040747768608888730730770850436413059094107964415469344865724077771680111488542989478047601681445164533593799727507463711276609490680395110519899870862846233298173390509460832099136345042881226232688338494694826959771366003133689479779652597471456142532066180233323627242600371494584648427476893995787630278563787520250583774502181463984882263708707469845942867602099498122281568857741219999118622530070958815033583052244688510683701627101875567657226780076256121792768319990709845349157225859042080227533384713531117657382405110124289137583580483236290125096538625149628794281520992803043297023038625876178042594259565993649074695474647146927454136882028592234185694316450471422049337826933226320392743976491992091633419710498372678969915429880159858295732450725583114448046811215840927507151674177706049471879044833627219218064294933239547461672786935867359046250329350105026687895516148312470911940672975834785398948041547314990175508259811973202841038075485075638390688918645263357535441220497843883674129203597302128453634995941656217402849653557929109402360613334292058816117899146249121814093887203807041005271665803491780224384901126033444583878339312911757331718007758331061541536771910393557156698295312117233127275512431640871155876915975985442033027917328081722218529443196571629277826216481198479677081374533928699527932334882400974617543209715700904708821500411015254393232997147484656090296698502016834231164647582141947865426327248687662563282956963873106896297424326865813587424898865377874126547206029692136779660690450593499264145980995385774083551401456975417741742048031326259522997286126003041511698900198737066221912254795056804560960752877059045591066632354157436906419281372097712819519376223214270062584684335848902616150353457844709360613170224342271486081316641702043071868852676981725647288130800709163374436493149551755940784279520171356453991836731917937694189052067238916797401723862947844725825619270456498485486088955582542937323000793667944684691992487906790577077247015718586485579118396518040116453389591248327060973452712376093444276040258664545235016431229329368263335042100379099821128918523380014190589150797517219779377016606205540692833290358490882545217894856351160943221503231871266531240600299527989814066140106825429663198629927783367851800915621794422916055237669172526369156926324715005123512143848011727479633467060471508075978577448198436715575888987637830796627209601238436232116822383132184605726277554242123973728988813207233564373315802744330750870500948588021526538073782647472276308447023942659005512959470045003371164658297497116662756291457813432477404838826742318795594439288641805835614649342619515580778053851248869503279735871007688585997182324185346344623303601914263665519809857553573933103361344086882733185253813223152214879797309635496633070169849337926174351478685723309779136705598001842561719901901075219433336417540498696658683762779173500831764458012245099079453092569445088048647386940455642079331038608352184412254482291741742220070570331316078689007838871156568094361919987897605776197216670220592229436901252763026716826346428057545264583590981701492003419553544442409320105156803088758587038154081866088482114460038779833847427450927658459141966122859163218728914361783768018746911976301875782603474701075499612003189164504849163913069259506748664176619099761048345784274550250485998815772971367599278136300505977960615317725821465840809187299030364208384324546079366184581372452286325188662902783644546486625651104815058960080941336256087354301650995476068813655015796451088157632992972842621783786300493000764154310477268441234263933256251841352047053798016975262349865673328089421710680159939610483652672371775268015512827264986436140035548650811714609191711034668532742523700802001356986599163914387239845574992287585070747443664986535980547152078006263199039384124560948288957545255349931226243406930343061745196861656485048227730243079368041865281738798651663077467257218828097387476697081835298310718619867541322293358546108684287657544087666106228065915327712597712132851782444239278237281966648956283778864255659890457488454858897792660198772243682109694259873640753700476953214693630981720947482521353739812410015193486706299121216020025055033928524924321306482528642243712755413980534755586435180789024104975742987824267595753538540355897026252224913132483909808427584451363791386449315721029652003362908363464749293361192968702972290754196568828815932296289882379819553860320109371430735916975282303338781145600729952276590978018831123820160008197624336054257348871626310063687587350827989900241141030660434188842273190670132037062438132591737563977852301358515462319009786555604927868683616301449181686701238196962000052245827621191441069437993291607731336134174467970862086150830687713234327237487492528364072630370863792378373006540414616756496732848936835657112522278640873686051402507894825518978286449407106589684178166989691823353480281617290949042902045391208167908888740738695376988725383161465662974241510537100122157613095773523806058894396566371121324431316100333241700960095094826188111748183253477398160421982761264306482798075329776178982140456233228119353153766369115040975609595875517017120664664418327195734088642093182237504838224733616845940728710685367238085823406596383948146512262346053418728184149296597416882251269720527359385699353399037838288170645748664960780344751822170842713591888440585792363443477779036760166492766136650216500273135592314884072361505399416342518782219082790409730517250422601410461237007271857334151007807095905397184213879083113300642189151466495668858051274111810386582413129412286861228265160757248415191719093117142399591638908203579863057449291614808770412235638552000883024244836005911984578859762599837905544139433715248381127808451477664655122734843768496129505122094820108766209492221365875263745125580691369511586769471796056232623451656733511388990909589538125806663743176505209302634240508216640982781308996106438339022235132571247226406229127395791025830655217727928054063272042729215388594615029249763364318704175441372112038791622371176302894159275582707535018045823241525734696189409728201018170540603325204089142863834586625521893888893365001071066244556236121378043766727618716108298846656402192548701536933390998613180872501345201798223188593262807916652363915479262308989539461807389060537161199662614979591329260607018007285097273463337040725301917439687340929710581194001904946498046048136707394737930533139137797222278214408293259884610998037873850656642073590304723969526987401034266216790626699645884688519946882578844688134301790736684784428881195256700439663495215909032764199211435737465601071671088041773022590574926553101965956562430600555454479375960310314427481862826457731980310416566875766114966088597647738035223020437347631303289242512458844218278495371475522565389717333201661545787937123299588356142568697864199978639535672925043285012623478504074797228023807305452460015062149373748203643457493258746875481647758135246190910915215836306587176578224073820048102770670184717114435708360843184907523948057938728459454587992841966864598292102862459806460680308153873855038189438554212977415081457756735378390923390584266018964897531137147880288573575211234438285293415289088737260669885878687040720335877971858331791343656052634192968149936749353342738907183910646032417995838784784848004738167381625188061714134077344079126940561974891281709271034292655228697290746016200816797010134019705755008548439865329731479500372943745823823296717998032436385207355130449537899810128257011221314657837220020710288529490967366666013543464191831966533093559524392280681745239819119252195860127992452447142722709408003439937352775520951015288503343622757116716409349385329741678458037306669375512272351176354465956187236132849647245369279376457030037554947571620076786796265654443577019876259029561860834608186559280030759962500990981699864258735988005927437893516849404667317097318418213780943677312339501851191333813476500578005734770857997637823844930256615556398741774618260289346412132541576325877271326643845501303084625699227433690292135460672268154506794623930560920414833004184608730901115458701114804010941130257702562585626466042191240757418281367119253691224470494249619861974100650179109939544081264129807055684376375409640755429003764541813779175456509647427412266213139336532517237914632416527826314250866081207521816769196732224863271407235404531302779825560329729515085479912350772911126156886635312404487322265033394312243942066331204573144038210475768835330643215407077921380374384225800701638810796097070292079409074981106747798300113525254652895406432012144707954711496715110473820924232204700259113166020641096865702227176767631767371604355468849569726606654253830733404398091086412307665402379944419486353729049839730204212394803404492579045837382640199746219041997748791836778858163424582698877425160846079776149588800147996373699540647777359299435221236280750339439931363793474205958252250377429586151584638729200032796768544967283199421201954865666022469030685844602752433539776855501585500861223568239452700325368371112129730366498356130724396369956356232176564147814188390829028114817974204084112516326915804898396007635057443031523734482945903125282346877169401958445442884890342507032167195698275852926844779976325991241491157779211474286186985089051784387643244961968413195912907867251375973638311382597694615994745283511133331036966552184521054848370276564686726767696391351697523186918293757189670712780738117912243956411464891255449768677182833149835443142773506284905738432557244432267907112654976011272316896741847195268988429669989858910553107076287152004191597874020511973138434053961033334786831244093971676789419168386662779133479130589125159558848395201940663465176991835201424150172195828045766813704211175683375528522377884244508086501497881424596042261891347981847064228360889374195040987930549840446668723351282708037376056984607087059264306689664774605413843860135154307560091703126778795790078039315439635866947065616550312407458308608888787859264444841728170717983478994092395406574817201408764958302809949345409997054059489206618436479844729081232984118372611173191566311318147954566733024823181408675524885629956124873054469247015444179868810328856641723366303513815140673381784427777721623931886438889739886741021003128744980811514639962886454035021016492829134710323641872847918900114864849982890994969760143513543766896605215987257767277521567488230179614974994460639610252607871022660741418087690046614806620258563101461257866973956416513208271432129390805182288209111274359207873290527819193984644664018671792321660018200075502249651794253226150067527567852800194856700932395433966537060589172923491629815655639689111262944128649485278179687850650927008429214459803764175227362645479512307095792364563238049954580956008537417877266213010917004645978350887141192105840926198266143850482123905408300386924778518752350390900209445258642344822146879861431297381595105569696619574648941530498270686018020726582076090554223188486400019675916774553308892685876914500482666909606346291843367252252540856477062081430678841940665748780630809751737848571648171916466633290262584777566942018496650423027578413448471318707418261918740202421666708648031381725900069903086555528110100427029592385095496222363579931900140291940857787925862699968646591638766238341738706597784497744040925981595279553766488051100442337629717755951442663794046169548125478584856411334062008920961498277491178841921989378880209712217563166124429445289355290660267123704338467207244780567771660749644469201801817110868141495829445528531676367296062712982395446274510813107315052785461577350422475400499610238559139225840966629921568906810966644911227009673988166320928740497638719993663235215784408153317429526087980190810327190774700946421934281590195864033016882094699866291599221450194087942865949875904476856554155300601842278793869478577694840556132252044009211054985499534139862742313065391844519510670523552735744162857047939652332789553922898458385529162988758497564551832247078130374186028671899318273204407060682085107226102750011492198804846867137323891389560543009873448099632221445814999879904663770298953664557665161042888792815400677194887189683713764837057646369803761614237647020314980402725859117884784687209826966613816955409588540313296404512638769114698829744376682173171532243753751159067114049157038513151873680490867545212892777528461256387824799705868623442310470288722521698380275115325440080416278662891027773935230827142481045462182842482836828297774151657083898272379659544565805434112209545609869934014851475841592330945609015996906524562014385465870177419315991617081391349437674829532802588354259104774584445112502386953118004267871185917413296761801218882394638452148216081306882248059429307420638112013336237187099959044621680709718798504274007590075137696225316396818157541246820777679482669393633767939204538356510056559277256302592362669736494177176772143553817903341272121272823469110692081645409271643558314941429997153318280283637493196139921746326405271451542833861277071927937413802868260055350409279173679457051119223873404423044255586001131903681992569903093752682136020811582686581561750847862348154109620259478983753519442977634863971907932142471473798247328471142639233461059465170288123267694941890903798863853761164045097990890271968057626094947910510625782386738894728796140392084438413626869838057110079926581275965998650030008435450152849929262560844581030969712604819335675368563189676088838309701529007563609444199200718694367400491769669105509185660010271554031397930936159798108040026564372729899027455642927379188534211551900646871921251130563411199707895912106231738480544675094965314455157392816208687266702377514637695683149334692078501379176406342460834046333322902552890170099250406490942193934429164800922186254336673870359158003836010618150656148682452842577990248208907567968898670505312993316462266441683872747920009490553227850981001769889687951824493157005887650829970242305936939645978892732646138687914815791769221330041085828888618684694017916498551177996012278989198165922423151281639009668863247017777722961248774818355389347677935184641379853894518165962924587036964933491314973781105442763851764334305065843796819630473526413024228365317254235142215218945192055446904194909036286956864702346324803463896347511713792666502092357059149376506305959523885890106198332366642378249912036154279512253016213631897973130608378172480927725870481013860568589828052866884228150485702214718081706861791276498202077288831402268091737004052414578024862329749444132849851311056287705516093668297148287344353279459441302104558671902365040037503755162397345526192084772691208630618392104582381348636951004587016787524496038702347886505210664624826179508763831320893581371166414388763585649081578060993298645767696011227870651347369010833213120934249919204738751511365614537697895812477270988154605964002780387598163562359774569743803218168141031055761693322012331427798851656755491127620420318647519288747848352732586007020764158683482184757534256752854909237410093239086852576966218698647184958472531725019603708074043908006037916424228534318221271638647640025855781225636977341972769922546536766821167066213326146022161236948802515296606786300606443689792022775000033333271488087857622341802109732237775830272331905733551266924616936316972363986742808080008106886181104373125618345953434404688268809089818368199757467520644479026702891990552630114740932390376611402622132898075875851527833983795955064430735561997303925445963520271566393657316676293582303037844387818205355836692045092090071009835147149201960621631993022078418445063471651314143217444929255160323032234489152204809558576320180312021328699445136587490022883296264921352940866335268164360396125636741530708513735425482094915789656532434605687125706001580676761563021384235475590906828858714667303220404467498766683271606595683962059942063034982702152204380296079266096902994345959717341970629898777350033488259853339959175910971467859412085361963285605937595548415178356208361379470075774863703722731586768650848594394872108294329642255930438385289022000559706055750369079367219280614226266570011910753899361685361654033601633215814907369284072738658908771441137718423553957438036661471029914707846252728151395973908010530653941533816408947191290353278204962013105542902779397088088183290070291149695177108266105430937236442530832775713162823277452379122441598371131386266078508939357109619527811541137686650977860669733792153432594097041964899078230364963692410773842511477342130646636743516393713315632768365017930407482205840112575853686390075092121922837785839789768657368583740160873126801819227328734204348403985644245653256772554114821314711925617090027600392601900800394296988643768419629294469393925355199680485240801720865711260090752489406177763062585271317447147124005672143458451941084618762432839198207775220495710083688088343753756291626313589444298050407090482188664917818822582356742992977881941456801237451606996604317003800153730210604225244915846277209575052248337075635041551094606186697221740223218687120921571505493767410386191487876395143666263840115776104037692825778027684521229559109219320112709603950205829456966443705777287969563542854362627625305053096464040991893901944704338112308120992293748458098515421385537222834954903467932630453409284575963263581563725020620745564609490439068765041062607572833944336146473039288101428449680723372236224764876908165044341128067996045975997703276414563170213031663451491607693557846169385508865568774755039238282318077220331364342850381506209701922592846314557148475076222088339312122575931970319087046453837382945650058808650851846200449810031338218569419573599818140579149814703185917958721188471681808477993471205461793113100098586261667485117686390810967152488183706020501184747968878699365381593465800784154063471815683915139463098777007824705961377545380777173399141565985728217464163416351052240097431649952177241244800170876100435059296066366603104518557879196230743112963460117406355518732126230242854829825399137431508972820747578111962318299615161913494286466490887808860975300997647712931091213296942879716693552968357547049042851215222268655126505024236619208605746999128609239791573892655770688318463395226481790057866958685945749669750441354175486308621281257112811145728976107644735702268185522917532444731627258262974201586040892206690303874512281419652499360107938962950717442638573737299859907190577546335926980819555098804196287529210842908081263659234763342466812894615270843526817098263877953770007731677563317732674415515225000600730265711464367881905300459175412832922700000636207559059961127576718591104980821908981759732549087740003236081346322508030023709527668467097945134614960884462184603466338731230381042068569921907890315653637108579918925097247246692750447567945474972309589489509255714994780578832226844387299441286054317014466992208199223647796352643115690974339400685616382658072766993361867337504402175439721518049369960560484231855739740676913103450004504717972434975224839971459055335721514282169598901416125915475556103391407299679826870642345123392205556665383942689958683708681392720120891408306704712573991194902232047009881809955222363923010419139867706998311783190515773148925356151585226121490699451084311372517019445557620354364554609631903731532153781809292478313220947951246475546342892917954367726872412685304732048741752907160818212890944484433783807266043352000099130344275490461884367330977753152814095222320046178806050724967936691505966829414245150961744652607790211339710143399169190340370731619957932669065137162936754666272249064728818698137859963874500772156141931584655255486449704443601432532626107187441350745075477437437414055184769644606831000260004218078116871843806233743535926880172956623779612753382646839117583284914644448444333423213825821411314652171327473969571240382271529138722030234115503799060620888878688431084923668924927039191475812099335914939226409407962989045230865963753812173816723306671445157350082741911848231598862195500357460617667778122035027063943217482073257394620872103652605785531833705074661511785718110141125467683206813976229933683476670544267901465972393785973063919783739529721571143051291577326204024507066922898087982010957530703993729429390818081454719695222438856808362575297734035042347970883803144936194247644603758968002343920629595976741471006870937334520127359088693560297269197973137409903625120237616754497625388165915384845441841245259660811803381025601274927318762150023671636508238047430108391355956773770874032231868640719033478626875565811342106682116630760380613047789974876620159398271684959049551611826443725282278118925745466462499651267815205707405627456958503301064533161364774351836255256796769797746729904323720827720034033282490626430577235387538720169145990956665844782807813471765146315045882019592541385952612197579770208787874270315740383681171339310124528252676366674342492034312483819392659626075871303663709513717269980140332725858779638468504746950362149528609089882867320885291342993540801396155011794723770605782265552188619938057749069308908961035230212408055703062984164773888234124570204218329864686066349179237304830368890772324121514318780298502719442110615517996705852980988549843312236552999112188003088197329186635878402516936225561945540009762621912213817792709546687048347926688080481146323112587002746444157767750929123168426553263282262829834948954237333749595636758285410228056295992450474945257721910796220251230136304282601245432988214103157421185091698513446924156097837063725795983316375163596133534248782677802963683047817981243047393466484777363459279605891756200388556349285328044533560684698550581025337006262636813320796624563467686439940297691543860400606602617040761667266362355979811081364939362346301265432110994089749582258901166621811069637006187439913573227425148651818284322188509905884964017751114316782481948085272522141067617442443192887912039467085288014758311389216425001056023890512630648110621999732918536817221870310786962010868010046520919305432993660379857091721553494186853383469376764788890696393780835141890233289409726496653116805139559734004353196889460279110903455242541394947796773940660860296288508086599984075138793969373200182885330855772823493086878218820578050357463022952868333090979231068963236225717439589951050738022233200212649123751623649903665055292203499434232664416563543667992866027182784620460534669732345749864177994274060561459110340793950254830111092362322197165830533931703621928666959057538195771235860386079750385903599970348927485585674780272372187814142971840835761995417474349104834847917011266716858575522529433392063974091937354180666299706398644695354331712437011541909046028168919274551340365523013127518817315215435072017107393733055190572104702499319747416178041062951695443684578212622216418023987372794322422263295407081034922605455176363972201683460969143743659143740635615731046078994209748625369054944613242207980674114706101965209134512537524728157751614366032339932598544103210972720896078304682867041042201008756467537684981916224035255939271325160220831824096231483389680589363931862012493127410049455387416127367344095384394743971380947785916863913036212577339861809177681951539520502698216161801126394668064336467684901774426878420748243461401292321571841563534946689555475233275080053572315511877969997269264898573020649717795376006558689750027392132491622505354633859462910719891433312967262539301859119325921069490773191824440833374904447098540402120189192617521361865037913572723540719655540550651212803976515813200599110755733426016850857115999190076337388376128008169176439296650479156153266197238876304229011267436644702584078827796388266162384636758629265753130746690851274882713937467175081116442591420163178095191609854329379894697837615380845246474424013158013337857673994973334339750911464125128844281173042656424272839644001057044134832039599623568022115226450914552469068594398663633644339647847455972785027362379795598180210055392556798852947280281675435750348100847498703243396211803595485806548357892143755758734747146454023643115240840303360746071601899476731506502186158977399744998684026315414700698796449949968229048115863774576180922370722438621059542064895579755429808261650998173967700417057782924608597535307666473152766942509416842892413918565512841767740828037132478664462735244224428356984138242892238717022229611202603778213976450318359081233452402184340098269245937137688254747697286777465519088968098309312945168556838463865139148805677537220349456855211205635804492943357026919976995505739784681961252718519956831549897818432752938834984616855762776946418069834068375816141218312829784948127015633593417881863160520545078685790642929316150333207298298816411080997386003191397774222937570088225271553757337095992706185259303141679810570098676520636123702806086956265667539990504780024043696459169680343219406470787203624950584873471553375683997433195687408168429198462038438199487248497750073471221442718617063706830110754502530761640443858803638798360562014665740636609711001522344623119692402678660321014768132593406611151426051747058591119053058204349318143186689857334939360489538236999985507454151962819308561263482235855486807586251898637727137089663514708828399298302139011082868820617342597372549364017235825527540223832497821891623760036506538120684791245156535830477027328146303752024380214531822302030775451174003235869656848176162137805544867898447954818632380156849696352810605235832226883394691315353059201125907525426534276511053583429551848871932026494806830912553745542221468737725085464655793350291911696814862757465815801130464241526135271596916917769039581852393255162311558087104488018638537349175231873921023197833964537784707704644243841315634016168976900128852695696995427950019340767644851465780895967063400563464199589640082806009131009022232456778158630205133273863558450768713391752368214467667977587306591952766983655464276553269976313725606070568665848576813480073943854023307598343716085894407118982486349674588918152264795086251540637713303799716110112820146790698363640095843138257250385158878394954287377170676286274196894970591425098156757833795576071680126581992542113210254385588062937636365921626963854140717555216366615609378255169844128922356772310418809866564377109201750840651059047130456956263093936621727240014827395750083667509465080087040977315731970744693762193798438396950828319186804707724335247236360181918032542259081828929126860777012393902753491553660522441072279521867313257687755059316709780485590505192657154471911600514192564556098211265846122588601209582048896479326120377894295828492720181016071469717233293865728137038700732119483943901737355141127706844057297805245824225767698021530500516643809971294619101004009778419802914644898944460846709493148725900096448429885972658405386323734670107272783721639801175780056345419532454177562717320308764561382170089008399678043241217054044479670688775026456175149281623014624603066285952268364504519216908359501408800097825095862758699783320339413165394148974099821001872668091858265984260509872154182825256868958295384814236443937619976271606246298905538414612125623779203374676214030014766172445240591151889021234184287412742063010925691234095101358840204620216102106754428314377922612372892980758597448660670760748481552027892365649844623535164488068455737895481059450988711552467717265657375262502726003584440021669412253697534669308465966492712324711511413312649019628844905690526777627064771093842649302528598993235914971567630629710383626920472177631585357832529622502193893004224022393352620821329664294581090753063147353011686714062144803238122991631240554079791853387406145037244786143462884629893845434590210537187026233941534281507725706775247565037347343522539605829472049807713152024197775087037029298847020320762137356479013921133252869060519083997001444341721443618307308779297174463289925161120584834406946955136977601613790559947263534337703554468491131716911854814873477621618321719179444853912435429636667463374789227621135412331399423516028153042688738118341924325238317813849587200368349519503240009939457856941875225924118194258393080432556077582299423301193111320310417679806895085175898406593626834802150103572644591084813745628020458097219238124044627290424346897711499787780807223245195115703883776721936227736090016933062585867626588583954651405844672704575964102981271200373379266349857387547486805103010637965131616999332171035688793141942300637194815793173311837055945897655031758205714412803739117878069475355841720656454380402814963011002883673855332278198128843424221188775635895492159044496399457585374294072642773330934206954375224454866149486920730794601274214031361688033873753079014539132600808482790896624567443959301105275361590907102377084280904381495973744690417853426338682912706587566494529165218730704927504361484293175060056538143246931605975503075970675895012848466562150051159288092323110971320507921482389428684569656425843734761279981693003554090984997349271344046237559058420329976580110488994284861082850877535716964146767036034774637884944672152956888107623432462105607903332665156296442299098345598562901711051461160331419441008257106658686277688245552066629123117806766675424865286262659017903184648611287527518655114688935239485992700498176920372591988220517284968377685684166910989432820268722910393823217317010099477822694791660503953849951030562000782732579602876474221838729167437854677800989435889285172608920119252523468592184461558425848857389417169753551407954467987493435744977704483995275181427114273225475074070354057389821406299812000182053059347379104262486397704267320497559048981239274636815817014358469182125987005348428930579907267424170642864952308124442236949588528209687611029370471808416276967527211783605365346825292289850889273686976228277764743190235678621939165035513946615736593983511077536205710795445640652023963505895473994935416887608508765753465807829711709118825137484772292142001510266337013372091374614105769674287235214712395882037086936644833984932494229844634888117772317434671959632154789434552046014252494727791613217461614837146079615703448607660559822494624824830288760005036798675276283577743640455453487657497564844847355259935683127097538754416575127318701446431870207682942004177154494497182208931395338892752483752616194305237039817975963557260284736745796216331383434048865153572863139050027155415943626247895448208660255523700282108743839452243261557606990425836786998412639363944571038208679346194886023933761890484491848794117570638255712282808653538281767296338800813672541320433187293795017459984959086217882383639215169011285752358195890900275349696639938031779109602282500879238439180205194246364044971245900564736762924968416408198881493620797007104616269713813883155379554134880338403104319173183406387707389888804566709792276353730276286312104247962403417574931908032044037536553477743874198241235227107758296567462250531893425334579860130771989876069645857249657991148615223134350975560372093271841692304012400932878849222443406371034043305829328868836836742305864861497511260414509993630597527484214259856523323190214982735382241857917830092074301447431324824789106469679074208261644947997464124911887054808525650276919534623283438718009680482306269540881617284329410770110271947076938793208807555229598789987611132894026282596004903451566935172974640050905409082376156629559376162906030421053868715620130847290610883547038719544544374954984452768716725003732835398250370311410808670417440791822369439612410046792170010399225858908038881936910183783421852549493944573061332552420660612607244672769559559073161627493208386436108624972578067890031770622255282940578877094277904535181249152505059097314168126850728546968066677512759329522722306891880097628254891408737215174376380247170104867827405192720446916012681595527215716656663403951638893829332546964429004511115950867157472259618270407525433427705690723384014635350182236046822638550417421817477121967666928547584664161155580256283388356478283493653105979593579904850083903444958022381482430241063347633263246227102070395468839320109807062684420184936896992036780597250021879885484241034936054715416632041098844118596271751254670754851649390390199136507623994498270115177463990319121753705380664340004129807629980855687861389981834457429957587253932771696176443353048994046768502476566684794969910575869917135281890215030461277941624570516518767789933282087331319180845354963941050241964103225717952943090959424289374497799760044700066754798488062301921895639772555730054433421888419823407216239789127157003754766664913654402222068780472288882279407547673011160275948752966275163168339472453884497742809699318566212299755879707095985865131851619550843634562279416241580103404263059333004873180059492849554247044449743813335778131829620425052414074268237714103101655891387390163773495456214611475583109140361202941751551156600843225273869467053381098972735867504748089158343871231010383611968763883116172532445566838463023915240720890615760270661979295101175680567814378891070450669183576963267078058028015936583224534387898628070289448819119318670895532406911202264997928155457708947408602701631303092589548272747344383974046854591693216800074376532149767294269719173698537110406868077870912765447243351695476231168011203726635998223222610364432326309567758721985570879544309289593843847313049063827592331637520856109220860262703081621629400308657020477583021213857657715754115276410671748797963987344282456533468957520013438802638406329907536585493476465522926036157436707709963251675664736834771862163516461637490871503307348277122599294460153968312842718310312879959018488149669415071470462611005569679941875070370862517057899006034156075274788381499640963874647367176264835019447867789616912388283791084271113551732160724770467256991081744814762050237475258645325743032306628158494589723994476669683336533940430814686410969673126106057067029529695800551547184280757985870127639752091327879772401434877701918709449380304506129530549895677547842321496237529551122935552584110431069623443110919598819709744610040523592692153253959869883230732999796510696898471927847232831075093716346513898747752531914405143280590320365505835947517489759950592653083939518312348776098644308641128240592913568432410792544657567846437216313417922053540710707256317399567869877790067932127275816512371669407700597079770618837649424182694847719383012085465281430650439631656025701421643523547361893455323764596740218173321074076402892197720175698442917134691636585963601502358975996526728020581599781882689657115329182047461001809294270949201313924667109628179891368263176223898641117872159289523956939995374726399398270625892270470899912974744805244397625670730056316772629328367146926179267111393635338495958657379164617119660380602089676339567872186233439124131261093429688908001639142325945625889129246262034275146840566799084468055764366625089444648663642274468251980531963655856321473534403447288841129537823820896924897473883100287194891375481366077114887904751857954639196668495840390403024045608136771391098832606657359225786128780819194131904451375324593151499147507534278784057818728681946130238427077323922032020745341412896963117374453133869317829840313408539011618888077548545956952516957745668511215129448114622389371796890089077600713707689199464614716129935655015597622970604612442911166774557422944846616275478997372320248227921959344742587914944153147981792912393200905419525787672929742309428263973698069378763886911310395815368189293889787789505554881133541370834959717051783511798387352420532571525972895199990287361067848945628817101475837329745752628186070581012227432560397959085238488354104598058050770111007089290737250121106437739562696865467420856523849112857482421776223865412518832012151431765121739149425843470728126289078506628582759719958251980475660315392820638997133233150717786658423725554767233401242979911766354436454236170814797724390153376110145763357123159304517365561913736628821813790649193154546211052777277207263264474550904120862721378920170679399950686816870226244882739551724179082087236465608665243533689493665659562236746701174317678783060723117154835499539053404498313985672060499887484717240249421864570953612927879673448856192501548675516940365293948101480618007564636775458278532323485593066566145107267562186535456222513625245078380878453826255310078689464963277889098566946307969908660008760963085601613357365907486606905913166352270872883520513225254541577624915614302517441048688827033785843151424643086988253761449272543636914812984922190646584375584511324969448321466033576260470327359034142053268090753086493752770277587119813894265041817186112985425306174188662911272928849384118421638118445473663141054340840768134567361211488215069690825764661957311358123243496067236686856877247179421445926776522906443137088910028128411861973902324890992987709886581823865846266762031843365988941650668138299709822657757135682428213029245702466800076407110354606728474743729077090870759959916371659655329478762700197457974952743849587341151083695091717771930547221256975784325911091399959726901826798651692361619384218534377630340427622877642156753880950668409325170705615236367307990363913173664257674321599185491821809464353013203935119598902817708833779738323829733566478117209221854290545436498533753792144520748869269080689860886015277917055833318896115146785132294369175806349130104818807981223948924787862176303658646465154823074497970060605688615392729430263454100785285545888403957210599375256935491944536132684100516141306951694633405526591780378049188802614222148874256180043065232728768501216398181502367090733378410980546297308559657814113920800003434501411956495095913974376513156883361397057354861808911643102161706373025549663367285137000294895205505022829796593214077085513753515993254519821612179365167884497363732286934445478103410543001212534019661874213513267783029341806985349110274165881553437528657178774937269016348605499610479595437930663260508782128524096163386486425132545758545395301553574160815415845349359445191664636033024269632820114665372078519573867679580931346495742466603599610891755230570865541823474133400925828439647510560188286874485670008875887156451400285264814952434721575730662826214459603666406465669672550434123140305388252134800045089358142838279117887066789652436528338187396360177448203724126775019184881761363231106519161768422354254315719414560823495121248666514319882001575405624684110356614165208357250271143129633015657424313910554164378826600121341948939166018538982163652906667223237655016570650392857135239469069833036949174516347697884206236210616940277968373461197169835439768266930681296185591406396021624882990939824879303446115151663139695656625164576084950081660462252851034326467884505034485695427674515203823850677706463209827835423281939730096128393073271141511136515552389858467599130700781189573414566243743277680922914634467113787290966847677527490406765612825692307002336146383252425554936933582904118954954207867990055396877083000832982570397815817013158189474786456558018805856252960746180503087644323633428499501151264175935647223497161518615120134280135652514542823432934248335263548478504253460868863761934367560184850291934002653511570027785404489453352159131234721059887944165192370653358794030809165913155332110763093633119661611361991740872955257504048447570163514164980463822005460000049310596686208384326922211176380914761723734930555858590103385424471388253549101399707323824955605343191686900368638788173538581430033282343297478283011159105667051931129928964492170363039986998921938021476424678116115423352762677208223479994305403322386959201536433361647499369930766966846013258872010693680674814687963168413652500627336743087693136441561395829574325017287452044618831130742887994667643047660873353783564679273513779022931168041385628485480999756332445346896261778024846316211295736007497954213795796272304964520668189855486579793093194548436387574898360264212231190469665790056809533443322123963304425718307193589196133346481484690209222833992346337406850901180966822611745280595885193535195405970510075646927879061654507391735234029654291156643384877884020922277833218141916317030543618300561596696565614124416130040615017755201863920278594157415303566862251109456014459785943318352510906364387900427971019425245120542755742443683945092292281785265517940291881439608582312144375886455904502266953151949767743313746529914095553928791975612254856130541261968903535515648490553884461425356413729889024026293465457066226797902116548721252640917992343225014935805404977882443912263911229350456044955131707395052693521742352870837215891388219598090687308053376189579244984088978448672527786318299565697469019012805410367924769912159376300115204742125794432428023276508466962685815292813405097917409752715368530651252484344764308112202255414453069043292972274568935883770069783931454402470498160022786407241786016552095444130495779185601972756745826580428852978246036872766761612812257933211088606010239774007630862562828791300642648497440617432785330014482453060878873551339709954433042463889610639927305512539458703971138326694982772940699373694242836058304459100326310354753971518329995861739636598279929414262003003891919129619012704190849041926571110515499944516262624107627763388172990446433381121122149255644848730235654397811772698429739769602330325151997026733797360494426500623426649509036700729755161670924146874575284271999896152851800859307425839720323804003462585955790100574292955422472899594446032037238276925105873698858659341107080581884557716897429469323798693377898921748543304485969504677706863151029138446467086075405622981248678490299399024463543212269351941950492617934728863619160573313698216316844317158998184305862248218204571988879534365642512895200536406199537198945785212117533051684214720728161619032168692946999980350035680466793908451874404640054729785953601365517406714353840945426753828080264155948901524650846245925280646757038161554775302545835252943687961715253689019329561328159539196342745744201525163405480416697704259063805913241889111150864659010467249271891264915270811662880336887900207650255893560258057081332543871564637021991816344341780195194493254687319275948010254615311098502787436527928521871327857161583114453870906251267267493815986276964280906581685106601939076503796304039337696998262344447167840258314902505959774922773055733935110869224926162843486865618485692635387650290392268806398608717930406507394437062135547419111343178082066686590396808920318541195853614516876507668108177183781093487691006755528363585105861129441347385143664419013771112196304226400068751987707956749632625857898645559499142454380530405249077716904542374445485820895879560191118502881662144844504459699522782289429656755009043719752855222047296604500226632115913565184955363678113877548138078558812270165671925803431129090159373500397203265797457342939209318833237180910086021360392906592835992331670985293767355367821209065307236286184624345460295486336592388198779378855486851333051236145587974216474850127255985776287247306812032228989292714849922825933313421010855330982194849042029095542845245421384464802796115305287374208950413588893211206186882511073432736150256116903504817784817311105831891917155943466187708569020178076381207984305883520228536204435503842791361595796522536433763168726608992898837436079110807357045886363325365936896333852752832263395027263452176528835027353227006987454804754795497590526960492236471433520948096503194638760974678386735878976255364034702534465592288352170094047430324625589260731369082363873254763769579904671386950047239121667382962182040204912157323950285963293864400716644633069514266272887627422995809126849627843930601507785587610047628817975439717424059942495636845632991987429267805282841897678426019974206593214342536435381421469621151652494019788173967448720389048359045539957081573696072352136568735874288569250722725738147229387126902364021784946642216338205332787442560660897913086684989380074157703051471443503366809262919455312449099629298464273786884352428123970891148279112868970449404171353779933254973418589378181641655828279802402538748756299865982828065149514485293156233397466456804069047593008083927493767754631322589092454390263729565111652443923317388465627873643728588374168676294418477306119107787087192370081610502350742300072244423113292177891268256272767230771928542642547701592760071600687011798270457119577295531963740207794391474408728387261021320325816327133679034442030079308886367197032861280111848333768361985861426188400119046703736444362122904308046638595054248306486085800581464624241662409538101703830775796422660448977085195764438226791152332078504280711863168595404994121831284883551201445369868843695866111173025214515886145532226048781639635991993666761951652804275451620373692477416094509364551271653471013816115836318549442744967467992383965375397117725410812205339911171882886695577842686344658751824355151872324824686002384554943479507448740054751814053092675234010557463183305390191996400289933957634575186831180769531811838103955139087670076227841548243083817807510994525088814382705227149669188140566839003301688412412397878858331247350468862503769245955496685774244830135926166868342692538301886459049687589901627600405004782865996295109414244283082963873713170933233709864260556863419932296257224575655308408000248610909468309287947747610451993931453422587035629214676430116023577544144469075808172710207301589914131162085500889189616650237108626965574748172926980323671140295318022304969841528416654988288710791364603571654150166334162373433337003848753631025479413006539710756139377999209263419121080393551543092542124212698098175142073903072671981447062685769168454928844248439998266929039350202580327238019934953824856450892113385829898220498467513836755640269315717162582304245986510976551447881802104371387306001456013554170287208394256247185921136788449402740985706651030429288893616157811034907988206690325467441462586194863350066015673205268877527431892689501703408017170575773935519803767068822691373456526063723418525501286273452521349103363887949752935423267280970349773555748316816373628240070232587556280689716386963583421449104384192591225018005451471192829907656918544297673266278990932079618239934684366944088733331731540541561727525370309912624142501697910251062944640894871595910189850214892106665187281395001794110170063543836724223513703746512508334436804249503691276080907955127866520725290795476272730172192439241092738103095596576064744980357797446297116249688635485932122382656272830067463498681718324772235310311521920313095914318922575813834196803444033310717920315451757002316492883171831947554427994005164108435279111924181052945440439461589273788254838156987547119182422162408323577383671878992963183310740909171833016531701562676204578768886860906815956111867716935632647105010110955475196586736993044646405861619946162352208396672801065694757747857715153696730944990316923189486188782262759519849103766766936174427740906561405784644230432024530353170943352932287607633635402288650465678437865951709005046879718606909083046342635619135237811637507501353924471214458114267751214151964379782810527201979666096163224826450927626329290515887961806848665081751072789822841482309538426212672394667895663277072523107265394388987483573181374745154372215839769273184514174783289038827048684453116093766152041167698656135691096290093063797166671583970447176752224140295510891815835198298597056809729093598704510985107601962092037097614126961159495946964660914102898112448699943320162503379867797733652175626202082556843648468300455252699558801762275007141195779029512514945214517392466607859076314717290777252420436426593245236438093474358512794644953976734661747709656381224348039317734103028572578910792535961313455008205452483086544351596212438762950325991533949169741726070224223509000805353822330267492615079712626878148658659843830607801826591537639072737649852755323433859778994769833078950543396787235043356124359338156601584005047934703967761696347869806603645268285461252910952259112147472734373663546403614645971191543552513231486622775550740106938393461234839333286325703935052941733505999161186153333301826561832027731525259714769772902714890996771758734637933848375813714604008101041560392047279255955461658368435440104402228833590239431452892796209565818145700331747149841266061792049643077315415098352155997323065902982035794323630582576948293876302825868698739363511657621482134059536005745436498989473326267460840803517129623966897852220241668886484932552860887003613965138105706066309611832626356698858829032304571240302216701032583508046869726458094262058520269417712390116695484015153776886378438390681702429850394415964242878019124364288725341696873281984423282481061636704221155463148045857846686331453195734510027375964566975744017924466509103918120649855186127542374185126815008780611468666292990403475284994381567244678414790231216495951537590071818745434165474379188914776579055598458736033626988835738546859853148171742361695494848101369030500622300293537114766407228029486384456874655992480135599130717742583386591003314851445041565315418323851480396124218862712624219106202918523699163094190034650196072635934471992331470178937965727768360785300509586789828861012117754349389433762807102533334094007700158910182161711647678110882378744486995687306980218672604743513310858973602306573197969796029221468466792409560946707343620249906718742289358473197185553727590437132604275270413773568653320183599469071763048892956227761757248189726095542222801685511305978584463450537373467807223890222895310729361028871176278095403831242144137504889273991418630652718269307308846661191687348861385826459745217976562751425084381218466169348954424784818809205605734411762972967641343601354170506669179434106160419166492463154631991822686231753369683914569152131009124651759626727900986988696699613328470023501705083652967156493921908602709357904111616632616010354972640085909069857134258943629875263762059937964435809081924062813709296130085343497699882282491362550435889197411938381057424401665539585557226800883240355847679920865837718361361036423148533347956150935313805934383688908485570463138850006476907023901955843185622379872565952897004490180241860544694690602293203546831291263077694308868784438917202539142362344209295774351584129778342451261368283834503733202207582130283153852809177200327933169133270051302490799100739624261625609650998820760848175099050860787447441906487577825304044925732555955971747361047527436212360844189577361529045750781283178916440039422172891545722123142239279904910418940437490131919409599172812970719225471786466736594870461620106655912667926474465352332372107402720678328109135547331682580580187528170085338289158494644263708908436095821700988509962316395650139850850631067708004751830487240166192235578317280099162566099158415904101617233198550808461039882890915858073949332463597522168736885529863064093566965643717427940387483657853743820765363629016798441406692209237731182134094782396801944337150421706634252266259588855441036735641477129479915579921711945313607633341808574019377954391995744140502784912361486045838925949865575399394228965322539337932297040161102061736684668329430616508295230001021378367816193637773643036453811928838822705317201068216675439589814187370903020776433981844483507823798771566637507200992391044515726117499615240944823257693009127412212471845693892180080114789220065205468171443484266817176109716913711428793601591545463256551306650994278312396305369241361266224196806599475328288377516557631194174926795639423480175895172747160894657989009130197013882607495217506072650111764616082219777560350925707908293409997229029552152184555370313025250711750805767596306515136967349994881966352712085044646847107294518057349867454180776873614583048599924487006408433704045401934656563940093328532238717034182966812004454975053535304830074776958026705357932404261660009546029526323527604232920592324595842103521803662611096006699663116839026987717124665225596311581262127774909238416683643473931534717717629932352112476524792218285089449358658984410253860414904552477335621462984168138814572972399720574685909630556341536367986469169466643039373354780951069386356523705368969657422048980151037758362230620311965629714680194028097720592566293749845251124149157826968488349610185740911733181957693789198209156913757411686623899997347298039064679680914382931190430543455589912275418391361235770267175140415218290078225737198026476037886804687032375570428326572778471386979278845372430137519116350128871584400155749537808340404850943352555782995065648421045150525676640086524299664295657781871154566343439840089416400329140375005881436829606906258252731961128034010808324819706804006733148452084485343464633727135218890497444224155299643831408920830034885335929598576036459725974011799360053487898886617007545270020590303571970931473757144187910211492428307649789796800312026134922831579384816456761558429792691762650642493679437467751277788804560487778333990925254824069831221348375917937194208305338879112338136656113227787873950927390397116164220672549515255304394461795980797597896790194661368412810391577949824908704397035323689030547292962989615601607569694571251507302040734326978511692724811491914676270202842576342852131334717298570094364672187218458953340602566476965464959537618046913200551184384213143918593101585523845796635621259792979847642858402679299595470914128124799407426192735840242002590582099664508196473327623360468716680016290239283059289938056753103340776128937798563591146527754428995463980668030495665110194693544803887016489621082949465476783843937761913414226501084306342442441797962146911693762495873900902081434525337531506920417842171893928202067768300831182528458757603920494796434589645215552107152899562066366832221074441616741856069547164649513973886380223237225256728840776257493809900793296427708530582309549128848501968712586528150880280782981074614900340745670913302169082016122713249914151349423707038513498510246463511219076631196808420176365452257640551351236843947394268145255097410818541144597539304578084824711525749461700548462846475672414155692027944845188458335169516039398546045461505192613424394071116436552913586415660873303231943685177356504727567259460446045870353074725178747476347775579601895331667025542653733636685179969254965682089780419114883244275906567856891815081494923266098378790509349254220818639512306323117630681712689764217257006761817964157764644082817030581527055624410361872125585348129829904717764622812055492687086741088478485796372356545367989302507571781075674642737196369006656791039004023026558560561330886853132341943045838459940068559268967380057383901452465538665855153074637200671494036698748658490704397251817940364040757021895037746505742707495811449102343177268426947603729128159149185350993535845782939562016254438819439944503757053615031676999644821845076256128682134271632518194571556522519001927324604444886719491461997628176773787815512835712599143254641658728971664062220561114109819667633452823930829694453177606779750817279292644575579811505608014848361233502411623374648267738655596741273247686482898538116248951278295885928304117718018608170724315199807795881159801451595128142868312091462218638006284164735148628881331438950960613174187444811736014086056928728954097025566522719414188904657142665483882729245786896784111686926725888711594078274865158392909326928051509514839662514619939934915357195292435998569868509136060363917189289452372814310278557212937186613328077832749481689998725096403172942798440586684225249611576029870472282939348592744831388554415780108436322537531357372890519529073939328716822611244654256146679678298244365059312770346477522202228765826383388684524442446668427027365647769598511604742339800391773505899265435169859455803746729082608631692576231001680913993304824039287298378868342966707510975178652226849757693386087830011069305028367553092219171809972324058190765802040908924241895001757049182986836625140892496809352656903597046782535740062771336372382369930503485475563383863617720984429818001503016415507924517357683927508540419414921045863057194460250947291998492890518242157601380928004471207161705858059332891697933122381261707037718585397612910868049410068113664059249103458616699674883779421923947606320131945588308194094284465063209726982069037685230882154736780571237119405634073281056021798288708173016143999468456693101481249965697451038628749215047041225832429789617309440703909157329136710912964074051932652813446643651146330873226993204755714660992964551718093205259840771098398180742703717675368416066582178324609577707001218108555060305358003400275801338924615690983410957645786297965042331320858205655358422350725230083694773010205559126031384081137746486290607629247302131666774794925961458622293134616550773168064619846659273607529622422895847005189239786426955762126701207856467745593496394619617701546617074962333763551803055758486515328004791061077319649871144739281845178357906881090033462897933405890586646447811507603149822789311587918024904706446294630997438880756315647795639418769861433510488720283253469107543338200722790549721179675391033933076075753709000039738932806813049479222413420760698972715614384948051268940323637479369388728586098977289142329633409219645199732648050329148992708083274197812583328281979196951796321203639873135732688761979952036412182585576268731138168470249926593753313596264915545446342398561761144569127011021841623735394347976629528586691074236210065576341232247299763525394748986069290282336744591493093212853387870057487811104375779265458650921476281268702074176922533118981666078496730022425596033980144502195805693683135073273723043648093998303609557172549682932358496584588565284519740391216273947453414701655052893429773001407252351442553515343955772450723871019106422474076422959855838443286258867643663937526167545774467308054521455023671192849727616887572835617382704480257994088141056684014593712284320867049942924242414981437386177386073557682410524585363160904690903277037008569208141712947066911595292993667478181092991049684295636712529388031217676265848725073850831697910895836916512978353560875146650605830995928341239187200994214750136994382377398622006829266966393028500000972535453001259059638003133375637481627836406915110490842797635313452542401348654063201891526339369626043303910548109161410687925357896164776854047949259378603488728111495203096582355812690489519741153911147192295871007319757455503666345981423286803078933416425125540250220532076700089315644358119460128415702159674809716537561745060432294317987132514485253375769162867429547347319696077164282963634694123070879326798379349100309316674720780778745880493193346165992253547475520364791371972897146321508762335423720611211599270720374035061383085071238535845309063715073450600221899826591969674819488828010783331011746506677949988694679723276603154053409499317168244220581508608767300453250426853640677664191395188804168571781568120074500821747735829907235741021512320265934942307853884831519023624071470930424817495261883057250087271679200426940952065100811496342667849025078473345223582831614577281140677657107356163218109675080976127702988729259461444264494307876059735448368418476823412923482473715694894593570422905996252312465387486362890056087134756247125046800934469972525446455858070495639976958460020558085160648816234331960226598427263397473843465219326010526933637280377167951999763709934070531464108972377250945497824684250434585384492515131488304076114228983305002786074045470773249593139727903569091133151714222071706891920647512429612540602162109559249475636649218605158870792559537025155946097739593021740648936553816054583711601264945361843488053090631073290934611194773154926542771406459087027999394079408728853892281505727444100965666430316612682027895643760666998298173008987020711004082988518236709720757718038354792926106491962331470569589227507820262440733392415675049174585371936734272978635430274198624760545701165669265426297959048755339844664341193048178243661926712339316008182657475898809575391067924308559126587576590338073078966684834684876140251169533506379060238996642843189815001837482051200207153670254826874083427109424969018756667585111607278224626940930114452241852464252835287402537661733519082459206504660533435521876570033805811542354991625924236273800983754248930641164962340033651031580472360785318053087640731546193057361119886783068387676311730131234696194434268405656797469889691907139318076649034777465577354519235727039545768649154484024283727847978607116051868469903836859458634584125468040500593030940432333158332759013710442986403667510414937517791317432963444016750598962222215822269711979539831702738117713542551853037089075704437379239361413108779372255733794001361437254284060131196412495454224461135700915342070052537181891644134580620457769606850989735985168491077797155850965020579676453924237412948628320897295633812705699821119202461727628515546121478306382160771362357266174847268523082162971802441655641123220206597645803027513916531326885122020397202834086868039022490823229582914822586366701819087752831435013390291745897991996024271475707679588520809205783966116577772468951656577611966518526822648678657533269197902838340023599697749192141337490433344169164831230141636815115026392956198989954135373963359868122100239074604534730775862068108612205081441519809813393920245611220985590538093193019583816461004205963419267832305593776220887564157695440156448162546339480769442380006010569459241852594438997391331124501167399140338433047546926791619069945663063780816406773343097824831979859295263483969890375018163647730390532280605574031975128531736626277633485281458930190749862685152652141825567576898268983624969290089161714639326848496546221547825558624044395952098388834467415488321408174921509360157870309386519935137645763014413905378988622018598719198752281788023653796381683812824461866630710795788203900174792345932646053998727993346151729845071930497494382897073431931972138619546057974832575597417466122582152230660590599077402486449442917223771749477763185891199454006155878940210477534616372034129246794171613549547827370527356482601617098815485845753168591679941308297545267542357977233638302353321383682584474150172165149686992020810141386468865123148825000360145632269215137236849457351621696814904157321885222907022296761724772010610481938504734525051539623015754501539231084903921064392806234609636859945511439392259557258772830359073347970151250059039902405208164396833208738408125681748622769277796483678776835126291456568652470807287509480515568936886682096632722300621061353106925689593572222347817975275777907353967085174582176674005104031465393283354562640099873479754627407537384813026902502725990280874687429868413077651113269454462322164689048605424153786625856626190188744354101303068706807642323417195009198249331805581226725728548836373906421432827657430396783905065831268377231144822379848867400335385417732390172585347050947152132450955159431009633082096345837308361166515723361163673472334814713884709787531472561154824490806728300594924461882826844513753852876819091360326865824532727463853064954557845876189536350973923013050929484144444307367545484009722401975980879300852906026625282733091215048104542228417147472210148353675287746966198094811619569179480159904343493677315879427263554918954845110646331480842397907902369547618913775205476846435908428415779266497945636150586641768802233162875028596666017372841747720126661678335628234417776129923221592181827145093984996023138709034272560757494011964825259330554207893563557767471152950224412001577972929597846936727256866009105943500407802847303087076890350358821008409132201156337190338825507387269311955054694642811137924250915370342455357589868552964575534238201397231486570211938131910364832460949500759375945626750816713401044127112477087956273307073224525385409516091147953159261866521704440889816153302066248182838259316806325912492148507541897523765826695147068868601129607263438376804245568177897908913162227343333239202402945178573057782533448105226090910223715912902161281409131013119922231129051693294723573877338677499996459612323955478702596084916531521109163163191255823739961290697798383804302817351959141877822125649779459892161845532840215973011147073413684908901783350343078018646675944565514242781316991386061962292378896954721737911658733073464522178846014269786588313423708767754130908024749021161148968618632863640495908122736320762623765043460742765870175602884326800553124717913426673066817168189059970739667194428009567464678038245565664563595588778930068635560559456731068589457115013266725883323615013719514231302708047784874016998270621710507941103620702463950124288448891599733262784879610036189843504156242038798146096573882887779776714237738846114014016625445958940500538612222429187931618490823421657145949431115782029065950534423602435106432549047385904070018681980465033669546600619458627819589938115541092893454786053607511947022959631437331496326690119255908213386974473708554981847291397553034382074301820269230802755692787140294988625496686551452102284347397634446742955041665373712663053004548368014713710922726923819931367565410460940842298109292848437645255611900876182182360027109296543715184996336865323920400074466001525875817561928333718887110301859568211221511712629313235744768269954953866136336890951893722427868814619457486725833608261215764218085972612727899736405690886619119018268103749976569099780662570245177302440877371098473395250611565360951355275995549317172962373040948734522858107351225211750946328148253238802822010450605088281982244354902056865251439057993398148550370634871548617438968940940794575052240386029659624525457081747665887133579332174503338711058949012162116336230964834561800544251639296148818105440823443526246597029192576343656766631995227535080949157125185424943884629215243510081603610916249571940121544652541807706769954231896192635818308799789214628843593423737168741149395742331574307834141031693503921613890279093037320366972243864078843684652226506538173314954174206551454290546987807403602494641155919034899433259792687256873156055667933572186745129439285457951070199958783335535477836137354325435846019387208566994071939293532208278874667719642150727394662099825384100299598067765265750768896894092782238361281148915040361773752404955785263385927164162693111202397219683200294841950802808880078139698170530070538424929249087375222439387657123256902047135434368338462340867799376866196997438580953883819520821242978964438501958432268125184051908622493959126464441710276631731189065751561499149542673158336268187517981168927576046221201269840382931161316172808733808421088496896794662046578318907043775484055064908519301858595472709338433462713849018751390368330359306336513081456411138949835018912168000979400820007298561620372271075393743764846624913606937558852469986550340567211341635941779664198813074654561534962031981330372742343969286704289695357231588855972602384065561229932764678397871458004964429366366394746854651616819820983673464823036132095585024639649987904011077038487451606770133804821504598639594760372098039114542434231415609486012504029250493000538033963615997135023247714181785136304766584584733616765796211280566853939332465474783730997033820062319963976026312120461734311311052996701991812755924648333280338044740609922453086317434984780549554845892528959604758801736419999779470296319526909467047949547395323750445275885911933728640344031373134166751454193130584767426516323769740356574113683559282714355393951324899042117552025460263338117901930989839126107378287431561865937325064422213511453092981300179177014200761243130249113732412486276898468171215742427070638678009488407467604387067260503784415872436145019436373731440433689377445149050485614043445849886006862201922666709920435430822502831719074170337683567700853840265661126523171920451623230619016804001428941213074875080188479726963242769424231768589023401737023215734079576512511027999735658811757902013143805269461598992004997404779465270449140429380505502891359768014884533096854131317952330335450701736453862020506858388509103240270629853069956327438050614602440897467569786117587129097766090190347239038914375409275113748772301169385538668364513987802789352261996087046849603014593171370437463235288344192120403705306750593692516726866177229899697023274331305140822387300581417396698393334256088474530910432337388803655436965969590203109150497461150821033409282396890143796411812330212575482973981028543998506159685409942399203759993321646027415008983308239845401702426329289863632861567858054903350955304907434713054904717389139720269653641558584794784748600985557584641608037908595419649501825360961813191284753544254688308534808691644460107493210270330598171692094479726233870171022618553750232669948540312042618696301142633388295005168040373295992194887178763813894301491914820136704146928743899584808970745171951907709158304348427713365412883745796979279526192930038054222135340882184650465543181516931492764668056920938708016735577657905451665282222760932430767402733339291302025134120480898302321034514202726002629050381730936613393493074995198114113305114747172484319906820479442266085382520262352433939827803700271239823564881272055500166741915118151028222854419078265569700147740465999790411832472143200605759352159217655121096716821455887340178509367942775640475611423979783905354527248002233620314301174290133651885177156599076096387778524582913664314229764936049409558383329442397209558912455562713744172965702400926989706808786839976050232493075948327195549637910170399855659582627274000523356439204440335827290436626021967369471453897021425323612919475159493043614414960978989030243547241702027866467397281371268509156898059319201332952341350238535580569051264549604157865090330695150523960912242466858045168178921054744008337254055864976490041548560381999975118973082221077168403628218275605159481021041944329888766551731335161644534716473955767594545800048847658168673995268823730641275017817937079008427948223809486840823954541739679193319041583711407390194882560797813993677210291093182317660691218563835964277783959176292916517838937049517018399837647055672675645054255060051268256344153188556959235081732702297811052689932859060650959966875370873800327167900691913213559362594952640418258606304317063385118222694249891648096426918651843406019859432055953994616076033330525725870799311434531742027888677598835467714791703563696589393575556085660773336529988952791923951273731920765389173239780371077327982525762199981130532062397465205468855533043027237382675205550709072106611833400079905412081418965801230967577480285368317043224716034327838126644879074336250308379281522437780773149869734039431557285869121621357036958291020150227697137569245490253101201749613208326027775285888758804604063121943214122928076394486319176166065689992953281389284935193288481358400804174766689136582009121722998300971877091052462801189755372261006722155842069331089774959649432305850054094118778557412621452401635207843742994576276883965657244142818051572568535282954758390677219657370185110744864714404300449157959799541562804195376104194522095362218598612925276560847226596770848614012276052019309473371032567871300418267942299955017937795881556877738159652587617321336375222131605499285573819474194013871354851287554467141097581357709900844388249358053032489294508212282343645416253370620399543373544818802857083933553343806280902219020123331554468315317280737975041695965790277424812440876417995449859104360890522461142103783055561897415274503862201594114974137536126198848745473249800461007899934439823503462096396743829500553227521737450510540902459060516579070836405711067715683394129333285693507868632652607835313561570284079240436576616478196469700772682198308190338644671509021956691227889361175097511289807341273216587813228841820551439267110162009267753024713209763804002932093686693560246864423656370833177947963700612191088762002657207035709320750302226290187356384878669877449114051007300538549575184519777701169672259883592263105023824927074636254698579094862451022594981744467038963487712014577603573494283032800623815974020346225475060055032149975962860028389486257393645936709428033592198485794907936332825427258791270430457314196870573051543317727755737760883955914892007752747079762807263401844619064421582460408498529579291812107631500329398594828745571082835643643560979882192182735720703803634222741526843865938411058265865332242624116246399786811877176984771769135153835487705629026168414233652006323728062801016184774905319313059935609014430926494233071928633827349856958406084641860548118526708447431650847645606682740805020201051907382659403174518837915189756851514559896884850404525577436899936978277011283589438750247410405395190921558181674757092114715173473527093766179669126690910443686564130522523257189997097730667934581451640571869122210789838805932338523571262951806987205306925090747948429871671814771123729719949612845697278064024453338793466474922173351597663391571849554081055981456552405234053653209842199296790752100856751173613468208185631544420503723471764866265831797554426496684263962352946820723303023241395473070462579097101910677193773366232520862319668819550565782757835056953084030705194636206590728663355035439891146624206027231048867027527257310518981900233894781327101243717112127413421589039999094738482075234636843400191061740923903063051363354242534394731264546187776150435310984075623707500765495970343038502788335279012873164859825817299480435924315245306741157757914355229196334205898690629191181193162752053363199261037950666546976126814451400885490160004534690856020441420049998728230632963874406872983380499835466701033384724979127276306691329248703897257170731177256066570446305728652495682360174460831937327284383510971738081771609150531886826098895632532772958238297013721091952995185640666693806807886138361954907161240675343056233339113520184826884201652793506463043404060265615548573256555465744592306704182438632325684250800965306174716385054563826178761549181182055622687661532697452070277355601543747854316487113874961457964950449048949074794661575930787393312762482320597427801586583905680785196725076872825405470687118300473641117427210502027535013233732187745774940615493794927462666932908660043274265839583760018413932465761988866573237130964265972317790522640865476333668167093815103437937362143463846384071365354371700691278738794309338546093833720658700893803517944952154309157002353566329368178125690268808869033778978426088033151071984869677362009121453735108008357314291677478923075617433487217638996427931992760380232156340555288339963914659083597190965932844604013378698538636674984718004233454763425033739050528376729386446670831146712524660135593489500114214893249426229230909942424384350692290792279529872898761076623132825659356201574982015884639754679514800165371778983186046326870777760570600831725972876814880541366846455210807326663853787723731196506613855154376161472833260969616441484518961291268155422417719830125025008577709525313659270224916589323655659698730884741395322551215779945338523725812186008629114541994217959304448414363059287875715907861086114052113703434639072765801668619641207348126663193835838561890056567963157169163836678265493559337001035462953856478204919896775206690635253144718789151241226622728067097947015817971494020728444952781489180382019404908761329700292707893013452246900145640735190704217805642155244820184104825630377852300782286863889121280882800993588031193961152261416248034402937825704004616465396332614498952581495069962408591023463808411049816947172042589498104968813751964656917947827069639886477746893982654597800895167088381199586070527128058053662920544697248132018546514869022345653793613344321076102185604802669794483253304726806916306148796286473414038118870263411507929833736283315511779527129715169930752772935279170134893452872551466760480926160864846251602701476776988843447272908873470927427757171959390763110313469447256224304232074397785089366581261566141106153589381297923059525729745460877799766915556058968052860613323827540691631260865876978548592996422437734553515674030182153099790780369634365125747391394490536666809409369158619845593298478824492501610748984578952892765931242783106694028814326663982517553862246340511120269813862353490133535653692940250095514983866777286762284450047924181615007130563902330481129219561819342416637644127061764222982810994087488063244704601872034915368489879715728892701299472713094216888353078958560434528348428085490614385295708448135068298520521399414987370594991305615309236107135506282273861735602813271032524619114942369868014977220658411798617212211320859418271060556797232970677663833058135142079560219377198339763296912874186424854114102471382156907097554964499343700519357901559301219557306672435750662867469246024697383671569329326024687010063959624169787414002079544451278010401001742851582021364487116428715871920241029829404187064763509062757423739936046371078565617762048535285411912261775579639336692362576169671596160675118749937669689210251941003728114157835919040249891023882911463187131097709600850001267285027330841829894258980525184340648928826471285822580706275874115165304959464683200662245224488105193346302941140434688035634813772783207310790308053592308945751221450681101227675503420773454333170846835220673891318700612107616079043845460790811226641429607299255101791928696406875894420167585657093663194123383377984705438079704978992437390727308315004961470303652912253175127906873384602101757857407063218108713706088736309992235403612533281435150048823230835449081867049222735849755731762895111652100423609299844969938111598340862751100087709559519800385054822095043983682052358839402994193222470950330162191304305518289263164385154407600976254975300376234115791370703095633264696127876807054856226678041194578606788988410146428867930037255861694203017871354828832191739638398660943221491671812070045777977566088910819849046910942068080382934857401949034163524599850004950319119383379662903299139844232229934002276781047763749868274833092174767053623475221612797594822449109492699335307891025362424273909757986523799209135555584585339694913127642980754088757292980009897429230656432618398942234044751742494281265736765116616808121501366807855286300047060772581643839621056941268190319477716269454566236804504957024745726210765111549114915093530125122186814475456668039924827029739432714281581743370016486811622274800164520609396899133146744472639453681393072860799444912545148782415435604325805013474585285107352331813117825644319065105307360454849050847398742255246218795592588583086024581642914074722215147611878210862611564148389944669657618482214543847396514153145408873786238283557826788033577490090614932536241312822064550844012625615725812556365663985507083408464962408790065259864593382615185572449589232670895654682908696728427662467029930042145541951961838936255787665653358665456364594511798369354990244855051553298544224813437798020386898640568862246445950565209485888920089227700759395091819278750573307559125130348430771958856392755899886329339658222987432613816899736251168214700345885275089863653984353076239941158114970139729074898746246231415776236152396880312440319551297525121697025238451698894297914393013386664047965452917500630233615494959502412406030649726618945545453182949892320593720245824094336582432061942876405118322143186204082346555069710269311946384174521668170745504740194527006565596421651265263642673661181473759484313395912679706662837758114092736551555450213781606889140626333892792367980761930748027850189227557091237340195334216600723743278283513433365617983703455317074662513116441544037518139344252211593375327611284297784555841133227041397837122616488674957658314701616706600895885388698398317535555252713371395585753309125752242889664938691541565807748629618474329379600077043780366388235092209056138419076318528022969957698137120365741003777374513834246921481566567017163338881358630205419960806556774295729386521152673564588739499990866081295131611082337558048623528499806809578629658375904232626359761565363129174292839401708966311981201223815995891176988641715460814366881936121038319649291508797980578672018850218437657863685802952492018250901211707095029576420465804241836438163312539554834060316038423801944292995513199226113638448360733068718230226458439814267316261994969274057720215641559592902396304583321161996293603068512539880500043181105250402917329634050629332807428365072539719846494531147438925128846900805708782808279932856057074742110187824946724699230900258655529929150584878636990691268054906031636447781704967172315752828436996434052645659407568649237604632025685018446391713133880696203262367023898849658230726154613651642785158474273783263895815042065581540744442317499860090724400615351845922262911831300492568760495245234007665175865958930157005871779762828335525806347480514464024404357029873039319756274717488545191096929096689287159970445480169715246048134205794690407267807220887931625397179805254823367490453614079674997274734573550479438266642894344808556762079131681464989568431670788518626997333038884675773299085202087920360412522792268352986091038326343824819787798082602386463682539726262310606639208824039383250178135792520173129735515381348761062172248013604684918378649184939545499434096040953323348024719241342459316531988454393779408735959397387656787373306895574543490004462881471775930220446718441281327371552911303133430651200045181734165421632071226332360603683096505072834403151352220101567160316116616898292193277390896440068503301902151060234837171752285581211364522920121780625553805796431543981799122867123638268280120304389354904226471477578092995749362740514953826489949671063908641644012359713098157134406463734544828369670306634724017137558452843511642253603893098767940446065608418923524782027948006603565379669471675486480937442975755340260106386736987383559763492631822478690064757096856285078652210386953247934686374686060360670668666208709084347396172799949891953867962598835022343958375014963597721683103903213427061525051688818283515407789294112275468492999720075504389307670120910849939060400788577433541094722972001432473464996535224357100456685297055822002067132763423305768363818323677458705251475580215899620761282777882443841265990771746299061672537543237102316294743728620923133500674818920382226373270730010265448044883080824798751147451199904637549505087159874964952503861444842152124510108727344102744735274203675520512331178257375125054672887030979896170957551312112216893592487297312239626715392082156214615226334244742022338011476717067582406571814483492078859591531963827767780745260256265242757975308626696837142543303814260439577933565613777287786122398510991234415235869783134902738587289682203785047882076114229535007739343628057054887008414174051117222332468068248443731136726507562918423727082488489890205600146481805353776066973717281856908051952437830347131038685487995733776838495671291424579781374362856266256352944812208500759760656387877279201576503848542339118109936440775224379931216612066327944087254567501525463434328199184813488534314329766374444139486246089880539914368014936814652178677585649241869288346585042612719669680493893286761384215083561509103777881298256599555342864685779078984247148516063172079889260108634741755123309483423797741189555392333992671982754372144099585214514873229338368797686384588684071924304025947772704891132869150110520415139295537737748478860484591938150484457662889096313227204204280270719830695129990784661154864691220273479581667924268005275626090661333784729542129816206345045871090698580941503220767669149777233351048388433811663722643576131097092497970241114060514646000543423961871388739016023523721897142741313364184882876843148956388736101210936135246418245038301609921685963887996652574616327890851846943749263608433275361880977175523942836834673922938731538705353426988561987627793218400162695616263631439026574277831964472389957252405305922150211862963622705147136532395367003678408225455418121314501500910737093028716380557701744979963463773653714106317368599726943541570343468821970059594320817272543223726815454937151641869834190583217623338523558308968425038469411239251036326857135831004138474693926814491417002180109393211990905255328586826707804763301258509349577411247285971984448154669881015625860739538210657606194679283343357121780446507778262634302496539964581722223708169358562374889013013832312585950593475328127638110435988430059803015212497213262091350734946656870682883851633229552590485082345075769314508425784591634758533112161488340840670400194662635297316431821539051416877222006083554722304283724611813564750588248616438475745555146194451610320357134653483582880749018363785003279623674624269248415991832661368721626454801559415418022445046042013653248793083801686857517314478955130214625238468680834187025089655320108403764312499861631422096810201495648457478984810088217135018807403895903116580166282617438608856208648230030019066614692767560832380338651757652319561993820558067559056304691172961042664529006195880068643588956734018890407955284501285806314038282740390229403291104670179567500491669643169299345669339943142652920956224482142329327038581195261184608046792420698709022157887356725079375045160108081252095618614376002011277184030464438440158589028502254211921544269729220072893434606807621762587027648728230096245411259961690456895137266959364347796111117496294887822057747126352592447396984475581917334408800079329738024157102889830132822155715401736495612295132003685804290331622364879732063043118036505960580728172098726949809602260346095253368469136364308248030970447454903533684830051494770253509476181336963926171335880395016612765294023130933989293951919832681952824845348411118037557267299484251739478512721935106645341392971762003857216466640250367451672447222616127270989601351310883757818073427636205374572328218734296419773354985057598539411213973004414166863529245328874545150873126457373831874599733879525706208666242864606924370046055351405848363007609131398316414259157744806163500181606375839832918864676438773215630168423063070455136650530693645027449575581396900135166750867778439823268121895149117107793617871751294399217907987759827144063596880332835906737719138716369581449652383742897821488958591454144817901795564905742138711913247089673982950225338375449927304253373265257241232686213915325984222090161871719873218323206263047925988278382636756432547361899063940411994206164081059821788839333526901868686676600671382591318471098776428567142339320636902378130705152470875680501335577010731284131393888124226141516580998538743472157802397791673807806294193023706852335988583166247346896357269824128201015011210846560284407152606187463455795671401351637638092770616851934821904896905569313474496927880699035414390621068728344454847537163386853547464248719652219582457505113407206438674650458541953907823122497717659239382504568290654858999871324795203294614603522880333687558111871869958746252281960905600020646275412793480288688141669188422698456450674088230098903933682907629982990608894360962261890727005059375852673877032065212608966793742768260404427422198557369513999057691185255469004627391143825050569833528409015031899734439238981753260629979887056190871048806784109557077940899929194470777867273193217373997401982473306287567356982190125224658511916376179915596270720589568011082819310329099015996718810545554731249697983677596566201627447382882666212742362814174579017099287261793892005718167110186542631586391656904901915042175718538832042458728714696236924246314951361220654886814099326797180696470373116369567808962715528503608692960214218499171036328609409766750382697795637987684066940767994671638847234616659702397793300597686106785152192999956989799724083695671033248855027203865224711601489992758074299043280946732047867912044581347601025934470208001658685148304570003559562907573012740713277221481815540686518663454588496739358028071287544695315040897362383923958526708054766805304917950358193520649759514583030544754277018478426063863390235200281359853357268811948301534056521445407323033918127965130966330456960683114285302754921925039899896284903890175465715370306933472532878923571089559058022043303352821364349725583447603999423035792012959010299391570231334632450473375937491003475987905778721202216822373986192094475681181410286325981553207579372128653370442242751515145341900050300435386563708895006088686425487982166011434612583392093141247066639849139455788396166574733870993708907935881473984972514230088944563957895475586798762516397293416797439966708618927752489077626511120827818000891977349567169236427611616813881269640949932297990122618408233688855775314558914947935210505434599752114153714433785017760566746383520831126592956641831122172106382066111975550005070677030852608771014349678097890675403064244926596236676371370471573291634984743051425204400429147585946201364912423943567029952362542338482336881412220040985877467087820385229029422246243614635977930400400016162253520332884629730553584189387226952702235038320356599659812255812122949883761644046390371819905010649593529998439872740568663047771261269784532852721160794337965864327493537007178916996707352756053324329411002797598013664685386584794253190463374915804453503417219021442180068530337370853835813843101202730807667070960375914951523620496327481186990587718458018884610483327121719881938209584712550961648709215979474656540304071922126736668491083551739377216347403521745550972974190495452487348399666621067262946674130681375736263685542346431104304741238418611065685681512276068636199897684725852630376717208699119707299748640817414591770806400862722536425246893418424754019685286896159239443575134027607561124402977691252868925696903358127215580353255777686638070075269589521475956593642054815066747957493656608710969466753495856957073807036696825117580763959125215637854234467882336673943154771252454527606047150679292050406052073150301020925774589965492996979851688898398258704972193518393509177332662982244356665417449404422118150896932267069599011337195210941889755985760093233775720183929896510033261140167556497973270971707413652672250601780081323940893087225185422761012309638737876843348037468978926727895944451731694471749152458969904991871588723870281285796556145178346607248320074613511448424412957857960027628607586420282978227902673880429174100814014783611696194894211299295265591905846914213832414590235028310333548814424144348679427511505801620093014379105344347955655639364309301854499654140793208680151974812688078033019745511763287402676461440194611314148078059133019046644688732757556196757983233408286371238272222742970186790622687577947035378217138379172147589504112782612855218900967182559533781686332569338369542773724204938943301363581812195813866859255349456762654528306030557372068200555954621473212417706852392689483446907912048850785550989007229825134775413431129315531091124330378026796680339282232650211285838051969524642020539930352319982846875140869760500969313237588564386842420119767115481267916980497592955034339224822326834560114821311643759812377216238197604732809964088471050702597952635960561247632583562509137161200812016991669909928014912916115248027904809431065606025602687045678423091137142839102144889471006803435241958634619070823128384825387123479242254808623398024077595395154182303103905833632476195789016715948000139519360367893624769940307331916409696455813529392205823941696118685157184778784735470750966529503283229337871812293033209998294064997649175944301329516433188475708688397006356326178604543964871222678783502985409966082670142234102540046609247068364251785104144335427804543697570970434695488843482819138117244477708531215881224750005911850105065297442259589729695326235639336248591976027525890575189580310784110851608771894259753406601993234017500093379142605406983593623528787993581632778178550898066861103570546044142945120869413659173354678684169123188010632360302223612002477456488277534982137976565029941002863057649869516096225349314580725402501878536073010699894967062693937930700572073963284055992443982830514637074848469639229035584948943990007126488133642273311563414509451437010294780961295851266325455509449742151542753444887777365083783991465779494236355017394614893500921428568668120465554369946754586349130312033382094409574285508644438724296339369732715567216651823532954346259144192463343100981775182664370297386135849497393249001202784877731253495311159150563645236201137949312815862400546703016272578760955657437704564345001634891953718667481305752709005588020499609713990685988769291339654199887558696510174818136470388153040704818506164764892272719978477988726467945120895479545057517297745951849902565733129491872530584223099468306860360577126643504216665213406720809233117122888075486525583455518203482551726407297303743997859428182357909240251375928629375588216565265615907955907805063239563389282871353408578019152041720805477289953550904460511016288027117453128530088878459225979474243084690680549205386141636571192780499236669232914101738045907675480871308406439090742650855398006840103228739155330002685887090228020812978840658739347327971299635529110397152848354811933156398383015368493004105195824014711354107494585000092370520545337985206982010863841179162780866748396611487089594419729787751859725221131336757352970269468225994965112399017416811448754836025496818479651409593991304212702220922806506737114169066623586717481267092952957241127059524295497143837539937229527861406196451723569004329864560073326517169932425006628112742291427293575579646868340388707323871433825967268520254985922785651746655890927832721901887450877491814722392605482843637753320843706865585525069816371448421871259247506464481159207990192460732977487332265565092970749883299313804101170338952876227818560728842115961364655359559653172978443348979648087273553741339423566803035367218706162832165045270540254694892182767122727285145235510138400988350520116036620351413875411279950064334022464762581452350926713380638092537790402664399353760968600147237523639260813026072880628015058802823396543821404061603954815276361622709325811967053936791681970973008825334243928952263894283380345600237545508112324458511098800218749474179097117909414931112086880530279737541286192989427410261484837408698656475834086782790035501166035390987177109489336971370501995439458701896294559239359977593813811113585397582837948574117895214358777669426453110534199550341247585430530188339045345976474628990647256624981457381456750594520948006203098616802172281435985962139621581397604707740797425458946055737219480766456326722992761072854179072706142847083821244027673191585200247153745906306158352736721566806545095885968343700552578650189416147405018340642047843197963057081774958210603513446991538545625332317525357710602553818539501578140243673972259156939772735040970691160801295165706977371373101394537878337026459843554729416496036076669427131174991273233576508474192967304605817271386708920041085859851178554694448577125648570945291006236687330836553172682970661669461511449065567717984930424399414245770849096642845106406990930425524034012191395251316286997219788727217476017473405892870735442236044455547397631276472623003266225772229337323651510683306706300009363286627839633460079584809235075099577383707836574169594306908529911066092618497129267515340539219229245212526780924593390303011084815794154919238211220369487328644637008206162689390423935905195226005782870076797264281620158276216995915505439879026198396760346840689217951089715923741150864597618026419249255348180485640241707099489946513589164337283723366187579828623436737146707200424439778877885700198969324207173468178702606160820417225091041770322934870717714245260711042416728253145209714822652539666242004399958372301447138286309930100142192077380519285818324285439387909814284369218549560133222212340789576120834856193424441684570622789941349851133615139944203892568343986151000628549796430464437526471987583075126622775772698255769115481013566170936740784438827834864064598991650474665894794721086017381641944477066883475055958464954960873469047336312872798627611203898536560904929457483694297607898441662798767462773059017312651155987683563075184036303308551035026440293899112235054365751845983920595713973112501616017518702316440464383478479809181562597609458169753420144649963489386236664349469511164755930173108875474181404563797033371750675111246599132999019429411518517859245118493148630418291291110494475173913918021473827081652339491870558214439453034959589280023125953563475919411191151967781758107926836483201564827955333316808887353093103793289779388687874530029717140527061009270359667428760866728837898613737041970970065826920975528314905276517472500284145212633124517137469810575741106765631335921732217179717966667852957106464018843152002020690748568195054565421541181969253437195220552654926090454940405575220336510719042083163289092942529607944800270855511414830058995984320709240065109992577326525082012530825379594183155304216939183036912074039312397685458548215534978574240725430596910292841452537082211994077588254310608988474203837984137904377964274514692383689983105674147613355203978959828702934176613013075139556810872629992396047498119640642178904598449441191393115085112254194773475165692476379216460445017616017477661592586134137494346504122086742969365980526001064071102938426326006457616736433898591629462681894843893090506756542221996682815437383665192996116175202147739016268295768537050024223141069784910767862838587190448137808924672969643667803760770231644847941300515040791155405333313532593354008505277689444238002303330958830713738625058180672385250331461569091103071215418230118022283450806100464411078225340770689007397502535147449695467058035373991659456143392930456500146577944791161359555286538525054447881486947970087536728579704234148888825810237295244358333910732249954716545458570591738460680616433824893054110374242248126129948409727999359487663182406326601017100393841278256644557662612695787298752238356845222496198641911587790798266316470583999663381649531029610329122648345806413875015675162087705439125261577370882595599593177763630244494490925133407359227616084860838222943744856122001898092015819372088200122691321171427635940962491913908316346241133103863869926501662234510908463033764676409683972798802467421914021194170168323117226480591898271130751681178745917085707554870576322650825258682119253041692575576353434867725493947707302793309735237081848634464498736447557191252195624762900828592826321206332462569959118957157408548287722955607109148308197853164291069606713969048161368763352012437111935030327480020415693213954501960541280955665931442903172821625535260992847837054615736566052213592861487820587486375294448974831572942779515906753538831620785348446719681805987906570048232346280339378035254618228272068700295273345287991598519034931471382040356804394266153887558740820317111748833613118383693818509571276957713901819424642751752780704013147636931384835796179489824093680718831451470112300680823809663799830170109427805338890775612812664886973746431122780072058679582527041132678029604876155692795308889894396343391502355044114059024507459558621650861742499709704285202510070434788543900643035568466624012262020931716629886876987478644529025978417594049159750838274558336830815076480707578341460541833272833879027949611814754782877789978287631459733573531060443563292882254253220861060966663108975556819000485801846702420235877513314452221706224140429537242140021890766699325476032117380032967585762947529422426827282306036145761031611855001487643875523452220065872463889426193769209429102207199838015718180674257848419723878700207966354654047251621471123864382819116815993769311216512392814566334688089298105695582260839885414636976495994144868078287252574097566736626158230252357634337590783920357459409312331815560857818337820360180981979225182178577815974757667007336402346680862998500981905708279931043454750491907045505268714448217522812745080598606385240596974075635378230659972047015271824204407669869536036954925571526474485429972784570807722241938863415128615063041247870958065886329708018642338400593160578452921198487069244941536171568237822366633146298555356796940746366794858660025347274109203036622783715488175998899924457185065263460987793430045780599367081052322917957363216326366324713811576045372919849695999233164255060384740590341472315899779016171448872735376360015606659116553683751918486818180301932368950389958847760371941979260745346278713951821580601864728860434842745907950002786522773953432723898964335699074336909083247139718507064790871976651706053009326830334672577262547163464060473002226996354077228345324125996928303079815738108581784291036657393864090391173139528772900332440107330714732465276680001903148504984692536720031638182630191411566752478339293216479044284946847648709262898556341380769059987761113522533975226956757443855244699586384773749600510266969322993399311485776891423959400706730432161449896605274474509430010657984571799655720784001905520334538567442411517502355061137097085987165032689306792579578876241188808097918289767813462282086411934646197164151217035054118224371410565557801779125977512802137943403323054312219947672350756250926933084669931356191142497138966387240100642960527447564220271574684463617321898081065117941405715559744253133972372729681448164776860381339640476759912256417870697235249975194269305557526475849971241974718720033425691563527450545988558796096630790756638581022577183206909249416542585772255759718794753228226173940760038595082233615827163865206535570337599039223951510609823737576116403258150135506741162049328436632975324736338773035931842591360176253528490160408267046253868597394500465697324028023963291763525512799469519854216585210934417328109414128531889899966285406175560345521545192298728763490571329518617730206232220960127313626554563565078888379071076957867241992910707216804886472686587310197577911491890882540730299635373925063262300577053091324675044257909704998967568854214070071213847852985738120732379723865658688779494740053630660114256148983917293552877927083832501291590898412942782319749433390133547907487027781491030358198702210010749936213423557873924140298400723504046550612522244987517012518264308684648783092434876490644327703562015785436832572166248399927621356614542008850503025743005360472114077960714629054316603849739332166446093030452860216752334944424172747037190584348163855245497105310399863088496322550176197101794836774665999311296463138513714086599699120027171855807561569768980923002518105995144726645649802231370121683389090614793216772214765041088107178926834487772715789103745933167864338714847272381077164029197312758550920966514887722359024046126131679419119410782975677178437246566848913098422778382836728804472181634959406552469795102121137983431010076133150202275238212209044883817668794842315153996653014123648006126793011781416657807405274573184958341150779487608918367799070898719843564851514951579565486605702678790569570428354508363257708848008990850930468080620648363173120256590479038194434746228020873218052782410879050805769258760858085935216188516439212171489748229636813393443922010711360357744530303156878655051381454048978402803577111036473392699647704128559608610777886934210439782496091812678321049500340474138994028815434564787293687567413983513727262150791427124129275462788275533679960482206600555274754254367587661569068104942462060205087442127937720972307184424666215592383326504818995506864856058200419270429244653593593399955638167469407362340530845659862520590801058496068350905160133843882163023809384718961242769958813107358333321539434435737405746564028252961267501395404852997437443010322190266572874515083531869784362449949513544891103933561495111078505702102646554741740558524103916585566384490763361882519592695241596773013076242866049641755743085982209654845331898065398469784032992287686536260091913682361315519986269136828452304725572278923910093413063716631167381654345009245713606577821412994384317506084225451328337470419445724954764767787082812718022887895395203143451580457644208424866862622968572549421468614602256301454750559102370059714754596395706946082161384398242681183987629214438209354250575373262124297184221531309937384113452006637743556729413895708319982836882009440952747370127010673759134622980649604177229381115342387476463002002849854404279895664249096588832481904557092951019272859727487467731616284143067176217489493949378331441869583559659641959841500924147195317039969496907387631140581522894589033327476029229239413212018676900703235531170508844779094735564434381497074142131991407528024015406935823045705487335430486278633074744046324273660445561661294452093300506500590542578855869214606580731192032044115280430081162415271585392863152236068124465321441408266166366461656413932393961098029945327809717602261591487935176762403719342149380102248222902675286142023564321159901746548085494608844025466324823295234336753517520213439273970286698921767864112460982427444507922697792165217930120692068204142892994209726836011749718453260495986285114794677779357329168334996634785268578961572668002329614788511405737673737079568638125964681184574426203124622175933178332020402797154993651668998454749291059154764468274786383346517475883253212790451788860594476041613222522742963875318691799350796400710123024347065804688296006995712676684108874391072364244342358261405975461611300446782937721794764237112495359565122519833952171615196039668970132504463088878660575045850283449812266240447519967325594684734482755900577431399778533531810245683813392862845946522150437155300538158328455776122820491262369462497819983331316195647800533607915652111982495826766620968357963585270692469915994060193041811438069604906308619506638767150387331086224072306167791952150171486029154305848700118143560236257538932166723166392101064802477083262610868931558639502125358942816334174991041127798976976519892432929854652856955043154794310572502669801780431845938158600100361408801379125217322053489289607535318890760943734370976854523407172811711527739096174015830214160011660150117284072327736655274816459138525655042091487385575983059743436252318258021220820287992337687416725859297444322828883269725257470296113819274911548068194828436011096071407723154172050927472123088878683369081123099785526756949592735481324509059741979116944870298798723452483843258491335910365343703122837291576212151817801140373380016556228804932391341973696701336156870660290602386224057711039408639837336261043747620118526253751267474552118090162956937475330418637580083367631980819820673932950241779064931200026602389930568540644619971437347973103240399365530099055570050259181193307107709860754545354244137718866782304514267160641870661197915953386563361782198519102318107773576380669369199542036793986930082513558560740490865422094036090852293052083727906888745601934770244990196424374415609290877374851274653271664167667859882489232651291415478395135273475667480975720355017033097499468763579388938764006133449979043108113740152553768812701024773035637944369574112390463458808851124620169342579822928979344152925195439464187093808033903484770004261519362062039000183957778636073249318149950198761583055821753500241547268897102092086937796808687375854413654635793371221870722460644324227561664583154098113347092975438901564751367065536102127216355437433266652831748769915257185308010246301473511432058373530945299623047280274137414602116083994934004549371424853823950635982033239827870838687464446879061162760069563562873864515274741787594777105774265738072101937812853032284514682898291350534186200700273620440286470811327194497899077609727752000780281783362920822011592274232040242555507770413427688129930104566865495995663452360663089242798475538134908554600917959814319523504112022636922666286569702258159807165082659260066881990937879900465216442186895780535147139014844908212781248358856515259100797776512648905560860992931036957388753123398533136389590771065171630646118503519166256279840807024892970683578361738132399194495722137530939055142504542317775909467912835649881072644616922755849639436492131173350171305095847857228341927224805367559564759634890229868160366800039120008160854212060397646250889376702330249336548384672773960803155855672690535395097931581468696925883094964858155601757244476204590651694902516888617300726323545521606346870804431686628375467442381890956451006197972662209646845742111280684881713643293655714113576533953126941865814515794794345942920020011865850036145156812424333898195107395661170952673597159443750729893759262049167068906693376927369117407078862104619239043880889183941021601672667479898994773270067205369195037336553908064713239506601302126296842248554128775445502058327596341426949082927526295637382531035141400675067204309558779053344211275500184548917939234312170763858836216987945913070266930194625497271436666382819439577965686503873777547654793031058566307461128416542911887104131066390910065313484473493818935279338566671380184036198990419207847177219367212230330672832221568547616494524380494433902001514774291546256359057025656678298329106436536333131178877950322073808292390948614854142792955377452504006938011663670404427483797509811062011315829318236757027392212912558737143146198841367465917858298694909580670049157278152727519842825738109481310422076059791920585990257301136638719793659353520715671590023127001812507660766023499219851843773286101622651524098878869798313943748444761103484995958646960003355553676287277867072238443493513555071079927593525009641057339932225685510011496576572414370350619966603088839549889777250315609229140554263670403542537617820622669538174626723997513932056693989081312332138115336872912250341057010616215903424508717617973807145747045921432216676388282012443957669328613547679317139495336464770428436126093250933318687534879881089376972703404593113702822837194075997386199215843037532477847695922221291457887862360905060184869867987732241177802926966094314816590068432216956852465538826052746945054323574318689009666822826976139685454545311234191030713047588451339233746582441648739778796627199853579661605567503788249371446344458890725273392024849711460594046230451672147151809171536963136458003615038763958802142773452784701559909052290464049606482955564725096107569251471666102418996843104701019877104165299901577275219003867142618126314581897968365033724486684855883975412669402847652267091297897911658883245384325614184194272438846197083172427191982292144488052819814122220886921523327319672791159110811991151974147847884227245118190362567479456406344068766032958797870594143529124857038496482972856443204203267181063304118296702910413067238616255612389170676212983915232448080554905784020953385938850555091034390051016058692660672077919222776233637065468421782115723896056980820232053655062406253206922430040669855618469430727925197810516351166143640139941258404968596580473266905851390613337740548807323456666312392037416150806567316476259826834435623256216064317012892289505498201175007022613228066506605756763171184305675733449578130692238619283886310206453558005005028568477684534125536420079633315975782472519981254540764409544434058269581277952697755097291572285948402669264830122287306701481593811208644598560174777688164083460348616158401821177668206804658220064185943982765075373070531952513120616216359452446985964501983059221429778074067837159647467973669353084612125324667274541814524791291727794782165233393971567889160058947169355782049408117898350700811402270032122340415260414566620829393045119411836860252799526550483966207733838124316532865545128310633070602474169595908724837251379358234125235337786448532034265938783110371424704426810317923211942480579744857659793549211974204984666433946752847653628015157253174345568833034217946766764509200081904158263279889869295125785355059810343267879206126287951228820434304633445063667928702406316235455602626824518670781893931143297342376125671541350591725993612210747967614974134208766439176439201352987807533617498334311434282949102689083124899797401426319782704943333804091502880123811584795955617200199454351984787864834822018739480118620428967884970928798865766144464257152398458636251866727276697465033673598751887004850438263924852488575172973575393546568439051643706917550994585679106588657983179221663853189125070551770750449132902428080496068875169206351394898801114620509386137029202777471757634258777355516931794543238525051256770088963186193887306164853034974244342745481635827570345863583736430031662640689643468020864361365452145479820568502489997003888554309313312007632539527944889251141813493360456877194700336438105647482614199467389666239986390939045470739364864161372230118276904804603624229764983137242720427536753270991809563246118563767053535468083881586915083105816070955800268569875530516727657893450926172507603264388909901255246606833248602602265177520150590000355664919963191977216830750350226823751252226441981709223712478674875450821653600753728094958841762867032654986836059767003230020805642246428799303252614969310836609147590446912848349317507408863130258605859572910656879638977589289629053542219165033621986464989192143389685579953992604468686671187078816417022441480934190674777762539782455041585828469447002674621610122232617753135300620545879350288173827337545325876228127350800191637405944804125110737591875679787031174213319935093390516594311177345132539617789209757670321309312638226175637129286936553444698797734432855579330145181759817189292580973919760936581200514353790385540787544177636971707708102307473325182115015495044364822626485841032898777494431646716683068895483700027289014105490334730147554756071637007977556164342769519735471540946830054881010090199389124872085482117173527861619910044042235257010347407166972253328210591437222463668726252840081035413970503721187544157027523901369988639603497586295376955589407498528068187027379498788317507069635935903522463038809459755021305868093241745162937403121141369494173454911921009462807764279869588119316161186933837325958184558959891974500684669039986646334369746348573752158833016030381769085437436256372342096559221161671412739736104605312495204038897885864723270211289689713396671841692604276013040553130909315939958657861657722573678057486308793220600055457383262942876179577755171467714305199898582369561272330384199049088151711297972624260260641723115839972543803878630585261179824447482959260430034942120600283678516681298259790390314102217496674409422093469239506556339128924308090354764298760951667374565698021944634174646199733883868179506565666593341186730318588758742219142834182759310802065096056551166254162417019689166445057115653826807192112966815108159170722005242083492563643704107903851599229800179792974081360909238354970992551957480954624067580282646956768512567845347958843972541039119791879063544471719569756006756216956228570376912299191356537686386078627796710199050368894683931619746019274009608315762360258515987804615678864720439923982692505847733407372730812604938095025575489354858564538277796967375490981811730392701433722084243554652365975775144543128163687062835565218925103130066390052469008854726086354436196247274981232431004949832095489574030083461140777210203207663801738568137049478086333008413280686027671515215256370762467196574573039749287730924480299974916626799604797959834118427040506103031375783912862668230273151057058020018925429550486489121970244539348547057887412149091265564514922801087551589073031448295442354015182750045768017611380839816652283579464853132088179397340346081795033321495638178335171141858658034334667065575938160109633294176865056961619535981894665438161245087792793897558343451178896495035485566241058154141131607192789796472605371259847241696911821519599975625017909856566365060744816247639267884453740188225974890946069053701876205535244255264822634834254916577095615922295377210910476773980380411331893471381080662332819208793678511788776164410184432350135729826330188543401184249199989757802038888086191548786992534391270302041239444343719828366442863303136827335815589606252114230383383907541850106639633700461151137007123319906400815885429661220977005348750732222744861652922148990540317122347986582334768848319748835877481590177344866168207805206538303801520115082369226759627824593434435799081476528676776102105857263611218489209157006901386402627634180080403147702263451202061491026814091810706640793645636251481595087474914244404147959149778376318774844622128300794965447049733658686633649975608023437816742514596896316895389059299991823814559325011345274890264898965504705473828274502762033100540547630559243432403037898052420878492127639652900399787812714787521642834876997596835947907546874697300859671315115518725726528908833864538586055514515001025971960722549240103846772970816049717810415919887950685909624332503970851873137995679005974032052789665268932440722455204501880916734721878713668201279339711374988199199812506850172884658708623735413140829583109289381471961475519755792100823080503075659065411138745396274700102022052497010308867170033317975426418948599948012959574378530846621177329543647575213410669046746822127238573709616861268456139052650641092136109928358567724671452803913198629437591475710066744430669544350039879011196271100071699916805920840455813442393368934671552546433140678072018063472756616608889400130037253350219854754519457018767445736397595680909122398160847334541602679912046795823033298643910627387045527684441594451250791208199578712085551604198837774124358705677802028191992817624325918215232002141878139591413364979293709279572047205220814110154047992288374148714702074972703253191858407589217205140105723811975281223791945769518533480238282670700543715994942587814358562612137073697988766762968279687071479127245528547643968954947886220370321841711098744980621145923990365762281917466239873356107502899693822479788743414994140105910049267377778321762793384266755946392765116409183532463612989078117716938127043311916876665322771633747348851418332160101537695731244074241133465289415895826735838054285638456868915771603727764390465045185761901452310430890823478545609230015195369091750284419717607258627709183286830948049289299691131141453710062248415678149802424996899147729937726889048314157409287252385426434498023317123794342917216527173233195606260838378412389366757175950106320636382083416788012695638212718846329953670090589618960747616631219542790770348681569012899369472107155833474641056686650206485068339913351195778767376290512806371873108829178642764942299670930886078812378131885443861023961017066328009821226835815190266528148726690579603302781747864854410928515346635873456218381500639950435401903923815104179695549990340074844574932802725773167453849806558685229027664886778316358923448100884060174845325886200403248590863453013459143432879634462065146146364502995432653319710217278152814794045114925995782589665804844858281215422134316240327050272000750896635238841958304674591516531179747000925804081309147722677838749529011977887183547894781723322797049976185208215646874740559395032886564569553589328696276324423497846418070833058097513373391979492969984333852806815281656738747762740783890621522831051580638791390028267587818323341178423612553696693587845519137614370655728305210611996886678538110018741440048095731551287618325256366492164307895417257579598544183553670437695785233539681318319008048737458814205814848844373987685750283251786790150520426287413006268601153560004244330320628948124012985477853318382502916080840701495879521064507044218937510929633001642991239568892366698594131574983112632186633287770587208947082424827508336950354716229132162433740984008743807082109943993961230652639852070810830876007692036145948489217817732852044865769426566704914496884828669412200614911076492137525855040929627676654984714767815063417145997590528598685071383653442984818995937716823773878348747563986968586679816215509514939785305182327568392084644248053737665768447169244045920504967672136785000778516891985794617116669918239787636729459967437390929402790196413063553275962048563170981080659075078695112180376998519786371947585632996059318831944121615464859080699080343957848459051066607699165871060615600103179169467938235139203827300952687522537372175538705503763726975681179381338384872447362654321249318116642494846172542480314299597339938843674160257468632250983916027032868823783445856093314821157921524717820203385835049417466229771634632086470984951298694419803262719978520149616418834691321788652253132121614513292789007321412916700054850731826129922283049667948225336569288882565471090289113384206350800033063115003742584741891034977061472270129308212968232661816050989631637452315155220457144569637239388664442147525540338957189338888874662711845276683449292354502457163033204845022797706428813716579814324546303679346313670950781691520857435778301588296643177357407922336809659175731143537848306505045545041719547360772151153473562529056240990408672474561607936862779386078996236221238008650551274221755387835455439554395980541299228288156139677469762813300454919940951192303576361608599233496969125804902289981589562236745488056488099549835515738585977428097198616925637554200600927734179700156471281282686456309914985022922828449684858768012672744290942489490983836697092537109025723366183756772396538670835681754722591985192430366129442020847008865424661511623641430772311833820648355312601322345885713271313689414766802857382455209196909557588422614850789919201374924601224272386171645317470634475129365744699055960232654813769121383827649271398925584307576377795854852285276608592970496854108610238247156669247015252968628594105231398516865819937007172387082680833583396467072767839052591113422276390687067146631701068682537080666642909903789382767265890299162757664572679637914644432027432747404048801366440854626735059128981203653946494577759720820732679791010482056773785467698289525488028108663918310521744738045054073479045915595976673566825408876171001663095134325505327889515195382131217634432770106341541747430115326080413550561201329916053472635271062554674621610928053983048956687957932562898026697877444947500938577801265351070614839733170156671723910848964440378554263834142847604460762970479865814067816312150360251600337507350964937045781110590377904579333948237877593573990235403681927542776768234354189500830281406610019487289239871178315684667089444031269119435945354755322212054413072441730585608281168976925761570347902761789447682601727812774136254487878603802393670471632253391766654929312910646073092636069729653144707759872795808751666918271966728015307452419128378025069977931983015934374180845197744304335384900469391708027348112785617234187460340517530764841537024967487460907324755014086604996832600299257969113583729777486423749793904228875812503563873893837811926749827765158976413393580302321469275592801492447851631754398633647131382767890238500982384997684135499649161935705587018346272801850591536387948127198772024767829378053689066277911564271636262579296206043666016814005416587103052066055676422281539076690075476043044075432241279710117720138986798580961085077781968672157946322238553616246835644145579114462878182994199410254651586393055958996138063849305291366989950308314120331376293996618495048651955390092421613713715713993039196908434385488917903202898403193104172674523472252118567629819834971315335532099224051691902818583031994600547943851289195509453383695307464559674023389369401364080616447601255103570413623294083726445521977759869541790302000304991320502476235705952323362999539867108827379463514359283151886996650382787345264605073134014294902679025698981646076638501205045645221299992654860152910593544100170237023226351189074033639295222918696922389219688119496747075911402845515641604487947610830004210956001940176222118673952797307085790007286485055653481546998762375598656473224430469408445641902529585297782491726876496904482444291055728298773242290052824706232480306100969145988848801926870882386152536924009455410063050567215787718134894654547994055711810493648262498716178872430089890653174447890956838429906309139789380074165519514033305409491173923709030194297932260196750197788804178110934023349787773805902661534862277882087436010564363822845294015249495539324120172294264944167646647113522615555116889953277467836284464147868542213941840385343529902963877464670803713959379776869547322023473499225628232348795330625959667640358106557184916748221034885108115096838824850878567120705200914231494243438744580345189211892342673296023254369941786401439932872595993569683946167047711061103948130871010316075449439344762137455306541438947501385826802803346431669868540359837542034987433852486961604319191686295666287188529845687811266231715640007095992223389448437700450546427944589755103472393646499510605195741177134904246547964009336852939240806389382321915016316355794332037745557044900337452172908494859417291811145355536863711786785397553897522541213876770935774108879603003517717690581750986641117336831231776376115448884313346233140601255730076631303634987003548521385331000068720017474772560653173795885250948863085739578357803178195419010549940468750103160481905757347950375018845864403254152472240588859352151305922438676747508360756616140093253459010724260109981646397157032730266862468005255281312845977619522946751712532974225107840920002998436605832330190475860886994261361623141298803721269663960373058647200246847260360106066268979098497457673336838696871880926989220966671806841013031247237181949041133344504055358313699499319181465726084359070526349151589468179233225284057926462894280018208827232954123218835062647707255914240117995879250400228428005535464888229479782372813865807546396494230635131402520773619698124455054792770921847029260835588305080467506751315519876084701031041334816818600740141476501866628599006832644843680769474660469489669921922367559063959004082152173212727968125863118050662590223424067443993477604246649593029158888634489095129931218715535309321247307707133472352635390693249274457968053384290219900781434690320059804576739403800263457826360635560839287744390253438293841878771362351763464688705807851595017556278345220832815637213387663334180004493734880683360855973115013981607300069048625135922474079177534670002686218961714876706884072573659326594993461293813834802481252336732250630048675271854132988879657753208813814008755693427067684217732993146382667485824521163848758331572097531459607170069260112556733948100047709171706400021825998876321988287984922876723930733122510999106157035337767855671161847742540026716919697708766555269736745919225613007636006881525553156662367532477340876970093625149927616006190218359793069014137236085857986999467893477353174831347153478034364967534783852364834358603344311209162280682042558152005674606591229269757488936046769277464462091518515275308779285112446298204041460518603023596686408865768612556099367468510176924712489312673563479336041541104832769969621538858879093797464994002269413179564428295132377963811196867772423618201896112596634177724876906327421501987684349270622121916852329331381728906522746496968241112304359890588069678608263877300927676571871092823953937780721010336911084883489251219627527032705986951552227891634126658671021701903172837908907207303999689993581706592267776404776183722998692883180406401100955482185843062268341954199383298272406378577482358211836138456602739234678505737023029949608012049829610973372042681400227426335802204611872897901032067669789160452811725312499319332391110136870610748363399426717973490034181422012606042096809580271242585363194711217965657570598317152422691873298264419205896543284535444811764200098123640488860199756300021418074299987056467988063456047577782636656048020823236676942947269494902069887804995946439298805018608686912539366956204111792686634389074177427084064483467603098318722990394291159472977478123643477717712095596517983807034995789695442130153219929753856528114732426837033613135595291546799380219707439462080547445811842408982164826255616073841964813234891236806073979421374048069626664479860522324244939888319885097169507027536207967973358456596231998630353735749082916163033545970096484969530086730060241140447542482102284484852661718995791044317618728833225413332446920933282076828929213601101414813037566183568867302620336178762905900713598119389062444596958202351136331544559569631481784173350828505058899769890153921169214646980810684325250496095188979952021291417608677139548664949228606808037813283710223481489254600257374686378433660508859887359711959406399434304524342201341052117177843573292209105628457967660617951054239248175307898000264009003511298684822590800490481238598936248030795654687929073571268431186552289364480270830672835358626829367120405763491860818928949446432631443681472617578961038663283268509983102991717691803779630514848367535335965712656156403047230239647859540181399483514301075145741884223566717093265989837554093989271017097475920772232655506801633385234330799587855711169885991018274553565564456401347212645336264873392456643165643598989547044082887429459449639572186307771684328511963002755693015036926600848709975731244771084359529261866917269014920977095524336424038310341442271255676184249568627168522067622857473071707051738683162357736438056006049616859447045495643582849793072221623740962960569275634520748154573927662570236933066507025349600464489901332928180639613292013334360922616256231896211201198208405749247171109067513207939087945433670932850471232397570127798151177996644402535907442968138099418395333955572814522606511019134812897445610954848565213797858143987513948239762454728797510305740492550436748612324409230115464726098910030023521925884974775651766528179008220052769633595269562196461209815391196935404993096361613622116849453804511586633287583799369371213454754925041371683897533028273159619710119591242105117621528556493373790105169466016492621155092951950960604301149823691114742885506817557566375839672084644809475899080408225020769035994408483375113790370979223478272724918677454675175624391055422679427494642711138110429081960993246562012472023305679700853002795856266455189863169867816233099382210401082985978275132707871581665467527091838240182688365537886727977439994091765514019284126712939484586605992598031940774244248621253543719223927400871447798543445099150712318448874994613284967673133750234963426616845395181496354134422707975830409089709816546609114153722042784926075415296539746799883284064890022869089050867007219610207808466810129227942936036646697628388286067367648616824992112167784300740490887482814036929701175303025845822633786341211403200485153976664165634593725034313675067349349188308787389786794479572614993030560330772454030941152700930974054076356407802104290541629618611726974709192412729642868413361205320674809292265757830993408797185772352088348103398315249562984719467750777269661389727691258107355325447564532500384228213729636596708801232091217377568539718573341947490169853537599053414793052417435683261647437036853340444492682206588301663672246480202590409918201165214878781909836460050118105457045951508336147631347437492459087018240494223078134362657820778808165762646006991030519269209306696745700238997230704057138096133265667463411191659649012553888345847656985815489816878341068835357041788402750041193192452117859510832446027621405802967542177195887451994514979583420522688145833685132228337347413421583249717313835704625715098004901166966887838561330013167939613131994356536224397671289117631328438249090367979694476462508261633431765494765249594787807302406877214098380273207177182643964000344070762862692190155931443023046529766374453592798664203733896270157623228067681813240325290654912623317724126088442367767891581837581748062764275839337491623305037696214000059768046224568862864699083209866426064958774572929788958994147715445774140257073147709194827184149336893801723652497515533325792807102390393237181745860515358831566205473304386229777193060330237763429440810798059978616045340038182230831940063225032663694973507001968441926023864037531227686589540884620809868899576301541014343165573768952838774922834034198427664311814727281848760697104649876590829688796266972045632726213965042179833019404929466277419704062086604383615068495102273450840856748804043683393938954484475480515421125086772071017882753557767701796027463638034295324251910168048276418459716801670137985626529667751209207497269285483797595945564571438189752842554723816825442348051958930188984662129812294859082863507197992563414939739711318336010546102949208388686484166022991733174043608058470941795708216168669285442744303122267101609240265042928095729160127749948067733261051641020650558839390041747255190230687141204178307812843308295506664103348780106736486753646482094767767225961633728772077207463144726822064139980607277757248107146412023397529724888598514731636173499612887138126234950567869707016827850102520060965740043518401497713560083204366239841652129622271964733478532603846477130668156561541080633626331257529555940528044861691217551110720117070063176380504321740513567393390320628033383132133910279331036271158022437122489842777975617956689469423445170955976724078697008696213399553549668111421378313711922250566118485116623085608979575885659895029534507590422369112979598189726620896208770787460829754509019442736680347975450496966375229971187294456970527611616923440051377116095466964547785514003539775585287137256131425949154022979338901352948913475505810780016312566634683629759594076025898526109285873770224922387240081512077264282420344444073059048394964398497585157065002399056458836733073125624557353250334344264318725057203019743845721709390080296003369549494447227999368425417209318592130976186694724947910700538434945532225153257824176465095651450599910735631256927270933929018214248802648315134145584960350297879113728160418065265459283695753357863017800995530648830796767516354206459344334848491452732767315721891520809470123025027645514840744847614445727107633242795511363054830460678749725717979546440565715104672389986804375013557703362143492543547955767755694351479586002100560104000887600820752362157478517042840882655840146424706436960747497661003798051626997819229040345644677557105445340474151769048409706543437348553183535449880752863110458696760812025003264446074047938346567908981292285349300665720869857412486893518464154231871713430029154332938495523644855583361378598692984884839699775306393113286734709424626324973567995796503660771396436283526401725175719736479578029383462136400639840419072789029724495315869490834117223490837779403156429470609832146251883121946672542177424428863451007943576908242229734028996395222705012239207798141618838639587202258852597641746808769661770567841985750458667854361114471424495916174254466556657157247721113309567292140743692945037358574977801106651583331273987946520550885145882839132463973223783521140790066674555546808382245190951635205732533360253944787866077920065217045261836552785862560889302410821966648266441930929449590119557260495805102330152233350732489787632033503350862563051900399139192253601661098653683473159638404952880056947738243627480528470529493262566757666365358666032058014987116626007125325966604279278855651545105575570095157859170536857370813326206010679091974213140497957814749242260684504299215464347285360870346768868062135047307098303022305572633529785397747831853122135106259720145513829162640118061412167177754701136628741653316465590346171533827685131352293564596201482905350570780512849224641172531235044399084277437094431337145954684707297866336655485291014228771089157893706352718793723424260494774875000128409345020108558635956623500178795033385829828817828348350419576889249647013403229086262265478293140770002402291026438943059035082865895423794614959896016863260540792055679298581907437346436742849391358793509144900203575714336485770951340005114403606439120157826958980569724143241291752598672138170831069752415391388868757600963841038441949550287364499357199274900366560334980897995236632134220690875252622790980626667947331507613055250368314229968011944252634131488196958538893504552384629082905257145469224944712897778709029918086121964780887192592701792930261486533210308388428220522937756444142810703000405675645788761818813374461006731691022760845743414507978218867042090463892133599515243352759261278980409332337947401042275589715778709864570774093094480861436637309780059237705499018628077303293619839613800265504201794522355726734241174335251611823509661499104960348677025976464464218226632761848472256807330075142924112681230472512107336059549575157143082239735962648660343227501459216833253296746564738697536787393013950674866284323727850453993734749889200051686870608153730318179163480484500155762971182134961102876079550808568391326882947694261648248772481647822228575593463495836832186320009718861259409235648511431225476294826328289887712575502337566255320331459565586104606224297611896131379243006835474573345233522481796113826263366769165047691976220313340257330564540947534878457176281212122011174599748303789030802463715553890278979494838225936385444129667739173942555550730282444751098119872848421139524051101872432511088352616956973902522435711377292447996353379148951660724839412634665393984542822978336581196650987801172916484604999290806801339474392394173179984259336343715789983012745981073595814770723032254332675660911971304911930532849393455007090808353183236998811255066764585825736289306323756482752107813166157163711687722439770496785971345336699561231448257784298531122951445695848247391848474677144648306452222287903727594807961624561188190391583018133125228332519015972286425794025586289316026626241808155754048380095780067539754177380532874620631549687470686594224746498944954118314904980991187438271470604614886256136705575500661723591363654803541234238523179003607213808264298546749579143529462070684332433744301455322807517835719652285193242819764298402740007546485170329902442983647009267696585542521549811724591203716310213937410550407405759271634438237946231387218539731331884625230554105078337896970239021070079917647884244563589779292219406870365532226460672744954849707337004700417472324330051854369586531351580140041246958859974258206857453785959680775105976650719605940581102060309957035785037756088138851848232910470174102418319757666786053245122184428024647137188283407603236418513121457389221452430321198795196572795541653714589623929446158143107803816981735781394550226143079430922689238430922976097343168299109698976211316421709047159341149469208312400741372431825598130801167508227305863477660004706344532917599149501198820716115373241047747448967206668017449250607442790170334960481874246113857124656223141467465120310749816742701326095869641911003729646571578478357459721590772359967764104275094511921387244933358990523427113747256654382651180208998435018883866670862662508468131610536149716133345325534291021105647117090359937370956759612335943520048415303472319055517512941351900582709755982045344829342659559267700117210564771848888534881141978920134663243101522407711750937596443039455837950410580002374118686645403895807270493567595879599712601811066980858560037809559897003820650198194234855987978746833566728983421060200565773653902985554636966441417402607168852083782481627600758483341798543986122299888048655671270656460195760112717583496925609334245922543895644971312835999727968562749611228262428302181029057951385266941644905990594880030475552903690680685900671102543189255960593251448744065942801850243733030797295433604565912384085071180630784671133892126807343567122467123827320277506841769614057991023677021241552523837717491958257428080213975423676522623567702603708500185057975386984257079089566207522183705412310305238266196927932586184706522888814581626555007106168323340828808183823991478104637829811742961147912947293790996522201266923104509563114347671706809594966880236022574076051549120736683621241754444918499160542378471212198989827511001758220817552276504820950884776249043300389566200316048862478026025493381746798302599877190780148608838898712055345785141255958102433438990823906135631945923960564149243850252845854059362396137630099881470434567426883469901095140588793425431886683066369978300535442154453258109478442693538652507715397197810168741002079733154899219912544208241871964183651874574070376915978145843930748738056404121529539655248286223492440236979940789049806549138222489206563547410103152258620433234787981901193681144668548197051860439457461725057512868423046441244450957337630628420726016153452875637954865995035137011785687180583173632535513104727089294751700767605507806660751706883142885222360740176804911005059604500285181996459846193538100464438215419239224061208125572929354309885232764123611561306931473570345270822423589023126861520266137802540454310646279238464895040924813150061905965028472575855959239265920872575956291904883829650277795187674890582066950496315682403173939590290305939374440245135744101420905893139642104648328810392761228490422301067224763725039335723297495393710435174344983459782468799117353208225720384145133674955902925416373179530781294889840144641331346157955598456969431867665648851028973434869854094752991626334390511782902131396135323011926558054773709888821631950494636027760254042317982611249421288127370380867269852616161900571786824083464883260364877136443984885436741073963020113064474868518566116288727840438069288171828850064632175553860966027104812970310360399955716489348882896925614975239333035714714030536445327665557934481111692448722473525743696770712089392308462506799752311197276359549445734191816929256612311882294488113448230880982865227535760220463662938945797244496754566504573505077436394652882868157230435208624780266514399707089623437407371782238382447249975639904298083840381872028907502600490730848491615483750671268918911695057824753527956965500646692078736858607257031604625144253978902330418421297402187718961324179397237110247552222191190206080754334198672228832650929344721584948250534715758910035588940851718145399171418886086678215492553609100915699952337381650198964819057661903842632357343284820105144398510652677235868747967594148681123597945460943362611625200484980789841414947950445312557937464847779479513570206254756469309683790550791498543997221488630915334621118208554564768335928601891854204787576538894357516248339965865347445595269355046383356620176124700383751841244019900585141755036864240467214610543811468538233436763004723557414411540210589854128136270119283543410453747045932330108446398135266978247615397303833122007349418086862217594241158919209837145153008379491435703779561270961740146483321117912625228298107757333067068804709284788495271003004662598450642066228326832494799932131594367227399689844130921915826046181201834555762126788260093897160163094717417858889056882723692547965706284111464966691826308905657761955077444257472018708717452785527362524559439226285476398223906460222792952028092339490958325192924228675783881359958839899299359567103529507723226935088136507775947212977174593303466071722945857573411531903863448560101757225260064586771205399421683250854140173611917088340146431638614185859111941549053700580515443144187112671711779593335666693444920073128142606978564850344121946569466695604995652062984429958874116267621636874090254233504386329283868029173183774131496243030584702380056841166309199310633752410947479409606426935094598626427462516318270326094666717005184779962943829094935731484850988802501839046839119097966107355497540287771402639204196133213531183480384734994416827705413013639467933158136083191107307312351589287054641914827333566680038681957408392472950998098082388613523731619218624642488753589294739311653735607344875479101265451264630709757774100115256879106798768674938854542000017503454030267463429019855598369705431188652206891366918776148715395280257913436805026953936292650647868011282529988009697384715301673883392375725908220091967268777612257572654308492163930849281475155045147774207918776556704378342937726130711829404455210381526981894971335019383863437173815241749145354958096086593393397152520246162067610344513977586147529563779606202095191797356361566350257289011852323826123013254931062495383487584404697305523186764226660775719027679540200015485340624961605884380981458779262996807076130010691813506962210596981875069218883124749662225852948995401887249613605742113824993615785736094317380134831556746357113946430422450633763307000603019557064748424715620173102227918038625176334453495426270711478016328469680704018511915016755941759007335307914359826235005328434827540301859748130095581438945131846286392497061247292817912620241607066102026468212838857415998326946494007407030581378885519804168756807961998012217423686143093884958673437146093312339373517939696598289945876698888259113342669529648790329257173981463985180932109306927108941068991969134139633653976288626158021722628666222855943856353808109649779752511345727629626784093331062687353268729658780491740722738210600832065633764544875053165819469152535610727037342634163545438560876519697106944102780292025277207898023989621799338994512607059979426271769664894734331588257914448796516839808418821714568402294197359474301473091683977219996071916549366327648168288529159848430371961599367205817460211519793445690843158884534191966232014006372358749964490566606432007997563250366744300000159441491030461959959192310714381033929343165603001362727032949496912092986859032636672895543110101958991109405713783189625249234109086078429819185316599911608474628973538565820328623683125398995050996587321328210706041103099942741612248853975332462990118402530205723542814048461003939302880590782196929279440059173784294397158028190632118274340313550071736937562399542754406884052177761179432025036526015675833889294193735188104847412450780254520273568644605928357701533901221368211033229198274741918341148873917117228208494376723169617653386985408659231676316803312872822200585851678022135171434120327319178784348927870430205463821625187791287983283346396563193481741629806947065525491844145117218951078584435918457165521029452431204309142895039919796990434749888192319045799174546707032902079518605941128833952585143370361906098385799442112917054552664720323220172757036856494661968282989535386637194681805491660356626739503086409433879029186286002533090238826722060339244070058350137335844430084679999096132927069961979685197344629383023448111330596064891433294381547994369718064671678753463348203576126629300788806102039970622542494925947136638856212639808333094555644240356002356799822271976997100720627024813465998480897331876252244296172598620637280267095557473670044433084750018531119132392153897810574701094634864353808698465839288400303551568287292954089259225197059635754292476402800075920248149329769092179173608167954013330823287802547328284290808474588712746709728251884985977622755945258249981994485474227953801316807541038086009244238392286459953253317983303024860059027509508256552920610714695663336418035310351652505365854299294985135143334326452455957236153242803284449804726193786136087923907689231074447440970515786332145562320901958280075402517945618592152044897212817292861302140252564369632891889504107242706419601844137435633415003083117389138108949122478002332547604466490056568671126211956109149925115614585273547295824115747952464303662506587460938936576228142923453875032662692251401250499131077561842324933457736134694737732806226878037380311983509894392748258417604383812133631022135644296378114022821816386895288926342269040992771637909229954206963013945120642026434724415250987293113917955266698068323350674453928875888724140167420998877718958611551874561888793407112765703491874238344299228163028238653323902130340396003719745331784635123788110031660315242471119431463179867645845090570502984723030305278413255326699160847667440595501738265913710428117832694865984875381858713302254045173133472387559053190372753240710117309338775719191508534778215703192819889925734551295186750690316574978284944606759359247076550397594491887872188862751863005581407228396833588310533305128840265183843107586132334915634015980672911127738984635834566991428159714229957647662467416420457207475425968130372537649957813427275399713287397750127298110809136350604406716868777482371163324720217966422078830449262187334806674168085438929147862329490609253793786746193911682824588712625197068421601051667638628523709912630101194379553816487660710503854810256101598152970980849146748497883488434049764831309659013476067719095582525372297060977180076948650641907512739388457538492059593192813826935527335794139790062602286085805526942771919585784475111075909701696909620191475869742947929793604827504111971166536492122730134042010056280150902147565008278108565843325645310680145287441449992713369050782811507094048766946111883924673288037350601340323516401605634876249829591610722180864051078273541564665992344001092105724514979861308981564778928013312881410303829397087877557552016091254827401551102956549950511521277236786589221643519957637805724869428273834536628148848599271928120216606009312149296972892576177807868507384640090419260501316900534576496404823721673866721333343254395411058825332534324243055334988486133664246772399889382756842955367101606228862415238637026595571293697138130799115180279747931113495632122669700838728684738356800364526296463257799272381958330706916337125037575432548491446728427580976722830542243033071101059735553710769827524784575304817022197634742873615814127781124575064255526539287399451965729888795241983790300761133732879739020196803136169707622061365939792302415530559957401020778748105066808560306994098770258535090847724034540189038744116278419539662563746758879318811419929487301355277159644723147045074017446881087304324483574291630061305244476926100338659812612140793536709834368170540727627182358690322567940685627008626410731785684268072511149266887479843868286424130575431090966844711447324141645560086566907975315514477037003493573958770818716751116642257606953141241179804396105480437724263635445046184637460693097901976479959678370368014706530851761746597216599786642482370584942348105880223972454625807638426853456302078590534909372591893857432022067369375848472923039713194860812504025515883720301574351394550836846183331678252539805610893868063515344669768736902772948474667438414743707492831328116791722420219754348411736842641488768301603490828276364830487128205660838479886168767580851776939132396008103260106534187116524740564833604148218977131376491917917990566292715472814501410076061288208877841138220534079367675917740669791652741855870012380131658266978514804165057480673518524289253420502598208200913063619673604889280524681412454665216373803410273521767588680898718357987588690570923514935385797355454029676714510137203911689172316117143015717982384559482846446958371373651216435349002829482291694137231360095879916381303395164531520009063869861931723627968708630163889173001749276192342733097819431111256137812313779848509329191358308566759655285051829492756736795318357030479987395467939321244904820647056395132322431460032542755493000851558462003246183598053553096068877977545234698222517640991986841313986426643499258952440000983868395370675165064239807969184807499984464278568622633251228917886807009635932072618663928830735953930151440808456595657554675902139059588952843217237914284264621126558575771476423487076837877502117478566968589007645187204951207495073015955742790247056977807265656347566880050663575203498139443378579403540247081504640078477540352702546955592804756791060557354514536582167176887770449017653706964608119894917002117895047623339581962661404885355865914328438459497203963424164154500328384104318281415099126284813040309507310188846501543782290853307595229810207828559665024595918621954874334893357371700902980350986384256449822831406088533491537279762902915212119137297391279850478285947381142931116572807296415163020907552604773669832843173203648556927647461914626034988043436685718729448227113621767335612541312812470700910507186837812738349092990520740407386139270575696662799774304656733588705675674392041049449122506443536028152707622498768820177845366200421686017834163230964120063940333026274083425255937681390372227813006888086394214811129663753231517148097180680431178944608561166308753708251746217524736599673970138331462197726806731682755370735608655299002297716150221217574622774661315426535286448483149578872285979294091487185164576947230731253732336095059769470798183778562907121874361232849699647787745182511425087864919231434379040408735756673176916642650372831720372855810286852908135324813566217494138543537310174356964626667072879487980680521457880646099893067583275164044843883819624525877210445767631688253962667344983545128693375480226282992592354192269453770233565685418640626750902699264537059226061888592958956725306498691891800681013567031366100124335556590575638405521472613152505890095215823121286596772930524878148980941133734790023530623562867977175007066017270583933413776812641429846386807705448007268560206088330608798922414160247210275152314158967898890549974338371400697172682609161524501848973962167499704317356524818701976296137702699405324872153174832840916927794921224438607797861580529629547063823071233512997423161340580157513270094746729651646938785945605815858172819082945434165561711270037449706664596159116642971226448407584198079876757057104140307649492493881378696903590949641207211791209127420180867763028386623936950926493616442985903553845584508249194962712688600718371433408541291487142293114105627044134403789020862594244742767116889192981242908062262952893127303838574336954415065892116193021109092282946769984663178867527916737571172562943097231372885923557322287078724155685261159304054230467817146698320414587814568140400497837432254822534566929507560196725209482296014239596301829649874014633244378130909050028462214779969742921481921922230757207981375352529272185378547268378433988745674631456680591103482113973814040071550008723213221845005493899463311177064187955801410268317143278236907389271447355956787705586312441274465575069045002441517245873356509595552416357203075221580296118223779340685914220612738977385422530982695707573251065580018975450473898535539729642994850111891923603570486316727172121553010313531447755104302549992314027476464944585713854659061100653760855968215974138746895866404836768772256190879552401373629420267825649585476997998536909472121246645899012782306853513707484808639715325714954929373064233181394726236390530001004815952452923783388945679973230964700696854736555000636801846068335860899844760643226137091860711737415560971220871210398705576222164230858825852524612644424671968928607559613958374195284607527456693188879853333085197380780231202402019137642776126717591868934953069643322591175542859199918001877343158566963055237970964239084093528027750813501243548182610625615908552031484879010380509163199923279907831811019867310408878366882555371356146043288346141978173466088550518988340594094912507718330969961648193154017131074835889127908777899587092745754308283380965265888648244923826225328130333378916506541689172944905466240673883433142240598978642236137540703594586034852911013077759115531488676253993531019094664641466538116151942005353183777145013855294521001006754315921971412094320849769187573903431144940749106378802560069722046661411422079412104397310389695600009986090270393515055374936992392529925220493048338729407205307905166335874659643580529154029782965240579584789615152784422252225862394028241644474861752842128496200748490704603491420560553239192666517420297242076859337668820711419889019609602256319635917325981805924857892558028199686485479224954496198364028630004789355805752491367366069190641080772323138238439850303886568372215148797188234581388633624104670068603875101483471919571319405540931952084820786828167572750839071619424759513677139476884445389576370663055702855687213613028640729986306441169393943855068138616069154560656092757301637075489627485514560592022582388859524922559284567770951925150322806968347077415631727151555237270007297646109549572718638697433148795189579138660012819375522545681433332256241946675240462751972570222180502618369229078685255716217334346470211888584294148137488898957976358757577028505126475008770553791394095848687473833931753669558766292121554347618651412760445223029030509348064784146737349186477682031343737452452172384470365947073440877100752730008113149860007286691182865192080907612726052100852831890743869686265096014036532600503012672767042166892258283648885535904129498489084459603499158408237231980787077667252599481404375669242794752688715203458262127407883534356298471581221227285046947077412740058399995770951037406063223139396346261500603479024184716287878834177856045517668630523317333204016025195210517523198228810455096677074765396230818608661344212332817739197746408407109625231085613246804029126836562846292437428067070513640293889693886495268206256140552109113830131737722236772143682717364772721334553440279023819311582073915975965557729999627229482654976080806995853965459031115143700607995021730685316230119460077563004619662324632967716018718704231908136636395764284802811397013372163467173374673380487062100342902838183928161071161621837436242156106909347402954430304852366501650125901401515944473873708261279868693580068959471160811087885131303299797396959789764058766638443078293165747421832325125091016823241798681796671979266629231086309354077647671378093520108711289090602143972296216525532648096396206522634584167400900050433606381813397802930410761329747794323113092925490407545385861357526547872162337232926465592769156179556186160394753134665021968705862603722630854237647170897028420164084226516519861562366802675816751841017679738999371162466873827440554382323695627460321401758670123764849303314634498603310019724548860734044999163462890768254074532270384268564971119788506120315211716235688971563340938421748983077580336051202639427801580041585116591624674579137468805136335551820217984352017770923026272396541801070123007358586638830789711778503050000393579474867177385493466116493206332039119935609391927587178241054025007971631895645601255023976268395643558904361857945077772463851833437269811981286416970600347818596885819735072828233032152707609901747209292624916578210983354698991616710007480513099893662950674889967743008166501307495082090024612667002583905800919419898776358030231132081997004589056719633573513055497858276592372335776706861156698225010126157893826868619054663739494742002560879761330267386771037725380209132019948539959158720652578840287992598280904443583760844302613990532106916446255281857472672368845889513087503699963861124617012612500314755064754617781416053373455917378794129286737189297749435332019333810077141310318986194853215798244457849345874323844829499014697172849714009634984793553239142148892681980567704519502620588790859680720141912928917000436305875823247890705708481674714795388705670504406729743148202010251957695024027107014611761285537704818118596126735644763595178345772148136365026567954859973664134770205740625064924882500581702454503458455947434896617811226941034316426199928530573083042232026708783897705643866109296516241887559318735666502401482682520493878599306513249274644836421217977197194896264242293405989592088559348405571165822786268532696264308613919686863366694100774637627286940313148985435349013483929112684063296758690486892241255358765713921060515942637118743230935405517407348617612268275457013264298153966532995630880839957709398087813545576624792907401114217810087310020408261123019421579999461645779145424300681965279812922370649596468212517062214862838319718675887903242434612193102491115970884883456823457911561015715025950288669874099450189186103747824373410587534712991313852314390177224210134561734705106878876426318428720961471794407269370780101830740179960533546801068223562272275996542753046302345265849321837939231402346129578638422823569622772350913577838559398335806401949219532854932118903932418190459929957055409020611571350425330674226000221061501189342671145739957173363245771887814335406235883081512749185010468122970452841983918999867329824767050030407981873843833504828735400834296265485705121326251640681437561136829139934543891998283952591931495642174190831826735082430234643648285788388968584018933186301132748428252931160147296611669507578024310980092568636954079240443902733917627771035463994904621642167029955809366917324290636128243729067873237820089864846998009503136995238168907564342719635628683373100119156894492003215527237540316965721387423306335016191623574680033095355640923830559907348791824575156121171134759530260656977060393589728924186820098846490812497427693069704342453994857219799869459975842607470736672843907469142776766811695885506666658462734428262347359198490858718603853480368076505850112327638611528428285752543831897483319719854482070853837162412587569331449225827855537692179456262224693160180586157889955492102963203426091479203673900064762301697915858716101014532955769650453524323733409446182529412879517919923329698277676863456233615112342243536935639428709552331693722077944190063914355457172082251596419762201207069484030526512544010043649721403176963306386176209534931232298039945861849599626943838195682773225832459366455582306358530764484342766598114874271137277485361021825948882815720253183806025653272454170568583968622047233519384507318125990332081922778175929536913839433105307933428338372236275776885391834525945396179402246787793870222227591687128387124528385302646376882365212328277108393145759036956327300302387856864445607723459422943902830658909384461846292424207434279391694849907446146638951628165904375321885716712177259689304114156859086682646919086581040897614615320162073731118659247915504178302737082504316792291500719053625683804833735368120025476643633086731645905621303803437549605733189690088995706650040521420265254775876901006211927223080891370436625759712555452547556818908082329584568600143890241038100363758616438690302505623491269536280096145106054120686465818403086401165961316070611929055154118135321849003896974532913493715094075061725556656684824170904608312449552095532514496458617747657942409204581018644695745973700111714038283996862710127680094459897769419233661773028468168655596692282376786678911656269292468943927484419624103381429725095196376490629920942835704048818219935186538898894061620351481687014971443849013981337913076509878153864902933914461234217017038608524069782387394502738234562494239684894991228790135997701905353803763161950224917212890400295763915476525241697404924679348658142645111882348501363632156385715515951429887932946701103729142461697102841047865300111110726581922872934149831608788067071897992503614558837947249820627641984734770011189571737994835674001199424899401468749616490034618742955201069782845668139992887875987317155909530684803166729114990800414293896929238942584453965446533034097215607625380282500086522053940872669436574131172521817773157086646157427022648442016412111284146351705407730284579436917386680312904348149883491116958395664636934845872116432052691609018357917711700482047783866247598440255682899265710466107921529857213140562653039231048986147777062736686117847021281265271459596696969206637779407681837882461509702965856262066826765082925489024418271040474213173684292807736140712023027964883034830876399782768987951445504674919270247653335421201237972208503511530559027141614975535630937531304058962338735761362759855362077238409361521097658650003560696197942089195951197578924906274210524817493939262344996086218463373412206595872685604096094632270877482751701818601392358026397058905355399922230128313709898260534217437527437963829237710929349090861228771427876788817276186276413023634725873702508864576767724609405683992346314711838199001144020372154386862035360553643068904420365307400803147182427991885755953263375648184969141114442872177477489584621900591458316520243228847126561195849647259439671234492855086521586623128305105889106316866773097065288484878000543638752997830236409566632060342516430526993909285371233595591605791736829679648426985282354481303724379405707076431169331537588670160297304872174915032371422995742442178575118554355664702958365882504634341572123949715034209869482375940607570464294141257570352936622780293389655307578802006835581622440823228597734179157126762138203052436774731255325131165443815259266131536609738965655261246145739402310744516603997252035230150185018326880890822091547604462858011787832049421396491785962777408920946555032208182050544972580505043744927695770439343801516226934370171626357488358334872598905990550758037509347583007732309897520098718021194794842818384965939577085300157853768966701199442480540199944613180842093206094231200909074950260219494498603265697662796374643659264944049101814895094379599894608719123155088811070904854374593334670392847776346469874364566817686929752046322307902709709840005979055424099646115940319196461991967613131616649733741789951485440173690777098362070370389659706619814323171515433087059952104923683834096974521948808331472497021595665638040918614311900470131995012132835205280883529838859449406717419778164066285321546093068077165997641726916605607638905474117150055417685130913575576732004078242250977113462616825762828367636150625294308434223620937347565285251694235367215511690855896329378749294950201856733187857662850516748860880646264515136167174273708793797338367700540511425240919853511216341009106564408302410536291360446420924634377696717429155891120771605568865864256716410780814834132536617698310862778235880463839064120998625346578341458600966981760881995194184795617732948883692204797958321014287091415628651206015547930680914265751084943950368730771946567162969092138966199868179181516438896910708999573773018631948722511325287934822528931647607546660481281672952647033313232041556509627904907117219811111722894640376526523559065742931996891755018828399100403511918816299645852132782554328805731765371442942344253357979409597759908436887980901600511942391509223951259701587316753113049730062952001287139780051268156138472118665479272153213158296052730447791582392314113885882571540045271815704550102547503001322130643123069992418207088139477142603251352604667396229604630437234060870291227709636854375632899992388441540713195818973458812648552247331521129013255290501334090783345680680590953310178885396196404697540128049048581888518161233564156142679062365544019531582596157368286853330418846706223911675840745478880342660020771657558808494213893544528500445010749664239638465862197042092900819521296936185396022108135882639697415440248682846992017438867719609465348298124753317958666752286604085978535284395912779603727169510912514993061995934849477291461468361244641833538251086301285463809396008793434264457915862174137019412999142112545521578635638835779098196260736210525922015052270298045617254294893582988736740596332246783799532424140764243852053862375951638011990563829245064910640668057688710757638022410225947847834980713022588613031946010588842094406715390996386011360103665882983069985847290001366892441544026095814964453184301681736715982140760880539188966355393005354365840013943022318418983774336555985790980652567360163965523568403527344252198514740075474367273455561394070546198378749102934798958090471645672280587503414085519746347774747546611301285292735035862237904527311398607987407480988468531584961655099834993669073607781634045064708384557328690446491018800020118780274405026679683505593168207836797165242482908975233660346506237170283058204647325136816309485264138804892231389858484039596843269898829021428486981502530658627698419972540968021021570695159593324157217657417343194060440547576559889167348938435029200565664334886562598336119214748321228309183177601980938634987062594297459760722112573929637364163441387851538511091138800628083050359292028754375378228444755854568765366178306485969834056490255273143344015462501913591539454879696020922323709183402509885996915965892562595068059470314919248996343032339852200897173776150972877248832011587802353698569747531325683715961780812961737977624623262876126098229307189817363280758626739965616485445122805118875906664082507053984096875024457984823437657474282404753262885451047810702067085775202981943796396254948960370013544893739584907835795030290222092823549337257949253001770512273653708025912978550435695226671139626726722233179077819944179464221690779366814893164387692106017493275421077791289242700043205962206510582123291453354159616868727242392217667966330154573907845365069027830412463234415066877117074484989120956048126493621954710742304037119535341998305483545635147357616445651093326730758600686490220030715148237237015616311376021524296240204712504216210148493398323700743749802602287762006589528258106471581801374888787679243942718662837565072780601889083748490024629904080078329356695644255721523269092367629434617664855127157818464119418314718265161428353264759918608561931573235347949837845644820318849959788643910950201446663424940532657163278211888029480648884238663468208365774104121768042347123139279966313068675667912682379291367033543994807052748077448409121696470894953007376073083150433218074587889039988387750428235342524755021335108488370861650394394858165275022622958016667459564604410716927473493436520656203450340781392504587225978689094909497666320186189231419297591422838600615335027685700455763206916056479383506753377680837737152257461812027821073597834447781473604368776390418438462850861875176723160020589836671906111203263651280836089659191063508221112277422473140247022191281441429622160350108297691375293030435743171504824085227262792924488041586437572054855145028048790649885152139665096937748362949156260133779236549434458876807660143743842505183525453411777412619313858429463379953728083501461873991819984018060358870197197456576554768279500676665103984300859019849752835191725862644104580652742640226960748976756722854179398001260169435343374184301288830222434653015090112615215055030177907744977874617647905150684677886259700505113484647679391158355064797955236065702781099627254337649460430469912580903915169689473577064245140283585380228594567394106869631892158151565298906763521445829662659110790552170533545221073933698488976402335658992335402709944662879106551962679475361971892500046969075875244425116045225539981757813909980587276779752243330782294416022793794701317876222426675801648802083663048993992546942808208952674669779469551064654007583779899271231900802144886774732039364569061738920228524352439328489830702292692186392858874502527362140119255326689374466149283857434609236847449730142664484555961542865886783099868145310707465875271233863931332695727263545066519301281185020612158292253415819114895038598867242665731970407551742630216418899031589667067190187858403337197205057973596053360483858473439818624618880411361845134199865635089405915729264267816472760795890597840213037615216142325343297365262598085291590722884564431214893803455900226606530660067360748918939647317252926971856675201924988656453897656041474117821767347256126194121503110974596778283147633492389593516066470302988236554733095805453839035472322161775042258251119305835670585485629429407477033524025679438099594056576964787656042941325358162115252970229817414117651662305967310495954895076922194230271574182632159479478688127489225285143991943020378041001849217564684682483785165799632771591534353907936137557623692291329240734385216703773469142240176514900998794190021951455672154971713418493412870287095440049733299572290488499045725403154403373868469577167673992555014934363182217127849020669287972034759201972372951392654427890323686124274601407865049355446321089915307796876099604110367121549227051442771934918592012256416748804189293552488198970492508261307219290277670738800011413360292300027755313881447896844976416424604859166631285014339628651044997536481699954842351163164626476331068711599823785564753936140768742582246934984437753585529848847208387044232461183357215507119146925415303958995541985555065735075671754020046794211808296982620950676049583598047346083604947882607823533405756944101884498788435157763650845012452782960298473963187810618411164592715321816876675459757456560722477734100904442061149024087126838151177272671434767846556422086203922289977700674410135788387474533143952543094974450935143294557809233927829918336466032857999566578170100209081885779824137783291596064257046429334988426745491484889896783656492680563746222103041668351709152892392713679099308941363934811324791026796029842567508289734280607041853629579026736667249001508959516569986488611818814059616947338153341077101966917839458146095913818642475937208341091466801722794887285271525273540487248840064464070683666827224044636666693999721058211278187696865575347048728101504676768486552443143636118692031712250486146694262561682391776609408711919872102459143829949174175555854045929831699831644021875820717144693265334230421605339623876379623750733475065858696510525498741793193388261177530862335699830080678099633525125676962969391591795887662389450012769869322947232689245838158526731353848405487553688234905854774149701142232222683045840902228466533398048025671201368685552966843362159953387098571209633139785216335999926321689522092968775895275179027327537510725257433725855741107784790034380623498034228987984987791722579378521553689170432123460712697081153278711430917028713739816581904214327468371487099947805129723429274275805124843599167308580411231559938327657287855922942720113627744359013047569406596414257021715098161371934723100195259168112486093485311393189791056766076372341236949678628568974416188011811877823532259432408349811912765591505695750752074746651760149276813635467040776744149755641002357748568345385537557991007509710090189737758558427308151649857010422951134433484496503861716564779267374839348151131136165700745382277664266839089537713539729996320872980968104795961136432634419766826012268048066783432752375795436021722555560320020003540461077457038683221001777970741632533085378810553208908922562560654904930519003346570676143183497275313691746644250908669528233509959960578495606397917442699204031822288573955701996411535872776954217148987788132033100933737182977796503580733207860631678747092087404557496676268932890898164744283685803559549863071358109352793254021012289411205959000706646669864116853953647587110002180096638637493333881013607463917417752834728081651632984162076111941882887431856159842326163619659787093595547029515891853432306178251547795852009835707347023054923100512673967980340307844374877593644138742526311150770377659964828670388166159444662788343620507010205342327016093571140408867264608589436104490904120166610291245457463735991695273147995371876993374426132527412371301261679787323366328317498638064793948632017619710215276133573706831909867430219080680289178635068297675735824040192994571406658138846984146080738422656655472414396617376309017717536662735412451432622937993522624189086627216201549649005341190193103805861149706099176168548641278988374402011483959610616864202121393088715760306327627750428171685029773584780261031511998594692777925887079257432541405107801872261745041597217435611980699169992542373258410982489722897865823263004257193643814892159427018168202445293134698997350760288150822188155693037295682996481594586173971524694172007063535088940616374417214616630814636782755251104514649260731884219710843909876963212377444456584203166237431022063367731088712273715596266986524111883705224914955232251870801020615373319203872237804950512955718278978235599011146199697644895537200065750373201684125304908820649954002052769427003365922022592741574299843824170918286461488812119895991931870931685426435294221916500349083302290523201224976418887447425592774922970911794974478452759889925228923804040542207686975533617832545201441796025917572657344397940182174392551664882664237575034260225371967487450475681761477490225856777562778938802815273998675235007553510094359946790915571641413936418834204904654293284481721749037992564708658487128127953466564100339277677670243811237205648358949514271403908426358716057369929447263985374459148347125574420670480648871480537704050640114693102221102662130901082580207230802036843609565450472014509846236315131750682079198671063764341499623669391762624752327428841488398726702871878548298337830092247886827024911407739456936031539928545954822904614464670914223220197221975196888773274708144483222389457729595206478600512136200105876675829319250538073516368269570267215171585485340394861462041381032027208712302432003116368593619930450666438634506992843465279529406373531718588357112616493274200606947855507234187930081820843457367286503017333207998400890792236872273553538316760080978184223237188188411929584142247649206241544028306854241986814490427948784394995182703990770959285564674340383841656651072253986442791108298915268738386790120728636631273223512103904562895533132322430275277259490862199183536493443971098664578238442431156006758667063145961820323470038122455783767543201631073375088960023342266976885308546787457446095593248706309219970788496154965636093846996442782195263177534987892786578360962557953863178286740361790088026459864357399641636896010665992122147264591989982831411954032807076998973862438670719331346460650596321632106925795580255135789097555732707530002623499593950745180481899141637035536142477871947852457509049339494076438143433007891534975664086923633196820989469575811613108184096426899256652783409728117821353099696329202309941727496617255446960526664066089863532097211089281895281045188749911038623832920524529793603595518238812444136091886439086026795398417428513279243353376663231925832268337648358733879618371173167143635521465107064587904752902620482508577014621957980881794278149090396464369004419333460605505796782030104210576569270667358360697637173770449469039410276001445714923273722783867814017956496882624848277702010533756069702770826570184992154173876788795652189147508771837328421807420281254414322024178215997651460797397943722064818586629906536199374385646881379363396016451109015081197123877107221862370721760309465764835610929661214906488877388216942581777833509279246856967537122665885373771835112686158215885069824284835761148312533861771725788302203898122005925817120649116742971782081036863972450423897920573998087415385589075501615367732625025164151615302333400944306282955697258579361391482175142323564157612487458701903328013757997319081554100555173161023735064380333000077417359608230259952148745315723443629227790252639525182521694650607038093049209676549488825771234619986362115011445643828179587431206625454715235624507634663240751867143309336250239013203696423617520107144620235330214197071278494714692414230070007637241729970159910412819635365065640012196628454832619768143406270519872028500397813901103825218467517025382176489823787286202551739141125891359736105231368432796119281895272482628231529344742728073404494561380068031667912182418239244468888621685193256240881193393425150911082807455391497884411399516393260954069652479218865090687162279140214034189040082932958824383648023781869265716757093798177358651688749781109859756906155983737986488711297155415684999041834397183151868220550636699589199107447009141415695559207825186369838606650123884317535309341685482199139292349622209529600561817374597307898355509331143823024028560518218815012142192630027185688553412822079066600260702684323442380984924043691970141792481132104580798651646352688157411773210066875479283620752392793046362744213472502272238842523251932799615916335445200935039161752139654719697922846375023504836328169610817502249197410359115572578947131027541543054836854600598811951520772729180092040565647742310942731700348350999258578667291392291575618487854149610179316783979181260112315730070877856518764327969416177233224581557059580405496845296631274540703003443870082033487252811768604163972822809769325635395257339389467173305511360401707753492453172661251130855861072295389745804732900825610937767399814989201631916987320127222647391543679801743065771937945759522773298404952524321135316791379607882416984259868570235824047900711911046255357094628061506341728191945799456498604380897873526530528623793392178835810124552290855297670083227759503474151325560219206802734797342527466112021537806287160755864422801835954119597565434344537291938913968928163123145396415813270645281461059486595568548459016506133804095238270501128226838273239729980705474444291983002289154839350940426165593110554552612099793666867347562819035161317185451046477489314863431557659270455710237754108240030878525232534969703651801737300398503387712767286366663644068017884434301287451290893630515527739950655966163176660032868316804112743572971140972854943666933169224287756137980913437358874491292117441209327746593927293099951835847707338344986677404091135347742274506151537471314659530626751391074595078148801050746427432882323417999310489759427034822744112473512919179500326048066439099651099976070306239303782607423258192269971199547335098354255767406930143157936828186414517418884025153814277741994877601425274443641155211879991504841537722230214354052009420348027655383424518299323905162746387583303123038548065406344147520384603323108133557768586898470709685621551289312175283805838516354566445815351857509382279521177703951027215734043935346911838030009906392388283651530369842847951940549107074347920112389496599137407345447897661839195508058367808327699980422345356633517647391457376996173338729672867096135472623763142394481542485406833790874469069798363530587583849014168395236668573924380817037761541213763988184708407161933186362040750691739431097794007851627290341601457653260784336553204605466548903539443874533956996541509975552281470493990548241970432786421439235349949861412061942660026978083366315513359673802646653225243609012963135144300484285353411757030278554478966842600856196561072631254890244731276530661654326976775460918038821656916251341894606790213859868211915775766482918303855734259509008664277308626320242855150748218824399908472031505913686177543100987020003277211335462940093516259025559521062911332374332169435526784311823341931619853409430226294107485050880844743100804962986610860099929053276402181356684985056365286526543072361798801406763802028325024955235267788182940737833492979426059612658451471428998298741464813121411598313513226006793060083215914982878184032367852821656408427944427228236035485400476549409039977989180724413278563629214159364236819315358056874195961262054700625496481926376926109958487908430860855421515738869573641465485127215581817911443965925510123187293104334916356379372349446325913641573753472239167864023615796520479852731323544651133320617607991711146110466273974301593370045514471113499215252292595516659732155734801291779997755002643710194432918356373921879622140228426069893404949470427865828764937624204772017863638925362364387195840576074315482808892014259068928353368366171885675939751050894234744037691665403200920344963480262507434597982257823658504611103967743623798418952036245901307887910587764622877852767804399699318316216438068615942917298210490436599846889562164965771334124766297737683378028366600905403469714703792711108770101278172004069625647777965437848350501738493860458914762308320076660363572262651409020433119814460488855805210037159980623083287211921191051933186587526476112063535020264158943130696480370875617279681487518192529239186569301407018417029234577633303244873538049349687884347496804204481154792940170924902865775791483149636825582897592752123180756967134010805546057647410069044692394019654559808436522762947144279324566342870919618513822575704660578554435337591764240823813917459189286239579074038901935414281569719817949052007567152648866940315501525237829771008043833660300101365557427639879851852025642333034688693163439414555478053476124687148906643352048462948931432501275697681269195788798104247098422892543018254439105768544756301672656220666823983598844861790569409554286893907663314024973363019441970082521267084027227095506921758194190300085488084406208032500290363470555828884820486978598779130006418596859724037009170965305803050925325838440204409080566911562173730237989317470573785940154069765633314723947173123294116856892970402071767552454396001759440416055296619748230385342089317071079955105376935166583781761049196029987139792442428435419940975535054220188926181763339494820502622842761365189113608788716584085247593684324886853557129136429664860802066425177080867216885399006801934808528133959784225366226964082956481662861507615407838125589673784335393943138567710409575602472242135680279352582478805867888580204339096491482679949884796274836711250573347283709139150650410609537678872794653041781363838623265849138370115050317596021903691238975358858160766739704611942490751150058189988705755203155863394427768394259310376216501534125660950582611886419265304819782911626604094916381515651527091666623436556577600650217544971740916436079179265243247573083719465187028427894496242140721759289629382254252654827115517227617953274626000318017849528598209298463912548662167046904637269042691294019738272472980327376785715125239384950552134332731713645189412534026543598565461782475856248927077446525150576139770451168617190598792179862024584646402386471809581061835329138006790448945557391175672904394824507982017559238025951291533231794493018261961859705633068680426665189689128137832103500359399211542668114807419129759795162806490965459875656912025421145675197631183422798349462119233984726719151990824344011568370153970167725278140428630739809612439875500562670591610707528044420606460903943443093003273114536444847610917945637989740542095355704769020277783643125056807652202619888698759561924545928999593173190025642030524366470261466375520956382748153964080486337840249343939038617967141558248909867086422623139951910424512039132312567301334313517927125982918628593825299847326719144930189717460424775859199188808999821794704298200800391797472985542441597557348161811758621890266164630247321975542990530276735560371010414925842265489557682148745364817594314251870642512111099775826723950736955910213862266917689053410308669337503622279416202538044030008889321465550970838413785976014992693234707858868626302774844609035235161469296394318464280291022737389293332203413222667444870504613777215627121450819036384012160868926557843877475269829267979972472753781716367112167950567283866773113224459675492149390716373907816410317139178800569494281644269548703093910368600275740008273910555070099809900762449279386763678358642554438712392074585872052949482915619501614337922813658027787041287825354984942951730145226950117767093007140159802982505594825103221736391321270595179747548608648374463197322703440425801311341244418502552363352956040054625954906402551881091671032944790447607043736031303976459246330717677805384139653175626770991490294507063989005924553587780927806423437785234974591003168748252927642015535978439450194949935507996803159217141980193637600438030592524128976786449004897616738120400468804306942023652139135354738751204505311940380929245550845465521676416801862819262965475516184322148662796909198883540638097717349030212539246971633321384149034904128975475141152333599464821439195315107997456404809841935483928797909341721032843504536361340836974982228366506817782035138248808093629297333701229856599638021126552352709084568741098704738974900473446235395268710076822472423332256484852611112386248841617139973046692958862678141916392311565240362183532560392828071369542682794784441757355967336613624649475716706620394221550065741673975711050271922018333584790473938375728877433694298874833331503714527173957987521694490117161373112227602590922206304144750969293362840275660453448589828312387243722881463527035777726495329572278709888425879802762677231851441958903984173193254370123609509623249401899517277557572317759599095979301310920169811483250189209774025508427559395708659072950922197350027526048300718653659873821638139269729385064280645199622504917859515470083585390683799431136096264809318127740038026920837995160243690843477276861264189263263491800984780197864836172105129864207464445894255361399514940169238268283010706986008001351735023999994956891123975572427175541211595566812422866153387812100297940845363328563245329431374626433141561601600125306888234983479212130707424750758879919944570806012900425000104131272260052188368393905121438190890834643106039925298641708617632004072892701602320489583309284379689933871985795001703870916104710084209424716826619241053126051868643043532876633271688533793321958685607042618233877212422117243513800770468463894514797662180243875202850891699203402855146945854794483411183919245815418092660072767792023705313952495761091150321609201770579194798926666548550211914493218132164740484437177169687761329582764281834303994618489290335537638452464576293398805591997922060471690517340642068312540896654191613665310799287133613462641169506294336495638300232949069170970835338517822341423883117919971137182121550662283631431836261697903070813283231792511686966512116662761146903672718737483103861014504846088212537852265360016930919989485002246769682332236239203581256395633688664041913587177133142076701348514386446255072889185628768840831263001825723699016850838376628888597570302707346883164713715911109710638090101846330661428993488286374204094177822645009615784050571741152927194006651924664017095217980492786568776729865592869677639530581725486872298361865155199449088216623430250849510340830189502911737938021880221072727592054600600187850323737316308741923364259727467543944193550296171394706271799920916082702730267326853267239362622676060358885134479342396403090194148438149329757457415279371993003573926552983308092063329299706833808824652368061979287067077108441477432297415814708106495856901749843210339115724991120271380013149489165891053662351424511273482065007502779027291682983327546109592666730536144321131882190876340607919292565987715895523908907779025456316695901860963365131830933713924828962625987926779811139327281609495867201583229408223346684382139612955737293310076379455526472526958376461151981054590447618464352736708612005482103101508686851308343300465489074744703583896242038619351780457115904011804467169305360030635247187053709427303293552209129917106377544005602453934021694208495603438175901586928430805048944168525755353358017029547006076729254145135194087395229901809643620084553647066613354535981571523596250025099214489293641413587882149320276685678094581605663662965569277687449752940360680494963690700648182326732952688370111667827308029315095296301940369035204815253745270030095819562232007359522536709030916340671770067307492231531832053321668546948326346466303002776326170537231120968268743805565681847155307320671452066088410863229172866720770685766953447966038631037221569836648106950441626069169427790748603673176893020882499182829929094720734861365216852681617586304291763292007492645421503616271130607314736026444269609153757976257373136691525558967514978860019302520982009518106505234541417176454437912815853329713922318798416969989464037496994111324804171560635175409930257742991099459931674303721058518863077271449374834409681730476740258021984691534828862060386539949927534136554222878282040840055908280206341964662296028355848968912324711676029166308259575362158777415883391555382325870363243713577455009139304026544217820936337513834555175232685557670074453469333054723265380681048290772418120694025007806496128689378633890725952548221947128969948515405187082235453406132462900852539000602071919466792549186241813978679692794341951967399299096589622640687055209882500641057803122026136924730578193655969171352035777523269628910030252983753327942965186250954764400947525943354554321850545959013501679466935481412140815106085194663018043428432702120244456243717998745718472132640146473486690076776045455929517493081648549864819956539577008336644590368926499959551112388820911937185565493111669219392710603330902750666840696414915530413162230606886888968492969528151680033848447915340252871860193837854687873408830921802819033459993171877139303698408600617956338415630224559901824327785869491509659631138205472064265648568480655184841706693906562187458169016188441015285658163726125820438133893570628664542204222632079627442022248753013228588430403820678088106670580035788956414120584592711507126495251233015434203663926634609329268100385722095033970498893641376003326189915383939185417030151467671714766942191118731719122085371861627678388803791642370940764259971318323111610489748015881535351969749295305511614820217681803287706308388342968606206089306478747893616949229236474394634847055085939984441536758102009762357070815321638632399208500586507499975668335605900701595231323787431655060055335615984129969510146859158871568965439675743040608142242111473552248528305931306554110072644528429108803392212717922481945100089946092624396446093612853282628660396256962369638386994472229951542664388369264682875698581653294585753248720743640780716987865872550281139873911841426452318292524557859338473522003688910541470177277620279562418275291014445506252034067390204836715538926447854706324270964033594639731520024451987792505313918728441295948999953315247143769007419681682435159403892615344422347866262987635484544209608105303037342842990034228032343975060224774456441672078560205573347381316544891536984204983363127064982261465852596805263329842825553563526804339241695642845369439877292181324835053837663723452706550438829416707863007398307059487688873856087783640266217739886368534340674700736969658510133155525733323224175182391876534726915761569023838193736324081614620348628244188673680744701741980532708606459655916085995561479195784906376760520805447352077323131141944870743383039034628596122183987653462976362493607117742776889442342981539229236912729100456917619120941321199286389400076266646963277914826182689073344068870828172784874957621437863924907823140617045819464398113717062152633026590922229598540866866051435231585963984202247952550621698796426522162710105584918492298534921537922664281214494394416765012758188125557701029162966473483236779984932933601161080287578473121203415339035860890342016097390298537990515038306804573016372754356760517723637546416396529121725656804549184165863601972416727835012818113779837162072508234735469228427831216264929698294715241209123700851939329435419190808648192644789528052660807833732370241173384998457285957576775857241070080039829352695729554761363682310103020528522197451401798992095400513308511437967551093856122850472799476857686880441413621680328294274407033621110829882139383371034794215066752055914473958080568862164421817100729728834511922532686203971328325577467007615252516118026881447004524144659634257910985496246374112118519238586503586195776127120467885891283716874752156293228467354003969944212910325041155645063914794575743245357062063071698253246564944358539544106553482840527094835293058216244160275115572536805396393226296312234913393602153150264532807689890266179843196090998080605023626726953625786156224051428381861698287676543706830756601390229698533236209564325868838925680180908645192783012332403543414619256365636734290555764149850389606488686718518730776871949706350138857928322177207765260528844601145182110726858454006294165718418188245658466667837515465404362160818233840235310241580157072474001371475669810822002596258851516814721255116236481469369276071857169822664928576925169735745779915262842490088993437892235858369423035874775130762886777994131178500743720239200101857521649752207628056003530130038545585221040577651410157958313991119161619414682580719496280141826899685547675131622710324674608861147673740229620457101407171229972248142185656041876549874571329273124369203396068089937946180811822472059741137581078202981964517429451704902178828009282981126382622442397015446846224376309005828936088510156656025216116285334712132702548202484947865308043077762796337897744434748576364719731593909550635285046350514960706514296505654882683860430229333919526047420068208532777812889677326381758863058792368743514923189686881216959893468560082167512806865915008666829992572726759219268818133441591564909466369615542392429360355559525309005830107566259658708388662009298109048925772152114236807729821685482417857496637225211041029390989810197039540914323833219714670091112207612685354389334822434050138499981744693330800993894986164502178690459422573584486859887539248018656503363273074758111581077240699315996489211376636422083050645477166018380420996850012943845542211368874712986523221710888565864358187868955768163909743671409990255831513526243092969986299469183057484688768795604993490753091441980578346012159990608777428629420906953285442148677100534767449921790200262989698714737865377421789572444375819895781779866392917712676346002269151293985474735169621701425834797974129043614769438702238027027745375358439270257462520053875126882668915220308320679215565077714267561626828421531782299685260575133335424352101389260780549029401658072039330692694359742520824852811015147113280394156197923894625742981373549212861802695700059704733076479627621609632867102844964504819811803244719664643551374511966084133964895432700902935119050983599825958486290704488456109101408952141088951439919553601138524829005777515668193832894616267464205043006106657197333880826465803980183989514846989731092061172010352881678702628226845115391384708637832488592232052243763606347426615427764072240331758776936952494992928470710123455782118799155566455536515698156913055850939916028238810331077968138496825746242098980351758714632012512555451827357696123420524515117672843923857741420083417109103744659177104187678859222586864559435822405397886880162647327836161325796131313194146273078635654857922125476511108288717392731749629816213226924266111583161810989975742191000880827983898659144621998332345511589562887071914734814073969655262238717741859831418469676782359672822991409856138419827020697597818455461286560738249010192340422657117799873523436911280100066598576144929396956903639513952410104499191190562614445256303220816879936540506257726263602130841238036463501880612594026861014355321197532444248480045138548959709255879239324171929949299613516093203220397972303386385617632354445703772330237649378397925699931755468951816262226661250108023650989307402407356861088258900972858228792250673143730007723631409599006423398280914036789070053500520235058487785134800401460554066393227624521784767272672062946333908069473693593474504936513929450064012196794955862751723350747194783953732647191266564359696333681057471995764829454470102105098274530801773082593541392736014299912664435681588478506016520584593086989088245776541166026832901220569393602784648414150208156857504720387492681468081701735071065371325765318801797254162724111016899160563896331392227906802092819300721779502405272252780107073647863034748285560325139715740089704272983630027663773240868064883984847597798237135707122590891691563050086885794262776850968097511738007863221728366434502520402204350516272749918574375996636765271756237080446692889693459141988807946037980803210986542210246337522868185471085065927758687584912416318091999349260223711681050308379079994471175903765940243729706478260120884392261540826447660239423543715828643563875018474814702305140509498814522418042955943793307466061284157998478719018129954255503306259760447783766931046984360345855638149988579282678457458248859158321393760315443595340686634157952477639827107787238778565637886715036709661324747166906715978589815906801797977414248913339024248484304448048645537543391785537468658316911248381553772779477341055397827352356624158483536452414481172457308564614458563064863987377384389484249704215333314840584393570650250070728617883371901782514496026162063324800920383198862032012225347980233929401107589099721619276302733330183416858013262799449674364201046124299098900832227856082430119667302808499906723656958375615817084407799344453036236616861613205777767379243862173688805935050201755674489612083817510983016433053192831363546510472342563230605739003339486198162742658354473599531871302703103777706626584038284751205619835807227295319980234113189502731405338116607915796604795530552698683563762802796044082949921163093056738633685862680974471954919095002338102110431530843390239070276828247905254004771750199547462553732566789236394849201151640720809519246417804390615106074888808562002184426429619710600790626688668544731400210272044074630243373225678500523316607425454684415776237038362186192488868338631747763548603708094356129621765366510554652091676256506733025069806268772332199575443441840560446053279858854810044287631555550709927183283217193643890646933260907662515608903310289487248282659517300261651407519509099057529968134682145603551520935750925231862841918618077398314191871560219480033196908403559459072024886942339581485975379401933854212401079375446815603717092631706717093364812210927933760009437851246723777743759441271221169739302596942048239320858879998912402973881342005799452162872492550482740173166194639750491348427740217605483981669844538451095032219650231786221241137243211925520243713129900591663588999456397299920223834550216690561776370890406883151417713684048641875772884685677786999605550797355441407631374863547887586837911722701074572292307970080231430504520022401754900344051592180625671746093343373874275023265087920726316767287191701085928730635305207441467791354938518810299708308531412887422779604128288057502011047788993021328145408920330342079090940700955205035624649267742711298004232557336325423325097078292468182682222726985879388108808031101803312411595759923340009755817799623763446259656405455251903883986518430858736778007489138654759651532632849930423382069743365202542706908269708265896193540592646026099599280901422455981440016981378295542457596813547206090574304685864664502540492442619391468888297072142109896466027803620697751117354565095763003211338282016284065789895051528003634746647461168911981179305731325180547751726346408391922202869322882721980522799372539121953162448870387597496407026479459903068387823603930629579288090921430567044631157735382735051188790662015172332380567408884986746036222359021056428766461232064506379544900781174459908265831913058108870953242185210960931944855200144525041847063069155602569879743724936767881269014506001266882069698338851277086231867727335213441827765086362864710524976810212929653587067159163140732681219629280274468131342644357471038351000512544848695318171947901885070129054512861123620802031180434830257797393948678335526513302792329208039586099922004485779440796134307710160601762570343797025853697012856783688333783069457809691054199163187238572247049257506765277186933254122010619902445489363091203023614659907930282885187697638970404896294106602328981694459524758429702937015535742374198533481048943952504689370462894485362236185327498805188125107277119265494642981022183851860544517348101211641773988010595770840974642900936813705237828931601584366553945091546960710978769958064269417304475885921311927141883955137095113092125492538592666028107329340152031680072711629043453773021460122674013377314926237831342123727988192583735372951016363527885940024275100160535135683050366805056273859469811295264912861788857367393719859776010040180412744666276115275766620637870009658019978204342164427912919045263106027791650306624852574672390116176591641846475184890225721375920854532665259045566417438934978262399546368196815576587744340003329661495073352210556391840170745101394686840890595439345280161176773437725866252903435143963516758593883758780104841389702042177485089541684118975725095753331975144973156343057145615275645579180723425641048528364084449168940527940885999941076702111831219467963590799611536885244257385904051828569627142578689096175766383554358126066051882067813988743649810171161921344769027135279347598426921299388519359185378556209253458137661361331112655507228574422362651784562145129648746670929201816406397180668927142773170790617405947306792519105923748868879658238505297587007820115618615264573673703491715310627420504449291864713858955463673033674423709324627383644081144306243781401547576210009017084073496240528219254869016341144407860625375642936313530538558629773401334398198751549537093505379593135208318491451173453861289016318424345969324123851775052274355307363985640069040505356795587917073765729412073891228367452042744860636091052257279977378493859347981598334938702144483246100469044941219051774256106626307782772990610585848812302303231645776397975568116363483998511609098541223059752648268724455370832185042798711977097441314455785262623786452380248222406794271095702185356787402873143655637345391632897999999990219153601636499867052377656169011671302467183267319258079589824922560894389888571723693141714346774763717705434833773162320191025340599954468757453306689122961782536622911504566013874029177780802782928295918062101980773119899124852697433026653038923559733921605445582765455932854098518838000199347741032656880679134824413230716132850493706541589186937252425545715108229586851252123430504706612835068602162620931752244923479374358146049426090499336402061576413817331426068170421570218587371885954004247669862875809252673416255160532572293819329595688027922348915046189380273645121300846163186453998010703814697524282397407458743824213850430145265557412325347869827999938338042973266912185271737107820435330356882426294889776214295185340693371286475212887352536245794020273693602409849075277110927766373534234418712166530346352855110051823233860492439444380156894514278376733137939433152624757384582118611252263425647703142866229143327507620301287943605412078818707627626645784520599900596841071762760174527298711782930231218338148826343131060237238457799856760638691631459080146208382973989334479490823324153701992183220438604578350763678315264700317427746813998903802077890491078368991508805439390853767045179085330821434242853049989972977579876059686931651184137655941742401301301611732022645461412894056681497637115491764639582740754651378102437754468925106532010664344345771452043593109481077054544751661328976194978742253474375773844399442686499002493581037818999328178808638989391264461601140913756300494351406245055775284690090581402887681820625095248804540975169408380225967870025868579032101057470667927012001172675374925879798590013191813600477505091151573974730844531568815124845521933065457454174065572740150218951089754604580909689990618329466907754619367725049453730222944758958747114865432106922032600941990142303446941534508734767318937796430100899862629282229793496240744876866126848933113941151594475913095133541728257780602057335601774200746601671801299176676342697896454025543520613708427822282041008688999806060368851299917708407041604987259556185042643235533023213643609333064218025067693904548184448278440930293619649317468649729100386641206792893627131962836360618253556800251452381727292708027809067293081452487655883762400882479577906036084121476650634179121496682614971657220513278797337071822964487192196071845562196821666545114586677624907529531202520574141452306629056902737151119136581320141650471223427138579573927855715970744371292443662924572395726059895633784810966156200499321534307956451891936668689872874861141225088891637002280016300346936473587402266402215184717105598307187058896179118603582957037164395693182191895863262782736185135648828009647041430806010228765251286552210227777927125179415272012901405622640520102376462385501270483632813775751342631211064702914966708879732517849284952027641344110304671002516696370160201822692146227817091869274429252876686487978362522325807403509009024031689389301833056172480850779958256819310277587244210864639372703316514725634703371746214099704185656336291746541953692181899520397650185412912039156779375315348131909231520479427325729485229442767563957160636993606679464331760538169043097992148496092540980525069942425426866644253733885131038658088584662517648994114167345392981014502341643314398126549172196057134248811217070248640271841178726194598873823280572379187326977646018865683620330382878952692032027413419674610195339474444579818180635664722518722090565773401828607830309028424419238080121196068007643974391942178204637530584986663300277894622925678677905374110668707461113675177483360959638766914092048735789362463549073767993665709154120379777488943869044297114945059315081961885739070359917775838419317782424280837637591690800060268650874393239804280940917007042526222849886484349954271887354549799580125068296380478037441870956642669155731510435794181077225778847513050700987405680465703751880674993744730012760351493134952677767328377488989737471503954009104818920899633421708016112267928029130297853354928653564468449886693706389985918628457521858022982565338259460339471009333381012523092128756777018926994827375260136543311520910274557653854970306014801978586335109774836070503699180651923788302175444523809458408903900447744065936317813265402480208733321662358133169744196244747882136544017958602616295838790741514229406500740141380871881993515454995643571003296204347265506781569427268604283734929147383467334963127193459088828808917428339911023454623203605702383221802108658966584610270643922740827542754520237741907674511770462608096563790317964828350889156628058834128127102320313370771226058848225797384234552316670387110684460562305231380088589967693443651521716805088684424297821588829539364820681833958275683932290854755244070549939473681832118256275768881999140841783757565840498797737686110210701146820867124131770149771867120455292393675576572984164144770898506675873063913127083114108574830141482082784183533945562311236162878121868219852747757127352729027062011582233228172227647533714097119439438234943888623746082699091859940772732825494216827913060838164898076883403167556121400743881726628944855068690820321132126115191734541131900327719535055220199076843875723360566150153149493535404497671636626578786127707073737886160466407849592376190749571192443468420156636494392914642367630625609846036936616270728333671114642995072799660660701337800446186455921628054966938421936246530067857098192928106097188929570712574212592177629997445917575672097150283940735583509551955391938267124763250751197924562487764726736780362028528528666564158170569652758834448949670469327149949130684380668868961604041978588896106257965984065455974514212595537507583636800459462955332622674566524192474140938842290938442981477998395347068309519025623680907580575635412921242578279231626271223891744907984936116401168251475504075272497480047541395244902446781799719891932110987350542581026920324216268434819472475198299402329941845635025156928711959203246857617568160503901113150005566126218002233649103556268373486303638719815439235601696337916620875794179941058732157208604245417872774829226837476828256582945143488878814484136586418373154391760571538820919743530725083046056165365732279412040499250528577264766566858909300205906678893228493226089300336764574130773239675344779163038527561549190108991216232081756501198988619933028880893451133776216221940653132302527415676004102406443488994921654994764647525034519869685347162390249460433409682370024875607211983405360890740210271602913597961882123723150710561610131130485560385967864303888163885182224698702080258208119439720529466785147615208923142120553652300682951876014186276598310525388484346793085325939217463762787345512758973974770464997659028212057768327383924735569402581585839392379640141041300386675983293150478474466796405903884761713824931661691048347111903219406334321963580930524142423673964922827845466020025243762015090533612593091142793703114458564895254544977688455628860083475704381197122735396583854606367444337921678953510253178995391661934751610702034923935674010445259522496741882816527172602162995411074978443822557997146114990983205887495168162449942419552627048443853301490049543095617087147512257541238441826994979473764201939622922542005353072150707781492973850633465510386490772650608139581370793301596277463859674191867931613388357775405835293123330950985912251858510699998196808290413414990055812340750633228511675482074561560227855972852090631526302763268650869603556030497895605383536442159330152361339585412053974524288011475778726352250415093627548259903295059636269893793206809023469200938212697442193637819153378177204519998745277949491813320609031223147015915558256539332731934571750395570980994217740823275024633550836820487473350131958491026833335510625793725023798198575410185900643290475994923639566500910693463954096632090929386658961849591480287160516046372099213401293436748386991960647197163016036298617035832434056101608715008299607876948351783058182211251849068965285150819854186652829803184940215868298595862421143340398148490448275998686932188395078552703256719561260194827352117913691735350048731899235620744084813914715663421790710186875188610807089119952279746019901689772651858938492192913611813349010584006227842172325039889434878043647092693785377100302108380303675265579427429869247991385236480508940913226234374087917578833514363254280526299166968383339323724039138939266464439908797342755861380384536796853729525332237886285395728425071141534354075646174326336371318383340828863335934712105338222322314012240976859312915602293237176759092817588304805157107459482494119583278038970040987321815449342137887861383422772292419033822643914075076592791750094067250078332989312955611917447577393458880876548671090666241710470540164981905973917324526432803274955373644768954561156974927980915508823789780823505086827957367213423967397883203359480930912483313583032249959705638690840558544130778713817516484954140864545967645448005805926848506868754905895114955223580215852869831411493079485810531758290086773107105582754475505115560507215207994712107553363668479020837533387248229577179677831923171722063733109829525939800524726493152975720140688295607193955311182749330495044367093635713538282697167393486244674981797710140711393891330748316497612586092220333208497624175634515734020706354193885744272956166838331861428470768895072517275135814613914173820440590111328566954202966508214420860926804433170234927691262797665800644323955389863914194283531648073142866864721541966683499528051174534100078719676788112320461946399760769215516433853189026988679802767223601661761111360161215376497685271329337763433887273370942230388586428625351767165550086883457212047934105749575250115454167762963746372219892664178970524652111944309722256515700741782215786267101944444552632493484284347387941489005791017187485882353660946415038876672651443969748768223864775477546547703310303833373535564454177994722313837373476341953824837016287703318950544804919451164729706922590945226758586971698230226502436812389948572297221112595062530827098907509221498746475994846088942123543335819266751270514485243154165929107786677583548586156219802827708564280799985265850099460088290643556607647207975956011912850156367023113661909313587211563642598281638243940848447852130304434885962834174953023708210977960561426053025467037361457183155728330686423239463845678741791380091314441105908800745781435030393097503557176276004584654146468232962073487460406683517765777595766571852874059177258910592923863543167334113219670473990802836907607862994406908400772529752384640122641426900672860700001318425117938270178704015008922013122006542597006122501277820975907505059082118444430243675803461105822052335439376356397707439924545031085903070626592545445456700633124417116501594492287033431361564683130722115433494207875393748310345415849397827223356445108924727311454495314572036815994798149461132680753897392094672433169545241104656287466418248838009547967061046857247461096072796657168370600916348535399479700579249198505782752401958084193353557352772627534324626110056308529639679569674174273984025010052263571929043372906624324247423470262625909659939316768591322748392689641830272146546675706968506413555538844672741824110333597923698401749137467211713346942471247712491324130149680117923732304862600013100384245721251058341856154682575928107533958912703660804150034651422770900640329821926371697193392680837142420782010170751962992306216391830204847328302882585939450761527558885553704169363316682534842820112327757991648140737583888269938592154647899341868046832169387850294485152628751651228912089124696933060213715668753677476617900726128246522416841533884185625773262949145671981725986074833729447698580255351174072129839015090878816462316101348282459532667680545672101445299916782490353773421454912429475736404567338518208502453815328785614640891365356112700553473480749617206536242494622020171577133196586131433183952566738545317050026245132278935878192547544680971671297111742358312832480508601217674544263357076086915332905562867422425113883442019275224967965614438077427950733003314063562473424122804969351064848619603334466583954599666481402582239978823318408596885246507160526526918456704963713912021625487780974896407213961924327142109496739292806769221543647095837353216110810131153290680585977169465146219104034290276951600662070263817127591700253826499701042378536400958999743343753446419990785168437377096623702904988321826857524704266231100048398658285535115950488584802552463639190897549438758966901204490570145414413609215043989919882392580283604080727919017883136321311777284436769068808187592808259501768487510010089625165734949846272851454621825367399853145443484365955601927801068782300899576928250472412048066225451372586091097486832142604078061919531242788433291193893133349266604435223104062017432997320282918899313136997449465597744034865188938479398281235820051487891677820211380642024804497819266509189481626840746321311430926451860685806356798038773761928286485945634418600419251070282619118649979462230968922102002168561174227004032308144776701288607022071466567495289022574430379816991471223859605824853421769672070128504050154212609155642738733303937321292370142031666511933348634318353968189909679771922942708287834328904000934139414166860688002922586320532311846983833063731238595085126148655927219803338155227780872413614882117371598527845675712245866705372572535868399455312001895962358762024889944103285474786891877023798861747655130020586178500452958912428227186933805309898510533558428499960264225052622835052569851401363451862812304126733156643964305338722236643188411901118477803875010732866845510592301280611731464480221122353416857811149879773858607981943701581791514083719430410575458973268078064131416964704850254610650576959821836749140811974082701333299608465124334578281191849819228831457390422540116506858573111609233247446928222294732136063250556065579857238701487505338656416306372829196415485925861933860220057650738550070247784807502709199314602788917771498796709329438421875222275223096989137451867256441278312216236751364640588554686440283811751345889595106113474456471323893774843595738589289801950417924368923178883533519280560548785025889707132223737177627975865326308326463729768522009724301615599814589893854851829650758721187551531541394315808219708333021723354816220336714480631889432776362755760650300515020090334979930592858367133082153441981614683282685843406187377134704474122321593595873109115960347625831017649991407440196899221029073296066090347631465989196467070972787386628935423031512231591825424030607797083160301736577242139858352061954091594749129316649041323288470412396796163175175303915153152643595503248917199453925489495134317051239017499658889066504168574397543785253380606628238223081710743363588834629377780101612204042769803549337576446988152427169420720090952306111766120397125410702782611382993354420412246951732055381321790808310654490491963952243678624722503895558853206159408448035830590362334420406860964739436616695400472990975040137606048384019646664468822668848415681079730926129124588568198792588473063418522981334903194153128821491101157688885143617164695874653258906763295129209049897966004875481651188038257213046696037850150454914679223450419170402364604935394892935622410206734990428069638221705217711762968314819911874465426570851582224511342547445101963797825562553541877037755641425005648102705763687934892646335775194419272228469839172744782897101150422015859268896454974316823788817248884195500446964575574842763633784446106298926672449012451061915113620337836537047028812738808590668203642588405232670421494441077487271030458717057707725462469184076385799514709701519169650894962234824016981119310387354142069386624134340013364465250552240743508745441765298927802486270053894988452779672834416466029216704508736364959593495368226401334171168713106092850954385687940928852600722161914281161916320104048694510840427536598976025318588863760435696746974519965940707554720903726417459267963849567525873628931337466131213208567116443007126852573466341016468567813336509035387186686782329543939943885085277111702417144097022235092076261554668610903523300989241339053316947558287833743175331551007276903230912389016291528342495111447664317122626621218997159313170871288245090572993178474724898170489715493208420362249747412717006910624290113694719723779489581255882792400624219697627301801583764958416899982205279670841500429270135541807869718754291156807711940761569524614591825293191421824582398254424340472059512979532694305986820373141146171518326799034824495294254028394568916514840019499348230863829802575378270046120784076309699002650688882007716790900584748652646184741976692037401901067330002014165613452273968700201219379338004437894488569069421442999190872270469238369397380418821012744477163617312726028570040048495708704675963980777737492456519442966987992774703818435371016976831960295851234591245798240873571669177351999478334050609043256076965432583362848860108184738569787862520306692130351106293461484950237136083487471067561600687262475886904819466727373232875682726602479337783353739887695092458007362726220099609452096825821907133313613128401364754569237501731130135017570494713366736947234764800023998219924071232091065728257468842265572820169519218559249077538580925688605453668132405053459111423078207659741107778804525031535004772464952259388640311275703058751641307718664192790550657329895774313863614227185633837895101668405470944406200592821408826599817018298345854319091713165707531247961317211225514872643364079382886934038562946399620961974898685644967142190865062930676681803320426236861849367978203219613891729193830566233692776252671034111476348378000108140484509395969024140496271521733742542754741486200172984016908162201230807981439335138867304853480120371281583412173374106257540973243805602723241961129350928546875479088171994700175249446109236741269167430974291799023599953215111505038254089792638231501528192944342276886424754744895803637664189569141150686334286145537497274660461595439404419170778469743806945111706965776002216978523975390313141145596682989395343999254877052549297130647501200050528732671580217597949161191556176308575237971569796480412787765469451876549018594606154403264457708608939526264528731836631662651001084404932875375922350565839098656923610659956689732111056810888245575992127828038833081102528658640089226952444023891025286182216161957299971063098192474933995355410637736424444225633209642358537773322605586277780266804638015606890183779635027831469564507999965067622407558841268540867802124675352441712207155974637977002290940489269750159576263626406246192535309256016443465825781678971160078595657971087161207836772828648754150263362241711983526455216440833173992656069221705291683980525722615419756888815531475040827267258876527907302769730637428640202155988658488532508815569680882462928179987030394845100298594037277380945029828284887329199080561031270787905868692941019373748996436832003995238900268492455342265666997033884190478659142688114686909740738830300797802369608544450706081303525729361149679685678192246617534248283431515478554236690736037141068168438001877128057756528705158389413155044350049112254292925884055820725421314952718123233890270423378603484068491039123221740822973154120958268445273605560988709591001701575876969389335294362065904535551703753666095698317662085827849344755151381797703070557890351465645331888889133406277721125706851300161523545381306062326089434835035574454556065627443793719462505182006941410733864331325537236283576714579448069992129555907734815199259478250722733705387809541670183686031604401555799051972490758589036741738231572240888700563178003727650764126718196162774763663335059274477510260862494961056655813677261097360237017269658692460997712716434960868607083846882347034402505408249818808478957224793586066620218352283972615459375161229393253379563362982544791325596420807511924875299203240672877539156832887367299836812318115859111837850571359156226606329846891823681111520051928129184708972310846552632880648006545073715048469640224181689837771141580347250050483036296203269999578857525836805457972741985868398022746528475111129600004873364052208049757421060749565854686429570371672016119102489264702225349239329876357788561432234602551034952194555012349029642861170786763410749058688902760333194988221169786689041728665259032501956836701385839826682150400201292391218162906895911784622778229744941429741090825218427159402091890410319890302850299281707625740334476552713854904555492083881701644092500558732787352066017923633915218461590265458678812360892179716647845732112027364666398676401799157338930907593568466627636059447161964044797259374536559537707937267883455120216003603130824956444687927605744154628264747082624581787191255831194637314057159855968987627748047411867249130718317923587486328035531606788204477332994445363838266530608014401250770617745546851009812282057375071928695464924018464852844889782924778869662761703571323754977699297491262990799815890138409256634433500857424625709343429634935253099005778881568909822102945381009910789627032787167459815819230335232692377861867678521154654094131485986351407639756675779612662986686928199141361886812128102139830604219955893596050834983799477061353712514448754540021329818318479125914498715335530424579530483222607043825309145883274847085744401528084144462012592363570763839235453030952478920720062909522280893196720946719825529910744396896838303825178087688256040304309347060654404677070310152479334364848848059255851203070137088300057382501489509137550109289109670623303784126113518305061523585834674671066535459348581542464464520661009735507030199444054232247126510558164271577416668425335654998760231801395884295707758056095920073876820399840766887900412048714917069745264196321182578877529268298942506693707674516933707280183819422220326507306862855982930531184365970245572932589865141440236143844957618330421508038054893244201134540086645697845030333642233519100516933255427714626870505176597526853949563221874719075173502628515964008611360993293400456261781852536806850194587365553835146447931487087361727006017281569922080255018554360650648063207385893600976533516860064603647864067449567319585565536120551529521917107819976563042426209154653451304615772064252598754357044417624005455994207432404667830923194246640813415498905213815889218701371226099322680568405723001194508683839065595141803245927024565729406348568914157263093362544055201051500223766103143850050082929672879299783435966823421938060577727364099829123251564941400476768563467704580165715352231261571750010454960206017890889993535814936381448022883618045430828249618158336010810410097187577902562100520109900324094123936192022867471676960319438681456683347303559922627319861549418174474780466354081021303266595396047465091935656762310365067689910009228602535404580030333115255380786150587251680943312105440217067296080867341747799643817643198214842936109055141395850785035844588623014929556421506058967155580161146376163856044835901848786769157449785254519785685328820107540124755706651371041071090268993433598920410296771632878155600436776795023564879336224982509752049761141516466568825458172394156019703050512777688342065428246676807468728562697113340563123850185285735064534561639841860782146494675047336291915126683947444960073329131351996240875126553680894106490917076747227257877829768000481110173107406507481211662398277089629903169576056886343226073402266857049298173111809035369784584332652286882472268484227586941095876581042504403062868849356575754872116806538443888615286958665213332208661441604094294201166552181611754676158206165192406531264458251551178185454530300966051826301880032864116997115701397600570459939577018339157451031041626965373173113103746421339894396454007080845937772007232700239998684835734455879580347584015570980645123288883368936774969487971693766745744516638585404153629251563543144805281191863109289968219393100142918439685569662472701194204001146838164402256822538977548595370514246090592565637083250058521120953612434173218986577061652862791959227152571693301201861650800920302814766205164124437986110430084273818671349649829554737937257769562342922707540194331016232014614750144619748249197757819991489094002544613390095225342534464929488026420070937122545166822298870015501136940311224270985557640319967922802897403285013541840194876970031677682134284826841807798405448743661638342029572618851348224449514187332070300313537550800448814243326303739687770127759240236459253500222215114010322562695844315034458264381362077802299861628193355395510048730415420948627074799632402037902406788447047385095264221037879496928127582184672547488895823805459180055301809797953613235052381885682251767146338309082068102009397999307035778974406729357812023324459575241732668298029605724808230939373143883584969916626677858929790457825478076437302090389620961402623765388651678387832248553693432703113871234129219877572516345582597197652379521606069024720775308239176244518907110624430066882466876335825389719764717801510462959932500027264724461002056320122707011347432652306354852140760630451202960549691475155403740841523615214207197565068093402837634753851499269427974592138427286422571237699980406233171503600943581494071107889706892567077433320741025684242594592911260642386735907461166928180369606376502369254734499846562984077949842994595672307715578933776642128518632454224077034724422979632485100526554327990405408019612718496806823390237032671295825778336333022632058094115279195320991699949739288327800771727656655990613445547145564250877752228879190107991648474159840947420464374455868157354032384928006999922759316945472812012932429446019626103125590946436090553660147915745779928710954860206606628003132661610203317322881003385413708168018957318127367003677713164344596674753004843568602670710520165620309313688218086905921097395986242905766029415181219409226110921052764705410614177741294872959521318019992601975457680009835738831374711572797176776890900420290122798219674759894227155517532602978938927937944481254525834733435351751600440834269424390736179902043227933515304465373493787643538789881571291051952850728557342847872354908574855456081258212140692992407027979504825334220184308305796944967034733551215741278174397843170960109948744758712062095469165726885180199015483029961660457903791549394035801497006187895514017664284166564777571309531514786046281552730010844669408921110864183390551340938788297827972456677256865332612603176487879814135930086550671811254409995139243552970209414803363441443230450963982631375431724121455881284301384861398986340609074490601026735861425055660158386070329574719436802177992160693763815016205132564426158320805719465564143525382783060132184009776941055888572533516341152386721668211120126308669064099586717282854281626094691806621834890215451356503126799719507954965482715746875837860464337370506107448309045680322993599014467406064146740644667478452435865856766735659869193699193512871218338394670229791888806255931067934872386666814668024518168828306278353582732039474571922856805380114830356089062548212356884392913259915538501721936731668255772579067095090039070092082174955094270407861679219836417092094109314478712850618712733066811619867935044760715359267801015503228784468812515475893358995780148095265355081048536297376011481246962110499059087322194018559618692852769571906258779907308110037634110332323976104848905094731982839487731853762366568049605308412759604573911368500700340434921530799499247220857661794223714531088907127976247392022005631035861614924506457358503252039756144669239473103151987080497669740210626540501838096403053380621600979843839759296059789924986360111483832059210819882035384842029378623310851622570747618640624982176095609880314322432142388235997267757551270186824840508980808978489520319630340651960048508042929840879583876501316844904799939823354638876443055988767292906255570628011346873998526004107655523692355262557100597056509835423623865850579672544779333547696301454155353715671033185851138286876047194393693440917216505976719123037137859311381537215860744578598629063383224360689143927037062097626826654477036529527673175038448518159492846846389620468449601190992074863193166156983599630258825224397802035783596064389893909888656344562207670171705407954599847507186714003522336154797385504138066276870781111269881823961933370564118296288059924135108895906890691712506952348689127110613644001451619355493987937424826184629317129552088915048277611715121498102937198318571495508575116624838559367814383444097577705808177213820344811696016005329522419598690430268868846691278291338128966905184861515125753313845183087097192462610889910713747781786438047539763947584941853285452973365818801518251376889771761875254093632706646091640580688996645757509419136262043630506786125436871503980086534413981636621000538352364602432406008110992208242693434463389172659810737697212749299950917853809324954939554094725380856201782707459004730219922854854841530839183016822971027473911006949938266296612706526160710646789384230352230679960444106553670723655251879068959941718745994804964168394974854479520530203040103857506415491850962321657407041621069436400914449494177850889910312302842972542642411542525264667794103532034388623460975436367358803505834521228295582410526775802944552092685898491088003733888719606385778561554021162625701219879871035210419497119015716852958698335863489430548161382970564729688334089643830856005136651825012832287608344501137699384725555913736179004040561194492219785029026129117075718077063270258709836670667191230428224188435853579488498665440854800379473451747347553825485350071044590697082179480109836900815076606141442812428723892926192148599689033354923384642192130342574824292398879812326395448375426374720861634133254850866860507494503417684694076348341459018549870438622128596371695424219955072346813082590368839317006656208891621626452145977522753341542612741932228042597306299069228848306321944171175190130291511709113094214365012368398467785086877297047966354126177984729754688959102316365552891638341106540130153323399436754320517093454313255079386747247501609553206172680377060135303508243647199307197861852216745326854437035204751225040294967329684133843866869489552640151189405774534892768715726344865613323782946470785400412516351917689521341664656758876455555134968801709816890051483354745637354482889628255369753036549200339633159370990247717928671954513867223363240142746209682272219684348344128724352608803111566082930201976308599199748138322157168874532632478104577417966631063274289466632701660549059901909828615881050989250983407088119474058354458212427159360989446473453337704872141595216381070540990928512185681889225845185791925395951325972548496406283409011795441015905151716056786395320479308079564481455773827585394735174855246411811152888298247980365172233936375562598180437310679312013450567853874478685953123481352938244557139963549437328959407584629812877457131317396633156410412213898758387280831905305403544855972256378267357769569940990663011827277459461646740565173131482209030068874686502899656990690190939407868100587855065324082004560925042836982095201415067031634375435613203474425605620742783392561382187607277102189219921205088671865060481706537204886314197255419041826462277662076031997990393601288890072675346667372341385128872881087260720420072619949926024854140566694401695800252022064413826227175396632236905026774617946826001593505385732102051002712111840779416494266439429682610597583743472510758611469129383609864282030644362178038295736429863254652426671122262272649604676567342988947016567016356310446040289793650735632337280304444579045162125462660431475251769492150536731036433655207291606344093260421843345746166098909867713586281542665818780741716643548418433614438275660691335566623028453643024730234504776223204542983931481152541385073128457374225403489378379799206884959147448609829520294710379089616099905952833579043809000974889554448786595802100272308581527508406348188037912255005670689734947114413269817106670841495400434255439093056537458384401804676445588945705377130411586142444280588181484575057774277618704240588256860171115196796744132509167883096418693296257151028909726803278902002562816797274959627672585278500559042445706089636697842650222134537369878389685536615853387674184767142210599895362974375711543496068899586821682728363212316205759766571933751940811172691912466445930724122412569176024022024371115946973477149011826087087075660379493306844602907760090876586343637547404071647094201129215124330960587683672833316310500706885610005763644213436317650908823446324440764024268336169157722715219752097547692810860150507994135584144347983869698039593079039281969319453370393347196118941294831307309908119413527439450641284758675516776646108268611661244202318348690490638372553089900809699674464765507840565019623863037557188001997220775281346492954432942270274758877281462679916367754564603219377409406426178015439433911067369098711907621675831605921433708554970510057892450748149433719284460187236725705116206313355429962617815245431936704137166297180168113347122300679523115694686650922800247547376688342310520662213753727856957736921288129230109999172444902673574581565958804159794285764850098651718543434048378345207892758315050219225774341092846036178691786458171977355450837644799261682497773313493113928258139316351412688649986110180693578931116705722676071361863764868446358093313353879100966238683740985964437543408247947973227720899577635095861311490756358301883007770003906467781241119922478451596459904272013683235713822873031004574910115228739123479912329719893000929169991505588005003432708586325057892194679228846677711205316810721019953328534681534692143325228493110946480224227323587303490944175792677907749971377038085384773453385457018020993375044897265128828007219701380219709494463249991036173182298841268124390221416356826984046847052171486706802007876511681375144600129130675609053107357913555746194523138324300853394673169710529813273785645807031542664514796398155845253165738821993682385508344575187693023047116518373366231106803505921432205606041499323259850649183762913978084699210528216032097748497462914290443689170379827699673139374585717219716229432509603382230670687254717181884886944954897195482971159488687274471514074763791232132859685397093989773096923619837903265355335469343205462952973210196001954950716727823991766586075153960002820808260517736479478834099806531901830749397904071478522637295215822972701496425440927863398298860565109107812245338404914206805629436513624252979426420683309120362149898703750996136905136835104766710579731260256964070077992442548404263443138485578641494083359519116042987874432697195560436426930957018013086360695193774407120009884588874883586475303401051028916107800617061367127948619289895519215046853618109267733780950406820592772970037700044658843212291791193119700261957567726478885170775191637729761945144782420406186965175513008985980004992607576118510347254521706497666958962958223257336615988860935448286186734467841117623209010937448925216009724824009389426938878394935625048979262120403483633991233616420495055692735131511879604629665107369464134523318481940958694504873628457648499208740502327600297653809527778649022060350202970225895216249265252904916600107547453434258109804112750362863062537442603204833197820140532406002108446188147319666653880874021903950677966277456322571703300931670617033371920174832809082265843006870134593105532957973521092732907129630710871947992916067746546979708298106236774717489049110854821859882917012474020472355827125396080868894072501561949648006757303566224653393614337598577962123779764472083663063778693056145066746374573161695296837608623245918729250261978687388317232722687236740766368023516396147343799963616296678263048983816563799101639253615841314823014205765909744612297956655992150740455006232238147990277942656528910142853711078598399360693923668902240376295250980448557487310190336408752116288115012308520896630966070941393757703707141732324039723007581871567413360901986315424017835557390543810689335533717670507583076757628901151604061275765550509618710281748976269662911481920427652565769654355588349444331194200718650392416710929348144032228637305430723820025214196076338659099786459079755414781395547280682393469494959972243195627204294786964997808777663568930505526049825439762012074707933991141765489049462747883998848942097506538402061464734765580239674529966751074200864211679913315109982301842224766496378374224228965547713349560185663868024695010313101894618961064830629342564227962860076364798493711569475212688799413446324392886344294671494656660625339663124613704322841490343110614547439665787591957737670415558164881128850668433651588484621877110416291567911464588816949975678556290228947409685332070015229613837286836127859864702433371167059558035081985949645508295039071434785853588719767074506121234803139485322672421179144597441955004460395074311442003344484653176078828722620088371276098689737872258054587623834794480195626594027793078936386342743704254576028460476827054467245342101678133720613005695280731701529800775733342185458586055882048736485257280545311911518803349055548680420306100545513017903823232431945055329903513220595900149733468468144052942249235069777758025476812305604756160753813585069582268579575147378761704443228617476651954578460980068807173401715872815709808689405763302508792620693563321476614589548049012194419328391119336638332456878382438108360126158375764675640557115287000022523229534967193825967158123633741730388815236296161717513825271790893945483692741026484939458831219637817166808117205072156181631936373775855706022372250887104372899035426227279441328425990462307409940236863132372424209163491369432333271581753273588567183420017780471364849842834891638171831310279359294789946977728915643003935411615028251058324165541109742994100974603325777492821449538973622436884818619795127819426872405459586328117695241450293696018185961472737508465159930903899099496044488619278639794424027485434783183115037219817157610053802107875498911785744956985900747256559888272323852727755942729750170791763872157685543062875877013602116007102317936025785306919338648944299169815830156123811705842827366396250519749764350273514764933860096212994213450783884073311833118109362096323676312753121058626295943253463112182389138958321526105555598501808116596519152458748753627040065825494584342329584750149493002554522360062641019164230452663149420529379432410311575314194152606613673832338988021067579332824147889087506534810229999395789603533554563976279032251848795263518621727554299837646012718227001940462629829327315825068371752635280522589377384557473689191310358315795475311755497726800404791557838017006509535226737468208719345896534842834207943621214875419136177704205128984705343033705829505571853273499949381631825142094906310514277046184552817344754822395729921700535418198660764110499535175829003634213368523272945351698609602850173552227422029135574779081442489672347417810519255645957081915615202108894026602820345439730825698730924869196395277895939764024506570900023122910233935479733940503030324495766929449247282892053956704635207225552648984056357487529278263664516231600641160424061557774001722832773620380674554770316839910366426571413885589338450544588787509772479464879354613064826635687614622066978465010888868060581033856406423983662302652857752010382568471780502494818455549830318593476501619016916177189227081389076848099749500727427491455220135876835719241238120006909825035581612155187132449508846083145716717038038424286463803787987481951068121815358492239370232184760696088768983227570479740819646355550848120081509866418830505633303433249835135994855147549435497194831501796882919007815475639708056658457740590987511057136358748372057156999523809682443828878040022444141008503513453236061573401252134189672432885406672263487052594805479801720422165760371169590200254922052565149562013210404046410898158556566646537192978323973061110794499088781806554079998593428269576907012366104368469601454193864232619051231998740535407983583512064115592891617802399908962931604872402159343136289788653168999454192327881921006213033492037719610800160796173105747150974230648074732744068587445027682655267131037117569496205109175621296544027380447183881992569989705827509661992552778086836965464664123000076322146619237644625418083071334086625995705179172196661781831925286747125301740958997080630522381656357215336067802321024780723390775564549490243964511465263199431831517126196904326882749699089999436478134265708693990823940308205675590344057014661259034090086697194896577962629674564868642457941316372109458419877528040007873772536498562593736951505479567036563263894855573593675352269861631961227226028057890747640852965655544289940551762542613735154632135416862913459696867638380151246673461467145314409608406569525985971760533704244180712033918038897468080509343528788413351958640384693646406483022074264128129323529071509740052130523342808992339283054381673183732804176877487230909915720811406891485082585462370897611024742746960896216627926450761128801644827675190424278355156024428232711508211380204180187771160982916059723940690807553369316151479741507500563728570710991551929284890960113785600309347634939445869274313206028720730784134746433616543357261088536284795908153418922167758870651036740934527608579215738275203478859380974984579639063670908006259332259063999674346363097190918050132814763428741766232734292409404417569744103333696365755454976625508969274505181719779921685444089554043824117197066856468012180381531835440064397732255288484801050139676149997615090018890004218264528753357787000497698680728886737879847544394808236809138158271242573590111009302028023999688765308620182658457172025755281786859404525563076044843052906195283310993236083452650044710755217697712785789188643339905281491905047595195220579505205733736088822092216263270107558394802127140268987820113494867982388624989510114641652944954960989867903095877236471755671838166952866219998580927856727217363070653705120349861199389118380949701017461681889322415540415069099974539674157641007648188684962443024518115124381433463401700340150406472992536155961130957525435641324539030396071662895045609375195008209738621187863002278313464752137626704644573910712609192800499276958107154001002693322032302152637621714342963614656911149406483695781590156635745077623321476907339072798851243405633874944854847785823645222446720885100661478923911018851224127822782881619013070240193707834422767196433269724394785625887656662714449485767095702799828241720294968291673090309312241293717256583100123338416093969767488928418994696320956558833714987194884779285921698857069693483741298718429670952922172721431825168652048245560315456244277931844838735288909483389755562941256853026458780914001604881602720194227978091039900257916035543754322957175663744074071177586597913829625976359642327426281021333022255157549274261683694473583689261827131500347300612445586887149416660558910370775972673804924116341434566002026234308386874640852444321596692857113576064304086531133206719146157910408077564324695080508867035470113295132670047453817851013275179535901414124808455789096471908718088846749943606169207314593386100204042590283278545408675142469319355389923452732985695585402425947345081869637752485861232198035205783055518610198699170567853141394663092012173093651911548931111048241475856950124678935925063562426841863637644159786768451183877215539728917306336400180555587497177517305623630774423873218081096449376331423049044591925641392029093792628034848368761804878635741920614929193546949472487028663238372092591612386005634734508845344023140295782122367039658448909933943459001668640204944321408000831482671695740021959993267947046888143373469774682014550418943952940196463091355537002805383895847141123850644690308977173776144770675134064543024219323061198578959960975807451769479670564595252112414803763446951046543480848813216877829336692211239099381793603375643918018366743333946124657162638242634152716949265422883094078425434095944474495421256525357377935338427300649073210704357015215565855742814165230782996931726013241006020886346785755036545047530792770627729351561076907775438515762130798005995873281359276881824279270258667920243858727297149126726059569461432625392082186262222067837135984910084343401266342104149536153155848772396141010087789533831994374858700871733786856466774301157900435292881330319613345077159213656366590384554760008808854245144225962940190582634951947086905683134185803001678265307816087203279565270443376754218975771087303322318563583531750985437671014867008864459453586338152761857845919936027706508104451691768858701709689394046088679553020094368850602982545855057043639135480537635339878754938410954347305414786554536686054949690284209524748855862153337801729284802690360929954931726854801995776723839207364665382750093799876364252350508618039201941026305487580342495720864071582347616420281238381880693831672759418015580388543882915761075568117615269306501166834016421493629749494555176258174836667826170754468654341472006953450003660024028494624224775155550037005546164809108506592700384433869372416450193749716430442066054946969030004367451830527894790441257967546156244189957313717528935706806160440407848840609661594475668507272859990801011108536754217616225355925546629020180469616098349552651532391132784413087551652368709328660172291734049431571749656705799699673932599283352678560044652166887973098317580050197122836183519882819560833847532945778195924684596160881429798521248307089730757607455890191231130733202641982753970095343038184073929648389433756287131965737831028064981982745121076011969142111088814294052967173330106485960953720009994920088706206996693770544045689353891838725583347841623720013296467910858544446675083258945746685826141168092956104758108088016257075146049045531328036276486105422177368622408463820187902674268627212209753678878616826125224074442258928449321891683124485338792606416804270751912067577737330086150509486654750939570632350613947506193374506511808233293601209196826397561807551670771318847738830250880293504639709243503451373213982663003454870734460446895536789899790453187616372244590395029377769690026278743915082141818389872249665780220681198251532259428001392080615470864655640163942445996180013646714128530423904607711484159741550071278105317574802509899125317512166220282855739173339570397059786462951387370110333486608822326935270848948193135164049036845268296196149856838462134539323879806092477686000048549934847040817228366262935722687865825383842943491335445671082477038080630122930586445700452270280130105360099085142170517499954012429070034467820823750909104726356994954661471909411561052276005804352014766980312828439803759289237381804218707740283637003932355660093565136726146532408839180256536278304934559935371373775944218951994378885237583481212590528216422133638250997366409608755830793075852372006894724091055049726264427674897296445741062545525908970821681729856903063561644594896818254683880350687315200129558908619888571457279350177037945883296083313055132197222292869716422460522587276243285076874342578685298076706391661737550283110002258652600966238840102260912986728024107352676099045581182761119608580438790248022299478417434605694594079586719829864449555174609965154544902121000186665141188300551301538554334782796908075799086229224035178271607200128891743439794575418404402794440455864130681438038769653852202725114436812066424282678542590343342419129401024630035004596298992420552264283592634606095651541099666234810635137099047129024646355773604260062651404705443561321206164877342984529960103641270187328795997119702781425457368994488897473252772618603266542231876351969019914847545590130986595979144001861243883931240370380639184627590639364645875718194154493733808143780917084729193963941621141969847724446581134324352622030161455968022674362338095968358008929357736286444923456673091103252659027648395124613195011092513351860357917893266376866579373486063370603383670001989113658482172968677383026426082239944527122997759461863093915557637103723822323027703495557190374951850491973877122903646840428452508422086610968231987469426639815655873311917950436586033229649596002977634239413204978369066221920536055826759990704504410127933236701399137377841943702403510915337912250700515828049068123175481428303839071072255794739186597241586891806721996763546853278696354419296468108653344310296579376784210544165066446052860717992178536682721111764313728394644679097997776013815073430114121626034594266057383079399553914152421037539539507540629338366781689449520296725433862216649716167605449028005110797907653096210125624941355593845730441142910400128516177267792457635922815806771755853900381637284433238754895957224049650652207818096007828862182616137096579944756192021657662056894829153891942488098254572919792263219278236449144410621576647397071931598518210236939050284473626933097592429914431421398348997313884329405009321695175809349146842823033652782231074522948441809408315824549539773604656293382461615717834149981628467484173078776828808437563503270429978697870657463503881678487525097783860278835467175674485416793426581331854293644069601051678440538586604510536249534287990966339059648747669507582099251083398456621212622526787309235252850099730082608565136708666162706526615460622220313675367328018403724776801848463950830705810184662272345305687638560010708528888799060419204108077152472527006453626487557366735793534240747487306453190016297881746246779731459290886040171329765938246226567316668853225913930205535267733072467635633568715288734362175997160624523031841698633591861900259745979943087139265283741680935446322534692995060393921483504992774196237232979239948532759536805083546774858139615408436276954553147340145348459110083678790538805158761421290707464148330423286767422802000389978235801682871868381805068539290722390217283645114708011804262234033503588056858994422808591495107110701437934456773654027118030244477078301021909475735204807378040206652586439043309265404336909141599849870974765720273488788499900112104188980999475574456566694634905152759785382333446585091364354184724242833303804986432593630317005821637943787026844080864754719875676730169440130076764608382182319008628409046017922592180904856135157644449828779521167561019558510723517400775201120839320161629451334110552711956753800888969508682521268270224428358273658785286773876590118119645976504162499701246473598810825175374112728794916561534976096541341927787012327735264309447849753793492867221112856242887791893104599395268835557142346321569703692147624725073288138861790677679160004641961390051258459056054381271434255555106707807930244392743603627127493059141814054689541976389003325430572507910532624289809588302098618659433271208562138598570704549609458479024901462690935217715431908390825289327133323125399298986780779980146080237299732409402795259057151238169037871521691445851630685263719550026618417409531830535339811035064294344581133984973991967590548166864644997776571564640995204247690147521571647578426477639153272435200643254130810585392909500606224303928392164738735750265485193516197084053977941304957886532997138769072433698668179089614945743089263965041371843336145122701493035084454693983885933681043212780367630592602784983222935912300339559201570486335004750283188520288658155241655369928850835599409739747299965608724981334089104629863546198203230475647177179580947558989047955663125573723966251656042082765333038401810883471439837165104166663465501906779063943571933654373533916473408764389044417496470138520943146956959922509894082628792339279529282134787667248862430477537057176154487482074305773173345824456485799886250188230147835741962565041745211737695418372138186260023635300343070003844833344621859465151795043039442301776973274077787284582402199958027760179911227871348396984275587451666968940816668669635542273923712049120696179978201541543442843787921743215632691551875701599394414377431084338301143358622345210282789098160857930682164782831878819780284576758682472179590115064493467420351996409468351486185135012886550270397589915777511943556466084067896392283245798141785885842020821800379673739486619790028979276357334249999137899198477120903381691082015502680484997227169574652206959543202555067710431119944321710597527168113814550072631051007636065276684401832198701840126845108952429706576106954858751119074675254444267494753575221097822280626025762568111130567080185964554470479034290778325913956335544476687427314932439682880570324120830703204557223049963520627901974283294067250124753425094101805394650069158350771480030929597824618513891864363112650480236984806199936666085981689285935603734752085240295477739619281781217336732756092733461726004615521941936207249052298303978060895983074084386847721599404714803535047948214278254222130986353866935709297390974620733606067771827065159334179802960895876939575180511099100125311845518485822468245257918322690158109876975643988191629384114100689767092796108041407102627337350256195794093256874120366524556432234366001437678976323861399307383278812466101536112012442909658301522213165698825863427569984754147111180183482596595132598117544138885803200512248811697256433520997918062803314198394685369894827854508448467141708840835614541184637622838585654867953196652212570731158733282204085613271806744595777398139559315656411511339316193217916849296326099931618608343753526655453958353802172279854171094572037725317307148561237805679493535594880835138610432100230908671781266424676550327586726495699033330081441175316878731931937606829041373412106019925621093896963205572179509656371567795711913626884716609693226934015295790696465885735271750711647742825510349151183618748488380318294285639287981104393376978432828406508328433126618135975360490130276787908765034474584135240967630952850075404452260861154834534480911729918367387303324018425924865062180662117639665737602970107599318170542076046480691384768095403022428833792659307560063692600726606673686466308339642647425388316233907581537148674952004374658174898566069569956856676053746947600966590496681766693904324500901341589808301993683079718179712133417906510376148411676745682614307267644929709081997084226649945002876173250779212927389758077638908942644979120237570238708141519727283990380397281420442153166192361992518931412268301785232553262126541814368396740081229951363485862815511110580662738540243823829736842997913494873558332708092952154535213613203056842534914102394408975822346559471134508556907603537694654925077293669948654650396132929789127839086989711031037834243291285254273292274613963627423800500939642438334155366540847397491435140459482606293565255635746692859740382623995957808259779815495248181969163108559560048071118368163174300971719053443064180360116816766602117975165916078981734308109667206009782585587487419228350347269488052465205796135874725312692164790472668823436917033684501735718753150108176436846611141813174684552888350142415796435936930040336272201991182701187085060536733800312182372215629724555127374217908887827146131405252218830870018228771785196641921397364626070768913751312967761415815411025686748653894787276209429531890320938627793280308628688695996545687569555638582042898621586654627849973211640061614764180066672074512451754492030810113677160139465757801574044373788002729823017395397940469209315946746996026494074065078232907320791379093372298092350400542103007208212994055946283688485588982668510566342773324911818005755671154969627847930235161497578286254344840284512534212446244846435931496890361398586089586310256042893473494906510459375081049323986718041091781511049498155278535517173825121863057749938422582065768961622629851891502700648409237912559535420082409373628151492365925744092741751049795926724692106002105307600932135378715815440609136331372272078379940380058138653296733528999645489067423881864776738472800286644630192452678849818206729942440432468660244704601287054665432465323493741677007883716068560366770475412381770841227511517966367799727040625751016641532191023780292078066873496582033767424765726510475917095909394413019020249471908066041057496037164754002322958362532024712235161563337377698022558580570759732641772190405180567174403207187286535472010342188615354348178147686174988067916017293532423066913822895128673701897309397925885055438746147137218761021987688165063772383232198570567432988292430876054571353951898727032847088539163317214450442222687959670574891327605737479099553596751622173513242144487235801266424487929769285606748538040264249970895435361187823764350604404120082450400441486750646933289864933413991713580565060890165686508640386627824548013718895730867900651105261407198945877500106101311232838486263397020228498822254186438492899056115971055389320710270436002830814702505868146810704900732768622316685500686783985553256175884329660299123559830612163501671527667635009718082531213558026922323623825457591889762981610154033122501492357334929256125452435913168935875289011850372130390022237398348730378004290003140713278564479794870266138108377530155534871006735226517599259233456971474307409925818361949260909255135001173549453670837333001271889938156003329290566571024681411417607272845599351407889925324428059747043083566778354904352482407055160909974492963005152750939306221885569296676573826307944573356807485543623021481596848940399099881970501924566240611308557965425078992136937522472997295074428462383817480056946979498313563376046339570544855722451038824888492354029969528144468642439455081047440404294068206994763330923670442857824924690838277865217223195478398006539007567783060033200659706308338581982531493198231774608131940898448440648344292499527190419380514480786902366632448804443889908154117058569239351259403005734602600538760233634555283752760266163817061743972641802481381455762398785082573667357851007389332354212174725202442430609394610487945577679653306217601332886439989738360189025730519343240825513589881032857182335550499852144493097023247721700309492108653789758047061536005371120208018441817242822779006616760170224912441009084399956218279146640908782589961942788115988358945266424910219614679642981933002901922952202981351006664616537085395729593771830030385345601207219352790815267740155746135739478725719750485127559036096570777036585023251363183403930960775141909076107020046500521150987435484453083736357028094698047828823083811499501699243821927680937516569480806983446356671761421562384575495700987216881182833176653872955833169745664871360099724983440071751175844121530294774449050228491258992126608143821024472349942496822721006195829998575158228451010757559595689700862070651575890594753036754388818925247646378599987544474340512819029937195493503166434886581222724917663685284862656937928571519265985271575888350211501346647486083490594471746289686438273175363347526354801233836376778543970852479122162132580329899113818293839546289073164918878379601394351627525629111844704513603895385386312053230431393686648063627067700396458698474629339527945652816818193359700266557210391058004854760800281123834170400580610201723149298636938100724214716677323814090467096765999425611541579092982709429196638446124729389942992885235065897988875136946952999688616317986127396533944723939820558841234032593813108303101259610971167550368687666668017494350224469955351644825236420714994348303062312392147504552146376434735147373907099215584224368387557329296716825156608399747457190515944880114734886220050513934493264180572107643295603584707105705979487525115184714566850227205550738910333459503192927627109632810247592829946113301206075174883899643015113088995186698489312398708120885360856986272236054403918754211038622711305769429139465807605570462265601812386937336183319877515450442448861678152927558370138482879165439730113334736337202038534991549657606208684690842542226843485098611226056768849954191911941397582377166673570519641288450388736121562399106015820721320086346066784122263866806804462040560543536683129305628045898960558479077009071475369946169121541039993848535038168000722830048562751551459586520061349281224368880950741561231018046307996044347243473722641909665459434348649736232523207192887005133582164078766130100573820370274036611123801009378191378987570670437143014278730702243585959423011752301279305991939869894764280019880294974572054033896102349450631935800923544110770208001796194337187586722224256375386278740939420521459982231928297087428406694769951777353554464634519431937828085684241306950821274355549317583644174803537156551576832474019137876088664501542781727561386332117067650509237568083508475947258311621632287882934453632060009348108895960035605161299966584791447507314153704180669067138366223405101192104163201830343289674202147314384520276051786158295876625503414114950867835571901579894166052344173106419297911427535328058078706809862653590994769826291026552606985711544403233754728300692721500708320908195697286729252928601256790305672583707406763166833446446987219036682930102256759911935817289770011396077533598563067944198586170977031038867948152768395398177907244398235179959308280888715973557105268384462253360699540942994753220893111577835056011057611003694022169839705507009167621496127061326151434812293314396542316676284956391152130173956464844495997183176636985342436919918130786477542206300383611201165939012177358827735481863326419069317413946725903059709393735127284576224875697221366685598238451919642218800028049310798349494298194968221238989741198273068565114000645987105612732580571384161798766797804096948671044978075918339057046659865031975554547211902059476396293219217200972854403513075673357453210003718274059373941993855593785684758773607181270460234971897875254850893215299583696861808272154602567842201053556247220925346094013210789266767979163729525300387988587036361886354670055762342953273436749971020053012348384137733476291417183468632181027177358856935974855116632012662794279767513028920702528292834670058924642334961902423504504412378113776229820377421320584757105409262057314448758285731082246234057429623166054548226749735603558729158604361391318015191833711889491960027202143401356503919864416929521776637787504612028989220271608241819697405497350338676177470454980562848347459443967573048619860402684159651272471205381812859283643210229512904791420819512298694336349358917737327433457463867342810287278385471315804539651391138553140075394809752567415959990516970677657625751158864185432900855283176500742830500060942332083999127955095374743292912634517950772420857728518035582479390538272668172704038307484955347904196508721230585192879237613340578416480171347385690570041236489017464206220528920667249017443568329463214841968379313514070587304452886491351006885368974254961096279077021069180889475266767142506819035016989547118169354734535929463934137821656514522895415143094308390921217237679033132508998619979502842795571505782495302462663383292644669727514143253133373699381079873217983648192140916706141918274046062852338695303567278836395006961999458744350617707911215100099849132865654744795380765091308952422967939443484939559193656161992290782726942102347924361779492015432123472839386128800953757766555312128955223182207115809553844463457521998454615868925158885495354328983363551040367537548815355583641328748411647146054063000947084834395358573211381738816295130229127050308108378785111821655576695436600110838494068060657831940974305680989802142736747891591350501078621127379197323115598875690737472949401514815221999923891874167674163962028715574391452201584165064770105448119786769611242659570235381608534355318720986896657868970014081990804118341279453969734544963743489660938344654476503753129426247399181956604553869100931161608872020288082202481628308783941840189569382779704504929392280299348634577464209699165032160228478293343358360067575567706256312256079625012316484745952454827764535559978821362545949260631766489177786678353234344203852221372863999753098147849329938423435599036114820853174986517494686184368630983769314869913646451630375844156766179429469310733431148106342460115495537043134993516591917247410402108155284052485782993260366532493934446412571132576951926351003029983943660722345279094797941586958543705327820312975155101130496024077759155449285295460908812344137845797937394000104262412302207150511632916254844625313731510272151343362108507481776245236274358436087292641514373847245597807405295257933591596692688485799819141741160338512030568923776835441476475835639987662904504846221053321256111965742909559708128995889246184529187786591455358138143690620584739390747117013096731220503234419801923432287965811254337056553037105445266456035785729022820504915645700826088601183465465303556859668651162730902236510399589666915639232134777083254814635463952614366054683364944908002301038446805798427833359246198759724757103432477147731839247622997993386069423386331746708878933411636507825715518983363507662589026947115621648185222942698186282167841022294177247859655913057012531892492527977447821885482390909831002393608526053379637524700878509675907199314969994752434261607205147028104125961634752830777056029398742996098648532766519866126622254568056698008945967617968674236455141571287339940371849051565532034566206413838635137459102254559523124208898788902293962986918059052212798025895020760839040109320035162392661894140207815195495560889535903750758647277086594360827926925903868750303120265854435758102888372159697635003983211103749095531746707954177471455320110503949426345491097520144515062798758578107333746706699392079949455068548355694486690208602714565488059161680552137309060790994930416665541370710554003067695243792607057969634675383765792005106093217733035786634768361177570620036174976466675335074076221337352528609019938326072886551324023887778526907206009744114932516861152262213417717906977353433103747306358020894187232933066077720539961532374776026344212149810012053941449275418895135866698337356556283689630779174191548321473313497915759096916006571462585588668107668524541422946376547162731405274138327152152652534601519947208249420907120084297203454990897169139845542737936793349903343316852744071623686816533235749361052053425527840630518869281251627317045964510463621613075923117852951740333043286911278477246856440708367358325630825728902455467366018841884304682819284512300286754325290624846515541172249203317064354939150926926127167895912646810499233236484043296704970265603483062414620430556866270157079393514289020296289269057787162214616177589074623849583317759728476508731411103343659348393596643500135809408483476514961574484626600972039030782091893669691226421087381120962385987489934838519424783809165980694553773459382639081375404196446849319507192673658622126563399389976658100667362043823523847457602128613884707316142605483824112046468790666482229176215964464647281766109146227729381084622984214992973643787515381445664841861018214844506788241151159493669953034576664569409940378147126834329589125398084140045719100440409488804404896577917710649769501157205895562032829147962194742615460174163375588885542239704683704984145429203570480139181155592936194760552892748287341938787774337700220930973477405615657363558330701915806058384786714744283747305019745465619138676862024318564506651990641111516061854794442284497588329569533130439839404862241776531268304594999623073192251718059427145510694930273358122610664428949587381777946162164973294716659808323718920044586236361974477583139207816937728438289656017867362486741101132034350172329055595329896994022509601078577746904517133123308615969512910551102885128977758877721542351862319595461807816839607285150242956358554700932470817846189000898733894942787614957924840655062579981497711231828966942028728809317367219569906935137732891438580630557895149728167053212321790044219340973953481568235800548756509343745070679968293512537181286103871477242096430675957579905463007089186772994967401695299718643263349458013856593129345571324029616948476151589903617757420209088896818924076633898057370137060201803620252318619525747182732905531002817359032307659357502443273061214814101458044156791012938908534029929117966119170915720018678328515807583183634731228539008328805492507951812042861381517323238305918055715918700795112867047069629514080282135852671087335375893851936980270986227963586296683406002925085219295314824060645501339063456674608650749959097715947240773761012977582986125276304691942564385193523187490611303751499401888475942807339159658067930145336727097822508113624252544523194785571481899293598303609505050008172168385906740180210763247848218340314775174028224057698704381439967457795510655189139374429636374291179509389279541828428306715920047435393162617449870247371982848796210552991749497772698779119553126716204167578453761903173915648162856282692658217032516605743409320878276742058432031318749464401728045618540344462719154196595285795449166617731979497900265547702937529046387120947115708339502617897563139480298211548956486032040456517501715589047314707059731553365195434479383953883884678789288941647076140924924319056026359836154761034711016072408354077211475611541834091896343312688524081882399554039487706370072055377257239594896477242453119896551621434366528325292460259631132209362397554910613552952874262178347434728461869514841201031878892458893730773944307009518408163530580326276896080153361086672467736184803236114542417396718858404800812409433667658066020337632569933749280486690003505467572720574038515874044235341372178444260822666285527137361674126268259502762792237829107292543527575787851963476962559975684509133662784100839256988090184783693441560647927707247881578626949101107144941593762176191998804493104602392987380725664202081642768832893708912161727693174942417192222915055571563832937321445032698779113395879098044535733053892785134031267930882129357614642115711585282323340309610148567106043331875944007764681938286448128372641644125159752514973055468909110889195394777092259686388336949884046807273249503647049220152496291123577039333111733571108031913748165611350402164829826778304078556767335491232176337325129852361104185751720481497205767784479558252172961382109616370553396910991507303190023221704813572141771991852153023949148354225882352303513658552066232278450579684038230036052569901757087894878267438459707161390034590249557571839093046504408947928625601524608751059463172212656914427951355018460010845432136065046507390071534334994085555615242808417208616508169386012013898703149468916085921252855295615860123340308791758936254698682597242369929654926243986530401593091558733509433992341219473882543590000558584958328638038295576380928197184714946160043371948697921933436950150935589504121303424859725560243077041217331380314697607101167900022397226056652784023360570645379581489671482690167709973614151934677460997288815085610089968596631911930712681382191757354340419192680652690350666572588962295263688851493954106099195942323025230553901537816207880186085851882834583194864070909766609844324910555690917080061727980503739321677080930263065727983070653051940404175453493230813442156604375765981418260186974609871287472113121871664535113241159155353352009928850232648254240015514537981150457623676789731466952618757359469690222820937616487304405400865825188823309119479044519606113758603306882945440871907280883456247986447086916173586214420614269773863560880056433348789713548586196427750035649151152916275315849103851266027251636286622591865201721306910815388796138920371989393502814996106238713114734106718724132175437780441033423827389597259850243049174887029934855175624699367451861420033192504399282317417748849027702347773453086864637680283939698881446236720207743624772162128100936039465391358501586432440714384405749081938273652896015129953032305666973518465619905878505098151040329637984795616923512478811941905725283998153400162282526944981752996913421944744381749535337025090834216073629835952337539591548542561565254300594485749823023866589079272927203343590776629472730675473592826004813947791232663605961795422039217289200122462771350780934797467338992286384328463035258487041998079971471184750325138286971342726710697246660703134385372636068435493084289789872722715971440786203851467371674040858735660814182291910237723493967007232356291248555575601672511179791831171964624613695723730779088338527910251148149891057817720309972256434997862039978935656645598853167469221792923661993330314268915300518680744438930610776637111675742629649286486425386554505129415635170292854817364133886136517514554719039513722387819776369566687652787724992476337598082966715679304218262533105478878500848946118221434290083892335989203233686766000008864629636642211523484821269362447719695293524826776501784988241183914268082340918301554793740763469875823018506920148823342187044146767595944137704835598374401854351176328884573377850096809470840698671848284706104691388865503869414322685333843452199736518329943320524899242624152860863237585446530685238669847063521741402627522653990227281257538807095882564924112971273529152947518542341875441311897784137633741045828612717038371027542218619579437224849304927559655729692014572195585100396422522533131460630013500606077738092918663240164035595680059253086751612344195459858878009557686926886792186560632057831697425556365981771032020186867845236995425476302450135316298317647842500753552496504073345084738469029372495577981731457972212083992154273484535760722900089557035971222875285133608544342868952091948942893868346557688056377599717404773579291146502240765523730604238718726508077082232694113802722200569876744796253151109079614949544635575959694331794118538692584261574058625362525480871455499789758892468291363165016823286354446429394798824708414535598057108794899328094718275126785458443946121416884328856823126537375676945041377690854572610188674070015666070253051969492467750806795926507349848260175496440920527953679140615182402559001286877854253829777682188917849878035648100700897397097986011630815316622366391148697166825162545852674867753371295241416886685385386675050895896511020030191628703379331195796509906694620656319941890157012247235092075436264088646750268243216669626929737397146775132033772385150235579417237859821424576733455779525671483209702250742953166614587397147146660789376983080096544404438441433393646953822369040829056560388488125226583925685101254513457269289535695691859988024215598553530990175830461724918420727037639606545169785536397243823712363159629020016173903810781189443632440115848476988779090709917597909154605078590451909251862704229694905237814677101185077877591781402955994998036296589455856708069436725216751013629896583241494332888891296067540627425119122196998508821971266717782585957729196642739048106629977141641588086636716002550353055358649536949469652299145489929166108664831422291634707860058231328576133808789908366048931270103961217886774871659317336905333829896720545978262454160106240308562420748326254205920395242345040407701182217374930763928397952610409708863823914377416572654755068472861887543990282625756875158866749676819023548173600458349245358761053050802653098386310603150212350281147894159542193583705345833680253198601223518636782058176052682186269387719155067884044878660784351510333576975798835543427401686894150288095029582797841544334798902816069245851321935141000354893838682909331855146103458415509090048857475581823236111572622793815943030564746524505328823970189040397925354043655637282865301276610332581978280290914872102677599152991056890210834623856972462541475186226096760765345146555232770675515665257357249353882896108076975228018104000409367936513626288360354918735413975757171943968750415042397955236009700929740942484603877845774235011886120377802738462826483430258551968429663832552341958225045284477347525777770838682113621429230590060086992884871531483799372255993087624131422405348802162097810610763928169118347721943223190316447611371988837684386243447721075539697425322909615463785849950988234171805742897977125645931055672563158886164292821777125682568929136931893382022776847315125088403019892745693497890727021106849801081495202168328379989786442472114455823532446767262540135155869970563740312325702344877814074653647962297759641360415719948922161599593431886149177732956650048882638638386313098602467862920544021661561250687498680497627635518506771732571610507634105855375898912214777438711739640434976049405359317290926167875060279914729948334190563107558344864158935701591434376877281615787877781578144890012149537281996634333678136387182755382946086878602381910055551610692383446485274272775613394899327118176986616838501187926144029838956798965486939566148547375847698752134934615683791830678026259949857673144804493180200082953790168114887385837149427384249925685285761671956211391536968969496615256048101408541251691863339325872434688752297046369583047297596599399875386051092804803713895349571808302856491714189943295952588592108012379560093827540913520120558778836204692254466558030422843927232564967523019661150942109501451019833610653735542286693746637848325060507920751326295077838895098943127223231624188732330863043136756559354263787446782224409709768819818222098782978409469474731680114923270730870236789949830196223937230820322106218800815441802033435784472337973722179686554256792464240174574226660212001906393046823063840509837357783305865942853936071671480686212150220818751221413805036125690545858982941456309847406572271273447521854647799134672715098225766995503525018344219886762128157016102360184553250989404615550494565524755781275117613986642103184882486408456559023876549900961758993975346243179336069335739220125033517856303052975540868540196718918234115699524808791215472178402730295780731661060862570657067186149977213334286761852279601546870073477082857230750993843023115175849073593327984346321697531257175424154511006222643352252362172199633421646232306046385032589703096569126473602886344814467536141541455163726739089861498131378027687496955980081443490177594853563717294140886712537585628581520461756570102572643209808785233821334498471853986691542992388205518409660757832657071187214813257696017847597985722347564649516694693494956286122077397597132748001620571151433149292443657393698142053006719076817313471600821003254667268418802494642492547821959450244286453517225520315596449729507095708151971936417136559725960346969034735209390958774431589066861879524312529802117840582345692807818546905232893634473554217649203277566437799649377382229406935528974296527191384633928802982694013885169408354643799443026280202208837186188974576530245065484270378128956850682130865402002370355420677888804438111775067436304825307278220021314592960267588263354327097923856090926501900871144548364070393188734276922286286773606439404447294216449208528451920301073987361205161084978770302595054834163288575263405922328267748845103250672487617947458131053798032482170032275787797271360953698242049331482080583339327940207299865613420321013015178359224749903352870922044663976413518776542995978276075677098968930452523153109418777083628189403225308706114336480816247000601294605912482282904496401147905823187729699386752269997395104642908603615645782329279468825221943383566732866822636582117769450597653042057937233390266832375357443543436778349153981116467240910326243338883525644656267499643880491916242950834220650840198219729562153637583083174857632196742347060607794187331891336034122230961700257929411462362025547628004007154220308014635353868103746181062303290056281478191767963196375730882829368893501169368295972639775838564298522368356637274536527846839833908060947833600844509739566501683115532821860720995760240096516770185781970045946472820430959197521482980093011709069276759362335067959887486788078551437327052924398312068783754772369819293854412669302232978856251627531879394544698311828502911364545164972369209091451138068780853759023803131826384648881189519140785503364065775095352225062611164907136037097744896814121069989946461262500722213821660443732634482632565635357864172168031312525641696655473522286564676498679505059500296223856103285559482736409662557449710115894509214845381346748114292198374723119473705789096628283947109645627263171914853928847599000243236168328039561760574629859363126533034811846884080967427846007056418076011570477750053464955540163900605262943540668445083765116117423698586850849008253534601827441872526641845985823467184823330893645088861076023620193051676192439474609380559994016519074020091637135246466536333187598201082200088994162436671802896181163403771037605133506100077052434613413458598829629472216921721843283501257436962154844527270796423693462338326563645169839236590919847710515324767324357266943195089519338825749465515719451929669854459730370893930878234683303784974201495272248686763631868234021273562708725575374989874607315266052607867120788807376046154362940657048957437771955889733889072813378579862250063702191172559166309574864552149229729957854175187580361939571855570435051218835120969423587739803626334454055513589423146335257569333029178856108522187615298054166525000940742683996104220521515114951004656538571059347029491570344515908235282036629305951938628524769539441050295753131646035641760680640388436726098627794985782266283834320197810807742893839036104480947747387454445226489364076877828520811835710243892305052457289381129792906508880156600774366141240251857333025604922913867416406302918576193960006899698529209381215382218104010979253807667135638014332743286895112189919995592310234630559210621688520467994481285293105607039036611216320378738818542751214640394819807984610084940678265516906107627879538621772743557192208472787149868518449827088634440758765023136774400971978273591675305329511509992422522070083770975351322726477895759222425260885265492520496390592578565716926773038787926361572697510019779724703880793764054079037375578555378283305323671555502911917467087802067816998111810796919882994399150834499325842380806540363096309390268545552390675709578577409675536406049295551459233137414131721984906686116925350542133066467698901387574510283916736987982230677597959847025726038738011099350322645166740836418773133611624232314506703767674531393901597939563289011259512692979983505020814671336371341396698729385134362945842705615769837457844205089814850860591496067074094948554943696962293168335052581397476175140748286639070544317348032280184410969367308827142687010880205542366878952924890745385030942203186844321258315261945027264329970551657553559047274654245273299261166969492776409400874933115380281570741229665188755391742770441813968997703504525461170305905170019631589038717543090965856886708444814852788489033047636228206502638660486280649448291912129453059857201782982692047289561145672746174283710593147678907529126868389048758547687389741323566088470501331543854798875070453186920685832956452306117672501414129054284707125520025486629688517492702450124376881393389885576204362199757504672403958033931713285153941294615165953679560626304273256357956766508608440275643801187732624308726743655781658133594420412129025647645514684115623594598551146250313488436924052885677695103601797186418601307990068121515758540527470449955189863290671781386248326299735583200191854010862927979073200966368096521120211992414951568788759232977251062428960977531593708697347281447637506481772671443014205714214590846484177113592210203123272735767569388060926595556476810245481202262609152878850401551401288251624992806680949188726797531745262364547523815059982723806276285102979558351133269681809002912789953922889581509694640299253098383742649263502548224422770271487756697071599246863917669547589922424249491794005759785448592177295761331495482788255802445247806314710334719331184687112995053967916841851907158367624871782966459780272963417863287636026402181235112168917730709684765799735743027559333545269769735466450051587429453755671725108634561674965867429299832817370104382762955772359143030850850719817095479744032284161860830342115523381484536603212924267259469082757346864834122820001488981221414764094006810042321522312615131706116247697478993639695489213024351073158774729989893720456242517545297407316063957772672782806260997884996674048239424013661961528645690387077853718823736521429476274014978893585855249768940549955415015899723686026345680505512751470339566195651631141124196145358626211237213256849704137893785716958413172358171561670485474710642263997872228657623538374857699695105092185654037015135509167732946679659714773040061078117240119315105524160130268564091547519517751218399111578823616951642355236509878254218364093069810570301886449094723498276197722745341553097966448684605820739992633442789314781171936492220851441852202947748162938830682377288693548532996456628507611808000929014318187779074792961320853760268163405325192654118967214320088530234190823525354248145926863866336821009839487450265483676302689270474849081243033926085075303714572564919460297132349271087311665957500086477704334328881664589011237351757558961899641464488177671674960447185829237486446950601712963550825136046441720812994573536783588013054527144869201767243602886662855171699863833819570159232626309484874892845383861678077281328465863682782817767125027469284714181807690253636031001597582238272569707614345932544477068595841833362676136033747000448153863134879629198703042749513058140778359182907388068613871211322724827633318362697793774917904660769707853060502546857887115666004100156170301332551510740638466525081986376161218322033895418373923623713209997572193411195155902373931238800866905127073157959833282381228770911179277079430657067638187894623824888781143616047463852221460897585315439761083888940692083265652802817367409391093930921213691271348486823683217745679255884762750842424351123481120459510713301299958257122311991490345893898699754476891814878323353216116252124763212418004453661315114444303356272220501879089041435535280992494231914851462752587273345710020121940782840910366325626002251147796901793832180895116152021270447475308155014955888311079445863980059507864817134958640032579566715911337322512722683912440155971458608044843048535409137251229707167604478329875153657447003409669435525046110934945776526747381453997779927347125069572168752854577640472432813936570336616773692361835790456204427961499699016299316291248311446086090006726955192570441077310208428608523947865963698594708541100066580211597594142714054586747999172618070081249582071474889918483131422842286424914895613644959999203716146594452124952835896522247186631433632770202383871591047110198975454236286452889438309814912738809998757777123644056600698597062933499286162324732448649756118588951741337446194064384831930210082614009553475776064761293560048480920610722902128579895044953472916494090660265872953828436699223138482595534208895925743984261977347228015950012228990891511427640529321458272377424848839333412070964007991261206976116729689129271935668856052671318136990103833768287516175300038569332734328308544309683952394855568397066831705105896658837642438142624520099424976101463196677558193152099188864527641026792706824363308511692675426471490625636256244649253795069976265187247489554724879489504757619667974180149482654571697837029151980873298937492967190763567849991468174687720601137023672932974254018313941792111432613393023536431983657516963248126190831265743100931025766213425205842745711508114016138480378939914923342236121490104808473443455249609144791983066153511095864924164354991082727814507840575446220302442165079970370402052205763343185069800298517939251599276930500610293254950291742751408296416363749523615509688019153869937270967555358011478765517060846641035151581130477491358337565562694529037459391303288752522862004873742391863172812705042178647537313090224992783861950314764701247809428700034831277911987256585669914173367668764616688390982277311854949564386590213209088195788704758229714224761932538750668302167875903892574472136141740120074971838103749088289140324668754408199844049997870856824905407236547413367007267959145350441098529892549571948796297288400581158873686070378211817523741977462812026520437267505243090608828587684633015160593304674137408274512501261944540039342713396783298014782779571116151789254551582060922762371252812774457202889321446880788521216673785964062128443030431173420134735334313848665538601061980100701407594248233022901372490573460993649315817012797504042373444482411715509110675055244287375320899112700413646317967136249120658564739656953515984167196200777783753037330594763366616900130653745200769866519660656942800304174540421563371054710965239660574077477980294655774199796756125384943953514334031502262377901322156941560319015754024748166367625017852627918784781715002574442374869139434976701035765316859382014593068067141983505491916962049046600128590678369952193418761816411004620440616279393425363249227078433800946563117441908868437396882014170345158228215603674005663772386003704846231620436562420092412596040253649450250065189362255903242287389068994511186714827502470777083696298160405974256113332751704354615162382560764006958905319820597158384286495058837581558115160433249654887625285728420106480456312782585805102586756156051746318746528244382676379282217294456366716775489038827455173397129992844008258619016671097934761074857684339020165485210524647990544731656437246017080736901042706403631751678719636155384217422456519159197756049841398136768414697819252740069077039948996947859154292172205621276055032254336507153742245707024771440487353626803768778473878773117175974407645940895880353647794139491560996346468986570532945779473020256183770959950528014128088589399534852879549537958925787868215706154011894058853601183149049613492455431225041781062604187312708698562363069698152507874079683743605569571298997442364728965389467484124198927358278116264048818361390583482592711587167875848950414156428682307294369745557073091851343318867614279059304008540154433593687323502255819362822821550760623656140042745328535250685104739978517135105881041590118713377273623614464740437881084505122893273629093823901233073291162402193977158791392418424459617182769597795944390742916678191745218925575375925940071661261200089808496750137636901648659950788923521504101880962936300142077855954828113730490940992730707305810575128605716425292657950756600820884890066457261630637156149498626048289299842261256646537350796974318872034547062467284779665881775235927467147001489365064437457936748198989412372529603953516169677840292689088049817808051332883412470111279666741541860943883003439916071903688972558784603735334827145067260016479587348207291720484258812371786690460448475091995996716699285828014212479301676397905283171819439035868615328729958565704716758615750144389171241125970121603473448908818856459220493772795720499111271230251513443708775883366591792497369643262299160596085690296529388920032109411885701138251929706537377442935053257629924220566913782132383994737343279544300544385521194075937098351405846331307554878199957964149733393412248448463834472061708172736618921185169403963741167465621679938944337555710990385982270959701272711831678921251367141734529584219661019894427104305742564380340141830548953615518853004484912428396668966028688197682351292078620210745300715005696669983242606147980551067821838365942425632300224510060085754113659913739952893549986471318893117594302034581063696192316899120834374810137163788699589834299899026225377790403309901175530365711907497255821965707210395033506801083136544326916243384648814849054677305868789768306495651914593845403957015601857558518116675661412071038849911721602446662040120358445523654862807781621004402007949862881783695339398933798558463834608940056625650788963810384332946931454694056602342101100546139537575096882331054769377357363646267057000480938021476405661202012818315190114239960292799993745261475857886363309781176366713820043776561700658481862621906647013254421316277439411121294908507935608950332207608450999945046558971868426714350247426780694760529617076711920084183416269658590006117719526788919615951979903708274898598562479612463968327238839573432065827939840129816178819386256994747972408119721699236267384021967730936492870840409493497256702183923209307559094926754454639277733228848555367093766062422671411832378033797917847097988066009993194565590061191828231021672746409325468782598199745594393159324020319979641954354975694994142958959263243753270384988483681848770037055194782031112590766657819436301199240840457310838228532458246792494656294090043113156046023037797938812597814851062260249504150562068988644234567063358876427479706945797910247131915856915261559960127680864509129926912015027540902247707228987405087081062834901867593475022749029611875609877768864432678034015005094853306973309372834518795447843815200406182015965435486495845531232564379430641984385869660224114591202914507024101824428890308618518540415614733954080031187466534158275852500922171146151780264185027574325908344783419279077280009278508585409104593665632151785594475740807054420895167789068820080009476194244113266521354655931095252820701405682595402944222464754166086284464494076842766904133656407564312687767521235521643006932905052681450044170137788329802697717154996644348655486560267606794407254823113248394675491074121032111008999464580191347403595544855765080658776035292349574545101611146528813866669218289074090850459442117566996823454636370894986179840835050436162349919769325395922895145273984826150381544090546328388763826097774636399968958769899764537129010611104475705555866948151538362495531370666459168133780206124420193627181199879015636750002015789971400610725127977990752186641867577626604877800705626689590585304829243110382738829250569055127622990669021400177630057944011299486118872915900556569696894715040735938229413810670143844211214343265692480230927648806615338018205367582339812117824099756879027214041352341521120365447868210199930657314089793626475302314386668633593194231059744533193227632677534486736437952506150521111345827114994821610749799824249167562105403403714249366977983667124038120113704027834551529991822882418716078090177895697007530269133844632852568164091167254755756382104848678167623702126714543055926741722289251374396521076526968392659381014754585374420739732620605968346068000005300940269078660984858756518962140538034072338429146517062044170652243949873981962046344101388909917229534948363613771540246873271828129479650738877479099820484934046407422433067634738947803324088909096927613097003040882787082039817794102208920123440082811824913590231100134545472651036258687077722737119768089163295181546526113120803815097456855000955366249422262923196318408003674647969088659926071821896865977125334429846309243444441415527592687059376432523463929740320091506536900395492940907668623573080356346550658709116379866949436759052645315884346153043543356358810969394536428076978528066447373205023225885302939058998555930930774619670111180740157696759551108372361773839485413183185256040465292659324558735720402362550212266102708151440781181737309210426281579740721945049189358060715359094830359087804843337962638940396393273291903625045920216532321945062113448969444783435060426310606193477470224646846629401387315261092989872771902524340993890453476434826601058281610939900459166239344142166836865796023436915942639801236916913957335801374197528664200371688014564620660396195434604706683023081038509026139458144091173413280104357541073436668701015596218965889687159707475606948760880033620727318171223199933670435252650680517877163553032296151794333531189375463073820318444528202202746423915239592635314533159555255517755806252365690260493465461917676303779417892992271621556852742929634966867567629392467830122002760894090484782871969128893240038990681834256987580824317172279635119438221518401267374345462629679072812302098550798795242135535161309885134557253415160089258851475146706341534129444940033927506408758996119914954881363342673762852410874640675544548283389107256708656863593854645416395977630983405799026603749172767957592564825994659372223484387338233583599094364214011245824108161455738658547078532371620640453457675822509173201906069889130980329913205259681743011320883458782485149332678088001262645819154813817318955569163348024470077063182858490871043830315924824400834895031657622869228635109262668373647195562820890938727314206921475889224225434915698512111259666443588737931575182556560028758546288199932925178979601250260394286254395965060155444175605319050505557487469050038356300524691881308014280839715165443850222988442464992716183588620117143887167871903697947780000459105507843575989044758588473870537070492070261787949700675192325543054006813675955026381062705243718647179957103263896382874422581458039643234369608798544344757471505161650915480652362263722712951679442781847316727758432133024824460280777083945846562864996815348797836139424019825864501215279531506947663917897697373779789641793206701655029546307102884483454385415127353737792436507459507019768027044559986736107769241476981020093871185133619474638094057786235379915991481994648611492529167208590735278897050129047475313695782302382380104137010206133086096891377911543313596283617438420571700920215908172814765779409772549167621486640662669603740503379983126009933342643131104247793915929225773884623927309354366896944630045843938777655851484655971522691874490912688378353114776813498665187206831694131040876814296033748106745892381905076237775470903344269703070791218743769433571550363262418950914358296947942475416504070519272122174789728162316243315553098102806031461376999101101875080865861060972970014338396712985452380522955887279513728378767859955250019823316728076855393813328941553704992792749668971590130073398323917861011114374485683876698313614397695457975306524064453156738643649465957840038216682380322665144856942355165460396880672398077977759973196637600332562316850972970724395008209575612043016131433268291813704720991308265685367752715139669380310152530718546602300880629668486174541215234459855052822799220156634937231617574311495739983482955847123827549936106922910840813498088882316894196526056636377844146819476274498644672884015511978060629495255179651326025310311937536255277454418234309782629860318021266802605570522409254809046237197090151243664344563889665580401286068247250946380275074004013022503794603165228274416038848515466519036209033603407515215657723024475683129280885291243492823817029096979327225235870860172598481690629057253301852108767479240950083666341327552884596791749950282710879284269819909342197783910820796404397951112777468853070558087529684616234301646243963126327790545964965223884510462644923439773697622894338370798037586648971208967718904437325087653418079067779876816759537838271571430132701765367820165951262010537732682636050193534840197886134520337149020223155228392443493468087766074993864754677095292075730146368793415925131661364323147890261365026848545960003340438210021556669503020864436411623216105957460796476230461695024689756251990847857235918395678056937451144703459463751499461940299094259061774754206053923929825591757471135408827747075440005220604908186492113662702830412674298130400092187645923980433758205349525090574520995502881359300658018654071492968640906573493325749327382249585232911189935626110789146855136741561545170075226965905380391510916616276066476269430857469481334650310445760192226731015909204419543604831240018795265513499709951445817130840695746531612461682501097708903942860726781159441263744006954339249968822035911794464837170311278928945553558614672369393967949095917884211044124713770138093425476962990605194423122083500518888618859266566632473282634590860826290162153305229694202362354860475036320212298479236303190059127501332658614073302250890617263723035784207156478607786736445533611558779005702392189774490797964213339503352532916028732656195781383360001636525891894113020120079516445100005649526723948925234103505438671567995250354004531986451989450964153258605383429606338036409692578755674218158686235816981047195886446650099608611554850060859498347220215359323075694518850120134311812813145615344087872782514790134506218874131985400096390229709287206762537143220577932253405492004981655118238170222626596847144245658359754378296332617761267424358483778951556472034341327063215304929462051913009983847655131067722385958337614804518633233776285028282139023599318171729341972403257930784244373807310120467478332953550945369944410772882156290168335761742441723283038238726986128188693910773182747608225464849374816406134063120139146099301829169286158908047380746470398011947954958898980119121832112953377598049481396312052923511094189022852607967162223414599450714940386784174133443778389941252708196249250350390235853678111414657500183769025048804586935468986123603581328860310182184744066535558253110322307515650502876650483309741641147978483043629691053109817567965217965020716797705920742717065581600261267283805585327078452875981277572029019214193081978648752706477818246817164181919083193362123025912386387588538104444506639727630229373454215520710829879307583309105987443377952501420685884346052322532841973166676093430762869630028039418741655544191073448982722419332731805110626071170385383955880945610637643910933697635153756569461358669429888292349932319549249663584684520766762714602829147158810569582226163446836823365697609376340032800619604804557067892743772779274691183294416160993128019161376432076486452622721742787591067919402497326572206765402731265165605513069910342759181724821150536027392902382537958883536176482777247095846534233557797757935948691967522661382440911107574000870543873180090692926927042929085678001912427677896501774464561297529999844151453112566012653569610913051673059534082860043607540146647856938640023230767242915019248628481088268608524488898244141978408787939557453737950199587684260979006598643708367737021701925104203736179253398363130153392320019691120448525358722875364828036597724352654251153963320810641173126589049902529478023038203009717233857209127037480484514200624273946026552405293751023081411999611444637680365286304571293012230978952084792911380106434511454801831800378654557781044984584226579397771525954512378951124042040791895260003585300258456801490411874921021281640328761558533036374728860825253548205739777696209908903696131904235367614941031796350506874701443393484749794142480284132353322653046610331519771853687713362035303441279018273481892690936999857029999740172010457353000602305052907498815832706117861274643161302323096849574312492240566961466116978566347818134214839689166547996338319477904075475732414494070857642386498480928106481004339893246329171607081978517698694159669648694924743494231921141046364183581358117935974993565310352469741713285196712324428992446620885858036367339372139408119279233695949204286753671356769246877411696587042591922348609196939606260747922109667465858731516262196408306739939289026504604406618312357897671242905746374680843879037278178009289178541304470032225428302884969455129174879164157490551607366120084463700942361117366141611004579424017513716130097971175587531196763737099744342454399909329327867161542214502240636934051310956778670771443988819191499948098774927889636097645331473590808111410923996944002703965923401572985185729002365720221284986100262891038386534700697359271596626169414076396387828568030054039834775649709403534020290794913351286869932293500051996999665728002935059035264564915448643990787340263026521372415415589648489755989343082160203704885728048928451829330158156235886171773818414232571370836016036234044679065301370935654160655540498062341056848989401545301258643521647690456047730733324900990939663884773474338768150491583129704703045957801341810945227643936770547641853137522283715885481406514937069140111733510084461754726664640086067595386476755949259465382382735893982298200009167725429696459031007764337449319779364694909238096660927163881806916736998538211582839724629666707062780434160799725582781161734892944774981411049805819115325745084873183374217050207814152345893755466686881356157448845852377426591187883782071717380326508850620777140581976097705646846285244766369856806216101552142592678360208566593598349491860478832857848214436750334343398148066826016587597172156498651500595361070505077128084191323004655210696897438962590628286867390597407694303868191999282043748493299905160805338112179007905645423734585233391441484236264196716227031362978116385449696246887040114074193566619698371284927108033546357299790945924164752928815687365612916579020345923297786599264339243420936128496297194273454653034759040797711861709787025459290593793127549141718358102866631481346623525681450258167335394955070084864898647305788568916457103479228803949965422043942871960358278858822003005772973403260472846723763978436317424040009788188234488546657230905191126080386228045324870908782672095188628194384473523438854312822725842322884822488715735714324738525306005001909985676466775856928945280772791408021185991631455792377411508506831936911202312851057332213661187659347522685191228770911574848682778149214594832298666248571013540441127991521483986394866653240621551026873409479362852818696767786688062214967447818637527034489231271537787614721873177159815720811803662993212848937996155247970224371009527434229299492118590273549487217946103705368780870876606428130872292880064912355817782765543743086259418014494258499428726383625918484277153662761905222130796431524347202379155996462784730411348761951626234052923475772195136802294876435453155419575223182150560209949081092986011549856050044759840159604639857926801313759929150694252090998293682532723597450764596669819957941275279709858518508922501621994048931870759125425660775565972099432683872113525599246506143631995943541315881352579492685269755856054218872448151353655582757265758197833617107267676254865467444421666677405838682459482984394813082213501098381333815761908120773261978323054247317545994410672311845232484450074259438350082130150700753695394543355895964361642097699250849142952437990805696894353187763860446371285850150170716571058801655952582563828032961432393124359336406237121475627614585008525678401953638244639344094770278483487226693689825691279272436273104496096038013407841266541605475632222416548669588374462462937285674898773845994304717129744477418307848205596882527824115827166645983900659083084587466876229757694797210133898301632690358381879682053400271925502858096341607986584295895960090173497309086537240970521778995426437891863212566124982913958476417921802302635219852325237860494773889953082022918765577733831248775823939493774340450559927775323441123082607715589630784664906929942995828897061599391381294145159141385964139996577389865959918508296105398690494904184162067140152339948218116491102651034197561604788787948027634329704901222890717346836072956305963826376837368387745923478721813404590942129998128737417217150292043917263967472058884522137340212790422551197393492102576299833461535191776103102088328905528440188616498212528155431489411668348693304426196634646884347334218882660309765378374093818482536451475215129360788410534777040190264445600755684116976461747945768359971453589815379263222468975485482647489978087073508468792597921881971368036634877426564011378869232333071186764065780992463686773177443499972951435366209966772326888523264477371982568966620070639809684827001760526770405620933800129778706367678829193843665667867302465413068344518789494479590329470891874842035652237591462716411138128592271316480213101616486857035524759068862784355968073313580066737442088831890649016671493614056553450142740462662866056489591200615957814357144857701879280021179807472230329905523416619740206632841425676211627173507562082153942988166637040551995945621869246450403182518972077208216371132445614243707269653998262199078191142756497906848314002091053796273184338586760614971494941013589302495858412310991543888455308207969796469197652900460350019174682208281500584082952975706540301486332793019992586159686691151464526392133567625212618996079301507357898024941514712676314738227130706271893113605485766292249771933468394411026854626429259976929939553841404738108439168206832053538166226708319495501758505954113459416411649564924386725205798336280610554183436374683077706421345440501464555931016136955395925623017850513081627307359343222237562435034222828058121733922600188381362170228537092957105316086677852757510277091245659941636769776059704280001847924173625971116285574485260994235317656151410597124575349394331932522611944417622833769363161793044164924040765763862845838470054856124035915633210815796859692458707345918857907717844098946766685197591346819368996983384228741388313886589602905461728428758355898823545277915632301735388817332741448322025622949145145932432072290132861949125949241721800014541158089183435575433982760078589393086212142918046212926313157282328634348960938143919218135752012922488957411688716704932396593007203783164960371551313818110091560816745587596666852165751709914522604299213238461844597940370542089501480949509677241023206801100891086538376635556055467266043147755965643601641287768711679052244821284523377865088596989355103363051444549854314108824960457805297551752737749703682428097422674603170950124169499673413719917335246540852720533918379418905046504548507751725246710985765649385662650532243022120061586645267340848934146041205959870430982581598107120954908510003419628457152806577731551107101049947013726473254312014011622367129233439761279869328619790090806447345810581388618650062000965784706001768327530389014981571282512640271139452350677643246156389459108316563630072428508866080235997251541184540902339215952348048997213806368020977130541098797624276475236304555813488561013289614764215829412440120265715210216689754012729742559266808224045235463356501844871097146075951504619632139102622880506694287927654817302617421383127244434612653417162567981060979166955135364912072776743954901310058176529459372828951900116372432786283871126147589298908642792913956801457540836215923062350416867893467024357462174786212930381245753818277943209673418620454311694526650178636992077948496926156150239054738898469952853640018367690791274403872172833089052759826689345009778574232833696082776945477725485905147727192850394313425534919659725140911136835409728837875167688898830607855073052327040530271908000616744867597881431195942060634669558641678428553242480302196315703522695580351172339067357520259163371324473428242311622685344569395649746543084799778973534027947426008367210698779672197088985462735911081625296150351456038459918512701522016779579640215193393137596710674602638236919705208880630221228799073409986835484244429535894524466052622887295298238665358532389846408911652993713462759688048410771898472530963329987960950156281785716588549380137803475856572866689166884520241222152928918562609322001822196873667329335553905213359929607384916057742360004226220378218497541523159211769152435519446429344538288340084465447593298658691699173452319524524470784167829225942910395758019266137496143623174158385513256511039130188474389928794062789338606672674818513777572222445498689782409919787701866116057693561755511994810759506026055262145284275335288679679037536948663015545747489873188070284975784993842199678065852656623179162967684456340515105435126863139051376517740562043612833999809919413623300015553487294158656340279536041051677622726683599423877088612331721844799390329444406882996985321169536735860214820263011451388349466090305755540229242443758859417086599145798175553414750576307288447620754227920255441858333712752002692057634499831277495486931918054557482840459338334784241519216332409316146183298152100707706744612114236697588363902350428927465034498341879063918114251354805642944037529972400458411239532110463127624544280469016419677825250580520308267227631712213950563675964187572453921120217501239180416453760063909692381360661370598027898905210611091054426880541597528388100866805283220589162456312194274280073433209658105188090446421165761858378664861632930286387133350710352258632309588401126825554965132442306241781675112339166818616386864904343180895086246434645548895192863248947341693586216587349811701697183457137386923921109382989239514754253012350528938660122795627568858793566761881181963216777756897330630255410482267201704925549503361911929662531916710195899578162966520353425730813295519727867520768651210099351682201159569473081679744326904136248305902705168263806664339448041571604577969495945527774849363007461106740994414832522873632018987178425368930533923904261159900221443931195899211281857641338853149134824622273780711686103563604100818139584649647358554417585279113253678845994932608629333190480957684492266101742941132251166724438098345476572532591572749732182714010749318623824471644998975498189525125088013361690034919681456001519663261798461810511382512617054125258391144085815784272632914683488490556146645557349282026459526687546753018587539284326374198828223733184531947466927995570320913779997349792852005213701611723731250093923694313734574693754442768922159680822742465687229721002071045938701581855373142663535769191014155966411885426551993128827453169212479720763031839974048735779143461353278020641457605727357880015147501348850094136375127609401461729691369797774949675519854818732038094429812957554828399858946260635332108903013314979236131615549146447534147065698719253625774448126192601211239726878029742968381264951612160153372600202773089454229951640554328286764063275718068011960747034160353669918856104363610983539778959779214896127737442657972917548003045602805153886182302820869740396043626143038798265923553794773649576426980590587326550945806972870443061036720434811662728164325279939739477385094270249491883936766437128696047878678556521308074263596371609890796805701277371709219291648790170992652730517547866999285713602398853734715627008701505474996753293687902713056672331858742258951268032815507828511283873540876821121934889379570398065056050402538319247560203284624822694439216978871406877501395336796352123705258555405416150042908367166229634462849562975408246399647129644089988510616957455170694725617752546977331001889618031007310913778073673105852950927654745963491695380866357813499988292965645460784253366538707521594907130033247167217675990730000801015430635659679383062271786812087037782530542726786804494694555311253644345795167405017722497283282880959637920693620930803957440465192715720688512335347882267584597814162614953258513476750715706307469167677053048365558574723269185644370100608239762310616075313259003996624238860845217800169346173092141821688472229006402842521817953074169726716605143481500373745069010498043415067928586153441597839551112242665488303726107514904121214237360629231919556996829798009051521549659275162190605337895423449375899507921241032394066650632275887945279293190440029031392798817058421846607234265082832940931298164634781322257263645202297857191313482657009499199188590544232408563963061819587627138441162169707976510899455238657614043982362057184106882366066319068152470236364829375629545589042706058865193485345808188993879863825411282140555309716161891802983169610136674946621668709941273691015739099590140531274082927800310648830156345696154419242366555951479565291578570998115895027027483789359663468087944445032150226461423529442521546278152418912944764972050354353454356409712473722870837606205427484983337465558053047090862753131439890921525826524265562274132890706899325990744109950397240754376039684738186487087650923506639405651922349519543557527326797585953598391121073918333644931560633031888314729717637368839047410886755490526661184050281609586709693411225276956242434493062198161595290871279773866785210883583637048762630088537792239385888331553668067500365192936131177057991931220754191800971474558776899998719049538335011262192324470880682989394456202416158106224176335105497109645152759150453625357324844808869872107660091950395788606855797564187618482921046875165345888423128598812558733274038385232202144399503727543173884774035897688569623172295685139372459860110403423797889063230151719345107022720981911135982046926351499255711222422539748033255035850393994001341053617938937631296931614518898807272721782095157505043984340633531092399978984503613551435759604116728283223239192367788591528858157154103082450169845394721785468392203338919488934311966110488469497972281883805300909816743657690852612185294745720065423732280945242334759545927052197238006518396202440435444442359500801927815704691927864926025027828387900230695827644155656903841174119299709093881041535101072263110553340483190348075567780112282629181124567525874767673817400289614637966924640810529866683958983390752713176837726841863741970146592209334979109333819726767662957364330821976893343492370499311239949803388594126107939154969979189956516860767862049199652083980915664389187497794015863033825807106472006052494364848616453953377514809285280439441887077437309970168482074709030100043356817204288296884937079003911874196934483184712056534549861181471973204292075466145166230440703269092694203841882804041621566187292694987734406536969606486062834868978392822051416906091329128941646529577752611579251032789148206253357328242773185989000815622631128639684958115787440703545542633602466457765361262339086029320433493530747302371756411246323125839349280479399848752654028168679566585446531570758562798140345056250150623113937170647885580681660415394977562937952234954518678391270749350180024171749665081579690694741771004019724737452586718725838219429716300270258001231083929739702665670767971839563713747340678991351264209593164916773275721600104779470539265612427945837584397475237292038759404103942107277562774154289817994937052751864378833682421630815943274191104478912301002632604162746749214623630783621081338970786124439332060462147221802742462792349401576632854958650575918662294200353395955224926830605701107977535365004251747381656975928720006096099666733960781176818890404863168722935055317001628358233515146532037394831438940794253063212100888960873167953560664532376000131967858029162986956055580083047540514278817366938893621061305680105689393044181094197370017329672172935318335679206664728307700030060500283104310198309715858119563143486717244570192828646596555499364804906806366114287036065968291083461622868062754363321659339267727103164836160459432291057835113242752360668200105201485233029125792280559147186630625835888877526491342448788962663615297886694343258817394943437878816552668571157043726913708994403465800160473177796583428509172000888273747931347144986554873475085339640217990768164638410325433603742702143547876609656651637551835363773118148382381155877610609599714945754766853261297795016760557826702937102057899650163072862278328859357521294041862233938335413271220780136338257582493337358128638688759634937795878637853228650208764068528905513045735086872218603577479497875780196321363120021265384325488870319542234843503756409316090111853836263247196470079338545986607970389471230324207435540790667136247450133785966253812489508964507569585540404143339205072390016772718605408114467235577200471632106778999026303069056487401787984115866593721965557387950998293567076967133181635567209636386909461870740573913877103349141939811798901221136674288587788825988568948165915429331551260537836527247803318445167928420829756286290919642069670905180856172333081024897363734863287482701576103624569289192531222399181116489621429789502072138416526468737326304201696099227557710057200544863746500214526067523215855893438536721689254226241763596758989016239075784934002732660861646642062021032234115231176884290253057716255786771182613143462170279769587871581568247644277920639244973573629954022715554920094066689639481022554638106240306031843582990469755351083216422822232380791033554950651221640462249459171243290533867430510998145600310209055596059061839914577777678821707296733499732144569174502207076079332587409506191501119603311943045149407480842834705273731824829776867752697769204245266135069092423509452822627511688053153855705702157596895873362679782564194155361909134449820603814526717647425500678728185124806353517305847084031316488695171089320072134584166281008401937918669453580405552412598362868464549417658816983699059900181353517862186762351133298776484422411830353540000401667777017494999045469877821745982895079545703605896293757755526857918328959190650132163752536268615218166010895424087864434370624168344421974201392874574649004761306523937519592243575473962432117192836538234491451477165290659899456054593555231280741959959761564812097263644921956769928550075960456084736244830014696941285447568365313962562328797666678384322948794353755984187482215422886949846210726703719266788902403910914704974014913000112711831157650329749725625505711313829243268765979258100676228033397672809006479540985315059872760287648101381596150621195535885609925629475697969834395456448188850949659601231551781288218113495324918192337764413886072569153363528274800970260883947522337728046983148977849736202859480619744365568683134694691255738557344896164396190451469678249512262175094371020763797892922185377075970628411024641259746303675325225543090255154227169933397668921863687363550557995037523199521672022906448252689508355467179246980131872616885387359516967101276040455241187428350627653772738535548494904265853193697896087679542173543870911980786334496616989247250219337709179184851211961985099778745700210564056668342985388472814561192632956678639573269699980455196984102304532859442125713098376853496418900558936475296681268215628144834583961852706980759237189694657798903272587226430065382993308337913297673849732369373514234568567618362469739614053654612637046019754769276892405660565378496417661409334975670661859539310899831652724362749694568509647943824819963137309684898689192334047802446041538051354664731171581519221494996483287268279437518038102669427202938105683696293247369186703136625479737943836529230103399013941453960470535070602755987601921611667360724884758684408751145312161509172999886226304845063397980437178715510693867834513221327393525464203491866030767311372459570211860713927727530346530610818429148702355499142255910896056790777885956199039276313295784526386905710566296133657199827966186554203473973817290054911313683362730313134174220022351835207339590064289234823396396324325093231077611193442876081738448900460850138485006596540035924775258508679935502761213802833068253288776423869109085329830597344755312453365344289900834908594262344324102699605258579761580174476173829858795631171494321933444459159724186412933704642202412858885776272671070364006351404790298787212330594422527665548611008751205477170461978550687551448531619937929268568862635352031344239920644372547801581316961540890896490188110420898910697578467122333090596427331210511663198261181279858266038254625971315409432632644120883036135780557038659009781910881769090363859801788442909885295304446564566482418287136943945838671642415001792857691060598644073903894210900007362440529524985177191476877014442681045877084717868200636929964695722548729658689763978795037050047935506378556214284290785110221124668093825341554479521405659025890722134727637473409342713462545038429132569263563062407368320244018125605753782555494951751774573126514569630710273673911813145176947347097016040664388685253926102830174191673969884771086400751580346363795982942500327796102314938139776730356719139602135099205489278914467487396205080667345187233145866284709546194121307912047597622225974748607965028595616303646166406636243145969594131548869550400647376536809020734852211863193614996217619235881429339231363842189027466563398161220620615914586331550322802717357565117528633897320184325651175741113135980993772422961463095015546161807040269278028194085615086894430393593065614769864545219024840931586378040619960054668472814105513799317720087141245535866788874730456029420139029208782727975959733076567258357753276456199517444694855076099698422978868084868335432274470194967357525578711870529462141550730387274773467482988824808316588336978584847095065859555022008459929136988267292443994514911814311040929241624289196158489076516113629478379306721681429325716118088669052510971534896427803689574136684894431151094984828237712087791358513091603095671328462865866849310954057735666639460270847183923446636570918153497590071228057070913208169395248230200424898093164313329085721118607410438873936233562173954801730512066862967150273669110742586899826326017878702307818553642843151166617913902934937696964953345192350996424512834486177533512316029866788780368499250264967153546213714114550674796195692139477538717075653343621743857342683482503090943184149396343470373496206334692696483373996950326690492082502568211294893876728909588962456600181345047648962880463125516224042539937852011136308830798071959268970878520570361757608390705636917389603435898378988878676583983862102338577401934812350918735016913139507793458393813513780882121713174650361229861937884624148379766538413808642363492095987596149772951258836003491678115384634617894922103614046150094325455526952210979602077827151443911327634631238604927112770041427176019495846629936888175155792646762645153686309259319793399683093918612774069872098840930507509796891461244272290389006821976461564254956591528123135667074502042213719056814698080891339808157376395415345862704030601675310347893458859982412409819727763952128950312286431356758012896432934700242280079000016976888074326159824260917802797960097111908093998121683226987201971724574787083641570531010551154786278454251662756954690631823710740124529430465238400194958364755357407971274657885047985554681310928042926441212840298369116007131665612126560018442000516564223082590021110689811672720294581125152033531314666762872507300705996949467842781755634657633668412022930715276098541059075873061457437344189482991048246515808695397446081964393993011112271212656412518896121443228412787517885693269193778974764478908666328433442270545143648381764545096790496382698132830169476460716614784085433185855403690585697549239092691455181618145496035237099797753976678904919580252124854760037900786910011543077602458594481492356889450579120520854422146580247249207482248392132443836214791442387594056655191127267516445419985339890856635389714737053569028138536373226535151387838131849914662663496862131700348021937013163024526503376304654371601054662995264867706618238198152461282114406006252339741815087011243652764628617596129626977887656810407328317198300475947809256586121220198861098520497494288748422996682108542413943116853643960385296923116230723340463779052519591779075898845634597808452894891953866905613938395893003495874402394919664082681040542559713032603903628794402679231363282403298559016494127547014757639915161078282821089903332425627769250675737285469318031972091421163765892734586556156989932565084244988978526174595379924131531670994352191019728161568898573012552100426560032383239531999022354327526596320961643405373230828497820748946805671272866675280214539660586866174967150757416894503218224651992775604255821569130889291487433533462281773822188983363272080744556329775484948102079361850238572544867552820301114338300383549768000491756065696192313722263436933904427668564908977552673970765685056064439051071930349142670341812031077676361096845016975099304463174218320312947156001109056981236995974484451454201375126480480425385031031938182869633562176489779105712019368922627267012542428555987600152859283297628695136649219476363977449263023077708529051150830548043157921956100969196936100710195671352905058114164600884856662243762537685845200660698234578623326324329257119301265694744624600442149693118656090865531179244912941155186572495993570277945701273067524781005548130354720511231264004046119839520645755936670569241284879462487243815986872510851036533602565778513280600884909894901803147739397203247694691231701112108946835520905653456906422602626382676281084461224839730180297639282951594787464364003501675475035884379761944992766227381848666047819580145692449250302080290145347620600551113266905558366780001158475787573022639418425968099576204108516865181057430720920175324879185449975619718467484518413222491604660316208035091476693138364385340369284718866162503325904116872815376050057787004357580259779523197151944385638401932232435000087683106333675388930567538176609939794750413406846779699599187220497137299273071963944232164845573220490001210512685836485281739621034862472531522631678115698741573203787970706523642825906721360614340260470696442424205988494031942622839323187544570569597650475266581859107448566482182257630189078907804611151518186631128612021396866068779544384364544120145956347683116730978731564535264175288525094468065328063810049609321435784249475969482935802147017967987046501481453365531918703003028416811715699359020351729672888751912942623227614673915429398682047850588328594249302715264619209280778140734554657220464707388647377994237359486436032356387505075388053005931024355479062353420440544955674516218990646913108909179972464119081097528722192231428105939767207151874444112229504653932813488206137428361978633602363442570501144305640070765666898935052640058847916875214795168096693435900711022500856104382740926052855880848663664677024681729358435304523129631327251555566208363231418984470015952606197561257057008292907318356733681080322218382773063000750024054356954765006500542794117946243922018648022548206939857926479182866464537074898816557200237246431109809502880166711374844493990970183480221696894530421613026691833721133335813168361325754877313796465160474350170474757004477559964487768899318823016033740027968748276711733005259161266590251667080908738165192159803591765793930790591369749483462741832362695852760937324083631335619564399864255416104064955372460926036670691144418725051689861310900287179701138112996806912142335235311590218656615431268949564789186843168582733821929609021040095260990239909674138650850870761750283955170527021330171069941092664717126726073505872039924183338411163373687953610223527177127661450423689882964177765293255590843109953588771236042452443362503665578956361546484110676926133956376282825000799029422588126678345296251842650971622483312221406404772525200331406735893231086027595939933944259428390177690017641608571895793491601676816964342160844185469982786393871801524828528530273822608718910789873454874149657590755913375108881243873061483406410770627930790684804274421867496029853530899939149535430181696624064590667114206690449306910449175706847589020431928023761364717916009415289359520851278254128401675678286820153772443356099601610862169031354946999354937066972925336591535151196962706070715406920268806552993220715611370395358374260179754261821255899135255121718527846826499485060616566641311965093093560884325672057060271164619660209309229255548264275580345515337768939434295903597687114783555058133928350270079312414649152385448368059483436792072233761654915020605940516482470842212770990189141779085643281974714422704903690866212935359539307524156980584228945473610988874370089470325798114796925836826280303341250659193043630176370460448973337114873395114232086604758417989080227205203459081243858192777576908002032853609443501410011541414617398729970591496796016605088368632271131403438095032305926197310422161122687243908872275940298007136833283642077637567561215760338897535031028413717737201266462790058005300510323638740320977282150104076725700536242349131894787386252104472950618654261980011658549283749109007976811255990064526001606653005955446743312082340722652381250487121567084037304680970901927838990608436549093120349265899105232928771136011994549594793260891655442862394826662586251426920066903632182244292341974410475143839848118450096702839413378779142472906997575062779153028558742943521746162613866167718951643725681577869776671346801934602848174960562937997863124032783009724983417443502667811699027504635747634570719098832834732414556363408379563663080684096573264977371931885088572554746052740415405444070612395595446111861093596895672294357637714652971269445291896354718629896540223198300025734228821342634136686625711820035377316975214665324241646321014042213620418853125434302802842582573628948047671791170569287211421389734900879319795554427310053556178533389843984311569269874721886448805852044627105792574098331273390783579639171591236023132923185644886637024358249617446066194756790857666447730971200916864555210474304591775467649401907196874036901153967129126668638371664286199292902892674485614281035288314141431183736507427704802515020870042399101864217647872522650329642188442825640692909638206086657814722078056193432707189548719615000658841659291332963777413931929802064573176395470445710934180343668381345178800853621840404313101663493088496480120570982223772142049087387020858361372939466539461049921784755879610380194376147897903803521095751644167630987412119875678253847035778054336540730529569373627408029544531452555832494362026094714085720414084661734066310720452746054368719850520188765456262204584676906991747209001378644609857844299075206832716035973614042823382799393514890171564715239112883793647779172800489460538510636202282586470385226835526863545547597312095680269855897924206554914100204327850249061056322214080620472066632379005262291902496057977116899271050027780792397048623996186835180417518025742193741300174034637092287936950518264569353562930458182968515606040475064732868082897520730124466961364512591722501850320154542107219497548862892230969651475254606354217952303384257356346340243553518887860556492512689271812086416764431265974034153767388791993850400086346498969006265672263488350428271967404422206894153254104804799810829407741159824185845277219314926302445977522451672035016021927164834606340108601324511176622757291816146933491191562685084569710332068121092742297686823277853437974413238937793723026448566429479619298279949711626998967796297637170583859576519127163064517301663621632107005045536466017832063304801019565630763357627650212800187609978232836358064485282360843695590498434202885331007925833993247503691424266271006913233075671034400616635763079967317085888071865152509346826752565995138027486098905196989363231713977286947731150491946796147040041895472102680106826399524424425020041779356200521670228175537823664227890061919962914880797660228077127189670944995712326639118499904306669471699454203130491107094620698922291012201886794816529953029000850673640556674242800464765543404336692318510325283567562960403803185087241137965693322064357661415094046060693727910652379049247312631104382115057564519140234951185821427666297595011806665306548095405346620539324139026671681846857933292081466495516668154577353741218446584211491980713457342735752458817715798641506219373251491775868251687753364069175336962727850444592604729850088423654179252564054683298792566269452545243880740479740530179478104180794962489294194359582531019490167737660675447591162089187322456578671399333024396794397443680751388723056572517949420378845152403132425498031291034914914818456957101777164167347680992437554279998407792154292570076434700335881198001038517338053982479137710714900156266255022145480189996976564793766763843194290779805998684864219557789959356521650767181972377504848048584153474596715010402623759968472058931377452579005864619057499283378238899279347259865886365933554178854774061954533081315212954296511832766897065589455022339122021678943013307093599783121336084845233764230565758138765385925975271034808799529978336114472912540045122856521546771799349937954185323146289524700766693906643005389737296802337846292556373423784743606473324611844727238628335528359123621492896372718393807434638897491152566353973938473247613059578004253904813317259701866823628611262225908963646757984214670886379962394121071979516044579984925130622729731244625468844013943438692296764490405409520145934265553347492676887772790136811021154359938617809824407340842473070662733025848521582240532488589697000324242452727776225131958425062493723125392673943070377763083307337525323226664568975534347693731901140028130099972426105339334539706177520451562895523767315083441192376320641159238514374769645826177036976860133034651974090553374000970077894832909247365705961221112533608931474009993655407023731978955990533354374944894387585218798852736856880072002843113695175162324347171784796665251332222223848595710642224278335655720674813531449382692367752405619340980203963387873544633376517199741238514854291465379703837134449477873310309286916512921415549325157857357946806335114478423901395401004251942433851907608243631607392447371611829433317507994467902168876092237369414128527358310801849083687248835035181257439748723801291231034892256802934019324112773261965114700787818115185194888235864415744249138580082607146413320101709786864737177639233587360026420278294393662426609783464443877717297873644018563627747756999311759422693795647944579454096925429290829270238244446673806870470848240438523540999587591840906014961317271930720127328211212390071526748671001689937246888542962303533002035499942706488219839671071276731078892424086839909864080079008816053318800604416890289740038811717920182445676246951021270782320000169827036909892145629933530440345917223930417237003238608763618725401091783178903454782468498092291048175299172825714586660079313179947190769944228799302979174462214562402545335919387755697144334324726496072859882042281297741099020656482736402494882600954787321868519456562589289154385942615474537207627700362989262034861461473974304505562643700667711829597916133930259920507421197425051028485328298841271418085254619930575196832175200905144141066977656817151184083095999698795560000737706694810334712219435439624455735208761324713631468801654035285300603704640138422301012420326613759979133337651998417435381931245986215142268699969847777145138216361766439274777353588486897607779776797000258450546338537134332019529972573310378404492412005811958470552381073581793602687920975504043492575055283813172919627558227913724959090853133374757529279596920141576741986689396164502502735728170206503853874781233906726105270427142754941137846840271107700539956102417423028144747751375208699712613347174465712633642477328149165430142788456375511222630960577350650244554232839795707988829905846753064912827334745397784940251723882480312918736952106856615490116438274418825444496446495100095288983986876147220009009424211411980025292678793871893493020753036455532101979345240211013400868060174468695632424656945878680674118520350967356922338491184256448193657030425350702421741572117008995429715696959536049573836867093838790255701231505969099680468773562800459552549916072884261384117216433551642054056522067441212145578314126183234151376982902096708302623466033322736360111839618572374548520762007107191568708283926707646445369862659316966610109866962043884487051625060976670349680842492349272955441751105679230057223497525076273077815397737052775563004524158075338453515983200932457928588670054883350904224953688534791278575459069478241515639911354746963826889600038235297263621342537197516457982652023637347765716718007266312562366114103393169363930253520959325875528280691064044387714094087699091316688818610438763051402079023734338782150720360178070442986775363429357290770093130532297786115646087941405499510312654290214724931630351490975995365219352615932556745725619673044445953007609961964011589058914377340458977281188263622219784720920762155148471243177554427607684151022915156509983274526966850909934458733720874405009321456278035377564093460895308047491422614784121585250546579243044284307806675308015445276957844820040147692577705190663161668485549323221101669198801331109679289962044895202244780566082542223254228769039489748367775703800515340643625174227230583960098503507368607662491094764634585041203166873448348461923073479356191007033691751714647437589591694930133541538938606285052192354246016583625788417735407697455661611260794616179765273160400185386371430947299765444377062211302611220990300768786518768130603005456654139107321653002260227607080589178237303755045499680043560032613671665929502667502610971229276153158897077181752615440262417671335721165315770531316660473291669031526274662443351086335155355887871476459372388955629596287888921889651004272486872425130306508730022495894420161643675172758185089109882775918024784759510295143870757616743700787697902413752691638663280458364520224164948310883310677140420263087012423730540987426685420836276474273830562916484514882412892655053293017602929912680272044899249358092293342982176332138596402050561463202470120612961888726385344167082005169057438002546031311833734368690378457898873738371697143586808078758661213533310714614499376396482020001148473144201727189687628899606518745056344387269025327672207508755385393190114829807947176595482963290179894872533391814301148720374036458119834440313661562197620689769629123074337946572113623163959240893684501556435569822358575870026038854708223198148182721135399838061083217575597086886727452208447584296352582640157200607340957983363529643744547083804567362020722711564160076524106841818138190655828319228627876639429380888733055674951132637947308243296811149668766191869288653103228616637879681114017575277052436566906781630176999936447905566116671559829453289132524605610570027289594192023466850772496452303455035767995132902597453809117645033067945586561249001032718557616346049703754181745330905428571076190039662375877256471447951867629336106988248331864916174927010505438632286296825296684660338991396568467741206635483199354187808496237053123717405958050757134841154009060592368326915601036481251640821620686573779128200514340018767059171969229712764797417349302924472579711412179161821344742095253192502838496035840082525392451316535829069941338754091287376245244955743642848349156187163141016502310378932639371274258209133854911645924897702698247116971447031927558383639618486307196079364852416399241186141440661723403668011092592209114351421142385057170816873908135723122505392715596262168253538909510440183388420645497612989074922271494676153690412258064209829915738497724864708793690360675330169089245796732964687134735286439310153388356436385384742443060536141654582243152202864678194944261484305574953979425352317163569361286119427056364367044365683940960384607497841408671855757497286140664186252898199796442893670085781638546578481585658304770769832170585639088739703709405077448427617865372173345415509893368311328990398219249204119694211923998848113138976873261828013797734976175406083195942199843446499180576598353686722608143390892928389429782772379657857765426972580618097633824052337391246963968434680529909271704955977467895190758854219806302826690826393453596442337883253341782395816008798336607220248744631072954400110958134868918515011105530748679791204118759817175282201264900747284763025784503396472232097743766300132363737391795664906549850322288743200138734236330715955223642413206013387259008563868623014475594107625129424509860735809720730668703443009910367647047408424897037685901337278701451938010436701541517874373290264336047401956787989790355861519310987134389716254156712578436237360600774120183556084113241816660490547342246482418831278177281930635870787101015415428564248265977866306619948314842228981851566130455150575650472859431989543411518182725797094168364994328657211495579892446662437491811936786481470073990227210052413846958957361799592460213605865569452813188648797950190708855631672049473312877784826069272519644069741870154352132437594182620429294782363481365000974661704326964852124819713667993719989684398196581541663788994565801969841118262556864313762424179409742027911374934762528288822472388753757557167547463169998586158328180721547869993473334792092038963817394507440619318785014223838872492853235657734320297247659526625686524455766317083512671828569201693723136353995879217908498441023598821018236155162137855120620125249074322229636700239426293402485596137969392987712772783944153268591154050871249863970548988005052977053309926729938149764988429870493448891938879935858647285184241907333476070991780068062288659546243377024964945285427528991606629824618121318944108186994583235513107303202216610823391615463493903496630440488096404561578134613050860195156748961620931309906356872885891704154035034397834641786252129755451671950461039504980171070585102361894582151261226938965348374509228507306555871534542093732315857822619602712649378568644001683873422222219939631513574208146728248251618608840699784070866861298487894103545528377455919834190680865599770381265571529165306094953563893189725742341820978903362116662687083913237110526272785615105371211012079633117143636739571320521962593693851944734785694404838189862255083303162703432996137387914174444959084529158920003033167245173951012634235029414008123033754703286186242626077389535391628785711093621585565305365200134410354243599748367006152226970029009173992856094260503113938787975272758234069914280826774928507928816342497558330290407007230532184529672991945380435983528371742531501318924931224545081866015146929566136735735103660247467477958384763973096875908146412053533253808944109661442592103514647899000289647851129149408113489503093153666035291943090596165922559940479821878199471248449157498071876216501165620905787021462129628296139704714368456737040843279777661921507311484795421222372730515117188894864331158855656253009661835848041728320164704269084174801689224785862348222485672204840370124437031021581632062666715701301703112632938037839879401902444763154622188863775693526809553220058247931511061073360882760313674620294852615968497393412361986820875897538396636831447026477392535448343446507431389759148390702988226892128210986012365015172164083940037431766322010312988910505990000557334482631765021945342140806069953258908400149708385885217355421218447972016140788372376069992154239153402173604963129640699867697591702763967064198754187806014704714289395618641409011506180393453089898825034104998948850732431903016690543336734463150506081724268353506184836241035487676270079335132985776106744297712820673477411223711911103816961832065505740337915665593870333761145835596233156075676003062427313744636001976756348271646452473693110670863935701935387771084454100028035858604457290679551912532119446881491755157947943755233882291526619314303813902894081674748143404355299862428322975529059555236564305724677287409387803301420019765542865754103476942179825344826591946996037753926160651677446690578492999577270495609392262273974704537612226399030568349408501016135647729621379224459404212603844222489179752329029397280511511737317470460982442887128610871475744127744958327314962304709754318295581479951324718809330578417998842027540156925641880725406638264744707320963181528008798271581089383358947772897355121910626233056298093159909513427497151993777878489799404681301094590684897768598193931726524774088133762680570892992398441610728478179178864106377148567000725059978198809705098729448274201521740100290784838233076703649609452843749855780344325026371368239543901467473994305979028326433037726285952186107987405504293577918539594168027539755525833860103643904615605915774509278458242124085248131631523046032049876666191927948560547904333860739598414721605127382285619422979932029642909251848983465987823021788180357716905747596387248394941717424405774618822555775573919496196051503650925929034533331265519764347586234299121567405140209623057490726561720702711953335924646083441221549865979402832043043958561525314074580456601259686988911834216499450660156826549888109837488420617855374444169326875759597118192797485784724090095915257925259027979947325430337346854908600914545033046410263555226376544134571829254364790918109851470299563897956285058908628187720104740873704094042136529611887474858095989042248174387380586064742278550891051352550390011061656612081748842949958804236546070999231783502230357490778346943451117069672577709581068009520357014071135733567339677247752035790218125890403316041278301888681128098916081262225322469831955327506729652048526216034502307427278094033529559305968151969511178379261429724240225273903584193179541813679887319943310148053684650587925358944855571763077572289416047846234924449473225116630907975824619887172963395823795209960546920533348848652760747087131165243653517704917888675568477128550583076238425141889134762543287558368423543547943163857672238245321873658093539336460155541392521309742894402096515485853464375491756036592774024001533498440384157304119962873403267551109465709394764353146609592582871681049142082573372399841619292582455477513273466078469794632386323623346367734456312742379297868373946805852319463281523674441825793425678215303062516338968311605484123965417058648568936788953444929715601519065943843203738381432760539555027586012797707703694345124561351800013304936482299422336289754975403991926929367590618822729565557723600802515690734492200757778566714606705669965780362847318011342138650302147480948364975596684438901519712161796720258880707607333975875174806613914309563284307292470198591258650911969315961923426778377551851431917711674062972448099424800452974790513276698374452254976731594762864893282767422370375870112312176572517404302491761389603063742940563678271318439782384047231310890755137696878952722527374197062811401177008277994454162284584210279582719636638733144679772634317092037944946407729580766658005514075827099643698895102288902601868270173281362762688724636264786388039470584756270541351953472422717875911252639876241500043252604571977135775985441628226829983996381646642329302328329947860876442262371108683574871884818194009180602343315138259061745460777163709131364292224526333489325619868599404786500094987544921971598967871476958987767373254261672507097953964909389517482761844018264306928534226616706215884102717123548546879508431582206403939531915797161507382064742855841313163547602121311115762334604553093487336058444722563444403713798228585429375309416874247451922473892106422675633179869607906892698123962064159209852469420071749080975956907219051140102638494315145885269459433363650913040332759063139927717527875468593305046363077187384164071724908213551762336787216743002185215829492772004051354397751243585750943068324555634463424721720750175890074090660128256399812918537455079550734634737759020199967855080951418918222748350626087575746624125095078276064558056447893339325614684217185559018729481347767908870276853282111597937321476788145638167868463512493894390380814988978443961522642533167322072936641995630120590695587197045466077151130435972155424580813213730658497707483215208421294390584814601959875457997608912510824467746100526276824857535832735747342739271801716824244468501915459209611070386413782893519850955441375913843771108910689420756117611669213079735339080320212292575160217501118554442258264971847122448768027925800949471616772680243568681422274262173244090942370081116440310945027532392034756691597371064844483186935543647718183995586541269230927979265694246909248171642882127179749067272465829936154143403635522670058980707448281569666780142563752537794978015229017902098617866459667570756352597191929962796843484028019110059481479645332143968885984043152044746086157016727282348259080490901944400926186794990479866818573184805947976885459402903686867399598894787395217888324790864438654701667128861319952093721345957813760065035930075654131693922518178106095562026433439235598998080497788832107783727586272782286651136648123873102014885189042219432023349169494829905873734563516322396266743570169522254952044387394456073402713723434831622557692560983641472711254732265811608112292423200355945190005309321571726814777763621508506970590758751601184413227354251038744264443558517658065926076158397334648319596458259360511550530433717243950119391337855440669948029215216061379780201413309451265629508470970828049303784810780299797106111964111537058089283289736355327495743305595131597232923612401416762584133904715256123652679443050032401477312389554423657526210389806878477486992454924875807277408400221534554030304790860376617800086547969968137764801414986520023643254149594659870047472884148875064627040336712658133637396480669976594538803451117382556846154786986797316195754332809273244391432548083639283320952730622134349856348558978932325736098854345782948422418086381270803010907730566001048994099582159773953340559843717332299666593553811775627736271254273898106921702048201913468347751950772521439468081568157967359759526555986037466255977274921068975802129672058699274091239767056019550057491032914314184582373671672262703435644709134186868239544746589307778130579003247414346798219942965849137374554342032621001297757242074563982662344780164221961340854479869673522788856556937068966075145188097514607397969513794911720713690500261295460538646539450703987958133648697706628915634590204624096819094465854005844976935790405313239645467080084922269280710826878438102350140305055238012254252313756594009777429950235534177108966440484617367244706406925778593901662541120929794379819614746566057252500140336174299698325588656390052314948948737066552239963976648074724547323893974176022896160862847625918866934593401709939412690573232447229139692655899081409029750537408396235536458004552662784297942486858922597428491142257204967401534048026439856714702572574565054232793129451368130305287329638475650522811125286428723991551785386815742721495262064683009746694263665760025862764907152460278706938625521857098097217546994414139965004368452591431104361636911278591637434628234795030871774861599215454162436266746767092710909305458141662955966177349807988998961964796939772162292050358173480796770482681390337345356886241315452877613308985457207910283528717510272357616413721551299199506149384017918702258103767172018578579726942657152669909932300892831937073251132480332803473862016347456664768470013527122967135530959547052802131970697828587861150232695326210828504578780890060568555575701767331962304466055463794139932474529034834466163602630094182780713977896188079393861716728727986536913512386724998126344088417245593444587094576441321369683962528659788285399210285801266071278873923261888123174980150384639946385734917701970055475403899510119129161589483772267825312495905965764202123745914632423271282113623917767785217775564157291111292368957019916646859981284294128047051743877527165459726871890499571671374162121988904420391870443446700792988509747404783636036906659230711867773841056975861409340842119847404532689148489496679028931966695310160205425591508617346342421869107080035664432347539262672329903858765941085709183567448597547713247569768487596857409756709533487472241261321945799524057390665817755619642649755132899943486794362099322522911384629971112824076983728068271938892146049355524886761984613251042121422972641595842878345429051664109407906829788608371977651466901177686407548137126920315099809754336249430907386463542374293735388947840243435688489234826406693939663197192793874973926680582290876172535750760972834534609126694114741185725165155349219187331393629919796066415749206205334972353985050031871153541182872503913723414477583663261065200600014909528766427662052818903894535247474098629111730459761976623749732342430889537250237771129733631424856460931117762357896293433072156202844561087558098787707003980096411207038102833181905637677125674648516289562816578078961640133054553818422609871743609313560994529475226494857435135165882929789052162173169373234672261908562701182051927523992343663954542640746480194727542649721240801195054267609684840896554817667347753722787173785681678385048101270686392825140691445453222170577620151998215755287047921179276623131202121301261416296258317841666960834859382002781177838076159806076167935171541357528662974344258180721720834468839683274849926857619176967000649187685446625996814563761936212935718550477192150934116325531048119866743148217586112777549668675596992468551200930882668813085457985205878404823408909777598535043895696327817776977585174455645654732905329457586962378269776106558136305189727147707532759262510645820838465798284858068569357991615437402584379051404936888390987820188834825466999979658174981733462540537981326217781361387439895878046104456779684954924654638926744415010228427014721674698564477214997367284995701804165305710076436136288935018536467180995206967751726781986631530702268930632649257170188978797448170193290284255494188947674024984937056799028370527170875874424826763765076274816589307372400309558366959517262392380000330291287072501859318249237281880787651391118773541117375519776755108328518404457880838039408907724998088606777627689911151025602114528665200280023749802367327143825768423587267827668333797152124788993944280023613032310847535430454757813757242458875548511333089495756937076357505143440404578051468546742449679996387438239367752157495778565459591421042171725349631282439019163025872033137277355869839987616363181761236994859144360088913634713818517261750278546048052486372038809403680744514320777551819989639393583618887659765241849353941303536679401280207330131256112276067040317194850489374608966275333535956061135334764937112690804249515265376092125567193288341293559971482429485317527598753668707575236388015156187719808124970076453783067970982357069970203784332182650877982028835251545731631816583489592134209934540446744266944056885366642161801417344546526571535258127608011721929380195136401947680081636169000431997870630628359485436415870788134318238551267807763254836068680006899342529258358213885388950798798643970773751324760181446548753814495602332218585220555084877177371921601829912627506862512515640808156831196138034144870541345167068897116779018925450492846504695684023916332340299990223746677900513788107446325758906146713866779968319736228464776417154845422670988969971283876331624720227151453241229286715958282550395171485465064854392970364881268141215857407411732218119396514165902035548503226362476222011372088338016204023003359078751159971108547406059600742421193119772223366944912166815722677889580583807926234973033782153676365843121815114936494863626210579980116970587274196247262625270519513623284561756660149910059272272251818126246492003144285540967521065120421247222618821162836720670841126565842432383282538894706634863354424502015554566159555706603824084323593648816585225117900750704727176248053108017661041501298208113399582049977031966963309329769183720599375218405181714707497197182075335936370109362277262850500567787065650626122356746738759571733861987414038308001997080964326736932852624871186237855790584298886596860303163989894678122694980715305846546491800165262157189917289674058930185945609638408879434160944883939723067592272294678644050920147274929665754541119601564419188339492263742471179279560776734074560354335887719797419508692375520355884524398375871436939487278305295899237224150586358328403177453540144312700028605696640891038215596066476228141680735990779324762981875960393387293688306795643131272994720827609842832424228748844207771471121026303290741589434726455534474148722813746344837286554615956215640278103452604982031767454277119977629748105076835645216842173120285782407511006578340574959956816314943869778070499891750016930737183337648246166145385573065659756824496537467706109486715073356004059250080739344628003851664045858527447646712412234011442539023526399075643992644602612405705836988880459395417373814934199005601688509433352867681721871119000651752054344460899028961437601997741111615362574533603527634165280784718408307796536315691484042978493142392749772336735250562436660892464077779161506515014413073225181863643122551989449042739302351216092187039927902437268819174648933039658418019305069943980268641153118599192563746188914286027232987285140586841341793455208464643126425860963572557347253340762141694382391734614184337568919093972568921325780098563326791524917279084154534512204178476256618495875404329691363466026678115205753973681325786440095137059350406831407094262178210968194176116977822216069853276031907968209172867182570890730083051931546186642993612340461207806349568338945241749180607876533085578146592165568027159145927099405475022907353571284815775671408820018851422977948671712043963024575495946628230340576598523956721941749426239352311976449175527991245433406575149953545015021801552707149952413142487894593132440214077654375407605182638294097768967939300805219992515667135740498268221803446939278226290620949170907422353608433347066611866391558029942021463457594459851594233797159548566679339197745623978897762272749811614176500754547788653449084285800522086850436966032042418795760166039172441102864635605599286651786729380319741229788997490864904179129013685800446737372220856069633733386549348455502861973826662511857985708387495069147120963303431455156296741721988431294755811079751370670200311682289808340882407226636792445735778086483338927146070482887236070645975706800034370433209614596609991281256045363397125969680763110206395904184228120975908530007659934200228277788892995194109398876951777854792509335154571988642315294838663869532598568601343295378751698726132601747194604002530393822224397049861807436553229246195689909922570047635240243135622554350376984906980422559101309473915922706406280367141620494985751006957463560332511308751450344492663399103247462000210857522956550806316882504054075927986899323451625218531635724431850048562922739669829878288545620814153336187870934506968801799329529125619919824522989870210253189299452908788144765539249509570145836584845744951502575095474550942379131036187152752513140071565228131107876003559606466560749613880666823480695249908762716954646641389157023883384643544226831524618063584394412148652930845878152352915196750712588827053308981492649828011821390869468421469499673155469628598945917661464904514387235144552496750435781622761485406230199748618823596601703268007868668559093710185207849266727583725426494878947545414548194658168764168007454902351639028352944683802138935639790527806184137191997123115692679082938522924249828404757665585594180436072192181130788611303253666055768670751226002989570713894542152194772889811291813649404998831000759457685447909272155043624107707322278338237486401816580359087538399071833559374266152203480455167436502510074372308276144019075775362488147006121390354042906095834829874670012872980028236018687379524789003387123599381103914944540177473356294995923768989619541286544964444172214106023858210405080018121733416164926007911238940099528037533949670812971908087942296059155176742559909343222428899659858371888117200908847709058940746648302454801079904512113512038746181179506379581502929812042152956300483948896666793673425322107300343269694696898733356873656888890617331724494748368145248850528821009259036141337107525412868475620112297684548067027551095678972570383469624277178060555811540216305179291764124133415865656374754173236166583582631818064794707485943784851946586402388044406004278122707661539007970114888826530608497532823408789170576668560565975675674590515034146957409629790640178460214763276294624645305107663464969776551125137392717495742048099508811877571011281999026894494255045280825607809015367710646288321159039573242971869452569281887295492451010585323010041150918023622145653657958535802739680053568720130423932496758204744571078334747994376526243375756678591799173714788821413283106066578009629431258193015194515814311963541032739970362299391246102486719262299050720715996697164104255217236951207902326561370132432442612646760419162190045811734737261510147096390424808457022638104945450305168677476415540701768503416223156881951529709335254103612089385581687110797024350313323857646964057457885947315581926618098864083137971875281162320881880229122150240601004601164823157585218224065073727211729677099483889971950101378143602475583463239185756027024265697567249106875069723672050769543214171244551234186191108125696867296697423934363299422736047941312045292662708824347345138825921227325767034508640165274383795333510544649868266390205230010941116795720550094828485308483819824110195698287820981024263858523444338728581089877480278853632850734030352381733581679350747722977817846043368636744492483168837386928278381603541252923093433113873710659969439608086335770013356332600844639431834882000292555845528975887742996509938222761805904718699543134650920676012558362771601201517435330350761552647262252105746658034695860356652748363955750037637107706370637110533542525606510719812354202424221315370829000430348222415794256745118059799107190891129415758482515042822479382631303836551132686042563476741449210356769051056899322882269921802636787485599643870851694261191063575645429071715721770789639863762353774696984221138251931806260576265365794292847362579231131839189845759447485167883286449578214311839820288856088992342005339117720490731611130457914852681685038599896163730502420475858088632993783877846260891606933225121646951963754561212812003742257995211881069536563462264970758792059862426514882764424661487273871409134078667463321201610229082061331489518968063604184726439994533124866304034588220164607220073944664182283055470350413563843595943120224722579593891446482283556153551035423010601765235149053689952586567044476030695245022381170185435125716034518690368386145490364105471934767297482117729409580485079743207367139873186384578478344295988549519835582136950368340001856060220953680715053682802538250345638531200067647134769493569246482790247682309427612506573164588066913009357144694276700361254350816396383980984904025119542901582893783097369878708709414101648646426364329962683900474991706523185032137053648190104059639482599069114096103365616565779372170624674277892270019898567399816501291603657011760692700397973020957383949498787960452077674257405035456585988827217162014218021048986976514869213883222318697289332955691101832352779465337968262416151363400305340552436676104786544456587784314315868834133846185259843978956063631964979660463082011436755371236803153876804544132021884915464602897596696548518705109362156634716966546084001734371759481781336205424775518941539193726798898764132976321419629898428538487579292272849624584989378472851374283175740867719780958695106696399716014223933763708781024692232657544718861997209090986430370432703563638159638732058883176217254697495059330476876290129358777644857190340271460151148720842536384463201872536789588488491249995010069389384488722884092221229195555100524049418973922142090123194580587085216505153462577628235921229477319066771581625453047281737898261237213217122630407007870608397849864674980743881848944665425655292978016290453959956068016379427825685771345251490192849875356897872833801011415077031023961159287623229403082368570719991386901285399606399204243600968709729621034386662200145086674206294414359441481592691201787371919218066274825904954740960841293710179947413474982385591027691823221092890824418284959151293033129235048533823350759096448200584311238352706643200584143066243047802456561485164096652181179633595589066737497559180379631138195328752299181054413590796515901352341687059198005395596714082025911391350547357192066978905764926505113220866350060623982206520038854203512845346734105040036010876165594508263895641455143119396968811314868675929474909599035726598861881653386187660923064121585158389379110700908799305747347533484619430593173836781458788171259532160816548109917850727125395418116227125913686241199773482314080057399862515818908812928194441617648183280455236334515818942682303516196644234538123924744558592878616746871302320541657331040263561970206400425853314399922598465462098320803993093895185550805477306767326221857738713550569999293189775887535513515348848994152435161843263378219458231801724182508682593193056929780302073620681511211004013918279538865287402808291441670404400407805897263381339811604722453400017503623864706159933663311740471348548210121804753584280893962377553369357710243293074059208579994471294523929321941784517037162951272131856753481809786711295866640016868883131240170000843970546127443974423776359570182743164476308525332143570292326509140020654766062339637689333446922600030977678597291269043188996348694337862189586037582071928235297573299224376147054399587060205209817901409360516793001075449452619435106891031320732085616423364592131298376293979537658592072871656130041287446755429289074328185338732398421877946256657141340415090427403302278750895779549310259191718083838228861979705522721767725617293759705015501334711634144241724419320448724143026199507391746794624370991733630341414392562209406366743132345996177238767583913508219612581811028751811164572737141022066907394011983587589616219162586985536836287527166336598821223704895100722205133572745053083413047588266852494234347423130784708438909340258591121802407717976615102152134499376236970604175555660853571217536906021707081256911484483732801081722604905856836872631309683792224982592412107656311659785990960051679604777032693379729078184380365760255857276216668393271185592295563964505619055672752179136921928625328734161546487959298918141047067679333101502851234617792803632811743127879313082505054854634932783499998480723436005792853686037058213209478545700555693935047720344499175755339822020379005424227876132709636977649433436276677183125242012196561626296921810711398501614080828503055651395393154208856750092814381993600071693490640137819787139120220489572918676093699513082605064446098413160037936954946083572570393948887050404561929301791277757169603987561513465400628759252789906598276896446415320947835373613042199737915711614479849456612825523718812811863875201914649367751206956731031801362871006116307946061553449268421718209802224261220825331145299674937324888342890895979718749617174748271665736477112079201398982911802102965746895667754056194958258516578834099058182896366843208974956067148307177401986547788974817413124248091485246445800714913315073605481897222763872157692497303650511496045235807831450509744952893308848272174162186230015824038228913971285534061128833126060194513085076090041594274137368159205464032853877191400285904982986366186782752167835098815968626068952025940223195964435552424861291009522761909643906152013284978812948122446179942041246720771858715782198882748402362250468305846253536956160208242144394969129486537455918044902334683091840883155223922395065570832683987497251436345300820119807536190771677020333951708905446540545795871033321341020345259346946799143892316083753192634445911234791583017037813994876627141742809100456537661405665801281554220776686975538750025207399641479380047765859655577886959779585962237391048594149259280251177199245560206301794849457302795202970594359076255687813316003517450763794622127528463336148920546897708422468461414644055270505542078203222646599973099566020587803446808331308010905750173731515807588783420730071499716147060369040748896764385976223658655231988923562273681308519400838815646017973598428707958337895202455678326772815769040523102588115559769852744791251851042515620301842429316664046407738480326226843213835241419201066061162317128676189576282098973331575544844781941311101124573216449761995396824607542140598147801969203176792337099925529162330146223855437216009789876176410863200063372646657326601982945982381131268913164711687657149728256210541390550978634596222856037835512870205874842298655255529805821383468862580402272621829799009600584992859156033273446873386517735591806367228309884617444519642442307121977798605153042471025827545041239082872768074114486433583170066914572630568485648538285833237066517716903561483908078512048313456653688936256128581940562169104591353224937533596075894789906187894194156949831765857197903426378316977218693895730301635985863466895697670256171191785798389726927739971780176186881114654655696225567517607230959423276441386792004713214585397399757303011157899876818754567002619996966366317019382307872739900036221797275531117614736767748058751058035971435405987519691482229614413832848940355725506722970377609834966601794573970718900103119004518696298237872537929381932311792825396859602320409491651748165388933732526422071226462498803359147256874779918004121648470066941757006357846760141612128672951908022941097349663712629897426901700895292599829710633416062412646156665702080189590067933065584591436272637485639500172140728814702663360666845218764463471735232873196738879097087563016814822160275337108566830309098082783920814011767828594001877402058525130828010498878135333280552071664912423849899023709922128577727236658259720578765027348908739433107612170301861516671492652861814839671402880600165276835491289885483173550698273001668505707633364437938528974794372024392365046610635303315617302616929110942205782313150590800102117588869450491093886480396429679114358418713083910742103114070630462209171605968936195237796787620611089208176228851911775789385468808989274774863608374676293961412487453165304554552037620636914134836728049387780641687880993857202605573526931630569747052936021995886422581140817341643445556093982823485818197092431086217221497983131263326151783336585810320790271600747555392691953569748876657576408821132762559050901572180121829642833279104806599157011030960000159462613099408561373606047034245862993194014152823091544683958971731612863872854623495896709489506232634618522662374728435531600222757872265584394050838433122803948643665838221097199004958754874134885175880213142940526524583451360202418896475019135842104094331607881160429737726339291526721431127266043116434225239369115920607500237986234327728354392862057044424944033871636263950849214647823131517308316979702353179558155996913149516290334010551775043261985280856511926073292412637549590039923573407037683933499881266714378495289786295173781450070151283298715263190102097888110715203517473806204086308463079689963585391020929042791492971442894444978361059147998207143840699699121391955274557231947181189336920647600675933237794912943711440055911167210207623229277700544121971745451872952845777112556890718295357026757738312187048580101763669318524428539354898417840289430292450063327989200728595782989159473469161953596818836113157884029471279922766470065652725416064928218937524554596098873786193185331845633043399793657348181459038438415611219779850226438299073317396354522346616909688149000713961977954822812023997650717247130703355906939267052056637960277235377235939339907403705632151179388974780651117416154886179397880590106692062026906582825474346360181009891549631004498049848886245845628600381946679575381037432348053810876716330062863028855035240649602768860630040204299930291281690494599633235305571107052383328027328962693932064816344539159201225973472147377745286439143575035324095177271774273825295018886231041290227689264359795695958897278020509881276178910500706731309885625284272495737663312125241594248289622485322438237096271223537118139342973273860251387672914182692212628735375314821665871244431658147016356223317275501802692604753785630454720046528211603596412560660957514813649156819201026822432216938056919175822300188326779217170008385825565530477002399649285191438187040337810246569029757090941885961274916998527140381764336297291696964416521039338045856504468595407353185551468492491275767031162545348352893593704869922226632010108785715611538513744831847560765243209830706606673637784344891315830362949807036438303282585091481835825866139060385677320610599897180067825863016850219899516545931122108223822575705463149809930208001971001768409016465054283629362452739794903641024363616851261031409858979857707306461273720556194890771323880658508187881158752438946576916835941754421080294362215462503199193414574953069249320556431134956551454217543437181390058955958441904121582579339343360075777990202914821375638337158573363855115114558448821177256211446972602569942118962510285629121998402421794068104298701790409795209428595670677497602448647952290369527057512171444571723908355506676238564126565066191735811285297446563564213996866015327534133985101059318932780447692793502394307708890926144526226285570056489486602992150723939524287563233502452701075163209661867096996487096146092843997563474760680683698792079609550030273178722736609132537870608445047970854360421553562347760279993444279829873645269564176788078628868850258735943015867103252590718754634545129600957305565580080055280846971980108240033051051663320285962964187315381989006524131382740512046511307532786938367478260060053959929922664121728895187590709177546394078668785282725312454205708108159911167355590481431777945937892189994388201350820958351332077941146271435963393903998991695583803311605246443741532388985537911765645597763817952450419843901442219402096654758323435940996922898686270048968255192251761842913828385927795521596894539262013133685362098087237433712303436283823983377096280165648778472763316994582206983958299226849738878766087916347504871864359638606685440885206272322377242913213063745610703605619258832502926692279392020116257374717574757486234618238423741275879352450759545680633846822877551806060479493351100686027123793941294676254974402194775890021736386520966576511704389147928302582887646660671004351339059913543961423259646537981024787186672144832036070256745967652091551116444032823483126521476834646806422376084455083601600257804577727708058746107921901612535674113871002911491175150530113250511210620203495562063498489253626476435545271201623990071714079888915299265654955262766950405404484904749522832148545211990799326758618386235234163212038757595405724088396335205215764927831130666362697394970741544386350919271666485724246599030758873911366283540727372066778782971933930358113358905595382693557763580046260113726977413432621529699619995071652782356101210269035072364278524251568792029392320237778306080223614726048306813301860121200006218943841283764565547803119090703835000514267341644574353297430708688555474065155621045536604733814797619899349403648159147110781976226777165089416963136225619240489645645106609660679158150569507166654229578850200530283985388608370944840830973153309667076155477926294893425313014280824363353603131873729367018529271484483665808964023689994012088350324576125110304149719316365597453560047077652384663103006603429602068734128812640137060717067839155214387054722302593938468097007345506238927511896989015193033354247528977219474152061286660368180062279830958569104597172444419527198202805580637636556065354240959116611160562773976472423567753706558377101773773141263410747158884539222613037937336317922868425368854622100892156930377877224537517765787120534211916208307809742266423255989174050074804671575989627587344709946657606640018436349510697873294537774539679192775693790250654905897851327797349074017461278486688485085642523987550312712600758232666537856629405599516661351684071699420676003795660425974093884495499295495502418738683392881877088592570559202610842112010063249484424783782411774693867163032813819407182921904998846219409171788090092565397557469896430958660862395040227281867260669467882255975862991107285592907208096352476158702540474483361595964303280167863497788591628715563327098342469897913604116275306889896598668729921149814157112506512850568786905424959273796102160648288331076340701878199885424400138355958312764499406558410506116580222129073578049933056917119331432126255923259504301224467530987575284607310115606916324341001851313235122234447653916103530188270949115282523781092499570283298733216593553291688327009610114671100094685610486750427687445538709107116288148404571342608415297733962847522330832292773170407738274049767884469176818164528541566966147390494445324981156571223616537553928685838214908821865746126477533745627420206449968205073282599305662333538463379372612537098047468658477948818645231430514941111144701498303544217951313529497370538715018746209967144851416696620095208667625922992587349767243788645414576297026801698713356810272481597145447809536653224012237204133696254724139925874892482180610883360285460755424546903740539924949566106163586904007357708735737166354235961932620482899448460279676985392608574698713250477345402404693272038003162556842805710600837415030787998920171563528524942447839952998395299521855054269467815104463783952968062626024326591915977290108644991734168801147494745938982707707774481513833861799694489038407012052197651058487149177519427384339474105852062209747228834556401722597019172233689906688893419340929711130894079559849457258523675229486405806543135741836915038000501667122991186989048773899409885591907758704829511619705806203227641929831944007610763208308894120494122439637993792664856872496315896549614424997622709839816546437278657853457660402640378377869123946064758527868979670292931465068436724895527921632921001473490102280487840457710902545018474824878180876688067780732531476111705633704961568078716357538257644454894483409479768597847386122386560966460022458805971908664529146208960850385998919895305291614168333670769044195667767434387906162719924125609776931930110437840570146603174285620463091270767783223253859501587440076936419261261323538411908966497330266446219580545098465226711418584783573329800793692018288409015086183362668285418461350799561300345479802229203463515668480202058132134523194514608034443799689316533650785820722000252524601372862117431338877391337834189672903432710785878039957988465316948306888079029197144621183658661874064342439642758667898249916488379422939107426284415790810173312817902270460069645127887969621220304073004359783653610566514805960802311676412626565985947169293275835322877748534547621307794977998360634754154254500813277431294363481392100654052994480180884468987865760922892143620100143485763980506370265559821517538403418570755594644542426412461855693945009527417044526267172182112012649422091086968097734266664047769157599187082357193725666031708835275344257085623359713298711161785919381067139799087286230200082746287493453388893470657380384751641628283906776162741422829365817822264321558852099414105198183193434441178470898165816962571059286601699950122513991053916856535811248428871867653343475473475288874122763298101819916708105535134752575226294176416752047551594540350386315628984299707033645703922210640030644300148525741237718316382497665892130601917700999570576633934759822347360207261735739097128262424086188172586411616619891085566897845842541585213106353687222383536354092195780697168450634054166908996707999550089819124009091615709469209759782849134460993793684588874256090397274764074797270219175155038003445279250280743690783008414414143124740705463412339731390356755113779520076716714507974414540884863695891639610668895548619261554491078648017086549499237871587850154702082847972354648332206612743951674229604325292504516710999065303844668803286511728420988303877996964972906319575532878327042489435594455642330896774711768456819947473770265452804180789056252452091311755073558136144823483692277391821036962276010078475583352706293057878496105642259487940580680534207948926907369804486487853525389689803578116461859522087361000184095391937061800868205005322593846037764629347536839576068521356977095184086358687233955014668437775181116336007259964977039957029971961330335663832029200618970471009742210884104292121975875130654863463395869168152070241542433041142372239017200969022346651568386309493768452248083772340546268542487212212402280172626878896171472439498873938928855793802564144671972740545086542776464738282605643965739448742803602658091212753897370780478861644842410903363058209341689379556135986253620756443042001204022641669380290903873257790010352719128357837653162232819680529542854614896718001195128526749276064076783280981101812843576405206628509567802034316144042565646547012667190939209557365975636376850041128005588984714878331482494683340033088496356237348886441850736394690010456785350274766826845235847678108424031038305460057228896252991963772519427627234574221582830398786176795912860242193598988892896552692475651634518834853636367226417146804255861481221487188157750860912092909219098262088804474784687307907448637179597604611602889395138513890993285592838488916702282291880015265721812279354031562413739385031820023371764269281780186749242967986125402686659959837417967275125523905443698161094703051370078356835968454884672682053910974268728787471373032346167121660619909845219774278496660549879383925684750157408720562455419147312923761479414741292350693407902076588449553143726135421242249195785070141945320637898186260119826664888908540845070099874714485950665617694208404386600262704788689383424947759595328556876497985878788224422021810997037002024657070932217320815628588103455775656896189701526594815312542173472554923941602878952847161576368606404153341222186793203408054980872211851425411116403881943104499791669082297998616562382311907124405627894509947661245433579958125562878741703996665303192794651520403868994701603978439787853719376697522188988632861317698167233458645217171185192246522008382259852072285788513904835093079612066188115257688156097174440881568818526667759741680587518483239132756930847772972638777997216702721219977865402837355352404072931307750321793842560648915258307129873593169774855019474645637718822611761214750063180076469689707433398152156655754896469273377593738780973172949805683818780966804218496684238711095755760775144467545488061498402549184697724886299808182947624654915754161444965604271180342486272328442998502063589599509103964789827811350080019809412292029227970122452550296132474419813819670360490165297713781865025569153639459397330798474960778186618186168722587187605054099840549967085351488454865377965050021849206456375540214993228599314329807951114929775501782984625834581290308387719499012704604240611383019017901471161970790702579969278233831589286803522439775026323048532083426278873909521394979767527511719789014432142544542194624663903290879854822687153383500091378975532120343903324277031263864710851632970669004553332670537587576042787311598801604052425981359077948256637575919738059278691486840662061267860536601662125953531063111114117404972112801365146875876308294244673972597307949985302438814058762995636959740962238799273584673162939348187275317944862169257123507255988673142995934853209577423814644189137591391386881123097054170380868462424205171318940958850724086119489588567197868323595731274979037535065406410770795887716116903146190469844924021599526960116139508548703977618965820097492686983239485171319052094222663252136314873955049962278786969334041204011471380902369039599671427997287626540799011551608817486830975924457683774553796509178686462202580810635362491670859975560521689310241149663695507496410775090766758721479768489768021103096276808755637403041805376146784259937126209188742547206081432686769925234579853778840368994484405085488930563903546781451067781116760451335379227291021521029536149443114496783211256866524329938948377286584176946692690473950197321735854591145932924186924952828863462164038762554572182759082756198420997831136249745290964003456854624816849944825989943726707977762684774007611661586666472402492321553236914077844377395981843690695487310631191972065439500122117097582613526983689757082943792238948153340173178460948215996722934567200630151686680515721439737533055252758736515884265362339909888353800157474548316351838412997928675549501021337163920207491794425600722499363917869229148238645705597523084161954463876400484521783355077591468050664955523963053287497408209329997850882859067830818937819590974498305812879711573373849723291697002009117869217608102840643438622083971972182767473895081384283556787109919770563740212914714477715715185321025587801000520035663347187714350803753596305879228858203266320742733083676401718106865539499043907217027950434940096953674949566393862699059160641339201347625773529238898200289863009599238067937719619083633607510903856125031296766201583161109820021010726428232177819844850064052549862839233352400108075211837444313800739085045762887583764453860421888364966359779740947927790120453472107653058603316755864919779654992724525294665922227853948705376793798910799146804632292946095690418290645275338508881010438692244305168666106096877676345397567300434092860376708254993028991612161551431814998771317597310045733005764451225825770314923822969056391705777960965382450850544578092594450107381405398770632722530682776929753226467575751403668649273383104837943664511270771701308622663289556233945421368521515745054411130042221413671699026013065449963589494503942927283491167443746171364820423895282644347778800472102663748308598433441461172233165608725149886790420677376931238197607400908767614172148883089429354897306783806265885535295048969335696455583520690115519833960749415700910397228373271500083625460870147788754018511881871284947273138282496512978846570399866772564699820659348502188949382229566706192515425815725630943508075847862544084140615876803221774852271242491694691217536459736649585709343253421159164793150691892272215700957981815388171328181378427009312044225535398005703954802820672673565473406210291123366972311163699855671412570002216562445741173392837115265034871501726275186876287837771014427882994981284659711449059866256148702307427924401713793656167775478243793539598885178302833130289907698047267414067592062271326917611603687987864460727380833196244645977621535401286286860637279266951325955219364344641599549724418354394735544326172474117936360238179443059129903595439948792903735697070058223095685993570095369981140586403795629947626265118475752773581373648410698182138680607228410811712797357599906415103836926826738490094032297272453387870951667364440406014074935653764015216366811781086092035896320449800948886588784814172085304804392945760515131256848967428912739127773905183473493571318728625029253610052204305356543958902434762407136708741907033518416593561508588568163858311933604848768319473217386142992444124600665587397150680236233956460837535274151230731368684541516825415339902626163340316567377435713761794186000864700182281346611392777287229777860329233350796937862298515628223498212251008098944777328318102879496542971703523713648363762509198087912578817866959896308405131206999175193439051160891593773511852073737199707590518803955749577069026175577066386977926447891271604766618698894382796118579001333209836898163719237454917353159086158222026030349108847561110626013545709807331760849809109530861974685476460859670457397260983220057976974992558568149621552138538530815909688288605313272565935761609508464093069952223098556157665132532025432312747670787321666165906124796864627941014214218024484792454125609373314308681694858599727161221789500250734368187434810072332284647847090825425889258808926007027151969865159018797967085738648531029179249996411095759887136536097950797288526545895784634111689007099199923701581571578652309504280664513712502103798149271392335557777943437385446063242214211670992949041221911869389720124818940038170421260154220233144531008433657272962508830937624624389523089877721831940237009425197620742483804256942862142845123957550071206918554698603126712476333755925228623104564170855788469451274351883306855879951926158637492219410083012771207313187073900938033567252856577521343006430087828109815469119350775978852602283618671993809060971430524470254472386868312459864623951431158075997419526269950525533746455312964623464116221107936500519197006747144177138050282710274735992844194351971741689785321276976495877384126548503899148382392037734060791637440540080828942393961116120157228041479032768395139752359097462741918089386537886810305587866977385793250871598957288735877676960183704156853752190967350128655631685830748423987754577337334318707253016869904935485524545332575199682162359665448453935995963282366765439185183569857976373041834081402747889978936675820518420181741597416189633249907008954073387346110846502625753079067648402616058187056971321793146014863467442944672582802335138722865661436841723023398340144687626607837942483517765752282845451811238915123493191752369396956579744771305809421602269859448784130887573653360308430136285726676855108139879002853439952536923991915972490548284607385147590569259407676550933175778958809323463088982045553910638277211207757852330520233613544108816273726523528434034643343772865161389130683046008199937575700045021453600946180320467462508401466257472488169098091146329557374304257904113326999482808467634393720865021451354846087727019081427168530857470262452174229538294953147219951247575088739676160376596273433893796603365217340815748972670241578624353803880135996649067517326653111254944869131369522767141977091728641878966305984613916055068745864296447560575614905565421493433813909749937491177029281745827359453993473017856913498603817456490251056076322125201334959627752092739677658028412761719475063551372011145460416046549719756576321425293452702953008731073459648270308706014578875056250958005495139561824450742374836935290942857635485012275708559153302283199272331363491508281598016647143363845343942813378728758524203879346732764672218828074707558418932305735499784931613667113349896748499265979076418931818769135290384533203389090852555871490707779708326673070944988803719326544945367757996015977440536815951192844566335457072583493000715961206964604505849940240151070703597525530787592991178819330968048085919793026140644923800704992328828748455865209766414501357438346243364492133559423052662349028712393096367712802159955440970751708919357846706390413855961119349322722451452426834134014520755000539392877270453275759590584010085490498038343738092397883679188130103036845460906539680352799132813302375215046151467797249618965471184250982163180577780679348833610504936289867595841984477168510824462500483792645005030125104215848850306693040958566209524471378872865679024424455234948769314377962032776044023753836749568931568382610742125479434420878906076770060572716181881145020505454436407580807600830600567649300936260470154038436132733908165355575148429883774917992436211538232044619794825688769775580805341959087527368417982375666403088519336757889539440662642127485050055415301959491649967943591810583258849538695951202504329554869438850297665565357361621404551158823987859963661185776251460985816270878626447953553010920552631819047755375477484919740289664803559289536522269105242062074227969825221678005411495363892741653157509924535024174289862409205482853809751304966094767388148861012144012919356251643680680770956769476355228326249167022869544799760808721702959282570611236678127804805152984961424988811758728178993051393745330985002470019419441088237336973981023434122295185911126086261484049264447037548298501027696285012948074191879012694840184728423952489498124888450189457583872464972995055737598164333606913006590495822149705627921366948394789905244212528282400621569372032807325567835865677311623035651023364539865305209541498885621044287188215794195747541761091952847179060846687042678435704964224065089973037411009443042627139283141834212776890435546735211246234494609307271863446231926214628652329287467061494122550464164280833937420105023618065346100866940852882163926424637875392835976916249854635258206518292836248325768561702322739862358298657595356350098231121784617376184891911694814322408539585446301864066862411697091809774600182089324506767071936672552172373209077900804621610577475401694831893783141563839878517814701860428350680601309793539460411324827822929597953468569778240378950720639392282738254571213201884708930221936494314690881286333794529424268041248938243526809204215314101445895763593732453575875162171154732358981220236035954482268695961913710511575799473389434691944351377274624872784010462450201936449002059836035436237305727607728495235666463045488737850438937913274759369653580156053082817852850361411546867324527030657106954278193726161937262376749637338955302436976067682284523308075165548278921826115351661649298216614212102509767814891620255223267718575577092104205898756964710263162122801899770826094905937111239819563658241572300142377420841823990755945274785204273619401192504641516862986811242382755429895322480045205485615414928049474338523744192949425044210810529033757546911031103695469722299947591799545765554888818809459036641580225884333915676994355498453054233652122833672422862868956969540712429160839396034597736792160532007085486645608185624231153147671442194468750865146323445274580311248185243528049576819973001487448064733429989970707241436291019178163368595250908053698493868257251625467379912751135408554958179625893190209481711323514630521441666039441903152515200456540076878550066011074363439535518921928362053200332528429916643347122243243450325367332651139367664575053432501974026985260713283302463178028502555719118452284787471063664317769850071608507810075375953622207533766787362319306149172937537326334588296845344059668050901166793370589763772763465641624406190556168062662955980482125341798484022299230712635164418512068777982906155495526423484044303861374944255044971825745625676707866110655229229413522032574592814566188135582074573386912889752865459498083172231616647841561747144077380194493673341840137408450093541714145829663399237693474676989896147313578028223635798976058942515311196210845315702924486080440204692525301599000511183557160513869588510286998386400263301988025659862778862679272890374298170743649080576842298899709849852841756142799745763079557781101809056636072816878925133901319463612603329953369306344865831048574392870544860267622555378576265167290845155500941515003621847295168050510038390396658734071890556376873749151411429862937091665669703401250297677455995572907286518435721454233144580199119445212955398879640667758241133265387179398033337578922658843844198905279695018692591305365409728367851881970985854145852987852335144641878951859427292014347807370668956822074609028876271994219132790335276058920897177644630919157584609418507083645997501572763848390812937472470528236083208758195228279824643845448422183097474944494149477573998637753016156103908868435428673140620064587465966875054219661881399552420910612012102529023684076565491920336155112864944331109964402515215926382055161342358731434531806933019445070920229167454802471172600724805364708292301436582353839944413201624991296549490134579737042514188607786016424868691892548967101903816092823595094956908044397952415483018751651013075513179957932001750182382035825247502242687696276006465836475154977152271225083691434651605650695463616785241945561355195291844466035473607413193020755634637954506660207984182251729406608113778342880694476500643102874085651320926015678262769846582919857179283425272145998883327265920396223116533584406940093026692948411167847075658837317546376211758252794991628068074739946326021882555603092521537322955659914019520585515687927956091007296618990729104167056233700478716727835678996957032501128958016815339349346462295452976060529440858618993733296341615940451977233172003201458240598042313425916777281400102364893650909444696274048453953298164695242586993313210330340843780849095497006206853275611019411437701806865406745747398921365756949385304101417911451179880474628130074319549224737022624734169161512340626125609175780649375834761540754539459395773581326740341202133282125245036509307559720247490411574063128951110705944437900744087386971618729023134615245132221893824022007642438068965759746997375723341463617803434577746818530059627943095056589922932614495394528006387159439008035804984391220111014369231962618339307673759475214284836949066891908934505852434107843323870991792920829526905592025688024176333969014620104175667845679889397349139513478080199483645718820296908823153651134348558434605381594317926194476305568742445661480716038107231887090122445205873469818746403052755206529702706439886812607530980768733705013917835136804280596539683926491414785245139794965448346364526253583958173080891279382509795856338545903914368015873953813165021567161109521865193474313326770894927432521984355245880670768662189537289548275294476662040441841286093469737378412185204178361110986957038532938532446093110101771624652807609386821568539705270946610298555642492116057751128600002648816180832061187538298570640442745188386086823299325132113517108823019154387968584552006029518180875138134998910089921816339713058850497195247443574919230235626707602102571724938160270723672056624324339076569133803311764674807548080052574175071175966960580457655830412219978334654440796358526046002301339616712752747711333788833577058676303520350911489832608873180338031117330508882073329864255089970695289002999322362872522654185126368964875825834689410546580057604889060692184883135302505954675944995306457196199458071503675787187256204643838781122547181195420204610891042255959075950228966315082989849321028843716288745528557942318662380002811681274208749973817735763135414784631182234956384830993894359675641227435253487810898425578276268547213903744833514225347602831235610807727786449110477225559343364760643267061388316820873156807889994596014334550710457144759065640746989193269240109175002160233245096629800626294081409021427965667571198982803546269102723145260113565297444012564274743884209476678952832607780038115850520610920949844299486973895849786788396522444546754698916697955545515616256790201992539964545697604672217172488887817799749170089145733189858925041847375123143695966029673153134957694658880788955605576309097421859353326369302766645541982287896975790645647776695385182324205580516365232023392897992694129864459911844755772381275332513164573680981404555686274204261609443460950191027677100329271974728706973638265002293749153925290696751984116134725322157972483708780856728000491275728686075549638326043936430981168432307583361585911829863160941429865315102431802177123970323597068645031141970096864855501917090015852259179033749585951409017772300885129337789793965691545665571405884464295501353298462902907808296020711451441813141566684977500470782023966989270198757504124136390038698811911052935579815170180048786055034652101685831654172201510655435507995932239751378370338943948167737092916312591308466665762536741991586927965427192352757466136424930554070962892971299632647774442722392298542197696446917171788705322344298943500044701303582434575640843450760071959882763540138026517042779521714506023301481294014530461826337152782366414556899674178616496033029753265521028875781555127229757710920500097594019945877535484375914778528187818680590955629700522062144048974582480328716264842741934304722761290142151345367395170147668194745333403122800965399597626246851491540648911410752356978271590528915272811697109870668362791300242028244365660600036300201287464855553739105733823700050092081288939577226763820121840566958046593328794236524903020114767269651879228342437619489475163861993139077856000295357781698017938401501825144880554690553640029500020548723974705847854071561831355574400651577073320484720784321433796776997289613073063858863242937644112791527822916517410310599912479049395757350027612828780545820326690617045652149587932905554266375117798567634361008986420126459669516188464992428389517205064766450455467688252353054359140542987529870473781414496004359951344731526077960677948294292889655066876471677907396143265735345350459842888852611084067773753989896668696793606785846913297111498052556491867370990672698309768903162236745856190133935401894883337644990327949931554928618626353673647321757175087366897777441024076675739552130286007180892503654220284259122832031914741028213965981892524936601870747150872845405549826277164358126692014779958542074159423228610479081103164618746074896096605623042363449002090194037932736737684334928159235717210906168403552947853405720299673776833616348668305614888674777611045915914951074937243990519627910551657215328497060165992121782370443661043555384873849361104470427185986885579810747307015447099136809673334504092314859093449783062625813435482254793313096354182598711857544886335826941429336233506215936723956218257944398822800779386773822314795663121413420284338174541220577524142854859560875333262465712034746637106452376702059332621833552516609962567194212272924048575623227690172346131016482035677241453565457157742870542846920983902659942300583665696910499283071347074804011675560602363206501422308757129991654870045379308558409677724254711151982215276573769623737917113578786522600231089699814580954707754469174819260678031512113375865384864546619910327526560799060364316479331534767364032037542132767633793940085921060120501910757861843005174784676772293895818374219600358360348306893783813361387946897914349803024927693777484367614608290670017086409795347814682932568415751855726238942463444625443134963185374144845947440874950633900392137381988537621754139495626568169878344455835167258222440635403136643136135720219840947376216656109856894000701806909819051565219419808662105092974151245981743068917307651779837600775780169661033606357589321522911506910161580066928151297952969376934591086765525420634700577367369178653031550247664173047479553277352511747347147296242028425737674446366224001423372815597880727855813108181234690241876854626775340059650772603981428374392113357043657522836055323285620027219415272164770804438172876081441910982912987079245856697388821880348412077023303165259614199739770367461460186423625139364553715375912026571427501489906037761270583542035774406476717762947702446717710887236687639495848072751757298382099440987052083056278909373919100533594711662855548009448844671693588699645734902348780569146782792922015792474025334383145798897060621678524245356960925970458486527100604737807576435974622979595392765777237951487366926560358327263691424526067934287799203742192189241732283368656970510004274655472134112124125060457363003529680587268418984220138547919551255544640778497434978118347584293116891248971121032297128945117232193202687961475703265959933969922961105155122219982673452263536702284028328017154992322168080570968826080640684929612810653080509062999723985796722370957671727780611705232238041259491816588386660356241516999283392197006029007492705695253259849830342307408242012569257196672495307920324373409810747731996637395745739913721568500293059329820854931015322266718678387181731740300274589523968212295191195465760753705318701519246529859867533089218887335244290387470831435118211820647223028812473836817865066661867914424640888379863548099299208665613137605651982521945681604439718401460573907312933085438070712237353538582204843192356593009291608950139497441909015183320874746542235890927731513297845088025408092769017373542617295260443845561300189909389612948231334850682134020986770835084033647016730867364928120954926838829627852156016173534745715627173221138782664652521811568675190082020337747574585559049712053385078706860752318961885273900452595540136741752693332711602220504188901638004196434270564569248980899690533508814275108798271284303560336732856932531851920595250955297744160843330264853606454359203433402202130787787846168350087683265864860761920879382585519778845560491601458986562054983146991984259420871277145636178912134857578290618416549797330694464678386193364550764909549093666512357070110484057929873413775262054364719119635748453402687179123884851328240966220535063240947120098791094527544143322244010100712671013425488971439202636279178602699561519792891389813798777488756540913274585913823370048255968712552217150536333369104493439745688307308810326464764540896622411183662409197519090513464485548432577864862258381301729442631216908112999871323939559247681509163332348892360868914375269430281783327055635495187041950665166489644674693318546110419108289291866783376745717726711873875218710064777606745773034220822354644428899735424609382281671562061170949486176801265509535859355153179179278572928018944027321231011291075209664656479236271490392669378950592524426482030081090670275045006609911313960619021692234094608759497269045079737217717101388002144626762284993349294246662992918520196793096354438185203124154492091752144360734550623764900265940924145715665385220110041357741831559653401435779534944240136840696045177331336565692403158098923116698215677123276690138627997390096427295379686358274069058062810782092872895881133497225310718791916779712042882967595216553661706581550633406951628065379673526510975165848186490974834288423317457193281149837838664648760797887624710326435224970909625457353271297025380915757485537670976513124286573421964153115922924527974735194389111249024659700952681330834506768880804328147838367543380635144394719364756291511264693914748470764584854193695696647507716635166483947273208817785436801986143007225737801099151654885122617318905225940262266594973133454004815780532953597459214239667896273052478212661870378970568757575039398611000346854021744825857531542889465304872261727893653758147356816633893612744116812764617681457084525652729746656988785531235587340731969378025571548487993018487018179065504505070603825633159831952921372872674296482150002330336140077648307468558182621756557064414832899199778561941684518028705460007259461010281069357461299914274072530205394262591128135793180469180834494419205010818431308056396188372530240666181688816487098757038573982245392405580504122790357492470253474091269597332650424281693862313558013022339900737573880239152478151899799064547871529496570679983587419994744328066615075249668280188908257835869542227266856618564312967354337105962640020828842905109477942857614386535446250690014980677510120352773212274721051316077609524811821124152302298261881260784847036160957712377706019579150656468948342448860126910125286944547361855095570734239800995119422423590784549168070946729192599968160990770583603776025969691845664990244343564036692563360446071190303447687166495558620963726743695162637787948776963115430560218037308652928493761450886187293386948775110242743213392676850729720034088608658708145529433025608988499249815557790771473867197676725072854862029033006559520248527839021031800899703774837829241742652307323267433431625134707778931692424012232980929550404194844917114226808495266473378121372328585202029430681602815430505752962505191044317057885387304946185743077255953682485765621215291301929350430080359667780039990896781604613469617737613386445732181635352663765000375927053633891618475335858536234647463044704354398833349236870950015413458391349919583975131123246324669636649254928089002754047209741546823551536715499452475355532040061593766989171553437867235587021090789701866722294503302733778431628063181430334016859828051477734599494041554136898371424969474436204548615510390888298297480705847157604409089120577258611549543973512847663176515115022869719701342135769907384858209075122173640936966858806948166125708702321556129819890417311291793156869643716320221082629293278752945094886796842427418930414274738767461681141388489386713349831203917833177067068111356704441479356783904558832483872956708513691771268502058571704479942019214124129029356251074901021458524186485844919106525579253166784703494530760244659728893127822693881771062592230096867666024626092835725257275260555291291851295668704545140223237081303848240500883376945868898265868494495251210934562946868700523292914359359107037352935043893720824745557702467952196474831558360215583860841945066285732421503523272272143587872653061244891766397080781921805675454126681992213240676311147604960162795291976022484981672160209815664024924095540996487215356058799926211781278735664594417378504844788644246003650665346557326609760670835702955971388482897814920914094216311399618178262055315271410180655846819182197093364495924195850148828949273553874321306728503742109418449926439729506925321299833123932689068079159809970069457941822529872952486366993808136377042342799412945651028912284971247730466621620066892617645469745848916317211331357456742474865056359754004220806846223720723411413795616454714818177023440492812351010910625891007365423211922734691541563098848151990538145470498868956965685246828783535298037193663332399211240102622610397659762160895668214150688493902619011670108649758944655677092623964758587701360662797001950509313681908283671476640854593351287099519480176386554191603954075275065206792907017157908562924463392371970608152116258234661082761555217656215388325248347264709181227587966987627385497046301416590482260365536340754052577640310549078480683543099961241239752417872919167034567535412481887458999573841384168349007616334346592714066604741613891739108308540367940900854690941471609157296151218090131497295156606597803550270026224661507879908286701136298988565158877814225510036027122782727745258394329637139170731208690488760092847686129384704937662727599891542965935732473295053939072597753902912114605790983180682575380391043201585375923849746804099110681975981019375311835176956158561432996769528667959291072356957545299133280327725261845668938252378374814975819658192105640180659823429514805718594167694153969803437656095825386553138476177675380416374937999247168908797536431322537763904689231592394859238405986126948178494079393782759601284030934905417332779962773346300077231110928400383194929712358014252213511678126216545419993333981842799548388221326787346595216910633146979769160243617423297113888758353008303941622075462907891284189433115273377037231109292926362455596420386475870115425553566818439625858807781736514484529393257692990255002575408261511756322112198909276288700747952212569571755437178578981354122062235324348275447761788073038571002192998419071198376615921326054780153696255371866004104580306486036982044207613180496324435311768209558921063048374413346473653938277716624835087196831609856935452827097947302378585312470525077843279855157962644248203968360680943125093758523357173975400916333756973104598466533297579741760209906438909587722338558927088851491112506488528011407779790691790935448490667915811735692499237361394913743107659910039199952012099404799219502838666875164977241072549552558731641182382852585313762056365294863550618027337988978747984515574402326051377151141779095733116886358520117511393738938521020732606673019181067064586236274931744686821474042225137913228183531391990417367517606347504260770557606062975689696484215318237310999823760336324216522198837068684213682185499641867182031660603949998631821759401924566773532478457925060159185045492502061551005579893953033450098155421441006800448408894239138801361822967351807947429273273955576119778692919150420237262716916739231794796408092191858097623646662361660853723376488919640741202277051561678351851156696721377577612704275520011554840178792937558302224159531825791857762375206441358145917834477555891408796566403273209950863069461236949285776003549394904026754979138685925913299907973958519513032465224757133353515798803685296128211803377321199858386257677626905273247967816277041882574093076962510187505758473026655359988509268674919783351406156813779644194777876436609569983710550502643140301120289758282525944979776919169554401205239119143425284482710298970970903941606073722682212581606496746762857225826806247839014116394521132758724598445130344317605464625315398715434769145364939201735414735950466913205595219068796950380905427916555558242841064589411634017273192400854250094480599031149182875269800681360113082512982850096772009006340687530737938669182848164143091466989884611745650473275780551865549093603140471720815081681287626166716677378269724860034112310520421796819461472579137792724749399703022268920890937540055692487433693465447202327090503529565773245452508181099009831203503837051448686061446348632930472018711857465363978492194318750186582887372651355427282703759412632387239071745621945875905618319650116787405782092358184920497892348268746724271362525635603868791902532336749889409934822670104603184406928987176176628383638085093582589233213082672055668330540069980176588862973271596587883226568803188320806632127408923967465592591037582901862581395133191240173746166167702301169682062820673571032690543971335977454488027214799727609540178476748219216339091223515676593761472822226715556315793770077203343139813984153322706471614152672372342140273916208153409241989828185311983720317423806296280890666731369336000680859916775526758357582677754051522197770470213529181393809253944076201537724961478295493674599250234499075594938495186311363757254470828639811525898719816370281352776023824283171765750518914357964334029737082210399877859766535658373901222237968155731854015171418415607682054875154048027851349477769858544651442124526399850911017093282659877584286660853972590840225177102079245752777235393451356594953860941600814161182806616069650100944253398604969261907310276947974937344250100816753984873515410406865965455350756975946354266372813354133256722941072389198644607657345912116346042369116596971166661691644186468949707074977079474835287124508500697532393082261437660903419392215490841806068991493046969097319610466553760203052244066841932314863604212546450026683826127250951691890635243052874495522989891445838801178602991129330725592032201751046823068656778899256815970281121082079009264629121600820390696934260978804285499985873771120988530386777325035091729456950094784396788687554495534743429447023613077299517531196718072567739997565187011268556169771078161088399875867959569833830348240724877749918331409863060438134735045974721807755886260724834930893827915531966514326640761154820317245294795730007656403657920549225993068939696357499109609922261180317664841929728245918450890632442505638117413988048800504942943336464902645901715946724007261116400181606845530950058635280156397384201728413688944678711166293387507675545333028616884164891960865084070189838669550198942205255621501925390950146672912742036448175086575871764303609960183927285073455790193482541896883241790382602461314746443909732576290864180378533278609104455511048287907435213141952336929860173822985035395581982722700312973650863205646617927519046104419333085724973358444518111822459699757755797786420021129355451882021936961374031544685408477625550913097942358595079680942377644949406036560377550560001210908107186611301271346657920059466369492900142204631571736487850819948545825221438630403259022786052045082290085563956749645603135737175214610488888075603913699989652863255675658740779384053254490124837179890132878879419557305445913173055352943918326536557567438086786346912123554091993302043990606436220361898437292610415222465795687900039266966404392009245717620793955131030994126227795047521178257420993876527424418947129555863714926043580488692950326831862134798995736545097232834820488411490037081452215857708617195927236761589189000172902181540344195814581108665194107774017782835700922049210088074412576183097758808396761068625484984680127628726949190624722010102642801959317445301267258712741675650736806671726397707028703286122840220514103817335342071670602968733100434238152514394956176652896776998529774355319319093109751926376656551533388189284916495350545767343371157905807617848194610226107761917284023662392953779979368212575124256628786925374996867828870477135783642227196860930756661997732108038546635354323923543947052515075537428459862007932469770701741815172095978266187026053805223306990501199581314410976428449103485410057591639190579365584261754388503312296892882979621148161183799082814541481005487530376715289393380090208652779177308291576965770274036174331193249091648932058108265298152759447066914993199487538515040924683551717679407515015859676356794251382036503873788228669285562629299618226718228236790949253309492410390280745088657651069245930287952363411183142555851495755030517461353219180127610598352539161487268125881848683191268155830892714907287666489429281951925405316235255054610752442334640047038040293631886006900960492635731345274984055066261727302072097134280637849182358562232885513002221767321523819844985592444406366497807630269718629585409245738883636603905442128439947033645791388626225447295848916922623322480343004426826210057643536376838207240080019398748829571532841088136445741210808660618622000339052157789670432378606527559536910947252137208390943519258514199832616329809241712965031920992192504332904924446826661189407744058124493581128584945108618571293904213626148664632375805128341957445499547907430604001888647052453090444054323719959005338528768770428857657189186018239235110937658006350824535356922054554649958171360712512260858081444774683126756076664175670295549060915594723655453046449189349566077123248450449829568283634048253987946839851034991938398160919713204048665994230510723050913060950633431332981360719535830873789847556737460135546245922496612699069900898297704498972584342732742844091298334719894713723476881001070477276013044233719561574623994072538950055714710762178301452222885216010580743129130444184215659993915048140386126293105924371518879934498101625217129271903483953226855346960974807449694894790979509448254903465692314188453874377556073549144500188084587867801834699757645909777644407972721587000693297939543765731148734901131852066566969301267364207282608658770361828946579959994722658975689892007701645328170636972603736685993930042510684593079776419629477600297423489583212025295371199979541849332462361821718501042083959703967907035126155472062566835395736877208285403081456799223843265252874530004805212468418158160779547627730451399107244477341290930651612117136575202235423178081515626124884943020969810533963177476900562445443348464532671411342840673445907048129028145317301976561462209103799635833713980610051188582301535947027525361332332675546572403620303805409439545327638584822598555716385149877424032204873560181023030493091293236124973065344358905828018141158803713128011503206116880722428080385084373834540301184603115675065768616732725063557794751963026984646790440112683463620080272781416798922679383855368286240637117692104377251550437414725466037607055890426764742849947236088079356233434259735646384752070276257925348371003867273771312004698702248695465946667044523012413287589070423431100528672396185504183231786754579958895511626332026864776401130878504720397931396973146711613891918220716352551291324954402778642873891037525346473077994661463638394286734380807032069915681249898610208419876369261408360774376134083798095279419343096700170386950476417102596287858730558083229419687602588999382890100138114559261796328594386735468826414944300497723084767289694650991133173050523470349810576893848332653228686631590899542240526971670293354231671651692006457319746498588750710804355757777069536373330196943445958042414548323343286400197558673008924154056444091442433000901343640411892405837687113535317784895763192993833854279590550019970028147902939527762031037334847207596622260957945037171917664238588034145051044987406862794145729173623410490215197843963521708868653585343229376636646318817436035533106009882957382667161664930734789195821265880114134754019337554130744061183870024879241869561936949303118920263323739134316262245466131811629590460011078176642048325918158929516168221602114281993351671437879185821305335116220371885302879014627374439846621581509806528494062124447736046957994101440994588099216404998730649529624282679042707947111889156122843581753163565081642455681447750680727520083440540196377185563077610909595280453405283186167836061646056618629771433913151010317333055956299675876802753998878306218213803805836248531079484276888463558604271823729145673817933900991325286774330789263735676117372122390524014708968382433513540951324326891333382990357271032380924786580922378363718905357587196422996073098572810340440653635995740287026001990067094218520561871866077334330933777140361711907776600044461558404921310518368982752845158649039993116279981273464651208476960058171816856529080505973141445261064161081368704289873681248439359469231380331458487431973116191351395272970362708887287823618148310480259246186858881127976456559724236991719291037911553709171009444701753233877583320353927318404070912310793760266153145750929501776497083793773302242910919206392890288154364560739328646283386366366659262539446004325625822921230436876620777778658505102053278182489280662645927745037071956986989348952153972888401432116349315057934484024654242498402306615104429354038873777047177398527630906021768408569407085822087784618822471617482559731685719648572428504279028107916432462472922154538815014933355000876931451173812723827823937447197999703994387990288663055741277155136236671883197206128735616798194502661112769735146667650051218355156995285015510858752442761644664889300095257989390894150749125068403046491804806145667267427098347408131786310025316666854349100600865930737065126768169776471259231520607169098615241594507588602268083921839591320743806958851166820922438038423609035597281153131434628330132075806244424965225648188930960784726534235260393831938619703998556707884191946307790499258162150715812975961717624203133917964874891472458281158820107291815592929541779231356343766910072961021426183352334187943825987690343451514168319005723211413294620234295130636611119930347762269952215528558745922527404068235595114438694190892811643153963269608867608845908506751121655636065044676788724370128629934460385399819126883852758868811840307543138248906114460342976933851162280911449206580373492541915090897862705661610531213474195511045621568100840807351940872602725199421369312116651823869580704175439610799830419328736949128988031702520482171470397127410925276217806930051248570654481919965595649852795145790437002331282907598390988657558776404202779613928717048673379789841495173295374022876568537091720415501837554690399030208202694845103618044339780468266478127840772003811199517930442302647294826286603335979017341147655559777941711719528834554015658768948494808758721940376598612541592141322230597170288379213984865091922855835160901345854473877637942684896392664084508023895662080648810085506781129666029320753106518957015430970235544222310962266688339692237699022222543193512784611042914204175179206419885114206301428712933111263494723975924509074688652166197351647997507406449266169558351210388851081677633238896241835058495579683694848360987119141237816347376099291946557994202251619666822638755899469775721204940164481675978014926090262425943820205472292457440709083400929005286344608259885415023031266302885513049120473880104135677433066802066608959814586253270288242677501613978390828597431096018499357775035820409512704809619942848446585140910285810268202423016422720442006266678053251389732512863133309743463482348254741371035274040613014445840031088657664387696786855694461801531884077119205068290598794898549804205254678965349997287778911895662954501150365012923071672421392041503742212090095470999660839979263573970000346368051936316977239945784585349441783290529923631034006325086465269717392744326155750847983569600813084986204335087755943720742141286697341857639042643614987190126196556286332379821363894467592732934982353741796886374406707907497854173212954411819500416669542990733590733371431929470525507561449117141331465342429345362464987656353246639059714380103189454914535947150634906219484894756774193195089114069614651591217814045011730826053579868078343403723217005859515869126242475754638224019674341772820627951875899728624279990034939985901649217930120864292351352911648996363527881304535478245312937831719050985255808649209849823616792459638090104362591277008203881622404361455603951602582202360344586582893106962189737705098046491438296784236507375922619790820550381218881144266067331846925230872227690233282851860691059200720075461497070251811320813647634789235067906056467110331806035034629893774609501372858935378450528400227759781658018145733244484774233296387919655997168511814907659434961495507011454796206349496513379624308040534173034421079784725661479831719887106866285478149727951815981117858272403169102009583308017266036444326811450840038110585468577234302011341712751160188838976671593582771588835355155570868972470190403811226595002039948572281623859396993860704827264219265955562034262809391220591850255503809966070860480405887451400903257977148910216175267248639971147131070262264498723401948989977885101421153584216878646597288188848756860808730690764171487756817352354756660543924289978908930124215836073637904758405624895234902443288598184821572636639522541003618381492479639120043439755860141496443354328240952787074329216843436990678977890172275566072882786420563674521113374242489025312332542913085691705540533775777905432109205574836520422408861034041432434334813770616994560985006146529978640123291046900715725020402892655972748347127372537447144540694256132586420868779081557997482830960294112127410766382096847529756473682763993722999575211127356785032379412863082841397604592122545180581391720522300963396685572705167845955880527835620703697965020414162185308106029763206723126276557296343885587628453076657913738341162174599954431736885352677255300969704174962572406916929194314334684147499914898133538619375370742388802375024499751072217058029044980740507745227863810248501422244499848596016197869623062427686354183392956504385198787368816166400100255290336562090995634464477854964263948158767384390792284354103177769009094227379339794894603613421645055779498704856116884883255652941986559345702223480032618958665511446732847456740138135358231551161958379348666049252656599670097936032720258045932587018735612593198662291147796973851119739831993454477480995785134963939857161950613634950474789789653560835394070535154997216147314789271872819405920626881446445410868090502863182586610049220365230767442707166795475555821959246734635206952393608283525945097736033089784123116044363737572766005651387625067027631337983186460713949340136731194285830998189035859006035628206331939530177126081640599013127411642470338493770876485481074899176459353172206173970039506956821237247725320139892182038959600115910554005577139430840777895014712536394476201880006195642600417199944302697828459465195083170093691114730393642629878293990182388744725492228470495332063181281725114584443232145347171516615953846637341210865098883364545775143796893771215955261996965481449721158385918347305820484585012763281567541696912827903422320083880164227970228768070586328650500042472165002423557568403695883276907321007405721593504929536804589525332196465917011539482767632581290821435073051445792122550851780689996604000852969186483460840296828770711228509385401037777657309654339584465862937324793252143485930173028631967601137016008720538459911717761870941024494992075532725438531387919551078071969171073695108744630949241705469529526847787810817322044588115733743740452211949487311191432811835121599532025920530813319786256742382003716532283324103267855378003295265607494150711429177896127936018589088286212459558310287550829453351685079620100915698555830690132088984187476626797129135095944255320294019217298730451009913600131904466786460072508243870236840651618624986918371753550119234566253997676449799960527272402046651573676698775543797571544516905780747457736923544340604118102198377134557230031883270215156941793464999495928242699583938202484794620100020021000429880176518200614362157134012460051859316173974076559518414914738739918061550793529623538737456552739989723594493011593919425562943698048953825969210156480303086762842184981951494750009547755562923750603330414227672931503821901569854417441424977230698133977963398097276195021668010192482765279664601998111740689865050711835944487068005615046730717185253162640298748882375811942976667097995967322540455588268741955527677100385945597615840920576382821547413017603994249772248362656553585285427549764267225696191109148772347437375663289289499615733686531502067418735859376225773332837809897131353229689942670561515957651679094436248135923404068506285005727718212364117646348382619122736961235045025300301266211454673547304405857247587327738151327287559695007981645592321453081687949848651489295231799581065096201765711779791622666242243902344646971033289096351802117092910898203222696389619698991308619546732160464259161004709438317835768673092100404938187042097709731483634489878812910086686087715755093757016414442455288447236608509364731125797284231554870092116142058503219800041567942990959643642033994119554756916660787109772618077978375820314216187283881142710546261288245865829845036539859663564316626815959000648317425671194246842706508925288550037016718049775504270009728815520051955072372279063079145561057665269837424324481107714521874316382027812519174941399155792950318975642439304480946107842865789940647044748526813024003520197916229298002689596610580866397399744111168530285464521050367636082471732272850046388030611817602831252086095185095613851547748741558451894915214650269482084711561351323031804515574631401875244823901631761345831683372604670701774913302580773134134132980260543378664060256661700162166690884549395733982345478971872781574957658881738276484231872724205709998709809761648773034974852212119388187813722187113944736973834660547579841640307696994522176846043903001122297128345540671519151298720825206952292624359782631866029473803839915134337731357312807481248332262072267072213246191519539138540061421405550159570319794484232753319628690379055196183641522598969103490353817827894869710611839415068261916643238105701682806442885738877280010540450326537087588295883859188520333326251952564013370510543227085636660084202370699231693702918455480959825957133012487304942391662285949852925073543458736371142202071595990307871244665321734311916846108989406243631222978955159924079382676893450171987375015186520251602786640071650715233861533653173100476108415335017232403371430946374859771319490336522903816448518408337099038163509807180448721777219102875206806190569841869213709470199374663695071654815359325199271910729682006109776656155114323347912723224954009323784483158148134813452361516581926655097676549118937454334403105654276703501305236146761153293529363079408719182642491667902618082980190601401146999009667726026251934771438428862041535096308166836638555410298477699837728934001118380125130024219343708671612693374232424886600910945863431087923397694113088779842191105854292709352078302947197712480218895375611006112205920183073602653702337997290244321212045250484140565457695725529707355927168498467230998992182727963594312193154240507913849683933969317018686344779741038958407384130763770209816282415832996631407998186078690716494868197185809962398426118500055576574905067201054843531480155054588502902387950628211372034878121211285164134269423123096524520281037928030192512814904439109575152800482208881595296370094305139034167721411811869583833080248240594171198737305876078674412087232923055195779242494507126733269407729942318946006850746767279240652361206474095941738419525157975353868246706637289736109730456958542779469347671290995390184125911768965660407731959182371276998167489399384185144122467106216815029267107030908119691540516425022984907520315467564889080854187992831682474331924231498605518416852992812570787698203345045308956639859589300573770669772310535114209748867833541791454284264883105723482045101813720493381631834046098455228677526314467919085286048986854245130879931170342857987133906435978240345037965601395088895864344135037490962202650220369837484513651366733577728598635777347735162274856257560368283686977539822272512961281245230552036820710934179967392428918443397126035835340487275112965568429190935067607176549423204187720104508105053145765765046172368924461532345920735190840804382727169574874458498866895907285430783960583185578690558170826003045026568554436270595063105495694111618287716578210500072576307856088078330107537680612805896578571400073707444423310708013361114278191861483433847182962402605325712479569091706468455668695293219007630486944324373672886656048626097250231867750361325947403488453330947942351389502524341010747629715580130140878519296408424051404083403675080264406153178919061684391422084644872735676994798374588968295119240048672616012625285203278208571267890149553490774893527811042281580175339625539479910243199523378200045361074769309592717119622470959481420432689132770546475634836892398317459369632273247011617560442132056195821349284442317293936137497877292279036586113944136157634540903516650016167224793985664373047609423015208564403668279496458820735577115298790956453246511608629242911029523623149216001817248833679252294085780327767782894127236232076906393052821155073835566204665428499931381263726225683375126300434463410656840961014156208558303123973135250610016994467442502579837338238243236726612030699230243194071022640820350062132745547593472074065198826760314249092408044500558894562104369162779853724881266785589616764917522829897779422626139656672581384516002079680357921581157403029515867657285927154497369979352430785521545693869583952669536791253749802171410480679939588480556116339957182706245574787083655961974912574118960194315672083241427774126354614144224522977178172217177410937654916108195098971585341293903222870678543385475473814436939115384009029039341549997989908943989228316111123381555427176832329568700174704195070742350599279683565468988250571587590175945196999865537844915887692250009144764189799804040781583387176489231550256987895991905802419332579389488770754247523768513640016061277374025575874017245356020702823292548995091553411382685038506583458455632294088342651506444104445630573665352270904047158421730210343587216904670644475765707660271882191364125407835215581567819883765704262556203193712356296723551635036483612939335526304165827784546784716287210831864426389565935279207421679051716297143648485133247366688776181431677699381478236960839645790665111279330812005387649873272536231585664932205392638525875690485037664538773086598230106595761824984044584288333162483908255681746534544090210838773536111762102797098760620295215905557655908409163507231972685116498763341504501595722438177868707796132120816600419786521668326251568661241463278950414256253903887093083919170450983626973527144304317712033327908136279628471369698850397558691879769875161758173131591381396861576113269379564542047612847746982987180425631714746280865887893973823953360159347259798320747654592946615753388135391941179902016029920047424448145794077814895421170563886554914335973167894446189345589386845342043925696062270468136638586441671552614821094761827729176478088355097091255716403403609557060329515648621207471369534545499228982773801689637568454649015321516483474653140078268000717110381256859987454640897299097404717648277912430087590917782422637869401345727309362970817860840648235736484932950915450913954000313843786487265589546191559431209792085878039450811833319781578244452170677958519931887370511302396998796625381646532507292656268616596365916931409823134454519309908130953810464144959831081743274175876088961679966401097666762972755270286610036435898616250400492126282404163864845322371754210514898145558494379230541566434445735943212174466379877214655563321077514272572363319222258336904970895540117552376987478138607083354781847324415999283699635762862454863988685204411626951646654083448671824349734734516760883295208711747046757734799591907776072572682089285781893326964027554608786941875937165549787304095868490950047065391151897212647183036988075405846925302975475778945687099346458018800855925620998653353612261647986077390124354112813169056702558595994774870183340251622502950329055531006327437569463399448528800716196122499671463834877769448053652583411555529884909462254857817517762516224574803857351195726254817336335805989486768172462812198000717639410101890843877509225788173398116990681263411617584170190341151292444216654976408206249116377942929163809442162340797905021978601914321706631388270163366029269541150659391211483349134059231893572215980592196179238013991932523944876784849349816388087916915350180438533396495774947189641854819857820209389573592344076496140551577970090282737603574301731522733051174490154735690235257811376310823944517634359668900253534519583693875955006813430358830515056918067783367263152781499362751118091485773686102823655381837840615089102000865923047307629393610599114344328093837042234930084629923539770210630837432936387467285609298625525635170309839621669082231865059457341713275961655964938617145320736625399451217891850687398890505523043011161360173362846796952008878088502435241666168270240467662592768197451231358861611486403453559715120177738214397893305476717972406574438332380386256126127483602063361600605821149341074509706825576281432535158853166185505961475152242839327992635767817730734981765011741461106012893553744670623853793682949762518863514259027797298183267620394460675731924697429008014527484406921598847147869992006420698984486361484598839428054463691666536795518161339947925365829338589063999576917160752139957132717889658399558944429934441212955277750920111542349109561231138227969080760873235808897826819182666709933501264519592948257531259073007552778157700789505638915137810147808262945954767903753154182465657878125754772958736903932986731519833451655638426221769000919390020136112052283652115914759187323975599547103346747917050114040289993634688513595542781044910824716784853481187830360341729394401089439535382848553900703046731602947830888447703865631361109908709509181429748193493271224688528687211263667806366168324602461323656242171898189743019450778338608376824779053556954815325638905922989998019234844200381153967509048822645947223234615604323192237027092734480011737004076907951368144902630138714201232581833347823152914459986203301614330106387267128118700749459225992594890534443431146939624045671576809303261187868273267831403986389198655892373423593450237948061106407355842365985202619752350966802827340998403696358430452461152515859410517934869063842234920406711359994751319278813926333232761041229203143839763176355782307023616006727433542352964528084070383375205952903030264991345429267521917829287604894006542115684642923746605148340860388221198090780457616133639114314083590548147896478742715960737134576605104751926481759325693490070220044517335352690717781691763623925270243093931928799555784220498957212945730626722669721869436069550686905049698111184240881374895347784934311168161099792073149936548264110599506150080246625096880535426572833077402167741338101027817958577355201534630034083720646328276246105763838798919410725768572052772426724723881725893485633123705361865672568960337505805990622117840875381314875984601069505672541241900380851848216793138415343623755035475708628286066751646306852497963826140869640679180803613271906985703591254319558989741212412891420352019079418409861722678889918442700017137468328185964937215026409923967224756356408675109638702287241976982502044716473023696843918303567765634664823710763352691689313652724626136712559065456907952466725297920066666551134738384082575022717144914805854460584232622474501701648944846510081145981204087924210161890128712588305144585169500716722633646204612772974183933156674097971341977023343655285687213820840704854681711139710686075552380841796005005994444402411541921810763001204824656288937451586354268887196370878975200651544212950113501173633091101305125195799258916516048586395653219023729483822438374729404483457072220065047740417349999883173426331494381269981671382571369235196360200990622007193211123272045927385649536895727524630096700211039812678301870460570095399763804871575534915025576084489952305069814968780826663126897904753224138719203943062080033909523866304175046202700761749259960463335659824694790763910560885634809252251821631833667228168367793771670663119603198629170751494347333227388405581128309236333253160193338237126899504534475950046009604344327295300525779764207627587979435734322761946137767837857397854505570273938943601393240787230905851131386992020561679797926159941430121759415940248916464778954584728156622049741416404722449103143545101656865241085521249741376282698885721149820312299748804081450111668575386629520341979941595360056885079448291273102372026338480298691737575961746317004232538384609398170471619076593786743611032681842449029712844031311677559328189957354007378429561643816215975026755365078665578524083379974074414070860312303608539282020690845098380588319461981516983268062104493362193680318609326444500885948872889000784493561748494475331347033882053901904601361609695634039532756235159446090527105092196285821899999166699369347012135444182249537340733105473553505632689712222246490842500223886637004277653073361870525714911631115837336210955437753602363104315598713889891758112174570002466099999536280047133160913686720818442511358125634121186197374510132841676772063808342901882532125860561116033733202517576487693968120897807544057393692029769704180784463695721085482247385502906657867472992171653380254099486622553296811289918250579602797630313102894188045703960663040125511194990513317200806453614595806860552752803957136721280944251316896572483123088296257179969979238207436448171416854428954121835703708789050467819854939955947805224629694195151242190844278546475193885489277464158227880893194869741856866366246627260240401882986005085161212201412057218011676782167767583929088347136740936237470889914295465078295829744086376715220798518641512286770487295037975018420575941011072883165826095223758532151328332332592398567846465117398078517488813654092003446684161430537931259808815685698926705160929693884334419539924621960291691696788316387663017274320796345837696263234701696757021691140805723134151571324652015474493144083370763114865722315141514571409168985998467783993138104606287528728527459532505025499756047307587770315045083494072319106474635147891226980770621413876193887764234282231111794605871802847372235479781954467325733570943187193271971569746454725223657607713264301611763729250459550645959944552477214266101133517576416179286116060798619794648436101931871235502565263946540363563574515247690077620171631293454822646588960308714934789380741124280611395625823050033212212357886551182238090674890991910542625171385783632533513270162583096785106472332820490756468452309346860526952262483998949533474390471134294944009557446905923131252798091722088877975525191668240533744468168663356015846795900078254074801307240587805751369094516918261164047658021732137187536809506495896537369354262521263664868562895690837511133066829173869067988938866924718729551134581818974064920770732775804046783624102408640773343393051898350394843549848894125561293919110966034895317079845296690084225909850938124794181488476430644215171972006689648134099669438792754337583789694410742527853269834171084232799206434032660570596759572174033620056830191789610967354436824666031962500774859832335313600251999758950801170656923973167157338877843834636296684551298538694692779872974919295260620291572670065090910662069028278623553912881459600534251346393062187550070529967718603292623206778868223988644170917088664100634877147050933210798598354815119661853386118944810513100864048666234678002319001523020317635185205442734457146298780734946604422484742614122845294365895910430838094029693236791131073652260863523281430811756346380903171675268990510614746435743568779715192103336052757945502871063309711213546482693559557051465666492876431929929678840190781027710000279909538189908046220200168643095226596776106381570604466115221308781621353894153019193810280810088002485328771115299540211713131705661607135233101160297685972796110001717974989011506630918668907643739629045710783258399494430676737784061002508140219986027279924061023500456409257955664252978976874450990661421077463055582062827190553670323206230881295500818768394688729539155924847495523469427932951211859461374065297548788357130704568733354476358434091667941862266843214799631327328853377595938024254894696417119157101162612916978926483913366494593262291914790779349544913748495911702571186369296747587279867041492564920964582088217346547687279206371559828978906248657022264279964717340252102850682953255718597053801982568159938232247587766894103521237258414386325226846139628146589865341767264223776335987903468204393149422619245341597669277187935527112580547328542580033737996050566639689987210411316629950816002812472775028808646308498639803417580276194939933775028882268945751163832897053054619492350496520513665926198523147677746201979796420358260932652757638514977211092580245451223634883911857251845013176304853975302948144114211338987794114212417174698804886734520743361207335208350667072195834716538441688350675307364100793823730841302421748385824330824102772113479112423679807914319224759872533130406348213545184185859803178751113088833384179053196493582834001955139162149957940704606733434784010870509366599951960528069694366812958239321428334176176126317625523041499530760783380029837720260824034506861196549500912641699510464274427746020326918404515021258597639240015570660597304535549081433714876925164996097541523931619621852747572338344073879342352421724395491911065508614167725984397484648503056431360190484931427337783712096934890089970173834215522946896209020179131743337741278188498310332450531804838668156297194698537176751631022742987467482087786188225508814625114428886911057220127131342828803121984109429276909459202319864973366939516585394485242773849480449709555197075286964203726366856530094333024633240634504933359342712983676347546418967398511644636140994300827124192223664502066656880834885962428686601144688345031938283439709140288879300194857492227926983396303089401817681055652289908821531596216295983393306787391527120351850928383905148717065536623420973100658683953844665576645419825998561066165109499624589272049692898106664992470890339815254667735615972312437469710824694010583208879295687063181983416495267867117507206141140554070935058789676599509609369829972252732993357709673461299614410777345124894245582103532424444014757359282875811733546461540920229484663211357330913442584222450076119312319398902210257273646809246468665177337980432685374929886509243464380690109053506960505439157884593955032664157254441871494170589997595021683129109312186055387513305521136838940818007362454815039456239060444572087932637657837488949954916138232033742719823102783222285358002633022742404061702800801068395219132746602944662181935897867255844403151541727604040942603543330112185900809372113110360407544139955064291166836408091714889571598320968861103127684510426161189678755266579372267905275022289982421197063524035364869581423321402722425832013456751088209609128931579187717402410513721992993833149770772296460319287241248817866907876596003505453867631037777820210052270129295190742640825624584641097154832794106961719735140648936683640128219847594892541910180647351998299345426091392499835092942624738988765942014668372460555067056450742614823311315417895623724002847309995758031832727578804689401590805899058405575260551684354134268917387694472522136972164662145296369259621685432821459048981801198767524709447659885976844241709375243239514225952152994060349241133233261702834158110191463394371888286339644157601231141589138586913492684533268704198013041907808458629697010100051756336486107128316746148765658023529389055029457930371048644703403247011836262352136718951974970934539794987697369705800076833075289275402357632420894615482345712615332978763502804267007496279071011320814785576333852554650285373828100124394980533216481401406811506949675720082125082825868739499752142877083031949699120541704912349694505656137182659557398456709540832492512329086216712305072379812343859223279021557700277869136899166622294424992119108579694252943182676579302223620309796671455630258976228722169460920736133882299531943620612895550208084526098072667958433962077208231171269240759041634465274898593299543270186110370077577182632119340357373708890134873107619390280071243336843585688856673332029245391389583041208287031065053790376644487803478395560405770065416857068731074266544409138744767272272451100529167372466125458088643009886236548007092650316168182824421714607025098793374883075868136351123402161057981508882399830010416593434858213872927985549852945652349676537312277759685998924528853506000082850523511558804723848641706674678181072203808557930818873330142134580223451568382096886941203021972352427533816724968481631118165517810268492008736771404212953236664512392750180559078233715714107810342842099823318359917050790709434764958442713554133983015735130758217399939352958092830707643463882634143502133259578664953344609761514105064809038088745412515175364537812483816461615806739723801110422691402967484384990815369931325749109528798279702151201036131398360948274546896333474636011590835910578795794597900238965996812223008316816114400779525669434677704964312745522580831196422486648099001817541950777663734104121618584080112411606880695273123138759164048713268299126893622478044110830123344478879619584497695060831403137600827775127544285876704539141199078349101797715046763077862970952207929177954176730777766592107774355713465834521440834693744708796537864557851178534547791998608064351284026417631601877378540835945574717493961970083479055498704838664630709472468125181400347256661745025460897266410939094879699993615299071958783033172488714326668410068985070381129654498459008679748284852905287143117964516330325240633002208757869355956677301797841842338928351787099783693176451594939678179018887841716553919550517582569469436262997075307050801063101136795850658733746697943484630459740804655080909718007964056220434051528878920072908009904003179466885922590679346852681874131037755076825360170312212940288476733714144158843335676098844653597689801411181353669968132540667822727179240802356229054646859396898017586907060147023242177098508860032629593021532235737269565389134379759356888478239871905766834123334104752546906221325948760756892162582159389608266621476409346790035617807740913624988160763812385951636267460962131096412372489585573412923190990543217116382743833025783971099499952538802891373470681814664615240260213814605479079930805514523664489523790121125736886356138225307101558667761523567487766542005774855874899560515179448486435886070004153568408494437403209114160242729162706409371281501566964940065827473049370520097054867120955995835186440250375685970990140380740757212814416298190141559717726290873582319985184901824395748820172438087503163877115507954079430706452074839426003433877816344385296416797150245035976831419184144144553804643463113443726113535490042720001936581244709259364278399256426975344000690563129168101124550123104598901596197078245527319594596840595222225290678406059992820194971426217006882840611662945127275750002772800928043906523640649483694388566539184101058906653162123243906361202784353626407719252701616685177837885985229551607254235269406376232767047619159406417698684041324954879550629011692633777111527246810747698339992239400697716337788935480777348653389074818396082153466962612352314675591789294549213946460105779376282927239119946398100250178241472459138821097277116091957992285295512885040324174829310394436217353329957042074463304305178379533715955596031776388207372085181425790541308680013589629580229865766534449052288893198823464025421948201231145523904569504357446662697545637406273846495150256541020730463912520500986222164386975785684571781373857278842668960759402914226510238021000982320156087426484577211768877822209673219464619836553039083864015047702772252477233866372703512349063967186766658517822321831741123161885515482801434885125180774599867998544123828997679865897234302966599323856107327483991400441761182397123627401881019245740148283775943854720330853353187453758573493832811659363187231205264228350814126170244502190366858254521333947631556247760926198574623912877923285793036470440958228007855187495982097259568303760536868553112066118455871298876947806665404395537911345541193116235794987140470074395988700609252661114002288030559712991869724276887059978567761726508439305673872170259661287131792959340957580833847069308590088103777419796276956220461829758588495339671334845851121817619113688523835285873944999437962523414426933160538263890177084200578808496111084941933564666103663133739871045192449043287756758543076021514896266547800865481315047331119584502549251619974573426077283730914217351138704467471587581286944844316832537449594156417240247651716078367336970281686698717190141056531376845349279612212255539457616150736576237139560824393696774727502612981914011671218737648565413288263206242189216764672972650962811743894966549933648855950921838827318797213661622345228412336089454259503105333204336449588862821595743860406664396059811898898339530354889732774356066566756896641558341531325147706960431671717932077497725130319151839045682966971509024366372528251035028230131282627472732947854689499211920078353540176673690365994537253570907727752751417015414858662669969056306458340748183328296615820195063843526988776186737854869504806347235944316583810016723499623120530608962486122507812633570314975326329589448353453173275903516817199956979628731710090114020754187619155478784344632019216603363903405466883401181166358966342283182607225900529333500347605995298123555246429239923785836641221284346729227599165790409311294089196228258803797071675845919110458618827474305810111929810389918492566370174530837065370605700950548954885728015489295065599373821689043364928477851372756900546246288098352427051134148067183578741068257943565667590655423961290699698146898289848240767694641721733402046436163279431598700075604356267212670019962647985240002798737495494382331344853975685885037904508011547627675503305356392823204037589895210365600581081038278349971580327359657359862015348660617317101692796920472149890876107737248095524479768865167149238264552651954524891434154781096673592521574090331744792658847533152470118652904642071555541646589285996438940867039928003809459372856712710709137874288451548206396085958205766554756591595651386997034710652950709018219127705129853915504932767508329043266090623337566216232853530215842137717580274832548183792242751877397123298067308925536430295255092130090162555308266940227415195928495871113386771761253315953797355797323622982002983821579356651367630817460884467650972556490308441738435392975606162229946929170768336317593096285097616149180734624222005887591703327074045900408505573796885578182493185533938141226524723415385502057037039762132481567596238558111107237610940122941464473708283466196486351143945453079444026933938958747985526863059045513872343349638455098610436013269423413493591650484238676030564246962717148807081657156018306382896444382922739008099103642956379406914971821075455650972267994866040371431699277620560762842232512414821994907192608872571827389799794719142331848504488031962871363895990203765790525373265742453451573997377134502944678214460135695477925643300497112279818898088329727119258195897027033685227763044436697017234499050966009520253445154095394503111880750587198804827769622242127084947109406672805556711105334614498065973139671990742671537212312320834547991909269223626738940662066824984765996699912014863874576673105158667279659311871142159079914748317226398769116233054066569037196124243153428750926861458487900365699095302029962559509836684012046456264793078046754623180358246044424738854734279861684648851162684228970864116780939432036531500975187776677696610349592535144556630614984368352996365038574986976393023119950629596467276738396461554270614704792664620645445004281436190524019514115525339848592562472018198526688295346832808136927187483040229057297567847720213144921214146617365841634454103718922266875230623995808339011739556764554307964120047385143090132837741120439684040230711275231590650016932621748292755183935127300762937502973448366382945298684313033546629538362416881349284856176281559599456405223004673810643130495346401038061518224150066655904103890117545098590347298656391215758678368547264416893629906322518432645029995988747877448887046161297896925226239668669837288669715490710836552653763711724739436203381044442978742349100627793362682123029568153270145489612027123787084925803128688903690867125523928394901950828473151806282999319894112016534249403202741781060511254933091128437733073855109892066685048814912773297909085153816031010908372795755577836798791554311723914293563672107173202222300112978227082394262486667928755464217086426561833857843496287796780596840494130914678551975500490726225675654787051992252198796595943995505018978291178501774964717932807825790221672940355410707285770528799293843656142534063528882251168927761146393838009285583839174159537063086347878823065189474394522834893478748003231860831661181102852261194910247739960365411596905556554779090383999700355864437151478212082382557932902084076211888255975646627192638277324007904984617859448875043218792006108548099056521367541589748597741413731811703977192226140813650545508892223425964787436000335832054838975579898000824802377997050389428417691629267686963248228150251808002955631705425428083081844473746782740244118167706586988643975285761382655565794907598437914839221379223879112879806454065055193714291030243576514193506626643105384123538111291390533355051664493493240347185442996784738674919821558624494266386601363284416704767682674345147393034228729767308331421040353555334958660932542372881508636239685719691342983063007721898556657592568361366741773061563153420102858761162994218865653901097037604213902260109490082027227592801375486868621531033849504726103270136774397923639934111248615315957022812726104400356852947075616829159206459637163626415611002103483441854200784636827465479795370228230192473130601401741114087114198450878510697628843848535378218580534569608457411485663982941126541692821787591006305340579445405098739336408972025015959919557279856006956441169776774707461280352306982221473865851689337484609603451145116499401086079640669974224303494516030924451711508374394132079593270258279546590920043532287266585696958780860082109375774108209074804988739143421922235603223665697965178765270259446841962159520845386073794054635819655169518129872915326864436778580452378769601492819768963677943222255569608901444815293615369142046866265873179171526641881849379549685484101999332990521020665599902302749485127943153093534532952483513176269795470856802582244653649574398230833914245672440398436669683146968735405176875065834667567493227024768774705752799836227193319612867216246643028387146450583207854872203892890557016351298759393631734129166216259386973564985147139548122933850930577445189123036934777751289697727277547521978306867952342280168129076175745416493648417310373468201993419305922897900442920365753629492658717078267385915015200276660756323874112148012365319856277456827638042662755985500534272862766854619678816771462880177875343131928897517957974174270237572206995889332915877006210806291286454786016114707895218773061803557189792110244022148471880186277458408202243630180999100272940984417979506541151960993279191539801267920075436600141860752078018575943750256610253868963512787964971680417891892307843672243348986339343478751160158064846215067705757547899010590656825875423202260965201369822159979117113654225549020088714944461590392246492823669483223718273331829876288263901709077106811816649921650648152307332257992693908853274044828233874570551202528251188864742063010469971695545990810840637009048491269887366084062819069480452822685988578921964637100323075035057548371840432029018914831052512024503742932666918375147497396814195184569154001455569476040223584665040974869951510993395666121309724893565526908428425154095462895551378843001451213810350553987648142509860437565696961368712791553847102646004060651946333014793206122800919093427172316923922561329890628431120166965645333648457410019889971952496458218157800842105597168100063223444331132182992477594176588253376793747490887199842387254492170467634082371935765238643818496583068534112954798946297432957583728883104351205679825559804260805631434180824749646315632914394782370888823834466211976606386935986030822096719484811052963450136347254963397567999705575944441416571551414852287073450470755109235096657129140918405087069978027282721483311739336461619488835204669556285083590382915661242595696057052433854898830425498416770622662403439784871036588056448600794613421187538462599600602650160790388689604509180496157913480403938669117712864663835583137445589045123181565894803487095143207953182865413054365219542581014636558555881328774035529386547787153449812285569660164507329660812647280327516582881483485686745817997001248646449445864487436916548807511045372667119330851164563078635466697939196860684589112605055297911186490851740572530466275011232286351433925326521667117201926408124114223662152491190608995959862599171103259347628223971563116919719792642106124954388627919098709198629725644675439824824337511320361866609391773732216203568971895438530106761391359427172275480076379431161136843985232641411319682994121007855849366636331175217735105278924066216616720339220688043887711028877924559845256964891050216350579819817971215550990056633661735490085860119766046321588251912337448478403683245698496679116268369187636054614216190572752998005496931503867569250406793396889698348344103057803744894251515513371985753334681705662768064512579138235288628979126162445424301247243810090249085778372928500190984978985973252671824321648070153112695060309019401623288357841489822661387881932265527889601404080675225001499894399149133098297424577864578234095772258039093310770910042442861931551249551644041993350624074408556848093378417641114338365821416723893385380954223347754826297642463182414673765577239897198734222556559842512096620675853874960728495933414579518869373220470865646048583799484121235833103848427258926993785398162626507986273423266859993075886807577503913945102872166699775624417008731120833653223167656088440128848914207846979296085372134942399497039204931337102453066900436009629458029091328213389790520763060784557351828965335056715194766374403647910566833433920069866857255693922431189320189814398168530474390506594859316728885734922790364469894470332382350944716763711878154027598627778848417844566192913791495870882998836958563812267946940207162583952604299071518288299339634084918666742873780819343735149244355490561293124099389612593062713335328467714286393998094480702119223058572630765183323297550798775482950016103244039571399315411734212084779197364949682484174296827875200844628194025728915948681472258491200689938297209339313785119796310721226618326956724607444280001848927822826902537176026350492638015877625477785834318167409318828561900559041904487627468763103512408531104606004826114123061290437419063112658049845599539657191730265545981220841586399985358749620750215132519633385750056072937497566597731673485303972806745751852924124080551314208696434132393498160180856412857291996708567234872276290140130411691188600142621660633541565386473506053065710672407702522703928035220778696570856022261913553508514063580614356108263521852053899111978598355729509060844713212341395259501033476692651546203060752126123431849929099160346167048422746118066129667981143646818762034662554659251755085668509982645647423652777383370191692751658272455678962611999867980190560477514736623860176882577735845926653846302923605872548857261611225643959995102705538721344536956261308718379035347483331138921832019632996287434888703854426093433654399719078132358428453585871501666491255118874016231964049292333820006359096589314528876216220438350332273007069936900243079810442675177869931339395126235550729031225999730023189895454013706866203825082758197993327324131921330873460254840030984216205351971084664740165242972955605868451979744186555868211709153443343561737032532030311046968367678470482816429001791786347703854513501793473411811661873808695598552714711969401177661370469240187412302339161297134634017154234066372706797647314090671648708635866116899301854324560492312224411166115845717399005022956206998739456684178677737960336063065450153319118442982402367250089932507532819850591454884794018363437995858312964807404261113720383506900716480438328653431242937063829221777259499987185524775746722460600880373633812780666495823411132548559552316816726417372579579719556630862203617285163243460612314681316311760538480736979843350196774820906649815174143861144569165355976157669333758220382717580630116292449308372805719925051535406547634728959157286731245439448998111639050260377378230189700302035618718233507294699607681971651433815183834868729146474745141063669373401615116582574858275445348501574822270571015406335937323561951327199489492803742862375531039136334189822253697720563335914129657660078090822978173983843463398294009732009682549533359146428053656682700085342451589334192440760370837183849066176049814110964686325344879068404070881131976199972656127595670827405855603850063132323527243385127319304844960894690861592506655845680974765129914298886517617023197706281289779829440203244083142036778549271693892083651596758696867351965335836429576184664975782564971180743511536619910696351433267549014775353112888000999173475162990763996765397661531110851907133595471381198864492232539131640978170833213499709090877969433407295691369928084959629525244347514060970918082656789214082479895789744657178373598139248744797605457514690691626546088156821387284041032116387985854164943540026920909318356362690035496759483876854033657426222294506235591760585227328312514685589554099825852852922216253533806452124965450835713307698229725502679349800382195734627263540309143741526888436226091753050935922613024579800004482133458892941519288914963028651657930739648550324874516734553183005445188357607315408476955892120590566262832761638195768623108036929755015596965660038833943254332767162681813303954349223788377058443387024954284575484302529392295989347131229519491422336824831076421005405008109599938354649383961790209802118190557341324163672896027433424588230298402888561736152354655997058356448134315962951519457045562683273488643506379185479658373558158869448015420194435312054150207713432791172408669739377332951649894705835746424713606134338116267686504853843698780628285811082827348200846408163288459692150333339732695567103857048384810434332129464385598643824884581574265509821003407073273978553231042434531820003799970269644860762430344050323091240920493245653134911250017170978992708438351728944439581488625916112870435341434351732056752179592596063948773199240284169211134631812609840745624662629214930978542268346856297447324604326331491929008001471968951207291998725679263203156162237611793249905288183004203279933174102067786758601022825484089903886126428038735112971400250271453606516639668005953653875039345545959609533040599895506826754208641185563105885172768816543529696970008196999656716311913150820956597994820994993370003890216829920079773412663645679038031734416274014305204304837520045384974831378518903061767384098939848730699426843138143632070546728772207511954573224463043463267073935054213317091419505488765273686875856049957436974799042707062581289489300313770243985173275272179282737014778555489933548756411365297005390178441339152702503940253683493597320234713598145365663256557569040457598320655577833653827725096369719913834343115135821659493122924628922151322637116820655014036068044218921258371254058958965741324422445664847318626236216816409973283581316319000357078205755323247897880263388515486006864532667758319551437093234908308800765161947482048301193916222886878025013342597444457955737023883552860178337994181763624221351777955832053268990352366170200629548016711340595482426757457736875709653471762854198467493850045116442895420860410593178314241434412059334667712208985894749871317097094739460261918003661608190205722073546078167487343823752039707199845450862410438064279075320649392112343988880847724893607318262935536583219471272595545380058894174327867449239598387503001279740553014603527121263944700745644329804515950596797946651933529029427741748844001986214320170973144709696098421745885905563021243132490581134843475854115994499007012027213810675741871457085978990610580607206600400462707287184469449632104084215280073308192688623272174404347717923389228289545000574845530540637669722982855672968141517624067908674814066806991995769571505396485447918570666444480799469716883847054680563359016680259524280429806111585250940646271829725729973493097758722615787844802481067353567709986595316326215816387950650152169088852116755652970063210642952524877060823413534827253872382240704432731857226315922391497372995522187610087776307063125091684772702227393116087530750201987938241686844811528291823959463888423083943020660899774983566623354468648163250465534268422592685948037293339038038779783966358014971560984187302454749469212920922818000727900844014156871111307153770077141170521101371544341964525603950941623796949593185400288234068063594514180338724732370050122268647081276182933908705042744982083659893088358432216453205479052163706888971192241386547255636519613089121161373461612579474769005518015124270454090795621826962310844602296414750451157687033650533806370099096753881687022625628691881352447349576255447429189907664061715423119648579832002628103678758971647841520806467554925897916804538987221358393714242698019095528446191709308756855729240579656564151225001177740660882168732832002847033344818428387038466795906630889939734529367744347954894985925356238792484367629244947757317564726197881449078439666773148862517508387231731282917308453162232650829743402671512962312363173383388876328558159389033042259534824917913691084944857765993480714595922105826556923822184925663945943631009984877728314710560474632634306820135239813113505074656128331075344394482255537099522760218051715771287909434273074723492218145004213159171791137557498424013677022791648350371624856928793787538579941639153874922747296497411572734440245194780318825535476928660797101832113580859610690706399737181739817957055970440102028911503604834741951689803132077555848361221522671405631280691671648043162243247544051507114961105537621404967543924051075057301924837910946283931016509831416932511721026875124641653403385041465409366832724171572664812977044399450434599878726248442892345099808470037503913777903676879640960430162689007209586608163305166126178958612005622878251560306755735509684469845440482870646679639449445630822934414219490828241636739329472048800957526637234490375607417349417810441526266151582507178665964983908862591155325837043209397895774931317505980774996911299248219823271066470365594876558264815174714258139173434413387565320879226698622538609599090666565085607127533738477409340611354431677112267428976689805144148287989380815535308232502196868192956527572537959565910247228613861423966516510254333827895734055815483084723322707538200929964361633562611997274857003603607479003163513406910079329639981800785638981689105294467983414959499042908545694337926521876576625529261125629427212866512312143050046694726944424521221442378387108495507949162481122349426443828616369139868546825409709804263626794703294429769823270370728275565520483820722798877906609188549565917627541828067713536303215754566009512438202937513856786483767773363659139904693226163353478586045872563981208667240737924855084161090792632225455615102928806682853398729226693846563653627362638530277495730453581292751634035523890076264522315626941179794511036065634675527413188664787436291821155965404313562346378647537533570482144338869514815368039820663969509205244870528395947641699822324264779921516105195388700930806354348275085728057577207887682780025488577185859742349199228393426417131355033554297957101239965118185767936152740525697664607829938738358531681125630312847405265609269841502391442277725408049156001964130426405555637192239192892660277142538739896663751575070824275342725770601393173486420600543223538679566659088175925041013502853922117883645511333611418309260085529747925534672491157082838564483727322023442415771472981863499871046031806842182307147629666798829307098837390022438144764204227035349475127860983596008581942653303302200719893407053810443072863070963423574400210420427927099622697469348717920911276450192267007762931570165095055398483359833187080093344955735705570476007017760205531855524830783662741594656597703155497025998327972711224110071538244960950923319932776966320593637083192721333181892419686032988471451625840379059230538232541755032522675619056234543164642346158135193292351589488607132680830624704884967524780937236410616272041222511092450548367286313861651059705365952238027990808137625931027413036283008354679413687961916033458626022719262638114256373507959456021353466349819093456285874682875329013375219848284690824749698937529963776426876033375440173972203874193094803430787689254424736640401227801243470694591561665476930869320579687355950360688781934610182999330483933030831445416370286698512029698929778940718164599564879748729143968508122142678887919536285645588805972395880436995846542315355824081952048400017287320782652989037236453791599650290677053741807847637379304223034677008636306841996057695255460536992321716608632281569991667268724480650552348092276743398092610448459845312537166063275102453032093779377725158957815836579342674705832295859495010372080439897129642613305459555249047293344327346839746646347697661026373217939365226932140012568256700935221268620176569397593368271977959898202520918791387476004499292331753108570074861523919705099174518879944595660600890400856857603375599983572209027214035108846171462472128149707277385527475857322081849625023695004817880656966407002029211480972600180282408530726098299853195665291109477226040444585424221701039448474792201022899291987116687484213798042395675203443304803207832630943640894642550018350387396842265479009495326753397241672232160584235483048607822175823645814341201979148475700607774196641892072125651814522313955741078461413736892675438979997908331200520342533190350332226551104061516067379310470552726740631078050036689432438297976477870546910500308462582668462705471522153296004997803285875574883948593344511001605466750083467986695249609830658610714584398254620780622589196615976936130127598223142752462846537824677118480033159796133592315577294281184996350538623060096405245956459809150327622555550515209366899458637495825686623011058750640422932736992665736467274626885329831804888809054820237257069549883102036406233844019782513672691012101036240909677219293374344117997799102687379979188642064933617847187660609895102152839063309092089055131160211194283954474384114220176915756859234112000940560815631074844197649126756607098811800922228579341099956701264171111525191923618164315561504055546326025812218222423299390341861796192649648284346980216286390309072074966112973239391084960174315681227083454738353237604680476321915020860827719714165630870353889990359166132643137026380017637735243520580027943819688021253519107218753170161743538929057607325546557330794164018562195569969705156240773774515272913437200176792966185142485707263326510324350683497999989219062864150111643478548195240889685118896303166051662731398007110120583785157717281601389575982100374219759146666634938046287502464393703575735804214289347824277556984884082676709400961792144830139831608689147692802915214641039341125077559912136220789731834959222445815719801606465604463437511900101021133563543597693790113085998686221579237287703719982572725772326108861173362205225846003640388197208067597383029822509297373962111041117083224906519031670373784692858571222098557574966607000737881589924169462173217394891943322506542004677063284586973020666694046967086584308764357468083032372651696159165011408891219919377163110762239824862631179518633545081576456314442205056137638521732787810173707846184933286871220734703604465896348738270584783920117223051828792296015228548206956993026245257573606762362843524034985991220955820350596968067903605442416519139974453531653555570226305261376177109922133091603516898269666650278753100635514451505199064933437961793233923912192571122742063285988893241634455276825937144624770122330258955890221429511433026770501746259214391698455643361532361029303470084623838910260572534780255049481231535637432773772509824755880412165603880252359016247613881473310382909144578143920293831482417181707616189422843730753312492735513933975858130542621594962465797092200362476776255496655710389802056175159350088891972428397909836835891018674737010259778749101395959440061665733541455520957489849385064066807427626678834174318967397196963938888870118401545544986954347456041854912271052848149512408256629719375485321063938986931051403036827798061154157159082045785754002895274009107229625062171944628372523851491946351479524892197648776110857191243840651839852090967860309805813017057979688131012161583505368862957100476947055306668767815660048502504413976692189238941607993987734292569168571684342921903706893466172487586524826740374594292847532231965776191273449855096707138264219691080868253303858836855762693712553872592698259021608627590402524681947297962514123425244973405503404611984034755142399755354748129067165584597376038473875027989228898425066386879665135398129615714200384382587079516339671063996125891680881870055493566965278899448676017790328052525003811751647337017955228223822657827435225722879993358132486019507991276818560430814262293451906896138414801317463355384747225050966469487198101485406014590617012648664149115597574082829033575192416033759213608653891227327567925006478443826678180750694380410315295495667269039375527235657332124120604135253157734399498287080543610156299085194369090435557612968179747579254607169770481782202735368726924389276477158258248133535011729041697308270700356034019019687747960089316883113111533311352670636757796801791880090887868730014785131181940933664154094931840390725355380060593966654994707586427231095797213991766497681949892501275352504570821420438187245992841944290575756144728806180007213270495792366154959108005598219792303798252068720395718737726514351588415685718329075703401520552980263837792647989129835178687904469333762117070381263727767161434140663401931577200398032787438629355419663582518847775721663599644131075235740129548770717913965417303793338956796583752216626448779543514870729928396872150632060815149044405604171870607791313656077498569085804985561068086370808527099121306410215952844163248144781516957026990086470871219221323391224322046471663737302429382321186366625676352317316572012284230516731097796064738424998616903870474350489758823067127154955614905648260165338862495975998099183519324614365827445378336885187038032255821564305858625219103032928843379755717929419522027093010164243768686732205387021399769643271303936465393570212278018521227738785526071842083665246458907023873797825544941667080026049036400731042104320153802599246289193018496811353748973165499719307664753822092338766238602690580194932220274555035480450696748842899654043455776971430986592290555718853002189979371056603691192826805161616629124853004770584486855676814185131672528497348180603762178130757944444981528514152159694838081539863695506147931159606766365874158224003760427344767828827669953828175366697484302502350282118270665951176258293303917405770136963731542063872087732211930324025026943606367178186528360181918532866447979117722682418367498300930122676151852875891482191018053026255568328254737191849427683687347932057173475766342633003692087544627001549729362641680700790255696563804655932732113087828050944141092190484626763152115156514360549490776605964936826496301708160939350215435320122279122221226033832475095955537227348904667158373653870432048726440638340314308579467338649464130377755455810301323975816634652023927843850303849366453644814042839033537421862583042949274487856862189151122344425565136453220703955992783356270900573050719746279665958077825045807566281094265007691314433758641897718554929641160886014587781137360782476355974795995957225894880911016053078551237316239835434402745716784766096830608091369444973032867854988388142675239848232204954336596090210520934039934214238080270987608006863484217064610741683087648296548521952016901459978876428293554746105898907962684668144367256925182943465802589054196378691330885554591894250587926763931838942748382009579395959040692527548747199768394929905066657928151620521628653757045056931729994088162387161018908990538088248684091479362922993487221771191106520146800093351787374204045437471230194295588866294550449550490331161205298655299997132550137128279147508738482807655764019671502570717305166812661310653476762726790478922890863502204075975407304838809479680645406330515447824126375361980121893114263486627683593918141575903851693720980923788404285857580675838481309371914621976079158925581289865363789279430123996637107375844766276192244959422071393513531392482313234664473733791578656487034816621023030412508546545211995280301210536571926384804127988780105872537407866395188910091257592617318227178604046080642626509804172880949070650802971177800726322207308789441328826271862448664616152762702521514153931374009040388975731632148587755739462778357900306445885812752513748700945331595676385147620209715520625870396357802718153532209170550747918763016027917670915480960966435465395487801030114948227825823139130399975013671818863937035103929507769223152695682326402813143314536911158840063915961390944401371536205216544743671170902506533679253799913738585695486922508320199832783855554164799142293503873464603538035912729182392249908705997747680142767663451944845522125830799084098231900290731296055368930902982821627524440893320572175475620976930827311942137086786394719280812308644016075530476025492105100971478439862516691731035982323863692629573423177550457517543289616403323855864786760696681233693832956257974675484601407595120822654007809794778874013039900409674893868951812084963232231338366341083519908593993762538948298065147454667022356704865020516515490790715520769103472477541437298669602114898958677821381871888850665851062314652845424113768313427232219449325806558427901177303646968863308902538488746528571838503457949217260801715399129282169158018859140382394195462075087150747818826785684454847061090387997911970689151072495071925278534555977694549300488618968420573526404368361963322471186237855949150915756087217073574644105877427593047032867912751861878703392499988468305710167829068597110279752243969831883281944048752160708831373790633014660672004541544662317486870999816164511410828064457667359956151340759859166129661493431703958674790992650780951552421455802918236831470444993726927742744909036267235226462070601704565116043982729569709299588153730853070520027801984423849889873412168032614909835628213576805912596876696552750329308125083370188261148987088718451412767892355469012957344239293920790410669816271744072361958908551844638236535550318282181766929157212655306148583128030310316770627438962016183470087489568592828329437845324484176303382296628752245323777314953587219926203490203407022240925921816340589651147058647940666130837480785779700004010977651695226914724618120480133122448949032085587804558724251982129026306769073127045352023133129031897300786924441843236470742273706392898369846850261128940164646863255710873264070886540097767384795984681971915048915014592222639705968756839240784748404156092283435017068808422265988184602714546879999448383037652171998038064431738214757318145496437700966005938313338097177215293374168074081932120460951210692278316628728595809720368136294205509697439338399959087003472216675215871812067602136805947009356282396082681814725467894754203937013927601894831329710057026614438690973428297961496887849584443183425619171771495949811473673145646955997709255788883481253473240830605832903000504619837383070936779132089640992035076209267888558446619526419967189288853686448655549863115471940720351253290452688825903017643523145421594006899789373207101227008869635910287314239459525948354629831011535310488445875259177674803691140401428971995936338743573453681531950108153794010473616817508405754378348905889884383246884825920649734584433965996553236434742657431524388114744369459732669747607685304881686253970389627777505795122087711817034612032577260686324911918393268118968224661508494213835218796118911924486499055387992516727616323345672134188614449020492036662849337707288728962749468012680330807152186499647709282955263061761879000239850144398203333872925428258785543543899577296260098200880321979537082444069545440650792160158396562583267372722599260692654175204294499217162802223988726224088008515736974221274372570473953997737866969203006247495980842061933289418933526892779949659222346429074379863698059890170298500433113232772873133122130442075622396061222566290590114044449446166044900551061963268323607174199456967749677261115684054645741039513441518279209728251514195251633247458257879321021972646909073530769018952159245141457626538153999055536587509008855845381513316308062937887289677859033101221500106488242407005194309325413281940480286399505902090786304689307970214689134447154980279994073444425767308103282003260165043131387826232267534094462143723556666937337611459090553120594714407436093479008289541316847205524200672307380918391294244519844336186521564474525116244460406733899629300029425007353374363329811129719010903178376123745835846292503817045362173407132123360980953782164236302417280033392995522145930729684005797991765527167476810250685337887401366831361325723572351124620824997625940061692397331336538008332989131742489116354902146670095347093083190021008074591919126110526418060793281700578887677071878449700921017791368093751552180516875634367449506890386693929710461292006081857268232257184275801415664120580257118031422588380286948131119219696147280705435460228743457014069153887329197825488225732519576330619552596036361581445011922415964818953354484913015340752477345231799583847485648816718411869750165112203919884218192781727570751704784970229810483472914579262749387853946958326106588674822581287571045452551089675066717734386252140947234025531982639376538450182885235700735107205728215746259490596542055318449264091850833724838186617488418110448269884466196793802055174666783843632748538623969946527820304336784849191329788215244300961612230658205532030129683108421037487151987179737443623780070060549134834918077941805327588887412403573161780948537063756832103977252952582758296396045900892018787495466996338526321607456960290064104832387820490623146205820082192694458232098008407425355110831062468317668064597292643231076585190951614628792380117431395271915194034982474908195932061763797161821445246658350522254851001418725745230466977741799417843824556645155164747320847345512607757031279975478706175540290508550987967467916267704804561131413267992996179007519562414766226979199167504232692491192721881459700950608125371835976017531853750097884022042934629490894076014295401260933327467767865208458430150703966957304650011357152726539485540844641269490763740815292749746545126502123877839961592774683472545736995359075057549617376045469658155638330636252991588027584985962823648131734267014840473443676590876419777126141125142420539327262681505348702080734710508125351341114099030098802214919612088170861120411033971074614327727311977305261854907314361792266151884345316973922385093092960511628835412468077799986290861173409121500625506681858817831797222807018100461368914627359142760792375107872439497408411041260832048319253949231912725677473304420884745730401500283850434899997191083758443455211942431460246504812542404185671731482233123104336130311926815681037913896051486384821815462253127183301030808178890299420356179943703295512924338596707175177013064578107867420629163128338193035502420238836484340292478229333104962520008958047329869953621538980453121849477788499578356440573579871506036595972317608566468444049298428603940190800022675114851214586146987375172112534225484639191320647761249208869154067819484120227369314397112566977291323552922576089484618134611026010452310667013381778640165769334096586297953522321303875478760063032933331478379073501958527646738106350025816799624443659249107426180188749021258735107672480916619387722069791252455457294579177597280645646895619434371846900540202186908692687898764518146914692021815031497728254905184158615692701389766407041832361359215554748744224058503752426459170784998127457934131961738735084421492450405120907177149109911645190038547937769888947013049597297634527219066593080920774089156551706067659012968423465234364444255106859932660825300445197184489044098039682949516432615334852693035963325952673349416148982440906075081708793204763479731568759698347646956418453853218183709749531785375558016969591889748541143225139477029701666442040331495248042987899522953903485717127148158282638612178245866851911582528432190872826073286667321232606653657663246094198750061782628516285696332979067480162182628387352996913468611359980083391220883095904290606038805792124192944264153474944972936544785431409789812955135984400367801364481087893174238519448411780464262066701099605728062326141199394589536475164193002484255422394724159071857243132869839898090275662933883979228276053806900690502072018234099525266135790469277705825519106837089028854433231688882228518397232809206849808429984844368004569801530415971369545821297892164437723858895879572220255029646807889125579778710878680052220718223691496176043640024721864263236456784463781818403974667688479231559018092499217132074657704870001320996759753849306014662614394656831729218424547668570680721333849559996751017380233736484006546773515271170486837117186010008891929213560305308113847756721688722823090397765835898196076828419616079811337544656204942972654803253980360889396620418617250378007511486928789184997294263434146765187345828267700887875737664292171793313997235820143567419513977231200406123629488788004831804168861657822012124383267218839619931786026388418433878417546928828686017493290007216506236427708674243978880799389333700060334157176633253050437099326256246605539460010893187124398226833636898534689154020278752957448511618166958710007262193522466345438381713602549519818103064658545882026201894782356551600656355537371078753936567602394671008319952659166548886658567785866108814719108031634711067213166917740944718278899896299394692231487833840310200539193201496919574775714695462036534989956473492207614927231255402027133142941329835763203325756156640997817600980454540030202871448325912938417579222904947491608868603743208422716455416164021788370506651086996227185777446615833917461264724078275952256934792375034977048746515751858262399751091996860038672985080028685218059808302737952700451992367978279228777583801975047415239493740738705488539516833072439726637425399017616682764972534950200170057275535345551796452847794578496826131149728433883143361893408282620163969331856357092064997364701442879226084182278983004995263750055596043310012158958796640382044726266512211220069701670391272107286770553843447884307582197345557770064146089731918469617268214851489394469606019593109026366714615334437397795267919326341689522968022801352139466862160287433767420436650062260015318503528549892914734068585189485090201123268421605901303124342454664459786865245885150395709339766937834520766652595971965052868183355415797023946666390444880770689106412835044677357556603975123068834372821845054901899386352149356832073589767887742748653027731945798433608390531889579574824930971891308201768666283591230012144828321962295614355178017321046962350671006672622794576793909604608626401391852827203205961379139528196937872334002494533979682625594945221056183796516785892429766433641321589027986135884378701795518852293917120186571115564504095621716946915916352535994144911767477471215355397909626218207489790368962693954964092895604049464159761468477301269756037674045047196634119313128444952744184694943765607910775323993354117234874956319497899142698943420843867207656566909392659338795426638636271593786685260071756612476729531152472174497441279462302943988699947908089292593685870330117864704907134993359764348384034619455109087101930838057184016459815074457464015697955310061601407147167617982225380919435025748917969202709464453181523059825012936028286248501109864314700006990663828820564318322435859724688343593980310164727143249908250520889066405681158798116565348685665238280488805633577799734192785666421879114506676729076342692576037283598915332900894009336433547216096084609740720300393796361092953014026917323874677253215825553197839537743011628736094793876203917094557524911303175930019481099113241785670322905777182093671608681722522605643496774387557665156347389236372762451575637122676951849341739108972218030812169839886836301986886106136101378080382385899833334826706299929947740379711086102558487971504640297824278157872817539268786907688362132523773051888328581671324131308768064377986175755682804203890189143487367893855988466181249027812497629904960864732277294836136939409580323472225603735223899586800852196029307178623084681432394561371462763571540303495462583010188282022327899855824488874079921514945537049710030462118509086159323876801438163772590091052838744633949730668960014368834800750683408153310820040972481749446963016446912517515123276653892519111927587360870592007713566039269013586966035447884621041224997346532577409841974661184300444414915276171666066427667382217551876429518384962174243145901833914108932606435163306336334149740696764894048189749745372795297663656009742280949911402957199308270482860528035362740396373568962427102073362416106735089582710080552552126477828628047651986928615581772846103641894601109310364349870066673887341386883317947679530388097318876293988933523872352454334372306001789376203926667668584444433942207121093141727016369109665023280117131442034772741263095990320080598612367548215641618386240809208107692814886083686741863705540427307779698635857317298028790445130299462325402099756741298606089343015403342893243800833533599462067676351220729935168025997536587941035565063097331978023478954496161119757826804943903579949309013379787451312427013088776961601637781770789764714041307301844094577302963219964782151966490686105313188905912652814721455912004741050861810570122492995501908375720402955983644534129677002127665614948478234486160872774727806703574379924643161792944847756639723752996189168538679746126758744324204753750702565803011509330416971836311305962311366626077182434408078831992553317156326516549238562800311894064703149877429642376985402431546092120260333112538829159632870145017622365258970992771807016958759675470318344759837224611684643540664501980762102903143972337039058021021653837909156074003602541462326737581126797618653659770014279685298706530329127141074140728786242530474906602326002891730129358435021032648584524975165225589653099916185617640207377566869325871779892119631909086867132280657535433290568162020839732965919926451747294814226314401838094691140721458367779580173689235919087106567514365604275687030670713868318138339101254428301127688613939354144672696652471114627208348335313748084100743148225203084028149230345791009172294343526739115204617191743778673125826246856083543384662949124924391301559812814383288459495151705940258979580921416211667787893381596868228614977955447066390106618814334513367149321558797069238417857907887300598047258074201324458773903055324927381259863003849385378463920092318649657723788751492359702381277015514093513995600142319455869524677966628772100859179406983605194799463596093717301371775122820498342393490833837837904852977172184724521211097135325104265483408803397930006360588092635048837309531587653942632604645767323514750011439553287729195036108620696967272974675872085772380880236211946641882211648086227177812611039863584719695325748799325534842984836714428963230521397555654780524810110665584102815954332260422075027412414478212734123375368217069544269323290167917553373060487797187773302767341079905295647913402486966868678496063023626429628035459034548126624231240645456248691338376070289638728152838455933508732127065421228498130423913658340035928271454766065023913148123073295177649412544083427455195528637656473168229416628070455930698771979423147064778385392188612247611675506480587132537220822130428161241911471985683086681010366172500265797259995981797243934453225977857278726457880413380644749564934771518925464859616088939399466139960288121361852562731783960153886036982973422996959009123654870758018833960899299412196331554705965263626605301676457308553103388882067092287823287145936718498823548352839119349885404481062767820258436344414812392620836926463940362380612911894299408031621384000526825248897729849924955647577814584972033888724391652878248230413701919388545467667986618881528493597363319569287515802542046627430961015220491327999950352672331998552424237819480968417235228653466436265664696118132998648383621018781703894860626699128402364381234714568719675219336506303505736653068854755690674973144453910481081422412568663352828253727839885242127830856671637711729845426908570965068040807774858084405512374670888131790826151067973606003008557652986356333078414874324382658380457611971802698686892775164271072413804902505451597901801226457343401269725103588060294116770866150011053893027870193418852791366380323421794466716364676377319407456071134803222008761431940295769850864370072199374925553567425916897626413223641893650114788150313104154734814829206996973684236588436864867339657918525750883134819473329292770583007836484293135618261529293550974917240386148995359194485793549327404353486771339513757548396323810988933593115117853556692599769335537181272959910122279965991352303098797405796513627691526044482801447948850298338819008004625253961549238782203317609555352826497809204530158073535136203536368526159477603322073355110526147258090294324125701071050669910525205047890947210298643969019896240819947036732162749719081585853869080158876565328916792660342960614887952339181246870425142910527381667506945447423060163059689953971528399688046187286649094542608450489553540859764938385708930245978295252101210580159675136564842293713433477330734240974611736281641878129336472196188859555683440899667852917868675958607200153536381093818437525601681642266999054153028515680663450984238751808116597416921706051261436624354870015029804720844517078513397716125446403277445598260643185034664421758486470490497650726143410722853505115754369522501214891148532771391326489102273613997717152022736623212157499801665550855194854039751834079674382639865324552162236837146651353438420299817270636097385030942561930925753886668975804271975683492731040428907867964359546700549753475444269750793610493255860598714751661011397113029086264208920969015266746152150333266021133097855661137130418189911920572930894577403929794939645780446127790086925530501897015998703485225492560073108803676262330187275394647906983209790267185444367381534740901326846123729376617517440694902594170913598837579216099506866913536126058005860456906542827671431355515072451144212592601472004416901071537052234435508211380389099338326937089549308562766736655088957847486866339965109792054806585883467974436394353352347864898336580450869409386610605922999158979877851400425674755461178616047642494687474250358419477562089604683270537440816997906427106761006066770677105173012537622306839350383277190795281535040374999061661510027543055496977141005709672108839048308015404618996066400224946606762589660224126114080065713538947090548586866694047767777766488696122390302778321210499916605303334437548217522008827225439385803022021180710320202635824895653702421237752044934875796090233948720648774948456815797007486414768013172630871151749478686620716607654358654407482958732778202949319399080210160748612847681881236282250324513382254301359660224463081176062822634952274702747016656338897028780651663387959541227790236594180334370007777006601045554696385035849909322746668615464343462559788945627450453132298573955568625600256406951694302997841352850593868030364625440727936976716096013188373553695344033820951693328496120038388447103546394583562115619035241527950670169419233241994115543149909526710770790039643767095985304153547803549685584625904408482068158166703130641519725554811546549800350503280011362375579872049845321833260868685927604795671153670914590131454717297289408600628085456330950073826778397109341519001215868847277844490535821878852952755736556943932852097176343856723867733390170595333657837861014532405420113065153542873431867620606110053737177711055683664919044932313266726908854858472049619962525470696408906519905257529797921823910826243262507135725176512462427661658683238151048042154150476609086350976359456309145169907349714325922891994718701011020250475209626812121129695243994417774604145093872625207414595191205277632449753268766176559910656722537487316612115640667143344563194292835014442934031660277683049529958039899720263555454160453646964176834168916644169285311252478700446379357024949433817911858946451919167369810746795884600867124853095407448615263483376494062112949424058355364198638505681553208534309160414751682209221752399639773196344149668439388463354383279778562041450851779971900394755109302471837964814403361793612461539766982754417869391762848766020381719663378522652099576847706106365018756430508763752789429833745880899873696505069703662343154653750405821157759974243972373916106062707813416136333106705718023459045634338686975308938078499555332414492442143919305282410468324651591671497701037277526124884535638306186884860574674399259606543173683065783165652869664210415007568184357647128758906803416883964226315939826916472071389210218884784379714002684200890338230812063245528405939888748555101723572717058096950912767921817175261513428206521423956631938907705436573007734153779632227790925167669457241536627158002424318018840483290043610688547975317217127683573910099359489064840898546618984145496621533127044409495478991104868774491153449078317003412215379409892617750557381417200334956278758240387121949922682369467684159754177314287561253756299398759112809086437410598867911265763240372737570922673778194116825592108329157040729737219510497241929569133470842560707626770842440624247703729583987877591695643672780199127046044534901626656931829147152917467836583672188008485444037394552318296263163945964010257842455964537894390128674271141061859498847883906812842278310739429664757480622032050709082839019424092961333744632206466528756161897381215432709221719040768854775450379447721007591284537999065077088835075438264290127757894852192084665218038262618987641628776208061172701841441506680732643465492768804641119815505999465766316607879221020461416901510227464795860805901584315597167782407599605323690292311023726743054638098254550502395348315162348905825823888027012769080313449564021192507415193013939974821586089641172415884225053655201917564043900863691215288834424397925751712350553128666673301114668905434982046858085259404806531791717687055220365350195919936672729808658843641584078689488751171131688504257740197352846012395531240149471111708762865613704796255602456817313417547470842798376440170808789096515399831304459450760674208032448798700054362910338765986714871216045618707669796609098636905002040585326679908887789347003111176563674931935143373006319239993964633559072608793970643623416064877139627916664446023891160134689891042375882202183116380543290491309637557107205455027287364393557610956622306964525854519947207149953068117322118974878071797213558214428750816543175302234263589188263161498378028004947367733897709108577308880007503688758142943853768310841611475045937036249815624138141875697466029400006598774017170828102563109895358331139772188430810852136230149311608897457694240864938958891500459273982374822363171326014906427612258220265528463197838645224998698550316383478499949420460138309523468809966578084601253905645764284522381649342716557267369041817329472829288269833538138177492248540215810550575424463111773735713118487939865610077797868212652604130623033540549495181742753050763800504761341845576560570300937033962921326473819581424936787375936567364148959174150754903714755311162580765474370590376361866203169718906522268171946142864481437705890034034087244632284558582541630725743391829722373063232253834398213088985041880002316559528159521985036966212139756970728014596197755799108743097307621294244209358159642368102125277439945260111082131624384210108414227501186178898572357451836442543763707029797804946345883886828944021664018749370668737512571402231048909850188212994000355571523223350060546582484287955081298879707681531135713889042162951737137866700751781431654337691749884706066622824459250098873073193502641742420675252840016197393450180398827734282287640929165461592962963888841176125390234563995494513509573173930299994149744865413793212955702652987947853512604564022962384442638680839674698029328910503114727390759346122120387198680722124582533230458955060946544459692653656948707277632255352435785331942648980230407088909114729201032256271141156363471286317206233816889738584320397714998367716604387918360293751562469975366059024216608885605813960150483550016125069810070041656291348726612127382685720750138170143877115918539112392337167109888388923379558367065256911261736581082806495768238961689740623237310211378055083737528116717084515999023984806011888408647568474355127677827725036586085256343149824877351058058010824774655266371098477709384552814071427868518417732116025950482983727984641573995782803516617887699568183236333444908290480573741141756481694227537155515208737181139753597290538211038413478457961213539815763670738813289393248684568668939813606672739610312190105430547158543851413157090384251322489423671076617840529520865993173576475039386033459039954723354093845252339486276570736690162912172030812234272585149569746016225983160836563789350974833309528068090392444667442463466432719608191172648655533775142364596505613588491174397809238973108491209355715818460058183588648295086589190796573370625966165666784298034865316637758945748102700034476830706296462582157810915384220855423964033138823576564229161362543530092019879693857750726737536728691454560985383529256048704586102383104498085215328380682546759593219594351786076347691183468223160869319290885025085948573271634333281156922001548759243096514906084935642791633895759911925347338541445400338838908246177362279823352120266805172006215686677094179457873892961208888642205365941551763101762496133392920514720511271028467342021848311763714994166407059046558263858647586675346567180916529350641272740839151552603442878587215019925415410335162368381679952498228975821334353516125469021490675248018194437763611288052034499457138107568116609132548256043382937215498814331137152060959595657896053758452075219279601140904085018208014690514851081192598268121393163367619896414181398814077086920093656267036488812830214445688020952310209537181280214101904857770504111575993359644936960690951886189933226736277684835654003946081958976760541214019873164158327327267939741131672637230609748703207325009874567120606019825408450303170300854595144925671711042528536847168709545383870042870225845152383311563129936360833651221030304093877685126658638900058374553946767003124416465712632106253940678487524575964776566653389245711701088378026213511884426120103212512709828504029553153507350625200672402720229335666862929251064118417454747330118693012842028388881222460622100636326399643096275296578380255506033739119902540644407818317925599828909306201326702487809507961144565797201193435885080567857557409351686260739435828669444805813568843487735592162145247402866486044204206818569869992577185203110652167452966836819254229718366697955115602010579394632394429328505254622696424776705822541653958353286167579837749651972419852357621286566608185576466063522134329909430937616244595997512371518823194822579229596711976954878174289880026668172387260160636810152978230195581565097651316903823578933204325051825879603170801983506115083287486259343706554188556903770034097616533953519711311910626950290311571129965095826979497302090122627041298147126100831381310942641426862001800140388684151958600711665165581184240988037619071679545198646108543131204120399553911864268072556324473337025645573438880527161961283949881034404354300951542620825922307348013648158544346167684217921530518638408030070451851495574696745461527442549896240545838127843658500611896254520447372175758250443649918850445277717312273049388868963175276751503710561776788495391346281621280688199571769205530318004231881458467437602532259354627973052812601434571027287383686648346167578899106147662962074926760920574028527489767275108529163830346800152349974368433373717954426571464768751306149809826131774196799835838053845079253742708873641457442126944649959544283323383119669951401136412291188755477779744248695523708475635980734130049523954247706008942515569614243856322689311638467941972520065755281258238959208156479902154341108751428623024018230033543013380704504964403554776506579434013313532003502216085990230151539044325957995726323682077227617758953814053156694038106307257502539626119674187534669881338503738844209046565222995054789629163742887440649891026494637631345968358535099159322708938620615042104280013128284051924800256574856822496901857659974110495947602182219773638344461094907208134916686715714569272669974584998057927933927975444623901991183572701754111303389015439572039156578681389429724856301632641942679279709511233335188668558080257711881552887113178756114515468708840745058369410346282006682626497609879156174745512340656599699984088905444156711291075569002331308999737519039667092959392343981581349748651868824217497663909740606206968654928898741510094004588634591932978666981527239090322537291595758661550762935432587137395959650449610356877336756129641030829193413620692579207277189474800433004082931464242451139028860556171794498662339789168029127216701940303313639814030700707723482977233843973570148760852196961631849037005921642055143251617379369907213343944607120618821459931436265948414610682385396710564262962491657278328464101884623773357093727867763059921624590212413963432539614559303959282061311797319102787914364456427031892454074190447899295395142448408023712786547351255594664662005413651769988779035531762843828337176215682300508487200096883610499779115764458847751061741299821498978139782749929828914021163951903589242583195083252978744811081273056793670846493594688786709092193833120036371913675749516609997689067312108059819398461222871091893849548308195099928591743392260724600132821934691483603932114207899957454145437091545461097905094944684412629821851235723721342909144255690416378584881693372783474132988449365282252335140457438618565078334282004625241162816326738551178312574091256809321826481593336612977559478379836100060659533832342869990738096208020332774336824166817849200134263047550596335430643570443933663354252613644354757936765818455972394221982311213424735380799784379050738271146697747050602279526941960261301941997561326584126381504706880339033411513857715885855706237566614083937600244847441731367049023369577135381064130466419545509446701129072913998998080754460228165298324409573508231082936324978845269193228657245835796218369570048712540370841505473014748317277174085673373010257154660994208051137014135914839405101514926842682390867986702754823471367315809535086266231760000211672921472731211976194399430923648988383804877374317834743235780105945843319400448868248242870430923658578189682976522292438427731321409994776047504852187513907340392679225845065851133265018451848029869040302604678780388604698416355826501466452466464145584527325593815219930735713332386771746413743681262976385376651535286009878107928076241235773092392104934457540959139806934959907869000747953712077293924282529560742433802562604559417025283727109462999416711536039689700065702722780715676074796626075523589569947816293591294191092195484597388420804421093427413806583218622884623561619874411517054134786304007656566922640810126172289022875534829184732670603375736322849006715603908587560052555666455019314471179873314509707647223406447602361243132227901368032009636863841648631698801630045196218790793131465221133156431740860698572956566734020706482018664551829842766690740591304823703053522599788166777020391774388906985886848241801194732466030471615754213650541385051343908062449027212595145606289253946778396319925800862944264850661405880478601340994569298831204106923017241841638425632887350689509045142094078459589466336822995543407399936544892586847854361421987974154141987506558864846407941815533526089675992333566568381194412063735390890416672663016351684144865408224656600582042504964741190968728306761284037944458319641198416674519180905039404490763331787628578566738620894513183829068597194380926669270611495992341667318281364007836586109544597869076187095238641757086772646730832166150313774752772906699948143593555992901616227850011514837126191828116088444139810054532097799515946632393224312161419842749558324533105387059119156965839019676342874156730932185711135281333003049371832173416206435875930829887841730319526060933091110689711296578353999857082484099345971810376886280269788008635658913953202926993877256656744418806742941112158990349666444538179519278053473234850296718735643170363733808350524973450247854069814094906756416955015127919104473340011143500827836019736714764517362257210570047262638085590650810613103622125287249977900734383184438805783439692980882023777473456075567049381643482274463294989168353863595763929121000509158259113229083993295129808968219996904764817455885075637896494259309277632061759674503425027580086372688389073699541591576116086057044661828383465878752042930489963139205291639678059996994241123721630777519568150771776629631983300552241379694570315311618068947661234319342685823532599863417897134027068365097372588971128427006551606176053990207136776278920583178494157052018283604091633378893690085087744421254046997435948752148871325975407403138648771399393893271138586805687820331312872512732365612408647712287868034101700607339620787241052971977985224469169145826146149328541784275630700436219701038061376702805721602474890398394073609265457973205178557525061191652774433514218548112093267550675198454403157408482104196738173244422559635784125909082398010351397227577733484348932336576455637249465339416230515852017484618612374773676196004338902747328171191598894920367193005060743908544184660714946983185286843116691183034563041994608878468951868275693773696718930716328956178497512864642612479963634018725310673139105617586493902438187990567340420234789498777769106194878662845205244562604423285781914643030481974363623927318020337130003540667444919741034744854024573032710358203955132989629801651394501981509137455693999588576783588569374669603815632495194136341220678997319991729257658520025736185397069878419671148657738602525912464745397595701626735697118418412759589763809086429729444869898408703565304556231261100751084802109582920948085663869305799009339515656197165131835619102300076743710121299004823404739213182566166267403308926749006704660718277977507244086354835591539159195437869621249694673213064755227607516208526047495228425741610375863775225990474979803037434161558467049219853812973848849482750014496116550523987128830495068793988685429734826483854130480289116892794174046909751792325998061889420859331523198893893274683319329688641263528698695453123578752955340484810279621843725005635299053138291502035672436565336710816901760397985937182257768591430742981049738620461554279828043868589314762583698265305444082955063314611477888806787019663328747478449562357247610065000521017484643669667110230107961273021022582412381944246442166449424810856730632332902306397343405365349728568614111379203841762418319821193323362600017893287794756550555857915114780309339110795169818427331285564724749512346412447719944147463258615533769572898453514044400869890841075511925703828875437802146800851112499095888509709727324189009341910121061568382448098989257593661671105747134381124454378046437908175831067557559675129434173890174396604542199233575938744353644056459142173463300629412371025719094134807421871093906919618343611688699006222979684547397942794101489328749929201690183382006951104180951245717052728917337818070328028926798339754328318451515413033457577133190955631898688905639704919624289842791103675601724682128331775082157410876696791897594009812343413752678274231693478301133887234844136648052053359802455928062076155771729692503921729797157613365284721730897680460578049101928177052754446725227047062811126593826790078573081696436715834911561702469325328147220065983287082756315773031156600497767265272348716446359703771877347780911733380487201279330455700468689242734911800087149328516947831387088150654023621935091060457822412161608797682947265892598284404548882531313401527411812407755244236579742217250013818900774430753728716327398579069432994366692825942765766742731221690063764536474701219346687195782968361307222382373323958009087183897354904727800820217244758599151735051785832706904543557347115219653881902706431999824406527692968746057807835587202361346240447689891727338651031608021378608648085288480085840018785204243659306128717825984604245614489230604110118623272355016389836784051566622941942630020173035523049203846199111841668395375413339727410962225936490362447322596014969868184887119209529713368862178282205648327887745211068911084517216894751417675721802516551388223124928394274493074753250650981152182254935750925267779780806358768731643573074483006456220664984114512389406409511605001966514279409975563644814836880583171232923343090229127256908351576261422868856731226736075040989611126982624601132519026423633913836770323934414863507566717340009971834663061496990937092313181594776634852202870612694949861345840298298132490099558016212308641710650141483237683323638466016579151693939213529754802722758696857500131874524464030184963061503504589849813476365324850098762885825358759011757237355724195211777506167004500784038948169044279035334032277325116434770413179414240538483021124732099270399981175625986058018193540076304416211544710333454451287182646583821831511764507162248164241411080269027071950115528477502609170258966606501866577713652067312992942059903097285694531387601887882937198339204777223486706975850334212882121412913144256692499662915293067863040884180547015936310192177234640179100569827458402788653087357670410112546100294687646240144211945834631178890155402635688171220590169033314703081501011267463183055168392249689752968487421498483661359181663606317088871938901548630356866541323202492055394161106839856905411601048901858462633612576223654697117112685759548403855091411467383616068353360231376590887836990434859822097572692395812793295699385022574306732188808386786664509310456409204334718053133337551557015527444937600918511479964032111979269756674982854838040889538388418913037429571732337141053542691891347974842722358171817361080491783475382023216573576722734856300166590178354929659649161915434492606631844775891907899159163800762163754168694423430121391422692427303174828576559223337420400609646291429955217970823045790511542007323416064322058854871132387265777424701587386838791314656476251772566709524775655491935009982885266558354948747290008846754370837491498096597681884241010355987026092340408628937060766965827198621011872215877349703212436894965400617021005939887039648783683089024525775945554880586949897128215152916366438536593312794509946508686374565176838699528658615980778352133970047862561539510366045719236538166976749780134952655157061446222895439148598886170078291262463417207424313705609932381595670689657684237226311728157487201875752265924862992628379631730304471511696862033511789521992806316428319819257493443726717937248261303938597957290840499584977234302318677322276686746764290816540090277588990165806926341960873558093135267953890383906773695948887949690494791035471493313376396798685170332954474125778063962216258637590475224294239560385738448304047608303724002165278510575619212137693152697416447412293407547455480966067667360322202859911549302807373008865496136036867842411282631592304676636438176810677233059668016374453754809154712690291661645601929985090908637353977668603067543747781192619398497900138947264377879626603971917775909058998651497019055977378360610748424256987472904226167899958232746844046949371727332254411425397530279217476773440725474457649387420687414869770635228177598936466164755138365515669786893828076368667915843771044273848000637433645650411380497937426746437135460055880699591671380544675097324278751133961497841243308529679597776904866647352047926743033495716267880467075730317563814880165524123269412366547158917433522133145478728026310126216433288668885725039708351513131513451258796552801693161528420845907259074794030358326716955920718299955271399938678949918551820860106100755765115242941435141006811965897931091345329300166638702867263952576234742804441930888472414982337096436983296655408681793399929006457549005331415193115488913975682363731411950213023919595300100566812596894091316554779688931545956920197792651914637481614353431070645663275746799471002303194535722006828780927946641301688379388516222395104590779039659558671513414709236117880512587655110517494274821293714600171742108988588302537734893112522118537999476375435436866327393526870743090540187453136955301110084210942107665547418038370569980151822292486976798046946032378244578982341655673785101024394405362235431963809353681541145124831974326566412304187488299441635279961312302835768755343682009156054722011634968728896902100740731710083386739542133438630372730350705467269451731109299952398949621995331271548350377018450849174844148402544426380786123522304011676611434077820762942932961181669307267339575616099154622617499103146746076669663753780098434092201332101504682137644147272409846318205129004675466050761365405107562830091448517326433966727203013029318857816731982560061809317484961196643063128395678339546077762621294679639883933583587361678069686538951453550515321458407155928864066151166393579228724171003568149206395054149973534801340957646904165931548890087386950208214243743945879705721237627486049211833940811950383394385232915206994680921777450729318290189707216892377470205871451673762814997836878509569873128190444039909376223792400360054200216316287924625049707822282890569212739899370083927959848100242167972540866453556627173220921715988499972153028041574575423557186117988383664442950394215452163021607615647559312713211549453141215891608837616187867435806668113225711690143049558107872559383231388337012607076942833816041196856654322395755829595369149903718546164980800030816519881091452373900615966660536426917703574407600394646178389473386697033325868474971474075336803276121726915064825338693247333898948824712173440261531715071553013987159759552880608416261501738309394176631485307625519294679792783498288519704449821502285260511050102530594723072820559355838816406980709473117537084549787547178565502074004074130253959669989493402115900237877891303039017796624703138833423384548865556039454895330819522708065179951256381474391670903965493688547894597021379535306942317742138666838900011900974826845845215774025691539928778236930311180257410586315956332320963519925906646258245792163524371281438549257371639050276500706147939532073654079585735838575638637503310620783113608353737675340596403213873296052230022076815893090158502527534950807011397087721271271523385684596616900615700977388430917632675221615960390016152868411217177877871741993707612337787253219449697232181749283470493947252153180146184351256965144824588564328384300929999666617573960174470899277227831912812423022880751096283468581133678418453577177675667845930426531209825428112440732016625831925730984984604695703702761923684626692612602654062381237376078335060393486018619110434633497041038737533978386354522339348818450972112883511217625078429712648632769196193222298646453851117921224125361270562317203662573059527558570118565046815304885455545931110929954027133443493451604828891248956384349809456546728525522759025945400570615465782806408408995802156107041920542292947869440447206155051372190397606150741135615832988993293758636655920684750151502772430851327337916824546083316351301199963857146294060921449818696057361463101617920211583077584220255413457369592315252769376383845125785662385963645315489810832058708991233167892864833794336457093248913662514314196134167847642462918361914711052331380815405488373251786024731666177915638365607457162184516919420160675153586818799589441153896036234268115483293358359637400794745942710296045522423192914162353651388944849824154167606843605833208800970532946737793723520089863950922149251373228928956430927026820746110484779096086365546271312916171939938233581111127310190788423712794098518861490779209741681436136147894402473750388589231082750245358000856900273508814650264947031514859866229261985194561343052008241734457633498613125160512461850591842947017837883972504953498979522053959102950701925428481824131450707978394372699639477168293907079378142286944421613206619087703758465247761329225242054143381423576533623333934989369237805794017832409037199536804668173110563918899523025955812031451240813334946680372038688292197989072837433043995945077783082249517017825054570549900766146484737885473845276549790499872308554129464281582152174934871719669301091234464953171841009946006164973083306218136443774757875204925979364841606379718502724146259175767768593909431584591737767984025997074200674834845984247803959540467861923844557879360648782511002128794132145930086154894828316869691494735593406134966338161149201120175328102887177974447244012133512509521815722038051523744817902753333519726861652278425399057892043357033272884903923523182289052037796260842251480646321450957687119468455899705838959772103937562857744122878378688557605173936103527807070913334126218802231353463401909504186765368073765158906743863051158135599308748799741598440127500488488464693689636279126379906490247677189040381343976544693716224150201572311359608819012876612275855544683960050637785628250181956905931965239311925840844436944562086665302824831010401407890392434418736909370956931349231104770745726560922070813634828034629813191501008252093918457753239585885563670617771023371921168805039877039481682171545250265870463352291975860825863374286732962698750140424913119210596119858543329185022236362625137200187223774632503851960121019499791079051654100489929029073653363599584198789232896473834835038567162632767840547112474991852693074653627363745850746102895710146595508505745150201426041410856628308519292311882097940530667250807998046858707212226468763822632039700514974077883038793390931197149058630506961871914146708470844744130697160620136638132665423467807049129966996104949508366823688691852304106043871776417195639312479626910386248520559204089875638997437476942795003947627493114020381799037540888510594295255579772506388642964816849925682804302906001324410320144249606016175293443401172276171226060232556676336121310881317701616933343002081421872800713273422930565028968689536886306913633934456360879463840368315416985873698624263788977305044644104596447251047452022283609020105941279288163362213157713205830969896591845045371363581554788156168881951577268808637180134921993539520878603119071880417949074454049430150184450339628519119298358176880423318638206369044912338335485603050128495977481265409786610935970343580840184217685667447347871841001024665401250530791592592262423290069909328094416601917215236963708936178141736047205624940444313152856502554909287494163368245975361953881493553375229365182872883883676928079976703213328034424861567076551912153718267970243639637842831212895956996617417172396250999924071676404848267484619288103216935250339638284707418699437340000732913254492318378747925941311941309816262051942537094919322454304176905933577104109511936654461347000581853622143763337315503562824928313005647450587320744408317063195239997182633631967285169480611566669292527986551254058666484693064265552105181260925635397392873389597359841939302424477404541573755675931599376468795063774537736484684107165092182674799428986554914278442760496982555009167657643164200365297089616020826014143475440780719876396859739847624131841588776053992287633008674032735738997566381879516967794490465195816279039475031384094179072399203515057035032718826817021606450703439870830845144085526399165866666313647885441973136399742401102531361454662094648014152622355016947046229972434618935451381071969727756204627779924709590515093054737764517092206122821239242148329619650578406185358960067499092089127083958430712285182687846452111019523827641482260344223779370141977571928970658924991400187865211527349899099894646547639995323905055798301268363188703170245395121956932416946671586609775241021591283913783502454586480198579350362885190999772116237460525992235110127211905832859578722034710735168450776674390077722940599158098118769875134026452326521570138616425151068004842979413637416464934333728691953436194857881815593773908038967547220573661511984458525055746988767983863332331640548814292709463218849990209747523700773039181194562324699116476597898395704384887678741242850331829622971458021186843877893377320423769815944263641203695427552894688457835600597779697928486879553087792927524527516674763230002418888346348501649350333781026174976351966602041230539940921746865849145435181857110561970069266911250978746275309108147442215611643182110188606236658738128330524799034463905415304584541305914875944495074818300902738413312756590291198341164262137952234695247465090408087893630959147853520408874009612402670366718035994165894469935669938702113807463227428160960193227675354324327870104483102766105381808170417141618055227202367943359071179339437567964047085842176268697375082390499790198349404636937326454059738742182276805540254507514135908806462335558196597683171006536790588660509841019479389539724510372548494739839145729485393845874406667936722406708238295317588428759769289802255991019551463453705375843257190092718291760767863209075219482589901929560856640899352894097446893490024651658175951886168581521610736601472181551993340981804596926154467973103212857877412435678756579035270192435176424711164881249084554796086801057230223632685648700805656838203650303876923415516725731230468443774420246914619468421626804280454385104907275420002690264951960080809915269007371325841612436369743622437533867596267565366228114242242803851782348646275185225075521553291201807499564379508724918231333915903165141946030005498469122910089912649008434591232664960992318515215728085375789030825364549100410132615417550731863474020821498444218733756223510684980963981690229313914281953001319216286150257419207363426682171794035111964747910449055047327036810299844559323819049598714400048370169242134583665615158730684308034801755107082216855581572822513017713284580450178990418679474822574027624673620814128739254292883975018348379001983259975784454736230782303251039418196789976041217756364607051687553187714138498671817074834215175433547900333109025835916684702167836227255593828144547942330949678846601751646574240428897098255896270150681639413173237618803234176057509002621114232253868844428010843755320099989940457612217562540002499609021189744924238384229815472789664064465719504113745294881612942710679614804646630938186890221964864184918699429968340091441242401210773685340829770386553929671170204285451505007386703161672118129188448396131533205864694850140999417011142158433835512300372899772504612506871714822622553809398966306845542428784259158956538807874746455883613397820328496006611942589410624447526631864842813484341398122389999981018001955572418734416211099554541395855645568505973382050966816949924423683108382183806574035052884816809417895238105702455707268893778626235694047767177801707949235417357136235329484190103457680380350561822156109711602426187013683706600532394621404140300050859944321644385004249815525864966426769079984658239614311636249020729452184406328019707695175475336507784638688484322852339182248635159236161330901897403553057697284562497743755664369959972628951363294691154002921829008185493723688598554099675708294939609991463801960149497884473950105804999563470287189453884295199997799277047909692187959174262199848236904028915341495514109434571647024389676154867202947248743635471261068152311764598569576694953128988407711034952657629971510417713619131330428314461133880417736152994195107742705067272398052254847133901047679556641810873228639327230212983906897290789132153591701458814588394954718541432260787064898114678914614171950698239257984596929368625845598965099929651325280288733735471714934361861995302776992353951606201232157067324469248110296128960352078143606654863457498196050942839542349700273996080279181978076535477566382035944956679660231301541725486420199693647335581738418415898388189390896675511992776844669454580390626135560504545987093857483954634609485539245852845651291690962646356767885794098107441549491387238295971655420601900362252223525606437161824119518794057390930696922172223505702652440214889061131952892347944006195933303645313633589087307548164730964228253334224194191347934286037045956876810103596494025186448523183994679929851784198332329696793573694079644210894415806986029783124801470156165659753453880576648183723577502254634667442523049455864899810365535635138810835085797277223334045248672221643123330934644367331582054463322106901785889798133992160141918858502632063240814161321500409095453429109481167646534034780249973134340347929361317268920850369369983755408278321300844489756830800757030522050957691755838313237862534925989765462989714352765116135866526768110734574724018611910625357337827859520441829612609372867823402955870117193404025094610430883241759777251784176668478034609220698927409215709896551850692011640631731810640489168288818934673881449239539454318154895452550423591493125868684521907985506994144142744637224225048859915390058463778318501511438333096198338810790115655275597733848888094456543992018983231666959935662947185691318707702209402286839196565359509163571020372763685262093790416190575754164106060629486207557453366872367476164133894659031647261336299473967717842481969868464168607274682659772609117911945349531989827898506339453998291289212591421016125526459013358387168467563336617093021076876312429581659464834431521182858136308645942091269764070558215083281463776806211579343768775991623427874124819959421722837398404454469717891817906177584972446655299878399628637492936306430005265463511506564601671290754493738199151361016295532824828645021041552455313276606517210356771950950800463251853403289627978246793785759382293875573285984272540045545041874160928842372648097708444489810423267435153195346888359456854285089182038346053904211624491289363473208149729512278928058723210351672485749026776642485704120708454702004260983474702730412291021266127708637819761920761175790472255702014276205521486490185658400758223967565522864315992415677327741105496131491355816240553828538779474430087798741893733049185705892464013975278045425571435929559328169726214120822362377152751429541611226285014552223272576037487997419469480227177975855518384864009638217742308142981296439230216731747682511478048394018830576024614276749832937061748644839196823442779354430029150773632466373669056719659358619717158048616830439824660198251486522440330979630188502436483968008419779474133182205949445029749522806238877674809566831068225217060290386768427842633972364059797546502268421152714929108090932176393370158225091627242281515960417428121948223404201025030354616092414142329860122355879903289653206721653256547261166719415632556865371199016002686907993393832518254814523102834736787655655501109743213579031893804032334661367093114646304505764303782396205098210070864427562922454141600768232402091695169630569331290628816167181079997179603196032095031448398347261109047941661117028289128465719507570542855707519598049101173966068081878057710046040506893437869970288521636087590913024236087901462043240258038313697963224815703561729907303893146114311165300487434511087975868410736212163920496563346501492909615837232175945478878420167682542682248449503943121638983091751125981050036748430082831536650363293380399636846267095658025167655846354291804706702074045887666847416090977817584014177903681861921111692024856727444915543908644872306010392934545256518614869100868610820224665081466299697769372864444781462336111816920749867465954577562889851655091921558453957222885164620774392097241746086621698214677228375135650835865222279421489062154071487014454657668790159138452568275673381929361157492353762236868615252113600458857427480230308959491074395783318635105846156240471801923844646655795801052303020748028511114242369880020614914742135165212256427666431203405004082603285699181871315578140436415163820833337679799448664736077703676802282163734041230840782792553134202222795905351536507295106951288908322640014048677537418175625554346533570019277778442630444473249424078557393470269860033440222971517788805402299738126788862259516189060932761835595972472329024195394883252641617038173858961712673338089027581263699340941771727881653627472741472737097107953561081056027948304721402801785673185748015328478105233448522268405564110121008207891758006522269116358185126037055935930152552601203580834988647421985874428453297679379119227216976872815259486912247574841956092531825831028752703558256062463850502799956053562961855312214236456342143736666273083719287032916108233991193737832080807587349532738237060919917555680212215519400489161163897143839830661663885557857162094485114346949590232855337184812198125941345503855938175783114576542448930337221674047792858701560104239962731090605906145605246565782370993081418763308886388984238644663168468438035183871709145911143547366683098941265013200994301242353525671976214650968669217094249033976872627457863037618978182503105402880044333316565102759667378941238778872884695269575080545452387178781117942091201535964557816486829013536657014806361249062029833040677862782496197956043240455006655389171361511256513292482831696981662717387294127704820113272659928793857854459499657147666404646868183083872103164543246288052254841213888011712399770049378917868156606834354858674048612583267216399127659418043870470819408553794791024458596351632097175300947519406448813138842596878498143066725781235173869957435433820729449363314895439435239660148668618720823071482555733242726571404876310718022845362169072783275265218650687874819001657485779878940607311538121947510072067622399766961558330375863640674820945614440019177624665675170144386978707674132122328323892770722155422646180979336449410194902092919312312811826484775008384269695750864702778711387728027170085012683656959656584130754907460694536412873187027516223280078327980774230620248814862732566130490454191735292824304221836412548811024127773452512463045391249314360070759026059947484043343174454107785248509580721333256009583847893506638020580002169238290679196822149741519466713705099701315661615031774655442700598639046196440259558131670380215784205553428052956682200398546663531843592396346860686737244440447181705118885157545413371529251464489108232813427994858910069157561875313246072540629151073451623160433300403983881283929541716044641422094017544664065176721171137306040820926029758624467866528382949544968400785646533279851242243359149368506348075392957767748296685435205938412484127258730705358044962866236476163927736593810950840817228074512118434027333555954613468719935842628738871736284704926535896401404351886077801971098694528235422978238563170660147544270719748573797005005505584070020159185409750733728946522344639715619745811308203388624448856246287019271146643702972076635025417407438365559204578889719013123717050526709479001586553643500093483600918308970125237262710286452797345643253421838946206262210030916485431554400230918392149742855740301758090682172266589505573554108559690176944253194014410656705575005173737892604342333902206899618354504191625336228935245334352388502261522226282290444469813248153435649134887539977547524735454686009722746850908013059773508076794358832365723287287138531725682730409844736172035082678778028990626230333491382465066069045168916177081790927433665055207151997533399317479507345373963960871777151968378338786155205290244619950044401743911452615299941203152681246847520381637147834316834229002531391097015722738163965662906081441416206324261497698221537867458155545959971996116449452462325515441281992534505002811997784770980504511869562539519580761866540661120909873897999438346078508628717113069461324336043970542055933131683298719544385450101129597332781018534980342891554744412885252708421784642985784900009884138685498397947156998128691900107862735862139727193963359997300368914467175457060520793258098202770077627089582222612979012107729068052256229694432152194581753897417887519146105633010417718815544705920595351683307946239529717469271065586362694458430562972888112144817596515408272451862466502579257138971296389860827467191433932262475393493495932586172316748737022388451162777078116727795315866862567200968148639101775717018993761281195297749007192156488752663875301349427539611698197204714529757953283318110274796569066769586387510447687823919330594202654124558666312407974268482585750601959984804025967198532217138926982406935116425874310637710709118843499850888061324764556355057129111907056836790742490649884787182946033159834504620781229042507493135478990605545586053954890766614164258670099425529327567147839097775744991099686254570168214657104720138159536227101887655045334845063523392608990793979511133181786908445637052142907685189912416784685756161181464479553512059814203388231552390051195723717140800229463080220675552820123056024660894067640515579885277150678504950327221582933950858676563122746462852211765095414565540615977663164232384323971807452277797963843248789494778706023464249548359376237660321460151855954297938167247093170838362331699155214866173414873305133038508998584508590684090622965161499525512447742607502583792999544704298117177638770973405056041042056317957725682629825359537359924976218562024946584142673318218663439269036111272794881198763265440709944616535513955487333695397318977737803804524075194948448274346214723249542188609165575561841815994381524158688082602203793387097272235840013936538121766494552970616431628124330211146793529378174791630738006751453495510857263847304560157007925026855676272532940420190887111801051675750881012472915705885652483370206967424912546788896483383755675810927187649102126002638161892331259817599349319541368379929245826590781302344927728737726745733494070390977543449952243010903808197284800806690362803732414212850382045137196061485905912722439407132490503992985740713986302121199198761752730617902482534557710124926596866818358734941687965661734962211932464501179930867533811409609510325393777065579104752010002520967261933968450730675715709609716761964300438163350322692688096873486809276392823816520122151774930540998542881500465398007724768965163609271370826752328214686566929181540349531621086681330725750429280751662669015713694445480085325416848426818346239296921384061929860029621582850842305863082841088053118462403973322449183566896522860994682586895766724273602915877997153167717882817551439372953556728499455379519973463610913832784094665747784546587186872261853098653965161448839503951791673970907139561274324255852834648517412343753674203112750569986143575470145185685763572239995690104521662349501900204442613375633227425199845070746023035098763643847093520276621663640778801653503062125990370626580601084077181398531837535559859253797726732512000698119593026443721834923046118270331150252071221274568850871710340994403617775118762809371492324538145793504388744762235351672839831238449353916084727379235237569153380213688061684668377601986756164399235061411075849615205867206268397598697710712778818229310724194555771557972599037708852334791937477866180387827001069840996237620125170829142095847618449949644569546855114466731902279184438026552230005482396465696791715521204213673708368179691616094337174376577305164046264389174315045712502682781327177308239907550561098407493826629260598027088670298758403815380763344213248473111701745697880217197165482674381176042011999468182175526828963699136146172578305434412013129347295958916716949984896403279394891071792958209548338618285141712377541174899680771609669686004867618414566687565626701396009556000120927750997165346366205024284106406496043113965503476325136493935797133102923189868764783419394319930457508010155996433099348798338104628848917901030391810887807305481556301944383618394574577419234996169521762240219196206086839902861312845376320001308804124455109041653921726963685622342077589028193705587946002309274219914661390532710745721795138358792142481400913713445499133579173729368457834375544322557285010104067722848964142428528743711545350308197252963837158285070338131064000130983516851841125714422954162434440958750375636845309671663442098580257813436017441686030127379049202434135188818705538410454973231656901489779119731865602079336987046435128417699357627013007876306012680536231579231127044391299236924509726417547692231602003722587671548282129202601715268096810309836744896319173930902323113347005698140804616884661119771899268032148695651761859896862904704480767763833373373338386523470127026699431561051043138872415057170363623174583187369844054604662840673006404633005749724029881024796886937326557600931718971053871808442898274489483428509569054076336620928766456819361750160044488811328556764093739875640668998652353298484951621334539305762456905100359021933993799514416791066623923814840594112409356714480196474074204671153688813047988696711160939937827801072862733102708234535021268590127132947794807163714552298675369034315293043517669214666290226566469712574236718563859280924688922762459499459968769028452912052780367569444515710501130848600784065939663412431856577137723179044022577542600416464876433095604254680226315692422486812643891768457681461746824101931704232986261286635345902354279198292808317963827731446860942587081522481168392493188553609189199886696287867916179501075526665427188366753776743042720681953687305030707302041001679822117211870243957801429781391417819542209989389115010833882465150651365185630830642921519807570959393238240011384470231285755796599033356798681621744886356138349094615696906421958768304862967577968905402053791150676666358757466639747388593003913747152864830813445107491778075520228596453328762448540186877413932036674517769896708550799829647640283027903605852465468077951792225431030415032740336765918923734315025805080537836734459293332713101139182824702908547656405775998872326211960833448976321035219703556879724245352841567059150394951750494723906701301558160586724748891974911445911794366583710505939180977616601318230669088461064562207601426225706274383400901624008155970564701956937069085006304668732828038234099003414889379736879062996979836976253825316900256948851844422067174416723617063548811328064967131819664603116334989292655359258687400536909453982696023868117708041035155201166219376602368777434297030871014116923797946077146248235736933157801005624940379087362508609868575420464324511297878177075381711907011329880463045314976658627249804264263009353375066044759922276222422238327299081593027509679975131357823500280658332586646541152851875706738483951869174984690674132026578434459634410014558110588850365613180165310042594369014966665470508986840969740451942748167678335550626794760553200128540908917833209072032346696950371399428221024661793884359631503350035492875530499908327968116783118071722917641812048803598578004443963480606712332210077969550816767211320556528703768803707566702847963281649836369464208230696023668082932421993862644201771364201877547116171050270480773326740174368300622919222857787730167991041834686391536387972920505039550504975059532900957976858198107992006432398090922838054765690816829051340277582804429400774834969438962722214162779402056560072403609060849400292590420143567847439656889111458368605009922887508734664741244792624271688391170169880657415343895930068400525299698085527251462015914522717346230814368648278210924274384820911986454845723655079604488526766527366936620108290335299597613431007170431793961754862511037288776827593790479966386723191463708507403917366587251275894873654984218994440176211896212254648725962978443454813687429864609953800807679374599132640408374458077787155165817513809956374661120834054481741970107027763729162186101553477328479827838433219024679424266672640626258746483115673631792305545657623734366832076165153587664911065920754546017294468308143233649128447230105953859423044350569437267348221603031103177213432938244668087863950465983349363342689804395982183616122414996527516877234873183202119883433895585862061392494192774763640166014629561403592408524074985151317510618748963273699597699585614478423776225502465085653799723773387841458813756468868109423364191489346559582060977439230139739441243059539955322954209904826592439010927132679508300511653078280794892232060888229949828363985717729683339583567752710804893861144863616968638109767078317459232191171160887812414569919994587125847536539843335199846932619490468286554659798959072677178187485996097731242713794996703775257050134553159810621960805963058648790614248487094518708065532293714316897822425009863131793177208242787792272750309848742569446627649360103604869775214809158698838523784895785939711167346090474518662855430707274487591089803609453064451213012347475569594433197494402984156098107247213552022263130769228313498450303196091737076231251682052126602973463202816847924768096031299627803671763037181157003588281907961920988244387409192913747413309437992733988525011875410030400468550105717563661068453817189655390563629702354932035459641786978321598025297910393324812432012731790095472354262871889797190710643602320130614888250871540418514478194594040823786159217077776148474479281410819642332097222729464587640860175628084513809328362135462283413528790208123051842433927725520642714127360579792946468050775629525661074282374899815057516630863865670273346492608410700720027837134615914809965162418867545533602656719928608119112037298487098674708057747464747484476965775598037785570389566486480418555436254110651460312874060242731848921296987460048853571006168128630007605105914114306369900501617947461326611515733471503011605656107209011663960306053870892242533880611898236184363809598527775200264124819254693593304250569413717920169882957281073552787994540362871853412376305509261447393334776499739968218075420378149436941030462779235125303594080581732305998075003937587348457679689660045859328764652818064193598788386087843153277963829048875118618811149983816040158166913850127548318146717762480630965400515907674689924904593208346090431923135361416446414262501289568689762426565076003940126927513154451705692090258612454219007516342335421731632410551792464930160136207742372859350781035859700476128011211826836694084111883600859853005695792273183706564754560136691150185010621681650192664212972162387927029084244348322695279485078457635035145478502402907852450905043834677966055743993707757289625866552507841891453185495408526692961894216046174735884333502346586722269898115689702145365397731663603878126741404318237442733982629845945282175411700989016976715275018860810589700135158357767558812997385240933380325606192624737711367270436799094279261407121851332328097695421380915348412460952191462217958005191849918276437727760617930253503309573074574226226949716809602126173486225526889330584938693946437943944185761939398845474628322947389747222607731455013495986893160352338581293053527727318182199432471968671030412571762521729289790874969814104660552070154068118168543778954871671501596895722196070418357971939118235947845873005289426007479102681743590446459130494540159146652071592102293817753758571235470173445330025453271430197712844273634295943857817387383527323592105074659820712646341123592959904695481672190704443661014917489626889429983764011950514902993814075592692506379728038634362478803057708286214574825493671701600605946969074719924317702734206773212838489260692236796078991363645265090620231832301064799540492608103988624195426084851744159476291985494092123124276988570806130154547030620992221396771544765718431704144385915282653367707581489537240638617537650257625987328559778162982682233053887183864993285190166819809578438899667205959005597544238870003014058990614655059587474173986084462790664458983093362085493894360072628088634543494471833284335805098776516363609600252544206349116853562948580897445205936412660378296014769875629220051841496817136284408189702183485538646049624863838711516392718411547985523580187763683001247658009613964683280061371811854518398506988961683138425820072874291109987342542925558208784542051470758992742173071029441867835139759584482049351272149125833394223040921125582007233673006098458765917156630950914561833409330342111365456847924265367075225033706650495602487019011691794754676888366506417900271727611456389344086041039677338791347988166397279638778163974748604590340138168629078848977661233028978132781595638335725923490100805994710035347686046224974274570913238229691647375428956702941008910310621338040430033180894766362947784371200677834150096881183402138676768611290837182542276046336155990447894657502168728085573131325438981846855975747802778514352264502239074898161982727758088891013723719930388078301810904544832446223126165642668993848968845259412202812361608329810208950938059485324214836394585476255746970816499351192160435537464273070239802150666892787152207725167104889248296817829160650312906965200251537102135100094850263243785037550148834594253204702055256530850524565947385825084455774873219676190169817597112527733166892483857368505362512774427430726169998189332187494790195435602533119259257603148900996802059513124123721962973790041578630722094629641906087149156444914559930294198928811982158562851710511871257035750023381524904402190771012543426526863364018485952667989104733464413416993666764480572874592185000161264555166882286528248690541857557589853635490643077278742361323309391668422788157626836313036093970144505899219783618967044039371254435476452000218049824230990701679764865282509733087487208981791066363598772493471435604936341153024040046175906672953258595483530111763686612040909791042926787184521259164545749481361186276924179459427003277234232470306203438485054233405443262213762155438909930326484678510573520488398362830572571235289264070525117116298423629055869616047972937757331033199741019168585307634451427821545608435994940254461588837665474260497302491989839922052274911051846069968523749005066845376382159940726096422955848920397220687640777212040573263010733879593346951137843796200508509316371013832639778021237488099507857396864521761183029069739265865270859852884634658838928819675198823583830454939928764270837427315608475982706287491013337845932200822504755275191099450475434766121761941506593352502595837660361162701960310771240362417693265453902562134086852114185716580545389896114373895223356299210762108658023202588425055403133188022246389267558431684029820031906885770800311512677032120817338122893726985252767222124050489656179743919628320963868050591299539907371260615210118075296393797923391586993214532397045455540456229703261112336667136189684613062101737365234638018749797353827486225257102058268010502047135009080517236692159615347036902025442278139513347013776260920128685027174684472415121595887240259640375847601530025697349403162475363964779158293353573203227270466998706242528632725344352703479057816832300755826383162101163483229490048805301783185184168289759185477485734991125163394943982919707545816241024420022938108897864532773085798287937160886727805998899596360931778108614495599108487235250162938353372394941454244529113273815599980503939502332541386058675946073589959614066624345978241577362814136175112482719438810705413966839025164288353310830858520077813870867138067249315707572301610446411129955515669116478004094297584031225464509537571361968942167543814001022613787795932550036146866352932948377407606022350143682540314585279581041448500448627591361813922195676667152412104987050762476198782105719320680554609589752044583652418543847278928819868702706519002599187039180470906175868468997333922868805122714756217108941317096376696289531778989866801074721177639761112928721714029895593636588619261689894262867882463688239203246151231393591700350029240814299150458543382897251871912781224285934597123488709124681645366571527584239066344846545639086281305990664430886567343094450217827428063763737151316340578995885244010797955112367461146947847701138240359703849674422914890345102200610488684065317455176554918996152159698997876941381517348255973970412736586288592386598735251984548573317703791455502781256121170694612761204639025230557590177086760163555408639078678874289794720155826327586597931365451015791642206100140274739094710484698646819494831196534477331464602592845648052037012280448188279035395911261085742035034022993366962744884539755761417257973345063701668372000850124001615984663076241804591594755374712960940697731806635301100530524129970309405048472870321621409123083333012404374949213640901916168454237225372589859816687417015993048773802649823104173082097372187006607183141323060802675243452191229755913861651352226922831309486880283914025661202902837563571875459167774018260162775197192967456263175264737538312153225392781115916631650623612054416024224465375898292846007112259215203283886559030088459020004517452324885446153264492104225288255777320925785092573384405233669461818793325094124830325004536253369512525587458912265948174331631654728974262850277285107753280090928736628204914098714374105342937907982744821186738064569578158491800253461779198723516904017082755165095321563338855578929308424974035808384917687615791385645113761076055828255176166071650299150818392591159264038045811684499816927689564996401493880870361276030162631497948837623167886119500937747515477144610536513141576736929053434133535365861705802950970808067251951717884925091606478754934490305592007910867733502564236470024565964888903992383443212154039856137420222526316976297576937307398819056533803121670702846534938673898334757097759334506479355800925268680788851286315385972676047838924930139998586400994774000571238640574406198193793551887680577465623035608630267120282043624693887760105416029663326139197935156154511770691696608153480120097547167718069449958753667482573446969101674580510123858543198432894557378427047635153507637887168646233000169481733488535938307402486876173272492398507728657634859640093566653360686369771533859583335853404246255062226187161190513701271937915710709136648212886685233495668309255715765964062566578263226246344567211173333763679596309094662651570272094885740635708333586033322986356487503528641283799260726158185146040711546322290157634324720197697900263735419455721207230018278699928225015301595286158126715965769309895145245505919998569689819004302747760589327002046309418849585736785596358956819886506676602482372291862680150226080848039266775201537933312906452444598751740863607633900288188878644373304037965832280136561486883168148958798542652735409591155022017308291113439981799802703164618716462021662851045780398247854718239568010432169508631691589964400380899864736682314802170260069317535053169699287781122757257134399588143113610577622481866515577696896528116697874907891365816935580346139678507255929769864105724800043766108182743201997225547856666303508764450342096011508511245735663314639843917913714382879083614773738503584225797368756363577086746017525335299977132075546906855613736560705185439891331542555833830096774690232217276776049728853269075480418400781688802015084136726840975425765729197566767340037013245525674909318062022850306274256387944312370193102331009316534539476777626362668717477504857601491336072488813462449996883114955936598976075248489664518819156198056041317914807601334259085340629797518338708140927261282390991842360059792290359606583288066830905603714544437215008922385583113439840158305853290753301987588184032500767437491039424226784080166275255251818288391245303059914199158454644506542506177610722685719666232844195096364024525693482804524473930628950758686591740200026037279396044702156918329627899272182946983499036086028286563000341586547681985355085274786986291344988358836458022507771339218484570840345895013556637303963764713792977682667419157412251147421062458946092258321404583880985744929199812495663030450901010951578030466738415496030084938097790576092181212137906000171909084057096610874621541238837234342257979202321047107559615296418312469030362790154292148716233118907886530779813715584161561182931896227262868884018703580252808458679653551764018922937810328635261117971364179205829601871839086657576156974793499101353646895347449719966834069033806776021897669111657592049113508480898548200094929197659510644538059952445057545687679817333808969987868484817398363864519918327332351782605067449408822393582648390699113049254329259662686110963322693952714970697256737651929069234912451872459402724300839078416298518586246593072220993817299635029953866872496077176282896465559976482946810563573151845135377875628789807557247517563254223910648570551251127829261822075018671417313485944463571788363824066491791745573409382616543046784013454463922331347454380804660139167962864398612946474366621220413685262768456074071461490592871094774910214374440092936921883635387173368354273378098961071110290462740697113748989632308756431026853957986655974717925657582642791469457886496073683198840828847117492603624080891301113563858471501434950212158738333728095760843010526976098755812786415677897891270356383347213444935354352185733538387591573106321866828173584810758249850476260749795229910908543812654062880536136347590978234121868117831674698831820512462537473282008355876585972449654046959175375697245232917336024112737694036608358238525313328694315416806784661443527989388644862259179800342665114993192321970865768445000895504868585239021312133289033940946376496618232874947780467883197861103702136402129212895753568853000956346185189190746242324370511569212558606301630307255262868843329847481500687582500608210632398896889072977584375377214877917584141393823017370144932325186226308531078608825174449626405553724447253666931996591137650339558724116377824873427692367221036301062825733753609806222690123665645095619653293067468126988212350474010362483684419820065243027132717394241396035251076792907682604137154737969600864983201814267093383464200905385117763994970903365156055101642994741821059511579667468414574908977153977773274928702933852041738789407021674506450563240793481852544020787989274619998450201005475764656623199777033697790867746831131500463192263959810855029139460650934728017797608576276205448202221684232332091954948235612858801725271595307759085213541220596573850276791915172118175608878800642656223584425878335256767720561413434010947929651473338860638205356679167440776742205375022564134181835451419759309383096020909013727305345991939835424871542895793406060988522092521340242855647963483083789628678020576303388991868850047705592008895385551512109291111930083778065517924817279818414449595935664715156795282716591801167535711739121179339084847596368061253688176423986940460965713058038782366258987151569363428391804583843824086870946285901349158530315077728242870261512687971632386833311568816584684018547722544994032290236704581343667084687273011476228973933945896093172726429740285059096211908489956938541323036057857404848451143635971520575874162742038592515773102846381045202769450412463133771938708311659614299464940513723268143329468057446968496177707601320856630552169503787574157095734853450447632283792218501288231063228526367011832050660592825267221935270826037084245378169264458105829201177628001169497182162355144320451210231633186051896980976702239835125443691309550945312819596810612978958597594364992842758212503863932900581393343380549434599398523925238453491893609006438415318210547687671409800054646149853164315766543567329150594330159596873496383020062355944116138516991163927263515650591733263480718819913869525164410228327826158793089463786234174497105257185306040454281723034906433380597215309490442789283254864528616630293561297687498996656565914262378162094140121339231926726852003072876857701207160970926432983852754003238196447489132642681207317410297440364031947733121990000870562283166320764607416608459540685744425851390195709640376261455789842962350326870475581291206746228553039168857183996478398234145451113174673598530527372679421978496850866488649052236370339263203105476978634824942321167137544077632953699759324665340593255937195077711150428406865432374438498812325141431066049372873627814432298030578062247030902768046161699779510848039971299466367031637341849356639800088585096437120213012900718223568588979283339746018819678354191245905787251444822022680437263868209110097772029998775074600285050118717908836577310838075847788706794867591820446185946337784362153980207174115542027612556408762774922142909455628920153085642216530037176712939365932107557120687563135902791897456849089160108361170474587866562606890014255827599851956351056366949469779174087036362367241476451039015463541276488180241922831093111073680204820277651514247869424877015570971445191830598148960597274495227301359951994098333727325405277084195956654726543434772736201726373703742227440630032956835798025902130087243905481961285735175583582052248746621295217283861400339334590290766506285010740894461722353249083838529663765546846068143256921076263523790533770294274297454199108831790516182807093193439271872641270982905369450535182293829063667545477155033601909653656927572784477142655125531516684857540667507615129146687501695241938864846396169003911422125558714908266092996381691567445134772904174527003655529336921423565281803759867506672128068678117243187466473978734761754352740254938125284662951126449309206521780142851680058852456303591515839007811051238515330275379977262531405098929161838012785340824158770431620199602101205308855273090499972026656738494717147952417114635478079395882181274133418519062909226744756860598664891421074462140357623429399460733488301680061074139454869269032810128855151941295571552204383523704891571592821258859326900241478348459648683664729641577484700183311077042277007746778507671990256759446257723338518621453929802988990131066559387671926060670419679424691207865903561325626555049977413550972570194544940327619810993345768234420233632679971140217966423484976849838989223261415474107077671849047166131921529416285499206750337469736279982843768817513438256886222608376428450209967353165788036429189682639707651850339616666819145649238602501744342030057089840120664810531122424512397064026187409740837413068954074862516186836009612734071629747433470045618468978141595439026601230052523403912198377885801213447111295455809612643721603825485670364351820469961412053603731758177277393741642571171975679949288054417319233724158413757374592092084510125061751316717974715972002762882505496500261583002444672470014078761233419688477276919204122681582870670794772140748078543325116729937160197763130343610266592658293042391793449876898848800342491052855839144691941551323140111854979543898646579030509333512833386132791265808762156344702130725945986655236082550906395005313857197212629433212908338301645079222394544140478790048005952813179782461156046726048803793308947230149701026835145953045373582098050469998364781041979554763909692562877224165329199238361730358154468242267347222233862223842759169484832009336541682459080237919023822850014318122241335390193648548175933040395876610309394087169970441748417524216817698527717540039082811548181112083485004641871665825828687021128530686145327630902102121661298114026516104740071932061138833489214324651608615094171341250740697126453796972442520340496896522986932999155767932685524597340205558360259002406351913110313293824977050339107199663508940438494083802188979056058907230473446876623336237336586995521144500194513072448647327996098087565480742918801058393896340631689443853207238142031683963366119679308193574191903554528272184859867714775073689384114173435129056040650518059482256056578958434053118720946977454198254692724190054262372196468761034891912073717056974107117152632385809287872096142469899961482510743381457285979723517526850651894969061387553546178580502177446423347612185960155801466084541452521423355392699518573188103901601450385900499987310270403894482899633115618388367699460501582882797930723652681975653729719840757031363068193179246130506176923014892693240941225917127361912881785126985947375254824060544445456005556140624583124461715615993051356003598209158180027722531969167369199591598884317960824636743373626094925706237897241142975983999695601135150899596497759980102089289893911531236420230480301546232295416409308781527388097253930153673699524174586839524132029292231976913164255953755193058810209222226962459644412447976237287997218783845308075338192749866656878397533164490455089899713325725660835615060710793171550265086431885485193082102700700350361775290244277431477253001102167655445679812780160886555785584185580656150625710105402317703700640430116746179675942565242732835189802362101151002657008215242748731643004586692769714338242875573448730461604978447451369382003529680865095311822334097579050944059924453436524983430109584695040979182941440151135192674106474242487140387893316239073671330574458486530889632812603766294749071336765887587761577777639492284353842404562953397462369528159446207513483484255997644842627073708300843067722666990202451940791209678217099277951122362297802881655682655836509670718100533686727946185742708229915294037022705701981145820295755175159017107258988407966319604494186817957393189416880126737857645666121871845224172377229512625105997318270802738046826125200661939181832489131097064707020504063607027384100352165655002286642296527641177839629741668549654633512591370149627336862412131416023093335933442210294574890551848346634969724963270374447976599845066080951240490311692512386069348217809711320354989040506442532525428084975747187579392870051273653555632113017113413722568458701440372540062856435548071150626796212292779354453767789344537044850657452452119354356524394457044104866400702450217526009608941120985523627082551675604672547744988727772414440690138763988051111932812438820042143998541250070057972150927870334786984674945007600642526410220632738452307375157182844112320205666125456121668569879825230116752477781110650507251345670402219462471442483942776902652617234541854494281895445569755432632113597146215085361231885914303236444060573613907605589359287091517228041144070326052466283076882689852920397300774557977414214478277699132465624229179251346408384117700284718466193568209400186262913725364536760448507378744508476331451326482854694488743585266784711901559262046553593366635023736072365594372734760765757282396921013122795039928696819960578516534630884586601763422391611824493769882730266298616967080974254721238844219298863330576195821068195813406762565529129046568309368834877330509130168651525144841058459862199183995339289832042958425099815670599053194934393376511039427153149325532993816611613325423468642322334275133979521233814028597728117893065790355242679370585677275574551502985888471699183368520637242502210022578368868400596693559195813079740917650184940469721609040537786804397303719551260951360502309938424130949790217561271407622351656214697345885987001970554786424838979547774067898410401970083862993206346781379637626920791577299398946633703325922861501040233343923690193289838390396693222548366359715049702585474987750792444996576432938328055806333694430545719239074878757841428417555389313404144895293210821555692919315124980999103141387599921435514481029754998486976887774727455720905443212856596011825278031326216015615113730439309082490921305262180422805250475882462944483973201135360109533996611774702055448285629435178483020760075918852623451139864859663695541643650875139868795551987089293667936962434394062361632367292231141114380163696218281068820055473803713771384336096330583740476202413516839481137463321570319656628665710601776252179428876097367022826190714013446769517814874042233892846486936980364834605966410292034746435043045677715851983602570346856714412630472295560646061152293857671232326295380886911412793779352823818170652583984872123345589078702803226131848360353980379171692123545635142066985365935209543681565559942857144580362710715883073578289855333823213214219126994698049798052632764582179998097175025131746908245680357779214086898760277254886136395752925303588487693347603382379030167606950613750422797648148185799194891823814433426685698635516555953509505816857624053422985924365408017329780374366644540971153196608929414933885298415588939277463405000396679708941465913520707570401660983784965362532028271974841717504981451596414613544286258044806607586236894587226912250209743289860509656091183528589236910850368970301131765756744576960937540100360917008132390496234049321097911514366491037883333203203544273680712293415139984160091584670675687671032101913291540772904917270277305473004730232891567588383244352505485741572242838323773736071383325516954395082361820496604698015133195466285555597213945369997777570610459178157513053173060986173759237998435627983591526179566376011787455863643173856220702029664047682471660131726766130872580792647136854936939567515147735873188171884822808408662152101394181184178497771114518928059509775886353698916085856804867107822549010360567878473268668025100333953991083781153968855676822325244277636581317027879990215482745649360896663686095111029510986619986201682964323132192089246561038251212397363209958357964977982849934043541115030959800232418255118931398109364718796455364265092558851313343980867467345951488088784194055616454654277312909848295791883139649696014603535209597510561548874066250125687810756533523073421813389917197107321043336773224320538085941354495831758942446183315756223814393332373050730198583895048293813399585765495674212028648627042666285835688543248608470816414353274464227045929832306674199757422871275987289502112125428748964595846497561854914081994028297618886677298806066312254393745846247549339846510531028180140697319879637002116404270038440331909095901252185905002243638916589106454974615612342010803257087880761205899934752825464398503554187579219962808958468346814521225944723435501836470980186834498940198381026879409880899753489001582745430066841670080062709212596739571932674445862018178059596512497031045912695017960633454496096034301472539456001455033854491433226681260994847562675403319447621359497224627828983225537363775434457288268544523518309523665232888488008592482366704330984410971803581450137019460313156778328510035782108757611022419524419323351505420913713014855434120496002987716684104774406551706413231620489435021966858790930054853624332066427630340819792630990220419936722970123546651295926361096232889804951054198375573396230567208480435737633332372272387355513124807500943689515424933825197831163091602254544088664518449088914766801299131965471879583751024466481585664730214540188830630877384087008103210036498732807391653994305368677177302211908501460691229553063608796788989084593965205856783410124228526572399992866780503311545788110298433468099485436276857251518576103264759729561386504014673506676975508967272944411829997722304595816273530254569603917289798532442461312549752832726720325938454949890857660486127101961268373508055446838362828298355157307335089505117359027846544819140898396841740621354461355536428873241195521369473928372857475994175353018130518167467283949535725186145385061744778257937170830646231370100887882502299208426514909262526731682066927937340251607024962905508043107860230186204018393963774808172108630829447087756341851923652059430869443805994266546313751909710698650324058910959277267391743870720184431414534737385336925893753736517196238851344586713264868032557275586429934093519589014703162931705109476346685635620993093833688850508251517318677904524879213107270810025318783813737853855184579384157350675672773582423390823067999472084875524703505630041455685971021594267319065626072461965011725093983721387689951204984349594902545027283759498836214281723137304123853329163495490763607850519147848864444363027153268692288431604964456203012380474720908119318872135504073706799049916512751852731124959080914725712739055862045833544784106369045504553064187132319971350268847070720205738483486631255906213076498201263886858039183682677935226407995420087629664602779620037524858496196256646797556079896774734887890387725585487348835744767717559381294241345776638903442259759420752858536669542509092731498060016537920934651276642649110460430378429637056987125529699786547506501567716173551875744929583327320789778807420899204827246512764182352082081990060795035855433744580969468468653730525170290321022337667443383968613293965118470722461998537486350160914045336771191970418654141365129678002770691548995920911808215692567601856558159999374839879057701442673860091230039504335411713996989624225515010281837345928525088163683251004578896183388072440123082540280139489941224924662086279137216759602370559172460141943973964817635534396235153257645410644371922676006408913584152764893005568887142857092789495561788287094639395646494339885158842182362969736000634068800308766596010675475755494988074558810338499717379461373758141559371777241584919998726117623558325664666389317010495188427194801500744646313484834021127146170654699097942631016185159511544721912588758260063329195404689847719111881076784820341704788928957957721828749939714919765546006127924991290791614540329070356018847011997919833923178564152414325335475984361450930867316785967592724335059119330649403503717943840567473122602393192602996267682146623655722027965280365941147163255196472622329358221396264720503415612018400882276954054104170409609281651606964033278356307075787404776052995143687579626950214959039453400887054947070007856966054807381081350351304920194933196284155449313626586767091243421758465672379630714561420906576525646775760928350917612958579655440241457425765210042382913977573900906458491183692936917317756982178198266229009229292564137651534708892949295678009022784617479666044966488713916772941552650751998033978843359001991607312758661208091856671444221111757243938721625004274596173716255302276461880749135485970718749331487081372129036282281322202561452033211263484231151036454097014743160830813904878352587711734881248152427818069717232876724757139205750716906371954680710709070068507770753871680439989063023205657407471291480757111975017970547290908090523325306147262406097691123783024244207261558522886563124130256848697106956760894918633083660485628608919460522870313510029497951868298546059869088924788293872256294990237492598712464855651822420737963944776894110328871959372741746561706619240456083953452313333778472862815666899683717846413088309044136421361177638800788019051644285558170719632142895806723472727201359440164770661118892729504254046825150041679455517274700913576574694360295569403031991187121339196944811267980755103356460639256177865773617484240747873723983897104640614054293013500302249140449726445257265916459448500934875664962683135176549629834828217494820645475260679268666571190923870616701628468225501788753760421846466196948109183771147918546967541383491321899582774649060928567375014402015769767211608625590903070916022954573730360513857566026816601236285359925400170676959714738665238229013700293700881321069017619804588406541066476015118197152255264797986573093000360167448772510304509023247886637243009983357546359195466180767297274002829732171701512255724068475829867030073106105901364561931466958911061818191302191329396271733935554252478536811787009344489804641134052283965233727920350361287707122151896716081823495039378253358493921797439573810896228699512272827950605551800366474877179636854453822479740456656752087744612076714751967827584064930229909062394202151112084529731383505479788242253059402624429532058705297169843577968751151374582068313230017559649348344164772117788181544676848228744793021345886843927039234225175042528516994832085159837102072248340545661710515270833581844911100644334985448423327963138044094089641812181628618262947225436522464826470227559385195858899462774141901626325647931130658511088645547643894548509288403067792751698646184540983404232603350321700448417981967208002379000915601677721179296623421843030079183717285821801923647242783696543827843228140137000683799391390864614232613425637536130880997820538102322237511667816143562235353624789439925557264160354326937466064302594494839359044183710422051739422283753540530360643378448819710719118272274582817246901501803206648385394087894916522677209534767542284026393426349065577633264115475685569552484367864287711107056972741185876048503019272911699249962431910277392248718120017119757243702249832472445830713382783068956732308520014406959643464701277784869139724577225331517486968211488342139260045812192738463159804032473583984869655751119278640155773759958502630278395526977852057429921014446629240210396260390283489714147896470682118594136611027449655529923306123466560205961700514318547681681483824113904289701937663348567625756754167823773281648872503609022002711072326475551898779412014855467657404889008914477873886221606787877658965083606601430460804306897044497344595537294017642226720718224371583452327070623215890394459689048085519569030164057470507123698897608155944000383535281207034043708738491892025451233255497928194620714136045520948021049080349207288427806897311248595334784935599468963747068729457401529543144250421988492279573317797978195781589550825512290273476726163961928411307580839865088738232828178435166700115192250931201488037298451936616825931397534126323773062699824692086699170774159352039167128846639086684908752398574028863835668273656791409888336572039564739170169369436164056265080488921939817305652818510270715241215934984049592381945956572210901806634038719679914559851380120787282082956387748214449538632828721258085841677231844130596540723370454755521307508350752753790689984053578663021006960284300693759330070422372659685583784308130413358234168200013489052909381996564594942586906518351419229416981207727458850138752665494367042506897536638042780124684674832319482609097789369849884035591084603975638005779143467521505627430523409202095892070369561637355409651891986113283952010696884455386566626520838263164093981475496250122927782821255451617737801529049539954213893461840566859385497206610485835281333374613480695569231513128961615168882996899454979048264965908483564387858095830837071166465715601530638176244333562114974871980954661510234765126615341758754010166999283918715507047481751012342995596171679033287491292427322015348378537254100511551287181431756035387267769893923028535390255434274004889187863181830332369514744659076071590159220673708865814663048776998132264499232671212301315854779724725962927507426205402173724780272523217363456413031208882213726525324199573062539988516267803949174868184750251666364922240796336614720940233462292059912836029907369272991995126174082947266956925675534179220979265864673925876043196349238916004360381613370676921373005592860001204552358138795930484170648401797939207125425874270057515978815850043213019084481805143203830721178978683940344067721589823183760605500160251674855134103760422882577006433929014720668654465094380954344985661838881557726053097409030062146797639945057453448670962783791159815519661244101174970263499767516744383265906558386941406817927737667796188023186655860219249278421906189392905185467760541615814807108266751263515201714396944283565310530592773148670531151051960491703488742266494545512073627374369555398728057770536705191305619111918234417649622878493810715139460192152844781119303041395133527663877425953135353113984445031217709057111989487873704721108531910879794464670636471170448471962742142752378319957347684158571113213415451121087052892325819595921304735904626567033927455097846025606350063225111066235041787642388976488073235950325648041906195718605474569766395038647987736055190004151936037688209776103358962963542044040236756411194127206240733156174585165655549684143393756410468218684686489910200990521750204198772647418225916511697934426713091930078704932081084719352690323025404821212857825268937269211689469664605955824388732660704044973070661078553364065011404381485112035488070263872970036928550088832167781147122148748329224004012032826000785096755113145971403925599449201094513550546658526608970018459985393146040147575942131840728574263267203038376462980447431482047206905813860980451041906487961627762205480784046529592823121590426101264396455455699884924644939278002793359052452717172929949372667479670629948815911137147091551340500148762912838496271213452002751056214085196124750007747032793225138567631010428033713165906935776806318239691796645783971483895538786631719730349056739400497703115699438226973977047249783204222519003352107402664006897902916258822893401827359570021597889229770776981583713510613364673357306280355046486139813372164302532885335525027070238238856073758222894090943579698865499193040863229679440198166175559645779079423615949913601785732893065478179790318706412708490919962968660060697819194176993270952559356544010320086706366805420140749784457675723145665062129238183025140769115271898788309398084026796326727863020734228432946274639492356667642638550908432849928881808807635966862906178398006364743188034629926984593847811082683773345312687625482522469232062312904924874327974609614359022594071381596171127888499436331178952279005538257387993535764675707780283392665148829517901308085846040372621246520519542772392617479732995268137490119611533186495298547402311216436698194692185632181922309176210564897278252718664132653620942694558862900466817793598804532492287167585688563606634322058649523984424723298431064182634250788421809147161129256536665320972152732923872502317958837109710390412344235551576756805315773077098483484748246091611523002759283781427049818408942985869018344782074262332845503889311409867405671834898315734017433421137713091446602236552458442732616886738876527800161321488559429290051254437917115334123141425678021316571263128112403076866321882616125570916470843873312295940220888550244606336369677880858940435669583220649509224837296838909679925008125039812188461085454224378392711196381734130190842042316833081112761688134571061122550598991550214462659076543198717931344283697700271788715305930346012146663697412372490678643478456882508743911830712793099942916745684532597990292059218661249058536047101487241156857449339182792493250559591394311443719960843704533059272897341903588743754390898490411755488019830083857122374702173987004097982331117537895011457100493706636267949866905034127382813454908172202574219837370803147494759522891777073401815912515116638604402114849208786958294206631061576603869758956420592989245361337431390856438293867090758419809140853064527999618910813042748592150334630166999443748459162422997236624603825254755417901312953313687168242910077222556834335421884827600328492802245042635965567580386600447708890835502677630187853940600032423694636552510782941481707741021256286712830717841166273242291631685991692273397742255457718259373055904041007826647279738697857310966002969854622965482038372257604943044203170643493768991178602065463393589031841923801505720548133235672366559599827605401724258789466948986684798387333130121112131740364116017627122366337204780038013270239152183659048446199003396583200753617188603441339995182030348403065685454935155539888214653780640665075252873414614409743447693776279336263882349478423539683315102817446612373433890884825558247644600243782844388918356240772578758457307222569705587558150901374736949613209643792784595603732490703098894214271215508906069421964595795151060251312427133257927176046624691765056359154131909413385465276364810055401403485653409242069832794480642576693606856315648475596984322486303427523896310397350281193257086422217911346024049903471128402281172196570129102950033598932816438817145262234873932131563736864551005388911740987153866505493550078316766464433752028029377958134499011992977018457371899843357486060273959755167366486098814457385777697436286592452089526821738085369308198739345072089268277773147641346097225847884950917264875462011605631497946760786115629678159451409656303130758410690758974105760474565013948154658903375828354089854744858008341491506493974476380998170514093582727500288051288364412679358187004759727268261849420648017688652628916818870646831359707722755258991185896251127549280852207710172892756457872920589138073039984108166608841635467524165840428079306110071672881802438891023149723995377982657362299192522877508446653913113308639923088144036775339861056626712858528111985487733307750905641368490337699893113104164726535857435076631180978441737156555842823028652164624736873522843800944276280617636835823103988299574087441222934982734158401807627170939416382326641708684062171558429814892437091092127282460485747518236230156458303015581075624189215741971655911668502741866779013758678201045935992744375552060980710051697407660898698062835539268373589505464426130871644302585788677392368973336731423814812376355333022234571461685791046074252220722312729200214455975130112811789068664791704388502872251786877585524787233401272397884971654058375704402743960445120766418395327865450766307357607746923382468361297139501205581796868652270407908411573510028891689606695695551385808990994935918566013742291698835715013005022398486179031387786163362586440741923677202870013334594092083768235035469580921913046989078977670932824317721838862222889592222353284401683871076704116227682649598516016784267580793155647175183854183572101340497553097734039892739599720900319326108884636209008103368902075875187859756403529558790012900473428900387884087511909277569282240744948465080073379790530242150390256641697164141075610596303615210848633870782577704026291937261094285956395688408902714169719200806848053048307176097950506363770566345010538337100900179321014688041103312370354485664201144289854549247412706043655777642681613281825433472244175806945481947970398345053698800688598031159700154114245255705729180370252489076563068703920189923552883567709298182715769158289654928538010179476493711690655856529516466453970470505186124128225808610355729832151651146964287637002163140922421090287091844892075053447509414623832710030046893625878830086303151731691813854211542772176660613999713447119162713925548872394406132894715211709856982596520898684950576719025779603995412473288743401905017477268621672164810273929211140359758117206945801472237786976654067063942178322412967929004939715198636075636856541870756206680380512931175601263481146505532128108316451575995859091931347054457668409134278844780761209568595222837046459078757321701458190251693447375874920088836093534280164380401431055886249949285371528194943979956265547959261669615181349390751991801365139279543449520842457186138683842456305113318902133708148129488047708246330411826514093133513344037319222021657831301186126632076104868609449484314188326257487827396941178385149893233819401343180749424940624421598687625962721752419166645737388864793227420620662475837305004916940247142231728029378694874394585363722579367985419798459033131328511600756478016841835245263389835316316308354485284279818384618088571067116735804589867938751289429367921107798949032726381918639820167117865271695897820417977387193682895720702134643278403968711327979180998885622096930937536034456806190051369021962549872805310769424560250278232890904875405726286452890355997679710771506297034067221022904315971765925291838214103047498356211456598072665580781816254709313229516034877513737622975898598958117400746082388418066217262204714911704298030611677172067489604382430782018114820252880538990435641330598303525071774818243191616338125585585841895290738746838677592637810832127147244235152260411876299118774400600629281174399746500483299575720169004562107499477771759170217643941134741980637154629839040908355234176311443069217203855551698159588517688131764012361650661861333197077875252879205952351724295006264398262686891657793711991945542359308676696701005861415679918599112293108867225471901620887198114800262430984505554730824728534517126580890667208050127191490223733873783105788208205153915319302965711856065001655688730229012919717198774971593889933124897521637985914368459594693317338163475912195635272195390593835618352034182330092040327065961041967855100236116040132965852837220072422625351246335448425362613347856677768883252211338565417802558937547779424361279573525682560779259822101705204919680738445217511985252533734915291974943626101033515041049026591561515820722904122023561711888835594352568901759472349977826346940152494477781235904611614403784821732063250743946858550860934934302361610923517593294303182964247599525976233665109325197686426534543346676249551425884359386696373162752641582606121359454177841527725769925780436301818621559944662880894945583996175634391509438903954847331702266413536122055440984117735301812905455017277835975087456142676156486146256255766329611071121471306602931503885321570450386717663885528833639119834446399533607102488491553260868072510739925790855004671945478191781318003033481119547139901480161870618877829079687173141182543881313729016713278915404201753631279935326043383636375117955412321126744282695645370029268352273722067091029560143937833391972137698770271038880181891156863337248642530659183172200859426208779169511922323715347729789868441268009092067451494035194119229270179666582901942272226086265477150639458752611808929525132945656964242217408615781620249946409299835810688431162441726747074151898945661101265192931936512583235101213507306152362252543137422330854078258794771318606774405526367319076055325018148371404786007526484821010909567096264107130781718883566432410618889701291505702864545262389496168180727988554313971021680802233753347149136625679878975960801758555601254199895409084153341844713545736900438537698799301023220040026089112731185097099686316151378741977933064974097857953025232169772496824736097842644132349246193698876071228018534155982389748059341321947213997509919152133871961129632812279625074058784204576370731822981948722900780142074665708657922330425318424125486246348944012197492121190456796410524707888422438325798673445533085576433157769907055746607342983703248291008327536428435893250377441094936687034722012764269265739460127207586252410957313532191962248933575365361517162664742148921605218129730293672498900842782759552541043223244072004771091277845576769439551694445600449337595954203179935759867923035873889622293681265234206672105479076625110837527300992299693822959055329702867909111015865832038916439883818970254213633433871928465003021172023733914865202610008001947482886503244160327701474833416602726972946045189635309090682872325374454117345820196720473869446489384283846562299374952002330605591299959156732115366387410146892859668448023257153889309121574425708665579753720883626969380425578139542664339645114083002253243398958230532502794032794948681133919233629712982937670783664192504052209836275384777931862463240290649395249813636934955056255258219595742778065610507063385893771387424832594075579699351659917628279613652950260765237397655999078747091823951444285097823944419108495780471784922797468098556791801887103146167811289224763171379335215642111468777330904415624077306968536733667164752917271479820001863594327427277758406637728640120020212866713058297267369538167765994776957394982853820412639231317560325958019241381360166011217711895912200910283899528181017983245714786545924367761783338577239580490496125023862053411487308695442638013517543198455644039386046065946738209810361631461791138337709725837590912822124713020439326197990192463590924951629106261951070410891440395588384438887717853097752883042910675908003471129740632602523623889976415278651752835937190006832653530253125821206850821226745598719826804788469330538410379645212337583604671982771212322710804170653450897220782808626647634014798383393634355260823426071697702424606655088809107318706346268293929008810226274724317905021742000536200644096987299609948956925735605554614834320696648991070534982757329960878940942357212547091308492123779786048626250971099590999594035488588684236178346799929914827149889639775745945671561567675098290408986173491145203584328952514287783392823879741927674523942078936900593365348169932325772947368345011212690875311476909483045750284579711511425773690935649503491495944571539835340604665037133891704516355044803366946016787951630075347735786928180983604176498773124891336031856071947411202883334495730736957877096360871627927816820802911471634165913794720950238200737235994175401723439657315341060420888786428216454311908156541588945295535565174303111607564465754592703284889068157050606669601899800877062161482045420652287404062370955051847088813337927832961004230055775539129059527160827937512448215298092265011588002150885741864716885169637212170033618024563022189850370915113801093063779061483864393931157755158889552693109695111562295785801257200436075277211870153096145033832240384885857957825756269802493083492466119356304265063406109907052672193662675303662130605028487985058258598422827902782335413610709519174039784175751392430621571215979465716109447697920557519547684879046834782839535547805148290135416563725715932763611275243914009201028757561294601912589508150263094922689508225054147989865231802199748017474010641322028180080565136192686121792813335083100070759097122629775964694418651659573986746138644599127518301832657950885519428269492037187182848262976047595232379745533138681705882943514396256783399916439049859511266643674846269829387297029068815215707931189768052931439186236419735397328741307914792379026323620955930845878215052374586554273182026756672146176500643972748185595902500404533108200384700043243703054159687145427982807537426689302134815517571549823081411981521490172885977457019372554109646730097852536262934194643392121142535429697691976185529897196737693625207854633330120218006773441706593045457801735340241292902961368909961537291989097139661771059207572493045316380846189013625833764870906941532414095287423261801361205982739858690597828115752116440990776336230046826685937539396933438483422929828965866919322036824150654950887108733351563313938543189070923528683089917509681203148146166472708144979811816917046894166397603467881677788136297444087524740408037766488873647025995868547622607283835369915339485211656074575554583671414376247130524096303026585777494735207988642778919120423674482627224282389792518197023775109406083624109466248205312416313882389956874916262770855575315951539672866543011755052670366618574461345525713929525134264230963477418283223227600438604847943144397630609502828134144184860839271337100644300777621276706031800339291660908375811783941748569346745271541578280098517276376141536556228596610262654181725580483246106023358722018228679870410792467517854157245844870802852885005160505246546885108629961482537821472632446980450006970966795220031956774215408922521430893651743302506403891739448585157587128151967075559348295471840275655911367607995447703928807263789124210883688875244552920003653588248549555927623002109045535871164106072025459145476800321963845831075855144309747519490769398397940652186802347794544692927154529663939379068925049512906453881202386015067324360346917615471592560783004677771554706777631529301941985828842959362144868510207090656278963940553333384013890788578352317123220533315844932872155953967956315389551026860262647163029797014965278035510547759857806490041991527570223229679322915375797939417507792180799004311762570158732799167854510216206978427669257514713167058605981179303023481753693660611029999469017724981087718650641556589682032813375562190331112262721413078316194009818397302989322787310429272229233010629526497503862643349938318847735404629174582413939844485241763157906949242173471498592945350680665908658040300252883038289259500308625907658679911318282673178619524047079162516638695335101901038460481874180555765293507116719711843269660469759447567238793686818091550587956916581742260189998580585386984403906684733960409205687287950928044810476904433807674262514821778066065878086352885990920549687838795331287425073559849683089801233133837946883573883765331210918342224716345364705673231626199156450165856933368384621418359727441161421399751072827703987850486549123159275870990860281509930360343982575943122268056578170740641718474139025725259829049581921764128452771860478849042208840524978241589732031640584201945285376781008790122039136088393152188491400435526064435557754229818506412610058668667276666471072610797138932356695900411000363580660421768578479268914556304708017954461405554505385974988915467640945463924383599102660239813172441952333111819985656905710936867791574836338523683466086584570933686305144595146150633651360380118338599385028729800767067870161360928593470326555238057367955050199656607950333444517105138919551716124792674026436303154097090089329547885314981543265844589708246746464193478033379456901688534796762621532132891294796670569818458689811741401198352347097326834354157821503609749688872916299498276344916849754483151015414263985024576757059722424505609827273022072213758688634785201035629758669134464608916472005591552402617433445495275050601041457563755234802004772815488108465866129324675147464544668588915474621081576915355270277270139176067168104591110606135446856307203616461223443131779900384832923544759058372811769204491817043040633337581226470782789042732849642798934295544055518501260329300249055080941329814826379701130711465947874519687480666147313060032746997320790856395702353409057207965954578557402368921604927955463494359648288126657080490257458670803247113330736659458468023972781549970339663124081341564872760905291183642295829736907996082982123667752569125739775351055349836736441321470754790970460996930003440721245590271399860368970332657970159847504931098920538201959919927036396871558223582857676917972276271806550829542012273402112706880770090572832391602073817795989806605017842080446994929305592956024241148176472883180268365678888780097939694833062255064198071139253490640146351109056965974294041305953380102542476286180584070096801478584366751480750491542248428556235237794576969444423555118950124976870626407575000398905962825795139400777317117743735395423015688521730826970901517202424965657536074385880876242317299594236470138483326910649428257820053422007880888072813114277513242565018055032486086505099131408671415992806331701280196124302973909003239224278429193268993437700405422003905069056854764745660534696352937371146440557660469035907079464617507383815883747634528652600544660467613919966496832284585416539945289380669234108633745933688833782668189823608884688860863563051724167300170103317572910563116503335815848537720882565180251315195839170639032917467164053145277932068634711193279396879555690133702786453882639105397451212847774381859796760789645629755812631168368506849998011846960883952392599429497261401102722883508783237430436472096164686160769418856681100434826322759959834558412724989148565966521557863769812239501944041943008520709888962616025058538432329771765171346804159661824967996812211429685369159075738910622024947528365462946876973408840041064291651372767655354100409447003918671033292837582930430692711513705317030806257520200049318747287904503550164222380617111184320632069700089855088288714495628081056957144568406711801894993585405280998969602796837732566765385192524104066621573623342115908314089124369826190957684334651296047382395902385503193655564536106431623814718685282297454737643137658384920537742308877413139163951515116917855569452831225399454459206295476052043312626527197692926189088696276521298095080268552111890164899498935435035258354488221705852188606151941696358579439919613309639057935483580621204186617604158109387773973321982643569902351718241131086754647932916783609540110071594777320180314056725687384892160146065125013460978393736297942835295222042616902204308330854895374199901652648067537642025993961700422643400091707640989311139336426661256480779747767894526400732900948183439968596843142279109311533620573350960341315659798764759535204954383130800861563030742749617875946579422201100211195479786604568514180838854665092467196456874359153209010274186104641822489439143463771877148348034419507903742321333803945655303384014105495436979453774015580825466288070743544102744809010880717741495693496674723025156285549654791784700848242610159909636644284491572214571679252769412555185510947526392083177805851970654635044364014835508015442652395088781771075639857841507535236008869034214724853636943870869098207647025568009980300599644303480027263390015312268485644161271038930421503786699221658173608713265706974326944151181475079918378309553216800893632242474409655693669466244800736600282255538256097478187629630988639428223594637504485201864021466244578918755531725612709434096589967758943914660295367278249405550845377296887198339231319268371244495090178255918240363837423235904226725012723665035461859567992414594898975464365278627893663904828838265723157672492317166012014930298565637627648247484281831599296959548167810810793973216554488874982948373991173086005141598898139314067249750776624290621136668097033345916940460000312532170302823864802058252110220377144496059584311440955295240155150206260090649981451395989143959668061013143855988444354456483823271086163493438192007330442481526478397213862718358487877094827307327533206146348410963131524631357848040503874881893796474016893647663417739278726155564188260850769679625456072663287550430717985127908337654878097229254534698627686592159772783228687025744820596675494364063164255208057797743289191324884201629367146905038182986073000074392746363878443609747037479667515361096500413874171422044226603240819752829308811034524176132471130983360938116503997747182316612596649297567429111068411274046613612705752995091527830227756771532768255537293360149350618909780965044430811580406269306123922689781901682248336082274812143576383268440248654548951968846374072930340413575270353320167256762805395059352310519316050156133553373369763566385840291205342986706668091979178194655933615493246740039090351798595105483556402868571168249307433050934699028960763222083179017232611267752920874788995097257106156222086461812240307654308917159321010034902938914217470141099575910245155945092434972728044055378391694937344950221028886736144675402323776429087323653358174868723159224333761971114739248641556782761788668054046158251132490005700490718818964039306245147704244618964595287482522638851703319960173812704584849356617800253981187305533852722129179649287195996002683649078285542740400768024812656526680688976584668040632767283841552516356934878795634003326971940743372867746314591960923109878138701405310285410920345884628727382506602360129182232397013320134131524136974723201675374514394179086772514020448026686237815379440002408964504388838973473336372007629230060676051658007070921179433160942109656979846055574180944313660120052212297454698465598183670501967129452157515892985502073645385877690255331946815838920759737412911341596618964908467607501604617588551901313082171559515480362263990265574843317451623088768496583304317396352785063000694843850650000210841697681776971225361780233612606171329087887527134971365645091353070851587324295374430886004789092105018552464616738918607144604173197302303112496532049180169939028765867141108603910984081282906621735027043057526883726424641599041052567648074439588855178318709989158429755745841039702666307092768313852934588131571222417532426177284143745508084085812550926053441767319555690506322070848039052010259867248219767199950163736973580011211873227273893191768786934182650889405393245785372867609566282128283462157999923174984044917555833808039650999723920753813309612340630504185014940508535511079903568183381074924840236033017734073656711056511923376618171494110631519991673383122943150310272605780826003684112338567572074386066877542796628010605479871535479493422277001604135424335392657935676036132692440555144337081790140900649959588971624250339159791714029233015195408848728265169149965408159657860475027717282379864458324535903010282492498272891753052066824607789555958452469028221548588486230943634429789430751415262297267350526031092361866035988304110532015535511447927788305206847805643886885492832727833125865048048582989850061053331959407302917961928722235438758483432565799981545374147037532931814713736672499628761236864408466052737337459126538687823340086275547727603126892010696833978613795330709086485394431595275351531791346257720552968671154235040532602925142378054705656400219743570864529641244886278265264292739339362834742818131347138136850255293015212385829885326050199330686110897650360870715381849182767535125730396810695918147266564901100917041959885271354768647246934096439980505208980764513660781070174769486614017153591622946365357259814023852806198651030903716480234117835042296169874019852179570681479079517523829821661002881350926366266050204128272213763717932959003553322392775583175784317098709592244810151744442118204413684976465549539952764853634772729457253207703828975523996485457097878172011185271127011668293391872910491328689456622719220332498286004575814503659379118707409810411160419210459292457979181705449484659589041114040256604802895400116277468444031274628721512963540256751013154508389381642178134221995145935678520453683670210362415145017663525647377922537329860064534943610676733155752317045060798692478465764272980632072384035926799917260532495512941316855827383229676508026570955185815584370828455506701836734386019098260779804209214673907354604727392363400078933236299173776888712262662604117073970515311863964528787873447544773744455020061216853222151132573680669393050838120774268597384641279812526975211075871762747245808615261250395429511473967981599603567520519195799889063149672951834723830235199432633098285687702212329103277883341648467152882580942927306859609659350779001593631542568688345644349380102743571657308841553012133631544357935392095814568504147528408154028790964597517471168703204564727769054036437804582020999707210859436294079865294385009707734152810339227054246103130101979633696511828958835095451058199743145241394683250836709370232911854164064423494559566616064665952808830468213016552908712019194743781262915293014025739585240062750725338369926338308525583713453605806310292908521657195923672850620374189485076227125031760305435950980247231977585628072965873251920409475221066659691808443364146188522707890867610611536079004495267232620432722757335116770885513577563090757717958685823432257825923122745616542208518582269464135913327286852835643022959980221588013656868427043434126673262554816952428485143759772489090878395715320814846559975164665258989879238330752302850811780827962788177640841631375008705681016183294127416514355286261524305077195018710555358295994163542433699481251231619485718645348563716197552666628676381919421682118603367136731975442219316074859740105907208596495697196362506795251703430972072501832737935386407778707415642794487983668431446045527941211836184669898692291425087481282081571505721710266373335941805480894574131507448449044970605717279177168157004800261865850889786415710979779862614960871640175853989241410312947356604352325067724767088982100925469553545299166869891915061333264167979832985536920871078909056406426206467092840279217047943668673693397207891172852380075220852149337480501511395761191365187993205067393534761364769857404243256112798559752821621580353236994742590539831518604322840250716530336119001183838739372472706313535102426262862092784454294424933770860382262302798385942169224238014732661593132014912995296437766978073539588487194326019782978519975693264565141200543370815425279574289967417800981685730260060608666659913392178312722962579122761953071637195653093555523161610062275012790728231470495279919110825813779271594607828356694661420179403644400943028833416899746249504034735400762608639951897187053618706215288707720617501860138475352865739838616969291249396273436307131971440465403725874267800697694606130137628535008061708861556926348585562596066101588555305525625893579128568259983932916254553343037254541842230629671553746674611813163711225857900315747644438169191559809296904299379021788691553746755373035265647170698791844993218628619576501356813987588999543957144027223368478875749742197172789993716412072723849167705416662704281637665136919540756608573910075166320838762680376940285321499874520913822885789711929878483620714202402160719594998690739966690447200359610400334883890271215863473975174782478526144489849845496293778487653866142167709719186808770637925730319277114610377095034701316161783148478040481625518769902627533714290290958263262253322498802763280361671325434909796884008065903128443241793528336362209670705263374097897696345246330216269461689618834509787601449537001511534360045901307618737245503258961805847696530879204241461676779098470227305357366328074321222173597327667391051191080672697146131362657583621665397862167655508362839513936419336022692754014755029283051882601655383736601695057636335538330340055380502927078028009240345091544461334546706619332873531550209841342158537646941451838107902458652034805582559337900691808366318869096325542636382429817685089699142819810329629507459414554971481351267745638006905386781858465616929780507757638676760408152413296006061008154111586381104919360609540128948480160014588169039466018585242881034711449312878750186946722122541542991293815167050414842846055616121724376730105191347034671302591298489545171516966246034966313408578163352577302106768880011397664114305086444900647471532134213754198929766548677856511162569707785637810117230638050067614118909266582120495309879729435485076155673329086232007573165491839665395565511979354055371592417499284373413596264725957847411911343510668901093216203051919625561067081242423890504301559384731728835830557625725474630488359870629224463389228552181438202368536837275224711245330847509893941652634706736385196617681994114311867384784675082097136632656225955598372382371853375384281762449635578786152379171050390846218077830866959863230455046054665692075618881025148739162161369416356956001492567004308782385944429179790857884497361636891374910279119907657983080774992555312888443967298303327488666887852789371419661527562299894344890039658992344408121810361797853061621798477537505503484822977887060429185186749681201085452806297852122545759715851939927313658682963512007182803169669129413900684407190809662136702018677416960840220100565142291255631719836850882094020579225668287947128388686084015988607742688611706815074547003381656459921701501029447966139704877279954551500701280670686451008700579164294273975483122436815479311391148888025006514715223306477811056375762863945688660995704247105227149140385609289839751859770291490033827784427162405349474151383117766904386333825019387169297880882607741694184492703549427531258744891420328735013989830868205566450643710432999377619697580536964784737617630959872436187815827416839983782850958563565180336267061765742574516133405797044488886759611914200437230021174410603701403318882456593209611272261975686882304709183965891036736340803828423178016129953065471545783577567642491472440945686689245844277782357489435056484272257237949435424721264692104492603557039319936055763658307000045698755446359154292776449558276697678245335814718962632897492980032237669785726228057414336187552862931414131141980105958513296915906085926962905233623914433745643226849250966972370645882804368183070474555591922625374103350857027681788914022171707384485383482173312120252601380641105050961380809483446726760243706249853200336414993011386493436818649179956779898784442707837721747833318071131858825487337845820903596286938737730455746700524136452860439660058955421975533250416683198480245040938314800824404338404250700905085059048610159199968461285024318251185435855495169188556942323799632498221116555408541133768164714040498132368949678653884862512241933109268089839098002227826106399559169080736796085421954068679484527276812419361773880311460399311705956425474572937041934727633349494991785811473110381305390365978698692385915728708771337639361155204975593000456936027725904548157700159554110009171847316597594865711100055735573598438281518396799014614767754968738447704866139901839553855592254516178625200227676106995635086451444638669803881326905050958473166913680579103764498904490038617690451209070660706867497971785533540299755243496294579682096473035683653131273540671227110626353023109983893924255743946179740275939117536285004615913832933490188624601617852615675992117613842004029220889043591323695244552350055615869198483098031920801554396751503718726504700750920958677831269719558272140077308531848894123784848743631118924963716324800733270676944749920374714049676212176784115522068106031077678132361712750326831823842255744597624363606670422365254260653104157030639922390594189345838800225131498440580680438806580497987986239052268116694124852054225316348080987662141780605386132160786359115119448833691702394924581374811025124158177236098265649303789497260841920127165800291388140515042096604535533316340093837097137518896245024512957913633581705759596070365448696201617488045230053602936880553191297026688704114486894281156709655123906499622296406772866704581430444984176142351166958251186502859128522401861868635013212224984382487222587273334715993269754929465267042366193856184779752361421164237431354032490623392813533645014043089774613324615919663024737563681526811991164033116169041529121915363282895948839768353797148443496031407114523736493422477498713124069150205507509177541549372952988135842204136685767946319662719700732605044239376547265196272817164047141074230823153219202724570710335038414652963520942905068588572127485410843911893942006529025051786324241596854463944295275159872856247222932010417915997351594061453800318509354527745840286568020994367809404599825533219187457865091500285555531494138496936668392937688972679346293798245722064933536335482766232765238644985669944462543051084608242312537008890441184138062539269186340058294979144805452372349687608433018152268435116360374942476873728996644585431812436346287233542918293747701072274001376424333516377655549863842303169774432244768098884256829799367527829632017150609370912587657813289471941203355476733798600978459793679038125866993164894524739568991363748661604509830956944820127165913911747287770073218768551483305195171019478240572588891108356672850483732167094789698485408493939914357409123971816022210979633696407090942862716210659678128908786048123526953958450062229484021171342525886780565360939246601926566794640478607221251670400357700420571633493002819383249608628994095018897799937395277332748540795624360758748819241546683770937571776475436752562455332773108658280163237587803685810908007691028931175933951424283394100384336738064984569679575445747438849631665367256097187129877238582122493101328305182194274652601349542294457902533735739826696525607251798500330188467074334413463464365283447969093319863827744534212109224934843394055589062194791897599076637179652600361037486587979547821821660232790151810253254229683842699598662588483171074729646422899676114200397495645318161663247405580731797422825634897878679976531003257035474545293996505026436679343031301273858704311812820970343112072424135164085069567496036893172036756787413923892362556881074103263863014494122029042717422023747805674547208522163328957683884916029482638832561906725082926572619878384351846566685703008698410412706897108972952909897531017245446702166829392900092438798156065829125286427626997745345974329151837204112318774445595867937500278073232217622727512104552582608056779660547908046040713912295752458110535933478612744611251910161663385989893907161341646247673766348173408573459285959662712642359256090042899349107979389543458030022714128433070736279193326123197882964501573389502154995919606217440601995603522073596025807238784139977213461293553022814101573590617005442169300916058291926670281112377199237849011906660172976431773125351290218435177277444744903744280043840319503383295709406757492535888936718104776444206466843089608634434573111372181218643323533473311966182597258431972692623116419680620277895871662712938057925438930363951008068485625389425631031384748911513640008900695621406838797578901615119984559126088516180532899748296250053527283981874377213244434566482089381819477883071996767742823926060424105291874830205976520791948638618553514942549239800433949606383306625158432727838498437493506383549934137586016550876726312389585371334787594974218732493327247056689250866670029230618165935053769122680587349204925366827107599352107559292724454205334831306776339097762322005180753214758650290659867474024503815722565034984330955006025276107301082568569189698319637678973878194449551515111305479927147435122875018595693066347937914995970018535564729479231771634617973171315165530613376547460458545962980689296187481674379161606359018208408281385726419505910955511115109417361828210685078435482883762503227562959510440141380334426077897935642107277837186019364911133301318419801002721696292731453289070176152044081911287733849009261252804508438334324783650813391083961902177155924317098374297735382438756154203738037858550635584391318517781666640501225829360675752657988293876815442571977760317791910844780628406597560413803212415058694540038010913941769002133345094364607281820572237090020533487380556288252724888682981187945378792778444526750364719991413604277560730614294162316578546871558322800378728999061161530016261037368731838380184852852264207101804449784249782568264022201654881704996122489356095484442183978663734467361083126800354827507230148831627760700948251114287901593785253087071920150714356396484668748989575376333685244332451137602132764872997504230334318737425388465590860708803291746882852728196365998507949750141920410286962302738610565589741354798516498806111283114109849318733557212323751072088191033602175190636957103255884324564207647793610891242482881612169180150257667350665213041323986033086252333688553991887696853807576361619869903112980379756857867890310547583295317155293661897731703023672723863379854145942446359325698564599898641349762122922306300156792310838122791221454886998662509167549744948229248424929193933619966630554843197756436932642731205764607069151270581370451381973150692120973754675313656449951765034473830413279262613187747243433101258351273228528965961576451127638316340908905833698644201899778904687897248717741698264724187523159461709105258675842101672964888464217382304898143609148942460083102203789294030946627981944509036884322240469238328794151049955295394004358289455627751272477885835688606284876339350290050823572107528034332073963130186561089598453176207366703837993526444655066555652421793331279840977153592593029502383296074756482513048647100022297056994287269335914616812035389996540540810589726345751695113352485103085280875370408566866915114938326805323147580953549388294357460183928227793263559073527023542395066730573008835096034106042280049782000761756800392553500702202200211099490873005769179113233751602425544730328393238003558312085856444397570825996443966914959140992672603149419210163801055653736619558430444016250296116679911027565906575831294212333597090250227330302375888495117856070966057670113967281213439761843993983610745573817307867634089448388257138074706442885781730791073624061169357055604568882400263250678899567149130744857948342484557217852358345547817274676219319367777345623848752066178857351398522288873871726682434572289816369790992549771099943851588076640654299743071141486316421082749034949812612617001483132725379689605017421751721587514436340541575931457822329079396720435890966712888572204002000897573801509252575525357907268650799313566256696517128561289392175710467952514828386093185964627075041374138867317862957270347179298785365999774648102160940753466542471395057806882065661302499707160793358158989141691174305775412480114005793283700855605868212185448478653701458362097581782397199142731551795103277603954727435380549707473249194294283696707638310715018323094687734069560424466291469138390224357493053361798304964107656375293224753877604285514509703060304703678866667636499440028749016617720361950112007654372011550888029425018033349749269834526532635706249458383454988357629855902760615705608966982066623643320562005057873878440321349368673616868130053481378128812797188803936624958907403127878362587301126140965610970844940986152433046683139868277991312358961843903514967573047289547887958122899275660165095130417818250376324917333769538700079461060919533539929409367730240549444529712858000224020250601435959359850806784066068782563999375649399748552616864236501640459709218849484105837637212240979272831419818637951744159375354257534938233531827173907144699499302711594761681550570768375241031797153932446969248279759306795352363208211889403192510595925942827967075813957657739151136203768193398475130169640742248600091672110346871100757718910323909561177976126837863666748744277216834089875211550891997527183330223671547310791380677307946416020145996038863146750807591287043745285555243699975026000220319998462544725861877874149950865948539205175715369987612537361356756029470299268057237544296767509632422002557184883447888570303799011555825077659630369581622168576201729650452865742362558501414536675823021047180153772594110975895754536954379067120089614584777436075850927813946390317273398018193396288169970046075439646661246039016483185255412524323570465842403059179827620926840131297346135637054835954189439364505620253257229466406950961939125100134991739469861396964922943892321919227956555740622121450945462990896958869677591300373327974547360868413465087930517002377802269479528168286196756280794704962866268100418718448329604815944569940991792914097421712522977475114805905597186862731207366720226994562165374680703827420761214361837295162088536419470338569546871592439542023939065086829592216169406216765132521722228413763423181572506150561186628388873177190179954839175481862888250474239923790136993915808531262824044533156397546215169042164179387769923819314926600155368769773481724045132969297312473478706216060296197516692751620918656189841521885173421115152407476110978140593962980893140383200583522830078658600055025628593140258134772473932374698556157204466701845647650800829028069200524244897121104925593840037472264227854835770879557086889194879477432181878573388408183883982905817393921941364624257293445238603844045388891554723711766520677101141949609675262265959735779602781366040719017528426389722499988228508248095284304539453937262264575631394149805737696863019068705880224458960622840872171602959228766613591150117691785419280179812152682237730065265622574461435609685206349899540424601098243740394874357469974487609645549946227013474923318034427156670487906276405127280092019151475179741314077439987778815205587616983348318787890833840091109991355454105212554482929891625203999901331226989551111289207314397957104439861077703018117980526549933983268582244826259388952724131332881913264917251636334715608322906808158520900937217514932419862990864568553779202030404581028828194323408580902335953373757117287361953403231055058197925949083617407658511222816288403317392841554092376993895678691550356865700799030474449945129567241667177099200802366813439177995244883723379119155800338712373873292083298295377335717890519223425748554001487239073945746486753454559374036402256955838096994675026824171281748216476694789348480990780926866934956944603795682579676174210431468153005907810959136356914503439798019254212586249885528468682798465424081291044127785863052854126069720297389654687062263917562834709157439020347803291384660358584117183676955328311788598447875229113391452617286308919734359160420225680036144881248136307713788811107113531783980282912412528332357572171878663379491173207827412295058948896396365593837543820219317971612992097852885832132886805136611841143984539552595008540525542393844746826462785924726297766916134750105348373030789607856758229927410278788260907179543139294201755136340844414264625522849594297624546644094029225705006812683763437995620503177657594751153817871165774802361706701683585588953551655113725313361876123662738124362394735090544236862252776617725766624817126651222048300193451678280447307589549450755172407443163141725137659075517910581217472595598925005397354908593816586657533492830532814285508023746623978712629004596063157460679175337515073518337838431910021389548891442545745710991581579603688076735666223461132390375259135599933331856837695664141798788052719557415714699984808260544344831406016925007691130842254004728684971167615627887500705629158625814181277662852480101540533052938880706294104707123802275447037155625977042459488475400882002786747046667607889151875972123718894984281200979442109026975691186867245484559485573061286135063735318908212192718139919801013920890384639004711690253342463540954520293563739400211979018067902967554301138860871066502934668980170754479245377109906287624087678628251301575062523733716123330606856573711014442395330692089318061478874226947856817324437461269130295713437197247679268546902492067420580356903332224189192271740081906220040041158427844360248252678861180259494974120831120991700030235356714370460738959355238460882142071244528305170656656421735658330043134845568517314687778750973148779233102000276892613543275253459840395054198527572467478262092821598012226751976164283919451739554854880717411479413371555354436789875819003839715435797444568895285789401977702871235994351853389422294241195395703610183186355723368224241099768841184775084187156504231316858734738442736297576771283327950290691333458330918068604091770479415517430061120959932726440476027509160250336391886561103569783078035877268850881097995474613408848897432042912620604818401250775066186667628699996463290763773976037542427261311126686251638395053958733351427989335834676358082986278623111018104490321252415432570036832930336799727729723715861298202049003363282044674301269611182197390110854644625761365817698687892064187344730916312272104591412686549111005150929083590375272789445417517694693541623662467838981738182230017026842475109739499910780382388391468037701153361437853993867799938685309961075553450315151447671573929209489949270766094051299808705642247935321136378558300614776208144106126795747239356484602892134404676133895551618881184922318364796384682259246825136276889176509024805763429570543613103859600715207014705818721486125929722977001689447478629387454510786995222227239964576141586941920875970200822018573590158190656118410380480477030783763640681373307995382777095703748146661863236913973394359992731188758048509123646641053724823166047116511130976313242310436626512631241726999203571568125535661267470497768722359378168356548729744874490362118582275358222449289939321998304637307922847916800989593145296163514949549566764090487993803140834142800575656409530646478425504482382711982405278105098301697010370350483054070349378376580044067490763015236794618650235052660787780727107566246071181202620977624461094386218591151659210859814678485040727614732851107774731161244771396362140493602697930428943224119844093858944974714057607791426068809714047158226127388605103584310295390020308264110644493508257523204404732551229449972505315153776225528701731037654594244281249935630336639012478724254494148974275146339641836610191576364264086345865951236680601319644680357464338402140794844574970627687020473739200729136268682436623894305147736765940155368199462502456122086704830103174952047280122429204690664149101362669964438564856615365809224083510866148234557220893747278174664740015556864328929561021130051035035047723236072277820284394707691892578040244994277206800459823195576561435157515745788744375747067332282655691280805964898592816260802445225155443727252869367830240491049851444468690104038578101945397580169024160542798880305053622169625728702331447226645942448786701122306753487169938370721010245531460756468941303039292085097953532511834592498234790209945112985866165430203132002798512600425854961401519705596457305442789742407861133303377055496299492057314650043088988175300618204111048420310121090404801371007195639527227325066163052134684359279259960091565500965792337794375959957780368107029322443419986514780196217852557268468386405988797843887868778665282579419372801456109874870181015182022380264038833512333656486180245130296206790684594327549817596369450773215439481066210907067797131144876058672679840718571779527814833499707722464206640920158241182827173871199432834425681523496470901286241600939107591485608063945045929157744424036819112284261968796503872006705093091386142455347812217868868543634332398615537169727339923218586140691726169558313603815776054780065411144923160055664099319563811145481478501770353902355837212491762941920082160076338996900609749918021192482241023767114120032326515222164032497062623844227262062750677598879523446207329493947981386438633729195320147340504234406172350250244684050677756780641447593878033269929073701630007224134090763255862325142396709683745695051595381935981466615633035763236582578262320987023378082944313930997806523608424571263397885327196199408476845557841913815361672007622356028991616221629944763634865507859817538458996417780766666088406428821714299845297059659556028983748868262909678456007476317257153845955027070557771108451461412474318617403059642002106276103159096512895788373967799401849154856084998652963253530319271493624803662933908593046629050159605880573096035520825655160912336674232554283636791715138332859595485134158552825046329282690517332292124876921816836407678143878225886296874575397010987911894633854369947152509115007036929810993649108141174271113352246519444680266300913696358011971432118804205930260372726100312590250436447341708459113699263168913062034099483800738103664311037495841204131413542731728382865772642367751943963302750243537848242915200480362990651556847976649753852891543855227439334752593290081478716397564940253233959716160664558337346472217176800858762205486476762460393424264325939072397710358633847418713620037715143256140114197945348047433120058893236929395078043026810035308073416951709647047830389121294351009763340565301978991364426046966340049942994666274838622718750479700032073792215934412947069533609595132183861359945235374150067733669849137559887566272560719648988934850683440504163032530364375161574530796996051678188175945833425970415632003388069823930966247821779809174861052595626999484861109732686578152078932497284600216637808173967670083940270938234097826837435991878901982296899375878636243967542717053916650666685530362424191093620691148241775469557639358521754276956865908005938977938205491320603786466390233488651979370396649143372755500984203357714407592682701112873115697407338221592850232301757452219051296946457513175580149799522368666183138867549228964339300597431581929077164832499761433171224831064795492475383095816630902301371333860558514854680847272493573671212575764021327585970677785537636454004011575494144015542160738626002408408985505607454061976873287267778498755122091028351438672762219506860803679386419362719818057058898719854205678247986933660221759479043004840706316501963823245868533347953616025802045514335740535251897498872491213206865941689502874484020703908294844315312147304273359815458319947123407058955138199492592342122457407877430770588093107099004920332346920806128486319886318962206931515687097019494782752514064513195570617887219705818812415640057192496164027379895423704740220553885150427153391340110393076980215274190116142517987633879869971607127068544996142281118734972844767811649092406267681568706867022142429435688090486877125517106653608441871285017146446680176184129127438761193775782317389565770112493297150049570383333919112935152015638057193205500212405974621577498947588042009183920499001119091006408650368325789247425597978340276221146647983323646032810254642853554246491172924020174898875056174436832597543163360091094716643918360006798362035900175174765350035679065149976016284354470877153783574846764835765127117042229249022014653325949134937167240886501165863029016214204051809059729659589965880580144495790439344671147163903739565019499944113081246809748151525014222076654780104328301548616783483542168733887872850472978241178985379341296081277451103471237704077507557433315380432709151784245683813811536031974241705427913235216038252102683760560925496240526838650686143381521962819492979764127904874707332063546115843234057025064641704594209036769344060380207097889500278902321275893111246921054438508675240976873846942929576134062546016077907146881479034324391077038521119521276934287371002272477679962921867501362271648744356088834317680440855679606128709866432313070545454454866592828209674016199749290082110963142950227817504819037809175059292179667896097483831973321646666650980025433831400959662365804054697600755617800199183466885113663454986043131268543271417998058016521753731880499497085861103306713175917284064371312693575517720521200812616172017195850087188032825669669113060577934407067803496215078346799350510807115943849320447730758805409568481284011959236210923725468466286438861671168355817560041604477362356387750783665654542057340464065968286695505036153741283926535386515758027655138569298085459773342125830495948228496702616289579484313174145188105981297135619581420886237894406129120416094023302921790717420815368136650629276274030353311288721011244367780414913579898799705029468533078641759570229752114433094900859243635926411372401797576284848278742628863672776494159905518723681482184482591282830725676583291073977681178587360632170866698307625661264268831071990476285483054213530020347219960976415862703626668617210304427249078193087978535469132423176532712236858684148281963990848460662049296621896009371232370372728932271593412070767287246339796292852730351524879805473925848358496241304240429153153871411188815600675768969022366476136562125275831506548039763658051899507431066349422514938389452698395305018229070675615979776478855005599591227743321550462946729464082870803376732779446406717263882998458347236281565483702551526474659757408919395731792281152455403233808192777901042850533337116649451724955568666692845881187496589828313729046890471242208708961999279436176567978987258051903788988851805940337901189942232995325387029463364527374845442558127279930242640961153483564667840484409051052478072587662136832893142960415691429097332855789793499965021359908540173016682297528052274866797180952873975514360931587511230348443700994320014040152248084116633238872324360396622637876679368440596055914931997084174157371999500318869533142199774977890975568209366483979942133644369696787812855586443027593284647135128890159384240552548103096597019479104480968040052161130237581293062968374001655074067960691684818136085337320030705528208169717299801009750103122544881844948415105297343139226175353553693121682164224472889900310306179804415397838072466946488870432640197308144023390905678869839232507128282927531898899014996128056934327781758234003805579562078590361612556345736445127037203035846226653137309719805694294107717226417055513718819774964406987111764673490316172729080171561890170844556079224250817089682821028020689868054334524009090205875376585191573482547089354458103075964743246956733647542350325244924866452900014344222295757866231777218074740964553000534355733800834417449235957174885729656140497859997859510954307353553963171313302103481840608298554801770199688164226269565369589573839738565161400153394214192395621873340432466366879718836885552660051899877932130374260143553347070411806680122550194711889024413883410635275745324330418044517796834781310500455959524440176207417268887018734726641049231386188082177766692375179430869865614648996422845253196628186487642544583945838740342125307330596690093942399242097649968157238929834107116490105630401407014208563317479501463668891517747935085726389135975975196568090891508529466094348945305347976291147220177052375258300906685242015220045488627771663651078903228624246128823627012370519830904694767463033969685918387065391619608654386765243044273371104572288187167062477685113249991091100110333255697572808149452802124099982845842676866514366677553759589874064685363796688024844391551280799148316045639229665323357509091535006615663851439747697262005144612571019822719959472195097439618605159188649486184985837110655147296409623250804956147525199206511381279544988692588593695000924045772523930494525096592394348803361641396471706100360496432576896240130117908287915433485907652315113344860483344772942591754259579853340188430910304174312567270388418149999433677391830645337474614713481386869343322643836709058906543219620407742827723259495296136366556170705563165851455008988693200954297514720681262872178875905395751297846854735003232715652346406187952968359853422801138581362526329828134887039817355696592609599856277856014352821440038806167504452212226735259811183105276051362487280209364746338161938788729650480922726178697219106702070504017599783065095823065717763545531441909298939572860630207521877265465695639283973283942637731967813711042327826721125830158761271196889232030662683302219300436805919566780748111765127992606082147998732895019545464746640845519099441272841108420300327687736498157155466727192673164003235820163968505583885341004343544047750281863705922858800795056310293197305349327821608562738229009466158955371530147695394384940604653460351804289137939558496592440927858153436658981126551240149818511169503725821378924277425609791799625227130829027001144536798228542906279454738009659003502672621982369201811619484770532408125219722929535904210994692582061404033902212665315981103419301093365041183519177604543528257662970934662441848709107826946107145294161152552506464318174450600197746168478833313083725116235636517951601872286434000977150449389252423220748007192867981404550590297615318326328534491211287237036188348054136740396163950254830109104200841102305954568706850378834036946310217632547886115893380784043621076764656731522058745060560189657469726671834218028221716312021389129759273424055338940160066805253250655797448160159178320101659800016915081479410635706165963029905829984006942462330815135317396441103913606586796775619318810184991989082105098757512160040536742619876884073756880347339603398731107050547202035936121797496082971942274236689484103804125979307765916335326020322002044928644578841194382321933455773142752425915074061182107007434449243353071195217935684448277833034997291737665415185657893631977270812896025525919057348862718381158717544357014337013186066767471466380943557264611102047729591607276290495562218916956789474062540204487483887504172544491973774216731062328705259838898173031057329534653181371316675127036253887167949464734970583057323210181505042233994985725409823068188427218955229359825735515591955103169716595591644392622487215286482196701306621342223214574432646300298421395773204070966211203707022633790894183233133618952569860195919391394073898999513235474180441688808313692999797157578688943360557004370668989219486201241277646786939991002878530398615405438517022977519604170320030286777103460636070222071073020493561726928384084955999097960402391018812559031498146473780199685355677034106442282255690664557722349530759184416849635947469624553123118157243024641923509743505993180506585425884868800590119444114109819557922026517638457467182242299767538977524389902905502604157037017307461641894997950919376004526557731873625138257390410154565109378042965574272466424376925149260250592404059806992177427753281541555720068382703718440788890691114913321279117220686845032042930841525652006419652696467702886683763292589640458690308146395473543316868941120577628030859500740099862361898357084713751169963667563707112005293678300335208345507381089461909697998429774944180776540691238368600792787408608218039435968292533967788700624882809009293919310274136783670231444250973353854175673575131422219306900917616867544071505429795125828217089899350235093339194852206811616048664802685902468436568383180812095592268094934873529858172572893031683218052017348750250819538123693979344137651940605076402511442998604690111915385685570275528000383914427752460508502597739322194711113512874988205567207035777523797414592570833011090561464582801586765917490960376241101043640724470735861171519636454856807654037520691655373006938840885119354810927932722911373583443554346212630617282193083163664339476992907809988481857710792527800308223613504809564837999026630300720315495546850012843468949311469612091551276880366546473999609230674059608722312887581428577265389564720675355073522551360978211361041726662299526111471720131819056036722137588512496395907633038344914616560939888595116879416041211907026809128879653933864700852838183679468113597587735919193271678897591268566682748738539350904667140275690703003896829003729452243887218680997177675310989051481007487021188190883041797306806068874223820147443443435618302534673186288713719928255770854154331437227041638657014162075219596097653725433535834714299308956017797051087423046791871821282398581542507116739607656361059585105005488033962553130906866753704339070392645712279753432093145028046401681855266159072572593287032661262278867603467830307629937155646376749156585077114900901238033129290583784879585549449941933038062380752589995414786328270923890841922704624323521056035666367673353616473053622969991501391147979720888617332458366115782928229636241988381164008403776110860283367372809119136938576607691792310924388943028646907983878998152203205078464237347824096134078620602703268913370572258266336869210059143126799296751485507750587058392090071001176974158829299224394922567421213541823558566332557921528930850291429389510705481853098258434986485663997559935704323502448438537041973765583920166937887769108286875997936292573286907570930044536683965307825293982286984296673376532716735075891588608655471804345295873239194861764687773924769818703219383020910844805423478152717649999424740224763883642310672290889350420445864211018544552422345494971991005595629680131241118856544197608927676671707270626056860093995244760550388941500598976501656305569727849563953709166897262485657320964923127039169750993327812424853441104816475225575717633853916936376401450294239842701181100368705509299801592964160420754768822051465632003440874556184505651568230325935597303406267651277451268000136574469860687119129971215138808811381461494858037569219668387230715004065300721764197867734679153070681247083604092188992798229316704718195997486298287316796934995000187160711839437564256109393536476849553082291186607958141170777999842538755807348104155441074443768400407039371514687027172500128539018876237436060835317625341026262241118483476679597276659190331805912335213478847828087376496189914423088634941733518267596123510671440737251236639048683821814072515366806837432656928032654110383347599534797514000544494396496071409306339754100521862268924477895774008731256642754406244962751445246324116968016872025862448063668041661203093568012071101926753679481240330299317275444506924547748058283927820713504720288077495910142884019374215824192422174541951322595765199161105028635237237905316873882482569753220924858738774043483783497356332610463161740012522311517862063926591811623416617718487761150830062408488334349871953094291085359086866911677426765873323755673669947455997759583380109429475946255643907479073846634691818899433585467845516274560413592554763686752140813704948737995936829748372847060081113414563865969162099022429582785904521705948469240586329486005855622694904725799580877930533725791397413979653522935711646102243147767136782904823454008707566124921598121866754709216777617276757389243523947497848871307828623439443314738008107273973181576311356309791974824068649256520932221466256041466057519141727105039778143794910786132367473433730816911401106028505585273314707967406391311079090888369682833803700828724394153706233040332498090243303050405501328374647297217030689353340252876073096598061157045202618488875304868215858433745810364701952654848380425462406567103296519287555339671812806765318720327830744889946059164878734030259743818359117594721125324077135467815921393196014920990949772505952696165812461876750209609631864796818881828499230534986798489284529426261380450725097478554299492517505716950895414336038847371017628051197187782514760849747516344204244798527665278478799471049251470636715106038792954344127506380505433358725980845050368825434759916821125832500173042514059607003313530725942770518059641959123030152652377715981138391244719909475703209189200262747112441299449432900029514570468988345331259899724656870946683227484121450344553563775458640154852133968642899037509031374281552592508321057819941828245541337238314996388895506757991610920976595338525928356640896062261129497689636434980997132648580918065483503348929645136678118748921387917823715918044063088093135334718936580248033636433422882702292164480378223662039534163544350969713746331523697290519655878871542359339820330135790448899374579913456548661821967740990957917441239334706734991785849032925255549284786975938198259408411852347702801962292644304428401615150684079165789227622241655528099904794175417365777699158213939052706407027487609008746425347287565883985594358794286497986368991368624461584846904613482249179847179984222974542765963071752845288589711137040717966108481727711666724979431444874501953946486845509643381320513124394797519687032322156653284113514714022697314055803054074026239106149763357447808901151185270566497699723795513060737975852697022981893147173874423715847603074753750743589504508814170736269059464799174626905603549095049884815771140707441965684771626680051572668950128755133899674145648027079184522195576826275193655309743974435148045654115507927038603395452535793920765991371834671871938876920003014186171308370441609886603483717206244351422883054186585502854329150706871345217284064881836477529630169058620608891486855026287537367150809976058799497852253591364571579394401091601207613115519918216168237153662174410082968985603028958801228518768705470857225837472811458849611462304033223622580774773486629954177471263537893311922320741395074813425060170233790611382623614405425464128970348764287864633312778376841553609157514277537269890059583174172452728560810924898888705096252864741214425387334561965245964052485274071093706446446916159324816975250219046008010060296731039674898293873706573530971442206646968071699365039163473001683005823419981509869138175045540198618838284107385816564672162769757215467465197006402595124407770921346396408597068080212310449801026140810171409244617393110416871687525545380658091619832641061345080504004655468733953250294146532087261554521204266081545628198369160264930443492166571676875857080051387524061659065578645976419914521537054006505260310809752260341755222504730182911724956605053201013678003519954090450989594857402228733780014952935120726106392470746839631077664531161665172829011582711198125983800300762660122255610635181556207763112606025251164639409069269115722340767973170599908673979258235852474855977877020272330572726073459156625778826517724657337005177191462849420660242472954050270078112889797126522154768361505491394124586445539706976669441973353702811098278208636923361816041905180903617455421803084318660090128768954678596627348275753518373670114875006676694980624679867974468832242318911578767254403224467127300130532837534103955450522168440838632088158170669667828239185676612914365744922071957902309018413984009213215225283388161435873595530058181609699979340374390559570984278914459261215323109850771407046237303018520433576361388654363168192235891168271975371328098294908395696216074907843596166491729496993660026844952792804957796869520529343270292278703169276664406107519516228044631445326963040507577438093851044681147484534958066304855696432240196572184381860489718070651720478823266366246520689154140363105446265008427647082052439202437474792098131088201079713204845855676946155479787670157592887130717447687067218533969832189723199851347394499243456413633863544004527181483895430484707893631843218742997948432225128437036262465424708684970808530194579964500823064150746911250451168849363180674321247203405626306439073511388993701755896608415993114492069766437307297361278384354381097318140899267091595372359124787402331829686850652337705601581760995969714786401694560153600736901998301052984761499949719681107836850356883711741312492233833257342652260125973093967281147123298083349228830181579568929751997483411378272055834687969825975926098693524452447939609766094294315132797410003176782772776691724023351069278068707235087731495315936427170188109229236000240996846555917815497692349921618928568429460685445198596564774635230835398026807647063594946538587479582934356640821878593135361075446400796863631019512107247689373799639202782814713645951829203327294580428929693390750288678950847823090679051763555026766177706066791832651945274337819156769337937462991081473712176135139624957742339691174542575942375544217662224481786458689295558608536057280138015966879228223872310551140516642956783643725624303372672093869763255005915044470376178586642238944614628939837278040692789966914913846425289806053381665831267172414580398182979828840561402043951159367710021535368852471330927900455914065734800339417685433988798974260253759500300435001973852879979470343147166393413021588071654764076763261273221562964067589635423970126919773777666570708877331479668829283872969988698056218049420003183496978896095672396314298402172090027791129653780335432862890343275124140614699146823681575573598843930094713651494438129749766844976700896621194372833607375402377352561319406160352763810645146281397287271080014880647075138985246177020753823100517753198539553557980541488941290705796998616597920159583926305978663044980068896908672463215837209561937522797872793304878851124591331973997335937486054259400185597665621418858870945006864835875525827854311356926861993999277379665696914542389463576080744196226382150210121090896846218545825821533212304513298469149368606097820101275548666160424803384434370942079247994792774180201097144211433239485982235539918431701704978054980895007992784146003085132488309819730781914175951800457462402496258149982967173190652799120608109809902424818044339119985618486958998164331250289780931260408786529843970098047739682562494704603160534849160876067015823032677663491241204418877867495190976154295317437897109434901762581077056965403679144773490057281969753924759696250766643201725299419101846424364587922512636055651034359021499305372227004337653524233028035645355271363052367989863935477155193770548837078298869996682541687780684991215622925938773143418336664120203441339507874296664362070793850325401640240830790037523900015831101338470166919873412014034017807248382221580173300908381673421585244248646298291078080836046141418175241589119819198998569249613911430038722130159758736086587014439411769106290163297534743872840823362169021182738108879832562669755370415934331342831142528218553125799789589379685633662357836073781623434866426785471428016449674729961893654993661745206272791402271144997346307273269921517379856843749218852558050190742663439266809812195022368125225253342676958215631089192934167796957778868075722852458726829120107048199846333715066465926239810971432768816407701054339083188068271449222841130586786107471967693736666629530500143497210792374140950500245993844403836642187238730260076581112283048541026305794098153917052015970904205119440458167631506273407023373673712245807745265069983005656191444150628497370292389429714170317041622177509558619553141850057562316430804835327120556941723761985789000245559372665007998517154197143559223852315062371867210399499619767383858886718333384062376130625394318349828133294736399929914521600346577573798344626895170355537475057790093217319768350976565814412885524251122982534619983413723985298692843018270491052257069135435586947639883258909856544182158685892175509121568886259366363713305965921916780333866533899970493848874161589953383379714111673370448579436486518200319429379167291059316288383691987354143185885053985635472224095380142377459823611521664858796395101305046054355981006702511831077982588495724896354245522574683406367122858049509400503149950576834178015259511573857010625752530964402615220337138853831765239450979071765651615674213425014206458053472969266631989086492403739460297700053172216735674691527578046098670616452175508443998416343866069353735980003029040101013003593433683303391192796426537024538378052142965891215186371333097672169060403089214396926078319838387314950116208282751962978220166938934091882766298893817283817113192528491343316980079538248308049771388288924065358605938040863541304480012825285415569926290921325094200086773829951377242004596628337105441836214944715839846386869719421771911998203847732507452722843286009370316898254699148282248110422126338455785912494818663956262662797441244756550677378273038263779256708268936981272877362278286439079539375665508682338676609915162834407340673367026409011420981644577147728547299435501191509949223110631375657275483250749894361357349349457187468640629503761959884964205533771079493019126361937771099779347561659586110231850161489080040085377354032712429391065067610542467674678644231510243745037455550816864390596312093049034247421982239755996871101255005001770362341544756264653413567036275387062907949781611395943296192788165474855508199951509038762872713912594995735621011443969152160975657886004477039298558704173111613092531581495848858683172138471543645757279364901221965916461721593124296323468093837253198880666224552751595902368799847022691443519682214343648939263460247938099728983347466392941003906906486876018158156843610510897969928703273684245035451241027460186749414247460657374772112996451778671733543159268006562405108834579274267758843771376513790317763292010544082398218754574957866092442900779972814190289786969758244073356920496772077494342131720478383810540724780176066109159408275513313837945421672239399523526586830409859826108669843134021126839456803572732829981784327670508852173239480668121576625449581886349203729557615460463878609003507249747429786940079821601033467439904930451078301883338172004937764108252671766520462850970113591335046414548393989700124898955113424835924177777838666129902219311539152924295016931985491710797913916115040603761925434934714032923843468060016784770537844691760644335888563346890367046014415252989365840601674464243656265015462460968094200459221963088342534646367190474760379140917225971104110987406022294828585363923848811158567573169905865308259870139267846332665497776688174204667555369458216824282026651151682459883561320156173174635463353034066567607264529676700556088369917796962108463385723241169138745239591695601945532185404952081017371045039942735535323999833731547763033991622052878181474697061054331747687130010690549112960286251812734226935757048150947177208310309685867155714561889318784745767723164134699744033048570654009562728161849218683636936934371208872970257070059993348948596754092681608831786533913369653948385367773821913395769008679141519497771257573678591863128838482982475442916928254326567715858035701107237890634363566432651353726605178719656642808825183086622069465707146278580595456811544427444400968257211042593788391042036629380044807072508949165321710424412910948835893609689257613195769102846497596605339041445485527619856502004696770560449505354929270280307212494541060367946867504098429964693209416216840188653920594681155392549259769305668710893033758364605747210498743680624362409253545062456892515939373053626558917918003304440911947157269657863220918933752806061394374453571804345862581959190085493647182993839161576729716420765702817531871194998786529221475010243716577705220774155585412775661046144391288786635684662057523519179710740123987522582982338582820477084168378419614634670907295494191448346990064163029577158393520077923207931920397283555592212736603483628856323894827477248625851917014362305727379998669232925094603778520951706715286192140998523145831938822151665704121854828136862695340774364438972038020985233594883858325956523094507429908476000515991674798285015037126667066181079030417287989754669125333550078132121244203357247085498024582370574979708864064045585955950014081622034415414528854845533610821731070051740550143693196311092787251587427454773860885948718847086977253314086276250138457696472161360377778883039236339655152728290145678288757173165779286090218809912757036008083314388701319894623415362003208011519215515742003624475886873704949932847079289290265309734321898536651417935350326555683951983392690553757330741163725824446757153975566205866371439665476894189026088717939294264597747594566099214946606047293705880915606393199155976406308464872551799620347882851444162463863215444125037993003686769037311683578580285382964999986368864132619529441954469029669960142175807920140098054540501291975432382735373872554169787004903468319128914345135167445203630546341068127610838700280788787854296899461457522313231636471592790847002334954442907991967696223649522215204319735629997109544337098354117093410581833612357022808317157734177549382448535271598020977161805096945830318247741244069427074982061319890194490698190107334021791544413515709510684045804122203571568435409147320819459113906772788814654331444014041458831933629660346149243710969845361421625594528527326129141108895812856746145864166324924059086789758921350935464356865341672246082949288638275957406220809792561901300402643149558930134738165311128245630077412601331753056325843299426055403186684080264922407707549690335944527967628355044407615371250320119342598206598068522973792234553985370724210411359589400965192994238534306763911164005974459421821150812502271345022746206646400676335949934714198829742857090234594154792690081040441504901824193132196705901680017474017218408849006610759148738972679386426619873395844291539146528583766001810865603961652459164190731163830925166218758673762744226766441346057963529543173954146273316441182976786639181490229840756467259910148642408199855865983756461703852333305520861285202890270032324947083139379568426627151776744096601902544998512565955028064315084787133270787473734094077133665547979590594340484034880516389837152688312459855667184996406402370530406944634917287492146390244787906918958860491806870296204311605590391373701367099285731349701520825375559586648096644258126943620935748902577830697827341093752587047957533702701659462681445103915025368204186749306813881836120694967801595779717552851341467837355382672612311832035935123127990191341090420849821764671950225039684393466057573638017265939856348678291023866890903699937962328509440509498634903730406231639640065303266506926681697020343754838704706272384736532195110557286862372026042128610775282266716392734778119530280125936563971360520781139207641660513240048667625832416435548541386378238621725899569207419988244810026063917734649048934785349100031857155592583067517240009194868818823555212128165264460899281721774778369005944495698823740049005735054636463366369268447879958537470269141187380272644880466664357558433884844678969183576425647519482799520268023982210627916790420476491256485078991890439833868819110658015852067249114122231158491278273302282372511896980524796077874473705052715136151106326324091593507238193822434144426975694590662890779174548872230498416432958029353705513007397327008281244221809058302440148944077908656186667718128226851417754981519014158895610819529444371379448638864099059391476174534493720120974555480321600828498546380839217775737901992474894595229792455689573805931210831873150972599058393875633621991426258890996110706878613211012307095986758111051616103229866729978451956641520467505059800216318145535486289314151039551509646384078273171028393180070144746367823786785856541085914536682880613383928955719896680042560006864488508181970924925199658521036717619443569715232191221690170352742197323972176514774458093693653067200210046856351023288487358423141844703271809584002471058909553356962734291307584581291317265135206162778377645612881033401566225144342756269625898081629686120861577269834645086853253262966173044024478002672880953477800633312980358486402031566573244027312706907247883637165406466567820046347253612289642180402815003965580887378824871388870201326226354595571059584691159842577473045089541112116581966394352999150070103515235577857798097936045507407874653239799899963974811823636053799030400010688176083608783181808893109514977381342898934746921484179309968735504008750787665347779856009544800613703750753083184395510190333279084781377241739002555634813830470082916456351901359558692209010007784561249284687572797687136317533734988374960589979009698265051811440216150149338332344492925198228258391376395381118972459956009850257800607331699406160439838763820977638491157813458858313259742902955785739813535576443703870102622546740692246244157843812643793940080525548333332863433784207642826584906567995457503635019698582381831833000847346653734953982892225367105103595068540456407802390751178520622260080725757911732177661106918793372630380920472940672157332338439510249304658739678986299206832189939328182940338868721138539993285654140424330836435214172350579620151752954970738981839621482590865477069299010185571015337427326551912053724883626710539592247950231591110651273697500778139726665051574168203780510693994340302861802108969223337935363643272871945802737554047172540208369573041787266534453162426144523785247348580588752477705994491500402960117330499969835471036713420231537010242111052549235680804923043534442332988123399366202295816051761233077866205276922770054690692965824251861896586317808524906742507632804332045642484671927474886613101146128276725950153603050142159416913965377268218916206932625735313917542545918700329668119394136814950641371712432194630579011167149511780125296642219546209452394180086996816333994140838260705103002554901865564919637185996555950241950932840206378013405825061693849635346324893237137742806821367461935608113029219399147142664902362233394042413229872670364666746596475842188008420049755507260408309993803725547353769435454163349786611296103595456995686133273739246363605797059665968121002356066008923112225693754498848126378764514326920851668968361820713956874211746273843798746280006594695917281324208592156141157999993815872247268927202709120523096476766930660713112775228202349864801435004161233626773955046176765808928355477394791547841310731581745499862748397246593990949780757629650900395275210303355682883948742452883055664415389998536467524553318480038052529384236526285502403797176121551899706496595297112288852216858077095359248751640011243189710307418140647792754764917643343668311085623354760947673532696114102796098058794911077021465522254380411591099956776262866818368166872265748915157193001622841131844188306168203231795202044567458303896838433241757502967373335386183985551891180692570077078828649368347329774260804181432919481233232485480470769233943937159276689480506648520998679908601959944274326594289217633596547372856084480817076802356918977709725910456976798802948807501860994534703372429282210025997213713792567290383459236204052778031008657805562642879391376564037650848183621560801399045228202578337066980855421109033309899548552136523595258469641906411351137454876924154491300327555533351810440839687233664275175563463588663996923706550137757707280871215021061821951803727300418029161745176973856225060849461914926628872006069316769046388001880201448405372408685689338451711591852444821233516565835265652668945119374514085037743324707786598524433715945620536167419514283110500928200138977920740283091513124000315425049289772904710404003866680130213851219390705310819714343025482134938757191739681788450166683765456673621772855506903454763076133932256220406406375438121937084592386678233487057906745196362712654015537069385561271357689515920779880335103661349777237093164206683645736995186365407861580535797500988445928111996218843682888479144611475484681394908704294383828943515676370226843172851462678496809517349258262198326941711814927863001017778927502942799760554464939611135720704710077979291944255038072326392305033946102755869637976779753903879556526443141495237115330246684993331335894878856697510287257824472000423407755939896722814583742830216098715643938953225111532576806997843728641054992130230639341372030506444469742154455879521807476993499207277187167218166380556780669235958062898588330927448116511716691167738956357529681602002938795136607718444356083296788022771323832909854635477463826389865772315968906647729086403038752016012084976925549257045430913160611097702520891102420221901920678849927038835083505526021221032927767688032278780324236756295656286417032923061793188053731396184147106183480916826933466264895004601777791700910395161236273784687725794516819196420949415269476096815418974437086347268463506498751623344331121414678785513125022720379725151364571874655033860340695787573627994259861919566286484334373513352804603971332748808555080293154602505176275519963401244782021442752714880767324265811519010157916015236584769872258522629422426325263183610798234904269619861499721918218118400785876888862984666806832250877971474711117010597164938750199107678635221846994560996739116235697438067528465136304852242309649487579025989124820540066763847647736464505420588069444116106690117594308527120578149432039144489068229314695345437751607408553724249207616911860961363448616111697340808739419243425372189226248322575518031652315180822086163585706273088550908258783665623182655333323408011991272781265170730179417841401793364761438657849251565485906422355951613482829849750461974846039744071192764778388868962530239536290547199584621254974436668923701600242336881344348304786873309325820440577812945026374196274246856968638884668184326810213828580893392805480850745133264463754367416268927885998304050796448135981472007438502052802112314154807163185411455767768488042277488266590328653305549653737491945559267315671784154313821901111880804537651544142300774389673350865222883917574525809253138449562194537650059067641609665890697003437500180120743537800431753512964883781501675998968431237459358590373610750015047135503893455677114257939488741246795897019472626926742341231652574333103906158405578149970791864289424794841554984504057473783558405555127386009564993224222875825480543537553459328724279497595508902533036855443240544795160815164428961112558832563892318582049022854848020727118809615595257782305604610720841778976198604570998595976465047346053152043745175844345029763545905238834093822732124602320597557741095437570584309934923860088130831065831850004513347329280042091173052554640461246383341930154291320500668052845412054905725553645530265833451149952242696222471008700725721014151900339157343277604506013677355010313091379090501747198447416666130946901938035148340343379119793636629572954209280304093795286149574233130495447112525851462122132547374859857818030897978838132418046528726171818370610872149775580731724641823817878452458690543205839549320674963187488393390083148216688088399867863634422292862918872185879363855666257122022152929290708854081875516297008294204073578793879771227014254465629284899069435134777406795799969148555883178140431904760960414576274956685578676370681118050400125484136859487742440663824627058156466147568458223747523082713844790655465351208252322140908801571955546409696588299471615368549661632093611815556229677125383915559024907500079691756773042904808100892783522602249383616359216213205842593403704468271572506153885116176946808094634352266878695304334259903932007726743237680962478625311791435673648203898574165436406237007186901256112372567089428245955207191659901338175870545400881732144306770215675926486129779069754253548905164967036637346456168494454490976902544991253959620976895081033760027202537830121745415862132541370339235574742851749553561840149078754505959895578359929688796980689911524246616822596367657943732635219693088064822914398751384799440070013102739881935602376412206566390246343025928523475115472889604775564864898051183135433551334751616468463190443821495303852553670669887277506984737261474710621129095431188535238944520549129554757724283974077609570054955314079577053365377909925731503565379185619208359491908464164715065302681748228643174089812895070264490007028963381495627913375266281355091606117298069928229170078779920583742041428866980731058134326495267767408383318952803062509412352093127756202403877308062957041786426926633659135952072016586980469694331440200554110143402262652873144014230705242180684006823450199032085146351411371494734598763278471922294823523037274506640750729578490865797233092162749958363453630656685585960174864890210078968579908186939274661851892256527026396191451029630404770991437850900259663460127094019015406899553445707832651101425654626693112388841888271330884663525853074541229713094396868808959478639238108043398898643978490144878924275029447629991894519528505660270103410738480775575323184751797002237610454622870231424047062382003365417566502999841858021445534004157236685468326180894221984257788250695335615328662648838572450917370367903368728438980532163867430975540460781676480921104544016619598544895268309290926233667166426187106516286049536639109692084696009999403255323408794939779278782925913959807892640736551383924865543297323556709292067365010059265565896267275854722637186617450025797245464670787192047248958185083645780196265272723643177658147841430249228757506806562687104209593955018439642251046393471849829346000032065459804030994957382468900019626727987606751881677789639710297149528158874937343652673514674412380064256287627408197020119884674395261429534934001153569583783729648540260881861917970329246373473046293637218390386475508421775704681499437301292131567368264382304037315547531619378615738962192622267480989051866145614862562103734443644038452646550907081239343340084782889789923438031203417713870347597543866351630927954988937968459857285593390874403506074640145734472481094341778109036189888864019358282242597630611471907697604705693117356427601648514962798911903632652676236162449180422593120560458114865571785332897257797650476694083965033954845395431463766837105016684025877878006992770832079028181820970018586489914633528629621204023250555734580506865641746493557125321084869580682490655687397716797865765314864833080500758425031709800767043798545461954444025722137656527404993466939406228153733708216819522135413740112728646595647548641127130787154508724585292916995023385143161877689275141365501283383197302281179572371798491373604505356918793872313072036827704333323092577487137821456414524242914326451807346627334489054213608908534948176213842172080351228566267533089647870535657654525828488770453733077797014907171932565724543113930329590420577831395032480534440384938528657352738512875439902381209961721653322574054397918008102531673848984695854652655162083643127776616207011568695078911951541221199075637279980090960509971804114417116370284614248387267871118905232128595182198529691801748947203598178281123987560775987462324558237926892953158288232700066897525494601448138195246779214136042867488591955390179637850265421984324399575113133395993639768027176426334011840060933891474407231741520967850170044736725829025598349142279750786596444911216822572828966046467680658354181805792445683576064021756512270405599495546276577831738835161105070888635791893345948184390012537016185992258838975520711282439326771334139946852888180807391232965591868641452223961651160813296388789712466129244809673029168244466146346902254479769872567437047415105833743257297177406005414915890673448284091614999969768582957974117567829087435336947159684523533844292106823873138854684559124337541161373668808273880409018918439144243562546462497013793799745049355032327040560144169289752572002419564380123939704736202390076698138864406115383831402034755876215136811552838518260093958305711848804327757000972202316716494649036541793594192374285873341184099261716313837962482844957993620927982566828194147814288281315269291699305936181401170148766967161282533170264029479347331489347986216800400809256123701460283687469213992620509023005738789571472871527876017869855553925332716253418303418730440607783430057153137507906617648476960076883940767146910004604451342367281715020068733228855399827784046041355566358557524330386345499489613167957452823486605305858713913194260811672345093922951055421645281613376651668471708236484307830042420332118266108230726369687836248372413920990922519390307299935073825371852955481152473623673693308773581434472685885047921971986535242586452395388006246118511700337163455428049148459725984851905871919428245879476738352765520357132473034915048720489213369784804284907750751184928893228396079841895820442208178951068867129956898721400132314391505661166903043189216802422084906777342218961550760684598275381740778872556016953661796486222086136311859327269544148571540084733865826452372615541416881574760098730813274643573798656581306134047564771120181801397787435669093604656115709026996237610384731131883439117423268816610904921349235407798678327448405502212412113921999780355110580370653577595278006566539784316767839085525852598189629875967249231733036048697101680954771731904286611847645013444183141485858333408018662826350794512324554940888849000183285914182223638469406550449029975961614706071351567291515289375507744381924775503335584251544769115329371006478663875295762211183003580192258916269697250218989182250348343233682367906026418718938070474178788350422664482617970491380048695465168234929901159506850718843812237293083155011733459316272261335161338070519935045482164334303691985123032239960912063148669635208628812917648478861033895437779700655069393942435181276032166295036184660716018703389826049379449869581691169200512626732675217786349831662562731881792821306730360206684210817210848634492180620666799941892424415021230516187870694981976641315914028541070570187448952592066329706003071036642625455522796506179238514596203705843427235344633755937284606858322830970218919429570955662359137714836038881445648990174006306800665846945771732173554165784810560821797595005525110462246310110359826831208128133681501693324882679024852983082163364771752127290358100073613561940221770510514481304982744157426622949210692249641539174589137122480320120396629872216383711697874058191342918704987996332060374691301226979870097696600203015045982913619121689962410265109733701275931733561297569512024457382707471059470356344063655629690121548733711870526015306976976260801847441577534819203785487030465675648612278462298835298608430805006222317367446883326400251048015592179269816039129107142346515435593826653350723931570005503306787019448008165898997077182292327741666756727494209515117336840195159370114040805138675095723815415411874326296954275329838613498739464892518201115871048472600944763864958886720619091533378049696250874481580561318369764682940027452034923354125529928577704658934380479419088515293285593423299831643347410643324705774498424569300064803747093913454082433044922326467189968398944692850116543721628476234209869120612725828282897542533959299863625007448765924889568101710065358032544169971305278775148875360098252333741165016284756829155087525903170754742181522140064127651373949141679186415706343324873714352556509402544376634690190184945845389243668290041782426443135431164113386310699509511652573649956698967296204043888209037130900774739774535093422602172200381898619389348952101243010994434907993216660320374414144039719882502274778284233865935444808764025499933904268823813100372523468713167851144581803837966158772778559838769907735879157198064623586407311613183391233247058044554781243561884247887310323680472000545977440663495826140145000464382999583009881276118087213835655575905953509023964142735978877487238801135151759154042329857277551046638348775369293984926489760807610163138997316599186797126854138456714723364967533077142475393776412358157858678431986271463043084257296131415195585510950913826359872204139224046880330016607355947441281236299022752849102879605825664250603457627964341336109321874512285925289005778767947825735280522329913018008461526034930559590268438433632483384616640293252742837512770843711074866580712787505721450727511503488739252246724674100747041984404360532884131861882616395063801992118288891660636845407113167617111318510591303680252631436887214110113185309125225239265302317251864148246301055045532920552813858055540918441735898197094883251049929266914050262223733035588425955889774200446753124561485103853538795883886747894729920213039857942439921596662687587172155626609902939860757189506386733281025335578926890174403431575894846689651593548320450734921921715228301826869010544181350599993934183043547619839222351351144324015183186241838829612551343477915839650142006109997780317318899887823826040058751527321053764954456787588160647850944366903325135936432306779176595808132308573417981208781138506647501274446697085870079565900586477536590643661357861469317758745410979339405168366728350526061137075209481020865012415581474668348390921594935013969196861065133593676672287044870280406660830127591336835617415686422982898356026795121963887366602014744103944160771951828336514229779584315243149810356286057686684710781293472179239456624979457354478576707885334404450853239253365252681297887915923129744593014108273139379653750302565268627909783225972749130888152340148014371340831797132518658508589143820048466291967601125205416611257820254797100858013266359261209008966286470590216493401974522613956916907941011633354712281475939520419162317074118678424617417647366156967792428712644786725176789058763487244079521224249781353658000145300836306162473645253618026137891626104101410696186198513688194955441925690570708989673917666575720655984496037575966460910932011337977395224376247008269791812888639917908169620884677794547822612140704302497667654748403522103108421631122495384157740118513897292366034433484963634546237051158649141454261764485601708974441647821739372202904219743272420358800652213742621722910118776726355588675585703094366649014682433347251166854723188253657368448634149565417225115891855241266413029545949755716006187974980775139428735051228865003125855024666219717205334058074423108800341076981653992465178324496686936677572232936240702882391202085046069536116543492438251714309730512386627636507016785208636729793523200521155243134770899166461647849475099102428037377454464282110302526884814653497037973701313421503064135206721476983583273301894652129027532915761164228909946393706001290164910139972302019098681170384143675755190758480365558796731905343653693434187669723429447113867177200565778452422995525216203466333987509594205174234114856130927455210856311395020637620461678680779025978183494988974791163088815888642281567650696655950255738146843272934764605105566893976041930971311972176558944866000258144196271125441361941024082448349851055317527494739007025811635703281403435972994957417670380379312453853049020064776995350747555313785712357403486473949513576549012990575930730812490475744748477958117183094442781104843931950216953541811441999429154945858114412793987549729738494715513377993516216903910532874119396234108163018368658628535859740858069125269147717972064026302314587717427586923231923243937855724486502611160908681983951946796284584813720566786829465516083621513384413675054151136615526918476649885644820832540665957269217852182400057391218556957030827544526336990888741242570384288755348463125895637423589183551718343184042910370147865384512855584277333781021174079143778943852019112664172810661396639298261051637761784178607062834422554110837033226317922812719332153976109755164326555247553373100004753997599976194587842215760600095395755340216691865118637196361321789949909787240399892780810018205731550330988293321047036878568623574892623587317968362216847731823366525579151220606265065953817278718855217243703740263881383256063953551999246371312744464130012536363936147609227636700545560683261548443066826322642794898291289187745632832803562133604534998092807737726056084414253339902760124302823486791398802134706980690670859402326071326811810625440223006045475144950886750863330490552663701378116329095982675719391472724115215676675457572795592428234266285698283231449626673615375068015755745764729616489653093007868268196880200952937080156416329275692227446948544431863263506348649834079251460662744699110752288578424003533378212542320347340615294337630946071363679650334524833098687665437249790432578339077137123368135248047557989511927234735049669683632876440157646623813039171133724082492258412271500179920182362697798411583976146856784155320168055808027196693304819439121551926427737031467560463659791445113404006010182191920710556479966337030678196024153167043795895456327684216056878806346592006707465312112059159769003149834590712677824899789764841360728019276746892585058406325592954869430846120703776292577838711536645461088235366691476884196107658025869525568470577730858730110482416765000262935694589374871668418926594301758790643193651592822595306416336413168191330731118860913996397280679697273906735557899787905208883649729103808581034437029317406371703297135725239752021535679431237746207912058906609143165777698494146674149574664071776386021542955869722008068973251515340054582817967550260249266422712291952792825941773249230587965894794788510890111109408865984814597193637907672511147486037782761010686898798550038771593337343345041939867345641224540454933437557140348044465978942257770326893086510054255410515644253098040172607225546148000652895720034263249488597631786865415680884984829089321596548311480719177099485689471828976218070476478446984947687201983695119201255792390332489277338004182484417268223190119575448262879279690150295767049899906232818617199665724619435206908721057823041168922968602326167821985572377353438908485096527577733072246102761965296438225897021080256170709910576305742780362628617085186630398013870930949666716787377283845592471651790663142612603754375221874384592410857172717004430221503686775873967812370320023451327359560879602517828476590688001669457645734204255244914116367894267528173890012275543298625187778057350888203159364939293675402011617814488357234978433378359326169359582187422368473388177855193329654701653750377477546282441061010421563324016370733133006279841689936776420265375426204689145452650062496252741263175891803923878550774637987193721601365837930483978226223054941318861809764751011932829497874091422904010113235781443734229984546579780324943869393160857699726521100882001631244223427444549709982705948398251454793188362096856853210353566798008093288983377358043260135660093695778250356378075693879310221823775998952110331854149843813615872655960272058951273031674421026611659315257796560466726117750980164701758769907375089594510597054677259901447033515822605577032065740832834228277741549135994300703148541169694401450390112508721899399170748985405464078754290148376672972041091198943613414472122594386887006294663758788418705588723527436350293220793338218762988391433358626900054347721282958018325303881024675340533650969788238916424474263913799757084969315406374862749148677845280962433184203005832795504264401053248957946173571761478610153563070890364200114355415693964881947892063331118276767026268284471244954613282980183251218381241593457683916230901567431562519327677406527554014750288060292560962425243288178789466370747337552595687043997020547926956991221264384193915489520234101105095924456340797946608038534709736134696503377131591878232064759107602507339235901836455720983263094420107843064163186269520383451048441166460877993106558495595838286221093820641897956126104719359301813261651977500776862711825381437484278636931345024926175090357223088632455871052733548306822595531565596050383399343609734467680248604489004529051944059348589271927058993345838303953139066579104549263481490157108110883735331887520742795166902027200224523366256542644450796803880996236812705615320445802713843494112248155079569812056670264923880583392307589740130836379091545730451115608439091330865557409641099197131904429188807081524486969668928029873348607475753352602459133803714867458563606137501401195379333444930532117456303339213344243268443353661024729528054145652926650816046340132718107743928670125833833281669454807616678357628979943836572858724878268886539589251171932546836336601190944182925802063580407137390615332409495279049944304577024829671240376514290934958926668532334378479538950128223609481575772292149681720529556114666896146250522736169782849745582500204590820653749242368742099619396480536913267189129811444635455352099059082149207554357267157430628530114502774989527811871952683070333232629942276100832886686155109746066128909546560128231477372623056268161545794119350467180375565530451315875360749428774513826159967658760033270662177367348102909995443394886557475465098941484277817566322460983381127465357975129001790845172799950109427097891972606058514258228011674589584884420550113853252325442925756932936067177550655484755972792434917790964087814125386722739940965193436343377529323175546620679800214642163785136764037814565031974786145201543677487901616884802642810769749772961481066800207525108996545052980874535780158134867688576872813600500142229778959065488260446083218582045063341351792432808482236108455638984244285111947447011476644227470905791301009963887252585990111624049879145144456186746063358805574326521581947849060234291302784709881243732399512326449966476702025706244129649869651837957501505055257659770694083711809339969893590994713874120464768711684180411479418430568588221293155262383078340525009766807060741131052782724060984779011888531563096131720197465738555641884882741391199462441204676000726462225783335714927391509318430878704846411385214077006487199944276264292929938211140078902535283274974456616112778421024492327594990345329325008726872158137701177578856509042719306948636170670650598048110927872842573447166519219139036118147064743468450494008189660351474081289085460621553481712327253910596621636538336027770437447157879135599865673388167215865796907432977126716097275869625100946623763692647521977796836308876400647108147197154360900388691364840948542836554647037237905425848349867016514241990884782113610722166598700144077745592555294042858815714041026459242734926160643729385214600698123429874277662343803707615543678374002402906469569589171799426202465967607940135257985140050814182737857371694511799129725493458172723730693488407898742946917740282844159471785747328366328847865153190035717320059479312008086722888693526304621723490698589193681996688074839158742301897387479260932196978203223945943441396349666315559091235703365772451564128540617768516334703661860905746471408044481763630347046254845413376951741260824433405581697337943977922700502647784599550726647503597029581020757469553587362328563159483799404454490453825371087978598714720070105539971164196590661144722103961178941957599047260323824442224922791570279529936492026011755839841655307774871906275874996702884914239718496996646560487405590362514821661782702068146483775664919030698746911423188310484306549486953333870044839756277103728767166225125874608472365856979156806322081866354193605090446143205943398202285418237046314005266142844247876985791211882077227110315838318230358505432280595490948689383109446282071462933364302008059416398902748623770177500428140478106737578341978752412079166832348018126823074212352293271551882575435760063704090671464466207699960999029748285087209943945962929660878556534551473316167947374119082931472663100619210821284436933103350179382281435474490055048540911719859006563335704053485527180512452852093692155914711771820631573470929594941492236999274847468843069185365988780578803729514975121046906608323559341487408596590113414263828118306859374073937484714935484091293783501118773382468217677800999556702993839837890669786378829322492371393905320708474144798919415663583713563575318672768944173656639747920423938174765297060245284796445856668080956632287189237857502376213532815933716907456036348549440925715228874356871402576503975462425677766235125729124431419965005705799489686645436976195098569987138243142241957338275090150548306419782416842196752406137860756633035670302848895933852157424120563361599507135749933859281826171588819307234168228050521438638695134774231654896620168545188059925540455893747122269939930464762042908110097554834463260745331331666868760040121395816298062829878782736956078281584182879041903825783670753826189714748582985524813299627568442581129122245508413654874878266391240519953898921373112034218465776780151199656730323396620269826368677298418956333035066089875187777117588559300207086640033758203708851523216415288733839740955436443236273257582536422371674997476500936476592326670246284414554865999002588437331767480876661309726566719324434447758172232358378390301497002128342307298839247857597630252937746457501002817321160359175668562993479579455161041466706262907359331328016702382579134912162385180680400734474207519782790046476543614677541366609162884499948354625172059532284341729902023750304171273431793344457353298482420411579307574697630945919309705716003367922768573827124269556520381548676797019217348013625776080913368302214278004159465160131723698131318618075573862815690718412031680488248380368379895221594685086127419637191972479183087587694952447942936676361119493039543560217573348020617514778515691576811168021831624378930192149887547520215257845833352540274834430212027477776096340428329953512280574956823925611153164257200328822358221462258594841838978430953726483011492595988123053571787212508228614760495231075103946489418663866438223460632535642061639230188346495005553609849672073543731433793849649642741336077996405486607215079035665021785049412094037077387684383853315580883547203832111524365575091058700052079775371835042809719337121469845130502172584528874147972836166970158698976963684774508140360803963356813991859791417788287196302126261824713476274673532787511867933033598650267321873089990574825782895504495300880046623704616436790176305016847402503258630557408358715431645640183692567969458810301477016788824486649544038724409662370342322190471906881678960098040218374126198240567940296055977714896868800854471009769353301736177392994059404944680304032816814876413136505386726363978825157715490464543564248950379528886762541530037279659807296028762242432573268349930387532312984044639487206220308269282643381142761723993518889071611582405063236538851583568150074362850891970071804847944259800824687919804371194424306405800582504344066056290330665017772044892652026234880365956423044366453926104534164252904173707833935913868695621682210600325869612640763270707477057375336384453893655899671587371632139146415576094629655062186461623808313474547535201060510277973470581792804921953367979036170124570849951682709957352362009736393531268473550821362840770031731493455456028161861649892784250348084119445194489583817623294672992725500798195913132226172848320288540664609540291033886217278591940013844925605953538206796697535366281628517865838002739622848172185145968438414403959679414594150010235587051263023660869536860205460369279057284292531577396658525483316453388927736908887940312910245058843966321048259942277935497863624884072362802265381602740680444128524596433997212644522260500631964927933369980919812940087855976159760759768615291634642103506817671577704474814389581730855763555195221686026891060605717411335908383556168266717676091580887696988380174881180508529013258231972416711307210526292473947729361611342227219916222853727306428902414438214327563362931533623611103734442277706318617959605997948667028065777510253716632494229299879983924552636591805480208557234015323821110390796960682793084760191226813263909211923015301889789627444748256998282142253952268663690846606701314359094435335753391514944273599987951526769426317311152221156936998756924675920993850345399188518853469566630964667306487188406627085626460939081199131866588873420266856398026900551667993438117419613843918246526339416128218299901657044266371387936404728638278596574610362100761019587661477084919699732138128300349722211760747706514981647988399674665478291025592946823310686759987644030019456847783661694686356755624148404533987585956438173746109046249958070599287777465866785364321902250869560864041636311099100543115383266893576920716196433904357674457591155224381776915247977744262465773067298486608716394023239957088213330130545717218612654433660374351721282019766696531555275032701473450618472052707342853848981049272027815600254399228212115695744369050079104703932705217677731184266038253418177719004363166933191937893407849648707659106245878295549480238888522999172551488344070606143401784272213175101864072248723814423961128038766807861454833702689118877025246314625624657069956229437337161242918150612405006762001239841140327728060792704155272047468304860353029228644510313955847444439993448870213641343102766694245220803370693189103283222226089177501910706412679060388956223029954392918145444499791494484740426182542549659571244763978902604094957179099782682589750895540880336016823584539243255015752446287420752505241805229793605188799774004013411106184837368338794514102952056838411545469281439433160294330522830917607137651165324581951497768278657836996080553758182071872804769138625997710262302433146735411819790010310958999524356282500739979237794182851450486407923903599172515511908388467883901896835957749406069810994897564051515886047989114908291328189256176757283441582024832108281246026406181240504059558013055223979064001888633660073652295277240447627772585465393239924280922047271122582105101674473946966347073864580662849519035774035118230903695837905835253756315263118948217668637491839017013501843928933515931046333089331263633236302266747649087772783440597970988598695111528595193103109918135679509739647871667128311291401591833973543414283574759504670549756747382572257766407811187628392265848469920331417965689519709528170831273697667953868244367489296867625971059917756941527580619372587974251157006902446841959244548714207679518722458339906451906312976481666476706381649580988491367222738742823619666186172108171136634712564823295327175841304105610987652893427043194532261414739658157202610347641803853312700764611028779660682498558045894135691373803102709049835614749741959719990040247294282673073086408070498136114345397566262831810644293946070077857716493427623542238639167797000888491090265100431382545639621590956656189744558868951193841077525933871387012093802419415421477364304103821530094231209782473080563494923491661492609385270022208127406182689471350729036534129988289060690779807088834899811991948821856602834173212283356797299386894736129899735759643123043126348546494399535553772237669026059198539295568045926675634111509461382962871625998386367809812309665290697252587578361523364687202755145802147082719806157666839533744000223038685374377527563419690904036674951800417722000475123814795080960418930161994518653780473222462835723541038954807946752073853855351065518880190688229403818586633856235284936573480971340587567835233461748528205435794025948585612051203137046384236595434201722936794087977690359334125910989160003407704549401430857148531014327063100875274798356730852942135824609328507249033701449426907343712072475946743880987143782172703022344219699751043957592642547437422309453249835137263973050176089022444473289414021732176133148866597898889561462474125387143763865483289750447060289772035891921771724577019423686432952754657887247073585326708271605898341150020646393262834095015143454610083248006689141780256826397907598636926144162270264066098542113599015104566568206467747217932544625507753991859766793026094357255946626133649692783399929075260753300612078478760256423905671885309610961281717609718410285916005771957331601815636267659762798869300332172624340293709991635730460383650368730325847705770904719450881400883410701035683372387269105712135129198643670781875110142868005081416054440854657622738895331760371814761493156213053272469940880392793988028327893962299692647733471258809957152477583041948655021534496751691631829799166897039725820576996035254504108910743981423352573929805248245723921079431045133152404465613967573730380180857858238276746756313031555929314556810435926866571591608537988513332660448436514753658846840712693209046174508301875677889451702423222102113002508266283575577254033222397339202065135908375304607174617480199878863592892705541861189541586170558474138927157355119326408143852078510154098931361218024534354817725929486668663842320753612070297269870093850499042982305236467319975411574012247093641248200781640258012216339602259073570210374783899398891830398696816316293195040085426840518898414282081377562430177447551998204794928641494706851183587597413168402412385495677008914715782060867862363120355518404892228848139294354244112020848668389265290541462714718771527817393382268197800946237095538542058280223510243358373715585505250060330049888146663120689605036145464967540850528538112425940740851982961674032202244681754541859619202348408350086694165453664448591285963934328292015384319238013742344628536527694501346066846342501299186888546803014535311224280900929237563237439058529136353137994178646865355079995840032138361497075978773469663710353104414849132619383554977268207992361311504562816445488557886258600323179032832470123363298057985713232215951970940741817190770824592156503731593660967430473299376226442094224256425779482915053087782676775516818796138998004320695360083841213217995203920470360975116244769598252844240481223606248306559196886398897195121435790120502369440364368495916330447964981926793451397051031812408474862203327943881593151940005599916660931977782522714544624220922671402827971757640920621597815448221990190508818998042661343917338090109567474014361665791244969188740507863766405249820628787968105827735149106848661609646783680698173992342474941075683894393531680147614977089846535864320411513733799911450144426952005217688497420176092271719944253869371047113661775999141063267240024033321488602859084687990206094137912221269485835952215778776629713984747396755956882682918706271514813417534852912803429782036237139928916130134714387588862475706002209252435746013471657932742334405905028724892793917897686536071557063300753575518078707674618112015765042574056169998925946021476148671948107294144882716805414025710367978810406385070650579847803384172973858878961805610964061972238022557083462424855276158406003256565634477296767208440942690226654917319824956883710227802933144304342162916900262478889770195139401610674289339067635503160608360294961368853023212201313623235879781870052487090915736193636062945063459206663936167219711850167155003940277240475358545044965879797214831687783600554835603893089947522802415817142635686201028735009377176310916826963422748483170651933252227849420604229848346590745751546341621918986620543884528479379534509812056303912919654731040444521573097609811268831424199741397272866489237524878729079190223697673392600234431305325017523757204479534037276885458590201014070175539387158352550949796735340357110593295956500337818647096267357836840303893363375967748544521547755592400525073379946518581532460378076964215716517661161390026799855827886001970101925090391765861416596188142575654282256079335056672887620763001226365057868248694987987068822044281348815771807953251706061579830682627977534631370130109770055227718538185408926871202779008133247955626208517362547909687083046689013241332779185202471475341691446215631160936372672319723170759623452030023941218924512192624793279819097918645475624818354365169905319506123482956954539415086126847911335943664967117637863662331989290349965784598603609797535286144023724628105735751992843868500351309405506921047993196649596679889703732931367857633770808059805560489833349540510663542003845992868294420692572878247374000071003857177603498339994614214438294506254738569307340612162668355998729601057043432040323056129182731089109981902858413084696057575045449368900773426314917267456189512797734188942545228433925000465119648730914577863127118868379795117877112042271648262456512924107015905107420481859448434605991232652129043002813262104228819904217001842723279186752238987931303533736994156812705374391211466903708700528364723562753755745881807844118030261990241161672076557595127762713291095849047029931597182197293306128626042955350616248111085238549173467005508785157882856768434272655356422560948531870710942804897101058990838233263409974290057909508455799773440919656398782442290628496119325450987025992196664202694226995861227843529780689831894388699644118827134229263678031547080421821016699053580338628977471190459833555174150260924947322921573664440181159376059328526987916518772368359063540319740615780857191485738391898922234117505469920862306094879985566104492661599881419368968724032363569645313955242590396592915081704957641447006834074795816988750445871515290777236290347160523934658730397786029048015809810053903770659171448729210830292171090026196697216548815823474503830222968080989848781938149902184312299563259020985872920422890759891617082884099107161027631526048253488696808552444130756659168847282611941351963259138782809889233261433242875512041463152622488296613826476789507574453121244449075311175772480641114096397513670858640173076431682645788993860056202085649060224834475870473875357815320414578927305777496409757460395709619328563535552411207114026960867244585007218881266630869803381473500351245716179429817476915827921296335287421152919547600875518283458883988146712350439991999368225059763458923970921067412902346573089707178487924550757691680140080198493690575883801874498970467461471149369570462853296931936677929127097170773646694098949995100341809272723908194791631631165286337914964459090103242981069070003155250816695398015472636313718856631990332737265126928152391795003219177354706416738272302412236187741240189583307279922675014725577737184094215393825478871421707183471185728592957006037459821224505206986801595426793689973023172963011377813249356423045017769606119931727913243848595807196737953320361100633532793848617656463932290706421242494339135126706738288571522312807898109480365088258003311224480486446602177482334579869257534402470300518201363686611042795437527690745453443077960181836989513014760205913466625722548662781860250292794836380711697938248472415689440992947118254967000568093097879120893783776316557075627590150160964020925109446856394216839272020413174756852245370350545943303077054879474260145672084428059766143541785042670648077902412220205552434279967952441305530742735661916087363368400956949166386081434058172026867644883166086197949722676199588383564121435349773825654572042110781241261106586117930678783899285234572072617824704869604024528646962646399643753317278364271965494332745516726017461705656856484449788266975146462960816819452233089823408869588702364503907874181378857573526334608698354727434251199737121407819814557794940283505461325338657700016943808175180728968754304883444846344172864970886694465403414679758628080044327709682508387724843910017500535968668074440985532528028151260209457457195539525358769164900019442075339046079921274876405439554016661528466985215057079220318647320225086017731265742657477173394592794335504358438194333807224749873504502067418983497102253441214070342439337675553998772196049195601290883611122148514929607364436756140717056646700250527584279368312253637952248460171602896976754974110019503567367672543519704261326628878187762270249774662140165690016150604185274806933942756576248517568407314155267101094688404178234714283528643461176493285118929195666301559304520048441777296600404945116635341242141781915344185539965133491886047768570379649496082881278961333255721969874328030209314617587219900794422398256852719678759491088615884295906206207847932955526461516919709765899914115120912414929736817099047180143318521156253422428676683798050236442791707683655140659104514255533945014841135570535615446322181110985139918629136199160812281664120941461374524987779684411991684572902646132391417672679882418965920993586738612364511396697324854428967856728715447396771254555962568268085466465043662930843059597036773867470762184365148987119782063518116021821098433004533674574411577445316707353919550408500563424143080935491003905351826434583803026765840522402506510547246082892007432928920890791032192995336867054648397369992214198700638578525403600894809684760438185594369685974353503018330657777678402130267971010972123756347775589611920900667225944815211256098602370826805113146788790009283974663961894113057021873325258833085118407882477897192499779569167142833023690818290882590373126484444126288056181508970538782335051539912568390113086846105535916094952608642850093551820851421361572073159622553026832923721694222189479663379419328839943820904507347900784188386687593293046786239206285789407119672433514938898613822397842351227351983885532989467265761938842295967003345214716980271077848015605590647891948351996774758697965234982962040831297764687643792708097604364346447178976345144882790747025964302786394286786266735442987327478685216021843172315157912207971197834236726040912328101793959683976239986052539492801912838175298521118185743228582785154433277086813958875207234528326280754783825683082367544791989386309884745882929735633813136471377196104172531441275558821584014966225633906899335637960398633137407297714327457167344159466142416262885708370896273173268434344979320715593786899406765442567101876914507313703798176502125197652722246828666367975778271163901515729606638269712204311673720879728287267381335960223439135763533340785780754262396865723539825762667874216277936048682046019633565962151253745601032262526451226522194551012438736159583991281606272164447928480535789769762137393864244016262666680037259841305661312320111037082898407448120766027413189786432643997764493775260117887779188567637030147862039476336483132933531973989973007337670514827446493584171171083364001554897241895202448522502600854736586028735533702314630424484820616632203255607316300075271807041205667650826180844320000803017530998103554373754979614359882242569290708784129513867974413755704753915057657847729277653926868896747829886722212610082077533481203350194752120427501398052555344758233413068789694472994601026485155970317221871564778966620465312294972541262217079640837857849245205630606632791284496585224183157994630770678168049695997959736938169846769113813485800017761282070927969438682850512845788407305693289496698744480592908545282211848197141002321281163495046481759410566282032872869331892833317313287855481917574108132334724594662516849754122583521764556835460835555750294518333745348565045297328412673289586640572724821718051367446147522995557967720150349800309518686729740304698187618631057927307852726338095483639012643582143592827664232177839106252060696137374461941278433397368716390075397315573891244209985441514161810497507798044579645426408952993549537770197422993130274518717475386918825741180313461024742509311950136856366319866534008529218029450599383044979120301669720570643429469357035693836363830404759430650810898096716749198323126624675847681583424848170269166226117185392904764204345205153483900551743212724496754925311756921723297863412888993622352626365682872910833022345438273817459119681258150862949822878244261618168329121765772586242042700277701443220115076962842143146927546804280410937672042169371750000373314221808075346907781319666111359639352296233903111592348504850068707076752702584424960225791129701533360133389617945899553009963419396590158588928382874082794772990919922399227994572267819308764169594112361787485444783629265631238581292929819402955191711588279298618842890215839275960829769176761778626984600728316406339611798729803824796546963640516239255648697702766056904477160814508919234782121845209642614158450927732454122715707243965667555018883664969606912516708361197893441232479662376563279438915286125673494524584779789000921605564830351791776272412360561293604741634555139158194169887318392795863423690414176745694057717231813802201967353490137570243666914088637449554813277559189613196874161862497611355900188809481617036171362548188486556123998236689692531669990506272302267420086319169717307376010770827942490452441354715192761778335471431787807712451616939260832684679489767611708162252783340692292183300106017046904346641289682760053335023749923258404548910865153372124295971667649232409289327208093723616465881886430948862899146056060372352540073080560658100002660698656237024773803510702528274798122022042230374299413714421443940790714425384328908957019694105785054523453321863718394669713071038135368758368603258183960122737994577828961993202752688350626674582163274197603610584999277938299460053393762165381722263061180279466592720734131224093140766954844005418854989786429727600592592504268449467405263276598609938076257870865768468908065249134386438348195374547685526254094457269875084980388136853679753557043705695534085669271164341614049936902926488481213651066017555982623542322789239041547077065795491185531344908323602189106748874669014168968995081602917920228032915458346454163810691094709418239812496599357392026357785984421826989954950698205945589289909437973610225761490059691928125362209650359718774189203465527720057203283436781802853048129453660072304174580128714604987101435283829266166874524113225847343418345161003121630938529329403295491551933161130342140912135958470827547163344356781168064636346874433001365583390376252157367382949506145506311634073743298027008762674646964437832590765247824514904729153285288179134000981879770435677970597682951544127484979092515237863109786022126578034379811531209072483170988555172852943146961689053028724951737436195481609889656372920029428774599438397754230111660207077144647442563010747817873225539313440603309580634360143850171574257563564589235232168962316472495498649898602584301238798207232174055698504516415946859351986428774741858894949695138712212448213342587311465752843195723470722464522876750672118693893836860533589210269639517696152270578025766769963971042257486640583691548592374244660605657392316824953872938773980727335749380260393587915886148373602924046139589515503092049219086788236373872231808867788395024347342688379020637863890208945763904791667143002498744156157614129258261451925775970209621986704755181749769167703282890721473346913772989546552615531931070516539499913568371867596945625176606419480460604080237963352917027747541317773457438784321018979887440076115458789372004411559367072947620336475500023621376561327096461980213745830464546869171728188917623553637740254966705848371191694630651839622661805400945555250954007705079025166024947767146755467063276625425440582484002704889655242356390566751077272905543759184449989651437149869691062654743100440717865643788267078916098021864322016345873517803908117700854177924952160938124978807054799445303920152988264385595413541630600457651379564659739183767833446600767394852558338320632940864294777546921534402880892179776437080767008417480981358729047904080394870293523290764574292448297342583959794008895513759434806673039891218299028764485280346010496599900558543586643187627490086094749553082726100423414121953151456957831404292101559995680628668368446287092145373185944118994386527469487941858992688762193641008849376359069756445059302699238758686730286874355163640411396643444965483132197926498369654117767747265201823389598515824560509791703744350918187263306178768989736125197152197940809248475608876982498018343752712625922760508453404906808457530502010818603976677640356188109901333310427111266213153376297926210975149152198459149004018878835927676438367674479278911778229184302194697020862103988826022697267507957484011655008681552197306052485779314402006920398793023969007201056575348420227205210342794322668964329829849596074459084639887832466345474323193072779566932802874398961979001071727337247621963103494226435895487258370318015577342376331138230476192881652416517672074882135824423821193468332075175636616080717392047925464446923749093601198251436976905433021005279612562343994636125064188459924932303530100393180940839872723354862731497605147951743633022749377267450871870447364310707463104527515766765997044833492052907214581195361122922321508328954541206677629437177149640498136585726320026484202690755846832068253761050206416535717827484618099630207265578645560024363056015487546422799724538270625163381357475555425661658135785131891145232279652145675620977276018771842887248682280707104544746912802367492855270040416740075784525948585667045398953159506030612246032836379234464766877873473424118986707138868542869337078037057896725627433091549322372855478206080915297606875279575466729203333980071857333853205456294527982142143603267828816306702314884554899121768219530999597869817178930925678175572220158000799246206509826009855634790406117267895236827050041228096609235086281330669698196108213271369225633165431685980740731713931198541597371684557633287733408239792980325054624562841780695881432188144634468355018693275769681147936393389123671453193991629898377834001703582870799121783732515793898121973792264723014698326936028289247655455755649352785378322972388524347024964026993111578024602363910513305374933375610130023347054053430755636059029611387062135950714519290249747364331039008480570519456569892120731148533732555149194490859902190915442593836794106936796957254003156990560106120478644622593620486036029024175377036069115507198645413258083875575272318934412127936994490947490546295430232261268215383703209497454680636361626117649455665485858504943053755795700475592650207928304335138852120150109365236233430627383113163776473984501128676450380275763368353780182251773932427859113128261523959406905911047121358450008118462460749240195797912715772941017010380434398513321024073963375577525481301921557098419627243943320960436532616272047848726696581964863976579191371943950801980581264663300531691875477456368831541228369252957262163538075518124025368183124212865234484175746467442829659834774578125181841797158305669914963999459003792874335104381881988385651684640005035671912059551768933786812404138982678332856237535812460794804506749741651957000592916993465808924934683496898379380269796924813111641025935395638470462525304774453508076509416201947298335922833909041846878203420638961339494564017227574886321051285782103321918079222967495963823146481332457151193636828603515760429752135452625294194708317881996603702899290858935276968339636284810286657903821936432144097101646499164330049963293041633895066121684819489676874796374227188126083188814845234009570327950984811732258865238385915022216919440091173925276106046036256281095914871445442204369585529482813070297547444970841692593578543153792033296534148705058233276911479891129307173286246745092962648080719879518138552346236316134618810512227631078126656659501729752902282655942669677181154815407178760928921064607357166124118957040700151102074081474610608261944430452738145570664219478427476967437010827756612523030469983195096778346030742932578334537158878529699581007044459309425972373964421783221968853000467042902848406826515373451534298236428539665313715482623732281261923831095566637625383610584571497458617804394539866055651800213082064702098539705514008002914670946393419550815418478765923988229326695138347084145110502637794526167609028331351029587260380170005003630015335725313711905023467146784905675699406149222433603562025899178060591257063713951909957449195153960438215704663765447695277088614542157631918726265478554500887134694934838692481682234544881390928738656447222036441766257723519679285902976098451795932869726752593144550748706072730961046914514387145141316723514771600465902706997466795354217198914616288082085127555515635980575763493870104288074340077548871706457703705254326054876539739880334185780216951371119932526850556268187630106995503568888120034371811327865469332832173306609925980138252928539955601873540463289100171203727022567436363793246607866389486941342730042650711115652376139350848830350959740112803101653984920272461837357721167256098206377910731009242967059049079557856403720156547502927081252109462882704277200219549403366237569134382180063242574416210011685486714831124822859327498063791699909706930239393052047722145835005669734098627167601527657750437587613960290496182142376935979152635986000082417249968166606199198584662096895956356892160102173101903990632648886931538100893787578931534117829868546218106258973683214941553399952169458338119604481994049215187010578819595041210453889502954239523728748365853570336056769481938762877804919225575226872734993666288340980629399236339257254489560847330363801822487082803366658465194708695778376381753856870799924712107974274138447834042786059828667455324065350725216858147284901491942696606532180628379174954198099019500546755191202556902851375518246926327692373691242135275777252921941823718235524159318439243722745987194435012321259703612177072639263701429333273232233037926172635015577602672309810130399507591731656369381573635040856481058903641337443761669388378043535890874946462376208808998034958707831428047138823296428149110558095211095232394594369893477565454600325196891572501219093629954589120847633703193993421371553301794446025648898207396441668540577073366479365856978886955240008649469496977926599846775576628035467935290709051829741056776003456491312132420845671162726108087673354264251920805643981631597500382266894196429267220933522520486797047748862660834959108514531727966129172235371478502599081960376558271281226172266358380080785990168057887506756805017711233744291048935098897731415050940745894255307338465830433881967919991210530820999125772106832317119198863770066732634302191654843197919557856979139393045002664508158590286561127593493767705058166470314717862653057052849724970869740072427362906518511604862037443580090700685591079295261477525244678306769988910191332705890560625927261543062685669575344151318970340913467342371895843468560918902863010146814805199144756417923933069925457939683942980831820667171988102923773764685011236321466064883732872977423907461315283129920733040662193968039046818579804203100025360435540407173070288174793184958813209991918234560317062142944833864594729882480609983230899386809771641913795310977778876952193094055206061139144171259199550828915298209575701996362375215899704091219859499482318078855886250154963958573652267463806819703632108987054201112371707394294839604689903098406321847854171343612795572523613512550354348571849900595260619479840252450873637623981965011276081706209433956561177396238946622810476228051264986359299770073193337235275017733245328699904471236636226119709829751999446357464367488552831227435730308196089111883897057759647333936983582037607567368398611664252596572276966419695732243867745828142783265942513473163711272858527686782755811809802528441438279978680991291425551899221282050145447430731172755191715274975878146256136639869709625304356236063190940811761540670958391385016529481220513355862329393862080721345235910251876168109977665396558694944970373930230383862286271733689473431471381613008694941602895481908708524067357601017276474397391174266137634433799670032687864577133942454510878574788384502866633733343500694168495367341147980218876982978933391457905953787990269138881692419959530088699770808866398690927451637411582481181175566640482412405794323668396616879668929021413573316975841954513897762198994490437500838536488911281445480017206723092833815939570896545408920907841256243984606584532065146568716389283300951042770446335362271318197256968859863289973161339382184872099071580210130098266937507399469894257891464141911178847109768725928817497812959735310074952332833340047521817407750708795016717052556868155766831468222926538403608733619306992486848400933170870028797084566695913206542221575584301823415128754424609902424864666221230977404379587152654272416905578885579078901432391304002538131697682850695984223194890608525500572680681270591548416595559628759026108049266684227985581915451761119880250284854008004352311317042783800187489582484218518213930702416256879109290532224669269617238163561243429819293625376084681493285527324613998095880963603563878279960400141575578758445803778376517701422055021532873030945250751001290862704226973300380914626206678711928901834353084095818401923080538951002436004692833016596335343822084859909741329094303134908043657133781707274911933727787402972633461789541927525673332017952589326029531750822102703349603307519605783552864530796902413670168076841918285628100783733260176996227648109270462595108264177614912367817413992528581010006986791275535085184096503463794781228324257243441991801197298589227060668395945457555487250818779612983606876598572745213694889638862725244594406652537277595953149610798650906450478243190022171600376025556388376861550839421421062381424211108489593017013525149736505360591002068676098069892895339896687430576743250967262678930262803077207254541529359787654294836493211348547295673336083607557684699058517132482885811261958124442918475795265381576161125440487282482877931226868838580090463385054481178566025451872937878289020136056211370589236665899290828729713731077087873363086732269849534216737322843566269872776836588529503831464262391563680993196150161095258165769161628087406744145166866275705885566817766826691393618674700331592466299932426893623498608504416818576306079801576680792771327871996689133562382661116485421871606405895976699197123013267900784700781531326789048663932250245635133982612331524179693475426319269281640853871536001268558477631938126092376829647878261775818769784239581234921017160004467293416742085111319180723726146123275948418918864636875720037503062128684879101377371551561613485082076202966403950277739925553240012595969563398413589902775556783072265508240159370392218487698454582106059196873869750942292554529498032569266028713567020428106965370508808904599499204678672432790733261765384997481236594765708336755923905364321825598177853603749557236222663604776991281512077787369423307743108406205737236983712667749944461139487886403196579636745828465987348298294782985943585270228357216046521782642881542848194781941354578260259944222682626417522774169022968879363774219080372019447876983920346101388167000948769334577473583971522672163713569096333077612367529225295860105542307474777334502320128570318192892494053507833083519064630835762535663473584352798395746493871889295551817754420833329845476663285233236236311625124500819048450429224825328798208469663403659462702136728071917211706284504683123906071412148656574425941247029882042012057431401609963668766062983945916613746449836054804830721163185209941869579801485305586437218588771213893461171563720648539383668907720808688353692441079878701878016702545042928369895704314850989362481798301110140808130483656082096836448422425047308034792899805787844722799783717831839298642871624727389541222961504551087209527835982713355787225035703592955964492221311374758039080130460333377233679255217501397155784313140291308439603267549094683516954553378907930920601607085256225241425511108294276757939086431677067927860448859435698677286455063629935923287409547900687207572292589940184412854434779765912508081488507927544395036687774769129739306355474850112223705668898482605922775727875412966164593400377550732558899390253378722231388109488057368027640030720126891232820431645420004722857621552526690398274362898496386065043227806169678987921494465305471887636304265557489395323093452469226796473331200013587868899668132381088830344764982004436924068179361662507521403706410996583950649684749371175893452582821614355296885344323866032919260396586975968361446550728147731103601624755923682928459198413339109462925415025272672797820330873455927172628481261920638680147810945391600882682479420399029313017745764964828313228646197423062088738624587702126804730261314978575677922112172289277694486833029319774835997144596963666877562722144813974837454701763394175364388170300258955384746067736689118746018687161401097578531729346803819565976170849869719733322719891199825737063419522319206718034963686063983816146341380330846320444065751169736110453524068923385512844325288758660729489321462622967622658172804028380379470670683348734162319735775376439131750378231019195800433109206015924512056158331176525123767280101733743442605057861602741811247388914975106292423619608452522013281715570062973793313887967681939699840887017051281805659538862190450310236272307312582368054022673125124536193724718583725337922231726379434240419910136672851098162362725774217539516308874431546491708453795613163233640285664236418440856744125810115030036162795254067319577987185432578937411821335024747368860570817944589417382541322847673180485062389689380069857817035212208984728437034075314145829087323244332755426522073768545050687991191421499002260302968808730016492137782695641421685281564793049289634932343347557694112868357207159805450568018601397989124734996460629411540006012674477424387652429699045651616780329916634252365508071329905437243894979607093320149590506342924124830137510477408466243333172890673541682405163073871620390721608520596345490382299296497972094086711606366347170405486850410692412107012345015089525900569750149814745324779778108066336404322941574587190433311466633882107349570565890386793562482543452625044836216701038257282685007377772288300104398416863904173852687940777194172939864121782019402881281175009272338600934139805215588031535011092923647829445153901311311254820503727256038032347684347151224608969667227987799743831892338447598301904846249026820242980939882921791855184791025481287515122952307273914136122509696156941865197737289366086781259047152820537340812063129108493564560180946799017193441409867682952321153669472226758320702681246294540034249977455972803339859801577673197042021357237576659758426215329698714663789076582418458546914956072678170746340618340839400520450590284366622719845832719873583394068174787948461144370624232021418621959624596997567492841127207347672542876893222146585810793585407611536287445281638851185898299075119001521116772396514072595968603364597733368345498369051008449406291927729942942112345413723362579466350989209780731455685610176657781920969676219611977619686422106128878981236034795378809033773911361922867192462288431772019740598406705678801392193727439393767732542457822323469207860996541327573876925389242431115352405123648256461244372738335206750984651823994862011796139296344514172299494137760527612491173620097420837064323778455974285606563499508571578497343872963994313175073808729082261182058260161571343423879571592512084117114966381652161506365284269298476374521848517014011755954317685423851969521351853286000896022310517328265657018212157415407193302764914004760836974914000411371555094411708542659929620648217914844094584125069509360016935934526642292132907674945993961126259190830597407946404951156778188415183311376484442136765161995691361444383060546593493718617688916982023288004424731564826281481495119798771213290088226882140282009556134209779754408993774968567000531457494504154598969115243773610888793664371884800374994766600103735028307520452667320566239177953898830308233552353810223770184025273717763413821154395842091438522126943876050299056586065229348035128027691807336568730502091541943364409517267827728617352639765227246528715429548137009929664278967123581990709736858293026400176058836665849046092143065236664606515542256577961242802555857610672842760410893146072678110925052476938459033430197862124201075248145720602391538720929760251887805728751576139344198500936266649235886884336611959990135903396371060676563577821357184141008297599178162073583683213492684357995302446760306751642806658619408813919869798380325000237764425981475679587266025731698747183631428849853493765061179093128942635464316836923600592343962718264299508895787350240690730159161949837939543505283811153376120708615935365715584333419765806520888421323041128510441469830075372699626638470641957747676373154408938285269910133425246700071752592999737970676872103096669142081136092196174200452473872730748075880871670881522790740225600467943228983194729559789014128456402638154649896162960227353221771698201258145129063421490143845330785107651139132057072180080155770116621482738648878564194831761199747552177138169417074988352658089693118864224289188179593075662091643153427761983349772892987573382871993210810232155043219219238814599411452982295899739050391686813154281463839428195342305473761183113490079995313444041533361419131287849999086433698315647102501942404054530905399489684140602425427635225632223184304335039390634960224542073843678229126037017002145258778074861036303495448490220911408632373103822495486408555250168426443040129106411566550431842872835093984319867308251877659672569039130087307095554412401792758602647242139711421276349448369849940079544366734183266512509062341767866885552017157369335584667109839701432915492511563616105291760650279221855074150451919989971755801054346924696099429017919000668618105344292416220331727388799134059674038539667454519307928172181677016928118026693024301480219921672736577214715313628322965454090762694815534061562789571496024421385651016600406070864383963925786087849475633245306713113124904549908939285848566601901345893220312743307665222554155988388752340984462338710581677632719947467758031336338771713041700920472129741903895756716822565355469927993321468003726431210054993790508137819202331836704519138618436309298007450373051654224070803953483279427695525994579912207392698516069493651390916933928823278153827401099085743923067548328581763823362818617453029724223963173105286364608210506537618906263629964073958027889270848160711575975255532844623278901881441748583952821968860445717077095041258915793562281688572335835620621408499571343497663691048607918738325183129822794551556689747245053903111254061808264899941917569298155400393509425078999430549425510041952937412161347305800366101467170937491382226114168672321856726176718121104797338563481929774090332187419289038862182877110080602998800920027148886933452635073159221051456187543175784858922306520920221686852360551120195025472861165595488630883847796171256295892535525052784700039151429794753416865651465657004544734992704482387755322275336870428801183536041870222592661869769050200778280433609089487852918327926806319117199435986475215583813078086876855269063907329430031957778022666853247626831306119409944730306380222189661044057155945315902837444827808762683115268019336111731503560230681211297836786054871656131675613097531923008481611748125622293691806810666948324363400737307824797415167605911173158830822730033925560343877048658516669143246399576136980264250108614585647431327138077261482388245164400406116053039050709558931194016655644115910681940395419469332618819596717550671209968972989972335000263662839291101069265411138847493618217054696573248543852250165013096064840935384496212033740915624601328553967415301995101272801035060755987252598941524691963120644028041674488506250995495907378063140189292604242585576028147723794085622195477539198402869604270169407002096225476216850729587134239551911616871057659409503078547786121025142583239676634194596733150963438269043466422276635150161154776777254681918579612605489735211294388977392103914320288126514822380086175917922367595839381514944226954220627142103270950898360335758929247998201421103370637204003424011721963017194654355582554433718112322588568620941002825448356571147769568445692237131018688029796003327714145791126316891926178931998145730293817501684510388093896742598591759854184690124359958896142136698865199251972690243639892719172204460525823276637600491507403450225462061505437663327326351443389312000921329538366972485291670634291185375868346140931955873144290649591444920958551797541826049069369095221171387612368699106830149309275344157048343174366587890017867198366061603685177460788444085083728291623380421467201858473756250576597049898030093562478031975994635905979009215616127237227739174298872739152025653924341068752855618021514745385763865063587584025860036820287513320351342372833877977657153666832844781800877381683639812001391761153941729849485725713494253085052509160650374965423713523815953962974862688928747321188887115971225948389368921459573256065611166497555708382038623266685176581908643066216744055331640351428745089275269593877627027026712278878582595729115767223534378403033120802044013515707578396371536482456346235299856292176880626905291995734349879419989310675631203631457902961964170136750093274443071686923784810358839676878201801080517096012866151916580942479843110169745094632006799196490859257095143395713380452103641381226410071561154829012351355401926696509952543986550667112292448248956192474924267415730767665574603542286702553629473468024949170387996024429758938593542945425568963327368133506697362330072190092444643735452777572804508888219859409093892110410339819643509490492507596707716245748575239437425858745703058482350044964137775808157613025350104080366693232756528953128344327802339425721072402476527167439883366958636234266423261401457563234353868345422449264491343290970242672785890451184579629417309126420622610059623250106618049021911611996707162084864779752229662178433430143909793962190111350212890537148466899689139090351055206207515333043382521655327059257058761180394702747348815923890668431254620432345117246974084026350315897490738886223461538883757312219566842454619519868789178603107866998131020380573080532904009284214760249168355439542970449177684748791069327409791338627836539680356809767489894036666997643577797947712240328267225296521849604437992960341924033067695357220729161761804409338397272556496736397416740139150563797034723760617947324569821621660846404669433428636181450173845662740368205897312715361590541526382255159394956675160360372724843738635858129672940086632883087531501683434948905509433036365294295896050239713938334168196878379317431155954027763769937616641481917238699587447828074295450933879617241662024022510582940251270076462092187222830165883959308926877651265461598741609345569074501625494573088245019586614887000657459127902062845484741180306893002505509754524043887157023915869545379720461620345808394474542932046063731399024054053994181704107750675799267516427098465310548303003565384786807758661893432921758057883106099283165670754747408486476374603808037678656415158705829677840782489580748869634417972441090000926339841165170418565159880922356708501355472232584335715552381595563746244326454342950868118916864858185991739873464984662436954176171485144886449397571905179227904003694024388201034234115866561216712241953903887103699795279828119277978568945356614714871128831596401502373398595764926768091022632924956302094501497586974129162865405586308792835041878766682335387354224697960957429753631702936137514352147371665277504845670842468890711541430901968404781115711098862231695666345308488254563997809167283246704900413611378017709140892435724262867150981307992344914689522027352617505136797183248633452232507832652876855691527615439798185962458087594760911232392210658118727986389586949344411314161118614058387228696779327517186506906456437185077432000896968598669529737741742272123131332749192641053875137933313205035550678872960205839342283964934666823141900666043864228256036512245812745760627924024890609356462640021990792228744145712893605340049335998998224719837052917175009176065430596967169850788186552787457052099821537797652550008375157039136462030357570333584327380361687616274045191610033661615560336331426624248511543901554599617809885734792530469938435007614834198769914808933007329437110550263335838341031729419839558047838488292192644802936321998890934169617500240280989075637297700702193038141739378260942920338958616818156456597700625718216417928981115048369218091905568367905732678286813169178248305629178706543766608212885376451186589768043988931482924390426373640504062998761789038659018968012061168251758606736339390107430484067365920198347995002517562937079390692099726495871076726377680988474261965634910606649791706796560793555669300136382335107413234994453552396310470439927432902746177431406987411477121615138183146843499372252247528348471837270859213770312985700463159721751057863740991772949208189281241173728806727468977554314998276695725453901654652149132626554321029862589960765106468360084209745371627765509618939730467097481941132199518606556994069205011506744640615952335339166531470094965460960782200422271232270625213021286385289198942049838130478147206379577951970883770193583369419850182075323330130828488233986973732832326401948334625094400593648286301842756526692384903974364426828075495862872378099992860909713642530110518703889340233690747779804538239297865910872406611890910870520086929098329851805748363115790412541178878719331657686750052706509303585665312194956762703867327470638995504494941389782851102057624350972005870703281687968367017100374833377275429640655958933812873322940663136702019468240552349015224155146160866135157381221619783560716382751832367541583203928075105462810184047277466914585042872999393343838273011889212580391184606384740521681684761540410381449977818009409837416986865030789033112868000997224856671415111288440573241218625271603208506661266828853480897889602552226816245733862209133383666583071468718891117229727730067423104795339518485923278433983834100018437879946810714967763682541307926952275901157764871736688315434003201888311545339193177462510754852988826552214486707154300497526656139354645391965068851749339212734948707597431630048498804962756593579131967517534266311645258099691443558425443433847614488987308689505486562545460417119072631937506103239489626072143809273910216101743703727012689565909681210452135344839866591824727196002444501598338141746139231641555706556028631898965365506606750077422687917921200309403055707932519064958252850938545022014126336479070485468294004187845420576049381456621805076562101862763821811996526321812053007587668840168906976447723511567452682531768674777160286179931390936836165852831086407518850813251800867839086466606839865804423492828698156799654934732158959679756440693779869355786809063624764290644217892861004224116466827944435095614919567888371262941272857451307318460731499015645416239230971138193994921344381115038266332836536371244431004449573317399764576163359627868097104916361413061173786191859330724823833095852219712076231757314900772259731931888374217916495235795366596088539868801680121071267991048129122160906271701644397611957788595529768996882798608931418240157236847277882395943492472852225288742142013457882871386685958628026712849965065002400022192073991391042894587672363523743031152281223896941488466755825601099547896292358457162575038861740121007878555189810463961947168577009622071000028789656656140150598605051952233233684541405409464794026058332061724040038294417414417462603214599913546175835601980862515318773461192623768868692288686309935041861131700254962511818474749726796772773665526210582541099313639303185613426912857641473576911172747576285386879876709553109560713711888648139758571176361008970132184882916501283602901197632463225836372476561659113898789271565416038009609908993648187374257056303997439548647943590110041209007627422514189464482567253439350059504663217217824473358488575205648934488079292011186123662290364735087490981392383724973743160557160139552989583585481717340149402826202642396317451823698566434009068469574018757152065584726980779829013107794656028187650024777985068010980642183838601200795259512102844496719419599835870028397023990179203666694614555586248974282686525385942219476688049663391416514708002375212586624721504526860045646976174069741507207810813372886817227440493482783171596972421386716765077357004327216910328386204128868084224514851699215615136520387037066124326185608400004163519066527336495820794788762160183547851798771269297401420222007395303824219332345861966643808499984065134284363862667826314479813772591039320656709613272706657436462140484904402170943523974769600987308006658951067746197754569923173061263443070802701550562995654927113166310914345359729339133679648668874839110434515400340474655293190860253419662501973445667642886727457117215858560146245056076491232294851012694426432985333519164953578236349655348579781749743436037481997660100027729485369541914796134627296440587935155796040414387290454670873739698599106311807157203672054802088446978899580910945645891628639581053766191865762967481700879825149730424952164395602322506869197908341560903128770356335917182400615385165950333421419708349044978159961543507630950787682220488910255296823606710285732580198765225934492672876799899505006800118265347558917392356290524293070239004465395052581243639978774581866611969475294418718913718781004914569342443837874297418360250269602728955651276249300233658231390115544155092435488519396042794062322016578286070310363390702112037784497955325884208085192606656053032964067681926536147105313218744401202063655960773367306159469770314561343449347196750839983400257145633114677246572810477054836693880307870971195839634721641077492146851335566817369378012161651012068336258046182334182334610213174826496210713258628127802439276158356614393664443783386344308685665830465619146798423625373034555613259210486739567417433978979559947121151425706807213252851331084171607687851914625659512162404603049813591856828473677782158096117107121859503751111468716917175779329646612003556169714012144435022562549022591045017060651451612294693270418268167718874489727586063706729511613974739835050227346592085698643493784627766431599855881688436296001143441900961671579938737629908092204007962942332534751022684781920171708315132727748294882788883006049581550517540693691860938982787713649523562255804975438799247587209090225551214950758764469948089606174176344039247336947144330015934129819499909096507431704404129476788995656189498370022745847562857716396713137688352612567370587418311243577563177858618800694883970922622142743208193167895514622071066004198382344410178680002081285309112008488727126060531095863108100801480290827963248191748870576528408540450053474809761265722070084084361695067523613588651547317051299487081175189010989839784819858920145377509679386493984737315098240272759799221203470574175831009855140329308024122532311315351229829568834019729635829455134671146723292471199372931410813490886671065061429311497263805038697733590002110104018003562359862442239602999964097924122492600431688803551244245708483174075979341411557579878091174641354332676168000578263489696665391681886761813295072528359739804769319255409521902584846666118041308171306040021036903661611733423914422214532826418119663594659121388116091452791199539110753609490764103662559586428417483524939270038681250898152573376000110962796401835647941599627634823864933050713734355143451513155244900627745321751388755913163567060165824158721254789574867462231355903663025739746133634968061999346686234407051845685289314145139541199897234081106439770854942949265232770239480812265754883404468303943689902528722810727435445055758245119059768986942754302190358246444180071106892488916204346720900696082287670107505486289918086278119531696220439344751489004634391737883358768303443730735020393564042328769739441470427413028749722344165730330134633210168887613971708998630839721322670662127793067634654226789487597070776876954189895797448989783028424794741057350102537326368346928036356601772794150709263746246382716520902375526948539365765833116136408691685185062125556285840778360995689812581668764813007239786991541538973255029043412980154407890167129485676251193735914493870566999144056016975912955453048946474799688974133129747170713140743932182262046641595516447255438161693653275131233089783528945471086991710202338760815430809558924193955666851144287436718825337503135466193682782305790440662844348561895153753646585196447376484901773563360818623574520088464095152716226910357918064678782938245346315081115835872978443430429328610254624160886064594962521700140569879889830681280743663084865041908265370203641074067091772126847033226913567576294101316662172362527800856167571048097617294997003526507177337662266658498250818933188310604952283734899136099149251322046707244960467496811776898254709189252760597640712146410239799293293459657738646997026438071084696435246749210143694795873441032849331856704173655245188888424144921879510733334435922163062832080511940377458807870050758652125200800773633148502066283629208509470311320591572665688658921875908966325442548078905221865023673190003412048612080251753893342288898855211674548998621127337602578440551135163881150662543469439924614872595477819283064184938970360605977753152168113208479870096709000854721747274400670407569737612335401479579795970662197034602646191782710757310489819153986008519649309375484588059911954454793259160138266061485524547122097689239178431253207264912993017538090766660316580831271750913827979371034674935917082192525970844684602830776701462125923664370514604889695764071515974620409100736961923529929392326092159140153565734020287908964546260676116148111543057912309357265374491080841520104262662177651364071679411316636347203878699234674779187072311929513385174323597633078526515433661697766749378761444340869661271207598331879490035570066084510387562557170915689362319996000371709281176336105670744891402737846188080552310203297230794392325478588001211338609735375978579467278116757233384713862365303543830778347757091361373497777933247967707338393935350487920791728952739733372880193241904132873007751320073948594977905523745212303970723399964483157726090330937322347522258732915979460215919494709505296346431530008608315966443681528543797586023390773172426494131654074790690769496343180417245980659631017713010935591587937607909231065480671861938492495332695363130565693405689072433638382472078686264339355169676281118865956204728833789137476991494783955415365013467749231875599670227616137041487976821461055246988585984972722995687465108178212285304987707397822875648368876223481762236203361351298566064085230767439898100907313814240208164531658148985163350674714047147570609264258002645817150608436834192623285029349748943506976580886318109291975532147627616465861651667915466602035930674441925306954359587125436896780691991178778179831786362238036732457906448661404328395552564393564302245656384570205353459013680927499625355055062073431580123715717640916317461689453141498341093328125212314660539947742286359103793495876781581323144541264947401087131930420908894578542994642880513844755413674879341703686134965073698577861784225748262709762597582195349846920643360037767408043495517195714882779335677194385199846293432140857128931162235740813642552742843008042014698477562636934531125850684410141805354165441867620163508484454561756662986625339151486165513588857785972888445310558168775269454580205078029899406720104009219963551662031544856485101572670045247863464251543740990942697296230782925607713169287501265021598050149106476522116062249170904302653068697443870000193191279813799725888101903794120894938098567315604071632817177366005220289077063297631000141247733030795510074584836601209923307241169351100468805709130798026895222877589709743863313342251917509663480653198675745412401267564187369793412993744082368288025568557801799453636995047298473161660997115152158676368270960549387141060426812335844045940520281084794195284778703112977897024286253898321821099726840735066246115270162264964840552220482846648291804658619762287688311953579888397460777450830161582991514084305570559426984634134245967983204716958560777031792717042868272289643475399392710421725472819610715798569935389081975253111793456933833482162453065734963209987123604381129556729076071548698420440910108200183678945012612143193203760424585337356335556882552279374627880568899982190778466068524381106367726018053187380955224246132994060051897358725235866780154368709938931117088094025615268524680230034915300755685791608195291608932298374928970707921172774046221228514827651857229179003847389205025842750442135858059122802327207834145337863926602103987150514540888612093004374594966739234188153198767290637732956682043265977540059208438396394105264772659223591876746891270126288921184250985822652015662081204810371015262160480129372845797619709109496475224170599067516496220178013815965920245815126029697956364672593043965726965280621980939143456349693988179933159939151141606332226549708502311411325833970896907818066347397919509039291108924241491562962598385848672256891710814630141625945807666593306183037151559464677812953870810929315112772391234630377756055992646075677311078627502813789429469556381182264747206874961207406696525769408133381105428871769561211543775639736403376134636485432931856013706046223650613111307103207066508793037350748148875328881477831645162727351822825782158492311017404733582345864501940398793373757757743847314662055378475315942444813227088261604342552276300745260524411918643644119080916133911423195883057507142938396211891836737375846073975715040962055192658630638957047294355236570023672416928249190682377581188970101313935528477018705056862426881281038756589854195887113639486675995094487648279917252074641716865505424697657546737386826564083333597802609760753044132651184014006708655954784633911528458755869998966024104892597082901872004332890830968621864112590165553693141095939545815867392028846494697365254252886203026688675186831372194281713538760584605955070233917646348557264086157534374694180991513887134780597116881946427444780680525980692245059825287210265562510976412034786276870189565432728386447005528021554185519542935750823770014961182221535543249048826870136811245199397642786956768057490231022554682532676152442419033463657078758740679655824585115619300032365279890826026777622826952539881549813023082636306715121144229875234208220526621985544145533954866180677209097260391655655470229248087768344650768044597229267771108156018769988483016341968792398809175413417975181524855933961028540603001638585152768161234311276836614867164635932912950424824351969582040004689194154026744007973973954762883911424091667285756316109604783352216330598308197616498718801912108276642610070865496682573188465920719320309922641181828096102685811116945330476776963916890932187737939488274046440332421894955157573282616391690736907532796616726971202577027283602726894059093376502482760858922026764557551606534880749883802126583070174264021777546173411049213671380007836637493803539382870280168850511637260215520585342151818298724935719297423854070299477963902392190888391200062807562257421538346472711303705306831553260797107808217020342735309456575836394798621731586818973358918983300454435327648068639211487137820807022747893309932043442880197878851686019214363543156760657301690480060019061622191965973271819016994005443760433839416265736822491792342330618261344177987065491716597480185874100806964438259617252854100167690037960454125893792097817050465740223097995795826526701575357441324126729348671452108530267662485471047587760078876208130385148712800577670666087510404389394180142670712874601061377209811936853164510732092515287358403646948546622274194812256097127928543855033842246886112267430908156201746111621588326467356648510384805144384350328770415570375718902696513640884822649393801705057405551611052022991362199963545355748789083826379968214920628952202399566589268940528464799141326911166309635425869648734301997203172297772723728366825790647416365904395426597643956757655588286318384834367997192962402422805985454574552248792450262801494655671802639041161476037435358466550376565052722007373997485744617291310195242352208658323950657102698336033832423620937211055577047128709904784370111150892641266843611071598267060208943374274439443253709617377648407586898305960846203408666079455347283378599054077966524551543600440172748305439776711218255739003630671247942648276010648856996030240407628394225768585200456644052288936189996898034022525410173194409044892767133975648667600834340452637705999926516527864605349543384391752983775470267220736208225993136595426210852337866710084365727848526261153019858850140817886225276981120105102062059165941770656570363230672859223751008228041082065635224552968523045565902116400089747664501214135673688918572217086793563151225890379267276412258436330099725379738797200469371212358910948243119177749142806900114305515716026072054936349144732269974036097909623662019503962588715068469268864841603955872328257725819986223685363620775572862015916184466944658107245373652191167851246170280840198058966630171450309786686553726485026226940359441718424503662816086333783640396267288499021190699163476465412708145682882957064878813878954760567558201502066073036502298195571272958559378700457138232247778457046275584528300162363187405439660951479648061733094491305431492042087814816805701899783671478731823715426622695337184695185419245235795638139412260645088028285303402049763933595194794019245891345525909708419857703694422607345278931266967101548843347006009387315881731612092679456215759394914891136781964876347536472623089212957100363757870339158373775122522998156264421026512234085769105463194119863410559558152013014737596592574439286320959846595560065875443426974315971784787907434279105900457786962656842747929019185863572001874001832974337829470191014521639333276771869286966003666833632058610869659646251234237001025376027635512289016142543759448048263726738763485673854668666617616978823783260572878561640535321566579012287427866693246285610610167075762576590737520181817613649914632955259965796829005011894570706666591943701485301957818403690293719392801679257781870067101093801685959156552386147662844852549136700262282152258222649304819807913236456910292848173314301123339173937992682032324163818848493835749130442446345264177358014999214873870136717797631716096245503033362026316674579232580142627901918991397018975420816118274951065461393764279460943957200592550108574043626760788705309179156402090551328483802212632189529746517229139182214211947079954925682372786657509865546773457818050402794460899318568534786625223179667734276472833567824675698875077852416899093466115542195257184936530109808228014215640319862366194415043998495952898714959675722272299754399280991211237846096906425985897923124486242362443269271620442887818871622113734941475400584919715660646158896548430300210201409080452724084332031796634574332063318916696353421081150713165148172596634630312623226655685655656016810360203348932601230218220594328392476204657006770552618604317599374340446685099766715954381134477193317038429930617158987013986415518768047012793855216639879347177693641519760166344589047827379891655780715993807051906797593800072452111859954204626905303160650625176169903255109609005271046185817351264691446968407769427887631002223711857996985485236679529344265688830490211688661108811494226881440788630288447265250691567442749458094090262076265832126784370051352533317194927306857499399937880137667236543597613171813595905916380430522381150895566677269464491755453355777179828883858419669180099218552055181852369487170393165470476808166790597355253289964833318978882907285572651882936564681712433117366728438585334756450911774008320560690987086219955257067398372188054823020605012352885514823800050471013993407906972228886904352687517044978719169640029655017617088673609575493054403690947996374876258996128154008941230442534754417569977050966780217527948213641884917267836475723205764849212780626665476181833770215699659149407798492587731810035210813681719480889572392063732426116361543599129042466470434626544051108081062863094150614570454289077311897023009273317606396476599107762545885223882584023311175419886626225997792521619057104825565364778292323891905656102928838224853417409807415247526578359437183256196314504858679737786904371765990592758860849791504001450805072650920081358530337366403796840833966451345820658293607843310037803941536596094993159025308461073920903060830220260348046095512374235785405689161736976040259910467658050563581356405548130789769489351394548493377215072588244940604991238156056928647397934144016459674538634345741287116689166013957444296879151803400776633455463028538322801296535565840442713888248209423284014826515046785425647765698828075985754374770490094241758184940336809591470586032974368777044737247112374982521645349370412779051203676621546791377034594889118653188822477990606198657817158938534374232364826803675723555486912063705188958956436335175901247197041167256680632063475482971985357184358486482733684485365987787781840214982581799844734458372872689008542803575525532068948092923459082243962431723782722695944373040336091949240202640098111482035894772965954355350150708092696266369968735692201606869019568934538863778494336130603785357345116272919355569711251059350697840133675870139255848779538504561114474709401091264328622524460814557039394565276659117605119958079886775496051866135639017212473642679565695536638890304977255078384613770094289374234351657810742333505327757956488063950532331981855059633068546775837923622165082934919558559413951187907979162037810088510538010226398216409238193517855164694517969648083588041009827074505372285721900110213738853985133662926316602432921713878185725972736358462840322117765363434090774834046428903175095949659731239718981938669947399778616113405121967110486736362368889083572147827345142309757336486046731430955324962963968485016392589263419326373302081114068491567185077352094841290208642249537552272138269525394137257418703956039411691757141178650155903639597786027794110605274148221547694278221914536777387290029894261172608953457109368560773616953080929316348354325383865217205211697467525196072918244395514992140113579279192177280869935551689120690320582291977454860636353328146374069907420880575060330582458611112844092911763028769844411570320854517273222304724447641786288122413880626338892992357163866576318344938271243693866258907775690386719867813387937176106506939292402821451383429480754440668341324793339784528029336318490777451405501793293728413898547437528206821010574722829834916190304222391240855345581023126060730023252228948439312787496713751514682066991063622185081620071449318909739650144193563559710902792104940167180717011460255173593113629538666720618607877839001168723176988797132383882617785196735457809263379302649500130748074077163463036177946132933409858532904931038783039373230355358579896471839802056707276985600579712925441014413674676648645521661759387096054388771372250195203626975208423235799150702805606904761722286231861987550010795392743379626464369435361961443648190832108230696994959207636910302097881888008796116908132617160618728841994959975143796583572365052914930505512507400961871561713711084990530232849877970732697497919589760021120624221482446271990675594336575075424637722880565119670903547108521263464876179757748506515071132461195116116377903754091016783674848309113080641475496601776923766436027768656053646103230796472766364832490521392026969537667573891648019104525963979776722375089922752279309218457242657490543168165431821809870070165050080244482059534601564791066272057761247894778022636656865817302418081388486709042830515569934987706408033074609233474802085401056493854250296342393250921837313666848122853662958401902780278627058417996771221535623466879185597398579387421045769325173616347154666317074854456494739459872116738483382746187344101033603590741633356557002726307017727379226776704639861678560233987922992077503135680211393711165241659677005698514714544123692133562959762537089831093885512831163197126889811758116857439008368213717525373510101384969311578873284362577662487738083844642868298455724756295127157325473280515091538621344570930156381107851008726657812225494151982445661254444628192089830725263870351026886709798297231957459221033732726444997369079014289945552914588017725561333159510151155582640240005785376927025396496525931423475371495088611339563569348817964812530043969049531045730104999692720381390196543657713535147662462184365235432135964969018583169005214772594774119281418530272404842996135352334103682059599799721000758006186522992143509027877408807220226844314014977106618050797304518333396381624521662452427947329809836813662004544551268075601513113813954491920904023729004633089366179326179230333282329318818485219048121727564633978211593432596844145664652310689360259383421088344881542304053246853627200114185362783587610361292984710940460957152015573693550955529025506584835119510657375669648008367701816533929899665358703009433100244468499844565528695808984478979973284713204346185339077343796362168833440089601644743712293752766822655957626508108275767855293886910779373979597057572071658132985545838816064003093184224333661030825543875576813443716941844244249743974877224024383000819799003047116922193088792250378676998898101547730363731584158718729879772473311897209809031430123152557639429506777814618795620191701253020402058508103836250882356882120082554809346278296823603427037333408505756825206969886055422936643167828792380469903294276368536099023503237532580946217545833905595147846359870497994194950800857850036096011649386287760218428765892253715002905536999100030282434498234718227543700842658547446813426452264664634850398315207280936445631896759882062873826377452955101274659652012711992953488319722829766329374789650397389505527127113766518839729905210430607167426508920330920094514105725422666019482569297739038565182057841062790199175476159363884657513126647835652625296234442164284516200776777211623995300222358390863559388912187138516441457962708635336436782238805200618857230054278041064098181629190676390814867066988769920757409803277167800018620992481366979482571876218590087659527584014057030356466927033809901512582728606956639793603931619380862905440901125319266472544232339581399562140806932316837644673007965749450732951094207651062267411627124540968079188608549316865436602089820319904407672404200121348530109484955280277382833841015353188929856103395043804079705802524739082935312235916110761255349605011656707234843382777665836238465949539333658996273292978275443956420656152402409649463928829886063887124651483513055291932107857503951399943217051153110729125317142780017868170591738839271173644193786551759479777392943203351155502104780163803496261234211136020549696611762008138476897787621154253439931291058938927805335198085681770450811139811092493973452772362184011913974359100181384956683495402025857762459834791995655350884709451233823525580596575972947444915904673583652804244645522133676490835970120973247726907385024595468377958428147367731330871308668839222124105796330080812181299541289554839284626651703858603425042780158036073670223653017635118962735520209777829150460199485730261534036656584337199878064799140996222934066397728956188363845311253287185669607101667426903163292280560228771028045867348713528161672417852958273091830521783049718107614497149075189100094856247395703791841451968483583270826821614310234873932521278848389303622043183405720930285652569072808392298318777817629743636064676104681276349800605498760479899247001110574312803482060129321374289039019811906271757774772524774759743900176105348679423039900931178796605241096972269845604598650796859303570371361626851684237537762262349117208118113555276761957086402116362030646277595501253660261845038805696273493018362856660601001132827475733269347229606679350029307203339172317095655292689537994514917704204826832651633360114592806607601454262452225982864687446541272572070914902781650896442298085182564068890671700100161295760404386016245032717259399701549328289685705831923710243579866467742133584959516121368493152227307969126590075816542934267170971461854639582538015741536183041527316179634689969008678738799211026417234046179173272997592703288249610861063558720302064728202456820881783561478949427916363954341701598472702004355014892242929432076504048473233113252287201178140474205413609680849438396931762434596795249987035619891107381763534345163052090595877751796507331365795817665300982555497365689381070966359799827986908907123939445776674679706168627207347589789913473537397951767419794941654831792630314280540815860717704144812888283550408181336595394215052974582779019555001516408656595333384949254833406684730882498085231285648161993761086408962385623554673369528513649819372422141268617401652681724280769122767127045467358600220388648074077021406826392979790226013214560881696854931684986286553093304275591734655341571316708919917109439989388326164572888912381312232638790487073731150581134232302089110052237592913928888433963711989822281835077365851455664907437475039617584416040081272863189538587128942204600730067884960153300298288545389167629832392783292296937722066719675197329449040052409775150646997517404026283832377763088551770901966590515286349206613154321062418375218969763397158824261843519472546509756882534418038065617715138500695983065552922419096974855816364542002627206410339050554881568693738516895381734707774956526914030990262742707858412310195594922289367239049892487118979049567809320468741463211462097450398814967591899227315180457399959167720300366944350604171910028917076533249095862104559970842658396922746789371911766660461584752383640289904657773081259944899275669780710247605385688010366056900037798100706967680394449103252594048493404170611983767109589853790984708019025119042867177268864872248457912162777666584935064098441139624555670089688890171355859569963156970790167907117548507561876688129790575083864146267038550931123500774911570892387570031039810149820247614728832834629209505644822528373215586722388753494685369370045774456455716506417792976961907052498659192533462096030012920441837387408239222376257355641085873497064854109534240692138671392263660094519230642727150538632050395858114990599662638877890182304270793556318780834888863961343050662949933827976298002773917586427001445304015514244104649386492732394069540058129083420494608748032887103801094089912352356064587534545866028552435326863205284012908051289087239788830551263984835165956937782633469860359203935981432602525078123903534968971574209209781924984026510149508965604901246317878216820284685603098053152924508073021207213909472351724936857364425858394092443039013450200426328332135647622692153291917251604821438650334344388921328558196710515140061305528041050462248975446169364600888507446224080767466414819142506896349706271041099361087673580183988297572466076961055119937787060445936172190659108223258805600298318791508880214263573187027619180700982204631354069850713571626663318339601809034263303449462897905518149468698254914013259424937662758639768214383409032146249527825914753733937464121205483493846098916734428391918914310270947253968029832799545738701117108285851192932820109942264742334697310298152026987475039551455036288555410097134598893781076617910547433918954511162560545395505649253091649472253120161499427805205086630504026235732177450560237155203195828126702897944664444264025209483710374623924953652793651706865071631466118651539175503893264145419823607671844331477755283235249361473067949560519310720560094606875030201426152933056146845736341501407686313179091617646397543555476876315160665416723675005995786107044116794642492184210304561687302636943175590738796412928554869051607971616757883069707932677289200773820500107160269861795171953083027789764429579581062361477742199619385576054109666020924681917854529702746786003299899307590756393634793087241691251063188207813292598023979545307332415803994285772203066732667753944668751317947083272930859338065761585636407862286989692205581502566777954354348965099691582548639327838853548496071842110274741848013330419762981932426988404952924505337398591607421998815485793348624625414256985098562119440472655099472351455047960577424817807486428437435677820564448108201779583752423367591539843620881730886780280264976377055655850572440926801832467701054490699190800777273970897246462971648291324627477590590373566663473324736284404805767059407897102418347271577608511194480394427050691221110001007834710592095624975334674580320112970929421228199560083556516322824693523506574583492405639543786534124721326163369470878200017365164796871833779342469892225631054493393092268842733258781131644001533780319839510479926261768212527097051113496764893061469588484780633508570407045055668293196789469651057778794164653838306037925387357483418080999386363057763396677548826747755090849739917407129250802233166427307032459534479562329536983109719930890476453743607551312212717159515873446876392961169123584802422461593008909444761577552127584187669924540400163869826139726792639082706764612750726183863374230625977668980943026951293024567707766252485664377568533427912080255335363967049972977879164729670315398154253525461008778911388156528023433137338776235375200522463882490035262056318206663997288542784030647767409979097134301169100355142731510589064011483978982008060850496549676441880174403429960809318093698506890756818868895995917764475919597012834393636526187623684101874655276869224025978937760989486090460382003845941154174718500537880323887379915268599966258582796223219895991040209975111166183970579270566708102342940194228879736031287358248790382116094958100479876551543552879984292001207034610713803374786363370468530237284632566004664808759125395605044567588896124458184739042311678869847723963558821225122579274175456445739464840141847596910717953329628939369389426220161145902399365975060028276437384280293051957284002152517205785059657603725138848283323356434177172307197969137516964363177490731010233170911052381383504731964014660955160742986875196190829540658980786385041230257952013991187039661140109669706289734745839187745795603353087074196502358493256586243407490134341370694853614538353119273319602909792794098449590618518746965386225595312335552694353076773628816997513424896042753867054774604713175523789559766224381585806405425325050190049533538703676321447725434055307861991797323977482457332995605391441074438868312015720439965781699418860976214169763360778295963584471682614231998190945119505644300079862138558466446720365110130928487148877011000808360082202156032190360073713851930197544874578792798521652853469243299241955456348186291168801189636650721582689196240067730878011801707074324912262474653776086328830482024402042226853962023207375061460048361940926148062008485013174821293518663801304188742088143673257918697286746489512655930906092658714897822287921001379026447850613022894965742765720109197159881509876907886143209227646304891436492170539521058244780774394247249828802153060475266691287551214905332982177196289485387435168480652280882991529055378486460255288100990434346840123175341228423732733475315635992663477114205955216980301314404749879240582196793656089683697561656794811786615090740731665220479821890813654989386963441441402821372620912119332407922429350636373026610750135332724416527742134173927653687671571881793395788450971477417582260150453876330656905824470363751921895919561056922754584160048374817858992230119392679387400651994916258721263693387721120732585703510159411354090473827672004229234997842086508988336079163453354795183458874019378660834059880825615915722303031864821273003833305508458770386794214838354281838719904962162015612357726717477922834618105479972343936472966182373557821528905126910894531144718831916474055926179034485643308642661484189952541300527033714985691473264832621955048164654177707878280188600021098842756468174140909614673305531031844843055334264760315220682551256817364638556859075288181419646389895420305880061165210930056419784116802102141258563550003459009879312145048147804416071744452947150021147559583082490607306854285720117194907285906587199948565485525391463056008811566680657527401895974860326047246883425426213756770621186516505822534978082654701856696403332216457952150144079939830917014873812846904975204832432791414409515382111728827774206170703468461585226811421998136787801096481741885231870464493827054370708204072991595873557828878230893597419722505604725902602045433510212510199318365245376114998877125608503916700704655820236734742158767019800731267957190637099650239641826168449172759858554785888615476867998762523652981764561735724279662547892814606238884733637573811036055150301416225451113021797617595683982756043926740148161155007144540584735247149685532144449040383454908803173690813272050458930973789653424994867049273491598345674461367839041410373508899713849389866472857168391297127852924223600986488602508388667713109816046702463105397004299400322555454765457416267867237137948751456102975264476580415122168312196829134149249456257856698532208648137114278872001166909866255789592817722000071128551902650589181087251624001911746768217396568181301886736205215105384304078700864190914789518508688126802515836433483384136405807631413488921062523910631077944148437371879440336771038156481522116085512605989559613645302406566984002226687504698486760629577211831009699675572124232533741865679786553046008036435841101981098973431007207356799980516391118330800265484966688500094958128708239966961989675778782928814839271865848263936219006532415286522289292135228245692787153655144946820131478444002423756614954027688024483718587477359356510794014900368222773014785387734396199972316175004123202378803367509862689496726847974828936208494229359130875875703489254504984736678268119830196293581734803638547829541429354716065292130243263659256369866900110411239546229669304482096484547682770835139859287698499135804743156470133648844467500356016232682542978805533002156121384136217496671683161702692588495406613442342249298160376857478858021960437659532163510487202751053170020778223089583327146014115076832783990455342083137622607223735513487653351178159373273578918483092375981749020591510842392799739895958309122071684481778266303735448196327980957718779017229897241646079302007243205873074282954360112514519057205033343694316661652996038938829935060078440613414334250088130230209594828697815275477856020749088678318316874692314174434762104994615444161774633352908865988313349468464021971817680683609987791202614447671692416206651208438650425307040300155368308125152025900877453843742936662062175827638000158505658757557389099558796136474120364151585292277595978190526966768508469623096939367476872504617283510641269171487931939609950862405392917180141459473188943461997571288595412344195984088428472893029052807272237270755325611941244411203923074866944639018702531548778822606628583785687491058900249248116729251422721564391923228872231128492004274273246326481145565692910594932152043766947153321692158415299279025560971719402651626406435960599091639671128433383004189397855375713243818572881916297725037422452440013217240744129087075633311567680438486705575784781738353321973857330667234678104216669137417456709672928324467681783461034663838989118981508402832542640536692993820482562511770629727461658558195651794413634061685300157085319852334142896380683147576788633446168780692235555783300388784530214970721225206123019676069768791036954818423724562909873711221055248248168462710516502716642940053128827272004955469781099061808433355003108476851106205971258222738783786415225284413739016626423765545591231977558505991434360137682209583141948127967321343114445119468431012764131400336156525815011528391882482485457869553882515445926245386176404424741729474968900516377109411602698043529937403935016594129848298000360079308467147159329809378885744410649345966271485917132511898341809498213221275918165869927314288066263336428940894542293338087147039226560000584483561926587432705891414816280051867127441132393809372059975002187749584890762981852491744512915343539233054570929542403971149208212632686171275790058999277703679380935871543594424889127608700418412014573766669889054196729369726063383249636345110761232145541763998128893576440350080634506177718426883997356604518454201409279609838973223954537909917147868151711394827033584402063825871382932122880494544845806415908176822397815540170916136962969601722613740335603457541372518347605702204973456780853362372054972848661518810460582597401749866505221269723480063428877273392558721524205917366473403972979888012140368361324597935273568462580330782175077566890334173990779771287343995860188991586798031524198155466204669524211638251973265450446330223426948803825406128128624363335967025448950722016542154050881282964279184466420625626327800926457471987632400650804893780575076483072050429378565230438607892457857302884788151588602619042144134991378913552233034262836931095358173560653412992139613286194121316533836355580827886098733434369651381818016504282784738187715289902293790612255630773051101586589089990572497332576200219952809049657127006158477178328680261030593863181054123333359356108408076699509929414107561984766636196962981677386604151304365379206642359328177429769557044836750715632270195443553090126509077094799668069021228782525508426931250762067290696375711328708259901328717516902154197710509853185106833014104952233151950902424164492044094584316325666194611576227241728602097152833298790727810666235518384285792351317485410909892451216335620923909524020713865498696017898178861124715119849763407055994939474415898205079069488311815112064520617550802660274576570199452458566931742729152898311352408680238446591171717600460581643547513242734364607267281588963915842408581104144335021260368347863278981181843834616911584248031695703441341600904828243523592346919304734110810661080030060984536249609543575738375406007690538936507454227735668476581538623259085304233129048899105307109113134972060157687767783429291684240380122165364326501846195637832852154271402794833073100208987798065658452326010576979617908399064933860084214207526554058679849543998582389740250653722488029356150292157518574090261771601074261128881206503681952059083195716902871844147752546980606892127203051031029665625308032118770678642416070694226550710582767991263877761395336429383399769145098722381369223676176916031071280780579148141657972488353665783825628134930947221546749692841156392862773948014888438138685892194451246760249695713124237908861130295094339687617619962071291854265427595850358499862524705705400491584683585013435702453318915025941115084169037741969743916174444236792197195624396055788735756575001831499829539327189805909582070849810627233881646701135913010339473820767859090015910337744279463408775839031505729270034395244274163656107250180658581397920742325687166615382629497973289186864046565840547251993579741469930487063367101427592290547003333107998808084916701929564207209335212336499260774425535991372197255063584867005491855381555789209641289136582258237787426271643046074734106117833941359574923999868820729556081678852304557553589663851701458177470760022806283857953225962877053699666989070661379826397538496843371044980540809918593998226992128746240297843743783831544452055894392457875591062602410512046889668767904506142079361598321488403058084560554529884335894651247805610670658552335113742588567383584671674314434502634102499152751023930233412825945423566850781135022203612106982296408309701055013306614041064652188901442734776553631542618290696460090626781796628849923389478466964110475279293286608753853888393542741096800815397705934635002014230569486120324708959380171751874846066522937064956927160504031131346080367952391734572271367600862149355973229320893424633765819329981844980909354477253341300793090266699490991338511040681746664777910737619860983457496572814772176873290455632549137038719702606775813031854277079806158022512199489575675576824453963084514035017316426945773862936187153190856726712830265100973057699114035315006776892944477357735169159970098351332321854196923490692134268122433805558498014765972644837881402486604791378553936508505109901139629571796247500039184916187689993918517776527755690695583057442150555999445703845691489255010276088720416892135167609820133684229998078843780194605771576491212796267391527646121745510100068671522479040692269908339956004027492360797210144087025555009436553311426509657609459094449860831639905845205796291929879796903903234204505863120149041539475716418796131104356422168176151924277848689250859985784379153577612319008811795096365456469233563058066107463690766008057338723532822257892646776540097300661706825244418613702050672001208555563543870535121000626071923186338622957511599350563997707017769369355233235392669369798772959499542294913772261578259111280752263117692805803307980568419928877518541094083773841350836393820909402874996590446668802225504915267144924618568241094973515396492707371716973178364256571951424773800730731132006347111462288112785851005963781368161791491175787673772189149790301177825081229790220798512334777291832182478267080602039309191328236884684769165475710247589682170474813715604184356996729319051670764174237468107350457454286737066897246237555331392084592133026729355302429379520193496075048265950114663074803623781022147747846828912823061464001851338233389028318076763778972081177418768791558785241558241114515537420330905037189470067186704860498364522183118595213002152965680530033576207410362795237975348003052877700462317316144789271614653954151165950307164040143261902678819994520573684085419073191394349520966295002664961440044276626348027845292344668196555717836441649399214224298971295228959856607498019688328969294449858980061224404818566151926566600475958908011191843030826235128764276213898130860689908032631533432382702508354237888058877812407033766287076284177852024115453968520092923818788768596887795956659735625875701614307518714733238094388946416922673170911643573608947867285696183077571760088040028776984235643380831724727172894026349369310805967895671809287883942158354422760951346833975546359901937361052239775850752057624024056673380806750064174018174468822312673025895653452335395316462178384566960834416800547991012712250882664977928348868684618481988330469761381755232709879205061525730414243072813314371094843082570398346774346311979591536177046032046612419357319099391365263806482227761039753023218475495400560763499456152316956219214470921562633419441579264802280743403386371699711635911393442239261168827191181066546950117677924175696698068515260710715085224696974452544770775030918557755117310867476677218935646318319583409832974462745790232093027850027833764279452477367908803000737194922400419956950974419441542032076865223329170298632802897417179392935010237990251034135597031778754583046495487923820012228660391481400640280601722628317440522405240153221499686677065594548940086263507031059637795456701029421778401416869956342525367817431589925521734936814660948279368586667450856593142713657024174585978186692969718064739575440841408474601225506542612106036044540184708309532650053458072137251144509142715097140143471730021935837643375101500971689901933869176646481862611937819082676730069076797543925493599101130872491193353395204357364425345908463550619543738431426631726483711609077798654603757230586316251548812495464864310206126026105231898172480858250970712354509518815043411132826668270872802127272766639749800419290314558352285747905821810287047207251902169544772615800587616770229055957403730676064665980821728088689253978835423039083074923582585571251513467771787149446461577454548082283391233837840671826924357929008889824196414511565998316725314796208031592567866311519789081156516445628910965361648848176288575730571004820367835454739946129421476649191560929206385937516142630305102293413763875955336732856783613140425941875376858845384489829201316955629948880587797115653593679608208793305212133436914339072888652086834313650381793333768117945335261313722025777329286609276091119215373248487263685278235845459885769357810525084738620587098309428532104657697730116161393212322457965416910980454734004867480397128029738998322580616550179790973869883257200358710909235527884316100762449021118117674968922791506218900996693465933007221968121037904577303193600153683700486074574788006019535837269406426245559071973864250638930295676709665938579263583363723016423321550179988778912357276836348203636808610506244266289935181808594712374009849217006968607793926451665284592278151629242816006608824207932188291250484648392363719061743656490263026902797696737957672003443304678831157430575159854130141017878516716726574002062813263268748806337604122728217807549414561795972286067654690391838467460675717340017621994020974318335913731375983975955703077006020119789681143761334194047857921913742129329169812785833998891493442339651368646564879797595205542380876147199456576731464248601957777159412609588957501567269933541917507359975724385598629367395794363426193612535762688433212085730653669871693102947493528186359261279038175686781279268424878009904417124604215958853072037446303119115717318240901101994675357763217146904027255548081209374307232962438215983086732921067178826747529185050299646320293468975137164588371957530388854775320348993624448124482342745021188861388239506688313132634451830398944850487672173818205426379666468621546754796993224317848669637889645798348534920199643632666287067460202186264505488639044298650288586317253236124562313307718393128730905189753423404972288817310876582232186542546792399143815358230743737018533192137282259048422164335004516236553332227592711259826345546128332869444379188864736146186418120151865750908774869656203023934358716676366523021109167542623812971762347986489333759033761993815972538709487115149181242192290609471453269670073016212389089279668547543705162082102358360243389979355622572671839663352738073772234913479667718790538696414283698899434053704445816299853751554230672255435861238703907824283939630672926199080190075692418451917412000813159644097719106896229430630421523716011592310004647416141715805452334309806110865876305932142123977805715265650589879219309406646293493369844376930283794671530395798108553169783225907461754403503553818345107763121082034195849149165528006438577254000169769277207573375842427843377594437380035793891040281359977812628907785232109085364376093487441332322235281707734545842540157582222714684976212603959578780441166173467324406317617258016265639680933534391221199464260699245862269907349381261414818431867884830020793703888937478224619382604756756521830379597296472273477960458178329962408964038958694563535073015573284024298584350619950418398143950199495487571830678302646872395473487235440694106335717735458264880982700376679317458841140144171553471143433253307261310587157521356954816296560357288911833582748067879615155384427943842225500055830662762872186475735032823867827408662554479365157286384354985295650496710092076078299664532666825865257994727419547711940091955011524087000136749442450168355998254775480343869122535372064347558446702173394093276487443716702851497950601607516923660130061957714648971339248336854072813265975284925356620189902449058522648979080648054855545991358995191005911978510160370047779490405105381834078659323613980496599926158022196244024675663611696302020730844879671194553300123721175537536889479732911914932508500746811460454253373699071244124599353779371910973283914138532014593363808965275467810003362001533468687863531875499647106886740834462176703514924996398718582209291144096936832162550305040611525849565118889539252930908774380543302324104425688138860337177589022633059626835928124935629786431142853036997947427180235608694781334505507926261820838334274155457854879431807659525872882399123685722362488160023747500295539076816592494881310554751226175226650378379045213182392651755787634910578129311922932965847851934373712206526437604348361540623897935646795345345925820278238703942606898887734387845562998507295110140562934062400805170509745667931146580031362894597041075745124441309162647595506859880095270070881051827868103626069517429282239321513702166633035065313826900368357613356035343526380928186481681126965045268279303344544152938107865974236131723975318823686862002543262816745170116042764838704810234835782224376972637638680718747399029967666103869491161086114471475325693788307052423725391527156907141440423219645451088056806168900152922886952678391953135533970305731050162261277823116987169114191912563560690661303376303426417807708367599079768653513702283691223473222958417027071876064481330307395488890714211913988778546234001468272304836443290184200153496788359264845482351215590504604670452079376001465551383332704302320820052257795508317443179561169910737782461718967060438923778915660746634434807497613318673046520292769158286809222105141340884156097116439681978433102222121743755997444229979723339012063738382226422945616315889087526146022568487495598185765634257603443657693900374977921513018977041280785468726830233228385705626039699438941900840655766367505936896425748044698487286124574655430208592148233192979804095560719798187049816271789369152062999551453388264057633966046841184784177235480392111168849077038720621970796181784355283051056706224591135584873486341783016116922163680844634915254086063835706641057451439414017122676712302841589303684515557843722734324092723732558803083287979710641493293409584048856049394247129975341185671835896057580606258549908456010702051343320465301733517897232173016046689873867550477568833946489928847110038171299050867073271103484870359872831209858456009778928074236836411279516536170014968876113319926090419445192439626716695117890286787604920364235322360992932003073680868309662810714057421122194624079737066536429747321744113095214250492360459453614790105908110815332219097516050337616878280868890617653918266746414006547661217801006272825661226522713221215558286885355373901295133393559814822428261498341884803489724221952142853171806630631104771787605872739246190692325605724537495766909829042233168361461320551762523425465508667351287796630597103052645030318917342063964020699465401983613057715404309287754792879249616291418664908054837229376842074919643790616803471590481966841135192497642225428441303751086085172589546777206261704159987822029599724241032412495478504479619834716335556712832383875916333823138566682619181490350098867956940662861396602276109763498793488360269594062873362599000136424338081320364465083266174607572058076416789398001377041532901053637655442238515183097423729183645376829195700651044568976246038771492513671883719730394910091582034444377090982487887195683623479356813296030102447063298035793024401620178799592865139706974328549659706827963099606535255170599891584271925385060216023959234258366164064867418023382878878744836335667246315223295286179828829964212085878244093087347662852347661434718079114570983470293272948476165265339018863321404333916781798573626759430265702644373846644174642793940215847498236084834554642247333135397082936434128989026233609718528442000073366025138017804693163736583312016156887015168912091519741992756258266539192171300652358602675090925111671526997427293309871410680991134246676783503082560018232224171730522012717805231057233821691457032017743027373702090652377456709376017951091392687758639743978483229399843048486879800671189291938430315386132719685574750098066891567947157962267416263322262191638106195087496432103817960394014825182551706289035373817741514976741090902832297589060661783000397074103785814236823591214081544842653825568966624612241776037340697804759279002905010541543820794903340146899626151838708774814930396993022871891349866370114545788280268074965209571522507787746972988053436299611203188476949337399359226689659908576797295924840296548679831621883524513940589932988847945397821880245910531936794315033986377749150004130331446156988521808338664697169966477472723743531917385212447555696887088363099520832703468156723997750339516574286344977547004749381963557352894617264479030074257017591787119726347011940290096806765476171446771147217778205912461611017233363587847946232416583889101293150970082562470304822264478184860822072713673433979430422124386871434410296001758165620824160576670002318887417460080645702485001605087498585794253828419404535760756719190925768911633169499189042235648189908175044778066841118150281042454945004811008085820091941260391083968523710699852345059342294512438154642389917848052355510445480535146518421520683431785200427705079881186960671909966389864837279780477810800035767916769712309350465100084408786000668325459845635697657122618541210804106086025142250139733941392414985543522909661056811594812445760223488356430307818898639557942302942704006760790241498359621726642516199495062780348481283954345621077992950455381989376832121901172222028327167810591495673169905900379671004872057759084833023381822775566812377099641744225067652466620256483674773104748602712906165268951387661380960852614238394431851091405467330206257872636473277000878213007068087011551677031920939521069537261310658594529070954490923416770753428806241359922442540290085227185673660697035057663922390817745404150589447949995523523250635100487583084159674992810570081512787436316912318141555747414738496524896246167207285087298032008243917444883031485955375941301444917683717119707165359884861174734467803908291107722610678037235799524446029390751315969664869535355370050063262142796937780624718272493448262624784282698065114169588059178368748559783046598416157247757856896640499560122517128510117272286546402298188811315650429284368560884175233279231575904479833370271952851309162660576014208888327746129438285765071332448607453763504255304914696088422136980629891604536027183462432234632396801918886611784624799255630797372360736827273424832125081729651829814847605782649074057597826386879666202927975559953047935390257811866240979549792108025122330925769856127327050997572292881895051667559932334422207971399825922084095589959348629540934607267574407082491173108292353104182024636748230229092864051015465288393251870210454942261906012318237913870147262714913548319028512798981504228186986374655562316729516981700695523591696577508734847156525631306068837536987381490194729063742191851362541552009213777851768574484527172981062105662194070831555795144293918560736329502050189999665993941311960630072566873314598162503317810642013878269002350649138956023086062566047731290470826785077671754139716201972563685121322493338492527854425151066459860899925044263176831988571060023061768216889671525743916978948729574267718866702158089196477769811706829672734311483091237498522237834633579328290205437898552978792736662962619350840479559825759626213358473473008585652158070820474340082631932531033185146911525058428400649857209650175162356987410247309579631084495054494111335062756254189991388812150968909142010792569657357497925773375129147379040759723345279252032818030996562984406839421317172752607542454195430509738250280776603249599448212878650853113616480672333254687555372747921443315281077635764631535357099842284454712928583668739329926845449292121805946114190855681168506451355062564512651947769863342191124783697385935806323793104935613199744505012284541123471255912126697406444272681789458575850236635099403943186302206445373164590070428034402042489481982382067539451076252176660057106582927382789309352671094256047534398013346795001712320295167075787231257939684461737313023422291403643235053928704899001336263547669654248540237493069884328643580725498677552834542318574546266253451255417505119042508572456093313539772531117253650777442389094127967613783486334717050997796434230500906552377220229595497241024126298969867948031771542607438348014927890813387746035044749175510896584506312266264293418826970076370873520207040258296007723181077877501971654453345481491279721360147348250192939652887585188513183650681218128525712119054005629036807402242304685387209898483361428476436966000920784319522122891985842483948441626919630994145598429710443838407858107758190486453333492651152402419789471029138214805035751329619917600205690559244278445585425706540091262793802122097394322744546515239266510853007524707836666566140825883851626279639324556636934485808211562230390550028165406985307115336245835283409863266022547448646612873012811164728392285054066331284288059070881256724927455284965019167668650679597057498237052400215666016459369825159720664398962958543877251066152616683089221532905112436007415547071417396540478647878075567363828917312364794629684677032379861924276819442454917422007412225705047222309262636840662275492420316813346080910217831188474267857447482829183350292282459634986007142227670845434077438437146176560062193006604302889399553158746562564183890769628065795284406616684267297761991259783180630479592633510680141052761493036552820067085988781189252620999976492976740906824446941093849069644124634849522617711924083891367264434714367821489845761532870114858562684855602314580730154629476089349795444032111637273118000380869324595461490071658828366599785512368387383550317746335307169748688918693120858349287743942968935981605160717491296884777676982483003201347123963926379354137074358830609150956667181251209080410685601440711798136728066735150465149072277851830962051716659608897975211565756269481628246841722978468683248379325416816206443356672270475434383610622760735616328758452621968341119705673513377041174003149016559722507706331515465312504532960804902615506178887711032900208389316765346688854302731017925555135307664736078720789579137235464566053200021303881215269907967000635191940337372279593949845633851343962418328104700775796535841646899302451651925992882571258780219294656925739208834726908067746538508697981650190625358312075413769640966960961754698894703234937726618800232461074924411218091167450096088841574995206026954152840838462354979121746975786917315514689810589648251825811169466955749841185859758228568680692291740151174859202985108219820614795276347690520505381419731783237052642358708947755169354855305772384960372104570721007772316254114173244000377460934292800999465184994865683309670745713221583038145123284894302190442595097492895827165986262314704685260288367944232416987408687569292783256174681111287541530300454866791413613770331519736926959450754275857793280142572137033501312613643190552456384153109164765230792521514205480992403557759283797690270535516516205355872613407328300011584755213086603531806136184629888362263117899019305865346582359928367617621198250766390769766223523685501913134569263927483808288010477332975820989085446604787923034591963517349577284448464312690050371816799729617210108561439514600583107204399093658210503690951199118278614599621188238726877776067384719889095662940421756158858020308494688472800877381773044216121633688587483379866324220853802551493537486666196461902202583813515665122614711397534598772819662181095541422727061391203132314346988107118426592803158155218113677458577080893363018839622907902732607904350584748767521017946762210261020370957820797832570593675005976477031307288367427938013909660364121374445542881929639486129620723821044563447685321895364584437883456696623321591756617895354645823831336388380432923515291683816648163358782951413723545385860104334773270965568682998591026762948502944238612335023372015684665122625378095104025761338015714376039043283424201640495491835055788256428223855717801662400481716320769767437473474604001751017183175028313539451401526752051560834486797807525042947180992974219477780724422362388900066996612515894326240025005280665003712075833034789723899310357797350780098969717211885350377463577010676365778966540458381240960862829064087152545421031422399105284671175471376464682379836732385595942283554799396547505102365575412536664269164800479747373742448311328731989199854188017845289552553917898484789944641655311726270733794055857339700875247986975548391845880527827290384117180639131644096825705063589824884928185823697072900899496469757199543781496501228673662688371687112047875511759705370781910470030363033330848808390621496833336540350226582196992284471975854604262298233786725608948797341406169035328802359958973895562262608257273845557511219939967963387115367104687907256092784096344477559660069996303946895100024310431191498701812818651469163184250549371729549790328380630149758253518974314477892585870412186907007313193055595108439986026518641522752319196276620864139639089825661247381166800906469310437465857879287041371053730166897728129147435503914473952705296843049157032038911336062287932464669820074740336993335070248660844174974616069302631890985039589168554352984285518813942350044495685659769707423245483961731933838321601567975486418021101494380215678221076526764458773692558074138672020926676955982657156216861942623441373827830699196189662905061537578453929615759780675736047677578619104932538159737110496949709423674218092101469679375191034132693586958279273452804807941122520560920445938383298969029129834510420291345292875733645348823872271850689993499395936978895807651804871684710482430260155601274752502135380764284977864128336949713700857329723972062540597502197922278367874899373117689032133708021786934233127873176120323427368104959990730160388998057086251629479735794525007668532713498351422903468566311196303842723699340476687575778347099516447369904241190710716376640195030166031479052607008000808809249047243331076186108226241325050577171430397217780600977190697543120603952411728587201025260251483529053992372485474802016116842583276725680672853822628487573948557944167847081350944196551136217538518533909445607595405803481735364505792037633103910367564675653441765543277230768010689713302850524437987257066517034708157804366640688022666148172211911259455717674086414468756131740058631450681707062268685052727398567392086505296250876118613458497183571875047911648672426171081361250951928636983271937112121838936824651334682458188655905070348325431281779709376868385273876892573385319300913901687921821391121089652645094952170833556268268036140684336735992537836795870237993918554949072567733845716610537358200575419709140837279276475945882984762836951987985876033129598682288452170887133103679343703580496083189341456087416483214454860662310673923030916920575314921136491914484660868521892209571815124442908494592243129938302829191592161668305622451705283456980797416798100577735873698413374623143791737683666462829649784660111883323601161346408249701239251521804911089462305761036109007215626142752866746032106040558502418988583778271673177277333458952524594570623149270825340063829246013710859467575809770667603124104144935603374485006415690133877755798851703169500697082470123498680891157181124609240012619541576536710630557484331599350245840979591962106149240484958132508712614002155541462638155024897855996302594251283456923259732518527390736999216676715698796268836327492619609481529663826864632822878182708724505820080262650396121402488022340774248037327719464593742299781284823134105741633464000911463630234091361648812624116972452993133143713153523655167316970106127515838512983741767293098460066452785807052592723334340413810056377606154438594848127740857350542801841220443138158403982358900037115082736606919992731574829692543801315279055042522274647951881483323342365895836873773207736494271010665968138366346249429798395200709079315776101466585572313070320539977596422639435135206833585790693547337174211708527457149661570876804387141851597526366184869359115316743064443213946886308353730576035870477721340939921545286495766686989206980635270148977636035748974442644763664489225086216829458266278523806563826917613777662028669343615710323079713913003682035502220269553159846828424728403569536630490475593895321906699696202598304586012477391244057761569966139570001426927800090168597646183934464772590301728540332874015711709473268878717554392624460318992489243108976601077343154562563744071414510877842676116751259018285724941857227087025381028007213958322253057081559155167478720486740244708467192446794434311043230030839950793504578521938450680785740338110333293094640413350483186563126802251143228033987868180621456379432413777633835864231159824168752966408697474106417187958033259553846406920996794186190416163185168529025221027967933017747701393487151248024577604355341535312275659027869339224473712388825302077004677826293509633019446232494881275652680194080712264388805877541811341072027940071880650341951095268657366262910123522824185180754415875783029833777878133403065424002735811381795036175390968196480008451825559351400774065312615495331491026809862349925045569605124872852060713727840622636994044440813829591925329348666181041902144660683545169249405841060772459210583709512710027332566312156231814709535049627724059392991526633226178458691836094901054939419547793860608804952061146193834980135373214352317707350213976793530723153461072872032464502965761301817724446906871986506429047819183851016132428739828242411723317175433326904967932521390606247332672069887965625784503102335323352117933725632078698081269001887094622215709144552159380161915920721178552476797076949428872786116142283615231500720464312401970903018992571773520061094436453031951012432266661041626105693204641516087625930660734960947646987416381806739133824246315043274650418494764426485863831786629332447792667752089497750267370548399312524722676475748417026378903681320748636103180263982239592592211562350583627700682151619373291790741037613707724655870181820780547976035969918476758573760408432079854450262816354790657679005120128315116437745368869191796199312624498521388369412553963419392083586656346563716330864499759046508506014215836173233419563261028787162098461814371912531096951729994553024169346006038929522350029194834357422941598091637316866520406845150856201897612172741835484519564372780766838844950659094498768123935500020170630832318594010531182732842548477073783681284494400860527747620350769563091665363369255535302756753275234475481370687602560377467631197453536156725197246791111686527028962831888012539864487970346194080095631451833254341983785970546750725241060426808561628520130989043040032966479499044341312836618955535815197057200548992301747304817140097107951444841630435717309798860801075524282727190567779816846999402603186594789802185697126335707742865950964680224465784533928333628673047094359318026567678332523849036814655167939522689512615678178020122244992535353850739909348811683248137419667940039516794068923848635360718870676396593385637458205692188320382912226458816560223025964430574783311133958506083673775462141089346934919941851300095757073263225476007413083850554195549554805420905206165940599983575724819729091563799900144158976331381552602825951027717623158684468665396530117299855057785727466618757776555237498893604420700902349965575061445304796962230596901803221795041329732377544043819920207172669697270665337966044873280187216786898400460439504746220546402652787419893214154466039783420740954316028304973478816857385685393582766057019608149345191593087535729300949022569863471222973951079936836643223042019264860573161121149135255180748075442504451886301640735324005380479893338588481743971074322364605620812817161637091063409106997769564283926657545814929870104724985796050755695644556978693851175577359796625461036226071197771250184303983416970453784075817626466040553826666933049480668736354025986831136193757755666905152326194835437378478951551342646762915749553712226018753284551993121163668986805327292937116193117887320386765481690162766019980999689028229368790891943024118584871991548022623095997523829696084768811918532675768836250107294441334958001892769549717474745895609268094790977226729872183350141891112424139755301033331991482855397364066339856487069760407191130568208678029066511777307228767151097918322743627585405128858396752907745804089714284224580984770094381866400240565617271111536680137796596452677555362846319700253088202699442933618061160841364378055306038053820467081658145594384698531786751011741663871787891074972742718409928393938510630043727126310808546722954424871324716186048037793972303773596787511623289883514103175513417038448361347521729448078710459242897638969489831332770884605405394329839748900772680262162684417483684595565128070530819469522826522612955524589964597717106762617895672287362139452010269521879016066057506930653019810691703367604032599846817097634665129329217113718960153036300200904185020619166781972554037517867457995480497952778242950171507058811396986737078571271206737099906388835222314667493743351383454819775936546988279911397677009852742935333907316692965094893572703956589551586201945721056381005079223668270682515236523936368811589873646482611138670019376054486610995985483626620123158828510635172266542388677049485022635877160124468683742906781859415991889409041530848654565803093814353714365823294653937129023138554730108319059017659482344071797219177813897612976877472332012116564156277327633677818070460902333462129046829067715748040892989611809028349637448755546210976608617579338738834650454391763777541671560821747466771035620780818496658212836623066197594766691308830455319410060147568737606697275442262769160069221329267439678789185932208966188082723237000712619720429376153800781405562947824735191631360507459392083724464322380873939593230662516574319254868569225768934686759548957839826929971399745087584913842653968591521028405167594526034065938182590379263213733602799506860799806882406753868574702537185512761009219724365034800488352440905704282747303875686040511229873277462140141989846717915558387905023216265200299905643565292226860170825822795980778440629553736300844932307599640044639975139084881073367616589981712839849142453312515230792162096307076188315026350772701043227257881009356450129547647969196184092347656848677441640322453278891254570963926467519333389838343909516948265632833074336612032803798466008810222838529254562322173727204712100632521056818837086438706448377424407516356243558344930552356079125019227186357113437912579875324053647007731949765821664709158825415899024084096380033064573118286811516719621015587213036072368585697056073414082620906274164635457913288567248501800483516981899646699878052286036958343599104320206150618787250012295438105198032661198945737441934922526671033602763273708046396719971052061189029335314269945024334124657055349762439460799742450959983191391057272823041705089952162024856667944049423813687385659646692640172474034324841274236806605477215478472502854828485575812276450328715243555180598493973039947903544179865537702969762737369220751288424030399772788222732111503195249952505844076812458318155401425898420934415263903976920229919303292166611886885825944541022089536606100349194705025061381357796467039160336416951280182544610250631783889553538852703023167222030894520442616449200508351507032063414684546907046269609058468924022562290503865043849388818090776270058343950538696341237859673025378879858165556535220561708086928142602477765112002640365248839839621278420550168294684372410922640652307760089934773903895999936434731605408337751068056028602625732961612375849593526161671957085701407809954439081085628610725243498810126316905638443612764698563814472990352741241071232232957804509868767006985392407268042615032759716581489362488689583194968911505412897862049308107863942373946551956887510913400992505589653340051203004902256529074693486465274652020170310893597031345459295050682976906142000559173787160823446861937721666365655151363317665759141765142678580891546106707389521360447397028216684602481730915511492686477954894135496931780380727582764660747894384994304120410975081076018238377430928934873520522279227698219978889576682547808474960005718869470679912725494687009619081500433825797957200815670248614197368248785163518354924021281093520733860360420990941941838869112904028819378280948197888524722014526838164979365929795606916993064774680112701879394180878869685718653673743537712186315554164045318060566058261269589349347011578577788745511053806241724704475959784830871260823092145862067458378211225882690655942592462982181614303593782773314068436039475852884677565948757359208364892805163692865882952746284974803874294178198919753921611132157214569037538259801798026141019683790844225764036658451912579351682850015533471312538802978449090507931952492717769562199488639047838044259947038943395233216260699455440916082744613909574891490565511673104416939092222684193269833156156071904197675930219522551696042200294170189426741843870074628716225999292454279078318464002083462559503329221370742621672810751763266045744200334838211817560794035115117548235781775156082781410884258759176093844267336307930687064544981530537870952967525006577296036921571133168896094394558546467788284535060360405450573716301593268723973307820964094832962680502223438470426728224795156625573716619449981614606576287800504957762629718987288121729139704642248038730228195168542253969048974812918774640535503228446298456027321243979540511416000147491699869199629271300499299490751084838012140173270675068089940497367364509625739469973089168453804724732471893526256212727594242975866432826166028450266118146198279892112759318472347332892675631801336587892327009813245361089024321355717964146054630152342571373816288141929703953481733415166133468400437715664488731267653119965741456568813342209254826785678274445828238192939199925291836634715092515181642865238837132375274486034792993279709215666844512402586097585684395458013009609301097878727982772410727965250245137096328355455441983035551232779851092924857268904498574700070699914510140491766490356331672091046161071478063744244934518532567342139481121322431576308288993886724665832638481108331412557085204077488464959397155401868930067364987802843147996392946674681542693116402169910070333765822197825845381927215428280396232081239631530092075919158177479407080635762690085667183179461162443371320875725730846404403331718840348673129464527181778823714275370620672310960715504504039002263158958340397972069836698001969754600598528317107579653584411867626061872749981626768605719454615977005088432745561518753300197632955412513741474361867809058367644624580660413291104878233656410931442998424591910272321372297227997988585275205480263521645947158901550479090846828698047486739837244512915515298881048262917496671962863640359109229398695108220244845879150112287286547737606164320488290227599288279368833220137815796987535183032367277146200816711740570334642568742743268154393073971712944854425006951299927754740167339363122293028182532125113896817832165632231061252644922847271614559281318004098663854196586121962191196718531284939766110785526098992586295878609660593419113382166540674048848895509744913226394785316279113355739835570287017530445814259463591258633399559578578583239434308564187703088683724966471591780333174057631366028326622781953020071302997511937088287510162951078836872248024217166766314011541691537473173694235329112042077469007629956716605651094347623353710443957980311762013198649508013276505581736096787554732827376235042457640631796719042624591893917490920188481268971018178765842717268032702187461354411976652963133688963863196918372227677801880982184033428386132707449056337194500033248821251852138941083508843752833910268223762455432165038648295398036897556061456311342516886957214842254986015307606422233214860560306827238256317798757299580204890710674160557523762065561076245414666345627741299055562275525645498401529933953014701860602277676531387400308787636752548459632691330518161964693034686769025824036471191801075455300007163404295249632304409026063612675613991147794637951031993981941245215586780686277847076579703427187979000820332655469010721725291940941931556651716820223273620806815745912216579797457585869953144581218260436505693145568397537480206219472799146125231202975544829260502642537939459231297442763483286073438976569657347503108231036150400944223609495669835234016650602964666613322631055930048315060129208011817050093482593023126195181556012572646230988799174578302032912214585088135489550872962770275976025687167187388987296973413026681286298188696149726057593354919484619588994425200559465937809947432487488205080274818739433007591207210669697440905752969085742408787750918917873626636512824658734381679636302766520876917405297939753798137147904540615088795598362112461419328641233851953665392431208681092574651237704917214459172978513481128137682166944019472024483939272514120810431860037548948863861755675676001921523211626163949767009221636252215090094634903295028434097566468758020689054364738953719219087626994879527894810050938728622388076692844647713400066811663981799111500183263709504508879916748763232980204752713987490075506760783151657777643740566893228262482819166610313579775489189886572366926827024429841831131524584332875876598770916086212332546597377976927983370082778908829561181033996313922166896173390182887872744683229942096646759927119198025441653653425563329223856987384320369642274621809726738804897408725686574502355534512392619417855632663818653382259551448204294933740571098017628704271644491149285641609645019631192528746220647813825420405662813011452457048757513859221814629903850286155938361220136346010489565479412218666810648016308975449158125097220718628548698439809552596693771945136867173478246558338879281724825847348883894381025348987414744931211743600265166912291167527854616508874920995358083444304173700974151769975725923020488683413141384840049257910432755812943140507782769936851970444596468271519811642284428809121427494218724820828413587913568841388295458071260909261067178490178930244448547492020193184006162661192587346957934541015074676684078096412746144987023646788388004812280577802607829283992533502812527486951513829434548507532399498752572176858823891048730990095683741355990547231452167816387861028479482806269312987269798949079748866377920009528142223892933350306324260894324675661724701194085909475741306665151332755339842542630435550687698413577770651990711103377763813866355144294181441745382116151349928751728829042256928255262744820076625557742590533945254640038835552211216184229636488481715550365567487175062531697488334022732717403120845713949367467322978815214819727799136021571305316738909571012404129642596228034673009606777393785361740081015124389120505517611897081077177640254368560384067226929803604970221448885191232584930915460477946260323194026777220756796697809237505360573425125596154476543140259953147705855722055289451829813931471397968858038889118825776350799556781993720344594036878973712879524406522591915484085495367148512956622359175614556004349704195596866853029695481575942519024456292340254824585270327998107405229554967407860279903361855165102632555084499618559983449772564263581904206531256547909750292670071084621854900746961249960770843552248900406469105901975247731178886418549533568861915574264763900093340180373746172490205599670064432836336834994117070394224059614485661077808576821859115775248918896430817475996630250884779501244269201716421204092066499509025094231593337275930720415220756854386831560173855320962744316257895471551916686666408608802930272096691994535349103210834763490488496023505830623427392089940970992887587584389199622679975035719915453174654908883488112599965933028488279101725222917052919369802118881733632531451225230892104379468247696185460675208872838177992089909242714437320271457300282751456562401806660412918272804911122591889480002386027404284125067449915036560248786812085049809041882818453588413552166368966554635143295210471594519434884687929236844702040448028807952292283940104069619996794737634214589912636857945339015339437623833130320075256309518695299126536469314463593980874127516672793524836703747360937670208405394259420375364320049516080514063329321058702579139151161141131265667562348426315943480072030312519114250806349488538073345503832976055656645665455259067790602476524733806561155142808889115996952199781807064088322892615681515052148860748811007487851992945940564253229285349386801475650181205043041015674538870474483366892124643119339476734007873183427584276934048986037486154972379898683512750874166757219160881370797754656842564778186143585464335445352181662152049439641530066943566448756157419257070534918897463435492046565763842482099509963041205751645702381250902625372877066261482315954972154013481985687268041930278087078149052867465540717354343283438243081112470489800213665139213729974514697330048647737468512223759585591858430050304733263854970883479617679734154572821843876533993904863867908407045042036326200187047436469755994868030250582949211436971678257968268478660068466344706543326664054034144347524332388198062546441018585671404224708720962831422880343917264674690547106961784021075510014745975638499373852163411916461170533832622565031394861608797221574688551956439062937041747923706734928170848328794988134048860969370137600624783037989578582413338254467837930303421876016141147059837940269738170212437965080477002411133656247223745576631102507974099938706588458542535367185270697968970401685225726058312654108695089374647098107786984995350640540679767862772101576834726844159282070477340363530013554804476932202324059603605650697322183970195675616917077404706605960007350262354407641353318419206881098973387722573111647123466177205594198407447907587680517611833076640635947754957062848532931548260776703259433744633205093126306449035907915699398583987957133632255925219952504695282566931222834312744599507854329528113987151241304006091431781661235352749459629342363858503641791859976780305004247325115569717913324112763637360286755168563614928885324893393511899519913882088494884042190257108660769552562235076351591697353247697271543755345824682414797129592279739722284252996819671516579068982477514232947676239421546635409123546269866804608049173689895000932893690515716690629352505844122320531686217046503635025621768609377817459366991026841507497187011799624882256470972279451980886588449896815926437606998588693486793676119946293069240222128728566866862295895729771930418769471690179242965899149617385216672230235415866314861254020928183313679798899691006773886171874807189900105806464020528179330396264397010156374712337232773867870844249994827496584202060550806228099132835621268832699481577582503804353226528695569646711746722701280607553954990510668881052503069815971849976385979333583577743138267798777526598981209262730326769321659620954567269747159643642979185685553088249172921490537465779522248033510363322108131496138479806126268737992526721611284939998195383223602549322550117709954964884526662433344520732741083460718697109206109464150457904315140678190466345773291871215554283286302464169140507855379632997052022596739424109122836329373658916404900705148902170665442894742319824776962858394545039795930530864085728626292457353695796137034603579517033081718107330113588600046711988248739994630969953399133686281575035841491523309110489050968397147209162135982836939821385383338406005562346759919783209233658664373288063735665521175444667854424894740732263954787601313542795188089100388321022196752779131231458455989317041411465840989585553708948513164405784767946875617438498983049501073500429485737494662373471153710845844056823736180747961952999942480773014369783037582160426595908770574740168619701414955104223314732908683889266655018573822714499689367489198986260019643863204607688247932051329853345256570967732135037857915549191443046211247201305584627054270124709315457549330755688101180319546968751985396106168306365402817485858695321516222616435046786109281159269159493229759377682484970238298943832519967662263123714119670626915680469721035239610222716731004161364862157775422046029220159468770207679952222982516871506862002685277799704818530552868941968626094313520188545825279538251996443094472102090619758342483273889798746976666413721635910594953356100483959994610010353922938109688634021342026635839499425309944409364036122186488961018267141592337451910825712826701049824654248109303674518433204391033048405180885555558971848834253106031621863935846397247871926282946450358479432477350270322492978448433180548082012623517942008391642645307188283990565892474191844442243626719994586785693001145174553192163336293685331758046340887222841293528463923475722428279513481630031430212335554082587870571602426600245691804685612385709984549405047548155350141547115857020991843566281093773309638651494082477966199914398400804568999097794572923962129605275133992318862425703589707321391526993588040271400979846469864198093747669035965372131240977869784388828760040310457002585972330560269153709832996328125059586325689217122926542531762714182878683272637494783767550363866527468640096754751058925402577423257366626157952534769881789655507952398239393732700760387743674470810506738985168011093917844226165298458941579315490110084115777707633783100846007747747611778912735692420981196866127383580405120203767897931315389640541861089987884442992217003369585190201271487334136964579673914382021488211310264039943688423004855442527089857315598277185915467981257003322352856423529519553369071517364069693199467473561403496892018212016686180597445398201961704244991743899633768526147406664497180038116959023669454669712482269502134766252750686575943731157631679172201102472320001713518501366076636283210744062897067855505043828937737493741885236459687690842215323631178461213112251945731418776594710825382992594670937678119599336928773607068638332748982049640837560747883402789204922964045897857486307015694450106572764746968784689845312445327745343404057546279721500008591725953912296979434832885743109069888877015526903423774162162642132196333313756531856181233712850329381994174646625550409778399790960440006509567365710531748132441776329139953210256678650472966253183420638589313581512916249910855060144325917518686053712778526488492833010972203667978134523486329791823085649123613782570606043436054024630930036347532046399852175893568914194745669826633037740830993210871407749278415754741322528020307345259722885951818216005794978711904319300344689048069717367690435591913069291083274836018691569003721309601716166304939455003216783261655247258411979971501627822170695582596716090703280266113933770976155566814790466501915006472005285088186885735289894922977068902536263730321652507528615093001790524095809982556157711511458108418432420966682688895019786467182926033069591923375237813015394959692651698485453340186238980321106433955967010447420681867711983858844887365795141960859046877174925828484667696079257810395208222573957590625150931257916707677847941898569937739632130987439964936911894212096840185033992701924584278125924559896266202540986124283591118815492749877152245589998386210485870702334261332193822342131927328235600697271388766290694231000890592261319019501597045734869091310817010840145994062946117324343935446054233352957527405033680274256426241138804183222146509676183285119517505874439049960602142495002635766887721434673038733976116482279303847827883018396124619948018066966417701748749049586854590589884515982418173805605142872726561247580136174774709698304825812055724093802037282128007903054803613923212172989067883186590026794476328722135506959088968916578685765580833303688590514265195485294022452577764781259829777559052442090400146697797344600507495855953699785290016118058878963623032646177536255765360499312917550518947692965105799747070651237730905851348144720382096270562333153921703600277098961125595454340350272145632198039508557341794829404006943089461382678728938864694961405609583660623760644605057581157875615195369870590678304255922270337208151198443070330709042915941909993677151713948362666221407305297329792468783384299512341235752859199772556112476736144006572876056093634769794528000137753793016974730164284473143871190421803291370958256025019710939605072952477850543631445995523928195729102386391846521836982657297564693726296541983550642162956511436273734315516369965633859604298826335944354206217674806141349547480382778713342844153016027960022871441713703640393387286984280550255564820318335355930307415312543595715559670740676851796543039842469924670629452276722112860856363555329474448793487135346507460744029071112725268407438660409279962029039345956616969184295787556186043176279533518151185939577895757038540929459020500143173418113675994193322007270841007027747840844238323153375215767045921689585791609982992362730092245488375405198136599429501642137273292318293836539443434480704784683257636031827248005691628184905693326520764090494333901519593951114638021966527264191070684609968642299537690194562411508770727620140518210243186705864555293143932956773468438850605318359654771183514808886143795990699096659963348118755789215071616432146893160680423625669628426271966453727485948479448087514262581031540622362131978924263523823211964954281838519954619563654408259321865003902804467036506681851624566705332226880310223698480713330141238926484872657337371921698869956289578469586635584662710552135231428627544962512419889339729872140902219242450595020011699514368819982225992154603936331847037867171236957655127288326302388491833212174879065445040430605773925580427102751640911501052277737944608839208325214191938075071009332493864063398374377084393838169255865584815654393982647406469593935871417338702543906727839565828418297545099113389851396683339039310760661059784140954988000662269114660139316937215498004698579474973645134088409915304829578232062599546883781585870192110585809525813234573054280267128281519605670796796991133498738663960868074381606732360248114822799608558006728815346635376594021525185949911239735259574970701864875838394486009462970326556276568912779630695390160974079364311574642779535372119658732697789718488038759672583982627112759126873274392827836892111009265464350355862431625713731925473168061888967181189034270905154374974382132311995140297067027411824960158470400539056660967311731726841790819302054799017343341511942601157527531203260678739464706486321860722805584376753827785007333684296206136894172578520469361590148379297534659392955657713751287407890130611232673225033985324203891973632773677929002091644926276749165670179823038889792343888270406402268889104012733044021383725058564618675673670986491774613796501949247434301718836667954864718412603952028392717638178133912470226458084338965685770616436109664413939038752757414582208024028369314386575838270680885883343585536739052089286833599561265503492294858958258408161414465564516267809073568172851668028871691394149936204686243436538914644597470871880766975808573324567902558059563460483294985456665934328960653641454393214071530866656546091243628244674283437788378785859950155573347141907804604449780593258393411162324427976122085526003251767217418142221674010960090960973693940783105871275086632369372635592111224676038180546760145498928399069522384233555927538627449854237027921359843715340408249260374799232042473795279233029383014812690277191397851613090231405965393707620856261785166869858388966206767756802112520467828595248368296786713978100291271479639891482015759984277375889085862485135568899371702645815446026743787625000403863380893799373022105642597301721550931544519242945310723350192505092231983074450151122332673199897904228903897477410571080001144772325093283097527010150898562964274179957223342762913596758070115214214522020603392613828679259252988990971084236429962564691463821009197203329286986078008777485442990428770501516668624879032861324765671925010691401978107967187228432373993313601129327380100454932646492627188668661506440079691883774327238316006465749010369296407748343812611715745824089074133006109709961610724430814813488252802140347573286309330268782152499207887128800160758792283923459073939758849735324828081985964175779675030778735732405289462382170824634894311430190610379314829428256758158802428367182100587544715646813287388611538965919003599125997284142742415442822861238833259459016001903493973236127211128552314641392937087425876685541422754017205569568426252547777455305061590683516105386525760938611458363715956819776502494239286420832807418323219292857380520171035512301499509845787907810441540241994457415722343563996834015935372979808257780586355246143037238302288003298215484703931075408716696158801798738391962094076625994129644273477624887915487582748664778242994806713246215811000205041761180719209808916004945909695717757167092987892339635229485943242406377843673142586704939337815537358380659512138932017743592729007455441491727063478155939044563755948064101886891279246434791269944214961321580792882391478779767257858087814188203805402055286979016674676512437547505889753777442038194037525380569328584840463205690823947230551217275747686675821690759520878400394060602848771147340625146893373566717404301129083010276908694343973203015772053785763192167597858175779988407031246910352934729337608093500201356939928599846074588357528168686594168067693465073056003213554812311020097748761710926462618602180949367066410196837979823224992581027326239326910916010859496438036784377092098051279258645863132880314009568978827216650641065827849560060828871403419642221834612689627361631466169722107982980531718632311550716830968648353298531525761179880923023880770002579536999198610599437298144811525902835434114075934465082511950246622317082665538010113898370210654869284033517201408060862331019668776501472500819605421513343870437540964702503327329476564121701939650983923845390612348273387678663773137907040642754003709993323952899934590827277367110754013811523063493107676461843691609037619710152544868755775635403322706523296795720895293589850281670916035454765475318254058151951573202866073192487527656018709098546985468035435339217073434231194553495731771575267771560764191654218741442504352683784728824661844047413690659500996913688570832512098027604722250508619915380268569022797690082787042788280666578660407076118748955061640813007796068574713203118131457886187712945995506017482466373447155665993342330705178614335940099266966981811031845568846687234497822978561658235487825717122997510975834257276016533109349381454354285488632800886576113365622501732648226941294486447589566989417946437712251310210001492439253630748719369505983457653117447389242322311152711718427846035024460925988173356320674786599119207787985649633058703015725280918908509103625608124322896829980680425732434683586946764869078409676163505721203872285963303718978088906806319302114220098726746849239968694804565715573650718274235127764633437128077501717463014172730219225560546934959971962676755973440474412907279634220820412087344081655395634122630152677876252327057479644114102247366779606087471228217978743382223083116134031938561969450615125698562550518301255465946015028444541905040364664667190816009872598044989337708350411386426498876136791528988299314589267090498524656525378442644964161478774742277943376757662844075947158561389278788814914823532452504815904645508653347238022669188900990175927976416863197450977355264635733678614379154780687640249269604571954537053942392096973500639142010347517257916575774528700401515633173487095601294660283765199131965678616823491839092416086198648170826370595834793318069858112176031665258114880505932149604868739003735597931169821326305948650454424991502607807787165280962103915092712098077985670190187222749292671085524098407072967461222412568184997222327739315431797186726259262201662217808307203973945375854679507825535559059149021989212543066589976582064509080976863385224496877084623465023887253007127238373560955549131356422676984251731234139708505105188235066477786038062487459335779781568328274895179093444042256316803908671477054318204834552102557684186100386097358990332438817125304505582881038225463402198688503013983900098684663075363856733813374842134716977645623760929331094076452574707534646310627249513005507966965671191877409858283737035373861803128757896546493271608327945822789194997988104259504801163466421541536062492487867639612343809274412547030131253849717895942824338286335056416819167773997268856393707821935844581669997255418881485685281597750820987122065325763887420573570960864065310024409876843104215784806848088355711368986585183312436092841076338618160852526260282407118567038340056402424979803330691965669078526355730084025487615441932645190095071971549475542004526005588174738777898820638193752747803605800838235458022720085406097008253541242225312777326974013957964458630544062376934883808726237275126819751000776038571530766153620906554100752207005989478178923195380513225797873863095352717800696261946214250835156236639553171777624125611642578262934175256085012678038441874751989786299954344937303461024860661709775237481887020294242983826959039900534621760188408740176100850930569619911956027431704854185499967919638639206399812997704915654077531218341401844028531852377065316811691690023416423919751526819583469898360591904256989007082316715098725919041379124073288940503060034229233087441386026432942786352066649426406477324162911120065084305312000813568032999722550834228436774492795372459233809913466346002737980803092730651422427447647007773399043173819818139479728970998912536704194930064161208670678132324877378825939284521687501694518400537465871421811631812875146692860638039175722491563605012621350140393273405939172267299882655309058369752830199276222789917573143019991786973551245233011201102788716579060012889706774303688845253499826654003220769101209681055576662829307381694735268907196281971231977370550757337055445183159139292601885914206037259643028468323449992911851651837641357172115369538558927711633174125981646919982966925031384391244474219154642512952010546958690131294521277613510526822504578860887352325251411787244920975227367345443022781619507689736215306135000721361791651277012888504694203097974510197339888381344575628021674011165561942298489823501807407102470455931018765210628859374157985451627576669687717027690977942731855576176224905000768307371251812836841468004531620329784744123987038056025875430595233178050673075742891362314138031978009247836033559915455920079458703548477288220464701921930946638432259376317431537238078613995591216245272125046013122677276536514798776410840197502841066849174295485856755227153756678481704828189687557369227665025538464893496489814762503213203780862372611319225176677512158418123592002779380007695948692575114922889778162921410019150776934834088909002698254939303297445609537818082416666040805408734284371145832525295107041737341123456030668472171113240281227289598900612915595869827687329552266932185485145235793186300479837465064240139277237311044367133123452926829966440654757659499757888264787327514838754068768415219523661705935344877927617091337418945022690300249328437421163730163850424966233432440313456684611703141610793667372042476605909922654795090712385677565158861347653539160803526564357497918809476515726791633684887292336259958926035673730038493154391612985360024791942690041271581381274586348673663131460106703932140603110256047079543925630357290352104308027214802465652502408746058987388299823732279302279090148562211913499691794285956103312128555909181787609743117448789782992800324467853405202868567232780088250805563092100532304031912981700654007990109528076028340805812745607635671634550476848712362195005721741390504089196423909330816482383387366646125012572047520986146078416471549258226741242387805264602461074876597130618635782315206326701533694546715059471369885179190877160153597521717723420150286511683308201273909513393610954517347501005140769138713988424500466550325444057240700651903478083624912030132645707817283410667741368230099380555195313495148278415938018224452466820253442625970287585650139948356265711314886577051531537745439104280172770474434514372349660689615665274362190514266833382586191127641007864640344840069817134861891350659615985496060777311572560109460561399906021414048057132740727264188282025352897597530434200789771242083047212081998905801567485773418883514278401368359171674572933474265288133036268915188308203229893234681231560757701275796145632973905962359595074045613907002303819300133091194671874967098103723838301835246014099885836631011523703039252867365435001549209918546781255499108612802255419901437219212679267951620466704838624154860321850569185895076837672613521620026289805097049923297865125890044862061759935967677735172004850168852259498386411593996821385901977081912308056283867076530621817234690647511782233085877358168026004579568608678284587645327945263339269167253608790078829889864386588595689376364680622228146674637086413459548997218506098550067891654093188095371648008638898116047675333538650734719623696626217865845966756205449510277168865084203993064956263543736479436676830604135586510764821668813407948111814036164626600828645675488448979989760540640987846864778946926557396684818627551684249981534688222154293444115179628974935007135820805043043521972675099481866869931069979186164836001485395000952322315236643693598079716144066840317083805622687884542266224265927487718669459730695351145398930850114376007684481451790452637524498350505968744919764678302738524642193822976653860330322813076276316818553937813269964504858021037480385295869908410940576500334385887724466738844389817987233371270403917140941059167059439168513708166151211116442307903055256746335359381378411110332333455129114798223049886669513863728614505137133473908778291466454995050404696154826275269961810075790664623161835867282651213069081814549739948094438951504064892791159604694062104668176153175375472500114540795650942193954288246494945314237738461692266316609727318355039020098423468837246313150848926445623168981744887219633791384537620120648598660246002275510003087679568734365205258227456606032048725361699484323280150782157654281758456409015418318783855982827031882353863237965931499623524430427006601812644213481099856729579794932672628059541947140439778486554138505650599809568455217624401582937245511399641727805610817856452042885752539520593229564817404381036595213155295049795860987372293089417480346101275543578766878531578735396406223125964057084480079268073214633294904526818941827276298557266765358067986525387006813788677699477828787540098272541318251951593624383487744918764463466009421576726350471636712573905087874762667928830590868578689662280246649522658321547872901544381206886160913829611984302500357203146112717719086387155193275674386969968494043767825730947342816799349650834337047579550346342546628710550696302911415240446667849367240920932515388932715616529932421164422443415845660703760889946618764359695594306949114752685409556405572342426953101110924112638479883500866534942775006365609197705470019856246141659230855506548551339782255134716329639311388759451839981276252633007788311912278126116927770731732817798116167581883976543923210372534507464168528077285142341279730182040590065641836100332898077608495945179444585120837355580481968949430722178616725698751763873852449466542986855893377618495301872560484227274786470470051067947721094716504598534716750512651030223327562237629467139739404368986881381745462329749712550129205139453216472890050798557452079137771129168526261614965620712138234662708263885103953896698332256586459621186391826006923296116634225528328460734010543771110688004450391327569686961053746247587262786321619397790502105123958441749619481315631790591265315903949739945888868618813579132974239472960292655235469069969303293381123881329034257163339831398797298696103831171502823141203753082659995102752260057328619789918303055628194618976622265081012353504458395253671502067162412376113860401840192679787497868685646352489743533027373889793036070841051085009366938591805467415403625825239071412762440747258204757302948703611758233828923846331677324792822571296951724279815971438692381226466702160090896450562311351723017462008283439331177258726478247011141430065197092520495940000267955208099581150446148369443620367431316271409077580620791633448870192544777207511273759234842405990142754744383121721303207714037014633606723927333548216469319317238875431888941452820567594890954131155901367343076486993302083898318718659114044807484331997506657535353058465471101359601062753172174598782144119425105035826150955453318118504392561480225252905402025035418256367802456265919306956469681861005517569488377886049760139184946060766764295561768110457179481003082271064858034190259477589160847349124347394753249189258212544874383025496529268512100055920841945883489559463129114108548127269831983690473128953736857150908588133522156301924691526665033027098828578034035406154942885277305192485339778935625103779895066560415952855782298478277263452524931034725750541965622861835139288371296466959907426211049682245350502386873302133511689440978033385817581648724197990266688357924395268803269551515630358976025869554437267349324887613544150469672932211997242468215338651298979717565097237063061730981289426449450764231627652058785868510095261944612900132398558802610593431332681049337846890011033493003769611701979132406150238839230241731216138687531703786451995084246774933422649035878613019415375171437316570493136662093653072757837698833058233276338090437589309347945117457744276101923320161116389260151344137171025555580870973455906853093767869410769107481194492970837429818603310101284824015098727987159883385121040286955738829165458572034851474539295347594778365116552359158235031572709376745677771708833971701638153420131921147261662989269013351336254177500595631663362886061411695690909221834704525701575719390632469918375896151091732634096413583340449544345631504833982469305707484188824247080967188731259313206388729114009433618899903752354666395730904283216108242753133722431171018260310448753965617529341228688198019908869722477853338125195933154917107397200900524376909230668739710830978064569526608810034327254401163436136408615918545466071503976226467444692265970304577629118820595708348564547348137577125591045657648345402464270293598271236631802591045305939175296812582052047820466254358891019256720014469196624316634946778291554492443833670521257797670388475977305886282526879648424953050344204980150253696166821094243845488769129713431311756618274658215334719847072640749132992049204838392764762099488144847270972117093964780752879521306737246378089996734014205435551798534004836776461075877850896746283564666820531013426169963450156848146086868528761603459894190067409565592862169402836622576833579165027692439901293414540897677532323187039002392756488068326798311460902549959439077582338339498022084954854716638869272265912683533071077180244539655134023641879768466189543604719247301840297194741920157574872380096536591156643906808621700030033426322508261019105762366500263274344696799860302611492998233845960889912149448130789878424204200606833265920899434188979598593480819184518691194410848151228151649018582476443297775443927571416346263658664482738918937893194606401807410279988259099073419714001172827255489481565493714645404956553863117991846402822629707464635549367663068510111711871273499715770375616172255526258487306564158426450657846798905206024285677191934502350555663293765312759466352746570441518557309901508038466414891515828610830065215118289567049859878423125978830925123155391522688117534324801469722695415082305276226815141183792207974097262956444146592335283779406903784261022544942415105211809324686804069714512262992551629470719810209760723696015566305423309920986435915140145814813104267633744908125452233955147223386895987759398206119435293018326351625908577031344004054872895402958082116849106090533895182490383274473722360921891898160019010082411171734322890708762349173622440967214771889331914266056467031251321400764000673170178223905699957263345328098528581247656236947088941484234705419948200974024422562923551821502232420067840168864688915078880263780033656808884108389912508746768357622401024006056848314808914557628756388622894189537153360166603892529280144839500806698805603522897389056897486508407082325552818007089713725620907187917994556378431862701242241797250094079626209319539516191777478431097991191643199383864998662639467779738095194147806251780623070591819034571122277785434822067456985870591967535802429395563055509877962893113339913802343271251515074927709587322775741956239753371016245290158404654284127383526255415814857112363183044152085976425261817782217520942233865695810175375040617327084446798977444904248143581582751052395274730702133831075983038402733463236490316606560645132515581853959948792624335525424096921448043414504379482682699398748725006225389746115122377284326659282748552086690445537426767861497042012925595085982402847547395791312776407144490317997754260480954188795142398127150341504117562455336395735300969606106399148645587440900445503830530667159252256646273490238196310864814012870519930007390654976128891410831953710042734067775516466384085217744263899981690172874851435215375191478551801152411582129945335007779248442176969655444322642568554912493893637538514210205900827690644990448846861978826609514204407756594941401278128016722382982968078472507904438392585571734596211526194667625696713117058474360657120863983039335374270077469013928055996877498046848839393096837763087826907409868280517525720124592206799868297506200268288047925229963292386491790149034002409441830033687882757193881565450381129336601155719503348451424386472407790962615977902258943739545198141989604933276505442977387663602438352860908014037453698387610541474048930366384257573480288402706597573849268973817984322188442299461268615701124693707984511645363167462570573057693186324512684749693805116128906389248952519792132967859485092863384572206444692071974522477870535127247700315295157392457066773507484973884473886764996205257532486185830427237878042363913321461960750399620014125806474274562414283116681658706285618995342384600226528872081520665719672330225470800589563846020160006274179784593218193231813253058058926283655019940213748091713980027370121640202703293111141013609266696986478449217728935245889182027310034129139278733324207270357419791731641265948122093432969974558832585135231787375787874894053211055015596767799962157854300211762782724172405890794053376276396955167603288705132045836785108248173698798305543359479429639512301569203392389557675792637084955029966314648493862586591089145672692833751200190057606309645097001209866570655548284376243545293286842084839779322726802299345123374790208076616350910012754166824515601194175749738169800409689442060956131240981294046515094761823053493845931043877824775592271585260498521724914884725335693932633204421344289884417218449669739037823995907744428246600718155196871054204236319682598906150172141126425925726885733405813947642541316705964044242914193410938595638353622848913655285005835232064818745360241014602062152886918000904420325941340293705068140650825622242732114109686567640817773862431716208583230374350898167266944497521817310566520325284081088150180869392848487725517413160555835066540528768916485618702393212844439659546907150177363877389356743909177871724712116650385245463317277684281022852411344722240346188739440014087288333909468938153506769054242073645673055339384258157091985909229431457659018383061504331771302636234163919996713538122341280909030985323027363889387804072473334478332957014093273216824341360935159451120656589120724437422475311769946471727194805134084461584728305725935493438634989058375353184084263347732544826278499417437902563787732171923056195826040120052053249421886318134465313780200241442455772393031403825298136079006684464010934276374233270191313596772152746618890628025269681488043817052059578688310243015525953587296466281399879277752739230806079571778199813635149581457301820683008300061188860433502448707581756525964174300330444362258437684480797654829331653783296660238550227392145492426369271532144066062664358197974810875388879917905651795411123691973414643352829484297506959237287601293770029313602571818202475065458481147551145366618533881985897155208818163402914875029550096042884955328598781405377263571243535684862123353365753597586398633223211911097692548410201334227662785662360073410842545870245861371079042197718512100704511602405748846768841427685060270917481608678093516904553123160035312243915850096532917903280324465758643938084990998178206211695689216258019986603915403074810733363346063868025771772661938423377078993039590451693176924504054534787874634418667554391076023189959770206454288646002279336320941803557906213013872896759263801191874523861851794090452632913602563223587230030542315006720410471649152501201113129191923054380970176779545357235041683512433816514310902744038840296154450188623020630505068097356454789111637771494756198640262484068905482098693901846058272812775023785214289178436967868499451335116494388985457353416554940160021531233608005336098676799185718504630886532378224849979589565105266647675951489524285321051712950750821352043403884021942304884734389577301955243279478974060709990512311650323498394234667375880025758951179376707877882514474435667123376919218011081472234343582209760658280251854384805201352150524867936985901259339191625162695836877054438211887234785599739424408186631492701950592462349687294041663965409814098918387266141193626792442893206940230901416535177224364979122955178156852676594829356327557978235947404107349450601218234971299383248326942933523904135636318675175579422319968151570858402991841051006065711227697322963109687817969359465535960184064928438334842688841908160464481161897694017788734518948805569434412229070844261625803611688476628400880032651878800536223006879538668827783488971406805399003942490115176044490086406186389799921278019381361973432867050120186900997153189875189550773784174687217432901096149150526490854560663716995777411051571645495069336768144283499040973403181727213934967937636004955849356461644461396848273650685788205852674558853857590937216819551973320610289863242986334596417647024307472099862795391307428220872988928012087688236666609517589505374150489293688313219589174226681268532873814930097680620033905075630451449043367943158262067110710785635062854559622119907659730079365872459030255977692134180789850501471668054387836098022938902046001206476252352713555651083358630504378410614425319823533480977434691481123883350311432473543776179428614305128405269240409625611028915344358401364164594808063415086911721468602085072035643789803710574639385192233744837677171315050940847095630278506758717120131246526421258239552686740792437463844720081849223543174583741274535860242663867633262592265083526906744580019435103719610246811411781959949292383069702611281900758602634322210244940383529603725331789302379561816200187137043888657743482575397282243157314035757463620967131636234645127873024722501895816950167651987171120594603386864038094611765067520684683102553389142137660757032319073471714851005017222875056470007399159599132807028925648478876701006439088915444939300178372172398568309626033193033299500412733091847329818421267757589957818660208620923510999010384982589761840681953083835683994591588337205612508543205827923823700781599712118282998333153949009288018102328564698445684361571965197216609010384415947387017482431288962997493731189897764854150635045388454525936637448015663313875963968919386006497535927692233967928806740574606474509474258997498881284290527003112936225203546104735676328835776690392036947342428731337242604624884904883015440603310637699692967162201891393491582716474382614575233017812017950934836916352294724683793603378937228500535382063886920711063814096823294542671934778047120871140778471003675126125533842646396195104321494578695782327061754371146932652449386512804093128201754641572285768345614489919869772642927042298363430844513892875928469017333808679637008118044580116768739836091658821749764472982628057276070615142786830739830293537359183097593313073258548472410899069127658723105122660106691523307435150356806151804905050373061994042267864880316920542666533275022690671445084856475697378359686915749848244097184528170242063442774388384683560132384131729703275040366193677223391935163467947297445511292160448728871393097896791008887503079986549740001923267986524056537636483122775203314786429352470805813048009159288852455994829112210469560366813774820583751580020718453129582101061833675057325891130492298137007796202577230825247456934780902516479165115014554629355429733891830708350467332465486512496095531643629465388719326391787158656490919481776526682128393040429276029688617187945681983250936497021912062806726556937774484573570090289388773559481395160512553554182635468383244637424887444816443984233431656437294057568528396245109727555793138553124888136235572876573143209254510206081744692137881108960593724643232567235243656913663575588627624709494439037981072440255974637091660255566364372901362440775382087126868247067271095358285182496131787741862456411212114277089435560284216995986872028058217843900305388553687167287068177561987735689230075504530559312851290892316762682352110897450652667769138260040107071293166217184212100257508607927169938648927731682435485858029925089798113697150376191173998407974123348087855008266628899166928510945223327574379399665039555104297089928833098845775589593745791695409549408108226231546273138211809745835323528805813268822920174747417834482396604041212785043567274987388982483425590935820159067146609662198113949213283832777040745261875005701861285726752623854185888880475128855972436723328562192538586321459106724994777664320734421017333140089957204772888955869677534691744429766800490150544917111685318488189920930352825386704682696544008932331547360765885885195512250211279323937269774032240826193666131255826638980552851825565789767187574812289574406340581526327241758646366400847778291953219902863179695600464759737535274442801050715173549654474232378143287971858405247025943791155047851855109700292110225210468836926680086765481926315416525992127355900321496507530122738244356813997335875840628322241480810094419018308166455815724339101627412132006135548169789663501403840358410902624462534390848166866844457487355301893305082600753097124529544026643533772226053910457576303633701813464612009044684558994976441468808927535594289133659755675334372445400421852420319688753844738671280242391362051529857571052643710732641664760925842935036605334834318632407976221926173051906862706199705497461714878539124546000569024387483214529582080762205482459198363531310886994067224607824432380824667939175575398918869689741558415549852970650826737482585879237160038053493255963021250398448924109413334126812200768871569252627832811836080030231786516379519950511137664879339770839857029546594320496266160817937192219619161160326780543308427502486780548930693925595406812277430584942789510822527064966221512662250902654371895025708485952274528615172273667841135193153067224414143979617890595980063381073404259812025125312776062476404763092031890300542641785458015556550089892890171976743869465031935042922889651869923588572540437580130586913491773757632914181875165018961182010167313888914958449945914788266823270377017292041632793721857745706572043802747550515417508919900929664006220065173755693702633436566240399772255183271608037752854351674659930478852495089181807253111385170760542732787294256419306242129577315673580829920730988539613586867155764252954174245131951942191312670878321183657063000034872197881683086803947462650406682543535004984376489234884004019035798028441292728323829263856713728901321228120432359956342470322031475729820730663602860591963009978609467445916193255976391841503499442977303335501860751498648849658934089782042116559727388321950939960413785396146718674886742822953173106755757343888731527057795263209410331281021324762114079673138419307617262680794679374778138272591847266770866878206122936065067413838189149949842271328264299397735580779781807991733065170723244859959666850947373318962526082280839372790774388198435841296379801219169734541426615746581982498597650871506391109556653818526395892126250097029290705628220140658626751721148072606716089590593181500406904395492640274518147519682366624504305342235680128848905318213095606842459061293231166360355458831785912242759185996472156217110562576094310092467232335627829087758591385869882173668114959679707064567253796671925662609012277631329481275309381486028406748735140601601672546947977028312040301129048146952893703035447520871556178642048529870704531035874287589235415944151778173796114701798790238850821313231236481620634300587757307313729139884237757698233105503594880213298520633938690417423303830887033303961502227517823055847323898765855602096486333373849817049942613816478133809821637140165959329205591063025054254925767564850890015374177216589013283615347878826219275471714372296078596525459789785913906715293426844253663218762552515352683174263660387271154590127820578859267355160122734407786822230575775900503826283911136201393856250649709497997428341212516358411294835615197589142477230379063610605806586687963191222603520034970315977652063871708940874777408662743743377032046599989442430794897809793766486293937717964417592960988360127519485040790539379625221336182862743234172653359992835270610391717550683527086507260970731658519495499818240414027599755816832388208752674326403436948751341579135236345691780575352454857743886849229041344990653291991455344616797318445825217154830508727648897876217078283020962626129471849279158125307884811749787059011905776213727650744125914243890404923200202343353156060880352853998214834609069606239693212697011483698519944349948829183917055301161198480832761578412772815680251025441069132489390438374904476332431852096673235626545610234462110433529776670778708243810607653286506847474648302828995255456933938008454454415156272724606310207947182948615854957211951816122396145544693963737383555723262692783420353573566962521388035217360854536559587602319542935233255305607810777843179012466497116970905646917359465511995662571772336283707255939332176820933909598285055214983997462669025281655147586484575529189009060485736057355969000464939358515831828267053407024363864135405912046565094411009602149983693413554844488342139410178763726410452853730133785815419885140881744438741063935334695292932057849679997016389006745409284158900917359008663656380856457845547749836111129003535828437612724993319643498965906626735720678113737520590745465338589088864831593745575339207373802521732202053596505683925808608429618726174099826656170151965867276585393818843538001416775906768904296793496722477594667093937673888920990142576752466315005820941233819763998542593493806567078501258561859367251363908565240398243547612737215310358580232874232025251293158427804803306036924735000313614978571266435635127713136680511666616211654631816245991340258934361813547597274860147808192533613832308696540487931415238293240034790805347868870821864083188419158331788620728483756406018218848000077305764016869409370899685269683379641468363633742092743407959028791090898657937815005623998957256953726315473854203909383365274112473617373258358877454392536197899278999877538732035121611430218130983749818084947154907335400820560146703694660631433854047581844379980223265173446995811969703697905427260782767540924064563477244932107667945769656411232695964765879846575601011384461700906607298047584875358721483160235637042419139010261627767487924867365810435636733032707400867963554836014459293476269162782492146058052724190395993642136435986128130991164399433122812459187211124050272764663410709203030505637202562769138122424570362426992704553299760534856861768515135322972686827713015459229265082049788075083387735495052278497756478751301556427417792401419786017926725465798061492043892987051532722304794189812936072748178396986506874782056204336244346495844307583578177717208537726020941275712908868315042497655368797462568889763898307560991027571836521498386761370954021245939486250524413880299874332211858316149788761181294851713203136876507313172840143899674733448303325123141012374217082950364090176255829883154636534845935185041164124406365886139886728864052359276124011137700664928663420724481043032316650693995443945204201413361915788864234562132667779551017830735469382076700554697154558905792646409730145761446083207361895208923322539613757670101746602463827621509164075950294554420321373169540486995263532768754103997619220088992139580994155551073082173818757216926419341553770079604663584815055478451294145493067676881176978657703576691565125362585975237253621350302218805145231820781237944863993395972385703965301473736951438727580773539894428453759112112300539642698102248285846711120346268878612824175112599174776205522461730495064363490970564097258491563005252313470759193039777872640524230459316653043674059511722437165976614041496381475133487740590817054187816963627729895504278961872552270658806426060169401694545060662447671069360373094008524256975686357059858646302166494128623733760602430452442592015499649750401423110283953425983057210384359923349852904048665568806510340848370603834488526376167751237148268440851517819018144161941223128655954303818872196934835318269447735502102113480379271225571705939917300712134090353128414914828630502403797064559557150774968009047492360258153180257687332393176349379182824849846609857828056320404509246254259631960614436506149438020046142974767159266289938440598231513935970087514145534105868221078133209777937619481457337260392447833066797673182065124678889976554017956544750520712789864900834661837043764937839427899141472445482484090066530291527491168015701662002619529851468816958543810232620773764329409770019893823865791665204321903601971718568964574903488949308531023771652930646344203957577301208854412397643459120620368247399551817908135853999044782634327446606655851720839578111595520250873423587493847777262478890803035338219734606533286303972991883992336323602340425988078884058787850831333741844567577182356312609631005310680654805919739939127465168857588125748457579441232181362837629506155996382569458033761666903007122545152941386505544342136396496020258769597161531005017373375050889492748366188424472712052147988116141148874813253671311455069390836223889847278868529235266718773245487980682502515171130710794824646344350264684182757305940590377319589295800786446753650632006032273592757647917933877786599438050945421630139170101462584744118579989786975341134179427745126965750482659103714342133847144650984649811371775014875446026102563375742782464879218340181862659482969282036521820639720338413145604408712259095752371610012903825778018394055658118991674530231787822850773044638963936573643921953973111970113019530695933037801661531910538351292168943704398971836970653910181536317570318723316896203729220991868963083440071252954622583231951449448675952846115511167453615468022749011561562283387219320249535636856498424218483911232518110163532411418569167746399314257428211667759940475034216536019132283650256552472626897672028655193072453167764384818550254627316202532145088589107837078341431679888396729136917472608918702285980373332637748114685753384069435775975511789206873876559424572996842810195364020752885314025010458679678752488039216578914140540045803353245287990576489768076432193670318153391767001611555208811695470100350656841580887143207026244468676869535606346060694679097840025446073047066416758945871347629228705481753980804344732215351385738338656492560457006115466502974438683815348341662193213424380218387773573729658349428686189831438877032826142146574129901996253451887091088406808315952216396939429245146216064267091466127898780357659019467948509855403750746552898954715829654303671865350409367670190857758820640096937697485231699215700488012991449764859253976561494110188372899481379092569066082080266608894619487374636098894491977260518782585662501725828580825632958671777436701370923230794387323833465660481865267956825064044227329401998522422564349213034960192958297478072242379169818982308890758182459959814112756619677729341707074817443740976888606599370713507900327731180201030145608233721479947203935413532412286406215716503617681899986944897341320763484802280751238079186957154721551086182327197002155833335468892802075292001069079365993322523492086375487700423864477226771256705156073114184483806856933848300793070532097215741126360203578911119041672501789942420649140270656576777804465933097917728850006625201137325529367869921553089319376341209127893564877077469178490993436794366093025265594582880174737582219799917538334807924527461175409917976195361096677077814962521667307595687323467145897007446348567803114918596010805677729774634198307912755976236481721750063668499318183173528295891608775340014635943668086556094898498102991827710701660800603320814439401849999689940248787002482386506227087072857424436884014717120336819468261784330002727451072291692289237244409501749647204545156950178941839766881057936315441501890507945091706324063057941721104615733825235333408037948843911879528257694488306076612065864113669799122492330780678009380977584120265463557634567480734674855435787710253568990081042203226648678088536350575056609077318415683234236448599816552810253463794822741888942432241271823696451325482164296371416886901859979762984427729801486173146453105710212169882649020296507545545063927838906989046833438164693022033429310026016777862234378401238616430273746646348221991526065780078621903648807089753287724494045701456596631461821821696326761893931154466915177586572425728249544670409034960089754964733642921171984253855063952424822805327133498581604639184364573779864712005078624507148936006415709556768871049460800753086391978828322044827320440333861363306152857775990087620391832721591182092607102462083757368221551669410920564015163354130103505215129367467079192988771430718552537442004371841036280407549843263152674531740288847488435707428934346387360337686829264978299738229029381314041929850664445900067102647344103622509055041406482256957143698931622661721790580237451426098857519198274037391393860863200525047551968378011196176279580110825960743760005425927971103129986278403226136850414117693735191563035633865610143833587157505713480930475343446542267992989783442346349225308528531055304889802398523759569954043446191248917950694440305733400786367926766103330331821124565335588704794482746368741617828830163281048743058629252283717606970790673834639907566942024212709988310915113642225314237791658493665327702178276448793726408590380655833007500445936373006624203258119704485650390552362378299592936998436136668233950930877427731444893176271759849237456276840304681271706768947658557762075438195011004888116225816267254155005577281342962172551559314779384784026610154734565180878689824601313214797080995494859598766745908828003681669581150817160722418885372928201502557524111240148582485619622795671399114627196868551678515313265307877056926794227614943712341201331566379698845457074860576563421627374894565142243535839504924909332345140630615770166664615475781191220822387133198681950942048846802224117091404885426665827779620164819936887324348304363756172096536136426470982475796719381059376069417973245868188233662371815943584893627145550166785932864146103495379549828225154903334785005105876816284462886711024688032583010939137637844871189550947393963521870230548645769960825510133043581534556987357286448643159928984950695705463990517403444952553352399624019642244263795693698624754319106833694552955010348160085916731091527891185453805226523609319602588857919903659143785104279708027453185701668621624226932846225010673105423885703268442814021805891319723787426715501166930212560488071385757461057936745050093690359292984026387444905216687552658950846555168146734047563350976592588418509987061371257635903397510774560654869081622248043852470055579719469195908561387666140788602328059163182347344459067014268066470111437854568957654311751438713532229036927181104247254882497108247060373105122675666776672700630400773892938350043182708799088070212556385874309071679865044986549964233694171756886002363039739617324800401350258313550379320028350087380210516574797576290221802046534011569972125171136066101949568240987790592453764276961961480637069760761459885710721525086318767522131533616559913686558525379089460580639376414533269429709165169496161368288202942476737237147378083841559514849528987073678094882329237618991463929014442694170572639990589350710487058814496930434248239651115295170850198939776993481208412056981145614574734939610734847546117084968428919128467979671089324091027073784448728018766128458288183797963704604455891862307709033607308143242747767151263256595853821378588814668293835739772176487996392760520797138852690649240875809612642289624081365716798038442629212865082887306294528146372486434162648369179591401474764148240482710325283695355883737056003079305929645488343195572352926163259007830510047238325160387611663030812132464400320209293924220900164517659521098473616509522689671772168211504399792674804410841923709397219510921369168804402929960923957037037780504025382935791373850870989401102605415775742593951355553357439998927782914683060400877384636526014538822211228336189011934976155495246770238743177402252058725752991762232797068282385091625620523510804774998883054608536027294719960411536308877229116202418411320309510740724226991758257204949873906035210197070851047101674581981860390045295238088127076421900768564786494401705258440140716943993190008200594310940515229105242299240861076791873382782900742876553436482372313200358351198861234449168172124749763529164745558253164021275162535569166533726881431479779128642765052333352045155258335495894284470868404394424366488049537046647403662350158368290846579637694387082898238622949336255936563297142850549342020621795258144416910909419064359525671839252817656593560673056050124645065981175806684219773673060829671913485870242551405088984876675241506522715838133517627322676484984330679013766806050631754707199358319568437004741630720965863792178528566748335485406168409664743362352767743656542802607043783693635150533060339859043442635579024703869440869473807843907636894184144350409502454929771388625946855457260320537784615448940674694697579633716735426722185421986862192429262711172419406825932714292051001597817794766629885525937680401393761488652202376398876332359601546479768936318792787741602905794845043789204724917830778200785730874191343640369973708616293972142194937234794077493046009292791195970967088969005934618577689002321567206169997923627316884183685772514445542355521021971576491351566320825128998692024124812412129932453042624123099021606088526150837632488078763794180431172793012875148611772946755190147459291136205462899934906874108118693847753599759691070911728001903875956730201229172377592874013766144399590144878472016186877088717499255523441618306239472788321880281987291732035268434114819270916750388884708385135253031540310467275083763854591433601924129532502580420710898903289142004997974187766472834323778416474623132666266153947093492162137647414518341828701795223548310065525411045830141219692221447277873910498975819421871799288470299569946611882517914786860466016024024427287217093526591938026067666166183162340220669479983145820160892560260066248658321118245916575388995240461883801948494524899549329639945369402064314269246690972254876606410853597891247888927590086700789020921713340386546504319750910106308091439450634424773525709532337904116513419127591571056864246467292718080036806453934739416081452533554752460381974146159459454253292867181032631270694699659241634860190108063936590684200522935216371321870643596965790789713602980900224596835023474686241491597423437003004857898566282931953531777248193852663941828192780923545844224741557489840106907053323966199287281162875061626470080591466876637339976866898489725805546237309313967514029290813843260205497217732687626033599152354278864228050650845506640903099825119565638944915279004914173763140807505609110885245343330605088426147804979015462951379366537646057357102146756455642947669133057694872520172201005406704904263593817011890781148393582467406674812225558104554441225342493603453784782455908492380446829868819211650070108870386255676854088631565429441387942094141190550037660599811747177466684462472846224599533507771079708268001303554545013311488201456528510141124494325513841926524840575745759724783594311437332834230962400675463193332266363078912397894665765777200034209932348240738646561906977103688573908061474006762259199204523432008086257679890440268078208183756461076285644093202655593724486971918733577395570406191612870323669582145040823050861882707807517846777672923349074976384568644775768751750297599278484845054207720000515577922579253291216655000015112886542258955717861747285863988280314129626146210878610654955564216146706598444878585576069727967495915037237721058721630355359730502171051124584728631210436121495605387735703570706834225624496219083128524151308007247537448868341861002655879893842139339556630584875214421538400835625868534074264015048619709703281040745420490390223750929052522817995832672211814894940242995733511989085781346103661338490316441504261787702890036387181583655734969058678065384681403638893162227823696012767777772086662761659131017181762642776869561983291081367336773945246258023685735216630739952046578405569251742915667459335993989640729217072296371232180591217264641425304382393026436660538946033167116579725364461639361865122265696582737473733040769307901423279827702217354763138550566082456607638374611296816262895139844625088973054723983098736348516599098788234579190474471312099866594573279222702212174211575485551997062414399957264838184730434705903176063748715608038831356764668470313087528168224425075574103718391160025696078125749882119824983068486503478233405570653889312264746074970666489442760985080327413455738040416105548960562267132127549440771016354221911817120805010172383075046581635380976388773614746575603807434079350987446582023235847046756626428854652718236762397383295670535403703463143760368816325410721315590438968585816521419782015973547997859012965675788087833499143806039861139116504882459197582107954843012599895937639704451658880315789303970919933587785693670630044020261043071772071985522085573729996678990905263636890569254101330918254564364073212356806484195078108034060307564492582661553486921420867370724282980845669831787977557210253655414704864077587841187878049539047919953603665419143198778129892188786291949279987626552390464560254669427230305979998709081723871964260602415366901165591069226558994614832513655147091808298968737918841438461820199178533732482268273689153281320684794514735351094240550415799431579546435200381385206019045316793019203767388338179278718997584254081077273750916301575442743523980867430509797118806867746486924182206848433340064904480660387332325916227680566078774594657622974544071950102723333012428010315596453665285062868088826571920836292272141260041814481523260263396747971330582638535240081443080835291246519941965581032179337047275823097951001931557997469067515268609502725681762422649208756333185937252398490193388552862398062388910255577320305374859578630393291812620596951966465369807110659690318178487411040977718549077970236847935942758125137705436710824013026918909022826299529019607369629138463113389916939480445163550030088244413678172437320479338290184334957321251132406347814351195676409619396725604555220722682278060703110325834758452344423347739999404279508861593749865360780596126970224677631632345332683898667713537070066681996052951545158652750299205426381638410449346950046102991692355526694842425017442477066514723226647751059307406388089215094745498293041832582288537736981364428141303730316347685323457867970354416243563119960193384521341831927814790846367476461278403261872046456464314325012439727415197005321321432775904600241675338462139622614343940895158961198909732784827082209670344373297550381121432006304179051859428488607546027317548345069324351509294480743150332633072047022303103893507165787860865041457670862452025153168240326991871138201398822105707853409344709383697704722225977173864415201778304999936545092027840485625335213272018208188670697856999923546890748511674440013076047938321641780663471041885109459597208627390886357083091686957102848179769091157248433149038826095840936849902591409566515116251297171431744030081003858545486440123350659942829309093178798121231841095684314759986938998048337230320633355222398582720202990971488459184233089599029359036348092882511199835716863336679222083864692326795824406268213939436285392500001887536637270843884377510424395581479102587606304056271018066397411818211401588895036776172894595633074869593219064845949072912651050345604454340025326510507693710954906091724467964488957901982393984454551521480526038245207007206709127630666220946144714329507929038092160444318340993791689502243651014415356921638762494456289405073317136697715564882844010862333460147357703675578364377064892251057817187869528183841562334915299478787738998845688200848458312514117347724683531885691015993087537097156168884037327253002660666287076797820702459434629162034316715156338766607920106707758288078355626105562933555921084424811235260033678908643673828496747785804946201137234047219004626562990676908779170385250788707303305876618339436712408116877714237714397198310302853179588645077973537676395204199636996804416192690570250777337631320138943953251742268279126836509176489346435956061471040163387063562179550979985006322607342325451523461190875482417816761163739201850190855022836361353056376181362904511672385275799080830074811872614862971691855289935549086485893320385536098207120310997255858614538093486129113749728942708393636918656111932751007144554245772118556569303936235238241670211531284097270848870995781627434530080940374279884001575423587284488491437202426454367578084948697194874973684420737352147074806845154134302652218909573637966994342660656383750597490217898243384673856116195982748298305773198124329784691508078209758099252340938474002137822973977568355005976622006203280577070592542334143099044625678210924990857595562352397208290043033329209447519374673943295287171247049260881240289220142872999005440544688539183442907079443597735557483839023930141168421361863155032526581760147087158918133264664236802689992293235069482687992376219475273621857920856715038632966063070336601208806934439693651352949648877680891205256869049175288118007401007403437930928997654373703304575136394693129055130273353624574580523174077593329407367793760271254908392413003311305935846939165424894953604886438305564081840523000674220594668914940069753993981512340530432080498516489875712344328949870920022770189637877659585359737397883332697651025958463435482664622502244058679342888930478690854564718348227893316260491615404227376120093039988467968883144449956838249962151853024335512718475953791208870458812377314100649360618919345004377891128008995289267549795346129569445342872456918633698745864187633957415891402301958678391544565079914529033427851075179423690192937934116634455876175294238950272973599421562067229594415809432848721484567634768581910394887914426995822601730136021107162349013935274232342380702855434456831153041876261285394738127023139208149124270837329156960887837516588080955846449898355811618233269468092190370462642265148845086663522551572944220996079017695290247100808523714135345382010294331975476128662716262752584540110349041134519840752533857947569786740309480259405900468746650956827036798498606684200926582379260522713655810809803274047979071063363966707024421792580808536289365470879145985042349591375547004292214912148104633440322577809816399066682236028067599130846002822662076233510505934579696256292419077336541836367533949716614398405098819015624315419286004265926716364860539294188657946246382066378426528336554814184613978893381772963285043628908006814927056004411492792516871499572295021273002491163051536651079606614230109247683689470873161072938352764772926310465142896107648407925359363786479486584643910534009684163232416321854300057663307259400195141916009068311670290844166989165370836367147519210822724074819460915292299869267218556167638821081322907005622394863542781325244149236525375014690280364998657121279462763083721981708344114903894105800011593418116166126567344314491347119797520592889858144408955706863017086060291426791933674681155304450325200444179661781114800657373789110628711134901469541297486385570749590236016874074809858005939482454361179775732839767135433023082136233147108905577513490902202526669681847723355119359033282326321673086538856791618603557050275508910774581900286234517802282691864511765995418551832492348122491226237301706216346307846198553495654765910254490382758424465434165675100318601286962926701068173169554506695389052603842644420024724429527436212575893260693371942202054016173821784952353594106244877342238783149678137605428169540192313126174726498001379011274025790425352339076082827633370355884898509588251032043145081595668574603980495436781188368322733743929960061529339475777735346246142926327309715552112671501872819645438164732697009224440594266379388743538613196209081658190788218584423737265617670493876043431928540407540384329683767102640633975089513864629513987534890137792132536988537183966821536068363834626056361883688523586589934457469978125834302369346181908450684693666233245283581777598440334154256222309757836510722681938369321528796811163621891205795184282645408394227077834711253225069474755947695560931363182990842979681830944694912865561677888693948643185621463628086677106946101567764555294417025783288604271666891371939735111766033415295464128889715582212542685235486941033662003508022042235140722003383461972025073599325396315166334724220235267158314785896513936646239465499864420511927870363349496534321127807921443566303896020466116526027541293966014967272649870740148427942379458067193657350525520621308060401346897522101235857725598663876776272364267615340196777946989267994844879084238810810858508735416096325385409293164722425360112449664481826300537960381805304983870051521481829620206683700705143356320585746491233954462657524144343917359112982005323921755968902941156194057429882521102558555896541132399388280529560804739911518263634123053265220926983384365075274361769138569011227808971896141823033153980422714685578257373237815524749733172230051209150055218175824839580405347903775015142165939301402602766453373683573038581194519165876620583719952051025189342823980940847634327468642331137417928336396169286540328107774563152375327634629573777917860709429944716647604063807030839660380823247140122249735864348683551711833541591375990617135327809830013451899744018088896115344694512210085062344482268576717458788555927994804077518647805547099219272073822948036252059145791372306046808364553508961200744910897266943166584895754195121761713808939394279473144639979515653705973327214385194843708712070810879475202781901217793447483224247801882007182252692651291787508320868360241750500603075985561613018407591727079051146280993261486655017928875980457490687643402820970002680379151634540146111995514766990115012255188336490439383064460170638418684942486811730136517556867846809146032717931295642128621838567558584612709403075981484000217390637884791912400722538404207479813501621652245642362835825570416882245526655973168575146211156648211997785458174797897034753502430220604476976930789591633180472079228931473747524825889209655503004031154596627771317583514353835846208688528696362908852168383805412414597075197706962048611038003757997601980251236455460623015599030182829863132715670111072554615914961444541504402678083611853027685913601629207409176255761413585012307413108491814022320149346277023902114539675290870213085236294117932977349124120772428186445519708319077593687688697894087198809194947972322204387767042982875054371187836190472026189366065912757374619092559184805751627745861394904185676071584820585219760438399131011161999640329176352504427395984365282188657183990480235886883605530586670560090033679443087189294894344448688606020829184589677456729759044888594616442857540090591607672296590839766295981006120732705931876106871432939031435126932457970592588654877704806279678078771971468060248589466933967972567289516002691740464692587362429360869081197594659064237913148680708783440800384207605271866742112562839002098340952077954328395406574644968945788178102599212752704693237448798388004507054479943176406494778371978624466628059421234712748365784973237599096088983568461045761864744486967454743240375822388843049584935245103341862248827019477306029656058210991332316756930810027304735075009590620195515856064476998496821093239192915977461906709860736822774379562044943324833794034053476453613319674174037843624604333518128267069923032591791303338422771197720163971240848216895855276875636833213660211705366262099663649346127685263536496313829695421898197428703128322087623530726997190317486744695850094829371660658967529305869306282121790109079058161618690177544692013445464581922057040261395225920400314376630745805490478346791352551705424993914335596436316221404326291840679966726984562335211956494080812849743747863559143999212077982794976871817414841807036754655115113582084208712322919903670933139980540199230075983294665882712771558693192770728884958050177707115576168774918047106532986647123032376690293538315916727515895656476423196179275599236752449541631549719062332539702366416694316278855049146553156245822903791691478122704540963154425339786057761602398718105773699643575220293578260473429986291795629592907096692045758673771581222554278869574267496089605806187893472544452964160328819526046890215230843662952724753675370144076779576818147859648808035489437819115664342631894088107234838550734656730466345391782873058845589751577926668361719383707632211612038668748280856161998594330178755703599530414121087612030676114829674298101901882230769189553275025621268806034656073785902537568511478745108752755471689233900666263047238714537730149544540969666398761195192822693368029984893450742118683952533124931503159153825055325521913162948576289593172699214111965057648104517329457098737851122589959575113684915613817961631440856052070247329287969010286514698392420719470868334400220019004066643462534299417568588200510199610151849134943646817727271975206717267250939270748741937649910042653829106592674181861352189347312854823009512091131381634713976683438871241274357047640155162221664535703716933120195050329965701122932037887499178784890843124928367404115277943031061760174173275206692583451323706716307792183998286847355236837389670921654868950252891234939258474789038236132422203818484230232593158001615299410894315168819177644478388198105672475908895204935440628590920507016402219162590836315216242964307574921626904943775956723665647079596877797778407320949237460586294838485996139693130838864744901326588165468223259498132297965187974620364924472400417359637424643594355581030954379646950097230363589588618925590882835255691644579483951220905384206026314843429894747306259950023737653561500835668530135570786041312020083632794728967814513107359433103088174795227648335053142822029712756377758654884276249960365796738035907207264958632032237516760498406415867846452588659512999233791615264792725888925526523381614261394606350112450744775962495174834985762605160104954294964442973751618911327990636582967388499470887588737870955013448277831589420191867649780897976336819791532187060517033263766607330754626615549545425390469007880025604577323941149980780971360649533918693147189811905049501182882211071381993215637215082946493379815541846599169573286343937045238632181158457948046679538264194485814646254813889945591824577808021299168848305136608876204922291410956673174086118417056265923973287796470015197619647335353017952773890058811133157903861725723533300011678687575024003679231082330133023413377898355300725494861841227482508248255647066987535109708551137465029794287921787243176342005571979477526491301718718394214836915685352643989610796085747450756651918534206432332625352522590375349796995538099923380187828028234410856917278896226189176871044712207588471172338968092981113828043341603222151655282228060991895982565019035296036001900005755083116956736165396924621145833899329402143557129412799385863418207335815759717212256828954115358630212228662989922369738513367077260024518609270667696144180972238909722689562588703973846249527318001558635100062636731850638068826753240764085275943588119047500019137122528697360807073302929856863536923016728960532847503408251392531604132975373872451278537772083536006488440282645509029166381981919069427267084343949587421553262830941218749732949990303527579440965045699878737841137978415652520326392339124168975389626491438634677330365700000465358963541833942103978569406904933453229278600524459575156421904319962693750482971316502095772005295565384493085323191518835356028205781599866478666199155853901722523277546652517827454500517215893122004803244727055712005302680254951517179908869148368681941267205918150891407881151464627862814524095425852961769309397946171429879839186662756638691990106198359573555840970507336484949121060178895636955746023772536081352560036630169079186416054807463756189083498597426581369044150773794847685345600505621916687781541752652497296591398927014508975759136738837904919811328772486988593501936777366927993087234384848003301244061350952211518873486406342989460781841157797710297534576447481446607007153892228462058216383820302545409206675354541028303014225335624735906720128661557589745524760554297930884795347931268252230790897978593159061182150970907883929021514039286494906331344436967597690641233300022068138063108903979957662915874997844645281401567209439308959645353313440171199625791612779310595362157883890080990011793471851360936567808480892050373244753525481122626477676111058497399790514991985997749634724473455501044740561187993086757211033193389948241107728273216978790541721979872596741957719057733534901043620245359459402332405058652948531450226596254596333855596247221746921140443100868884720209061169281096049505741809704618287707449118237374038688992229489894427878807482449308128720043756715300540832044809682999274798311022777024854992965719163292559718979538587274984610587524481900687531125318422504224572847532546432417152906204727103039093567086999092329601754728661521249046243116247837358942554873636822516746294670542192446636457582007674144864215985461734201600196557085077174220120963670626284829480202838964255332376718094381570156586799024447791407566487212393710139744055538127579245637372646997008216572355253227471631205820375390849992353366840753558286792184612939934888651503487216851603552963011952803217203055442685818591327731592186279691518747265139953649607270918310914918731145930506278601458772712086193924379933120067119791915021218877453738634498716925656244739472551692121022916061119200874639282779584478227721289355392152495056188997095761943630855144845678812999962952209873092124905325484900037288188829446232819157596838157855473683581195881942835984492450418554901350522046619324973037765276187942024674470402699497682962898439634415983910948211360859841814464863362933406711442910304321219839867331352081034173982513535574012549505070818823296880420651340240078344136145008615411033244455187346573064134617687017236439739798078060036176194757557605321660422224675755518075142047918367625692934728954172016843168536304568314504306557033957741514269023365345348379268749040981330403259814169692810908426768122841600332153478169490094377022918489787481554966802491909122424978588140520181747019990577582082881618453063212331993819988781041304173342131644252930364187346109042851789956477242951383171576128084301676289284729548873523197029914005709195120861479144373458063467992824043043289049970383730053418532656983087595276788081273058488271124070172757332914341095134112433046412707830588529100962974658339188103422731682322678392662839688871199629304532178944148669152419589372499501085167515337141224122560692455203219482938545620302100116983924974021855478878946886543543577930469783547469223850136593758598895713557023677988968791570697885156805965599823722962888778874769502960814528083547856192255519463061156783255243823108150588638121126821281695496437898395085937669040856170556754014048735962428058903185548576216322104245923942372711766692526155111742085342133600335016699627169640686132309451438325479634528406520225627782874521198363759461654508302299911343242357093655812794714548430914660387711718239827645241859885765489399246053134575365002033671255154466453957312481538506601484440015353618420877578696211264657920623889333408673080964701507030020270531073004585170489352232493578026180250326243386781677228205906160509903236601352137678048776673530614013434423032198932082189702021666284501015480510419072552871601392359406473285550133508723267084544341331484444057477863236589278958436083040233074385014849792192133035817162425387469361649588530437681435708232023800907254516635723334885582700717000310514142474760769266643521409228745243264185572065402608585100173464090761743047596833411099538518344866200342487372501013002112054431498316267018805096469950266532745152435959725966425964612839100138841258516836721578230420358134889862969472459450896560635717878629165797624374126823371505775734337721972348985364735925906069749931386515742636266226869397239072508770007529816138492240892068966439556386030449875880571680385703315641424931491231435400648246075926160315948017709991588158680736780944039124373161667004976526206691073326280978491973807116873234346474973176100166664903542386930802444428827694473559892894063816832321985327029614551479507853562096910656805656655912878287094265755423343964419984047679305192766761245152407992319617405087278738318415043045145683487686154692512861887505438057601871347272782926336259604288164485186941389543097052584198026631740921771809661323550420429954736841185463542036960568180015539075747883089523311090040042426561504257944367370350953461760610318611437423721441573626263070201650947020024351601337411355958933566229511926942673372583352916573491630859312646244213589394928835586797392905962733014764137556354079480502711739745223363908311792213663791112885622331216931659253438604197762903501569956925957202019155771815641716306160287415057528469153689895126080024656481918507985816755908260693448850018065985771477867067383806307865465944040898101818177733540884582526666170035215494394395591939815887853962662354733592230173891623289799942907993352380161342825596124921441476326470600368900833620308615127782570518036631755316649352344722255361207495427273381225001041384221735981199143551533825576956939453037375899336398421842034258607778100760712469717412507624871860240533398776178344371734874960349907562977403004703657783263555777937718291815367168419720774963738470115963630460504990596593214356676740081546419153439878567285505930048307879933033771133294293583481077503282222268030407394694598962536519901692156022934327596784490800910074757738838615843887744780411734247043861725114437389974337747928771745202685482270415599154040937066029640005623326834985571504566913450684198501666763090939106630531270379528655693435786865317052147977608687425468647094859847155377696590198296301241742500086420070133837538640501008121224653077114860426654841495739177246073613230649936786001304768142967150615656084149463404524159967193818735973775979383270505293735340712841078825192298519647727534220815962834681362778422272311632957560667371888183666796963766442496640116800390434810083994145344117184980582277043160436768511204520995041337702036267070125626025845716084155800181083673620638478806223656915028606851497293341096978151338583999015667474331615819164973001289644454142896347848851683383903570457816173544026978559141564344028024892575333832073526330133562706582514351299429170920525613743934113465855108750163631623719180131232053828427359131310908939551536341590460310460708506947258999855577074931966334042684399196752362537099249219129385655457241679464254064081683244137485952962131355508828240975832441960344981607074416401687663632986118069932911108244477027415916070992262787471787238993943053903972061150229009509403950838621594514754112259165781295942525377918652581276566615690939680687474887336043175850738252231818300501821200879104197842491279488947807330065875981968164998431499712022821106533665010229802078547772344464120350925954625002771285192494153496830530801415142133613470284336087604493953081306717064799036135153499890143068331359098656497073029805701572940686140068096434720022624704027684906865982621056347655846639133775629062201177506043243062690907423508263759432751940978237850763858622844840164836166307347126123374694730372961093322496719660223849099490468915742093311648084593295832423894575093221042353248935722483048451494988297037268468095606424991863463877739403178813493226162623865492878605596998034264730259021757205494260771385121622229319332622138512486776480144455566318173967854779532069135934348426245775493983269982535230136561114682758841863515023404670801950800470182720345534459624782419161328410746311534761139413341512486525188996024365272001698003942016607948416733980741309063450200322565058769200672195141773539797974711236467862747397888553142270484810078160461398104971919662555468396722919952386967686434158706924866201422688089242014383630551046742720158763002462059863456250095448120390037710306452058390484167623146981889683464848827899338608063869561253380109322462502117113982726653796454950534478380661060518316761946511801374613583069508130524792887956307345585453606375964832083579484698440340211018420421788109712726008714200896935180418101108898987302540718943413688973836511127260440146996599941923457442970253724103201136232007962597087725428250490147854520610628027514329065758850009508533855230382406026843193740330818852943440347981888952316950333389974722202843253198115076362695029792925186978971137456545433796843841535166248951329660980316122266099908254814325109159702198241503394095889941177135548751182271923447826208134795759952070554244328642946709293082636278333135344952731998694757074093938096471436251739283039703579664743832292935020741132831652150503344906517406011142363131766078421650148394833309225788318719121656214618084468941966310119896987910442229533879534013647222571419912407017608457093518974309856937114539681241156982747575159033282807410911019843265298203746000843573560781237332708845401993096982675385527246343926613188618936140927482083732329924188139239570513023141732105812929852965669725438011161010186605042227498788881825780055635351770979591694297345133404157737276019147633084792124351184465978993134372844112969465809834430328111413979881018221858987271361208718014074024786169580070692109729506465643661356494774165637268315064563046131279217452566401912884090744960832007403982768597663121011630216997751821105824267543625323807291603174319416418770546109751401747961889810325547847880006800568441986015386840721481697028005878667217366315465903417204906317899471376100118890181156770388651513929830334200251135650908029932062796350171701662319027687776900745843328875338868616005458756984353244834521408235095326816905327531791466250357232490719775464187992576778883917122273858540898617589289490913185234557553392533206508183285677142237751602547087876689709177151869961577077140623859644404111598175089094911459440649996312656554041688861408667365921243694013791617415366071755455005118274201133513103140205646666625048540413775736697421996000962264587956054141507332127023461568514054084457285410284693226208348445218284126864638371312092118893607295754781825801345493101164431290305874701767865112320929725362848661504019506919120088488412873833980610820443064155360451139724209039984653330874540247283747970433445565614438489369786259441072058781185716330701066854763052199343728253105852281993528273714002334005341931549623656230196093952805806186299227760238474236662575486844223929173481629809938856437109810316789128719155498612370518773870046826898374864054778215079374167755447855714275850381073321106527006982374675808440032226681981282812204572029275023246674123348444851060978052496736532966585395096074537586274486353343229552644504177267628900102541598296458930233423348418639850347263622475895519895865280492969257990472015136188650811612107604078025343037689382739823726966499030098691508319160074760924978721549286028518008829386150487704032639415108628720934982481916597057285906313046471380601029008165650077581348927264303061899353139376299535605714954737904420340926446438616642401874666476092397269296065803184714446348030449922561587898211497213668344564834591664490539147691603105436373616420415814322703507683850129969282159179849556856660208137231958234740251673520850294818604994023094184401903410223821173993447782996708327009447607046716827902432609547854854124402228365971534349065729296454946098590305574206387688090936958490842553441170399763028017524383436698725116310919599137964348282396986182858315775504837392619792421191903228829669728848910939058817010655970321883145824588697921724260169912252554486731807075068868485258358709081089509093939541907441039701245186452841858494095732031915409819993614479713531185349486462575815854860113509443809332956014997394282718392097369447506118567874842577713633488150377514709074309169231233760251915636954577860372090271139167629312919475351679477206106324711657422619093822883019644318604934841893664370112755478187618637397823646992984915370696117467654219442721446143020654370909321180860206140633791064585158987804707690342398614461072180580145102705548736962507456573631265527407478554083028779469162722780120577582531767265594170424781925848613048453101048592868468453948545761029786023092620583547696877716424310393471334865390032364427379426807958010970687635260815304475208419069053793420459689350803940312810960612206969282826515574796037220880185194086840846813682887646785499763149324196653980248258885053536660781674574144991254542954866020598713078678615400958479179296311737161548768011206614820587190029668232684427270481029845347869026062224469975780268701158476780682121046233140501947723181155250236602144334277520391572906613236734276044421326599955270671957007783901921279473534528112887962958850817092282691836857140468968728917445054119940993442094546298393636367497632014095650035730858991783860474140707231841767065464195692945648374855489050159871437316184193154924144110284903490995695512949147115851857649645704057944338878916095183443548501961310366498321052660416584585015537758101169457674839686644751965012803516973900495374656124713143814964610449532342597608099672585429781407997891512666638934816619360229297143399313996339825077409669637083166697707507940099146739989092975601538353019414326622611896999796030674890244868941892364386395591843809683721078850388676725459844243747500054377294655771280710150985285628557009603611299326166021846153162931597220413275560576170682063343032990878172706297306621947982012372375097736983508850130731622974000891540114147467147925101822377589023350831155718436535379811463030251043067992067663081706254231792046063404910187499540032086117393924687330936970166235496503182951388124333435842168366284876751626134076854036153457278898882950183774866498202604534840484515795310014924495947505977629861448341992291150235500524815638732578740874040984341849594487757610908228297319760448503190531426808178581775699286378311949367430226475621537581474008736728472835252324486780249793046031156884754078184191249805195532148882032044754200497639230389516435175753580948095089284950835849686657340423329262724552888916136082521107018563499937286591088797965254629694767422947314866932498284165057937449204981963435685428359794739043939960031767789931616544910941752265932535418989108925800035129808309666248472599340966025676304828528037513714053012151895613569772458183831620088070035915612566783279775289313726686978064487337470257049267400549266623897663055476952140283363967652608653321828632527250903377078544895159646670764230936647153771213243761069928887442080615717666118807184148464395348824287185442014749700947412834286547359087875173788010452244932180268017563492582672173138869538480618475555276401924877368449495469705162557330761698880062120040898659641479574968327439020779478618861401519895123905920569494319614926536874329933662267872092781295141404853393568348726203323576142730905340264325648003304736634525491978571901501108529732409338940495502565812468436073080404111123222214514970666216830100955045645095757431708221464749793893631302477260033915255886460630887134978636721104804620264455466802225560526100857942217304565393609570656156794631006910968645205420539426204105457770662932563379363855378619816804730738357297090943546075539828373396749080770013407003106226309531698468284213781093186348311637082465826318504047001258792562135400424467772312370033070262615175454042306059955645325200803934664988413829054346112526732685928993105443415241455910759036317473002424830892709666367282864311611237130679488995277309345754774352044737279510046823309947200684925663851191194900789058696872013323619295950637699387688494145910409177376870021253016214233895206752567606374802028933039168937618303521881774743747963737964101159815505037532728180675330327609911244781142933155548973778743256975487101281623512243039940188503904417258191650036466433225754673185740963535973753588913732045200171744908824424652041538150049018714475042773010629792725004353746087258533018706446365213232996641573202440180742660034594567576203759035007912093501304779273347404915395074705923587920290736309500779933461237456601018006222737027755245590519816411259818074019408795292016560874379816393438663408712305611807437242621291860646786060606796053809365749943283175453123535751673823060917744559409639001859906140902900813421237701121242355730509927074427250620949140550833685108790695888873439253925644988214280350097027797945415976018477782309307360696060256813645481022320114299033534240021145423533159322992765690702591944204499328965916855994159499009295699272047773029453410562033455853397883950102011186070628106031639412208681796547525853087962325618275781482593514246794083642901385286876825261435658502551605764879600260163588710222746500343482187732061004795049138596027644023193815897558353851335385208834229119429449540422726593753164533425092832986078372362747666138209212729651302738850949649635596285021785160280756105959432098116205228738009789629186542829912518488044291142347448856027807226356321738227788304941347972093303230797888761748629725481449746451564928513561726147099515118463880599040399513618262320724638514159510001135813976027372457808646469874398692912859448852734982742247045553190974398749145785155034182975306931576784229240291801976005470131229545892264191811965059901677290377979692849674358712640526426014052196799959193004831466046784136059929794571794590843954830533781693068215917383945758750612239701027524447744421013164640960686466866498578649146940654170751967753631333120586921308815967115451379311004070617626577023278092354003011724880773456241020749788296446048016870585537494333994429904048060665054370189124907742411710890053750890407652892253744902710456136450714251193967134897209068399540312439761996577780441104491304184753071421382230181501384056003541270549121084732381467398739300266358644878549711053022187038037804609261101886842230968312528868519314139872900222281582694038272641230440502848452666569736552510717192080504559608463225011123735827680629486800574065881109990641627226773943574347599159317845719096046433093122770017804632887465709595746947513936518988349153804157894666581668301313674516196823900533700212177537458429353130252284131324677228775096272511938291047756040015545835137382657306329907365827602730583908505150671603454527841315754028188634959077015229101926103578164569651560881930709725674140365199347977734488021756873510717503236753205624524181346049474684664748223700119236124146762622443311246439415388439042246568143613101288575909255391101997909291947156514484540899288908092432511605189329193122346571270092253996695728064161836077227020231549145815532083794967749954846479430810717055611847705758649934849940063539155120201059182928227315071475286844796300190326737241904163422165431029031208717791626645473980644816472628892146141984122418020645523917468097950411043039932087380516421616800785067207299361407004628410337169847832681354144409861135054575873854194624921557751251941778826346213792597622439239605927059180848847596009182730055519157588239287910807929519330201142135551383025973911995801686741041148010756372956694826834104092185777718100146977328428107870679250992128018032150973368845770755743281927367260371853138646743391562873494250932194756875326862392385795502173107476558330084934828784197881629599421254828845288410950557839629157040520219912063321506774695195098736748327620496255858733022188678330248697144997835541185808682905055836240636293677839086868295100305307143967894441396790056592282089748557326843818481037434718197199400221434728864643936401261719741558188907586243073857423520122051408236018829609199785919628372658353568178427363435520677300940535164080460793532181660637480354523465181896662238147810302987184798612882789204345169703670707589273662923431508801546158790188319149134386354669873698867941864723582983351374196107735525049565175977153847585456572297852008657543895971350649978823527941720708147357145850101500432602491641105495789743020339610093994708608852984831011501931962998791478223391259046807470544367122245365511227567803722389823409309146833226607368317436113065576841377516760894744525801021061993074519547187299634774332461141100473985115292636485394753426920407017876055160819460666947044083831739107811783077832427683660505227578152317100269827136756687900917056092524804158450967973786783203361026980817020064212075482433969296746032879743882950413234272348621828720480838587041749185119886136222813169029257424431337689405206628908259202114793616577829421791125477259771527510922007001418074899525255731932299392653767475059741422132854415391217319733096256115844399827259176663432525287563280648571277415478366483241911134904478774218796177371877920671132141886889348618565784789894299769519104798975597254759398373095742295893567784316297177931725798254469952686389985702449025386510234073023565433017152084402554214235212465615076070914531496744635089902979913689277411156547961495034972272385547484801186210394964098677940703602761265382760133208048268733680292624204367932968114435995806729128831766644236396351083833797363124823434678864638935410590560839223717519968486125985462517616944467264932264901683268800196483461758831965737843809865249548430500048087144449436898564007173661531296123195227353401912426591617036827082438636535219142278831208626975073077738156055905003412735218029786085796269623823734847439100316546635855264728237776906869980207921151756174403304808396854961447939577084728400890419592023777265505082211445012624825134054450913008587832421022506487048547754237636545893817305014736553855624799799728642593941184266711963048363659577955430736194133264319789356877647805538747106517419601254859363272302054980972272364470918053240773824292363209124123074351629513913174788718733668631704109001957730759681810111578843135579264586873612129026762344703245616553560049227425305757283854999411841614461979246484817402084940615795801467162882964806542175664173995436402894507521436972408518336379921892064594665056553213148427278489675471022281622924912955725357723399189931881027819512836057383171656672082237167369261959998771773944063058894714325794736749637530570628482412234982413618235516028289881928907189363440923163141167068290982675842519494688177498260516635480064438248935160007138395047273467103815973280617894092572145558195937563145294501442035965341152943756759521301717291519001231020654792386119866356103964193699476469179223199695447058157489797112680090448885810594509378749236370788304103262793678631279852458951237441975933320159935720610161879427009529284262225801114708423822574849914526416952015089058184065688045114838868849973090897972347281651842972103634477600289904111009920032634121896783015383416797744193990399069855435766564049841306817718171362713048755328066957972432369338621781668875742819662658297902900939364221172688151914063453616045689073894743513034434999716660424988072719541737253975791476561469509095429216765232626064481093987951170316711894015753175002540732676773291146914401017849800284145419431832964721908927348733760419176159894806022078699970374935245787675722442481922745450466942832295546272458675258016369642770321580573843767971521890238054034049494109333273284456173679780503295265209091409530944385072384333509228804394902176367969901697732231776105888094397422644279227366343106763504691112658426594388956524257126341547953341701245832433248084287074749485093592801271843035120827807729225904049066669792306013351960124463948134538131439357540310168676283848861853164968519748441197724577257177188486897836750369304635304361935474022335357178350109081287705373452767172232499348844416805475270142500273767801689926266183368998158874778471665399628982940332290607325525616432067782888308823059408562296984148051714014721575699665648321261060480156690598582318526454526091260167165734488273963279740906357778631136362581834356787793189572365563776249204073071455698523970970099167438391974217998025228864686948506417341647443538642245721303043810594233672681616025323345813414256182552114139714545870867356923253444766961782411538955924553400219081139088293878333656341904691624612117340240564286098813961405145605154391438658673791822754949433268870695916889579634213555175280978907383330874614856406135644581343940641697511933194789416324162266158075196191011573632286059680278574844344574341108189118520005770934881704512850873320404534378806810215815855314783415904881230993768303889984757859632487701063169321546499134157873514471080923410539699893524140753088958300205694537712555708631688858115558648291981392366138890605906934046074823531817321074904742296463108104104978571385526847262540322635755015027760581952527102491966163948153533909973705764846948727490188395131075110653284615008501384716480620337643114821755826413586785974318351759603312288909855253531028422292561880628919466050393344123770408953607340149623272375044907168944989487037017173734260530909762202196332492100034458956411215699167731229902136902676462706007092256165794264429061402792300148783403745981065173348032776416999663049707620929921740969806838304831942509565642690533273629945841243564023856476072994212117813765130401581956427680753587068290492418344436375932979541708927775930021149044755524196590310921353899557706736122491106889436068769285081910176647690973826343508450248574327101976320638467979499978718546680582870334939321099659520941093116122190902019242948350501118912536053930008822418378097501519659436124364042513271521999440532217089974965606388112500801798478686954313240981520548512580828854534687564527234697162081542156418459832526868496789156675927188869906493698960757122426036426790244031975741646166597220041039441412722380679168630377933302278088564929922002986026882128073243435221190661234280385075481654078237182134277034695681476785246708237848956561384849599747480873680278361672466720366036678318811778115348874810633294015557754183819223878957103167866534654064063849915361637100001287396280146684646812593256052325718994060820015205866319355396161128597537164953439425523437379453595029217337207420577521161491093138840574341466592530415972037477501274983248918176897187949339960856426277765195717774236703210292700385719047052077048013956511202551257627604391158328361192696113929632336268739719458409169984093285807699978932359847691953985330966427836283032055572556376472158844735866431389519043674382900999756240183584873982226051008125018796849769972927262940995749069636013938035257484668090427203246949765421389017185674348512555875969773415742029447954909971655893352893468113712571775684117547485021121499106990780271315993649095243916570706762854671567589115295815413083090567864627982151849273260282484166803369260889257504700450531987919752356532137845217218404316050503778578543579062659256721733897121388242600132528856652398755629152702778899828000895630837652845713418141896301166643447723245420211260655100053801741618516401090735253722474790061918932697981652029414611555650173479321936090979335773353141223150681881013524643024875294144481259006479435988938663506748898888158450028073968445952020743189191056932782103872022843623538452867765221935251423557706909697106235844477604379510744957933277676394454465068281921119834873189198252050729932956086197628228925132973043672965597439720569217402588641504509886209916776140967147730695635589352232888354350666719633375723929340667537563608731940582074910300394525660133017288525099130463999758182888361172029007708460888571603351509509846371915436638203239461123884596477786195443412192297370590128014576800506244771406004646248212902674334832038527330894374780830858595828942360092001874775191982524401685535607714307840965064675158663021676483891372717493429707980636745889020622633606929641425969810420843364523619089196911181788646359949198391012366108412794827725131111231280985147163935483877992502429288396930393493250158800926352087276550878218852089125297008283422711454753793111757833386024681559261843333161498523730773147559833801100371812454566289651584886426278104736348890695106987016552015573747169611136450148796264636955517730824511345935916368204618665848674980644226460013954737733400531220591303572279598827344076187012699920562772152736332676096188423266213574446159687739471348555268591177868589027192348632255941572509880586543519575794673960614155509745654291317276637180657670995466028351062863340286394932284463209201861313571670234187685801031585799956377238352935721764619338760082044368043221953270281483751187550430478153444371881486311852030796448930864208416372199699758687368045185499331647942251250400291469102084991131670617933681680782597258426363384959193437374852468648275046491857558114353226535760256037980951644122197089204155751057473556459336975444799651098714219576261846818582962042850749028202375813316546814401156426197519277944153557222366707593459039066480718749287181539320149513525126222790916189992815789356606685868504927966244420278049722074681275817060643931723240635236514834990262250851276173086031340660899212682680816217782887929326501965707120882823720808117900652357283269668219868628227326031197725392471137782950688563207003217574319524701750184777297908071226303367251271896869419632637414048427817686789140046308992736103733952081680014541033251901233823181872881837874330309842828459865758999912437398530183315991259565431472932391610717288263415638483956903037884491177500205164330618220022492734153477238083852334087905684996113464302268246865595910120463892589157122972332150389440571340590658831807878974169252781129033216434775841649238656286393980481013978798951384346817008595034062994387645569349749559888468233357343334894661717533266209282752604659885188556528255086610172765034653401807646474682619707945539565342830111183535146549122575697474410036725406390138853680213189367334171990401613956699680880133335982346957906676639253167128068773624302112494794656018799252476697166381586655173998517326386148760077564779617581779301581830764888312055036500680932562197581102941950944176751753968894448788926915990561257131273903152867714583852205580101490061079614488688180758406622645825344015665818426165738134861962858336777740023563168792749129689499674278802057150616411195118370195564179000450608842021907114059010032750844410647400657474029466684384506732686898444120653969953766256428804824972606336338611569219191354504466719127891241474639359654684285060444279627524307952312320661835448798473350448386044050806403801864448709429491122299240452830994941129407913415138754632060443025370252185625061558870299923254732716175980426022171241015006244101523961637680312784176590586842877953792801199572215484511331710855228550286294195801985695463196236374485928462924182701127893908606361214171822277588194905952048859336023408600988050645729652201457905864873181918711300236739231923971903221367985764987848345734102957506005105447540584873988899946101992775772880699441230486372034163326453448095590970625690497607431741441275543972611324001709555390203254688146219416897944435216010325490233860958446187958810023950940229712593797055743205209519772222357221303674015555558763961294522226882990351118612151182184453098894001597372315966978326759780569014743900932662887053506806694469144965843223115871438020617889446436799388605718538241663700039568765286368675187649138298446628446019202488260864636386838937744345927593576084465475371213147451299086851178413993137422883329555137604163549846626386315803630978224029935257294790140156871692906552583425811716623884130411565599516543507470653687180261528903283108633360970463801734021125069225982847662917517418283816131402797980014261071997810014369483758931563589319139158389184197146557480802859800741714521375357035542903909427588348087185160220057760033358517423482618873552749124135993925556275208660437590997321371655240807404923047063667793877074774213583138065611237655307069089092477913086105514711346564377663649560893667288289923543698152794302240019650605951685354783754224341594128508837734353824788572508483581977882895381605186457605398127048265998949803341550451717605077865121547816688504207572221872725906395204826669539063977589077051149052168025173216320691357704410441901862657202771963130858623184605571709764445991789753545090377765615709940546856682138376500018061060643074168493222031684522459423162355210795034500036735908948897678730762084038847462374707057501805652205860780675732811210545606807812085584992601416866354847138913221523423246701330845095151723664696610809501194089794600351779915468887681221552882175123900418412123139858201144054448010991079666978733626357718120303907511470044008853959149632014351221051052915869361741269931395106540283611138877237636983013366244003847038863207932534273127363779033158204941259703240248818892495897869799535286653919596647999226448936544065126844225764277604951797087909678570183452165397306370721588619444629798772489938838808908700985157562564440616806818886439034381226822917254430836414047008986609019370379362293046572502886932005171703318124089232061913807664997395873780519032088310495806292187048415205590234762645547035346231294163430093739729996454271565618930398654617405400943323763784830304316955652199240344016262335737027138433242527259395363318715308508794228393210645288193093946457129427753870482526802144579468486481982898554959427959307352964952768547823199500855247581678225775742610505133488394461357308290088047014290390417898351443117978342456443428891784053800724771413890507474930695075798707828163206404192354976516554518172363952358164751550493823250520440404920531185691060180947027308580027816061434930397364172399279286570519344113472264676354495813288342295276664940960543126114807120213710234369596970165207420795747502599400677865115219844380912357798090680771616998020563068473651568863237136478333419501716065067922968996028443475883604080816938437661136089391861371884086809632090750954648143468964721387411734987292727477074955645584505643823527723077995156468916818672101993319515939777205002389134353593979687326956169196166159743185436106249308096569404858707822574917821630912979825045920090663320015695739452138350932168371685783987379034470164747074539289809222240521996341661616857705565442871005551100994170852208102626258462185120542981678309788902185369263446459493770200609933578198810444241126773738287526598771250512914122730370566691268104904600009124603119523318077962264677431150878478794522935776999204265233556135753381960009924307345116079367655427137318932692882474284105644102991832411317942844974265139094705358723024278390536636200530790139205111336250851940332465854721972050128032634369960420763601660661630124404213327114423929722610847329135587705064541333975001351425347912097944465059363511742311100562416610685753653479685848318936462214386934687297706758724674316505066441276196570759732560371973068565276788230846871159808506820213856964363128541520090881258578769745992444388705418613304382363343576822915326411043732467064627171185363762131215104106530943251833248226263703879130358854406605111448487230196336454300950142731973757169252334017742107384760448568064982744528505193060227020013368067082449325161420413937047040224715868098286937710345059723656858816634549318271269239554711427301116714501010348409461216267613873870134205825577768202333698933011712452982215500733928113584524823070888894694945513731983352351553963254236772926608419073799633337245811442511788839822582718774967452591590218275072242399649857506609779530478032513520772237797298071548189504987384555832739099718393096489969993607870562080677348564300268258994620626145812308497074284391076580131774319445878776869166727616340750684584767193877267412618320880521255374664088267203060362003829633422671853021340048879924093338057066820035776533388417031899010878986376449865750459776885989916971067539733686150338277687590778928896940351824468055505466229653190848752800807977949792024088562552276721515465237791014557404521102232196619132738069104244828616023810141380533866007253197153153265308272533484472434816544228156155413844514125823081934614713906973391934020836743391486573504618011811376806048119914176185605583814035941370406543037199998390467133030124086950508686235757045985377604639628426221871594751561411430356435273806074494216601023970172597769492672602472512464491037872456695324721897941849998559540373333959766897158209772420421916870201114633825632842127843007154910477953662968263487950552169921456786554574090019535208295139434591411296446744152930287607980958927172934973328946292299386499203591452589626285034994804137802408221767175554280421487438096468937148031485146641961424104306465202938226253815212344565323315584974596887415796590516700112453996434043765392568027030636442924030610802180961204930710010322098839922252698685794343785088967599072587622542798279065227435457087648078494250281550889123876507814287329814972708797255134723282082143647863410153880080041571420929310404871737320048975022072895962177116013537649238997286492004182490004026505833188195971005297076467498153361450435105098622065872123125140680895824237815410903702469485159574786611577894377528797981140085204892933897526619527043235862168443058357577426542286709335908799023818557696121718198074748650350272234777108967900585215840326169879361212537831219448438693396763096732863106124999408675129953150896491262101674767864702954358138430759698595895580773537490502059932981503651222266506292386595244112389959719495171059896519811691804295291140450635719849448502594005312186218656398344796247633179573861121006965278146532842600726510574337123858550842176990412867502192582215493639568734305630983487935805874176437572238370551362459219734056442859952131257804692784977000957462992883279744939842924345153080329227213677508900960370043897223716241986166860035046872543181423887963337829991833447509326221434787643846550485957312826772778789434840347205461257892853185311760585350340894141287086188706946700473132431463597919341433464196298256627873424561991342277917232539241251065735557955317534071405179975185387002635744653778971138933359454298446409495487051260409441060135459938241274546472724165893848690868120538720987073940615001783613945323695565260138428499050126268869586497088821451084204039754668996904202380308856706113557239634689234300011641905313056589036158896945059997650125044055449453159892227532771587046151334738678620229278055741226035817457274382475317187976781617252939662978146998322500557991893663880090511819013708027838138752053099958120547430873476125222730103976885790049259190771747224721388131861622928896577612851641721083102151796772381902379987271141348352673598556627009375678231740411491734778970051994376414801661173148006982482138850752726437854227533322679970795173379701648311550759376768450363777001519244017189885961411633298950500843462558115945660595786036634012690928079365119791659907094666674348208010304377966268515603500383832835365836588818256105760058289387568556986658116814938487065916339698623426141067668381801383606169012989188249838069390987107241477829900382739031276323612897104231938014673021644659662411480469284333149550520931560577282166981742776742862290245730757243871021438550997139609694768827661788988345506562418312671994860156496217194330135039532314853430251519564601444426903583061012582782725185219185737426252874080386316202386612722963380476808645260344689460028008491710882743889399110801329734447395636832037926024318483477912514311429456233943475575226021740216101996579930228510042406291829617860327653035873928713014357016484724702775604682566889838340966613203356769849164922581726076428533375588138864053467583382323111064505401014428571549077771870515440323605924831010055154015447092006319991180064191569826257339899803704538962512553633736580248152727615118883517420648760063233934276791057852754436551202234842307995179378657562676534772202139380693593347353205811604796883248428617134951535975412923859207759864149419254613646169049963395191832254838454486425649700539390903219769050005545000747092121825460451730437150675581845938060516354524569696603621659307385616965692124862798237585038825893910170429807969528646257975911715222550296627226740394662421184318056011939913873025416197522627477854142290077222935460360958983089591441376042030860579395211145173385324726976129268792704766928459452077769515210838911601114553260264776889077282907173928895578022965043828696278629862079092040564025511808374066507095331054065776289669992669498649253542690708689239736637764153247091408723072159804392197792409664398220320131059425425339370112391848841354272804473547317015216599514037584193590612097821871592759087405873825333558436476136734077753554804679902576103685049347565155012474625635559596019607525565848617201159876891812358562072196682203341852245682227054333851753997201878275136422232590566715968452789110959618613257141294620059695187189551049796781245427675660282531783268849571127716935858877903190308358673922870558296022873727573844653089030432140988870462028365825957649657961048975647262574290263395703575547632134175235061252398928556057266861148941548421657531365643575507829010980559421479670539592131130980770017723338135330558875889781530485661004012600456320725532255387593141457838089624279810663989534254249989568889673214774423660220893955435963800664525558784321412069047296186874271128697550959357037070131753186914208843088394935382304665273818600893479514690832727727733040900468831354722484775165812205695309534999546148992997362038065248087394801439021537993591919874594776121916264481845616814699798291977504288464694245405727541375987144773975584652329431993799149838883435556294821474419236898403027279849588194767338574681458368975119543701071419522535703605257110419581512825938068743148145208986923590951891359897283633249727848113835570714626053262991288676142636726393852415548865625214130446170768793285664694678547300326076654816413976638515419737818318056899127508512674549995180601177943168806011437277492485961948916175660719240564535161137913149439458052602420991723817617103638622539695693286592005073904647444759178971424343352955789419157556996496886918068342646749867781486764801598155784278134211158749354241134860149077302201000670750308651966644100827229667811318223779024840642474779629536083994676779199757482317898319873334497275169126361736068090155594488708939190280149720163047318775268466151686697306780793092462951039386814289144159108409051766865344324748062975215983800256812529113488742371904747849004388459459005702003973814937699910189366982504076458592836053396013208389532233619198747308085114896583352037904372001384174801056620515040344081313623402661930418886456719019100049672086043332580409270011802139418652227334607693367268105630225964980757361188025554986419633117200207700770829559156625476664736175714955738289602037647317322959891058061620626383371356455906191707631305558530053709867241990698130309953777172293751294202249436008187526532816284675331888916127645364625372753760276331756821770900685289119690444653528158872325165632173393280249469202146055726010972132878017344342178642628610777954550944109773530580941138568073929642513530238060487222680006849364686806402347233376181255272825399925769617975480057849520692890149823349049245000815534852886805637433492634749907400424614834983812704549131302803837320831563619890253788633521267057684768396853563297077262706718298570760353181001951844317316867122366191167779350077671852546963230496536730916192654197787534072192002716879598101709586825683455092665445049967822311181879718864150257054487319703166115884583593066696939583389363187031617576936400849514140129510873240054311316901191452742516817576374590066368251975704885526048275172614847464111317710318526267739376012336392522389111002053218005081692308772051987898647063496343055770945539986144178458933924044975974495825547377008805048936373761702548030934410477376797884126158581859407937015611412027904672804247227048628047051493047550270409945748889923495008707644418249683081714295583662590616759915804723041555964851548300764654159433666833035068717412181445550266390345231495998245907828018845444331970272168483681556845480862251437197267449632210027176524468518124104159481406731247782391068777526874142682083850940052850908080881504837592460448342501955801326575099267750511810081617591470971570573363447021690528746717233926182326746550528758200854320831188761170004894213103778982657293008964188647180377710235057483840819678371865116251879656522522856554871309384142206413394938822517512553168828431665465360400963734749356299096830496810591705039153492135455205284467190795640615380579268854381801572441166872330366186054862408858447524837813223130360058277883062414015510226942299868920778709962378068146111358781086017555726047910423165518984781377707564175029602963741011573073931251094883335136819866532805725783578329350261208121751872506183837316684040320326451339033776703650423593941867171162012789380924425480286521592055367361284028134247759452769039552782397069176245776238616790394531559120581386410868733666873764366635838766181532729839181071104806719025791887988318037915776884185119643006473218077334167026937425399373672115298592126259852755208129730326013981298104186456365378871881204297538500837879758536183199361358464161063538148034164113322752509465937742896521359084468352411779019790394053724116540290034368067779746616513555442538924385370350965730806011274799011124310354934059073873420756431165654312414112970043503776694708072439026982812904816137838101703692354170118296921516831261934654328700401335396083603092222118427756756193271659001002872165577955572011608963950929532241866773358727761994279044815329527112494739410484117958844452783888550528916492374735008309787187511147474209687570227601844718244060394423712756512286715427243499334979266542580099321065531087125091299771501496933301203354031983624395002828227907303292432691717932913655288708877314474811350087115779522791255655270371745108363520955257233458639859854869437670954571622987274112918527202744482276362993838814812529598109333955251073413828348112259897303557210563335141798987130217219152002113423925123200780229799305034296896158648435522875537866015844207410336543856103428368602603058068263542084840677236975278943453896125610110373234459164663712485498279058584883177830978426568016761341171786044574807050784456438402787933666371771573839240703282997767262557695981399444628653974853908719348077545359409855325910930182130918927947455635061202313497836503872994406430704630444038325986941124908243631862156087508740293697105581565683589277542923271620618471626164482032357982537526950728111571869147458416383440525619001367182859585646041476272108995105479272009581296669451736349030796243516596720142597025326427819072951876564536674558249477133005332045460275119113310233175731735056995571935737095424931099728670311547593148119855730543022054696093755178171580923497663848239794233717759261003668726849110621987397109614234500605581379386479950565568470504651767953503322342373331020344173155744593639181913444689316278081975877269657887958106486414952643517127359832237892651449446269585410090830230844638561915710142888260115968974108994971825772704261596890810419288049414746760294081662957455009956097024268682320465571180104655388932023277423449409219297898796040119502757268447742796602198884856817739046166011175291554376111652083093846053100539114746488831234409470545744394687446035553045587489378250812283080073640344772155867642036411346148875044270013630851970765310836508395766194955148484338812884706512388955186301704522363930226980138808251277978943769696043487380975949480528475985022412142472492406984549988108708392286158065729190596934257480662622916622422402553672382397107496782999485092459424502580639506324064573287789039861955651458428133642110481582709869725849954485831401253520128969819533033797611861091296331824626338820530222642851242905215624118530656204780596296912703090672213905772592987422054519572249454515934304584128158187216431742073596085950938681707896389348939552618381339139944378448684504871634739742361959621801463737597866021877516027661984069511921977782171278850780559495786436917157299592019747306184004810010459338203668851310165596854096179156003119121511391392035806300460727722660914336595968532270587349215744537599932448000698584672529837894508730281364227697543202512247080642669963687057257754116980169520521883067622806129789038590032981179209207110283288578142083023363861777998487977828577853671197094016821189210768203301742493898698859642062633535225231933960828050576847063804715911894766665031291783465044807982471491997833407293692042484569858094040468414321772259875326023040634444841552394298032341382241102167798916135492457755098444080475153667614116594670584322094756111999248795680849523619285473246005194601028451994964035295834891062466317866198538999276379354059623918758485858706573485723842258287992822483664283216993020856571694566785831209800895272722108781348669481068715440923693528518507120023366434020312675159161885913958880527377351649719751482605521163229356145074658960914948580429803064353547144704383940938275443159942409740461866633172104607524296595834396107175002301940163692439986932597740363744914556557398707175832787183063021360813297688013760303279114292280018265001439251716789699702735438603082854126482347797870026978535814601991790223063169197591984931684979623672707783247756274120928694465760188936824522790183493685395658750516993414265177288226949723976918001762977623276816743060529762074209574689930778078493928600184533524935789846576650634823101334962058970378416172674891914780558783243782577395871940590773222689245370626987589228689991531336110790856717104951436368040687317289754629886240164074045249466960913147519784533716483077671438001084908862128454069278502085637379067572690018956205984437363379385690939024444855325682764293789779261115990828590761604723519379364069631781051994950106464161346981298131281510245537756948814920299989313123426708890360696764574312599579825893912906418208653171587653550399493366221786018142719155249277176674964467296646633813339705872355050893227094018898013406453891176158766429014221873620533775656385404502431167598778951902253392375088806230562298439615584951295999192756277042329980576673052598080600930914129397243534658723705387041855178024844125179387935013565322602329234620969236099976933073596543673743863541614191772708107126779504110895251235418829371927266190461414754579230228517156332377470621227401636311028765120151417764112488152265165354693563944338086531777825317564751315682887083811403387227970677290989180820143617596553057491133401255427460380639306457006623480292956403256237288086882403488449795841615551583794978292810418640353870257543462645118228580010343051961557007968437272758647876522137055073089594183522976553980422573414767285452299497681015146167160438630269858215475095012527706765176591122873616362849393101466912981272652549748902433912384923184073752812565771418851496237351883851116767144290832023732321936762257411994548273134990541180067711408641044424734058069532502497465794023544176524962033210454846416920832886971152205784550889978505952651459146893080546500256167696987397160524673650484980307850116928291428767623305542061226533673886316056628429066353800813983567201269888239940489019697974347923269161412348769063076102602113759085603294944202591185173123027515973455631435164942369569259593165076768887493659493421061854833925922003402926266343040848897486305980734199576345374662891399856214170583471155955524714221746438346223727533157821112058319988340846900762777193418097884272126264902489703957871351569956305014516780840818856239305269422371106634175627381190056366626612425303221209999650560181565859943047381166599640036901507127593832584050098947971537862384572240346441687020435612133220144715393675465970744920841049453841575312759390546255212859508156950882498212816130462046236265493729494832505344670198886480522080017569702878507156321330871986653068064137000180418629148702679609386786113987394604064495281301158873096179134554178006688769164793448552717331934712347332831651997381958388734222222475256316835883752476878090287787523343367461361752199032928394203251439851150386584529888360383034548045380824006650899831038723339535974932674031746713968779840367200500965113988746803564684805229517703029522048325563568650972455041034228128210786299060442647286402755783823055732571642579628678799412144612507786309143053110653362443795443298355424798347591759066674120609596717175984238074229776336929739627496494970036737732042842873301162379668860928947239709873743282622017801241733001468487589594988504753163790155173471733277985801653704307246595080596870113289525374778241284090769701794948129183592092660942273597087106121684834187229973927334433435429137222582668686722911505252745055648363357132203856069545771146983380895642373297949521209094482665914010824081335469804155964089207866703769746567757240860540089562678238260165708683680295188163684431735587676206493668322384496333030384568990635270822532978938336185534429074867057427491449753968558670103262051000896099535754330114426234065413006785130439662744300433028341044038371288151255643644899944788408711945475956755527789871395644295019044723327030270165734937092200705298771036003645142183172262264072490112629674720616832977868898540796299745637347016010890572212684056354321801882291761052579227146803046137069197449474491621979864797515497619262774158306968713166981610106006212076358098991155363817048744783859958265725131700305108809347784347609647219087987706986649726143383942909866146485007737770836706429030303809807779676470112377504615594542288632051319935511821252155854172878736017579141900181187942791983257765736035776939429714285334161823433074494543328441519763825533642843690600936317011588362973188583230512122784522953387789215178958834917211844698681439582119369915744639593332531910285888496601528439586710712258510315587041128230667043947943170982437486258050518184609128793904610588674408912797427878018225217401888122336963874191751761457527853437308858931071092080452183521603454849552401128642474285762407378790689175666254103937052995836083470451000301730005350650384927542430122653187095175501129928099138365368504702675827053263715993347610961956799153801309316469490013488466539432874853351657775606659013141942805844537800919221250304227849356822573732462993259964954371186585571174563825231939870433181088769312590915891082653362034583130440822075297527563320308606111137969956221041588693588676358758821387750209086852958148502636075631245856704954681521927579732208053190837888289510943093809116154690428641198646993035389866956586534991417822704059785417572419902078444377750798202786491767632360102831060652857482740818528223232767409721433988185117405748418622428793223391899040265682207636212151742535929740951065923780070955539883032735940017557280027383314155936869386224234143467149305248710232459770280572614797364035421316085223933530185136753221587908214462853555662017715506850338329206273641118665002101358390616131547480638597557471531027657899445322855351531165760950096401650835630538146185737164037800481696271976180283935716003566982465336984097407311150810761728457645774892255386609486255463969282513304491348346467450793850590739435898616864300690482972796051801632463911149640131426797230218841298260712956280631981863596353392841247746865506450042221787971950781870711981823616769732278376783685869836765612345474133887175435401493638802682781727002533898102574055461993695694115280117612942360347240776511149160791766369272999566153302203975152389079125238598566948094144439439194594926814714875011257464900772157341437262242024006972041433498614651131540105731878572320408337682856105393665129142597804351434345319791323990989041143106584206043320620870610808980231412598135171279779328475740777661354967964473402476087291691641892742644922535346761005453995879390562989865049073137642632358801079011639858730648517126685695310003664320211226217719329843607843330673704060768211156848983765844958650336144956088916925385301770694090303286018204398029283175759574564958451906204602857004656611477937716688120964916705402197193756917835026278620422263413168969277883650836935784302211864606792759482037894280091525036119485612530513097873031064962894394300774470389234701869966349514556923673349977843614466884917296556458917994158608615853489305732298138668508252473019533747935913255236510300863217970298392789054103083051621250931980431132180456983749345350494951764963500421211341784478657071321345848471354280406457446196742527448570536127653383694840380485573892961209756539555405858166357080386292881440191757702904061505029120284887639062059373811733093450822938720312577410336765690156755333580418172445054491007830659780868165680186090744784898861353139266660041784814270149529514266972811490527309543742075551502580181520692085913666046542369573756381638201378398280979005442299622788638606089391819576711418067595738234845569256344965079115448466969158439706277203262796367257762212163526364760512383476032355975660292514263566396443796102901800657976526802128313931533666561042187051868911981777684553689426480154937336568606059751024536332688764270753779714702951053736108453213858377713587829388539809627967044175300477654191655962848836415286075007962358163935104010551577423593701126720443348785935651045648567554318430540086906067691104551627308159144582289360403573946891732721546816774876919941671639231681073686760423495016921931269989269941143553034225449277008815329853818529500564206734977450672935010159955340264881193453038954885413317163385476939504059152210894833470245048963588881560442999746900766118453923842048147726147974429122118944886330251464047815498913754258881772212311931894059282983564147532190297411228390222022263365181833994422912358433638206980992298765356555522618473809471733471713753801872445982498299785435013882603393909487290416624208013982823445474178446334167023528971245181056920549195443230959303218048304104653469817867323733799015505961424598599096780940868803914640409357442188010633941358389515733267452801704693351741713229226394359420374345310406728377918856311048144582829354300981223189950048789113654198210836223655201822107818389372698540453633373458081008084186553898066791989252243673349156478251344136773611146782893379054349274252199223745931218060549946442238587316094358684096479575550262063107140783040670352734088139783584679447953408207880043856507652754188601357332456151372373534634625036816970535685926521205980309955366076547576769947065838204685413463863851930070150184150656514722244768859093588319577875884298546292100119139182139571970752234750381710635361441727334121031133451490541845881554140448887304606134752740664540454574588977519841324521972187523279328326835977482619718726596433291115176149913914137625602075218791705714506460851849547142818823416276928367376251249735691874396275178711068140110113185328126494302219223756235126291229240989325618976093827419202120248205529298366956927292808283316405780931687160778668223146161529568297134166552354095149433852954609195762899326622070610992354645683312315791821885618152531225751402827016238979469707982771452026295495147938592749284448894070942198051543865498631212127730571139097075840492304860164177952327390421581127859204568773996946502416481155767226216513301566082185673757275305443605790410558396662372041414066064850357815431472290832222433501368708817720994929555332981627394648486847502018912643308513703263870116907935987509939819161832885712911448118127235911828710714929288306586846216875074777718883838080948739856930741315865431321148035969670365269490335109910065455978454329280859373119485780442610764181839313763891907872567291906596224058376561254207523627002218048284680473176542259438494174280328313580578531918419005117134668805097091556320078624411781849079505434635409788001007095146671224202710020933359991405860555149806431588233044598459515149481647532628306410701675262309792329672606157668914818800812102678464246181836627346646058552599330431052163334245775342997586993328416858579949448854950160738165742963923317273600818180630114065985966022334725357189451583323100834635269044362344913745952373659221644383660419699188409493977672376313910718208221837026060887353507481829918507562529588533226831887461099947465675262403959965027158463646424254645319824598805649913768822758461620702964951126056725405483460419901681014403266255729243129112114172724498843087436712234337307662492829631881975695237897787708750567498678264116639445391023224968506229151317715481254309506649124156277740595841439522432199741113151150825646733375602367823546075952654427685979937823009864866881670573087241536713639507716805655226583078493984028419058136487178316416891765486039667204231781313499419946981319085177608764792539901425687877551401978459530738989270915778788226976105774659294603062803317544714009593545617597289421449670136194863247397038525624331569955671759664940198804757230063707337197610039401431418533724599973208274470575600865260948889612926921621044427720069079944767042953120048453924198943847114171743330383385164540563575772774550933875051242923429130813331792843059392523634381870727999648311838355444312343893666531821729123185087163326913121172219537452140972809742559846079284933767243954351092386589306352606338791668252769071326651226967159265558020716643786331131619202818849741164573073463154125695732450254998301864825614758980315804329385161145920397767620854107828795447438768864744559125706997568495151724453746815406744747667598171371020184732903530207669062641243379211550188488534599645825945380964852768872134948279394714651225926454985488699462323585157999945718439518958541325574662191389289458375780137433519690997290292078500668444331962543760153926322201753158825218293186534234358488112907476258594069506904319710754546487929341647891276378905490529631324401771262555291683276288510596401082748339444499380686369838572557473278654018456291569909989798259561047663191790756064426853929999071394650973470602294735874111222850639435172488243596549029838523260239148878654369827663448547139570744333046347619040190820476735261913048958038020086482488107454095867190032299000721403537003069613083356310214391875708402476420022040334919449050852436635279863671735734294092526586726185890251560201397909643761775484940463251747739082410146978935302586908089323243959014531432423512301526518133422523835614921926635938090694682108572087160332499798303711550170925775109440740789913895098331050658857084863049265257751610678494932062301948255425522729166868886831087821965565789048649612091936381953571822065961136994574897537070967420754184876135086863408947215698298976141660253133461070087480355974229936020546127902196644279265418199545840572058377592057350185045365561092541834040898760605160347573575800911930134959452389241708980514529909105424347205624242264775899389992960642890231962989674272900559193287700334708158722278668510992789777388824071796374656615330702399926039836951942626453412907939445361324388330069514001067436843744104781575758487440989918856956601945230306744406664633956671376106210707669440387673741149317798328147244875539559073241103643533982102565053026787348283444504016144599869052283965857371392199808114060555688532064133670004926877943461618154884245775725382696498880342914135710113761707024812037919145747459103206707524808561730454021135848350805241150878694462519134165955630994673117341575129153968312458301915057270312856279713226740019781848456603572825451310535626689946068232086395943167827819100999596244146102633525789830568568766357470956912682727884555643868117633011957898607822232588208834324401246640259206712529671009068392813495136565267042052253644501665067962478769677239936620845869399926707171943559583143541131367631297690840629164259646757430988316632066757583457832120169732888052840211371296711955246882822846445946677030999626605213275970281680898402495390544821566671693829828754038921580335852905936611883780873408359430510275545465227859485156691161199975760479427867889787528071639936280426074179515315773733688302368595476316405518711802228394726144702067333617627502734470923088035326259592352057098268132431291949349895835456449456565503797623817935827510824418126358397747109721260997981223424536459730141142214115115768673585775083683474331615334882134055699895318237200088329244358702539559233538401395205705383381258889093509934629859275611184210128455512498110892456253741750519127916490956299453539408511912279609187584438978100286448414711591862126172080842775496446977359495220837205357495897664067895217852741160688562273531230543588314117325394790672770280836987649787523160254978158372368445277755009766489419684110815235352040495317491293714885746040691786763654517648714852594715349231550159581159352577428246877089499583670889556917491341859256347851486684677307309119166310150560265089614226580115938420330071902701902249849833239236904721354371798331913843365954370718024137423164190361146677203074248025204231693946187472898511608499702655842126938779253965784887844727377896873535772841668532967483868265302481913339336710975548010994563865649756042820312449277748116801355490188930581217847117041561071035405234098952858574110069975904384304493407194899955182610387752166945511415887088769119780572258495779258967730144488286901518040333674282492340494458666630992953011446229376474407275014934329071825237192199989353696181279592496299796580669734199443516762874214625397048959176796742844485583028928554486248954881839340703195551908081948745506496685205977689128247030202824856399562372372938804762811297344701659820885247909098261538161856175818934660597811206709414963974048766793088362357323930433328365984520293287145283094853738863184185236727082547198885850647473634411127131223949665227052359505387691107649321834023802102471189259840401802131875261627096657744960802505609897700561375513926856927170222238857820652298330081087137944953771216820252030271057876558397577272927062077467516805055854609592351691886306548929277252007734100308800781378732484136915799523959157772579317700899239502127616164898929336439463094663515510717097686862721428270214707689270803901274098932481056900873731548339163831596957549024309419147530354660903043897997619672474224883385523188636842204621111925661584067805289588252683821411585304907305969070469120204553470151240697929824614486234753502886639986978617207275949066163605752742268551332119733392235156296508209027103093265711604147226293335898135754807639894536210664839886350518088187436084428703133222437105528238165231680835588366108684106239350357232664984772871913455958788266055686185020698609648307280186397152457252581936583341100264904788910228309016760218783261252785606657899554346589295799632684588024834768794991502712173452494191513403060772364245990817195761425721766322107469774217776216376736477427963024606853807994726755324267335568113085480466672832201118912542318464234699824474879488456822629848292373203687833643729085434310249307495941252118615083870485167841143610181384729138749672265859861173933062071412929603242219647734353478262141223180814782626223622404968965287752903222955082931095527982855720183514499256090866628299063356039544024094750180879940636335951119163160180805550614178130489723599258685662823694692815302787054277826962321375050119933201810803157621940453999453367964095944314224626283717495751694296988077549739118355065939661214649969174294883093868958797829184115629726038921340068693013724393588886290034700055249629780944267935892627652410636671727658828728297931897067937179120440171779399900059372167236712402322770295508394648061027443313749254396672871641322161601560647547181976173359185945969601000714842912682319132037406405107700386065834679091703926416890038022145481245727495613716004511125763878321684444894104220224366925739715974281071334364569730730844235899340700843492545465263334192928582750987795896902314754078317484536056236321756338338541430752084421436276687913689868003556100733929211245728666863825887048348161433756327509857755183502587720463757445268604823463956282752735654144401591614457608037583560149518066391269797889724833026501501742580510986279060282720926465051793215443847854297440927444324750076058135259096403586106356735273648411305392702914586874357519574407698036020380386393842299715817733103067259586094543201237828787188171830547117518138960328188105275355832274755292489243830506429074927973993489147163530463667664070680806878594536168127830170477519817961901381076970933493314722758800366491516947087276962153283114704041222203432976873867285459833886232049675260053572568456532955340836704583038039118600350764910403911247007609990864565308564835512593331764267948507551261283204747318289422559875006059277467993219499714636784385853467521138247281461341829719672816758333805638717344945559656923632577288339760493217908753413285062240917799660289033466715019019013603856833911512515447383103551031545384957304520638521943964704414965958587329582387476754089564900096934395099633459583661863165128571383811940393031615821886098651227777952771652960564537114007617411857693082680567209910478781818638951074102419497356649932773805410870533073563296754336029523341623681325988963673680231153897398396831475857270480419417153378504542588796386103184755593241368499005252591955599375926494201315924833416718932766322917554779957103343609565434403222682072790172815538231004730439786994113896173821016107190624517969370520526510201149870403023072570558605451931828904561386157106543908700340160437894618650933369719546925051561639590215777961746042028373046386410434467249895068823224763708043920872579701578129413177809206735182890230289732210995745354384028877897353343296871670974633823016351244309679968766125352816834742559369938281063372375107448286761710188705927208820631042407400771260578759872830894845761301125136211048495804880410571904981270864671618710929258617743797841501904751643152944503484011988983304801468968885055421953849357498222892350695131543132870590787737803784878124252884767227611385660379405733110960120037665627732381788524815199004332097271825875375035492783446457346921093492051442482600255607984425768520747342163600136159764814389547034732515657830623216503547441266926368676302918402105148513547217310913079402602925235522079418135223908099309024256208974278285022635130978421675303737488985949727901900064578420236665890583177897136145267524012233188655965127969418299930959903055526730662939417247092303888817459119779773356148038842890478359988946539316784958805691150497289057942062254145141648035360448990884176382120524805707522618794320786837027348330187150866785072019919178813055860561760412211847818426157032716297420214889342248852493605699941458341340439147633210059535762469243935298179129691211383199612887384352916774411669086397428132998221143875813781481283626964879197724229157574350514643976052022689279738932118950949260005861511876990764448504336021156302396688788925975123626796523629894556629651020631947911400360519978194603025628217772777333278136544447318098355407427056150331903924676258423677720877181887510143480436681240988878576823129130687308056448665185176582942213128025178984547013687185950543437828244631680607110459358396178451330862743146685037351378190542061224384638191083994948100270119177228789035684202906792330165494478654565447026387086356810206029428027202502315046805323105331982685829782687025071186373270924988872756016390831812594949174011293996030797721642986050566360995725722322077825326250147677130448176345879276821829478375921183644133619756005962028170679712873959169020026237531760465830820335179666898070795201272779220630220082080555894339855886391787182887241611098766439874622651871271975058604179938067703518098516745272750609006804170863056413335018893553775951557197651750512858352365217863439643239969828213220448479355469773694544635885180957333066152780310506688639932585132137230698100451615262993156137662583479807820561308290233954760949581182632690051416119618100934757936237776384309343141172837869779792719465044720478805802992322223842884752011841426167900410615800049142988568175382068219884180483507691255325832295864759866691540700266553880508687361338757597176524045596248828474221546622055080349467023085658358464045150384096387067879054665786300436171724058910337740493682316624290409212436629927419493012801839363581688977611593795539198254826095417230998486050132655685574139913790685014762295529675423560562841800592989543288650747455788878638615409522269716888640887089078494697913220012851515877384001705798386718772725399583062599324488471367010052897890237817882246581835232169666637698059754728054683606224712650500183766627991599758801896974698322600944882076855473955743984757882565937404929742969214440370321252238425340941448723170137097760860822642877053323473650798157923927428499515375723826929049014284966469307179331057467125521046288105398085724147484620393237769990942551221541514163735984990284214766860656894678390670934817642866933051918489185432930135551572866249832076998473584141675058471094233496131592193317422539451850747105332037625350830034731036046742661269807166815909909981168025546381650841605138064824180316894401743588118886703712598494148415764090463916815618843025774927500632103289129591901667038760098874463793471587094608778547168660949637772156396871866503439730508810383640885073440931715194747933502902944856097667687958317856959486356912644910512344420054460511471217814348747537290845762026986907902073183092321152324020656143330123966226169102251466568449173491496872315646669826006798594653008818507171702711401627654793398555341455953710160984631679164428232222554144314470563666149601887870999052741498344284778935713882808427191215854706652448340426114142374742276034867044670396821907748764620791910946797841492843707148934080920251760736825370139852216530386729515206630922269801235518867151537938669309572881270403697560054496902407981634063354663893120055498798976501755531546099802051634324668173081645709227144704912896960149043871534212064754868539348777851544794734762747962086209361123304140563592095146918930455130669693683637611444631504179759191766619691419599924414967984185367841075767457689317258402840703142236077937696528722838129584350039381557620860012230828678994487051464946835848789487343053030413740893353221327102324992233643321934722333555935725881312104727452000006688971824265920815100385284688277374993827419120086302085879869220513115074329823147035206133444246588450573348234733848460003077898546289584177723193586263901466679739292268200614530743361133121501272009310071329854786405433540716308099387041144791066350823832667748191226641921346888266336149526456359669480170677215017728329297822354073205816102136741081955499404322822553194641444119330396267667766710069832684353716444416214330721303277713328672559902201336220627981419883978412886144959955582987732234310898639749670089919803760026677033561430364952639994664603562486239406631532111790948393547870215222515691305371354840105313649650572222739755297354924655674444220214067859961717188868759019670143935164486735432887819390481721053094903896715838252964763634204045783245901608400920866091876264298248659135091280599992784137026126319439319878977069609384330093689016109581237917032692383911044041503035243502433638091037417303441453320483397619097710512364798712587703346552946802786714947324802625381361386161286447099288662724864303170162905244938246759704333309519113715002058703110757461542208911200789872910856435337192467849726220586017921573504488905137339496599389531678808835307130454604773959772370189711510822800910348251790301721055581959772305327241582267656940722906228104165869187500075071402656243643177759665144049084046884342674623223099059629474192711223604544025293762235983464664253133346668825363253805688668583251997433281477106992216493355471142429811562144795907720028142230501222112104188230235089263869391935840276459649633185039050809867237666154140760082606488205109154289186529537558375020070605806331588027827576071820354528912652099848724732343927646152258787071443007940720929509521702305244384071183814999764198703860318256204668174681584175834264043623149717557103535617717682085265172209373894578170030972994383996836279792946875210098223803052848937871493733049952733169150977965526494023149329672359113600973030472714152862461011578290859307541242923380794532649032514845925070888681713507928863885211080071780426260561914891539325614565648305299702356373374303497788586615012549241566567969675885789460267361590149149912859535575026577163227461531903052513267377807900537312998078855168136667470052411683093393063716712755786163148058241439992537201506671511116828034981001998897068176805633178558998851433154381049361737381287524673732576676950737959643976038425043892964660122492150408072925244698135554178126826837063301599027191870065508309857061393903678752954715570138925056367901514665644977980604227724585769482787894221078454611686641865505404332161568833723294030464711134906592431210462985094037395950425004791661243251026074593119464340708999528239205498339670066605695428192551250391572762533400816451419087160975290659251986808780875758242963768457101669084936847567940525841498255703304916591857692336352584868206838319635498238613338742390420882881974442745029899207760451556427607066794834204525199490081232507736928167313515503858078324180841667807648080012249421970810604796549162381031610921217678549941201619784617336091676506083683617995579953567553782085508251062958617229741171684869602125476229627236641091112085923068311307866456525002413416275579608655828787422989978408194647678040078494993435561773791243253886091656644979429310673326601161125930592155214918404423022368337076795391715841636064173249896440048409108770128395408197945278955375772254461026666037854375032645144469257754022264703612492833872630696721351144960815842210067051386928462508588265484422689214183228585920210557241114363655661655176697116799036212116526190125823125301486955462724725678297897496348870947872556774365789110329812041879923102772409941292112486072523533127799709085676921740371159704604776905690135261373971641347551085724274647117863439008213602220811318256995781679463223194676172319346636409281456200050901838893169582174951056182044561229325828695247384323289919134293971136658643226718681641680938051654651131921399781013429943723196825908413872901503435752614101661672925027978423597863105248517957634735333569521648041364709470365266040126777533861761400978257382557469434061214966919148739453506265355746426623000241961798060338979093646784280928298499362994055930264850057314061555948596983901377841664781534869857667651826581682461701566898746464466124346471104873199853711320032534861191347583697207472066030380060091865218072094007039839716734715571267003947996792451875913010639385096389067112314990678253946506779915912903552999090879593482019898428116674659328639073171533257232270730526878803472507457336526439210007903007259019477019695600139805545416456709537147371195899387466308675976766720586496463069750936157680927931128032897293213170258200087923957800881843045363426277646676074878944935241712091642725613653774545549686733028189333523583657192202919687656589028554843108656669059384174836085657492438155090694038179418731626019471986924980446400616992689313634403588407429436617061445097267339693425838883557175888894594886830318869681717369821683564101907465400417047891895991874479365594750813070915851858626079010108097102104090134143170013930147578063789235981377676234111704868038882167602183771122948075607173823917845830980900076858303540411409948008015191641105719513581633140751728311269467613735591790665266120059561774161216058065186525702485938503547211510335518377853305154711379280008283974576825078549891536515048971768059683716589909089832234342443668752510971207488179812761247403616286185661068290223967754653218280763777286042533796958041969599374834878843099368923412277341318741678532864810972084641362528644922437561038630738654153541552211288550961194015307852280218106271628744291438976166325683123933648124307508505351108725937415809559659188291699678798051153450109125667551595941127987261513892896301220603801167915360698267374643990937759226593789508064647970453441921760740707525604064369061988891600055779842752595196130433655849123843651978094426352017486830033943783630230535627105804604061859722521829643409026960733908241603649557266906242446846758443200934753372892892440319839064569357654644426595743379114318792903456301999204932913327704913824625448040102726479680076890229869640949180923868055870690021379399647844825275965619960509664584616511720075862216915999877749647004745340805105105628156871896402213887652071271664758631927152395383255809166239089083976889145494228752471662616011420819667774605911968818564934166287335353906505927859364191300387852428242687424834180960496159970412233761320706804585478680455748891564967299697445322762778283830774114662489083986037836197604565636921422107867994943943278413728448187865457470881885597310832448003689810721721551523771270359189329557665852873177454410708414185359882255151057084252585409896766199305911003261996539467542182294912445890212227252218363263443178108960753713292019917939004159277135461941908670974295009658894764570574801597878692958736205045565841405885309008729821472426973157709761884426757497884401078562759342285484019039963994494595380026292799173276254182660129439360910251410171893254091413440526487463384575131589234296947464487300813211952491315858365119879135979553930144837742123591586906586058321482630039349908894859190064783791734292495146280594579152861686888464219140647268010842361735659672713783067329379662571669425797369311522391945242375539159799585018122522820001265478084966264451732565037925977874368377549777620420468225345060713490783930953745561996419343382636251853427625060709684773631566393281195832239035029743374009492704085432172590145097070964607603108739616504974237649615340502757423253967196274627277157038968950617696827161156951915171937855556464079683524989803736068495712155047417061117499987697206801313279412152133513823784214144134633741695457141280780234084133669319142307046841494408113183183141898709449681009246708470825584299157072891370259574578868503536492941912021871828058053029353540878831034521602404080792275752294249596128771381178633060157953035156473769714962170031933219569394583809986531895672594827351154681897641084527514305432830406627958804446861802107452947722934492832196310280901168126155556353380403160591838732042595365777988291798858917854389192694884266548366446653026479848279858104275649654289094291080112855952040945897820886400572752270828303106502031244747898619136128010805067951447674338814593374313857410336283558349545858528438811127132187820432980983848402867193945685793706530359189687609580662169775282781184695043627315458187408593634216422534817313426067849744520007718413607429045893545336264263943667228983495868338960362298322823789006437123311717852376539112856720481228149902813684047050509178810353664116221553732728141366599189888217129748232932911729365817439372121100179594687297889416058074571963890418180169950580227572093939464798913935497689216479247923391374397747273208180748336895049075717421740229945441080479545913818741798014276044803837503614775237922106537556800592443884411305357980508539702491062226353778739389000384107611451442706618181375060351925558648420866047741797088886732466083105065681028003452731670559306695144311884464592727051811595327885797431234335542219550800648630681679653306572065098888631751701892132767346207517346967895604659348248442835159648935707582865476817858611283441500983312341163801115194628422771332144175938914319302021076320908740457366611022793029150775104508951581706419479998791249489290960273694920913881583642741846573051326834697949642873319771657824586066915046997927315750427871544625271602685463086325374593736727108412100656007621724622019589724924649814785221499964715114878922182031082527602947918112928165395578569365539771835668854725066941677218861775949870805609077220982190425970628324384915593675395112025965068802541322397322630779365359510332480822963291765086992005499001921392528868054537826315826113364403726807123231636981339570008417496307128033557836816914597285004745703996377010292552230111792375938368986846426734743859795345060311556525687319361579238779567415628485829838776397881567490950156728689681249059303862333680252491828907014185606842203549302348715377420074050421159114118584633455321810140361643691845100010105454146109991622716365606280093757938021943367773916449416098804515024453710602141681567601571867091020779593659330940184689461948865501771264837418871328030743310215316370518925269532159381396505106127008477055540582675557335618715517774837524038119758683735707613340795358064102360671296078813361346759276969110277024268760953405745737066929921836937709144628732175287989707045141449353866587845926499913675758650674836080253254030353307957554242121951962520483465971814170123566344580941021394005240667778453418325810315404789181652760164773211923636573215809219863318128305503589433474759359157999185104542884367116086091218147993693677310013587072855384408455288760045537550035724844731658716873499145324602940547814267535856467105262034614487414826473304333821522786269341808361365231045759672349205621800126366365900955514329032091297155923141465039978959842824068023285353145442687142527903565876167986313929066273954097942985080823774918998503599660087733419230984380176512487960713733421965321174399008325567248150851192621489277598991875377015105110416828028525406248259496000427295281242449806149047636131893454559356385464065548379384501868449510932341704170439568812216446985735971219117960394531573200739983058974432757870989368270902442216488423264651021519691291920787229540374464764500703091823036823047706361614707225570322868614984463914501520892363407015787884525455613945073918671212639620558620987647789836852673496876684938188531821672548375747680122154512114394725252120303315020437407208297169753854742189965894393715439252099132556195528822190019467517090449268673815203511316589477485208154190926144734963570949438175316042403721328685554745342079555033474868385692799451530833566842630730849174323086972789182083890614532233277040125617890045832937718892546594865172998913616365002849946649310170521598593578786552264784356359585141951472943560195996839217379190601825707088041675537500823506428684283259411366604592568734493085522137792153658985658877163612960315913391192604337326057247798430353019999720952491979732749047940231915945389390740003924097121956333028001035930321516555327531090461936246391461922502054790911693470462274065179785284454918761016302573238409075781449075635427632958402117515392604860948416984008372237088322872749230529873322928323237667680381204236895376948899030632852193906312929697499870086445948992497253428186269244213314814763147251067408174545175311612075021290297123706269552739643472226917920936402664122982762043835132197975006130526569353079915959620907009567866465882995096183569559129733599604046250211977155843154779867898564183723925444118584845367055038732526918306402210861168109542658271810036283660444283551835397669721473772864028897528256245102416558868995830380389213355032158557275724076236737516406623698456632500738290914854249040898071462603132544464986259746541020075088971220175786731399337274281048693180945863678231136286468205101351056533905459084416023574596018656221471577837022910834194543099087207634279325209392552644073466784064590764097446688968669007969427517272071614439739527354799460530102023603592657089913221427836229429738290524413416988200049813723653017034010821033346202090851875229228114979810685704052153048977083524917134191112412750140227298031658207614394384247934156022643514488992454789133068816848111500491257053968023777305896955724395448091798748132595922086381879464230342140574523254756587465938447561073370764090127231037381578630196148572997989204902906441043703087571004520036421008699628211026274350427390235209126676943789304973294407430157716987257755623603211151483017805511006546758779558720187609818860896558551468791479729905978298552799127812454955931680222633317634845087316229942728629061634067170807686860771087638368162052395948185875106509641544166156915425101863396298924283502853165927444458515095687852626165715437213347253949001681705374121129487740181915931729782578245517385094797720894922766746406103894967885018188304877007212340216295825582004156168691462107033123314337296838412730296327379857304465753764171854160154926344308354114832267659373569644888337628732450069449602699559295301236399647817937256637062674941007070347225762249349275272962165686563346630268950514702170697624219085285391186359724371405802174498253500872517526401225003591926220350347286128175870893888280602017050224093738437121113385618818413651247536290675257083047900675956610469160450289998315852150691570047883118143679238679961698321250166890163260302338732741793306085588273599290886208870207245053833044712804829555696560363110389913063336439137678257597479262428859522196008263547639461829009948176486038702095813454429956615713171161123703214651999462624815601899284252765440116493100471031007689750399436114332956540291277478450524672045091960932702095398621423885071319067932570572704900002901334141448288867415169153779949582485530448235914681146635414884519628840625873012171876738703491108662950820756211213315430588066224125796951009331468884387334744549870102094751208491926988091493921096695492724151935852047499747775104138574911335947881119610518520551375693017620664688676408753676779457402984416056637006484571680870350275325997082338481483923935958773521315468992856656917202357178968476296873683972394611344443924574731749305442184507445001000353301964080454266811451083099993413633172057755682322003558557326985564584876858713425401446658789829295583436806995955189285793274412833533168777992632451333783932453788793095858552747809775565377864039464796314116273656080667452064560491697645478709856018739313850592802141234059749949659262435894946312987998962841583826766380060541534384513350124282645815069037990816342336222871560447205217293098971294927643900411724480234689389462927747646630958168971152400717868394472249036945615585715404306411358997521610545298666016603904189299657642808783157115289683006301356220544677258021268809794796342795436556889786932163731879951158896730364657254416908095255107468841635312838597820409918896262506631472292842905641027457549080456764517477607462792608938679645377793673500796973723998416493640279938145855253940992418548043641011696729979904889399554005511259788069939940539750387695230941436358249786901038346395954154922620855535652150538280605588045346830693734865040288300449260277472815169087196933903065495472287503211853624144233812986914931802071997877782743140603847350123317668602452483137206974876776300148686524970969660523369405593428407342280165188781871644933223138740914855425808401789528498785633677269874948140465714418435941242033859521199881542946611366414876564643969460485121283318947051321442968449500730658685878110445931534048425507478157968870819279758912663623646282099503368018954914536426629633164994227432038151874638638143940079858191128057275241311923417857382689180053195328440000317581254363568673322054366340481553143957777192046674373810992149943031686577092637907597922071988436508325948336574485112062240435275227585814821487936724077904912532002211346696403806523777136787539600965020369176720550358824495267945735891326673791731759687430256059913876380750527316960016929290461822239914831997974138495190088263312154461857666183849242097545868955392501900239550205775111666571843307444374433477283102294957642675284753039458520796029605377757034351785270923289148947898321996331244180179719702969006424898988048332588568379920277492143178174415064910840464953609445002365327025829677479520442613827768854752165861300641370564955512991827079628915147574197080545045282816004161149704514335055020625288503145212754055704090234042290378231590123513366832705188770046447224384231489013198305147614247696787665263260105036239925482028103297199852477817946801260630406767949156503105459043798987738273308770006139311500350189722738283996701409481545661449419932212528690281621329971801749534697956193689657809616304640034328450493014513093726032023172505696076238889055541331237961530164231332219720079423957890297417296210986707000315190385105841119524548711775533053942530586027203359692026425969721115006669593585414298258765852627736257953323688673049688147901294550319550304877227420293925090481713679100868589986544503655908047282687335251132211249528100978110566755243848023594396570513514822712012906151102247960899857871902944891127923112422759232818307412760267713528577307054196174130373961198674811726157286592109305213359676968195025623269254414148433896268447234041097729437128620568388369847564230497084365564490972552763486295374238923864107816219967515159787195123734995901097562043619359837448570513804521470123826338724108863641448742436763270111690549108963704937806971935856543704892498418928867203358893258561159261087556988203018201644980555712817068393732454123656467990945078530268418874557011078264296794120230937475202850702758414590045838893350744547308788604913479570677426045610365787527287658600579505859161428586468262035042287379441244549201808215280288314201192741098151216121871371580195102095004331334869312424504430300044574657209665613789080129070295173699377383695453865068961753349289236596070275268845456275650551537477119708956960489391224671466856630299194428338632145502445375674640579242081628382475102653164396137244818202183188398529766430959050115155049564123974788613585720702896207342381716417989266893842011932309784080852976025474337006919873330231168336588910603928001344506469724078531395576369057418701122459908342113679809630578694637827637021355111350813184812230112405053706275229374837289594269514153606832368333205964387167992846292906191622682614173239970747641413754147133874703997860648481779587040982175688541009468221871280309941985244170606960014873486705178873400644181842915695087263948505632018342856222595342359198427450996341711563015022882760522670718348799423411462218422767671324405205693349147381231161266860601799109525929253603920342286635224191935516222501394574163189030816801759822405992888063416779403992702968957637485571165622741483414639766722522666648449273453294553533668000945222122035618191139465853548886172236136379771226327595280665054887346735179381775293735177761962552419602732307353067193063717196767405730036572995563235846648009827834696557636885297970744161650438571425085358129226410784958246530860916676847324968178802863650148446962279206251251785879320701138260996909387207054393138553714600929420883676126553046146956976865616482487433011143012979094584171910524550573041578906680890101499611355141870072349265887686215340340101800703849678467221071022709502837813182503688739283737730610245800611668938443049326813804760070088626882433860032140513193870607509764056551668411221392976779856231381125378626624056759418575095276891166009601048964052839894003657518871686707144172898915111117081608688707299070383361532753721002440725307038383930963806466824725828731920870727943191387856628477434569262797963357963927336126378658811225868664131150923474456168382850191323272365013467614225075175082851020911305158752247684764040424186306986462652171413673795645435779488530622124719176771705683937644393388568952719329382373311957970969253155452376255531949352930769422816280220337263605374343906526425882148250688873364199571028782261453089445237050321039065857305466836422817007449349033815711071057579254315481041104332873277322262007918809040342581491050129473114529437418136157172873212341553817724533578958135149337360418465031820819646420107276952448229203091285286480834684531867366752024119157741821143790446075709127058591149266993274643569601247477852113005451212929231570315821607883592700244681992865939666782362092057925860709514050293207963475152294208952548524162328596541296339574117871749649651455351075575738263849138666662738318127075829543003864152636102645285290206358961829423423391275666566331408581361879872306221742283088055311120021276456545930292184472711362959080328118582686474657532676364946879264164233138912448759359403345206587627858956081220326674634428193520802390496298311475768113987505405945748415974375786923776877582058195158354552209216030332866795527732656374113279964702372470256755992371580232173525401122336253789096643743684514450136137412276833051868476649956698299604606106556945025391976866810187328434536713094124656292906047427653953632759295439118791731498682321057914974026142940359146565927824948562756425041226312191909503300991837014955366378504016755467210035381310848220053625126349270272199430948391368295617547373014198619315946900407551388396974892825184602903569033214106655760506926989387491640701920682971950826849552984371808865146217623678588303889785262653066909389567140192877739326536226183737242575407780774822090145700148717458491560356051416058381396860436890993740246935469199020949556480749995034005679286558387249737316629219643866223330281715862091742427960636840698556631132295248556588746922128824361094761089122809307103195412861624872798128000620740753887618866037018514222911332261044925219447484747259695177799185527920865538963718061146492048710259685115425923685135562606254272146289268396861713504102272721032493538110003774234688741703105573243576440012688964845222296240570178536622614778589860968772757748190410220326880375232485349753367662638289479008341624770681831377098500407749083007356406072751118455370722106170215301762792441683013729544623123086323610050021052291213820626351661051616988875341895947076955240198372559407434016750334085894358713196769772161332980725867821475518186422637150567530329662505069398299069773344597472805340808207291651457977517794043401783340182411965633501448248512380796578412496513057406916833529698882871042275862291938957344698940148810189761727783662046850154898261151336018871579296180788771411601852693117525396312772933883651999088071347682545662451336046443153899092560536518003964820369408669749075861396783468620506873573058313235835726515494245370035472384110876407301454958935010253794420030854370215722032945160940448846388596599749392337459510420544358094696614686402897372247504054224824195533369225810834203692065244229651137100817053504603735651251077015684152691531274847049512359807511130540574575477579600921788183298363871085720571408231623896150111856889794681039677659840360943532473786096662684537395922556414040763710056265734342779245762392233763698958216149286499395737571259891162612274779792958863554482618634650487026531385693685285034196611984916888559002756537960908874782080069978241566609884557056973672169822026444322987482923514096153546408624680676753446376902863443756695241917788453284269947539181225079877429553507793704026246995831900501723329860995179570196812432623331731688384415556569120279161915415431382616434736252046743611099423128052628921064698916882472097350003333917242002946821330087048731031861878223298691250267299386569423567466016535507640289699660290181770317578521669528171323895582964963392139322167524719769684539829690007008940900333260412861556291473869514044872160848897118760790041406308072552149983479080932853478362188269978397443554437665109279922893713102940799529495681888880941846720868449856851010123334743373859730041270494042470246193964646025060535051198041493608357260750488177869118196304836915252448281166489184307465272742565067279494838961087668921128317294542850398387434198979906604000659357184410286267640631218289034235930423808170291793303423416552971625506596886533131944732848987306177681317188986091183368240370654741312907205979803934898495443034849744417030976023100626014942478212293248366519206493372662262099586365756128100837852676705348528760866493500636047661323609219519859847777896896261907532936112170259770489397568964895909594065075291180971563428548287415201596550106813418120607795997786916252538391336885128800256762359212420372631468967711290024721329495468297997095632166884597174726775119495556074135193805335097353528747189311327813705542953791906164718827756511608162941521042729762377713292332425700199105779188206576118672967675108695215224372427243852013652549352341895880309669183247414557821485661709323110088510499431268920039906315388149018821004016940922566411082113850283551962437693920042990810500475215860409914595392534951275971272687503000683609285863234853585346731053385393015612076159117475736911242569842146905997854307673714290913586454435119409822274730622197440238496076284469378996888026181333957493092076898425599229294488202683332377388631866478800048350305213794225135014584691251523577136087619350586540088763819304507693051432663342899851519199241280173987856554050587866958303802133600102848445656589382715364058419794712195865463104963900578018450393242770253171264516079928898227532734224146576712193661741184189397854317827055196758665784476736489658321246430260853034211699154684492437321718394980356444416223071391142544061393130185263476251644234841907447217477616805587358824127469684710338706610375515880200678142317694315530623480860978125393205910190436757100104453038942938678305237733586357172269615891152386529513675708926056796731487734254066150542106216952604768405535371692870269430768591893219609718129422815424571693687685193286948660759571736267605251459893352255202596190234492033426966349909015201296169514683273090110827268459260277038295421852896130020475054445750317741120824909111715956372838268428847463758691500289769760417117843565907718668258818157674135075419607064707247698759596880785596340772341745533177669716252030946443689335652035750717237013985867646684835292764029392405682762515109784917988546632700097836471209675048514129099592925617620982722180606560805865911322896129892599942025119884516591544633467922799944440823726208944002567068795849170567083741307773578947001152273437088421518415448849627132295981045733413259849488433721003449280478882118889073008039249509777828417206004518142662878146928968167020822815453530515179483446188555996328106596026639891054130619735146309057759362318243906599963406338630677947116811791944020234689481156012545682580446558476681739354410230700989374757162266850122030244868826508037401965569547404513387045861869509612579974563613873191346808175954075489272948461201744505775563113434663585015489030952629859686220570847436391632642524045455812648377315945312709137776697406594324980320760678800191750901842886535213301206964059417372894403608811454969072402064637013588648747677723705907557064240903121450703184031387489661710823987514277291012811553701040246116865361336813403059283774395400446487235014667689273749174680327572587376574019687653539517651066680323166955393823237962956033378696353821371017968914084231505599728997825692844905371134572544392094745359935368378188706088140360838051922776376692992413830753551448746053737291682400554084549284002571080919978843777999285826966529542637120494500365510052897420571225477617191597111757742539006993733538068995371845806231697917087400169045712613758255054136089541356404263413958001668879024381926355564718455214755362037014817517016766854618667417145580012880282362785485417791009048384272825353150745215161907676074298996857850303991918615622273147513541925274739490155528541612341024869358054455336975181085634109939386807905526495552188952847600113890190117525006952461942755103766016100216672425488295547351522401963229802299493081106976215034874721620789714922682010760496341393927448811334999103044393993997090925223791025043536972209134300055872643622701719323244331444824669310938764647789259170074696335380062639229726010646285245482910296528925757809673369897278374461386843792174786276981992602106214893700322977402132417165841792907819216907381499495017658041455755363308813638802644351452194226099964737283575727578511602724546572211905904942903772135324277239277184621556676001780732657094687524999177331172650638421245191073533574835470768765492383239072853435993387649135464192149182011608462042172035406998341055775854951308770462441201870313589275253725655471079458761902221713825541750263201912770641223464566145571899373903725256503455922982580256536650971956397858437276217592447012597475754634392249862833363036693920373152025981237574546054850069212828469218134136767898276297806414759364006646721084192108456754876631319337281403212510125575577775352959748981808223593917621361527258267062976930667331005300228885239477736074344287571434753188760214575456320211457130883089913062492819963862072947980218640584314482226491320664673359847126610453938828885550595445194616622545258994686754008308553937461943339033245888046687091322410815954083253511451335303145981616916119198625671097787751262068007798184116197686213510634284999941275709037505691345806104006481109136521163331584223306474341967886908854720056792943699047904179246137922695321603310355771034297557470312630909918055555492398489434904831214733683204605598289001835863723713914883256852715663966539133640885695636552160848231630778883325438630936414785603600784297574141926135221037408763891148706889672093558522703494744813403811609245700739124504516156120332358815770540246530500915647336784207831187344025978898562130912278778554608829583892443843457669581679652502877625162753824068061066968882159775586108368147911878752501679287253929937776692113667056085068668760666737661966111496055524138062913910037410492349601930132205644190175340230990762583805447264662190441414906501005567396734742810438258497963063102382114113241280678298608247875628987415984333882221302500020413841198454092330710532699294648670458950336355352945680968117475328559057012052220207601517874937555828025626879419772846732818748841455355284277117194332081531129427700864885959608214671274394064396698814595275235176478558245812964430966982800259619610073964612767845960632680208171423044964061620389388109452489508377851597302929276255229898880521193810396049732542933584637898046581316906480054805244939199702775536563796498519933388654265295166596732253219812861186859004623215297348458074016482249189756102505646826748623544171726885518896366263240245377775560050953168419363094295093539629563795849614301048845374281175299408842062798849677325773281923793256915723038498392264686113115455605707864260738575946654191895339257854181547754289133866859010751412346961301483039943607496886064055472203969697090542110298196464225569090031615155646254485332492632762194795228048989797442618730322631539517819024087648499821662209046975681217251843451670020992978766569424446209304480183139767003067299299521063488480495646602835172550508686099642398277446620301346717893696477265846526928489151315642382764544359507398267904643748272615750751563739026829283004367196099357453829303419781631114479219343908817690550483698052238034691160794749277538439489978053280086290611520896520232023624242151529093882393673529566233748416328049327344171881785237240846033604498971956073756851036467475100569610502871464833901998012488578396915693268730993782814420869208913031711668282215129780665016503022297359676819951573396825051047336905624272626936160867456340117415043081367820571887217608707381329411240654786057729125214982658797563979461233245637376572792684729510711219614096377454787117955027894270546647240517267974666166571965881596336370134917477061780488059147485609251540194279100568909991556957432848084340969735600903578791194269641782647197543586883938169489327625726808631992507847243854007535225059619987195996912482198161654638613488095265121291689386526040295163769536206336717520428551850850408779617208849539500879722226367018921876504994005973427871551481540374829366038935384988163238592291288922372134784818655671014370808851775913356966579449641497714631702857738643260344697925529461105718753275717005911171823486497445950490329643482918620515430791205676884882715124486793546918629395349524837980072517117595648536536763615466376750547073708693244246756597292778398243242401407225677631109340046941440217354262494601534340917696183025168114013012382844329447505329900365227560698175790799627462787432248007495571537756535564801531994711944768558566083110700233079680972077435973629308767398572418170459779610937967344015631958758688717333272729596630969969176179572257549150790281348200647270034491422157895438749504312758951378403858264831444856039679266396809527874924736708389647416750590558062129373941009071835188185690174713619434277985067798233308550964272666117451362248738553690302219733682172271428818895330199354071661795014864758464198586110563466252456810805553426498863870278907917357030875992007993839837462172001983474936339265126403989256895063960869843180162624090092359399406903143803625381038834493734098507910693006898694839955497491705275912569420252442549294720078885507931537842881817196628148853767219826419476398414625945130834416819352034412782591523158121625925294404927423934196575498974557938476912359696250083668457069655202024144080764913465057496806532594131120483934346905099151126069157886835152084827045694505790923738758921336787517545888813677589951726602064975593291563537645902201070280560447072391415995151785157160270758321268501264494804980325830381004422224463305960242871110447629772271032078246948070036971426324225812114145448080279270650615673720639953616586004673879750881912022632238079708064387331647903984139705802327780664286284333043170153174099010914332541930044844490606877445482624244389519180398301531844810852135480252540457847277615586009702738260727666044101935088934276980845423863392456458719488645723013951805653631782556684865968027332690028070494218737666707918129101146262944008400053654017988391715032977419874896897324502853075292475276843835688713522789659377723271293230835526973486654331510414862458873531744773042080815055481478108252768736108338210923378812350215512250796130224258715431384766385890170745010054914289113199172629428361132458686735628244377203165315052960324046595421958457952820346040880384937793256783239150738580125168025377903032680440233514104006763402172364565078402779561119476709861251287444246256926239984920710599287444522891003514661903143132267263513274895983933541588233417010774707884323131862031560055106767827945392352927895434224443716691220128916619857185092642951311804848957240919890127566108271631048830137143645704055546214046733032034658254662427915641648723823993256548793707991128127767300543891122743673626749243908025316413138270942343792678844142533257155260745455924110019813064785782391513446824687256818906501868502631038674766043412588076517815698716189158737025562964407568539306264197594905802488380993792686282176704988760129637117017302547802077131604710713896318770349394048067713176795530056887799560360138555241869491839583478542270729665581146260834819533419720061308451559990528869720170413438611048742153066664740837593579111437253745911855785521626438098273498747416921499922303635066503677189800802925477204070300203785138231850335081490589894922903626318180944946297674652410745156597200575017839682691008686950998426869856687889659985582867473741283608654656648564537046439972016782296475801306077125885711124612683278644114309080428150114453533699653392834568587867170863533562774268905052200374403215556537320271903337642775994294861374940123139256535185152846885974625487487851806948322892914587292703458444067080425117113807646460175616857598135773228507701873639381362292159928794870325013038051619867581318131272611148794521870354459348166384089338673847237120768609931211056881123494671867992184374748779250918914239257624622588649531637537914699858173263467289675938516077816825137251749099058534087608157063357240213382804190040089987700221873643200309721305231932653203289878538277852200464979169309298597697769624651728103366082172057450200053436955755403156927444658669404017351941625317188850253242408187233856660586152036007148534053840097126351781735196544556089197986059424562482255529905845031251537213010803989644029915662112387671129641434979870682263719344609048916129513566832012064955030975872833033793713940765226885891147045629656592285206449827917503882380979172002265656095111144313557729982683510759945241445943651543893000343948913451456094572296003984603972686947744412163336115991630167910820858155488549204690538950004985432676639070282516609596386036298201300413049511744574506076046476378278703968927046265006947952083128304669362258938047135791014239791816622745610750603467525754221905657326822116723751181602860145614915807315967699056059274950304651620669292665725363154497271145562821409372268626786143022092333924227145837345520311350809635460375589429422198346516326068835120419302396756981599068371869381184749542199488182119841060785788561370343128030545577463628799299245170719278403225675527322386232659231336861097147458255418849481925234994290775230831722647566710976640008145462884562117148797643437613306547500477978607677844187394319855737401742683584366352426900469505039703310246992176440697775308761845585510499741690633485761271455668035950878625302819196291325344515385750894874197405409225921810022279536905506714426632695435309523663288263286893265233390943357562877279705657257572657869218490805361276527810101722462473631249168163535424597331278334629829767741791971224143819659876663180363213241471727320626934777915417454567451123347641575951990627884427510369087042373720011342050063526623959136557007379331431234553932695115979006580487184775175978143964486178905026017101484215087126924211338290769039655468153962576354526494062454743064957948663920203301143181989814536808750372158223542280513669342551854958537417676982275567097781289329426306515717817898110801762276229445303935251422163591593931833300440584032639381394713755685234756765462741599191895488949602070659369774382833012293862262388551375401314017451806501892423785710613609516862522623262530065150124263819731847685055908826845694061374181600570496641095588920203628185896595248275942380576051889385480397125926989382826487707732295997266261404117756556980845525106115574896491840443450298169640036952471783722360693349997665990414153198502824286202546904721500173632616288690485843328920766724861362620956562335839733570880260266661148951919523675954638397498227068220472018943588070922181862056309581509196346205833666210029354728370505181318715111838617499459326868612838108687682033329946738594270303179016938879482788501101555393601726120980980966308293622258103754582024805564189152395330949208462481478186661399946301695977707537322209078269760408965118093962054874114145876849456745266499585922354326234323431184850382206314900392203180513577502083668989632658653871537496311079331047834948215154065581861265853825982607185786875015928608696779490115225140545250360689312303126464065977577832254246613624530601912792486145178244749828934464462981715816363069328476483416011314946882866456431021432152610499284547895149515013787556306072507337951322287599080055959946320232485102201283619197995949390440002592647194488698164343100824501763336912459192008880361820646724560836448185668552520622706972636005099367181122469251066951606592462016562355585378736342034542200219097794274247878358750909133018145198108589555243172580524004225580785947340404859857898959596522824271511943609655620628642219633135916775298985053840657493430927936888625462264131319732117520942582588822795112728407248124716103609777845077835241221747817581200533734176264990224245765790659314970781601389680269915774539996399684402535729576253806771379276709961745529797155932921761262282375596393256506388017795891484900449065853959410057599392960482572336549826788208473232418865908188594047120003254922710615276468124906535641452542692588944416656820781214714622082620077140932753523284873452058704430664197954662010164304173750353731803922143109104264763989704267770846030277819622468623931548323004363306517019338921088490209006301225351347189173676222295035063410736814098424950660402375422960754037551982493841172416399342508647119574886313532715726903186739858082279467989796961125231297766688383196327019451421446696108045783677682397849056201247596626946549758800301353848782395693567070426233521459430705256819720039263022363799329404718638828224206962161293470807355672352191228609309765365482891733730016274949443344396297605886692137138731108659565870975631720272318214628261963708167210618429627315747445715599184411067327755440019093534476244986106955754893010280834608755439451811043323189435163614490674674713261276263653415786131779826534278842642208806992068701341044108667971805578258943309641130952166102160779436833633982249182003787251424495480129920749452481969271662790786599773780335664031082953365049814066418048779065370820018776266490819064705394905619491911568702309977546982589205154756226322054764333506906324462042443711726048384572919970279734255631764656912150639176670173719000789136118888029564013662387166016338405446393427684848601291322387152404907175156074809193089867164496561753900442967007597014986114135952120763028901528074362866101904326712694949075083795191755489780697959033630812420031109508120161022100953354826157082538054515781683200195595263117867693672659702825758870885491747473619500038475055445179454479683836364082091994870690004992873798572120677489997505259457291316380246383981327669617375759780903328234228085010976372109678536521395576532438970859820047914260534570213904424758830328068139055252449853689844952650385390956619623145649030871947991312203683517699508561709556314398650841193864732561330150363264373779527666557690915411711159960959702322496798224860506011551537857962073836298477727042507103267231905513278633400236662378542693999944078084365052057293372491763613986561322310158787585220924533597922815056776368164569047934535110161511151992868826464669532481906308145127314969052711318824564521687046069900767837352064859939822140630477685590195966172051013697585642444668176575808609570388732613169704693806478279865319404804578231749782200158837903420153136088812366274459208224354537660070827788253018123009010258174484710695453662930325903169282973917983561750021674765930343950080045684463760849156940062695294672422912722866089045515421552278842932956412225429173852246516379911636331513058293414994952751696515501826793120067069425867278404039076658249261226287926517452287443720166740653616275197283978138533601012856251414336463727841682318931154943125891288182405039494878291803540672561094207827399209854513200764946947911932025560920933357015177068525538603936200745921409091485000488702662145056497928492903380686750303106601377119227902435508641491280444999013487297431730192974312825161455290791903242464246483752030966548282559924838233091612679960154617005591591615709528256890999093527909255921412273168974418383841226609367960790455517846543766638078997798172152372441935505616122469296788014342650826554175468307854778208725087663568105134538461680492284142469030830629523928744258063982205742365010799537991650841610266588862890408284531828891134196614895643999926041593695080332285620011752091100441046874996427323420704480040189276173221459688605667307743267762184672603967655409941657950912556346425358162321087666911190975954765121041798422622013672076790877681752915462692817670705535515785466340725295178466221341590608091594345266673444557631203304203654617539068174915407263935574159106196618188546861211526865086947575518549865548206105134548409044077983366802662789247584818592500605164576063665412622217710987996780728891706495802926823892826160287506424647983943243124227179438592998039994492671082382555466871902829767662589517126690308347714139871568211418760756109377081443658122141994963894619850245846213680548367247696866426964582290334171895763746044507108875699658853666996804266027479111275414189981466336584894046346633824398176877641170580010292077716990871080967888863678844176039740619768775742376926314312704402659287959911270191577283523531417443525748892746333394897665088041488760454113055309661353102070296368888886197164472791670280614232189789903436973679963053177392619027828114170971126572295349781948704172843481496489997140806679979370375783312697843635122987762837169087336127667338631992151544668391136263963295107813270800191480129326512376940892651351155614523634880115406271173268583579925464973381447380606198114415511152077557050972805332647412983939558561159671896385786480223382591916547316459243471094419544381095718205912482516961985549676424005610223238132428848371687473423583846014231998525224308995889520769435826038989029233278163287237670111982834425549102013668482042660428200926700390423763267058130913531283215113584604712952152868046918338796819211267256925749757875040467776743170397161513546324445039572811753554381964732592412598033753246053909132137295020395877127603333701717528990966893354491217411917697551623085657482463436909252300613497962583616313471949643883983591729967375583471528645066395198322562648318578579611047295650588072787535825035802911066890474412099519244707746906857630175772955296897756040999844387850136129206069260708943635425730234659594085013967871321006241202996058143835457406251449794933174395752638474250024299081629551944943785756659521429426212939419607902585522683566290848512139329131845096534512220705824244688842501796500176478642092327861582705490471926620532614014589801846217009055136056433194029176599378100864176704886863386576702630478065277033659931879040053878573150038627952672590777706784692597976404644660637483379153814173065355252798033870123409424942952087384211758332749340858958860426164069488114236402905210659185290938902167521181831296082560018844131058211881315730062809011355153311224971834488146248864169701711513946021524000386306181646877695434120221318543688846020499409416109889018627568584816664890511498030264148570735523989658929010352870882394807162870857487764291914666832997133144563880681085488056937610713061906084035587231791805454161771003058076775189142933001510914436738135500163554185709644663404396285646484185429957425618693143045017303109265066584821455858446504972234634502889890075612324510665342366265383234355288882602754996430773223493890828252896111544384316139616667640709043956377376809029959648539199418110736706524974024519990913131108634313414661726281603924083101650262872280771677058595899372610024523392391503742290826546678913396994938542796887602811994300242037735359186365426547800154317084098677344356891515238160402917992748761755554836692789892622556175968501871594037448068131219479387437564270128185052478427602816701170719700297187952721532445712083331702116661020380092011242756375169296682504359398826180271806107303543806605524269281938915272039775860438622517701015476973002330861198558087153344785808922743683659812365284849745920568933237381723499460609558275853303452833218349277575013384158712443897794899681668516471027377032532010280020658354391698769923854668294922221167222974939636375447534739561099659340578056290509384666143542674244061648825465896469018336269467891426009103355498165039529415327088242348430637866427159478761558044102557520127577039401729452852868855466234605736541907830341359127481960394103447716049495830665034945120444519090154357516800744571902596270692530989324125135822339989478583132944636161513031398878190971040103595908987814449738578524221165418846973013957264333041056264279146338690172823627674911388229098283704925502654742533556563115872712731576454877358719898064438792331033223645274366491505441336172712590146130692951648953637843570461961045197170575558936509052921495831610401352832316829293561222376786772860341304982246824144900873489789071795115787655178512043893886746860883732153796795803489400543724748949696275129313399921904340866080748613769270845941251241425468460491713296816859209003076876719498585064656072012746119129286766886212894035488412648534403784952454476893784137238014393100861746653448194694724186576962313650264023737191697160284045561824565676372911418883050739284872147494548138238866241653328578689203384500088659595088811289569046998082794744846744517370377941891573802159470504897960705751362264178136396011351341325642133370729796115730758523433718145227308540332197395443466195832824416836505192643220463125002231365307470328832214799492210522142876915018729147024722213620806819944766147337894876759414991106244355534752216922547026919269508880807954587477350608980473640549873576860238041281425036315089312349494366129210968649382413343882075901429854745958743089891450743841221336018940767280857320304509390709154292908035234832527604652575852934239637284058512613033384058073212338745977328282295161517697366471925751634028612510820026656072213676971398975476966241629631957832664554387160335261250178481728373163545853079719062849283468931128144819440246487421179895516527698907943413209981232431848422191273229289302909204882851619719918185945597441948410803484551994128281313235747201176054772435924470506595623505158810809216262928055797229339829976044465740027682876222366077277575947261168641307791945630016201517403810761458479292596796869324441578227268637757579879693216756105853819122677561998285162511771361275269073523495337309766646007050714178577780973572294090772995145439187121314818639160121963244620503509438769943017645252232644806778123416080759351036369151797005630093134193784213536626167689038820478216169107116325919188879334648508809751599563898915033485629142881813350084252913514230301392703693042362719022136158234579140288070984643590338802599671366898707711277272129196777395551999232250063408596345492433378432560544052519087218420627717012524574232893125539380288407195590602776688662508174366784410472032373755613372171900626395493167637175819383866475779336541650197228805724603378866289868866072170287969074870033423384917159176497637127170912084399144967427307307620906073099484926910004690494243621979606004239257226409272715351283235761466714924814823845063859096998817335955501086205830381202565121608267889545299234879400018582004116451593165593473586614773355749183039916543708066355491420119702999727670025658577191867550766967131862755657991132932708354267926202480482349270924703196451616396350700407562884185321261456218242642963547472490132933919742176511669796267596882234999000617082484549931659652090161158938146194115403263024439203529191089783218723825513326535955010552148333630900398743881726739093022989976691172799540800731023898727898531478866674359039837061591393639306925240426049824721757442010043318802699443418776699306101456779106602299073059422898727583742367442347942392929050827546583870655881829635837992134869060723955395455065367002703351405014804118652904971355884607402565195666955166031675237183327218679241598423703330183711023851522417031690141672130661644412582362075356447784084814095599861736842838247846216705947793511483136454657928311345564098268826343550908798504946649066178178278170041022309131296844613600869646404949564440870799237166012399368263744120229920558502706435391570845305107495107141581303192627858139170733683106175465855154307726850051666956029816809193128971407471944535131252354026220562837674666637267105665863686289117009130337292476644955872479825282343560893018203835548041666944073288169144766025928396221136994100083774967032503018254094882568879115627982313787632860124926316276076780877230143258304869317530395151986440903019962311592951783942586666776496495755725724326604851344813683159013029492857436648710378774657588873557711455728919834532271124618962197594222051568419470090140419055768017477700193583225871934301323231642972809201533246469698605741806812446652895865898254618878603475308210037400405564443999573703548043776193362719150493326591460719683553834641110216469531966433827013561600417032425053248715834010145874018232396264751409001766227344891119373948667933060707948251339069876284711031664484603318715055644457140445389681572813403848114194424603149298999541609131715761970173966225823229942728032595210372683604060282523745503757912502072083412750310529626440657798502286349136841912071263140884487045173151732860063364478448566669097405410849620977187901878732429577405366648766535435606395038149948136540101058955985143220227078425565718682725065204078575855555315468255269316192759738942670431576464437570763694074079935684755091363113322317306515417193708200200596005942065229569825286351690873502769654700554760353035092447856750003782071438559679412752449374103069779754804864133095509750894017578790053804451954496865038276085951437803793129090507599021689104688775317880453831633290580256102041047902517242005837264201339250338044975643898228696820934036895036237125579794032828503356049895356788001079448141771051683950149210978248599530998977323797728578822437561452270220988716801229395093074167535719032411342574487538071589048494596569068061971062686340019102600555373966005492606361661430152264760051999270465013986634037531813147595617911078780138952781666220488730421170945411948931477914228700256637602858903503037210089794166087450241229988585306442388645205784105591491224578686733327671552900856257589474147903901961294032704657586123238417967029292073306932313804405946635747133099459983355789828344651078126371031387025389807095075932201650317963182214344167604121870286908861288166188731487845261133513037542026953455165930410272395457570204304499220944613022558370468990062583498780512508515553671189524802227900735477791807093718564069567594578727209619119493906358034605392386193300232353678591893323752679449684793029144136817551230385892742026559653364368818174874359307607273708213154287621340015665599744606043202812287040138183518777838463634666861752121927541142567547029892823820213321698736691041037342403933496642265424286354209423308597148141578143511820468646551561972634025295859983777246569176951324047008187935176549950671069560607743769112600646139931860712405457019764582988019296680495027400576000862456916225268857366417472212529878236293396060881131954782271251455133308578346994023864924665423929352479149608484114390867472327774827043040244112806828564118243378687697357957887434659059963588413627311339193026693121679835013632528705401079641073933343792216785470877777975691630539327733390798272935159890491479890094177374490017729549494859453596819960944316715728704241003682312446868536878908989135228157927726441170385277147328333482617519249313144295147667505104295314576193624176918678401784600208022120431842073841053920412464352988472393525091537385543457622370595807712216785357679361338687192175984089846730544978194941722563256427871432527617195561727417061492128913641345941084840108431245692751389328143110907773457878725369882520124048798688191838252976271092495143306453337548433747235999709997679321263133752346082338241405741291671301785407809042418814145226751096768342384290202753416104581725865079415028874356760272129637983757358335759049154889901438413102427981477378450181865462633252127596635360067001039573166478757648931087417336014784292940323078148414863873670813704329448557043546769961176295931359149766575529775947084631197135520695995666854534315555244127500951128228522323211552605640160399063105841309393094729803594675903256289377993110779752757562687792260770962785689159341307940954150993320403005111029530844435139774570651608382629455344195342558233055503475011169081576201900057551680936711258065085038565613269135834189456738942064213557488414333672824879522100797169315616441711897550488583207714203071985044499787080864028005986943660953954755335395592340054819891578253651835440980405219125327812094046067670985648453073409609590860730498913096717007058008587820881756989878843590147599956899549085257868119016385332158578867569710849721549637014215281767423324202445272030750873685771347721253525752365834160360543680630272403229296851921365289132348170311934804463305874843173521523492606450172266971095212823753459383989332655013670440427366193027754575396718457032116479339301855616312945530565805343617224634659314032707171318092114216203627847989365067218666096911432222946831868666243190949810674994690110863418065483665237418719964242810003752470801754339414740734602316947320554893874428548032031763323259033439993637627655048919266683776502076591947345363668504870491129742737323187145369960097859424472725368868259443401244168656652179493065377521906018316076165522970434334278943795249177120994576338612842804888412553612767763582901137300838150636809135372816520196226227347856485612322563079595251900228205390304539253931532741822986984489720292629174767069994669824476489157706465502483727232516432582571319922477889633332697834641388174987774347542228873454745264153125770133167865297726122365157270369527052148050646560198202883356633461674697586528675583984101546757027107595647164029555846392640614719949216602519030873392935459217859614165693931367290219196934586275809072760939919287629730180625017474414337689133684335829414635809215812054985141043590233290806915988904350429300853463166258888311022015954999959316960353779895227030073710022588552861603886510285780287812559102643208099560849292508546593272063840688380596071179376251796267283317365543834727575721966232004105091789317652345463007646798780961654140349219311842190417351085524908636990207835932413301986803278450445716127711580877769323382809604414577692521464710248320127821748041418892751757500159146833398952654543467411128101163779803793078691286448911722103760619205992369345158803340207483957242478051997439657461631935503485426786878122352170681453607546666654006364167905106603826713376029358888859876845101839524595261201091333076595323834380283431158285876466804688432232509849528091252650411518896941480277083022561602400081701833431111154718372695881541541882497192533191415365158787354136270187581498498561599710684225600393793833508738150195666522978399063338545248834115420916370061987509858087587882390888203731932532914067656927298902886848743737497788394913357682298902031958449152466271365888624728487644887277752816143434142145480288729743824296127735869068411362594403091891423642232765301918967584871013461650802606780864829650457634052825446660006126858991458121861553734787378215889747494117292031804873691394534274529416723354160239347859689667672691399013467400594665102816210409007865309192699221311846483161013291724472434922442052180077042044196754981673571586152206863444435066692959965792302316828033061288444023148347136071331904298394564306983394879115088500917020812824780494528359722399921717693568749882888775812599438897077931314356880790196555455405868262020966046751450287840778240748542612888984928348883668660356657672648389788023852312864465929257405044286303288286737468106226949159782201818703583341592983432036803480506276207654290500026566349092520982986616949914067146880909546013303398274266580848148160391709827511208754485939042021937999458532527155697828629599606426844415581968545424385431367964211473004732464468679630514869822663393646482951182404336613759295858211299988427210821256505022665811569355474058623714881553684069663725606140848694970071677407002423520157376579966371142655635067078699481680041410224526175727855125814250237028254885857529546710192960132632452065028712344475692285448324335369248905953158233715241821623116622500103819708411401863534405102374065007356827355214856825194481844864742685062949379153941160677613385525611285741027322427549568071839052144745154577190205809100985459594182137933533916808867876854386253187837703115523889803427537322445190943326906215069006102815034268804306477372623145164970436865438833116198704914695697215779184781545771229033195372874907825583574991240976805321048163564656361858780032558435388314108798904413091534203119107837818655759700551662361090830054206442437008553750820908687149297470481526792288177656681643711582961161486836586726199986692929047917223263576460791994426748969733890373171984170726697175423756435227652314502490145200603727857286853913455845654877210282208596720261478900912231567140065009682170318667507491909361448589554976558674101720978276158001842986944161139806681726986839894326806900356087888432015704183946955939007930218199057783555236911321552716251792668213594494079969259904918650127793902361915882143861595509540192102382364811387714037493754670236069541531526388266538973372299402981858941181246475167162043833766250026513492001576416424682934328052385075206073213829284353065963298761880476711347286057057092935491740410180821356802409891685955081843709106859877404129378821755950697951405542770432109696061787926063827870289480910041670257268062383414598308619483020888827253918781082744784234408299497160631517693799562716749294184796359473372650854742522368811447995519921987668156259517278900094063899252501231134852476625430643637440573392627293106954981802017275190052209711782950287649898506568645320011134908452718996028962827416536892787717642964779078353805331970561838831271149312212779445476325136220120437454261548035477654172605211113644988603407597527209493126647788767719034938920070430667367550488210692184481644343811255170891256482013750250542268544124797240654344259295887765801118930019143147464253387339309770741089517835224071433453529192008294351932343988149586495196246154094246430956828754771710604173137368649496930622685605115269670456881299695724837136216159556619046062030347837357357135205779951447944407597063808360031575739897599413470815868109667323854278539799498181995131553091253582499849693944324296340492506804530217706340539794749368651001727738778815052139998438492774749725895179844389934251725260398918219114641470384065606472345246250279637658120179363057062246682380879774912975147938389150929284959122216025834721426062809972091368970576018021208271708153017707731018189821093443166682700915109528899791695451374570933810888370183933390098873743019700033265613510360118990112072725626644984975761153588689407025367030636439800285789077979941452473905843511062244752242946739150842110281676333629440462778193333872609403796629470446325593517593180860692744243140041050772044222956731728775758059572300943064438323809745822605296332606916559566986592943989515660149736017119596864071755779141122202761555927291195220770563047575608440312604718493359046332461297740555763532481955201132857266980113554829550522265220540800430561549897989675138253959124850451259803722516311897452527108875025308125209836472506938549013624635732815204279951321612021122438330369285861876979370552197414360118158373957934073699935086727303646099756169668473568230615591042586255455352794918865988448872899677597616910438031184750950913616439927165753695265993568773993603430500981428973236779351866988223717982344182692158337511709656645528879901718299054073702604207436956822063295702442597844891027152897583168608312725494827179549707332436157438617093930999674203698871798969920342740373347129631984938906134953342365186282824511088868763097134918419767646395793968153002257411695959217570745566116123841852758167628396783190117365295987698605799642855403345245303048582423994305414825733530032159589228067941098287428892195970783191562759122118339896723717965404387102457120330093878296023658919285490888801782442964700910354893089497009739251738122651265759250843959534367987426347275468112303356561513989871604087396683104693113399987329817230017500363080363221973371846333731670524344130128964655351604804569296258430797657872099233930776982439995279809724978511370666485812130028582394681204286581898497566228173401832545094926135882630414314418766868725313272194203845283643521357083385111287506246061323716814136079006424447357634016155228050106222677027078030125550370229881846745811283715741674169984039621651988897421147137417131310570319955276937823747882588222120196810059914758750258033396044292172736340190545458542409613825536627727582316837876771692904789371566849668363309507888723451601437172017116842110112042854784001064431343570164750262209847222640339164320994845256004184431107556501436462513354386783293555619703134501628324780283821608597532927093256783505063811708888955716880188173720821602141815413345978521945224598471272485956521686886195756481677307033764849334894408234297852225431249177527359102781801666213546990834605894348307064156450866932081401613319344816955388353647306392020897285888436157594857402623966448333116841882484445303130200550278845096472594543170044462448261285176519773350938379224527087825210402395095342918908381950317363951066062191378664303740477767706073748906543486409443674441581397640345365074306779623225002670600865802890088345884138534032225449607128471485604148772785020659713670514967343316497688955446572922450475962104892742094576347819511626842077850090783880024710635249301514862558715640497006088784516951647761763280508800750576772830557049633141864845463354723615019068454367665991860856437544944383337879742972616613169360695441451454806955340784721264972130644683565071787675998981219340922114769211151082940010007458568038299505443432625256286193227955713012700985777731834567205215744837627196030975692864150566710024183897309774344613895140668188373238506483405299653609812440056469780611827257558671894969628137023493486623182569131665483280174161057912791341660769889208491790740593569762018484457049170556396447817607251832054079570836064297166757735662131912825442361127705398392588382432720857216400637306082229657681097169711585337927608008200548918741210579928026918319609243651805436307556866754027066772298447527479751966470820273155686387053399819906168068885285763081859851436407597853753211500686218213746574869433734601613523105879080648925748951889177517999698308294630445507141009606554307946590950180897580756036781222569889794884413357745084843835613436652549611927341418142223040249412064749309140773541804372233241532124456918664703768221408732872400493355421309894903519682646457030600314949793715735930197220997842930836264439420722533628090245006707844421553715796304481100017408917207377801496766500667304375174607491268061900458976021441596168981601239807564676950454275463525129557835434216301740867001441209686533029094644897568393939332867161816117445312730914556361422540956926527435815030635552234503822050597253730000043360082583508040241227229502930688773470975473410984847996753192864624982273964130016367890283659123694029936853052344186066302673252340946762800620222793508836051048825285360540560954848410768226905692565722472253225838992922940627927375896333447504521697660349225125766258858839894125213205141857260779122196033824211164890192505441298401557434397263196500876789760989365728188849614510859642968629159615843048561293047281828827496417598160833754180785802981374493579075876810337226458523151335522193445487129800982908312545056648698676792916589963532428855880643194373208568818207155136109724892711820003049297987755819827304235503398105251576121793735836198607058521216714315540903251209722055733962083917765632884858469547909054300372734344847540303749700841237687884600420775666410500538012231814346997930609032886318056220477756235522042760803192229101609007611745597203378330455258403309590782699282820890745666995452834342220051988016165672497119692975161535204731615537547182881567169035691773755565114280165480465108227980327999796880038998695446083050654233206479598835860824055322815078103066666103712514655870906988141533229541081583920202830625273615113927509858655327488649960121285698013859344444049353880420562778122052786050372214261969449362852846537019420340029106514393209785507015487493403835421898576710947760816932153658998359095440310015131118192464624207292140803208417450102528581855936322165533383614793844503819606899867731554923655593409099648734819901368670578591863442248543801915533595995936844531655314690571282565986168576843867334885083816574281784457342184013106639446929044996772556652682480359415166401128420758600411544590584169415307518835953084596683321854136800374160772229459372403135690788744469611160162271829883282695917838461078685877009921411437816174522361518699289407668947294848494803685789229763133133670479750002243865952278584172960258743785985872995485268295985299555542569053280688635632856476002495354799568707409402190790735131675132367223922751200114330355445605230661946974526038514866400574214545463432434471051416781169272023597411395942436318414616406517380526395150331507413794636499862490724256678696759921464069578821310895724290764780804308106370846232355941793415366949160965397529084599468598444967615892516170635656297979774411359670677167078423416002216860170316578903927330979879813028268530448188682827145469523147576944606632497477957317001950158547386484302544535031273979234021576669035923352333948146349949442989498918787411160272545883288979027550908974190663447751592723673233484044119205229930409379795616600459943007313460601367549031917509326353530669447284567394520929669668322585606094668450414993577844730747411848149490404686132777450951936039179668022963580258505109339322019823304864517425003140224879796586488493418049949991242264368061442095663222506015249812847966281572567271465593534709412185964312530201280343985499233498277345868138299453165324914572733041695847305911754875407907454918905639450672868886953578025809515674719000886732073009748551632186681688410195439495155641904460357912165307612919625104778967993321007473064159523549950219925587737795954899935717989482658369933221225910078111006929683886855869079500201244955223838438265372122701540498642796372443851454453549196610708577941066983985726890451225731065270382299513722048423488026019475779739512085764334781212110384743225202568053676158787183797861424688838072471176201275093059604256085898547047193489441595699608860459030104180302117894634923448277708517148644703966578937768851569389662154430536003913352592586197094769092474317380771822115204097654559788419020367356123559282797050313719677104822337521464241317782046376459010767810483671620642206341901932266993870750817507166785276716254812454790246609762224558254309951686711800960034915607571310256579893185149027610878305235786222848486392519952264130408580450159744472504957845714016557111580431790076175459721339444664693747813396278798774872491258452154604827202849621772577366516110052986758979643361135860087697280855132677038937620268165452939791407049765056176329015803893850223339601077656542906659695975726203895686059960100976764986832342881513102017294424492210869585666864343510534363060303889593679055678758329434939144222223317997657996044799628688154860724538497931159873379964434542047524205281103524008617150266865722807844371207273099685589262703715654046764062681503792734724516640908097281661981912029580234478308493173623194771232246161389271889977383123546710488304689666701757672625760135353326095017269867843037084974745231419010271443407175760185573022557372609083578607847019588502872176774472222518279939075967816566720178967858090549194819318465199890025952529846259188424784077368734687292222211005480089235242299897181095239947110657739949130073525831054538703376770331569775529286887728328538805128127121502569112546055107234126372151923998726088617723040825230248940414379410670782184290509306114495909724952019011432077688600707020937550189572421592870021789504511347811313692216073864483211807811368762940971327298907298886583354549467491672121358843593375662684919405289372212312280760472552109356247115150215372206400090647909070418322630049246311515953746340377747038966164606419921286220886342107647027248550137877330860134997437954461251839898936996031654512979920887906030439174891590803856664855952238361322290830154352150861728604966300841006477231735727278793100120973569892058490565612576483850484347938483373155413065942058062062138609905293269288769979975004343064942487083782958840874893215380986103649943785241178571844521609708643791298132648791388002921328684112937501144027458497166281928342051692763575034060372961499145027092457431560268795125584016781061874912472254934487568650454062693786416465905794442616845838794864570535403074474242697438806836335902040797634484827290894540103943500340797244845661838043825041772027299570308173394978537263730807907440536836865860352016061645446279786068439035887233582621039866197553235765471775002356389656807729629032363430938655283583615591071375362379554368050712139490878348705216746219039907258928595246248203586912904973973798279285877366181240640072201326342188546717771084876217451439225826896192976947993216723563665049042144527692124429647271830768418588709167838153875277543870755511539750525003993736609231377612032904920722844706968930384194265909357124695811622226448090355175773537854137678885280541263559089890809953537142176298493493274328824669557703632154150027010181702136262435591099395350628047057930347571186362557152159161861453425952388725779150740404646879526130132787915175695567701722312550625717798458141541562695568264469575152023696035950875085538146644249611790546579921848422164774376598508428345226542871342267314420051085773726114968093963077358089985719269693729414123151797670456112933747349999688968353279685978736628519735870560220095139006011388858738359795505941297500393522150196404478899807431528557655176207949393895560040147953754223816787132051762244430639877397091254781853880503311493906030753460209571937677786659005358664653468233834905695522203184311656076094462766243808125342728207156403079541673757244385954659840346426976574381562530678189845145695193075299948942969155775683290023479065621929735938612039581424743522336591279633618501259486654988771794284149418364290714920395909348062323300191038685821548544682512475761310107845138883254604260713328813861426904859432646743589829454376555482336505683600559037040208781241462873526715886931969212075460099603337269154847634445223408899429763965164171073309235833894524439794206380227987791285885597283951699522450628827136157252081785203659297293615517594890268158193913032036370500309177309075950719406877979096897125129660617950718431524022647543305171252730618852351326449532327913201283385563404605395875514973558429353559229359922891109185032616784264571827526577326760966528294533822004057681124494095309522638002042522787354403038157114943361886795945402208494790164992119746376864805056104334355353729960057468599781448001532760340721788604372067549208821625688435314334738327805661788556987447365787777689112785131257926592230526392514204577167102764381500133889389931249194779681596449467637718179961259014991976398589303295191797243071623159079090309270572560306694932156777078595935865925211369951048530899618638943331395512180757940853791738112226853124546373922813425481630922900410667108109259533581187394621192573732000723422146928899861068757195335877636748247215610829883237710478903287962900234490236965072406626645573809569558399886032212873124161625160921892966616411658954335384342049895461888221774221879927678876837150718270831641255128248568050643721531175167799306882743783823418868225744468633878047566103707241612807823534878245137231223189240950860065423526577541261106069740072466740007405125560778552729696889368270633523534545913979823771019988734287589357723904284455735139600753623649781498135466747147408076113177820089179285060918301828125062809776524702352042327798207918075300936060686849141669787313499126137157258483840473841712221902257590416186940321757087976502592395301360494395411514731936124413667431388962670550887474155401560931461576510457812634974688310468090970624052780760203933715029289815596980550689637020702169451586476347809161781399658521767745815496426952968698952575218918121470116616137729678280052680721634532095784237517644884321213101987449281367563892602875832292637194892652835855656335060167604430664237979616818884828005352151657709352940751425528972398645637147574354377006579165259671890137051627078182322043908425212786225688784851873859966532877051833257100387308068113224557280150998834141533504930678468406301827680046702496701850164718084703149703425550881982676633651638086477150836148873514055625450953043990579188910979220847043485869622139824531250411028564091519941010767186684079773684843509439805656703110101631140643300308703376106599638995772590227562560970328073383003214605424788501153986417528415683240630887754651484192066203514443090949915803305343557504331198183285662987293402864925867063765762249838100721558847501851772136043941375677199317996995579772762330066463165862871574258511967400112605958433411798683749640814139399082732072002625520093427465783262644997916903669333490581529077015149164700904951392571033760077384568048492407604473862718029801341813968689649367362041311986194055036806409564141631834704847868519356822070979933196827903879108360295114868763559899990779880495178886072709665209015954204645782308544179216851608531894107594330093008713278489186287628833594413523416544076562667345603374484640066068155217139971564097649525087551644432574343983044663621741200638887544144303254552727550001439658967987793637217274230895493062346482512299859606410974670756985268840636353506556990368692586421772370797399604731572412435888290697056463472316912031967882880720614572735025854202407220182789415147333515222913345673281726711785434585245686334466939611136516022833798142723052314297580091411863719582611790674687642309712362854382786427657826466990805571919052147295844252579555968602131999242184922881820592698834183497262932543687373766595553365001957868684665748558247480058504722066896962381290028504606088920731978355403415795586512272416098803331461058978205705487627349627472746010907225790529098634704725532495671936114481521437548100389178261536890457377710027129349131671242883752209496736051920293124292810418573913087450819972059843462013535403981870013138378028379491722984070030999512083997571020580859853193608500961031080456031495648272621985737560536142758871876403119905823171104778054668282337245992314219937578487961559001374304975603794897271680684573725727187752396185226095056825892614375922329870414390563145875615699672549962463337148931271719959162653983024783676211311314803088767358156405209430172554336917124482217571762728845871546102950272484358203314882403159635083237992295379540206989403097795062527419394230279431372694835100194074980133816566885588685672037558284532105246669398868980815149015343747938976725105963326278726302815294089529965464907267857231062187526614084909761996552890489520381937888992143186923283455313023240875291325658572920231299082874581582622035941161709632550886265047310840752126789511701318179524770867735800918353076062764023712412085279252428523718720418720567737798163770961793751852302944677294379264150752518509982729644764469955613151143502068031051623332667405071656755774336730105682661480012804918837785882099142088835947163602943148007470771799052310545507482173239142472747811846636308847449095408948794692229173828263583999579096239250712989550009394362022668415013661076785494571389556131767295941894618168203924910513544557629194201873102339712188432311144555479694851223782746966927494192948268737957666331853899257967751782312227369042658376977914148508647234203524033195783620809917370511649394699863904085081345492781823484385110628449895057454140298980899146875804941427671950452264767738598078249874712956237069551731290672910819770724091100680127195716250430467145756432507329270311934617123448883729122765402512736894901759013911161806422545971808532081827102182104858723353058870406377681480931962921400207444857663101000120837752603642035851495353545242383227244969531272891045894468298624293920097414061679549784340409633051910171372187016614172647828553811091241834114652472022019036853427644893878234300458698563966874087504693104042657859847715057101902250769889436541444607025259505331424886607669248786302454854675182098002454650475919972201660701711919494754357367931933636709900222140684817288369446814823989984159792181922555118888459987182997972545191406217181314926202339389514606878796147615181732427210683891704699086666393488363055364667168856126486416463744493550654936929010562238115211000741091105504163740530846453645171175187315184269071888718693132613033972890801528119408481965025565637916987570081031535306890101680103720983815928996197817998183999181509444246817729833318337086204076131016447217590995172221447332983043053016999335757055391604890116056115861117602654734804183916888195621419316424417181497014053992704860663829911246080752231287307949807211456266155283634031053803683192642294004344459343953541102675350143059577344563595234496634098024339188675944029714408894245027402272964819706755354595666659715277433642269011687740648327612488694429846349276736217079010189095943399840804286041141200031225350317204502889471877979868106143612081069638690649670382323277425698289417228553645814672050547239591392794637959862717035656101177305537000066938246712527559696963124661920675904960186338004333034965105852543621522374592859011159553896793811734023160831266804930850700224112845227231551165630860091580036300092783128736554965414816778851470198828963138994421398219232547272554739421415198574776852391971961870056981332508787810168441954372572950069908016432021725886134660289904464092468726660906343678292768742663495442998515587301078775920694866180990904368999114771464225802247193308072979182578971246993366093550109785225799373395849862928702677020389157197897354320065185298547154865838495396541684893839867770231308228000446365518572048868354519288874347129480223238723166298435997025954487136625952337621703741140903487630522640200755943103194752538266654379602625668838918515380720493804022010450228325586168154506694009166220840242538649707221927922176832382377746177001284649242358026629830372911526001377806745514985225147256893487802857178046353768496023774644114161701387187758070852789351083092312982404929803830872755975357701778812207796715989596751450080271283571231868920023423676271115893859388833396577361833087302952618994745687058943270071740759646319327428673830783282522915600301224752109760277797278634057536804998670746647346428871325317372959091112123340163632243731080168635560034761462417625954620093010241481128953557166050779557596535452542121918550358343828042878175412774784946384806726742825792596042575255699799929061523476632486900481726217928461923082876836745383762905434969661784121052990674464266643908339847609605125865707225082985014545467825018400921776433626903530791120511103287338978437379540364587710734156255912288238963015686818925151936358352817284135438228469526774992137524570868816182761028703773803678941135986540973316104513128171987106744268708398406568319985950188977412255189721302193251502935421154688910535068919864653219187750584930722113248959736147823489851744901196952071274269367103102628817026320279144845603284910952006881315936100764331040015342990477189537953667824597732638566111791113528245491658117528988099133823228851987634602749180667123040919349132803853625570677894354509340595739088628016268828880986091108207601849877534321863564805268944015652698571772830784805200324315929775137087615738186829949874986967618277438658569214226215583959186664124252731876852648438313833237608692391512875198034194285535267459361699214465614005623233010366978566850709123378059015005396037556074622508478209926805685811480244702139375238443044748420110621023771265948019119757329248176852868429152888072661487824471866714679666244072279510599505809036896034188903858929585806141578445610885951980565011718078167187347978656000297327673167532643484841139734632661006917569696374342082711132601716070801920810908639795184594576738011222338738393374289175342920114943873704519675368654761226738333102523718068315677392802632480744731410434902466648037612136188057892597189980772775995073363070475979514523922973500628518101196393250480846736377367669513544128398036385456858824880081272394682342952337290826654562908546644405364025470984321668111815591644923342088629982826954525193561590664974483893336314327686771922852170915153207948331339007432549831731296262207867416462602001776901655031063945112151252877150497568947030177662050080060319457702551166271268630827449622156799814108055511291815133857875341801997245445022132805305250311519059720507576896896793373676441439913736876997181203428595383956266802846216832819115869997402841345986827318515006187218428588440057160054286236393707338384478555585049849555399147758275352430960166407256309256735779271900762611848814675603498699361331728973455415892445975753442247431023998078905708356180530729730246399729583436158840094639923134674256900405622150274514534536603452640332941790678094115345711176087901281806010845623722558303786230855621298252336411186842078888067796718010759454407390330534917615584605587248378229456798489864104543768116986773845717493342207372017345417023318742793131690920335682535201464868598024427343011286587692526787583159526686508738942413876787802154754460132303773648097733038644143581677909642570975596813955230542781242725104509572995463918466284748960013399387286532097796568695836803850532218279424531634452079608610693670677816006025151889934527378652713307095713669279084904541131993039438220492052742074987403936679975233913954041679254144156244752049409348458637692586357993564268740322360685258614993752346591688189367655883670615735806591838592120784496419832177624805525670783488334544151240469999955887413387527067966245443254359401960710861308615819508898207077139141873849446712189388197867021401345851354957890225639125293280577580112995237331702588896486988993281933169422715869485132447643719028883315544423728085294776338749937121417262578500355335927550080800658984837256778769369873443779671871158648817255113893586091100011719085447173781957316493662283091800575849126743195180262472044952792931066194552634939761868716118254103670588606746382097949401906273623875113663542426215330794287175629851410339984254615468465429125248776383215509296873901363263702081621754262335353852192495103020333398226339626487387745895427332526990499242497965795143840119808566099648326415175398415295669706715294672313090685567507396487700626892329986538080048838585070888286133501648290750393597836131365150762945370048235200992521005883649778209250567369803813524820281135422884626692624158879439091907834737340685078100535821886623794921291529947157114988819441437074379739720489081037284310587051831995440885835461972420071934065867682031245069331885572780344547805613010496488324679993138711939941049199976300732384373670638127851589154113448171945692448371709157900303044334631156031128029087966982338336304432721151902913548335326063217632173071251666196079254047410435947982614373913518833702156934899936693385376619266345172563462045844264538698005981431522984421570972569838219705064554360789705716363355955670151155277794968622037396959752733403064534098687929876079680495306885506524474233184780185342539224093016872104553771412875347150376846834566720201721948504738564054255651207601012911273614460998635716226046868120925832754011664768485194185061591073481395599293323412039146113484289493836534256244715109948656241069915047066716270296959343771298924374658784296831068452475665972274511476667829625972039100699194047580236536969320596513128138799059194670353516420758991152214481430161436019876062798128862101518258694385646955725753543508331091562373076393468734368354490582816531598068126386625206782391135025141118158134985019907150562160825770403530686858534231259323087093886062307415154961983535283598783324373980777709771883999968336827958872171805017999839762860240374651801509212632686904587778753820224541544825049312139514132954098910185754673846687916304360171466157138481474342120153764925612190997618217291160059319205136010402120391593780340701530958897313083200929339099552622056960727299025841306547913982964183367995733820850968482761748927325366444699108182081852378135739809445076991319440425069392012594740643874653654112557405458662051630616434997652481130582021006407095553953615315123141500525663658596874623479421951139671432313222987782631995874695230288619180357668174807055863859932654683578331528998972369836715017426958140127869067236518179569662425406725197164137100446482276934282477931846357713070956833040026361820065961027674498570117326067555052730579647463340537158523121096569833988180616023783451216823248892244647960235648650288248615936594314142594943891584372477067882070860096334266017156876292731763592530527704875148857969125151174650508495669396661401654622506331437843711628012917802136321621307999204383285193579710950751982884231048109036585099944160401758631586533125642028465450170057427786155754839185542401672457894350770872515772589032773708916906676079497496769431250458855865738821338372247199808860089407348683046471067505477027114226944846991556659141002496583204170649930423591318019369695796921172488110451630677127752664116666805683879648287921260868976626914290425855083286037268074131732777157466868400026175607708536632290142427940139690093426441709033866228309751829540382812911866496393328573040406630523127620743742204072130194016944278780853591660964599738784035288486959999166873869321585974019047486036037026782141879775179126946699774919693505779184713791215807140638334699703431657541890098572308622297298225147865485022427470297933448450818936247445444425004270161543830105939102084554148218149905738932268588352528665662894009982569990639116169883681031324226556561940959111613898481570199902254008529105968775076222215053743639852915081625091767445544448631077289264190216159459354760022645292307961529674554277625011127290448550515328163492990658274476618265067027924749706809360524360478072978421453918691415233170758378190283573043397797982738919155312507188408908237174321015086458163513410608167892674519576961501727838502381096533379559063034906174551489259259756428905279688455244508170884848726287933109498369765538833272919128927382114163145445900567099436270581146375664792180098170183878740932661312459443434038564757033206144973357205881412010397508318969563722110467101863884653669522356121996545459657641080091712870645514022294847620952273183207738010346970199167845581102219015798579645418228129019091356354179425927514420715280703291625195840145161064425895248776000492826188961876485200831267204085128272556263120574371981905286237689949982847124317257817346960825817696162385660811447682951954153433698580669779516044852819439540533884136356605805403281587320533817530770831201636972988688289860762022876398811153144838793807364451456581829190323872649352906499214787138564618207019316495124349915855269326475044679698513828624043312508882738917064259255678175007584364572862569643686045083652756341042361781052579723691672123008023438022148765275651961722756057538798553260404845156843322382764902919403723766820653975990631843290776566052994696544150329964111818146322884971023283024369023234670962492058017878071169094247268970392653459370973342030612102416771447944557449361110524734434541727844140659706595520187564964762785277064361171360228580135980598421095411561369106974380563108233977031817497857537371213257032085870676873387519055670882733301527238895374745550876468617445891618369979289379640806927055959017469353007637173179651596717775210588214185918185284451632584758036318566111931835134037166613381098081324678001850112185473997504073961880264231201902652264455210969265311464350097677242469521246586903849202461620527479562864928688081572092776149318318192404198131278072753253042892402947398036666642277304949683195248301316122978330426395515524206668498671242532881980780034654136396806584121104040540542682367116731184703900199795445585650931552944982507982778412225798078751776255573264571267572232808946408371457600225587738225485825502609625318359686092601252645267412089235925750226991626410781941967978238556377494763599845670656295663423170795876394815583580223656058295520085912641089514999327545754204412334068886961312346197572609952152175814187308839033456469261226833210654892382026008996095979171649249536361520554723043464659373413699246197557678743999370080167043503819816575324490566858841580946082351503964464089331902826893459892362578402459010900321083776262800681717117241395044211002462885570459155888436768863513845059325456485270614356619569778344147289750555819133621430108052963486271364078753441194396985348918712143680048924944256957515160853444485979596200243605384251143023146307981524498195767167021216464731026810421944990267353987547477854700189116156044114970526776365828123852193016926862936685200033936648315116889420667711477595505622792418880318138127270414746715789788261274476801886053339962651796296671869773968950418534652189480434158652712954609209968547947799897262114046109749888269015416865046477448590650617100240551320837606172879181714536610724397874898091624657104955244109767036694951896185158216307179645494230339587986295715477366036445300145564614713416089247338526473646112010936540379170933189943490495502276654638423706662339910068467977557419858588434145693158876819663726339318083284960703025351741828657662872097604088002482457147793594316496038885254566716557268154598392083303019004670514941816793503826928034280252057416546840980733881295272789924476546839204997166388223322576738671672902605284282847716033856110544235325515717390052256147005810890853979865025429808980458214815834542218839731427207292192326977958571992736062673523309936000499841072527612708004237900052519363682272034333630611265579608831538448283592724678488648157677302976341620887993236925419843387337236538843426266477207018973339452473931491624666702436262703827509105059255975716808999831978299648388775559745048042390411898556114712344446178337208354667811494764934473209132822615881334685282213174035720729449586467796394154812519822166122926764042197199230217370946626988579046683247598603670513153988749959440025318768342429661262646714889797299689204695671252512250408559662233256206832426758039473180048392024953735280936122404747259719044951449238842106122038222998752156846585984700850815295164945284742026575957289120378777045487928544363288905388641246114077161153006567287785838952607539668187142417894826095982837014199905662153675437881029281503608933378931344078202922138218921688133611327533826817516475438665005689426076277012861661222908981669705923463482765585484002567344906835466765092368251200576093099748814479294725012582432769300412248731190168464346425792112309382201643035021553183310003015601213964048230411449581539247785527029794902990030954157906617816607117279014985194639735492992403457505191093119566757868859816020195822554340083062625080906479593124758017405108841245160973406250178697774063746269538706037348405082505684124814023920245115889412481879993852700776066430820260230761665874342009068240469819446801121246045133030594038548688755849806938328028588768721200980526814782228232368643497258067732300913067277327464189768823872994495408610108951954733236613311211132890416059510308723038588139517924775137483728545462121830540934559295865691264025303347837391435509752275903596554738310389161599314122838828283929414588489664828711977867214222321876237857900585574438315645551383325027373105175754186651700990735347911646015261441820678750152353684524965112652718687242923148233149519493708829265092314645750619449014387933878576439770665628686969996402115888210369971450323282890300347061270567757394406916643104294373535830252943856782187391861745389279627631660301789830718807089800699544825207761978200291492205632009728012127018112270941271932932078146942563985101873982055041803959982815679456289954333766353181305007993187162057549278905338550903290943337470542519551787974808888216513393775121712477358308224015718014582307158831068456099625663057360730540244122305259319270839317934859782461550545596592153190939956777286612175517423155896927850364536305528159413894007534925402593351690182418801930533447314328500931886716043695679531348750885372982151673891026322791526046188913054500174439635008578900847692857171331357850951667974434420741435131413983015595273892176182512587518560024402999086344640497128656667174806401965807740639215154882179803519554511842651608931782654832094115647167356180477576094990898758224913112399947302150334653950350184442604269561622350189546841070205576753905265769731417791873543703620964168296301515552907413602676812888598717953307633215280919162536187770552881477709745614297470573234053834641930389618131934495529053154483145513051118959947022124507506529722891490154881352388482903207722808593682656487929152817060824424761838511663669672869968789032666566377242883987320687294593754609564450889566486288197329487970221948289991590746689207735751665428169340963242479829433300493155929731247838052930459541228519862516635900290274171767269153996369501505503178944097126726076829472993921843011198296468401747653004937222979398152923599779170791443315805457099313932932096186204352161880496362518556053955556121845113181312219602121407381150277400072537260754599647054391602992953599604680068024243379170996282055459634513056342721990871174446468977669241636096732993994758605492727339953644400544410052401268675616708095363116007281653616201825194330027862645526311101061749189120041785861767281718107454854519543039940620695494054705812290647538304694147972597216059432646480586295511507852234602242531334199624799387827109330317975852849824427569644072528595842823421137245144861643805780331192905981050388528236215697563047814757436583674541938699391952958060149009851844918919023683595306846876044213037505698091470918742278904487337750660843299812572546377646911418688384779806956650956407261216753909582320616980304162108460505818536731655593749000983460097451912026842123404140258638703572888263788284878363751167017847700592299477861742700118857673411887946232996361927960607219940463913274578714771068986159176112802250171840397936813440363896549324391447928640142220823628811667099423045821033598604307195765572779101891320207401917363999211348349104886824230425475219310116045974997100741140279851834763073313357451200432086405846810513201449904467908118004662625418611088343812610076763690425239571288660967864011297696584510881658717648739812655544948520256343851722652588782649319658685044638942286039436170852054744344543078112457594718287914045554133613898492995854015518427238874061024670112037801468138300292986398570542889568995400282714424307374745377372617042484079005354198238144547848131669915966147775383909833510437265855228311229462727680090054438887660766322661574261755141545170103803533072283781919543550891672777966740483673509574659135790335693804088301517717888714902421044046834675800463079456803643401806545491484422161304967916442686377230448888843174676279006750206698797176984419629988642214910847707431598989945562539954614881075865788337488600448780326222886113751484600200827722467691512688097625299596730471093081596374847022570092979835902878634683811516705098263296384628715677156290739662668770239711713524676942814550212779741980156749710850079851776569540458529274907207744136920757873728553935247971269375969423221973856579099735760210986611657382563730466874865699730577685529704968338148480176432925788235669153321392602962974658512585884153654390459168528819648694675742673932048203571597841767429705204594804798948830471223790287703115957885011266537741899173875409319626610291378345258207165723879876534663654411011051299011786438965050027040848847638973208131445894272445076063081134854979961251185235991214502883177963882373593948048414579490808369994540279055533262372983880539112212772111939294486232924746377652864982150889455730021623092479536633478632024460694308769667713959988340566427559118737291652126110064374259633555973418113736583927204994532902322910719598912102380079482173535951531401539363772479760321587536471991586865687098747029102243036346638791806174352248981960556362037533593360131007770255824292352431284320545526542743900769279037730376602726271144354370269878004278004430472725893267072872155565785180589071395988919443711868357437436442451083523735593421508156159912997854543291424719744566353949045368847360850414121295386568009598619340557470911830935059302077548611320786993583767458554224544316366254493420544824230887933628113969444121614062062516606087119892277036962345578276549460796178887100126970939479514418061916664900324865082012725178902044553812222367127452721695213295622926055083371488963610458871691989214718686411100715034808609860098734268369637567956613320802744481180520206393414436604681600737754909453434204641387153107159025056668952234844425589987424785714412302923173021991033183152263013947139304223848264916483445575923159411447115465515739682344507334252756723231284282212136831910707592496746325415980169685769931248727386523626635156453864257812223056298571630216107950666976556520099561051778476601328142627557738679231795965843968036890787489712606051450285433847752449539787193939280365639837923757845411154108605373767086560383147201490247362606703757669347421415317443449162422214276063101186137032619580156524738040994664125788144074878514708058891062540300667751003436206263980137279805778336878562336659550380385914613655755493415852083232996662917259829734688976054117329242849313569861091678930352314246011993165158996791673771226578306841513584059198395158781453706195676087050268368361042222940304497682697214160928340391757868715403175454324270726842266426343614661526992564251262667579163657817156371190755739436867716677271713018369403258078448118650995444792463790891370006327840847850139877244312303712457137158428234382073164707062185659948615973679269643486770432796516939074026721271416373440159732433798548493340384893611133576625000758027160658895977367273068839815898952569629485661919242048838976568376973765066012913603511206559796158032228509611959069184583842721946432338128192757852587013094219359631529846210290859437765451885684390196033787225955768542668897783025488333700422972560868073266027050403589729336451299535413211310217103401712394470902104873820456797626695114901810446418584547538131109349348763597456434764987410971224850779331401984011128194661786059922216545387101579488241470818334455876088873687325095010976679744210823494991014851198876120109931994033417140838123848554012395408247102657472485835398506459684159117482032186585098398068782120327207771895161058603765326093183899634839607591182306436384307410049847509408121682388177704316487162922574488509283441325349074778639820851984686216991859371061391690785457965618680982665019778285481778902554286704811049671995469065374122008914300310998066965861706252822751901041296631098134191744380798432802510080753673887116987153384580838267838938597501306800403034843312012477169598208145519838265741811604004373943725665638076302331467605080105056204292639142869996408885892117826316601413199386694309870579250031233385941262432234230735728460660359117855117958892654534939993024373681516119346584444438397361731390369263693504237956954091909911694827908231735147680991668405418367345447078026198920571426358549569100687960586231616705420642777732758422103444446494889425830765242484229766900711505543881326651718527574309461692414404528599654199013540472460474127570021529552828387085007397243276602174859858439730050058701403686083222570522492052655160128777635566389615781639514009155519692550853776057118759866597304069990774111781143232172847761868355752544616815673993163736519826799593209342238824260590565350819431302808808317543803404707195940472599574318137039542456123205369542082265784251753194396785639509729145495033499160804876364348730102287008502169108125053242715536443580155092589102550007332908384387542077814132277945606114196199559757837747183916094162622394671169386684391246499239189476284103040680679702891115263306477459356057595137416387323674875960557461325632554999660632782826467680329348697385259437720496459657761621380233135781893052569227964944038711647651501671188878982771876868347055149586454454723747745386274992680185791389358997757188675247943880188090121039752530051346157218304356141932292783907427225777916871805571617197067203000572922043587388472645251039856226004567065041406183903458546051466167888160821128203392956410034114995702573250234303874917206945101339400202893720889887326922832295281077738612642648075428519118552724561584386802335954768752145848057249648478364145636761565037608113385841414838511513392854358161864329618732453455251109331685286371977739381564584222715772555983665002291450938929758952068780721339531946216857644746842049548281862586908940318991441902957234214828585941020087410884818113943912146276058387120962681583943153972055652455525831518130682282101125197813306379849589461908638005982330892864976310582246928038521586991947676318120448281740755323915431977453611246015141598016362681475476709798677402133574405033811333400222185112151022284168068592732164619248783558717933326445187586771216103528593563269185119289759230633283577435116216344367058910053357639102998894022402988494776236586414225386058334378874967337873823921240504924637659610012443571894260596369102785375346720791414007286597123282839647838496467592184647000928861653627911532881158804069665119571869584656032225547950991941057222743758886155542872751975575252317749238155788896837451092029244117770516345932528370620428183663150122185981106406763404190764277856252510412691757515736129610868279808397212127307197009103129656255251155919738341370863753526756207461188462560680018818730278409654124103068039804219395165122750808602095029844170433065312103465591059375032270917414231143743853800832270698504957023315163272056487951791901971364278977040244904954072052125537566371180318564821015825067920733988619844229489767915493042887674654187764345167514773858568481824602776739679910219711287293815137293634937613491608398438765910578640045733955545403680213122677851160379984886847143033235174840418646633168879859197980488579903782487263653760530397956184680784129578357391205698822894502795194262484579181239942374528740334597135031581038907922692560895499630565170171123590034233303674423429286522166172363420549557601636954407022859877716585220199093375495185173461280812731232304033018261994499858725204869955579435329288348036606851450440751323763777021787916862360011350630592928999573220727090840690045624465957678080077282783130237560583643375113865536540730406718220993087395315844165593917268026947945629535302381887403060852544475557088657620157402352087323742138050654006222759416359175702117087808498023887552684968775101487189649659985829748292611687908495870830289242663464087610078710965097535081644190160097032924982741385045218940754293571966509668486983341004287620235914565109425605598948974202700562777200632233612749872375497203187413183478746808813789048901493311135965159403782958043268323721439906578494634832677290052009112584023465425649302754736881243980308892592801813193611251739160293552885792724257010992551016510595919170004240096608427329723418761311161376647094628455688865455352216576782689626792805223229411631990925690697190916309311414627673096040474390670797954583763590026623462984189035732513242652225789700757629422532603018131368096134255435357198559385215989699798849307469149936076504255556894867922215846787726268730393535927786086744143133899980013045500256119908309136080015666511366165637318206978195025158127917930610717715413329340225887896633355229519132851535163297349979202156927965451399361214964360156446107527337451717336783722380138890152414934890325640873275326165310033911788208160347806708587356741784388317465056603413330988384584523521429609854634408429439824299879124943314268148759380938145393546869429346873249204084093974644196027538917267204260464932447763113771410786169912565891384774297538454595793973066290341710972432701989275295431538805903016963568399628117079474289033947513668841424157077811768008540400924526864615061041418192803141316807932715421887566815272935212248497061086996580479155678689906028443532055085002793184294195946604514168706990096401404606009754103319181943563986775978062966124742159303863182940939563768359744059969236051990195023841407962365316830515424947129423855236417049949015442413857223477578700698621310098365764975617717521713676111161653133204748714677775409464000374051739584706176547102073270375411256795994580888171999028487590335864612642751993733871866206781233871934786977926457463163250132688482543357405448440289183074130583579347348016806917428377285165585547961890258535174911233070013585254992415037811150761862389749053377928433170083833385268574490675511559504118762371760154803515996887603987565006738833240604782336679416524863741003876352225730074359722424348755038678050836925502296233596203216401377954757842189593254295941447267104175336544032540830334422139426537622274779355263603612411882615780936025323532018548137075511227356467225774355369135262686452051113478235700271434068912687987137796353832011980999422258978447628447765906156222094498588372429025268077276888117282773019305186839057323940017699328333372885039833566633275604396937907281623621747018608195605096372232853997970147435306063849082423026883798681148878560714290762820665364285228060476804081610992746332654537192982326504437225525764748157563689944247679985534027217520752237516795626249309227235254540519703196406471804600838722030614332781768062486191016916122249577500489403229089942020760787037123827956316189148261773498879644985110227568000520655712821034640804167319979285467968975623772804493671433586686416198033520621560964866309805106390076884820168430366185593185529234019134081895904444730669687288388620689643464527631298146555201066606585538397542857013369214119278767231584325284260424018919311089543852023661508828851650019469634656926720800886615513977622612016126949208648721362834770902994682133740208132235436003394042879323065455952098323011659570872786648349675918141333617310112908060713909431568535224220468686054415513110627590742181780351660093317402770273343144985701293056594097431861160206555444376399367734408731014784793364262500833582658650520833815134198467624592609014369984344514521060555892757834696896874095148785986871502705264787143784481608542177874010801669037435130621620875630323407637825386766337750317718444917473352751461462717253901468671860387114666559273383141857397131124139140632972015918872450306593221948789545746838215753779574134133600621365386177889457586984819689635139281556472198224808922193467365510190734014273567982100851601052319380173953086121477532275169378360864495493540736503995658481251661058686739823981186011534147813462954508246920866237771067220313977118271430410071660815466341143738434547996110753457979963675110427923078555728474344397067968720064451700868320056249743909829759015552913047960054292666995934867248425821737100905122347189390157451051257594306267353104777971776465004993732445350634372384537629956527588633751088608918219787172988823728699507710097847991983980052216187287954388447665673486293572596863925817899140672457760457895171187461718335146659043875465158785687442110511407211146095587981262385138946913795591003251999158608804783561164986386584156762570530712220721648828799341181749330688394990310852640481290926744596778787264029876704590603521669344761030954370173160331444998026048204036655290790963808886481188943337974135302250411063397446992248182476245414897599085446851565202508508676436398740992251972921118882817343147537496502749038271239731771095761854373998366716243883439834994943602111140562350580754803650869600516355711879132233025497740041768337030358666018459432609883505430932445744578113787877101347372923547909511611059759579286674266285652643450020962492909585390873869314598123160109997621602883969822852163360040685262278188317800010848444179154910805299080162050554109067683309452066317666872293524593168157748049232684902075650793846346089462305065134673801862919873033135494898343335350356398322388821117112795598564210003661937243629871468122469576205708239492621252171436919618435958188692999291111790494485036382544566826706966006928467225013746495075891291559849383838055597851670662436915570140270816023412148201182247298080485213373282815092143873530578155321002695621885888826660600337102430406429564815797112943527047060663764495027080130330093227243446750956413258099386409755544088975702868562401854078455115423546954303481292666964116476906027555736221681229265866257973104491686019181646285391084649438628610120727596574399091747628635552473636548451456473849244162599749437356571132560723674840874075834328926259673871166094688353241861118925997992181052203920874573174091769788542067596763797934355672335596008778756576127362488756344973287749097849111552203902247171650286765023018590164568390250109141068884769226506849328770373741496683373922337045574756375449977480429612408437003392451303023690359536029022278643014964948875843547132518895917361943836335111296435228358308548921528866482114758133749976532101565997149607358138389136692733194418494774166525766512234812617412503869060307808244176387752036490693289904868908967661409723329027107737676588002475275103754894475186803802909013245932854596628088377636085635314152821910898817786510393919931811950595363699538583694609324089665665426902917435435156938748310152494348656152711202815264182525455457094599591018840566925003447397123055217073357465413632344622053218750225686924788563383259091020123050706424108608981372385502265383209930999158308109652513867739270591799662347689252172066712482487659877591038514452123505771259061314733406008735297972791250023708680371806590336033776817550615818369787651997375146629761188449149128585193733465305707013432006019553497946495811301492196522798046834257675455486897029537911653750226604313899056288843169919694047719548009401199068008135596714880492454846827878991044525435046013209490261883168563200974760065771141055259396828647814936879850651088006294767130049929320799598204792990680906867541462063223411350317260860546899516270823752577752911800664241617122008504519380250160067148587902316624841497039609045817945132055696691261522841806813101272350325747732032069269653253072600348002966822577686655255698555332965096738453199307972080811543194728897743426807892601961262630093774236442074511697391303353141007171547483114305311761130780315214139312414618127652097349560439541464317305369622135517684490786728108716295283230517336478665076347605643208852852326815812368458794656643801866942234038637477596286313673343305704854706857311142935801048477231436408594398947838652377313133223246502051631108108352933945516819793111552624551804843031890034023114506808296787560183581283620790560060137400081944338272976351640114540206513606078606129651437323361549773260540267734544153020852140413390861940594296366258077379756266418019671009236942057973181042644824456653956166551673818883042335164628428367499234909410951129169819632464367526320044727713863493439022636505434357188762810990501903145900375437017580032000670320450974889118842014423131504628922443647753726418731274190414454810763368083996758589449520130852593396204715689895964571410372731455371449451044569207235646985560476699290766495254240687488553339650015939588816562186306261940356896194954231916634660938426642105235477892034532064752134695242956846590004137166564051181456804207677878075538666103521100989371693966489062425753152296803623865319863291927882638766879193283457879764726169000260190213803447216335430250069713841232013330350999036785912895330261001103683688419821308778654479256587727208097864848743871362505854119695171977426974143356931591304853512136944133964627704893003862237325110057556134803472139422125034796497112131988654055650410505881992874599460272082871380735867032225869479331167343287507942139820608943334142937543187216389414899377889368722475401878955931585942325092205807537618347853126434084197789033242133844625643765594998164830072754300598675394324844104721232419021227648103392033254241097202681802313051097636223936934173187906269212550397937187175788756684513113982143254272566829551130280581801746483792624024537436305292958304143912285297002979318398362877714349401884701014611328753445575845145272516380235702377714692778121120371586334928189018711299871460138887829995647357421921005361138190177019852891539538128767048658996762310003419211692493461335527340610108720803298649002787792718017276946353516348494214386110886755818876476891091605890755497987088629572995127911488713400904161774684408495247624286012332388282589843888062534425095422070499388005805659133150672233894474848714147147381704863071509777212226836734767120660379832293764656428669364957185268810911473903051981146824405390208846672902218287977668172217720602724116300833630565640788358331374521924821389153395258483703527098479609207162837485615669925514376798994966996731743152030165782176218046454115748544025217666794135933624743879889127870752759107566637111866664809880960682866875293141077583199359129511968984702005030338915004727488260773557758224419271640260246097074807352093387214799779416416696848060563379485115116558946822109096923269598089293445651758977830208073125411981536749028662413868437252137342595532989139231881763477623943323379360459395108089614071732017930796580705752832597333151946200846168172389488867604913645782339725696653819991491764491813022704619470605311734655595865822359918883479761000916889897963601019823167225554749734835890487127162915081381807955752987967801308416448973346890089017686152075322410010852531813882031478419372651298981188726285673511794600915431725381858512748686953391269209231739978491431381384352740292798998264426245386445953185161972849374524587082391998437644817373457284436468497378126101211906737648084848446109269402480860609798488937395304840582827741402416358870991184549920352145091389387801297932663009922781736323700410810346732089893019751703645295338286737190124389226491984025068852443746247037233951893202923886458413985453407869182699572360580989319249806506497075271598818650901411883891910031218974131775257960706709883895286885118063250512789612793323646523536965645293737593358427483947636309010042351116003990998753692012157975592346400231497779974936531894375003285522764989277112195854091476336941607862702295455897028352771470857449212730174805380620431098553810531934765057458139969915270994882347686204912955785343397996173814844936599522119267670710979598048843089649065574497105546308545996562219259330489706753850301142502260539705017925894369598508107990757631020487888129186492292408630806398049706661730383787825011340792343246953862438001714697147796460898355441364984114274784531069840792072853841820513885335294929917149470077804949957595733545262346403841004776395442121967384244752226212650022412711063513783720389187214951525934758873314620939395636106937469912281833956157089418891071238071662684837453440582412981767689143994976143779752637750659153599213583338665503286900845377747638757649845684298093656277125908037361919970536563621642858566369532246495040392239552757408365342941841883172924063624213002897322031533938286020066337466503770593987922384069292475609099106267295349849827008078576771371296800529967829073081689331382408362587157008526497299280146014494768821101218474020695265352824219410163947870327077979361516019523448114025871686629011822076058050119300234141596350902111786749218205947623890253534870979357883805188189265880207930353819716836727602335591203444732548558775311010357984667970452031096761993394225392979270556987592133255686415691489511120434190135754913123716543827713944839957543304079450202872550781102436798115518989905546096107482843118896967070812501367498596421524407275153961046276883557489265602409940636425206692306577450508726949793746876808857596375000245699437160265743844135772898206885756348909367950107045966524494191713251553431349813703535623986162797880992771607596641497403990262612538747534454508382492127016780390992965228048908824027688035098810572283313530279896529158380543549002558551077299738217563561921982140868519303986623451416812446574274196681746748829357587344480096034911365244980502637300357554749246457644142185291376192963480259332159124214146972954636476666069910176255131569086297985076566064192664914942787906667492019238318265856445161284012964899560643764332633126395936486864032583674652574965158961327890543695965152353353632151793247296533770879055386026073841580657092791666537879163572596463647963541601519816601189282752657796779378976725769274069897822533698851743565068127419983858858497700975720170186216449912273658147427779481590854115871602332614714047263447478202145153990498866929387698875115926305952872427181936159696354600039552292407901290200612478475872261707452789222448331701727767676161661230156038358103340095741481178127668419118933697951730399925493893273113711643696940601758006909044434944445641998878983413833585175301797303036512671913809362002908364401255184674975776417614357282319072530912144808828513551664370755572782420260694457870924926251626066759755722858649757263387697136024398728435103426708265023785096879749091693438469562863507006842676102292344692344328779380960432759180616085616213636574173544121805794251640952736701463148079080667546571060009871558391095355828011543881027007501744799641585778331561734621312770284136560183887664965534713723278836909707985644387459194310725351138692322429748988907530895060743283341484826973972413971231787312470740727088417220558220241328781149984845745957382006146213046797021865908713129554240762306170430860776140817136377246759466784509033156483599488414825154017073873524868859350050137224635530565235453150699292683544714685764754690118941630406191091378582835046662006825156433662733357215549413647569435805787152871991705476245535071811178082895949527678528267240732830311199624632325379782730751720768525472303009070214872723591893452645484410207133593251969383537895014004935904895740940927828819482264118871797981369879737879975518448402507871236544385828474252533723396791673068445892022722329637693866543246925038228377385289145734370175897552720803859540763797895311297993512814445371472944196316863305394989628989933975792017596410058814872877358686540490711588484037414618810467596960876860913802097250516015098599297575411637034243087114713293845601046697527132892137621316416397729349317319105269932093562186603751357701309227003411907464328018804223386821204249379886703235116921731848214005887199575318738784117977182924345962873689709751765089803376784237106493048882370215693364167211034411049766261835859139788705701931732550890307143473575820187743802437259882585176291754250775698407637927997090178300261202407016702327104577611835221363169987455226722730970876744494987518366142731641715932749058624062886903354148956833547123014907212854605077808634592423221696283005872744193992575401873671133307488751608930405731566915951881684801674931989037022600191911352076847489555152228068769983888320740942731056438702498798189893232437145692375291068143896983232089327624714523092611167667051389540380832658523997760159283581770410725225960750082158203448767035734410730438540182328171251978935632053218888822139856223338655067039911055824802440545945773685840534882558701202129454534832229434074415574407128715386863124730153343649375922563528353119955070097430698872462356289303433546483731605709740757313183484220127724426902413365890762423519839395522929479296621886508441862358861875099158189813723186846647676356071855873112496773385906501791590540726713428126142933680406270719004355994718797294884753844628715731536267911441888150137066391760898503596708810200973550985505776658966150351480279592089469688371790148230524119644272496249455724024028750818418734859080027452809216642752130806628159358230601539271301166582645706516426227265952254056403189296072373036587579406762512162010236524800187296732207186900167809834664501186377814877720977844851503836436258200029932397268214341170890260394076987933647141621527192188981153469240579687616320355301566215822324610028058550953244662649288239680456967523606370795421067235120163142997573147151619006726734546842098808548278705462600330145369345498868862711128410439723519768511901374721422482577292453042176544561694956950469022094683737517277087375019347459915632143997615170863045115075169381813161821169002922609703354695401957923134284559844784813426380857853836835299556549308114450298590535997450607034378133739895224499057305645392151999203287031667044271186126980363030044551026627881435785389169133976224746426092370662162921120460954418430760521832198809769366255236543371296827091134932205673740789754890843971055617593329697366860538456361965709956135328448657830194852419532334482188233335472157847697461297015887377835093445543569294748945071565823110382764399211515816611680422532847453090804478921286764396686703477832436965364301361520880596333997569416793634631019453364780127608256976959046879759097561203125784111117548946713306262322129170034357563948905801980260211908974042794371616303737645057911534448453338902208356707827681570388174896977210385209727571387610776683916354564180460474191867158988713894366117124170447942028770478835090897114267825004766766300498910675694868507712157148297252061562534684713068799135300281571401868405723314725726560562881060495127445035836041084652568933270649409281743859294456991532395878207416004019897315682276141129310186731842421711909235831036374189885145646816725494870136950029166008691901081656274976865312341420951157122356424523968120159756825486884305548898127151092198894654140503126502960764370404416331211921256066466833763662979083728282456653049487282455468445120805926913119212058740979892786310695499073666945859541740397666138360288396305436388842753958435243252331638626811270596235228199767394606655702981693631250523699245253641612765075698162359309191660555265688981451363053080685639188628474481952408947167809034551647030822125960186857063733812912074579826311028355853511452577281890951107508575640481906099549538288566518213148348293914456444608482585294985904597688599476638957994815549539380909541544664279246236305262496832334099518018519859889560192825415197566728101221067630173623519080182733072673910204682490332866446811604887066733785697873075975343191493130406650107213162910132037666388046951279358249120374152903575069541597600888874893520901842254671763501465590307643889580915608128932236094671910574636037686938128145204047566603404140214926592982755558107083739550068857345395266974664625162019217490006509756145962084257842409414959327837464288741557479295696939276769229495017962504986838881525220359214562456031668846153585827878813805247874324133097637437046997641756035037383090273705971458093883406141388038311632124602149327175982272964336332966798338994807425363063109603861015768452922022122137659506181046773004408734612619107578701242792584551763740409909441448230704089435050236481725755818691277346531318485673386414355431322111948541885198849259167445573866144299397522918294363100583771550084439768513265495648990432980068648630349650334716803660523169200485087945643271255210601076269516555757600173154425473872532184890700732380989177958895320685615713337618761313788766074990576389988688593588601599040846167261502467239140550077935761496142234217518427394065122354655598988584882739476128913337920132539292214129676931761127291630033352983581092445152774312573570503911912017246276873581263755575602394080874472135963189137448325760261428919414864232907488902576869366106682583843138434237085835355487631053964383515713280889567846899582478162054845275071803523909043070057309129166288062293284725309115954966802809280223584029760570376230273190957114913026339136404570274126817751068866313176044488609426005977601140189646009094692600102805892357063937300479255425933488859131569504087099148483570404354248496002408890034951253668795504549829717624042567108100981514230693492145801595599450906006015713105195012449928863048508452642558765793904004665213123108050086983804956732080022103130992039823000706883718334352681089551387554276472575402475355863537855866642138775893816109468814001274463334626951609967442616573920097889333564737800860664038176072199192207367223429152697532904701268978301953765873461258432034538092338840211473896800251306496094183658327467581262665289933162637441432506165429646503434567287546646992294586718551966974107439870303832015279920737640071518903308662281996136574425663872981030773082293349846326008353644109853655625587502668038599387780644854630267899858267252661488460640156371230613565969711409125283227270208134998356078445178749864128284374100648319989690556075459757359712339545734641715097542477885481253766536671772730516309631383028352508785039766535802722817106624700442359295007447988212248478962250133493586111223386474179960898277005601732688769846654623953168136346705535481697709886827198243459412940900313269025410819132294255846201558456035156325993323056722596892181922863468463087534921898771293615850368354903035352956785693365418377448692812577547132000125950630594220131046183284533892647345031358051383610868054961939525143102297299383236328678706209518032813529021838218003716811648134147931348852466109022337588992697963941991285799201088203906901233646830234334760337378956672591543101005955187346026892460814733612310525213994795981982472015931417581451286995112629033559226801585211658342539360730564911708709611077887575819703406839991070883406688065590650303234238553328286359863246631117748520379067801409579545841531306824781991489280346817930556023828941320342827642545816107824634921126930557528286748200808600698966961715899320457416886274273636985929863238440405112071334096767440528992705162145598371411491611980106687975189274710225723761966083320482743944195245940598772623737503983708639483691590800340510989028312389459242726880533686010145075979712560816285894775493912926401732879169027404985048014061863855865376642531360018675391574764961804180994627404377349544588515234533801243871690399845329396524767658297758741759472618946663368671858389971128420425150257136014060351202870049912139974064443803450522210352862770287908298470493633616303444289738532517936275183054530921073052194228179997551588385468688812050104744601346305357263091994051917879701790266496784762971472262637858868102130136979016389058766404740926454046087445402598403835668741085365298910298515593017407518619858786348585588192437400510387153671276699501149345776375578919988299455452061927341627123652199988342128623561945487224474465198058622692209983901323050366573907624616108499805970341633702096355344345428233855721628143001679326730756456283860158059513153957212807470826353183608805591906012380105725182955173227965554254033700039250646994584457457575976450979778090534218161601729907351999607711455698286669276808804050939430431491210188605096213609816719785666285638511402642236069371402536501003834137100040691453498048528271238948353857146854588991900575106615815088919244390269671202125239211364199177030916226479753278940552399980137363596385020557533597302573055995579895818604651693131840941880147641655366104078410995166602271083477096599394877211036839185764635634868176630608522416185434829291897749196620393695155730337440420498645088561803733544346055160036951606704560922472918978371426930930399011559567528657473006038412960834405668617476454929239873161086793683764469541958537212895193346872076083970646777069672768775338137343129437213235690023489168342273935640269080783654519442609730568645742014148200763326260681133298488833964235852469149055074379026619466209492597602742694676396931236109332155102753229074941974143492151674038056184786321605438811772670159179105441729632742706773976656939971933605879330047584681242174827052339107050112509596987202321318506205447659845274799977680882640413129192697286140691090661851655859497382054123519582793954166819281589874777568807863860900539038463055402441133493226531958645872685499273382999328767628079437879388341377924281246322433815790477126378183430970619086731822335240210949793929464150791839449100590441262393999081176196257120831122254517240175798187963987225695608072324782142516549650996042607203848599793382651122643702046453349805948882537852637354872423514794334766554146377991878801327035088667729439562203192066563589951381048004662596661215787578903176431450529281252713955409965670200697961206334607105750447912773027695638009845540196298188975263342507889995671512828468334581079122343740160475841056819397082544197551266540308339421783618210050598320700713080799133691476289922435353833259331141068177276813933275860351798690929415659280958504685061783233468759501992421052623390725494905183835721967891368390220398457077100403654891112733741376394763771682289462357286011681146500226142182256037114066368943314232766891383173665549396615728012835633761396085772273347928004858480891016780629522387775444637152378219883649937460004558492152749886387532051608637401613968359653234028776904033995710695606366636027145499474788396776504984023304296661938864075386095422727479252569140325122552613149312009287013301948953885782544106612374776226477489629198811524029152961329618439040570020452904668832738011706088867225621567579397304227868301101283739849424604763684548623467937384056449144191144771767933321238193555020441426369446386961904568378993668774926441320883577587406378702154797417158812658509477754840721839256584340048059004424980765261392488187398285170591626556407023224725903258386512244431911471346966177206328728540780345582525839675352675914228755474708512422400967086990115273269521717312019412459301662324091681368287293382742231149543630484593878104834633204181871908612901899364651720399696877629976696152182182574388208934661585144847539762460542739414617715764508199586077758276627281743020077683008467322875119864607661364309531344341013847241872471499759583212334871673557377079495719558614578954118468462678730801971027920771596934184958032709162800002274327576529676266381536720042687685801478452809078106192039999883948121477143113984863264005795669619122428823922848243474950269180964318107305794942543392527475664697782186271149188671487437373953190812165390284440886029463098106216248037242564816595958519044725134240316105800949725983404318675090306505739094942869142798630815602846243737562793535137820732693167675411921258102160867770981620954090662189665859729020838897299469929366233123857432106044970419534333728338617797791140438470760694517115538127399829169266099456194789630137951496492192808628502018550183920601484945775633503083239513004572772817097662474328109721747614218809167865315966266438266926514301369593728891846319244291716088453441117887403837376153773421760449220149036457033323288124606949671004092489964825777888455206535441049964656111507730729755315375226992629233448707693261171115180676112008206591374605672123099521935871345605346923819616686548913857112145001965547206786390542162526223873015555584137998745193105238444732218888333041997406566162077322058551440152691138808416857266343573954337261711683777978175024660789168527653328976851090986078594794968767807404767189808572261128529980666223099808653861413091241252832876487308568504413570353266452033974547796147064122533217227942816741364679084903246698375690411696079368000231965274937626704620737141186250804348582634463843889988468556571532335969501685738462568362059734127077629698682273443394588026472091984686581689012112422764385518717207984429056623329174221339143854846633602940272438582990919524879779174450189011341129979275793093487525746249147234187182189671123013360624966193909221887821463732253550852662072136698483928094859346759993184553188781052337126466465108583206442537405700891753255957951050391723797856501657140607394695481385038768368599905614808834645132441031794667321550260605383703415109649525997345672347202137003946700902455465699673059705934423422905973622407775933681807814917108878827687072225761728721590779200942290581805905314438620935553009208284411772447967117276702755543742443961171621173383050463363931650380316668936535400789338915888381812737485049420047467699446279092530588236041444040997585140952262697739669993735249641754903594941432321966611661999247938844483362339322979587792336785036371940826906563137768348436620131319901233953052202514846110188304978707402246642914400539898935455563457839561058755868243060637130736726737960219672461540287571791506863195947039879205021843847909741326578368725998163699158370375599008426184027688270955036322063884256505648486033819483144969007487367862560057106153445970912686895149699892786348550489267270793148790758091614167163732820762858120009299448573861012645591385724891128924363355891653373326425576133225767611065116854701496084384028356442589792122419307248998753463619475527499741265906048884338386956229347461420603063450090697499370230215552029757236620986314859650409641098807912506885463371487482780115161649376903059255344413601165819972720345059202893664448295252140135935461570569210553577393190970212010768196666643048774046473346901312919883394865496530828559036409333572969384931569123280583895509943091138131403806643301709452531349165640263683450253669693470834995170501656491655300408320336978441007081394285654864688484011516036798070339303999374820493173116037684760338262191911011156611182121376631891556576271905508310410340199108227546901375507324074620710532176977456234632271093987379893916771476841621693082486443896931223702271331427867553428831659802562982493038189105685087227728188028752194027181801789719555264787311679162621101735759988137880665579446766673505766099668286903591137028321738187509670804348566227698463295069268467350252217754166892218088635059279066910944952839607589815960160469044018429791792367918532929707448192060011017292092501960679105529057162048310709226405728800187849361232234680540199983309652633181207728396552381482479902077734554335703173526357601450822473484303943013453283595545812038623522932228734699182068463256134926173687422217036183069717785274528947054898203797526146544236782277099800196666903793931933931209676947956685893960180631397268291247795383071078069337686459421544386086419230083949653632034503383750906490533054694448952986423680094766277252586557638582173271563399736345353129437389313261757256439319456719483376729393356322191718042733722034479656891159850040880532291388024704710052055491750936994433672774509980676172161352641427976897499220101843148572700415615424916258195181058760348422322421205774978980486980885945165452915441330998242954785328335621647604094892851545349038114374855715854300504202749173223385375829226536798757948567146136527822298321433929957366550157110127120910491632581059179805258492347931428737524341580497207344402990704474808213109043644833777929865371521912359117487296893205695141288613014016054766263459945294536567273996084500146520831180625123529046065281896160340970420509050216723976465118141395401060941800651811112485996312508972548012117060925482834367215795653205089715382409936738383798769292326655347006460873413370707790324608735820000488630125897052488008598963092806183449298796611855056739985935619626168687884665770106053105814555359188669881433371675950712312650687285702325260460292977811119494143493932664389190639703764935727798001183055867530248287282889118562562628908307782509389871002617183824455482240315509322128439705090078714432423765697709028518469752654602063062738338605601790662499861595919725573915084747740825799986847381557421346939970775781365821964238920327190727662360616277618709391325045454870162021642094358999767028899948146302154928554923801652807554897048396935815587143769606137049631902697429290884504704210587799896981541221820416836749583114537834419155259684316062394907269214334676824538013382645603370066831363747590834828528620158133229444153037134509118946583080009529137024296211143014874339228013394603360872098072855816894510749975024414725258087581986346294722781465125201560277096812786636465322289976469411360985260918906441979472866915783001950211151885360893181253050769708112345646608892448659588916140713504340236691959345164896273829478946996474365530683452727678397081137359221748511275047514200238474917005061605463528902265111680803967048643837713532342641475759670977683892533479696320753732867072523784102514345682149116338315165766636488094339710736895994871560674887957553615481121909456845524902887203049617515192699880033736966813403302858239343998940219083960762534040266061866408889336113786804028299665911220491843951530895703579036935389064337280276303483547704152336371367586767896920757652579761200138090675629752561268129096879092479468682396541956547109951799427369147568669048341684449216187249363586459329111512302302918650524858124436652183382568492457564140353193284840987591156978281030698185381658475195690329521290537007032297115770324577942980368920134268149574365273502241738347109373481420686404868175182398097427715687604662382297739421484688879983374469122122163481592200446625383982251325794361948051928009957012352741239061019268750646359714231069237539067016276294357764873472591360346486426111384420989835245446373446714621022461953028365726461768085645665363413471180276879114864931258424614586801630325041900107517854976320826817889015761679797568670605893641262684645173160706315665273469282184370318247943125715479681143323028535687932106745135235698642207764147047446014464756905474739424531309366197170007363056805772961702748689669839478899220447749579902439988873834384996908211877292596889372424258300257331357761461363956956401727030764228330033359363667549051455019304648368717100199878293116766466814782854338422257310344992014609979035875030545397327755304306254227800783017690631063348430479183510527172682352037401833120807402627562880218620505158647965243314720656473712443218852723888097487621483433949586128476615623558145789116587843036321380916664538017501280569388797348251746100803317277986990929804773388081506720982623012918566033787391462338951398941509551816511441058418982344024369018509310097379632815589485094694857699240327724873374461696274458132151667207157409484620476032314952985730991957147514839926972813803514249505959601387123919166697013537294575226505884592354216099228949534126994682753357021073213133254799667896521364166320488056241760694721832842152194499798943250887900961703132522472391144753431034089764713531751139497663090902535802155555649133703064585653455921009575410268579953582953197428105434025640078085647021927125342988031158864454531631447515260753456359115991580598292162808263847664025656286226544785289438884210479186288303806541570568384512804315353612544211942897709216350776444264572479408093488336108399718121024795174314664314371199024206408639253660828484765931322316546349797921384973112578554333194785845174057424195469322958280654328251814068803280481072773545838109241996255134664845489814235852461277244480408686716520692588482315658119485221927155315239981575443497578335878219813038759799485164005375451027412444683411449483065083996401459646381963178481364650827294936223174492732179614689366870749498682516591195659091738084041452351433916206027426874353668970308953949776818389122703987427922464347242053622931713571770093809964188429702479614522392304668121651496940851315483427844466525022114535598935411911484572858443447147872063900715526797889614478385924011734977846680410515786827666489264025221142529997272334611941734578225196217950044892935234257386544588143103338360855821784282830617435512680353412081800589474151417717585778854604056436932887700083688670540544923435836722095277185316051403503744415909587541787249677545900137516041348277562257688217057672767705874991410936780211172467565637710863401932220828577704173440821161295051149683026764837085731321454022425558945210834420082699004643168377654011080596488454061227039906684599304055945951639338470113633117847062174071094099891104408840038431051692456915712677049668785125678935890007405909521405786233320053882984805491084500478487859901082211030924237337050695958141086144921729904548411089356775548546449283080393835904930510945595054086601302610921786604240743693939092097511177898740359892752380970070572463862430926624563876611216372709311724650111378900060253974282206723094796296241054153457640757999763918974576387696122010775052978524134309266199935819243182523735193658504229464905802595810043745130479732423679585180891207233972748365328483856005161018343302331759753474784797361487887556806703216148441208195530411654491584959099434532934312476240439975476605780937986734208986897857293681215014055930913345566377783832265611763152782825073068326988608051255980711903906824097251938713388255063134974108678605112439691317175821849416300590168646343492061502449118295327610092229484218785228715484641438148904834860189980752882311197546225245459183903073748522872431091696200553056986148724477185572989677503516113915201867323747077278472240925851754073813739000658653045476310176186643687673884696310795645986524109593725664173764435299404777252899004383371593500188228297295850870097776639556702015161811637218203913912829408419378783357127988826365730273438122775308000423769701377053552050818647576869138021702558424056083156100510201811988341780519745923841008441263656708404451800370813288767444899542906846502109806549675502071145435298302454163470285118903171775703698207190146582543521017625743548418774652868876476963424715712315724582876106366726085041682210578665585114996157320150405724422651175061440913661879400139299033992268971995666734688139224886588363416544681672997179815511108728772944279449953354804253519555940036085039048957677026469534883582690989707743727681404542570362375007225426563277767069284932710555695832924241278015148929130534386229633453173507712852074784834338704182744521494838301964695041292508076639069967266653740299688681817014947870357724194911362978327511577893104154303001298593445229761197569189692189366161137316042831870081921465818678533305170015460756906089724954135204881130692523305702303620033149008161889094500563110492773692847461133405935445274037155871038112622535317959579585924280079915538430034010826820759669098055587849876475907784395043465027094740847788486747889013264136980713012426145184534143079958784915613620796470267069294046574758381942991455832087547191859573298410796596158658450584903318387450029140540213626956667933435316083094511458442339449167395644645019853147474068480780762709435543484930941073951207391301760153264150718140198929986761848180269736163851265371894095112003112026190229711713826040261573733390297246253369369106147139948691316726662359584097159400041579817686127464291905021342839148971237929296134500556458665861121314494044142787455149080575513013219259749889200295409119337033426091048369829250818145951253111162657712006365593936823663182699520376358803095848713931446279575695734793017967785239973184100600049785106559668067143004186395732585346009302071769126021193999094469075396452346139413864215794365506850647567574655208242568967791263721377053525031100291279372456311716601805366961794110954082772161727747221672178384753471691568297531756263513689932670551964596197828499209904168701692754629270993308412264380289332067723542146456819920990463369188909788714433145815822646637480971280224248173199811276797997310158867350521531981485403262156351078272292055207545949230960871375024954293458777167026928233143486263111649805067441794031835746549175333063142279508771575757136872148114712795228835549107119804585780293944466184325655983146462211926137888204730446581191526785633960867524558867940816261114745279553165948431044610453358963067026632333580174325225096177671282532835980947897417669307501026514629824604103348332579808804257605282886290564254271471410879675541515452013240700508504163151972095185535001802589960444530708077329387627386212002530146815858094288658304873253662369100299804401986354327398731881675004940739432832671588037650199570902242207557461533084668089301602635733247715330961117375102529719484505119107226697139664376400491470325712460194558471296984811148994284595648613762788974723740798773360999105447604914726851467886606960459636786119019629741186922340369075575547967129183289322260971776181490756292558308322704183764992076754723482426315003782216990946039704564956286285596969671771626611791676116307812593323548228646579398200211076031692117152761764367866945186244282994476019019901866902658426303698184253280663189241620619475902930638497426037742811662177503751664432470423876488745562213880939119856279343513135515978170065907631756443437098578129672314723531630740488744736265448251835227578942470862409089380963832866898922970406993732817284095544960343948345640626770714701703592432748442735837878970352083765258021522631632037847939442856235009922382262836600914787601944238383054605857710944481644884596714968778070673861793124539987739892840746368134593210167150161339155961252643022823069524879320062113722978345193231919149507404841365667259282831831927963023353960098881422570611370740846375750893990566851691784431732244601696928396059356969528353775807980390054077846648649512260105709651440091371356477465348938217123508051840503410364049499384481970956410146593636321793780948869375902479306864675763503956280659209563194526068874234728046785048502691755158327520331701204011992718253036530423969075037614109905530588283932786186079417798715311054592318028799172198008875312839820173640453463981736611036876681935065559018868709688869153948042859498578126136163442607401097813537408470260154143731243192019287675886354563183217273896041043790908561024155577227333021401776630472757309623501919977390137593060498549405804042292042393755051416416161393056821713940503724491733577367016763328544687077685385523944763304182351370794587312867946836060026873837134021841292156558260238603469067745527948387826360312567969438093541975871826197856882122942733596460889330651786334935543542688535514457642237260485084925016643209975361319642012576669312991788272329672827954201878048542193489143364799849003384106651792096075587906594640904177018151051828527042437538603754848836785085419260504939826759888911649947347732442942366212917276017964771928541765727155319080716422474104762825996993403288060109622139326176620372822746240504224053214068974639592830308625850545133445151545266711866433625990197097915766705630219960378846653710168254495345293494795984699977150224712484024723743252018324489601122265685382124726622136032838334999260518423900368055819409319760874823958556353420341086527037671612811293659364459264814819874496648881939686836286359497874047517407903052671136280530345774526802411640217253425285979003431930248848124508080937913725384194345478477084540374729828954845574149764439229520745729263224036118598653172633162420187125597076976333346595164273507436726782785414500895339111471083533223220321799050354922030449475664402125175214690983879182732840373613185747383748888447059214270431418378872022941304252198525800369481283807807409564155834826932169005041879009456336078094683153953358632489533492932638824937991589108168898037160884113196461286428918333430274688711270769958146464655553899465746930652520126520327661735754000989375285257287594894531105143643724929401825635686536131462364069508368879628344231384437123446028884246460947991882217552373033255843488861201163963586595082966749156847989384828153608026043565771770998966166199071853153930095470275455355931135345776099472305432325562586671714255999291104100520777780599269536702322216301852291892504151283080744203214062474124247120633820663575125918738507940798988833399691980155380531041917994422920287963821707632047646293759643974557214732674072612461152358065029161583331720353468178079243327526282509239536934559017153098392411107022938906990404645000483077798742446971913406565883034665715456611143034248288099550748609733093188182960400520824803002068429957114088398544078708651310889502138521726874002057631720459311212058982683032995721572294281674721878835671309862077796249928837123645710687327815871445038498134253650181616364817463380624357903672110489568302327851267069166981474285898782946225797495311359715238467765378030246943902705402520427320545112918523958285128007909432054258911917458874329535271912984719984251443950564247276638455881563804935994206546588937746594738561151922746498002745551778100325032856092700127223598673116358382867777861961722984269427411532719467826842767757551387041234732351828958246630535828940153848479029405411216161777232912200630208446862752631592529560197806456244906916451826746877624368196867899801264844505596665012034697378400527538268635540928911122574280886256330384428173546679666615793144225126200558605688697996127503637482092888747386433244699550320696350948788009464884990480275845338398034316029304691387752395342081584915472895675969036726079021588502486244305411231604226816047963953971848616828437224756727229171150858308347380864759652351923997363609945077825908078564584156419927829836994265322261475911951025180685081515309541392374980000422197014710272798682877873004952309467920725546598790226747676171608607748542020149628586569163012036422636099780906781389379276069984049929608654111860860149035965810028002243997104448646092934956907130334352843739004457217518757502455105024886627169857886309496517325840482151650439313741550646264516829007062982196235618756670496456808120399813429400146515597111614586904529610159017703625325717368861643027822330826065084616864730903328037282371400984758798592244012466054116192836850135229912613547094070287296619577748147004582261438892221099895376908420885793235080655626335996954890688794751827276214814801819601907415067686235949322374870154812041756307897207365934600377508947491700712403387400732446034264589345705268917217597899786490095445624456427676449313195150222310593971281644370283629618801718144460180068699041145711267229718896095368123403814058074593638728197470210556501425077751386897299486070210816245234679615838622267226855673879487954901936721222442295746467145153429771433262429253274550156208968243621767637304107427431602154356529583848573412298757630505113774932617433673324990865809169163555649456638905050071141676406995185677607461641922662583819533057692470917982033864158259920276144317655487416645396148818179680117956906568739106304518761794327898322624631267869918470545969217944177393524949440251205439896586584815555900074048910247206795265715705023858586804215918336635841124006650945834250793553362226160587888200792567275805921323003882710961453245740737067345920084766292474728455832282080474075050998529975884071180043890182433932132156646248419870339490324397147559670763828055732488351326518482472798897481937509045627843537692367851884413285600741472680514638922754249209506968814833840961607927475719032149104193900208459536534352896576212694863815007290414253742010681578477587029140351907760857809944593694177937708595457205720182555396831769511303807595090688701114466413758302827720916111908792769564976004850321732037273072988239916280452878405124456473462058551733597324096420795061169738951295103435306722616894388250567380136358403908506641219804193935472986345906367051443047409832994190563957482644552525678865492411979633822641045155378258999165837918343439091889738677801066553335037190933509579492014950113478225534044948469062042699566046475057584532474141592919987166094539320112704927137732880763014510759380661425863416143919360372069999695826600274548697520235489058020989767967785473931664618733813272216219427780764564206540953640678298248297485563594071269822487692438234849539067259797710156362627636203846468935475112042911061565709013390017537599414284488181954061386425294803113819335263250842676590062544117372762139708805921353810680484911065957232413409329055708976256663125762549608589215427619892098858248875001197965611981692328640365301162499292192253641961347326944351851970580923057867581057217837992398405785234859894179380932595054894488004150229723672969959562404216392624513086233896815429326350134663508073949474120487893227765116267666598881452222973123351169217669547933306281028752887772441664286703336049781165031836418766618598927799126602101070132551161235939529314411830535044480131692381133244980623273608246436482265567344171198101213960096480553525160029589296368818058417376344903063149400105424924486751607755972570195319455501741681314800595408529608985695873079853206489480876897358166110586757115265515013969657138461417520637158575060505561951785583101151845730937938518359325466318984038936686437118975816609288805742392766201023593256562727294890669194063561926678668770243249818140455823684729024043930703999048449931286987346391950656986688375010588189555101563894761501064728883597412058420547836202556819027811680943560818453934342991608649101218328914545285913287768213654521750893114894101981163852636703863970832401829121009483757250100283923821297511228881812047171531715772644978144254461835600498842089056721481196416651897272108856219374720419932751829665368620398307725288442528720961164065325714042576446311807305037495352587395444874069062623200219632826108212802854036687455504449579598413388095683002945279619325086326305043509795136577628508486188007745321981078080393214009812007821616356709786221329415066327129918679007609570800146777612848234845037221420024768476647383034499879187311442970058805005982326359361994496088768970242560160535174767349806042761134263648163601641237763432129152824635590140459362059286135169011795586269341566226977596787477459545402916230603266632159121373141711835760903752804674064930446655660165724868531886899275995767377678603330383622924935360632098951674811115940814489685582257028758312661177836444266627430266117851245355279382398501433133350483986746436836543256325552513333927355193529319548517012398652909567577981637746720832578665323075085793193472911528568358514509343900779666605752441843756406209377519284645547605184732746935163683483676540582384447983291565628667432707283914813150068738324060029231021596662739042332110307906865298790046704053740100092884803183935722162784142597866108436762643050778595788461444623591014093458314618487643020699162965675738900319729414078331652318581567847318622634728491198124342412735823541592073594169696263298715111003736135111245411739207083487125408730326409777526511941102606668292174728556993246952966091291520057181385456033628741023070764647050730550845093225560347555412398479641544327236146636922557918659308855758740073192088895473565345316666514017839176386802113142267923489584477435061711923114081532302312645214309972458390223321024084639134911396857897821505738486715806179929806549302528139827623693967164369141984059229253037327548979602128538872285136600202050168009467199268874427170521897234622803303381744773315488526183700866639538203111388662610999979820300211839255143309965376501368869871279788381827168829443520733572996156999059346402760786042457432461593871375317244721544168965455201929734233671169857280485882370532371263295721158948477533008692645438410736680970782359360192960483357744646283462029363487188140786552094324792174175394686764558112816145109060824449513338790942361487144167884299803076618438138090444554214904707802289534388276886425997967413126302368644629015756626404107847806344061116574573519982612224136092718042206148714467360486709070771683709473791549967412783457995666628465986463402038374617645849593070903603188038014103951824845571372847608692824388529984588734516214123428598189069106994431626184792300934593076635966013611541888490415962126295856260431046946738062601595106313286833493734000111807870266907715916051556279766593213581543141566405863822810672458020711442345377502475121392882275615122785500900990866038000435768848011767317882304068769425318690922304941122935189397256392206766957204638609207453460439144322788559247066189637702927575488637267459642939658709278896984674374872806080055012405855138851230102556392238919109283400775207799159396622816790414629709915680453480490392708056760703604969945944825830375799303800760223525303699979737479664208225590873167490525142481738794138724501664237230944167024127665122330458415627932797867326828817612299094393601524419609454669302262526162679801983627559350833441885816571056401082721914799698527223294894530757209310630972497161383732578397660709416294247175880577784259528297419216525540565141442402248757725867798208253327016425951348036633367234800883275335984113466758599804919756617406676260959596428813281611822578705649120563745314554032322208378317650131088885795161288203964164853264609235333556744125668987025868675196069951534200060050818895594850090023467108632652929888081862892592961413594859597782896280552465267968123004624933167096330633214987457889005101279287284025683383290841297672871989621067776116533111734035726952103884990778649712772473019294522152367196179230706344324142317900880962248756276095945314680993747007366166664254239022246382878260059321387285783663545705373954176116073944673833101122199306917087873848727263441721915339709785569260088614010704439897619916210146248456115618730156574325180214149416704776940844254777319164097551406360974955460456170094691537785925382974986246837376791259861523733087074813121898028579745131785855447877409757002981626148578589469859925568848862695263123551651257617313667731533049044794713564261845540922041484210697932175635258992253570394482525785931664762556555309547904051406076579255228447576113484211520327128318048570797677165479267710138199753650974468455730194220076188145540519587982678426020097065050570798058868910910066857577245511195632911578945530549935158136956794190728331115751755857407443514232403649612464546691716810477735907823155328692929014778431599014468686585131276978393897628132465807671112938872715209455346041544095878183761224530745372261989949685415111868022036848115646736790695110906116195105803801012446284883450890511729830462997443457064184744041179080471078236818464477786092017207104166458452256741526726354765757393307800597523835709655479786665516763730673583105146356950176331905937125249554675692109366545983220127562706567315443021743427228435336536581024936339375151935026265800352626118379567427646894433559357516441265868877279837886420627779066418427963154975254086948985524026617700386403217617808873295410123904524654844029989106299341446729321993767858042526055661160490344350805723965866993763545369099358420912813413544010822544536882044046973982890387766480977573980363801101102448316351810505447114951596901507254748059395473108107771285532036692337149373635697360532966879039968128946009366832832896859658767443001109142867093192859120383542990079571256918530337106876609472538487776820598017950694375619140115531758590758945923915261633232265200762704876299036626108575273590834907858551489990230456666427002937171100787603505916480568143877335570931536323698870694108544394488894014762640376466514700659621375121381984073151599122962029606108317797452025340386642665117817842830537279841605287624769440790814999428763549079518401799981607225332239435523069430101734992857341668307008506886282692470897062942403725315998449881518653668301793394145402921629901553819036847773749062663620676507547936882165016902919980698810323229604635992703046219194713622416540979795760638888779540393480141616188491774944212770415626616062552934055887431610005990871021296867027747703741390711224575905643856241080711400964344131028049561081571876333132744978447567237314641178184605973240663647900576757513823532223978582662648881311591041897969117023405985666170604132236688033573704046238674169609180245234864147984316042667733396955798268454091070091388261208176072328614258643080291660338561100468117076083354733313510334478803407686557566805232166983057864440396671410156647967896535869599554489784903706687601619215365388081618309715497324154750716620453280962098007285160191730270963867757662850651984829846325735386155706062321216700588728493105740884428766641920729859001120782674390255864913934714623202485463162670407818681278311633170292737151754638769525802956092533542482415291606721309154157023499368102509622009435210462044078054532077363847251876428060220423422136114328802819347986705611507117278486474910190138628716592318850626055911643725887415966254212804718671437059892119573083834089448985029813554665557973014410421041744572959611454781605913734889690981463079301920233711392627511099097461413047203304276711965869456078486717477725813000028683112571388141108904267511226755047898339346556989237501165679843030218403961496403840536867079722690168398756254895821321571870995890890522260784282861064498266520042866868855765222202059568733449974848610168321068456259002565070690216931893186864961131108298172579278946692673918025035467950416726118740167210620058660608871665216945198874483659360253436303359406280964390623256611478938400442468631174106289533454259123123486116995070991761571055650395948839647605981157763281792655689046754226226298688872233662424361479263258487557224493632484749318309292200274648332995531022902600728679929646690058955831380031856479888779885021131712207369470111262040609329713087041979904621676112279393151945933315067673703927266577632994556687020479145586680355499566801020362263230513294012011076148012197591002394698243038946586607564464005214510248570140171152562329990114413573684252805990019736697344081243483346354344520797362549488565662433201460679629663477042863936500873867118072537873179099720918337694720570683707241813377173830064925265898970153301046216142758624026785677602476607447736938567718486660935187295322618307271072150400433702287913527781927303756832265722058885464353638877314243666651493248714802363554113088833282446306693543930971649514087304776636214344080949387908754160938482164306660377699503524419444887608443977329200056254571654152042859981223486336257589919589283850344582993850481530931626472621766858169153140322832055230615441405887877610999139487076149660077576028646474423250640796817145827595482371984619032151070290784992625866364700182416993569698774095382344605957812499045641099699560268493006863871941824207925381816350893185933897358263796274353815165508351370053710007757310334973823487928922914026521366936554011481551728374598064892251992565986004286123621751132091523452598907921427268900906898422360181686920265678120514326280785614611054012006789721631751071237353223819061607757711043034956242589759787855397776418136017668488713276453001652966972461036505494194822519018936796751068581501579629958588044251404424399477359481034925715419264487795225860948736992106046330571120788275967330261099575802594455651575475352428124637034973030107517716315636776959411776457364671133809596464998448321552987699324469851516775960735602139495619523033426269607812204425430996847571924025469224964468471846441104263057430672658043193209565575922847359040930748979664059250213368801964590033917284943758747159387078036445867645693173081196992063405238320616631379698817616353278189604343940127741845554201510976533124619307382819107682786704689628562377595129815448301881541551653279608159764627563027882709727722485426986492371795243593427442581563146205906521434734959904518582703189126370646903261827844867616391325241432185974331894775718330407886444651276739057777655484978735974686265702754264794437565882640750572103573261278340712715863805734530950039314868354477655439660649685442324591178984274509788794742626632812002524949746061906334123277248104785933723356131453553576949426442762177339463860912421495250385048357699517081415215761845819785287724637305032959650472976991344522210214489838166396150798083311922985974221595838820888544694240629670302503014819964585849574866412213604837411138408571772721290401664937096010647789683226933165745754126145355556875692228337801048893343756370417779621281620277705400633497451521814524534431517588840702108794352639956275514804036935498764182264470757647069621041758070212491725116466919188429082175533361819790945336495312497950730607149040448740131334410879624181034067204778372189660977921163607518940470878249608270489906317025694187847984839620485930149852858774029547004855697175019583501880006382863494622942685424071671063610697419619059666848704633306279252186451682760522420411795870520546745644962817009453552056521441297007967821315253018226795188057248434198368461345505478690388694435003570026408551109259093625602717535239595213750796763178328964045644327867714879085352456368595158960340963797417790852612270687693207464240977433534965247685985411225439882559088680510773545780201445665346484256699009313246067625538413437650019558384943897634900030620938943203138159309403097779180953206715418095885236499602181029824014881684203890516429266991930692413621341987471491019079732889886188813678950524456912742776847476150012232794496093135369731990714982692369857292688208144906556250841587957398302663905114054060713419266052494304787783328961190267313147824221996735219672090338169072744687186117777620676455356367892972520500743440626169848852848805147374200236534528068285781127686724605031890946795353424212977285108890208956885883951488934947527015375216805388196752831681287095103657068069922607242690349781134156733348601101106521351975030820831672848018493558339975063981686290643665837625690198856553005262107641097160436031329247364205920500865784664292853092982575807992813781195312218032841011911615906186744242239206386457949490923197182296116218653786691780145804292345468009048936114733605641182888747722191297013170957695850349620945277584087882030956689837180564429395699358040269364632792304324284113482462260671493894861817781570839565558383667316514643496760086427152317219170688333055173007139288216812250201367530675647017116226167907200626142015231490320700172880593651206741277607530143604006685204023714496932129727122783753478199405884908165899939388657369355564457134588900400956439983055464539922838347816840464501064776337156839338791897570068667286444969326867244631710444991454333881478198879880226219030666435092389499273664613025489339235541483244779236107588243938849262409058962627434711984666891529077378746255479058107961874089734802984213565883971334802092515688713968438067775667154414247576421766422571228168198804269847546223739639505485491017580250816495968937723528536184534535683682729130557420931901496540894959679276956629364505391867940138075851991418523123946965242380287714523256885318240208440697599105074621247860296187011478513230942367259132032888580664351241420843465046119454188177187064808006918227170741503161399555243151940594945917211838110939641789447943720085909604316318488053247999019995940592507518264179173818544077223365340361347776527873288352341202762271203057326244700592283257954487051818999741176359760589246076038034077039938777515376366227293143679785399530528126301662695198534773054145267954097965717207440228357915580558454771439628274553008935736993594455507204327443597064882743852724208242006249596888463745151943230206567206420989127967312604008912081666398160277224860216465887451308758669057863420827060235763721906521254473283695761726196039628184736350876524473257942667463717396946557713721699021865529937251383940786656293415455596955180234824015000276726792994973065100676755532798281521342274134258653324771029211169654865731330664995709108319471462644648036241156540228324537855262419517285972097854810520105406798744478467747603288056210137795725121422781907389830665257090308181752617317511618237389559310730839878425010843515837261211400045092879650941707482870648632864124149954155183063723374170421525869151933444718395027476678197331301132620775591010238472114222115130168159465761967554459381751123828698926106748595990197899350231512854108701669562214575287033878639982107821262954373315972821149935914652879035196312426177295769747354781350778845358514352737388455886117792895367344013157226455593542626790402392322597319530252898156553335553874592504923839611149833154817157096511898804164857192532531149912647134990019281955835116406154248278054757488831045128817903094477807745808358414007716130536256189852323102698129929505487436805432966917989652742043211366015586989528007553616880899239361592199258746566483145914270666477749776237028030970589916528548219309977503938390565707866389968888120350601042952482209462160344693308960467527913797146760424761584801041607843351651904334149110420594635226849090980417550823742001202215389984452926716074560766745420414166378366134629136081001030704831710773921793288455134299598378540304905466806161827447744033178635671617353775994648443310323904159223605293241821350005033713865818972679582022399137841053085883938618005428564830021685751919517876818117849123435901871780934161020492942709124456161089758419369271725993834664982256686628873994483713011235571881263332412166916452777924570245071405735959897495665924872258758360600353387040488494701694764213503167430941134349280951968896891837118475782823585774856514076558236333763408828423036248778651851935168281766857436689576631256773856019401160246109461230202152490482182624451696851028301314154800593303136601863292016155301434985487180642986495923308037160260605275650967222810733458069090835007608338281820531210342703149265216387963254379638822842353450735183493326148583019137453127761485255063130162028385250027523070700111683039449127168073027626466480748119033635099493384461971559669467235308517103846939957125320592174368386669590366960057642981620705583793572075895970167069780058080263236089446879701287720721953527107170233577618659833479959668006526455391420751876424271629064428840767416070003955866327597863372279793343481559320809618892373263061673300317943593616553173247345817210750508656994532942113012399169676559220003780828819836020605767587146146872626598729483711662729982240757924757382743972050795546513780559470678721152178716352683804344886884240304671639446190014011768753513110418750083914309275454706690133937453028471980861932916488292273594611303396801214725180912670245548336582760564988931984658417956913215430235168529308508209555304299686691092898850469714730318264622859058860516578627247330774823875917279886663974687797585534593972916082161298780212213490862839470796691197143885039863791118717756062965883554266427440830265647089290541926653852055571845159630436222884640669346814929435810425474124248867743098739558157160729742984785595926800510104547940293457876154508878910454456611193653450291691925761497073357851415751505842671266898426960424601802662722076878825149574740619143151734280655026202761386985577580354526579988325947287077478048893614649009148807257030452480648430282273282436789314377730149845469250726575940191253080513450592216549386374138582850171737861917872937609273546343863420727654501577271157592870446541337592273073678930515730309254643083693132867977005094102745706406726412201528036619931042702890228922338378382827737891781283199777797261964490405710759700153922201920082925925588326648194018579042777877329797731270009812058811833862888752314132071953867941257744836144608660501434596198173552248185559323404533650296765616310085898548798035337523462723324458419412541992065664192171907814410463567953990545376554767813172339856078029467000005192488936640576346559638086354143137433379291529975372066627735460879014730837945030995991580756860834826813539300681120233793627274910733456488472639516099699865587939166401238998248470928506486181180222858324249841705083931687041844823940418078392106623424531246351328159809763668313792673330968156957540017675282314891461778492683855431497595718111045958912153303059208815946628637546677043125623990844217709154196446824506610966177894645749974485861755547933382835533728181432934515702866433917585604219443986118704803986158416919968509486068238144177446951620304505860906320105370161882896474085534761650940303385912495310615652386691220131480815874388684609731858002009614393100168248200305559539530594622147669600712081568964995913782789044687230885832236077604144012654432749904281096116829154156306724236876145328344595029977359691427576431639713572739448995031533072857351475071418051898490809568362368668565353379967275680094451360009692779576108223777068492778561855811756890672522892586672292708311671879997918535994332839801349402007784217712852973895674701992015002733417014568904930945602566383984252618395768778467982245535582329827791210295960178965384071565087901970021431121268996794073248717250792104629331608652247792665491614958613177284819819757820350628095933753220726863799999754239814624270599626880081896818463413117185718389757566397087515664903056511765483514204922451190782048918434603702077691859299947710693082695495180984775784939181322247962919584017705822932823960277549830210092255035611375148182847928619178097872405361642162997908536126001276401962608524881002779238774912549071366890058387135962056929030267700014553465104946438530404553881267112496679223906303131640951909345183798895808601140889583055669729399099576254660519594083217134161965044320192555160661593383649870716317746233261001088548384855036425204572875960589119521087817822202587255262858366953020198498294103563558438034008326784056172978504498884325096106731884628982920233171332933471447009702137372591845678355833874899036121774448786125668947238649337431267880035230490243169418585003238699745996169648918666678224260584056651122640900954504221648134277515354980020163479271601011631702298868182231534102596408879705783119077455608497710370329869049844152762940659369326517649005552032811744868886548415999743242208007644031837276549412603525035538851474377028643347338371343548587119226139112109511228368104993914490956314254605783099370912350077639511741603018593826636101756937987345553977456299521881185163428347114674122311440442285901727327455150067458355187330979249033309641193052998097496904726543362617689443345817185360898971738961831021438121717528311234868993859681666157037988072304343898361167215258163912355039990543932187054028990886187618454467377174187989501559118790213827198014933929446113688025729401335335513978927449566966578102653527850268398155179048752988619692268334608014256063102140187374342915568004464535860177201319992334350601279585035794501388196991591269305652480583378130503828635794650493260309251739605775986070054230911035338404936531501950494507349372680588378078574162375894389314544450954719594702678645394504262052093669798863984760033527507475604221968188694303995229738208518573316283434526026266304828079644066118255283185246677003419376304132012168233263328078556681790458979000756084941081158107720955733972815521293409958396517489709320508174965048121605629424528026489781211280336631841288978338175495245382074791814648631562789377212904544230424548579463668858228012499562358500082739171263016567021941342722721292721416941601414036338647699367609467002333004155688023497440443913824560510501567161574329029979292283281539499729505605204303263976268342408605774728124878271593286766010861937653588888083439872640768250756742717044825789127689437839411101407787309737094127790742560121917713944388435584698058992398828612860131905381574010936839591646000745138341543872343288009924204204961771060199376886034781214984867549652672364146235086155695759223495348780889815430833297807019192178863715832880674138227858790123509338257312109484196049821688202241708896082612746012484798872714195672547816874666507298348367985589458765742679147332466460318475610961559997845574555776888467693497058063865125654485688021942033248799776466758974947246821968793345340262590629532010495976496104316303649377541004502834545444892580734160455135844336146121104230977019605887511518768431374576553695083856362514620057120627890146759680137315616781101291153063924716341210883819527560390682781607858341809063526645104424394419260826390380208438198752512007183165028726761947497033257198275948174846390998609724717504925254462936594917046402580709894546757252003056948115745031637808319472092355139340806942702396651916788804142631205296552205000128545457409170594792947037142727709455877939961594635200555630097999268567592378496413872332912844521438771893853759949131110099788955560210589805096545740864492842390120584635136925976562129169333725218277692587080553256410226152255420980698679113141494057619614277863012115598457300208364528145276877704629338782059172768565757607093994262393605940435082328074122509048260095523684133729863474377005397606162194025102834594360280842508316110562233433621414272355932174622552238491300406848456310744176898936135218551690397929993366164367382353870361768830710500217620616028027896405613908656215389648194591013979622102447177080431058678444862480714152496008462026226754729823812332043495750002853733127171998350945980238119784844975493800643974277906336183382295917491309089006162608594714102995746904266658507990059921435871556392784409498890694004535969404257101122235778186350256411588733918077579809163627826793371286321501256955994106959440355578648150044989408501619777068759745215630918604260905374124536373711063155889854436059649831678120884962264341778809314497608841493732597449656310411917708721224251582734208405287209793688864728538614252860224767765573875155949474252355800033785728894143798328138147295308942647036628401743088689821053106540952758261970414063260115915786258043013841091032872167945242381098218991985271214843918191244824665930248986457985998314481481245657550808160286147866090372778412368417138074098535162143687707219128495758366481415375408921669910779367134841059140449338112568108267144945383829039781795907027382694942858092572923351938792162619971235201465912507431804824925269934370945872986579184782694403660111772599536238475778687800452989613675234135496967472153917995778502955583091084196418953182021184103006808215781675025645408688997649932256878541456643218883152428671927651089727322374043797183790154265284088537469788958559298993981914971198740491390019060073566907044393213711153272939596211671753263556354427661420231936080686489870911863055711879545278313435871370700815776776986251065595599362549482148130778886342007979325745052154810621908023966254840055652514974519878551395820419357681153559406625123608216872728582026725845838980850280563907941456998343752667378186476670157068228240050396461160821669812586707534431284850759182224274342561306580997318688247352957140746222928682781938405605772181210875648187153441460062232724640606959502796092723261409297205147757298174836581954303341412658104969116235542051604609612161450541610858522055985911778894255632678715569187288163893515036195902877102646109903010127008332434806871393105031360492659882108605379562424543979113070442133094739237599613068269004549800209154577107395670164118553816950817343100330692754652945256112757285893197232325509472409406298150373059776944125191816622624295928105697589144424224078042188924385181551205762997626985967399982253340878337547008125006757852104359089605268397730209855793962603388171339639765864142357925640510472313537097802565022062911071943233754730295012592579579084784678279976220352239926622154788955467638199112657481597205537090996244131901230009510093034497994312868212462291632637804053590292917268657690544939558947641027509964410957188933729187522638081539114947085357945731786594491346130094337896751247735665154737426711997967315438318230691743073492751340341592059133762790207718531118122309207079916772152096988423519841436487605935630877540788022605529438068631350681721186544533172525424923112477983033752961619750988549764550302710774201174189068580198287172908069557662650341160686820186090323076261410418214374408162994505895318100836924730433411568125268446115557039439604685104314581572030398398494984297223314606079617566394070716348849517525486148676702650798158455017703884036363735066293890343524966773159709144759553650325236215084073529819118965411215587446889541065943883812528727375814874541806316123082875649726915808316683555908703874734011615015827213232403506352009380251895471416635979351140703690456721260531385476553221604503059579773619467285295290787421673580184916681695919240368277588830268713066527245716493330844380871710912056355933286851101840356852980648384502060133913951817919889941359172760156676000448339400461766203825740427446703380931242407746898837254687964606743414152595448410715030673973268421935071619556647310869498778228451258239148558168998843072257642296781612438415081150321890871932578247568818445464753969374183343627823669863257800532843820780779561682963347715399550589389403557041672571459244859592463904413474901396546711551226842829008576226033516587689882114990312467203390940153355678803109370006390601940674980571056463239313577561625639533956468927770282801436851690477311420414203787627672645430481457368434251373762735165243414953219178271383335627072318908658156906917400643665572414494154109777603997722664933117778533919724689436570553338048532796024411229262625881092620179949560604388129592948655778031126861099916798026087663055342355686645986261265087627383856448643443212576764231552492509620819394664432884578163590534326180926315782770452362448484255983200149199873334888502124767156809280461410680601802781797421433881137358470954430491058495549272832778973750967067174547802919689064538396962678756830321137226804710999964347167025301856640173859684133858368317175274557319087343747999966624287179433971972743603685775935477123723510331799515622507939311369213262600507359128362483889716989368614283072835372830535490389554619501576134734681553316227311018338241026955392655602869614275660197603727510780218364262683906236234797073468724957470052858539270006900926805699681256575924932922945032049125602307151836867321731593336952374767627634492698480725097156209073779810174955424535510996154668894001597985323617763080495398633627709066612753463107654234752003485831418701927710277980209749417666952296582898331873397572475897159178025532718472838590858750821730247023699587778282251339547818607632578297223568400288077676894018620648254058440019589674882243195674951892397546562205597775309122429872350854594895612226673510228104247238560975718575563939190359367177744500406465646953956292421388746323579181514397503693140093817137392635997168601473974514220781640923968861049916124957311493868206029314132434905886076762442870302191494707068533280001082977850889777542035755410173109252977446763628262081253161009432985615684639741473077166695559010438733830951753955913462680346850029371507728889723684193499405928674695407069859781861333133917360983058323160191877374067879262117839187348021778683153647504158459985460400872899329377846935280981327364754555965580603139054094680024573996905068219582336286800334731709946478712942492064637037717098496573911371854887571592238488818196593259768159144299983289469716879318181237363145021221135052075623740190681231698418751418537832413383173061665629197372787646419197883668325970705760873804560902381472935287845529649497909608917403612229414732739829623610208926178098771941835385260227586627649184982514048086487804181844481554353185138798378508375947389072107337494727491141108098748172467994046327763315759533248300614301978538486494821643565938104252486827319592378745656309789607696104176941851513507529268474307489739539025702262593935235524774106752701512417434569311145050959546935711539106422215218867833930067049459581389200996322019818750998352652578883027845101221190447646772830688125421867455761430559683192717249013231979422507841733267831986821913000702822964532251929744916724238484734661662533013276055630107971524282963686871075775627142424789432638426950980433409629500946748719173780113609957751047912993432076469928400008946485572894653683383165225484511857105416041019825502538578233502361378004502559497174063788935581599961500864997770615348890382193859477690848339910466065038084366475131574147178690523899281728170710058541199016757746278473867272824870029629369677172374679847372153001755522247320054279214484722797234874914297780473279163428866792006151128397412456551750277166873602069067848292165332238282037794443260857132684263967756263089598916774762463449376270214875235477720113103385408863564205546708556094573398010241143840669855306878292686077856536808158841396369605235040931302234653673797436236072138415970966600258308771222709807506340433456788372984166989996985628163664170440128773317287928531899466605626808152023730528776848951531214320801994969482582222738866610414314985831098974236591114563264470326561414475830316115614182025500029090487772552891535974026682639936487171887357863350885968451924312698021706004775118362577273663704263334067340307009018722538037810130716092995758901751004010504490684448531131229614281525699868941950681241793411337073405744458929325132022694381022413161392704916132080954359748658783521262166025850324143171484916704141606557836878834276536140576577764003698477072021928515876157270005917967387305326711244246839825444950608510362917158939001351348223873379624719444761500107685251803346762083937216280704198870726717766665876880977900135884737000634731082523644111243188553251402481901084386410454807163756717469266430117663684018963448450242900495469764951008153773394589189984788541430068920558856796740136420317673186337970306690377774975583261495618095780131629919345552087323551888643052175964228196847350122111723092577614014264038214153648134972694841597410834317157700718855633205977776543356712646463593202600426582714746081210713396951477005742191037007144890163144674514310064650357475258793797989425474531935385447203372195923645854375030903933597359928228959039224548737905037842096403313267590962984253531279432558341569395010641578464597590444082000939022935085048675375937371681355836511755427221623350014575153024097362035855321779045453663473184850393174960662256795817661416820496386518988539257021834695333302123653094417905381159420393395895805212943757365838072475785851715947592760953689300946259098568821269193436339221481226844067127210230273481587349893484107897353609041735847931746973533670426898685160226170391185288340497376606436282626223830924053508715175561095951212181570542718834435706365890693776083187976756947631517197313912826442469982960543430647038729787066948543616501247710966069587265695951959053733800358368752659729117806073161830514980302030265367481931663083808770516304419277486478902103351988262574018747213723529939007333798959863125317993702071085673541733641744080152762683518823209773772418025880908640674083063836198644842682822625417998610436840473623098634242526765728367674928594890735550754401086411526751875556134993603151459850978391074044148369336380488758243042358591233230442735314575739486818182310876253347636443675047082711705243162522087163580016490922145772910262893377047809721486072570822016379021228624496839548097049677698654756485845933553201363460716283858133786035038075612636702517563708084490252705628228881647133313155641872872462552619170463933250365561079057211445890404791562847697748278478375037921427883432085171549499492593586084097299975941537804308207568525553161684695208353475574924964248768776773487296937354055013729757274072277026629288914107797301672716748027947186279843817055314715442832724768883391267829757815629994894899548488350840831015371941745776606028975139605912433365619854607874000628832956220871271913262481920843150366013662545066311212040153250451242648150901894885164295116769768787969298901163464097192478777281840999487333882964612001340689356450711402621918056905255041489252913329062575414328429572288677903972833994129737078140507520231488452570711102763980798565537175934328588618358323573736771876539673155871930670614628319088322727010419448237634285621580550739917726201786990814795767089953907620955610225095974935082806898275929918731751001287973525984998811614614316116969884778413685302962192843260918118256166523514697651654363948290984078648612764076676106785870098923566291500178581824237439946973319912590984468099135634774367773419263423891457157213909485060405816301830330354732503914312421681363147282242362672757611085150685972244644383507166313047337981628031634041299705478273939083582667900885370021418362187455942658876568912726091101647141710684650568693850883152476719077195069899770440224148143709371737873589103117007079385373885764426889255971845335851088215392763959383183698072988581605114936337857638036842375762677682227068970196053181262907959130722797505253558712388109196198624919712056989991928886469124782839315268671729765132735189211539202114513810352016077431572834525947389261076531111550577745455987013056907085211827864540314158592751811622393383972177849752677406338668309364534594881741752352446541164221339179735890958180160228955217102235454232419512333578118448775658720371916316695554490955386592143876582808897281976141331004080105875721898788759178333546765291907205705225129690883330356622373528206196532279134674537136017427702951447657797273444644900071476749963688955270005686935287157939359167759386128235038855677734959596842867682424262936401959726692618081867655181371938105615290322036140870508367884849064419947894596811923054094782639171657956836882965822107690848804199070200373805515395317533257346359734752433301196644586342209044742459338286898902608885250664340346995697054471520755330947087195142254278659019711222614251217409144202126629166442486222886655580029341530046658287539113596345133558187258272072957267203593365587229854840909570816038134485897852769015605457906825714006325900689317276571207104724141910858528536182576595848988809529650817983429817701034940243722993524627277886941768504848971648672013919311539902620686625325920328401444570050060647609920859329777684574137402469881360887116813518469381848797557227529087351612683151631661314679039824699204563376399226394493143143586797645311754618168373582678953775608575234996905334647334306441018992763801413657268439354100923026249444488331832601995318407642751363861983852655882453370691084309938925813678048304807480101534599371274469284609487341668094048307112142750425737290346667456041886611412189475403376546332370702229716455588325766020652286338134975203020079080140304886853899155003161732291694315502207965084486393183838678477284455954359797496395315619101053194692904999381213757616902206025283767237038507976234290380526459426133683136009494380782335758497579560825387272735619181999659282331064521471781023225226128132654317162639446200514492989836243753015359962067411655291400143729166926074773612229251358551349260482776073294497872587722223244972699951725422428796112974072147543074313349960583245487274163305231200272211369487888438650554593130524076579413253711427658900113196511317861047091581686168444436682024464674410224249330783695655073289335498252991659134227427067191985253353470531220381339494962737702396095418055082924448995813482027623433143756583977015266052027629197833653245361967636344376617005146453731193029584958904300487688372952524113880656791240929951867588051146183400419945892204645299828008117492269893005268216473397881201130653715928177820608186400925216746263198604112652034200789596424831812490800509878635334104706762654530620193847728430418816891906129292116077297497591997266454531693535166154410581682450330544482446938450558228922756147631349017478148610357163638575834246392297056413564359861313095910952315332683212873600540176438854826434556229510634225128002569576329422855975937616687162933668984277784643798294382897879247202466622833864369054790792281373952897813167398836490343460871375910333192557248628106324662893548175430385260766166327575363654242071364631515561113449643425475198152105904328926960642618953104012074262456202221467253127655618594467934769063105790868805185019583517372625326274440368510056333887927995184537134756615864945960492080673882814221349515002035728735033335276965583801663583701934935943288292348925955714059557821971625753692963307134819870909990241074532579284197631850218602729524414907652149089449815614212234786470650996802187313410667746603581147093734294391330042981524076775033930933272063910134299353147538388900204798381983460887504212603612128256972838550450307049586639182323509882497407634398838642735840952729121296868701712600854974682097080875900880284695230246619549328199464529152009016022753892495635937421921406582282111234989902565451396983675795257027636933555730933927322023342891450429757437937788402653775211288019225107478845062662627391045838109131943753009857616174929090637176308107183962998686286206357864717061365134548908678932349104264641596555252264395403454209430059187118960873766299530926616706219143293840690967459794003743327937870165961165527796684606416877090060613770427185576778692187611411408940636765238075910673817762315497084106429390093932474632881402162059513940098107282545171632495868658898823561546474928942033062911807400847783507000302374662049607259486458348411486825553388674730757548743615025541344091786623185365724065021579657244829920713195328223023637306867879668703392006457590066365855987299169456058895369506180046811737020535645185804885777341902352462260275572533638569362273453782297303861698980728294249068565861192810810818803707448624267900726897794429257852950271851929760123233544671969689501061971364142836531520315638863609335924839028928237201408671665421644313272072284445776307864726941077704940336755423256152913135060453745447376209645830994364117066662824790816477094209474554852311555172972549405503991716860691195880980745674858319859886675278697734787949712679063362735397194021620066318327637515330250079528046200693149995588436535909049000555421168785353937486551214589290508490742595827880453793916557458448390195669500353554561517613772571669801925547156562163488291852014574859300175022160086137333797423306219741842210326350343495710321215423715707198188026390385768902136599315557070138945302481943829707097923958423715434922784970355459055877900847286104890022389143034276705330182138448684146456628021282387272565688628266737699770279670966674737343275737058150214355748759481425236172811664050777004761809809611952033608339625489747034770385063267647490772437563418153455904375784915285269509449411760561358897702210486945033790886973798974656951844789473891310135528695248352971610113695368478137317879392346162779826553967002512029330767538270548243817581294433382331707920323897989877470088035689551968164794108621029319889408095785592404646684206749196663479052450720311210356109972004662263694378600578738353209649817163456787436892433868833628233772793646227449473661972370490853663863960542792085274699320322025495791432310221936222038352652959099945960460878287266902769612680990066829130923502998015607986784263134318721133747070820526225925814863057010626513942347394972543242786575666517976036712820296078071575620850303262370613179081121616036498841779329726842388086968755547740854150264036252524776106024014512165040078209905662388486677640246442855702661899043998628815084848059564210653733870470809045312354799390500546953552489452620995387044224747617108372317171277986850937145386127643854698700531991883043439871999958912906200951664093560759018820028693953141709951749966996815454275818429868264759385341151460402774943347486336315113363438790774469323158754006598670508670873947672120026673845677535353334076027471927510583955136741607861830670222896065881348930656356227042453426717107312014350793386494603883284502465956321797687293118752215863971738630769482606301835802674944955446362438442453127170006525628063713311271035488786603048416791138677367756678303723731706178543703888672440285054887781668945551190112752474344554389528028245752371989279969687336940782244973734701037848805870773777686580575494740964446093556132005998430575613914593285439092565991056255706990193584138421818285237173419943871823266859135467432385587257418867132362231858936138065483732033847780636914815841859326888492678365721301955987908697053306890041627681252063861266971695359065052827392379911088065010542040374580851162450308796634993434284261941643021122159272331333950821032175654662152935881573533334482073096873844766411519601794580027717605478732963205998818026573971431826857073770932345040603902775605565189914584106670174665212048656759128254306829220272447146585314117643258642810340415205688779265169324219861664904448983024666249202398293725256738500383160559534171530978499707768381892782330694349423243950234779093741158254831083653568855414105660834067242350000629991257535236776876741135956077784519797354075650930102350636499781902135521998718070849493332285317717161275038988817434355446583376006488746395285438219777074885450784089117118203592457624585433037157591742571747143141956180159010979556016182272512421674012740109866632270165676731019301792470835336863632350546352070082951513215661396885438353381517014305548768294664644606539233712091922519622951322741892838210293058057709395421285152163975331985998076405312021285246453249501603915051782423865730266433487437590675297634075564210826124343030743693373654631062673887309124334945777084965695261552408213844858995043387756449406947062805926903344406541724537105679982902600825539342430466259816302426370803086563529232365832727203555841644564384552825308656072589548152169321296948709166327862143568837103496172631156020284967515893364776141628860030856815474624633256433163999648605257277329544489455228863970970215376514072855507403901341465098487922201881537571396284878855456113512517702926632743985735381301681732128800194141886177605236937501163071578622360384845975067721829895814660890121398394669253483545875321597350887001049655332704863164809028512322352615375294933063573025549381464895228161056979301648390547522752292253604200185785781816780692530372085983523308127360905957419821832602849661843887355056328849548726924911187383182076410463022956750486755786820783804790298832088654615911563170567729462518922714191942260606674686623169925081896482430553803252162837968738678299722879506610287301950161666611790431250810740538825432389952352714978834544640812234945086510737613608438488443739927525728924225425111042231279663961183736976466720953459734649480772040148749877169646864850370193783283613973810067169658977396007326742717241392283940942459979804987899683030384630737389004587154816842899022585923275163999923974189524101434634232662590372950841173706479392769864458696567674331265283768692867646404162817782998044789244830910265467616957634702343370487153940336275792474736055537750261475976714966121802972527501801063013951752675798192751628179856610057303062018881567336875429664458273510599932975693277907879809918644236392716389258983282500924294001426347388822881178769049921720120621228061797212179092965760493330077166677847326828498857199939119115681881867368490288733075703586750772834247936908850048549772553586938406280533051323282764806929645215219920176719870558234109154589806901927919019181049606197360241755116085262067492958226971052927886970348265236010339252701433512118621894261401498061048143850954083337707618414440004901650155241637543395992600289224694974152696421781967412375791093302273810798434675583932993151876271820381500680350874611373973625888342012543124931464374841002350372236056207853719245832727543151482020517408981851517940381926837867245741403944495431170683623797215844084738018145772828212809924287540239119408454107234488028301947623756845391193917982168849671615540243718460109393114379235181829001031484178366998481893293081603814139456797095914092624760299619017086940124135998074775471989011123577337088321560574145805914827778048980930846320529248171759762776273496314465426137505845516419295051804554730866147551186124720094296531530616286014749723143413339104650038101564142279516771597525178645102315887558619662646286477385718951898564701654998819446009031474964174963131844167369593851557505233998206281359817641603380474129153122426773707368525112746052074225707930224501357057456490361770428075968443835468820182602425758421134823862677157426669012731630927538621868378620400247290455114861130283211614063154495909011239329495039781102434673640032585318744922166335903306149172850284096917785170271058058731197577143858843872205936916196975155353178913319485240262042239482477684714561082392397528710276397232352071319750242565876968812340903397052767124088505455672479620615481209087219985701634253273330720390540470210514841704060837228784627675503155131537174446749584696267062834879863379063932905250780251241353560624692838328961603473757704364954739794027105865154333480981377837593106472753252467239737986366116361210033200828746784823891166489608167298903682280410487673193705409240057542358599719080328916104745503711605074403647901925305195057433531652956790921327151969666842171828438424231970601080762560876767793364115158781000225175633534946098474724481803571734713230002317477570504848953248265373735791498198786362654059537645213382321953389947969017236733740467929367615297773816498579400992757859730867378852173433136311901400144552376152968248971263194259051484328575922145916317620988735810029121794692532224232028901666588735495955758638289817074123300138953115400851771664319992291232167310123808711899351755613790441636596872968351316416608154871393654666010512647547823555276759124455331686895602913184513184024562900425424292937505565636979704310547349501529326532143643421946352627314017016557360235251270257833244540296915915525130820764399604914015677426251962700524841940304653997205907397361190336158458900490275000743156998668045845199377698672322738817970307020498510035218548093184497143483629958574274988953769265441329531565118969696907203986523070349199783298518196398121503979373171771245044469389768862476466978141979147562630988764727742596735077538508552264132167431311116254888360344177530460806644622245274674867714849540070738125970804146348114333341150927796797608833625496853281035100281481865356716228375073497895262813631390614606117350465591227855757624978891970068009430534072799856018160474160675626723066521460632187840692041179745768039052648081969002317092716334103495426699080473537279862125812581937134345734863122722576618890199248329021807936537722654591982552796419145955992752714591002011725402304197194376725214962118830105465203660034235145395984896415403224589224968443637982734846388545366862437323757225054732324029137350958666407850407288646962713812523976399944073027837371980882598477559344570016488765423874635739326731383780287915591474451052204508637358071633814350272129676233942565508298961367471934062655201901963067897466055349824646770699294684875296447802724119451830155032623944824231503169359241889128024813607984137559804345566813738330176766412576459200764912418595930455139005339753403363908061561633417532812001217501015557473579004919734814239445258534612909115218571795638938262683380401884700346232832806945415628148699287801685723891250885672118285862721269160061969819917876462765792712140955345799727717730544206800604313100606401025111308177903538451725877050249270443258357073789397359436044844797683089650607216711493651927785493428026207258318474040594320657796163698969861966928460137262216053127116280730056285316345297712758517126191531791449649558205222279664817920257065490225459595043259417591881391752888648988050737960779352860129706756945191148661457727696637396906564143908002829989970522393355872236624836577944890756615826948707574052844752079552509630518234875581724393785395868411771828756313539602647504191947312239954887125584676101428727525519023212761742400828734170322555213581820908272477925348624953526754069472617734366669339770040815864049608693932214675974972574148747494640196107758193213667225924600534362331740535203205507313364435492835440033952332946205153930952249172839133579440757938050715703490456510637555193498366505876742125944570907662984007435961525825814132650476590736787685017229686491421328829307146997749254622607849890681199419127686729280121752115256068336791643701093230861258090453603466077214279143145111693969763756599446482831547032000236597264555692842507700980024056964942668090837574415697507134933717767985773286225953441620796182462902733211676488615588382557689198487112433940236110874242411549808354614065084958658612973287687042706824105371181188983480976718889404747987782037578596729578902569427199461465945549764575131068580648528485584331120922525847480827328853762858158049327003915413421535857299289739058745849619974088818275394167495224456383235672422143336490202405675753057851027628353792570814295423435075521989105990129027801242877575688358104703721168175182193117906982277357751357136960885371957356814144073745460348375602094952157642805934976660332011611462764923838973874049705636776752278276444035934305857222706096316912640928591428814042929729501606720360800017488024928197701324501201566974539074518997037649719678439125261313050362135060475156545449336569661051023634705786861566732529754918562925687664451556254476144614693429534470776385264825958493440298431362847739553572121128845626711553655672635774754483170511724325562168805094347242847633445881592872183643857458319775927624956657880579802699456697684461492436074191809739570248650531999234920433002764413967515217740746437549042096736752324958973357524216099510185978520451937991721713862280493769219111357330473828392213848592135181520564583938141977264176494247444617698190281441751640612572651288138189896854508735792448210204100934765010356273308430466109240863031050469722123911773556013225759996967565124246188449245155704404008375120418866923057701408707893871634546384344219014207927139670797592351270766139033146816025183912676953399900178628939996078311173122312270036728979482926931803558890059044552031645223900877468829584313412679504493458827370284601519942245953591861468419818653017578864916599368054609403154957282718224438966179867756565534818411086162927128454649193813811931882829727559714954611742609946163443272866798548406995270206738996066553796358468514185821273254762710170692562045552594230991745008247767697999434324778507732004560653394552783359813981045234507288426655123889021506997276752358490586341815627309911820005810881837214989895842711469514690678912043126030797949994290881040418092475919219153851629058490497867006282364929469549837642837591830305928851288899789668685103614192336190780798840835283721819783171888495554487286550059860437816794058724228005145940887135619526760560087076783711743730090598548679026705406331533765426137899347284784268871899494410032524001705623096792580374311029780180047799057711373416285948739587106576299625123586648223354606299864242506610296118226006102798002260441943393414472128185615488673940951353517610405902280717175631842607021862701377445182545421894307358344667609049136898435377788897761819338657184322590449749818449292498781542807895014476256391576880966604959426447356730162968722362253108776070698595787771887810644846277075619313248490254677356508282866940882151329674090748459579032369475571870972930064723306556664615626564182761408606719262698938170890500508349048021313734395223919911512422632031017542958336934385802113570896987772912738934820117920819886857829263058523329680015024252916045282300965499615265569728635985485316358603015620237610676812829533644812815983535513046200461625488121502229464653452885367104240273801997743735154280199871692280510964330166107241862088273334111115323621523585037591144790401736036068229436533713946693259967775169641446788090633151189077018717556132315477076734677240478456284308481207296621014693051736767161489233404775094636539637977954051528512758876790442581193501696338008990212129021500768570467696997394824384377172860902345437524976906984904698741393274245079205873651535203505211382842154128568171490115923671864649756991026041173649787284385565463176385643856758632224065270787904445898204819572033464751151839004495812762877031852161460112148328324934657055393461480000084598963538018993650199993435283142366520788289660722778547414933702793559800974050000879659437818005199473239198023057597935825983707956959194811518482406626895565198386211792633497411605955379888134203827111164532295116260029380455210071468070675985174315326594964384709878983321334552679666166279533480133422328761249981398171238961751935475446799992372334920856811381975474534884606301075979881864523139743017033339925585903347392440570332767322835998964704847034790635601692948367477085118269386615416408548365802103122353428440501802098588809027311133189814418286588314562432698362479529316543425264490213092367621233858976384965316060570629606506127479902031358531166203622898486952412231018576555972457970281187817310835093513058186337722847247071656625616248060012369550189566239273741745997332419418827965953921153298801640964028834468419370256198375416427801363039407735754131947058697124094560485373875797193892738896986347009032847952824150955515646019101059241089320961813235329474952797496866130118204870146917564737875855572717725444615508385068348229037453857036845124798161234600760525719281624209602850791110419167432957270529793672149355704174410075257129095121760598209449908734283912883853520866230923021826832133885872148794171215285705504999821901221137097795882112400217833486871712260015101399729131189814333277356423817022884691104711901094917885093522163272492229251345883160809520194311839012295656407611126310727647308421061419359547907303888046102896585392005134137922597238173613398187176295153610854876825695466999380407896063489135299477354063504757469928117992704267089655729926246332825741691399393005440704208433156933668398794719139353885473556578970621568185057156882608557141884872827886835984431926209389980728011130360009177369492156128051686555259179860515046303438234205027139270981134573149867466291848476646269070106407671009072331259781497541878587973481712154741792859562424395271853914860752075401258115664368839036955672161339003162242289291940734818551584781400247057519118311822535221437911769584468874028757494783771302145222640814631898186528016816578935074983289658864607676403943264333974740603936137879957951065553523584185924372344118437933574329708822539419703500727755232496127918171307877362822028179524822037027769869017971241195296135633130728711729640763174329385616113299103076338189605117946427351828748832489623857435888343480859108152062312370016091870544241423847122518102695538324259955458800487731874002692821388455415337962146776448114074274227153286622746006923093645710080291482036396022280879787674986140266602128180159946132114111929414490094487783908036116082871265140429130632399478761074943661382884067551147242486855889159897310007719132104442140746070796678437026538366541981822846473039137109279246430685367846978202634373760993564967295074622839777790871567982699451234999579739545382344599509362536644320868838481602725036497672445352598598504226288702051296077856811447298489250970569684468600697580349927373969502058098823118073870375874922664054941247155041415520420243733070246726292666261405302586806458412176672390887120542752538954364698287924674443666699136234816811713693765617121224861429799722746394127395343469492121844475994296395330496129555068097703834497812580037134209559672014202383238415535999021378639938447971990650887901308330635978140323861913058094601868482583310913028316017518583622059708008337291448349432378394606295844950127423500215123677854673867086212566653478477326382542972020042815297855410503888765992793501563042338564511375851401010839284498663665613146039601073236253383617326214239579424546170042979731457697538968568399786366980019217368620659257036528399459235709532419419210168198304280692789644357371456170416753197707679057562425754484317254733664097716934767412115565008172007135877564493736556324988872953662926429453662175176997503776383228281214575665967231727928691799244710815096274001863628132491730529861063653989759034357260896254029636121481463091467967798597862255962027722975103423964289433778679723083645608472753827894536125578358012438133227162587725219764289647697720651024321856190802898960600644473505722477420115479118816597761318341295781531070150805423331622918823716604821053128492321984967143463027822066086385588623284345790286929738526600746529214514117121574172233150787398677871297308599990402228501486826418595187957632227772018986258799117506426811724276788721957278826915670229392952700748209125721355722322886736508122616535607658497823141705824312824393443703599055307991687852683501559839837074006936351879692871471339378804263198510494867588148779941122356357133657863082444904299422967385793023510251939990983323135634963481920472540193657562280622367488985120310918713707084789520461013393585424390822040174020805776421335052274124049553499020104941700052050858379250127074366711500093759115026589443527783308708677524499746662880018713285147887077380311975943431194671639313781821396084384491726689905742125343472187751059309465974574436433841945149041215108742384597240939740127532015233965508839854975422268809156820482757367423341334743987983865014838081611300652105159356150585948834890109519238770394321282201143450364027116447630026422940304929236701248696722872544992998419351287320919428778048455753610548350883269177688783695968730096108389649903141049123234813874234354784796071596750375275961696434330652186782888787675604319616119945187312926685699893749223269426847794069093890394567338221316578551113718101604669580309408964429677661224735044693212179402680414416464664445343646127758471768392483633471822122224242660744898332136215087627715749148362170059591574804267435266992855517478279643731774404554876315912488532748397229301942545421338555506251731600764115001118238258763372000942178646835060656237807859775379188410425570630667624587333421448000979528717139380703872867199252339985923355575142338695240522941127436695917054917909348293866078512208541058252983230477623399493477018073358358416813857379924778617314715021962458211168088755771325958196626385507120806733666151896454437555590774445998387053696033073387414215820760326490080839241150003103449073509840921528455910911915529027426651112623908373994327899573811181292921597087566443790305207875806655382568859425770330875071580784925346221541260606872742611250644685385602620606139811291494934384597039057584286205179020343511889721527557215898080681416947045792596226417826294049020443099408772740175315426339227720339375469579892220511557004069318083126479831039197161865627617012871498696073431832816283831641982246651162981237964642777836700644986467438240539561773288173762369673144608872156789418229000088067623836413833992399957440352705837508205791994542189753024748194875814378826653856980646660234137872765240072110956849556348203806999845421400782080040801349002058415522486221563798756525612411363870161634329739075402749868720481301949159800035506342762552973248321467389187728556044982718074614522158763082291390785917549540137766255879445946422351110249449276700484048568103340493825704451595602890775741971590076641543150486413270468059038232328487653605167170257192443029422421866029801829834541560807616575495916888131216615790035829775044556992038837063974258919335252935393526340077047665339434237336117569144950745460412535644995960496191007404172923793205243094694240726139531699075032656899397707821618638962219695408934662041915966578415338565358916325383633524526853615058374583733199638544399406036042082189517039458691259771910978715619123277257080322434482202566195337564998073416209594771951789136017427187522068801589234976316721668433938587264123962283351133722953348753161681617315843294513244497301933403664498050332046315115936883411994054139642401903432586744833861001665085886681735783849904157710530984814379235260137258898935841427540075568290328500997581331379642344380039239570121148333173971919383769683754896267722093538628861481630286485870659461097663489218712382528773740490589629889462165580777607390919638330696715029213408321412068205190425679262235566976758998093292466703819054875359741760083620555418594427543147990406337142003767989557307248002126976580431379486927605948813482256453352418595232333027664907608279888988015062069952265285489821603401000336984737973783271383256767778090634948004490338526725508932267993036832570328608714567491387843755218242716000744450126286841049722578826487866155184167868985889321106522587583927993199722731745628593552153856819432787141140221056860392220094642883179915739645190097870359222468090958408111808489604576551710366222915076313538664428492747668709609786574904617134022087788486195979866858716153644015404912614037721663486573594134207815694029588148668215394283572174587922991299311692011743966295702022726340833549965310243543676210948535840873475592708915402855656950558677746193643074903974804999029926402099282201303694255268300957828810693775752438979710914204437936246935742654719954369137784245828582651310872820219977324938922793368365067080805487957142465910273580424913120476549482191816778710140637853978469107990231059624303015759811469597480972107607321721011878916138221082718499350549523584785178405024152020985240891797723973352859215786414509367311768022180533003580369549028222853998758223283257160624904877870153332662316135699029326547316112213763725869604257167674792322089677316889946457857715845385174822299144538585552156091502279365948662254125855896611527237865292179172258898832462425345871227487032721511666001457349434951328157889325858219288052852890700654655829856312562848986833340710731901957495298456585682947181304863675789556947260096583148786307320879522846736774365549276158094281137525429385931287132440550300397010767360683521278937911951821126210953776509302075276378702799414130457886499665613891702576137188967346315614338401070212962412655501246551838232149045456298732222671244691492566087448823660166834619195104258306432904066339571272068548911743135160850919966785688186287298977914251172927424223639822587293105592299317022931052350899933628108916049070176059635175556714205501228047245192832431751818523148582230605146580058164631296738570566565036836429248205327566704128750995048697590578713763602890460532508057232568071355465563870947053383721684706014952320586360060698469079934045797194745230035400216897951054533123067214683722534794787524492217873538217204494701162272457709279174045412288144902077982874999547251366379899956150972496926460681852109803758459288142261766512585884337292518016474002054658239172019522597057249852255758895574560060834052853661471120361723061106199917459543448921056206904813844396880578520241161823967203696183924393121353160629416360848163798578682498744353890474305535530285304526078665983196600100969541082930719014706162252114327322635912669350602604499555574772696294112289208537638704399163825569054853728642288523573356765073310286908667950017505092027362069436635143143951771657806105566479781012239349145614417380668123331925806602531817959003892338371436522913241147383257651415340193560514222351216067209950242923134087195879091013854849402460050054492845220669946333855594576528900135223570086839044339569002380281756510907997904949106962550576004251282153848250234355837669632436169528344243053336124420109414926385314326962888900915440507565117588076614087838626595978067669605975887124690397367006458328753299104430980361067816364144373625408002373912422365728869402578084757045518329097213241818173482380140862982227577382009067490833726646035391538706723982711928570283317435901648979978051215042408194243566729920678204276723917903833800620801397584691623707957374769794525221899916412736035156056344396938692936369107859093172827774954451960109476523828754551474480370755373550782793741545153832265795094119485998823055780786276985318259798299201484023519717665805741601877722413064687008781529505796550839389271531336234789593338266144090615978381468432521016512224379231685061995879284629854173546306831191054935053865432791146164628769767199725744462727084821957613264764137845127916867661901026640515746239484753527193006405729213836403011169854467113978496444779228311946073250587421785120490279931902662414396005053031255017416061530471409836296589199904361658111897637739673620740183160765042145091107119421983268246178176289000218705385062884516387288272001731908802056249036055306512944371370043053555721521066020793611276292555806555518055222179711968153243584610079858780636868299854122684397927481247122286810551198773074851689950104147750113647004639989940007370838393875115788718891947797586860256017993100900904908190483168625372186499926035812612051757822063571281475734318556629179373950263649438212880815643317605469111604655240257879956787947506614727470736649266375589424875307791614082232445420151351932549069619657863125350991158674808136248291351881161385101822731738986272035588259073269942887903142063831327866939784402459778361547920575099278795369356290690204380457646255055662522643987017732854862579919494158741009077594781222295352507935415497721548571233544500594912509102719065845883455101221391565115546238089088868011878190485896117862163228153394977704184241790268809161753928630219900372816128383053328018089864209368741474968347570733635233165613334882991217437639732871068120238639310588226543900364747194282605541510234389448673650425126697927532901101338809291215681564248081026793280581362386737552858199357507655405709264705230665122261722829590011507169776159984352740615504340298163301475886324350591526407138935833706504031989067442134028131428263986209958027939169906169879376780201919662987251279055439712053525617842284645627203996973153363683977671418510989155415234172672777893873526326748596203526612603200459157050585269053230062648972836957120076464337579896441200320648621060701407798506141876302088107181702105197735254960111348072861435992217194448840519114221090817141431256387296609657755201992953131596002202291642948155931411810822510089055311836723639105812649379902621198026780071830809757007715436273323917173610655648865012229482058467063572710948453683751046268185629297829893573918987309766549521060441529907362482523344832940855109016841262944606884775903075261186881300220627819776849800192482766314031609145272096380986680445059727389853743046633149136643033554112106788678593508617366709533111509933466249967871719299945896150286794325565486321880682272981282770502124452922538933382116117416422565789416432475578497345137358851189154428557464543152348444397783125781184375733313552841770638792790249576468272218936141154620808301736017523843029768461756672694031956997081034612646377352605213315319685318771505825082463458946541021944481590542095013174367139365557683285953997800299844881420342898427481048910522711424696083790221866772026003799410512308285843810383485218623272894126689612389259849782367076340911487460528283310152081915566986095489121175777983376869027171788808945922085939046010569223853917897494337134269886836479635391693383169686674905543302616553271168897599886697887817849872460433903737179289525620141464400857331995823479509019954929268672904952409133888036165779986784920509009730676827522710509208842766710253751703041207458213325023105287405744744193695660062810060201998567272699423396304892499485402198800285102210868972423305295440887509942587965298789408969513109195582716530185638608945506563097908483502198853168398501811223805691673877034809389262318854387493703437938751351070566030554021414371168263508229792057137325694895648239647904869647155034340911789119699199041734338613451862353797104974379354218623165360166556260651163148131659052184627317797160253837328241802903901630820911122351751607195515621227603929315673994151600522630651683732056572098898629694976824452830238987985424385488724434360553099224921027543938716256397272951210701254142759993759535653458342488557124041427792354782112262299002300921509707665914601820646874095989403824886279604970494357821225538133907623350031182413112094399514655837130279494313498194749358750108588994261577099148331035007788506608388490447902165914475302877594020149477932172429953492325843172802346258791303228418919149623958720441881381511611761281351215942356482131690975334194455626954735050861689266014675024744511450295871304997004659272235625919578160178641252399048285557427564605595891604855303746133734615642419945666218682622521752022183402088486980588887070520545139924679264826658867526930973614374417265169409318631727366100111401359112027739911256445828002149058337106616771381134337259660404915497181876241399016976531369447096736640059044636640569548802720978920144001743795496736535622090229793557837483368222664039144057860820941166253958661233701092174776974406710688307870382062524276757483557958894482381242694376951200921673453200154390790257252237530824378187926506998734580237587937922527691866866793875205600099290707890983679283932206385359334795448625031768828215333998664985982068905998679976223955778616680734663647906489371897298281614594003654704756486020673438251058687047697136462123421807905647883912894357723707727331116121964961779680039254895995444471987771501280863513505532106542445259859446559682934494809667530703257051220628574038537166895351866636260712770570581357847352136825304426388745344357346999509362007315864660756823630688977477624167682633960960366136672081666935599216391853063913448586001818646441179270839897918662083190346768911744613673219093361544066730702569078834706263191545081444258794794513916051132602043153699006172479347398870379344416822469262348492654163602731229485319042416840716754640204271191089741401230959424418112586356890191727967416458994802910383649090057197007923820144490756005427035770959578687092324535862331079945663330920443573135488366814977088931458194513632122128596144026051180912035989331310742998912893405405172812226312227187059514304668039323623432815357004053045696761133142074958439698371748570645371484215309486720485637301696920537806619976401027244957728406721746415376900008411232155471777585786602854639732764573683907637245566776900016700784171227062438054503780736392562930708011777234116097214912144001403345670389100249256956392118578290631637236785138972667326506153765007993748106523422172967662620412493419987656523617629123431598269236006460082416206326910347163532440019398586796692650273912026701054666042372890130979132962077896313215571652954395956598777786846986553587094172277043462861095607744441884741291381638162702332312245543123486103847743774758009662056889310572303601401187408678265940998994896345378401242760630516666267487414666446218361714032694940684332881195627352347958110847620450939051105548879035945792981479087924797155795527023156404532398302779220778788799154782828113030015382584699028757123934685160014143195850978731702475401910855034036598968022426716807781238915199093668714624698133129988443663771807825405961642809542873552947613634290537138059846901845641211771907704664255405281793604510953701663880319019554593043353385133518679272589902434167862473399572651163464598062356508367303000573019837210459897314478948120548222252362658071740871874220755252468716411388843011128424053171563591716227715661391296990666037628472151839749071081172025410540543176791774005418271912382129408893717935842216188410851195086838876535910610723575713723328534367303859212857377945679941920324590375566116955748325864008276667254631664213313901988046138889556063502581670502823024338318602433373623836652289975369949474309316407543774929977160135567261608153157692597716643507905134366623990622419533995868464110838604830749673020325826565627824088625649166357212464559706532000781856415269578278096864153786277608305393352776457481034683487609331899022423199961531279895433607426051212121590592716348313511589799209525759967620958651256433209474641470661031717539953208660103556536525805044060873745211834941318459787602769107911381807634585453944948737943833657002021413180115240096709430991811617751934920876977997777785307697610148897618872486112257985579653528686151174407968477185994323885792723855161102962013079626778462962911026407077154085809261374914466305623979837095580494259815220501796343460008296544340287068484762130761538741127091338925588357099696660528433450241010538808162268506245537590214730613318729449909224509675129266246621883022896469832909889492935498896507914268232918439554184076950055155367992586146172355924170449468288036455373736646291307416661307621225436820145296360577707859366809533627728604664046550519626274893654008501794945534526510882618147618179569089314781008728634035868600170913134945026388130756831896679750615691374066356355703832024554890940649987308961716266839923222583431283580712236002602614899536996631465924183098378700859128934364376385601050145139075413359771985327826993445368004451059738091737710346278208526701991864794015830918926249586647618912114014806752022427109937363773854719972151119065451739622992805084195082740132467847786462743974980442851343703725078702339892313763470420568075512156482848524027337649216237600806163840582880823516922654696250255029067717260691951674287796486640675948308159382179020859313694596993555212695016732918021651807809822458704871129988689564669442384514402351655956583493811238195927188444423244558782155266893200543042087607491855863685449262190856210808130282231307808513853601237587775672714882053917758706631692710054643109653644098988590983248914438501045462105926153510698854922404190822668660930248345458840471931839754539276152567851690773295974762091153166765781247922126255185366228852369974561373975339503702385134260317415284833154368100820260693422583992447355525065132052290802741442512505835954397684201434393147639010820268236280307575087971973354178455030972701938992856470972200649853725148382283160871194278375241785187210496894054197789316236644626667293793437239983469487259094720635022023760929337959025227600471396280346867340113913880092679318756687205422652380762899258318493650024367206736621971276939303862739038504356722621935903879843995842573947174497559724606467947439160569561588576543370409961083243885909032216061481819999507554187898261421059511589769790191188562177991173120694142690038219738090713759191264069425216067393431983930217034814225925624746580419478225132371036216710163388964717528778613853898922851519497026940543700769936530182035849787588848355377355453310268905638854869102519423217571887172184107417213473574415738567516620854134574508519420541532548918678449707750846251176227455502613682737498780796731076150345292858470126140978833900540634667072071736893309288665374878066271756638061220621213257141700673741536821240781267123947359815683486257021427141427448718203937955580549329488776590596136030982061860638675005588177280539057256542005967463418072778222405423702456963949175062525890066965301178110342771536952072530394492621029901706025238286660814092292738132695679269741627368299352978732902638551660069602514916196538076076010482981562039043803991920831082955850708127219302689912369914992259103177400517636512912454188346232642513620142010383735200136227431186674015485163268955105852734572196603378414525437838039614327405463685067489013231981923479589748589266649389345657622639147452842639486487744544825377025583530823556638890779690372999204146494606932982221792724522434403273019236889304697004295346200086889088889904638630960194671308816193423851736076191570640235947201475803911850005711119435639184179790796927150747279145409567133530322178919296908727440590458088105353898102748637433449991434170211863219440921118322364784353210825073057775911739746151501518169678699652782018335723922973390592233585836855380844327548575114737653392792384141866466940478916986945590949701244426892245923962134531290900193229517312985313980841058392542848805513615068138999300118620345267587169660776671948940026857537057781468653466816578610457289516824122699203407969058045386994116397882633075189143426503239499647069863078420482053337908628989545831265502080274170552834165535077356211124221051854454012450140787528309574921048133644676755131620485995376485141647944489440666260729910637974425694159114814741331860308045729125022003221834707992185965301901952676318398926266702033879950087707755403188575370485733659693624449751744050588858778234976134140072532952553085232330009512041325580623613226769759755887208802329727210384250475701406963960665701168812247086792323660649979251331282646859342599366215169408095004920908651986386682648135527774501375837818764194456575677968849637798835540725678216783545165048680991555184980804838079029719540199493340416607945161758206250607816078119850093157106561584481088485106000446152054974733383804601560145330367150469445536689314775256262732883686635107947270850162135957356502495294407562359152124605580239463634548722460904593115707771003138890422796150040189957432954298806309108942629274048162960148596802282537257591248739816013843508797681404243274599634421634939586015129030086651090390444980995806713816993334876257364001223969225798173849741188859560217232834866581745508617617094032948955784455561011355483927526310840681126146222339095333794669772817322188810370068939723738092386521716346971083099575309203969966666058315078349921869055552855035376031078610179802872127159166714156622377918774795568564230431011245714967502745230453165266854858618023806220231642616198722756303736410466810162544718586438584063979444824360258061970408494749128497377273652090866937022222089173472297405831312669636631937136568604028830782189007218361511289356345532646384241441612978393458127027422887782953525302647757883074234917844067508614154986370995340390487854885773074932476612533739381486637635450942416295470058401632366609180150377185700351069934212368881845803190742103917806960627082722706648348213332777807836106538853820656689775206572969808781556173696095238355999053970273405804417923530905735322718899000276817482844433819221906843917175262368172731600552103839687051644367343941736581958487180385830628245406266987167842338333733756775356241187299595507600397657032694133450000622147595620840025795489366070629476447965641627206272791594693282449151348487477262780545104845705146277047121635930544222541175005173204234495656697312102702005928482395836873174272250074878696195948828293992201272243869902285462590307383521918275552165534699949465614403402477710512512629915980811347217390243558116204015421239044621492851408264783002769790369376157754191205203659796267747964836175053491319841972951342010489637220929372426199365729790920537179252342464137597533649530107624543289392766405941941660070510009704092062599565600274378040327219000209477278285973396753084965495255725488703615139222895985115277886839844586750448808236030741321725299201319987987655347153337537836717129911241594128170694610350316069784833703744336231372341827898957928747196895037506157727325956745497994232996265444232591254066064421511550283097610929794817392593795843637464819183538378328264509807929813990663992220699895995639493084596204049677503486917358290249451234436705105817745204657368019282019941898832502056628865117550431902669147559415538230726843685144551775672352419426939438762414637353092135598609478595618841843927951566106323806427366443238276800538652073776984735367843477875511218916503600958869158641138288419271950632532221533028166949170226448554517974341201965396224201466818987671019759205060739953857862360104059926583209059708184737093219444379503171307420088546587678909703721506160204712411245458055361261664717760911807716120236825601321225999234161230158768702563253960357035737519671633701432313870191658349667839681253655447872344933892900846314833019621685741869113270868342427409268726751802938054005124536997437364808094876780410177290510390079647153522919224668178407289922866303681500890254221063558061539626466957848071864729891631381886994596227901430899365164447572424272259500260991013435268164980582161023269392738681418699548855532118643262954508291849112019478692992042455148880539130824507810268264359290803349740145800360639239401287638143188694087620319848648914546771835185584683002050944520703778180510426627455364316989004608022182275803020997862870317527030550905709045700007042297121332345260739135851118140154027707981505746021491074536328000594039761918682430482983055256050479494286788239098584934404880825607583711586936818669100742535559933914596448228877272978961241070093826312971350279474277049219837602182739322906104581930952305442171352168278125585319058536605155643745950020663503518383650570316987676667415628120575722928286542470670243770516706177588281487199726783005262280040560964515905128137264859149769570087879154640761808792212878525879554287553462460421626490210687702894205606328648752530324155237339885137848736894319697328121932962593528019799618729433835070859415308249534809270936082272722992739087290201095984668592775165170106797440761334483387482990527902365664924190264244162820035420855958345498169669933450184399703382050486751868149179657926522949225657738499481127971392097598927456172435321961356598706249925051523174217034566564724926294837485159121430972713128371815099665645123167293935278945813734328057002521514937904836043629684026203670680869352532285525335721937682327301179476227701919716326251428000418067793347485798706643192266843888184025339000461943765701333247288521482225196549806045313068000493777420950020571831417422873732816101330067588859130026668945556095839342795701331537434334808013486558850779334930016096977404509963601961082961109786335776735601137969290020337086637316750733348530818010212561475725494673691555820246138002874398122473445642694916596967374007301990922814733201986037852657068781459504610051955166902410251107778542938679338986129471412755685194230226397961251882850600547527325575789822206319977414541748200836231571351718539339775782131266257348114906705487973494052063318052133528784852392041584651312387869731054917048523174722450251649677973763388408344582027786114264998744513838591395490741680836136353514260482722590845234211138025621446126180610343036042908716249067655145153556099912049625663932151285981027649860488230053476043207464024834544897676213262900329663293586549366799859892558374985229252512384703136311297992829627273997723306951449341130278484221690674133500110607177283082667399191274824969213099947553634215686231508780767495181233315112555035520687276853110036297805234250556310924511440084865859510670445766695436327496685047917499878386974284571851258646666731277528829755542094460085258769038231437524149172938102999229430867257045186033314267189357159505341808352395845550500232079793353830524474293033048516287423198000498487424472428483390799475351332764668595260944115447128028565295342293539810091161834391469754704863909270358271383554706921047537044855422587371541231231269595043117042777503703100129179465209603273281232425232724838959782963003804709764817853940849883704784381814420655520601929311139774842472996757362959257304675553574059581729703503755301948393456756547372445034553858014569258069388503715818903922959166946454025285340323743401585533676681868397555312493500750847147767941578353907658865782128271777628260096294753598119175102607191435784880905252798876336349365913577479599174370477251191942991844626397828835105798798443622038714931990701703327227890275745958331796136795256641640187418575431519019902539135841521310719967549180220880839052555904224225020046608680685415708193804533409706975246484004817991737272329806650260098116704527236291959783348154156778886251143295533690999739933740727099263785552026603096185517123318052003823809462312949023270049109470542527524106501543732685154284943528477515208153547711187502872911318998327661116407353254965504696112892110246530708507146547772181716469063646947631097843817472931297994113623629951828262604794787583118268242524981857246405015101983779250132013280304768076206214957461789463604149371572412037212477579804400165484644293509879073581885302763543280344476189827867567207361136495815949467248836433106001684281460470714691664272281105538473325104582680818780106764190706470522363337511063516212520191776615041710384171025916733676697098344074782820331323665910358562412251306101202094551884277030747634773235779712912963158227061192998679773661408967009900763759883233856118610561275686524611094717866765966001006163929933940351086300437683999954078968667343099633870637663359891733800399441622373568030179157988652308251459641062907905440529324039105868208095823954176429575726620107105194623030734663046080231096703187310816033474002032054309753706213083297044289214205341601489454344770343036500732454005151332618625636264123776801128922376994890929776413116948276500365384731951547472930685654250882131929566887122230537804196766932942629803291003511987099749667814758383105450902476457447541536037524164654946691624747879286258410472956485444149876007595392363072377561018143884695113382156963032278864609467206119101917017121669706879334388024098403634977595553849428725097295118583371289770844015878766405118160400173548742931546482711478840362673183048852492920045633075499192610776083579981000451878130135765039806655845899066950835675804963794187180924159717902211245413825606111681821254905594217856185155318364096291133255291480068484347038012039896913919297813260877270573506268191181631948872870069211655401321296105839075780649270906559093412914425263362049437767588971367483531557968883373167936173841446060454753712728194631717694676500520763990741119394234924364567602910570041581073383635917490364983467155323122497754529026822876833192680167591505567323386944751055441167578419892578386214264874300641731016002365232637867497606548459227390133064836015511125028173126726595447930745834789079790667138770584105252028790498701371311718674056517678245521768726134915117636934819968192613850588299891529877677720170823110320012158201424482054013415959906740025452182320048630802257834051678665111753850030264830440580255130572835224539529800648727290171987424790946632764486568853741764505694387856071248232848461762635969564217975154741723378796276554783603795383059085445886242703241851381355384080462402025760973496178579007782811981862664364149450322556526158741527348318185698592925659867985779273667263551100151796227686385754838052325634600706445711337740297182347512106305946402616693207356031512204887833218172308302799429176499932640674984611047409683422825913150672077080459166384166863259964911139014924958278507587831468223642478921158126250237959314422635254406408566911378955454020648903017394048401088092801602125005053107233224179272381825988648927190935824280656612431844573461796297933067500110388555796605149474569952078523034408309353858655979716130378471537712415782567843479695856330446862736231659462293888441933053289482236190853189817489904556754562930689338108850063547605865072195112202602382849469511008968691519520227815427729701569830286230483534966606069149304363687891199735533210561841078373595739804581123369474291964186509454404277208755145395220725341339943732806502072662490616802485013032000465438927996838111582751882197567341984197334361684286509391743105997767808268322281709881989397604779940832220661486190684723151495604325114310486234181814846438242005418681680339773116664543640724464165328344878286725983958693457675156309964738410549532235487895717209382572827817301249329896131371145240249590405705718445474288162211382784910708662371941437624535197658430965658354556640482220258740699195518810180884503044704135212213221314362784112411191750454162940996644603191884043146838603658699673548922695265138121113073880872577192378771694797157859490757288220974279447636174279606733011375426172477426647164050505930924067757922201498225917342144781272577559856470007028464511192029572790447483569576967401946183116921571744212524480737365429574752237244931003189004319994757421220878402041607032617630166515203601623474866100439537462790727259334951919780177205780170345990972890700904998010585510763471538988426111816411675886863136762883274932800674242963722165755734009664632829561451136564671979176766293866173889000691193718711965885595794009184259340730290213207987952210372385196378847764653108672923396018426670228443261252918659284469193161213723703525291607932894457323761708573754761075549107068917933526227732064052504162588403457518638287599907501739325245449218267738710276052969770525694391288049708160494152943810489255566547530189048810390182811699250024698868420627641290326022660410369846604759178697134514085394361429555063323436349110592400963218244671428435427379230580848172920916041782775714491304783587081797464801312616451462424101691369893973491506965419143038315302677398930983974074361659194347608765875409679139445877971369946384641676827040887199030563620156626483647691913354989876400387483664744014039627850821536942102386855850327729047393020760694657070416777088635678214125937227435159396894073824100742531152748823634992378022410392381157237782078451558463721443188729181578141784710875777955074588897230472972154249879266029985874111515758991375753992128711554716578449946511957382528719612118679355264327819854666962432869438000243134579946284977855832761205441398619140032497071748680368402485089538898023834535817677404311527193650577044766881135868129910117205534653997852865440251183163537466443124685541709087359419356640884021027402253158720465973930921064218394507080361840115535725352285382379136263939688999763216956882214912636158450846780022408012146586894991757552148775447967779627187823886810418556134066556752179313249574079970055656085694742465889843453814943419004267041696718348259330120757151842734884811280299505988569913440381874256657744063164559445610488744606151799374906050982803275505497098228402830397404454873721121045107505686488721019130093287410774334140644059315780626920348517627230973101961057334689489039136466702724351131199468010017817076692768282855931493089459702380913866570887272309714098797421104929233926976880250944682198857193751504830775963477211685775133519112814224707610336624963345415874143528833659177335894335972814823304128847533145749092110238305937612851317739396454206019151197738208155949870655550272316624460886726664290542406181704079254760007486638917679754912582685079255306704731446252805180037578097971031891269818510870613957365565758702355011047069420483540374460594813107050222323155433697523492282135196102503383460595916114840939425557390936246995408641620812884365742039482229070838519705568904595114148357685902912786245613587422562184046182909732617224557787651631741055477281719428976420670474532105767964378271902517674657154024383981436052747685670339893638434523822248271291482519060938423399769914544550494008789785976458618224614703714927330993887862917682835048549628877358855988388460980011638789425803402526692293139878163936672776192552929381086238852832330085411101321697518412401469341198926103289291994346707162728686818496796540152329064752538858620934545305275838100328012163137393364841057654830581401138815855064176630996033485300453068099974188700712912260409764783023073403124052767525329251607443136611118767710174673601505341872276209022832993224405645596669000499138740734660807125223220210951838024873184421373897757488769297481727269618626377685286349239279583055577407851904578040906512995186131414028828219766147795024950767763920358074198715884437522232575841691265658736846163864004072755897771892516299289020542280882413351809094625423645404654815329541169949406819930883015539967113031069622611546890789893404306363376223283713923056692307720298486113729003056825295302376139708546574654784915356023921694190840024870824445329365692135385337584146278138808192715295419184479916175207882339584274457733793427317113974687042604859488931955902167417819589119288880785134558999201603712429203928180097700446667413253231215906758302412248414055859639946300095391354596814829314438799951767462378380420914353692424799503353012359551780818997719019620750624094165221997190357493543739262396358137854103843181819692374792973137605258735788117913505944394895465906080493944100315599960257150161447239977020285204042531924925899442643333582853731619342819374163185624465088154335802896054870362582349022397158019924677747076022980036646660839505986418113346385529515684666223742117747130630552151983896542212704880495026417961663501798656901173831118618931510124587865359029497242634321723255777387899937341785864228681939023334098750022903580642270529336712885565043763538902873694372011125107544500422186380369442813365192097276050361940961559623284601565107261843724752966413522919539021312197887812776758713481979791674615253631103677572573593113696236139265051417585676281056583248439462265181719502809409947691531146660678701491781878279362749287634311116647718696991492817819549081109508365877507303421276088869971130750822251103620727229387997920793653625562937962043256212323986585962321517400308266632123155506484776340452307238336633449750370035065262607445821181135490156404242759876621595609367994418277206665193670439729474354910070672587967816608781801303739312199972540389640011104398854871776094358101350754116723911822960114255690241506434447101142845937663556432574844173447187186653327023864038084308285920549889927089619536195905574847003904103193856142187032887113230699911235914278696157198774266153688424265161924781527935923244330715855715555038944495078433024614339501101218788361776568293168521494121696217491076633082911382319057629179718202219293813800586943658814037235626513230445133042715361818860663397779449697804631644665766765833322253555074383032585413040473979508006267888096683350012362599309896910439323328115241776806076820205040047664772069380118700367817737193972366925917464963270638810871902929030895488836403583122750845601864061637867794114320250030898781468129007462574761910002619859694834518670489362115649642006587602646654997640693045962653461267619771639074330108399258031390326313259307907976089519991138313399715063395730501909499741687826746478165619509236682823770338094927824887180023572992805364188640438661723380034010990355989980925851416700758127995273902120816144811597075637967692323997281041236498351553526387489364043975695821112222075723028102042845476963271272006716991081456274393713815701764456666204624897713691821696527415038176313536765528617039348471606735802038838520017844293807220357596484901667702657890648900335854522732851274875432251932911065950866199947192200632396177720071583963259336979348232552508689578308690500740064010107517556112470680756482454985387324689677153150320646800061719785719450794421314742686878405487223956659396293292838553189245343241238031214853475307246153658944418365859212472567606561464434405037846235690763461376287411395967938080198118358725959211014461903681301177287665720789380698872463485789584903485914488682677567816507321389812375716803291986191814512707125876819285541063646981034283645470108227426812513537599647405907176650534792714359952145011000500996173803794216220099768155085487217611076000248520481153816397849823945448245765021354196509713584844841651390768716726647424335340134734809554200396124599562334853156542373370754156553278217668880198670162278522491822886503790806925448022125425909446404017833956267662603356223736516705707674900939358852057940848154159380263332420760471249504615527987857123342821501926722281637052910545731121925380026936995427223221544057077795220899564381169503431375273485777077371996690145766505949501429997791340905225507510086083344958809956307927622183715444655736255020803363500824639621965665202231365934062975017469599637857075945423270197329917047712768322323254304572574769948418389723454614635773212813237850161392317698460639988067588765541709969261555638262971328491061011335856081199725680293888881470589976830156866865970488021084063249317096440588902041245501494168365694715736342180578010253165204121717208248464457918375332063807267270869717960725422769052817687658738295099815626623335531206604121589466275595376835766915658421923603160092717792614738266921305780942955700472441288795322579139754016859941527303840753144675485423623175070590992942043618621195633852115193208885610206394246819390512400591231215732321539133249202126998894653728686598402204667431123075073590937841133912320588676373651078196674021576104743979671151033539204462644681578304905477996720187069978689130022692828545781233242845452355362883475191532807467819749259246337964913049029226527423571261879095997817368747004382422488431832857019432485378081938466428556866131470007150939443432506102282423665246411900522723233936970940798121748294396958368908445136022932025048363857454186201976853342247413688640703075919913554384558247232869184635678462524121582359805675614582189865489703209047682680598169214604583000154234356371821424270104136199364159212314781953302487116911295108808512932368922421991386448118853105083443101749181293498458687967849435116312400173870680267894309913862211738877653807403452409366928833084510408610461482560039238245582821477865605241038474278152347745883970531804274336778195704505609892487193280392714787892026660054662279185580137992091051981027404146828921282285559035670722921417145618550548002813272978971653641909202411506171509153786422782527298341917621844964092648047561148844067920865246682417374187037253800660025937698955993990124248775400881049290236203362512600402629696682074444931020653419945126247262262737768004196831586594885935485458579471813246549935966049462473157122962758355379670183008880634545049733959838396061823320847261709501483479771582689185435162779006159300369459182425364545391501013093971947406148422963631894486364439141903631020469093654866228185668198839893352045181391297247051976488210764226468710458674726637198110254737892611325636694655954538929105372843636863093338714027795576144484079786888544095467440736152697802546382701537353657156307981723508249997250556413597421391032697607300794344936078992400286477073812533500733553407570620911474089734895952155362857879101769812876667728567910146732523218451045308844246247480906165896275890236512163673699264996926554363449336817951245086358785665366114820650687740970907512032627590015201570312353570619428667075617122000901675907629466294230323017910220331071721558529738330318282602163792207361657468555045262919134582545264720166666107973890196762260223454752308403712263760547121038463783470947389484413748512257279063952109203282713629587051598664126428414972497766948307861042181895161866100247880402262838312839430595604440483517785796559430468297218283337260124210530720089115382450666701822109816641111503428775397447136732310971828479145696808891879864943875799161692264367376940922698620249068069692744367863318374842575385473055675587526356767525497334808550518392105109109513322059379669773355058360102197766105111722826739402589121131893817559563847615519268204934184414810580335643219301907626237747839771541082797816637982796561561956467443225548643259479373690676139193148885319597554708229722868108020167621436710357974448926441646403015869550226327344362637967170931857396377340342845901831876827090869605483386109399953150550947658499891092261608495927662885888089662580705159848562056051529638981792385622768770467937569653610114064479342635716476787907222623632331524362251288063941696899574674407590814488595619051966507962952924178736676376436717193641078615341424017699804991159249390226713540529110906925295135394186067796420849211505320065681895974815359994686583314364112278253881139694580121664742593412746183096794730458188681250141595696390025313484178112315944414071613220349764194026681808947629023310910347888511285490553751703574950328248210647740568680446577960035468751419340071987272635918774214986270638642981280847790428958012855585167959443687455771872858829617974483340388114903893774436299464352342750974288353339951784098802285751183089445420594142504541666989063660367159597467336431438901805770154510838414770638732853799846408141337262374662666976154002842777445580631893779047499646160814333355432674563618753142346386664991227536402087050459692444250895531154065516857480828584277199716816804843347205554589387886427279109543929815981388964729533595207816795257682326934755352898936558421001093295706029776820745179271495412376568104535767869554767269972744395936032298771029734159113516844919971976688503376684140689159008911972468173811237901182205401230089509458734526282990650268281939209124422160453029154119491753217448942489836373381105729472930512482084033625311708299551760790341680100170104649340625984147259253850498786531770908780617559422937163505204249240664629498851620307418005012528858536278274382027278806081700520139442452639336158582535279876717196646422632939070047611456354230218904043376345621510236592291722553186834153187766260671625135808000817127605940961607869559377894205807850665344226671320712681224459470225404029322209523222772319514215334523033141596936052031529944093870776169800820207982227915424582026008588308368612776671865090398997088891905667424048715993669907246902063762334372009622450889695427756407460254550605912023083600782267155750266790514084617485696622654095487540200793743080862941438948597362213339110536563248014454883055398749313217710173733794804727602618510525085898456484253898397309060431489186246151304593455696947773472497081338103759344690858948265594212043118413811911570087487074252927187246098595478263269936282881630109534885847575078850311475148528416221004302839996848477406208743485650417969221645479186131136046317962730076807914865478374476816466249942330934896578296549090587212429231657021085524658641594611488592389835787285905978241983365921911554267951709196630396593889820875750483943130739646811391699798399286527647750246864024087954632979745248383527614858673035307948931679898229988002860405175658152260972055347712775715895393919488410127836074551988934494940601708066493970759522471230342253677055349634513181497292078646646789308646328116919410621266076776524784065075728064990296153927100176520378289292106433912092138133420435361072798253666748402448087822208575667899482408468571950458750093773051574551816725683334167108114920193943876905706598430293710689649069926122534126809720901647923513782297670258730761720375725485028572518416882409174404471204901548726280448778535286631462294882184195430881346313100202871704018769855440234453911387865199667521986910931377330429097672642847849481103771042900830381959946495207536826001458453966843811534827664607980687911963776275210910048437616124241281551012491834052954617815933402297484421918449803574301636630742948425618765181214118946932857034386539679608457987688569801247337275849050345481939007953162401660759152793158118915538224807291577999150320273264253801911759227943762218792374138395036118507849453620819436752546043238847740307996862458728799263617355174574052095964819345298695329568330710244408567621072393304877063587986096919677257069623695858535045703288870920552561840284677693358546180493460911929648148726994796489633817834937178900055339189136667330561798750990324743494867789621115470319334533447118223116135178500223275365671742185127999323210635336851438684710163737003966754283936429651090367372302962081417022890811970300544367405668028384257197777495238659147981701092398623564694189255231613966147636085684906078100282718258580415651012903314308022824472153175695604706208159720230809488290014379674338145867977961024350483153883361343764821064248489666570318778879573390152017631096728400074662380068701174000234918114565331952940597249143298314153896731139853768941576941970512107883969336776166850682537910416593157290771058540031653231057678579346538882553785037615490705776619054009230588114317523766630829553590582984141999748243036627219049608085814858328252724500193495792751406971961759813143577625814416336366475874563622384010287382213928777322725418548674695016230284610770109301022358350166565049492158432003240859234493697229966758027422263763482617393673390649753517186067336506076806973428289627495166966292177697392040209754781599498875769134508422524501286089895158276043722317643278544128115136476977898578235474968603565882333083190872145750420219278799683183094522963397554588165704848828465328663997996265297638294340497475241269070744025096407814709727010178489561313905346011337142672377025219318311274966280305391189390055438934278437545651389618774238071913270786262502852767519522164103694736334350508499577122737686564372584706931381108134695156864205649091197641697223585431008285911516645091459874759832304825077071357909755476708558433607135388202440335034888755330301844868883327750836202260194340278021614975174130727334902254778211541720854734889418301980586506947320575552627947150005236888230526997391308599743103424617256881977446062146141070906650638333745352499731940225500156727078279982364111203015807411004663220640264295146060421580230354598899952351336319537016317168789264183491676642578774155412582541943548828999941194967313522918047506215775138812777842010942279725075419160605668144504558493027349937040475177159092751337406800506753128516498454600336173969170322387508323651979120834061134226539088530957218392293442746332584220385397426669279366338346362283736362596503383914719750181724472168134403689572434588966354917032791765128370092911052788349355645745232165151165204318494318081909756504712541592163681612810719936892164445652398632981007070816095948827402439157932815211885290636576969614688293740621457748083115468639184297162336604697958498561459569091795423826793436121070494538047044182032774476000324145299092490192643280491002255964858207655022072701801526265871236465602561719381885773627535382324662066924480677516016488126332375572800577497056545224064761422377882338102615805269772175601144198065071475969110316618072496176557471921001354302519288182686358592584595767425658490652471582995539145768461536537539927884190123283692830790266210246967464864747046178513022168250553238519348072196241133960324884007536221904309850822460048233501762665771190135538321632920485600212939510870542294370675095915126101009792933859614644551447287358987075243747310504578159547380320822234490676374348114121838561721510571360817230891258772625189442923270777951137478501068297822327742424941847347338079601996877812192316921657676927752319488512295836867732647831562035366187265271278028055749639113637775499963635017312962967304869382315509467947739319361003267006685131518282404541155401282682125535696416652394529009766914383913094547360158202891169856285236257572104539712215192990499599549995116543832076966605186647182037840028880158003170041349318335677961452047872339065820385517009938439615361678541578941954754970153573486353093381238268509551793938603966490123160442625898178946611808001275604959082457184852960701357783291483618863173222046261304774933801066994890759733185632334786709165594114689801548144940050333256371649433086007741864771561492660459290872237320821409181557773663445865273460665981497744055941497979877028650255733542784127620884855317276523709803772480211129677966338986655786357210547862859170351249177117174135985813860640729316347257919326852313861505216225510313076903550527122743486871335309455704620353410191611985080368081261991509780890105146654639301026545983888140781040786678821039510827091556426390136576644844118502591101824565548284584757804467423538695830593791674952450217885106976716294944661198191724522266348077602149255132518681396917610653898955902247294365439103632702693346089267007182295748651995667438542157806979962780937776606775718718953405645072649763507385190624883697785409413612632381965387776108053600417659279957406902726717123319926121757659910191280201295353852355381178533490131316094797466028941043520388997976567847563261743121971988539257507611372413613523572070878664504116616845565818433852178491767633027454523444984982741433955898849208309763377102467995004578150698778572391129195624941469230878913756553514600795900514686785196185195615089065079235719989506127368243381107568869452422896534001724839842140763885973632975101204880395595766532130856397903556350981650643773475652387359458394948750972695412360753931456757621113622076028206251551855327282146936556615690858426419061406611610151525651680707063941700729039393238774146856576732123993294104502375353100919849739924311422188952040133417344098113272931645431537628713035358285371421872088379290197072951092751588288102418944831200951130767220976744909210307984197722601238522207245832857558268323597318895883213899490421558000703103296514975850347492268779488347882693933251091883274072383423221186666834540084847410384646119940418085237654384030209272772030539156346602853252566902535359450300324472074874304913469050449417646356364750791147188407225652984522150425266818872678909616970683125406040208591701271608632104983066484327355605643161927432080170304712909704963343319348394812941863658601675899568843420183976810042836460592499823754963346526779019218267388453032421301558975601062032333234098551740487435349235649322142337159052617385582182743123630945333868539639428059486413034448178331744569200581091909507990183235073002306986462806085073328308070218337355867326482298077191929801027195903227829752179348839168858292291143943338233930226965285703020901643669128286853078638120195351248047126148739679021698115841344559508014742083006544819797203686430074698093770644302364074799405564903409344716035922770320715848210880807088561483279544685758384239855224281698180527824017357454470518448757971910477343303342599746638839556581462919548787978430530511070044395199468102068447414479547406080933401696820045041480296891283566070776124592251740847360445663492259238259030459307888955962975407273533428457045917273950775017837966439150386554928577262507950835398966825582266954868030321951644046396068578077578114997226184014539890451907538658499088327335255394247947850427761167101278350369106450121701023899133213058270716928617227941038247749339080039707023822265186099933704257400470080662823989340427252942054709195962898469122585662214543186414699975128690389173350398163460284919001929798189835815178161857785865783873292149263703330358381860064140113717031916741314344678988388169694668838677580364004072577816227621969038557474931916533794841195381699822071561010313628871770940165716332268041162773400832244129832682294559610165615738845499728835385144523458692965540829593457687154987093997789891781099700878021992161257662961092654901390029535387525375798775100045051454203453162499652587743810364992773683641726006595153028832477753722695511111768887277684738285865471620050398036701688379661598147247417265578846278241256732903106744255842205448481857227016769735063952784345629426317549615800695980581760026859312321249229264834906648750618757580121952228127273075109013196860563369081082100501400317951560744764682493270509256160578554894105231965203573795080743921887017077020491472485007751026652031364500950941732381018715510468190396142537884539066489582948682548566085895021818986536537559758736510680825690560899449714791778570638429272282659787618727552927188669468031007685625024722974691320712327973155869040940154000838458637484073802727351691928567081064630139895935351677187671464895361117570209003697306231494303356347408451856277891538813681866787429110347325024537460419883824771859191272118590730169252410446572496046993235118339208325752126588151652106552314752869544953508540832440214160622271019562702452815180673907439391092635327811777248867752811483847876954896860477485183706508305568791826345618242345295231021222549412466671136214724393097266238763858450066762739230021107494199284337713457549609321714809282276855393390648873916421596077869477683502217122224604396177510681270342556964523282538698894980943365482408157459464593789719225804721017920660278436146922899834953510808230596841703765617611031296021934466186550162449628421037247372204481162710685322611120944469840054708969045335204619726315767448419274072637858588108228982218806857086307201661002153658969613647286905252617958366479192176219089495786051126532364214899987167105581580947182575591683236803459967896749627854976820888961736182673620527991032449021049054942955020100645972087975582299418484511845763640998304311981470269605331039227162417077671872494742005986025775153131728536293045174161391223670978905880865912915930127870614892686535283775480720934566334913560587040614159871843338253799704348999393054203796598498374978101218798774846129252363161386381296259042149059831057786464136225628472542384896303725918207748746620939876969410451110860139360239464306413091947512958236716301659005211407259985471836589719982081496049246503321510844826771182958062183497954405774662054950652506290758184324559195057926417113626014727080602669518914881389140674209354088462857709187829298798276220798379829729486462018851728408877945385050166690703902611705371261077345328077313785306765050309004628531273944194521733047309361565676071735157175868471154876727924546129447113741269570812932496919704992134611605111105796109964581873538621475524521792584157811439148430505661774980529455914265996136965457891309149604587690335659625557641108077470948619613340508391197113192537745041161678073666207997903296839906071626284261370652296379782211334227133969682525919662662466456529525846045898585597505972918501830402015475774532048220784129276111439747602444826590342100809461252993845530612485777107324295749673677172107646987652572391163509506824566784488544620515474152425612075948283238759827194449638019851048066425836801041674751756412952029675532992178866193578273668841977395585877281827974879101652243227207155037920339054666198030082503339494387154573266177212580072984174061853972005048640133438675582170025027835284927764614355969113576042178841715678025847618283568758723149410146703030929015386827894351687127707532303405477258066605743285613466315357434840718609496807437062685773026602228750775014221604000557629868965022077441071678891309790512026210495622262859474568961682258694643601037402923612341467970515342331706288214942445639740902993247192172586086818782942886848593433199092014580320676559646593845519200118204972344587678380518957966001952641626273022903830811789236739010055537270986102867613731727731750985448100274475237028198609724481790905373462924670188336680424457083006925159312714694878118544820805908492787702578870034803476126653343401973105063486600103150785104442986027337643803940360805710285800909723805248760591708583761560180284666280532244173904829470480237977971473088269820704194406118484795267188308353254928624810394251597770981558572581182160151687382737089572715799927556900167707353677735111854976749581253690359364382778033071670115374948493347279163872033912704437189188258174116604591964618714767123974994452932494961989441097635155692078037341711411676039335126799419914911606209477627905813634887615632375573906542523552745542861412010237810316423651895106751792305866072961138220464117615104947706426570448479783464403725046174848180664578955203122164445056178146767331500569183124485971448215784750068714022802938707318207276667819686443754006740165891914072307227295962868663228057464737600190981395108470337901051680313611558518135209195629430403237280478409252254363671413781077941740732461640947677678651427867765681429927266552256384362529413876526013747244404360233032421516320717831888730733472001136976019185098577427315066483455473585632280541640488697728813980647341690260694641331162513623389036731461971163435993148301849346225859037289766237017373975846227847170562471883635416889283228859348042213249565155193564665821147064492557078827542417223241096302403003328417354635741855180206827781392347458524698970523447554697227683438145693379044333010892529954791516452383416395585079172013289230186949728882973632537754255040290042809697969522073881110612076109042140587268921571856862717469459469716093419489363465976517227917465992908664380051183089045564625115689326209320753879800950758753142862159746646735202269369935087960291975849488153978022056059642471710000235310321783345860335133918335641660528130655604439202317889043267984859154646620222278444885771641392023289540514346900817336513877052266864775209955277309224601463709742868138155342753360839305872040355059433880042558463447954559917302376474999928093805822194402604178364320828151355238703871797044512385049991977446205396603405263699439480859134908578270586970185803035419298699445289700082363409568149160995676729477998075772952162286874353088465303363077969870880962765115556727952162361157656788068694646157201119362875104517539260187566661160788719960642601828169327232439260717286765417712028427206650233331051778133074894298738088501794432147519819393646593026256485092553705233234314018793865673267335964814815242528933748114390414587641960119056050053280907306244341391710008211384885635935747455164295298833885621849839577361807116305256884817349704317243118689089304275096268934801841792434918510245755995258640319733491246506835111290836407356611000054886919760478689875381841047080496340020956944518185113763806524054201953499201389010898030159003081710614347104386214913465960597102509429511655567533338446357673071553394958078344561253744363372155695590482968010989970777752467772026309578230107740238015722229784211525077616369910628559069693011194758899249446801684817145630560791766914163559695560307215545628295555772943450833799505332533198647328360077267848186743784221794432808394629636195201449368740507037299976959615245833423685767283918845139298836739354726239149257585465245488501722646170380601796374019765216220869632401707751478152565121216938266810012564135662743083777829994810017912799554594505429325435903065892174287718369888404510202673699176223267430349382412439794132421741545911479442866617008707201880512531375684452430070565292393519211380403362681835730959112685076237342361383201476969106694762140976892450328842321873392024862464047776563015064760030532507320988608655381916162616544015013044689501044508587264797090490287094730045635451881010949800048627599243737281490490924103750646360340066697885694438895680741275654672380969401554658518817546109926084198053955802998129567834989831010607501953796113945951580332172177732635789493811089591693299043944474119420745037622491817931627983797453388384418928709136702136248607700389695787673327319434090054017409525163562965555928910335463067697931148820636674976438790413863974767028782751707660956665188381545793616111535419016734707713093153676339389119195369762600024019799739498655197776921981621982702386333910438468275336451760947313930550869342092090202607703089544185324455293326877631211475219403480071502811059265735022289055289901322462129760670950459836070333333564243132024796825070854320424930927176288205249102785813196704209945759863866132687486046316949385590349675456206893726608122328833767750268435061209032723610332239884921199880093952851092130101423450699850019713677170191346730595957296933316248506189116972207263672902861093211975339773743213942048955134461025859482327017912216257367276409723912621998174985097187116005736286617922982022109718127609809837721941233226826284269877352123838389689509212814755891420780436759443703993460977877157790466546047197041760622706615854531444964143531316995356843887858533096268493913894129233788630311149305292910005554013327962466849758208876360845790270862070512095358451623136114692734738805138622134415873050090804831390762034052320708530488772449272514874520857859600244713519093082703423689165108021161039613006910956441742174540872910447484288977871607908706586720546334242799698073047441910755105082266613985405830668504375222138138880630639064277488988743273890105812107548687028888846334922590159003454490282788480079851611071696700137816247505579183952069222073922166162637372651386293715064448340038334009327176147884696309913797686304467315176225328869129591462067816499864707384830644845684960710655277300882669580159136454443380154401854884009232036617145137361152005535722674882253160698254391173473679197716102906473805218118346925302240653203275617090276234393369183600656559364473610802922110461452071657155486650109362339537825720737399002180988053540708399822840493014551824598637219976382225902821713618542365741037784173144140983410296576851082349329247142016921023196191373735947884886420340956932283970738559943071642963740819979963077669667191831539312057970007829623867205438133221213280494436795349246568609499055339159396707439485942062692203833818781953152500838267504107710601517472907612102705731769172559345684390521412090834251286732299611183233418844312561754884528264111232451440364081398013995324802790574539237915244155850914196415325151359618448994699999880558164586465220204901205392879184918242683567754321364889659505035710360473769307042008639961498579257975537196762708172723598027929661582950341862296681674733337633637574163911652348325225061090541206411212629453009233478115202138753376127692281435196235698404462803727019527005771111645173248881039846761674481252170058067243088799968235426852308258013096155039847366253567059642912541089601826994396435162583127406161053232911985502616992945089583532600284865630890106158096072563127104963980831004142050639850625792591217333532615929297919272803078173362123902755590582140884859614720766711248190253716397084817311520993961716925417313182769859217566608388965226666104021523191492069651543642000726427613751346152353591749858689787914425856432265426986027756311153231057096583707745899313323080206161622961904997208852390584668770274567481720470705680456396283231796377589982527562462638421943059894970544754717748741879210915142376722621510489042896209124147819129333307555359653374092199433780872674559045178137870338112697548614235559329771963307890754703502221116721384263010426446634964076978208006168417286833481790093727714736516203578324397297869899717107604825405609445280470990027568208953002735232417725273162182035038889078568494997292075652181669667360627968024268472336033188268526867212346312002497652319806915851904979810149396636111334216061237780234086507403284192371936734193260036727456118902210164543207944192807733753096064582651348072568860621301361019419691686908573517166221558872691940246457136962837949664366474704579650294777091628319911254217463740160095436411372365329052568074919307543775301886092979052897123407251556247012858834801546644491878666606511263783647264628689022888239168494568026060164057163511581915762115908908517912726268778913693375408060981206405390379257253642294835717278077653260400059533252503031744518878968999075483694973719969654784312883273223830670461178413897952804079628521830314941227395645458620136875602454276931610377899928602588374230732467213415238385959660463042526009709872247812311512557850402375297752520757350765675799350804290471900239557591721704392228988552352916620347353918230247978247940308727511875007760515893912189698981751359421771077776708575055928434430950944370925658462824292345356544506574186680987678648012487671715704856546959013627647671517397345066587377266659858163762549713066099741091991698888517108178774447193107524131561794461128755161763755753628062497362998231129868870571326012687152015543058025371994485563233199460620450400820768461711160013012851806020416059268317361923797052881730029483918122464030449820665749334521592092909186991076048414464219076232675190599908763100602903326427904471725751827520662023961932710333741718824632058202624918759047843556209554544583859751802614684831436108833939335149237803072246752402827077767192037879191208098247422583183181361784344187747355686476524993971130534476355548968955690169499868952983592810196980396897199118214408970318827088520648632023497937422425951291242480096318892530872714898756954567162680903861782749801608195416876689016386284533976793419772724058630600968526233323769574940288018799252344123503944296506389512632904600511986070694497489509702909287218051610712444573903546311321777671338016548809418445525218837330668119102818888185310036742273838704352673818899372336473726367966571111133282192317627254318340504070146209314070770649217884742118387659043719611247923823276704616062909978412781689800262131384862831641621863684623040349318090863282944813573520831123955300760667927762095556770396200726896069570069765136660684373948996465750494729220322938730274670182440346041176370070980710146549928729780765345481540418274348401329156481370732117172148382900276275003187632269461329954068886685118768488975804734545308333117989460844979552855658525655121816247555334246143001633149244826672820638623202525506481440634989688484109456354491647592822242666745013109972371550520907852748268581946776929152564328399583910677605759166623394789255031823535643741229915891046893358944553581775630106085574687412558308040582186118579605527921308498982392492521744555928494150264425429752789436917016200876005022895047681951188491532078706231396021089406399281404629836809672455482395884134008709242448159146792477345122601887671682938976384320304615611034199051003105187246996929981581142644550234448102588207855211883165647880828787427368596061882582908416565127113499988277414462433013540489455046190526000326477626160538298018102365281778125817212066476320596661393524139752259443244397925718242073433932268669073005436466293390634555177560280553433542130153457592228000949098866084684480871310106575488560091064767517209225044819326330250258961346188092862236465390474719711199481779207122437224469275171386652582442660922837826116516616955033158184100887720700650082121993815704325596736834285992139150195391053621395836779902835830703552887808081714550970480124930766006148726367764121564183181366299426319575925124833047975241613959659560415448708884208941279853765833868607661031400512320612649075053792961287833627753886179159211444030784073630365567557800910636478375130667647555366113315956210655434227929919901047623936880418926869269001491976628278005491505180586239109596017747820820655432310543306927322895815581845501230400933127554683112907235894468254623403214572477785263439588244566732708180247555551682562838400136824553904244203131293220948138805001698100150465131231721887778281307927917493004553533606810467354797397503220508686798363406823826952396462023141947793881244481914981070975617911373088719031669723251840311926583258972853932044065922004012685282989057977083173042582577534350923448799303434295531199081593429657409463803180171655666858957431124879402144415980276930834040437196363897803140763434483151146356155338546164806146233759456496019104681364697181524997231823921833558969910896187628279755966867311902720734354194296756910450658316387559996271733102117607973452476591032775445608720311181521413626009837215196711272353274048467978378339617736856344573405943268809163927849129473145308681660547807699730850605984525744027173278503996891138012497231648371712865915869603313622143293634200116842859859945933467700284895432146885092897412713521825442094594442524242250363867562650897260618527649177354409660356981410157034497536549256761966444725366130912236766657683334664790836516283462606759878632507282413313851281405538308048328692815452019080980985323565306753897582500352802552251814192744754374427685386749578455661981289253874196559451941579317789050800197917002343843986136895387367079623478069903735296756287484428854328527809012456242981719444378397451863874217385072668525481501055023105029827613534765239017276990113044378292894430301061985218606252472019481575974476916389401361595821394601720873548132591615836299484123469296470007936854081094149697999997709103338994420865789832363380129732363249679096065780830553485877073097226321800911690902287633782967934079346281081899766944819759097920981431370263778010184589959021783982145017166509117230259787597965256725287397032695755748669321917746353514460658523127356590681775015992359414635790360523763669714316283961352814434979676544437526169668217863908708759708055147837137137643103549637051127542713005588512254550168287345919936266653834996479725456110401893214903927694184732686242841656320295964977016504102956960682571909245443657716948864691185123286107538425298422499094476314514205366580071461304768398040697152160458465878613384025148041034719145235377714561751500557546254647395494511864698559531127714057832677838510203405183534267268100999486867034197673168612840561266272448216583170078632653325687294856413604469057350386504932282008335840170698972051192914335823047451807633533525702680232636032985811287622498076109658290182784531546065928027240672161138134508854751306151570676285984148122793713188700838183691275878002764433905917141656173356407555746548474269223854068511022027785244916335997755612551653233865194078046778594748962918588506137683377746248824332490279512035736618353171432179287104137820276764040033987946769872459480243420027382038729484017136445249880348651973552879816797226622404591068460889165490236252206554379545236484153042566883683350901253809605808270812922753421649879234531441705531031755455535117889997314867278949905563163605317911250873861526753206395831839951070482367702296702035982861875518310946780716806150539789015481358191375902470701847452475613975826872406594102323261817607472280974370730285569623586893812131443544417024064045493553912339957329604550331850662496025838340767925295696271049122106614865657688959183376753278249332741080262504531279393706260864936603168071255363925084586007176918839178285234451398542757951111232322603936572668439932314628253582076663728321458114367714076711100339273066636251773507715656689365095743374691630720913985496012690653413009708880189827541272173149048207716294963050799629767526108874641564411193678262756783981552408118155225087782338490907187410091346323523684588414317901424213998898604968732611922180457747902630534408546746970900957197629210863857761794599481602769825773053863045275165704851804529098560588130819283220702695406619053607657603696755882570476987816937325777135055994319220699103517386574350947741765583946571215467625900802979716796519218783957725749932609669659941694678263194623141474461383420070336364581840577872633165192920510609880008585134732278920624713433453922743444393646594596057794263931134210061562702867569320876856909626485517375403244083484005971618226346253524582890742965611570918196856719930652638703881953839122097704099212442831900750547102846457025228512464727671438280596612228055272694728393111951337771918048839472497235138620225974649322871898046008493023024150515194511298614393733434530286136107818504341030698245104690452414983157690816975282144377134835459517913208310759660092987994633189906456706368023141643977295379411798313024103313059249745942246806090575071629007754869439432709123607933491665479607842298964064481565502447136067893480550135811710837454862396561858620037828010172332433976800832013773696254304082280244690473182741172075497578009666760761507910893501643366769695724749492320583117441929375573274289685370482937751654294210005670887425880106932355573906715652262666033972236903289091269512408945034232990163153184785982990128032055714268322831623227323284120641218119875175390190032218694611179182788267632833962983435665741754167257530489885919655407767254086515409217829637209753560777051518582279644074499694049573626468535875375943711906414112748397443007631443456945032893272955785245467154135031137948778324167722011644186113086850888103930539895676458025797209152947315340856893816876050390589601937415203476513529707816804338468862703762484067508944101396443533324528057922724270353279125903172679201968602924617885314702551543423156880681718938453846192182954851400683460320804405858393083118125973845068630473994612411741058736457964419450851082100451851845535201335888329041706761490396040802803882246895933246738655863484193306773293092984195761162465633861215862965492739247289497461815803528357966476730068094587817560340793262468942056149732868138309726632743898153585979796565972637354822328232347808693046430470120396481775414276879668394925626899644940926850302870862530338307358326393319242042141792355231776902438137037740773530128458143439564559994976999830195206458565680772376820726054523781142432052872152795382220665064497332976626073916204249137802943699912976237054883969190866022404781501943236184863920179094732856642782424331601242243394110200129714656786979815192616682553278947959307094909096048172818435689398653133085245299696327646940480540908560044992139054123548645074626620313579133645324214274486678819345461378720373235286571897471891137305186049763873046403366035157572878487758055744060157433180426845200882197783692343322671383686323879677102074342431475291262911704010623523500408782475046269845070067821977772754085884328402753565155813762223888928471273506052667888125610607275683183863602896143282611041801909822306772511241849746036824968174147113706049892880063050123932487730322990004475487307883486655976508271227318322629855188794349794630163857020818907850035442418435273171904675763308551896240258717949236619398648634555156185414656786555426659794787731831292622493431028430061370202238329821241764514428134765561938844776749659100336494141197167243066440736375781963548365687571801274640114573819053211314250481627966713807059940287409537374301781841051081986744566811358944700093871409049461272627126591503452615727624895758429582689633941455274750703141834771516400296907701114997198290145762973111743393273346505286386084090066568966382480223246324229558931967333224569542017502429459389663365696353925555481105334953942168308251823167298443964199520674829682897778356994214702236387387881432479180601362843023931650116292042911848538543965871806365455995579805422528145082944307072925320265164775547662909166136379007595284738442337704617023687220126677936508121534995404584449903359383832118500479726585485627642267393881852322779108472306798669153843035311385371945052555288541961624830445138097056161894403122579889622733222158847831568287636751353285380815543991069963684602315134462370192493290371102483922957740867617498994938235355486845355113110551880223124170968946688098539098000272257223869822567523018294645450751646747983760046883691613723610149310344221340224100127429017814690926299114951600477551845944266555961429556627343652993504288775833829276119391585226127132831138558430251203958212076996900472214752219637159876166832268424239638774373923250234340441981740491480041931653521363213075889414047520474972917784175140287325833723904255177441595228268888494362651523375325623187821863757048544090422995944606273190955979051713797479601428373149823867954113747032965434696048439335098477585019687199904200431189266573375695518061494727961336845526239616932053146101434748014309688451928550543988178793039195043280124296718072324195589654949873223191985358263401916704538732191039824465210994556718955962728931203956882356849392084824592645382690658127783618571274921342102136316589085386484212597813074552727360377550784509953577972532720046683594075532782635943893942916944847463552919730137438074955658019963556426389094160836751797776772443287114897907329635881875002469384603095087579240458778222970814170367234877967496193239777130742950914111256676431463150494751484724879050320060486985958202353944434616978281629321074794453603604096858542556182103336848820585163575320083213641946308722905869729889452136822520059837621928516566403590357452741371360812683360768538441496778713913861745023175713269928035037673299746017432879413864049988197676574612510540842906938736003753574192918242343726020030498137245457789116288452270951618322042495929744538916479342351063090171287914509096927873530369469015530015013778479251717589419584927441208924221404082406008527962939042619202601224918182911836666084612037732667049704304155252080649910647178907989706107530942921877603670702401433561194232103606198165681608368724083891475764664467745394081583067477958995683584183911031882267801204173738314901743138413376337161664238186833142753403294560626627004261425369717570578090075079353026699405475088377334953171886673423545142254801757592137545085478566963056836675711898508082834471170015962407885830244920445874541094078669117697386945101521337760304699670199874812230207514096902354883213874629752197869515818449776339972884088619985250700579224073977006075819154232902549950866617518261569991883659627197498376317962813614946576901565342386609483085361658050258514976738589431414649597741069761506095947127640657278127069921971563552336248341608501799310726392777312325617155237308084270857334951737005818709566499859967118010758402728750891483603236635610081911309302813628664549474731540813721441630495067163488852394147684886799826903875407958391565983810740317727837410160790044880623368273285001079193850052977908504703835518538962807418829557947026752959312847063561492962778026620088074509255476626931396124997598567938406225801737295073452602716256409532684788853447964667423946880783312970013996070717571391677223103565501541247262328438175745870412137052801016375799361642346897221966415274405738223974478676857764299889948770838239827899905794889958986378222450709896288959239340001181165826501732757576379654503871171031118454597637519767027277608260497326215202717631279711736713707636505940560153181725458665591062606011508341518168704570270606414567402442456961180502566223904185917207249788969963318929011879892788733691355577832719394164661218592349013640533692548389994137080776006886078183522137195086832286867595589614212351836015502067651013007479225303204747290543761419850744774389882131003040421522651189247424225411834998565981480621812113070928939235063615299063329462658301212464590866916453964636112124662413543933443379969699080638624302093708774995882329091766713538307718828934302683689687463260233991171999532712402875993733831439520593870194317840560239337470787174889986402918564725555621469059070639294633414776228259376766688295473207517517233320899071036768837080918392591402364225939651641755138616410169964461421283245159081632388899992174720904687719781565239970049339583220366545847867164447292273555973039176550039533568995948724407452204471376738533980507428476870116605937694865859379027965619940315085628332562119894879594718833693184662780755587154229397139568932262064702433528464059564727235282174705383150760119729819664664331354347042979889779754950741985540366064987895437702430168413277279107062726359286332148192594628194429823522204512435525733348277648526893595005806738882195172964987073489804746904876237182649540371859212118321163575002545897799102732353994466372974069451542335782349376179636639042715060169902887415573756123314836567052236452413749575107751951578801295782852239781625933408499473853446359889037751474887514254453029583296381166238562862295099863357766684257855742042182345157001792269882965934565235309837910148378200942349670662616115481777660651803819316612033317634824580913893541033160188366077399340093284328546514928518341030437127510767152106471074697024182774987341175386888171009996859354526140528961406562173044938850680182194646439322225160462078886748274376456782268449946958788637417460143027411777219769551460593134413467741612197436396115837738932710822899329114982087347487836365462001410072777484669096071057006217434022025070849847282781913182837017751543094880397405095208363361471615238617342395596253151138833250362447954612973882564729702646427385049373085234331942002239083708196651047893160611428241982404800294023332918297507956973956734237107032087982449083835933875371255665636572825977453165816764318489807684079199851037100105962041343629791442563046190770471088218964978480269549456761964116865730036993329146506017692887383193701648932855978801834474946085018730057698021775085845274153331836481944731458993698275742397497014796741641552002549948756228710873681443744930830955770691494986525556768490261649088127633450806320306304306185991740826950465784601807078775460161335130286712081583723130321263058741113743969227638849563144830484220318813075067871566885176592608798536412959924754053126779838508938546084328907986384563054488168956115479929573709711980031424840947007702297448965994908419881505579176904283039540168171138556545747935528296101933374796152937495020206487943863492934100320002361655689750329535794269895574720302620688511356581437720942899425891816616515419851885884477426146394058786623876992319346965569498544526754578064884381800432475934330784327953220401787083119970867883462714042113090944157872357187222903041663631693515343985971523958469548791650375869377368123465918645551726895034347299453431205514102177835010439190478686979454059844032647646093706501294066070437977895004523976424379477951632349841097979687225272732339880749978541557898858853442187570324630039123668635627252938739008979180592686512472319111954864168368121181506418940869805709300714340194061162170867430607383579612619832316780516219451004959871646717537177876172426200349503137913782938775725586710054645123808085846550996024232660896954866447754626613602219775294590629324186971500077093789268478032429620264820003280116056737090562356132355453051504536048380038628130567567029025478278187943916905598712872921237823695629245583886758865845028910930145353419963581054641095090573116104527731192404726360400853522785401308622654160550547046660844291449416495465184765547786128750066847242070552503252032295774541614668657214389708344710012122173920440529072414916153329479632568571998682689074601626772672513414375835658622810427270681997448691228807661689637563141467566326560406042333322592229822167273930195801082603193197165715713340010449941655924185769727089988608424963363674993145574811808064943003210780360826431399497550439142168607500814798765331872424303741876969606750333337909453871612872272740793683004314307410340692784533054563501183385363535103050184957386085439031884250307764965417055273897544394574980570359886044439205476609809970497801440852652332939913980144309526349757068454433840343547903843034750813639331504866879491526334110657902952471482267754779511225566694075681736698217255689364474151514543747146047172601530272073418182274511354457472414548604634791544104450023649409291210793177234365768818041971980437506708155478177011052636139800265643483121467240913944518234262099918326470775455653854074706998647333357512498908487195338207849495782537217004753590052977874999944986726356240745766738426190254456845426491907366941276907575712262527969651510642050361533814611511682251299100467211109867522136834136851209899081071852634228477260116158774573222483627939745519671995086395238717904477956137320819313808942832775969050882049598170212282936280311010105121913106276483904767091590464278924100634340507775393068044307104290213619508467470059774153501053288762278914040586289391251424900301446264309489492368056935698495208644241568426272782296950552738080771071135875632152170202269394536313642534315878568180005255222311443441856383610805802785530124139009351558976421331455045710570776017002110735481701654404665562198716482474287912173921744884256889485446396732148338964955779928133045651107490357767271810907968543797676714322140616628201049745274158918264365245262243923081481762726498344864395696309527860359115590894306252746155737002314058086910836002082861184818250253191954949792936210999051044625517154817141846557955161856074966172404591426853674827349759214398021533755258060693066109575287328022001472746920743858752087114808160498104204585554822259337348407265925837538067538207995290880357164071908277104291750003170945742384779062579349543470790537850839026901008594100361975634535831725228204939978706443105727896257845781169341947977356645619167178283710936533173442517292402624436580450841505274407880373298367476226536759776322530002206955548032684467931165174437632841497553958587710735077506070759532385324687298529927623759190847146105815858648983892727291559560807547554400765087838437922496430390001317751764593560518758295278377275952877627932686866185566419498891540072037910918229654696541537634875679515091562565238235773580512777932136431433615357496702602697893537980680336895510871077395215499778777708725199667761837609923446661840729545324330741545459400242626763852207860077784012692518518833526654983370459869133262886952484262089993655455019296984672768199895847513861234007236605726950582930162316440856533136610512000716629966423405762419023449535230471306199459163643940474206627525940315684980356208653717924750530901213228707626252541641756390255043669076210207985172666060314105221031624459438178801123135645140741674549152297812931255344884625197511742746845534508671428030950607351952771667130755672956412458678261546008007726061002420036098261208661825619780408568773007327543477489445775028250817327010421772073729256864394214763445903179525928726877778542070786207241372112844100084943993612970916895675685456268626811274518654731233019092109733570869871659436714429255162674390823031817562109220025427216451243582432756893368332137892646772274183549921654197657671216457115511169006152406999576584111342828730835887899376714916516162582225858131183750448401126006756966271993089951165078706093564906849810923407722811362959701473726691731386901247442103861634982346876409624798053476221095462814397090339065289338451413813786314958395894607525985843704902550104206259996296999865735506135643831249945681930016292128530593864531919710510833219411980369327958533384875979539941361409276704020368927156973189165718071186295371595438719542558220143120425227695350642281086023475735676518238045653290782734655647851123423407628807030790284848125129720008095245049680166840055540661738502188888694868091231227468588552432110560613308886367186067815466826092423385779151508166622055819719213184157145619378254061608570749381061344993554870106210669325705063278999616128228333910531681499318683300353330589516179728797816163882032701586277389016784985631288146845754588525167816488991713934505326309472813647908907461698358850767926231523554167674203000336043442035154719570708776065306215258137714299899782069758133193561704087382090562362663402963218109618078562707557865049483552524501740370043107534707706137780004758711724213868836347354427398996027754958266023850539769929987686423639254237656759048921244141987694923857976071208508005390997250903784892009215496361650118873536542184275292695926939471043813234484151378854890079468873607751703767626253125153240761210647049337714647192500989145626010230113191417372045483424173745299583929655644809278329896516523282489259103185802518430564866295756374804987744801209364335654241385900593967582547982269529288026348881161870466580844245973318257597353207877657728039718627376762520872457604323861330191656776462755580537626122351257216447722984713327796434220915665652966719739267690187923680786273570776690066402790876039914720033173904767795051093368955431733487093666694231856160045900868637643993366163025669882806971507440953077088349777160021013481407450171694762874035375536818255342869210806801483238955024589764875156984930384447905313001493230597703603141024335962417109697866816427519358151061919762572325004976993692370910728050515180989946039352224100464911498484537218741943705334651040330730428202639472970155487574565943356397364385769462189631466556876244224937215280260595426640582366030261788726414081773391197737408799936754472129736766840709926577905152170792816769015072678082397928387446968703924347272686576326593715719835164786866982471547666496368678318912636263513376107237446441067417209476774451082582432795041800495613450564236410789367809545797644581395744998797337162266961740683847306909615061207981466360822423534836137700046927002331467069853009478315640407996045815272250280387303060493124622669514779899331414238750357763750418773911709269994923989335657916356760430365236002501593944703907372550489823761652852833477115913519891600120709160807842110527823663347298683558060074042164756604819648377233544162240543285391386238823456737915135844112572211641403217884133049830453937623646352453861155208290591550055263942508113823384043390229579226327510642758227739156325728933399468682798176426131491337179089417571369610449957433761976342663264267872233509098058748403964509366094039419142093650946402335497032037210213125870148020364511595478904325924332831156411045436833978576832458102242540001294534494798466613226688576268891244622645075382848216774989772637803268498071701613516814980703193530551393229209464451708637705626336808674137242596060139497550356812308726725646218758240094631570293810158818124791653496809094441912086144939859853708471318259650587531549840612290556741258790530474478838123396339059945547625089601830496134019907250555131143981490538194900336238294215479731700150313021454837766463708351016564823857012628795597695218044829762446913617707363068493661029217394373771286370802261817361769469066303800113573736301116263927524483908999795573229735071325819813192385791027891833025346234894714772673564931407558847008751064608560438539815336486855810170151401018770114217023974147491997984362045414685848242147646328332099281794549686464062695285577070890797323403152377102444474990744958849056441170519442235947607864820719020747026954528267236187547797920589689059573950039602192885900389192576963133698941739922695692517355353631583935668746393445512819919275071594826036325442435149516402699835994993378852545667772868952138703410179199640445117453967514771276678562786021526369684540983205493884316383743034839309007534808809172236843742904929367009463563041272852468845757733157766057424845944672070996817354357905453930644937666984329916470028014280354725024169019178129709143336479851072893386612288013301975376876168306235076548452431294823808253197398239513469449547620225209499305539815265199367025064835955773655840106169061377962096912246557067484733471620916240268295560754351873607105363659213611029609865689121464914971178871222471153768732834318475721632632208224708551887153287323898613611563254808398766263154966787954803985274899010166494495400978629712366254909635220526208075559549463774446846705491181985532990324049526065199396861203313773279829573456080184071557911465113227988195934212879031280619087336759722247960412527808917614077984156411922426203508571226198963393310853073093349099523289959714619591716838072570759003542464769441083263865575574675537798879650186490334972476391752800039253570524804538979944298148806215152502969929298637226118008572958829427205371946532152130074077224099754682324942322145801805166830124456692616168952549211853244993357420202322731738017032160618460447981401352759083399934885680291387188168137397503006589770336865014885992487990755438292480138046034552157402824128121915343964408623703929224147762512158005514077741962270986626686249256615235703686020178570301875907551840493540997868814595196961043847428346008838898125917083538549315016461646826899130642637715089436087797024196901832535517992969319287213136047176923053111885359051638617233549187075588996394996090749779230548843675033680816358990646638667111501058847828023192893216130770224035972634134888975153918978376944669517455947749279284626087107246614867694890320860902703558628231817247493808830072181753831849535872938563203191890719788894126032244283655042166628349372802545097934145444578801860053064266824652253399362842396476004829147346463869900746118246273370772795944763839686321517157780024019808533018094528159785539861903345196046215978870906902193660071991310566983406489544260315846294977708633430843893321407001628957662340990927559866926150341064871305150730123160768652893483318816022408223884186202517966544030950104993593607197829587572837915303845989144502859582986409845277770205002009896081827488842767349400705637913280847599386527172947546466786517864530189493170335064414528591719170858067136173163238549531857433190545565578811799794974577286013513015847537581073801624157654111188639831599883884441529100411170987136832910126171699108774519607521996902894227411333889704191759119057304678952426295226924932741087118993132738499917535209554894890574002156966746866723746579150676387176072406368173949401490622642629250211740164300444769301321881205419322565374509273532092957560766402936015539802277090055212619099675154291437913804778971315410726159594270486240009012338117426585057987121891528577361949772605536709849125341351357555462747410563219400691555624155591910389034940247288626379425694993826856820668360341752365960390671931830923666212740693823509548040056147274904351154137019136886803581764039649315937085479365429919498565284181416333594171863992757989504289445153436766342009331625112377952992291011277803170802400026015049756320347804485774282542263772371855947473917404184351531430510844527853686083068086299393198620298794447706679631674129030674218945978826564018498987187481084539189627351534800873266255469068420067168887224196016338777179314682566756184500863510315674338672876274523919663681470538664015743992920517767778342426156373868569424010796594150089947473045934415319954960929769693532473051513522716430960420477362449920262025488366863267134351587140812263221489688569087303097691699588255357029665130623928955308432631618059691992726708957858558774955461254915472446095569493397319894149397220948827161457273786422692284144947683415752431500208440418629188803187792099714474933594646397026689757309398035464642762059976103939647045099577462604182590973436823755369429950999033852760555163841951486563593795002366360250809855757353603684116257842232880242838276530168577928034738705033202981085401491612890981223391377650652452245435773465825086257470268113964426935807775963766168456117595252148695386833405742073525523715798572508595061029333599447084287543399832257617894520970117238086505571740146829616951179460272183246167334702274794438577942914795486166590368063135523044363097931661087423265850664701452128627026528149687259427908498565497535395433391100010093547150193420556071540201889266084490317262900137421496382521582873993100888014363139998364494743360678613511836878327599835853591905957585806487677557399087909773366253750100818710702721815218728990183976937038524309770764583158766854349668821406798636042517400647055540193408950983250093956081754451661490630874950640167358653159658091853157563142377688703917338569447236864811244597686012971568926320206349926491273364256059599200277108638935515759276999864658168231333782197761161035087795766580396097913798953632093639982747999504394521455245592046716306423622696103228969717017275018789959891493232213594058691913096406823741405842753261273895412176517343928280639873243291355446317983714848696477560067165001637131684252910456378965930817332060351904776936956214658161483742389920808803696900823255581204418872108237036305675395060220649700610044577772448836237305905462453682825118298997517891501464205680083019938490895824365985453507787416864230329243761381054597569897614939268031997415604241868161717875287655674060778730805524372070881637633819141504056286237298732120406932566301007323344934537487228393715757171254628693391393235842758390024427155764955945172200851759578686377450259852328894857811378623215554363586400751814515154806354393294810812448866279143076521960553893044483232468823708671377330553684039565743308774663061750585793467442012965520445968598071750248885973284551132920522586473441141092757274792172793734941370315412621761448022170457995439681233386264618610889895657699144347329759319660691011545745895722543449768359185150434074593474241611806749268252143783876384280800595192555189731876260845625151191208246587133411876283072941135494923468272565749029606811870596134985279059176843102778475895581461708596753558687132088543914636160166619587760550562179628305477869087458943262763108041814324760459947559433946033177989673850433433550309770105321490808955518129401902311577520246426270297372739496442247943795554861174029370846541460232266711448776675341004514158561326960494985031377144031105370564986054540721835738469730661871327162256959373436620459868576093233850918479616045264039606596260180737611666821245262535400950073462010126005319387710308411465613837156854211590034711606990680296091965008922411557154549493320088709059667167659244213223554409556374028261378034749551332667306601442226329143264163393009656884171805487672820474656272203772400617172440674290057812525095307021088851052922961893961652231956021505181632478845658841069902956909641427177121333546139576515880450002834332011491229945066710197287532707360056279006242291033092754087797030535254959296212515349826079470843984798892358352413811975334832010182454142477981159111997963276481166725028172573438824279391500126098366874946982086694114423294805743292053655981465037635811432256303892031714093118705506163547118567552645709713153061351589792336247043680542430510945092425893003010018475344457743636851197968970851820173182194182609836557587724243797117115452320785712746627408892906602098089729220794418315633279983354611468787990402609234428366678730375391343724875659611307817450711678531816433998651936281987991463913861322786386356911930836722830514408560310184801115265428937231947631215556667297920626083435656224471136226033403956674724077687358339096872168733309244114958527046565542339840142126992840000077508398459371466591498369706792630221798555235841596854831179181426548174493505928269292201912161279789684635851975125431220156620666419762711591008346339239640138618973833745297245376982616504117521500400315783644955629136926248446992412293471355955639018267010374239773474550674967753759570126366678904129687635728437075579188569667557051218952004891465091147751799420017795508098575055661207748693248655170147687765921439621393742953465988463158576296273019496534435657413662154036639809066033810614033207487827443015772461041588189705621512308450657826516735796569271715776043086394263249358640853148301740168239458135729488701054032370422434107014312245646200264780634608845937685542710015423923484597784242802361019311882269064723545046163802464181308133397001032428375953817501716964882520432229213005972766588271844973277939783092623138351042301327190495729260424873342747680861845997326517880482671730185654974852500601841730294243514722393868899046295470791773011176667241683950979372914130189613080004812293103992645709623934760858856124356167757171106775594898142308011487182332563086395800007906927318139198611343657376839036304253824458473863291729969821316385678036104233092944201994876995411532788485137917567707693251576224163113127462975542789368245147743348388259806108906931284981156102867840144769671201280929791118772894421328995515590902633933075969108311181990745769909313805939060862514888058282212502967119663698093219059663349277666343664196745127186144324204835927436995571511637999132405058486989035574168429339662240346476839257554028849557270084173814010515135892030265771179410167992431054619796970621440340448058693927592761684009408432247114643677693597617584908187573576257608501938260366280823971077972382271381555095704723470937302501005297983366060207320543445757779602621815255613679952760350557690676684640094522283215254419801465934136105695537465550405581944059010818760966640195562295288456966645504604747650455354091336995314703132346624126306368007280660566642759310201994998674170099942212183965005228985673953993611282249391506326047765852081260378290379900961111410762554930264400042226673207473216094377455482904672316190038106676318708640188600095792354619566408055799169632990632753083217539976525407750822922831940939789362133810462469543889578529218966019301384672356697514904881141794136145509111469260855692111106191603706730162066693825547409599692397624095375449525905781515601341459701202971985975985564323828398257025030501015257189278030150385596779108170983986328276966558900112537233989241669457859810119750616984750042501120675080656404124023216273305694877399385489239212625301734048780176254875349693316423859595612920600943632296146251643131268121403867194665425596214690014361508717017118584310270476355009380023219706630525200703302563692349909352656453558949315675986649302644922959297384027792573645020614280922912075353790374272499252055123543545515315663824133125846445130321636471815993457431762737439904078890283014310373309425204664936178424753177228814465075339602367005051233145250582235288985450013567715252922982943992747611880887556353803364820450378992939096031563660523891612314349250302359650812012517322521224999830092566164248365043520838656925950071629402851323581907451239578004191761658448029201708739172993727865894494955471855110539615738792830839332044191077023997697789867085682855212823940894548932562510544643804007274770836668865375973647294639899566182645596647347091233983099295555700696012518999832606146313446950160902581843050573724483701326892912056098059403859593407906755818590117901066558762348197048347619686858175682142117696782223166521306473126028697401483674378672475370092040455287742881595697249135042818564882801220195233333507597713081285922020137516266126299571584632520382584066700071735416747595502033668410702354449021216066047168800900194549351733028944903592635659498665054091674748673482364467845252914596145974729054512011332008107084545987984021482374404659052099756289787996615413983170533092602821574017972471608371667911369133620185203275644783029157930135858993179081543336739342473893579961011095855021291034796373298792426392681693340446726622606567397679527451232915284378823643877410386919844622180461603039811346031661724485911396662378485168544261198515755970570279414005049531398918432198425538752223190777385969295614734568944349639049752720549335486089714516796141835053265397700330274180077469314359147403979044457355972293984337643954257751237913703875652336524863888824931183472372982517564001475006286045942784614507533151976312342275098551136658696525639376683179412493188481894263066838022535980086326381977600063707695239516158209210895139215632307436277654603452341769509398576008014865146479850425720379205599801071129554496143117445960697173067768776840826649984552875981422311905493278839008529010085900172751956816889769126624239556876966924446282198872692916021837656125975510828277148715070242261803279826571031302735079981606966617807100819403520078536304762006431012213788499591595361961435730975364814226516336799952276269177018420138239973643429929041333829036605515334697384705175379876102134642154162931688702690819861915080956427446800052663317264373870608435994337356700605468305024761955137547462160710898728613118322420399178506415119338345955382239995333887800482391468735515572345651264259646038463282335883311523050785913173974901143731548682437611662490236647809553637381309213401668972651655916010215553809889121244301351355267906688839488259623886019912562957551704084064834971957368055393422031067865856711718747188987344003492117581552659017040112443252250769248534702580207360521054307620400830680865734348933123018725238378959681393894179484054914206846684872854758326953502746626232804287339225597024751621352930829839939994695331945447046815306437518792776715825283911806752756395679317388368849325502956400508540576659938514856426042220788077859855561583321180759692808972255339830806860830953079418727513496239349504629991027056458418903457106572004507734697126990636889420234530941319884814726829050462077436357474094465965585019710015565410768166801211724993087192885415944272397584060128838556607314006439484132165683201969119033005411148545786826397316419818621801641586795438946058085955713936812799607502121956012895108346439162560911663546244649009626324019297871516017555215763592487631383402170618349082502647442025405113982169302569879648387018992513807515045998928982214299032565783715633136738733907800055943763848354347436031415739141593168497303159577412511544121853395513695332796264820269228952792738867837446130865356708988366985690457443386288804339136752743411587939219635403564650023892142951639832662951774650519611319971452613762943791190682362438959429040613356962582511095006726939801705730799153006627580882573751028631290718238354812583396842367074139500239834845984647713666750561574338997131911764733990291880730333447084463051110521996698264825391452017442340735476205272105410743596467789134931341259200090007023880855219778568318214781275190255245908181077932729538005730843272224368883067766193393381966686775556492128976141189332625545057955690401397083948397483258804612356513206990081945584153389416054476822671091807379519107048312446291387060826911210787345186023221880626525749761745606221924355381550847850085860755953740687950973768874432272413991079802369066695267918729657958198909728023265181047629360150690164457333416450167506591519157283173443490404919603533582515225276523527237061315809750344426770182935718685397201332930884691531007154798604567594561793348837433510407463544269261969820672447653007492562492229286849504634866797962480421497407635342201552838228385433699271288788754497765716281770013095746514507117914377940983792000047511533004927010759715398354620280567757160239445732284818143316556565537590369405512335301097263421823270609646771949667707919201294416162645773717983933147525371861296422693032344176745218690165198728742185314699823224136552561592985636157716068616345313995786649226719059139673383398690579539881501406796367034235801643028182106949283381956916892697817889632036359686681820598386875689581506191330304778503612875037755188027215739943901379655792449129014634640120122224610615195307929093532632153604060960527057261312482843327157534357884707222187534099165566172567743936869461141212900233699225737681455288208696078651607866213729271558105085933660991479109122286638163466165022243628542420705964551616146769425900672450596987075363024789305029995073662213377299423084198280432808888474517444274472196490344865518958861590975016081068004578995228755424628636076104118217431116257365862858689201439092048050097532746353197725849945630377696573504802726600738552057521281812630563487639642926354094543135216643256187547058872637672571840727845951953900513666118216692175329253223783048008838090599275928512085693057110171494589249534161766836153045949420379854783819385677509194625806232967045248000673240420169065415026400786078774744053612302178424140925116741197274414424360168483175993795390092457541782388810393336721649018151153276821140301793065183783472376992984534657371839876278947132377830209687025333114924138904447446470834366774999075357248904072613649779102880461176631272403708880907889097202098993430006175469952609208639101806176030824526357518193845571303370770842592582112910681867399492849474194416459317098905884037307628434113599277108900829894256285631960549607676763054286624603626738040310155596341656785593842597488636144369693541894102085681802065736179648769908230026108072962616290527279258336843975762073303403347315301368758413623202700430080300339072581382033078913201536309823989471948518434302333523706919003869155057463940805580158915760017511379826926971204807684281347577066051010903439998728172278414436639971801596535074367903142612802697153263699333323369409476092642594973171569200006895370012968050847874310376190134491285902658633772736869206018447288244066076310843956647367831978152006469721327352971768078876763249874052068547239484020924055407256318664680920272466019689964997138842879509174982261677135831538263706525578703013837256197375685278744522967038394752697405955414588805305443292470647803429552105799383668094594181874296899525199545382019872864692470475938562405472922313495072653621574809604735501489998414902160815115304028893532925981923166626590888294722599145212358894758437416393750659667187078150465939672424531332168776688105611689928194031304268751150023104346826905788215705369467615816268927773082574964617984471154388547957926515290092262967811222704451368212631031298642303215413334143734221974553817530111311978297427034760185558132399982353421952751466821333452905764594021198091657423210413096367902551266316101143441315779560383513385813476468659031674146772230441302490899986175969008695271237776054454821883038002762271618159411759840475664835541122963577894164678210643787197904779985916299581775911511182450182187861674366696603562598647822654553821395512633224103151915944341848880393489911902888539953080990111280246046534732582892080762637109431457100471032572191332159161471697961914407844967123617898658961011669141728254363995101812543096209763633789598259016779933931280754684284187028059207750508785820738271645835083466345341809641963054303098794726101614031177570949027924869141664364936753210519325081334574627172802335744544535129750625604235901755018995598166269717565715531951749598619124063972379664910206458428324899051853667151494554074011699601204143904559976872467061620974866809042369157546620027063646681011199367983132821110032426306506466679333587495525981120418292599710593305327553056825932568428196391540341277168045113282870825954038402649612285154481910122539783693514760266673636600653127957997043316528042906060284176193649108100792269257895773490335833732702874122398723664730758825787565208934572000569951745131195868317805507375486363841618965316068649916150697767494058644096006354288083646176376293546589683889187091443709797679720998971699212769634912620041818232635716948055956973372843646020340056407060737649399601423727721824483803587827466254066989024011592972037067523103375450558661957881491693679640931440448446635418724868862240628193226618538585723343342764254776563626779984453107552456556386825995163035782112008565282961196476642036344200394444372542369354000778801808293269103365369058143016347102998937422882405047434765667384343157048228019710645574396220038101666820532708913939717385492536682510479111974023676955428641895123773151494010283067210291421099842005876085945603196510028884418749567405818813157083494674139720190334925458879506721802305918710601218422174486742164936066118066983806731365790925276305226320425405941030128430662391712457635484772748337520688296346611748750946606323315207533576873632948453931725225331670916247272282672614687684778981107638888018790863691990382948178149122412092334027171432976116507015911135380384272633926211644646649032316216779428419317964057642786047316663912561223498500079215761192395975336567356156071780753464410969868812556179680009045285286374369378776037449537248540736500629025275076278560364586791610956735249239311398059268770354465747680453213257582901638258699684202633336013831630707462588525234159186409785735501267458083340713147518426167445457274736622992715701290180340682894860415091081552621834406648816868487410154588710453848967127819241354351177459447875123255702591612903631145586996683458645023450136536969484182005810274123274153805148586131388084685410093381608209546588077500004919061549553601134115123633449788423317659376144327787758585457221191519482165684290923475974621043679283071250973096580983339611249762945955772067641861305018822951304400180355727197591492589483052809412334787701695225984167836382340210854293971704890949239805843896959081769125416381735167599185431870276480376686409761997317572966824889413712455515776001125711303243315898578899583798742116467637876310549142453537474371175108350575583193702572682130908762335626831958644104653785023866791668078544931953125838423639655691536933498423948434127692962003693240965318230296571008755088839282457302652617732197643579186727702853996036950951624206750860340916637453990880720299045866263666883265812760711141066208818023637964343528319873834590417854336769027437457531598740924189246067597647087645477379344193152726071366168309549100118671721861437603352568013162459759006117349706683365667265235080262993072716762999788265795536096015318445403811517460211438698179015704384341872709125971498415037507354221722453695786562956331438196719129423175834927708286925430356605326579070520689601215690801181460375931668212363797760164261913896100167961493162112687278204354298444962622096380036740500732359190126692938405137689525042436894515454878444871789743860582027919856504585660346666252234296885877976630357734728374174114698556723546471146061427994177243230683429997563280814825951836963715896361451370447167245976677479722017490591803269137430225889953180225043643690775341304922656777858814712200756114232417251014510373236015013806984032549045375026457602381203032123631056047575259945592966770732974275159199806699057762087920973446497812606515142301562051468002656442783692696993501331563096517882304761708282265692530179050083405634374332953645188263725867704555430925156281951549200963643807508804142910050130806037245131170967168545529847745879756038278002384399118946805138665125303771339497448974824286951085615923387960711884849946491345274117456201657511823600043569229364661285421778760266731837606340618449491259494883811364261400169524651604961570844051495673067024600909093627780623888277202198919679977656588204058411767873163688733020568546761770116998177046985643880784551820336220209869194189239584895504211172728272648261284282154782072790244447400863926405438269773311467376921918478431678260311287877601983491047703560502317608359642584148317733440097799438864065676192752990962720190419290640151418808080533529852969634632627056693272484473679886057140415138337992455845034660324640715446274865149025474732499788247755201296767560263848659065620372153968813436064010097202460025699686533319208536534917678933268926468507142432237866266662517771560484233034875036315159470701001497066464775581700087500041109041627792604422136470611716207903605138796713701991515667680889136287446867715408672866690481750142638368668036792502145191847350929947978182463043740021199914669540948588942045460894079752336816711173694809984180873276750686986202657574896184939731564579942360778091172287613820895200249874895179803699065910173894503413349257635122976665448754044324199762241896440360684626401241692089240106868503331004053908379088455874198316024595201962903614137139832092542398270894752085021785698726244887317296138203423148355578599652441321792370917473923286701456699275722531127170182265545535497814017234350794959390149135104696860391256644747416693826962788672958599408799798046849557147969461604474962963699535076186458748883056480646467561442867154862053891059158177195308429745875082173062348829418286555468373579289602955432104997907815198072906608966884319153252435571252380611778627861739473259450400193483971849235982314269121712057932896949340787531500865924361858104967420580932115827608023338206978574909396450788279920683651559295995635723627694779610312621540603307241147800898960311380364123698013015372878841155680196106771247151842036829969300952920752343787130129375594451529728482265792589406898849262277907107239228860488584550925770314434342870568348075395080560916886255890226354508703499562538043459644725267775353139748121183405350116936663614621874935645668280241964126065683558387136831381646716510399527795450032372772212461688878820142410207728170626464308811407035126062266739319887794893423333359958487411279603154296372996250025949583538260020749169405492346252491060274531913663322066000296195241595512108686654721768045792794836170439924232589023588009503126844474041963457282756255635552897697395482322236339094433323452810833661422503987491526834956796412876840005904985724015456672287797679734847618790943515306803270201426660274673308258495112150518213981631481764559621302680633647065944672229476946171231493289061615244538125778131762948251321603224020124120116622480231770008198345467199541978122925393974835025382883203107564072460053254426465297547873651376872285880185115648396013600054006140482842883361982010973024706204565157383321663552835219898877081426935888475775960211516360020001832562065424526190677612918615038942459657233748523753541431347085782072658017948699546710453731577089969703221860228791466915170122755798206939566252635819330774761193233850597389747552162550365890075174088539834648255073873461177870356366870995123561961145633873354179848781429973782902144996257293025522935453467424666293072389248367622827028975540581462149092950257811422703240657286381700916206201707333756939871544463148508790768865188154221999516197596913924128155792393642196265075980726987675458939458432137415866927811755551074944775678910650562573088977390661832848240240093070351556119824750929379941731482169493345814114108918762578600288207219236234704069187690033455177090406823175033212391595633023865354819160786884313313516365842797656336741635271739119358706788887498929092983449829202589678071240962649898405260176597168275638059687822925913200691544955417894154268068851781266513571459889505783100085276993804701905036450335772147136072737905786347968413361411734741202922841079105910409607401442241389797907429649485667543799371587375744879884716522872340330832428341270522103142507269270499410115012016571594171280477091025703259090982181720248754500067072835637898150063899168821501308923867355316755968911023673152276815847577206870198256460697326304311875437141478129047172500608765416277770480625708542421852804840183402851380768649509977039103385724983717709276981505934970706606520501447376333948444164925470247188231070369954822847970604622205342634509918218203986655558814693533751418243612230319657628304352763848759941784072488091001329601570853919518310016881999470318435951488158498631620178065470499272680422676821276841581114754991472038235468607029591057485347721881592863225914584913747201984229065575115519964229256076776726649516271434928189663512636093222120817879839675493114482963207106724794479612511739603192692080945927196113106989591953535048583551889855625925870163107864199073677948154629029339403830143168677421325855449653141219951179140838736809214576732415352105954341850686013161215200658391084065259293639658853927733442996341812746931628134525687530132626546870185202952534153972036334494772594958840369619860416859768625195388222165568486827482281394798047371680890005344782152969518113881098546098142839947551909911221541822902943303374665614565957429665995578812223474572310817565068695833499695146149228319098284322281997030877710667887749284056845303995906390182774153992850474466549244689476651979792014558489398564554089477330603807484496505550953485646569283180559664306691553778066673886060993298338997264790388029312924190477303443211345568024337173192324918117929553172514303943800622762254770747706909646775991516956256228328994665113655922748140029894762251089312393581474581369908116163522613137890794060103046752024324979304944022980605954901912894594684793186466410690299873970081636543256244149014000061726205619970285244439609571639314426429230380790444134898912806115046628591859573706802559865513197304801260348942307913345507828169014722324111903157238541217408026241294091181538034108921588618361519892443063815523985043217666065740357504080090889938491662843464445963231974609538014756508263812789523047891005371963511231932703712378822574949290325843120191295235578248209426733166852404469550799847028914144935468444137464082943586734830197099807638248928090858108106334020723493780891434162478799943341605799828554335515926444478639824165438385790286694950534693899190429013340556044162247770727219030329015491634484449754741993712501680086569205209955424600570529923948906346375847151597533924553966576607881580266159578666418440167791405246921517236753433501938662946866886224625751120627971203821764410752520567858061202769933088971915343708481694613914390605754533417642637067418626421805856094538564785382335513851278555308675576522529000556492090438425152291699479834279310102990742524918659002901378753581142566811874984787457602324524019678228517801141926974593398531622553665593356551801415731636264795319552194000402818674667750473849596317473494117404086032743150143097919602639504693253292744885404455762881721497839001913737430806223070489764672139331242296003157089289727810485297084638755293913816803438665241192492449382300843474918641194440128394740470354932396748205305958746779150255513254168813399772244866057020421766251945980178793251732923432093451348938365669782392935969955724636838769419302814839481156371972501384735603818649468567800585802177425355150468931929938325404047331087337942030094807997175811249588537375045730354360611206571249743710369774560057056371571501667149908683917898054195251081505545210903484497239950640735767230421183248548279574428474232107391870951778425601457325698838192571380939362170743447331429234369198078369512728226420580604071601660104822206716721208804941691837274951070740660469353799585044356551183676701229543543248327089276347064474399210542055966606209735281661332436214440364182581456952052764703052799368419237594059805458170963069285340879042325794892815581265439721984095627713570989412587648112006858384587069360519392943985259591124834129461595226075016427867268132778461661075394335591958076883527583495566352587854303860767645160219332599714319418167250828265990999511368560447332673196762043914581956185997018914869915795025766161998093923659311799457123277839019582536938730241402277305015781530625274722281018828296791818203966172306765930698619757496412292458862400313005546428170918977973316073814597822427403602949174177520641883314682040090207981532268833464208771819034360584009365787827093055705122318610245286424257603712109126917339532797460997341481432104394838312382461558082623513553428062431227517434064203499432083819048235201276754936050042218939661066144403825779566297016142724108553256436023993593828089855017324496614173324524867359466591550369485671167192755607902047161583769948536706106234239187281203419226656056416915346746104397967438706936408431585330820787147828065175031344886348124026321174733228949214836372036244342924038404463579201211205586824339944891049303932418085331152971791017790488182037906166586886470961226806859781454799111885773138511755592580896280049969039269573272111991743633681481771691759300804848364460669875777290765468953749056601845653170592480967179226150041269108463774774694601851482438232517624507681366448808618091978476460655492552443218721485517441718459609387422236592813607116066093300190650685079377972777255163061047393756572372998661600084400031911938233363646959888895257335928391323985386394043139778734911823632782847470727054941884754195466317711502319604478217020199520648964561874056025462996327076781362282275495013137934861813101662353416810402434141048474377581182166134220146863588803134222538906707069450502142861159442536429412041129892213310836383312453303003314898051347848995127008663652398840492566788908299286165233041370034529497035229861191931635160503079509648406237815762729919346286553831552446075747809276522201334017711057146506224775391076533254201990631839818650426480083302279225742208673179406998135346425303547163596588078152645907904597333577908533390035164433937684273285442098171530522415584749313544408532143001339136948813185065393877090144866895313217508384091922746738217558605641909877729998646817635447314983609081590636513603037768154334185352221988801586987613103230956769025012437842685631465614762449562373518282603255025073346781829922542818604149663456673709967219770643318598140994980910337252602664021999113942074955755331159800019755335485772405799360813256392907500845516734567774553040728836290167761239201949581730889503453614555454385992756860511874546307000716215433809159026262239464440775486890472022118643000402301764527946241709817230989964722800247021185664034822232195017343280333918297763583670219427698490490845400930978065767382410358858105413828844337719267053611097043269370739134070948601426895994907894776475170834044790676392712476356261038019521019493327780027341813171814860084098071655957825358881626000332033136656329113249004224006424185932702674644767956882609501435606935021183379717400638743987417486048742303400388254063962227835094502369429336921588415955758429567425893834087351180459001985018527363177129947380579537709036042861595788070210675291436625037617414728287275024823172391267029652280325483563176352272232365452697054971698068915468227825611367768622908993178058219337983655685400313590283295634195348377821690852719825245016940169644206454819176015553563641930816004390424981089312905977223945191497096297900783536968945043656736564444080179691618195506045550568243242938048701557855706546925142996342735425986383101019271434448712567310575696930124659079784097090525300902078499830441236243136583938301219603078559594320784315447973919875128822257961800717392552282869467990251624057010376649741785583943186269426540991967664740596280325456904410808341295835068709202037363506290922561128497145827637758945311305585512187372555155037398459044019158172725237608839257366192968122145356743042724484360090729781933304542648576004505142128776166297838241262626684750458977605047049333856763459744999223709735424329431894656220425332635685513260029269705884721231304450730039057993083519574396988944528179174120483348345366398894804667878610370370101466234757904230398766626468265801883206469585896381252634972024846567255978361976187330786622239959576079961126493487739088098313545758859044321123404553404984239226603666879304116615006588797071172808120528173465960191630483722384703955595410907258484793402318132326207380817728142670257525740705412270907418907860116141554847808027894250807224561452196956269152087491720717723405963339580096057902268307257713051341253703621532298924276085393853042090849431327656214865991455098595304351087373385354601357253937461248879805974793987882240214375085840472926383549937192928104840661902526334255873496823915018742016453423931843713891827516900203354854530784217210753560613736861272000280150914984386989940446247400415123342025944374152750289610583298498766308344007676874559314831874143782490755596695259835256479578501415272420799378120531232421140839314754466173151128017942795180057211035965822676525800641139691790817707654309702295087473969178362328654286679198620131001098702696320061885032568698197894196780603125362758831718495123521886507839899487826569164670024014165211661000745241073882287619064998711168261036279414277791981974390734351887106220809943186653903590799961738060629343810239901701676715999404213668733111476685583951999439569890577583197066576599909530103583520636386862585130241687696782855272734346112412464446834415486547285748164461826232164866868146039283995246330549921408697300453923666092367792275421379325358188520229727811144896369913369972143443203448337276358242082043354423469648920546836491197506123046753214310673692244650170808832018030451312699262522940239632020554737038732562799016523644484959569328757638551790944119499568760169477954140049397391687467470847488977137983411776196315112281453748099847737155958933612146677921756277008672491441899355267206519420625969010823570026341884014737417801341003836639295618734857302687267548345629362668050092264815910807218410080446245157882094074599387768000200674685172494943626442141160409257654994673827845960575995347209250966209141508553194716958691603704784300172776002052872875938887649004163227400833605600023893252293338964085845955997554196125745771016607262784499190191642781368926933953244984251683929817299608801987969220298781806903616738541406553981406861350939867933031558557358304293109708152404526318551883247502476522510218826969242103563971876105803505362735464364148347674605881111929505959989619884370608980571431563167383867561311338094437494002107051862238946998430835194603390021329730588104919942022745087164815312262359579666805841348600869854293308261003397956623957963636493926580803900499205805172077698625273723321216100269720702249089039886478745686397783977260305916303277572264838700017880355880664284836617434090951495226042195488677125002507588074315386450592008038989864347750915196920658187617655443618069130147419531791365825628441876690028136271868937630813600157457877288248658915780977273166805091777927598948427482464821506276756041932054303360675637032952062757232678420454924110127977514146828743411078687520920518033406363286341750847594417010127714279578474386290321218185724748619292603930577278052514564947610645499770619974834252725636586068482605487356023401595172437911342108334882258232125021449834990663603915229584843195835011070486203264873784097359569289162054071626593582297525117770957501902449239468214624729443112175404735457551916301239346033951493108789900841708254711259765967958296006113303862262006209854605137789397438929830559175073148819389420212271818880227644654203241370902953135300918552550221331866388883743246394939324872503744438381537260443351155352047091420824890328283443669270788443795962424074090637933921609558546657188516206006619706350896207875999889303052690580579411200794962070625218232968956212848237860523430783806300436121450276683439873481431763606681614416730630764966951610726537616217287301665359472860458818986713252808210054241270125481708549935224975389495279374502281267424421180188008698645471756358159381875946600650697115615251341392414105119273052244486123850197291609899555810879745251720801955974406125501284590460037078473564459586714115280258848984971803120590798429129119510614952121729601019285863621962015400744553292418091319545828100224482577274504920728194341724404375796852373763586037114551961201369692691657363453893158276572987814960086315058144596921279564919404088911169322155329088523545819109343118393822981411963197459883889045014956840877741754336281658710553984079638948401405087165676638676707667366973845341395273779279246200002611806303391311463997287747113951324690556416698115783297722643478440129368097703145318038175209805709359420569571365584593322309207091601875133175022350229364479711751432999822223239750036697369099358269030423946118506668055181965598282526552729369663520971077624088673517713514384944461701288386199114834558243632394028401210288015530957466078720355635395698285497428898809218354314170782216598081651480859340054995576023094658368712924171819468858861671405181149090224590167231933757154958400617191020819799073931518285702449604456657767815572971566009494732301939400829565273685501166231944283436998573290849754818119152288789037310882840729933322871852293288034997246543389561947793167017294793455477632213680502003318186770778492882106474530250275935531213801405333538412607768481909653612567724420822715905035325097657893761119765957870499593515970370793021250483042218913630926679977876527709198164341290976488613605841099724236712834721210989840877398290553610279582809490981843019332863919934884670542147487784329215449023422276716366705750635744610127704076861939715113398369950245258482047733640884884110867713772351803453870059082420902040502163788091005491159575126713382169254646042488686398287544680133588194799992288573559423772764222698216254521404827352834797987643876572755718817684879752856438530897514296768134983515556710927739882928651043362609370201028837281170020942433725097732055348865401267263231176986507634904669888498013028779302059829253202376427621896113788018328845321003084976641910263445825178918747910899300256516276475719774221451369832937015288176549649572440107158188308863740925125300956763461753341631157586581078355185107193641526377257132935197141535855971851026602460432472968999593196950363870339025020208829842254534274833145332080725267562742882376665467689355717730585978659426840563744318522929296585999778963038199102735021368563769859276705371798640801437255270698905768952750832105448285692774137746391739767738170090287041368067447392647827652510636760679490101565144775779378914639956039617639893646509804286341273820915368715259634789994105022700064654542006050967937164802014551088528037603328900602974855923213978721647789092925061184276454567768586258854330084237411627573857891737077246702090518022924525952178216013833884807051882816174589134832643992847227049296728416329835872402064005612047124744179071799492261322195298340963739194129852355653155735077349641892932867782338389945610603009917282312968609173399978613710956430151466339159237118655658783377910890004633146240808390543829208710472527889415700833686930609431474340799899628713664544563063316586386517063718683558244185650736594847119034030273828425086917663743226164944105720909989628460454832981373223866634681521183196929213644716363625404674863400097712903970922328744261794526224744943386606417403048682093560697890759699049321053466073605204446760669242029936831442547596803794686766050911924702120918542869081641739345498422703539995422621493010379048415049155578272668652822681705830014060977572540497361481654785185296028149971471857099413599494892614410606967945551864299586572093332781769762484162272909654661102262468550523626073595201220787605106259376095007336187980131874612565202100857310661214894239833239168178884352905142215610562295073193472201293802712437746108744895466386010500989499998109144448184992530786517849488735853610902823988929009090522567576203777179547888364721355863551203806522680747996531818115757674689178916363259670732498411799041625423477733146578911769658648539419816113897890659560511056608846854673522554863146995152994338338138882312816308054858255180656019139837664532567042164101396871197983015787477402155546420838402473274046385649574912392563396562240823287421043974052254284394978489441538933612874649159409940768869448649835243205724731813711480624986239810485135226117375666337505180920022160627352272734798283448262027333353020295561277153056678832068452969856547227478480639454978652526343266675207085658480347987299413628680641952431366584869291619412838997168751342909325547444753015573700787541849058540581318435722905305498006618517882194126442977162627980069673851345164612805827955743236824359356325317878393284334622754768934886274712411863677430165206565929613076016541182633917936805552745503511769427308509656749730810698372789690067323217508913446322657287060801886550571883146003091599598231926935730777134687977426150505211328065866371595488188592262660201642291087797061616872046383726383504577301956313950827494958287374332067470826894438962215804885249070276573513472901712820062150025979317814215721565078098467794643922250269591769723226115904707315732041327902728931376229863660265964130841186152403030306064531761613068339182832556250736388521558927122038924698958197968962005880083489070170278860168246801124703803334234944897528983096653440716780238085699151465733883167273940629174604653935392315973491993752984322216811835424347104829450371567368284761471336204145139093012297461476678924760926507929873868523065448956344561448769005248797329308830231264055491506584375467558171690197328158216739559193795452410531978140746358425529505002914331889775780091851691490257948594812791222066020263552265854501001243045047129152237996067534268650379198265781238442159484115388352184801175886221160202558571177501297135916901950455205758546658863686467582962981295985657040407084801360749087417732587424111685592520356210676862714784572367257714576148302958915498791165771817936115031558850663078887692118601898178630918739068955128542619989359198254139156938350284424424866299329756751993063956041191871303286442462343335703105894288168381486518699679107424243244503513294763937980122749684013286686879067014874720308803757807067481355282025394529172508308064273677632947102163477106638854481079501151747064627826092610131960539719878145952850939480919883927489147532475689561456579858120162454832986556634687446886813589242006409227285145323518688295225152858225503310994483277462279337971660331074622793475345146979202217100136492758574569624692318785673673268498166911913079554781945212352367265124878799354570941987872350939537376913824691893175638115620296404408837595292443942449358323875654557590224957004081686577381780399234702975137404382083910455038860889157479174379751224053683753721983483840581222014357278646106856394805484601241511592995970642250123400350281388113850618837609098488994587232427565464658624831324287528438763970547784639095042412293878775558890369974792007859711245734797715966446491967552536590085280447942687242475580085072652904960632173555918490678621791338023590546429874006412286399900015204127253303702757242549616038317958290657220466976401912496905228854494304490275051309178020703174070899954989382688431801744801182031523651371986163597558564292989329012571961866917071781647161287689388591043304061320740221669441935836750368617559555481302995405297497016545193562119384395055792825966318318985337796767846710801801707085389399826442945006493876323803510564863726798519159107555473559906285511237354400576799085959287263032676280060541021667520571402598933114272287491147834414597882396135683596487014159473187827142938294530548463283693717434269004807611054414489837612148283322537396431135091900480604013410439399598656596853094115011755660173015615169870769421413862499502463386165522632340194041146762385024748317309661491615119250058908087149471966021295287433752533046671510741888015447585418180092119277339755315081815917729304059764467267648583693512922339503464079720716821516823721781865754327736320917803167139226584073333767435965082823411866508566094780875857812578121149304714668867714391975140946848380080161511554087053471231616696012507902158375328796183203181169676286206309514722267173401440397875859478795757999954466066813789535142808955242684112300438206674345063758520951741172647879798348273265947390566280349601140072035758732347782019030538212206330369185094251339138159314468902461904046715202880381833123504396448508964329972501874544142278176354990700910085974800453060523791350820171474440545354680138987915213267197296948550799390487470158626237093806671125105653200048262080783017027456916634816779325222541720129155556943004834189439311279320798153013798139171546545261565350987489005853907710861260217034372618025826375244234978161531051263555432439170049168980844068367340645777458737623238254874610716213864204833930011602434220524644837581925957562245942454256707908787857701854751736948952569963696057061383549892347406921978104564416622693514411227056869462231654710477200998797360413770904091896462593992483671404640588067572196829212500756264466938058825280389588265311179004932389716591500593403962626292490431473278413672923076989877070055728168887827930159205495408750614440415002097389974909779264044660977347695347540753101224706255736547520065387458714761965367034227095481102050754537527413294246842890296673053856938851358543921579295492596302616105200791845439814430846339644017892699905868847719641809957566351052588259249911502519102947862048543471018901448794850952843634353339279077207312201109957221892510499207029431262062238928309054221999200863888523748067722735470767532198463126056694471390116430773655388462297875744281369328027301080905571534787340524652410851188403109300366585396289699457513763294495409966926118748021183844380657720351393370949748630523644134417228922620007120835350049787444129275461189533419957891213741410074029593066443203933712079231154055714041594577689285745393072005016234553694765946039395678832927406638637527898715532326227121674256667673279553667480564328689777750135577720438031539951544758178487365989386692861783868946913567379835841285883313541486172965901580090658919592642833863243563953069575065662151119503101709842822149225920386149583348407755978010920804764447331585638709623504685853744958551140538754958793373146454794484438029508191016820020202936594244659414181065811207126114177686000789209542934282625331159006129280387391600452689017640867456530967714329670050041819196259265512817682923144751168232820541201290592037617406241500596468746736716758787315334504746938011909079660490396230606836548866001563168962337848488696490464149008224959334128959635578303322595535088868213032393702065641385280551580724117301056403822413529313812684228450809076502877449390704794206440480764662432771357508064029986419709065966674258005831582023487662695663630967464693539199747895954234181836108334400807880479721245309435291904106852188479869836204251331876963575600160634532109405762791149891711507775617198511582770841711001460370020812323383537788653431501541833055471037763522501448525922791363045332576072125232729186283873069099063710260207118582958818559850641967683607805514861075445619913044486373025487888135114434064733738660786754198537889154397595863342787666160537915531672553898094628629880912404277480427938802451522247565122699471634160339580163057235052386801747340424145916404568637709465263488841448274264750945446860252089964691183077265582672756581154996024608725731268548491724680321339100162024003178071249801784890011059563974834248952460777909729541213097086486467346718774031878793970379339999651746801511710217057296418512217697010956747270369358341024743776548815810231193285979310341136406262575381491312810400860658989812051270199014717357416757145233313675557906508534601789471387150080998251092921662436522499893679617478868403387079911974244045972432660207972772877097267653730702972656411416215295400085579524333704456187591464239390363337014236327864460699801043234983962992062958073616151558863722166477761172200294685822881606879940239064540556697579769007492838982149809725334199699167720815637514455756523892632097128878758537677258558783042090477749973367820630134623108912026533758745937907091436122512566535956907029090792873574306024413248813361125579605195931232059031130776114165802594090232835964763306240522941489862920404724455961969698378678655569226917863581559038634546143868310989416860029974527346754815305496278710646085794815736777871349878336137955944990355063581224784521313658603784929123621433332566531427292097247642190103948823090499239383329835172807837498624998940733663506801471469097372300559191684165239622404039962791230246780819533322143287195906089223175638691435905992227483369982813425878415383756631842569278859277001855279354418143817942853569157932686337256578773344752088863836644798322872876347001731917810501591041202179777807276088389966726580257108617095776491895325006210493446066814158736864425220051476723033544091189331305705749151372673653964077169331462588796844973508009682123609866925033798445603342650622539583674438164880166235461401570488105686607019524121156280581654331351285202185975574688496157255480294278629992130566733841913523164889665336205900349357890135887026650870834007400940274006841128678616593021385367201399893518536935373325226665604802050907723334452674992990781085610809154887579804968767271891519111240404459187780945489797554137062501421355529777366171705334639791570988135449438249854893992702109617819781903997327892107583045579409651976290170854724770681192967637145108919206311167029174647462618412824948646534674066892746872999965197746830615637530775442767370245227515745420671880688032069433964190105678052448100028364472789300925621255729633379177114455042714604802085209660887562704042243514574964204456060266771929166887975813704145207076310687835886590589080469492198748675683492576785982263094223451939324643024708652558018523465832564273879232815816756029308548943542783792746839609830610731826345927936409563130748310298556687336582630680816667063438528274142724683084720667898401821717217105942594673541906967809375498439497854186070404078294283019811805274255266461119857809745311382420522373410157356068184244202452518978838180082536916258896566594276447383355437238192785899954384996872126970593297149833426608472435007022882657604730518289088843232183690360553813288156117794649264850456318051046749930335481479060808056259844728391985326314731695764705285031892195977930492280440105491372819804435344206919555598651045053804958976004932031046593730957120815728041259865988279017956406470779929943987713325039544257990227238693160816509943913995467775630538831628559889303182301836944064755552035530032351304023069413824120726455928439271430450407956840104890567547598507276431508612909885778411740985875755725447712837149896025420995767437062861580953957819463449634422485581713595450350370747476130874306989361214502443746777793004057515535556714314620767168355409469184096316421429199327661681272856622938850499529390933938726861356034533645057308387211694915429815207076147370728380999830798614990324883875845968274584068423206917563889208301573664001781477544211370372728194609452618220888372947653045978816933306227628591569173588351405541909905121659624337369949465847084069653577797587809010272549976061087549889974511171555550969209477336578310563341495227807814169427944950456157285353453225158524527770043467357194735140288261370085500408682366612083354193632289695278352811683170429585864107684052856346650386394503265593225648773199914953275028272895950892854218960721683859736455952120132774185170825578550208348089725370077412252883466924836675391260637078347874180010162609633451808948315882236265842370160353888242828241871507118361210383747175064377474307960302367019486043132061531225966003783357413492599582792669414430474561057074042223223221665464379756372932397100003586914239893369838332251098922307026197209732377293791865633162531197156074650160727919801665949928007337178024549039709689958083639109883049027788283785940612931000283669850652740616584726689452233556275102401825211980220662631359708461745441869790795885401342448044464247793173553924043723649010133034548488032460533283513972264221022193390587612283578239272814750609740660086504823560464772733630060391057472221430282637529680521704151865268214343504735409865922087461179274056933315160069511986527040105018266408029423088805276376552548333218744395886150398136231805706640378226312251501996309056828064878690966859384547117510551664028500875346971546212571580685047619186633785537000430052617428405982545312807461188338307509507953744652328568379264982883171197879772781392248707487169178644549786198037036834133548621418832569690540763376059954403771246808923086785410161013378168802477671893450530642700559484502797226870521565138463222737953999449992728695933820739920876778530801325231305687499495780696170834317637070101507540776031061818463041917811955043522451762381892838659824980204146628533951921911336052692243707832766554424588112633037554499859015224103906341396040278129584535841695902737990169234782083323017517608797737354779171786060312616071958627634605194239000451515129764657110827769901337608163018339944727879868990020321569095136921852242670426633374236093548605560332488890793549969627055718055533916957501930416443725243410084537575550834969668714884624233494958955588103766065193140673345196889573512474112659502717345981776255859333864427218564009522349895922040724968066468406855594834615626819536585860030619682979811240670139290824525247854107854190056188609176008778293056047486205487895870612964152370242714655425897437935889743190912940063446888091626176877751967499830541546511546761911098186575787081301891810604723672557953892314675593860669862480490988979419982753187559383521498819542199946408589980208116050862756411068376223918299820173442246400266473894151997185685755580304845268842023957506384529182508059358897268693083696252860472174483586067343405244165405041428940622136254490733682510827299956100821361853488843765443393600137323838439378931890898892401152407565929609045189708353789707923922247186263331828819606220942688607218468143090884987629893165435327571422002933615554991600277416150667060596875755980022219011467600323392371650050749043421205627804872743847010198808797483872002004283530487403365103394757636047724926970342574787709502414523782844191724330962998904916688255227385593024002392982314364227603356121767247398249858228751560576029382848264443664894102364110324325481634356738997889572726620898211486533628753882049947336324043647371400271852383781975034769092186367441696943978900081261465966326189160740483066635127229020535238375982311598449887517751646407590728222760670814695663895941001406788744865807225620732879536126048887941897324207320977360986509999719180230140138348303390465505304394574315997658726645283777572081620962032528392756885773737231441728714982238828584460773804698968744462391905238756069239149131236378813525986631541746308375667965359343729178912514553436148152494990034169049125191909406316018728300580728728800547334745453710320507883384515992892069197259479682077278333720892795526909769030315103704836652768677910307465790724315192540858075963648337527773990705572847349535147138267785689539144643546565023415799463374229597676532732218723843267562296619734368333624990574321891332331457321420836868222469448707323450598789829926586793136396602273113395827502466465174240225068475202269037124440559148498968037077612389525474213798059893614266103917595955907734733770023898046357628025100692603582177322640087298015700579445448867623280523490062210330639248806367018506755997002300090854701753049541899031929924215449353898090613366605628762906165280809890630658833816229756190860776050665910045190578781275960457449156061321703997275804802789984174288007980645382894176384438439976557367402130945831431641889454343166832685409012274537250558200616914971784403527199515792981661134778901442295030816715646563817388878420183641815667107178822908985875425860586722105992420723155546588508058910651960561945838809570321657524882909460404762065035721501724250879094972957902291137750717214402309856741585864276160360183590577598255346137620474520449703803824352435557793902753502177927083938002161970314658381167793930430548143019903784336989777255701573518732444839953447250395671830070595297153706875430121632971679292017732999823475833797051534241818425878395933047552528202849503593875378004897341045061638499467875004924743439500561267011937824817652255591601005001558560911319007577115103161069770832969757414956723369871186181039656722816542427878470807866075526504924741408268502352328764512641357769575306875224392184841159953020896804711168538797454671087602671418841823278653191676720034181495989875793146867710730534522303830769604990710328303742959667450231131807813923509216128880621286802232887100332260236627487353604173086047292909071964981865104523847926628419352047747127183895889536405634612960080189596210343834889778614151810513061893287276904548580746573492132008209568535338029291664453285533588351114293003831250214583794336266149310188335251488943460805379119541840743774147744869065464822087355609404669564392520202568362550911936322050709549245890458706386606859362768312727694655578864265084617897035820426649404118759233389982581282480448212831773241035847238416242027216905107028536357922215274667873103396488325635184755661467224856600228006389293572778070734330615607747768198133854082036468650872906141120722696159231746881863718847500681971702685669345932961838670793398245639807673641258347190772101871853788839372421578024810866061670251929423486228969557060619956033974652881952965389250877274672584613125879584781170162211168372777498135977855042506921940255887433072149811922488203532211111929199137820433878035610974125000900837027156469890570176183949528306764207194637277199795292702060491738978370311266886439721959567863485692810548642564567462412981248934731524811796305260309162209337841649426900410354820839463872269870345071157002983266018939054366620991704421705112888819628149435787079779292089363456169599481214119539581985564772661610118176884732509268372580159506982122513375113599436423340725764260814810539852854871178592000642750642858171159066882407805768860936365061906223577419743057950344546401827349073069440795938272017722031016990992984096529272621864583759880098023312038716093669195497504954068717482009366441358614179464982347643676609729028137141584447464296805412919028408595873676730787658211956374584520911269375735489795670267968986060780128719543119950212189149140239106213314779410166961317051523658629885862382745669857894015330994838630903179005098879107524731587928780339909114821884294387062700379206973669620589442647961338684571797576875015001448158235338029299163316452620720956542885325740860413089730639621221206333402552692075179956659326306275527754490867068794220023344696347846207160092758668051708646445068499083699067615961228929395429032379523681710719918249961345396869429620383042301227254495385038944751842757471118947826059930910044672715515731562432936907003478963713690392916544526174599233078910933089638883470262228809564494499445042579785975430007508589579863355011243455661815416926221231324308436125202576281660586779752477720751703848886606393038929963122758629968447306892427441005026194864079225670328721534457326001266110001803485680139136943790409553139218183856034771625294647445189128025389776819671078373888761357640330297556870080536639959645908821957899844506403871103697994819571029630454565927123223899289785242693925981321310291507452162473676722248664949065554293817561373446457663312634195393144383024299549833905488415907718845490294687937730096230078597419383715364283185104093610853544382704973314173833143834781761839656875999114157222260203894581334148967766941609396479487757118440173395208678919154218943096476082237747215637704937283711384156345729732970154998116446558644171987562869716062748950498022200599065235120675641152904218300963387846180616280024944446333817486452569385801768192215636761790225300439476686381985408285157002761824536091612847434382064569994221474214132097769740887680062777704777645153124284837656982322928153463150626847237465967876700112918620016317437215043054993351295388907909754642439911808880744977682715164709381924914671232158561599710806048160449541702131990737102176949400138616060227635612292938068934557215206234227747840115379998499231305998634230369986639906887453279243390849626466967778299751666910096267390032892912254374138081271492802672039827053903470064802841966065222803413620063880192452456270669772298040260686223410018735849041378393758162350751587173953965022057160931278093049385448287623081873557997180658678079417501125977967396646582857390415574486471391888484247152256154352520911389686725789465125072793204288169478753114801367739987195560073826031588168262794071661081377339735743068724162361651880459811096859173543997033333334769085209322660521702443985071093647518714949087284351970232049328674345374039518074813535376170731644976922720718446428326351628536141720365007095519607209860020593248900858649810833494104654531667860271862884834892760794284225362366888285966356768490038790833772654590250818132145052043082859100459959868582096336760845915283827765301694654906206244826786909317729502945995504212772713595813467831073764693651122730860516435295010670346302926615032651943138571347845062552504278661198140385832456300812176009922881902764569901181577552018808533346978265781990861457212229266316528395787096975965736286333815655934021628057014656789005261536440492492091957494657997990530488072481665660023026251650787251628432331662626927590359706034220924318477734388350914120579942224103420464440625219639186779881776383149858436349524733582716315584327118659558514809773669363849581688644653851839503724167763079541625120742853828234292462623980313950938885732305871237138849568578988100114035987781439496162514076771387629600645031396547685362439137710623317685664941458023098480782730890499869591030597576998275307173392420115719857434801360520957521416638331752358824570667093303763226327435293617038190514096572344409981983726380445950256415397611404554851456531018530153523577715407709852813683231687464361881149268767751077795743755648146087069496880197113088835500365776375575448202645705046948322234523669685249813113032715819731197456119165291892632782207465801261781297083389586532522453040669249650457143694056018820794695585952069300956531149283819782116065263554418863304377644949456161406364491749350761294180448704369934674381252587545411476944013764545355833010277826096939447998803683419974140476762666710340637207100766325021859228324783074305441361535800881850823209652182778346724286044616044827602404066817433133341798015106390488505626721816620867551519283122801661305877563271086573006170527998332648426658048414542921534524558746359733839201488551279090854482576987047038670467792994038513894626938504147042024560835617917695216600046648829840916269624603530633964515748022919308548834442504977268761423555050416132560853150614953405619169402212420003715047971493749936458254637314819774738173263660573977516878211857375006299012585921650470741823004415632303634063971635207417858669022223802357578593656504973445388567976069959028631569672034803473133670572083011537285345431404646772505329737644315869505128775512598567794319408539133841762571246504590140467438307498520733151312942164780295205183674999714433827677200172511311067887814899575689151996062272457641093586341019435350803061544739089801632103120804338168525284851406054474377163619411303427411537388173357524007314542786864009384321822657850426073600589245677218821253053556457820159609345954754051904263605887861754816558476112917155427124451019195576165106141589667694801757186984868919242764492311612621086172622237967642611340227012917161095406364093959322137550192995907316684755671664650586582988372049390584067737211493892252698150435241210210154098086178417592998846791860073163727590913860632537451712668797877106307128071082976778514367653649989903157490440048093814314121213881387317965845006123228485912498593163828715440567493119293985579245864210941446417315365675453003899649151857625871270247613107027410078085120082290713996964715478393025849878082791510062497355621505723110216902122911197509685019677699370922990035535247071990050698891842663497537109691889504857184017213426619677660101181338072639228883852029421249764805177731246994435073707355334698913045185705777584312824081075386282524946547568646534080024880352478226524983679256637821043155325496902372292223490746721934153237822514277814956900785699901764817703556445479216826517123117527955696947993673173632071589436815188442627464737665393358899288800081907808525787534192317932760728760968045647127329870724362613329799321811229559923072261825233659759381005815456735924134141390547903392231593544289424725746360426108072331700595488421274624499920349383824766938657936618651738477907092890123783340276793483348945439317862925989096131473858353536486489362442084567360835653295935529836606438348456059160319655282950924685155336025124750408740023741627039189673505281305713570860609605722939581859874767181988013718014222997772337241954325112158805956651351033535113576413906681051386010689070835328735703766536272975533335631720723015216751016137401685764054463319800195420985077411845891611402061675071524586751268829810409397801010856945412882740959027224659460200063177786196077576999952761510905122325424436374141091823452331163200046839200385063203781095694385607968937519343375933413157997920414671624329415631601374499016216513978415610072990171480368984549717553649235210504862616609137827674042699776441717204359555112958950503471747359218173318301987729949540060694087645550513729320804728928180468871610409410130358637545470846056498509666006689490913899130524084180759272813222747103322701868914383745822104123664606274734974248214423569728284296760883812555408424271463658657289715664405096363000068306905992177547296742174271530261609464446354655222807018677786088171446788281994728019424854688530077260747335286063951307368960504245272537057462683844318499087024623756994709596399670014043788309562844569460913011711740805107974962821133428977514246309609470214879366666090745150753046777812661725157482429059614072509059547245041034609035236159728435022364906555737352811303719264721539121866656690506157446999869974911062346026856880111803957030016056504134304947135192880192846672081004011491308648004624517132269218876342332868660539732127441139826898137354844912238550927579378751174312153968087685504558257479345574703037331996921538697443626578665587298276542121154156284887758512564960470931726940975849653429792730102692131437275462280905632161140874154115785980213992909559303158762905753496188933052952651280100049069086426849706341744270227943524385960393900567424191957542940133009348741334896324545259682735006111759374267765148375070752213873222220256462906819108010288796625958180227459836941223815843360270636577059875661371547911151157905836715934257473679350164130099973756046104207334609168478302896168590134756159544261585128612727597667196467568832437430320238534060748313013403922153353422556646164449472893800994040748996567509979798989370303202973738870003587216237381571950643850324024930554828492040623170299332477724902150445863127040865021130729846419289564506607267511848763171774276855207158009564782846467478716636425257534504773991086634506789107795831337829130166025396704335230963086835721735059066025687442499059010445277109013529286974727101129063441819303895408799107844856958729050881592730867737163105306308652163442174651344632510445035025901111333165179279612047326174575582459195569284510990438498554961992582216117217227869129088762976821783858717961593942752346406423561380294577420118147595074899403056832245432768131454911701080260383426667800329759181614522762485899549081140083960005954548663565582378601894608154015273889234988175873533333975776419494145272563476665738619272247854322013431386603405370294056473270064650669515039089263767568160124302078709087992133865904861928662884918004704313576340574477899470302754907585896964646685893696428949198763452630751427600955051510651092552625817771790799595903525651082835470795661890560863079316913662725238512765019303360377965957394948406448316811815347461837884304003948029827657052044519458102396671408052904717716994549781922411707164043917184400494324872050344532240002515958342648463152628775746328607489441619520860876853722319813379140417593710981938407868739949513423696468492825155523344768203627946639110628932365512708094979961713356202365937919022989446812649721557077884350862244482148308479905315295811975478294956112417802769921219925624007046767663701762788075130598752927372075993400775720280678944922425827460531742243928033726853880547605866612890511524357111749684068058591328890263642599629349774742900742148852580584225630021215759597470319020054053346897034718248813211849536871744203201972150697776075011203304312625790228724605883522461233554289282680007550336666439043674957149036976399094099219874437692473206958794442602435382583127728750148882984618441284075180887886549453804680351748409503726252913449457664983537286056955535098420189781277069671940049924721957252891962017793770793530803341643871289956978927670727821013145546155548839161493181366993549385363167820450430469539806401158434967080341150962638095431775965973124591849161610633470547270898456145526600451235958061356022113736796074134432669612359677905120588925208765069721900827012040934768179771314562978257903489195795620268314583869723208159974449060757137529695138819526237134963553863155128717274735843934839353881907168736857668540563191769035825213844039319349159498144201143979696130808648894162494521858792145142405167382253039938593314699453496168021506443201371518601463314327464942055284690716113263174020962791394643140120793230783588444611648793347702025389887515461766265156262153017944430950437686231089883382183472967304938059107532443606768665511167968624240477752062168155301985524943448696822151414314292702858242716416629799788632492772266293394812631788987610280364363419199990947701758624999176844942868769299017483995934841384405813950374914767842367509639946491428186569672499704735907731488160563370084691451715457791565818614936051278311626445584184772069524704819964930339942152568991263526030367119136174209666928178331509286746371923342877048679765438515178707751489855465916714247767783787927347655189817285880802841614060561784165982013882131791348415419384742747452412206302544288483493683714880641818206988982587831697549025375741747265653960070878989457386979644011175746872558916918451732340394407390137032053044528159006467774983077769693847945270100423749397141975911875896927265606910363669594804722483363807617061826219275464432901637791568995654750750513772485188845030676878355842172027131268402509484575232447894836259151931859015309384515372840107382063028776105063147255740861233827548985902066021266987965922856147211752213303182753268800235388685945658255398086503018699162840239301079537999416503074253986460548080590455844907286750573301170316276979938201529327332124486482180109930092168654182765909420357022935982721666672494185092737057166046653791013541209595183178401533650912658718799660134404531615085947959822644189471942376633346980150049384821386142923067153935502129641839741170344526450612927315096760005060755632333094623621297096259645046725551046108903919443896610434426789515027752797917101887723598859593902473478940598346297152407944403289828744492614286031055092824017950025862276406395493971045068897502176412471856451175467281074857502270567655601207707947553825954890485530545389972038792609734908324439777813307165364861807891145836571143012891547163032914133742859570996963547610696787510032895644620053870344038949346657975376781137579152927343532700052291089167020163627442826828980732867830201748878480747855850851810667570133396000200481500158878268264549354319476103909640424143143388023127912894889680668495255737294246829039948374466799278141068088828109054905637098728655246077098350968155506279703038309879093612378151545086638596699063922169376588379656044351431939714196791001499433115695633410031823113502183175627579248659993522961285842383899977797869963415672129804821239065313011663218947689779395464209590980421916324959075279942544112835829279069541050896615019767385410372872247962352516260841745128643447926379288140845982402095960115552981146189084238553661749672739247536332072368222367333910686583736210510129632997953694941965402238260821223022293963625576856240497002851020605844812374481767898714689244459478093075487496933115931838163445380763348233154511447330581988201842693045744326477595223730844050592017477448798342242755065845310355976840516869383416076372445669693239839591017224405377617433060902506968869883427008651315198057772148751577155038227144829464790880808426717264312430228982467601688470530602651281868921082828068213085306776791113030545704904702804901525380232232495437183643704534339266654407581565825966827619152817382147939496926441580190062858745497089307509775323763922270364358164010095504827633207778165154115498284102584157234106645088941625986280656655035015301467685236014923481416946704876583093473181590320947090671765884583601847372789617652354640294856697840395198652068501056070886846837536716222362565431593701106985412883892467038007689965168573774295774230080011911572940633341185745129833932789880549609020279884528103722582387442216289566320794112649194147546243073985266448175768060125373120311067623354927214356578641630186964186069242966235665779071340861653337248091106597953316570319580416007637660907015921144693800843238486241354466746433434367577679977498496753546696100383548768194141176232679476575160223394342548105703537014316086726421029207558280922726025699936570690056947717745690955877594523341830443022712073272378413118196740511286425897169408671048630955701163258752684368595388125825466219658975575842790107049118217393769075335518102582104966553967747889874446711375410323829358405642807145362651645333117447269487147402408219651858714630003683511495936622414199017589095119323738663611059300634753972164281312729640512417832067575088372736011641760505825057512874377657977159302954444140212050279571886229668723894237916398510066466557160769005245167545105538994901201145916046499426831257759120478069381310693228292074961600754068127667143137463849120140228768279387573393166096214327288462867842066288400897925678814019478028978809555952154892449219610277015406256046983445417990973420731930282736897160977364176695393980176364322959535818821504278419365421041465253650471150190251700013892034367920740888095822591688608546314370804042171420289861340247544781556641083435212722897633007021820376768200912968909609622867362072258124896162116503788510344115707670810609247891003265409931604660839466726355195512640034560158572871869035837295826288519846480893188843881047879497051543510406367270959155154217644290558882707881497816606629374082538214712443109768613076288410543961826113371066920394197213942011827510400807783217058994969829951022421521724563508677142317080712330498182852406616493208878256352299529514644328371667599561107677367517906567226460523224769965997139360146985086941153617811880554086764268863306640345443700254913220826081326232057889292395599280455593236706420039895611482405413808127056968633451830692764905248417461010524281550862086368946489341533260037128619351115676500110600159968485269417340034977110682707529962111532881274643863762535371398472591755588783111058940243731387724079469395285127697454217976186051220895311583857798476475547109165969356175312448439448663301404592716329391582952811897686092405887301799928892990038935289491744367362708549571561870554450319571510965826146626440721139720837976957316330803756829759478345172486131543990894436525324262117205204502347973094415154038772740250127442228303344349081389554467393134820183458960493993057473817923792010643384952124862147064554577435182520440542773050653157762361755959989826799224715645279022311738044898067526262196032044441357245971625713352740171533778709738407730509483465749990037596918664730612451748318958163354926747993014984573765902585892645881401846093670371002184451114236355081712873546288761892698120751357625757752087689277202885595970421138216483125088933606847423929394653876461222945655559382145185494693359649014305610300149942426175620596229768655818780893875317173066459417367637326247976058349932564607630736084635292480666645999484022854934620322564250640033052886647973876598835853746932501944645945149961573736753537077168041487067684349245960871859493834819648782455113801006643729941476887511765971521108926277929105370041223557916306381997405839315632518951376530122300210531234180873872950176599947332264521440225220748743275846145268235371092742859968375731864025688979920606382288255154072733536112337460060615698484399292542036537192641687967687722925040370271637751459377261239798430824020225266718454868824800987452580676502334511028245724581073148404206883418151901219606315379411954081586950353470575802499801929788767163890458362496883452737553140235122003925909580219266464020394087388548913227765298981378670936446115049754070144425247058386616466356077679901558763750875963616661765444253841429577296714777779719973868175079275676320844323873590925733885697180606307866819629160502907668394051649499240181918325339622756797211864705213008721847816102592637203973427370154341910568443651483003557606350043607218990378048060162186030811345275927055367051682475588528014442345609525636376452750423271320493438610228327880689181367843562373366816391803636911795172676058890354603758368954262769454233500382206170443519332127063618365130694413435545051764076780328483518962375752906843202860568574656319091499710522722356970459923868997317350947742665571023331755967174353055382235271546181115337495692764672018232256417830190301538473939361035235683145934515220355385757465476278019572910465563123450598139595415159248221607822173624215754534995255621418363177688183778042792483962415079456236444610269681832788833669237932113476868625881310660071999778730737197581323495226768384541584556208098809714256430456898437328184623386002908663308390537346018413794943781420425786789532757976279347070999548289899789418147774627906343599881795195170165232505520093825880446781310458749713703806319669411542034541803909380082032738657912023124394186052911541127668491433936705086156817930414273535309057815169306166770103964092633426078215913476366361242028667717783972189194861758673198008956888823925731735468883087136206257778216099304230762005946411604034930547896241140410271787296112046500810721211421932878652473588958601923948401407823615366235616134420452878540730531150387398929182663127957564119438396924245899021258867274996557025848410576048005813187655298321305434304275382075383480387183064894938580780904618186281792160213439684016486673660416914177643950385794776415044191092549952816055319769569722690923338589722497210455498745974885304383618509159183722949169067021298639682076512869649411871204897835080913135550294064012911434727622107164860788049295369291041269201808597650601298218607942732558889537252396181230445791618914159203275095294923439160672749794257016418417205052640994126234919228287792067908805026070106779913173065484243573826686355214757493552903482965466146758908816353245890462802305092409377444751671286264930134026166951674620129413896496695920376038461819523364876120730726312327350875311375396247973654985053592971998673901762957449366433648328806922688498326696751980671097880825644990828446765100988866020049812523880936343804221148131025133944434404685531366494263760994386891313235635112730119357439460576761515708573531833605901191497923672974467211698641524114637891504389553123199763144310658131375348186495469909740869281341944839971739835255737494682121827902466924982386359476853069805601321861244484646920739650372302150443700606829758977280096248978061082539401389097543441948189906247772770694120765563051623033230556360143458204603302932471801386577188135986752699309275020676297464272395402309938143153044270395465909836845398649479875673607295406790609034702877129987381848618338236273358029738222606721772764255538853388417912465099737876880296422067761067715902425298412062833630591420421328196032237434300479281554571835393220376453285180961945308187864254078518880286729725260970586170940561408351581998245706684046663855912069742927556852183484756937418525745404577512438507338877526601084305860739245591312707174225239603772203878585554071683821733128194922076914427104563397831293994845349267418838614601747881767112656150424686851448038825580988063695446528271274957404054968381115935555882545204389602631421187508803297342936515219075374492056148499281051295175269367619370078220905852096309182488698808259227910528123703714792784166664206852753064284353289345737791055703571350896320601490626000533805243744914315829744930894817487263531362628730897639562736814840377962364557140491822482254729613483035512022921149548269776654351215848251229735192069518545562325399419890963648692501762446537698599438644329183061643972249487704078556803324617641516513432056422095122479189518275960447160377016595844905479304581482012841228514675140562912458718247688584756013051640748157434395662327242289686697221394201823498386011976528026042027368127970248564706589149287288956697549414396371040486956929550706941070240289442763737492596742784663408319386388530106074999960074996750672465933651499418705863181354232167344175780774668173036855054211087313139484559304108212700300840396896549771056025350168807468227574360344318493878943737922767832721982151361126161351864646993243050644500498233562229550314777484792383704808641665854581071102014050574309098006093592766878408182125554554518568335491076628125075077868512125868873887699857909857342988259339852610998573059073280903302506544148847398317902340644035057621779632953374116771518302012755278335790140937046839540394296102433380207160928698470978076874123974787834754202457878575934404383539436065864773460976857220456919548382381867843825785004989312411779044396432136742703394204885348777720972228125042190813682995864401069391058388286903873613447510819550093001115895183622873315049661009719465861625328755797362579210736616757803395110902566688241350574591133499327074977524938827268685499620941151293716151749015465101718135405325710050073868769188172004379827051039088829836335060085437441121004929792762020949048195566022763949086907806300955725933448954542942931575999098379989477858231054255225389125130733185676565086970952963603425618191617837375692659523249200887248130743139846054802835336304594676306491099633600577116313601632296786736115542836603075756625304098142831166302008437985332399634765212640005328453660744371961306964033010444464217285870674373461258159457571688076965141214015491232290593271164296997671252032306967167150901566995613518976433942164068953964271438435418806685741515529492527635485423706967104115320490361079920521647865429466800332485850048342179028580718803703547780479375466781257976909338996814874675441700221492303068315002774497122514410296249162420597014162526239500260060463568982773474973343472238621611484481922533098472174901180000501281346005153196041249311513219105131345453566004716510912824060262892255021470105356669158285499045465750187269760196087140573756778784000898567303967519575746768360329768769201584871013448910288611518547710447359416655378525972053284254544666585849008686317883025608278115971787195815934438909328916247491710230846180537666804658356748847598755863164562138793447469502456383624351438943945961014857365263106008257960115905786109894289102794815204593416377972883327780074174737060235228695133726598385477704829469866706930384079841254378278586597360247874241252541300129267247960900072566578570488689500753146521124270820976945394620808488832638306147769088473163294463499785801144685479782174814953368247953099717836351243899640489904656515716779433331574372856008632019962527043293336021152754518306299182418239648056556659746106478298117973599795710881315612179136288583699664327416922797902686960778100741651864905260465977453548187903008957216536420093603386639891231596056688678536050020986926914565191287118872577873230641690427680822193664961612206103896449995784242518417681719242711911076998158902285753039923113388334002776949230331722561715688363081519368923266885319375299174943423826648134695837737208749466657972294196776304680321629804394812160481374285813951778658261168470473230025596675366282769674394982330721310890380484780155414658628400645821635844806787446613326598659791196307691130586689469503202491833541441939207418290527683706471176890781503799676907293801049191342697029454556481077876455398502583915372125007360892989478033883473694534614443063799044450313412754151460976823601102959916412138540698198885766305751072362264343436126126646191623528724170823023473157555178093638503709801475485284381111392608017122902233277095317227605237832978762616604520420749491449823472304696229688605855790032091065285913441426802159289099606096762849273008695638819434974115319923133658063277474312198347734305544449652326745256905490022191264664716125633423469751938909103381036882236451476499644860228877974936387361304528975196878378636076011544105187196930965834528623369335080234617104070422244197799855082448144246579998962193937761444540370831449292648963740286644212724560354478183135455584897814994931130828301804293691414835003050838229909182104026000038999892759614506538814299096808775904467453636366601677216431774901780351940811756210772364983962050984892462716047684818478608478381037056554289878885886779459260957865910432447825383794874601846075525204932356789788662453495427977401304004996573180388487151893943357531132308696022742047436948626994262236941051765647725287287053848863142308938852816574091470755958756073212366450744280517990015624164408087989402503475943793656503127740344493474663990802659566917139041978037188706253433774902341779436927019614199999769770552883338790150470956872035468157627015537089727394719428710012763334779760866670282719697472111763005851793197303077792404517852298388282909458387294428244344806138629267631993779435843050120568659340948537752142968518693972722598307227776777567736476657930531186381886212134664034438935993991239573092574632793497467452892847829351622223041010606698499488809555116315213630860838514167912376740270742651111722185679182353025216890541471275779507789351591556386050302989680845536911287455445958450325617169514215338000281950782657386881643959143424623303572987412000656739047853504892187508656657066506206313885753575965108878701996816529501177736997925981487933058204965517873724298903595563790825437289773505859494727774498345445177497712717954536411561940092496840182673254775020010924229708336048689300786605317482155951807006818792332590071251537816278456998137452807741118857558641321851005017697614292368314119684867764741292193647237368905021482888616518126762487427730056273117757969758077361141503393197712377860574639485663884425234033906270683219060908791326358033283141662759613507707559558140630515653339975625172751289024367926241287014262181960066190667202430887565495053719926693062871334774416653935847675883147662697831502066990786732816546301773330412164986287304502222364546504320206098512135289608367561003906916829018408717972542145283969034734341347512917119379875919491661226182485732259124652398367297524105946141446838232377371411611512405434708870100585829396253766198360261995306827200764723678269663584522231528346257189737678868392012377107752589823278897929597884797035334448055110220107693596032503803173597561112103239651221561777364619809941111549163097896649036163857671406414128714560680041277589678796014700284084350636879125237460079355859196912548666417973558567207889159510501913678650353415192116077035929368766438432443416944202772463635064193046976814253050755151873851071053823448031925731768536281461684095230476733872192424242034040497883144983909841238919637390717886927344766870694514341677470843699693833253260228541805997906642749702966804461146172966214771710610447563902469153943378346969091193060552640832934888244324182506239641377118753124280656332721252774994821249317525453111166559864834824617061805418306525017243266904103254455530258889999045107214910431336374181875811129502038363288996564142221351980895550686019565242011178275513971634191628894743448389797753440581468298842120020700883208871663756159687424361509494838340857607605629762079744660351949406453162036243648853736514514018819235075827842715786787246221773736978836898185554120076875175498256649475660439131004281112205881936171374287459734617259911332718129081143661606765643852648355213629204016429708487139989940249897488329618932577417548269703707950061851359660417101159837424495408353505065755974153947484525654203978120987176548010343884967915733651049577023871100150901702062383909487186176116260957613692873280786012318704345665749145167729158808346090639601736865738525399824259291049990238841185106219114098225348589006839885155036247975765028658331606432765102865545888633713680911114286447692917372639937195447334527693431722188992289982404666640622773164945058692670962798041563852999255335199948960595341502316805357605671103308862646748168882266653823164481131098909041087170212343368690683011456747510075017408811115021929237974856597486082586353551530824776217905368902857235157257742343549052804993366499324448031755495089256475128833437227773005946269508032439205313269143352292374768408285227069867307164144305279405713970304863187106760437745763402534315017131881458571777117434136534734242360779463353867441825206865658425416236566019379396056191477063194135144449792591643038985209107818739226433572201983140610837587801148630422910044007005255102871078757320943054486446592468536417371988071275523531201287784568961812076854269649339187085582042596428232865331719903725123539857045137879199720075537987617196229329132793348861559061864581803092466393781976780253779582354878352314644196922818568060602266584525541995563805414969149622860377013444046456640439509287944599157298607072503525605754195479735465024387973626646100584956420721858208986227124527944050998781162480733141430660393042452127091933712940009567756520534334082734238712290697066058503806991763654983956437975079506066536331224311952654606489812928979018918746688699219982803571659519081675380091092791078654228293432719405530018411351066491169711873604928449961514742782513722704656090294193993050812712706337627276918070284540021832130654264784123847912559278240186635223542649981542922260576942142788206112018123000017189406851247877790561987882853604094017148757756115854192618264232080082676141796655156581652837522235722984587466875099649853605602599339725513640093436741814664628401355941825240305277880374355728016317873358495150940310082471227898520754047889474578670832548044890309328132920106739560644496350329423470299444899469037289526711573810678874076599313868839584055806279500845238368130059718535575326858997545116449303686393024626115292739602955700355178566576021938513877922795601358475103535353238834529664335704484108351278463214943521838414868200844788496390191807077866661112356474706563801265508927948664286859080373340758700316059069223283991946860630031107838676511700530621451259703501095212075775577907139322154823399208317845608914358396742449656903275834760307518970003536781388760291136307921915049562006582468943807802622656108187743773629117049016334181202564203609709492443906901876524720668969996590625396973401230402529109216625693014109846250824298656697129461971888328200429145851174453874450636664216231914430504044203440957079739778387389931770394523708421789895132848556329247853312185533302214735753557866755447121216928005445814522183166488717364145242150251687471121946305430443899543752168186363894124822543936891264176115772396418135244594508697672414043452656210522614053525449433010939602679437866407037594761082288868683152880879432548751482661254902614581965923891096463629958601302005600823518561410626433814484260978276730487415593989095728373023592728273835850776829499895557901548376105712119292501435884135619481874993742984661700853747221459614867254773060283276698071270614270268091043418744307215770630565334173861761318170399362520574040867269480563720824684847418202264794067621484000139964139402568874510842597528318350878322379788748599498789798534406386892394013774661426968359833462940611673567149221681658818765767134317609933850891586011778522420519302715355098928576665279162096580394014553584690756062184510965659602835375674141802818178415658042323803610589055368446209948898612865909103565161095296723594919946410765234944186483642441976692230354655436682305519388592315028018678419079184351671736519711215202850598753781667396632606280476386158287789594926710467997466146983558769557505651468636344135717780134061927486944040773399388601023532270027111759193260713291447881987710830230911808415496930669322560498653395990913165029284480685771467836294462296055419286555058973931585586721953437895826835026239059063276455942705062803919429694379304902160824611645630961943281468004297976610968307165516797104112440229903998732714079458499129975847225920980814654063826685522787676759436797925987071791961120086061057219980372041805370174771619483556255178708748047023204866619381527803299411624337886354882425775465612419557444666340402704126263024596699073687000734173514785540019547215433434358007979466060930464699689836374036874596840612183120818470825228482302903876140565211955877060555434006638898987737756789454891385291001096385417254830415441400409804803637435616802416544520017076917465033034497617485594186047077339999539499124781656701497437537501743997444247772460242872503722279030643693531876373824463458326214494155298077596848282012148763862423200696239194822963615882337094968936092918016889314098203469248650578675332952384592901776841722626809811637503687976559242733690747551682658090777953472890967275920609508935163458089859606592992507914933837416551105994901368822194856842880532033737345746129072856064973100556581642845677796254657311753085631902356528889236532299402454171653380879542560479957063543274190110351768515978832061003897802033160127164044534929742656053403674591476548393386048364495752324082179909725573172318844499075864003466037567695448648658575690533760972007944979956059417531287236214551236191673052432219824780623491855462182499798540432684179027391319284723405741973574881827106170463122701429328827638888886712754617131877574878808030925172892548651666801169400220177133138677486367479723826249787614206743417013474544056064644295535222870192483835989989067357453336520196343404125744810372014766988139841840480519900103353675852712939726470563668078779233454210516642917963366160794537431198880297282004442696105142146369296213190886636535473276259469881303334705937990625912719070003648243440662923094091454458379144205360842714459478643073938178489097601162706275234905964708318830837494736605350652126149312325760048390213071260836616713882890399267697612639394876738403668893670370017790866810723865941186727613604143869644916607667178023114350594493595454181050217705225382821385208658117312363224152618523629322725436300871518850161774360568293795580539846981863991591117613074501202567821997036368773052233132377089773548826807876696794753696080988420256050836506780867855339348770737367533939436521426539798603322288721539057092389974653573009072931545371992015680976848589027700721685053582660798025317669139531347884909991875444603714122299958908699806600178515478672351947952535537395299059302673825387087811965468441057155838478417375321127340585755156819841643083766621084933630006128751356166478187461932960874276099475551404471794585235634670712906314719775500376394417064974768514774502560009120593209871666868367486280028020557152295621712183683111802329105023884336346965689975932022344770793050875562021677493499444447916414639438245897154275195076996672469355930314026196193826076128393725759280034818572336294271895600575349446943121045693997764294426342250218976799294326665572303793289969548317539388739758278667261133650187191033788414991618302982321194487454945926554824922690311530307345291078920108670944320196746264024813730365670250829915012086264525652368500440885702945916864669173970519766614852355337254241322040731502388434274431747680008832580140480747313003317556491634918113457775703690320308406900801573635576278871106113866478114140749143777042855137268324440768004135170921114563653451643639952831151730168095424128693385802892443003419996465773305805914163625902915547873024204001204879744832437199601717930608173799364843821987672439619641296768571746242341942257951568595587839035918012734888236494415882133749721172552970930684720144174142675707271724678732917705926679187511360103821930226939964141202425087194868888193525547973927317246649480503852658987522790254726508438918452229324298773020482190115883070370544923372790427733317441105362906251233651182076577705076713644305232893932006397592032273046669183949544409794271587596389163151214683931922793932617859813646429263397668632726788756242968155054591431374725271527142440710851947082026961564913698769604571514527006654514726382136205495939030426903916455394993477892487904668491012839484897579036136253665721534264395173236285564041973223190989890937809361520440750332573803735964190227292820066754058764168852668317600854745282669671503471517827486241970204108304475145074658136667267030008868650808302693753444467187280771583160051847257020809470265729520401042696425512097108722827576141731018042005032857355602847436765843807061344820871783823441522793897684846071899585469223743900155601829676670021230815963917127062495469690621382889303726803445655685543267775201436323311359496157938811624661795074241218015657609467758817331224706629543349978839281926146245417636027455904937837967331189241449857300082348861615706890935519390659198608131084089840057837161563456556207919016310899900586342336728526983495295171539991798844848558514108140472463321541757898249033149127995214418117698395239932769598518477834914055199742724342309103323740471562926578391490638810924837275386123856349172282079246349338916645456585323228779853532549181545424229510527877285545925833383581981050398227034877610952377625455519102335790231993936299245871829967124714805556169503330100513913116001269850715395602428853587681309616667085382519782284485421533930140521735309520322070594941653257710630181698516294854389390460798228399087001033721769064717776623332716118611236840495448139642667022162323497899074275358010127522725430677576141644358432461167878311173272114755566793672534980199175637646822581285597928350098854992034817405825800698023203598682709995345978742995953989555341610473930174178677549383275756571491074632245264091926078605016539117969060220309844395638566431611110111045289673158392935278459787512666385244892206063038098230328385426375278705109351280378768653464274297230370859114318958761774047703993188512018728370379133227696445035928586547668820010321114465876940683094977549350909532063755518318478139497966561474854983489856564227301266267707778091779137384138046421407502098744742730716170697409021921590023583672836682635589267581820495004422475619473770397179006944020867796736814925130242546155785653010415823492206994668051302361819748868972003200034602669488628736906834914800283690935126833431043727935892890057984254899038086355368648480417091721250715098644051057741563369030005752083049507916863741790662692237770053554346989654833336979755227421277467238108334940474948427434225118820753071524647448217895228459395217649583020401387727091945717412534451041278990892468734237828353732798805020345174077927715230459293865573974005546820721825742846277556504143803942581653777163704849102117135899095444741406828362148584081104362290889047618373033647584550997128605288288284628398256331358393298465482100708689165828384676116479292501622794111388887259960640010472015483841793457558771113942880874762136469083396391435329588220412360832837755760753932534250269726030583519417473290874228686772324109548540400604728107692142838101237612654217411121473154359110821914851542399439509143036476054671005887258106533587136253047593394833606714511806060852323523013003053057209903290585265886980461144529734525325609634687671049548192375102586717922336516338680287084443862099632913317846780247407737926479346237884707404055550198247119838490280359518289320962527620434847929245625038949136627808254439497017449571080378699251736287917293479181054240973357919112517559347213233840134382124053115369225503854509662338759783132746380433629638396270447806076926029379436161952954867451590624752398009681131813892825027343941785112408772634419887352041036770931182809730132786448648507326236827222786048955618443689835432746185194188567691632650965580963537716619331946835544648338104767518618159353892388105621365748721124401605823796602145325266497286308944060833818029499084671900560848747434972601772107584757434489884934838221347851455949499238512428002920169115369303478674795908353122342702261029681201135071032275620093278391369129054492587665118578347058361382339108280659069305195006978613464640936122060791649383673020878620591182340838688882904058801563520517529356694878833082789269964405981296487600262266397579072811222426588715446005876170138319198869451143721837473062267180328485207004419733769821821725294872360402452041136636540313842667068854811988605166898776149747273621699961616545538405677079785216119765687205887096343124149329134959518920711792254907326463177379605445490840759511083190256893692564458518450738692135150655938490770404279644800205689081467050466621415043721635168312203296874398075073441889491857983688686245334990782651528795026382670818045252092969913440328103238010325519364502502188168324781605450445008958672097421929374705088169470778686168880627494540535766447546697104695680997687309603720886514879817300287366105481393931122937136719018159127714367967820735850707529153705580435164888669606682935494691255633171803591653952974159349323800925926875397022121438018883801565559086662039280313524262020500610171775253701450815469715467941892617292085736505678605543625407898016971091108320662757416664126767794919341518681415375090496590427241999148578057668431531000253109412301736056598055398485325673082232651694382755001330170171225302356950076633195006558298405182656702650430901542023584950024026046488899057068669888770284751595133644561682555604862925873587885429955105156260977687219519824566495100738276727119393605687338147721981522950369894510841113880298289321382463360994096938860691468092460106448153502770159098556036512980406965245415127641980819723910685310716969932728497203812042399046916747797056280456313987239173343185168437276976617884653300360083115461724392216027219603948453007187642341270007635731666006042749744217953851419370564580219675262422681939241119198897206341491408571282349235942115154432132645418469812533146684964355030786706860087339164577884505094033512383841009920352955114842217853137368279875198490331264682562195661660036489345174380394647055667204597889906663731101533464160313955316193359757672951330760261775976680174454575561067409087588114964770703520338689697536611391160756997140112135112463193463112043633809765238153696070421207961362249728609223136437666629866350708308052393309781838051193111517891373959538647995695623814742699533666794266203909533779479364201644827531826962585717120532171165876528313156875743699662475348891181300620970164914204872606820314576417367696986540417864080452169998735578111671192078504745960144790044454032634379318242876983771621364309207756466970518319966103962837574802839090616385383188969767359143565180968493447451887032039199657739798033069802220823751212333784848197473219218159960967693846340491316847034708460784553646106220121925527381247656100812927253648044665438189805191827026972476060292626669924363279529263466934695911503178349745296184350934267129078839845324115465557921246305059531778080700599733280768193357596572932813896235765511390296528321262418232506062750150322924185735603421041581771148150203713606663512425274528959105612711748431128557132188782659825246374075764960481720514610440507946212521912072906932519661249304821257560486842614473222132971199375170589922801675834030846359375774157342570834334841330198362796854182803777487735024949079579469460270903948163969042952765145438148350985723457391205300964677758037446990214632450374230868712257903491029943048830428994744815797968177748186047505176084858375011861332911021544874221562911271925613533942341167513837711573896696092864190447133798741895611690687396339010280644780100744397322744746331088007194807151079934647344659670420320807339239029175275704784952285738403590183815200614557684941374405928464309132219919921521021790975624470726463847471657810516145255603946238942588046057473733957492368989431950351275829267475925714214089578454907184337070812719867519208845298745931869605057048958515060969613121507644397112684606824600684954255678490156352849480949181526059010355267948868593350518048377843935406779400976582729814175079717077213874640218567377485132642624949374368673021147230686594409368164045287828208093675864064728015710477559542676359036310763800985575870218894966927364988993841153333980659153637906474531001540420871776581114330364644146227058467134007485427021378521277832389407954407739204190781401359955973080291015281244883878233799641644679179376937972938563415065018602138030040289186005523103079697056200402811435537516933549892750906061009246407232830873583400490616771655282181983761492202681998657602209774163355526320416005640742137471738430447452609706554096672879333357487949145077894924289443796959165331175528286690468315395494557886988938702410873764037267282312292157490339227159775340889830140639401484576961593351613970861236294525170280231333729734473835530238542613440247557929875732853953571836680420758150366459735474851658190072817088829100087792985999030598849819214656202569306115207157356424842852854999366835943776750956687553824083136768086402588109530012957668629171980263696266544745046218694835179891397493415274801670643345965536979538028932047617931008881551504953195035369076748324340343961234575813907005801143483379450777597554337199546789862000242835254159000648181908610722915623152606138076218454763856083132032751109980207962006153452324266098248124255835717698849065231517045933576721768381734502760250791163576071151953944419929437051407157605788826273884287841915407463150204869129869544181904971373364637130098401786724800266463147447545069138457202082145906245605794487764939462746352823776473646121275584648260105113735946989941194902784671994809043361528189433001561251225135163154837539637255227406222668807915368283993219819593446250090636682694624189250900839975884751458370343045383773947261475386807784347637754315283920393857193266561997259461452215021496161832172529138564838952254371270870894240837231422841328794481859800505398274130415216270676730479932083164517110185514420174632286503950380913581072256502940268705462724089007333439391230289099994583338307743366678351723915865881259007316929073029138642418659258249926292208820887561936282429858054195095569076512971901077218193306690118052842795653087720408836082381366917317535827271348054175074510853956293098772273781097555183823361539473490102264965482847390310576050483128410852205825371680750650626919165444884170059375557229395573614015655623834309091754666704011823926561987960875523270299773160298081301315134917852202163436920912066475313897442163331725270342981131080028049071118637872901919150721650254157752388860104976405793091034605685486929237351532766498928559039653874888304285481271108000760488691189597157073226870113125639505785416563313564383949781689693690314117809540862457985915856962311031485542965297055060584262282884873050388855105420502600735661132891129760969147188438087517060776771390822194007689713132096351500078330506598734778214643255356523266641676791525291787535624815985584073736644773137857361519818022220700994924267340591686464345970215650685109379183839760466580818964749657553280978959554455462356992882132280296009757177495353795251297581762912517581414754645957257614909657971446508835688719004815902568624434654049009400290638089672740199381632465413872451911883678647909937934225210050389956000863690059896234948440809671907623360486873064907388464049574203246693269819706512352311160555075671949293013494974400192997381321710300646177708573485515412061175158862275204989902218882516803866782222705249842267237346088443942572422306278465609066120586535344736247493656522190257423342588612829582158346371794041382268277653135646711284780596304416845392291967155707588624346897086613712544557476530460006364283148586899128271003878521706424832680462852384534364033248948904309446624215984272786299245959696985266682710864017864384464531855768714592507717913026446443980589567138058004220621733540754556716312978368288428051167495654727299835532410174473419152965951854951110348166705033497251392905562954774077366331694180414393869596020192314817228000579510379416271835852022744051043647142821736848205223081501068909639013347320138874960443192990113849101920730748901145189488248617192469811043661029268994869781635899132137752758404970464226654254488126372335012199237894654315097391710023622335303797060181632768275249449813470825661308131875243525130294796059121243683323018926035722125441826282172393410416915499735215774659236112926124312186060706495599072407428172705960535414815753991462396933934834039707089332863024280026005518994071458981783713655180893391757580739733049641495510593424944532959355754438510107574924750024667126213608809455761465535851484919119237713841324420412297011065808069042790470734543686102312037576076124893500545788595272066339709730311124214351639870821157062643863996644070102541671315749497656836567242816196171546234534637709916563784638759344296685941984291565100647609077241691775190196636485821508549563287964732473358474854753345203340742301170280183119147886935039195624032242873846511650081596330436553808873505047349497741064949099891025374863143118949589663496561356811337317561530073383216569285091863927192232938506972778364198088204228904832672138585049755534192500616627099233270314463396275710810610438351550814851718595774378127067249482860259471715194242498719075995080842886201177503178884154523711351863208213578011599390081536306481674626117675085924714300111364090911496368379400165360488729563470197961772101968391718108112927915526357395164867355671772738325455027025014062339062567708037996136331932357463139944779173953542403944316371476335129139926487014402971347621367555340430498871839490340838577996061031186149265547429768564807842457170363664940705512319366993362624729036612777060273252212703497815112674918232960510227834067456585527075833878388117041187849933524320776861814628204947462366730550619594707857568266301865780303880430804861132721598585842729543904172693897443503319387882948968770698215028153905676416570831231658868519903363719652843873227694071826139381326578623422256130994697584209799804876294887918905323635636313195230423231492017786481537939344542674544671538967604442678482582525861719239766361353972480061160247528253041684257637761747953701199598911494994442099088592336308804925089207840356423470633001967956485408977595973449006230994279237568458197305648030199716868799953814855723466079704797754666034683350161110183586338772020089223763303947841783189044961044158121004563841638690395693651645433111257092615987285234722011278438397565119173158097752353944756379945015498050686158691109752258206554063131337992059164123398752861531172885083502410373927857836192885198258068373830392327604987593331906704474761796005204970830039256462966587854183376285256884423078691187967416685593636964838651977374048785484471453817541714943925478923126721778780956390571164816964899547774537170654279669364024438795875675764176133111331578488591172235665097738045019556621349132449003484750416588241154655087668069741161580900931045825929477974170746431697740231767025056965334661540667060045262661267599152810433055486873712267903531695666685087521886870958010107016972722735098521341875668046156334236805848928103797991510237823199440587642145382092608290410738306989832957193991910707434761427374269522759893208304018134985082156856228268737693603284531537629929011190962940665136055950363486517482587860635440225891115889722165569648168349121003709895938669597717462608067536426825908997162810871429510354418995378513956277746197349979530096277750369529189607050451426707348406321420374017531734494369628354007090989728382833400870164043912654311913830818149840192660505960111544591603870108529171804819452487103385820940933281706475072781105117108246864086903963355232238538758989171645020202336594459485071410905023198680969707381883529852930181093956148763063633366981897196240400313526101511121419563158652527884135255972383275110392603029435805284268307436579327422483275258322294686859131182015531131657610966739670900870938952259914710280675439946871541298311586780331040312849073089473712036161121438643594679465893882022315787624434066131627415410239756955219158466587099259615230329624021525979599495356261082924105520242084831679060230305721322281457216568692415756774868229697877761078234071309617601451197446765758121264721949419929062824722061256357665335027587498147726122272654508420723018437864379372279002494216972021172393127611209904403578430210007789485943916795754980559780824183078496328622240691004061004151912190302569563453954595442944483509126971288625232405126541808922780160834631007424819366087452600478290714165896430744401174089224300608908801067820031806270311653889152977999710954754517747929444958966844054153331470963795293388103706552625682854641379245855710533003252605867267721582555346225371079238754875962826912339212880138037838368908225929677140311280742197784241628216682159955118822873816606031145212031655684035085644001549031905751169589984920611430080269575526337859583787096774044384704151693101811800326023970482948925121662420839922981934906212766535021848214838814513787761125111762151944531207153646180507517622654132423243379635811720813492248879642022471067600052058419706229184169419797182538172151176252742457397036840192524058888709013182958839011671927721242582930891285370092751574383713287538001802966990759218018486935379100169964547258688440135377167048745668125147115959129463929472836994963748955603799544827072770551839094391871903740858992410481884917723523981056326531069677620431423095996403003853288252789036234997408664985014409235213569019369200776477487850223225040977385426575354964085569164982240631673958856288593499738504705860060461138291232593167106157722855807003648438551644929198832490984817861151284571397113029390585932260245115653467569475051374350381882445310916977743112384941169239801844688073064181614114359713212429080734574525799828594180543027324893714034171782025695672133753650521209009324022557830942252720222204156756320317557571825897230152140840602679032081506919131053012224097209399904152612164792256419186456503812401579373022238716836225206881558841393570452555422254317977846817563024073687099556532782357839505743744689841282409605205182739264532464849950701241086603495288773265641906469991398863413713360971402357392592102879662978827369036857854966694726311901454798565456414099324934366536744658740292870339195490097673731855726590126313364754731249326460029704868891785583291111577801325763161449748883433387573323876552613021898933433036047111581595417642705594988580627928389391266410919923544686405176255893089878043654738589422040991592556435852293916285060266956386497571337445171017566300860530237629691716056668307404914185566157475466709671796037332417604325970969106760322772246539527447653642549740873396707396019707900382455627796833977959561850432121235992281738380825675716693837553415198025508776096904626801335283505685099308865295347826907622544280596870274829496882083576085065172556767970534657112148053362214219709854451471744220796062882279944996580014041422856529822267520234225893167753367522064972120618495233220690083922901173666905779875835845023382456787756988004708018416590949084926918522358947417599616460874758615624646416328669240283466592550286354775301171107619310453552785153338347861252674118003765348085563643842784346433441189199620401073191237319988252774526126989551650984740614481308219149752330691352727800886289467537229653708823106774905865647594054916305203894794516263777106371981933250727239940004381486812406969612574948092594908853993181425649320840457933740753253851502403829151958096331143622987994578749732593736557344905900209778048823537717107926143926660005729412702377960786438251577029725294636028832853339968569222109642206153109204143786175866211118568999768007907864565622815211673532628377989580280845588580309633442542209296763012599889636896916487675369794014049906850703013010964619946186991677869670249175484561762857132057881071188332719370618230705045376350593154007403840535710506086140071154639298053707214700462316360448841525378531520559823577876610662394042407248207921875875770510044597744452012110930785440069452382493764372885238105190820713320062958859783160256446983709229568781840796752886067872306879767481144388985765515817335496416019805807465720821726701475764619640998150687710369821221238390506577680166630385591723737809098769525621560874646343389889266115424105521656098044977252695672987638235449486449751475453290871139200001853244002282318123916283546328663559263675654437766057241698411786906960748661442744039341257225429780927932291640128171812611018881356554627025715846301894023124038166371624129181678707242755642918273694982618646040421865092707975048111452542401235305496666197794674014958226053744164869734885418800187639388009034549992144154932508165408325082387000804371067382231884825763029252090271042626012832497944382485961388287569790888098660064162372342512978958808835492922570242541117044409108180802560362664175824072216487411904831742141993544377160271407338663951676845776521535883002258034438588330158623845532496646777514519470665147118287553255834095058054195920426783717402056513852209594879088031681007593138691526742104519693404795045893988195596935838028868602212608430614560510122698201200801410531252463428983797056565774405645255467372997656178440141409613934002653825322856198152726190361532153196668884372391827028729247001687962069032858879922485875230635622558114729006551655857292627220663842543627837391795888598468490903376140287478389601932510197985297051264726967140219161371697213711278901632773527617222958815700749640349833330807021679751811843111767875346502537886903320247996178605974175380525186100982264318320374240909173636294385190375531095183568950256394481694804932469369289044004377322054514760202622138206712227488744215424163565138260015293629342062234150588861742650654079985402382222497257652162492288857543517104086880457290170812178044955587629633201623947494907264737044169366855272600207856610424698598730507477467392174015188671791063451622783501734957543366349440156693693493476124353245254082877906573109212090012828462561600898933039943497363583477341753024724113774698827319031489298742993946925873490274024863148621421897900742521209127560406183965274002573387869921826997816777599040645122210211882477058904499565609110616854236970095091860925516177913701955505771070348311225260503481426874178335854291676668984004300661328861844776638833351266300869831367815118295267820078675293480590051692294187939350329059324715609028305774891440136834681207807702442703881348234629045501646299150566944514948641318651496623139238337375787995383659599066210712718421332866651794607518481556212616059793526532690882312061635026578445652648599213019775113354042365078755520968420369764617524851798522185367394424359768958296706307685733056423707468915242127553953622614318477252240957756546343278818447064941873272627014761301177083199459623913660441799422346760765073071635795824356863126196346115908816967971970527787569500080352540627216095012925478117547903056468835943423149703036088991739007996472118457840402942911649020988666568099434925874197688747155087310047861125031746587364774120776672216754223423585135978092118126266660596478876048078771065324686226148850872865177054162487229018087585918810891658921214214979620734279451106346485243540148842498235082665239661160887457382920543973158133285703538063802104937653765470911505580306449814853705124824511487135608575393055996509770831503154526711346215010403119968303192501554988657858288641240825274533787920887304896004430455129838366873791754675129620687213326921239622317843993807662590869258401259237610144358966657698268784232866470677823967377142667331921800960651265190521222203850331624786054460059128303586471468318254934290416948538854047694231651842367573478570957879683179693559331274561725524242354062712841883092573052861177306777744974337427847489568032116864749471209382564544837451036915755052622268579883263147345217951661230530830387822986009275391807571330341414236076930005753104567875829306654544930071130253613972624458385106546649808763975828589016717525023869278064021263424176736887759979998505352465989053945994037994139562609320453516373056844033482472698649783137787733372359687199777634307810103689937498108756293034787154137945011075092772215700688591705790345679164759752442751100242957560223531198154392504990244717502495199066681923573029652925886123849160362009183964888635367230744489409172556566728073524527060825337159355254550510691298771889652564688756677886657689784716137124422406630759381520330155125174789343710108260902429986426079384410364502800471222474944375695059968629148040846419463026252011540144004115636298638632199110943444805499944323401584075093306021582774997393509617344798945162393634770423615607967141835451237463045052796685477012144822523568318767736572895959752022667645594612176714488070329738914312423864707311755801567192804595063385083743665556723273485287387196047653280547379470938237118356310720930430700696887692579160910315898190299737557580130112748631007397382902196717858011330457788103462982262965835358509453464801676031231972665602711469048399289719723691960104201371845094729078873645411551098703213671879389970020996458655689517598304001543140851269283832664169729669819640270643226579092372774482927820781398821538016357306566893855869676439451207754823456255483714418341348542582084766275145088794632780761733744140327220028292281470016777266075935109226178561214834236148955838057143074690686536010232929601952457215989542326268816784003869511581706773018524121199877447748465404040948276096484314617462406553110474147407844326800725109404913506089297387767062277986407782760663117395103152092059774720402819734214402052185126007394670702200688714472965747401302753373773058550178809652686791349610109925812322975246154458171724331631529994419168654458359396101624000555548843440277791466039070340311995125275465634881696369682357735704077317319735228718704817772345719405135038521417352485181081389702601582649840894210972024487647455981295584089275834322169826045783684432603670797642061524529785925507960535465988720125492770882805711137124171556994170347195475125736953193984586393077528849883435775546359072286910829532597010485524585751923533427814727763028857430711366985136713904413213277467860062903445722214432735696515799730181919241187184167016671566772698243077546779531830527067169469264762515768447759249895656801814333211455355790974804932871156877327452835931181089941787608205916733108463555729950381021902288304057802934513733937525978231495976397187399141003884422154783306455116622442134234705977796560840211324695499415601387601254231016492021440486615248810596373330543499585158526634178531178112853602731659404378544974713071821830855742724265909839954524320511887513654711293153241476545434364976114094710411342250951688031017413888999262865300423823129263497350488307455245703058214968580906190407211628101963681209443808175461910147020744866651869242235926065840342732640880987068069949539568721536517463199208391123422196090289137869320909989128815656951530972693921677526284635864972879501299769879484764106937987002653642195028540097377307569637622402230799992281007843560753573962483314019362443164939287290050182826503612915028233528525521669836526815568214219273615146171803195101812021830314819362676241913208015323978460046836560809012583683650036974120144781400525869811671519450290444042157980217542302962810926057357677047458296271648200371768996057216674814775694966793613322060674968700361992243458654087489613911109884740083132304887230102740044759969521730332283467880631543093885609844683330022833888936089636480831637249074143157003611306766430189275881962370013042073722186309855482742623911485386025606194181571808269773518642889470997037084760770438588594653570402936923778794966471562322111887793960430113116873031302760044250447065840919044038092848863680977281417062127951230338467671477900254430661336511688054444884689081893817146856678973421141570860469144914334005566170828216471269274087212434267566050366649965168728575065031446247498509956150876629889269383723108404026791440070794933363821712881875238316527196400713064659723726031945384912474430281647444467674462852842145947933932035039668702218803367085263594557685827608975649106882992380989608110908543137843001327362404694220451951865355531349259299438731116275032506964025776383177047789422708126901241489072044208183194174046949044474423443537544937017330730963514776386354004184947134657455002379511248235103615597739972976714941737334105739693694219051891269144488970330808985544895045218923962695229633307244112203580937343159224818548723804695873870069839869651304632028727527625132461295269429670749871418843161017285419300081762827070802041257711166318117167433585218997307435717500640511630154654172770218596035595733605134137336273707658210392146988774541666592201221602844882955829488965746255735343996319263145485634044091870282618023916780849346433276183638624113266440830571229517927850505405912800879817757781802002495984343612910312076043341533987814707305636317081185941076967117330772961986729647272771423885814906928903023804504608655079020408627997707043277671965604716138461262257684760386070853788525198978394642816286480157289871665324781101036244103578594866106895411162647232653122157886621076336755896061818646503655160314883488250336855401169997569494518404532948859352877338197744108219102590536620023743793220180657713452518344364841382241552938163622987116756952077828003161616069179697356733506305493736820688152577453770880978164664287210341160521402173906161667915723911336219667759068185179051179637268121805231971849840780443822769397511790481054851452682272480599148464086383096820562749068917464180425273732020077728394699651444186536336208626859930476980427811572306996165884819165978637236627811884868793925403523694591837392842601061817740047448463432205733624322995399248873366584658202553163915021650014931718854807326126950279465016652313638681435363637614908559833771457108611637426880748911741186496311525921366565514343662516874334127039380657334937020733546464947477118393047405157659392083897907425282277487986224222335965414980927671474954076850603967198240884764385467824180614059785902187730420285241506578286391393771270405456659523867363560896373247806989887630136325634885951373564326951117878869111375256189063480994011480367765475778750034191275863043517818141111879914605843176534307067004532533449439021663867357751476954190243354101376682880297206637681870562720914701935809652760146971554309136779637930029541742883743795570440348564329978888907605725806118249498825650338433535125387066997033662691588854933656437321640605774315815867372140765574728029566435244737264530837866325581932150584264608249399960839166472324833425743257471996401180375231137964849837181564558061900996497116477371908792660266215911142805403661096606566632442498429849578115900151913340217009691987947982870357562878894555020080899351203855311222131095534868350083572055359521688331689506977920256755817739540005191775751149729428575047326093377552945582855264026304959784458392319624031826456651954480289785445600645548859987369146156537720574933263026146945660517494423294563554605782291513908760688675192632408255715491362772874279243596827344789158420772641972789260013357282033904705285920527670814876981772745427462547774511080401538035469029579512637965214907416290206803541127906580577816405999854573436317317796758284353065593713745692852587560664468352705368740951952682086848895858061482279814935497250711029219949330295349930968999249530802194167937756356460044752461767550810546598202077644206033972861791247483517144881713438063643455826708888336612170484733680453989033654356223169710977230049772961897265937810124431810458662680205566142181275006167318621523203041866123731904703059580605961168668012871528054865768021407661719568111383115584383744844936557143722112499888532193463811133615108660971116493398296814342658209168076925315122300012658944256538343150801266821210355491029419972330279322585320741472578373908028285980928794453950397269961384391333436645464810130835718907493448123938138907938521194008199195221871978868007198318072307199335733982272900338351902263815057143774689902333402677160277583771898669608458467464110911203999318703865013475113332611131700909911778076586269665520782983955190883842736741065422443301528084574130653904719781501726214024270925993825894763034414861283810560578842969954753252850025462295948221071503934658865852785415863969829779865073863467451105743372232656133054850899218288131217734510180792609470229046688810221695030255371267150747550691450543706872706144794006934486456383901808240912172799263941110819659625718828735630334312443492464142961423065674934517327985366986043127670572379271014376729255893727717207488874041171026899416129956433640328800821054125260656157944200207509246951596256802411551356264795996408254531393172080391434278595990437147697345790961578392678382469641030379020047186886384872384874902838910665917300295569754094957695927810250843719109371808896693309037973818254089702152961087912494551677232278642894985722722101432086219645853075155338179519230672590416624913667416680246920862982847838971487408717206288736529925771967533192340581607235636184503852897546255301341123253134171774131037851346411386077351509809459465905740516390991556280803613213951140920553987194164745986041625981212514012663461409156660789608382410884675811804789452314553580346421736987099942083155165950926499102926140268881278079983515837613558524798369826557696192859680849485944345645686316619374396504189923370090244872174765830871386501859288057010290508152694372669942841088163471738173665825110168472909130527010829061362461209179873150595716024975847124329041084674021445200341422431503119688039470497700744374687034779910033276345306157027290059748114446764975606534336598000572024205759236013314951579366499284517632728672773772865840685865219428318828156563827311522920244131679292707323006194986527305051812084622058662350293907895296948175133678587435349349687092297649143616783172786832481518416145212923651551350950465413789126823710693702912218169071128683065933053540332093500871695758280346840147729594127567039241437558806389913066524616032360799560177688752485543140313972244951329729150165383864981187476218565717986180657760853492000257040263928981954255243059186748889758947735802584460177243712747877300589835951879299322698067560624814875296071992834431582071249088109046690830965713048150962402825023935401065457625501391834589999032473250055263954914884768278587816471057072584022003547152566200702272715093085494147973184538818142960125645837400688649171324196329890094779367316649081052507668063519140778588278477670932532116594398804873247629269780655603860832373969208514808565627231568081036133180389177187488105944616718636289721463793534572281554983296267016000046754830620987303552225203013811366547113579960506322076226337966176179775700960824449846059631666764147873059944643598579703785013054249958790930038307013236533200609838811116454993175690645083162146547792451781260203152188397734468913473933535852429849766886911482358583578209807486600416554572305364749149666079027745306004759097354125936116706851053641420655996476542493215104349391592828498267211230693264910435089978106893062367204966885938793046394678743165472576600567222773708275904372885577357198241600276347877266320493530948201292808022051403522066232947487680927929087019249168314265892103970250468818854470418482478684936734415391287667378733163242904124970223156660215701317821435676349744732068168104179069132296500418897465319594996994614286487942365140788846509908456622810825642041573754920045918609092378314180750206133609383372064690847544733139334789509432386558900497658728968217359496119789422538069793516839063812521608081840790411684886944376863152670915527913277703806921559897455798319331363290073511822379469537760733282472418871955153599950543951129134428140388023957631455105963056750433301353286015390546611781902015652112463916492818758855927390023593082268800035466677506468215940507660493175081756664506090222801716949958293151595081210581256858904395613666032757617562497481532117386082568571759105689389928794839239703105518299006850870553280270162390514074547775170171631314086375855397652618985119470929716055191062115022811999170606191507744882037719903555036562545000520022616878470857736870103306098719593379113569719514042848519506040832018519726659619841962067026262194656384882365595845096050541932044430984026821084830398402853353953739195795827271342231552651194696107640536686003154639437827636173751076705007707060337700217712972270634983752519721438144261631787790612607788019294348082518978528775647121258671767474456539578497895069721688084737158931292107884953211721889506037111871239800060334093138321181012162400154341531761013390432723526182618610378471395061732336682548559295552311195162808863010247147587618428325767140515069129905223455378009136727395581855885213534086509968675462211820784064356540266341792089529869253326072853494574204811039002284565803766034316775329157023065709203304647707796142451821732722543056728596812939586763304136365933786898121688920839325548484314438551685003743042069407691607273241506444015509997443022382256013559491324077629140688127348092699472172755940213792305839034861010305717241549150066365983749619789083133764526923908914770401101637483239655010671600758972536583986336752907684070905881580005413881856287576413885324787525122231929082202700830352215103779781491961384247734884732632680852828830490647555621057629151328775714331048081319387804474524161153599975059952419820909780898857994251330238697447180869583037928174616382070020375715936353928335048953651419440615339597534427404638500929229195456215215749400874223368185636267417728378131571125288133537758206626836851546090807392468210578261903581168347765174233661446391411893222309190553144111135412272899616564516566813664815463322137201295597348888451129891921810646815737198225699830765732810613277351955852683889082521846631536289362110303369878395424497150249472766555680454588757986001008997174246454003280050507215239510726750504344477208254325410233877741631043886558737409345497934934363001790141379780597932947022534586627878289684049719150546144616584054929070646351707790933294984752972911040311412915413028634128724289868820721280602008902189384694128527710474752473854457233549574335125107534320225741533695971983983778084250591975053499082856026727132584521582059837628610119294877908891248399517445589341178475262870714527598629166420066639258069273909545188208581050524845820529933801193543033465666447198466208841549835073740031401618086809838136446294208091930952660932257381965996944263675701440782544251345896817411500499364387383895837828729165283207302961569983289190949707929425823938371815758425500369147356885848202624199578186453776318281923700677872730227683808181610146829598815321900104480685161818521076307898839234513591387329820860660853637288806270817204873604608754464095386287968596420986510544765625324424880726374721951090538707583533090589186368475977953150316024836497458675246530025036485859720421684450809293530451279392116426484271984818154488156207549450835008130528739619662355767931993606807116536609986318963526430929934983087262010587188506774411732502997068846538726295549341637542941490993913451436036074098821051501628403420594599324385950540415258776399464538885259986701564266396844556030706249879285833065462084566928532415125420925483780541094817426126441164097257931699289145493259366429360179754396865277389053466771185490214271857703368948233208840893470007997971911610471216140026751076170364952100230382034397001422892469186904281239041807020806014808237092360246995214679208522370806624035258699263136147591729734994349031250584850581283354681727849602507545445030763363947604329475530231443820935396382318377947908769015947858742492345379769734509276524673129578425097671362172346117633391840532583485511147056738965450624007274275038855702746689239728255639535974064741977112397806841004998061841739372383392840288110330862420593441857940141690713713202452519410602019094504425061298960081064416541360481775168774237073757529552959141639393322800853904751095119227313574952687412452291560299675374680289868364735917036957457765805079831958147927504021633725389021886941779922425497980400086408586091332020935304770913959116625562145094891102650977560476170367041911502585467385998775782388645910713104849019079399097049509192107292335583213184603054887666097394572163926860600461965524662164995320433732674985318452159441909368765071999942792974234302328810053638779536930127725034289198995501616809439171385316814982562724403653331304903273300002526595791840246988925153085829737824214515356472743835251658020734648279791734544295743181777040545443193440123588680996584604012317347284849077726692187286049109898149642761618806701285030443469546338361347972505127562939474322841664262726225821133416930348340016325759193060346801165243895717917246267206474630395089651361342687737472454245975112210555461283162433929853157219147815053264051982829128146021283472850846525394518411637385346070132882333654602438152783218135191909091821597554470551442925105721411892960751730216823863989325590311735992992662961656353595388512684362652431564920563463687882345042690437441681457225993692354476290724135019459432294823060901344324773174264995884800192443385719411171678310823203590945883362921949249927208203757211150654243398060137428729146552211217503977663803692934889210462255120278087523108233672532744292318754963603400437942501031627866184414627606572829724609447871153529497867658837908265412580396627307055259043903725115153201727731591095108523052365456197654794046682968514440454376717923958537390101174301042531360464401203750815944337595049187090169530740166129243155588381037606002887007588709902605277371735702380793433098059253006904594935404756863237196913110233703098752080815082900482001654756032482096006839030213159787833397430653866457045371655004507036979027855155900435463765723661269493707102967265133086623973650254639713517661567836149970957113068163462068028559642749878749231431002717604145506736796625569150705288797184966801586797640890086619116373622589221728714212238558849549663708147207318409696772671291396347767185563501307560984710470755097599554190300195908565300443720472410268713860252304831704076969422741767367636511939286107705104612641558821611320247525560053203132841243550114095114058310823520111381681121462955938677438637068946974694774365512148309180701141488835570825483685145664041668138202336791909078740736115590028695929751522871104548747052265765561008492317828742994885473708230648092590442826738665461179362655010966249993244520191104206189395749560413057390296292583397139197574176365053810327059460818439635391274909754365282678325463728633079821872413339890053504783656634965740695821395093244626775623331931668115834872022659250437954085338077809679447108294911903537804153816165464327363831676779028176272907798427787711999228471309748416989847525216130974533710916344723812290406056020008749715097336027355511673195003396175729042213879936546792566128988502412821753529805491847709073987573210724624791604595220986077426885464490286260180326179035642768907903007375361161381653315573240992571812053366344636655442125020662960954466856109710644927672478616980178784273221976791069153782809962457209097538825865037838214496602187755385468794972023753180875655706432785129230862212506691961153352999136646430526805752909109010876608464752130638865063948990433187306843606858517746295887941271013330207559898736478841112243127243984435815425608997614301948858904352297401847916715180369967335743643885948933480800504728951165608139991476498214921566019112093298517514873139185116236332055679816928274870104097448104493398448127880397358716543100720281399685522156335748736619107456392046211833997152334387136443032794035068788596357811783077018773513134602154796801031654337321333998114988389847151163133765114780016686228818966206350564188985543659748802310731850068664544129969912273490791755612148506857666843057383199480332462354375471742685415851852310952837552880549787880307177817362160734145416445206211199990740045485485176000339080597815906370748146318680639382963364665446871876329481620744580296881354638949298394036966679985289479672884912054856040412561907587701060450187543147286961510945575983371438664581375995165818860528885394487130097357800890546976573365094409905022591918052269539742210380036388699625705086558057571982465836550968586188489243478322885020575048789708403805421830289242143693410496357688888330363228650271569174619148144546535497825104911363903268699219096635950252374293914999860577661894995691235777283251223518292625089611372148694206502479967313049296861103201754077022303681462953671648214239334092330125453527716842534270810565936665979777712302178901400473370672213769490786912435602547882666938178040482715552271681692964694134243543074125620158885641850442178080961623176216198113810070101390518751425655023242538838461070032550649230830207123795102138662541259297228561503418159306076482108901952379187124092957594260205162920933572609471235209557751608522132620579569868043392399763100096447115778534916551566357626996582858121612816585102089956632455645012165945735159998666606061102201176389152439351580721901120440353638292167900626187957175805154234965906093639458006535336431024520543085930369858003610142284635917275534551780719175715452179551822047719062948918712766352142207729487892513462671648959431760107393850430927963712610785727467610872015493350691212732855836802433462258294519879659076893371082400404934946845302604446006560135465339850106898808352460596061683831872175723343599979842799067920117992668697917764455534180246042913301319380815096841004479204194883910863891763070943255784278134919634602879314003669880160575818906342881425962506297867876313740007234062495321513872267662884309996287874282792666526315989326499989043607863891554175395564089811966965225042650388600155760705519640314557747938295473996132091062599315514747797232357332470424277212646459591737947181131081489602160899933162989881757063589121845513611085325920620458071110077063504039929316556892479147411158456809034919873657905558966558002092393184932071352301628233041979994734682885969750018427182749904689245737171675121990709587094179212583746118639027751086328436369745789033293705225593289548408382097194447018838092433550753496525074812862760875529799735439882867473268135925916570831863114715792029445596358453597622080855058671557546739538616005449189623256689044508543954321152258919148715578142486055458102991299041142067037404637893102043350381737135811802783571526700743690797001801456582966202135520982438161932206791699465933146010875582216660026584222465109100165515599880805953431219771468534268697772302170553353265969912145183920383378549660970701063700086255444476098728169761477931982643460011844849850951607840288730033677148281932369458192660462300237051409159132950792187739445593320837552409293461995460741302285038136071192171831995122731577991756105187252792940352157505143391159346343696794723725481844225728093094397509882292028948485423521302648015188918834093642138645970399552234739763942622757464865179002566708622023851075414547106643683841410464544879090214433335320963768527414580047210824300503609420333896628493877513616797027311757844512849748499648127480849289958897206202988481857720751141699932933514571198626947847556894319176132649459579723978381694336874460972528170119648276801509375101379028083678372001310579907011594980745611788576251899367965473047054926652078775218889732549799323385321410918180437161177426876955739186807085389069110337267758573127052074271888174491807173093104321266322825723911766505623807232201134277917561422222127992654162912971578012041593475334090499400529587033735781591699672071537534006997800644744655724374351880274686200786513179998135964473154793341382941259580873030779678319951682185264660053493375529003833505460665778458883448592338728435508467910984647278618778646602482953534762663584440959759897593693553575310531024969481002273780191379429726780939885062490418259795484353683687613771909528020124290596179162143874101908932516468395173991922723921585694202910270848987524645123483587168252751228070437365693390070212225711426690306778062197819938129479235263779281560077917285186349229385779790219289785204898591448485326811351916842005669777040349123158572279294481207657315911736602866841849456840226710579698178210738535374982724197859830935236872308628586590913948623533924307227504655468050769206123980321400900981242992750981845946918994216915033643300745608347904953527470036667451632895247881582481699162609008440692523169423509772164137137817668426148314942759480703992277569385226379675833825130971968540534726227463447378480743648484576933185042210510892220857822404125899775113232945277307297732139336874232994180684429580117938583683321277197706401458831329237056452654225381799115665079195586296627366607010187703586390267129929885871731122625979049993065088908887495599149899300326283188744777147342269633366542619416216733920985539777945004195201195791071874421819001480034502465008054517738393351376301690850339539981634541721284767895473881750759662702561978401159485200614017161321031637084868130364285177315695949312697276727505621213203903959294448162288446972253399170291180375302226703008307669964551119717382122039636153484556362292792997173312711947898121361545717922790980280598315066290006105526164552341347145275738694057902453324582712577734660928083320690788892528905616882466874611533589173152134480514084969130771211616696250732191674997242232454424197471476533978649464694709488892169927928233609864994439379508013632444972102876893167003999947309608566486240581080778782202570304128891327308573145884593104735471385398956342478136878150740581871160143112036887237400937174535788604981455723300726472426393524420732472953360023667656560589092578683761220180102444312432937682489253663843123651894350264051498266092328918684500108469909167872013313590454153878109630952914357490297021979332834462866823285412539948403716641429558548667457927547549821532737848217470976729749710289762720917604528178718855801659529329472972877333611974420931787643872704995476205870684560559077896036466848491916045241596931367687511056082571128910879606007504876832195595060167491340163761782539728279542299922095430862717909188899501909908049685629417740498748042634916052531636584801837102781111397372675050464479319538358521279116017241991960074258342038639684194100595409538958253340846406860320166865712003399752472737657591177761820230316189237120551878527228984718044871937328586804895795534222122709678411019144118573062009660870296290347480175422787993432830858482874715949374651293339903469449887628283286856296504815836736517586433737575688478731718198789815147635294861712008176051298573590020202019370667683153326865311098983140184923650837698069589352203852345604111361781541024282483219962679676479575306700706262990674700956030148303114514730346480008012843186256020225044076449845917149659295447264431787293614105468696040695094388317665853828458516968235302504051592734495095353151051673795278732304964705727161046988025787705679134451796930408629449570394509991695963232201438356764222943051756819442384002614174727491473507147928099117958690212191284639885399225493504846490700301725558399279051046626471183642873447785980055087367557377389042121759892358612648734431701376620110322859413235949913340582592758011412638427894891866758384292641865570091023936636878614934496587653416176249085950265650587967508002583778595228218892271542478979833005633146281423346147884327651176976337486103677007798370636627862866994996945288409718571593428844486701003169608648716181750538639999304250791594077091910181887409827830818643298091356704779979315652223780632531892793769265639061943031941822491112007718564181987115842219630569774667010357513412776146530492293711630936491008558732413882217601981685824044136796154197526664482482338071188698926632080550849253909688455291081682389677113630167794441972376748145511746752495526036846794562280283549838114233086982931327602482378732195433239635674614318728219190874184145675459095776116606445855618280931811929298702318131981380456880844337287547360255322468247512099447770934489441585306793732364122159027467191416203742151516379194754002144736569380099159646369585382593434412965868102390323452205358204998137648512511335531195474303160622857245169876899671056765923415959813169370901347022567921718875787274065149009241766627294463750510537389877591131761168337498716985980474570496243755294523463886574202820215308582176161561962715169735117655435159694659756508149646737002660986146710390926895459909330988277234389246722303043712027796189173979736349378477115032535546556580034347286424776767015022361121486022270411719233297231758913187600517688750577970000069962033307623395982366976037466590545822516290949774691830643791317092130582377505760350104268278839160884471612788373587198962965866628351146857293567892512115899224504054236478854624804534813793544999445709595794852861933628041916006437341335738728603818357988451823869329012055531279694001225964322415467083699227341124702899812927469768953898489067335522807376378912194683139398431316154343350817059919137948597414984713662340466999785340175787885696458277694339172049039829653956635012036658861651756041665890604752402826717647723349260659692088367126525602484938471246023860618131186419171485872489056051800301906383022876230636629939511490015726115127864988188525482429786396033357428552278116064811600298477643888054098789925513038009724731303679217635278138056994091684129714487412077884072549871854481909786298828624616168400274186099442742727226799034421340486623704383421820811895559324112846623485323997113268075450988220182339396613470840885124926867049485028677889370130268079067642740040724907448942986091769215895798122691064150662769147131462188665569672200430960198814747745307572978752980480733166248211087654541853497058885501108170077615922999431271326514225388212199317681337781785925546556797987607695755443300308311369976807531591950439131027563149559161614216362315643886302675792295522108587751433183637028252492486651171846300926867730248428063569894812778619908994803969075268158506449372751661666311830988611979019844970359632034330867210984071493316567396033773015454635020188169878691352334885466001725594235653284017920078424556764869146865310291690072187796743502311016157694085257082066661381406105477595216447923876609842600849646573399778158678248350130498492151533098364547228284914835203541910454352662897697844497823314904753184978907125099291171282083043254562204232322765813460613224261242845244543655690367155486978199449680844777372027983634586527110197958827624516377750102715263890232408955240068330967154230003308463847773158562634013788776228565544174801506794761143901317173990097355299978273393257264756250549420455546658236732183530816851790630655316529811601416894362140185795590124106581928010930661818869842823074600516370368929228872002563440713085954713303153094466826562819347607945907509457512164816689544890035018642245176985164188209219451425813272708143372531671359000898662466615486051820889778604824236056564991928099684008826604892441920945186787632954026853791663636550337821567401959048043329818045859564931770623573929809192413440345323896137055724659782616935646770284219361099986994749063181438803576410547196643919938974564925187852035345672466276035661104216828232620487314439451747971958766152350260317167733099499405873695243708485600735291312815774167133491335875670425955804357250389932382442911649369751888800687084343382846652750276492255125456070362983279873490912180982819856530752861659218503313929002062258943694987597081222628189580391816200049985640221716317949474511085089564858494546831018159379362982151073092231556610778382653080632841755819562491381145386476561879787589212369656878388636593254283442305397240553570533162668994682286161130790246800466365519832373769196503391992653547473684035234201742294163946264845410540368055518050248727565155599671990423047659821879219856688932964037076482975030581431089531243436861719883158908673154067303567120647838934664923432744719263867763921353405234339403222573101482872999671687668393440326271964907753429963621703557952997845344543228455942987602719882534448175814539742802305654506246986001144718480688355533640705438889581454243357844465151310441829797560491054138796562060737412606607739179066254362993742699952942063079060337185224109677395578146033099778096280517135521402541174403034638588761670649504574614159065498554287793150470583096620024406269587388779957523729091377151366046030109475400902496995090715778591481005728254055686741489432000312325045052278381899487657313040559617794209809965677530459915645888950434146871761660135123658786000053937073090853301560394121082453412428712953964751994271982004657723455397559617310910649920937898498000432802860352789712633743292244885274781753842657087242130780227096340790246890764793850646922182151775179489861257408219328344215922463644551884381684032445435418684191363511391144379805128083820496712023205424601060546080787826761682728499224667412891435245101117654744170539642837275862581508516459079674129147550311901035494857931748764565997521707937055774130527200655062622992653481419847432270685313325386343982220764599445475123853666706465132906034405621234940399181505175200142989620917530447817561040875622588751348983278684435122940921284755313835473264750674297564135151748499870306732138525878954536989422049986107766627566116918580888254033758154638373577234621318227732626973886092170305585511441840752341654607470850884212736294917361438059717905104854530664548507373058972581404016484567600138569643217427854355008187107777253685057578048516830105983995861057575934117238701406668465418420585822143659036058342121849769018704067990926141845174466083707749375968586313269703713431215071741909803463816472402913075099873237064463195259292806135193957465616513904057389246837755636512489988886227791865583001524257520158021765677326309080065060807515490994421886525968996021864120425542280474824886021823558849407260618782978796918258268377267340671535968637416468092752408659910219720551972452036353706299110988433705268127113214786646644972651011078031289302011738322583045987486026774814890491149188899249018771344490670911066496645951251390513673783756160511549314677166691640540827128547269960239144851041059546135302053289879772919639529637705169149936693148439153709058786193929411813063809723169582491721852950269915547362541040049548032947992576777468584807556298322534136973260788912900778130810769004981368934463920776759553046729081237983276896798014659480726591555826072104420327260877134023578526743712937533982011910527157351433949809316552087490329362817903706442555150342151185027282844640461814801694678606871935723837285537936289890460506207855749876014054148390827773554797694891929934021940375093364408941566809547238256487190920701654557812482205145497134458699854853206234088845609353917393810662192183170438327534810471553721328388224513067862245482675372429283039942623416853147873562410706930232190822637124152774952367317761297977976381427548707861237625222542114192805300114076246316386097628346077852596410232028728757787235278807889641295861202273120143607255661470774139159617899654091472630774701238406470625039677614287777640208802167283776587314394381808256460353638567570835737073341267854775997118112165679850052289901966258263835794592457820073163387115745692496093866697688027857332522289933595332325948690005567938925895014015314371852483312127936934783582435408869016433166173035566428133658821905387549012516456065335530741550071452563608456294561890766719006102666575242390277077691161540619167937695391210812934051715614233067940466328660148522929692672935381699464338392363480536548600165888527899724989773643961077964806292096415814267403579271726682728006692815625577369796334861257263113510526751956273338124318101735790669325002728840864488034479458796727012781252662141772813274437815959541940111043071469971715783189490361511141675499620562757718905918103840900345184063286810735064302617858790204234917175544891762049399384775471276061265608679448645608165114737307323414170347820737399785006436312225381546106145776692930938185464537333392993466070386122788500601002489508322377072254699829763193898019181162839671284271303011948716738754210755279103576045262834253870253334944105356582444993354898438064557470531618166267516493680975663370157948555385321026992707620528632178431642559780722637844724967842431927558085106545677940594226921106917897336036768444759858186380432784970711046216269300748892037098488792097258081484635093740743317586684710173971088161643322312432690836038781594526536616013231801385826746425805922569998999311414081048330352548603987710871672334064615531942302790166933240397202321283853713756530032904530186524534903034756872556811281928523480102038836438134678043711776315826188510965354524323405643522756729785922501961705425050219626169292843984492666367676555284843113617318322679052876619982993409579574914091161800016130841118089311273617664132260157460811260901060596602793148944705593793056507465254147713375580072366614232747460057092590198922229713147092472378296701958272405956964078861364331942835323980731493485307538552021043857766379301823658452451840936305976030415951953647572909609307482070126233571308710142166340608226887272179956159808308562194298885388514254432549395387184409599119394922036288579071435329935594741205171633473928965368959653496573912402591565815365412518769778145210795947205467714430557736807331421003060695204167601987182620039800865180519160449038578709648492437898158943865984466717133471221371007984108756349873602718740847764539598754794105755446054659348165686622512407187867008320459800579594452126500824429678387318317902621949798931758837128210796386528681741439787368144856709433358130863305909215627053337868258125144018762441042799906296375663941298440757590438662326433261480076339255735784394007350073752073571808477906949056988739477885939873731845697574440307080366377030901470864066001251308737925911536371313704589763003196304006842866124673910813500291786092962781846103959898279315114958981776349468114784375948211367353200162273703628424479975462585464623578785200912345567771588623444750246079064774894022412345191217227317717596643194656824200955960865874261653950692116818204191197826112440986131066606112850609481735467538240306287876056339253572226324416565211005837108366484483037101211257602706459714003193930777991713078737266223398541442573910239281344816203332944635807524095220771897650961669299883549197274089132305301281148465906865269308407315410400586903139268233347722240992202180072040683367089811315595108108492654924538690204595740233374856172968713088469841643923917232471927568986036541335184630858169618732391408602915553218017699471845146934052057981902052335607432050912471883864483056555560501595068072332816563355247162620207214492620748288989621803063090371833402116239315260124556502860234802479664500608682075329730305071312941060890878917702801061834554519153645095476648213160257066969370483871356592727581920972688570484855429774065219124132857631048528313239963340931815621564448895205405553472565479306763888306348537908180581725661956486020195904258158695123235761537132093276708424253015324659492902946769267512673414088457287036129996214739344310655828517838047187624024985083757506767988211491333795847226624183234865583281641912601239533659354083259102306467082351245904044651383858273607985693690270874213525572752296832519855247427697119333950676766466062319561674804614017818110315201223351930604689432812404238897326450208705681386073959822813960311949248447661564333220661602152593040173610095026718192378988701288535320229050221805573104898830569874770204447056461058755766662423676619862870160528793788180902289342372961845206117638768458932638723205017674950403021397412252282359634896297306800358086423387830740043966255595428153552859209360953941680870867492184004332471497828542889190394368059440732430849266939832310730404523214008686026870064316169444537729184835044170197202646936468463886603836188139238374005192830489118895976239756072374405738207876159804421895221086528824926756433217501295675148156371280568441555524711370599664278158216200865648033575864789836720909908788477174598969211788548853404276032530459741542359638821494072269971224741082806280949576267684054493946443055602519669087291562903364040934343099263652777836796607185405576678544182342925383255874011062279804375698457398215815255089973801189005257658774764278142755854773164100562623875668340156862421104604406616760024434169681224013530252660219649187645569372466605363264681581556603496496727166140353170931171952370052050782849059811120798585046616017568502272611900589449567780979281271827746206398640469016100740917013468390344704758642927956288299671991183446891862237013993023162397720609767414055201388403616101771325339685001799699157316121228787990313888669826895982552344541054124745432447463322833016446858500856844859365304175863248926715216884665068040440223542223950821374077527843461363948861606063077729899872326290603161172833113710094683565663171554657650514126624406505657629429299307865486330893450291611679027877757055094502044770274041005654302746119328695633948312322234807388105135630793957951636568932354150279143270187598490180221800758141333060295483480000729890326948564797504824013380010444976723836805939056617231031964886171867243727917480021357288838862215738691648974209471739593221850121611832549455969969436578876603506954012017393440556609571194440372027270612120994777476054587202601605217961916234211115820062186365604453603522225470041989731413514647324050484828331713558565864141841554182870687072834936791390247445744351891678207795335135032997060670686013920796257502776464599144302569790544595346322815362130815189553304987001679735441046275418987678492950763852422481853903983877579362161334553104559967309749423586871210213374673317829872522827018329533321200031740293361258542563980120475928552821963911614729764943022161563503588441883563012504865858767813075052877217304067665742956108049875006002613770464372247923856037969135203019978572844422016097614488166520311373838876003892255646408425620798304677916163421569495340964734389645397420129260777223387212065412465560244482004381964776811729578726127290633982839184143347354373916948963789059397773489646999362656261803660928237969621471921475165743182624784319149243202098019472689467890206107506326387880315196415964104978665720461225474736905564053371973461138283722900031644405726335930476803922505167531989494722982942399901083496698290651199269662032475824584920477821359184359964195452673903790211108979844576272452733029733162106961201273817367664027944451175560736958369076534439974795539510065300783977362860862842542337160523343395035281719161790409165806211707356378253436258257046551163647656680062780516807395434525543197974895731921725474321448893633651523268221081277401799834359663106862203390238354808984705216259060347800062543061829992797676805748545976338424093866575397348724094986100075001860979216227155479961857935368055521322856171851122531525482732776417004151583955956823762511445521821843861868992288323462505189474883227511503587852305397335068095661270968739749543640983751667694904815271695964312192602148279771637987117539011495553155201432576288643792261947064953257235244406201856217960662779220917500471724224642425667122855941365434359366181221965215651733490800451445525539249962050850117857648917326811409113183841812858617366283541872529510930559479290818128060460086951400747851687838545955784398933336323047403084994316038360372728335824055550468040408962938991444048317460864150156875381512956587203735640185404921366341945953730227680576960475318735637922125351863883446583300112750986371517715771715232689438528615684265277931133697324209189781284072475255847292629501273889119412913045389885710978227484399961034971531007515217297640823598790873792794627508072739693483575509194553902248975827507693707553261947092079907226323581608447441762975232627963930593027624282474408312482800454097351052033046030454772338340733656466013993436549324006825411816153174984660890456324190247769654351422120591725785611282136447100089843710610939114612747256544760760098134008072940509975497335593826800623971636392824951067834250557774721383182665873137403279189324927935821613865168354589068261548625931795650459031942404571200200420447244927340153144308886296819979394961159463093186603239660063130757593318365718320231697695039236896061690669881106755107573140187959815579017263489319771431019558125763070850709548776620279885528669792984399082877686480391842833260209799547453948764122647734396795882872891341152390264432660795197584867839508218008413147730189280412021766744640880909539997336444456454119765658355071196354504848873499406959822757619365364212274149563811800113009378230234816223711120969244662818851099385210769961441856534392146928310961019686254645150096375764625735342930525600052726053762728893592432073252995361407331751192569869526763975929006429153640086549552194022995499143974275237878889552884999183421684062835806037206737915159120995775284548357493011212178254122066659921206396994986318875989811456541249326490157218708183845110982576062511603378772025246745393446461874843824567167556923532888186775110977824729930379245532959248588229447252048922639214419466154830147714587177082884218908153363106804642277519423596608107383474576899394058628179343910822450935580513767864084316811349302346941767357580697296070314781753782671883946815721657163456958599536780642158256708350571727037972735272807875264363419514160744719187452059010470975606287832745520121016481790623481804717758138941753520416697611386591090962578811898248399201568048892905977504162371766379375941982242594166874310840540492868600138288035806862749723093573079899090841276798304468231052140399944223556032300147571761766549540735691951167205941117265733787242255494838370097373131891004519035755599120206414570660498812099283279970826678218039541317268851816589632030252289212728631956835656527726505205238438295520883075435133412822453281057595066510121968504420029021302430397771872620067470530398338095642839289819149358491079236774893719355093524816355002864099804338086275735324073583576293149800906548839902729595163519960165448209858571842436510437603889143835548925287039422492651049826105118238568652389786482108446428861374989219020700134438514905457500968353082987453214873189422161127479083972444114195468991390238006782751009890510381737969693643621511195577128896732336153754641297844304017525981013135475589536473844764834983549503516975823509408976776345285093507276529308721276520300031291024013795533904744456503365970081144918780723661829819141658220090845469223050160026449842856740848763203094657118966164644079355128140475552167380210405385171385832770422210164591530102490540689552384955286438067724728500079664452448542878264719604076515296462244960754703415356169481624940936872026170971619134049481899466111516733307674049032474378835511192401454500122570026989450191300715177947790507061867736060155721243220468728032148478520360187893928873292800942842769153245815083117029158966497199900360963726331003782466704583292749872896997274837310619179217343119591799082866945676674772514277299178473608550028942463512052688290162641670565944434954816132246157082558571394197876084705838440993839781495851578172399537440179995096069625994930855351397709686072823044350140312258031596685214002731736005902781484232777129879684408568886824233231473113689580345299790578321584662020211220365312668080167305748289193568209866484129865821993222788364754983253693335046120266233139316898941012476200509677790909242181770568767488847940227431834140594898645620033378569170285350090984477527541040065071423993600884820136263988267824789156609041889537937412103008623628931315630389641414291043849111844281108028318458942334858394910526671738234957625927428167480092532551392732158522981549498560580607758390040904833583290592992648590145530690452106425575933527898428074198676571657473429340813711372785632498644604278547719614377786050834476276193557917976357944012200398137223249778521780144895716251733843879404447532329105337059986903694003074323735467180447479375784006703566405360192337168547050481547404523811373117371323681785676971359390007873369677899079967622552905910514524848755903553289485425056458827766154203660358527683894909864761077448099154628376726812555512363919364428975369930095399769989167062004430544409722517029305470738157782494350940793343917796512858216155317661853536928681837554430875868647354274029016625820217974178124776414815917041625162554143488701002311663287598792979524892531334768184264506380462083136097108568786517911989069379734203304793541751515782139944147086328348508745489873168507220492094563560033432844220623303567199529320685168322949462431185186939570843996066918890919081247508476615723547802556177101453928090959268939690774434161497317063999554761105144004186599208266012955535498076773859170134597743044310533369935153785189768399125373032612254602924406646797850539433959187133053063446188991769143980446841365950471959468007914962515068435319321837607531907573867573901260947875314167037391468771434760456283563520882413529739352522344978714794390486512381904714483285286659823941745192560426505205628529913484072151993866590981263396980530048776914808946822912815227445704630228173797033880310129379199652433138652431783865750780062930302338368164826185715854162286587217389682503034860152357911081432463985844084902794897201709215884179035478636816072284874152565607042120286118206698278460580772116474498065389112748763948864986496168057961829703723960636488070964269462632899971412081980775253722423267899799430908708948746088429821577804466133540481065707101669376990227993117871523818851557612382820377960408212267260854753668292689031868034074682221158062172509252718018003213455645429607208358492846348289892849180570039398976629818397587905328500127162624321415905137035707075588495273761831093299032834967182435714992791949282304123666221018400385061028333074859984923083768327027003814545279771023986666313576174201295637193453012495540195135190276240937203789475698881350274842071341332518126030311056953301292523903354426904887882432582046930101401264245104546876209378132305902850310532804210857055857105689504838130957261166310536999843852884063537312794738651001926420393967468835768123334039109713452475932996473867990496900197215259244152198799599757582413407850122125350133820168623702141756991358982579330780372124629146257616888095247636612988170025632547903303778114184467783741638718097699365504657025151660649231292458663266274761855655452021728344682613414608215679405601121572009585642339399229236324039072857386011111208134875981207130706505112272147458722832991926901910702359320859283564345996978883166589429500881093427380897513842380150847153137749050289138288525754391252988744241158763031251440912378246731028994127891334611923754686872933895732621425047341894766847676406682642630501231035160016585248014878309995748646733064472819781506231531061816371241290185129416696048989834645482735552939548775258962488959410560714276282234690747726220382045563738219694447797065060605187913273694720667811824492692242029243424438304456902511105068631043303156696312530889740599784353699860881757954640758907918536635524374756895802498788193429011027135265382969237703439450264464563782890273569117232244197910153683667872498120804015932495538294829770722631864082999281179726424789776045825018058358719337997176105958510673792516408408222628159009929891641969919982250788051859924771413960144793616253433898211947018647623655618100558285249391436735308669808524364083928249215453688127993488465854414908771032014504417357806806321164532459987463116028220641550651306828885489441343784862006040553802020567355782144806020716580308082938365479116592681823254070205938950634955789408420832030620590919255463756878562650514662329143291886957543512788646253745695414585423017826299051372195554588762249173935244376215030747813265897941460894934507369820753258421224279866906980125463224107481209568408429473301463480407295573899245165447302158629379126551258051928421334768832058280092258309462109920671416309659634828003049467592384433460841858919088533240444749364162395253589663155039215420434456024807172452234161815790571588357865085151106524932469754257567312042340127131664450232649720969457267295695204767231926298163878611378203738316962703223817103103820803231326874161341446358198268293443977156106118556285022576477989136842422408968377950176857926738528782065739817244364083690834896336957643701363466993179594540784548124384704791264101892522795949882681897482758878229027442230197201914136425502156421334740918035631084211616565026298384380045762810376447612111251912939223410533572309664604028278214967058313852678994469999848741947947143759798135411617717662049716569782606897212599187974330566535107571894343210336808821476777290571085338232724233581345510042189860716448805394987151044311245314514073558773558613400186920482788423565230202325469773922502437450620435646127640462020419307484256783121339631409370040171576793339923896125384348111718204159682341786886084204903755286914197107802841231777561448791806108307976655560124824099008865844865745423161351118576094496377920537167008230588977911264510752871996017518523902067959609142890922051072741670804085269821483383836032458302655417089637341729196768119082365457581956232897252734849099066614558651775992828902177985091030825252712629173602595292559411302613554415956973576102380270012291036997790156844566077700004003895916448674164437631552879567290657393320574363301205477071121661367006848243010514848283462786871024803293685788139616477266396548158751417198168637707665663301588013233076101276665235865152251263904869509062426833676586515254347820511207875944028313832605852341876633225579130479352033910033709027867191116007805796097204673945116841927250231564699750601398688156806645541536694621980520829052849124443497850057597491302901641915976726628939579268668241672320651392422267225406051955815810407870713108567822589716970885563776940032321240031305911043152531873015226799868108282222364144626420386016287278937384589102784731561031376659897590306012959129654392531419971060280634466192624919226385078099490199646344397250186325276026713850358926778177171139867117950191956730659213837434084794684408306743911936468361932446492078551971507820103260603520918253227834771170706728137506798823040784986487259964344207264784718886298289121989206752724402171780688068160110420753921739166915812630769770713126502429472965779628423259834306840710601704720097026944666069014454536281245331342727517735271323354216830926965474737544350392246738400812156349297417386077908233649460479236373698624176125496646110019377345829831665825450863821206484972742458829855051071142721838580821548546259255549519869780100084027318108553410986893021611021061736930612845082681743697883220568710012730526539158207783065787262677761636119722682731091644694116279815853459208160416963127285767154584020523527834590409112641288941568471905243927770604912744142656431038179919291738875789348600266604724546417718108160317669427550745797389249459139230969516372319466673642285411458790227303363098143842052849933515608860663544974891102520070363352482464872914554699653384307827091369344814452640141426136373038703457763052358003366372463233967780062228434016237802605159598834707147122695600894227342327518266875972416187408272050875789892738999617887651996288516182688020722245185223495739908827009918061563228624722618897353258091333173529050440707347930687590356773213493036844044848592312359876662036831400005105795659378359518262909505206415799272662814866293709456045776791717657769354997334191072806818004129130324067590479774432462993498766248998617087163405317123432676277582107320379757324576048384518586814685107221582786615262030156153207366714452452704199979945457970802636779319611808959175075157367899644439523493794831985096645908932207508186587494003915830349633361397784062008194111050615984844545299151033747750173733961031193408838922880549922976929971968496554629039514990729441671228824167940060036569076086031160646284880576779180329250254018563471755103963590258629122709378487947567824482788559960526503867213012912899421281439191439114377095356936207293243913042732771967967548788090585513941755059794989887812717766810372399714078786237398052243621426404636452553424349342501625923465042563130096757919218286264335268361248128241021708759628115828550261534857695524818546884728212392100947313259032993005953828423647941774474534191105272049587550126224357057046115130055045333594657290104873234310494927666600447132927481653437065944784752068541940486021447258683028820381309883521663819488356132135121844620959552010176787078156588281555543825992090682798859477430333510232659504958311045124105188582807675276735339009568926122501823763122682196093840724429117123544124586169124855362223322476325032273777815255546315877985315584237122130798168829719788837383575988217463882618115811210424692880105301497153712765582020792881420945222715623243120589441137126328326042516903665484191007895001059799222055424793871963326598204863286646288633374986365340622067665378069414498482754282394858475384872309285584921090672718756607132800809803162430930475376727433860597532657916939766097492343347763487907245531004057461065813407594549622237431855633446493720602337321414831390039331783802377548369686418423931945767824732673991928602040919998432234796994799888148565594017879287625169187054376373947451716008907872703840281027248377860513131229920034077144597882341424649340178704504708751923645810716300211759034246553313161897552904823129793731710816053205864580277887092291692704865440800191645187730226583220747126231475852792872313641673316757688553025447716231199694527647561803263743739032470139709546285523842175111863914578692628257350735956217852037181837165309352698483228826240192009075813190875879115391103799568530393035349134768667729865711356117193459415193774310101745507246278857685676264482969922125367121099740070228919405046043671130872742270242976824321004284481075052505158571956491264805011088089916571281190652119178039980148729610610286368418582136568779316855959163653206491959708534415583784110096154003407732678370819894282164937729629028775249675766426845781495304747502975996124882389312951175886186544295823046732826755307990948697327770567997167739057343410745900391140163890880436251286146038800235596744756969382439271237016799051867985663648858607513313047404835243071513849032782604078101513901230444332741673156628098707906563889210840240373378461614905866767054620265158775921282482336090447219987568727490501296959479064529505059129184604794847911869334545259893289600607850349709719945922736371096046505681289080225486664112917599298833707982375900336190965632613678769929937247909262681705939313573701581410657503749775542414674428806886847077887812281785810501984408466348294908710807569889844282088478063152726167024281580975799703611221223233967524568003051338805448065877914296335463309756421448016201520262486501085673760062679652567490864692304271070883832567973307218866410844314851803859216589055463739728880870570763563886102843965113767649194651902874867913677458225737060771343337087843135204034286813053799829763142968140289833413579043202849571607791876439882995560179439231209010293391401020724072787543672756086575520789296417223589398687189559906230741028047836921797279381785924999746824601148828160753872605310458515207816677464308656911798644930874937230594984699705992534103681250370167492659009878521413619666448137317205591049969790748130765043075780628203529897763056163480411449876029986103935946515873624484661419614539794339254018205662688274068798322255052465234231284246584913354144984453645484154975250347902961202683537719480158891442287422276720848217560262692428183607499964313843538973364626184425802572840525852519639969946092913142678207132181849033975981453140311640760940812364277287698193185522305150339636966409297675901950757872308832715974559653030664109138994807143441004946130865891778552238121473046360546632510461979825889427205077434234528782532079711666349474480467941770883126142843097192459893597897292167220890587810696487490925136563507855855383628762138775873181728161381503687068797882714621372784698858937578236492923864553384102196654189619231710011369069025741946661963468543306049803856196210762168389958376096585103391810238025501912130586513186870257255462771073929740599365412724393129256225166510007569072930312985545621908620078889357369864232022104700105498517531646231432708566463167843489557709874789302912284561116760324930172100703826052083053782990296434103164875863719696376116093272438544003930355203668284484755925101907280182906810700661352647013074381975230673037543651782147284056005574715803282481008549503116302985614357935840457375996288772354427785580132719998400637824348223903356386453938433167764309312459073294415041373078650405082766011980288342875052292626018927618127880081144261806364685348914069280325335668862797732611723719359986606498059188528956302425245284167598898825048974336908008091122484586275487663583560527123873327934036065183976429855551905587231422059818126091312464921743918243701590976611968908801227312316602630455036256728065324053597861855744338612039687125018377404552504342452617123828449902718838523533102506360858060868138638492296759393185356396276409889494435338090353877489301168655208225588218890238078582753055698049175703303730996301853344342824051862116216647832965178524799942623293143122255603425266146380716139520708987489694250270402690371803682602840818117129408838925340351848485580189310675734053485138680052897782015112910541009859059071584130937354473755067707986896433932060894928245703701677807320137830286727496905796607978401326962565365546344605022798571976197150173045830352302144720087994289693521516529747813027312507179590246590794773980054252708734837297140572564824698694083421926169381311123158495998302029656704905425739034455995403009025824261865215725916236101396179840803116043981035687045020398825222489982687438236541263669390745066902836810381535412550513743175302285644305357647744292294997429096885466879446785729741643894351296103487899802380435732543932537730649947053003220085786478640746606693068357484759491046122567633016244560285140179692049253714979094424890047342827304181760892648868382349675099614704052915216407356093176592172804232167742313215960546607515125157385177739627680524641559715618845481646182392946200213139245598621980371189862996716066720708350475729319368198041761129957481012062717974271271538827760190976015073452095953929663214991302455616994594144956039265006815390146836207350923117143295806826879003265524590680073225555136608532644686111123249183919848638764021990369633565506717278584582303144263133733803016655414256158757531627161510821287394321055489361015198560311769843228229943506177165680759132116514775314646094510146268367731862028702638098703246875257774505597415531879934787059786914010012379472154192240690618225728660608509770857920636418302679655264803708532961470966527906958687349581815349294467449112719283627613071224404717138309569936214976664288834827109689591667465877012470014923343690613744832099213833609446211120974960137087734186760564471431524403392009984215071619038702071935491573282420726408453331545163425889339312083982607759165614073527270087409330286891739677033208127945026532570325802708532754678296907167801709868536255052550273732158493927773756021184676358460966609188788714569562601268305543353578839280851608400168409639470065878632463755516494438921968155309811276199122582052092114647203191379588779791208289971461732673324939938838715266648350648851346576644699629350920241611974726328482326303572617175321106277076547257975516214194363757204077735481147997318732156990710318566316030536964214341647870664465281814122866998387081417405109003008192892718508202234004340185035428776842574871408685994958119829969181443698549970721464572364087173828944678862358151922092944013918508138668615896522311731751993718756139952931262729962290829304738345329528021723656347785120157293809417191189060171993956846476351464878625845842089932758587328400576469247994345288687843170359050458951939734202274448957330890512953582505967327331093699064208009333847808503568264590313571754022452098699579427230044601277462789994196603978574024646914467507217283906615394693591789522325487285898427114988787717309055480193983812483949603380755058911508602140881564744448514540951133975851518474539399145546983834970608177395534039476486032943635225140151900171336759810619457056994336243431466862329564799231701764176391393626739279629612671084354894936135779482546156325055430537593003797014481038771756666064486484615754807140246622868339245505315876905306270663602144158473222127381946395979597096569907614132559918823788841105782212312065688615175991861007413015209572264433560251448994540085614438003612360227882868231446846514444044770136627113004356271937572690187000049102925877471888355984623071119339867821326380867752610904719325192157024102058834769609897725001351308033248791403997508841746280728357359585890583069194934079283968371126506149675403583502215706240435349304489686256097711581482176035495850344159548748797908189448413065773253276654791899465505158209141131457476815917724255695972955117280816509051244695275485393478655752073474049057116593332239088844427063621555982284502485044603272333926534179048917919857071395182378224081142312386114990927209326689078687715575683082837827962783682229698204478948864467614735365735124982586229292415829529431587972089689110873884347668401710358419625431817779601967907568211568510603749296800429874055992933881585426248163177944814283349976272579789078212431101613685453529382000779798390687462127483254852754765225522996628231171911116506207391205154174622346258728778894201737247690999869773982027672336421421889565674164595734127253952062860855049214458167393686942090520662656810141480312774680913996269098856546321437447367869584362240064671288761649325223086563890043457568108952847658058193747804495591644691097440681377045505748771427676371025259469741259693837872388208545208660411418342471942911482423068761067230391602376385189936580860907659914225857545469488830832128299240268772932489104540348938281877910844911893477997465405493966795594995733175528139306653101319801512878929501203983719599010679440999244725620296801501181909449014550783601784110545656302612317819843179943264628716367713315578854125402912187233881908297644750506029132087269806252403360514116996439085358604060410039385332059903815967606679599053908071485707207930677577771525796230751552235060329716836016463202642878615501288203471453399593485271677833769404673881327741910431793916459425685371470686300519262694928518635534846178251900169504877003588241217885094711650360962936906534848344126601537690111514715555028338304136534761632681184688715894004464831355373116022957520318922788691057318139301907625252060258412023460046066971845295389691770423196290209247018895238679966808841467237700744902758050246062726379778059976700643290761458445357732349239230633031999324551394566039380468108663732712113278421218127464303531579665863856752910945714159852695185324403437953987072482785431079003263960812677516165515015623863762791526244484826024447285989275033651953720632166675853656579445708705502681819463781207000568802555748421758650935608657422035251510006623865757082717299648388346691100006588442917148547490781320275307508077790704331836547294434043820138633136717195551696195383495825601007851268224095752028564674792750888643470504075105769097173819371109448440342568602112276934487694234797047009018745788305495155229783069381674131715068061896530315564007130630335035810669820674027004486565912732975527750542942672751840639749248934016733241281893127573490254294976985453218519726922168430174831828773436746822488701982109653738565757967137617003036384202112379265660999717805956297273467488787691601031219972461198392971856837303245921799133672790545091596147632876578156746112982816611125056020090555429139624912723407476524183253710950067820788539781870883583360659981356920406075721147612390709233619647476545836071687360135083983314334525065923303977449772418292231080927305790031775287573200472223272154936426414705161324310533276771607975153893222053025004677873081091957625898114688900536344824732329536489897688419270794821631955391478253292972634504434876559873628469905788972724840940936827391409605916877581893402781778316612781725151073467038512641503292777326921035542603289952586406433084656023707922787861190266418509602201444347789488306421031772398999234362274702656181750590247431775108108070316625428562542446223359182772201316503976923850331264044654695543479834046489955842685687257251133151980360440547899468274584588512335862368666432018301113421442640581118999708179356444120383283259585104198529227879026402385279143473133356055236749909335078433009485707192770482536035131854029652711452470924088436454784153517601877357940774217809841091959935644217734904688205460789417346063908638989940732106573499012359158471336767247879410804628809919881237191068905628345156909119956820878538860552523309213429605929172913336969905730177881143801026682144137883410105859389000287450973840723825486390300142941478873562795940021622846589639766276363105993076650858499183476838802326819152377331585137303627445360918006192107049208382868796990340386857801543218748832252480760283441588934865811641176877810432308117761363485756978380985236351787085493960212343407685571743652152999072567740517074094761064396688814046797211166081237223124495187733693844442514299144782449232193337929199275109775371072191172342724095158280574144575023804276548961361036643886581013405004007387284612349745460153549341530260342896948285217832059202583653322699211506906988347470486292248232356218175905847728024294833337734212719196347146464213126868126283531476432899808679091242097630108605750215260816310320662210798796617953630956976275251076198306278923409438061110636068717485849193470738659253174215607098187053543044431876833819786055005537360183852825183295894620426634501243453025987187655160438001859094022039470898921171186817470009386534278723602120628773281288218234529131778052207753082038596492073568687895355990176615243355480644216517393186749773390084314538775836743634530451922851074290442002135371685476533309067000694096231635279365370995000794092671499873678908781933360624533161480797525119786705842481247831357879797228082255595428625157569167642735462045094081244308910751289085039437925492272009649377871264288019999271392771299463214683701422054360419917318769614445008873673724022640802582650786704256667568769858054772120638712554359630765006358368072578799230824007714486815362187804736762357677917305438628059144222592345963618988842160987434681888582165145656654643472214273099851461126455444797520733079292854884053493906007557513842299207334891811458470757147601892913537853188444823398098718306131116393963956707552938585192182841786481616408405398335553739431991400665103590550066836417588820522075464183433256422492159816589812876341795506292953576888567492130664079833448714152653717562171607324880823021760061872529131076767109015507459760072489218061526625863207648675529890771766012075410522247125960114252386350983991450618151360961140687479184215413610347728967287817103198989003076213754690827630654560820823563959682994719288758745349218068721104674842994928500644390938189183740547049453391521988181493552440450724828995955534331217370141932119312426313895571085087787959842674764939495502117975130479768304673635063321405182991358620189557573277622459068739749197211330276801310348131499941306822597702225063136541851021072374944171334702121002355863708518780256047385989132247771536979598514854093017257651083793507533054527820652709174485844199632416791129607850215547096951591299693581640439655727730767177021506242419495678285711849991070144477195903526022579299000767845179603392584150521326112684694166037841000148571289617126959148137261744548532815726529629078653096417910522236020920775895723962830980249408335265094062916252404721032177462160950059902509823587681894912303169984789344526255834425395963079071094731941868949410123317718019470142445149703705682728033022619425727630620926161030212548945485083970287784984684448757513997343391113846043764474042855615869314047018383958337169875407710178167858188648049200442939540568741088955898814800150059472424832648068725391254970536944165152494080010065619148979168607854557833379496664143772881577525680235129407892808323052863044789541847163789545563254977607531372343904482623764552894948763705228953631845075877159404912789836950243534039120540409936493293686576471163270980119653172709485493656961068930881069251941278058457370739512016827495844630634342389954604740601452011960466796734265994861852651013039525525980381217168831844079262376475892983463288540128667146038610894529384067269432428321856956635499611839776177568702070514459557272443340029100677158039533572991595812564160104554732986485905900120193625000753071047661759280898540267765401516847350522959700133088132592840947540220601404049967404667980097040832863044928711780499711649708676599178510593266753190240942550541242458257914087115786868777918384708046573380075243630664088031527287745958499696320771702638059512397365198461125228464411537685424274488769517582144182699547034275735622717436412463637396020279993389510210467366143416962615230828752271723675763221927221505073244816694541911034556535010142384782012657255368916633811492650543992497098838024055199445128547847272071408847845331360775421563734858244486637622268734929350149800692676913953622952828096750361021244775445707852716232439237244261863944410746430406250754253447337998589714101963232181303732853539726222468735421141783630115121758661530619265741428415953921962951349465056292249405484134623881664112327368050303512057870652535951384016447863733452849552144053549321267349450647080327764284923930555475321203401632061988389792248671971115401767455225719655792136788840075069170760051753843974674572540449582677115828024290420312190332453950918016088062899965526961221770130284674052565774295672700613432686207629213889899229468670212790210636022712801587135431306141548460748988463445607270121211472406739322286251606962200088824358064048890165198676990115409984073255841361892466678573546393221316401156468899452670412973965570176320692910640485442669190782582259647911175242783545751487294245226473896469681494948105113677831332637797897874131332296163512167094978788007265594058337710465824776737075844729990178690880603795899968767489688530407840917625244160171852198258408081605637876487337495075539651149975468110004157968895811515747962891185521067734622989627559577833358135105616645806728206195445538561068484194433988243947631481331791125767335128399608419214111325151721294862832449800184773500066915546409976138965222331612758225840496557854404429954822742115877220972421072619486095951114842662619568722706851909420257870661488553134774344424851183847179342026050925370868299097615680192533751922065428603162397573616778809986814073030030797807109661594157437364703783348639519432684299464100635362620015321278279482906642771764983701851159515415969610114008938930164847670335151089464039913456486551380554322638300739972618467289157240702331491199837898712871234947198069162863596141780028590098981066925412482989709765234762920669899058679554547628527248473266205810382622514551080287129070356251853080780646287182454610148431274225416127182374198735919248781646070782567687854121580170522868605932372698832578582426196764953315765558803064548167262283999342655039777118836180755408501549318424418144167266504277995514410999378941179276063611924673854361866022609837675533613236551583457524910563896605030908264506959170321878658289281698568388227446448181711658973318476643466841260872281849119297061281109710479675146461725077138299606420621408941952314878267901678632696011328053179521579973882305432308417809766917645048794869614163731483411109488941404406245231871579326064455259947820965160751520319758568063722826059852407066011444065554846715925670387958968529541200552873108721950705751672225860341006251876552442269282315787068708500636514561393069553600874167688657627779046338784968067128881637599635339731348868985128727563045495263507119037819489274243627563518797323057935764822212112876570576850356492620303771222802348410800778289804743338874427212204630692709738211973208242417269243786933889361415856227337060929521348816256404407367161126262274978363624108293698392206685717990042893805945160989725327796316984242550387885690899020885246632953800371134148157063401754237376538588155662492956126384214459624416171216961544429997811688308177029045092886366209166380989534851452258901403821917630184270735404825970012251979968832212407704310465081539047112264489897065370569540312758241984429269369852773416913680387660407828378550149430038124683150123380318257154855070353388013180441712490424284351676244185719287082957942983317561555058280506668854021402805199383805039869675625017706368081482670217246683272808890972507210098113550870358065745242707998264964738525799959724278230964261068346375794255157313112373838466371587353040273404544546710807855300634350407001041493577303136150438570911118867374241510606585872546835857278215480619839776901364294299402123000535680369716976991215602641807540844836670641244604315743526212683736613178645858706445562708573642072916399497766600532730026191621260217880874067430825879432773090173180329522202223801733118488112897540389368691869152337745666261240667738889458924750751143097164989733968082344110500003575677029985478666443462578714970211660944299361756895310781180608266612367595898197739545116377730095161595766738600078963686669401026282196119035432635539328187886462649166515504412629986424286296149631514125966745395937270737481081118744770061644911747424755820202682548727150402341664265350344782074173942545236824898689969595797839017243489230387323449193802463301717096684377056724632882049006798440072074697143202256732528667406444665328669386054401559271947976363842637430200971839166592384207499184982283083249852145794133992336602873606831829964118273243404685080249199233277465387849832442570235660048904881524326315459397752163848284221054642024848208856840305303248790751819149260865752608813975522682879465737239158275404616780301667010596019766428834642096427497658283731240011789664300337040459885467992292704927699264991465951857669286278935874383180516002195067175937352158596800869481264609192416564116753655443303283024221008777948163837983421953978298547620181600259457360072292905248802389965617258436627201690589135033266904386588804735156582254325380960851564773166801565559152663533350724974009007481819992351815234052760263113916487365263885153714207715394140098131686219570678338860483325671942214824949454193334697888180915633781630343567626039126769281359710349177955584212223547527445128951773255112781383802522354044442560089709041656846001395816883732774606936277845496593094475644705633182455799865518476460829406259503963950383302439940432490842244725154701812312870332489991705277286794261368707094114593546704180043421813764178789645946866169933449951394173370987175320576148653988335933790598652547482457110712871667194432951849728739981922295178144198076844944240604587954949890875153968790926096624466108331797765236003699181889273554636344096203419540507166408029265400940560708280228657450247025549806830892687713950818814618586815991355160207720266698854860969503927363536996491918226302942585633718654064665957409694650041031388230802684215676877643024251217127509991213953552835350648085169636390531228426434410909747045337989174125976104112125322465397964142882014660916736340027207844728456444386333067543794074265379559246643193502727099832645446583668064878854583382106411450552170746048555701625888361966394801101792670381239276986842163711824956164271616201534637579880900003195228012328778558740081805314518113306595091279727473902746151306853164445654838283086093394466632582570477740665673214923599921234725454727693679592521387239879618352676153046899679242080993262185877429580464292008275146944906702688209678219839107508463379145761840052879180918077145782739696677839291681616158305758017542131265959660328891097773723292267231492800614051242735933364736973122872944708876592927130577485252384442641087409461319540433944666181849814382615095102576870119395783728425632602473338304353322759525267610677725910155541013153479903549214620499338895267015619321698750024217072899930560647648504537497754214275215760781905308134609502428508589656536103520494115963684268561673719106107484998468030847465979081110096990550290739836544424546096286065103736399964707047102272830160071025677995429998081673639513813039965450748667798044347420613932567782647703778881529342701240732640677384718578858801288713194039750691681142754561807340514928766251398572044173749053371030901447731951688337462485032954360194261924743159640822848113299617541644851739667685953752147205236081391477766682313048105019640364018040518275200745737979440330046295919843745902940615501745573410909191758648200544414639279157100653206962849827092475094557683875331615463877137793427608077576059420053892106148201654072664183658277457195678345235655977581050390732226536387257688574522141388611966692110159034971960180872699756093490989785237914088975633371617537976370165671400951052673778569080914429467942091500335169179959836108710054278499796739866778461230427393930713832792055830082316706047681507392419108918028562812431197737153214867833458503911234848121891746407355067186580406649619101768247997320876108054638738275753422403465399881374083369240532898187604962618138713053147641498120981138984224833628777933582223511542806498661513744660750975210280497732240551822071597421629191460633951913662377775075498881651252644872276668110258936863274307327352550693860351768306444423671120845399285464644346420956706344354156185400283009291940837453606681004010160547514553978666057991207228902453041787283206653543922665712888123552876081481972480878207270832649583054227856651429690294782603029312068329995642051490212783155427668684084757104260042732524947527793271737335630465430420246017969045776500118985149837930140461770482856279645048849424526306888846565619016827677925166180837015359048217482575130402158994699485205172390018029122616439165290014930361336135722334643100479345601554369617160557218433039123105259275044777901149246190147097627891741729712168012679486715446607292335192692971417761653180446839846695754225972103674700937060347776976954729516994039607175722229736174207359217156944865892976953250177383049093186352670624140458731871884498341364422266118106286252129607634632678418745198648054568312131464855050686041259682531940905511942591844396993318548331477332231687393952079386753899019510315054285040548195811869944452465776375982727875280848702003350052182960091868798192262672660698587518844082351856671374521247001997694033487744710869357386290658915361294664634557581679981060794031157202840151662779522488978833692707796626880485865306844844464320812232840742035118335552294193747207517651660402588454248608469216701350205850833558979751154381260513328772845625000913243910201085625954682404862991729683892353308928714367302801165905818107107807005615507106931753316847463682777949023635373778770421864908530371010196339316999014987580397595587305665724394266105023517555236899252071424001293782020711352999816339429231440774418455183127750781394809794715973458097307270425884613924909552960836201401417311809985766202688612781323788520042980576109032202537625688925736950073593345254413459399713348290122934242274150417658089004464526190236009414911291179818945111445076831391289103491757725409883954714433011779851016567584637931127371471594787292264669918225890237156200586853345715459475522895678253320944244423085052503124555646429194471586194807149095922578687775777445638207917697169355987208563595617535062739691832041794590684937521960633829973453322596485081487671807971395813575054492338489355393090102729774323943980678515725079299931624427129405331475848699794415164243459600311351722045554324334865448548535534491631740848959394208982963935299970014220493274948863580446404784574758084195717872046181263109175401409393377517676690526568521267468365604675589883356010229790913272083387871522554829605320260343726315201824144568714118293740978740517110563003783520605097285428469816764678907128481854551418593218645749225874094812760360765406363157396211458880538411631609862458259186315431226000298178743968737524559779383489519116712786853608409683275819715200354216770443099073148473310549429912790975373967446743014995441663848501674690917103291736247823978406719664618379043284033086290245636879458813230855390654776570276393128157241214249314826078792454855497589583701446701511174318590281279254141218012978288223576226401365713131056160132380571359348997846616400015738467779770992962779855069658656860699469665486233342664559552642533383492203700091158231682764319915505667562319747082531214821115786087181798110972130562902554686747909314571876352076099352813966138119396659413539412926592768310936128988296385426766639901983490745670256178506928348206969147932524285858454022034608774882827121849807843303167094644004634774364590440676714751276301974000805383783522315249508679259158492003864211915412231161793628634146699924076118412450819681245592254158312175928322049403428009018521558284706568269807515038790810598491659227937355216410449733812164679790060087349735990380288502499520463762630519726466091941135073454529581142724943504018671518205606931343591582673322782581560150210099403656364396403012686139250707412366654475917677910662396868165504635003181612587066557885468374728646458914724591447891397913880676626969817546192461070665688496815131532169286729036025364998821196282646616969411395743400116199789136920049869922164241714566107766711437149823476274176295674321552600467814810044962022832366469470494516534321388741494680797552204067631818321856026919760574450125762397034179299044297353862506081200905249218509688632571074499289504180016979795355186891477683685902192217548604287533108566980933569518468893285876422249832532511559167558035841454905893303018212136484248205159045965449720657689507635739146765534025501339813612103529859085226779697276838913431015368026387015046218750636365946388951162622126348820813378479410011635580773542443759818977941501642369133261980948966054797930563621850973818296187806019267071319171010804126438425015580856510054741122068560804549910135765422248124519522356073162049105875581036489771599852281077767705737416241587626403312664825689965467040487686505326459017813686230144167252133953474186318343758511359902924099831933812551899319208278406235205859976464384433443947497955950090676396887244875806348874550652785643485556803034325554598260057350141370615878733339013028080012258739229172480512653554170000930440238837582284310811115198475509439448271069388748425916004027102312958386756041232490679377702501328052095824666437227768778482727291479153419945837490431968874906923741745144135045138652122868502326074002446485214328370257393877412472291704165164425958056503669023187546179636626067468672406442107112329038579498639439130084353369357700585718610433576677857391252573646663967392963737532236609262809816734665934340341737210197870822942816635575329385903195873158886913872556511899084330891103953625238361742277703590023340338923607272621897265683817927103165604561599058314316993842931413332581586354474604739193085699537494728393651233595754879962640672294027905406183799103891715135804866780378472386007010043481639393808176602797592903956618492495992756639221073070493897749483608482511987045792888062722693007535878119442534516125039627778792765986677272289983151871810771471127610194702600902309528896671534917042705716048766423936438031451078642149460474146335781014364098643707367922046284130428920638816920358571415474654900950966099586937213356348522159679453873829510536897731980931035404366891228988315942619086496437307430303233456267298318326650254975529900319615234642280133037339433146857690273684190233073911274444470134102161714965956634007509808499104967424786403492668573047820371530995094023825230178818979816017484864042739533528435927723790859102402119385091933155546875682811371238886479422692952980201073636247910127613998072211368502110793513540657790937311941969902970477188728167885753507033839938894439661656434967900976978676361382129794636556193545883416045495119006831898125537963696504659200720309746329402620816439045037766639018355848068794424124907631212691156231062360420453035488236073010369699137684114474232555860884600733585462875923780525685828599529334888395326944084337882512913143075122700254592153870688948240933675478196983767938633872803677662839619511868069630905873834707733227742693835784335429794840894232267973414238202478562031898174751907581647848489515091183924825992862445842934618526675425860361800743624991492382737424809052339983647118322883625101113153431890775592699737465279591056293574916374863833324248686907865925312155508420898188295681412955518631772062708221710782034564311140355466802831186364834175418806607124410343124504044290877735644125026292186074046370036993394712122501793197627689772988069604642534334050945174123241967375842498260500331382488864880606170754727413676228024860039220692503004415439379727803620537115805103950479776352318873588147954259150042096908480123165628139922873923448045264357578042941386886365681467628391759174509013183811253984505848723159961018801811215301093850009024952121409655912210987201652009884196646268282043395137269078931210844052493333081675229070439474029421247856521459932765060463611652325614652308807534644867963031551823687956559583581314784200060224607758040153425716415956930812160727352641375096493846292567056331803157801643573874746157086511889289613969916508441152210249594371816360722447387702985838188371565600728433395473096170376615894682748304098736500655836708075331575823848743877403695985785955746482465966043322568598953918719106568258416928255707813054360579312689464388089115598352788066902109216999579108120399964973233880259404780232302412491641656019172257713173181998445430984639074276920273786216111571579553488892413105188776414486062302542892315175657603513834752579114259689015799428669119425304278784698949238510897451397397232580440558462274409393625581573130075925680841391423469029320870992142175782737061003795374241474906660470040900628917934016904436504818769237773294053846059278060951109398778904052458894687436867396964134902565524933280359173595977666505895828488103391563390666062591943114989442405850065479399278322427282507511421240952982931446541381759999389102888727283515203458685344436480156221020268624183687143641373215075015451983733370255291256348870770140291893490047291809146797414646541007238037633799228402426645781874983761098376799386777661234887458314571509843552478236356837718864982757408534854001743514941203176458407085925054457832825728425928446617169382181224192289930129026702122681236892936177782225933649078554736424521532578615024154070403349830228481825834952705996217934313552338502002337212438737742286089801211131128350115782803470280401949358830804368811901624118450400791234563658105485584220776736470191330455934195381577694642470733801336586118115368717067681181836306663988681222484646754067444486533572823131636711267423924296410608466608572407255640411092758337846433345977558173179419070043376781095328760424054322206159413643971396080455330240005580574667380617003977575943315701304665386762997430029543967354291670753988792756768514377182065168278619790896600785046783394349335043045836620199752575455671093311999490121697083218256097816274086164037218732420809258497034983036637623157388085157914852862150697199266693144892592695221925702023130895906199606717689834307501947573972547064862883147075621924337484427018615618654244839590848243661748977930413498155278615078732672775621363090914782026910665198465541881693621592576063875292149290105364610142780731962065826074978860154624364648145341147880407091481799110935468077677596188380254448423862296033239784098437646481941701669297697872021922052164804350247219531736087011474797034803064305314726963615591908617474455128724832402603384855556353061878587440080563821507732055722110148731855872300615469453222200844139216609079869370825798352153506011666293122442780947719193398334405222896021056804689748382821129367170607907631993411591571186618837228277403628817512229468307523207419204830187991175640972355847395377421333949689571403065094768679226212876393717561567770606671716262897401973853519372808966741583874996936249949555145852665353703600151226961851677568279238074238792621292693097168778464008271840766481876967759509589671693273800144220846387315196985318000286939705047466261896375468106704077096668642920068227613380772886154864357854454385662838179728827247827572487187428672742945983006976122745433547193403731905668853896348328580224465782949112058914749509627859679304599509612700054625495045455373911404429965966570392674202886580101663225466818211183463359661726801045183798413157451528513647029235206013238791769686626621633058354856802455026394141106597157619145372233202960408642767825860445679604202128558129392299770191809370086068788880226180545560581321941454747288611939763015956955951729211302288657741428309557107865049918718123777911964692326401363097165555136356109930661645138892589302444040546161213413023222340250996480727407190787168533186691253317736104644325707947181148731036445301148844933569609166544034721199398333973007105319483885973958810187964626044298342746599824244532806181442609956989533217973801460161253649446204821387150144631191215388498923378947033151980906322893652235575133044474663251363439978993373606207155539941884380122658353764710255064636052644880626728286014320072973786739092891179824757257625465119006489675748622632559514752968208461498058955496328642991532520178129947792180258651321608267187030863918140652371250471609070478182919976034338774530859618645761530846729429476882738406953740949430917112278896346099823644907115619528713235776274760249895927917233104311298826728864882216751701303340583602097515569297395997605287118908345693372600277947124922738181051277500258357039545469687362659167515717819805749692773010578267602861167177103193650503423484484307796075773778685310185592214677145444580320083802776194329705961075918465350562318300936683090501121802894144119477751709057729769453954699595801847932626513491078453469223414646650964638894711612441473398975427609275439485588031432723070541588429193252487694911036225750616036464610347199962955665018393361514735514910727511884039846121108546605860938958504123683470866135312486966079335518366797971247552412327108227670931113390400750169909817640266538957953582798394697292116837361593828099536175221000071386263142883940973757369825188289829441830897005784739247223618232891542770198381969571012282875856907415006071379323713579597070069489144926766348480679331401125491484945245775322318902116763963649701568395891537689018903239416543146833737637386315814610481732182057746476806235416541582915024506539171128811052444316192321710169591243787444929934660917832847361724522547857067961261186370466863025899326861874220655074545376160062825000298120538098266741250212991488452236872911551401656368849005484721124094072201444017575501875005082138292040847964604785945203314001859844723846128094741257036920443544363056684191729786052643004995375152981022267208287912051063493599710851598729826177833060842294032608774096737357135164660268155679089477119982322240514599113752728754440422310590253514445467058858604843179337365037948515329521287492027701089179103235783023246877473173223132852703192897405982090513884625779072173876092079632777635509397187613273433022973341503668850817698863613558887760117732393583318460609018452728261333082450871790328909739437868728532327717941248209846856792379391617064250411444489666957258522562976366894903032703438724037448853688931355644668641949678624554823122705175818146749339895832855693790781138901834395608915274884944565657235876853504262983176145574009892007433071494930986357308220300801963547029021617366333218661427808054271124639082178937697398198819824693841117589340520793284619596555724691834013616702588400973833456172927422169978673530871040443214592277747206892767080473973802552905669217879552538911359383076364319921593872644229961477887714640514460182738613904332081469600832275269339051310530546528208767779895543320523955205755634804154684696085491688395387583077010136232576891233370657239928457236379206677358930167649772014804856862279875132801003296839572722357307076957037463673089968504093571827675906962726953359650340172625233535960194341785472373240090230674063820847718011763849374768751177837811593176488510537622775296822953242970183950362915059369443113218284665751741302179435181449615926454395551083196774553369923393333090135875365643465550884599807417625535425003743556198345467893609611395839761898684567988284156530744708593993100536931176553025470157668841868325433347518216477101234213982384212279486960860924220439482872933633189131075640778043151218311542321097624838229172648322364689558260396915665405751128070779189630222560344995818833084561887945896204239678139170385211027656188567338038929669456572216145336222728829960475069751062481965191299935587266591591324690547719733610640458135472092435293689286149283729266933139591613034829947782232143426668598785823431250935080841881806291196236139940896886621455816040215656878674817169928263866814810446717445514623305743393638301538648188797114389406856991564259624063268935474370227057813945852502284943707151800409704696374117960855352718873334966033282581757513275953027700384730658559113017496170888962907563312267427848810276301463465317394252214822909401329427271163495279870379910671635633470779055148614678701105660210869527800186402079111318045065921739593775714003821950031651097052999913493387812663924172196891687045046120059643631926718631176209108743411224754281420899791382702614490957362768926623570523730394697492022133871827502817722042273841292998472297101205906454767772410943106181657203621557482332548429313774435270853141391740345663068948735863853378791475924318889563369799388451960055369023581686817515174405132876530164467624356822293747984473949654594727742226810463871599648435076869182748893082703215414702672015751591559600154233628613910532041704209027557049853287513925944212330532726425493177244622888185155282117419604185837629003215730961139909356828307689662628171633723949228771661652570694815695918662880196070871333622011021745932677778449199100325198755649931765814308783816340418526699207556278301722365686284429458810845573939387245671957449431639123115030730060526568042613146986146788307437726429665678536612392897037436801584587349933738887315158967234824958300796621981352286275260644732233636357146389399255525274971473670457120540314927061601301858979067945219058732718836686816343008535547262831762673721206606956803469496573893309636825923450939185771060211128594176246788275950707619846597834675047168039055816147947135723328507118352631144819287765866521551190476870693043734853936463160968083404721141394417201532292889243674658502449113734171965016136553930717643702748959176013869651041142381324624181855696510036650942707983603992452004508980178809199597423976305605687372864399796841511987489590023064485241956131576454659837365181549672778727394294480485886384390896792245973597061533571407322810767316660518427705885352750379061303051662852634067220675664485724078584437395343147254263285169107284693251693318423677598616091661974809557330322420199354211100580214832963937195442449430876737320238753388662119268787829476444847775693887952616833521301803126947041651605206409767945205786339930871205616243871319981736802894462580721523904471944706037820405795573250450818063358871457190695991983144447327034147836839645982223492201995115886174970747280002492550931185336618153049763998922795815262887442413705224943858644433744212883765523390438662256263475577649688287469925495323717186327060691256435443837364327831780776887760983391165912008722237114331271980889396815467719929666353326131047909604188601472447763469673167406389856640250028476814141696221899150928624380155094366646893274585832376217909484478249410325313444342074438727804687381057245278488158459769989097567180322494468699085641318158882419748316521110799151862099517871125821622413486029528047012874385515494412477403304315564282772959331416952587765238204737681988919574582978578716432345787992364032691911004121393863420803196097897916935157838858933550786610583285188300498319121108663734198217113980378075250229798232520058367493652958212499293568183891365566640333032879312904241079742646933723359400955145714592144115342813848956109975960548452753853918726351847385509878651604167912300902977000626556162801682074426068689110000511359789619476045771539352485301051670718819197075361969940030156202322002358692171755146395737344275995019682256614766448452912617919300715198564472454396267910368300909943792855635349077444904472039882931632432249157391169182574927286191168964782802813806911319891987464537565235055701631998673975010592169313087268866674782277006669828112031779936088853385335916700788419577322858367850940623402129121753103347116446791511846306546514354846229206744220171917629833155107303788485874202353916279169453335319225983997072980543142814056772512222773763564720225821795291645057303683592228708439328933370109105312282771826410225075878551516811729682103443461012957228503429195516514267184323403365282892247193931176059618304960760086319508710058890965449854878214665091261802066789985044342787581147711251840010748912420228744934020991776096984261247637408347200504680003365528267268825499363381722807193936532051239737909396152957070651969737334956639421466659593562626275187667638740863649194699855756324656809669890787949373714494903980417754752266431794965685228288470854392693089324431895794374092575269353430192756791641413064891838424358441272924379943331790399936336033204106646726609196358575078932788903930579796880693475322471878981596963427802433999261307625918669271726424692657478584426381920351928643760399581580106730908985387469276095257462585831107864848940513753699135436657554496344781492293253960217837994318892480845950883136800569460189756879696569800027841735506196724248728758668208241707132298893307009328931859445675263041788071666262128166380733390072923753862267157717226332133271338409514954222182235351938411021671061206338894309908903484568027337629316301191944500106370352666649243178467418812057210714623581205455994436927333974693618496951677072208362379611385720723040654516939764553229719383389463486537960785653510433967021080849488591155159830683706195023912212546949203659768532141935641622336184373224386883145422213214450897093227774743359845778776958762945332254745811535561158326455797113162246890903493311221313014791854205901890686952174992818226446723601215138139431953443499809576472129573709785629016541654324572705715065301015919692114246605000588678520907406063935496868319772314796646108027157672806028102529199579608683565394612637563500561702418686655226059014994898485916135236701715266867724455689774867943885408897871166161369405152513089028815081181287344217672608477928607962392872139176055630501265261416873364347659423312245745441553881488701655796311339915791384000611606169993156372343666241278489430059545778669644201478046217485809408547882494717772626803150108629892428548801613442071307297551218824340711081334246190853234245749597663804558018136344762533579213266578135043589217456390165297626015813071337709977096963659283361690974320054872847427704220093994318012041744109651779285362364732111634633641664806361653185015660089501399831873214363534217509507660907899023419975390640292768158320368420853608349562523985867386006917605892187772883225468718923268671191788330989304731770567409022410552839414312701502017743985034861249213366182467670585601692836986589430869058382739821430539279111837243056604931841939851070741775762791636844049206654824114208742708740731156404260943487879801111089874526789108836396953479642216267635995828968072614093437864614834907550359673946452189005507669938682440952732612843671277424641984727008324794211593734082731983766271106576007139118455769538944967608085036965013989784786602380710718804435702944136389508245735032361430903895709611866334339674727639490892659191601804324702876945526557125500793635114314453154674873706055206309314971194913563024024148697357795722470983340155117945930069629573551666439302806556166443130834645491034638062046602049702124482678388422643362689449457354308610919067141173508588074166170798081069057282511934248891128234051540507439778095051361858077467458032906617590463462987002215704553311667445887348763856416548599808671666352531913103839391348003081320986353078871590810145884000525249959016588148753457703932493703955645263343383884183696547068439247509047456852446305769845556144308903308542757421829978959865874498257215783912495625321869129980400301257192731104909906175547585982700830522472227110308331269657092000511785668406203608032835426323773989156067589642735649984823105042905172924968631269547461115948252417909590434003485624692991431266984057620794021284185358247177327713968273420445617466445000423130782807429986623966678037095979121605802222808776131766725973708752598136605531948992937521172204411082670686159838549344034894359179219838084131670331089274555659054018283782541525431791424026332475933025844441897243294136039590112102158657196805656248433824288044540867940075235226015460543149897618389019311444245628611665034910306475060433143202986026255135467244917686222462400468848955566851971411180027096825427710505926872737723919704235482051973106929253165123503483441993183273398687847322466807439913934390590083433533859173649138335166019954403714595085936458186998522156516837835269437096574638413735748555672997922548948082553325091233411532230267467741582119545897242394907574603685495590794362854224730159434967941573496832098239655776503181712850751279955178164145148416590057068810428306744739086371818957020435891059831389077463287530319646132438925263653435343003600104415192509754855497360650451366816936865219516244858637499105325670020170414566172932839814709105742031000317936453934155503764949931953580006745296399198450666424354606087250338617224079945328589309395915895761672154465012306550354260745931605151693777809213203792999706438012116792099450114334376874620950864472810168788370722153607320467819827115491696840235537602724873171970497181939036241162552455676525384182971667676291363872268634492437075757156125977305863520785564474439585431616390645937999731884995159263796098777169956222947686367086012865385097856652890664570909185086544605463293171834448547926093797065812706289236564849733606026995293050713454955094067107963713011166292402552018184385625713188153048022115139427251000180502122031224245646049616544955416760869899714721772861846454452702322602010107206920213197063700232182953598515722006326057589450782921431875776531796004678426343801682769750933656970497166822112746356566319614209513888418377596608045959792272088992372110816757946096727563037396356968398327576831228192172420287833481449798070934684759544006839887133051667679053162601660445276430283019550943978201261549156063552359549027865950052333210421310346657405566201225692586578369162000837835916950654073986771894132040615829921317077592675603448724202471934356982809690449415500773706204229565731179163970323271067425953969800512584523190600917494174618593781202913328621784949059325668247372312192823971970052222422763661598456329608236544065687380899137451026751619254962689657982952580874991066063065904304677122462848210154569449230609440872284138423989661085168704578033876527987517112007381570506411796016025261838255871976179287995349552927314894254267244225248210838814908240391266667129112506666421860413449433540421734230759243813578213513762972457293842539344879953061601741610479947675413091475682213375813773684075829021949351389144348530548860565757733256748692929757938818429148390424866325941261533644282817489737833521361358558552219215999976974659807208326290488083581319129372894673728634691647906551907934509213264601901329053561512546586417811783161982287852891807253295094179410581773680041958897595806489153462743486134784370699476490262300491435941218931607083836317925233507945624529154917023300579496354594336322926861472723571008272852667709410235591114433522926608899355424617055225477743608376516974679432276162289980847765795668436586143328851558433566343809613711458181682079005972407717474782515456637699377879589488068063463276795683779529346000606339805192622433487724772631157938800101248486886012626006838382674951344433534573069065312963620121133033259480676782184016058988435890603476999232191187617820089393386811289646588108370880704389994266098003295670230686491455426926130524448396321069233600921470795045461366106901484352118047806222523609432679580985804420291954143644514891621122397838478239189090264359181110740939797173386156177835271055265609192502362895185181960342528083235648009576930234381565365265293639836671087231153226063292754503775473464161545790789785793933603449053515258581677272684101218564842010663176739592485321830863755661494353557615857622543619557606541333039279636890686804647478711475518253364484672427589743413026514410207134576453806023604735265211382025319483888626696642536261605810007347972043251092988342210780930242182941708407015488517291175048544639472778009396435781660410568178378208975275351256904213243253361443019819195525037572371706425016717643292352590564247560137887530627729340696680629888344982889799995915554795684757972367092586358297548671414158778672570584638045440040344023961337450302325781995088497771875284730053270538046364049995888702016091292438018441471128862381038777026050021068433193143443956282518853991764629374484496254792788028316234074040170097456258062857147601688160970300329952183676597877708657528887672694528823201704866054517482824700315926351400497842304493651072851887937756718606757387463771364323696760455253333260064556906856535594787279341397734013335227513323356464340629393224685876958091551718347722491948240449713940549199661755228622302000578111002732312071128050307683473852012982335733351575299217410774123807657440516971429885211768802142819540636987962433622188471161616031108723776251670255204782884366613879293611568593616122656502573712348930672752308944853298637162757981992277728284034647755673135978685817548988200009733463253949207847827800210831648171831327612977906625555526189390888730620247859339253514280216300323663847801470101439407701972761780116501551200518320847552707605990129171866015698946608192283040110136567856004616210511850524690035626526106925478239593775249218496777707369934399568669396306642494623390673277971702619679873665680331583206368566852848825619320105532928547370714518344079096232868227277233583798560871110441177164636583444229988262529033266980309526997681568206129581240455515146427945392278432098076463396607569204980618508689236020436305275279293203761704068228706193545857759260744701127890772698754773504116054890098744482791324516548511865156090837725608174354468566079887218690336808901148712118734897275307787481735950754873163295643321349154058561703368041212857830819408222640939704092523482649425251500801251521181363809658770023835369279431932900945552901541833651597338031763865575717462917300509426614326788205550112699193172697234294941011760020693406315386513766265110028419910865503783254793179855342343852073062395538335248012344798150180268430231669889839916039835959039964929419656121223982861201969174549088588608114041981517498733629692782693359112694905470044070406286210010362064952023257643557378918076988576254661885167923026861761398350809609034065313318682973824579376985991613466777546286323006504628143626627160102785495777841403548978189649487899282037643182130051038255490202298104875219038947706852755643672296747827535660827085721851543908927542284674441599726432639871620181160121214153351106945195283336233501558399659851960351708327509408598800216347837399348965675009589515036354751897401009053264376401411430888088073931734619933638297797368273071945324761787333768579417093184209517372563157428615693451460893854490897985679935145695732908614445880073014604891241411938030869446043038919340091643411245725209150048443884575666142501803622876495743528061876545789858028259448184750611320819737066118583520633834802753521548019429528648635745646043595250299606972135802054865558770764734031117965471309704805648499973226896480759396309052098502747722216566917993890697112945634194125615539214361525755889618477238870961925011077986716531814776862521103251674988915028538966196503225139335308080486942585389755849450273327812618824389623531356501482195194907126182804673294131230270245135960821842131703720855813213102711726150503894956281620721917659316830580660373707360070073357737561701163579299445573717212406798183453736666909706274048681557044100228721321771918805988561070708528753301406191316995295494305087491364705408014491212011820010095935443689613104903986618741052204617523961655331543666009889649149854902835218906704931389145754745806788720014130040059407622493196935455635053786163737118114323625037098267849259825487779826906909776308194832628343378758032452687577655410179260190773184569875320638399563117151989507120632894115094310797742507443831946797297650349278275673212053633605556547791448688025160366033033160330962167449723144048911095407894133536559097981383983267828183001252496765361182784544359382242397300554083927022566384242685433390075405561346042891704853747531804685196865976785581242721725315743580756578310142350947591467356554281442083526911195612827001973519648818662353790145420005993837659183131386229822013910599866082725911999760057092339423854672870099524773103398162235924015210659919411656367973460499473475279239948733103263573719406671319103837807072835196094951676321523635627190087480085712223848768012286255586291744844249809846900835324219164301960578529288268594754106600222364699952725265580933330111779579152990458371740490377919736439331713213441407431381709407730711705156745668396126001126297488271782258661047634914185188093866167637601460316306189208421884892215732545957354083659786509065770092543558779284126555050010352519751582893761115869113398052091843386206277928933402514269246473845349812565684321825974634678601715355660498542971993271616446586317287080447142853256156882434151127849490673180511762302959225236017401528762298604941339617239817346491598279945488558965169685829607461039221239729163969119119903884477484111386297273809075089357293760927031056276565899715488985015630815952610485423270732470645674717300287202615900719782282846339816029025472277026256230266850344738491870794066822145671453489875940357757928195445416825961432361661763130074229204064939310001804592383142805916980527252722533972102472922297279871180960681546044445350318055576138784737885018917573869066244162108470638408094740098223514626581339632378500369182217586809455362332069683780187447364364250044241055362506736450702557359489578795269532034225435032230555819501551196577613480191809821473869516089976940749110868343969049485883291696966117616515223591812686769607303731249742139358818061662659146649873114943038361831198066445239136399657234810449145359581650260124226414843492140157248496508188995559237266318044981033137894240140444380021350628918425251315388671602644844327197628085297839930100854892997842991333626836001407712849057133065048722479211729026447423936943188283394743709086511939077482871967959815867729949115868438530517493181380994631159894426300999744991769290937926010958638106578629559893188980294481140441552091991095352786489072191493098916069542461430609107462203846018632691367612557374439849243149907715224075139673620697218368386110978101739966281841692066899708976499385710125460838719477395796860954738277535915377201579086855808989685414842658157920317419623848636226469513850371091676223604000945669645269579555441589558833587433710345735368863041336662393078930918415327162270091695766374948549334382479596739946478294223279789313240474164332986651398348662527803025358963848793502742591453730447944461619915080513184026637547489133424298797864724584404994841811568883188323076526387836005771387209497077975273077322586879262851098892417372927884741301624423062846411144064987963602820676970526399038609952795407679821268264362913778836201539298830108716046967653799399507307188693874293054606731094487860361450356470804429372303281776647798159808871299886521931723584008912405646688141771514923999220906662715938418908434940523749451162289972821059981593397028933526980362803947096547133825195338265991665604506833958631279027773111300101904283745312687065517671363510738182287864397796121844958725505599807814781600089689780044214705262726718910884558582045345571330136212059389152023563734949117486065347444317948873014956120085657303441137638048713278377311323755910502700479876921398171922883331524075811499146825007563224698830110103539312987909703338024844769197883907717570544374040475559594288796717775698663144577231793195905177838557945965733709972942422762890885179328579598361008430546728605115502567838701627960999988743662835118103278574066520333577283738453044023721313629531896324047567475332362775426824064162023967362855584993671795321765853535371692317391555175434570075160301775772355552844499637625427322215938848824386314568323618529848531154715804719890781147508529248787294540564253406150882672360763871242847438774047422673839446984262612551476289933976050764622213484145061846257788047394457404679620591975307132521551592616820417730495062191696718012816652016928877199474220954085473117862244863707666714592068077849800387315344634622871642035050511312609831289810336624984071951098254147428975054344574142123748165324502592510720544243025540835995589825829991528137774671285538386519296977016851947288203815988947718960749677868875785975814856910356283246694997061537221972688556194237869361595020460596391160194121349147814066708532163778854837078117258881518816973516208913956331196976942352347837851656324099295245925715540767264613204079258760187689827571140026241738683233377903200329462450091227737728850938894626274286187187725872038946783451158624061951678695738246870848042554487486936245498235166620737920866442038901126436440878293559300341190066813555478676166751840590481120680515731368459770177861242513467870600064124409793777021929719675926601292765409716526515630923596398538499815367855233876949499485598321859297745880692192313242250870932628157015897813420700287360655921324905362877226822600034902834884179475537332127789744993459708038852135962153659604244128608519977956693151422859118636205818888264455256433817803118370023807644673292751210812147541296663914726419770466238497219550780386944454776454018261921675878042143007328762894313063206037191747583827358995130562518080311691111977884176976027422839373969757519804271806547728770938425868994168017239759813962232980822742693606584071638883792573728340441981374709498151729936772197808425851040083090737515991104871851953579586918683963130820585458799453151699597678922597927739808403586636509482022123126880562666007162679503225897326585136769976920148464798397190405371183983508603366274317507397839757082043717152314722142809527718139623561499537699771825619269008871734336625593347526470771780449794192475216915938401371300234120205356728526628014074096613474122581044810786914803802581766886281015818607284244473323117501003827724471861261862515199473437766742843781561191454033996145561896293987788129509782093241374706958437651055196515276011224464050518404045715673898193909707656789428969727401195076910270295188890761852114202798572916494626083914765500556839406578593308269066557349753920829691930473214156606358699888061364920792168755831566199340299765192217484435669282006717268041215433498396877308193585234126563799141547492759795497852169615551248716664480121983873597877654219119029173862030837537749915985206842422120682196726637125353504832984365664159623940524491689713506396406390722708879337566649124979972166054715903634952423226292412656949832851668700939985186857850535240456281375753676630149494661251154838837424004966562392282723442802108995899894421972124264138755015397744190510045128890635725955947181970474638967139796584230281495742096182119918362902601803703424251040135013153017983315655185054476370697536404245333796642397483319140024687174383837662124680644135446913941441271618712923907077586495379503993792227319005980152558877330389247212827908966939839245708216098827126149410187508012022211840649537534496251338568983943631648192464423767720001299595507099421375630305255243124970339362462666552177568379946474402000945300464029541681111350319456937591645542475321874465014526568235975531952580434347959321935847118873649800618273672395374334036468519177446622109296390026382457772091815216274452853782580752586862577361982217430620472210226375450439720685361769579866622169404531129661348105345230756708506274285119727894389362810039408655927958071668037392317988666276756194947748398031642376090387399468438930663618494532130785139787183378041302075086633972520656123185637192560448701519478891354261476605990671293385107868480057108558560398881632221728438614959654731541268527566860367088474098311987494553027629527938583332216413246619241806389250274977724835155941922352281517534658452639150919543902551954847569279606754446228939465101954083227379678623339313941871336009196075572274738375970253508129734613322101396150204336609012605484218346022093854807334270698639569335394308005103275126245357724483110213126075338632434743916836093822629567591320565233966058920757205302909022309834562715661277378203180283413159423043449995751559059288908028277937726834725651754765998249643926575895393805212299451281248835848047922927965740179704149655059398522782816202033589584549344414487824496939327627708249676924758759681785566483584072052143943953968767550573259539881595138543971567433530570671775187528444390136097243058480517252608188996626191327320410314049529892096686457721615531758598742740809867236399574376677798623636063851780329001096943317912438003616824518442653672919816982393771776728409332777172536080399608500623718620174083884491836666561108232768837991820682631485647338306412258186225481275485324798061579179640470167624823591458500952616908295398956185707649125899255411012668027759750549378196944583645005644427778211127464540650212517485629998617763225845956905691693896673350098756283695911951101067729333419375539853278962070806396667813932322930924906099399132895212069828427603423173574998531452362655127910800158573857713831658390178838756482055663518597800529609415888836807230233374333507189992822066393887319743571443110807236987180412943517351266770411665543365353694047916401811805265107649986018681187632824222552496040266922829684701520301779345336306513737640677939967355325161620844927678895742194121062771348857907597383037011235503372771981419775626673542882929760370602557657579997963077626631340737720167459175531629482142783141126742700884852124289468205243713158089057854562105167089946180517829893290284432280443598461246489652505131998640268426765610835047432614751573174373628778834219483338735872939008651920797899827705907222061307660280740372547458157307749867416562625768561622482137637720005757206671071797660577352245799546752123051843266048835124232156766908928022584398667534071892792235683717127881438558344810058854969238736408908690936233000627768123158745606352173458463618608812653190248508961293129168100333908731494139838692855025074704647404572886397964188802432037031060717450916471688580102514857777017457187457884058881403829869115376350048705177987425666133285874692690321689032536181179353834644624890288726973548001930194245441892332186861056757814256862710767472155260737829608754987517295119935862243801109600523260613447179872684255932456540696625686774650708082728299004327330296879931707221570064382149736909004121317067132894068417814427514326828497186605122420426168641600907734713113474478666472734562092068295849785584330820365951432504766897820125370623577019025427575397684244890463434088017839647545889826023330434357117388512673915677683602884954012330306328766152038190834080963754493048135848572101811268430579424305384100597190537276202073309801039506258286597656558936680797054595349782602896525340447515825644105792282193738871432681512522289307105624829673686593720482305921185153974401493965963530876392619005121884452916525076357580978631190950806701636512315626819893946394918927424911425211921368593086641995629846869847618304783682090757003401126456443353799185936216078604408345170750410635842754073616316387062316580006979923816839817443684212673614291675754187615687402592947592504788943278216346099762569299892731785447554104147132558970657642826546733014150687283384226177171722729345953415207607004389086350281337473844337147990917862659144889078315733241686075096003750469051374258557374313678155767905277438736565578517466478768363166265380724704160315079508981576951902120566209231492487923446746565807828530497404639808646699847463809803011223828367677558817118563975129663961188550314016435236888838494846504685752237274207421589584414146387880235067418133039419058938728387064433330165509695236607941038575166833883718173033608371257150479471322274656054662172881322751059853825010572604242165731710032904147796904101283445457929689344990966902796475462599921710534041785857095792913600795015314320969530596725940831786213097659406515296191817517231859288707246758303200651889961412775463127846184321485675674567059594871274893339493329753972531917621225129867361406480580408227462395750542469802828693945023090485416291850445672145625371807689330161820052318819245117688284422412622396328682580142012726757896186494505790187959164299312421916293841258432059150640362060162357152701316047595244075174588750362531598537346730526235065879323715939038946480043429440519685146137417465043676705175438597374733749088777243423108768945921294853027208544425776613836562563985945466322764780946718163892229345074090574068020851072864813806755796003387890278470503746463320804191251534236811426860147014297634016927730717253697838642176061983238195990179745445380903767768810350003147513672450254987450635877687042155301365015051245863919003454537089486007394385006799982669934642138075386109645812338222458011072751689804628555814757440796647650513960741459787195762619451480313298372869601182504592462012868765082517871419228897750977258681819370728416790627406685223650043240170346649571514284345052194316030752376309770176885376687313884593702896648832229545397665877154448044802353886203224331864233229051770504014947385343159644447196631034255720236393768335570115274755054066212250552399121302544723798227007118202916455926500789933633718293635802633847601755960758860045736639616191879753949556848465460639058765048608096076697895185261874895883997628517200397266792510857457326542659631310375148575881554988312143899775428965356490993372153136218580333211722320357454928120394839815708214232933137481344602785487087289358268076630445786240014630569603975992938934193400077772614253681032322331127310119522439925862830705768987180540230149494677484620771425454631861241895187253619296367297415577353689031716214873215541700083106051916463471201066594338884602749339502146261589894748187593203994505075042590331957693237252749023629285689898260172839536546973790960210801115606537934306152340469644742165074700879391741228799368809883175883655796634963985445270638606044389965398848901023802517333056908636108351418106826457339352150095547191656432640385278216177234065796925341496694643955042263803561590281257621081966107988730679686276840819075383090497109039553361437471540778052011395019261243556163993850826330118452627523818527376768160301939353895871550437300029873492237377115127717491243993491424803116100935624817030443730744263133690402675238928102169062955722351202116481456988504627966785336957971590560713888606547093751192081066752112526380745292433051836735000425659715099416257047127460743222062704564257664919255372719713539254752942072510629245394226641960057730364264228732357446474047588842455180363719869504104818063481368626899058723749091742164411852993886534428403488958181714510129072021011953146936092887916945729475035457222918115002597970843480596495968342607112821920676635333332135435821968562239787485421028274684591666407543189669250591727549814985302925456866656764815725812668683918159274978944851330570393348552411366679101951450677279040650873799265827336507038929490163554975164678662040724285742651798032857918710759037357855656852310058882488912496497922814151098109509663974111740416749558786955099804073142505569424108168891918175287208357268735689949631949694421657293351555802391273186375840476105594983964248195642925091617570531217225283831049662418091196581592941393224023953583118116709889913795334945180386469895483502613407593964201150352963519227904523817177527954352842858906333724485124612498431485691970767119198561547473697596154878681436324055196180936239119269401412391766927485918512861023097705928996104477004377216832309750768167977773363095347135328366549964321122992295290854535458017143821856240510594377862530414504486426239689162065108314548715384468012487564726611839940077596392721677301923403964106673086010525981553887875499440781979834587810348953678367609408458446358192670798255724566358748285403482102792422868507234004007393122742431171372665909772811632982318113113697386667599343840143324656599981713806708213522813080576399176682313193381094543475314413796219452161410447643300013111403791109305101580719456134305952089178454092339428482901013225963904381449877636886202926436091392602011205158557189924585854943935934517542016383497343545205755729862625345362984876560607257731821864956741875962624113850191044496522986347754128973416787048710207479104101062999946224800075182077803923321244007054377224848761193250909702223280081095840980563001377215037428823400408257220331731097990256558608882439077311056593166232556969488173354536378361919615934094009709972930522130328655900991292963022293217558330663196912133198884580190363249234384015403060382763201203118728290637035466439167847255585032938078485937000896731585053517257832557764313096476456957295723613597388516870284405156570357946467033965475597276132953006379336773721937744569325262411445241266601858368966014319561238734509422773155210557169721646591071482648590000622428098754861279837933154210077863307099621924619115574041534709032997963331165633173668497225626489350259706404889008948679408239894538721679735661413191186808737048876531021700501019347414370083813339918706831188836480993100042635868897739838149063206437666990149310952942721871357992748408516764998288860422822789596639888843915046025000223952728799558702732003625397561068948776868266674001316955035462328035933479755407892847354179017125291391596178816157161695874417029950028554017928261497181625898795252811575498863607447554519298052872872488234008926320012352903476141869494974141498400365290491682781526985249447674599426902643341883812807612097679993975319847037712565453054839746526996315116689049704277694705121008766956350415778815736846255801736214295969602621523068569943914701755753678872633494550320868780681108663658970753907423449133836960523427124286335756217398532698009793361317858855789805539290540602767202101334125991283513431418249662401108800632849882699374049682924328358637925937398242082177760302273364169421029895603785974642051361405180646196886680907228113252889399345739757591692769212177963331546754561279956853324400573171219650205089147480489542712838435101294835404911620980399483637352490219008268412616287978200482021734538247064506209934586553257806727678678214498947541065847144826020232779096098027088460678523870416965003017930428430871390500112644646928140920920536089061158552423228528263678891870575097512518608834885385206854746696632147795916105908938121787373533147584101371913895130569443534546580922233264593059589949379701529184361998704049515392118931113477059628436558265511788157381007558879635990271200440475806758187819154364200261874241919425657472245724008462027487947620848338643084698825254816491352699408166800849564076682312520183576690584785645307431201779984424660133611345481523208837982249668566986419558862573799971054949833973962653999218711959368750565551668536195249470981402940124956328623764171182015582035870448962987789959186368273981306630663562036248309606897202447039207624372796331187345385237848982969247868884597999125280565781287694883615402512999133283993360344586171220781395068937600400351583431192440439424555441235812328372200629483591452540131037164188589276376745180108552101293693310189174270624580000418189221408811214667742997781844956192956793604383191786402997206422803905290921128292040041732037434579880861398173799758777182640727918406539863306963217418293806287491685565594145123504769104087550175329034218562945179020918981964675448518810839686352753675591731474690735690976863820077782454442911672519319874090708977043200895353444696303285050527805047015751581500042312793029857086874007452415505648041742940273828873788966642816534208329074739813823828398133216737596743577766928882563108428625223144536763903483880738140942800131423609723745208596738182382680094858346892155442583081032957028833097684126788634269239966287425981204054662104584110828111748531064760268643926713413059206434143880864493759363170032787589254924116433631028008366746952153880335433838797518150469612823294467600228581242872732110461440874357021413826906016174801397551173519682185286113403017392844304466100570023592406327586772553964440796852650914727790160225864012453816181589609196830744064393946188611552442636286240544222015315369107423220942199296700451232514953612700732893859436503856042647302781607957627789228416693844180417545663527199225239956667820470771649179572752747846930972881255289076786833040576085919264356122223326991333149681475474512043505364999872189444386656228446488539466373212130262432745979720872650285131918899097991421072099509216900822481939730079889758870098137153966920773629487921661848805046364223955525495846997623299774216873613385794351438438444964645594389062745711826582916028648516828894524181950715142563843220164085156440196247728950503337653337671230290504203920962602923981805091814206179911962276678470472512843482473090106763041022812072951588815787165578129840508683615335998988687336056121850767301146760735455261000226774198012893873602689242801476405398306035440699423825506448806382827266192310975815222049371970713271274482802859481246289961195486697746688712152102642697285274353191018555588889104504389831585438570668149228354891574379683994766997170941358991250501665634611265618796668616897338590456163117252779556413327702843975376952567681306259460019768554725940584388889942844454326232065459468318367274161068658885459916338518299203316780196127562020046608735302516498003448392680161827289361254581546832599034584346529481634696585466867992895208029926645501499184037040922380322737583812317710394544163871504651127421173601813466430925003655817691643840945363920748140682837491236934655104200281900193386549384681515213437552077823707850507981817627695376530409958374189696330601412686336447821815478379597467764565743742282097692360360934858678864508827872084984356017873271039386838089992278327505621535713964604424106552814677958739369377932494584583091461384051241664355062275576838612903258435445276236022010694386266252060522671823161857502609712409167282111109243720407581539911581154627904720940186488283175145058617938751271564944626619539445740479538276285079748379903382366417573570314055399472048414328955978590933841663809361406021532102939261048113298223862202592195700328086661286740864570836022911393538643807302725391222594996927445220658305020447045630719849006543021071792555433374697102613890865917214148561769067418045122179216854171421223437762864909676145510496389362969340456479706813183645223888116231100472741641122227532235707810936019721107544845441003665602285038797775465344691440281565868563806840565186953557372643984131260678925539424870182720164209727319236126071514749608776982911790985722375684592686501552441938192123768493199573247911630399700627635425318401580738916970903969533213377669671312149219719407613946149970568778762236299671803991891046885136313375521899040800188202359307440603912955548421654960691617299403486260719380203085432506325672802045344426290935153114445719907930291530143605175186315764202933831102466665954168908112481631768757756334548312387225412225757453505354616766514190919771830158043554776166253415517165514895556917544762867282178936014857373449375372415575672179988556442406219673812980688278212923717895351387107661775067355517355309772215473691591101442458052830076893306599617647747484313690298808703737313603811222007753380478473219770299368956280226017968562914861557938343082895935440163163451599359207405981894759182944697389760043288570969900168541770326292651473428345543527334642116271172878892182075590996923755371592640117688129960183815925035590796354794186827855615187441392317740097117824080516833116968675062755801551457730731898865490481019584237645875380269831006705267612752248974812417512825929403376284067098167799909564417377147496475017182772507469733382410418064535960155669097259368095759058971567940536662585138137578207411799932958819610035753827121825824640035297683571704552146297294301865276775412273872644642016189682324916484209695171846236862931187552725713130225085433601880589842058774125483572026165987668060641731296478684003098283403039085127879498707529022039415863452965628611897509227448655634720075809631667293936951990952827796943900947779795779760729805145938854265834862691740396331795348861740675188260632743322181120798191086015028389069596151212120233940287205162867979449344461847060253402892587295600322160029113269694556281321891010940971252992390899922939355754080416971698707505423690825392790934024917836042924781874465541999143343355585791541039188474969443046613368494079976038519201421404623265642728597176536922832708406271723781713344092077457438471041258159796779779840800339371179899785811037602295474673769147569211999783676992589122187009912809098230647351499042394202528081958867241804268248504197826410406742434574671662563720302527478031342790414211772748085334981633666878454843266840162973131401436009621517445205930365907675904905913373126056375834185942810761509081944456688900003860793616497696959669123538691486930913293413536715427638724869702278906025887138773353498037336643161719435380598464313302080454116173150085173573827424841571831007521350221602120038899460255338743739435045075214910485823972420280007868158805773672656534587427883664547045870583660901136246923099584076153048945556999471805328491333543459615923585583613784222265205877998731052519856989731495026414040756333665132561588432741069867588615101547926867150358803017547611951254022999246959082198253526804205242633103395928129864695957642290503773028134530508400894631787404950783593507708022962725506366346071648230016108391087165773499850026680560267890173924547258841131581400229459979624401911140807418531723074268460219017926101525843428646677329755931367002091410913266988640023597692493779779042326604833360736054391555481499423724245512261537894724992594358344416193307904746620092321366445406061801788441884991032263138053168782815236384931372175213326216722954267126976693362531070198936257117089580525400916075956781371878084237839833640169587175119981997837920604550515574834653781047831871248489382470246632087811449515042190925761988233145715089807166480692975570647467813514587723396691492433320689431160243445654574154638425205918041976288966388065080256556017492166523398234073663707613908078232509955829148641669933941786431008480702561190601553165316646000962753439016615426154362227512957244538601423865398082841949794717882617907736707362725543465428664191798566559429338793728494586518477726438154905258254199523530834168249159755656254118220566238178570521561318249267829028650560847380165476404111947653081686406912479700241312093174200549018781771077687397608707727986875829774477615879159867345186519990422709091764718440252173844851533507595722890923128814688610733409754087810947086298155781556494107500042126565996891138425933844777742237223408074880593741135035635530338662170640511337611193329806033099324615263158187143715416293931988641964232479079814339499343082229865074584509960126304622060442248970947080571274076417416898561115923319198004658585555470349238039175770109418170654797832514039310383226347704532495368888467890629291228777476505759820202035675126240767903541475004647433151826920002016034836987904685665901886943866137233979573514273670255418534391909509024124614145231502562057886785002290500919106317996152025852817320953713953102686669676066157190098603251882123048430643598963534956281981775911899217603120114969399032934408298895342605480242725350062540538486324432254791323423724140787996690976700540045002277030543267056406059364084872744187600057632124003173853490879288857584582064337213354729685700535948784020218037755668338666862726210813478826413983215734838064159721870051202382458717398344109157353261909184150993199100932334947093730221552365743151592128399063661764369556210954337169260274561719881670608079880938146697676711619427306544716719313871621693036309353168186074039017152624267594755577318465802503399192247345036688296843839298955108541522190644158299870907421955931828463725839984259051475016968779483308151943765565995563119999283032051563138221272450486394912131201977331095919225040325013819082740602345614043103506454603573822558608099548921342106552697074557220168988321783481280228843803763493837315814326599383700009309087259788513896598657386656115217812099574792377676006874588315481275944277155856501197982866658393858654371733749755248132445857661282765174980389014745085279670837140688594886701501036338103169677832812663214979272576447093942239142496861526800124282829232842734654714903206706541785550496180962034198970697254736183153410554509604892447564222018149112964134338065939170082517519314562120067150086213915394247031890840586104218106059215820975591899056207585927829698918997619440085172686764213832208806869788474760270730764206234730847441750633573994361513432967901669946438692140629865253599960760018129064255788351353491869012998385688599956322520338758030414130125442804411392528222789165430048701766836144206413530700641774317695533471235183017589696443986876718327118013333855084116050003928289214195978185712405558973426746328280504663367071905964473050622031416977697954784370839653750136555555210663722579890499569449928809581492444757222403831849166692326141044199624421339742473266936591605972111597643703385449766135496610292850385628951655285631955345601177395735684636511624928586983668866752211225806473963801413133315088151067597291451558593089741506025308700369008402523569357168965158816951997307320574478808365358225521144538227478211749783396952832964349598491384244656634469446814391008504744550352948067713907931194751205635974329809561934815242242814995428048162396192716779150439628988879701230575875596025277487223057751829385512041354386377105520603306468178633612651649128968190755404101867423280849001703880279565406560763139905109303110811589225837782676303917850623726229852179314112772120953652017234777664397011648596085113600370746240438967089762950579747343256607808309770655332455757891268912108594022510410024593322509963918906113133584239929483589298440653026080945352619954596631403874549670892942827398493346301332637211663365539454585072647978403800161997122250287766878601394010948626881629931553868769736399619439448620631153486832877106021975138779835565780252727732997630519721386179036811183627009114646602856644907986560927968005355328953423997493516724108905845341638533975565796310243302215258283624329275964709727481963650002091946728256355092632185861540601720950995024552961736935998162570947835762383580568030830757073854973404750063048747148674201984354779140016713091550512316548801994298760903511647752364351297434430394561531570518745358851244741496838167312010515527250394357618959562973758013786481504176871912518769005354010655864030376759015369677838163981870173122274634210067856467302783358710594756531121716435542244664913951946948846675162612460644048259620415568378315504955385688865892776501107517023487763692261158396102542788495039730377789487263562207830720054469256302863964107628475751829101179602134693692725369354422475285872478058688404640517389056020971644664498982759827335339286893545689613693093000782977998747603994864007675196840970432179203638752900849005928032233934442123108413231680181916584924447714749649345846401806709717124700457786244653714932250158712830073668086866315092609792781816125523024089215381170602974547716787757011445974517070900177051672829028556819012409306142016040435462254697184288948847568695216693460122822384507169413348407337718324130748046649842573935512133983327479183695396877224818992070776359349497834720460282701788435863413169503763820537429390762317740099361205603669845209465595702827787446654070596015352087726804114172438694865488503886380445912866007397217853453263666813644990344359650115970591055954593172716378519655581715757516388044941455107826334391611513417590459162940998860507218571159340767650163717390145840737516723714104584620717173686834421798275061914539633283485700204980650802502221017735572023783134547642004003025624267538484475966340588095602676961387355247651686730643334192102696837301369448040030088022620635808770623552154854210322590542459749045332949376562309468875066358641351396792142694761470466229995513531241308555833806238920294671672881126115725668830637623941461201284974207516823279716755350274249155605637949109381133784485557723544298937428867068086588330488061508585490537174804171667869404461708782973401966847286361175521244123560636851398277253874173942903154424272214741393625649490143369855160252167854486489995897514285512136497189239686738359201914507387355512006221376456257052990966269997677589309826800998408561180302582651036258342140560575636077776387825129520134614664862867208491128895563265982178632622719189349985952887697120768384807628309311512033759955813512182419864858641651952479249929520625818778643808977918692206155356173756269651770534939922150917503646261183865044354415803451502009361833557425595848624365010829154860666141311916356790170360041883790357980048652918708804692827172717698389979692016533553618405902163754405965947505835624072846242715990591215882875539959938066464929661442060362850038609792048906536418308097900632668254029153117491287248673876207878055619206078755866457060973618498120799366638219770167755612857787021524945927501656801903231297566913060420387044364862505981260686666798033975006463100897641455542806462515702604387634826978759367376397288034352150205840303556975417102993413864981570295706148401369020724794136329945542037654701796313606770982697164117634021985349773482438835689071580626590436477496161676715056940331544606872342529854797281871390477654654451123242971222753355888338945332539223931055839100212950390927929994911721068496637152096303902199635678531054011720669214843012503043923695266963505972244274747611629715228609379848309583854688405377616062477440811755506877089530741627181103406425684608495856411852601200934492398892259144775788292738633010130559825691468055843044740871291429206116907558284441933658292862904899302379206418394336811146022904126552159544492921045507420210383200230909950427937184888939390832798504608541703963873289355077173424516372319395768488552366438813169889371208378621524404841459269327177411530060573851596285688043251381844033061722983389873140854142636083289377832112443202335191686857704862653148712784863724770091144638697972230997607040443889408904416206067340910518999812561075344526566607693804249674589828512263907361386821417265162744873177253693331317322763140181715054478896228707857179815501881431037125899416716719058913229730361865858400673254274486963440764452326459874255544340200837690409719072644618992154804250740801912380864651032667162142793253392642736991735842276373762972420002063516995841382728401210355167818966280850460273682270544702431095639897826846395895750808285835956538169399465408618827530791454107393167874745762144596675265325228562745741241599226002610708533889919437734390092642421788094071490757340280290297175021753857620330126323423864472553694943831045534022956635678854676340447620773123249012166054004197011198251698557948409371980319068321986080120119777695862829223648606307218922819595836595724830653896456241037091333977798804711851343649409200790379350589050334079950312101569969425861805432506274039188847936127452621612284647117536896114027998573249873275725076671184229106262794415140993444048649081445024893956435040888026319249206986174632650824475183720685478404553557459274688791708522329074784729100486877359583694467726897066256613222517203487952799881054790182756959637216631426975385650995174948342225446133717416912288897299484597383554538015436320897260578917160469096800508247901595264442788496969325829246811109201437736340570921079569071607714721190888332643364707958607123724434534339977814086586090313662197040017161970310745879539763398719951989257142852034704260566559182294405290797586949299994595025324916365531144317084245950584988862905395884371878785743638544467762302656318047994612375154856865193974351199789688374975769948288630607541385303681220925528239043314896574544887431883169174636851519790437406249514010912922025307031007100280141411167792489177337319894170695868389317676736565071843046962180927963067601219557188087748574207897223104662635005960496286176063726534839674949542768052854011966496763111102764606433872385890735462452490732176067179715474219196834204759223649094934732602790414655887475309092394133727369482607778322315106992969186136678849661896128234601936800395881739825441337472820552477923938774886537710126787484556398668861672066790879332972421616772790014703646775964328808374217321748612118484611447130746741941137510724863911748450535828901201243532883225840464882046195967351223560837444202919023422391167930811925735190754055252700971612279459071967675775732329031463835082476930917020813893719211476931076123894874311203956986198277232336412444072887573107903752975328431066795272300960005993127248707982568152265774362554645129943482508763617028620377076865808437591952505568370552428641857070414763732290720841561040601550335003305785921995174558301790021963814336829381923599035731464896896941466357667970236952904825113739294625238179212264221813251618980178853710184671060030432500543548068907602438553253075923943316167994730973994904353369981982080670306431384450496125371049510523673596303249854942352372461126933357757758367309631995170981113820624133296165437361185131524834041172044627671829381142523799095351464848875258282160206152031028701440460014789514928397262450564598210865840703118087192637331816759741073304938327405083805234247494938626822446960116146957771381000152026348663155422000297362283708962977539393458415357861567439859187562596671029443120328221691090463392777688768794452268732694390837354127686772406934855825627184355299327625879699191516872946785567381638401534083109787970414545352491729145190810200615040247649334886846845678329235105499223455254489365364593570900270865035297690624133202991653045835537186558458742917739756793321145184133773510869481711600149571264536853711938331949509061616139007280355666710791006763202672903123735429504627682857822829758861583400093993875529300882268300074105837745629032476716568447153848980023661893529420782455493536205759149773866776929610077302789128031050846705856824536578527115301215113645948269686671945512415250323321168353922162083624660516714554251612745514507356192867606424789804477006391696409837669758916669588326738663370955386236421704677680735103277882320531934651019724772277758078621032069407502135686556384854411035453432437195837961034885612910657668591042487517293907928824404825504154717072491581196051372874742972038378668865982214617271040449593775499154528522730857032633241585993962367007126983607497347240213073901109104543750225741414135173582592187167059269431872124542144118967475003982248845097090364569092506282848938884751245388437833177679305116666857535008780261610343268126663518684777610146788623706215198979130446484193792162340013545702564652874841228882831541900172874086287685057249585286340880922352107238587158755525472020405730779628977834515587490443738494794862299443912515577187142517157212312896709623569578709662761709855246331037391395800237313644181941345253616562820240465835558215528222363191416428741191403507891866658595087927998370796392555882534601347830489762613858478763843891487466062499875923721344927635417417665621092846927591283367922490972416086622293151829548814562780741132373049883783166556525294140652759185694848109585995425212910346205244505560379540811802041167377407948068342061452947953618455336330709879555867475412400941771973924530438821170535239514807480164288768389234283171245780661776388181127163160375537921104423691034004205312831176514691862884789919953368136820528609127302768052123069990213286728802291852899610663765239006901494652643038688309615913060687607961204340313428440931463982134989214278389844603561533327697418346580021577859387439063062579692251332432283265906241142105816391403720622926865427394857734764289157324922382855404647645642740594715382749371843800794795850758082704871026248539889300040108462138298691751149503420412618326525655044797996041316565633947163872776776962108894268199068149845184818212020235899252660816584833709307984097040820242046634265911320101541279281120372143492341829344634828411932850481087439550213476646657023711920195030316176024946688769528455130491445129100360660066362773989652496875965842730460252576792839528928985533475411175571685392026471973860390760226049686074231386742006512766688482040595957429378163906255702005032560888498186617352879023152617034747792312151387424172038484617908942721396101140786945072397474264439271419498755188153814405289672252216293896963033201176250743440552303596112353945545344621993488732199840588656905304452376226393965497605813607366618925605578418851921826631833637961868342233348584398088785318532430208800616862109077375967222706775211025395312328845446790636296373505749617961621747516828586854721657888332103725459133622877879390933392899452305401388003311249078081133960940775724628268625678998046484782688796185623038801069769219458594317637552807382374941441162792897982644409219054638268078248519435957842991610979358248367740375155231004590510218878657028313927287778473189554526202569457908643352127646191426205921831208991398074920556242404793534200658824348253437521280031927461023869770611358401623429685089437996804199731929150258523030360419373968476001810680804413421946483672881482737746034803910814359540621498010960065082991741550572066191188205141425012345031367564356977970527106972728429881293131067231649551051149453016051433382575265027494278802565367697958524594075785565275555609596742025671112501749934561865480294848658486361614133526581815499226096169093583308242068670275943552002736522541253826030629067964327604639444532335564460530431712577127661587475369069434106378037916864718784920828179469119318094784265326990573343255084771517301963122311030563775831961731121732074805033879288636539043590564002631257480194465060972544959494854831563396243725036115918508628955504182214525066606810762353417349507195208601007344353543882950036718702585384934122074292571893008880131311888502118584372694651744407883096153727573983266850117879044240361298638245189796430955079793614299567655449020746045386853064700186206938572781141878909436171691606066277169152646513201896896853362401781732350478751605747922000404931820634122665853368023727414359184318433497561848481202027569488035850141210782784379525609100656201375291003460046458155407700411054019427089516895262747621470272384316804489559908331823506733957317979464762608131446641457497553677538326433452262922395290166888235379529650751053399363527606286051459215151501176183039284539510012424948771530797224736239837583206713888358356081685686147944217739297035604105757664251601515469127465463071984114541419600532691261736350885481009873698200434554596535236789192028335778601781849591755073063374548312944891463069402351284599577526346294744780995306445284469491958031677434790163314159508312663516059040037038772937223457430043719160284198257322615123055242307595813984348402387875425236763758859618290729447754354986903519601502258889175793238887624392823613755224268356814085962595545168738964363511725513748752770465795796582488487087715876504851895772468280129617185978660345799213534612870640210163919017648559367076324056606589670160168841384921372929206554399182974336345983407556089659079843763606470526648003071299293169242802300039817986040153226194717790662658941516714009968104047796211969924384625900078690996210466188801843682253213785478037018101554248894171125559929322885141426290238655793366528723598912953477021479838430884366276989621043331501832319280290451715751943286448533709070593643576798528853271426702040355820082477940239886512941453183070497768825051349088134932397584037004296764588522088690123645901930929360716210661338064399637653270544214814609170754570707780108001308044220589890967309537846876025571689569492479587637473282960818142313750770410186004662928481109706632854747710765719891898204296891813676928181253596721890871509240491206621366774427647129113029784362775895943050304737096175164109302707510870430012727067861527340439536604624956498899493109255206849904138349337945202511567375202899307537454097115410303407528318867088124222494535817898682875141880768594313145140970716038236308600676709400366400190828418886050289046333865411700377649821045353519765999397013970751452434183127532728866548441149676527256375100262466517024849535176701593725929699658942465736514505987239547470087653717641398416812062702454692128270715636859911067537381352673318031601201246369881761240607789016233590681313184878361178565223009929769525146887678641884139987800402296239845100119168960489986055264036082442830384488786932001055974321689107238674883897902479963899621385537144644836933443091951161236750304559214939848389931610553539368972223869844796035370485415288822808831450750728788600827329914807012505847730805625793231918704120937248379618700419900891839878646280934981359900261980583584587519824174960669411821134096697406464294633116765154288143222216096294950869147961212996477224346995490082015151284874787994732884555873564500215388914764710020761602500493139155036932184287702941572808842655488522058078243659594974237998382070964544259611821360138959340716443549402507519618389459088725472201240655294927777814292836332652522795361928800822361156725891726375582762769663474438102151548792768850608341779291271214259695039094265850435473226905770368229841121105196810815176371397197973911158517105565422289141091011908068403477717055855199113176723481862971231081565952298565038229371513179176027703575294839179113043574058037114475056686492806272941057378325353578574523575256656378554689751297163837455468576070359457116843886025828875874193161529574047762866303954025051991629390331570653419929292774062181728086578324285250864616146102302901383313052946337541676560062630281883907346385168540256835774799559496224253133570711997879103002189470221408265221256185140750251577709811772141306084865928170208509702313324416469163861362638877664156886370222469561374139547527472647581634610572819221068497064588636364901501800035129559203063992650435087416839963977102797547709796526044628397741250247405313256638647410486056165250839952381625465434609632679373075323122170003426248239557730970781985895223878568590715762217869507739240583462507966762482177878044661939534966451546591177435069345258137456979988470121677763716191582553159445569246618855553889368558821055814364661434012207163643836975080210509020416879413319590352777957627552444317906199271016297182214628490400913679029204079001489784925485612929002130255567634098404414543158364071280168177060416843630810422325207413892611994597587222028407957923785206576276046074553197026611766212044186747029124182257517004180125628810473698450612558777268319546728014847231518585296582739084930372535269884999211281747589537524395012157622224329608161433614079163866094042232582787629442375365884527758968352617420228728022681509925745624694221317203763206948945794416953411608825731952967004369990218628645078467565195100799065265362569370172432442917942166791871191000348745254690030466193507863830332163100326079275190680558064463769152175712628385152879562081057295510282153115504921445819205571018212866562161975625808178164323747829593929767485350504924417871351841429876807851041319744672893023056244812290825292500205027096682986194881092356660234976992141615899711611153147810728820482942961172890258836931786423460399251723955172349451010209499081909433558339326617065109715302414112927332780024713544187839674995606127833896155281066143646666150926954539384991253808073384899764152834636394915607551746364106416153966248533921453630825069014924373940027196400079212338007153389039225922104475238067438162589259978338640509443235843454402308685226092659994150954038248201031752868040602379561231585090802205124178890480267680402830449671062287939139792470185228937881973535905506086657505588361360966007402331855781774841257420001736274328934437801064059599710919377253564290316454979974950740018759812805307298746085482843230240861208961958882126395719262664851021036505158334930631840056317932654892816982927741218344842929474511296631790156604602358245961360607666513898082987378215232717810353531910695779304842098465764324216461239565254130191320080091162596415086558296423790663700116639355737743200196267658051528522603937938169423791309040580568630539830653146302891228971263737088635107270727620740317085916863334436524099190244059141734913003103207021474602450531014191803401115931891714612002984099129785155469695320304579449602452681171185807115828164532982589137411791615050788732508961225975831256552145738537790714071279298428097541402952757130079441784225436406552865071235413986404547731725622207262380054982319114584146120413765383782343846582812948656276619290874297189641416409608294783449578772535571366996553806930487200521108488544754058569228691985562152637896173538645159316000563469289244125891030488530251569471225742652275813043733260825718304662381315199638345016950858568816916328687100784913502952888137599869051478509931358105417507881046032258254004382194234610295603342760164540390697994292100262351284120029734782774587958145732582347053528651290708130320770974004550474991107616635120735039782129301971480050245901828751398247726757796466925416796705617291525855253631610710922513870173554262741742892680646225277378728256330343925041359960212377891454804993895470091169314626180881055234566159493179385690801039923112152875224806831537333876519033722093056918929710722608399828578687762484517938175384188303303999460148460295189455454705089533241684309630135446866718050308783170709146449474079682356221888967117556895378321025151307113801608964529210915914265725718301830708036232519721926469002519788796615909580465391391201499825238479815987029744498603258110712421828214184469021605612408298184931430835950561429827205541881202283118221300557631080639366374584721040388794989887127028764855549575722833354697643498716490032211840822966359042829910473690868218168810722521320617429900912238851791983174539633485105875269050802953221455171304538220596062610338017463916557250585778271610378182836681643385368927615250558297291468188677834250631054939213167260765178822590022382329057988086729064784392321920239849907258328756861192841188350100653449503176720832263900069118041104229430578800154716577103140381830806068770440428918822617503847428969184817974977295324848673411512267113059373136438177793533522301159232286576176889732348045754601016475109150246209593863104379412965971730233661751511951014312119322015815522732693950130096167407707600279432306715715669998456682778730640618327201396160895151035181748567014260179981214264541981907876750196199641834592246387221085755527978038676554817272575409418151831067980656055005942824796098904454601025133940397482251841971655189762257853975028683419724031987986074054763970740185432456214146759158614290618949553259690467054222992500548393065520362721390512373110959470005729033278688576892828278196760655290241479441243966686287726646853783550905592327441581400177446923401492449803918929821727415144453680846225681171939283677469337829328573082207480754782110441583004123486251625264281164281843087416601281811044451049042771804654710685779577184366918852630222284387659562609748058989983643959881539356985502050648578925479129285484582440321797687593267016749495516666216222642925754987744859601990310620566939850082709966922609902543344810798841319233684867352505165877723875527737472040721486622098068516373723262871527739091955417209485592093796073388649495728728004576817588634189983610259738946644685696487873595965917862254557473519366350990940472701132162883965260753713416385352872774136617266126907769447772470310529044985520135288610748279141075979772883401210674675035242408429546902803263949789300478054614836148451619900317995472510934871544536076692568919395451973786017219663062286806282545687395530401779693904636084315300100807199352802945990773302086629944344847365743638790742434489597106484899481008283398245717560023005352488637617203225341545342461892985097516521945367012512471431402020708384079435466422225655903095095564343127088602054388351465026701372475910734812567751840998880182329663544037239131394559532768813572664694267249961535406962497911677405472039760656065152591202430038414363285348169393549212458705497196656037040389487940236839226814778982831534681553777350721586509017946766702508545474215313324366242046849752257901326566897512899909297855560692228805271887079338584603523858609741935964155201273168339076543218465615837393022037346553699678270090160865065797205888695032941475725931724685441102031906028299104520672415351822990113212299206621742543907825347623793316077795436771720486840063195148093799468861007507803478653261469616462587297253781562301669340601179159353261466795546550993932668135464190042971868137685876583302519720220292031615433809869352204186397967037314475405442499989496957159716727729689638242380445724145929420533283254670138978849784182007530034537922116534626154019466775051713991154023632496478019467100588660203952621702390466427388882174975342377400065068488780032016976154402686024719530178694434954579620141843033762202885461250700820719543437698669563031072392567445578907222576696206133558598792377546839761411561836427949244401533867263521495037464475775897752289261237994107790142167936584939634803898720319151773410015205936735217572491815060057152908613937775519941356637473712540309429584814907438320461310313436507072790539094995630296190741681325171032562579091016532349451252715306524606872558352719385187063034638130851769139743236181008615287449991825925721312246609607120170907787058186838493617995535123912179651365417064975366259851363613011143583973878941623584945818501510262812684098358662243349760516712504003964356026796507079180637150011395521078688693292743570706961782655843721699589727089438930842879568928265240237847273514294303785546542849779724230306779624904505908285412536116386734583390486869330130899510312991980636016952300554343271596295322179033931976886947037377805279043335752604642710902423412693395915106826318828445769770393608173078561556990960568628841036252194809945213664705060245791388128204832269183370195422443546219940230491832442048390329968279296633481544580476550446640283603916745018090292555566700507160551569217209278564196948767543519162888134948058201110817426400299840424243070934597673184136124234534305545845311390912280909765076486272732169594224283011538829136705283501292082477951742126211386946810566649391800357320515284645348568265905017178537323725266995099512459297151464179588603044962001402373033578394213686866121441680344251653687151174688466409034549074520262669008642482859965678336163013644375432896124168863258650075626920809580116141890203954609615994772586009639646146722236561893308767123091057307896306210440921353667701190950143185113103995352051705275620258667378096401567753173308221726194178646633087458542519966925176955841180583061183247872253908217930074243266104670900082013398262376335988416869834458087700767679395662819952669819807636347040376183726938016636156751259720717274184566448080274344931968599031505172299205885747650154217058613263579318940998752647465337922594537151762218657097548355095547018870065364878176900452407874507718266560604064999868472381875628532202531380257098644891805299897470205603953152577861919221204938381429247444940797369388286141158654285780726727198783696529639827575719475870996723147409616883808664701466138548980100109465102994045237172839126166287984819331812634146220734352770303969787223080589658538224771373065096086910401931958934520966218042884602062703123180252464728766496769102881368391910246875927079353726839209214439869613573005299553863814743978697790863037213307166694632125945592333283890688358305377239373964603643732763329646872629051000441315164347154819489091495713925313124142716017062178115426522292237864986579826754623404347977714696075270776187471609913086885139389799364966326923362035859232927431169604881761342909053399969431133526036815452855000832346481626238822783017533542225418283369805481539789148274005143484545883503255388963406758858446482213307772735246490243672260198278134169634565329904610815183603680666344691543636826095697852776228549170299636027266970465304760667879418018004549995757274151630154660654556201835779466292741451316298990585029225149659659199584108356632899262062518328331740993562999615121039848059099879696017806012786221438393902994276560653957154989600696137942302315363046856170106972121242875669671944652880495888337874001741385456219154574952074213057674708479968443376292845192647266385202018017693009908702693398245719486935449552190671607344176785321945118569605126991276855424296907405235427495280813445925314893278937546287102913647240842462351738461850209583133662447487673099570053691356632183994330177710480023979963581928676448770480675836113940452420491707193038868254812308077980724244363229494144174846093144368730371552534359155323952463723326100800084124262163688077617959251171027951124516562567548262282397816802474711802760935093670786538734474303497323981613070194536143695720165446084232495401545652617971908942556626783026636601670122193193956506307378445827615299524974246928674534765405005504152003831155102951080808997763374736980495903233061310174083271535626805712297738323792693954517817921246997191728819650566357560037646854124572867053992577967585635297316170144011298837185160701332127422118911706541472119454106800874743131049839370682876244392219304380114943090136735285168499896926618946401679676951778541580772343927887225654956254289691799383740612354563619780274745165966578148902441442668299561975002109722721592508525746130465673740767912154298437205322579855307874674685949173472133764288624074111656973437312044071798573354705270672338364753240816086789307394215892486695327287001599716536421649641284407490240831906016949350720674132501360526179873126014852889498861422188603688693370090770613466599561975582085540615695845841745594985470455967380833829638529367762669261858799968016171524828414794669664176323192570566898826894763740832787404296418464559363910280921344319120727994307850792903258856352173013583140819229703232931407695756419139340144530054085372798693915594439919882585598234261821191399066309190149997416199137551452230066101208730092504695029227053618175738984931751903512258271746960922097067994612243827485198124217767595195687265959443430989862172539149859736444586623976916013656940111921927478743083100455271275309546818231711872022745932488244184125350068991921477837810305716985794307845168579984763353652070276557989543172782856063632371691909643584429610068607094053731443347609146726105388790799370194443903766971319473538824136402585851677728116594206730549040922726056448597413504955897538950199415877933258521821983746983321986708289500862731921335140513859237671292999404487411056099285504056695500426162513912640366182857351244452996020687483622723879519989403965364714548600472958556088495908756821941318789664510281377404929455424031294892011508703383489572668727738507476684844118059211284142685801551777347574389116378364159359138064481038727568991048649927290769632798545528423763666102746745075839508564693681493879891959192169004825954972856167424526046081620371979616845206638270270150856479411768895709910951477920389711186905714506053784348828437623651812276250832009433227533887252209665882052832402917571098537528383711854149627163277353837031791194313551152152698259140839171483654935335372785403521733256360172411249992070316881880952018571657829141719082609827428289543938024899861356218645518564233968426971798175687510329175529932587325483464552798968547784959775548787288776840204067884582310156130752623907762602996162301970078176214093650953757926666995850026142368449937577836077461492872178086378527894592873955908242519265658974695166499436760325017650150848881450210988559695493202823291852115165736430524531212519310314384277765140260835621207075365168197423630722026274034646878106476360045274194620565440785499497880188829868532739063820322892331244170651818971657857266267561408366700509204670906322897482526851083032320829805996512246533623737748111847743011602585650075601647097539552567928415467011377699190290063183978960636715899729496520987427720311337707740147234110712566358512776244682603679718976423549623303373449161098730009801944216184410408298493897550271134258744488852227371089033307343051696851472635292909908412464309247044722550659302492096194164324092260181744796233121375390569186656045789114917111894446041417517969718672680996480885067015226355519324853054210020810978558608267553079288909410034530824570058499298787149041443314327210137755107914310000577613661240097266602279149478667449403419608871156328510692877452476393535237863155389266085547070210467441815207153237678081855374179874389303184184421105435835078477089489837154432628384196674949602581702556869350562395506050153892226006659988314067840999741985575456806652570873430279998706749472059365779085175982459025716322162608745583668379204325744568657648194585483180213408507342570660739763356780210295848480346485239943875061535616833744544804709994902738568123880381738319612168686254169557258313678153106855710361425028747338665967705606263690996313433306618080066804648935246307615473692493390027756686377149304121532364259424131273760193968746692638803402257500780001097161596390164940507267384618323268188512776422602647732247093276871559402272896802269111793623018875492981479880836551538368853974433193646732064747322446279358317274975061352555486472845449414997064881654988895390383536456175368310242243047972227668316341207451490910036261796667722927597814296451217139461796707255837920247431825053693162161892200074306178869339284786802988306330164914287773840649736993914440244550599393549108094142949579887229239706566231228482956692596322668133645253149852608147508800406124858457797394765446258717145890502217447556321607764413246608227887979420885100041641281838551335093490311436369741128591700543183985273469153921216460332832970048434433521523661695774391976332427501938696452243820990615105981373064179387188646423708821656860022012999291298386230567978173720044850455366733191472332229274998627925598586054911559669017732585047908731542697238954037924768621856609256100088315117303174607299765302308649674077645302113520303197845383815877347111670186908304175806319942525338278090645530640111878391361316051941234783845491617598535170931100239401516745528581997794068492836072459361763789203430882859145252941636338738548778524715302496235946624910765798630219145177757436565466816570846496743743697753803652458661218518356830863469812133652425533602328274190368252537729083614945132566397637653857135037888706616774498525543058082896860085745007261517143517353087254524234643620262492239237746728316750003548879948297904641219826750815417721426676134559441909402808395567714724283915905337033326551394555690163599431379595282218569252911989869996200156076883524210222801781337029173648116208712647123126712722984432310107741391390553528598394044756004045953418559284411195568102163073555651800026103220194162641192373154930149293029125043657722473733126529885805280513975236333369456912958146811871367024928453867170887501764478683725582332687678746887941963783801684668770045391702925479044861533527739037983539230070337283601924541019680769635419046292314806940442226415392607923507785789538781292641887441655903725157109016336332037504891617179986341910686409923209015000082674215845986179015239018739964782110441158592030483429891296602912391766027849284758258292163172041989702344444874930472408245753949789068871598788810327094834668282749552378075802656152966002496721352467707888395700210087282772678114520329402754540365513318916410775148917084168986511288868507481999922897067865080544230781703065122867616525694784349045680681645342425949626372518111316695834755838309549072006994385219084457157484650837219066259970486321488826466027125047203129265833319660344437459053471979179478801001159159892493894869240381019626269214314522204068132049005436291337457493051239816097487925241363207571162335301089675034510153114970946261310236068587554913444691915793764356171697434796421824947158637200003914391149888976584228160500166864555275945214035013534019285441121080618188722064497668971619411762940343106606972417121221524200640715069557468798361454931996037681534757517510495403962055266924983211930670698206051739058239585077183724061377216723799520894364995109785769699325802017994404249280389249337567628946153568117150979709965976936006709939364941489831542030279249992238830245783312116668352369820135883022740056862850440010167835350403540472258839498555710392620467661201325044232948769243170389684753997394071399731810678256061625069649874276358135479200594343245556750665503359111319694846998139958689511760510236476159253560548376580627550859970550204075459439241417759901237141590760808708343383570958424093982911554621276068991027247603240415861988159098264680725217803492263808245742492826639593528629962342773031474458150298039963169349427860595249712581614113515583517087396315987724254743369922577422258025503618482019636145478523530434981368583516538056310440423949767065009237438350092983997423275844908263825279968301094801329619707667855537418527883416696887391019322531560307039743760695926992045099943995128565876534028036418618391669015428589238921717044354817197659563663884000969607331121331519205444391476977223365173248436805563700906937479647718125425961684360812404398351105106985276115228146809454335883246545128004169921260910927823908859649226318593051642568626504868404066910722066732661718251772332102308063094761331559760369478093086430703785160208012001917460538095051616641782005428245497926384886793853034305843166756583446550850407804872175665189048624199149937013562335041918080723515787697085399768229526851424722409236601317262758678274922190278200051356663592301017560024462803096250278450229911578866845820157497318464632654685605560704235695849811013636527892653274415608548532348708144363059082287783712844317794671053010091055264635165451283923298524310701466426881733154700295558314144137577368994422433940403874068933669842537540809190476502535832638716749442838421792430303773143337687951865785121964524775982415730438581981419391434387424146451611233367787780837750713146969873021523741646065382161796015931062961829458421123164436554518153954124188610771326759264274015104381613826609924881967611555658800336228623491589395603887481505226072959946645761800611954734301379420285888705148088167821695203635701587622097251364525794519613089485617180023820994079631664808147572559709606755520496332412983241263646723627924993033265233685697782173217831646084681590900455058359096317048054805018231412934226766950450636876304876968931908070190391758528173868086727620870626409528918902000687191742210975584844167356588716563191340407347660804746998776457821360251827581736821087991364295553650762532932338604296114631623421192427310018739702154750714354150181617525373214360732542984830118353674944731060681091933881277304424466851043780362440910377099371593665622318920027525555899997849459402089842684455348890093038368174459059463100672727890065862475869937752104674586001150034836634898891400670001145942770409238037028302727430824772127889076271610759423507563881087496769452420866365396007288372657945849336647072250878896501568318153862201859434124482155844953310218974158029661412972563033090606977554082380948635519081112976476431844142622291466190622128684551527711549437238148147310431834936439964122723448444436175519566405975894951505500880725031827347003941042929606056260651667587888736112434666868012533787632010046182473544811346900972182747857769340687683833933545498319749816489529184980120365534297282691387681198752357083148642797953651714747795890336904789710114429420927999755650219132359989912672046917373200836635561715821263475115812608879707590740214068783379355840249477085660869734103547869788744160926693440123002560981796802455330905345613391673966136658339093043760906319406772166304691233633342274029536752909859267707178667242403891527771682284436169601324306947415967193407410789695653187409975523573177159903922304819545420071500880946715920778113574905755773113543145435917453039231463690049629501764224422409651838711710610159522872112110126175091791171488389408533532036410494189972515686171139655764911855646354749221110302826089799186222183540733687583048492864112510972132675017107118946592209468514136629511966681695672488441112074754048567180937784319841383920560024914313406875649851094383585952403789342157350225958132095280972714688045811671910247808367034458326064320986795335744912520791179697152365505695109641556635638634564090912015370478068563013711462389624005350013165375899478807945413551817819998713262118165675179766430588152287871047166246883332919801259841416500221705027780699420467445567200457807414750898693142164692862716234097338827555797581462746866950845537093768657002758445763396059020773686523769386229653783901470262230513843654351305104508087281845858079108041610045718332033463447475207415125760745221096767619258913252915483444446451649205735357399422622416027453992003092610491132463596513184325672063406229845990677722643746688573285331954803327267631428983522366282589898322901042133619309415208643257665159513578467862181053190758531089161493096358161568232723779103637304312228226290586384474754705779714605726215338041464394873489692273858678587384108309983693930480718255297266991365403334048349472068143146492572938930916107419764622649227063816396234843203002484482366860752901509862089548458510164798156365878557056921038000352852054466865360578439130250031333372359727985972436055355154831118635157825357637698879254934671866528557119679414185318190290856099086312355962344297487340316635901235385754897391512929480427740067610741520728435808512327308105423244661478330754264608979315707445161118846661013500085196594064176553104752675748852936770571404067303919696740214061606578550360295349736923129717474382727233029643829591610460836157213484897622383813779419021715498503712144035962393955819518154390878282871033870550069759033816496268454902786140795564695510650162265626429898844011207933387273915797668775463611071960285074149203356136253489780839260041032581744025422053580484078083993918899187999635076676923726444766750099308418041389456183438229144038599264200969283070217418947065206153667318962179150826820323362730062108173238480317834980549634608779068029276129596191245132826210102660078622162552266128470812886779129967969657733564043495146798206146521417108456600808615642101224632017869052728814999850308186265638587307566447093037450709381730633781130597010167359949303210084410252093841741593012807720072077212168555874801291897172419874131096774585787657500887101563475901706898758287435662963355567525954483882587069643979866078895518394037937527142421168981429501774835576417001205368399946780647588386535111083507723515875142447655067528156512059324173374955318175571886102974780301622405237083899345106343552207929634256004794588121361691962127056913838866127912404476302618577538879020712775837686016402600189731732639889318742398227550883727250667878109171042645517300607633832116601604485780214030325028896081302284916748459561133116487317860509673880764504987904895821624877006291087192235713515598675803092747952696448794550177694773226766368276439462832925510332696136397263237641735693943793029558360042631479912436773198459792094136729451604735299144011349977779980026831940323754498949703710921999042810880786784592514373629294548625432810630412839687459893290542400890869522360514020944484539873449116648310638064335518933141918925432541668345526551862792628953128599059137495260932349622101256218381206816221617865588191773939846294921916562293317951754228998343802745929609763081131835573203194991451799806741588181255046694422342145103795594479944171100778441806281118683326470373863083459615876590530898239107274569573487480474234250764332801549819974034294558254325239329785506032340985927309538047233609185817321320887276459548783586561206297102771239050849687586492475353847900701911872483289017524835854008270668978646753238114647941494606185196913472192660083903874888513779193931178889525597919936440704871792456154527345392517799287395902628065844356181011616697186421621563230493605560964745575537188868657699648081333236481098676320963835201592657766319617614262131856107904773463356929744363300819787554606093721009931833716343498561223676855817721602825229619724830245689451224809947103538563593425672862850408904835022679120717554357906216898103504635653817160638931469463673268898604337837961815740512615753303549159728686513593580772329093747224125025484501648009012744663611107823707787185478852997769907565430225264592900750512005295006214320365269774983760272724772267562154565685120193185000676447290593892837217030534640672430122359493538698972535741833471824800340726880471559393228122018748536248068255362974033707417465829758248992203316300661291786500146549694209027963596865839327978878360201203764580476566388017519647840783540402911666737989376073139383447189150189831928763958768120171131977445040902362278079205031754874125815338185363634546405498177234043230317496947830421852502629371315855509709225636965453394468168645668980089379699908067907051567869999467952817475180251172657418268792088176884166841019904550590774407690563163053679075719580368349614185335749016653294204631950518552050766338422228861915511012313289490755347119090669886423295596999219356967731668467774229611118419831209268571939597856302211632788220511683502199109424760708170457265766924138546033941067663551181092831522255992380494285466222083755377425771162245004220078856898250051192950162581628614274124498551130025671823885511380195948057707509786235654604465256383505763980312616188484529239660170314072575692163776021203925888066620165268020910008995478438388849635792753492058628019801965284007775364265789770896286100214819651979033148838142313162001198253806363073502014871932418171309794269609238459328137395237457802335422361077502710561448411183155885466472236483248024315118821611754970692070777937160266929190908217751006926923324785966400104355221961192178435388236339041263601754839029685950124854530803608147409350555088117762942690514979347985188276098161834140930661943112131220706062997971361709684392849391971037645483477192258257053481871770122944107262615011977172880560994135642849217686734925559129463968860164284471165884901802351499631123709389847428515506605731927131398765531950097250400081811835400235076121697075658958520921021144256007269172973758428205986668582618959861689691307149087824915490114177698516793035631473308832982235479812947568818920093128355740100253505348296763848041639673791813191948856809601250011382106182555912859703101215464455776419284443682918315366298986358326689159769408224110523656971436267669470093642158572766237984108532463686591323358740345937398467111757405608154406877633384709630958720016980362001953882468409639262446488140903142722709875974639664663557584909075849744468159380646276891242095618693162680241063164505014280421223467939546953698574967366287239087310666122968601563732542513701068357090418839788797351603727688464550975311964909486094735017953797112248683821044734941848446598454968165918452264945013341728327944015070721705236375479191130834406477343763977692532336674919718787357704703278703732092296090075216141466954291512026405744577078152731522172436785106932367075806647297507354089587383835907551948578642527451224789498258643213378317207218445652023462444025356300500574576849820286100275649636579574556033840604865938564683979204658954969716260213659933399270439758259912749364820815393611762696554664082190641819069482578752070989473731125253510204961938055623320277109817428973141684080030168649872627506122974657106083323298552279867088596860491855577009322736233926608969058426472044731695517339008504361122215210990957534780940457029388243952937373590998498763851919753732496790692795215413282464131677724096206668335790582914878553431968498529556866552399362675141214929370019480666325520884916536598005120205749646080868937518031132409879731127273708106231405246887317563257712941098454918322849274653717867904207341619545216973101068023282139168932235071056069159424190506522838964272270336318338874659560052103487693815665659187852071533277660784662906379276237502876922323116981321358112348562165785146893043957738115345115901263868463319226552856496446819760452219145637662132081571150718930311842638396198117214891255942495549663870679861430568177923549914145526859442685811048336504712231852648893099878545618829281692059242326650389427900097363965284515160471653212478396822914868794598542205349774710760691580454915484900730771381154625698986436765168743126689552840880945047115791938139370629932436462613002429194512703738745095389921187979403718479747075735106094548252674889943949140099472274764733680163220524335151513055460412981188759438045521564563078248232932674027625668336199786499472305849570198225621097630650202468206013982147553178732956048345105344967093035035545012446927542504015024837315208466078151597076403607184867935475958830503145133621348465180912429546444770547140522106396530137272647867008097235841754570399102708627486116078528385271865890336038294358531266957013462421400632835528597225071457621717705335436718576796292249625987251804591428277385633847852551478487510287883169666985420143277254015453434934774155292653555463988438579708803157684845849844685742593337956744718997965916238803092683109896143498508531386519625328735307415296068186422000327387531415835644178997533871166287247145469099060044484621607273378396570793841194412659203251787612728453501159246631093386377801673376914308771877276351037382440012752751638833904676653243101721171845929461941855178348846999308049972580196255066602103541477446318984973315995880769616607367659525277852754725923207540365741118583911538872637704952764342585911974593894307510315804378891549387556194027436368275266123095384528160456399649658450321836613557563121594627088019685065483262713660500895028524109339304388942584710060598085209516573151046658399970088773142581433711029248982972645122890034130073819091138080194450862493618353310546216175143801217963652563442659642407415632244915809658326342556195342567299800564945182793257704389954986421716265237009986937977888842149766290217961436404101173449234659008207115446350052399213726498283689234016792713338546526739195825845640103954959691671700813993918535411840826386537829317912989219798351848766567090325929474957947000755146971844723448754568927877497919597019091062853469245194948876830205836759986867638478098619358315510231782398557180732899977876595463835215930702334021140013232008667254054436540844985939519210657694910465912600938558699504597408290832670834557940990826214702792641648453190747895442146013929043306838055179572550103390813354382400727433127033007727519298802784460322656056308883495933701407563229301149495350029962389968690516652615985338521007093386432804173551972844139453960397634785114549923875436943385659099734155248031401662507209710680456110585081153923983988761304608411673082346334235400797434967593803201225562021130635588766386058539864152792106165387219888002938381658920527969538788878013931219531720890228784717225325248110102377186363651618514942534834427078285517069763965149506287278591572429081772527568191853925473114219626773693709009795516146966719126835912993188243977802500580328992471940727246171333981717465574104578856505390695336843158688226513361334943388193816733870654441314986433135636764397029219729693000642724505629233600801516177558529994955641266696300808730254079023651414635359348322744862094022452734575990225752700943597512965420397211184408142555382921406398323860243142219817612335388681750796825329880223932678825219551223279349401830543715231985583933499375054778350915561415532908914474504842257950311781762772233312564827780808095672531495516229483363569037618044980070620852765473104564214514266721308527133735519597801447871414679812266223609836469755492053706404475988090515897315301523120651749666987556906710454687625831743440551250140506569410960916472697338858229465411856919881229007742853797784846251002614046036685670832162496786927324418435356222317311716792897549454678324697504310845112527192531709243321381288339812418646268311360378884592270244300026382567591337912433920166819341438555736278476381570007228448789043688281011439658034294718400559619743323839036160720292090570805274897346022436647441134384226813053884500665530547392670024996263366168631579775780457354701910422162720836039502706004164613288966251826061425947153809685120172068003592490261191119795029087712001894149240884363756263051723455717485924928849236187413244098159154705286679225058225172379348983660088997896735483139562715581585350410818167858434521786883821560469493044184191921267966013047955543374563597785069891221000575383059871796662595901612669792280540473939496677838306025973047671878176539432786009451144255938019045453472139593450376208713494394539817794759077428630930993496538656533056796338109952621921210350843934143097474238700540917965914836589902077395958433666857039306831363405648885904136269680276129124696951137636416694521176862565576001842180124316367649887846460489981812712366008857587353806595995995022969207300583129375934969208967896927403593864758606507020575567353371307425472319503939310699256879642655541962840479920088325052851800845427900501861094054568961658822367722747067463876451155911729186518924413195858270491757625944223708999367692102166240439124540009115553981273224139003159428729374462027464436446506115943759940276215163231785001782202717518747378127056935225072752222652052628728226652861786940010407806495720220657485250569881980822702028755669332310499755091146269933849356419821235216608565763345995481989404156804029893963394902255479760715852034491564316917661886695684346304058968067886742646582364377385805713943816281675641874495468699250023969423603806959296632700311064018623552335958261493455847989315859290455147067061036884661249713985651928139814856639393734408301470911785043626261791987515850422469201989863403795614563997553694095375814704232424046491803013247995748170266603542351428162329913613110259989064884063742337302237759375374872913945250249864506206981229157601478374871440933455678566842394562174787277247742702615381473937285564750189530997582187529783328373590163595933044152350049990462188178346244059354969856838014933499643829978729585987945563308853807878376254861568913521465098875496539575062331306513376915623012896571838977188116993736535822261998755238021689138858204382277345649999773590797692929123054344629208943084192504916780230408282024997750239504934642473119579906377322382589346273625076348461240484803483854342503953034997711682385727703411462858583683640740059726241576002483618499583772990911729314613503848780382391505413130504450832565718585917780864005320686426799830184230912966091132691104567333614624716233478408668968292313528297504187973997928658548961141742669025581968991910320682978277996868045890808577346442312010415852198011421682985771523288668960411410301282396497548855894616336229010846774401513349843104878182870175249015021014556580069138416346918598645100111747113386703651957137389120038827759154876705492761847587535543435868656356021244144432244358966728961099298521301871763758993211766039901775768574119109630066505584401743033482214103389921814554744364469644244634020253531970898271533545243560563029169657331336587198092259423291050781253957645492700871314986564265825110984067456629006685805508135933523874292006815549095869192882412424006927329724659584444244367182014733027293582358166196386455317603070427265207314098023855363330349775588357492027958809755483111280996067370536215437932183778359533463097613380480884297317011426282475311260612423953453619763687871078763017843027132836892919371233383552159951119605229469170782185133242641811610544066855673573474824497836291246423835880615582534115523016862926210808054585557382099652897799626092737227628393709306477624315541659964067618966307844037409866574664848200362629074520288998053707978616455505063441232972319336819268520482138086971301407271983649487625710563080707156781588180382573511745676102958898342832304381424455798041750113858641395740297945403358912377492099579338377572853404501728188913948645410132649629584164783499456998918051892697838644903483203489420312760918620911379044474117955462287198585753448561327708408160038219771869787788313369655406975646671600784408506703203062413341852585750280050652910472888715437413625101700996437016679916040151604445291886338361127485603174481669230713070111926623685382370407128622515839099933633957727355833683702730880540817352163330022585135952589247734391507893504319877650053300725963083523286957974886896157314356195136339728012730753139545981292697998538906872529825768751348211702633091940722538558301193972039868750578283982445910565565146696439064311964658192942385321750673703673565332116299847855773448731646887100908834424108456750487537145564506454642913911964742512481661852441962067962121545601012726394734187770783068163631622524540323863547057263436071013785500000541096545811262646047758261448435342354883888381376416820422165101732481108482132914131372455422468218478721336010176376401088757233946395118011271675902574233848373884320724687363711764859177868505441708774955167448305924279224738613402704908964082908493358886542877110054170564607876576208715744070066964965251012016857819795111810315957739676601275757880326787417549209266931619600780273240747259372774411369045966600581957097494789275355692557113369237044980584859231941560324187904833594190826561895383425326945196249250308980249429617885265096595350560470009633831899546678157189405322076153818168763680033704442656740458601225151923011384625341045514205445640389954001457913313139060063992265358827695546047974022947550424644013945067936412391138713755063916723228844213893398398983851731381298111667381482073364157399650147270246782273075272395446649172997011326096594015668042269531877547813323196448372127035703724244990848428351173790650880629710562112761375397093260331805275863972596120071666363219270385229360112827103753376191837413530228522319179280512302231900953498531800224740567850670649297946140130722925265306599729887284133127949955093205303128511987965577055837986681114617553488572051217661255538038777799243277319088553917659978491871512137043781134116536622510681232321692873095876825260643557433095393794355327167129999799565530927452320252607759079932443744625187183270794830597033875454371848390767490453327222410452669555487763694742341082682980119388721991239826370447829385383807785128799929437270595000949839991503968974782380052776739063162856457558813455631814737410139302574616832806888305715745431031952712225375877712891734472489911889495820090868135509554049455895519871360312893059571078922332566763087443802617287015294584342958289963113062562963893434463981838347422298960138168634464992882815784847313778407800917173569325548309105951469442074193030910669840853113397631843921291509534703938301298749801983325740144652565696539234562695978332756109813239952029999707030668053368021093334807565654757740572992880775533835049422126544537356673162148601122902691613890491552174183807407799761475759625634671697806130614705834114699267840108637169645868167803879443758984636674182050784822620463628407505491833697263128022360201804964838066076226413015698924145288828432935867603110588515081643487194973008449736646333953990397165724666828870361553000486691694731450555236731073434328015001062651893772172302414226633097952837825405133963566917564102488733195920533631102036788653349764370689298283589169622057807684270404245364156205852976009475333190231013656434070796583879289521423314336991708746052334231968312435396052362694643233583511855589334706597045616204834426524026723863570464038967849573229789814324075693206364264572223540319195493291797981845935724950859740263790087376390570053867789527940368696574849421029015588236888616900007846087611508351514051942226219162306602559041464658041807794614106557557925155785158587929961762698139611031614225423350637730599634403628341690216281966591652992806988456563624187249337413132991610957367907488965019452807852512849191569821239856044293194913332035604734714278210249935243781650127175225317046198080928337446449843488053934549947566002685594338659254885631573568197542777130368931401438485497619250341268248577168428115422230378675117693705962344197180748863696209053692145053287376352624977782212086493546794318921836116588210853036677003676619797485174707601695030046776958491513828607524783271048649581386741289426918816143957105203800814369614083877924961392223716922000087868308964195690233379328101736783192120604563448125317402340280574291933349619463527584745570093691479857388957937663147541543627056578706371155449984551016289531725285698211920115362671704895460078572751342679635928578124281098122531881623355201763385676806684105752159157190962433617978548447320041853534724433680952530872338782343537758932343805665484757496112739502811192885547189681157665011411417353321311213301887443108726837722432644467494057981573863307006948910694779423562848596934775778302731812292790444423235355984278543396161510608916746402986630528416950874140101698545962861719733329738628946111311043754609273914471809206481077514437416083819476746387125794323238480338356664815346990749613915283677177147457900515140572922951473103483966339589124123447943015488931628920480945964531022049391639395162712146340098138951121396208246522653504324305184086066617116384955256643051588235504096680706965456646968002243140956102672772097431550506509999823710325944498400192015265329471769097799917285863364729664405346355607631293345458883522973223773917659389716183995414809591480089408908344690519238569198452798549191602055408719963280663559401664852362524634846884492776224601165744806508017349592327912181080935348995771705671171441942726447243730538585885446650037498136620779398756899370645199488002623077083217956443679885258152432720221569387047205861660145062986840829368823466228462901332485074545179068127074726515562361241763828656171572999162654368353550196783212538653845829313541168673407820923389958679054938254002988953964468101389004788196663346481580028845478778924216799117300350778745193449824173374029067293805108944396305608111042530950355765660568432086567692433758321564525483793409161282621143441888507849969989101848005973988962446429319080518648140103600454957342698453556158928158015607750524330837332849949368895466587555784794622525173614030381952873287048793252965892799189410033634567481734229595826331267995339969175247335325809864410331441823665471581295129865864682153785509795964372500265202688067649135187803139558268601574380020520361165487390613242899480277654459408875778543510164497113964118608690893308105263116332373397037557148681226363440525018114050399994456815928840932797350224394904668973136464728575973068465317438092706365548184364629545897471010222104656660341049850037250228848657346880954333818546938415690722975785123359530322030130895033101870419138008235557632041814593797106947421503543029763355402832776118476386009936663164840621119693395558353616761242964637187890252601120939117093879098773180120199166958195626803939438914755431592279103967595006448067670858775451663490155405158447818636232847128690366500663123859919114825047423166667806310591184582548864050837454805165461121197229643809880755119947853497465555731709159660978851714868356009117801230346603436472325457272800932769762179423245612958665697753984259019284171882194877486634831517668147267527591738698625474883508700502500153428405758656687732638714498327198646958205574825928476584093126283960826033421959715885188246004164088470862792718281801634168341905233707046048539185002716820932444560538171247306757808113335728882771130390007087268638346508235576797850066778610674325558537674178403079290796564400852060477239953585464514425263114663733477980716893616793696504781071368276096093476383065501768838999536955658333331777235653816162824239001165572846684882792038172670233769474706137721182350207447591363567316461085989762344610531590786245782836728341181139323010547673252324688924765374029490135906203516618881985324942242917756668252077927514621758643194423207268324478576718306790185776953364059259199374294597358755294992934089233686812379461212431615216280703028769599871277343074386521776442200399551397725418199536925694050353082142125032997734583145834108093720475320042390638125292183360615279300544568413549148647789717039972409092522983872236022680116168782669663864387960373873031097370434924726478005082319981924416734162938712293359268458655687663223673824325546102733579070922758701470523278796118532375276734010573728691263490182821177120974052938578619254607715097986545060317526830347873002062875589769244156971546935226984935257290743000552879034494135600453221146895321380405209223667391722634406087799485558373474918901936237403230728929911552595697323332507260147410917112995333632795040768469490308590403652764194584842137441051766825371314676236487185774836760337943866429668880436702684502484825893333123201470486992050896200520612087923415641073475094566471451635355185522359441343276902315229570721773977692334285932684431902632288229721450060872648639279649172345399740741717498068677869951864932286619329616690775786994000107868430107197829432484730952778588109048464660117589809870392693428728956046330600320665907527971745253264069235809017049706851069115993641131022899612865381459181092932689198027777918947280915518991337037448551932807025826608469907578622997543671781187466439513303755442596566133028447405789477554436873075384292312722512262375444475180506794836151138648990528404339343740701143368127029727967327778322363461643835805475320603313883426320660088681584891735374577737078703351356984744642963072824228160237851931581931646764693973698312089208856846984188283715729097268387029213488126445012192587612814097794112672491984405515466280577516618511458936712526723709850142406772472922344141761605476923893521367494892697886784970812330692395579669557966387845467131561276559496226375104258368210997876603450711006296004633682166768236887358844547632684073428611248372616796972783971527341035697727846155956756922436692327794600045838431149901488584503059625497248415436450962426673702835955022948884651695606030393748231087542416892403839616295069406595545464985110780319645462397019256089009745247213468033817625079640292315552367275716108883564811616253016931554556163763276651546303309978230460458571381058263236398800010408009696925545515791045305734324754994713166031272785302887148880181912092523922667536082271722703735363055815210711980796469362564936428413280449914872720616579747524446457194676090074089942163721821384089551202214123725206038219019797490925631862974010021227211482936835353049760778650597717911814291778104886223104544450385037433221039545554849767847958269039757354579421634114627683781903952839766221034287033210102704913677645819832189246873308494864905489333563769372851818504350831270168769084431227310569789486171569802990512122738542624391222873483037825682221947477122025127180311644527297700476260467248862318987307804881031020127965481767969686704305418188844624888327645556407766877847254953409512287442163994449508542931289500893988942928040077765070707568379321403433691010042535588836741569770434810513638077743592615026797767189313014605569811576540316986407707294001511900532504088410865623100560759525410872565084583759599878741256529106299079467234556769385409202313427782312286234403554939315582262987616367619825311816424356124011572899341381730937642742786913002235879982922590069413695089953122360769405725934914863197405075084770049264210392974485903435743568249056870876907847031412568970220430546002608844474684280346849077392133903891531631768000219564711046027393151953675960611126290728362283566808132041239611609468519367316075211503910956749798276185949598124578148917905623786698753966498942980674368964310379454164584651203016111851792109857006275732210665881859668492779481794017230842993618417746322883315358105366805820535189608096736816943466234702907398199514463032143716152222855490094721823837089333028164494475470721145612917690184340842601867278727630078745952049411921822130448957649458421623601375552740464669466192255193144190066266032916651235668862470932661555593643743580592931418485071751983848656878902514557404848594593846395684861445306121733199498244983383281785810774124792060997382749920657478309048880611796714274946713689513818002254036427334732603393910155869799361173547752540085523464837138804587522462425435074136652194571588807611029192911216682978076526812745425453470027673065162708910975683612853854046216032989366015615105156455559052718146713379196066678581278350045595878045229786978875248123748070640950875436761824678901810756307040278260115607405856009985222830151070183790867626787152692721858032066892356949910864116043439275994081066485534657951392207870698170057039618232961561253264506738073368593084798901806636837326270546450316117194387180897489320623486460409102849609107378497731106509422246214992532840750494827176563292970388841387719961246006481692611947994668326284513120958149143441668449370297041162375076969781392271684208591929203854896680174814994218834329312708103804244414917642793508460248970736727294560573481517064956223816354205007895024263505692040625043423821325182650159560542587010684737029091422460512461297904766312001738497679280824180208921166866358811228360004067472264359931331276033605258544559384993348761692317916391724422779883469154782549500982449744057668310784197883723190650521852807563395168799492201541005814965747159147517373849534843266525940778494802141452537220650398604834189672552970322956516806046881931093611213816044748930400734643292717420632138034375415300917646784345103858621149368263290925503028042560542606408713335760147010168166744302734545329590660704264804610570365589039055207533973353276301834729302704054233948127028919646281049931488513142598986810360264914720914335661306507593555805781173310357409257330102487147488835006354343958597841604297688684589842670867759801079615519495487898945124197732721852448329371656086195023279573758941359994376570503270974704022520534628585980710258585089918800928910156492598064093405919921336802398746564493302135432874069643775530527539598971306231239941731728703610098191490539346845269012936447284831634755146865566880522079991845977508260015613266289188363914982887692720639612598716780501920354163548061536833826300470922564194434808853958974301079159031494726658360408272959216418284657329451485408268073108810750057407054305848988177572100800105887920548431709733070034913335946700969178782532953756297579233075069478717245453451046741554860966629303790246324376933967667154686101534609943230673861018487261208031725473103068919230556029205542776356296021445623995852892545605315213256746384027390441121716524327374120063064994243653300454051015613066651881063141610974093659528335549175193560069381134053319192338426101577296379787148705821645452914034932405277037457484166942050231905785029378754131849109184469046955516551775639510592659850685312870513375188122275265491879157738917991972096204064524703031071463749833042525963077874941820603733215951533050253595133169023769021851179134737822530851149073100584399544699447729448813616135356827200833024311847372331392679368279791410951988660652461180360154814689280241305864636235200825561014452035270729105983342772844641270915161644692259230977733951264290539368130051426297138205976715524091170437698812230928477024778798114995999366393811178465775052817368231171614181463587665386533207546943825172796742522309250137654675110437762575226841162930216014577711441016730146997714600218883378015465201225047605259601662950977839774925611499387405482982221471896501860382769907696487582622556802120494350148436881925198790926067045203195277854445472265660518140346005024174548579492200213435900640926042887375379753954199371482171135745654540941634838476274443783505334449836867945433577908524608249851089595655478108768242892251055029598805586387317184696381473253611733082191612407584649837374648744827065456290081783487998064925477360233824772022117695706970856394435863441177378380167272974971726990997731066627475834329295929149921435523026924998635934446553637913766904350377076245066355479479129664823788912435876561920133857640857142613658160001932364451401227673695819337720919809406286214306495173992852466770283742932440635179902982542273116840008036176573941294638141605554415281945409298201283166077499255365455514748820516404112495144122821195328720124298206583008789394807217547338685967267974549364607401379203832432402143955450752699245463740936265962740396668138282174318081916045399020242041489402427054205458066558903958272598353060356716234158030445333633027258496490940977715138006682403982349907828463002723611653200410023739032098291456398221512031581580947833945063071113581402492779366382201933937305049540760704580186540837274105571141079548393319395913664182180041611165604946731372537852799092881813679640566472264971480187498590345505611573286818745674713793620195429119926166444225380262878306186376532782542507588356639381713749161355340827022214889896100198954599358461074879056028651654008718279581038609306141211609822001198717432545183377650535722613477881497686419508472678094917615732950590049429727841192904406315624790100140227476953564481307662496240878770814040774153518442413303040740159977443447970744967365781927391438819027462876743816290073182237363733144998133376107534026657377086008450563869896648555122819209944305639053667033055341688904918934952114718927866014823294429971837947904870163894177700522661829396522616418015933818105796562012362647782657444841586093931228434134899989139818848557407867623990518294892529566025565695200447123582357278666353381840815829190866864132086309336938067415330814487368125565636120272261618941901493749944494143189675222517049228510906169709756251519841530881589498611403196611908436332674514126797987454528162926498118436481903120177959191055368808703033141701532594442214099996513816054902888649888039003861567249692510693661386009154430466516415556899563246154249739808937707079174414472092148678420699189079171860422143083729070007989403713815840194001344858228212220162236328268337177456115290726181434874238269067704610078547001711794296673877679943330671147074061973995839174463994400395064184604705971651020905379061718086154415911337317251626156148869237204152528875328326100307941569615485990878302381405597261134452438870626763369816238207741325238787341550299434170088604422443864537605686790144763750357669961533418996753876497640455797986434817338282247429763500775661459827585819764796615408566440107718093461248415352257127069190279737841928264906535844906802011748127408839022376835212205632754515037737761009795065280455002192621520289413986260286587192826736591177497317140926056719458599560494793027115819767963842028709141387975900076670304697759591603767788479687887702645027467817586257075563705353481157226004389643402888854550151250418429724680715004544859211471897878562642727617618542617161005404565558430843851590939444448676087926279070986983547746109042760498402397507624668682158648175319643385121154016481847042259420790834851415446389808932950265146239442524650423874457647922501651766321407805110638941287614381049384443929259612775609473647743782950846152033205135622661556173174698334580487401869920280527373265527513538286730294283081967715276874190429477312601281780937707153685512438806851560534549331097924111785759661221410529100336559039055936708069664899922927663747790587393861029671820905834534699063115167470290806185355647634723253123051919862383599975674976550216185335344935620006095941539707404991444969563713448802340416978974406663381675609215750693310428396698272995093093090077297796066352902987547897212018117683733778723099315569202315781253747985176536220083494545396412526818967054380765696173226139347767247123342526896728401284063823855669740714748280739001313246949204050120446674640560823368066656306187407290106117022951481607692736267916897553219290797984944087898516202363900401784495381601726306198470926210091962623770473887837472696469330588505250389874868626372043858040586086650683597773397328695153475367121459437335133658642505753614761181513820077671828738313448585350593578684235941121950427628786044305697908352698534985139396706475612425607557387852617619999624380612297208575710992729844390917905561593401928566954357119388390817549584624513249723083867732068656194615577033946413596623554761393802110577251520125459511391582880143435719879940225575192214365104904057772248872975368143009375321486418564977301209008478583594069474133026505111524541763700325446327039446289840908845310025100700329276856262118393018406830974817385306860327624335145417346491160216897824560663926883070518816967222253794810964677677517260376979171113834987590055305021244261417027203627205576310121295623619746473713999090056015442723404644231346697051424766979379717208931460129065456248783903341083780250682000323924123548698017403539981158272084029431678102408937592807731310623308058694820880008736322560130170353968375900971869991411293996802548352857698597951906305722441163685121317881282704857899624894586089578715573974708408530356546519109842924917014579628096307476334228443567595693780142834880581489438150832875237611277545307104167694000172556655597426999049662455838452002526735199053990852770406578062956825844616231778600743300371269351677200371239051834042278454125800388679372997497872010092181358555660129915661021190243990093208045233828750543158940438579064298180390957559709919345488249567553379853026309296972096893859614573821356234834017468314067634770379766974224943989102036778317681233316883359679984700247466863102682022909491610759847713085101100515214870629723013822525885949733383340049939447149199233680040506936712282212999861131000838755192851356106600193523014749389375843072674665969112214317342942954148138290997549178086835757047595215600986742417673548356888193210962869308414260720182065119237220618696226811776451483901322955074372488989416195647488631058245132520810223378272097302342228882240959859257949349552495594847764253535950483911835655984351830459748419387241028355062658064621480649852448332527494168714189229080405440709279039813887295872994754088095524141306156667438621422785627426747217151365478042677163558803770896280189383325488681944800793051395344443138718504511861778191671471094182063264602405294933446057072875721388887047968600574694470996201913621792292273764889785798346217828291544276180540167988246113031593560650460137735980647231827631364862429698972072755468946727423111428395855627128672286384888649666351673995450931113855493655390449253680827534353536226741518429455037106411925696266168873745710790776054170961782177306217246508049009780731409507974028600619403722684025658044587875655439648869999864072379664175577259865307229457217863068606306985002874495560454405055447872854200656867332011651952081150978293548075606012371600413167973303176945617891537396214940391957146171653970774861192430179790970005332720835249950079893407941211136757246811646535115992828038641375443565134414715831195606279840995176885494386779489204645200892162622508152632180451971734218623764280130502790333449033780801777134119684687346472933253126622031392290120279501433155170988183914342693680891155001536294724360288735586098424868001975304894330936594486869315725407618232008557417222459447752028461090154742031112612458199481006498292627685685818477343047483663723110525575806403298072152546719696342558422402469951712511445469447852057034427549693602327223462318153624190113290431468306467441809315448658712928096946346071238807662861544359547008921402379946387829292943520181027964850850549971560355721317309789392102858166942603353465502324375066348703029229212602490946217502315025379650115541762983438404653460599323941911863308189591621385650629986718386608738985591548073360080208445734562121228516136545238141490769192950051081316892133058687935116445047126579620324896608725403611690868119972252378944623359478473245144182747044462649629240956630946489805822045361532017876802331174698619396101881444112572819190240061289180477011210415677431325741238966488677008440428607294870984163941686072940231198608014147520453062949011041651434165270465902112787189746329701849303382350994007081301525599893308649087651891519865952363526608368110189182409768066920335200518042428602375631859521009960050268333085295985883907895436785066432682466964603953388434816766016212740708788162372315330725370442844859904843197766400800718852358856957489788305312120676315418445859953025474356126341211630118171707938960428689684096298219095385092259995285441467626870864960710742233065320106455770016808442292088837576721248898546133280651993521409075820676182225341217129467004481613836228796200926810876550727685634497423285403336205536096003151046109768335839772042875460319731658088836319781296696085779416750502567753392382195234217918238752175782542909095328037004646765261032683215754576578405861235095742446364307797738632485055937157293621172272035345679586235378033264651837553227809486292557199796114265556643770095318654687887093777012215813658790949553748835964869464710040784504827046962403237403062557616318540972794916909630793012647368583287202866789469505208492054005544090790310001006669052663430441022425035144127554869708735461836830146240238234072735404788714766461012392403210412581393708125628475929832422491785066867494682249309614084327612090432318546427284431232715958882509404377519054135993083345748127075957378307864506763456915158270811580253393478077654053711297863680073825488991209874483434610382553553798058016514582956267789846319098337744105432327149808167312385255140377720791709638747700007034006194346556534816305293600050573693810137426563001930613810451441776077353499567968978283531752659319635439740608041369329528735392363967206905966766601362736854540423175069139123294242246437836969383167496350057357669254457320975017165912673459514623143493009543961242901637338074441645993316454635951364342962011113569597677246542840702065821709274317480429859035267761317520099670492198336557705341032667804415012459446507378912035443884304772569720048253286551939633161762337048171521048763972424805918853737946535596591301331255501065165776999097967184027550813626283376531333413525746032408396157605743355473384022310937460198700806745668652668392051520986590333671023877088095993592404344956042900317979639478589771910204421625808566090377380317025314737118971100365544662479683398926298215314885425667204601122099741012921941856710682134460787596577437250838908407374452066284718898063305996917321586091469504860104161023483152770286743398446231244710202733656872838734236127382630836105619242196073473269136351105666669176749103116694268685582123184688265781389899933203824943613387626365658032116261830385964933363358806231440182674814590599063607350716381235947950822454923220498701203692900786123944231590490333178120501402309599114037333239222238204971493137513702359398438483705027618931871886786332990520357816215533015252627723871348146467517300299013453470324838376286491415952704911600048297836344060155551764045663010901280660042143890251485719550362516835613114108896926104165275779747822432219035783980864538611355489825621087241251227611394438104827492313371387445710281013809694200535441848424740101008229845416438175405322674222178015408962256333817212602316883847071875365369576693619503367999160890005791985326131390062545640628221806651765338446880149387399785393469983906813199895162458527771051163662535037324512739087328338636002747720031028980735922921425912468238541534790753382563719632362516861638110439964258001833650766500374031118204308971780927685784834273837086085188781455597926269902262634512738644144328925527747852878486310823439820532752026327813390099497071512533048455285767993615922796151886297351037708393141751630845563779589101474155079846660940284027899191210466755207087411126860459961300562641123173111504492923384058068150549907134832806091667259081646591672051578446246240222266362312608868803604643223656602701915784654564060775848274819340143302017008355594610841678809494050532945081721793316399175531019487005037599726789597959697994414086774879134412634126049634499168785873216008102356540589085435270655692680317307595218282011804435290251399811454832243949675855434078479593616045561692783812113683164873226438524951087522816872615699019140751761772839993857213815782998220536237389338219208134444830063396633871470467981192126668899069637958196395004908645315916808777714897190787239624965618519823847602007282110632680947721932480628317474795416049200493552321902563309172081240112125131460553567576173997785764845322795750756108051316481628039835715458743593207136949845343547412985195431895885005239071266480263796088982948665644607964219591641404825417596283286495544273038212699169922001630991228348930660073312248934665600511944458624823072271003792764931041649791307486306125162279384517881934103717319721577129193351455873109067997794461800533351801579304866829754167139697765781649950135635304284213696266817714570837439953851947590954164506836350519506451072469236290406679428377807125397316632238124634401535346125598826404445123831327012968811377312683293177384054280164495048556575374914130345738861480601633433819817635960142920370559126247958610995646954051867133085294572642999799273939184968958424020161620282202796612038342508119897813557567114529190081354198599658953440213596298644332124882541729443563375970641230434316436000091050385723181087892754004820296463221077656758498546119797485868554011725139693541142587793984140483639022928394253079039378006663470780998344457121403130215752925874087180392398117662459833189400061301581778333668011553983950943271629893704555666956714264104652108418552334624961082362877776645475993590159056396683340629430393910163709644552680278505988800749631544712308581778695198517742356314506215905933228060629075438321644628762707729402020988807412286220245873166427788176665095859997576630313385188063199025965486063510208603852730184427317583749479206491312759279499455565530265189706851939141053128071595687274507304720583755901289329011228214285836102613446345672724535853377768195838466108636920048662864862114439258998415490530826359151517793507860608443352766953587935980938520828046803494629768595631913948782459462394098940971733044458631449199049815334361523287659062460635950409545907547925281013808799572607199117911543288955711285459600393056160874519721692508923709685990526098819466512040992561533789782330496050891354276517684392389360221141259344770846658969679046014850290908849235270013440010255549704171100995210590073587378047677818463131099918550759411129766626883106389672587856114498378844207541347193878839017317840522871488361541982310261972797242664007041041634964082876726351790991233247071367202421211294527868252394320060114778911387991928493873811955494202786024930089602327052103146573883803556822968267602822567625598822487769136634716979922153295261025923107926926647284642647369864302888437358466123945281791625024085770053274901559837620756805652586569553906137465067256546268967751436581618037942969474283082792065380528108734137685207720809154772687835379445421193951864006326663840585642100699865564091627202877650716446607888450692119178061856897311490770474763650610396828978287837941670961091794639216950737889254591762098455671226967728065288794571155660933066268293000982449361546249993989466604141237604634108591306384752770631102834299032993159476524970024673243958784580817985443626851475651549870444877216994015487394310812395422031265636418965852914880605213924083714847461990462416988631360204825375854722807719935074439376449067149916223891546676892742614381861762633835840879646543144704196950183766745312627021793109439429030692962894531313342856276616931935483178472313588221740952033669715022674335599382040165923608953071022069173143751227497284030359237200261336484054145408461022394382996087822759276864638803661368341757935933392401524479812876632906603527820308701340257526323212043068690635516024031747712305903650543175064244287824644307869466027121557316602053542983092980417438255245179417193232136428451220513942233354392015461629390785896867294911170194955830421708592774747875116320135456331165042250647537699311087049711330486562059493587415509552001468733583716958243707978983995576697450321004735471972829679199606045918498757793087424490879290661055801468206328119751941939561312983347661289195621821901312346770774045750812435466273130732006903267962079479160497570150851744842012761162802569895473481963407526824718803193561889493525477989085807506116087699458913781935714559370995896654689788996724824289050224625757959099249188890977907937735243704310709979916847260163833402570983842585067624749673967193766405873159062137462236982545359302868925322031173043011046478855960319816056906765921574239587705603814472801457143479564949677419216704778327545045058214219540403406967352330728391235557330433500096069779697135497787215748400133690492660212276344881358688249538521849391898823528629525752717829834041032261146270203348562091620563295384982540443924611199149182277413635363464236625473963489663321736802976079844745722702599857665278957412026314013462820490287058736181163051742118382786305432434272632515683525500438052967438697510562895404909095974320607103842921524599734937419784731563465967937406896432220353309537645616305204656426491547077882434861619389506121846970343982316809051980619795739190302376845858258106135748394741064545938586857504840447605301539991843714670722050781089076456917411968321483107979845397813601738313483956906013684111970455126876961853261628797716469505481714502362665421957490847477483125109835861458397226230152275965326145592848137789121002958351608135087608717359175410381237157968643161965289375826317939214629386596641714244900244031518719806648575985353171586141671852624729763604351518427259680882228299044164050412370278762924457905428753834622395939622225495263287519774707032923027518995184928125847330069565177711533935815186390905463829281329960628032636773792151755584727372983868067055961309320698929719857048134009658334168542859275812924892114513055791043717647332699751246859887615280313335135494627413331279268138332994681368373224239010349513428439012954546170642123860540082053436815167456045749809720404416648118199338341288251184518844404119000158734496095437025633879088184430199421252852551272800562310099678759766801000578856195288693266966933401299813481298831155622510075189522700975278251168911712596864488814643675750659469737845898299321172283946237174914665488156524290819422907029681488468396235684232076655978687162911884340656135676449430498811260871118339623786782031135795373755588929759441970367236131254244955268323046959676480196675305213543649872194711283065164821202716760702237281797997421649997372578594416170922938210464328981557788968050362781845990407716283215982371980202646183001035047400727329143933881088113541058780486535361419388589438445510603667473163250572205680025475549150623394720658362770312488236617806136447086131556012972657934710425307992183752364857925057875130781498153365758986067541955908015586480275153636503141431547713335989151606008660950458509093358508984061755249003993999894233903144997268630768502997209806153578227283448272676555478272557749639801898484439115283101394863401212930462991426371495475213330766934752720638811611492979761033243797660120454890858945275180200882344826136876954197373487166180725572701701655317702251012175127083978485948393413265422565876055013049009757282211496855325484272920155323796136042172946655220896831180917630973464691188325381435760387710788374237024336607364591355112369909597887403621473380779928815115520317961472029782011497964997103668668695592517440470379732966457672807879996772520317512244988287976229924867380318363137709404165904405212094174829933272843646776458183282953643472239449144809066989615804606684922639734774754981111893958593132195753911698580103437234285664461910349508637881035082918627547912200869549443603159807632028510887716670768536142852833671007591245247617188267993335043090536895649206553773443547839214485587258992441654109110282455850991558164127398170705367000328904687580764175048115833841475917336761558654750745200218679293761912789970839552083046982704224949963296713949934560506393390490916217020049279345050766488354597008960748836225905177227420135391268613336357424787220644623530970241534980244747071729718240484646666266971174482422897231358420560659217249625786795707311705829815003304111240733548332039006019964884616044149340085137073976730042513721129451355503996667028327379378754436420277632884739915910788654186566175692763611390312568489827129700366434713505326256938962248872614346285656320008845342212093436405200444523331752256889358097201645257161223557045838686194129859955542063356679911392388008896518561434482788252117053925403428266480814267886936327470389977651569247840255827805369384034991133759464985977904078320198382660969099748116023064075424999608713456570019738862250930675723795244866330993898967290054297086617601035870759598749709570641854377438681559968114575678537037109639514504486077223940965810471730070890905278285934221196862485020232761757901565002495603629134763820465512644183489330115030633748285433882971875394192496258471471317898561612231765686998762915336011990582481151875127362992974153990299805317129191147764970510629393234792754108271746087569677580156261569617993492667055357771555653574225171716450320225599758373479744273675908651646471302003208220193736594246110089467684410470508297619727568474774719744296950609214111675262242624526473922996601668519772327491527507723157609935249570545396353088602632211372062444766045596412362784372139825673169134004978849895456169239506630772179155734208095605166728165843836257600044874478116265779417850736740416514178500853247913175598286927066584384948658409702201466484478601073103289689911341140866175098289656872134175861571042988755727266962550543763969662320519287454681980762390455678440079476733840773599299377214868809878775238394368713281810820869761433797498189204841816402761017151328128693663133496044261875935244326106932050497864294249111026132459959713112625846590541812698116078798788100815035515520874967035861934035961256841966759550407913747953152648888377851428631195852030542089822721167977731593407580757861237493902910349242798521665593152761762099799365262586738326573195807427299315320007712039299011949138043471351111427052427967275550380462106660872060325361411177112603108249133237687426410005532749163745526940038493078233326329386802066270071817062571153698978580633071617140696555047795939791409325418739681800292257477085988912652092931622011718344392828251015086877510693293297845766826363200914054950859722045852162171970218291930728103541510095997290100123151761758815101602469980585182240139529535122992977328889340304011281246972667537863864587285724142221582928412172077802418127230585354659622204315932229362531739133055126983343341949567594062853423364952772769310636076139816221335504559513980621913557393763286104774698075827563982728606510632155180356064693460250082343293303617174742788778777569486272973617906995221744020623796164121657089723116746858918628473186992998049817768749480720757966301573165034246717035362136653030025410457582899052080758926016139290443773121374965380992848592510693340476483592275938090123699518424147499902513662120334842495530756390710580526757916304095854506860844683168545233541619611143102147693729998327762047938694221705289095981443090878406065428624698519734734132984609298352528170156786879397566547909842779272713520350600734941415410679720945978429798606541164206294662065289415316592749542463224957003803338435677987507215438919005505271077600184303835447046207328219219860259653000226617545174285185669029463455523251113875805150236258750910347671903612944168317945430488444890905233716480086199473814264989195726682550629986054884504489871771258512880564102811900010411095881905099807470499909744215437112866026379515138439651420147650561719001467632103632078764195001593956686267259150052827504238214534161974506025087318587125972884051359968104215318143837836595587630423312995296712071076986081411574796827824503910792597244788530794963395973439930992701145629370824870472962794035266943856585770051580261107452874053246361100042227727106379656993202134290438492583321035435867556915654564986066726794782828463901919837934149907934979553407048079807277806875043357493417938373413717136996663740590277494893693706661311100741563049389331080253682806779210559185229620211858951454639857310590665189726107010012065790639548825168225631208455309771896936133780182888128289853742862855447861650014124796992102747713532543656407653913646740403879502113920241662921709146699021990983390313811872478146094561602833000591991644052081443546079610682366594013376984313476650638760758566402667034658194321840626762384031413851866300280744237660043146943701682670225195391616205221287648324925580892381163038746776003119432821497648296929289298506327611118576107381928398187477679161395145286614176234539374210898283041268521810699326972753185814382549832435371610020278670363191845997420822190680558746225077297171442615641594168728924872541191854682732068076904523535197748716672326591696723157104687872751420596307077013633395023492162118900863152198182593703860526509702463787135062134520906621945715145822460478008482479058969938198802796550375378259784320584367073374522380093586069435254194577773374577968764459928075342476147029927706882308062048357065011780092326702677384137094493991943474917643721179026263144808893747949426677835189227321542388312165023885564698779659003992325087921031725803502117073442304045813672472855417205852563760918329310740379047747497654732992309930294482165841955528664574135769995325473293522766867335986183589406953664918065338610002689957610629704761023611286339768128377970246081467947759883994095131134848334194379955784438623108952702572277244643343645402447803359484279703423129887270190797010451601223025401948557727132020164938989715585299463200480261404851090980195717434172260818994289602612974975043540015220398821887449441938366328534474874994126360182226869913667103496254712069805900873430846972930118247466482414339499328295878935786829642882361537809360540142201399509116184647126064777859391713460744060338045246168997321484774051430239532129868128344679692263593429238811555054972101424602551339276741404107326512665735780692903745042776874636149068873892902847839281220026951263644815563681144809408757308242555349053319164325554629296809050706709385150855459642795538235321940822068681576655068816686339441143900893546050657526877755644338701245370923387105766217874823966410859552210829060355066923370827288871257652117398310867729144610949480321594228983607319659907252905123158859180530969618791066095521228936690136929474057475229364126014832992930572468346846981564385852779544662427702103045857737484431544857400213911518068863243095610098071992803566557626963488969667990289392939953817032245263860349362699834435347219709662180442949885102570356480430511058305989903883977614654884482353171949436500360213499558784943229818292591376297212729048035792218207603329598094627215364967274492152254798502722744241616646805875699867687731537893830613759578341235670099292330010160520245406142521486062921640931624377938238089328925460761091970964083088269793099375317040623121026240745306358727727477596602633871219932275760033521461136089837464042377649925924772602310604854014457257508511208037447712190559804361309747725544719918656083175655733423532962813794470597989853552864402298581977923480224660401584694644257966040256904284017691348354433709967718883358685443943924650763935338257974050311919041559515269582948169472834803768007050112838192275064214247808120376222648210099058321614306894666320235710101446257166284074201424985246028856985111958770835598384439648950714357091515100387683774208888493585529887020748443996241306083968065554751911374327529237310185685407241313209212517297078998893975068366917942807688939084013815175559881223638890205248290578828203853999100173065865443219420629695322031877090163435920152337970248148149736906154380946286956769776876954141589979810413584116075229267337343647712160490450263973744883881893605358005394487515337393275244398522759209218900821849949802145922654155142041064628358497130235828056613822913617644100531749662870923597924152099776613283082888013941682110112530042580281142008540920542125353995649618150984556702857991948198933405540061654930609834349890630648048569463550409165113041498954599731270469832242637389703386548261974015304755921412146266829319493452055605977347822566037074107024849029593692891109658875194798785184108068791426937440158617782036396911529032033438217613735534949084057813749748183261375649891834025732819939859661614931793143985094593020403373986691207424756793418047404676112645606293521687007509550374484056989224144751628918095525881998980097925443108626880281895426612254723248087152853563296352391527338319832593528989286518125706015059471417428112401454513047936412592645679195327825536752103570996661857822016484361234820051393100955302851589114346808139724577292878377643995123428072514018291113417288390527060031655829110343305357202850362539808952216424993942817401040848255406788739818289596454529010515107605872007292717100685910796831483583309071421671302554854778819180097189342089863946506710646281511421220506054607617862332813908661702992683396724800139739165523143051153528848615031441614385034616643978210409014541016926191108627565350126011801914383863514431198648723861589215978844347440419272463582295106069296919071506279427401684641193952534474168090332418748961859401077981944969647140258437085333588289558501836343253322582322461799493060026573772708524905592722668219208043984895559192559333910588415432338499057274819496233974418183268625819718875427851066522625449600397364279717964803547186055989681574344407279229651118788327543664128622396911855703065212545899121607332552377115401249163316109749254301496748142140595783349347654587309500434414103612051993390703851093767085054818454955105896533290270411458690276037823158406828029215143094417969838048385199249498939053368610422933605414392253346799920318223900715647455968364100868333514498699372253413152675067899877372702598558998349550044596364069027708595307236835800996786993270044469811799302103627648775611793456669021365829930347816532207706172196970024411462057577192115775796335421152238153293621595240952694090197124285644503005909356572787946917665005261841678677739931435917988931609983449881609671880673527179785830061818504531404751023811492829672863501070986045285908364752371248286323025202179214447834740902585901173138111633076183514689141532731623536321930444980270101010764562207973580996479250111729809573674047437458165909245428880874869740364776717662204332457509778101736519763677536970097827219890370149482935132781581626214873873366800565683897964393877963826157008294427636482930856782601808668940238892008924779973340027527210866207718224247180625626300178271191083432038219776468081808226846917669927993253060864581866102717497793927195666557241426948983311083089460222311643191195659248233624068457945125502037453661672170716090102462408624753091701022157747984633678861518168351360205943209532257442663683718754779243957136481589875690387160627681827921647667478293422476104523876912665960153062364056382601494965309543925849362887136497085515015992970212779159650582089362636742787243880785035055103707368250895728016662256165820104546262121135632714795015905676452177462123085238966852471192854846491140571719773486981495105812298982680379582702927924763793140958233697012715722083065982273395822685541581581890426337531880245682441651709273622385821542352230252214918569727243030434853181716295841997848957421194787684969234939853457838772257087203222808815366319647535309749883305718043369639511539737791352326490324615803969244929951090230273476617331833893078246929259046169133158351900695115060620486038543999911272798741660037689099080095729230244740941070163435484400169497455451843937718842227242706023960067271847833176286579527971627325613771125658457152378127180075133311787066442077504937122238396602599830647006084654759101630437145112030008762380079132642616726598450309614096425907516599956436978332225933599518492572003329439183966030142254151178836011695298840664254365695086151066685600899438959193056720606808617929207440447691168080296483015312574590641275879531159953580745383809821411359400854128095543369552673788353410645816386541056250505413499854578466158076592244414367320819751590261120792741757405537987648614449314510682953919817971424458619207446139543953267831519131499259894340775214856198341923384924814775478866409086279253715931062282088469889636087089176122697328031054859685274684135524859052140547098014158930087549923649376336910813723550758477413042739967808600403366505523636425378942080901328399914451007659248172200791847146131084564188539351191504441064064831423459782985222518499040875330383795453356095615568945593448425837300355336744019541198483619200984622543304624632251143308918837954253531380351354476110184623896098999289092613051051759951019051170819264014093660363248680579774285159219978302126403377029567114453515629466495016268141091796093042247055199114408008117502173144438828865361044458381591035804201715374834860159892481591232703517952701798014814119668966183387909668406630839716257750576767711249025164919147910684362010415437179408747491392073293034028129822205363212725957050261640474060916830845579081131069302933024077502609852259732717193008348004684035954003706607554535918193592749275766011976999205917566281192339975600446573724112614518718996118961533708961486470235715155932635064829756715331711524334020865111936004655598581544461540689626547929155487008968451166212373921038392431514872734880628740636081325112008437690584394436163188550715441178692231149089092600616405587231264635886439673055700198002957766977042896672987642630698940739253208844869724432232449334366263004356660489070801209847591452256260292665311770539025205813580206882300967033311082152773899103227638114219857267077887494166188866318353513684911924110549819994672901987688387934307909239511157404703147362367415141110332351058718147918489073462177509077917604857687916801273683547900429480299650065846038018048123297791390074456864733979637350789812019456118664302849530229489640301254381715765686201440305408676236238158738554295102275843484111102920312967708101601422763922360501497637430035412052984504637541415893293045519917715885041512380324895366910060487223805247931517993732558932414663154365431746065774030092159982727017641063626687636112255045910321729150212990485935581661582791271782676499885590622104511255887316553063211813081912266260437923177033219795627345026166254510851507669576979050680124114707433114480551945426219738836666032144835466787135802628100091707375297878098834007511654112005702753969157496147929865299359180142884640994724260502323932417531176502257532998577405722422589250424804863998610934525415671164470955895698080835393496837682661847932068376742625006893076673979656382887376650469648921012146725858632703080568435916218994839186966029450336364422833775728148992112158940170638829321729811306382707937676626109325747469305262096610706643523323704163331561570371261049285745105646795959355767278674971670034787661440181679428314332120487070021969662560330661398235459312327545004877470533388519292452109939808919983088537594169545510286023273081661426733437746699154572446817829725865132564380216638766607016118951738572921509896908696252759045220664786979245169290118018150065830765772069520304441853068121659418458532597239196386374235916690355710365187672001068512396108520050775601575020430395537722190859074094393964682015548679113786294826447110958622410514111293680665151593596101433031624502841250196395898982856798815935650770630112491809450881424704588321723859719718269328672462619568612969572348817682072244874261141212938347065259946313218765665586528874638785082880695416175936245532536565270164208624168202479209346619245005525255114910265633796824327858035731881762436321197485221533371819864652680748920471664807681536441119332722375649813117842253207124859726824396406963690521077208168128989135969763870419981610645800938207038260516013463250223058254156186320150140073629549436738421824044092357270045858756435816790678513782181387142613533539304284884066300270948347999286197850993230646017803295574795451872515472038996339399471171634792635094788297947353453231186191545725787552068940007564906423466370338704026032852932336454029900574730777356276947697026021022534868119719190840151141523922684383240271024952318291832770954952511771757136273507349406531832178683380617892045852865164834839445378518491453550138792182153831773833694530322748811107233153442929475972312659035444174417998639752588103698952538652950651128962342130404747607543113332523558001806063795406579363817170280578434233750646015077534552099464854177606116822583521417638744428042342007972962000141143837250246577547546170844686584577058430311524807085430992146256910312102180826886351201343420887009923786123928574603467345388338581435880806828594197992344433328312863667641190440850842907504895881167871160091600086399969515253968613200978190032355169899875419478922365985521592883171934994125364267080209849637849246675095083036384430342298862282823970668567408334524443336766603767911252756874682316807539036166813255288731123987315087105082086177123912842386551597467734130601994532401670235700490471843400797673934167345790499796342108031392266502880514736663039814392465212586111554269129338200003719211619802700258181671521620049286909010918090045677321838864981206425449139054473757981316651418877502318416304224066576050403226027143340666854951301683682164721363052554467692964006723648808823223277594481256653445344867287586691820097224027007181529186729227849710693977283114230257396119855303450765681665547236736048326266480869423589832268617353163782871016107638187691722504509070665617225074297459383778577289476241748842418253698714270087986843772275473537490405026304360673422067270653287248628192314778523073278476042825129772050697297206831274854055480499598277390934892673755089438010334392405588147307020034354286389151117705431541839703879797062243844753226332600047885682511337696231054798293724738505699956371856301408996058189362965423056964344310595888189471969320184698471494230047432240260850517838274081228024170142076964667024380657008647734247301814969974372067439229659490590914865340233003155958075065836697257194617585106216613878639797439466189709802750652902595205807670674195679389935993623976881149160261866433156935572185669790932795109103357453125255331730439462758532657137880806837413260029289359635267234166763945644044748369749273190436992758726650390431426912451606434122915815399658031365092026464846393383667187561195095812761589020062726102721943147813776465430994542429437964902691101059301837018774915948575078607678524716988911095399319578406591340150219895649588745809929995617653454126139549677848594337719395510934944971501326555261541220768490931846465646622477358793556037667536899572996580267603044018085061739851275043434068728047766442846591968368823202599903821023997120660165455727054735790767651932229209667306264781320389994081014054347179816087829426086530032865087857742184332827378374451956956527568513235176864155869369819699684649289810696866263501993019571963487719486604735034577109454496289060034869679722649253447334461590999897618911404668250710472162490689725390485953090768000272576144963235323725957958726135467345180413417145263384153777722920945093000206162001942246434321087248669244890724143435638038415945967019949312877169040527894704810312644703189636095615827871625422875864450473022641949217433363639036198234975571758717639420515077442108023322678475937051390806162435168866561645079922032593615772050219586708588410357573539945751945954395967506902251425389555148689057011616230178571358429034253517920797817869028135369452105839003971724843775689530581100338441290289318343882336758562057442492603548027939946956405866939713478159958971274755359097041250749780989889796980562299541453794522093136127102909055437781964680521468167791954172532847070425573308748713415431768120195059037183063215213132785114829624392181260534261571692210548568233413969278426856872421112005919324437634968421924346903894161900923524140664419759903891575292503093765553308700005466113211380924768098554760186311585174133951495121343933843608754394163295106649982593943400447821278184171960524655368107613286897107721223061727934113593502892470150309391537836780539276881434098666345889695884120640696956115032513537704199372755775447279212742434966139354155162443434981763653422501842570060443400092148422978054414717772708703071562352126708460268235828509060371867029280046490187023444099689234033334733330580565357957279145951616389521646410126870781808057780242521326544790560731106947577982565202052196014895755852607120621064557009512096592746454150319043056240762298528051907224081724177658417537418233585502633174190185326151371615327104627034187036574760893410100669142168063949016351339593232146777272117236521491050833796933601205783921979329174727212380546224618908159317711335708568540215626185749074458401409382736775237596570001432765501437319962878487756540898212576344731207960257943060784343422558746837185886090844706893491792750163631312243062218341031131150591368728180916815439988876305086050753512517033409775546393418190574911195319453272204941452847449035544801028463853207808986881517160403689305879288750820186054118930746339023237425881051571997584941861184773387881760725258451073061210958461744540986097506046305221504121294692230136092270489267039903203107424588860177820870760067507393451513625161696560184776318828195459476236670500798295070874133961513593436011715299419892040640824844716895175687008536616888515231838088231211613422066377058356369472379074232199203902865467164086827855903888614976980419709802604241481199285889073714731844252299712686212154223139236940800764533823379296957924101797204274092294039643727720020537689343108675215909930635273137629661165507466969384134024342743338796413104295870988846292529432489127434638737891447330936435781630296163163009468687958783674624798230132448356897441606800490170411149308122673445098826286523358371903646274642533329037158463416172730383916401940802831311275722472508459521360070941324290629912527923597357786053778429241866512332101179732912593537841933579783544474972304961889638841338915046699096724429775307973083340894723053788927191318225811058546047272385814523921801968840882072732061137743676094277578184672067416505053993507651400596003781439407237608065048498703702755533970429429121235379944986587826725029688094317716703203192930056120596102514820478377986676480141489789319800637721426386904607877414363497973849027781081059511224147059997188273886490460377878414214484592948036487598263113072872873321086182971568748616725544744425883985159738798279875329700312399533353868655467280509116574166252143662360422490643176288036416933327492785607690859190055264223650314561340015768831310328771096795112129426217784661932174896798533599820180216366458038892948175927251126281618872773129599864327065379440770319843191813348948370754545469023677199139969064128102634149066572916967465305831154619969743445270245164405363418687869777828243589100961265696696042563598419536885655645556962495240679033174495044678075722747749202176315825755654692990547006878455383324600882664708316478002721706951504125767375442879204624545820691931441385371433929299735578393209615353995278790335203331553942250466627042447143080808202471573667734788655672913690828434182751341149456479448942913053345498260761141228078325432877536950640153580278442665938249366591261523791633507029476551814805643283274220812788833925182460214653217008006172927574432259270396495458052256197129897055501958699258187642867971356513334809957305669458304649157038332405798429024257958736931163535305274041025392533080904598388670996274447704581702075947629881266126328030657063387940166044714810482944325682075614720284772446183718591530677165811570603531401344632229370832744185100018280129538066960081532299680213140069588413459255882928244522260123118892274293276402550056584694872309548073996628023263577375298498121775531072083879714059193683759406753827374595360900285940336059956438845900412438599475808180126428849347654996346636001913411901455828047691664424828624539694626724707546885915455681483074484471956512536332203003857224134394255484622188660304705187814198007639747288231969648460656897626534424024164737938681748535417702653802995956158052979740768379140794490290492366040857317167501150812601297483472365770015923217337400995489701467139883325546479220407790490760850817330804388826733812499369178932816748191188468247319172344360033996383562453725572435271335123049471995479942714074030466732638012008660443624278411775047613465386023078028772865858477147773902168680677796759240785437913079660263111640623315149532315574569855874504868269644326901224401319260268238767781631700349622985407737028824042541057286455964003741631706980325138201706951916350472503487564482881919581579056529709914670183161552770364876259018154609443413032686038992055204566900115488700508876500112297070404303769722909881144513067754360308660989497167585486355295373278407251927199391592373327213531969073034646550968680008351577020713053543059275504788969743354050852063020146952364178748008582873955566231071699375491191657787131717712894950876783747933174603864110543975216400032041694228290043223467917483105659038174298180589000440610266588712659551232088202635941879214415884111248436696538970297892771406314460796305754235474190492538695704302030216493232035681792794785782933079154254143151588544237393824111447676000231365561525750286489680869079075853598259150507749390399793316279134066703385289651687784528395334954444820273639253314082558184553876539804060888120876607577384931707608440084770254357161092730709527795869328368813901398324548542460234952063627651647752630482848333697897406977288724736426449453445403089107783477579010662099384083909764933663641535935937722472708115000019448231052247625866996002900795097240953746176990598610437683654665112731590579754629408663147523465520244099511848510711611780092725905453088853828480812746458839845212551677292632729326118521349069923905935443730529390525418298587859174088447460951620707014665635689254036533459499552174832839042912635375178940106658531147818832834492123330907799954934872021188792421995836142017986584080956657865640539230189438432199076373830370754106619336815091880083397186684339405899028187174159203787020774787112223805216193404432250722508360993185081176667959446266989215853101538968507294976197279034872121672131718669966822763873712428640723048962513035644923755148426761409155720647306010348846221546036337158359575806427100343877457987598242318626003883813306328117886330319327759609079199805924715012862263869078550034464648294701724547415327423669118170224435596375145545162441161896555806596974283799687575184113402482274969672509450323254743644918830248246848770047174343881160085854547874646769534618336825448039384681803058695276775025309266825458881950167165638863930084104693935031657970813378829206960044337889529904117127718650932163995167427997231929859622687923154779639252151850706109924179645942676924421298207826996011138549566153504974789628502752710889243918834511694392322404700921853261293675478861549843315461594438765612534894355636422860306892766397043578691774904349676689804242482923281567112371472420246002135668804827723957238809548934263671523593435301816309209869015184004747607543745572095145688574842906803366101217882703901802015656189105787565976355923451246189265434167252554994911508697567333465957703053995528903739018459564698698195565986937753742213346100667777576986096630443276587470418245654196149815873572698452746680688908223947162789823103783000558007137574322799391472694035834577396521522451525140388654095022619921124922353380452731710080087995542967753625975885205138450130096560607402320917622552501053106763686330036017039890270622829705642605664058606631047321177873873011855685386294149717723810952597944001555132753591323412680447352045346652945898718093587369802470530593722272075205810949397656662099633773606397451841503564068318505990297124054756454192011707690364537341429904762956895180291679488992713009201040128523113428204755015699675939851508089631070055106261406014244470274029303746887400008884485889501323249068731162637732140914285769231875545954943163589109436181362860909580952578734291819195610099473134927833595683351799531083538138701078712284688424376195868760596644385189646266248425369669304148414593723375570911953750549707226961847296877406295514448047481681259741455620600190472327270586438895113261145878374681999069493855565736158851420857344960500228692041025260279217516090265761585614738028098544248874413250067935485226372254014625466288797120237691955744356532700057540619263406617403844655553329970763503725993355720218908603082671375122833814178026392598965125738796064303396140369189229865861600574338981712041244491409875806952025512095677424336132384456373276996900673804756706430927644351104505782443123260568751315192783035976444135684352778830480562653721462709758951510678467881466668334362003860810903812377273951658366342739137016984488657970040021613873801639737598949386574634359708859343725580462287918501674590184369177872674510901343822217503878153362857694116937717908432527501139758511892313059691866671738204213071814849637198313644259471798331566765392362114104525185861784623652487328226384994793426266727004178347874850077132091583418209578896690709025471895170628087656332790992102798258084212521521076932390754317630184036223925338761040439255926683591330049032523529466254489297878941512250633351298285049139140517310539315745472261127146786076322845036284336692791201814436845018236844252357103868584416983508934953843331975183747722536178192777730856904254490242656124852880972154567370511537752507978161710618621880795099667195167559935791996252806573911205439745687553698599984674038182112591353612760126675077400863481587879678515018234466043210048845890938345568818671324231793525348591304371482913375688569159569239887255536981119888367630439460194153799097166485461630678821957597684649148042673677537289328705167885275026358240934905832897910469864368570497806308753708829125569721678727025889136296305911690689089208548584016124726631537031914393210392727165672869636306472747157511758611046364519890188630779377467865947197488650394708496010375347055607563867341112750602948842444717735190064901843698011290333741800770728319067160911071404822737752490746996050874888888665074421285354119595563954583837778766035318487959335871790830227513610118594775739488864847253883838313961857621807385246994683946427420417035237725742319639558431370023323458062126274418711082570960723427013527331301746628965083049233668308054473686313308039874446213141475879443546516383503578888846226170001861224371438176665052980909059009237566050776979482406052112847134158202206439974544270338104559013856909257885591214232989174218371172928778733682944327740073004741691701836504478699637300330084931549009500805183036319900566771867939654495333652918500506371248599603016876449337734054076913209934488160581334961761703566956138082712070389247457199857895893109037547856819821092892914479041037910472864192874926616107875802075850455481093002842734990864342843805447937995987843080964668160530342463365873706179993265338236139651411190050702965125700770737621924637501095189033472139414780528760919721609475070543408667070162784666617274618743806220102200431481764249402216986563853180149743460502206421478979954583365193950575591117084544531601973815348478197621283410646657231785485532189472758040949305178544198978711025415854189374324765257092260463933464389807224044804060220308625447292099980814494574711813683752329468702015370942892099214593558528827949721009346428810317417523327077905416807042587968484261584881478538602675341765485866419585972264569503511949030312670362285742527298843330617610380110232651812184459729581895902317883099593334718424840764840645154129158509315262404339175187088207485184130821656868850763555395775988089040436404252123910074116240438117961470545716004744427946076942669815524639338180626721852272110917273772439712752786726924410039905123628409387104326304113090281632572035925637450660561289405505241213122446605182331931873218974272607736152181647662669012944776771864635312611868527735000860954894777795027516664020980840341916619667480319330492681537583779190531748299157127225374283401032713425504471509914764964974052079118517274649258809567876780545794708432642073414532780414079009397046677547915829784704240693411377384768863990600088912983186997505459735454981643406041596346705510465821430867800728998676580966300485315671305586842130746549392603002545140484861707423305474755235233413260520591438423020451198218720741692796189612425351487731235101081660814454906872742574790474979998830354882830498945652173135922149554652515656953786392014291122475152529782346238547694905651956134472413682905111421725208831025788818621256186495583883194527286864314604882652177733185629518286538138675864474576250930046006444254928367750990013254789919283237418479910553718937883171768123632256762309331291606984787635776019806935534112893069542918927043003392040403928049085409606122910555220977270728155976627805082611888627757688912058689352113993693430743094002354198137617742541485869187417504003541385227846232245987321833811647028465212893688250262888512336983868045306506268630056503703713908463562101456649670908544711334763912675283703549600170881141241396522953970361696406774123854388432569069322560358976707960791088655597540956476693737250121235555803386598770820703448142711422325022004868545559380241756348702194217340182005047761342887550981658796052752424439473827573360105462384056035604191897984650289517486898921304434117916876550871303607874936092429283708066830647055871210771015038067548208436671917145135601220253665213741960606302056270256240688592554794774860033475651951455568707741015440034594710644151382609228840918204283431975864246772005545004828494533778306102736016588423614838678834018573001263408396948054126855045993570032004070179823429380099678489601048981534180699836400869763801592249665895282011236499263118793251060086587578040730608604202333617441645406310261478574142366921900262541875100027905689002619194715374017326796457944081818145715377554645805405635564732511251133628877057333542623265988419791131553883862512088416606982234590220597119404519062346876606420540582979317180506119516443461776363888561186698874623689722722379946691287412411919992208766611234557749470811781212874937145382053138079136647507820434753618594586515469110142649424527170504347961794975355362098797561473734216621249588525735171860641273259290666111698794009054775515895383059103964079391764728126373939523318979605332654530592840261291318837017408820094341098442134166493517209621184334011933003836436784356522728840079011842275647969793945925570264027356741672458508794892759818725434127458889233446156017306070064443184303032892729041891224752465702515189909906733291464403762196714403477254930210275597678992123828643389571223392059005936973719446740290143591845729312391798577373302671661659514019325057094963196888726804022910976560601426715673316307441309511899168392516040960347772963615902378814064803446018167706575055216373633578982494217960638826881215719081855606720733812208987507446485820847108160852141055967124465395833295066742109862281613989567794235744448951351717065698865009573424364932421942784609071748021733505746809507177994591731707554265002699165420494752502364136139675258990065180111150825879346368008576880080690548451456078015937532160080744783377285567720311795390572582664514934774809372317017686203234624136684453571377837184158302295718387593137698815767440646786384828160108980888636782368887228336500568668316523224110050942712518744872601558999538201238558531417081080984397467342729894819543401435113621793035875930313274145101208780586495931660507928295113108571281708055383862186902157913812635197241312995251188732238186666941144697024606801609685861914008860747854605280198221474514959062134310521143918438351621715017414717143986663683304397131346114089653777094907096354067249461930950339404302385283011385784144853235252761481857947876535086412711078277612704549572899817175314227148685484223907719679204983066872093770605322695511545765616861082323364799816612888737836678550021613211713344005688557797410106832682756810767876237166161506786210572169774590234310293573461837080310748201269932335125026624891066950096166235250692885119001763017236914570660298471035601254987693370744703287263272303842895982963040230568598096453093038600183303536216600750507756117969493431013449306116687150267165030840477912583007332192622533836946431041164250461724797367975993599998972297156335664921170316768600918984582538653712212244737940199484112248749077993081439285468706120567331094187367903499273584115222339168246001336439217071001744005626848984320805627526970143389410235077054317708786432238851494443659139742475192159894884170430409234407380403614679233033425107947080149761063521207904374079894774562850790256043155485500580485300622106672595328075866732962772380947339985280416936685772439807979928417092922574592933753604959963148527575608181420750872442204211050334596295969100453146779440951390364515026101190782275458748881417118881160893824840498991653993031995273639435445367922818542827343082912981897301129792963616745551143642053588774734678416409587862344843622914739167552720230966199664928543497336571205866342748174694755952802049694310760949615757892364847461087273783456900056535238043379042925468702882312767988669849164356179604531633487574838890337331067550634407365414472891953465197452408222693853979480067354802043277431815139990308054073087860816972889227197277061943515361808021931284662842338318942892430904131818166996110726415029832641622186256909643649729118079008577876810906003134026643703938677329671155765320983435583001880009318952244918246758181933621115839683584468037232513785834175926412863342101863162666452915416133764517685807245290866759428987064149122262934492870544655744480083437356660449761231220173994453873712987116231305982404535274024114005461156360725042023777593686724420158025046713384178170887900955279555431751171439752800290558904796485298554492433954608071732748940289002649591289710175440314430349307594302463143534074392502221911320230336643160458576733321025209213455649655295575265881576631255276109620219596748381921181356773253381926891860374331020729383001412220399395160410483554397231502969827082066695258988783691397584056704516030726862228137564714028471403613091345881218164265612896298685904655180241319697474287871382166097161164656840448508752057680170696058101073500155443739550158963870096627926606577746193112406294438665929297203331467315397533012477580737010645564501009193936706071724992619532588987079494373998058436524898412744083261863720682148516824003022872233194127611255342980476981718797684885876587802899797401788753763731888838131961328777478920692303251952634523663650184673518385699836371700098164157540991624041891173224629556097750224506983534337443485114496154136400502162892925525157766568607921904659578896632533445828280681597358153934660959092014501204839856267521113517563715060127809021865874336194477097624120962893463280689432129646076417896074663243730049359987662042462792018689729446670222358128664429245543042699969277051069631769106482692195730618308449987053941142077664723732277513217523539089901156564507934920205682813235920912014598568213855999103990107778800667530257884198304993294448671048995789286920601891624476524636566805823116993469752590782984398926539282387065550303443221058149296804151876253835451335932211310952299029024091194180934683111904767729281910336227682082798214234974547887014248933881941607779260035192352161508731355092550644426499467491531116180770113293748906482861079497667695761908968009711604876083364559700627408056957862554889384769408538495206829373747513638149037268863213861993433776725468140561538849184640418080388792896913692268113077013500344644139008683162605498268619685948389643688360491518173101971787615239991654239326797192945460185392078654398115821452523258892213345089798552321581053963227463058545354476873002586954227270267646099741737268901710338103722151193156953644004630681251162376956796001596929721098625496623265910458497317632040498392493374351324578933233418964934875008923537825367235831833827161257645330709702219558244802351946524441227960143716555597023627029443093814379996805773042925937125460936269524446732188751264732163925814860058679177932852945591570845452104015474115043132329826993012666862425952065077683176246693150788693890458288838746208794626847505819995327973019505475653099097264655872736327527638171757244557494678930983030392016932206487958455816021989824083574232528779799768893145754543229577226289137864479379251945537215652636658981291255677776537169523057104111071817144756049162051025001650716066747905704787769084165028006894615436535203590581242768963044270072076154592132714118735040178563337157848695215989397103687256480361453972325965228737713719447063304078058908375369952523364141799688779676425899528558183587024013073520161404495889186516816403116798343564045071025483260098291507881171730462083432872507681278739107719181856290103465612569616382057551471388490694298163539609354218697435851456879848543305607232096869059454233980534789615074825236935764829647669647023551582616727089876026027196068843859903370790009777639097098872034866804954017970516883121702173166022365037922787481573470797908393770926434995909490592479667040372921190470321586883094551940046286802544692950072614028673478590399429774326885888153165629042144009576261221723709629066468213162639651342044108304118874098779908819690973660460634596719962512220849880254538845703557078857665044738721885129261997732051698766099890410856290206834029943037253552452601106272382019972875798776829699809387353995887274824833121569296239526576726429471289606739899619476145533522003479056531950101848414207971748970066274039371190232445113297807530179030026708441732783837246554771462178545694756953644619356785784092571307599628567393265665865629268918840168562202114914093461766449689302928428317998293317294970055020934664712067849600065535274228268633607113208947097900460592259372973131624598550919567400028295413690686340007113889373223391156302476819200896930726833619216885808395176555405329080479639835344774114985725678639374327444977343678283416099839775931282682127015609593805032603137834426909825241287677632199647819228121575077173920716213501750713951133412578424286134910975462232720439156591621004703222460591525938059708907719112316104073343599096791164890152888395404558412245645776005733453370270252121442202854318128686939380760813958351454139804802643608659419757367028268471208760982097470825695039406336915566470983701721337527837730752253536354322923130800189642016225270416185797543411945821938892311114010780059878705744639144525734590664117646611666369808943706971315405374901589749661781997830349790652022865245141118447150467959408394987823919093903352803253279487255756725876379737305769959967248936064266671297751359140873269935916940572466599911298432118372237361503478406489822479387701470520612081448172022072816563792554834194165063555224881121777236966043861411320653698992171503023590529669280212357315653411745814566424078058489199986996358481510732800587669607871691197893572935849580932211219385872780529148708742617509153011047234785826423562756724463707782524413388608735726419008658037881098989449658417077929577044694837089715587082780534876396663096934258300783367360041348163819991430051206172038669206872966098040735236517541245565493459914800003711922600575377474708029692497125166526182365872616193751546028108391448914450134506626715483438974358672012432609020591358911534203813030218536563617065801493455049421361106453829867375581362825578978632708980375825318194670332660149546847116846489019709476072359199666406069293642260920777754503816090279414576234667165434455479111997706265976116914052855232430504448837836606432241909023652578854528789206478457808368478614027298814269900440881105088444737541342887898835856432423551191550099987788830984969301470459928742737685845103341663848948934942463022321523293479511103505056080688907177843621622706542155430797981245761288833224629852395507247983738799283264969715439528207380086802706235619509974324719254666233734735673517617550938506802625318324109871407325050454026235300903536251889584053301859648998022543234047589447377697744244334109464236511342644082673131373853930564932898054398194090631217581854286971314847095974971340362435792232056284361893300144505646986906846889957314187018668059172910671485236595412764198635512070381571782605238796183245956162826240608052197944925114684730304505237179731933135252554279164518447098212887492934954218646554905119944902167666247966276764052410768516513371923646427854415090198414582190174652029297497809589684592848856045980459974951740955204771293341286779186808250619692589128376247213783846413496585575343063655450900908613977442871699445757065883551734802385629669752909738753432699646742996235870827505467722674352736432878875996389614971629769941952430108686645706533770925958483535937043048031821676484622177450589899194825562145045101400983123740770786268669557092372190493470226090192765668819264548652432660299234031109126060076152912586242132087509239303730694225756696916508042241226198384522384203613891089231017516315025636127291298806418120572998843910015551647869928268893617808075855748062570879821863883395872980081276462548856717473045355106597155143861968130841112684209670316816492155725339938368798512354025213418659105395789763238525574711287136558904139077427460506256794627152502316710212672090190560889236755791874368410537177984867307379586293651633061047893793462095070663987887256520482617301343497871863555146718521282907025414919363034380270969401546089048598545876930132627369415481551241087027634415720592620184245300064366227441998934971180493245241294423768909394398651104497120064612994771145756953583655870780391419085986596920092876664072401526300691955267193502945493473111476762591287544097896022397029887386724470120801045507129564435030715875710728732861903713462351608287693823516825999574235703706325471736284528582287619763591073353095833686532387512497550160696782769622836694345546378903124094593094897723904970432049836659399194491864158394865707209109312540467985255021985230871407388877778622714596728019692243644949676752252248281960853111363702121410101449251775808740680736538138550232344308742886755230089362290348486953196431538206625815837040360644478308419789556950602573161877842818867787721866949280541064327519314324089000640286358152280931710328309269340168947837212388624279246964337518460341017016951129654207219966964057482975176300663214390689774873350375737273096991861172039617592768879785353868816920430634314078007232632122215159988616685734246480093290417989381658070347942469373232030465748069121640409566762127953859837640646499438603454549951884240812765446959834343465780979647953080746583271556342111365859574664453635801003771944592893392507971204231572370283735232700397925744891494093361473011828653527431168324212402694482484836192484252208749958319021084144732517290114728233950521013682778297650379282787474774102455990308414520562259751773369586664472462195290580141942409678744954682595541991913218964901771234619359624072605307166775876931352796130026091933061251198865498371224076075850995882325677005402872840584948394505823711419201858865021961468024170595083087460560823343911221208879817771231530732857055612119381559707933495274561824478078151311754893041529211353877111795436233356283777983855512242998679895802916880672612098930953744302064325248556153297887156713070743587478447070253001606365933619089891526867750007338068570498658731641329848235344680249171588975572703167655265141498047756174959069503679430759891432039076463235481932158682400743825778548219346918313640240425011292729877038656460846488116475915279387066344099104360649472135563644056829318516688350441580636796365572637930121768855914474153356559767262451810684892122067959282149312445493571086603316353716713409132970903148429512378710346446729615986564828852163776400311129017928547675601646611994664375284103402421105317372789589094976440433484726743526350456434189238647746441532429979307451448235253737446160136748579693903607651785694699462322912451100396724338208833279665409272407213158438268127356573722388115157034786771852070068917662165769843571601549411793818670784405012146558463724225926249025320453666767222570741420815242444134627754677070429637761163864608687496427665539524917916410437011959938035954117504078855706116705448795397784663428887525294237510006521589958174011065852934972395663560535811956514309746667803130501777877347962003787956725921524901504709809333859778102368940255421656920019748144920556750295721026568688262714323159526381612656471423716585737265533999453425547541850325584259374892583971452185225528675681410360994425452993028637432508060319956356070354001316925271753865854869901535908667163145699880951212739521521687866988794266182603871255467497188079170979025946582626493534325443210772941294762095628204916012472060609231818797758782263732485077862539696519840550306579134599916553047895433864280739792373031023524627697258194022422566758926495161211554923217284782762202573704325384425726791330016098591054865815317473750290466423488735328276266313857147572166209256654517853311071995914778231332648472005141143152979827856521007189125122919664725942007570990184855484183139459115035693007090838647900259017508970124066764972336456771868493463669303288374746765583674111055125315348274650599265886419529942467904116521048320600105870639201138545247274099389037822518987944980762239226451906255007043664950255451584233803779783671233767025680491526146538563674815198387465516741166979460817176178111133532750644196717747562189324163575703484025849429731840343391046756137613365409866067521292184289935606414333749653700293896977344837369164924162911412697518731516691247926705283643096896568001302552241421301471101111304521462386682660990766094417919547383172699992812859278154983465276688211628190233010234271121929157999986693519686167669067955238827076203200787028551945659400669437671184740346058464986595253632220453296127870602615786420840228657770411963315474640676628730104256918137866571942429839866254580867947730974552088873855154492648045073502985012042229442602863847592783598206516688773016254050722920524704167801096378277611476162706911699027914107903482596451475438511812319353990132858055019531195910850492749354067274261952639125748891591668023646824142051042786322104625668864541194683786694390365251303294989988440078624590546374892454566607549135567822624602921740375577824300058954580503230042011140268192783801876242732066697993972364581276096908523925627304538307730543329398510469871972172922554371378448093159504944257230138517932522678210627943950007886575242857399750100103311231723665601200558959386296384909394509228363628461696547777135634940444251574447041496685250448438023174627910759913593987105974427961279381898604439842210161376603488175432973661814993551566260971723090816150444117070039074400012442988484742893465193835934069819580841066435279977289757838889457938325949086956773237253785323564468180877608112397516354274777393347447088717338096314756852014274300896042622327656837655884896999938067370473924297634787663962540377179580894842076085709527421576088723161965266670457912884483033657670906837024770795297411718079534909866879060592048333566035481125972837968811332483541622145431443673013125372007566089552386271014960896891895664737200893278742755830060177765885596705833001081466964195924107467681566990565466514613648518366884757870910436591557734793064668847116586437544076270820195262002908210243745937249382806083061112593442304525952503351437672086745134475714573761405905328639892973638093603556902048962555660160341500887700355962376388799375591430388963613964430188753770520244780734686395073293455129177643854709815872226880737848364135886770126801332485824754428120266116001291996238379638901021090059985931066486878660604045929259347290426650591546911872642084562085142772427910448084069085978300885285881414684864966555502175069174232312147589673797660670633890294667676112418976979576352675561473071913109363641882303546098439194797143030333038984437417161443158168666258907966000298578818133299644434293391374258982203135568780658628553406448759630384074022571385301405560660443445781255426574285021265991882072378178006207741703399576965794012552400072094214039040459588783570086462585919019820554230902462091877998906128243230666336480198625739104537714169530266783944939774322422007805611630081465188923793680360091654154211017628369188578071941687343336497410567661286429097952363464461407802773434961407850655183422365330142359503689329178475529593109802286757261073308165281192532588754823660759166105498871993074329775407343184529508713106531433069825891216564604887128998637908366380068630260049989194229002340558613047626466701965188466970263343525915114492733896388784629048969477491484686582845409961440154522084535624652124595985548845270204161544598980623661208214338049173399360727494744577829934214698152375519965211184329945234794833939302102195571674356717101069542254865388075494109533219575685997940509078074263953982501533453898114595089158433254601100987430259926763625354071469053935284450514306307733233370131430828502483630673442442509069659623215413288068975922313315572000595824442006382910406849332426969667696820911972193189935308331110632417970998571512890457816748367509022615642357544923052390859414849696876461020426192720714281727982508955568597834384815396782566167824662136899761751103980301097024793985116002033866290802021117394902649965499346219504774286001582591860776326861022240589133278519385769023475328100078109701752175110311047861437057707343748434753898934520175846837285475785712787421704674281095903193245867432364372015401974931010233612456174924903917610760294416265443614017084267025363310466543310307535655136416558027896776529536989894156227852944063167113237256317262393744666034011699425373464269490556412626460867441950913958867130917324307729237991832004715095637602527640878453127273494261124705248426536493772130785169550023958037834998266685834090634298528444840893281821857606997397476559334282042084181385362864216548231793593444826134536775547784010108424974540755967602780260044681221601741031948608464685194218075890291528200385596805152026161507140326551603526808786378854080320926099680636732272880426891658845217163501731944301939857711117882045318413344297910903236617946705014588471880656482721050665933539301364382951632289053356929318208283379079700031170744713621362226245576347867917847309790227603379009632365554066914250373592486949801809394755295537371447616371903971831389506495086190862455383410069309016186270421988038620678225941218418909833667140894608698332712247378811565966289360505044882055218092995932411457849836930791509502421024835256533535194519049303513682320472500215915452215183267589668544469685644571766122597286960785838425325815616651097326573791267733408779292611759645068356432379356554650793247905925749281838556263857265215084176889031495960296036656828103845957990253664242169543523504118911628195671804017585569652430471191144601371052583678349751614740214562646114913126489169984832451590947635495711861991853526434870855394046068935304312462838569501599274599200242101823041684207611989587894405713123845095162324130101103971537003205887990289874568271749753930544677068288866250110955012549266927593926906134769033645574013573608229464764567937090473560493029097388366094121033576885563713054825652732466866187956340829460769340033916207791368832246283725482279766587198270477736015110804393365820936045647461251311568907566419501936114506957197907863371953178331992382642407080918918672836415730271650806404686803358485389340026061544269113131357254319826919165804395938698332462924151618458920475521251110120224313191206911149578363904916251841664848421635696304839569902653805088081636041624358510853236496889747358641890169773151882957498292158618846745457391938071996916199413237256552110823432689851629243233329622290416166837397781045705759967420318675377567481255941526245147156812301745376013167794588990270640962218448208006434270071201368436082356782881469946697384315124391834421438083213824569422724903198622798605195723933901768154843424001866979350864295620570988405681378596890085811889525745199428199442886901964150480116389134315608586004810440392773315904703567141152743251496908023917406793848509293597722275345659644057790399495517635938345553418534574539406538680739308869900524462525362230438495347458582291255223530617911168785449917808222257761533867478457442937378423758669551461677345069467500866333295920504391318750485762074585573364636773726244339727907029398897952940766781602017400829137506863306361309391181350611741346506715477623191425628160277176839439746706698356309866652586113027318758225246581846560680820469440430978828037702505794870764195000436676242917157915293496834135981482188978402381447902668679052899999484445620942292993106882972408118901861956480217789613092516798905072284561819491104943069953307472790067225472255578266801245884148237894689148478885017089468250419644021307802555021792349335753519737581944899193813595673779876717326358696276156887870077855359318647118899464204082695055370061898888590105670704151579615283218699346977408459985047597156942215679450362326599951290702782455543766195948539558961530310404677070839859271921127601564258787061166215616692928786176862828773930958128000755475670145254653974943472354976738121708500657445522390372937577492793723433435057537078425774232601418109973503631308393686846553047540877429775122216614158147341594756383318790778525271719448778157279739736737835213889226558599209014967857580535786702630237050273173881694165478816939909564610678072103384743847449958077436894203440608980513648470055142090269702423479281667026418717353687966407964093256356428197832248875745790717605625794259807430810421334519047601546154988592390414876110441097090767761726261998688720128370942389855562881497553865548369702548330813075640088257582161628074916269489458841586619717474143778669525814649549234923896153286997400949649923920384446804210830101239005736653279448489259258550482506489519257190083447698179515470630767653826270693043911497315704809493840276862535020375905576891835735004076706796677980373630109806245318240316647920282072818806094070602521914651760700482089986462333674976383662632330746536429991248002116890915724422584170487729796336450229583195800667865044722013639388291480844788255339729017843376360804074600635877597810597742901182049992470259018625633936221832936946591583782484818310562457822159639681166872940712043055493645685718156780836193217898195164226969098100126226730214050885063523090015280960445985023168778290880494498808384282600186041693257313437590248158641362082955113753413905767275137602609442453990895010013896727227633704799482971997988424852370141728496026486209401423385826144199261966067998658592365257226691121821475359543023417236163318484132592675883974206375778620515227334339851011738035526765945256010341573914977513477336043074623097553920402553228033747457695981162607847037141721714182165738229197168767224330111860671890904146096440929075543793760122824875329657579524447298352608555420013691816568514654962013736011248017659298258013591389031950511903255620976289209926064691176239662342080843594815696630783750570068737113419717945202820068990900966625358969131084252068052794114637569430097902104693743961105560246665501287962343997243042195487091052804198113360775725333496990146751805105270801968590092066656467347742268535931217039142041828312435021614959173878825002316844777541969654025877951357357317434914996732503629922526198045031942994591706034358525296942570599756481447662913331136790316080412427567824314223669860677852585678726416081445323636135741916825122513683204000349842024646065267163139615164910250637485775376464021092507632014433773690649182717272544731812498015637732984606204235128856482478528792033709247675112593589199511618657919817311143532344528552836459590536245387272038643326346691066548609443948067031056223677324816806949617108905562745441902427350097582236835715463433961308148968718240753771103819842685301102249174642287154831744653901625557963961032947052674972733542964812364606176284372918632858431799408825642977172886313769294112653847876547105227716733284286175272362031811674146020880082804052982906526606122846403998535326621043202018325161003868168865784066973431042131467114473195253427701081303809384523141395401282498941980284530044144129886047922157140152096838190572157184527545532292896710624546804487663576591519570708292787327942776306424312813259253959317593876160954402846899434946700180112153747052454536988030724673211000600321806324529367143712287844225809283774857772987205625070752209715572052573207806039876288953684753205632979186832796260283834928290978495028736370261260893720634906173701924281246417383455939796088532125129919135388938626739735084402682846106252196573826875456086867084583053572611645465058651266308396445530594880953082166814264438601397243720878767397981782445920760873088037416763735354036055415793223692303971304550018872820449002023547897031255126534777553899618494191581398913972843997270896632757231069322739800373097761526214138112706855748143503986469118709096217192518482438051767978058405888810672277189661547554609799070373519965631561536199321076669496578024945235378419187513724882853858896428207913022852202493843745518664101962018163801151080094713218910287814698189100800573041750004252630597774369018780853031994934208115367124166385777386126286787558763638780196905464473479328910552504831641321552170046503297254046242674064294502131973435061105110966323538086239263131821013461662179588392040528400014734929129713360678008257745340252773709896372317361848775174127361678844195312090938710888188215036151059232181994987254339399910423298015206710484283399008361346984403004318590179582039484527410537074673715997930848526681011680041288292336904275150602758465725018738930437034746342545610427644376397923165728116093786118754189980913801894751686680075011644371160544648874473973652896029127873262832514747875849077541024310182039248087072294592642245795086985123856017047865520996692448789039747579716104898349345875365134840745999423376183540879859178084773955458089165619145344164240892538165268756385999288153514398674186305694063567078553771630669334082048674662128859675017648156395227823594511718183835702993057507857708466404142472626561954976631909132569243802069785920961670576788090633077256683724112961541130364887737987724861705264526468256148551093264865963327255078572671344938390707450128308157602286265552397547832489227565489442173503001944350531287280801226994497174830087606015432168867320543761907335346001390517193854823412343114855415114196218248041591028197495652429973589554184755026181774282825408755100442075120644285893181896124830843882111474697730805958498410371083377812749426777095045031639660097248620806240418982336373660713884578595831749532411031413625515021398450532297677275236638325715524518627589297639977292995809798203593675523732852845472517326961862154994839856200591975396871420174741640548018689449353389326379112061999115361939725260804311311896707182154483372492043454600326185660106620561514639681635914303635003742275422135885863351539104627679359972474122581131821848014773897143123601945920472000171914350982356954914154582098133134459550780149450564835937846939685390103522152980097206947041223845809624783001946334147863113313420390072465590367271652293245825813953723867667761082843445598836469250559384659435967209836166340682136254325844605275645770580707793258938415098289610816214347607425643077571917924239661549457529945213694650705888293178527198110554862984938385257901736941536921933928134089188721588568525450325220992919484073978496485589741559917381638116156842963246039222882577865947333059915841429081407785491798387169310784506128302943213669589982530444437281849944078613230087276688528836395865495950825215951155222209731002418645620418577645526735541946181496897018843131552055000948595981132401176173006649118525602178845320834407599002515146108279910003038013051895175187164469717593539048841262946208747699947613125786603840211552890882723220269414895945761952084412831139042807163146680029295722309232525664306830383109839624503474329763657776193082060141477898478528943829385723701529460314031476547617509429106834078503167200653489205937658019771632471253325370618862677585222204669538779069666676643874584903276625161024283998851061087832746995354554023539150716266866435825655309528338333112384513299618903851151429113471415166758490012425468180569047668906727796353541421333074623438470402718430030966356303320772140336507384430243340137382134511971402745916305553294963727112159823584967942651629927304759908466859089994295289710714159603422175637744581173084410182478585299171474691363740005363706785894980940045589979554976914580927117701769667061634427082670423495746435683812536318650462944542754673298814258400824215061194424330485844890776586458372476012505079855699201319493770435827315068669415878368022146075269638766259470089270976803651562991194793351911772423390794705601032738390717842156736953096961857168450381086111468806519025710131792163871944025586085325015431080942734074463534846399409922660199754592535450732059687013483659062645126809029455036457573535512897687800679423254647005019370442755835860349570396278203677607349525882460000406448433749826307119351009185814037534675887102201257783565267058539219570278730956608656560989598543167385210552732092447956852904666460545938198052614461393894043466497118647324489035569524942134690420550751850286806205039027822660654887099383435550020343166116251960595804327976233129409005740784267796398898517755887121181283050688704946515226218405475449260739133334472766234759165292009367765261086312674452716608166284910225343771087619614557400281468885587984613568767206554751401195404240151742651735136045244163092062798714551813260710906867902299368138730489789440757031775846803136568414106042049121813938641839953847832677607364969099721199208371572733560262315166661451951559963493505453386714154262455985097282867700976528624203924537699386050063187782880352678165038160694301568678524095143835010843934026780041667941915633700828328193343750124305106556104602354926904609936466886596779533089184258112278284564142193473128171418636168534220822468071182562686508492156196401433951968465203052946564616113489557083593529326237011079169007227816969757046572708089766917926519867694500757892848257539898340626838979087369275972276596683539777371198997622436012482171635812220640282261552355781851150192846411856545881462864743898104799974334623184109757238114968240909273486088283264957963502547835731082722648106239584831197371527880046135957353584154130418261784357685825448739033185202567267957338653229792018586812465000922390470879315664678437221700157051034524642310401028763364537579948009233602796128645377409900932034000152854241554025193585116722761600614037949947661057600873675714729587607740501026243427190738652718919550942913577247964641931150789725518497374559267573785265444888388000020841114963850509161981163755169310914745519087370599113315312549669555260653479752807220972069562699673938941638931852522683884426321864800890105914392655486443894965875617050826561559658458323386974992428892865744406671057732045464559170144850420817927568353495272843460396480050164674067281108338554277625110687951192919221291447615981837702917376660016054858766994405214525631693507815620016735102650535264911731035421906332194981670674642245743475365459731061283460285332900423876151060403982356679364388942053616300836979509352714123851407175961719059028551294708615821932938879012420482316473961752533811431283173706462372367422701767117420981239425057456692802437683502809602652868684739633259472355849570862163415452557833033775056587235266701752283362652113823928163039215626506173008918376893159872652841461268391999638408312080399688090275609811766924773698743987253807178961224414097645811106308710742489950136559660734169185688736266157658469900990858682548611774128345724107208177094338500915667625354896211515042897471462593590609756109411262669529959578876071699005484676090410781248259074626046500697382348197128430681086499469950433390573291294195900756214512783707703471615059672819914931748293181562543684410393542451630764999558702376238358625993279642263300343379113315406917737519157718894562805860382865072179659582291532844405291087086953650636366043021891253115286976847604260654660687875898921778092730150322914907325081887916210687665198915181891660785788978497449880952158850589819636774377491497918606157233081128636853156632069820827622907167514221568965202189905789923341607729674398373570694495255841301763160452908395708742168260458025671936794110141952353894799640209451533188665943210917629724574074762287393546362092745353354258496110140342788913669305498853641119326909022326377220960793288989658274836264027437575197113640405788266977540356397145512851662796344241042093157225485211930408629486110403279442079397494692387878774660706547973538213140007185206275854628740430012963382496538598894617084081529661153529340206014619990393431853701581157926870347768534811011271283145250059677448354069828444475864015774720777642076700529130524404551937392365126579062005936323526045405263775612065844375506393248463411236146848612013060711630114567137709388724578550897246049813344707945247122954362108002468985432149549977243421762614219422519028785774467155809272561908560548698122152408553651446880451496196077484187902570678910269557172170138002484757157756615128047208825955865181909611882809720325736889919754310285677423877834285894218263922245864857936389708814096953415446893215595122163249573363840359731267477238278398743367982619081304492733261197753232390903808780393284728966588394348193270892997281952938155034600542966559836070872911978873069314961016935300986691484081096171866841148758848625579601875228430346632594117862277726468850750630235409635288693234800561306179278917643697536102435276868717445525224640320864135583227763168111165196820850557694435127805563229200323664606829885567410041234737662830196100514316691759552050825223798525961336684904014635820956240437843250482853042064328631252644151884228550020698400298589132685748665565701429729509307555405017723249932481045584019405167276928005739616597967966394216239265877417000162090925573543107092810138606630987050607724890231127757605771137263858378935767648181862512955007881114839796779340572217107924270584655789129498689880273134429222973619155109627068617961172240384513645574666379292484559787227331369778762084471469651624150751066654443489453511763336153305609759258490000737851982899216642668958386311591662606541544669431238693106699308457056172358284451217376925769730988407759512747311901191203270519739352649786627415569827388806056151663138162490431303075653635920127837633427949204366420920391495751385717205309397312939593554948377092222081710651951650072261312591403006307416251933639028760159368558744737705434867433199807678818598565577407577203831961633529686665633818660426792424945923726309154896222056973944906201177749282287497496384076877408000828629021947944656645976073805440340007320000171393225457207159267414311520785413858724717955065472250079309891274152438259094618790952178961961980662124950581569845366515757896858714039196590263661376785775116270409384601801075575700098055596060667805804327388294899374949955027299570216067130827868842312000739472717684014792609279944499355325559199697799060173388613691639891877095561523912191536150666121767472611210721829159250237706035835865791602141958097155875798415417801507188252548238792584684694126413423058162451489376810833303881024804530566035083086731638191273355792040925318186080695030794781206565447212436283589198299948972346962852546293733812238241708915171396872946961729001493697761645490572671588516098788107892708932745556084948040274873065444724752277566385912374338741979748954367780978683790281938945890895019513319596958909893414976965692823931859157283020965329359569960400514504554888710356215118221463117165887934504355489995631963510635748175640290620560013466890101458824831612252249821913408908961349288073487886359239481432415051121213050033072820479417204371036067551907682571924965434770652602006335086721422016284296636701774595917149043258284695851929369887427177709788119997317311760519880948766327282153109454281338634644722588228751495190005491896138489083448324276478536394209198760607403859240974038477348325916839615386731676740005379516502317656685957027994732295893043640072595946367198161615379557433725027242054436366507914087108947458191406869507089871880966408514781199375470369804717873618261633302095462571403666774704528140249152749555292945311847767302751801636032497288510558666291509903884635275922334060960813783057712541382731812996723038051128413153119393126594341384526934760213117063324317366783611113417532058880584265965620477179468006183051896879637373813374223398419867782363113966625415279698274183595846120195177577749186886810562490279222209584754663788185998391341200594589673012672710497361881674182288770214186236919912241102336631953695669288464572441478886200743466728970568438341751017373941310195977977163186427613778378049587803441591995225941354402137273021039011581362272272193904936230131102454973833644048435636400921371919148128282613323305427254176720125610445702724530247286819450143494284150064870339724613959931753446056813446056459489317927730776530341635449365164194563497353126866024320403474479228783538815904278262804043087823600228282384940838728582303028275342085587536595153928132642822354691468387004969940378573533042173920000047160053971240253078379518500952364973827915430844768044369816377153079076972310777686006194647089840323402172126015367726382887232031474489334634287974948673408902518789525775505143188655134484427871528583226559479984113157076860223510273818070016549870147500237590175492169823230713831644348007888321672287847757448415783231470724110801804785932347056475930076549033444387838117244854809639793401921879889810276868970511023899559290890132369043326410258921890362993145888728830758908665219053240734943315851236959740761627562062274919464094908522674286142679844290490560820116205231342378126444683761046848459074456393780438222373293438706809491291812313081603412850966901286889326753233914225775822781837913681002485105595221453698644722444140071121993582057030355634987584146221693516183260890479172245859824503914476708659567531374099539431055729825348065155535991996409929605675287751970801822978009811692941769694615484516110765512027364241245463798143042796320208859346595197895311306588582203320829941457030735392639564621960003754641549936453202993127442370243001872712027726709480220774224974949233838653775483254032999464942642918264958330851853816193039470083500704143241629471577504551426188112365678780000578690290985338974980555358198700690727981757396378734469803761305758202797509055961499297312901043681607043585579643123245354867806985863921516780050312309687846751643863702698370945399871019906851849816609177987553786232182030921727892199429188210227887169807662863803695243573883906280126724988853763898402818827589604181183737737938477087824007845135771166593951862587615772905231912835828140834644602457152742650597675351353055588590051583298258372741193782286501808266189133732882661061297443723016122171647217880862242341780246795525342926499305077046561135406199697487805942755748061541970929521102718599335797521880179147324039236817625459988930034481469857094297716048186810109909832776292286945868310848269293368186002397710189917015809686159632198517074384649573954354202500095241477836487798473405878261238905486471160185848854583064064089481880361104941564700915070165778792187170412170000567933620755905963472131338324414608931289979578104222958539539386232981081131219898753061583258943926500361601839508924288584953315846982518604729976870275189968524131545432576964299601412114611942280225627763578947210124424312892019611863449585063956289995932396221946370671718128298352130092539483174929495308422754238135034275391878933354545074789242193811587699435855991149940672199075293032207356432163757400033622148526106186283502617106627150611495556517383493306188080996500672149490347531074305458970289755199973585685174610019416165135549036806709267266730130686997059917232849732074060457060845602643656719623129626714477383368101753504524526911872338288388573646482060835427854917463865191584558363265842685462228344245493811491607469053981712220229621504870696148065704075586608695766332955588715437282343565851406263628460929255455730353059513296178606541862538890274267956875111816310838664175445980304849951549802350990311618732154184883843590222714725810896255816784487679393991492539030119096944487257610110571492424257609822859656412979789351175862801992183327926556455222624533333883183606364777697685105169128946660028623159067054394392637154249562610525861220407885473076058181997835013603394804593859577566067708495355937859655813166426450615039018326749144004713533034209767693503787425984039548207967242569386679629983960855450087222456622548146481385386393291601141451350634642038283253828910838253355171075898275411986909084076898047794480177832636807398218112092728305635110132319093523124635345626663749981705909906585623795609157341706233838348576372383466680483180495129472962559902863225486924319531345963674968080170532321468329645409265522835522584107265791043158734300885209623284815589228609178537404235695509530624836578480816527666995012226563127732419782873428640053678159852113675075149429723271452542691348053182843882311295493260913524884853061073705324009978597163906205075299265690460705023801637072242470654844305166845215901901227536361810870681921486966770439168867991543277766170304517635129004606129891169816789332710273581220707431250922449507363415876160169840102668953680363289789512986486257232606307953506983229569145246510732264154879484806901771244340825238286455661987963077506386287515362665045417967796000196702296071389684338259857244581428865275720887458129267390729850707625956397679383816707253046525505607731700021156762120193172951626851771116020633562757360899956623275980400489559020814335951195615889824782339863867781207673910024726143757244472976297197343140437707580674408800148882376049693004807900509892525520902463342236559688315005224297427173169262691508199115057579887022771500999292431100348358288244411145642532303245726706616341385916066421676945461799592121839981015118651006134169507055725745901593812555763480733040102082110511035534671834493925236545073729500514168318397979076649292939460805723124097731499626585757630825043367605769783353887610773520607556184995054720747711215364776999165782002815380505478202173871637110365224469404978927471793969701806665528061112754767610902302652876176268137758250979229000388430692013538131542403784668053038361580691674485319152832786951055339628824129383059705379691406649591641136524881270450919274950453130890867161805775108647017615039449255422440559482951532831929605234483149701177453726064423482770189475147739440136854484472668687657704785596258069447337766891623518741406126612022859164289338649785501895131594631210243455463211297792954967149517080900238790928673299644712980798038862072846597220307304907619858013053168660162449004260583949611204380409052174873137297849009366107017616675856200585296231379015421048205664173904794756000656939936874047621870047175647449117123827593323965894644623979651716482407241242114884574061942582925702717264949186793861169370486201293503740888414996737802260799077330232022593321356199536543022329383104585481350625568107879723163455022039161861892880626008977524100635801018209184228861233529730161901270450030790101336088638886943901916829004827862900038097257106945784378245827397818093763170657715454747124424153757440533539603723056655034558455422819250470915012278065520058277433425976580828840244919437210203228928235766700027358543475295327908178566635443662365893998378198259870030798570283534854477982264338151655717892766046368651043757131046877777401338305457171253495671544766757810702691576548675715357514836649735606388478927016596476809700495993914594577719126673511263509301851769649973626880228062927776496095264025917024123202596892324002973349789241849927080293074960044085934911452824784896094956837778003549397232800465663273721471894853448833464450267156171376022078274836998510310045866492069868900561017599699543695539994626943811264090782114166238675697604006719067217164542142744755009015333521919433107926113617408896669061422792533713557401091532667549249634702086262030064700519850256156943803879439387141348252689888098682417301918364814540070005177713799632184844705470189284933988489396647498185947068439193506300961185662612345428520188078564972437677259144198980075410816650576929195041161862234656414653035677530822491896321509349933999051352030484690296730420710183813138747482807535116729982616008395739261070789699526163153530841160487011626810328884211475217347138115677949635488080764164704371610240556496107344431582268564832711980452568350465487088873516573736640215784317713201774116107586704236047359091114147528586591796067628855389916876038396847086028917154689146385486861351947430754041022318020657722096654143016871970514837769897337438518804305046079888405677387070659058307080937160863823986752099783049614487139420497028758663364778107973219433204738941767822971778726947959311656616420812859346728390315898420342154250308408658223498245599393378802591394331655382863230676109177550857725606209863566624285503805114014211470507893255931741070723837024373842017112619958164842029260407624728838751723722154014989730698802198026954365032648840164770864027245181599374345990398463133974533372203083928477208806189324601145558885401514119687169370071573512922159206459949382700900126842933450196433612070165726485035547938326946850636182590747116153198214396897459506284758544822358383597144777602745792430963334201296570946485895222567708026465922288532055048866451057944652182719695256471824445896926390399135981123595460830589038975708351200113618989933251757078857605345081926039152303843001214494260180160229373698877268222093238700241061478571964236078418329700257754725657033277470027110804744656703080386388129472554896136594904249103954509355636798457326138781759348450511818265598004932243424697533905908969149659782407349437563695854817490134854287332593091238147459280629225484150072436728392213658495814406567716329932834358498975699092581245384808497272859114237322268809211591115900415527190857361515911145232633056378785749104168096879230100572908907091396774095810204905894981967851919104019079425400392588771807702167012754770062571995484211147708583121575258628217911748917111534462838724180067480065160851711447443463871928332485956128167896628564809118536470697375321212764353571994179402033803255356653343328913334157253355437045382752355448318359549539612581248976013185937311227933787191562389830108200322342409933465153615319266919081773324389632161627064820045320104993784731114534575678097769113690186592592977827702121204567089262597874474207552811647750103428148736799432266766715004460076010625572586833521697163384711085683303599064071860393183796943009877949261883335861093507096250019403732994336951948593075446827150381513653041575056326831370542975114237277591349305480649502193157133145508659432788096925179475484757849849957738560161938911051817051865141386605691457050951975292573534066203911487018365712899025347832253389656767724297469760573126389509236611538204995278234379666693140578368330013750483101339281164418669567308895633330314130746641625472710270669509408117285932991177866677352490645006951395229828664841554414713163272239445362930241138318299112423373512587867126834297249102130946057071385741221884191005614199193996736861279421346312104775212363555747015529346040806892831912034096633923835897841053729352491803799946879344349395983631231494306084741627199562304152771319604608972090831697654742636723813714840126240288978397489057491792803293814767416497327809701364190222197999603510208756298547072391853319811834484557774338602390202915436282843023056459100936851238460311636684635597975619056515953106998512464980963589759543575439916169099324975759030468732723300328792575765143353090964562224617229631362262852498907346672590273009376365746653261329274061457708281310751146069183713842373999364862541905881508093431183190094760307001581523599715787257204452716651202867090211206175160348781348368674915946999899218623176122901896173651348955334592378013413341984373170957281335713580038310715717565575419173712064731001276653125965105450459394472079188518749104536794882852712849611339929402248357430033686843340345039672127615618080997367607237410625000767179694577482501664569753233120867117781014894844152713414925847167371299742010938455372059173808281693828213709646309924314776704036857614189319905060835291066725051636326472328883003057073925117931834926964671143246853625499878597566738268788887942638518945860059541545682202148266441787168545835920850387766909189072338738156365907649081489784835358877757958094299414862340138638758011443879691141614073934615501591245604105859070380869670786967184202881817402782659926123051093723986069419771712285669485110967870870899558871621101361742933673491877708548746604328710146810439030288716529740763853876426640902696689022956943917067952108522600895895412558576224673261600576636037984614530538759781094714667246304058145569000043076212104526085288813055788242724770195812446063674589148520959072692749243071469147248913793920863096945610746093021374737797623713650929957275073865622693049868349197671185800856321711279265045161840006136005601188904041373228089795852947205962903745099874181255942189890810093811690309455231814992328087897957976650078921218129208767624704664965832936426654196390167130923228723123585833165942004243963692059522040508340449084362800424433434856148683788623597555597892360422016261923761813247615223163105127552589757036869121287558277709828972503153942266962100968775268865993509588264379827493876431476300240154024127945898955858261203136701069429607285856580265956385497636288530961523904998841835927522047921323788065968687685684766242730249755961968380934193577914030017774878672680834381041189668552378543432131593253790757355090605647291114558394248264142548629632109978401730108590018018117505050334527799230368923441694306210632019756873233250659954857970171570743643559805007818598136052303907976676451364271730207905692695109696779868074110142572217260010175960687157946108653302429977076400004616726331268199550495077770188349652809193154223932108015458375436148233069428486611035378529307567924475670720201400435233951768606355896715383534726363717902459271234667705196602962751482167326839656189153857958745467351080028137141524598178478310760785968218843804319289982153822198333567704583397376341694796515334550483467679313733489030993934921199265478083551660236360554972022800950924295960707708817762373764441401146515550177855610540597866438471469678010205206620064939394962254607318270096771250964288319720989482451516830518602759834690520803126474514444031015362389651426114257253239706261970866315003999644589396955373300313662401228948623559814509476213463434153803285738877118932959058795586288377166970274702539202160282314563870879355339320802106882318259399414812490346066146570310016431719701934620376964196976224637082086427009133879627999693647902754861264808185671479049689643643121657016530979350273650970402570743538690946181609202873910724195404183345612311830755886856918285396752521672033329674280543705492207291936624064840669899437500328462373900210684192488254863594774279917642002540226562118103978830862943380453223123868800280803050283838813757086935470186866968111047116450298955861995466598936038665094999293268713792512700643508956544355965472775966994450669108387171313010226136514905416084821153474264728666787045757868483094535568534018452241721515394607152375555718025807347923325176643323582546916831712728445476811108435394196713562050848235485591833741954182836203445568516668497629026704534768546489430947522049578480883803506706468658051468929731493746990595089772537873953050360154592599941603196645173220650313433967875613459835188978876881802971266106208164810252969846740978683322189831510908615296779141501568047521188742593629281545603112948769020168103763825196893940648229910763040791326529994896541063292277351417097509530770778458681916143466722794046388274607423205924404002644386308625513400373471980604959479342399093079960886985601416352548790881466159174353892619436972295145992799628110831243441230071570958057971737917014610175151625464404374206292868461700055094218174642049950476865620095920036759647916742804479960143439482518974441715283059115740600970174307823441712002314792237638409451799597541865528335519144768613584130582568277956330074369286691151685123746890463177840974428126425188039607258793652555611908228321738520343295341248152091826825920630490877172397095124496543205271130043343377702587925819928395174139025455823999475826817984274885758979898634394933926708575121410666443278245168284795523110578111013317952340154983662798971020958283727840025701933981600857141274526369069987835320560482617921337567176825738716118302917073512574700352972082873996082718157503140979728594743596582808992178109256863317143247482735380551361426945835768886030188940268108466225714386846120053973482149505524986049040509735311207900473966493806454402037072987384324806132226672261548530284216388696222217626739398299887165831230794384898291164065580014540441568275829248872400893001913274892647894484016188243410401424269932188387378516016754026868722376791852309799922558475954546089303461849015797193935921094664993825149652705299687950790247458856620972912810664756663221838401204921290591924710434433871689652868463158369874302760331082339819785922690826881240864162174880719222736638704434312209809540752424188259784725846839304071765615763952031329569750935594138002233790183845380553358992686429780177722016473816035059739663159598314925494637052825804201654098403837457306044411404081754717749499989296706737341380582244320122889342419027004120284672398537726925203226654200783627261153335704873842284362193088423239662240424465061426626616729547713828602843451217662128985759204799917180490638560145781130560791368944426157259390090642921003913172732696881916068382679072343391978607078327884558949451460875289349594935484192416430388058770390702250320247726168370123896260211129843900349672891290516891999258780483026562979911441553387865044918651874454776431146522937250049374007267513081132648066021706705300654450346170323192848918205107406107554080156202478371827229570959971650145913508891632879018933718844716460994832755833398994975260696701102777527187326367795104453140031934388245618339030908527061224155190079914819237962249555661988215523083579625601156338177089210824515284032689649290304417177070252095738026711986537278100553963768594822482769194211124087416904674590057449273179218558591026718956340338204598305684249449114687102962817650123322005528344182215992740225345856940160648690999387643712875043466010260207497051023017783735151069216930905042812848872478905548373595672175170610108561454566900848037399622816163350606686114596452144921604099282878986766870853787214505992730314103463527071024546190350595092971889829405305866513665066212500136317740005472024582472323581479847293814411762307781501502047645407686296503216029764066644577419796343511540094224839778864097662891091785329346546065215066894598992788862067416190718620125819012015285221260397869020305390837161656433894900166833068972002959172047123807002171226562335451058316817809687885756386436589448134526349135120613184864270932292298924078160669410436276547764235327656683594489663563120893195352555984237245987311349734360524500334938274987806485007856637342395672822930933493405589297565763205236858563193118820249774029076387825988119833585689640961130649527781792484132938798323598131976836874008897960533715648040130866012634943366915113292720267097389851495549523868845432052314055868437065642075541288243442170476594538025668111962078069138948284600947319403694413392239289482499109005965951988320212551789261670023717412700390665686089846527512041010495268706641824431452496863937994331685569716570326656761377739984851198550197120429289908549838666607008600373997144997026489496045180027911825738263398008416625873700008096958620624225183249319594439601256223187928965597651173472980963735194691128459344808236469277515931314652710877711004228853282960579839902376935745566480085121821372976814767427591797972376660461024959583350193632644456866446095889129983919373913690589108303770366811296500934076167726352066760558060518428543350331302006893235389386191940276418735346324176617917450032023247773407125736943826584342036451248914044487096129118869510696577898665092767947340947830251255705148669056780471437046815323866941508660746969686442199084118168271929539091137767366685931592718239864499538333785283582075043829474195363497012157948033554630051755882093296424233958410234035031765917092098234936047684687672737230778901837912035608092313644792724223560114821155331378783728360063862335740843625584016477887134715565079294046110435312927643702113091884541730269129693657067338818833589870220507213912181387723460431305524678569339037810627183671156538495199238156680822584459933428346275614754528270556453718478391783367230316637573209097413005744735250830524299751781167657096225708969973515773075477793335747045493677055474778895428265351854560085451945839388911007889338996789894630068126811243611969480846507795656526282147710632411850515074632940330504024685766540976642330603271769300507800474694954619768303893216522149710218820211254010422667204239310541041827277279636465383124918164647251692301562207233362497941567297239968765623392013664251457726150870890918329813747397464211326088424794619691008466811714931960256664977234388182132753394995209892069645660785978325840564535213652780725314583338802898724704031817587572851901050776685477524383723357985619511823399896946482710826133330770386825772548128677105990442543443167040990713185434828938499821900908022621474670515851917912228461743945429265781479606130558990037678211141877164842232061539311488567586002794585842272039578564423260481406544786900987149666643091014397463816726375976187353967404126937385600673923427174531118219730240187233107338269497765422183189808104880586988762333819646654236114583440862214412004645395628733179695820545806413762912703043187602012568992591593952899296749660669241151559475314193413990875550445743734258864426578521890509609258132484359982466757837727464851621527305600229352769518053836978533911382346420280472831554458773001081317969590951539261057961228476097513183784030493116220437037850055544486000933025048921316209497928828512317120238880673514635542409488707588372436491819091397578028080506905321876999908474810885112805582937185019442850174725648423159227576230773626988553759384179731131472030073129709990568705189334436474228341552629109556377701480068088994161332524577135474439894995108020063372037643186744421346023942446774440444261810350054656362002588352994861910522884198735689984542785854165738825220933033661098524395381857751867106476290126775881905256365958654913171987363849744161661170080640678439300279556169430210363781500277204452618347343960644935716506288797404042216652986349907749810864193509664956928362186053973344682406910771772711402114808009783702227304363286191310410109877717023926646238331733989889152692356393457194045969127881699239015372972889435721183183765243933234629128154572939631937994498694327719157911669329085539362185075233475183458879654870285623279225722758051760697814541455246831980101460713403896645490897235910558474766053171540471835295742975268514718519235042016457936700275982944943874722811117007660368412281275679480366406209719790986505867362517272817607784110014424986840017065027541009806241967445978678478165688153459015903220966704214589052073027804925487758452891312431909420647529402457387534647310645567539244378649095574576185630387170900979686570405001232666469616530649539469667908274819950794473737008592220447215184664093594756535653736773316948951507536253494238132926747670209316472908575881112958762429671846076922469910181654200002065887689372208574847634567727106230220704501710366196196008996712930804177684938949499102307456299506603924291367563265166495907239476129885231629903737086708379033858330460266865760193414561441408675696000437136763024883581013191469046060487561874206907443108371384312714837354729576922587349262180267254874320553385306722364036822343915462267648124419549794624746550404273773130321407103968449608817680394749837079781028035491201761989966408418054566394868964747517734139401901517146902260777997500772653325582624561454110460788581339451899391785598590062433944128007260604184654208971643344555707307219672886765227064443636250933445957701285061298242744333720485942006520825875356141699563480495386427690036128309734753141165471583425035763491895692938984005982072274990183434827358965551664447279361493082790384402766356379859471480724334039019684324082839337807489759851167971463462166605066188018554528381799739169568726440621387017397289525551851042573565749898081910326053296251069154142390490886254648331873179546664535638859582214371060363755781247175022312575081509032849547501229567931453804478627066142892213303696171181514140692748479795066087878645112195124218368247855102348508907018578464822497170600427480499753419664635228424642354355315400064194288200605592683698998509448896392791258654962662867418474491978419611048117370103227811186392584260058615550571218200552513841841778714236605554786693543163219699991337249469142609530920427491263610548736773084460097129977369512801786296200778863402197157448142563026017325420598702927567845670612598641570783297091709067446945507402657622410119543841150041638824521297475629613111773929399760925099572739139686592879419143509878078587352245248262582019147406628847027793743274116063003032361427517152121926167571398747619843345746860733627172950985278833892889630505052021064855071965267084088258862846477160683627420122333788096099084827226352915115172045888492828726299551532078528777312991752576466138866071471671938015798634582753426678848919395876126023159022989511878262765477533883189274001272579167470361127366145585655954706424658351149443356416026720990516837637175911503029612171125754678442023174939766486535508237958269433792331087754815511787140826181951804548000631870104217553101324656074858106913545317012886822315722280411644400596555632730359433638211033127903753386572847120108293999285005376578057670282303362949939969579252071772447002532843893392220142806454857298040415493614935772118984894854654462266357256699753574842415165378481844015955027707831840156039939384205381935191629359687339241429193625149373209220234310438165384736853220250807966333424178473767646612271403468823638520305704475227361099927922412679436763771797196004098236248479316410330159675597491255133559086574583015279743524717938975327321668930549450445690675790907309371644095488412524178066962540017963639399804495020596450666267089795771975991875056782483534196401967549357353011729394348701115167906784112425703971874026475118218760809822777609349233842595900955257417880385788181230376339879755764811213315481302703066211153484185305788215145658760334671566804768248570255083611994104325988832943178007368464756248488998525519572656511874858347707486494475352316673595630374108084862651076735734025710480012803024996615618981845842195266183529289304872148434814112202449777969057229351443663809604042633491486190620224747271083494755280934089300747153862520015231429267365809176648605841849732277096084171435489210891214243734541304095292197848382975209141586770098897339948376955393098423207142256915452148866001715381441327609999521049808076642005520487814528338041330775754153420825189970444596996804094899363264512575860875418751673760207922983509209109422628785855813730164971478298829330020428579249012715047841000788074721678443493676641941331428510495471862808550898029984267393708430169147371764063370176664694121610624168962602214852135959218149480975121727334488043930059859108520775143206140017973255226087413122175187530745099888654249442326073585855979652732323625579320368512868324168166844853137307497428056539629387071147568569796367844581298731355774007066190008828488077672316937267346210673601768511631438457377263532287244393700400045432375402136348314992671420921650664054441330011842209404675439572052214133294623545918522614790874742809804901694019923360580017291233433061174141717561603946395372872916466903550703479512976100984480382424651940310848058224735144957007595766783250488653546459366191053728671609265885732146575126630318710519181149509645164420732105025416291089157371959267021064265687239802285390161019784528599895450704726835414286810398595871559961752874215986697661105450445509348720469017641389451176814750863708973073135118527597375427404574313442641971683336825259849651555980845880910172006134017055474124563465459735189503539177848113463710069715443623572130615706434566916500345011684954920180399637895092509830219920287891032013197798300299247178083766286358109683617066198924727268738392393809979854961185428432636963954307517726625723769686142649742166731206164508531498971557582238601682394260668674418866233135897599404219715392783044410371934823352235507979644866057796325273617304609550618478865308750731491876285709653899660861349098661713151856263082686861984055563041178447338398706749718736131676472561723570084289765262777428354875587654070950994605727216283161018825851653605740477485845805468581553264186641967400814505431148818245415111530555653061183159215758893379331410158085654584965862500661651174178886735216199209036643129429656578951166792923691247641143616969049248691748457958418219792850091292778233375620754772573695218592212365252907134826976632997049350586420166509277872763182242550552292948703959138321660485959639756838052508476646503761242356703058140425217148172146251587944673121776803027739883554445546028803635547065511242244535767892455942179973994505490570115079449375702287411728198733529809994597045974421936287101756711558749458058011912107125288355841282179888428926462373339934258366860827435247406526133244360635585627922091206735393579044585045132622422413548765492241539936833251781895954539682280354789309888398253928829321648716237393402960739689559071674579325112776003697131296322526954336490755097211175378684240067850145020444174712362691725884159475431542738331843857656680013807048178736619538959748302125082394381446736957707250118946030387157957128964844735583408780749912558209849976229018384623638404156484133962267240646038705696249778128749148246877383082488931024520495756912466738365661807236860489639169515371121384746976225362859132406112765667274709613241502129282511743387595567096583918072590576971815328398473793096062245317174018972544754686569964008550197789232817364743600676750296123270077429758410900928642354959961504741975289758336037217243985586980006142763779448764572393865929434167863431929528590379570016291970248663462438287813702062283006537539844659229129284434427335395364196908670783744345074081922254342743059748190102522223614500180766362627185008812304445780763524993259719998098464818590340448739347994484028376507683058000880357112233359383336974723723257008677413989496995591707310801964056111444295132624786768472894696026246601415005163608108681741289792067675311656101197208401836350048334945854310901336742971061013241953840238436580765983013333762377433955191318053607146800867643079149314026034916845068969849778297754237707925695146118342404189253619740767929595600154043029670026291743603454632197892720269375657885863237962933703521169559088603460144557397512912947652614521901905922340055677060167086239469764367304170432494186361732885602994539734107241094166041709587352345769410462602637595081117672878752878226867428157408087911471543065895780615539457512009722321851570763099089183657917095124948610704040417625996994818071568568176166322472770243556615564277374883880222834932106769474269606521457014608422765947546199969622159896549885905477454745105526627934767105848573916786254324252654457857899775607558236234627660827898084458961379789499765848397851013288862815407314340214656192217810448566342857522677851881402263435343132706633315793537044470833945314827259909187311729947749590400226980856356765099275374016303147674535632050622559914577860752204486853913691318499785197101890332830165007578408979679283868293017541397994076486399903550327834552795117883675699287234190521897568238013400057778591776762696887538722988542245466278392524948408698658194672025998246928649249001092769896472705714098797593248234876367840915231519363447431574421672585259842750357246924692072392900856357439161305738213834340958339127507801597712340034528555264828733559383243172602427625446708060178147882224868356421405471893745715792084659807655821678421914133327975744849978784664862064329581725192761305186289682200365722185207147826130264213780186188602939979373399522275955190433479276812366872826505328769076945733815297100166556151636502737935643182485009981483833026399764645784972491966408036467372338787287463457200584399914097842225830167740617349842165506762315981046144203235693878124725056792939222439982529978411559183618688423605499187344679218259463533682971520426010591506744371063710374301013701810102623168863004270981858098101982156337943760541114092655484935834300918899912730016251018783732813078222253146757096442156565339424126567369731195938779285568266471171008868538793473876802196146522804753424891340990950230227093535491391032319457553330456909810606287983628156699249176565478110994388159814205514351456827109484878038757040037171490093835622334418121668006071126350251493832781338407518868390381094604611301675743795913334170166003400804774250709535650389625667905352091087807103633393841713563481039069662245956374204970807160631215506571960435618320839730396651650322668473487221218142350278120934985430890479297736545226017101340680588893216221842778714035735007519905222711561093078640661653451106969612153538803009540144911392560727478181255977415646561363282580152612002250360930796060360515820417216417462867517898630836510028347904657809693197625377699697360331225477363625283919377270333674807837500351839716794169214229730486736059614145917168545614721834117786861394954650465804883478809569749932791901564163280433565725303296332553385276404288238227939841946789794057323149184784905553846317112436510805470892609832983870126529151100869806348212491797654428552553171651649214766181779837202781104066630679163867242812624276031455691561672238378056314066053595864039809167933145784721539622035352611270152011882529745041267336299633903979222701854530286475495017496742535053870289109116911862135493089007210790853789475027870317618463516842388826380505197447196149549769945053613641931908363142795717524457881627521196469667647879390622953883035182955685679366851992869838881215299067395444987913209266091554532480794701179604805486326867202912955497705455822312470999043515230334062118415690907362155981975222873576421866089141965268833647139286014185134420517334312427040223047547906958336397071868105535804654534701052551695875286207409427370404671378239577075952633421173300724326982017008045489044136437501170792703788595577004066353097784174084810406727773051373899754943254624132172629760639277878194594133582661971620612615103577025138333829529249676455107684164859684386501904351119197777278624485080748111538834434836327442704345448087854204047456186285246744657966211129292876342730480108875075576017979067980042672218999328356617131997984800288154002058168478148333661547593627384315047612710500782876012320560601529715289695429178741458359432208967264235978557725101344174889863460365575216238080990347831385116487577430646147156759582849373972457253904021711874119338244193291940102189880534988786488186079706345147755409320745208158071095186495976342751762617326595463414558924434214701348423305242700648493839022693027786626990250826865962802347916917895537160901592890314129445572063470246957814018858050128773619037496842368107173166761675330383771030018199899611074390610980748715774358486824074020242058441366396452405172935420569902969017131157352025776174262709770298011256943444368629896771359684724464173528109688625305585450820548047567463062584333311884579713423632086730935465491982606061607759212907430510522957365024716204142213438842486691083787261430564953514620054825765916887939680685526114198297802918871769567115614512376133553256782668406652871258717374337210443772096111750416203231351709129145803721718613994534421495526458185269696744029376105375455557250044024243557782600637638859048379870295843646752568405325225814620685473396546606725455246123026421656991504323488799295629126018048494905728838517843198291734299003380780178819057385141130423916986926946812617235106819881984864586645183022377681397134980239536775448115165437037325691856231831297306512014459170602504240494366352320939720665621542066236700290539255171955113674775868851830864540327554910905267515811683103183216627910728412668215946537820622586431833635922770874068539215769732388063245104118807056761840676993216152829849853586281651120063145161720433381166601047771903901728111133806910371147505932928303306816397583312023755720864591195076650904084143250551317690687106493743151969979514469963505968349585887353687566064937975729430610359333442866692091204464473797510648777094051674225968519166426690672118877032603300669800668497245954092180679472101990741838783852035121983972114973257512940455337430121826122120347632560291420371468601714199887287190516884998610364436378873061464789029552137660805056285309369084406327351232593044469520358527348289841395121255356840451355079807863087363407521537146911105019075215581935650059315555752780402874351509088430498209046010256584396817800416249013748372673183908785152419406239585566075273119945275885249244191936471175845758732100088389130182376626439964963255974748903990175934223240121376084920039991474893672949154448733540533181356649451809590427158723273745714494233909386813703832959749072705406299564377440501540985527584841716011124424611350765176124049779913248090658414963457570346597620505143308388475820952018470112564982492892371803032180863843207715184957109122642853107677315602986534384841234073859396130904252166509772221204758681672706565215281905769279524204205886402310607915987640342532098138791517807652952315586534438751361349819562940439086872502266070976219042065236418582633997199872617761443989877127953458684435181388680454458755392911162548677271864477128481394843159390957583005237486341540378340909543040031300546347427561873785197805254774621861844604224660058942202208937293693619432064908262708681862644266799637772897926478561993094857070324948527706754028590999920196600032509904814922916928059471575233707463723038836307651182113843352243791730639024937396621280584397858350616243422524646478578825289753732731700510384148419204508014414495693643587732523256461583013279616746283298221534330365164964410716881029858742697279635401492194445963638439228146047480156232360740092385155440258743527620866047621075563666122317453472161500776863648492408262230675143904609659646790819432620214669912554128916305952362309459729408512693357799728343499405405689083275899961321166912152953067618163750658636516158846987441111771283568861314622683456833315960323170434757889726724113529881254569872218085905325087151300223005637778332250150950070801507283315975219543688410912624796981205780221868455753813671508900837580703327638800350725639057077243303676963604713685998852451017395957045651568144530282972810984892362338239658957803025066331761662724164677827557972515364415130914474170739969947517777202121087915823916476282462287156810102638886278388269525674044538217416358910089468037274043938199751970997214132764180749609334575352996848449440395134367425991480933543553900814997771185853120412207649605146809116509902673405651013508803519860431907423595823335631627639581425294160725511021809471467493658010207693529477439112024370077929563670999923100904450966345460367056357248100671897430638120629573939502660533814154111980488410830631304619818103371039381906848782108746230982292535927576815244190884333274460447208341662419468494349417882022258954482984454490043678182266445146724270906520041042231379519279675724929358824268003912629957401404730073298881295957794056710391834542700187665443049138178316743110869082160467320684456542576681831691604750398720574637358001752265605328974170109779012206240399103920025686268639559961768455879140191758859970740907949298919486513640408942998996015007375142333654813541929212810684686281815921298038451065520400973486227159488471655208556603462781046425771558517887210017181280262955705412414864348267652837765008561530992574486249504869875428880873511923142614683981480449999100159682387941946218544039371214912300876470199237091812470815106148753267882684840829087439818186771836780364839152190221080655922995052493632626342922150919865670512390741877101153532331429743781614388902234282098698005868257208992401653680307036037935531120859996814987290481363480279911594163369948407379393899205343433300480827696520813381898181454342314737330691582006444584655992836963974941554879984738604158993146540151444465867912004015844242353807816723962612741307652587465902076039929072124232572350732605041920548408173846214379930571356615124146598195190166321294187546815433703310453881696809482474620508260913983207215828474730468312042931351921015727225002261892717349536657541377487742400234255382560239582762299692746001076839435943911681791825608811656037787168408807761262592991421763229465060616647557178091009955301026318138905422230756207402052656061178237877804349988211824553424617559701108248196796768590185346691352633014351935776121167146589906365231825111703398780693475504458168949607323989341141215274447900260947611696842887353030183791009976741234924622638997014188503671752668972544246714611044841034861777561880782713242086476659638104310430704137825039911487015832695843329554198302294798564079605994582906523459072554227266281551470651619251858875120078272192600796741865102074009579446544837656701245327341064976133194774872068890804075045267682377621564961978580578455908676923286125084895330529658141052475839158248518130126539701114605754520319052763803252304513751267567191774632200518909588964578389100625310562209772382590177884370074024890876908322926927808240404435739161314891837278435091010245746024572378518764715115246820809328212337079264629887278606432889805483179026507441934953701107811816262216297117998638930432455141270533737298763139362831329853794853753358968128467674238786678699372990659693649341301451475763907508101563192642707178297788248152116447082870766622737852649596607106989874252848088031286869647795534887700807207238045190374808700024412594700075426123718807393605736316891955129427190567875484451209616541882348383158626263031174908951286630452827838482365562602945266843715807450099418023827929745596496522904897120516353333532723089455012119431104764225468113140099277866536930266949396593893169166898299763644210510376218395219134957297636903891861571019436805865931296229864684399190070047940867120096125348988789902204723156669303668235111173714932447184530207153147827567475718433590493879360209321622925664317493587389783469700999204992857694970714286955305150058765543544831234193205059031154721909225496074349645531004671680583023148239325901768644465851689763608723544814892635189273866717207272211502152670095182930673211564792624817718776252779629294505319173755718656739481362896817103376915390195828496334201652449868406026268258852718142702759154789987976558512722172785948488098103872311387018762901236681066362886716327985362474052107168134024013966680960648142557617415561361232226193124849448257333156673144144116820656796213038740527385251246042026881271384716339511510943160409105848547613559201640381968582539818719576076393479514475053370723392148229984881975291617379113970532722875377122803173469622251479383905381453128273434834292111323697992621649544854456470011906139203713481417694565612189332268017113279496420005807222865451135277708472351806722024453151752263127483677519237637135452450110899177182052188672145995948278631148219998630971032890841443267742053814342219750401620062935254340122775738231335750524673006690747635915899131859270624946540653727692775899139572584452903942347538320907626327392838054806506578021037522273915151332081079806321513692308854774774294994290757376531561172134457559837747901191935009468176438461523443287047409902501803108054210310873960210322388703562713779203221025267636691877746664724591534420015059387552794655355707371051608541464084590824963758396586547709523013158449796794820395374942729864263154210420116869768497757622200647573418783727973493710820656869079984796722753863291818704574394780484756052009932545533447744434992460066373585126044531230155571312316434353609347668968650328815788851433870618780798361912506544565829132644191013654205980313484478155777416050498536534354436897380374674281096142119188363267957989100575067409833910684250295174547859456533373005167756249788533871018335336381284195545947631547437179450850429726951876912027455378447502467235452911627504009978364324451915008710780803404070984741896268559175744086556567913856654467066358695106442109079164337164711500449703832631197707641346195269064847677310084444718405920924151064410604179368023301675448253069680189245333379531874332389444654319606188281348817067255007158582350761638948960729787724656076118334546436173404166394782666859439559959003424119588124972514752238532603899131646288066643268684234051254940000247797423211288587130368749603160780814333546987295832039122407154535537354962426838385763260121684738730742170409690954038764557591029065157973135128027363621306234454020866611497882897232943335603135973120465804755890265074327991821884433387703655815694773133694917373448507586584983321918271942763934035676116662027486444207120760182418296233616023649959623896129878454300476737771140117218977698536751513180509626580467689539181376096234165741135917768286607898176099386095705349404239626556044301143779657756945145968283309614514335995029049742691176716828650704687143835027498022950619597351144206423771375520477584175840446550727413168837144177743560928198841162200791239413880161760155489171771721015144894863174609223503841118808892146756632533169202116282443182784190905417949560545726017540264833958141394225448696546871278846357758803505051115230035978155323166545494855383277029106236356011949631257329313513022337706401807860690823543097850334518977962348427452447483786888127234860618813453725812174746240541679420568914656513451335923226482204583475088659742856567420964044501423679098531736253038377929787420483835560831698135496453049841670711482392513368476104567620513564796134956857600998064694945653264162024774584773769585367484529139118674593590196208959191304032726018185002126949071033409850060617159262926788875905756181620056366601230133629785204436410007978947619787521494567943316709109444272879783063405645555820500841193031109152877137363155223969479555702663510136382209339538479544248845633374046802623083206308280734630614523304039930461272310415657292642691159515582462728056469612378635886344480362176638365441457649176431131541689235771175266600200095252251894080533219572102373638017719265783556536405868894356982396404070166034231572062818440754382433819346804296155429204976923764290048071844159084228529241141015295472063913782483979786493129753101097574324745276536240268121471234451960098892370570619300650840210149314664062360677206605902496599335272004632106954457537292028629765744382549383137020152526258533417177027982997592986533666625534396300429499305207883103911458373242340483365427400380413659571280846328152036701448413036543199469355998010142319749782066326164710991758917855564501819577961248464320420228084053229430380406305173526667918729261278543210276344614393840033895454161022327919008713397345754870655360127005022934414284424530855166239454253721868813526196989747387542043567396589236947380916403599561031510085287911952494451897151424805267786937831770796236487436202471305300522573606984448791486996666935264684173583924367481618797604188294530470363645804639429265530975124464536824087630205852526222500825896960629851482673020845661699657223135809231921654610931945173970507143558517480320330685391046294821816458121869000564222131179810602054534411403433968041187651378260179962812344471079051666658521269777811737573628003680083100879894698390004398790770005698569362081356740516348495631801131607184945190950386013004890086754386574799327209474142992520559700569376063651534739666194318141059224122059641546760647553571996664085202054988671112634112818256482335805216060938492438623647417033244903585645280870897783648127454157696340385114412871105691554043122854881743675651115425574600339645908870348201652410723671431021234610588811099974020213185960498027808494952747713085195692176300528901819192409070245352864758931558072189838622228921711131349862107104723554948841084848476577322730388426777929524325867661913500228174836059218997366409638048807138599375224307503937137063349622467747501990629557559380203379500143410993101048849398168194624700953189313989577704388345368535908956964827896016794379984234048439653243827628194009853036549062826279519742674857160578581423469828738237915885397734859566562645590528994724861251295714873259683335154440797330708917312039155488079719450800482807411943527667176087593870413734435815617894293649665395239127398939181404991067327550472343479188702866361377310722652971182138963277757269518917091950226064213642590570350736939377732213834046975311121279522968335045347845132998526738148337257278426613456447556485705565318646139653600209426404320294660794689743935875569283881024581706443623423039172624888091721920881383409408381120080364550038089183529184881066151422701720868855204673605876154799991992462898958763813852233418021207399405029154346776842817703093758053586923174744194639266531699603827760706641314691589975015438468416421773540793373130224087655378884366762317153411880234767384938046330718401101332788332442560289369226446365374915400224445762922374477768576450039815141806572003533687728203591679160698873104836188758347701364555017356410968822296099851027832040210587520344917373711884015675079424851127229367466342228122890595919015691494899618186843854118601034904901234550534536274782801511938852151263819338908275059925020965200341212571702725267724488356739591395110363814556573778047974587924583388052901874870186340135082392446127516735423164579859406967870876552544210877084631482029440329620255537358861011805919092239367157034996931022016845210194024681303468614057862568821294778385742450292706535347360127140300784076526172879261634434886424548961788253997951538000215823676405115006374733035479342400144446575254990300123299567788475328587512765528231301422058975611881088231714739739004601072954450826674292051867281527459404491941854701415718790349151114452219432222287222389106857069772970563852783697701037743550154539894469914121307930981986672191541472032749838201149641732726576189902736228662327565913116951438459704024764374678360471756289500550306695165759237264312981066857850540998665116740245421029683171827273304857096718818069774080030067619429467186677114838750482717981555588082224338724075758661068197040409983328095208004073418361865688320075181698917535287309787994365538523870795371401102140570608971564323494333173864858972414832253620638054284228134385570043512922373191135375124916665798896407102483970295681338032435237469647754044280770329155131480043415502535240017359638313927140049852125385606877599059210145910181211619414563918664015045281627277392178665240380026591165345729445254607893621350319423847971191393876136042659214423385624681737736264504586090507243400077904939664145703809134346530534684482448782461394094141301752642683803439841604511315576392279524496214546969230791194505768885965694480558913979430506069917220591519156959542213641660014711307172114567669866633100426325507783133595598462538109533569998037473875163231528966543028884778116550538136305655839433708655173120017273387250189652685355876244277326391920329015480859228101424910499713400709355207799845804635575271391402299892439427611298738565448391587754507525252975026647871170654631303144260039546078368584521945972069316634119727699446168653550135830594620948970295061773207713919941185154241995090953513969927203512343593138727681243642621746153715388971334829985138976342119464660626551755473865986223664621830293111499768520359575455345304850103777150618429177648581662855579763916611731523475813414982720975510433012710699552668250256820268829467382824317628374550378553952123746059048700987073392482774862754578225939354389229220385770690166135530514115623291604452170950288401407592697304539997260140064213566320650035260426115416929959641936540335255502360418850864170270992338987437057087442067741645099035558602247207291502205562399319177364982106839904649210762518863026763686895138243585537237112120507352620237417700646072718875327527481565279789855267481047517089577283583702832368050137262751907572654662457417953512808540220386940910164046599834823198074945087842367018231035467769627879906198491719253902959309312743811168213486671505297428706826907609498623201258910577511350472509420460392185715609120248686584890913014262440928918236257077722576501246723277449248553730749203755316631407850278198524357408082452897313350334923357386253658410996421248664795325308505237021185849437281885066925307591414836255050658515826914602163625816437801608598028944689508537870780170475926391771876720995323226479047317464602008382250761337848352603067359051455694752045108835291097769988017448635533960092761899380006116527696503007750144209954097899219623519634902494569900219610101815991994150653738265471441230927684684430002551232443384006629390337363799384984998314422042358419912447815191353591039874265270953605094939755974360011260495607466729957682648036289349167760242416422518141928740688949842401648997673571947938106839846134216587494542874699287893350775439976903075508347015513409755472945032707799560664059212047620665970935963010332970003807663578148631352559932815391738281047130947848614628093166944880929795246448438786840536467086464877366637812726278850204473016719637058369633547425291141310894144791447336193213209605498108870197788230081553035393201819680038384960363392886320673715688618783118024160288523546320210203696286095995728454008345579615648210614447396145728113155685715077658939274327152301064545328948878798029087276914497013115489901777303401511946409367697592001386240139415559812485958614434999567615018158751917086310957110800597146789020304705931197551469733773487622559469599550572229352248329402083163737658269761363762823554536977210994662612285010821664316830170952237123645835068945258148455901496018085155561483739506350071266179741486949319894810983162663113462014343020574737261150604989836245232748061295408392984065274110212327102197425924489341529620010444579553292334566156363915234521815195375827393629214316379753024339273424999074638531127376346723275430729571380596614805731435230045576657402669169888066072297440275507586927890486666188800500038002514412966885509481803080619503452013605845244945181647566924596742353182687401783902131253651577589024820878028005062685009623048105796057210904963982313521571293539960503903019008434970265360556637867735596859769190673870400399732674242752873399955486734688343870255710112059232400239096533617224021953122205835400756272880990649706476446617965081756252246806352708920674197008905003146865281376089582680597868675205636472676696528739387542072574825165203710451472354424422056402600727924640076606360242547608628579421764590450643493889670483062734062151741085221687322731563831443056184628787417132681131558607986338242132487847772339613240248780884630954863218721297784808569121617160843824590084156734534888044705005734541434960956461661480097348451356850799676844636373441227051432353992818556753517569931821564370353857470225768731650494877136800309194860670452780758709590096709602598264216782853069306087292536093130594894696568907504112168185443537609529499884334928961390927856097424385246082159479959259154008222989784579715018240592164308227018825965681859756095949083016149274049878282609456466062622946655364045912874002581459611151863720192914989369101163750296245019822521816850700754746042676951694966564151701877172811563548949611640294068174871823595824452271602651634576757938863652666069203285732954231026414082243422442867363309492295685208659172576878757352553216488748666714477509247979467005871711273037195462689976348643684258465021092771315508239373449301051001723503231702312992197051574468786338111562741633925833709168383230392017033343200635576093929102354459024305499806844262427744712926931593654953624073505212594249999726174249067096822934109571906173613088310141456556011121504131148133230091248910732403480179762538951454855706194847035713126516103339135162914617793238300994406124975156018697582596733138466129759132107467754330083905052612556014369873442682339602551406277150978925176656916789784027730484226548628942653978281801176703677812990169558166211756725759219041977654322568990322963646192649243888436197162632109189372543987448853920291213844945761643219619466007303734191034457515124643767018960096775199345151825727943631481686721584656051237026627744757704405209618484959550075582880928874726075372520455588257688168800851913817992800137309983068600719100048038441703086561654602486322806100788311025014805269944706613812554688568091470404406914196543038348686782268795283631587695887786716839653004974684164156832136631414302812184279868598964954254343030431967471070064558215029466775792514821993296062139809507153045773047639473028276252898876233544324544089251970162773050791236055705540345186660793757504537426738748486693114411336536285066676733737022302013407833696352648176394774943116412500592463272963602985194017261172527213642096696799402822391573215161902243531535100169805193472877872572136265414213321796540684579798342561996644792410145402905070377157671367137482154764935508184487193452658479753434719814734849980377290104842808423299494702154782252385369691130449967527749076030857281593558853439277933160320880657482081529045795428575199872887229873066696657479227858149839093845837031203339578725962477497896647050222687278345076868123126704167664849361897596028155900503487264806401540950212573373249973608429317552637531926654695824758529603574723710073369133601548199850772040336100767822375958517712820583363406771988714757300930241695562484046316217151687267403987604234688537151923017944850776893604196581473555254414055949691271007308764927437323087538205150998387329917844034299440271125934986679804874665410382607420316810771996487985315608850636322451417377329442989725372908401065077713467713180322537783372743618726073616121455730027380588720802129852439749379519274625733918327162061571081819511311009719233254926792713663190069125161340019389953480706482207932545061730448729074592170332582210631869833652388702371376320157067168852881830152191588843726653727025946204478033737151867715757258413445294363223356170243985513601381565470741544349113340763208421968315405108701362422527791777316542610918037798667049479682068003923774835715821862118405431610512154758762937735806198309553241723303655324180571812494131186914609389214041736411818148572977829668895948017829682052407733849984361468329452999916404595897578966291436873923448152580459573422563733320513087991643188123009149197288018361224774269376552395868080126951998517710526037353837420847369857887978337780944066479602821724067561580842799862211522648249878811028144416175572272784177949185642434971803649410209518925054157689398290238006957317344033535083647558187368951152372927053564537514664674697951797326660714642550297641247336362217556272189855566808192796628813797665072692446941166803323876363103148456939056043496046174395068621463191260835191919437248721094399264063161490002063432897845526020368586743435913980055185608303244693078231089093153431537043368213507413882407531357695618024975373027357983834911098158993917038000525291763756440849035431446752517194750526269757721794755072818296059807703052497842094916273348389929993040202343694557475959732967784076338673898266217979573843169317854623836689008838795761291810138318016873079022822179393898593402985507006841418305792004093428813517553767936318338035274938210747546842918892172927752286877902953600936440399389846929696865524586184396262126106404819916298154375866089947540412390091024362343568264759404538444342298612021115494043122515286530013142817987877179168745141960239309858182277792283555904092661421575658241951902268072876667182540348396374678214454660965900141477957589349958686635100127118226588522605635501882701500025664187105137643453146534269953658576810805053319592252173453587259996266330937213674829847975806197226859997132537781846770622107266761055076631184126240539771612166336475548230864820060383833573219397136856301050737659275365823375639054259824195753514207854378971391757937858718654703144931030816616166024108485508758146647624969425967714718805906418288255498070040152784361331332702905129785432030481518533632805536371507757780310909198409561640258096810588467987810612926154211741998928073483506299770297195856400775235057334932674638156767121105656912497324366321364545182211833105777932495857712775618287561494730053039834354503894254293764928824826979918401097568321472194916116747074033605628356576486014744848385452732628186806097086338856438142101209617592836554462936520854605709353465636559716658541229783322945405482859721083104447865341354264158560792741846609952505610215120408113252875224282930403489748938121216458226192063356652214008845324075524532272994798431779673205538191577328125225652936667975115792391917798402754912683729339578860020659753727079771827419462878354448181273747321113502586902621600537150490511729852778362206865284137691717829888483564432233577217650090480207191284458958985223691289247055056513210598098625983562079446628749445208904046449824816643798798254965542847401374852466466672002761670689202996789429160297190604897976654926036402049381568477292125488294291572338637285953327126118873243167450674101059811340665817127660527094055726221660559567115703604947018035754365657234902956104246172850646851692614703405429913603001172586624919850087766400669875328176106239476845152658666008365935884803246412052269512970079849236380318291696563688456718218406962220937507679134786068892945253286210323602001033288686301797831678394912603446817736167688534676320356132414843235687779755148541681027800461274264811376852956735015875912599736878913052791523547345538191671311165261428530625080360138046266156988339763179194978980431516743867574311852886456209704850967274602692503661434228298523245981884157139827985091770300944805692791319801291535084005718632443839326341835452320062041901754412082198561048889658155793550847997273211796602364157266737321356910973827670439492801809465780486552766008834115222725086634785710389916898243371625935741510406621975319851468423903545553281778122246545262245954879702410056824974260676779865332491024581097504618946637337570232691272955175155036603556005098258089603555282453411042197130050376065439359159808378760451845110677383794391069909669502575654429274844843614275667580897246165953299146621985931090835914981351287534768754372051752266680587478002772112456550717826799856396879168407938907373149824527335886066059004694890387063912693104462875734663723071484463276492378395799606933764542765559897651721826648750603765924431143477221382170323724838962068727197297980256353556298440646862772099983952978093217962004308826784611768253932269367012080477050041209489172053926766952404257156792626922403577820313957473899833012107015384959324577625494143267964552583738512361554141663188779735535671835204606955749739066483023262670360957059290433228537937705601005111035058680118300433740105545434299777768709015485348858455775925163395996908992626329068749498286633257939865353584833728656206517804996175322526515632606738373134008171203913049412419387088716138265639581547607926653241516288034498422712402772774850647104887305108557893837307050527760045150629620360974619614015250673805942130115843728633468016286061040611644300794253914055888617322777204790233925178879960889538478486482045845895228624188674499207499670145986857113216211341979320275219197031914387065006932134248145226096456495074857544740002166361111405039505361776790846753732160336314515465365649311221204656413988513130882923098625817895445782008783951065095115025575309228924775798253577168998336238600436383448404416385338678238643468680854184134041767705157378338991782405487805409937090390105814180642711296038108052745749226350978925116029729762226664165991085971516523975706256616585117043243488595677176767704104104856355834792646646843001644319273661418265459575398294710168874004572984436284411296253427216371306883284350724518838326161267593232364036464570151362499725891420051937815664324524754797394778631562376547504180146628119891268117417696092282776483861564700680240995250286032028754462314494688565606824067691254409505917482915914310881483680737938000201630561842833934528070304957849485076597386196380739784143952538033298274627734756345140636798604122064332650915724808424612329704863103239992853760694807198522886067277904588461462558037929672603781484282452481716803722980245287979304661093922144874024402825526462273892953415138429742702862264341943054148516428736967401277115108928392136412841838179219722603737205019675024827219562120678487434014883503915239280931240278120179337443649387380462240259721253214225555446739838794910237709240156110814312371316218183516185231881739743514186098729683285649541416057392132613562188768134803593813096463528230527455658209394261844844010125967718610296000607150105702940229312015674231476003660391749342820248616239424896341714343177838942562435976094609647548961209724033594100234115666267832184900412234194484714792503818002028058543044052170476602656440439185448723228472237274443707240582821045377539571075460142510703819992617678963353496202284251277093677750833411083465779866382475482194739057233967265125802826957511488852432080034848287493158723491457937768887503126444515147747897528957004440777830999642953501884317774137158270244337515317903381164119973362073279559117917409496487176843782947156505715197928960398319914906169992116127952021158729371752408751477195066708247158566526456865424714351915457477792146697028089526408524994173742492650726457620538585585218430089950178779899493875512803311759678494151606398536745062984186587565661627071513189005311688236722736162510301388427854657368718901194817077210143132615198578707115874390910445288665637251947861613803185145744911872699806028605632508913795689408013309124274423888780823126728755323084000557217708120286428773853930975477652176297179053575249568739416835412418683753442296063145069070934284118633719474099697241118196005579921843551749520724035988474652995688754167388198027916706429933414104466894093969894028139300997307145696856397956543621679231582630725562676962122047708663419893682143117323639373731042275397349881115519628582017469978041420810107859690249335840642662563508861776644559254459858935017292183046586634874012160179716850058844884603232369912303907708620124300674921220128053374683800958834074931308472636323054966564226018440784904631785724294611696384531655910485280910521383898782908133324846846223587634719852309809616033633531585802308092337597579095728291573048702185411025540502659996737475328548665025944691730552987885766310091151382609876877475555206845024763126087921502588995554524504367184241820706614020756081249295925919237280353315226590030436310401854853372190163470038456620108918728044112988193041239324869910533422895146376303479162831475563354258253071883916696288901052750332488046796309458111698682133510804192071235414743610757696688032323672550815509988421996888838804262003991766586514063602406811648535531185243253677035346098145525663526695982240090681935303046308424123111664452696543186271727192034868901561334275512119967968720245742027322072567770645843501412523339392904904764666141204345478509263960772726747317947037974281662072344060282402277302898355525826652045409400389872061314695570747091884529548364403894091839494730579849492334187942948801208239695345112781331122302544920576868218984828415387054818829007428786643644162687078412150711094847471669053791028473959102362950727018477445599724476895443772153810140711570669063489148911134890000926834255775725488076375245240341554362620900777841458892744816402550372523708402455635774658860926299306689298927134344482454506189675698947782407145837947971149473127477138266108001675483505596687860544565677491534488089803569993479634412349716147452032110925233408335848148817910601623522459738248469138163229566348288148207951544272204073121800312117305424852308584091526387676162066569184563665390401234387396463804801659604952432664886915337124291748245905182489386904349448480156407854289494542006311972529512485780859139908728216217809379014976558227804447215594195442238020953768274516665456604985176825120253249338423517058512016118075278121968660492169495499657777526833279606623604887401265005401704457539462792894214697661430064117611319999004262043564508630813430140948260581768341963517521810266194498195378274460753919507404324465922213330691051745828723298295649798377837897085526972392750718912048832821622258950784634387557950899250838958050664768532670046004824561096546779533463978452847075605250904900770301540569892493861731310766308315200651303979438299857200673721825571145466476136192872506021547024783383326906193833119561164482212903765760589899172265751036788116392173567658720496552780891824840854735454469275459492267444017970332336746268719950765054848535954704575608366314321714614599931793063008355662558442873678217855006552144159787112427803423663283758937468131027421107539945559589673968817205106370151106473091751980896085814017490560471934617852677694306323650520548313569804792862669697732711226931629113787631511102212288146383202965256013147788216825613089489330605404927964039853522001654831192066514224103676953418446451893012585968249650446638226683550200454892817095072046172956871591583634291193586609368199291436840969795846099677838909872855507914421905481119788296510467464469393430936899366684955106705141391073953031122393061883293217842528938310707617553315806682790709269215996126317674557407898101128188062488741663399288081453774627327346741005166259726401455579022101123027015141453731036009420553846372372586192099239999047582826965879009468708335844883306688576913661210512862763573189236041142743913491363646120011953940282618277736572189166555813317506255052561254445742194321306326534472550085616352888383282244043909218595745649433144476859361547188485786231219602039128834464839363621945112616106621292982122716170721162837296372212809844516940674678522923015494944391272850246837506015422520320232106254225542416529041281054618656713988049359415332544601530280067373959237624065676754396150134090534950468974742930882240898363869236348237004080818766710541629009954038005292583259429342438352476837338188422651752198695369016264791823303000087058936085808745068400316739182865969743390107076356178958995705721101938896972697796139818995302571540047497065374777560948232906892313439609036423432504543037952422492870855353575517826216890554497653624235509275327072140538359242841768000488489437758818888775662527615288960668619774495846023544733330786876510004992220039483255562844050446222123517464542587935793649575649827531096002673318821740806075068834266898613686486537079882022443103533263472096394670571854153829447232300425318380643435654276578808449174085347809654307786822201902779552148998470084024631935375109731732179076326339499273039113148721273663917823776357345846183855626557080573109945860434136723597172615182956374726414987245199360283851295302691918662373951850220481125703093018706602340487773198407372053691170068585056947593223188208743590062827986100994935786216632584900866571363404416137028827768361807059487740878485739591363967400168192408494407293240639611511877330243471981290117000248324504326086127889783359359082268145103411784361909603449426507123480592887180857582002743624106271307880229765102946817590927298126120764118649673337173105088344055248209066002120668502954839179140293029186749172581609121886939331211841205205893398910598981860007711785843538610347591078990613260986394893927701620511286943750543889559355034363719475784633881100237555192632115759745267688909433550033952899918028406720715097663359600786389946778827815312942518212871257105088410424952808083817555960918994039255519086341686445573594262486110260486519327679212390095221795104658838026068060156034415142940306218525232474479996085137189354408868132556838840688468828870370842399634425502379346828385075215189490473074245963139362076992898429446048490582425689527570821229975327613107586036407557002979360964067487971819602773371848446056265687520575818513241309735375382020803410187185487678044909956020033077002418589406028881602137360381851846734567600445010171796618091435121414993966566573514202137456840291994442805795975070375248046014387506965675118156444050371870615076981254523914558389572922055464920942985212093463242437646398880958372573019207969890675080751700828060449442487337664771335936230022245151766117837919649726979930574839258528828157757191867514514589383193529510669750968371940465584030847907193189065631981126792657973246858973743664624218039442901985264411703266399417569847006706712210373804727855364416544848152706648147313080517292330199715889409973704002126075499048265037146771799920367133212977476676155636299043751706206124809834981157082979396001540762251908886179247809910191515485820590626705504770326997762435384820905479078704991583465240046366334971227149396830112302008535283445712176109675061002467160526646247589183796581395606942378567276002358840677953426065830246956929980700539322145222789732815091117211288396671486710812463189241122879976890114652921397800337461550940331465222400690015829007635032425738044840330880287812882067427109553499934313653376792045831996616318149668137832574671586570956460617260051601447168266021013986201017041613480503384116395733520813006815625008293412638030126682779837253242558801784254898413307749016541598754670924901422646198881508671023788894976532706214088038436802360712249594043473630238852299298142079643148611023783603654807274091078235735190640965440748937813404554761348221761986978193252912252638011636290048012589340875715360541943495935617487695852985215348084270735995340520215953682156308889889240524187482152639638237984623571851981424541182342406046679294754097533907568156988818421770817923566248754924032199962291672140259782514627806035560529163021877095599438263671683155711826476570398795618286617053488966795741598278936005689522548512846928183394103145851157551364549507439970285620551756904654192149456886947421390859267974016318147557053674269736950624352069893847827405781643153200268375271438891822122421604105785714883326242819414876874518806682033931735676773418120613447946803315727902909128403441440070379589360468638844198353164721535096833451094296784320836277997192362505048183322241131429751647807339002627772790974389424253053201876896133953790903029680180739848287541722239646579493352945786250355876012581840703606593331379746638566442497507835126336179601703843338177777638307476490154836043509528820027187246219874133138840017859031663432991566889233048482830921475820363829427392743712301102535518306367321588738414095868458009406918334364256874472364239490633356177358152971296534646595141325721092118460052572936987515095682328632582155297016140886288204560253961207253948017463368463540707391682860591628596736014751124644830619472384460038580107710240505438533241921798542074518395927987708805544108645986129282279065595139057208903549603667982317598551745871952981554651619542221010957322933418479431361099046660698918065737636079384381689644783957188781334272951544970617360615839125832346992344465784267339275533103050114756947110531690932289118489596337336766634780326975040218424965214982220820809091675311946305192565723562182186817667212160877465695401328415240479400211074854740229322628325204907328618449793688423547725268265572290224814941583535061324988558278249980085942132902712034206116989535614818429981567325448670370787845847264977001985999735731509853203166305371406631370022949970568060049055935563012792300828489872588797155430326248891735093775170162577896555744146488497699392990605055633623266662310880854479954285843779633807161906136642816600080817164416864045779819033457228731631567114905009206924612079506487360214074826265431491620990849116140123555620928822198054367419550589737932814348656217476818275382610842067882862432461612240961584587812097432746191819748356219270387097827108672214557814618151825044010479636102655814889002721683586323724223244179890026869164306305892422784409121715718087044757228003259489240876028998578064966792670757748668581894429955776815935527804072559561473557867893838971295382962856790379640075296732901907556439211389956903596659941650878201764846981014364946072940784949857658939753792402673640787426261752415404785274033681348316256771217172706039511401067959638465860762570652631143459687788933295716684995346294675880584266086689988103625655121606345734477578996227235754288032685425136777289480872904410255380926560632045715200440971660943082553746048787181511893675029260796878895970659296497875749580198484795198484048585302053298626592741252174397796524502514849629339892061062303948077863948869736600787462558283106896955266484421146900855525412494160657243989186039350049819916750384523244815386068716625670632723858592187097524393010951670669270269828331771557485626810434176529326334714662949476193308846091259099695984532707779886714045815346522449261221666426357368661992768852918408935136501620541404881157618848220078695977597998591816509631010492191858175716034976521761034821601497066870581936249796897795321099752061768141944726262108256257825210019000706800773870757742808908791701781856430869862279598534484059873182726857796867757849769100366273977797589531867266603089192626413636358458693085665788165489484322935310257173304290807287584733190555065336588832741273794717487277165362962854013450548199821871055060508978781643734526510974165121465293286055805652351747578500751682279929233837282992898049410882901345407092969320627118199230972025382651604679779173189809453888310060052631651638768916265795505872561862625968273015990674455081389821476349896990611682700785795042403387469260677043522843424734460412324065888180903386393349994561840591014047994305381781971644585281008389905856489729504197605166000523607493775616311455231854636059568375532595492717503232654027744075989402670702075097645666899711406400008251559497955109048340153419370220242002618846901013875871254220699964481234621259832259148709743841021092959949000007197514087319760519004125970973420135283743149125880738603892770137853481666556645174245193887337422786854431590583495094067336734735872489345863953083684841572747894198018964936567899785276078587270991269050758404560758893607881117958349960343872003064510505692026700296983865090117541801390165951170291692121961396929190882930109999939538087833503277651905573898612482971381705432017367644352432805474896404028124830547497700065384232744689179603193416090612635363813552812484463144557581765387056370461689582244112924858914025014718857009378522405389785814339623078495412380586939080032422031427221338018181516991687549899495324683854429440364715424868719842797035033525441670801001855823759041543004990065217408000010970404405714145294673837515394261181495949353130885847605363063879356651385325229615876704943427167414163574977477465033415790557889820680580784155414824879414429560415877902700037014774905859354220816893542228688483615540259746059286609216779894514748173656543167218282286137125249047322880595090405848280999573608484700494058468477364495048348305293654583654904223392887511192720434219479323420209694749764067990798526880261273107870225292905994837607750914448722564562322281093667999560552078646384772376723881696327054517955983211592906579239963613739754339866468133342197612730024497462771183459631047086611627162864202310721091050239147252484075460980144066965043944046814491862340653822154431258471691574288897696068396575701276633525787033249594567049416233117651528999100072113285041911154711790049677488342555804718648055134363733021394786283532017958780917044185306964407336527801807365760504935408519135253244738501005872412639165701194006070410746092876970914488617794897943326081209042533918137342214837787099754537378222245187181248716290887284390076924204587935948947906614121556326194275479471623860136899657399733984898007433162063549608337545626782854730847188617585702561761729973785677092896479341629704812134079829879746605656469223462038186332793861743012550410402277838155946788426986916972788033547864962803231513157211437930289284839352376247025144681531901962892124182763628789149872056671900405647805674018062173108668465512400021773793771091870275696946191999781825911769087924103933855450358506344107372712178882757454760011533459264810925849725678391765734699534720841210319080432679706143730533512929733230610021986619763635113832331082778224157150324007908249575119980924095585244946909922004818885391276125447862073763749090232013613345399958494332855361784457760199095594086513081986025517082890553217687042832801936502520599599120155179327482000275384906294508571566633825128686545311511567243530884618843498643991806550071903964067012039404277763239311839420607078845174077589569790107073451148793077549771218934402564704612888290895148841410410434551605126945365706000281330141788276682750224011356608321635837536463107388564337687635984359023340937645905746670152972462526978422614784201408545918484622820398600765490730924584697473110584538972510984112062197408749040575170662753487214617323049336866833742355408068629228266543212373668906899927932008567254733837543123916932198600432005690252581416255798482313085654003661055651089865463385655745649804935486691832543415282128983560277929651596431486278428409167154755323961099043391198242192931333092833026772161630927590331290773067005673904654554728256515523118371239648548034490347510553439882392161358703102425375610774656096569050289599349639163292666355656183173802417959340503365983746976833366724427375796382320738789676598429045883734506964004431031124670709413050577028204117779319950444103652452260063241648467305680066219862703670601386814573830795536340682912928516373502389125154344294892535277031951964582229381469368260066636752789114266277396692766887907490445815341704027772759219831207264644624118467197423362974999544652090895337105072507313672766424257937720566910377277894502221453574621107827341748287757484166297781116770598006302628689890181108163165827701652295439204654325136058235414135697971749149581090155853566682697259713742565585907090706029745609282775123610710085650526941889136689242553496722246237671255024501350134402405651796588303130137252594973976412937363910267601373796811661149582155638130756981108758242670482605055659703759687275781658541558524381165841457618664957960278856598837746794979205742843806953203019745043137005366914528188143174597395894958260596338913702794887302988898969115987342487878463168284031371241174198344931814977213014617477991853232723403209684689202927808213205702833407957607522416835021724773257330369892162589300345534332334160035206705765773771685164229512480603906252603385260428903588758568325417220212537535417836889173987776977239578286956611854820309708283253538781606625298176576588935380649253099023651812519398321775317365039444456652297785961544106112946509375211262055884265168314945097429292760829271371212452530878447086669752307392155802167035573872614266983217298191020127113484624774529517863701714465773651565094560990471359732671578485846509834445665030179770469634222640549372511625041510427655938594530826920245362778703780086885636898992143267916368703021804937597920062234560060212861009613173369407502475304237886154556267817384823805126299959617457876879362082161852534751904454035678896881336855001183620067513084941035783078998429853816499496314692499302488802461912147505377682886722864887762158902126948780352307521235717321080932753380831835056943791550698144503343744570847234585862764612970920660952648744769803371932098564596948840599100500907760192558368957054702926855778085465422569351808133960402713862944355833153533853555755809863152853101124427779710649855489314219820934066462262357638537656562993965053879527077634596708071726954298845298432732323748685894361940044675762177865986820375463650961972317321099549995554304398402386756624380439288848799050562764380112791892092558357174760632545372090796846834487367392076829994111488241748601442180392017712832771437369385993479789289560821984586767727498349597848207195450047533496410626423307502088235054180197052292156946753103465614233732778845017204922619597744663640212737885201324678931668718518887770552208731323121518903384930819149815100495609378590890474280554324093333996601857068547236001131881709202584728316330269974811238333877326810011541505274743341689273577579210727552822560732197641991646840423968067279896429080279413387070869592764589107644879419762850547698936833217107389551945106757685165151784633233526188165540015381386543596066063439164716308374423156557667403739559951137016275826380951054383131833894943516903618105908176704263614904604020359471587808619197366248695716583680152794443681671001743823586030482559205078500009465509341410914397929597214985067254030330867924610972876422949509909816683963287187073076889630702357867781275445983882622786406628430693614211966009003880453524721836625244820039440243425586147535623673263340660495216873828119942928739085220175049334563123534594513525558475120652800181765467341008740593823701956677931807066544005380623470377099328098059615403485225070002462041610141378118289913877396485554486369816377365517382750661675537733146393446994594195414836697281697696544573213751361100752660827229990502172980306068272617948364375072884427605244715754427343981999955725274143087268892867182275982734113281549427673430584102991081348268831489924347735112537816029123329868337022201231864403972826877294619127593182504961036046509243229879685087287751663545775369571703983654804228891910612994692548268881607895989420942489123215936764243449291345920048206648046174773321912898788083549035465559749266449522523501022911181456395181545244746012888259842366348760128001412099463037615188773479779248858694654336750159028253788044334566204600815244010288208784427760130657549451840069228102532478278888312520529257185168413789227515324033542221541239838743620828719424093068399996198435954259706916346300754647001886532997270665286330426110464096688255065222413649310100513583560228696838888698941592425799065804827169933456555692930238960783390713655677786035135573876270717362993970518411868831075619496428421752491817444417723112444483731394485810995585231249525884125491810967154355871511138947697685788854693526173041432733308302548969847706956697737716097022414773151482163510105629045551006939791227684012701672978057806059171599921551939316414170671467528703947183889094250369008070816938256674873407627925192502885091497991299987303816092887849647316462184248611966603820467253240634889154879538376746432592002586651722191381310188101460367233284811071888988590013466918998188911714316189135802297021778938160399726097395481492841134932188913694076673966712646190383249370665838343793212858885273368853873923131183120179893717964505269953518531690826906498334001213494263435246183071660872809181798480297345835185738785223416180946501609650928689444169530671920743690961871211061302989450093571411460890448858137825625058791112607282350670890432551326307638906593678287003068665778510154557779680252829781017902329010461869639589898432439617627199973024678810183405372041115434314187641098230270444250676126546569064958397098398107968662586978086673714692195880282576342565893615707759921883048508540075953156756135811705836297843248206281073483866056693769054407355751496188055717204146204402518359938475447724385320193932853707232422511367599626576363814357970231649092579055620760353734456267775630784553971024976270941039992894527564957226658821356153587318103091138806759658573062938987322398664808696295888711335289042091154877388651336697854115986680008819299793799577697970300429619478230456035060954031658508768686763214077260052312435568782841857502602992185775312450985686959268251229188561841632563940102292598386017046022630816928355244453818087628218093303584236087338724714482888388563598831307406709099594414944524338455236754878659841881905820752248698015015389046165273994001413112317466579176151495148570889018880587840207437251720328345797302113979500343684969960557526615886219755217364177880966279880910427509007499668737536265901275587212212357088977577006833971583643564454141328125396471385339783402759923719632308307500137913283150430947245174535166221016005937194422991835153087354062422008452313377233653987413987810520257550204871995610380471740042133115232904994784478302384494160032080832125517679538416072073653286617634308917568985883022002068948952179155892375530523069322168365878794456926031971503118336816297754058635319099593456611319385763296076209028207392098494364482353285645030337929092678979158791002610067086515544827736037937351678131343628784865752201064914012787596133043572834117424977132770602031861269090181965637089405748479362033922259190417049879018996009428900454519395066924155754556718898526376258678679977910236707704415020285415231126582759467557591649031531160844831848501704944828721490487280584326454549742061578959772865396773045166416831918788427041968313772795024631419853638219269048760228459914247316112318296366861365633032823394462459804335343857227172161249159617474623644749344609695448466464743644331296342466412918585375616133481394223965291316784385086735557917068141541194715787677897577458521654320444108046397212104755430629735265940535273794948979086872046825567846292334617943803766484169522879827265127352762926120732521600510125573892863815174892402917370804270656552063275918520254060966777739981727469550489410781419342381442018183607821532680323285066273081098491591354422617741296603726456940102174401253675538702384643536348766303465375090577926565673109152682372980819735922139296065727902662743506992904119192191541319492209144603589725380918684377377321314800063106844752886798300997399498285347585058550957819603819016000024038964645673406013107895124281474990346254862304884500068292955777227235334436822196750721998792192538801700216045258460653748300416881661572768718872733410752789076429444539788737193281080865415876211758302140999141259791723325007767772236393953829707561725358092812415556109022160517988005494505033117167580358640053451051870701961728280472543167647779826833666031247783606001846267182710906567672718200730118005715054395038513454414178652743816223343106550997017874930524156644667130862185350852147872027251967872144397192302799983526861746025821386652104795734055922732373196516076704431538525446866579527872612280436378974638820046583434535725158459787806379162495356157049702666368380390962349877039947502899706717573283113872008389311444780982556276011198103680483595388556342498610053936147075977133197261180768673478061417523590941988400407388214102074620162458089184305950649671978486790865309757710547032881134838248986150451381839835871104983743807392096395289361224267674783606814949964547767934264065667834963114962812735993728310313665080290060221719588230743744143640548085411130679801195873005346972407277898532878636218554711253364500596330579727866779274403191286742321241936125124768672117363220080888024528851530918183268556613784404239043845385636589105934355608799980385237901115062434115988436233338061666412308798304503599242725915358097378441121449453517279518612679811623718548174497214807198793667054607821600869899407625453453032124281534469362146270441797327119479331464266311608001893527722564794508861989808485998523837972918469983657740206324836199499945990419230070532701994916746770428661690956525925715182396770226465862309425900755687142406673195417288378852619347043239315787478843580442357363559094453698907632133499428530866634634897397226555530417948144042124397092697833750554472629140271665007215475392833384120951106864252417277410581896641666972471852443475808007864321645172161202370120030577931676046968167805457683079285307169084038839383451959554961146359062426930352321123212421191146049360720547526725299024094286414758251012501001130007542986209300830762100130264215715952674725654798584168018478374621030797304889232008789538626819855032652044560318548327757995790274369012798267327416823839185055852042096363569370966233985014141652094531495753256063777642793035719529432927049196120639902807738446673480294286552754126185314430146295322318175970199185064564184376312199384901286142701901743586183181485748625096775905910115287811179274458707401256412587377867466370926324845175527405000673307425800726434810733060355912554058609667495058105381635290191217958636744165331820069217277972276008638525337921396778602158336736078146092145641351948071970677949750522043161607791107242844301868175372536769800382354593233317286254140832031775122994932143443082900881011953596055399416350359193242295713947151694820580171876094758166663113705085202603794148689573064598516193944510302661090729457400012999374196667990484829286178714749646335782613297571906263821740907746985082685169742566874955493910478993228045970339755321120057503969349755615586337035863637266255538758659862748154453046071128991232251168371468082085884905938854097860537295407465115056205904606096522177397722021062714532817343024361065175308625149372653148185803166850685000093951381054572665746287038149538271573598205707308854084047643075994167542172659111885072849055484367703941062888091529534614245025844989287509000529568108036331810398367746713715788790325041016188200460220561523048522478769501596411709021429930110315991920521814902822294057632531403742716499197994116939073327275648984651712952645703033224158920744499717716652711775087601263420047815920868381223208600074539322493043656182006311738419101976932046648925052900246721368031572740638359137913706441468067475231487383981572294973496631229260000419661511771922773573063563530110628312469226281176088806313571644704974455911995065482934722174763202946366831341139450067541950959240796552049752410159664508192845224729644331496872628976864021403886654064982272904294033884493287328873272254281923816666976850728375377445517931734963247112529319940125015063641289011228868967555503715357402853795811807230833800671635847525782538341678828532019023384619490859963061815573199421335422091852737250993475031518384399612612533158692006383190258261135108880305762843300072569769433081703482264720924921792061948134513032318361694780379053470371650620330413174238588504158668943233535601029087601990653463713009954101199120033330251620788676043043264446243374402740629425738151497956225641006190389018138000342460355392641049977723534670496747025237759793196568705891724732966927543974905402818420540428194705798854350798967801778167576668287642261402399119226041289452481738146967626816753581171255574298855854751638823425934557630544720890931868545079190735327125734266215571036411195295685782898604005473687619104369043891520803189068812082122279256185125464585713400648875617914896598846613745189821145110562153374488654671535204431608705965023343041862251297835545266587867189836321011754909651908324667906377420905443669047575412759678559405518470407057300919698708663834930590073858414370267532886466677679428999564434715146043007169876263170264747200004693585960766029737597056030579842162983064207094430896936733247052153731743421101351870780190656612958468514920058093447881052424345118496516324417120413662983130323121439621157921929329106023406421101907791211014564485270635660793558106342251778367343252360065205449279933546169201611014383867642342824061379988074764440945051954504293421754691703444576208967758822879742830948491493394745280428010639225668914937391468534815306008558300692143404735882394035898273227536164975746293395697607591068022977949056600955792930915095682383058650106658723697813697274541966441139232047248817936115138015805619921613772939663783937726030111958843847834751637134237787045094086273432000728999398772033048685050486010500306850302938240903417006917802128624543206677977016872364439664232677989155852203839746102919776045806245267753235616213380944661659469837795123656030679796364824794823629620416706124310599826708260259230859856206334613862077850402759149635070517459350818581539821913227247141051271223424886569291826521895543132745891781306139564513989529047237642460772175177230058616339266336196470678245789147220042408646013435112900312427871715197029717734172836635680544376248153808568532537681584303081295570821554125285625955343789907210874750572229457792105637586137129661294540427394725870432789850047827330940257101533661227986533041665685371583701065068990497010902181039484832357322110821540656866949243305756114655931476760852782808333624187271354333558061085300236213475437380341817987652011278915868344649419538680723865657282582593581749124759503473940186212274331921322865132955176578702856480652436096236052712378000548345715343490108348302029589969429974543141513908118128313482115614580663216184330162432908906902977008267198691412669525411580080426647862711894466524719779367369086212438641665265349593295339970285264604207468012003174726551996022549545351534719872242637425148959510915496411868842812655835490839997917899390999084735160574434024711153458683235400255536667742111980152492653211594661370652253584748848394988284106338169008140235356640644272283736109738335243238222670443096573868971659372935651296180169786079665967535902968406882656199721742785805609118839333501902340891883942118771236229627713178072947090317447104620505063483167008487597281067737450309741452948996710287813095262991021886361675951183632110033775524365579907415212407949647781627467964776628540564416269503779578020979083815741175276078356591075482845475860830587298317380715574917095761035142034666500811211041344856496754147222093699379382940033845249397669271974620902124859216257855437634461635352368479040889470295431678068932883689399989581490301761125006517067730291711054086171111416853714942995553259780541175379037001747040743874625369987292455023531334459544195844107222538690162071593936420185718507524713521089809861709818169019357363876478384922902432884905619588329731810056447980235070291197694639626317545359968167166349884925478895307023514615110627489722535403989371910792196253255699769952199740985668403944483188274923924417996520858180737086551713571293074906927767917731685592884285644063562045044623717666911733434283112070454445298802062208511138826496318306285627920433597891672667751646732824211687474484871877436974794163198306535032524857817979383517977172804513433063303611111937740155793163798362911949564982608870198998355768101111874966345078077949804397325559370149038487684011721445732955011039188989456989835588977010371939626724187023942422038050584058109033594648873302228785827591292969763309450041085437529037655792855593114594033565930926245505057764875329103085324373454295917529239329001328622330798624377156715668965361747176273374423449535950631542311654877932150295657581686662041436449421335956680600421430536305526304529918481829597277856193780561954891377203244299347914686747495153928986994238516082473058640343553503367414331447103782201005814368635648273825393068413791002877628735553664076998700829062673034261442645892689667460260612654939778209372404368951919550796095369725004168042493001807942840339615902933695103436978340680228133096232106636996020438197295303287355755276377162962292030192887865606385659823422147745873238598284884789499321499475751941527093525468624611513275245197519154994229602254139638433276399804040552721911950798753496268448496635676123697219295525101918550902058113754067439311773376244971760604313615989900624693806684792088078934368123555614173736429964206905625956730921549767767547527151924551707170950303761692463813103688334345431945555206609794135181480053642318606186794302579593249878420285364986789859433509854683084235968032976368449779151006801837088887466805162478405544770622454488442765344410117816496658828466663145922868152459639430170483162063651533265256918946430321701761143911437462073935346051151400916443467399644045929977837449667134400678487857547573294082692354843563189148995295778489510512980937119641018558313273034288925719301154651263687140760664078555513616017184871799483522517661853079917867968708849044293504140867989275777734130685805196756855547249384848774978014496113449259830286085609008272951376157956980090984303620773358397112891450652548877576637293721191871957656693091354400621731786448344942145442392083014355904245934272693266917705641473985410738992106026921869194726787916615707056770602406021937073885870309923121481307592574889544326716323768863292601523913865480684941943829260414703990870145242635241154694913379773415492073056128639201585710274679817892964275746320255044624165457585154081714336553567033815790735421008809425363237411953471350007743338102225281983322627918724227628204769710442674153610551668761425997207303784111385425992170828389931804250112530722232951425025642812554206633211314530352240820867265410186328023188095428880867474946216868543299355552025453787268912759996774260569054727804584907658575965753931186451945975020913751508972573134283841585720552667068149495936036254081747802982400663778463176840013946846959096525924917908822961606872229252696792094887691101176856904674214698418747834187984796802078169464221163934582885468025954941898841185224430811070502665615313537870465314667291685587572563579296326363315321250081919744688800287770708523485516088360465799980506283266295035947502558205247042322610035793963614004260845719092611078840698213041169216180361659550096137960457799180896588330317550167075918279448497619552682355868356337992894551316889475404540892618614692168114226917502495005030042341402107701408343759744529462848565978247267232501633379626239073203157982447088187137003511979063626418993206262187745515007223151223710080294450721451602018057747914669872254648921288503928389636716530969097733115771086883327876763652168402100748199406319920626306423707240050487302849336035485386650631015619748046189726312633704476803967318317043093373774065566228774676920722212657522468781490235284682240548316337227822284621079899368684013800389572230792885012830269774674372038765944119357747357700389633974944080049231019225226966079208149565853144016860077217469082217202262337992427565396895886747835070271064660507114162315241197215291956180796145339009668744423866103344526569706404542160966744986173527323132670677490413076473406961519139920488495045902015074039574903473938556532678659177454493895096903149635380446203922804080728988408924553962857706458504564509908774048877756861077454663440900698657402914318456501200135013627957974205654874344440513044702688614137811701255472828083804892904846901514427736600956882751711942711137292094092927330509552431276566228214143238575280132906241713006295028199966440900782009418269622173126819514061844135035203706550027458869804616572885531626579227265402233457528197871286761450241763376758930266149123142292040358804418443294314439163951091938127074715460784912975988400710373892486337275854588212575023926224228842812598844472151379759369712504109752957212861991250805706683901395853184459988220066055577650169356193972052517365858790667421661487657501758696134195085536905785393640728527112247028074556865499449750713487248258217289425028307211791857382206865456014926156158546301329793196128391156916467122951728318323612665726673655049939033452938099457300560842458747489395653630849180356891281700722243801658765731042336596194035995087556143266263090440203651449353721317405717337710589387504326142374541008850120347058517572959818980865479182801874402826662937080630196525415429837981425066709436715886638561878069666130401463361262464547886447537328723947903674947521213006232149378028862407359305412528457791616361230566661082842666272446221067835621440230942862334772847115541119413767321606739118520137971025027553211425651491101078403854390207493072608297608820023713823633596861900099105626978217896792522595250142149377699784276851947268851023646660817758839911209918940832695821611437902333304370624949276965305006927243439218269841427769827546889617044234886652480885633440151633864521083462528220851420811369837921779204482968474043862998875987983509580985450299430674192139562246800150275076876828367012409682318213886710723624124398730129272489897864291903467346494179351876532830487936710922685270293442940571133527082816009023257258205860465407323002290175288210382415281892428023410229416388349553655652824194412699902135123711445657556103149553899293927879517251242709073680173655906675640625620215393242440973010754070820387323267915267325021171208123771694537840571339976765159716744902891734274860820966942287403511967644151061434955620923509866189212992364290135844392574880205619321274497766187460026955445166369771805699205458927033104856813708350749550972413480562565404491480242404900960901334055255006560743731851835725180236156591467468746614851383645320793846746448658109849992880762353770735196268204594431333340939268700601601826269342486574240323520159678902906418957274512261589700593343579017666924519320484525822118408767929323635408573769431105093200163111662727926414914870623919370817260474150512326748149000037503902171852888454940855598154299655962882784298069539618164365640557525326508342184637729196138434614643964121884249204164579779384539530183312280492532385060008125069130720936146287314755557964442425346481147844302574022244797482057714335392483373526014764121499587648157676246942150223248837313411747607567655191787381124080197978387367001178689251308036587102651695946591631207924853873678371043509166462699563009689574878698766938282845420814224355636412431918234871411152360838739638838538473540292399168284925228034474348752639255220296739851112819564025357455845966130182037154962906296386876245418390103109456723588009190441741107451431230118922515580017718545962958097784446750480569204034505208498909050850742376631383856416727215066311330946637373642093593751923789578447824390639438770187975828702766996631055998415322494994738619613453047699670844301385134225212090336359012334223711920695462766414596347548388448590033238032651169631142040951489909147767462936528507564424381730602129882030018413967339114386986099690151546471474752564015475532186613737016330477236825294848855992924939183754892949017886030742603084369160368395915897781734041981260414120058727420226728764942206400980676357452830453371232058674006615915996021666680094338210554423397576994082094081856667862435708805997413418693003841188973676133668543976486190408361752081995667886960999251033632218961979368601906756906042027418698497651753443969105618919606251715604959391437214095666073498449488395453865993778732151717421820445533927673119946994645454878344446270835272942285674284462319494600660357504909747896819821413144585334762829924138415870219675211428764925543742003630509491522648605848650990983150445169925317652963302444796592356042230753228544335930095571599881130735280371993527762063596469461425240433694945288761324803439734936858426099919349044793052931558085325986688431710820702709291021411672062595416366158218599205752397443709478925202158493413481546892318740902269694354232128826380932428854712428987977288798452257650350727910099715975411331506084710466641197915560496505747359307069575735275049597397368218043488232267650203050860144717611633268924506531874439915298891809955406038498729928901783267546760086129138023236102280923767981329192756462841506253770649073866501865976001248412406686808636944147367717767757474511166064275892611333174367206252227493832702006926544214235615957268177687459755498363082314881655171863433669625641239346393792495391964536431292569631568221745793380295582042801133816603208466353644516396230583426682797289430552003695051347682503688179593811236097243441821934279450332810076518691846223258814450009024636797767359015333342664889227828721838926407579168946221304588046481975886903234557555792323469011430943464352847445412124257025267861599987363406351024363158414795057492002073478034091329804750926024157270971360096754167954031632432514076485585593810971329947164176218876450121218654959283221198362938811809923571184292093863154910989952865830397904544836043279125147474725655745920467263234092824523329258415548389996945088012675363085523265366184809183307108643796443209626948153526844170733112583672701721059792057728207378574241984595652930388640208606745582407032296727907575223864405184199975947049580960748173214797725310911381833532380494335979485298105620295154943202787191847028117266767406570791543720234208570769679603431849876451332024030695580085940685023732008599731139307905193494353298305523428766159953338352243449880697013748772771322485558457362725812863014456727473773292538817735285132653352777917750985242339332956274590846471254112592353768964434421940524586987332669463889957080522770670353516897295092448326054022912012048244707319303934687312259575017170557322964382628910191220542164812315069877319997369164979455535006288850099078349657788089706866493761982625950356672296961601967539951769534009305597968035983299074831196889581159909568613717376643189244157700524267044929710236990941834190219472206777720705998479550957635880775852616206033681898582114172294275132618174391195482421069732588743055215744839585151692775327295466634912591999526469582651416317206445495571232280710276529065621119383355197632520914054192605914762303434793002812604682670001973648496957150681895114579488056152339806195007834407449617307940848820251511084432572648687576062402335383189288056172517605528914051610204622948339928016918574095819345727881118626494083921940470117762933078895289383534017700019742935490922775876758826280766851655880920267535913525125409819878884255697930401700800792499490432231859464854636948966576489890805280879810246417662989012341131319068966255050415456448388865333905541975065700337986263504013891878061370692086648413082679039427904075608502707604009571657714287825180615153067772397443862277255088950045179101344621303626651944967398760200499629058026633370839496886694115054064437267376539640764254769890338138887846255042315743184096810237688590135440593680150479204076162530303351319862947388409820308182361446604433502057004663064798708991810519831800538423255748030438422238922923051391806648435898174171788608785278415108197474629294824322521986484115456905791241444371681396591787056719611230381405700031759815918141086911032590912333470893075759020703557604032502151773822866029622495972801515143687660955662672568386320341567365850790747385060181855709256865189522624143629970926124128888927201735084347324855515970718615301674291929275175925964582221629140425733596366744970194951543945276923261671222539361492575965615589941598834470989875641280355132203017121664952272205305331374963024035581604387383032307845001312142146316431513411502012389467237268617110945190169339554948067531540638708852522448286345025145677386324390943071024605504588328651127178082646713042652235414759228787445384878190235464383095868763399325410385213427144222397653855704082265812815720620879537012679097839895682985800718071322947335641788718731374826317392281255614192310940292038050113841728353735073847290352314173568661447132394749618873419073305328436607837143407729572730643657306094978324692263302732405888119098617045075858823730196851572855375334542510770294855404524291655287249215408244269316280016067968175416069642441406006203180277354783434473777107656503585875596850411657552708260088674923415966551955436703934370623642991662516891399969127627802971082450338496348433631720521757275149047507577489605236654188600173554657459808641485146386739691054750785019994125712989964590055600091439457043631476773681646334025651846767904720000605775136884284000643022567088894794326217794050393572578595589907614857857932307749441282811218329681447406891211649736879933924306687543302026435449180819947987181900184614112487154287095078636702579662222483060578113900020842599712399075753136370159835961503018563547583260873584267300652119243999362374802028130027503968244109093293987539918005853204317195308340567186160269565721525078259204225248519252666643668425545838882079532493403613418052705941092254716530121573155740850683755841687830676874049650822747839543827923805587590928141210999666904356377180590380316464414073000449207377910460187690171337615027973188775098467966296215573313759827936257415698396831624900905357073881378424086420037564688416489225879927731633665167352512694903208605365424739803925587032337611914003312850902250945461684098268479787683231043344235105608427403226358270438952162164658804847953301392514266773694898820313383880339197302927937165415854864960495973402685193473226587851067955720919049607366783839044957862681818646707906560789032433631781897861527570895451615811513916970251924769384498167227750106399417171096577165764918409708702786690930578791593892829132937471705386877312894618713487541249610838637863575357650318401198540545007396658590359089279730542977717587301868965801823133361061097815152472182448486016542422914797005254381172727430779604733445031108642926514069352579592450135614807210947568572225052302133476871666533232529917147551881127379692174240780728474833989638152242013967591787873252952083679573201556723178539538291493963701454790228760944689788295829001253619832025444160160267763874771278596548006890994281536086233314681327829129321354278688111873598203564852752725673283911857677506476325933484868051794975416094333413414892896009835424916078515501068793668875155533992741457176052323304321139233077289523518469984256139222511174195749618590542341753775461218748109601351419434182825602821969942053968780603757313050450899346183999510468322296864488126944663848794126737008060173696716948669377005941932990805900325329651043016182154104153475255774798453378261590976155112766792844971617927766053313380235749036211992575939259065182544676750194078821502828362617924270094457334968853259536894650889221547910155043650064798257187958182607511013886379314793715010824225437177380938295016113765430966981570395112531640999915837455553085852980893630094362550844479131228726179474578385017233969111064426407652139424638699320045744797971124543781721899498908511165881320626677156671929393348967776826018996369907577592681344273202051971549780752894881560228504828444042918344611419911521757971555006630619340742725895978509850235944650828059534715673771564393401590974547852612243678651186640170952997082024644039439759685969722066237463120101898204896544855192594617996876861417300352247891415714078053733965631735616394537205272288261564306656529846896404288793536209949213125122263873853961382173470657595934649163940099542753895134475648466220963333261282681219383857302803055732020692497777266425946513845730647534217822322948482044756412159891108864441536061810914563848982411530950689531622247096848190166017410241772882672919448244117260813542089444920148667936025397101725139535518833858523131579030913528889062251150288292841602369952411065386548583312309973474201074664268796902515918651382306077583813514150024863979334120995246698039230478163718121309571088680932235095100039645647364247536553371409989686425139820181416433796636941712061771792010319264948733630754579419501345412198878104090108638932150281001214021465755031399383424248817428491594949388355577247972666945399844235170153308006092370616925111413522569847917450285330628175341937866625309053047236161945844433273793905352019390075757811466950123947714723880847665473510945131527500067105995263775348720085899050301892735443425139299451040371348374549137491050703064735032043178033340731815283316608129683358657848205354483206832565259049442448902144126124596360356240814457746136741796880075183901322077689213922093094701802653087046731603956110510047409618606732050357440468168860696489135091773387006454899913825517967642315949398202041728468758979740315528930868415650281381540435340826350033683889321243750191560870225444164073599128230192029694533658270317542823511392721571745424341936680122360730197612112195480437594698711747914755515060758601342100634935963065829589223802849228224111972551321612670842659395483131272012658894307848656614116315109587866377516351174497902485029367123789387868911796429515062791912150651242636673379271494616554849626497965439744065380653919343023144625177916953805042674938060221622689370319933425486644532620434839080123778583804144159958348739221799361185167538474861047149024668323372022887738143441813845049984921253668422842781092029446358053033231373084140268886229132373480868253730594026311464150908366622526794363078193086586166082830992630050772210039389685196813163624394569520201870992228819247681811911052977029176069322679213231593106124549250845422427909540464763408557741446289213949323033936017849534271576987182658461767704435965211384084893402346080407123014367689304258052993986553656167947977282900004607845757646055916594958559074725736278108888361768092270818162258683803054649459181373545584474609146860091362078607648202738654068254502629168027063372845357220637526156760779187522838256333995299700583498697761556403428073151570408473702477925962935195639484101253115304966223954287579359617407809112173904683952586694750473944086222617301383562726579312706554885883813742698369152077476624983430106694340930289907128316176046590518921820966832329733609690751673962815260984850896698926802063590143160993420837105519877894175038379712635848508124013301966899753216023035932777140491385293400402119188148567689451038299173235199798656412230252340131618324062829620123872808370119373928590196193863208640064849306511973576007262378697891657618197584732053965227197110424832476382494561365211966880194113070726497568720750175471461801654484037909260851238976414740796433333922894664034547914958855186535534273891677601591943898835478755598121715702935008966757660558700374901601687176825048852991717225364235790949660117421214333283245296500589492787970404362619978926036467456497239017446390723121513685989160563749770676108787529467913369165182423922195110622295109488905134862921644909962133099531698437161207104251192552630049339843097735510249484154182914046813859894684433761127217622023234469955753858800812669924619998747073768972001580860082733433769216776689973241382434561646659591069940046775596918666944039899448294788828583827478170363335278060737186141766603068638165538344444022207685175338578354971000602930540970597057657302606924920294806318782974635734827299595533008461807939678024474507418861223786158729202757890431402228703476168204669145640650853642557831057206102918698644697987908878763301664310307332311573460534414326061582550610258857222250664180028279576921741577033685117480286998080934096823572084361690665464724299962304800805436657917262057714245903354960500064850348146853975468206157585856627594442552066405924658709244586719923282942435769931507344056874967934036487922217310784627655396591593592269876157164085071959876286333488097965395491132725349129085138547302095095328528732589369602424339072981776401131817710918610562188931375412027642696006943890786984951408334282359851549274389278137012101104827287825126517015581818468383117438893843304803041897586140906098024553711976930109479533605411694973718933845473847719951279234494334603271028084993805560319292751752490461709319485645192260110183565625217031996954075292082511511406125853585666728227216325760768931399047291235632853692772930655278261011819234445507216834778924611127805410467527968011889373582267973188672198974235792630737672564856833772055512228237124810793186392877689292767965778438892244044220316165862220742008500613242758448053930346901283589008904674235928690386638223988697236196928060950708936145619397452610496372314652855915898813731428058075041812640896837989246629829509229458762290604491833390519859920485804631946932667852394643005561557441931512314112145115971319071161072383256826073078853652712882831357751429185027007741615950137887940453086392374582704383544713440918056934086260912378037720190078691444269529587962562413474206862261147073850827344935756124458570245899035505769213479415243735083499051152399627494051717952919833121844046236929091204990723460381980007762986912258236980616929229299697976026528999021756311696841734162323799440440235190330939871766468830522277496362178709034665650910978116734963761872467889006509450851584524084878680109431462698078912434408201351202273142137867490411212516646552888421854133064904361632067757826531132801687932787082356729726872965888414357585175093995160180141547328623730029291476983917625903515918329928552224437761961396014596145029010206050153885640984741732748120429203751459998937273427373398146373110941318321912998580995208045966375233249702326260684914224630426225681610660013659854888924401200873672917466508504508153404950434178711796545524561716172363255499380619510224120568721371575713083228197048429007066296633715004535496034691304845457571545175654716773586124528286402491547205286069907981319918557957184209950156003583367149081427630739037996919923087561641830537641343804439762086501464938894829115255156289871545704293992622896899487462747202631049794758911786437356933401243998242868578296151957778633734358269733598488823944959266617727820179739102188364245131705285861110751419563835417674086117917417364478880689662675013688954614793198205546234698090763539206766395074944683310070427991295333741933557140053983007149953629050360219282610202046674770995096500946756021411970104405399914213393846905040279423784840234191194331030948205288485692000651068676910745869309778007730756733535718297645936574136856793472862792078897189754607054762856608359149926922751362652909635729421145427364997686027203205775363185010441212725180185033538114140441009327467301079457717491555127990692686692065726997354033346205805969939850559872785030352736561536556045521799920760429729806480853195290770513931219752335248661696244837999904384867288970844248156068933288527956906425669854834237846538612525442168058407705683110554762442247869090186736061416386094263310888500578097084230452495179494744640516799229812509385482846554877004970462281077587374061555968022442105759786748083695764871161847902667489739680815216890978155949055563077117119010595111256319552598502409608023777349344775347715982168684240242350404213634220255770057883197938878081162379909243096313439248394681901041447242021078661837636314223906913268547559306741722542944157886643221253231677123047325486189053197464936524632112956073575517929007957067927790444431060004394762997546955539284650568649261308042230936330292744484450695286814117549280031515968803119957085940218803433214235854284730594941797011638931018944702808484349015254210190597257854060423712523309036743614624488210817478308001539516154728900970482472853850493607477898890426953149690782037648160197082483525801042754572286168249693865087242823397089775703253449008107846018497933950653230594126758586760048110134344637602459497806434605397007002202293246869284093972307687130297344141519086547666304634522364936365716404473561529080823268891186118778728570642368585738264898652942825305626260247470997517850838463700574478712432022377659604578307059240742321783318157955928693923383477411039804885106589888062295758421455171803422557126007897859917807614366165615987305207173199405877656892076876427751355070398725176763644780918547833159097906877207266999257830927200081128338172711762769377441919054502198658006602457563426924959733389465738490784732619008719430342730002317157509395957127912748631560735280348997895088394023358459139089452048893451704256413218498489331123775828747574178490466096443415990171783050726904870481823541300872375476192785827318113790775002682506464824977712503875264255321432194024495463584174251530478409681225881599731400720279438009921028090710866066228033312051551395205576187012521887781479220997121612145054168970571239745430489862009803524066077576770674981766666333464473224719975812204167571661263773872860210657652756154030230032550772493455074930823571315588986888137677718538323563713433186750565978763557771888010430214163264906881286728624625617035564717163982564046213031369968448674710502427413836141598375190129585256491577290573395468123049125824607035379685080060410846677482716836849180104532272400183473454426877854370756786816149007163713050803376775146010358511773267597746956920257063690893145518503346346846157665197923038362775021495748601888460100154423241212659179447785580744255326748163081858579864200856545273137447752270866214411863287362017215422968307815782445240522521436333645392060771043854283964069565622384189417785232244187886637147736093777184115548121895159108581363587095681102902431492907803803306283409688348073087530756839146901485623342776327349288881635272540636332133963509776128090340701327361976823211989104482290748363817059291108015906339169429701871356644228582886832239657369695927527888085218624399855747526376652025276965960936887377454031421252733706299278720279443560511701506945864518471858570501633148477458807834779266464650853332311650746771326934900825197472057451465094593789392896300319017606606343295446243119789668250983318542169416492185654111510806432038575116821365559981682066539411734699383878697341929160109901816788980871941520584156786917994776371430500769319185510749097752448141264193708287911916667180339400911140241395010086724959068494129037025950395969832343507883729209006831965747889791473421513732773747549669012376215019830482963552064311939875273212529234608680662308185308409013878225172011338426964674847825178382287008844852570596344359475003958806050055558305410827643279606847757782521399581431464851405285212818099974406880096053411019442560958837162448481164699357677464436905281708404266708219218617607947131516894362179143382170219431717154785910811658512568845030786846419650538480679100692779750454668207430162421805799320511963855686219894612294765971624540067497124029748611853079543898330392892747053227238993811206018202500071759661128770887658788234526250718629563331021999718937782095522501663941870948059659401669940956529982883373426264000356635772520524411093498804693184282337573734963727187696635623393326318756730590083675813917799473423478668123347915611010652316575678756773160665123604378973752844976608630920809154831461902455375968070518007027176030862452241071432201626515547240242522476953741441745892873697980696347592852972755132111892147785757446415805524339994369587869378213586200859649467358283338733409808093662210414523572575820184230060057615534032534592449281169665294734900076382016072246814571536777609468264342741899620218571473470501141803995350515630424748047662756379884664218256487594593379808537609202245425051750023253972800683662084408631127568236602393787578660690295903677657346436013738601966676795980024822319685462229804179521725591319117847198157727397702324620809430043882187942668635574730109326944183236321645702714191402208708700230417059293087365236323657546686738955354377663913705730039590361504104054138106705073673093722567837180710379029560005470731198448258985750982744287183430482807461526400034821700291129755009654754885839361034912461761428897831697437908538008586163242943902114839592692257096951899289139482452011324618535769273278310840526976821473252523656450061674109574791332210217796382574430825739630356368678498461740983157310109188341531928005192347455580201211527425546257654897059854622368570884242729556699750224076442462852173211756666227428444766010537867562292407800588565760331917317102514480307098294537448155579106728747089442879265957210618262692996707352777436964761805883504796890382192001505484360045801614254713558815250081414670131303898243416267734867521151995867980244620281938693954375935318357221490287258179645585681427479869878255425780676825453529343743775939940460587068800149371735640122644911107507947593905274864198392540336096707497294101782410184908940664852901578293844670085796270652585988688705855909921031232728072653043627903931652739226305940573639901651825309657978310277933238453608427562682737124379166563901384225044815485049755333730195483183521270545942761108806667256191073847698823742334630068212399675682949698030481532102234027324236062955220120197498718232898255572849348644306622833437069679032074058363735949055196552351144319682959679204031128003468148248540192000798956395250133268649650391762543856987497461352069517557608964253783813704878357537025245861358414790316614430896697098478443270644249500699909187972763180261652608199204471280927264721877662823715542556957509292001721296211253486778277463932508041035851299637421617787742540309017229889247284375547636328476242375491871515273162430657678081892798169939334480983272261902997568809733153092539559124435004960940209639574283285490899586509264394056662925305799107455800940372837043823386397825632217114324456892953883894999706712742990859994451054965662563647805443736929575734854548212119872772578642149303526921988730541612396405584604719893557598543767323824640026227769868505013676577899038104297928309794169794841105136205435364233101257408256598647662176973606354356674596403708842464289394855669522404926827384489934167035212396907167217291672354143580382657557969337225638433367411932249332019890268953303837026399656859832188319075650709293078284130190133059262734604103549163385684042912324147850161864414046216998847871286328615130410604891532902282368752583160052759584289056053576549042647394166485275031700703033939118308077684539174039922507799320302588378009615636727959447348153450845562444872245983250982407902532215749126452306258283693225549956160736618269863751634115466835794341625398595716324430937306229612100429659680721696112756800910111111544284293089338809833217679896889042775304788789696513691845347421150197861042202934745649920094660889465598637462706922201293368921398374961009325111801764162486286570202858688644436593607772465890139163283162948676514699889625401233595353311855685316052030082377435869614613164385845984733026627846541490970199808955577731754200804958207763587641026859092335201426746895757855613292073166952550862319394114279547314151628240097490145174752578436051468559135869902743700831075564503035786983035358504414244920936495612521200126813845297938185968468737459221604232654032982051153076024947336544535506315469741709540980200906717783189019420649777143422746737282107525003269610566175778259856103028841976526792993104534264783557454754435072544773678144618549947360420250854146442390415818718097269401432896484573466694888733338922863876493953734167118037154188962310704639298184151234712564465165008013328989919843179866281059726782885299242081979749217154321482946526986906603423124404818973326598686909583108035144771485123810778520324211860006798704255772737038415335990249217835075130654895626095966249782690762659117956640506560924292355300978084930106851031544605094914652486910418978219986989631330080858865406992942945951140590847873978183650657748068519435401073531139062132340250033118003514040737180342562370024449640788835442137345858181896480916424671140268102586134280284873531599379927403406364189887211523820685456543943226463064421708802820699126061142959116947710394386047680240723492354626244604811103322234214484888915629757911417207906275030956081253877067648434317673365168903651935929663138443347800471744022961854144597029373334509554392846260778808700322442868898226267957886159611046157665585980263924268578969037468085201009059792411979338288901109907080115450533689569967524687389791814939997011613875666721419895616223400801952147949758822777410840613992814067119255268890167301132090185132682728569075629686367626336986017346571208522395432192792020055186955813179299601622744352358171418438793742480172002473559713894740170271014471237243181146252488834281801815748146882203419759583167736862381671551824054165645975645066184713941205840920031972639801577436663597521626190794803642173369663028891424133977180554011683034261807616060323613889880765069379395321910270214126136567813809746403826469907800677080617023043271993049754213500024676227933255780249093673985400131855964522951322462596725034338323319741717441962522780799137478658666168760358694445942494422632420501412500754230415109801400730191461173276115274183020640102326595044334256967055924796291686421361474063155881101060473447812145409198452645458756723949699939794698331079906816102925369444451057795873086361319307976340629534919472663491977574724386419623362794531764493505616340455261949561111464566386099183225521886251198124823914879664057367368408489385177401948561523420608087177846224654707707555584645112732962562430610078917084708203215446969505929284954559332463867028906160955280677370953032946600821414073661677426072696489294297682565009230849023017681057105518229704246305143229222488560490784994397027893591202178226791746030810088251245499236827749936102309346736630439802381841928863216378128535805619335928117049849343253588806680628813760353314685922661791274466572184737224805600706071897979453354061058956784135081260173862611965170647615088134796241303524947128081219273202677186192672119607536228069542582026146591054412568533348678016874776306552975753009426883837230842579950921518268204851759286116635479621297359454483896346021464863254083301606724235378246493497967514700967800300613015241280569661818210667395355503318261786505887063506152338325257123002187594488494004667647598442558528854145443655896363146794124626736393330772297553502529071294878896782444453513538925237965447662466602781589027687085512375017049445963366855592020186125822253287330293792292098481857535230329728545792762591897735232580680447897967750415369644028710337778986352222531981923940951813314309702234008454546027520104598972719291993004295327329824121187035563053852454189324371064631191793651731508067955820232544560767523917615269221013203265551648368367805924626218026148324705240056540562327131242109466261265009350273127351674436888716579300571083224864320800227581641802307305723988044908509858772276970744015611181616953847179092628865103695216027993517734053822475561507792144765735819012929204424334466891890850275768033667814103879014579837442079037325333494031253207473902896156734603536112029064287006506223246437490244980073716560772981662122366133336264266477536034107955879712601963115659875395496660446698103543900136235925399433184159044669454234397511507154573714058563162885720552556918686512753942139599462018248002922466192364624675969774923034761609658823232287066113604600615962525250460750929659810244094698760427888685823306466467252566201391446833997647394572226868790731390823690777377977877311886615179912818871670128190238994610092564558190522993265488081677094391728623569659388272065322473709640499059536092019990932467549115225760586774060971573740348843357861769298587291175630223712131687848481060085140703416910066167268097285185445767930565347844908147256247107718466474282948404647977977562211628234673421909704796812702828401165211495488254815230059760199500418348059943025770724125624063223812197381340180949126781879305090554000924743059217970310436805705554279110580753616366400571260872011822672899640236063854650444704147388224726558416798690401401575656390944647127668020260557173933014694422914423183450871517939716036752163655592989490433303625327997902985050405563111296102550707830358764080290780599896695349467686885355891681081764984019611895703597300320473865539616056349778884706503984546337777016460406673723904347748272598187673964133102437483495360058635255839213496828411573013456368368188955126421507415148571693750724244701155006818238860951102015686044076877007563942869634210296511590242070447100241140566825974277967021710207607934447348500299713709198764623818234513140720081169849345467766577524273575156447817039550111993625288807792299404232973609279559795033234877136024351947546686505375219371074971366400061615222095860621530604178646320846480701511985636972367317173584091231357820170812978747268215996410131556380485392731316118689557561124355232214419111464317869221156485219526583480965536661706285737778626800536492834710241356218713154319933543884252130194789366337924936470181855293150948888185689219739991400543002919163798989880056493818598899820495012281061851885404136642228766186743519579920394698465077949496098182481392125712472499026489825600491154725693664240373200132310817213793129309587233736797553058339872669212074565596528215272750155778797884956119571609019389973767648983647079734417326864515370378687892717011698614690606952240628949532983345397899219035921803235164801707729943979211902383178496754800574793614740727476369088370195064094186622893157224620190612676280465792526327096173031527898257495572078016341605051342830179315859915841732974090681584661368558834987741184411567469472313902829303774569072329788392442312716587185271845587079753501950095866369595901030361758941103436670513876456620331601088613473474129601066690831086040710360665494516390060450940039730436880012990283762764498146023098097374501784996574012831013426642554786915725553027248875937519317772557307304455509746400638939011019928325365886374054429284865690539890580475439024909103031909708984209561825955836302611082041492346599455663276495009549031971957550508417304904199898236298792396772334530709413541434662689496527600553736499822034193609336318040125487778189579047565258703800043112589713460023165374862797942756583390391327668560205458876805822383664719309326740133387911177759195596351255455366532364983321042525554524868664969546164756164302026218422325195047204582778169354207743527409601562318577731487036635645835939441869981449476132752680238812767108739110610266101030187594629360623449170535700731384419735535414293911081787662660186799462105051749664137532152459738391551815319413793165065563304242246550914326776829652313766065297754409706147127956711906973014427398309073090832920733064074768869114717087672947261176574651362301132415632235376515382217259882726544137302086343081064726175223602993229687504384586628430683983535476618880517550109225357036022262281341201222424154482752026892648484351753295703946777988443671790372612300770018072478663727985108767105928300912214531575643698873428212540933600737546372949828236357466336530675145212471529769552443871773552551730757273318130268767580152748213656236160003996109794688653682997635277411413889408721545830627571728229339252529478544163530311526772725404438475328630448106686157842364305481713618284986723964853520352502215117291244670271375853779575401887251451063379199016301773599847735321704245711578060012991701279905428713033969275871329641047339983687161819528775024357807916278665838427172726313587528316210401656766345107264054842871366055492649893418253387668769653618201689891140132586283839939161492643658391974556397977871162094336397688814709385112544787222115471902992987523001591953494050905996361095602649740072320780693152065052866426535539688009753240567826637264735909262974247245117643819349156740261977836373049832691002269764673465345620826447999236733740382218682410189645880881350933094961467283824036822353090168959925192742352441944552421423736091174604025806689497056053011897852074775045760590793664954975139597158127365583356679518075512737058317414879928315998377904743327192825337338746472186986162855493983199114321379851367059005527934380844957600541748973707572079541050745360649150450404088908043662771081898481472703127297670525090091990406604857015019566710159369728120306500599352910421636011437181217590954683470264122724792744380565006924593829522339102522208440207014506504525437593491204336948785791536438926699201581187885938044655470159185376258023412745064393162005409490350226266854015783778293305935358062481342307538929037374494543092261138984048325125666450109351110440441575389983987332671076711135807766522373556546710854470524058722614467127422664005685347537602523467704495820620333040098956230130709494162142913896032450549281479082236236236564938102721423371821946950256197330531020014682358171846859032548738807883704660935633130324400011513671406473066201870390905822096816493050378591513975215543427165450293572094173109260075089250128586971143172434896354559325233644078950623270135256779799502848080600643005630078628623786334018255874794304469911933404026752467924503715429558482040491534133926635998676115171272005525219417180248606107498224743332220880588415375876000451451358267855932753305850501654502440997076124968226767149999507214883342621124495623919127030848305724255980413591132671239935418746589413585780861059747329062952736443823881267051572734937597387361686004168897004676123666397944475682503305923201547334557121359104140420606431122629075347405719702464852372100983540126393246613515767057636358592427620417592893947868538974066848992775929207590236315886505790816083845237536832404826998214719355274490508960319123837548628139581004553338390384292343256648202072686920240853883761037865949383970824842278149684149880831169248187088059732059303614722523161395010808007935436587794623636159728590706048504491442127247887306944232739208338072048382742516400483617193224657294407684171478035159090570538451267206369404013526752511427072038720495094153910270642089852150830667812285394215707875165621843242494848747209517583473275676964725452904437345593493709728738055974994779347649997302289859055906410004900059573652016104786807828221957105994757883932768270770171496808604783700278931033146643682262851733397336229539371885755229251571259997665102435498038242784702241406573216510766774623336323508586100178136263358259822932035799582161912198244846848347973646737857154181442926336705376930925966069416800954358927116439245694653896419724519471677079208615944950577771548196684764532766992220948181398403792646119475852292690328484043261743956422656073096725203091415696245945033026320663015988055498116748618977020905008510004368363292085473116412078155755115489725474048496343107482453205242017772269052735214415126366281381569724812339467078733770217057678717980694182142924431224384806343184598283576411954120856824175966851842893977454798884326161706222765838797493269050277650996530145582194587050187130793421203502211028418070900740643638921936215220740439076745948901892423763881612821917800422379080977855440528807827390403870092487258775824090365187406178466905813132519356276746880836179524203054557310374671008846084060017168047036293465906352741131005642602576298533836390510841106436376142686363633785926808216131602127071867248223155237651291785517968848881375983183987042498527358007664796365344613012915997305345475800930399147370905684449730947334962207320717840896386750279517474950941232270303563677278799606630672870839253922505188569017133065959150697684518249589559391165161019454801061090121982763020815246080354251757916062614566814158894859357128006500455432658633403582084158631003304743911003749429366370147867580843701038776836112698201555538841337841255578573008605023969426705810063028951914831338955424059719669208962876880941041202790790636780384429392516296131288451589904777398737503224299087069059391252664628098531809940440647685585824093335775020834658730482061996822367697275945038376589433409105255681785440096407175903394461216316492933014400069316551269518915519637906194399208213303292610332031187394998451148802205241327815010072857641544973274629192050914115397304086643668881953173511907891504113578936641101244164434570256724316698080131081698146201158059203226630429792559405882847304042723729460546137577714510406741106302862211189401006180411254886496883018691296770333566224810272514991718673035139510746708769837576583633881115849340580815689750299459931749440859968014363318003412881417127215385947148315472529515054927765340642275237910132584874049202796736456964820329323170743007257969400250871738458109175418525653377242628495539244674902575743200924207982181500804799532829239851130986830322018390301978528244642709645133102334744809388397247671312921238939425280951653757617698592625270462465633442950686154879800138623355337066621992195096895294974683426266740500184505511649113836294337730308983766269625875794493851262694437450670934593515921435522509256748804676003671263718673305128874662754984246471597420497759281920232949028439776047071731665756530035541055268097923723601268816927076390331508535331366259997332451368386129322905999736777249578662444119222273839983919364282859547955337024574881612623039292374266574138522975510107651385720038598897046982093264018594775005777117876952437469150995615557849001156711870918623360069749791160525011109530581216749826729105492101106579804425336635866304801916637682070021129068787467462278936938794322718573381816787363378648687661974364217360264608992905140326132028083524294473241938317552800347494094746045742027318684308756099260572094944534125016444718158830395941518454312090406230652629416379694288268953108174584849578150027210410678865005884849584507143857874091019370330923397049883465605073843151041800392175560661768258330424233516768187662750191913326889310877486899617755283671630398575196204388144702737609529926138703446873342974513504504067136115630329713550589732300789650963924574643168030291737219756037454282925387754025512426293293213432274371749110435987643333525818490286560634240990492406904554248376805641402597605125775643699232488918354832413631515148026624603437465331139341724343163326800940518279713715995155791945284640787098369347254515851773892620484824146645030524657322952466251692157608015058805527887313190445201376528818214630906389367571686906062906063883269950138960284499900041998875907804266630963616053073205237992790313173476846100197151013705311626013640953490397865659877338501792774534614196279171443144979836138458197783425426416821716092218639563962148124782170047612845852388720323050489819540886894743447751832385698723309095976305606244188954068749292862379207124884772028305465051642883407436167767967525649647618188896116975702639916288708228070980758365935115195803427376067950201374663685793677034716478341100524815372322330455535386501813367017205476273981001033825921449598919358622992235973778512578436835496988331773790817586843464499131187115535037966529956865478221197080255165495163821269269377141599875983785650472658548822737906537490346931768488300891531709060772168083554387626544915973683569253717064504701327219043161468615058466227019637751285247172867162373238447369475123801563047039554482862937735257571114734221603249041466616054490293457965016905347414932505605769872139210711972201118333345399224643458520302882317019627381499398521324547180680686107614487986563081778039579196417340373830427913862110389445785223148153338136025896153566335399081994957436602266188976691715157978183223266412158318680133243113676102747331121505712772388665321815170298657209571029426079368698562525366833633895254951326981001744699217035210097169793795480392177256913709057194201591253168196011410757774798717311639476971066562777414752592871692916853685467859368992464905009107787651522558779050564730594488675918685940306368351440264858330064301094593421760927038372507474195883030499094273962497164265358650084431527882140489093526030095097523939916554320759317309057976775921275401677799931795063682059359938315844602762861337623822347530983558347211007867070606886727733099092463048894535921377421388881454517689132512049895177481487713330216438471949726411363029731717212044384787655512284398224967167515704345511943369409433641905297578226109928593572474808659977060996796492972991774163244382994731491959276418325114608070554415426958311625553338835609241326897668676826700207644360529810536184599764837117394266809020726243045383394733597074466003942143684151297969154750988552849209975684302867548023018392739041871722700353771355946723062260939194562515376338291204626362429944086581678694816768534877263553175027862316279948158850514361438504163482741989165759649498364332519270360760960142894531134661353128742192336670812659771057312426664198890709075943142122413463485044667160596413975240927257061410761825192943113056478205368703436279437797338473977575314008610305923446461332876090359148931308027137789884873264119507533414798841596288890458778029460835704710987481989771215170081220343781354860579303375778860145945661263728466564430968138466711250013331604772297673267518327154923248513021346746411683068665223745532665154813271202369122381525685742292427138957602047182697522426629617785142136676891774065214801325668984062924083350452344745356042998744280456914753975646155838662928222956717860264550063583058328157183783760132959147478711660218923813496444138823535184709251985144097150789833728026788903343922438317189638261082536014142587536742426698488486210056030109814562381388202776194790872856834222263718183171735931915680745155087635430584956794819097528123158583070478508429788447077746716551698135400977782239644087602193693527142330333234334195087382514705244578058801423370936001630102703796358447102740576653437188090785435150482300303815676800663539876467274225020404553122227241833002722700169769772975945148452566309782979567631241124043951282654669002343961731742570920522011739363171059359263499376137182073262663136891986188472636478663440178417577798193799163288512962300528014726595765413386362076167210501747463463058861992759541501373410922967931124652195277078009942931207210837926355140162846273145884819663820128396924729645902272900762310561181917605976537957455562305413294181188580038541740327078962959546890557767683589412241976390931645706824742330159523392948630744868429459080522437362918986881922058374197138144447744378156432001005836119396095132395836391803459365610597918037780005951624950441661978310622149648105416102948256621849381410078074699638686383425142915772359658773021137323542089225129867407107912901426893675487607924447889707970284987271118026460475382253387259176505184889226986927294252620291511013989729525531373316472964732543621740821066849887941292821568059041099631026007150756835430903573145800778265474038592447415408177515213459389076587524895720940380837487025521492592454075122763298304033248422544547196271509197370468079002714399942898744320487850696895473268429060705831896820894532870482419186721246732798199965610084441039995428474035677484665782275476529589309826027126950691254291648648393541310428735620885301846523672625411308586897398921270761222898913177048802308779230260575888073744137901508244280592036996103143125023256148889733788487477518837462851686145625410153809170556199794051921799886841003052623979873195566397909104435100752239598672568843534506279520923803670680386371701753415808480560637154237991906865109982375640894499339452828037288329221022015170317943089733040182909307348381168922416533444018376472305852084842014984834090305061047189280004094225470660451898268223886573086362479469159842216683120804143860780543187522345454358185497639980518171951790749652914312443922555660860817396512177320749788604571541736214394811314145165333206144659345791216149945052200313118729108748210995403664597692976854585951294936584552929382067857847391054455287359743880710705383588713005407304110149584629056255900104457541479584727998080191265953904885384709698019681774149209719024469999996993454292276034055659502357775149570132098165676910678794114330022570043427626529121416493977479907993873985434364776242322067410313515216590797814137978689882142051293095103840062799135090466437108244999089569410353924942055126044577760728106126911129864330996669434287837807813758517565164061562612996753984264763209517634764488963243134437261734398273669959761860237798489402585877211723301359266813663873367979432548932416774566574682006122715675165983202385574465900194111441213593823001736881449912372129169432608481980664261982344914282454275331689899296230332519952810033307022116339056253901043952387144471430479421762761561062788633979465325329259707894185997555161989876707373381944300374723007790240024701498303535861090413681159828859152011052202454629184250487952093093197288140929251993821632620492868022558723290456799433084315544503361001543845682897328347684952925977229397502520637279788115536833433141865120726755086707172362011439696988779629741682343076696066086842149480659529186263508193470969899514658200592760648897731118266241030559908195063673955470377903965943511051920858283867240125943994790254128575145685467176089873224822253551097946060675400394567054755171463541809586282467923927795779492529337715005098171645373044685342192924704009417374170271601684602747290213598462407346931539454993428048242524820629682133446218406543238594329579650821357897376519964595958440445010646101135769959763361394246004548148870622776232679311969499461464890541680206707813881727740967428659840183680557905044231494343667787417253852542196975350947590936969115701332214383759798416785577832928374733248563697233649142259703455793892383183643059298034509566023913416815043398908401341462584648901809292537554825048317651191144037987144878434998876541023547179855335519912796044440885720214234935406833533915667824621283042347545915727114088843714718129661490816356230778793716493173059365636196668694066346233799647641796431156921553543138568209389703595284334614751425130801493657562234777572382029607710430825087240243525085139473117170962424942383311301324298837447261606818461953140189298307281208501339851157004824439470620136295474585357036358787270293108846223391808116517281548088228931477303667353823851913420257089640014863591940129205951962189102798943765386770334276691615742555026236279487867291526559342734913306262296991974076055952747090042371174484203578588211869240419004195810072342311764134408185576442410895253726920789074485898384336292126446292891398930212688222219536689894949230641780610029374024114374738543770218730927383975021084356340807680356178399129373741790084187262703738935703201396578150583578450570883344021634868264340537713213158228489047722336782318295817682578926206748504089755324988014279192714782463928087556534502322462637598119506177404321619678913296524534091590501198338494597630326212834194272473324447769510903985123532748033729056549527135360238085243481808407698670930260017060164916896614603405841457804795598137853529636174663298603639021734199586671994087476508489039091515180973348107584118389211773831296108990458212268377083582597410924296779108065170069351295060965281616720432727398429711850013485823750555162121354966680189451261096278403579493461550591258632010282315321178969912721302227838657855409352795800553297537978145833416458123792287008672211839557983235069683915476066402341299927070083322214622121035399651644111640127892849249746526158699491361330863419930226872960564664150351098557365392963983815635193224541831223261318292592389472024126572122346159900947438237403374590660014471548534609179275104294607866616222984133537538407403905504866557257255783704873887691869490895299905308430685495894283502087813441920168076830493989931746216125935538183275290841355536678537202614275991729606634522295436514645952588674235017474625773861232748483686902072075652594538920651758232840935088867161193673063166993961179565275185306085739120851104648089666808288161986866287211076370079852594707079234224271003068759165096440188458385156132968046796288204331521088723281094259124157463114716553140265231063692565931831614720956464722202290428314495714445670577071676648897879370993379424103090686269210791191118912800332008880432171965273857738580295294297459333333995667683547747544341119649488331903841633484110653449020639946258651403924620937980232382585295363214420007152888018886787085595528648097385675911868577803730675669232863605162364920498567715063158038549441381770840796841449269189930575354466784543384803450756293116979208807180980340820089175758881313166736322720773501536309334454950731607891632866532631489208992095209844703929753013867949820183721591933894712810273432473101357847922420297141047821755883159381482547775862358065941309294124646720154516885922387893210160493281392265789193750892481160628957907831841134025917159155876009368097408796874820670308619306178027317584997358824484778165719771239969130100103552029188966035419717912274529337071703674972232336129976275270944938388587769446744683381774006815344250275247622012259379806870442135185941298209046421606757115682891029357910753549131338001040324747303452438717773715006759821729667836392567493844132382538105760825087047478410819017896681071668595726113037362599903829469765633471947077441927505395224875320813283263122799650408558925576095658398015061478730770954720681563722604550732083316805578871363799345635399764963183221636232115743901047721682573943718807693725934142568816685841485977983535787605416423644294293673317150730642670291620860657951393127916774595391615195127148217482320193618881140644814645882889633012812061043098280669850129381056864688845668311897840464216922447803357945635873175705508504580538431456442815560230835121924771940497925172225950535668478340481465583813555186587240352608691027716774401847858835664478226454345063217077797788959367820856363837406787504874461123733193431296744705459526720044308358788577471509865428821542499766934225782193952249931476269509319422593481464301242036087486777585370429259298977153889954307622151854084910852839555991235872499498505130880609979609453943253937558303693804422235751814162593508548325949146248474318928091841364053008630965581048401541057382859020906562528045141864996459767296624064880223252119382446563348589167780991262614728488976610451393072076297409062925459346118715529827796393197924206949929846104343657779993798841513290907180920112441389993789999498146682273922483562972753903986904842537440268047646815442706173277257890903500716099605585627717550597879030613190901629828614976981007263642058407437929336108259191790353635426736265146184712463362389235046557215828793039607182798041801782294171582451824631345482529828511569636615603873268006208278720761191093691105846035291325640014519375059694944096693825554924570683517577943752157857557936070786249974142047458249001677089518273881237869857123624218114863927434748353359627712946866364452812447969663568841336985765600522383585544714927447215942146541976098454390271602179026714813124820667795375934415172866934544826709228291353626848792681346575553413941644486296510345924437302215563450891124326597776254282852422121439933979873682754469012150778776137480093429713103446373124162473550516352887878726131576797220408350344926581978960249552710337872274663241968434228579902083708563854979678410537629337431582204970353496552914852039248496839109538480508606597593571362716221681924140933554332645070215781363704405643970720634162973522099594140457841011805515141628656733663686984713928659363596245305459972483140990756739820327603395764142686307430174032068373689005597849342231123452646144871257685487628291348715280915442306670334884035626785663304935032713691598163385455850643596410974807761648896576355184660052304862961761472660297249920031299838037839298487999374268321950921130043995012319653621823061017532074567746229871888379368612165071416387139799160538331386106635992630126767935047946502462423755982187058352232367622374394086258658585397388478218911948404145527688106048291714243125573252347276963648344998066518227697077305695393497259839354682549271060423738953889950457940127247781909214241750233000813123862474079637630152729867867871701193370581966222112036249828767764642821053779034216569655016853615165608189771478686335884949581660826693369381979573166327960945842102201963385198346542952450881741872864921100193726782847769771614438667103301974034890324060574258973454169450696679277813356794748913604797986479942688571731762916597211245633957669943543489243123973892758185470376562525008921090529429249255230328596753429554788086214208254697466458256900080035291795370973470294192867065328895793889215870771819113117971319699610250849698040993678261543114545915990391576582760652472417438325332236386194143966980823257032568030505976174871594353051851748801164220735446271950882794995166367525644299643493202870215503045007364505283032667152644266929619477920743634312739933184419922129795765790814928775284775935122658492379490640664607403999232913382000483075895262032074888289051248449155740181903325253227600820523412137007201066341898519556345504514025962250940805639461157387676146278681678852088398395931893311473221232107666177697136382522462486545861289937016562596861927328611018968071796776800630573765047735590822900666083889323851090819700847034987637664893198706518414215562342755200518072293496941979943573138919902010483149543495032657213295517550461037825714285709095122898266806146856565293239614446995904178823015171078653283689595992905026243383699458061803440424504111595571462189040964650029331813844574768704085448468899960411899238843778024514724821546816695152901161295545530149932981696884514595948309672873205430150055171192762594980911329139547519534995995183218634697978977874403384953970143757353723929616208211859689819627565486514938790949030837988321000740263590555059127749423930110303108588368373950402032939381482419143812604270227060958540557877333552025438192140199755414798717570973684135749436296938273820105877095704258059884696255182950078509427146760749880966702751745935187275018025156873087680847991400136652716118843398382703848730662055186205628476783875996871835124255998621395061951804569148390519528157601204055210871331738967664507833063654274845075563083661184923662103084107483537080623788115064238427683462013759160927217535781294043403799556179036154456710764982024236014506065378574686606922741423283093768194014097635687370920762770528117138720298662313027148961383978438582037322308712692784165764785950406695417221843599705433962760074960547586348010607298845284917139580860139402009296726865362572563676043659473033873424709218449625246832348377954213802985420361832591186422736665089910198396484656890188577091257243714099763708568901172708823745877477110828432838981230106982929610790847571953704732544097885895413059002582325747443819984418823198212699120945694192387774523192939020643584845708064846269278901700528107326458205032898450009568732147059469597367104807372038249102983241234176676293985209569038056294758906154088739477983812623178330086786664471035885503011447938934508732225671433026923264514597001525869968779905245045341579342945825497092444026149279185612514225166542964353496921938662910968403472076925461336824800000337941611418169660876797903246509615422107298413805490072368557974759037921828307187206540269055907908879794710477996642331513882310103806642308079033547166252183869050580161560782491119087854852313772180869283887054605835743682507893342132926469370323280110565470006374041742527509093887879287048159904912912127025493644156231863933547748040425099723147559299139349274598067720230180358087118201118867961757678297756983157653891595432039875340404763033354976235990163126596432766615982946437166866682330605068285521162156956130173351576223491832092341743764594139796249883688897391298851847297791092633934464440699759364867073486456735476860348929428155145600081119378220119447904567802204763268480636724767149061973853372634371602975749977900135068673455457836540308158611702492164016609021112678839088493795983066039276676603871529886882397450213057548961544644313933424184386284467757486612831620724540887359830227336863399478670553975314997281689941076431774193350382128152208963696847977390835563586455546059857748047542465455876546166842638614614531674373425669351154060167814160884532693962763377874133652885711174971181395065347573106762010682203519910123209170627844498512729093433134459054017063722845542153433861915720073571510318025160123031310632428888018756670643228640710251445453675409742993475756093915547293957023370071575783018253190436148764012371552147170641979898266724008481665281991445053327202735974222271611167019019143799864316846237947376250019872964953157603073807993554938566112322623710198155383755910616017344123143456534446316024545355930903092202673979185202152888614511603008206713559823893135592170670885416809139819487218165534202978737596623407848085204635066354548401425152413083476510062266413877717352394696871660168776474064567276232351825228254246365550065908849249209796793635318213992803601600074051154369843753864576382118311886815652216179238890188670461695995577977407291641336791925780399668602167329416873321442646655910172825187406297019709820536926930928512065109307096427867249951520691135741486430155533790729517239759884632866613278035354140704827912488659273329350128441203287402303557200872210099578851296943737460621637690562201739589741237084391282408117496248211826050106597455405831057912466189482406054211032557108455440080310684566900629231575048882008562064679273546078327744491368601036138351304520872766759850707651159389995944256639239253638220644588720263056203210141634146593201738487538361334302200077533419831336540920198028966109264761558914899773459478377225542362522147815922937708050258752145270260908513278645671300948224805778871699514988793860767891551849764181765846577122544007552783136879646829646890819328223703327673449797958565739188482340199589507151834080786388837551213324092815875298037893922592606531885649881177814777735943786573239334928262960095810364566221847476818848177431831627470208010843568102213298376949749886325050357951679351960120988576776604044305549584317040052561647714689338934412060300746562433593332742678921380643457040977214236007507187074308787549951085309459767781668516310964764814946434936080989104722846791736093224713964279832601264559660500738817134748118866144881445063358291253636906560352475590946217465901520453852923845916344610774926793607338582371417502505549943567694226276370936070238309024029755653930733796694798245414742604341941865088112634590151787717371189189355315215343080703471716636142961530579738714139479305429004164587462195868000234998449224605519731486357937131955427381073830592699002401218057857097372969071277257034302281040870604997843502762457546730379200781645803370876932113026286944985262671696378802041425519888136899035131182144443916074899898474375112324356887064198171991258456711575641663732989927740503679541141797181275676344500593709088014763517946986544564498671096309685139074313259716448564573118135481179140814675956519430964655035949476622778424372680452123242324643914285033298507426933901441488063469730565173451528196938250796115042192769895595877372052083518116331205095540104369322336159702523429722472166805921345988019722818228210492281610498706751540923467262693030540309812994844370429094268512122628010024981833618072733453214655534363611142119096050983701460576831854179628527902578781728369972695086597083625722420255331557910425001500902460170005049339433424758327929861522644140529164445666272009675704343856959066412364581182291770957522602914264827679116748748641355082674369861175683951032773157245649561939571676082639968161454609315506397550858976201173475984290934572780776020386690436542166558543629574818412241770552198415719285921758480529867303951121346084249355690077130161803921287914925984801462296783960549447800001209133705831694735387754534086277447588549096054908532091558730508977564657353394407966803241699837692757977839851917722836601250944532144669444250305453774234215789031394169130120045237595943700816533049367679953402978414891125676859295031750936534555032869010980116669134654332027733373695481462513720684295153604658311153387764031621268023309769775932274965962446808203454794146117628411463545287796781007435999394559128391519943923150130422495399308385264351126667992373636541619989804910923221257264649464216456771007629530641557663592278173690176676587789358898833057898128573553931249497167132328388887885278120691979563688694141726572002422926599919108791348378396966839891334095508042484400560326246697645883043949693857410585408089655240939909838657245778913558738981383749213204461325203877928183391130903819885324430112135288626418838478577294743670229124606357512603095113805895272836515957437580644771215496867739205434991247354283186129251787334587336804496292351945347465438231151032274713229277472355018646495406496795403629180700886550323656253144600411640287209984035059072948973678272478935056155591876753400147636535429539633640118647561594017809329170655595148725168882098670943081999269028472990972606840212904667819287372356327979473035322514285239922872432648809772514828851673769273375932270551341017006459241048777862373044575755415383895718288154268070308122492275408757159675201528282878140825064955409693168951798137080965575004979176539515305072102842199713078350177416797235771662137123988220893325210779593532259232180637474910463043346502172342844926329664426157282221111182768953258970084666277492188905205957306765464109423429986918786851346976521515631197483488682500332061437615171042469893395428259098514422043056865796920663501909451883033156680740786108629322379227993240994428370283026204285175890075809169838420600365524105691161864523231355168020740042684180624880476298536873036356261482739278210004121395947711906807513485687024378481313505616107202278326212361971623101419956406024833379160310924451688871571464482618399201821310712960256792422142310671871496229789296157494254739216030072637094667390892601476915889256901164746082107064348388518104468974559385389485589876936230454716756691642555270494359903713312770373365970315731942269450758837507972535747647439790821457929368555650131874694215966098852265988939846744301912650463531505180512837499663237973006994623737597720949096823327331135468865020887783309382581421258404185015990542716255751083614250107732411140206312781538460021564953501157162974097626408761263073670561037371001190988656894099932750064018515065626768244155665956031043594490180672449988854509351288456074371475022667305194279507398218342291092431182330777534209930125048766216067322521561410640767585716540794979006370151258555758875413669078203116470314837729322934347114736586030829501906555846994383427292972645045636418027605843742393098507762190013603451795425617614305757990652099125161095834190887363795523678813453344242479480841563444642874844094279018254419700342345100724146512690318143700464684570749416014654880117835676062748784017447110777615070545065285942556141442594836051001681049719592321084110928874204123874026360907350763760851982205148956735380602570966034660599324019874712831978611302996925299355635598159341215263310299305625393882460954678841264385736644462415164437044075843045024585994422613999459943436319222379371114348020636261969324264068185830660339983345651927317382204613384153924749163880573759530153938944377695640544129180025661863076691219278594699493957786312422734540954049924376048298254636826669160094618970825540820924978100076644422502985479770243224329099750404339766995214582194825177670062302118477768243936774302775919893790241770658523187456480933435158214650538644333711412918455438529527942435803879930688631686720862422110801839090211716183451168757325318145287805258575000590608163415064951166471847410540881363202625483200681167595182128438522710014023022192019923962528789038725300387710838753059952012961612509866338480770424376349941017543250821786435337966892015256862700121944549524466691326269844471262797241263390599005002016391220550250124043304267297488260019858331670090241028200790251599550636878907293422418205606080741816475315326588635898026501359855691158359872787941410624490546623508284087663014394653375606873218388896949030510045570705427675638060199137993604051674305277756273187658381410404593410978018001115657355446775896074336582298759910860240589993865070554326268384124900162026205083315678353799974676597961370585070418965813751315758084197640467585418011720361685671490320345704023608041406445626264057324568283190745065418532776945920391188809164504036630972178898657815166252156721392651503706357477571856401685830636821766631316998625487596746492897738307709158509365817378464154564177464498911395297496144477158744975091890577529458554480739382547142601278505947636481155384350768232409312735090317070596616748720637395862449747041308347971522914304099781208168709036066698649343029500199470992543619883098395792437000528683754152329596099876522268557384763896537694820692956729776013602266975562805235989798215880780161733117427412142416331702072446544553002729818596236481271420312798852138921175258646355975149480718522619365763873798054376940687700807393658902584932783195405374790933354653933984757233103478489139370362292397708198874447738680139832513664676193901057116096285682784911203308645603474558832740350656130675626380296347428905700908882178849509138515668521157799242623787760094058903797683452244415192131513614911731341589216764827855363430851400969800888203961982529052192023042353723251039481709129943349683246861293725116657552388673700902180118905059956250493508476528581318789378076302637819428195144339612105036468641015186301085763150370827150355940298516707200913678089245593143382877858835186787524958024994735730171912131090917785759865414411776842739025406703872816844184719892853277160087860171621073658539959508257773900648836924699245240441863633537056505518604268195471066955113395366029143837350443644202098942206447449998256157095791505098496971927692697817320331789983742707612498358443040294891766467878672350492000854545091248264683862880600228352973180362555342859372135253230844151644011393132190651628526235571417245300493754724331102931045598945964263675664687232392110621016609729836752983884951701599575278208557962805325686598682134112325516684265182211984184860743968451767035405203733324442728970959498078374064099410345771197407759263076085788150449953092830801484820022785721792136944296165006461067548523801533807145068206039238818995013460019586186283026627959002196995798549414300858628050364712211576367054436860392852835455661657736230904889744963129614099706889684033641388086085870399513188692270896924134094270268762461811457485800275238546881319731468582688106405751637756823839647464211416023092668786146070539158711547340415305629908334564462212477287272180460035403677021371969633870099086517465789766835540992882390260181352943337411252876737763967179014610534262216917516752468409889007237083517613227383726717243553283834323812765570510331420496906771128500665562766497018706536813619093349772463818322381684718503265886893886221107484811294634494977834160431400804123671095120591569986179785219927788115257916056675890519647714484808804341748881467774083746915080378990753450128405016629093765431867388305055296600502658928178327617039595764441771552001376762099867832283643806305049865236151065400289601191698607318455499329143852778013122027674064495978717286545050341906733667013690232804438962964015515987435591791014625026658686900021669507486562375982219919829712751925221138947892927897882325063678430011673157290580231793680537749782439571366466229008783648109597144037891134679732062408580491890699588724107838010165451214079473563291175900495648727894253112199819749570272837745655565421833476368104625485226291563183333825613540506743525561867331526323010017374883011270460012433851194336932446472783619233723272061057027417940513299779483930315229468032620997849140181002815333027301055943221178158774105025265091775788357213711376986256316344712523698896347021052569765541907680829450499545108648537134006116230543233897527494060187937551212106907369719518620113771085957398158392799691067982480534660973034984695931678119722136733356568682083684173421378111205859320869115968656510504830077668541149785200324435055424581092961021582630038870521365490787491687991614869888137591156735433077558556993615108369668768198055298600081719245917628706613746424457095910318006805935661985225624761788567244551777657178175994720993907354577314601756129074853848643048333754232768012018971961658426017363485613886454777369062351881337267351262048163076200020221798193311997746874074232187630649359136604927282984389253092537374017813295270763492773776801556926001061459025016339255721505908817687009834160534162014282319269426635778678950052754797799414486982016290425782402280633483037465488973295716104467468229778388304835753556018593010672312412558242982426544808500400669407455836423947782451645986198734308005037871783304725474864772261549620571897023498114394089011509439032275999284882744715848075538655074564255304123748390685181182727100209469832117945699498503374186236990783457830318704062969061116996609501917984969516677150931120526259733010703285132130418216423675284256651567433388723523912419771526862925492522156745435457474954943074942882901048182730877869074142204277318088845617112948714229811910921476878194125285123884917315385514531366546374202355224464260506758550130682238970442440920310109788192433263772122852625148218740557196416883398929097825084159401960993336323158445715147780894331482413625894455938898367092414276770686144801264542372846035332144683107015979230279260027116651867104046378125556029787902016238398349905531146376521254611247619349944107418165933510887643484124785602402344997099157227050564098100531364889543757286908399382665110304519465746652149238049522383397400969270328373105204133150515682372854988515585465049298741150519033029149929594303538093472620906273615482644216261165781179447719549979639712747363238228368606290520394623498280700623675479280758128971121965511560229825302153850864181790057056250083148443733304222669304218738281934950730770879084989062518365902413360152289737928748832119560492803180209406893627145488743636351407585731262686607269712588155388204328589606703427193991638097080024739536215956873159130262026083044223844338543892565863819577103668199092829672164073887551461050463511911041642049379523600901610235865842719177450118975568658810789304132625837177002681775468195167958000197989345340159786659096995587536146104418721214445052803766867885875322269053816055625145761522980938789722802136621192274692397711366054747933786758113464552638663808650669536457804243931380447883971154941329034448105019514704968111317012199162089913730093141031185456709639829985967354261544939433497032364145208568660044963191795525570983198598208620941758412784512787460376968192002241778791542668432196281773046464363226996971959440125628249719267904400674754002100194986719417420346693162781098049183138272470859935150647575656353366523277063507621732991700290371834642116864969633291700979135310870486507786810278199979409788504124618914370780456404409185387418754981960773626147146050917868034069082747565449194517179451670142464865508557037392053692072615602346442740848236509636441072093397005786843283804347868354655387850993899571681309399014395158997210138599284837739287064754356344309826193783390404631723331704246924566335661189517784958543547275934935502420283515389469519699132140957837528153672618507262026270164900499151169881843606311206505417326223773234223657830609132801005266521698913398012145791058916840734850511740766360898446885659835383728541698262950874641806155704580761215632589548859211735139081874925486204678836210905454397328124884956312771901007364061167533599756173058079310810236958095433208802649613460669532895807613343202217097509564017967253576401745751612675318726428879796752377303382258703851965687630661407209774945539828182780121270607591222588379651789996221864295178595749183512457924441177604334802603680742084035177703000002071088618704858166689741451222296732904107134944856370635012593668823660385638269624267592487724134920069572665430988772998467243274109003752617852915370911319610515300377680091880652421772283288317330210609925846084313671078895243724087670636576429336254543711178047566672650758918460460927711224943636568284131322040077998037044030124098557163602510912601892822746268848455289328586469963874395480518528056203774312536166774444922185404646751127881278101471523670486810113146538033025756906724437235083698929763559082511164878015368205834058889314700941335953723326070426055482073680295906860194751449273880723175762484238748959151908597154756501817734882540323435852324453258112096119641672219267755048426895862194168611365489823776813749217653079806437739115578339831065690377810752854029609033315892799338117201256574140753024004340981495656746159450303190567587370211788994398398461951833807519755839531740684607903197481846794263673619890363567852493907004469407174705505828655240910686136092959941298208356648855266420573261640443427524680701062216677530671924318196112710479835419816720840044271279838987094431440196884624039524515552534995223680761334320199530740316448659087351458009439080100077696841915816372541884802250282942460424676833856031957794712762530610587622064694020700777453427151099626530992277231474897819427643568461980658802127491834430527153390098138471480497191298046275766827996406272308449000546145270825603164669600720315553734494875384951105136601119442718995669854380897964593163815200526903809299195876434767088292553452322820921084414855693215048641561144902719020700177478351214077068312945453508536347673302930827901939627533313568729655811849783558818898998459794475965446666121048561273142616669698217285754754167970780166837592324391879229250273646700658584747058116368190340281924931310033380721290106581933000081721336548926787911540461450563439765407223282213479826844475473399757433454856450023322999161493639895213044406061044188273801476705888622736448166709845707539497080677306822214679253506262877355904234132599874767518795199362062210735523738620406412280431428421516117234859070224291550491890400102773307786854671059904550849101393682213776702518303402627852296420098633786351918747699428187528866310742710723896136906157702327042565407798134992655577130025044022286302746068659175885726530911456270351651292098855044085067119695611295878625189857858386345507493098218446846578745158765393126978965790927896740771847051813909145156229011216151331217503628568068444327839842195191176925245993301066015341114475445219572022030257594553390165261695839340840741047763792431219096718254679738673046433983948777149178942651096454887592634085681776630043660649994195060386796637069433014252840774688020668230777647666261845563855581460664665807272168396103988339637291305872756316391361771854896953690752901996301338455313163934115782950985145522257307905162151357872268857713987399939443549308804793619863341769777159129455417358445821953633431987762610920128998738972998164225135301150360871709572289835426642009937717970029784674333474073625661351078150437283857789021383306758658026521847771355882432318039804361096695357008312813577629456792238810092225461562530930723675721833051360721225066751362421656350524228393206612358663864087252523548223985003735608254084970343280720479238046208039736437210748697123897705487892797950319779738739529069477775620205704617357679157199629859536005031208828985596739262624198672830673271933545887294346155018095546012162283303064005887402798150182673022511855489837971164626057359747727188332768619938403405037400380694831411999705057037292343091285191252976647027251247960469818662925797136261212131121899336895655323962498735734676502720994051312050665239526798427447991124512383496508743999921901655150874692202163761668318765559393549847308332852687679204607590405553489227678568355616700975459197574636961745321781257092737095861935725540992580794102905524186695893169751649541369805312167449897335747003244468772482590078982682278006317655114938085630539252419350666920554546583843266694752614807162257980211690569652885673299533397834799975126394634349209036150667059894903974733078642879307685574067763166731288905583299674231074313511687679822852970543488285213916401094369139590729782140874285926260429067856613435140362741846787497195845704145201604320553174608208733353500586368250972752531803347765820944340115110872189539213575307290233917871121267580097513423328409889613361530209363569452827551886911069505439898736719586329330081094800998513393423595157696675673267430383809101791444477959698757612083558784913884541457350111267986782536931231297600131424818044077299653922776945490618911832570521159605030048885190719107150886265922294613370252517732302878031805799531682821391308146405019050042672047103170412747814223384654027732420238967681070716540830245440061118065104730382091439914807621570979206878356661845702845422095190139480295837826683879810253769651533626957712299826745980640460862420331878520748073341684269983775465734942655306270585544826898099781410818183176185679173565783047806585861160683543508170492149786610792299079583678803162017851613663984222458297678147877753076606053308457583412718183436683096990524665437160912273662790771752283724650977673153548481063267700967569327515695128411470619958420995565608828313226773587987958663026754046856854082290240491520563805530800241496198935753994161383387494883244701152642444796520798002663782651772396831962853324791267790499183535312776547636828135293911181920373436686653160877131148880771072709182099173511698114473191225259273363790505958805228671238989154258216211245756320643867662274211106449983320534015907447382147706066117015189838845028846055375984116278581997186790280356662076717716950249132673768685248100402862505486215290523753330878641987558519558236487266254072725312054711772176983820623115293414166914332554538238497016996910682555014511625126500916637001162987162278720420067913871783665064301454382640950472040800974345473098426074594024102479036284071568240986270845010847639745573159230709069563836393240690168950007348520754492498536352724101613059576876016365679059705776841621719519333315218726918030042746689845069547498773509775719060942520254820718386488714522483578209716757977393242251003649247306579497083479248635745452328994874055869802838449408388225823459107917517806864865390934638309840690837755830837332222749871764290500016943096646397945290362007866458254836080171231819876102646875978840680479379340322377293853125821754966634744214317677988606682077782789046167587673128375380383678693703850636668351423968174604403133144035852761272143606317708676711859593984392110881710418174984366029211163723687177935403174787136093769649923389847559213615655295393024110986961032263311756159725112067742512505502616927673273116148199790525444871857039335556820647810456821802633692259790425778153619494132268424275035797339694764790349064057865303803055625250251333886129173848948416193388785055722714457051574856044639034835154866505535468630067791059123055449126318855460737864320337939000489768964336180220794023267702367874568205713248920519856827173677138445722846306270116931159453823582168226830463278977675766266005244137625888069926981123911874332046030434820332708644486552916145603098272929665193147758034979579971645907460694798747098258549219184710799978211365515279333598669481500955504117042763342096479951367283143053000403802306048543230565936528866031805876082615188757995820824651565141574576996437200843280996182955826235487980277418647598288946146417636284309037656870755034036038189228597311481338118747255284049439975562831998332060184938251721773629511637590714653957144276819861744935064025212741268042797839122187312991971043131317218065451712211364646905444857355315123341283185554327677347355700567093477832761962961274900718691684813717231349168296459490010862865687098015067329658823821729368039969900371352978840846377349590647045679844240914394715448371561965298517903342738122496879198914709495957551725071091526710886489227394526937784936239933339577635921138306967582661271313220011308320639016783996110564016029800176457497448287301936701543913532358616504110446796301167398957769847126090299837269742115255427597982249282075911122719917648524209528578878565377278261937372256471617127673653427886070456517659827139218841562414974735001670860775574073139210514606133419063023716756204488371097566155613787125626039290740445466924037160396712932065987120804566850869470359884738927566608175969266378179230823978788620085037041518300141714876827521192121271639240173678588648789081533744419812385535395366349946012724391603917947473925445597261345462150562312649504581375726744483604950473679283152182569613962275031750180663596162098121811835742342787467424344737626853199305380160508547303434799184470977678609196847523572808047183323023325656814500485014751367601103375551710088072205462116072535547161530070730516926073573184767165626468816224047298928013183795475466971384031420077216315542555314030650327615215820836354359497549504021361376253087155356587737679676726853857028826557250789616122742839169827455175164032538818746368187183588734992923151603476961975470970996850408503375839002938542317145499653063381340401091781998332747915345998087835109818836835068757598033479469127725498080599711915016671366315398239223159314275147445530209802680545394684371531041805231221792892170397120355488210483035799372550915815299038320883057400152292092855153917978081295298626932894104771794957585185523071136598722695569893444307879926694302517463034041305208915820688648625613623048372267857047239079678120529265144649659018940220037348966008438613764853047445143627470503723221733028684338245590420984702099235260937831658417533794584030966047167794069056047399702776660562478219492180423256634714014931828336035695458043186683133072261344463104111761481977971528610030191101953643521572235596954928029406604464289977680571099406730111104279298722548575189927497630714740723713317206863032433656662733783674457072815033579415558695053998299594120237121691369075008262166872864837602423360954288607401687333456412602520951082984474307274661648630438524124200241570325132805372026845583924403081726069543117784169325699913663553983215317436249670325696404397686792716569321327595077287024149510261972646069025593335612863934104095430847041930014670185429514030018702869137414435432762565767858984749686035395755010190251945991643789899985160697609437780015543240168809987244368438343228878137093549818025270640472914304904520552202968096674157285464148368570680968954429044726165422226709938750577298709002627839027225550130666506382960431878650257652886840839948168046875468278907352226048465235988529550627441235150436630900088726366832632974394341122318098521841205162696532063297950646559296118949804267405352706680459281552794164946069452466198610752975489717360706951274433007635099611322249325172115278851101237969751856166673339346432146550239339471737173753952241854953556848512239370179148722744932362596038473048538433425232937264976664113245634936189751910417708190496429325522268457997950643887169038537192508205039970403851931890264122140293820577952749886340784294745689516751952344171909969671654865472946531873910392731619533797622563085550850000513486214509421700783592993119557841165205879497849230938086697758311765662041192769817619676992759787380125870622312744951155300806241761064856070666394058562205153477937933180895466839098152756390586654330039482172696993796698223356836212048122624749317309918525862483626541459531070413133872824907757947131393495282816255835178505295625893633041233901068897562111023046619881661457522125052310382483321595230481329832642597929236705215826824110559908816052631594303286844722276803539014893592833963546100562206811953538018131559117054324676561630025784735183927316160980554307472082943178764489872295708834963918167525257875826930226304390671300723827090513788969999629462225879744248540242590943591434967058623095767999458745294800680970595340489453712665477475741722906491052325154180682752850736053358024750959912222391518791714158723431656711423206191394513684396997008111943816199062452160259598522660727944100384756503371148269983579595820870544224020725204703783907233196799980866629873713003625100556416115746336662169735550527884752114150506510438576720117885135333215366380347016521828024163000963496203916618773736904130646530478860853987531373505800994810628075350721876865409991596531751234604704256109547518361070139058356798157303338235676877670447665654788464038247156868903843089380213105452221829843771965476759134119753601496909976303295441546944153136753151368203898202874109772203110157906042037272852633358248647813322261204682150198268804078840573304705529099809127435264053680155494537188805825729371079120311453268725208807024334559559342364543993844055794250027832964561378049526593590737893736434831071673636084485611721115227251119863287277033794595083988219909932915427567264639432423940747770379544492282043620765640158654861633079087296249334352497373255909731086493883157427167950489928339456484328343007861679443175898104731193943822291962843077758749089332536585784551040687924171241480404733171491916475990634097527519129534015807023949535440224318845245251699828127070699237374815882862564572283417254799663420030234361663237852505325300410838666494282887936338814722568309539216914468637630201148539496327154162910986811190509206931143897532909540870281869251367764257394262923791330521054813786334394550698453130055482474211669542058140685515884315761550226929609582346025747467414425009522230661453930329975681658696139936572216936284370689317379661474900956138038820421832836196203475611088628966467169560400261139694134295804156764802845522246292642612437357282374101065004948176794616317476471756232077643322277099807424334751634659739276649761493518664417636959978508037694238393811770484936905003322655443799478078081510055043609654171565083143516382247607175035125479549597409766666955480826333344351625600969302458568892588251963030948831769918173914356076192065365551581386311296417313761457636527539921468661485234818623829256299086638676518573195536979810493372543438752572735145087062129538567163085104971831840341845944110246689992497744332509771264491234559786695296161782550841047575362302485624330682253954645217353943633810214860188999172709701618285225483634916328674314569530726983891299216757011025263310644897679176793008558006301254884332890073074142650108344347550053065549717529872473421145532900826796180263446575404112345256205424715614315226704087729867615340471022998054856548289822190972299338560379320874693747399301008294554815657100919720182564391450274941717221373351974949554345597357395018731655343066273997652158521335990892967372122721509928822787252844394153424421199836784195120755585380713063711898766319277264786080651356662301118340092162953162198646941232330889847901316196789017085463976551436336026652010313457420538904990980819731824679574943493727898669547687371518336210391144941307463698413750078816860551690728681149358595263340641312679598616240861373469276123591523347800472577462353642906328232556608225626063945500644666223705232881983758095655273695214266190044333069666342918956220463911163790024723738194294827014320453700806407588942462728210524064466487722342753035571064995445866013806864021763475924519493359397981753530533174005158386073485052226245656042263036594589805530132212484556754433374502446890055699818923894736236886651396274725281573726329633912137198648783910419702075163063529359464584385349457967040695178486618674672373544652129781329219759418563201309815536733527518969845338607501990462794607799946133729993326827046460255371831929072300124677729910523762321296272606174179313582336763887411756824480818181214430991848595472314141178316423897228705727276863646196623177077639315020055006325282719052090325046617279710375981687567842494665612294080712152705042669964010293134811174102539813107581456450246175584385872292036694841014628429572161007252403437883956720288490875285618400688389100878184813662604794003258175646092361570653383706694906088474990020677979760182189304496015857272788468216669361150453178514321103639777562001148428404939127258415441150903965190185256656564554299345603279703480187666177172978303032214230430015038850920298225430491144218774793803518714739136037858888042812332099776909908845515315292454321748424707982760988477839110688319859424643979678749612331568186029678922892869013229980891749985859917542513379702482879264890659104335380882971669473207959283635314516466073725578183433563005549717506510536411930197765315336934648086062278382298986193532696664196271382393281927052742123425200594048721821082350701920409562747094248010483329409766725119395335632331020124687947633160724344988366874993713313922617627238843946558163179777835009508273009300409536317303140229192115764032931765895617993157266923978474542731324023941982582139309979273573887907553440321156345093553633862360888756445145105612372387823534427241180865835307735337588509827151814146999088107335707927342935952584159847697072260956768522428507097001048039806909308725155856888153892894307121356680003504268812936623947277132066274634310581460159249481767173091697446725764353706167065311350473753789335792853366709059705725041685725991568173811934728526341085504596905589606181836170458046671426328931082934634470923013902336439605000849658609906402200851040055073324455252133641095141292973811886037810334670000686890431368804819429445219126228900469312749983148995709968651444358713618624370878060955361099371610001857057402631679209131611033002868533566584176124975905899256335722773786079002577056004265598070727525820961736217574350056927772494639287286050529929997405214055633854872878418677915873363287051532930820284619358389339456914212525547850041042712500787566307687083988854354096931122753709179162036952161140360433748931817332957420212176353040136573390922590988805636060610611436823159340125934558339603719536444949606023667928133564708299037413970111996779284907731309180706409245925043059643480942876288691855354010783865004670178832046386336675269156999312772397676536236624127439530186577636333017795615813099461479522057513537362909431100233634813155304720968737658629250876944096446560928311339782417746702251649799822026750261764316798614048781375710181012712712682057216583979825339468439044158858188503596625985787398200590214376806437938395201552137910312857366542777066599998983336179496579629979391354631155349025724815405561134831062982581092105855781203296846027954152374027757922128843415364685462248516658679444887944706352155433647264486827485541841653029947969734801429599360660440732683649566960906850373501622082722551934066402304406986358738037485373199359071669029775360291865186727148005271551061038332334152570228393766039995766830310296401416577895258059807179307409984450881562104483849117664275291739457326038754780085543460447170950799566030115326355868478104065265896933386769342764290731978953359175018893385321723454878064509895296179240269165494181893399085201189809957684887131497051349686867333143221507870996034379948286631280249328844354633960974387576110667489259971238503466891927600581916903107231078641127530226148603667826895433855615013794419057863384377475655219117680374950940143317409007640318094009205725066150889262084576079754920965506555194538347036374943900891549346523337386416187781140388779579910422661037129961377218688624555697446404105435861831060343843290273517672405701939905177175108827784904500144237407878649593097489477412144324152289924772677472407433677635373125391796125470848300633743111286727951190165489964238786598097058367226097309429888903910905744317614644244025103458730228063391495597048783105389293535879129736385977777263889818778457185029310300522305064230246772865414750927258373377639398945768505643505582522290258122756796371633349975805304736119171421688355561400134066236891278421626071693910865597313150991636276412103176494124523101714116224176456623186075994644448183315767315853373373616465587974516872774219261858759535609966265838569281960349938271225218502537553387199597151638824294485380795898403600172440140490582930762401204986043869324189771956335567419894544062372142382775345872109043785786861273427846825460101143449577391082250675229204525326807794708258780498913949626317731091893334888034630881950604987252006770124222256094190218594613869000767658259227848120397201181370093082950476220133561015921904550597432188378562221551234019479530526373019383880054659045343966134604207944418528774660187999875121342661439509211617967118510025079800555670442357119213042642372225437482121303830079789637057115013868042311755196427148422881851237559108643550505242647875389388145009022012310140441916309744034371781799123294436566235459127842235194215700471539162350434651005380750060184430574594448405778272500735695090774125536594565446300905850234999339602613340910753478648490104027058080806639783301019014295848819268801901483024605232536169389460796746333418526442349988714095515989167966904213081966722307418932348952577887287643416719772387946072771360560085702979893472715454550307874271437756278398513184327195758288528324470742693432355916945854363729825887318142896348125276322525279528603610722149040213802750491524079401210432973313169150300593600345739450982493659853418419119928101444353963139106930632234456878333888677206496444847013906797933066746128881942263107525598932396747807335912250773440162985821298007122526342495617816969547946666109955751785994045431306202423227967650501941334590037132995352866253997299765299745283924278937262699597729675897982710417323991812899812779519541698012358428683539638654140740031299637938207217440404469956313157039576321274280501938119178364536190554920739985195133400477091534383325923071623818349933340613622531936543416286489061509770334837826208870326714246219612613733074849907928968767161142444734828762696110195312018263831364392886568592370220329122979003524509290462334717612038130594792804332102491675160423818975562678243954387243203880103858556793636749110512966359446418152254771921026328610642584033578898538688522366516485932869012864382353328797598743823221284277991404358823286354883961095532084734329841044238293362211959837762604226658932033739153724617272986390042989511557629943096348158542965454937135194355098321419875549636334704568432708402372544623804735494536464989445033712913272208898739822392666812485259952221683922612551329029372809161403517569329645478380268314539043777502657693205514259164985672877201718122282684257013812297934650459931035283701865119049832848249177061379102994186613149642415351663163564171492520988508773074988310517266369352170501838131339200669062102390722344267484203107956188770151031082844372503011263917986911594589611339436367175691989255662685403193865627464998682906358900810560768146967599493643661396814904878022967327675241577281466451436640510295577300325863132477731914151720374934425175644367242387247618295195933609337127986707294407435152002655454087760285977147733554213611732977229440422961193542865255687640878545519374402726106505316791666030483541042419774384072346641752127244431589185678313414041911523422287145582849950463119181778916383809369223139920568423957277938257698126088393216933041302411736846550503445486841257006908475409080573929454200387533748735369290637534847898142958101040287492491983815905316246956611226257879193962738369147710132896176977503968945501412202533591318192180447300603908330027299572923685665200776983750410085564780408055639838953323292763897715849352443550905243341782720078856130597963626866174194337372911264990184923913690683399067712640602244349125176979887413651124471268720391479240126891975612758268113332248927402546750556116341835873808600985093279711814081847561648344795004366196147035428704342001812213039147402035559080523980729191096827012214402518899422045314013052125355393863314275580456865491183960815529673484286434022024908882369484580415970478050682397893751176194987003724426351863138211163888567818528597739261714708978121524944727994139589871238799814868677371401938723550056827055733085902348791346391658022712585220132849818935981611979969875325922331000889277505101447896621382058261131299776068352510094072123993744568504481318612186550337734066333524034899058179415258491447336489532497606935230619469700433166386967676427084028205358920847230015056776527774696385854310782350727724711998855261316941789189464618588102837479955308010195150591624423223659308039382136416909772225202825723064600975567566327292614934194814333831026362795441824201065237609556557816926256261389373399377648027621433781480401842309037101376569033089471691563307306298153916338588888220185439950052351104067023488348770057188677197882675521830173814554597651405752159163522513759604623379252216164933620280328802761669552251090562184681216785490743147590924477000599934331564348546498342574067508950302597836048946625509384466498514393544120997520688140358449461288432285707667921799790123098497914418014393572378525188027975357895557197176899149742248231766313339257746531129336207436215913295585313692069203743315786964333514675244662082353737909451002811421799578671109641121431733366337327833112066448643422974590153430677579626025128713442053030372635575689844474353789760550066155308903519269683687025070572704413312057437158789954873176203772185386566230081744971540821797931192269619677424330829931727469682611915208476086602231581613884299965715711968282458230484117137679256296099070706815715771686131364893681637801068112996077003366843876043804363439248807041287356381185314020477845449940894582503426937615487715301168098791654736098153279553918196555618083100003595888738595383021345809056661905760255129124593074312238809062666614330600635229924847111788063894090867564295901597386776885846727513398174998830834127534730894584441494662253392542600405981513238380315856191360909006087400351680473983062069205686757868436122568983679703388691196759344494618073673305100111574397839181799947389836931447791240053124182673388362593175999473263291269216193543926561283292870687086717210251442067180917202532249081328564377006886434071461182351387981233869846390128231148874634225591014320198828399103377889205337221719633692808000299294730664022766552167257839634399943043087500442016948252267826561557975260168178015924510457560192462629230323183234359504174970396083903909662570635257586250643468479247875375053075426364574559203405459088669651746957111762529739724820760565853398347382149050164355198360207995089710461251068098368418101141235589942059312700647343469619326383078912574309761104474899441681925580980904908855365585008190193090103177593594140823282942349728578318757183843274492272534258123229853942198499802834982980644634609529019395926331763383549274191554469674791238100775851204001577540482088775564878276446025925832329097205970464960915296266202689503728654835042587548147728690554502884115814284090096335120964363796972074717841977006493180371601963600872636488655828298917020585338028383530895028446117294281832941832614300208797135968878737375458637659951257252216997222038271467225089848755232559897929571465222229692424453694530470663691808780795644081864074382243968128100909965646085879044864169389229057066806634254245078133242000926153339561641541123509486776792797697407686953012304908051796301101139631972522519225720449232130009405461361536161857383370579382604227233007010603986901514898339430965375015976088265001637992373550703798983938317694935204481027493252470090966559959934516144389456213367871385697086957335490543963755708869112619165179483756546991706731259646518001331378768519302924988007263900282494604194854004750609493201533985961594419224971947350906866997036413352328993495124771031785336324991824959856751583231420516596652573893254000914148256220423690676763489748860737072491718059831814240633121138473857706332613279850450789160494094680412694199182087319852352377925171729738016992294256735434431638960053291313147182353279724707150723378015882585055641781390637302258892212142522082574894654387186222640165266975745612851383928409331394412451822849463929888245117419017350382665076508601115137281125295002328551271850689875760033570762484192954672920796429746261663702879635127717911894344923137533018908069032681313565878861191399531624300390831280099519289394784860760698895155844922388298698382489039876724175178205401206970636234894013338271332967611315573782868327940527648652823320653220977917612115952764850112762726894309684535890871003481966928453863202317844270577776748499992278190724772035234854523438727600927177569384966995432609215891700583237958183425558158657731639666490655628258369855650044318309666544349401685313175969281443111798464853981934609605291610577668026989563560937199816056982185510078661504061380309210142212005254680578595724745816246774911203794722115101828588126149826802707486480723980065917585926393184941779811464330291914155134099257592917141874969910403784205552853171606067427264027991776905370708045969589007791851437812468828650729026916520933397299509404763421373077473691729757970468184023573508995954236380373288339870202518074079723350623456827296401652767719164208925404222046429670311742749823674188179254271596057767607460495234476105996419087594234371422027875900221908022753655414315842983380865600221204653642439104354955104552537856963780277432845245467602324088000790246356502560857053412634258739296210553790774942813117362880347855954710333924469404929931871702154119517842863414318714166043680323299353649821389928055432327241820098326432020366726455859889051683349887906218469424653652939583352951330959976338113563796240458202909346060078782474275837577205491656803507038354397236984008298274388389632884878189383551491414394982738996274302902699300083362586045997600194597579486632738461588898209469064416814882348430911422450589943847838182170409807137688723538673703128112131400786648805337089642414844474385222724331201789904544386608682389686686007216531423367659325864882487965147687895024403659624112500393942312946857980792028956400530532942557580527721914069766794894138229744333541185642723349312863992632491614604349698996875426718043456984362599242467740260284805655504611613680543376203067958677930787760725187596431737309999525232909158076789935927935822251903383972087596315251064675476534473453789115358548594915732310347391771337752297149233875394198302574252437183186320384751847022109130450168144808451263919519509699569733806000691757456836304268852772282834706008367689099865616641473710673431689127718303819321842267257113409944679435365190930914667564538913846644395088716533505800636334697333411619733533733409499772768484510419017910912942271424625694465235071000433061716339995357935265238471631429743206864645666624700656958035452385156821952431609342971490331888748367413516339028437614606830868378822828264220311332056124600071710168155632647971868432731721035909339364654754563319122863332486748089422761123592208219634347017690240142544199990863977711220385225188870234838919544999492868488996686364695628620269642846148209110899988232573125281045553564557513445661722459829486666689171178668797877351804989705655665267208936167928776028294335844440237252062105208444126091959719611444326409896507080559443301131071641469209888742984326876333312090977953603476497484454041192795356328492481748807750960450800119607188690098800288731878264731226075076269492729428285450073449454554750147597828946062341999686771929394343948233540953132612274666358668405281980108720343302446527974915259964509352370713327322896382378861149972900468572590614300132260227150655470925469201688900772065503260268712443916744238102328805336783602043181070595759441686282327705521673486215501799119062343278495432410163487230882553717752667049714225621360629474791178035838423854906917865751768959800585987080841509662430586957495418770976372799444249584972437522253746798635331256100222193607552046041874328947314925520243893060767580768441803499617966019267630720488432956962254215728316739224780301035124615047197740007410731214278995031977707675409888764867253729960329844921578779243782389435986918586767707435365488899419162147227517346281521124904593208253276540553660441342648520471500608757642385444369281746841606360595196248652702721625451580220429719597272189987432465825725958713755226990907091158302776799482892769147867921723195630076756727620108408243707999890372433390154313556354676004857791997803031678206522378822976779830273892581146669694650928486881267838373039462209264976788136419849725638527648033019610795991874767215949738796746477265185271604335213418117596261601943254769811058429468831615895271527932268162103022982669119380067669132360855228333500793795989956432946442178283546743122889484774661591607537905202037077287704453369111069351636309755196476366169500487325364071382192326407449672676393230998131285176227483376593657901674144816407879935971022767712813732228995129969724220367496684927272383136647233132813601242087981687937544580291669912109689442550668930837928973163410041290600952592701376238548795556288227618083848817916525373396043105947397726895802110646648682755100138918714845269853081840449673896477576865269972059418708958765719959284239559752282366476877223265373826139803025975642259405889197431847693137286985733312195318218141817555009173864186629336470715045281416049561407964631796279631801863615950536968973063833412832077763124175254356228733217500605930251643123485417859179049021591966905693449355838535408845309688090290865349062602856170275595040816375049217220674784599183222501706572830674858172026070446730918895459831495311425468881711748822414956816678913876216699138402544366154363465735654619522859869131288036459377404687626582860283724640731397846615435286282819449250508029681266848875842848027623557053898768745073952810243701344188322543825202977616051408207726258080891594775492590864847597694619428257884150662237992401462424289852292421964714523442848333098000097480557541444689272854504351615150370273668580348010328153975402981540846971123205041029491267370885850066471053098838393495848093715247126578494869199769215775999133644455330960817605847360362207227431146681161605905005385790142760289212843809394770190520991028731274015053772652108773060538505689207610400884882946352217131714330656310732555994049826808859663071735873801577946867519451099819111703497039446167301093403817385089284891888486634094272037871484822138694413488323014984493715553583572062408151704467326810454697520416602445679166111543344261283727830462476795627755870167245921849248189449889082398332777997671681641615913568117141392411450159499089908253352233655442273220916178187444494200635611664819575443859041076634067012636954211421848940230758595571170091186173882438817296787083843893844899290737774518522699371082127974505135619253471735313488514176677596204652951702807705493223568858892080860688103738348077509536910596172651023280907032840273003989459691046735882345792010638462185092360485247571982049678740466873550083779004714962570272549400691927632015902149215703020855074791303424948548235106698085274353335470277195617802064886465630615080429448243707505151218241290221312666007974532387278596540132247876394938762009784780333561858347324617050349462106470780677788576388442581986715058739800353232008366727875782139991542514865108410759094326956329125285610983555091878567735787112532190572732315494480838578156284412957356071321480168495010410189119477019609111438819547883193136080736604585621167392200568196204639857689900011861833060067999722886401915284177827805986549561428313867463706041226235160347194026493838676886436326515205338402710500707381976619580307217620920220821651528891328473887670586794909881166358760449716191484328283831760580930346155872138852592751538375422403422677772421006926796920721242818855965770650041435080015299146721344288695797065888634760373195424079070621134102544352049006269290001102256479959045083487867150173445799502020434678547345411073872486536496567295832730662800265362518676078024808887110306372973738841470759407598811078309412313020644046644028673412891669561710731744099093253440061088002098103824166208100012842075220790717328309970374479895271846352109456059775818805465465184647287037520985695389133521824457737382654917822988574307153855723025473662429025136737433814041731452209083083959399734812030113067470852108624707347470381327512688818821888119954161470860057391105375861421738731729768949249472509862075806902129650953792273331199279166106856005432818565081138415580902257403429126455459638138938952083791212114197401309827447641281585727702840974274301447036194121054474989997837337213053590009004374176816599877466619873454615433769569728403049031641106368687416357925053814985072699345560102935696854059436115420916060072400750424564922159142424508620141639183279321991104335765304903263790473848381839778965061503307263413400142726059701499706263610552270989192842803685614821012443473177629978400153778048158541677488112090296365662650827280663913083425581622647731155415425803206164155736354716554955742096466244425940911188260544108759359022743798475348514656268187873342428426366295750055947116535517538313750963865638046744003186548348517407635734196090348194719773249578389876167213771291701047874178239754308434407373838354337836032320098894467512264275935806886629363563856593688181453992415690027510211759177441341430828679330148940195588499356062584171708921871162720032972907394090585442427266456192357029290004206134622185717374323878612835566781951967949738599077540130800081245051486418244844325252900309189586326219306034614650023901660140973054643119813085820457353821831567665182011679113385087591440694755680683211602369671310925133388922814360215301116991978610018152257490541987131515876401053306577985339239094342305240403794396604263195897551631936790866281703880998298005247733182545301430981110186381813329723557391782077091535643959679336833614937483318710493847069614599191274479731153741573222793293446758005668607146654108023510064127777494981070309032694897592954512323034969211112602024225026270854716259595732787710322050998347509927126177651229328448339408247757600029620729606671479153975858611156678235476922049616735136306657674032191906483537178182809031353490631808563174964304220918663987626178951158723285305012734001207936564333347326554852725238322348099512613606094755232424359227121904282382864387357458382677695599933038067093626703076862086169330950289102491316642490770066051840335575659295085438220491723823165325202227980139863650863732582401064030601908037152418457816962406220698882961277559564381557579569735273621925288935365037891669567930980781369479727027432010385392267966081555003154113476434221606716420385135870697280150218936974540299374823800866639518373477452255249872804980194474572553940798863988456305185197504839896423669393050532517895750263379872349348197369700267971123166501794671981107105514950266166451290973592492812111457376114549425323986430311882799326077278726124071929123644229739914939844215417280668702648087776370078543195711668511867373829560264506951577963496546106445987986388547394762529972519310469282750951116737849727088887345729884043491678243982514444143377039733042415853497122711602092321651958106838878119787330428142456716407445245715823600008730232677093200005380203490604975374260896225318819772218097737399708728670346887247916906798685438129842667177028443014014498398954006854746259559139802283925776917713006319969644834170929592623714035537946821963547666371611433752143023216668546323267017622478768277652717133951138680326782977897113489602456730618104917505216136394207650671177816624034055669273894266404361015214011125186170285849263882683013283739673828672045767276837134479842246244733158269758129057165893875201985099615848331520201763060470578737132861001891810759258580056417549153119901724324486694975411905517602157901923856744581517418185486891098327491685070745938486166614571206027328204311839966550439541807073829120357930383711339352572073530577451354273837739812956362958263801237764775454671873531992911559194036115481965095341842092966970001200979832613476028854843542067960163409511636840075237704526228417833606316147641154390171000139406247584749449500906298558642898903463748544321720830679945606306625255192707025823709247477711868188166118210264078806664631273008598073045599848091084443446533190903864822229444425283261064729716429743098554766345879142762262692334672233162688803787852530006701309279401928755579054494842908409406489538525205749775998708623430735884865408410395082354840824774775286711096358316460612980628330906407217888236184239078574701526599643328191924709645106504484406359924446086973356883154919877880536592268027295061965505161049225800010744575642300630722279674901453680315904525902319437785607113348664520565292128349967141829182253062749411420744101170680436120549841125598874849295593795931903419451735006338462350982926756857219149795909263520084242919320977696275904088568144905058590229502215044161158595848243952608833154415865258224358248623559619978258877474886472570636565268673809680075349692514273302975965263924511771802354399743754907213665632269631981750267597918383567784990113257311502907920447114236817737001295528061600520975300967021062377061803992456315814307340471037074566907829136698224632918172025309637758524222058452281775995295721743272087736731963947980210853883279615588762467211418757622430403798653991108817049387897113247046286411152399159713492758714826798479742483758573137581402211335471237478764353750133176660909809384721738970938196709655648801481905456531297468938245640650102827575520321441209254804791062629236174744254522536727418986955879158622179242179628560142183371037518186353479439593426328997741833105261167067327377693840218069407649127772178341495310329776914570484214590981866438638964910966029992477503132751515920896684478908872811990582002589233165815368621543893075155628344409720585265024910637310677687462055727126752363180202180814208901524750032458525888084067717285098476717990843032287922178574881321087591346489509815871990669655053903153823280491132887826378897560572355012552628412163403955060971129617965411201664262191830211611194040994957963143734302207779323299095341107043540661523894597253104838045536574874049090930925327300095219008459475652138357955825295099521426817410439658177403497822473608465484462027800150055240021511107916308266993481224586343056284483872146213977001111983396231859237150090430868556988510786873961996124308398761962773807699921173427437002813360059079603943433306412895075656337099194284876136608719722183158213039486606104195840026892446384818972165702080779029645974094058969272724155483981104559429550142592744946523595122161662882254669219361370522294100089943499643800424568079928052147744368304700861804213971716561040213678333064050322621974789836921661318410515958669754225389811901992541135415836491970653954360673031118257499460375361375021465268969909016404107348994940138937471278888107728483262903784790299682761557849270128957080997355438190443986132849180176341178810816315170958178403726595420180272741380048118638756256054361896919995064335457120058407652860546853184910121025866659788263473049808226188141545031259298541091630232156446947351166182267327238469643728417681436938055728667666626248860232878676283190920747662856940936683090234692696679732297538993301784428733227998925368013091161047013637167333167735708185149090655945500149715979896939090116789389283932340659974488044644647572628858430529343477860798886028077445474434827487533954711375692976084071001615654788662953288253428814683444023304429044932849880510616827754030050696589499141663681908380099754726691237110128992006380489483845846992902670697191884204564745200998917602938885907760963751312327057679960395267987354647804694075441640285013797367963440372282671167263422407767601602334721837167511311277258060174750839110217160327154167371734482309870138106413282418128446764306120288996893345854431610941918457182331506246391135775674186369454783236287160061895645001522160094317004816193130010220296204689096166678928278084621383024300722378308604564153391685850123646584375825919796223695659386388778538295978267500347675759450810390558102236895746199249915974058998598578967451380578138074577745835667546892820574963026418938536374848397620065865426832026052096979056747977721750683801962318951571000874995461536333854989587410837654943334809432060412579822298694233427364972523915853368700934606196591102718366871899440625516916367972946338118248811256747651011623549604234839669294772458784471014871958165538882665237511422388184454037816160633675431223545445594821357261377076301790882640518269563255972758516543773882608488983162160186204336788645668578944277143211761070110623988435234912965537563749556861233402299741375486775390662062237844957467739122826083220326431558671211503517023358109569768643441091897616427446098561997772793579041103322873713299416506236137189083227094249154586438329708407045351118888725253986243672817242055610222791432635300607580778800405107332237448461794340236118514660925945715439510663930365102892775057700545707691584771734644744094142879637760051858026892288708589652361795693268626323805714270348152562434155041543219059442133559637227933015638450359439460565731999472303244646120977627541314413470982487584839150551192671310674515399460940378245272970216075046663128890138383525138102136368788083521719240073637516811672265816947567055363537751797739752045248739399093465983295298687413239636931124874278063326622274675179794607539715017952516399688692414502314397035424165009881653155328133823649798052847361959055899403986491589254171452239024434853829055134484109625649837221880934977238060008544395370109655019239434059090017307124102038741445258158530618260972347356859707987002698197150234361286729927807980769810480270652708623685487099811207582808009086888943700330254615325661539079071652864817333441336873501197203732758340107371887498489290100986680645588119160321932390916634301600659006953240043703475461430938533482203559193564213271907291551880947185832066237856260949294389544431285780318443756729334910712431566567430320007221814499260913023751738778725172120256494584197744231687073657482438698505384091946132246536143005610942165446403828993057514083108333251858052000355646509911467026681948773494886428145259408768322925102870351905143578122028380364155144599377897606080889839536457857664127318315030049640102865391772764161292015156951189701965631974031647113147021054684051138718770897927229899412552705098937974654500515618181917788075265948603036106581056452740354389693860037700618646881871221543702478825014989234745084563536117525044846348762491851561749733077062591587047540669322279700749673000798171323293006458921058935076875428029702725678751054355946575593909738138533032846006166327767369741397256415173326349349473315708977338359502976094073249420715268109491038636675973696749707119801844754042930779559179889016355032488802743646448723146153592856698758114597993232129855887768229937075116340811148932922624277298623457298525007732335840976336473103277615632800343719464287580510991582572151356853820735614918671303593797908285075913751591697961603977697590820446930708695578925723515536632162272588415382168713820900886284539805759227562959557637647931260578360416546865894065354400298882369808850426002637025422554490051119107460117005918387012580510030756726308001523998371731153034155822960796237221857068567655800870150758781103928861474033759790865854735452348106962418362169393010118505564114569560504448800494807665310015902862473778102179626712192150387144420088150487474401588298709913953735638068860982764512988629010163859247501677881605463570183561246515662601356055471028760921803152675156715830746050924120948759188265109556999376150284910276671880690648386313032704048434365293792591302119170427003729243619281861219318968803501701039744470587233102373766059451939197424346524004930207799217165494070475875479033142252000575969580203469541406614013760261290699798301744453728939842719979051903244822496457932772591948841328473965843178129473455709542624678606025715982546315571779188726628698086012898999025709711048155936067045836334618010497727078792862543231591852128286865815107950926193987137904400208276511383231589602485441132099297935994892736664915515391486239407516604471963808485337002433529697586513068548800100513820626494522686656998730519389628542918008160095785662609974744257185644511052869766885987636797290488509771159239396889273618042785833785331472871695264875228243439172594324707900825674270810605142030051038738768809177414746448655508927160988978295297395392792607212995743074522619339219203019350896605835768519471776864835787261024269303060398981019773968276909178871885861431356133688595353608862437266619312148886536096431847707325300712374097616661271027373594252435010168254707247082662384317225586895375399275123479070689386899539453426968131008300440197018183908723660613774052859459162567820479135885231671029638210545189214033570256029709060858762266856850557946986055513552392869549549867528585026977609592470606418610590068853152144321353944783235429822033526645274333963643848709807493154196811861203582456087483211237988610164139879353525120218937751770968495411503037705893177808574885514726821608349899606005472339603170018197349023263694065377786942516846444062773878473624814975325923912466042580332764340207878769338848723495153648827440988788955883741022769261580269965946812195705291151472588843293168454290264345698984753881675043004597694981811923656105581131518010924288577638609750927418349787351809736351689249508678684656827885279826147476766581037061532988377203229477474332207790629402641337002969351344333409983278741315144281291042216444352230344469627117648624492925975612588679419733421889425028220090912243881643140292612180314584717995044110077845749831114156445747502553138254059527055212979930086121441715115639142254316606211266058549491942312924042877799557349562244403676547851811645564437617840159136859508492567684617062748939994192734011130333131551529823002434717440225453683525197367080678086004770274312949317969998033937808192594048166595156203989921853481675273024354781157556836117892524463099168506836440912632164405981481780070393729455445792149818154916260430444074537054978910644207740427997284782897654918633784248506737778776069502133926846123525524859923436126704056984283106809851219568242914526271074408168241601720608943363061823065424136278932381583131589310403608742047373868877593661256004349378795689727946220235124120188902625071508516472811632969864124255616668819166983234855792123549643168520384943830442072048651090421966291095653434903132775129347256439012645437595225042323367624134308617724392169617395881225829378083156738649181101944695978035981645415753446277691179812459251973807707767734368002788046193300862219101769511913023758979470292863872225221518098535123744993280793375936465629975678625103218340818602183432791863288467947698414640517538279505771170089044066458379987470875609949492822748659966529698837345141245930430028170795528006029678007650034264129498263208255086641395715994398119560521509681013853631822798293795234066687798689470050194815088235587250318154785872583416819955098322628002285102207068750860178483210855647696404689057551783168752520740681801220384113391514475657482508945510414369823041214690373646771889557351484228040214326724691946780400684120069739339362312040082241359921176898986056908019507406017921798486549901527544881833510384605391489570228324067632122274996458470278044414770719497637640171618205380460969927168468504231975430994743147466932089928343242964754014313066852366880147826675636968025942659616657504688294915131116411547890783937587043143003427378175432122597323850879558097261108153441274176714797468197950144164802153676739209583867153153329555440316730207597969495907120692318655391443731908458820581541198947866244064160573670445660308532786461234602719656161548742524587843390992357684530607763191103467503237034591217375524550758811578621436617907739285609475565308592305380379935405551446545599265205157107931485531907714682753616953311523677809016122569764497390898747536050481289459370451904705645304689784634470316991830588358204984154477721747151124470394107859425995165538758101510431513724394152886254576540720083854629759212733025366873671298555361871440550953551417799121414415065456759218920403818215836991819441770990086744502719910883568818822920613983257655897901353058152362451151160744844719239325840610471935748482222802512451906403251759270646096407536793207610573135915842460661957089291977116845561188513694458513385603637030586806094867529087517427588869858695854342251163015797974605001744262491857719729373652230318621629684668303275257006581652591233163851148734877360812033133737519920621322810185329960281552777458846142499422625500597387920448647969850089835194049124157839516381635671518925860282535267156409916852642987999324028869502366406476829161135864106742831625823548553689526727552057077197014355443971093489970931138044047262609044302524225624676314062033598361987059046224550267846481440300327710891987455091391241067707469904162984911013523116793617436382712302421291284703472741106177095191953228256582853086030834133871871314770881375893839042070422463765439858151989643779348633037518844211343902558967080448774172837268891488875656116917758436525562492176073209467712995888210215304239814796118215207172535891639458115553756841350773297118965447263483255276111322607654319187224993386720774634355117613757420518854184234289384496176080445964706323300401312374573060206052716985034534560993104015058591702154087684567020783911581446339886188048509989988588389507638495740622905300256549516414367353688633366347504536638113809864682788148456917413353326816303098855831498777403121762679910407552403141730456008460344661283378452606323640703339931113048505478261515915108934975971229817676406318901319599797204935653557967387148932947223083992329453199411179823408528901982357253845426786662427082769038883371081349170950767374746335789259997741331078336047134966492555027391713210691505280777398461839905881306526732868701134763553329023310218475170522797132630662653317409752332531367602480650506405133863942270424282147176646458238968384665050182028206144867095000820513413211415981428372606383531609109707412469407236893067199417009849704625409014693677993649593383104911426087251629314154270547089995459662121030023680471973099956521650062018759172895520030108500937064677538848389653027008872858812071378879508051973511370334356021139030221295127954986370787630263848999147049454026368612887402861664175874293448349527224113233823366259487448551209701100174485177140157141129861443986984790520017786086449090100117125500991115579238040858549547582760828102756474559369571865822718110943150148738791906907717647255825595497578507286529315869588102772248193403771511063100172576669907886163254273886774037191422394472197578850958266413656350159975224540624519143550818359121983346477591766215659741171158924649286696961393486274206931198411934557577668068702023208294952460175704154858002079480217769444615902125722184151474365715446858907878426257166306286115619086682900043196384182872013075891512682818160751455855301681947130085772904826016836888583545840263500651241140581277156060566135316874085719791888154064371194660916329841623058433331073414811700034300308673268796542179928228753474707730127390397708419578589314171598803626084455506183640642563097366255360174572165323764726860519206344660676102207992240903453938409752441102121353133183125458458951071388681048598112974987722028304979330409931063992214872335327236941536623671064787603321612036917682511116424419899387385573909456625488033156269981848990048817021913878427218260443648416716497274832307916671265407804928190405296393348903940520338453207076543732472040299077674758863358845476869019132708322074350832614033444108551520140033873659966768654172802834226448218458383896753575300780549347614360029271287519739825008718180747807306920958127195604773599375321303872967908543668948461531943081726311726708891180971566941280849892345125925813191083619722621187836532243869361009052026585593980475564734839816102209458377579738141426611758375994423131077143858699150140309324316105656337839622337233751993741091168920301001864126123029626352235402460498332187805547748254047201476701135830740270315397612390329822803388226615873826946454848428615228909698771468657800370784252166531906449774827291574815980105311290108869438598038475906872753157518343135358539989631667120136373797679269849465700578573171549385291537452120397303205534607694435593180501041454542512561648884130218597643209380178699036662840651404042718925009075140936776589906255224239613162015515086031197068957849512195446324723188231323421076571290606457094141360411324733005685566303390284550379006036220510190442074605042633273911868521845126055985740097405972499689308798653238915286449085072837824898834474575523539939915328579732900369351155644626927570951406701696572177947662821760392779698733865091433112221818721351755950505908882038917929634209619917714414136391244263101231829786652400650097909016357817514704764529376398118855544150858233561114617573731378690395060267303488203751003538957285607842011213331504135907704332115806570656620288160516660107489690654530278442342932165378044280911472708393083085927572827756723656941109895078410887457352124305549251761470862360829199509823034020656628404536315193976301457041094220071573579642386586050443933253807505196529506120819552015240272279586254552481409734599788381565620084460062449009779247988435748045736858121088714164372452308257342812917016832394979582346288592259161052135567298606888878519910723840669251573420390331293476862001346818873017108539681128844423502902596271706502040723895818477197653013458667929821414270199134719620199746235384139141637490489157419866524925146932286649090149565590074825408716491137492903616120179037843215202512720870464021881456213156020778044248647426749677742872688873674533035835983480868502202483322650136907413563383125532668135942976654084248466200383418760333681797740679359637715867387622261321503914341697663126865494293991315817969007672562683685925684360817844794667451627399037643707858217369202368758192591454678408292299286132593449860039227867269926086611703111491524861688865880895643184607144605075361201446058242189944542006775096018518416521591052237816707186937435140226553908201251110951739006271044830374974551971635970647445889277874986057589988116168956501523407961349434020625278243616610094361802344839839775914680642401588085884861540969500094990509929319260600853565204731069633412730304947019990746965273198255211230112023284628445452538364078676257008834356356902043906817448187870829267203842954057275877135641471970536145527273081382861639535673711145569706599471948092440612432302455734002328555424102688365368195238406530388977948498122371397173618040357166591709827485612297371187581667173423210107923367563720648651434132472946736221905200207238940913834757475162100079277370298674016927399077801875076370189664332024033362154965896862336316523109174385128710852569256456792353451393936803861947904686514143875348439809214704898497395905081284756399526609127354943798436323243285713217897871206791777189618345792525650925638700086468082644100498532762504791464334369145600370973677028900455180191176975035173446837974270626027549244655588315280715383691858016514549422640574509758466221857718484571826118109334616804581313236123742580869740070476061132626413741603819367548113942806141852431419313888172684880160414033892092950676325871530091461737221819379787301109803606751969849686271571667613590249554378269302170244249043055249716022481434643359560475866696920157972824639435276330145295453977780847759895889950319777276860320173853025749627813003993746301613826879367815276620401546650381294151603348821911035574924324867685161705124011509991615979272681021749836792576478803924966199997436269595910574445189397992584088907655697806630579515543114095650188201606203959985846069040748562808555271048430432632134140391850003712961074605628982426846433287339937686616875109740143143189875013128635244762988190520051062641794477834337226181190709816489274431934138473393305523556709881431954919956020831988622036664130161866035810328377496690152739009472894193429716181817343657712650295503478242781309329763525521495176021487431522858781730490855578177392094236652604934614324548756896401835816595769170655462178870976378814899062323569305989014939416926185190242451894941120310488231957136502010940931854706697121057814054198339201995697704131895046917407141990741093967021585723848884505742993877914794735730174434312377632559257158076761142851234522507591518756235054989123847079093721076583094229327093756687742732395085333762345147081932703531199734780687821641232562014148515694683799336554475158843885741160505064494889688663222562611982935227105408658409135270200725890592168448176577294042266972647216509951236776517193221803036711727158478132441799123046851248652773177351820955359272252387413529704986017648330847271708039632087181744183703148021978358044425925153213453881628529988308271415990873504219341825861696425679873275532676738084947609140860685140904722579420504405418589476761911366990152025967486121203246273794491126394885890174425593386693599361675894824961162445485344392624916862816498553829528400655100893138078585995421431546984015278832769891698991081417924195176603966368164528293141344768552119549222110995173432106733177444269148706901130488085015374068135743455041589060316261301224874165672955831490322036050136429676091162404472611643908463888258158969566777055257576048795617094556133922950343192344044347521804840702929534697047051203257039791353383031030908702404704837764286865224825393332330666878781423514634860466676122243699923350716428626591433868668436124246165623479427321891371558142870350752790755715689361375160570549545601347619443227167997737451368351924609706624536240352124284745997566693309029825192128669423295313707960107067254281841501767989922797179012812421676333641354781678405244159751486013172217395767988734888298987141940262844775207256105341789127878173262169315657723530122348553920155222938211802272734833641720093204423234299661965276668683617770662881587173843198783232442895691042539450041481986797060819472043888897908012565885846320612728514390166739800202040935300111206375945856269810113237549042307518847293413518450685785039591344886958934349613769343606122992419338924412870247307549529470755862053915393890218949444214669566469104016962741502101211155998060136358629209625431577192406638552488666460792581806950663432201624698578964241854213647673246785181728133255443625197053134480872383890364542196118535227890393176411026458871962632302722405891146893599670549486706712199074440060487270520252796082651493018891729979633735207206781263277599513114392757532209464673126738533322411589292773029378294842520549282707474246955113979358546766496082326007534221453227143758831817598234332022619010311054499056969719589703855007503894257628087875095864530237959694303565958007492622570019889628901568206231228117862136718102122669387151258767008504691489033873905168603673922445899713649208331997438765268373457933790155362811776472576272822660433255171747851957110002383041690630944461513707806743252674448732281839624525544160865213811899657543798062920636761125479236391457704294370368577491670213253550823940421186124068074583722518235661621702943823851603524842007040560519182133486746015565737883152283984006151466268902264968048827855793382244505316188442971332247266060718536123481590759494517415717621755559975885203131830363492818767038592962984840142837596719226360457908140262370105382869781077447902742716099063085768770824803249377194154238746665336582888212980712004093600659475509241984890582369733342040965599730239772007504286922942157173389993475575728253416975964834467145566556313835852773527711290696212905553195176156226228772653828756432219945152558068872317928365489377733564201078475614740597529036994807617578362456620124626862323364757440544093322577823103850937935473158483771374227853276811799928805294405221916872090037017078054933738427922397489960605314304790575708705436553391898134517965375430922691482287903214933441819563730545265099615191307213190452255487636007753855304579683011513247772775783364395059620003402536366221594061879736823426282683529516330035474967744595770892419725684021759252931340476632511955331689455947584230559687274510231813931192479325315026173408309373293144936374546636817072359957495756394698572570066611710862238587771328359218465796014749772461288729368055647070791597931006651840018916592042023685434877145445407204731398094594751401684447163345174364970693374675843366338310682035424398354085421537063314745778985894389978427774534221742234114901638536122453679565960016253776429383518252674820159033630202154254640227436629725697066951537270941872033139556714415037291389578270902161937522058804042774135394801907104290680708318231637633278524744594534634859330053566591785739081965156411825074952135479798965636308712874663563446174448292944927851121645504709220261094739674620304088535188705222583574462643468091213762229306129514101591654871880795535667241769392987320974549178590686260569329254750936527789056264036268038501586416803926824378459526559893349662203204656454431703607280900925176903935115238294402346439160838182931568979113282716747906210530531353163752314257671612151586002860903834333077144754729494855126604520718086166535193603455299040327123163187044592391722359155738916407541923614595038120660681461248109645490237440304285730781114675998082943566976969574816862542871596842977931310117777612884972433855650891673206739996039938459930443658737364787973095563329755105270128149924078709246182637926823760929140896065584026183368234186573109026104482986384908869554291137466809958932532038436026034684898194760428959417273096111301946066958944232146789687274038333604171371822799203865429401026045619405564712642424860950994631627287668751453430096872863619407771146197313662569867869314116793663494442739993913979402418475472193300853970462390005455739566207164341643125767806153619087449315324945170464170151117441744401584092052121014645033766220347503393055260143341751351769584425618381587785635328260865482250055308794075002776741434697925588743939572834595377988829259127846180584915557191515063050986132805232509276908331143678995377676154335442621299665147607095751350549430105862763487481125026324451132741957211376591449126290059473168502885010900208794727086393586523939377262129934283934219856999609601757493955527550033730264183446407370216222419885069200549627101150131721726216033020334392321752729336858713901709854335766035740391869921336910998788952922891132060545312363800292056308211630110947803332212661610425526591955882029794330736545875722876752481360616499908526295003214617419223510112273157411156964252619140316549634327417197011043589522271322223015868365454603481371652544618199673311277957113393218538617866310710306852633379534768309143008320973117067620039622687610875928221146879632581797195712531228298166355928363730240648662530616152787187406569670095849766247287334055684475194975672209786396230664947684958276516805322420628788168291052997277698248385463290589129237067610425235552605569840957427463830773877806412030212239877787697847186916235545065340441538626457762606080541398014948872260223141033214583806824669840117196871743605980060707651563831016310535780178535631232791423450467530343160525193403619522147564037675252750464403019197806084507075025506090402296558012398655861846111474255567176302415012598040446107007579031174539163399402876394793059243679998567185314146988656924724147016168089901842278282219691543619230738862892844474533683645160129125708836322374707949951478013160591994668520868635951135308912065690531856293310318565354608897409323097614489031836239973115817658046406163165708260888801973324496033249761492489867443215396075664670556365889125944944759206742939382635804421462031145765514378560755273886782249716212470463033250473030988768284171058750935287325107415395700201280065256803191247700857251847356573316548790609196647132039343979839302151526347523636019835105179624196739687319269138199882918997950374343146514356461051402213649689892489436818931396958039605090867014542309477610729984462400211922801004768958005889721184767907427687651456644163533960107617578245175464533111085329626710089136554366703022634154282637106939899911657893953759339398333911603437203891172108266582888668920069992022028122779658625488672609339505358414043767949697413000246233879309663710969866337763199929096025728780062680227435974368643380228259751195838865330285000073714643857578430755637861114027422105867209875116307946553080051072102509362249114600100572204908913240478762979168121727551681168549161337347557744997958414373314543176371797447142128692254972246264905146748413296803257771817944047979012636221028964204185257110822697485845185642632245412924573500298496721218589758978574649643019076207502118907395556474388676545962162062137107664801746533530225098299104679023329697778900869257523031700546160949217105931518994618157473351435307318184759546413030418587084292247903439362380221924963145676498601854601571186833521854042878468684174154749720545873509986319696158275666532651534423969264692623457471643166978446442624872757390967026387202495234993943824290770791582684333044265289008068644952856499019137136952455371114418520038747687856802518156963029315369628953366692333271119385198112318636317490463986841979894682566016338363431629132904223662326463052794170315126404905332444963865927634595896992377738583274460091639043429760789030423335816251512204418555172200080151489486143291972655414981771477186431219117776404863536581308181972973137985905078212933540438187564568280124022258376029168036328356070209595926138724300919877524313544127366293572613090861050170909259190730910845335739500563048898622532576772878975024218761990690418379366316540281134693299945964936973322138738411730496295403547760989617805185728339918641314645968581075054424270561188065624695620823224810205415292324434124376851372367593313684265110010044036285571712407625429171844340694436977105284820732400076645699649108269895452612409308325809572059882177890553838694930186978799743073540761932771033453178407692254686561983957180868005948126604803675718077919280442257581186804879162272043668495125831856597508669075566300849347598954808278441038951575217603031308132181154381913333452638874978878241386243101417275451118703148075191721713326225223679532757582266978739906146968253413226996482857031027401284576570297559358200795809262086139212949867957394333040338147136721123456214569565660248149008931752078732659341363943842284861796801905351652190887746047150563704537180285623984314337583749644879698194281373100396080361468922522723921949218075676019530239126520042600331855756480852496907864327403131578382572529993364330996445663203958946996200712301825118205792100986867591766767826117857311013665253714777984276387073500823069360050530517617981063382014594403323437083252961108958489812533910688009359780704947535036390031916461597404300013971237458131179417925959275111767790877763705128961468813427320062980500402087904285557402512814233787994861437575261965350105084020216884129246946339116118630640963558418886782545185753441745514379910557407684225778678324246698879913351935082948169902076218249946454061706010765388163479654452734306581626864735282469912794264996281755181921855565320010912858118430509383251333575870084711005971225284129830915572247133839275385801789336300562237651491340126067971986173734679430040426753677814347954068802249274956977719425172166511156971230338856015946701860187161635279037278768343573572269273635053820824543361729772208522229854372715494152693073761351971184028614285590929956780208477328854398439402452555340475806429225787187422411453791878292264046897115751395953757759396592747179833629456036476256132810042089228700609898747638169786918696218353005825473197897776286849169053859721155150071670523633974438946091398987040905483354303592935199413651958377505717006255438521368023512165945431065552569981216095884232044868176911855930625643898021926203799767539092077022326368665549616812316419362522443267127337824898008237960357944124263849937200035241128934089158075251251156146224217913602511644009508781546501588390200668403578269532211153738846892841584231933373065176251054090539292294018051974144967480001450782960159673914171160695476080466405205177564602357707581473715542965731428619638374145059303256219757199098673545948423071539915242716639161513315965262084118359164363333545331370523846647836405059549035298274100290389080753428966590211243592731994828994714535581950604120130790757059776947782672686452376838837132603826372800975244976077804694248666967816254626410793250705797887964815298051698196160454182811578211762507084406518761321833080451812855767966969265402569389754381152254398721496060509651383089152480499412214605025507079744089226236904935579548372800883306857241563837292251724272701930651486629761012854340701492951474447160078463112937325655534771441906513006104095959907774092636339419750379538908237782482646091346993350885142718393866092437974551420074737814686960609904697751458791730359787849247999588836903408799584025071196598422171430226624047302240240352030106694696892807388332371353667306206770473889324933813181846976334623529706730279508167426015746042678521291617691662645246625755139823866097990835526415374052915634863880579562696770327448969961363663118142294558142947282345211996621244292728202507835178190378080598614618043730840483225066645136929664973792008656052649309324952914164550565639271007124956659839429169053951596561689979355917731215232360722980656710956638609747962781497389015528004862058410922534432620975129888804062417022306151362276807577373686346374645900007401904851692789852288998829758249401043150196872570554358914056335980627878739314818153500654739459496760406826213759742838461452458275954618912557630613146041792179149870602619448545606789962462337058729565826187908607441028714462137025550914128261474253006244386923264484839067353346808382940488481399951120747382983643627869133553652130316642622052039588956123964343713885134900920910331775283362532354364109990061623151779697572939500276343520565244021744610889543313200205888677507597006820268842320891526732845654396580476898552383996007034237763928353334033137796781969509924489937914724449022778743684261039550641779195250680291247948949841089223154551775798184076342386128490034616628584252435348510933290579468682252117262441774039923977271531741864446070593052039697038689475681710509870614967192819158701625006536504397750673136805337859066505933411815460564481113228127450605949714051235723079956714482249895811492173748827488382433606045078879008369897313922185052765145871552768217934049804339379441435940226719290934052473848235039898554985471218242623876299036477022447555794128438465792154853751631540106002678317789348300380297481258201007818564251975239604391267424324433103109393290121708174723718686817609689909123542962020217820871742720613231838492410413010868730296823003514352393881309662323706389829607066398817335898077223019715981761981400085980222579399576394595694242977488527467005029732714550208520205447252275012928021681500497091422467212515979927719573805594058015918914461690741350602494232375779688996017906186135491575783733329720741637019120382354069535958399848334992447125785534849521088484169517361951975660776022159253763769135235207856367934319992317525649059600399900518054227991799727932795477140573123611678256844845244564236103199530634630935781814080752195745617859804730247928668657703646407827362227076664880191997321797000834190475511009703868495299267767793183775126900566314399377815933095776674248597421947485296626551679865076358401599300899316566285891367444747653617803865059506504921129157038036016586824230586490420673097803737712194038978277592018342448783306440893623641193087336759948453758659875320270161099665556221480537632956345944338826053527084399660663433967300449945365654297347928084333236451534351597491901131839542379056326811137328154730421818690899385834007165972322399628164958653589134184929164467997506155211351932571596735804459899987712942227681187573867203612540865652851582491752636491549348683086956242926341641531928663686570553763082483409520390816817463970675739592511132613054447739233038947166054790287009821290257435341147755311225091110994372633792576334542413599503756125251086031131637236681841554230339735232999267822880084261001119176301482890249677787496277707014131082512424615253787457569319799648609031048615507621423632362009640026215884452989248851560739746091673860543825668473112194052451647938364462708521027262152113302455463893283567964321430873014709917874668431912476521217932047529018315328803278978040747564308279339768519032526760854782905353944382957053725456130678906453430214425668996815696742293231377929833828735486447576238774824250520059298476149083344779381438465270325646188509239814653230492386526247178142731570152014096270559622462746012395124045421755126361663906862178477902423687719508848077254326239574755931228407323140534996727191781874603962388683622487385194969410967327229578905590121883377167447288504756010312802632831691942360955176811994506514772731292451046421452046068272187142434082207468107067432939789940950311968578195899123208331393059205488965933314006231111238121823146873585597997103013586168622439017336379015807602340367241625573368567722038137712666832837305131485214687304382682999193028991815114079768868664102769653629747277963422463072877544731433413609491931664415706266792054960731723236133333202788969787529356494539741862623366748097328847062875926594080769567074306901584216588980480353986482592241695688649286876036159159069241679701743340616576854550396847340956398318737382113304034721242398543724745510002723624261708153911432221074215849035003394465399694512254318034524354694148966270511689816795360034476234975414250355370901094645404044034642602669426269567198975248559428531555126563136822650475007045936679966474691424620869478437690828304784979046843586701489378770015014170825032984776771735222789304012561346091745035922727493927193858249501735377452516753605200541723075057344611743797116218516547663746090561545674738019096364292530932018298227064737184795458638695102907757627368238850176507120267956257295014649413959451762040729987006831975943571793991990127952654355181645033623595286291915014312163857871044818804604950316707449574347287833521665482340770551131338525595685195686970095347435208701532300448002622012325926300504395504757865950342240432574441942959700745250224840406135603790256553180188817541131395601314988330897418146749814294232828167498154384895308186785754882122170793849510009517827536887044798422971364936337512153627872217225941249464066733292925329067276199610042836623794461406957375045749652063201721671297182700299500922169808878271887741511115346983627640976939631089696869532349741128469399825715241439255495674348385391056581007067708680283675636240165943343240381078758562153837316834080920146860391022333223267218741968257058686790132525608437012684403142041764808783012355801456167118710599143653309801005686804452933874774718756518026058203236333053606200491770921822035783053468783706924385008917454092619171404025049343457598018092467276738071740989878279685000991166907206061167381194527312338174699394135769561655033164957689215104982848278933560470612880818005213205262401855134637806091453458455961515700970610026140807575259409464034204263309299479511017280109131994200543072385205640765879238050665978374331905130858220747086001803636706396786132668816409524980656356112821153938046134553312402934395103342818086748805855002902582847413431851827592900064336379893878426829805584003290873010921134938734850586683998518080712810254547428656011975643477403816811602894827068632053239876703556881616258016851572141588586167739515562187498358714158062523077002652445935996194888305609282447790286992583997083288096081642048459396518749291299607612607884934642487541894428527020464468600539996748400749010757995559007097284279347061263612304199019559918246623681716796767384556092385121354010199262842710624651051832352988327711800203723316688741703901201844650366934004781621526133378163934398696474770496828649053564197394272885779539255787755965266862049489514061598354264831289289455677114685845805480486413333082442388443594029824388257454912785142766336068340608263332408771954017990155592172855061705308549621701491046318386581465157657246045723058997874552206096315892980336846480340364126149521231321885675350665920156806960827071350357196615358903178306360347599952557519210480369084594988973703190156511909709681468017803896093498563248624104519269864819452584706174050282612388143913106658791205509378595061241899059352300599857529887027871316237490913236845510361526752671054891174467826995307073134044728853880026079329646338711943629196990667528571006737203777599952290436247511366325799274109887307825674516506598260071306128769736583275282686341944017288154214311897187892028941556582513530021556028177191510027092811717964576702175049177172054010510327976215150777107776266582968577585107819588684430044116337284415061704084215877215790793703224108551757342803135164819075147671708436201622117764181706165476581079293720178455949510560989913242073005037721497623229344031525547806850043085783271621587307086581920893979177895834659811623069371207171466490248874632526758271470614595526776470077904061204523217319461712698371452277095674855900988710800764468070222073758372206093099036433129654387809078267899905639760067627176164268616188908751189472422972012352215979521931475643284524091675055343461566216064378336545144456907707336052736449623024844690334274151332561234436082230224130384315675897074334596297522965699621877045409269976060705552592461911141947915499504968105525264712870042604345578420787025100071241494739350629187310649926064178571680260922161637336079952631400222612828738628166944606745351321444317104919153886647213781287242980011817298712948494825173603814972979587804515479533047914751401104534479705830885602731969606584264808228097381205767799877215915291206631006253343343562300360854016479904638818673965625802505518031568873229040813943877099721775384092947149830241431389434102046831213166723753224274999573574043819663915725860171468794407429692068984880031445045973352803664746511086842080598304331077675472691404128279311503003807687420696229502913844013704980584047269573733451841892652662217422311164081949216220073982031476497899554649721833961329592216441487258245286825919425866646324401546614509970977893792768596416392096236882637936044753648286725656017115218583256036782361951891256184670565592697537555338966255777249283508341581340022285466766544446912626579205260824556374911530695644874871838105694121048226747933068173561848759791303119752261029167604824722726973992827383627391785157534583087502134847188298121154179712601274178299307310720364162056904948639111559214983976002381728675301679586568316050513335628318990923633293772753723019241406183795768469679453121670182698650425049888267008547795382977101651191813647940659324727816030274809171277017733929142756768236989749763157732577226673073630601259444217205374048277624433447759907177669625301668478060764101154582174753222315640589299998313730796906905424625627172719849796682333190245644872345730076963606059598494005682629935445362440602328475984779534390942945033530769714488304908932639520098472536352464856528805906687868107476171915730414538671759929159306866048542607658130090229923287546195604922892631897726346755409118240146973219457946530038658772231005453842111412117313138037860914163414842403213808048454731823039581926584082444733758026431305815626815272602277009412648656113577451541859751596615797654812190754474180512059615366120356515699233826165784583453068578080880510878984607761379497377252459900613438881071654181804304469170045173556040423764512883427111142377830941854740410656933539033239047286662224102516093748850779726192978147090090726360189350363943807407435846934503592121592727247420000052793112401353406729227876046186251706560507350082006375792266618134721515193464517454504196236951239854829132741524776050319442098118123683361412336806151938808871938569259620149518395390761471423237718208501457631253551362259136183390811786980634610695062579494913801689126395309706385158728695908637734712852896719325781578676131441801404050577889633809682272734884135971896304911094706176638650464537559591536407439530282483073668253916305552333499628691209823835943675795400008435676276344853316205354598231315334300157013543332669831041514884466539243704030330856491932528314079278261197281180032859216892086099466522236868490930223684151586958610345305026461431782170832092936934057882609530953997322004178845982825172929625186144058734053648956188504463118659751083353801901058328668823937261148057017786946951562502182098285475500648295701251905430235515456077499003750731751472407909013898808255694830675732464108351324411345847395948206695443519390444931486725646189494980826888123375019947531747142788672013025209963021876525791020771980219757564001473333036217523236050182710555388776405722068233854359433818055842849036456436822243545741955790855134492980564922726071949082149948552386079666467831853011339209269078526519799751814660253030922878187946781757761273707826932898860672122025674226039881382670854952864432743859650457509040041301874388905398404841827613720439171688721304124071872374624719834110578981705422254305162388678774305365280188866554922941187225721052281176026927559499416789205219513466289958408469074480959766748981609379314409881861255721903420666745179918379937543957933140410650386460681359064940424226407073919172278656160916479141937685304026875532651440650008177263763745874777903392552543457273508752834561363872963308344118182560778493660456978183333412859972304082871125443420578489058677346153737639973667756309194512205075113247289121419883071245851379430526027634633236599169513059548546689322731909998826341082489457758809365642790796676625746348431131182188520145738007022816824216794147195221178797547643241672571183083456754172565889940885492845643692474914874431788329884008847274949486648125831629134105610777784300878321196064457560827985546011706508282435373849373749505067126444066600111734071655988365483746361677823060723489463316916457721965184330081589009933757108395092010985284234812929944170174871414720749769765734867297151892598006043211746302899264718690486369084998817238681893478217060193645870069575647786257877375386611833976672755510409435477776866351431991628108893675389390901503792267484347840134543736640046338426067650813246042960987535455934880776937247386655941984055086917274217575469534298969890869297254560896270697788074447244305286917160778539847203203135045583336320613804944844719994052267197962729036428025542881671857148496392730029249532383280302153917239659991746162063851580694298568785685079133294727896265037406073447252197237313348687304540055612699879309863989259334450292487737945794523051344950070537191065105173118140827569336738913990198625172373097702622525327933067936710577220657065904029859719327730083684295908885284449108836115675146462031088691236177661630735183941517720480993106610235013499363382417595157920618343837798867693910887570772720439551578013098224120199139500352578531868084442780690438653447009933929491454300321390085672416939808458727316532443854766656168478104111179698536859768743502276244082166921946459003591874238620556449323515603373363891944605597760813950960737730552851158973645857412820161267666513003451385389453233375051855421878017547131586043099045425293021839862025909224188565286380892082431934081563020665321094509085612098230929938948727804260242483180386263510570898158214259942971663170910368633820038176144787341359906008967745682984559412460963825759547811828007308407344741278272272524912306599658080518319909962706583610339032874932700930595251710720754057374280585618229723905910635970116409438881331267616720758993888410464560255113753705394356219509145527952168344515053062941018187740124849304179373864446452952337085421855842634654428214799412400436081554116703939725572783426613267926536772290954023273559786022833073917526724441847554528001969588934250189863993011319893954248689862904298372963593564727780092275835455645063570138482769656175632022877078774513346840258759110751988722244441067346877940715839007151403602499579598124457892337094137309179502804223684600009493028837478305487455989477881675402429986729780689919280796892628683644947531635534467520086960888164666752451483548091286145996861620229033098107837367944781649692208035952290017615222203739216875262502649513851016130456797343225901777209788352557252498875165699133813827008760525169709698459189814802357917659139014673500447177879754426738160183986293072185262358676421679688152976246517468394479489163937295412487031594106557458828157055082385536095578048596846440365436233909349555806950486012601769542470902440033440979974917959335680240501695780495698985682745250994802202112251662829698429747945467136223016695263639212617138195969746844035275210406821886468663114084801865967128409526089929134628758378822201192981747218911311557696466764929175009908024855664515291013419927617224893503415623221647171752814763572594544519762420854682915917701711118936637799166443914179014305339549450390426482083407893673547419751918313149517903931653807958639776862236071605641484105557162875942784770081749169643303732123425944364781663574352117954590423193857448326723650267967992092318174687118167853942733148957802313727792650190724453432686411453575975835094860023216757944238573617248939888529596859678467552602759731424426792755986068597635660722492373118614725197465925495152193102317530763649133090561285040492763001224146830996518931111949187172093044277408812023772066178343304641507702466180841422615493800190443585205746102749052651876220659298248379854092758922489609432705345598367081472024964564177012141205669849946613662988159267785634056309711677030559072785514928885582205138838952043891743576170479887592675610724645864673244267227476083104504716482518561890669593116439931715922864040068050414639694829540051459642339730330414993653830156975949091530672191656184307674592568754682278653808942071373548040685743057536204759225054058840944773918836884494536679618454209837647305358445805090054134603725961462603384876370094615113373066475374992575086580697361309315637892245909648815944668142777057579859887241484231327969143582751628778523886446931943734447955400280950676238730584224879500013191347292225361523572112850825756346075701529619533124728263660673482352202759642941381553743569489307760533602524272049568476851824662270034912980370401253329488747087595013341242140245781420864475260400550078311154637398244812753504011919640199759240938824649806059053861253766563089604312898152709377240376389219723432278319812565526658050223222326061300469283144249486430914961494772256986395197332928864111433400189873201866458394251954556030669082310426472642933695120976273097458879896561077927182924392312613512694208323166976678674231315317550558245027316503893040286291571469578714718540529256113781654599824400151188967335168669886262532709071117812751903271389551071751149424711258008586615535531508014163538895674856143604038755226566381855988624485324450347968762316589171565424776428609220506690017786652049820919707837495426727107266831248459298746359926092607984045433247636020816440746976171081540616610461950646410905771444542226675166893569959095519195549094971583586891321535928412596385525762987770137790664538882316605203693313866901811791275947989984289690050472339156092078376968667283184290441459515573971131034101495566378225735308779168044183405799438946947292197207964544453898380003969653864108966629872024850267270357573305239023698842440142307330983883250187148242322087428475146376977835726536707756961159997669496707216641841461002929990200997674051018254371134183225569653587471397892293406874231929619892614211803607171783136505316015435841848726659579764863452656171856877105335945402843859608863093169810376178439480661865379411542208383992811007447156921407342506788384329998387554744623253330275728868241851812600104483996229694599895356578057502610144231750504342851446499033807691571316278226609565364424289834610289102989828383309240149794976033097648586890704753003535072127680121015582871150589392936596550645810974872798531731339707581878161706375379223851165868964821573616048737632572765417913137939068339256185727818490658537859982076276091728357519164213556745191938906153086773203152121667468330925190163963774021452015535388263354060589999265910659407615206024072106666840896131106278248617776429304634760974103112224089016048854947513930773332497403037648739442371065574439851579052974606294033503169428545190431186605774374978223958831721347865164515997496967004969690051892172052562075588407235004854403141625538719484227517264253691836239223366734227729976783826053299228892337008739809780488489264435621756320117689196382718140459669866472478700611081794178749946952403190536692818979159165151327850658561276481815818946005299729859574768316780060908032006993079457549932218788797490513748275583613559194628999197575088269274807495866044745550667133498031974106322302719706720738730214134398879697860173830016339257023240920396073330915509837911201061105468240823220696285608282242851876069346536196346288412633063894212063072208668983560843810928900378456751442416477743481173779087228889264076122099030644255186953041561578042145816835480475861816069980085132010020042469453513617061619110213750702249207776510880520425170558011128743155002896842853580089660020804987123670378066576793400634628154530990332814498875453574294235309341398372954683462808965373157777423812304990606941964842283741526439060159443288138865881286572396396030319486201746935362893520531182541883226290277772436828008425757612655646110624703226510880931088942506681333257356437251465169613026467638398217406215730443758103825170488588706751260716353687206977565720265448658816266725448869595023217058643893497022442828280418995192689765862799197226454400448336411904544836405345851267744903565353262158937399331996384893211423681159808412202184526619458826060768298518318608874233742171205232166293958376258468046284445268549577866000663521010082032059742991340903192521926617142283512943297419200948226421744477607062650006296274601993026145532046341197555292148701917269775750820977710565647911846191163043052872835670233889671613748454103200783591857624553843682805728200884134554251025194861282984125221216779381311672175771645079811363910609431440856941036705038766270607533025582836594577899415582690578136370326262020927924604040481516159190786664304567304553863630368888627872184595535135127164920913466373328157945375779679513155043111149341916215388794300387984916048390517784219365796445101997142123243393492736558299024637512249597215911715200136590407458934040455939918747650638716947932189023545755938678822632411399481068864436064889804919654824169468238262220910022952476943299762663313335993047057591647135355000240743839166688344794888971244850251616832017436858996069918295484350528582001690664246551907569243376350014474358425245759557189125426115156621165465947896822981627387384724566829916189525579800153217010923634916049588307106209518439675711368026442349831844478365103376196436233993686066373375356945480451192164019529790817865903164695301098768282585579581509618385225613163415099544656651402566457471822296593843795973697891433304107292491756111800783131097360477113266169426115555690352887355161751176158024149771868971756994346570925661109698365494719104002397263069448156045571552016093956959677781007879649745294231488376849329455756265669901968334191631218694106621896867000107067499829121675918814064131831427421076322077543898850786813243708233548646415328664484493896224171652241582139565611598519363528894156306471347582208503758084840728230622225067019615961708675096300196529810603250445579665146381104645611986287105355725181492576213760185046618553643108947322650146365882050246316223576951810359012845595969383668700133477419849137044464572636039813560137043273755081262158201395927818711814692008643748373441303754712470185128520072542947177926600099946667811631430340466123491680689827768412877548734960994336630268797917613794518435672304895010129159751597321223893865467240390787435743222704106356867736556336091110289939749173405757724767012483148266133319621564940981915122643856658326695576326571045145260085464761136475142087627666705286990406074483726655563370432592054374734640780835511385440446496160530453361546357109970806764477931275111632128802828229723797105356204585554841463739051509219638649893707474867530309774855587844042572182092723320599842170748864593612598978534999840808339943126515328030254949860145003409997969811036656336402897872474089659476606992369713104118302999276950536265008823507648324700996512015090103359508285428410036556464931026024021980053745451226373418845000521486354668191670839691469173487570857202734576987098138105121051274379247885562763378462694457403903007155681805532648418855655388442155556339844451925650619964012546570607435848485428578784973174003196794739351493114724064577042560302098478802879430433865329647232448764211833150430099939559116818033316603079883022541815009689628051325683345355363266013912664574970546731300046992675800724285249203054817732675929747251592385131559036697703388894333788963801759140383795260920760510371903628618251130051480311605591348809234344174377066441172659379725051476802301903175907924156093747587490456592144678901328972754438973277718647638149300306427716985888046626492209110921218413235775205890021875255244553659138293416908093211810805936710661685504589990148194452823662756860381243366760117590948583265079618429479490954518994112500668086044417962367348303462306380877936381452852654078169180279098581210561586931684250149123638955287971836540988129899532831848680415913594544928171460298366535192223111017187694196483502092589357912157264273872170063261031846307190786241075314467887369867892288531452054564548088482017064522077993995079367371358870607906612805714801258057183926548620559625423688055177506109389757118708935253155960983209642712594668125311630598774134279805307410335973876347558140928876140792119714538520588195118211829214232726593966353311676631435586591588289552113843772970561996136629242473829666151967153846757561536742543776966773760723030303234536317001990929960441607529482837740444812721970223049839564039097650273435805182133785066560049178154678422777314650607299490310106524056160514478441655697098485087297039054833256004385655526625473289155587553378720223714006779457542812903337404125214180498688392624626407887366227935340842642384722928706588383604602903375541431057127402031603865778558119823476299166269269707118326067961605293931855916368648237261342279676913324821921465879764569975039447777437889565334980158702167156814741883119741668403910431888998350299457067811252429257689569853989981292996819352257200809318316503643842970177064204232967991276650789078620687313205150201514413678698743471565890200830742274402079523861998510312838427240170077828606867555907263227097847506155306301471000896105677469558459415923790269167237500149844889577768859054002916987261675565334124247821287031430454321415474425142439631056889215893303881544376566163192639750090260520789673100718626112687323700329446945783811951546490386133422166026752883170693061905894498824804010150147789996599775877868178395035455182620330740964347554046781493807100752454700882965272112407096890462131139458411127161243576925047392242315805282792278123168237558086744207755351766926137752123951316682194480831313669787040439698783897540008935962529972909270142994326043603333639259095645676245195177866654898399855210879650347543909642393220434659737131587641977885652596129168115846794727866209364010636230333065399339973078043935953504932841441128778442489987428573680210777686404088895511518746511306552601420032480491530018127818629659967943111125871980947241809040765808994483303663158215086415220267337821544182392384518611890862728024453531409816569423649930756697002140442859428798740028468775230883770216707246799826854468501158647368979868887580523968144774448496871911252104895615871807553725275881485937773685308099864399059785026407243477905065869367119483373734901208188024905433279474875276528387956816464216362518345189980666120613272967529659934863366316886695248994080802280234180358809074261796252933922370650118747936262967222521270321019919439220892747623403244387360841565544387992103661168887141354287865419999732088992579238689431862471753701775925617422294450669815599951061964816332322225953594656223020016696371190915519705439957041011593408454643907861187322503271343753767359435919820651623590153884274239910987419766817713234408731797752672072844669864479612834481678591357086582496036970786486403856619207367623186699436307949434003174405774537409822776661384954869295221979618199108818346509029338011367792838777195273424246025220487348849212136985043250003387212325927661290022427421030134602184825720284269328865726889596724514170225066319588793201866532759613062859976461164382717205769655607937515601812187928949840009531769817458363645755067403463282716076724290394444612551671331024530889241672009026757877217576462431498367395431241631083920901044807821511171418925887263224514181528181292403856299551107496634966835960638266819378560915982251331474460905405089756015517336662526120915939744767155172990387571380521073617991985489654919145119351578602097135813435860467165368890338786744435043792196097225047710625401772279564844430359249235987773567620828073534086161948915592915255218889919563603612995516068285726780966785951917937817434790770074431013895479460950552567777771168516006663610242456514042462490126516983335445989749095175837375912027358515450567577962400757931503504338451559499363852930966043026954696844080052242588325204261112087753866362382682574531454389024641572930488953721671827568539238427298875916490395015231580512874997598935584147152770720239788152903307474921174903715718946937412473051070672198354152663662703160658625286324712299968252880051409837028904297691070748229995154039417228154977915225315454685999755656997592758817580290530616177649584861070926447108659686505756804465926482138670065191781349084504813109345200475394041499004530197046085058115926271504234255472458039447541237188804934016181597967154828606286856591194432589411921394386610505125595543505599107735799909920416320399272435942049749476616932565404580717304856752096269268280120152973810863734812057311386112804795271115869178358532865106111235057173954476021952185020678262409322406054283713787330078493183826619152542895573751022645764188034142859119958406241455759218609557058711903943146303652306608017324671503482790833332069270193318578677172234613379967441511988975195247824771749380399450469177758916805092665528101075708868804954504972721517072840689487746077033423729837749143322190691699417658482874733508575054515257543840159667126468675503026253397259767402503331919424815491421050019550203203635008506437120430512120467140802766529293794768327790986879748170884994909608848037036284204941305642185949485107416078244571734587560032291997730988120476976415483789912264993724235365593886607584203164922587031245499636694139526055652230953172542382835761617898145712357785267624458537396848349195884801761874903348297290893985543269143607724653525429659851258499513582094363614766457940954368983331837612063731782832876121623827920523966400733202615780881456296071989562322464267061952543539691792231113104177099947940832102627404429418713098566352167351514457153653507193645813239507668705151037002140949040950764162805931754566399070987782823477091966314266924160598188043080033406961664864167536401598245402044202608933584440053705154885630693120663129551482350993245411478809075218408943188137889267974004896247851448255417846345582459873235977046646721277125895421920432415840349920919229339838432085890943298183630328110712193771916791916566537464120334496804347820897407764607700081623456704937579120716527163263620753505446173435253618674694976420555824932989551035320378345400840911610599516270293247135432773880399270195766109318002420729683322649536789488656063634362243687464886538967266505105570306163694168696389961546108957721798867513339265734589832289372422434286942105206673313278269236170697857915282486095146620727921775455153475434516496731469905732309484249018056389888422573575968358128953700720791059169530944545940936515157303056965074642089274134963293655755149299556205923119559292744397255164890688773031867753198574961310781394226659738420110438290154526268160982803029972258942427387185353836420426347970562989760848400907794043525501004711143185748935890835053784903756362795211283296583171695597537804993940419690002555290956255876538240235573517655994663765206542071312470636771105382613666144600477227320415719029712632582358755824578687427725839502557199967375594005766011457743699145578728866965017632603598155374597901751959712074578198760981835376789664132930903701803704599772493885068229132382105718201962988130401889181171421673988634579553571546964011980075501916466361865096830013772698041400163432086699438693638585729457514754721173560893589777252996565465065192893096859841702096766769786796541291230980419777862519864099149413555575456442091653313928326328863328894354531176316394821028311555206609487839532454644120583351885164178379549156090521495590659625508733776836880192995338906186190796162041965592897266353204140375448387848720797146736402494693654905350746674617126185861185884852589917786934584092531850829310740623261257322545115539421290880094755390142289635118979582716258372192159795830296145723979713302778250873346957592336000092395204952281104095206378941652389727397166567255019245993354832251377663576634180801929919720453122211881780214519569567380856104043763867038624555920808514842877550111275004366049391262292083982647295048312124857862114522658246827927732076665697844161397747208726270999855941161551310012194709414236017331849445931451591327669919703982189778277339935400636816293894623648971031753724546093810747859859993345704520663714454871181317625935871633241264140451345336086430573618243777158314857516311717322024128395637651996036132073919968054529890080541356411210874531752220689031769640428694860113198929314187781570100487335883765344704433908992238064475858856254675049516968336280089366012724249950801052642563103588364445352982030930089768047971034008186896213767019604165515692822028091843654859987528829536114700494985417355970399682252660046942147933560071041824790669883143052192604000101716824583543189887401454258825971742994337509069747670202161987925870624016599373414130101642861517749154529442873738649986646802689712361664263999638349880231140118764351261898832595914467288150423161233818953624602714522050551839112100289412989167167021351321094296408514929575238348019546402108308419239970085727208268925703680590642922445526774311805100152345329959774191376248380141467094280304783594418632698593043401014725206016146101148287710347899575441832972516201035573606870906741688885425404214503263476063809733635387644316026862382213869765200041130069062522226314065966390501630479380542784727648307051845676418781334539393967560508501520310665844408971651245811941351511395088938079472025726141180274461298495806961235234858047393110421309030542551896323427365046144091313914624275320886536281954268839058585637088358899555169023861675730279787213189108243454742133390713854405564036736502656064406429544940302289024741960496289522816595956449753319859180069361417626937559622982550464175618827901953227772493582827368818176630382908198693072433552654549547348898396460195128221957460959212314115396341394672969017708921199997675713754844426468396902451753047170483004337074560912526292496055413587245336955900484173570238758003791700177378709498292142375133829036938657393137068309841424388923182697892122427389917102624074206813844186354650569205168840523392836488700990403150030988787445212761027541847153588717179805050012081860162426364265818294669075509530671199268427731866332517254105927621104310478788330965514005828628285084063780990317009648874351343519413173495054765513439911645105746986926812181182367954045076765905629862674693425867057130825446644327348213368478149069082695395735389836075657554864898409841188572826962566965979116623235749653006959926411000460626548626677575394028070116250308068483279102420093482109159547353905337110501033597917028795700832069806908254932448397374402263087913542060530362842064824879585552078247610249168669799686765574173546374003501600200962911608439190775396622626524489787656918732571937961562668338927442220428878473832280744516156444793563390897800629735213340490244767516211791556449553122442602628393011693398165044034043016772842640296517123889528955354883354414828230272737011494802656094608993019606577597991572415013697654696364165341961225145432829322384741903032369225434598827978490778290282887665067921182180533090108704626720857671703990203395328004012263390232141440827655228208705652097675332747162512113438903945124740691215218451432547658065755443426778979708901026013967398792255743314802934014462221752953720840903512517205933943370728260420712275471028288197421606267085047884221624089244737712318731636480418682584024510566575270738031278832850151915407045589338339635128151058139975663634843025679257496444004697827312624367941693788221134967649312017644069541388157852505726350634377330248369322094426565761810912070373354072232414891530148849103245498967545383385248638497790663798026747758685946855707886175420331993014289589920383486718395519216516625247941061447639351349620405327718758297154626307334991898010211368305682102714825886383152217957551180032824678818357616170840309764653678055704712001593064349908245483608967110011523402676986610370798582700370730019503381042757913492914163032955138963090572636506419846720518215064273053448435869086112597408355054600165642728583482829308731860933081709720727171094962145062590087373746514969170879705488656474012681019120596831789870630882695809136588341398803829210628751532049033258859579506322772455760542452750024719044509878756571239544108787342703390424067668577176593952566338085367493187751810586943586850961431843398060071162923353802610626738050928332786274739392858926625205813434329390339924491645323378129149024245438199958978105114158657168229371379256007176805569291861321788777794311267690010300220852812336402236250761948617129798000165242005465350892130919054539834928295180692590904332782668148273165382489850725069662063718188574580568452130504011202638544301834685366722524004143978491845150481989578629555865790631160356871009075108597074173185109975978526310672934210515838465695510914760425436003385646831202447649348923534733180214121861843495608108099231413771212938706774805787995260605505444145745410971083826774680168764485191243989979713134172517715923309693410309653880208224446121016795059480550273758181637051202753063698210569594813323266358898461874487584102426914957058416817143167953836697475269026243944830783952646067273582287116968804378464107660442820576433195884909069341056501528965843054253353407408839449155363380018615720140245038791939701688159895502680349890362822683313084412007358913902044811416244440934428851477780398945887660410201384368248676987145779865338548455117491085749339200073681797282144212745378204735339715335327828998054309728167353600018686693842989200934689002419645673634403438982516885886789152696860386403858341063769670670863567639183458215429674887931888213256057336842440593384470353775819865774733301355582343407316117569545715432927460392746078823740120737876285981964396576944487291864644977365212439682339442527012002299822291593245820409884629365411589906626009511838470646123868284563859226112989544591530642464247792540529162222209838643583547618508640170905148248579278059230335693876018582109075733412875279456989570280575723352007983977041068908572298830713751745154697226710075269458114690717378826116122230277657305446586325398212339887387833395275988230090114539072865698834918414361821830920804041878493104209335356598229048610234299961781363948047992763688686087433208405048451835810713077537252397947150995742546015726831888612761992034877169141105083153997537224080368196524905292427848064648751468428842486438869923675937963595839740373797793593989478891344588943376950600632155059717923469680776285811523304072118541436201041654124048719998117855077648383635972517847668928388588765989180575054731394886187965637365012717199408808427577416472328715491629064561032437719596492064046772079454915615022239883775337213760164165976321233906315347831806884755356504285182212573542310757642429094156155701462326677077851633821307735048324470600452513785277214833934098028497805147703054245028036425874628122407732965776559004345128941284859618592860093045234718284211146531625753975425950132149017125885798312226842077306554432267762780520335155365589189358788382312396147248158502314213215762692392207918723848823859189440546467542521070689441507345638607176417147209012031845729197421951699580995302214271344255079857913680976628833603183418023929012649878723111277654479999103145385326303430222730517961747714366471525492914604128027578305451587521438913623537316785238767431306330443186845807629591946699030730326199673124776133531542407259720406507724499662180904049028785230500971478815925363189782135862083642088619558462346581414594970539470167536610963096724332820991399385302738573157685501883752581521534687238280785279947110598670249220472845678731578869487746345988488320921229665113891517877438336370322941413248996726799480320420157646693656482978362723297920674840439289783299487219683913761605869625574918887408344992019492637045227700907163192673301717651782741677030507482202699222514617024591825567028104596631307725821311446011507694107726196945650575985369287766376026915320622954135883773562930495037789243931704330667180687577806862606703238932279381359723654344680866601987161122281525075285353038240685355908724700889870940723474024461004243415408364519736931047857084826777978160394419381292880764683239972522819485043892635842209186953804628538907737784143871375829822469237202431696771494009720685989441057746523033266088276187920349051946674767153941181592555774070902650708459598090757637860496653781289165477057400695243345449854493628705367919130734955235727044938603412877704255180445255772537638080485445835811029439969265970989063772333807524140098645848930541970694600743601318009157453540071808319526307905164970218469979042521491488470606158163819565398758814261516889742544539966536237559942538837715576694007009971113763685439849504767894113801390315948814178176375511823625577541273834614734255604239553805308807095714458501260221480181332566372468201861495422718446717778891034727027283795690409098446106251145436975432423843326917603782100451268288968803745257347853651379646502656121260620389709642900107966211851482564817745237513334844993639580659438160413718103501035081777794439189704648381081389303076497393163083720259724482485513498205099096585152840648047726569340020248214089372393265289196301637233409714589944025146513751434638053609794544581009817430850884664849907386776882770827429088104909503191637657884777397991608542300620298376152528881248681550958323256400731736959929886163774371377688804643253316565379885923046137387072960810866443765421641869224565188350926417566591827088766599731972843461241425023827249274269755206790963193270415790448596422425889301831052299816241746473155017933940364345195598920074260263462215940167577190064625496699200246644400183269079116235479511287288313462857076531195413516750785412203645779044429514971987511573115515593210995662224398631266597983605921215262686523355372298465289908141950126658266452136516450342398141546932918332811188755194755893750685389742495061765359577044075451408141551864571280792805842403342267040674444332211350892857656982090626526256675520281911422007036901356015752429451360339431316313429880967240473670476538072621328191009672513123918683078835334499251519929760928839176675661461275526918139623041397220508223140992599615725073240529341589443489635680981864678122000510592127245309654500390331733233673109012032638496356377291428887505179062766472494071619456938435757091713120564673849032370147457405780647490305700707355546526527154246449469031316287568722988590367589138467288861802519069455057125960840761225610010449860228808294602854219843983577927977101151894580945276621309907353189766935324689861772168466190706260294146991465122421464844794317217503886511490967486001976908566597843867956658905961731072384822836010999029682375157641247098290039787580072403502096067425309297828390271475450376151624051259367381783954292629186963314672843254318517880790439365514173641709899351347386193418461601358368922568202201768817379885314998376090429804544164950079693783247973700018742122323196715324495283933154045260446996908851712026466037949431540415245799304717294755929205394818761840963017007614390480297917086373908930380308095109037125396223045732417101213005008904177945523966642515970169717858649583719807769600670549045952732256406061331269325151924109696703630207645749467561048306707330614381461119846750178608957893678673856634043847789351974080189011661322099086219216921377734447288851937122862577683123645323723344812365648819641989277952766525615684413333613980359789089108901317351906513735593402732749779411953919357368261108653028312094659382565681777803572998997564944363091787100568624140841217717621868784623761531209122445588358278098349635180246379090233252687914737434808037185778070932894636228826527541956478738731882142899597279991565648411919566953997357312811286334056949448577064477450498166863241112845722187237911125604351524125778972081781146207633183647629914004641565221077555168761174195266291984141914147989408001250107057142625987129763122772371500369395803367853447642439069173156016359183102329516323532802411917465050347697832372603116345257811820658689722762018626866243638523115767577824889732631738457485397038804621928066226471269907177857429177130937213947419497001354372794525324717451501307812305270547063953153412802695002420445112809560788165671229265996771497087026045597737639979802064478798414468023925784175132242123020127107135224611864683565164756333223240482755364298842208568479871336508070126271236878448106359718997619602380006037535365236927650216810567989694485367859641012478990208095403214239219561154819040095942618528735867555387616241503185372259840921293450394775799129198587723067446775502851333084180996571747849521754090952559880861689177347246356579971239656308327041316738772532968343581482008118240790798589006001773311210635229364398202288419915914359588527615969290161481792798293665308281690955736845572066619690305778770544793449686084566213474926082683700433562449161720700298583794015993829294089686489135287882198850290628203345127895563310042809365397383805866181952466421729895205916767457087376265685330129661322005550951242458926295208126315373844143970909868540795000663304251004615280796433149838009895247707667858765084518648545619700447231836976114143722250462531700006414784407914676015545939961843472665643087319118610367972020324498113323887465780178047210567343108643915803758164481090287371264608770376693788794141312483244188557085104484297920552880105601187873256530603286097722410800882866438783983824199735612834934444997788805374073508604331431127023200844672944156074764917561473012878294653648602811718102616050045793472303921658227150953205394244774172294253525161755369313460014277811256382781032081229491203717567741824389767887861746309514631786047586181716386384256731772538878916337582709221668090194474621102506552269173769131164141745539346510863605758367181042845105875620668556283913432686232569311017867841267057708169776205409447228102949298563536228138471606683846784086942153577500188357179067219418992743749891162399042758535504300842931556792430101771340249444572426694537943426428513085639787879346018816589646349691845584078409602012767087205750902212561617547288325959584757627133732301297016325049391927288867856626808875222166730406713381977171195434091236074703386333951913336818061093487868086442567945398027704380055198685965456959729994305512293176892761321022967264716836872393168371362673194225350726484481268628429232147262930425537736613489219850092317667434698073495093532209461767267771822122706902138435447413084110084676427088210391293680593527861108760696129580007068152160222310622829608291406858859758885362963121382398640278893079231755579625402123143871511545649522453460493239685517737599584686469887852277333655459376688053424372054826852017144195950476723363493801009636138014617163998737019866583240598557877331625031900631692151206406597949825175999102796192030513808395282974272116787342053302266697454591752089236197814089236268196498365667996309507423096896370583754965398113640664457910264174746269827918901441310667061460291250292454350988262643427615203918665692967810934367857868833193961170558074381508592522492786952924947096666304995565589052605473869831177333789605334422892490044358687688422081813051602375489659234577925570852840887538813794302639802189167374288325724741624282887588365545336246900894421217951884018720342431804549973651183612801646103208494334509016490283159735242394614506166674830242138251729683125752290853110867019314954858778462488216632675180010473936028630809766048661797541375668039574782534507359056120853030963274486561738234687357364733185459915501623782438760295079548125906929106364871665452887630854023770569752168376861811399504591465280529367187164332256182587471616770032885164087248341237366131266845033623178627617737834805369275387590690887084060518782912675051836013289592220741453524339412853465333937183631600470580176891201616449597789761739595253688669347199165707796780232923229724355697467798322323052051040222039781789262641657791844328406835177336466816282196799182104407009632585962500835461490813599943962540645570834852105240065461214698829359030195458896836669088482711268474097031172370394669901737389350488410810982942619226640400053782653370200391180995627832377936586699916821975859569663121177030814490310128322140640411865097150226950775979073015097228249847815435386909086542734952487525487499556910021657221489020916189248132838434496814868197552208806824024271403809549825834206425850402333253659727680698071679882545518001887534961910600839885136379674743642044316802934471050440135098190509082757714366388920535870110640644702266516689684660804317079503359649336037452638897879580018178396926471196633634613507788897267920511656174951738656364740811584201550262183243053636890918498481648997945549539454154720822532049582273789124873197183975323637524009159346309856404952175902075731367068956635908491359020799797154563239098091538467527634094220187561519697089023533633178288100714916174242863416415358762733888715524463373828373882226688407902034743786477375993717647550828235246183186857025896797844076825936549581566771584792515448619764160015365260830232162867093586395191396550819602279449132370859881571819072058271527602632051905725198108698065628670490151076308880600170063423226817952761684578039633807087137164733145084095217323998974755362511530825997349333000692818413535081964788501620218641917408194860458814366073566863938213801471473380360518340539454344492158875058701357822050685956941301705321019140633660504071787220070334168206351459741174850368894837805854226724404889417322809535787205294426274181502130525218138215209494390134907817132960127270188267961178958907865356340119935396171811836612705201967851326048979399703039489494246883274642666584762012799510987627458007868056864675449733705761437182469849669089293217383786694135265024772088272126961933058402396462918029770395262626571276022486916448649825578189071806568039800316099247252206817270895754070406184125199665902284728500508465704201579421339133729695423130436790504260662406869916733118228211273918501641056568186740243456901779087630642832255338561994255185230669944683267758961558172343178196823187899500466325739754471099947951139678759869743934435149806940433559860014361500036312265231052123308990640393725747069849766178047458776050868432527197677938019226410401439371223088867716528842770001852766943674606307417036239473481004701137725264902423366934232041001803638166284197654499843847035869548290492466504605196281752464076993121540751624172108966643213515414261734507089786662081892064410592674034774247848233674682881090260385439516904156537928575425009144508996480395898809810915542484568499040349413535169865070976384960631394915809882195627575829383891105369997765528778798925434584618747026216808925386765810827183344459620647322586377068843171900974500374838332487763060471036190270362625412352958856584135173439533052288518651566552690620849057729479551275626098878541436886389219478579232940322909731219296668566463910725139711174560065993334931735149833893377661445346335273345978718195688680263844390215748770072048379097020595550470340740842643271056291965211832317719617715484550509774076935993418382251096385581683870750032269702047032499549945486725316623041247565093806541105567567191255486082187979423145013158140038606663898936016024585314679333994894545169259527230851915426685720289970568357963074742670045526016101405128048105393512534087388046105285520187231477726573445810558899314937887784799589147771661347635105759449161420386959058237870592508903110813201387136071177279356061166026501175325969896511856745263933893837337629047357338809243241962839866094833030773331777264413492124914289347777674068834271345804759949688803991871691286242398862966479970350167661089412485347909595288275817449406000152278726457514442658821721606998969146753261538403530633567966503248356906768227332493404379272739227875534187536707893777855709356346101627360604897284763611699209979007394947681618901456409942332416715554401846509303225970198165742979638235831096255020548123456348283131476729281072544132775337421899449898747742048817789536510578251437171075461634537081317010343873769078288388599749759793817041138751177049624649890580427099780749962904707434451585796164921581931278955408110310312277258398621426107496181385897788392498225339977671659494279089668228366617004530756024198252833619734417567652433249959460727181868438770422522001464917679530991401519799007312809232979853827019319372720151577552262340513759686502992021812932384471383616200431004084421048489524850962073994264801229459113725027511050170434228070149717301162961394198393466811996684034066280043032058613338745548470327767629631746424277270721058630957349759394985890769187274906251586411697207852870715972697682517200032299630236945111294649472083279831360484940075520822368988171967441208774377746331333744059593699876804825690947561633296672322672546895728087013960221392383438409432022056005885589980385212619786381356625380945304393577565711089890309493296628695769267581688068219087220604436196479822299599190771572410994737599348690499524520887834322292203360880431380304165102896210586585586412254217335392624366236600429800270451565648204034871587331697968848030098383420441877089064268830400962428482364218719606570026286628360515145774442748644783671944305534330566693734947363120588712278082068546870761464367521391368287275614284673911276815308740597451438959509325592255190119222899522375212183527974932610093034916020169010902969225150945638109610496042143327480735225993158690665814754801060636946227796327316292271917004086306679548049928829580336034049502835416308682925039032263291817093043223108916091698877518433681790466347423431273894627852651722798729666396029135051388107574395312639465148080021518466017195203474721489514834591139026873061618334905739319779057329406346537245729262356991497420642828673730637890980527292763303093712174003950643162455050465192089177483956948173776512905083818574301811938503567637801919374718606446280826228003212260324579673912635365558182256332286186977386202442282761329075114723854298123896274733430598094291723192470042667394487582872527825961939826978433157402401932594795248808974369616951710747521898866603861309179061195872146675319670718072260441043162206531667124016779129170679398508690100670479825606880413158572810158221302102998458119228473237289963807362886324761240634736707523911497803463942537169374815811436687751612641863500146964442579931313452675205264895101593735478116693376028943574964235141573403652431111861873519047333770964387290784130499645669560790515821794051224283575664420015189346174999042855130502774580265360672570590318457703288025795945739900416997959178827616326983755867841839228115140450284329000415564139067932938947683904043835468757432305393754371843954277725228284262977364622262078404286514306005622677717700676843794378572627466737652870935887586560019282021960594262094821924507977321319076267977434417674012323085614807041802441701106350949130958140253998872706768879136302113235388433740938129077648532372548906394850122748230675599769041660954426310862175261755092928142866054531234838953455855832145076734287582082633954702518710319750264264672677203241436592127049534204631641723776789803902092609903534526590621583141610037425433955096009104675777028202451119974160275111628925528523488731256591754774091794460093950698844434255471484644046468179876995182357588197080217880183814115319250369627502665303985027454916743915985117824916842728651227464825871890293412058445650425336371399749580143885295942752877224529977098221321156304942356478263862072106037534344690321730726614914201024884766887222015595279977368126090262666356526796192271248260545429227130811038333547343360540517619794418396549852289999881108964998806350716162809094755094432274951900049426216144622000217234005117429346437438490144211662556666097026362652158854576232573768437601735370187046345637480549625486729314489431037956217899344548799553209218534396686198991787863215253480624969958929734591117830940462839530597504642937578560477880272853036783917693066547701580629881115696635089807260872096023558168193431624940869511831506679812591161544200514781142502534703053857242151413910226825500617618549366864433260368524835416555124164381438600274311405051186802088421647441595850586774101086466092518339665402885457260826022980224383940191061552161853090315127627374306968775714450154747072857525042738138597033268948283337117532143741599414583146585814000822822604974291540106963980741857562302835436676480436814750012710210638144311957949107365742426774543853302498791194657228609973381095154536780791487933284910692798991920310601324484303209482907276084533358741812118466690822000538374350572741653669063266225848742795171759342268664759658103243543945287831173253658058059995879999970024974733898867573603133035330965659662104753997881756465562881420013018610860108008677675877260604307156740686817822114756278125551403219744056665604062561988692692302168467361036367555339602132232867925970333506771513774168083707924392642121350769610006536607904464470338778541008304094683443365434187596396607298965640833376032388404578352034418798807299302342418456532431631857613777540288057203117288260949629746357517565285520624926239886793373512013341176990375375697841602080466652100711541985835736005930656059759070438802783865936376867060380355449408467579346649328756941993206893578945758531267424033005120112560544622766940304218075923278339156703197107722182964502858845110951627905691679025126522108896854492017901657856330403384821939766834065952163408929961894084770844318927649448640189232337040578363760818225574937877983875722670676500538953734799204410530232085232545617313939115518647664053184377231290548301140600843677128206247576037866666662130534853625162496757983969187350362484275814442222694380569172328969913272965502000866367411765526015572405561244355883207685370012620081780179830736754467650174203138734246883633340328563568488462378300875355667379959207523987459360968178989871200387468853088768604775913851328654669313518198554805428517723835443125346915441389735413278879076516617357034935009997752508032835873542249098415059454144421780543849907703043620145390444010453655132626546474602701417771172996629652270343567708767706798588473432690461527877357486846340792919370948873455440421371666579550137906327964327582165159957889393462294171535772385413671197838090759118915019064468357851238115411333515069065002710079465795422364459735561835491230618199012838037173406966720306430132110790138902601456790552748326650393062950528783116607893343822679410233448707254198119228495390265837466375747817098735757470374644117386053749334956768931151101338888138305940126937183384889238432677190900414560183981822312909813750292214238368586483066073200982556541959385433175956769311411338612505119262174035995317046775743763481114889870792288272244941555565455820743993899705234654262460268180310540681652882774435756639368013860662208671950912833595587906858143066650988010026668758917941695994414582922974475518062643872542374396461473982707748544814517061824804966235199625243313487335327766333666550490678710287145058362675941015347601981688488590203152783157271567228663330792704706377712629774169177678607278912309402416390787577663440224132540990218039320950462993415716137490662187079760782333032635884923983806664863010661354495707746729195272623197913529129345878754972564853622489794317929289866729544497861692199578196991267832597484888923435555900084882671985257785703267639384839497092837893226973734318603891799928315332279516711270244482558200020363485202128850897652843286076234405186597114730957585360914581490321621472197901571095607962554651819210919371001793690062582787986367200096074050730891943163260583257291155973971129958240421966240900218049108624126937231698225729558271938647914598480238712455224104402445168442533077043441630046191599390855050252457315129339209704725221811611827427046729345611635756160690626176790637043144851285885930708598623973804563203512298323163941618635228335504413005736405570386436741911400407511258470539089709738246509812882507080253687109227517258447924305508562937355323281013285314379729797955177931938311117965851382432782430421005235109682165470226318776340708524064092804179635432296889026631788116724653549386307975939458018353532822724769451017050051042698449387199659462007477953044226437924020874825640647682307653057957619192778427779386023112326926125706261718342383256823558392718594862109024624943534132904794490575387689223017503244447269881473922243763905532675166854949801974446658770522762602009554518754335816805512552839190435047203986747628553765183864049546505239419401249561943694848799111055600986320317727365003664621112459261152082831320889672404149502413156897863292154870645719350741163273400897510130387119334586205830796297220357522192219129876182331019957232530140707859186818633711744368420573252433009283985270630870835443506574330731894425828408463922075650700736966141747538996698936918440330654288743121625008023831517048972552517551048657663047143240181985377109986975484298866509755144874534643228928366069833298920444355293610669035802145007239659115550661111325405025818374655358042534604428308462135100773573397834288078779255145066452558708412014430834878028629469790025619269571990776057193126467634907588220203239041791577517408704542869206219724042444183772638774864651031197171819571682227079145641254361848541340091435315645766444012696160823787441895353876500062173222553379734521321262693701476409510664889006140400146679842825444562947964312578503569537486546506119904134064933814159612965701145722442933172873272660348468755951817035671746784559040512340919411818218222495283392924709563955728445382323354288813054463495930344336003738678017112592031206116841445366267713053759506550797083872536283896584250308521147215142509179681406101828036679942908022875774490025768151699646390620163591948310003976057251447476974819672867069242451379649663175534739544291612993233253179598308653640920658519493551717868786053006737778465807040589974879056741518740865351036461994874556851705235316925033717562529467914662158213831283650945891511602680305391249888716117150331192121088041078880877362795874801746069653114238844068337718909559656707202336032236916689677595157951697456050322840472396622773337716757584900254064509711008128098522167202311692629108873873314968374690086064683436500519408944996021222167190088474826689013310095267067483172609526316042860981093539422611600247975527612446452725567546923751116869945275228255002082329112469805899501496955339182040676264005754382193261050060856504535813744245876793747871278493427454608985079987763202899710141985236995133080875556736004153249623958149479492048170745824326352343036123241172036063835296551077374602702100482906897391476471942449284255646259170680803603559743158649934401864330147785853137853576826486953617838943520591723511077495975001811984873519588398365030933399737697164449200042770885106473365941123969189314408669197218874642071835583832554033912491061717307485963038629139515471068300185047914706173525975126122931451679061123700718237314325557160655483610586896098157375944193632279232729677694446956858731744550003220551377660017041509401943384065144010125388105784350976847964166392201778622674748372988731831383953442263633835997292745335015526010119798466778926962935859678816047591056591891658558893988915223328421440443670222390291609806255739440059843040442325204566374890070491657354943290370430929071581204903784347021777057350092718183890408738185999204257876471648523054522756616836434154792886631813251506471357959583272247645240218520974314090726111799028295685615610047377764608624965064109059704963972555322784203562354520368446201612458585043517202431834964820847831985675110985943019625016803779750690513478409427046634209866530262823769040969393277683989863506106458583229759463424752960986650926939522283408148237037624041229471600047970693379582317995250189403349279440294502695644013074215018120675749704263309318661950250689177723264576111324419247594080980070280263143208293279393887191193054513987259993024636881335088967639442757019843403512787738972204040885928782627531201540211201849686622436725481919688757997787553762878200882791694068713720870061317503353893662937550263829677544430813476581225690369805709886078730359124350663831239814409191469130471160223089380380033622371329760381928821552040234543640436699003712750261523788581869944382998664270565486791280330083637875295760772079349057553804335281195517532791767002845524242506118566354431217110685685737669656868722228251275998024758517971072446417363674245326282343742114431793992204482164965700295207691901533039274364755791995208538771571912750943699011354540624943948825915144592991265419679935095468791834652486679582146786373616676170409847176296201439095959738716183653341772456845708518367309985792752234254162472450573049622946954177701213181888588486319170725420235829333224765126794499998971705989652231431984262670594220700547292628244452224992572049697469667967776753758806185959292422971854850858777432890648181253361610101016820469478719414956547892572393615727309961053809093621490951915562532245024748592712214048356358706901252632632021877038900571507591922033038943701022661689136696468275732772698212214685192225523054610945004070933073906689854283225977810658528576063319218486776929765787946436459687309779400973443209112316272342205520316147579865692518252259311649529366835809984033513585925060122864126127436232115116361727581645549024526608386067034088053980618654999271444205945652505125257978134812213820107268899465099326769636658885321512254638689387980587537804256981605715697765502610118671533524569206622389797994927260438020674201235628102355631190752264675829829426126193513090549842761153367035926315904166126883937652299724215107819488241021916355483220794078401737067341084676765483665354935944522486718832744879225317000411007696988907974540966213141376128620426364033805624423171929161094968691614726770943280263236892074802893827562050388345453868639362008362646040001639968553455226650117129853568617379675590174233150547380948159146355997968114213521960012878616310131675279514172264054816692199115567691494687239832439837154595663561224918033056971865583905513135900673698640931631284019350668551371340040865163098213834663606492354806430914801818368904164050564721365854896227685239735185355620639524270592911448991136881971887055213695684650855725523180937642844495277414672439570022458418263995697151558952826951480591818410535180607572455476032826860645947317648501714849652943424600550504586866980628526262360997234390173987573222974594556389881274322935271834645838261812393276685392033908442799921103475492804092380170422573396984773926328491545345821966888748721798227049625866051410221652974417456294254454225224981282233257355066861196577972660154265546294343379437254349204179573712204996552772979248542132159514019577238690611761062580261272709982340604970915971431298683305060939873496233167984565188476192089427743639486735832921098998185977306960389830198867946464673432599992461743161570296838654120777299023941480528959129844738107748220832105131634650455201006969295032508544609919512831422143600868718365594566803136873869306019296681107474034191609417752333102627055006023117592401897379456096823868633153008196637337637830347864710984052971868686203749647809270209662669075859191817207843665598917608514894942275561812779707932431534501121266677216492392586866800827517450907312009265575810128964842994718731922544390593060468083007889600849862791716025137955022071712408725944125403436773112264084664824475413013115361958071681774337474136731482489243823384853991196917982078660543689785316740147421830285599097441440859188338669718803282515396562829114876901024374496076231836461651531427141602346116766091341997240809452735402018422981983813958394228921854780384486634442409725992690639627030721914455995470786862591914772961951132226395305233678949986245414057624871264366459118206894018084605628378098800524131613634129007921736724368501531095132009111367349522859073183384984705149931362394032222782368564416593612239638917523962513634134675615145854604396872872143765082495383629669985913335073364883121491616337999240558602198619818012507949914197922844388640021416814128883805944220084716328884563914079979032244035933779392373405532562324286683516016993077991172880810136610312226542885483727922174818585536362010689279112824193279201254784313941876843970044035066738074787937615550649105345257957423125560606908273664817959457333524879460374994514310301197673355587534133427332618055771350769674046207206401348268916655360104378923519226492457744259788947949702028451951000818821560490559095067714679992034667057195884108061498845617443556596560203155863225059958311205105120976634378013020296526962256862046917910274155018839174308875097048085294534554954250913776877558914349585953944414276757825257982258904718418967072249847297781361026674713477059763178483202801781314952486701336523978066166168142046871456710782619381474013188519119363595450906044941466803342363613869954000509610475549885677493341220869913205732004194551597734575718584900175911266969292077050886833683651727609963926668251387139401468945558596549908737038607875614595515833811229529365259301082051221047627482099294291783375095103733961750921923254078714786006043871241560967401518126436909232652755993117463915272030716073707290223105661029326370372349862043925391832693111565761494453811509991455558531377240599852398123381301001250966585999033935740634854102975439538211942390156537977085530616357514080665600515004489525329422470343221182576557883966016265637694956854218471262503846987441025020927091854104525118631658312099257498283528864975168841912964237578989596728849846595785792974945655072404656496331979294782736576837290444756975436717219458607690541054029665928346558227272896344214005847880349243551422573620076583488113780366041395350230714196511606741354376426051349215301156707893606111501633988787573191700409860831543305130392528896227384354898008393847425435258938280499026766392582215567951307518640040638726906555160847037207355947124601573430833812138882441446518574488594037894910696540052385077181879997669934248163099806978846739340965200571568495630971460796975297855035381509194955598615599726829145213353140343330659542307378223711982311752376942308681824269924480131368413404436209773000178539693505394868750529073025007963210379120217698176615919660416134839100977873636007816185678857185964194808596347892205491007535299494518517087821666337976154103351371130279840837492353546846760434900439854459357486533628164122524036478216578801935857827770917159513064024036591771810606398646342297203915706142933846456253589276192704685730104563852887841945301883694110491748834853606293839948016978938356577131026293441936286561909704521154994848088954158326044433562492215619740234350566621669514747056059729185304835324052425345408676954073814219487871616448020295534232512788056396478371793012645033022928157018251383217396796644152397400851032114939312123145011188671213319184734575599636575116296651680033851541089480272491615222176618954923410696505182693125178854810466335482728618159434791647310060339375276081370693589860775522851523610824236604081828182374356675338627949154009179475519313124830664793620045236362548680764152120746322265334494964321956085021107520607914585958410081520394321751632366865057907710885333580233132544154410821258051338620438598895338272065776640522517240787298388938128046400315583274602683355754016709166625618394146503468063942785016989503127885898203681211248894939239920669908187310013974226229505521545714176512622919434790672484729573678457511702921325062276359009180346491078818605946955351071484568644716785730442883104294040951221522670366441999454639034596902174490441089892604180221563206943487558041123271682266560001039279111182192008910964566369427595491397443615864660001781510771704176806539700802951970703858312490671783684636465867419851556643267649067506717281633603706857763419491496994022224531918751524238755303314750963590869155996589072566123284224055333509425740404381757805314029104387493491001501471139556859860863932035696403459381855850925663117114542291379250294218377208181968504320076878161274859816948871715297360919042518076457863909480155907904663547893322136662567938248209212631874610622781547138141911005971891794868954693959129062146770364424607083374169266973582885351219944428494709807397713361498165975853393177730764333781544370384499621682177016952588320288717689949029280363131124452426833604957422904534640975732148838803137933050751302562050574659697717450816652958050395797833174250497056670224469835356818774854429605202450641648619136898878030202573133579593778681830887578183171364280322939582897843371571547789931592267648786214156547672267574922143769558413251388405511685478651355432765891033614528164050701203954717969525759739307348191738965530157058067159214264452087823527220224463331194810537781916260409260597813387813064154142860083695345621149671706701946117368013586816733742095809938274642962187353914744967606695221938405030274611245120165655666933457467801268862652083995050894444652639322564022236217260558777179397798068574355724792342047253364332140345568024031418731174825254055384612215591294130175560105302369118595738942520378588794016383349269981877846513858796579897088374570172032049302748184496210263732357804167421574054426713444967740456088168145958022508961516136169362227997202862272975489958289075417066752419765776857848935668443665258761735226116678943000482474218932662281107844131646312231246893466213833160742779384394332394702847809874059786479622696051588823880047731263607091638490026219943006034161880512808776318696705526230688024935680886700462750684328040229657999526708191353730836310428196163140664978002394434276335922562912539212932000142829605410384954373442692699603745775301751654453859204714416880209129017308091975969512610779774270343883116809612410418656790027871083219043553739589819651493503999156764246409711324191299276366821832641882704080745714688073226916439031591612896472497549303335504527414141232250924971532383303207558952599737380473353215266644149904092032448233159436474686733396774980056279800025198651263672865047036680469929823596124268431392672450379486193917196852927647254051780354945594015528888837487640625745904133345145166602953753913602429376361329997585693351912336541018997136876052996717400202613207515443147106615157696710233401585311562459898372028823761038436251336178322424606319175474546977679822872652083500614392706863186473341541022258633054105874504767461532401639174453151897608093406633585093247709790924713412777372258426469422740180483917422268816072235540315546269282950553381936166483961359418959918147298399403801800763897382052858655944456875268144959990304475866092998472660300394545380843709290193225106476171284979521473652749578779554181021970654387218701733646694067462313645113426518792645330891371265456971435449671984199388462190817985997687506911858274990326707985507081515410383400808775952057340794671504603618374614440217898639536775061049226356085378759024666163035668608116958884549053069200093687480430487681673385141879469618081951260290374339659128202202554539928835121647070173054219921147981243054188197507209137756377701175750946103025067926876571539457852942232030929741828878662450613858571723925591341806238895717506738146853753687246066490761996751049678049296336008693081379098810551493454190821398651665008996646074023016179160189874406403474728618521427594031524057068734783630475864326362889718408196370661931636656304711922960183973166395580598489888731778581895032741057767076539791786438827939367722777525128972094732134087281027509461526782404163470538362175495056814619114892438467930957075460116514432508528326990541878246318113622262658887055430945674756708819127463196010877948583528876747435999436193815250230116174725219347668876591609115641390830271553844063936362655049819879820110078723233651309190474339374034581920945108459050276408963361312129482807306646562365331475591527001265523583794038040949085597572585641773091529789994141334207546298754014161260866557262735617039916573930587865030128544111761100765813030584725750576031453446315791211381195513045898238903900116614311591291264123416454307037515468741583108146373640068742231057393709474366263724875295090500417686537429195770919506181138965280938745660589135046930714246116742597731000643876924743381421299254160297286993810555305281429441019460284885142011579230653399835820686079571078740692887223412949158140231208059192600945807622559169130930039597843305008842058494192437022638556239789002695987298177626743292904979134312562055264082760228834555562770523298572154519140951221077376901271368680087007570582662534638481456193079365146037266253728745863791732927847856073054040365666724176710086578769607414688947819351341016573543609528524692218207411932661450774958894687855149088998226015721873586832132638430822244856471091603685200085160791469829662604985640553847979877396776302815542438166166265624474485602405028096292132548121104207820111017909511929904289591026095402164943902416263177507260750402143200461068180947346524177692779719265289603454994665286911012717023292853664585956474870926142032269167325805185369046158917801498225385418924117625360464942883078856546880745284741759496140063114396434999079608638841328967689768093273429060214002074921008541191109671159031308197100066452310992192429639897503190177413380641169934798398179667597808539057633823543833314139814350216213989806317216341637424408217673213194185562155953918598407337746560680681104293044468091734721938507389386726573014314790086306456196432447145912922280260441403001230014474936524680146821086593744016629883497828339920519890515419116886428950782904906623551403799690989961580384608339924058151148249072410813922277638415163629639060775980285796495491745166327077353227239640186701112690231821105219734042659956689976557836920720945781477199847119054094433652737843073166016441531697645826142389821599981900741652926172032193080062387373514314709181875752133987859899106899651171452048941398265478280070727827679332996159610801944540039950104719771642395855057271845467654210106886115815073846373991490933813760107695166408800045243374342836584008007602377328448351678593913826643089042222981837739726622254623435106421674886743933543053099758291975742776704566861067432776581323213053487150725695721991261953042724527470649988777706020203337962605910991790624204103256079588212246143343171675148253277469574930382480444469393532489291591473703814239525121517841387817268251046286267713677505025284290323849716092257752427494245210277797930204992888006420287936908694621473054306965042081423535739417971186825758292731415782764219240214480401640214691844756526646003841162499078165446618791473112635305721128503070474700527654906001725269200818527453249421166657821112175563019833585818614623908537233051459416241421617945081637584133467877571783813792862786863572784485355313636172508266261793065904641923620719784646451805519809501638775970443036881157900190142990755142232649177230991645843082571330004485629573792841089048326786291639800096894027215885095850150082012967842983259959415533289764903405217072486506744493316813888233954939177070468414142885499456219155835652354873324232565428722958545928087344108002423775531712781845717889149838361668916003571557082997151156731026789186145850337488837006106698546113454441135839279479072189316527585846422565266066719409785480626547201543381373257624832842326915821805993531774477157390620547286544062455637745217647500654315304235118227929890816147647349083513697347465710570055701489124269241619615920754682976333254064339249719513460153781728900588124867752433616844800895553290888028410853844760705013942906203295113831270671051219284567358056039382232999848401122506095085743011726992572299514278080173382209793375117190540158922857000586007629753338989896447413545056185899454486465147111478574511606902850903380401274622182575079389503041998108577105544171958833234693638726020919985296810635572242276487450804872560384423631420614877265219890857547331541132242928190450711747790785375607863165060739135489130573272514197396606064083927764075067075438661927049386662512173001714354759797118456872483624582561319064746475412363445631576730789052475085440435129773641576248523860840672762045498989356136840836386475082048878873569658040290312867749705480359620670539129473991046355950227587166743532727194603660727636474359442958569466940564266703762787916503779245901320053014009901033659072175070372770048624333650776510468408391850155673190401310865845827167328095827770458005543287448053441775369030223520115177753030813848647440611160696133193746452783622564299399821901018013266575088755696264075629286214967694842618378232684915815757079774773881063972253989201186399013983885627898480357077326996675326538906235535928945514097871527160848875035181369063321094055439220840738149919825133255645932557063187139322473708402349822601527662708108305673693080733496800712365657742971546779568959320647308902371634364150539129441794167245827955495949041913549226706475786826672371897258142485027750058198457716178863973116051949645378652597059915252104186954930571128100807513309588670679227142973025314598825905925249521928084516151806781069953522587785073700871579200910466470850617881915016927247397127013307089874296355341614252471414254217987619015895506223739212753642119967056822934125593295585377612168275120961705813234576201269937023774482935267648685427323113931942434324711245902339986179311708752482195299651166358994695099100955489408345517306846162958772993729510790876497595536282106648944013383955170956711240903024083063793884209799515578705868692370601890539545949122990128514200013217398437341740831809964520239371183903390478544716986751417473178747899313777593047933031317186254534994026556054487069178491356966813760286749685413142514863270686147969284736923244649810838523507989806183539823601550997570474795585118958938178370193911865575044683612420339971791482813995873884597538396912992499589019583652450942829962728861612373174794809668417622301457365139755970094027280557595540111963510500333203779867209793746201270447896539067633026547824217102728219767506203235616467374030448868778598691222102791905584556565863500184379084742021541946057770898696569606547131837312666342924719237025308132007870118989468087006504313816758206054683724738093845191457600113051098818680218844987301140417745741696870474629609658348387588708751483240923832210855897163234024560533650702161696362004027454954377422155819936587900993854385390477814461478624362981617199647966645966056159088866302867803086964660182386304623813613717396385245439054763415156545991590266062452148678544050878416771208237888559192421843079479432643494146790356709836284847143079096726026289514152843060864132569776977979519669785183007548372293888763188414065184360065580134104664183674182343292850378298202921636792275409881196366706436817162866733330201150747669753943093869145466820278239198268730311509260617312106259922805373213411355806305544397680251302482684759095778354404907813794457114177829034763773943633418269066060180815376039744609113200011854376388537778597306110900508702155215609139321826730880735354238541501523864212623463583619733076904881835605715258668777065158391397794385532842180636137191579357211585308243806428794984141612842331046116592848305038636637418516552374615173883596855913072057582875572212089184458120068967049457176507889849293907071283987477432457440091943352039837559305743462529993093646601562066417588331820325256696820143448111524204152251989634506733005377804547602662637374182751398994653131707712705464160640174356375806729184232265766044573879277044244911363534180697285440596611243509665993944633044332252093421715169208975805932590909248410044456794959035304423150420431221253779112661124749462163686377608211067398419239023473393563421431938076548543257222948578552022911103289782379491314064042232501164841866959754089991433533996685905655982943663118033836264996763980458341479809363599017513061961879265661083712727430370890912574688552515460168580504608267075049919405179537377370100661707759645981011659929251860284737495575717283544723836857660094135637881765425120506240880223154118313487492724544622518437525889760510190868932194044003827508031136103364387166336974540690900712264074005618786373552403050510601178948797836109917271839574385564413121183554059767785628477953034480485663400601708417614773851297192488913807145585545297648478021250772853130483691032590477197945075296970492039653913851854140577285011030709605564457978915984880813980832632946004640554754156520207889923279529806648313345090702308561924702440607006231091392817194740405299144532816811914386992798748959571511172519909673386079193045849127265476772607433131130074592538750299247990255219631305627622334241721059975369177516278436668084959681205729725884410591553063585993193550307717801457458224622832384312967842022283803628955090172776850033286028665138932493959790234051673774251426062941532806423073771527409679849363261551186037375364429097339298472658391863607656274788977644243960240428936951802324688704051739347195455518407202071588919188673058482663924865373306206859839805730247400753295852712162592876283202728107151272575585338644717666507955263724022101889648280690652832562525093317739642180376037179469125747651804543688227093575314103429009476156395227751903964367446231846338323378567295504642553159725070608675549624852199912312420610962796579174878554268333781413936307678487490427207611912558782190967584176917642446021144255832381811288770138985831447115046086582152732369020479875940515298320818222957429348086416610902063667316906041157998755606445710169606807170573610178753951932555125767903211128086036062706343465624798641776592829695275902250434654138359492486354001146129819765808914426071866069645096732336372356968168159260584886229103538872362392795525474013137086359215169661424072882732274149711333297043438932049305922628551958100515374180005978368334906023817853100883890077656150834000634767272800160402984814727320122664494045000336847772944989991644526681920464197083679635725779230891319930388156392773137229174557882481556978762795660086914682354074590170738153976532961805111127579307472458048435326863174615499860410008477600895774584927862966224497169649643772549049240253201654505836958063892990455302469593890346812788656358149011983571866744428333112873879411821609131349514764476180971386699996416411688654446734066259889662793440921260067084913415730030870808259278646822177493353425905784417104225704359014583500019430168978737083485925885945977010063257275953634114440850430946750429316022227853328797763415666453069867352405793283978936694924218227090326182585519941705344967163547407050762981479287238692046085664439214391512824444728673552172533671342607852962584049185840409450743550354857191549222331287672661604833438857596307716519315962880865028436222520635253461821466820371243067278745568613933369114121107668212060722970066647253681406172374573202833536507001490975571896074775902095628900855700271881101500734585916830055442631832410779280790372722506237316962174309229319206102153581538480794952567831621060891276702654322148994103767175395635236090370455967391194002944782619507615379970120006958266483894782756050170800254181106869680410600655643827992377713336691421314828473647380103937221934351017139636723603748574286660698382970391077356626072634835376655967035499440476927082471199837356919423542741184870436923756158563835949839135660257153443968516118925441085488797585432107747182144269984906538581329200091088398589813076139777201669477096944287055947218902490147264190855082929462986834823618823589228529817088840309640826950813645431168770803581832890583136288366799623560677901627128877436686251194083827679142758035061425199249181834616350711978100317847792390139256573536053417787047396601297028861612336112707021179244881237861696653380372393679565533843735051222454133189882879410374972804139451377567358919723312727446982262882064324792383289422312107569970690600374239910322232055308496460589383496610644649378427591027392975699083447517851754694460447901231815109432644896015909464272196350570817518519574421345429250751663066385801600146702026526035841156209178354516212046006131196537411661405784001504351075278352685155329064419329471601557616061759725483361461800293068369407232568754949525816585584406536611197658203458055330479084450518519772322486139591949277078449518774184300655514366340529122574014185728766067441742665605616108340497945814415003173293628777662840450965537255360349284168997971035629363586927569983084569985087249725103333059127712609539175374265556603009736913371611877027961046500591930679544397366833609158403096926915797657758970569006695436984610598882727028109333658208119155588313338431865486115985166080005864419226783790370196747304394090331116577450242896528568920744899415698991146301228745863746261113588506385347770771741685719533258425356545112007885812492328787810952327041862145738655941889815998774707206163718245681038659623993620364885659340673454984706433931670618085057500566725925398409228194188302636335721418933168304622511969641983601972002397604219869657722310352581156763015481337297149003675234139372922138595666319263615787958491108729618176274261238429079718056262592411250245041533439539556522880939130641386909659111617983013832534143332723513100869393133638255682494586236241074569359425357562922695667079606419919965340784552006475248064991548864750709224132766488247923698960368592234755539566886261195002087528338937164700229896197766354114836988985116829571074149315106421855145181485668558043047952912368287959198114710544126425655637919017951337005468953735541860391323019172026805249053494004539946554160578730292805376950742654475902342539284014310861991739199173440089609660297880144646422232971639984306070365110976797252286338741485797441065622777013724677795261834924089705136296297136518466009060614285013143464000723406881769109947662166854862314453894110383150799642797069344977489410213334700658397741466095558814745371359719840260304870615339874264983969241128595365221431389271906157351452727660339414575193558409803340473907624575911403859916625035829399342901217416232523127943202971745234019835918042660917735327380885646595161718905114053747329177934757595715761297587990268158396070809557854907349245154057513874827815858583167043602543502953244387739185164942781440337183926983053604363545836070820767910725716260720758328195365457738192795807055941828232215601555926566663807522054842807749453224381115526696395828529628084127295859269446936564670149716982073718563796217861354328541809033107325750687403523511012150274816039910063217893131095571505312887419120996095783757965571720646794652029708403903112236377502840779019033987075775274358471831747249841762846885096503248590841379254272703485371774499287199006524782082701212343757639286359077385253197612880281554016848699362365081032967807849881770050164983407748132013760257865359504098008629414198114888033782584498929386420837759745247873246312768672568385752226534561968829381491310359397239641844259227756350041513583329976823509367846952326876714401711989688257655406895626605958025664101781394409511856112676325738975533424733782611574594618522912918685215453162162823113303737183754515200828091292216592998154130979701385534865155783350094098022540457454211321568751236703404455884518079870482899452805137043385991782670891148584950496342080513676611476051208649578810651515402693651421560808309172153643631776668837228234264554562709003630334382582640605209655464111570226950285607193839261948090661939676650540857022793488472260745449968837065385931391767152000811524955469810156393785195538773319597632369887763144396007821768343336010902055090975033310992619398150049179139251624834541696211397451890628614660105324926170586247494333530904337615119789460956785748393227770075752915848424720217314543295225265263947616806096865828755816401981967181121630771314248235443617072745548101668512113850633449131239554507643762983189102696482017533563891881519768641630220365796556696246542132910652157142450809233593663963774861320311439698292329373250217258666080582902159228384323567484271122829876269929665692205477179794342380031804784105278690816059269270269033866123725094396653660874109274064774414695392616582492191672305660342011048036102078530829580784164978014825749869805637968325291617204354218767876948541461654907327658511960941530792937963344713243224531123311617789704497022164992481737589010906064347882046630915504386797381224256940323764625366769718653804751283185881456450013523024907962742773616158252707441479310858105498424061969707739637754821540082058549916836447177263126009872535032038971953189177957375085364627862470246266059846592902422256832524366702425355917305649596879426952622095581708760066854533062594587005920883787962081194867881943729982020965547686853033948621197513362075298596946929621020440642162945870775708189349781448670682760874936642523703738808378678324906092009702904147641557172002024945557683050474742060617778623707157537171147577696032014482565602310695413051734590341957528346455774662523088312585192502202253308841443943130345556226517973415254095273499173381826335508971137042962742819722876770062838374685097892408977382811117364674758428452990088962513962345525173227206839307917963567688168435209838180311386424517244861320095177315300426757425859220294950148102562734875332193498044441310683025954105648900995671869126836279527977755227678703497002293746431355539178677918429344160796585458941600788141855761813779474371761494648045353364769812909267315913282118807096935844071632551031755610640132027071889466476442212648677343897237261817090824267409835081401891214278109595901077743430655118054557088954691987288185272996260388072881044354349581238113416615706743972129866064177299778687847288412427931770597402373946640516049112443592556871057352945285551758009345029772498925470222371577320313172017958219844004524988166968689457470128372445705955241591068645490769874458295259055568896180093651162047119433901197950272986067207240095976084555428075597972722678836307731172546828404755120784996466518248215083868690092533072767675363859022614422190733755841549133008001375801129332217249371136437821273262051377354886378538191603592686316336261392235420791807269457512025589527192626771706041663379685879570222632832065726275052788307454771741476921068214177610044058754375111854007412197007712489427633064218138432194192713743937836290517526643807892241820974843505021005245627300927199440194523812111527980913133720384145838134253585845298305756866139864806693633451236316295631547913211420933065764879095949916178667790857773103283009548492346184012669950552294001555268915414097221081131816523134379592034067874923628079376629560538886648364515640781527954463362877603527815014212956401368613725325126910370321052570828854883261051041124823243203890124981410114643089131950582377562145336185071528284342822872870818051277238585019190156093347331968434676782738127645949600991884062054480240396822782727497300741092698797041637348758272662011035872428164704393815665693014994118351043964094662679635846086274132854402488467979110491054366045933730063487891297385233045355406489721508126011384138282198524633190376223043408505645019190617453216965564774653746657946066911902782935387809455055089841552258716766472844285330451716185263229931531182131916800054031969641231481491027262321581554454242121627061746463965516797974575547023557007482578637706763129108825771983761644182540507604844584439021045510575580555617534562403935547501348271396393816169601843953447393348001336313929472587934461598375817320473296484522932821898561827220833853108155621775972660465666347059845898347301621117265222833634656777043723517047497821452761517430848439612132622839215749107555037347150284288722506522722220029815338407800206048278937533523022776118419580607618817580539435838575677814369586268935345459842850477551671523920944462917026823794314283436665718618159875967027288637052469833340383778452940249288690930860576513737423839839535789407802811330442772147377930089885975358066258338487623477801903842471501185601510229780969504747091637718108155453245831851536042221477674008611179331195422224337161719004837906167964407754491936624699392465909292462704688363259945747699071357407448527831943123095814849960250229020830909179157469384195388286987751985480299230102782190850953031071569087698801298990240651412780719817094621893939809624574099080630902680627790317493651836119531303200971390980630360920990754572555033946534292303370145980236695598846556595463236751461436242596362449092324890733266392094478839622279355420352927822395979141220838772583904438946847129821554428052562609095158193960895653569683283943843609130700949682897323582440567166562131001476342232063142034381953006993874839907381264698749412267124980607978122083386172736674719302805365406368262055270093929752034486336149255004022463289589516705806137825857626358632402296968854863436624699517530167574340663914716062309811783600250431673463416612624475801049387182057221507145683444274158455181113586869453793495805535977782578674459956660159885977469871343822992976897909095121359100918979548859149981616874971467256285554178689895058261543849352043036893610017419937009741226724217092346885816442198437792113594343234502189772937110174171959476206115585148676954956154624232579062100182662712157479734041676698844884047327086033856989808183058566528345553457793037725843593024397974842116461811698408419810669943518726675687287720012069573947258608421877975791427741994123043307277244166542032882391911133506602200904208465778976969659121789624164426059389912987233480159295816758933012541386797974344353092838827417319296472165934752361182149557330582870325892357428189308964265376385172740589466141932455820766834248943340238802697062038016158712095131155426514666921333553289908563719444355702621865828836365592544476086759570488590365602080164081194590756296758846630205275357744621635331062050986349293991868922629807872818777985366293342076690915984969551256649908432350587941272209184976697796010571329057425670810691712868219993207184926119707742813445579531134850405644253695972928188270360810611585085926921018086285721416624225630977943514066379253672606418358186761666117392242575840060712498821375046780464202558533574929634317267858902763537044731832118506228805362554961011261222962809415331929310812232283378787478709537019165698996636094522060193753141372114476538039582804788370147612077365235599760282727900676744736965820561527636854364820523981734947039945654663759088519086537042649734045467510008535919368712159170518748269564984854278727991409637287377200908871290132252654573061795800661387102158489288202436062832608419488582178673440741229609653006407993448891975952796637085045377155676295243050227416408842747640969088860493071342283220452258881276080481204707945129250782762451510853770680558724134696719616862862613215241893782681323237316546518724932989230227818103015998662587462162441167642034867511641509251702876955055306321761565276309319370270304698912396163902229362905939301990836715723867359382962113248530989278237404305105972417241255299582427980213735150164178783521597273660744116824868653318744991318313327430070960833084120201043184919315619025828322520345993931362336181155933719304157262985198051125324450811678835764620816792072607984585355433271942372417895639018302340108110741016679551590496078220801448692252950718645659546755064346143703606491610357532491236680435002137482179039807860475423799283412972218969756679194468933776973317123015737404642937014146494248155437261259408850496629559391649609109724714532477691975562968088455314952919654691941357276243214086760819111135109735542100606938172901649542136632124284936486330843449694232857723275978376412374976646263056047597489397780442082973994296212681056606159144324291924382895228607787658888835493911593789591636004984022639158237292936052118261948849276184952804985422227600489237163907260313045208970131101507131629909643909436456902514372192203840495023132895579154663643585889948545800196109759257906001841979046418660427886540690739456744399960205386982799486211588519892498459862593278698794691127055482797758164560738562455074528331120165150901309939522036279958994812120596525026405879803200348644859266124631680465383220029467455294976286874658505447258636541067631962805242482633360496442774314632544047804319667314388419890303720162430741903312521463563714681973176117548406973672607652572715061779289441889528393698079909504084150733667909854448019952345154545154850960685274721049315377226968421561996244422260496581627093265341364319955614033922721895990440148653310299710253640312717118199030016162250833585186883381481133572668586366230106855749774662686778847711723354841711662938928759343809830531021724911225655443856384616175710901009465456884966707081786655233239955790925911055007410285489280035545094231687121475592460971934618738641744022702502859066909135267462449295967984533991882420067240989896068265260272199632077620438697603203913910122340166159307990776898923455167932520362193057036673421251503982944408074170763614745902847053715256864684823039066685398969295331224756342549001965333492171852178855692460930956214816609302578452937890343597171113718645356493789983720585847786421190984445604745969282905145744381104646199663455853947189890245483938554525559766864842048834735548919912164204122122377917564217048633660527300401894720412734002674911574217240699503404806403161916147209104116051221785502433299593738358779278086458201875657921142093465536054821460504055819315686972867871594625945444536838209923197117517445563406377301353084206710770898883572183754725758236758911403631751408774339321150745243719774740860855754899683407797604051305426257786207653175411671319625608778454333027273514899693639238783438921022213733644533873310415703156491281533771758823577008515394691981707735113641419475412878154402566958553801918747777353766275678468694580136711287046492990866127805639697648262492114416283150257745369134815510779670990102549145628406168320437271528104389226905396095357465243464429147577850795082338174431184254859143276304227833378366413745988137284156701160511127186257930609145499750853486539282473740025164594351479871308751856636971094522675624423729186342477736040961193698993424960074046862223915960738591470182663786903600855798216251887467102246271753676785472807301218971888487880300684543149368490175024686850754364287489821992542002921525656051959748827986061965638019225780110242258081801382500370385167394263732091526192034437832249150425956011997240044306406376458177110957718629225054537736099725354547357485819491593699761906667423849193941253074371088188449327549940968497687256754982682394562733180216760005248300985440706669229572605606768631522057635011757322442706122263364299285564284689353768242599542653942002951915918059632535409624156345311618558327890723204574544067282572728038248542480869110069873319415677391449792122894032246337123538396672517925138121606953180882700754647159697818870771807694551516843742496735221574435078716032882327385100671503589051595504253239026601414166257269419603908825927337032289681981253181609180354453776273294157242726025492283851871871012506365092415009263474399099664176604901738884556976986102621890049599116335834587783453551641629223669233914651121061318777076704251815788644182388197941665119598167876144977552870211800881747243330225239258757260469682171255663171473556823832762490965460504144987172273949442339922399594984980817470668641479865118447498276308243768206598735957493988183729272260972711789551454363110519613887414513298747253995299499828428024490867093967495613221820401145920560921623639788784959578366816528194618376756756169872940357179886578271963696720337579972620009474127919479233570814684150259531461592463867994899000757631548879616498169156319919929104470029412438674021731577173384187187019063347353370244443459613254587171124121539874575231413898528085645256795778356243749924030432033378641622672030210801497201220813033906345286215045925915920443871529410217384108305062391489280857460936836640541199626584399150010397137120651446924482385793256807462525600284759108585620746937416037714627578090744227604025687609521805038675682674176093340014272772496612300779636038080513130989099416553043116153282989618321873116403414839134606358438398467387606143213393468805634205808340356989906407222722725869233693936920069473298425346197078292165609833427625190689392012365538943141265821715161785040411918071379728667579726474484738856484613380925436615027180091637793196221300745973702906374404949109104451616460363879191030254875955495879500107675018947616444017983564466945963796461658736377011127728116419347475435744800255670043065402199656901024376658807203069800646538386718378719133749614593914652435794372232687006780268239421887087338078946076608060082704836597785257259098287109363244165487911826109059419134873820604453006199107837160708851000230883887916617653464505340710763916260631416726530574163908326930100477021234559415158688967170152600113514631242658089243638245639871626049770214552096552784910879730484391838685419623072911112289805806607737684015308440834696736033432821086190505492126308276195890319760255381420374887908145084946217418235204739142656851987177499387840076545623626414218130579107401523741402583138812111875127487108947738882967033160915745861992886896748408513087936317715976526574400056286192692514856164079295203760927792902373918059836799380593230254642483553930095382063465458254301146874786097975060500353720758531719524800267813399258579127557314830966168458224163820036620851005765751425839789309364958682198224671011174511931606999768383372418190498136347324178543300177607079602552326632940772048607243029515109324885806756422340182143889001391895161202925881217701659518521577057038794770170326390362068609929638839190035071736230969489926412749079206084458480608039277935562078843933974012811494791207551179116130848266967891070035685432679084836000930085819352127285796125529805287723633680537977344200407014409593754449459873813259195124846971353922029398721689601774208822706213709339210170977190302428710849271979078199105947179646626643240797785235861124575735954585789754981594838646557123901750513872014282042777129367156061853527935214959771730405260755362893905843698474240769123871743537589179903040959449926500574990890523316713806129860582854607448195589370568441226231493725591595864692763509956861126530732681152798578376674765285101942497277530726446142467630159824849354478378387797605804031491917125496881714696009471930919023647522680115441155549799583022270301570386245847276491457381926821190383236442005055696213926516943488767095389301809866979930413392079965231272985950500457957602323994072752638859487695594649048375484470895558372056266247637301820289569589945728969170022515239891617212585616215348834698621413953572074176857068199588247413240011404453407085945717967347275084150534044163945338456847319754794262586170562162227143601825554590335741250327628716605568079312850855722020713062483168249902180664560012662673996779022758275598602763326940646002968587380429219087021560359645836521161796879949451805168253131644385543353862384334574067024292761441940711551719121545966326628071102629352564013429104146405422613319866400189012702183621375623722445125483846707550246953377977037182873848197740104489512141513730860695128934903853912191397213100232111479896208668040892563564475321449069788580116146671242449822511790140642408588933600779194476132094109903306622961445011631551160281130904416291829404889123406148919491017044114739232111858515292666608860457594123025369140481656281958482624293916023304542037363515935972051309510034933126365142866565998575744203036344344492893520533921665270268229011065770119264214113031383411063284214868879166998822135181593050995112028035093038969921457872330061596781682398927542746370195669427902043356526723468726415199857831943569470033240180221987927128557278025932510938685698978419421072923569774912684353504126694214256984044408164298566099821298145673754691349451535993409714649181537833794707132051494152492983461309972659829380088879031899017637096489644391565014260173427004025930238841520105252253264605879400914470655575354164716585166645458802572081514800889455542227928109663946014616089092980633207545455493454687663151025284597124666247767278498856442626051729975918102831313256580481573979536767463282993085375686074095297997782349615644940421993821526168983961290702765737769360029093419549470142389528811261970667206489321851221354890976202978297633965301124772774657913373600686792702947168443007081758958216280838884410892341973488397729590710490850702611573517837597536059389386806832152642695701208631488452098778076663005130486886969365031147619058768612072181265959977155231492976114296630393704859674671350350317548516285913113787762703212362223581909683760004441421211661493551897869090804447491912872882521517617745846076997579303624771061112519791182114869964606293372004065545341995637250138832670664973404652206994898615547032219570829145677962425618786972270924485284839802137131063049155617670973999071472878519394975563580228998203487065761026594685603408298564788333744305770313734425448901121669511612801148682154985475721957686609159031328681111067457471762832092960049463018802548166264358023811409170907604331264447696040110668078444567037331091089461038051267733902973732329527180437582030837045397855317520474121247829342002989491676053628110588764813167466397576770977915221298809058859786676324476313558126396133186813414183738488776856382830052012857203312004340751528970973709713429613562859633071100918786661652202392638284569400323969964374072759259068928961139015990466208625760785264888020416748802254493949786778570295402863361235853570831587933830145012722147020071565243469195679568215217487545122242517141954807225123076078906893394138351322615185015688793125682628138557773575027641768471605681521269507502175746634277245914275783458343798453956660385188959422607272714203701593242449646548411899503258445251402857850514389532799212372633540175070859216678274825044124948528652073864215381883174014934203002452659398430468895184748953121100457753958479075785587365162487217328845104034863899197836782753925354268244446672760021557341355983611029577182694200555414114155848749793780342031565788368332066921014054964174145322960968651181827351142940006897040939533892756192274350243562239510338479037530424549093413906693031123681278522391130578168943128703242281047323056300980438858301122291713669378198440698664132158461607919687386535308644551495587469901141180446563526761442000282702240173082308864252196282665609206754135022227367137461193553804608476122978899976732666562547001064394037153747004684963415008220276786882340105318972560985994623834295085406501172686205917364234788467504078387008152301271585658753543105312251606284625488042462756490282336148669656612214978470688961804197432365500074967495922960917977531707140437072533146597768275527437335293659307814630932932442565849972115751304134401408139942643690659348549812311749667742009013310144141673982922495877331681588259222014029776842900440491395328671478536210188019706600006476872797792577546260587046435190774381801982521369669746102540150532598802691494397788489333180030762536103812414964722059187957229364741282423836710735045906929699876512558892608470758611061303653341023707553277314279971122481650404842813480756491959282471008369879749480895214088951607391202656478757952658666007871280756250989396278201926615746625296481654858087464202157456598836366926742452927520785025685260529419490826205353643050800460015444573607515488016987892713371510624554602643717104008861876118181000349788012059169186344990581336040934651282684235228921450075156881761025070619744761979849837563946333577548416577229066231304636653539446304186149914513449417407221876090162248121257679943448522507591594852974719135488222017907551570561960528060558890105758072806775858915988529360693165351717862621661797417532785698691179424782388392441414684470499624081347567304669169738547737905837032924918967721392415756856926342422844490232792678027294701478101089279507170076061508134660144876328361059531746445502454311177947134754641609997475385614412906572392358569981505188915396562538076605908762800054136944750573786535916230049223926874399747731568392641807799752023978733554404172688826583171957896507077966838889640667091165802963417951307203842657406511982171157429017164681950896188090353692276919388761650823086079571100572547154395908780312010941267943769980469078591078833314144151650483838072468948054722662650823145016630183137435265172631062312739094473313907692585678260953188557347549888020269810826549378874123537002538077047185710135166552238832518933024702690925699736277043922524907938253795211960429188257582215463409899556072990480449096602992180997988679105578232117244653035995351529242331476466289427480220376978541352053866138836260914195712039187083451990381481466118782367324331426717691253532941180029322289105621847153185995943099218723522899305308156665034686490342942082823942840908847578866266551044139436871359748068102332941699616758054735779519949121072470761955413742347789933208014403822438214222723637702280324331071902977304780054886744937384422180720899195204400884113124362834177631744919523008320906686650212086897597022644077622250138222085115553450139081276634370578329095677161352080704886866724308848488148706806848586139709614867568644540163530139373179413982284622091806098511026609967611892256106929278487018443879891893953614199598652160784575371767526227346340407846408314708230928425737835235038082334430739361110626414162147297285595552258629786726198173849711840401433322372425900291948317168645264057845789888059785826561164884016848915563339840589795166171459070986956411373204084759130810244135666638181236409696539473032775634293586001926084020289964681538447568898997189438030154534371837305330624457307437911556137075508861127537300538613683016946765337819129579765456390042588890175505179130316001554047168196548343876823758637565120034150418570827423841208648878217780912449710689680912223951848824330277600025950662543837782830469180902033983627447880180736572672837665468673105207568095993228028321546473918840684426543423125823706831406022332860915136681581871132438879784117008542008350897513344928173650002346502031386331711470706959945926277963824283167352300215039382190728389804404933255282264770857663631627346890327398720632623287020642426150409629952849930112086682812809124645217257217528685117873743913369616702144386274859944786497088301488504800725499109175089797233735758291230854560238567299896681291200989232078771776763146895467764362047294825101425631305351512835010152503570901432682518009402592512482625808406798010328740090356239455719971937451936240305461857348748694074459434475801995443534582864990633951518036879827054952592576890213115211450486371957741872513672640852534713381610429655231413449622734993938006741320012037128175817117242900829624210335093069712651680675288134220697431607037212238040470111023250946653528288894190664762739873588286984200791772697048210667884968134070366083452264129783834011546824741807551309431589681970809635354512501904047074553508656336716739395151122507675737892255243263995575940899914015783630590206499617576018490772452443005200126196722748751515929637460939827776026661284629427207002630980918907542469028941283288722607158644785469234484248335873077393009373769805325850956319379370299358505643156117693818862464391993895528300806091563448445519404147085997307461663883581388775076683660323502428491185687964430393534210333447614366923698948337483319187237538218295270027005415849370056738027110069810281379684465716640083670101651864564691724920655052988227759987305504975438319643782713986687234589599505315402958610762468161790586191396896785166633635480193536062317743669136233188963269570715549824909865929546943361789587146700603798808928849825420113342753292848848670173807032978424992013582071003104294064568663642498889144427335036938772690644745019074358023359305076990440029092693834469011274408300442893710080477281526248900000839754743231215781371536145096756346170434631642788622355700943005225298381646397002066372942449115315530904251384175275447391015122838810423517417190400601405013431851338820883901338953112708204397958409678911549177126606428358590097082744589711887878563221478270450374939742473721122209145911701559043916897104905866922608583305114115405167412090761900089287400196400176702142837388386832350489635362636601490339476119760014420501562322211037307516387447089840042547631303751746221803907651174526073590401306652548659743126805350085772867405891652932284630525192301675287447627642214477870797109898915573262376518123377257154328053284613839724191418380312437469246841608849481457183786371843149048867276803980793624370673389128630816264908042160448377714705712946232226140113854351977644880800635759054496703163208467294881959448754081403988253698178326028882819616371931834847421138512132594571068360815055712953316998529145251713806123396231638224494960555823990586725981443954958015784110312480775246067271649590376568931009225081347116824066810423468611255392696764718244601766120726604760370913789243815174097125918952993686891033638745770586247660856866761130839609667475425118320595273986023179947817115495161872717059198245349932686678430727420062056389483356212252654213028657052149038084296426510426130337411518556992711384798154517974821195510578341016230910038148139786845926322561561487211345403575739156416075797683646617280608390967662541458384643580060770764494199354730264206199806926520907631651520407429037213595175159035658792877468119353636019584068134255830844009532887329158919987994449532250406629936603172056989907832148127836667507820920348137975826977940639248686078657293598987927250439599441543566831344598011608554880275389043800219624567701095471345996244492517784590889767601782936691569863672119544947481313714158239237567488048513294183575267413716287617853617043257233186314641475131417734360084531950612860383924762793362204595817254431842919768597790595320126712826222635853475965855092771589966841879504142717836458933395617309092009472675233848499675389457943406987148447800902811203594953299733045696199454866492634058644653106588735837215823102329939288326052141884350635962615451792919979831480753547389935457630014728318258007085664269652310012891278383996369502454352782518890064724821020253999578689881074678460954993707541661702970659949217941385921170441168729383231190365196961581562917080548139415414235226011999922876961346618868671302600326060016002753194671815101933195087302471834851762260599335014804945185590791953519099661199213860796700788116396572172747333709189565397736766391363939977188001156541967764926245970638463446794764803074734054813125669690845105224148650555649527280276893095853683724009927575288387587065622675610755433531649319899593181482286495149648839906745601212490239067413387812001858333631950593115390686354388961015186498174637428175846498115534593122042237441036374738594367751803655597399054284825228270771451054792753125589091762018652860630698049487274286843082517181099161041299660195860674643794948243206865892810067606144047368384982201493477983610164857074171640349401245528512806734079201831855642226241008623850935903969366492050663386105770663421392121670671978561046065810654297458440067761759782813255348165939441795651466987740392676427923739132159375737530545814742510774947051604111313234512174998633901546313423728226936843407511062151617573701396426892339909546584651454992293181713904785952257475652751275485934139327230242917708460661873114838332813836431882561784769655263523457542259632099063179502111554952455592828316493638294222321864130296332195752878129184947017876614187979593454435292256521722034515277366267801994323816133761635054447719184092364531747257569924109078815335398286645142424163557083002042979863372492639155229773087514668750559401140467819178811976776051355191297920205550918743864193154853529640829689220969861850360691816531857481433918774897038826349498083423304797559714801609907340881022822458178889387368555535311262662269340356220374935906828985670815114182555236874274253666466368839930075165719979937633609480273783476612689154540422139888776779056345083903764026690068940660360766666103786132064507728420981678364823172806534009733021860883365186416144757983107758579960503412214716262490056630163690740096226687458051349274188502067330917342192060112217844346680397849103782984087129683682330690092004928516810633615268353179710403958810982574193710735979052852878794146606616553203545164819114185234728628442082060393337437521909152035284554918831805307495552386135926483998678529965932260991473798685153908995204066198397855208317347092912508830985501805518371463772061581551734235639992515625109500510972701571258253135588968755247941741123637924194023483451491528032768755762517206015962449223934166229266247708612487638570758145417521042320274554110809421736782771397604369277604138282686649370713375286525884269502311312313376814573246174475182077234940684998659328369103832782210092934665170823166054584137300490467870199031154503256162633905530441971029199743525644312885241896204569435065850620744114191821770317494665971777632641685410141062962227460006841740316805883495213280325480018727026394463994175282563187334593340335637489498365879835541135843029140884012208824197223681912990619268114896574714944714619451582454322461513308249946147095145341649975821985690757324857971903351967113394867938884566370788020002101314528735083298123133044863767835563224661141491086247870658393779776308931798412609309699078488513046813449892253943278273402425923487170433701610917659013996034508565352363675011926288323396096091252421338542880952287816625709339453672970331928230274977420413828382630642970412312821390734744984391933973944148977475326549112562559705028721851190832421075291983453737918333246208135418087583472758648048457027484911911041783459374006090027219880805430944337612901869852547194955579373189004843564661345462678648221520252439193414278619295401329738267644761374101735045575589986059195080395880658022381926405748624330484349558310621225313749014373581735968745586440546088914997885679575444656881101009846244659336505419749820771374060939543011326440754693586180435411396615021410504292754997325808315401123674426831573497531789400672325120674303818120650076200678960505931319151639107423766818801285289075605106645167448023202400436971479305523089477102569869249149486597348392626305380694278904335040032101019095300584544221775085213828274934104401991234852116069376424098697963084273475019531762940739984246631889869963088211627148289093661368839500320336766874782762706214695884713231956190103838163205616443728359139412590246512844127488884863448009314638911991403049111826324290244062920579685810944593955789184132288770215739626993038861973510892838929605299805347935488383840116782861108986281280015275505509315106065976978691669987350772073550354764781551655106507157255469649177796953524817353615904263477175591563517079047360874398373132347515407841714234904444011982539418667766279127969545624610286436492586308338891151451985847414336057711899691089992278025481440109279341653241310736292458277889883309485352949593093731311171979025087928340744049774529854229440567020233857335401733499652139407865064224323454890720283222022847339506387733606384780442834817753882800565482950940067434696168813601395087090205604119614325640528786456449234112407574883765668196862571646719918625426867847808738462643328734648987386996108456600807437020175948932747503445925866491278487629711960647843838497646168662625855704141481686265460805894431067433075662655550677749455143936745496090039052178622198787033078975976162115638377916412594162028568955928976548765254067846474882007786120033722000456885680960421362188342832569530914271482606480472304417784792768087338153278668459641699528960812017479102933779767955524936635601313696031058301679767967253628446446328049154153671915441270897327464599938646774569060291885262060398196120859099440557219245197690132268530234584915344778726751255702504845239675477562797349031064372156691171888499654390473953580796837079333343790446738882726471741758035056594011701719682303867825339523405366839553411644087774728413874097967930633468234733541138631435004290301398123695032469676075038284253155804768773140201576877809295212620469234743167623523202821222807981564106048042532212115442093390313525751539912332532074587451431059032037476478323778728337396538159377307451598364181314516031460851036893325215560583955749558253528363029523733570331907496907920879903033934216585790504972556096972993525250355675747144495631766016541359128872965796621267654625472679251877450998893015458883468740587157859955076976109143368721654529536463497110005676594758277812560775833542235746617632222955543106033261529106260884743494721883303661774854771872435797207862206535223300297962746218006854115261031607349798096397182781000553437767502268063315586068318429026367861438425102295330205361637522908472986790424776687138736821363449611486064651520224920573290069172033960434359200624866061163058430922556710817385223849119246528403872554029412868253132543243641985383232973437510434630301834098131574624458230378138303370867030995987257427425266150894207404118750727856070265331109163957672570438290959595174503147502293766265146227471868501293923226791422030935619484244544387421800566576997558168713289234479094851674131654527378743896994222626532187913325306200117205717918705914639859347734496811563377761616995872452114520019216930066276313774279443616918052549990633123314435220903334225899767166203293307343752760431021793204336500721754651385659977637132854648878229037910558994936040877213012428315295811040950416933086391212606427775295242220946140329065069820956078123012727468703714067724417668428843880286858668692967453921793799982034000635248847140645869702077345018602483607686592895088113815964177644337323848363064411992904011365107149332533790572241902202336623007411703494912154190755571103170053186966908846524312807444263266764320674905535333677639897091191509067653858715500591051824266367464815494676539660101375084699299963980121829516591150662472530812601855043782214846502828290223197253057844146949643132938111877343111911836774814021808890755659712307419784885385968719180830919000066740308858973630932966489596439334515259140466303858306870466882540756178758068877176335462555799272485835236947512527416708574259570601696302263759998259206737273562967572753818414220846363324032189410013271017262686455890866136546963936170326306824344573479541650544867841499183818612125998953321334698472658754690242372673671565354653188792450492490728552524935640636950515569759714021946334291342551048523615071688668362705464615909571467322931841798792871780978233203101659614336490813716802078432353972821658942480932548183938851466605245188473711357319962672818648947209205279826291958781173087596147741615009627382081186908538002346559864674148704359850439817123773183255104802871725945436295054491976891556917717129148180339357514535495828813369687129077025820358083229944697401193688546705710464511626901618201296320157817355766330348505428475160503596676735792863172555454847025299528623235126183446948462061567652064218663942100033633917373594434800832889452280034314765308053244238709732224296578468931041568810337258341967753865883077834624003792236956334480688668033030903632972824692698184563768632698600276953388412494767911452857930968317121196874151282444331200890769264114628392837272892719248069236054042672766959570704707938637063846126518246609680572019667838515953432356665055597770709840663827535361108475967902062059518715840797807680816127286429537364547829068366303167388694584233217217026295481053392788352045006664003401023597431395578649865181738946818459495658674072783841856565732949763173282341603527870811553010674766976697578901545904981230447991520569436097577971836284785123569860185908143561827505876801549214754949628433290210753908681974118517710478281471817594950792562484024096461965961006132057686211002891001678174190567121218995302611562353404176301260863751272598213892228744633475077840280905316438354960230194404494883978360633197771944601907432560995251138111701342363171922891368713172163632383172112417814620159701116338403394724911473854702809064873918976504921544929185985282572056778588168385182031650682185627939652774686195198348816319575253774527131426652577579405093296651545276148102129494485782564266348673462433551607831220431553490858724039626912698303332547562348673202107062347433764937619573968437764238118028416137714292946406298172875161685779119358273061469524635491236831588711412321227124821508031387340047708634403819629854032586720636920918777854285770704192254069499258967951130880324178594686310508394586058904764710802388069777557090384374612827809555074873730302502238651219469357631756887488135327458087545150915661458401591384002873773124650681153442829726858267963952919714149225096348518603910829859446234337812897705728595255714361856556066004064437232407496501316182848390239051994002408228455393179941244094608221162624577802851486161948335205879435284370572728841621601956388305226232060634756856532901827156048071893787561986464070969951458172165800736874642248698384875277950262635369959904931020991840819696215048370344072096330832756253130631226335972063084419563114262731815308467540547807441108028699718089416806411507171802838669610299561677127190465998724229217174397031633949248738353300323828842376547683319144266313359965941002821614610292873280594845862123155157279027010372901807505015772247072886541611253404171223894454770019365192946135456124039344219237418637074893086123226559329770936272797548786282155663136902773028984270016913141123550316816588765845317079241566160124800220065944423061552967760233137730172972988656591500576964357416234828696283456573073211892420641084848437066120142830913807653591376584098571230345567925107274686575987230563887022951333127229262201078175550683099345039782550564528650370193941342182830424515116665057168171497760521225297231871712941142542209725999131559472661849836358987315321995318199253620717743668076456474372036473482832554585576810303726388584055818834683188528133051771045603583453550449442360837273260422339963890462651720004360691698375032233530553332650909832501031801447568231973108729451362468825672686740862386864728125798066513528202048687135578348659923304471076260390949695846576602814132344284973504063856121189198131812883286041631053611036268687222627273442569085912699259517189033991798523212774251660084713315397904825940096410166365376820606925716675340055774732201187679627587934032617165237951712248136906122963803014361438521493313699215227708075831509599341768756878432047061871323003789639732006161699414348125854266352197338004429951049708567818746991245039932475335544084600472726431670877982935494382610364208800638563141514846745984653516208107142356951064186108559859266203814510186715987679118329877263218821716496061146112024259851721742824866350100646202115773180725676211602730552057382695392970520150758781772096539523045751975481675322796208841525129766484873208437563472473813354882574945923499784197310640815173963435399496957018058952516316809662312962165369963697764050469800932959858876147133107485408207489390514284492504838105634733799571492613965308953510581080780315750583439734544071345489308258456288617289849594068549985056609935858106882682340287480875017063398693334123161786688214328600268913383585438058674729596967485604725367298862956378039436097764574148354374339938228656432639268832221398174279506595180431797228300052680098311234936172673859672941240555930962170786377132174465147542677858831497790331643217370388369350051301653126598408766378171683564925330173026164184278383732913325025456963324303684882966744255215996662986187915733161895937927717043605408165648248040673114230909727639578018041538366888210277091295711969891465769498702857627668299893681761617360368702861043035503992866265783375925447778846719882417073787569186537929631864349399370798074198235435847043949218619097300680245936694120529365220725438893427527974851890721611814788967675285623119237080496091482197059734747499570112626308056834951485009535626344983566196001576305244806974596290743740260133622957321268053636905387337708237567725194893171684779372453970022664685882847613070846608690536174646576887802705187312997561748047867208449045296076159557153302667133224763654412276962062897184310156763841647123664479608279857371817607941074569899408141479504102303937589127271245623212343654159299020220795855371435771743101039719457648465068300795435844558780355045712036666521460217476906850006756613517201324577355795788038913756509812754829449888448720690368767870071322222157998940953546712085074656310192377089673339269731965357298636934855423143095684141446968490726001363677834873896363840946925467326578261288814137857782515642101427972538484121692144579758283261021195144876595751626275003514557161894319102734775133768924943941905647772329999199107220998281233605779013644470521606252588215862892747169943444255132486289419334240754566863473112826059517209496858844076574406915011170738398589028195749159279701361578437808383361374072799442852074275689624731945524134389231761767384429545662442358851850132104750980533013481535297262161720498745196601636925068932132446403658271953533040007044480826288617225593737375327609885221635590288423519620562454324947238445197298076244119023279322653347692474835751148294958720608106526551030256313670041939788911186260226667736467105259862733509052515091648319969628800401684561058043824467480032166809796603006749310569409934815684325093920761928037321420130720024992194938356353267024362919533314466960576591928309080027549727462882288481038480552939750636367719788839925708631414952886216275968754828316036393968700928269863440140091558028757625599574153185269613673198440572047873087351149124705732911762697504955842059557631603079438814030533798494060243180022530818089764682436491256944702568738279948173855212492289488486451502235330180233884016954261874114797584728292112768493229354347673272022838578111864716527837010888163413864805110687371057337964257994470055488965055011758307257746730450439654738307115714448847568502249714980820024681624532142605915193431161377893922866535818649787547618536732036620289604233861151947375812344030041733873937566494450878400129408891357206691898572648056082706141463645867465775044221209709630658339652043722043967243357338274324243547277272681836858852472371390696133645164395425146301400751566156137794662127544829327324948255218956716972727582326439409872548314174678863591335250441667963186102265907243383938701368435908512551395114159603842321117503813860279955752377495822094238443900170374404897692879351783015475304285777707732829729853894751760427850656122421344569236779094107828392081346843186939131968385378317157029588991049153543277672577305339392766674994226962781806322668977803950813990953170536753923150140129641085065295739192080341463782953348238125311561701369332701736308303415559824841428546046652515630688784766406660991769186861368073651559046112281616454639832662379483621978782426967957732124305957141531127329916331371378398515452472997892520705933113954293921716028657891969058113179395494191299991154232922372716476959688289392412659291198745303293537131355489074642592701606286174226448140846813922982771588057502286348956618132152868845605733131040050936799621435729946068339682729557328293360036634836797526531290228578911653398700122940729949357975880933746029721047446500519729470593091433341514459049401984596944048542865862948631880587102857343100666732933034570625679571896996131785308986804581132442397179015279598948237241536548476630396771230910632678444991708825665713882945486617197058339578881011552233982143110516399446224057906432783416193039406635902989297542754668807272841832648228504663691269332166399664092912019153840877734873001325619438793029677235384142289783914136303079331558193038661083581686703615511632897229887556116957765437747676861837014137776287300387170681907551328181928362861466508907405256971474437015122812476591521874090916249398576092964459294142722380491088346241578560691317855118991389481374133390068504017905950442153730353883365178913327803647836752018277094572049343141320725959574833398834473707291293552912088660414194837002284625709009167779215429039130417462006105767480236085567933553255783010256938897768326964747089843180575953858309208157670685928321567084010426640393634121954047201750429647132192143347278092087048336794670322010519881095951175115354594504046032166927903126144471555554318378305687680135353720427085419924600178815106253979898700154542087373036327145940214506505068472780515893462333407000319179740936676438279668310277785168864197862446373215638504880072464604967409067384422333928620418744121867742654020753760516099364750176128897128581928623548963926062209093132600516857698110604800117276624420748779705367314908994512841503499645608581439363587609896034943365373321331957510567926773119959606443419900523962910523535954827773382202538181040025775175298755361495814064005345152743105928563172028487268361089443835431489901316508694798905928789368774846216979943418402235574117569682370579536295050950325497713348143356087948545674881652005988172037733712836796024615337752926514243199272884780969814167095628034842623790754476877943598092689113717377836103259976338745458853532784424660610967569184957119244317397548851028740619503624018344262687761681418723913866636241837165689065441030417988788254065784310274237101084383047283974191238298808592842109767180639310634829684443790563369176271598505279194828489492439126691220687396428421591022252941272262093971156797724489966102029123644865779683383891820418478045439407133682533451249655977908599075630073353297863518942731514583925604252624443639269176098889553333864867005489520235808841476357622384916755976434351005985450977442781192237837940885896262034057889422119364082537028280609352846207094895273339623903473900395562521245156765452945893762438944686945704477748264393608029750879439030931845086898193095239134625572328482272973353143746858648640304927835351121545290127418105187452153105496389819216282672681833342298489362510760739187255994014222437207674136922142961635712029426276025443701218118640909101648778951017303894000844430859393956721710056754725243160491746810976928935042564754573757298686590749507130514856789997792125994032573748346269376769138342851513484621119912949768650715179960238911674195010570363614438796786279643553572569310543393988404814757479558935921676452297808495604708437618760123406364831341069061054362602309333028476959830172706156869563314041122859907207532906540118750817585322498628639999612654535516055891767866585772178154503497860784918392316901290533079063590278663077738388689061812932472020247784890146667525145329630368016012367343698515345421593762686552158449781887070537652085753812226582224342583597024705400784074685732894939199114899137431448344067379666057627098927037664507926261006829703555157508261136809059683069681965645513779053653829518548105831174426166888440454305389378957709369558373097830579351552339708899653535579463486770544674506233225329889733828910725957263979414845046429472377256338795406899664877289150904114582175566299238341024535198424389346860253010418026774145122493817938833981592660688418422828748648754935906325939523468161405377853122718018623221708418549730691223459250506122733703104490066959090852706592818104213954617284928681089937491002808220589540790983187964666822785901592859120876631854794455388708009745591366499539572331349312875409669362790394873145150826456647667288128395757717691413455357817678514586083284129951721074511488142216994511017423158272694323115180519587980876367800322480822839689049741867518660346547020409316268841940231358235807513707857949723887579544590578018127406248137211200922162566312342658320059727463391344195916374147001037521613600989688653977821577390171703729697967379476716254127879826281671272410576235626389332836548995666481560753129636743173199967436384182056631432918804491651332909784985715998673025918042306059257318013294151454312520080791885105021667316858297471278185403571218857815715577698019669996728700325382992064996693973690689670607647260557302131738290218277586207139320863971801925854789661257444456275407475887995944931893244499804170706908175508694992283585681975314286905204807078501127010802994459577893454071179331770174588362694983522239633444453705593172544530531562821254565378019755597348768282501629228639241508352695055229599084370875166455720326347225828890951353606154218083464425113580517178492596116974772469294394897807474850244636255838667258322192503676362723632371573265230312298285546920162756266537843198928753913291385158657662776798054789573088710876032630430633002981594721231914874411591440985232132874834207257613556159963467417828576972094212429190652510832591225156748244336401002425861107362896556728183591548270723780910510449293731248879870714100113442251780207534188013521466340483333830457809041760957531771859447806774954799537500525693818834140871024305502620513248098234265270291199960221579537139203331318536919262050153328838807815746441733951059312310083514825270252831483466549067111071828920869022107396413336197481677362801862951106709683784728764581963408288613332497291732824052158635077988108671302895814205883899137657304462695521837140921825673208114500409733630546071232245182492292275678476276256592547071888397408809649078160511906757271936807077040624660569316514918075082365213226842837024712674678162931633539019412751072622157513141169057966607010340388668992273352648608597875072347424239601359704144038185945282334166493118874474284664414675350595145640802492421590057568459013926599124845374408279762899526908018272016029361667002047392258004944828534267945582154146429654955074539123966969097206752145620933417860683048888119562957582389164874349046576896531860066268517875578232600217290348158200442676341572879561840168919177989308801713186375872096834442514478468613628823603159384789148721693883539771951448740638352351908409508120495068120559988162196239208933940159269288414951661096506952388215962854113037969963046481461653601551658539455052347824051058599699564350328299419026585018182161036751132690082723713299944875686937344765561117980540751411591815940728137832284183346371283154247475861789314814276808866866325159455726824597458392015179338806118817971774214938213911924765906760785756335821029378417645856948238957471316828880423615496911511302322571930850601571694900595018461187132159878075160927149574634983554657227759438499083525261083742149027175629806521255471826209577968339267959038977472022221895280372747643431924780981876619103352722916520851843203164979328498400439591559721415033929375996378804353058958139666054433680017219548442657916848452155448335019908429575587415740472042609962322607484167538025952086876072019398913729138730678556716473903621981733063842836814849199073236654332324216538686550118616708114624093623649740676802455847764521376131816133669862071222360765984672272017643516339765548483249906248887366406823710762715887258501143996174540173987928252446934258751798261838874424100714721507438161880617381498482681768565585406525457302762363833869069714404906479561118963529375371767612112323053945621452949494696305391514964178904693130345717167336643069836852699344157922306593356023376035296625515053487545580203169651062126254304249409557850963158362945098256963103377039549689570022931288380753862024787541567897991857716388136481346790482242143928174209758160939795409735019766614137074807956701853570522153548887711103735522102352727905780606238646247139677932617782890675374812877853355666749185080028361807779139854474906949448375482090897127891102176613572994519717121336854576948450194963698242727092091914296934080647921082104352908862858882769368504225782346623959729815234806167718196476424233685001564271799666453754834567638107303259106207685991618537261255465003949832881351398483457053649354251087511946918452978591548467106539144618675335370357554854898155282215541139123901833472012667776117293868307864932294103386578461791329681847043325607038802251804732830789761555444177143549354009782077814006888429646468483012694161405455869874408556872149643033205023051385654097935009685516906209687851168626266072262592958748325244421982597917308235259027482396080352829920074842967657078278364178114599303045791879821935135518665896956047444550647472846144753540113899640385287882163903770178659054385644728333511166578423871959469294586672767687579788280196855963624282698871681725500020043457617892599926784537937640230308871307285734647951532528983299541313647734560887941636700419760174065019282097971125208944899708465624300818977391120651437421475457258356211684326440269667056727028578924695585047579108643913705054405230929245445927951776179491591496593389516651884054312168752489160388982365701006900628675925823197075024043341693588024479492078313796784804666286401151902307715423286589262332078250738032074549093418049511212922443236844501192855956505528126444222829724277783844747812585254582603813836831337403470570449109296855956789345652994510042095250810499682991395795051007108161415197577918527499362061879200443141627732177526104338501652015034185458015449874112838830680545670311091923800671847667282379447465140785698861003364835500471571632108451961545686182759868665901934045529156803022601256062712472719689670439864861958508782096137674031058238742600949392417465327117783472063530744970393841741916186171977086460410033774835363583668513653377047452680383202408708024325660320542873675181805314269999305593295528915907216464459714281306998213656517524498980955416007980966994914391931598436486890761384720980084699933175857395645104437291322319157969490865343845784619213681336172709345915746171925641513326214219440583950882584509297992647172665659450094541529639616326745036200168645564795827053859729779001991114410463918964940588308666712964022641420242564473224682858822058179230422003605441938105595994736968594376016663019908354059901876566481136387505416886781229895021375261464026793427064070822850844151091588853403256986479846760049320675282234048589795602352892348019987993303845493308899708051743230807256864487473397444112105332371836512505148462518238201674017322913115035621317565311294640325518787044231934988874954630932216828937809636423484395645610434833423816385112573767733264781132317042101356075994215395350834258182450979046999087879870366014045726294738941868053538981312142890320551476968237489417329375372138645038253424171225659568688442500561278568776281662193149538321385526406905731781809311477407318909201323883162803185175665240946344116666479242372529008025645745506145412893195625103666678681737253782534972052493092149532649497872228177523186624800184861939052732629393862140301875626380022007171541736071760971854635129096689879755607552027517581264552075484132576051121467107429785249939242742721768794330394753893034928857714969742767853875506386924205528457194985284122387650792865213464019215390181987308882982083181205480048068168346496604860148376848643207494826590887049495266081773768902887541055615884285630407549432283168927005854081940730731654517967827837030046155329681686536391984867443352874625142509729842141969398353176842406196129903067132573898249548733557927300469854220113217117544662041779206915709340591945470898737866178536657342634514064290436518629238812821263508292636079916059434044468378453494894311842932364637363923621110884340544999911574139350203668865306647523282731330852505104719753720546579249667971589864422505304840944949219960987260789533709012089462395119927196910893200301665746749576095167583712248331915301581285960866936239479968547374066878023338494566235505592268492592425398459680513098866483796689728814903204263627000909786799096249534310237797972193887420989932758803694124808648058974243061704972119168603299929398806520857636718027946694775807184430448859919045515365240540003139394953908835681750112201796735247735013879010808008099047340869640840740155692171562230551517916735049374740118943149125167278358945008374594005251471178739445085372161478195585279787906968261503544169027873524911870714041743854719228951942511592848197904665701056452823294260854604684064375537137929116778881153380254766193985560848540260622231421161609028060954764578543898290809155296482568814418046378669390170762167769169748295798509962359431963909347972321530965663920427100671290783946087575051861192277625107450445367114288199166291193938745145395067915865351920560919714974637631048693255316397623770141914714639179737366458386435409347151745170742815847169576029915207085812546950045666676381886374849677771403423760916005561294172345942627583724536586198169898454916627196540864600905618510818227232773165309863479917939667003949481171581832136016881717608833676695170539513934261280688219197134890862334002376815764336162440941434202700865232877057711560918684844506736941726773250191633146453164787423191017199259903068266992013857574011284753642836768727324941994171589420262796582968315065280294215884280897458854752773897558975888728886138593706418647490703317705392831964530862652266563756056816087514359157311929304207859110994367326533890272178171292362735724797085672384121241223660882581036996257141137329035293999866772270910729254330152322457443310689499377030484349081314853555154668814138919877051984388338363954392596471236343098596853795943142433418434501081730448120897486295774174016859865823363587168299505776811560702902692511721747878232252593108286688664874141650816453139879866328999424256766386433157940804601589771164863890961066220936203900631515763921811452731984832434462695587286895858069622192381912777336146945225769384014100195332590600558646820749055156482276886505104371940028674807521359352812409580873565537278576908523178061442146623151578048658863782972075616552915845909704000453593274005061528236734151544950941440125342207476697142754325462083013121992795949185600863276836552131545555104422704566008116754104731378000884924571096804585432239405661285432859789038293625359589351803505564685087287522701806364726652149903764970381071563998564015491029230431451122710046450588631561850005996741767154993831842847196570095608689224749179475512384515571305460303410488417454436747899442018958694991922595814623416382278401586830943678077694592204652925134205485719570057075154689459980485797990974313065645544592176797595269707536567673735266928811286793108505028270585563781608118126201443822617883857042871644480307893188987766904313507194595134382548619033371416099460448252516853415729011947122801853891245611647355099605481842308579439023042443744059815397457355353206431699687038001027816129246777005093069722442273345735347691555668544953001650115283489747363426535542908099435673598394792153289318892102592677286217109185796341697303995090563835166650094498643838533449762967847369529818940494850758544383155229996685118592574230199908189119388826533318361247371275850682111319985412908327678308620193195089727658778584621186873974396799727863978552926924328928126706540580828280907211939651983603160639568624407789054067017832275495002426830650580034679854253063633162857987360801574058434477483697706267667695042936477494712366137241782514474912005826074688667130416501856205367729230897477088308568796258314150870230551112345877808751660442696555316586335830613504090347466750433519379131872065221331244250497540271038317235425795123815148673816348720375438025079856999882180002027334030290131796591882657338972111004011145933720587426424598375865427741477618149655917651991514393971445204390652522298319192723256646704558254326966407181885560015967759054841174599650069502073053900172769966249706845068920784058384489031935818066714477610778174155392600093159828855979923859064837911951843171918745291675996328859629109904101389095878503571532754501363448047448133753155074816066413739037337048421902748651562627379863091014154846063586389120436861884626134582798113984086491319741027327735009474070159201803807077214322653229950503054078307288633253367212045698537944465289931606930330064581839098585392147549219338266862819698066294000889787313531267104601442211816989126839762322773636246559363198622965336424193710608356202564382503814245848594376507393799383742483777350528294671273506804566416169172187826383263925912582844618055283784792952354280874291964519984943149200616026249908309435896347287422257805379608399243909124647707341409613856477128325123411371254768977022839989164059870183288759113860884388653461820770054045883819936526642140082766067941536955452222757054987110130708368598231997737538058930528890772015902430670280268122552152899752327832387353663565520349725242079555394397905988977492078816686159364530896593159096819757932260699838367681263137373112339154585716159401584314942125095805035228444191542874271994240632312617967433575953899818197014784796732242101272903431464842771791998082561073017319232184338279086339322683520082945481076418994801035833313086110230180255325973075615083162260068056210761271132227206688568234930940759343073880299374629885314322005959279910615395146409248080801046858659364136281091312347349946054225089954966305521828707628857486254380461855715541604485120431403621695815468095792639536171409350574696053872416374945009812455295700874131277496984852132881329083600690166586613071377871707831695810802585922058238515153632059196579472215277722980000695794316134880001500138069370098293022320758412719962648115822321612731916676680033257870217263509533297977230484234273030409479545776347694436360865049239497577960923092120290565673426803488580236379872943433825409670998660408452628558323883267698973123688870443317270187809252088997533677000622091243988420250548147056436880415156304046474370637198302142964300851298493268835688217015994702057818222913335656974145818241430825105251704434379181684346229563724821837659452359575183681475800520025526049788209692656606048632837517332967252526966922321714187694781099132566881671572125295714428249253489468018123267536873993055531577970870629554119146742908580831321966835686983034228333795144815424016471934145449071056357729388458025481144853506119715669277420175782688998333665752484748763964014830532195535517645785204454630947673187626154506189678963095637120800714937234600058302827622509003337366319887546854963248268877832257206349902668390323494071422983210409260763617261284712641062708847215978784176628194209697564765555442111318330011196107768202956447088434991109478889750463629673485295370746219197370277666107069046134406316782449875612001188747586330366832897578709623626285231996714948854822776755634786069220593880159553438141572604356811315586838912022221688327579951630618397892275530290842076564470936695037350991550698586856280136515206879474815834994390849133577719249275166471629562226073038600558672009332522578068816214578653910578008379562293026565789152667318239057744440094175494260138328581723333221906750495273615785093819033372639603723910856166285365488710431944901244653892900257369116527102917421600389056101840974558470805580060209217401077312042116748240834353049913291504546584049909956006528968889210200871097200485607403169206557256304478310713948070164095760413960658925881997958338871572474355233737391449991073181340890652223515961776996669437448754424494092611689925299294049902121630538751818188437229956024595119763276844340418048494729064019618901350017769963890755543301898342720335737128457456696759711789455981552044052025066095152739364368272110817885097744315253086908682562293750500835135067678123078910858426758974966766180639618033813023682088393361234249555648472150772538807035100024893057406246075338732484023859006681085333959488515052899860943280522559072540645719931678670053855559550751965866071544759901213291060896127888410496028130665679165459367749093706849291113380940980240574150794559796610046308585310453773277591526274824096816346579819054143848041472023047428706639715094933040685823579628021717423794910436540766316354387016761313575729719913487336683529331890819613393725587361403100969364074242240620308338867811201092079429552295779081048745765254021929970896020969772217652943115625516160178433490762441495740503327764583546775586759571389256462419618165833238443424739962546371742626717839766377404867830710554626524204078117975254490204873892831941148755276714664006924005247069805337758061574876011127577090087747370053009684383190513639836626173663356490164448910480073631457774393551708177719403423777887844926209855920738442452921260267900084449047717529122886445724736508598172235521810930671016600793108224634625165779636380548041673597406900306357833533207456721262122274646740926508709424821199955585711806996056095954344079874629334710974808080340258725386753221356801805922963951154327179480697668749356382403598675443364071719378329604359831271661466280450941439766961668378637097274714881475023857494023383804574620601658045541951822419053904050755124232617999139847936547082288475548559141444454678215686225761051921575373754037893104030564821285626643626100050950702116007940265406837172239626449941635547121569519088187636997394687424053487380084469570366931409463999487648526328565514897659673570278413456729276398781979855585366864132157265685721465482986856293064507472161710749193783322496051839836914761714826344704802432129790769632368974405719843738768595053088097904305676736079933289235503948480702733790051051602207937082910286546907682042650264070804360785078443327389980221842643519142971549800818581884112564156375392903314825455101421307729519494092033374174515973924935280194175136593977763324683330147615008078158786860347717417056791100788271480213014660326490903191517721748963515148650156674615416634208293399733406873682156757546674830935712779139863731663201323385812856444380095919921001976976523157165708938367195721451061116004821740583561791836326056347981850661134350585256397298528741290369520529763546388142100362216590045920975801825298751151619300044014402063490982774289744246414893019706795667675836208986839949777106139395133938812154115585925131796978014285368950938622212899218150314432038823294672706714752959501523644483995749154677117930952769244261766320304930130009031792008242786203016412266108005948549378341704604732558800500048446543821411574798430490088994041078951278130048877570795107054893452142509583546754192688226825008623674574208692368095712728866930722436913544949714397249051554122002553581587268666676559616489435534194973879736357546458893370770230739911302077280973128259560619864742914204012112269802017343812153738557507133458611049864850947366202357038465206400975670887866796894894253160408049078843906186319694300806939112892692681273048920232996747112175246124836992748954638468129952499699288241863042673542093993652791972058244228736574530500694874970289083088317598335176485814768704604396051168084939395943946956456290104561304618833484231013241130322543274268087833405942275146816815087265475505547403853568843305613748045148379797564083436150764419170297033919377364397341081712848042254744025701722415253002711615502498235800902771267600242440328402588312530739912705287744190838594501198361228940564840601123438795571048495771558009758966989248947149513777982275061520189125081110993833481953191312440798907582903896591333365024426136975573855533570497043763485622696024670186818185194366913237933302700546004140340501928005260867667719998214123642072126523562551636902568556339807186010294306212888120528069444731964352982079112476727008321270631316408872622323775794740398404890635562058410284686677726755431411968252987374448513076916635006719272869697347006008436966001621660686631387033537845803982676184481994451456318691276084543689183780089990778024269201551149486951961036453902489403151746209911753762037014104784676858538075264678306036899720427355087116689958559855880999899768439810298589508197523434647546079280779478493595465642514661362946498793382868156894947008309239557843088543729989078285307547763503098002678956940393212671514952076141457359965058330193987258516586688976297506943673515697247078356938483607803592268530916745696330436240351607925760592634497453568163956864906862453684774114063637459665749538501796097391330700253535044807483030584738641796955997721823038098877100657948621897052099156726510781939102305264101091067958729448761588273671229394676218508082575413536814100382710827270054578602149102934181196065455800332182884836342069872476891277539694640244836118986521947503063632403060081333040736601305591169821682097221422931023303375545232628910233264543189008434121089500646713060111149554603095994854168677524045425648556682143655564577877641823728057625504964796258226086467259457546653333939686512642318696870418737229887052815632560107486236919652492778984205090432938966071679682790217900982375867748061634926002090986548758438789001883748812862784304032443209432081230212649912196776736124057988455911280129278036722274395744208656702285972067517458857072827712762022554087857803739034328584228995805464287899951619695254699427323898265499482244534030229652950735473040885452684433249673211752277836646167535562144786692381469515574081784584078994650481048516631947777183251655053685356443317577294494094965134262337292432136357956918934781048992942072300450726722149242054061355100201819315095193657806702846915414028250615687951373172681250570519155734966314089354595998167054606038259609430304209430090964803716477608064039469003651419328052111202480740008815103736064601241865534808798218970739411149897778310142093548671847687989487985276128654401813391590206414211943130924949041485111513877777075128517375556995483048547278179498997508064535352400161371111039549114776951902626107020242032637682979808450704031303907796985976741088685913275725757148072545358516962141683652137807367010388607918572706925888283212355955731059906531850251210548961305601718030851927462667894047689761742157641169693331986081163723317296484325020385456171225029933415953746862094374622879348831490824206453466943322385401849529423925603633154020109508335789540813548061017337041772983711071154047065430084107208689068564891110261740213078816611351270267777519574642628615812181073895344117814232382772301137607048312178386271422085786743345766497692436281846066437590070922282724183743021959690264563432049963783080951571164841600823518093569405972189915715238664612902598513903595607531975908318819507764987623565772478295634311993144911138765217559956285421789317725300911122534056956272807995909297915460272264567990899464646529541181401208923854082458067523814918453155571894641261525286388694548339378840457251047361396034882270401193053969691470708370367054835630964660249377627247623789414468841717463001595941849200233188296780145668291886563354805800009714959100477789866709690155295871774743759114454999489747358338803051640982533552287214259559724568992127648234875027256904369948760746651258696953860873531744837990622525112383067907906459183846447402465875408539576672747579135623405720501133456140055792593118943628600896240294924859443818689642524054291241583663509692997489991718798666455161811553766740522203710476405227150868344447352053312956602564154832393954001653720209420394160685097764996585173913773793519982510445558801078909769176684710572781284933883508753806255233889338734574758429727355874248176637758553974278523515702122975992089429012389842388114059361698411634939536788449428635303401993416493181073466487737752835658648720177043349744534239109150616053971056213932143128096030421142884166997712803575501139680282900726579827639333093161338324155195218219801193130216839532904065652900172504308510756259222405674190118805828553142150239893902095479098570789061818897705608470201477383743007069122291546208480619491434834605494139132119091975590331978205494399328862803063984489509770840537681135995261545418797155017968436060005843461287732288969260020161195384520140836950081830317107144857557034399317633849651698474398283219193307226163174890366540446862035587875613214231228364480993955794352372968793661478337060423183915084227453984847350445228157658816878443997588302601551208964596114404100208192492204623339909777659058852935600831612651489271943870147121798409718305740427138424017087859891304109176263213191051380939033558679756783755635997407177070619622294804226786645751924544425656779273984953140652343117240718165317693096702558795693328804672419271407019596028257212196618388780154797359371351251169137702736349533181847973618186170080595931347628580939746698327665695574062671916321401452626341084131150211446853010392223802827969380948373869417700473598415047739678347242994076486314038498939124288323477887694715422096001996789081361066803476807749340778787045420942474192767155347384919720937342163874388099024071781236101846057689925557608910341132635199567533866782748108487107146880897726116378430010515738088387405234581756568408779245037345533508026232985688688395236033743970364301419885204005301831364522209991495564342262592700958052548805663628795134373612513529405579287503542401459399707302294017250504340372861253741739633492187699439602123434165907592925187485987219509095814379267944055837427949464798303028393660910165609275872670380465101980824656139351217833512456085424128034533563375587016166732306618298318905453395319249020997648145585021517058595397858587368220697208445169004363542094571657710540470603893410029396679149964848049315354611296432879371543434324718212179647148434028731599809456106187875122193016591533494970042026406523570528933635802017539189928765645946107874511363200536502881055237242768738501376100045560507288218231970916206886528062608550359101589768850199279808293429974883595116625171244026981373096895845433440814610079751310909743968385786772830071421924542225058227705818079378628556614527137414480764781714616979061836191598424385769351306904998488606048639117122623678936525088534864532595881681337168595654983934991971823438555728494221380497579635640369332071254188982365428006993518376357099360823818078922172114818480742491849627139361666796701222442044805938858532167978119111020931889890893442938539786185583814475742936815869020843858559929967922449362129857676106428742721560302886840751224114925407000224702208900878331079154513729303392760831044066190027310499995232931318604762903496472179341257244822823047562218286085000787789169086233402834760050494289313764490756261584736990305934709192933400650608907515952388004068148869683025929330618510917887449673640455959903419075420853873333191701300769173119184883694754749987693039449994432664043610971991992029848604234393718583558283155155388686902639405240043544389232648896387848178368285344196391132794527235134915070915689895923804435552859167595027729739309354048289008955199068086667260366380463032029806393347861502340911527591379457182772017564874565436607975190916068265184793622160661543043533312036377453334016955167770883666375697131703680792440813499766576942962862802624339099030926070091979144151269968657892235604661449576246855523715645810654856771091434733727922591562383650903211607952904302293811502469117848538737979658957512966493637262744339180065412607428747154136362167091704794018716746769789134839226129343651608551663925061158308012720507564560749847094408606778781553184482080248042408374346933431322681185872665738418134898164268114354533041325715406137492305960385957568306820708591329941033874397984842064027242405504787998295772683981843024859139299031949012813634559496043105878284376685107372931793034370995609370848776499627179124147879829339835149287520959991947261128998003039432070086430321880807055619397540455605983829180024848806218007106383051301906912539196704796501480354677252572370820992713403094885204083038531874381464639327946178545957415396476179587759315297115567709568293019340305839830456851066412668656144542901685150403067418801976173709114524731159591900105918151671228077977988531518502979787523051852618192649870494693876387456553739662287832568957729131122502283996481671848397944135736063338798019678741869549526836417343737334619663035309373534557301985444027138709706229199335805200513466282557676161294714417673904185250009585998614326114213609741179246846177913178570936642754982198893722373909375656362795075108496831403632712722312583878051924897239095547598271195851743508564779329958804818887513910765753419573535899368771929938005555193041509861247706697745854168877669098235301172822738933663394162465809133272262408679536908588571772161235556965118536976516258973781602193816033147407597754743468748998755357780528559477944940205020957397242984492979011680011141328680750363618021869602933719593444561594920400930011041189144172757800463035598488258157377357779282622256061294901867636538729619773966797121518535999704836155536174292285398346490043848348953588616504430856073293698320640563805945688460359977516344023249991411604588749937221903315931647279703574844488891402418366959139162363214881801399770713381476707053148292470900572165745167868420022521385904576055742116418466315261535601387268287853343606341309979624891081112753213224786655360198422131060375033193200046379359102313788001046230608096801218328270017245351701002422564372209751578141425625326272929068594475647047125962906263729691331064821350045970005547703767331820227251303566134270956894497900520514442600460833756924508530801712934187640781566137199612406492953128611258645386561025355301105041922666918846111916102959180960900812066140936770685496330613363061694195011297817001340949886714347491455944836449683454666982510474294653683140210569604113333045040073232035344010301057467998187274029508933860734333104210993286036615170853090032387609916037841974573836449607614991940197709844027350546351659768022955249001438212506849894310117674508302589501392098972496681480984191149181389655674364658052390643576778588876468101357178919654387586184132128654205385857982955556559201338870275133687353272849677271322869055293779001173758439372238916966918821362205062111375694659536756180746681663032704369188044383117224610481069739030782567826882543196213879726321340222569987965091998939903421460446323119391423588409805578459271086641876825929865288777705193387570477955040792471383967862871806213780104306521983638906850247611050993965564892121412107195790821526575357702455792279430804012670469977736280108237217172996193184690446993922758634108064090885174809898948561928660096691707674152948205897288834484677722957361969471419235073946001012083118762955012121452182973960348016739137908675961092597625936255438039802256552530769751157566393739169218458032075584301632404415988919121300678783073003897530664916170222522530691249009286067247940049125972463602284877998803241623588655067835267887483806741424729131510841128551637628183817387726409321577411823653823908934739571040840284996957381331383925115365070973721473282820715128650354178235724585221565831690047676592393996782930225965354373105694386735414202022509670437776495029950202698505973971451452198813740604627148336596542827457454466139675522321530489451948359511831513729358928112879604173886261894775955957807754409909442593134807412865465401139650149830946798501758553360468296367059068364448295219900495728151817226445688061247231794079661421098385692665542419176052401028434502137940526343281257572590275731117802740285409023531796126229642192960680635650171379921759988100513467621111991057251150621280911867910216988757515690077734988410966058217253914246034004032851696082146929770767744377029225702449954944252702735128737859237642990124032392515681067030219988885127307768969272384418466381175147470535185363647436947896857369036969650210774351848363433727595940381446278022114474553784578898205748222904979893842931568761837524924111988129997538627560876475911053027032147966559810726198804633638812752368323760767134992643812649019253879060854375884224711389042048606950329434678227482457114457223668619190084103769852070970829382903851282298593757447998026721485310430435114137211997517172744301800350351157960319430808718633945280611730282144702699340580347447446007476794213097146285866670743576418561749307606252095074812526823835912900543104900957529199996135785088115385126903694498567071782975701284064427545482337418183629003001293183656235416556594499468086417795566573355801168485056882296953788505246875548234010211597590849233971209063065596316207812247780641647416541112086694591109353436006001331080051058511503831551199352995113673593474943244002400734223588818496802712070494643722435937187929051280911492166667796028259789369415921114271704125226095398271407121764057533252391442003768327908316298507975297247558817713844803924642946156520957694579072036402596713075844805906987392052553250467519650350068657673805830180519063106317625055561825294295368242828778090968964752577565494730417360343509677927824824698557416552718140751871493129062414017902574564534571282612665457566927646447551455776020481048459712924349083674773719549003042422477690830267475851060586539116155228399624818164413382986931593971744916940499021476282804161881210934095521501575468489790227689038056996705950401447497113821670095825212959425887726673558010779245378124569651449619024617612877941009695762524148523442946057662150959962187801990974903310443923180568239581266279332234662692667887166760719621308733324517775299217389145216624786230440898061603896897857575208828296856132944169547040333276941081197082097562142334848144704680465965145124912518136341136527422782339599058908766766157721939609324342659724134322219184936461837301506949461777154401916625814151040403754880452486269837772958844813076087789123223178573602144854115494193257934054483653834933761895489505013856349879085570957970822330072672453571753143516555288772691009985255563704820274348014729172871337016339735337057024195743100791661628632250052254634859723293672829781527038076373380065726642648251844026638789025950179639985169031324549991049561509698307571660323351532062490994950716318056021834346007672438938125195567891935870371897465477515761614513085186060867405325057731050191408396049499583656079174272713482741667551369113417284287402035996965048639161144287328836418615101164571989216924878271504581063304018437723754894017539778170856631219227571143957220928417336523056262012684480023181330435321413316519215879661895307626415976945958050500420573749029050909513586327631880675577860678221272954585938092588266825873610837235091800089156371574417312662666326815559703412864843404193518497640236614729736172295255444169504008847054562706304757027522764477454471472234778207844649100267412854065513332620362575217787263290357235348940706442427187571711415483555084365033054345993606178721210702661542616221538650378019347797646682598623511469406787191303647304392070750768899710446809933360325140379612486001771612581567993259318388269001223644742455281561267983207658747539006788217517971055376010921988337469332744162401561532000129431131630867424605505180829571037100862727191191601389608761187622236867709840413822110980887053851740087880950624784244348100843698894213832266641301686002407166033544920581720850179376703115481122638700440568882159164386415778761933306612715533026162362330397602918657493038188289036541810464362918909140171053339113169914710075726087648020325193301945056213575425571417192198347409272627441970099045142860866647879036386059060914639884777748171790100559990602966625753800141540790496544530199232176780794187312923115025750018303619593011069671827172319506655514406016894422867422993971634958224925493366452880080651448496938907949290327954464570015409091727261113349441937999422577628432513580901120982603671423023811066094687420781418541181915186604613323142333083282861193722385012487151020080318400351328773396874186169310513049735006086582538659637330864893590105121459511989702326029660123210192564792654581714293477193828619344384237059430560371778224232998049920392166579603868695099498311723098198707944266978601962588417405111790259108452649594464827222047266459328189754773507475060888212054672806949108103291186051988139806424684517360170760006598624717011435705198098983329799643734925396428322526399587218276473229325973951508890962971726404527927611950772664662875208532213124856587431020822507107113854206176646010114318759334925534786725148528849447131375784669515180267856639962657051620703188131225483396357192894111975694063578917878966588815955338439124215362082122813045952432117729477076621702573970748841033332169435773947467203004329883847703947918762651378559192001828009120740260007753976120027538159285934881184703840150168642208045522289788732211395497355914509985465347628325346695396435844284985924375581976313645529721170060603338273266626817305759447227551347979728743563625928221846816665898817725657745777136810689496432893318955117701223423631204553465708000032574794553918649758372676021697229139408416913175235521742544387755366470870685115890590882690929929300512702905240325523526252635687901920346824967615259692650586798161749012832047427571923029497361061402094172978478407497616891528209020795277126303052032010756949214283939960301265726450239893674522717740991026524808686409749618888494423553641104358500581820210733588698015716291254640524585183393790339898655448497911372344438602684910131548367470255014488428742868840648695250714340065805609811637785689885384190572720318254489426547145448052588041649233747168841804430110566775125704077661833360440918124490207316967969068728012276107219626968025576528098190027597797841702099391617800875348679187261710467959417202935343207040500838440670995477270145858737314604819356938901339920984223965627416251584087524293657027851909556786017217765391410183478093051290488517192010257714695905215471310530567702539173395608684324921123257831420991664536258352671106289875176639735055433647323675989090469542776773102713184947747159905522975488502340785806098538975781955593102429219651043645553393812637336546361424289273970886826135535849469634087291533744473478154025949113185469476406041844397188359904274488270310944579236473677126227494988421997072108621704665652379328561156107330824995563025417500725998666158053727371901985360972521423449121293294701868231515360910463802864494611690748444726509201940197391436745028798652119338585885118505453435222052399588201441127506761696682768654283828913067351295410828074397688837412613114429197913240625059982917065837546485085028457380337184690688733925663560861339746344036698088829915397645343433120033674837351406264746253290171059907392954624376783008212702486735521492371674691738622029763913889044999271710643172955543218454713466165013245132709485049894215025390282672708769196374694189710012407012765213208501153938427177099540444569564704777700167717709594170478526677765590002477695106498556483316694512583090704427748692003502514036334526572287080313330783843266490830252849868716387303555080159797068930010985037884370440794401389139289681939342363195945897595138061509297353944957348341869175841807263662290667542012951123781118900513138198934118331208071404726403908147147284782479553794339400809226673102369453411084084966598775990865028851082305688058298106667887381393578822297846524526734325417014740010333431451644163491752073070174457552139604107559865239322146202897033695667431270307991859484067372138727688506077640332832925877938868034883342446017996033947170731987097510466686205442604275261758633837186028302496783080216342497062494969967149216233941399660011413848863122315751356567092748880505901727732922903075061541531161572887034463893568752343494061427650075023936920077909639273423658759384948580422762281974511717431486249996867745889509158043124962828051754231591792459351201958265381923421939507337235095254510962837045658727860647274974035360684492057782399615345558478589570890805314145682642757335142839593864224239744260462013304243486302015249780835739334155092209056345755992922020090141063336110897842997178232054440676592871151462251910158237757179900289282121548872291907886794753202942230780516414236382177416800028991811826263742212109221852558914520788869711129942115112170481320914243034849486512486574712000624145148230068880100308149726956190709098235041458429537875683535106897106031143232076910657826617094672137797068882989753335680312453291104528888969439954264336715979459610056195247235824313440319391912159467939784423494239668682098624217396411931235149282390879256334081990166272678398426328495656754455348107746289215569219504548726690279350432479409258709811600068676235738099860783536079209967514204651611521985768586675954528942471659723663286342644773365532387388080949510404327428200433788674059160669837505594203919608300111202651435758780067837395019716296041310175452188857641115388729598329840742001063868078430552702944075119487992644586518489601258864204356584164724553418698601067906204488215879352748538305771340216871493603356733252533329021280103976438911693147014865617659093602522159018570785473764274584632090258405965034148805027565020237740486416737140310578349669364411827129943773199713844489419139070796397532516956014379514938179298098985797915753754151035229165442492227628546988870649859371762589311884200974667710795135612048667903609938676898925039704365332111784091208672184854547480689129151242907190360131917414380610022780331633899570697527529528018118672466587636247763011091974101181761633382520568928392289464539235930922795852000920732899361790077861167469445412535563123570055300420997406379461528493945297066145098414803045359011573177198605122356487416196450021014514720621948000057523138555411802513169258147836193420747347631120192998597075627719598068390977354282125864733615711874466833562951828420412266036097166712092435083417666849009962229638678147550620500388787335638897746643915775421208541982621964590879481930337782883136854060822274335812780294331964359850123723677191349237830163667342745044951203787250429473687152040427045389759438177102127437524989105998261502123129324131793487053822506311882225082777212475054785710984743050605414010505492318941820842703863080934512515436612643026255140704288275690410970232446404606245860139924760197198866434404361412458954480008970500799667533071245966531069378447479716065090559154567430690754642582248947906023962168701023652395588029135622283445044703453359288075834677188655739437237033992244590832431640817803449678348675751176419066994943836001869828199359687820372715403633929491814594201756996353549536322968409286007874434785140788679138253463712437508997315554996587192376164456320722029254528255487005792818259345611531787787294441099104595792009711279732211786541011636698054539548501305231556849709420019688381409349378183523024844682651474468621946207326453060375148737244163749137171514696560602039941317908315799594324276017205550496257057703886645888834011880482123939722301979730525872531263654874176150583629055409626044998398434587314258908273559702762944042284232301921269782918879310796659566173104154312506503770175377757110799866352097748207886404140114553116820230155412400117881963009879890309850273345141434568462867404639138467847165616098703912858827508403288389261249961941758619233652615469037995227719224975830729541122960611644919788775173343565259496826954623757619042318417149394748526033785218529084687457356476498885952271827311572718954510869336329846140217645513524403009205776054621301479494917984068639860824851122327421144230720889410002816228418612165289269841793848936962712408792240550559182964468799536369136138214111962991984819575673850259088125977501020515561125466887725013110528394201567047151398111053273110012681168884510782494558354649523975913128435186984380490192053808384471284299307897935430941809536272220175911395526563170390614739663349114442088381127494654967381229784752105721787785437939538774247012447506768265996937528335014757990402535393478223612251551688055403008603997761061907920734855815348237817990645048064864964000692339448795268251271109435371529989357851260580671411126259357877633653173420035287588115513115585046713092466037895166474224865463153769295503904060110421713484603973125201112928440927334364428753804205538107537459406040176531936866255114288246337116702183469893673300088038990192450805817683178672903193698725181427740011996379760424280737244432624160536104830402051542271911814512466959655392445510809483014993168104397084357945567861756142067796168177444529106682765396961425377344945857685610315615960618647147855280714896837000470111876425216143452057467511558252047493613758937190223002643630974729001738848429906627848526434069516465339339897689824652835870485502535560863323267446615422593924433522030557606530709872048169389447733499269459203555527677106429200126207121576756625401567401011959559480131154604250334726572163861865945140551765675557338526668995261091417312787281373616418617829950275974024668746924109664848607832273380300694258136142319655662217744255037100870122704917746760070392696926861589242337841108160419524340891111584359936257012382495696704089093117838514036355218964725148869352721932818191952042620314946338660707168955977683361034826424001206780654519789204710973406185492367662953797785330335693746243412684761340092964983639523862505327797853626531865840625504763523700034996687423175689053100201537447818143561498383633813647062518990538555182698915657801987448249284583803767674870955844367236003513752758975380780327326043248859059974835889954480281930260094195328679930682891402233469031448351768647719018006581971115532654903711094568253357228090456984230676897542083646400828048932709282048182032830116407660997100267944435227217627203390719831883536836669819638071930545361333514085734482640442326326774647504933683865876775188967169312335025237745600821089871622602629729283757213826540468937199860631067641484995066053835694628714563634549332277036223355288996020837188884500326019723746665363749069541331994576510213691480211013684323430914525993776550967021638139521720017373026196000510189704523538273941702260818225724168518219004134556257981056285850914528016070689130621629976935650662846334873427151691615093680149399247900199672340989104248494541954227540688365994385451457286884926571774227969320258553317361652649049296172252933206256117487701084941317054266333297187294630957485315161048328211857399913290787595316676522701667432731350088734822606133480622935336852692779097342559188361174909935007289935664773521550731815905013199212947714653753996695852314033983625817096194556653558466929538898883506361381507197898728161495801646288595240043394002490130721999465599502262653286714538548169547277569107453776783863695561728136885454078392833290110912847991450800617933349243354418906067890624349153644287964442897066546350091471361964767783181047212190859766641426241267146912522221711454240806075144575606732913138425024963016416747698854207137252103076814040508306221816939654191743326163487172953435194616379509238051566252405147527273102524036410408806478166930173443928190492759020106953906952525714230888381902806677938105669304697753828816192345374878308679374394823311615746663550308986733055029028282220744719690165765816993028047499421990266191199396661748409587124773028741916250015443307872953432227442489627719149842926595649660068581389986976578846250646675614124073226477294019355537661750307043768743391589425918276676710402801836762507616992234915040916656868312026808185954858403098981301348852023509130121118342141150043156076424684637485712982081284499817204444008187087774250823727488974063305022155772637634948157115699972264285946816143969413069252630943650602567720899363771757858614134587709965081203332851979505345288308236858847232318560127139837020803907986938338499229505604602172227147118588625650281069653504282417728065581920808398248297864235049040159631996736147999430624849467761629322234175780612959674810846163347593361590018382595989930523338219882691951872758939243774800879965923754105566300250899766211530452334634544767101250226543230844763175599546774073968488675032216773436825627129956902071781755695565556641949870215003942472980466434403720747773465016234885186547870025394703490097586488446483856853755490458557210110569124587580432366271062488075166301734943981006312576294474105674510952902826770192865683328193169942003378036527623861800811988482886092500704998736695589880094922272768730749566635889272203158291819890070445204691711440378109011488902642948042262517364984349519837109616334621847537298548407960400296699681760991345907234469384990317730024713915764945525110696468397167386965763501339886732200196346361841481867888718713419252608005015090665835524768749694420801048803173549330964021353603304510631298365510196847152564100315931354554927587876616815892283273974175775507556867560479668582788361994050050610161410891598838880551877693630968753539763130551227376105383183080245515150414244426542484076625244679981941849902137181192394692843793685133212648199320930424066758450640687318907932465718108600585328907121965860371089460184550182499604120239360769740897577483458511155824714620422703326933999817355927622266708268768403946399992393113726262110998201274606387055812718877391536833626997890723688412182416526619506143430222500344506965090047336175438489244455330239767091701942293535897899275880988780296600934230826498810907416839131264047600964401823914304988730432720754442799016098857321116278726441417226395937829851613471089531224003778914320667903617832974588343774608380314272576540202522758910682754130547517825049138434867043882575339065686916978831467677939736478016243772834443105287687886300323066065137118012871719887617886873725565378400591676553210813503495543266305050201560987749907660178591914826903537919012847148918341495842268920230340692578478246975289529497962417569855452183112030635491511391409784601059024341999273124521428689190688710962377277602733043092514980885155721343108640900935440089956182113465447900891608198712221351465590932181990420825032944707604126262358758796659645759585839461674618658716311997045018342496582722812641592116590249551973284921681570934621277890675993705385068521422399435979913230956465719784625109730115838416785848491226137967078983560273128265311661059570727644218451061784010105139863276439031719092607765961617022720520080866812784938210923009997326528492571574491180661634173568868488703605551325132232614341746329066181485271512474382728480959089151498673981811780347417893195837474459852165801406250946642978246148930093650808291524313457276153334943104722170739772517299708373344829699612889691115658895562919367286619694467688004185592392138597771782446254721893245376154413483409786546573303369706702217203530560367778281971449234227636229692255078278985527373979796417809368475395425411727650511396914725717174477897403821795995262338699581049935302533859471491774780568925019701394681579517925303284863547335272765204795374417187855951812215224541723178317846247042415431324240976211668860321243623877738180013707797495816851752986173402323999956807291954748579418438964185307804212213858386321313807392514031072896385969705244934363185235130785020470954290484746411521907540914982743660979734404395673241611954065789314527975346567290529119715491743907391299816297761034763910321494040999829685471024438940954173836454707249557914941468298336042466520986928816591056377937277427747085707073389264620675919240634533374785409418795665306304632829312629162297530208482510165021584830252884098027314938375325937661493331936559243685368166033651031670656846932290935744146867849269166631961295729518033995030289771602009375837757091337328600313474316505956617887808173494031904388044213435195257961804052057788621332328133210021553571806154123122685973003850157614619256763655539536390913462371059270837140917966741595620647462413974124649147368073472004650016184251616073972544290366106140878464022332194738976932296590566240663391136372800954951870298628279081971206581856868872592094633248252321969865512002555642645325554109842771414109439065711662250782217745493318076140100446721102446088220025551317680401293481165724847320095309485026323464787467947770476094885348970613930573165309549430297741778253829894422401297793623271308606200910672370635975512612750273824524229445252978237218201227884225641915999762501079662807607386085497504462733718141782579560868066384981083661393134643377659723364969854331064201354229196633480664646346863814010734251972070329001423213127743610701307367202201968811270106400720988989314159637989113094233715315003227713696851830396693874802130099869956170170709532861770347531508902288907509592328256057726651974732246704800067091530878402017210176014984574913963780961468213545562486307762336413189026383633829487791544296186951048126707284882231158942403918918658559277160992984914325854242646703510394646364487130838402783762843317020022960362288770777413323516065970953601115320074437257229185466826042142638085011948897122575051747788800853821496143281066926965623607787799859613493676635478365914942882085209624670452284191919561842968611829504902485899634484056557799752364310968291592452827821474912711796052086573421769216156175129575078719994650976274685174832513830292651950895120099149533690714846833623185483339260908697210040868200499759502342032158462127181246834605871383983999134279796726254319319502759519782786201894485622815892218963538272070359417666607460930581820265555535310488342266714415579150740810098078153982781369354934685567117393447143285356090927800074819931609994723500816570676089704244532528423546089309029278378166992211023888112857776598870887132693575619920594894622125722163778848365776182675878182829177406091344300747327523241222402591751129801609212336624607842486976606051834000909895086796483986832140334722744921875397072094866496846520661492503209577694997557555202399038872763208675496781560447058530710673245352563539494526213573972163381945868396135207302575764291577864668074184780640199176001468884373318675202364160599116107239328886696245191962465151331270203813496876412724264786091533941407731205832170274821502123719179155565199107765749100220494391565522185735993525424988616690553021693508071410807975817545306882075552714868030284906932100385469003176664883547366313884190250753275547683206031062028240005837100409153571850013234397784425823103800368117091975036627631775381162984840304476561489873389370382792278748858552405989197452071686240668330031735012654745678555402907852884301032452234050927666584245189248584289604755246129841855994845699365168100134759078411166219007768089144575869284840944896308351495934041770487180970573300873702088367444802706771123096443011112703374586104726958030707572383212745558109247961737933367973762559494815677494067977613705968375536627856893630683607233286169522151015956202269410162803021850944206013828644563803356901318773723319746163512412541541993548453713998569695088379650019383683452303158175348565182162232995763312431079432362553796860168160809162138039630204465438578995191833037052547580527565441721850432532039737162118439234358240253460990622739149083843655743225686562090754044208154031237303791637735843275142247854591567780183526498727436396462369221018147014573690669277895025408400625163282507319004052718347904131166974529575135870861014357851715398966398674553935929769435358587931653193995731067175092249698717802656208380884080606169027148024416375912666179479690043953390707588250663524381602716256771373296552456838074017011328312658604712043442987584414412768412930481682716872580871532474678262584845353971596693838027008477214147711400493405953134995558689074252414574363594418436721039742221649663574988307224096817905232111851998629776315761593465760898241885702667642234559058200752608369478568661683068817006641645357258159813450446295014393116729745426079979197474964974187809219407652800212361500949795178399411971682578739971938383582782567865093705379492179455455830390984385215037431084037653798865770138148208184814375364613296763836876255379451751269920396977497242002604026712028890962680750877809828254712242755427956237772135406607807540139458453313980773229769593646788197506696062209436627698108004838115905689056923429103949138786991583732734329540229016503617245462855960807701149634204951010056639100301088653965013377548914429323492656504086358344457155333805476790360062080601485336028820515709724667266337238904958936972450361241111365063946666974438524523080607030411069493061410551316450018876860504728524824389812177842151754813746201204837858671648395068171563564583866117716356041722394327818232192696026028795575878021904975744235748351453107296210849172691000787346644934699823283581367406695742230451505821090019205058502702829117306701810836496929973457577839023199233861072817179837133110735262894246592135628964315431066544639242921598319420898977701661504197320740781109185137400462462990774760159061208828091373031618847331966006977574418853029115342970479207103667718369110162904495149249377640516400116149988354321005072286142022446265839907849416887310385868316237896345604786659174385638613414109274241967810314991399893454193410957753851085716016921768965982085915944087208626179428632849464229884061764708712067273465236863866923056889278899179666924796014538730843335858973270422601740794465367107647181927776507449686426993250206497324406006058321649070769960282912458813605184671092132572457506994027143942447019675355369216579436991097425238664658570297438913304305537302210811945617471721548411157303604090671452575072631865197771488149283982333235562891510520973097784489350432070586715353110608331847295006369768962063069192488860243530957721890831142935897618508328983649829391913169984513171263754193625660407560914023020792516729212801962077330757462146463882585045877924983212648946704021359888469424066971904044408820829858384593048782737651095219591328236501132508702347936655906360459985208125654185632970856940179441815391669523428632513723645780048710222415443588065456779697789475452332086356849796329055907151361683517046269018331215043969875768871936632425050980923431582972896598603472868416836351243245813037958410417071595493880819907079564409623033504688582117132979654163325304166127572707415472730042059232087905325606867524495614422600580919611546891235358565460973322518670897402573082180463383986812011120806074059442985690914732619962890930842250899545843782015826847866817112749099229364828516391090676468070534037469728380182034598803793214065183622371970621818038854512291923259143171139797712802462030122767240884485919976469200563485545384432072452403001497239685173715119340279704439985141515331232529509415433088955833335811050366583844494523277928309262781799052829261825881548604420067935334908929246547887052234435070183019199603689378336962263022695543163318925099993572654314447726534253295261302903993174139144883415589247426203364485650300200386454074561473361913822743134620547987850454175762570643153534947966392203070206291279409560705121107695006315742098936878719965940969005087450334867179036076244364565064693334359235677622541476843750640043888621376679821173036279447625358670667085657258085529125044912767728418620682321120671214480490355447206906124443806353922280207288435557374700928352372102594141286409910354915940251567012190285997699474925724865287715402091465471107666305830896729710816204854112068791580420327477280495638272533475483483488620914098704046134712394856075018499623013917133968993127582794346666432646120263932734881198474460881183415412466600501666068907762024638365612858361065728659701901297068768559966379786148795501342940033501607823472972512963157350933463177487897637164265517553399908216799860180882558918705040123978588765875763613267931592422016113469800772794952366242128889621866992199947086621481487113780864892246989855896311434244660916037799704252412681539563041514833310152454862175284975502527457902369679628156368739826513154633119510187646897804394027873476372667470430347974127817443714721566156801643495555360655075550844133866277569410055792034633097249168551325312625889345620909840990640632507508544059683827670791619566885954110405746798808378637273219564337052679434442858828600164203181229722691229031688284935622394501529492268035145462834110548290413085255506998687409663403706094457005756577564171768458916049832909270978624587798810949648670304544984404549091583907066355115452690399385902442769398223616339273024991755417553345171444120166677602578315462645642140276628507919850306944699741434627980702937248525949122625939172129459780645464402962648545905431461180685421140794207441647445571802200916690935271517515306825020658802875546622234057665176324108437744532721072080347635175130886584614170798201316631010199211550228275072849187649399235022987974449720059633873896545330319025847208659955345787583045576333459654576301312974535255573347349204647404123409715683017832584442938224673365734731463136975633389784398175753874550573810840412475835771536979795687594431709958237571832723248042987684566612133268492881718082495751313313068992659464789394754370970561558001831240420851403842810845102322271195888471219566145926940605322546302453919443044121919585478585736964112524922012818887413789696460164510065139863203168608076391571329185810731066460541333596916491601081777209560739036546394929361516804162493953332784611188876324102386567678754242976899196626442782853624389225646010956963929723744426932061083416048563708752424698361263602519203910396613163439299540224325680269893436372207737705514287550347980649328331051320265486319308121270319082598770782654423953906882756831595961635534578331540738457523878923172998866829419298830208305801486205864081862081180262475582336170391712439585062817984193199017697313752995599207290248709271294097489887855053172282250251480797128944843455982883558699858539305672486376645238698091999041330644655495651758363786233539192322546665102800840638241919583801764198293544990657462678866904030175232579817640716655540697858060289600708971249326619398880964816853921521683938166685119169591524832291895016340910395873070198584673458041069315280727359093350475427381167453277141101482029223055913942614567037176337300543172153977623237502460075107078207524662966578673318760818688847033237970313496458905685332342068373587004830526528873870109006010201745208948005832040472323534813580490108524748762666890352937844847955412314348968244281367544559038578193983613187819162581444788766316230382738377321216636117811209382406733818003379738483896382905236502547307752751043557260583721588796008587299057714387739850844253739287815804599452409895874046333415254293546326554497624478390176414080524188069068658833078154072478127225435003341169084688578330003313470826008436971869977459360546701669078441603526202983442127285151530193114648060224440598454882332157595303934002121075517876208738187726631573219406171589260507878079164815355794015722248802631320930728570364810373774698904814540614931772678985389565675867613000084846541592839184342817343232904505456565630803920446239296174412660157107092431838494246089000157846056145904811288367221984887158717682752223576893853446840597914671068673320575210483350636223852699734684043074658584308463481728361306095116636404035747036162985966777897862490504559468338876360943296456186958580884390424481649689251704372738040480669654324049308847925306713172023153399389116327426987780198532021366922564321540173617773424850143400663957259040900155884619783313621934397402281873272424737123874024091797664304391572037852819232832031188916661431186893004912304438713978787390450969576852599160702341426846378461379531653626784171219058158753683349887069402296328256288638216878915929447651926052284092095727810169739720197622218911927886524844471496890827536482691357082416934608059569106544208934670179798264478400020764202368163348684234392021893963085297902692780323351336413138233509862552095322074156633139588783510464309551356130437523167204425680726429188724277816958783129960741687200960067715229823484798987795241684435013560888056234075227782142716367260533220791959216093344001548870301383467346331847956688774186409532848535233245913919097905758215609564015433263805094445184176535486617476353140730454820428492969491316033684688832138156762593347457517670157928482911790849932391569750910737347550970531818763159154685530422208079731984436957192554278958623590834474362558536835751775503364542128815106451400140092025589988713031644196748709654648645283140132169266108620500353011859545050976371566914188753825924832894320433923085538539432265106645311605622409035427234863248057033551952228743050514279374286791508049614776149620597571962496407831552347248698505575511922530339992425220655565462173847951546370258649997065169254225566497297075348805649302673146678544176307127138218241915024915986704774233762849241843173048058005469310662297958023346317845426463162007793689704568291416228574220371630557527744276982568936148877670120250492376666033772055677276588400402314911280793338397757870121320113015441962031571115848084980204174308507079780643160699264508699917316320238945190522414923709684328047136939147665144298321839496169105743303194660964543623736442438179875215946401481582810212185220397770842969882641023722866076596264148413135687606105713175853720436353029548070437544414827546400257354938606821596935536890991178510493275403845211395065546809024827033804170559106491231041421637417494253664888431483535067294191145187862675679150776845391208828958469376290345927804749174228067639062486382515682817432223274605178710632362664201116141117836485138714266024737591968724509750462992168726531417049076047277507541369270596863041865082372528866676203507517626304280570929509031504717374785154617860902065647566105566685637003084932530419772147569582734518625606378795565965581365186664487811218696436591267418025920294796755105179039272663104242508681952863305633210141095449442168250181592816652920460713882983927640458291858315793988951481416892377829919945644593705348410172813917280616650138176694981125828108472756606190864989469086610057952395356760955995919670453052894900234042271210811144847309889641705578114597234568323725169460327536104140976769254496053594866042200726631613611451991884536506804355231084714227120148071714184373226663341142173695524675449418394225521658622154907332065721634505098840870360814166886692104101152077598885902456486288625641701790189908084085533369437677135599613426115109746818965000126700953056967676322330883357660860370251281264726107953722373338178158125371440201105134197848650413535192534740689052876618267486444556645055757980648200570497255852254537030294520877275887043303713704412698039845553621508664933072414558699879503634429189132435954098286547754026666007838280501056076464624577429732096770056199214785498982041161024858504214435761750188179394414137716789736603495027320425267975482423695735509239675118242148639501353671714634352440467984851756167353225432694479258011706114098528777609015793759955697531454885957872913876926157894841241040261889420430806879791370395098594325528113872642336321229913943112503343509456568732863416972315655551707765814631938230505249626363641360287178344036549528146229760429028017356591586739656815338230646756826012367696825854464674843549974814805666141879044700305465493768447490113898946760869423487690400903447238642038225664641375569134784331456016960510894672820036019990129868611510376673899801033387845690970515895234739877132956144905216264732639062826977187612694819563403771559605448171082845413446227137828543426838233945553262446494319003371820288350636716646709204728709855592770030574371700109065335605694401192364543674467528842545989381794341227327138155069972342460545211169746987620225651522294120399789400004012782540578369656966087787227899391933119438141887883293544511514199268960989462564564546723504532861162700671828399539127635313048380849162234928528045737517479708882934718497581633259213033390100438826717197731441816737091301428505771866362123678071471801210418357716421702176456751152234829399139377944289907983387865251839481080098401299004165942606405852009985240011147522391213363003520301009568436668560454107915170356504744016212815026770153849904119038729861656356998653369788138567022001391404500147309873186302041488123969262578038539222366321075067842586021006334298490638566138094986206726729878693201164136428016937195024015606030645514373307991361336013719300968320304984383825616966835059438785914806634728939092586355274136905135611886925026979915686494555140625111131575738119459288272203106455449646757482018117164755726710099194638824219684220450363944783985515286282528856968323923730318690985727676399175844091926090059084897364253519978354368977561512423187567475545556939520021850865277659023283236105561915525166510034676925811999561226254739671519822753069121671433969755763581338962602980407542013425053064421929509936798361073325839710502904771201095748159837029220552057285214554321047907187710778305185498246744071339958823739818730946817056949504404204258670224274855416435827602635604695797840289930270064976908197539018757024045443423526548713981821142165649209619167755176091080087698186449374454047737240631729321478124293722855338545530936079221811357276336619356854141674173699021491104865011152092383739075173534550733697231028987107627498662092135979307636776513274290342716072384141755830178952695807773196200469600372350980532446536760679388368622165682344339064840364893149398553539920306202791033879528119892831495118821094620084373840979564670435306176596290284962062157450726403232522648895915313691590195817201772928337940886694428655283261727831145759925884305778881292949688778860489278935478841908661047288832690769130160207285477174326192832380328428761854071201223346339136572368511824957658324788737542693454167762599712470051203154914623933395155570886047106816606223298003259655015323075895994827861103397251490260432376648814239968471535891426137938148884794697199601133317353267717395640524393939196203817899269298698252226990664689707392416727594494782891232245590324427539801825794694926252546365805941298302490812611406970004751477235203794698366827323534199711566698891330015609348155151246030533988468855976454785125610257316216479907919962767911145151020049944285884511736599736565283393959063852761515495305917769126329446594300128685131367159006556741348422706391594973512950742396090689760846711027407756957449071566787230285548767796984872334045381673920211817934888406283176360176325336077517923509224252405546146343606695812192448089289299826450948307049496763788593583715759856141753232755654022771067753775498200816636614522587423985229895486137016401013050124151163587059542342132628673665851314268895298983559061937826592118786632983444661220247107732960412979232776306402079428837810679722627886310913357473234047683056705324977179753439980560945604657277527172240602604031600823764068163489397829555432484572065886494707686254078252451248057604888511850514610860986848871811407287436236153967413741696724784159741154403462064439135436160337794547824788981164750598513848322947134743947658115822083887081794454008763117302239998084095305279620425185711395055564758090665072238907196420167679622167555176062790016084100168035241930320828800159312589335326904805299458342087749039733704936070671580322756309535738501219149766533459045331215094299781632782260347895963558136774587270511540407410857770096103063530776346919151201525642524585319532115519323587647681361193759854737465759104464441738901739567775041583022915305375853993851617531102460594033603130865885562352280420170362103060804378546310258493102721316797078424108540304928404280284516280737497134813085563164315292280171757102162423744703051632066396620507607127375385250757786528880208575486293505131595126704139791848744764760663534850891132664507660307908956706750697299197283185224351838856556148346138392220611155220432872555942784496211480659064590195056314681343410170879183898875447541045050817285700076205141865311483315812456604237302387398320486852362131451910260768088371410132047821631188635655408359358279592676680724341267080568569889503820637552414605537427443297698409183626522562230303025384325774003758235343419403249344690689172986098353345006535001405047948862415022459737140823626740957050970160388864773682767917101757913207143262427682018878884924475577054027408736980303916803120237556011365051323147159224889215130183518785442776191656770221481644795040225218074746952970893600655135897237357753496721971662272919220022717649931176162275512159225540242539512600039934089442495362041231264390121615425139358816656623689775843022146663879059418244106325014025647993369115982159893594792629445160024611204197846354849683564592104514057654929369435265744893615417606199820925871642294662864008193320375333263877750668501481662425747819799737609713973960207213028405766239658657742502666879379105536399933268006746265207826745537283195919956565761889468395745150660330491452310331597935943579913022560926542051374311281952456677465925767756246701674106246818918685068358960283657187110253613008160753953193507400756058660221004527341092226390044801815775024906312753921750157087089109757095705801155555411758710400046944018200360593634508228170223647545951565369782301185363876284746530199309001298505105512603059394207709227124992613270432115071246461329746444216931452655301701873636624741535533162769778390099431834432023011688114141460972707527865043817495881973416592010834031597912867984570211314731129370875171103756866846739931786566402473464056887718082757356575620028808734314557610352596745926115804452501280684297003249729664463745387646623787481774975017680638174726943192771565094817030913488129299106469031181310417352473459812480463530496580527277095901267724218702598277593466167128524064981781500238108366374951759562559458715541264017152908422710175929288364290725014240580051888543841293685715593766512494025885738009702614634094119197681117277246886451250177510161314941155491717683843701524053773509325229190760344263886712718375673540720871667076199927469112177701918608439071871784289378808664134678003150414355930097010103261079751959378057386577924571452459943707036994282243769807760896232302114145759272662453283587352125195821959132945034022155320662872486579191579917417825678917444032716652364158480792214089707358013583188833096987583683205431370322174519920922340187592371670347775803624770436116756403080652235243774634021095151976248321983971789617497631857381180502988137520485691757741144381718766961752283967941313973156854776965037170696128456349763327324516806979005647798458188935633642923436056340236648244112660117498818204501155239364391726719653921417868558279517501885361719509756908475916851394156876090476655811092823979891060775030765070076222886720933218408754273934804529202410357725461793907546355417611681310435779651846273031220541483426269313646161629016130137172979223136492057262619544189442316818430082529489347382551745172449770259756291175694982758597086618762451025177729943046460440120272521981273904277396765829342154238106782752896161929503773153322392388134248440892728579216484813416006231625123571563226832255760469033084235957336795299599223779136768474456339461946094010243497579409100206783680228955680213192808851148885563911933735662006587847021237563027950265472277695192738161261727976043197139858234461760906151196804051691933334182843285559262739937468137408327244654843447858378713941341804596895223741419057801009492692558626805665459320959238440989888964977933764397655638106740924361076147005889574229966471132237400294737578505891846981382086913916233870061587196127467071809769050637272221113512111611253393365671172128530582003500170559135959123636914956911458070583644403585431029027674576098188096141907042471533953737019538764784551619444184875724029220561613482591117661896739628753407459027290023909519631822738496386795602665245012184958814803053681581147318532074251963369565596033003419420148633234523832482426903493544155270657866111356008985363850271228528671913365254163143775366126633822781696654953612890747462069518119947524554065615889923152101374733635132916273382643600954613718936652017148083916343564637986894315265230168591444819962019992719621725213503245083711804641734895966419510601400345400626158972211927756916643526086296810513240128795983376621300584993265606000267119932970627447139814697950237718624117600858811328891859751062506230598763150404554429806787209146085395149702685129454313188433689483638087668701967417302344227660846540801434001542614896021751225074265755035621504296233024628004260368894077523726157328367460266319670090870700293103764496380819407845184958017084654556331564726270200253414202961522152143126761866017176881302463710912651753369623327974983342751370309940394245300944537337289021609880937219107157852598617080052591055537776317711841475962959437332749389731323302897823669338279872057055088199903171469993869062539445248127743914525138268972836001936283469193140846164296827712499787837091221027399791752599766112581675159717136022535158225396988036220250113202160165269021210264377822674074667947930770016173585420092021655793720645944286281970985015574234849710124536149898478031779160224113855154610024282846139815355312436352028157839875997537623339217828925137333577023877161206034607824413340097230798439870161772317421039997915618981316198691264891754442413063178343013894194283424421967518463181298860511132624181527203007535861278548929271621209991108192503721546782969167868161951417622283091398633640303526348528090395079689002899051995036964201041493455294827301197894893377400349606762970319273226512429789788259750629493786687339693554054196606079060059369513954137989037674003899994211517004630906987922070799160476087040155530107136251668766709335796980348261513936120933522140618750079050692727926139201820326513266585675134253649934889407245588049555429985637645345818958478682201396654488990089091354000220532621845997519652280623425234682813073582615539576354114929074620915583823320513467395058182379398143748726718035902757213206094735421316257091265562157229489767236067296318375802388870527489481913219330488519158866217339334521646619893935448209201926467436914792086896007275430187857553303323317272774398947699762143874451321913419535587269363341514756365451294140530667011866613374857197737534187747945647005751623812614575623078088100728842874327288574777736951078232061080859827217575261621789661035218100506375443103265929825461012030752395063241903379038195424878500550241877993974068892869086387564303167980384160701939387417923717509501327549044319891055900761207372308349658526050347735986433535168461613243407206162719757584694246511705537731241753586565715100150624691436914625521064177422931209254655802149988354109950796743797883401665829214939805401609096370060452759309187972355964213450839058743579300200068919794261262552063992702499047584961405524692757044064902817165275321414766433128899266701567748219341553601266532895501828270247422637214971406894563102306864349374039925107964170395570828010275822976496274412649377243881478448427846418922525715948391911227843614557724523567397753541018303671278182624561205089414626634742166843421129150795719722130614659031121029157930701463371285423839496216337951467737477961594685445301994740147375332141676818850460643399773061256534701568897636961085529930767258193354469808584083218448409066673705324952622362008962820813654875598953015627713139285739712902058247969519856278056529459850127328805337326675340391734001358301917571309378839138797801093855218025669869128088448961209202067142117494346184047464124255127854154872879053415886532401211105542137375559431901778183128028738212504914396515182919954678116794754483229482816923763244031496283113984883626876345040367163257002955482863900240844634267085399455389348633699548519872215774258292807028396449170074650864611442728875212062614393558130841047935382811235046877402384728573951596844913630008713189231161259858081588655807361206399564522581324543980311825280403719644435802027109281446268398222351984916294051341026439136159223512859891074207553493164545809276708865938840194144327356266879338903791756791936875792127446949318586697760118259554224797786707529841629699161030401498254786814599368085182456912322332389783749890935192660845474886537332154443446140086972236779933176187716332128355247623661335706005362393460503646165566807182059514842550338500120604794967508430659559619361025448572832413828931573505591059976682464740787534187473920668019127560111174116156181989764021749164039411681569965785883918482203656311513675956418441982542407462492037843392121034528400195555425107327931018867554014339787654473469475049067376457273135200384736265242180222599596189200272277563477854171599869570746105697576602900576651299696410537665661295777835903353121146496724502493461910266511293949702709287988619017685323153991950643176912307991267763421444728400627143865298273405838986111140584795555350186082344442497081125329864553862523253455829190032748413941907803970140204244353927178036343649657061109669567271334960222385178604824907030565391022574809427852875027420154234263536132855994894838480695562365775295464193486685108391900705304254600995225575984605403223830154355575475304194011555065203924886214103087176128477536968469063490548296664474168857828974119008556942108499705214089417178852261885051459340653880057657622010381436769195222190636314532970020303493820749431332351218218988057834635590747835959799814551489072869955835159630069667147179339556617796101890009636615607376353310644077427530330915861968188587097797515470337494175330347879031517936183006206556530652147045900455957312627006116462178599251371659639086293579094939215056611251127615634733217683478895246686264091928563620582201697117950442214839407626737208685081224902730853223282665186551717334931270618408297810830078473734187248351035379362312000506262164637834652015030623359608230939335302284247345955598540439694462966458874773882721869593352256499207411426747616441354907550453653225378644860521929814876966653344960446079309774122444049704049334242560458135423435391801763961013294531018471959124463179542703893587612294464337776049994863402571878193371962168583110840398243004017497447874084744723316323598747093070056576936901674662692804961527249314093163453964626901690604663715028987958988449910163565441560703914909689221921228398918694855973845222131670997166753204062258609500143689683048036786685934153869723788078972689917184398531789932007027166365014949358426458073502954361882659123749510261607705409950414397171996517559439248927537887890234145280968567099432725979435554243575134302752212719817631844000144565694144979085036950384698080310526106404503533987294118988479380555123252746863793697806106458299160411533323276719251813206776686335879710252909010953445850759558428361470805079149587551827225827647716494019864628289636862183637995475716024038661813696624138864572208047497203241050647222351669990931491515044856662545842557558715422679114785469428946150712325636452361269227489097137550842357634919298162702178955050388962869194472378011502022532480641706788633797376179138533881657520018023274136317844942997641145690949291925468998738350617278428513651672664879571465941140018231216590061496507922631737713002546428495918022374137171891508799620422331652187637891025115464459431001440057931593153190173783205757238618999141804134574541021939178204014355060079474465845152745130973319241732058761167254437108316188718580464809404688690026581982138363666550238512531545137604937950769991017463727615872390134413177600907303018859610775797137016016113102606802797088688813838800915781308185454810855143013269694460795364172227944606300431347612935359245087825208347493214730716612789454242895800282853719867106910616459668915546316174364592097434510683294370333288427822115997326464815878147355064481735160048085409111599826897879669254879297508156224189139188536294200454427978379953194928825858211181738144055869841929684540988013024479212221925073086299474139963394669911227660118850683817283600495843575892378825010791426034718851350321100103606234745781790505544117197246607832031601421881715578021209360854427423211350491358883232796378564472166001494726828167261131597016789600230880093407598677160091968504627695320725259698483510916775243073653181405479112657980033642925884267870458747597093219706084913082415895827493155402246292197345394927717101344066275418408570697415865123693078864849787706800360627150960056667758710016289667582740951097707021387366249972635674158552640945172709834799131369017093203917397855815192592242944893897261210620588806637961953164711903555820205053598303090896942053105736310837261365542341474069799952926346514315606676415385228582369000440412586928320859986674275521677927164075392324513476951431861567408521974331029114057674205782778719293656221491788597609719446884766210763420721231047986609737391517927394458383662801237155850704566714752006578681614241721839269660425285602618701656120087207724527486570930238872195484550454773914091772798536216360411325810101374179206865248781076461167431377158139918458112563691675063432508072778254224443475019342424732744335011499929962835933424029937576922428116852316180758972893666702329666573474661427205429884904599734848882526551742484377136431718267099848367173232070477810180427312952697615748815751914079979037218488376782600367862511618060377238693887087551961033424199456959207271708310135397186704442279911945794408585647134347430868946822760306921728279557815648186749661445356981967466507987699533773038747564775203906572016354788976449845788821080466924201991516836683325565425796721008051100922416370190699295790595871854232595146328831875874514519802861623864578818789719367286862658005895891552143181532486706507904949114100604090118628449635287999895327273331519782667801692483632381481173380246005250793588325703221176314193134417548717064392071693666319797387039607023330963148136837126227097980386536868201644827641582756475332136872920537698787835822919420066606048947824405952461641033834148273071524748076161435847548031885706394737975478464675578584230949784279010885382613451506138815023141671859932279585671308710648280465143883282045445201708350511432453108426310419281862572041680477963369299857600116621531247209105832268080407793131842406978751636907950487878292866001098450427817638818805046969458529075263679001165093008531920526852482686976597013522059304866373465045144659973427164829085936358007485993530675622911885894933610463610134717020989018577481250829850382070728158020690109914654316258051071810380102860601914420718574016447130215443275228707734826762067986019354994271142894912381984211699502240612256478705619707498540379843530446759075738580056185963083738936086254719959479636514689999604163368519559064695097207986029122572737128234815335525131867847744513520314074316959518588981679245821168905397296381250331525968189845492482329391078465224131617988174019693151150882528811552728226573482111174477121975124580123920674948381231235415616872080065480758677740912501829312497753841276604874488049465436439303407940275156124272031188770582592253933395302253665810300349784628501386438401266796169978169802725775608225540828305029096295683097179126223638899243095279511497136753155699874149023433820281752677221470813786689077376568378939236694157676371368162432858736218304941520690067407128860910211606637583026338687500090110480387619390052490970890519817421773519536523030714980300189605578138788488867771044180374675460994683147468652830438972481985703446286091219141961294657593260107023242104409332432776771979193246114731074970429097078561528206174175421903455134098933569339282174513110756714557000636815885345854542830355428083121033111447057137133953636057184817807092155229117424847059184134554642148636279959716752655022088944507972470963009111957706219982785200615168494914048865334639294005268313836034364952074380271405202698233039528241627822979901338116422958035930893033889729432442124996149659627368303816640114076720154394333146442570938930763602644853135369752005636001778600242450351012020812132063904556914846908709475042527509175692089984541718184210939994393311585607155039337098233322512784526456012729792274078096883653145471647184001144163838749039091301298077196344145466405362431006116359476936230104463600027288610490923483290721391155652358941609161949057178054728715062453145066717112899074218057846464388840655061637972123431555290242797584352457893079870788599135650942757493070906335842362458680834906475719149550776147919195479536267830592217716277497222903045054930612468132442240681025304492507497211440434803347101358905503741173405597388150577770950258940670941145582925683279918407586211455692002740342865649609591566362831307725626555993170695130859319354715954117339818652779448092737561895575709338585483874344544341432661327349417431395020816234631555370745390989267674911033642831476078571523473329878925458129017399157524996370187825918916370943252406404249183237366434433867140271325416656708221035564940836295536912576282790298536416517099267690850958366829981012380261672071389446420197114415412353366970305555285294690802049974130344447549629776570593306512985531873848597150024238172484788239634834604702816603354767087169879762699857968020183405069659931771534747449289473658751709551148522980081712255047343884793324771612605475524398229743783018746270327576314606147555730963125846994514673534492829748975526802525345499101331303381391624555714218058728873562542544003804392038757202367297651141587828418885813925733159061393960124476745385849782665563976992965019897634793865124280440387062771527807246391353777179207765343198242201898511996862030838092770935150983854865534311341011981542785350225223965395746173552910444117492905445049067887510563214874037788492804448517920501134192452243183087948903631304575486176464992339011953814353086238795163623101612543011694921472105012695972243056117139170521197736581925166521547132549069751683659183577314742417106747802364140137018980404094602080326938066653414269444964174874436128514389642411013007874173278791717477946763934062553338090125982850806582656372363352589934198980945141439283407343723298066710138278383773027944282427445019503021511015922027721148050639790360657276702820745291028937507843223839687144278857844564405674945836343697351593790870700276485165639154426559026045509295063121906392727039266738498286814569738738637881888127807597314077959398275920716231684835260352777288074089700215051080097016260414271248756353985102190322324311679696409393334914723927796412990328386773988473659653501334780787516636819428002672000446312125705517530052821839411287336627023874850119086508853723759265809867868904065048518301852881097865083005135318247385634925410668241198566043189541649346586385555525725225031528278092108265718980669423109959188112492213779377027567163029130980548381024980434375726259672046539702834998110047566120673031801092501315959398236704798398425119700912974606869174599012118155199935731834936187112019879252316566441249538656638205474529595234639538624994590114729616381789506270069035195226656945148930766710467158808879499603831477795245819408081890103070859066253818603337950385090225400328792353321699842261344534537361307936815808105901025101325096030785478163635715074546795487451812416993145171990481438543970967529142453394562343241377779676071700287728903500642057045191966701746012363491053603484694577237576412348376823586261408774637267021504142101262645592093851360094092715104504702099538556749993828532311977960290073528091835148315770440543141483768271173905763194900898226781064202965756267134917240040880484553172438663303503894836376740362574249185333366314202105379778371120520842462415524294314446705311524477628296710826501203415805743466035154146208095214816721823218855547155527809018226114755273330729975309942986546336042637039920530468674682439903461166901064652434283296037365678145526627231482595102214124575738879704044917274050935566321016513640436428204419876769150230881175310649463943992814929462536073694951516706031241965993129784192135026938319156317647087673981274148999513202271180037663799253666492051256221072127781004082453811156020671685576707402967376299324958579715798646072206965113807618591249079983724262265455646823193244897215949970898863320988515646660136497030688950527560043205300683664444628927993431161664932447734425601571000235425258106153346071516764186695304701114731710637613977318557566532223183277943734619165398269613817510865279391587254898518358824410796677063603379994906171435511462340766900775558188659801408482964436743880444507199263782197063687782994636538524529505320186821248174573009348630570676193633117812563993157981293957794536092687511631765865227617919481044728443777511722955648616292332590057245455007303711374588029630573949478899678553628076118511633794004262715820353526352698468245900727813924370745220145989212157369848625118996528428289605491066304582776906889443948603933841357322960993054475329513885790710158938762147578859796372064862377153645350052181535118393155059669625412264520938126652639856743589725844334250857481988707622993119482444978414510596935352888234951232438575660116944999153417277967744677121134454937861586946051416095832193088594196974824809521393108139382459763757851742047860403932031231150193244071811466948710691074350888274700143817800046400927450488781535455034986402082604650117241879977837909353455517143205697594924504878251599332182241066005281261221053055977717339062815163376379377188442782252309430145580485183497688961776781868103826959960729033515975099159441410202103134675188686207534877759469654009802048805355315524627448553946315710228706671407279280538332661905438424121838604998394592385211414566462101723497704064812771385008044999504111129801638466423023983864300261192047536235765002627814304088076029115982903830548257338234236267182354763217699094878029962357026047166950054183012407499095319492955575523871771168325991231292434907008158577905472902942753779872898601856766976689850458273533226823060770939388884972364244650019549426436171567277974419210046128399678386157629986069794326824070436514722681352437725686691997285387657088567805138167338365101533819978861974205095160385010889076810683482574358281538377792746781930257346693322065086861799265931844779563835168403084593889663895753703547422170846984626645890952603397926523590738953799168586587582156726300159397833009111059227484650350779367025631440229860486929104754907983756250306970091292156257429682434776427013908397387912364792653315410868448734421246244534848176167091466081513306057121142515097469016120350474428171601902103991157731945132746912565159999949811071771146455814828754312140169726183944712824267715150869089729709380290548312452667236933727794116391553612233860095927425221788398081094517423024461679375167493189722341576292948379550248634270547754795076977010632383496039925084723256664665980686268807798875704954143462179471573149328351488346619967534962252671042626895156735244483266506685398707345123190533977223013358593002534922194067186246398148061748147469197552296969620592235472033672437607312334683742287185239262228553104249836092918231282083345982960368048093190504566210307231393018701656750629597517415130302510174823946210845717825327929059560694386163673497770667618993357478472708951818346621886283413293700056722521258911811748122784382259863534668640481993606891002141179196529329456014111940375623576158518806770952668796469143603339146446028553934216487968942179786992795765530943478668125320591209128450053918467532752063448637993949363937586002625839201226389673844259418785306338219941284832301412383157195933425945681907102212164619663349996184945795131192403552382974630819365751933266583332517122568511008359304040891156698988747262495109162952825856747955894376263916437330803187819488279949248555253070595894843570117961562733849119873340212020675689149153919851757317419802374055754951663618229608266434288341802023078092751942020903578247300567647432432186860808016999036634216748347272982140770813352387398930157440685769754396761900135904799810527842237026604125286072070110277992227099059408157703522161561304209512351906401234979468440320382498704926025097952788170302048729998407001127999115113291475088857755851693029298475032312269647502323266237640151254412092759037178802124759485614221459510994061628657854155433499509845105221060909330832994917241137637594036376936002692007175737029733015240982104963538547309548606445900075315875598160625351442711194650120452501947529735078456593154166604517337615050363622085344229718701538064630878704325047379382132973667459032135976823744377987359968040667797403458323204136194043976614509540066543167125096648594666910734162822352737666764576389628184390410509860170870652593982397929582139536945932350377767384427257138914984268062755654256152976263557968154538032104334397839001564202277419940903935805819838557735359351209375138808785077656234986351548193029073171837693235854404333209045160485237818298281281647283278524440868461268880855767850066115268218511623762420933643660769825379791124433650295874468717299156422328319863229574270208982622458473437624458106498630289241306843681983535078340664656363220981210347605960791534086813846678278673010417741434845923924785034386663300617594642426192152904134329979675591427452271470351459416210560689309264937529826330827901178054481970661735934385496753627304328586954247008509989002892960043982699553665971521863908267866368952469620904080506935298289172116415784947273970073142190723647964945769259427947439058453070725108438327641124057431385072944864227898260133814914857960929942881000017206541744475755876711539074262405603452178227917143401813250181106380300433466273097081349857897932577830095544728360327389070664781806306612511724228268813788992876064159853319941485656668008700994649942694864427777928359093774796326018048213411644922376016450267261403168485561124691457930277525368046917009661529394681120378942420435317061639004011294280685007611410201448522848719155742799212308644154348285969116471000882957213111793656366737707810915118225088618326089928805055276686391901630558929055435588592989104636601765543952246166676123704197751516671949050903402955023995971681437814398678517049713891625021569884576784359665142726682560430584343499123778355218532078462419993659712303695517700436627660571088168216642149394662432459952919514225861626327300837568684953093312361190419056552082884240340418033587257618600309562134289553692663459799804275981038116331381072084721747006075404604971320906800926324146668956928318585773017067529009457185359170553273256967085761141073742221043942001285944827718930943264417601289338835065560662750489122744715213939769422977815779258159084357738223544126159243100772453291947407987431739981268157370001706290877338265590164969053010067134973001863164805655517824151163476651963141375337015390527160354028482725155678926439156105068764243898511163630451494453776780304581176781742429555282141303759122372551476590041273174691509514236102383547022405409417581397920897081207222074077445348068936783205891338268934976663480778388015232630457959552013574761972043074279749533411743431286693398433730783098584976274514138031018381058917605867971127541967328048233749159755406835519352402748191779258593478654859468466294115297053539674799988154645804655387864679776916734807343443962014518726089222096230595498149380363469245792273237611789845552837203163669641001722630234492750045817205049171550362374986078302139812517053422456518327683858598084725974133497599967571115451163479715748321610475120913938104120504503355777329909451332166583477354683759208176970049936946853813682594946067886527172136723414403780795410082762848969884366397424530122431554185694165273902646989047605532575533654583542878434039687904152775729089598878801698000066295839134032652231463803678016755859154531843219568928527195890166273881477115036530534302372707759358189549233530739759316877916807108485372695659433371647513952290187293964681067941165952324907598605842265530918999424694653680706569558493219028281943567719109991156767943324954902813554242311722983817938064500227985934296163698023600694203864906361428839455407847537628354940759850275348293482412706321393472783943160322932971415219807970831219433762593814970806448749414693913001375141252587754632169007187466412969926313251788588131026351782812632181465195079966573182392429420753806147392947938489370124392620872648566755199666594315330056423745505214752707316129320113309304774292978632956085617255302425130448179684595900806935086675235610310738093957317798999315158908618591479001943286366520004144835003365211624122567388442705828604856823763575041852514567533334704632973338420516710284430320832167507395667607719472214216332846701636092404094862476107305346277600653809032757172447043285588120104493457532160641072322560899935712104462510853969692517859593990054149628427809723999238197702248777241584190438328113611083542049741338942300001264805988843215063279427149401431452828097467316762177522920820400150392406975341321305489422300165683430038478683083153811016003211347716536881273984403922595126522835941911681468146833152261146159543543825269766789531948827958229501655999788145129961319714497665804650877764832763745977775085094226852504780631676266709328318552316916138176716414594366372417077954397138547226011242288750238456497372358083764185373388405737467285362096796500550651263735267229897341306188601494263798747575514796914341823027727308228426466434363674254794396111571033063116029925789298374649016157189858816857901241070445202548002113927323660472486679164676254643194235179390732384164414225240554900097234709680795176019082127795558639791237604743841545136774030233776321448643007739527054822593044594901799678713785551461591735269772282470378708908836945404566247469744684203786266221987593229597105894112871550933436794248484852030540919779833877722545335490049286866196240367855154216731992812204244908269081347685845498677288680174261657343939648131138619266510956881642237165922157760956316825719656051644098531992280234778899641398218759614851130300479105003160248143781141395750783042559945227394166099665386965059882351046125949528059493304297124426422885045210760279387050099133844796620366293956105609566362460892461188155753961044611462199608481594401187900898256582545896078852291367208337122792912293307999073742202653004886757495167336370723222247662841963393271326476957066771755125980296385854411999674127395549604815215451851427744416104389063074337061597089442222521419926969963250877465677352699732846087114076187671973245158218277545661084434525161766039211440188827920635573530674689665301864543920465296088705063011583336249009942191747941863191797207317779784916296920284721112550197761839362158915525921482974758583956198712628630282571580656942533832086878011975522243258306765163835308924868168717854593587037194914133112858504178172764285595804570081967335192509301343405213940635797932088741684901350404108780088450179017957097175091865859337868526888392185490731964598106567657994784121396166408013723626917288287661768174105887886542227584798738735651351114676403752071203152825105066984241360590472637340447994798108829428947441523396646552911705935395656724330204638179109937907956775858603841873545382110043596412941826107102342844974364924842889229175003520405250437177051374697175920774398588536889159972178315212180311356919192153416989284127933956340847313580436089388429180701040118889379973913991311313915391702886100174722595575826097879174296849626015648198179162117621621123475369901892931914210975894724954515004622465060826037086764863459012918736782749703777115116959189265753969471590251040199214849567752897845054069027741727519958072386555172363445867553829565512860471788363217380617483647198319159282943394291167268680266327782203772232941675344544412834915335857619241369082276077836454068814529639736347280157604126264161183807996734743310631210003737360435132056057182018954443822335398998642604521296770449814949826602823834988309966589888664652630287226919051220396133276392950401048207173788335204498831168770335825683332010956125240509031397936561080746118660123524199877501555158740040734718784303029969214318192415198683905602503368200034475628698616962490638144489047778690437004894113449286011765780025835646038004202487023889893225153899950969744356406434707102119176357889750442286621667502447032553975599131344528101417096750258735552421607869728154260733606645044627760863697487123309947838162027745307079893557324968669906528006505477034475631195192848060412712830923980650677009703518955587434033954037384628946251703669124682232113875347243350429566112899813090429674195506444004942622115274954805961220636062027609100262756648653622793468338665802405465788918053921995496310901132301873554226748079471732137972534793524452951928083228539831026428638549585912672691582815537459982182696317091266897683945238776950241270963127310859164183828444679230835421678531329539285550254272731826482951711641849849904748777027025691428826193307352287445213088482666217581938496726123842280551711308492749037867746448182482600393258485494736687761456937448231311961104596836089883981460876986359929282143574618628659800307590440298974541025882792379867626512334829838248405300884453193138088092342770229048526847248668954537561915154172143560620962782740513880750190947416533319944436625830803774420313571346982241027748773932567505584150667743948765151279264367617982136890078481045943969617598484237302049424726049106156557736688654629552345347046094184976660093454077098631604905499326198115972637417543623829599064170338783327453680419021055775379630590094621883890457943874120456011222523944297523219675492115077093506728751915606421724536134500643663126973636084720436605461684627716431672016414668035337187155184439308671627324677895063696288363057571770383275650656758172855084862390539394402621570209371814811373052476744845893635766144263772921555654894660333367385479864219093948017852799315959667213199936832099178839716831473713823727889295843346352234853738550044321441583731922663809608166137344160313290490144473017008293512870230679431363650428552556482229903232591344184210942533767223383484997310626802915193003607601229854815036291165560431419836628213919272144495276152690746304715880962793979970459824360059539174437193789796781571923065412065211583403520773046774944202150876569315246547124237114657526674932595111612828509247842339711109877921058132016957352437551593468930638750933376184690007984458549436858122671626108666265150054913374163901493476229581314340226021097052533213911519514136868914102941792695578101822582733948024843923580590438504041613186889378363759172532836107698624147657438954035230733218933990916429281458609372285431354784502319581833929627319270013153358311061923272760682263711045087829420535825431676537351814437168597909461477973727844839646253590640141111803462369362375751348306368334877502353988763498362742741230441103455445028830856293665436546826570136110924565836500581979894023628058667649036169335536846368517089933868747678222928722848780157111922931730184097815244392592382863981228522107655731236614146071920421857015661317767031091836178262903821414777610607321138801979142727820449992219921875011907425773175736264134210529929241833956396961131884597421867685294828214888974570971977980183407076321361105850528762111667545614548766288420875886003926767317732997985336400457991163838521853810687052462201767958429845533363062352273786412128682549175883243552873518961807972321970719403859850102020443184755282753629732400428435864253087578157894026904014232055883808544935368368860712102991587107159663638024245308647539837788126209701814935212797031380440945265003682774591681592903358606779294440446845957352847874120333060738855032632889800734418285758868548097603986761321256144278205464396101223498628886821970624597955410355772595434216366501161436111302632767541352873001222351377292261989091968865836505225072488894968247217700304338087046439299901619047183624448332662711617833698167825531719506439979372802743369300606272913047946424444648974957570975860616598914572986650206855275961134116889801764893104193616045066093979372606177516398336826360395581729608504922700044266756118713781003132849568535287608576879455530634987575024886374190447394822559862177396613381882659426618580434101134361707166692755349766718117110510405805285595076027283023652517504492211189969122030568138449308736574785601994240533686972389123169371866113609845584248207877253259910536899591210859720972444729960298825259343824356388036069547555782120385812034058455711085613364735358486299093057541061879771791939568433873901035687720146074235250445789848842578562603353444044026573604997979299111456891324680281615645384707031665874313183528256058429558135001291887603751005991332873355531238108990802122505882767067134134222935974470286352419139603206652158385145541874072164730765919039584099048246133862624680673372988255614604039095451150668836358700544919066763116064095895496044718350211775466643411355583759500382277816685193493505781185436126537756092544243906075538120826399090944474641287497425722244181831142740739504198853040156893014188535746633764556437892340862938817652124423755281631928036299355326894676908552552361333237464277459975587648030012060283438353995175863964695140284822494800713567343261244301343641075148254862193851608873884080416906691875392613118826699139177144740194613097234319391631869653994268385740871728799369003453691144634517355090154788913805240319416874110812954098579990021829731666000878609722573007592911961355384516248568081749415985325110583581840815079110525751075454224238049047263002759970055787732548610758364564266196691015892714470333471883520665400138870803096528915931046800021934501045091206068903462443471630796113489672354277821488279458334310348383180750257053414724369754489667327686271340957802608147255565468489917349447520688448007455686347169271551546117730960920547460593172985547375693276763095555003129926922100337833841576582199269468453488823667293033200787458375854799162332007063716871067210624210169896346882628784514190298291906404280679382459541842455315832183582841884509613390993409527948267605602684164839809556037359214382844664825650451643057440182017706187434214244829530689691685392912573797683504792261758315001772455829151681563560732908414176608489185795829380554232393955241087756411761265302193859588829569100801139922405436724105801198547981889459080837218433754068185820830206389715986352046505597530010096647438903037539126964806913939826108204947812140266715029803651109244674045542081439986383034178585887551327890388207205889768259921206278680087404749947007996805489991486916934324066848010677288679714750559702138655291751136450555122488893255645692073952567619435293253948863951652606155086441341483078097865480312833829170596397849313095787671545756316697519440137317146234453239037389807157291993370222639477363193703669164917409365073090983319772751372787869585621016885836040101341368657685213016258563839789160523963097633548227942890205399648480700040689585819016369819518659922994149489177275584958110878148333271566851289321082917281654721677891873233549370179992806249027150359834952112242977963233717145468384489581828027757659830239479818727842871065765357449200489646547919438725877211308000860707973166902064500371814246774909956946983964442940268375950820825692086357103220387447278338557633587310031466017592893683816427222032671255558291827043075001567546750637807339258664709030238135436320949525748872621915270952608689568768206482135123468294053233699718804608052893325714619235898537368277781529469462229334962247942880776349628050977652486515930826028762490044467805259242940887373534441237811569274420214964692166904551585899605499011693950260582654258706706712136032890475283495900716329434421219048363586288849963040310061781605142984963938170525487181458779247094486349873322164416997676268425353300675735497666354758060876128861514794356402637919322231919930381476471662402850980957012259698306961472905553135725975915117508795551598839565192919413463010103677635096356858786969889501152200080483921288974245251418232977348150876907762417213458663616872396713735220858654327359700665849251565876342623235136646815348320765413116540445339394804186876148977087935161320666263048419791460049237644487950050876615630509538021595601331646190058872102737162077074820520487366842615149873447990468987086745444234897398937669166644338691003855766091915182234927813062297727606126267959020026899773854751200608980220059704933736809232897224832683222460398079835194562070815901725818205232731135964270976381738966948679485715549866805379768675679444189607007841345157847706855440743478853960771194823437727882998316760623078557794029018181064687473516559163093623672522188501837940982631545112984102094060933966545144688100485028826246024960692576552866580362203781669743631672671165791484489102134578244976036605290340417188238102965913308914805751146075808133379512645986270828760686836931760687531433921258107697653000660227032511257646296880716367576760766211453170185266683888914814262147049258689126270418320396396404498975263920552996782952254378176885301995106088468534244948683563092912606590910622040208767871636139977037550878354580939478339376635791600013638104664174722534589105972298837682375650336844037931598625688268424463967821227910294107212017099626263455219976955789560317248924702140160128789226556272245939022094899338695976241235108148955373018045378069976460517592537053209752325917142651067116030490261544802134047492096410752761070527864484499119132035307181534263650487259327364896782223388699405000462873902038552840907102894505093550421876883878429107735092417650078725029400245258897696728433848557038487624987759588446798374755398422546566389534029171615367197922933232415171233245546263426315857105333402450651758499304386328589156527665761928221437663566232913141683790860397373697118171357026944984619087626373399635951032777813982156105963239573624363907792292022236960073602498893395131329170357720081714904024686548628254357766482565568850756293369292040076154416834993357577962685797137213112660996703460480410661661337793875561817778292092550662556266274390428857067133940899038502646398168005645809177438839671473650938990929908045546705077950665966947465695949973377870551596420653002841364671412149397514611948361720733813027068286286659258450591271933286905855080356480884406865109200659241860057223584980702587758775466986229326779757249019258722897836972141144621427553177098309792745894026937604810860157028226697616585465657876219525288558165537375838300305984945891124967055125107577351182360210691643620449600884169491223590303829374867115853712039045240299447954011521787294595060177139712495263717100175879295386802233638895016584241276663869999396256154966306441577813133155659647699406837846509348474414873541325942452284180913817141335198988461146810193914605361722933234926470542525890642583680054730065643563556864156300811850590516644722970167901276574492286719162013297058269801533135051214182504392581951645555185227168010297542667252298343767361496106282002449360300421301632479531677185756378972545859045345173520882662086242311588406938934402578002097955574421125852852770373914795932961730472178546870378284472357837675794294428587432332348992779022131282467085005140847885159697760890831674926079230846321980457672942413923688671556186818987826994659831301207958464369942799144230260432381166854320885786537396145959542512647432838749279739013987812385924407608052760947603039917403685098285329944254373926784732136652637729382638402736821529668934148514654080124816209025122975502063000756005916560612177843445195542476741666552122049243540086215364292786868331571137365979299519363991145491422433279992195507147298758889344596775063212841757632867694188189367232525900788604391121877909394510658631692642088452497246536410497789640817429725880537568287077488526208873692039952869226596237296876948034703766952073701508793273034022007695609450317534436413387223214892287548205088397508408245157729290983765072210861740998716850166027283466214316349859013064829261297647404227763354366423570662328353275406419761897207668838684774039158234785277896835178511877714715655722133029692561941125805282416366020512354909667796308531890151604852419261693681641208239524770813880063227510491351123475420208387706863712950026567619186018512194859650884719920291943600080370387285780700298256827735018236015619445230720961638953707941715325897914874203071328365644542093626238776970697569475218518005546698134603593653746019316181104054241113409806874506778111435963865563388373316377214269243934314590762640450009434220050069095731316530056889459069192025597204699167730010766109558687185901590379521868177656394944078956491552321791428540225244676887396999392176940123033620348387411843459134223170503046336109429450600545186987630223810464075211310105988900454830061863489837681941859853759691987180814172835159135655213809134876242783319472434797854736070847205366067817051417499811473738924701590340928218060904353657990967303081032129739898048279418500335489491518783086865295887818291574046919659674050351215105969969728448116052023619473595080956885557806589494439278338787365089366800887668466514103885425723950374709013593746860496569106515847710167697174319946383336751158820337797228420523299705271503227201479390188379438498292234764661214186508541743478899353680079252400805532685051381657147224676792361351543234360664503945737676432060411584356139173844519305267248583212879388636525559895909830833905264616243907774973377481214448592338307143930077583780715973084293598361521501250449350740456331095581103498257753179589074099152997740670691925133650565344319586458867575409657379240703105622416288166679201543337375248495634137360859019289071787741226772409864511076596643701350660284001493320647105843091964472469215206836624779936344417700855554609747362515234078203182374119062554192600718930581452404755001336984265318966352037268959537720864023979386628334786593568968839629486145477224970563353970008738117145548396456202980017570964861554326069400079348322985523557697531637674738794911637142154167875433873981124235175005945860954979971939228344576810328976401479361407239101948747403258659396510278429254916601564119948900978943595678688670703210953053747552747277562870062594936224571771009437780057977092727520979343831684202345702173733325842515074381970251420741917428662853564327034934883048933682904828051940301582197481809644024119472272043439630777884482258964294420355987509306518354415741138850037118593527337557616688924239760995588538756376665598069776749559627886714073337478083234611616224195631960258245832238954755480556487184408626464120255179154205515206175790523594026017431159605659582802676616392451957859983445014175806140693847367499169002942350677721988123871204036303921125586229422339675278268624615283844496066658421790132140420371546314401508730619550585515688805661021437280691681286297070147448058670439512077617779360532940798954344115544138276799210566951491054672211851955397265081622707057451232313669429173615786343653967800584242920135103383256023777124678451595520948016105606869762166909429185147489279295972616593119463649742767299471148512124274648344363567867859433933496789310770872303184994477219141210706957383061373193111896663207331519298361568723729479603812571337168358072825022957958217533511333345669605891695762808141738210278182879680187712859515522108749294060248806483968669893753957523036778969770157578767160647279857162409922129616183219902121603950356878197015723708597580888530668846845452608572395421312180988655688513707441360241619378551298125687457367379898044548186546357678871553365006562178420007027173710668672620438473355718571142915401870707960291913105336122499350735090101435558129547268032807751733377030067600434870794250119560363035288585136235222332139652208505759679624300502693444204158852809802591607093035753142803662690088358949181416603309385480211872229763356930020649555557563748091089945343425954061953963365956776987429305263430180391790184852208327087730348796949835034991469419639665857415564735624390064372973516290020101622611053240052774007855972102274552306097424469224143624983327973443401738296647220094853808717594700707593920777429130244554408565248505314382522844459747648415542310522850700737160607669653241857528559832490613039408706029617536720337647678097855224963008724685618094596689998824171477466562175612841303496580265268764035601054214930988124377469588955331520057341753896786806588146543400827511362284140370020891286285388990151686409923081362678936191832028256678688957356051800328852196272792717218143427387467690049718617451961100756138190279078167977333304180303512823820986399297830088175756582536482722845188521739495094527654945436978407865038308487498803316001654784776136034631679847853763719100105353640768949646209310151945851028240201930327818251187999160554067146033630289932965064199220310925472394750245749269243935635038676994074636801984616875581884125687109115033367234154829384246089338482782153878531518920722922979244243051525238964030646730812935932784582870331100757461283216189631848119521487610974492493330688886939969791579823478591958173848338026897265555266611014733148486028402235357585150351682019570301038709664227539524766805529179240162315741672957691175081065431146564947129649497191779271477358953264991364774771611172969109466712673589536136246057135287297733593094870252094825881312234155641340806153451832899419471886832039723460426388934556067411871122503604625422997742700962643736623084179248623720878480013991549702186456200320740175269364151509931050383876748704335318326599128042747059948993237791318709534892126980805804223114055778067721008992203425972224527357469528199245476395348707300394834567407728444838323201088991147971557133645237417100211681062983591994203326539321951168007235383695777756614733598370767000190427599131511110542766604468118669673382522677369167871730921516613660634769262036894591529354811303141689055501614086427501256850380874980462548028583954257147089716335227625551356371111908112077037364802582763351848047308083912186025853356628594286846040081523090286258375301263287934177567962638299545022417594507472322224653301616444790619871165370357081617994009908747597089320035700112284669266093969916219925864025413042351291528970394435106361978162022161161710754087867778601873460933741038057613085547149544262708942990560608538105844047001344962142005964052553657663349565781544703407390785028770887717750307828715285267160309698211178000293146992316328493989724669948734989731747241052639589304281140409618208905667344004477591115339904900751281999697696299151553284909868963973560174106338484526890263588913145542536499994031284015337730313115721302373772047313186861816080186220991900284332930815311778054313199127984426940967023878218835632774982477013926596184717073469221513631288814196883148181646410224331872659942299169704932988317061895819746836447823736085649028457118797679661214009404364690437380863208758421665483047388667575983557359769436228544571075429116163921225915542042013909142829863900791616779275457737945335111594316946031956696720779524159638239281133631406460649174464044996290782715995983116382860463791999723493677139238940023312864206585657683700213204067659547464828699496380980784867189923536075738597659367536780208860390066233828625172717980052767169020643137169319976474737200989485425922166294041884747052170077497472679615849836712146308740733350431755071478311189744598909786849977789704227577418278465145145234229339186971287035535674607109968649565495036057710441678962247376697449964323003053328490377540698672034293554568909302665484953512786999693457410808584798791610845722603215097083016719137248709985643575307749524305219121588734189945034187418920603823569348415991425602498126929762662339703770251538476725329800914450249488021793766981912456614512350157887256582984815836942614323993865626745470920903846731041220439489544507895715056367033795565533663030570258509262205851993040565181511989937534705021532836201888146265892244182004367014258266951334252521821781280723829448756279395989400432356194129363126475539994640436897278434091645840775837286645210347832125860284744792353944881547306565054420347386323573669812489448156180069248702188208190482746858635671341006101310615834751117597448625319325772700183970231813325274722054175890157794669612235968329023166759849565881061371059113425810274275756566430556747522030954843095984631584136329800584581220867039541468797682091183299183816293662857778661082601980560503792972529390153994200202024751710216442747255557510254945494504542119272680775317365727319687135372823669707920242517808145708052915922636805057650129495271700957969192190400717848189030090252883203581611359088730915056307326535537035126904499598012009680365801571332275849328344625191084120086879287602236356838708548000665521449133609222377711522415877403855468464195543609852328288432833880309035833121556179327718965093596978090049557985596089510298231613119055391919886118540375552851340080508112983753554187207675734148214433889797371112722803695503213330946697078124836962570438086405730312930788954862186870940794021066762155049260722987398163628661792210121845751111378288870107648683898591736583274966565661506619101214451129581457682440153659869016697071224812432589251726871776910379728096374224360796251841645231587850984309472350030664064563841384141642829957793214501232896962056910789823786168555991350266298102607412255679314442767875037386814410720397568596610798879137359818301409696551179090031094227828611872357080871365849642089045736020497593962601418509071328017028246553511507382741633824797175531912371878236858523346614250585720430893691968873382996986225788114454824507901737128793728150231409960954033178346490579359378253080001415540842829959305652813852526380690316209381737417530074055792781782237896931962624317459880787006437751289946829102285834604476904851807184088575621092423930130223608528820001584425253376375825064846422074440958605057367490747914427786567716398993327332041082138268231171852860578268456373660943650652076630446655569031743403583821953359915943767682004962272565181685998853345289575849822524076477650101102791188722010011982841101673110363987278863364096509471754282470967288305987343943216337905303849348584393907482903352616899352765105460060545917055941469044400879483154983134904321977851764903884467980499459689723956125156651212062083177333246682872557658484078938845870629270089122782056185627229705486795470366084918309191073035693890087514960077403289053276108492606351962309224735798351567085732408814496351419793860178952250210664050987449977523013279666208645636131912741433830630021263803779079826198909501940165021202589095829545728749194450980671781791097328210488259834558934303292585825262497563118595576764941718839889240430056915061432858953870443433107173472335093380142727864153134251862330017440572733292289034375469276387490872081415022992588574647941944395040999043307871624119074502037723160003783094413712898455022481299172046828718626369524819133670878697924094343319833756246231063802090381736299418924602110680231746921102227916109813352494411475473032383663433530283685563197917944266241433749897513943015437326107120694960012387813270623990330911639165430168564634235430392927895877583461099869624144106236253773849848900199887543764858794535532015712039552659938951328869918135204517515765855706523188568138807755171525400040659378345805987682362956564141354828983132698224925421909946782015903896223589012857604580289590316330177293097077053289240394360008507296943144584636815071249944713958699176056735881860310600214750658038171615740313888088195246865072877833863739904569063162461249297912302940975819734175500154080354916546207626025377578658706835492751073178604887136241725137956039043390541491599417816488013353808854432057051605006247344813933734773579384993609539653960609157161447009211909409264684495115753958004945610532943964521973394861623179564244656929762368373042171578192500617695195063065573038791098775814445798188290073334644217236797273998835888542098174330647265534511898455344285346871344687929198411683432863163966501146990951189684130466141729089328517065015258908057682619292610446432735415853610881740664063874672613592221060600362581307935921815259183414006189892815558048899140959094234781810295012433701849102854554579424573241490577729357127715389268086474967477843941325487430340510036904364488891590319304325538450476455450510596644458946082473398621207153830107942921419252805397586986339272685842167661888858531448349800204876758692434389318468682961889378995963779993806164300127154487836322910158132568623020765449499282771424725883019723145797772131621763757110915904212751933735165021850435710715521293817161475269067692996896619480061918576342405832306223643547091849112345503550805480161575768923440574848694482721208098002630862424825861540271200293754234908721490210885478065572778867340528590471499004862803719386567200416490099063884892210488000400991275689099876946481372639233651408088386348504706072696132137643646920518894101951115619985786400521525971967404381003505810555754854740371134129085488529621549637142915544725201868331672522841233848010676421251868208726443507746123863911000904191367731344273258272013090140213983989905102403865848745791357242716494840167561998914018076031255049302977952394867469688857078278374619095781909772026558418340470624240656635957091743893242515230048392717239373721604847350957748111108224165034332073448375932550384969315679021550213362147457444117014219670316013564537932178256067852988926432240651967934244258805533219911278703186269544474469808985754510470176558727893405823204001234648032334073128342095385277921311513550516670833753306998944207475916362660845655462384280232048321627882458590885873226237632640996881013299287549598537994467368415834551927286183275838494238504600380134464447907790291739349425306492640597733463258206049315955667756663543270371256917388637169014390142497617040258464634173957295812867868522169736097304524194114618039783277800383292979685745696600754941266781880112508534172005151349185286695835300228792908910602783997790152592159483238774726448451697014734704089125503536273208794104260150932378176746174069884543300804627951867877455253259950249473887098159327778285375278315211073512467292769320576913417686110999950587579889502264220496091777806404619460146175004201448069603546044937025037677911243178060767560154289328501383422276214293224338893905797708592042424672339552219658427014349024591791247616799182600514529490070560563233740383606420012735895109506812088609495568328872168356658644687253757277427048210600256323708952455167581931992940505912656035601406257914885990568799505825818090902019439325389190510025914672833087016738210585090660238471474771801353674238902209962926689410378647358276241513116260346932193309811045038362919538609538464612341474907437615588778356681491485599928235862751593122277614286882376206201128707624653606210963759688679263122037719391794344904915388164340911685255120869346235210133628792905895732083443660482552516686534902260881039548943433306238562513869521079636281681384076835263990471429893568922767583366037296303344684600018699465381309938556891141470319288949251037240441014614359142697955643286469260963928549958760903648769776448703898358211215035035300212498237431474505674406083425916592413308791890197037471862819240900324144423693034003420964380702509542806622362628612239505673524287518132603479420887730885514892314103335495392742106102439719045911687486647079982992565658797759505157604039845656622798322257635660636447724108918621207565826898243300448120693973978959546426066548996692769104536657266313883018099242868138220320448861613331468087659116080167013542075717015638829245725457497547005599481291891595878622084015649137224476742208760104258546567991436180026284389467437757323445995161646437484607807077339829257411282971783688714197689276004951984758765184919119229823301559562882584489592397767724724077184892570206818204707349089944532941724255805107881967411419037545243235378227462569124641628357231696086654733747641407588324739047883757245761141619467192110575574529032537399485133989380530611841917309652360865536816149903873739777229146727660609358151593244021709538573152785440729817149731602093301372002288823236287635836738008498499465144734353017935724248722722010371899125887207787951266707224596924741678806845664260861821695612590246022922476974174175144411133165995038630475616449063601539136229293445542799518363044686109223271198741504448736024919659906392527664624054010392022422069743494381367971836324343292895681894541734433620491630246744065805403276088269571133786382060766831245354377024072848927573192612867565998860648908918543485631810036937217490175557260447765059852147394705264020531665306314163524127461663858802371774456541503688520886624281570376590664496773557542262529415386526040067392269902892101833529912418527828437654918308254696639814690995217259427294215330422708721218857780812820948765536968033527617215449105660631503886144281359962680586929426222330941910164077086917970351788531958997763997799990119408397066284022638187319856459512788689603555652630937193064187502933568781472132893931540617060813527257110737294576693502277259928383328431258229593053328435989320396190147405146012341156288473540770774674393504228826918109292746256885567764905366507668865248582223575567008276389396017501353954291721505297044363717654250552571336313108722937296014821170476240344426187741721559257079284132395824962540196342426750327065533727784798039953165785068125417956915853406229548211448210808915598860259225103565695778030458119478592040007794893237250158535520958425913178846363084982797364635178155901075353355604092879727542918705115691040409578376816958397207463470901939490014687184653500939124143332360434873722105191441773540176458173690738384569087351430568632712604326753019577168233325158853764181163027771019416658995897466520310971166553394873629650869873380459814536756565360620690073645300340673261469129644000859894127148640709816789619997784040396624827974858624593919593298681813307905566014385050166831272723959992289221772971268487800762918155516735150869017572508726340968393366264557930021232297087060630423173554181624688252687861650968421969911966836369818845479104724019357093201095466225833382051961011724142331927739485712707670075647293420245149394161267078362927459241874264381158802337110941260181582355410256793280353653921109021722386180534497520558488215040074430000209853237595982978828778328364826246668277787274526033095589926641537612088292031799453117289152247252450905536280093368346508319049864806190834562282993791497331229549863764391443632774735724114395693529041270504188533650900535312303505704980210478021737652479561879969365904594770673070453010152315927828828706423972850505799646624479111074537691219565734578654923766609743297288262181380175229347238729399542226858193362746546062572879590205704154676899578207025056277993288398075265968591798080515917017561936166744744519182060495607614520119158583186421149114476953531186769829842408853307298153597251034041318016717818100386200536469019419390459291183179861384490260762114245601834521473162049664738218341095288661720256851792847667906607171814074376542867221427765730843988617497199697924113403152854207045513821160667315583644473320021504908480550269659478107017586935167780153040289849266944584838288870293206664391737630710535586299403117748455807017481426122779388264301156480772526391371815628307932214704623597154772249455575834512262846800729987617707729706764996685351657350298943953858302690885542360205589291326113591181632723679589806379235738453337665805135695326283381867911824400117030571935208698930417864720434883156057949705803840552843915531349179049124719561126476888302636607763593412508612017555816800704529972236135830460927718610056736838005926322490155044191269654179084212331348353084317551492347372849389607997525892619468363799878942958148222790176702073257684890563826498798201616927157377219911087332737949685083660961177376124847581265301155136945551840828353914394725023735472180131161253394907469667316538097017175335904204492135272392451894014238519563551665512469152322434389217636516647414265496314316039090553955759439531225524155985316072786240668573536858479563733286833879015006183170697567154053086538593484308186448039276507151006794935882537660765535087984124054109089106750786003734735115640020167708062641206228948363715355034247294816235505981882705837955632918922791578752393418329956562694664303634383777710547415172193227749116821613462254899128083015516091108352263483464807878224169036653600075484347065447654738203087348038166035661184295096522232634169394840791243546373476590088823811898351426619293779203473086290373447503953671699702855536475949496832096527484294756853511879829876510231992140565083744756696008817392817225940318003179183382912835211511346629926303185683406357271982890536966787397236094362105106534717480584729499909337772886362023929531335016673642176694229572438852465601821287337661632168591878852545402514746007860668295427885878821599281841285962368465864706163943798337849905001291940236894757510818008896575472848653659400213755643293010262924642617727797662142993230817345953759205502974551603925372795963597702826178443295191115625257947292656830704434625064473712327549031240670251669339929825156794008526723975962169855127934231583550692795502241020312888943414466282455999307047304962412710059733873272014936562862989647923795894610770445516522805941487827766414874103870628893504876184497907247935201263443197249209305057986953034295668980449930315449892725363930695992012873050729933602079035038558741865816807228516108721493493186102691964600516970303820589048825424869734399514224014324035097494459471988980135323177400364161243348649788557112098351044134814518464810367585525905536664106685044247773661231507790663463068905609259357228787633210164414879152801809540737233429974044535605678678137112756130883898318455985349551536302153490006136914544408405130633107156342827983366741976283457627416766990031097552781899265517322128276653042266968068720259923313266984356719432400364452743589813867984652698010481763315012810617178221112155074077780094662714080552056896771900217898274905729633091353382427878401285585197895233731617533843979172435239745358918511370068103244363037498412704379738759646502416533932927726213413618122989696826739871601607336743800751864805703999612723473263283442049213859621956497274061784465171111451201615377355669984040682851374184582792513629987261113179698785779484212680235418546695421674422000462020104258861734939012596993745096120904142320571667728898224057780149260932172727905266278735463065210017243938772572624187739295789623743817153909805703904516415048472726124207689429139303418727967774626828947653353814705684742030524076718240369971108791739720704061833846534964117891538748640333149939185798205853332584676513764749853086445357791214300562509141588419540780885907870943508407781930476460109189160864984652847318202783674379027819658078736557990844196009394857023873391431875149174835886833933216369843418116125003795382602096565380387380055196186211576550855306419056925508307234561184799258237523666256494273113531322238073166418202337883190206098812053589476154221212848708268285785899624982158136474996508888842687325373599742988079301381980030695259176254697573624893132584515886618892600884788029481638288622471052080347878212426234637209870726029217117430049766995058901621372792912633642278794038432046286457469297514646708208138344443255605483740261980135301975461208600289406082008374133678108450092290561252891265590345243600411001400391441325179736674838378279555425815701795883697638113493279423515306981442131091014755987609216038386454766874091622918917109228970915078382239021738461122224020256992254489033863534557211634010367907740578476014431223093825746525085079821309574250657234450439984124774592678547465644666772939764286652596172274751663332086379691846058925778271180989065103332504562902537383394496088802442790552504017587158696919284616722989544517694023528689578233672147286015454656228691997145784320098839916222917234641047846215083466547273882201824498678502090384361430592652894832296861038430026964986938346457126116082179654947588545650375768295080040900219235911143508008708829161868504307617290840531644121254671419504072760472493354602835912052315427532263854112069243730790424926521349121814871847521366408942078820008646707013399032813382444460915529422549843436874971373003278611027239818735248638763428261522061055912831465675028828656549650723243413631809942853074203694921163966163258735983774245982601621135396995352097409312606407543003755636517553812532599898759286099462110143915014354090638458684572615996630312187008234243997261479651231639564332458465437001042440726489705864130074780535957730359699011271050282545075533516774082163619611321643639544692273742929786812121483862933943461954084264330988863363846322787327630591960936941061368939445683098776686858763310216198432336486170791411217792507526093923734913804417635887994455347770615857762088951909099051406085828731728557230675653015686099719756327611255443831097839057503951717390104737421920221313463864470871346965669744370651011595645907539817913140814297369265310702531122355714607913720558461941528907180525549971326421226635249236540675883309085567809271055408720454835421183375470331595113324013427065267817367124748732328437579246966936193477107377546399060412535687454460181867091426429273647649128161706088440592274325010103734887731118837211245545170412545214958587061219215835029956457720226004283007452082102235434644275704877377577077393633817785421508663814285212190130671454710268158634014968556110456510783877997600031348080261474762682348038579628083387693999523213247431815274627703141241889754040484622974595227172692833179039273607579560833409577973065020298477723825780983864372087651415738134168305821094776198368797886831885262490139010722808473877183466040465450093327991685220212976754821725672742736185989456515564016639466653554260558755499470344264664828357498241037088074403497126228968935023626161628897427496657926221133966017832489074030007409870754765395574724354397114645286503547655201096827825363876555719684297197659392177393043205568796581028038063136538167795375448697324422635830629766837734060442142266899221244719701535516180716654950812494234453682586494565964428141103309406138819952933710756283283448240749580930165552771280151165433302795046357999859589975369504222293374184285797404610352804823735641764801783245780391217836778918476031078475992800835294886970709225810006058931353947315005446894214861263887318802711171001584465868995844490762343379715717979823255320964014013871717293424941705209842193528167681609768707370082396467383340886264182516116688918260032152879297384677740239191186211295276547654566533088401336062216925420039434790883959789361794696687163515744320714928499958147299572317469759004463850771768624625945717057354661619522726556400530056993194209940296567096748761863793727002729532163086564455308402508189578727451372346884158781540507678060334407077179394154307087614602514305066816845293473577435129032104521484319464277965156183086187089517635537941577516042921705326186506119691420865509230779311212451528376873098729265099549009129208759440442692245800796465873986155017147921337851510446662983499096552490429393681755407047097664680246993680761983979321213090678538211446628665217714346055729457217657456743733132194851983904845018806505327985195513274299701945892252818984462846654170048628252642487424864638765317289630597952512949329210625212619715298934360873961122799792500047741378580010123160495856583933292330336563085143880006582260817538238999941900898462742015974049984277355064506251507377851503340651096770616234235387616455960882844462440885188287405175750109879676645170843178339787662202542943542061988243798497277738170186718450576596429450810672605694576123284155618783895321702370553820299237819030476927426890828891487781147621189037171234164934522066710191608804731693125790878088923366497800945868846869543832129781269592364016640864303569742839733283130539687776840298946921957788405274142982622018644957291915709657038502618009056088012502521150036541958046053096929861366415307550761531670934706624551200031400798614490172895555044545061714456285947403732586754428447272653170877341599774899881981298941698074353772855443655281269503822478778907659886668160478506184109929644933684437322333288247103097791101214287570512884572345162694588815385182958801000603573673106470764440349277658350366616008759411449632299653170820713060863897876488614064452217156520929603692494150403774206678560347840818255318777686504873195767278934504684986457940300959573093644595602794400413375389991060444070642312535375735732838710603136907822907687701581368136425692534448981597717765039351929325569133323715038379915310836344410319555012260909361433722969059991129104405322673990532758078325584693371479284046355857589038448314658912335124940669429494993932151364133844119968972491195495692364263395429976253099063192578080425788175414724786825817159422662207637379309542730080391107975463573833736574301237898781895644076767651376387940905050367419073310529833162797806144111674372754313047444196093838231078002545056374633404629775535899506896113425236541496137967768053243517410484323212571005085049263885992280823471479722108341487483718333536252420632600412299008917455903946735507136404048813592397433828884428206379594537700650223534103896366973499536500934825330021599071578568292494842461387918977386915595992562468992809550663814224157133946758138114737525930311738751708771662650447511057967004961146219827370359297054806887908248785540796087362884248093921496602950497265550384004263898703429142696703501915195022078028284059304072006614538125700403377015841219734845307102793723056233475031332306677927550660803322293787405336314472618142203555987601286924315789082013650935492916286709635322856575173715348173245025761815382037815827123748809917478980005252324847766781314755409830871324132514326379919246043325816968840862109056783190481129667265463339377379102867668354855954349132989126679633636551383238076792676631073060731765648859847891832191250966339655766658322874940293974035451816189448074977869793096519007929126516829793339112866401692640801526686332168182042747834146456837054301569193062034522713158205890936024188832107201761331200272893439167078182013719582632259675909959086337721153782994374012053283149070110842857204069532110790437237106731272975848522404601848423373539213156442062328061234884973010602481364707425282041073396616209445428443533776071224383595153587694813487133249072204484532220022196340292959907544650661299798351148886296501573044788204041343649297649714811398371178643698255752383175640449338759108093437884045267241896853495406991915402733716932760986237517326087355251540080481008235335401451026551621907581267009045849453815941046879002016274132482944133593231722967305260520794433679663689654411734054652939659716218651046870839662142906870715124406704957787415996167063630629787121332091873442438163161767109287255020410873718453416529587802875675779804768959754204462330360171294876160751567308776527733328686706980448737238649766096372412090914803626275916569581809003705268447626565019072275477507256067937329280764929338977475640434633890192486243569549788094336718161749466229667909147435172536189780370756094174538675812181354184531036389990213131842928660971570085175068391278731872068060846488718623111223561304837273473014426095735143048953621179674028206502230198411100754281425033893751070851617269272089133436883315826995986478615175836499967331972648146238316550601718907596701794794909119804235633174104297506506769255030011707055006536886255430967407196048672383335937058097022933226944626070849406854109132910847025601388632219306861592621659709231497150187786102737692021133468317215082526378675312262208821889007971108387406703448316115352140947436299734805246239591225403091146393127481205122162971266831844797804221119766207777357959808149487908529676206623935864695941300976925480567808789891239633943866406590723577044570009477761959158747773654406202679769073905517221586610639177769798794366928758441044448176361601913384007765693806737599955898319770140917142382952079903037679931076033255784087884262784015278946432412515938481411015399327284341117676755794828810062395065877619552184028193837502453266753051777202910544667538610231997521726184613336241091816911134945272036625722146971442795354340825525611301476731047876479580750771503084079818737681621222214420976284467157705096231860619395661851713122189352139239555476964178769265019227437276255597327826250170408612904513022653285334440931541158466146622760867899902268310939389433318100633090397700728498443836405364985317170896616648108699016145940978238728752872277007164903894161957492385486841942887843428609604761219081114425974098924218878632586629855355243537975045294865969639470949784925900479871867951668017848857088019355822523738966030002954847619016943219598112079156122081935832984877888517027906202107295090022340608183910452750483059642131759068179787954976364291956895811369849674182054532848065496447098919287360902225944146880914133659938031145913507527411814751418335611278359445887285959212208718834527090822178031764936352944567234987518013530709800067692555030002230688567032061942800158769071569695604340814195766063629388790075365847819432844573575440352136720449586504663555445845392724967937073499143270289674563396650749843487125573778301839976638413515682135438253819628161320058748399832773093502706388224371586376934687493882269885461198098722998940500497298910635205046537027050334212007543075196503569640959898956628832357228484130316911526152079542826082443840259248136186877095005047075060428828894499253507093843125413255431850204338579694336051515566982704448630608279873478857421803409237346360455063889662101530394246530100956831902717953283410454364327875218711664008302830552190809320224285996708301843137075468669692767377955429897643842753713215416667597469116879811395530067884228656676923816301713364324727782506172154943202430867434814583027752902899676348478732112337419486223681104880316882133882342238409624641885414296797685604937736399247571837414094930935546419617711018834450255444094972419113616226841031976702241593549336262827462589024502118564029348748374339058496645062978597364209480991404136313306745989384946950147145881491682580707879355730061312652248120502864973628200990291145816930714328387777752870937693559431011388662760909055082739541839031072582169467871135615208883011651031914161326020331877163765800435336178391917297350110334120364171754453102327093682093002777992309945656658639847873991664713520914626906508742571001848421018995330570366391853777874868046036577784923695831497913556543923850606876549061926570754189123650980423028193176721853819423156994967164961749283395909565799784920179342111106890152719785719019503451953771522906155835388178198528963646178754194125639696652426171662384436327081526609599698434573932278811753031621130193765170389463171003350525774127791104333775681114343947465728909795986208867781020916259485253979909738085530964218707073316083088416694247263986527442464849939816950391928947767154577938560214995044421363844475802922911111654518648852494250320540516686070768280393420144925921089797160667886104871010166300719059009889585364861774127524495583818006289950782744786269254496238898300056965087722206633759672243448935857317867745342931085566337143005009167053500848632674078828243663841430958637022576994959860943283410960308631085758362816065299324212140300673253430134852595296163132289257628168163783914615551004421881516070347618240970184430044468930900816412946985018205249823661409006744664470104623609217557455451791880163333926041859093186238773065330956306420312822833971406129417726621434897477213466804488148812760085261297021637987422388501384318754053348409197756108865825048992814662258463365898603125156658345665504246379443035102861832218289939347107808694136798107565402968690570864768449130676097922902809880866936665643833310941930775225657704591055901431108408850163319408874384720718480888474701645562843465690199245632997017400606557618366641569268357666665224129234682671762887577849824352548046308400860609355408032697418697842580136078553200014870177593365825036192071657965270062747794338369372054416791785749868490427233189166004105207913811552054479315792970667087439132171982114927913728551163384116403567199703998029311021767009170878807058668738934540995965774514221639877304545644385558887594748066077944334524532673924622549190697857289541183010623650402292346382590605478164803278405112008271341655838688181757431851952572493018453975930387899917823690233106414864551647875375650941294187509497870866349215697853699370150610037328312461007038072609889256287149255763898068294691811139249520357368384158361740713648348706114583094784458572709361619738388033267598105586796950195760884729375547566651131259277121265502352896748139038298247306163678052635522354210554349593981103012068370252495860461064337004624033686936308397257548968251082940042532839844668447792456088585281228431924560403677132913392657459961237953180757809082313571054619700740959379732207898771942976836057837275513506437227687176788406477876814642715510157368476559253670367672530523487231548385583604720610992128271799124751727057170726488904415314044313744304145790056879117837273372377168198848053634766128243609782019443185900968115126376718961013000186470484648312677932606772828787063069302876206101459777294297682107608594046429845720681676326094697992031598852352900098259789991068243980526261530612929802526908036006361151660123056761935345252444971503677007818499303193038041202752275243681759363807029942415234591679669361858433915465376951891350605775580226703743575839650629231877442771583164778615269873318849513046990321803196477710818999245660410447578302753308834121756257730584471671166130354614983594674220975711409576001068179008655268256280729461260595762783690633544800544655748429242916991861733958732992438829831583245049876023373590180851085771761514452251839183965968783620768754269256640633238415156233381652925386289493591887523684110571564557042747297497561386206677415542495505812365216193256678642526026643043051858062769967933945060012724826584995667086990497380177142346671616511618358883114753197814764514997500201025996947296015034068956427885889854418300892454227885902432872871624925817027118800393205707775753933676391363967939741413263789681125408385585385637270837822908238678398048260877766797987765869392079388128805380684764391288650058700980714158766303584393102266804256704800449826265185888968968352489356517190095629227904407151051607333001178288274393368542892730308064510666004107104565322069371058268386270007350976352380710857325129954232351919276763386446183386765535676471591385745584590785357394332713572985802718115909295761851993064320064693150376337760458055264729218058135118197460016442744034925996335833046991814900646892148841603271510270813519889707588056828392171094890651284020044623032862529642264870311055586953778515654288224120476863081163166087056545029502520560529134816637452616523560258502281066787680145483483525511844236788219355915806515135257745114422021029054293014113037481999941032058324603559119757237685146628601561352161772127786155695694685403931749351663653906705978219097598986212052386604753038604201156652942269011845805245912218693933684796866373747405190382776708754865210272909702470372880986748647872360382409798097169104326088075898064456320020611285849898489121505460361594260447444854519044288631102882588864057473726895854311018848047805349102175345009877051950608440954375374847170043581242279279869106393237558772983343901492219736557253419299630273785848010760102517437049569441127236641735196149260326965220282772050741160206937570790059742761912020278510916576190283880552470386392711520010992498649482807915574220077013711071872684775491102131414102109960432433530140044477888706222206149697497300508474936899453627067628372858183631115806514091664141073700958462543093940699877972958849917701600835856462887661377256320562298759990892975779306590096102718392713250278799469427973087587204585305164130145340406585345110179673280220007826991940898526180900234711217354554344736787045887862838095056719614255157509577024786105501845586485370220526803166166831589301287170710501355512384195061953855557924625418020840001680486429951838621471554018054779075745871078045385097482970164215976285551294761105792562417480702251227619163070535167979785380095264757373283801605323270193177359207653876554441097131707956420373907705961904948493481982484111024868039721387333361598805296879650942966823915021725334486125061124257170672292002502927810172866133169106445443310107688257405990364071572491358015269930766107161889137537748908398777445906383799887577856624754944372708647641335774932363450480698556792401204377742762856683258378510454931702480730698334926407751621597602347824076840740376391156676278735325751207918448317638384985303508061116046836853950873392590336568939152497974019950254539475621908605180968120854703486669385819425446044458919194940095136887163565186229575179113011087809268074756027274081872710327667185286372420146574692545809817583005417362861246869967998526890878915147560664068571369692403861245247198103642465765881613966903053474332542830238124996063445716748008069049632559525347014664572099543567366090360274795436136534105579411528379662074896836659951753292630146553059007825050345576875382188043289141707253241901326876588201967345791336130915683711246979109651594354597603017878793739459078569717469935656799226990936610378241651481040200467345266556072089616518940138937629017845390022437694204975987017274341836648782446628687918314740725349863959309866064454444082090760059095342332478589159001812465852672300618369947798283343346804443014819017565652506615250568168739301142019756334614770047306161858826328555328875355603791318202355207365038026146751526752273423239633087293899013039445823021475564587940028109168532888211292787880099537605063581954206200459310548564757868690712875305150649857245679489626607872593865962003963064910638839722072671892596145444114328788185824271496596560659928257015454041585628267883600894914606083532464466679167936416972599796339324202789145363742420443561585825494955556458409071730112913697314360160625603504394621297161280738579134578446126025196612563327300083217005074782861765295187995993033093418401059732154626119498150860474778036320637600761472374629239093037371609767626367830971259420842363896040565196638756693449514319014414965952533534591015452345108850944178890056194093689790598122536570393298360918107822845685826835926300426508089829702603069839322789060627527718140439507174643123209426470567418567128806690094312810411578409532033654431892343339647457497674401154614518390294164954520121375659301679375296728977457015453570934259220607580564406215926097848180193259516562760702196909839470655282853543415794882358307896659540620509839620348663717969301037750244543619108720232350519306236576900457596853609142073367709908332612709006892548286676138843365266714959621404916829662516876213000524910192132926738947925872032296293243298197725972488471292838696140164237657718611254302308791347972916587878228391247484394413440008771755726539198704950390819222643843837389409664523109428902000224843949865213967296289284786492442903470439019920155380610557264626591118612783475180649813705678294286336120447948060575286548097609026214582731976604300187756169480737577337868746289806359146395499845813048447332855318314486320523607374215847243739891924556397047868603081451796890514079053628581679576891993527755585176411516354898332916952349025321430294690595233813107713529551083007900282244321281926734372229539342335332143557756504166767490659122865132551136914244943001393717899311366718336219279258823973585612907871688573500241711643295613354198733795830181589861409886482795499540520991016815892957911102027622182892039316687189887292265014825326614098044527083505960414702862024993599996386193797621968996773353376440566193292991524205646098715901959839052101448752488244265485786442058832119210375714069194470435116694604840427766386928469404937972839540385254081708497863908632368093828088954095775960385682840523406169216006002978283838711290921089228986490352367025450617894683824870921542253972154807456044893921765794714605377124458510367566894574934325640750042362723613220238603669886531629797171422898479876366043874397408142261155935343739605765225103870153941965388481485845980391052076628235905581622160338210362263923613394799294494169313445705356926826429444795257724759940595004816947611587910199152325959922928270432080365113770023122011043534287420561545848918929399838115602196774971252924992987591175197885338860168079239150791860120612960918176139959077815779650499859580568073902293593638715195468581090784019283099387931436532017267827916725529142822535605274137182911153026983340503952079486969927313096737679713432078715383210981101039466142348094706345995761731108220999865121267507267134424428644353447198865840301141641061937401726134280031651570528058167756342587826161140492297595412163552986055519079851668334852559957745642863067522943472723005069588332036477914601261036099658849523761651666413716050609073029680992569388563719608054231822520847480296780607041040251510449446082095404734886156066514036502344284447886646359465668569145503080757679381924160386780230269015793702547821462898337227581015797277124526128619773683366774366758724716851435598275360665106255708272656332614618669061647757584946227312465193636791606897151152518743279194025633756021469876716971226695539461319530874773304193933561760364925663963102294958699230364111752562072101165872224692771935080333858196915492782621020753901842572525475527431292089797670653243768196127078609687246101651634668325491856098954144897187985634383476037281312407828528666290802602513887037329354833433387518610457529645524318211242556482615349444919152123971788888584780866835280165252719093774871364452436520018818887929983902303181531542321045958010616050836123655799231419998688881481792079849731416199119857428943754173943829464250331087395526421838338785109484981410119147837840376834647137894849152197612263744240399939622959977781580521589721036789574236081030944481270954792576502525491350094665763907402063493881949153729975220589825284024617566609549811316075410321563792202881607598200936346064630837104299570855059105343853224739325555043411936898964970914296265952239319131116909248360690959616340193611613098434761385523551371288317791599313449426935457187351421643851234391113604461148108391769248374372594704058102054620997287702219206495647545333748831303866321501986928866336964422449183371166340562294308968782775248263603909922546682080594944849289802952566441329560479491401637368858381926962009178109801196620014611337635217114094732895724989353820413806776452806958759403592212619571097448606876033137678958033062050892790486317480366269425715628453661605303998020932277142209368485612257637046320989263022337328895992391912783325530741695190268480243870941774875136282835826399616757840172680710459645147100216815376618556229784224953340736726691051286271582942272770308874343186220202392268858474077734711249468541133472295595578342464347123903877861704353706691832517668685288020773503635115143498245575923181466830840218074462897465937751626310401529297105125607331414400447956727604697987201278950395490125397604135219518574116439449176320478431617195854700166827815640403541718515519221434903914095833562334302423944553517942246922280609836161188218953427226188577863420747563598058679781015352629691056598158387235352857213479228144007444322249094061213794896874681468054302472870966360706438232824022043504522576763933842850840407570104853374165369320492037120655238213508312507238518465488277173902834405300869208291855120857152617955908181521576243438294003234307023908640756007115333920216640273461303972829704999427870243258301088863342234420900433624025481220951836987710242467705278448377685248502625200751420234836707202946301144725181760169347386491616033324435529457078949505667982393062330569958748989587827968671549710021098001929959030457276629645639511603269802682962262768098208165702890145027449585793593993893191365977036484532122570705501035456627258323934051962216413465926955882915117433833035224804220979375845617928239437901233998871071729604094250464242460205970678524401625389714046008171645886989233942600307953593887267632936810179529590381549416869509237602609425109046240496788313428948370023150552479008980717466677714756646487237955704671758205099690793403864155511497934439625498611423041881896551121396635653196911412706069294481081216919754682281273311876134663890554921516303099542069931051329888317997892183067718392011502464421532699831865993618426662938716614120566968228340056755734009832918629778066389997912229224907572991372898857897059594582404961703116088349906040738137597464799376893956924472951933782782343384129947293480755118570048383913581595924158302256143472960142864210512633254464073033272973599843971438950257806802072254441250768959401445898600424389958079762335656993779997624551053480611104145740434848055759403750904649588093062834224747769802225057243058260091457132080622507772790469561892631742044052312146464471196720293270570538658952380879267400597477335545488016908241587120418945810227002067613077823832808025707375456432350583699450804575779721876305524509022737419329186079239357878639006775895477437628721533474897763282093971482904867800574202838888937276718578848801442579997661057725093403503199537969566303284711631999311678492243640727495929940145473022886412184229503092784704443551809602086052485508582061391242983999421820477557091572301469964967988011814241616286091081041119101525970217194900978408752060502349868752791261601062301410847453523322404996029220082762696490144638600108195800276060581524156095784164063184880250305588031511580896308148002741132346352766952554062804979885736859241190223636170105927975975911559799997773338267217297404115284629699565976041263544058235791408656902599998904661283019254242726092873602912278143423240339284770069030977535892657787490262994909968655593152918424712300324017137361389884276417693433089822013978717006219786440578281116708782841499789716896589908645989665099696642875213920785016860340673631704370417950734442342973015168016287957509702754084225120325163817207385247457620644421380475548720893210793686647445049583227954265428401196795709452598438063752724039740929518370917838748208444798527447231703282178534932586502290863499829459369142594334304792289105745693364227345324549645820726911738977700397409268328057441058907071646206677559580731921401508398340751582030328960712457811942569661452485907260299314028798680044919126113743983551021544248439609848589507046265326335398207591058877849322541536898105461146215147710841218938636634169742269047185370412960180601758438346934652337021849345908979422056252360555686564555423708786836026725503440055894255418885358827672969930983265058974386238235032381628632672040415577302436156457050130225832793309882791541458534440052996650293596332349081757137924918579607368704334348302134922838688778411764177473440433608386658167535949834333595171474235164508577093758657252106418489626416972923118915767642437696513731124037585880439494803234484711247181546451361951950616388599615263838259984866335852420697319355161876287721510237714904385361151768338757654345201221079196633799534424337073153557044070180187423753810821418614684960911970696815626138346840990409659746760576985263869900642270010195829929356988971999929576789764781354896327258286414090273409075906243018579144462421880579030781271158757283952468713214365688427249563931633402622553184405005743767776658238090942347312321864461253648905483446200622430021506597375660332794037398021622818482111410327086529838778640063848262976829815206685462535365340241699354316453858693956566069319690338680946380832996901343283981304160453621315645900880167154494158885053038238809388163228017854640837976595037280058651647648295963450850999091199123773075053037159161276853499105256716286765981350632605493143169358341340506358660735640716610219407184211187717817991206381245747507182833880439597898183538021509530322643989424639342793763127542760959580538747686585419079207494366484163552274832777594860721541055757566420394492208552784132699047634838606921636254958224084152950797199523337191323847881333011483072534339942652934357503927530558238548954435685290595827746596985444377100304425188316516153188425361423645117680902882829301409226196570991118634475790470923163766068302313914072642157864974947534299606149531737278716294540650351165670318775503271028954308381853204949804714113460811495612411496388169760351319256870455537736396240312937713927099688460065235184193665862800799939294626553006196645588301239062441035342790240971639993630976446354151237884126262428648808457138967566440379166535838664024582050047392637297011614396356176011187037261810985457775974005223006657347159907732988713553448161027667285491503649277645252956521478662327856645364204100491879453024103783976969283843119047182402498030599574079937032020547209420793087872383680666023983339877401995979619627886206595459938799616541490862583340016801051164739935721998465980210232516763858858776312848148345779441075902475761018487302943741584526616777378616851210061112733223630386904295358666546894762293814488819249184906289989720545812534767511456778932709395638234749217666496958447778421338825092151922608925067994543319338515047331256650517567662636593655921068901681338903020667625121819348917312373247024244687309409668500615017961041829406788062324286648713609372492790708145702596982804158563300821451682244820330253953656714390375887305294374158717036939895953021226606565925209829504498725263735544997127139490348432848795236847033807081862971761590664058160871346185011320325701725060015346932606598458805376288309833630159575015733115462976673290293995771615966504902769924869164568756238219817975166310842858411581222616864188468378593725144486342366868185443749739638945322796460707468184416490639559652043439433530990817914957378210779023425826737496936519618074904712899566153098430293193621299828923359275643098943911837741245113785292964188342884223522926664362448302724146525730536829055166389491617843434571624773018426551729794964683488630710956729267163089100026195935081656771525398238633893944026189803693973087417027322258345317796655872681176988802126421116462569718350903042647684808741840694648565934739237116038924458345793962597524579884345580328080945508961386411551333383070601092706489337008514640775451210604147512224286779030100292453591879378383225571982907824043519668715933436003696249599063756975566602782817237105904678583173646071537461344217519625690651685111689445205682945850582807228429752202729934405551838332377962112841121406105710240699234989609848980350784191483602750673238260184343469927037351718315421570904670787837575451003304437200610760835004251078338438643706539219928708418461893647866837644312919631770269286820964791088338857665682517550807088547088323943098297809770535842050185146726681129615452505671339122263633572684402094793687079074426978498993612643729195417196133469832440901815940754676258681598461947788906270388938608169271392616676447240162180841337626808244151216999067777199476798785131372902447253347361287114919471556709429503830142204831496294458592241278457518320190295641939210074066535027207355963939072124078438734684604724502744741635225165902025687237932806465445687576934508976010805770178001577207373670724450820031786283726676530812118616792745386089702456874624062428230981643857210900608880256893013474829316300817385747767600196714417437497133082767432244774925757057777755175053011200377230742160137635944788173405340694557724448867486812358905368794541803380419754683920042400018295852282386370447575611095593350131636315797712342722101062139925502706342068418550677072878312379221911991735763338977960238222620049483716809944164814124886205274460396667347799433656882509806108099134636766081696690939211043726679460034200546954228052602263408120842616168071467245564535210338166450637486605743695733360051004082069213391593428604007969677906228213029077691712073096486799077326831121565200309062882235529567915794965442186470214141278244495994635553364016064324823352927210509865142736631617436262154598967881813102400635008889713761915092301629473814788352307182334130776995037218115267731303086386362449507968782293957688855987901320390630366034274238959184623383202104366006965939604732700392381443860068378947231240721266109728913848017308662526277856772907104965309670412657677275146862386434937625431825355511303843468720713013696589122054699002628530240311660333557876008205213751635828543256964511765177177883474957511659331795141460176236828663301172073900648431534771094204855066966214800384410885346697178064562106024744882236126530709494886083804588574875600373576652987358880662605500063105780449312278157702604816884978076115504222188104408768797791520855455404831842933042251892473343134391610563408900297408087911801055643999395721080560673594932223125575203598014797816940838083955499133532867688027128727759512585322353990446623892697839053492841769323303836169228089094734592670462397632557041794715011159919895937004851295136626111513589093309549447204340622246691309856004005062813365173130590209824385657492910797219423482507251611514784928602292182276522265947244997817222492483895429847778494630166702977729982078298093701633603199539994550168737556234120017918720517115853069530021286735091137853892605000947556201373431190244222385427553614888914908769475136035298807403162066825084316188184883512804539448365315905460677720975705474439312171274366126882509841636720538287540934593190096484814291092823420268797139430916483719823411675647055480858965044554070588857042536652517402726350374882658650263266511189436349922723132026071883488542012799994464746611784714147721111523585522083963737286868620803366058184022217640055947746163016870341042762645867723362170388124525833163614865516309715732304186727580767104266723086477488675385062362358150888798649434125959294295402441393092025854093425721994278735382605013794042825306123380864761377503141253779474369847457397701952182099652727864542617565966384198184571820449434079543531225587305111548007973736306172003012526096442500329078651300431840680541354450326763160344839586394469004938261793307787925473391715500193857047478388719004042618741583631593048757554646953007074383065487202289378224510638153738738676898816046532791353841055041614282552624933031184220822307935435412181402108661679056533222694788707498115023664423345030010506944291237998111574863124218443093621810686232415985766671076481060096521960817540327555262813888664607784909621298756395332677686682747914997573723341411534144147444328341952638269389952125357095922791368894106622758787315348289136565769126876827986382234011144173190888481023266227118177068226542213028768731342306904866937731927622738912244773553326042707682120154633428844930436148803625252182496121280556577156094972022612378731886743675972706840152702951878898853668649543370343162594287657971779909660170243318322160989983314888769125895150004403875462018287104441321674769715802534928944330465643574778485588424904276179531231045333096499142207356423862561610192967050740398757442571371465695278295124294020002585457720275688597364180227032281606688174441115660483110348878159989146109454823076780495078091987329514479428636033883572877417361387301274974261243841904767886923362299937155649649396742670836729540551459139550079307242636816402349741892430104816203403176089185034357903627159077293858475464035089830273964701806331210105614487252109362642300273877673830499306759991763672166820608176518017853865224954274936117182609206395673319493628778950200143275580992716240956757247663884922612376897187844997491689921561400391911215117998967529463741835370241089710949460261575904952503366014121626309219941062599234881759483856322877877279126619549226327054044992789821459166670667144393653189099216597870228759158455462432019170963214829388897146014444257005403268422716510454968587423931384199374962501486484435703768151755614772668081824589851464623306127921252503208314593555044646755497595175373938674808865813934513514245851209264904913574957521891767395044815532244407065016377637861385515900784723514514983616572519542731307357923394855242630699642717637082701773108929725376925843370854985076650529451319859357304880387377668839363539689946590353282114381486234139065940524265846299714001633260087790447426054481083636291108960239594543108613369916609867506437974327657064455905820004857530153783579461959961037880089993280264386444711333867646841348309287774868825649156508419130677332686974635382955466354351230551752661006932966868114291692546868116494398635233584942202336222217030823561073517876626769745878759073443781712106320443134215613420652859393670408565603395441461844261664953203590089039794877026917164315619520910607925484958280490278234257255025680608559195240400096177171380133401125007345608077110581218188271198070512695119614002254139797573414549652490712651955438363711670218757002683341810903208163181673044166862609655623911570470060771651795290591992572961259775605862088343186805799337387556633494286327885397388244774125237410619997355414104986069359293678886613788571712244205942633631223368280219946782050327987695464536140860494189193339583943257928821993110094116090308803688760976048899574457245825241990471512857848075404654846619407949350057187875166533420522089351121112165549608996501800117965889404902871586835553109722134455145533240806397876780271607201788069628691969262251749892847909267251839074290463658066403018261326800968263041248461243101484099180144949865944615606047409605662204415278562274351780948449299336364513661647122261074911110927770045358785057014612127230633865281893267064060929795901287788322632259948380966305090529322659083148211972026571797092532569634394113392131353877418143392491056085455374972017517469872412441005436941036916405209250999360213241793304798802132186341629139299909527196451475282858471811055859491998363085055373486322750690253989939143603933840376998135111198038825101290423412058026347773910681802280844804942768084379235100095093635632076217886578236821451697675058598732594591426141608276541241388550237265939478221852449208171603459677306324335844896788412650493634044547979834805773244651601622084476876810420180950060600484595637414253963640417095536034752498572316369877323877771670727138535807733685679384775036301929824168683640536114931143390250228245999691225771157037535975723907608609978447333477299219107364530186988938618924491141165855227854913033904253100528688429211589238579107976372717057470928035284270222849881815092092406408760920817305614757553616788881808430867187763811577946140902166942589688842839398792125854579899451239154800263078267827869310306279928938908568719331774150197588062027715469242996070505774207790284025723438661314276499866026897414670714138606056130995644855311900460166707170953228004201345598414584585274471938707293856447266099437935725586341214244509734926008646900326754264525482803508227837688485540767736395402610828468065935085513551714552411037134464266856839713799974805949930339619121963117887448344205539009323763858897433672216876369045034491093642538106587653548603888482430211553508622622519595204561187557832606916116765555562473799783744552781149819200449279428761768949532671204098269775417604024124463097469545714189857074887256977764679278710408393033551439230369144705925197458596896094289200688554809395825118457335783033843834385363297210717985287718230728671921664033465741461996790839000500468766449147288424869129251102236106643886193950681744668385488443213163676903268449044123323227006422920817769580100424317924532495280915627137375945197563905151701411704184369603348341930726087330967761405239770921726750174448764134750627413479883050215969943346094524266667389934636772447400304572056217388345382694384472130777360532783818841016667696969362200013526331641680424973362798583228302052138504480401564828191064005453986818070252181987318930386493065075792066394271404516100239909925385309990444248998776516454555605926300863120662940824080150175938629963903851873088323534406958088525604654018883814781191667860835439659062607123548230267159597117150948356999513603559203037056892828932724202297282277227595291629091412958126158768328395284477602392319045810461803148778365910926135109716980665621378129051059279084826866172818440780284669021551196713375961396679821450229075048362274271072437039567940236351664058998581192399308050877830381924547378454689319072184559519824066151316745446667459118553317596252061592388725507556978681393880943884061679380734160473393445298591684408155588689129684422984789573753395604620910869521572317542921702698816461010355058652943728937907088268077521599668977281458482808603276668344873943370324643122391426751813967592677884603004774675168435127774662922339149898312109388210541677366162804685696954230454291314065391794026738383710770378604511197721524761814886677705495811568297636168642811631648717621034675590066962842686199787731677990053878777725110999895288977288598709521615306662625049023941728738431502173298180207414993343383605790238281253777301103352646233227206593777269307163920323187508847079413919861264738348833101648753571068344013713670842346797490495413594758808341093471933090387792335835574477050156214118252255253999680528057634011906216952957081708184706305444676436716430871320439663481014808702102785979734039700525736000397001950060655465461438593400331829027979007446701933498175476261762632409192698380717311444487020869175075474137423305208503853766293695950186648760016449782906284373904559369588291526623957242983857431681261995068257158305545977407123844098448517924264011634123878408702504771802168112152315215507767045073930588820537072084257459608913212139722267615037234863721539062474189162548699528116947113263486458989472704205372929945972906045262311703725399636591994132967246950506348010960666401815769768861307444499059053979087232619130531945206923712281176968136303298973533357207062920210117927775189268811166389927900666762173490517031362680362138237265602904374178953288538460544643264136061885704952182499318100110475052535036053662300665670920143815842673490070700430704483663203630593406254020883579572650712960885158269811775705461780809581801825832943911388734999380584554392268105708782736158592444791847184645868968089496522444102514443469597035109035585743079823850938003968063989255742623576124861665266919062872249604033749827592240402646567835268946753551813572134206458833040519314837806233690307017789868157404348567706578989049770156220018681910528455517774033577800974555126740567722638332823652277537756527507163424644770510844782533713125796785495059610845497175936178673090104127604593765095708090669662220370749646513738763240773774102684646945260604988858020989602855013413478130158428429788328707478547656973231599749576152350185346147243800993356713053489031679727716779379677809921627400536404179649919875815792372787139311664221228601936796839598242420192928743269825292171333015883944272515025491566128657752355224657835685825419742710849784531602845993641420435188640619508019325527734797765553140117693668594510891991337880418625569233684997247491580876487334950048338737781881307070459902829683179230014413539553672771372194518553004905283447003795442275572229413882613163974524307189201945810831550257053566732448844077198478957015912408687705669605832720351135423097796280319852252518352320504721904633502271034914359367460207953599928757213262674480347340771446726551946611158154070010671394489665243322891457652303028971205050451146406209495060838353072334916801522304883144243846604050855635081090072066373537817065113878788772752000904285957149311427722905529146797356972254309749773820220392135359076891600156062637665617902390937324830915607143119471190160577888997480694401121465923634108258113944934267444265830849977886925824657214350502072204060791487006656570616967022556147355131730097020965568366515291628944523502285109619373175165050650754350136368125094764737802510238708720738355816085370586360927525508099920306802242276716280889210999366841770740638642578089058153109417416356681633963042607284260699251750185484457955473836827616291330747242010323641996783515088413635487687755774236534003241070031555664712406735798816750508024084860663228070463315044444314923902179304938479021195945712984991642063572475558549163633483836806081388192623150880396738468976338976265009474414647381242162364178249937526164083981869301523882907753887982134918225507447136639836383131558929622786128308870833121509873912704092505960117919996688058886796967153772959898117962033014344259935430886729617437446448558278559968373602783663817419026257042179641670778579170721843033517126751676260462442877182793962863096859342318958101055556755077929104999433385131820490216194915640272184680728942154145456106476025627309758131142075727463625147296860982571986880393069357866689263603025088460628330643304264273099153911959700957148476348905136255115609762750531487540728291979825486858669468011291363155276799833237281106172912517953241898863936209046880837443353780126050556472594489246354396240519362058082579208849810955971879958578460324265057048664104977027770801471669456895375416184696896726257800880207957806924275962803756580211644113443553859397333035651511758944455355817393983614368485784385283582408221429370772321059190023826454662100360653652483302135840747302223795201781470622818469394957801380688331500766360059493317756047022143948198096365824131413667441426414249874432879069871017205029679503954750189798822234611258657014569353492828664646716797350816599850459626171065579793587021381030423156395220516006225294889324994642615572121046149065788824168396192236855459147891021997543348930745815258800237829638404814670794386304176174413862485744753498262877350327266280729410159390903955581349623334194431131678963325271702978861866418508423906063453558991377678323000646265511709986799786972797967692164045716920382933889628574963009296273119401062278030669946690902792176955809492950669725172836233153758421670649708974794417124737934491462803408764674205357557932054657301775336984983700067827043368246283854663240037625223850664315725915137118885873693665518362833029686736015746218105595457697072106790416824280784295634668958929024141677586783937788794934185838949391696351981668460985291561146435406422435050147211136595868128910380135242971376142271624109620793035453892816562280147582008633168330692563183738241626691753545541781759173277185913361476698034342184415074037083124795620989948262581168133420763454088006472855943943504766246354119789300607819957221570509960871419319444238995274203242172057179526007103430822267675196967527690811020875832995698295603324823967253666378361990729948583092294663388473467682842204901434184633189208566059872710034359721002748793402045470075098426251753902171874970618154383637930619229908181656576420976752619827336842911931174891333074069361024664743421426620362714644957017610770834854008538068808900240936467413579276902645409173338774794183818997502847821815044850002882304629594574757238731779708905540053369943583451577652227012352520318485526151844195262136270612105486307936855332779651222763942858510379744379625195078515247810292901071176390160897966397630051083998979271191757368587134868098254277981371748521228470833823147497345760373523593197587133350009112998417919986776281551618827366490142260295368984267054384373192012447473019903220361480735296754860886670563777374016180524532922104388001808457486279984316661863419156474065026041810358106156513654496207657176695089895940371452977708964106311821815524980999846453278772631679360603605447523345060972916231172776475935610636932768735665698168527799140007863471289105710126545820006143578838635701736472162267856976920642648166094177863445719169913426603910023527878428384611720136612232635200251905461148271988018394351621622957994904934687544867916758051457239380465282951328619005811941792272422966157796122568944583095265213216438911436215303296604765765797961164275979762621532185828965739029809128216028964470171849877661652921404155673394038234796061183443210583436517777194231417398656619324692129371223550878311826773583112813954330240818590753678888274083719091687912706954387187588547785056827980089190825590537076034799521474738308053561810170097666365584336758348809825280013920777826096638903366707146884786067802844952829225908491946572794251084616052642633659779689374250542539838429130244081261084368807523132188007819692498640540197269556952491492988954589745526793427501115069326131751283389890905058536660129544482629014355708556870921657811770630634854818163514940847285594944221711212549259749648859305910456013024789884118939019183179263889612873388054928605751542898589020719893161025734309711219747998478809004035221118160301710169131309025171954338863243611421424046807330088747791436144859717557471953302174756760009288426666341907736773208729349140024569011220374367761223758879428162297017246939457911238436343859258737734677241951319994337544539845101149748962853774070906675943225552519536254680501162101140000683679376545124171629638798959357957956164789858752737817913449370652291773340952612227261989677573096569301033147362588520360522052266912577925801785381914329402239352283310826626049883221209494207225731114862943034620385581426929428685995842943116017617498663374711641033787297672029780383780624386710238437576062605732545537450736735294777907990664786564592039582404713626619468067832153381655738767907048354680883587324741035115944971361191205501315649592658219468960126250501624933460985692370161446990495697326242473422293153169962077891782048808130784852666379563195809995378049274906102400777567915097884587291952733209912939141201431297938194205594588143973808497858386274329257222428516103701638459542437225758902708451061099733604322831401720816488915198223435716986335405043947928774185218364508942502879842573166123832679404095964869023159577107764048616412599056401770650101734588608586832851342265937688521988101283406920314933169697060071410380781916239330345605197761315498282120141345900691239856351890519896006141771242123597845121808776858317781310584559775672319403844761329080185161345184344560441928393761032828129666266781289694519079844336041310106883819196616212703839835341315916916163908061477276574081047287004621703771060198396397007983291678876307949906137152916724797280192469229988875927730553590740371314200049429854744858302600268534539991549080777643598256563354995134404883001140554336552733087560617370177550154249491050877081196208611626313789818225182189502215199843400173337938428310711159543302387856884010120749695955275189471259201578236679599156998669490944724810518999703314834154135232929400737462536643747386759950789583734258410688027676190879696178141646125888656031993543363359621399895250513132968021129805497208924801785924037126249150543260729634154214129098230900982390632643186890851200220736527957439991982406572843829034926195001440858460867997303141036497032073615101033469712790087914579873515989840137612166384991291014559509640214953863880563427905448212876850036513410911448795361724468859330809163762853265103159690844208886199215862366361823378245657408231150461521924127246811862438425661120348222918410452561867548574670217961846181111242046824943602205617307596335456357805336506511170838273234793921692034407850719086994224371242613775940612016416142662436168983943447961837489141342315385213072814668775642064083015549106660279925549626790821454324691575499521498685610040664879825941698845726368400282247366837228898695104463964876437856963318043923543210425871546639758258446152327411299910514055680069833160354787641929247821379738862091642819200220948970555009102619784343649379485782219399660446447349512392126399832457886954329131465646055713396053468418189689625673103281167754103780196172354412808496841473893477049464303765670416324014678435746640529633386033782712845197683728686397296987007119309231267343692252061275821968558125706858081336545187641940039913746895516338157128097944984695213969796944326784803912337555690256611106831367322261887135078963750640845906001061806358552323743460974616922129920129545863739439349967035394101727604405983985109618262821433645067390631065496757694006209597756633830153487721530960600035115035764097631316339136508252297736827560283619308331775851094326094211617378714708867655190224899399516708285947292939355013551084320346025441386889474501263895035175231402919076851127181708860559600196013540279955492730102988485738367290187244770594666956609200311552800757339682948424256979752165577427290834847084814614725755095510058027427903908299934172249370481127009340837539428531937895890418937129949634639116550835783114631208308494538940396088481916238640282943146171799718360060324867292428388049087371725893724544162086388318796828615009603717680348801831725150101142938604239634213816496668504134019169967497069440799200436809151760892535310417751959417534492400111813799736385512209301220211708202878480694129497572359571843924540122398013763338428349538449887493003382356709491110861136902008703895297122837004177944863733279968987603629885511851735795390074300989423067544590897072162347271189041105107635935249303363079718999114532040814183202229513917672712689215102048069778225573590448232779393618775004977397284197971841066445915939529212664180331222542605138971252013507953590851084378182263389254340980546723802041786985014379815971885371620901827676163919424368621555533195146810679269871343495287332880418409059701951482675920611080094705262699230874951758815816316969478899512332949414490647977040699289139189516838802011629117872429345940659056436878203824646614655259281588070515119725228624889870552091769804871733809089389515773314663555363972989467339134735183310695526101982090939605191351470042941763959832972090957688501091874025551991698215334245869209505270251395197566291094003267939232679720561424103181295028536010165479014126841571609948879627411348630367434845164158706692503909652860213687340768898747973485597805619212827429827391084620353636679203509953705732232896848705554901124049897625977998340824794492138968691319214306769414470935376033557727264187475909444606001494677984303023003993035656464565913297627449738743619782975931827027943325178241946287826422842710607792133914197738748923776295321670592304793073953928190369034739691535682072462729728991716071683943425996791458188167949646514254052926603244494294219342751697406460867899053806609971576776082319339309302219491535395644640214592466829171495308701479160664161929445604318457395520409711727196593883701764732462776570751452089371602191497412913731676591637527961157843558423007567024797129481072441858538074752351007953247142633500085344633977328292675647936110521774854521452101398157715683073801745388500599004531323167619739444501703616917780056675314174320068412999126671764685362330123592947715401897952988998050024765963633605088366275696522550341994103036996238372785554665097967679537937915460728959569308453180008927201899325290033162672139530135921798461751862792887538908444973333535490322293649424279012293560851373374698010685621136751794050602103094101171262827903367943008891519975513210953615463623073258853383661062586831325360882222496744157035679817010587890509509263766926678858041359417671312249624652206997201885775813410186111952714486587171249245824519891654338713514401910968631713216059589760791541267531543821127882922401754635136883424446136966539091110975172509767571799623216764854285344957180813546741154763515397146660255445969421177165585542334614711505647970488029927818727006174319771916004837767039436466012815668102277273718592696650285643532433232405150569155369153627599524080578742331583017101279747669372242510467268353044163182998360108524088956566767962803082620705462865670081824448277696447241290045304703849337958924142649509950281777755760060677631225204594938133177941107686787372426930977383488303097225703973345631618856426454099163202235967980103692595851139986029489755147205076731887089890371088068108072699217665839662955149137671199529333176591155330122756227957479315813516907857727950078931898405795681174765174768050455282839483715277713215248303617000195233025545316029479117241925210103663773158443398965442231218571416155819845166555643357971753332876292360311692650638760972534343439792659727262873675324509302563017741763182757378953357749180021005200571318569086476531115102315507382052351835981914387549535408616919435277735220701202227384876912744640268052247925717230700997498076061722876376944634679615972757015725189237032800485437727984509016696766204600136947347477043720278364392760518360920727397143389254019746181811547974897811492363070980536134153051927202699854415469883921951620248797003729664092681101174782138123126721783012828832772579072938240508362539861650370698534358146745676218694122051343376693373487990468030082359758088360702213879721399909241121858504197679551924940761706057927854112599540808947384646181998444014826945672403546217592685056652873929538402202721403400541606774474485466618883262073032333071370920725213248558138558299925347033818981670838308707362877109109559820911542175610328917180199173703923161298799412879270881714970307725524988027457378115691396806993370950998109148343049418870735394531498553552683388343109412628705112326692268130152181774446788626616840895684865927439252217325204344713801292780655147037362697907194856687483022904211269623507936704787692690379137694718854869614351611568547140283552068051238423760872116164630320569093138064953883008029646699402014020545725881913799087899852827825132177136437405552645071329926340988687225048771644531173063279479968024771683325888550235269785476095337200445352883901250961906658309408284674839331991765551183859288677733145720104720910533330809748951978875374544873424441486324805265479613000480704051999962113021360106191582078674649255877129266324299837229476029643540258348115003554876065311577155170862022665708498884149980001720858708316784781169397930840519703487596542491839320073232901970976840825946866536626076250088861671148985894386599142216112450147982743471794807551175057565470155935794898107523891889384499718034034199342261054490108741046033836602707784523481393422240530404194667875422910734492900497151860634046581457675460781775273296853230612876034676364637795438110508971545514807286183536953822619389912045294651545250213295744140992871892567749009939057311112016860671425812827179132297385056790225444532992544586069957777673865603936275244548051948707001936746806906129217417479658811204498341631629541043020633709227936971501520885377258141630750746651600591213413309395939156328847544805343606362287721088459866577541838658607476160675107232450537984856174651781480348068725275759981277873491472394486178951544757052746049811123887571178564241907905763055548340012490994359088992300346294066888909010881461688441768422193607881965249336896627693064045472454377757024635880125507243087566685129528383913450899041888460686172954849599512669048656059444202605633447181702722416888676291866368088345283186294222588647234906173789475618065733136706887186057292244191873671372524136319930358256302586456434878332454489999775961048285606343566905481668604872210032174019908180525595515717154218570600473612193674115649910769669661419981736513164783415958242008969310819006404093609556464818449703471873720471549979405007074920101342418580554826100680334392590184141635895082807507606576173837279529809983845551401341055290789736011986521270774830406419292385646149758258364123866590372867284950780803344649003867516423919997535890958170513128954231904408268815670834211583757864995981824082716883189161003084360002252887695814726901952753443260589828265913950796451018426662570501767557748793625316298667100078419809125143173582114559234773002371977497123515145319203308716993950312263373046796487218479243011817228889109947483788386584743613781433863698423973075573594604737922342382119844228266470908696044870694207817693903554054783139608561705475371961038554289327439295135920330609902625338134044186247498654821800789119088622466251482235385128350516300182105332221036082680273437480648880557585947037482134781883246505297887608483600312758521638799816322901139210083786662205805011887893227524365457101765625496565191719615666804788893027113089655709099810471368235720669269602363332954181010610081358509335023905000919478814454460693156740607616114228504086264100653703160852191952998681515321761183013970496963262059145206064405032558849667856932152065216947205674186025102634533166524168500170747140174887199278974827984447946911094482245131592788251527515341207682741740842382483894545421760316369532538453601316241775334209202558592752970857804064925779468394838287262514152839117523638681861182785031171468656092672745335950989439984179912818571779606338765242768493719475782562980826394094809615702988374753700228645737055444986566212380442773865941951881612381606231729580158627116709916726713608122246128869467742112019244903846559760321461434748947890673720963987616882182908976321097423494738866053802103281558868904558990989049920600974929080605425603764767651767118551199351564843729897389880479001166627810254076953334229272517663044704834889085941559605133274619162810480806332607599661113844619642575193113439683119593559792164203407626983022842133352257663494054950458015998908527736598794524711510692101329789418343541358884507148186315402043247376066906094594164070347725473366305605872040768855863909882557099644746390967666426464361771379266127039695057806570934044709709297686703277366994673325561034567764073147230021163921652474117977047851676069359573964992796898030202314765223628713439141360277656101092152969926281629318392055958076453297838885731037519543840427671717555533728892262171102748121580807672971350887129780044174787934732888512306698226929788061865720549857809595788874163529535077427664406727519617497838886910114649372006610708264376593546921430053931656000331068693508051450296179683034184814324547262866193391566528971076396620723274915878406912518950874671625035331009633379696675746269311901803287882710051518307154878198303876031103089147308025998012174185364779802688752078187016506561894725378523842786748247172585534590157743440077682358933931029861674302323943970307748748958720417124737603152346291869437992044945939499447453035163416832991419348114624509320579117157982806041342275414698189386502814696787173874542768824591283906332451445416623720721973802950157031471134027419215160391337258231203242017471883728097204609558471320300318464503358628965380688614961285200286027446651432797774451108658539299944121878685372467762086117436758392502933513542083277856293308956486001961475911438770928289859331263482524301622203143284976272337260768761863798623043296476289203446410508553732047435318326908549459610944926520387807388392883516802515510395923126675453537153876112468512448640203097028631946778120012660393367322718239060240737512736743754700194452130378500121006393920551625873596752606361579301061475003751870117756840315247111427184035428800429508307366280284792197343294919305304522587453092676292261538479720316158802343741863730172038592953471812645735393576854392012819604813485692526350307150270660826695926319532633876697379959380059695734213632888952150660883926312066611110094686865147265545196510883507783064092517133248111715959046561553515397618593627256970535368386989690588706078576272318970381772952169828810100220402279484422520455100334398165720768618973213894961715747337047551913308650823100466734865846168752038095907732198811657911568283285384951827338522412495448794915071463474949939397362788929624731459176431786796188647677439229805197439922286530529948671162840321755201725762374117983898036033176127117258161457524723618753435460827646398583967523111362484392062971148059353688414850025490002852690128982509221838449532889886026143667254606167669786236755357211259888866830025660602211148720480402678132696115890807653623078202158692028096882897161606383001776565466118426283589075969801910180083507496818892130700684289786883418630195663785929811332434748052880133705970296285018292960583328588314603410450175087723915398551835098676586054387265344751273276983971219142492426906657038395229865461940535503567203953284491705306524753163065425658503232003616471683424006308228433934642157098461477524547231673807118909564404858697899546503964754752437627270636990364867437126142475492843981528443929799286737473623231994058731297536365632362666946019252530182329519734242856964242070265381605451887476481498575395618939756633558214551074530626604493672186078220776436445980164372714071923109679350542292215564946617517576393497447016672302567811381023257631294581358869378336404021383991901096251182254266493713236690086404135376444323798774727953516708637806299507896986731293606320716925932980375503843134384833733548306647936735235847453145887183879100026552567915250384468169600822396400003566136933301585309309993209913094175627288040009299662942663196919176655165230688492898213481279580126303502797376641278635214793129272751502218622507199176130654820998922988175932279696702834405891497552878492169353719485624433062026383386654052325609326445504889970739500739722922285461853683208460691702283550286939161051220267005205039470420202330115351044163137691061234965337831740488873893774583622790168492347577862652572585690913918877294850012774151198669551704116752938287296068824234289255706653610506264642774477684713959031278519288908918398636025194815572449019972830066629366089536624734618518581894534446239898075716913398995435106945996754306402190659986067051538567615594401433562450116411439379128994186104393466790631928072539838961721550597302288524028607577767779361366636781243097182047796820679571538658335399790129484571019501972322142911570130546853856688239336088426206659232777722111474442503424570807875775634665828588191993650519420327584509848103458711458494227622927963580110119806488837862574288438242458503626992226410357829062427259462043420780460932846708639785905221953051832740254384187015138415210631827067245699564581168410333768192949690818388337153201280930986493385540882790257857597163277508124201698402520219470026857230366464328973112101551241555401289039010170827983538836253226048422632048109603875314401113958117422868784274679772270940058842003215462515025385470970076310450575948012442108804193051078307132095064214953503183163514590279814396004457572677268107483393179389310850023516702642807815565062142212328343104762202367500140534081971176358512804876018615646595947243674761216430360992100971998350704952246770624773733336168871771868950380062492141536523395251838337879565410118083895050132650917282458497749721786181032013571435259238054814476532815922488938665251045464710395806029183799678013184983051472900771633465134808974003809904074849325687975577472602429720234403185640567752209009402515795877583928339445699192723648125026819238596383771594096726443409675098197450388603351794439441757920926943283787607607091363627244807803869856398742196744823640282003264032277739683254483874464102844697465430570677141911424141716348377741570904321676888869086413365089015267716042381854843032246501439944937991082311720802433977214040053346090881609905771270869033435085261513739018506438410777307736211443881202223858252313630511346556934872632444909628971260714115120097339929767104541752171651436396287635304648904292348471144535190490534941897348515932485863663207558122053561322981944144663580054757553733839362672440132143997376842552533482023897517232366349358736985324602220180762771205422316600280782540089666441489210842825501926601145241351048753956870419220076825857588573061988649341324634092963070860239868242768878152777830737979204632520934090459399608766475073345169758210707689891822821433290800458916145922293357041486000959391354760502045131414990072593809882089214704648245599044535210950278710539146150617511268938501057794213501888645132343227055203768937153134180038194492300120522656455080831182522456483557015516189341757046851332451063484422960903143025986812866496597005439451506409407975555990481880154761744050801005507079942859001676282445902861588637236793593455127898716727277439992230167251896894038959138871284628734950399743787624574814822248628412319882077747461710906632221379838463476022462204188954613591964660880278364965020989631323053623946344042417086732583747037665535107475527088098033539191661039686872242236613469287832139269267695044412090586192593772057270792795960689079089370944447375859789136020881743481986964636482503033355697784619306165772370697062486354505459274169820148705225233143495368390599990597325559593255417934463098043133275929228698154874442789117022164204036356146666436139164117040594403047143602519843111652330198094088735163301130557486786207678209000246124435753778894426968775426157228767435231140441012848886289578538828478185892093859473549764520422102546172839730964640652730463281162120567719321388101073720648823120424275578069615210509610652034430087177148262485551965939886199413964142575865704041914846985928485447388258278241943453093420779724063121825874221899076944518052687169373809700664176801937356857361830666726371196324115754502255088844368207862564869248987078546875362536471231073388987741202390942639008679051524633547046455169090471641086683307472562463575913679449355752382302279500150547227478345068854778770690348707257902032940763071970345605523629190755431452242052817958990022297588447984672894142758926053938736772666464469147652586195464227886682627164134065095476557479314612340376601524803714153901741272054712682311474280714441810207605952346597458639738565483826452792950324092997964794988899940353432619979149146218787579219455340195058244265475361928490723615228335849783511037562932067153623324164523317189146045648440105631954278880879235478960703087308221291783302584544641225213164389145894465827119268231655291527014644738517509943127430950580063647733976336962440559058590265287030134293645800856074526213237687905113634910855059514013284486715998170053340087601529140500479024817142409089875244479082236950762006091083179564355871252636312788632060562064418081434614300644778378681835859313386013778465719839103730102213677796163811053032990566460379391701054897486415940555342136838944474004427358866883593209539002271935982260557274394743594376183795094248715714596893547525975930374442691961490679941132906069061882357474983372278549404782577899072372647635110824694975435785671894433612468573176432160635640984302243655537247700401234257792476647251566320105375783138925456057289646271070260325693612035001024991405854193981595867997585794906271552094137995054427800861003863555275302108849136512062913308310848546112492745112208867572994287743928225674538602550564123982787824978149594420879945656057784896096818110986095872726943045711351892977775646354895354158303971447995171029509544977178578892333127210117886568530108300976485818571510897255392698260246918606464084077790442431350443762600673943783726935151032334640930022776969378202288334567045175469269376065795527822018318417887181101576420546747059984018876081031866420224061647269290458819134528992460237080935713748475279475578777261043814420540183321448998200581619120918774787384610329164913558871269755585502854846014423849398780761018585223927400470263311172485942588069147992295474003828261441701799925305989550761036474773249344351239429171118311163096587025223423054113942428432774331707300815365930160946423995970275958950939564230519322904241231521278748873689455294961791162489322303680004753583070016450314296547738978678442531586272600537597821872661334516178437643285701778350614080404055075950125962797211909824153501588367415920435091051527766862291022158030518837908556971167109982788120251391350447227587549506563394570193015311094787985171957539274100150922330779702707628561839393889272943809371498579080265983855453172299971846092292887337975304800768359866348765520262805305762514080353109479797325306927091713100671021810376381258065960073569769054775970927769768134169686479804564443637327942388870619698275026855410486757912982662222589528733798399267075691847310875357088519500264592634737419130699100518758613099770180084991150506097474269041098217987841528550760015366303038509575072090089133871300043005680959448834496645568346188531831025240109560597384619519504056054382391633883953667974433237447623096289839648438473925911268908717778421838149878579017021402610515667914440014205688882622860890798516903915775200375694123956872740902003442531250810752294788513386745340498812360567337359982374746461581809777139310071150835687345932838583167887727018092354266104287845024969008710884538515410940835447792229590059169495012598667065538428787278624748539985504214487315570879297062123453483454846678197528386347454389493232770343715010519999181819217015873512070630461050734525953834407446565230675901086609515682448536241876168118013713551963394746924795261898557946620073669025764805999640220644893377044933195181460717448779803780329962060900256138647978750564358475074924271492968144186117068792214069789574389367543726152009768811066420271147193991507763096260672825239416481161086022894731677316720707279209209287017621984117592798195310693842060649090220506541159537674008994837623944934964585676354649780982579975198993715155773469084441312471587508595739524741792866583845812876432619041734270349893131116796220875452104176538729352173936803310846711304402323781709095399244498526118891609579038423112094935852977776149369909730560703924053127416408900023454728371427124989885565829265354895310893386903583959859405421745027244969812682484197138583347397117953667675103441330580144884423008052388750305909434481443677604271356019834802750831518564346078667573728379473784946236913260157729925895300148018132768722529307681296007057252573902460271883324670105412817335407959627338071436946041959608885408217077369023031779990163763473449407258520849367661482791651019723005119750247099784939814921438431030160174345034879071213255667253871619363098650885867121013770484743797509457565503552129528041272584495005282915311990604765065047143160126449701202345597305632519512383284314105379312459176730284977019480787646474939636152998440155017240990112665396644181918043609129294226000798805902015501892073353546111537446600861934273629639731016961158985143497070508676286549865554903921083912126032163780498047702132568578900171661523375611446144658696737450315802013758576264833239246338221323201415743712431976669734687113914604097264860143230824048855043442046750502117551203193591965423485229780895256811763136691837983603346950620633799052579786093090611857152674670159188169250587003162643494402881247812231121956123150026777173697082297617472363903206560156561151994000812653808721913213088506344931879408839792782345879877879054622413235275528858200042505856312111781892241182651305379234151161623822757450306039272591793324501457126668845038840705619563582443276759381731645347494851189136650123123431999182049729266310559739642139032292947549008051340414858685095999133974960747824812015366359617608123545847895074068405784560757852870646701329844962284542837175272675063288436982877042417605266408305929584650713744476510589269989647612281981723189804185889627804353270848582195514585366135265065021321257880700801974974598008646292430902166726614428751606821636882216328812499467795793348023199048954333822165443842601611256954854771686525015836470950290918303129056802435956174443450186278278242616856590920780431041015847915704020901813765060729996447519925401401677406336824281875716250707871657815388016276664766484759215263673929012149256541448955826848147499096034502564687140812121053371850432547565228445596305715238376307788971834854621629934226060887775843865683707557296486519973498849700692577433183068829949314888911271110619279537538326282082544798113250724208161732904667693326598656292245472039976313505580533864263957027421271445556223150652153935971699467568812453187990456823974382950633329657795738018912757420193821155304215313896955634069073884711082459941319419527878683494040317930597487540473926455790473376489982389561371638217661894953670025263238832544642263581926392330234138503368059681556653972984900127324009051622281888988586646459779709757581788482316379171920952564120829178372765380526278562624046564443101288147384336982236549830994004393240315848792594299085905271002653602928923436253091456470477244734490415829994632594492958671474322097213170161827689384632634885854964768177640689463317788963003091258096012657273452120240045797975318932552864210048538966137169380212456891456591921501973227566889484367879320664531557568600351836572984559139881856038102993915023908513321080450900872295245771886495687339776468666968442484238907151499336836769646732726085583985238156592038419706826806623917819425208986336698856203470305922887905359577442996154168636347869281051898104361484212404399346856641857541793599600752085987164443603577262725038686751279977828688030843519535062968805305044937517059665509943890302815720151479906181325186837281539344448343531873622912024604012713719294148882987431629152609916626607146775267995289014679870460995311878008211810923141496181536375050545154794568567533591557245762649055104536230507649441018236984569010286166811338761029466086630151261963916619755642954018694100698819029297238062943713293348816873706550288537909851166784013017610875999594053777539665022726544730667917663693655963770844372117634885572354168757792710061973175236231879193592454427989741702480356102079311426802244592411121314463240881271487124373311745190396281500503543269553390914571217509033768207243989284839322185166785096144121150696809116394343585004828365422756318000523359965723981903849782281232351654430311776487840452794216500155757027796421864824198368219983711774720284839906701266802304701721470332903328777641033675766081222103532307635331981948123547471763217352270759216592880776446904608977768553451573340927337918091054791123078601201533718961174944630781253127904647912214427283134371473297553829673579969934870337407274823051620388063659283244101406739207025384350788324898584210770588323726183082446766028849355336530443200032585539889080959726041229402688117063566651716303142969227487057786947170427576356590334036128505639166560750655609012003429783877762663049107587988765955412405633238097053421971599537577389385641625419135507798605319619591157746626266560610878595149369794359974826539737042970282145330814952507535940572451694661778101375434336654451894455449659058452475928783586407739884554694500428681665852741041346286140071632022093555222950749715237543463481357898061437708867203996772308746428021677522312728522289218207349520442938995103931989742155263958908312724049143689877234361143990827663845034726553576762497537987967300225797975716611309725511250375640193616898922004171772378738300298323989869801788306640084719737617915548782072352543955692271670830563331483943059145634552625276900213258896754876343011486735860669335686137596795569654588176798642217095358547433268629886422272722482196818135635752125831533144824851360133117193141879659048020890573728147658248243024096231845623208130117109085053989980320501625075148333128550477827448288557276708039541486310252716045579979111029733432723364221458497064598184686294168233029195682998662018614803471270418050714110812630106873208044891775434989812216542551654708174286646059554322584279007214685100588251369216418891809188779033351277146329013521898696744894575292708648107425411178213765070139225659676295802130000455760201483037350035078582644985738526300973267719487536994484556572833350598197190784176859079989588123885673723656435077846509757164178046723341749592468274401481056600414172683751918509177337438160098209788226595615711968904844124918092031437563189631325386179391232425535271286462387901293196993106449420604743335472755706557254579697115926649655717902483801774497320290036926690436721551885805625385392283034830140328302792894630428504749169660496951795083530862682894992035177172837265215782723228099220829003245136967857376982335172571983673503073832050260363948687217952507463412316170951506744780203845821013681650779474031264451412694445311461486837931552792031880782760246181546723175941256536844406449164415303638029414228866039722256462838289814670746152160848992655959419563473007322204838755858638829274660998672330407386538335048123492753878055490935244505485475562366178859946095327856010551212553503200229470757574568058467976987179254709649852341120837903116077181166877175748047333601810120546496149204002588575560722150264735005377466302964653085058510750934893625650538626195759819897168311381212505546764902677309855986777244017101376034260006464498158676098333664177146234782584553238170731325541928483718832667783720687109946239797814770373948937953506495354793755830156970444898076890974656731185633432805465379955273464387371348636550341450463847004798430504631384514764474210424994929911827089647217516839386080721222042595358378547291761801813046935708482319892115648130942309265574604645324438593075421512950779379551069964072452041248526776584049952170804554532936358370643214301737419764423837414239170973703991777355906292922866826864658337151638294285272582153450393506981100225988774976867318491231458558930498578090555025561071240665936006671008525956399792917165531129525196346995661917708524746154336128589908250192998676821742001348006184533123670607630295867243121432569375656371766875197513660506319282991024692451494764129421293725575764399127393758165758253762538343581984022577814328389316681694246746218915645120622003370384820299765947692647800017818626838970777101716549566636422536396737651870835834087418808468486128180427607901987467969551709148566277985271387371581295560476319239189476425510227224823820717025285137316669780447177329429237353211781973717629218016841644856352183982351560881988184028999840746439910382721076231642644865797781807629295505197470853280346130280425455470676550861333303756966582306789158209775933083912652979386525046036985930225219974664626796284385323300448611099794760208582092822935081174573288909645772955768393197615097474108116911721709263056595181786770181651676999616166564989746449852040938645638538575023669217054015226733506619889301463540025414706981073001716563862868534353172442583581216731143155224184192800745289109954994365894199385318448601877045809484025164669703879863531751704537275137884475755172315940656939377830367851803458343842060647664803761515518700464191437903830203279619011879231831185074392067559745483771111736377858429730638327657084555576091978701341595472009656168878674357177462642482725661259066056914380505213118898658650038293771722250107679772320754298339517147154968542457316571509639744515737984709226234344884000001449913491633814575970684989122937234584542014036354417180399096941335257746684921647921406821258185783439290483665780573274494171044984903038713403269177536791374024120342665342013839564243685437729034969130175482342926625847525148968590091987730114896846714586757771404339469277799903198898410182978043739702842539450215243364461763373302863189731367234596422465381044656397555654290541002644630824036373291459934622581879927571656423686244525868284779203785022263989271620349559947073517871575036532748747006899813593374160924835163555702724916014690235880800292366962996036760692680548712513067704504590025638592102659492953644758862099096038335770183197659635672135197230290576482115430718163835930959178227923589375384756542241090044811874582958854128247033781371411125456917054188114286384713930661721168624862168176303065823567910091958187936086683722559483609287117084029971003980978220791730676818691552351287682751811918196852178163291836098409156653827297037375140390700787972595270128487174401730257026589802689267206269627116706695386572346102482403224648658617105848201376822720398483016097354468781241366775147613187090977178369121136048969390495047201529619101874678328084868015726690891532611061279283260579951061367443212338215550243018514215788308774295702916548907465783185464489949966463878652416697093193567153107037964585762824614437415639775595498137594055679572179876241661695485464996313704898393995121787322752048190892793647951308126733735377204233028528141638837476942612718299635204873647345659183676979589108958806026246595831725940844670483164215102957819790779688591692794788748288603816592033378303098562622387223643856474207827279604273250500425253826459339079496638614750195973971857066963761103815662254170973849194356980094919806442244268911064733933324051342724011481116428253455625009961188544806934413726018924811820383160664861976444931293491748085111919226189794811290954590485770464040193297599647970857654951924996205094728396020418330179858036279681842955217059406686304817154806089892433394477853858387646131313925705628590447430015072206108078143160223808120403499595359037331212811839790369780754017533147197214211853069254284436063709759028758528034694061067477752280543083631942631672436502193169098864906331463324113152631579626791423455925844508082526218753909501323404821051975814920439018827659798240798181805545082818290168947268712260015262638519652643620626295599532157719749238886479454876997194638943417378701994494487649165546890993844313604874615366094041456718438851283340877211598638401621286867853424816237665461724376660832331862922014556488250017098057501451586602384162503951712659949896164156726040604097853511490616729496279323741798877531827117684970516660879951522236559672774494329300159866914467307837276545359021975662805505971969731199763794020892436043584096334800392021828150904395692513418553283585402417780634359953209312692364970402987481768771057195650818961893463193657552255211009999604199531378296792693553343437498772191059611755117986351986748947560104890235493547337101068901267853263481981183020486098061702017867141094204237733827668951880716407769368727017654819174852270404330767247356150888511455634282695260717283352524136476973530837426678762674660904089347687223566079128257578528116311875988305110582674173555491758240664821182368227769369498671302968274541366038157667112457045929745137909342913291212635149687793363267032600370901308042234021439022423932864863443829185916671389718060116398501747857220414166604235409352946394606561384225691026798664774912178974432112680711954530143947561875007308646857138253091725385320843230808346968007729470925167757172588046489107290912454336170401582273202287152357879755711589066261869997831792966883180612359350658613125313204437250395395659534018697983506682414979100532448786285115589196728586990301965405375768855547604912864374732753139662901470768563744496916259728387416867943293853644051196163899324826907447126247420220283157900041761744343536978558358979717068518109096797233970144703345629801664335469121309655940799652758238586919797537416683413455053589927186753514595292397559685783929682687543191857249297594479042621223169219468013171980373433737024517784235224468055472730802546842831187694519160696341633971615362222348576912361604032950611700378262878106878288524458408005271034120773894059038134591781897344381044441562345151132024508973481343287048710867066906880707571587010587580647129703675906018382950873650598084603252637771311160376539520950431219521537960414846537724590878539521243977564486395589902405880213026068182348389276557830757368832061940620276120750242028044154427713940741054397313163800386315518249346080090221646908474295962698631739330156490728405049622540441009277656905720212305615369175927668955452067090759401774554316985957422554074253352341495473321651451352265594505856710568778793572706391174077281013143705566569112543504310185469428426464798945697845661143516609904795906500199782746734499540521115169521822290043350104607357655177978410988165552555241860153629272359951836032412301193111261139368256185173397182831685927629053425771096587888944300043587928510738539265304011207237858305988141292097165520832470496443848356838590578331533388353415624235947116508585995318431537324471042455974434942337278560637863830571440728350266615960116906065114108282765163978957735569034698217426486064821687256558774653635877381841685680730438828161743365123945197809164444112852531956054362380224056812165854611591082589166592698480067678817465551553728568743621669472959386254025453616252105462790535180915992318931938129901526706801364333991889942825590405750667270004584852911783934031929983494953722291670462257798781854032427470133137838728534747060570653713741318384914880038832405936990597466182759460721645414308371609695411179418373548742913886339358746884977354834365326739723912232732740694109771864193097715626954863527669153433628352658247474865501556837593775458215124897474499997475691122416496837990146237301250117218880324397981286027604991733248264264819830795002809818692513977934101240219889995424794481599816369829960078032613296580341600223450053316914373718758949663607440814677971658852008339679085784871433203943639664777817805040137033129409781704268649180676700203341281283525531333737340637034772187085967831759448864189859954669693146790469073617096557376758255845351709653891198426071481639486661533677980663537604157059632369387676210632380917625282150863595752926028742281283260952381768393937195826200902256921447299723893314972880240647527052808314503325555407644211455479270065261280759081920969995388545448253612655627217411789222583579039786563740588284546361732361195199903830723138851054676175018684647427412540242595407919637987708591989709670620517013323983575269620228427078608706417493303255606448322640103027596915567805523836759493217417978967038880977671137833373839600811512673455072293303451870827238731821874788623172673805282533024523089947974251074374291235476565052523058956203024601935128234250413790529627229794566229431474508250723430592613388981238921074422882404089965169720016786363739969802393169602251237765128149830729786777062027467689525437170888065938496901150559820012244611079577070597982318011857864745352560264144726710988205542207026344570265716027889437858330365459422039976635578843813172455344770910445096348328422311204130695948542583244240455244281536563148213573953665166174488602956923878930669466848613075254397896853477068408797667301524868695151843919528737506875836191335391041592517954744956772639100724078672146646187787612262883505755201290097444080739706691471582337788268870138106729501585451053408560611369676608151389992128025555509780926517890232882840386508608208405602489094718711350535664258839931227478087914118790096088178365808545541095792806470398141906755276197532203147275585489560559063156220080692337593805388110163082330753113321477554875027410470531444313063425159614828610480380657592324819480357156470271985486763661106472299095879520473104118828818340835042337941057478512679918179601821097285299384076444358990421825560361607495516132915982999002288180011069664928882934096013297824510939683911942310085665736903225673195319569010321869841248110079099464311615136406137812005339406819913420700318157805314825504980946126133586587256539296374888560998904156223226641699157193203435559962456021882899547184952183252658911638506735394659914391230363678005387718736119879471858011784335438900527104226383359000591771859142255250561747418807211939219710418211233337014010275591659581418252886988102588001095659123137717945323651243172174668110941056969243164143679142065695676506953266777491488918780512534724628675954674153474691905283048329292215639503675065639232717901529165966811176247008071285747883163247039590900579013600668633171152088587199896533919549153417241325225056537088036909665851098650783928973193867836727617711168950928573669749795378961123161287254662750935107176613420082645406512959930819853719275157150975850893948873566938241953939392673001269213249329788513589485692668070699582112688061838303737099562318861440921707841830035494466172323057329823456599870442752441351617536340992051341462541104769600565579984643588862252417267511428652927091638346281868852120520408794872026730212002943881370269100381934283616781605881903830998934340464125215594788141404075080731535230778737082525580682021906851309000321930550064053790747876065546132255404034459170982408804930770096355804354246221321994912797537900757634628550471462264414397737973921546726665613127838444106131015177175895319061973712401911687387863275799718361608017255306336651266308211470386767927793534769712669982513977770125638206551844848865034606688540068580593827579851752181083643680450084827672765991607247010028482674603537781842247508433206023041159436177986241847647785500231461744181924970613393896920352204020068732651449546653027296817044211898483209383587257478950576550540038243430182965005719606737368322225508019126311951025948084191267664935149822350114324322047908775636904268467486946543111457778291593485152552183848963191227105021182520054339760568804599645035434284234955316891402242262803305504723552706617258809705685443652046309531706597322113497313087573336584205958841241927203086197292697442500511692651312529285053003589385446575831573752937615734634719882391972633461964785428278235848847263512323164516599375625172364326166018480374751127869677600238181452415202449002089185927509072331823164342450098905561939460902206183907265400365933698801675218426782352308408599590027208217246699954752576992595420279154182305974276703053930278565120081470786032500829106013010304519825258585084695914834781344494419864112419013322052183409396567542851994084839832220342042086593283045618348406680213952752512197056636881609661751979197293742262240159272119144271577691870888691744630894496202231468784105462388723338761202473868155519440586473549853333109666871023018693952108916616999113001682298821791719836065457581537548490225883293653451846861488776455099224998667152252067789587732288467457854060397181315850032007415786902927689051080887022847255877957168106114906638043483650650214931040234958169633661466640251395043261577032539845957702961148392894424701638983266736112101601966699604364220301467001597023610825339740723331668073253580952936605758412157829415013322043617846413523636010058734377493843826069199345896061313051696341750856288062953050396812866064337328682146859843887434812653140201375965227565162663282093953251233186795435411089088861518800796925611901966606335969070991011227119957047108169792725332304112876426208068137005544546064451579035917691359619833774063123603740697526007576055445998751936913665492639186145414924792158467752623762105521282684759258760413639595176958781089949708671495140496719161422531942613527634034944346121761842791137885310106883321919023519656270348125413997060945020007173269858825456809010635228413478421167690445592738267362667893888536045176186290254676057672841490876731673321872551417426445013813902848939234475737395787725484781098850101150015635105265988640148478705711909198224851925018130796188317735197248908400615020338762149132414472810312081059482642855690642084870637971454416625303738376183662348409478690926855246110147523663979745441520049916378796676095319260059113143357320687600840825098614551771583755091241817982083337875655041778932938705584657797566243763073574759996396197447456891129797269104314690790803226797569462711124737545961552124107679585973597484269333205887182172239838899332985921985939496433174438426420922023247747796780423802221270639404272346855727695260000601005175472524274534434822054568245659065849323637258840210545117302151219686485726316579803018438591085977435688278728661491287758557299055401204845164736474109482615932868260516783758728000393024593263962127335305914611617818334037072125176217615453795906155882326558430710183913431942931707808491399575127184654420855342316853857678087559230999603637885842346501442832740345724901115147159910900825808696843463970561052851483312248856666460037179840936296616558200621611115512454856433172661186109775906741344746429139493411000021716900368281535562901961867375126532266583038266319412821489614222103479178683577325092927980345082140830536483953294167836067578755012819253230814586129246723685076462861964572884415703758767247567316704939783978824888851575720062125800266232017876929948350945207920337778629093724362286166276642875360190161981495016060725881328541053369435132027301592039575919844244089015861013793239561460368178419177498877497182622335109372847962808151193852027875585662983476324510272468078376871537854091955557636120100221491619175206783490776965464521801446318806211876173372942725069225019180954459468540970479165549819787191247568456466506784923848457646319675784196300682866029571583848481633462526627857776346733524361257029396440449759201402338393609531267260263174857257457445116519783040271625016052270088142101853524354735612054873561160477998250656102017560844788263870470028269669039451410896577784045547888387924761545101584386232668128692266590696464720802622885854168721348845212386496001206154470566103807302124585734078726109816641210477615423851564237937230962066899896091745065822759012495580864280247192222432406230632020800731630449214043707568580621912618779773607820728902758519822980469781974920526978171989338758365652180551536286845291796037009739305864777693506998751510826838537762722090010773392110526689844070723676403806162848320053017221711768436722741480154331974997058564480134978471980541566908425430531221978845087590372114005690715215750692388638652476778433362564262502614898111261004893711423822963545424799772884386861465203213727659812613032459496725240807888713485023006748869390167907192461291251960970389407950461679490613844615677414023215974514222892777458169638400346504331972723145689287576052409531300364173368457413231730320215897128376002831564196698224845112848226296567904821469818349794841874387013264407545599796131758319485935974597803493147577627654553803080834108733713629119888767180376688652232411559384713908868775604340378370331858912577853622355664755799180317908867987078162038484542104072139103269320433292013575029206625859050015072830491899613445275601789840294470180938120904552920415277209061660548497272735848316557780118868688395358487119156660236631022999494056545274339297723611203952150827588427968983322234532827351545657518169396006136178462714976638057013859874091054918518512480470467608436431224882569876703076326712921318544557508873491030085378386554126323791964016639575952227167999628504940269833597207731598119268602046756397400955590088733017349469340457461582646172189274899400948233973110599954455931820188940161207907552613142715907056238896736060775112688035370129024102403361272937754187969224302246342246178095181324724730610446314900740320466162504792908703439451813553171822666071289248683198725257205740883709411464179498861534121318475589743657160819771881583743181267503536065223788624245890481493786638667005059252844723199964672157390666982883136933694875060721488079952997409087976862225288202965367460216970518633546142110717029883338883122602415798974512433117614975169093547378341032252678456779762193948176747442345534398854443639642376015912917135830450928116141332943840018909296465573198122050099064673069010007634516491142455895864409428313818894599580199315294697812743833833070182870547885679432366919776708443217787496734638199720174828893192029628919749706482823355989986380992831370027191419675106189200293419315057730584989512764459351242692593715757882076675939704206334550595785809957624004525101415012980566760373707077793720203177596686731226488643792650507739655744930636468443774869929794629199487093342896205959814483069815801232076368015969128436364284058045869742622400515010082764759823576995701790791252620144516096418507122508489570023008543665435113465112358507732557154526917102430803822857836326772964060978476191427507706317492207351003230589282472158771926847176511627856660701840672620417773032669943843814859150932690890764852047740031369988068946483067591021105273414703762806987747006087019596965117376985922954930450834980014197518763134799072570790789461005572618123847651525561854985336768764957125566263184437451091700960350521568585989333434264024527748556754432496575597818479361287789555133395818341710633340405972152762420272041402843309454212524010440678321165683291699572957108766463091622867445719058795933550069412978729065397131030391607625097030194518882921774799335758723398672120413466351971448548825217740784255145807400726862076876974062034102585454758594688258939886100880501916730390083125931933532693715527752278512038604905379766534299077018118843748572504791861442072148221406184156867929200094313555706923307663022448403378438319835951449194970921947608180819779848943073586735840576817442785873254950426844290062889177273889802848585522543154755687799077971040615117096003729875831331845958447602721608523963872952587030823159285159898366546053324889718679998487432939273707106442223005865678711267085351802797566155680241373304668310075379177196278002827948091682731362180153468385058420075396736517728208044402026024616327175990000030130794727907168017435627213358796421644519461132483065298709725567268485106909766454111169633630397899627947466071702328438731502956983232104302764678602285579567372463414466518327172082192710270785077287783850648672962217955520997575204887015538710206521022333031343937220280490293076421374793289135282593891120264111096681839622731279894401166463482258434584420028829155205583465380731969717480611806309091200543605294837588983782004971892400668876308199560531117153503624539014826215550268356154635418381201006054098127199614804017296073185796839165243382423036376827277575688224238117525170894380917703275688412777969457890217590317728924641106849825660592055110876721185328173883437468967157668012783453318748726078726367545997832600919616852868466960561735548241829062830134820190677231858899558818973455395370930306477491890826019298420074948000401495174779181374398498967866590778454410300387585449300309243171340061845826533748594456955614140651356236561365498339273395718284777908276571632506747971435046290634130353234153341080692567249931765747147569261128225237544855584118673050227800519026097169432030670626813322156130967590862571514312525082015385680647101456925175686693870258987939637299334864069805473310110331146664379903088915516357566330563669318669565818177582869928277541281307232048094787893740104997449604119388999747873314584928494112961954928637734640787296881306439901534873488708868687590293356546517394612677874243577326127739014584331502016635119698743932943194947384874417638441734426782992872976582735856446553441387878962737888610294462233962263328666121916237870261923023269955701999930286373449226629402034580758673594622534260924303058638391557524434788890244239594836567616384416896562255077543218795851125060910463769767923321230028662766063797164313493176706450850887689691332734085781878844219457567872541887079439456231012016312644425105320772274407361744754008980415009632530737553915267118308787930341189147575409701381798431881526086164620742082382513045915530284341555402623918533105862611792692375180796681377669275546021945243360530355792232579257937258339846911255996952765999043223151542430603259929371962431439190980441822371799345034669226273588924386497884754624434329467719864117667639192361417212893698329943153729216883574327722215690563509411558123341422576441005821154089632849668878241698098721315050492861087486262103860387685239987540051219275263583954389003776244326673785756346011754538319925980142028539630511931703478914906188341988127218964488020664383943861016393624245717793003619505578631639877847095686127628342010676810013283249489345666047570391159047237657306299132351119158124962930213225697481799474896153286512395269823373467163847835825898933443625211634083282513023940216734036473703798834566109608225351821560508063946563636084985569063555746662054475393544565050589870017356682999646364506466224001819801758553751745029475154620948976673566727922100242000627058797390228844955863176077346870517697406552998032969280257164315764803898324159477470447985003215627321903627122457887856064302472206737581236272567156681325536571313009486611987280542361858013160270816627967467991466789423249407884855777808222599718439220784024552554772780164514300925197737252324740546314376863165450438561936159696225635876398423910727803708922402905121772810271571239426570433078355533199903819133222525543227538617417089751797479463578476685239404148066487793467833410885557668399384621417582127281278049991108300394840434257641589199460498972723110815510728030198136747041635920583882593542442394061147119446263393919283633846068306410248932412827526298453406413100270446803480394308007159381956290075838822289908475017300956001542071338796006733679806963371088212017645286234355183700658898314611254684873977825983580940567294904093921539183489646280266132064085164834900846085591551756837878772786544034170503102282324318513162438079743779702135459673655271493918052145576376055550605438529694588932290918551625804547576000728487018758495466548444309304796281628445413536492342157591826378667397166919969528123648170297492262554620257542101725584199199498022752796273374844970227268197420583405639022685656190300287564212815524910335932206185509329904765407337419188981764620332621068383474320293745837094212787574866784809737172527692666554401159802559749072409692195636214055528562911142907182514759767318441188305452026218652789937902440641598124920392909701764209740313221145412341556626224481079941110424199862084374707743928934644211529756970607490819701515148953908142644225502551151404698255691693862606308015749844196285591823846908285603608773819855480522442010897809198037385574355588245993272932763744856103935185234735632059672802666563342957065532458636217970671985726747408588602836643787565027098928042577451334174434154742373774163159886804369923589901821632727020713985382195971246349565939811686033398577816204711944181871613322059724180289726302851645892113268409534179921935221457975400981343890400444747114319089010554546980707553318290953854446236289663381257743333247508029640065014242620751882241527630424146400262110107731325117356397440805491817711591299827758209342008057653463579004407976956991079507049478408616187375077617134216685227785691046876679636920797797300144968185354226421080956541332461348973670858679317102547143628955043942859054302743672699532965723742512519415691707514833796389634406542064250710735266384743425807160288591638747751483523725040797850677904449770675385913154273254330308508868437471702005723467620498115111995457129127245515301565847445306423858760252279052481505801663497813017621852234033894008658369828184654902964616555156632505299488956014403247749214332682119187394754622677525257396238837582898876057886093233985520916938845513588233169743448759826933793546666275133976176912341941031400725435743942271120365530210823472608475235300145637217213974857845916222231937108645742017425324909257832016244041161114651769542730636683485205833574829343205123723503379374747958170297610880810581350874011001665024354762808845972054536480381712278924590195023442891991760136480537774977628973961792702624227451070581361923577765632519956716703775985319276714603859712970665470769706684201984788394848197724736532960786104200780380792563792117211808281961220002770447559384606744989150796337894606269190989535113198889083576467798980735949714877160155246918782425660579040151269386039300461722891501693018674488827317622162793932394957061757447784058641663054810312478664521565769068947368072309146222336983375845558037449554578929609324846571326171205234600594725997953773647787739525690426643592131763747743609145751570074347867793355213980110831653031090133497460881982729206808444616313052913519536162563310613070459827736240270843706208596336237285378376495166620961347373556127675152488420190867770611803037600724590106716200024592186427163205694240166475485657266505697674415481065003572218226244462112667526948511363278796775284454229583254001753346526765686288199390857221173124493141352392566387217518608261423378362029923614837107622879556496249472636520930962251878597230946956723401244948215818187806992697696597741560042446306694557248550527202007352138811014105757112187094699931533433064478687793023978164214183061250792984616375629161472009717751899455603903872669794726223712017276516847478187586229172600075455123223920281011657943862470720272757498624908333740927703714942272426480260246722199032510898040064597338175386076731828481126061132873037719633757983414867225631633237330111926352755612763264850277913140740368577826159738872756561973600897691522679534713798836182236371013568408887358677914539476178727972880671360556930189552028695605677285763818795329745153337715349499290925537603672958556627033384314317675694456760404641239837255521086920403326520350016521253826704889904500117770997933939512284236382999859488781871903766874660711953764764521841674403033462441458678196892359999378143337838777385612037911606138999933253298109848347938519350251519715136088338628502606760415361600353549381883734698661721968983093103390218051286316599081592930000101139162028233258987481299544758364402993431473265986903950525166142300135074011739457976407562820033115258670276667159460772270270365492731685104957448280300401833152885169224532852321684145607993704859439110955940355163918545181700415315716667777257669098892583524710114570992053619329401913160041976151368531623098553132462037598768332999578460304867734809157944225565853823172940253878312692580007660233344435731037932400113927644163077092221987490162515502356283962215907879604600445564501983117185428285517826789494325776464622242067598133970623657300597040751978354846991394501410156092190158113188897936602166158502713867582498849189981920525830114649420549587005844987640185575281745969871049664950177422560917819148935076069246025071805012363814794375232381606636504680284920896181841104373320876368255464856808400393917784498736062950034023143759619424968673721225652139796528557502807508825333516118075625638849128967482789593844503797061113887967230806934778206070747228720949026322313826623000049632955014424752354623800035190038571146179739662448620751913544022021710653636268461562357124245517090574065966801071134178500837633927317508581036980552441216075281769370589332351418030185934101531496713390987254959458864465614174502780340508418319090493424433684640164890445356583866741879561508808229931126636013393264865629504111461215256302795649092625959428291432508562270545062262341202805848603105556258571339772760921841698102613632524027325616748432101433648825617069133412618894395774551453291773397518098652074223698301248687574887057911594608368000823978640962410660370101226731621762262667184225123863471401163014040507141359627897958711233430108943148120985660289625000019020501719170930167450503541792418758634429891077719759749111215476826152350728742318862640583827912812589994039916829933438185158745827133322621236144947444804026905723249073724582876639922984094283242557346809980725655177599835977642155373677086893103639829538743187734117502204224506212274779414229225527203504892217360321265529965086598243801756682854435774110785638643032525814661502517482941307245233810617486887096552588071879256275946343168383044181766257098450955163398246830197807919764531954313510403961146980085268490266112683750211005071985368429400881110796172068246118064855987985186671557840374514490358100250766345457650547711409188023206825522590376874712728797179854614459865563231221350101510423792644115460945872824160770000655464274938032142899727010172165213009123378886630478091627610309169968537647711425764610089773148479176513804862518964510771059589563440784638561831288259568716551358991981010672809651315754799754907460647625688438793687720741712285679474529348949968228623027858182678961591102521626748801692239670534853425410104298197475568134281362773118285120629297760237521442765124384885857213191733836644581884697077299453142911033043537933631401162601936205575440916732949515569710735146441527345259418877051704528606780172628797206502313382533865290111545168956271506906796910707640297235328672909861415658989252458670720820981002365588633272842184311236124918656523442466369703577067593785337515632915038776269338192793864565378457822742694757674628946969416813848445003236568402686822806094816608412670383337656402405978113118790769764726972824966561963751911916439433038403959875400128091909098468970995982906588429340300546487944391874428818757188608839936543584623094780728742947824705953448489655193797310678940683935384015278349704303470615485857668006364355859162938139436328774604095156071132422791444638080257268378542127730747693878735398684960504255755207260603210510898710044288275916409182763133871185325747215491782468992752576906763691783128323913660768851069204727130670250592358147607795183633862580186334216603805607801062022108708805467113415094588934509450073991336000969127025802487121302286702212903448453805897913889013117045028477401990095992147885430143027110672113482818822045985944882101075299979804423104553001666266544201402479051928369272578076464553584616818516210958963104084166907969127224129094581707240138845420486135958310176659223664033954976197141785861919884521891662631404715496220730008193212491831887996191232934774022620721204583687692758893333652756018863663268467649262629449677861572605698044306156847555019460409819805467484666184910370555517847750305367980933751699214163520355126182806799475766989635353896447263319984354375801794162932000319800572608387187628255550834495179911313535164215816364817542458213095534070136097235496210091179717275418763690349616175130756930795261596432498478778042742398568944458903719736717508577895965602946415354154502048069430863186719731879748173773280007638315215228677457339577490669217976307334880823089274881319156017466402062723963543262524104863594151297988020875731096626005113121140249642295872523043586463957521351396955797436321018885588561128865670002583833799830104607718415729771728394257019451954569532891756051775283148714811106488852427093473929188023797164668530939064109444899514583617539971470117882781230130036664526346225468069388012859211209038899567146040825887317629219485053118332761890368018704053667254283337262385317435586307945914961775844118839165660210153737911556474559803223364503753564677049563660107245382773566313359464585546157011249999338413504761300990241287677607691584673841329531742206153028265455677023396492098629858198744957262660055320977092078189944824232502458549768392295899572973433039678990906877743146883306721191725159654689548546833958511010653341782840048035284276152120811082398899118226122692977104812582563019500095964677130436042119051178034053467831544883189293009899242308105494135891202717006667102434882353297817320368430274141844550707463346643777233356504839532861600868793901854989305979197385227021167594474978487612730526686079656920854759281059327085792075481514929811948850703564082192220409675078611973973492991282969044313241321057253135027635120979907070820844890308374666694686231292990813822638265989309879347718648973466966549160847047298702078692057322163655836952403189885917412790421985112724704316369030790127300299407901245171464165997815664616489911437819063471303077148938757973444494854437665643035890361625799751300993858525608756837461209778658929100924595992064419591871770220558838286544976757836723790377607831968005794407449003576905384154527825176073779257196529930612242286209092719537064269641935019347248954581359128129140958446677115578050182352869544970186537570462407690391913602613659204244846887297126390930071643897041246543884728247209235139546470077168198748774500086705952865674023728245605154297872644316652017003227207626572795206498068402544134736772469521090504491566633479666302013090838527761071100218344907577434346397952292789316557691849805571419988078386179400454743640015090852886123421414837834948050737789982283975594135458012552425676316820904450193336910233364030758609191373410323458240585399221398329109232300227837127738746098012989752923261183089442160087637722303742804532407045078156689777800892647927093004973828510363110362304934924670678213773926070341308590004683521383266028212070623564977659010902968294941510760627280054329840605178352351326643988842607641415598591153573894016677172413899852959212409299324821778509626942277004119370041744322947083199370580415349255088320775345973789467570303372698244590896600777480621390827888996226509406879373525216549455947194929667923357801100553859515868313385000934396249134719378411114604086614119426666814364710787273827510593911721929209835695621398392318859474815881246826166186797660646026487436736115720673047640944332389590769248298046381003130364315662447791479737130304258626662309783129514231557929388909702869143613639635209940370867890054338384767981782009089732339319570130947689770119497903153005785281265629441333730000625832233381420535297717912888200905418955280413484807363207279523125752429760272599497164485297989204147968126663417275305632335218893345212234845356555508882721302544581563790850136756388530561117160041936344765210783478093188371258497696947403630636176276322427336813668048101814127150636390355855091813851433727043428578245098602289567658557508895665107334757844003389245138316591361706250322163859733863573885808245808973075593235997517740989260306656414816492218324862699080024976097019533859263719408958500287632691757108177910361783345320846008371214968912275034286710197890113586746920590430785652080767530318403822685224208531828653184485429932515857705410317791699063720128812947261956505142702508483074674639927036218719630576418228214870023935717308376675691054182533212069739544557100739571025026549421200973118684457533934638723328166763303093460452585490812283139464649996664978888400139540806844577610388836471752566323891580081223411085970353431712982830092012723608404736571889051240356033662977593366062971045939024965785073303150826876990299738977536001831276125892373308261985359828868836218774213408434373996609892285886349000775936200065879042760371387773494754409784724048126847702115197097727148793987938475577308433589618559483456343059211293450251324315899356448852026729700833444708425820467200380950791678051184906055931682871095441775752572171746111402051313019188105750413755956197802220478807409033741075125515288065550471065820592890251902410553770168370514304578818144056657638550995032550884005147199010343989399159265537463632927856056170745662788004706108607962466165139112615797168022606725229821621710729953021538548223077119160279743029450844909839114236952401532926169616839766912382312192462261640505615174927700389539789852586624539540247544040102710255283964226846709489198703519669803670856588860073589364372543311489149621772151970447270137942373133730981691296416492614400044976634452853310921888206766617275042017885252250015606565179924670395367412033589237471679404345212237646990627672995644073116509284779342165590170636689517838060519759436521797847839823154751487445548081019608621509804159714369346476362331841711648149466021391054045893544621468302625898463531632718053807106494005318519391051081677653752340685724716840229147861145651937302756461731878675141655095299475068743217897061055244452026617623338383775304883179851517653465652636785113374285796791580629807635207646910528644878603913090904586158026819980725063280635929042868447353730827944118053833516504939350429484024378041240480625859795705210350712042733809883092920063551136577947036847521829830148904389922161741758907241687053001963129173103404179055485269130905443298659695559733693910482498558098376867886573980470475509282562476075126960812976927195357469114222130852920359614311896468295664615999325524086722612403393204482204419068714259570978809828976913247123641792831358363734530847457462237530669331388128116417678666583794907147157331957515633192207288722288367326208798669944267040950704382954887553845376760207452233135639194781333553279530542259450326326139900507909039518590215547477750774514472300838792565089167245825287043584980899350304022327246849222707172665538519245916405522470856112945346957145733450922428185936768178544273264203728932476658885814648902778856071999273193702454197724492477575863421803310871935779575185115343430401648861610609634744428357828330705615435871214644517023148688123970068282514902091440630387548677997526478286938051640665971134381337016615664773547937589840988536926747909814853712485434359624617510803058293653950751114313142430106148950972283997481569020225790922187891169064740253122015871245270199333811814012881603816010218506175773971914886974119169447930274648050938458233420460011023258056577701186367704194974213195925330454813250692401082697393712060270249211357497896377531518875807183901287695490234576832993692868283406237674757941247143235303007360852494829844709718087295127442035388175865856294921620312641637142369471899118996874374822056680492734681075671482846302439353543786404102771403030198081691129516333464413611982140321780376642625343236597817347517806335793651206966630620584141950463604708811715304892724631169171246615305182839987468726616270700127268343217740564548023844975029234896341426281981306321519799964383777358411895062685345050433801202527379835992588942898214129463466087102706502681046614893521266697757073613276081121599031078189863429345835223588951349235876300777941849556959915098269714064022928517409485810358961237795289471922479781072142752641336316040630464263800577130583611024500304007984363615712796439286355289125163399537332172183182694201408284433556386117869044024009015081603527601878677032634621107976027565291726541166324917507598047196917011168171210746977574662685833639063535017419137342111897828857615988446121811854250808230546300441505893546359538934051372580802198384388006437741879692493563780486438102873613652200894528192574134914453597925664784794437821827832976951917983288019162572202808679016725196458268135226873758331310445413045174381401331775001695819791846867277322160957748339421192865392863666635070080745339779379980938270693411792584137836285058140266146729989831553287694734665257017712648854994164389407155006125074792902952039519596417599582558081770803139718842862156494480093333182934786933838766268072823451691779245584532528256808288667178734173588269877193025211273760400649500009879901578480214261051062675226469247963971672969467695620389504949260028575240740971776539432168027878914185615294731092390107882397364386669830254320315538644246621991053569468625882910869457019358521722537726916819048950456461190383972536116876973127090020684550300422267374694715810424734595112338729916210044348456320163265154060249511642066301000571148108190961476642095156027913336006913864999934306644606867092370917416835646301577743024714789277183315020482462164880836462641544829456107352682085135810793249539127785864796200544404577400584957674730042851785771320733880049176421790445714691771490185226715882334147747873087356869151624009616258462640602034620369797746297130118518717239985448639719789200835332566527391244156301664583541983483422470968454578095962663960415247657527790447880676788946332244865679534387124114324670295371339560957360344211010118106369450336826833703232165205030895147111601846140352813629679392142839166818092112914218157469795548704888450767540050044481984179949719640532102897288589069710315089096783003524714549084612390074381024984184298872403186423534190334996396148350582398290842980437947018343318238373945581541271996843227334146065315415147409682166928656368619585452709354912163743476093904548301548646921099178179662835019901345572035805416334842092087539670385525251435924886884417564899980303613917856677157634054066948294313499591113508878215337250086715728087698524334908316803902257272287117012878749625608907847029544473129420877490725033153440323072324402753517152616207148146493899067516553170365179712959211400385068377915038750312968354670854281754804107072314069568918083902289232604521064927068314790469864581465510022274758031051018770243571481193859725599482411848807200514127525643746766940418098286464780772013157243558419552457129623355541246020732906536950814751773077145155724822670382416380459220353365475199582995015885355833461244905816797877883480812072876260593922082357515863425754466175289466464965920034018801975213890519028492391496727509130899953313384678384996414788067975064041562100182566743817533615970820627301565149697592956358738763675969589262198123960425968134606671593911921868775796378547895029751992525994005245475725564850114961114435003916794199647967521192405375561641558101455115647895749283602889024635480180174516378856637796529341322598003556204381593102718557054317444166027720148914045805865559511019510985361705713160290449836557078784283178938508663073557805787084632972273576324503065162346821616527276422604333485678933268742908579826613185543022129301941554088459713425526389504663692371680103283218957222144101529402891359272279028785598043956482504299963251913570553240981322036833038354246329681142297767785510894275568759751541359921629646074925215040019440767258351681040078452121023707041112409728715620801332281254309855996563902753774724704922727520379525950916362443718170118274410128872698885284505292925656014112183926776237139147521212680529949573591822785972604662658654638181414701301657834563539410893809746378624096776423015987429886112959124833874062100888914245828361500523025617488277743447026701591795826471061078069181845800368206600533604009932120306845958154495585132614609220268786943909181226091552464096286503603920175601820837665286235726939833992629299750601297563138978567981622716048680797630172546896362991053763448465869944447445124481471758418559184731428954907968250998905452924897312463935775446992588966142946303999311516269427110420209968082527622971861979653367924395904141149246312276927791198497204633972779784129170293015364839971863379891077251243344577549900774499612016628237856864564220542839479767026664190676149095812878481728920009721696278572123665569715545791863341657869658160983393125247081102716482360174333760819690895837609252323201732966531524728200157263878084802449831295064273100561965717482208089217413147368851587571861334360674265439306700651428555240825304132233784778322611788878496542842850820225833441198309780455529281176036277828819733424203590817522072479263877545122956131873862728954871527404286947892590542089930398471972007066638433115144969836497065744815184320926727657391096997624761650215167674540530588156815670233697841619456150707839829879863030817424864729617373791555566742772725007633002466569048124227546401671453389823835737787813349131706464348188898721455404668256670327659869456225877827735333020836979595024855421973218565435267127300617724751813829249017214174338324869085516409518055740063393996669752205257230325544665395865149997363195207821057568108309579271999294679386305970091519816393229285045004795497147097502058348110842706236048081656615563194246720051811346671975274534310419344835005593442480714191476000955388206850051198639373845276674748915781914587378782353778828981772758639280177053744345050468940317181867306297578212759188469638263080035349586924321351142924183808178173174174881176304829498691056640070363526623714044307178978340214157017488923711355478861080722519541940630553873641644015885933850358162184890308041394987667914601555210520485604628706331237204111917564161724386051003276426885372639828394067582284443348053548249744304331572444267913800383978350917579913036786617534970562504606176387658102062566530726974982058546982389502901969895514498298616282589611156636093369113166322964755848176361559304753468827314076720890445266221465632342745711628510526927176911412182374123012790180947623192600800129035516939952472901740999040081424861119271477481841015460638953614806372510714348462995579021476564361540813777253967243780411168945526879096568961812424967949446290156431963831981524211924403821416739859874209136433317199879146631605812238208765841496417063605642231137437065338743966785503623840982099220144822785661172076899567366993553075328806066901700530770898528508026419893636777066281557883096890480432207782395683557396270376997237263464398821538373648115813593477274867588178601689525945979422521998680609511077165439553826614238588384473869621824302925370395876212154756450158635778297079297880416715458884683884940159847438197979200198685509698363377462748917084106912920170093810866728719196490927796182297290464458887314769669883652131045479679316822237209276032679704138618027597887579070787452768814560974300447054650036195653469156343349548578017517659064731803209731729796989422954849495449868354540210506427506588585246573311674555460433827320970226918467537530795168560529101546394321461053236048449371534425200256794047311450282684000140385189496909023766327183386055565612563978893538873451374290647515214258928172032633012285506956557749229378299000450690174293223719596909105708703904677509627246263792966360969730089957361629463853710957013643811960047090109258372692111194936881643113808466991855488089419408596493992128377532943875377210922149374238495435315413215642157210639474496734826523271447843800862735095286879445167125405850502271063364623514666805110377298756154786433755694969702312933316660571334170943869168710864576598450134136390880570880885690643546084066362323881137564019577687962987237054794067632418132623324089518285603402974491611422240375576947484102758583247042031926794596189789872021489499788133160577252847274290455139277169963405346213896152514532424615269279497590893615216298984732707030183933640836452126925081562910833035843453553019886976784274901647192742461446782959121156314676697763508784561191835484673145724926182824726501582948100642348121856260205111885061030375414634977193434777771933324055182198752345734239747961543319155415861663502721995478700997905812181901531799365954001501504830229366198637355327158980811299851904321168022899538629167943428652849083547129806630611728267306628182327531438780921353199454217606531365562684531656992242438793152824812584522884524303518627823856767826739356247650036852115613558025877193313183057499303745341089075009418855812961218836425877525232250768729717967178050352229759841645788577954927621558650868969879122577430006023880449627784922561767100553981404081145996867749961865227653962608370162117889417804563842243456114669787998277689192666991645129438860827079147811396151819358920953990428345828170035712843790225844199744948568006612254150756677820520063066380744438931559330112733731507916768126911511733524348516972710938971318949033081151187655355259595451830980176030554955677994096241223924037762893480197302483785597590205997792141434342692694881101213487092796060733977219206629180552899636309844862892366999531721760531442440852317271734589394113136822792644567895332912308814233539538045775759512203463219702106441845474049124177938173942326576908008484887845877565143755140176576990632074306053384958985514052179462744201381990977724649608764231686105334232345712815216287117174989404710198691839526233293873307328382458674110645768262111330092777968780958619179977634352590825755710674907413494390161665540953450130499044074834601705655545904385938613715740820652080135965548619416591172987149952580332552558767034281251105350553050439472133305101116951526135331580090512892485650744490329734880160284057207958709640468901116689113001779423041863520164347922894498006888617907833153660322284572549086164480168549773250089090992931660150561341399418965904820485105337160170595907749402475373250764209359961328233811793133084479256830257205461555455069144061643831411821892184400467090558778313568490751737997097736068984808016119980353822544389909443946874154970494226637543097018653962461879622677893295228112848870909548109737760223145054907159344497205497045132956464204356250785174079801472989103418769824404887973169929616519509696233661056119522920566720266100392961057600536292073441978203233708036927635259884986860025360280092173075213471658966240586921538007807273925934067717423303844107414532156169095731773062690942019283436489298791912593759064029091601116681716461446992719282450845843601591937720139027137543525460393142532482046398223316663489351775499479203820767276975846321636098462430478904226861905852766666415803392173545736829094504125018165669335510851369899445397876141872674709015049743891075557080700393617661953755807235947601518534032028819466996349635252093316224071068892468868284438720105535873169126208999164066308512169888437594450917138787421923663232370161827876660224720947097969312337789429784069616899670954569408522079373901725672049521112520015927064822107646117910409171362668605941732756388517227210695318539732748564566501216291438861164467859339112703224136914372198561021993593670423044908791681728157017570858654339263540182785753195383147612500322679190043298016833659923139951160453856942336899513706927390425004714661782795083212743582113336390787657599171807024416301961353668675956542504781258970663704150580752967364938995955672924755423996126408861419219142364544399947509327048214985695962508762313158329473352793765458184991486979618696231313582051993303239818062057706774578983418156780976241392614088438611787059370007752325318517355220598989008090916722803561094942771278865961181863302429912046842305922497883417606125689828187448375826089874801607937198334351748467127679704743015310891828446662496856664198381036208305987520990732377730103524308508837540005169577599696757693121474773515393616297723229498171380272382010142139310320031085215419162494888110630997527624841524432491355720824065051327339989781859957661235183143719732578895798567951323489920735227414140390271104010655765325255220960930156775456641210214080688884465360737915722329057995372688328154072244263812692141049423601564171297382565097228037996093053381272707461679659250070747285675265006567429912848304697904668270837409092265892548190517044728591569881638834282475830254242370521115850344534669419942157431650550351112669605410417017903851377043451628855959992774007011434780178944652351685672647722472495921837419367143700064959024223635497722311860733744299707149753787025855330201686423056561625667802667172440300625817768304044463537089315531128984341397828883711150219105057961690540440962244450695370131993995006968745222666415108199678654622107679930703467701018880942568676863416035211404462988684109568366826748490131071776683897979749781810907199348642777087226097877461378762066521994115074073841471373842165891352448228721422749404384307224361192919718294499031155459365669212888056638417970281995614635947902281746853499547448816773364012841982354669539150369758183479522903917706770626345429883670162286812299688696800569354842634605442972618643216605280859785415818683224163339690885095136643996523582574252630787791363325271599079964580305775671790236492744430859763060260593341031423120976819500838594750496306281555845130978027076029124775703774387940070310481275574236932040338642460482511757835866076575530866018461929234079414546610196703630240704006841324045287439959399113027852204312612511303015376045345179634564049481553317627935070832693984055258372486393744279598273204707893594700287991599778665738295711435006451406982296104836027544943715608837021742946761097669686265795190922420439437467143178558062937063007481295841511691205066921688519757051955736105685690271704302796396247894818879181127413678482351024959946359876256844328367739432304882815009554895065131362029832840921194106125224686231443287608346492733555965703343676570515107144135209240158931915720713718142186766031351642231941432300458311465749412819645697721687555952634222426117629239872607114940987989901405285329489869840725490953101577505618519055821520397348293145884301816307103528111091304419364776073246760330956662441282889686617319631741864296717617035694691238092801588353719634551669678456235567074226530064770786435729147570337585320523526205450336426900551224854832469568080632942434416944351525360536371679886270762655518653901476004701516836848280021504348961734944458143836896602344026451527408316221672701239621296919989564408550048745063141116852922651987740805514505088259501257816114820591129991925102206099054260230250179093730704076181541677592643619044432103390714887192978293542809321235035384772155741157355003794648878240572016424994618770996562283838650778893754389363825518946921424610650728533598534941000162217680674393396044788563911937821514618300000350016978116952385154948491448306973293897885599596936381933921994533516337508152162143994293450524410054276029272815374029988707378264984292357896981858965924289303300853947384085116575384219792914839991472451817958420215517125610265882030323842828364649265781291287198300246981329318079681090238286281691205935774973850859607436794742363637156584237870117246372389982631534405796889761007510323721467457758801227705259599889218394850103622541328644311929128870859964023798082105082983219638600183186320434991405753590824573928271849707235074324960772260596065826248775445623667273240278477228397705221266197597264761727085085899266142034702305911989374306146186140865193429146641012803528291326794346072939742414015215771486162961050216361822321126173023982948408816443707901101642006173080510589117355541983786817297272620290116385413323528393565343812209552005834717616724944507632211170786933392629345153069118689913788681678786412320409131115643291127432404049508475424289763632392297468549422071887381369890734128114047587412304262744819534732360047205512273338521473002507442564211737159084551256877159544538587120763294589718673375080797475338411486716613376321275686074728292140390274286335361670058268603222284502439155871218802429043388422870318952146398058618921900851618115757515813930808030306704504172990852722507388841570222899329803733581370094514859255784061442777590077407037159912207507438047785520450031946669239011139706490341429296866170687671025998581550248117446174020592524544231731363674025385145276365276348315863527598794564005195975332304518639352377395633070095104477235301433940098576657379654600884462975773944303059829128436279345157304690918634062746812047060324661046304139296033443522598162172479669894157374975685039038941361652887242218377989157435868726936460415396013196669698654483566762013892789497723719467273409277779256453732714569187284421825037582393654137360631038232594165703862694466088872772336366746769679902518162287141107690232038088161494658081625327187448499028246015365504116794097432645844248104917466403695747373396728191830635360713601850196575499923535124230285377633357743510061368080122215261405929837127726233215774162342947061782242099868411052909617956509013725858645337454773737071923415099076853047731561437192808802783510792644813969418645849577212489915793729687326003225985537635679436150676825056287074227871051695305361053857824471045432820003391665006195855364267748750720772222895873577040924422304231754887105309451460599753672925522179228451684143928602374208113142908622186850891752918505809204502585059342972467422336845274791445735359363188642778940430938416724776697692697088777275546738383898970704446732298307082522992606831940921622943790100357486230324170130416065774015473258949372926754336376537149874027784025080285800099047313892682179756337225172769908114877021838849887708143348286790149517111063540182591971897407255174142671177370405331864834146145905863736285639824563037778309760050801157096647499416390236112563241452872392550387497854764375498099984733552050980935315539756884135439442043737384130616793399112113724239740915032220184093315520985096256423211666957438336899689174702015238143221233280218073659551637332506217580727432320363619744481918766254113340509445635437093561592559730532836685127783305074103079395961104936234968765044692781583755998313477386566398792749604898242516196520293130765070229834190701384838802396692923900152292563559726024311525777716627014183361643293404851772472319319105543630290666480620436062414882650672083572736529568770029794787319351815939521955603166293187166719001364629537271467483346830514046799187713114773241073445897183156747499244689946593712083252987690325521499640247326844783089710029843185778561192208821925501530154942336336585072717405825250684993672446258001309055131907696268843812500059935790234067579980408326931945130259999834515031539095262323828310813755688892231423135179767566153071451993887576831432470972885034416615628058347327648730274753040584624109788421735529896537546175694204575669792778180715517374516395339626779142038164742039058010184292112629537574315402821686330828469504457115888576134204986322238086061869453166286925614425436799156969368241682057806057227001265100053498248772799766479719378494516948221351552889585747822353695470418717092063642679835267210874127846770553619326707354812592674304375291683475905669865319473123121486588589713092258067208380811610415441527676356118273446215984180722608522561093062377814516053532889074886827972955949598309059374898220881962141482715492725648459369057629502663415090677904526630016300131364095818948736654650419723970569880688696349679149345871263624184479782094273456182496904453436603889057032436950593600576717551422551076767858213490242993372973493830979646268346115446783373406843358583324565556183006803987025387836092130258810556827255693902715999589957277894796716056927242098157224783757430380824519545204086764565930858533117347990912189916215574506587248888959654238722475186695805993600477743692937183083295078034015820746307790243397764858873951991351833618048711319528319465673654614506459839803677502994725149976859273333945180535163470038735210667437273085366147680958406467248601037752814059968868107263497432569113470488855491144888674041042532989550457578889977526586886436006438301949808116076658775576536935192409789221267571639880166057398924685724776007493533698392462759098129075773806916225279856801219715194338785091039339816293613622936831365634483980942895114787474870327795693837729222936831758131610063288070727855091707389760369451775511913443263122500733974489986864925799854313187086860232376772520677829118984289822224883568063799721890623293962401007387301630550015728954812326696979527069543690902275151020439209411891525506903365900922401828160884700576540435438400218341618108193443786317039677074957953533714188269735818428399239578064482934114586519609313663956406103336517037675302047924527096790724735124728840166145194432389590736024552556018030385454437491270176294263773693311189688745481472425911553324589484092417905066846467504349029757683157211931179096534627814065721490381164566208794316101422741270457157530200348006054258905685692277171409317795835877327931893724258750191505658647381035379249085441765280188169815355079493690809259119219611515872891002336795975997730474784507444102962541009566023377329150080864718002552332852094635128313192279112774394830444132095434008547200266421629091276071318300970867347217568966894627770340685718640097434195382561907501175890628387598334335784388771596838966876398896378439222114254670649409107721276174366310345262563783515331888083788285725356300199600535867436203453006880308349142945854810724817225877619696250005639007972695736030087072248856026603173689570485839091418526407882483265163537990446252150959956399493564896749067976470915137494128334373622378765375462681768544773753950904746660012568505375328145430405007257662013164022721904583380533510165412453600751804583545759592875105426224065617299484089508342138474647284254759721032418243611115079130506198248609460730579487941877266813548333309612871558927331220993976616678582992438448023113264956065832132243098538827833427097065819051911295892398061518068942451254238137139353788550712356301223909392502854246907313289710720963184892099698834142828055256333542766109301589803299948718379894231152651940328526450256449214510862997988819425860439143875486042060622440633065483188921946377717790972286639022660441351714741246240297017135182407439313507206189910724904754489405068063853325392231710879403731941689545206000008807242744059850203167757542126124995735183983164917976257610682670697364417667901496408566088754107168239246318549662247172218177019260951234807272332716192991635164679700258514899455754834315868747784195834591573944662869955822523117230465565459354395867612504519413431897222633750143625537965489393411265820885587576469490391979745519091654294647666490590028345719292440332135118573049467698693353524034746941026406893257508025148142482555819825272540715240052105765728029058076053450731127084129319249498752058398367870387883789200188459263509790643490817218391907768985354868351636156779914179954094597367769420282517328373347210926906434159074814395592175882133535653079387951850285156156610462298132262314441213091968443232107846218854364791972288606977833633685449528027053238172539296530194661809282290853033387450131817806968372714105614281002959669712584255392731913755465324339026509326825749692318734289677531365264750146022746678941028410049053686392083840728333729310959901906765779964789844136551758501018146859312231234395533616792903701326775158041701714601829060849476790179367549480145021767012860088223137884465248381872981636978509603412977829504644950967492188572846450447345939287202585588705983900104166928291101561057014610043793363574393129123587573511721109345580191272401124420189797479431716608382597679013389616845215587127294476151960383822899149492105394968543091241263000488996420755721456551821383112368862605544500050505074177228609899392843387041400747114715886155452286980953559960797474390477372072797811633703137177747250728969878573862516626534457346533036249656817618725661259467307897581579988987214917707099792267522936616509528114613251239720572490074986744595517541162990830208009153700241097971022826570014149345844740330156965829758749854397873400195697937738746557003822405985720438029806820289296091753497975697561612350751582710729943181733125027014803328701102188927324830812521354482541610594308699023527940607341863111032669719333659059929726090327342615682188833568649239169069850939107502326209565268846165345655489987035768995768046291512299256215146415066345336369606136642367835840537420769253652260200101034100953078169283283471013578270524397151577498049182893516348755782789847295208451955183743961645640258297589599792017999353240201222898493254665299536850834315104360874029132617931632798547740015003033780478447871619008279363424105033595631892173732958130840753271644709831581803249895516889852232273950729390387838305195544043146674349750521006062614293657559697354420334396705470710368211697578617968858171012435350180482167419141973794471926906639237508340673494376741442376211245440289482127280318404767244396495049191904693963745587003871743632544444801896325805339469274958539322973275192607534756840468194215470024962801746094575574523188695077239330425736694339335133636317278633884521363032301249465289921941712399085167126772177666890012741416177326195276087588340890829099188887264801875766369412091003449240570763263629669008762207108288078433376422350879350664028949832271656385693909063911611215547719230792839029710790071721711614315267668591751344577535079504625858163433783692911063011401067833683257578987654570846227003467188044274107581182263061527602551745366798486763121533560141339239029960682984665364511172488593105604203573139270729502921511947979450455755230062186469499832242150064481698939518283188808304204736537925171311449200744894464647200627347216074313016766154237644400189193165629834596826858743037156179607436065931519115144971464871307821879588163803865258312169953633482951303481852304851562005251175934272913568404575014008046009919678227880646480854037243361359500864298075725019017908632897982967863329981231795745708097247230515455754238093552833624897390990383522278235446025448229257670938931169420276998010717314402653275429035866516962458640357719634298085812275070304783687207340164025407589013049793471820521995733254275792146453182811047238749658980959074673317103219652209401661598346226293108903250151853466588112962704738867793632265073125910747518039975541310138999601682787662945887690812544949010740516867736653022094706606341563245587097206843323688344020336374747835692614523677941012956014859756777038226033378800497008963423083824082399327614052542835830471920802457090039144184801597768640540506583362988043510058459077191691568652582425653893202869198827263816707645322362705018552136579432221976705252215486297390306195281504237287819633541863854755117659924900817404892836141718609377217372299801428461205415840290114077184034648649614039673094575479767275926909575019535874177175170098789833584610055662425265798766424606050319358563256960597890599958716160082361051553195690070782965419003580678482679981035000362308412186542352542017801904154935877509527465867328671418771457112099883733908966285614441997110664909386011092629805591647964176793256541083000811838649830551983195079654315344426963473141057716663672220333734995752755811222925358156823566464070227042991942058957195951677733159303745409003283453785805217009070159398418193165717366377688269230061562196511929335747133757025940927029768193603782395067187041917237042891151618488938726254902098643312814863165681055732564091198768413615831031331338337936960897362836690538179473005721012700448451106171646832718700637262046437278847646915168286441512588363081680535812320870037693557572878304223825404236366480759975642886429557955473952233998135505150764235265466316451930872316246802043968224753942260796837114394936862097077185532100243613723098167970587951541522314304202780870167823097441778108632278659068916075306143952729153316835642358013245020525406356661901595489725517742106714774070780517437257984546104960854271086970786558988034415704326037124415859343892377452983784341807465776219590016696317542323082535058413313752334429867302019439887251105433228529569810283109959024965772276405313111613068670970990262865454806712238895184214243932016090613205948413825969981143028474876072724778277973880222239062155118359102348046267984743080085962556138115737391019737070584138479226020506439645558603771204656755326972032297301961889496006446574243802586741222773006231982842933010033545860882003690650314041655469976698779523912061639593690209936969578836786507148021716545538613743648718564227990511952232370016263059866908649018821741508022624556001098287128986373616006753224282773825022383523518561637093158736303156266423998516978427167369469742862850203090450052023432460889204563375339527754654393400917670821249878500211206269380163753987881597569343986437702954032890712707581279007112554759843329847192272459351370246968039804398817419510529151807164829110560571000381171042916295098788409072196420412162271411817214065057000387338297022954967569544615148495291311640582827663210265314633071553148724585713015438367930649547551881636901635043111809439705146650593385001887636606059998068910062827143732226064523726013241434836234760642426805070588145926266871878011134969737591803741384826055056393511321336887903096170378893413677886312405065897451965288682974513225108331157251058846542332269232479753102487516959395971454648808913400175677427600827317305797540646543262642967713493848445238091004888166579000262365416417016097410409606292656950696306066068973258686941001029687179557900982708323964824918480135693462993223908169310526924245411530690088832608333513765448097176198482803407777262028638821208834563193697967361563882314492279173124613266024177813227676073675382345654654007393064798635045734421805386785020946001919793875692546918363020386592476998638007401700508065581913078206554815486199611225909469208052961762202896689680806889695586439956037006493756840165909541252837466630965275995570393677975961084968439385947590062396326558372180932148112467189295696524080905773341225284424791226291338500712681719463199483240751615629508591013109611554333516727124525877606621297922289450222856614665889591079244314498652007043188644767440733116269372133555339747061102217576436303130992293124593257937130421593134983974560014665699153957229018061837496639647811975627066113401659220568504439058269869814512631149614340523261803142518558708993910660738120887968978184487536077116828120571621396845793592585049156119787943805013405077802695062382845622185754448730568817225567963389456546424969415496975298713123655547703051210612085191717919591780744788619039389983573784031017144005293401476423859171822307817225274589863960052507775286253645888071290193025491925580519204437653724164213753040532273443527584606483287332453036147036387355277136663505401731314140496004187070413522481694957765810760749822597320686278930948603139800915947630043228474700273037006258272127710745892402968796577725157685048046835227933342397562044288806958363464655234409861604390498860948018332635348898988608837606054588349005318891864885623266211605005976273592723742438653494938576999617544315536579205013944322370491533023578605673279351665939161324106184165752538424891433537456532789890789029151506036383294260505616714439580459641051412034303352831957817025340693396115065746784495449953033849617881142091281602365161757943241836890564519551469728165107167913082178470387482360265798106017869507120707792049194233374965654793733201482104080579884191408965755912552096259816089026114911769312267506435915007278621893134263087826900813053724265436177452691447937068457756080954217661798545230559062839574490184246394471266844705411766824827446090586047468547119264044006644766069686834989071184288531769237371705743372091201873523437145761463515633809872184474569201062076026160872788394447396617461870401470132673725664912727292516943647109954309887884740803800598668932256596273676117324033767791923903361359158758827968265724191119544747697967339300231833689607068804491989248300587538101015671535087387854355182098498104017458447986232219716186004954863347535115385236290687360382141276614383557073047068765660398981764559321599191862796016805426247294719460913069517642095745399810599504440974765232866557208845060423677666280690825229580523913545792120376000805544427109592623970550529202435026274422662351218943900329039922292856591103389745786517691322375471772559049483023152119660593290528174014560749838894451308921111226229070852549831487345129265275275833349823134278892130083850622542933612795512465773736201665481374594420872545887676548615232121509177352896870303235512514772771797261742370580950399257067542830791495548228553251114846655699139394021127505635056183838269319162673533769631680489997875373046429780228202357964812162987633811141236440312462201527172338509446382791572525058575824353017699721802479370186142572183076160238743745606680704773004450082140356222244903511353614345254242807694512463069075394946645023806726854753322545098379863495298905312247622812909000262838907556529575827061236347393565181300421370080301073349932595598721541039102391083888479723041818934023552909151485275737259904523271331912537498161057330583200889646362255200507051028690861580530247841848882772422855591393798587195067190938121299038486878615342107323333152682802155488752331911857645121832951458329326983787127197112855325522721438062105903197536167525730170543222035691184920843253309207892907237644961673773925926188464479399969263449842932588644000897960257991933963481364347256407637997158164038180650137880082602181863975137356434564145911015198740864903944436847792623491438603115650201701739860371888371264163972099502857652721492619891577459858212615796042504054231379731280036352776404596374680572802493522592104916772867054864278323866165924826250393078418969391457167997750541328395045845246628060775357641997258916686552424231343874777723424341339926273197354043831673049808321545990339997174584377523819752919088573785209210094973908985735534559183653099806170588155445001474896558099108387826147639114350885615547267268842812596773056887814349819174273848147006492121695778224768358087246198352671525633221123577507006794170517703967588098333383568251437996512691084732715975041590482188693657904654323938727698322166282642432656575141349137075406926501046810333139523728187627548296448882520270289393879042468255742086653805478421544200746978955719195580570548937202004046136122252716463950716956311731788794908821150916980671322826137502025937217475379100167966738252194328228277801990380304087518393882952593206163258066688086649813745409898172948071932337651994596464946556164716897724470684405684597037236599819053940313424716095536240706298703722577169167567662269438244819763280874724435286872214715584308506306776414929115954955644950778299603307651319960038626242500556022922076985099988364041332337597913952688023832600495331606191652010564129126556048080423753594645833560742307649891251716879402923287398145292433828974873284318928921484861734135534423659542998326825950220688077267765615512331697144084069306954887763021652298791198893580934280082892644536610234283609168468530803984270106035896916145965487642534959957334366148764159421593774037810842631472407620753134009688710645847503977295201427331390061495807542575404505695646580744967281390339893650706829459207603230717042867049914453624739427554078357631120993928453484531700934775266673855072754085312335787272299786265476033193624000156601071101203623835683251849391042234457477448460779767319321453107117257526863400389194736121655438116629595938517735557969124392761440522220352107875869523748921842629134757011300449676412660382314263822842334322561418140311889778928844001516496401666860175043225229883332995525378955688316938036953831927364938131592281279849633993793643187422689184439999599028828824795300016816097317290608728787499236674029434644538186424403476564040791237128277651819277531530677183715122595466423370482940839378151392859732320629671269643854241177848115957365484617246472014802127919766626054074038961096644155306815615535005142011897565455282380220310714537664940527091615335904328879896250128390057074525493526626373977082544594442311090044807682066391220580938823143007210689501708998131545928232053913366766564493966662810433411431042228917834976352409576781771496330502677642730124708605710834573110930816178331033655452169608594581439499585036615938941390280040414871144559438759306429246841758878474616027794746072093772806790254635552469756424702899571067079083206887534480396868521920729968582015205634772179574201686189527838830714401318278759542425383557600429287678347327398593940784814980862067353155588518151116386959270226195759508417945511176894194682521804661900904539762096404754674328271172254335510210590512260781392779676794668815482060943642025220191323812376823446514134855313380149494317862889273837427269515479597436304794661735471088762677476223839935076187013513666899357331629737140182119898425771389857618196858606037904414901575134515831948562744417425076539299937540100263759188167520304332343661212646526790813530643176938184926547496069525434232924749747930647487861917152839759799244993534615818215902855370189841036898823241674504351049862418913720838415484944562863472406147803330678160327799016863936588466700047318927639247470349958095298680445375814329926903423279345311584933317548119917209887221688772365411567456598480149299754108139471115887831317522699691315748421260126514888003349999094724905781802690280612667503201388483173673437840558798641830568427065409583843627203327399993179973232938978313129581224878551777042412475615825538794289696957181711423459451553854188103599698056061418211400124727236299829685981274290106020500582758065291949138979460766310674950957294281359178170613967362808506347218018576927074164017731397823360707566351843278477330424778545651368115841669041864355232704003127044950319472289962772410087709456964677589803746274987380269515216365814648130326702222882128456090732292320549889754430120860031201776285704436960551436265320660960995941377416041736083550841449206898437122920593786550850866801512646036674700289834286397035599353787658736680347908288272399345863989069962652567174293133558727747167750249153987334991587437839110694201205732958973394024077354586709924632037397179113343616679778882061077313769992983205626131733826759380045614957396715483632287720190296019236226069615801079127603978819036027596732595643225427169120123558287223052871312317719927453696809681415508056039284741433438627321753945530813099585722020027697118027143150976718243696396417646824018370644475642886915751767568397693618096481087842382010242915176119511545977107869595053289135647360648231857270466022644414513652447181373099303822494205583394847458402320856423751785042132712034508635806812130768731223216940036620189684734436928286522909559864853668907642397974055072892035594961654322898583964766516576451220501900601800827026724195269098000218572906238279646854494262008221406137766216280322917719989320525560087778885656001622868853832451856605012167780748703659687677771003158427435064126500492354201627397821570970158923065599399398443793147916959917356680994776827396058091087380227460127691332697116920423549818152986235038763547556379355431226833546248593181407265752723514214470813870545715302500719424961077727418608067388469921067893253560852249110247498615852117896602571549272980456475816029471506197589461523343605866265981063589075241130810364249377392122618005650609312951245888658517202543541685008952495413295317747332570717516807567946431712713520629945428665073025906415897809571988781389817682451346973967543101466171128179011293079868573148621256323294802588079838326718487207398911034343169014248418192017144200789783625189844183543187584112289953494044018782324037621440283265337699634993362641633795249931287905682764851592489419682536397244395674302353054872646074308223934684257525465973861107950296879177862476802574638537397730301380577047345652383811585183676975554700104959303037514812554213356429169735652043719448547031848259874809156028178116599564332097951315505403591314906268572341259848314652641503139542042895639655456897796670722762874998202074299961643726824844316370384297161721644591273359740212467676608771425766817956642456843752079289308728802538130002678367827673588666647028459277712583001676272867141661897237231426772527529861490239345168408626892955283476932787435282409300878304659014276638967902275284709898695042173916814472430684642800773940682148779778225295448053105572994051432548507488448951801131437302265624421961295101440294076851399017031245341209500555149154279029590754335039245961831961701373837938579488185880114071191852442617372830319863957135873085918779455038884019443280207178965704335794886118231812875159006245831329206334214156448876856625956470405719656094555619283680398405307220340114916163392863544606994758454926138571871193704834243632217416779542712726207680523207206628133460218520077935592456054139272751659455749137199124282782231578257736902279735298228691645658740586615848682676226733523109507296307703105023604717109455445861560419098444125273628657521607879309499265182893901563681586394381954591484832790506372270119262706125557492415477503584610460778405969159895537882670090105744602744541672676991728190251586057861899193076873903802941439320092383891109843101124569815739661816566802540269482515351678236363935616503234584191263754669787107053157217193382904844818452708378178110041525925237553059334112640054921302529241507370444613414864360724513532589571894994130135307288669106079975364271359941494326379423443052743236380395566015900659200201406547424869592712957305160809639373917615070291856099343959104592178009994606633070961182641334463779266310338016865165320059493037572879038434176574772471459277894368030519279931527643250118146802906141528016156656489504580840408180583664728347967256697377960466431829733748704604264350720087610626217148812151564537418670130362491164065421690053328221213894889625744523901502597914865803805656357333868892046688676945997618520863255560841509124097592194469053484197694271559223610974969979711318405198226494945172078252921317760330911611074654159036701585643919794234992975154814200085799001617476899724853010229590508626895098396051752965563125162443893968490502675765149887543706295368740266577669147864537141919805126305509054058165314346606611863682817793379204555199833556324606965416198091872087932920568640467819569259282880278383195219083780680396307278525388341608997314360799952354704513477004187072880941658441477651645432423166188601389126060443371073951769977515659724251064420800540057068436890790658228239957927284430174072321820157686156375111091449484039617551618835601457770637270875011544114659431422276716860074176317476295303455681256837596631467990939160193037018345447239660982333700232934085544625197663671217042786922976080935620766072419581608720486176366900211200779832441836959525180046641626711474701504013306824159068689626420370640930158152765472761008632379312690241851235949250913386218309803251664796170810057242589203102388411002501622717449264057450508710805601824836127205883092919320865134246034253269673094450567118369079826546746874674045134349901571774519992304742572238203100330220879738622186456195495108846473712208229099462715172307689661603909650759611930680276359720399540055054888005616578810541692575724729865931423969378405407245566763246404484440529648841343716418751362935199133291719203886429319506195662997867806013365236904876917512921928692748852113477440300324713565777667169148856259364978352656773428406933722746094246408185016497289896991339059929682632989515006853651154659448920431829101395247497175857798036531263873066341218650374410818021029234558040261848193841534395430209289902123203664636293363068687293669496737802022819559221618655128512785977803987447469818926819590716836735786394761414465899452547019319101653076261379633652414055665548939935826920019440740018100878164197462764190393756918467713476218157641337191866338708748456966064710738830186594591947560824034877376574138794288478215056469892514405416199243868690364215524586462697426909402007506477565334404412648353520244387091773282639698787554391848773534061288843512923392588769100571636790341251804803378647446828292062903683394561150506794550305334859085718389744842343760676037966306093293611365254931492387377470495181294510693672060195478149309489322266616224507752758999544270268673550401283033738770526546442781274113572193638369703030619868548025631223073199484285130162150561384996158402658623320615447038912480333752335465583324396915642781651195411669036633879988002580650864311418596612340662374465205419334970634123435871389960633734185498284079656741186406465190156786339591218317531010438290915357063663600840831088001351246525403161448455110877227262939258400057390346795498233469166813864827597754365681791912482815601609387491433731650643074491616470457198310491234978649605820008508954934559778522765296631865803505670984562555732825305688381585706302103558586946749681342991814746053619298338232550834985225721955436903365803344837848848071490234125946698058164323317066472250579480703983858240240829880295020782941466798245686675373306951339407631829058504204933268062278556173417483640091323830604043830171221406059760475588253377036982224971165163575466901007657491412710196991810281618601244916009779898914283736361434604471370277867805802037766407518365669198710404135662448667030499722978605775968533606427931681855561793701333160605275319381427866164918880610007330345914778554903360249892374326541486897505943284701909465388920746653409002215755090617499183842285636725180521604216473994972854760784533074701637635603275566808772587700920595254226915315402940374512189218169711370055227528182944738959114480901595473869694222145028816934154692366316238065307278968338492359154315185006850813724700879523123038582616245854275764367034491065158038324425783347681857119852459256523977289609341061138175631052631244308119314964238206175952096606328595763274373071177440194074352303213426969700366601173536590641839447943138187224726946632086411026397143900959783213098107149775001517256544905860866590649949005815880111075479856901978802238979043634262045799464376736816644558644420096456545420552226511646739839754976378724805483280068442288032031334533301835403758276310199597011064755507451176697291615627339639700063424045805708148608299623515773985517213505182036775575854564977889730188245508430643064380498923138832397733871658546794936511153307126300302410924286483439155949224266239614766756437865388004044919195523631147312547759830775654154778538076865374034950816755197563263620700792440301874247873063374370347487038760923869217037861818022228324397964840002034165022142378274484523874685943142022771684817511980659863903808991863368030962802245884905424020923568413660592377600258624748617096318364677854761993311075672378009582008573096649633952316080159851206330185643081126511784462216588014087133485733579288916286253832824756171432424610585707695050951151542667271716304575512298120464416902111701007844159017417228752821093339195239954103287027638806782457173853921121752876433302120627720799827510690004727574601426121440668310781484882882760356673362359676982607951125047323419892568711268669360949818059004011188809215831413205604415692821889652795782033505041399143709855188255302680550482852810126188334810205946346956620678118322536857899784602833399259189326351053145267027911805593587822713621763801879806427993732075723738458686226728776742838849837597482278668440433537221891593950710296863900648748634152876675830892412501534582636080090054595729762693670465650701301922158465994130270489226623144637148434472383449825523024412482595658757222488932539605840151413094686585669262455441652063279276145294885996852215325725941634754972607904364472665426105188400106631777741241406742697351190862450417307851689546580087248224904767404491820296777560848987933463583988511646866291939487773787410849627419892371231498396942190204515106562009728904278243179859876556005493496850859568174635705798266913348211510832232963187944652360856746930963527677024223633224600467249520670332161164537163759495428681335118164061252459636865757941683537072981622331267462329874680323969720887314412876997544773857712486989976288525833802891804981933602873637209911566500004468905635511339781440022516625343775416145417719853336655494876697907729394383741301024993735679463870499416673180066432537237059670874594344846987921592154042449792719549207977143419480210952266540701735937627141295800343742261038606160824850205355866001529920926340205560260578142123901447910441878680648191245598144903900031912406909480951680130796903408629837591213401962658396535254497173055366065901057369126645958678015884842147940143220359121009798074731922062713653701788113474831861046463118652040383485095030773417182930446202154599087065943823693214907480512137499807018721633316745538490555302901740079363316349989791675013989366620255687613232880429659994067042773415155068095027797838898944117157516591163862130015315439996402903356500854674943129745363679260108575147755797357756120376088424914695257339189958956933814456100373069729521815932548235781483981463143172109338824396203631121097713792678336035792472871885192187677254735027385612696139075157028407467401888537188460394119571129734814419366542865684219461559232091684486958763425564130465238829494419673736576909851323931562689007843871316947890945435928937710084674083582686921665947082534736469420212881840905171105707332750456461072455554994987692546295966259633197654537769962975686095037673975581261974807801969960855890824485615223888097030229663232687744826095880634970435071966116009558561860476056345114148572530957262966252642016106626546302120245262366016404573887755632310559526837336294828064375972081603274575856911824193999819468062459839504867580147358753484736445283779511837104613212903417927692321406039313324380852114589091874967174939121726540626007365112860190599595428959321447802226798735160726187763883413909962599744034855921748477576710104607707092190459465541168823320042244207915197704610437335496145879748100553679821960309345101829517758543738298712996208236241389496698178350956678827431424862390396924818041494266507142402046096438036940867948735037778863490973257562761130457999344070568288267807534912853906365089425820050197562042624308009541726456725799227094933488439721073205074390718402212835265688354973810656881887007425652637877885785402596684914331306058735791846980522999150806793757070313134710903737041211760893059559148152701428944711077703957894061100964972998263682648599124682632514761171023587119256523158422521982343493859451511700053998920078614290753299424601884014986422223934884285719886631745773066334733567275075708783214934660379356565444194482950699098593484983163158122206538620046024025528981381051484487100895745636534136687833406442538275203958092233932037033910687690087409754872377797869419928849791308582944155096212393952951006990865522456212598829728615916875366258788056851589440986932350076941787248334783255657210625881840952432950923975493580829168610295147069395420222728330417949708267980657411675603205014357586077570692241464352837166651602166483369448304018317413120139599706515456883646154688149537640834234141851145558508102791591826220160214274306189815077909649510074505276308402704268585976512888972451271411800233126832142760000711075078454558518795401743425685626333414545255270037107869956958385026809253215286783873097807510336291920643927549305084777069799120972769328530057570445457075300033022104901867934425618844691574197896294710744947027647541763326909038417124902497048418600926752988879881591069013113838692552411597608769937112251143965332708126172743012642064449126762919595536981421912480905859905854686399855696211153427995840668820231906468305775182753249745194910110793428751011042531523735213318522118471685998396128431478153737083369680448815197975973422359195810474327789097271597714659235063811454565996034016327368252988479922207135291905020230068123908955388156620785024176671560856210370126234255902692619511086248996038565079038583246771812573927818809899033548972243354614201798780766980386821600375230170896650582118384035351389559630447695725213622089572841444202043610338661813472704209070112570618600555000617570989014520116540965921287789814284620672756021468814140678239775867598038923360541733009215434007588821198887358799291170562040821745931258053894360261776404096633831414922395946823892576864308995401879371435292926937770235931155110448438727580571249587158857946550983781230010573164579867203972253086215261981394404960959984910380020452392728211747213417323665315423648562405108011229017234976784536552857423635088593702389487410546097669049604261720810456069521878246979565914683330190415760963981146300022807521451106168364991099706665179711247932993381249616786438667239632579701176406095289341233776737438455324467184297229792516942892756272473829506354194390797172333399081249447845485262388455324624113288302596031801990258206001524439723956315860323951421032471378158760206953782182597777946704781926815868544696810544496783949087906141643460561877832793752648450017074328586848426593589104943154393513023290159658396346511309083887357094860241657772262645802140488892473034409085346321980192145293210262494045876984867011492939249025209842655099388728477541813764929764468548500029632442127912077194816891521028664749535926410726301155197478087813160338788616156143956975788802505858476694169598140798973603564118655565236067466679536011950070244618237642154911731064840213814127558179394113969644463344229771989098602455889598086952388439659291721077743362414853409841030112664221406295648634646513486107630174106784078601848934056571739205985007752972233702475479809919752808902828127072965172992120168759791830225027711157338299900250785106437323388085187158385641368986511068962641749822146851725105863189285828054511523635186299191085545948626977787621015371115187926623087164857544850726645712257086386262673078710930079160980589697730305072951707692487008269031070566833974329074866135521560961986863076020699132644728773873774076251907824922048096963208141158942390255681010034984667541075214143623175085593269379204998341169927806211067197205065116368396230134687538211841711427825632135699603102804738125775513532522207670095783815009544290942426693313422517696891783918852242550838171532451256868089034734252604432100352452492886482661973091282173400190219768020956152966002231669905940832402249696285544224807898518052112482622328962494978244795556481763947731491182439883103255304060350894499648430719094660570042294296445717979765506959396371322647009128475093259748839178720123035600726853901578562940951315802004846875346707253876572288543632797342192403991308500020980855392094740717100406700462156758388735799804140909494217290738247162436367757551731591382976051080310011534102019258698740110258386645261334966087065021934442223621064504967156776409876060204029320924437203645281322495172200131436582940796519480428337072387327597056934380094174213714062428334925209020903043169955785259355855206056444575513258009860239712153081526088167779322682338162210736434551846378853015874640583596610078255541822902913240654061953819958489763348740746243671492795875634746472752688845878672603084662987748675745107382522478660794370174294367418670773162987135860255927221499825793831486272240738536346909187704902321566373564784424912796606262033888650900105451476837234997749519626897568833690286260540797954103702749125899326034022767913581405480629761379410831934154516009207613258532659736041353524464834149975048995519753456180375433742831208751591859505030318096830133633521481226099086767562592308449982014882346800237010410744438313624467997962815635253482650184064301332325252401564076379188634662434248563993279108132115018173223545850599982486799343503800102365796307165656959953535157119782773398192958593268501914212144259453839740887914049753391228199736125838741736564445708914446083575617079345618510849960492898458333878104054396971440744488981215996268000861226761326900994594009501521187384153698221623286357328763839374337747169990166918953012957709631976860751443155856945528838757599132172570729285237732012454983991325629149588438552761036970721835726553263864959093566411102248915815924994285429788588026935241208815550181013582005719966582857417656017251105032448376465073843643950739565040925797550307820167034855909446696384839487924826472753049764553803656462762570901347033264234928563631114674738157504090277294047216165807695881531604415237970705648910758144469327091564617230503464126853666892091119970477259221623231058744732060170735573043977953666552152345285593265615897273920974475601746643254642032442282648037327335042083945361447827725672536720239189310914273211519273494756883655264707687418332002172861962878296456978737432877827711500527838081097500407932887419705821314979922716240011324710667299828514495979928913905963618372337468084954713061343701839707445182483038199384612156314660987957621688882762844382256208272270364413318953973090376705330776398117458258856717918757254286195036017896173801354850954180496147157673430238142607150838950815945701647108957552678284173515130138740203183516446131815821185542310161934955923215973820773376975252765658485625476563727739008145356166276148939191064481537632589738280107286611768651197749556600997683233704609665533228562277635192851984586873914400827603259551698250390624889922356077262196534876501214262764728153927104875061488689071517837659366663136797611217892004634652201029279207320142016433065835680809168968382710558269796018752846686513894677392467190761213231489732598227202365011135701686224638047334510720362053151501392491283816893218006508314098566672445409797846922899863103229847996075190197785398827367763298693223364879521969529698902622639353631524537710859456573987965025744290810605336106312544933848841527029605423279055421438527502618694880101828220270629728903748620184289199296816944407923736936001524572860848574065299535061587945526610838677994275496663581452573594099048217761647105365575590147066874184232965394404897004959266397132690579376628226773692279302551494974469272233727462535244822109294664144004547264179040342513408450819389056362457298018821032067197616195467946135651122410345891471239221471053171988232336279977855803518704123748049796629399307509413471897317381333987461306652215823987817011597127252272994308831380621757999439388949616497271673147869000538630952315795858640448199117641254569868190932774719601733909913234862108963243389524352881478525971987768864919228897075363281336799021364298114881021594279232585638620521588192248007823839380148735184418093017794030388811876442966524436609144972207639248100030784657560381075754180707166878898986905927639345055789473915835050814628253828894720580829699045362770150420159684987074784039697865679554584946841797004639568591070052468719775028232293592894930398558120572077563601997405976030378374075391505731973484157473440020782044060101271530323552173033365581896184041467163985658535776767366548967696719596255698151529461014733223014976428501960305510408910702424876693934071833673840759240672456910801300507067315496913977708527865115647595347132070304113758932893976034128798852204739280055127837851254732408087540445574330776172031385646226533890340079380205830329500805179121051472087815021321214900113104409023299120697452334558971447455580473757195142455125834918112556074105693767389337471887262399784545585340186745716650325398257896904907406847091109158998311614929001324850336992242877303487788903724021289290391368574533100309812180980024407103546321660538267649033872559320524514823158208101082536210353105953731115839217844776953583266171233773144475072384421419335828820142251708077070735742663401785562509319296405756107493630498313101623723426519951878139946157078079819392855230628841144921038978645813799921454719714789962123399763763437021804704547059549991592532665948509028457202568979162156856200190489568354115676008687633721430975051034683820028362457765186881694825434726804343010224320622113281714859157778573245483785105612852979020863595091273803604285091327235640271888715086774488794839342188412013223474842361070235488618809813783921761119083310805308181781147154226397829328776720130546794251471263903234284452694592467340887654038374867152404168578766255346833187070683647712788154048214549805720207565424889044542022282164490662539524987484469569502017650857957571516514423127749081925273722601724980115894659257808500602461714677988661277495079087220608333295344832261082658092467655325721997179512314945383961836267203813436106486720134369205050236447938938099536714205864225718154746262108988011742506851814982140687632517096492961741910278206356722994956919760608193980275745966745456544850341250408873559327685502216685431598268973529855041195483952509374694533293807635503085736713901109543507532775091294886930194010208665693561176202299159766138163437153126304070416260041894060627139759532893243252843100457610993286454562500414033917956600718446259182268150198528388146099150459711582943332196706895390645363064389436690104570892222019775988991773246575343747861483583617717129925233058672827070839686577600300325216973313634356804711763887207767180429523458223063726596591231424675205872472221849039319776296398985295633691470788350830516290697323933049072963625965392200643599844400891942369038761332964220390828206213171281131046270638216986315648719071591531359914286142859130837652539087065667307808045743924376109637004915520248322066319628571271934759714705359053997150181780102358463957772973652945548047677725237741983314138545992971424238255685917168876560065464748192174270430146285062078999691763036502227350813082524199239763265516468542692445082545060144748696755915292464439262234928808468040597334374953964787988041831268384923730346932870490526964758937126844525219146851724766128006952031583222890249326543133646241546757671444091174158742598106963085699955836554167802715668620374356701317004179304138407643248490723787842132306109706261103873378253509325148878703438491741099817925200992260632057560508178971739170606660025221762928332161924312765517002651254721039575069224082534904495213937154658264020784016595924247222679234023932326217693199792837602859547699628469731005335477002878985982212252843648257747175163744972440866168286758860186674776206912591128910873349229960488073476094400830661170518261702455838521783341112240094944917079406580939619618726143844380113664090888547654529744347567566919533324172788763831306954480921086204641383452879679855807019123526917132020883893521798522588605512156154724983163806916160370564468230169736699629595322680920805657286099575656644642339511162766513693344385574710287946774951975361875590552987871800508279666889130114525965390678107900987496744702618727163374830837188457395022376685745108954261762844248451030041173672203043578619039344407982195303024187199394775877920920810041472251891294318291991230721669919044162034750331614198268166016452035801915587627010223184490169982723581142237341938488668923397758484522929855198093871674130857345801363959692479125829592935477904657026467055168512088242994888339083090841278605205396956628446698639593449545680913758848691691519462621639999352563260196322906078404688707396403271410060467745270079989445440308620131542329041511666309854524153819027884432946729571936756632118074930617065633077715942035474194350771013772119571672439489960012939111076962204097096348600127968090355982124785023956391228309947532158143680183603706741600351547554473519261083040061545832576771571619657757224389632658162006417735737363051676942617272028208378246297888476833392555115298642850334217823916638115080702112255580071084679325196119399496990722187888098163473132479711547347785837310070448992379328765227088404694620374183213558211285056085048229622679984399604286426934638921475488102015216382768687250036988524011657270869017524420900166270713783315435484102721217573240062750677952891135034441963295302909982994468700823061053133587018320779148300607809856741623814911581170973482601294185142609633889116729659613312567040466388732165890975903164445287761714032315046776943704531016457956806563191090433535412148956219962795626697349974190215619538663473458036769154105913018282413229261302261838980962429573400295074414228323690879211065919929879846533202267136121896323228937880960674058367684345108291598040217669014933824745684337510558837240120288930889865765825280147791638143104253723564353315286617863115942990004506196650983674004037410360592587764829690017485206149729301707443715668999287988692207720630684498513878562616650786123074884595325135017403627272634662737807805039652794124724631665487236829823181384308306824275978007242000730828032874339954757475662569286764395519198715442624185663138630033053794221800367946418507208589762391225859141614166683706825154865095541703727894232065593438595513367638000798721929685195832025913290552919900576403743653823523272632916245903183363826302500050461861536474235002562080918171400632001397337830808369605453935127146425075715272458652568601063989858287841336981195216280868444992895972968231971193140706251625435579810916118011892439674474601512674368638102004161201946486480730020997607606214080126606866708100427527828293241965099069198851519204796632451112573510932576069062095814621114311110081872346558976610686903540282512861587922743258429744943619881190604060055863504794792538101933776493945664854677509656853966422359062852289836517511126390408932469865111608725011994390309568475736739194132258638934183399221347622361988217362848522562196555056937394478036394887135826798586037160837938863588884820403575551055015709121375029171246272247504988197513062772432297043090748611197450492239300959795136999748855755593977521861879522589661866444911979314687342426475024531668774638405093219082832378678326240574132686090608057272443092787545518179135843033196286727057598086786381755235563939075266510614529406434561742104794942992633173931085819287219541131585766209502935291170280475740629881143701480366488638966395476991795857108764430681171002994866627937648547187268200316903412714188846650264094739203667999280853176188647838084466052627264234270386575854069036516922286552940626830264423102545235073501751419695780871013617295903687771892435875051922119104608647484341127364327449669632460893174180366470595447456936174463781690604159546006424908337154611112810774900968379065311989930671718554173778773988545385296126889359675457482623283319466270208104828266942749585431296497900724363861562287167460731911269285240419445751349078587051838500629829811854575002443259506839905207048938308164314341016648350074041784274878007045879359335467061685403283624018007512624147900600065019901546040213083930457937554067141694522840334108618580034866242679753317968137263416659597520592156741321777725032178120526436511134140028080383955669385097482061909248782313178846133945603977512369995250486413733722858050489585520342697759562400929746940866706374582704548328518651650589972399001877790254792824164280878259070980615780305445808006924667827249448886057710102873012121671344579968381711892449277725958102158998582048004387836198392441524490750514624071968884379776483301586839838623517831130897777918473845290700617677445608490402471388381821162760478105769104309803643420289248145132247402724759446671459668641684220600916721711823074247945750165119485564796641981035457592492341086795039351955280872279129903640753252518399382214819287568713102980100279870044755480832214988437065298720062701175432734108644119096346129528217708784175761834899478255310739035126676855688270804004523340177804143474743761363862867510237569811554215832418323979719484475667314987213330011243372361676994374726377384540029681716933043034720916076245283944456822172215086451409407663820629365776165083408292906515448803849615120566843399966358572955044112029340909730649346585524209302161262409821351157971427728017862842731489274359880413463578643063787626745136813927104089283831548230247629903261012093552033380841427328874670725646321533817514886685086597634764609400436248308391872934764695955980918107746375014211743654440311704788245942199700494206160168943164646168148901760486497780915375784484704609177250736020159449472665451945596469824143583958260600721555114776276010312690110266635762088242807422190398295169861582927456864388776409582994067757485542741495596550375877628008174213748190102766259665208630305939938708749195574329372331076798213796677905833596484472225304495470605082406942037845133693716139504930687572093074274003348611434129730540890194403832053617886000231997265090334010452836062620394558677873178386144117859925468634402314407325831384092907592106542988708327979325276139067287671621254763496118160832834815413672572235115810451160528151242790858299317620577287655899742948452319183569477445371062512920568419452046894246165965767277971948393010257768275978917438491090026027736991745919557292453915944318827713170389527131902706808385316708296391500326807326351091675299350703490681481656938631532284404389294882676604491978624779633313062463339527590165960607166701333779806892752574179661015475593717571803118397851552547005855282295540247521233770255118954199921688216594813147138831267201466124266349423999242063738669142874181549213285028557015747441033992183603705291890645827477268538834485387798456209692524706073505074961934184450482793337384176415115397151579524074699811823249883198008682785283605165418660285833647426831003240135523338422686794048981443773377607527364090087344651744492021502133007065425286152539505507369919947672952217781690967153221971845942696038648757701945285937004392897329039572620680752964010502053252184044500157688955901441186643731480735296760064793888789905601616326446033109591067274850323400821891811619755956243625163282211472431932456256285542817413881802359337352573160265898029530913078526975239447270188281706329531763485638319810865985567866800709966877741113710182923867729425082651905238358460658273483010644352998090347430965448437611801303735747804368240355689677129203162343541452588625216070767680900237846710821235229977796515809592836287248129211405784183418676023857637910466217045753947035479094957731436339241340819893562381730116459082505358739394940938893589428491244208187738609042707358340488325176253165067090101063550431108701272856249991966531857120530182962195005944291726889932303365281732142968698116559553222568904301747105292686322101777663990915377685128190094007784384962389692898368234004147685572254180181183639325128840009451178987738413389448271020482640245692311278044268972287514770045016450472766088893440241599424880767263904266446722667215672920341796423905198816529977854954600611758270737535769089055916500563067258342787918727833536610946900148071058354314683201502444605888634465708089468617210683102526584727768042256778503086450643425435976342431219348900767235066070525106218121569338655232136063674889928392098368383576042647559311874709353120258547300432352402326546680032091719706953403077207663167571710028099630802870405415353417989782544991934754132132308992538705855876893882681024207056841965066531599556319932999604752006776721350285650347572058017401335688500897305227250681555242412836581165393750229064136737532460147615790859542336233850802195343933016903611721632079283688212503997743258707826310388240814824237314304124395031119486836481961538953651971269896534901060527533252351687557033217421223106480024207582924609284462809996356671512178143620910852205630914296250728938280401376629205754069548020755109835312486280806949723876028032906444063593431921130123465687971146051249101667354705604360060389765744576998467785596357839524521439296819870618937979347064781513373618395150490214988595275117580638954543516154027458854823654552174182011908575621496723826252245865669895332303297545447454141831518107023239638927928651309890984223567980246428081911855418982774176231409240424407299658454407995247007046790484774399164723105976416036348121080470921952178289709918135455922227765350208026702505316029315259242003253513766380127153328096594888292814879511122094228306734025751346477449499264637036959823232060782751074389014122159594156987154316262877677352814402750346709517405684784931947771346074104217609363877064357320094659629364201377168925024098915948673793428910140197203950718235710202360127401975469587962114259302995624883909664968973949582513260033346916374024883449905565553674672416970740567040992045199266957229072929256351711032365230284399915730757575708820753944129769982572278989303604564360185122425513357450546285974842749497659810183774968313597192626733108182161353343478827595500364064409416103748493536612292580110322204799844701817013837206725751510280758933400091943992832667285075626303980995970833603069116546220126892550607755144156505776612513581231785524249658558686432955650257590946494003032504057656633407306936675382345923584733936788227498570975727424449187670743280051591981373093425881826998174966229107600243547392779496273185494957513544810900773150513740759053412529420404746603814604282164505178728122926905530579450941157895622144841411555082913508372807357723139610297524898165737792260777764275997733402957945108306253958948874353989567394792738236366623605961928075273604960619122765127944504632351333258614054572045629795114041309942469146217092020967032833429138489342478558939709443450925101773193386704912195534506784740018291723355077180405476243597104985869838269876352427380677147128452767595769312891879028863883564730518292293715882389855275855327504712369189937974653161718873331038018693485269872351148155806249139484211189301727465904750215236209573009554773300772938659895968214766802815329040074598081127062666321728019222999006428732968024819341522787274690931337403921806678430551833536248913762280917752264337612134639784418600415575695650422407163630927559412098346665158916606989511633451973019762167213447131741158550273355051505839924979989480030659919854843534473063247624104260266754347187221796463439420774315455437739794662542361495244398461412578578175508952659088833904173204505034806576161317010027183714087102281395235094164419200305999982592410708408006989147168415536937584752642837268357947242439011673181748892798145601991364642100706529889946950751714037400618250177170561348774178209991722559945552370296450708068549494656633511232940893326018127844757883429349033227672487217790175318409820930182151730482165801710387032261504771243670982150533937983488622370626967771602551208790828373607966599610205798281046650372535482947446667761947908352816459146889931567402032650713564826827802783511567139503420216324851451630393126874426064786048959848251419320079306346886631463240254373927190959829677746483393133264710461446259657439587632498419620050498130963139242527018849673176560984589402086035428072466304417088528674961512733707572697478226053185787389719433886444663356457094305666069452338626889382543512687108854955697153260317576377728023276727772886490571483588622048197738994023179104514648689539219646624801216076244907162861320066347079144768821189446481716704597887634002003376690091029313145139008408918019029723830095774367366461041999030246654076349426778109823092190988409968215194001794403570934661829965152568520976220882219010608657792680891337632088670223011078788055452074152077043480039795871961619625189300081902100952200010983325963420645489009822673306618878420365763657620844604277141384959120908100037525393225150571371984197753564302126749417331584985603215543849256908771649370931798647990804176725914953852181647796312644929821069172451554134866532180249403477361504964926556822365026271302223200961391537257533628940643648510669606923058137675470366254815234877611671165867741396442002556526463201010598634875278875709545423819446029711024063851918891049327031505892797969547708950408174520122893785028059775980046122351429029732454667704714477768882621218099478092267994410721041724998133502858476029234683721725671202112316256712183820762794243380859069230853911527323748562867972351832776076322317963907280827167563508545852945560126097377190251687486172269234291906268321172381311555778973421125002937361624024957706384971866916849472525710780153711614788365010456817013845970419418473284246002817044291796210233877259615542677760611790489932555042733390560447997136143697003160658138186621190096871330875915802721760766243387604382537418536195505338959902312410197164153844881761007963475467657542443739255157764638642596651248864914257735561387528635300289945922212855977127628034121694694182517374072921647908906482251060778886484580589302434183984838852740425159891393564773897303483357170379459387551801229469270426867617428445588109788196328995503552544922677085340143626976128837859435333495622816078245327148651668585013378260891788598696217646460691595435478449869768510123987495680335367514144671276473750016393774056250153907328446765113682616465005479616857762444382738295543826616968675361945164567955419578297235672964204098266273121868195804155457985612710766673622805320239817854490042639142737084179465868119192814042877797797331234495012221962960553192731763165369384408711418726283423348777875769482698925322846398120055215933539282325659552734265387823084506492000641914132473535434906388666312451057377396715877571309863764667295238329360078994317703481496225045822429852469503948981915576477643332429497922190253828524524630801739732486787779737970405231007208395457397801225021633945036413454997942493912838718126945575827117490028894734516007436733813881291112058807362690116352078536771746770338268393496369294083553598070706409615127972444003357432415845720011572815845247091097973351802939913787981074248137634269187708060296026661659681971346054602832089922198788866400219421440808987718486522550140823357914598364578597971684696275319417550135316015076453259804809270687811788287175224259286570246298203849905665563475128016479810215122029971301323203718451891672606015006021185540133114087700576709524912396393507801519091082957060793901513985080896247587843414509363614917988970959502225836344767428684794023389090396770767708010086319243303919125107945808944858865712190213762970457915191849344092832186773786820864709108930631612117648145067534688440077484484255704099168572984913489210041190425935378075373869880699518072881537721982620293842502677165188315321112193523146069334979305670037796279965661926100144669534012038988380117477576045543969745578079238228425608963717543992010025485508842955538415196266148528606019712862826121873334392161214142568347681911419476957333165167640986808532093723510431462483865333685588380431377384139303484660243328681967582793854399540154847465779544761525098639907491348082914158346141269452950673126546775606027766486015772611426386844464995389548127168799170243245180699984349134390037965022427088346287256541175108723633183870890046340904292025311094539130609261050920027837764314248488897299051433109873758513434975838440422565701129283910778848764612015437689808137250140259683148352141607316410171246335613269783782390176650182987520518025885581175095185795935837046933277540488176742365853388993688825760050472967525212948002065781801534890844386535087501537827490148288320052993500085554626554533842874470210679744693869059939582620844895801642641849621408326307316482243071086059313977431178422229199069724166111161958872534994782498472028826346612821805314267115246614243330648586660998168191347255619001279880062034638124991192028550660177081366750730324160973968967257079186033456827105445234453226065426241185806681799581464464952294898573356387767922980908885598058816670695975628772955733521108974376648428821051297376091567865942192673574786822581330900348551941745106605358592319517356696862778190085269044553841593723992841899523983011428089378196388031690432458578727449630024635178507436580179068756207853757233998721575000529437262101511589480030675803623586726334524892313703325584028245181138795361617204191143377733767415735833297722000349310358324798065910757891866453410205025434266045910982847106443952934202456280933748568930962479479034576261355938782987430094508663450651389849791390659511968877174831862073084042915615188825572400540688789785042247239713207391439818376349796580657678940717238986837182342461566696927082622542919717542692188639894635194391722860964309896327854648610787379577579776041109256185092872309702993091489165875928674498500575015547551562463753886611915223702532545903715138434622866186506241688304695508110960932908944324509789704018392899060404855083457150285218861771899216905750511376373539559249061547345728757839371353731686727976411593371126812871839082060994141369695873496110897335540358587588762463550954410675495593086613665861884018093713771269254865898277025128557338138533000267819464158378128644012571280937338752458694450678702031391013048203084615720714572264990030697336061519285899528055785726992621723450207117662779798819694161728448872018767338107908905544967044775594048181042317015066193790955171108731627525147360616232311385983297773186793633175217537604320102614004190122542298695402556908041924319609537090526857848360751683523776109072674055059041863390410911007416577674855388045625290378689828039078285856962445389325015303378914336311477723090710312632003380925390622728638339985640191373614509368008780698292112027270826869059654124671634574390356581042298279502395903349205601093550475002430914660871840344625682903159822917047931235527996036250793597579325747124851825608353882214656480960810329856338910535535886423919977425182690083219039352121892040082383294313983144566912903707798750497112112239779002270539588400077659180603463606903655925604517229449822372370147060917379048762921320909283181345489542800452981368590401244010251369183003028479691510828011303960146332624178227442540194011531851672629103070523132659205439448781706886870416778738138368431239888933798938147202598616979273239490609823207333010990819966320345239962388833096267406908715066110908912358733144582641432775936897040410679162153604862571766000042218941327518059472702341044473097163707991052153442031030701371074934976888241977354459978684462139030202804001951830177549802885209923130656130130309617335015563917214324122347507328173775758520743504144963482674808351722912734312975825929209204300920416017602016645908971494266636523875769760290476148982602304223377291210351367392615298895789961185127365710676047458224329382408154765224938737127640876824191001432596569045704669365864909009175014138822760698344513145373591609178081347482752545015339382248031737531596572680469427019881822632038259537461246309846761931324057891651996301264168930037630425237881954266677040641872381517628272902674083327669877632616596990163194253632730418835689084236918995949925042421959688039656904572847930231927190466991731562119256342327267616602816806968634068871851183250138976646789587678306162606913880272283247523040810123552433073445725532332667857091502807551298056235466612612714440205268334744541618856692601632876481423302292675038185929153885189810909611295339787973348372523828192077927793086517601057688508587810118400531598926601379102500568873305086218813386001995436344772247707735805070689190713202970267052250118705206252377871168958596493544550605548598727453128532391272967635851702373830720496402509614966487458177911471022901687493032545521851639325016994349354792028530375106761573657349414775560839950959602104384011672551232312172931751480007628032253248440751313147120710868297100033238091355754460224347445333917795113215314104519100779157828406129676732712768301150910887946178261543490345917313663725837913163061828357885589356679326952706163998559335874520959018828343214201013132703553823690474464447103642674420836943196118116494776648098880714281685800557462204601416711035998458576894318254755621395895915708674430322415467823878548808664095067110372392687145928849417544537316479110327112365905999670822389967234111903344642914077347118289480583107683282360315094990063632449374635063792400799809032598556165588707076667922082418762075421496894534995537999023106021807446808964327099188471092507268019034105841600200339075533206860606272219323554163389302962437418693301529731006096418617851252545464142762833058316005188057101254210038246501339650851822018912490659565718102875331329155715691786415278707098041556785992525729059263492922533519356073158189307868131818366190467992883634502675519537969183920029899378765523111781431381776809774566457008586062256357623587764915529702002885121242291505950477960616456790845788385612984779851275404912731842709497419982809442383706660280678731045629876986250970015791816125028056701317361089931736585775472295477754251155827731949702336839669924979644282437177383285548530436247526006714032159047916672242700756944370992096363664286676391404688345791942520249046454239217218628906386340012230591968230080748349328446670811151908509023214336174608984387111059677753387999465300406034040648946716164454778314495945032247387904029935892387904365171699403231930022211276489377849000927291740005384337293413105979225416764999082134311995524332741803659670499737685474516820082714890213081422089781684381205056691408017409282047156644293501577146333648680233710927875006713207609830267671059983070929350349318472819247816486129836910053427988136840755883023286078712603509319751863106810062842101691272205874025963378409363903874729271679657720925906790386909925666279261534216284770543281215443640423095338283393899413847510839757190648001293139061423767428347966672558197280080329178543002418217447164954696931861239437150503043540957812247442532854028955250208403162851614965126350994006289122322857282532112444414159937825406343396244247693200430213161350140909541588175149278858493021556238939181454928005790228187445994034907188846135310443956423802950887919516714891637920286787436557219934679367865601718846640681674539833802503536853616133367965212985523644364206888601536899830937230127830395973889843427718674367082067093057268703080883368115938960554582378941557342376026234050088262559910255447926819781829515045197808070320028569686356223462328380598785546612393226510435229511416880078949438841490772650619759910668749596844633153199529282368241895716264735715894489665381634608211926525580586401982713938418977258441255145837930597755961366907723445732885704416325086944478775249895563460009708118475253796255429728880464413629725711266255200787552876001308203468743969410980179094908358002419294678919552578680523278964229505211200320400114267826142954033927621487467403357221131351577680148956366307614329726067701842956614456219369107284176250279207556897987939795650979591265555116583830175860377564043525752653030465998122985209914109477059931854052191902489207616091519703330101868541349564372376468485284246798981405754456002236311895149523938762698067489016195153976626650850934530296597887557726636823766706799317933717964451377998288751616527036234444737713269958754238781262255376782559533555307015139209278890074635777329521482483585959673650302377358028382439745481497221327870661665574004199719378132606123934832976630437931587224991746952626281987809046382727989152892679419468681212414382194348606932058400864985505108507109348054915123438000541176266930007665185393413416578505180746287044205744711474671421665682541086055560636906433377396830970299397769049489884113599851267747580516785101593898647853583283082438547790241708758516890936508870188530334253525221417203635009311175396567217102640962724970646520378410712663274140848100121146701792758076380517105097268654293500595051573465494513083859989235860246945225647948491574509145866752546888387819953284462039987148429631775631963934243306896139687024680162716334936769198790334146823365825976174849460842625875945326290386516862080003073249494066686045619796062436028152777855477894571561057849354552562361743434494340028516307849887368242077034989414445580602236446743812610613542609006279186477818222427812969003967278880300465702706684724150544823054578932729686527306485234129681752805493362660561713151077215192991416560664439718714018868120840367569986488095368249728884242176928998790141788421311690905356052305770167843119995706997959247967740257753516155288773055025288582679482842339324912095766864209718600051951707773733535612925086562098389306207767897910303651243693829194200337636240455890049011515968970327084915659218122466556769589373515018821269540227821593784102828045107174339711987997037928980033979435806688382468797276690210733903731902154918092651355485429887358340648053309342524160215031551182933705244148770230143700477352026348633560083574852860660187728098800793328699536803951264815950905182188860017232023632429700496743944115492626210991864353798913422370203926125464922812027023762767985116005859249242520868378561326456405982019369662600953461549517307145515415999726420972766406030713667572776773766731205618453501717867844366885361467024165863730502524225782557394261310403445444271292402841067413526866597104554315684637178666958240282383368738341500624905443630998284700678799560733640227553158278918919287167280760494271372592224079818435680826058526830215830307926879571847270334938053599200223670392008255605544280088112559647231679848196791828853897151204789382388726377940378996369074456706502858235235514726429163508565473521512889663439363813531556631198788751823729774883266660601258734700580959782526022361385983934056407597376969518873341915072214653360458140225282829964906747983974182782107305111931951698230364188463414847000361201781544269218334536816637857051703402962262145682195421058784126223835916171457166887965585834612583302967252864264834350016963598544674124334117463586846165626879762272806405229914797184643916594759899096553842419406178736832375449362570455934014761457291275558183665196892580140370687659806865413340355738072979564870827692667293851530704404777499872609895853568324645263168727526725334339686178491340477961210822917019832987619580405340864393722159091576652781210957162202633297772829919541495927914440461604484949290191912064339963159560981256416867264296712666766868069737500202860134130830007443315457966369578483370882471077153605233328362744894050264112300857003042533423804269661226931220735798346763369669919679751979136656589731114475773441486844098259258243545183027612378428809293059252993889642463921925493386517459215864359471984058442414971128261697378735220305598540196365701997085890082205216887806367308584215296433817188879670048406070091987178777156084374635877350962823340786103373479134770307488351407639940900644861538700137288190022062174169609023537514347148109325080176413649430263360207360014320363282986253394336714381319957341798607059836562096053086460817395890477081588870849544795905975745666799722665433318005905557824154018488725700565027257336608647799618420347837998252139236567869761141515822610755956068349055360630325986450812034620842566566331900032147379732410702293473416803240189145281366601638371663992071912220303308293494914957486368461349693772338947074666132780498353534288388201913242360482525422264381801386560846363591022222104305511440064930315429988929804062850027761703434096362290484040042394121849321555301188788954915580555678167954292088024995658647259480932421505598290741445998853071784746131389516417201205624004977574503920374665337855930939971433044498795738984599142152535248604650109236034206415282714734889185326446530169339112997863555739290912849735355631182578693946376087733060783204353723985452080546601920377675096047048749228361509358581231263338294125676938084544075031986123606288280293955640074842439312749054382760164059434044495475408129645484054037445380222969770234626271611276689750748415657213771486161862117130791910856468599721185984516385684797378906505223022136892916036779799527284403281712241173110517646192354952452534334497974936718720550353075173047569422114137289515413290897361813573792718600360367190151072065327408731133252712959566421591582024273480482478656391460859497506749501716589315274444263608425901582728519972028740793980141279134806855357062954806711691108588748128855434792799123113427624523627577042970770911434495352243060358673165795989647617337779218777112765994965205457274393457970412130587302212455687495772795693430993999766770006796991226932334671413377018932235022425659950762244020030320891821957912857164190304746693294660655954207657600693627929223368206606135815551060508111010411112017854991734552488315400861639598445150361234335832627392437062576590351009337698478160296974712469238609604819192424080643963772554765433723479514206013489359022465129735522218162784382634054971812263747507110727532924445171682421000270074837484542821588093287412104314317773958530320781768010901147784764962223697958343603516821318379419303396246789223223482938372359193300329926129186028555378273181945344816557246372012343855352085453743224241715486180130568944598865948933111678523691531598820025304465394939235748600785704282770783329651315188813749836456203562034832668902757110670216582983144986576456987303378380334656248065864119978568449799505644985573678875857953402191929628379358214306808249717664960936812734230574608129285136203339991073716721481719470230373082495521700860268918077109603329300343253077264987280113714801488518117828944347341905743660928250521085672410380062705239278247838777281591048997372236025465880752393745601536415098121417743113741526079243620758175365854182570075461652594927363371063097253093702340386648430168240655072765135777377569344551186878254501802174926988997994850542237838474479445442620163475192617447005739805750822546636174933968003813970196897182397486384923286104894063514716951727995153751899708860195277327194178624126434069709061327470719243949339828972309116849912228109083362810156505571178026736588577511226737758912723474588039862197837113409693260706089697359544635030421003958918639627912059894553941297396893720958584281341843247012126581402675023722852423090028930154392958997313313019002038907890968958077723129320409232119987331764236233179567702495018392559945226063524036815012505930240668015029872917854254277168069750241850403877745856693776455762552267541748201658650793677950666310355676236728122412453106940395801899743084930884833755933469270339259314120649617895016526956005223808498722295738387168859701734308001964870190855192262923688580661613803739702072538497306703977766753808158211543347383471462488904196990986929183029816717644279917263937890857926576810140030611700503238591459517661886732128819882406393954379500193810933422882538078378569912417817514433637590608015695992864053966962648576196500401920339039868113149961515701952112862726760030763164797256430358594408355568512072936571267963582140507242946062296002793973816952028514750761225096045025369912952694792101159424830369866743786648450339725182767949998282958556704080209993772998083018887769316545167662465994475720557976348637271398064347387819912070070679183331769422649774322117444392014004974214217667093198200653091347105648171827584568935610218331625723391441191649039311654946297861476199669293419191059657268429743428462446101446957354740769785506339811599539426899091714878587150506886653282633950183673276331608412830110119910149408611733081015258526734021081047509928237615833100554377877684107837293639322341206073025727290776376179245043875687441590757170606769597902818509122265044121195354954547894881185918242862919362844030533832783775000543448686664357320388092781550726756098157871534299549945716852578314276398472497364808162997545445713691846654904400260143403574663148988309521477949404208568413173384370209407791647695872412403986676596008322722243983108554504530808956153655510938446459048071991852246520232071149616887294599201882416002922828866748049614211086297050811070191904709687504403434106838172681403045551881037276241389314486089283665345575654673504457322747523208629666282373073276700001932821839376199262603301322552045863178770781708552896221128922408930438850203626243354434905759268434279438693906210240537188103312576738743177002233925713551636176612242323669901497860931994449022983925527410920521743432389790540306927161370983958360432862714197163230625991949136244012256313320830128449474046584026719329951691279701286274506878996614244302403817264234282635160168182169016005407134232392772677237524534110836496263602773912530872037568769754330654879222579728349308403853525787721913734744522895874586326728806083877524213841583166119663020310694041001177179021395628483118922475030243847292518980187731656027956020043326563487459894293887392117524765032269872928965116154794304038493177711335325101264603641313469652932628542094320621965841244593824048046232699608187878887079895143559685623444798383976767925967896989423313396570575259387582285463617440280419309845199931025806000219591022624857768029328579836959103046432331053166139039623052856297359736156182357362630343015683656130625352083253272338709151442460802052659996548615996649316393744942700028759189809554461823735097459191839776590738768423737465528997895146692531798533964054806433265110272231100062872560876166006303969344137253956046613247585771786184796794260302715172039001265582819701373514961262011731745791986627665775614700219079562011380417413020095642490335480448101233461967626433529997350257836514471597394703981314598148806197847298769604180813851978750966089833722989680253179423851154275602128693649687431015363953224209650784797219345246571852170814576101932007781811554794490807416984662209591641066218876045828639666852114577010722555578828431693533963961389984202660327408814397580385437934024659766603084958280883889655628016714544729253553937927955655148661458529690036433457091209015168141660252924619207476156174098751730688978026865225228728999325855888161167315475632363806993554764745998309710271597539831055475112109419726231823042105678725922257509102881069532015373516843604789155389431051633451519450865591475606702489340760420214569193234683828655174753067909649417909564198828202626447114551774225264534908797064907989280947047093424330823861297648599267554144276703818328829508195744415989895597617851866778403605108607418838991527809361371867487753475469941932637035495007801880575418440801291709264169921520913297681939040769502933144335867124191824617011800731895565714369778573432627696768727037305231681510366519579595515805647832424262156521091481283299660036379000993061075630590258444199078846212091338100394275878748253730393145551836732785223223355468773232252168475633695928013235382193530208148821665010660291734279669473916984045992765777445002727849014879438171277806273112671058488442288123465915028558521406600763783043170426648615457216896376410413534143641229177292221025277024616183693577577855595103871713064989543371925685173987238721766700115313546717227971947289299675786239410062890882547229475946595351950623639454062228638396612625657291098274779127936345474447256534053508219083385204229688715991412137679730640839323856193050784694412191554569485186297378476679654164930715741314156836473743515610328540846806888370307653048803848583562783181482708055308004391158187957306309126442191561877990115831576856441750376056837438050240904969442034562797195079294099691182001761434620507410189154294249309186519317345779913905269817561587865131555323017811641175240624586112019152394303794789234336167904684337488222050904082314532110133464316933041303740584844285955698207254150937018152656751249485003150948119211919465820181601740947037136112277229647490082654472083396887631156675088232665805582328404840803421968853074118752594023951979774627952591361709016860476417784798673449320670152678245767542177557022651840271420755315294588212019603479031378094834343590051102048490891958668054222020999884700343331209969368302054557264839155736092608384136309207591275309075773068837442017426954462498044422580102615052612722814985689949325302104856271069355781683181386904555293172897668443915236476938436623524361496212818823480546133429554515322638550749760331199327557287103375011051785761129171156106650149307002364141320952376900708897469627027332467041950720423358161150533123781127223028144195176365362569050044991562704755722798444055536289005070000847121147091229238818748620357945349502115152986862843886882392971938033365347501270007036056954134086158612909051313450584143423529426515429791378640374580748064649150999115051868988036984599084358083499636772397800297866490302105923191130132252519905497639451594712658027057958149152166715596413908054163113429055414430996088076345565394001005778887597379740340954162180468316098653953377108942264425958648841597820640402671342133843498178048627870364176683848673602966337825645556839363899337334770307372232213514799247159184385839747026578970822609060518502236748668491878200623664918544622172510887294159343948779144414779772458537272111643000651811772493138043394847744432540648733603413517158227087757028335053736275086066630617829106514663212342900687702531069400697619970093458409812762360281509674522394120457677266754173522050860369652749307551251707247450001173996586391289901640144363581339783857540634118867048158870400156850797412203681435275021998651524922783017129285340156142878822115902433454686861554282603395019088420667453282075415870351218193751684399932179627354039158726659390813107639633087836311791652568706469880389342289824474971004077360575626873636633212213811967187666968814112488346233986543992532482519495544921309068638910396017307105338720014404379901731987314081743319618967038493824255913610553438592159581034709470082200981970704885910002914398218079648772036044528227416606516855905036417011907787430627210083862919722791792113363502439565129901809488894702005777272904439682742925758527224224983321686739256514833454973790401470900306383776739362497081264964428762130402630228824713907930908217287296658734190388524497976738323208876453379868273703181796654899580741754063149110048343583043768834913825228945928686682884935663406961237813455951428642905469984971377776206418266466516466251137431244239203684460083860082523400900946009886249460343410169091392943062249057761542203165063881860563743837534463357628760387623432861395866286573134032242840008328081560089365527282501346525551550111483823818076231979730602104502301989853944558788178926912596539532785360656303490164928264324793698848772686348376474446227307933035087517046525784742840787930165756023590004627453441391083815516777173207228562241161485059488956474431786896170887048448891264472612956889142959883109567246932137372693670898456318094419879857510155806952660813523227098555824478526679772502692336001178115405243053458050343336418971273029998402532763937629197431081239186559212693845393476579131147519626055322661756543136935248853276828097555960937333793512068680624365146223368990055503356658710517791580822598701542669966855640675655078922891858628090708393298651631391069043668368009977165014994410163238912311708810793126868912958276053849604320763579818434410947040947344520863859174765638842615185598263547015183752313555852626919323282668164092715539945498722796671956093900307680288965608627917017454835438254314371239605104451344322068187024944507795998275645331620195071192261773762545790728145290817561244049623201341114140507448251169801018140930838231846739278325227028219938601390616086382455764784686048130070333834752424775755204268720907552152471067817250239581463143654301143435709370394016497606244486066229632286972134610949041097909564824111295440458030885838677315675895523091971768405684956797168800742837550258577529444695845789864570598604816894666549030939100812388029111532692107760615719880621813821811842603586602467635047162237490649679679564548373246575648287324454498017883020780001780548899337311907794781712206903576201941363630688805978633116203896661731497149321116099954356678155051718010774566213982460636970068398642601535987530209494579150446837440918008307231389888979039047624968362390371586371095576301362337285224844936958883154435814499703923280392976819438706692020882181872244444617879448290710695795293996104312293035346837468344220412168153550079769907636004628200428073483190572799919718349650177716344597702359535577012271104734309300757608049907229577162504685750164494164576954361502280921122165513139374040410508634300035799724792553192271333878087868239623777827563140859578685173113699915609418627377000894851171981210636545451868451919951878974197381841465008409060169338164133226974281770402168107953207702193025375703041559246409610753125867494779550361907516324671875979321995975327815665394276998081145897790338338773805230766116880983749837407516077613464494771015724427968919372051577342298096357293678702654311999597210044047769368600035705940793820618768761490902333834810253909741958025479381259727390496011759408583820316894226474521435030830040105841158653700944474658814703683205473421318354956079799284508326768567020245185142162192540478119211710192111398174151053347574860641647069735581542901642222218681321302901308873201723669656362789464564605323960421672199218446583351287712760878086641705101650538022917619756006652275937071887877844005557173503253665435088833390633389785901184225837109188876978043768499152242736040598430474581413051131256230943323440665809803439898014373174488526877639175850421445656038552041841941034967869152239497511771442889265981345105314349185371426072018201091285695283538218876180113400565267060200768567921116929035599634351199362282840965438417076261060132947358072288067780556069820455151067667617680083278504142051606101613746555908421712490713938438767455434756457396053113805233554223605402361312282633454340074961433660213510610230597374744339967854383283381001033760920747475452969700161982936252618887121073306647183659902048670861801494714767601856241488367520882544108227420050181530535023459019376145881438241162397102441262467642991530238225574754348505470594969691887795297016571826569329724331937832838033490696864420952610321299886982899904810190392782778521949759115320566408130335627983348164043298913124771467984219106307973343437745777845335274621448674222185562286928884102627185113989664164807837379002970504901879410667704821252846971054298702186387271916965296489431119631219308250725566547722307217610574490366961241880021940929675520000368915108039418051437921952673023139199171712025002240419728814515603441811211444575041209398700660496620377240245838035284660934769941289986129196787698529458071090355962829839081140138179802718934861939801269067939614463287236766034683038713396937854808993786104088513654023539021706257496813826122922636263554419757489135235413658179734572866510990621614965260281215898730039635183100539896905548666823246030603354712447660085490231238987076585173454682611492147866046215416640779884571500807193758670404915224661562440210935044637916053013924246501103547123494796758425544812390203307886123301388075616054158268068879406038236912869844192788075971047977906831416181187052800870485721426289630305256372403748681241927102486191267024191073998544787038777915588507908099874180850567551426736620508634072220124172545837151123815747156521846064126492462573061716472486915445015139436953032783288551166518803194137778980113053391621526901399365213900456614681349582273010036243328867085760340462400948740978027234566074159254581883075983585133313456573422275767023955840754524281637255947509564620652637919403227940511968034317770657960803430604294878548666195290797092725350208848569957176600365031257598034232566880164267826349116750474278369632606900718006663544987223317150295045008836764549267923400329857517456442280968465969723257637287385340044177465284211512394698030442613534202976230828064540646890202441387323033066348025827126576058073553147920142914161874947543437363786985480662606805457639559575346670373368566029542266640117781437623380721740299856286075963945663807718430602662609258439747189120155438357493871557172725747186493991181578550964738694746944620437808710048955890814224945591173812280122468529475083136523212088604005984641070627347478150101743951109389317219010350654019922680268718808914858968122107977073368901393555316113373326390149472169009462981235743960318268240337153559564129696894010967364833687177841121771592278382748629926080354442689149960706145464669607261948522446544225195501954424001696195515969366277413168082540958818871813743784022138726006964620596652320019704545121556458306638242318996661663463715702498221851372099214048945168720042084142887029332619023755019684013420811652048068181017037902296004742443460037357467087831417142938045781525599426641261347450214495514311178208072890835982934183541638169009579417667721498331491941910474644837244311499703219901616641059300213711211557507019234396342163735388481098566137991961914175447628795159062226567042714974305641499590680197270479316723026634099416516823181081511984430808404476951022345859867310308897476179785902287266251661623159353762731080471477772953677933459798483613144870475102481373200667401803545581971121566189579044879871230521997424536863038476953619223342927420668681411697894030600942115615053507915711248662238587545381423348846116139427903586884212104025445492426298400046888726015516754487758426832826466394142531845332550729583639294090407513114120018169562186620604294538725056127485606787663040490167496584216533865510055044990384827522721794652750168054295885848189599405607340379401445957758217033598002747217486886258316889401115940103068038482344985519536281525850704067302270725149497693463001292303387552227065444725009549145873265515566168565145435551829451236483604412256187370707923318130675619508044342056935639108242762767326234827113190488512039753738302241842037421970866532717920849763141406549793717567864190965030027725588477090910870273786583413834296929714457464046707831555814000156158297171599850556329967373641643176213331302788233397627950867790753010136293120533536747960613920525817158392545665369648075019009815961760063153369350204500742758392185689738341132328433782406032245615758281140070121887342734056245902383397934456141584272479500661121658084437336304407501145454864781959256902830064411899341956205388999030676488542603495265641021334807627533994718634448833451582352763515155835718741718813651557416069062879380542965682233047105165775086245980408927770131952488924764940272984287128288852175023110534982012283577481355991396176951960228377169163560080303570995106503723335913501093834465475862598621803739746234508558934579792029536892280081516766514962133685783579391680205036627585825165726517204534974286793222616959567847333100543083827439133408038890696742561317868663240154962448703731396773355374696776902390784552522394465399151908450553240841827494412640048510434456178896599621563987357615063413295535961954048075070537008348315011809968342208996762586573659309818652319381936305300032463575804152987766311234805291877750056809325611447800965834127870879116144232605254535867688121247486557556889067731632225627947897949436710154483276909429094474769995271923808754432251793115821622706185993666488777964268319217566334730531508968731005884103307131151133038647468193370049449535433205752019721092118666811876110625191333329539608973848981461700459725397658048878622856430447634751029305875805495139413071666794296942329888516055798926824077667487817301233997096636271608841929330203345963502556321513022120816467578007359020213876707603501616667932589660792230489141802594944536088946853747114190735913047398612740943906830528504104765640228944952959710334428499537603609283962163632514107735873630686306824296209910540393057337273639146885253689615942891357364783246330889995093697807199686558098157373413843290295076196679344006419700745841072647701982556462137345740465191503069166237282725913524090976687153132178443406146392628745346306404266100177424876176956200648256299317974746217159751539535263315995635474467322764993189937712883714460328838417060276756766194126362202149901999151276025348909065111158400753012370674597078987615070813243840890807151102403042645586609764635863157729634849551105662287372711910394981210676079947804653509101891036628713146980033908636425374905098118920978602669423062550742851790815570878739815059619784807651521707098477531704493442970495405041824404745341341454312204636285352360466696623898467729370115093829247235319383694079588647531707786886265624827952383307136368670648892098671096662591963173541398993910343654370292023405142661713765625311370774699063873133122379607138420293679433992098782043173367162470266499892537365898391924452402933797152177706339669807721527421415279979683719525751112394148428728990184150503693993134294564595922072250653275012722227017872694254456709112430006197491106354865781737765415319963757910849681433798029567721908802270041140301012794440721477884795543419314072932727717317753745883655856375953351081090889148792167426076392779062497538115108156960663118720684783776094540241864061544025139708668685771479360130037512314160140357861500380475368505454991604331497217227170656846142631645317635239230565938697470554269014683324614483842765490349967950193253094704126134286136065860993025802632309463983557886096958919463592329061444731659886767481150228901831037294673249953534116419519454860089913516480169028129709828654820283466553358443155474697511642936392218354879009937054580359695114084421330354169405742189658666213972323436025480756708681231202381058187363306418266138312987115567047245461579826560865582806094758088172634146948179499722553947865044233832342753581960659650555593371490181403159315395740867458741810668208487920213770905032912351813534666558068148682906072021850733941645188008350860988448430628850160528702251389226556209070108999719865139242879010064470102680748808022419557163928650771246001411724779484858546572527539090064753967035910939224423964585946385394853231137248118671187086250580773169584384774725075204784840023093179812896730924547809179495266311244954389623159329626399949893482559978551883865378316750141399628717135133325312467169028934567441472940367487474566957468825194562716864305852982777636484714292524354687803741504773170077063193716956234366995667205365676546931552881107119494456121528704709951584434525050925698755044030765493553119376314608850370474720525666715326051455882598217538830769613442626237974571886502388865221298297020597326984252171273381674287999948262766064436355015185121730072126731035142333148584102957508922492138900796394625516566998583156684016817093717311830552915407179308885422071118891749202330605037705186352238989172772370611245728076774520363028948928000400753984361499270069518301928810348224748973571122778235234060521818992273933448439638035388119191056922313938170920496697044082264378544883554966166262469724387240025711256225804064767654406138793223493011923342552822873576035391874543601646749700883559006148037824824129648095368168667507711459980179835035549803639416743310983269957968333132572901009630941914391818426645477902310161887948224519847722614508493868135699067043493027394217201942263122205125407198263750197553373215275598848168998532055662904483106634799721836670422792732047993993737295457829314247151321768839423349848848477684353677315602730528554169836021713821951654003430942890960941333534794784567625174895598853928861824659458775682753493113671663340202525219799542988739906730778946118478978929474201707171162447912302471242451773955081444550084810190903637660789629446441208186404520508076996596679406518863983821206508449627542320196936532870026849386604989944356719083351878188872231397449245657594726098797657852239934558333674094650872135466384322720451093404224669432174536588747071599466055451251514719102583188022300502585877547981672223699020589679803399307148998225193189463442199678386221566092173594484234218222636489928977401945016054825182562567789923165205263415609831404308795182128157942949281703596831800336160450051751292572806068501372193012203940958294625948617065982423320345834053511227688770693382821165652656822743923594269217825051254145729849106745642088647609278238727615186507300928582194741653318594307731187041453846979651231797076749618806021848887798758695761478086002258793913685462588164487375456982184190938755363456644992976649328847546632788874074071768261641510837690271634105340727008433030010197912351024846028830426586867069321271179872207643038485389722073185175834846092268510374521155329360800743327916566736080427082892535234451605294824642992646834782143616840999513179266705228669133814225238269786144161670367409984830586120965243568721776913529266835438800389210179155353738080925035325104864096387412922202456268596932355571101508911880598790981294286136959217791550987264487967046423137368223477079159903901758995769361572366851451651760324297608282952443343749611391951388627156126852312359019543435773640008772371768891900083978026709548262672991489047412002313273598163041972734944361717545367845759092743061163363844278105460132990351231401519951361377231022046249638386781256317835581620398267418749220962497356240314876911158124932500544524780732422874789207235718479658733859826445722704259152590730082340223080405882335637737984001515160400560085405516090162026699431874267600713464778581819065240622388091676375148378406978987520874909839976208224776143940998199724849049447420874149491717796452783802891834945611771571205373742078340791819142405140051937012208340636504573073172255500779650241939399167460724389599007808757367130705721813346144858993573016826391346355642255854482104619945868580198237121014500083839516472688895083339333149999199539091546345881914608107342014624622690756453492665732258492305187367825878802860518735141807868925502177820611702799213020980654797699811089141168804984584335977824399644209755824831090742948414350748010201848643482494700526531497324446706576115439721611853103012837576685574955175581064733369283888449575142807264718828244389745565643025219807033211062435847701302798052556831135975627420993428273839327987627767860782596607003495575842116062169788037618344893532835819422050555291141988540864333615756756190191671010782948710739219638656342658974665398926559874668886097151152594177498228793723047323163849281781963431881740490534674902268083661823092023131779083594343373512831739387987485992866500051702336156784165528619019966628652969720587681464176003518875108482375898641000147967049262958327310336342938069656457692481522361548873998563883491267030636693213384987782974688937345784713158332794802331803037054516383604820015468506911669540087323114442195768944779180005834536477795842188300197271814224353343435325139124488544733129783760393880759125190215229459655202953286632211457392743343916122939381679512132467313141292337584447559472927119714234565236648818956602588010970128363087135607417424944401847661743854599458697491409812096133009126228387703361473546739262121733377388488046495180153322536511444910106813622230043266243693169321229737589425171921748009786545430584094440738161870026349363998142058118823975010635223764401645350565175524231853548044831048322233008103232714174546216751532075037277125472362247072738220188011929952446532602384115192768597503757204653869621352659959039585718197344233832811450263330141959780565863278624795559866923657528750584545231650835813173920883696339060426466541496944669249086125005064620851241139732967644003446670897355257612582768381240591457145911085628708626327787775757902899477861740177697837717897201496466833534798885497203744501632344410571309500021955712800413503213058420870428318739083225502723495302452128780718552130056438380840882884890342072005319308134723952945316891168652348848381357724231617733981316310589561099406330204395889691434886256636073588107854634068770822027765897225248965773568233026215596921112728740165919865526385215873121598757818610535939060426967029416723256754799154088561328328714863002045034961103567211519470100143861720547068876090542238775714928552664451123424060200137784450887883571965007516258989272940471353985108418714375725746898547224255947220651004627542604446769161731294402632061425244202329540738656928186361059345861988903796687099596471695090910954391074485771473186878678067429072057469638969985545455104909155301463580011028713322971213391055132103137307864731388321954024529640533847345456051597662858292861399451508597709819685488980474383213369751649973525670813267271323608267489722407776367751898552055586163651218616088790359876181755934436254677133894774468934338827082781860304297676966430175927997086460133998899738545020674438734490617433705686570046818300692300391184511621617541049504084170372386669819814440887251368370268246407665374231763095651218788877994907470240760053294740370712350671255641281969176999532722858624495111087015599458373237696494151001477338123199259072969714526892948237450895163760008522761978020226909303271608712107234956284959532070920850657160555406863474168670992074209191998497256317504563398745271454145358773593714900386787753550656475989890780565521522445073810321652261676960032902690084913186345153723845164300144664682016752566189532404019501519069865979837483575299283489599875620584930390700613222201321682543830691949391205933596655659137071273064125749691534938227732518716398114367568718435125984922957707592143669905768259655934495564166318185421293115001653839656454324866608513587681439153363337783721814645018430945978179621338567708319556592752931921578978855786641170363985923700717256085331125253733248860800608737103529097261539713883819309059895498486532418528586007831547975876655480226975773868012890243837959328894462699786754758863609972061775401571009568034635709595350750010944829788457968492287305433782386822374146453914619129127592319819013029971149166111395970846391710678571097704472032665566150650563343868546449998942312149701386673806185435420426221809552652007612021014633446045169508542323222032318144329664513657991200401552837420495628188137429483500558628353381492928844930435023863066179404928277453449431560999686529286987313133353683011237640827054373728614695829792170347660070452132948715129347551254057578190261629058031921234335536491592198937249068283294536431945059696476456492169276978709456113593291017531469661273493711485317631002721380427897973289061449391251192037263783770965377015177523906826678269891862154587925160790936686343374590539949566252789336155675024744405583360834954096251685229953400590358751008741126035158074721540487769007942414123303370476763206217315265236571953674233941672596774662121560122797291237843002478004408686886136946926965781619781010896818050179340772717140732257482583494163487884401121744539999481790155072954878058369070502839452483793952432545134889001961366518402045057415365480290699331290151335327625745287444561180894216894097567334759404561638182965040972881879669268436122416142702989717856817983489204528682297057850271756296649731126867969272535329734615976236722047305961839280834619703464423450875690585954481053652574345201447074133439084336893594898274769086307925092111950578793235570499642349303138822806370079517077687082161655841202505430959956548100242450363013936654558864922452254381591481342787506341546556991064323482432496862395882224139426911074899853374685055789994116052221665859055532645639720132777618239198387328391627713976622193383581668672743370043160569144229159782066579544722474246833131404104501041766820233001002367745393683408456747124459831951325509546615750715345267807225038751224682757804109955748139263321793500849879759945026239768053758747944808784476278739188832600426748514121966070761511728300287960001764496694717010398470244563520524351214057325012838809864198158432638009916649719396473161378028010216459694968179571353724892014223320633499189382166780211148773610803818849007922837150203749051505612279800979126840968253439449411920116911968608329064293110088946568972752362563936551074266268826345484283164504299903573294530327028950365784614428062673285591145764608564953558161001058901024015830134375840879019752919758172569878590855168801785690550660259158135412561265016283222622403953322532294424217563647771543779147569193054338298440445278407141743093856272078162705880924102103207302715440145413412480507951968385374640194022061845146481899179793301007026987797042884264926927407274282737638121187445566562058284492835419480580725056047017326300069658033055752346029572685286752294567979954041043768382628406901112377775838876770214264609170792389465478095029092395494181806886218517343295806277296796320018505777221481506882622664922088405123522606792973724572037901317484073655199265303154535443634898427489960556882886445836048278314187443226401881666583484451940381345662196247280587354742803756058994044704704455235857333957928857104933403232656568231238726410268711639052211272856747737748880590844149785524908113999222754275306744497493419326999476046562903756059909561959344984931550029221387839929693668721767373797685351778589564478969446042158318350802368696892579297593392076975356005172261862387766216072053991689207533254631107170242618378963088740181677119108777622101972790251098684789767619143450645175075943808867655278467968081442519585420639979159375559493272857593200707350228985288753922273636420003376202448281460890886151592388106903976619505396157911072904445977537974259807111470091239687292279721708907046017310163241143409005399962959104098184723221507152745261297230517528886006918567390391778966161567624069902223115800401502924965742936797802993405850418249529958442870719117601435592133547367864449154479981713169576001340632143524385107540475375673968974819896686025672363706388257570147907767177514982215913399946481977969690903527034440996208984016418711464649233913822078959924804800964202458869860566510036998729817175424685293703489184257472545254786834750464866481092479384473077157244983024532436977026804019439208403138929295676349064999913888764405567511603951570269501616710233924982806749636921037786573500895631157422117087104595206753920278176037123806212192594139341024342032491513471421570818371873633531348579781937725870919983215861372856567160423036062251518995252559925040280715894197030073440723918608578296704550737483460728863435939604682233283519524778496613734574531303657234105423980538633508970026839391914287067410088435076688827729155940649032848940340259647320360293625877285069811361511314944528167725753306879828060453148237448323989804740206962661239284351207411682466833725132294491315726210105456738986737158010048706107212033557513256846205654152801941449395293405029247801195024275805051450899317924798434775576885712107770560199713264340998689827874003267289760202592022897685192904670489213272662759038840588172977435041488577846199990707062289993930305535838122698173364949502606188142442932151965662271926204794296555558775146135556284658513708205214712929361912315460626939361081196155016954281905065308052643483023687783716974334903384265312795686988857619369106494104373637978648539623844585999855975963616065416970706473255127716037816856316428683498467184392371836334346287463538627964045746055886062718145918469060163033700725689064301111686889004540529266900344398660916695035499696998853346288527717029387358751199278966595005511461817601932606188718142109581778927154885134792664678435655835277885178321533816649078971191746063998724638936003234932092039796241799020422420857695578177214728639558688801844104188915454103093496446964592650928243214579723185474163044031685161221987030128880779141881061127443979094842893560218130235364132521758238386926808067503579089804777404207384558887944366087134980957697985810268491895389241440807738560950545225902969355241345551851301528119676942328573901706185703812609775539719081890317676555861801493355178308440542882506202893179240157499066509319181993091943821936576265436595905645635576816312394417099399798455787457129749340503573096145840703043028521427423730628003961959549246761714474542862634336049501176560333308597851359234472087722293290507437744595395456871413996516225401664790605589197768091403431295322245953255863907857158655644470711132329535794149660013060656423207561074660312577337158433061468243354699228711184315781754975935748714245953767680071824184180851236324790037291716827314044430281546202039970154230780923333882823486758106834807083309581485820392209491543632224439792019208574114357747773068371940590199735915200403637455440412754207658379802244128448743979349361950245968550026133276618508708548745953821323652530195481401341273262047979086620089925343905754078345074428267501289300920447591661191711192550790086220245061307316951536784621703667624766692555623886183532323247286797003701031246305980296664264357240765247395478557294374586847384234224735133543852272002971928431163223127490208729796874121309500890829499380005579765684458299645435983388683446277430669442915582254376148910777345398782935165177850921922030157800130111065337429902812105189398232890928902344012052411157154157284377426700297118194602007316150211492506790648349835816678343871264899193788638783326247528698016575852012960069715246598017673854459022684785286493200505883162752030398086210403394654898102356507548420367325631404534470990253878796895886392281168793334795859530166682926144636105295323274771984434747560856615978380878897472621885163901397859889090387540615787554504209840828628436840934158190519241728308110030611338357205273179988790650830372593627100622788079625449261466550013029953995986095254249311030144242639335074612861135599499247886477833337117737606196540962737581708226442583710267613762959556748925870316433808680797498279597166912019065075189714540118939610312031323062853598447893617427053175971798956157156111486185808748413152029969251035489823931687872001895812768110027633146897173954888543776598491931071006967183490684244505495603214606799868567542925847928907896414302567497645378999932778745072493946430080710847334049017740275354164397679636412751288255367973420271695207075139192621023863487109423524495696047780370889850957742822437624338797643973550948118016511533206569847739883962884455400518884736270464729137647095272475045371820062757499453734279541447824435095240332559868453817627545017368778834081851677120837272003936029351746662280181157365771918557384326275285519813030528286783610244162393983804492449978530046904139255482777668181617663601666893408350781054408582284024467054608770630126700789441819110774401329133353639801518377760122691087053352522555299073162655892511296244382932008382735044459397323241862140137568787252404860472396337424974595178664170578342799963367226991629612840994878551754763508832334970772549527571234988357347677451780517128228220437012238705375827757051864180759603736866174244306062394546253539685516678897303363012794531189924123483676539149969361621542283179904854700282778693608939012228141165767622620005187431654169228851760680517202822676883193304383614483732460199888836049154226870215069691547544881078224461715882910041096931602043272431341631568957986659259884575653457821896108648276708913355927482113569782491826076834067817904505202365572888648721845457601246106821946971061100131565023641718902473660173198460768359186776837289329897017632052236256225332883873987655949295966941318518049840436995699669333254206994737492085308537506955960126561690826670251142520671888343178389541209420754816666086230021903208184603238249973706130775818505993657506593115442848884059528913528225332879405513586273089510599664794172497322400149774444503117493070694005733769748552048363215524974153862430601209687770823164719135031536509940205153019269397241802606415318680936955046162535706373580662365917948953499927584953641202536430544132683972114183176885864446809051542912138154085729806650496162665882631776788405431892942220187583990224077735157257159764537148481592063819715542394295165605628932312046368685969630454777076207775883308880492481739187848282634697196641924563603203580321634834075901321687441534862462200602219268867282654384335334176671019234593694139012787861398104644513663894454827013850168031634120928005640389018516901742562272851586063586187191744979178211155943336298532556138330550184810270423534922484530716702588687760338498811754239025319814514020699188728878846738294363294841312249617317017436699892389716027763988360345841428065939699137088129751966392457510082740794118344763223431581875589529031449028092860991998064949344820792579073493365683479281713316217492298975324301346076899058931223647004881313601476607965012505333339679081782892434692517966443077779810296505905660409737698910859890555304477485323188212619771692214076734327269202720928771895880415346277374157769213779701949714336565672708952964688676483122311295278461748098379764474136384095751248353137690795127812006573794408823703756025135550466321874571382793146526236926285566243220525088794955001565904940017616019676630660154352460190716659127308068655527244004523181105908404791666486653210986268285347596922217028694472256944741423499556432093728403705823331706643276183144009726388774634585747602020583665945523441159735198530719019838816862460830998926260882042671033274056723306545902774923290078413055443044044196168981993821222237030059837228385298429544162515015651236735958316612436609347611006656510020190650238188369637840561527566730313745870747445503667333295778046448002128381130893168728226922102247292920260747235630443727202795655532596382246479199406476393383230918403703535718989407375826799679879012851079121416129674046824042180848477982040827238947698961556196194049532178098195500911589971993950700026284693107177209842886928207317464002863409494435564609988516651101312152909015487986148033989625653473281688986088769005815057387551407944333672165816098428521239854301059238141690882848224771851300699974632894365871368018364773803193223244128109404700988345883074969492464358150101682777371247870203956584223684535278080883006864056671156330834750784115366825919606932111948097435462890382075937996389326345196202655120667012549708682175135393561112147741891692168347055732062660482738756743241563693404737712473090249515838504763551663790867407619099700590747750186015924084614280697542607035960923462845762876944739659524333082833938139749133218882981644925490720806903709950832747834290582126167394423347365823301195165045419954086017737992827939363067312756492207857656056730703826141699417154768432181409645600528353254616456397158183384585122436098923501372725290214745939500554455805337873642035408615776260881356663895758711996248840378934438149389671869895593144041158636382675680483543254853210592291405053090571501075619802668056142460264790236402567016987720602797385473996268912697302902203521803085494926157089643117154023876631776873326030322175879390672501516253570986302564017312302191937951559957723055077345280654081916683518712185221529150671792229116209231486680200602748855659596011888080706186460184802991842992498620209402919431421059411364635498192051373631038701935965424247262963433661422530207813554924417604577280985333931594745627138974483562495903617779109315636213993997549733873457402282253940384247135552689388877538367680475721710799415030284671965799178112784441622915167373490587658509969460169482290803536614868517298346355887561634534797824186354396323605320188676509520427251135542904104630311452068086729586311088735796805784682253894262298698909871539133277949269022940421838509925221424946680778387496958840697507971191027268046927126370106124190682859954899798311324132672625487438560499492181247223711570087438105078021057023448501756201057451449912381202856912071549126585855762186976800903853273014172487089845641374680854923473371509717042868587737374280480853237749624892427937291948460170679371175960424311765129951348667528247595932943607129290016937549548253588489608483967502889260296351180908307073536525073143289959091862929439203794066397652324484316946312940550611920969505307228526115703001226378156935383256189884833544406779150091432192226899589406672276619296599688714334863508289097529610800459384059510096829551737292535012554475971128459090919523093462802659086081286833919231012889919955056304292817927230806305001255640699064964527399831452147542612190834315005976106703118747542404195330368721254912025444373241739716972646247996661509791163844947459373054578939462679913832280609033044644399790837764521231403406778992225138486586342021843948592702688049364387247645587495268063653108061187364400731527291016546672307018800119079486193103498246669916140663675446136855259047490475960357901178513303548836701316849388405552239441059403500276469946795085415304285646233769980141585705269236140259073032463952713670555007330812178558140983997354592267977353585383762487661388823566196194188734029909514621418916740535992610538206140933342608180647102444226541821096717861195058841719372460866220687771128851176389207097347515657456025621935643525004307058970932953611092000172881939647354862555733285312481014199560100575652798626251765404823416345485274373020762457364339240997595684164560800355845533800985873582524973541487608570270991501255802705585734977351805121271770258304853791691046976888534941202265151149047654296791035577754586058643285477858268491692364145995037441843994749006024572369699361694292529911889434458447398078949020257687857613167247363960730670089641124582006508484406427382284682136311707142178806169774519907001704919290949984220043063202993156767324902896940970622103191420059887080547946767743652210057068690954272611408352045312704092905281701072782745137944879604782341973421444019897410366458372418027717466449396739647019953496090694357152589444836671379976617872652207293608572788678381654588356967992724303101944746688525738469567970334355973417730917493737740099576168941536063435740669064365014729821414030504552860901126785500655052912158257168123454898894148161490848337732078995723984120696743353288349791906948084743003955850541539424849173203478641864920394071765261667800971737256710009955411597886705692817146585816345395174522521074113981267817370560976669176981007450701420580633708744965218004746382469798809714120628846791091637307793706591266244944720030068897980132036634412919714406449927640905469076524653570570694528212909111553838364573241830106548537467163844811835029689155032483898915405536466885889079825936678191989104751328602708943845129160001048670694636708395432871669488577976828641638365881654052955285303067326597595119228006438541129185870478139521420223856853258380372067223481064643939731752896814653510781775414090473337969659492788597798293802814514382589754378850264209864118858228812582605608017459458350862035533035991379566664700741173703229719815169060328441328070401173964651662565649723467513253832282945296152407399262438939303320572974703964582337742995127420804440417469557353369452062082910352820794636916604860283386086665368214238880794310796143880318237726497047862471463175865297731401234490173693806191144720157375501524746780226162134580609578265931815524191851799902192563533246345843965389608539643001258291492605096325451838949999932464668085342490150549747430482128589409084774535276505977834972151807690297315123014152790555167795739639641121851575194419866269754513626372797817108546811204903459508021411291101720969228378848284694701951714574308287319304352740113637006008432804191835646681185442185341870461887050233786428615742420942662805949073420855528765092997666855121067201948377086598139984431294389732545275595551979812533085004542463343799821940317254422366305700277654153342634469863442744251498584149764770337933384397743373749693953889424913792468719192451233441441995273679578431417462010078826965721941976737959731890820391899794072359841188244462317446690647237624077540727206812042065320427365082933954061046142123876568887315218102060003157067563253894241201474402751036091780223964721887639817312559905021833221363330129845188519184870738672783820579908252456676724197176460035174560867485743670821316194610374421194316294486710731864826554405772271874452118317828046023630203489543923468279929035023849235551001766566885206194327190161561429208219390816875852537226424990178167725531901009360161385175752029656856588303721409491124528002733660595297649335549237097468026343133709931251042050445850134568922091032123682310801005206660841728305367742392295518830619818589305705760331545633540924020419697477761962690331535614112802558459507568968215621780763367916967401231247813158112333722431419908145824422063925333688615346349472130275598907316483810170123522027135170008115261355786249578273297042036398034151997267645265996479400352651575814010110651028258168915528926188986386523301585124779661518580991277899068120264958556248437584620853692013032780766674411837601935051147238782746169025350791333454461149699795541056162714592385032063145431089335512028146021180521148778952947719352784051219484450241757002487113125036508907929766294060488561371632950535596669141706088080190167364820476577882076774987120076108245439481316951405550457158125767030288174318506220010744191685313021152358545803968709618803624970072263168176107495224099249199890381900625546930710660668748247856862446856127952087029068242062223895821216658721677091277602210996693677031970545194699139129803848007691983816232514963772559516162271087354240938236642169372768306661826121969950286538214769138365366143987673396451762800693455300485177135689626344616115484599376554041882311086951582019284881115589332402964359192836626019978268819424567212734688735210104038032885842551265309304287650958697932135365518470705089746531758496578427268464015036711326818193475711975582237756011839946936074677548672488599089777674880153650719011680817876847748056330201345456589546692198317162038929911933107409082039481844615515778764151364692073880576050834300758922717142566141183972007646165399021931117457771995758122227099749436412624456004738965400343292432840052225651125011520307528751075704218490810957905048547654615099274151798103230735305027296271223016890617558517564737322684342084665728814517172146295778784798365223228515125511094258666281325114297958288157917510712494890017707727468638119236298022057838152225566994231156903127215734970299854538447973815143506898855743534868771066050295288986146899431197989669079831469707689942971788337410751629411222020590059295811666558212734179669599598993851007108075643546173161953967829778248634603631636535104739384308331164628041642391320310616444512847469203641611700342174805497971260832782888628305369788907404492788536045155265442462717244207341972642660189894842611379841288953467193644848935995304206589498085399644058269111205005750275223259006544940470904850139422729497759612393015520518215143041937163702599850229853023483799450887775936752481749006681030150117088931562619443423831400919155143211711293835124418058306390947788742459088123023999299000935554418157704814180392704003126349889790717874655671384588374240201576086950037620649575524332612960059521714114834963094418851260376089203962141578205461806539114282094405500099294660993925163524243241924796614475348341418905748211236948770038510264503878050160291808812453333492235665414156741630952707479383801259717505362637597235069133560458161248086566368690396089165257981175431267787731433521365971270658534950230537148762489498669898585380808545917270776546737428245921190683897802813998310902272565727828281759653112285290938069189115721346405410785765918291905070071441329347285162709658631951611994160784275254398030919971473625098859859789752417238931419125658204217558644793992442060434586777474015229289078909196285109349479797780075531953960531179773089891027632769956912348558775682331164519854802960854112092702873738848678672988775728326115084332756453003855892051497846092157513475302944703241220706274156869690688410785466789147346422314526643037318787044257431968024399523240063394905599115481623988338148186881851912976709800495921505339866087221187590537238068369137877235288429861035487238991923189964452215058303585978383624376657299257769026487347439806232598630432584855550481887208893444491411529752170133633743890533906128644003067118933916146135623756622990134553656260316866765292275712178545368287329725935808002285969997031781372869638086587014545225392542602257140732699337123206040533928553256657110375694542828877279768441363518926004232863553739996039750207010016958275341607799470222039692957872905322269723145074265766177984131715960132051073762915491010765594219818898829035159450780551583715424405077586622846572886966104848170005252137739100751262719500957789917183439341359255523607521894962085595524213497088092463882235670891230812820783003119066199419784406695126881409523159949927144178726384412575934904311949375687628041035925998160283257587089053137130962784544662114874168775364874823419429026600573539468309633425802202757236835198824724755090104797958876192462459324691033394783318559489607222407599330464388265670579019521782247043012330284855389714136173867860605324784538312928656454554998162740405421127758495444389185703859744284457940216811427750513448784658738509644480170192828514071480856111196606655991925153869503487669030729824892995749511808981617442311972404788732789713357008040833952168285652886460569568972714966801120506262866247416495125918043147281157376826875491094704009136861406644306408616605928765188503778018249566691339529597218830169576101936126036174021495642487719070554744280380046839010711791024928497490966122777506151158456332888798735013160918881666263276036397501112793072796920542401025262754947127643079676164034007430878641041077703429506096759018713531527656088405963216395975988260599350106385552999105945656719445503773131476501534661864621283172977271407407554016768636812367652051439220534324711838231242879651443675481578127436028762050913574710278374180042553760514433115857286313354409970082145874378750349506183748825976490538870500890463739507713979519402029553363732885823447223055574438731229567420847723101051802726638608652706932238234285955211008911000675277125333721726566683637231202479973160641599812423018300826131695147216484018793418314342969113336340283483673584924380780838286960264813022795411204046549602405768420926455858658965871601815316753514322039427276184256261773499299543014486483930434744865613520119011741907888630726894617144273529814720688543293268963673771904989595660005068273065252271610771998389109652879916237427227258939126077329124418032932596815129373184464318115089521279738010819994533473400459604321710578794998391643758088097680319094200405381447080892492812452534278308952622737678280394514352423233596977009427476638947179441077083575156920062101672184673642262265626837572891671601778479593132566149635204273567496590636195854189361700918170090413871936670870496227738121240878556917408579249693771998613702627195455334720093072690296676632250932727547342749974667716794493159617239349660609391177356324591987155225564318582623055347793149093676842614344067721486238192177111123744206144342955715099170167257471619533579240864840391924342991785547378007491760944452852950522414697409437747512420877658743537403632978060760155550099618862115510369296234833902401277017523602109767424208804205410593824481070155070591639239466996981125982151572342623842386909838893745699130651096327131233397615653181281582565458670762452442993397432151382277165857446592388805895216163385960339483766351071150766704078949098743672822672163394474467440876161874088452185634977635547720199770830435310296756886906254539182342137658049621254786499650554057340997488503008360039384353786567507627338945923332526807093234722511819771147896218548096108773700543665440145636507267681669489080187281091428646123738526079612586790986608036032371233447388148314082182137187248719928645789750174466453688974743493382610020729184110145980810661478559408751684344104061114878029521478523739536817226153140579151994297428399607438930963942088625904046668836573056211993121428908733551994460915751224006815601910138168137042349220409631848787032466470175405969723676692488930137098336904851874840521524363919542265779828849709725433566357137363116080902810629255183319589741101800704177610495561695461792769126679054752594482547764822606738780686583361177171264919594124719355894715248653132662851581206543479053839188287798910147214008031068978800996230144281400948788068460592063405329709169601922192518507809378954664693409441940531649445674472629004594974154322552297568628058495915331490911990068279291214784649312352802405044525479515143356751509781080473283095753655862261267467267633053435280657964443567356575235380098437197337958727235980734529026932100955982451277300345802762214388101179100693715186905540121578973166372696384838987526174455658900185767533000998741415183303748238780971302063536821332790562373484935910771759087177937040502440314240522760516793256029669911433306452399147337655829367638133502556660541915602545793942033776334482764000009664439696709039445193884075278865614767328187721001840060878888121634089834232539595842982462776781350840271757052771549038868373632032132962811782107087729547105167467104407898542185917670071442818011779613912581890169273341232044734153004947706736939954087357003299228092626883648322746851358812565852280391605365548058722743658386498779534412035785566641918628188121532595102175201769826816497413666261143631331593480302610141447447111988565273451283497306462270930094139525358032676156848600437230072071951827124347182106610290411172606311026024489818748113415772632297978454750040915898129328713283419879194792265304159881851910754081617413861485754959973305175781895812798359572687083508746416901621150946603448707282332945054654631981173313534574976403052322761306100226930227328265535857858611811499515098591695509358969822459599231292236277963920370881234827778685365535334310129467980451760289130897646877669078251656218773307936326980139322877352554273102044176584919250451706410045213271133272824633086174396420292969506454038471502755803687294373008164910149653987209858119302793617873289407472596992151197061677493517994572190250213047128375887009722857042413509290690167244545945086677124757425782950128641770597554663417312152289837393356614134170176457147659176156206688371851690298373893478998707179771735442870147961880774648410456358389281825679720818639949592998384815499566509561462364544795519509002248614836533254321659731200702929817546171475654837139789224119337757267091021101257683247648134324618533723069250514681334119896633883034941556332716485775000111245436989771859073012756847861770699496242628230129839442635917570893947890278844265486984837371441280350857212261778464669315598749898351837327739102468729806330593768981497174776282081904679568470723661611172245618646450365229241514729306193951439150141164095623493369703324167680609184206964762074194804217448689301934591880402088000628924410325240061568478664395632052234057457825438910060882619862246038241440285173981877453074028873642689884008933999755692409227867825782225855704581272549119770374205547992535934577401843278464823759373810872705561456279777393567556541380137302613974484994846393529650649975967793972403418685107753946232764669262497793754167236869782513800074546747578800295688035555935946322959717791818661001861534065445936752783250920066862575005677021694797645076983961449618363462967540794945516173872414330619378914651035254656164751254459040194130209659901751088371621632497622414348533526375263003035776229746853763234543595900088668514195027695795822249479257179558532787789012500394037593398962519932231058398508744268310224782055647119059721519345070083496985191251974046914951045832894988514112698075590431410015352469823265813038773797647840757082680137221106869874255427217342945993301560607756175370327786413641109436711157690236308858372509180004399096239789484114407906245482343674193659464936461964641001548917736523585478515297211157156254180708645588563588288684144187798303774031227029321807953233810472482982000410281357808781520410898840747696845687827590902578761356489166771098348819163487097920113276024187833176675687346878515068242995217152748764718733694093070059686161912334165398660358657176245070844822943922728715412628616994649146998310222778765604576427981161882607172958900705077740824242898423986811544475850392429394351146164782005761457167594765144621138113362503258661288435767742651798982963372859640434161911406557166376912025662785958988912639831404338801128043821235829785494213500044543251318636885693261884006986710873944255098195247552273546647874304288458714219952716630746025944644006851943396088609518289735562130616925736385427436634099483025663323024753860099126420077487092724302579728039772115964634722077889638947446899092187482430259297983445966881041062334685620187762572635886037355478031523094831679091330223105179888100136979848591769716007065435174413330181485854085741560526649820200030720253515881848010589871518203475348385443793723181666572973543009999417864701463355329259235747498491959566254790766057555550193720244552009809432858082361119734913353808061338491452404361124995099628581955550594643117668907981509014881190258738047384865891255835270609751155197149793143407943468477717782327535031601877088307202958274522348560409931236674436751519955410524532782713973097953949860414676563410313785102568342663864795423369646102151121822334428193018892024454746736487503300121281667259021454634881299169143086240365658939394711320683407193848373707790756557346222447664744962793787107246260239058485276289606819444159399739107039030612550568751886127931855028757794207553528638256349364831811190965732083254417492347770999137596414057872222607961663069758431803573971732818258875469544926209868133363747886239102750131846866052638502040871137586877456337317201589601544634045131891823721948021913078008447285676300443737728322191320108216423622003169727337915738928814725837119819945424499442120418513272012068680041986741762863615057429507875180468316470952663977044010418998573350420150879021573895486327949374952083968540591378216921272048366314572438025049910075309405800803666941218274516355687769316927066700222959874242475508466595865279153379161749169840762877740163812325392360583092022678740240421922876887701341798543057465349574805624819581892389010848086538311205619404970153541961809960493832751757453601412985386900947369454909856192025525095059953213594554269701618876474680780725742292352786522641490942877450055259717665792360010167614580393948482665065414396691320302365533089666686741205086282847206734777497555991512625168517408740199614851168264839123265673495196941073846894265718242098514168440342461354630023339466054955052284788097425450724755755007815140535166589947722107452755154780857005443641702842455019964791301598027160895735424536639701849759359978457441599198667600010797574800901263487031761260047904545893680462069544234278606228479156059932331243815614363249422815653137026369184452107062281940739801575156107858554800081904669179681720779876229682416553966803048367117784984824100729764652510318069315215644983764674788520019348893796889710544742320197327607447760096542998756457161986375989390033743352386507428545808870477103564111252027838841226148089203754374353118205669914544579527361213930461277961971605732265956395959560524949486478078095114841270230605872988136330965081905826785310529551265593444625285353049433285273311557840590512009179027580906809786578037765317801859572639878507789159784218661785318951715097583217462319223240054500516661764394509619379342727316279052605945401060919499508317281703362936728492232380430566162636691704385693863365883751299419651450297248190495052345475797208688764365224581576057692995305517312831337334924523758279971249764391761962282397573866996322590666574662348524808958957329586773673197736612839042770266284568134756853945943214412651283401431735720598092660837718599282637063257800872582412347251449489829046524677263076521430538459981815416833763519331507717692652706111514343210018741223534532490994979587687083211151382117236902469191080293245900661198403386116130799285303908553963506884326232590470206299216922536903212929724660258807806321653091651393259179903794878102703867399327550884296287785947553775497143504262954977913560257473961485958627805437709828685211164794384484390100923294082001083654208384874266214772335835674513573997696587349222270677691491554617729360115695991355709363869432650735639890855055522289823525302203731921593951016213979659957370393373516752905181666538190185659360300600869800574101172739217065398113693624775165931272018676533077450560326876567841519287656913558543043050020598124261833737635075294636227381116628257289336983317409311121877323178664887682668699714033213076819483372243452475960936123944360747258430234778274652158479231810183865609556093478135363151924426176156651884723581427941655978033652173459936224749532193376464901676119528308084491860388013128898997594608150975014655304076152108410746120539864014393652906239372301214693218368186381309564126166418688135933322190995295494876462023173815752297463194369069722616830608237229777586252052758031370663981368448181177676869986678231401682695492355816598976780916902181453459876440520228303291770856150117959505510745856257679361768919283636963857850323969999987968229937504309121676052040910184458333787585936576775110175580537916994249195588162234752683241956811319914967169254310239113551395945933832727919880877380057977419835580501119557231896631395018893398851585264545024248135672239285876293427197168784282284995359336190287510563533589040563322102038712808046740090239735080367025938331370663391683112563484771679929254827403248294755503155880818442383284189642084540861077698956429553716911941837928086524924331939001767379401495623486043775626782826426636084855273203270604768537103018245530727152580571577962971559149080430178965023446075807293700722148657035323956962309940228562093711203694225050978035021845687795715766504189396948644285521308159915046231663072351982455142175697510177727305139226042555619910900215000168690045516782659961870672400760746442855532064335254527238985262390610576412183275078551821403097893024205233857062286587309411126774285646518245091007837736078988956184576487445845294579620358730870600809712007635148835035053113511622296272301156621844468526942827029685889587620818947509968442586009735260619636853684430140400502493389757620839795348503909726981848813893336740570350035494115183041795209116495533919719996072936246157784093085058879898100295471207427441350099040868300133007524528349160224057733843473798513786120971026173258790938992071669675603127685383998934742102816566782249662458199787227503357374189618141834638221389208363308785644722211240135055991436631798046686701985496635360570815598627882148442655563299669621714648544199771592665050636673019296964761433153126762371313630299454457793701005889046060497749442754111075264544693844014492085790572819620275958610441422094252009547190108045653488769796612082863822417329126190167631460455114957474556330272686380065676969386791590653171254496521978559418034436407250015751605479412339471626687102433870078164467748692800465134210116680833696226980956710331180567080368933971700258684098973052988610108950207628821404092158973037499302126260570661371170155488533821746943107206735990844827618024503913414255189561532802368642330996792805581360828672662482940145799078553546525218146787560236449020943315131848384816299801213376420609675627048814084043203845849693255299777575927084089129486493520032648019108183128370337090600226384905960852045241749731056057306186684840497306896496190473151838883055110898710954181748155010300836677528646094416224067977851369621042488593844524777801166731068704769377070304250460546270844860342367966288881670171159478846914098914633771788710511296426789016950040200849832489900366455695206421411031748950431768313516423166412621781301081973076528729130953341975659744370505080350364747572535769772196114998054729319927171925812009927765829039108218995515231753488670748990572362390738362199445365477598603034775727141369128980288696346162194431070822334587978476464722752849643744122469111220191572699525631428319168064825718591797702558644988801658310691009801616399060273332279428885396635418451238685633284143543596239441951869274858296279565585020372471410558637859749401786758032859893188618081659276418902371669914101010178063913527532488562408412236135777505156327828717979193074949406473648972573744781429705446046574410954148626445808270733493316719494318580525825296246047965507711078192144889564556252668471950176073328613925923853190651406792348447634369033674396020438630828876304117417300931555676415592510477122927884768060709688881765963829013003266523014372393396207812066538362008960288065674904061241959341608748692950687191225058092058656176520381901259657152080177860838586326867594154996559515390863183524679437449377094296951415652409442031042923863594348442158988195315918696576168525703164403176443687932030671007381536426440075856652148526886446264542697259340497141501857453884129202930891914750843632170595605675834553943838313684811461041779163398735499299029199709203429376818417847700716510558408038197904951399307031698412778675083383054005047070474106989562100978854704472623741280636212184275916298245140435205366612786036659907978119183193854385142755516275978088868731966212638713460864462075254571202930883677592965412274407717260096694248171107666602712690176052828594852000510585741356897326022182892648842634243122252913552971171121356695911397129845557894402350948449286669346468297372139537958677337814441072176421285120760458969264888538160379584194547141595198251511267182045923440245773041791908964872556153184627465701414368386016824623945034278132121787876339239821688639093026399322135627592051492540415292732945836231998193142983828370917206798063439143130109136538376968502142181033294169301829463944876820499047686527884311230574076901516521927574699343158439212318167734528470883410542068547080385474216169867848102553459802128913271250325326711438407957864387844546139508490332308913733994631027067287386347624094597429012769170769327167243680750341290760715506473039788321938800680361448957323973878596177106293828646145396043569386564002594903890538455226785125401094851150062294500095400653099194377754029620845553267302186791240069343857862819525623345332534626998819308351497405418693196331952756746509459597749097096103646417781436412886439376208678306398959644396106224571570903449949227903652301855319387415871321014774485934127684458031109574665879990906307202742108835625665369818028470434598997850579266430095696435340050506083735329909332075538622837986579930438110608603840877902133922510137947040526710705146382526808850518916582708541304571045628506158968831587824453992806253158624574824393181993596846099506652921514879302071005796061623161783774917531114885094898191971642424146093657856597687313659482965202653411857328130073391736469822376397972490269264188737512375589370053932941519112794924088880651522344813253730807317350134352678767800256740451314516247021116433546320781066162566416582291236726983878694095143408435533222960837318849504578806721121832334798706915848320770399194376809922324212786180045259735029469852166385448228623261730699181375951224877614898380784786666242332438970329688638501495305551908151280125566175589079742092305492059075660549601800546567807976211109167898790472856898598710257981728497229183028980613005598840777878186160239313685824904302780436974124704804468143687774463047690095017539758266852024142209616333837499900277724336648095861881923533207450116684766982354487246163702080259097395509302971636644842618618589560519665670994586966870889430849551884765125405756356591301848360448397345483958918263043698803443451848298202452435873536357982683894163800399978907444080248667832768469491249359953437197839378241968908380484029287805744653542657992771728155994183281877926543513097582764888886202611993345575255405451385964120155586354340592762613790761309758096376824073144021000290290816344881692688296439541481118474041601238005460756437448432447387070793089337205869039792514050316844186819916269104133388868156356709944739697761703298352813075840799857158964133446009730828542539081234440489464161025556638527721095553511138650894248138074981127200062839303976114047024498448743216001301147391989479214501198999885736956532820253460306676950644648784190174716845045568327578469482158824769103144481081350968716828178308949675804706437722992980945120611131407245919133449834565447697903389663355418970519905987560264611256882939399579352072078433624580470030926267046282797376631325420653899316426745996176828212518169407695911008145411111738877126484520863487596895898438746991171268200535926780422049723519046795972518068658096016712966765307790286932366674712934272904336725152437663940877410031579277196057746806560150973946250657119170782356466487334932483936663656850033198436178373656262187181129930225236920594034697828277118497492688377253677333990692413941991359887743902902597761163256705236902096293383766964600359792883739090984053948105683051980296608017798488485533281081735003845035186924288980314415382866813448316204770438882604302474658270290901639287667619481553548268927419637146521123353890269074322480684179869223365798161209030563485092905865326564308266120878444664207462129074244677515791514174257129529919852119929723630699113869421880626062773871119120746618650098613461747632515190400633950482384746246219951895714599285008987244125689084278792908294632589179403895820263906723662517165457561618934673886520666872681835873796728641197076912945433705596293339630837690161734984884482754597485578870963356660161246094266394987559819100104237645881638487998647597825598394098558572532449822267906911821600633534586287194704133071807746100102875431621899697246478220922316701997681821160394697961945919820788196240520523534863122810994886750596678863902707881169756754958163887480251391168322023415846541396121776828465629760952709432528713892962238097969347280662517345183442906727876540842901152144940951287418536647447488150065501358203395331759389564054206861430568345507384267528014669938465511782758538442910297646156290802694437983072601610765859358839089120493607767510051337580628475974485302928214210273327405434719032842830664436325907593038573690798897669989494072762433969663501550213367344829633772700698562663479221319858584670982605086655112617375969547675860748375744572189080281867798844513849164033358077051455300690610668016584405228657126241319544249324722613370917113627226844499149822388078682501632352058902034149197623493443981328714161139302875349507760942249385911939903518786450557005711843349778491687565565843038104380184206173424665035933871783601231101224802459264820485168670111716584191822156107510195243957848774308826891347553929776312727564653625494801454200307197720673862755566444316640209259911459210919307902718273801487646997250651487874860951296081665926841454021389954043183616400576402492408892555277926250318291175653911258409136581730445670424580999560161568812970199480658162145838581785676568865473160234074550574079471110021711255399260041200937049201865020736571732279154353531748368824085803202025811175558652168211036229613322530980041799508998748535842237146089706918656955514190959977717903609646656020989093388009550244584788999196156084841255622387164183419127847546345426354014660114936426195242927850473433312888159529668059369340454052335799331049362610090753548750062179535464691688456871854366932998228514893671420458055965582644205437924960124232647005398505756354488932335658926694049407010997102642762232917702319720069329286668797561990813239518148869132615464334269093856687102801723584601709074945534829649100050790149576997840313545689447345573558228702193232053196040350862798491941132315965371994512000691309042890242828697942935196224292118349873113234765420907026129084060573229415161704915117878653352987829189595295656437180426908352542516941143060697463319740973748343397855970614702482000700471050826072894722017375657730886758975907986593736139289784573944149520148185498428618325029195407597644165473050862323267973397752552347497274406263578345992565889703242617635612253120961882854984577254838050330587581725500009875051787922751038036552390443485572165493172810585556666927287222547205947679059165826267926054977899783341008922467307201998093096000748557659111371392497086574165059011699651495700764067296761571023697248621888029413895701627079698807033621457698648560979801164730839534847503235234463674929036706393388257759465385706917514278072549761219326429257391947490385952989475185825127897039928365339907623306375980099405339007524211437249260751229223874745341171498615322380108694766145168246675978219403916069123409388024982504927558834784964032714301777599617003500505609642496833442723382999002904638949542337800231432587849270962015043836016491153389074338765540818514283362129690693746027844259349239066396144384755245166728787377665488439808284512303596713125234155499873721911406518735563668833288588396061944041215315327079085385245665675750623082326161428607944506186886274110380141573234133341124915302627334153971916087275137108549864326037877527943288011668912968302812846243180414396450937626480224324667925528530675497513845133011412711961124574873338321541246424635750528655596436944317882070675430210158971869820619222454981749611445077845288203295743456383213202628218645375273978702904429811084273440631244165867744466265904475673668429103655611744734223119477221481428262162006130020686202481974327283967378043865829410683219541740056375149184637511222767356481339790769010907116760496560928550679982170968706819994697762195719745991397259339720388239561554957555492573128423968871686014272747912660879898621347497585183132027059181474886079920757927878357534588589772882549789179558008940868357954764085803470252777608174548599726940365996280080025874435589914846000912668334953716948333387303364416653507680506145496678522771220163798063191691455774381014117861808204631504372581990700052845337768397589538993192260396502382280006838938902166639862102620475611058408445205293903414564062874942655112900965344500330486873598299676106364424385810277082033163243339371597996093021384622016938971143252064345852362101995804931180098160035067847733667179592644684045429469669898187877302646653165516326820642112052059042040597481532805593733277923945717790183060259932643704992233205094491838496500380587160645445931159399608446062361675762238183255555691801627814673191273152189386403922749635239882259158986424633762283103085835308980336759976028729666503085340577904128543055899082070802758798414852998514291852794918540743807054134546526972103227535251873735038504426847936144101159572835749442475187420144306122745500761928796367846701352312543930517973663159172480984916275885652684615911998251577519915401648246834273985767606229525860980760340829703969513379351779989087513392498583974697740663131359687948796189798107073354142003926014318282590170549756938318817623428978940359098171299940740687379929658516257750595476368957223213935724681474173513646222428918571395200656055171080796865744560519187153740644600413291066465830649051682655665877867091520578431409294821938746573993222854635656675115747918793281179696228546604893077853152446415753816438934532018556949891608252691929464813644080163054304315652570423323977692674485647268287079946661099101552194240593613073915039901331252915588204587010476972664115381815676898626081601710263235600419857633160112407127269151716369043855218941276692946822883340526850245049653094516056926401056661016789474677300089785840428416530423736322998961386616055155747751067864494950805643544947576186054064981254248847095206247580741274113699822242420378468531317895414805278813216475136641284170435838435705343988078531282180497726835273153538930273919843484979214816733663357234013602891419628822646430593765828089278059722207607779182608407532120031607164124904063537519944204055021655157792279136779648772601403090890282646104899370287026400446230872155260118702436484712640850494999039974244292255952416064845574666180152493756829625990125096899778026184640099588877850718630496521454048189687587986114662619338894220302213361723842236117415371366494714596823659415688150653124912058724333539432891539467097551545882568446517991914500708279365912052037389808778106736333013906494202584391548865550697441983787409662543308990925085487281244347962471758735716062119301039737714508158217562904077824480811886002074281049325235000750767571036031949471771994880733475487296260003071898764395996280420559627065606487969262512597153873910914193866633943286894735422414376654412906717658049922950834233397011657063554186709431304588247498477801979920750041708257026294762771883218260546344130597498306133451971024916009956565468850955019666241915256530259639080882079053339623738462772217656256604654816714352296221629613132889011716509648877387626068686417418167409958827239714711251670908188668879517654102821242070228878991121929407551836008131118221639885491767678436223511886862811932069199901184345984882563101060006211715567080622014571805574796141117844410143186572725939033074333725354310130125149479446179635311110215740011981290320258593845016343605604137301579190816735151630652920568230508073725651484207218039325048440555891620788334395762048964426537143293565658176003239344229188635974969306619949376401146829287297922382378138767396943218406829912454638653954830399772360572949850681513492621266158873794278198692231399070572877159635033795129472045491544723695145341670621618873467562227623215990782811283807326531649337718582262448887018531590700553179545991132360046674681637365069937533124433193731184234400241287704021115977432136136418399233209886222912432962985672296245922233883599931393814125602267779158876067493032638679922144732626604024901446441941482194161507274142266535511326086860742035715445512435137408833432638198464591687166850675075962502981716190703728327323256564760467063784457847229002220917048444670752388544244964523417151145949765642668234350391439451445894071057127565365009015788599397427914585411675601629461691129855858018806680149062260614387987301923731940802740591646447209086780600530930475438836847032276237837882913586066729508896210478636632423609568246762674627913830463000249601675292336717177077250296749531295405421246526973837860620946222919431669295519535150896395793083138902656052043213434224615448728597326880511932013160387968475491712519721859828035395965360460663682913706991310086666562097838957305802017976992713930617120919990849149712549618858135188989706504443517344491149865957894840268018691872586467835671373874150211747426080341273152503203872229960188555290192661866437887967003551663929410370989789592134737385229951995243318037150093997645787788144404082774002928509399365560949689218973454992701080589756584309104062467349139104495001235159434429047787637803742236735753229745779350360181333857917181828767927182364570378077131576061701188581834990958007079584424855912137472683866948919693862361513188531442008312892043087850898366049341570614691518375050169054191055908431001570439374162697022116719960031666695512660053649692104609018599668987746135460410898550186139088788010597618161205692056379796982116109350961878432744922394164907102180817054771117334544760004157707629089152969949857310644056539506187728636651769626468022786199348584629861152595401814270769321320280451218493056686476327954414501640767976210681224278019148520821726903532034368382810561409453532371847033215909646544202448835943297920801350382161970966086529602890344471979829937178990391362397909388668113356017830757733034102464792957302037181906038154040522643290400435430444771397297045834940054523994122681010377730441198931541011141247716887957545481196725725209434145778030496780499256066580602480064195781836558774068414718064630202714469988798248025326099747401001421197244377281463274157811920672729235679110778648461827311964512984828162471144306137832048838706150582633608125198678774306014334963087817779901540279484721537644308846953463718544713232493619482954831115963010514634665303340973397016078609285040278694957386282097409042352696839102236295589612166691768051351345014913457250078203392557873420033787954421068538052718412031936546500416876530684869808154743902058090362631252117838929540077704770297343923618552049065531683162836156167330668692667198650653328638024599014804970766402981010227568559444333258263241913384780545392923131711922552315465501926413009194414244999082037681354669655979057375786309511897393797229535880082437812890991428368830648673124769308321955827459184275489424113100321750146032693168741151573488335946403949375301030433553267235588699727210575641056128225855760084356731079873781019459395993055924569991584475845488783308849897670922074607320945857685271503914006806536314398713562044051234093369655859049855684705034190101009497238165729249191626561376152635818136438614115015544070948114307137647732156799022923195429032117947491319332499515424027509613195019311259979931252179406399218954467992664571478411215989814254227902266801584134884879104655719807738863956987371569688013584853196034649468681011435112829633908737783459785577617353567791250933814802927957505175392310756498888632640275982462530015794658090921425000041394577881955618815346157177403911617322701938455987020926489709480798901832708413792196374409781293034107878080996395947805230025849253519973489332721391705871342451288372172535329737398849128771084636355191297212232374637332619687525124156472361810350444672144076568359506651292678784575276085313539613082979927929065290038310928078015743588801161553574023309534400417323211450444778004754648371932814038335856952285694055649983841889747056776386954542247131320544566217709543784745454384606157195321075748181530179872241386633467622637605611900543913915112518183592975191615044673541055549964832431461988318950696431172982128941525836875453122583770056293663220996130874936353199205673633053074968673748788052052480290237956255314709060976079960259545030754890679382177983984659989601924599324049339607362442232294638545701801790848246967686762449808631650731058057569129422720875119122455625117343911789827646757165748952670313034144398640288769571512108929722905696809221113201881099465183610261963832175770203773677261282171382091539248468708378487001197363919827159343155247198222058737792599087119876819733855330785295732609218925468169698892564674675655201522818630000129642294767318572671748336431965169271063243554084676168378930002832239596486210062765499356061300809549507030342858586902119372605492401674459052702831806810057392847664285835778969162112255369437401613383080507445682437125818728213700884917779754302096369274141298582587989352820399827533029034229163008890274507335509535548507154206903226833717748327636540534383868915122489103157196961993363739778995934793282194564641040027315196502908490247611745959654055846485089246820240154359668922574650057862801521517756331923927038092484743769986917825115078120218204807343214189075986539093643656912916161956927035153080566386775379028881773796650897829229845764353179994221989391367662346892836676106060728808003554261433789409868208286495172655939020825845119075386121530543399412913974231072291542034956112235034793189429150370048402445403147633081781756394214319213693381886244315961127580902551161636229651676390657915925791461749080195252441824036255685039398896947827245328778040421670814964660475369963462691833326851741218101882496852510539856907633673952373251652925729624029679270082329066734045102797780871996752441173848554391258360873621264925991377225509526920699225125542211547258034175294464939717456785244309895130443146884476290758060069122710963731088066789313164545997446753235810421446204314526213384032643103917254051337649767913817751854827408265099339203552045290819440014526430115292886606544914532997714902811864617472496405631630392934049331724998711428663433893034001938669069326253360801666996200370215951663692619965434783982315362484604753295228939718297029733459219485509750045436391704783379784212506094031806375392708423559568227870256615391202860896111000055871343833027456945817887993801605212157702833808367590347617700246135485418935974669281361987095585680404351032896992619752469293289747726628381770733577737014265528374062579989042783482403416773334673046092572400577388026646868385595433250182778401382669983357036964757870097952282750357358632723958456145466779106285550917336804607831612325165449454861680824608590928331154411579871100309258976741946336441041320814014375887682109848151505325091337026582812478511754513203448029692854544741686243406166864399557698691488181325451834077625698622161881027083944297803774692126934502616061336386043046764557248763618940860423749088837868026660801351384622168614853897049184461828705771944767069634864761842836227044860388379874363261406498115152193349211082187204820373430185958447185657840016084916311984203508343490829367929479261746123382389091565696297458911283093896875415761528522387127958727140519656033715767281868522737643310613547923505769791409414945299998357203298768027386995685007183396296626158455280043428715827228466001369889078860565446743672133197014741467380269341549977481437349919289751942741080570381880778872788983742843371793471584665195475592129405928239134721631209696747132524393803511124258312917179081777758923053769495024750849580940583385315101291735126729844967723929482082716580753838901657395835901655701598348024416814531795112385647157133769758040554406257685346858953063286243095705442090653333658131446618982858586971796031843820016532067281342114037423865617058177715283264576564172080662496130017533240663142078302131872699013269607505881018936724321667330191773166199082180746594443098701117909081157713057670431534499583205072697528851705878286452277383302133051838889333400267806089418171791099188625720390348061935845171393570929402521093117090290573143552953616137544124707622507351994512620032432703638742518491496348406214976531150500313610795829543147411318859410752417497452799279885976679868493418885833578828620351489417454674485846551202260131010152219119398544277185424447999226679718239522302987317853652703812402113893043716752636326651625092206542541941924476921312884630418676984449280631145477950300361677780107788529228784470732506931139613625316030080798379102562618124417733365678127694466998295344577152029465044495733301625579253280537904399326069467608420333593831757337989786950562517819050975590028534519608458246088126351794070781633222125427958579595355506429466493258139318883688375614138437294762975866924805046989590254711930050499490862950163091671256117201530116071191598252734842523614706526530721179845207316166336793270602732794756164808700934130193311396012030282934581625444183292062005424971417302963541848834440020429905188687349498899699855917768516906926684245676137584935373950304861893592363641788569638120891203640678814189796872217857439956388449324668047036098096171704899068786290212015826352650302279856325943015330108808738625080654382047865731814573090706902697410690523095778670093475335714537598041559091005627043897855119262455476715025002888160146823350911475961547511327106295818236191255544676939182960375802099194779898785174479096380337985853049682637293875869304968668857090759090059344289433217897582686640677443899185630945062130796984866484575552170314256135235091070237303372131369686738810492102124771996751921057974595353313062894832627186510939120439880565521017681899013121676777937469383690389181503147523223450965170483801558956083785979023354854567709585205714478726320052935570952916135311090098575220791054057522160290774023906779391351970650531223516963170997285329981215504279943339703846374775021232344218464788227356682833394415064158072397647677951935079065883833451776772125990476115660808947332781453159838634554188802030348784671961164889106181104163213049771989176491449432229926812904972613468048594585171256960568233511232801487405793792529172074223960394401358595256240449605843564303713926267373104187423177591560204730877099020330014749179688714705530393666865967173594249488596331217928674600357632317781727455254325693409213608289546042236605031709341253276112226569892645180583240370137540739357901216226554498341221512171434556045845784560153712616836262302015867727454051324916645198961415660001230652634912064225317357720811315593170097905770705139723678325848148257530486512266082117880847066085390245635904601840659690014192749097419989432349067146102980856973114042906322664930203239146333571474852263766507165862903561235425713768461543897371897350654920221371115391232593179545609453654230073297947053054016354158345612445784284993570480707822812675562585177758032351576983912908596717318442251858789670250479000909849603266829547455562182627281887528937650118451503555621297935754100404542655205895833509318370369979793474329210374101050599957859833312259657110549264910206113724086746384895340803195162338503447241949246453451047759927283925204132162886112050512912868723615440149925733075228377420677798792371848192761348968530419457407368770755432970445985949324425155074791521490929128662287621456331815197924359673767469460246495192854081120650718767117342837504113165358030069905322055929895613641393519838170238404110623696719167876788288933488408089448212406799964972318806559701113112128061449380856348260632534695259721790169223523208495972493861356917181737678527907401325620963930162150330902806960407262177734588228735620090513245917710776465261923033072931799981740384628485510586279625806187174473395057108524598354480637654410401342209633784971431431435315467683641689993621864037256533335523188690677612713205385602746697117016953197832063121700550292284657293114618107629687894378224659875578660401675748881632027992885133534916918875605187783809692109061405734243407789487483303014919144741415426041757111465266281019883766969127339553212481928259868025139913132133450120002428261486859145223590840931559789616742413465720609868850842442667365758840109161665637008666501109360493381654984849086911337099638038408616134714955584533045697513846419479766575852854602988693070507395407362901438342683046652397611119889164365133516646800794228690084277837479567775266960777069929266995013430756384723433980433775628353224685959507672314186176834028090852328378254443597544496537346921233055714480082309592294232743431941832026777140223844809025239122185304123000363216482809084720449627047504996073073007371389678835511988492682522213135856267581335599147847803774306391415776215912737377702301154620424075359808903825854988198820588061054904273142942300997724495515612209990235677699823668081871041155555336359860229246955506626693648839831607670626541156467882957333434901401865633001184962324614151542832239269307466014507959959181088559314154196392588312761057232662698759516158936451174762375255349131117270535628394984893328441547006153711010957130133164625977888321745584149315537108409258340526490685489763727380070665579981192757160832465247279924632971083077320247073095723002405696503375306638902583762917510511934227121190347140024915022297904739085696344375835912403241016015656640889252839934096600741621177743335598565866054067194737416812419427211709216307092914634375316491790662944151944184875187934316823850725732823643897405157726971657985063776629481299884044603934487375150229527967897841484110384989866360604991918048627901841179776206209442209594707645767156046627341416977852421766052769527064162649054307621319521447923627972515236692069055408213333870762383489570947671989953167279582770273579840214029287957509752721851694930145974361586306328801058884476936708884743959075218060093450088916988168906050097774331790410890718048910048628123868229731697152105453400815228439393503852276896355474990702430803608989115239397193584219004617962136979885967698455273455815762754931062092035534541417818034256670783675212841941423374259842293629073017353276952913308560202080788300283298002710349293391491189944380937963142510602450593040497341583137542638726897063069063024266856362636157830512175981139798732184258831776783376963500438397200256913696782748342648660889346684935830315823986073917186518989208730378160531835412659275936739965948109219776881452550922427601356308970976076721683843697623694010288729539095488890734878856669052555857879163979296738226126941065923689056085948621446949005458566475767572021998727575117149804573013806693342521446434518192365720123961900243214765179190327852434485586316632137520797437931472419835542029055475528321657130688858797293323115699675954596544763567053623984711256218919710009786708156104442507373199005619433402925408964386951190156368388881814474202154746664915100919381020554356105178140909982275599711537950753416131409496534940374575045254512823193634884946152742530491697377043782028310758131110529993127168880219704001101851905454527986384186909714041198897679736359040346566409817237817831265177420727505231659505916438467779501806419222684429901629742238497007413035771776179881297003480552233541601277056552784180994263191997947731202756808039131241715100456509372196086272669985840805217105667659289442227425055214557544493547193715371070283381096367311735816412374476063490341363339214805694432749277526150176367785541566527527464295632885393677853218549314711346830985154465628414000746403799548427128673387113986849279382904878952071395099661905570231136076835328339091611415064392045143153182316505291815298054330020174487903552176454188504089755020923003161542889795938126433417181844098671866099227841568331767071160562384634961626409139478088904680093616784124732531646700656327838238670120973288772677976507561889612279153803968321761401842529963660866768963219740436073386124986526364676406027290314075045878110832327134471256073102843138683365895778597157029301807267511725556500017684595544917084740116388468053129671176358910820785099071999643035139345727079285535156505824196629651876322635564154838766124684208277958160099610774985781567914640306257898931429888489161737558168504906221343683764915700400639344070294337524672626221253379798208957054804840115133147845374725511296001359642774071266271731366391465181608682236848645846247088095232475521681603928034895086366474420087699539006288802991858577487410176409501386342624910817588276234061136245962672332134778128688256890750588947907525519354490078533571540536163055494200529123233210534433648509335134593612103966838148072410125398523018209542588676126014223293812686589816640077950699195193265457878915407561884942964991163110870230425706074440069729992081089936028359041104198959639544293158188600314844232866304336146448704957973756850010656262323890321546754565114508468256270660425595438342881957173684879762977252709030548145219973896307171575624289339394956951585633616715814407818560829920264485868477286742145804484805191644499979296714986235666695993575463032355620497119886806836463733995419986838824720023717550244166406207059509841282971074816438817531033599747346406384399718235275323628753181163714940841232530324991676341173540760491596157109817427806640877636761291349695245387504185582341200526546028562399910751963692931592541350304620811687207932282323744003577296121290248158613463914276759914530049992111520065488880455697338383212040692773210381557351029013469749867842677237578794588966188041026385066299008072112890981477983858445480923771097426979232982891122942224089502823592991079664147779167032908420626425338085378951301981466845048718440339836708985405997233554482835511608765455816484112694550583860268545763216311334627418481235540326142278787524788643534946487702935635129183527754439693010301529374450883230050961135150375025635184689769287890729083234208196332654307870681414263493592782210997322319153783286786132525692335654125435274509253137809198139188943417507540164629902417892842655261736568054642381483921910847942733253980847564025936251698005945444483315912443622303160033539329334697706127073034138798132602367515781662138687353886233877765201239735921406886193312554310187657292133520004706619122028735303575420812547431040556101876670032353803092231233278783125224721214102948300477749516881139453512491592943609757026968609021044104959371964567901713630621030110745731092091769492619867212071482730105895184826440650438523027775987902427861627887219816561637336770950984247407343281168674156633599490720473061310242400114816523691109191618795761797412411921872617397425933566439842405079677617430278261815526162829664667738422934241884139347859070355345762937584745503733886951264333327620778231332228461350543799004588425622587733632549598837955593116542259791669712502017063694448027025242394815654431319007724008543941707949746885785451956777226093016020251182384234588754523740933256864031513653077191561781509200889553646738204753896565885486494072929186150720056242797514641942419526709668129129782167360841809098810989358014271475131946837235192126071811052997127948695298944069464434163983450529020732640233757402932172241470951179587663447561193564992016322621286315945666657486270210905880514191464534656998494253260650501000527715004894281011658477090837687497470372183644747463043166931210192525082967690284026291651609218686444605887690194352293927826963217312520526021426160821314319862140125642826558744239237380867580902103935445328918465112915465728422505352782287380912595019841284716822832829786911043335670563064509589175590494304802716437736136267727701017450908896129958396122344992376864740532164916210965518161558468307422379475982519605680904204191955991069621933907402474125179954504396411596238615629487941896345153950159973605988120383410599070161113368452447724253246035700614666619527571195353755301048000709214792589380049728237833188289375358470050116979408279039245069154723412580547021207517811440698796916166950091238605341337312613420757796400299360309177149346788555756244054158190448446873563345814614034377993390856006900714427820290684861911003524202412620521652190528919489942222361923724138147103266785514639969657515579267702755788192568512488921297184636328606467514438044667102021897620924244609378428290560491595559017522518378063173223144636460923703483355938484887922111224118484334908523459799819382602250581039187634347883636881322911799648379685960802203568112627880847597012882060632712599950012009299101323657839705862063205267661998044527992878881556301027130455496458710236723981150701815051391826407699916632179274827193978494412545842594555282779120870751135823220789086322321377372633594019094525579256990960402779440572741947434676609438936884568705188063247131033241273547704713963928945899720387414873253835126232180717914420385465531733141496581730238183096019342468426459585528365627794388403036470873348103800407796676470449933158286600468525042321348023364589068385678977253021459170940484165055184306562217651464852082556132400703441196762593341509305802300235471674494742455423534762909340556920334905472811204446779825525972359520123868387544211744076718736834690196136555895091766660266142329691347920928148505675719719562051539150735486627935937211201726615124471694320272577096253725253494016367449105157626930240279503488317126232120484697927941075867590282280484419858156696059845252517449660028518353391904110403125235838394020963542172828666026252450726353121178335841884408835828490338155729688695272153916497424822277690433052620617161864678054761417456566049375557515793801776922729914223392117568688670291867787229263432871548848703727015444056682772673684012762167220245907641352319927098296194723805788285438387284741151887251213213397513752571857178608289087248799194251301241093147310500063212041992082564286278820297380575326851152221935431226990757254923180022872136341050926132598567133079375456258096749481614900895235520813792285072767515274557708338298497177725402373862400151991066348176493026736322307480971117247100056175376007300567756775215120445207026234849498014167894911396860244933295641952047827093909532111719488717223678954141489324626210575245938386844152770538983171746572349281716224001187787683076806257814851214152380672415605188988894014823471665289378961510684880908124231935182750652831917103539448935666755628294443906657462541613870966662107454869384179616284927443897316560266915908442635041123159883025798925085198264784025205249328997629187232104637165490206303756688906808722666759666423840651075617346024814106008306474519537237327075594604857528691912649344052263372479916853179032261351503810272659659780445621512375311053901404370512746832812743200971449309539177729226537675200912000502439079702005206312209927827851659150053877082635725688497204813822698194116327826357748708319012451157044273657202579944449989722876783422954529917540842968787110984902558194272749872115461004642292210590821401188814474820095366648092527030570111627276201887126232904529100142597150085843290943868309665941451203318445200229314038056166733247790373575015676848953879903974886228949981984866425138216599948773772206902419275212227734733058322757761586673248631129131981306232260546546734408010966398288038212030131791151745574888065841225342412464855800026178348623349706474733316897333206603140446282547518276592945569084233410853829181582054561747504834270906590679804723920205088298567719795263538841293051720446111999492823869780364623859977328832892136465011786156664367015937544422563358447865609000613098904545048167098534903408310261514524996052695312497552417199876168857996856938673983279244450184447210548009777429978506144403199006613161442789233383667909517313942172622470919743671917135617427327147434536958864828517095190072009472404018863471747652577770774505519758918710060031707712427432039125207210466855019117293240401650507318236363000619215258579444289070400512202651475738229786776527277983469194855305265630917927329844864333657162876701373717695174969360433939019268278260552439443887248615060013022267528464041326547080114534136795856715650376156172020421218616929264173336896491737782472463616008830120469523348191191449473638147923992849115016605951101571243617690094757890093295362333750905974526879281831263142444754937840349671153124545508843187296931367989363745235188204641837230678740353714738294196443039745476073172847562316759388628140712579352237679377424429874287517782530385351269883906742626554246825072806170055229108586652253472679196540222042962624800740354957114899921292563782867089144497227326615384427670998415478992771310393799118569958897585842360324321040631815411346431652360195924309939015617904616851591504568191220924937374359582119088489106307937109459896439811197429453258003412525382252975450103231615275454506442317091320098904130336968919239251909621290480489181326639915956042901910572344706004253613212910743781188460611775360302719481551728145020590017614517474073205132978137624324886690912225349351275048651666624318662203484534989258703775171706116948132602652134846483769136946444658413717943361679120061706731016701924908120162952395638921426387546765057106694130150863821117836953965612808873798689025258737514905304700043950733163288923207418284744992091966709263839425619985201683432899958962986630094105005123431335122356521197256248915307321122483427139024363289822200387253032504935841820094356222185436380168238251522386615149491519986484631205135577206809978610696437956802808998019488149083261664645203574797880801462937073143171566072875646797883044196465684600746136524541180857526642965612002262717594509084005279015954294287284555804428214694091021345697595144962942162478305720711071153392194669290425672977671348080445565238324115285090483096901847307667145829956298908562875177987303795056270203624294951682691798034963709418003674225571433462349861845889720382211442557741596331661679312412651336271517202932795995165046599864230678627886284845214036695378406576586621018467853447300521540810769169043676960248263908115047240616429868756941217234107844652493421710894648509122275445050519937376262749002361942864587687818077992512973722794425948907439216799511190014258757159955406882410258328465359637129757825743374473745733126107702655897626581697005277226325617353937360979896062645068298344494925306771465705505456971402698083384886810238735069950355554106606491493405607479547456618982862423893439416444778620954264848616744400242309230485724088734190753520625741602503382405022544380451841243719890636022590244448127242382577976060863696622566642258382069222494657663160312139357871578073714621306723963023082958439874443760665689557025553106963597632645669718208620322303191193104381842840708736260285119485541256179935207817412977763750518975596580857771495640333026492357376714098918648030919091099253763980844189625335834494917020992132036542002955134747074128931151942743838517681333094222838150242555044778770530408547056458936475792578095268153873512068336309378664398911875446613679507971435374707037786927111542106041348497597052261129456705352314433975036546572478952867456779633770312921003169892066239401411326820092120999075866924899236341221525575112579291825026300992882880120557908270216541866775527277087555162579208210719526610179939581228856085385176760819518771598148981422801819479289057882460037242097201933739997840608508273163077131583302313315727556456153125269522828749838377161746050125976219936090630596134139668935640353508757037036693651628668881921299155180934330212564719868838451745648064201768028812798542317146893808339867393836796907214882236866545925801758818290458135302111582586314709372180289953944192287421634954789254768422566334988905918493322073332760117459918089922399358269288310337033467491685021515076468386573560556673508597979733675259391681434579485282101820957839110288553930989295088038419568904595382749013141568263144596813517775248162774206942672369310538263006968106940190482854527803245583144561592934570811489524644185244217778258476226488867402577434782618342533631146332809149307428159402865052692495019232428229710769445102634983300616860945718649998896831079545476351995353976565819817547291946282682491442769228532663084445689641588600219732511372146927780232428752875936676027538753371698530287844743046203853895361416053931646743501288470822267301470802175652977715807930209327415334345218476622753785583955886564147427633385929477480893033019410279394900443896344171412566428245310085781505672724457282585678201705394925088326535217374350844369546611163001746090448594090704623361559230807206607899917200846408142370712610977667927124273642089019604661051705019087677988924299211330440720809775915483310119514022014375327139692524398322948569818110125620910486138759919837824531691462558543540145337391900848019804016294404044806942464223996639829109891485197564986906518362211818294150711954070413373414284922562420168083064972397871913026651536556584816844975636754137709632325039302788197309774598233052032501527523521319785368485160293743082027858136935495589955324278157395255366078113888479489346795974794946529381796566621495029387111045778819945146283940900097069657302914026020531483367461936078778491059197358668093697778959824473514570373632128208642969475432154692482417787284036688365821578235209262439073115250886232293492789004671832948928738201896854396824745554572249835090167368695232141131082516776368803110026230891095028919923574783873355493849631945957530747660545870055725343477804248933286010832826311820072829166301942085310297286027112769622030161664309647547624122420999524947311530822474787563157383077594099570975044166605278678120024270256952869059259439393971287098239130798300916148172778257347111251377745613966792677277169857077224947431761117327692567176172578852856484850888279227354615188616524845373802887646789331922533216788029947056033334360340279962494910331495483620759300650495098018862353722269003461742628313227694681939527729516324697878804235448219310596981963735123580868034355471448065396945887313312121019657353085162944775401040046926598461740568284734605216922381994196372228130336739761015558652994823808345174915314208762475221416515064289610351063780520451506036301818927209046324355946859502765111484303922476091167631220926148158838439047212926592491158900755165468350890511615729205637685745277302661633463944234226552004363463419646897297963026216236359783384930314027103517532856314762714203684183547830026811756964472183702712238335050403402770374054715330188654133237272582812903254267951171445938947360711224939219404896440101756591616938728728126425802531505841849057119590661556616701221640465143340654526293954466796058321993073141013757037337988947048898098866497545464852408971636496243802692927198067081905219074235536128747264322401145228652876517850467531573951755868631495750276168881538025960636785003594065630465854804210721745535048892406496704311924742352491260882213007214826474112358231944247060102413135281949572571809135666958149473075711041063320171219406897435765236866042574870754699238909729221624265032897999303439945408406607796083140209592112226911532027510248953901591961067029546127632320482559026113148619831212516754986856685162513903739033243395221790425095973465239251412971724143732715610087224766711640313943609999820300543014271878142666017642737470192079269386756299954540223722319294061619677586593017022467924191659443673131621630158360459200100436001437167157112092583856484456711940472412588495571466716459504006316025321844484435375815114786511929018667277626508437441454146661239635360361096176292062950678824363834431959016986544898650416851465627794618541463504935072702647202067727911531358327672697426094022732868856666961397555798280871765441187426565017586005471589135454681215843141453142235508870706658616667584228619252764840298458611643162093850910157910499807797187629368855180118927289902193168017580478575697072657248312032205112759489382607988573684759147910288263006962651038338679563519659269773622148152570632430142053713625413261320872638633735402662398882826590603819425167253579768366794727213211206866175769054428609108222465310539031692673290368562668054542104081434923799744847435079174148573742425014582440573746540867525382114169797723148139961524376182274906156987293423249407611048857111175377419850964531627030278926837029492558113921145136902637471922852279553801046404608531416211699884763256066060650200585812649753793281590532619351644862840257063887728546202048178531374939105554016643564881536202207407372812522154839136734431779347084712434099015811401645052277377970361409635376386417158784050065857023259373211124657772481485967846430070553558402098380513143803396166332612316216659207800218055960044755073297814254774570291924962070559497232366965450124199365876900535542795005227031117307186207244683593717600509336115655133376215052821752404343689835642533561825415881305210980643871674464536269013710750588309113917767219737121776109413547671246972469134199523023423709043054831891597638031875708209943390263904314468996253406831293589474916471695429714236292928104102638763795124189578427775861359763194831749101348683243060807257757405378380239185724869398208560903445878178364907139110850573426504732380213178660040092996161117573888162165905707567731911534482074793055102844598995779562199226635068310197340330226569137477816956377713539502920553573224096857138781828125828897073636018007787024034648487701796628966905073907642732678763146356649122199551450005912096398170543903822438921521454800653990797522045709980277125275547440434118787033054831605130234849915892898932478662550762985128316288955451966564206502418039231284097385801882789658360321899937649129595337609376141591728478566337895094519290165170258109329691428309084167219571182656546364426916962474061486359925174500338519637716601181516709626587737558144033937312142418133782960920099571567596618849594715580728006797305309882792562230646508202312217825226319985787579410690714148702050116320186823846313213338604007916792214443835446792904809773785284611535156731032291715614560445041328245058793860845388295159310751938930730598026066562102241485767738829713740756554849985421604917266616113690305549702070390425383570666128429455640209022028665073604385287691187027501712571575073507227954561332200014579267094438823804866843493124982186708163365375280561975581686181499968865328988656725931950633669510498505053779868252467881877560371465135203492178291161742479602255711984083888361012688279771112962604937704690705313298447991017481849295398917635777304752766837805260054242229022839807571412352846064594544813368322875508554594988459204147092250398762573248956365534308482932044881433574589879545019594485160617703509744899409441024457872892583036889891706532633772721274898318983086454356937238290821475996552156669811156839656647671703453140744658851014844375967794090613348052880527552405353065813994277272189346737000593828062774630048070924856198183467999914826662639509473465651112790008162602969771425860773586561633189841568535513678652519658782653881249296134346306167535057901382546160168215796445183658216963798325217544457791091148156895463968000983885766390386917777580895562299970503595605867250405809028474018549805156962577366879136628192891039552800033427414054106877698798201596564283429983096550102573499765696966790588561785752073431326837449168082210382988028700034290600434979141311261272150801124425366444970200310092054657768621187604937667064338728282332996634563346446823319457986597955646055338893839027052596412629142880758121694328607724715493929095809946770718984176490013060925110322597084555496827200689719427385487972479968319473923561111036596196822366165250031851276701776351689174536960197496099531335162866552780341103713417786945883779339219359899619949696395411761502791432955187067044211079055754526600662030953889221744527530528228328854190322422449642280737132144976961863574264154119234406116429928163469023985103242463192530576078611531066238347599614326222056284527947667071239687492844714549846094592503527253859247689150212005314002125252350865200979557708169111057623975770059611211774487045005410438005734439551179064774277372475759553643195699342991648915705660703124251651364210521784754313738293067234758790459618633775546733907700912811727089739340775668357989347209916342648963718925894001460601065811227106233152367351008825386561931195269951794613680035761432711874569759432887527342945926603089248683064956331701383990648214748818617232873874915867916243586019548250741691000628430387752030814992196412057935038174570560204229374179745069813491954795770260392974607730609712801502705361557215120829387761592172942161226540769005135958195999457573563595094182243380773570943252905417170027488886059543859942496637222879877884061425158886001468545283904064493371722166262556843289752555500485839189757362273072520838810556983930247144996282383233409183368206674880785080206855447593482942225328363899585632290900874860114498052198795966464980555454951628573919681196017646174773645885500897923369674153497099475557282070598438626206217526651955509925036704643538260423554126649568751804981486498910362427169528857993126769179592776058928223372494888913900169915374840672696974237682613296151581768551518508805637410688673233154962326086088652848387307291353246118611446669610279330371944739346079008796263930714614378638675648095640651732783092191044090522183771119861870312466891542135657428168171781438192600900106097422908511808683558572352946426912505556333751993849691931547062712068312926128464172836527888257123393204151258043150509454167641830326176617444409110597852572733267881010236629437887480315272135617541895688381397576519418577666271084874184469446376756001631519072567438496556503791533828505585519538379574354423486902674830866096567385233274808243261429391061910418126030478294313207336213167365767062218731028076169704596214294779146382618498316830769558757397194541105843184813071670104807084601326587414019973181907746395300817023913647492872841516892674679351180670369069529586033162267430871163040747296209176320941569917446912127815623440478366014274795024341254259145764131313866906391315728598435909636812661826193807025028080096609540912073238499799394755577165171663660813446402069639655410517384728543228807874174714076034003620918326452770463493310174702362307756249406393429289422773622290891306035148062613138776921264064242424117299881035712686643475183616399740136297878325174111555807813081363551548423372660066335515345322432374786197060816318199512524714871536210205576826334676296851380012419459778621192561263837862624566274475549139445018802534482704391621939112585168077214558239035776374886496053674181054645398101956834032288626557846934592472754367540111212795560977027216430579952135541293981293933781843729025625998508771179999495851457558594068608140935629105191638964699821439872154057036549829211618962492846501916992572378079281809964534138006312848015936671252092218978943824015310307915788854810166099925700327205588848595153031788193900161971063095260097695789145445309355748167434778709822356468234888934495611433172222286226508543810399948643908881728873397407790730401484155468166196197585221203870307864012685886941250694512269170518920340692304434359002704255826660762875468852614214104791202101554405664326677297287272109729424295566154124379736106507257084722564340990671912323703275022670668919104478435553153415011269349134262067060996334828660920360774342835475139652428969122831273218361641242015996732581326438473832029330293527902583340551149988202897368864884996918154661025239078014490385079865841693496638387500554525523121794174245021347088767160579377076849866201022227889562381504456071753655311620275460852214015402498208580137748705679693825756700041954504119909818865478482526243732499962653552314887114770051326243548403823866291870379124106296545334788255436570742141776676232875643542703679220860977757330474789537020583013045692246821288660283701896956923485583920390747635102274499486448461097814003505910826095759375307806888328086524815304270826106060058484826294805609086918439683722711967382318293630486135611950751091529902582934130662362223497948203713191333742479237034451495691286620092982597868236210579667138256609035410816545554999328851924025480954767920344555415832631908524994493034028529164269140959794641203211508849721622754527036366258779468742096676328544897473959698159449601200108326857959981456141830169048290818314362407180042617050887109800953861853446179081957883101083357548464393606891952907058447665667805427892747184288509405354338169463663368393172317867400449355039237078288366915408238634677920884787118098189369718514587409611014989981210510643119491328198663944255725295713388811206209408595564047369332545603039572236241579656380871914082331217246755987852416599443834213906442266153942298601225951689093824352971168468290851276636334098358610491676150287380334165752799228898377238752306000437024004903435455027791390791912304652451241159101352136807327095911714988796666948205553365842931908043536697568464812686105340698212249320683081318537052436135759440011432482051167069177312704967094196128434009213206362115080652025002869397908309362019068941687561718306725136769236122762585212887596595196641753441186032635831975416685277037886503373771200654519217694361430688709262705586356248125503786126638726990700518260234254567152846559736809043165214722477796544967415389641487279329265274513683586617428603093580367723299850437378938412964571057931282022570167316627502094262637133533506803599993365961112581614962914203568941029902378034554612164698456206039278901644338808961798330544535145848242230590582835750611980227365454166971103419953007892750612095305286977118108101296952464160001061930585732122793130755040078391886275642400977230911891184238500659994463210620435913196631934124036508146068016742208317993926204821761946990908020250426916494353526741839645040992027898383390844772030707535989331364333710665640791712436814409978540532491521882931149077535458458448594550719339748342002524780098402441724053349591623975640774315725528699083128010317949759333868438265227424708910322100156759318429919470119052911661338035295457795641981048746370719933171180972087801958207556705212387510584746459142805527769452884204837405603092751553292460928199892062313626524958680448524810206753931090625532636971805623735526218706019168751413640263237182921497195942543575595707307349994874263910009107952804153983291815916818264192285367948654901149119361157283827763992363630656257189723152478494751463513015102965887940739066471563595945383234938335693903984681718954981731139056338526722542340699525705424785079156302125658722956659481219958542799359829617179853557119747766731517104916889187937921821603519775733411568455408071179692424334193465340583629175075189188926154864593470209244051034711631996431725022786107683755933901918700805176983548630316154178470170970959838374672692955168717208843322052500619427231798303257906119387533578475518094882189498920594708828619017950800221774780784105594565235301091718824101373478926718864293379050804729307340386167208143338875979368415811786279634880363631009645381558411725168218134600303551402864460942848338451251113003493486720716141839250441847282112625579532774269972251097625587978908450469186795297575236203401233804438543106822188601056170419807092237737181762151294350972534022960623099902367933529966056079993644606405866721377633894707384864709973423111075335654353078391746542942838710601273378302886375748410281307778134181298847226827754619092138719309454675831463410992300763239250419579665696729125873698548230045135446393208868037848170006232611812560039201746276050125848731273484557768369259400754659504596776066454695387849071780056792465881760816302447223651709178723482280837141431720470728258209596722644302507019957817678903931484345188997034587107183748519458850262900414120273646534915534207033452639985695530531396135299326975839314273316831194215810610495728778524788600409817550379130251809662148419429771090109224486379871091434107192160209943724031867177716692243221944312833841856079217769710143141033048843387908102396785393066349328258505968430443712775067149625200364377581346043999438475431009314707499801074125860092539429588473751277167638708261935799494588684116337173383583177220251788176606559248967020267185535585699371819002013741854966376154912418242335045087497981436887194589522619469299838343822102538675526451198070562291876876146290126006109577353280484004613370218844508583362510156957769875218572343735766395256374164369527092112484832084952097124322929043722275123580321295589087080810542621253662618215281407053768404979639731692849219186117212970116596555335506431509657857926096257985594389673747436085171035442365383956954490839530635490236377739165188367010307579124434732425568588589900319471248889822253961523545608033483677064956272292215138226733364735249658971374450169794831105781683477993897670638197536081901783717488353838765112787417143618905099885466237073082911376587554763648826078982921619116335728225324879474461248419908735985126329236800239421142772528474372661857852485860307676108240368851279193302843038845758390385151665523164326121152399384361025835010055257514471716727432579537995732177650992951647566310177778211588634338880086337220538806257239358245519975802012150609947264381676928580557068498569704190222838254200817344704513419109668328572214468589936112758703352274927941573522123404287286806601507665921339603727721026670331351184399751863593944336370953109873767486146503132094173661465788043661623937909257399256609170819079434251255317514428020925162301068984804606063537209583303719094153883981479349110403895168798329142216752590437709026622880179846378689342667468403701802532555476547335055170558595245832847493190360299191842324034473170295835907498639342813669082552905501716319393140859126276658244452372497726267710074395192732472484810794118612434820315132004922826253116883189934887052229874167458828127426737857263399889579155165392162999275216190038700260349003313216030226901858461667275047140164148762178540025367156482232284249318619001452858933487999219766897299581541213546329366150101790959207659664647800472775021665548861257580165181144835885579806451217262775687493367014905586074433967227450140161057198424569442410373491647776755545720481813646988525624910829078684257135859686338997366265686847671060501166485188421272139078233730681971099084941898330336972818017599181407524703215381728970933722412460784116418090588680785483975321979445355434615841144019085868787271151481997047522172134754304367680904281888600844609310571360930598991843209180890943732275713829644154781444924686417794203024189124534218076594199532702627788311572879326616820381071062640770270502411273035575299552909624025801756656448487843890216477610603599211623861012239483046513315125090957750618348585277455881378225623676138205835901224476968180256126439781377361734728410074496540078971252612727076616287239892085879658505760293025104989716998200348671299323056365977559764411990960761441298039564255954197333542912834780176014745871255573624826472321603929719638156626881203698407605638922831358510701152013912625525696426241381561573227540324436082696721733548472830935385366645528889069579681997238233780122830400519271773675848104480423170835497100635124164473107235085145546329310455021368381547601957541545057765911473259898409294113701521107504962833461000222098484045295529682091838940329409929133235513100736536373496729162846188303301747550722170338393944624390569021682952423891059766503324140720427994505468593107521067435803784155960125252722610249731396719196850141537484772375046832311905655179544313716949983694515455602015897498746665562707121552444477019250538580586087080482188077771111678841880113927802049889822925075448598970566556949851595697568032164215583053357967712309399124985118331614388247653462358688578794110618750757095030781744580184049241214066008611280021572823007688875709425341559658436641062979315507592478425185024499148811325380925503827908891224524656998398257319992047136799748278441098005232656282751683472639889320837268525367139417849126703651497265096473758560384143150936331947307079098973103235078088516216679485078890840135138359875397409101028617194078953572062347480135941022692136389459967838812198695300851783076419911810321574467455401609072485874407176416630505790574665213744915208009886222589932344293472870988509458438411771365631830690844696639135290868050295289804012583700422886055493765911112312443878852963610319380147221976443658527149771493396936913822132412148140161190408116516778724986942533120783630088215062425852797675553001295048422135755837273023815925265439741955051276084354471466570537498724592502387299281323302505837865810014319395852102817995470124350736643107738766681705902412588419119793097003917676240982590008294203346094399205246686621013516707121324914548343282689566965944232920471534659515965639381454866858166258550302477007909923759892933687795175349431255076455794304908676455599414611926266155923177940698096119111707225543215950798702403941156826221470521907434012228614590307442278025118173163053767599097525579899219551977710962231226755277767855793798477466319500519343231804642272734522598570674874981447230596944016269233322505301474901560770034874303389203745233388869914639402599045804105941338147823154970561357592203479413294383240642158640337308531513519232534353358104567071292943938275072194178428757589013462654202085241938528983467827503827900446253994823677411408978090801335857038634410109732693012864987705230255551409333009717469095330294263876762257163390971003776292959251040139597692332063968852412076552467889998284288031815046288380293650381264611782320810746471390905361114198613078028042421223281742920745367815508762552449712707692724964719850479317320983966665570129163580236529481804016581043215048780484099075966600155120485864164981738713757483559521405400880842512439861191896733572919139109414668467449612085022004860002618537622170544855654833149880295182854984890623876178274730887600523620036073604451192888799661288597386514046304670764154992804824880340520875761416272516097343302104593200128507540195710391187784316203485088491541835605064412172197329942646846631374264889090420772189534682307771921835473430195099806108945471915781858225549614920263798067096090421244749576111195350869489694626830780446227881182814470944686210384175525487493930345253607529960580046002980412614042266535047018727482314051636233074862166866215777746217923348165674021095754268416970695855979840785277781432082953154139427572876232328631193303555033331823060102094909803714651070647814613073280454873822120824441625504400130036626091214392913532358870219828856834041610287561477576198786523067338171744913183837141480281997505932867610809616579501504103070042998140188651182425521903886909639534005448378646308033118905909953172798394662079109845148157527775980620770007317633807092712903460736552583542111441638449630902356401912417571204750254126544232653474736399131601780838166290367044081428195053243880312170946081356530816891692124822633192005228742256916611972157156439619002820512158861182249977411246178608974825739732864323012988426550834057617455184022208233194899446827514850713572265711978980869413777871128440755186829271114274659140493593716699700394436955151371211219420518789168039000191784464633019335013720442940509729026492004617808974995888545558007718284602977291336550928284925402159855215764910404470723820840172395710478926689613274130149695023213339466655069334787712681246032154064639868862175029529516689197357011655450117816944067275179649578407473087787476751194619071118646944779900029609500921288510174321710047128542779143970098757190728931131584541016132403277248719270964169364412919071673161588341908484963550812118614558293977778242269956450345186465397598376988485741181688985646097497808759953516284189605537431344665504647582922516109541748164892822737156888463951511430101252562335402938273807128819939677654137125358473281726627165049596504753342358429288458458213082744501309525140527412430981620017901910222825876472423362791077355820277105231843035244835783211476847280000259083828392481683316789896424085843071167064677069157166814190407147481632666675984150158460306086341871231917468600066997526632660265601618739105994588422586553623738576807377182134784174598029505464322239589471654722466130664626530830193455967941917807530027261006255610789567629206522589895897486537352721528036354237970547535102024557008735947705809137753803792983536843096234557998192933299975625640983013736137514893010797434394189466582586584207899794551453317950145291798888605843317484586691578261122656740961944112832048844167695929041519387759688504749928892376893218732012712063264723041640370830214631928458463383970976913173181653834726467841805388271884735882673363897136344308931305093474720254696237037792421374258475551901207288925429223386857351673493748124666223871270990583481415657790553170813592603080800145614476590261708151274603975832047608882464756558914491027208482939251393862307259764640069501221835230105740375456169849791109929701099494805342089696677621149018197019935190567408010481263806690802857461086461785304069738251294316368343669440645431420623426286683678914218208534345073057565860982266873756667387093489396061854741880796995863094982966469935291941205571361612653750894898585951981623119679424259831990270731248862667269815068776959919213372161881625833896830714164273215355793584358864352497417249376175143499893077763724280841652832738171153903922595274939705382280576260267528625549860803094952093789985678222578482684235622340453014321763806162130592054120901903854027068541770072412538256169798910626328714159364935992130958588511547690085230676745690839534498179047256499993321307917559560653542092016982212783918664443653244283103242082951934899206283509046075165659440748558787431046928656851401117642083728160477569224717982803594315141676762413240662454173850788676418263835709804574610638811037064333034175310462445593118490190240404355499549429829772785311325520494479379272578013232696974436889108027138078218920876824926219180737123437224380702958152721819528691285938896431897869710819021532669478463005716868890143032078117458629235720667716447806328175831921454167170851589486748508606628214738206561255673510654700439482988345938156072004865224136312043224132224661985474468276932204816731818834518190141500099822593368029200944292385851354539501440140922850587364938608512727642999183964338466911003450638523771206848277117275100279217619881868114510618746279416135896142248694502503675242477592512546166353487427744256919611840453305404258118197916353114908144569563580263545003817984565886221735981926298786122488840728376549543653072908324391267131018002985267471520486562713470083202191019844250383154905203938806494971117825579928538680876854917834068212763673263701720730170485009053237234872952116421308606427579231433873423294431652218441978163905253181938324884052282287110030805371153853268437432897753005662582963520067308369718622764165368752913714178102056397011216264549398529188073873634253777184553181552442786103273457895554544434463349296944510204574592400013987405827136548817335158462963655379839215339339718497977280102342921715752388931561657116854754286362562665495179787081856061703736061258564233978663099993569474916264727559730338243837681594119367546180583084720094152593615589382001551770920733955992514301608112028658586598230976259912380976088123012157493337583864901209384161029611187615738068712513225348493425798089058964679590392429773090061703108293092434308610612131248062841004009958329610262307616408375826638162355358736010012642750165397423449227885572560398963397099040303253471249370881442674710675232021140788597012367535220800238361113150775942715547656411329217768362693860417817213664703143061935124759442803548128665037406354781512241882347734784257571395968308015793625325127361993613515009837699969906022410987330146230966860517984225001497027260070252916161578905686890292641249722834630350079074134417560649529572033777386432012485852390656555543741224396680443412890228024247619425002486979459682298186057763945914591838483808678323153755925838441314858916397460667833125906617716406561563188660408146525994146668111257070781896065290458089371729399989195272614165691101556527407035421588082632737332061212704957917938751578841875053449898370142358289845380218072764552720321082367002723230882405944487874977258738063021866727795252658625015455105301592252730550850668960852716180883883211222368587359286069612437682926359906000688834749630757777717487246409871140229862528806837817355178607415764120421808120148600244790168222472796652891978711706233675680255549457416678419618435396496644724518869716322348774362719529132497382975219583609597116685405772987317340484138869408379806840404692732047268401388373047730643040874808239332293941747853764935823560142943856084462355717254340107180147754139333598673849818064417266754219097751459612941118763343809075319208209884610758187129210041712158190411461647352675745602554353105435072464806734492106462976578753854590987472698290400516957768418720992157113624683192464710132840115871117924112834796715414742626696886723631080269837599974058177576460115206916912280234893017635419461604944633652741734305676483949864506447023468300948965446733950229019215262863250593871916815974362936660623381916789064668116566886844034389786921832320539097345598117690389990882887251524118561553146088776982721613164942154025927712951997085375093530045278657650565817765878169066774469092677521654541241052880109481083299074243499175934236765307785549824737810330207377351592920722554980237569595453461017393993280238740001514604961343057663929420855243711321051278592056548417624607969572426715922058853792925222168333495989857042721708369940741296099666842997163012497715437714266019867797786229076194793948132241878454596159686037945181399239637181399104589816749086271031453000239941515977192456926746014566096603428704429899077230878992201183178859400800094998338784520307022927977418884079116549470861399897861382551985731162276374001403759660972732797855758892467759474114160206681635642665657303535501776230537943829954692218269623834282397631395269144099286517069742950579124235561637177145005542548754811237385592256207367795091160639288816087831417947170156762669228050155318971185628993306999429163236298635213256531460772783844813610723205996304685438854134487182989838979578681821175432833189542739590445193242173425947645721176215453899616976105405253893140572781148729499193090936313258750370987011626461042207167410560335289903198957349802473418286199877057792350920096051586707714326705529412426167475175459618426944132884271156886078124804849870611023644966179796778373172966903764640480125567417144927789129553930655064857125538451631911376348413985437636275006621100450313853523061995621913630182386198131804558354685574530659833689533862968890186399170618986450637992839535994039364177301493831934050657068313576978546606451343330473594497513414293652612271792341078802655749430285309609320375274499775863631219632807060211020038089756549048937523901230961576121217191004718149614402795269246402674213252007712746863580966624222861964392773827793909738990215293280834230472556152842271644393442263447223313110497820654777881760350862995730722292929600497613308045868298391338865732179072091751053777965957930082392675298879347910465117171500735918711202289335788096800535182649281112362921407714092333747671150139140895359916325200072218982762051788401081136947349114360198965263378176298960329616684139589065281206863046043411133173231503790564402500141417232119910258373686870144711672227897530630363298562315314849193494197261774599084216474396844735702487821138798425184120665040720121784719209590165880545584814647811679492759408492246193707182817082519362713807770171293076080384487659162715356075614717457902361917118242379067501245366479510241616857116333588308716603508471165695086820230092081384492615422400505940991071110259942028134521727338555464772736200878705465823877872903161363429848091160203753982311780972460984382841404152941892465823090105985965973244892457329370013529444034283371855354222872599628924164226606459863440355397709262105378004767535049614947603560580450523299733427654630402662669294006189090778783534251635191449630237879141167215874530344110240945487756480574018854352910893040865139179454603329077431410411700803591307178895448420400714680224823187155335139858671101597616524188213048674048673576832774464362470601278267590053936821856462198375498869079140117949651330150754357343896539667179227331683747533628602016484706741719656364296177409556334938049232314949955487226623441630728307043453454331124507572239153919930715101040448866802925244456744497243883041224785341759587754858833524795703978521514525124274213181293349128003035519037390877318576301325488445008612888236070392617329692409255873444542295913862150063327268795868435233557419306060433026894422691615001986059336570627284497920092660207001462103318693219426158442316676075445908483335707518244558659528120529558236920878992101796197912805980022476101855401110463128413241801887956782830470821797083378796102684862356268378987673914517264681152537547278609260134365594835659117260896746933228051209887663729172077048997506377203652850790038219540876564743410862808903236419758936094143144133045146026294338401992993659477313507253817877511646600268078251711143469704581356740692096682746952845248964376852219799380176181761722354206926507947666047676307725672634683154583919163726691471695605423074649640206143462913111787094427816097811116655959165215341293975254920028275803992453232288245159085412879708075674649615753412415775441715309810758731478159355411492600771280156667870616305698293475988841359128759313277397799904213066344334622028043368017389423729878312455083363185528371025557797640749210997314220394310603970452135245799135538372594653108083118089881194927960786638204394892531380789515435346723983162133585162435288850459630849858010691750704273330537552059747907321866052243440079295241255798942054994352497001469900592759608683356141460355781358700863177646295495874212699786994754652702680411127355483789124640817751685276620703051158743638681705421103052717889534510767369634404457636486185495529640690396876735291962796578219142772835308315945746771496989076060248526181862263291568305037964968215882370533068577758025361058003442131502224012742888538445501177897889495133481087644749631712333217664397336190016624450520028218268585298940160927898975969793359018626790405146760788081646205945875267498802607168706457556691791088562100649634460204351059920468193890694942537772842977176797371770451272008520648238093430588171847537927999649683190686903225262381186529117535173889289975359398125015997652674320727161927406406164224814388365146911646257763377940108561622013064530217374554736269877226455691706110324638972399564599839650558580948069136124683964473355852803036511710160017715715844304333696901080990098340669537500624214731683639550988761125862152014794738710751045990588411025007856841912844176116222403056377574530352873399953526996891367773808875899400979619336426713689591770191058775279079248615220179992703020524405106987786409165562556892932519733453591655531924009784183733092284042071417860797028272091138488981660129886291588334492713496487592081336431814123764480930180534106335960762392606793768078302202313828089692855852001529953660252632130222221478664981084349549403506924761602998699521249196366578886321705337414328225849048001866928031487551083058944683518505000380108145937496241237429907036188277702800883919911781429338121027310789630696716646790408579823428278883988167554336823053779970629035218870647561663041001567829418213269469522611809548917952552095525719664771306611957010609580808888560625483614095970481012824155731098053454883285371346554481261307644701370303774947863773948306582563944195302805893989047262647047570654346792665723601068192220753246354383032169537933033298780361803160250400367104525410633855780312753484919398235783134369859878154425519777514351652650212412339161061002307331520121153658741745712122556471418017557040128084523360179221844344399128163446940566923592443692131653547259731711049461036764318730169720729942177773402789184404991020910549609057682326581358778561584110881293521615969159406248175442814527874225104359536552825971527969607084047873478154851069136041148453025510509810723768923494367777935154944728471436157082791123278025542738477914443822916070149947209733757414893725609224661455359090159856243782655037782039553591076768458141772886418600731230223286971990621866434506332600239049638573149308453101528125818702539522385307225523224469530230078372369413265759711744061304134630069498965914963869367153289138967725886511841279225482290376424730024883966451083314356169368925769359124456997517812138854969801791956086534840214766961034798066416630442564849725796568134591720536029265581362395333422118934305263549617170305063687950342046577037829784072658881655988081372863772957804546094635971908649317787934656596018552313110383915483069218505761560078037065120569462592859887099443234858596836400997402031627484092731039543945715339929806721932332849824111489000541357308076097793402399813901107792669501229717225155074817047618615147948572996467829476632809817989721612316405850635895321606011389799080598631014000065312305058478395102833933273399977313584418025982408312270329684241214648506549668879669690900428237535531500538233036327329984495019162381856259703200773022198502567204631711600383935801840728444275176748213627873051178849962109877800264824163438502388163400106646083789045875739186239661857923756811047669505255967486247604438854462280138472393637924127639338541087731606087191740402760761047367805935187775959997071258341335069076075286479882339932215921168234640244933161212937855015828460058083151500982637647346606244182256721654126432333232470333005907277583989679310048694789560653750227736151442820764486847490572260452418235616290473653090797377721006088032016491010545322764685798721838947457062557240688083712439224805663244250139307750275683881538483061497350445076859550037749056920769944327154951022433819706370920756761854416284864470817848782524051266125064148789504122013920831785425866835643263700525506144381637752322108760326898511682192542829203524323666718577225121705737529104537753032092506121693220185436239897543169966936727330149333174766796950182491347360974736735468847794724159454212747843764810034788911814474959068177048244923886578963915987078002116484196902902971378700608869615670597889515389797894547835400814268694130322121483792473492088420344384349189555745009852375358248112368690265529826044498962079830276664185784895140346850611952756509865811063446291162383009269071659186989026975269932082509545941245061093308108789330047433445522675547315163661117579721167045633831541541756485886797128885629087739931519482216605906530839942710357363261964863077009745802623165206836602317588185874395775228861919423798418819104823540819572937369288660897548470022990042379777594236230154217931736959539255998712813538531187660584117993498814088733606825682428380468842706337524249252032805013129304497979477051307838253008896773687493247340123682434037945713178872690410588707282706769352407685713314374604552614186468843715115291368185601104971702572720158337519633715385168927618805553511430631641882312541922664618689194249288226212206088637427815068074948052440712926958724598596565284954629647411225812005648196530191898241416487591305045439787427239070224843909390724115963873358578451423369817795339050389261253665535990995567175961552651694056876680081371805315424150983580514650318472813905226796307661075340802335502453193949516920523569472871882203654213184055285932483672611098644197076702629392627106614920494161130657624382724216915783634503232092609011530484482156993513131915600446396313681942482648361275255825755380178277629480923170060170806628473601094568630458417649106936898533229466651133921909983583837092086456196575704604518491208925986283820611862569574207856999826809404660415362724617122612195065464595376624121458695434964733252137535679156036193439346797489099230606314924007957144812595933085623741920698632966451175139153588856817343547235562244584457507010671090240044522004780845735251750842343389163283192281659953384383336085136877098492103577360189129415723310652781247429776789211762779578583908339709607008834242619194309130545979654033315193269884452894016589910408763643535353345110049028676038925055906841803115717675604053530296005331202996765697478842883987301590925831936331295652639798753403194113632222924995144368762466144037917525066450218336929404401129835000205261912486901182559752620975425204972678717767821657009555583914170127226038012036399613204764831385396518527708376523371678544868556413382261766181334173666954258841715702388253124008568294193256412268624441697823155364652942500494461451853938002024596678641387652474570287389729324834661176629210708693000958943481141170354753755935778885972591030789372841499069984035347561966588132650756921552728398128731411656346148498458085412741115486588940586182522182996332501241018326657442222563326673593804942962264292981186407174724958242615474986982108891674764483368719250172462513769154389162060420164088936669615898093132691915601308421426257204585130684520020561061988083940204777624788512233981227637774544212520044766166001343174332879162289601364293385773567458461221735771621267343950503698873518875929271229333261179453487764412219883343141381870060929474856395013825021707631530908719412418333506029360025839159988097881386126800652953544192194630519576759021171361230576486565713444641543159308913912096340065419612589978039815179247652088443193969219355003435592762048858405163448272940453130661478017304682283401298265882579394613943223034872035819916528540129269541879271329309654214301557774308387855865479813184233806344965608401780897364553574439001897605874480967610929144892174030240463383676007254489618919385164354060435883489429341354940845328856358628249836435289667610008379471885073326363725785824651370797506809173094983287539542500393612307924682591526340449085624422747210934773147282770817314746471335145417708417540414709594789664588334761548078729216482380110203230393412523094257971935351254223690545813181164845171533239204324320443640192034988242281694595635060357449196353147474502511397230395996647207247238370024914786436716622737561118530313322660378543294201289689478777972040269322557657448859317632623910090248392115433426799210499869145320882683903007852251561651312800165521098703812713351659728505008643439267344123918219606194902118248800858660694006737723214249397101514782689463251131864879934857292362037434113758659312275519281960604288380375285797711407531744050261467763422047019938411432428994158038507420446122877964900045041284025930436164445174306034200099485712967422929103188070077990898739066978375252018332752610915531454684154389424306622782558974257926218234796687983576620490157747066520010057169039159568844258730338032850500960707105022475552254585043962493129427195949087249909842700160093789893705485695065710726243743773797485129611617544471996342409290588341455956364179444645650915973489030250605046020220486239641430118621370202418654937974623630227820078610147767572421248748551586199431870979387993548025483599398465457487098261746818840557353082972059162611302837122078761378782063101319396824074115979782653423227736109352330033395599416030417929696380306353291957996374907356652570173309325870421579475497783197277686104476206453977814690731986488950305656480563633244658302195132889638745264791811180756083113739046495583449010955580080159354317338273927670829380056262605785835578255628399943396844805735556967912858608141257898826362398037128945018473463486264630817613455365296057818568194024784125418842178119160475754891010931240320213948167884440372716386058735018874834552973431965561545887608601075356365149981208971009779856046111376167197352167167987635138074667375838852254184016179200195231544379400192211302212306812074980940027971255931451294302793625786609974424694442938545565363467337079097113313220837721931570849519627986720540000631024361669938952575876080873572492137278543602290623595011234868202634781387116136030562387100581936349259462331039557382669087436979152908909638044834336492223240166244816605862851293710152447119252018342175945510724846694822438321594370091246294317744244667923827881917679277507279013837078819262111132872959804487638592322778188486811375126696970826984580171383744503312705429753235848599614382280199788842606594360298791990961927371091722963792788521901238690372196717247101193040977312112137283681027362947732873320929288004016217691102043610697088249570877122724463881280968603941803222622932793488785788877785855118766401074508180589655801379910982269900003355702683332488202992972355376843280662463810175697629116129104381493965933460053122441677883959032550154257115964213832271576038118572208245092841634242000984735664552003349456684531832179849367168052971394995601916838067793203200011093128545995686686082871921787940767766188349406621922378378121305240832257604531123723601072312353559157399027265889300121540987632490664288578023590209683282499765556039602313080329161562118164807971558951568104035990553252515083350227568616256655122740639183379087049620713114342511143261156029383645561656039373507690731571046039648511087622636899377875164628661271444365382204559228335066514141765344429769183027775368085487852337661881499493134048805209006925117699903164026669701599299594004235007412162630692604196360811181464738315589101091754509688344512814936300727191803583860685643428594337067196025108340301260681794715540369687856919070281497481259984319814240457205676919508772450703513793062491648549138887020663798473645684618906384999607617048038144882761176868990257100650319828706134067362897536086618892115900902619817644928754785834262842289428205702402734971154891858388924173623851855271384194970211344506411727155887117411204575924183004909519204965260277013374281419753947892905421666736749537809425532523779227021014029812005737109281223621696356010613870558502475894945623279809927177157720038495594833961217096605910842355714730740925811548288435505597185490742195531265207513599132184550199130892800740598620975885786460979381184611206989350380470672131610063794322575226034841950654016207710887150384692914556173204826450812154087288176824039131015445243680142148289827142652844162538369802304107824177318856265500202770576352828090544380947632778519435131893793294583301017223821991772707021839422971256379270521258789859386466174637213058471551939111421213015554091717968321483553086176043830935117645041753610708422906280513372421570247919705480615260725408365011825856323108559755381420575021697325224607921417047935225582325259425342046268191786613007340723050063647136600133423143116945332679617519750343178758760837583851388823672786567969359796206576428550948668223850487970737171366085075073539845300140433474797076314599821188699936629513463678266176481143315176399480420016887427130957114518777301896547883733837459094281217557431946229721760631954211663496852260131881043989129964865440656806001199637191444830640911348497057369507873462876529925195642288886745675838813460800772963407651210824081790223543469723465233365822276315056890365819878858139347442279881836892560171702527107434660733281443573715508139756856959006616013573194734644265938532265756119399182028263362831176580853836271037099003503633566578391001153636647029341647842437109989078821793160999785242642614746300051987916367272662730956226470823110170718213368474220019924541917788231007680948929969820511501178049690223520411259803930638099740604061367078257436729399343366680629989787005747766607029037858951544677316076759051514346597237830544131258436492332382704883169533519403936882657376856951463360423263226351795154719722978482083340409360704825526117319979943411095046556465648660050535791095097038062884301267426216016745583144076784145721637936039361408758896974432458712066067074434562228263457167935613131844237551899525868559042971709795569155149633566690361107111558338419798522373329819155037545472043299914538020189774193858761228890801296177280159313771743281856253769921495489670838104197064871131794579499513694586225703261192174440635239032769528774769235072195017212498478195559279795855584209710927911789867585792530704203897677285450609648299071731117453194079602129187814818007758497281153625607321762906290722573912943009261672865726505934075448469619628319170623358461560981593632977028418961639137218730792566420446894697811950447222346577363157965582105595500626460727678846559167520353102685135670440571671721362733637423356459317211546579359189882880593502945544050385434760458361209801075366559566800109615032040861973281037860791512681018484883295247116338653473707362909715774093066610292657208049826817257260008688501259017498188396978682984635685310035212912065862277820553109484559673218592681886688209637040000373747561009371429830922338417481180271055688316064221797503351730087470388977568322819492844340188910234750581503812513897348682627965283369212844442785432924669436102676812214500915030017988075605587451156011282098452135911313034095611502845881418168731422838360963068319835298489713898372079797050043412031418539310471386036301064878251463186026691090071381593087453899966466171117846028005607755807377279882447454834243654176026512368660045249657483585480262565141357083971074726686945731913546519246054917176024200262976077557081870789277822742613098600218142153231768859008723773588105444835126073390700754992153435007210807520388315820636474048776407889238839145644742045560892254521923379585155713831645144670464685009420359479649316265416087308066398937005325408347941308202900715420938736834613893493403834818969870136526272869601455408392981299390501739214679410528801349635393869439834745679447031444452390922047952893493021098071921779477658393042591084447305260250075138845669672170260978046164492212200338910267584369414191981278104727438890000019503528870187431626525449990863045282759962779475358964832857425662691706831820963616179459944831458299277632494903763969524472793685402732653522808337770436551379055572387527956368353469049756415008144997512352569603966291706750268313952336671818900279410728432019383482612825292123183618235677140179412561529466754697776342386854170769190690982114107491804237770023237274779473395375929522434751675014373358242020405220065575987757798337657024886940874747519223168712325734002655420389973621829044751643139858937027395555143108264598849920768011240784194204057086995661096952603170523655558640428462697826866860823476016782215259126317669354382877963665354870619445428479017107806615544721240139479173416119891081814938888119206519244417320559391206833113853568739697789997178915388259639111079785226119834125474130046066124718363887267397820214092482494830748760967989055540709277655658422584203873454575836734028340602329827254857736625925798337204639922032244630316556625122160776532820827683756827587211439061198616678800511507598951627851537859121257990721358304549284508633276142662225378162694255871415198132887385177674102185572492901545946379260027537055684552917972770178668290291017571410576349311643549417021894347577017059446397761946596835404946967195502685826744245915568609904957221872555207856182393319940670626655564011286078753293541372688704906725723469361653758517025357030451062825701358768418800995574711310015177325896487955801260542950964367845827657707770653590601310522202044080772592197938516684344082198075479322569496432231242324383842997870647609643051736812913813621313367615215694230241185904795410969539719983187459349499484597496056504609084435226499548755752389452705534391298678127508617995624755436108266465845564997982266243966225373157692090899737099357873843083577865533891765755443731782232022443996529878694120913530676502418988516701260451957086177247883742609042636405688160974288873990457127779333916162347546673917344054806463231051922451784172517538008720632206849126891173249668710828993808144327299529072254854530758366433754062662563994681194221500474287289330761294019341300207387022943404019732526325193295028854413975368470753895333852066711614237768936399234061128391724657480389868749471524734357329208221969929407608584402124194788816186938149905888985714445159345307214622115061326386428422050426957152742649057887602903069315526397492750787096046627815400187961363672741117015780963537217651488300780290008443266798944321870814428474910159994015187559531379663552031505910336414938324428207372918921045752746574176364600637307599984618279078581220831245120154635626804221866990953854525573852695986381367170196076494466900210297317406231305341923347368245310726267443743576942253142636773000469168559762298566721461101091265806948990900663085222256812974736588741785612449647155619489609157460562916249482390987915801586192103072589862877288611722761360570619111754647383967795852289945111592388763917001177702778012606476122782759609331336095555743655059044744462332830571439128818366405091762540112144360290428532380633276540107148480345579607603665414701455870314163191709520290100525950944447166132507518303427085973168542135674134237320314631113491905661347621047105489340733549390037306131991335901312610368674917519195172627810594787959009912832749113552228767039157375569308313091566359805747950427936064700857885223399070507484098659150673738209258818608019792186031763604211511759898889903997276312465045062179303252497731220426761122006841785917326747942669554579106432142468240323158280874390553844748096723091101350758804764905268763632243264990907825216376728565153194919069291965879151253977734138306282355097544934258621511785953127649479446695294924264812474022367223043288411494705817935450854206795384732555714765851991438036034178034309936120467900083506620300247065866556703990176738148448195923825477854384528134623690093219519185982367539016216880139037172944893557045321087482513363521625548856720962090183361246800471735533414800687058404042942739731727965985612294790639503511173197710102127133593044410124764146266356509763778267720365214878456233563852834142443795660427836653664141134431961953710222340138074111640254548089983806919163831242707114865797924494651320291221051831102040085508545005782639761899929424251117903938341427211792530020505225756190083039278271709920174159228457252005801051647887236478015121134281963993318969396913993886151372811832590055000627203318080652237497781128603198931706187545233874613228875342717631073070116030965035287607236872615824034884279856076821325234346268421089437312591891419983327041173620182233766021847941171310126721253940574996100999597464405835500009236179452952871960469513928305815225327225578788923001812712381790216966843006904505927113187042630482753395921002129779057871291361319066969973993423849802605265913031463507253619274338450390711460382910965578545632979397535077145435181667917373413765210738651447032858024276369590644907370821135125221198185231303544434432885730181381935843429300385404057276244129537865775901521033871431045482971996899150431192466036369726612512153266604760720416776830911018983695965851509783401555891707533707968789027415176295946168674069805958115505689240716327069889680798649446446970404130983967700615639579730482334621761716392918241870464740988643591836510881180184468827870862765901870692189836342944262229745147953123675080903358730719391584076391746004662319409868928402343206072321869259661255653140316561356185709805755987253707006653130926292328938543728620641061652351237802191474234580317769074238850972380567211003798677632338881518550508676337537597348956885707517998206836995889410393595257977068662450237728664955740904241934862119921358546236760515576014280314532291296518140139148420708583137053116940641703414787506976415500645949786099446835261134986097222361391145934162708674620682101789514164788072708703695268313142462849769129654164536978069812986789752120542967687216085673595676407966321033321342595247048575306969434183387516467487921290523121858481458458505889525033330293106854186526084921514522575864761497744809518714357209767255287829062209058962468411794765971038452158204864485682341462328291293879053610702048684081663536653603872011296804219770088096809772356474812318864426495415364413214322797370052723920852641732390505540496575260661327203503972147773429040785035258958681877955392748628431266886806698057251549720140126836247681381577047555852977315465081957173839692626064984972623447842121936739850096649496807745828825374562711980246776537719634716493260618660597323296235183997594068854004247561448688185131198147707248176404858968564599845536636632311028245902277243166952909188713545381180871249883847049309070069306030082767449757639756661038296614245443352429715679945245482021488586577432270799472651864355416140073722630267360225102678306468516055153358690287348968085084286557692435922871951445709598921223951469061013267568186272691748459349380582756359917226171278446039081569269116657183486493942482494144442021056734382116478290515068249198140746353568303557873229367001235084196202454499569227950754620394361922970488105305846012312199713794759341393505845912642977259069110589972893243140847725276099624032227847305539412336291612205219172954734381992469379040655272213782354756116655528216728883965259735965826887128422463976302561118903067070482473902595528901672851754174071983749194607038553958072397761297123736249002569669693544009313438475911867669366365230012136086327018032281511030504501513663999266050782430278891902727841081844320889848704737918744555100319143359548003235510176998716322578887821597649112315334058406351836086290108244749363209642701984713592390973809279059277358769035061311380656747890746066653784437890193534239272993710977331031993163039845440629794933538410375659379145406508295408408653346791401590756642820240279913199760040006814655000653231404757383368930382466517413147709744920207309726879896690086634208067319504250395590794811093779518522742255440134944555217359942277410147473532387957135625365729704660538446172390311025512230408179327860311969068327707923481909280448687315342535140550644883371984751473544723176752540623195105615496329262389891065252909362425534142789744283934829407224774700846424534364971742989802588656592574428947063212106747059461010051471255279569894289325772731520918029126459767393105954679960294508330279179132803109627571905298481928267092555483554614663864269503334534486894293368470414982094474861015759432555482954199544016590586014005816586360305246243327624872952930954054967045189371884388520680773495667749587165033291478516116065899243668957670675543446421654593872937565491756173986475011735129209629517296453942808626711295017056972518632912667032999569843296332424287674242495912563322910430934593457039771885143109476144480436980146071752821770209111030024573116603208581137322605380353995932182867409114819571518077659081993959919362186232819407958400653847909520097452337334623592541858912737090010749545739004144512448782353284621426859061589777546956262973100261415014890443937191932487047037982126660092639895154022667520809246310711465723611844812615432398875634241438074192709807762596753318718166889187652324688746316207168394709069430347836034861591964033157160102591765878610022772004765009881292153075235182126159943230923467665147328777468437457365983306132743428635495823872634507407181102855712702639998787397084623757402877855696785752811803122594162962706093219643643237379788146682525670863776038272569676749977900961362541936585225001232085067477672356994525105485053562237495476265900845377174445764722773971204958895906333580540841453949720397869759461458001013913442852288346865567553193939099195682227264662820565412000777060886322342428027587654680446037373030552804225363261348838673947464602405839743699213426386498064414379769696590924349602693513577094744082801831802204969529315278448708325845981724878008082468213981489904858073564751366141263397707867286366079545998744569720108067212141049882319732238340041511954653165323733944334120872429989678505116531341195972282910272558115032030936718712254605226892714820041484561213236900534596749495574378667059931395501432182870502007328017401106097576310952320971178726181337465439661315527848240281798973973655356443819133046656830415851118046004521443741529762276513536925464597179013424272594216385834680478510418130258343728116055206506987173723873304176411083284635988269019057402082540362433211801390468980097004852669289090229254034459382634247957309781279925701868911335051793857088660617435618473282911403628480662217402506140569303366832082834127670888351300451020181654046779836733885386817494107611621897609297576409341015680031106062020001313673984334820533359964251123457176586750341476280115769154036869776886372952491773375147594483761876568557896857258864058608019382134044353282553399450860299847319622782781621547450111032652703687930346009531963173244961978478093593818142226836750802905698008121922244925582411516792412450594081140681812269601520022060920436159630134468601026131512892285012482150367564264334140047345870419680450345401668424097363397754273033716654475589995820680702453529288238464372230886796573275045570691409547973961908238028266070961856197412417844453634464801675445424357507068647322359887947805615851780343432755281754717236687057844870093888875542796644676238589564792210870814600887083501125179344923335243909219483493442374165628423674043118926290225580026680607715245833910042951246351711894619567409476655694445465892862530378240503334726417308983543541544120165581348417156601977959804187697786531900438380080398245815824746035825521045004238396305645517939029289921296223830418755139558312210193364654694265214713234759928537815960966936992255093732166848700929150649392590708905050452668631964869395452771494394453749322328500592123534963697381542012196329994519217444146502459453716320882706613223945910833577200541684850710481624830329557770686804214414328074772954674289927774910551238986163658344213836558271420142089365137770711941433541515460057313026726049372662830517237135112508429709002614104706160647564362906566782084894971217591866427454096089860136333734798192211292495209006298631077762019424201023827572261926346820567444448253285561382206563032640676409938279673095047830270034743530211538013843417259009626319337279888309403078979067449678515592279762188886983999422855391772749450501978987208970314856162619828421409621964291483092172493928530325776930289403513196404870316323175673620938578094876667020706705502506714015406114016017545855200015408204574605259106411671653265675474070769805011214938259447297941968414383497606717111962141638971708703131357840468737787034555755674920746062419767181574360847360797297595234955732662421138075207304235086195706564475980078766745634564143493941372317340449538630284802148661768049513859588135212882687829991260923759603954333606349028966384490260200089906908759360679367167890145504520876857700638971077364852370291982231050450147985127034349200516328194218496120745922394063918218349372773408761694298369451998065587237589839072816435093649646512605392460313809021430568679615283992213818470110334491191679456032246864237915382224888089421759866733903149563125192020172609645395805273083645689790746951681905242321286332512873182534962121093205057180697788648420180734883520818303855473550929956731944243677934604815921141768660293877226703253680926207678749967442599772606374072613910038914778725026690399070596868614795792216694322258121684805036194871760673338044705813152565600756602407025575858137555880619141724486537318721913348711131737177999538995543740329206847584724984502184131986670171567346658342357768184213484774219275083839309289657391188384334493756954343679669674897248854993081092329531357019202894759957664586725572094194840765363511280960504629949620939488917082701279446436693576849968604218421420131787680708257235565534504853294419617423795016137182669445174715252396770891164318634131044954786673913515849974454834828719936777300579521977062008348844637240635638651813187174603715951245645440641302173403807321251737247969075015254463550966244049431362007447635194081968448009092310153248324683490215963431864252166214229040581440502048865067087760144805411346746171900163135952352943765120303397216908265779498291283588155006905018361527371764069606624109173742935475794774703801881646736809948186188979207909780523277809960681928122954989382776105560792057767752569075752266897925879118667550945307344957199534631802657332575624944264253508255087377774046941295183509531899148653036373634709645067155269064752974842973577331939797443638913195903261957345228275469898298557571227178829894814219682436186721968408292811118482775062279990885333757796460626494740868838054244314598235729074306273863244341508475270955432055070036455738070698185222117696523704439474051372161083042352901051823606427909830091224833621862853941733825422847948132933945373483539204234353259651471081851053034314367922098494832266657967903255991385022673731025095651265962055686270059925209811005047345635692821819000392184010002993150649626414315294805813965754492838122028750377858845484318916270382405164833244269659058211677094877336167697914657547839728256258185464052992910666008920107678391928210004972524564947693109185505054512215622892187428797981892968547241910702877759101209380744929105609743741761831675105674817958497024602167408707419109773717568920404724058656194322200548578277910212579356370014596749932483153024029265172112275163238400198714534525570784535982908132408578240028421302455815187266448004439032395299830036549053003296711928964713321338533511064942992705591892322907924180985895489660964955490645268089697144585469943185853425064924875939577782644064069954537797014125750164813021798860652201529885521966745713497769281333468806877355146920213098799101332256374457307843966351725236810809891397809816387452857967958785721975404697337603369101516092578587567391938288424065418514068113293097154882570342595646374063348024438830504972980075705778933876795130870834384190629126339117978582789383387887680179526299741480071276730443732476256295958462631442307635775909917826584958319870774669172971193682852399419180175939487040907308247770901178146164411933086459752994169201975126485073563492557712474018180996769550125678941062379983376544310353059997030095475429046691250470551287229291055002848240310538355030283406491169253456959097095853302297632208366993036556006083691681674512067872201067611741599601027682831506241079921634738766333255641708533633221343623029526193352709591465247365383292585067684305428106060005761726559034485121350882330371614369374830832060867492722573120421816970857680140347339777367798266136347527164661704290170722543152217980256700099211602962555338794236410584311298065797071730767216199766875369125723694179071613478448085335497465383075758767591011631345997878723038703216560049424645987178320774399706745970440632583063582835949167416427422632865849057665541954375527604946039555426338158696370428803494599028856708302782799972833896913344315409427756933745964721125452042638971170189163153759404456950893290896216075113308069588176788666200361929723410479613247528058462552666643954689847518281408325392126400019141191630163259899489207608322005464977256202796877069745614500666612208765550476773099427309366231968448035049042585700259741922586622109595498219149849944600298935160824169891795587191213501557274933441471162877246979134616557257351351947344877723993782970512253141880600308069501312457158043138250572810368825423029213798999098368542194126254165708196162482933177297882277895732303541745020152039485157258270903643357029375293282635119474477715055809978565127382863566353155365431080945260107765956438466978994086912922223011718072537740126819857645029520830521441955322966846105383836363960876683011949376238565538930021510306276649988737077637201339981970565315004592210310122955375956613238175393682780692084843791203249967489554081038245956087764803853875213715715174336322226696520038677945125077065477052134383433899246880469137194635465026594369425603213186209582378587909505928900646142819090620301578255796539591122332208692720298085921095512267373849948135470478586848755956543939668125564559874728654934149488118743114503755908764706478566360617626630082084230379611388652493991488511756530039530141464895557895421015207751773734063818149325324904042917044880940969786950880972606814194014353521571334344454807416842085366896429074300404795000197881721210911160415211922987905853689121776650810778111234836427818809293690391952470583496860729378200228493752882794946559990656367853169539990741177782194214604406486232735988058286773483219420431596203696764583568457223590977085812708734543127235661306309594037907562348398216725944867210651552651152694393046546300830420489566876708443975372782254251653863413067896388050229474078356409012999076492792540925399837531502701368305555499762650096351507214084730070895787280961780841323977838526105428335788546838522457738136607018508935561838204258576025489797771362521945278163807773431678647131462739784029686042736437020286214840217215511170583417647386057756320947120109075958322165039267627471915738960348471390412532953812221970329989699830060208209172379065272282634716199582776511157407937988460899673890606760303599295031392314729591222020887422127589551065423848842463528763468591379477989220115807151554161584054934277362041049567870953279080391061051733214564707365660242817508883226121282593735695381260098883025961067220635309982240203088385198365982558896103055024829963478319866115643974004657460158457531903212511749550783971580211924461660353964979141250072072230344732871460564838232562315855073121759294195423131016315812759581890166531570727614200275103006109430086033459948623726596998555196807812182380199782260628945639951291388439861874706966317731879311680395556994783459645051503931313001251344566808277283038019266517754295910745960968216939599404444803169643189686729004672627859922038725323776082698660701971440990322159984237018956265903928978478950397662632655577422380553062048834202146548213709555140847706839135247634704723375486115123796409128050276877254044689162212319658517620173346516088312908552642330873677223257507013860646241075363916876993947884757753556657852459131725305432684201454069058442276911401737271610714346065601436100695852964870815849529653144338618076266562785170019849219933542726585187520704659879997815874259390256453354950050663753035345948567604201556285939765033757871526926147478456443142299010891095456846628442288807075415632192890290535697462656609581894266790886940578857469728571883648679335208307179843047515231539228371759124406238815464118204059560588190400192015943627770417956522601310891794668152734110096790408827924497561247999518655725921392482865533553780436981818685233137072016576991739884459229174836762848214369215114937284099989953694754824433936968375775795019027980524247222457436135007171272037699814836879213085821611142940125395068594930958653622753059052178004774686303847017646188200859825359988347577835813261736624934281126211500280790280605221102594298690111009159934995037802290227842123916314878040708638308636316694722065902075364638306619128283268682492108065283617801892572683850299566908199975110728365820161686836439076286553981938693589689696805555024729949441487207222027119117227492347212532329419003032096049463653031240275766153382667874423083217704480899795345842768493321623339028546678647984429578556936455527055394253975341533694877068307110164940917703133661464113519671302527353729494213246372436385304196025170168885172866659955046202057897492743951451483702708784348058833467826562090363721381399548405305566218051600800457182914293373338434744897764519589525479867591545036539646666588056129637063552806661019676076886102939632549484376069710158389870460584562391036719427790634320155717030621456327865899903753499690190423061079462530387730868058455144577433590527015777344453527505305180112354650796756782041863618080315273761304782645824439439751623157761125420196572034216261204583334376901454198755176952116699933883075483773247551762446245088303722190209219860996015828384116975269885700143660332187796967801005568929625859358753845846584505724683585106798123281580755188794316533761500516341704573008536672078529480487700456700644935474493538813073748229547423641491262286623229609803154772536920970466589382519769642915044907468356648268992221096227950660141647458975218685928230581956728036217805629374046753538493731898684828413360951539141853945746938113131485434075019069497030888931953683818123948649816096208861495336380384505821615071844444431605886645990564191021999289355814376947833305607318110357178170932085696645689330531450846019147983372560477712797096437719509059689654856348281778105686319305519967719091248198765189858376150287513980191409064864335005210238754346300589106969281688024441886864156207142637183875492517637003537543267578914186678413538942990888469007512636295406402090024027943137629667084322074749579094166157633744372037781312016516883995054615235701323976336483623332725263160139319984592076131132564323545196387310906402194362414512424227317947924095001153755162823136796084773863466174508466068618596178037121597451982060737757842868092832815584905211527965726031543901789423646248928808777382249563698890570616881586615639459786148787395378666600032791494636644802019106343254724664966461614240376130308324669601936575155546384877622878567094346118342454210382001001309497443590381801405526292832789925959646186315593549174927798792470496314699872564587658735833169684993412260621464363327790317541932788514795777130221578129664445527892368397891087843659448431482637839939918750126250855796333270177782777722027280528536043625695936897834601982488414645303551166583709884333441038156999001927151210558816192259687010272583503520416969773523563671616319319282794669782126341142435470863231192827558764344332922522484282104852807535789583098886720380383222023550235269857628434352243089725891789884163760499735604047376320896472311667775675477271856453902463480857131047708876871141368375933084474202492999751341942716417884998163333993881449528741348627816586526012185675579790267103510286343762842384396745447507143093803580679235429870995691749311801454210249938488711873793721707952614576507870086350840583809439778344934842804327883493099797662643516100657330878291627487209083731159413358710139249317798152055054568831845849038648403162549451448207125498289908344376071456522587686462384709317901141930432137150787226239257714022170561307538768641370702979807900201097232270350379528232806033181616981942437792592827854977357426218969503474145714091277544372775950373847889197197074695815324583951637015617528029912400945615495689773507522354077375034719021515657325475734242583170342708032346618901651656037155299368109888251230556059071132488185576429268452175297309849684592908159047969768229611849269185207863611841097663482393789891585612600369385478506771068753704716499045748108572691285796826800050521095810871914794267145965762006905021827068809492561830799483909310166903691739920896918300305225086378747548467898964872972164233541739163302479224015233752548847379143070343817228408319438759105664880709493112070062470541598318872839121765342490178505751627501204884681043332214262309458261739973861502117401132991114872953314245683114917369097507678770793474093195044368641334454885945457468924404350996589151869439597660600603810032156216194465714576244455464061252467102373954244269402420304665436970605929619274060668951962444089591255765031371533667942715351917631550788411915575836291651878737311886194211894340896281042429148945636200207248781632870389307474317484691459474131956489909623052900805261603886233683999638442982914991711460111424231070430198232945337023622689300588974112440452444735916074801790013686490284622986484881641101563345427239750423010304476705593761137933417380703583940149172006703615761314049882352282557629951466921777861083822906085330316030148016053697263759906233898217663163110398292785394001966656358171962739881807915072075176383397513600355000948026719047865571487990524371648937739000095312721411974960053823846624991349608888016135370683104613056474209280474258051789696179999456509099712990915494009703353999711382432420490113123159616186008261838233491452361337860724982635632840368707662406169911496828686397665334287093784241968008492655390414877231489033775567705793701489677502442885047253141860535808207575832016610600773838607277265246614857479303750550569285550651846692542772039751670827780442792175316413416712307502843178020904835359046712410915406776916347540723219588779138050199643117361233232937946058760853828905151807775096898754274029522718170491740025501011383867169557496460928613472153280710466665931845182262592927912709229128890559287060317084398939579613613676207491429429273324458939483598863724522050907908566634342605619995037974268409791706089913449452923203895441499695237839269289429107135246148115906557202624663002028266416369748135279505149124345608129731860175872542947996764123835041529634036878848437679198841718851378773250892433781023376812191961543768049623393199044927559358672307238002577344311989712748061992866461456310271660220943871587762650174778369889069992099152802450925848349154825486952885563345145602736729156094587827117956199745227435299403201254143156380115300664963779855335067989291667864425330059050434470672345694553225620321432014568086956440919482368163431228051390020058824233267867511352025106375929211090629586056700322115818275869513811456242453236353986131367234478004697463266727953543254290698498188545743145018971039381839669010519840814311322619262963213793520955663913000095822211516190433179375348456264162292994247699116662952106795077284596141744370922531683711314351848892629991776698113210478266225644417499201387273654677848186729196043467577797174552154286811162745884006843550549795502122712398139195868310236176545673979886845554730725226807868671587770060717393264680157415106043187364760296671968956618204660993302466775302968921014896651644487721930427246164635753537404332390562435228704217612036027181241481767139298671269603360829040443378275921079845395571194744933779795738782696145431995474200907380787243214322243539159222551599007096248146034249021629169689103957135414964772743827279939525525127207605527121128498496516370486203872437275944347962173730307771053322542129005338031775982805366278552767897037927178166291573980142738594543942855336135699662903656529542111606744338821747192786364636063540956084677851168488587182346135850367378846383214100858255433491793231060694123284143062954012872445891674798843585214158807153610929134749106877439981242201452118627554341025664090201856885662715235967986885909387165735554090735748234439613424724481962791535568476489590069829729181453860621895490179029700731353765703744664416778988052489439490596245653835539652396593407084896451299244359770226951420734496017206227855260665945648956974098941116701806373188087468462699118815861526735539391245286002093209975435670385492794944552335186441351228165813447218882384021077330639543791137729359128187945387769656399081717793070504597012290831454572993943454823799817913172259676742997606327762650470273768870084956664582123787367126286709749095029333702936327198791994183932387879552003325577905755074526617916233406420788048035447555079714926896294989882717510769892918336144466345664822045020073697702078146039291496477214727682477200469734362999973246892941409826552492274125095500381719350530518073746799563264439044655805255297333534060868605313583196912439265390844589749376276383730040106278444522733812094699980265392866193516431350501403164757365747335280553805485188994212388333009192841131356882624725895677332397150662632857425465343229599761974317798146915226650544452512341665857384864203330587654579147065426176925395530195655468119145351682106237147604657440478414442318299950934694784917944966980380008243920480821255388013798439810058150391669382459368859740488296186310130053353329771319894078827510255903619904193998027962901918504873272053311764973701067499722259566831775306539203641467277153462925983965198701839938076739563854191140636969186416162329527836543124780577790008436623821275960387901722139278011104311083709620986820306380820296107239208025156301106542675247660624707609390545344514044803971586079518178733904403846281522258150625058428781744990774491033381243412271000236026245384351614355088148090339999269934948833590858583836151513608996033263667144375527935075255224219955448127379876576935262971762099305916113814683086465351819136641319765100011344566893722455844937814734514742467572182365844862244889419394868923435366155290121966630506301619951222746155745953973689088318564199094901270207338423622742290484720660763445361836380548432089002307054544931720004974593412630465477662593647976430418967134755204513284424814096044508638749328095640437244144430495876504651779182278927519185878333299788428206120137125829064325815597752970996534767434946886194096638896239189940134572543828709844076724734078050414047117250043329122794070532006798106595422009616476634284163950844368031278430220016126954186246302285950535392211808642006718310741374253745326696884519401605907611994434798013496428834696049274639214335065427459733578366208496185488553586418855679547460747618205492162372978851666644307139126148958268722237323504580607705487306688561988531742735522078205796145242026016758450291582596574363969531954062224517820885010084216009640049842553427581976524553330895988490570494575414167821372788394554924706453719774139348534141491291385008231535811306362317813209367753769549460236448540994801545274064847836429581388617375949495150916457300137566280823622051187284131392616254274269374910968097511700650310288038894827841192127500514006851565459922527645780230998074740148419955529458485063386246985107009744455800642462147830282013118629883174506954430833167521800662360056293433427078865663850819882498254386852166056416385152253379198861459158754330342183040049103346350315605626226018018077718506807887866519926560646042606120658875269930441624274796631176020035187556955278523153228251432795202675007734918231514687998792486172611895895086002353946029711407222673398174125883552308176799577430009678444682564263480257976897238760335183950073688586295762395339082396037260073217799839481469606711249706754638914442752630471409125800953288294944469259904593975040162807695873656153618416297099310540216139186083732872749394244826314407717823926598892310580523701900836836109661964142503793394213756348718980925550791194412193956799931829655691274015771009881715615966935074763547155139550723942651249578394558218704157959193710143997237776012088340016098772665490453762840504520139252151036138495548835697141968451808431029463166322747780364294667466206235879008228093085857232458330869912226086456294318314520917204439056805141942941416005376005758941764234562514697431487383033920468757764708228739976675221906514760257496764247452773271209844918782772382565791658891284572607937788546839969969904921882428632985300728366196057083724918866249630137631657103995948527830456358838354239914077293210402394573108685929816325225039595367128850541285774016626796426365487780876413256004076515419700803634540663708718523998053475262975055505692163996292258709981596985281805329985451351295334060142989048297871207443434224979025539554910551573210139747341654599834914532881332620577151873664453827124055013306056516195252650707881901652745030048843227929326177195948737480665436302563556510832432034466317993172557273693520949103563049815399197286234663884163850159771701492152725487023540418045801209117701587880583081963755601627264239882622365697802271914775318504164632988774248696943295682285046510964234901101299689258776633218538798480503923021619934219509326130796634570386393707903987410273740012399061556944593964149245458484852931985832826916075311209330499415155835643547905942066727130222592059124252423984540210077782152234210452173742611280423877020227287347318230186897092290401225403403702660792365719270713665515319549554409873291012967406085314431565000783521521717261315336689683690492219350198627703302343607486617938695282171979124898745122596187195600790131144315627440977995016906712172983941636641356209343999661537300093295151048409981372443519507619317815351842274211099831815701339648990426789296267408293862521259901463356197373267633453370091834192399899079767870196225995311421114895740051180589385130521981577458127485474779156474205979591204384708027307682520666517504781735683319146985001024264908744293424411941821094772418972144207131471086410967384108772071614849401743971426936998716738073571878287372264877184268391173837299332879823456343407005750580981157665753017802167013583948230904746911378841666313143680079592755437488686274588390979299191143658841856098311208553501687387036416391402501587967488010573518402083069156476199726537838868653757746641593345586077288259971157436239209560078983144024960656039697889458286757312008217276037249926168408648258780370652685305880829746265477929054337977596012278093504029579450311001607770488157900844443735809489161869222630525924357001229826451228805222695348406395535056696459165345871564168797486642341696430724065989302892853109810292629604848666182033405917328289258202964146938595334994096928418906343903231213366721535080312957105258899051042161069167969074352610246743288857303947649678042001428759218387440468893958980971971181206331745526804584572933526210844489740340286580424484182787999950538667491562683684632923495682990550751603805053382656659492391416090708474381761135990609908190606566495386484580832901917869290386334764805681168087889572887559637875914232708487498131155285154356838093874378839367983406324170567720337202206308685962495483122539826251693096162095466379820597229048597654607537113059061417300539272597123150616233223415290527689432730840818431230554207826349225962183773731095215167342469243768679261512757253082719535031664264988949177462693303399375791881458682987744541026634462561745170881050406841239435261293416795597474609743213726258160163516494928450708201848824767423994750745617502225540154201902402969088108138747851872700276889315956020602754521749197547639923863691317729710046030913328643444219511846405779049972112828513705246715027679351823132658475011012058919031420698001402878759211099708522417048828443585043669756606565692866827899180346784109726378174431052492449289917475617456339927015761087236516033507876591894540091603755783718238516339062552076091419669028991542474170539679480836302188759381049404730798871019658439179705472115193374533907418355472080720476925456553889155006293241446953481319294216395776307649598605697092703036196699804319129051915836458155339478847678814594700695729325123814301492391491618671042477688290544814698521824168685321943726888294111104676407005522733971606790980699966989920159622432902462968133837382505002583017266664835779924830718658221187191821674824199353439164776162341918468784266439085345287756500536356326322299066072892420970072399588661396191786538509288119049812523889879601735022620861924395994906786089873347818093172511442294690673482940537566987949185264230254525190877296499935428069134496167469582806048589911076255711546999846660188422099382573104115621493034793377194910957679589080356432078524889476505177924762870903130399005802842461779194874378200447749571939912101525110628780253827686021953831030513812437986012532506850763902528092033463535189020118773654196473039626197629536703744390488295041000324988217263833748254510176102599955542158727042698137282156434062955063085132346492374325258373566117906121962863866179337714385730943089133095525593305669710895494018655978294225424202874983551030678543132434746434385159394014818290004236714842280052923896546706246162396570106264907467900241792141602928376884051768065670048242670680380696506810588776928170010828462690908953486341993854028418685955035291996937389394311052255114567085950048294080504801674718145865400110797178915719697159152963770316380181536302865856553139495000564292932981253924540054867186237337844348613073387722845280482948892960243694188191022013364630138454984654787897277081740640384034808802013160025656340366084971448367927661053787134083873884443747986904359356553085614090280559072840729616715733640498223099425497163037839421891926840947915810127432224472708290936066973665592214821648946755878848477007615844852670225524409994787347268053667205613048043827780632561854514137879224546269406656395352457998745967182406285231832031170775424622610027447444856622218661251754625860743626060771241438256327457610942801061477786032274641249456633713008106041453442432869821480821811648291447387199221313272525468324235577713792149333819216249247421364655045483745240302139890138824550227119629668950224436170857088584235327944565500489664403383591933660865406518600054181163035733988346009650225196234219223577013060854709145886846219851080244440026097067618754393682826327646787438711155184492530773855487549741135254871151908958445243714873895570414626120184787573661654648303907713004608438715329954654171024129243280050491132201554871276430752080791021629078544738430048226429017199635052043726001689972471394056890024545012407517717940712455513389809076979244280954152807422815124396429165734375099532939412428138818514470811784713668412537411715910624296440501676293349012126385856329018108691891201476961846180971788394433749188866218057081124786656839144195650786728580992019049094182682249594068711152469594757277439983459274391461613520059685799137581427395243311820107959733190898726631806431284440030884781301441006594164866603072689779762529703947202334742752141242257564856698064054816101587430983384122964289339812840416518693136823924243246064570687106312938162995668345003056429907930643725658876521866505040876904000103115649168526078520664549129279386389112320886927703138303589537678997208280660748277317890907838425454135818512283476044953563460208688588688141935675993592106320275786556217937655692640694374466434094130232703853291585078711359595307882258881442559690635924829356487611817225618531082874365623529360396999141641359853283134830436073326967548392345337661732265465462211339963947431080490007068860423536846662563135380863173818885970833023296029814892427928447027421965239441526238381262080891466038045727959260866797839996965248098087816154109052089785550911968723198127260885907633723854565178108773758668427185239220980794274113060271870506701042252693948495636994196379134898539788381910327168843813760752582889811401716576895996807557662812780004076800188009077331906112130119953968519467026519546535646653939096659678513364074222911937781142602192684131082801720701771052554581136521330281880800449171217374495020652044273916121920462485009202607012428099095830449051807537765481687179374694226236751505157750153070281098919664550240162558405963493973664675495217261383373003765764278056116712854319168690686378040405254129952709478873599823610895192535139541035994318366586874308623185561168378144415655263769470298829403151337965962051118852349803729206022652104859950251782916902005694313400122481227050856625747002370805620619039433223002365881023852304067617185396372858693629137102400520794139527655444152726540794399251628853075527658812583836393817976396445165879712096684369164725574929584829697206286507412627713739223310427749422612079051240962954794640708513859662338046054230734010212926276448878684856143546461243215650616157391999883311932369632005283038743760580013408712764830257947238322086686236738619682902715504129829511451375895430401760688370659925380489610848970734484243633450736972064631993593882011893982319239780969685690952272290978940603609500193663761308113653688380963727389572552449834213361239291144165495375128977212461416419479469591149014331731028370922576883994350878072934917381393358818065653025920810138283000218173863662749598560749615058652792365478479672886271754932813773559726791550534920578566070996147666961780829942986025951287337720813701202809877056941432629795580438631911723019850397403551974368353398775853338712116025546121368344037486000184861398582880621768139001593068950406528651745666295942722329517403953572237883387562493715369727415934389235552990223117261205440953937630996275384069487437760244446669081912506119653218884751474816866373255479142457599566468396715708904282894650072239816206355713254757779634843617441695855843443042285077999068937773577025318412849612366191647314593537021666643285567420152964136442941525901214636549676996103576816179429705538327554608202788060960695921409853248759817755368917084121864510490382291230798026094143657496158689222978190880793817826271572044892326885260041183171021369898146732277114205866128055957690798970915365681096915745810242196205547473405614964752251345185440213526786850730731569130953968448489682395205141571247751789729115070104227174518363896558830563105078569206652779105269129184937407125260163085062365710843019297412603926990122480462771175937427572842961478459507552258282889237473562207663515956745958896724039805630366076791042456921438758597780751986953377245706373873454517541264151098224746919886956113128022058661648621961306105350223803993590399528374848368548280545436751456971815925501597868290318709378690118097025962153237393108471889894433101489310571795336033781030129452193670914866353891830585177175025700541126119003423373031625242582137531561472832984342499506110862579325260348630426914244958728697198352551266519792520952933614316783552043139570561569311267962646752533033159974096306307287173156056737180991652811739550134591468702952656598288736009343363789001776177639422671658264937429963487017920721090860009877040430547479449339593407948888433111829978883625000174220452128851267990881374439088157175405110385735979953779054974453099966794857638653890485827087831633100863848322313454521994312464533910422438275434585622073775251264374769164866943286051209394280873745716861259454092266578578448591920610970580961925331872505296895835008659821787043415524944880098673722595117698204510690805271147853228784975888288131921444513635401655271273851565505764857161310847585865991598194440937005801055110727199302378814557096357612065131671073267311472698966871643257774643719850640559631567748028350797508628728076145802280156420174725326369908458511366613640417792524261510003983254653462158414019002307727059388463690490622352066683290663695039467470764258614229345503959639842277800338123335059338452135639982364332983254938357545305327970997999998345164206815313882726934939618079885619690272798758503225851817000126309090170586275563634832097028213669118314355947181703839124630719804537058607033867013333803292095386227509510265825922153816692837198976119968816443483724050577457353681501434495790524344128293643128195344556741791567707586900471869829598178196295741989358863379529688443443292067373685109456106967913001845334291608986515231373182549989035849210803431445423676881545590780709411467538781512022139672955346986686243627658060891620898093481288839987808594792248289069593866291539664408389242497090023483114608741760215103180357362414760937812343472741015733675447565653849761698742402688138882702292689192702359914266702660111969018576652988422810017067637634047345440003638340997764730990820466782646932838143634465459030244215920402423639574778588876915411524493376901459333808293023584284155094501346502225682859045466129829452930967198749882834150596134494202667625965246409814672882809682197794238805095366238899097477334854386675801942111515569624455416761006344569289931433910090983921476499524021001803226180919010928966071776464396931677417766765755015505793238337286264155546819741646679645880634634596038239380542342216631712298419640310663258806774100573304429161621280580360648684310227218127851872598295200731530084549611880975250340376745256711881292701218660053971062645948044723272146640135851926278404520720097652049871296428873651525134865700276155988640356960260190157899519555307114762680664162653019859554437685005075567457860877742149635477128975741344581093631199516496824630174142879429174165617388284209706016943460811521218157190462041415529475257978037465646025905364682743665240014321478969840602061265044650237496399433351142366017406201852355243284623947357230179756054032765352951937607618818275955137965636183428367376518756086418115246464907291082313093714190617218182983510362367368477751592219909308297213393896262850295853139162987446233113746639935450815573924619348762424484915401202313220245412457372055902729948801574109698690870037903257942079564045374970307956536172652773547536925142454902756834212859701884556321469465493401966837751101337975819382611851610375422719430166244843235643578433938507199941186779383319109724372394584045082048767863478809079587420378178499923212617749408535656516727940327695569080698143475330221751415045032750957307348689038153455060932073525181777562772164146824151904542478633090472137386870043043414126531024272997050281783341129064474747412110791035964389737796599921622839789893871886831772834892470809990852145567662079834883938926961601523449925583703707179188971604076173657132987628783830670525450335684210841830700387168155068302424743830465354879066996631870758033892075767343666550951435504550284422516056889359153317734118326818791649660214242788443937539722671647185222770690786322989942022089995858886743083408882510155876733440086251573935976858780518034803589247338802592576565399560565761899640831054664091004853268659973473188097878207587910288919005030486751484779393741556647292213882507787853699363448796784530262636719484019802044285798248104976065249040366236686767456602326503799633196508300813997985935049349842098032926123263138581747259033038342725023739208839478522929063095606694176393823818036657075420337280006059227452783938123423897010488580022362782663647099703927708294541850736308486438066414487752945921895667125824874408978160113835561792572935140835600644724674557897745603372753719788290476289798172164429732598487309204451745589127742687850756446134011805550799280365309450026152883328894120119924265711194564375445230902624907272547923000086749110315528174924048935857041771338484663474994849388700933892743951479774153733837746460844677929351478906954809166800097424735047644321385139567376694124166571679218528171603768977006486685059027510322926298441541967866683265727360918469006281650195227381495800501162760783562317944193394674549061317796556709396963108045736557239473322407010578005910525002615753657882474717335230539754734623418769915916634756374529816554264085990407373670473750278340458087036629878100823434044283463560522327342773023300648799805913806511371410861388119886761470552425041265675943335022411729768782811990213144247296738940307512829130251465006379408320060636972119568489037493337886755619100353834577855647436420974639333310585341380119752413760262679453503854726609917950454846954635436061392634093175921991769164481811104197709329478809704285761115368139545812406629294116746854339443225879331111995961686440058858927620457244268730615852443076558811934358766235614023947640666493970604865123570212986068829893422832004175143912976458153358671107792328576528461892202292376736240130545688509204909596242063404886106147115299017145909417457086582371531769753838831400268513008362850644177717958472825035519806733510411340044969264366583870060023466615575507008379520684079338352453360202427655386795191381147502896794662614482335129017922143053462042203756326100334669805438219530998431686154652916047246593214999586935912302346475592637931475016689303961782658200182812456423224027182766350761556653042816556384538621833810167888456661117979977101342669780921407843191018193611917358857263679631380442738484455574328061202079908248240647073357087322878203126228579077369515181726846062010762016908780445093045436618649128698084551977172955197879134118488361360369050742964802402327788821699719283040441190760859503179217907550037751428198056466447814066542408961102869169582770310079752881657415934440374750109351310549745698338530389515688093209518471301460371895175382524111184384479583739981961362339442597479683859113866878507906796824864781300249153215763097997029530964708163603127624742630344339868415050110761894626434182235399581625628745320514032072826736399893020947252492174504301081221509487174871198009294433769982244204341609616379363443620402615212972172221419257620310263668100494862611190450784657920057644142932867201046160476999172905191578812341204747988569180960068510086640344681846735880172731571662157473702429014847799553825037346646776133088637702490828858467089423775499390865000692402392409148725335913943973823118677436894755570774461670746215412050895189874947647414978099631514429785620832513450315680139070855275531568654350436111994074683187557842016634926562246898370013477709526402411864086574835015948552384189861478567213374254684628442815104899298331240615574152322928869011542869092508876074154464248177896181171884849236641440048447909719236326228131336701724478678413074599548013190569485095987616268258946557428626265828632130732358957579163025335374345267353106862448981157881196262626835632012882629764529208738676793113371487458278867682715793326588650631647644839404944171997681317347118503588567378248059088482395331897072395581818674232568219198358773301353447517307143072628945664761101789829098529733869237099848839548497688565557025524952035484337019503647195862363873524125095422282411884433455411882552627870227250076276309702035186112405435666858320129379959263703710000179705365768108186745565711374858700864047945065471276478937493322174502972665778698474117479320459966827871983571870805257545859438549654769336997776320667528897246524383553508539398977125643393029701354348890836874324182020670997096084599570302041655304411464208701858003334944383252210121310572215750927905599575016490284754027964178370128689467060829612785462318393942409814661890291144135194595909009468841663134605854515846936539166089258209484558742301229420486211315741560030893966907093201711359189554398770806455563328128837768370430201514872449564020147375887433326805602322512328817604483191628297792849318491616419570998995662132068457907242947537222717524195747421716070259681037794535933952797882434627538374980345605497040775750085226756280919531446058105035199961786117914466698948433361680037765641204283814682966417880884531844352211537632589283621807722274767680622834101259179308786408364106413311317519600481821505733955429809372434589734322712543006246348570229385046004226460608014066412028801829591067999979329884174255090958305971792147792565119843110792822015140904064509164892001692453195753004755656918444936196577842560564247182903316097526489992933272411765780302498204205690311845756760803858707156815786272819333443749915926292526496578303998198323801928279771187143191458727171496486309858914579083078503170171844689747206113778991779191299422609048312899697728574040438365148944281172593148546192504315735004630600390930803890716920729837233122800050745977757684876579875270829753629821834892730043606908981451559307595992048871549539274882482697907869969078473918015159314378477460511487960721728655968513672961355302712437028450355512286660928008104308475498272819215904086408689555436290580894026880563147503672996004318176659033794152136181746011406905463507723753736250569935453480993257836947159467806452554159525843282840844540286639387475853104266246170734414598023492857946824877222733233295609150719491805515706588939031656768133369460106756694986626378315631542477719165851502041342692425698814715812497155015422347038690525862694355233782559802606431045713566561655169559760690574920917847384480988415830413722859903341885248932297414775091301034628796861776741079927703753840799441484767998021369523179409185184330828022449431095877469048589256277548862305006282235839845808992983365873273123609903150563289856801976127306523145253546769346142115192436223504690739855606948532983906074551379793729040786920631488242349252942393247523394273430387060241301337001687851949401423533131759265537912403680876573432503352114990438476936878391812569335826876836918000205036589840994416887022406927502449217254037664017111527896091324500286382547137673513722518070530395176897525323962936506810474320156007205363102350064154543658830869256822421965517068050552362524736265419912064785528665766876607207653984512146629025542206019866317241674380635474900577835997592936227126975946465959758948483362111422271407664502208177671860049170290817258346331695263698022597911012701162467723776993600544583477334445163164332790093398113826458202539907510987979273023359740403030829568823550623926003527675051867362963289178419429365936761831820471062857788539839177579592266440084627213954007886051970803532834709852483983337930395723983062986116927833683522289158024359754863089806904460738970133010672823194047144586575799858765173371260709852633933078809317416630887190844153277638329727396976331060813103563853206133600021245243901515148562661614390376740658606106177501694947440401235349226244143472620523224987401213998590381335413380642554930677435507202446397997846442512693009731652522541365649847117917586667077032083522517838225416093642243568574314335685761678311897627218326907362582717797530009750328335566505052976194752048060603805783692987801601234189015129410401411369788805931391176652657595853800439517718783310835275699857277656197648179894607654141877657830363204854627945723278043809753927175939801019233953344498879478895662958432935671185990358209737048248039730761217536805083362260690573456246410056276589351176449378485059057431893743975523966936763409738347814352080669669945385447812153040503295087392980099591471828513373818516877459511497094967197620639902623382927873377332596809621840752673079272165589102798610667335007954910666371778502244032136934206626500743704631497330700385422256219774601589699315086992786754232479815500345521318690311991745731714702373936621023472711130756495347292585680057811536298239736984137680743105727781961432756313606508626007859292524947976920992720959579793044154429241238810889867967759696452524559159880184339743605959676819663690954138816776512816975295224576021949687157959130207106242880401314491221941157038338979026566007524641517249609197515229188397124468500020843235480010241775689353142346259801038490155615728335263125977986259760487927071624414779303847483363417968358943255371087749155161774110730541354121597575835406928604916522808637454758859482093157473485543125066141326070853790677327084129240589810588624175787013950818572354979695956785347407274769634883854080554603325620754223202600440176698235996158825601624375461664208208995558711816894701532720966606521826342573545398634331822778350059550004035865601224582808690154665467677722296252009559657293295842809839586428701151823992621039452044391215228459222952917255782995688432507781255217175034722084359844220568721953681870516383091571947356045009187472321372254610806562865281706461580941753076729844068523224010773057711105573747087964658918252119354249172254750213635303916538646124762397042000164269057817032107294732725995994225209921099136006949401083481844959524200261261731884556214241620184773723421214726454851196796081032924082672213995042784678516533442462186841322643299525198455676958475411417345566015189137538177774391616959904179583947876991670303439980904994667569741604056157434291939254757432492486668037319705599584876368101073862157447549417250694091664083447180417010267722408650984302838977502995325999185083873296473521671609281949557279742546898732524673914958367994492438974154065563828231966104825025885882649694946557430603415364964904238264703410089217992732384204048484047589289018378768500855262583733148848508199495624924260228215192694009628967819913131079628498266034950071297796216265872533430220802906704473729385657071794560767752316853241006703525599781510587884139717809522161236819678839770103390855967292578166028401020255170804549420509632089415845611384550122530686375736560199463309983889495475884292667167786744336463074359209949064091066964418875716419925901507498056868840148563483045785075345297044520893447548376215199041187072198346876861305940547565321906485760051023276880249769092316983043411769683550190909766206220680916361443631519474255447006492057449303387476366367949580343785500095138514513154387163565672671806783750401550200257547301922995981696895210315616703359217320336697889554267305961432394150028021717227588899443936611890618547863339469461439642392626560731304639109939053265657736490590645868895536034272903692216322940243821887926647129884758510108954562352616487797882301404610104634992368553449664016002454193741293188809684369514553090950192073012835646626463425830595288038868539492868691866329172605890407547244047586877281857170233726548495128986446437534213718147993098490590831248002667541841796595720161888165624140492113843950501311524930957182420271786105132727099910754364939785903097235637600911700676102082404787466116279095233378986291704024334795633128358610521550032632051014625980398008504877531889701377610743971945871765958381545172956453685224007739377751532486254160000206497314502167160702293627312127765438688868780696929150929696365351638976201866728422554787432511209455172531183996717206435542453079103426183588714229098370902160062906381331257840590825256456557792463074656573694289896497530270658110692652022157220584726216031540941515175968847462927887738695175492623182459552885416835662348282908038779650709308156926106174100491593936475691787202500475753471218621136786531216338760741147311597853752841174610885083459599958171079143643745626347476953452922993217403965780643449505178603828202349886721888561452964260739905174064275660000898148823829377597841852423079041473996863478027633824194292184464961203577977617802413162426920836210873891015612926867945627425534430704825806094198231753249634104745275584699069334102437538695448494837140065954023350596485107279664251995224084114174861989173401212178404610323272914662366428695638580778410716580880089857302378136939109981131043708763484189694243293552016413631257536227602700663140276524155531299712480176875784395119477560558159157808219533893438448813431116558835961416395962732713769119895581127523896601297743325918061572218040050961484085221122783351892905512173403879596300432276869178293368565613767346785782266017668346592686605041794022916484388935358865185462916967056490351816902638054128135548931715408991116457538489594457167924751576188691477001659455502679357388965895891526387803168307690401688794812668617750071399626002816282047811121775689883459851737297566929989787273393814609481212811442814676742800490264417678450307741688373135051252293798164227062666438770512270362553902516786006459135376907631158610385985869006374450087017659169815973844891965144424978242502939496164266238873610813621573312669047238840998102621415260939227836325040906812411199958407400068197479320784517701526117327393146094337257832569696537656894973536317969494987605848295741637343404097359731791761797787951406126518186479118178651864010892111294166700319045704952067712590783448502475545960069319275732080747323048865905456911468303930776968261565276674702602931464330288717686226762365740855808338684268699984575386353523671308380926396845015449778758397031653392316550298131073975763900095206320836583108327162568976858835616564461730755048392246533779073899410242213529767850833537775804431471802462524331651662154096045631599670212495561349666259534181962032275180817920724463329936751938401527370099451329660700575195396624771722582427855946358421105420012566962901818003458855215802127513618902572221117104169471797972413498474802138128342819722109611923797846204079129811242825877471455744314764800775024025843711117047209046311872419690671522216801507352451736372953068931780150836778982412739458090607353109433820832757566402587238635402753673082538611358323606498810261494550358372458437442167792103158852679891632230396540251297493285875456452553731456095102837874618758367093616359044051249999707442717172810902080842089978692708994540369929197597920985055458400385695464353585645387519980547997953464844122477913382452187962071096147047480478348121593988335410210600481912325050118051423205526984706990114827077260754947787222196485146612586568714963817879673804571096513483284181473093973847841718605382925005017757003832927072912246245466158630746747041103569386475025460095895073557747629686411976613643754272532583798752468425691191196786455931122222368970429410271494806844322170229510922557726112166387654123687296952965032299126488568112488195180716129585048022182293007127880117435646935729646815830638068952017067399430377821274132458607747878034537161296809066800479076244963521347947741305691247027716192750781586776743803623344720276300532871379185388527408633719454924101410216884956090094117921307104043922179510245612475702521259882804756224037307542022413404906119887665820689764275667282279221022181920762676222844948313011465965431459542395166408664037131558927196579404092936190955084048001253209282187069794723692788813933820019426623710403639658208915133219031426121734428633298681925892216772529214261322343262983722480015932932721549251312533135142970629424946033803619760469300514060180493196962488173690209285934216948992474209628641131295260706935008262308470467310801408807096484031353797849962421119633630428042650077029425116009183454031279425901718196255795194123987789528992547410861563853269028228962251300313507689276979706716629934079663077269204360178563709195269731881186632744084290812754702512529377553161496580620741176793973161520762047346887612494350253394166857847877834531920154028605109224800058999442524227754141697740337998880086437409310962142191746890952936506264181175760056760305478957009514003963438578954784440941092284924017753926216920865291609292478033732020514756674195284725150814345301837582046368378748490310773966114581907386631860891812854536835614081439257939486828297635724089112358218423951019392674443663148933461220357191671844979619089296068494620106402268986447096725994833626468850433222288589882147850559878909150254901387854219603868052031306752036593534574169771764322920586077489706316186086787021506590446475618198476845133382448060369536143938041509396812693262938400729380586084662954972112142332061447060347207547409579711394788245214831730163231306893746838195692338802975919296529239852855867500166103992548544963078559975912124641905727761506668895422740141053670452157507726841496971579432884486876128963419007649165477757839272761568913115722162822522052428711102436838544414528587463079023150723783388592826723547877897373675021820864183862252565386877628023599984706680186385930803235899339453655838408461118188051786104477695649564086468035440669222871360794406862947704679736684125639552352626185536686937978074727925681655940923710276020265314722322539463495220742395164607691518884057210587300571672630819922824588914932609463358073023691487144096216001035180179359274833354698285631298334270216399535168067814550000254988293771447975209238015271657813794148592905101703572752574475825713298229844136815633879286635505006070371321298214215400956611717808880368539316725745801821433671841312129966028036400464248512395677164291000255711798963402468149457820896098219742529643208855115484573061749014904934906890874359080710413320539510846068785703566561525297395835081118051740612090568182709346872645262041179736427404922330878816853343277736151036723830321333208095018549729815173140882638678788703010145715477375548877283411056384396600872496523157720789355335294573141276544715654694800683198858009555962932997520067301574609523820492389314233482759629155883464287101155285828257094715817160092182507056378944662978673969513546538925247960998306740965042817344714483803391966628991366674310909774369316405865690839377395070862138733222218029756721694575765606909205623000846314901098002317075827259688428028984803178631808934057745696703885907130762984882293371234920963774434490079690209662988186666240398239732824193546348863667166393569887041349420692464995075870129208888115368267302152569295920754672835272485448327644346746182866766362978869778407230789551679393229758506555775446820712697932185811404342051770117678549882262732548454115179967217081170704787428382754402883377550985485938730443271198992677429938145038971843464352755550915890266624028213001861784247497751323532863237048257388809960488525947722022265653408462629854010437362218640168805681350325608872080711295491724630419517822320447132350803174286615822802227171097004672971864328172053144274669230449518315991694851745750165557197157549256572553265863085436775475545248648105007901605407787370130453878610095663720921600561219215340390522092089841358609308164802086918426398026580185470235458927086148470535304512902604348558397574616351873891765597237320596431111534859904923582443143535740713727358479374090794834519078493356160065100653007006770350368885408435422075919276730021273201857689923129383564093942377767571142609936845867800686066498542442492521797000783332262611971325362987428181471603328709390869054346431553092587492386089127334298787552146022643235962582636792356457499830892106614168519664434510684869376357220086110093673538704860269328157035895603817536451444786984298182093850679187582056257049322209777475979773889922453894725578591425762968425594941604236914127117221218606545296702952326714144173957355806661913960281797187280946570596336201388630065441646531434046157625042236741015460748987217629776401107893747859883188331152700437552969229760276656621923395685812290092159574304615715099929356054475482316923005017428544030470313705458928324295285861088711082250019445544955741663996984877437324915006998344945557089734094106515166238772509097081950694025064016567129397330160027885629853201090411619430485001429535639138894760150525842185769284322633631862736734890071748437152319780702829211092932694649448099631508175773742611709821456011214366488697260508529726197316357714640990331300734995192260202905087170247065638699852321602259689169218216179204090398840196773485775856657908819549886891409051443776210168900827623747391258633798605261572895096150187088017562712458642090855803687183064418598195508327082613896349656329580164888932181697124111476418305271704392503967536620181806077990916007796792900622480134700472277444819583831074699053711753571323340847043909279894135695639941224898032965863879167646935895222097227219696877743388681089491254317357217891230004676375879484182436699910281906126360967189797406589446807964965407834852281836150977971958442291612311157319560873676143035044796865555187825251905215363018355629180233761991722752302517098851698125254050354928969811314868252462653641633015188736171266207553671400619010863144719114141122977941971475750459114286502762301237163264751921627546085211246929757844541384836708205429316116990030511136955115372009476076148487430952703729173221545800486067449222335900614990273214609452227508087365914819944865320709823538629046371026495040280282658573102852092812232983639721303118346217936919802066417436610054263721184249032641398405444230272544290522350415788139853168137451493603804348400112857627460019751503174845599131608187494672113901662406786536199290269959630335787095237497682726708552479352943381963303937871939148619205573001127623960103666463529192134945293466795547720323326740721912466618432838903126109158884345477210806632806198729466982907331617883463728765657319628405179420989948500363869011798450044582316760328325348031448330136523644931495661216009163159879234315608759278172433928538138255962604199436878138619131448225081854586359236511425152942234440519394959495678219943543549668875174663925594175272582543908809765117979146299763384225381026747295651076845162127591797611734951418159913912976542714187289140272602939360572140615391164894049040060441991261685343637447810315688298797773232627823843907195259213441242340028063540707804983312646913418620616010216004137046802028996881868222238014793356146978046964372156103238466529020321830615350421547297149443553846186243346911800900649442300494584403903522577148158087829502149057781790769133307089139532201416096126047793311507792693491291820226112344171203241171734073639452741065341244025210548531284136437009479740688612770043658438475671490993389187326502747531885604297208130000151532319218454175477780224853113044295230172549965839996165882939282693576720083738515572686922665229510755517944896787850675117418783677166903612870802862828298311713468428482261914205239293115832065836274093927280961082313565578869421650794715203362253530843084828943407450272787780927344237692434851785919183555768733613869489773173517474476550395870964158421010577543282772546045210907860826624663204967322022286207450667848950022998338419334823105996220964939263525706122033157441714495288613287838074348557672695209248733455922279881994256748451274237268582333743919152643112951062985333417653442078074407732634651179554642495770415877514763929155728726570854455852362909662378336536223471451707249581673037677854500951397592298486551125894573628425063392652443006878150527366240954764179562024050392254645406360680752242697625713453319198707084181588945363492955129144449942238005793547812159704112855087446379935716439709128448152915461997057573749938733741259952761072112332196728410080958212795466246453366599811216542690210322726841413423989486109645158671196009050950006107895466483459186451783283743729588351071002559351279670597344968117010985423233533128678013827333753440856819305212508237876050729331160699286051124715440934436116588959130183764033992218289471175812832430407194543663194703086921232009508296214541889944657349539894792194137384894525660357017228535603220927201367601688117741114825428716188841007094794257291074354790317076864143291851263663870045029177631835096121938474375369114419979676271549750681242093901107262140749102997529994955146883808085188455722838402730195760620054170456402381026391164171474177835020938360620302619060170027055231998889890611890802432642232974319125492107387147338511190136920996925455209038265422304387470836812937423802494926001033798887195707091581543676457459140038781599525047373787310096485070180972156334605912884265925299665250266050262218566395922269580855955955149416547586026889983027900143718863165788721310507536820993410377555013060467977458296894983201339658398100815701590449448276980217591380611339551642933812459862863061069892455944684849165549911306846643855486021774197311979753081887799509703886338825379146082827554397076142677478825246836448943980288911465981414348194624189368490601021025344314681935094756365691952240265070769482653672094081876328297216745032104445680141510817775529293902378663280447753959256010133241003133229297211826613214757111886183781543880473207561840379772836735481737341246850855223406843029454381711435881045036736622653587520144875308742657963499640952839451328762335926306587084188315706857656942119034108775636429308416547117731665214957673108888566359099505719705229303588667576951819641105311682247938722894667135435375303242135677727735758091947947107003231947433929068212541131451135167280384240116469175315395648400516275658895580888141665355810979922471385219426656958048476902850570427639354971101441851382314197469659028777168152374918489815160956639579103424437870222099738306288678198707378570779826015085847536602517501463098492798993080544085331591463103054251099980619021220023143453899843340741625240443898773748373849180288389316750776786329499824421409000674473657286193827800698260762561432400516076418172456074114612665433010087882170439075072766665724787564025698255357406912132650376057570361882968439597131168013728136981966625557561039014565920056762740241780059855678342398664484809870854026190303207620887110166519155952980930415437426826264936895708536494350753105466006813139143624771278293722828478740037312167028773869038759438490865793504933509963797285886425995529472975869553113363537267163375460361472216999550431731058914059705951685920204780101413856534412045233938144612015179732950264978112682452391556043042294219200938371538044958611836407871779773442922445793346941552195790813757534450197945697303626344903772323720643568473342729063088031646440437846944622631228802825577915912104898872427637682564686712221993217874091033383212199877162011685547945731712355314381199475674975002445576461215879937583088294249673690624854041367727679000108798815872556291047809774548677472774136117693725123555448275391439139157789965507134958486867992898157006755000872013700525771974879878611857047855591506462829224739841919846467083172770670874082903401278866085506668377396047731173882202043047079330558099714363906929468024074149098949084421249035563793670112005805243858144232016045165138479309931877431333723555830655153750537926564127141738672694897143084398415738763914949284838119328078816628968972436774725129354009759542894828800469894355827753334249908804714575603380370535093602825104271438140753604977142198094951698541298589906343933615253653452796852973208445314319979129989430721608381232468014150597455090987244360805976051030700280152736681167433253884687687492898479499863929240082172840811045905345206970656555256618475280325143672532086344063997762503074755745891680845668379082420288665546697325815470407713654625395711336128038435518335927996418022208554229543979412654637695060102130207638998136974854688634551460242499568244565434332917158481601477574397916453287244685611330775733533200607007005686067596024848006279519328193287673302280088508315240627035165898991159078480677583616959968799552968926093821331603039956284748275189431523559666540466411489327117865731701418887063250378924548294157923419029230731472295839319347064720712194459530885892751626069435578188590184772056584830745959331622490261292357105739708847916317250717451951001052777827453332204616469688415476306734314560000773761413358922307695976429042653078331566140731645521409667430606574644718869255566242886281057119691849655346000464687012541002904650444084639248734879922938708637655669874296628445874451166671701412490704081069930451629880967834680597949587908374678335300360651119439747843311991260374765170492952168418656109656569859556672500862913510058871257790306828573781209401501542788397192133760550926198280292413047543981573344634866961347453991700420839429127790829156010087589806087810819828305441117589058633972305146527299192739520265230174096490808772732912525752797096797142372393125740107479902482179306522123997370477494493018422278527064371616767438559851262729123146591119199420577826397480814468903532353924869301364759729341534008558790321156957905854905276147677131218179292176442558179646558738901290063874784272957745257300515848712340827385421195748433896085083446214700801934945703112226719681747623475706595927945659144678395760365354472728935671026585616512652539373173271978431616195907579597560135273335176203165792196000929421154309858005297854592727049848411180548293168333442716507497885128863244266090101225734146317002129538665060713872592233429503715172480811701016472805810087789646199980374008372525473077451124203465747111633341793535484427302480235454865136024127025159487654594352636529748129641994410861880627006600884125240983030388179346939713288112053373008427796201307678081717604455883449841024192825881451722142665651008800617418249767409540635650576018499083858821518374835635119640733261022863938649819563248445041949703576673075177964640965573982460067964741770536699787044571154298354261936274166240933086843022063707318147159692481313318064636243450620281332167121543444909455263887807703316689728824210044598635729527570808229167959728287953928194213164078050564618600518854735605939368138115674286215060490627534275886061562181534219407154750002583204668388021513261738760802660736370916912592783356347918971571509706440665616527910970398542355501855760998138093569286136842837138641656747923354694208773207115796039406598824166490523238939334213184082060822079730353343920572884239312926457290383903851678932349057619671010268285805939351003383879425897860225830588360655990011538813993787971801495521056710569224396905679435281725552533684816309136575310904221796125511629373456748395569285823482542149000581864184157492588641390949484017196353174034841898850684675754038639946360621160541987621990753891210364476906695944060830443399427772706062396823433749228725232182862429689929740437856103299791423772143016511133061878636804194058322593166515577593128672105382715889777617761661145867225433717982627512001596486048561502701319701834449009281670236722827580972084074372370045563816485029990486421117460696157596133576551129510803426262609550712204262213976695320408051275860871340735739561794460587836003848442915400948716015573566544426649155611153512083429700299636651707480147784598680926150885312251139230042384679587267766577549719553842944051405088079078135326898927153945177443364261512224797352558601868675970221278944329323978202646145673374630576461614162213784287341397671983144702255849602107593510711554332371140667108961940581215358930776615155010248538287347596972061763876794986078848087459418355302666017444239466476713651004522442114398732825851121220066761255904867681707195281369012758445392204993360789849851167356860621736024770638134069424308219115995955423538799518858298069364179462272897846058295854902297521817016960927016612340816523064966916620326888191970963661323614780193696440682315438419528315473050791291255930314023563677437405807278603318603785564309299939762082578849303297590738581302622177460877958511497339706517399299859790116607215802662105342842895439678120490310379073060609414001442473124695589107149109118813804508517173742853204839769627638144218849447705894069689457565376402899887880110424771677642322675097639258753801016824970152685238770396309371095468671661091306488859203164856469810065504420739493623609281422552642826372297373491532062031451451336036192659820609770458860670315956969151354532945915065801130194915475390668642204588895475533745363207570500739345265047742025069258117750477751426076783059845529011241114687311107004245994065607445267166240733197006241407714254177052809054589064802343562371963591596261971435916316946082997643976091179878908764865623810422697994333642742256703636701619276387952345584806181998718755216886944024586992036875957378762944819642521957454776410977057120447839264933178452390491088858437313553623376828424877074695786195183532035565443504740955237667778275304374722140040601487817479587552993722750727725347765582224191777370002950984269408949372342208426825068317844021306075780038942210464043651430731423886374164933086716204605167160453008038407553612830597742167002190431539187268134059968779478539134188511628379227626603191278381596337322061574811518024902528893097335258296667573651187959312152062301706786656785795210049134837266475173354334914462317484065539199842435047687334722908960921909693270902223148979346270087785447971949695084084641657344658430573822528183881538805412743844753777762909521550617625256644814924407449875653415794697430357725094666035718174589956871534720746928059951492767670007437730151822555390739101097860793395727612193542271544316755177640764566577284581636360242342961059459697279436620054895557178520196660036097607965834493138561528452609287626577827361348305562397726430311145444574679739960851228120911899823828574664978854299769227882526403062742762071554785237590427880530578888675574928489367656788409547617031616055539792661938591206359115935630627549029543024300909237844077842426236749474912724578649897078282416681726450154109212158046090358864024675343519919224840229291004506252488691129687263604378532754493995540933518957685100342310201530106993219458991741539574972119116947816259430712137322748261368380861463256368269796332038471136983682898643921666168623375134410012102325740396809128040958707297885545084200647669792714023957045142068758355606265803545530233486763583864443251012177493707986825784625662907529193674446773432600111775959884970717637875713966478396631128305979719556958587133904020650733156473606881080060736578133042054514234046449494127000956072283191510277619916786816365855482556154686467743176130573076688617080425149560594789788085421291138225295042925869184820252702685173212161470277692617668053800507909158550346524979031205118949341054272108489602840118160508060998740155301170309315256901246991118498442636962496166318177927875777920325401282764654143611149842821250025510418886333168388589121122774527888804598786033955609843050762345891725440354607956853185470279870272318183904688966744499634508874829997012675551734844692681053111669921609700835024654260464855159171899831942821239561810559964619658796355406253861690374281251587668670035003300799601340645520980835829174988637665847598069026741656030308610390628174672952834701809036225631476737762502057376713833279641172161435348569619931866590125672286815388974352131514323556692447632325837299609448596444273257325807965530218131362609601078892665260952982770291038210540598630069761093544387590744071135887655901032304958507895400818725063670576598182660657064695438064872055615163602024985774812413592366349005598764875234433476005691246344824924779778658395518642038021207708770884409445093598713829833162909151268498292747527803522770997626644449577728991218524764734746612495340362125811602558925110133237728616358939803113276011600365341411046471667041737768616636832932897032477811350286338597941878789395765546547107699180115988127496019498176685975911403388182988408629336583588646366382748048554442862640888646921727943934391679757540341869218206887851878552802077361326258250980826227556293692761585547804941729544679801301579614438613277740788405347513616773476091354848014437915657390510777405367343355349315698945762253376491845228351717209962492168175645931053367366564509911861347887973309711596468072262983478819475180810397255464239554895989041738946107909150471933028661500589959156074210919370702839535545878260725210790665981822523566294086192344867620030001430690864246100807814698975591925979816333806234987800433770269793800047280462881031690463273892058211501600930074053538252185046664151603761538723826118948135107064566919998115374425279635401806985294989346190591216474602088431356328280736737486805995644826188659422737784853132996695457654489834982401353820938266331438393387977247221508335477311053301857484139868232524476706821174281183194100339799498949160243496834926885736089940679467437057209284880944224218253625654494627466892508911941676191643968460285600639199995337740477282517816259396792789029853710804731723842696405551035309023503961565370899748923810074875583005519082220714169104029654581318829298239053347819136249630278983527575732836820361924353611556479743578717788561594615886320275766828669718929784576528118482883148486523433489306950360093368209568973011479680994539123468523225499627162054946262179145994736937939523321553550153946597205066602691298826789895430777597573152044998553959775526993692503402097258720532874084998073346140741268879616884789757457535568580044599966292831903189931174989350199291930345442836128797813207784553926177155349678748662431771119156642751202696536890869242541969483375556685720947496494756359855650590747372234531791984296533380545293589878114997689584920054929500368134032627646647754063185020516607918219081362757842792389224609790342944044687331589172125203966597450904564817308772877022691037743377431553864383643321242675250426315569144381655204509812676303018948790370316962044396576762777513269973355977789798575466324897772183316921710375312545137234295461373874961116877064749238768464969330518601019758608020612221303496409558901781269660052961603845780365147874788816066449759235129867861253753076808746011624559458190624237244819468933171621168854596172344609487096127363181754400213477117546004960546688447149713915382465180569556501556985782165569678895121330736883745799182144504466004403579366841276366018226606407518722000126158803464336707212731673043629045449253162991323258293710363764616618108466527770577979480193970697767173211434173778446491524645769193348250871809390284956861611429914757254710587303414281113580785660967384173041467610129541577517599007876834398698118681704692391080533603907317522054744716043346385611510079224545736012906487858943189152548441860036719917163745967940612632336541428010640098761892403232351683393812961623647470341273992572833766983464451082819440027727352232983286730533519016188318118387594112215266240542586093056487137065470596421827103887781089077884660778841384760780272200732329607349347237484732227652653646502692075976805035876773628240298059996514024836625987181329122537750887577144606272594208057456294365359282412375710770165341199452216191336916339012806575418654778815521551616612728496066578386018891406932333587189832841673991962857938736660303485358010092944284655205480141526201389021129514624228595368681036754795063016583431564409041506205803695158216791454254394278665448548002802700400538454761663145360716458696885034733742544027600613818404986988083426488642685727220438857559657613996226273229466394196219713628472001499210382843070488720862606016792149667496779557808729241224291564307711649440801169830036982440241907286443184948858258591868485211866203826305568425726644516424200281566787933818154336766032495392457188859536668057706204558523561969429591434337551692723543323776625773346577673034464575541759158860017250846058393530705301563508922793934860005723245080253998154355668401279586511692705805222770698890461167128313418202868392127808448375767404828156578733210594703788094401125722887125104815236852768407625114522881143088706404830288262464959907419708632218070886599395508472891471855302810773336642177251824852620483990774352821167285815705157365398156559263134908412543605890502870323801505429753109204718670473614180505402100064107742772770635211812415501593921928198836234620329020728715149112507434960113711118060980515576190500237287999823556190639659645080056806782351476214158917129878374333163605079468221129112492174953656831314368520119024735011780526541846844853892691454975224311304124513903193030297162851804897684586133978468351312673507860169999672841913490340983997008244442511450789911161302073121295877986728521948578462302377369914211423488912173033046803038058077982998711727288036139212809269627330585309579848735811171030915582596623191333918597086118466207615425482432941543433825076593940866501092144461944469295673357032560379781479050929776264672738229639937424518535790917956867372376477471819686195148616858983572232947335329711671331804230027796307037057848701048900020875915303979564786980879756515898755399582496497131374469588933389770292109323662676250891912371491199422932407822753802425088423690900233408765030459599784818034045091766601737328125761026843749198570885169948382164682692009283347701637400610180008245649152332924991073235187342512142552197438955866248362611446714331484178772224359085727347812161037946189346381138457433391708628403479144165292766423951010447098467651342022468734505626587772478258248353736778611113366794870502387497189402899853461892289109561377428498691379332604608818663790165949399738873059711678763780223022760779897427395964975942766207486867799250630780304113639937529697711594808092582132666599803627231106576062830199754193599545236499770245400735650397273514846308060795754532802121484672463724775653386301258128344349696640264598149102889572274455367952263370255079034229427565945503210713670509149480917961301595506444847702396815071304691770213123241113730932621188063251417919143818624631306620371713346053782878896424388503017545000881989557121561204975240541350276783889158374095884786753545377126154189653722468409000340806989689368203825945028137648448005373511219114830793181235903035822393305797483084043831830450974570290206529596057194815483773460929123569707237106680979783607804932870676845809363188850922992905048076682760551479371474943409008983450545605937239645820680249473054473715068456382978130867518530561267798525390449014240893150925639699581799754696967329992980974014414437222410987784068987028733876659131828331353843328887392756718612642099821577994821174487447956024035160812303424369988135443548259688339764515098423528169990201851992653572571538284610327221669603512932636621007211495467576000408636388836024236552233739457680490326442541332881376781271266911674096161538822578276611756299815631021934475812866588583340253545889255694728284620686951275052343526014975858120545142620381807787372618511752855687848579947911309962082070119415346019355212508533876354847026017095740282380731889569345304176829382581837391149027901977117661990544422770077198594610363703178427266507990998163923880965204998192765583500014444435632538382065181654440028051930298436475380337458181693913271999913340725747243548293796703625096389044296486600161155213234008008949853299476997005174564212764489777843325452284421133954258189788028757384525273705774175579518179362580895410351508341888885795649711678787145146049703775716222358070761862910704772713094786960142562553655535382253839957096489111920349732858877770805093306036292245481720668168593236834972990979321192944577570189940541801257435090701323095856187398867424691069399208400502428276725673976918731495744800899806578085123179593453036007119529004802492526304199811139326415286952298926939692296130868990460441969460463620387124149214842496989903004805219999801910840498194930398728683682395797697427614376178888715943808191841086495214106507377295593961739304178371966644994922620701945349240611201881814375259513762812313216748466945040679471165274138090475433598870968405108662259528019185991227377153028327732564085606099283818002693384241186815751664634692404920714385810124918926961020907889624175110067005723340970164088716531550005724933667628029208314208448454339045223927067704393874239774069566534885997725967090241319634281531377213255602782146603793392503960505947120218812665400674515378951834514742094924800120995767186453852336741571269051267082170145277325206468314159051516155733771758586075849007762699806693665498565068789265555257911698461532431344266200857606307378570481818015644123776400575717442642314153818824074380463370237895415012938506925481886676521937655226436735844190368368349420188361847238787217157875235010723802618538903277649906104640168758681605878283322505916312771270888810695246585550438408626912863336901971558410589408833674214385015539796081182535241543967055339132006464138861183579622568252385152246531072362575594417533406839095428350300017993395892060949395159477254943509847405976955588885171695146781980672056561371267766078442411396768248023148352104125338009461945533717763287515496264508849864053880328959862750166965612303998753889191292787668900106901468667811576955766291688005866451849856114712657979544169788703354647246931157869756293990074516301323191141466238689860937725653164689649285644114343674143141990678244254298977540592884638864552767377387249583838235908507566729622134453336367853941791075062755438691686035598783634615748633883150291158113739677990192780576981360974302043871365979627868313626554986380448734999656173037626313144621017054324947970066748494819161448574350858219897028129940409709643216968997364270833944378111703530616375170715646451494036827636704899085762638810276112806298046618458482911628929774854983501552040302815168683007869009450101886681876357469931277401184355607841601370507515634192268187611150222245070051523371598491291612174235822139752206719441679813351927625800902034742621618195852028076037572700040447451310885329029723697193289825579881316359143388682386618717593509974360312377808799230988795863119453958910736953109769207028436687882466783546191187667368599101998224357329691871438367282918408093074184956205022629365827034202492772974417141779727835022870534385913441675284529446341515178169058639020295834016835412148199652481437582279612910936825906371508075157664180900163064884061130450388219217546781600345337152863779498916512275962476185060914428604253440056817399990050564964867242081346778686807126270465881125992460444162208090270335411716434246174955316446878650177608702850500159915705751747488568007857019866321471916109827734534380909418263390541338134256934897306549012968708956193632391941194394144022527409060061033512502053851829238384362523799253613075904296964232632413434897028126218900988310585899965470098432568342051357113453459995166737876640123772704232082670784620175986461147764865239849504766448794418334909113594776977843413998079935905207330238237830522151135963828375682566155177900418863351321967094911689622801500908268707357828319849072268006267105760074632834177406731819083151428064930129911649081605410186753125596655789276691949568307269292826506915113995744119491878600830142471072690097342768684094568317708157650643393518589589906340123421883108151269927707281709809437867096766825910964443965885858101491942018001067081782647785640429449351289492293484678227779690472157775182015975123636134923769390643744198094437097891153945420817446701973842169912851887268107694134199007627749265103752742477651270343397078045638196920318083066353275915734545246742567869889397818856717459021614898219600675606100045587118940330150390195223673485313146784647505804286507321745285301694349212039501803481711782981955800496382512233070692720796177636511752936389603298521055137331193661657184570470818688434663645799301139030126684178985911657496162583985974542670577852234789564668486808579746590927941556541525722669675040098626359670313331243275457264939088726685206355278996602044663635986271870553575221221043347219872144225907620364587412094243060748573514717519423534094580164879053974740045565956197019400492235643199332583581813563855721402526370902103918749732252689488648294188007792949905831577649646597451004326905636274420671856738446834045507662245424423095090267288810706836679629926884310040099874277490132460647920216840256533120887344099090066945763764076344273131316580074752784213514599750169759850385925485450726343088656126401944712038747748951001532832115311453484760983392918212110477311303306841048351261003144155521923148262350461039029612316275667145552957106016813079793182975979985129819307216149124877599861982687418306512646928661427803298959069218819431939565816115050881955439774287377171933181889361199066160468598758893916335649259241142310534028342952459864607814307701756368783371157200739816311300569296283816631354905366840162445796060272156577984301316138683385848105814836136938561020967995256572538167326258282351692652331929429480761870213931697871146806533082225718016028845370230033864303464895598020346797950249982069467466272264725241964039174733477395819273546987211678216537450369441435837905792340711187818435633584638600628936304596200619968977805896517359386165655218496692378204347615865327289657243035714022100939773960559052086516903990677368626691588408110150850509522880508046336353304119458869613699778949120875169278617820469522853763154635184031759302760196633548850119275837337225630218979777848350988985399625495403367175595851867411308027450855451039450190293556444660687048065093554849107642153553340779233513043754261748446070625694051360910581389093983667695594782463652618576006197191350726272329340953369090252608794675870915600578327743075231244963566331665930035451904508742051550707461536383105507103782226239127025976742517730757035559317456749722046632467638185653363742297937324643353088897260799141393422238730198637893617929443872301278517853559902666657235321319084487111433524045392991587317031648024068470494565326701483215810274039818813325374424559146678369873525855574496303401670363471183932495764130706448940367519746459557326112704305606104586402412148297963154915273184692323742592730329465275490660004001827019772937728981790161500342731161263771650671399329427602024710670898489570847115396494225899348782387492169377112104084368332792799739934960799492245861533446097714392372962752716124184102164764892808221792468302804866026924185441930080758455201918687169197328227531189468118372682284852696293238508589299116717666601945265709891333381847350294368127952220221232054562142838093505371477934515987415688835521354789839867344096596759920884482932764536560038923191132793850201349219735696902026900867319882527784794533363786469314526559140480282371324670921531279739063952825004590997873238546948595470911324077616817189346082693992435358739589200156406956004730579017900106387567150715795076634433230816935894124451068448248784277650967160387685736583424981875580201365625333376759583012032464542582274633225760397463813988019001131124102100684508315353965236580926794319337251577344951570027269850605194598727399991837686808007173145597900583296356083344855151240012096549266632094596775180922712926840672077269356514036564567715504440639719542609096606262087509771731977573502950432358788554563095309112923067567860547856532326398769055902551534849338269583872462892601669955788870079882764872369945810399403354057947985511603038129804214362252173834095218111119641382254940000191228405691164570879069941007609852719832014212160072450730990266355567855082346634816929832491507302965737260468819068809407073468769700984429817555671887489042805540749300287336971831961658210351431372289158454978161472050063368035994808827394621643946009431740814179240142466545964807155213782299689141145497693997949135895294349436520879413238825819341578717129388610916690134495215751745199243592011086857576121117200962532640622851886985826421971232771162276286761973297571895994481332448560060115657871593329187740969246010539786943726207591812428966861119161638310720281703671194029827855288835487812234254105902790953911520351787256599176897091169537528657255212011768361077199701924840102695685428799595845490077120280899291630852532747636595754942171280003079282006797695539879800987374045151811363371648776924677024569096152164193064944902925163698968222829541592182381118776208414508011294020405312301902939868493982199717412055630939574103452393567348636987776061853365996025133904281669089702714032180706693422421962489827179093409989873060570172042610627999196576839945435567140651592930058468111595946401516806601249541432685083395736462401980904441273714928625901070549643344390704551226011498442737081103083391500548366410570416801661618945956693936644915843600750100240686837009140033347708270528071821242433502327004816295335784994821462859350189149067713957888931643202059167507470485367099707741201339138671003426310741757759237935752766590899546208018344777554758502965550336895882147534154590086962046444116288730035841403755079773912424316450123110469195003585211486042890507823690013746516052372680928098780720455326089844903747093878566712028110461933280818003020552599704157798883243246985006809510463957811052079342963810140628326648104758573850126825376195592601982169944952744315263768387769314150739890101536060957208018033611538616006557251287737251082429056435998348088134879844462500945529513786710495757533150652362271135801602205524098893083695891152613767841561555536813389779538640506655593577650062412915877681737010374680376206624632930457432745206474354192138753571819655754804796701325984039977880646612407102443871439241602983932935992867427932538855953557882836289651800784612369813332494804143781203477672122707690010822060862722960689076099916391354307026385150578179192024479327918822432751255474431875488601088886136110861316313933911859643914471879908384649770159417120433763862594205018116265094923033438736091213753733950870351937707770032714804622530914395040721037239178345506001911243306960358112859218964016013225391985046075211564583366363599685482143079050193602641581844768110122614838484686357891807924196323415881322195954116832180746815756539019491768108335737494483474893329932170432381775376022760909852129053428103676648516475772676426335184743810891821763349296396187121490641742578942632874302942565948860502158878047170595684961721877521987573157270653592485190375640956033409908394335576967275836751152953471576168280080128560960467717262475382101167290873574293156357800306308697869056176787762427810614405470061914283820787731953561501536550236093192134885077011299427343098592948661336900227118703813119733280682170587651236258545332051281587394210762216279957593335374138757963485355380365617114576077081917403133803863309467383756338615529321858209883019523847121899583378423277069111439796986953999677949010409347080357515016757947618587817133551496478569564610596812287312945902440633497647783282511531621537000449850623928879514786153683143022480783917740538949116578443542397194836584268515252605211621286255461991681917276727405502447285738159151504422551329620002341992724377244039008476439352178682863518152819261368499312382293593850755432157705007455136522854876034870926222470020086825797195142734223439723597360626173828783230211788360722578772205084067102927806461481713531715826114322218529492941904234810874402176106977694146335887301444214514320151078414162831271085538213227505078593106804023768367203513398751643783056827015758911651932786740568595599692849358140173544674519094717839414494016954207856324716030206744344747011812168642088975148030218026858425917180407241990744558666253684373762176572177763284533846027535355231441726216398705325796673204723200210428265382137857628348694122644699133595257448378380946503057436234116227336687333965383836375528555246501472193335333548026699262407814623414024269000663267066616862789607082264164022195135841354233829974465223060520625364146403807027036602497679859205390021812182211241032550350187907908082809933270681059739431758348316536405399826263918046202237070402206101304100227640265571485977225658411443474424130534788550187366225364067490471080933248236305081903274916044410200041242064344843698214497178236652401968470884211016163992432527683669063894101881611973594852559521004718603918974746213077227050300588383194820993353290262777706805047053117193765887930894009062603014826848543425613826882819905266316148626848530529013499205994089360071444625385204987085123891418532140258775789744519700709548879568790375646181602710275199504641632783201833918475868636330615644348959768753373781672883444289068351091763579489105755171433708238710601194094505077220987287581514225874766466728848865557380012258387613707105263013980138750389107661547674507524941785668903604607403217387642992955920683123034595188758709125323831625001595060527424502798695551766861459734564493075997017466215071364776098250818990789271872043151193329242975191627097725574025281021772261346000627103789440089099975237420736242645263220385335454230439106610309185917515008666051162749232231428063653122019728863180028886265655314311673035015081704311629355311447526901842805276456612410864090132766938187947737467692629396306335229168159699662678484468400105573320328697226357480122059528492271479729586714784229401576256069482809447631207669237553275397634313869130947373400636067217238692573653289414767586728742424983590620174179105450374925444455743729127931508666803262922384266710459695975262571665326343930922597513554516186664282437892537028917497283074385534421320069140314643956151127823512643026011540959987363164838004862215736702261060545670149889578503603057497142582089407604421630279361881216910754667021173879064789718155804247792327251748890831507386356155386964481900955986158196526515601189394085771282850283956254837484168685974782701090611785541564457030272923942380673339192864117388011022197698462635078378388107574983387832056634053949302452152820928597747568990350481766998236453212685920461624916802399724072633760286783078367243511812919119975533502737395021157598095922453624585445592139062030042540916123515968998083943476129115614638368395425833181146199853397793357240324245281036271026743616808941310943876194634048853067624639148385718142311800820725758098723689597483860929822851321933508166154984959351921816364554788729063164661907504148952738868690472183569771554529070677648499631767403605598897959507169651826481952902416401105476040233258460950406754679847667201927943171415344175406687709772756917741552077169117116057481304174780611766837767683119921644170178672266935778449324897212267068868802480547935183183083395216006288418142271884664495435340023481457590978949737152698751189016887936234444984045049089241424211683175500610596433451127059841812502484829269835105199831442106515731472451811303462032398892885312350830559747646326762713387925794379009758340076169595958592213132905237020097483953949524086638214417708572275594158303810775523701428618191292916972058373340395940567424486549925927767895339807233548285260877577497558028845378263557574606669304137380043012678076776703045946742158508588544197871083007967764269781886622886383962864424369329530028784292393662379236246602238214969417910702120794822039280639412086319215450484036929463014337671486895227418848763431464463976094357337458925545462923016292614544240006967716499353620597352183185988246515862842469717468496270245469528585427159124829322419705996712876669151068765185820950036412025264471269242529931780615664142977490186235845593545126242634803394436448367875257691980024009199312452895052172291876731682341376274821519322057937266906055080652012999372577058384600167920664837232194978074151653311586777707117064566663804697159360663618869622398280224249914438391609662902099230232941713086804630018538089935897859897543964977039300899592322335298549266281584909112877924355579256472068105277139407989762030502864763743242427274640182304754069740277597047854167454372261138436893899866153338343579653119122479596490454178091617179542791004128852318315528026503281332521428531007474085193591093423549654493477988940817728930923899818090107428846324897414799168030491841120739811080844644415112400823559853229743243136233795269790595563792227938071285578508706948182847363434370830692768212335297767281963195391382950415244236910340542558004801526175416376826256871993462844703203133099261584501939128628122157664398614108369613324932889675360326305774220459737867839250687054390346365538887627682708286731961116370052386224956770797629948213023199518605102729369602407612512384959690599845597402672744345131063469577857313499416168017039361408091835159316557832678106309849951890961629920521218705844203509857158170637125619430074165011188746439628668394348818828430909615258299300001238806316684018444799176388534649557889596820996146748786837056125712731385000712297793209831944799642876261741501158692990365227577048516703819397380910104782046028036444583043691930722749266281908514944197869092304949724387331516443022745203640289736752726533460425067347888772746319415178844858872693819367151427696013309860393300727676689432723096358512594062310638574334122144886851893951107940081487640827354787332329611569658408607844547294076739174999268958213433861811744392910688667269617616165193763815823754579843993715528193698891439321153379528573360653358597994015674337296443144583174175764674869550877820415570798027067622209018357986337108423911409216201870722940346514180797127650960738763423830434090268311164345268921149760033401361984232905856802710643360587197685631452029214847080970772705506525306628885567641943281692589230335338668342168247578004565203565034405156137498539489676553269582436262528249221819460998831517148696915754903834681376313679069268846662993737373899611360452871472856338646329442710645219171140210220590972143279046084071881989223611722453793033905466730379633206041316910486588940026080285783546428840771334864572069835035886005921178680179456916207579247603824729720516301528455574425371788020562103546844906564714261441173707832499878719632122455417322314628552186242203457501216536956565960740118993227558603083937551132991141292970691186876296036114889461085722231650807911114375296626159638793547982612663786659139159941132302795792778912194926378626440454237197406680368018903171715424636717382925197656220322118357530317956351527905932114629096982292843243174024956042405559550193787539560941916925116905278789458311275589528263547071497086487130164150830517635532544623119994658466465923289290094686137669174189264144802084016654224581502994400400650767252088738299752277206457025650552990915344728059684148150745018354549491418082311508171395678490333536512781290988239403358113245648907193440683898929846012942948140730036739647693859225399254308130987269837431001079746765577486850227674344004350606471851905624852593544316812641916010386900419402501138907531838177713080704107274920773218169374035396591408580070825447825522315035208947605408894187109420088941445913110970586887578779678568116073486522437960443098042158342819769093656910647136361782939575871962515236772462085720874735802872118127106375259228864374095443240037056916054709344091624012895457869169313345930313838545774570767260152364927410856053241661583859660088787197566179845055469085024245758726434213544967477883211720979765850865540969624811362109580693284843490191215145076852262886166299269617557492986783870515335465272218407663808758061905447013744745012691640904505824621803868886309870227418867850645578175467676944249657555587515986794013755520686779479021245170159280887788061274870950910615860659294611295338572147898631470218883895820610166514739602819418829077557811287640282190487291708453023774261699559293120062968463997209668016675477964699610675114816012498884521331660317173266298614425572064517264506719064785563168169226487473332377067593398498597715310504278231029292491956217981483392521158217769308225457319796562029425410773772025764351820410605105062957714539584188567047832290666808338479314290486963575848494167553673840654566020396929450663188566655152628054973192723717537759288831830835924692309701150819298887120900555376774277845918369462094464873671340037313678897138714656840378285095045207425439812372529670542345332763267684808411196552613802261407879841777449460080756263637634952608921682001223282875772894566925909230666405211169209647502446369403056694555176269409538816318145684047230871835147238581798466658531885063997233782167198305836920731860204454795206100780338347251312891254980452378640537364468759534272216729768233980511993420782081574872711931635333116118110137827844555574921908141184859662099142809228248145359719018197929679542130741488737478448373647596253626521286481650046373132363584558675136117277500264031751226275716956822740519013245290286391160873909866888409179992243235763979524724740985424877198681092150642239513193458786509099346557640931202481239424233139768925576837046082859937466128544614928001933778087266951542522265079865094131189959009811940837869896966507466371410796765700891203354235463165654457252229086520299417675448271901168402969165237306109322287274264378892977455728288285346584661364666562762273687112886542049106324183440452119221450624518780111515466317194522053889905380812819368284283414991595040358458715147742508341248452962299756774022044272326129835281846354789711084373439745230377144326771020651267896509484626772937262856027474537327446003431386645305750536069506188429326819231308651758486637606138920256900102367811015915171547155949665104127861215337843829193767936649051282201562595524316604482099031844597949898802406366427649705392396123199458522123144470080201540531993484538606424774146751017391240476938630745170337049442830782188614847801514104272256199876114493230998853695084134243816936482353849651892339798574857393089066165789332969668882870653097312929781378066347163063778341048942829381317320660124220542425235260625859723765177771790534546734680676841642162396678542616891918353786523418718844215024102479498643935361306214429662398129086169765295277900877000353756231631618626480973325197128559701276592475338378845292457372858946787123848459711579224874581225351637807136901505444836708901334040808729429038405985302831748571390783441033444739439092149925269566515575151569287373045102215608731225495922958957483438741986036911124525333661842041683052949116851883998268799764438529578878544440189963428947613506790584913935474219938114127312722606875897400991822918742790433922351821698457023077731421545867519213345502359236414323473106634475065459734985329674292713715774770735668292233502438531454109931821824015434677802572834589855036974040817631976514660223904916717582911690115215428226077779089700406172355212886806071634956481567718251365082080954916332136484405908466940303292300675851821741793631824647129002808014533535751987319765252180673104849254483346668500567498388372430294364947812064205846723348840377850898351571807466916714306594495180102992786480650034421387682390863534636811684405432433654690086109990019270242406000262427689689746886915572163589562954191947762814123326568648274863331090359833217500945009733650607779135003533290781736376377746713655846543131211698039104608277774436992915906315581587914622120687401399055094480092445288434147256746069142649745799351500904642470110866449070453666485659417838832975616784740355705944370663739373551508202980776638798927134004096512652138140144826264080781820007966738207789781131370748633162034401532343627450315017373085394049774166832503136700089721222288712582294225596531138863902189428431668477491434882818910136499672305222331324281668907949932855831070288175139379425553656833925693472913436673774393869169723675806368948226172556902194248709115654770960034200998699921646856591114025382835885371468991308710361020932197692175435349737076568141428205823508372992083872567809297202469118971146300672258808574148272182677141907835891736157304723264527537811942540992942223879427702715014033460160958182027611013864824361921201430280332629157059502114574064577207346523001429873687541484456986095554269700081009064550604614090596609994348777094825385020950157261863290994619182934599132177056917274673882923102663178262960494333372639564741474196929654853437695087826606216932767888720464671586449953369839961020583321085178191939956613966540764281542947034103574234511651372691605439164541706088550513724941056335378014502757217307967202938458921435207530431967982964645260608596680451580535049725797379147792465899212354317714695338478717307785321642140759222548341366849892997429222376575715838611487839879285865003546741424687505167728703394655670190651270469544348249849895885148705070476514139037485214078122513858961659839417497151246748922613383586776982890971061644416720656134322585178811961104092101910895542285706054183766872301480349909416513277174301723817999143637885755391584526666871446321207490774377476824058550549319333566752638883753512211197558018718075767994066638864029489624244720250056584090650106719103305187934141212668283912120351303064336385173470879358118544616054644086429918233841827342983817766231590747881800107658681940988848778652693984850309158932002332050052757502965342713969527684673538088648341328471100930896936259881589720632353535947746766282704626778291994698491786417732918853080320444381688327459944997592788696944859540705326955669396749471959694007449795506130478493955614997151076076421105187299507408072219088372472512225179592509718918846238349087005236604937552239924809358293892937181022298331804903964058621800787799043334251692202241431683793193418999430906157075999424718252632844263227206229090675670173049651173408484840151292350175759037545991605365185545962938852064236751449598544994550361876186320776508016180112515040285355240864953964905071096439711516434238255073474161760884726671942462093764713107752315248077544368748597923185518644183263772018399202719622796822118307866337771649826359960751982227900410619838112595874894717416648244961942172926574472802098673066494986047261753757552774351773467574946277600741741785655063274947837207045937915344536873431497190235577684433655401173163557171346003876564891670316785547560135370403560328327198694915828835031313797621225954366120104425006131558148285341104703305951330266366150002780611341023625187789825593400183062025653931787843302602754479353677061587718395235711225999059096544350728198071072168640302800587162882169856111506121462460350662161584477582531077509740089682879201317144688925629247155655046087063713028856219312535514636571765384869683823470513842221643843623308947364151002974615278208757568631100842862298191604635867602312699391099257826324890355141416238651052058982877133464010911192489613021643009577166926500651343746962529604212619918067209741667703390508157861636980719692646926761301515337958178455290330485141297400496156163792211218823592757060277078653550453950515361439556861085044850282005849040101174605878311108554853093936561099157224804526435202078293923875237955509430540686572292100639499270198853269365611367012202599998983889928787114237493824098259001989091533566736188247274172383168204727610640154355272170665841747534028405188673453343837998720536322739895106204677110090286582358743794061441817917074863775452650225118319735371252778491461011678697013877243756832217166991906387975343989008920370335789619909889785198664331205083172673653245600606598511576044070715166420430840462433455375519369531519683338497852278273666308637015780564741158572941659906275098873800115591325601608893877453600289722581665621499546010568588659556997438116102182497769810482860375513514650694708278585030781010248678723485446944687860468935361537694410266459255127724434378754360859196335096896382120239558183067838958878667590148301736562866152700040049705812709421305944535627663176184617996715663065252313252585413086382896158836308333208213775956307981695639365778723157904936072382318605371140247728607636232019881259540727125597059708525977520460044775679925740980716378049183505060384949848822060708883058334354136001692502334089311624952573911270144971913329401603688118509315423274222537310012701263108686750039049006062115331102219561127713911291635355328522649971771884971507588071915729419321544645555555128977673019245535355329953527995694671343315574634832863561952851164416299482700893028884731561166519387957382265319179763197429150483924004584764287476608301585782046201902904194669662513488635246511676186844800667623960877276070695434513356533557859567044487626871920683333917459386074050061950284095398333701932093010724663070392899448942929087098630353301430957415920002475141996520292993385075393523369012624751795046318553957900809673895132354026103039148664800992309826695050436539579741406233228647412588641245247629760123033910294505325545293384113039975956883439035745130406992197134050331746872238016047167318401686308347332553153352414316819521024411790598241996946294637830065316733587882582442544277057204203875743379231512542289105677965031487656201625768312566050978381548256669551552537806911088384095761485352200273774480291004460637425810882834115833590771352614937760648367299948602875811112268417880780593411267096001030304982284358463036721009815819735682037290295595107432224305967240013338640117490398111097022686281352929118315270828787455014101890895819293700046771274366622728582441293881548886857217168298157811058757767493548610305109024415300668765848795411988549145069528258882874173237742256228288431795595549342760411245697003315231332772857170494974032976942628517908890799094787610939644778241773410251660862102137645608984566419039272247721594692408083963625005855421471563146176875584339110252468246843241031076765974499196256917061401181600806375822070330819487196886428199340552316137847123132104272431250007751687904451238815391509016089025486598391100861965538361597473912519675259729374967085697618952404903323333717735851467615155123090673594398269454987725113860151938043948692168930242728959133707512586232735979319015363748818409037867450676713025171444509714696448382225707594906587142295693685685534707576031252551224005521919266389078615652164257407797371707614962687783499851329845714554846079523152926665778724651551833896751117388816240696402275166836973762461113214375027303793543116918749159967995527690703257671254108529252364831123465636107147356412015384128382491431701578709270990646386714328095593828402939390903897638925257008703580860274987809105293778334613578065372317179068021933580934781182677403084970088245376208646137055098076067910052715917334497916717260008620133200279710524242198179591457585323981112180986271946048102600086981143687120061254677037879028605160623899039919620024889532211347167369012673365504872516914396894915380661020749183867771782255782005713154681858388297003951414969623198666418111073124451003077053265319717782719993943434761641235142486357735214444486977229393331236683954865967173651482305844255805392077587906780466102136636564913902418334843571594862886909758504436715465784548143170678241362242304840425369211980056239622335901030262217675370882073551065635060006118774749630452193585103627462544471564447251379001947710807971962393900971459069843813966601116290883490841920569146709514558432873343109721943385062267569203521726506693077972100152408758081813395167110430978141297688217044145736326128917629270842720907863169872233299571071056275138575990827914810631590157333330857140219984771216720473730334925146611063768442167302365449785367297491752595664683314744500855176097575282784988448834831300230928567926991610052856585425287310632673014788233394700636651452315253708916588817348299343629987801772458796793918725026620635053396267654924765539224399372621671189935886760584251371453468071904382286433405867536711355215945650736836043954541926799163287703319466506690450261664564574116103012109513165815746238299469468449727205438818923341891615814185685899237132895850224735995764909819877792068665039800563982399173317140579697165831114304293068258992834006545563354871993964445034797268634266062960314764462347838786183247302380257000280409966299902777516936151240318073742952345769264590583228343871473352135706939088686045991544850547925006929341872820493762517493926483351188740640392597140899904138326905603870696849636403260696669702113077754588678573901757528727650463671300955658360080896252050428549009006101921702199021127019166835945233175446141843888651369908436456998065115476333430358557302756498912429416237688258296318013226315926643522216022215495685889611530275313687034634848749108619348831032280340783938165818239692342148562014655613720391255906554790582352122785200669557469731725380445223157308270319307234100102857344032620182449105842738894373848418397511720595736211419841835505963694977671604519889857440261189968198888958987759949258013103369198107839989998647613151882213280313415699909344176897721084851833176796281497684130012333526566710397833324206600576290255854396223214473109205507883335829982630194424909753764271559547776956690686235200525899921133881735952393393462353911298512380133667731397727284925853925947655454201350403827188335914474031312956286337041810635249296963011140894189997408253933444495935575558767726201153507215234048036449276471473839991579987939684034466457083644527215300459709510203728740393864923434757760810719487909013111241558064482376329586150105400587855696651996718480620537690573825971963713011825117372879814106188482106453313328067830782435652871931744467139895697759758386791015096221343981657152515029501302152487348673166281021019209167574989915443224205279287839438389524803861523647998318654398611492963685216643433640845210604264974132776218272668050049622527102182122949121584637539810320605305138213497501786659993335646735688068702027758108338009080067252620105931419605298971368276734717435497535673773952060741170965484729889940297619036149990838171996189045451436029793111327539275127944164930616900292495909063726183310979610029318591666689396980734395809962932253612516122850653091892094037232661065654103323398357612141203448762612159777666170200270979320327184341508718001570140947332327012313373315827021370946718297040476765477810339194723710383281481301915237665167966586665780483905543218058474294565753840511000062825548516098332532536865901570694465830036922638429723057155044512618440618059989139741290117506621325847784114660345334415734234119306544307072201019788001804897125958588996029391931518309473393417399444984929609431838106424088963151818498348005471456432639247118002295264500100076585408439059164496598705336836084716932514283602595234271214681728644600546363069623414801945391806089449305703761706116277423454330008595268334964326149523655242220685708617636190403297056729563146384288797383709344532286101688169864136932318864047332162298137746333698496416432784893827211734203205493941809428899202907883289473179953632288039639805904663712133433296899858848318324843293110211391834816813987938052863784700484129364385449681808150672596631007972226066568704477719952984998607055024043634839181508029665843613130933032217572125342820555574775989582413845037481208359961968098197886835704322162949642594106185232408073907878871206198523717555009221462244170610554222378106548811243339801254504321012835788189882456155643332521720582571010901923980617086440582427398184059969004184769347652329723696330153211815454844676299768470922442534424185976218824388938240507632017163473341605615755339617749830533415894769519718399027131911143534750070886618650815799230197952574331433940554318006643632520411605370936128985823683687052491125142146578932257921708918154839797000059027311886990497003594956722815734022637968099580203115392284032471617965177926838930610606183099246910609941819999306100631668598281880009099425312122403656493796144349500659832536172532629578157652656075722712377345270814994822535642167322579242578697248212535469022289709261310238601619400807460593557299824567995253241624640172032076233759620050153152139448149703678911454163615219866836939871143449129247716765504465518832304128056790485827517519694093286891610053104395665359731463751234170949884064243761459448434842131460815543358208621673846006127259330506923125312187223390723129617609593026160010003258157812434819521321833003157943173914744060236761559277838775421730909586715774198763302653010026678092409480635724841970319268637065452245269127693974273559551902997363387036403175299994807539440895836109199114942799230062661855174932285496220089273037534187422164047321648790930692685858666609160652351165720035427826271346981637607466069630798613654884226485276797231462081729586555909294092380149753610201253426247818285633051481034578742744099766886635327098725534679574500812787430120772676057345628207468183850206916985157585027987213696649103131690250003811948081467513614162245698831358431464211247259290671622404228911150030020091315263653366723151303939657417291163233146422419742433777299379956302840857665836663950932643601571572393993058963205434970007481070611110617373174735270378858793608649200952944635725945272311439087804271863936747750876876914577120883737016428591604850680129940062498065068622185455088385309239979195664745927276326107596046121379088738592169398376063755430437645900514088082361182750135536814845315370727907566927741947637135299700230018924264651943703209265339959514219654850132778762484502718568729323981710373273779518759127988397168521420400316027232584507643635338843404545584328273052070770119084825254240195182797686557824553745616364202893450676021327099322418204388600541809399550710642324167638165645707536847069694790408876419354504257370461522240978811387938816037282816552963556229965978993920845196699977227977330185338003279359027792435123468900219564269042952722442601858093641949297074887802410134952901701742118982773542899588500765033439281097536099831028356193354337213276607577706624008136631035354323626678528225930206707227751381153017918159325502882228225049468246692305573875699625007352661239712382511658138286648745536250466719589083946972326206472252627943481438589353133141089893826118982729419382851727498268550265425817732838606618992240658713362259945460092990593718979711961161828271837436579111061378792844534533179900707553101004380685133918519694957795686838112470880941413181672613275521800599194193522822857237723474851524266968609990794920964343534383535253859819291000832427777635171534779057680480384453401073837698404655938529010153903712629481051792770076920757802775270609802295830416934756100702695646968262653550075518359210830138051885919115960173951100041505424924164316279980930278864020179961490418459193879683080733531969494559528320090077191283083788155885846609305885990608610842677013015611018820726745700706204873424017254704487779417819391316843981659335671029372596236985568027758921256167860271864662503499731973718695636563758443623856544754923238524521257784800929917323679816062665202436455025004480542714810277107551600577394708671410032838758503929394949161525823137309265734708536003002025244979117232742156731745329642460836058390237462161132735033519662143658489840109388123976292188698796713852651819672281884770415713637639447995046690800134067890613637497950193922443621441696164821931135056504807453849615687483553084728308793987759005195139940982539833628555375024953689761611429804829670421024704802850298176499378507617508721718311954201555541761297461799636819590766722316370628015251383941795299986383003431179984327236525973263936183650610316506592095125298170276395154075432557579291877476210961773579200665286105199885159109630073048036987367432780345186873802312546002380517362906428963793961201271376098833888761046818337462968289374298315129962215498823784875639204913624972611939083935871213177795058909285109888349821017124123642011964981614816875237167916829344333854599686118968700049065766670534879914473739570261378614191861182020910269860780078428692050697706139291919494681444773030775675881458934319754109997165120410339718636606855162883107117056910580272482789953503430559081283205511897998295708706994033087548433196832724653564211259273408881277407467677021210422816077851943273736083309280434701075763723097003360537821970198794043415806700609705274639755030439285817861733262005962201538685060439188971653440745518724163599823595773744358996500779638481764783662015026631291702540486704602526687615152335911260048899598691204456600258881230971170948098777881620567026377021035464404100301669208759668484128502392014850733749427591229784106292718621839277812947019718527956711734191573281351767993924723870001816461390145317293794179184607848896434129067804149484162701626950646656412627680839527371726885459926552968358252036006389127522463619243443185865302374772786025324189835136584719117488616720297903210342599240636290559448601286647612243900469566920775069196656130716127764613284110722438408865972955929784269062615196866091572614566963309471540338681802772535707600535493112991263988375954680426444701003523577828726778410681181885251287002540311612124295877580837490174643520996840102809110941724976370242685622180976719197406238114549487624328133899721839204174609090779017855469169690421248256167307442838998519768761540209396358532966409663906296093665133821677601158324415364124000955606028760166762268776453222202544816560122300465303649406884376856156688123379053276830090027522367157896818880782221821178929657951862231659068435216216139383019505125838262702924269907164949561655153871135017105397843607143836739261262582426038889511089169491036445706425337146291270128229901847289742429333699625724022638642105118478764150351389027401631395035098581992443631830508574608927416111417766766476531109052304353123347888869101428163325324472695477560577207939829861513470256222154735452702897810186236782974658755192824503801905766602574560741625986116403521723975068455431209827107613238420987260455505642319401657062268951714966305799965522718227286781942963745101089732537336827490726920581248058465745559408905943857282183347168915044669731930410073205296580922171107187369123376507200782147167199121867535616606303593805596751972102399158621531574704572539010633486889669603427659712141377778149560973923892802504056889180812197320838333728618308633766059479741920156452985229314988788447965491552047927716306840190112856033281498115430370723517265487920743432123172108673360068552042600054180795598605943952741476486308637350419864524875082108726959500527358612176685171403270145112680159886646891451066204019280432451892741946214311456256106456074490772769794560733924954525543602449054831595689327089060512959516819612258712471321636678438948121136716531902459940755555618497562229262479901595415935894632557677771608099146161773322234913754456214933064222669331530562188243498987716586518661596686029357570422103994091363525014540612070408754198019516340595795610940760696048316810005828012519233891667395434920258988768829278790270077783544273180019489846033278647158011538671813900838048556549870540626495665564721801436986943364957137335138420376252767451035282706561172020859798388980694276270931890838696527171894772540792777432803686270920597637665636595439356244937831334928804922655866420090826214440427905183213774090530098232182980606195295659209606755023013582747964955595353862839610678765505711591306241445818880315886516058566599476162162338335751339219733789364631874220673180004216465672846665219365743627917352886357034747133731902727719084975623827848484786635715982716133304140874809046663275082609048445642039018373682434207394679388437846520630404806095915936527940507998408469169483992782233805099821936591187197647790287688824492935366195590861816269335749946852928308942437915553746768910496525857978171670364187215588710684290714428846645496033282369478656878431999974851078980608026385505501649648213979202815039415069314150077306566049271951649591441168348965730762040270406106022794294593363386947298972940928927672761750588662806455421916777439111355614592196660581882212685279981542040497989730166371473695898351860316972263797838507439548565031073967832912547177975695615450826115769354163627523737055512618968459543730004730785829240708016047959450645648984363079520387972211007763010885251491787408779336361849952534778658699685796991353989372939971756616200903112389764048565121747084025281833708912333468239549943880575122174506271200446894600658417603319305001014509691485532764604333973401539921785469352926972205183732806966681675928639965622458259110929352017412530129888722379771118485603018019647050464646927156522825225586267661856778217798753454383136167323884241716705999427533258080137950745005590301120548738516979382079909205337414782137351749352703925868560808017502455624179635828147738145083535131872032411125028631673825495954232444708670214715013785018962749062717023234792895538933562074075538843138075411061536110545034471651117692694906410854047843601147523881711716224587666642360564031395831454681254908369013018214838390956528675222862521137922834211984508094979357767648363109141499804288344446834241599346749350872593075898546699623364267095504148713460263466617607902857146550609024447500972241276036477915965031042396072183524401257066806469721655430647474948400136635315939684495802326596025467821495094122464985631174444781154856482865050073556322412019190680780193077524900581287176082914370777255497331593401070369396482527270199455094742249231946457635188493961344050509678853428067249174954655661676849969687138580741450270133742380184203667229486773145973021790982287934665295296167228933402185975691759201518872309783019079834785070518407388781056089210657505895475358668354216371155109355215128334210703973486166317477292450787172347358121404314924399871981610836764668646285833482505498482753007450969590779692122021832752579479403386945074532255929502717298241509368630546661099901670082606669748680666996307443492746661028695546911269016248271362294829773540198069915724600683563133473016461071390013317171820563645900684541820864723605066284311613240503546571121159998338660487201335515136988172997592979827736601746091651272433744535273202072702175912258708998517083821090478630840708340699897787891440444717138571799437000469035868359316687327055127744155952797451192131752225062516469336821829567600818956949823741648764938318028319446821057164664052500991449556430205158119091986479906676268897824452286053251695697752687700149394222792092369495119610030534242168740329104627862221870063028668641220341397170798838570125538828525325337954529511594771358495500458125394469253014602612362452159225061381359714835463659143557132033834146346781748008923994860495251582843768657070715537754072348760488454906006269710437649635569588262617576742894640419490394039285621211231850363316124503290121019621606277643628339452281120482426982509629195352333746738712272117526528650098688570373608696818697176519865411141837613198092460633433466574173076539596140111307942020460556329165715698190101533102653212849700376078676687657833358936532903080251265877229400898731945705234344884873771232233706427356178846420606785344683439793370638989144712834941517903724907616827151373296105603732820252876344975540097548067652335253546541039345017539112783322930213395166689638014312636296945059569266537813227710625206057951702695654144047634931679701553599565204256629146688797955243862708563892058852753200155709919514957140561770866604885679694821746938430690728193064452297340938333643832323613785178165137592827940502721163354065708209177032314129043363402691786640916836440855151734023779880810965230499570443902578395294708501529346848655248918877689674350406058198448524232763932775114325002573965012601186113344094327744775763554787925915236346355387337212274790213615318070761050294174858200046183676418383341813696875433843504392354707106489207083386537160464245616100861078101025466429130608147574789895899500842783013372544956618253013198647193832216022884372405732066770569334708054701816647123294114180260804356429792153759590193152166438155476266725001213995689428571051080759480427605019763813222280527989976959968695124673126199449246874804143068604157555005053478689465275743067363576468996814421452590791570200732027312504607765958408231131093025595626102882649394277041229982984431721667836293880680856217762578180150891594046955947260801238063973089386643831604004973428538360715554206208163225512097472166110085951424967691339830646884823534094349493924956131854060411582033310674797404738346541610805747032716641718485623303790485175179850422642767323849891747061046332698955184977050023826203921743068168893336147871009216370753433131669213928294378956813520244754664226544388981792601822588773154930018251272656435567903163026852978966104369651644829185858088074481473899845760912632155611668732214520244671692758022948541038235149594624806995608760620321062069337034786377886480369274218238676296813411781569460068680756202682545122602418279721354302477347074229460504260501543307904967486046562616374299779856303535451371763323728115768928117642288572185545372458453058826104659948230028282122598808623375418703090402443064894538694206818286260624861887465299524213754976546609431045066104149599408892983353510587224716092217184382161880597572889559694664798931478685014617130901621593327962002585437645280255725027641418504763459110348326209540216723162189307296409392925362470197949375608813428821665251852322343177728187785949335901817387567315721144299717555258840875743594053842894994305084340321806162437722139032439490086366345132259953713857887069579859796189517516456128837267025455732696086398479253162803696027402833470508727372374435450497024204760757006266086185903048885395649086668490034688550795219331876147541413448802780049314810928214894166135547338719803804502440481540395766819585168577485963915699594261529292580633324517971281539184888314856845118820760482982460559898091899402658651313450166769135294544414616781927526925516249368818886144632625322378857550971187313223572288076323655409085428873046708302316201473132300139603728001001580567745661389359086544390762826126892599826679221639647070408831906072905798102851449032272904402003431358074565342060914448956306447774453311904487545707121764171583663575556930952949263922147310989835949009365652874375365789821096626633191454474470297422116854811533038039983484620678244413634971719933280584797266284781652154677770674597366469699902149667248100256643216078287916796502693667854098278669548468642074506676943400294097458475629695423641506442452371993530050843174757321136452414673494475896648425501980786096881659551908312583597091133410508442558527876014906061142834933470383561332618409416974356872253286249899050424916760121360684826256530577023749595678805679669539046212872602884778985906775745699314627867895470552296365402432616296478667485175423583834352250948950906731466971981038613856888303596349838262532341315540886231487825874708177013874202448843340752002229011406283425374640081057207816130985724748812471030675274560456028928624853606342306721835605002897841575609740190298837598332240344128802422840169182386897086407823867510504407515610642602342592295147980835799403375044856971608150247630916408741089231519981962329804481533570570093783866564670388344134857441740867489179193659410464916716114420829407233735040210524155144510157775034345360492281511590615761216488596462313128586117189335322023997456647573675834843498403577089104009643174137513063576459662787497283627141801440027078533333041426822340542912812830588198705263385420935727157629998740522586711908467732530411961489854335678760328902185887387835995025259658109406963623121292423741021187609257063277656459979257811540826086337946969903513482890592399457464338516098345684065961770176678094452283560959673430585538888050149065540796871932663352191929928466001050741502368231385281098413417730169554618874650002074058154182390216358860943076684857916770608433650622510911895922767451066190282074033721613672781394498299644709037100305426345170247242562416006903475106634581871959626694603860694822676174925105800952803559312377588050651560414910938749190487120812147212668644529233435844198005438487120658299130012806819244119396079270050023342712991948644233643669718819859921539051573738827115275465000972692350839886617076758907799159865747507268074998505410765865913705759222532983374726227122463518401430721676560162427804510610471925388445432860769477589685784561768286979537588580605486278901167560409428154804856979020847623533171695235613151117023513601773584630682644009587905134358223083241006345125730972105795145398055929963248346762464951380969967121628036328011737108949695410057178473344966492413105482057973051271609107468474628518132182233770018310541960424183141902116283664302933037917942467295402837967908443038775579915283442750982387441691435224171232723902628281876290841057196988589446784935969527027460306566967920394331177678229075675240458363779509090546552754632944384254186769115521693702187935428327488064277812339400498529646581118669979904893286672019180900494999906882441230549075799961463170086353105527184685099600969813579785093762402696725491944518295135889759722678144631660356844558118662710221462703641635215670667145698892855798800429928113074655164559532808700337350238511422794909348347099314499404126688376331037934930764200783309803769387252432156422028064742207286532231791826009568474507121488673151925170880257182454326911454711140300285821971916504996283883100993895935793024288564857619337076051592749111305655228966198793066668478142556760416224965982782562852023039723278155167763906085352427130948690346581743748390266018658618877760405057411563471246602309825502475586861192431653414833660048732238247918848740522312646159148230268393581827902514904216743485472199929609437463132037761017300007869468321437447042921654042782745024457773371516902274868778066552680313115841254159823832747131396709362124496633114495219457083964272595638082499000841270242543420716225888513800449977403565487344953912104891948756233464400083400423607908348165479174182764847181694736991546906001968348791236911836032182158768057338284613528410350336298245236174797407549669757705386776955403151714035275616082720589333944720279376211491474271026581715649526870226231949514706583952929132869238422252473277562141656064871044636436237706089259535675734952885102683716364440814314017182198040209960416907668200829818232592388182712936679668101597996636145136346477040931448777665330370963142302297831596010944700240365902988208330153743293077621673672349701787768527365382694552270252212001208240154461852913490069596145723454606536682193587515357661756962099386701414526041445080116026842717052577998303745376670595654939288685481058411778230846237691472570522011278673949310917664816597824455599565226261298826776772348002638552064635925661129545668137797225333839222432224767142624796936019896154734318395106956822001572153631668380810527205727656738804921548862975797679123113850176034848625075760782650068268724704807631855777121004621969948775664042452286498506017126597459039689959199690064462194264667804314028243224082798701791866439459725980295734941683890432194080780949706147151174519059823139795469839257190993334041254698490040637744019861242616118721131020033402470481228297476906320426928623278239303947421006070678633575656879739751254687569475576822907466063044371731891385629148548870518238685494449819991617470177042331408938785035144408328220915475980698791987362886190164400390983253947701451172101389683083067733969382349916222821397283849032989206687167910600598797559092923137194446949762580222563706557293301942225471997680679868934002255287851919544594536822111781977170216034675738789795011716726338669568669617730718793552589160981107412682696828048185625587528133560550807318603807519947751723814513795906586427719987347202191682488276786745523242523871287388170943548921838901444058336565843529564327424348367936859734986680269650120296527690778594055647503491696089796815618152242604142771787085663523096653757138446491764354005052921607242937808965587593408776012585336519048485374034516603259353476126170651170035061002427245198845142088531338251019002400601286297790068794729434446479821621624590938041986467673929499194692068495828064310266592018520608606698318237132058620243576582066689814455392831639121818047383948449379896115929117362828194711905061711288225042066223924158269076804798192563235983414199291008630604856387270232247138626032504015274350811416475613553884330990148247469057680201470872087956002348319471196875960827598108167339972808850092469051411571364767354817031610169631168121041817562107943153653948120403520728945489702775059844090032611708200287600427958450162928415757772563742643283158999234353204074841543004570705777618064478500689255133100495822414847995768902653061611126802889603834578342658910198663637578863814481639572168030175484489682545648024683674390858209659220522415043750617336038161823770101860038744935417127951888864846874142670099152441410905983558853817202235675159610441148470668408250105338175182445645756377259051957397643600019664058120510186436026969807989317734417161957169623035836607325920661904136277033200442011702616574773439132987266655156577453089526095053112967176395225659828346856158475994964747700250464312319929235972474466431702667988651782383866724335690148402765044297896811675930404178626989688497093658999360863363576928826166533215919430018389411904872433602240565098605430787496668147448260643205520442536859515096605469698653303978941489651339737693209326194928308930095978174115091544376908515791206415448784442116653271838790493376528521271427660181822471150604691415147269101410145392863895457264732248081546514060229889805153336529534785125226678112526665522868814478178048827012463012483267073989456414014721374711476095777620778998798381341735304296489209470892849952715076195878508482397460513196135974687983839679322700020387170023884334004823533876316653088540308670045139934089335731719448932433017462986885953334817589124920380490831289592091317767532178779013643705053841161718475863510113232620179009222761757626690093404489054024011337900313058354028024971113771203782876018099550332977640201628751630595333784577571877000980683502480292929085086504673110138755678294161558322982462699147371069861249039625668436076626951620292557763606573874761477676332872146875094116406252788948208454702508197853418331723797553207541058143911487511405365555886736715532654920591598400860390228216518103962000444696166462463413315909253537289910951391575833506885009721938330012587681029132373229646343290438561719727480058927113649406283610051037332984372645874790586015516221380468344381284226002094923926567989527296351711745155750911806940989092382343391938218330744984557514155280350726152971645426808882069440731729403582894167902953488739295908375057671592576333344799954067871342334524599981749855565632625119907871223659200759280976466696719646627522182202404058738731633296493267963510669933265623980225784694424278048168143359308997502018918639302492805057748162780742422781078767810563416960201451232080853228799647948904093075377674297270277617931835977975692455523017303109968292266683733948938508553751409151072584941945905307749563339319188679095863721436668706821299542641060991440251214005284594630427292271737002746331410799937345565372887433083954512721977103775618033364428587262468256075597349458402072936423298267570831185258525538753108104486809506079329756486846963081276678570923387489491243702076648462317102639762460825977779944807799492794233969103671773991304690665712083451744957735445182993740122731791777504497739575496965294594024652211955297996356748498641689783629901625885678413739936007418475700313037178731522997369711128826276644032512177034845524423051300404837099246602057315657645256045822421009344143264953107126626778567454917777113925367401665940844892360337858542896481392163491435388293466471236223300208188036454185151879606491246350056716636369326681066595565796393310248150162249376825101675185140851553893220112891837859396899527182503443363637496716426124662593066092655502805282818310488815038792224670248100498970740349101897618421299299567326678453375268421900100840785533189322990741013749956149937506792153318573843499792145577749663273463818707448458543534953740606615232918288413064901693057376926048885906825912793161473726203365042640980729775719340156740597806580693855996815569053866116542644841533900522299842997395585049703796850528442115251527243260978601662505859365734779301113875474161989934352965484325193014414617076183867763860895997477537681588371507492922141056396871256430550471676070751422343024871156586097233006729216044437353678386425269573006364085369303914042174611099066023142005795568464266951748871556376284169703852647286493509532111901479786774403139361890322876530394969943198507167864644412868828046780545431726885832924816798888179015510051404900844915554853701390541721744610566492094636803982506577991052261430756709493726166628460672019782264018925584503227242660801327344323869060209751652741908892681144931161805791770839130685555944796954282797428588149862495312963397044719914175911649328402995514642228372166425695158711298604652239549631295388829335150081327703502433527276153868895300299471412303236647619383706474790783337978978644595049086068037180905531747523709089547450672713381037849287703616552955437761294814737741002980102051045010110037951043833881111737663075433117469607520917493055752299955744348311282418266463613903196618970078281884409782871327085688943966641499680319955591873606924737669249597537033607227330612185213362819517127514091516484164299853381383548226959453589529407838311040882869361250135615407102330952965565258380583017089805243041147252883621798931587418248826999936034722003021724976183268783678213564838882765885671643935377184455748989261415145384631175076314399334727619766396674505142566771235944285810937704617813963489766124084576898851526212864106479751531390713449482633681937586836421711124893887093848158626833127329200174217148121293011402592425965044295697476549995956126512058278345294598323899825488531783089877194531895265152632812630450905812079924984346329364295581825853978669481098038268371285479309283593220838165746518725469605324125611672633184372019926356562172998506476772928589903948688880198146051690599171318842730687649241756601307348569767318760728147197590646986992142337964187127056705162599635219746912693104392931862274631128591580235207769114238157011361215747663066192514929855533110647102773301301665716056802335195213978560926243802896031982741770732062021796095990197111031779906967452550105807364527191074926378916022514619231469317044558986511914009403300845978903429545783716697704158378038893930485412984955962422603828267029067905281343624855861422242220510785969341594210297339204028108272773362926663427756509247570790333904668218722842537590510066088925356896601035130475838555723669884586071288784260484600986197939655191981141724773319108780572488911156759834830319316156709209203216757285040330106288427246701257282608551592949688457922946430197743535984085528678204234841032424663913584906197209729414961939864105443703409726606202382664115076270788506597214162979820150407965576327708282454049097334994310776516665705933303883630094225963446504445132964471832279234125953489323301984848475949983846460317599138400130088438429971597923323217928313600212860002743005905795196928557551182683806706758115955421399040075299079542149679752829968077454239190800863312598620544761352662589095351412344648994523855368124887730786350914835523614891306333213245683568171047146301167664415836001148115692118265880795625200397853982819173046469275016027655049877097287957788449667798365831958591218733725933316932162298880858266970331973318390002768708756303910099652985200018258328499839762938746430900242871285488382059263808784977465879457729812067298231671398999376530589306094261129708353939438179933695366393240120833794264774513907100943114285492908025173630197157029382957547126816452875595699678693296766265822574665792773834934543023459800205923226708765748597813384485005795155188570108633533175215022733302909667313053506137908817876243936975971519821973390979365062833467647852306648909826258550241179088755257218591850079119379079703844385646434362821558865857692867224084096064001735082168879289231548687643670298211166741006638625408548613251864291895720613988194005319150958332511720821544499897856230256008202301423244376236315557544776334160501122288306634094264897264517947686877425764673936968101695208357183485062888008153001879292001549048692140391009856948402523352951827553253438656657602081087326516548577001612550114223353572755999792366787991977250724819354367324034151275073811855270254164044074585980206754108447354347036697053158026843166962320963097000902463553050312796162099533016751355255678233479704269736038220368751777383644526410993620948854568215194886377355658146160024590059686766737506308973831537172664594275080465447382667230491985065417204307969052358880257644683717796491305627257689913229614379632229674828150647920733108332696025673947991976897768751570609669734865611859526754638118378898437134803382655729951153488243184421568005143257674898232874018479023631348056571300573296094340283375400143251095244056393641391597733602300143892026331489072991174679728418834116845788824194737893324889519354361546900702732221710779484392697404664006498364121966208627652340272637191478534187022587325520030511885842541713806704705162891328714000046487030073342983014025060023534636759050829022767879583877399216557076018390671530505866096428030217603544952979187596437656777568400980477061810631015347570812411809425934349164902349314162145038094122180262697841579097334699183163674504707238789161901900542577303779226542099332335455518121898862365449451233129574832210678584574652341461555346748812559514825666283695881528076510849491575473196140888938489445869035106147807723114585593953007150701778937771607058025719670174463642220608669904800918478107296215352057020743996532821195186927144454407079250701274156024907890899655848555540542045707098824406573620859066688523150512114774770188975447686432434291534666308735900845060111559896899451426838313569246051557893241773085909368655435132736776496137903150510140879156307070768389302091134382810746858228393968436461658010821346808006780728915608327159210452306608091819191431056383435805861788925665189726433348354336203965190365507063903178336741910758076481892975978170960760557551645463471965107933143195052240942270040498169171954873545425462866034783849696735280776773186910692041119929648164134795217016988254213525219931793631803935000758013416072325656519682958463972159223362892266426982948910700310487893769856219383829058058009217004048709849332760757698237892137215108954741372110538717645167930436252581827167289528150140540369803887585856113663970426680568897549814073708268758046707987569676717985741123076873784067517361423081506508900915914034569574475980745625428914672849558183029413884431111247024845375095712705097788857375235504293014045659571622187403482068451146388557269504838851564027547139968437582373799178491285836033373181391249839218804252250604539564067987955100739338408245976353576616747131760885250650703465809428237033537316950850584242071407492284821624718985886851842453683101405390714269231854446888714445751310964527474843158809070182136877197562908405070474257956866686571214110169400614554006576803686932689012867025218150223108219670813216962589469168415501443551369722942183408307304124511784214388587592077193422968501392783442388582604706423918717198880613092061034094597786176422409266143175819041774339759847944028493640512793305737699029919433437766278471778248382375948148548473811359344912662438008947895817809491403324795031565705502208291529792014362139104060938338532920110157319779313582511076820925983164557145357045476221799555730257822887874261275305686769744322297452136297333429549408051165596023825781932209592859050975430608164932513345886540576856244390986557057120527452170626995718506388460647111717429172872325387600750812748460342275828196554113988044571923691924634112733748108992622715900133882956488651271265788819213359255603893522365070177624794512687117679100256495740046503367019494531757621724279552372329316358096949593543066517438682340626444692813833516239243052606824381637147244356365740799756598061762062622259070379969587573713191002139923216653653209277121628198565757524559980477718343648623773685171186110163893938286383228930778885593069576122346284376184051509555568037409988734015000906866341540180009342148135012361767291123874195245901402251168060979130168927610240664766004700778316627393843408685368875477235366229134171605744106130829714441783992412667998327599954511442563767348989777005679326850414085933713264077985264624558036711536459292511715739997943623178623537991251563691413604462889104706083783293757726299518874908960233920356055884741469946806091155694747004612102593235110655292782447885088249970020696418811436602637868799656171740081891493605625895582381789293777147281496875726162958080407759788667605362672473262838036501439916085785955387164537793863175694579247849442922656357802497875409683204485787791026399596229717389157099119620779599130268942058810181922300381705344447592587074394232396331261235891439699331083452349211437080858532116978918481307220497229787614732187650733751817326989312874614851920669252732004458054894706098135444985552530912870166145055560719966247016232162309602565431625404877690858117606212789601937359266682561339681064420745002772491374436533854095671429083565365716872141122563116881347634201242432419836328640980663767763253504728613942564098804179608108679545033206559329482846173277156105036216533703314356443824199878866423498106963687780884452871077712083317319818725474176073404773664780039960818520832304468533950807298698901039751835242115435223875084814321332818003954789268552546187777104144214439982074084513061859711583516203359747510348138100574105288677869976301832162571707470494850109845954836136118239374344242853246622482153270967499932256711191650115487479691495160591967844182322325005720392695863956294918555912128776548297206203067145441602257439140796999139067987761618058123150732031234460567372544238187926164770645335716952315411657214022289085366586715948057880244657998765000558379269895444008230936547457005470457634593386240323440796072470386182483164671817530059861711159585017473513624184593502105813923270691384593353047844245816452537589576537788160050851423933688188780974723483228372263089046142650329578494977942975251812081244872584278242720583855428906962236153987525317398025741887551675822648775677479770802213791259164860529972256009979824104334536598628749665128867707801743367996007094943674088378785806551847183322448112397038954974484685334523454752894707885248027599201989582737552451371629033077022833794863913660550921765974063628526283585180030147306192579482940587392675131653698323193840773680294266239047955923479523457341632343789132594863994751181633117657121649572812331454387376849233659244122586868208796975868026658499883926509942061339027053012824262664729155184253315013478804831799533345524821912259687354235435275617950950277826201812109279817833862560050868065036078744489665305499725249667659485721467339896551514689705109192917454090865667230749579201768376327981207257405149735298590188175535100604663986798514115124759858531787776170142834603573858344858923937397565293497192517955490910104488104052956726952616942551664520101960291685195960745606245774604490666433796953933187125600773242942059053177322201379067238197996182699007017816665502801836790089627733958525864426506293476311886343457573838653713014058101645630275592847555252023479018207560646063526249329875764646912071448807909567781147133767449776653777140199256608599281464206543249780107848801848797072143719841450039322416246491973027106566869773863895005027609938376062260338273037202611268788936583742548112853628331229189261414498785502186513741633540577387752246154655482890051130598625204109173078997520995441643860536895075436013074364881942092145687682800234172314153164477264920606694295357745276432291593071151124861656378028490143665547049087572179059468321700169149892354897324182659861791418633034971789554318110860076581940233559519612910022011295297368426018321741887200090811276866281956119104668384407322883235442317244466283633681020001101461886008757519774506400439563662483622514785930978803250729837900731189588711648313192455504082454284452209569298314654900778129439875172811277891547889636288261447647309844089227757223658104127022821010727284525179394317845089289081424173442756396860368511647641109040850172497974439561287723093826616090961499068095430687330510451239399219821356621641850589393296305744450962081301805723683952518963118766149286304380991691716347461927656539517635156036231432772083926423206554700241640380974508564525637727354646408962376035231308235427024744113055607127762072289902863396071876927509866578558398191229716108353943099266747985303893624563682621506472040275624309242132868153198945557319911408662615876466201711628604666358765272329975386705587695673180174846878838213392824868781734404879342772345135910488046036631311796169999538305778603745558817371463663186146056976573271949105472738079336536065532006149645423824203688436953739032480334963844369633456660305856562064991754288398903930195711811641952713012971189738476706951400498404595186429352598486474150031909784460561677926368102846783954168347272725625513091232119817305059582031824246874692134632071847621007328500918552524110494776906834137081127876337479490382993347085959805973307050506771455126768155834471191567144373958089628907427428884946936583010161308981487769830855912780240128434555024704806131696553838633321059376276384068599366080820613287709180565503429090461607809980063291218040398612950163681461914845126439687898682480124254004357055668415621053722390672304541798136525588748872789124633601808886049750693337526317108860722198933923791215117354499836243389315427224414555646171822253307992164771366349280677658464030077199504704354590379545694126340178674243705141020317809989304287756369359501346177022391983541007243078902753222170933243204047038559091180392221812163000307510743259781048001643774925408917791940819707854465253003348252642243989781007607164751995222023782636798560789725050786962871469447552316018110122756507499063123419446653290940003680424671306370643522741637572223491000975724403490609345232658202662199932884079424550004679148874054941257304179023734386723975810067750526155098828968034422214624775885787236127342876269819341247726015539424067529397857640975206884442115885658876652719980634463878134224188548557109177828720087904197730097667617322304236661041251375457860486854326037263379854033622908964110037636552560894132003100892184244397933567517228649860003036744754584050673940184917342945184024708612680062610125595525827001232237809713905059203826860836260422737779063159250056823196454528675363542527342563079709597541982258771571581520654507277798434442937398417511806859489248412433082220127208347115100885073669767239291084855497223896237888549917941368914324506558462147371736415264293309759372121933584451997353842933558926765098226723505425522983032392835520183394027325313686043371273659530493018789826087530174501976491769098484545656459910868052453449657176528225755092492425790110437621689885206039163736651180787014347083989206710456514780906102146181320047639915529806177013324969506591911710495992206208938095529003439169279725665791141246068149762574177967473207148639306682863825973317807593428055171753632861198096730151263391366578802452476042920145557297211074757730135936283925719554731413792767818365193552155573194248115782085307545570419646013385970200449569176853601492412799402281479603738915861398728936930310455306535248334958850215433511059813635582699563908492206582558542556154343625909026095862158784664746329663845920586690801111482194856266527889951255411057572518569204391646272060198336508048143935027147418068734161584505218306888014434089068566299879238321115973879841788000826397134035415695709243141098431332818062708220712382161582296274058310068763165205969259566161080475354484775654430690317873085798986448348849201285495410814945636764840780667990816759576453198545844786147618396163176695221029333175077916699177490412566145099019574494436073373381037798469120087287509963455360961726312053959043595164934460193903443843090221752810653264360623753507235483377091574558083209977060285195257102208170242810248289276727123566732145350289850087777651826396170501425562095359459007710420003400293140045820040495291814559928137214527551198789662223221214418459057268486848853098314308727489306884215121726114009022368983196526905002805202437026682184704455223724461608300387561821211693830862418306608846455187264282751756980327651370463036910607265824238286056845150862017881495695399503443356465807539713375513990143872398300509198962460943402766762354185594496123939635116421130771513211278815253600946877676847929603559822096317882202515287203644882072385325508561950307025372933756416646543736803253117415045829582811943749523236106157928728523880502709673721832206002673529883004586094307883128162648617031072263962236428934671364522706063227077070445477334267051367348445357008342430980001381758608793805621018316270640642735868507513375957710505040130819281785832554981808978948560735084235606497125691964783350592571437143382236910704008346451725833921132581973052035501898283717464242155015587094963875114977510511939400073560525273974030460466940057797218907996190767443430719918011642013527029365073407391738218169684093494475420382734083626030620949988667807886578076715824971936408569198630832352731306620542535627761018239434481706472299621403055797510566653690394169113493666967128950388194393663069141230610281875941306448586167323067528174493851092148843618518418130486972879482084312901038487457236238231603784946939616995735494674975205363897225036545194471987025462431971006701621347677101980873075681629814131128070484746643137449283056957909206479310127250966609280397292780898434996826695400040829823597581301095668854643929336992438917554882943706278747133428091948504233597948896035895875086108716149523222812514840352280629714395159756016409796048465493702854382971497090753356401812695543381381399186793159055995353008500484832076381224505579731527545425319625016103222699863768308269420693124413819959299861187009584833672042406283856366191388354294069906192698025053700378545118073186302819845512098322775024414848315233804271887038975967271990324883570059797334120385090521769714497655537051683184999762958556844607706545623320565973043214178131637887908113502776171597754803056164076284937599036166148592059039279842111947299414316566123198370327098341256013966448748645551164767179460908358943716313484024574971779552581424923522071888613004637816330165615414250307441703471900181375792515210543611665512637580411361593992531700643201824936961130684882509454123132723471225166105883973489148767428748605985801600445689937994194335651461613190466996739524002464954331294559811400852422935478203878896079191191809354453738670877936764224830511295742047367885597152944046818669547665989570199857299973378125663421948657813531456966080296333057052071462108106599559844079866489425436472694038982556755017824951201656995106592826791276787005487622654293405205332797621794494620316280314789788555369894160503697911994770306913694353252845333610568391685619148932109437155435725708264941978324401119849813509625598169361977036354005053387702580436300871529152434066714959881172598462142494460883500906182582014521662238054940890963088318550750016114456200768470759129954784305934136307385931253876883367644887553370328815454385281264793336425540074987891895017136008547961870997296532362379359759268891595738309997654039276710546964743334769210435674765007888057771503335943705629595661005437388598403539378216243741850228046546125044408498254049415572467451688259919062153716081669284449637411349663454922554540985723504289224317902735367571361172388533463767047398961402133265984483647144269728003844847778259213008382053682874201251900740324705200811138843661901513383760537289149950512388286322067934040771882394180412837055305067198525183012430722905224398877732051025614993684745255473660959738095422664324295008492126183989349993908709331892221980924743388939107435176949242635783287884592220194287410338473556802087921715260833689661034347912897672483729446289046129073944422539280718385367712571603842494966246025688734746288978927407221206826297378267533645441189692938202973976730647269980971430780169892940454407804488621765184201306343735855152451877793482671716519102414549080856618987674924846782532195420455382441190531070714145155783871548116420157055895702002650812002986716976768892160730962901764197454509807287281662831034464952321936425792785235130404863173666143504393262777239755769540687743682615521404566251647978050677219238787324278412965257540324098429969512535046819795925939941046413333709598787505581327555583610069911100317572350636626694149543876378971306010439318133385183941636900391692578131506012680334582695308754525465587929272058649338298393582522092472594919303528519283429551128347876785075686579152413548277218806176365037784227062323068205610588646838664413068480463423915437078086198818316340899321123239469399894812338382231414751840976111427572603560624420675859961410294549922157728016728337826280771537794330805288144955950852904102849085855612110170932020066860709054747669275418502238984166126670549012054138547875759029039113869210854287052302015594469433787611743497456563401206627123824702862898983139777607168607319969245550388701386798312630232123894320109328093903095746193973317051400108725500855674183857987312867865424749491550693834989068620648458038864917660238305237436047560399402668696623632585561867883708841957281654624116675414280396571512725006890295025687294135137881391174639526440939731192337767572368174250699358982457754775817420681320242197492635818264689530981777377581489385687528717079944405916058833825233708680719372088579957852331286790175011118823141780967598673339380648735073803343666085049629854029291448054516556239414559584204494800325619111756690755413298159222243705236681833867321243981626246438547465320329210152545499364068250745238562152464301568117854881364984995456954314358698188621415402049233964711256109489929307716530239998620921402475559772510043419894454062119332101859963052393110573992179781970436908631776702809057290445781324007469384992035797500719067088296211329119347372241316808098105571752084167766782151397189514977098171777471305155716522039347768576658206015487125624161083537597425725750075570452589496401896416955089290116538056423698408027855988100200206225382833599574012935394890204099388013438004652725034365768459532613987890294528492418696872195340589848112934778880502537757306209678301337523216726511147104788259760293364136632344956886684658121953672653026814836488781934948260847013674234209212495469673140762363394611538268763150436668499430692607570091038222890746147607628186489936381495357851657570699884944199909443223605353917933582838559056505536176667374582033270198555655727667060880589708643953017984396263440093036206437320156640077103737721869651474723696060660119482694296695165178085134738830470934830661185287366447895061953735220447758951739396052090642413386598567567793296289500941688745750605311189649519385296459397549695047558940964106839613669574742138775080406293467070697945801465213000694328191251294263113194506206960610422857792742352781920901414496951169618964536838339347308896577266760532317337403964304435850780004312228425203369943431867211262998896173352557620631591927797135597372806960731157941846930874200873236066845640281345644133907873213426794337560483944036546442782062267269129697289773654688727577271811108957273225372754609506959279182710826830953646106803870858299238733298937038438937650949831104162315932144218649618187070487723294646336728762777097310840722757643058077314045338752678979286723853754525645145771602354272545933320618798244926529690667469187246575677757105981733781965756131223313202748798553760914583787844183265149290434858731386734207305931522681640707652045538378497206067840520196182526221012528502108537026421974693036330926625985143575186720448874628069281609788712263872029248663588510117662777328539691570502435630988628224234739966645911563792335803419732667567762152498275112423703728870773045176176372198120208313114418662824028016267681261591034317303146973861453928472555007316928732763702533315595199340810059083172122298696209558267820746646861316238965125326116430181225716568437995607221499378518408070582353938206088158139520569926629111226005955758058808416707346121016457166287781694014499342830837857547153899657746918944799268938574285333841381744571365056989372381555458036239384713466706919335031330722457944847070078560154508275780820947621337723379521244354929480412764095239000712537520278837399736150305321317494188225688342410757120471765439085491932467020042497273023015867315059633649067817927124299045344483060671169054072942158242934842137787958712075042572035465489656386525563594261341392351941517778553668583570247468549478516659393071678843172929899135975960801286197581612534319140919514729586716128777939039449425077095723393092085335745628222670248437892567583806329548815453343945111725791725166349809303332368896058345696029481923536551585354469443582841720160732644335068875646288037368825433933838504097900513654576821457921818509203661449382161250320585179706229288247476640192053943781328395613323284300627343002640480192939263439138266378804632159530443029951725724150349209976216393551993283095872889365571166308283132760442091876106547436110257132176305601923035405848520436533805542854231258625866028324305467119377431075471133989630203952325148755281543036641351846225230136831053324258401638251093676422912658790458812571572869592428742867802753873409818745722816951186045369968677959192026869404094859533294992896622021148441487157670340373098330628467355275618583279446436671640772750883262185545901209690343728444922559141426233417829640219594621391307350779565000541166021933442954973426856986449290270893385611689039295569754930295206390422198033472613973560260575785324494783391887157937008143190553433812454706299847868351728175457635234873504499121709601976907160836667512597695675948246948253013193098406852341784975099378552572914867592812324733935868158243106579361896433449384396998054372835102398092051017975607208629506778129452766715479594894190526433855766918578142317847653716522696805280552406350334293583798820519097029845165867395273770257515790492741052668956060856681580112704944244618628178585837045756310225581740860641505791976136504935959149540768489162361457662958129420068748028643689765115560599250178811995238219284092859419462693208425892495835460554986831549400047859091210351144319079572233983940502159470671728422313006836527521469964632419060851270772742236956091670287671071760771526091699947834363772320262413963619997488211110347352616438739445694412463479443462893290051656787997708655362590614180683283748777592385032354804697228382340507030271649470829527023242014755506193845549272594836946924656984729661008211510383419881365121305751051318997499865633787869281042099228288796508647209288783238371535250864635435694956600275613678072044393450305945550206855197579695439111203589349553551908365263345514835122167039646783219659938607829056257040144539261328184364236175590496629971978067889923998619780397236252507543956388142462516244147053600295088819406587189665362864717417558751786362919492105820715480934043533320173166802967070543125429468293104895504516538046211586806758011054113699116099945010771802930555308775933594579630008253731333559453415628428766500311977777255755748997983990495418422057085447243054225645535874944277095229747175186624821061970877478409957892877304996998034254837033226313934235003532574069226815679953744258829982025134960966697955167982558238523898371715177075610635426647798997893583144876572150479981164503352956074868061137203880099264997084903746624331140329024945057070682922254227316573481300920527775472535838699247341865660585328148368453104116594541919884366240708256969039127915606213411941193874214650185598973918000845199020151954823514864784846461370472035224074541166314250935203713083011858973333779317730877727503605556899179759913371518133370470039072257965896147345930710087096654573584400542420368025713025050116445660696512921877206359906965767986699259175158008631883767026951610069756725635479333365417301242592672049154380078979395906263634264786013378855926680995860533182896387661877193175097067733163751943022366339574693046225780315739581744047675789891782396417856930432540145690860004675234912817861973200719511251842499358083356270172087845245138118540363882166868486749939513431094290583879333696256671828454908931482186222272635078205896174504479074261824535383977225637757248383618944215387109340706485201187709015315608404989836217788892108983474317334878295948491314001135377995218462036234143784075358415409341497797483337187864018432660510347294227542922613498804723101651273624409529275703779407758663133523553714076392604804136290910597426798076542078582745111309580968482255107308771390087278465105617710490547524200931003195450010611788028630689310453961289319404028731863026980724780559961379420907145112111128184229328188755440126972382905137252243869056400166387948879837345810244398589225139875877779461541219095246144723414895209988009943041243421155852310240542008607967007123593182462178403039533103274664742848720492629854772321460381326715393525637237801438483812813398732133958340183171479191695724901127661212410592110668975911723991089595902233664974203558051499451523550260766192686242347487408052895439708031229456698639338088644211691593766985058673879052881165604590171048225737775653245622754797988797943117375853748350933758657185480958427704175082404999002929262775414618528080218462673293991235286932401545052362378546006110381802900840048375951233325140604254251755980368113246022918158694858927956623120520621181871946081813205653115055919742896822829344834212289833425607024201317732687529461110362886526207466275043873509400651922186666834033145853413296017096726478980798918998709599905148174212801720941838840568017335848871132311287011416770322141203179348163876548796160485598547727093821698192193730576067341414997145106043022451963099768108748102989387936351354096375604907253484954047872720664212538353570836627904945494188323284720506151751942645604833312386078989835794475240261338130084403890764845196596172231552873950615974273748561595898382308569847138580873571057165215409232247656080725900453896206376672799069661035905125915270758922489200024259019193931221318817044605604844940974245154450661808211654258398723604076783771953718618539364065423899900686100981927660060594967181232683302896597824583847064452765664757524173716429975365208693008055135248071088400641242721949059500464114795048295455681162895127648778824123990315922276628443202156730574262242879366571489780717157650918247336693932305681999100319468315440596057719898267976466255117041037709395597857191788489560684354590196630874991530501084551646433620113090452276406470398290232502863405684422224171444134003930520299208476638675733650977899041647206703146913393302838315724407050390475202852734903500802143470787154061496852613770449638824346791235401890700542102111340340142824475283993388083090629908383005658666992514363156992158741273929051262485151516721644561979922973891746658813646165687910814966905730019906754414147733291750984767196101652964115760172234488766381520291673167591148738220139093079744879719173721765222278767872763632443382022925682444372602903721357155803417358702802866268355905981217129931750691468224527561913407003271990981260740572686455349769390979409803547761300455059571248610889989080572667891725872045883070152245929437967146180477851660842958305739781399712529099118689918078139507743200980632408338415592088441483125097148082346277276106258539456166760646514212159594195755624363981720682248113252358739848864422202265009818223396865944663868473312372098483302512482068159026537193831457267293576236841150642977594220810083676916262003256824187369963552823562344956370298874969978504816187134578212894370399675933177476988964348858484082880578290627803520787924837476849887338544740007082806391832418160108863685250712180532156358014408159198065124486186303895304401204059937896577168482510258665346135525881838964653976086374398330022574704371259665086837707007562175147942869572811897448521690260819096641947544635897868546969741877794097004336463661056702290950887228783569073651105347387586794514725154202163679517054588983163789971471323092557931855109600880617256280526095374924994933508249190955720804960704249067050827650078931654380318122544543899152079423910590160881414956650067032835470791900217159944814599217741541218644327617614977485610785681665448484984337845573435112638715170958705496647585729308431457683560281039279310290573555031275280398223345501284549542395171275227738217302555338340530544681149299559449487605008851584452978220252911548452843028202393444470261554387651616107459893582923724468449298518841810828800682926641348728247477601991255726815785781781653203944312572237273663643586516519942054143781084020414694061290172250515036363310720875249722743916863628293296331869122776637266397734222158858764633183873887568248716320619581197610853574502350481903461555479807547961785248470719149137071909775411353488429490743110022582710998780766646904244954911078478957544913289498117521173878761479933167714202498218494016902106866237998509267964558960934871064662183790034472303970676614798904173624958066123506606394404340023178206358195213904589836358396884138515508390715941319406226300093022218354434421910638805768063619346579078287942274067708655209533072564432660022516348861937681552035589993488944109541514795887558993877097285984923748408751036956729317344142992266526453597089181126300746100657357314549904506123279637589709424122858399932234312164836103793036030657987903645911392335450558061546132131725871952492743302395443812191785106241771539194401098840611676185916789371003342799275050699719989816258339771196563572867645438948289237127641400455051471640026186213335509423748027190804061569951618247718047551246522529780486407382670447436257635620218162368972676873370652504022802297198386740753343814441973066733572064141405495891167337953972166979009944810957265090022064979237784365195052241640666674827403049706986768338978349132650845286783401563013582376086999068786092295720731923016376939384549350558504666212407567692744938973885063084820316633045612922219528212883839607835547667624550828675841038151533425291592710656190466288054155830614435575534524264052307671244728159497597355213015681802881441185562871544430615737302541258565558100087833971281827025220937607410883499789388414416108768112607041022827305031904368627625850844710848761575329421962935570521562025385098928381587966169216782716811906241237480699463355589722431611175003081038796630665096377523787348732615845457971724010758164836995963128278539513496760574616305575610312306798345382399308719723992164256076864739059953627376856719230612808071990313140266967487362814418772561984576232059729478653515758116799183932264822415191724519930608958744587118153464250284347761896226691136247426052256241904178180728863044075089103976679597643450783789481788770903139226427735730064381125436527367419870583558377892024648211166773581314969244221139742724988433687129426957123843833797157789907652716306819457904513354294966328913381980867593809170909845817032603385899051899500106251372959219130704246985901943597278713164031531797081742161770686141942719066812448095103510442111414645866034851332255748516371216853240425640798789265931507377027983621971914933803286709486926164470298685748321939590433028710594500273952335955615982621950076443813429664416048949262778836623183651911832417212447247470835618697441885959897755650161832949450607870552254814493283366371429034448735017198657784588583144192668704050549437229665700721601098340106417694878015903330778636797765096799432802342544969839115919512778116220258004837403513292716945091206175245894926683029219924054971184729398172335603692540308952261437682115297863900123000949051815272621462206310841412468702394848872943855802884747085673198412779148000413433761774481249654012189846750090031178986635766793204861586882575130175266360593314568569980223321938556364897329729648912388345411494942817763107642250903714937866538467753288181456602254500270300057208667586159913352284583350660021591670229446541824311432846451118317996045549547919916994153527516306492968338503860533595796226399312202483996300438284281808346897096907106016667118873926458877582586700832313273326222066349144473799525959832027207849788422320510574457025540422165189787006583250985647410452933188395149518240126406173433590034279693509699553102945182355129942378722159090278192668717655475810573748905962807989534654968290866855959385049028727320680702416087495920360329301647873377462630113639350068063570140102727265721821492131481740260089234880082245521000919291160379998795847489449583509475100542160891481275488560380990962524665315079019687783154424594709393377788332626584349913198627664467788931506316705099521897655830678428999851054749616671360623293230778904997553342541727191710803807406555742854033778187348853409338698747088688648476315080123891511633350847992390076257319253647514333940413314303474827753591798615317128282343503986316921865265629629085123506222964140521819007274731757526203874923025563394125298761861185755633046434142552491675377638849545492778480038426396039484098469697109276484780738191231737096934542559343311069777914664398409350974958524221774544823635099733666056111590259575920882760845737107343652461641026145159020222777155565008591279013625661931465125739581049612103831362827776715255599685902337851801240891904064632837636987557597257066249818878156559927758216952792435350837329085911581950926908820003499395096442397078985145511662208099882370745302922486316448303578225474106497629732954191641629496194016322131822901623985868746594101198566474979309160074401974609773030916704897300590705290224167768795105926100825421731172236213219359291783806284350497619450474896640038595413830112306310675759286235264366828163878338464394247169530430742965555092177554224306652937534238926556072885446298782584195498615201254244830984715029414681996084562943796766429551806747588644731584776533643533050412899052808757458491555803691887859232545485527220971257805286626249417668412356204730436330428201769950271230857470954745705407678187258561079817209421979225495432033209021408922768632687031439672007475036545938506301426747723933440410072567293196196777057303641972845716833543918424286316173085347729854495029410951845011747975464054446165791301530721950861986615455538441371436496990869461891328007723656016893795355047346564348442107898755556126541391174401877733395082729314170097945857872531677688569578345809016381695243660425778411037397672913154409888664237735089916007044124479402228168816299008121204770434433415116208299078761200717801292788373940352872559789906458848269297804957541988793153081054014957426528701974963220651825519639821790712206707030488751302526654352282751052450527402131396104662957274283209355526215629732043386730675714063301112547322228428945354856862569344291012254023956290069814258134173179195059262583712061873440464213595529055515749033357288750276090700291011449782507520941293119404791807742333076571032887425288219625796647336282666452818314548763425873673761113388763417699429037170889635689957182968968988125724536173062900811780185389886501472584618482630617248723081579674867203534081497807565043021235615882358056334609137034105658184859911477694288166712689835899292721552598892788145762357989638097262761194051488877902513504179008409657837105426236508767714056041842127404968834265649201246722700478486944974376336704439574186997396201500400512565047384256617538882309356832300048110104030452243984064810382798652628590613861630987615887917148501609006275850747014673124659374107213917777271502968162234309194473478880373978965392611331267981756997667612040881772479434633041395178265155944835542660396387817465556942928184390403020103110221816679334347943331223465552172939790203877091079049064983426703592462883130290622249413326671467676440120032419942886869528035516443027990734665571326584941512650891259472954157590365879249955298334563551692726041611642229991215351342444871639815043052178225931090939548101187311504553662811266628064195104276985029601130732580074002784750020662544168631650579934658314774565071318237288436207103240163409321415029178176865249285319660456331500748261567433726323566039362057057690357934508294425884465205142745162483506609848898499168862170082812239223642067619499692263100780429920060662221498458822609049044171571813621912167091623229899010409721370393008218038926774281249022701936172793432107078947064523328063195971071023984605700708908409440335450244302490777962397428999959762670486854300487903048813526027863521850603449164500154146626798457112200043433311127917990261221104313828269828931674952394523154427659734744437698825810330646777102363085059614165624650916469607608922012430446279063123567154909098833570599695919764043912351380331255598580100677413434407322121521138693404061352230726907971628845404426100491637398698771010954365977692995258459340041183949952370340448868532928108317591372362256232018359133779002686798277585272123104260613390165316999540422344004837752755583706672629527795415461635903971776536233735589582575432531292313174397682046098370541543740575597531075448237371958191248997426348825185466301452469686612475519309717437671954346160801168516715414640613273363226250951651595596864930114126223092303896058292866742141901436446480305131670718314587435896366833983441565215226992208229579644849615148358539582923468319888197286401271999303940887495601277994834137944887213483331817880204319442321773308952285700663619320637631566715174023959111942447925431013716443468732302488435817868284051836253871887392563353229041717136669304966408761678161179770111197369386115258882230953153875593920619035865536146338771208425312900638619025809483437760543325247163406891834458951417150808530973222457795283251020680572739405362958514516169284075529819184124543332353699005542602734364974506508843803895103111912991191633291978803885014571944672678261286877636580053558890416705016800418693294871597759490501666268971283517208372708658949368509041894713154421519726254637109690101131631492384767251354631743870342587679440433355900931616529028827000739322084621420788781641177123333498376609250403301063222503911974119826427684889854116458756189564254450828503133985568271573248798124101325474934848265033687800788138236400739708328458084850260315389241575708353264014914554753847665580004390184024908947827467879475713275294531983809699187624188574977337903093497132782659840923148389691284102278054776639394391690904335620001294117038255261026819211231166379962938630570142012768167797957269830859944373467484476917021176147964762732435487732480770629441282413528729652042882958760793138451090839841984473675398099910524411134800758353117625497620886528116012082057464354711438577550576752005248586574139445451082498228209836093034323540446442751224195511376507067301655570175666447742307014668515179848144405765976857556392479628094351483329963013936581080972113411581753413966455635481833554520558623453417939036765036499661713497110439811442223523042818757101822153497390415184985471885494750349766893251141832126407871390021183783281077243543197193427630308263932077915824608616904624465336195582021395075145040391752813825154243422367375662133697822299918363537896524242003478401193871867873339239684811824324812376738974828694289742947369690452262892822298062661441870302848783974238780874560871385115754117116279894670508025118361378300134413420488341103118787606363566352186197473331789969178177999521528621670192784757188687597413192004479848735190480685324476927777687282567782573499114223063045954332202047723940617168039082823675424417650799656797884268426687079967181109601263006833245468189981960463335754783261101479679801536227001612781482550162042688939106457710090815436151975297197812585581392839221441658877383226144481524078591091862380356429043535949652451551460960118178353345618856163663134166464276104655017879544381463661137168657434387025506195193848502669565261130424821811775573439028277421163305243482375927468676408380733847218019434736691919006321022787480331075486101311253364481062306520711337587196278192558806311352204499105715699593676938518752385280490275692377809607697333155693421272416432761392307300330477213244089478314626305196028139830533935490294944069635806716902255046547327733826419700075223401520816674521484484589939651255265880345263766457106606449049082984998463894546673564584863572576245539077696867750231076060031843342742030833307607825536762586228553880385758820677018401733027481340936132808560471070291679242166113929351590098531602877814541288136575179501282367469403478988850216773582906930801263343750792030202460782996568561017218599079216932504185403069140870645883259921484459866970443820813125138073690670384492943116472861318816678688778347143874381335523485456974387777621741746578282726661405818219117671702105124382024033400593574105812525155575526642818557911927443298268549075579305737867917501153018376087072208926884499208754020979454936595469246460970703658286250573013472367480758681071504157895431819335526621653602316493672605507443048544037523470285285801139213929921137618924618851642054681819633025556660974607178130962268822122820106770128022063237986615214594506474514419966370148884281296493140373979246386856195775043718149402568573272964243725337142774346603170388195447552116825808785886188581902689062037910368119059961065998306499948648397608115714953760092722654122514086728224628455478894805940776115950468137537325427283137662139663260494297963324261505179127817827591624409682805289669147072482427887100141220656420672278760926541301184527814606946886279353494808583833065928586212169159579477342298006022649820223324552035749793176820609998648241978042201801680050024709356927618615629857383038383317847045964814840864355517591338726896746031960021184794666697228455714170311248601705518491213739914699379252275115714524754268088638328781817815231502190971120396325448898770951284890583854265366672273477059245903860371746528546035037688192864509626935928084012450516468039479219138971722777587889673487926070934844757558897467048835958225080033592590365187578344362710339420370870841534188724227370918697212724802943195940867887308868336381738755503712367412735589179293393893470566362280053428715407421469396431767866130859001149414436504884180876221200366592100177092511978203658066084305982276266955600798253291486907292512552173613379243418204817579795320200116086558156520997257602670571746287573727900257134538471012586089546940660542865957815082413724772407622170376735636151747890355227199782170477957700520064417895695313115918231385913452261605751526024050838466168140513904921182994801812346703117462348315723542529915207509783405830379016112598997688205111808026194452639118780228836551226742714641571833650881515904994128822305000094042631429975345202083690794701227153263418873444149734160639871718948365565781532767681226804380589581074300354674665279498563244583598837316995036016154002290724603423016918963015144066094805307137891476820293054789961657642187642854526575650209959005786221959871799189187470731193225513940221364035227997150166534878744218784233167079279859346937242924691258262568601798301907730442006870743780873529992063187703463627812304496613100336078651761429832491439628462565123801203666234604040597400148084948259363930008812593412931671910696060998951956962426793187927845786639694942103667732786399360266516665123752499851861498629435756834869928499976390745842352606304225524308735197481282624814471223712547639707160948932390940694289161366132419249529777188435801558537064837004699757137255821486181810099244528441702375024883917753599873940683297319393878645346109476242357710847105614469916503402697726818216320315312960021383988666765994470689467488958081829455431392330512558936089536346846497624276489364277741935428091184553092785539377104827310508412889338607165962583127868426005892515065253989714291564549512924956762720462811478219355797670599095960560834406805178040939311795227365722786287406793241034237174269458398412738738646339364649669254154636563374657655470708482737437819286256473371545030568810148978276464945524662259695401540450468467644533294027289581818501424495849511588748929541279558126298002875580104335794559877845378986925535829595722911040583657895565873020098871904111677744226653450454375460038688937973302396339022408594563251626086165273514535727513000202168359694286877183957074837304838088069659359343567140694185522133024457733804364867588359010150861228059675948357275829795491029734397795216208606420792348517857774160700009434016143672345174053910241567017941818450021509536396925470672355314016642818065904137993090560158841452352907120971149639858206300129804045065054643205424292437830645303043760011683001477466378498716246789817453392160843107451661526915149916039871855411798716116122424340379128713995740469421301495145329483923038236532040632428973896204408743165523142245497020661833223075007476548215993158874217725851350614277617122665023754301815555798732904041756869658189571034988076942528281460741978690457748562441694408298092208161581021069620364844652998197549012281001932559145797324683603799649155959503353662241054862275715827064626721232625427975593205768411837795144382950444403666117165128306573407860738205796521959897677430057227138556381315617812598717514968693105796545482453030640171939274507681914981569087506813846459706039219976199546435498460627594796579828384150920315400972811697723139716169615648600571040773024790921134705849705179756643390757219217230906606245538614772200848800721357777599642225280417741436485441018762368284817832465389072516484317304974101781022033917879102512956826341166131419485220712153010627079054705363496841231186605442570690049784638777936064481511445112066642294373728487432640150316695379281227929509737568810573322447890609509294042656029828353405676602243045040601349169747015565832932600398635574228781559389453190207955995950836282903553190986056957862075840816642320827876647897289072230266574260576782891480135290872637808189281999516774740562176895112517524741805598600982233282724057271546023448186811776599259623110647192459455353529471967368905947986586699341817165898627962387334308681813608081042629070533018657572823699147920114833068243340350853769050723566382601160252018084643888239559184225185082269211449127836967994406945462308374211681971250830269096735690094745422613856070232682852083729403207376942563693102744829086911984457460831101024546406945174062244194849064094694794942189480971580198756289288737012428005560440426291559875711421531626179199631491409853418691350318025219841891326908936097686074581891609525826811128336706472332693323172567554784845233799660335378631517380828988437757984435343099647319542770697296857009975643799952971686965181338412890058868923744529945546653269404185916054170282516243847518794015580079748608814451258976975338675130868255177366567512976323021400095723380836944929361858739043735249109938113154754376226664452192769337153511221425356817070832748209327300500876883168795992454365549563690028316257680946574064773670625314416518512034624419708492351665646268766620436774061937460850855088301498366015749995148424781130678953767256652381135950059396932468893787791637789288203522114126395031194471662867661211187068938969133872993910922779991883060562902085708640254266067517086750751341914654488064289863712533619509479901132517415566285075714345239563943930148874434523913275644967568116527021753462458878081707342356944668010312268019003878495335010066857436889842340082506756080143902761464542235443205051587791574260189246314444865063471812315234135878794789541259468617973207065156710025710483501620793121810098904885792037553291785128020430887271710036481817356935731653894291160586919137915579645318091881449277016491571728721931952751683078728789760745895627974674130477015498636408050893063179267968512517488108476521758918352029233178067028783573413668785912722818232281002240686998847191138926578269970816168344216801439641220905091769109465062970537972110184789595436080361646327693503942685508849005568921178961889221882530579282597103708377437005343006413596461738849109190349851852790886834892916371109796160816876868537436768534481296518888719326118559892561006772729947292536904668684288690434251036120433662118916302668482169774088929964354827840927668242434448704487508505098387353452270022463928099074505371801653422272967985221677064704488362000307897486039266959321174473309666410092061955760162520485245899388948989774981768320583742709055077191404635778604148031385830070886743186735473352633029114664485944044095289620158853108525929296193151240205821900774471652212661851851334259285815712189066504306496503963564442055052515799290073803582616898840768693509054553367055606444546276505486405799130811868360991501290714021956564817941892618719159281142896990700142309810311707265127404803559063525917967959803139505511009457532916866003325075296890075607050939767003846609071350779816318449486264715853333775737842290453589586096011092825073696814883651117614590506572130358111108993983298079892771119365850137322520367546210577649988120648035746339546794539330710252854744965898052793605242818600657812491474014168467880739798962798301597507086620903838129591920542188627837555753705324685817966464694937352638186660647308785369209501906789736121575725520691742242291003025543411966520255855480227572537746926305219770656173073020116778531170399054317470854204831961453004117493842552544989723157625004795872289802388340547383463875932577577168704687339403228830083999020757192007647480622160098107558482118808248184276698483448350131682955717123783065239091899836153863142494299775023510465602283084371373257570095568762002237005663142516693525830859524844006863991480953989910568848793739818832902190517063037446251191473467591491476658173013098787946259582025184370217687085738133055261953058005327229497832804415146545977321627899441443746958710849998070209964711258689888413794790996496025551063330868688879035898860039387124537656911005457078590816127117433687049105586344138352677950627043767525635179340474122433780079195396658419928530983194372250800920508342518632814990583714376094043531673778061530067094787882101828807657345779438598653091388491836582949951063984010123742517514239685025531561162644834169889568301246741426384799497265582658889527910754957893737896041701432617949598956701773439386966758436275045176458855834110479134045452312260060589744918810962780162243831341722626299944238486195898728531359708072838491155896606105192168993735892106220093912232910863367105387450723250053557259617992142985527818423514253928682181002917842401763018941186011650147605937882462560257202126163785885964220247012365753022205086622673735561529674088048704579591825226810979640657064690568907487015784206051437438681439986285009373330895960155025894960872651398636520262062960994877385777695281915883566218042959481799801763554587318312266873753019007677255540800174866990424514848731401820074171579843349439757273734493280104072032444757975188117901537806680586680822530482185581299919231350099607702611902247686562604941772272325713732981302427492787477502510666647442948631615085882847169442533713333312568877260428345030232703178600213161479474004695084246332953729576090595383833574585139410359466023164528188847547729724023764327049303081354992491584404714498006396059181554542233693391515721015654125435764102015621114709000774864647624673697409752717424543900135420520606466065802098071036645493236133615730569582043462986165592640247244424662857504314626581059892841180911595547435906916686367656483987302384248380201269748230001097799424894418433210394820381299433467892888975613153320465344254376805986501338722740654049927509758977159949010654374561803882437003676856102092122475277862474624493081570192448245105240907000314671619020116478529073133958046247915535079905507976974310519662043597432547883360604392364862029024062465982921979041473580835366658757592235653347943498243975651370535109979044814295071208385197471695293372357256540058665329721272992236494212567426189764652212724715824263902151954268257643065919622380018683968979408647431358680423496286645582216630100225907810369020312141672832926975980925725881259443986117901415279267712713464924525987020802015343359566610454226469246580635286113977137232251698047814595484586389508893563087824715146606622344503411706419720583531237061439030815912769144586155388390326159458233475808355082512228525557001100680084784803889877845331805208217749219888625162864342895793369808606602541920063207159342580383122388657058787644758919262695272302972537503759495453031164611387944277077101261130852242902903288796281222461131035183586324242571016978983754896059274134897660253127067869736108041888396200312951712420520655358949967954201462028962206057372704189216498099749901513267028421975149318323565091607974022396560848923341485155176626040496716518436629187586467580982059393724414648781538599438101251771095731069676214251829702628694068056925676623783065755152682255053537338883449068958033324383834695777950771458545741559248473990526017232501716160979904836188367735675825511900475542532401172535064496521022551127057599855459304326723747730104912329282694098499497008819583134921272638817873327870917803832186692722537421560286900333818762407149637605757717460278078950202714490147246439036468007911052845525596250726256957516110898070953957630931887333864693277152090797953785616296339551866701423596626746968904460614749508445592236440598058759552656077468085733635081703394410138492812849196705603059716191061833246685484628304155933082252821349008183204265276357563857555557641670137288282540829198957223294559615216402682686079997357368271106034050512944359895308371376665240831068087745460226536645732511784885808366847109448285406156340497218286979350851191980816711206207474717168048566744570250520656346280276274454634657645422027302538104356769073298815280081424418958262749222410323215126484508743698691996861986531991691376743720949260644690586069157951752880105946718502067967693788159617287170384779294109891739727161234983670413094638438044996885954998910447505876443152995834397584305365232035988629441588970636225330420552462196911667612800245554045708280100088998532318056434889696925787017056552661743071987107122839296937897375568567965326359512358990720735134935968852415056505652031010122104311300293891006987222182845451978290705126902349814407788866563436039576984287905320235707487050102448160619564918996496699267031151464118562624770569546120330460285352949328338810931134281625316158166164724264227400497358130929222420755985131123566710217745413448543316750645216611447572396410698437022641536843106249799976138021272829936436357389428584846574908480846894770610189078121023384013470034020745624372595930453148050270447541250098831073344388722402987491299799674975839659171374040431873533168050697636114445296591178904123269751220618845122088971104631029218969186074939497706203057431596079313033464424656964052736744600511495094146294512342157351345462197933479695067478676661559422306648575136251695896482708655241943897839777804765390705059031263830940495618815713356027741052103118051777510026915156593293667230132067449031194956824042510587593497967899182649996971645689996242111446316341032520825586098624575555421623532717699468146856391452658137155197188324426133914708034128921963807561794199894606579086518272430112052459037853507111544039315232608314155433948126120159930569611206861002777414574104343625556017994616263843495054598942470016823846027199751355717077184894624959246392976068797731000340552687541661050930048068174399059940281611361810831961565331945020503902438857881015861449414556824751357541978705286584058671324447894771321013081003438100445012736540337394009571314238909176675724100512856675339258127171606631798964609228997841788027735176580830891427015277297390086004627251446870628751800953997416290919437139473402299613083790671806796274178179106755646093706353739656552345278928185117365896605855421846719978185808572271399565041188269575166067762796547689304793016707068408137757335635651888455843389152806984156281018316545045248346349017202866489731970829245278167650974590038866631494742177014132494897810007602501705716102130661638033808967921375059618535126594559926848254102847549895501422489166173288440892433371637066555430221481631446072108158443457037458478073721682357884218968707922560500886654073153536847150894808739135245683279091712206869095232092038189182556221449039036590749121859496324054457842865300824528142957912855550077618177612865052708857326710341729816980206766178517686374973404423065402232670900024697214913325200123334128556604345835504900047315345468923935733397257573796430825800839966047881070716662324196328625284792241138333236031220461276627941548452728332252596787297573568928753326610112623356826960398365044979501948778349591615598861560584491274328853984479739325076038490188996027398870267431404225517725446632357666785587277225636981917714928765250225990016099042815122208986174456394485765353922863192352996759188449221340025846676294941268698966256833297332223404675033975543856864398856134209862615315484332347905065395809952379435853735930493271481779312888998645498012573813003962769356741597310520513316059357522903755426057877134193029291618061128649665413158059087325887011251794522078795631391674781201430220181614059237189155544376830451834154009406003855102312603791152023887994700438597146642606978558092521716630609614659835453722494379885964109609136765676310053036593377122845672003184205650982812107787195132635466275440948237524292508164189109099582040810383526664997551660878569148610830585189471507993146704787337594799506796657022033850873769664494569708513438747677145342283253984323575638888488428999866090169876372513163991580937843313920235688873847292401299687443709765116921857015117150921678893355581061864763425158482568991125238352765180327860605050812816301457924897623483528706105732690201988282386872787464774988273763797534684520615900918780712377345269493640038586644138499688382255418319274345610258375705037157240894478834575646492200826874861196958800245745017915718052735100847513727394006005620485625116348471841812782584828997542476103163380952110316917406588793396097097810023816200516470328457134416300339351758773456445535473149474155227495799413649885074642171928181919699703598021744780762903337917203227645394560354862247696641349522891904739418458474414793487717848681502112421913162375708216075154642496339378877119675569491271013188349831116841703753797445843685450088083880378666512376699431359159601997075209198258601694613932622759579372667564068257520870570967969518854934957510372809491040000198160383896725065087139163619023933695087935794575666022636229293378857149785745329309744300945827656091424871801639133116869374079420987762345847131911701238689765633303974525684872257429185716051923831712908424542204405732543513281721809329273783915330677994164183407667738502515548454142944378445164593368722875644812465347778500768054749141849486559576896005585357971679273291528611426144501927937429599325816544141351885336335791441437907226101218746343953719998449211318983309472761799183369523651367434738877386639621625813369660027080452466943244249830542032223804437438044666731469190064719963889536065777934683398210486800224937737277868731642105757508484005707868735376932994127004028321249374034979469626624391634462839371116606088916725057596282203913702787544652795608414605075918439598631115373000178477332496636232364207034489639602974333391300777887275427337957696071431503093400473223887882069768066441200186741960971912206494454434053808645930852420201103157380182819422953562304626800685922921931409354677753729311460720681137565290920034394825635356988499343774627807827478866877344779184427840978629309169388659916078998258361162341190502140168435289899504288409793060696914069688228812468676972999002039951903230385909693405990080019155728534170169269746593041190379958130525909659065777079443063056259461042818549029532692519768362213500878864656855611326983780781469415536170429597801208397032220166540442526900510417289293869522994878786784972248771782721657005646897501449608286967800828454182536323952553879004388138961946987117210594649222205706586077517104791510499156460419110042081372613965926067236260380337128609580063809120792085929882209009174862619214661434060765762376786725926391518780430591047887055319822654395539702745580209038475650348930928376828063440843013417703295881091354958864333358854511023516209927428054579686490488105475354463936680280656598030506128395671628219257508228304160412042922688659869936000568136527817154146686061384936419184065572053576829590115467381726197590992197139130155691246715424865200562549165085968947482913014535735885774749451329706488541103660171159780642810249144155237114343067565720736128353830001133678692559232187667877973527215897038391340192266662387258439198922266603360750813892956440569285601652308430185599029626221107695832634388445824803076802707154633478529510307678974008440254695526440801460295030740086472128147285590899137865981205380840287071929079428624322925640003631564200581174715673090438253055270093450239222259908499404475534436854308506028180744484940560849836830613725666636715887396981525966653329073615632626651626243799005186857074181920494213567420738683006606854690199725553162517653766591045707060736135869738231250666943135246790324315551851812165092342164501431532502135125086863717276376954072773639914449932113027900327795261442015293024360911392332057596259731483289581069801759131378674879583763543030564306440610187933353541385141520374350905519948199649959871678871394899824827636604402177749961985575119289454386208653276658112722315353682419365227197351723618907161468045134536593155641080254912124141814852090259904431298018986005993175918128695720184676486401596352108304583083077845657246840974048960206858256573755419684790410715153064617778075290715990700998228938075117081303384544837132692040507435771884886396095489611292171835930164537333420582638710702658712447694564518523199145441028853948120808198851325730801799986831162228955844356984985225806158590304726758967431716850292232104380192246452088147001468125333540400665206353315275610174804333648731864011199029114335333927547376372049825548484514766296219826265165423148442858084001614049046435092576104213506982391445137088890391140474551586664591073349247221172021191740929127560937449617213720783204396058831101922555852332550354777806034085515068069847747589906320713754650237888014709596660038011589044131128854599607008490452632014554829110487653167774680694801397515990339600989521383095095519357107568659858256196999041014716126601148301005080451584255373654401961142422954103311109988419886624544459583921216440555989092575073672025903133747426961899911756066748458844949397719437852381348494401619782545720967921222011837572482477490517770123016760641920006275864700539183336158709248510244652182779147552742244821417806753406261918699940802121978062507419884414928257643352369958714407987943454678402271357742382405735031433226147805118845915039492170290017749804718951109625888212106155087915090119075914933841626412097223498538257785093661038280122031036253523035555373173296129636105385761848473006162903675010642180529903953573928631491953056268835255517318617232153974919858356676846436499844752579204245989675107773974368683333005743445785232156096639062560149629398456054554014156111835217065645049786693278767343915102060031797720481127977577477677591602288769937374550518428463336485098546139873801348900472157076119907510632401536508798390132032237023689851826461548073652281363657143108936282869495738783538512471953172292907246119852440383868191256470494053765903424277011974717020214308375951402573936396456184657332491561328953416055638219805493012011684311325764491358414634552035392184881218792629438973057328914723816872095139234194487499277638010282313260041053159259243552715115410124912240401030086018086976157255078121056278561645475903092186301873172140181312948894493205672795729031734119326265680008453432099013323107809664802136591352844476263551395826034052318065617295378607699209909770673763364093888298036208883075449063828000849377470836161496067956768737878182882024786369947005839417711802764501153543672769646450304273011851533708259418124383097042609607862090036878755954876661316464002848025590239203026422500520851003089604621671480802824409162831205154420025131431456857208005662584736798512832085281426826438457096534510515839950850030126890130998530216432126835262821805721977296776355544078787868126900183152470228802424823068003414903612595161749017693037944250236449418684707880499868496113450078928749889612995304934587213579827204341586076755540001990037391546457712769367401679154917368248131421282142655716092285586360053263546847699230043004682547315755620070245835088765652945309100180621661665929547086291119558437135339064622384463734091116232575232955787342007619540078858031148326422939736128094373160295809127884717411881140761530256814315084454302613779858288415548845319849956391499378598302821808153299520955430217836195326796275890222818993286408478572922443409264196194638780700062844638711134612666431742736835789051954037864873016646143926199877622695239251070746530623267045052651860183742225335469754310788929425291625584772970406148282902337735096148598571109759020446527206458440341279261345356778535268590655786443480133528344119770382250168110046659057473875406770578098009684686554966606486606356539906296764111880758688995027157887693845259179593661019526217276838901521190436710166347318759844013929511428271905561418052959738259889125422363656648498665416026270833913151697548230842217609905182118152434695624514931095671520408550311770233479764935904022832975255154254970008658104201732156095736640310814750901997355237633337950903223225433379770214843291368804168817369371233318736010911988656812696334388805865364821594351186252706850420314206931013854401965777659480209988911602475733369031117412779374300147150046835273320465760076155113773523399815033430701728634743317364532422482177384904516814799752868549248916366959222403224978144215003323651592063541131210593910686288221584326777509758769804267678710362614613633207779497108179333786331563070269595482800305399394462374901398028537222115747017912033813585357050487113411743443512466016361514912351357003488159824926673607112785524834581572918223166907990972961639607582620362730011270254617552517899086599005943271403034002461519876789210544573483367239412705868441121693810022105146166011569375140886319826979469806362882916798823234448376833501613034253317231141599723094081780575149869938821216613928251693703105011507705134726113912148046854695736392904595187556216568729684190983915303012413141725340954718745755704627790405193995074009191568298771071602805664830355526867661954455070447096327741967270216761408540428334217757514454101110398232437704083059596512213040587320022397239891777818077872905227329838042861877344204334721514080579273251908623886713674555217343583960498299365519225134552823483764974928801925479939812987312436451250093344988777081654131893395691055099732868803592685403670437268138428388707578837960966257372164519794024861527763067665878632615658000070506477311300815501188110825851814151815214064222764857061232372231144913541151215076974352720864393823094385065904365498031835553739471626796467474080085966073720659324147522261520652947329952408565785599100473062754288933678393417701187374074784372404205393620780123481827810819338170696716551602984898706739834760532555202858025755777140088213510892821363217659037335563738880645740929865558815848853231702656487807053063772363315212693489894544378091208544316594992738076249816640046596065982179833110175567474894051260012825461473553951024835724848042476901001270200710016667780908351621785511422690714944849173860915337076642841490590475006747106354393745944770594639275362504285487858683388720052882377989868954521395047308957241649872367731503131437920467605861478075708097119735536566756909784479787034607122928954840880873395437390299589611195817660723159866638874141781819174523885390502682284699617076212873758261012821387217697323097123168218480528784616208567695709477700614328879899608502612725303154390546957008240929729725517002933545057509120645062282246042452071297612792963463239109680909988730161061612324009504896635374429950792824239492654989193412045183462526157079203605676938168349676300637633500391749985453524785621098550768460908111093243950023432869150941033235095419689350577539708676460506057927993646326796939689616282653152105677110174667755225417561452013566779215359641071087008200830411346227111713304293285495166808593671749985840060005284925386790501338825761780097426898410134189007317293902637969608956974697985838290178363895389135585368804934326604222158252976042088387413344671235298648721025220176711739618221219840853552160971681918598405396094611006807954282249550606087020749067567991993257602764242867405176988364209374391870228534610439819936241253858754571429693942340930507330593396414393923084323129409175109668029108719017980930649358066861579441308451705028734186095436527269895322241230930406101595105447620563965771499646903700359327924552514761692793820880605195302656749499631548327372077378419735286361351073938914659092550677722141575032250560808209080302987639162029977635016240304417145523170924176765252586205014143097911172566858461046640133752289018133054630484858174923940655475203774456791510436801086341708345553193755428492873157193062574784264286058076239150099231266080310247663441746322871364060456729449133060423961146618523343427881308915464112656925645850638301087186890539225758024117904855258715763889288106208359826418692369566134249337560451573839408430332941626321991161455843334672275634777635555146903848101791450385810004338797558502489251669453022398996441131093266147122606131114483738073805403068549052363269658506333414023619349295228927256279521703982173077111446310349273357454442192142821753513710887760441943988076617504981275452993185032766823055762365040042738796019398059725291881940243491951582198279513098133330753983927341993453314116193131132848667624664081511619733443686096929773700819771267966922280390252043593209050123234089307987305107248796413775070979522694945521642105707757119366416268056719384768259867899396735392575733433512818582810711576346053867397004625745460658229423943238613162793212160853137441973230156109650339435407670612580956046353739508543818739026058335685296878769694377266606668646581099450655578135156991964208718503754133914501508985572746133039879580545112277987722165651289772772483691554066700697891034073953695417026118617266722528829129275269421366114942919477152597264815736082074341159834711582541689974786514507586869491950106177804825797268952463813216156115342715323302803042093229826313331655012965600229725964744760762765728671031671643519681060781784091458680328402812609499979882902800900355028714918887574372540669448751934072112208740487756382812151653507565148056845536589634163723503832120089496454993668511404967395866424781316119428600326149307757191000240645927432431380600619484264082802406033842091096548063897385021774616277119259233978260405481295528600893854837576858434816347621858415246850874915365777588234219877285576156440837361357736515111281833137401831236393540603846736170325918175567538335882503626736976791694121810752613054128270231715543087547133108429567463394766176677140782233110471839308075783999545062906695814869851275387198952054364953506749711191275571624053826927912160763463711999183152808314622163973028806009266567644163876415077499532617670314584963180527812065639833498765097155041017506471892140323149135657714804524932375209663519336912114794197598005424758641402170203672051564271048922625568579662189472548289508823624539125046840339884837672403826478482179463211788546788723052930466166780145572058004399444187933798116005952301327206259455709665323511124869364232484361763100496513245263572357341549514732943893879913845025571245549272787755369974434010065751538897411687203798396686328703030103830163159040801011643677162136533091690719920635351577101674548318629099024269773436198506469900148518517761452693457352170697676384695931675974233511855861863947027485992621070359421753463840052584045834778792364712036245121792972653982647926191676235322367687940223673235707043671551608816819586570309592063925132419282713052743330144600092910339607117854778210894282313292819645282913552076063830620346179257536989908851435415153223682272202017022927145592386385260105901567444853569714319679580330873192230213833993587290820831720873894164440575939628090746174186291221257322112949581251802289530796062228925306152318934718707390646591175632013831484403277123532899653119338240865039384133817614372864728944604435721055571714937398001432150145497293790867955325796091483667527014349421925731604112368280547353095848213981107515927170577032907037784360417640277414454770210696430801410428775689733574287167746155136783834730238884304724577276979985480228277936004659691263823510078791347604737497551292514045208867130767281654079848708431969192664009477870837981523197151265573860347367119950260767844220411306401379081689456723709463668384108840114750801911573089753277630394152189829315055825072867296844821772073875508745600871731312017173080595644050912673349249452369894789513857385250014958756536195673023755716014276636917721564446924855273493322943143413765034372729194778333139139879320184206099844995212385225524465872644030369426888725598156616344327041544820528830536377803764981566247082978318199226309875097356769880821829842010726807098935449792893072955335351580642135577937019166852081719022385830610990027800353650747939644479746728191520547029569207772640341148260178985010993563446595833206481124990214435581561181729295856603896776157262886292998124422782395660522921563004157841956678350097707718000486077094279127785567002194714734104595857898954048876516980226555512774184676489971594582344889862664792912055167366817726853809181604912281982585216833671928388946069488347101083373175003262734782494680157628665386493710395852216635306755159798193006685005746012085689512618749170875246489126098827142994290680313976104957144694633569062681417624421590154477788025498219667437863947249584569488312437822088662501214642236591446986909646617496661442261551275663847033958485142627520635516651553655791808062976826252226270986778922902355581862290169651627626563519953934777384832679557033721222501252716121396928606463423692934530453311237338252224559839375843745369329134386163085114265521610821956042195874667053751039664020128423588498205567372070500868512821258266234787073050352191858560733106281001026274282580319794245234052293840948144022589434478729839855028003363021275198323534483685729464656403750270398482135387605710913519039383864531296610226416529995181540131011659417347460763654722103796238734356014884062151473820495828221035014643698964188458512756187029199140771779327935201822692862124767566328037550641150063863390323539504978185223808149035475539809215435249597933724598791376849661313121904798314585384467136261843555749310091115725802951687915064264887820289114037390456382361570080252137077687616598665187694688710525885825314576101730944849516532367073065406069425356675052603445362270248351836532571155735544948332479387079448487357478250063773992051159496701246692014864019260669212981954087208164314801031743668005499470255806149263772567852104525545604157633325012385412512218638908415807035498565147158094231871157142503003161162417968896625365697388633814316982085065673118916665696666810937827346606670872298503135632365512114242161598977780078706973026037966526229197604692386279325239887790240978486262862716324397876799295854762906138073885839801731307507329309022327090202064247723873709649510228542705361901724806004777194600088170881259667577608866091760563124222367827788400812102341494349945796058388513681574562834890464949728664189335151297536878675084767437462825682778190786252743876768042870488822002794092001001101911607844828485757684674978477467436327008386110603037908503701017497156929288633556398275434097365975005480076490756074357966940927191053307717526646351500505161773595232698075921084101268393437442841300895771508237274515264242051649366844207282746959084572249316474582231463504779406858394886552024983455035438747331518862159890848771606027073689777506006932341089844578638216347760253268954694382984089374080457380020681720834067588652778891527666105229984573179848861367530998327298772740522294486264618514804298973036392361549942451604206904433757057988754341036254267756337218752172267160948296889333522368738844236550459931321706596995590546714738237426825768530941104674245622942551844820889416149799860391355224513750319472084950971093558060246036483683891917425322426317494495460779867016833296817178089824606967840301508289981470571017300366654927973075735761693481179554730499078503443144178384762090912145964105411598857757008847958670294488574969054881187478042855743170968739662770823065530870772177883495399986829101205269876089260712728628707866180579528650750158605069764723582551331865563458780165980095840408636792124059557704508886301695302936467768840207265355501925276935473364135123798341532509218339600101638798529039557733473283915400058525272490014154733564815117659181391881772078662835909820855664879242777611967997753985929485393009016417690425112939886358514051437746183573911541712648432879383115789637876403640293045532237646829860893522735066046322136866438653742849989121542754758535919916039952591503251347834193512153012762764643837817002774304459198341707288710265739510299818985759066349693187985144278896667594627175214100782296853549441850539559391605587408724029467665294563323867713803321952379523053864770877505124389102913978135272557634602281552634079514964194308265478245339204285762396308709130978746112607209918862625624349854095072881449309010921634478415898011687187556368841735108873314709554669533455281273002209440170792683792647479256530862618980762416299135825957362150724671715568697217515166972033226793044276128759189309854360359264335900969932244993171623654168792664543972175671887271741890895866197270217359545907037766819632205863465357698842009131765801756266293398349633877352240247135988234180331646605213366851370659199951922606089198946372792775600844068113119622065478675979775107699590637088930672833103162748064823720382048090521899558508679469750696015946393699168273909381541005661851429664413105233973819723491147118613011894608722784114116749747499605890711982897241408680701532771184663659276201807601426326031350644236168072509616508762212835816002586293833069865660823202507314321509836220216520936567719734219139510743107816850023853321817754783384580126352780628698218068407208772420743817771148519582330544103231653508134578167958648539849682859350136382053510673902484469914694372222241279482036758737332177599936572431229713140694574145439969695899067710437349150309037817885198138913246906269519837574091153594224116625505208304241310743141876193073639778409377259422184695507384118998394896575682789850978145205466905415094067557433091345032138553784763083564781578294718777168540283739848812490754258068701003245083580327412718593605205447796874714883510821036555136470672665435466324182271398156765889366874129668698352584049958581615418430471603096079092502049026963063876971554879423495021381063395808139989001483600619246818721875519477634087728501015650804137521442370098845378954297770875637184209041523693963607865101776595871246178607458713208538026911135442365360151938101425751458465237743673713001954642758109901604145967970718091190810697759373434800647558337999186188928274393664338353422186298143590419501278984858420366551146538907077037782660431904628046569629176945476920411048776937425368221596143375043334318633233126265612330699550506664295796116491817451520115416298915934025965162770035838506700502332134505983754173159607507815970795443126297200851171557217772506420234161009722766174748254248562156042162528671006856868573258309917415970315285725931314569198044416381374382882403336558769330656055365196011460402391356877024302231760743258284543313133543770514963837773947372120884463184276931571796748214511277350444238535380336269610025600603808197819692885352813366364346424608021138308595152621472646651789572859779144128398800305014852002607393919989242244790504388754044922230120759296626248088489652810205397203126138899775566261454374113107810517890268858985446177892739243645233809298164977613593229843896458682568659685779559651452148138830184454965385273347091106470062037445613923323095580453155190777745125435290766624261713786876453321885150978847610750050476003994768218008369279721025812791417150291390343948373247713150520409900196952450669667859850898611229495872592796816696036602695668401004866087190015129361482797049984980450038898220434912973515780063948514324669090390168011062493126661740633522309891310127726233168529688266787456000942157561709656677403342557024188729125440423655545535956320463288778586413642549515330891126215165642694984931163770679895177282983130029272420578639743716073110122194134964364823849727190809865862071597031738796028042505940516899355725748228306129134299944847996280248383916607272370471308881945916163469659714200419475535179170393424669120771510594705457354552268905541446794437724301624503884974088071503306697376416381854090634395614498330503138044417573290436281302056615857846462784617999063176349146011031731226140669322144709325845132380052056760874087256597154033797893023227308575958067904649302283823042421440265216257673344603703392147198071166484485327575292299939777246584479992919602071576197518487220741752544642867657996519505113651896259090821389658951997949263444183582736554559486151995456690962739450993683886314419366321719877669030091774884686366757620115730239063232651545873291247007380856024039085984725463157339900751500464609083867616799498814813350079522053411852555899088057093337395082483766395860524225137613703910997975592095114777586469300135631414575483012478293799993879126826170836277439296640323161767645680783749655892638486957991493257653346299443611118275619683245206038250228052453906235736395597069046838714311512545635990173151742685305662588035386882011999366980041920730397218648589179371150525221571560226467055295421921779720741760131342514785726923733757662434410299844117854066107464892919442543014458318513243516923402500069573272296953877604848603181054832290553773681112699624827337056143800920403028932880092399189449195500444994839088168721385294187779574096085489584932170177901029993667017231474527816405278080162434838617094153037963406365678112217077501140375012161991615037331887428070690144925075273770755584189871051857821280239823372871626330972877636184287319664115581540676894977406875130458526174705849071855667398627475827323914414390355687988509185023874037611382598938824288825109129488952032617333690747348351591286214055601631623028535409371393623480511131621096742989083469635628477109699083321942649350139627504303093888139524612322957142897907695278500196754707889693492306180780016700562294167552072446814030230190785667568242953753732366303958427539430826229329720602613221405202414429696179682100943572632748553437910310667245917953034980836290221534129549024405707042633621300446915215133018060948990543521003854409088225824304043477666304603630570989693179957148115607152753893657630716881499783295543143062348934290238618085783772086100593492564131187613547098888201447465225286366585287748446152390556111886816230521738907877676198804006083657968977602869561639764825313712566024820144765405967142570448582162971134769548404550028413268149995721965780170821521395704654371505220647155413469568398321318118934941817640662571413068345368866358930395289133913437402524345514156782217271300282479826029657483239293424353798322412013594590415797697915547369152918588545904466610278065196468597273538166180133927052014272939836253135318847511901784653987776737759120207714353372304532922904660989104795097927580655592467967278321811178809727666903583741177508512393420411754336259356101649667779082716481614216742104683139791207665756864648686838234276335320403711798370336362802154835115496284223942685127478404130163295724880756703750584808980678652941759978307246983643500901620313991746516252200666667014795750960481317047451034111081816720204268411313273787147988778459889281210810901993866309367454608052215147966128723675321444365610745983719314246750450825884001216959679831357490101664093503457606244280575326051254407090591400901682134799841518761088136778871374116431152468204183441207520928995767671715440205020206062719029018332843718312266524475115552613865891188947157680988743066007527829876921931759256542740386413962932262007061761277232466869111439699175265673555847576263547754590850902565046520769920346190535379242032000689777196135245832743341222517217741588194291688109899725731122771789403413680367003738749781288752307855800111869054869718824139460930596940560335854729837387243864492104598944265761190255843500169085486018896541199696063411115102464129186665914284305433296677724620134566428350917383672848367953680615610832054901257491140699235213027184482975090053081117926121314864475976193110058994239739580681883253268059098850551684904733845629896088522825018468333495697351621066710850649379766092772104136575334433185771892359053563846080958965288170171851549812496006798165176437768263444579891992501539902812225945386968601595998300000310452101082020784788423752463220953387169796875684695876072304392662407776285085350516773705507673195489321844375994262049428966763319960299213619764155430976475214336119152825888890108604015076639262570067866236293261147165123614319931008604525184381767557776366387512080567138791494691529655952687795366263489292294894933592455330469142778680609609297285088832441626269768880778955393391704937074497200463858740927858190032866833236036117745249504687720840036791196531155172516352531213501458331222991456721515037365398671768396547236299907890221637171636915471161364460393344724792406177454762504946666911984302405630057334925138083280757754913449522865755075349724204738635599949943814057274596987975542087366991491475502036875692943366012587446531512299318341202469694283369312730986147057828711445682538784731001634322516928647546744462156382820244382685437577156771032660639107209491919709140232819780501361986873705438942959949784735212247217087679437868136986685123401077909749376087486030143955758745097365747001386527591059681759642761773245638814247117227590208479024315219925078157251207063458195475324993788893337518136382807570857358668061397794367453255078958309632530237572688545312851888093789724769601842409243179804641514099917406465269564108700289606088158742105932657992288322270365165827828596669872327247830008159483471620088826222169660310334242869751194818842230778127874585879089743911698376183567978857612013044024211679235179843714196027367288649658958589195468021945281408343363066524071880868373486174055283022026437779070245909744256638526188733629316864635170795676493624665856572012697207052419456387179787951652848292631052632430751789355308730423415887699702463438654682791387275762346951552672535686259091430385577850840146962421595780546009266870699276569759961131469731211092009254314471145337545835075337909815280956935876172067374829242930631693646065720893119491183906922947281062841632804468457541022144044880636229821721295685686217627037801171601735878567283708637126513659066165981097529621185386838428379633176254774681260753150051877844995029476161846458527889392455865517241790808396597912892591663312453935109024903308837330465284791605828692836175422097605413926765526311681029155048430508460815568548253166795993264279231894685015356813640777684680436289688810154569047509019076909025488749273648561328563789239558662611693413340949336993908056058256246636130084123777934492816750782290672128394627863465642263464628403601628056128123345539132907344216115920098383253210293052898441393802980043798884367057514079516414914508936299144766090890703252683745085728086869538217530467159766379638341202446579056214825515816406440562021661920167114112353863896711724931143555186993869222168069130105144399860351447273632428146632275849519730386604389288014652067825341965038518223210596697155679648380364830593754867375751036736772016196124912032015529278996914555384499536583505704680649813641675233059730574317071135589636237649966974733442725306215233433610821790077721315514434299690129994309211513329199382303605845811594103143954856192722018228447066342471885446550745755677399174988516975056607865474832768693318646377849150430422943565255885195678489296701600534124410859037422384593462772233819874950662952725243624421466366716488896871717935631014432791445995662267757337107292750803741401507619986090818358918794213716237018063457267806068221515366957265817084137921439898460640875429871314281384914479180558042748283467778881704515336012670156637407087983932630716528453030456207081552388495586506241310322967155685016079771119161751866368057013523350711816674220316656883654313715763479656318587632095477990952055206511299762344995741825250546147717530561410569036360954155836696666553324625845816031564833211770770079704569964060314234924329498359563112145316135113491894476864697816573444549667845900381086914356284037073307751935352551656131893676204100900082683943649158104792306590639112959430102179605942447131470402772735306704249496861835276440816427984027486991690845151293939758278879460201914643424783336539186420829209534354180495009562292996922367298931731634557003129043397817502591992386638537680091938653602084285765985395225730920015450936985855959925108453099854579383225653033174174329497318899770936860908107918561615360499646335051744318224425935527692353986889332273327215546783822453665955167635269212629576401422848656777401223767684329410456765458938642690926849203727672760465174962560163369031106063822891624026763489388049203992656566010953768125493640435475924375236109714438198409204518681225787923806785289887180257762007483788350781731336676775211532112716512407248540756746220196845083875030646249619013398814371842378888967898054031775193444746146469140680814117957572152503781011216794899211314814093290691865229064963756499570650063184774161660995210141639825600328371983959700857855916668825518400891967479464338308914518045235112670050210214332161671188919174731092744871405360873137449245068068383695840266328086340268952749968333902663114365801106038913159619316058866570507721147073990497612068116646484889535071505028761888038846135427475444083806845581323633240833652245015052302618725215547155536704371623510541782553128917455515083729763805181467610456597256286094118693961167247170850521807941567101336230819009044033378470448323643321484748733182782601791118679287124891249414250577823645466292564843055251022842838554070121406989763988391212654661701682429549797467167869626754944053057085398195956517860242302347757152979031154111348234375386618685775188400645541989138585320415262390162156983750902943327781845474229295230299747178418073292002905819130593948162300637893842082311994808400497720610444631255145896464528504122351055690711808270850257616007422009910408809461195676998158553171477135207903238073791543375839398689096104272602264263242877566795635134031290757005070838206464359010103703404507225505876501329116488337982836774665954714067672678597043507488166215844823296224799651462232483342711914799612601560067969372689206451227553571130507997557708905285038758018289615221965712197925595238400535318181233495572723689765248833941992822554624944259147975837644395571117717382148031424316731801567171438669738466773477609415244534318184754248834925363606827036477429420213779901893185633093798003378682624085348274476515732453386497683814635152547489958654177988541732008393330409583817125584703819828613945325320069975736194253206273134685133862892214128182195942827057533504009338797613294568353981594149342642916351761455801370186796997063288569109911477945395411627830450241686178822434252730972644812334259814209708336732118034978212083577714530327016142883265566867785924838033850171215718898878902517997721912351478687823749298470011090289838617783122369091492528288409387352582698536436273251379062020837639908953224825583327849751599022955273587329878689594602986199343811103790047997275792354855321938540911910652325645513115390390968013189642599231910354807954748063536029746194594039279666988020564650131325416126507008036309892860396130618061574772390218494916863309036103866162840317160074193192122493584996687665516627792369638821782436336482410321395784911893930984516388095381011377882893506492183874812455396250173325330718506589574040281742198166949397034595463943955190757394940301022863199435989705140032570749724917568357138187075715884594480301411016100375835095664073698465198396574095540748299487856828802397662156731560708636572255632044292865997440795108279714190674054837592755438421425380317926285107001457610279619995504991116908393824967329125164407011916938170565451520884580561885502837134343235657526503987176974224662705542625507697462550252897475794819977969035843741344221086892074071345825844030856737235509495195766949487410502334963706833104053578289205430001174395741848810075352360812612791765360746137579404421502350277173745580033234284675546347132996088766013881562989503595790263445441624702964126211808450387476768495892281151645220888431784195798830468169867979143105579655643480996160084029493866775913328265035910737459001400108971292962564178103706651016096865459142015232157730510280446253881612859759445277536021822446238504705717615951032473288720902391752921382190110423101135990669099500765641053078190380207520976348454810740736012310839234219254636949422848055007631470799783773912933785213332458688807804559313745218458330511044735581637450001738292606500065274736816615922567893584574201290832974812985758069698816994158049209583494385923222744900551711514928790110698797150666328306468133059971340417192349311516990816407555775403596792817400159073965109168094613997383804796825224107452409110690731686836963368141368674053166457942997276865440237547233502059712697232997437069698451899885090468251906976775564548136050893664399104485231208510143702356884576863377693869110427291908100714745909790801648641226710950143699330074581926185911381897596310854051143339493408925925700565283549581703561333662415932611667397321304131888395545256890738856923580799952857082521162786985350302331365522694881211515512110510027326537454440199259114048374068414195395975798635779296050377012384511934149067616790698923800631165905979069305535363849040956215167220883468471346807205178708049509858217539991714066545423329321105443527819887663290113909184944902887908785790582830816253989236718524303772098688238382750785747907439141635562768841515065090568166710049821789245170622697778335600664350913904565288030436222731557334729139175358276788218838342452241682802794846448022979049121840090955659221160247025369462717927428229365980077279983952536615359722288447639487249484779483769073384048519980678393855714554692889093852560488337787518419206315979032074996676849148822396726861958164601939779150118317346458391226157108223732019953760958944730027154104080669705577374615658097659322282287453032050793157873598110484062076786296209885479181934488718463739392221011226938838587773735020446484274762396127483520282010290433843403104615528174234528983621385723973601178172064841015508930076540452779277073211518311935396540414584755705617745448729667024522045514497040442970709529135427857647022986288875090010225431320634615894680321322606120045145829526901788215212829400156596688538325441398535061037844528222420174118403492323321851659773769432908579996441273435667674359961806347434056596713495003475742621254131829580149056286646823933739106269581613019973222254501299823917477900693254764697327919324484823035269524381100114850876447864321643026277231533038847201733475110817180122715492874145634965476846190712207848877437963645770868253907063294638029773748640397155314748275453709571347555430072671791169248182628446383570943805396801757776020972588832642762284959992485865910031035958574822534474807525532969468416454416700427494416482079735380774724850053653600115112054929699923139714702541785934667378231433672075307317445850072300656583938894448559596517988943742552689229963757576166287520269440510154094542218896599153322141806590109164251763998140325600621159431288211900680664615108351534168914800325023074280745957812590647729624910295521131096594055306041994471181869533912211298843026685295038027334125422828221648884150037593257727187306646544616662100616955721566702254334157633943873257675521292466090433206824134354769081227566100381662710809430234056847311998705358630907841138609906923206960910768584045350499696172422591523184019545027356321421816790086180543755327476225638551226451294097702372700389339223495388333007644589097978441850054489857857293976031032678002153291647009619283762578128625370778388944045562338049874273150468633960087651610681801620287996795110132145651843722663332140217480885753130262735722801431522527858149102695495576701673356808083715487716932287149225726446626331619807645628400962126714864431181884837679182592340517572064745804417140189439536813342367678874149980880920315560454210358648560377591714529847062005413778909803015491030582980190947821500606086461046964932326313692063111336212450249361189647183682981329516328165320179961991859068572362003954592902336669038107595671121740599799621822313222177542248852754614068358247620377464180823014285864002854917111337892482605492144078650395459226800579251434360410068544972919975162562737003541767113732972405650859668150136291949591678421118140869281853188860886919980720776686547370068473653416671330954885740687891367522324125040103501059217964434338554507021415253529054432155823623285289301483737692429234804308709352270923693944413401223102706124148584604076813645813978810530688171022093132312682018671719149663962259886973897167031919748274092701586315468947343935314786917413624175927737797631355618039061447515039505984379659104319893990263749933476153644973455050507672727751463004562211920644377199969365283959779757578840002646346710464399873185986867147484263290563573909850759234759846793454741830596898669425028114581347499108021112060575775025233900172100391465290334088731927467007141320073070439978728937185023721811686135415417876073092584266134063925736295516609864920488862970622413037301258145843018081363536659025948147174391797142769029163093274780870304430347959015632571611069994611575764625595076529248424001987203655765298899890239101413216262868233509996393168167460501393240840909793782430017779026263873483631828485796306967329360901196370813758029497440881086493442434979209409724058183300420801159711235320791893521621629491063041959912778730801884977541301541708962214497171878710023444610985376162419434153376165403140563196797803495690813434573968682192857506562847981569250309332596728171114164882443914145518773328473742392014686592753973331315617535866478454257952888275301489550651764184862033185670300941162851662227092710746221432254732945027692900406948995052642795974825889735843188171895375189994238397988054279827792892819644913273810499062350239512105413194917940991572356833653680505332166107166340145353947659317250506973251831875801120205897782283152630495946404933155452776474533507796236659350203097807024498917775388764502735999607526769000672231254138037499464239175913996507331523343325923605143086226157745483178292255381634849495525394763208957358621640124011886472313712476690108661138225155302196078251566516258485657906877590828255578860605395579089188512447353237409195135186195127347040773870310653382227486453873249317356314581226561630239909117925841692352348786060248643136222354755556249984316309074828822896616857298185986217230069162683406151153873654621379335889619638286158732533503173470161853517159698710186461177846336096656828951007052380160890523243431893417111575207676424957173436742787354044529421808967571650522388745722496335725999156159421168554618732152111084477411888373622518319813389803094196534846514806350691523174820596684878649332468276165325035787614216121201161153285486285361677413947719978690954521236901805719521446292183709201439152645944575094754804356509992359570111203387312783534197982124705473557025150497008527203778610576274965307350814021008124235060498613493867414719637109023760637208222283961097287567059021290464279847003113362413353521398249621628071068849086717870782203429862907284166884855753060302550429100348753692112581917343166026938869367287657255242403166067705783302667711188586005454364602009508737363322236050365101762949398172072377922154923349045266375197534030721924704975964773473159995147276715311059709176131031074386697837979461351021700067984659080523664777942890057857203295290796123563066525020669063667851274649589015392811647565170241729294380893723241143726695368481939800471412274951048135722740553762842736157100132789454991661348468705697092261629659331598725294686569249197509697717215226962169755914404116243884062900443416402316591808175662439805778500846634712933227434624920338324484593361779074242752768470203278782410720019549224402573730911364204531468329589953178943233919162366098125554906763105929331654332152825637733895654116985080573018497616763044833261897557059272063187541300210849125903990032929516654416726098297921784623415624526274846076074746444548243814995972666842092277333352489789946107069961249084236979227545421670049747484304185211880204509814517839070924560907034466676052512767451895722627710794097394765666371271585160695566065365418306684195217361094292834134593807504463285487833440040812959561258051515674337215443066774082519944774295104952396199322287465748635843682330458157848895065067893889711481601333290857731353474579661770371633492731665221863478185041471440959482074212127674891670611217314761888035697103600421597900937254793718929267525200466255848736047930434042680777444098213966475665203374295333751063425946084660641499846923834240425464352574758587042458066399476094058124435081264235094870591705524806875885949170289317013673598628263801050653252804784758191717431786549615138546221763176952609418725813727520112001900949280151594601956789578607388709312375591691832376129422873770964369807401822368526564900350455099037188845102227608235419868200863113798309634801922423561309047799166579313668700250865362755044551861517998175261971647280470201882611361627331732593078729390041642532285633358850254385880502993404726585832769305018537723811745814508920800998463207066183729177014411796406026974179996524708195483740079184792130057934239913792987039707422223890078112727573831640890158331825521180293398695184992288824766711413610194371306426381862087006216132560031790300390844311287063829363082986946955891798156703140380643249551838588502449595200247621141698061370976609457317390442396910596058885357761693013783097832196164654514841830163628952478011022963709222828926865335895743075682312058120963920754677432457689287159648924440077777429346027466304934659875325137912960268580545259573793492732983922120193326806120868104631340013418954261232012143979627683279783105124905686518155908676136666108809772166618697641170975011619930420727441996147954545899139372315159648165097989941221873575700690323936033104325570872300187703809696644175860302376463677951969829789358912669493795098292594008920436453224428727919775938343757795674610733659589907966243975940778170188665971614152860981556018881038812706440487308033797320856618568584237156109283541343920047963919716990674339622798116843568769283483351298698075258091947618179999919599006632604369465812751358228653961794216460600880908931779271210273838852803954249793060137304000059827467664058051986894329173060468084678685479352897710990121729231246620339860362966638336695568197507519274604694022270358284124683395240299356412934774324322351029038181848600060393439060581019813412938828124115424041077343727261481051925312870169064855621859016959338616888738196148387967437992039499008062442326228279737350996191554449447821933380456479779461439201888190509266500171502514258424251271155757545278824480262098597106542466003064659974730781706813918590986662954126755740286759693880330830259604756607859611208272962501337134364221273830354064643709585678795597232608537197850715478206890396855982666433316590555772917641533739018099924859632324278289154658261847561154761878714282359943305137913648651413603436800604439078793081096625743580061142150244616505856027814955230854046824484502538661834985174360204055702145191355841515332084325811015861501928498975215337354910863567103509802700972769854661646381034365338613242599411240922765288591999483292781505508595815346501596776800407880451458803798737873337775333399589619536320467426029165800095283361138765071090263315504223148702887878793558641260677847338873545169171192132237999240806773046345076204546763033039181576354646354668733121566747499986886548428773292767751029597949457931015403288775213197844502107347205880949587059076340044684465300776873299207831086511807640315177260642182815369052847976740397945846297417304281456858470218873293136308043211058070544466131902967163830979342741353650975392973941800808075822435423304491509641531029379026677784255401788288477515600174474908201170815514200526975035622258174327313294580757808863224842558791201701699154323825444143113807748968607447862669637662887515439517792028212700394152370615079786523301233135314414596063149553954223651793611555799611169519963128371516930339020253622243207448880920442052433876010231345243310300570130471739311086211833690449981042066323256726554053530031890346319750192259407264136120362649754482627324514541470354714373441571251588734954539063839043733295421145570083910516985371095580748335566454533057596436783824545578706590984840615652684757673035760856895008311229079500204491709422703452937330562818877167468744276180792767181826862914814699620841968122437351773518491560191603554847041855736275329621582621371787237369147222979831145295768259039668558472329095844334864862104463567193849624986747829716864041030905439591786328761041968932837378937683917248950076479549187521437032596120289475208077195649082338137391887489761586753227613878543241429674950272198942806486937388555285740959759044094838739667347030944042401791060949226232457653713448785424133949729368790260698254639667384850521662888915427364453233074352927358208653480524044115522378582927120915354173220087539394636237503218888564763591084972567423048023049455842474246762612369621354719192959441825041526553118204787069916929316270208740012027478205915965629268872013546707714389255122375557736405420348081488626669075300313884599530832538940620038157164213560186291477009146729213322645206799446863717435624620509691451151046119954855913448824749704433544322336858986306381395044329403862606012452698826612136068249477070482960047838891328577117541654262265772645835755784443293871221703439431928324395363818534085137017520512084341619424590436541411129990475251744597702225716952070028280691901263560509631620109481578846772728566899467815495773315471667404294213363820379999834128706437851510742049305369971582714395447719226191119139991251298401678681303628655264912189678580418642325005458895592149292544082835059486296739416434339569384918195447493839646028255589407842277037446808713846434518735303867139321861008316755278184349921134162305545585143213002082124561584951855334373817856328273360102580101441085162356375395643393673119820395909850276237453201850985455284969537147481486308412701763443624824636518019501334086665403290080609004772634922006053492457885890243375160488644878518090595452282815348037762704637598020705881589421455076101694427028800751703315872794873231134670075780651388495754177780415498269180230340989527728561219331351828698926491881310843587073593773687399175477587924241675738541294878431590293791041520548153048126192448578772590280113791622422658087240923647829686932016083875846904591006151433313163404897982475956181525868556846515460611439886897930852352218699922827158404611001199080872486893805563621172362937553115190051415059897119889148283991719414824509687388816572064049571730372764149934112831073021240434530845039060577685778887061798751682101666874392705596176315534119020751259538411174021233880203143064194667666991040916129553521903933726079108957835736105510027543955290066092474789678868474149641343850437856676335521877933777046641994674320011234751506509031865820788738558556766882286032032991907122005477096606960561135777932430239667215452584764771220309703341609592250849089603264670975689484079750335904180219305768678743587640127483681605234423027344368622959030890534358968877688952537414819517625741742149332080714526622044550082468175592733849952742176972854154496204091693984120983345034454254081789423073098972707894598001859685760570497713243917808877428222474597739008930675263125350060350762467721643455834770814804979835384620966624038573621528799850806412467345908300060728725284420969228002327350266032678958474147866717556556887128567046455061218326786124413617852378336709544797036974304577072960016235055976599744420228955798333841127348146882924675981995078064448411235403366139384444244712460505261166244386888434064162248481969571637038983074110065684251123560514376308506228997556096487181595065586032460077931007253287818441115707140645640480390999596762479882800189894426317771025978830904103862153896172689023049468186839658644193344672976475094486650441018707468683566151686485013849538167960490801874536578415798188260557688545207276800568132787950878628949658758409999631384201995862388412490348250040487466890260892386287260929953362940349382067353988044241265659795984914317460114169241779720673201410554174341511957339232506465281743362646906873240012326496564621497293311358418736932517384807056830964253437778172292738545846734265491950487677537533641178544431740663574423492773945782193233816221263135118559582419299477094331342006682657050722821713507295644587882786038738842296919305167735389781044627550704136885429275589513082723608723207328716611703390523810101668325758752880957369366498196474288743500988183048556463577852018188725074126153088123688280743042579227703831009661307387304888973853653185594022695706961421129204225549760193843720849446475256795044946677836238868579525521288617977724325054337997299255343339393398908016619749977975000033732711612986962046068016368785622378062372110406113966403395796988293553462301132593489606180966593486130940866537684699452475683124174965422571938938440413141981166824702779768146193862669294224787444284466655388370762276456213164974548258798597826866156957785349130444066999136458042164744939700685742817283170980164919266504823577079234056356877706527614791887976971456864040793072434451775535957565846757159787266967643904622590765973152613679273604524963317711701488746347144716266593573532162750959366642025723687740320029632140523146834268990497426624722091846869903912972304274038228462686299596374235300622776758681443634517753446413536096921025494681300568014002134016895457729744218572281688919830539065244798839231836667591871191766392411659216693078591016052036780085628437551015543944433728248566888952171226994144989294047326944014435256599276113888416686888337214976252695731011466555306388821853265231828548518852494890893465137977703926823535633696744136280151264000784813905274133248452139601383200802617061901743580772193339385229558265781275138086803577804212530068036551195256138683881361779647740144119131130242845745826511266177705314710362991077444063219234834440652438602622762552203461805783282403983832049845775204062851437234707850397375104676507732137975535052706866640881085428829167099365514463253736429256459522578045781495528510959288428719116050919623057207256079971590929400839697221010805461095670932075397850721578184779268603475878421781901449016846886794434351707184356138490572547567106978452446728078185832080217668213952608612327080904593435585034168847923788219521491470560546224890575833549784493796536638604526580321081680636069772182616683371133590935288527556393912957736141915256293278833037230053945062544160098021827539127479366986311823803969080260599021023522434588538370865703929738788236873619964127312424046321930568494684004949695165955346452206800512828239313447273558841597478173480467073527370102168973535248567227158370639485647198729766573175820004708529615366337864914055715005894862648767185463730046139940890364994145338259897097612437889832395932642667039018243983138649694889622060826042585292184195087379814148300001283129170701298659966772684208042585847406480939622115606978876091009912882233318867057826616734220010542625012287869755093176307754789873845904730900955884295705580004306087453185547284982773717320159486640779521016180707265982102880842909971562670138209820966209339183837529376948641303990171821721744526587980658669686908115057245953855355274653799796405081058972204159005183669738041939293242252128767973416369267802297789314465967339769277558178186938528629116959057551037690639141684768264803093318722325993699983817243970210526069730516066890250624566094508192378374418468067612219988630604681248995597317231761457130135178720742982187083197803332881885785502786110397022692044165794270774066635331727362176553170021846342048629047798821360926919732213025621554176520748900488816437470940427266258808788423904778960863915445827911468411202114133671681685553455301150338808016861945228300177070602890477830641976908297063184668437466702865437257702641778573546023763033274383051339855796928420814290186858992662352973473843518414669461577265744890959802490391949385039657284818271178314033225649904521884653352510767827281001319394824108873816764964539754114597390822892082596974726039545116428045159359298088879959431022054841908915079100653632610486705884934662065294622575774901489811924115039648036457763992326074439027185005685438159208229075416049738925804962097066459126337246321780889045641679447758865162998685495655977919535819713280210997153468369989785840380024309711610025092955033241955177756243931164025047882435905294002481866317546128432393523747163762500851108445714533956505487346891556549138791371896255961203112747353302139552130316105524411685001911909178510492491733516507383629609415062889596134416780902328253804714574371733648897851028804093787261200042516788682878776227258353387603672667361910359354766911276741492636458798806203204300348528046202872307557337502944854083077147920630373726597394921413046570377658745350548445097994365814011373555883491126974499569104427629135353955517921702333047392550520281509024975539955662406316410185585462703573424689840793657275933185198841895427745616375454781715446882273319691096060085769412424268779645424482174707354168277835224923167840906437527205152699790545564329633641816470445344142426152680944184155918741260878746429579863728837573487705889370341353651957476987094072224247875650235630917717003944342702486333502923419387069712807626456396982371854021029878449113686890646402271631425119227818227148937175201224371796709367041041227943861462460509588686730616376563445908679098947833908630754732926708914220383095586378988865995990654260231633025739821407687158876444169734942423261927120822632045981495031458887629728676016826985651535386005922656620064234652389701756991550734357628003656075487410340058753651187151520553758396095810742804412495057728216628327897966496431306839177516219700387624287776448502262230149055228222933940279700641422082016189869306599933978267615976971605789144498411840512721561323332962366991102011680100989395573967544968400509928496124218100414280727890967900935527412562028057569259830750109214382924699006038369651876460534429451528468530963101209725339043883833682495688981890954778531759359560270429857601525250060877535459992535606008733480119958056527398645394359308668453468792227141520292977861939935221172100125254383174965230881507898704614857974009469300135584165055063853277901473161830293814081978515008913750865741518967249128178139239379813562308199288372799911395758824753291726521709797382413431319039531031513401131074885590916123118495041427646285363187938325802028077056193493150159329761419099288938023276451754330983963848125392462540786173768077236717582497149966590426900787317706167544460966956035972688375347043362711765194432139116748312615296608373030533322938918194476736169258805249408730775681723722818075306910756376792921861642291704788292865094131565338907159664903920547164917547791411480950920004331169749602145942402133809673518777336275717687897383068414070403016003320598403445095285904601807750264552227422944395877674447828886963750655560892108348539787438994064852841239943280103930651073561099569299978206304466997175278445517175990519253816623706267722445948744500852709444832258790705963386773064752641756499368624458306274543902744679820281985858653327223801424608593446838206684340275512224845493420663760070596635928698701614033988953540461320981680572296273083849846809306076257528131591741131917508481089888025721896096817159613213047697812496024653775809302566298392345881717091006912085806530220543295247418508288488249560532774745726679061421754685047416156908790879706128228612870123857489218151140305428394599573546398315095931537259246878619774487959857250467767452840979286687460082981699828188238561888638707361507600075606570486404992106586430106464815787278162705681950030385956975848428460189125326160318503625245913577540806341037162970715661924018336237902742674445619130655248388115523305267233096196053232274229152400800390819540355686450610437294884153076511718451106374558419320256847764382841853850013843179423475452543662043258894917301162972555302486572969880859938387859129853324875108514769022406415240596986448100509112943099281123563258919744584631968803417238491258877834079227555471074306958478393722797900718529668496485487098190363726092157989572670155085307110642901768356569955608278238809908885316745545185317521593787719571700180145874774092958159784891325579880216961418018913315925450623641178382501184701951046191627087782968212917298412433591290174296466759445313564984936355924239680894207752808982164483335460541554803380141409432542401713320223250043668733505046449205185022157382633754199903855654252563833936542860716969255530270132972386571220687887252630153301684069617189574824480841851813931911753748923527800185143473628374582464358396192010951914847420120859055566211086129281482735955518377305524930863191130886420477373452934482099682753279952452099641992268657388588289862843801195373762086136803441042884622412013310363749691561656891471440409427124350931010160984833896359161824240127796538718729010056255893877508129283852959813777894199555272723826371445577800885510777141688121260785748794849894504621076100472727894509934737630789643130144458961787159920098248792476208733068642216182882817765115730775676984508633982057787276650885871378710489400534648305287793369155873346221727200011574083574267910693929986991500498646964365465103991851047803422034369951427100683155143915217188898700210728626354579930675454001992622443172227684689404732901329658717330568851938258986627477904078695933124233364038170199524330899714084419615813951151993644789147130746384893399025077446050098858232031721692058048976601789292815455518110067193761052266310153842985131749812932456512717425434379479114087333878447842287689889354061452828257625857986023111916999459454049886425021514049502317956715341080885349392021395707115211904125297499100517925961579224086587240586322097374332839181817209138640779801957249919744604975680108439943779073337849157146245253316674267015560146874150166740386542135000137333990791223965298392735868339974367803403642039045549627998351489451384498410532851874658975823850067361428806230396500634777042589863102430355279014821770105838931696482405684189580621039056984611106333828420781683579888888408900292734128965450988133361396054037645498578374069311380668020094919181076317911171640739994949607963356444204475038632252304015519501780465630628513777704554545736475838835092918226416160792850744207392585351657145694114846126566488372209453415950520380950915214688370886452453400277738499131719478703406347805170842003894308819868504518827715454327657516055898073845505251691560250348419116150528198782196089360548814937197319177681178581633122424556616213063328234578266805091124287411890647775760575636880997443392340355929093376077652751974672949309627876125914236134556866277307822515296445679048858114296496547224813404467263616803549299250919394769110591167804405207171674849497726053511912768151109617885534769993184004614565406798631912943682556663110742476328752053607449621925684852945885454643595984963095381553019456747362291947755079972586542833358587996201464445285173941449596097992311440367868164759780495628368754185410120618679725725058329399554308957174098849300115573929611607008923212638780146655947189987026302425614340055933325177387864074473044970123689092242413793383083117902849578576364745006929340284451532703424269540682672513891696664417203835578555003176901513225394177806516026988764026882593494005006587584567812727245201638125986527834720490755504294253403863623019434658614140777951092125543781222253086867401874864934762933719891268750171745841552443746029803482325549425082942294633414531057884002798452839190578307766228360175291223942774953806216369923450338396750068629693179012871157362032405155911543576839997337237336297532060694469750329878498646492525337739795783590635117985970007407325750649558187250696954297364426990404292673257804151325373331794047904571644311919114703053614750133388247558753622855560422588742572250660757569486533417727657524150142814021709142572261115964558414114929255228096701496350174884437025662809408455246071905001270279875673949380777094782418933539456285766039565778690153229860291437868796108390490311752375267094580237049665217807242492181459689206209746700032875236839517526374622967939472376209310952488237597769018775834073352394916222729965728672951646128719929173884224480450184690972733668672250417305537375872528704191803917341637142926146967836350912520342961399746395628481849890400723300336860417888421602011412064559287871369184913962530079914358706571482976840494624617861110520041451486962012331369768201148976088715743041741823706569094383814674048229305058727118344195877500950544951872959696482181819072233062359675675118926340966783917624430331502194048775314139708578585393722563899559874367959657077108937496974574498220840791006622441843223109874768927763584228484308091913777100235500961984422279730820243950593844196072563826739485308390377551332290820449777489339903833265475999783305683122975317267007044709172800089685552595181224017670283895602033951291932239853836529244523577356957254721662856344560859895351761629722551666356757683161333889641995724378443489481028362605331965015019810798292183873723622044622354102301690338216901943797932076142124937635292384182814438224480565954978602090120814748510894439980285911855137111193652942222996916773440271435771710324517278897232580246828207235898942975711044991954243979838034913842014613263892037262285123361844693395705229607741318676138670662741329261333943994226273906070140422101994204805926884916585076454708319227184534955421889530441303345967281861125559838077367747835208749461901273810707744688973422713303641439779622071819530535875546444872888667836263885097227241820526898391098973227420522530425880234661148984477827102263588069893968399162411098510941349291542069977224280939309264532831399876739101894428930561395554901575195551019656247839972109188017629600967087320659030112970801760306692918563007495122964174840876390094267267361094087149728515813731471116324505073633440072177425852495975014524937447505678020223129865168831910280832665569298086867756743646457652194017252731768488043387305754654825091989530926484204648728051263828580698708236228962842735234799526528108761873068187991166962775908227291273004219766254536602020483352220929945891359703269556315494269900856585474848499406281175211606022076773585827350372863501342647203556033564124913612792552599308983906488296117214186969079038597216532469470879350301596138094953877519124276365156895255983618979835090611487576245580387123729125507468543196852510028198377198762657359878818313760245094535203616094075404017580638262476414695464803363052590836512145120696875680555085457994745170975091600030174597303257578070658661956648307716760818588075786064253942259903532394276117480734337660325007991528945851573205290680695413167050915019487680110006709922986519910498948153063643354735473184429188426174457323905438936842682199038905722982914484517552478749357785605333708775087734356523639732716214805476782674732458296300306981608029824477024898446645270221250916844195631945944870247903583063532660581042129846971347212375192652610725267412135846397604078357823633620657128598674200354782475999480397734232399428795549769354890616091691582656731142518985553857628766359917576149036332501676734339888833043846527461717607997515849167861104073595217005306089884575405421987894329839994120146278130727592261673583591682102235155479392396181551044676608048438956740164039953967163490588265290160488160564007109043748010257542110926759826509237526694925010160034384294767813106486669796938371876144445720921102521458682093304876599565219531593654929847758994990544360631950972141181116580255564759025588920857793290541256415851477989238753105559899214253307051735310159326535818233599505935063514639409708013555656096160649540444992352702398165710927112589223774113347658955458879661003807780416804631302742552447747087036606688388231670518057759901912968413203859530576861713000838444595909838634888894147632210032792206093680071756185855704921825706892634938490724220357199398497466191648414235758223687605581919299266699173174430482708321518835098611784941582267718466194732903960420360812413250959316815882709363818594636169238462559799277862600215539155367859383131737483843246468964321117229980205026139172827743144256496684955131005218519366493570789821568921093637699701334816535127258513296656056848023985740494969830679067961227400731533924288577135755463036796741562461756773791164235533884704658081866441773165599252452556885587230494894651924315511211414964389318990293064436858273706384031007449279866152288947867075076180000505915890984391878049757472464156575542926174434247547753882014905654155133493261900237966642489856065528067371523253344522841229867549571967920255067595438528179638120532987982317589954714144236543777798271678688131189109676854123424172681612204839660319515454473587879550245718579773872165397533946858143870794922100805333331317256695381768891585702896721622601741791357803267510179857501267152855470382976622752395972980291252425827347944893093779222261871215936688587171448258259479879068310444151242078164900403981993889429441735173484412468976856354556075771602386906248575985930505180661187120359187163794280091241052847035668782275590473345609815786685867505828686259004085873262608042347546561907027777474766662229938539124778174795744786645989974823893161396156253973767468702090806034018325597162794134172692146947730049471813282906039102491869645860282780525590860783379199157408131443405845305767325884522577211512985141297890375913619154140947791606795117326288270824794013649390608974144916952848548456162364425423837537077180187106051208949204118028423619703061618563381953624662303107689515242159257393247313805100594780413756523528657854174759628953655016238047188787143075309418603031785116734453932400617651052085378668134702220797276662449667649127026034891902532569286443595605433484396574004827148770018373528825735439746674345502756953730116554470288712783222280949497042641833160285803375674435930584426300137008661893676028417633095171574011109346226641072214598282972694534725856484884613391768085289032264484763668593493627239869139212080180826012048324815856448187076989004765326114151219678498793636863906873936301709962468634610964725251003991571971825293679850398322775982461550723529625904770521138587062106975105965820776968838562527783516360500664787897940545277276654700149273293404080939794526690909282251560921755009190132197151579556813092732311381392152735024840236443541069930391391933845032926811361188431851176231798029124430974017494214610673729020729850716642090927099091035946599172533144010274518119088881103716217938044445287480288444521263038866562960576545834621428646531702381153574238355844700867020714186519108699494441551540159502343968511249202980053891784197881079843089671426598263770179750153788103737728405764330219919796171372839827312335080538606662288053735438068092262873530446416202497242612627208978779158309741076977139397123926558746517694356019837149210809499610925444888756475055627414893984488007722171183567083664332936437234694701791658337826930722097681359998360384981097543969854938552439053058284513002152235404974566067511472834445344242121504405222557011542844219095329760767441574540022229146205675316919863894534141717532147342602785458776636667296506225176053082571684805967594501882495211245249160561331677950492638660917665120703828595259784844123602501175498706067158245739993523323112413625243275490081696983797578853166207919021543521662702666840315104176255892509981703490910698323958676541166534953600963426483456386564311603740684991700527708224701334110629108032375958360606696876315428779770178804207351633061102592072859852037944053823684747237776249435016175810599987243491123802884909706535525451074437772947553147537669193051698183326086613391679190796752884464637113478102593796286279609911893010550224735141819914348501246921489505559278798871194932308415547748203276406794922414366490635146234765380504738577109341825379871223270477020095977595561069867413953292292681464457437263504264710101847981788837035572139519586695498398563687148300005971853907989282967861942700414029322165622578711924329076789852529839592449218544980073704868049731148327268253362239203623423836501716881385362595255634792236620848885541436997206320581471874729032443223609082172867512695255926069653757764027496404875418971992786428959594548531689834161479108145796319130334391163238571067037548953332842972867394859202151918918464983627517086168051691183638999599927236899000837428486439297953768860506532047574336881997000723287027793872094194998440419852358451884611334633376105655105724523683524350712570230799921064571229096263523152459126303541470680579596668680823943694795525856109683144246050633094362826724266649380503834997050803828157409144033790777542942081627583527820461066850209890040545840689157049532533462506888169556999653384009617077208154517956427792958380310691630347184151952509348373112732543123747240727758968219786782537661100900650840193677135174322950089832172092871165126075425240524590524823120046498211838894356364646746754640317916540986397638159851722848145359002381406897005222361461146491125025387079387909773417593250847028640140268153119220509730840394536047213592878596142332654232966830104825450307223013962779223955975979188170833948308627448585249169152534286639184712509430221638352456689290355049218977678681710002037595006557491906958783658680884494627532288286055548074803473613780308501538439745889353383492935676503473745771433727706337371046350973148261780711973287479406162677555356771186219290042071600944249222044676413460901270042605785276292110918943520388372226147534544957738523658688367995561737438043150183007919902539006554279222441899341873855929605829711543446354927937714547147389103738839272867004796587198833167075945001181447192779628238438128306011275144602532240613228371515746234868813091176414495612829726291011420312431010154100168153646991964693500254656228464148782325569811626345768505005830078398322439714425293869283812071996479803229578338957302955745434702724946499782131974366337739346553713440719386588445653168414829843932764314883784063509189445586526377776226932897702216298697904158542354411956793031015626050966120089839759798280661211056537751877987214056696096427394060383017933393501449133850981427861073730539133783153978606608643126273126605336582709838794767974064051082080931470469254523100322095296384529700878736674695595446283153827895351794607370745487953840123028722428937181452255726770816116122377082476523922575996259389376802752695519081322026197741324209846938805804079563586251327771540238473963996559657636272446286358672582008328985154868404930696488545142342517741376605224888011343665851708098809471325230924133253181700930345262102189291744505255083454190062932517467445225059315334459435140120690911600576309050542111494352602955243689350376301422779465020525934621534112760386970807450399365723522426384151381437407271769865023159825560808099973136065993332057633714900077694384180855261851260578341264759732508147010399031450250257236622115709371660935723340962495250554028148466779404668756323463871331542290478232044764399953733467622700659298284602033992436349968777484068036332011765968060395499630578522187233622040908258774137339379623709520640543455228804207687135865645632949075932227213054544705335380499712326732528331478163730221240622453165240166317534022425892577662207072512457484604421316584571794500643967470721662751824423761259000424747402348317119901139998648331691819123859067642644038451086328563415125217607603210372716509438810294181256015093116937497911213781629647682574232564637460742853170067914263847948020932272516463587732460962874241626959105371292052937847951627672095752886897221814517833027508199079167102799434638298882444324301850776925945423901143410081484603616659133621451073551612881935295939723107036475301968096059173452519947431033708316347765618413140982562189182980102236510424642872722404502654418975163516064638187528069832046039214903774322065609253068683868919757359244874558739049153328087155460916324891280983846820589190981298232540536540148112737146895816374113826991107937567517457095178761899822221717843556950562605804121432500135761150014088552042738496907415276805377176432237195048133739262351509453841707678695206693610498919231258559176944571795075062641522223338493065262403698005854404034927561437078094238049177026499721313199682530899080050907002577708695852955236051146098269966658404770210929014982728059959137608023579132794921211935092061038369032641811423281390332545647067263076226119081502512986549061613915848816464609588618063021328171810212707718149775480378481241475602071682386514111542023959223902755035451444476722182488429868113383675434956657151509487583508491578937602166015429490716319738111856679640013076167396187367284960655254408661164180127761514535937131156607878985988360074659873641734689341154877694033241183335789629090718179416941087357291963438753598382754512668499613086688000282518555021217896000233120903483937696482438141594667458961454210566963655803044506346690806845635474677458062356312596094881170249513167400544752091675889679793431871109227304887755940128447407075518168541255671651293905992748075173151194976924105750647322948540128937489988766430259930225003196586463999624866615141622213196206542501415695288272789679218651949892295155973507042148632747082776588697202632102911486442136976429577305081635267661942250154634100031622257555371909935736509304472861869435709399748858144065527386783510652720381121402365106347319600382754768283882766020902705614608618689210692962725740731279088900316786350406647659678447484407118881399855070557571779685793421714037885630408276571487287976770510376036463700314490908637704794642903069275140818441611821546339194261163324521526217874262138421201045192244062418387224729533804856516368646884972699831735566006730560617476353015496477414611824602545829666107839501626484446146014036833697950796831957889981950355415392903006997445568734118769761708495129617412812728747365867224080524570570416289558138433178088225000816541581135202116926423670176005973337153047888084886619369709719323340729526255509444292436415701360068821288006024511974610686904324462874977418916299771777779163410018227161768856286095961593494013478681668329440832490121732251450454009097488675212255256253760563372267577331510147005909689803779520533058028797735594700628663645634442577736282954883825192372380026892874133871640445881224617646927425347125280765249867589704618904403382736885947303924620935453339267447282733564793016488283151354438243224272043656811511315353140266715386874716458473823343402792059564073822425365761104580362231648844698994438631143753719940848368235860662674028031586211018059984196439409245550786458518393649085869075184895948327649281495968544438648787684944191446240299653924557904867773157383550343547608952898430871850045999824394414266257637161382838622465980251833907513993014283558891917971034089114320662956252165586720698981351811046564407994959569412724341974693668683541813588269803275501697320838972052503187718838540181746319587752598699010000292595616929260604871234572980824675898029775232658808886484818500031758870456199472992690298626470085886274998957068956214238296381824698901844421306001031260031553902434954757646481878052569428896049076512123327545948625003055272824880062261217363498188859572619337147041207124773380882385014632785324475240535282812393760328681689129659051085249046348281183437214171504711785564536414567984337232919682517367218746503965702856026773401934478834705663759553747799087093234083511394596124708052485616899018751737476692856467483844111942803750161259321790623834669643710498805427413299954468748170615882151288029823304426703497507270688245677479731085903504745386757909007008532299110893177998720369646522016831045704793092604846501898733481394160997900631696007438923641488487981315984063763826129103620843825004480033476075565622255668929268091773358004308128077566906162747693472696963164658224865542736854865936870262497028928585136939131530086800522167891593490117600861443055458874200764152426817373197201162493342717638412691262354955429124057248716557743683144165561155053385262834994747330135141605516833382871973088019858274603035916138340468257674023834453175116987040179317328605869384715721985971934205977688454917128140037004951590771880776620606043030258700237440230116981543614763655063004745952080487522828402555557363963545459098752753532952802022904751204340106243915894854968746527046074914287900694483662313667574491792855665595993234088493588684913017698714056825389881198959450450864053097689081031676159067029162517000842668133241474188626497171304149952848787502983370314722952045479954548239316551477579309134292048612844112182547859931473527394255719829929679009043504269758295806475798727223000438255841767108899315092439831190451248768743687622219185057814096867377040118800657709898135647490160690765606324437947165507328561836610026992397549766686073550371189256212557869930595377020166040886519703371367689031657447055117553305175237410773600206858201936281135520654122531360261100286103720249721730185591864011250573958837117248125254162905928704734780436831994298856683182523455693979747593577449113064635720669610636908944109253906991460004264928604071543450218454654252412596754251920475804513228368724273809676321463120848681382276294199262752644717358381059649685630537821212785735126066629549175803698852600416518900866872714200934503156282788265331981988379657517054770706958478642011800150700759516891991726432564642033380671677906393494693346585010995353173487770763818218939996095675523051766589174294159722746156506137442163053367169946743492716016878643608855292488948555311432712676336207747219684182363846060457377733986317993253390007348783400835646941893439030139612357953390649692872908777638321433917363844204217422276633899379303816325782507150531989063582986323722159535485899615898915848453058965679803639624038906483867397703871321339093228986776494809824742211637216294185353177992944282238309730294668943871163043622143662970329708822847231226694951021753079474440602914386415752032427582825305646864176852953710012269107935448699899670923834761785405085508419704196225084288523160281646161678183023605480902591039854421325701968115396486147771613830801952031095506962687761086033826645516425489463568984080371573531463288419843178671232962353662501721728721889414842938193962270358814727172268853268377182730161724319899759262437083184714747363320278648655453979297387628054463045455267367462648078415592981300757897383331000653065649481602396486628538924950028105694685594907312759524199577798865389462747648173121647100192461908637837276161280219332946869419251531689006767518398175513871486822166791246281638027211407810595534284046255205835684180037887974998012755836237853035311655661631622334933403988519197397491254913545280278434802888723319234467958870962017292751445258143121135905955544717698204991795853466753662314495136699716958627688685721045809915931454349022378347693491850259728951029383069796283024870586454112725234732510433828238428010545335059520563877239723897778467399871380646194560877997513581346949800555090200322605976640381912313244291321060676411109439409236074071461264490916739056299016131940305990577306769485526099487498356876070099616391410462263390841764243515984276298856465130538743748275975527888577690505718977238014451102371147787870223358420375447148641638133972065404147623779312095132881313125842107055353663347611518156665870308779540445727406820845073772168820943657167170559693172271071128031283848774220735736887979825550695444899141286869409652817192704212778887519482662523551839160037578949620903758958804673716498147655368204912435128092444942325930817868866245805997816169959160687092338357380838466107162384569853151759062479590116434978552806783911121492887249563308368249206767535354861891541395782034307871636779699091020336354554845563039404061883888387265830570073096268133877624301259328336121936990751515077835992294830481475402031290869026566772556882242559780610394505207081496883235570210510301159199049765419911050246211469668960633927968088149369600011733343529421478681658255789995997192040609491734537214052924758738220849217157953116089754526743648126530575693410815713019459763814006867620040210505721460162481446799597624861182234571523649892757630862623206992145113074888675422652506933014596069645931997851900270575275397693091707651195402637402244214332985074154196501466252571351490326325945550944150437518131293354494153465456861802435834766285944427992344292995277741191679671001464073873174787147448822812961981118583398289494972285337001108865234438327905979036841421071978698413250440204771566476935757996254370149208279951889369542272393725902274005969273009450781782363708342362489279414529681968335682447829708709351201139858701487291066091266473206082611256445154017603357006708452766369535673317907672378564113662318477016979091541318294468645805353657435970252017578948543471774647143632229556096707700737044820092574506960761136659339363032951208361325823002385471476662470084505067915287242921561719458593359727893338122441050563070198425785281009014685590604086481847454741646218770449174142431844705054386351457092150753728150588464438604623704562342053318655003758795903231285895646051804383853996008028593683151710249126804181837924115948128446485122722648286835752447486406788413509123857417024031190936023518280353800365966509078099564391753842201456086189711465937310774156897771315476025225702612839848108952144597850945889944316784011934774316686656287570661991142094657316999430924479176670467061176674688911675897257376393708209698303379204424688368487129080155423756694919535578894866381198236618628696760033403267760931340370129642696356699774045863424439961227228270016227818898869136622723747969416237583808894387397381724490585861772096600162121151456966055117225349945156826548826835098054871037141580573505051453116334122776864067296540059515257112925025393462323696772533376757537812492838216307442436913081892284273354984919356475441240220816803554711638278902927502764012886656514354902813214140436744323859421906652915197644742323286804793688500236015465795531143303252480029989009441296882706271827855488555097214651011760020064453103528018221751535622189117247570876744803583066974562646550963039590804560422213634129053636552799373467237432160565537156549653864826103619679840453767284208186686207336713903638526630704776281450852664196270448480164201027520239984381753101996756400340516793422807197810727435291987792834296119860794407260673283723758289247247345208302852828900723310405842691779244230843183227222249412656425283000587431308301580447187974358892649366364455286700034917621570043795280212566258321965028861749026854559690006867117824552671323006260139444276032587634357933244847373987792215131517452608185814294938877911471192928209772891442517966861866435100865225739219212712193828719712223667248677009590636097439286957679797754404252681428368545792619608184087130263538082676809553127344392591133431367978523960341137916624371439595811796093322642720495050869977308691868824437199393568531914366396257371006401572927642076917259882487996447400220918936429390771337006156114015657460754316498417114705164728433860903852224268982963288618066690475260869512752321315952344616381401480952973663460694399118441543242196854355220267797494568828908939550803411813895749254212520210740539043928764378872181916626439696033269451318291279384682402844386533106141624218207455846666597036974724176090776542054580492112160612649065682817076239390449320460510539634468313332432876993885286801443533683239828371092832897202928515172831802956781024367578671168013204507963664365484127773431504703792719631020717492001618466820893787286671208086963933137336821713958374248007200087892166592156459563926772431705783070211648875725979204691863569421036077618930186414541495266496797639277393520728158204273847600712418717244730313958300997109815505525855974991011552125662094739407921724698831924267978728125269577662116045686685613917954998718134385084414974515042966497317200395019668681065092399480682814867635217914669949578325176710126076900006958491052092834897412722256674813972901777547453345224465815240042323895467364358677412807374367458629423887529623665973323337950530660546937515764358135731713434451407886096596924230352256333960003975095534771571982431620399317971380139097532629101666238769189072875759776043663571870176946540138935224043797219450310163018103708225095475144463234117525822091850596072286601822584943792154665896838788711718386593130003633623327661472108241888173050147721701311141218128880864078562390346165340356866397010659287769846607488326006365360870880017148399415444015177468669859922883467811997745882979640172548454899506251405146196861760642508860499513964010705263477162563529482946531417109131491824673047254570090816033966906357984181847925548441967476785267179011699105439412835282888478888086918900093603907792816981802255746127363167864168908061695203557794483477375196461782537059760629564626108431790321705690970495555187841938816009907272135761330211079771790245463174577730330468102157478427501077759728191083507082791461126993752499939803250194149981886408781167944396692108947814017656005511982283778450933022825311172672853164766852622764651900089729036191511414592245272442921647431981205314391614295362402461806725949329487784531879309873902472652190870014389500989235961452030827795152544331759853382422312919792554344840757043659635515523045287961568329996160278423886417520796203158249284620969736027668929590021530546447568060727163463452744609792816806632925276825080171572201505244409828954393644637326077687650957937359653170630093057028265995725014745453768255687507528127528654067859076140899753387793191076623952011748002327547235462574896143035752419881309689345391441888252397105440721348514108436328910920333684501656472191881924215213319447498326092680554935363020808703059823831598361098957748627389138306198491271985727227767961108027836040975346820859844573758266533625015035496326067586305221385600018743056749694389338224548495278727313762607469354401539507707800713868258874017700059687417642004760666622655053677562111401401373455713533137655408539883403405523935577202406880418111507201331457283314032650996606657690628578640860021087346806725127800923641150018527362732642033022667905701330307576214973321609340554108382239874732240405078427975484661327503379045434902238060475760948563253107171959691418075376599901233795319201076351949858831431977533697982667046555410332372918749946133830768735788600901147427103803776058765191325558190613942328043175235453336984987987401458868813827687347456827368528550657606194824326400166554333037448824269791389416295450407408113924156103053801974724918629415780189688209397759188228014429159301572142514065654701674557458182464674941696386273696081703829171373853373478687141342649658921376233387465583484260336119906251082202182709771010379984470307089865925378430824040931283998714026501971867797270717655754404189689716688308246305239402886115281554140745977870431553677605063978761276258868564983793470065782792116458359558552742003293329877486121439948505667340801631646090382676840836217740563821587835589506613081830002901890054806787477377545598087158069032138926239496631477380976217335107070606115938410363901581632524319723301507239238841208450395894053127538792918518539488068883601508697154150799524695074939417074736168108197599435759876190651641796080201560920349355304036195474942545402944499240853169355960284087983954386618315975470935338788276511764275779375986882144435307802136052585807354959943775552906842139538974117659497151369152080985700489535874797766692579098629054519430521246386977666188036134165461546152483155488506402446772106354775583247061263216427237050726670604807499974248415500337084217017709289729713590954666664331455921809103818210146787437844951651477705011908281990432053911997405248759317330310192842716461643434899274595916759710250211599242999441430234242262201412475080640942140333858349474689530305281109337190972475192902286496261108869820071162352570569170498350758413351206394814066169292441342319925101817346316130377507076131545097760054007490629973532799663454075898610962958197304349108552796140007046013602907538896576486543221108390596931776143526084948692997830423223324889635959036003345836622782388246269488364442500585469605402932789928663254617382950335500506231737493999828959419327030155532218528293778828801451904561697496795657000645003374986219734842995688402311526839333843429271668180778800543802573355126287583692701416069550376613371909131246742700500357898206948892878372391271567478397826747462179588737308560965071706427558822771770579534844016044881588632442543613063239817250517302829141481101742520641425573585264609330941334432388010984903969940471735671263419761170244033715809435377742575166094211794472479913241512350939044832517457445406315777496810220336906921434541656618721634720669290476218945410072017160804564908422325229816482821241778483804921743074900218833784707814781292062140047721018669019328149420073518536661655971521943456773388386706515997233751736903033436980297633337973656694704930823715130325688130145762931080853136481374383005986568479869926689001918772346985484010709610243972716550623839301196237547221425113237179316046145467676267182672563836821443191942819433649983031783779766746611861689429226914641659070477568565046275667965157057575775022107852163674239015021957646990475366833780400114381122780173322761957055563127345814203987636596868042372469808922603431149670729501857380811682104825557723732999080758420965579484480630789339237653780943051660622389387997159038477392202421316602737924088606931053446526362659754172985999079898658242180207599139186346331940694100149549962531661533997333581425067413033520789249904950253638594046220388982891827124313498541964257850398432043663666334782656533074228581627196127137104581276250671475936714041171500660076501893662899669413662557336616618352729599324012997890550956166330415668884271141010418096377562732054811310529371845327122704093126918548314944438470122648835389500347422264255942942279926301220903077295742514555748447421792920422130234408328577468116270700656298916734825275427474599957770737277020694862079119804357073827621410052440831526180229837767487313266424264150054353705284135059967339606498808686257710425398755555597455635144714372886910801900035071682061974124074982774671010820337417261824964923488548147966747877353404625753497388389147317479432301007007415450572746958925223818637611002956608636694965867939196727843799310412459558469129149886525999226673310498256004988604805933819271822599796137058668135121587470642222733825104970123515176048972630581313134947447404372741941552469723446140268849224941506571836816280730832913647109510663929613535130462818986994102840494091737221261301250878433668877147857540801290953588221016102433020427943019687940011509198469328485005342231680137375549775373581179364652010845850586880140485184718537401774478064125594409471591897692725931435028685883060399811791362501938989542851547009777185253492282070525046905448760593757761768091036979087448083459038915945800326048426419900913751653752857503772048219049158699023029250320852946820796803288405408528158374727696180948062496659753591249159671940430454597667770796016632422541851197426360250723895033224361431148128481894716438609363964206195478683840352479459925645339094032052935457551180522314023634717797371152116027881922110399729785795476021420941993404796078050576437345253024037861923514214803408300701568882305794629829781580040956748091341364991332165412447497077852165277310420533831334493911446535314337958384978730386588323395397768372047539368851049450644096933970067022948274950254102765019123928908249370509823529838219990097560146809411184519236756240505444140213191260898085977407103013491779757008131863278877676253334809775188074889696294597223615021992657149200999114538233453133859884809855974222908935559032100063487540815405233112059551049979775810881306321549448348609475232045584979447897624506619902960967018374932924597966702301620371500589368995488018002220490701140319088990270433272598025254533209227777228105679219746737758384700157534804859962317828513484448552009635168944536433612760728756741455383704628922375604097700225973449525716150480508461761767086861282370295233430336285288060747792836818046700191904804930723748726027974371214328925425081584912009438287689868853054404888158890843670945982044854005240803553328909665744700839106710896865740977415618905602552485547046419098160078287877620696561204271478548636121508542634592763591260627049755525675818063147325946814222530507946423376646722667568782549530836836076612643545866381471853477975913200218449132388110264797581513746456610087813230792732345136401275778753381250803692326126762455229533549293841676444283618056224676871655435470810922531083499611801844438148452611024317025835900331281000806048731648624243914998484121169986290803466816471570320136931516742365972934217456534802032765506524335764249447412915299777238849245561901511346947526361701729592912186817819354884776419668946094230997982850016561748857952225503303738751836090430258887772888013646917906920159047533937799328093236286662795042314875171878383829539328766241328336040947960997967072466455487286603738910472731682845854668350325421119357197222503140074716921330810502457735653632490169042714856532364909613381103101701330167361944359694803998006594819871922272174607556011694580280674456756603934635879733267726278604311651286324682090713265245060727459626350183382473113417309740608959658040420241143975428476075275599604381766991696474974015502843911997352416227551173163928610398155770695656460886452724516171169524910412024734900441468885471933999782506197961806406696444123219046575021310808145335731814530587127178504912835150671162516047576461628735164204638236133779572796573431204780284463009218128949687041615278560068050560391847547740434755711007055860502891642209271108313453352332748797059758842324204042853800418125528501935483603831740104115356380555807617335601806488729388895675068992528582129569814665332152992412401795263584097331004930331103600114304344415696597518890430484597939422312670422429182723603603871062891671154146965457276323900823374777834394162825443385140208897970660952801396665521360955511332803460497791024361023318136390227883847904850501434854593548317490625960385948572715462294026484041287104962916915653217418507621650715723875001564952083064324142812272960529972821545552212592809461197625866161622977301147648277977008504436940510857088183129863281768498482877394607810366965512662479486551998526268155582932728411587424453570095533293462857314814971123676801827989363735315928017981314655940996998491283849637924081068020222810612407699765204290034130158891407606016096999278556608642386544196628053088861975407619889571056629274622610430086054348026804688479308894468445042154537017629838184515137415832050958155068302659286275302101095342774094558937209851836084742024420609357611777754695107566477745680363529891226347473548936489788482647570733549200368673150646903419857186615273352680314796455776087909705402365396027806880162611706218060594007658180639298901162550256139747599946001032467371037497932681892772796792629581970581498084865085261455619102758588917625851073288323846285496911819838478053654275331758062302265802302649566757949296977521073899442051109979513104635793751319588359960461885196912955548428496127665944566434702352565860798577807015181010392366116098133992546563191767862373642357722806778511105782240840507910822658540384154449290576503939666709006502788918481168279760485831306347312949947329519507787780902992592232931146174799693721647603502296147511988112816724686231899451360867685621865047062205041605909159147741431032531036982242311904533613743602030615707546953393699472175441191880761833745662068605808404576071215077805831180305445131238243647667159757086220511766108543340875086962782359345123387899799958388007435285682726947602404302559215486177792381565466115968164160397442156721934704168138951444373033805720131909658879267888920012890783337937631818105987670813453345009053793107446441970670920646305691799232919577352078191973150589493712374432983818340171698754925942722839189951624339326088686056353683020679688961256064168496892423405045960698594949190515837463977807146903985874142673974433416130028472882756072487183115382794957512446442653920707231291286310397054414748187836478212940076050275531440079970245496394171845465899463051102174648970328003568693650289160474540079417864879311121916040433529086528070070749470090411368690660352460707630095316936822938453765298861253036899825322894289497985546758568629198476027107927242221005636061134293212442281584899510153354145152496201319989913573587324089673947273971465427667829166932429232250854809307217319313936182286842772852885103394701541965440534178295684098758875965551227379828673801167543191716084466279076968355755420550473473023969359523996378981823734809298994913287898907113251457001484255494911194344616994991406212076170951805735796071747319138430980208526736726654253164143361713337011325228935522386096150881349272110816840948467587840340803996999434924359644612727500799166302458257429823435441846911998243914622087663362739757634541587345396127105789700676489125512301354598115497575039525510550895164069375213084673481121784883725682283934480831098305949619839444272313889637997529171218482666061603828853492052871709398178297252111623296537208425641865530430596264600119284740013090040959677897896038022129274259892120861521457867771091216208025887646623325369271146316549132003427276177789941793549461897487994200941270546381658279042542603774713717066586200804872834988302442342849807183662421906616349642365273069337663052730421737751625272755321855359793994376391641388714982820054524521810793555489633237272415143725171761202488707982014473539740785672004207545152912237653619491634992156036321675243179706033008139391445419449044323394415302504319839955867387734277499793776172179528994329543070930678323061846986850055987792308233419949402657654642804957391527199923570004169185344005964592500344184326993644795901123749967435852174573355388401417115747939360984702454139668437488595326124127960341861379727961529087107262667845793196017113343215039911073422032625231926769565019605193569865658110454308517974703093247612620151745375561952616486006301746031392068102082704916543644357142212091079684295882370657195440808422307489824038047516688492242382656738957436837743569375235508559613373197413895286438114999110461021775903553101190330397075447040834211574886178715302517706376869114089477778170592023426741889574159960386421318615709855429072177765428387823617495424566050089416557205453070137250741234592604593301244706467656352532301088236559244168710733310652438737713153416291954579750702098834271524197511205130116043145309744115132970487374509346575603010633350047215159051066343648488917955895185129979398384791109433390401995557841040287327138196671999384852992072369181629961461959738482973513623724223338093633001941585199794150004704059867098779935367903099696710538162331712818795990014228806860460882119590908112138324608761916627158960543287859207172957271680745609592050358159781401631843728208426304838009600204677626804887621372159340730474781239597122612830045608221578634981154608540484741593760908831718695649659715840207999456295081460133417223096945534392771633524548166564212331626726622901678942291034440815316475345677732015682799405782063295468806618459598490081155681503527343349931575317413852905343595497879584472028632892955235938003115937138937641373201971714159246806201068348669362219453433850190503147458246589044541991514036725568230549544580535032557721356597002272612744966267392658580661673880905764451897259493291892043229286383052742953841699733285851256816856125254570582069148576846756672549876885601634414990441911268669144315942032801605368700371828559856461160655144486206294430044202873138792336946560223802163329681486637907905901318788686285835056864137320155057120772320999246948942392216747069815155573301669629193701481175739684710519673892579134510774568751052172885044769254951075018392029056984610081360348445252645528683130786887577997195132758512265310615771722107009072671564915501979126475682851591773148837493907450704047713697995530701199359847300974984457653190463380251984329812310192817891534723396421169730664275618075666831386763868371648505538938552787775448434006443431899791445583854497526790998953935146256218927416393301297310605768398187264715180923635873180224213410415945843652310741627971334270844091329335550444813733341334190809182970645764270187738518230315681713985674541735510257373460119594502416346546454653825218239903902927185228405485367500106554540627014801496063836685900288521079720916590963956866849932952955268672935327767100378687359314560645267266597800533030526831422434539783626322600904503716160193833392229435589738669504374156564800049117511677084837165494199143524212716343103705794563614224648860309428731675756443270081681301605328538689187842389275312417089460922661761035602451675708697493363411812861175959504671928158415019620953355199504923537943010375635288976962351533615424820181036567535370639904553104532092092119338968985680302079496787482308479596640056166072499389538594879351492371624988704497295332729792464769171208976136992692230328901157804228521541495136150019869995744104604272030230919317395468079893512911081762519119166882637823704820366281156413163113671192528420547688660104676585566642581236693687944297136110971922493413550398270769920428602841527849789562407006861618446544750996397180853335638504321778765849678018821070707371823534906359713038178890497305659690718905842797462908280565349080703822525235297692921115191632831260289658486950825920332628218296145448238738766318794218881547374144302418099616591293978362393291452623446346727102629203727836029385024363954042074175212520064800094568310063784035175601534259105551775172620316585441763194101371044801676492911277733202573806021991074310350214626117656777477123750646370335376422993677129424275267683985379706876059404630922178081327759915737602218878627818361128796450177418599196274925397894551863310972171258923939493158727132131835787672480406617353586013187145355073066810494456794099731974902490845407634241997969479668379872498292547362554677388676734821619652707861687634527733541174233833505507551197087775967605593232586928569478574126449170879951283413775131011326084958921033222073436107503947573219751801903503979202011747001878656239610206765401015389498812316470035513623815590179480130929833842118648595948593737787711574806994731404797441387992907643995044007735104055017282303586227805244307816164005295394928156287313296861759107380393323049996164849671537014131474013503453682012558218750058566812331938751479697478663416003051199959718188533238521950898058562867796016608477609228667483924127332953403048416576382342259065830163641133729558990623514710472398025719122909912544651342347291933937736028573776912835783400726189742763387086544192263278719761622695648596754203345076061069925680580854708903453339405733613350595384089740983284779051947745236295858819771305787453189419194085914851046772335322333574150649705825656495173081164134838320176119596285406764088840126188768200044229513965372835895154721809708868714675493168292954145011912097654998935610908230606571098236400158050154508166999597104263653558860705956480389085678468111289628108367078658180015439446581996077853585415597568079729755061209666140061308671167726373735091559436822001824077425299926847637242623230309473700731519347046675120740919970521413609130704767318770983516338947408144420956459302713943044715391471170542180173092555769201312429140225529972369129971645652066797006424047827183890947090766481741633228189634201097308262730198740267311332107349369774639287100211383177297196881983514161812532090863760694590580271571109310132258718616428485427679145811392244956262929701880004143815527678940415486936984592555607790411935124912642077715968587432776461713438606972529741653848471605711671745138954620001758500937092275191661528226938329251306148335767579223787690485587676945686681393331971616064761303614791304990711428695381756594141397727731317508196409338476109308980821256867811017264705596447598493444670073891737441503814240433109011260556761585452259993827125653029338783791181239062622197959340208029355691305592588780631258015000549456107965615914741283819064326634067385425045009866288968326612032900823519364679061747204871002483849137074086496225937330046199546203878650321407130662911837322933364056301787165956296549679545850779307095516495441499576441346382988142699443490565797124142144767221487120697837987885591433878375924258466436003901293146739601640085967180581591435325473515873601036663987339934393572052176089473532805467251696781400371891344648004519552625777729599941228590915321635104089500186715940768746286934299659039454117690747414040189680813983540890169170740675836397587992751920660000080876372833612470355014214992146682379446497582025417609979126445125222653925781280271237914880008919510969584088584312917983424530208500728776321727105852448540412625624643272790167585210838962700620932750667889232935723410585434726509273812891929066623097276549612260529942920966167741653288906883248465195872772782725389972547620608383001514816942051324372916911220620234854032807296020873638214216576572270452621392638370078591389535175563296361137428901988389876197999676808620709412318264192843037822738654734348229841491518526487772876943450440953740643099802696251568279769558132431532193533420984208669201477339300504964110272712412613359295158593843567931591820176589873505288330155224067122995783287137142797947217782044792780995189952058698635760124790141700200112194821519588015616073736434850736594431763804199307776931520585229977941164717594864403733193927745338604169406277356778721249756660319413460725757741129462088937643190397607456353535359481737644168413191626939537929557142393852179665597000103873575747895111458724521530153079881155853404726172774658735493248202732248047715521349849214877775176287300717321763834714047962968026792588933115986025513637833569122279434896786966204383357434435515133685743740690480185882052058388238023559345457511854687737409322837179390404561704653193861919145133024954480879619001236915415680878271036031160072966934831982107856275248998957414612370081073663629300892394295983911727907144588506103305442765820096526830033519690618312775077017579348932668869670244169477191261851320537032584648373970460730999519905040921056881311889190978104703582469552243286515616917375240173568764711631594968021457998077815954103260928983145377761701523839159629293322696390971235567848735484045948397263075415581855342666739772862606929904121749309292484396065114423275375199976056232712312931134684020935663773280193994721217714656673861885127325397540940330777987803789465320837971199803720952732135577007667249232552607971882589045154604120935673775755903085543093088330691457964653398254278963752949225379081136640911322322184837524556410766920730224482014701078429526277952140111869167818019858324802090347975451500505750746292601541236864534075570459676307426624892692343110898318713254276233632373411065334331503274726764536492779922347904820316530704049565473354746366433273408853711152871123179175799904728059930811689096876681079704349713571033320745854380078666613345335307768996943452792052788297146221326380203992204420781697103741427487461392497828512214130605468619729738596379322469164105549604419085972826283135878381784159445530032933964914140923012115798874503909716013829095798909973168124987911403822927571399539205968829832293267557112458658593113560846898268340896696405802286411976183958389246472748409367972796717801445794282817409240959306209783423531989687305930070732263369003131677176419628495074812748983367886514141540614724174222023885586558696595302306505780285410481359630824929098126625529970260050227016134513369400849095859013164358728892104466324771556513302069158987358320136642311684200291107507927233715826994918873718262550983854636367552449204962760916688058933631497685785716345101254809061884501538083397857825482860784791753128865066443785261397459559201089833685464403797838125577841513669742803106025833977482024282137450094794440411312685802515039477908768913847963270092821525759784005347965645496408254784292055461987381932622174141547932368099754992062604649439272013653634716145750234679653867322730944390308475101421559832439666194966922707109510808505238604241324986530851998110796730724827289869246854152216144500140260092221998910827005602617353333870020314592381979562706420407412359169719165585321336789490178458978993583637586799173324366398753453999527747333848919229790429085914280469675135569858236579454366279419995079769464602398522955589350583662003271872567287171894099031880669124743683542526348278993618317102493751995232968241632017507810028707976270169433655894079204697661164720194793029036311917530822047818937752558187684519806671275327584566827509732565627728094727540442870645899612491741366960132204964754537512052068905424267741022866799562600040700409753754498854586406009494562569449466110971916611600949324953811097229494839537544275377391759027329396972392195416101677282229286771129227527618485489923619540099085944949797632092636329624859272382472163811612440018385514839367060421026940327656091262396235738397503791017430664254376027342872484597790889863891462492723922469038149914803489788254517571576449581181380781565899369296073061373931799145622214580469482880197135551156655271635142557617326739061197344176910325611877638465858821504147973188549522764746468646823875049901971271732447276145484809966312905444369619965275085419083221943949878415922646447616838916554410200833000508776662997982466040385503820377340435900867389177111144825504382648491659545814551359613154544191107015339313523262758480892863205619052733758156165692604618616921650896996585599938350236759947962125894325420370712509524332951810953668694916945730610723236684736982166087954312162415064260961037764591180848200121192195978769227906882372909983942933667858860918464333037144795785121112521345605060566493080404170094541296262082955927589221817719572609061119738169653390294617086702579239570749732925467134762091039818022123330083807114392945640978464955952871460464752320969362193008320127211584035641191568237496397137512370814810460741638088826098607367170206183940895579416749032257824680403447589528137706236365100616814495570242636736879732446163391724114981346183765453446219796673201442294487120083738970308842894747855121249114895154561777148140856815546604698312978643430466371130853635931219292597277269931169589649921065754799607296045624574729124479862034870848091435984064744800497201589328411646189211656140288051573005115812716012855090987003564541158687320330263410865193706499216018693675976634534868762524973131569664818801105658507833495082203210605927654117767157566899174878426728979853432362820388123295800379071041763834567841970230956946689046615359448482928068247497309023376266982991380443079359355787389227607200557458885613701415929835745361014250136590088424664051240617177186058029344765472702952291666512918962418006283338187306307263130339562941648021865360292182865110896872067202267397791386657523246340643922670571514879012770735363650000887883417064379325473544642809222818763011422832076686210845730561816440186873754260111370943494422670016206045797339658545833679480996568973803717684861406106386747573726945087980565204911065391195844835403041788060129845396446065290507924788040696618445270472893215165188452276048637460986140430185129168486116551759598660206631914402814233430967779471511969994585244660408774586320295542156358335516381807117507725915525161442405049584921110532238232617916081437802842748483679711422214928693131437693149716817260248696081176723282518215980232845469724940645503744549355812281061142427813429432945840665059406170740467042549826628024142999176984754634069576614519476332846149760494398970699581146882417004770578410563600903297649432128203609100924832177411842884247731000345860329205502632444347427286137534232812721259654030876896076256789146257147598764148400308108213562076874019892578723952150878454123139357192193224467582099113639582742357173465663527195498547851365123978609212639197317806928442576490752454866338973315191274638209175001063156906848445928001893550721857243016038000931808484714734514367379316622674313551445273115286543204240319965062671405860095804896251518014666469116502820124938212640110842318022191527172607402166109143750835158390539390824231489483242838124802268289069116936778003868221935631871177012708105510305676034956543633202099730123126576158456314203213941537299818483559514589647437811101848955491968895509569742294342973200166143485554297198602286290565375617398601916405600419179093734191969495701289721872296545405762124499441666648490182081867654234788804351019669458466788720113419163252533902515132479450701865042505368395770207387293850067767698409646628979444266351607554815964364814527846618172655753939838548682962988220921206116667591023761446658755098211595535720577999195555408882464853337749531017479792530397672993646183477001619227476037862190961812011789423411644154395229473097012101014962224165063013627031886965685394762148057949188579721044461167001878819154582235077505642767533201969402690951226045613709740265134473710829710416938292823781245360181510326010586145362175140386581970025085697227926765575563375429395818676691668257607185163556991668511925368995538857507429868047778132866546137069761348435208802168250009883010355354719297281171493073161489304461153825209750997634379211026323227177533349344052305853293740034859041579914330916309390587469848415872278795022104845340265331086288649810075501815349005997252453758258033745783452750956976529949697961842612190010834432084001759533052541204597392928147704020198445500119709419452151701761515080550076705932074526461634649806179382023935073520209824669594331939939506827723674599975045717363323520146747098141600018553765098363537819673026190176858438193707860933408633078819294605722097367420534635729192407615397628761238724678818001578885843328115071348866114695240178560934277282156541047986739389708467880037764833262499752804997434883666767934568865355269224804741514548747299276291947357072046182248778084752043834994782261511448854801500029576061958128199373607314503029075442446869839518421411721173248615082034939046348762889670171230348033215783875944758703812007778778495148090049471954082537099385097862652357614623120437614130178222595068499310381390740770909328969736350369897448516222117207443664676293115617868904477177443932366002321657654677212749611104894281257416674221200064302460324513188505875548283829585760990699588107639346667351355922074015293526855044882982322636225602746940582349533391453211810356933604989855667083395656109007272030501601811200457187231905998586704291184216904086055313539400600712908807232397651541529868481549696771356976522369317716330696829039459834717608988592555532029964460080090470114818995971230290925140410670171608099572447061837027867871729535651496018610687965680228190913662629083320491838126574295358183190381815827709433532995373156635865118601062676801913164814053823513779068847826730524430505483382554161737256183557763059262670613354052939077878376380360849346619519525778447176224203349546970658528201349292496522539659268964144431213656983413804283465794050048316170358714495458022059555774426101066317262573771887414701642877376389953772056427588588557913662631056503672225334610442532427092507304199756983504035312201053911140279810251981994942424669739067445552069700419474997758647647727516652151274502426247947368832280500816585147382204844753730064964551332082094654522190293557730006043678871423435168339592479110038330695877972539130016226571624525944982209771869190358365896339331175946701476750822004734871192459689890394008871115566976748311507916240718243122464707993614149385333783029541166138929047343563196263976989231694474047730448442489533886532281076930122751779282763050762827014197461502784484376643953997663575192990686017932980924917415098468641459126647778553245766676912177271901380185942527629518403000568442040547044732205459670432313712574447107035398740223870963223365983778239152094093056061673301060477151664115056263878328692230931132973943568610770880232496661529839259111753229515723908697777306925983429293921317964428536979707605949974891152160468842429835754080360263185122324790035675252377070763153672820630879633573643143772550316509053179185059669845726542117922977019398210463398360788567472133744132949106877751045933158278557712990168088722869100463817765594445574115859619408234553846123787956309713845378170711075070365648547544447824189307065809808323864142592819057345685710482298541719141208474001164684781060050387969694254979813250267485776232451545108135385219327145328120573696370752324606555264563788762809892737156754311038878220796388752662452452049063267087945702715226616528098665048636098672357230871192970593309155347202258518261455687856820378050500758115962344965011607923672370308910100829524589340707317364073499171286627981988705870025247633482510858293575487764306024695504648051669018285180413503157388261286251096043157099199349404635866968048202223026909798532870769578223286396813417608727014723396361145277687484659083129409900137754944375564702648369174366477889971112068093766983241300415208150765152619514369436743386063626394440119950928976356814618050101392602622202216021304282574911812457582048844190027260181702357769402443555832074888899543871488161018324407406452849648723232641876102180696005593132664478818092262019948705675213212388429459559283955620888543131523422474552454309076144081432454823638105706491764387789467336796479808029201682569366559983860722501314288330981587614890989219687451716561961640818479923057497889340015061560918924375256869336812310717962462685078732252216786621249811803398012627058671751904199785313904690575350257370843198462906987398460960356786436101685611709218675558817597874197306950689282155212569229187813654329344050184687366383439581560929065324584750843946434638684619124141389507893170165266405692589601554249269314079351123449182310235924104207340827384654142386091013184956297835298485315439695457651591976762365346702745803469763736092759695777225604225310987097072971883892185575912390459162762556902536778931463266612095126939771401681970303147131219915938125844192169102160171683426618422395694865322273745726303453149897876047960341542112639467735010104100476222320533481987052143469464578390843795350343599894716703373362797082204912019265548735239613844271280124731960815711081434753967505470684992352408623445729512348612184828645084058443784530641912099349404090081186626626128408505401445124597904498040961345646121787505119054226068870269059242916129301535307045457367373571010183650552253959352228821206550274565685481134271944164734740153706340054859768142610858811568107466529535409121715635966722608859994235520336589020545822730584977923728541556227777840456714932243711577138515956237527188839045932433121839008267081574353934680101646399346830810340837420309494389378759497135877703404287949686277570002604955250743519540420622155129832280934791413199877477972182400533212740594059172029486381439212691405210590344816307295385198802582375141864374944083413088350263156830622527467475810623198710152970951560185179282902039486271678619512111273163453238457427182188358434178093151159381377029553224550697446965306163109138158021565986785588111516880400799275927013403723740201386755626239824573883714886644250208631349380883963885891989648128152722437146676902433071827852211509407888969493797954998503999661182873575120786120086776331970828351111005038491322553672202126109418758614713273721259007691105675736061472974627218969177449047026112149773479684000057568412370245412400083555801156939450762392197476778273620168488603803145980815056118621695711558685860888976400590188823091534273554722293444903879743857182715907847419425102618984007551036920986846199371942859588230123262911643897952143823881778256695138714809924018757893778800512252115538890049835333775424884519410594805829967006746297242574229831959375157864029357338040756594238565876816894535579180885852999119996375406784373419194879842476641570703082004277887108115547910873667856525354243790080835413323261663645968016566776038610212296637427078704860197687989063048557132780556184906206438841568330215763531401053989793283223545156039395028719037531942885282871264286089930445645479208412628279041425483730375475407039234175681569367273023499989909499074881633309462936019325044608117916183054591416392538865266758816641847655486099576034837092800857747919230926315012731741315773934254408869938476075018566183590917171126590719380976537673208469861949614446173961641524538002108494350850241382161475355857708507371017388677379864024708608508215391916784482519663747164025880423098073425427014266914513531764620287956123069269428979521813247395939827166712379791003826701653784200657850020391605897896728564340084315579174387696004717282996785294728363892846730956767265625541743486664527803250200187168030004293834782753241208586730284895773897832543392847652110467066325071340094971300384079057273018634436323521331497894569860223633193550092564527795814295818274786775696946224635144443268582443914931319029340439961191261423633179160326060532736283913577499256785210377133153355691820418238142741666801319056745396182496951934334853863281690583470894305950788449769565306862054139304437447452303527954709097919737937542988615494769705551133008213245907346440711136472497277838541172264979132451111138524456012582002787557807718609626393924347106450363349131876391361748700021579496630573650210510401741801297132121945006001117090146393796612966589940733596579444978117944815341219264096998759565159195272382216708903584897001526243311268140020448786905758628645473949029245865516899661913908133951002408890622398234287702126531466552680605850799678560056400832852252841349762512430424386517377255807314335055637754902234614535115957553793690045452717826242332006844816585753114482747749279999579265483446195555886950810875897045515702543232184777109438874194602988551402434808944659374778158328168442909374593818658908250378861958154837629304828043408008027367832979387771394309238466651621409893884613047865646745902827356293421359726965968078567948446701295751725082208110485111418316155590812278690865602801813097615441851891864534397914527982690165677324417421053839792198434789718445247840177209748653495599495287345439857111507126892262789943369833763822415683416082968275222924522646140604943319239992839649214811571231253643305850073133935934286464358189018277482766341656655089646168340731045199575653991104860909656401641216295413772975982547927510198310351551782177016238833717236416125393339717715494060627163206448763720081563604392300082012603903325917944455919855677454786555948181060623819772422138373609563728693678072228912619694845727165947896869995404521826277084321918462307589307259426522458987238405394581626293238845398648036674858275111987684166704480141688721982371884131865958607319631857352375393807716520770886498524521325525693889519342281979211817132569016393933386652559287526723345908895873902125187158319672476336864910912669026641592938758246231368460834634341878041115214130709638798823244619116561643199424626575459626698138296814804281130596190632032318295136168591749359044835004294928542254910831134244127310134730083955261131921869107211341240909113462427669237447021028669840289542322333466710852801962998631371548459043045465968622669770861989344649853647177702455707807017202375042743412027603734612620564289225938793926261220284782153257963004261999488309393748219514653279736173339074944625152540348862479409794475162921288463267961028162067066157883215137236793631997421978523728397947891768408426002187661976273987852625847711096043534831720675649422741575653291858348789342115404619191880944787598699807973927752399784933814029817942492581733390135472610890726195441932083774885266160834640072476239309570837092492080893208089523913368119658768413900472547537680072801269192339527004773454260286515454777087162943141777818614130961484745834320253385156320000826720613907833453217830272370515255822321083091551097548014808378066362633702808866426910939651886789284836501209429275415662189738045288795314821040198630940217129012403317006055626093188158007937163997877288628132953040540020801174531483525434776668523499606526471276492570523895699488365946252418889000781100338028365237462792904964751301252093915363108942224102947809514643551604392225428230190083832340123082986552573162854859864914743089520457080390770791404829488403515757111292400581439983925864226301136020501822703443156761023055164235855498976074250445425209375151070642522731053118816773024497084453235632933530037995292276923571665501990992498872950439158593658491717967276158961729457245620714383585169981632415345259232419673762810561506670604612724229860125885643442356193299223972742597497824156019859881449729440082578401073298536784044268278530052268111307378910904020987345632178659595190445331441033555218805350099656660722282296140302550572301164139706988627405130339795865755734089378494539842784334465895176816487659746307857441168323167417540071294909752991471981484836482070731589738180387835627021756123192448114287120984668792258081813973119093717551570189144794108298423480940711893574290753391277188622539650451064362188364820750697959865596736644117151484849295715543196469820330413766069619198875572701754140718529961856869790558973654259161522067445556134454701971351560135168545409512313558204728601300081126286426913619479744586145515931259292288532039123148250783177605549775869808379597247567260605431438163497916963561928767659074710841041922264115215172584885076149091850674577520552331250905498137547228206834114365742314020771694510567214460906223546156736244146256036490906175844508086848905584185356156737945019353547979308864809394080206002948294309615925768387576634835856790707260075776389231254473594130770077294901624090050456616835477554161595207816718420665456075301607201972528831424667624598589220054774028638602319751336060200847000662324903644558250097381394102960749606979343962822343326527918185081056244669288672826365476654835680890610721588579874887068605529996178591641118420456769543020454516379649744521798426312949568405109827641241388457539695725386816717015002046815301071387291056068447014505243392353400599203668559771990646998078287183768747588231283418225385420808723527517001205007241375545035161655837605102624842810280854155595082119831503016347548896700809991117998485918455557873813425572175473729839789503864315927856298925883221546900601843996773386034028041958572956381885668136762424554293101237666790003500706993654457092692804720573418174480567883627890011655759953317487644933417148526180206808402111419654663832397313846938905049847764710458183159431458166805943708424249555868919108719514220841206078919155534949808793250890838118853177302544828267290945641532524605084518494634360193768104290191812327175418432330415718820429459587791143809006171207125151552542021484921477310438936143100800175072073963068686281540648820258108222411217693536251672710477191461517594119999701420400361779501782196206971669226375001989382184617356349732956368158925334920875972235463606125932281658783741516271718252226037058078761697791420567571357374316877730940087161837795980824820955941499497527310372196189754513977872696997415269629052926397369871451407517864711593051591761040283296661808924399205376452619240842004139237181901087333992088044008024636030075699253343803349881678382325782439508343488371278018571155584318790170555308647595201407788245904523643350774452834452728691296133525878197015606849303855739065164629029046118918481896948925014925867306703575668270374213959346676397802730286570147969410393609672705950687702263397306665113102895103722899868668142335219957146169107401304186154766894567429228080062584044104131666389334708585184190224631968477277275084486449204967006972450057867908308915407472499517560550849367485234197682020618248552070087685116295080336279500893384630551322635561050828087984744341522156405266880231728769232481943859657929019466816241569416877963519780183543589019150556024560136936751071873457593712983863082917188254115554422044307845635064516614755726438368467650623931233904815982366849748486893472573315462192189314275482240865978759015286133373640842373265327491766649467391174747737786111354416327424085469351451889518566418131870303592467717105553118441860778850217933123949145545422684770117331989358272358989505112455483067414276643634338839396524301862611084651204956227725584312845604443709047644964221951421978814538707283960107062961827824371648049235126561085290530339937677994371025105328232706227377813600853825316894378583926219036841606435365096803918862248919413534832598472294277192036566350423899678165723466352802692580114797614467399812271265867517026672356246215906236693385086497933896265739189562767851702670607313874617821930552913625162333210498413484262160493113832372343683257391704958890604268694221567036073707968066302967337081263042817991494277748408845240454654444298286053342208996328823115408511990188870739085299862151297118656091377159807420498121635091248297277471546208026364906526827669748062335184082687953363884225762209170546813990244591667690149158926433060092382418735911630785842979673809654926661320186446710180314627057627677433637694525268423615398662396291832795438472953217361664151049737813358204875990909910483249375082690978502718539430987074044699554644282057146477720492498732764460636057590448994418824581009887497426274754054979691457222203649146841699247451281440849765815200890136510345871551195358615885328628720468066341295504741096237987193974052973359106679245304175499735303258786334055669147934784805691410623645674645062522048020502277130203803137158216530573005231824599157186215192176083968030452233851687585781961882492483881477084858230029746796734375710171484991766267251579907963390826314111316429068882360322358563568197248068412681289180581984250529718636514506247088588479783558185920574790888645147991450202248965542646778788448767150657066761883472504692654148802096364322183137664995932214527024259585214583781394924674860651609867197140815064610059979944015539996889838934530897741469565197001134580105049217908406439827600328183793437133938823822953603205167853833514587934516514895421559198026551107906211682005032450643458653782232382368214054044661366600177540183607554730090637614667825858104745254675810398315869876858526384352888627783099436360759740669195791727288564369909688981834717838029343413821140840579029869211198202685068497139901611822140819679100698235079502684088854704336263984308962617051352267489278012928518782916988597104767896830788218489387982817547496441174859368993002763672871993260548639797679365617909737938181853140880699367983187823409413870850168899358770322004917771145088181088024482501401854078740665695453197303853472318126589376524236429205247039062091027907443104351725731388236540344037477684266223017015397784873677339690834662793825758685883471968938420724685430904700421975134689416287536199617883587760798953739540239936538802813157569351219091997113677866744901810911800014513789105517829655018071448250247768850106827846578301352739850686027060958213622215043576853086138237118087054764940754939744659692197737291979817551825564959582306115963040088169435420039411239420336960026804907807599193578700618377893741916475366929018010729638887852183774167642545789654801592379847697745410715964962294888409732465119203707363013266344170834682783219962370054515487514045967375491160450162408420716487524109546676720215015780744947555555860720479906567893161747595043793714228553936853972658234007608042564886139722793164629827933164539346516883618791621703182881957824359291136456104546203363593063886888577384418345141500676463441248740495766147541076081279693984256965805770522077108778671831331881183613334364315840861469678307504915306505864242371710156829605302507795615767493765197790579047203316081652274559504324645785729013728490151717323103682912736905786547443243094402356223100284245910044273620971132329078334108895853975287835394258989156332785062443251564808992918399789166541934540451114656864527987679147693429182018647077509669005472857265967171136846035702830257402716783654565705110174334089000568023028637904350176475762639122944285383681707792205392318177605478073424044717728432158523278375379798571576056719000962677023770084089006465760019283174910413833980420353308817851438947115918651440730955002297943230382603524474560033276105429451073734380563846299709260334450561213096965663504508693003507280757409410028788756968779306589597639000134385555627464113028436701280109571705358498244858734402639383097678740237719386646994552022515263090766265423477488705044563781231371442897558514246692013331942922728751902379688513681740099387488853583651462780110081521062445236182946346415024253060883129370245160456377953325684752647781653938207234439277492391944387311343672894310010829459761815080817432391341308009044073594014065910761238901432359831410539637752012422719615629147168641927374836520396731700312006222293064164315177769785092242914373964749033500694877025017291361759805801430121985475757313203126221197082779952382706287215888703134333724281340549883598755883817216492387314699070881152303230676890581568932356081173859868460472134052622418516650970426955357131643729946301539723440939336723703269746272873755246107410809863494719664151921282804632817102063872049832342787050624014989476250884811761113810972069372937698903947981155131813384700486363812596623607456856346788855422767792469620168578569652011996784641414598750727720506976149941840184830888374924897796138687855151182103965004745278946739923089668368969408148079612056510894175693982374203915705697922375706803176339485111263469571485416011978068210960118774442901053109510162729118461909418962943214840817631565812814665307655842586283658647516930574705844494269101967945408664231185024317562568262054856398039879198154962982956640314487236240092254972252095365569412054684768721020407192024694617474550263707378282921492763518852446519268834487757229797898014009741489719683149491103807564030249191729626085830383806178290320105605042153201322239482569985949121005646364000167553331662847427758559200611044685361000254821156163414676399012908192186344729035430107818548231795328685570671625815362877602220818973243563226859762718419229657409589098818589935186803691771708236288207430700156562545883663825553107468816157571818092020352979228686447469196744771742226626663675960466588958747806631867373961048563028557551995536892892611858842839926901369870411144893325968265896844025806327766580382292135526720468290593339371745592271673074941719646575360299003502285605131398854824364944675604439332627008568303797532907641925204835471162190017204881045874552518295490826487497868498129713538602149766535613274979378490798857025021370890598033811742991608426592782124195682771673952483458443351974719901984278932289566919036441001545528887474890948443018421281525907363064072446754346421710768443507645085762284049189285006922355122620132812294108397399049816845369208984501390911687950120019892141164489108211372498583514784945034059532537224803285679971744567278998908711881042768191816424368271122968877245520541710146859147253360717261383428967108443309383541268011799057642940662528281029972020982319192016601576926360599098742994399476622905566348773258684675998130448929283145377583016522739647233498995030246727502936818323954336605555648650007844887956955910907040069372640195002052986801609509361943770168994775780585773905740084468890143123739845508856367555584083421353844639525891927587661562326987179403161921795977264181338875011041878804703495255202119160371187553092026680245814208225695901841390019408223717718814976761501705392629558279658806199485349291489371638221681689109917052378423071786117943095306653362700801897187210463504393008840328268506105037292015086667411539048396176589143626240664935893924065565142675228430068975958132347449291340090346261134938122511912095368919777312786826332699960624331735710297299402365761085901366280714936902940679550087062731430956872282069522214265491363128838772794805844644974982908519808160773036934509811041744049406205462329437503602222861148426736768253679668403605557788096124233977205269569056263631128903932525526736633515016281508791456443620450585318622628687505071028848698599140970903297237715221752377135556916539005163923400633569065962315436880953147723397407070759769315109397665332722631354485467830926810200249863297660402850249087756991332750039925319095518935769459439928642161570760493341136775498733060674643387249107313306928853151937470914500900098321717035288281439367417332703242304575807670858790747292593531232701595084210548198131053404353359210200627409555920002474816550947453580880259048597808571993458383736070570714985640604344993572194188503016149788336537206303924265510709840752991302001416826413920833769280389441394517499206716150141944428991552870977100664179607294907645511074339581585921738025257203719812295192667564048061676301152040005627760032886183260843481596225691753593705308458953649706494134078874883843308653114964310103946184744696744932922704837572177593041573135308480891021353385041962475399500485934428834368335861522012600485544660196734598479579807727911999730258135245851236671447375613963306579310947656605893538593477533995572299376611785623014048336462983699072307258250754420691492296109576708903777143903957671266411591056470531915844368565490607380972425309373773011182514775220103470585901427040669753316966732163887507902302202529238292399776851751903155060235431079209450113136752722389720652321060845641336927948620626762178110706196133621507351797721595450859342925070862272800861238616426837547055579510279027704039337101136208494905663011635282161914043577181838534320019572732260327526725018798361419492893900321330852648739251630540991670149194496855194355934401937712920858393496059295798213784888895608242382736661062625767815251335793007411803982773270523977548972141782165872421369433897737120372318005793615503588658862074439720716406259653691938797089420397759251550728434230314745234757595011348473167422359638744078351476625380334546191836198650320740915066362938191136269410224221605334155143202001774824246673901402532888048717742542548747729640923910505915800791534878794158383067154489415916410264012476828131896042425266636668151318523502633578028667295607530093471858882446769856896193386141365481571817332026949544046652901753453743649068348891383167781213733046157735415520389383943497948180106719694153878220935230802723785915005794681837734751109771183456378755977443121379271267112041549303348372181690928610801881775767664138140875495228337899269991511622157933834796131417506553724466847012294294357374181546627700840843820322845741518544471408301247714733857168936799387385836246269518205001545138483634359720253098979893528442708191608678222345592656757780013224391330669987833407362529626054808448279470247486960439313056822705549365044837070350053885061824756675351876510504675471289184100398266096581412386174192123992910367176545952370527554365562027627647074139285742893043964062862825342729765843750956595029789799952249334212691302768736515113475564971647982792090676202010939956445755632514786436439713087044033066666485996904962611248776053968400795675551134996021501174082550615619456240300142030830086533761550434366940612867522564584322777211727929586494104879929041469160163793131170720060806031081989926598922264157836893456991535732729892077803682908727966357300964628558705884955984696338906480722924381882179932853939786252573228175968890805867821632925546902933496519370012965522794340368075726134618021445367777492437854051313952128491060831968436908216882686281868013404127289910013979214603494554372643377714612835702313931280360328733113955866753060948231382883368867910419157697686076627464420820609945958457246266525377313145876830437542807798057660695235249541070574867707264701292692336497812460712118259712481354835308643544351566152812658363307644589837478957134332864780973565918512823183444367111851477565687845157604637022837100274806878231780138221633770664422355275455849638770246117663842372464019466418509602836001250220218809660270209783544758476525272924242884347349674160121281607422424591595549561426937752239044967136295556364616837880426995107294263247299570565419944819219160617095327397724951406737073229137332750711982773045364485599618395672272231694031269538982900204751324073204950031186923955389890343422191294163888285551610066089348094111169969179870491344559071787657891456843643267227926452972521497883650263042420381329678402365916295252849427551310169876390297213691546116853339790314844176923183179480659179891256468805074124628347779971755344894161182717466173303256831458839730933502445061172606904159601891117482711951239554452683259025320409145247193822501691114265109604817345115227845472983838020156403975707830608408566228913684283421541545921313765746398162812287923380866437414619628893595098222131363314968090548107306281582844228004239515187568496566341055473170305579694539473138151276713710280175106049792481583705195727018934834017953133645473833167573518983781725529990820368092459203972838041507791810475399305116092623612647601235479444296516655448272382473305502665722296191279142786032623549023811695316191086982295416817065596055978666947457359863083325676749729449261120519814727848272425812128885727932343463342478955364604416310644898497086184462786256400870087322176059136888652320246161841825330844673179501725556019440330428768945523798020948573663614017700878804314966633945036120621332152871480088267551868998797703200229850283342492918158631229375606204881734889343488738792147984357057123498913688642631826281741608689770151521250063679313445024293682430493842763864489614101164757552193468266714880821939128748450700570956244981504929517665223083344791547131647726136648042878600670728193452408613803837370442128684612048255128176636566978463680938825191843064864284334262562930085174172255322325888157047251293909659119009972364276568004652799231365457094597611677037037258607373859100416475241848837021701553401620487687640944758032348561712946896365654516869303321821190532112811179855483845534661032019367561468383052743796763606281687505835182490150921126244135352227557205280839176692918029144226393809801252274834178870031667211818200199093165482088431512499733933855772192745609472630449662683376865876816079325332278013518296951389562933605610852030490492560941861273242680532618126892656211945076058900278352695836850428918571534500431910703606032159386634172433612359564802511631351311991552551162485737948951372352652971558697885169214837232892934078193401415603262621385248686226295453403705432104384526108061793861797395401694414523351422028652029230209726731563960671267053136622161240570535213065940547747515089036735753718143238366474112089590431712278257461521955002553795191623079597506297709677643343715990377045257115790500214725945124847483045677600651871883900685910049767605328236482051727832520738781136150637895791506065101851369347886731901319347899889417348472265967044063769498744539886231292269389932579557322769076595956645609024738244561137318426593724465748208048923016570546201370285773484302199036640804797698774970237807638390432484341521340774588671863015116425314446916950800584841516467324671335417743170422683014022430158491371179471441148836153217798746974668986981046841320194323883412572427931404382866791590502388290452157230658662267715411026006810481119696132728614281981833868218659529650613328341328922023052127682184568658845841329129353695667476740050520038004112368620911447162507193049062527419712537054523918337362389547283164179724781146090348790963362604326832661172443231272817070490109748557992800981241115481779220187947663783098534526078366018798869232871269241697872650153098579488368145449522685204252492274649635600691450118229768540030862905938154400351392315750435946370402714983099272801258652187706345496956310464693098195037417785405326570365115298406486751537566050854996718851289199404611340575916047254801828584088886485254092388984312006783044725464111686369368739937367777916425135867488105464133884110471419512458258502197567026090616905321082349704721022543692662772396111891609490261402723166562796348852537329837039850145508924690269064205862765692609765236624034769478451852620611929235944777890218351459520369692260257126701924744653553352786914888590561928375917548370680420641082722057408325848304882136733702253330135506643038292743065770819366736056262338443351445349043402169461444364476694303870498276635791298723331895471363304369062814646852311910497395488354871083846027695772388113930709843592362152800183588051298207745164657559581055070054936009021885551995687694048395206805430889581248607634657574035770100166817096317154583013355004406879103561870094649048593189918201454743726742523987078558522578025159350889553818144375064046706258168240139787393843174243069951383814884588395958524560001835128771391531421602890948902807807531203934563886099833279726465016587134391110231316702257331256155982621282296735537250217892483431792505798236657087978017124782359126776396249119561650205515127806789400159464343664856388884386184381748790278406510422310808680421072564863288608225559526745672866764140557318847628378266502705040511923733487144195092071291394736926523194080510781453736142688313338054507682210554583308116918432031749053339285763243423306235059315747405750530927490418707160627753025036459209716877368020141904031103708326687527631956302565808487198228786357775012253319199753146007370622536543680529752679375522469744635958412598329507313297871208250295695194616936933308717264132021467776391978257986200282091809684791329777897351226617436224423685776779556404184589089395590585512461308042268630840072906173221117958046746151443657995539326573122046010567489217030069533143376135892124145457640514526022322980961055896912802884951054193995077440964026694916743945889024532295596718417350444461712530046340544304891112825062612632004336066216364263576541313027859606792856732882380660286939383741562898956896705564287644808610677951744315808725367854336119677919661931256104086223808462523196099619853072622646045637949062738805892127708021094692369598779044712624290544199887077649797201345801677356768094999928718389679522180640982412021432093602196241320861384778604597235283871828757881536353239198337618767439722314147171997907311594811543887692631091664952058171551370028912985429379111737083251778474013062759544149877589400523236456003650235535744821513948304500754917058212225229997954042838807200643434797570495710935472311354535629652892132478188761229446868753825101740987203250470152173841871658135778465232118778264790241998162809434884413703159386612186106047878630378446686402552195040789728580915793200743312430247615649768202904011864756757602524618404741192123241820880849010620315510339467157638760231280543084183387384745073481807732997491561465865106444653341783536767352885671518121595463546258622471628751015003749518935823474432119044486169980804307831138513739773632543829384772582243818152244546086466752446096892112729171108467705543605030625531331983406498576637706855821456230036498391757337377851886155156271633494727601982112275423925387288928390368484915733204754862062495166298692291637736378724207169545664144102496359870613770783157515578806395942229473028837814235110665357571388126404127188122935345738262507587429044614453653488443852127162288808163667134626200593706709903676432553031842810098797083131939200850906812573642023065316719586888095885846971766621317067508581102348658563041418802161808437343352097084236355585299400932702244642250834661545345494678315490509439479384461368926544615696115144946211694585447426404148138516152210051644133754392280404706234284016434394116832296389603076818043459032950226690544224537098100646541773083427049612007614736135369404575947114110068077089946087734336489454630150236901894173976188191981460279121704154866943165504099118522782221750451463414967958686181668371899029418848686098665761974553875322081621381199468478280251348530028375501452328589113508948430768691020990665558919724232656158832172984998326453801344306820513163499057725005655751571858776404218857632512640207961517576593280105560443082693739466995413598131026244749380815493456119333184468331437149086378773266476396292531577266048854128830019970225382953520636905591082338357590377542087555764132598831834016024329499701617927219249330216590102701500361989715898299045629922050449660955181640682543698249815246418374203811599758216593705427396399645578366329930464287007382839868524191252536593669009474375821778278455621514919061260769899065521909006874601385199552536820302281732855661712081330041766026488385234734710219784662060472334655591368809700054268449705734648893724771696536467544657774361188746166443075044913403145736383382852875925495316457369359237999431298687196481895833987964055724682435414687111643991608910334507804467334270017310620630883287748767799256553051940643309592986062490818237882017721632062725248656536553193786842557447502177506872963939253564223172185513038728316221885543426868599234767371229916835583094481888836386806990773128053035490224154089158033099107997237496040826595420817235164664621428246394238597053811492242390439762445944853938799776254470612022124532279254185700302682961383810128294269637252628072796587063275067303925841124716043768634717369498664196183865959656345314097157899273268087315932294978261093961792932446211944102763453403745264576974100093666319338590696780716681115351542953550211240531285918209490562141825876462461290663671885997194666614148807072343634872854673215410854178772839867395284724837587577504130392236099977599201295411748802760444591282020660631891872281346157152340931450771122108733863025911787983052624631763045056561887645842773438792152281405426945610661740996819611070935483656737648079564528086929724536194082261786271231161318863185709702762683443874404778698134006408197717620131164782143557273192960971380773815975195731365938629671126121328849969598246744865715607402306885366789526388983916210895727625389021849641877845252080370787141350856504262862220756711192727878118960682431830018834589587933464847305103229778647642010346887804351068225682336048153724604962133020441826201502064552264495689186072800191569431838953151463818870875191485295476209211380246978461473717894251864940569527208992188829394545583683437088333030096721427229964349035620598354824530477140225761893261351571931334008061936828204969109618863948418923823162804574419266867990518293683761205749659158121061529308876284600741770719932797345632332740331912506918198527389143559166076749709942472072775369401823468881853088790184960704795828118026899409875038781513605466281429617927606808530806962057925364897351924964731464738663633629966452969759290094838234727529345006260855226698320659771615869890385042918973641253536394345915343198476731244274190683416298399842514244289608477183570305425474444471599405975777283706543706985648904894236174196383123421129633946051962866924637319573385732095100531583161841699262804938704293767644769501409993076663322959986505389784010248791196376880485039117438147073767416132062715638731451212629068394211634875947040973509828357737244013021637472580277861887012987176699548787610334030210255900862492592070550054354065353500798552195481691040582681236843639425797138765181377726110242156604266198629290454959853493046210122836646660983593441326923513986731051188835893861583734921080051434640708244971384991276612306667886280509264365944472545455887103175908046849547963846149175074194104482880796284158409479157835595774538190668814794411552997446252846385515310215150743354898198870056416915004076231179556216794043150756988808901103803176337480594854051894933484283160839028626794294846007788021222952885665708624853748501566457511905324861706728686814313115339859555544440346331335127971703049522369344430805168457956955933321777565015484843867824300132574370903433002591669068983357376830613157101989029276959162123144450089560073733563483476449859933999493509108614308275394143559015990015384269069902369906226602504354170152234270881611825954757683566903886772204949301383492058080038330220367798105524104959944038726226693206029609842345258716342252504131858965369535207501418843233884659639459034182550171640753020138739834544041158721199236894008269196419834373835810928958613384655858607968868196216350913896332174828833364449222328136457741922291124148665230047969088310353203567364013827960155360651947279869067690140424515916605212033418361407535057351992703863642196373076989822148269521811051578668410363707605793810530503484987494502063914669608961049871074399879845782593339570386040169190420454315638990641070827985688920257416048068434716222961942893689666055438104410272399052901810882355712852687656710453992147815602347851937576064949958164028420671431764092174816134100577404195391247907301835266921889893761093266089121933062925512916018364087853182244125650201115737343248515409901005428310313128322890052125370453876262251141915118596493949146136551343315267042423287553186547303767327112924422175811855045858144464549099202849853091844711864605431211859970856038661420624533861926738514940864220018866870386953320027463313847906407327210239656439634222912545782196994263303222522203176384328705712818499361599204802276622548509272896011044188896994670141208338213204568387661154098551098833518352833180285480306516161942308542165272022118208321567465224036339493083957011329263112641385283501058714580100898265525719842067141722931267838549223118553370222734442473823860562770737421875901972560807449527248272524673921609009948829226864850728920756549072287768445226946991557708208705698039675679455535355781197961851899741644752775706638174511258537107814776328698221120829487463578464532154714396291827217661077212678896398467891138361782699303105842795254459358894251069747457686386159220267950439509479696674564370235943286046552233928148888894786767943216539003115730015052970530466002400298771594352483728958322291293995629383909659231387980403494173917044060136355647801926548192065975096762120968877316848222413233006977533786139670990103441674653402822734585927341426439766144499874890411493298492304507813153923202611660052618174206010775660108848749576571225541138921339450126524246291492306530849462196743613912475889999193653804256484069484350332415775750016975890251285121735894429797706607192061453053430645861951209090996006517641777129893071588565550433054456381689320496990530384691643577455771145929691745682808969868851918999854824982826527068678106480511131701961173462090435649074672308097990270812571111220742902324088416242028770368078922809837566364394986155312761642469434165881644564585150980472287790954107272387442960707740164456072105660579524260737971496673156156337308022182562745564389379867012752397975963334902033483367527517806750660755721254377702377243205680847975533195531771310717706812263032510956568805242809436150517481377699963585309812837284218239114314733127137047822752856021477929632932441747806816278192376367142527475428378409761797552436494413685713772832836658941975717152246079094621507175781732764951222308729832817960365008615120425944209419687728118983437183810245375219943938188235823203469039005934692603613011313830680715963495520008150519367226192715450716589158379528477250979623775403777008373937385883646904512370559417843864266957790132425126315151632223280917026264275547834573411949413428776845799938275147360510883627813413431510035918503643406167973030687357288435742444903388887434400513042807232603820369698507774267976766781599431378986644945828510976294125344055321631024853177623448162131921710216641208746446753718864212209091937349630510605157979596678062752608314565031648760794518440659838249935158327794158617891284708973830801461875547893513983983505122720159985485787663442764496189700152029635138888679767359166776297806915988479966870052359126083618711945893702197787487916286490757906844756246346606803333958484695889767228774765785628775943437906707462100444260605561412483687949554885359599597688942264680999207261692750647014919940928635717566470738806584855522719882381222716899400624844769007291855446645775737236754471119194199889494351062988102055693311606835911727229383544465762959023414682804769451594426108169929770898824091468196137234643739337356113337901822307125641105459012276018469837233143917401224585478734097574412454426814787691571943301561139853056469906465505763651641668969433266635993916308147331964550512320826686783736743695416725740911171642570831505346479772272927089906131796658731483255721374190178384228411638247619618587356276900095553875621518792070108929629928577521376197268612242612564348525316370739915725956971752544933076446043395755895251576223724083102988906083054553200764004968477718650948804538472663876516904642289426937734410109863188106448962021155816922541854612360708245563315694527310034577095696750560523527913906477201812594234070487635661578779246322013189879657808057992636241295060830192193400686982470851189134159981283205403417942509626533559098063229937576509199922729293035635290096476262767489983862661626536850098195768581104697506198334475376547844299288817588703382832534960267847328981524511345665193241900463899462839543758606775299124414583502377343319677840421788854393616282316091485472364300176030710307004272785512429681063311182932817411868483942548348957904023757891344468093188784467596633049573037754301406487537806932610087823219135908755169142901071021662454984440002256361357452091418511707282733189510249062473526149715612136470275262576907000578591881398093955006608430912974839554953530241205277722383544586789975173369418504349984218892485678792505542803782626151358400504678266150414380873176561423014591186260885964567383292887467441627757763516582050626983560633587859606173161164752234243323231904304989482979672950462997972801335147305276144228087169634345353825609516734088926340046937403752682358474934415648595112615658728709983503118600367636423006965860960845891060134626037939792827454136217206500839379337119492857312474561526489985853535520000989965931040778354436875767732508305362640534181856772318051347068816204326876505273906852268872566759479038550309044392614315475037292576241722253149308205592796384747988033178974773345253976015811788965646035188283966163371235236008653913304973478485850293406452734241081790505858583563734897583281960224451044695944485823281489986689237895106583130863358044685220343473796638912268518521185866740978723495505652938850108247479570557114736650296112755193212887208511875287758018860315083409092633527247331976939230929876035406642481163385984924639533299453243379470080693346988770789384791070819560958143910175582506523458909186033357818986271165522475158719550154435162246303370105550632755389521634620835445924053007038777875809094854857581434688698749237676260386365547316242551095913079568997097032416280977875412512404409294256706196676203036950854741545889482419388950095878230631458762696283312870036920145627925470384649975993612719858058117519715052050488398648186192725883935058997959475477300399719165061593080806335738474351812093839210090750930838208072788395012434945375963854668451837123006729548748522582328695086121268832580777534552447236026557419605321984481546108681190307679730309176664484713709004556590061982734374634790382295321500957923373377835687200036531807909955193294604095803667636547527555025567026690459018367319755729094931491393133505405519114124467225547806629270443353926458209286350119017989226615035633699198118658391051043289047523791883068833077114009640153624858217635858846715136689786961728368789615458445341411136039188283733398659017650396019786699339986025458167828206601913862866839721554087672143948703721847780076788716534786940138498599088640686447164522841013831819524756382126617815601719938909842198069748027261514952486478190755096186518184754489807106568695049199854627781212864382399325945661519509187309585708729195999978284592362015088825872039332519354803309918146974598812559595924242802655616937253597669580512371329688010653206443606993568387894382664470654281754289536910210752075699395601976477926497156514323029565578039112793380905636271713615469857906488163219328704773321605358307647558989291997972720074436407404747146046952223564329869048026218088007720687707985862213935437506126698486968040414575037810452394110498929083741141898676666262320062018872448586061242654442628071028449592490874862364176840185081773512486388967761795747585337447455865072169982019353069853453535763576208689875872620814845345177889979489751140752509054530682685333165761484784904918896758727233081945116611390631489491015128883778698539689995130472298540532980394351457923367866891137811067888477739723370150380075151430147767313857688913170552741826393990706040271370769206396705476754990683578349095331618329124074369412552976234585594372975017323311298935893061184020176721848789281695538207962838781489726448078067708541610686253474399954657292450648359864822654559558062439515156227417411646850734302881106774847264823428243531526853789040467755514775368980017180265030226670013931982513875865719509504662688922421411875163680155971826900771349746892378308247711522869456615194474964530164963114086033869991954128733239609547509561992724027073243161542979522854753562254569819781989742407441698448290140886004588755767998886145160603881915714917633297712820017965504590030760902892813358862216101047245988575679884375176574404294226069321458258886430187908748782275755364727657957499489471624596048313658680077936265331137336199905522994782285674361467457448650477049502469565294059333794374584241441343194622335089969420642878629978560764746784875600056897581852047869623382168671812943577866838982737554889580219745383245197495714775424133308590691899038282508562564265931835618844674452798775181822969843063879805701033494051029584921558697881877798773663954077624682181051423417185386449575558005705772375268745276627269373653378525305899950030859010230466341780501869157925158360702604270671046474553324204468323885087390722670892779935868304062504524060074217530889629324371238883902474710573622937424441604637481094970070326559781456285927195953879457603205437656755782635394648591189612344772917571106039323504934937021844117384308851380039652761342186797153517087354848838792286196551169811676890793918666484048859869985056040638178588469739762216160283731786109666207342058523344275528718276189343361763238906415390243640052553909149074331995243914145890715157898662073742294220852850383087694368731910098675213581604054437966159818965227792171522702202917950513849029380648971035406512105105438830732256049689406000900585447830903045791717560712154483725560449440536845110442892466323850617702096817321856107441102866013575518286461519289903184962035736300441182925640998845715863779597469391858135372415086368654549531470084191015253777704451186398097308378283363850433591539589924033958730711419040307038140973281098309638341035453787778853318088275326877585479828919973486365120469186372943138830203970576375237399172397701506369114554096098606834367103627127189123996825410384757876356565096436270637440900253716547217218709778513977798897772888574806306728105699240051663139413018206720168168591925845945955092883330906613807909863856972871858337189921977044753810045480349917422246232128810114155366242986240578657969151927474947557103824196765776932265997426780591700084944356328657702387400540776537543508546535645669512552262420990108520142634488916701535916766475744002341087125576346434064386055473557203435680653533993727082369343712786025174654787890624949699263541504699892714495561630862647556521718792089610839047432926918531334714728422745134167627851768042003245608030594347253761959873982697127361267759652424012776333585675396477328012885309826173518257583942912418279643473366287493645152898758358148115462586219864717416437175742002357078723929293711968164712499144945422411412080257236216172325233529729835800240487378135717071013382898176044947350740547993568849043318296898930757333888349092431005814576956984672517449106495753806121749756365473937791403014770409464666616639480996474782357379681218694259874379164634711039480338281195121141915415023891071413652643160834735722756421205639723880110940210332060691699263420402791788193570902883001029458616434133764528381614759032890589341035776002646743973004869241831317096403257821514305900179699752212722455438009999455054146404224929446338565451618310050252295009190318085212914192439297080309784368997710236110047897507378411347642807484896220494058606396069108280780905575804265490656234334867618013772603400506935006596070750006027615762665692110561254410763388769308958151702676766682085065343437703494239935113804964483541143690316717969937152356788915031976134981147243014442291283652049222447457671688958947500665596642006879296135487902364969807560204550211585803151718001548274258530698730969854323882882108637628209767638195319272492293303348011110860611617821123205640292573420432197252244449462574441469525663355900319705938655306819991773632763130501283075878180328207913419255646547381298472616337569281914516301014859334397939470230033159692732698839629049781251516276565949838723728179068525715010010591562444456750009564505523334600409384455062515690204167339708153639463615281265110157985630272383709070809462900367857476144964217303124936456059833090109413177829421705584676211756929513562906391697174936966315483047886559097670965045142791022414819496075586029114785247531418136640025937263825113348855362806808141820247222546766543100307057489520259865725336001766272411511296506331076297465958548581827321821012663305243578279568991392347817763041196373144816788483205724144281178633383097561991718291165359528812985199682536191872139521683317090762978754526427698070621484507254754685546217493559053759132946116464060765594445538144576309224192843971652355888754901667273576448679688985281779957705518349164338422980882557093944588160301932233229600655961503579616516749695762558722388884737763438176432756048039268962457761454845923415294005661442792846070126570451536207537529046702464597942932325757019344508962405580566386739185382930594870446024625994436765418569370352972871437837315346522688199184943079653841358347753175912161859274089689549136752881992497034931786799295480933007086928053347165743727985754208808072483607550565758179062806356750363562842809589073573429236488996579659636903914179970257182387992471185052552591242795128148117844823036253265774784484593105464914401847497350513489578407432693761622287967824521616582303703550039193795398144808678149478219918684103448224967096843741749139800667841575061752859694191333816274919417545280301258651328710433920541606680158948017211072437565657661235123286918848019715408827377688613213065696774694443405790146306329646579723140506031806866914396857951455654182422229428805047677801739565397427714385874266086741175894649187647699945312976669656342334207359329477133257553920219433400243981505068143308523233798184920802747612462950693132506532911207399611869277441131488066212952672426872497611668555818076502219027952223160003280556132054311606275005706988747080849645927900060734773559765737365355831795467414640776150575295510650357445831812877289509150753333504235446348927024069349376171928089093910797898756366569005727191813941926063245355608341138814941237453669510483165341963224444999646852064458796906693054663428042348308251847855303758936275001947300382449127330265343659706464751392527512132639422920405311728696446397341500439167817594155403431869067866187881749921807483191258006812423567324728083274266559469418560927321272899521606934996910076207269598759073586764859720654982197290320620332992771508091804370232021976805091313425599205553137575518666940774934383756437718238346360073806595150228628035438602638154300027604732888909446457938135701389677189343083316716435323109040258706731172807558114851728499512964831954359453656565669031159524366933630106551897453056742771868427023288376914708837090105423682961004588654503074457182309226340093576427014819095475771611971348336422854366481809643811661441420966111925847560815111816338575369521967967282692627189249006742092891104139868074444765428710749691284597722736699098038053329021060007642419768467531477302594759542765872257200392596813045455301825441661842231075705829573941023575875980269529436575145066203785249584809119587038354840699172478723172678855788476522539143598793382213587252242634406068111337602118037768512862687771635136906816531689721988144528789809368254939810012536909822173790196426616078862906401844207457395543094985176141126498773695997844106916956869568228797567529374276971680650776940573136982700405817223270422367954119988378003773345107191118957154459490244393991222582205916353971342944942883197939034798432942000030106358602970753220569454690742907498815742586687858380675771120566486738477067664151059827572198638992489913211370980639193099957045294658093208455774633848733393126798444086362306718785079604952616920724345635678370647312917568265511285811978200589507624375264305604002880370342261402683769448953489751316693033103290066721681702829537801738579095511401232995627989001515383423897587305631720064969328305848491817348933699337466515644691522832096638552204685187804651613184178322792949640462970729071267498398340811858910824382028603196367256934681326046610689657890824229292929744719710722302208730869823638615418177018505682124790090602021869605358203023316232041772883208999789697045914143627874533073825590102891570969582167238485953814752558177966314921992963629394551157243556206032890743008520690156187359087549658617630315109610201205230267707976542998081190093120257943858544115394783814965242734256774271924602824783807295479386637400884198084650536423262047481844447505092867762322349939699803531673375551110686398620612031146810951172028183112475348802571570189078467552734262285570157368570564228002532517040723005521556374091182298774951986022225341155270353412663558901345202483335606741892721034893366377103444577643487020365441687733138549325851199278115574283963823010983645215436043765014728065484230745491104484757489385943250845623462045773105313067906157603847694687757985209903279753337018200180635483776364989558172777663013626569554478969451558841388667137360396825114692331383719306086718520305232458722235924593998926248829417201240415455401427174392836945899493546087298012535529052043134834416640286058717867641003688585385380522721974290376159712517589470306958775214698421053051046178674610635801287325736032931186668859050972645722870421999229169348252173995192663773415829409373109314533604571693848850927750630157126565760129791069232162934009332413290098354424401954865976330972221425775731748179026466440179867424968824825364492745892319791825012021207924997220351975131954415907622903765587385097868463095341733098035251496008716657572550287923019024489145964339463762182217233654575732431604651384403401920908550570994550029234222155111509830106161327480315540490576262370576006714764740149220018801418013192378523604067907589426445744342228137554302291855799827821168614807753722669088068322619797973334316279103015998676707889437799222605715935990357834864082594956111395951933566250194227492834557286472821056050516762132019674203454271771563011964456474877155422189023201733837411388686570121349862776257396799042747010287849375575638349579356532980835146736310503393310032722642831928536141558672629025668099534063869739541334541399115723264419442892710617082071512317615201736034228571463590207313201708844935924952773574808534574001930096294316213765323737315472192364082282649314337973500931853055626860830421233698096590146756211261109381136270015058771190917995737470133953437600797701547406306321010303443610523041166859910023796133095957687777971810448406517629997312810393604437618470941466497186671500016777407130296219575414497713670004235597797606941764685389050529703739304683112193731482349704747250413881557119780229947314756589535969259778437689479434336338423205314415397588692152128172226612620184040107481683708681446473800941144515106271566531083166961826283617753827989684630387810465464787390680580540662471467352196946767291804971656682722726217590116338010526269836482995548661329428491473541472562627391145514495054697233599782250247125028984865571845305080692599186309819534975881545123506454953814146975058608555777590662798390555563987341419961775824634231979371325193185414978420936194921331830426817553453816609907718348537799830613625674393295414241429535453345216195319670942719061913128432200931129691049691418842478516177119745397348871555572186571937457984259693841630955028339075355252986823138430654771422895810265813872850845104235900698560274939634611653894284531978953863905259395746201901131784827197663966376358615596982703108544979320739132044073758123166451846208870716864488558445618653417044203499545789447356560841383154350701560891978752496623644133104801374996118190485003409418510042183339647257831052372305149601596166724971492565604025907438091795973301167185430548494663439237466929615581632838633469380814118048343791804678683866556201638527432328268157279886128724668643083121764018561024410545366095906270612424446521678467806743116395099094582166070832999021824633569789204360980823753398218972211076838491259104260356094538242628721170278952633976562138900033572040120343882412470664802228872967097758719253080867485330998524846974547109152489817532159909267381474580967787949115876894677341969527630623894322546942183495343733004996201886398509467517481807583606397415427322667697149064855711342680080858275499807916703070841182989513027661482774711013562844016397110013051409983148589294710098679983728709308524076570979391649440561428773440178714339641834174161675472780607906035347152559390344988306206560130121756562829973198662696817586543512681248953902055388831579330880577320002358480685586185773670797442124073008688066857705328862693164837896660600184194777695699247586782075268312353934816031547809584873472903532019356557197399599529733803007609011503967193399096269490373993987669637008388498342218960206898702501847775920556414124126043265596585163456559252789532038276131099056128858468009054610169205154720229332939109318929835419362434478913881503949970286079397325780490777743777034830335231190387392658801523286335275799884988457631042590257489560712398912724893776617995768115599037696096191484161830952293748796842276585408141927659482376669831421186698017729435928107440491463553447437639092266318880516815676270905724425617027324074352012061186002616102125422264878820016517544244668510723018291107544121258415022275991314635075780309333398612902144618169331931752777578702878546197887159054911859964419087031573411195390728494014832278851439965059721196395755556392892456349978705411634875996289865175648764838598467362378795274251292168941337140191368795945702437810125696711268467199283120494894098608045708589031399988107090619076330422025203073517189437356194599234574963465857756412743966283111463303170944553889029114952205927444921852157476623708830764965048060705670584311818410061130011937206726005018885844576438459065593095411547130737756413790170599769992213631211128503935983989511759802957426180886493760841364291378361894103545012548002117938011123871745331804661953360290825742238577482847318051361996966019028086728974681005041029631991568166721058662064387226604395391165802996786722937028184641125517591429835612312219240304143372673684192769903684622890647705725333026617693159671784291129884821615985164844631443654146658295359637252791562004685033535339526433943834152953383932055095424106820922796029261350896317394848198093302682988241475921993650176662324658451087302477213898383177450446103736691273281563296413272087925105595567049420037049897874475275708950032947198225029752266960367067792728685524103626105438509036763636588299531451581228582063059966585316174048648386062920916906209322934810742238950551358713405600303926774946120850574419592708221680016514990199379869258087539052808274936851515370618553295572174531836539244317776708567474150411884133297242491244724385763248181704796296189490750173640094802656731133954800557000100881704422739367601008813645936554158344550826031398661834555624966815241966240997759051817673408225013246427335986800310983794719010875387670894967131688710963550738604098780292202803752329502083742393698541002503446953524640104931979599495077553648016863439126254523745215691610970129108830377265147236393940690173772979100109635417811813989950120276815912801857019108741346167934654928403835354136213786962743589887958834546500569320239044333373960792692067497867940312930494040522999039866373306380827607353575636587108406788803190825056149089824725342306234213862227306869161858176887542716314382312115855808758134423651107132867167975507661364700302619564269375137310426791924333942171857923796819605725809193613260539196604291817237716672612449843680619566522543241043590086030552277454176998256350774805818893661962716598531355231315647348490232666641235354263561463055974756167625623909011577358934716622956052075938447038576604316760660064212818829998551185861626535799242040888760913069691685474990084312634158599506569697791452080657824510939238481562853404599539853876640822879984215314808221482580698516403881075906498510839331991703575255778258412325117373937834176801904045704623105641802778314354557923539995581497843091939511381852774621140845616431817638690309420803900823811143817211277726738336780009641971681415413832851622803428421523735592296624328449058167075047856603290101462829895873646739826321749867495746785774683236573596223109125856932104151647794820503117167481004321890066603935580624422422303788084858882741864986422641580499789351793878309383808881162588186684214504990504850767812808541418286254200625570203632063818006232242526284211730935816952644633345817954178830300486184186944491283630891778190064630865620726103191283564704550242601859102161224707412182795786404312773151371807576832168752749589995057969937254600350559112987034919471337423060700377136210875431491311238887279193092088489953264733972552010599086361598585130944016458618830085246174680719989954999390756423201074287574245638924504386511876920480458518001384974341223562103169009917089070765447930101899186687484630662533517049132056335878006372494506901613856244917430950555969053300512576484994738400351775819520504047761459208728883542534690524923531005289976455623751788453621616648260263446729541624254398808951246950112670337498411571255852841488205596105472796539287500891214600640139420313223487928184265550914248430929537275912600812638905964543098864146494500999426936572264497183952189526722490274681228393442929866089637178628426307625807836671404444386309166465277879623580775288689228025410752029030612721564158523292218368989508460531656403719059232086142935343735943779195290432625959845082703545632761593251396040721472587907088731968598407352262061241800717120863983508824664919751600371655816357789146337512669707394748014997721902558893678053433209507942850472516437549651083869687310707937631532771286381769520487067311120318632884285045468289188206268693531742249283942351437984160119938904364742909342191898576605548463800031348610388547346432241686279043652084980142952714922105051064936029782924177606955466882076794144740432536002738083879726640554557603248761525212026402504224850147259671977299363982401417839171943144090542439388000901447936129572412144631788154752165302693295629506628294460364656918895548442561801766200249031800085101763074063203349619964290595989390979913354261815309168489377376942909005574225641252944036851637960993186953209785161562050221279712597645958039597761046827900188514933539220169129592454417979529159641752151452042956256494223355567523978706068783600682199904308973031807855090041312306894903665709473445343630458050192879925553375963683405874041645680428334767131635066624515819537288893607853391734110215659931385907885922677130707968052531865950680872697749040948839919092916162267586027416114672988244637179537050423943455370206772747469740842582651650257798053394864827544898710278292451647890861271476115606156784530193481883440009231666024786346291612325805655809698079861668310257600653536810382736195455641556232275331842884260707324466027957384488875483246236936582843651267874400803689707813859546448316246555320362746716415918918515042198035082958364042048137494013877286100797767222999362477426634849954724816293936321663198203884505148606811317459535642371346492584865480981614168139668781973105373262965934865320688186858661431518045500315151982267992126994860782278992290701614787615102648472045929789705346109667513844678078336651398941052471235530241387651252033371817580455223850142878892107632622894394121044719559859148038701499969403637983985443896137074135965219602920286803313095064634512333060849992783545848606717661244083662443349132970635558156352114334854468400295069338135369248713451179548041119145811993167580310303064712508620689309707169067022842988487698130619551149847271359593443228367168376267276867146672341312352564609021454990364221612148171928348274132394731186877722035057056431331357658475897085230886040028055034658485078157191202522636938547050122196632415678697053932828179521886446527908403399862374217547200412783461340102391821819632574671590332018384210032290601038654232511516555657603251864906927605372467609982026430717151267324169316461625905202196450687045452733984884671338000972996032157109061285196447158754927703334726595843694488263759864634463329899996184655261339589234144211390131348438901130709133854309212823866668515338134025362317878594439699896156323414833948658719604909435505316822236794655724520205121067495155988371177301971757942241204359531347249819169004181694669831130648434086061136438109365729175818022894397209421702543622084459447017608306257363253547451353589136458999333341769014898359835499851338790109808931523088005874565743864922415347558943778100751919595647640378733949448475721385229531925107055075639926403583768548354966091136937704406359238085782702837560506050538394517719942763242528997551132116855264397685990784074834840342380689580672930881708458714890253593458223054935635948794133717038340406005220734768772276845233423063122038577729699988470449583236747504114841860793463650111687547400012186556892905556202546373107350785634399007938345126482625862147089883696116896037660720031150049313656194827640833139850797108897772695408517883416418834036414630224272683977913030782494850223739918705837202461105195326203989328882798440676868802385179104368323134348345557385395048938909296934983360825112517093598227060381411889194094784377463247145638084243909542799491165779845330110088835118423819030284347858255658450021304086219230348272515761278706935579651974097240552757459705837908735268910563280245614377522871392101807472547427913163644830076307158360362292809158362762140913251429370742793048455230910802488470371093378625982421534673849785945251082528291385211194012058092792219795565791881895891161379091191196200344965353440679912992853766175987034075463685778336790789493667571886681832141618645187847961460332155813982705916678268818558510533451387118707940667053684834196952669727454311230153025427637986114382073563899970357834894887970581468680347080149247260797093070460120058905956525822493183553711161918831132518734210880486907992680470236391523950437344229558438490005499736187072293785475742993249907198632786656736923272155703166835152584582137344281868076556294920012567205297029601206283017254452364040065626613073467406579889321432310402100274212824525573775330610152639327257891577941635141519995829938277601786355153011401550244836470284874266104745244262254947144560611325555621989439004552973189061108981650643082027229323565791896008042382539766707301549191974317196689248944099341902934862185261434191625493551401505239371145257326044277678929539025511907305494536313233275182447190681960352362428920119108767623434863301108066822351393088936416981561396818556692350690040396704889886796612879034173630881785344850362774937396904187947259380713802000681641555344613563346975230732382851549623819965160507592142961386198006870132556636001167623671651103155180244144379542141142764993988292495318994846565761455861370354176118755655536464770917133111346287313756508104864836374026047822661673650294176732864725045758159999372161295606229094825880234451749385530165505064491774819566971957935112899429405697365903987769122540482446912471954370971603440670694168744741943654037334411693045015552041924276102675381770541973809953136510925562299814117524121578208031579682438403852320778644834968310709620668724468008084347436943226979419293000159632414435847123832819192282641772592490895305128745818346906858086074703660968336646962651468233987702540868327542756773629672441628012670586685838737204472271026694907613669784305287685242707731199778011362024191372038364601353245342988485477136823344074490026152059431157004695576250094601650605395442932710039475201258666924818690776070174476408776891233103697313468167047094223902215873355237143952765615503438695097722403608660550560856876954022233116204252819274104785685980551284236409030315532123392622004339891378710811400318149957341260740038146572168948321786812282821367060703256957394457166299537582379785015722732257128789471871255994516416881342536742862133686187426211523272051050443496709141930870542169001461978039539226872009786347815863575196949939179806652353028806645831272068833172867364036574567021644090177244625530463656613103904667285395912332307528754108405210080394758437012309960348452003281501618595468278620356931665570681541141361547631790827280156276911573560071391051622723167809562288463324580146224415719205212629143947235185474151856005013021421101245736982407505082339459103732103217101253816938739842534582055643955002890189181155201161083094616042050674162101478249728317651944121484307166160460605572992189207851822608685168552755934503035420593323593549955373617472095280226937627985415717091229786940117558731424951429781495319811326342112801404846399596640357637707013424767887797554029806445863838136842529858815516323002309363863754965757112745743057448112636467839562942861538010097933407537536236025252430684024737451977058228638507111469342263133570798445097600853118422213016012929087657613037540586659668513256974809346903625285444145329665876346840108195461625049418611900101668931987411363943510969057277649924129028549159167693654205573127483994615688714057233667470430385694889095527924189162681290146393287644335939900009961117591499700756518351641008458417776020494261790131784747835722358554533349650762669574226934881024677749055937869939182154684019215702239019817193448372130921179826843672635008190787841054782768733354306446920910670395755875621836950484021858874659757467563633003327120309393796918276228008186734394956728192697332740532653704978793896355121060852800304678492763838913623617897688861805170582308037313386198607856416295511061565439887697606281961881675702319553249286336504575329345285217669799862339451127893191906913022838607782826573262615476643992732905490318435171873934551525803064664228594058162897381008707009914818797646038329591185628010206818852200084321627350582029500918692451670064605612850876137136709391191010811339584391162987896418342149170303598507165623127625445234408834333672922171740839638650608867801176345101941821487416455065936735585536260871839506069677163324555462899010570587416372450530977146163921988158916439263189354926266950863120782297997206189380657873866163244419132065952010712219971420623097381270058528059319865974553554295169340398158798666774284979258987987063155973961024833097150326099085610435465944345489954954364652633490057878503234640729016061056173969381755144545826106343402501136618960831444159565637526599237011095843556571290722623555162714068299307566710682481367457731890218035620873268093478724096242184842462196502239107765570867862066967941543649595782998941260902701208917378255853956709044830968323877295246031874089870699843176720804771561635866270753708559450600676064623730980206151987198603510951101901443519365801851508116535047242745028760006577010609418103844363162097561883538580225844427389427485542825926614815922155106434689146782753870335058852273505372465588075003264009274584080886138815172093292223528264400876569001898073360300294313839193010720522332935716622111973155281751076594497541870544462651150076413820344659886628596504019534552015830149363588236154571498871674505983444088725584230044630487192477074931058183784102883465832408228578073306004405321864848316067975736208171763982623232968714036198881188743511166291901242697611079173581602053662345008465688503117972736635737766593734162813605780474287381420825933674396367105420151277854605738697934270403268967935489141016025176717865965293558377569823280976943605159737456628726229492621455822193979996439754691220498179050632640186828725961654946592220673335526349127124164501111450988294438754050285553047385641917144718028237246728450658972645226217293148764224081477221750110700606396456045579516832573011188197871022160991683521073846598970545151270323858296192916754983394603667487388216153342610179805136325492658129639456416734373585655846109477814517232097855552098793650084138699965374272304315498255986377910863971382151746470912667717810094366539632122609614812566719301331733878676994106785478733309191319282350891964422582481950551860345133005643656540019677680635878876406190642781364898689879923804582035913511306496935603089365041825121976802321684685716479462118018808489379656754845730701353543147085000906607632522822970219275948820863206623363895873840069914843497623974312092281132407674870521345727272770097145088721550725552419843568055320425517318857560191512241805506235645906434717670158016492313610238436581695217961474932012411918206015937755234604104264525880414859483667771093515660043119623212629940554118543549073691581600841505878845609020790497005559180303968619702591420676886685822655283445453509166646385903264116460015886175217543805179041249665541486915898359676145059228608852453677728624934567591870556046172697069297039943480518807642939623645683891279836365357558140711496679896969385755788377942458208732506930160444340520371973462755851753896620619263742979252890009539450867411317232055015567722695097381477695107001213817958339038380121063370443914266274962147165372096904670656439530089528205269701634497399057852244779743157007710214480130648236571320371660830776119349390414251120710527051494802431562953791524286244956698362744934099921961388786817055811485603220769827889184860856774397059785620231545443448483838255156602287601901518623103766235323686538919728167852018830494796746337543426039866976742613314821555818486755598393445726079125155175935277551363477800219524548623880015058998337255318117666098798752141951919239278777328000829435093991475019750445668377075498524669182874703834650861879032064169543798374805304208406362504894975863580595457545590156769618606571761412309018122029278026232206118585227961330806394470778406650498082722987033931948101448837902138534405822946498446393893128867128908850639702202269606036392199599178060019879191901607081681660276860232239248285061040143855980829915612748336650884388777699467869674464193155529001131114147440416788827755158949044817558190756494315274745130160018204276782543081001129019552338647510128929427878531548548461419867757223031332390903600550015496604637953530858792725642273892623724563949914019089778419181633736152229046694738537896601582853377502711575604497982487763197373631041077123287526169084252472785886377111379888424297471758609311176474838362712641661204453029318697483851744600268512400601583184045957847455632690167487142846899547577627032052628724592786353675289266455662389276294961217489282103305995214921955815186102350873769378791402894024642399608705231289130418923597815505002179390571962771136718612723082039148638113334352750136590903444432812617707163823932089590463071112334791281913046142884097574095613201814631849732924789753659783084207321718372159490772040853300367331748221457636362040880239173595155601794790236676639459122321810196169112889914575379270026568816382358305094548673599453130832585640081491285845110329670639067023147010576333553953761366146608622723908549958147455364456032955988812739878093956402593904814992830394371507287240942513139341226883089536215142174657136718264603339105751716915933239948849541746529500541381201590107886388386104587795018043577085976151301455501684657701939561834235643636291729536059914709597025994841421557388434144612866533734724748210503605163395581176196725620446258712008937065227163315411142448550884369241603436567553352344372059086572878611977005029917138731331775785707026069750082833693483559044762532244112557420362257677210540726127649098860640008380241905984183930452222423184392424416213948085236172177557343938837255371779491509447781386977040171543075232336868837182117295213131919363914129329943431745645354570558589863224252036750757450004157595294657720833750131954380078712781945624818653509251161311355387806995686437950488042206300412683942653643801599332728659503301755219001935218313125477968745693969768645250960450031016854502639227115358570858402120536578980598368435819635095307531522261353270670014328183291740481116590563150277916816065635753124437244980215663168497836454459692343355653737837702355911412015463963704241473581245442833241140661321384710371597287401802620402926260632039336032585589026618872598396862075605293033045248101159328800660788312509830047050344529220356920327177785961240075294509166284591236997171867058364585076185863553431226840348857614296933776367220400702566470938668558430001875229813403473310986645010450273682572493017412976656479770619840899905561666058174451992230413102338963632767534997906216306683863924477664331852827150002975666688638012677133271294329925815226616277810236174899536940716286716850420091952005228207709022401249846719887770588546424443135175748413441657545054693921448546225179274038141889423786031337079009186768188206426692423904878657602053305875011858260754050245235783156632144291571637527034152280263754609206045166757906947391550035945369429371330984038659184734015416989606005192067686092459469095803555095571506696257971950819718027815380975371814428041638218687273019222048553393467100839105240419717255944815669447611537463623561340036733069082058438482092918582732176065888657330079379153105957876824055625272437697261496121285833977621299772056573737094244146227725791079242844651491100718078455437116598051814546125575230766208044396066116839913748881385875143152260915073430593645156799072430871269828152515232419825058320385455527746951522476942644023633487580491778087227324963726066643567446092534520466259432653524514798558333294456067503347247325086656827149158017631828367309332575686499369337103548476853393280548825584358168801517298578582743217374724578005802027283167428540656390554391341857633448534631695311311633140579461071433073658724705067870885737134839104780912860722273260060839122155695144079877436789405749094046568514879877880107172973060896314196380639139298192239646540571697067441611006877144085015204798369121695986931128663810919871456658884385520732219534306463780222059553244020579371395574491131133501177270207479116860871493502767217094692717951265455163376987004578725828875138067197933474900582036870416103260965197812248433693896409827399188659505913802036906773774360985535923582586419042594909404597335559784950543882031592097716556124726791424999745522692837956671183476352631806200356227518021369266235052141484035629190618731626222671114287198506426376249933718879410094314822331358844337289539882399009921693358712649800263241491068711667621343128694875632164049649518585844457547941875897541237613614831609571764142087413958902278813561107844351460872259672161482356537852696768630049831550795582504082387835140219541141452890520414781222235348760460760183937897056253164517895423411519919363374567864530856252409135633993306070944734515462985672489779767835669391537802847176344537596072931563287404987346115161068439269937127248254814158171594796823307103582422388232431898976487948319432443137194626389239055437060357052386515275618867890494385855321029494185540829229276506344450247772436895890157897629811716780207428443761808458582522808172345162864003298484062203993792532300511870211266253085614742233900284653151330315156531853204279235986149982520434669713772528252349189109182725163597715801987900666662978334614882121146285726808472179403522189515998725315114082870108041535211465180493833297295257218144007322401735436325302315429221949996073793902263372017848655862076198759218634683687861379519888684088678936316085697836939668394776443517029930876267608580845435168278545141375468799144891089018688639104662296423985483839386545096198715159033718527215480115884720759721997407205804208605167467435406395764104554869411974658326518180270758839242786292932035538862926109207412857343261094501901990428544392770274498027845052075972661479627965725628349085411260392963522702422345280164745373270787544951368356354328577385221661848567852723738902644999523745582646215622758521788554012122817507233428571852459286479103486922281054479663552003098032322610229327460247261538282546085427239684564289752664389799601822762756031793833959172196362677636337271995889524051953411001458781264539448346493179056384884163229549259830197384586198226611546824893969091760636766273781232775645583523488172060053090792033147138484379006973068907672993714355201991708353344795091936991938786717031927593014268188516409257099873584780594209173014969281600868321127280027542132116232381427232046034306121902788423827443718216897042330887775247055811389025597669229654457379132121062097273719334929757841412444889149688580683026111527686837431887932346252531173683469158122364822333211208056614379424812061915460638813421242606979180665802131052664685109739473587782570346164550583603746480313483978688689412553759432733770763674833302183015112912261584199549923575494747705698589807854430686097582865047990099148199446423475763163199395496010698012834464429060910148169864754148726502803890567849805449278102358019687900065507764505034398329521185109461034715737324942411501653561677968271790177622570311354624683731035701896071842516725785715634457692955564794111681295077362291948246893142115177631938515665342181992813534683042347192814049042562160571348923610335182072892110846563683564898838154711078717956999012322658487022838966461163239129544924677922964906474762568817349505742917777796114069646514146191228142437474150775986158819798639018461717263229814197812029671952146099968343237422100955155857435818433630310714251885831002059960990052043595894285466205535682038681390460183387638754073097106257115024441026381915765306548544365771572699166274601263208419186730985340345415136945925100764827272532761153276932141913768078770070558067041647237529039006305600543853758420085632391516006660551694592858017007692798130604926114207966240936872294720905706442378174426182378422072383772630519644683426742051595463127637514895108760906293488031444604353993750405339330290181694250443288306749739498238700744376683888776559874084841119320395286858727190666296816560679561746731687146673923779098578445760043484315831270405693918484206276740921062076849107777667321354632813435201337536220186396458289315540604174034414413892167271565386249359292879118844004173569483520654845554340241490959919469327153288646614855987035958372661438929469887579351585609958798099171630593404374746523063305345754002522389693254121546019544874994538656063730829034427266492689175013713802879265043196508853043663404114232736905015526733694438043271166819675735538226891893756016335009545674721183275021671360882208802638286493016873530797437776199607847895794867130618242871392912153167172558902444760744705127057188590253388615692001403051128641340723329785813816002918102465857380340763930951312828063638843263891875800271129569112313552617886122213109977880406252300858199282338268121551855191675879153397744915253207066613716277233607637070221118631390932932004396736864622977048308033315312055871258578552290530912568494068792081333357917784721086696585348914571471882541169366357137496243852658409302841686178179134652538106066732860510915360343015106991238273856035589381328258626260683504659439986595918753382887501452399141513760182996747209547955282156946935375486890807217689100036229657841282587963683863550125465375871742856269138452965030802105235697215428591242397301222952559685465078574180455495566191945884935404196408512480908155652964485820913117903124938588100133146831038019749014429247813687822990448031399976264643904405624973796636947051621346161329263184490811562076280434091478107087147399879185909710308512587054545525213975261021501514285576138447552982869334540474352124119218404361506988884146459386254203638473103590333771273356015724387279542708223508826697218546807032310321157616659684897009474277127032844016656109425811440182705434038143846040618682413497844673322187516741419759154199987648877543915797433745301950863652180687194230553251808551315302410065871377672549570893092628725225411862096041958210648369132180269517006881982699684651416684768939452150592141306845299943890020902173070619207082017080728228750213747836205223685847798948304750735287602115964806578758288940789880128761622719315355067844239453056442442893179788816691554000373133437530276649609796349988380305133020529261936152078314531228191908220649733667936568356628241364448992152842637656749489669238421506391211237626569456417212352318917934446035498698242162048424438547284209892874025728179408253208908558076157923712040055235391924656468442684699888604964605069441333961904274355733645272171696723263438004932750775028986764976578940218494852855063480438374410559042931897402794889974304763807150877904636980264285376376334561344255791030667241113407413990721259847106272576118150029246391406491183251049106799418597370600446590821454193900438837383084477285242332584196003664290798048547348234097113914969065298488834612611102769117781087274964990189457181778187558589391134236746773258800559792687458530931518760829888100887176692053634519691001435555904445774895343530812653314956614850662064050732151883264990612440822313081819251775350681161652798472484461499312831180161676483249532715289018265247260463914414577324516144725873351293827186888301311656217600625972764833467653107488040632235996225221695907327646337578822360907706204729362935239235304434090701916362649561241977158947205050621447747036435242502223633394461424112352198525359096919796963218569569427332966741721259603187722987065604665330039510583526254663872628181702826529086116018754592715943173550860079165808495445800559388863157605801779947969338471965174194197565384318012353350511026456740339138062040259389700553740572790321948283257579873684096737503208499187786295142182858748639865527279444051310493236318976627081021177015391247779539324159410066398821580979346895418033882638370691616691561705803520888402381321149408379277598274460530358352583016918104912635858046059271414629428731051804544395394947619129112734381423193643537655765217739496003203554252574579523696551900198142578303355229210190933607003635305554404830542815621496639341785498945853503301181160048751921988624704812584897092007754165283651072434440270529007547426974021095045653437098687078167540894153767951886368906201094031973217975864608470989685615124664063672105194762270311216269460859854168198956055490283234656229810306511075135591538104063892280227718301026667897806975005060033719702238195406936599812741755396873516149981180572050827312896105870896836838330620518675189232327378650969292908370903651034387728693502725528995491200135051308512806637751931165614080295287307429179367624129522635500046312401361902967672543775170199509825247885922398389114415205417664279514298330485556660192446010988050318348664031599118161280287019981761092398734369765936227116242375397144117057785647161871159122749435864550072684081002360741677007888869059402737468897345782683809168363001468289549583074342312723736576671453910939431129705550276403622875188287712431034456164307727095036367821297994326347080268933364788829733961933271920010901970093802268004945091914853964772991865340173496563283938406807899930166088290690339577297230570719867206851627472483632316090119695040787070400315781559001464958857131835337299614581876128736515716153523926780430593570546678573491298543975671808459427762875170394285596509355278218996875111399044310089881745302386136845242224051728077413112013855864745088930544159782251004949801256635732987498236137489775774774687703127956551772471293660869001307921499859147423949913119657202611239924966087387414513381058560503552241184166619247733766364202554549566982662493661422914271447810830237938807748167238184385160062497373197511403141685879981746421766551836558737205483670471652571002873231185915125701433788920449153112282875065031897891457061924986043261481283735452669131250226573435608749799342417443237636500832938238831915736342347465986753385667344020582050870016387434232013351633373869704456347585486106082863037374192926062519776497680414952172298962960153145232460594354809776046604559692945798154392016473804637101281210263189052616423718460367054069921505271791479434932067276179684848294193064670290685276450562089653181946289813704851846291488812735100994382386958095759870565576557596643149939905012403171869064719758834745197979284048957851309847694716422178845143824310092998342995783138397857946176093197674371927429855760582081404032340884322628300223180802847107110969406299517904920516674242529653699947156289516675969109963189412202394669889075680669252040661392194066554593891258886257197328083915167753930460751991656757306592426601987325174700384744847297398789979354982508979628111942552580505110723014343114579211830548102913869309242492655341840095876057312082416298020009739517020238124631451002006370369782824531449972316484145803782631634265335048537848957574252157208397206991941253572644658480011823531838859952336666775550521259949077864222571548791671402923110455694516304669086428294116819241726086097510005584547070712480043711128861729359074320947731182863739801689260556606241601388752762530733506597082017198197818193207941731313824647413112488652111573319674561156147954900403653134581607400405219721221950285350468295738996045803869902065128857480028108392749881844554016769239813585431956624228381875506124714003243444975577874157575862543303003975616618187163101938862698462796341083380308398627180945056527398067747873775968941782083534118701972120960042380927556303010688015475503015662414012885164260694587118058461007016037162243003442746591568421877386642204647093413555111273191143604597430201765735983470858214661608383776332557451542942434653035374752735007230804058037169180208977730909300184225193055450993654226822999270614778152054494514781277454041017303500606479636891450694244572926953192493393093175521053926056987380326376581492956105001549036604361774979658906162781234248779704704929413426459837348700873699421001150399872921601063911560704892161621945252313462560541411076061491932703511845700262067626643222925097532697637943230219021790783999547066872654643261872230491832975634227210547918502822359303394368727010638254394594076130640904200466744176714822450460682146214280947033797267871107011321077396457516134481634288841423200084111079085823365128664684794402839032421117782465530668031057167604644916939724266305687066772830178905412696060156268725467190181799489742684545761687857985621078151296164518838256596287389714115954739250948611592094255904051147824885628615652845054833818803872339870077136928261624954414221738863270781966120614975999377330705282320090968892626936639028201688401663636141840873131752996273094487326855202320958377861789125273798055615233586380285663096866675829382884251280274821154187997119773835685543687930129202738548663268180507452357934924936681753758107271648764670117233897343255485728793620110083623407559943615652554431020857531165695189131006300185861991719491656293321698159874618889950103101173480953958519493700649791990288556009099831724636604309611206327483975792617652831045933513248561455351629067567814647131013070024451752128442121035569172873833032045959918823287035845168961190813357785079976061018466630290682605092649638746634539129392021704257799702493147117465396185721646354934317552152703561552209425474362641161640731178372416937242771521130387265041413941752231656255120055847178974932071098375216708521877938402892107418940335703105513291350870992150379588317205335355421884497516600338435690758708861665199149328492933888121470088655465526593442356617358371233541470460930693475067950939238738208528388284405450141547728250965027342657950885756714299202763457457648983638200605137928921990533500552324522959668193751920589726305866038156170789075675113150342681363288061914411651534881988630480755922710912153159770970184701540554719261873419306024523537828773052977161015507709861610762741498914777260048693370553495405804542530284944159327400719548650883217194369574208809526274218429839776488410556823226320043223747882506543549395535172585204522151262301652598322124540347340235143278841187724857421859147614613152839827682815015930084032548969008485827466588150000781712201935515533526196608498858953490185628368333339129328035992701933855465994200317666157992925841972357942322895103918692535616626328800206246844278690088069958613595750800597523989590627482820508091864340064436099519339625614851226383180852575664982362909753372613284990871900561090461624818960691596385663580339684626842706540615968946715772640466853883807314936759200205052006379671034286303199773142883702531042116819944238239282754846126673167331796373286761535429101762944242756453148396962397140785600094602419731501865802450541002155750712717194314061447365885560778637571549584470984627289444718208351712927429662338635465263238366420262328051933264448869719318210671922035896848477830551251155123724891966362752377149962465837579543580503350134943083649329889744568226668722008391152653929356862153287062034873311818819980230456574490109995340416603759294664215326781067180048817631133174863229443576342962126757522440944871090511175198964665726454880320174292762750093547589977794630903650840446981118839776390558671983909930154629105640824252447233789010486941830754831230109195568231162384212163130322817470698410501051992538158394545501122665540816576744167275147951029246558736440092691651666817006511563372650523837357195263142601852252461539870527792082450828207964377206038263533196379841758764995826366874018133189178651475570384257493255569470076301846542177303949761077721094240936741136189016148071835924041202718609938060686575575739158115870785332727886127536397223662372577397112607131851654382059203272490551893287268145932117413042467653019508980034569416780366153310134888695964136439861310111123853673859823541711876805916463907577134950248290795530673875908478961637340659909451051261201905024953695849322856910116064312097891832853631835329165383952376497213219032560720560376804107961116523620657770086973211077483250195370036177961452900840528263262017384366850649659692464423781596756734746223092393652640406046371332832970768625034058666755847464329531764846499916010699364893244068607484202234082686565739496052168351740171207003629457583169818762299483514934592815675265271867823339806070394412549426439673598031725415327695044148431101459795143913283234208645687681392947309107182146909403564087566495828287223515484775207865312658864008626614562514038912095970655447655308204381617277274878554524630137614943537593756941755218651437208046605774281527009173012149869146456648132365876222697913246086111257893624842236565762446810640850511547921092539369752077098089360501841962208839144485846730888444655834859048020651278105292983466017517559553919242081429367604717991848369806363863187087281916462933753081601641454725815420097565639817127679863718499031401287981962767695699862096440357598573640490875019413398377751142284658167114914158408408401697010855857939453074912416083961351884915362576928321212739757749220465804445618376654176584067860262853660577478209824127266624875584250242914783108968511876607159658260155852528715084071822829918874277195243101938508778288598771061097742162289853248234358266963221467604077818863562491797025906508069965908106940498580177661764212177108883177470579452045354224312838275695654348023146300589726841921608483017449658782957493661852640354841711896773253751980692289292218458762421411910784816844371859532054894091622147792192891191011109268332538022742833030444179294131815368518158775078465872587038308599417647185632906558457085438774149367454419281402504981935704652418347432485827677938202238586406676014019103079530060075092444691514999474008903705318742957761329432800987271419790374809816614046759956969936843871194785488392982039055271326152161646749916458827092939589136745444190650203916716582100013948800161257835082652290079102850125395834919828311497958170597957661934978746473271475221848272133726468706268927947368400908849848813431925341352027583164546552443201925666189908862392684843149920501802335508097281768501543735880997933886165621461413676097649557899068518943216138712219405665671339282717640080670007011234626693620549393447393212830999677013328551503447467750983644047320030536491202917063087757105935951544415819594197522952649898326269122483178789420964764947616051968955211178366320415638377891260847807975878667970130143379251834421886160916027322124696949561243009203925429715952978632881547781173746591893693280471949742849905545612057748209807950681678279911618304167433901247596774115555195831824416364334050335559219826957900195356245158437577420907814382489539287496574924334700013877200058891786372154499205479711931154988919253556059551865793648503319585959827335151355927829534417043013521846174554017295862262808062810614026376200681555041374741287620006548846786402378752760349515330343176888687593261717213069648177965368477108160591656115576473804889596171351720891186273330667447632650405769870778397911418858555172882716055570697534306405356085050342191831681612159169587254865149082263390492096695726996996034386442080436537803757138294777467603054985563656409729960963638466044662908212613184026129616443287231257980108031744434542392253119829104184084933956509404983743350087982344385655222087842746690750463462617865271322706221437904129978175865258740246352865798986762354597854652128587241614934980028949225252759259408312156861602294675524186874204684194635115943805689868036652415464440167419092917721782738475069396563874927729167230444462204147336518724210206878240589103532268022298484519705682813446251176852669005829053238648224221260290344916200399177657465182150610627402939794956187162449853547116624594394069499376338371244349497166854319906411610051021930432642609288637253693935606310762528609845675022566335538825375734478729181092591140953834930928242507571903710541661438773980633892184091497017749213810482369265113102147108207458680207819109199053953950283071645666512306148703829738681241626747787824237869557324529292749654446300629662878701837470799113597416686617750494092410403254738770533264100156910211293570914573079621953113577480783788154080638251241309087743983793548014092705618913916077385017745254276067085583616269500962120549706616780311882298685707751083129454940820204627376005331229043206535973932874990302535015096838473832596058625348540179903464071699833283441630896629695385436508702862742837152408096259927668251472565206387480531916142466143795236589859153290692259739355250217756854700753436323935714023718682072990035265500612889507879350702632787656160958106056718043008975120539269566884718553722220457211294185588925964845792378672333327763475504818554190892112869847997646270568942197650359614625419953968700764890917555910456734303520746991208192375125079569631601562787023391516990107416006837068895783545303975352325712041858638915922960118608084892589093772923108993631332343499666481786180833616440682159082412868268998644999067252632441532364931512313541195767365955613270907511628035537567818716366203268246520976323323677582038889091019619235835268184265096923697394017289634659423644757590626572694178582543179806405824242690641160809574433030638593596191762709262857140527061211793388273865811624519053264551702604983477001744998164774667003347758991584684511090422258952122600065432726335998343609576012036140071844064631215089928862911167183621492805381128091174973612217737951855110072933488852261858716358817266724534535221728159215765058445451702958749254604955951771307694524559965509838659610310927316918554680681799975118144036283904921523485859352905166073232260228800280238457142072396411484665037274053321281862245546192201677978910881338247337795209395324470866590566810288556791182705162790977825931822787556258436094922698807979357369397807719112232434978687093611616359637621989099088237297638090690994362475891015705572616989369029392215209918343681948460443179523106675111225951954215980835570964919135070472518619148263669873241312772055755333524550638643949934740113315629346306627949720819679804636779484001806900025672564866706035382539955276528572434516153358364802607570701199794463774604581823265111587561209489989530543010469480647248341843221045988170370214438151492493504350269172456826756559491139712120013827375474235304398215253612925606754066096873508899925860669538921517224167607759932273020196848486602907357859127213413091646274532602789031768405328897693217943832911184846401828067949671674801480063841623793901713037807570425471068988311472710324805200250833042915980461854771321949964250653967801049828770719301643648656189046342825126149772806579593001563991671557031234319983831369258270361369541019747809411025919458033376225107153772167241301523656152539649788628670298554656022059943869585357324481496154572164741820625978620138030195862115562368314678443952681822528943465360041566284691435933728407475355514577645328692033499717352262011895264548688648915917498882795687257109700990855320517338009903162304076541410669499542409107835702568649865660404637542839734944041853699908102537160526113079048534712555626702513913882002830238725162711425704725163670007412468060205899549134113214753735782478762975674483429412689311685244351013857467053663463005762564008015022270644360348042424619688818552830047706459947049557944690308598089264444458757249316520994935459022383306051025977063614092211699574541583545024629183862400483992943475612577317412448022715474259538533520352821175275115674391359434080107155726056644175871400541150987018206024400835935514582324640656249359638223085223607658364629999801373625741727848646489469889151724490549898979710350903796555197438682836207095135786729283215931813307778964125349712516217326360710107066243926717937086958729444770262596498560663779426451901710544820756871249603265518663551558894579882817434471814114379147741894346693057084659073736584140249422779509650927025018279583105598897165947475258152386562612206139838953177135809486365838204640829661512017893136354725566215606404422739795640240017101549907768410892790575248946192461478930589155024299137458561443875178090425825760158989015435950119097746888946233159043649718135411091069295909304737929644641005720460373038014294205532222851079982914338972678643328352516213884047258792835403881908153193676569674960340938901015254156993605091596850528698534912193134154443261170225334366958827457532199663715614093347597325323777891908246101225840952770817209530629077988700442368880497468766546264300867522000260184962795524545156765895706343325749900307748109084012535222250853803546455904042768622743274110031789628875891515278467792169916241495033694103062327580428534626432714960659339733601836960291860531088413073120653685401527677408378100837713390650520491807707380922990159705153879605244123470215635739485966562109141349773213973017427245675314752223564868453597628798021573564018819067714842971424155612143773863082954964746033160926922593894295914010215770861856977708912838263769129720709214125712877199427901232921900221968540509847788774581942798969729813322594979039826236144096548511650619014163089828163926880133771512748432145020639874107599634564102901692756577127665923442251100555605146886372127150204265008396821187008227652304928017862839406375498034823605352770945885188907615553454430420218538409538414235977303621846846821976533792525868209662841374760272006046931549992318618755705536101838679544307103113407262301928452089975620369234376067750734263123299214191256840133896761626939579031872628077477761685166780404332172448888415378481686187298043092915921074454076285605017700157438407478059654601922621293420494530369099195493499970505280170486851376110500002246568572931010860715826663504179853312073589750410977893468042966540922262371429227314759636256378028977625304511006686761030050318332496199793939627042927686166825377749227233987807420042761324070970381961473790406248464328908799303514865348089246730910510128615730721491873946790570199250727383088726569562511926665261699590073904287737385879382168844485607253945220256961265585619455301364009787946514193232983875894544587807570783333934731805011375574003444297480715520740694038736629387103852808667606279205438223120224132794805221087563968769538395715651512796070439729157368730147509146591324151015502991976670896336058148549578956639058549741411205354042536768334973159496972067222152577216607237558245674200092406850202657609863152766736792424130656093807933996835405939326966466973268515523701989458334521411920362676549438241212276129741551784417246156692293979392906557096264502867359109247768429923730942135696121055278565155246164014575286289936063511485502520138476622358064994528531654235397230496571232920515480533253454709498975324887288556243915260157312435514548530167881819342173080741756219882724665635440838732350354266113487854234531780737405903496395223029959166854405909359074869334251534439158768308221016646348465485898106701750537198612500295567418918395204109219753059886398412556974857091031708840117867758588502930157488758462494768939366652733716679417620150857633718202680948728755626399717848109421738598833905076762249598572298945615640305388686807748150551301839842999157015059248231792522560551560223925159870305658050259992856125096115560493871141661629363910170850885158956645505146765989914111466759401923749894018267083030952653727317406897013164797679116291437468579730121702100717650242240095995394387974884426533794906352558167172656434201209053235501877744846540225902863789725802664839249357764403968616195711767136494290829590725248234894721743593760470715657134046380201322909950948897048681805957548213273736061611825247215983281559190838915765365657306046687742904357614020066222907535450361900247077209427274856065049865864551100173246727522290313883298532474612349577009754934822107342411786267647497874044866467004031872653204515934264106150914832501616291412986333798879122482249181757606267058190147577391082017110799705378585009051507203558604433537391968357308747394157929157976214668148760118323399259025719032617498202660455419704097846865547473445094237285207152974637891202368216996459194001398193873995649198155011166578989980043789345853320290025884496668493995433663942100131215274465898414134985031935659876964823605997334632840098188804662225553214950055218216240278479947901862037213063305429636639256548299647150222468279606243392473447161687948667426916481855186781228537082923175587501507121967741929631089581676399612284723157600351748607082402358828867450335481538310665653023848685800049907634764538902929727257959461790141810304307864069632921212550393729837641913333330680440567236820701869398964022791340380541021561060376929415212214476499799324905794862213961393571646626933533785603259622337839514470449164347166880523041071472652765363535436072072757137276564392503468000667313214504360211224729779178374132490000230249997010005507783777993133396746560630723633387853369124457589958803555592923915101357093559648586460415010659223805473780788542476945188548670094458378874780618060386867992871305914247056713406897983954660645153310600647612752893133970917687781765477960322478539564607396296400527091058474839123255313045976290724106237835278334641504996693467693804843826240223395671746199782559938088274478034308979977603975602803876073866675636424330660985471223318797631735308761294154883015219821584557574042014168991717909660534564238701685176898534887012780463814979685401417106374106540443263725770170706035685582492820657644728942872307117790107132394479779417983949500376808104285074819795666292044009462893491330905109216132316531034914459924282471953300914563177010840307692168442517696756779175730518981932725624728871265346127156586747712146444578301328109217111080792705701774871731386163944913610875436748665598325237448442461470080046928469849567709347194126098561336639826052156366108463454094673782983266746444754884414517954535418647638427498646454170275380640651074063327738144521800986739911684086479427018966136116137033492569266666046351056601555822984158187411997197785261059825651606978655962326512055727615220874062949900776766968360065992231481133461663548538017464908990107463918229823741513252893504370843106738380468002651756322690505735010257167574022951588453004418063463053201240537914304189141777443351446270893870409083151657571774688258669430491038388559049495574673488581839607550575612350505902598577526834479501374315944794867178020214144658387609472811983535296741871258069207290775259433391106483115462454002792372588644687333353433909858825954025448378065499290327311039926055197444212161349644000989705455417224240442027496663496309200775794948826718963274405318577235260832660414121273002122558160577611176759658101700706102276082947709865599842000870690484107293541862778786511523594033044241529256512159401344441706398341965313785466843187772519944090633708537413756388086523662606556722245266404131736578764127705055858975395157247763711656224579071098540649436173335033933864941929819662440355303096015314431776150473662378168307544496806527287739189363129097999670942968197740856664912965929674447383181357485058896879501346975455926145297149523552502911047651835465259547914249553818718676938833709300081496864591765846043179147245576845507435473320550204914266267571692697837703266997369362904810224343632188284960214380850396896138746812731415705625029098537539489152049071675977128756423567167206800921412813316932231392267052020970981296969646581661954872915086132353611123984352789966804220067330854443490055520964960178115152509491249288913979646002182033197269350818521279662499151196474002311384603757631868048072704626426305617866676021806263160939777457740459486231069480194681229140375855959108463399321560763428608161836847488595685901093969280959254671282744438086188547694590498942411150383979969632029798418382423921541000176463825737013919950766322744080180259459455436232676348956096970042308352616932175212446395907530020246008625959692509500300199906021243022059714657812537170753986957928825739170547007510036620854848361531835997649579324279637324364501094878823339879142007507125695967202198432566869765166411306484293243240467244802987353625831778775208513814097082202970963969261258043405483631518028630547223796315751590640937899682431179007930517673374646644966283896654254835904057061425119257544007760456443708645789064055809516621616655096762752999590592524806882524321083617358029540762606122619421693407972925432780838611098955590958957452964061828157206252873816087382690287307276224589226993300576533328314834718029776873193888633581056513902121593475350167937994256394363192484512642101227865907572104155880067309258440413925964921383896998213486154602048605190176971549941031904232817822433856067778466652786440024420569368127856095150722185106884836909437433311603693446796119563395453338291326232940294822691528907486859772732649927775758041846339479929092158320192186927936456655345554529890470124264596664699976627171771835383933923573590665995610373889229847549793451545845120242396965968821807122866671803106216909270329999313121900723863069445129305555097402640434754737339439876479702881566155007164714244906452722417100848632215260380598252508019918355415875768240568065401926546822603844325242221257273604142569352607021618977674670156892515437396483317583632242716999649564059081142207331778016783905871120171537609158203436606214411663005388329921006923579917358474492149788611690502272772824538601518777535794971608729080628102267257567655295467608549160168778245250442999065320654393504388723560211876965603744627566098352904138760707162547608562392197035834161326741906764246948101020062444128204027985275898718621734078281799681828711159803472302382861063695111716733527925528589230060635671583150716975678580975701417658350899983120557151917205677847302917361071654390378112234995909507383891211004155516131194914937131545473697234799039245061025224194275487755250912711168327472180006800697918584222801321112696670891921716489334890032743562174138938300615915354303175983548539511211668321631725642534925872843619569017705692919810427561124005085408861869301150610997987364876362882799217366205151621777058623802738400973731393035361294305446166717749356678596997837868626792748035826324444765085126794822019751160226254239449326159576242865441182646234792393917257025155615920256457871212880254817085602712616693969774775735868424536170800034406954035894209964450440336643062321920999822991674367735583163060510698725271151714016208298317341660187583348358663889125284323356412996828544696449616519923349367778063626026032977978337659131983026036623005165894379619127824485564600910893396963833189589765874852724434386166116200809820579218788088798979718920996673278077592696738079653035988536983939167942471328838406503451276640096416039749919443171635238656553717786454346915995414272126453438992128569570479614929914513078766591978586186238286600188208118599241605343758114629040538139508443458749368748668998679788304046220706110034388111669604083275588472130159246886025377993048409675502221108692525976741908033574604134953422497924195186272846061251663185583827580633552006350265408447777331728299898817868450123757897132428094538626887981380357228032336429446472039621449639507783218430965720801902598649929905176785750057493831352198777048786436609699739885044453584452117258147861353953544533206958092724892442446709559920541115314934927284317303560224364279639532173425476836911459784028020167920426946884839358809680899252356748602095897096285654415744243502747147974208572838169156128054132766908271824692648436076916283425061547725939214860530726188310102677628718932898737361085212530516265514628884513546545619387576915648003894205817268726296988770340076498452044412992629389807052720177267948228529085429667890496992368780036120361535620296334468305074004054964333132337284679014935940111079254672642015757570415945539609346993552580630057943875644397378209516699497810670567486805127974537029232607804739995768874392798949582822204030214671433812859749352615151627288046297690551658362945417815208840314806347360989677179545215245337707392986049042274738000909210967074406390426198252069358453299035890923431177034310756797775411151469356074087622271195257337258395458470744806505751428680057369118669630216507661290459872010059312667659533507862676879132197969779726222305712492301857568596046473723463949136518530469904464018246542324435840333642297675346899940029177229134465438857138384226849304349070914068118532326504485569440613098885561315137901786843354346191716803134473726041107068876269975424773024235500109644473397666956748750166759455357173547642540990001971566363535944512058923390747524769668918425487160240359842909989582893072542729986116861269445367705498994619475499472666603122157275899403974284805276279625452274524089505860956519603626327330322053687681450993282650417416391613969084953339085396299217694500614446544331912747547903074482685832272192825197240780737354299714482221910542330622460497575863224499430603641864090641601493189675747812199876363097969824055578090906489795271766232324193899782321557490130847678553094549709288141849251120608661314095364120153035314314081024542793099895144125248558651910236052517198477162125477494622459054497715636470201217171913858349328721670175799564217335251593515573595216875423226953698018663936476020695356119798172885133700482776416843140490739182865317941073049507880117040946462466415366477031745321579597132729891426252348486114996101372328362336297491441421104969857927357796206226487678185964843367005651036576689270631028810004784000814468826233851905570929644526189254474145395020176405722175582201415567087397296304527461831707967765292725663751806349451523050885221370652526014358616977307482431978348907474193817966013061631088819570254999624751219066721521697927214279251994140246307680050092866238575105412161374843648759587652299746855346740806229285970084086076839731672394263287409871311527096484236478270115224644148867493126608354775022612693724480367230259045731221501218740929196924743837571401676272907493573507499253079628641690082252546089459994478168984387644707624770641314140015841225179643576393398103516474204752348096835046211058865289514902968460683248525750722224522939017449089328936948430660803666959666356386284609787863292714824196165514230094506249326992735510633813473058455021349745453266702666239185288874265004914676989777165724487507272166708678965134086484423728349992187760895739105919706537350212961234639307947434132216802697715654804222410323316074144192229660436694610279000904434480775835104339653197928801560682579506090114554596856143381712656677875401876449270051046831682606083000532712654244576945191007896765194629325717259381799793944481694427019184368356339312185470295213185516616703299896261337322536479136984168343207695017294854482287418439879450619765016598918463881332462176456895207458876097138788961950569077036357452304489793201908106375147538865272837759387269863259054434224408392377506138092119916512572009951030345066826270430966933524327400747173947905507688610933390326018033810448278555903066621050438300567553370942562020640242467834553323477366809702381915736677410820172804762115764908502882957230267992171687001032881971011100656011810446818934840721113287587436739466178705662712848658630092545407312841438466001453018895522619658918370165925639334655376761038014350666159121240485500987906300386498060385478868123309085880537413927601673441068641825247051040754934785760212972184501169174713476180047484201162729009050476410152515215195590719394241671234415757097643626126509995513382642600475240174531112028858998942869667234932423745738137506654254582835753722599510434038871054564736310464842980389218010960318529647964870224940541991697443298565362103268173483723503438770504447061137992368930519020724105238048865895850566377194762312307600959916570502644184161129060054335298996737452050463280627171180365347649917593431078182202373188805612754348811612292531925206439774142884665735839062281073278217189505612071490442608243159262723161746049635390282280325807303121512747963714928234564207155571737279878426514652570220559153458897674360500246809918521495841261546688192806809033026975471734493843580461970752632493193060777769258076421383257797138310088838842920743008144104466887846400095346055357756735402424441904358607193380214944695672560278445484985037997893686017971958400612716009393190455678931591787393659005870783443898097660832046374327308571380140196845253120071393637871338341329834096756268188244771081122116244876694724601195584340967717668907310972105901484083992722027819620880248783194664225208044285802254715925421813192469867637093516729137874270274061028986952184864290287475957770958736676824959111169917294344435419046672795558087396447952642674132990384450845906102743119581447618045502091314175513288781834480393601738043843916729737268706536760278437819090262511126387932477420820532683231394356892476099159157051114079204665722482025743418498227813910872591296495964230536806756049304929721502868634332830606219061189713941657046766103932090281439406988082748070373465229201935081064355416330748110791325500491334872999295161793904332341632871105764353751662717064407410095705737927436944124229327230014892317566973719049747741546739138532442946391802261011295071383265842823698588168076516232061943121188613652902917093562938316729282370475740145990707243905833375898396472761514207554527194553693578823686636855626159248295284974040428155483612004329369123288060308263064797584633946731324592867302374360814405994859462708047735031711893920650934392379831463313476896202742556607411886726547110936705170689789696450481277046411009625210298703938428708351426313267540815910293224501706125489386308166179401851513266944797979026619872024042122343362475711726555055760598828664957068364874236833004214277369557808383408550800127097795711964619487753848759983099477641230774114584439219186316909615557177869894526644501028415086019781389867764351173598303890502414986294672245122292455497185837931862206449497199078029082177269168791592304199361662499157600464006540109748414269572037244333533748799223478684119567344347064201863439258309119510204136220698770131832381637147985094589788070571296975391836568180458747491147914368898356038687649114778344848902652253427495769343933679447188654047057041056278877943655472953850313328000163334572838242538429714448906615633423339886368737635886637175852113661445134617654106652353219846746497483642623862330549915844555617199286324398924418417506971174753398162838579812883876034344502695285874654247183149446562330057965864697869298617854769469662588179679578522560743377405159817590538679952625803108149897953507967846183485822986652275779163950474359510928050589229703814450362666193342525774424407695183403848878789913360005182103828148477434480835784291812478118893282958503706245417051290972779576121920303906797928482065923484482334894204529670971014352160375819608087590953636465668015027061929065439009855311425110554832234678163870186458989449162303415241584928118754115667785944688429604872156573257775612713124089432392641747423904068140245410535887420806211653722730175779306236535304207255867840447680636722705528097342552192907903495848328504996905838320234910921022587079104765845149356292525358234981214864834188387724068853106364259604016965913469401773351382851629714053079647027745117381115355983375733790560550854093291063078216890787787902614804544366201555825379430838867464668374211636911957790243712399104937379227514533657239210617765330173256562347679430294476691903431859318259098258709011903097795690315660262581023800958217507675286487974163563388703834171006271291884931780387720129553982808449528814661978755707491286350663934552336011383406155724831822327087502648863650861328835439535407179416989473915599934587762362142776537540824565430499127627278529961204220257544968635652591736347270494586771102482369767339261431521004248525570224155719672090745297086412126201396850148531790458352650335850693178473454484838608876479031785934961416652909610549800947759371519967798806327252463694674190374196268665611909161389611168621570629007160876279786625261476989460936061241330749134255241666355415705865343553964585552660028293684043616608069207621300955007509504545209428147120157208176985451862494914016941233888367776394643598862452412220132744763431303018768432041209385186152141249435666829455992625719121574539352790047942560953760899394212667721772537318819715122398744906448374188918596201288601144735749987923807799381472024038733872063994962811747620146473614039442456903602426754025102938090534666535952494482360948511468956734950596270098851905607089845574289493113481446324182156673938481062122089600221768633234563218698485866460060324271101203164378482814524138413043814725153779551184769679101699520727494009063765838888101734347386624111002227396343014266649025442687879079194592821274829984826889464172117397484673369759780688833179955140513408191819491891279349093719588189444572364511388772882433491728648770379651067709204409157608410451736726151661896088694367103100509988101844640211847471818757018368913600416007104938730407821094593411136041507534157017736350067399108247094640288665680126468178749848734393848540792097084447349276889426117899580088483704390929146902696061622189413231737229485543920338090266966549939740496132945997780706913860274136297161722922550267687312330979472175100943406208543559627885551873861448181382122130884518886348283930083900312146074222311176801258075113502756441352360073315940472233470051531792017194444925571262377670554895317833876609402690775950276491519456921789961019742039858235336079891093360073951138437296490743624212199572414498872597610489726083880101191694850546752818040119514595512360752749160453205358461661005010485704518426377937483931203489193216944619611033274609512556023137128343963538417847262720888094733096446906231963446719715458196008334406530012880244722315801192956813833015114585912668058458093304379245870226680944490832985403064047479418571834767428845720436214150855274528714534669028135659577778239902936556354101165649590419346249549005999516594112648117426153650010066247288862913776404675704225888251555309793251424557385585172690724576547195948239860070480216902135050627571934033757412610688438703042480909520637572313574196170634273568948218981233878672955945979410182984899008091232038483397453056525766135897832510244075476825444272622714368874819782321762896101429222430356959016450155151966902770691666979732653999111158263210858488214347633485901674937322977687122631779246562584812135915554545948926100002179338101483783097755531725155690693560501302034563168990027311101357094666252728327982195961265676480340155504056047013580658453607475357556712693509179172691134424587945963191255971671010717052140710226805133370507459511158459564212457063804664864076636011857852348206327487909740999645399215917052476210535746328492800000503757754222446675952435756559472516020539811127052288512581425191720488525896805164772772834938489065268449384179072513862932919630062754398842570605878739404681631891102162222644610708781637087200625049613595776841081861069617447733536148821277334977326310130144276375698207549850825915666544343915950246037294817219023053314680353331206623556730205211513835543650274598781448301275538286407564320317111767803333595720288761300157341088473136456053505811216573532445906126486569612679495766407039328458316989533127498061589817713598304133525552989376703585437434509451851531454076464227887969158172635070285618418809460334826761901218308499312066811476208505091109317349476328699960739496150015304057284033190125781614141842302295055798287473147602467555149869109666693646550160407616750064981533671160958239671344741448908717502563075233965338588567710153496238002146905886309469159312839173552814798381145128800582994836549041075116730124394245676410148330573950628984932070747695829465777242020702363515904251146342730074867884823856622853002780852364150368676715653793110314029490021864392806779792389171811724174562667260644315783454974293022870034841129481453012989902912656919044319052301223934558742751053882558453052315497743284568577190227606549850761109944263691171959620138248330358334281359372895414303239502571800250963623091837858587411177321153394471476994484284904324615521504277434587350215919454513144085444907002043924631981734846634980028124976142840215577743480656594114875578997557882031297902403406617404461046001131010547554778823551958299236118579562018171679335201593372488166110103324977782946375421563325223621710197857364974935447562484353613803697587072328197621022912241821733161077698642229936915505914951366895241405695689796587468398925636687056984825830923092697874485643647165416478801224131223308634170288370330239441047782423016972739523428448729176723887156758929666356757301618264897797811576517636747264992220706386959342213566919796506925289361357467857474414768370334869255362465781246571430055280482967434686706230443624254070841747111487574944407078053786015198183715322718224687746141232392221970573088123040039718061372524898697710922644443006276868823258552519767802252312737553198049180390397695995993574902996753686134148024940847448443707831893516763478269451096354801628030992161908163136340312472928989954609141978974104775443477944403091084988707812209992096364579813483569611271207500582432113890767365798543092887673736407182888629417069007021805696072533464026901820836914570964880047923226165667323945243441766469717476661214414623064891318846898913887269807157422882848993139632940075759369409390384789727322275465268563301894764517243845291012366569005211092829608311299060213101974936577811606191972973469547194120224537588184785657405612525601959036208345192899400774391692166964862987698346155373469597540909132387836002421631099241036213917125733884778611029412347863910778050238752006688080057970608704455734414966072509430883614740977803743044459102703835856977532381641989744904225786619303404264125214191292849008239705108491845600529369696086429947882875738519524442101176113915607506449222798187796901707768737817250010875953325048732334858958733000525304505266715815440022605590453841779500655084051812488721326887840672274671038742061033614204505657706301198882888360156091318332800060564419190184391819957574497889285408569047395109702629425607645656396413082014833371172924247012495556988335427756475380302182616777253337253139503560572995966766977133109551915065149453588294666794541385193671478390404296781545288705213565844073731829782643298318743660167883835481589115782479060969331542747074036604503285053618677869270672830964964075999810682858123811153249330727077005928650241997776576231431753334916782471692960407187628860948551358760914992466014701297194464961344110590181820736413755549271738997993667554946314813446688161498280574752345950254355627567890424172813112551735628445481703575023027374758694603976966802403000978467885310079545708228755767358251541588926483839876866286100711012514815147075705825802842585777236657399133863636561006847371083473056182441070327375440410027447275064264072503606436348144920907777582831380625292130039302324483970464401064181978018335404831696190819476527690409165553408120226142907382745934881541339264665527153930800278607481998192888151155443607988277052191825681683489982471773476456116137424389915942816673054337657159352288531091092487125025864777224577707120296844077489581943027092791228719053112960243429232132837589335298140131142843497076293462990214935244115166019565560922426954822418688428873814735109019236355194557414669026971928114247803480064182541568963844947265903492996117123269275142463935906585511067065545248216679733716509556552413833540104139321456322153844497624842813636811804437392317190654205039540043967717885389712538840784669335548133963996973765416309666265232867880995340058607803581128295225359218661362644251296854749539074521249364587099444636081945055400385549074539307667759168734339120402307916598685611534575997352896759357865049424746988787120815236832616653352114669916535802592575043278739711112737033739657904544435748211010823609971090978942900951851089328404783297378893735945613481281796940126460914117308886854441683605977723829686179328829568792168578508433575262730694777061116819345354430073376022896753092388297300362176190005167055639946264039963998230108735251028044695180434707491303088961225149613613391711789947039624130817892540660809725910977082357635085140973515391691763755396297165169256832659035244642318502080980688836552972740953328961202650376960461509440637070434738265752674618648646776925395020194518325118420845618848457923584930823203116367612620070129796847246817713002401970888977949711127177597489744249220297576895117485957879199193660451933217306470548340464054858927328029592831110199016919164121918807813860381826261052680422361874024707060106632666086090584868154834450656368030543227310707037370226752618470870444116043461665089690773245422004867112518877808284069433171057811286927926587018630968273109731697885384572567538620214706675585351924114771580242177481845867690948105702872556748612552951583517576138402904890919020752961843468174891627606422205330678150405361373958961401724146189600786360469232814640627324646056456638004084362063064099173464714837789917284260408855930973442609492581957106785196980909660802689285906218774697741618181514942988694867234360996864953490806909559510815944912144921524753836889809317988578262173027562255895287934558919579151897245269944156151692873785314690989506647715009359487297298518173095453667147506724561237302686722301029729795944194609924112866000522081309871083717765464821026133027456133242533423858814618303257305616715109014909944318416170061569772324127704491620116973623148426212447794127435466673645497842292420908313370411410232717910607600499613053601960088528563180713764897472121477310300714042508450664699700709249618239119773932405541667355353757659957807492832972100475301318426422207180313530738769830277600830019709253956309195829829737347630775270712400098331791818372319791742380828839358697186246197443215182717443049123206743475586031321467196393638179426530723899524121108289016005142680345090302447415096510747723672126360207720793443336641262809786540188987483996878692581308440101438866683764008255776466979745386111164695572301924485439475289999623538788290060671293759541300817298348105643313734809438714334134805135072106899253651088506501057605089880437642141791109585811188935857666379437914494800955129972192043062716942365833732831541644896390525457909944145833582138737331888367479185379106502222396075508293528911799258435987439528562383810772340945830781724489407223186916267567664596414278368990335557439705721463455855266047936261943711976803207176916620213327060967850109504122330311012350991512689255516799140383920944579949471518498601362405530969628669992627912994620730953315324649272310526474159980825212535254309956248156992266139502776329033717413183274588937666241574562444405538967437799121827270515438005306405176656190251527831765549687919276939308153990852243812694503332676205459541724368653448279977347760095191742635272085096705243249996347072808092003536383021654453635204719613829696372319314100378461182245025042198853851575835632021378692425369651558871928613519931734340446512465140640585109627558999615487761551965666349588229072827950103342448964038718254953831264386081952964369237503807424622074498294493041915153223910393448678526860155714843810051581466330946086942598347735048930622022417393557132618640471806742819588057859482177356663211404530774516864315194612611537144520586886046402323202723899099607803135386816968932243356675415929162357305443150907179853025440554134236732878239938981278225781779153668530954383288416905690609419553277144467807242507920779852725563554429135251937756200972433226415280808675274939364911176511583344659679048968595892872809539500237591031744589814693391994626672119974730799298377662559743531813864008706889407303048101475815600202894710205127496724810617666058320700963341036833839282979378994971161561382492827956587835464300262289306765543797713906028041183742938445206853185768880110183515941129527518854077711806729012253656812156690992894026326168761724835938171407735925998512059314785539953121096674739216931833019739035637550930647270525892842138711938759016225662144533971235794574698812906509500058720774966507916062605032281639750028239632274911407941329605841230857135881167407933334162092129778289756756703912963984514558602541231936041378578201366250812265730938894976797999043562510256931143096846311332855033776823459123251864520387686249115948874299758203313736631922461316013324317605959333632959287925023488772931015111377428901486284791979943905853017594119523939247479543603315618457797372242072791445417846183853856073030719698087979882891847445248160826223952503690633402579075971615234291372328998511388559058452945137409287761545782999662904397840278496837978464776243345050206586742952989374031983059031429670700480517255910611366876526604676778903290755940277613668905155385485459803829042752449858339150600406970629840023365606563058575081460539316892550733372489438581764247071828185141756755623283133526463939550662051672983303766281872221092979665433169513710198563587514504368254813940833269831403220733043752295147059705982672976210936292856222643792510474287034296931062609579130730652922222469073153356806106237131270711284198422522322044550196763557532154937485166079117500847199053792395328382969240316348899339357795800352354409781212958031640415691681841465908286770608028455092980850669803167867132893001269774801996950039839348223479022082989389916992460244619286261242320612526350747398437725974869989277571490878453070344464351150201010156959295728167724986981547995685871290003408709416436581220513427113640791695426006422446584527260553799577911278504022589366283341485806920665118957972989316441870050988107229002088355094972744836334617981444187273826945821345063045543752181285947064770767490925734688740910121139027968899178633172299680485077397686487173225630200622858650352157021286539078228960142535524314614870940329328160961580419283988544714388151479885143414931436125297509160945903679451621790218522094975286285933272483608001086804411583983816633165507956031931100092180810659137415267702333385373969133994114435146620364379039862032375978237658928377482212098738263315449730743419419691308632411577361021906686264142873662200902526421512761621786508853358334859272565796387778589784519298078817630671938562743831025531528743048033742223998066902029722926319351641762995939866622423421830053686227828754864977879929819856881705172589046738320317779807196668476564207681211200300773188691576696702335404097545341036891537037120906508167753590916900072160336394816965977453357273554739262213856802734511647369022068890777131719138157208959543753145404303450920169754293594354671607849341529162375389204512621811625768814382945929004601691277086077366756108496077174916239312717688229690674186646193070076579243317643349068618204924429486009192100914191748588699800949498820344581244851138992552012940394614312302790919601933314812301665281204791845054737236838234366955352012287620487836869460149234258634934429467484781413487402331154882538014476854531964437404539282176106009261787956192894941418491681299511776294781020887125930597696710568582616094255237570281235697790182119156537970039622185314171487844558594488105901424433647570604402255099141444470053728392640407049234709464370678991937214563260795698727793957475737023453747293955347782366377046539190917247982625046863517183990333944421262370022666758866760296763468743551880711111698496833264143309342474245306101726586987457884438520639225053976731244762066364095317574893900450701954814640799551950620998086361868126704293901519471651216526549698261094790287893522331488383749090585570826091243455869199291492645808066003837944876580992094586216158185209192779792366142155232594580737562736554368310574201544338528226761411453786792176123831243597812672698993329608307181486918112431338143791801969030468961945496533390051970041723763622923981741842514204294437027507841709528881106898058733723461010271027838558602734915218516648869834596146885830608968788823347893690334569452934268647624316169543462483846140300093163131651775807877605779287503975198442217376502787128968427210959190843087213646201558766451321298268592749676798502168079303539195247863158045607078145610930809241392842378341821487050196626376385673626028237806832379411362292646362828105210337307667306461806102545543340044347615620837647726024013143732805664838327353538772353096815204341683866271261477916106493536082908230536341993174139903279400642006944593190196031061976523406808567066652294856006801977498188844578708452507730802980377037191701728405327197005546733840285239702680085392580906152387460963206135643374560439225418686892705686797411961450891481061135898575771430596348651927570552682930645945100975508245202005779450284141633471312867886186021219437421576439497307769189501551947654411908274678769599339066845309393441540070416232945558983141428417860260856969027917340126303346247984600063734703077425667920070766718380472731853857097529639136400097394255973230677115907119153587138841146941882698413378104327355497398753087978640746926256540298729953880100393606787300516256402821485451325975288030914965753956118078038952750634435543152824391794654896483892812721590964203956002168969660641225240151613338898881584608729487837875206823453474125377710219316053191812137810681186655581717469477260281207428946245255792465670271535437504631934200191395571855380681563824551402945280959140725555963334481598348352839931378973889197415444892628647690689257484660051821459328068329163704120185046514216240920017932360023353709854539664520404298487083368646914405460291315298546611245393726669638992639416314106192110924816839171892845914369757950331240352947154053285220006908934898707388963689931414544793545670967178254712638388318422393032550463376040925535774311627671346093977628381659205177689323545500473754020365866301089275300109690243635471498134055934678613899817133783682679143189452957120558441375977354475389781295410637339415005056224961724774850187218585818317738220811989556689668042027765547788399021610998766432888555905420596930838128359105421466228501298060500584772635938656952494252443419238251882771320901396261655359232918882152999247341765170377959030458428781995742603220714608096189468091849259818111755450664199208939288222904973099999112942479647512850665030866104486236288270970956074485104674911405263558173543093917328611409123711930651916422280646491226768479312214050870103325588350723596504761476414771068550681384983677158263671714383861830206544289044632745617787677866708157275720944592027473949813212612107178329728727349689659841064997517337262741526053441249250174922449584424126239666932829838242856636702176905838375499347958960336557375941767170820892241999319985073859783279844347287452116874851317098046818808395348275357220353907962003540170051956374143021526416357970593388227848364323951576821573120406535884498155035142000933371051241836461950741217776507275714235706409654262011963852259494975233566238535098204931109960899702851351576534888805577368110346680078296847376490758267541368744846567793068474907247627240354994478799718254487106692503250706107829582485605512235220645446170653076459283016995548559861336564661265136916976645793914841804409494267012784357717740958850288007595981425614104002567468591686797094133798736536592685315372415870410597559182413444241265109551500113679229425044537977100627493339883833574363304205976894613457237905672399304497625988024522109457174814365330070773924143371922054916824420968213190918059962995115650003151391122473261340085713743520467141494138212833351619598484982126663405187025139452470238372693258554739517511731976597964728013352929100041358395702470946559336007259864364913378391278790934373358111509527804727176476750116501035775219192767568747492506720003137206563558360257607904674532592100805705777222259258198070177269548850013040858132086579852586601148223260350574124216958590962105049060236498161742161239569343785996416868885415867564448183896130380207092889683019014370881432043302213265794431872468311856807619657035532194722851532153602046016879490356653777582165916738053740388879960255553247551359421194506355468529619985180991357261894211567444534914741528861400698505316101649094734422644160821527851420175117355470913490835820747928472067592623947181409936144819228722205020311597454786123722637323469551367639877236648846110614009123227539390876194035415233762212146300098549896626102890620047631370373235162762417868144097511135737834847127697157119605194849224395776147825990801477956917091670454117225133965049046337125001969848824084475861353838811576708790397277458793445982501833523912268856718702144646388169288206647051696677061563464203362537318021812275663835338534885706990412960107139647372124880054989011794972525354098652854357503647690512596926809042237604789313447956198133782365088572302222941685806397342988099123121194196500349879870755790405290602284554518320858517653076321775406701491073247317816478946867036539157889388571282747852629378792215107023813469051692121093706850007419119058702858357069680173988074071553754392296367563383669610014713386457816816729307873234043789486795125560814336526768080876737294876484279744092618466935725255823469748420966843091255053186607014702356982722856840069775528431417155300450028793856406690680568144777182783012280472144949930633799702919952023585073743086445708267730102637712361676703905093285415160257353797270762593391824969417701167585460229723212683488863561315644870116905170807898602516491277537615142776751219917962070536854070232698242902200508843656997939692838798914490302715302715146671831003764040184420630492159458100472551965965366748909541609865198693197388136764008857284039316562287894910092967019102639878602874111911118083606607623665244347637569176098430929927526628486132113006969106948240506044198217327407975331714359017541121761003706137817056080881575253408226452083698386162567124322093933659373653499937214062318324409805756530014928100068541898829229392592828845474928082270558931750444686908357662451733779293284210614357293403578418126402671807143063609789760403478638551673376574122896611872768012261663371371256268270726934753822326992784853855934771794947661494452050141535301061930848524293522350579918126564096829254651703425613628011177899859845303015707759252075684456990258485738184311402943623761316874689936030611580148618831486964960074249390713261963139467931714750940800882286812966128405571188356769832992427396966262584353561664071272561288792990734076346468980886031153355379867641208215015063018478838092307609172821208817118400948417766979417012106612011417942276322928825257444046707858902499930496807356570899668258641856337989114172504213001596055554249658115803032358090542676918132238587000852670725118883027740466977640742603731521432079317450428882238582036267319737623257382616500486470043881727565154164235065105041175112572681566527971039539298480107585245710654515898922317435519243011016140094798189216912625259543188135695619374749143851789694357595593080019931981703652992317735032263585445791427551104742880191111165294096341867247820416614997496263262467030438529947920342898311917493790214246342950363178519731182356294862835918779881859821100456444199473539152961128792530200897469344824084602020234683108063837755345205306561890272382278617244306131206768019240986394444904797610806918127147095092803535972153765914190425811434684527392629039503969853037642412031249087953009251774993179323280936067702731663081338596424215455294789649942345873907759723757551777937722557098057016463248960968582229412071512490761077646514171194566974476302984800361462758917171667282821581101682638525108148798018641197346258319737139947173996688304224902885023037823841221519207214360454631853302454683242137760047828507183478616164283886369404005274663130736356839226828441056672236049664327332704422905104644074847462691974441391918804760617897138491058828707874465649246172189317876150582732653813028587434868126640879601102837698947909491047648196112627367056741125916170488032317272061029701950711138926009960264783390293536639967973384096584182014917153876667504448909407993336847842839750177347619328988661035275293818962873338684925363697520400830167963322615016990081946091217384998754737553517873228032564561833481605074405431110381278356855071472324159011697232418676336071094627538921172494895972358919470557107141433560853567900563057579537858238190625493381857868948608081262469582405236282836804264889979491696122005093708264982611820735383727737573108521849743053826689093678986413819319871274657023990338450542496290401587858006244907351770609569409918246596063639570760777713341465387185723865530366286499014290508440256464445175970954948520156715171797374249078606785597828156886575653916522756626650381119182067569710073444299766420104515659056571293780185365076829330399239038358204935936127412954935171316050435072682662684962759684072329042896552498225981124688888542882538261574598431512469808232189577200396486318834137292153773832149042949780333507972351079339156187491098804214311467979987120194912473220138269740676466848813128178513758300841156666328639201650278215576167668537019138154550207522414397174038868748441585329060582357179172865532703697996938553154535348442984819397553246890200654522372858444791058739548872864799723473810265678964195047798704789145043414699132934215026939408229346172230447206484553812381813448273583633413730279371657535208576072575403616890218800591704563970840283119213878257609102051264804020076435625440648644932060936033738592617340655351446331725823972401502486357985004204386392330249215890664363698421115977279202628029457231557779949347970426619075755016677366355842882110906791076773979065700772190132895228395071544810737296431805765736564133682688227427367301365508217177832466583303944700704562629081090815704117607988102350018421810120541751565590608104082217786883854542103177966501713330647619355662888812183901078126037206993074047376977874774894048954299137232457309831401976026872113536733490275259688965334760446331478391965139316744065329033773956221340251819408345286406357544699533735005930452978712549264768000205164430712500983029990913716018497376454142977759010970804984478408079505543445231577102386175541632081205843198158849777888726310927593597114456239169389712338928244889740317034050461086437281809733923774725733318798608366064699562487659393816538249508365214569716119112175916754454135145365611330212500616547297567591341021832282987332664731217331350458005099686096512750279193396953024451970879630058212790564506800951369935988648439504184192158329103986058393684142275399887643390028876684024286321301139660957594699055010049372128894385717937206830173486259024229184607570111113679045080051908388312895802852934805791733794346870045226244072828508620645316871612292409123704053238328671454885689917528344830863094088425223331482351867349824437868524622146872920488242521996460436070112391658798042235247749495761276725624642243726821545068469583971424639006333776830650940367325194046415446307142056166708911861618112424126638956014694679610072849592103319750331996670595177727651781524679343153156277338676921304746367979731622801507919754949364917992028183346826054568510114035841486738538423265192679200464310186640082214776321166744636034276139027242707338302185614063942460079751467122859494762157831095612905348487849769615261421458773025258448902716181194978823922524289111678726605354135933280454243304047342153471212147429562148873229859007638356433119096770890115474390726475306008805595938629624655352942800116305644409633345838210675769637029072007394939700483283393666005641874780003178865116624729920214515400347711174894676837946627179696693375073841694304283094746533820110127366353048416143929426737638459051516508898230975517758049152113943824819251707566238694576891022423359240263760386848922262505014686103000011021060393928435954646717504643316165794492790551463760188693154603257735485121116477947287459641685727910782300123091938929045195051632362460980407717242575149303107634773545804748478973827395056701176535507200720688313074127292448269895568266324253110601855971428136529946910161612282973125732348333298111305650832979116724989521089064815414903601771226254191354857120951095953138433136495351800757591368524256557424924985867758161943482922756889016332098085913808231288285140953042869159253355565137096845774834579047982821739090273802726582662232960144139248543947995231728033493156389375987168884133348352278054187216850277054654704763602598404632516764460796181122202281782690221623006249683675919559352129579633965376509424737848944665227818997367257766434807703743517288507363783822174078168144496411564021690208885930523999413872855243126171231490255872564159381437200182223745192998719418117518259533804597651337623700263072347388192034957384815261432188387750765979903366828414628995761691740752831560613727010213818274214274455218211260014489224017311986072093437620042083216888114215181609906557392960412676750615488372532044470945987119602063035804133837658254599719528752026984331207526633340400162184858984206279345757890239705826632393729415311626266301758070543413775541440307095771682374347309926713681424500384880208517785304238217948523364871317521774914811913307194862763806488938901080218901195318630021608974174710668950509224665566608207688623500351219772393288136605984682294878505009614329345987867899421945815988815444235124865744320545502061383624895555404057513602995000948254842902714626554432643255867750826096169585416001344947429587662643922506835322648595091767913214026833857798285891335855486535514767374312047054306583738560681010341478944118811905907426076010170701562776018475421350425192873657295501295465948377818571809912001555548586612256800141673725157819409434371336290006439547991037077713917961897728288512765297965368046807034804719247072171657221558554163832852079853230027331107632576318490178758687489333691112188130821057101287074601981745830333606694608539369354899579295200405996720651088017870439982871584255805690823088680017682351201443300494113178660597468130694845697964844155790885214336785907816387960571649043976645555925018407002656475153358203332119656038961864196756509173060448411525726774476299357882752165093207530197143579780803289978173626780358139168909586504881082914950783870987258528992304883643669728831940036003313697644687299506987178189078180840763688333951148669172401007346036912712465055329707432042417717064165377610314082366440801663961359854995608881308700628820344789404257484146802127392674252593790099408824552861488623377561999407049013416377422770716275034212311736349691681400529637408214760367971030990365975203092415735804711303379527681745109548380233889216862930704176611636262677229873299411727650286644294200720710995372014098596201765653704394632121038542384484311604297886997437187295860346244770282468448958856518323165043560638486994191257254261144016953634836492071145544056836964986157902943134839855861397939458338449147188739330345912326923379991720052673978060936387164074224385338448497252530649263337040684478822308336832521821067648530549605759951996394530267204280079706433870054968786427467475039328679109156988761131719307509035536962706944272344158350022972468788121254957160766750649075796915679775058850152933108355212236681828915130968899932707669877382454442987145155230850617372042082226122509778562379297387208250628947936560651413644099924556739531511932872583658624262329628505794317012695112994432350828702409399499653111019151475623857085860623066915684914089452682729284716210580594405305035096036334614547425640894739901900687866603276020598868926722580299642603003161251418663242084746762302596249493319095967429615907446442486780770828228903319365953991229448613176210041272569112273482386790173110973287000751207271219434478933897987507412025527806214208983926313753730466069525458186972191499477325820626211347667840984923214491696528359570493710862683401405181495864655877283654641897657375649394013225600661949483373797268238501910494764637476486669851362570604045518479918154069182829888918885978875549514435706887573923467118055924882047191505915857223080720964461522062453240631339632734332790342014647802802705766179111440137125905794493110861062614317629944198785938153921670922731974857885813058429519512198199559115602554750290780847886548321712668170566510565491447805054928538711960931755422532371410703208441175066504848224851307346009937421256103940026515124084517224472423877513019724283175148886044468831650764670811916585421312653096601323639904258290162955472632937856559972748722338223973791710204118477311742922539858263020515805420858947535773704828051015322281321568625977294962162218015438499979835259529113526120409531231135873659783369648812393531754438088046500054264656557529908186256524822081912346002231890391610010662781297886593771334516431268231417810320833798163981808472042859175953641669269439311623751148617854124511060540994955647846413248308170400278629706529311703529948585482151644444190913247118622404465782030744633818791890848838184707414469691415945650542744261750957312071079260592382748772791940081096524496031849960203139961646610943305208096592354028218749679501875445947781291019259241765097827271324480359978998330418903421129368508196662905102554741726590391152027889383902138369622301412083454409041084733443043342042133019003937053392074516879951027928867647103189347561706271680853239789815991306014342629698680378868236499560467226555571767069104477572407949425200716353010828827800594259244454750911929052558013730857280300968579848171440011651141400206455838261430585483740439202368781530434123776593907095212898227137070169565565192201842691095627705506489582877958622687309522613181836679758363393635909863522045606883207372939429155172596540715766283256434610642911315802253491834993810165928770216511941289022618157939625287544328038732964138016102333204501807589856315551088305098245674237691131926188981938410857360642270636860256069744771837681880336452042956627736396176213600181922690594996707139103123877140988345655768691816268215935860750219940641466924209673102381342741095047135289163686817147484438749305082286192510207119835803032339872278438587663047597572841893229073040806358796635510950894859938266406457208329167332378424464049847031060666662279976036225987331318416207196828550533364459206306489542992103031304240817192511998069513633744446630366886101967918133457512885942265416744361132107216828499954095193596806118219302299138053374255695721881348981124534827556021126009954009747889053445493452083959179433747520709326001126001565520329819051155337725800264388491874944365765096391754505800149422852498457141146976958337204603261265689785681774160068875778756979117098496141779172590713797974464808401702892420174586098225140547778475003797448586995596536352893317654306230527956355689228197341005608590539000170615934115243267268612695478396632153134083880291296144573887168592085602856194712633926426922177798244968791859387540487746364157063706437103170644740619188874283022842980034614118852448792347516417823610641061883186970169193650278784028686482394699071345502289757550065554173301823096403828297330901769489568804894471735396923900920015402644284048756167466547739656433320802895394698167239757751251640407181288563590285617190047035814254757920007292424861446177755814574379127276632315318947457048787057427942690582621704584772463397638423587793795803108204607511884899483384069135040791193677343135459882822781595132056764170922392584482103127249211934311942679691563594623381771181789717127270338844430123117922353740559824286729288935710271659334642555910409186721793362644455136559150069569459400256107333794061709886085977024881730952790615617688282505274545720601644417334315182345490101946668318757083794959459210611718070661459161809158707903456108574609524060738645304853387291361504817082419360744793722586637655221058090198153598165447001168223681378599808852116963927480913977225161920968189321201184506501062224466011704228668326778749444160365332195546017485382823949304408229877541671677197670402798377872670017980481753325385091261977795719648155390901428237908036476639086547634635310358877237669647737271616015944118828122108853252393428509317828806809909504055574328467580872260390561286339109347722282859194409529210001407507272538654829819036869635186639202593154800794755729608825026700234070056279444306418735970804193300313195911885215870655858783625941424807968604300308365519097571619512273189325271583446741008194176393751720043278969834284656405623973464390205306049611507033096657709189194411036554279025891038755262608146872118161713077000293075608761425309670022965904663864118603290413283000214736725036419888222077104477032934572129791468091551708218914761653020157602803601956470305664381410890197797002526400949457003112304816398110388661967475083743408029147962616715210925850799150418689423630465496492472429624089592822178966106205482846983892557614331413697568430563592549647223445583850419991912510754211500767160385234782352711602596960774668502558244052996930914944639152061401434880433296435249445548442469649137038238155786451578931956170679324049306994943173918463487732562174872994006152138923701691708021921457048892171889072397410722333607078949284169276686312174948733183325042261744223889775318912657973565040296400946974129690129647730762412224185275092031489501825991037683539948820969144533442474342742294491170481958470203418926028028366666401783748393691554381404785144138364420114794111265255703297526335240245381358282597053367741192104217093968457299027374073352703185795600540266230429719892196176097052171744712919855453077184135957939264316188666275980035244809638718495382022617191320597594173051648649826583043483221131140872566349239188285264017448903452182949850298106306907014801182774121453967615705330787828817732480360371145595079691130958236594129759756145171977172538681361021232266717941982268904312789149842306579154707683068964835047465438757757812370350591229737081945317848709363375337872734708702179402096511453085062535547036662865483887122434206598054610490448933904891020517244871716530260812893276124343834513336767404178270335770294288080422585717858130712530848827681709900427601432319826054138869562411227204672962177050483807037383698503144574915997731313798187787500868801147069934946268797383119149876153316680312049559515050311014834480902694190299418820076052603979862441421780869803148713350165214602748949167925527716523894959822230219969406464319499256703729114414867073630901968323311007468617217310621343451782532498159505439864806201994116803658782249113678713744830582568624408068290727370793860776581840379423669600742845884810206727485781925614749671195260471304833216189215129911563609165224944643744128216176537711281902867145545002608000028870392102679053571131712164247550780072461692512249566060450058013505207612241343357569679429879249266916147228324513427790999511579595482183323411108315162369688005370336726474936446450438199836525266329370826957317148303381816732544710100637084970391644308194967708940042380083729700460074233071599685981026745651950916414287046520702903779431360528802549659793433100365506801028051156541186672210960062954602662883190067652588298214184743633343744458007901993418857567417940026131500666212617397329311073285374249733838096979407651870943897075971228028757012708332946431150540821287886886756712609216049646754229458217861933184026504694494410643361619791465213274064181745413411980341329756302280309435878793734129328977047632781093303746698122886474050512111142087708851425708216936463296003534539882538310005909979470309263143060710454907527201885785809504934007002403755492018257726521501314354268562781711941041694823439917423480294213355096603654632452696047450304951235581779042277136109604414722108350196861827945591900850579369995405246070158641864303806010562561874571986372970001545584462481232657642322923762582113297264541216194560657240269383432746029634669538226816749783750619603942538245245749904032226788362686362997492002203408011227562691543755217703783101483997043124049547628497323798471728092102267544353976805809093527014265880302139658832707055719144686468850859127951286412056643118331324140360744666679668530988009822149131908019763505604657652834907888552642065398685793271668089744158061280484032204843302504427912017824786063944854535872662068635990696202699284076037559879165958135301443943420730073288079912018027606018518568690151631076883693497732658379134331744594479286195194728689598304003271336775418532103048545056201615972283768240738854250060615729576552085884203667957672848595467188962171551879402245859007814044431409160342565318177775963691313892513237728620721818667427007602112675953667510659111794184202946656038713692272252400143619991967722093184355178042412145786851333964247652963038152010906270121273738349801488728187005779857404551090319285802327971917324810140141122353805503445487617049613574288128259867103109524989287433054934060776433343292232876784156494607644751884342806158519298083167433671823734584414433129803174842922597999565052073264813368778885938481559024377363307831068907822927386843266226810150952214030049715208403350560397367884568936746486814175064064812310647442302418015319437216393193580312403811447711300028207161036183620729384203381424663072068344368000828174314274839829775376183453876920834025062291453205910829369484847495482920531346588976902639215706554798512295867240838229297262426975530157956709338008637337263235405551667637697709827007464783454138023301731336298559998836064914168525093522795081220666445154861861294354361807744886498312622028170854755099279614835465537039979013743432712120385357173889695793875244090345225089105557262810035453669911548716209755808658150563885932803071833231079455155524646224050870674535398071509495793056012089331846990924990937845195123306920920293695883357312739286156782997780749144851069228022035331371845866126092241617115905700251284724030543885673344846629127403382610812091108473495173941815631253436520959906314786177453764757186606202666240021412821485780777631610867381877805388064920941192018786695352603463066052031631209655678215885963027610801312282561290734183593540344521231334757079377000766354069966707749676461000066562953698204612655568551506049684324746779364418060933669680793590490955511072554634364470315283105275534642337185004477295551120753046600371657920693327401079945494976794560563138170790584947849018150470395875951534745399917059288452558904671739096985287146544255344934478160317955058128100925411379277874439398168444163880245142127288417042274757040656198430417028466437390176400306767078179047541884396309881387947557827574075989897046838541416180150739099148622840644862811394499157275231459927541600067543598796910046788242450510519907813628178412701919173626062361521803945134486357654019061030035039000126525307377948458011452350177258856814964629671006505678779526205669214297446515800946586626203914630019768109035707675566543845080073331923824970035396723910463052747764759324548826754779347916646705198845909781607447306598743102041850156784069327194062072809771636391210958059001171982979925559471408954063962791423201931476766023223191550290022694506795262655107962784524762564501611794462895478997478974445790756561942127960314115683471310173826284896350656009032455336549302171159365826528291639097908938019929429071681731321256937856882421661601422618680371793939682893387537739375637841835181865958582767208996884299186169681833726505875715953563891918524859081539374745878062580430991155725923062414221431315964761322263230061899519624747591840970724461167126501824227674598588424447613947237744142653466271224753456628577767008336455786187351318403597150685734392533140268655265331752033871683756385420448206732410198820647233529156225584304804426261975181413886595955051332048538284647891631566624172157752787356800754493084926466298887583896316479884962210354985959917977278525571665500096903685723026990608736299363579832222300823817101990377680972172353419622974054370302781498705221739729414094325231680678117379163505021410113953552332680481104200177858913698969657243161998982387031102048167926256198498108298099778734466087168835128430233373863081192820572884624360917246765443914729942291390159749090012063947125523368401366113927304382426531510668472315943942086737324081775897445776464417354584616811422732565536193416958293330934571993138642984464254300539852138419993924791016913500788572664130716001723284208349588140852969480014718671576477144865908955170787735412259523072658483979670767432779311916711150928112458320189089215908250665028755982134995566770784614505176141405183633362534296967694793154701414079019609753770009663492017278356354448242820874398528200568851733051405011263691588369191152357318228754145676170597896266751062947735284655877503765225928884083255108144080933121301647466603012546131366011952697861761796751266876021966183549791240287869334961241675400990094837047967618299894766123484075640108968584888843428850721416194733717811792050495632715232632083879392902366107299729516442139523933982191462948526203495793708744940264375286274982867463444022942098701152554691063248062344461783211101245385576877495293171814725480931423244332347385933201534770140386603254398125257451441838967884715325478681406289553446564156548542640847952670010535264475555513528944875210678280044244882291564367688346262209659360046483766374380438026440934051381144189155893536612396921499455656351684584714970499177735783668427631344593000667421311794422347364518033207619795742548697813737899875478149996591561426027080275550435760662839544626052327209421692123234582608968263045447688466104356849284755443793238094137175228064148583458369060250385723940785584099974735671317380075859645401684199445883761050899183352870744852579691818553076235404888326312744600540106931357199051291626631119731155656918143125663838625186413806456221719269797459201817925005194417154497680445238858581879612090816093324938203245343155884439740646385436067471773349951149784504453361113771726232586411815198193952814928057600590264933367949036251696271735663478065565695962050803387602704613152432506640947633752057700657167135246954387106065028098754887235209674528482074435872653059387900644584761736207338668023436256350744453722838146683753939641018707405402927082135048474604399371257066616007311476183170884473415046457981452766872817958098501255046047912116264841271823430947481281973606166954878385473504180422552124008218324711714810631336239685982288386584220514477744573308509045413731899915372409144728221520654768546488005738787867746268172522642917249418395770033885717815940892961799677970610481597009269423185334465901323848220159454598434728290108151469128720952897059543604344118119143082470784437648599330080878825155706104563143002112328568539986127161865851245043908564130685030410650696384546546546840816155741112551574486009795847920814308374334790127637860720683822439683553110791134659503029114337565953223202378865706705217839252311453640345010488603754315068986073888960194537850121709237082653514805555689003060419735526737504161292016654760426925328149223389673115019676448062163317664345469998685560103963648483147146351362727100770470056196096240958395494927155142522133244669687827606247737409595769020340768166834621156683322290542050802536432582488156158389813619291766369094489307201137364654151880617525118472858865900198696043397208448928951924417492843879937125206132075801309344828804588534616519836886449965458018749079757605248842328061270077278437937230364974651676019261394788661394834762730451805806098483431677946111747525772042422410847846261032883301211633855572125863397686913065525373565646267887560342121564533913135260142336617362728599482814882013889921891079523372956459933184271134906637723106915673486634345838686274224950059988679896604912414536458461403523932929172275021898538633129050111342968442676615876004494797047913638388922042605999015188665446482345632077353056922553115330873271756787522744031769714484919113623641693251633603719632753251232183642026955229157920798313874378378994743973041599223492160296367836150784139670307108335038012299364865243778544814153401227936531246585704243379904416974158364680548628117523197910456265264229103948598183969374069060485303565625449830725767632318524561611445094235734302105375217562622331626540563750127338001351849387693594067528761713712480721428189265063508317759786025378377027908632644758796751325220106755273611786193799436921605844059469314747774731978104478484837638148302772520926096414570354800880810324756488846036689449487264676394434394845583825176350217261748771302347858852015958488456778237112467585721655665888654082846645027069219314054443982216978308286504563297563486150115111790828598947375662746222637923294468552654482936812943657797669868207721638252375407250334900480540187927498049977854342986688638298314860551757156062308383199244125396433270174657903082093672998638792487648795429713977135465655315569877075069139159588921165075023657356758161455820795235367529939305121957874906239461965429337143608799081162704440411789717894576820581993474972262896177402969872192322618360920455848546110130769394537161686646102446308967086494568301349079827956758618221474151813201911822469986151296533267851703949740299361421178872412921356639530633893635677925410694162538465981714842917044669997015889911319663502998479107856133763556823248108338078436076158159429965297123038250837935967791198821229102819549222631069264568775297524196429386721671739922600120727919858031706583458662587506893706437664483498436523121557552555415176038517013089440890852092519597779865378669422790835170867818241226936577923411772463234612884483499058997586977744601850244355347358433556475963408785523778436442367392761538075767188894905823099160493384140631373341450304641003903092113701805344926706134964485962172724933326364186509845748940623903704364312816411263344242873239829231796172595835895060162706386122051081944088218366272110969106528151110094986146775470649138451422261006561260711033459595856755371169385546153378673953900704264931736595778804089489739630685624114126408724182291677407679137095342588087809834314305221742013196104739513194738768318291047478665435429007819720135693805038057567012582877745406819032934245157665399761472860213621247625687634083029099883249829673009062340475679577651119834912884635276280483507508169007751790033174395346142420729790372473726687517833098288515854946749917940940044793511331863289882944316413392437684859133961039520399322863795457116418616472478692462961650132170564128653937111944587236928120861802809012824935787359425298522008049624174852685950623165136421829738984242976507264202658152157021091130254529335674951315379367258895669904808778085491334453858083529243261170806414915755284355774702621017610792022024410473588384089363276177353492476824025866872061529167323681099031580326967285169243564071244811472810079258179482774970558561992394226182412709704126373153453574236755060643007848875752491959857503844886121504419633891032367073881488573438483908620038699413632755442989503117824377402556713024995657870854402491875966296002133313961884738039045627904990293982373216934129169966951392743145517400987989616370507556929676524880522613430279553250970128488721822442584455735525948715040909838991406152775508898350567604312345256552823026810795367410959436177399999361266462334630730092052333228853716036906920214689910126014996991645432861763663762875790687389891977530942788102501706420342216689762889191176109733804044059286623337170003709036303628233435455709796911016962448633628131375206881139937488189584656232850269377610695172189040692079142249498607534553545130762551806070073042803170837325528046742603432012214306247567743480104259710428027526787394569277323303931498359333458466243764566567510308378891099708435790728634598743791148391183328167890395785885795030906215834788065438337442069839953051795735121982335725026401367740905188472725152508485029748702637695275415851031443304737182591534154598902545916667848625198940116930740544088223203695993941255752810204536517129261190025400985874402720680192390246045016467851505894137584456121563442303536796391169913534030872905319718382122490848035057893968766678780933482981083065909899681340077662466011274598765583275030216313746772877238726787675314356852109369542562721252567113718035755697580023375911544881673235564361528337820832518873333921523378192110409873960378726933705268998750745329476322543129482029625455371132704707225091915249758986203159370669081545964125039551832432455803244510959637619625041541078079565410744757848556051026381120620775597074568491729018645254556772835571623486125914382577626846990644824913911630863962735368473417703749082725285981013070729562099410830683295676982108328763363497874844832873277526673701682436104776892675894869641764097379233791207622762409869229248421534578945911776338002804632869077832269511580873683924440329700857467657680074073727078127725679186525671925538358453339095558879030728584121647630417744118873282958591841961042127344607581436918023320695848785418998495152939491014254334965787234457371846940237413002062552295462034179764323472994194089019129623777170712693689805825310420390684422890765070306204365708367579872703222187803669724645221386870610631570616938869467946380251952423219517984914152437822367081486152808776836883139315842999406883225683898379527125436260736996258692080850850726696054310037803292318528302619426017156075472806014095332201271200045808644341788302213222745706417070878782698678694731524440972939013801386040797782358577951946149717416217377681428283000438602711358583914946400938342664638550967683971898261580311890279036806347594607743960274299181196744892407038627132269527504658237298279517397803109981731602877660048496979926232176911838414080530906603619491991029450265238406943584987809468892889679705054442722906204928851470815704832494818569564752085458040083283087969166823142267081007023914830813509577582663613906149344800119620059117792474924678761735620350751762508658282293127900369147319603575153193202329886452863571328087664600620005551832680065371820580328591841272384938468890046035228024347617350959856749369927890402371747679806703789944470798974519544203825794686693920405654669159517921986977765746691290525891160220542043225293860660055838790340872079172740964329555406806641980322519101444942982476272416525069492452336206590673190516231390046627081426111499963419263274168876370974814893475104808278205645636889704133990414708874314160119358415656250009122537733891891200876137635754900263232228299737229064695757890281755484327983006387848638956662675442466079432507201205670481251528553915291058140302598202364355835580957964918132970410407940995056842088651417191344722956544888396778124975620403114329766539967278064952853720390561875121746325479000494303700785065109762808454705779748153948987776791796182111980021053717814678170357938651411638012136685481744230665885387601186648187280423113994762386889812380719353318537798051028282113706965940799474160867635223194149421886180953824548118627940793473219252410595686249972706983263661669267071211609263198082796721826718822974570974430318350810515622431944586512536512281980841513990876908865814541545676213370057746731884511206627255265253540263052644996142619453460827967154703335774984818298073108227039047814858994583830269297232377384425496222494721512663638856470763659660996287932123959297386147918262432160527456579415149617955559692314818552653661873677814067547202355075822312085791638744864095551101460567067536307207888772059528564643389339665817405756500773846650348036027678306892505522261394645161320540854998972575360317165078165078024616834428089215847482324837904065173113799346065807875206718424934654044862793365560628301702087024619817284030135612094258904684077493531892671419371185674873070543818217589385577054280280731059383310957729783916430066962296506995374567379427411763218733457086939686442547430647552382072814663477999498407514623278083920762169399951684485776914548474794199855899810859292400244283696096876600463012256573915960578959730958505339488803567465642906871529644075922995480670672532422400113637776070068274916726197795408367276844230930303582444724256170692148955730748047016084622009091320684915831166161638170868344576042542683475513261527654154684494136249595600655277298151899247222345104930522413321281984475023598237272566569258805301966525130696979069734886256829937808427377255843402419296018159628855589798764727184878766068341863728220431866066950077057073025993466075370159092864596095989522040063298636858659045523184380760010167180611259909346276032447671783690159945720194936281948221197231528096550001913034150999629587406208808336745216698488097869687425967802053244467870788895580755619562136659542559096438789619252475353502974293750033398699328542827509598714310697204009436955996777180329132524999885766502884118011727616654916827533396678677194406672329109403291738641317956869178855862098087579903699346956709728732527705479605343681358370355402078265832596836646472226508465429161273023846522208829845407886913600772339202087983713758280928676450385199562378083474577714162849180285428980219132737541531662142310769143866790258202675928524070572330709584210255948458169438905761387814606242765624149449826607534511338779132734304812424896045218645492284588833026275271198705250636979362237565556501316864931676260920401448874898176886627416943943087097076246675364499437389471510811848808773186026932004970388049684748205015226510272841480496082667644979206370726376566636061804594925011798138957556529206209988050920811883125753895450366996052509701099657958764620643808181072173472488728436503415661634608192201885088125397387861293575446497263752319368395829235512033824970840841028651245941608762525167373095258220637127548788765971341311940560229607594295714659244543768613590729228018980100354828686120920415587552193047019452102312314764612692337366417942204993430787249281790744288267191116953590987230867705008774374646873448343341403041890432543516899131443145141071971665870756698525548315377036477506206621633482831104805741087716272828711048345379557317323454791474596048036082818000082939571229234314139499415775343560460142066795075148076442154150345799277524374562217654542135494690840669113639564896507782402953825386896690043090886740101413653110715676761499399129668566917304215938433876966715111285760094565910250363258527471168246972035070504196493382716814154002638531779887278856763354094871346888246379232924280761972940025715369445012293139114198250599057976249215628459086854594962463754472856328886287304478866364322221242382460169493860240705634808272718405760125775137958779478296734994580119778646191111360069921385657981842322717121991044805643025811079196369620664708074509917264193489201260764870743074093871225146087615731586115187822642158538974055826986891137217055719066157519171981343186111708608498075636166609513295445534810927987718985149648131328589230890066959285766241834500147489815301774755024054887832420320856120286142936873251507709674598043241323664224127344685392000286706111232748089429636726417785738564386857328662831951553571065937923938348114450613353514395679357419358021579897850067568023515258061111561187446955537692055984979307934886527439427706195058547124675713752319335746763877120870929128193940414477897971781396053697163574105985154796875333554159681536151710009638233049918641054927126785142191058866946302017585411183927319233490631998932826263860597512583081229185043132556344623899124657559793568150572291664373894010926954352254617130530176655925565700514268426368624037653862000137294664298838020768433203633267352939126796824006664311676015440375169410139664295236415871263419685329165623628094967237031389016485505074725757277589855658372239939213911402887006679246345783232087689421980130865506705897729863789571226752529139816898927075492593434859118425297453534250396216405073551136367249889653799681721474438816815533373758510008119353242645264454731228171100193873734869638365030143264761905791017872966222313476572611781747291425719667270105934193952031223079770308713469728408871536091027662718173528924589339333856137182001946784887441698761949071468147419675639272727806720762689052103111547126769678143641660893847466702720675797905704119852771715843856170117252699864308614969741871313629955189424448348076594560994329905965198620434373147679951604495742190556574470177791074037725952838382142821099616289189072778495274071220793193699318881254673489308445281532932194240893272585655767400452674749799305942114205534134171743003706972495478462884918249411560382890311731531645677273532015202252840062062929685265515652623525152181837258158132059135437706709833791748833631747940588788912601448200357190109825194127247980188469639986645375503462884900831483065381259935888454596393314326705527428724120881954878727437542798661998607541156492157705587127756038301062086895593852586471955031498332128104202725518670107810632372868979743198644108906871319676337217382309656055175409543468172389372724098709263282175248271557685110799727846285680489799827979868641863640046510063798154301781264499055688213470156636756852718563212631619688500517673908661765955291576413798444011248987993983872155210254985067873702341767010250090775655463107307437599323290121164621588874535202217997533266053736787872422279708461008954882575131921603225820477446384591177301928889339395697707207357003395692265529238234874809342101532391492245210178028673663556379255089460350898308220374850080697360218736302695999639819299684192274719812039550101412193723728443803384083113952135711563066024297102921121869802970431540149999060067057500970539539944789133325523199537115668324474639335842808634896187199653690921709894344972443301123203809243097532437367182783165262013049171188146888145653693535801974177452202585360144168965106604622995598927234991396995712465514826247141076725122269183161037750363003070120673211364581291342984176587180241980795096515789960486857737086733942449143628957436175548920642150641810329341999921177287552369594958172647985300892222100122226135910095286533494226129773823059490642255209396692978062684369961929311630503238569759138358722068242678853090453131888663746053302718017119118475824771143245958258579061068894750801052853272701610367655987686018374225644942670107137842398468206705479568145511208959074197722474421593706556338043628795141059592819528456890429042927597612571568529874946892479433427374016128115366753392625904267853389065065672408497686733506191140504693921780059199870123420576814895020093364787507125616892940407731207564915025908401309531083223130059192445710910379809070557684462058036458549867310581816811212102928312323544493587426263969247426655743736988214003512617028515742076603416329279960070228617488212121426538528819553859311361100853490094826449457053565871709722421598093509755906563706537656119302034593844738655413323345237696824682989959743965029695255856745093922598002286073566541978817868130822350107023589003492200774090601601980547120305454235352975894823283456214713336360798693657158063942019607443813486793174309196450595048276862795195593136110295686826477730825378025996813098920801050092783383594557677805991254744280476514364920125372029179893124980421928261093565573800022466865307454510791109911594494004937336081041936699516693483653843803802558491687097928840539276227326626636314378118561997562255042648426866132070314589482603903000804726501555014529155412939630975225497676970081370345809965840972521112014719133503819563224891512969814977623701900927180396751523999603583743191761730491459190394156622712645601592501707025547672973340106739171651552772171545568611162474272331933914856811181075988596523256791706143548490954382994433366702507822024819798601193904255114269577938065394535808633323580620256385998790370087342746991573451651674782723056114403075557974074237256978975725372242702531733155851993514426624881170100938332886253124359704169288544503941672808639134034642556988470220542173213095665719658070307838312273046852715965368074058114296100941400454499052050147612267157201841308065166580760561743239107592897278520978843903552898122423311457406150044906521404974889658054244148606122756159874790874380462112466453361301865455467665959506083424561572661749323427106966409341719096462139669006504544698863312986747570327065905042540757938396530243427036492484113172326844250568242431060382639832682995448471427468764178368767174367422328669484388862485959632960807682261465886227043466504721284131649024833301068718685123417031744880429080152275851736509336554126772820864964792806034873264921316229924639416784054024462722237925828845966091161009651422422239990074819020780237007339074346127659829118605586090831224077723547479077423758718213578517662135708766621831944415446168374345222144482144899284285470426374536180902399114147028959854510962903082526075651489350985433658854298780051943712869033744173325650953830991465098212219964970191286614801157634920408437288838472362619996532780681581553744067639925578115908798999714059927737251660812318674568875661526995153032632289281692059796346177083285296002250503427925296710038503780784532330167767378858754723647753157029776671772297385040901559922129887304781253967801484103288088274468950919507672380583069454318653330840623902250952606309580877294934291304998178550907323472478999125719260540366743383475989936581193626124228094043651629378902977209632265896061342460983866878553594154678660161667516756868486154046910528454514406122931184851506646286873506922631170358767030919659421190257901972678868688648348315570533214363910259675728509138502226509227435997533279955816828116095807681313243769525153602375082063124474060112021606938106069304515937136762962518408678033548110200472783194119302891659439308060388139946301312133923408985286649447444835365676363244307601709461587724513511066073783930302927239659137059969943164231682362113213448278231475914735604684684645701206420606797171173667720325949582375847400245924814821264450745690961421908221093450156262387409767552561911439282102947069328419164578145270843937906899324809645293060279632402427320334159305221849954068759114428809210770178377752071121405503673832219338634215141485260990969333996013332366847061818690325840773342376419950623403181262702955997347820771929296878851509137400729234406082386313133136291063173291776342584584811701800648112135961421288892448180081440623957079561404895659738479128662562666373679345018883601483208219710088096599798222480446839540444573186868863771252883288604527355967735229308489339706582151756702829754607772007314286385092398828163863283167356588124887915517643345855381069663360733821577196165005331941864178163634324963626402433477528280254266512205831983306447487262227411094246038985813768335139147863880077424577606759498908702462224140556476369274975270387018112959093178226166353963304509103443058144925715211582306950391971278981568780005946735909703900651894439061738687347229133813077488927566128726740431225416250977947759168988417868509296640422102814807428112945475807003733212362284289845315844465463945170556063736122567327900998784917998037629620075387788129994165720873293740350042061403043307319100849875577818601561586015446954512343618708049818717654367187761889975854420600545449469208074187233045347775408797746038196193146765246093641961164299797742957411952449344547390431353721703712085574201489712215442520854846798579278775911592126900426227360270406500874526164940233715764074098796520357741702130829812473700588924478504370821103822951714541044416275350818660942683568559116643673255168693527561119777943198835483573812512752647856213094585916129720470082732643818593492790398313478476512545543836777525763000612154469944375320291286741692395107809224487538193768361185613579277705881456376267700651175194525896439949343650345224238918871974607018800487040578466907282831532961713773609120965313956529687958790708022691635859868078209013302718985923533628877893349138416309822417092117418499728743929539426597572367791429436305698800600523170545456813636980215751747368751714504122758575281582950131182483148321850784502620745213122582949284040675760588540782924462020910683400033443660660863120674673402974618943093828035807934688383988816409935871385201152849898735495650157967066378962381751682253428298442533786243543158908544696398492948876831196070887548639988958767802275256696571872661588287111869791990397289932152288026668260235295894667628243502993433475003657422743135098107646149769995790770615432914883628216903559277174533163360576592344145143311546776856843096545144541041149697471603962720596251619782731674251841473924257074675768680815540688054794388423639560597817811653588873714344253155987164124218371179523459501767649263178296495673387711650558813920620592867030942006862130534089249199101316300533715048450082344311950191630757611594545700333664624003336909125038157057314142136336428111586307260430386616376389165340696493340364055330049492978943876781463778063713008378639837505062266971534512874597648752380645834001840805506757316286344567781020618148284292409384107186584372209134432490550194099602465337895678210425519672622294063927643444729929419689616683506012370259393865928043818132554096366694099643406759032676999892110784686926851646445990676780284413584654291669860988423678034295395799906099255283203651466509778939758764559754601686976464950146048928555877493116562450766664254764519838966498823053292061182739285993202614888007968122996614634566087927959829427451603398659772503894667329831891861697189274031407700808549120135837151302343236983941585278947496616017295562882053695493161364112403873957177414117342095307380613150259188567589111036818312884360839544152720530841924656984266303963314295581979345986138758084667313016273503793561697361584347971815075021363629779565218052358813026665900207868854814369695665342063217556562314527874370739015380508436376873479403322126672890510640487615284738164908209273146520276741149627274972630117393171398290363571396873631658883411612881409657264226815651208360946157320832285762709118227181899155680082502653244804261970405695695651079737561859056872103372626513899695475389395335350620657644839904266277346905758273690374053306228444850577458660090379741633990258271519285389928181764977015312501887275506762900560312464371252624412668066451636979359222674346223425500926411334716535399382404724954488582077852461860145100478386045140962314839520592646228530471183256162854471485241830407022800383995947007422689032710018237150946705292321851862548303752512235846230937918248666617913772304825282486472358768680650053481821680286097561983939680781210919609348205123981050389647366529694024969051235586404475810710374674770684878166860872305947538312624415524788514965101962204360151596355921974598697356795418043589805963233610570549607669262318444701303577149645325103793345139236156688346836560385697330493389013678585761926622488103993025611706993911305277016161144194436419769973386165595044838477261826124783145694394269948929145705475309497454087726590690606236411281288977114665693322548760594648669178701790324220373548155353188031093825208378851742963107371337920735614244396314975732194829943371402988102257899748546328268943081573436464642049082653022492448327542927949391099255290692794379516771829673387549589876187491871164533787694354324449969270761622315651783182964737703889352167174018663910315944453581497112919993397881753867234269189357030557515706619116223751896878215297266946232189334224658535024748676692518489947118944542195115607325969057159825879262281694667515640634736374094785461296490097371471138907351747598747554405198992562658450001819290825169423210854459379328039362700482871000523171058776054228836958082498865396621740303090173082052143397830341732105413586434367130144546770788682166955618700248503337501855354979134616642769300284183617023905079893699626690761703152305711156479144362251054732390805041433927938080947462076223994209431080764006275679940726195418101006437789429924864971661580277327889752987445053236986881875854673164343512601049965546209208636692327768229474996960502396035072627834488067411760745259850904275903236918621705098991183871515771394477271375772725439920686894402244302972166695971062322478022629445759692803315879644339216335470775662844430095294757818621788070496548429260785731080055810701784773293398699941211355232032827439958248243516020531412558076507339343023602267591557996654812173670380515730084777265938377230863989053837946382860839203764194282627037800585704911850024119866201386816918602304987007491440095773124585399855739939493327898576179025779710377271255979470084424883665807219089105090470028419430432732463827916160190246053975495115974276382189092780291293501665112401011995255911012682186467334489076027709244710666692908704090816652833791404771797004744133308082860127799980562725990946121100022840721729290897442474691060950403813292924294547021095031917491772984033967118081684995603514748311637848228416593119537018271003329770445958302365803620037032523420387375821775729415842316408389358016924123918772720702972915299983454979459149597454696534326596392380103638905032911011359942868199027215301503947349285926736009487900465086798890458036973871359142217592821966255894204529249367110353032967813043158905340547873952702547951704522184553304317417559950687420110694162798774580395019601149707500466128218280323172553826020707353763406156282159143800789276425409023821012761519819477220963306579121525907762253348141941026233578417459334744524478207696001607989936573864505265024638143100338066283101062410733513981120964008487186088157488133023793164454055982997450106596518703426187895031109930945564490557670817869919548476895557665136011901092651402670404404201772630792279912020414924529360084203393858670970514402756654411771389361271728312113157922871863495807148067962701532938608402644069660471958290537674591429843278925021434286642230847466903582931784517225079296457941178958821231218561128893549112462612749978192677680601413289646219043744488402890518316708547330551338318622343466574594355454873579035460993430835509902338231773922060017575770012187715255244870883885574095086383097038135578433015056012968463231897492732206763300141426583353298332990589838057356237297052127649747013315866073245184741680051128409396121057828711983812378606665564455142437086974102913633126631750843753119746375019643682577094441652953103997715350879126277927600271049108986345381890419281026100265126108765701068128817242991648766310945929927632036392227780259855600700857491979894030426729731793824521077772946116524867410362448426823636481297470858669479587457546236509480731706831746217028321904236674245322295659172582591698910884729637433798767367651070019170908846648303014281571119865002171222909893650241627575691322253615207502281454202835793357587110582705150609079244198086967918926965738290343584785104377150206334812810390862747429417351697789540125792727524989980919695822915505639544876059846881033309666444254934687623021248351012390226201744702886527576960566958431323906097339706317222051891528916562735139711948532985591864323506869340208455973222433286257268510425394603097607728005055354422297525587347067474821181718819725151045899100431925809453564154515482611364182216994731067096621132389211523623894106259899933967313497526697807079700030471568592016523083321679004589122505471797741317928827739379468235165059194317455366449614234458540703543190827675369194286658145615894363643428244683271896201887214401345497149883160482181856813155442845633784873484536660559732950650015504285494792178754753129214084369205156226330050537490023164395646183403985977692713399787138654513706270566356487540615565734405629473845477865798341767766080093973634804515418191265184207030712626010149828476932337603371279324060732181640116908474366862465171653692834263113543938820523549044810295741282889785330193322954363386806468384677601253196188725177450778315433807480822668036160091348020008651239331881757108375522029186341605588113451151497306388437720356085612820814497300657817396669201815620024124326394753332494849384181336689868500564932061567139748491911524474696368564932295954689949397507118983335939257470289152249207689504078247709329727881266664198710887010892285195068869160208000305123090287026000197998775229630390140895592315457515672194332284755177978172208176536346532541279020710810002496023260278189768676782170525555030312090547998148101776105246321504362930791761201248307515089759287593349949632848248510223381143183178552179466913646099192117688600303066368960958414948795761345232616403263640529980677640880951971851548039758745369888602234738089339193903972059914379003473477332070295199864904493534721628029682869113195775066909926395380897745640785784208920512084996336755130089475293669572789788104121181426008607639324135143587638590103358289185310175050093562228804266579860038243858980507346062556266179869760204214868758774789722948165038000099984446092237857451628711186360544575479264546196940869553209280844937661695704206635416977990775909431106525636079968913147409365814424526532283872592135600529864888590748567313291666598451327409926237903370151303103636159094499009548160209120423454767600568730272199645090712357827996055004994022094434555253095134778348697774529682069637799442841790126546506849220435869170502493777487674688638716042550497168454276036252641275287621135183518610712422924137872286276759366509524532825599097021108135506378536244632340558948145239775851285349052975437269908969585174961942496480074198129909551237932833029333010502115346660154789459803895464836848753945439577977086075797375473432942022120650869933195888104536943324672872915677412332339430007812494793511955364687047350610176003143463788869883556270580369562075026976101114372306168201734145809034972504439970674558886860583211013892623386418923772774426856042916417983370957216058284695203449577592679978465552971106823758491920482616221165338208790662386823175146962974387718646415338050944011558989130396649526174201498744497855400573993312786436326498015365595267179563323593534311049644800036657475861065246601810588604927120996902428984997802986287897217814308865216943230795012695811284621348245642380138213538490225746815705319552779937822508736705637104083172674142718719229384881263068947714036660778178211983877826742048088615216236242920635683566965091271742837267701758747032644448310156351752634067963110604739142461744635901581153764163284566757267987177201358039280053849489621811760538669768063543740135344258986848217710732890774575825110855179645740209483534382676625005703709328571224260663324321186775911364218799773362574246445293894862224123408585187762199785451986797773685005378799289936240606559646940324712146737235982680356141949069974315991926400983140988048358034921430876581219717005662970050282124944885324275628964794105625843771283794461481069066504575932325772929549575921840247117876334029509848290952827233710357783340393371464472738407676908883472249753606913537165760166820995584355938767713159445011841321466052902185466914742093185882688023072337902235033780747629984570501126008576394652317960890367862426042482728019784228463435903004583251776353984991475902550622878216938200673462286366700185025875335321668528968771939782025794970666700356140841588906963031402707954000066856384638073440111810693912387795841918987094616560039486566620487126172870312818675502202852149984008094116088670877877325441156881833166631976540059315315738208240868647957917025762595780681902093933862123940341824839461776533800694545070702856122412004381406239433341891231976764008690691232855049380002298984001408957590000607592297958487360199908948805019524884686706548645404554382272057476551880495915753309357126353823742924110266243544910029839285821592763646373057492354764174884892920005117089889734036442319186511534366116058488981691977598263934927650521612281999185185999295230103424720047250159682809877091497351614460533077899198604671587412502533428626353090308954596497267296727813169584873370665610167470345517516491171847854102054475478866139131119817199119092731549513412895779914394204277792759255668631448107984971628158271565961105488833224475824222939341360801038173427899212165689309261285482759312461309160603117262980644273333647006866099336361557411496957209539376574793872803768249856982700254117286894202365525050071050128761980718240536229523640531417454532358288884512477266993297876723113498547278239782456556544324957774500967683476492299659160092537001084507706355460167109710470197067781866214048437520382478355310019780848746512485003037411225241170779537996019524819647300239811126232304690369333306764730317925342022206057971593231580174938478161512774546127626040656050183811676439262994855561335620999283001198668327102339245943287329323936563503362333690512562114633077460607804259844646788263842437553120200138988190097339685035998382186103950520754809826947274786614001396222875995434711219361436218507220276211664319309489390062331363093577514578451600606894771779408520562483828688199707727334370949641623109658371353418223917659678449639569638406824785403410144082220467329978054147105459896992332905918009121444856201377077449272420706314865374110997532060484950510798879963547703834760270563387912566240393037510592515856781701208777763895634638016323267096518272268506134707241856608332902089822402386922232168572537316989938520413520739826301140536658442252663276660037932653171743149191287930226929285060990812888005959322165207234081194580930085528241504126841004827997735487025310272360239990162053280960504037984398942657673473523327184637729844206085266039193581025056409611454906339905890938473743372094215358564192894584084063566821312818643455432838275621454661905675963748147199487357232488862199524989675793864805676419545101837177497359336643497736583226030247766752602434541418829466626855720029950175401938002015218511176381872916839786399551149036542281975138368937447830879224463210745221361709083028282883900081016974495992294798802145661246219485897270023529301687455262787737735190391836232706900373919605733326875303917109492932311418087814530885121524979154958900938436848753032642812439845716827957022221107053135672449538733436507061193660719322942178054015959630439991186692287040710791234446575050452812539371479597777218428982059203565826164210312410180582987121767395096694597777610594768566162326223056021654412202269719520805967785192286193786587399794815446704923469731292652660136912773505216964407481401246710677585387863913534847430982013988021730318737061674770021908142898377342421019634291001978497627704949976267147353063158834136253774010100003028689522115376794485317632099444335048045632597694098424056983047050741629589933329074933736421085619383125144206208953444737972370838749799832278205465184253256373904254650366918526733011476578652915904230927325506742624254349928601255280067155755838688068749049318538259951132683385588063583383818950743659404185132864890385955105428747168709897303122985285735434812841720762658683741942845958825489696082966055352960418328789304853981177177076659332093795930912754893508355758851242205284748757993434611641427462926792786007089576436341828948193849178641111198813898955830147003931581518310551575070988196409248743104236535333322473321680391672455243507005836806584860165907588143181271223208173055273299368319619240081351060287525569363733752630789483810786982336561225618858845043910339323143682392679981221240893091686870107458400287883816527225460731535911128997925244593982566876263951991402494547184237822506934993817872748765165878272828706495934177959682728245658085036300306487832776308948396316474411730459096486025952373008362023651478230036059354571741590419797409394097846739752525752304042595094010478606485273365306974804009127228823742300464520871734144423102282002441521846457270314772349923203181094634484411949501416571772352061211329160164793928441567864347528337952289491300553633078818297872091358235848495170357755979591023311101946555045539114552045003884180657737936201826917408512536924094318912550420431333800051550236671099110081527240781607107395703727512603160021913699169398908570698706210404313252171246726644592943920055772036797454552509574791620071439144159532697350482511596264272388540815251303536409465049801052548593461089523017314507840637695490529068516626934931024408651037296393117263141603312731688463913900235284516254751366518125771426919575994458723590573408928094752981874140419773193134172884480217667292941279961924271789405979432533357499755668592650768437889679100323491078333161292294103695733296562292826834431032164504940249429152994352756769297491729919979569585740783651139292359048077245498324859167620937011446778872868638201615676103020995366142090901455132232255156370972963814011276743535325499104505890283839367812428403033135544715499131999908929327553759076139243366510150677129405581464947645949487283649665484199993220921999872006890919325911962112859989301091713037670240460226177963408531440977762120333262842294090007236691223573113906172431938171488878855263634222371766207733250543780050012260476387662873794243834719392396906005312633438900038168808617999372298172045096948564304765910923994084875046834088872101590722951242591149064117881810838704742688037273216054494276840221872878289461455851381148695806805438848210969251350132785879593228298027659796291741052366019177394274468178593050856549461234091917335561686242402129058738650465296691546073289793499711912163304939198207588611854932132736297108396919061359776752647793264029237619462176157236453109651104656091297377441925417538179354834742958761620541066678516057332809599729312837184726623456303530084228862969713445956045401559690868151790875092627489812505768736083136870541678784572008861743292185906115815717648014787122175277022695515513527764715830788244899304851528490491159473773077105611640563762622780071749037181807457446352750392206307665430878448207691083244334531767597277248934866134884431695415001443786904989989548126610222969326063242468733823004331346631173289320614327727332443804598346280578669415016917464998823493062623782270455338255888721670704223667601936059281514909253540623514239710239455721828009998885568605726297723761268568651646013128534243316347946527466144562449690992433180618817948603969319770896803564804080827115138152772660248389098761852628318154497981147519765685278294524731267048731491099387657181135799615222207954121052612673883150954140841529294748164189251644021372198120126505443383355535346208283420956382384220374791073288052448944120151642584196932947881565633412740489406527387013319421288205782556280690193523022274965666908097380961398051403772147009037136433225953377281905939068619534792781385207014513370981416204105762338426746680429070346959702181898302615610628555446574600285758569527112355290675238433034900169389435569945779080931638546200794721836162479891480010532598221739595481586799188765249927250956876031341490720181757954765553303866172041150495291639526116826444535450229686546847764748233836988499446411465737003007153964177634547841337467631731477443780073371130794040801800233648713565715775980186821869633731384076571663150405134726146259374196655448784804498744832164965954924840742430469887523168084607263604043319812876739776060101709390032491743723612799814151918048096406059262773233624689516585959117616931753002804637466857961768019090369156496230444213218085490861890445716392168533704897271764819058512359762603040077663450078136948349808364486550024244317408674617984179101719209293181174810178440060032826282139669270767748938986762553673472027223573232247351054583763388647738147630313968079377191926200401232718972814183999237786403847227965637423418941856031026472229256481218195901864531714621019916568040354708679993116686503245622184711217997806211171600300404955571272908759455694443796841310632866419218758763667906381791873195078663362684426953437499644616898727054347630477974289481761434181948676926074697632359255855672282164259577095979290212102439524970996732014458972125881498926450775707903293658974735950004525412067163957368208385122433306544352715312030702919446780394420933050310144357296366289065320594018718880216712693027578661133903437419016617499251157517124635630464825986644351469804689660377056614788091221062352735543593838591924970095013103440400903968766741464191937309402293777822154260737128038719619143438315695740569504202701196525890032268889676375115492969865485907567259405760919233627945174309106785439851328018946715926393475185106046458686803885115274194334813260776437658674715905854617061259700665549219343241400400665960099070462370025633873931188279954064940943097137592512404313396983850883137378155929941172370744333990887314378624893878276431582270264543819804240923101676594624835764942522931954888496121335014183256810079004447006078956638843922370976198491453865761743677009876499642254468585983934314640205229219893809463708926405532035191825452620096776079397110431283004776246799868098050340846057850440410272266899686060520250434084191518186587051045792405262664502337781402668525076354921265839060790121135289779474618397666711918461896659333932657850962677052810502823887698225852220557444956159658488950113369662613238208525992297250694639376775981871438558620049908044411240841466793024171469227455547073942934628413784355893867147421281004200381391093955590553039597499499371023074549259738117191713816139289908501926319971842280016872952309712625190762296274348287471663567980144389255003630624539377030205774627224803959428785117388405139860678453101182191374055474463222659498015347658210295341040516709229663041794957062689900709148897117145201296138145044546241002575519111997399343690150573939668027997714293774645718025325033448833479785034056771645961487927854726409171391137831584230541604757391692765171323957845015690230207491470968835770183465883122545774362576118190572499826891702320322050443044203495830008649859605219905497568175871832078049593732176342963276319856822721340436505106263727160511008383127025730177270784016231032501913671173546261266247242417430075952269844435523425158480317608614138024569532983276083159583515662535309719565471569430661877042985000044122390519970614900042800712757375430828429484686750649594226542133434052946015715521718913825802944391775867358389059413470576244712074274038287094460514124228598486060551750232764095948816018965581825342189974506125371740073197867611137590388842520635793564760940633921931889081334866133933960186695704670429443858585329208791261107430353518544898573894938167792058910765201816616344725928163494395088599207880875863425237064295910527153759748698222036331617074623816669062516279043149850195932918344738583290813940422652713587467378560454957892882866069344425345640055141943234107330725523475498547125203737460693079902634215575075931313913892371603269633724652544602512362383369144542489052784991213422664397685243238585070048173686400040571205813339537574169358306663025652872997894276536325360499478009039318706870763807935540439868202165659099330973367117682214584499055417286714842013483903212462424406849235701633727467049886500165162884120628662755535633125300226721830805985693881063568117478380921573298016414112086151567423732137040436188110239668756323992908390550894495881031043386754576936754906481489269379462463073033783736950461968876941996149748868227598371129790130437575495707901298019480960797588109357959004739105328545474982407137525112452452041021757055352947014230781732604668635630020506514041132555791566032839493000965890050884716264501948058566586303937334801569419830128525899104156825359682618974837944702568244277038681565935786905215001683794097333582926721173270980748058369980921885936963561920298251828503524445545250729975239391835841389388089325782442055731312812527236666613174080262717792003583284221077119888078737714366738208453613758309448316807521086234465298355121472675333984578415801037973515370490184480751074169830844739388453983927203223924481059905090035767168857708101475285786324157281572075606113617406238005458039599395877064075622794557605045950389558195320424191020116602922703644449985725784625495469916575853444851871816752366208175490045395195442062181381653473956190361730465282296311717566293576104863531075787286891141516544034901169426078471090971584543438754099508040913484876626705512175719673754706083307957469798244662976101396204153750897612041316174890065016757511538602893294479040118105911484040672751851108342562855777199000244464798158288180830194675210614392700040057185229252947244756026438703003612973240476473989598141926006945538112514225100454268010968568687255109994000431783761603972723888685817649595049414870271938653126653825786248974498758622907898342021347842992973594976180441332287870764594161167523395091231544843712126186822246084683578820562519903825972965768814051163530103085880219466214666638656532424006881038960324463633003204394686011042352198510817153526802378390923918406551041456928755955761216293068421418670499202362628011802570310345789557669501175361713003666252197709938614792971532685592406088297373205025182592965238896779959029106731522550982749749433262482899150613819719212685575126486294659249973560466824564729255742169506734583685739077959164321245071531991702908598025671032539183299755447198071672947465732661114754135867164444668189172924758155206085618689033019541496753063072644961704407031209869610884775565632495476619376986085506769206301184482204932611881721842442862871599513141183865760404074342336085131174469724797273166828767748813361161855869150726311143901889238941145295885925501555151297435409696389599303484765154746312795585133335288700036986375711610972751950913603923742449900737018748162417016959772973926510354752905151488768791320416396538163187641977725794004655992217225690094107108678091301182180011970494311737341004751759110648559483375415321712627851009156466911766605377127992056634842834418824138029788431414488074827941817430205255888340771255888629719492001322828454595932994900248078699835751282679406778757588506815236065935080985247389970007947702712383776908958748063474172804553086491279274120771884610155043082119111534334326792669224033823537558984122075976921104688200283394246239331831050155673094978857285241055535591213559393596905331807232068756536045919388975197566958577883553847923237920534758458059125097118426559066595789122885207034876988356078047092156136677931263001605174319787030848249917946900799702060245894279197964608144988211571440950181168729711108898340914678205684313839416678243832499779164812059034171020555220025307352765262497784744861401866807160051816019274183034131372270213759915861226770765697145109823911311445990170481099707241438054064842208089144703986849089314162577087496040179994926972930496226136280331248577206836429662435391852099943584511219372248355989874704883599107103761083452380827325226987520008727734324648782603199220016565098352597878084675500641237810369650524888624727609802765560298108287220988620272531827501984847497688284374501070895742405828006140938035360123680947958340108869076382803208294322443685099847340374444140987908875679385064871776519206926894673617114799449318252719107357972801601206220629176150184653449490854704019743044178979904596419553673920452858342758525973551106559830514755213107078689671413339519260046724311526605297917094948547848842057719705346098180708138820382931596710694066531504918756566040297950264593619689044158663874337343913167731865781139762448364637922607960109067454827944295243889442581090259211957787198032224504888850722980256109174465682753984889843092581096446233054947201599869792253154094017461538459838904620635217189686443549070122836104732972445191120649813022426646031384587512229351320095155212294379492244765160700776808928722729963543836100269666531838225733964915985615823085398825310827368133718849690990847271025127545398801027581598596950799742224416655379688675473577614194769613792921225017471251351437238481739004444243764469244146796514281981046698384794157681593604333035485978446469766149673740916125079584714815894997119395987452982953556098769030860185580601699058713509260186953436327248282555388661939017594994938038536323884004419201485898502091574437463011317465443797986399309824892835331430686942578775384455024532058733786973849732865265916009142251897862663338732934494240423412126237803712189895837262191329322726435815130226860712047556789156028284487154084251295161090280919025718804308313559719678497100913676318525752785981806674927506976481731946343235540445623461134066937462280718173313283681909810665972119167796641941310297019142709062602682847479749136574461540642275398317906733388870843425283079633953481998306947502780438088961122933288021260092676194285829377537979820318288207232901328530235000745532928396939683317294404704715842982721907343962514059363854786127792174096886170486494295948857947921997486722590929226787045000885785248743302939298918955758755858131725750337466313143932255936751652477804500360887579800836799243823449140274642915542543896901227836195704021976709239836489152958182144937271549477669589109772522139435377610235921258652315856316805275785669710448067327477544189469651785946188247088726916405547916748130101563631847907455873702699119922479894077556049983623651167658676171347823294909860631161136450036869820631701368707267366489171544755997423111551517492761730890430766335721414551988421914518122789022729279872166859276807476086839285566782818517149389506732553653198971715002527940579087283574552601218330844195911808754210372199343133620528021124190598143432093192016936534795233825419960111821241519546623728025321015657132016057013092000045502381612266847748267189892210277952883610535747703362095027953233399627343240785992127132826153984146248457653371017778419322922818159085010708729399744188874924911664122786615634713885614005657366408154933907637348866453912208478201229183382755816608287212629461545718580294208535940440043526306207323522804012147244089963318670562874744578232872135536454059676993324006488571357604815052843157398082846969415637153338504183085188990107512675259738356739810206250688882119913243370602241992005890234193336802771282129225322884857592427503750946634275289328408017487899186604501152089831949182266967456423867001289381491570944747158048653014370970717347959355618863524269038523259555311411228814111749139262624325154232250848079721348556446030960544435631840881131368727196988374284823833539983683663095782182193279743459114235336272924287627914990945171105699102095836501168273375638334734318539955077443241310979875710952476624098657153317289490091413323357102608840202023690919680846791197431522087648134879930499073425471418131556802172249039970900310811103431007224425184276445701489489430947527717573250572059599030134391255723867588870690215437860708930707491804725665613827596170221654425872375102349200823106814066370752935193778859111988267353544857959287904351256755456378398752565677593757226068743429913995724987242155944315494773674304689933460948586572612535934971821750882867268690963842331872905502868330162018827695151199107675007001665122722930262869869069349099479769497088210839207410959116881042039682592750691709153966894189203525881091366915244745768828470772858177217210231013040097949589636527768361440727875338577745210885885629540696602892681009202106403626851136929403234877551326389163300894179794058223434159114565874759710690234982427354546419122248612992774366849674966983426099229404742975825750641193389422081725120175763337612238713439495368535941591848188549336144857661618073120628843643785815502075037020836641396512932549886419306876414487322910778004151465600174508181171086312917808997866701949235026805940275922879987243881819622234192962214730279066444323591561210845797525527667619401350713366203915284808082458415497173442050091623070587764619281488381082008232323754989723612069899020137301227397072439427350124110108165989245483618129677748695747079486226805604541621131500396705387788600234295339706420246817524660740561251299833418062587959552495031542620371558653116809912095096651480973313159929256983976463015530211379576511569946609121610566460763346505780391041105727781891173205005149407414541523636848518058984972737359416697680285242830598260222743720902812144440145233100944855842150214435323411554496390277467499987392051705517262554764997353829672345934394445077730629920502345371853655183790678575400522872547415576189301374087832011505899048251696955162132975088627753826959640068102244357034244049872378272552597033599282379298085656958645918791138537804629915418321598133565002485616050876034039575017816257841624232057525723269273012278989219979952747715671646761418324208098588222091533366900011545463534521673437532389330703769905301306476611921445794972705244900387001876489130023256955299180516287591068905946514364204852486380429541073128531661957856457903659520409086290947284505561007596513713625103155351596083953425468453129554497772686519180426158944246841770872450923187653403102810860895005033248774118352944923452555087724218530370527864042191796430390038293310613601664611893487800004092888654042591868908158234215340475693155616044267484483269655001556245997213495893315861979784721570741732887262544047489932786665065209337742611951435998019797703976067420677357458735933762293912238196047737151040395472933498543660380894363203570761304471695914355391250604388224330161120536627586980611564183578408394135905086314783109559045702769531658318342361155356009929577733667464993095609537557886325280377413593217381987579925828765896232594811198645245823443707247218316570473320381928569970895470386672635666222500361510644440749142980247946317665037953150065037947076754678716167712751663419633070004164949340740797733515073292795139715753091739234147010454880824766237420757712127512579936885372743767923472462486654165919205408684686239769205409342521062093899788796361123427042247970071106913660734889660984080477123564125839481984844961563050665460338726528675439430423137984591810821447731250529062024533515422222043525082636913601394862564945294593329834145060849741922174296762737656357654411526064336536673067414505673848016266821279716674827454433136870113045073961874181388208401167008131491796273179603315644431531536143263572755461068619431668510070310217526506978007077429154786423822355762490818059876995646375746647136382190160293199188608558193204955719678341038730515878204920616128220661938815869404535292751139147228505669507392329445761165579102031955789241065340599750386881926229163717102740796234678904139742390689840904162386266950487165565889844252108558637956616584815985444564722439179201204860928141870173233559890932079594206058139948122693487202369695208544601481495347659289303624504624524806289284486850781977080814716350919741345640972832897690706179893476269311784045588164250848372067772354910286744752059995954145755269129888115976225357896531674025671429516425111173877464242107101250024956962811037915193913537216241427419299758467223001811934797813588536534301897236627225075911238159691918675042577194415162347180405885958879277994674986452511586210106724063065179918233406668187159744162359147227391442609120997696886483967923732222202359180506082744526560441926450397875137687783616312469218278595922279934147005505604709102164740122100000676952771936160641397517631166540330173801386792229939934404730865202578866331255174309567890831332129637232468018201886744048094839456419745049416085405513560808775803632595999828811419198433842939032418651482433476332235750653298574853028116922110277854950382183592201386476987017018125622401541961684443402611697787407121837305265188137604502543109055855250207380684262266568592054155319588808268970958487820196486896180903176002624790868380656012040519492470448798303603220941500782186037196467381736526434023880061310453117306952791700935403599258159189075060147826847932632838848652578145312143652456007807053831745248303454035597182630917755952846345024201286991830543897906109957418658803682228074848075054852838140483756021088044322206450015194127648544801469093346903124473701989804313192075458640860834077779661163929338383116854772338477306186742894089257093788664748006023297529817782048635285832127335998120027912732809737488244744570003664591950940826690215383218255754765480680564734026261869321731511537393109149489867625848928901923821557521302970125718180691576590762867701946186352723523003275124758445894687692430375358862443741348018945495726349419822822086771804906750197565384805498159311144161434424355367900349721314288453621273855257300827351541647309868900128441574401314490371401261945495935048761021231702749796835420226786343884065054595137322143134969642695155028468611533948156649105424115707581161372841129892639111326713403803668437438023480472243556436852065933860760086232802591335713218972418138768191566349184090751907490984190058079000306751157183351460974898009013658263541646034576519777788621149235852305168648825359551361961213467336395209390414609960756189334641584456830185366092389044735700881678755961027149651212497168106742043674857920196514047867505920666949302046815797366486404717448714413476095822921460976306783273074287242626936582084128051874130294495942927880443251181508409438369255193604526668995695875776065364121846089547780484429195961260735949817001487021083010536702800255540798758153616075305469832279191805677593041935826832908632373536012353841152360189780815333409276043893712749734382058068673659407804969789165965771203878078910221300691237707095935300232142623474701281299807288123030282563874667670768638011951093097306826199784828295113050589841583547573279812521322437030407994420976870166082577702224154913900219442265190820728112512923634784154665973083418082596426580616776229221163876683946293559942835737705075809188854326495386428475033815637972571157017431433701628879800725960302294265292132170008241691622833168132067850492424556795675777373148444814618594098016045164076160386335751166469917036976532984183205349404923623333538574890647906974885153111344246789983462364582198092587552176843598426276074833099916710236692597077530775539725816467163371775823391605511421564442647352417141209222935461479704911053518248426288252699325854102947543724241262991983079218395350808971854252963533606715392340502431088184699000914936736533994074815344755958477922842897552915500868111945426042767949049928554794628817348196293253200353876233228735695157016930260856659486702308644933455259006646420447702434941432116007642670051923557202304085609234675434637488602057710416192437788563006100061922098998571586427610143086100937001831461812505475259963318113682191530808848356586802664694957033852220501790856323593736965955432476128019963302327251879361601324651035646468203104072130527666319868947356100979398752692365298952811709282688657015954240277135477294913490215643761823342837423998869614620818184777583994363197823718549316103584641210416891578932337551569438373237333034108252184986279458909873836966159022359420915185446729482756850226713217282206416257127304537120395103518172477759886164773360449097793879648607376823515814868328913847124966747802150884015675291524439164218565401778390239604013329442162993648560553698511585895235405567656656706397280951591463115707530580019089681301323186366657724279049839671724789265979985276141954570732772440451501465373476300444485034757411014973415410415386324193432621455073636200212455938919752381378013815389331598210007547992619238763082948945196071634770121947829603572773241581503872670081366930268824999259852629317751230804931267234637275751508159981717725850207442761806138818621977213051797838074378909387817162810145367654720669208951845999946188199017526713696287310867526606131425032425880793569142513903154231179581940897189422996971583169892495400368776003959559403588004131267438536876629863326499122069611798648041721651553126639995862338301300805846243218769039498665120462963356553422844659717424341988927746221897618453345137713204699388820712281514999770970236360875289312681895870073350457098485301666003365787331478478015172401166159116169992822011199014145485484235313800493104254095995567227457189398647425773028049886366829644747853057240208558549610449355796364324219832424928101375821438909125504609450231457645101791338670238835824533371303889699892276929373763805637476875211891153348152229811519793140400978220337114182903918417679312261446591206826961040702920283680025590524631452551491175475599748257497875694609691214850621081927212010377653460674531915803074170871441967056327384607873667631342631925139069128681480285125277473682053993173270525376402000924566090316026932583619064858855978866759080159487962360801601276400389653871568666801206643308530901441014672252487720021686612599843157064669957440852983631576750331656071458371840883947003213240659859939899540359409243112814605668718307501425180135187368806564409507883700949383544015959427703442270310442332415138733061761919043118232041882117844042894599741340295365423752827494820867583650876449537656797807088381365874191506477430753886188746681848345205389351391461746488812729050554386403878933067962838834118124143796578316375183874015382154908932589256392440161826269943532152104600026678539652132942410800837143940368260605295851894069011805075001685046098991749476485765937129155968865106361348046641734167867221181661434147854628093558490482828062751839440814092415209766140551314418904122730512870696290680518914685411897025784709936141409684799197758676156368659806185247874222471366012911210609984692026519352050881309882929529184480194478213024700643247799873717907016602692183390457969857732782750752692220952161425811417103898518008920975904101159691484040525394122494934410630424515927959744216256527491211907789898692300433675849880737486550757261990176210440109514438808927642785904326757206993581991908309035337422335534712607679849414242175012979043056654278880523073215121735485872474075570896383379759719301336602655658459099250347152479909192566226586308373525959440753006536397910507976922216183145121809880987807167115601805163563886614273710281561246266742664180054809040278339335567205896734202908421622922287066100636700749479332334131223580731645013559851203413802932871271293589173383890068907770876977802279978794609242831828299216560443336940305159909102514817577341107592495049827261688447119871828241078590295066183127172867483431844772599725063931258461472644854340181039482511351340937214783147849875154921351344792968738830778541659788468578644925095094513735457728993231157930979448119937310855083357467215947968928766391977369913111487706846608023948849748869561636576898046150667777800844315842510857508708823739229606771735802913173045075237468400885461601657213687788762045088974780766278173740081950243521572306693569369876371301594230697291738276473253869998438732513113293402129091250926074575052068610002817857468603151192005749414268665561568485706504264534591464145411943824900048859623327583180635699935514902136695316705950424193813961479849054627613717823445821110564015895390948253691223128328727547519294787339080965840280900033086036853000001950580000263991643491658007204419604043450303024429583724486595980682348355633594201883161401141481150811632781103139342805881353283201562263839403507315684557569156917700032333089895201089683999859495226733238367246064856655348096745884277460540320942025922597343672619521434129613852467551578513228063884622948421993762285440673731497316126616550283052783943865406900777195328092225685261905660015206185274620813980613675973669776468123845300054649117512313894004655390619994588697261133663536316918584263660204160915880627875482136855266537939952669367978734026480950506922812156525500120990191796818146135736339607828172024281396099168347773779862646076100477093862960370864423289112241241831616484775479868814235248217817807213435286476726440194047598241045920457862793281735437668673069715568564879485981183782009269051982136991215223634678192247889162311021402834855529022328083708590780827554471534769859915637614590482071958774797409899077495824369973513819674041063422902339426506390396138749874948266703710060494156700268944090296502174403454125771103418614975911345991120873104647305600748852311737152823362021761131889154624860944910840210630475876497800178443671712349694892765295076945474161620651035370232686917440651243393134501236817706889720289744571108403408908114170676913356140143134169056141937597461234416548009167165503911907028169470509686721144206938354801775689431043929508526572921302787580533178728754586969511123126885909128390714052193392302594229241684813610796364523227013313562344122647699094706068844958652604950377927473927481822675059995216241406017804572256010610693876030089622606674091153581832821185372946918840868577829901637541909734100902403905819127171857160968269061027156750208715518775375190916696303567635673393254161387446093901640503368454202444090075539975431346253961909602206075138478810484470491931185300855011514344820106285753051709712408178022448037270639306806755270531461904611741664708826954621912399762920845303484237687564894370199950506597394284668215505995286958265433500352354973013563021914492656209227662266188217109814540338104509550733911554327098155333993199115110907713520747749313866494897774982308269544527138987156165015445403599633062580728623864509426619747367869764942651026575344132541641898877795506461593663974139325879716710063006900429603766173561771716651074562264739380472048381882836003586797653804607711717649633997653832450717912356961252724715926078421333266789595676665748793228100449288951528041722685182018975780823634339951663254798952048773012108346350952253221805748591937282830778680346958684830819823598377200410138795932985060151745296742224252530569346406854675411340312935528042302758995606728320592380187661301208790793665277837353113982839457681271927477536776364678885626356249004654239570704340546326630194309967025556105715160385216530845870798446604978362337102983683280432241080248087821075394525455629550531505688668237971112931581639426066594177320751797687154093402244622563586252260179230655010148297689082123891771605331966220045492020177687783468838208728313643856395691945855211591134841419020958045538202463143596554662470497097102960160024626124939492479338080235403361034117189031144158695450270878825818260410431279441389883803492468058640518827583674949312770139706447749994707714348040799039506486547454349780229226914715136018120249620095190056756003038988255149157817780065793837432073982083369399623657501667206392630312197490831772076541174745715397825704792633901754549647805096746241380918234196281063198279269393216528568660771190508803638630409093315975446615263333532764939240878870501922338571957500887929314507794726286066256184386446651665360075263381099680276977690936052255633944694041142911448765569487403421560144582130225227613886867412117689860779267122535849648097254134468828649396184771159527798728419124355434833088498472538962928123673655350148818550303490262007327639348210466678832782488776109058955725225508931564522313119366847802212972027464947418719178728100480673579817577515933743597904897365047327240556349973602675997648635750891245057337092085762965386858346490271691102420975168124581817587933703412781968880363637233868287219749675084610106257240775399326837946667948339971768385627944040300594178398743377025377308979631019866648326325214435827130156109860573262019219081952732662383385458159185293828742599949188299111500154054353729106972193317892154428410625205281883429324086795130777311245082760465108372327992331552489045895846895643217969262067718974208662735331680008153001739106583752842269460589836196287148363380425443196318080531241691099958264436150446827596376805833216594958220661080132968692603416205131594584467050738897512075521089664259875753002384481293161963487041512529612968122530348636368676233619020606961694465575902575927578998158822338558296523316435150160333002894389478302794877837905841065701067115108841554211493431706325216489686058036431459144743182170964336019817883580661030429039221531878340872287803531369874569991450519068385521224609685822442244992698592494961076590896858596210099586836380010855301858248555911074981693829359786252415359804381540167290243223275751645693150529637046430924568394421648822352617751162009029447757494052016219009325042835295599766643693365478493241564449719504840352195134390128814206628999073159325497993260823414140610967227338561518224313102999963588454831528720145394211713890546612177262536185344234365011002037626072529703231716196690482384136162754459319876646191798947769492690717647631358062763406241264157914511575449477307865839660156105560983441300460730576386336667684544570221785419361950556096707738808789617566512703370587631637993579766633719981097115106100919374986428528664348356363200739777245357736135539233985663819565052136552436134618515787786756739075735513375099056459176305563697814235278460103582747798173564172569745146388927425450559715145441913195698334577342774313148500637777660621107267350239325706284722241550769939256984592671213025490195467033188771189181290662084629121581674870062548805676309797446212638963946870124445731524850732650323269936820834922809144119052642112974238278310157482683384138415172076946422810478876767798495311394275565685083980645536739361897981016047626839236626960949749678981059758420165817202177579760630717849161364187480904736113023537475678996920494784074603854360597912989523579387463461561221453446240087334465641482071741352468403878570821752431655640680950140508789086546618501387738272986018493063214434092534516240476476194548434371704993797781766863235956389267656663796183409073161930300257385608195573527162053269835234326988529889821146080725305619762786628126059283334210773497101241603823219309307083386024862352462583739912491516598632374178420667322162181877735431251814968330892704345726703645088615988333114978776943453294506086965442245002335082395193939324199964111905601540906743734471589486939301255114662890641250754301058870288210598400721595655132857745947670287327704464440266033302602166686380722933209058014046419627936120901493436982256705372856054025213904047715154798169466317011410449298901113330538606708642404642709544182895999354512369489921745018213506059983853060412862919023521328280349118450719217321718875939654002799511807827686213558142124827818561794646595728977481143728217889739594792910149356355605761235802912255108780528597332348328513662827509804432754475411811827081755076654822668978312163108535949233693867484990416615986366181436356134661066678815112406160321024161211835732088620338098189619802317410870868257611704835644670229120175695457975676684358806055165118774206647665474327263036605653978979347579895080162981711012828131290170284028720997213351346334332813210409592071279266516764425660474654425431831455292344979621615004998951353270091703308703186346439978497448069886692131847930274271606427769841296400223464177024688031492000064569386794370813102551233999943649464543180818501528115750974513078860637944640398566112122201409611877676757075497757402390721318386779488505955854233952310689221633873935545195574692111577101455935881438630879799000753405284724387242607867670826636885271341290138616326452689329381108127305908072933447407187149670448194718615567969701687945000866332201402557513286741940893141471585236162222856243974880774526970356287144047775847997845404875331178450310648751788364450496889514260854110400417706469727098254331443569679277496309575978526791057916633133432473752887232014217709650728594068916902262816645358745610972027137604900224876866306497797853639522527966332963154292455548230983487536288821734485520974016851682941573785677904517907148738013443330788410694103787966723727103704409780538435254254453363348011066499861595064743608988710537437858785174661235427787116571880696026387859913256673277736804328031265657691109219503134691876892522969724307908411041170223829675701967172274341514431610326005184712583678337240331467313786861519070524628344612884807766512053548864647031754809179871475414157823684297124392025455097447141659182272353382805939558718465460471534673032277622509415270195326022387833896634267517623675405972151566054918574746932498759484616885943075872037599791090928974284532414354933799715005325445580532808791817380929833432098367054190191875042243170492143291327230147969124098657531153459117376762956632000940033634714300012377075724206476033209298063490789071446493473927320759853200520822143660112325786333672530305250898107196098992717652487979921922091862545770556906737891893986835694510162022937799254043002599071761734726654147201958625642739635857445599190473838751102496584475459185947737512158608999614200127436500735845330526430971846233332928160326337704659221620529018306797278201182238421924212885742237348485772682550423349444620741313939223743329704501662297745478013831602013129336644336163970777972864429581535928595894126294337953799422298978081619882210654426589473418991744882012257447018465705595600505744920644856568767118671282098851407454994987205454240115284081982024100150864999860149413293965101523992784136157352827100658272000281537492149640201437525981555807838067750885633103166884381962332342031242334592465454880909430598897760961608874697385755314711594011657581972975906688743153514548437567402855275268151728664419842903208225164125222437486672142369411807316613326178630235865029326590994208337496100174679662274501952971318865221839357996940933219534781893815302479303498775407285776852893371142072930186978464011922752936479724823970260540820121071646052380997213861237950653942594243203423909892772631483409466645583736345660603832466891218040999505124932232437413114761444543627092537722509150456805076586712133632327468410266280781172898089235958322080487422073991149654628156979802425437096134561493387956699938306050420591126537668670512367776001072396106045730699654302475793887641456230900327509728320502206505801716814809915259300820945033206085754803440238450987393473220414209214737192570285296464115079042247803431350645786294189884844911815116110809350931715632870434296028584262217856959345662820773099638801011245732754115324099008070165414694207205493228192957024197487169235203653051739571988956259525494560060969829427966172887511242572013540352606954116344619123113070362720992273840099292120403467681760091631423485924997686909100316732145326146457512161307502510015918018108252564461911303136269869141481806770045405435168662609517181607489304587049906709635291478503646162831554787876897529156061234767700373172729672093963312706758264671317849756808545028778035501566246920074651108376503127714271494753478129942053991159962743387508222636508304338817347041802912967089026855397684614864238792993265001684847983618185551991693841291106179133751925547833333495923234551520100643397089125935982580048387449804375731822215079543787362834174745711035199256591851819861800584164094460540323854783222248299155625969567412623384232618345370143444295290818850730341833683837578561483003153836930412662225568706951814091224052643744791182299931673059859332319233706122140158913759583173962173651741882235675919257608046809673563456316541913462385216146102873155072342455016264488888119116951298499208668129707388235299122191756221000245322375427564420136244021869141420737169209500158491887344232910629515630426048669572880030553659255756124534910825683549178939769156040650072106897513878697501875068893991857315600601059139951868986145812008269339022462722766461047117662757574772297715441753714225507441948736324960349113391372235071580717874534832245761237851845238880239772581138025278917278865364527317147725776406498066251884902063455031243691049913348621957027593339076470585501137435596336285036670668174340087977852567538615461307167780785456400657015429860020985784271102652673540600086017704939802758183013251657735874064750039960318767102782718549678743489146651205401651821403092021231186035369858309867939373693063826931239339121159872948699548330774125867325851840897636364920556372306972996011327135116958886636084486529351473244257018902195518516171536088736224545446760038734170566524203675262665039973878690012940243675204479808189067939636173568731040840261993377152570716142203231137346521480676342920119945406448947846168819762358947815361083202110136085493326394513127361325065536390921066042258947485400957681520726309242244633018896153013409008581051970508817146938720839701037236311269863541599113459429636436375949003057834530166013825196977388912558931077182736303688256102919504075320342638279322373936668738713352819140585632145433986811864603767309927298360026280986825648992244570545094284504477742888506460036387791824239572521445989969879067181907352190993658830965722896996154680094129422171541904185494363473605064305995679789439840204549221477395119215213904899907387101440450695903119306037097865740483600877072241820028725311540294887878770537430495056174234671231397571910630790058711342843466202019231996333374726293326297057108713690192151794169471402214904218343418819623091476913587133493559366363956867061936372327283561035945754331783769330736632123791208466870990797731910000100058303431908009302856598822954685933135028063037341902938752082132253980505269754367318356434127589492510840808603714290362452433220669855462703333947482319281932921341263881828846512528270826182133556357619143468289243131013399501331883467274853777937567931951979211851818423707608684698983440450397057772398238016761534975132833274335471525021677947904880414265907295250737845097073083430685540678286172543719715137189664915918531347274848901792213872870602148996375375778944593617267705740939507672064920544330708422835128277559294406297958079218562157825542352679001677313707178165191896258197956966794695433084391924749959499483190071152152999344702802320960829259257111800832069040935899074046137214646775705009226655207055063069074319672618948595651504911566866701953245515021622712253929390249511396401736985630841572884281652795825061825826197204611906415364136942257823423543901520892276383586155215333693464047426440394919485511660114571572789763552408599985721705595184441894600697321728176525371833653030326258650330038772569073989720161366226036712026842988044341429270832098833389993440776690441861252024040337910766587830974102293171260387121077631658969579798433087122777450964388917366300334735294676919346131737591345154217593076593058209704610554733174407229736934632975588811893053401702740174534290261762414045756590033234669289562459472233254860248405103354964626522820855628987515063271812296534815681562153885665737814339021727562371247888349527097230807934459874172486206481544019446344234367598974435114871899595092871953970778189411713654889915632504865630354676524278434527749966742187828069174950266400214891749391764031819693966321245527764943645779967418435967875174268229933368750151674118218662088544834289829034595381996292297349647667333919576679420829372250142689444436994127582265242750461567560217643770538734178386374076977449417743894494187628610154886646653890526403873784196118990599356016994902908185774949058228555010658980616305443934100782615577665958496236706171949075135269267451478009345857838869122440554487926155297349348660128831897512163003010930676552910431916186439668783816084525443729863590483576674275219015037064231962547875048903133991666667247252131926560082317187797960633757801928529891165150987201174081558056046707787717874172786599460340966508016612315943061235386986761640999519937058311089985906069714936601541504099220436758443960490541502399368197452357714135220252037192799767524885729341328239457668350949697199870593080150464077320366744340797270019755726128815616881331836866407140720920393254284570783012950398241140484995834465574854231811010446360848272660874619853709082667928828243008104182103711809271414772347840838388730454288039210737862399438287319474825583941671351023513769555101343029212900495025300025936014172926507578220588295075116662898398014075024405924596677027950008562693936401061432154582094294941642282076733056977334775306272083306185781099241316412128061740504852117996962350612237828924567978957975624701733761850566875299801612912351101666611639221636536083793121285975329291773144904780119358046602009373781095580254964570190099788745654673233696863505398715351475627033572321010461935081527459094318325694748212435383273252457554070212030837796361811325910275651224266917928944597809276831224534723116562710433204590704840514794080481529721214705080855134900863749873777833764307293958999773251491751422508505457223521701549147124678459612477329847770291995671032967129106288900994341076951139037643756524566274802999949007183728417025718893369925299856391103122347963742320057259689876095772224040736651845451981551327664656563232954372703350711520033023682755823301817150414499897840499394748112858820005518947909772032869274019173586472830423302347689753082880502910678476261086923700039462954306714012736887875975817849892966457405194370636081739196847205256419840674695833724456783344350246153320350920027530018712026336876021856490894270956655165059019651074515831037159851473522712746477854413763971369068746264959109250456537034842930469320968002766618345492701798460479585684945995581172774614867369851334076792475439227349997002799591225732702677845261856715011380574027052540738787695713645603460710000908848902187809621528160872734906065284712069611942388165022872411084611130450967509774323083664427422265211614013610711179853138226579877158841249488652394021789775101443169144294862875617375543358927522454901695680750491480749974892371914328587099726170751343890845924005543445125909566861246433782359091294038798355295603082164679380547301719619678458329261920511221306989501694507775369279177036958947033782707024262972963844890759725809079466574768732407489960529669298781908326288289746866991431660827782836548112606212604204589210825301175289792283628794276146195926289263312453320141701211709188416466679244317920735793605665171199838455625086611987779554681000477165914146751444776273602989438580553130920668942744200198331681370922043537549354008829162844555646516537272502580287769191251597474222465725809324259280359499194776859476261336900203892637043731133819698729754340584383721692390496992299145051531513770114424182449758764526243736268721384336104974211552028093352848860325878863070894376827606245089263824077728771982194469750144985503546345330314798965018865064304180570994964642680945623820233853907389822367260057253176786814657035038583390722410336784445791564690895667117211277916615873238802598024739092606205124852694642941987232277023517528505692534838192055712405194225915741323909592594784654076416401450327924511984129214371598626211053814017055754704070074991272587959171884324084812135614571090338384959961012588708747586688410058417064199369588519669533964156390125179558297224373786657842749861949579020769640171454160567457944821269421991029430851981554255724186146514266115312764925507815483869790489026927050598468687608016927728779569872310484735403078921221336230631789325533397508213760181059437071241617962452575602833789508822309827059811920645941902034616851338784827056096779814704932511116271262387097879120948952959878618678056558413931240118104527707039186923927740032140971635616208750397847076055234103445823953179111144862988190024176882379814671683673386081002450557951468574959070455959268629427670166842558669525273861485680054854059038022036357771010653382056943838393849369913774488579278877515588216565054193166511728940743726098962700581684148932780841866197255641641227412104428116577996318918127658729347617885450117585795318369526938766391594986717472052006136637468407968352829173232668911094832031965013758204533842309861942593265976744447330348010895566032580135034620328914773234203835349803365147901083808141946156046620912593186782299100875485948628325318951945461420472330234286460880859647454146621879493031953037718987877434390519515318290499317110751559813398489705110264230423454602213541439586633462786461622805165183478265101308159883371154107896983379413222248603142387014491220685770760955565081384299892754881836316866494590812987861968745934002606066471307931938650679157694031344423268055439832097259750102901728481071295820631361344985418825695650765673072652338964670851738672406818222063295652748815659201943323703298152688952401313391503333992618301767432884083708461467603473475577366898690865150512364735491759329871373407645170581983999646412485150025552076894818974330159410528079443317204247399483065618232426240044931236991004191970114796872637634057104036127081265493560732125039661780581009898094570320920390030621816515134807363601533505746544695552053475468103013552343586256590788028951463657995064940398744091433970532748148323979846469510335731150099532403989367643502489449768296848754193477449780611281004712584018124896332064554811398915093796964393691570231573796707156818916807525825056364585548070918940947625554866627397001359746187860904348372136624434182622686462157224572363781974314101182398080759230637949495799221180034199618560210148145059220546034550051938306971563986462578616292934515614773481375377361369648605062565655951242027132313943353518150891793757657119843013418497985975888764206410327015896915859115881903348233433848295019238578235201467140843201349818036425573303603413099349554045501538255541751011029699837925002279774467503533172492082264475075981575986077291494192900474867728154365210363555432017959502905752078675610300295479568493516667772368092698444369923168140494869360000780883448099890066759211551271916431350388389094064871210525925465246653936204725860888124648287558539122585100399233636894246053210612931773050696619910470660341423998856497047465535950952052926980068620790596029208246165465085344306639542143151380654118760114193019130285995133709121683784670219846091604226110151495893532631992391034646904169166566519456858620624793017253503452575325979764629019847494609215751396750040376101494609437000684767243918509702734963618597598486485661024339019048981582170552007883114643493195357762416819939406143303628514793800868385348929313724448761043438058430952642158836768043971673758437144726588313713544082264366929730430253637068343273363728052672756340833430226513330077198259031553662381782174621902247534232022250171607670009904268922463215909869102305537678386744434223237630166254159274075573107082105315322077692631746003303734428634271215530700261602335918811651939688785979279636423658762163553326283927363455947093110437377811427621461273613009359118212260900860418488902610765678648978335086018709311322194430205687621831972939577879535277715592764482885353458553953367106552112038201244285645372186082103157036430146121336421797456157776197181510085275547301366610120896867781842999282433106046843782092580794241271155620058005302772915581543942133913623750540540763151992738085467730581940945182833097566081157562636391856897019744843903136413544769638014058363744534994383569146479089631586681123149624629888743068548269158248616042635113363228528571922481653360513633976511090462766248823147987880904446649345365803591279192740611601611742315001510218217470056974549871564761200923028179712281396385901751945457098639711092773563797153938686157259856908444553444305275494716490225771592266732528806647861229389859405471166857163194874972197006479775048564853582139008612015538749954673810426968973262339138045233621516187269024527421058477750869037817763625078311009932641156949862497722568772745278205499186836428112555107189864206920311620173049836955181506423845074543909460721526350381708418840013278329476042550437077716010434674406583272284701279237178656770030645268808883970339975266435216730886735344656330061743606605607865755734907275049254122261970535199124816186149517097923115652581661607486835603095883197144898841384922573955211208289491797470951560252848437344507272370548281994755748139628116651603069554562507913856983205335709834499097594803758549192450454656320093216670470415223715951176208723302372214966430640745155022486741500414636011667900649842639128289664275689126239005735939775077641188982169811856676939097108941714962488046102841453238602724347340501340642695027687635741316906627656370665806857317239296763041051235063182613151330322934823159011379576331334410057181209158620730980854587053839650172913093490111813410677619970000209039960923883965370359202362830384876791120767280684359734766042461384624057283757343573447064444064635015345354846870235416637159876026858144952624347406480497494920078461530791241208765333037292415456168732775467617331513316876409200398536869863533144575830792440190095301665650304915285994508182900117569840459144396493969147247612650811047420003108032185979753050667224687275388336884862264752238906397758153754803222404511931451263141917088565636816985464809951189255483621066267308960028110408990702479188358616513540911994559364670678771598759775252116042434740411026774282734602176388101639655061391889706667501494913492010717813677110640836974090183737546987092132768270512007364472611283994198383522735896278200843493529481780157448074959534198242364700966872717119532747900625797882427730066233719246117725180647073084791890021297102534087930930817710260584603126700016850155450718390399352926170408340358716240230147397279894889882649367288048400562214263965343435977799527889409803210468317193878564978030206321187414443436030373491939080287701844937432869766890961705751475831164788141835734562824515541179742598468218828527153436036188948041102004935929802816922111399949829206282372756107702249724908820428879135681780322732180493157911281086066896038189616742293553004340196801792913112009969927406080112187137150021087031435665224592229800878889437878995826077051926868065364053957555243596726901393635912295163737993609971380156550321525810050685452599296647487011331264383818689031530467036410725558977715024640506501616180208739734131506409824369093233680324801885812760160648165918303423605564096938957949096019284241053578992813040040321619864872502441105878541317640774228479849118604830777210829725627340346030912836511065110675932302501300953307933381922658232166717029424001848886369007314622513138989541528643392929831555256169377975474514536310986670451264244357011604881276934807980124166379780341140219519584671981168771112758677411090380689685829973035129813093960739055068349035859859764418629596181614076516072613866510453476670976361198272608208430870271342634522802434250737699449391513968639700561725798238269924451576941118516282603646528182353758179062338511502275834687675594724322312942077537335127999925753721599065326096829138400265727982530855747644549156820705289702592471507442722550789517871646655403367138236888794368408354509134435075771313890801290276205297686213486772339500824771686889177913315597172150082418060081043213964199535837682734555819684967835466558012797193336122855832630558445617227063616669173421130255812621938070194982189536976697413302578702927344214596447022244319631696935653691910306180998767645134843928357656960269315661866973108149856587699107136351225816055724950385105365746412560086026287375525397081254257873731651885644210619867160478153736655620895164888311837242054369054190480383346202444585456409007818446051934514267127754614957999759067524802189961427232130755501529889589436772049192457833198344045866178418268307339513348078377024290039791386738763166957637680773996091147718944419004333563290856621892622164594775306444706745741838325927124677228673958503773044369351548810292390898620794599961082414442582796655974333435240200936876898080506264387584845956581842795528178427576115562825628992275499930268918848247682324635511181198605761715326682024769940141026627828451877964886822263874902698193689664063319920449544621466217119502750386452689421376932872369606472559987725254240693673083648682277059851262611176699700230487104655528234451179981082632568374796712763502756696394023798693993429416009757960298455585533649258361174970446426529375288077160639379886716667942493261948258051971594214594823385426554789482797524143736774749952901899186420165198685284311431169986709945927854233502507689589767676911556543646274153663901216695483125294733751924231997323184927625743993889844151048701469642874556614573710096731337072468000473934059996845831691724500400912659341950414114198391229951817254326631035028350412838409538682473041744148610816228978545372653155057242836176716884791523105165879848407136999418797063594511528329324353665990420462742924304962486587916297666296057247087250320054723092570126851380149023506931909535601501994568111568810817372224085151517236648507692366868955269910968991183147757981098596821413576029894837771540728478396704226941760955674631094564510227377844396436920291575651712097975558220555290299560806268255510600332951960263467723170224663998083341559030906276718458443840328072647926160403326470309216700179947561033186581271298753806584738491733542495918953237667472729397443806282744400144378187362498974760246571021128972749458071458910292727150074066410129430333917407900775097969515083094942380354573562501637953523184403474378323176829759810558079691540941404554596972059671713897640605495271113600550021074493266006414510618681223632711722049945493475410635009426908351938500651468736660368169286062624888737459042955209137296479521612398175665362901240883285769467169588895850157986431532468262512807568965702654141964154079847139545944345767051406382213058494075662397435715894979325163702699388654091283311927656107919467282628149780361101710533167839107661121724059324213807913262376263402631149807256605096722154734114910881110338331965560269335408510913407834156990594058747706495737125800088503351567335008641505048352042406702234634699926940262430382948000287459994487770404476155890848884949182639791353837059835193619405892626320077973921296642513935869299740476389773607980280033316941169315781122402931128079718108836318200919121581683662097800442643676614076499051998325287898233283834646073566780387150688163134076344122903400967217923629341251864068581596955920404738322665631568486224023916534724021123004897486601321805347531092286281295483536969050565041839510718576250280931136367079955767712329526197357858833344923581221988397317332533723606900530966087752752288420255724812063343883179813501512516092653082562307033429786463767025862530999509654002002927417738302290972698876459222953758969432912582994809948486142493264141824584788935927454188864973362614117762450291814633458737201850149851639567875186069598045078474667225259829798757672422298709937114369459844735757595372136758558446556562367039521625091497425676052729433168069529409767670167554266021344904260170870136414641381568897313172078669380771031488191561564042287681886139299166059639050219570872069596534030316405742752987582572723168695501318287807824178529583362774681656373407389955232763986879823368573765457697060032090565365104997671667925257757248973519311801417739914198147449996868030965086393399738968896317222477330676781023968972736661947162653215815676023913363269139580609111056651659032345435369608616714940152215375795352369995304026975490923714920318581332727948012018552120470920346245305212515558697393165009538841560409364301610492905854777496394448013068705656669329814634422674492837602611213040661384091419770874006461156139906807101723025677004387585367826283256179211917930827272458501016654945356597068561193569710534695241937812570221969581358088768907300552957676937201676031918113313273399356706073623453983727902124954291127412018096087340517813753969089301874304604748040913498757289688527965793756632891146098473812621019615280446748840075331530039741122707227699708330448837639040402592433767138991903842271898304956793633367194749257584497035923061978060031559008668944576604238269118498281490937738834977023082828349127568028954063378011820543233534565903195728990529221082658590248913285805028508670291777189539973435942326904797174543376080451009784189420560403728677465369379928467005483637645837701376427318057164921454918074902177682581744572299530868277278691767154911720599785303911522585100921273666649087061396032528605402606242382425128372256762382631349743056637295890433220623299597201630086382701893060673811210768622176156826437995479022913697269536709911460635488176616002136650765612145522135738254434489413809245950217238342626516048644274982204682301487825744588962593209022871588366005974529869750348796173222479693803642928721760246428561288003399554986185824644648625167122898538485924189180422445048562471832912947979640149617150890205608086918373855595292347390158720730822644883168362378106583306343777749931750266658029837035014876032809124764398221217990438391642859144785675194037802494953403032271052341494477758214969835543702002839351136204733050543534909189335569507023326612942000754136392472809942531143807883801557102950289858422861842730703466793484561980932397871400713022868245201496380524140484721480721739787193852533266427829103515565451118283978185394951475135269831043279848358110489798678786996249504189632103984819650810463764388273326228206148033414407356498509176081711810775397706755519033339100055693821970059651634673126433188908067796467503674251264849392212355544912448744823414862396238874633491646733595560391233923021677619710677222333299157931248212802837336420836530873675476816005206891250983872698928201663695389087264392338317067322234210535927893275412445342855638101279741422869145262144479412037657618076152780841424831032078869255154705431743025957184570954536814056152213538590622828156904830999153964052527499660548337439398815982548489835054026329314757520519907237452073298772113071514024767860646807226995420096259048159414142300875103507020801817019547610301537759748971873510197866290433238040107130703351420410146891084255189725343614967003137592948634726383220459259646636183685385607343793020641279617728792742676065251006023290937033875836150735550445060068717123285339575760513951721765398052316151799107300799848560798150819230139585316888783759287102050622959743967033363670849214295636768399527832459556169219340436327019224003598785484789724277515850103885053405525534225441607444521841538676380255259186827836703964261617600273629979275514445696548644967450811386678818029099111312185301454669550611530739864481392987446186520799198077595919122875031935624945333479537071540096616683683318317972123577612054277676285560693669881948251462054341251183475336633534563732523224706927475340402729545633112215726797011232024133190682749250434010715386497183418194957619860949027797221080598814491946058559847082385918803222268941451434092301010932252568177052543653151799785974556015606862016416288612576204506744880168192314064512922700852443385208178751457171773779710033391106823882470539728499543414741660944305522115868509966431787355763966975764548505111728624042772105916150000371370056402377601210662505417895162667621964393982087090989434199967500991639592912758629980705241631581639258785343071649914927403908939782181591841294193024802916371292542676070394617374064451241658035631340138549027411507014792910329225924617740232002153291696722158784439295518272251153036732218638388135132905017403609808426129933769358823290757103591193158139956040110973400514951833655153397034528116892779037262707018202065012853405708758508695792908630247258218295856919823489322506369342449767726655218861067618942896359754449110069818275807814459757638239418849925886413658367572110552316015850537677526007933024281597806598167212753899905711605581618533052209606745110770922157007550130420113693334099558084529716237371857877593266246864648796214247570893627517824519318667509063195736310429235733437257029796581166240124985717106199913771165498215368185659682371488813341907992636352021841927890722142954652310970033450101347872389489466549352304628558577225192668880394872662445655435100538543407222008260817909344710878966133684198795817851942653758588350663993764465182183816127823518937950225872436096719420224266566552492708603501302903029675284388095736949291072322534477418630575944329907704422822643529424276157949054035590323136244796245751519238707872230939261598888724234321512492502942600598143742186516671275769984097820021056035909679651346232331894326104571201001522608786339216365049001295765981768336193576883687163495012304636153574125073592434430373924594820253475298351234117715692352284339517870732258577897375245037537004707445553021622361646479046313035542551748576953190957095309555200852047107754277393875684985186469042708543735943481130170344759492485222054225552471421029071443003385583377282361047284757827381992673538972573035250992091681787841734742597149298515757979253920266267310773169778250753749339401015926631520190388965316044877802630453087143681643651061844856014694271638769966159960883769009867300130587766079646252157506290361025855514706076009060945497575717488350510370270693542867186889294861650767447993893903254394168290960007521212783649757727276685145234337819557340709278823723648289781002650577943784375702270636702567438914882288066155293756666007339426763102002023929479620470313664632799696535503807432824722576826192523718364376774716721595161117810043530586635757200273251848420598792302254143996973780341114068092473871948262735835795885634660759069122535295237313311119758624709150950448054777083965461967876413547875215996023607531401301427045721509024626828551150720920186835958721380477192246284308011228649233146005458785116727053197471091434925375145060879906074144188072014708029409779757876582240207961210648468955383836683446579610749094038371109710043810994451172830465380708356865044036588901787518086653070731520684125653407485450800921466931180178339212311605960044878556964537071418663885805481441101958079600168184943333480545560355119029990351619972782632706438858393320300497227252096204770492151314590485537102267597668703025770856329838165042000121096184032503116518314416042724377708569090224271582278759408588156765848267991642092571386355536398897663028178120903363405520924030678331760095453072710936912522528291215555783333925566652992955105673346470148034710301208796476290427216058188989052046842484473972295245802214432513131502985514288882131537374835986867150417229658321960926333280400107529474006056258918274211445845937825539145488807588798387970885830543902500275223175963837107075690411350181698393390710681995685809003831635065475173296097781038238603456602198338301512172621517733556520359387086714785591817789614277028461470457168397290453023926452516878686895029444306124461114777142232696485777967888159832411657694280771138810494988016178799387760589363356034758594498261072719086707740048816000773814642323535900642871102102953399143451991740791954821392617880979512345385012445461321125492522773322598341613044289002741815678650389557291960796152992238444600370848213077159683356015398612586918105425636573835698160484931973821748462483611982287896792108243519959558640901062468043841109926156392514155217558290771792843484434306601968286013076230570195220536696533035099486851668611186739798617455098666414514148266631305504074158882745019874159120351290783157521853984011593568199798856617751231586015795264201804118452586127089031494530227050272206603047273161363515846609917513236216771149683130194298095150312462575029651544781041581109809902398889602319774132264034459017398934812808005964004419694748294807224076039062434054697601933108361329701670036353483451676933639621440502679430458333716068452000774104584336173657848828618491355206978603010207834287991699662723055644342613685174782936445531760385340792222229659601249918001278441741292346409205874124155342533938142008528683548582863705724110713283052617455905717805342437861310868412405241648166020681806514831400366954857564523980723941389020936932783426894199174191805623286927277045159093175913993501667948215599249360225669253969593255603627237119878796727073346200325128724757797412190601770523700198064541393909692284866912353252964524457218995796383842984014116766207747251169284244182765667660537327546201299202085924208136685778880313428258580981372571338758745712329112448469108467863904395157583813403043714969564029635408651061903003083994785467541255245814803347088823080463123571039859254943038551531106501131176305316519608912163246293821986682996255369662093822134178650516851121858127689403214495380095788762381174888864164425029134921175057261301503427986119334156003715867336286488286436490000903618776729352945930952963108195603825254085571148062363561531894345151642861623624116768176330546812887409017142966921575532460679576620489783337065275636103702991472006806169165187343505750375287658277586848640102661678384404634458595614855012404295478135040899534874004708398970660331446244326377980194426412714780447939223357198559878134323145357822876892297304746187713938332456888093733193920369589671420480798707964406397532275675624218443567279521820973057951903603892969087148416715058907989320703486249499744176792811715572786649472557226110231661346997031833883466500095712995730550341063171106587893597655121238609176275715720642661360967431651964257696063181126019987518787737766367458544851153958642947148627193977978240185282330879386841211143160963018310010567819377755546369595366227765869876049194336743102143016346662749268707766973471726309613290764673618364836036411236698500874897147296842699100060550721764969557693441660754978387266245942784349135902211760395673430555293168106285107936553614072193365275225292762580990219978179920841297792926456271797517269188761862449476741233757152190377527240268012663658521709785757606960495612791592956254340056172631483076489195271633267499077278776942065499170510909597769657633364906393301840832587163677287791355232830013087346968917567232744368312866791804695552470565350307303214323734272643740004326838550744671362129705251945944416687644315823365818929696097804095528327889883840121450636883096908563907675554159298985475555369569095996564094800919251249115119349440453139034360046242979390042290777643909917663186867984383552496531677301866520115168976758693311526533699912046515539887968406759774542802817821694436447074083716401962247537270230654591012236103694334566464537918947075416922916435525926092933924139887263861321630555202165465512092584504013299746487536411942115682421210528914690061252804770941305526237108377192739133081158442232919667540566363351562617175648403167266461510057952816978891988936690018722091984941444115363572523419310047175048943990939729955469326003825955075598945160332389025466330431788045194094462202701618884677097466806449624723675900441837659159563136093381968562479452719820465152855710683047865875402741933492092388589118336869668886913867551268104998949755633822891954546664529762760962048463758123635554108403727773256656953516159529430419117767366657994076331691329926128044499108193401914688778762972407461984717341847565862568214656358251737797902591711522925505948092146454036359155254717063037022611913121005986548863288698311593148086050219198070096949872428531519239760472976806092758015090261045141414687265814685124010667878496732939128059047628621584165977410982887467720549810763613639739270942681660920610661904538251224466319231855713256783502757521518240033590931447338744294919729515429091657831368045500187074348034061631338202955441370497185828491945261416007985450527891877596767926081572303467272686265779822412860508146306094196343688685378695228124846238061058855431295001108133032719225318537139962563546312864121096240238164062005826210161914936184025594209961187995292483091744567230611648294799505411965782192672104689963921384260213996386884984329430922313224607447962431889738742632730693219686909215584098108727618500976150543538349196964603679905740193230262688299337643689292630766771845395821206067494119807044622039771546855790732633044453759215295674866704751655859491197919022422634328184955242644323510733157269754007059016744799276795705131270889031580759132415009134079290619298821856138085887762327660401877126988364891883097846536224102273592717076490937078791477996720053786130551357174989015311630397722099356280978491581954900333549894225055188117989460777383924980244150002757581422437821594497179078539049648573962891026098813910212194601169200295526811660617643170935451353814252028915755897138874246294820266082433902259603393648485734623243286346016294794369458889952491685431295564943748137709262325702777668914955439741589240199905255872458361908555459878843289635010831057310998444503145307977024187411602917537231924618316381349350976126527231537593266153016034242959447213528490505347971666512630433178598143718520689193762484679203316867123319323199174249544880859744852831030958587997507697532946640709815861336586435996200054837637784524271798255602409040230021045915510241868616034891643342408859017918965295136535530287043050700333091193983823493910790127678618903090731220524591741086599311391425663759434363835080347967481646536114383937095242555521734984733939719752836745288752359611791083971311507510454528113492478675617753571677877219793861660464545494836720689436001942803371578448323250614359052845630464465732958313133066911818083219559798240343068274535612681905647392818387774027100234692316823909035273608411391730289987710214907407397288608460244777184749431091588702528592149187666039243757692492143001552048478863121021416196264254025249886527479996896822285158091049881471870608335293653582297542465241235109713438505416658769565354079096236300436848818135816787861327662145704903645717426213609526952227761829510746128641473645557682615574142366483058163237852237420510531501248263158673460917164814725980980319783112073245702537595071989688568268674626243595836103113869980635448718631963578058380107437478273282353859573394157437909445754237884472045244238275890544538047454554643769604768498537474106427194530220171686932203087986864199779801397199143377406316502918629234099925060233109151328348367558585875113792067115034066774109952842476262049608461994143890109975617891730952988632344637637484752951206105093042708724140915251387819897598333651225221178138670789045054902204491987899589794302496916819123398036552820400797907717834875852924419315607019186659911478635147047967149794590129743434591818947740018071321866123726174071404894899005767250864239063598016971109500597963455280186202492921374255187237193608978963811401449070361406532873330517518493220110820178318697342193558875646692348113997866832175427977674727373030576251651391528280207955381024335374089541576514822013259606959214195151611030459060068979569244029453025904730408790529031841788794102329967146705991993134339254903951390796161434814739503533859355121175351347382174594469062669267673219538925469182972862320928810475636946778014365094562512932681040155969656168580402088936057615250313649231168092424727932662665261050611313980352060032194105602736847186273114226294768015356255982601104007487640321945865773396942142595497121019197943719022001441936061573833983600452763950522941629498105454003047741793124879044735698839376000361832880173273086652861311848576981577545962203623036011945615769971599448324769978455664733060644256907507844998701315661845023911702315378952909624315216136636831429473942886404606355837540868810558980258298164022590436290986731942752781238086656879376839385098128987995740684203433708637427445543411140188114949091264186366207534952192757898523278876966600428021020069818821328471169792784746000382411896904087537129675835858127152938936316827823469431167879789579625980252830709209238606587830956270947717343428103695576633056111523653338827973565362885842657773668096753321607017074082430264192517456154671601454017438830811269909113960830778032928947985156402057000051126540083580962905568152887122494090397016938720623855004508264696578952580379939834162220688226929596917024997402269674219865735575508134231195741609168005185866866787770722713492517004818888605529864065599582899559340286255956497849349150683565171836700496023278470985944925923769396625346374691887372532533276014338728935464420658837705788584519840461295477144638491836605622013191068177428472758680836427738754203776837228161421170082858231465828452636454766950932245061302456976733832316242439605507282283402720627936143648662787995507250336599255752611463446920155526510452377483401587773120284900834176886144453230393422022636264791030744538269639747595531002387126684368645275928729266876853091398149888668857745545061455176794816395265737303505964242874673239358349637297670511092156024308940630238435755001234225193976539280805015379201614536182819553927865105457395816231976659528011095586159492147587105739109807723406519871841959481661016313960576518019284815444837198162547998413975555047072198346271817842845613244924243318266677311079572023902577701492299775123560106420169424351243463002322326275341201533596733480774417894015536642420299406834899640922423411994824219288906114753436184072511396924856719117468867135807568692470301691449391555694363581788439561436669715672032674307893632871219768208846375087877033590493470872862169257875938173043616141825528200888922708213063735607517958727396778320006927451852254471666407826421765851400293569848982802530576891865560209183771396528621056642235993435612798149106728505446355504349933526729941127513779947869819870366633570597703640055552034938998705843092022522495181548792925390097341891557277461988655265371131938478266810882761005923196170509932903025435553864231592836800457013311987902630207024527539688409461173434731910938934772951718118600968838807023577326901592284239080014260791993888514730605678700933234026214067699261929612530595900310964877932761953515742513526154356717246037371673515853759721731826863509092485097730688238684110542591363235550636458930878408648949133325245278731143254837776533088607005608454302028776632761490099808106170011301895256688708815803091162155327035075833310874428944369149243227375408086872376157418445227866648086715465238319279855924792686780001330048146041652518075000674984366783895889857263062912967668054910053881439580157247181500632471658287625343603394724694165193854878242658688374707861702335242056608327471542108623669572765754415313439796218703439196904038506929111005102733688977889550692614079380247516619881469757842072854536461600032489650382587242967463245864704747266024364660864227641591429545313641130612367095117965071644475409967737189831618597581523561776348503034103342624182953667586163162680536749333236823517974184935325196303504471977807069914663806965029789769539000157853889534546546941263358416932983079855966653848762117304299007827599313634922028563972072594060616724152898952892191688816925858610345763598314903919168144955041127071267888703137757608460285079019178641866426433189640269664525307160670122900235296186921706632549171697600093186653357434152196574546773617512380467894275304343445447275486994614464513172686962386748278152971434389040446506450834441688039075231350830551328191607623915801345551889977959269650340212069373668402464553694424040478627346045237037112984314218756109005842705882685522278680075808412690168997434658781628225813041266342069516602033755121328671844312331097878942281601325755935707899749312542973747433162594808021636305787352543152212779007961072418831312459134397997299697601495018649705172656633648277747780278383956547687516847714774723721678323685760965995096406715190655334919876941513056687290501862173525763138879578927864784217626295610883143790586350466529977759294131501534219875758475183935221453026024980784570491057120205200229690821663774968656824233280668946253462921836341600560229285897136310082784050304734222909030394337072279692275774512471804564935911463086354722720148138427161796597625162273252769511524821143800377894839082054419484728381567877619508786118622090467416140854786163891500050696215133454279614848370503324250104278092416536187415049135035937524665770238662922366186537493232534153255654055656124768454382455716864145868407563065345586017489249160190121456501533810705222260391149589271785996022498704658591092239482785561456160941467473702053849477121146016553897267647860470082644344627956043046674136396916397966084387622935117359142795652103191510891118710871303976142561398358676826901324673220528542335130851375337619327846660505808770079311944849620873381415769988353894737220192506745387413323844319231248682666293640943774519286513436971429689336220145389951527080886372480647060499161660697898978037395627630390288357609428355507561458104780367104042502837947161484492236923597095822803811948197345112087426451463857328950313716176857570846564629371507350628525158432966548457150886708321538009609917817785108530603014830588516667553027252138507185095324091439119958516793161283445903967610371848851385578589199932137570682029177039509400080730338215148892228916043930908040502252138666694500583394550952983301335857338038677336905729048428185540310843884033507231968902544753771546989403262518975793654146096012865411618183454010396447013435762932402445001801676800767845320456799485742379689239279579916686765693692837265695359186334165913979910572541653556805158791942388497888558718439332055507840912152367324720385667647837676675273472694690196601416767232095716586714158165613234362149247338547054084106679748056894094329721426193102981250210806572485181712014357882542951016898997014019592782892839226612079279994593493063510468687504649107208634526052353907715405151422340893427076265571557735506716226457314911809822224825053776086380534344698956803158047091872097060909816475010208442004734109201683662979551242323013657190335863243568821930577083057611426050865488690681202869640487666369230709777432866131680313693964129900798217243888303859699138936382952061257758785859580489523553747166438631828657393021862853407479021544988551391287479688029864494694656736811992219171405178619032883460074928100850696207585945960382470761547150018581868661896912401518977161104524551944941231225728623595215567171679039050091500948719930375435533603257213651389499874442960546219349663521838927793843405326943722485816141341489930019074953169536774608366094933996417346761061304912558047234743812630785457178266366964584400117657324663593147623043506538626199356580438914924769002383697610207510256966231698502741973648554247061476084319940963564328156277107978781200172674407903070040209431607233804762175245645487408955229046615248891809005065968285932794954387910143911153617731486170631678270406389418767350604592180761990982978206536085733680298391539802937385094410957840803105734659520753304832708610440628572036998878586197685822879718966328468364855330264392439335205085779548486017493120227660219975620312996568533778126209678716376921375177732069243635497688493309056666166074697175813916395368269011688183235934981568799751912331207691448693682122577127201422550526423314130914897691128244148676606755667433983681627923774512394185693637865502842315166000032321262019623107330177617642195316466587597227222342790962327961069231486290923561036355369480215250197217987758932309628388869520915765293832530281965740991256401420047363346105685804027107131733664212114806621751833018618613933437822738476211092066498732516497883935615774762055032170432466102223658416330771815933971751754106562163120262795234798878844324085540223360019931535436174366877701880377221224468654835586767314333757764157496214686027180416259192874766739284064174662240963976181320686014154938707940083844168532809997575911537383789083808779915075892484195665374689948771161693587686643084197175716176147913956153845104208703628435912771072996786957398293773952763974273245304282195626664624103397732964124651215780893416302899985735573252587598002219514688021500576096969038007640286461013595354748338068768438123137704752195486867953223170605461497520573853525808302632618232432040940244699460930238552765418199525392619214403602867554441376211084119257183825374841774103775235664751800563633656327543967702369577491012640678848525918125794099030749677196825134210817519537655831877998840306260962154453516735326769245338317703469122686180417129205848161214769254916820683833921631899951513230619447422449921012250127032284761743466718630070201491511082671668890542425807052333444823427050741579807952144356026728668347743076226119721281866961728037001909814263518849048832705114508367284717123225856635880164510431927923313655320857660514346005378532006390190155616329724867181393922260898582737435928606142943573110193889046300375678436800115904125186142475383531284353393005622183577858051071457070962553513846191679084105384684040732974214356477850285414384901435980738685276322542874714385990146807605845243022908964242090235968245050516249932993756348129144756941818010254818297598453242238688384573552140925789700278267743795892589969350928392921656330496877733607616981306423794671761884360590857636747275588996348695088462631338761795822618506158210767193753305762075875061304801778479279557646716054263987903911660932434623002168611428387298066142080440968575602512006133039060168137934160781932316478406145279896355431483215443113057027567756219252034222659498956275819682658056397329829821023312519470367041912729061420071501290477669376788287478695900227264538593640840599054690423735431661815330592645138547217463228670278472820546787018226778682073618964014713600928305261919916830800584197242068601003947052904702393258920137187068105945264428135432169598116806046081147287179080385247730618270356416336549032151914032168527579713984666724696102344758006286086778163842171012793440563973369683843463685230690601565185790421119143345921674323943470406075934186073236652400709885812474097059355423611886560681230878342863438414498179985631798969985334902407544071283565093658773311122765135266766283372704543534741687162117342076960872501525671961895674678719497757868023215276240942728129054438806526376367173032692471615291302365825153486494216965873011842147919157533186038975274483395149713921296204465362291301782562729346080658090068418412902507570694952152616502758662065866442890370169752600928846004728258338182695613509080008020768163276402944712193889087677901258529821114910231509190058015322012053820522008922520423590911037075138417642847351460336739623753779054165771126575797490996364018421463387023945066422309487526060503605123920376366771642857589304564623701599861146239313866337760602437833536003735506995368639787881384055724626901144939154805576517818433043328626208304807861941018249184169146652710639261623277564978850772340223682899719093442822352919853707263261987994393933224300832130556944994948243983568390435408466897677371482076873055904332010926725023307138483960999256407013793562686667577737813302786646949835892031447472488372038429387640505809307288893023048955721892042279192034801672566433123615562301181424484691685854013298316974740055055812026775621485236553920510872852696516246936505024078987158917455592016106282653808589020695438868703956707227080601417999452252649457844750862453138503132353122937947192393529802852184758423225863196476556549556624189763618253401026769913973283661701835838187253872092947445703840922394955321010915446495096122322793225009805614232727061951490960198010584834293732235232185208327069455095890097278416751875844534479629879618061575060207985406845489698315974520613054707063633798908974331325032594215481445261833925941105273074804420191892231699567400053455717853385672923814958285531847320017860898743510958736841000210372792270625031709943898035279301903023793826906030489965775547469415914259444384632966094218711584555423717213052707950386126835682533371628882159559222012278973073462746338554274152223417512290452614817025682350865750158922664438445423826159628299349194377886350263160281510537153973632968876681200810565259951819213353634063279829741612980165239339645624095978904441669314503435597602636601990027590269705749273271446008263947310416375947302489705935325756333709487148365032948234806133886203712287868287045440036553328273428406408279331165552928065897395798183938099128427399819181493663138549671311793622916209404534511543936043083185639110762601132880468815878735913071609878297955042337241089913924007046442221632595630553041854960530177881126000761857015169908296770771091775654153825704912276895933648205703985912708839309775095226942250361643587623498233308439926755796986450149278044858284700449785971963050632084604915158279972961127817547262056255803078970147719483938470444398982939299798918048083766286551591754096333343052807472195487152986374069966320658166685996265110365695798430029452740643115221532065083801014273563672482501128833242519989650880982800033194255381764554539421967894736546792209516277292739445996860503286195760515752258599255008770835167642332787362094394519686037252994637232198047937637492629305371179470954390467695325015983814193296446691417482809427897299822710073504510880840736497089570804802071688156755228174537545474058555182006992691630071355175110716297669173096972030898369008166213072512864068112120321125401200324713494182062966619763179967442172067559251485024961348715304629819034793010183703591336259829192877837437891994992557139289040120563381614423699024082623373796370196229651028220497399667535574549273814302781771295144254681398707635639365361086934657529711791777734029257874610428399898198978667788295866364164970726690593187370846178324367887703481729428539994999804359037857210471815373441935817094288799446864436217664669009746538481215580935531374868135282164502164298198465773392780796610968031349234557340570334529496742349018643340495493688405468235643123861701804911323519861627528662087417798743012386453183152473365883392334743565633315135674293149997349695482457897507576968316584518799585742473483140076019413966936483794646370625248807553124156448433289848272221413054757607129686494242161350072347510365209266367151364897273709661396455494963171570193337879650548896239024148091693235692960505689746823590373882896950987825075365370047426116257642271025370928802199253921886144326469556581286533872991169851441837041976223187608296484260718553631538908023649309405895500573586157410551296573211298020374342500106629337741715146273735213592237321463598133694897381381680023581893493340978362996780235851775341632342232937042328858328478068669107054921046484480320201380367744687258080525620391234738029205343284578643859454625370446932875177902202410420308052387413830543138651029876810159344768868222985770605722985278575933226096409031850417178389607895046377192726606951578202427153862938585921590597077535285013027807443584800856143618062603199181284453069542462654379882665128960068616617948216486664413553001081950852844451724560547097804426672942785406089607029544382043958629857493865281908591327129072019044580739932453992394812439409842348564233948156352871719683864604405781283490054406443157424671838254999237408727938091584547891420279093475524729826766806532805467851187300464243947652810363212023989271707815986510440355012974926131115616268865122016229135386539319636762971757555049427680986782297738012659692918091846620729336810167371486522025794175735122717979761899730692460248117703532551790143867808154957694582271638986506643252858562547428771967479202763587352928171200192791720311789831663760685868770796101299350247916982067061988577508057108912485516995496387744183926418472010155247646923522806478191003077298093794644593686086593802203157696233440114224909744644080346981894490689306779518269333783465023380546501659203119604105645104777548446397024344997801948940549580452820090117345706528375548456608673163335536497431966796456987061805030618550038551556705060611626359283553562825717038325544801148256445053228590633633783013109948122846859471182197930824359351265863122008677113176261849081783818856829969725978650166715297950438667993727818362369425269343123174609362734333702115788936507343926240798711422644136499153721034502360645114861590888586863253209476017548496234837916769063748590671091538508006211205549263926101351714236719302467517148258480895020405100675073531622317266062753179579120356771417574001647755369555613027267599361954489504824880545260976874503461506354289196452561310348357342919165704307669439152435791604111649136525830018513130618818936614499987642480609917908460038348245649610308203279630873195583215841166521722990473086431349655489650627079528974470661084647851630489755398579710657172998686206752136764365743102218642586819343038779811038402575186448421551353306347860692819188687675900400870806776065267613850827002704931734518893334056831138280306706221318090078242960994204862356705262913935333662201192303602088975165532519766799664333651491636787046571044114902727571023697395055500987009865702763143106480070841541769370894039209054682647813012623621767701912253248266668658831300623159457790063191514165900468135510123607092354032838235264198401331340679597712735126571211551277404289386598469381881101438997075731046073220725880812046426859870214611275733636114863772063902007241973946804301996669828022057968891272028973879541020104237971159178284353282273578257048766485364202381398910095823138922827434277655802006820385051644678709009458431405850247585036356071121413111374660313493875491598786305772712921651401648390559458567383018546434335783211727318374275858099774202327925005498877301600303381084059005402616518545311134760335976747698153498866182353648881204175382648186254504432093761266255198465935635258939272885941674504204046155510538439333354613464810026240310476630343072332683304418916482278535405593989796977356459634114420795007280179140341425781869367194316698068880150896693920447410605774976426351950087373436221657742934534364090324946108582003931596210521525497996619243766279143457144804735541906342681792397615660669401365522617580279385678678720574081388355707585868181636847630052517899502475000586633318251983634828549856587852301298628414716993538525642879521847693549185556072369493999012716927817746646641994014270990004181164873121218969992835204179804698427492615992070922027729653469069417480392006384724933136377289272758729557142414484078730285619963787650373918709614653729029344633093867532525085255595634066025400766554273905333891553069335744435408480675822666491041680859803065213437383437022900737208365684916157295545409379330824686424546887808811364608855652474528838654129975432167879415280943036595794324101534614096672009119085071921156972763450250053933009911274309359227786168072479889695882713295600219185385711692183457056670591672149199807238366719197506771392317478194555292745503506985260455667794027733832011612559461314404732312538649433217298737417110994198639438949168532340371022215655937345301590881007650321758804335614939217751759407451601892269780254531495344383205317087323845928695437206346025414545660431305402472794094266209109336806614856397030848605399007798233270321195726107948409969250647852807921548656403254205355294853647050012195218345075785276508124585655742888219062463925579818779777352350056560070865807151250894318751962339071431764516304232243822775025653683872690181773291970057756194029907510074683823543193561040589385502052467544431322267831138169816383330866353660612184877367081024121184963778399884660858612066377659882283331549665833996289365016582325613359588628822269154432613749854854858044799045264238577378104040022065320056893104350506639332224258010151584716644753046156491574570341110619984116830023400724752665792243345797482382185198963967826393898545519934881797160151933713207577267860921434024802063534671833349388760236867385537775345446161901127818055154976415408199649473170127840824245951914654813494684593716605874246059636081230979589713886730983746020566578444565408425538814678992994210640703419789099245243299587973128425979051643813477036782465987837862890040568325009454484073562400127087769862579350067494955353775203865770395035508473076714788203852417829434812350885656121835479045241619004912967260067133015049442629099570668527106315537474883581214032124621522619196868022048014775545230901223828006375721711367491517994958459894817739844212978841101607837106876011828418735727724808978309690870079770008404126495573965858942890758594749583083235352532800020335029369902954493914844443189174472237024622045866452846453773682092235983361611462100111855512054909603347316857704786828248727389717087974283775878847264757071759358066686561508409127598896688931955059491645385040932247363489608421974272488229183679395264156754491600060095278598552267716106248416198239729550994840828081281870095662297897438483132683306332288437819897449391445608391323940065001903338458859250161467247250032725049273655689916108748844035578010305602408665688799934607302193072863836866450184543051206305719037199053774969616931763315022829352419181690815172195395293181177198901149650303609781781771177277166919865390859460847559897703588185285768810501220503799599451014451917576653038114424186253465875798080995986011709201610603592099186444073238821845618652234109203254607509898262231871768069697755906952290474140180140825308238659412936194456863684236920993275715128921100938711634092084503630962808107804466489168047678123931105183886139993918730313312512635141643794064593183024847520982044113476398233113843791557248366852540089132097532054122177496439420118417801877738153378583342308406626267748193943813437174478651007321471738571331049614169774647192307254271561977633921886415985792889397425354525544472084174961916348210553998178004460886090423652198707692273558354352937471392949640709135835323399098863094489618965221448735877437653253841974801494985817807508503655662851371285909117290789412391393760231657655404967791513290720017357894150707629954662978933507461788060755954015976098789396374917769693293865038962053208302362984122574136951833721875431852387064165390625174333247553871725824010428253514107433909837461357516158253410812117484973915387135775733619316737856505249067673397544756298484073678617613494049911205413533210954344559761449761281294483299177170965406342263217243720026127134816483989026886765765914892769734418718838425112435081384229738645630661012009860493224570102379178154118302795995411256630151399975399457286748739138072534552288911553402482463245960489927873478251393385260121224907202242150575182556991830451734433060307867952944348285027227210961718903838091047759797852607114225075019536471515021237668690101273715330928213906131139674594679398982364849155002960601305402854073894453315819142673311482231068672129059739705468575707016097992567384227770975998694106285178682282869134890096649104026657132198119266643515113417974991408293263110113362482759306860267013578578768787592530140954768092978434897860354952005019505264160641471093696080048595764752180539004592149329999335289677572613442947885533687803838736487992580969385766346233757312793792820293775649949982266817010030201386922311231246719203223854376138279712976514348955193694210702131578430262011889039221077932515047700707324869671517086083635604165326692710126580069496364349067739632878837116203581638578789216917004341842484408581071155007404238824521392167905066500557999941568749481940305175484185165828513624202020577606492486352536414857741067632674259391770960818923883198401729670644644282736501655268698923345892220930917519820667276583803683642698466879841060526358839482668280177110228897052816699363261918778624129385059086297638936345515311982190425175116250108408576999530291814802677683943755239476156058328837755670612147928537392840612345185424339852521354223203404397008270655311475557760944739939482868530403837157316821614277300937577418267015400072922126662246624007399271862485889190004630710868926656248573408304440125860995836397487460968942814775175697925740007087876913405658376845082565827496449783861186668467300530786218350936454749211883710801590496118333348608715206661396504450271284518591857199866877146514854379975408491046008401508011685613548532852273436368739991611521001906626880635925062855803597313651321622197725430455354222251865111081262472566029985532514984697625361751505186749824421541305988420859167861197229424860705718190055906952075577001349052510411653271118957673071138482438523504887133462554150522871641089594342634382781894309909694731166128839486752456497114566626118838684918792837978331415461329241519481668738395332218974218104580175703728315169808493632898191049033090330968030935320230727921026155051737319076930406744640786626393896250800844085747612097275295799057544469129906875634500565097413219145036813000535407594919440081615759085642840053582664452310707556529848974403637046302744580993062583080622197963832588653278395465828391206804380199284837766924806404137919562865031806391259695583927981244274595048476217714483564348907844236759740413093224735091159553549942022145912105784488353349587893807886681993141655395795002920287125350909815628848412650307063738531106356760317010043389489801300060018570103283278888221456499645890299859605892057082029732290363409930197782096247640790740527374944556409704910684251517255163336956049419922716587382637444199221708311831592589220774217717523263455648002177898886376122578868295097992671388873785903467461109212979983793493476870629712676453715379279498708668712617133387605509796861582702617785589236161461305401460799917369731203837397528858175173452888145965434222524915936336366068378903483504581041519289506443816312309329258491935574451302586723387269235548893325920461899288125596012664834621997490884863133017400091513067552240181024937249594060232242637767964566024334606496477075077020211403698265797143013664504079171254509882359637316013766568162668541415987048011882061206007796474812438870939509048400232694963281068278079605197570304943996359425202750494347475401494934954393827187110342655337375789898640669647805885963514060500751500399827537196513666311708563171993280357981646620622273665271032961057649729834550829880009229124456020655588902380230552702953700991498419007006956196052030871989498097127819631973363463967328122286869726040426823088174122865047537627415526147581200021211842062166852073468931792489483183368966943753147165013845381365615292550448561105017644123664509764434441714455751692046718478817621914948472108442388809814877189265962368024653193507147948007259039528158780450292999082877049592376522056882537800087178003386915409241015327155468856312313324603121929046531797172337433224710508461492477067070536239911690068407289036284723117225969707340164105873046958458346454521982044414651964206262101945296650219948720480698394510566793117959556032072364492115204348002540522883555413220632871029805648797184309010672505429618283182167422489490536949572469559294829120540809169812866411275001227884850453981284163160136846477114610032291879081501934672749825748990284425622569638466318879766323165126739569265355495470291944281026089057654240425525747331901297894010143132567174034919047803670924453947272674102251282438681467513701814318121322799215764442523337799011780349868408880632150173108582588727815086542435474403377452974314026012384881213918256132573883108917506406499111254176261356443518791217110785523337368436473973810257116268412234467635421488131908830740628527684525824122755926872776298971463479940861506063264597820759881910445819913455383092025199242170414084144978113613513786150645929494920389206622239261481374236526147376831406121472663703983027048634412020039773410395018623787210148671599277818955693468463911537184458575114838350408292997999057873969066176126402532501705404180995445298635384649057759211784438425017093952760476177344807001490286572791402371765820946749816761842437757661602977379699586863492392234781459286591933963504674405245740642383004689822962513883312303905692985836989870567008490023851345442641200294370000283963278770414105473348332682125128509474891506943722190325404134364544188406685233872663996574950976137405410812969637105065725950324878157635333618376187535697855742694885085540615394576882426932536755336246093963940141352637131358315868461536813582491708346825763571723103095398822900869948487843073628028603785972408037636473068687902561726026295174760509086575475213523520724655417971627804024158251392435916560166318131913430385754143197457519192706471263376977498184793638312690070417606803442911471439590771128316025494039142407386276054595493288685997742839076840943467326135366925215299068747057801398724412603719568722472930209164037350112346258315875260250098859439672299472721893243125772703198599947475768197115193412578737367209726614612107632745472871587394043225019063680335602604827495511085425622056857787073095146030929139662732866898555064165304026857311938958332365194956093558096468693085021533073679244850737819744435969561801067179590641985763664852421262904622981838129316110721525499376630579936084667195900285690661914700273195728940665143014731435356258153125458728401755472963611734065850378671053274206455719303730316347858606105483577593868842497043410643430777556577537504382383793611925252911433117472070684366439852792351146406481787025194876954241522378921107847587671231171731807968824443321789692041763681829981498030836146479059384003433428430266373109262399141965974833818229179476464164158701744536092316571689601994683728741678341338888135702142793151451857831797865617678137507815679069708170465078601222312413738991804249957332569898262387753333895168037501688574929560133767530680807696608022306149690242863299874280786423526581388413155136574610663699734131609821268287385728115810270913904341953947582583820649293735483685055614547122126304339757690683848438083273153931156282611995294955753888028139295749348940993483543304712102878664028120499783086134797565614348757653495256260071000170024040777796117855625094150085925337677973983393063014051965276628232938732896348565862945709835274551488205982043349457254486453932718611363536160136693222741990998932142938366790447579000978225067608256309914274848391588853987884979897683001827900020441132257617785879130262189177838620001240635761959164010477155090003311947079186288508206885411293575087003074787128164365376922865500585625989877031545146053738875270640643334940746805073670921209443267120855183825927759778320337149343377514042222916706436250907397693360231394740242473208595027195216948838996237401593547968607689718883704670079490217655366375025173143320309259853064385865529761844281576115428335414568427845005117573120329407000479681571472896206824219386339248542980458340876365038763699750782809774922427123401534687110853787033093447226032413268891087397611347286905687258271544854747533953026021659520752976239435553365177195311634223762123344931011822216913703592482656166932212718141987404256755834184957003216755310628303583889364619687229290159515838946014294081481903802138236564935707611278723524969876400074928791544881990915247514965577064093426956513631058272356301047904432875897027419375227489584425639602361166792075349304744748953217566450458554068788691316939638952509219340384099117522269995453307147896241374972116351074988953355913932374422458484946041012500869278587862454230093816393379713429885681315453767691964613618304508835207092703289596186447958758317823796477597718392981275983819522225247995491205297517513381137040706192171079530666280352230345184419043619365057671583783883185044810713090281175818399081394349292535475578163654097783546906529430181242171493670279500929297322138296434656549225434753854287526574725318084179545972531447862782765913154903287723659183350123219281130388691172285216057928355674177666132945118358690879844634066313480305070457227674860224384625383249870249336204164962962346142216336736773470080771193842516024776095983678748492810766882884123422276469967017267755526011209137535455397700875548501340679939368591157523653140072112305542602864325965743239163476129957584684362502649345817042522460637880931367042188350382675657007203053405376785741051390040430555412142991247953814039968346642021570246777448348465424969569219660747889610161198840451337649188129395440314883402260013635862011617074225448045548551043923007114435260636174079475401907904691314061076431699828056843642355501607643453003129201740794441473073145430647173109056959306956509961126377449304631127877651639404476250903593541561958278924400241527543742868379180061356383858057563247204260541575915235388264910546778591692236171783695177637107433997870183538431349078150525557855304522852451246994442300500145320534101953987446991453783137767135355080712249868093536606334466358182776998054578517179412438916589544419139962964694275718621837237907221959493573539169486132097563957173383942189091961023586378693087935462199793602653196310018330757349726041095030869820793262982138828975895618275202468226224520312021947626276487339889727156219216596587105467856063597360695705539011146388756533322213610665953118561114394911292928173233524513572664281879201416109429415961085762704393981602088763251242840804859069787387658306943611534343300827398218380503421877393666502553971664057012097066675124865907759552420184494122544466291391764663755433523540942381132977034210394907142090100698745253846340896738167443886487379007008414554283301896721682686237492778455187244799112562653663516889386555989137005283526085792060505777387385126029834415798016806056974434186873640823985366724518343806123968204611133033992788082421042277345506002095589784416987500030959720647867216984225894249875478073046394598186858896310678494609877235140701427385882170094206682282757610663157251260824389266669205144656247426435295937537275188081743214380190145539349114350732022252573812169383263919781395448246514773017190531962858121887008555182519841878903692762746557161554802790835690044050099528067789364763983046061867204164249570693855479628515379576410806252568026615194393458404888316413715733492898974276233345237959625402553557986391580354237190166370430584308803468940173729371201922846365004482417149454018865759901887446075557046483919689437606495554931765821843338916771080235343755671819581634317286612049636298266597825699711066188529362973731355342406098319359217913875272249815722313826662711735883236842462579823205515115547874548707446509100135019368330714199077185406840319931780445050676973347359387744972591103900013928711071142083244362721972689837335303611578658841275683004431747520454372007081594073406784795582773723457591775202991948485122195111053225214095724983504045652679634048820042833257600734634791230218581956649035578144807860595605230089524295711194022751753431363745543275857726596223573394857156757335166758287466542014758469711334799046708503016484495902624829365339155381667788590360550710004469165717680962041225850566870465069779510763685616823768591812956155594294258840141253132990140162570303150563869984317436178180739456102406854486386034053775952323716388793340021683506646078542767731009784241659622160719069076409790798795010583908086173768532911280356723484711585262306431500873485209850559900283296175240457563825242073185808038678799370805436555076602788219324801016675337955025073083499470233244143924380760101004217422901077629140659506819333511821634538132285167209295276306483017245133321376351953397548740576293333065975351107821447282853015726609602697773678753454839065042460500073688025284166882280714128717602315869611304094332718264358204050671784265786459335630611202230028904253992799912652060988555355146147691139170385178835399604605522609246674818039094577469633362173758714835011095181526155719374942913132430330652887556364655293267842106532402102309095002738745654386046775950775464108198846635847427418722354203065262494381425523460474465721915846788707724327231741886123471479655643032850342269056804640834776788852646853172754158548156536597141376739756598131317701977614103877913762507348341313743876448376374116996678508626606854704066394664857282455095446326276030493037366960401019241657762129597094439509192530743972964356798711856651789047332861749140491605789691706541461381608872902766413014254792885162061479549113214032812605439763060537633768119877768156682658112749388745256385754638864175088679411449798785658351365642609520190343321013260864853382111663970957821358902443868361661800695194043559911120995256040370379656964130327874688094262953386813382864970091615769953062172397063105171996080022437293937306624510986766587565641414491142391410887045677274066922850209212229253719447188455928996801705146417453910958772949165034154402715475953615852315354626480141862527211208443383739879424401219488296189998131045878986015437299454929151321922645995122159887374486922570854838868895705468571562565199720127158050469403124419199130006982087346035358629386703342595944572156168202199452893819161731914258460611572922303170215222455100350998536315400448369466817974987837189352381394430551589928299175342781267166448148465408828532948088601832474005675955088155803862664444907414925932560569649818656737837591329621287565185082829235849400881382196749959448005702143866782205342961897021009875751393520808414578311891423487002334952893126819189388696509438975172742824402256237098349008434662069172149618949081325091534470152396137185798069807071443722327336530346330745894156646142007796212965693233121085164825795619487264722663612148787233726234966485039422220972170869170803389343894100939469202462830493726216175190709234250099844721928913849908936512265588311144032611812134622015842422391514234723677843099319696968802197369141924274127012018595424960674323045696074487391175806946185908375841288498493102776848332570232573384685934185841443039232476208933141795393239359816721807275547478996409958563110161399127101080211748530933616249623100053463877680437160101643612499961448614968312511815400627880363240613970134405813830253661144088479822773734991685518999348816377288541757706973574169407068594191849820376846594736437527534835369131240672085096717995683985512537556433354741967084926517499852154338551643962234203771386236240282556423306235669608429788704513873912857995253972905486379658520055962308137050975509984989984973961823193345847397923450650259128086367819630796317605822358140341456795060199933985165745919328959070498510095991669960818579902970656730950784558150183904248754521822643813369071980963295242630539176030373703420924177211435354537123816012864882844661296852263576206613779152885099463971377389939126666131254899179593960259451807275116494680059076914282650079319469919234721338503751183062137505820343840710756632344668256638695772040816754068717714021053730276920110363591513628577488959770069290972911503056202639667327655549765786209061968675372901590708832506446530701558481632813364719851087729720213344570583009082826391461457735276500790191855372230103945294725167507644296131764828587452086228754146041091243814935579578768325356902212722041685177134486380083515057540571785601897273516506457692882196472624354635184507400980233366427517324924668323732841985419804376305422324750056520897509451095145105658590432838913764252976885621260167432823042610436129058953329616135546111370407444278668815201105736967446187520905048858417354144072171063394305403571517059870286363013078866724522753414029891320964457031586694968788908100489474608799362653274715561833906475340881700799884883122814970500843113309999990746373005366191865007520904061963611941361751758830561358102042488928919958516442483744052065429863936285905551533200354792125088874410133565672031743072818189462033636602633852699953286900284614598327327073533820672345003387031147149165370935280505071874728515989178727819029695098673243513131616764993956860504360631801215632126994263283903040000887471292761822448557197950635043026228613349016708509991176634921579935748808739419251150063018556171446280565055688744421427257911644847214373682177138615660012479418731720852368856047571300497010202755426330557173651269345043824901675446547957593162585263891295224344159528387731184781955411180210098211608230891175632652818519107488807933226626332481617289682640732538672461784068687572800300420005104145674162847399847810282837163239366878886053010492135423067252672490676099167072814403754753942559446976267694118507684080429864734754473751803574951099571304808857895837436567646602064635246452496242522021565365947077845537350128148211540682180682639640348944067445152352493800824777603541504057516495778527867100265584427413686119125899874447364133816610071270546021675128450071196624648498121556259049281617447203204587032954271638230838961555615541862265165011194936969173768451445894639077885946516572200191097245412334791620320950496144611223452245586496688316432567415960637530796817547234392033214558499147316086945719855295679955262231280630882805466893800604197079621670846503960396446573293483866715438205992389867470279528281381112903403613499455021518473174127767827420029510437901963451521719204100104482081985523767408678199938283463675478222464182411692316446157223276698946316506754943187101673169538115663851247689597096652033127920928888884473541608401355345105462435858563446199950850729288471338357252720690937610440885743456001575826617299312008303551659965484774453293692462910381833233283023674333087535493203213720262539399886889487771439628595243367508172167593599681690057935087085178639023454845448282317592222729239793479124267576772739934750869565946247220531139010332010248053221279550165213221505270413596305374404120957283477505197002466652499996132588249928860058427695231595394264856688815710010968282424295170759448258830076526553825293937937765333230086269121073414009398174199562482916018328914520879787410247797953704055756538861581196961628554718970761725086655180869284022662447622544674945299754069817439504125216769635273490820250317732340009315119347630996016793066178239157062696597815828409879062158025158624336165443884691278334258416893084919680298224940087350976405077070672064060832834578729755915688501929555704695563740581984020343846407878363764358807263343948488459233863532000748643452407584425253734436722811643807986712138159658857573266518707076758200701278422911010239685100899074142398120313958355933784282609307297525262859892319536357907279437633716721085870379152912162590456109584290773677026552510650108161351516879875999661016460493170290657677591167969257833652774459441271051570526072319882680819504393395336694786876912734643894786850722491618155615442070042998209568336306060995739733164143341934312701039825437846583495495458072275398480688524971073902384804071919961020242689277306271653136025270830013734386561119860392691530927140035727614026013656991157393263429563711379411814865397347182586972906157821222774264190297882076423069681995363841175477426793641488930561132470053081660128309905714291303106784935244831800736788966010394948292389425563013059451319995738280686672437744382090795413172475906568684324713937717968816318183222535385056518150998443970442222696420608275707270032882607880375829842740102727302944687306117288125265021849580857431448795057691546169339589520796106829668913544450477100318051641660463951876297637901295300256784835408920367215968101232313963224934065510437627499431215850297691968639672678561001680216306687004660309117721969010272710613181073240332469042537646293132868006782102928412760669933010370449946429546241474965896873600332909119006529222295051843268472494618992671048984015494768961361652830345136828936916931023451100634358761766140106377859189334336321672518226499720502276420537339402814116124934276148768274135597245625414746973252689671653150080236828788112844560774297031001977498386850214059068617960025501489042417261242872424545072560421626796815959621180371609926893010057421717919574404795083594374070434002464163736207643511345170725984231116886717078461065698032923441555013882584776551930335190294989322310593369912249329696854282158281807706032298231978041601503953130537769635247510251780961089984237984120231737342340456601881128069459490257948135232077150032483980227340886432287647428722737779867524119670292549890834988219419718067555110512446603044622080396262590031666259194180495932420574224887301143965480501652506885437028682102203013209859680147949603556135597884841225396732759067093797368794339753151869356328014839507463709812715947355226477795885786047469956528132951011618628804212194304154417298567545592915533855789446201423541024485234881736873745133929598907376187961311900300268199772386027740682016448162135834548694430418296574849155930938556717672418875959367804800337784566252620657125740976065081834929783969155961256190501634883289604173357401641629167112653971804371828518237724294302996418207279187005292482933988288451841037566965325988941131803366795676204635134621296563210436381321439381915107878852183066881689184995804634190533785136705149444044658906370749404538750147088246573933692608923726788035746757208791808211435605205751699259247013040460766456061548600859814075528787615786808782094786197259119861161041233520418727598494383634370400642006863926876638488414630928212630054642546457349069143800973900328936376829005933511075316665020888932940478289690859459458926937823805813801465350780273219188579871810298839475709015663472753234374179801102904924284542455841923170111996319988155941641607405282366664595015435648298579390915659680051038394597574263505132857550615322009266498097607264795730633227508238076512463692357110217849959882865623852535629288296172775554225137561002954540358329517560227194948025399395689357116817262983635369576034681242197919881748174357472675565695791138934094217452140920423027383820104216751548725264594813453517752368548719058971942969287586734826584128943043116582101824523019339936521880710601921622771825052928085075041701397754801872404617574626966481269949652248195450266166048958472174147988879063268858851923791472380085151865519577510017427704145662625813053922119857439243543084249470794174551122465851891561632463507874049191379927540951382504771227834352134308168220050005905462952075601936469040218967259981700662366447802507097305425773732048918711956068800390199726215158609371036229519224516800461848304807418603811169518637302121258682863585027660839050450723685915998137506788383542855256431053162287599207033999448119535700654413721020262194763092828601112076772704702059426551304272536275355404590675589178370367135572771859049828719033919026741055037792384487733645050252732706434424259055500381723139814652413407750621623376429176554391044362308216462768113153627175533252902384645926521193941565558905783965733372711350692400964779706604111973524082367637684735763006332292034089791615393350037728778258366680040389641218999072467131160995779470219731211857902079539102996692777473274514755694355220717922506413791493970127664575112202799573946397308423804793670143087463517758036892991944015725152238515282490506990376735347282888499015589520740143609275230930362139594124682175083187260290777659404046441982502486052763005086047251593245687993516362800600206262089119549168881981264217176545760269661904912176778210028975410156343575967368642681627183486435941717493238280129002085308676003667221426652855000848685737246870055148284743264418162014733697273848612279236670933737921489683145817274437748376041353466127502275345567368645037806269201056460433128313822614790446499154750015820205394123599190538715821027778003198390935089155777356593753570962053198197014699395834310672333942520969389397363107593483941620600512974488250619494299332595208785939199652106455781208809246266842486035814604355948227455464188618442715710255335500444470874267958280966524875815408466588858287047281560090410710715680462669481596415555454048356566753920794588322372493171736147908881624587456444859716580262558307023115889377473527278823988148507056459368660286431968283165253070835160973995239556837376283630313331404157705825803470626019849060242943778454926285250196935271520042428200208370132281502332441408027413477443852430869736910089426300792020249352235270984401572872893480712029106903664241579861045906725380645071693232630918074377516050413206947697386384646648329617635390568987434380980480666302336872351695481466902706734905317725825690944877354708926536437220767549168833015866587381419468404974090936113249756424400867420665621931602735287478525410889076705959194006386508157848311507825366600204185379196001134150420582338475186546122871823261349515258436450941276157491384740110506976930046788281737663729844589467501068580410771605343985331818036546241503147277409386560016988660171707981175057889691700332565515898391748899169776849536687808472933121649028851471151630725334448798550510327340818270302718069107927576485433017112394665297158530849671270855881037883464542467722858245711613576640018853425558617838526545800444573064338934486580082877490267504717679279188213557275175141900061806792071555892550956458995984771777968960434308982343853594135050155551455655332235318207299740358968996330696901835910636665113226796473339389935418731597368337536678842946995150031404293417258869125811240608164609826154665697794797830301873302012402215917706153364223088930037526216602881330129504801980885894148764843115742723572977109023656258894362270922234522031175680325599330245117302575919967781375823906150417963583760986072564850152556456551179642368398815860986027035409502750707806974891135104968889439312621347504122657733517912818933751715747302728092061879708434898039380503265514592677934599754770800245790224342160436152148794020990673066772741810241557924539069456448223403269298172776539883053633828270397903131426316628135899056320188566877751620487737705886512291794783378069677711252677059782355900694328445722385500892461526913705292878175083185683797680095601383155792009383630351141675183420346618887031108060033869483601471227023582538095247821049905115032434460345825752817356841034497285474736452233069239487931004018033841281036191987959623394709626264247134254638052193034044565552012700630344034274660401984529196558390110053765459871121876141747103569383433617542224576065910670393648301429248800488253902401060972771405508217765110612947517384278948678624705166352287072986802031422828826529144997859886521424049267200906188083764567856435475769165807335054484291556668922522179791057417585436768669748410808865448831268863354681741248401796165525045931058264711665487551958981104192666616552495991326526458282794505011136797716221972103180690645377884356193287070401017282167814222985577602272677574165381191187436452470032857890938722811597665185273199118725582364862856872123856728806287942486107876134766966901069726619359527197952884362499832071317401156321016896439995563034993766872415231615179600591462665835095678367340019207210893647675033265639085387094655274160425556229063872724921027414580304631648060395261158621193990662189690370653148618702313862581851875230073626759129773773688787064415692812550947431449147688298492215213284387875124768627275915705626915538458904439849306635184004509866000384065967361935746302321845148830708857373585466386957386922598062788577763882075636795055892455612956182477073912215715659426380990032893793941649925653334472982879215989344943607704778290148415099969074551057283849701271278009162799529554644151678946163197795277314009487522629656150718462426260280431047777973549794302694974485554406444140265746771308731005262341835725664577665421228654382496816573637797872291338870704777063562198157818463372443594672707143044825800344311547046266863759992263811400645519140726877219363008299272879987696167897456552358339852761736932457873807572121694969167984202447144702321796753441002508367489880699210981456314673196519673890377079151410842727079724027050707340834262393994621147016100305851124744318901570271810963077561815765375908185676574101199040805781206352325823650558073780458645668277214458347301554891328600657828020370221145766570129236665339255982065295380681605431772218679983372327729689565089741461798683607484461274468105111350180276374704984391918799480337298831128629659903800186967197038923495494562300757286408713657829208521914285669207850158891282111083620635567897719688347593685545075499104200510296511095615099915541931161482150112754778041377465496564889913272702179635349388309275926161927660853616012798718639112705791733105078761147814482161615409866752706312000423970085443620052290007645656188016720814291300741201780294218911703940783816791007004464470036504576283913790846398274550766287249147395149296431004351450133371335309359448183043904813954563623708131543683218462218707127452004121978891370854967843077750698901071572767825405227940235004378971344431788304481372331772938632431510346309268681061791335430157267146001762469704441303434653749617606167010771517965739954060185165197486825534404952745159512470732779391637716965989838611852351041832736470821779708769325899656243566479222388660276857854460595691298714070077698438537285189734301273803091587586045591462744367620816604741510673422811010841096306870810869504460393737888636682506691620809851835027156081360738101274554532844903990092841584251975253703529281649490395332032712506969054293595778164800962529193348460046879266297518734389423769489957304889784272937267132039804401478820843283799494556537301952982804170987160109511698061499836307957543924836364565242003116140858886574908134784624653608816835490213077182365639393517266969483286195888020742327053854486265991740273624300453926642504542722110021722672378165987024846472286959655609190079996823730667412091572060718778400016838601939259710985807243424075133013768102690550168286003108592341361181151710918976417827616568496671918812600315018412500639724476688634726286538614340111548354448396345398789651278880254934153582271224787772641078871447328785342600845220232582372037088674276540740246873890421683849893860405080854694901868335716754160286526886847175867682438419155604491249434376869416943145342877305770482192446633757760626790747933886713782865200781240810290737612842001641669906664755199525097940209444837240363797217297417688650545090143919122333549693021154665104708900049845538565197280443517835446778670525843923665683430746256681194152263130923655407392448472488232909291534663245621413382378217490729990875583836473329522540246821356396431296076756156313370455202315339713472701722343924720256666374669703671944514853443884472187569565518088662923102214517596117972728528710895228719971267832726068303258063979090993699879364512918848793314026553203030851899385950116347671554741925625159208642266833783633728924463683580887113231770791246875352848705977797300287259906026799941116568653639292419674886120596505960491407120037895036806782882637404096587634388219941339432685457494755264742585055825958657878614161234456924001432884320621004110322201051179351869761694348729478944128277094216306412077349443081575626293961515251026473431806082425255060494800830696298469466139947305729610418526137787116351806463618551643522016740443698849323897368550076850476903829387415086450463405556451400909830413367043147849698494680213228332818752961294163190525243182921987064635656157689058385777397920442781723841681571042692150708379711918432778685362758306370806934310395479251714149190453332605416710129323975737028986870044758785057289143181989661701855255683202251748673577016617685304710125283214913996999805771803647916625127972134306069705067895858006558029300041406211276859894641877346090443120176141269197697926266932061032278121373522145972247918239386353222891893282023661847139802235261247940763322722426693254198434966731848373075541893194187074387184072225625015908399931567972609229749625019589463273068487579918212180391501872069458260400476765170014133529737388650917985457560887766552785723721470255228385558289022196720661517969229301747161133856318147018803914491815760293711576648678703079258547944293888104559183839367667436494749956154275717104482120561693375356534223615430598453782859051310251751959949712612232070438967485536575069312514953629207695026980987633115479847268198948773315240771010341756911664503679149286623518430866693161178294316311895736581031267342422889729628855548339335193315804445509473370093301415954480720973436320123357709833668053937510276289446182761970920586318640923492015794230144868371884400016985110350652846479644932192954438862304994468226325810426112489502576830261020433964096453555435592410900009049723384387077332314715388692214400698878287308629013508107195512501145084454139163605445761769609984173565849398947868119099055786670318505204715973562987847213412982924500327298152913010975822240740848425535977032351751890399375470073896206914048238257739637192514640356483632777565722530319215766053005185881382910946054678828859198412615236944877893981519454218163206701470253635692521032513556580031275901479096325589728660062567012689865333019261646661298859360636059090807344205868820558405072717011160778343472586287758143565024869944542272645602934607828003095805842928963840441209096836542940169970153645209676507853739232088388114672578131928894784657857161225996352251785080978085909920879703128875095995526656758904386955429533520526865163092195436752976977741888955215503296583785141285070984196556893059007468872783092509383653684700484968053380799173386559312170936751324554350304654380138485595409832084147448867217200611428951238517930079557679801741147075918752729277585060714254342857531696389821797277613923934217033761976219413639609359975308488850104289435048665963251966835969782033107572390588095750864159756696559499035889558528379638300254354449008731860396369183165294818868031327317708798698669511942999707865298009641554829256030639400896670969671762745812717367681981454001994220783843063389608400614334164584641111096754626535648272082772061880765958841717047222267468371553270374126925161325673741011866002352501859868170323385550417049423051640477456245453710555457765055047666123625354015203653905717835488654884044834488055913056917659745309331904401853350895274196829651907072583201663063440233955457164589174578150195060077980843874822414457385758450447803333685575328335091507648184335477179808655918116538906815821514441783438294903702885425882575136784602760022232557694587672871528294416715569650845265373546489945046414365205330966713507253611611214113415799361029879746727158527796725987859732667402058318228019205094719923367615579621811198425395776065955059238694560101048763707496442173265614125224212433643466395191419469210871742502101125667121677386925642179088483442785478603027180933212078788406886126664866785990815490743889108799747623284823306805231517662555037640025380725789473303375395287188197694072498434630374752904669094816340094776548841988181505490043627798022219550138710693131554127130082148063819284924766243003360723407623746899705133244962709788335959101252863559869583434008958426931957400627104644055023418654627384866467888208296763066573568751743430410567778217081479034125865476458331446140638459746792992520223907181290759810106850888387939635482379058175347342883578713688300310670953704517159231568242459943764522386190205061856630217178004449079581945210111436295508984632448797058382878270628916605186575049513405545415572953947292795542620318106391869167868806924156071032913022660068093526857422669405749891875741506262161522596253178698435590359101919049372437403806009412447017210919056168409840994212916030214351363767781667789204190704288499184437368063845915718352508125165410517138574213656028557344941286606870805985614051589159554282213861565071742038141672853899453652352376119552432137094765524610348870263996926011411659144547890092340497614322462962073877099935662400809050293558543731754523445543969664014142061297245906531115964532090031783279220403976894460775822439970422225781936833821541473705728781893285275305274421647484785365784159433720065856517925202286300929360318043961515326563105142621606689342168293205662857848437371321251111114882222218721924051682537773683417351704873535198222236301052028034467421278732720543362963469194004399627610256217433850954835473749695515032976711907722814606650340281459818780871552224757646800233811217192829948189081264439576244505380639072211296782639005244738524525713030191050641671583038695043242130967707792309578068629104589020641224149075181160052586972132113664228512817260010569077665575603496525472314267787228745665122693179175411904404288526271279184253234948902916683393337231194572871186169226594078310873571667321619599073010477601615870630510410138531642099862122633449532874032466849323956826619196761213166993983049946540731221933223620789544242709760191513022487291795419478234104611008146669894799589922830534049284161016626539020503373994984558709830781711899908830128330338402470469682534278662194263270341800948879406792528704331460727598290449036987251576630672162447062368565258966205203086795067547535713908234683462864766140480363921579744642832788778043528409595828630804880818484564717714754071485431821587501993190936450206193396489416418546589944003083345738192238514182714581510586663160215054862644850372561706558170785874288992444363420764943857044359480862233723584213706504231940967268811394957193837935049472335436003481568029031320706414787257165017530269345072194539661373940815711387067019714643340774207416858868509537208584232317842755752671414294350003818432125179848920942997612275883648259554775061104255693663344006566926605954464958444439682159486658878559501982948989709619022994307685759053493695785110120674481177495342231262618207417716574985011618910406695021494707258308975006535848712814690643059128307757738560818475111230001233720010244539396877777162897464226293324158354979479687981376890329360388519204406864458844880741676730601386455418829854276952690464342297171889670208882470306181437921704990923057998624886000829875533356296908704209258772516856266102408946294971953495615951124532602421084577992071191065632271021373842675302902160616533521961354864327539569926152137659975577829811327237603947079274029726963882892965223008440039171122697512067884529946592568269769990015342649453296207742584968079547156865707392444802165185689982240822145675028408975866752336318330238497085689489364990161563880876743465765069110943747714656074427591673042492787552993135690623998088931048908439419436375070563121387431211123157754144245260402995760583352495697146440367982229629038102117514964993114270479534847399581518628118520343499704353799276900027646429885015544206761746554968897989606344821193545324316006295597839117781035220374985422419618335784495059793706062819321419193006105146753167128765033493208065037723695620311698913422037756112771682643508528620342216666880946458243881395324585187832759354110818966509341479626499209039179300477328315605517585032368446697828101752270059260687725897842427780741167344870475088103303766455030254055589691247553501654069624782284170779008306204337960361777995109397509144321930491747405817392014969316684187843343220138111701561126561449161255976212086588177854060297998894677448826240296877261999767427895698970249148483773346593365327112360537260348949364609355876892437434657418257835537313042096520438106366510890477660235351809607982120476930848256446822765437320881363517070125841075206534897845093992291902107700395269937194203102813438334978815777110601986892898597213416482907840602031048514160525934337011630084561791518338601297988321756533240527400347512115026623455124993292548375480225372622538530976951040321558902830729666601000914441165668424190417501826108746763038364270397838586337594571739617561327052656008149813965199338007194387158269112826519441661064657568254014672464842189056590076608655634182501271990401326597395150033876781020671112807324114696519806153396758147215864943279875788164097364274379652744371284715948867382338736910561538441994120177886211664747847436781367482428948570837547065478703138918530465405856048932776738677983884052166999631535647217798091867501124892857384050240808349031473126434468550089879280459864901032880336883428783710412555844350995351203920610326381027840990253677985332095667234523347412598344181146226535111812648107869559039775370085998286995867232145458843138236009313844373495071444687349303215735023922547956492392204108285147452423128308090264933851890354460731585050236307784014479715755765798677029931369673052771368472433548761308047923863525608633564206047448088877716628042229506978871866230857350711147290564813612679895162351871041421304340963388842562121462948169751423303538553124485031126223049037392164203894180878185240455059290023776467820788346760610050983367715388739170114402326589577542414782451743800160794787012651095759588768706892826644365931610961410410966970219188963153157309607897014064859384033106321715218885671677302993383458046371031832150899223698023468058046096224532287263277575020999455715011065832432792009177497464084053040307414890092780995823660497564414460549361441471993596510661878019611834141158871736633113162299898721025106283712772538684472058652777493952711117356589012913263775198673026597042027745761612565196178914188501288517409779470247712432615245273682957386641972479759812148281182498946294139518115284473066446217549434366196791451459696467985782543911916027179717611973670468037895888394185366270370068878627554089661234664173620492952897872765696621849068987781811748034140103807749588691350467561071106480041763413510040788984906890677468540467522684833012420222776115937980824454223400761014780719743398827317540178539208813307025515826545775180360730643513737050253944762498833874385868334118884355118932082282982918651725545883106412499412349550392483819550586409379102812828316901122529247084958693748966985369188638039281353615262715493276207205693886568100839175342536789716964144972012263006683997145025744797368615193506819970233119940482725428617303489848337008972231726343985064688965394666508265962942879859114602450936913720502898415418243745978167529615778042981365081380507487366284337092966029247128459238852515563352062813195845368698271212265410946198185160343180409819009457845811192249847172100462726441435279593703252522344867343349536865264820318462737626650064679462847111079650498013909149293648480510902334781283034621094771997747661279635018390564945528257049397203872825327601041781390561680807248783332276990265818654731175237285007776745949478725697660894585356371694090688901331028921719288849739904482135316639976500302461095210608520563865744439945633947628542648760839873555053080215269416523950469299492349907745314106672492075371684578019595308657975095543435264138073433032012192286827773961509710166210461281719609550127234658820595400896707091627956016197581867023600246767785638845536362021714682167638233224291050320211655635804262034632598262180360943698530561912726617153589862464136725141198490773747546245598165976468195350320578154198991708563738752791159342852969514934394957388877871028373301234646606523760620151131468986652250115870805825686140723778792433244988381979867196689900249435833235213130812471711761836565269353095676431464745713727032811110823671713582467399100085343607135643142206135642627843457072230052468984143152219576719742354835521070467329748252638702332563650394929731988703017783073689215531769486653234978417507383214399581516199815604963399151418281690750005404781692492650623869603723601953915332010426791187845970574489824784675450097964802920446140975242167823151614057860775174170343937810913179769795892723238314426898851121934082101697050999224246315625360985661733729142880463960515600600892771122904533062652526287404685471139734414578009292802793368442717701981890457421577073311525504305587325692524394073350962853184430100271150928555103392458759041909803207194192935058832409640836390310466209371785719756177738855689996381654228655708708797610698719563822244547139244438555578950550378948079996360939537763735450228820668038741591793175154389626028541853049266774457209919607375768972493247742190273840086619621555259891139469186214743019641264307771654862091770910002307516760341896198236549046793942535252979200817242763710678560868004199770774268475871212311353216265042588290419167657321915754522040311072811257927435303044646786744066472232168061624139455014166123447769478966610880942310322757033169303204376651913532055672651165984875138145167965717248862412819164803602822664468801712143289050107066965029704959042644233187406554892560502854921387812584947663007665166408854851280360468028627391225633743184254910176203073094861280972019722022225419702355014752157603499815945503131755430106603609705367248307040206561120829019194004144165418893947097591670237626728671254767982430348685086012413908582275082231765717353206160413463714621522375012381903453046308309466326198362115666821692694723175058351912160971254523349538131119616644173177903866637242950255449350157390519835762934223964720291740969390921605195901442241065454677130822360701982716117318991921726280754450974497208550351236882368305145691934428569271220619408037774593650882377415823472939616563137066061655188371295895306460938063468351905154818629563332295344525666200228680890596633161652182300816560091395742248584753412254417538171470824475328236757476556443596370013031307925806637361408503650728955206103356054336536300331256710082428669471342204706682964417176082822791368506190782201170610198367676961385518772789032978640031861272676374703766317255524867202891032865462260697067516825887637304735855819091701896868893107025745422225422575623735585930218191341665417541036787734741026079456603910210951627077063284232550947741905725961192057300983093271477547642699062331778788060656022771479255260433360398192447177389960153024383350912818226610661658305224019194015062100291001590725097805922506946165734474778630944244522384070239478050834071377272023088130658715712720872823841518271426653690183989324094501574345839829678175293303106434055424185558596864767038992090257435190548051865270960815353639515862867920522738536474707847977024662629424699026097442256481836548220605479862648478894047139891806301048652636871877528813516338631617108198258535580994102900403572345354456855666235685887710150545967439253533953018655732550123537054167931289523169620025701515617549608834525147277748325521709660576584474828825929292006696355910465252108746003137117910914587893009702127546767172897090205012839967938735827787685625540860430216277402578495474997334570073748591405730502617701546885729312492416418587196996161915559171228097076838771601202583294587803041165615880490426249901898458474192365359594130604118042567909790098698932764472120851090905585846737277279111492007831483446868322728914718426370272712873868537761316874195366402479982806621055394371443016708596491576066723356691856200994574625873163609001477825189351136723089741144676215922151905266943324488712111667486424822337362700865460637932416725234770646054637445308560089522490882975907534238545279942678399480874668706823608170290513239199490122640686082618310028774999599231986124110155861682101252686977343169668758800702568096386575902994006869000222531558554195579309426761348852545834059793432792361240791991362747774360730198345852782406202517923197947897545184332035352690470155610770468055623046044382107030915685366259400916957541105609009626607806319196025887459582059815620787989301524192689102242448033023860437410658951802423912836364246235991093633113083553463646862915745668754257926734328048678903034061840896973633052862901047350005432475771421165046369675017357012221438298479846424079921261356793116430727380333990361381295183896763727380112840115692569155611747049796396509766647074225514157052790506097602356742437414987235855395960792390403717052714674955370856926184168332968611540956330500937581483891438200509225520158015055035064800886362610553755664485731298613632725510508866402793244773505054311212859033750536147171480487252987387425462807949995181362664499947103949933007645422205742211619113201363985867099120985688861668471914944765377425196534663187065889809675521797287382893707041851272393773495093546805790216468264457024284857055230565531063753358050488659690321904289092983318612958096013379571475301757958482245787175992257134471785159142827201131916155468142776463233374945954611781805267609138731472808081352074697359687008583238826048790645108805520291392624332765808234226953710076498000524864232593289188253185934677522690942232973251724625184897739983534868073753455086446637932049502368888941399054736589214311169376393223416266676441879741240781394150603412022645997454534930308939075277986207734998445940528750915535102417608397748201350150039611050356601207514790611705053326065647730939522661370122333648089370273795512065568989963646000294752590154038026259696900694571375600308868609444040657826812914033410400458901121601517082115514264156421538653472075170263431744224968443163947688296747580714935797773560693061812832676046081195119738025465966702138123743398099774081744690620172543903996656740611264877972280328853346970582462458245774580899046088177653512236396629121866169218879111550679150765112820343274074314670151519379264933078462005471169799529778398293409371707592604204701109826039880914808207817445635266610605137673064308233403948237825260420892945855846755091294020896171177015230049235141254427023944166444016693622175980477101322457887992278024297260532536056487750117019089751668383908526314426702633360170915352623691650823966228850513947592493846787066269926804944867910316214002283381133090576899446870666008858913822640074532820148235856964671859812969842786433371864515945136700230019882290143774575862950024234527511265596866519200246715520266239871824364857031203645310375303593594338600099498680501243968596423622726112821471499770545104341726598398449982421156492579991152738998198721020849034155382562477777450318780376761207813853102795651932164752090339702062116250361709958216470625318509379257302582724627145978035141186279483794313891866302109764430374359004226903262460298406905430247428164111151745316760713305267577923179701736095373964643184508806269057936049536983270411957469842623310622757625829290980273860601721109547430796245959203974852877342718351569405116594218307916854095518981344040662414561504981656861456986926424877164746763300569182500400866246618984661289415916088405939546562924956402748151592501340436300945928140985304611006752647264872336279382477635618314903893973239201347772076132184282713377621851244496720808017313828524216379348293327619296189817034032166392331070105523842723821782892568771471544778775265817361626416884481920111990724741289525263833568141638735780981827780257154269701109663417017988854580227046071415905997249970829090866989152176009593170221209814522458186541516726277316973093709580290350877615826395564391813888809642711645277516773422240374907979048605850094532819856121769742358465674542765814513238868344457131528772675275714426042768323591451073874508412437822299402817761403960903689964029776667079379680992999157135523156589947683601054623576176167671004826120346293346496180887632893233481816260428773842205622472109329867540583583543915037029968718439040664500453081123574328763135762618906661234954682430937263298646721370725753166808518162726491710688415525223700096149165713083364589103909887596291955297262966171410009414984255530092809079510893024360631752209581499053003772009305295296653627003926427172964316182521071841122911795394323999574352822105398236192240031590826525755534217052452255552492255791176935527632098540979279377973920234512682430552819462858248481635012158166872446629039582304238393855714220437490523725103447455930722887955842489950180823034516631503696815781903070678061182572633804763239170683597243547375432212308424732427459807668272987192021942065705910022813674036869431848675865745685027829354182879352440621937068371046803282290461146492196369442060816561712309295295965215163561556686266774698950474470249055372188810440623850583681178065886855548518120966224872860112770418224571934787994870384431267666212436636725762130929906284643247806342288388024891504749204357679801842201436940359442880278089906231419857605351057797057091453864989139640130065854633924821609290121795472053514695250634854923149216035461926279237399048801712253295031092892732254959109944280826729537545896706865153175166269534296249533244738643590951295129936497801650203645260924249945789441541427962778656307006439184679433947112189260313943561225486100595048263911921247471436279500635775001519985251340747589891539279705992917743247006046061212146120102173038501964428226463720357580704488645651980377916107359373333234348016088372205830721148230540103122296283466507187642409035790821338666890280340290626770761898093554103293221207259452569008992982537153563632783268465535698708290674358442380192921900955491766970132473521476807816709095121287400284085800331258743117393392601155998838907137364310367051915248541767397796993868302148880542412418475531269470450850836281076574448743480736251797496118658232235232432801787931317580021143840118260045619297845222092651345385905543356880441911239812231657557560840912942831648965344377126386591147610422235139854446252072575521491008255538311103279764116253884630992654695599225665142697720248702230856202946196463516340096289418628835746705048455240174257173705801829749301792409956090521129893606735936974217195940409731956477501415598192307589414430665303457633371440831733286866728437132113030731735771434501766351288156586102469435196870069214637376096306800373542727665665929491919449220343778657152376323890608778222800704215502705133550436891297256843802559688818749861425627582228673489207623943143250279900412843154198726470088660173581700547178132695736465665394536675124837546712962430545475950915118467224227621119472279701511625214372658690591709187162650599981160441697916758783043977341253022138690300827846609053097751871593057513520163819528931651126919145599280612842126564885657142646343687311329509391457021437628808082401464699189049891882266097572959473399719199380956635271177984731770615202345760629943160184858393037389187232339367549104727815862085786761440327646128739853058173115777182563999997142491466309321220710636569934911031937750315401891523493143340780941108102667111614411838711314510962515079246403549322931155918377282741016781684181931945510839710932091273109691948511111873429245560322614237523867722589276879626517901977692687361285899007813091183539674731169680300059059556417232022376997588789601457021011641266321784339748526978899222004262522537560333848039893715426584818068192158375486670259685638359900923302207378940648794706728970780629360675472848763546449608895829081344613832383683520025224270030590207265214105151801285114870858422140142506408660498825994251794051914964284881585632178744208724919225139632247626288027920954461437885140166934696775004386575542000237997519609180134898705366065949356635427109646573683818961247120872599250597636636015032453811039118973005965448145867196018108722601196304418872180933869995376558014238753783752473839297472599326822651044572103589525350144493064108354708004108409591012309600852444988653985866301218926057963942589112377866969322322202068875123865159213088130702184129427557776656622881074283744691732487047768686583713034572309542193708304760064611078168611740935357273617650535104898730583394251957635672532286002003842638940955644374055798947608941668351701234374172218814591573440132816155805546802943984261688562148697795407832180808666739933800878406359118459753122387263569619414664558130143946459974872851873305398841061394104040848678672556529558319014312638319193474539046448120803215081297636803689826135319494255293085987650527085661557313571266020347192370271112249674131092048563096604150114619172716475704809104557278192962239522681134608522712701720872784433207082635697950105034509055254004673487902120827079533384265260909878895093887408567047047790154108946401248363786642585224834644176553809125023365129398057906664705885120353475103171765431670002237685186337703074702152825381162759655828910808937167391407415641898911938946734616944797442991549605140976013108030384377823394131334248659541998396891845945288998775164956917440469829747448314175458395848227097211698373331788566269730733078888211712050705051886282184305792710719895582109646248052310892236160417387669812022436314445591013429613218549675289781698126536495798558353754678888271396728333173990643524554784302337768195156815242150132973913685129059737641627290051492715567544471541793082437808870454921466126482078297549156509335444181605497455446905671387853312484056730574687886011680788976807606099596313302747133880415297578348922332383524724787655100234853101618587968693494689242105742338643955958953278185241552005233379085622021712348549065030848099571629363045429350993911364972946618324244179547987781673063715017192900522262427167107655428312415548477041524116152454673343427494541562236100941847211796617862482437169156758144938571852774443654433709564503710147811325704493882582984926350829148527204603602702866145201095949092817605861121176021815875593408873889528832000260284375778530334660603775294148196681045437744876445295712224356409952983440906731102348990181968211095768595785020292845596565201307057732978199888823486702770611079738086003252185638655994481050969305334465826074324215622957051043807797234961511522576937311170445072970577092371814354949373383601439702458979504926418790618847631023674447630005268610131214496612305338074318607085270405127774319404501866367348737455813444663394192956037174696141852363403879305094076984619961826886120623316145085729320665180734246698375889993831085083592096865463786627526784065665344276389139070000372131220331862204011018051332452631983172456102739491026388472452679008766259374548076376626573583004214972973722882249973886700354777251148716388437339139711058641856944126558746734652437894309396474895391648844705229499666150642784910444808230967522636309023152570373894707741049485306924039019605961267234217941604429296535802874396276128673344549141994511217429762671389406503104152317259773088028653741856303779297101581977568146835095872266282452151820862892179717265690946340190456250143136903953513047369586249722963098411832046117751436510102152825618024252576563647173791897695173705427024741505266750618905611779623816121965760494902871818635330390346661177341941236928931884903343573806025536638077141919580009828485981437950882977216457221537468010643657930493763172361552623651805540128236826908702446601869227069450479149808601593511326734356567162042395783491300020732002233792175900955924792530337354005504624826242795810682255710574175524904872607912896713577672667636518671021735726281048728820055529249745362325623046104216703057996598548284932986898084526287623753925839331840574034538768386872364563544988640813444291662176053447344711486735604092009468595020691763470498190716935165870523383534305638651860509876957874901904674127399734822487688094528818066242815781367584161870620608553892576272382970147346061960420694249882344130730802162631302162254743206802182980030426349485389253109083032758966815245433468701878814398964814465192769257119447420775320134804276156809651304962126440279892047759510951704869957694822572568012560948265778552627692360624135567656156698710343876015507263388244753069063457238935215574006139718693570495334848747397351901980109343132548273053881200760485612677160007888893669110827224856902806852805597628305253887308129849162024715507846776947651415133719182364556321861726170068667997638333345688625798378228569594762067670206137998983721534196202575982339177770093760938519637404895053705911348041049144351796315483829631340041256235375938986120263294870756329043528523583808509145008320576063488736610052404388196450541748075920091751795417746287852869149910289938407328978610729204366544422694251118588057895226696209695817257347374862389332066703817507767284487134058148174211115702646313584187998762413924310971728943198612514904239235165647990969970754101215904991796609908780587024491085745386681058184332082039853965908078823178844059261073968968617120808037024520082970947684923521084968901273933638146190076816378977182682070058610068183611315198849641057228470846228336841129133711761197033784133246440706142657980357445038843317413724849686050770992596320973424461056339061064974005114416239940356198873969428839507507362378888442857801075861832497523065956010702114860478827042988200722702558779334097098838341339807030404764621820331614052981113746991225436593081775969076459452515551762256207115062918431764398123415621260210509639506466448206241737152867651726376726235496676309078366758739758614629752647470316112519221424654018469257726258094002504934473980258352026524266485383876213034051625533625473057303132009079477881980703017556761131604705275656248186741882349448191819505876762147864816159022009910326266785616778502000042044079539376440314520992707123709924671136282545489804029050341565877163894366715835860905844844222680377586667979768632130464649830975898012577713214970009724790170552133768484284528114971052992226220101650996732071021111151163605280624641773793397802379190838958273434861702316180389631176568099386406943514997269699585951624645293610518735298956277582847013109337682393118266522822087876523622291082074672259864114725216528912455050783247503044619773165104398202454778386887225024079906702020399630164045301239810536558772649178720493553275644285610852242687787740826937476812517817470679964329517888358087988003779602866853082824606924824173789765181483454928762252522765452205251053572848751773944901849926606207543932519734771781155369476155157868016544742445445623364898142411018682148601926198344284956580816431956071266755985451905651960912436727671278206958943239361684893764248389778693231396746360463972773877360074568420048843437321541586632972040127199446006720968216876189716857138533222691650908823740689969534088886207915089375847378522525147709674850009717523312833309920644473177287197001507376844864147764618671700611136234178017069985639063398019033120192965094999604448645430073968874887140444233108033858959285560084448972541129171980367676822955905717726926560079750823363476296414945057132844543871708475772708636222750537282822885407904526740655662356024981497674154173933504763368214277596215068927441386722436463324393467274882107906196780534280794328436786852705960048117771481037514183490698970679436945685300178010202219775559773317420711240114333315600531384985306980480716549366692767114890950200392521808205530436294446495527148961563503787067600167615318132372502617181526033090862499734700148420428823027519598181750230843873444030564678497858515117850016775171958156795845535359236607719811007305501623620328154238075539175515790557855290975416751919544155105812273796593554090520804184478742008475332403198699122344672588878203659678284362551219572240445124801149523680404365151768943923961767512495963345148179515866088009240098555236855354211745970835528451235792715248603693584706512187944266861772440271095061468411405719260330106212899596861323959066876536354419380392629787489588338841399574686947063678589432199270439117852827556706106164160224757099716946642592330789372122832032086572878851262661201944475685042364379844475253911157569986512536906802036876523394324127651747226138270284138901212345612602000569876915178076183723482446777349934470946426702395372121914710860319640152781647750488406818387177938020675715719761604473584754671398965945081131457402849410384594765405354562087239751088187409970329924128578462799496429608755701499863854794135251240490390977018151684849461621158763044705866507516288638696268875311549723426034585499803189705423668612556227444257822998496550905730727818351870545532778318294865403235770015942388140167097695587207451899197619363695338293531629184866430208539505178940534997259097294928628422638960899656447921733755399009668422072846380840693123769385871603208504470370113489404255643733878223223016762621773883499207013659612829148126170896319234110052856946913167152842796086446807924730366580766415870605744124899163038980684059070327179602063280494879227883089082366893195666569248523160211955682352829501128672518806102296618292538069699159934442291765194122308403406604201805804806786391012267910618726514137936329097504708835919879725229083426709362553759434253862841874143378405718244268794056950521615545720775258569392789724486607590261726230018944133989015154536291350896134131375555735433236583638666382974201990056754462344216227833290377055196278479199588777777141263146934828204386050376633016963955887813168108284927435056862240526463338659638098768908542896350683480844370110552703605805392767625082849136369515987673466774210377326978229344547188904156888699859333833382718330840164286263911309068560824072640879492125348709630772739140803613819855603019865971733216688456844540718301676529725170558029502086481524922288335788453515165641636105455546544085623622419874881796739894424436555398333748653329024370926016551169180664142906997577482329863182656938196366828744461912390734905592295256204963082272361579755459012738960294322317982851338289330155954441098772747568200853759118785481510394610298074824583425266113794014003091679058505184010537037767731312110158527873023371520871657897095770392269621013707503000465436061467235717148980054347485131256515181695838555444240300422044927531217227467366843834566382486858486341708065188605959746039567592773940093298999363676675650976545759952490333155307575599669100551325508355928935250449449591756364709652834260411210198365325083495823093826270022592877542777812649236067123358839906918031520307204790541869154197924814059842095542503398069452755868304698072361245445559201675607831758827348576571404728629473732042528039955120836161030001957899657559446967266429857810417994300952734059317623143359579387523528935634923758284473834149783208022900544872553684544173000163266162395775294978168085674070813000963633396161211490720835527543309721909813531818110408236840253595051424790533197216414355871158599153172872493595793454150085695638241695955881273582116302044484200081830427386117030291799304905088105603686945127010039380233309082896982223058971440884005417086309011614610523154729040392979641816566545086360619601338699971028952693703399516477403780904267063055852301048013409477871261478833393856627785613031816515220878270138012355971993281224591351699691922347769858181114463023744572991434670750190294235245423218118358289112483999279854875636819697151436012310117407753570637202431980757394235195473025718115227249071573331354902753618622232590337261887591253004769328456768741207330180760898215194108944456223253531940832136978405079573460635630539927985699800133879628345272452826173073017919563205428564843196325360948238087828358653365309025391768936068860362926484495760152368697524896052182295071962479098183166659280965260816926967040157158772672988048501527883323193555438779017803081934687529518925222907064053938907860395183468730180609543002780045701046053492945436490791351195494717207895876915670301612197951294967115652954016708544894366841868828231168574044598093863217323345435049473927650749477862072360821076989110004590305724050670271112954633036511007613398333862659018685814125552542729519326440949358634095568095240211519402513793016978294264411733775407170062865944964029250182571926027803960092789371538343995934615470427021169023763086623390871872839506299988868133664420407196797995276138061145847274440413584645952078099401880310375915614761786396863470055455277217078715711698554008579902154069344055294270376520164755843834454709881212871822081468633927093407027412594093535194464783588375845706973253727682344513175282166244096363674129380785785744250163297459983603184475370420604719595996189898564317241273177592506405396804537711904819036730569198901409145080855231482648937691722297165764155280791624740178963894973700837879879737853087017205496379769484580803340262805290920958554989259651410420481249165700464979702756002181399309752909416917105362335557455430560629800309539776769951167295293000144445466240097561660447849641521075665304048304879844589573259277422159078056123478497563513214754631392459291043823498923242464710423807876657220867675208518483688438068802278174965630125483568979396176502516157499360837914789235879735493687945520821059047068814056527544518047649223654418305972684781198637159078998031026085714392478866516265946886343379889783819334650109448822941497690850792756436553393531623457079824913433410849695142500028034935032029407297766075550843544959178442175988379881122080650798591338329670296990325784681795537312435986727423784666308526194068744848758973483144058558358393057028870402153639637138436863063610458385675306796195538717243372182627122202107117836203203061307438074896849651769097719597899037365117162529711448114641047777157609525642912085081650203714981195394090012014703270177275354063400573210652370160565454899225788891710418442706241696900829100852292226132767991073489152188364538845781881284754053265666106793574280607887588004121232961995931821808056312495769972006590895723423028872422642435730536622662757644346911407608621409133391927719251728912660072427889671618784788323431423140177703286744838360912929949027346432419401709387968242810740191152917756478189867899401995039050344172569789731284667158474123089435751007005816538755116313821822567466563418306539018457338658700750197760965377639889206092761221133804430642010044782701947075982754068139811307293238440768528164636737175145988508409440520177741384379072945395742208181854883952941135053252922592020668483468175296604947609754225857497328486926079609265528545587791644730740944566650749145247842905657020363535261495635690562997355819614952848172429817852927951930681398821174855509448786865483324347947101839730209403430336111546393059835652597251578641292439669602514077749970548027001192499062172617164714653733325471230329928743624101612233415418549275814768013819913133261451478282325071739285200772525686346232555999921984907818571942951963093753156519493715910788322395239768309310013813654623202545409322453650305906893665491890995877676210091305618916493382324752549628438594161710239182524641078509347645922413446915120018945938981885798805343271805149714861826458550941991963255540802858334313706761939103279224429196169601990209136415443260479357045364636964577797401866280710286431484222294622226080843186062925066035612655820830337787070678210673253515080450462725666344935486556637906190724745761267294950499929563167192691681280408062272925148485797262069149024269853514408367566345051809674479926066542508250410514404879116866990995802098590898247460510369342466521293301918082919122381765384581949588180842969917802731642939533697695711785835440264175916700838626598997205074024645111325402432516036320487602385333705139287823343925523613373707524210362625557840490903200032313146356160252796390265415015077145797830773750367902594020657270706274875772219271570286066442462792416374175901067454531692646747545107745352483393797927665437717810016538692259155123221333812071173162150799895008744784814452443289826359140751834278137172748495421622235695758522300508608476947046489390056125130247502283405119321510753449155723154913208138100840227791786697908203174984331025099939899246776526757266356477387105406568958654651220419474074586069550140303008628662003239635066185362450583239158303432459835709020726330081340545311351326336573388391286674380491264182966370568713419382255088916734475281305824326585507186802486337548909790319066194805419638823634261995250286226661587529208211962914276068317560858462069073272268772618987781268832268011011555239868024188374742617833606975535441255788639851851399912917863988035383893141490285925214832986020813920274460804519200559293091956194206458870448141188331750240593069859029372207374443092739812721405513880989816493465676671186191882123354725889945866109143493671921947161891605888208751192666723205032168137260239356015496603637304612191915108071157468814702817384902723344446770772376065689346777892196198479836576476626478604777815631767672719542791352524906050933604702006463447633256866590978215466601303416800093388421381075648130457200924333091426565536976728589215560326484195009483363069873502526007138512255435313545343537771586302615184526134435911164842427963643254647474050981145281618735243622371688177647282507790615264392919335680624514191084514604146084602259720012337101971219567113970210107290967394937342762750693184709937988492406047200644877180159096901279133044990113408487253016543645792739873196165768132805245365735572361290647677707876648203740442448619665273569157045592018599783966005578603505976935738398872449435100546986666622650975042824419804219407795683255837279706870206731205412211044537645993861556919977436423833032540069384642184076972201485848890270063293811188698439370167217867089962572248815864521389035638287127114504672672683032495293002124422332061734838181030734298306901410061166183736131981142613519314826809426670810568681539494902077536650441705119297748223121969981014384433792449739543054861762512519004474497466272953345406430963326831546714641608804479525465803621053590088079159392092314803680460787326548304675116028032493822553361295584534557737555216208437694719239684906476936138428771765637546816860449509060564577920215281916524218080981058852758795362911234918448663789598331005645770818888167832257472951052444299826992327635796332586283375827670242181656635287020647591433457362447517757214439495927458335060819985895614396924780792855897148386584444737121313690878552979624425054246953430721952413275358437052314328715050406670517072414261261263584425840893808137205395083098965362382598154742475637651411562930194535607821454699682316883147160052806966443142633463110964800910437398830324008087247006812792723816269921783728178918689830924273658283063226427988230083345621343725810796650493243136281374691305825316324723757481114671498084290611700295922204553605071859360685138033722446245507314476016508469905711431308869214346948547417970425999807710869443087925621615852929227956751651372435319073557343584606314180139037871212682983125616325728598384681537478750960861882502444534723687765500629367211731064093397097126192583715502879620308568887872864958859469407525770415758714367441212804001971797495575617406154076626554213789775011769421712172881035278096901032179714907466637377017024768336552778896561338809813364184227467004428508646298587833375483191069839074385127946097444472892816648796036256982845967225261262546232182591231500224971560145336485326992332460243884080354054367807043191253708343974824243538316495482091370865964795949383811323912301614631870435454684310805712148452364163782976158980287440640048333922305708211024801928642456482431389278121133035490959953590339041721305067288378709406471382023922877138186648454128877743191101060938075379707330809979684551865506416698534788982543745008311315737363236354134258549406980338843330523045076540673849486331382052666585041342001427963268808320563087227738373732716246430330097053542649823632015431427992422925569131065808071984809369341418878560004003949087556770393817631614179709813157843510552954024425013528841668166440678889145888801829462301182954058662281686175734238521162324379911986046280292747632547237422620869194719122608099073613753024993650674289599650585958634109182364202683216094246728868524167506720542246965753221580300052920753136542635774080791940071264274632263044514949370046857407937889405451333470658917925851118814773538560206127223176227095223799463530152576029641085174352877986113249781051335161914038552374961669672239698776693921111587237575918373070336228664890479480495469062097711497417119959182892391769213154395582321552748693458374482743912353106716413818969018269014572370138330702177190165911125428071811071737534999679181508640598561998941765894731781067063876849493036006070058575707121851226909760421992200286476182675387135398003141595305288815861868529867972025602640401584562337203500958341538464187568820323104965501711364881699062946050208115862711537392839197844563366917537257882959295749310712892305267461967489883735269542833066413027015220370171974031252470021447496353437467896604364535703828939808863088072458296364312538704677578977713720286849308362517010002740892172107156464166443886047835016147913361107282527426161333194853684418275309144507369866999980300188425524711280329276073531820616457198177745544613827615337392899479519815851562238485409291903671079852470925946656823916306212068367914455717955903017666433445883371016156909624661925877791362750501412843530802148741676680083445575753730464541528116480877936549858686296145639033630883405973711598434691560273585104952155981582472338079416173304943916022188887414970339667393608825880798135991605731688581218427569223134173595133572128075306986334648686950388241098573403097319476881108884420408382804565837955134204236446713454541580705898188403474936402158092224608209908085931406038189794888125079775035025105967069701244693624998409636841255619173497580273482296464379805969735643428240944534309220568309166789123406890260030698939620283067111932205291409698915447373483296698669639171807757376453577993855208395770232178368355354238261189119478370682415323732522759939623981534112482385391418248316699437812331153596565723600617133560870434201221506597447789691670046666495817588413256997071092378692780995065931067299371603895517761027273620701664951337310860230677755001952466757062757883617320809828340579572398256958907951407372413628585803059792090043350084386733099427248628952661172096114038601576385543395601478741892088316611165017525279004629238686462908573169966096239871340640728435701282172361476709632624830227606262205121036626491636295926336232307494432380691867666155423831837142390827120667494449034762953969641069664852854686300302695135631372122061669964633518801025241766422174404659735728670957487203007280191564888636475830189749091826489959513907037418772284442423827550125021234188635553049112076563176039359691862887297078721520568116613911133187092029773433186487978876725745482688551197859464028825214837955730882607373259544792181756538147433814716715287211421867797030652850986493893119399488717849740391810282233900375679790412461820199852182292987662144760514662382383036015336457915291288451345399318927086496910717272302263734465268997702266485784292218332942998624508472357115344495768996926908138474986466151337724203999838435452854435236576376656988127488689893992387572659175466676707270801474538108689154275373343254914849909327260854718704315150983004368940014053924048691079609795252414350157526004588399186127564032348958036024236058074880603331185646540122066924723445121237875042604493981276207945533756199427634239057325723262215657411906331661762054737015346918427143152913175348939469683159686688701215179090848553899232986721294002859447483693633333075915168877887005948835894127023852465161861085712082911424730523444619460314018894144782567522311976510959081272847760095870678281284678630903759636345573514793156929356475481967291171180262124392444049010229194242361051237960311572977796320428440440788345667064302077108595094063990353132200601754613311601618620694318709826058305601862496220132879588900793054425931346679661792975870206712609615832262963146394035781824925892562871686019388102425207860523684888980115581422337471598222746713306629616204574170887714059806686768793269353334869407049244236603744059264227110879712265750149378866683805745101603944716763085815821832316222484177056334278824526262625591005407549246080974379775716181684610822962833059641555560011861105554467316545675953088101642951377029583773161530553437869300572389623226440259574570833657042019154387825279147169784222001133337609633435332267001203294989547776541736833737966822876449066850424890307726081456558281218939721785385674231720670765095370036411557206988154385844021592029349774539446207387561654722388255400458490702050203545590621180167444550328629176567659215495522339228774466996013755734300726648339294074819052882553872270922975326944265775994385667249064263701062718164388944454618943052248406532751990659851690218457057396716719878899435835616775057876234939791075939041181408215069205418814803818083355896329608778245756979536698993045235308402561234754131607562607791366833366627947453550452321774659837130173596566594728607210442624658079700738834727559736152418353562935954631324175558184532664633696793398742219454190972521973082267133519051273157489121510561854555802415232360876336270280663725357508927617380819435679902721218234038087531769169205360252033012619953414218895003885446673947855186819637013719559648884748455133689445025704833340226124343148228105210350650538599100950333521866426725314868870869348367509259574114927063772340441341443767400113009614364174545932293899682632728941275603425007103455308717063542555054520610846908274825901587667891800778565637062361291057244597333911740888049141011912679304862997761740168717971019365382132043706128057492951857626860387385375823297859053427955766956086581161342975830876284331072200646564799428140192229780065157785578259251373705316974564308403990506679745375404458474249673872448122034809286536746398649793229027069648063182756262867065625529057541433341404683520713937379069440945497886813029234074308629927743967079506908749062103039386345835628009176300928272503887609743344011994137029596070427052603784567503902733534565837350493268215095064335678560279736544813065412756756452332411766013926050705481807348524095579673660037561919930805784141658367598515770671913667885168640301356533456794824750983223590433524408012660621513523908567154631084416623889928505514758885954163862800920125123622933626491704130547898880616261753984234499540262287080364993724828069791074714796283236221657475551005171687937461421594422816850870504376474234056134347478443754864240469957561492131687148309504858148026902838286472122889872471369473777700691891262573009397016218194174238381235429667503804112691085517618064253157260042911292687984901367121608010418354668752439654516868450254323722305728837304273627086961294613660368783620872645891097174662818917008963893442465256755167783392915785208427891192351322311063325226980335200082953766090977319071663298188879778307980743491262170542404797019711537212731672067196352686867325023666069203086091145374498012039551925313170721806102820222407867543324599459344504987760801652970976207390162050376898631370507407808353910356034175358549597820196868805789918129676252455721578331994102704979322637886263337443299712601206880851560660060887584382809518394825064626383072749265548709855903032174199292292687199279824071864383878514560217742793006123297752747275097464415294302267506181111931258530116016953981885338459205073574739823853687815021649231469127390699942519619153466303466124005426240137036691005340037518027270043438732150621230445670201427032639129868411751899590029353008758297371384083891617081079641113106042890087214196418583005811869955861057400686200238080687228310912247102241976757312012274954128111516631023195102136359871474270809082079980884144851903039585054974050060155167782380220371394181982848233009380503278242385432796642604082441815481406650278195306617786661547957968727439886857713672124666458477918830610265469224147750361145272699620166283821177893841441348651191560076116986765471952424570701129192696522542155251562994607235286949942374575840701576132219529972850358481703454888059920181321826270147350903307556692995468042838263817078442203773819902697541245106766762164610556868469583410456096641539701196026930001702460872735044792670682501180903804600207012073147332307779107938141796153970164799176902655538236739865833744532571550615969791300338563899576601836774322873979177834769103592030348746085354600723050740186437937127353486960516236477136065402746908136764781924595552877439989533777385872892107287961358213431137388642269282756446368520700435548629559838425988788949217972665138124794957290425128745828383593510637866632458735158991546349956808414223455798862428157806794989640371525413331617923949361531970886667395042550612893588511663742262999278985109905495882517939116948350556296043023370705144085006156259031580104929971531573991974023561627393065633193843050788963383130408517825192679124895017794929428808275398526741200099592813102371951426514074159492499836625327446683360707991495895450311527321065107659704064569362375120295658209903208783189783401909845590664844199501191070888209025218653018422270774020096231157778146589199953465851709537236160855157752146044748754907053179268466984134945812989073070948625624236956908646018406781655837895096672260106273537123265793414533419080169891325540960028617774146722573192459481275902509488451408249254919415351914533487661426892960672968980289836324178586689348577136988604800270501051004529949607290251117812016718230271777993982329436365691363660288809868386286151714027299710388079740685016593584550661417656226833916344450648188516922544976863843464302635492918385037054202892833635279740402945410838006052794535097823486710843165394011059383479633316486221489832813105437378550467386317929602700834626526312943558179278942328251178941060708806606131043393075270966588768047941836194260531142740796196801303901371239656675360476998488850375682248169908169789179578660990818278538184202938282618818008844256797415352826532485522160161923098488777945525841738125595088763269273562467965556937388783178318631645812323382987970901443918244325959590423061567236790930350900121727401682546777253525876109035201996895791619375588117831874765176762040835655890277658914592768217914292778738179866072031574869634182946142555723514485714637944626953847678460401282185829895728925262025562321738131401922119238459986432390288154763654394480593948307193665977333558473422031961894301014921079094099091978755204472201233392184888279091546708942817772367711919203129014806511178274538067223569790958813720578441023212139995550716626495156750549146148522540543941077525138206632620282446208335136043043241639340992869118071053434121499741100298588584416090417709045404763179615359797088378928243353553954579786989532723814814368744123176013285858705453017434729169051630329380740636401195364676113781974581756487341151853861372795895742610299260781909988423584641552134478465019936954273576429823045117921320034086476978011444020184573928686034478307028624116095022496179562020065351197715551575589683906522001013248612649966397162682777224704678536353163680879397990140647604904408275767272131467679679812189557433191402898071020379994750024906296689064761119171872966823188294958408728143232267004804110381055508130892111486181285423050816434868857211649420092430704535692148041051905774108300160816500438497685771252269055109260037574812111487212301764834778964408004759715962648354109488183652267498374959755700762186733729508376205342346526304992356499205277024641152731979999003948935186946595357195696635012657820311312981883595188071281260787822702124927464189133013376877877826256117896320054924289187589524098233022159325360675531975049056017945801471958852026008125549182667949695541973016924692066139953457580558303118679480957766486255630930802685361566110586206884562862857608377162325999505785068910676638206101679161164052930812053081321168165279601041979870402222619691177069008480220478929684816303896312358230691196136579601320005066213475764058484524232280480004567295147968208108233377997529888173535007138981072309335787631763515643226273979839430418324484100956686667740011465534241447157499509765331541360229155387356788864039581645080458785809689358284448992747326245024858182571858637790132013348328535857109883397999827654949408356898881197978976751066898047625030487423250554818074073051422861770964399904153101766186036019705731669919279513255374543964653669177478749738502232865529706619865374197860975141829234029427157452623044887369433620876588759854099768800121500453128271032406751790241004651708268534859633562757779424131054724450043608058098648325628602966787937658290868156994442359865787402749499056974005300619355272821176799694029806958462837905816640568749545901609605889825456498583926156617398464169780755074300611581214923229663213335104560894944864509680618425409320837861617466328201418680501650696816604136040877677866490970912232420055617365881777713425795684865161808341528167790779366500175594260861989121913583538333598292912523469782564159702191887232822959257572701538698240022928881163387553036890879184387437381279170374751280633167196661373465377283076079057252038805532722329510665591291879634148643016758674383094733439822446691583468277455403842070953667576944358698405204976827289465081140568033468939300233343672598395667579707106491108329772988099510035502246214322421108318189874587296363826669593591880707128697637517186469447313674408740098892361733675701960213813627900546723098456297423244179759651619820184288394195162242475725922581399921688254074322032318256638717679940907561619259967747486388407713611517013287462114775036915651210687455293899700483376181119283082189305806044064318329060372257467947082695881224967539493933508962567733662301624716480764437274960934323407122964688300905279320755997631008412337986371545228919601574428712627973936447443850201871591547652208828489949483013276517233565011336228228398150854932523081653288669886052306473650433708787542074540986278914401637974476426153497348755607664806889509835301288402505109366735064674049902830410380957161974519976979802878497453790940461635369053122735937163479930171477698537776116541713354296595002503704567772926442991385419295567803667787319299362437715172781599248655047188568092482914605375027643817587638350156821852209016356949431628425543838671659934883867952530692840090044303030256536100485996861979404621615148177768386014580624994023285226758165712912398896060000072653428607144955983296278909988074871124860597758768274045653072927915045052708817323429598110846120653710858172041466550948832252277634392271613008638328838733963165344278640483375778812380944680478521165234940964582870888018720419951415114425434667979759565943259169205498251591125601255680267199610472878741359643362587079029262136126725011378292902165125849717367303825371512709520515102706564111402533985478321322462969770388171923674385073065957501272389750991628996703510453683384799651454161844283636861180109568268184614259946228416977860094680580821140879002895939567879477166438155355278196593400612200940112952889403804907424757270172053743288804817424510712142057636911248621795456556640952743226316965804457921137235937537241117594048121436753870218697823505737777975722632018377062045590079225142802372513052390377924179529216667252227254545275917194011353348348936503771671608484557644681788144366926237748852280260551959766856083487737980881484408894211922882528034886078300926028463169381458574642597045724827475860419684699637732015497025483230086553339175580161969696084970098387239784169341162510214849081404217347563752779078709151068228318484134583358642368741699831643202883351625789185210114805623298417811132979845166360974642123800542947500131197274837325297364885610911168830176343548050767843349885266396474718644341338893873762322136588978014875329060971045960050093426423658911791614430483814611700755719209706562003165379818687688886236817026086356327988100048709244055477341944904900541102920619986563336619591649758172005568077821545901835991271095690648258414881682582106455440367863897372234029690010369870620920700487307450013653957568060696139034384098593647792267556637172454192740614781409017406197121400388928039208882229265720595437350627830837314635663438991052763670601419397993672950251323768768178743865229277593135877269318510839194989388262558028895054163431078583996943466090241877261793449211201420750076882027472918118593855698634288636949922441045656130294964562701609776674302484723777986101080969034221903139477358907494325035527507891905841254324097905497004602757679685007235648602985168085403263390164887121688280148684330349822987154174393905698857439458747409960307821986045531515648973865693010444225983909523526904703751330803567942295682576992050257011076251190422434571614752040797764352733135107907690215375614009102699203083561514317723350401409345179524317235501819010902326585838508472631443391424921000445033037170126425800028101719651174820024177902658203934520084644340728785806066301635886492607955816465578090157853724436209537590176410075482642590562847258464653730445473321768087269075866063127345265698821944452401326266016578298891150776833675255566989536086532788051204743018368961939893527515503192141129356467061407804118263293828142453888233762050953487085844921517565374205532073365025067398221811576256512567810884767636014576724798484682125752025641729692856112685887861922632024259531662271033486404626059995088935433090113705484955839866954653249228791646234808537710524161492010643132010791105734497651171351024629344468829168571467101499246332696661875695926335223278412770830034786256551967041288854601854301729942345901516974978013206299782327116865360825671397616154261631296379491503116451065552064746438950775597952879421174831047754585961065173818728579931946114010278265136564500999227076286657090231652571645593293904967342686152773439683541871981672508699524939621605714044538886233855076479204054972982546010245626962368308073009144699994036247973956400896542428934001722917524885790266784570577197216581652477118166513321017454762914781372698119095705142444048646910532124796700300827597496845940523869650060949534257214446225748872488016187090052860290445301753855764649038347065975144204294307484117564279315918930636988003572637549405753962435330385631513356357157142523591990433165958915542476233419285925038867714969935987672973128697463353361097630995165547118907823380534828656133143933899507207427237199571517912768848603980544960526567220378260059088154137975473209566820843802166772007000010091629224151618543173153376494898702969700327408208455327503559714169965732858123170154329282052388737110988334002676964803050424343116989493185598681963093973712444890883458607891404100776355360092723025377082332415184931198328732151398941418251931850235798490338940341788939729623350123155179811427290561617250754035281129891863490759034234898471900384903003370827302120416970506096985655969962021356284460777707044124798470740641574708159813661267231414089504967686494761623815609081858781443285287270024289248357811810434783738726378515611889115998582600236199324655445273849327635890641412661510321971479717868908645913769491884765394267916294499042324629493169052912862724286208985859523355548967966386630257500754495539658721702314169083369539026294733364153981549970274605178293519835235758961689877413610523264505933898099153732606898299588956400274031494608432504298053040926599928990359814437979178367126555476537737856939374802799223654283997444064990727762837743633736414638758845038760530996519885849121261494905647024444376918951624280582005597989665189472280236966595574071073040739611228545058168567975345200241393049974270512079057326209708860048770181076066368187403636115253169788409088497274903577738867374830024043429656303458095398291297868690475890557246199818663655592632856314544649133099186117943346609137691023233228628286206580462867971163748417666620039944116432664425729693072251829797945435034964016701469133124152792769110005037939640804852699916094920034943597841156532542418683956977870365815438806056239701709712592598082213821239524615841463047721953330419322559784068848389578239301202216316626022206807333118497593098673746927338722430284550346670380219259173896309984136044468672023666994627172077573007556462949328186479987790717987856720985149137116545276666308438978500247410440561330135844852259892319163710694374334699113499492827683979454416241721145193266054222202968957558561164627288473373115122449750282022969417046082847193944234161470726820722977929088878347331255468546977119948881655008372086548332591882128703595381056294215503213973100201517779034929716425171975767942493666750662041833480613625760593298013109698749992805040524518002675143296248200506406540689486157834816712294947871303599157633148819667649188453666392630373956043329689556741012588497019739567795102437568671460376593824259264383347300765324693853592126435880830951445878522093972813721685336628548670200925175399900286830697934988180618053409196308356710126071405438071419797637174431307365178785445017039858342046453855535455541170790183471240271330027090313119942993881117390713617100786236685244336694231711360677244420208766760426970147933998986795726624921160428006208100095831453147338155270876418347741346947655156307589824691348938692680969873604278980943400228659191603534658577994367659642012711428828889016597339929633273016621242426940222508211694599242442841457801849805800807407938028353287906188675102942832817890817795712541381197902520070054724144486569356543625208487572143107145766941554450690614266656902535259196159679830645241392716528761736173109106224464913577799891733608421281915822679768441019321147760174158621331308877767959881389209367466474019050907755643328808612644949603520501721245981015787629224026052628432514777077277621947495005973251561880300298902855614207530705918894525093731899112940019540177770426234787339733989801689254331895448639512192458179880190124250907645824399322165529291887122311578837880993095173245867875958495364653440318035367130511934749399640381912808606515724922919881431872718020363830301855967220298950312937310570520495784098245224207063589627798939890055035772093625189075630279112442648466247346781181581434871679144001098573199849575294624979518765423654637212904839504951690988191243199725492642165172663914581685138023347723966179680437657157023739651991481040046029359639374391305008143758601140326804674903671061212088797657901353213587209111653147183499522795167652543873606289108470829783956756657485468110465304776208066276435169160204774095936154727853887550300164048296065115377819903984018497679486338920187966309115862015675305979769584875088317767035505132229860589345493349861973219643365598966397296245039441457026004394603522130666815096456720257126391860182133587074633778350441313340750545262732166532405101089884777213527183630248768263234556306118480667756644646709211272837518890085588410262267578813138932897453311264258988824878109393290499540603498955219288102496171715809077771315223203600019296457348262192270290385054096506223653065254585962034917949128073213281222997704174621960557023934955064408946854989958528554720678232795661532439861092746670670048315862657878090142482018057203900276514150235878851222754703891417641716704171927712938732885715994281252174097382210521334386426526259472955525868831393453809617337338486409528157360168658981342459848363374560942755443948190525294933077419835704705743195342287185248870345853787485021858983472135476153313940649643226090893844218176997442221856431881620694233363439414897213871757819591119861351826215162970833283020088183131436402953770435351989553153085469768698873068524873139356938610925125673593954753566687050107663922860819727986658788349429276038864553433009993332851985013661356615341166811997036326808884194881544314737072606408478106462062562270710420968734232374173966763248549745173012867399040238542971967847996258415463838733415840332447893869790802074052989928188563990662963650397866501194318980739092971796645403107763337365388189101078396028774358557183524717872028962740591234828501021900253200940643368577552145385141800207614013082809314654293045029201193793086009145753329860763711051139428820192765544049651241236412502106639824104672166499768400085095715819849647032474343746982466264534067652612156616059908373616503010756341396926081458927245898317153365744932234837146381577420950424205038707845592492969018428086777691178392757600642832891567886403257531036398615934206010454556763647401945619588936117360032277132661424974426850627221072198333040442743555223992751204770673279316911670906879249497735824521026922442945233815753364093477540441160023641758942504403820719595632288749407536136095421847331163491361767764484343404020871663179256347867541662324347563547969361506026532734680803936239292906221172195934011924062626320163460506363877950383574675176378348241293990174120615326380834364696100900939953987521709878462409953639397199570162383035919959400532966763941578163420757576600680482197927483981255497614101156557933820116262909302824267466131619649687956011897674159284082454441001893064627462559802640063470318173166255495151649309483832488861118378976826858777649177804007966118139853732895651891797333596095300928053759278814311880651447039358950395585577201677740810385597632714131770267357168476594967573488542265621923956748117779279597445913787588450479691617002284174796766203682456590147927417297279549198927253444005442188452218805915092011801669057683794505834022439154259214079430306171480378714235239617390929742690302717679235426299467980801661907150135512015146237276655016425133495681978266223991153619304976520171257388391450055062037026396448545516975530328401442924656149550798784962189639144495086586606745911538798863699855281129716607922420797383116542926479095079216909637589399837805364179937263532492647035686323144359701188266085498201421660192441548452394170177665247105134671380630971213525614035158311308918238029103141132987639470834963304835127662519767346202624853585270268613101654785496266201237869517028900974262255427416896405250265620705242009668872664277735289352775973948010942779292669806218547515300783310355746848693993256875871530799120229217938461655665989711219795122473137359149064729573911929949877323036741470866911516034264086145015166883109453317041855647677888779246684269692010768843994559715582745752835442761494238260277128108529481239829010803351611389350300710009049130246828029221709406748404805193336888129739194399611115318858214139989417849456853463493365100167158721951850613652941110022378095411656204121041952662047402355802680224174283904465872555564820129549704504387930014808462900509479789470146476961468354832210316593661800138020906329182391710196577150318605442661633445559309308956428633004372511128960839397161278420660646276929639673684662053238631966486935172955213013957215884581934246199880620236361598752781839364027920365510111271681306740836607184001439957620885991980852720466919407975149617617246846409135741704053486776849146062139489444745744186692980105649870224012021101942354405398936542510519083713445496354720818694527659692359914842495280421965641744606578177058533623327319831260795870028500968654583170155908435352910938890834575401461125064864737805410122428789790119949271222509481627122845010009078032737590574468861863034795696703570320599646216745778424286745065940619357425810919698758007081738618112101364252024260206467052514193948778403643274624132318459652990958995738454278404794535981856282127820075286852463021406428929795195932962811149438322601059008868839466462578945608662039495086581439913985782457662518752654921565432524975125940723588665750426085586156727323212164098971211711475891554070848380982829205680097113900369983673301556428030257179314150543631565521714296222266796516152517036428281275722482061500982280076986890576333626599841891784110580892279614525088409022660789160586711707312688619529066478441938103618784018177203342028989852693053618571816197736829745029624878578535613719920614693644249012971932434526287047018844852428136808906004026073104087038427912809039498154800001688748474057264245841603143712006612407568283057130564135830851156326514925233126529235222251899405455173066239917876508363787091432197457414237289516293402240728564697161786569274896680392443959646503902895921133924729874986912097619961791453949607329997099985857469506705438743033763979815993936540323252704095563458320575812767355589195855991509984554220242211094153180052477367187627370796607851816844225261165831774116868007063453810858311180056786290745137861656076839878802239410264830070616587615793904363413478575254704805069516699041442268713010831318806219669341346402763223184174070126320694838194583486477239721119023364359749504323110761311299168144445890155129781596361834425043002367079920233526813842113223147031934699529638353011176044284019102243630889398520107791346666164197182098392639810788162677212896464720716155816237738931955675683592020009157451314869616550226860034691533107141047349414613443055035775682562186802010842805185893915692539639256156559942306361116612374588435121643956522380643250932482880539579594234164525377465252105162140650495993977811969233089336605801248104863221128981856646927039592195158202736907067712776918751165889940619226710293454583920660568575730905344448343185350042796860576841026366194195819233385103160642698723407643462408727269878790483648668375430475432827619546262729667735739295831358364595954984191209028073687758328339669001781521442114069918520248870419419861492354377546424044123815416367200041844716980270043925969202279695663751971883865710100967247261669499079066422885507662592994896971432242712575089436132053248163510239744657899580580888857691089152113345913881896013879067382289963354384535706859700648593652837031522674203678916792524940132075002640633659111194800533715138806291652005133195118566662105662965980151174863567115225435882237863065100982180575025346134663080893463247523550051440022346816263948208238864178803188005755632737185673552343360642733428299960624218010305625228304416130998961561658432081347965039613159902891129307221923314312675216936301267467672346846682156629792619156627727603206084728704257403026583296621873465797121706061090669918593171862157135751432150487346819810011438789762888815638766253213647865358673011100707237305030246908756255836604470076993303867449762890155746218700155849895369160171715908871301490312968886096552810146867404125622495379534505992647787850405184414564048294149924437225135889184258529326168969239216401627256648346119600141791342312115180480355397043554831929505988516003171105490474633625220287345825675866164036063512780484923182059799049937073349490609225218828940464104690202659169231483031498130703234076280837426424422604627661916671607852148867497186645650067804274299646178279644921805680446737530289804177690657008921432097877736661590576965049916546078536825173286368897373748790878467865770915467432000646533695955421974997422029884379705689714865670918701630162491301159625135422902062156595698210417280797496365544092738999289054103165719538257711267800601664607584128810630778931181644618572758765541997058172136264346677739482960993623081554643975156142756192846039615680807693450997724368912122073161861317691453475853589322292270680063706507772500506262618376298535553983512434250458463078314412135576495762350123737375852852278519625434597548494036006862498378572452617566173386486421175675629273189066774109666991271339295149650174505835907812277785719030582122554535413852755362640106020865312368951209046262139744111836216474023417040877556148362284196533385216622710895177977605824871070623377471058798937125456695331410794948978210540943222280502827832292775391346823914561179548542280081134152782102668636235909331387586464999280537616837832996449137723699733751552874152999059386390862249330920271025682215460425081127739460097492071116443451648809861933455782752124754913678148213584587216603633976931672748972623931305539108554830978909183834609117628841080534794695268672472004138421473366887542589683944330273329347965385206509793773542631488135964949419887901975975229470688679325809819676062004420199376133479278763655015767672598930851844664482811924746149888629529561903901955582993016979368728687315495317898545148331784988994448032282518375219355708187045638047678803919872639411366375427018320200130614067987548953497134099061168537228365318382950343878295608195499033037439454151041560189502985803705964179827930808928931599322434687443698265279607054833367654814781033004154450448698007143250285919452208212979904199780173138741833914218162581608532507498175345938672726403341503407149791818798564610647384847360468933206995333854475664677668053465992660802562521442623893017108625559003181506227524919884798017287535774723881279546494325685580824608279312429528678149996171615181452391921868351048658036581012102225174773402056331634230624896069936522902425945672958772633462564930250489474396253614765336640445518609437747961950226860784087496052590117734278485025559905017525702605039687863301736158358416182722948007120490359920521436000015903450795049986871948115645873690395343618859821891193814871527825923246328670343079336154433046382581689284678319997649647926596455625810577707152575280617240055029240877896659728831349025168959668735211804674690020937684381605172122360641822464192083514490671508668659027975539055284800206829153847966654730734167569219938390826494816533242972324820799348497294801784923266137297349745743321641174015126995409452352069534141478586642818166613125966170932800388043573025176801313266028045114825261147868628057181322258264178418664919527952233667448593680897918808624034847035916186366909499891359306423004639241433135975097152607635187937712534051854752216203265235362891807581326026380736410974280556297358105244077512779084292539983787582613926490288924828601367526362088564611907530733337031200552835846284004934622674309569993661157447974535927401786042466295434255723661706017799164635378019779228363459518909542070468334907601539305578543436092011790798930209219490983822163602338363796546722604257656126565269665638340622722765939010129857016610973537109766561824493925913528375976509351891637881407240010953760259148658002336634064875709459397786501192954432895434475381030396844260213039055657043016206820814662201478627028692034237477090591351539173168472631561702583635942728014625294341298899511880574593711167032864742610234494232326654687941215806302370209406287001132010243988207631778459569746231959263496633194597680715681661313717554211288718620165205101185733189698797241431277773517131380528633655074184325013525064056759782446175522669343068523218413373652113715897056669902993793152867336532818046086407992179036976408640905487358984579766029883975328664537613321274641076251423137501444332435471107540586080760036974846566707686867665979424939980735517812232175181814108042078012495674622101255229172643783933472617556907808871124599280663896088025546535767289834741665831054137258854506051076421451507946241413724864349627415842300116193378420709188568289149770949804284091012206151492619558034421726813115159513253831353921833817689588247143864760602836665625188869047652032577081486979455352939337806975829242392910976729566805339748516382366307244807960702088638310108151494862573538436254630808118188544476543517089018142787126621008489365547068891436045172447383520630314006947880485503634775235433517618384876711791734582650027026501833749782006749006126254239418645072204920231205871046712515034449198603720474201056327721203359441578828325692799582478518868050923554981149141546126505864742792164234738872768722552350559655160481048501795308214998283068538537252969036441761219162663391384681811125944494954082086017718761119047479797648684885768665908555546714958184994079178148367490700519235690412941888171171315796462002585977433261104638423863884217221077014282677371918679818781822052245261714702306098065246866598300455882736859234061207602089644545614744536341000004622417769174672585270355176798281827717660328321786636236547515864202340193023596376626300093974067185982358918038300795213845005608878688106506319331818186545324363981410054152044345930637739802282371634239037238421578463665704400491019244751787181931998445199587366369454228470021405463353874709383802371094846418055459063289416122547167860910033135935355818975581533008573914032276487452988152547076658568126011517620603041036053862654246030565126884968001473353220352806788875026188586915955295723891822202410964323910048749651593372186532361840354226318496680969763908026302019782786447556255692526820587396033470697798229807583899677150912687841671090720825103318796589617934553765298861854478090743695669117918661081833360324394984669259541742272808835901860750760576902088637297050988309344676535121364425958744785683870536631470653236450446564674865603790731831767059811308536916462907410628180144233090556529328494267168084850744909560080413782203156037766899551626856250592100127501808987573293508201875591394884946778126298559786380472797715155566821225341452994287706647381538184878160583247944122813685429580804410080879833818471738292098670788037492805392193215071259607287451470518875565784966722055614908128255311183517384931489051520301535434725342558478972806301463654826650825263875171262054438703902627272267974275916821659727965860904753941066976806513346506183212132019555004065151006472779349066659718611574735928181419670166919736936173745838292264914466593259103099210330711323325664918787015201510076757510666703733360179844588114698582909552404381056975374747548983181220692833766126427777084972949545698323603231597324022448145720608263021439883712512497904339845799463888891733895722136186585757439467012106583664828593705516217609731885317550405596544962145388290185817254809845855731252648664088895782997130472837965027649340386540011165691574622004669559690371792309565156412806746700497606072097390353038339974700770150494781397333412634487307347989684555210623567903167887320825354287578442505376033643311114843614579328900730399159430601011196882193887111612150477079788185496310501365257956130351989659938431789864474545325875523032871649830153795513428926948178864136245414084337566593297504871303399394503896326859113547666416088763617661743666371368392230160825066847898241230694631136174192375182984271506616460997880434628051287195123162693973967910450973905564831551328471975770607605629086226593559802397680275312331978138271481427718103126020800992028110447573654513410077051709977584359526369262594584143698937656116265180961278247653789798170347844135800918859300156008855474568415874407948357921895310994045266978433477701001740128065384623159781647211798331910031814101562408087658890469907243493060274443658315466581065449267853386105603647128559576336907998846754155271316596400479610997525136839816860508586535063476451786165854719279584826154614957194987999158439578734507825179473186094493815426395473664418585557236074588271242981769482028161484483418093663249136518888082418702772618744705078533157478310033279981555150298435316816297512212558556399538822697782817306904708572900086994108228634124270789445786368956468706689252515779545672443541688989800313950910691016231944047572107488160154642824622758852183914309733461057026168917096481266155524136422179157086109544492817048151749519121114272961783804914548363817268373356008804011744760634323152875301699932104699395479889888317824069393947872085251358286050020780437905332399014152441042434181526442026090286848091559874557964727686507404497858643110227100542118729781723648920486557894655733620417256362001600610409873387609804437865114881305064280516570989753487259371943180927708540157117561805146493299941930009363747402984577717830921079417285723349218731600480698170321843043509739423328544008736572900490035240262070971291242490034960746705297783870997432890138584988330532856470425838877371503074815403012908892696337641671474224882098654284575558139486252063262516370445738473959202821913588152137128237571623531268552765145402275401660099231331908720640990582286653047621149269271235148483820897077730895591752314637584170107798818572075960622313644184788075213239769314717517529452930201550491153998467781925506893423956959791989805555440939724463296995453733538947456478242580302879776398156370605197784496579051556304810978476746081654680838709500125551048595321271525469879083232368204552413455428560049412225747107961486312492883909250486941223863570541924327351377554865698602133442599176691941771604298549498555570315423998916750775150646968846080239564949520420626678875103539645574898154230358507308866110411139414187193620789426007168165315826474469922235677230369840834348623821565674815008426896193007966674849963911562222926955293769734720072557596213819329418849575714722066676399412579222971386881704233499218111274393577246485091523936977629759686241166891295646424890219900301094258709064349233789637275042867294576458839282370867027934714555363666517233071294808814662041629834691934670838055038507979923437070957331680667517557063693268309149701875164681409903667225931513714989776849688096489746438397345765683958538547139437384930244083259810795418251810569070449422971553452308171962849811478420943305769115539805835988890832146143213630954516275473369004268138628068552551188854519098345771062239792942026789933484821733459355231539606946925143694407949181503196436621466830851043921970625183424399952129262509437586895314685308318541801772672086400991428981157346766140804122878686448674213078169640786473160087154152572583217062839327775887053650869733096190735398567365438644258785790146278543181702494190346721773177485504579969611215775681169039821523264683288420797329368646498919272927088721564284029106648983277565572462499004223340746623779360511211926190465155431887980160867701119211127931423118814847735148836271096000496212935233895802637962206845561894560431095660858394712103699758452806322081808220685599205351118736533061712103733598925436151242880189268485244062654505018384290375333948668980428200136034604359441662248628418527488921049433049127041967933109061838451702542609562562554078200489399000865713115101815111500115900576343666404227907468115201291013842646145507982512372191544385677045997200593684638455077101414261264271926731675860784756748301268721314619737257716042445682801265784040199525100945969556295853467736383162710421051746829884043041680987965871328070466100468863988568910662641621873754530467981542057280305006801524943281007059527304026047823824760109508308389941956271042398454404135490730968285647294052966830232885724329293487448850749981687571791731906253811195078470428392952563107350480054145921199349144909172353133008979530888155372114743381627431441194651034597979290988169582067123805949942861485613571676876053855843991677052889682736333409594348064610681828644072826537960891376204941752147674662652628007544262598891302448145907981010580509687568028445751278429385897748244324195706367867122213803207816866905676459950857733963270664132821535027155452890073339803841657115865546506415884082325630319737031375672643481284114143694472913674623415132465868231131626165971984856349742795289542428799977301679133108836222436300181689018953075517569728007390622053008354135285495968693025849270780726987806710207660915430918133366458061139520544418079164998275817843370396569476990407835100341843419668397550126770659282052413651340523780118068944119012992490896457200237190128490653225487515878659932626088538312931880902999440326668379433668024663302363615730732968906702004312894044626581919184115365662478070460525344512239377367832108081908798731445427647608112630604620582413459563259426760441666286277205274939920164674490267133129640600056762196739470036006022336296061527781775894928143919150293136405594413461241041179666056183134151492524573194691534053691744485864611498615896182192087690950061605054371180527338074454214853103565646860305616567522156788673878898982902319715772043921868361814531304851566524990726310036153755884225586070916580291812276414380695437554328044961377552714972615276528614469578775272660330935288971229292323566737270616947622085180121958595201002969450731023167757392506987124017327445961695858207748721046787841478122373134538168695406732652078358184157128908563432327321306842568592583099175553346400611466339282373170481478961226530900443224462492011377723809582235723602994532903855570235562498196618524475225674905409208468476414891151072382281866934050893582028910196789414327053847441816176537507928708734110347054241994044256503992890127855124662683969684617982892009450311804927786825123337650354834448558054463824332805071335822537851986190249503873982728813509225307667954159248736635480647596368955670264842027630433547857999317846283123593532558125017204058886669176944212402666971158491540308068385669881018342723040341890390289102786373592435525691451529560793496805232357383875732426240594245310594897693986568754020769132895112209242248449015315986693897967900179587754819114299752537553657416253021464338644860799076411368365788043328409744090898407878020006789687370023547411037690814950906960660292805542038224746838865697599419837506755401280692277872256789586290284685648675245007787671656976282075466245524611835089612545822355486080763150125440558209568847221695826816800613687395370070909159989774847541470810018533570124677623800303947563464929609759135957655428940741010432452066394758193854540108685215662150823366540688797565154316018945622390646169653678856490387784204109382484638869419173080823423420335358868391606378400299848047171013065728987080497538920075861694344758429583882087313966234030241623427253034734340002164745757128681335191896762851325357656722246953798346501155210382599642216169429859142485287148533157447929931322077149749769832619452190226901086449057210479782411843278602037300683376960175280848203319262585536096957358323046668360689765618940195620761593243817993849426642823207247574315482250985410264865849269726307346597743121334160315409998320579337032848868803671763922337005847232613764955895021324921132152631057620915497004587782203765722164899037070237467809464006289288285031598785043360452560010955801652334101247628751432696510748481542619165976196656011439175698022709116012666348261024727736080032043910979535202451000679804610013051717229302075951774671816529510679067847376648592238682160541491700245379509848787600336009779502169076164264104034169304186007231824275002622755345269722670187290203496344303904581937030428538860084526261732109049634913310988216786098095449252798004607594088828506161726845443926471900112766925328114533212020286268619557838032094203034104900064556595733893135383876063770401310967828191731351050514620950715089794159740689085785287716661953027312289604093318272436520904088263273026015450069725211264649980998122686468848456188704616106322731153890900615336009480060086287671359672189782516755029601159040486720855353315484671536865050555903100693662585658826616753814599744000575761600595721612257698702898130558563286076366104843928693527677422437931574679842794560699579133401876436172948412740597652979951894661929203749050765275864637140724325182378108010429762641086326283750280347344018272055562588479466253430776065574969736564298726544531345391443648089218904557044629948367847305264493773704496184778722292202546055048275593073054055502270931054633441904160730047021891474135518759031697091108926840561507118392913835132525438417625705022920194869144031192391165033455669182625881199244660259403173123916457427044014724273751121445492133213506366529607786074759246993261186407935317024968397919727058084469649941240319007383338365562679390709412888903875341557743312064894686780591308947450773240659519407040216690132758006553937959569998491779715541617699833846006940744528509209059439230629939074640919525499377780047637758173123757138826013120814847352368419616679913667728951706524393274182456781919225562629499327048982288181839923829703527890688683550200640679372470371814700785943426604424237606341237257780121272502658172972497129587640217247418719934395178872605850340840537526936392336942770451153593443003131165847133308256681916694113990214002241413505980581002356246024512703915018468538673946604254725977620121816393748366269399748489379522773964655810113347077081269931708445576509416650207727959756875511757921661364799181633749487128723592000488108626856883043292323595861979584844468623169693838945190874822836316739829062453324531943916587637632141516079072523116954705430638538890882944863728821968660268997472221821418908577983716629143795152903545349974096687768890303571264567294154983357070767250984273172943323412479961378882495130167483496357113945526157196029990438146421750887582818308699776152780558876427151042515437149607528307603436401309050615407027482060103534937583895289757359475239195440723380864985751377825142801859817141456943078410317310149575009449627325762966054454819869801580595482676293473817558896070822705062034527731181921888037005207518496707035439677386198328949056652151143592667029318881590527283216954277623670077621518466321068884719598194240253384719467277194224861627476919995029517083408786925878594581124654390163193518645178080536636600512689446365654578016095808881359536095263261345823878358196964272383994581488379939842395779711822672091891505940066213484342949040349424231132222917739963999336055237858457399711058445883390554901124233448916318727299879067955378406520998944047032003784232467553155901353541188645787901989741082045108073723713825336843507226433111636111239468541747692147758836753017058797961052765567102391463925807206551476203686073848550288943583950601776750341673985828531558939082605616836684513679893011366209250084049503908744421538641861571443061060158293715207199186245546896306112001985120000399035003246269725384102764229932947325721117043440333739378684217087705043813830584256662070300022552642666284478268017436776132376376314312105815336901516756485102584257998806128592324114220244270865501968576944430526163351324295879549091161393260194711055531430710869743275377623720992493185284658897679281451553913669382246661163172222392823691960116563404469634744388176001945466608104381646374969995563927898167092217086508866208655269996821989322157049380277654837558457135994576443201849497883266756621253937005617391374722550264419883756267001908928428226098314962143461343438077137061620806793777708441379137424368664828538535550978073758715762844346928580727768778460999162035279497087515533287341450191209078527365805581787041512552543441013391283054864692007606986310877177719073255988649728592935514803863459148965987934768387320152348463576266870706249060902827921561227383426604536827905038372131021324969235625338085746956073184978130877447209223811105382556572971124495027692580293766464247281111194849987478618609138912448152560361706730452534127313089558237986760940072458558312656193962910177639587284509885764651965095798097526620817247561267443138882812224486574501620590400845841551462514702927119840099063647535759607256027450291535131594084828352827779191750287204808249606894303391288514903252958668787261342646569150639378473680540003630557009961635884796726252464006719392652269071981995960085809696362658790989657838585495320435738761903840059222785859004305258489615562104427845865520658502187960233770444520522591333914699417852225879007279124410825711297445611068689636424654557790052240385228977932384165694061096194246730236414266779660179016213290453755922126847546411439476587234822249087083619660049958766671475970314370354356983913102805672963239000934580981420641735852242294476749384211850162752668434181698818094210012970652919008162184125625479665925490446421029272167218175321339420066647985767447172416847589514343641056194226374291261700845442869826221270271491516568294121477377547324655412311266810797689633414500522832517399859828559011830385332955912510477049988489024646502583024983980172780379879600325414048948208652266176344728222021142253150266157889729752362085845872161826499090842444411723091560360083403091622968242639693989858636912714949397835160745145540462191537633970531539080874990509785057039170584904934499118769136800595713965058087633782359705245323995201748864544610541769455384357196953495843000651148442142303863191651738662295067169836249071754777853758678762387076903128431389885716925798834807803896852669350906256627145309121201405623951750718620896724331401902729631664413317229713685042448286249844949610602283189362012263880839019268864901270048666654985098348009002115871306652233291260740523711648566117037573631605345896832611514111766826463734453700217458995179088004757973844914713774582582242558959626534428302330976567257069733448060918983399702986660085888245423603226703533864150887441205902456565834490991883388487515265648871865787877933019115945810398767539535810287788608286643005937580463766924932189774168701531203669853635588320210101677382344719479391451836534445486812907734577349838089086454644042979992403877713545944250295954465596765531268710970929991485839348714410884586548974290553413668933748736395621866528193922933900591961755387908362374971585723273014102605459586292175240329345084487346228783290931633328515924883487198184867170824713217284828214066751497754307769558621122183799106323348698613245045658118674740166265801798378042336146696547265059661109677717251644640403164783850596775900938448138412429834727644276842603519535273760692452049625385156457283880510649685493762401086954816454250353484509316246130511223192741219881312046111061061310583136433818936991880455509796927853654190490828054215797513701650664264232538345776698409458348619986309669168836817003329943153405383619108645812254281846060348074035602056098118598660694642099614928699568150185687670902295691897828479467239762749386704908687604173910985406277199936650117433971174819618866428210537202014459282455990933664825482404937719445407231906267058635028485249749616437922491184451588667351663765232914879074727826029046695210115879783881358572401962698861906813857873294656327275403923997954719513066724581985336700597978298856827381502325034431265092043568099213804556368389386709049503872561809550342889841464357908873123438169341012322918131257350832397598872052133975496087598233238297229221418730828957272065059170963718089867085592764817310886545359148863966309411088239759886838745499535853730304180225133930714678046817859096500487276712212629725266848733904652882283546841226542532145804529891664451608135189501032173868598178957488979095849968629502096455040782478140807455004376137024567201672491023154045893779740825975957925935800479891016688452917777653867757875309720612742321601893061935805066432133136834053500989728287092787582251296614692347177306844891123614262971715458084001685228712731751103317299452175500876509055144978657562932329513766095315814597035517624075887899481633815180673526634134191553203361378651518223496858940818840558916313887407542659945239192856006537634422325855135322655848418799759619508162366849317507848353334078972011608261293097812864006248584257651226665520235997348608076408784332580401589868596398483376775341407364499479546146377543510669977244326477924750655364928097627003072809368468627071900648869716148410262456761769287033575290087310336381348081568073434974006882962216822684916374929871190949164898550876924148653972143754406893088891681221799371665887295182301589066925510317349163995525548889205138548237099315835934999346199182035409585225034619186008496310732764412572060072082514207902001658703029506110292932894350630934369835017093182418622828383218575556778121078454530510991176833826137635833169377644159682249752017078183157685907449667911387257906118400600002561291188473819407475211297123864207213167189642778677491504165067617642734314679417978236443120877960352088422596614935371330604312070968068209729597880877095882670721900814272031552704249537564093985650642914648957176876506360628848439197103636775717341379399968137312597268715321326918125535023725781341563509472044617805770823351349853017005801950406441527215786181727216405586132000796547919009923728729558301687002299721632196989189298516599419757287947419751409999571179731268617467374479524591782647777903673154275760075958925639325697996890698782830359393290431472173963861501735101308369632710412493790044541078155572080959978458106045371993260815325641184414259946084088232499992113503232708478062693173506940990779713694757823128463595668227075850758277812748670857212926882193105015436877643901512983986264313258131032294251479075135571157904367323495694968658410529218903847916107214216004110757060957234773543737059381819109940335908812397907228804189989671563827819667018592062016392023216495617869081143619976289893369490102613904403051530193942768246185111178822230240307201630109587264018300164659811721627234768671568887120113034346532269434043107261613664862214739529242494376257111259048889109924833299685807166566675442245625675509350048650029268228009895311046352103939832553469292319704336311346487341564269301909069005448326192284013468379582885443951436094109430440457956934340079956505061129183589086389838213327698174039958390135434211707778818975275567474660556426590080509385999183921254392055239142484235490351488823500451576008606742237331189954387145528410358804981848686654699487779874151504377974653500597597665275321069906470556202588081755725507071490817533176416154466409441858248905737754827598185752528707978117211744964080742546526186907139546287058675341801397638704376283766153964559391593888260510443961160512429404905548064530909170002726819187843257654191462011824935519844073528705911809570729208114691107076295737163885794768210037627196411866318042409805833440492695468336544257387434359992916730885414434778389456272544517848574302063119527498900225646834753143262572628460463044115733333827457819919642930997145755188631457613281872853515273780855461734518955052993130367853779039868305273463281796103028823329838107018674454021489712387545882417118098990881329807313487566960582066096731934518367799911134354462707069068724866339529844114121137608056209992239361015070633108642845159899738946367188602493485952076056678468369910941543871840646039538050555398096370298005434178418931604764111440879527292313074923557859581988455207034571493859507895101750230553025614209112864003144874893461582134192697748669761854773767694427058458696846202856704450720636568633310139952525100608007081783581541530732033661467956052543840846023276003047038790002307584696953911343226185063873068970881728409102937549415553026504601947301637081283283166665396574203036324772128749335313080581417565028726102915523138607290951460320955044318521873944685481014764150929639903593132873203710536027360131975886040697552191630307703437921878230482837199007868560806228959844006880043395548869371231009110671230926064623669566678431223232279307685682647415350834803388394329414632417325531078044861117802968041908642947940905616923306240533308647466535218808372037363206812043240281212214986037713564777390018524346526758263803687295453530114194756056012528642614098614790956043241898558355058356188769472616238048864090991012339659348728606840616154683299309646169905704613839928697552096056430421622315564755554994031395340719295229137149728324763808256143269700972223370783361419022638062956798558741086340238731534309659541769922608093327470113750243644730868710506724243576744655268123503915166516228982448424900567383643461635691426455932572174985594382916036974110588314633895948238574618458360621763300087952452588117019598872864400465901350602462008354579044590149939024531961514402072154704759774239371333949902308761071885666896560998238372709247400582694119072691875454800151957213231004397273658750978930840578348407280020444443651332185560448495073976684161265663388482232259533141429139776505222150897080346568328362066631839151529936023491611814828066589201359056183214337802421084870070590431422774955302623881061618881838083948272199712173497385961462874180753716359816956390889980799037105772088560909117792632406270138205079453983242460472872392731889580349372303653787384235531944748016609548431342451255700554027416998963281122574064662774444393862293087943562923123302789999543341001959198063553836159526090434106411766400442441247910060933796259949549824611396440729315796242731795952034599698351133374261436977148022362274551182315893627807697819131679695594651848416444887192117853319520714347232727119765942473135775814928195367491444059354330439287807642924952384664053942501544653628661460715424880075169656172180803078865358040143078575354823949767208599746513354797030804793303701190846131809896208590315491381616866849065240918954710084362872182794706638921084825514696394298310980190019679005503174788688980328216506924912354672150525191847179976320457012700890190668651233070103474205631069882617195867446350950308967061513953773513017603578111933180991958737678635732310658872773651509206441505029550420563508110558992658783742362749116045711206444793456645332923103532248392598458594788171176868900540410735144774176376468961600009719847653420257528872679012409942948417874342032503544188898175399756602201505914740314287128884388767721708263240765856758677631713546980347542074499769363176960606893951386045848969897354013665171368946195691185284065420649888596778616816956490063225901961820070415686217174430662026178750008246511271621572117540105652825789318292527358044006653699861935720027079069675239854381883831511035149202310878917314442913228875049583951391410979894353777007223905143924444676322127727679398860432263307206513840925081542734075105592960264978507051225186250539182360820011065366795313621221218277044717347070774741761552107842023996339185686528696517267240131013710111199318909079628045737452204979835932133132701232265468506800572648376530015517258779265041680181382181695914220974148654902281377681073183371781449575395026035113189520016397484249412972495154869093804679943524683977828688479831698290613999523783639718764687500982770555380185984370215599720733770385896399572193125702883676489688375302010987105416592014788035994348215108043224143525921593477234031304188049937138942629693117766964893137536862303428714157337908004843411514672507422453016771888454713916046459021258297886068144599880324438061715705735415059666489946127449802621217214198939819393573510526716484563425165806696172844232093617913549681133061623822160536760190314307839213732270392465160208342005700534277305891374090163841590672135605453718811991270136566414802111610100822760156351594716262532551138856362386269907067493075928684144160239221784942017359973056481776500055359243345295147655946398620644929429883746655379399472745928485430436845369961460714187214524675960953813297459092957709528381039713428194090496396796822221742388457145508544167874417458749040738663296180651784975616493107781613333565809437051091191278683859360367719120675285934339042794113220445834662765040493130992237119014159689204707274178031373354174645566952105332517154151866464134294489022165013351837255255471922636547284888751757569103248479808801489848981620490197040028735811515186362624317066707571305452700846382297509808392319062148888906813745006612862188532509271269591417626258890201885859059922531363528450146899803127923572493494871765030335166151736355715784874307441755359434443736333688470095816688907690995331227258808838361311703283315253477386826420483769428895036278278223608212887233891766680987384173782685938591860382772570017769825866552121153761125664916539591208041973809523241474423655206227526057202334048602934234415076510831919391992402981699815565504155234255808066454033323081620593282419497968704107169041296954778476530664755230052148747907133410910305934340430361652277693997020948282426842888425496384938382196554540106488472567752707361415966032906068317778287282534857659654985267767122249314700392604297262641915838973371152381927072323298179469000888350083188702130981968589317159057335072284223289039143699916869854200724027709378234359224517378853567612501970270225482960031373751494738854383566754426178960274520311945852065580216056256660132016712822603385004662234315450028678062465080531480750983000884653991060287262453853034200234875338869774761441364563129135714640579101220610495723606224903196949902671076836846015628201100254475151159109894853812575571440127705111261079518914342294250463532294112939444735451521173804468206782793294078502557543651348435461305400920546707405538703973119348326575341075626150970416591694856147865167910215095256414038235876301606721733947074264389888707184447053896376453890868799243348228247296349364611668364988795713483098279718351147861928468226295058031424148905971555327926385221930770674114168205233572336188968531037218148102279335067044310154471972637488950411925527658044991591063284789237115668903564169211988250944949692719577706852355721188379478019877577116576547871905616102083026726663841379039292590566634792272554972340306450262678974676572178070480025497509276030615554296516141404048180327674131383568085360377110801557497402361958427620808362087367991371163455090233622165868051626254670782186648370884355274125498266710002398447599002022107341922274774602424715029528596112769079490564278008732846003737529029245251902605367243228671465301001814702436850918025745706021404843540961314625921156692085005069845020370118863921428530290048568982620050713868246749519942667386973037916591632761171538432245536888616550476108279297888401645666914418022231151703425515667709746476961510965215408861838788656806033182100624081975067576460365182795599409064936067036620395622774277657264405953509685230939979945052368005367903348706076205766694328876524585502370490568729434926325514348475375274675439450454464300259738505260425483156809348556028316726723078356071039089929569908047371495367670722638539223901606295885910299339293999803782352001375686196180404283562102741848618558230054860256767569144626133167901647305486700258715255775863298662718222794256835849372746085071262989670988307515863728149153389049549729692539355768276810050368855797811922050881410384065535268572414947187514411015164779166013678292625706495032923422398065909786789594813892754323345713357472626060324503746537446855997616670355606906045987746220593851825846917352709981025266120905452918308729365455883267478626994028056324446430507166903516241558583049246283720918540954406301760136618088289093170259210864469098972237678439229078692869980054387670285431444771092565155487215474507617289136820663685470556475023972783165495433954546729754379902452074076557718105163137441303584861057289385655508693137681864460226667941768523139965105199295554175222959004159996293641565007495467156798181497667962207234757757832485529099585869370116907111185684643901518660652906652661679447293003415809735098206642855198048298460738519767292748575859370848309436544476963250082912671982617876305655914006161513779744621422746433470043816581938426128873866972768170558154600967146337107766098785101508752075247206066348908385912870299321553026576833302406625690490205699454567636235609065265127101289238977569296542748077559966035476271535690001329210039358405288888242125894242355372644462263878711830872870849984976116127485327097450142010456304428150350713483182595375675918817066668749020682585042786236496392139280650139750258540267872482822681694890921173521189970432464504111461916616434693872252514089530798143811838499763133142938519301204802257919239086945404872285686626131353822745287208831010877488370137308463615660244678690109772848297837323925782121648043723212035998126405790850975723497011210405939017000266354178483673751024732900446263016241607688203180551654802874112858652880767031421733862418210119488182683414822971576128015229604482992268671334194780455744704942181341276032763257322412717741601792175921393261061394032135797203590498893781622077567520489804638199352524448996074158271763886120707794067472249925824951929534056252390104417131489448443679865200228902748572097502332054623280835602882146306111167224147836359512549264680122870416959053151399655533242417487786037626129492801946973892712373273298208133146849471357426211262676031407529615642199974401120565580308808438321000176628798972593857701739755817644944462617912116681360946062384944159057717877531787426599397848815027446321233575767434102713700656312085564076175990053207969787456238543201008787846102750591304657035336535514540938903863373686081071769695011995343099521914387641421059307785729153796755103650003760022973372996656065562315765707068210394445497215159616492500628209417182016250428418747321907967388820618481183782680516808493079143203496695916278898941142034573184651315329759504734721190450981374187232113440084004859693395014391703562507258904938284723749727073040073093806199067366761916289579417149714270328915322091453766311451395305871669960127726843397343360917362152264036240721683237691896517462247250373296803659131217213076322025428959706694118049673665641758114206436029199057756256555808020246655161957830944516661929275937996776052307687230701171649532513097835607292936317086628508675659846027055571908781248963386513119035718542281873489981744911010577044323727561515338554023528795768196445700959032056735639267144872183826026575929081224408714664989709221245285992752118393505323338021209512697950094826268647205317110158566461374454546337214598318169442717303779572329060529501008289177845146888105609782881689692596309195225478246947549566113478726739024654304777036383677921274111086860502319991050327682657287424613714718297688327626677404367956369201951072581877067690199449229641762118140229710660144824015343214708017733637902636599418089455042887790882305331753179908619989100471136910607513034597175978096184310964134583414884859651531979741320694507432923997696690417067210321503915822480811452441124398043811989480628818730320394714523789961483317592279893202914151571585314793438680384823223670387121971469989417892310499953335180643532761464731329004448171632214040560784045253382119326156828868168126779172350256603033807859496410699706634327576097891883236028360273032199706701946902286685584353118859743301152965118309734784435760606495277109662466226910503607034914652833847553086880801690800807741712578608574297561404940015429707165512323881140636840762569369122947652025312151069830272456467078287780347527407946409100528061356119920216758133411404762077114687221351307527697862095603587560976780747268882177091643342092617156144397767709296055302846207467948404948067790902302182911101969030667760148311966777523663643452420278633396210051928784770073987645081780097105319586807577215688137419648847446778956515241587686779353100437230452945808928999062377033884388159262677515148554443708620618586082589974475626109303308525985791097225999315716227595901970472289541661564964282326521464977158709834667345764160951669282259006741132239068480803095090643196762766440863435428965995806829670986722019032857244185153893420362052330873958194460676937396393668308981143559633198939503500023499534729062198337792560212170904334411017649383001852914545389846635184369479358019590366757137363202180356221030538026490717835597599475961909654984238597638653646953090207219003025084865342511151472987125986382837439659376950062897822423758363926852287622577188349534687905923462719697460397673436681404920419350461755695705022429109152209372205555972227940820060236656193604571123743210375315510647329814452279884615140198861458246553220761615092377944165554249643804044236016222366879683472043214168385483659488784974728003639383828930025781843144034662525874251182846934111035334812812642293416815281343476651724747855789479106226558385692608695084506333445219967883502049768101253247882674818826132898339674885004787878635594788190751767575605725962014887889710278112406823713424229009946192594539547025688677127618396121125139795212756759922870618843202040169948842195453799472116770451845203322389346756512268759901722467611576099948170138021648525277667599901782406742335382664805548300404400169232381283579396771728357179480449290612435881474059525860867168095095715826788442333503683033509743506848806118681316745946388452931761886029291094441326591090684936854577116760835481905970123533725349255158989759016744206199408000459121615136137728301800562617118754212502812430987029219725430951998700548179081372853542232367117538379628404344343512420394336364674943915895858898994646543151185422463459029125440877342708560084606169153943224998070062025204801562794778023281222643810564986385860369236380455153547683676304346226743532558147796946811326732651937522056697177869373892473284595558837674084353438431935106865054111001815189700551533988569614246938083979308515838233695934108236994899568113261734038318756062676313983167494256624590954789425359098013660402813820181330808776471007317833289554699525858656655754148551985775829223993866974732672581412362893179004905536150817622227788657223647501737103503397681564919754171795859918385140690802375184938291758643525023173595695295296566431883496906493605473670401797928314194499489995372629119172893823633490440500400479926296502604575343337977974811297238220227545417408382577977390632932657421753392798252440107186107467441005433280243218535925328487414389694351972058063332168984021080587074079546159088398932767318469077513592860501251949679178105290093645405042756681328911113722986477915285044495058312836356244428249287232439164969125727662382778972463738492017748240295520886177614092952977494882910330696493358375460649833815404387062236039025563233454060944614030557924422014971543737346875926904896875794583287283676640052186933689872452827657637941394633233856635122082898027271486442499050904829784929435775940843397854476367391880476894446393598079192902536587855568775063163945644854930955351140840410924991782133295008884162017582219002074207554523330837766556690013991878846697271703385205642556728404558231432647336553104096461254719400167119975599295535416369108022849443742002392346321717249633148506704465855531605341989382715093205069101629310327830228985443169972932926715160308987652465590122334866001646981077929608614341104101353786524929938671396617682740179476783765911335853821314759878014136924569347247988553331464777543756944017871701784699057853412509648169085579000332309960533522598269821966363556153516440490769647784942974788101549794124331334380681796911284451800852299250076726155558451823786622912687587989809713111203451992712365649424254788477783960332746234657572169372046875270235329265853759179947066860685825752533509813547925201001604723829166746123273183008343074806264930768782588483189526962147451956769039589408829882065537255629768406181245035921077625986135589319021641245198363188981234238619703116711725612987610182234310560280349855888566234821434651187666270061806317004665067458843943442873621643255542909660142678364055136027780142174841760810514033158953650353572873401550944011362586571233288421224582645210964645463756631871324750218376053951163590043430722557397561178020534826841217616112850796664166644879163757525847258438020179196955350756381242610120117186989510916320694888685324184015453078255461503779432441180613584187438280608112054139119313573085066138014265852795164272732815668255871901572933698685313768229209719435700772350490891546249271199394730480556344601792227387829441639092041852864664823069227084678879515574106432356820894927692955585216019501857194345820408463577424349969397941580980799843600743920561124091383657393480665354579973121021176827483701316548208876105805910468374201561810740904096584654617942591335961719307077479881903408735865752680104301285107386938568910661229615604837489279220268070698824549499204604121896298849318864042358732752599980944362349844501188917997455919890875845635988767942143083672837440063936910045351385054126131148316325445503930001369112812056837727611606431982458120720579330372964640406457801577758334369219018342951835812197191983905428864159163977538299263018693753202659362797171107437606892271057377162610785253525632997309248651517643636040901703477342223723437303414436279539715841233596792961092314377806664938648889811314324151670004244506981295248903552542615725036825444422928155594968790350101095033769623494552227807923830415119076847554216941551445886090482178473674239681191693797354372966305553446570519710272575009327017223632945327614473160863366913936793160970846918339822684542299121943061394980273549519147019966108066914504730342099028162671707891197531759435413356354377790244255079274521296565413325787868611770890487471511458648748876487025272237059657392818621306920645975601663690132200636608337033061252722097473485470825711327428738891106276765693195935577825822301285817247326708976437909101754300082466463779184355331940515516596539888111885172912349869964947831646415924676302209660876544520073535748889502915680733930540090719437613220978493423239773791542803916320992632345768379057712055720188613874774326290805631223856713885804242581703979702326789861155301473123645586212163820219430686248397534078425888841525983241049400116165446865724977423736253452845462405287500863807853702997895109204265241956934968503760344002606005218427095529372130777114581287848293521011103524698652742646847712024671991699524750590104713938627894886835524579522736303979856569371929163455660100911073245331360395310457811538882796727246272614190284595350075316399599115287289404436384698292473339599570072698056292717277297111064608621716560663640040578056154747645836622807372997008082305585359646172386925973295335303262704699379950813088650654002812197670891306985277547489369704155838109765688521263392355963250614364794376138739895978624547439870297298235331655182951024237233548364409229590259876212494250588316921533582013409884432003983091380427060663000463233798694716428805616154302023584858893516970578691121275118739745114483365749602764248999531205233290370729776531412382048629047554066867629023085545536160958645846175898649933734306308214688550269565719185413536271336706662843360262168677972597202896570173034797313063563935305443670931446176204753812993083977430670303777563429269381853109998685379384027484547680871931491381791739619104045005699787010733690461221433098497180586009228897161117931274691827121130527184955172682731065578271297786873672166858195214083178521121776228296277549578396498408228101249471654158684189691210883778732430069871879139881052064522908426025569827003535044175514201988435615391104711306555835052608854051864083423743486119271410958511909721293348684716214331194095127359206276966920202094961246416627716950215695099963231709021751219295662895641890077373952833793695494376608424805419554334342994847619198168872897509663563346432656999671656398150204702995404586900852102718057117923314955490011047382524357928203044879592485924230857680827262544901751048671172882765706755722392860043130784189976327742571839579199146168141109153695872693114786033682879835155165193491143213775741607451836061812917356336119612244436542995894991219511649527198364509639381455291679534706920626916164109352193712947088924850585431575374991971971039653066792696615209157218033097324436423455499068078290005567727712553463413819951476106076815465718172161418180640099446488510349734685633878929897646210696937689984325362461532885510777640440792409419147870875384919620156925312679676997964006321959092185866924698356107905869107013682509716718954610268936961910786363118837699040609874413900105578186899855162202538298034879681545512758375189470952376195512158353252547955827315785472803780051915156926792469671154538643766173344191741801587499550286943117077678725614170695439625957981885813191538622820033358730849825856997195735749860648722797959560034781866658782813302705194848762135005244234514045988600783558383914443215760440943644311654983758298548155166479328636381167868955015599645688748350698243664336271555746853289546607459428583225974245534616912698158255184524397920620296496497627469530614787428091733415190027924916672659641332212342662070349529746950685169022416343056598926478430140496539520482081914015470994816445801143796733992489222132216789069235624096234142845761708070539918643462437331522195440282097571639580521803499843354437591797416258808193444453489530610837176248900842723958279521061929831140641022964271179303078385303833578551751826389374186661603704446642828036495882808611130951737780261411700975449714172205758360792858188281404759614593448024140098405848791190423808982127463466588223805871188946634377522856588989783958661316070085143285081494479722286801030930785112669371018496958337926650928823980403786483611500109753013869116045266377651037483394235814221145793706460875281269323425586226797149252833475257384680699289102226929775314838334253709692948575331120892786487082493281844159378238198069020302542435153080820620821560007968591005122851789209877822315296174873429992707504197515499637102714778857393573362810173460829996296774537239953013587150625383300257357438616333935724155377138849906151947022025430753730160536221151229645544335860360203543416140912258359665169323063931417608129002418916011918806221281776224338964562537809756559222742864899820330620172955714285319802201507776372915021906632040001416512837700422679563658604542469506227792818095445648831989152292891604055583177064035975021683242333471924952585628063610152426298947897689958306765842345097789060446287696171617428608414564172179267949812780365862531048908166126416000018695638757833003674729254930946817190850765366526519770808100679640857163444194804273814273902359157560023880283286236933536328051871272055362264244470478085643906456307943801687284807396266407468130643644052826960091736100682196405890578319102510446507985486442106276502561078930491957274158124474024265268023993920939914596782119798223521285921249649356583763643672827603608780828473268444832699187952719386026703454471949425352216159190502477161815540355286563469908535438760450584138457803261057278243184604129062282560122033020406310122932470866185156310578934794788845460069968182784902696068974165765672899619305059311097570511861852737323988145386888374283259898517117753986846737317815204424372590323955780919161400096061934473123193990432690319133353704278330184459990093452613681569523687707111851298436701679304301011996186514332907144683771213137083974244877412825923977670480426535691446818344249800044146168227633809111362194287890072258461661779304415304105294531070892660892696091921212201668853240927275837546111099158285870125600248432385413874123838082989532919832571744972974340978283254768051606265710156813158198504077111666988827188557454782529130480076088915116270895448261416272351037922118938449353481284727105670637198253357172399305695811113566844917920259070970665622327605068474483642672300770842603153227170451543017711670629242281389458074819354326812340590797000546728431020468649469662479634397222633771930678767426782899577859481561459257457039377451161381427110235791444376330072222753270960522774241800991162446792608456697476757170696874953715971934425623919949078681263521854170451936766994026747063658964797463558357721402022307512459816081210339828297778258338033304062993090521212480762286246857869701655320680649310631191091419036689765062289591346434712038885684888336102761365228248378932301433302762681645720066477493846213921624792053161873502372660352901787876149191989518881960664260069533300988912306145337621247445287326403390583616048564159325004863442193633109641713263133896795205326981441660330232815802973353713209802883036449682911966385913431902061826117028047670507757216029852890726788359478689414477070349090078405633352104792326092156775796211182418936427937451156893983566647942624364139214147261408327545951201871274501519612278663372601285168684657007411309208223534218172501365142518920951630662039520175567681688921257537602698099023998063602723564318904739927465543960902633344534380240024081894192570919352713074986207399270654113659574003000881382789411063461852324075739914333262715888354833157349838234650057701740546188070639635993719764469917763623286799482222909943809011168233141996285083369675228751745897542394992891597771194064646980966989015485633828084127099788820135298207058995396684569794943225941143869894449326605882050671932557376187979089177089877811973997437545087675214608454827241363245887722135312806087335447528428112751659861613508145159476712925885662727694160847285956387640223417913975601504526999761473771475761481710944470609651577089192153933222358730943594103232576219837545719898983802519042361176752267224285100389704575342713797171275669620210885286628096476069597157565992750980575256145558723593211451799036023510158962341875223686851358826842656769415886630473465421459237378898004116430292160095344012210367939190242014693386071453165419433005655721784327225140878905691434504732854327491587330450344979698726055395160223058402045432090790333250762484918804851210950518903640985179305117696154362533272360846416667881502528421689964807851294635285743839940641203520286160802702958405807400082470724823916047604732766631514032382123361297445232032118745246204127503781100000819940656676033262877893322585813400647633964588841765569420584758203031907939971291871215077030577547775880628813516979961792602423348838480065701099436533960217263935403570844215016170139962929833066346408430200909327447840447911625382741869034826340993951832982096992803018233852824508205077512715425612077296417249783009310493057393022711890107547898560423172817878592660388394773454851598212552586288705273151139473277044780315366081069332253638032604907252797457186390449851937260731204578611822689734338313267279354195718159418595121445524913123894444828250883277595308668596077474870440729471122427057039205394974357290707192253484530613865026280512768554938545021786219990276592273333870292480682932600322416921734715253120336042363367511984163190501688068631864131071916129778830533257761250615570958043840461493283521265106140671282749306083895187819505660274644027553581561265327790622469310132452640959180555995199700240671299691604898454213507936502878174193567187695744685831394086135272639970772949039679570577947232410327168765107562970081629310663312891008075081099459825362846783834306844209269055698973331218653071351109814893742980599106876545407055550955480187244862655396873885358612954933957518200966285158317746170084196887876130032641277189289729957503853509491453856956490254117278818962381995558148824071509354921994878978190803157367006133776238238749284316399755928599799448620603338066514749542024164549940599196191550440382019627869983749852639092096064940323980266963024061922669289008297230590829290993947347107422631464094186151978627464967516087531948601684178567870485136680274242853045381725443896194317852726197982505456840743247153583796089150626158136276169233431314566013976367989195345865734072655054720378949695556624627552343236434033208854637764715228574272753162786103756002533952008194206953017165042648763817424995960978453808917102996282206602103344351975993800607847530867304542654921326422037558385840718402755007070764789715628603396941604693097639665533979594723658415908369540991462571684662292656269093760600107255511776727769428533432509899652621963411265983127284442173459031539880403863924102492562046818782549822261733730511855499018892351463535892957356382817045896069812528852337602643370625015686185726340529864487016279125347068842018533111519658054657625910475306742500234032972290098839857576507950356491624260962689062338681508565832167383444339269990585404721391239545091083819139031459310551345519677072827336642562211898772980990777924453013246687337250446615751100614974997787435953921421013416321135926629320675875343507369559359638461470741292559643563962423741763004751598720396540911344222586103918483562360315804836821733096746889395701708264434527958838123045765441263559238538456481093858370242368177041087982175757825848852078015616721261617101405423488003063766601692736408844689022851231412002914095106346603176283799923728011880009305885895199633624000941758836276687813131167459869611413627166172237087056868928207679409492550105599062136921249949251808442499353408393677232319812580618932738256414082223608197809214407339140952122793070007266338847083969360261548398179108127536763938558776726197802979229829022657398948212896043953903984219702758913568039867877620566479288204947807934432625689554458199022374544509299109228386746705761488836824236729501018900587863819997591170850300759223472226068166400886620556577584933943691308699400689928020992025313317063154787859927134714296654314012853604162976567352309763649548087615392838836742724156953878849012865218592622065039702298704763580076422200975109910212148710522748772483966616916615353995189983654738363257843978706916986301626880878112966321562504095722540567717303783775994619843920589244277429242146614471421991956763964243487415015051121544765987933398352510965252786868479226010974328248825906730073501676571674193659809388640234223321322949873310850727851666165200157791840845281275625601795630444708973682720512028087662214274833518278091053344731124792630659425562919863532580315943029225749832131211453010916738351522209928684106610881012142208273371101541146271202825033523591483143749238327126927939720830950253437261528818009677693749322659318013802889843972757168517510984820472001968257638430359488447386180424315543213927263422979779264490831294900707815702344866767889337483980673263956579397589117066395729709429294773733195265925655074805817264084284553528085723182819415309679285469192149602473361091290211341123543053027484821250115185422732766196789379403231686904799245592401260574403156698975183278517593049666311499128535270452972814236839774100133400779096189981039663858727050267850254050454736905288601571800023585361478778457836726011642623934236943669255484984938262828944124011381318085709403325649454349745848129323657051723193952142991859550006843634814865188135849075688286389939332142222895079132870743925424575666128560984369414119554488948667681925121958833081101580151429186143759685786073383440918552473348505961766701007327429692767622802288194878223618356909327278165343249374023113292024165479887194930566720290409379844425765632366375063164860804947320502982661706963757802280946538643314309897368940724060317548293209534012550253977111922374496144644732550681813778102880406237322169884016519556336206786901516785186881961574353660785093393362857858574230559375329009268251854483183683345010252653103646800027234824020114687917836212789836448102147577108998724387801336281490756816767419517812126633052230903855421744995192647253787199679914564717385706917090920823028401207042488583422976134629611469619107467662823124092622806586095091269809205633664777595399007038189114035037155573292927410123518616381730990117945994325004595110002784208628099026968297227562438073960264807312858938773472888449403305860534129203117214832749402557778091555780177283437890154261270957751981463603190305916455888949281140823569448438879118297794892686539827512940467985152196463993238948199552244685627834871187993768942117908194931880027884765715788165682796369727608210205685477255686006489391126294543540350662695037336101294832950586935600142723912113096499697398550226477174467059504890244524948266836515856636542935148897081575402003160995181085005750861378450226048053579518580658430322381475002689217481708601769381449786435609297658279661082949691020340111022121821008704885674504515447990248812900968521379341135006437581654708269947071108109822743866988157251317582080392433389907280444440756204497841740040277773000464569018147112673364861252300522508203665028054103278102857187075230614521482490806507553044950021362261154385548383759690600778542821237487346909124235577155591974133191268027220496700147048254196432557491475438150819502135778371194614880393651632773696424469349802891973164981468884885005976120747848605655376254210026753499848633857996806908972892285584023538673916437827626058867266893223148120093397768669804820800700047990385702226534202150562615385380843028535117840833566275130405585438082040781657206151939283261237526216642923539532685776783860506612416142999800773594263194641605817123564333608589960218202508575320384332611185339712482205200808166955092878470698990982580878493359390493779212861399762188578202891356923289263237487874208773552970148049167681079576615926344341885382587313117183743725022040076658875930607472310602769799560407851111859577263958135378131146134096801539663678855740811576035501559886107097592535729102837733963616451148061121883587799618931032415989834217116482629308056659584425365211130910446828908146114711043381031604404783395854232257161675969177463991026874613178373871544703721225771244041982795474717773365282462004799622048536146112806860412850418572216923115721571017205978170082532262085144324836584275761474667047840385499088696482050135913341061760876472879872893148102427292531697602411646422565198638164337333844699100186255278761055266076716291380911733953683252298030907783205765672489510999349460719947417853638686047428469135879764044813568027694985943680522098755406508948289786758845986017638977538956241347355363356253973493592611778170927799779972636093429897444913730093235212433740948813753797944236067550553755280970217765714130956963906258907642530111473392487684981052077471250504481056337429390381845960734462324562597252817499616638221673273584836817688417109370845739441619065657714511048403142694684083895590113279526904041059023659696945913129676406641817616789480302385923668270136263770893470498885458706486075810345728327068010459296578474061756039554688783797040875319548530763212930349101373361513429637351408545348167964926177230376241127884535921936433318589255304738034938018395880020298438083250486673548918071607712621118001998324219402709583532402703086464314457770360916591124578099422589723298294009473883237104320477669971454390716555987208034316535355292426658787746595854016702679858533607272882775217880742767480421000198372507800761976040281389533717580751193258734518590765073585382747260177815209929251110197223627355934416737731988581800147441304183267811776729590188522829352186290347992373114305835258697660627101337421840679483113125821310422188887262653434115152219264091141664504130624553386314550590307768379568944112794983655447751108957643418701863678046013836291194369251486524410674382391280399449999588477979279865095405762946218535318668167396100672920398607451165574192504986348679663668965034205216489824487067815571979821206954130100292281949072464638432874343099546010062385267433778341683946964022573239248827260334343003088651364533608628506052261627535436288035779205289159243371751364969926127910107916716508871717837102518019655736478880880145011617606818351927624966863755717775500043751889389100009115995734220927253844088930389931238391229568288741291733342894943477791730606833768672138809358332319863887945857557164907722373934145793104852986456964367193890875968275055015985157432400294912401563227600267335199936469537835443635221981485595790997312166303438265735075351502594748777756370618950332428199383160245383072676633118630996417581898782885133523440479631062365489613244620390631801035855068138743016535877135356222115680514515438468593869385071776129154500052196618428926008392142979436896823222791085197147913845900569996220610655677044069262205728941118394851753199187679040251534816225858120396926699447662019284148905849543199152314798502791332372708985423849544086760672758233239070420268029825372275015768004382016796386725464930175385960363989449325876665947561750980807876876916320063685611272692405938275334086762273207169353322299643359128661817084488008502920693397580887256594946152146635569680750837601826690061505045312179729848642779203554726325179851462208921498891793881131323498271639113820657772477188416541128278609772428503672380835824857249662142882905561144491223594105738245487992290695271380818713289299071472098120475606319310451452351330073081693952367354881569974113546406597328708082609664728900198475606412130435294025867281821088483860382312626561103353327532242849360401140681476538498891476702393924314443590714460739119637303259529700558652342295665941647295183611457570833463034266128234831428552332413507346829514428148680985109429351770960546436100349673885976026316479219353453102157923805342533500265701438181455469668451472449065768004479416881087220678602538750469202418502483324113475375560255987758613008352003947259061813221240978865728267693520999961425060333889916085005223332846382557839835164460351155473925068140877955319316396385803933898437903730614543036676125794828014298046279956683697788852460037364702731001025229539761551209029806262450553994134631998351953638152409691150962911769634448060227747484565876527059173580420528672488635000117007170352196834767182783137718957384695174058822308831000170053696588840241131835118249455021099576808310437236572997915816909019630510126236286905965693994933357455048001817695177550541432093802375596288324513904505994938221855408316144089736412140757369505153472969915193143383809208632489985114465416358580981169375158482854134278099232359547500468376270245501205077732715544550703319239548110537828813612674606837990216766863235311526515290158260199112088334883235474875109824621020619886634156756495482949329252851939727947409172204450294497502872771958406862704453792349881109413063043159153745855258686722893493127100260158038571593821158159042530252872381232746300292628437195685610287427471233263682839523949612912700560561942212182615543995605862591991682805372518563710599389755989189107786938972179692988453332290560651465403525329588920458866029963955734736461370677838486117506734682361769596216385655101021177854254351247693355766262884461972396230473160447937630573364785854274461913800126160473466169208716010039925524077859200788757021182013701619092150175068180214289318828189638862424509211265305196657932940665261937218037020857212361829332725217122169052140903707198637931759515451096577107282341085538035594800846426957849531007671617864167796153027549493317466836257920975198451557849322020321068573333255855490050436266774974694120816828402095974618729280398850320446672831321609481745902866936416474929695939588522428287369576141979445659218751946401807569945762320799050601556940244371745350492445207678446989813217492000482063491313209303296698259783671593447530192347871028125137895058411891800918672425533474072584248105981080615181240151857832964937496221739506405974704220392702553810476704435990352793198156713327032430945585983464783616344325392096995957787881252201129077826099217759846878204555020722950484892454493146927497806959623225931774253933108818560850306307320028989897250786305884784340644181577255170673282047092117736786555044924348855451037508144013960861933699903781253384228261258911707809579152459442217603474901666621768848873916509544699083984062112032728087215612747928272024946083643862672760263081961107304315633474727963933821221166191992684753924492030025652020879367523547892621498432966253636248704493867904714220973660796899179454670517490007518209107136479027474490796734876626748688895972024357315149785937133173844615445550726920068980538127657119638841667065264179922716993538807265775871642853143849216263034091623736926366047623091910943780961890908112026589499707395674093010886587215572030268753546016070628759991714824767520546053257752709736079827566931424674988733953472752794046419019144546295380421152069927381868476282268568023762522989395615711577285782933359796476938182883826109937000728416698915952701786597159044472138168118748786943704002313515193731470292241635862174591931315807492212144308057362118899297034430522892507250255802589546357166010754943253194547502402001489452617544718872723845482200866399033812545320040392441922938536814973143877219367596204445328704446291667884342968766155481412732471565414190745590472319046486084892099053957082445743037379756518647004989374397244804599507818510744639458395304676952361204506601620853912217784125997299720822594974363881771200451248186752909490032916365179787704518529857904875003401303430117044450589681714851825672730833778779745497085960434674563285225079707393424530090650482889208317686231092555322171598113957463955106539655613143476040867741142207182155233400653545159011352437237012759034635895333409808450446748274730808169703073959641627609604664143000302705477484890405539426708248367997025608940689492786918076819493618875904177258744213441362077651343941098713584223636823308102326725996667190714209481125493962021967708411324050578709815166441106316789705235404866211545551599126605168451175223988509773145996620570026233321160532395035875671718269625192713535825090199471765157586130825677881109726067511550613477356100069713523158565803762716455217871368476626567056192519932919266096068254128332531515485084605460549481763992561450353811673682146754973750790308642872300288763451455670831250415397668547322558935668110860557034314008835553874937751814743752472984168475509722455056758283683714247798477022320157299729436442140754432062256047552788827384688476735329054998067404930204007655093790949130596499931189585755942111960115841669640709694562699311930542650461263172126843908227404893919033802857523468953298394689583918306278504521983993035770743132174036771266182588776567791307046530911829863482316054347838330452770486723686059581013920279044318140140356879964296079513149515752169759893364774947269033066067189771432722872575391533905418139046692416968544086969839222257092396146477667073211019706559961991796948379009202354985828694472808739096185832523730582264912626660718258066662241018239739493558128030393481692640038787713337615052288789014791835270520268191717408671944713729259045862121514317126404044126480182080815662436933839109117395880909893456521608434712377087002126297355808581839192044250589699059842458959662695032663278106217288478751670967238970278781293961647961541837059761886062771604017233686496279044043187790069519093067061167213471715713578549001763030427214940094462596189691366710169009087344614401744471794595266409522621192178961847192369891457853661469022530754336127918866552158152700725353846199394467536435732919721996406427866963126010431395710589516295854285802126761310345474500750228822384913534522071350244989801078361990597880242394414466517085972348880322756012592428967108809392038248928431432900578203920313770347058845159618252165707671009128203229318801527448004662183796446139940000140150783705183595097021968085345245485156709102444516301799076923095245927315865835038110133179616177354854422927322158656392039936112852488846458915762032907666875059087630292876798953160747814380666996854357564360883151231356790581960991186800726452384886303047182281321523698250420116051600614637706733267368113587883908822955212449463031410739000920816996525072619277185097090234688677319282203299018337914317825051124324765558190917459014715290404629397942918429881624140106092351864159348495896930369524796802876499621069200412343035410592689263283567726633492879068112475472826898778049646121269231079249749314688596299123767905977208506254170662086020983207057262556950638585572610025342109028622363320511944805864796371119924235483588646207713309930849182455271111619912077820906712903696772084845698376817276981713622761994286038306881525922536014369967130453537121956551137405602090970131106284733230174682456307411643077559995177538760137728485097313985803341899038603856661800284106992058865333887999466346019068295674666186747750365756823140772542448166150607612891836365307711206712660220391328261014523052234340870162954157649189376423573892925235598859916411299760850184090140009473620540638736930829608696410552362553108590642261702797188008852572168473268695608186232684473054073883035499999946031192810672413546817638568382428743989208330890740338925376422485586192157498631203307552501086265345743895319535613051712965497423587382262207533923506729183654129400635396209510666154913938503657520202132210554232623174024241538133583778113124853930524402556052861467583924644781973816840203337354675453445402407309820173139275864987629693812313714909980775779725226571058767731029338392105379886408042544417646231734339785157921167329479704046524789426426496348995498124636986770431637237760808316658946874103031941719486810475333390387082456324374167355701512484533800390990314511706322060859989156407356482095579454978616469315298534499511584402446390098904364172447420040548918674714663307801906758676409823001659280384978166133510768292559730828247204126027453112391147251603284630462005189255883163032843990387179530613496623497658068003725259637540158616823801497510676870336985577899294700640083192082776125923781557699191916492133555711217458474339051271725294854782168836656484768863067777665509798223996462223135734169956548335793569883846549524981652563108685055386170290844422604267325215058548714968036294953151670437082303770733459376539966402047002861009867329941238847214748685217061685404860409863869272577577948559461599395415218855844360482019217281139128853966824408291885551168740008194596843291217852707030311520958200320510464751498367265378232498596532749506966408599837775785028396312558110086337970511621854871087469104804713051559068035602531124933320223003757895074017601948204944341503721396429290679461200631647973244095276222029108179355834324622034036583271321151670133247951038298241437437754627639198631962023519609323960027223852823005399158985742024824454581083515150933872018274471850021348601026272637000487422873136509800188474905044554186110945332203546695502649116211623448744422091516775131018660997916285866549902647700634687957559073048140671755513909035955141085380275764825248788086493459578839424618590717134770401628719787323956187500973162015176025573744371162666071528120742713574181380687622229701918651376398944680604831422006513100746864351943834439483759721041413820661225982811617762294720560439238002952137414590094677558216960576478418073713010094874423374516456804518448868354322421099878674403460777391042169646380026063409032568040358711835458357407209816134565611628512955065746781943977685502505392282580106259537134760053470626656079821739085670104731038014793202022409444037791051044156476802501114957554192809991069680211184742640410930734054436002885747150001219597837518255590778498713343284999743804746202240274403690062834314577202437428327703675234613234400848108086825693882458954278805562797164174270239695353962126976826380306742889275655455183342002062434440980222674134724760821269497117790411923040768101619235363398645208415716870974522738762941447511943329608882519823117985851608138601840891430362286890063060012767117757706811652412972821327448507943020561615341382947787821071945386838511695635485533561994224303947562311524287760471620520288821612052932755295868811099641774192558212612055713190450706882181495788064737621008180587755886838157114347426897507886474422483426046918466149305865334078283931009165095979933745782067456197040408321960201114627865488616150600125884522767674757280921837921304896233831205609528711914164016418534219972889283616027012888474511747501681656167867596647516895083328419362122182402364065707028709630297544400179893915589399438016517679645797579214536300943734640067560957460528733035541484043152538145730899237417733011720045102247934113823203688634993941530727691960537297451572561488641873571385559527491219110826078484432450095324198624105833242903959632311458183248412699630395190304450611800819485010823139097409782855061869537845597671892021176554484667564735402469473945512863048377919517399455909376439878633781152579582648734038066286619548844361639782308487795786511900970558484168548053929599868620143309154181488946148027200770366237915311962662737066977988561998251931564416091856090810988245872974901080252107016704791218222838145402373147389757076762101067557387634046845119845448926846957202817660919276401828672134899820705375241905536037613269419697393173374415330202546958141650953623240515901650943851364945659257652100394040880405795595409183606223521770617112877664656413780826627876764279973780112514306585998797851504173445447907468776507004157624766105869727543977159985470959008198100172592641680416692541497202047085189525547034272356229965628495791658615519171775876348675301726013161252707053691051997425706128727065618425940459038904432213988692028280984870677427403406460542830641105998545134091825940441876296342859724211464932024276508452583080158159847230110509316968079432108514140698036128722197875454863488637148827868222929335191753007910651545866998834754828474981437771420166302390530627222798337783580191862335703593351132830884270700022519155429379996141819471328729335743279391629012181713583371094079300220760245333843994976690841882669772027356104513426947943568365462066882108626507408526273652716330419553774255665297995642518037314948500560217600845868012766091254196640181485045815413971009466270252013028375435953846254535933687202723251847331329446636487885097127473246125991438004345073355662775077608108962968678385637982925709945486777396144821506703394933608627199052255411849687044160560651854310478768614151698042096708257112386441855959041235421908182669960611774321877726057820419670677938208512495865591049717825564002655058331241495747092332962712167192059476782337640711572403258149376047657362984748294644729090593031162035378083525641303232715958333812767089652151883426529247403901176387903404012562613695219439451310696406004431389486969364038494994520176262142575160396231078750844063130070877972969468453625988078199753015158502235631752615499771551327838286166664567173327580221637721182965783049556352537829922852708803795426365880596010014713873951602567149132488208664861964034092938913808803154412827682988559461001078951415326922208602105025864660487530259512807504616337613207148450003092385412817238640656259723672820708170481353743609997378794886880853508476297636499692326903759070640851889258453654664671556203962035359664466134047356651861073770913979351425857380164070698507564758883764902763869496906820307668189476193704450067043672941080688156345176346721884279595941782200573479456664114060057804215738175260787483976234618828617690169805252473883766189580685236315532603149229485854539066931163716565922147596888291925336747158304690562486151870823468152816902835761615718254383890716413769890732943730993647076746669028211796391974650123738109504506294730690260185174595228448526894041025633234696469205449914419225821095198938306288710863054592317732064319798245698298558903483882187377668442902773628029901603865772441109241542381129149820069044159949147444794995405020497794182906021291364246206865927230157121375508725739845029392533923629869322548839662604903529318681123088988140838422736850091142507717814240358897153744934822061777689774914259981974728811135358979245392685296977600720956571049818938060392239457067406342742076419203667750709349277011787299397596409106769624512754762247669159044148746786409406310939633912289917009746407321596031454059562708516515613648403781598257143792023667808136824759116916784137438502847877086922764199527036609615546345675755946221111860737095472428242181080826791004223153129956034625113348340458655277885609451808617348899047900081280945159927258417133418006365926727243239252417693039334651845063275264925447925785609639571237808390556529710000693582065910832904182584639427523374502499051109520688401640748944952290842911718360611973256846133484363575612239631767093636240013787403083031776592263942462414303471314270779297751314186744301791953797684049748454682245039916837703324113030520203460206562932363444391318116318364589917612108186597673525089368782919158037867708492237815394391370887642164704330463201024311558546976387900560412069831364482618570176304477260067305655920213402358035848305323618629927677598066422309213384894545611475532667577696655968035828581019594533278578128256135238570808590518001616780876903217312604719883819521821994563663365411254034951502043132412200907669790024751051054377738216326932510551135334370059451856638984351413688053669623239494516247867897084277275688752473413464372633850571964119873059534108384503852526965111326073933248943997751502411400969998501219164502760949467653570806355245932990021372028458423446772301740273685028055128967301440464756603473917755823976096731079959297965160044860256741808310503668544063878658627985842086565804882373433743619556300195674077752378852580757987401744343607432995790342818402510882083844874670258580711454389886783175905798839982974680111146169020159748818582231138299259233296884697071665521428331634519760163289931201497685750686747290956747260862389481563695508987696711658763155299923767720828294765218759680287414631741894459935750083128001126899000521039487886261199787866160462549579716078892730654673701579498396487748789037738360632442819042871290615180883458909449402471607156493572440339147535655603052027573001044403605184911383932330693216252644254695209485575582974744806532772866944189377200561502068879254020691398625610093771374347965033772263535360884833482392548286524245813120484509247208623346502705714839784119508500315924297363087354700139696278448147983844149574692990508788962680914683602474201276683243362504533012035125587180371271483328515682785839884867178056010525031300223635845997403907925226297759005311708701790677474905949186920749876179484452345007410616602852537187140411524589102701300615170512985939646245061479065669558548700194891032087714652733616065188455980258072844842907840381364839686154765322957354621211839836230780548858302888927219404425325439415574465895247847245479614497972052906859266964400512595850985151829795203567593832325585398868833777064788646650606046994902505655075715375307050281583957305328121037948507434051432606077235723795117135392002273397673316757934858289162690420109156668291663250419794012488990624374058718866104726104116896031031729982900615355048703408142525995382029044115152155081858873016489593895092069041400449543962106958375269350912170554467401005949393609114935059841767980911825866078539584085942926080376273947830823537498613073998294623576942491180293576771509728885640790237975058020666147684361351180818193427164491591965069320818961721960592446957578048665584118469205624421555029052656052694239869855262054452410878121926063473140129433897240427113148367363368005380152853116983258625556035490706751641915379016179658055084071916634598709824565404195427848262628140553057977917366376224382962853589082273794508198683541592888455079885807765748560401587961273127655929816495519472398891453974150463667284554750940192391773138802671746009577097902056946569043814284247835013248236071917217888057623882299230661311593866720250277443816439055313153752036038179910357438980550946182076512558343016515017329649362542672351140372139672196225271170910916176760409179249915695477396094398854042839518412892536219378004008053451532533437078710391804121750036452580650269036011581119577369105134970491885820573234583642527081847755947594547385130369146307297348507027039553760554089756757751716022596938517078983620617842320131963048190458317313991954766777834504276143943919842012875358990939515040414669673487718008064243199807396074910790384501424378483900623130639189700429032784463987713976677421449082313944436633006427363608931134364434802075293521529875498584004294999123075014764898539694692996994623013559802641600189990646160563033980434080768943552095832047957135473561626819000088992115958997487849107746210267703667016137784511225586745632115154128671167511181940017825296795990226627690822900643116372696184010940121616167620134998907598799808093248563727024097927282275863697963676264915593579711819863461473315649122584167611313536908211767948309246176539951383289839676292755412389719439475397044769148804735513956596699546053127535064331954586919457313704618304400191042925313090859501821249848659528633724512821032205187583256564937384262021964963825026747710679474679816345185603117654565407585763900196691078411239587712345866203583461251056439465653099862327829469144013812088670653077740565273653209295776078841119670133239233994726131870343466956559194737354761577414338974809438862672840428509410941214536416087649639143421683304896149917598111044342153074254713135886706958957882217927252286494012654104885882557702215379015483822077260882761818716807542282097868798432731051631934498700042440323107713901459330549874893413879156777839758279054357363039274348767758277937984915204990222385641021455558575533368434746450145495971727889063297719444505933310214180201269976181789376701005840784943529376344989563785688767004249227216544015138495270802513236533866191000101365621661222639255145488961074361625234949549036302750803976766829832368715490734249197185797881352417957925076202175627434931759777930407773868648055049720181216932123960274409999055734794075371114228778480138525515084112614301091825886462173448921922459172577829895786586587818696229266641928034987940808115822869644903188611191188684935278336915923917481378546557609028369978913729085783207955067789459383025370413593670814903144499081888715916605109234457101461574855826528653443421401577239717572249657255337577679249128084983350998749500003778143073288945107263583837761636837559197247683974534570035293974892663347067511521737308077281870218536455878863969106811778568189903652544839132544926917981423754393211470001926023324530103382058891242883782912282737206592788989987631036799935647063016619687238824974742002093905245264096329969192628045727273659736920148566782025185483403215211667410671207219247489000848210933396295212475759412626441482633528958142438738345061127976162802419473706974840980470249489842373145436317339989525180818667046821304402681268714879775025982771360388377846133203708377098548994355504485127627833042944260357187449485277165727450141567112866262663276216022673257825800855814613559625602326451339765369259609677879313315030100329757324748883129841503832819227725644955722888150457593634764228719446818242093905186238864913737342729785654003489219492429937860782690098553153714902356025402744667627871433277008935663281665868743891817786992894234178439449356694534956716780283397932191838910238297910723067957149826762469565541196764190237882838764609008685451569568710847960746683313554876541877667774074597615831889137267342478360929582805827376330814734081013961347504545870222450789528393065148528633111020099207851525825279007890036059523887950150182160925079955012767011368617765732028016439879888188438382632984155027832153092775731031897608094879486793914281424945772628080232520181555672610182175683555186517828241934584981065221861682299953266868373077435862292293009953926182386191175939245479603553190812748160237558563159030959622890306358207280393819939087141822542894340529660002852774655416306349128170686709672165122072966518446698011298962129239257126152321394793558521714149019813489742134936979204682490404247673626493679705782534003455797063899075570272305943562113895247381646515858926200551369928270057301613423160586985809493783033555309639879223813023198292601609943960900282075009607284257900509098016446443661270147090567032632333361093626756064415740619107522070185169080177825421360098364860453968693825928305383191298122876924770213370139848575441801822579499931989837794022661346983958136866179821341633314159980690532523171451578471082150139167066773983391808318999337357008945016836146194834576902403262899319435704396259545638612529714243333493068518381159748690908862034193669661155206979043892701042284432474683629383445969489937504087686263187277347276441591429685769410456357174576064557887472556759585236720140528821311367078421976416493237293974835900200565036710374001127954915783263803561502759901558997893472603019746526253522914019664657769659165136870657585488611685346354106347874415205948821117798512995685014952079992789424691446459131600343424741169085543250894749152677426042111727063309469716065480382332632937880782667535495090960351740737479401639725447734355594302972850086022224894485260171490549126198774440395547560222160009443338001370423437673329098418015612716565004483349990354693883894042110612448513109414610341977989551583411823530495371217092877556428260021360079184730540069146792028323606329344034305294887876508737778561547910484495805169084442351275379742534939605981632578851924157978845095886028141545307520761281130679659020794250389866765524687320899030169223056549149526315821321482673610397621006495959155305348153231069041002682422889040628575421842990118100440178369995676782379908327445433841367107424401734196300467104462191328184942024540199164565342639521218347426990916347376319680060406623613337995928897009657160530712520260185067583496780000163513434303952330852404255751715432049596398841549529713031233716390387840216671626770552108293826689890763559171011025808610003657772311461332832039346710048241616584263855450631678603753637529864474886120985928837870425524551688043756327050305120560312472923771843090910223419061926266409923535503920167989794187756740780331564369465215732530222981127910328837257474790169104936232741795746430281046848971718199786978003632807770535854372101190152693192385258020537623775158263920017844249252383722479309696070241266752572617277883326358157247031419039233468989775751409788576644265794050097342411791261241173515128725652018178297187033454175862770107699275736890084290100442667185572926116025281331523297290917762902607698696731045919473773333393806355078087477444300506889040492370781271142021931276909498779218976474689895304944352323116911857416526351140727496110703967882414024796166015955983057135793951300472350775719463722787583156640353708537842940904687129731999501521725058051479417714998658067346646502799288108898884556448080779240606836590999584267825788337145448592644155503458009690973954732183000070352220441103216931103346658902016331829165529785641697709881029871084393713614323199372261603637940189488202195171608244506760954124670526038156570976204186112192437921403947076274848656951074498591053045101899407244419694629405161482515584324350098210796942954520365072280124766279443947428749967743153134254717798863350282286471924033797778219424205874103081922314959575628288942948099535307921819622872996603073696275279716436128210510398548633469848028569074308083193821829358050071278973224451018481471371540940337431083820396539838423501830922213684084412607497761409760386243786957585319771329988317102892459950257447332939769085560995285973270724369174712659901507413262183408698821799262561257734644154708067246490005219296764394882163144841475909835484538326200179607286211271075386671686990651218809728171606224959719323372108552600414982723074195753204612166819059101154463978466228599923406417259795528360631848928497198743170891040457231310818227017791117425265079201343198916850261708634083352749390648673912629932331534976105435297324598901338947593929749270432831684944512778822489389751007244495873286921681410720101807802214800854020009174415194649257541599276080201251163846404586663522837311063013025573772455839555024711564931742098675382121026093523161121349623604167560599357681621215431267795352737609606696505006858808231615818284353383532526330680756929250454975638364084888933553338797948700536867636093977840298590531910551984491372632603684666439064338627709602682759308605828157261026583365394203318038349426326051227885422384718033530138361668304212737338487956268534525880561348911322682482918470197471197994955033420198669084454685878499087644004569509951121038589532497839706978098334909539345211355192527262158503292729928570602183301850793166611928533929810402034485341109078085592073219146036289229352771959738846159358403852154681116996078466276812974297314122067698606519706642548677536617930550660828930106192377055533515741945772551010603810677062879295939623444405272044660275721275307919125150399900139174387419891552679007543632711034071253582503305376099602471833035907345739259803940897434786947454734219349301055588037180076499528730843815094045632384957120556620511773672717995384232828118277358422680035241576857765657786013460098189137891440897449056896510659702633834301709155378353091094989112975108465974971968300142171152405923514524016387228004772217637136925321616490034622441026380317240926752417470489945635713567746791632011149253566924145751418151338455087897499457476461298274502168328452603515054911091825278441776672459041662801790920806276234750167053979851116443952993853784723901772574456994194090945964899196599991840505960237407938845853780389958688997992491353779577536168109191489756620783597243510960562716328797958901290437163755516881289262358728915333492323774072600345902704619339993428430714734232752586292771474781378530771993817906022493142996155322567620123339286550572678627027616472750998842488331493578192377510457964867341617726835579966171620793061315632311572372815129739094409751489642260870281043155157297272272460818342452800123893933106109509875484229917044212866022385353582058703857126811600875897797565559205119443124635436793177548850909582622458585367249228322250632463691975996834132937030580525998269632947631549576941145505002352950969326990101570547247361700423204920540000298359518443419392613365947610014666589393105544134413322322435335519602278267613515647563614322864748948116141333887777001403480110834481467536049437009035257182218409432789393357871170520008289603086009447194403248400514348676297322829596276432817999183776972243624525781878326728960953509073555663311359511349388628845897378724984194758395067588885924590413269471968816896415657223571619068522005858165922210064518717952028285683823334597422349680939847134044846951526676165977779262983597488474266411065330133685958628665776534865026992691229899830771198233199334706258818139947678799108223303606231990692631775172153191277270736681759201203778621070487704052198429197754864427102134788605984272926534195705336957717331771431748681109475451142795955977999986307619477461771577867429071316839442225523908310650038467245099082951308546736276768509615610680630120918587487606181594797106486705978867480731843981404178039063802891479923081533409982073876675476557511853168375783327037447393734920316348843344142026640291683235966413961189733169758997999397838024955588586086328071568387929073854863749141117821184342628741520239252654487376080650251771167676574089808793761122035978062178696375974740212946952679743778083791428739131370632950309772239853586507517765174700114789476047103425801212456682665081948554982941018146135406456338197218204814697310925106984990720164474867102194485474344869354994531595020347543628996366434056054012370388587596704987773225203606979861407240338361968795434526093063106095543258330381792352376055351184517501334839413583957750328442898714041245297331221325688520314150012904630370685314851122939839943104234742996994053402337103826202630509995166884865894630416138582539730363156388713704702287613395397238068693894522159054446464894471089757280697636166042540975623132323953804382604869190397652333188422574749760229026332217898276365419727299866462026833482058452977983353945197527024349482791382254675111643889892925734217687403564920590947580671640703416213960112619150604178699332153526445434618910414589715647653862291656531553603125537769440912567006488348308648360830810265142395475087979701498430448394541321133936138863692843718365281689870124645455583727418276283165481058551804073359736213752651298890841856050876817206076524740100079071774079004625162470869165990226767615537418452440750598424635610724169738805959631253046836580503826208468343067504355037142581800492256244440157013741254614766874820747516717021484805102106714194125218710193709563705573097510059252775350063200915692587610125839192396578239727249579341864655935016506690209451830097044557294441445480613288748480292081627528303681572764950644846208302210212059186348011494829182471046379276319159252800533614645831130265087037313188256337192654328067671566661837112038081114835560889111477631711791479348329850442121618926180062627536569291507518709245949035651086556907899029175283462019306114462634484950029710477008958866410959253518414638816906187060423968812652410303416651720490308778724899214541782505607273815545995188410292851358999578561619843392967750863994400288141617096455192510843098616040992215199933780805222763587175794169692717421138092727202783411276104107344260678655058124501915031050805648606113942755672011401513636712568267738451547308827812802234722927971169027156990715451655076906302528274294251430085330524941123028917883515349103468202481055429733817214993205285301060314871738175947592276808549862684433867383368403271884998354958409373361783633114109792296053641267745033574905697659424082752560515114649583422409321211911520390137920156627697417740283073368372950056931689227508251936418144686005419363840265674651418415518120063120285401827225878538793283402198275633273700804655853751848447834297101091866685923812919077598518813705702197705554209146049763017912834973636326461803648750119668163595761830212988788713691852851232178995662532214731158123489921554373331221315819687430323219174765110689263780699994018550920783880233846276339479476960585528637418739421103144069330863494471307406499561708401774172303690622935897453670217485939731475288540382526781802727995203902524169387838741011315093120370131678780032937227899761069784752306943878381516619135422948571933664227083837754897764519814162357745439731519945212139531022244027546625382117161170267499869623481482521499241794211099143703955557060956155729828874705124888315306801887697994659237993223527693790518329242921875229596670722231215393133824389213162807738343389932169997177040209057007130374062977479777223985812034342611251804272216691059511860732600522968088033163373642340854718177460228251099901820963731479067041809330815146676061559961389271471709613235273091460480857068189557405260042300899828639747531879249322316271452349325308677828913876159818717675918811449983217459176133046366944544223486597453732383881914199608025535625900743462605635678284372369086974815833614429439241500077201241091647254709282493031861497089871573489483773553723256353375627547204551737490577434482693638373597037113684350870360704858282964985935880973820873075895498406183000684147482602756076924053701152303335233352845188822723339230403466830144885109820935474951269770514435987024950205747086749854363532446606762065435896481365743330646125583372662022783120386373134496321488480105687087374409774129194304753595035785988807848465547716285939101912444384092689202841912080185241328588945015807766409506784480759447408969476463036349672023285827080901804799389433445947374793296658897037710983670784728887354245609230345062104093143244614753973465013201677188531586960670834214348836339244143026731470860915107643409416158468486276568907852712198065240767605828182826666719216642601226402963250484131909947483415394130234119725672477545882517992377603372445289027469704395211704073354349460872386058094648370101701949283042132373779127397723474771348871165362425450911963223920431644070785815880787706332686055161365825106901057090825821928398292781011757988325924123667079164400865869169664798359240892954759070648150498855122843728134670402985340771440704686045173929480364548897426902896821539099285773290103523863951168931796555476382669432726922421136900444249391489238614318773859968010705498339698587223381699628213294071051885467206152586815062131336781386201247009557030893263165543281549666484189452652685899751516860967702370455842781510108860185527762841464085878390205330931372054496337416840701391807054160403120197741541230675190145659712445653172026102237905730311651315728685879117002311455253781114287165202356443604319903638968057430701229378447905976323793377158607124465689059361002697240976834700274860824220435143917416820258697147882189539655106339023762650931321343014735630032957013222468137533252044693317141710711655016123107847182760383504289088531124430601956953897822180200893732951504618681238378986562717295433380831591780647310978756298614921403535334175958772103636509467678006285468166503368881723828148415042643454910499348435955712601440251909291301632562721495840802753147906000394892062110722758894684200790166450081113362088074794133294786743663116083436103472584903289112288933357223071661260899206798303202650739848918332762609331843131930838144335602139712369480163116062495744921464147742122050451287954535831507534572989210854637361095775414834886954824057110881583214960640705913668325065777521668758107805937678713394971970713184085627504223095583126687882720550994657680946898406645542430136705656051240082620916295622211940451857123234407452962685554359052595210876042261373840556664271893787252042490337928195068998143301629866383716959371908755902232724037118412989841511973326632960380207357739356878059597691728771094093405210236539202408034463618549513358937325649006330501549067831417702775304860433392149601609833923875604680794562761139613511701686237323792450762077434070553875642367578822611937951081723744271729547565686421286196166761185282249606727372390246550368327061869903810683937175447994561424931347314400388308583813512082104173960820364138845629640977571844696788582164539962834005809310534776265769650243629478093227706896941767005636663297151790539537091501050687856274824080731137175126927576744337449063796040266471198231107756947543106567555769676809069220213313367084355488775032497024265307443258793094902153394387835400741488305537010211373626473131375393860370830144884061547400855195877911708363120820795965417858212738959646652335306170053399006639508259466318987076754942349825421638056917278303141091310645009838813195825503986817118346880227101069833044758051993333408894115291353542554859039614067861893710153095750861931384879492605938883742487678153603935509496337590602125715868869613668920417188545850107690746366688358622993571164806056519856408242375986373033844543636175932643838712308923869860898950699331737678614618400204014584366001350771587319872219825911737732234638335498799045155664393754943603677377332000430209239553857468513318338399022073386309624136776636907405535117632888121919255710298022375585672295467367117199209055894648933924800554381997971718672093189076400914920224044869700008659203007096216035816261928486192663712367728375006736497905053430248184294908820283489509830913407788885604992975514835693878104616812577187283828618675783425039993314330431821923854652310086160438798468550412831580483455880864479218855731563032441254371282967653789244632347972021318971045202671367673549244482338931088672857388234898347553245211961561106111210659255250845798797375261982338784962099354276569191754896499169154001945115454035756679802192088147445882994293930045314591571228944167075393668059996158970593430063866037049659222550623631422627278733971914675068065544601926638084058397962902603324928272885426361075405244637950012465488035104836289279509957114642218382335171395804770307315052479096003659513421332356254419524498693973060487987795697562075579468468848592736580824015461493761072284624888611469900961321144603489241923808715408419330060785791180667374764896052798047671157448836889875415729590100718254899785803938521102799269034251902167464146473638084995236933062953435048534195184883870483811433512621810663856044696781198872784921747992828981340733555538009043181908843821012007836112939276685674848167543847687995253210612820818868398404292372028376121575965554910701544341953542325600185063224783520091112830900448795304527684337534264285835751085904658714687161256465323836086980234213283035369815502567228140577250057725659289571570760771457084083368243466143737592344889417648264837797639673337331308419713584190336229154005472691767584499764298878594132588080621850228143441441165414522183620754899105864195311953743705297937168973685922129813310311886722429677842365443184074863753527575753286007095758742790553081868844155584515190543957041347765033733065873826107348840754502546011647310395674884768229395326245135828538095758330234727657057094881700055145488351678056781881948522300733683707232344443190970257842154262262051413284602597928057086452744009363914398538916371633057658989695289719614702833362363220131486967106775240522520868403072773329772380504778001402340309729947491261568972625092041038814523021417547878583623770480521898406870143727909220847636946690855846390949443553259104498504883093793072571629997612819667420446531904647896085505640527420871625725052568683136025076069077389019537470109325979685694008222796176134867906075661311958875279858173655798200723244762759342104722818955112231584243146541139258261012784192247288730624255514266527191594632292059845159620142326228050087490335465389554308137520834193359129159582330695985285716644947728756947156629634191037145499793285544115246512334655111879871076665835246205602350594531604289763599440157602510521379042666413908240059628789760011701144076260591200251205618408394138870818949626505077985145684554139947908541570873456099372979746947679551309557923906287637824733299491714681866566881960075737820533062455373313376360062611180529676094767280737836669942417546073227294212953003926694192635469204053181222294271838779840342468195867797633025776076087493212300257089841037987898235111240510117956290162554894552353373888250605653275604747830585923419351593152231056621288168194044363620142632103411804555986241623957343821286406254070512509287944942097416516008124727176208195334360234443547657458965322850250354762984281066843985413745821081395007519822829662741442778150023308173109032341283233485146198084934506973826375964037266733020628664151989167819982660917870670201014505917069947159922336296458243826412779755207395391344947140853792877041274058087690248387531196885886478168277602625041609984677569193271963385804475812824339123967595922527699562807630941264250408855342405158641938099487883805409858459797581290192716055944197971065180917548585012375779483414058089134718495129800879990765689278306503963775982056970646520153395806315640156897097643574150576416521290634125414823687589309167568545168365828287593408764833311330750908469836356303024885959364383443348740525060313175642328595348609574852580677346040974259456987731566678495460871357546921223048860353693060876263303561233510191418850545112307072549974304137606837871128462240075540238231632798379578528365987103827028090546332018522201977301101135231373101454319868970670260802893545878702617518471983096857301862623702268643057728896092187366464951748502588239885411680387637829188806116158085530437605173997625184339820964550934728854809418246210144584052598766053865231198787704849921008430498494421304513899946600782261426786704645059776848019550204254022657939483085396418285429898819508915317894297052610746173464230852658479281756401561418083792253224215203739389453830901971177551569851923919686573102927530883949680709862311791875319136885736649587140182679178652701493445716640906030653848980587863433412070958944371451848780964006454646964959273374662289444884684927985085791694564633854692661911868724625452697971372027398378948386347703046517297156135259832103341042427236632955359336636441458759548243674437399533144078804468828765395347756694771781937739238264021884214272389650561931428119027807514244182166082275487701503313261854246144274234367322852900663286617116458220911763851480675072126127907073885221131089733674583573401249724253646091785895133602882830792011201087807664183080062400292744670612041445050582311515904816192305423660202830522210103552313290325353368256013460678304531676729093839244459842782192027760565288610836163876335703486751841249819463411780618582623911726745784129641027562121665691335079304670656812080497890663159426368848749351038056655585456566570032380229659151378268067663045664101261789280711122103317697620780707401546048693421847583801955913319474789050586856038301804462601079857914647655944160117088003281537000286877919223062915119235406751099102038076923191258575555365771531552700893079137855067381038612686591935739242060953713985832411182602797441233656178262664378645182526119855197552073660814124564521852198454344808920628591430573192064189634959324635290836478724526683855759435417797249614022580357417407996784509688871093997860395771957434871016841204202695924206819538064777121086071272179958403383037287248057473949226701366108651072005428358657185056276415222738039018489582645487065886753696497180340582148364870767147396928493946613477585092250559830323497863322422237414842100448615817046724964074203774783505102337105912914310306808568238523446511962958339252020310673539912190040718899996153362660401750648443502843306631086247810133104345851452960043941777300225975242022429376750016695368760306166262871755632139973359835122939121266677394963312255722963862318586009075889786816860257349594669283003495023696651757225565168839829548224111250650853402707189578943079697846676534411401879986159762787955198047174785797923028385666490184962403390021918692954425287923233114378529244096188958176895090649352414476363954220945770968615098503686570525345602715875233598749795583948170864578633227459195877519013808948237486501544256485849521596164107536501150695669642756589296931208380106234036533289193164458187894672920096414879880521198300466148004727446559120278242666753299303234876386089719252282299167408593449686577431528734267445347110450736621787002686264161120729405505162736228741978489373134615810161437336924375457762282520913341486089733947055696502496592009406079976361889431152217472124624219513485182287004243890156448202073647376673061649189346589656008217457135246413291335184973030557986418129713509706548035699385935907432660894928880852085858851478112261327467473433276436420709154260079418323816880070197678637163221816734498697955616373408215295479590223919622981004671214985688004203573941897749577106578126683250402991565346507306164647405853943084439953149342925076403885756696812722950354048055425338386738408973086789059578685119016639292649278673877328812664883923464467302775515779681848547779888761638058038705172296276439894327448827145301468170898940641725776316614489463544982789480070757791170458735660262093676987086762784615192243180722501230703229535610210393570636982238167930665103711782344475646289208242628917539712494625801546506265804456236995250019188999885119101077410613492252146521094981170888136557062024148789702786883827901804383089626295988888717461496082372183362248510608705377965887839646833246078154948352751472177017056298452636922471100078380931266155479725918277490514356005900599338075845040964599377524671758807592473348847677690342349510600035303891784528148272390191401236086321762480955592618127471142618915932853016622141491207524134113701488079964741459095151869727486237256565422290970544792281364983523303667217249484287403164962487434910657692978315923397324858567360714370724465496627066652364432512860908167683823521796315023825495615701382931039467466268456783116511351378824925897768566303052329703071988832104312554373961847307505693714390083132199578766981305495522512187912768084421840495172337838274123318751069600746824451776013800137202532455939434543287098281867643775244444606624050980660898943133660395714599736562913551842359572414433081910133275499596230178611858667534638084420715950723615288926238874890391847106135974706029844090320319996112468423311066244071448532823967876706238174261134468156802290938092349453376765898101154367952488284490720050689481300819791142256633982251986720438579375572977552016196367424082845380762532074947530662331094957722851606126994923631475631929996526840135265525641120314191383473342466612952302655203916225247386147700075034889690719801630098469442556117239893106872205061779032718817936558231921995359582998262409829803606233969630595963339066345995167714963000917741129580063548160349034483934210789685904299605034546686787574921463371228337703420741295771556567519546351806082493924689993928655286818490532039334296773530974509074130583633826195047985510157521301292397975859019898293854490576377934360467397153975370740330739954147879353838400416980622604108331602604978454758961149987447118527407600432798400121816636192629747612233946339048320668123288290373913475620781751039029952591138063285467739338788962769413007058359146331443377543792457788112401836336202956742965485661642459464997965906584382431874431958753298014085645072633086681146385131464276058841696562467051046466567753683421574907440881559970353630007424458912255425627518259637949841300332548306690059784897942543370828280930815982309757404060643077001394806053937350540747185361854419911201665609008705882529976510278345628732172705020430709459398891432108029806235841288225813009015435088886082126688769745929698346642213647753684122087395194650936520907774460903780209025266081827625074687176589667856487801172437656712366290445422630217009214080026343392471886317911586049572540110114125387505213579051566816537401531229348411534394827800232159212985256156142098829202312525781597007824306297517133674639110076926691817117248693498995620017752070326157416512640755579765921744336779788806417299780863461464575333507123019305565366058552695436463400985284301137853859400285567899387570936356163881888971835477648291542307877176257783150250533112171703647641108340073809949699064846771685142203947639472453962166759340845120398114305421661343768815132061385824728239523054273697058072989605727462944999869168924318844845457273783291310399613924872049554442471873206566313987851158799220206156880086187782977761480603470872991639031736561322314826517533216454820849747386445169878387660786666732721299128794393545523892617999345186438509676914819729539265993676796960881607664194003587796848983089467354695145312934494638802819862015223575221710816534113725182203955178578298632731214845552945071605415230395024099160705320983270274728602910115175221516562274930035077109490645106262913595680912072863889562216859027113660755658192403726074901935912611760829010391797722655173058218845488873387222552647698562527610586222838282385069456624005135185281989636977372492428895392782356377644947850312528281280096218044457432816173244357081651652530615440718701820711297133692890894768237840091937057372674188902003740705305373862702776450250736744543068607377879224791899362903834129185861935274047231609995592122700377027617877255232353801303773264290018564558534770209659654365828575032012030386646075341107153023493229444945376712275353555495382085916598285818624668746937616547754314595003843704719618803537879630681353364593084286609650985009246746408629348139980760889840136398193043552095796700499946674933187662349317020895067982771840816431343587379623161877910522862458189963014536736339414244746458211307375466509449287705451209715145439034574143863525558256840757276226394881458367638553599275865115278988880746238656922456682715062403542544438342974691855418686076541414023953426813114548676588302490709848595619293903268172832869163452259047039191003451669794516651318437664919389330460169869924527045273932023399032490956298130153039758725789868877568107042063374765636554791384427739307978020747168893501322591353603360362034276171442083553618923157220190917344425683723456697209929360406188108035084049924874197614348161404446645896368658091482006662093807055747453285442554569798455635861625578681043370383336981021393032999682160276922923645215961373052773582214461762639637371668057669938026117172142153183683025312800836570558883324827811666618500136731958138226434821581226465284891761594174921848576215100355069277799080228151666177481735407082568638512641002925365977628573458725701997994976844876648605670425509025715475121726592777009372751341060688932732224890196533329482047491666892582677654145331053842481338456113363298251449440117484819404476520459613139553745974979402645234393468339453218799811910504717537535406753068977155740845380764542672742515146130285873286087253913570249610790953930975732263899301481925894435085006986929772978943716151755579734564429072411088415844704064747426119975864590537088388022904011321370487719356978895571096657584385016396908370328847381523793879856845674636039756613412592050374867127322007148430860753036769755202502987725723041784912989440009042981507188271593427091491547425239927497169154725098920664703591105669153149917311760625290368346117555661516597309506536150631158366112328337756303337584322175888863705833538486809738667290849240471135143147596518600878897095407351488507904021194377854610084063346614046791554219747012858564667454847639255467767447603683507304789402247733973699411983834522294879920781364766090798142031499242575051913556480965121505253828012093108210161436539401332035245859991489160306446904099026306361139522965748911613447606589092124124786646369198621398535975130589274679998448837563155003471547662370930266146507353497256199643999369218865108231894421500313903151706632385528414057624154332461746601778165477728995205129462004661451980298501432337177090698717492687548393033021905404683693316223800452351956838698601234346471869346013795919072259656577706644979912272952353629991773292051688943752585386095322327086502479391017008914576861434363513513955774261396758234449272530067350770136548226691629121467254174810830028374416063198082791972673280240145759430465915834230797486178240130756904740138115677672910744334780107162363848832907605916911680449245373389437495491142886322347631924470906911725444483145570451378022440592340702597686968978604405675946303591185869696338962151740088154353377128494412761034869288103558381850429107928292314068526882416702873578274895334361113580904333964226954525584512367912743848846488080552598923240690835557982756846438665418209007723894086922192101126674383135745581879538340827273532510056558156055690145037857964257708132140003491442701362342314330044171903499955366730583907448905163351000652878039802368784775433098115874987938400070248247427813143530238085605118489645435546669559454656578624027680684371763302069759205123306928461913397510587743773331071699854557089577001634348983555363745340945087583650948170687563503629853394961331066123503934542649773500761110229199960297347901943679281178317657833034401668117119763437214918177711907791063523634062931215732100608943864559403698088018370957470032876575060980976835143889530137990078043965153825776610720443587316651351332606648519716230828937682644893596834392906711240999023713977259738479204025748524225060852621281677532964755694912080057936907454468235870416991134364954622203362782474823271060799882907686151342318152288341256369154171067237074140652347045647350116843156129874402929186524721283794404062966772167864711720211288104077392646332833219184058116032795679717737259135495631469355421358828001633336772487762092109999223525712995824543564429538209217715294185770232167598460595644906776797834053600700935364233368872791142718331156078724665163191942618455814874096294761725842760354890486733332963538338840353390336685249859976404790219366162192500588216252792195359116894823879760433556638342928009044423658086655038396143802269891747484466884639469532279181626849346748169156136437853595497329289330946150919783539152962987576995957939469884507658181179759252762580057149951684583878292100199555654580507792532169813076869898740267151512374263765938917047398309932688057510826563678008801807069873454852330852598028740229799418897910171207797900788078027937166016149094818796816218569760802074500529437914403622115318826373690980385512820417638628589773080772271399909801349366716613495838037669101753696776092325992533733771608344877125042832779112704488091555979180826616144691320840276496412491687418879747517782032480087887213177146750961370343048684994926592248642238161473238215173367067570926342161786046888934397282943836960118849317046414589659251914013482776946453795607969894296800202405483451492294971693388143748607881025890203430088655703752380607732473157000136563099576353626433145482172064156716545198783171905353761651346281124566702830771953922879287701228540449528872141702769444932388590947711213967658303026425481913640739383571314423956382066402189189291111917625949013368202908354199843323093188941902398974540097212493068923227491045922417560179363480316206646163271322508369043614250850878879391741706911373020948525882895475289888074712313516237130509306506791985781238880048130663599116274022263396227827541141138450892966782384846956933863455882922712834080208609799103923609587498757259395874720753598038712237431205921049686466607831155183112262869537264090676599432072142599793247823837152817181129827504874458385401443114481922257926848791223368827848241121400012280118741754509943881956527497156327941685089286661894527642396989346241878446563985728004366495115316320417615447855515442749472136124769114758839943571183671250408904714255111460081527416622521036081742381396951660083963906380489613175239944720852873869511448210588603816942373202323692910250304093732181846781957254957886838689621414330487819078504713115777008579480567584050597862194658277762708057856534892278808681429898969943512354295947348348116592266243077658593017951496415077386022879727901186758579786281090000540979726070966084656679407116749629289375389006102807659747930311086840225173204525568433475245556138971968827240109192721784773747619449563077615949936749008293619462113718696810361572139315462599429081402938168972195103772386736210120958021856488028478313410537358636378366999261719746438868187667344959736838375395017722873267253556398536299649363357974847849708948735208167982769732435202523847776722519214461872945820131199670065484898861121036525997964037201840919455590880829295861705554783013025401862294731642052952811588577908893952680738977817000241008916245170203445162493465041636068340492969240007680813596835324970982837255342418911043294982004975222864093107898231851534197916998245397353242378493841291055633930952535657946244005567289128134578180776043526823309281655117107931311822380109945480017214359540433215768042091680197825650241507057656519664632123326922059763268489166888900912635965088147720422737863003605076479078027340104563893194784733833648904876958625043889529806277979786233318666624157183781194743507022759124613906989554845053179170467376571638319620279353947960521621549219028767927888267853804673469301765568639607645239129137579079651887190407424236724410598579878712736235521287473588533196738871061297304765813072307839334299542209726627509258029068417832800541639738606114498931268470249829609591205460678426204268932152960716874612106253751114764564154968146635298648192916667861240889940723116056797475406635193413498039294005287164719640269169761130275396019069805633114825682246967121879261085957321814576845421961870110928002700317126348272139204108447996088205943227524089306251124064083323941291104014063760306018367526550780951246666115444241751888385423162096303952400037966500232691579208345281628307859847545261835153342694386878498361446431005759277607409557819537825053807543236307179553409696950029219508918291241021809788972991956825034727818045002643493629290624372671279000594102032076156433142477153061292779560294770050423759881825447996320638589395739872901344940503873490208306883893884339128651332248923032225627055176784568402093687824281405200444493757858869929444780663704839937371170258006743039317472925385707122042581818023677512315853083122328329191356724966372672663790424862817820471486795166072312561537774546962087517026740838329366320954525090850621771570548728889846988032041275622281732986237508752252339156224398479108254672086916111007157629786419438814499361077735841152319445006080687146419897174739335070409649357856621016005679544927664385377862480057236568304375419810289136150476508884584684622011678748162375485603142379973076648626318962727094614530735962933395946031550542957544426314529359051115487639948995946993116982478405989367948204273448837683010689277570918166998054261099094310022643006131701570887487161048712115319949254633071770659526672417226969273007256653276852186128995915700787178248842749177449712292047908296023729154988539914466074676678055221055107924401277618864866578041372769305321368624378109626339245527221969458570994546406447765636424230787442905960236056762456828192049488021880857188117475166137073652609732157634884928690146796996276151706429832565429361239907044842487699577183896582424110586916382266767403399084129778028416442686924217335778466888409423722984787166329610442072057056504275688836327099239180940106893438210610846609425365458623544796378171547043807397235215564993323754666324648795674175004221630605652432338108510156352156348728987247776542589222211540435391491273284341804055709288723511019560994568743423118082168520209876067412237662781522825339237997925698667939987529435699931883998212850671624354274860195189249923176030705648096522083556039575632878819694802113980482700498260617097613151220828427049491175816065070786403182702175146646928602117356158534110267953486755354271988178251132850930704075696880976311909175943101524471359893859012035813499900057212580183490555857555341438298771069920709296249347947967595560085952693649805050959166845994149052296514529700859185614205001794498929665751270209648712283826403423244175370729576256636374229615430635615173273912112867971269644587122231068064921635914858850432789508190458921514397271138255479576345951843724685508725107418587903154200316661789871091697284986447891760381334705080375955377210636714115417404664977869189661523297366443855852671445769339573562820014849854021626554473910096583625294439425449263245813168404542520462969457628456908480211980611825646587920879393045323447303161667353908822471003933101752958996937577643538333119519084158979691375056404201215312834860845064000196943158518954848490589634411263580574758220772998772885304453022152735907403762413698297958626628402093069168977571505906644362008200302631577950395513704272227968742688795005981537911076203180946626251602594969299736968821374875856268859799861839933815643196264692866623114066610479577326111545477373461776586031443200415134028151828988125920943730042015334273869160575517129081075591037843810454070510781780070268750703396132272922293803935216399463967356990415845787717780582026829965661937480861657945415352068873966518875525307751818312680178683849610046909069042533094197430155924194702413718297668597293450410898438798600043461474838817398083024572722043352622169783243275177684892437733456512819310632823411999800097935465108098216420506134705055794663671844334006347096722223135757251620606154316534793289953347653114495920977830801686362186475803619985352718420509831450892481764734140558027691942788582043648276825102853526331171382691831968958599425682336523131335921408951224856101339088864810852346593190107047149190649543247000428673680456374512575562991518384032966006782293886670779216890255559556505796523435314513423948354133681127010042309920343677530253388716699361764763503503266716350440672703974986223982506095977584405613484134373960106124590636347060423923035312138831455363973443877881756091488058259447390301646120356561001767298874909023021468650847319908427402622979853768590081347722140825893925744015923987033878280476714318041069570861481144534443715362956010531355252255447152143150261814599450460021195958403691054805344272894837769902701010776628638374749380215119981920135626525760895725298721138093098367478914766442119321532166572772070024033649128765110310420812109983574434660957745236811629992378751864772509306502423339582659755102138221266595150066876153349279508765252878264280977143627788731828171422690440053007268792261079603511391449060738943689805917540598924131709529462617363116803029840700895213220284250565394923472825659858000284863423609437417962318118086688346441061560872936225917038768709484432331175734619549178230289500066926097237002477155968095775281705846938751404492093094055156620943028908480497494537898514651476575784411795647571316451809014930711765243502252031934833962835570688246611056690474053460421854222862657435237953709901970621120212529718965729337730094242892991538709631223499901355345859722223324484336999705136823526349473773408598668393407909331489856790866418865765897818439548790613529992820276509488083089301263820264856829007612515245463843366548677930666120611774720980631011896529567673171253800038883241627965811073129986390827158948983121941573661087875405876904641677154779304948025497987254950519009749412047363046124723697638868211842609246526531836325042842560262732337449227592054002056643669138167992718195016223835918782801929052097384418907762343989425509898419687791271458449401759181618220211447609409466305774005881686917476622813069623136596507241710611486556633955942061923833407351621077464577140825019110444561847535988439506533105311838979418636938061307058895689398170518358233861312005480042676362700558304038656672810103946494443102863083517768703964390411784968267403982045090782650203222385401595105253303226085674142453975970215274796706368464180055782694243188550408921401471175297047082640055280574391634889636477571435713455581684496901000133432537480051343256304323021550964171917750506713519752689261794195816273785424151996401038666901807675407925878527027957845032465710714145560758011733975044054839093693197484688380936282264075351958459848603652334794521736047293383633862121934608048017643264112407987174155940543368811766318628257074178595585107863512119744189971349604211072218498774761185717533847957165999339272894346197791643007814151716731393125108927497634065055395721822130575594310082301328298948105894506418917770632199894963657142004856205056438066389232914558461881060764256329232613913969603552405006300292794237750787715872065934672800338246417740180649344494609312366482143901079330765267423407607015309100307326836639110333713032795950308627358673539085215421029138370101085650879534016451472951343981060918278937662616851241305742276582428221784439608937970277689636250257438231740994559351856104112385537657564791034618738165158253181881590058311864830534250770304456832044987801251860976892801670143480749653209507622364151988312183569859392975178731863390086305609429893027879947671005267171707950599282413624428664181757615669980768934845815551387235707342539471358135257722671299296124968137441571870802108705362138972637322859798060167918816991865884549291850825443720551025752439960786941793760782570596520998450437834265601616383319497491830752135770580064207406790870145831648232436958102651915391572038978362512340425561543309632539531018330303558479788671687815998356175675834600045105271493836196358501135648541963738757443563764775992237508288952560405297651074010109855788688233412120380478756905506419973300709005133018988909522890594416385527304863369916787038615846819043823001845337711168726822745979415098138820954072897428473282590406164797070055822739409420399078982305123932703109408865366437057445570228257131343829210801847925441203903265960279474225302890187259757127887648141337336507235997475298441096551940696163141213385850614282003968898266880679078321119043585570116444595290686120686057223458486706192750802249135315672827795989548413828682151885725866139601576353379525298333509155975415426114417023361362170343795196429629538393146417405417033921373059116707732360505396456306389159823768810299949726563728383485468438001675932686284326347400953941696478041181569484697670231858148836082419270758814012211006415956500679274067144715573232473982562396101851488444513271697219427176744627520451806315147981914534604996475644256762587243414279296017505363682011425313127146587240338218818271427867867904228072533420056371341559515626177782515323886905788599930106556211566859536558955201439746575490580543116617012944909321773694239555859672067705745620785472268301673310895080246342454022829359024483801285248930111196006021668372526014945784762306401378726338833781439759869666873275613349850396301498569911404305987297620545018604531302036614518192368678173701502003616915755298712979770250022273263093139762995674770711323350535124304563071594835193728557679084541229176520865541194791676100925129321342869314753568484050661451932148037747491564124333629414796542456433430964709317813729305464679564612908694658526344244862458763505288026855106121652510910593805190439012423620501389633523309875523030265894241817743998835266434026249251464911610560114186039399573333997939816415252234079751264043276650633824041814698471256572134478391362358859869155253614501831936464690732218590531530397761676943641852231126110766426104353424903240196868948154310929383264056826176687507862608287909942699077330138434115572567591802679604918560706298290226646100543507567314456204311672695208997391298328903421487096296044872035236016426132897978645321286187357606212444077743372190472145673184406379753260821561184129644371512015633273363325172259062131188359569661427097821018293958572191487179346208482206194845858785100366986053215456549588153679754166118656840607366850624265574452290667338259286632724007096106097802784596076483689554548708292155509484723076971816726580623235896384902966107476746248187631976787790749618709931611968436989070005203707041265383827947897879259719510246211207873434872412391031717590677016528928824174920170241462726738946727323942886612527903410780747426078034390155997743025595426780754148305590658029711462040446667326697914626875162733337689433851166224048516498503984455030671259694095062070942754211126206777828555008057355025343795933324308688931822093258222671436702565753581818092963660986855011831864359757497218459280606137168272482448534715928320889051067289901433204636198394723121286150044785393778943933040897387383144617238270944607530644778988587611230306964659024563188938290573120040863428981376093128555296238249530901756882262411181432554112476698643479912529570244403125764213373782728567359387101111000016442833441366121077065234750996566476481466745659989547335329443362683126215659854020019547468762779584927667189211533415103553451991798665467400940049425346377649231037495671886482527217923341303412011194870579417543267565282013274005890971689319932280044830467970520873261249827191927085167948769992602540960947982667247189055468796995214133800092877448382240397760635758824011711682916088312428440672334527483003567918150958666231686997805470984358483129891935252827827191543837692070602221033783206687203884526633082430308002273771188265992167112058312128745977897130884761974828407078778827974982427319861471777500673718295347586347019253675817222833769729926122265366920306465175868195395874273512401246003845245119930146014858144708024602982769546395554408552206453084214842978473439268410733034043716851253694776645964102430652577734399915899626532128130650456479547541968099128716509720014979324185618590826059361488136019373082141749954512862534419672755350252686804950003442001187117855062290346502164752625019992193798489503772200981902833034171595163087268325286552953563138678780475133351819556824222629416008735922336795849055347537154863444924622798610658911053700388173408998670288992520866527418102282647482190860228920843684723173390944628791955189934830936961570407178367701016567126078706010356259663658913397667880016639126158113236015424912719509368865230161272284544906243890722685353319492832827938067359775444444938631565488238778657819456971432448636919192125194020192878189778763243256242039376832292852491590846945255896110723223545374812295929973446829529333733264988408313835810008165395657078836259911141915747333291977289988132262620258835709554201422968302460917552398631854705204697607286695481966253100979529330320822443792732850135701781665939509317230545669091446647392737680102822744336512815072820286686728765874105471054724764502797167715209939737581094226648172453972765640114175835312696911464874434499578141512881943306958208094371666862010480173766676049225408638630899533243436395683209109157574115351655972628341185996834667355803790423850189887785123131545301855035001546189431128235187365855428158100735708484699577355101618421583970403836675477416438629529561318549626547545352486899032952984535443850395620899099905477274103122578062250407757196241897922995394166620925943586843651323230284397671315995277227333874309465242279324480100946158939807321441774894564835452675354639281621381470123850900406646042002457264378868013454212757726800410232757083543105885340615252286044538382663244312079148586980815298953014527181622157891152018231339303731025556076495045673231170343558317010638169621675466675456466277261208513963320850274594129971104142274126655422282696534980865019189933901197810754747171625791537537132911821042964415136579935586927045925018054970661786221592179140245063309177808505310078161542255671014056291671971982765362880496536452739182173889293729889377083664444325765481611335540830173746193036979622411325963031265277536183933353601929385691910938592282697652911172092141449626332903576112694975846062665129706193023472489732996598570524965926594630765463289217201701565339591682020616971797577403020837515790242854541658820960189231096847582220065753773881454749403650402970602262262822084950382342667617131960358722912690460240915770460082747551396984007679940593883483480262674196821076012366124937342998386918942115778527946569418352482545439526976885255216713267815174709054082193865945431487172635040986337134867848954263159878396247063791603960598118277568356532339949376308913824430585205997170438316322379597454967565531309053207175732642684251812482025942123451220617951905684955077572828933746055811799987859197410301158773334360071145579439498278756186574405280722500962732670041401721656275874902087725755006189954530554493048854739954480406116092424154416594330190854957756309459185001951304034178371199768927183217520315026809637288572217157705225767508759899244534670907169852327169689207191638712117332569333438418767457745962099604217002739317217702136364946328491354504727883801049716638441595997612223415961991598200463275573351429627451468474993359028995824657957952210576419254355147126098076155504117213641596598134840632041910647398854349338293982690804037613265446568552195702371901934613529053026493000786414368263485729853869157096298756255088758698296318255185496377080312914854759129651823311021479435586904921060251569119092691142776308821347021496292363882064834610896696335129502823910517031765245758999993716348409338289090329737109008383991438254056090038789727986631891937875140834063218220387538621793857513601002480445566442141653036741004840529563912143145403055003907567744206835838936687454797268723662784264488706066499283140375503203640092770747174813658600725026259517160264471883376880773779818359356858959154504639585680977633610131345125095289581615556468974858413776694504420831040579641043171414861694308330330073999013856300720712320892955444268687131757898098965089308435395602831925596047930018892472873317390101833049482384650486648932369252141011440597735384744605001894649102404466234214867628236493308077607963768713995895089304060020560956250469022184311011953971917227329042142352609592974109913920871976403557165928908011105405659545475694135463777680656955751649997288679598869749704015087610656084876227591596364841632712190337765141035162487128639964308952420129677173652374242860181202038384846242683337365076308076153636356642934847088934285725253905079985613296330199425562103553680549429165417941714371722865399526065193567703791287011128002375246643062368173993190138045282648886047057000894633584279292054233209837821700299637598108023972889199290590272534409389923756847749266754983660158516607226012844891496505534492457723227397081289498679229193650297078303110605581057527578617616555214547722250842108463556814074089431228936240798977877632409557851745275918175788714844660599477315571598209039893822073707628251005382736257216977748029387706598867949886308019824322993893688022436085774702387291377767951339414519429363919965019932960721756546625574517743828657730634399298763295296217635741163947437044843479901301673232294232328406342476575849702832674807923135875835753551164350439021385914894701443028229341739409925870968684819549166524135061192329980471882812868093583210298001673466008074650251175421115619618488886628160912662467007196493386915263283019567058148996156533210855805178891040819105367988321956092708124638825661244406991198893277932276596251873164823086127737993288549108827144144497760635522120006491157377640074106096589264851075287809762974376078751466578349558874141133685820788830281113811538677109658226602494209726912136349915728756649995025004016576756478490986938718241473105730948272192925370553196234698233783280963714979775275963881980181136429627987172674074119712045320610404428450487165177768982178903075062996553536075349036071566302651919606394225536856914674710268049821431143036216876883356698185116809386334315827817958902027327086909814496944771179184835479026179672940937637282284783816286285455143016410560122021655012030010401871391885076466271615868254361844027827201892340924644312101945149756276398257901576507387232793679180286981398928177696980923166011971584075141419714217227619148189401508118193918167644531003794869883632294904277006497034268673925482792900752301145512520934970279398130389841796179996698131764599999173045370567818656102231603037406361335465167701243571987156148119166855564835047328219285845134186820158466345071378886028621306267390530558265843242095281890171920682084147866838345045253957905083134622627307689382447071508491774693902585276385867334071730083422688536649995489712666436080116913735625318704942114852251264799918409232539140162104039186357188439406847622683853175646204760943414252288806550849853828628416936492654961458646988443937505223875936269311446031384594529432391506015923587421723592111614932077958683048526812087287508754407511232478682855431176249924957586066504920722601012420954922799323262896673257343011553603936952986316835300201749175568164362016597551101228666167386477153142225079583910112950737614897523852513753851414986885888319756369056496515938400487486687973601828888815760051534816510343534905321999287893349566225655282659716671364224248482150902282027037079078201749399857531096287586620275766058558624514460090331979663594133338100776153979019541845179384162179990692388791432769325733817340040116035729637022200109651293125528672701849849655376837172541239379340802759684796301517093804370763909266978582014831782514650160210474568512995849132315205235803145695393241204970446410794443917568978299763484088248756071985115796454674169762551184532719760482844930017882405838475875147382270603175868159347510710919272169281904036469514673369323187721771904959538004999354462526164569498540602596795579223103271487373617097310815829280361030366399957925373561365600430584653277446970881236043271240519496441208943806103347441025803884608922606756813425137559328177349417124529100363387542443644694597594691511003226181209753873840733720525258770814341072083798188897734355078001387255083275458912551801105581051328174111292846764491276493007152012008497136033743538436389047410509713699598136516543336829013346372592264757864977853413156281024403604960197452988998616795877985488411782777335603620973215925551919304257580876117609053779146038421167464638976036870583276222878440878882319057402645045526763263470247392188729887446076623224959273581685140089744558969084474107543487298601217775660076852183478724373823738836630241994063154345072353733919936304718677247432022171113265444590104748803376787251654786182743416157463194545419311192325195739468879328797675887988660452518250781499675546622698713511621250561220297463080901992347618319783044959977892173909892884830867210806957550055029967680093348381451885941132034643111064886558576590703205757874586989450898291159427879388702566435540620898673724116505448100555292070927276049984645961713502293079306847586712637753329150221285142405510380989830900478663137093619631094014903742036853623756774775282942984303777390177651949720701149465299259373274619218422777609865588434092566386935252561211145720335841843133117628444299062002396023871512471778736933429183760812420823157208972530150823389113315813746204074731458022924058335238349255979927613237527714601710529591246083219709999456508297361747785046297698529466945559867144631885667534712893561945437318679152734883373840099364474411065205645832221674492196693728014561984344308288701022760222769775645130907576132836892437615275454616728599164097190203124441751462678307305574219270057817610978249397122455290340330120330180025941486408256112872394636343088476965520230615578525394512685672952511830879984138083998951289795255743401533995437181218536570123871152669413973493587384104207261842163276974468579601410980846178637218700517539992496909279764287923085752226791537266388027413833597467684096961498721797361731781328198452679945271345213031300815230699138503068478221887338277556309027145284826279457279042315939299222279583995149483798651645856974699671715543290016222957982590579457891774310578932551877011424525290115377084380087977175885674896238467907547212721296573617534376634264914335588141537549318449121061767398132352340834556845610806211179760899238205889684567299800911235635561680081280711825251449198210495144652218908814429482179485687706371600237165349966074468054883047269723470156371501127329847367980487312404159398588812216476212433111816557359543859632736762367902252873808005044569490657633877076923084594921799947997141235489209020285755211429792111927900791802965694498730437053629683631084579325918753047929263913660822573113615280163000698441579801050030077699031928280058178570531503913370136457115417313903000445913487831966713820957385615088052219506655483271114333613383014412034366314666920118053750553754322914025007133866894823188919476465792302678966989207364599964568446188560959257143874517777662586301302092194984786649559155585032598635222196690491748875960658220912151012043235436286759232457439041504794992768843587445930244663393086551246050968665676890988889814308359428265808146759222635456239995850758691397482121618241870798547021148711597343769070135345814700979623993574220592670795209178174808346109025150494214766115958485427394532324044914726507679722144252454665593076578519123318524819824037642135457131209194015100754582837124107189787031126953426573428306303555038910350658299259007395253217183898684317770433410243534048489485882827111755136656854542680911922804626850797482461890676940072968197746612971936750509821808022348809887929802054216240089509705236886792354059589496130529516551669406039961639925294707918575557186426988727338750476137085818887751854607161382468430970053654921026067741643673088988045828611207855662820121796219269975750398361539487660021207019045187610749753793894769424735105626343347059426495928681128002647637797057014856831505152308410735741954923055054467923917730546922798713010405430344645746265964623856935613072162964603410204746101200612095794376063046064798145162529608749800450604350982971533493994147481328224458908850786801343731548289696612589200253961714397056572580806934954193347778370673660826904916080813569231604534161514340277000719257601404293615301709767198906479058237074209113436843256221699741541579918880484626420170561135918141368243565401965492398710620377505163258730076922635082670301919361346337732085833104257275738111166935973052084231236487364861381762488363243442574341936782905045085269154943236357685176848057757541579485281264691901517515680231111463414073098640252437577017187305411997487088765428272569767123427841459509075236015235550230473228543706165714647614046359295668871637745297229973443675369655221075934612296102632644528974898859260208670082830151548633154250406883982593895326666113883515984403555695083936431996609364458753727509738963174063331462574854728031937659632585573334898007795789327675387955760374192736749371088535746001749975591412932429786695500141728271225232874929875251454679527712113977763177216285658375720818138018760945267286215864659289862521361226267925494037114354235499545061930656433178741158750854978412103717249322951966854540533828841949911127483221169572440057266474263122295581057639456693998624439577572220697929992243528443338787036626648281701387820288885685401996878965057911705531346442757153868880609473827723485766944432629401365262935534799696017575393807568174594916101034754418268245201381767212314138739926738151420914489395430418218974416175922081771809600571898679877255666078877861002682198530212462262573783588103254800732646868641635870701487772628609851204573980734520463963915539917737672706321792877657434958606719646832137553797691532773587441620822805125492676093090898240609849174535500356381276091535723555941144838767906169965027866028099150631941950140486644732050749832460546342188634295892749746801627456653891610051864287978585770093294521938319553538560482460419963740489969927075663196530591761460155911177126068129340245112794306417970305491472603089379422529310640692298983705952113569186361582151329608557428362603705626060866535177150133479152913762658088854949814040831783677661019818840231789965037753061345324072934672832102890844656954765034687865417767806736798608534502956983621368640409562152305991771879777238508961665351647412364517403395026716689224799455704214714318602014332198093583688346445907029855345976096648687342959392425724460030635299159196483731521133333655778914777603523411814436412178644535161835141555716657286955928852414456080054140351443492827354950308566041928772314230442912174184911285758658038512705391300643292641882635941023514807008625100178708391271304519300648276601114516943067637787568110285841155648385247242610964953812898368238268192446044573215205503684771441364668422538992151905952286950419491175913819123601881398559567854628165994578739925006002357727116511292384489483209422734353121826437984275388009992079292502259081741579822534089694533254711389699879658672573221335005579190814058669333115154662890767773875731147969643436599240909397140565799534141200269091377782752439482838489187382178242448442835852219813287865579840879634883017460492245957349282675085912698236054937395021345011232291625161142533012754333024472884931757148268480980652140994166280777308084456401869725973285138604805089483772788211094567932212121187861611529167815672423402591566627745203326322887273229093838408347161173629239913859603314641046763230831966380667839073750970138269538126631958900182291376599365122536957170404171283575422515064641453907355741172072083766142732180521815912882151390768881561786280748113658448342239505217809108981738260817352280320593115561709510116349578618945942283629038188473204667678290581802351195738337576733281735353810083975920661089107413174259037652882734523066781754689160338112360302389218535674179032815220513230933877371679996001295603195064925623459500871640476324340553108919421920454523890428764839447913348453338990699333786417412958697037298310329799194293331697966765488455850983983961834717549946071497881413824826963113415028421761724180455737533342067154395791258352422007244683869338687279373704838759869209406511736501049085784141568215899665402261290500502504191457065278690381611075113023706883306201592695679838090102185793443544709200350569303338852302975281973739315106702063658701917609056387022842888466522907461833032495189142008285742815690244951725656400681596209065038842184982066384001849903715019884546142738809392012177048050930755964034910663602872084254349513438237715129185135625825429821660614413788940735513968029751333311964694963020328695233531671522096570515930450055450090497010318815149508327597066080563914051406340417257555747974786949021501716339028818094810964863616473777764195299960128456136810161810974861398686080419217669325083826448276127811959246592892732897405557554559813152046220150283889793989550752956112087790538135360382015508162431270622923623935027722907970652653314589391843100288678395446832609453497767553216691668021999080787475732994486694795310789061869840065934920061267071562768950289840577685156163313772545743780670770867723409540267042347949868667260572682533043785328360869372792739854361908272766648132813936266619604680569019023286730848089098915493071279551411186029250260334562613251536643660104379080203740762703873443200411494768304443416474791203634083288809617790288640981301386601026978783869822446183430238069280792814450365255208230892940643174849204052073656558350000556550987310887608271741031355963404637119528019865314756711460824736509846422106720562321690598489239456214131056305567701520760707802296512622137037988786395774743495409751350610926042259871470102543712940297120545988891462100655844195838907910099110717944126853026139871163157745795499122538706415787282817355050787055893706283610092047230150595346872983395673547693379699846878527488023147757722125507846049357177746072469087216575087128589854304594258190352441645179878959612707133814760904647280365702531818545452263929283316129648244365547919575652685456150933095602013502813413690318574372808637507809836593842139568784841054275160804167561435434497320388834677456923886758239785593757703465248804565323004799851785747282869923966844037784306231175945995471236760237464094469748268989435755902872165919227100684243621080020086365945847863752309935531589055423902577050097742136686433455789300286558354209530716638623104831895435358439198656195479322998052863451666572370214278566461629771578272675505462595201254904370789510371716649196654918677309087097078563751077548961943548390913235582450059237227713477449291598742664453117074549266006069137823534006230913551599999239320519339865731984191516052492347708765973204341172576133463936239321124027977741399645466646934939167142450003564040129331299607301334784277911171803071391894943335408117887885613634678972169076651291085627338666858639685969519685195865104819387724392523441144451341766770315154286600464819992005045286747133350169610756144290747843709828053361736234105990527491445724338483578001762494324471442400455109315084895241985905674348700492397463397463349034629667004220829251616256931654152229420407905266902042486142968321970706708215010656168418058501640242902941162707588286898893547408193421626012996446070962588176135242734879653279292944676816256129322730404647505964881210598508933633701734969622095596916105874071787566235889273182639989619911296200750747145175066430429123869081352347182517735269487393211871717419880366761821523943520160048367769400760467572622494484114887545540871248091126153702744268948410720350062322161943329359312606048519897364413776336274197434998840133523912109872808165128749139627196607244338863068530851267478692655086637962422071543777265317518169661369575553080414175208465817050895113831853368453126145367619585669073172512387175798181397408815582419386243188030905061093806207758577219175658662566634437880312493075653951799527917780388585252909669931868272730355501795594720102757896666536505781974000525126981112009113646183702827959565406183648312309987041422748047722361593463810811067616295420068765119192175300640247717721058821191579861142759737846436447841576254748000036216011755259642153129439731640100562865785093074531734456187389042977710874802210724592956841551683895208373229424448850425846077412866477457348923230078409527264934490406692834038671817850330223704365387600622958085175373410902927729988410121005656183170311333442027295989171777277218482505035056827653936304915457411601186900851037787187731268175716158814935565613186490423383286210301037772232577875808547084020025147651359956318873222990417085170363161397706082810632747365130397312888884585430603092228804154935134342035428359371507489067465263828597498324722533841875623634872994189193066523428783643785142667636396989052835225505950801387722271373226385687575969397475293228379063950483365104645510451200823487416261412291367688895773252456437863400230085082297972670083028743495906686406889591699551636792006223313821842800269605005722439143844690886179151496539041926766475776818215020770771451908534923760051843460280891486477487248604061417611707897454022549630986452676035014579155315598548944043429901779578811060402438876548397476591018477114839675106416146385994357752814985827657454425576926803686309253840960712387208184432043852565578654395404187393940793352501762911400813078158906025443860999422925858554344211547727802998354340650200187639988027571318675803963585448355533875377256248296250514927282861288265183838575963318960266159661629589439539329467447508698678793718747271397333683769424555173983976805548462468929458944851339911674593888264267466425593044200234237484012717993314046240471384997727128667317476859310490482792345669095505443631546203625740156540987453910411812146742559843974164567886539846836297516546222699867384727708693722771200060459826194692071355763685039217766310411336913265801084782404261251539461137378931354401645626423983522150465066617600077014292426226830331816159661072562486644994587400060370822163934484785391864808981506994370602007610861755004174065287315909771904458522581812554962142227973919937321484520754826190216216482663134425275312234155286704761576633719362251184177343914403824211171242786539902956071994518153226394389194685753094380674897702618262586634935319009378524714038748243597134188325497512725065059578427602192085983922771015132915697948760896227457117645196836195423358449390498915949590092848626728884155168146602792133654821708471572280281277752620337209155610331946229487115605348888116283675447610664986704344756087061138111931564904796634919913248991789134578467299522232452615170678567054740138539465370209261433184094428607769439429840621843266958895863058037748692361574014701430715922637379186479385176529328744348183559348557409807575368043759489959503079225703307966221040857539722981947701048600158601599306510190057901743404499094702421997167825196041381688939645014487595460436821996005585195612479752945503491603515754191664633758069338663183892625184089714040257913226405714614430007598966783835499311075752217198588323503925023749494958400623067287855326740138409040157693836896550890852874594375879439952673615651508017053246597367811050799362369961396613523360303338303142546427615505616677993067847159017347617737328121151418625970607345214808497477689394071049711695767573563667781054494026274981297670154736047055618474037616410302710736823020367255296443683431429166787817925762456116009149062387442687462962368946260441982569718405308066457811719437555568818930042637516659790296701542399912202691937344350604791600295446452922114785045220977139427193677393572345046739323620456381242340748478432622830320011627972350283664620015605304376075553583411115933690211846453509062725281051644787136448448063972219041103409353922292372728931592063593467446358773172218733827212056717359590546299642202747160492827957470614686638976773259463040897564609426742088217987905836608272045927561820821265870811638749998469741468625144238603299745614627834026890112291379572565070630217800773687310373262856677695477826113770329573350930037392280780002927306851398501615542473954406230521620600636312828279384972827821914069807085419908634211741401908957364572451799293968408658791569727876787368709377641388520881162280341868152890760129496486757846315447998476093037899821813551945802779859901921067141535188128339239082483380192608124083105698430716306317534987848868669559095946586945849508718349974856559525188157486093087811482536955881905333465316935335684566985604404518380389767592368450800152288133646024527282539119224192779832716788228386244133591185972547266966863141553617786456596864935829934002107566215858635551209394062812858001933181122625633192413385481708477142767893167089345431652296253535027658248289632912685400281500469169905391637472504031544684588317407308225440826389666565496380855241002927635025789414057531961438036566936315137606922126557765631667090270816795247418463110089065895799155028004211289278456632504252982315836067493252373201696377623987099766974739519835606293524569435304021015031074334764176359116455833423471980724462003129581911920523473133892455800055872654000526317343325599914463164629987247265170966010364122322154654868227075761870470682285112859107124851694673555328771339721697460310579711544640897054578830115885270797608798325186894343444298681198272646602772276162879222029996435581214440603393289570614942368916787888823194914762773996793323350642675813210408953994114810844280326310781550998401588666646169270079357395691254202608947661289154975415882942391352014195014869873293119912738241867751574141489423293695231065083181736664186738483721741991320046125992560952211886742829935606161218805767569603425188663978589878756137744968444869678851790293727078987283408003515928298120124335074050169334650285560890810416213316975506226712208379661750116760452987057468591377538267284345207043134915216901446215990554834095275779221386511776042897218128693266578530435112701722525476644897817663839488159114371591946247689991784214637425547885589883883751632291347438513507890778741005599325595018268265284241655765234011433395898728620853533326051917304644137638680127858725526495527178861467385935938367832373085687576862921036293186953302156836845191261838831397614616376318743258992615162578804104098011853441126366709148921902025154819916233937571815031014855130631336012016740751126249108706083955209542819330489622436665298823517429846320027671168767855579531861730382566283312558927810163921635381401486982778899803926351082541717958937452614201460061593940713188159565900235903130908208821409495167978109323396345023685343807632289459864632823426908247094939821729984411417436340235078393030874980674146041824170055005946006387413900690362048349379401273276589854242338421476416538669185643647683362014884935799300805703932718773411251209570777336367291644285863204970225094784998851247779412370678814748262700904132064344522470526606753557730829394107624442145020445312636400283943573691633882857414499020523022856672891352715641398209488295099217227306947509926183105108892368241223853862793508908238168223960161852983356852459104325699266674732213401181753248201323315495249899176760362708260289285871900707534825922465123731918870827730554487136648980840608472937594112460262758764244484638913639901881128426647882281138549992356908877184910849623927743541661416712746406126208610183251780364041864867795109258300404571210790980754841653691298928012156514825424449565804735806078717788790710683106735139287317953013027298901659670149510575100300867016641377023161555100746068443811807423150144281475717827704943672804525852287399833266441927417010093380996262691774020437629936422774294373220004473420181543811987676283517008840838823179606818191152170935673012915640228669029227696236847715319677003227760622117615432792947377112248832447926105999894429246867189108749634756419254778657905121677402372782640723501312983528030958157437841974913362618854648546283066548059909714427476974547899850221596853638059005648245930677744333497430324698265100505711485751572143587250198413112894726205254766819086178346784886873508136371849572750132327458698827708556440481610875386244816729127171151295267607569842966272972891920646334434621038425753192181954535024593415860529253262396724151893463861113080568402479019438207033364902744784357759823931379916642583184695870340263371586133639443838345295304652995334523299672210045308207263787810294033860243776783296584343587878191865559090370917463144164251113372007014026809283436435958530689917480235046042696498532077545908575975314103215490781105132948586488195985263979381136795003644673141370104766386543978799435259535968845330009750276962242728810994025611619968375514283259602477695512104385248912047648359329469615715504370650708567796591896406233704714892475350173861516166788855886280820153530793623919530196360973107645812111033143787471336550869023097371429914361603033927728079349694812638273166516840771595237574220324705696290069244199324264377108285610454765306615785456269205270564988097451829569711530900146890696159531638382264463478386216910787295804181706580175256742467311130967681686442114784109494373102283292387671887194162997905683617403049587276735630231697286177395189260744336669134009881179227666026143045241430675883448794219051800377762720523902661194221055435694856222617557099319158131079310207516317429908108614541342319431699701860538829275333897577837493201846014998312188231778230548175880039770715049864008035044995277705042354561148566343663235000832821995197372641698559565873440361847528814182091056143180719373553666029725184468732642913914764312981570607051627073092450640955139245341735466642092456641969007032936697257579136844163182270222798475377527866558066808417992083687109886731494942805220960081282521136844047518214967947806279410435668921620963550268184534749976884612147494843555751624749835667795872532785511723707310405540288908499754323394360139462040076487746037369170611202373448939054651327090635459067279324233917680089205637373381027593531543328595192820426365063446990958311393483402643971020681905628018388544411959189735648346497420863509261582671624674989024401643962653777752509184088164924643597124967871776096283571681592814772468520010170773088942790804440355748919573923650776835692591427918815731020586364540707531717855285460959085300013659036334483084899099530943088609530291665552455897157345672177513748313605719685255199989072120887566834473160933325923585099121236809643411719381040904312300458237010229230945598238204949047645476677018527063386477268547091082066012578996668164796177507271133657410182506735831383386102003650935461039237801534850427487007888519908868252761551127344071997549343738829144405235584435600533557512704718270460693557695583324867952037221672611886952273246809544356732144219721660802880312250980602039036468735876635428000877901055518847191055425646463041041924335278594020611004863408540760540945392760283014766606150753195770075640158391401610389944554594333799342872201514458532564024277792144971825946414384051502915379977979608694502824199529034327391259084259792415069376084534489476913480172049326963070025502577269786601884717197943067781372901795614577896836600271475809981186050078960214038021999792680819512260773194650989001108688355094266640468735097199199067439416255257151041249490216378917224079362521634351366988620843107719894922678604175848895604064595375674094028387439445820004035453451931106071617467156497798233628532317288220348478651156249217540885346981008532130977166214310585886413634553255664020574697433046802517997903689444126823735589644021434009786707783607127005391023252294372637859363581204984590828081747806979889850666186405483697485669377751213519147887403998470970101446364477560676278017527339129845712104467903598862224219491028409566861162213487892261610237261538123472229565655714953805174461834967185918938707503686319726656999705707460512213154103163532648847401940901544209003878252776355004917938595482857273698427263993284677401220710993781901229284412006281158478028785128395508081077416773060237189605152708872720763044079833841231903080645785786779605234622317079607532483119725348272174845322688844504814172914256067300908007383371153442958792864123744094600540761347363346823002813938481032864441875298175200317362112460315045359123654388963433478558195547386117281621959131340582778550749101446604551416181604944424472347327482218669920879986296838599267880259565000283016085145735773562424403781823425195123843574777475572006214010087797497262125601560786713671985653594882000756282996036827454739513918800553911001593670551841710423643033984883593666448796433313867160222308754422025223011868134363112085791685344857938562851764537715231733533423059831057739708512310792077891898028691993750039767120606380734697178666448060291776037405146983683997231691074468337261738420754503071540229554683396389518891852035019874687495602307972672170745003499895111886129050503437160837665815400013639319338885821996712052098043421056025129144036457441015961645464212349129183551726882947595946884121688795448733276998949219180705605030288747252299442938972344034729048103393946688507666713723371789555852828184589682892307332119870990753410024205167481300245538665048326495284985572038895014262545570145905699835596294390513040705706797950733986134343768353497710761168575772258643322466672580177356976532460315246854732200133401079518063246052449059901139328589637212709375992705733138252040565130501206035700169897663734482041917799673039467751839314663259950502344001421354827810601807859971297270472924382518049892661197568557007638106675327860760384246084423907223967842465681657319079796396378479992435687253718950591242031940830246160430437334085565728873882093339227250890144567509799238288168482731217825248425942351597867934058293850188076500719204583244122099370263739504784342285107568567789163348772029790767882638323413764786659391687523459214118771062599294943151231816909146755666710495847375977911215111045980325973778426592066750636749387832108925697684765581929441194261479275436907258353957853361738988062754002962256009464455817654946236396399069597996931418979501594596208010488153276769739192019129945315232636761315209964781845747856446371466048014792289012062315974606138359296699807878689997356486514540531102299083539170961172416157010375283079729984740905008197649013728607554145920718444585473497024081449559449692462730938527420863883490940215745557724702780941366215719110977607980311043078249208428758443851414871076562730334276822004742603132600107606994386722673523995446721565025737040702026413074582000341232069460415350158071386102214867017630842112564217104814650047823847043711859697935590078729778400754988315926885843476002014231849784455409201408185465258278713981681168981269967249568628198846854396112991630614675410512067296606463732778892663377991357363069511660183437887134933048631291457823400041648506746923338487274165411235631650889899894259718488901990395906562740489353605956788791215405581506353750417810278977798997231003537902934869697707072449891657288634543313993116453687563284910494960294557569589298610440290463911131161153478400303511235907821240636477910425702092614449028051394454870193598351448992769445281595631598604083517259089086755179576742715546436452702002438338531103253569606601731122365963364272045167561726397319005866322599269777763198413819407106170760960884506930075194335871169391215903576161611654541729419155127115533404190816599294558360634136347276890366229182618650084700249396142362779904045445891930441095668190279376780890801888438654003306778410544435660808181872217557703085203328813264701206934111564973946413477270879028436599497022575801044291992079994265044327442395123265822426871186396967364796194751134614962909333888824526811637539008304713683372667998384440198870125563663801890591775662056096572641374745636447870869905712032847200178683130803861296362752985033783969874316976149984261775151050689784109039178106231629334498469871978412971702192381889277323724583781648881637011273215880683415279073735356567962813935653569849496764967620481792453751893306043064700622564715013002396672860214071097612257689071328143823489368185542852170927149592027731423040971439447023712123717794095625982838549209117401524539318344094387675023798096075465613425897111236000838491875887723899389418303495058569111244254411283974271359754895865369707237421887159832299896428633616770650690941383834045375784929546434700257436787158920957403371615385989344661072156429862148089746710054686138313012455318817622009128057570607542431742212751461994079846292555229038881037796687527258547215577835345239788490276701317932730443524009692720206274705987856720910094053768257739246453080367458677352340993832117071012660894848218815296961773826170453494358331960381941737987181891704188378059538120091359143564042684057727873462205896222509582465729308165272821640062991088498063285717684939402054225094432448146024715514232430908330300581095517256028289498871705603440678532293521005113047271764213472676652623999672902437315301670983093398496322219638137677847819649886049081509890776919560832023493136176923184927234595730472991076945059329431296822580831700089113223449577372331046986497347907556572783525184900857693873759102578348511309929919046926764371438553472561874704625597404980781299003133773317280174980606618299454600421775413212286886269323839244961991082106689186947536140719554701279339773418086925420474528537664118709473428731169622405994894030473433131850056441993857600520760935953878267676950061917229576586666987513280992251441837478221636188745471265156171229518573425942241362998787824850580790789210189398486030994820631152861763197874464043838936686965460704868125709603882085750765213546684106514904419529635996519024987505408865920840150138255045892871317441731293613850244642740773769135408428492866847239657559734607912396218966696785053415455871563721244813414654744761164507287426707868981771317843328012782883889546558818907470566462871943565918195516979704344254497849198669567739198747952081229386482955814768670248349300876262144243589658027226220712997453045651633595286316459531947807382606759861692871540517115652652595699595780630964818146273750529560961614809107374980235609743791290419563964871434193387860269391304609750057725275052925294295393266110864264419939171236189001158976562855310591443669092164769591881251798061198495544789722828877778082743560881645144312349882839080270508713675564798756963052387483332992838773590094409085340550482724625586667937995085303177912115433909833428738893638824464495980873270254311984525391852078927186609187204088711452369207725943373631095789228869900728933857857874190227460910781638103462621306250921401536314745576834581405096708623483960776397242985000914336350440911969234749108023981122898718238807879184708635654259942751062443206179604448130203060910647926956555179269211679423398174787261860300758050337784100559099931510165074890529649778225971719808041678305914924855875835965082311411663078448011798107714133341153360004765865058290210007255351731459787481822211610498640665418665885252211096071933154935380838604255109610014092316727110884952944701224002148286554030337501594440233914839627911070184997537655912704596449489435174008494909302817585536567758561116282695306694987486948563994596053092006556029476935011422642807554090232430052513157307168622615167377029858191891883148640162717923757514996566320354423514030395814497333319805350065820870403253180544672156288478702471115641216666978739119694201241864744222602588468365881396143263758085901079325455067496458636761240078968159829229508814613811352386852030009639753778050524319603506107787551565422869339647383001654563785044678678352904681657298000289586198457711930196995384818722255751853282975708541621500466555496311204090817876066394946052587781164947801283739623263568306626546544568417724943071805656981905653553446807085497924857903786512562606381114100197734201955894655400770647097928797665055342986855012987375700419523761310254092312363226490880097504071101595910906999689721072237853166770985914212237818521059615217279979443861921986876675976960050309488565779554253796286313936563502462775777687434272377255458608235747722742894539236679759819938653840629075555195436901689368582089102864496218153822069686329213322651433640403889723574996988369743278220439592388825437447341671834001176739397949090024300069569256157383061952857913689566067262345604251948299830337608679928371653610930297549989109921548038470602317795127334891536693333979726353630094766697625976974094937896143807301252992236867095609187438327944894222349984751078369500292180646181942738484266178285413882342934961119585978665814833088883901098610044580888047708706190755194345180372463839285648557534559374867410221827943129979913709586588131274617785872404401697245411414356271089020148454598153620192467662703658361449621209881750446814493831188532995442712087766236680951713946359981667349140558295571329426682219334897279686220128398949186460770541744641288453141651565407697490638655578856457546535554704827981436909340490288713372599034491596982865829353055381088800794870294971744705415588190708084018161439632537210857499212202232211916162417376421211975256589812001020793540803432794255689645424347918998098684920656536411625768492206470901044964785077850132303215741431822084840724558389121834280709425209534173612725941589823457288489080591404493048142304042808904373812561640049404600981510750972297630735857942279631225360641391584686242020939006189081392192960740211750975554944314097071066738533959482779049355563510992417495103288902609052888879690314480490413894228464466965047429374876430951140374559098725867306936968034724053723234979434767505966763165045740397204698009754378800914822359482880434791324487618965476674181024451216034988444250501765832505871268742437999784237085907270447925707230036455911942569317034198103344028965131781230806365317169692763542698112681254510069796144838813423401555902210402185757534203919455897925822059497764114028963050908894735571271392293682168361664096145865844358307012664704631520532062244565385529265132928008626775562946331286243104121234453274127332713828311562226168954302126801704461646325710238772190402577745223575612007071345101766589220164127877668612928344868630702750165676177270463942829669176401782315777576451055171593903403959704292239360772489311408683432993037183986489953654734495228422972421885347463361232630424731076905053911396376809338307111890300388983529238213451909838115337066593771148542877105310797820548018106599210571373245687581191308733217755308346134808658715845834538880824065770812932399185061331279246122626684386883031087309217849031860523122669028111457684956830557942671680784859908858461563458515317810835586227066842699029421940707171901126528952153178492588053122133748164096640598100635867243766512883343507096481717484349149528658394599628249067894712611572165606550510333085957220356887633970537085339772043273852013829180100546174672315001826993824437082077534363693945777760186894904479103741330547606499897817512587562500876395130001870198597115994809984230790716339930326591278044204089875851820166619641017050321638888285959776549168666667139763895904521144693709968577214918028139772314975863141005058891762489154055826850684970859972477809978764002383092339743443043839089901357483575208967212563759824745406861430021278748876215244302295211294169673779363661599799760617228755435411655755530762716414755753504563646307720585029008891009733514915230989956858220453379452547108392615666242261175557551699352959298581281266357613855677246832589707263554843304009652761695603197282336446461740781145792129721642432352820096088587268734151227214752853633141624727810478409618370268828959589488822150537552405002057745546981850297262977375228928311702429637173470531533323429286915933545996610852944162516942094288190836719135064441573009958780579826602286967007158033132799764114816123829656835362120540071567914302989250220132987144738805673129945571918169785086397406314964199109295712405856090620738663167697404032081031407379970010180400146273070968622060306883264719444404154506526652153003633137865254974522595236958961928055559726489200650048716977464228663541698424291714109609152772027344384057263671567130275869845562813355984162490166440659348873780191366900948996903241460665319248847183587139965701668099982667779872918950910950873656083489570376392472679677399329820651212459549425090446517697602075766053702160628126735580037969554322227715900205327222680792617281103674432425936202387545754088213451878261038530424620533291987539353702921013941256939211684856454256077437770640506983274313748910696302565692256681472006563596256814874742401858844408003766256961967809204123092750272883650740061884120261450238330415845487202029053723642311624721873780197408181570870789414152898239345697752853960426953444895805631060368056655518994486181633519741488357808514943353740159743527408931602416671765672802195941282756814874561136033148504440705843969202882114027800651205052011095516328488321448362722875048516667301139931846627017498915406442747841299308127288069041588656524205663935817987607031068314797957920763678462129976255037299028346716136156863628043130872071928698304791052515771994315206531957985664579014153951016553506400344818055447693131077457103647279076267596496530391607173495489774742507806288278107688738243677207380663625886529921636562967467661074364773614850235667052724661919688191846000719340210214520751202680125061751208980893985110716465940525662701001013614350050051353089620489462444944093063939646120994862841428842753545083644607468451639215919626861035036886511558270220299332507136449027841983415082348724080940012188302265109835136044162889118135605941576588785333215984924643959120584150451491004492831632622033425927342905136483286311648896595577211910979453577722401063872070133489135424726100908527873106485648968892831839788224503173930820041510578345087565899243724506805795790425589722878526787724856613173470679045383065580096992128766065542987048033305931545992720295154618525793400544060962491370926108054063378317528004734986924712873882720708882734901651145867219199312729265249964022377866098715307013858861308655343356834123060653888863589245799872235762764511662835373219604602834177564613068750052001004491655889063912642924476556025854916997496021508268343095859209394510141856667128531654097999262024159002562534970632631700334360605353223884064858463289405860158823444072018690198202081129848224673019745197911470080299822757481860988498638558826780877364148452124354403781398719296746387076392296515746319509646155229392673193284646635946211213805717120042498153270000291952370320435608984958197481347721273595599049439837603599746917248303408587645980521353191350822805066071635135489414241329339456601406995363485181846231260655655931840238479754563468135597070106317313683668834682455083147318314584725928380372966458372631439761015359475015360633127116962720315197152217004614854014618590369505284162231743675608936436787912337312501942682767260097101273375525849132210976342855181444193730836977591015573663492542783796823680141414750377769215283230141968715978956638975316929503878162043965347854368227072571770536127268481792240778186043418304774147387138281285722843228629896363621167627350290769525118655887351149806185206169297259115440153734471778380594563393055423671724150802269699743010641534096597822285693756535159387089115460104524631166690663051534061469585983637099784553237148943367021993347669727090904128350677689075698575007253354203372990212196102854290832558330602237564379383173951689184332407778804870569706058335642565326042637217679432172732827152056203060129548530986383243510851856062785862382081570548251449794401102851220504424549577827289337789259561039173946077839249542350825382280497617472025252654866338068917771987763772668310813177034986879334249344986216614856313081752552507109164048902163782543495245011173929859361461713164333999937694546607725309288666378036017976440617533533467571878171507717272188237146820554400672121602388537837238996791215847047959014317053239370840230732017120229405551474801065434952619289808088437035821602313233612311660177430722650825344815049451628163953701477085963494043541355935851215936981694094276746095655829086873298274483854066401270781528372485958239118817074328831037498730072225384319035684919987036117385325905388351750809818788796256471959097310246047884607128439951598887542562624450860462257480283652953305091886964572359944923904718773390687097829218088156880870882567550636016274487045420686877165385684161260544825030441122112135849809137907261170171590725686918639660904307796026363082722590759106612478643993391122885023763891132820118830791858160420453211819137156062238446837714181600355235283608913580374481989615407629186933373832440569990794271056352987528204997815056863610584416881290728498745888508833176060998070678846250211539044927804084973932338274064852364152448102786983227692861244527018355333063797165570375503058666311961663078982151987009909977397218040205578735629031928462743275959383679528749933276301627905492763970405209637351142340794772584818195424724734371438098009102297467155445375131040705864610814531909906915048279945888524890312066318916030010302687677588794492160419197525579038070954444797749528788954605008405918236749565245176742815109661961303976375562368892522301683215885664548625783573533490732466851761858558722962285001372919081633939837938554037481587841198367437116380328985782888499942274886724708923766161757068843189957832382460176069387300778352540606029260126222581464681214133430790401764719689094551506092677409255734347437509095953701734654239118054904127034060406259659584433243684713863362965821854766354601351644205444469846198644192087200238234069959234553412162894061577426854966679954419698779425396721514065131001644971264325436766108453189770164682646528117039022132693832047443895379176956191067158331035702335651201305462920199769733034146776899965405890179339099584816521713208343732574971845257826151064453468740639627828835170735147857362586970259383204279305312460069088234514939422350295694222541018000860453590565896776754924427501564381149248012290161041111331542812665223111838713187795047791476732931959065467705841697479346912654789256746926069661378625659993649646527541817114259636968622373078347507815275639223680610783424879440157438710910751632236480410509649545873686454870080974894265966311704428960992739549287056818516065327211404608006824763594024741473456692039668621646317103452681898711285211784453774148939289871989623099970662241633636670379225246175862581896695209994655713544648033001180304828367915436170569570117393958482093097243056853849779847801931967984409133381158775188160078221523477889859824791805896060545025163138382104630907504018815318248367808518674249140606151288771125766618527281312359625308315313100284244613147137997219204390743487064487354314791647172281711735764358294264038573918215008753085882898220666759304547362037189003893600743812781226706248666953928790659517347822979905848443875370763181152528128531206200151180141016132185474624388682617834648454644134160653365053351923383689431515959243068185840520940029569316317333006825744679623833958984733925063861497548877899748013238429972112687100819316205526121180741013805087614657347477247592627723563568721161380881406198453647285513721130136124691379139381510307085120345041067258851980811981840068180600327835554665892752739863102528419884228960685466991303122204901748532898765345538046315367477064867019041635646915375941452387627233440887183851689206280354281434820029823350413730291983677317983136117802623626347649639665474113840041891534075988463437888104292413517984049195169130801522595111608278739537775784524602519505207844852918818028340413585897762115097468838020193670999472279001666432540454618732160919094155658406796912442733302201945997059642342888368301327851056594277081025661357709027100878421048697045242558603761019347542136852210422663941858877747360337166040464441345414971426206508974523045287512855843114371458084869714771859376455155575398179508029221199663629484748244366428627134744034156676693736021692223370950679909344793192628213076699628913804567998101206473812089688705507994692390565427190556134795441771379971996052548212639430148865497818179573837684252985461933871004837719739175302050884538481700068943866048825571984418436692600852764710470499289307306859625278177158463433432807756462118020787806800135509415014441400855010498747061618319780347435742855617680232190406545526908447022613834713527000240794917071162656675569844090410134782731655708228279552749534577259936910436991757792466350230813470079564057605039813740267467608827937693508369632455835224614020177510696946022934767119613499256736192698011046092726091100267828935115686160863368440734351646711052943367853681847037192620391871929863543697829986019584161804086189023340703446100202176772409357123826159313340567027618317872157222855277980861601632416146591918107055195342069680792301902985355581544949337565066476423437708040645732442789802185500453205307216241106067012631050775914829599214907614048552377150416347713027477549634084878146567899047199381799142664633324575525036961772616217705663486703940998740073205767105390248987009136720426029463607883928027274234531690119989175227421028982309855613960721334011671573701484042644109253001495012184253193941874175734607862699254946018463839486421413719819582149213779498855917878545148851846865742276309694128813060374172158321647755487835967325471194047352989025581855801723478222166452871126490787368373439405981861101734655167024700218458124746464091157411420533753542012329818395091908025256285747107566300806316782824602289195460516304275736136258497052184919399470014833127645683752360613294808857058667935505274820384817269374281356709082369303719611101358945670854292460751931137874549802475023036615476006659414701318385996451866405283819333218557675463911370109039937463261406879326879418749561512915630144098431182236279784786307410656620435840969834677909834521153355752018419087104453704482193762127740001499023055603245078346338206494156901541259363238286556492711238225519000461023489720401641724675547278040359871157007602875069337613417875367167289769489585350563460440298157384931900739013845138216473319439448671859493467898446973377341695098475836012013873904828621621685679648322691126615593183507861183258276004167252131463722358859626031765384639216126403553378876066771693571016710810544972144837637145457781853045293316373590674696435052331235468246955682655327074095158205592873734996428098531283126986212504489259963662953907801665148255108646435671336159259395153399304843430776021509892830376124305587696779237326074691890128399558224895534131717051003551634578738765066057693515135631283860810084839368342238514345631308281892795145969023806032132570628160736435941713200271782860290780172602353126744244185558637829288522310081617923665711730231509897009948106942999122973295561748610036775199816637318235526913096513878983883942578543413488573548844485232674459129046571337245999546054873593753425925749685626940777018461336308721862093007842333779536563333338389836680130921628285329700936746056398737447871841817346440012846468982991123880563927767085477471390126587151558574932210918582221301684850669500444586950768876472857571423474077293823087645447239620668764145163619139911767180062688124431254279021267494454759391770359745225095255415512961099027693040505855637401053939317719046146280872371377850870434662089520577471926885108132463741431789223816995350950047524526632541943791703948959377914039446389465290871051375767642419244806635503475717235258122142455959721870514252044729903404691811997709187291037798377914654354240448229753940507140866246955393850009072745980426476939204785366837629792366988690466015321597558447897219924430366151896014881896486036713178218238073435262709483791677320669935106892516473153086726597213268621255711291037493284427736539989901537952810711133886365800859653342949124987625126142665829198637851186458313466781053448905658041944477550126240556464816905672450231850499050724593562048237517045333265932296369680485236375813599533484792820881883665233544160970495900093029936382243879849871860554948124143687379495680968161094206743788238554478099433580306807679385155269883347619414293558315728128162697315387761902143416181607074861957781934129951699182495127557980344881025428475218003344139754698105287360230464209322428901237265596791590038890104603349902410129692602608457395957506507041067936723908812976896910731220633502835180689148346171847185094493699484261965144251865022109390136612096668254023407583276427434110571761758120237499348065913422682250020230946069751853346760807621178692284853656206828029182344087054082564425590739787239538779482647925366868435272897817149087263898796280664174389294978149215032848800582243144959538765436560828586000181085020778534825695874696048143583069013612708272087655541293163089328480531818379350958328774718177761219717950513346877061703830803241352896029639220649360284751684477564050247811708557882426831072020710693370238033024048983537919696820065823006053060359086412694139619916924377977249646151212184847581808013614349515256513747374513593689374391885259689251694125512692488400031005350983505146082934057645376380536160678325495653811853066144222508478395210920006575364528115606673948692649523340833070089308817355171209644264782379331566486759707408207586486231089994355556415305429593970355933417282126973195472525190729636876177501147192782535759720186416787107981086740579902772001782334192994527188713135455768188424383077440256821890351652749925043651871335103873792079835481837262672872633080719974701123256029812528147327048432208735910290115503950014430389045099443887627423726663800765786772335611890132092645666695465224604620544483774714211172182419471975205439175378289360396276986313015973613891038141917493684193828590448247228515428320239568777935618533066781069645385361362526478212222214650422631250191762959487568364245681060913196759326253849761248856914150565269424920242371305906392924299381827499481793245737908399703945840572540517613698524886728498074105147998493746217172676591388824344516239822333391335848623164482265723637131036230859695317743036691667765778364653331699470641226085565298935468843906649286656469195751067741980491023549847527112180031626441874281175723642936478443414317509900191489368623740097033611436385163340157646637981206910770531874352878561444212710005562246689379314457555196724847152883481973115663536817215419426045865800976706335660067756673709764999493441798195946881937038503330253752594213209189989445461000292906462113535501561565904042122615370566060127276765683655571078171856301293698020144265364187517183043548897293311423052439407941154445772842224014949033088931824344159120746582578873368202762847716493704606365147749871281712673379650355467499502643378605854354274875674719916329485240914519722392769893989159403753730661325202389542385314042038527598636222498808869500389639063886949998568608554467857430229925779127482946499079048657667604536146335227477609446288921384534549460834541856465355503525336685879689870548929232940316366384037070446555695794125956247996476327362579088166033466800998248016648234902008814317290531505291048733918087503269044856443687148388992256902759186922227493546454724253436017370814373734893333209394331293176213281828563958641472537481034949264435829610033961953163762031820770864337844023226033249322868981129092698430960290946665232791582232781256582926780154675939314602663242211419202224559579053431119944286233048460095418557924346764064753593987752234062520501938448686995078504953595846206870928739235494697512746251232837011085054833733641967701146832242781162797407674708083278733095055164565934049040084726930896563673084549935375245081348033647467953439943886973547103281116172279416306876256777412699434928860805622869360517694614003942652820972738509745493038028114962604340896643287977155936381570045696246229150825883285062212965044641111048172489210770685994602454570281037342238457189907408767178137311081578678505675224394565733407255209697822672513464290427568690727293315947990988465839530787068035750759927685982381273289963101749627675891771438889121861423042135110126159122468140595150244761118085208629761618132250622405163408311417867551231670868323048225368979371177272571327139674857067648052907126838665699869473662792850045503174030527137877097010233439416927648179210625199785484367086847994627880105763741540031703776824410793075606953658810331012592394373308064634619721179376033413398480730273625037553136339995753280773063425697623845890938591197722177702692230949161081324297637236576192118987616645535064902315664892846792783333812854813977495176204366153542524005465796339386291612830318132982027241592662408680071446153461863662777624459979368878828326359019558603280670215811867557046590658072497514092938646632687427818343306726922905273491042501636752113909369268453648165337920377655573189996551239915535751550321110597094814935821473855454016365912048667821585240886183517368022625239656590107164871941087767199700381297291176231871384476357861296235962904188796460718686081422829607283501826424769639642521272295171160523445136367638947655048452654463324502381210710878382217110607790661193529003131265818732593014090503006385321186010593248678199474276502262424834138718938942459409790937441333834366168084718827101085888244704490236242764314716407405899401198343135199733669032571788678133876871915629876074275157844106131783304573724789885938975689690936507269442683424037600096299269060656494891088792190403372240555382698051998107147268991861681067366099174084480506576069443970343143928344158403765476430553939407747696755280014914335810748230054969885238759326491187335197293019390558866442704012527876383214213174544450902517369477900884162165855124893429950683535793496634169054962936068840724463239978444949231588229329245798536538129499525233684047574198203910588915111437321116972870074506039288489762531871697418305859736751500768918477749563128223827185093791822955451594833572350581808199841613784383515092208854504767704991930826425035046093421287319638450645848139563007909062248535237408941216737237560841419758071249633333039159019253084278249052182170962816420785241886842014823492528711907913197334752881657493296427907532302142137870618466216037886150339308729191680815500798371812028097541848313952482385416581964648329318316998238647250887686070504568006331954767150707457514241063059246369593522364101330257683230559042372113648016234632443875544780416457313391535643324980097798941578958209852996692572316093789080216369826750078275791257833113774849093352191614025093268798071623969178714462925820791720953480591537791451618521371354374358313452845833610016080998090790443882147976440104100375933796052328541043257071145257179221185801027746840538181315276458644254008091123870243132720451175734681690188991785757909752302027896652173280566660021004149908053116325166262506185020103753565631739880886995683704396399825621406316383244997789782877982964592872340229462254678444920776721968066961434623848869432492923507977400707811876595281627952418756326741673341019448301923335409310929420296230829130052602991812060324095988116361406013237279893653181991132223378282994697363755262710160934825661334114932004853713531485284503877569698806284860903012204528425760524185265112493885225194559320312638868341892015485704332173133747828213597683255230771801526434009702327126316820514226779262515037050216303244723830691820096429836829271683561123923536427610938773329988924389912927769929692541770144180708028414091395357605107168806927545346987147852852911148255151854311117760080519722566845139727456488375174507552801809672929917762382395296245831126810075971657346602273239609043400214661403620968206059266305374873833808944474354154656168048998138056566071980182115288536295734114501426728413263875519368445848992305447357892367984773137676233681948046979266448701905133762892263835229547094014851348323725228420509448359008121242217853793712702914429642792988662284863552245331756111123811790126879301099655924500361061269224693231325745270249316429110685814316863547469409822148939282784363427868273871242328887380797530786832392421927253504256672320606973091564399662364294091319309287181841765340168600000830155254134821646136760308021702210259439969198036281602790067639895161519428575812512827807905854309992162256457391673948920200046218481978729262939869243459682522758831444180122394310611775852596449962931092493973407193014808738735716211481500236636195409216138614149714960797966492802537371483383298537148737999802256861408082347482840123840871103191119885712563274626875014059259983378279035986903073405859926481059430852832387788062180566754921944319160879748437850500653918206042174821531450212678484372251151269698739626591375012953135311582419055013820998632690135074572352841185540561561523012434171120391447742076310236326092454737410699082927948471365247646834174717642603199455942905211571360315183070938236920695449375142804726352858026957873238105670896049358355948623241226481693000443994227949400308865412276277334626082044841951672035375573583367637758650879130572658818065324984492563722727462598433015632666699256915018894910118414109709325052484843461746697029865624290946976661366858856120212430023154895737713036573214404598154766583977025125610226248183056845445236215690580574085835173730858238989532025562389587605190517389192302177266623118176044865224107106496658787008413335086306262366191031153607625570454732779587415763533802246664542358301739252028208507395456194314581422623492728409396190326785377948043637168605792718340490669376202751716145751326112160603930696872230022059093928132078605987810842363725899495722382901841208478566556258370141459234754108674082312810382247973557901603127146480830955030017799566089963263391670987086085123031176593300417580408200881395187122187800844503924660806695524011174282549463175568812299049135517162332945426020109395196395150035255602575481456608059200630626641427948649061881966374591672164150499798580836773735497768114579044007246551905075268966194872361906921589790976038024206051100929430198774060206291101035341031597499971134432246679753386051111856777720411589468118101658355629910981175420295880648916858878454635637960086043189272757357713959419473074588621777618662802174524641151109845836609606499631377815309208555728495772360397606307445095500373836916707991092355796634774031713492693591612112726103902413322981360690815005225802180714099888552036068999190214419319785700265417069953197107822267349313171688667416264783078303362278565041873752645281157073867356605732773376200374482948160933081378432154610923517284799334254869093803514111734776126679383470692272105427183583431868556190409689275574526407930557600927958797497969529087985420231321692226116918129471078420902182032341396748437601888500432346366620576545199129012679716442139984887334075116327049400558092949945365247354099935833764876936846911582924917126196325344884004425224210169803556102973606017597671011792041369706712221284729796515208479245206103926258146635782511768703317391044801582644351647581643823059172816145740206362780010474577696782312261092171659268505993179627363715784344971756574920656228655677137504891058618366540397003006958314953905069808115158358653547857081473369190965642005810419564356915543920561947676875065708989077687367572966090822940381303760249057257291425869622006450217855065987480477762085308670733014553346484437266898144726872610285849900839891647775600831889545899543014178408242717367802279725703835508499986164688321217037929637945344926170907125877372343218925822632382102746142214558343409509362471255550136439867015328081401873942764171916970091441808776814629358431412584867743468983377249691912364628980690887154076013271526996615348468583558945203099065689849271889462644994805342773397545756217893177907294806730631024860945609538395750674846963504087514319102037725513829468490306032098947705564384225500095830929595281139396792138082932319147881724954807109400490275886914028403846384116340390113498842540787648623543842853845112878087437204982869756294336739381071317322667841892997270173494563696408980343204003485271238710411765004177554562197182733672446908670423126093115499446963469948187957656396288508437578970908950161956806204499610438119019314772020576221608502044556086352264190761894109810804853768541879521716098501618149021387129140913295061696724135771084762976880755164737718411930766592259596335871391516574578358402046072334717205735912207908365355023910494622908773900648655746321378868445024444538938802219168101252521418742041280306416182940255651201758322144056881036808673130668599975227025062766404596516277181831798283279956463076213687960659181608478835996488524137752454875868891800103107457875437567336575385659138357272362492895957407363893121979548744421908962563032804803126786234264832168181920250264820955104255736878602631416636259657924308985499157467232789530552852768772606109933653298433340633148422682006211074192918615295863334461847144953264938532446255464916874066044732415516740040700981740710471771805890022192281791052856169173287120282957328703872011981389821170366538025175954242404298992044908026795267896854002748330397144695690594969617753120720885076818259238677160773605000259669192680190052021367918939729795552688708743182289146426366773517819310312532189736648631434184652549021172031986485139961702994952270004909517661703034188575730412897518111932776793223179998080352521554710350636813425973417783846341598556938038722236570763959244864330012331060044527704364690898200832638300800348534331700031832006337969643466759029003554984511176806167710503579335092943108153073954077977525212954358265794992618634303567265296750576397339240375972256450702834469238914041656960752892043264947547318526504843953907474195653897832492435411795148592683440281720157763087011461056376269371539652704168678027033268900505089761970363350305837789391203860394634476970492762493318561293302011660153813338933586103383479495799911521882788342889237329123810742235703060442425869089290945201525497623661749349028573609700399840843061656706285408561657437098513702264185596625588474302737092704136733210129338295541802986095265539648428256637168959527462813050131571041247788520062974583766695582153590305133284415342994696142160309735479224294153717893510819835480757479171282939344332006732676069759206554693966794984742861902090860954790807245313463846044404230086072374286904181147916621769431480435367959662946124848958430035098155111638796310300729420339140465968224177167263791892564553106079954269534430622651646584491265804039673024432520370120919877097200400709566550885812402124946508580821615259037322303089089214184313207377912174222022402063688846438962540344846256204718790411720640918563836497034804443503239869475767058007860099496538419607447749659818681946481142202132150115520973919040697032643352707048224984555681082796160018887856496750202704947348435257604979091865138452671444057196308513066137917666225465597988780220397170770040949393238888089296239063902100887385594998134180852609746153139324040208264061431364279840967801934975020553139137931380035248637801209853093342467406456470788249153939848630609977109296233221261977320720404430546115899190653349483463544264033931741280634243736570688851818826806718953441956056973684619392225005672157165919053063721826218414697184538626662319385224689394426682431206499369924085707075067723855788134868231275944675954478000523033176967796818175485645736766018242187619315350624738398469305350778359781906456409796226434069500640674314807203683316992987555666666165536730056517144052229937789567686673988572852469650413067366560668989328091348819828640672447782094413502552785682485043631085600297636442137417437833575226928168042210382322956462643213009258646950505340935992071790048025378026449119947885679430528888367740562451947273393711530907593858327678399572485561320501643889212066103548124336517802997054406385806307414965466296645692549338122175486411219198699431627614778358871110596083278990350541686498925361454273263656906848047082407347359081781329817718397511330201148207402821078040532821791589608051250140957315698241552435846289865394547163678434028262756613441365123369766678254224453278081456556186006060973389094843472685437542879391429422176950329424834291405199565867369007691854886360777327478906159525177532481748439256276485106547932373632612145040615469446900178291592129910709482868846130982461990255717519495962573133233116517397884561446134095088160280031486191955927634772103190535318491586203422260676478829469717472666342008847749555262008520739170816050935957652038533440820428015515738814472907075692011536490178924089855982830108622554335039962175270114033611098821251529158299945834970207796813571869523704908963401078424823942734543100828073151735689897882304418706878223628626293409286778792823981268144439096492166626897805710950044381290226671922526512670733135542398438583096841581065058507718052449227304354578393398736616504833430266467855708879208973267230941035328229678120424085567245732932633347599302387623992762455201633951359736545378910697914900239542447392039726480393318069882940065273321808412761256978132907425624808950687150272671885802277414304608991935148783004381823839592191436622387358475868947065361917013365724192875687077083188575281791367363407054343429321266441228337566909015306139773041092499427181909744896701760345913627746461909718685344199514199114953784556338341910846271466792488395704573094317006417201400976261981490699100474561921914735081715123010379082967313104093633233584241404307431643357589331335800935737268886464176377054808320411271330541386760496208102908208589606673437585407875514037619328632505714630301924673506580643041193020770343915037157013388764798611620222787355289191980683904441255260768187439982806337430760985733596997099178220916409489950746974407982671750571307222889866271505110672265443173163254453147239920390947818452020170854887820241477196703400658255848229491952080297625871377532507725351444793653823346566946430761891716366564128936971702663409632274017630659823907412983769692378162894666885892700540893333882063311865689594159667236154140146910112056550038423856347252252991965984992721379718139339897110664914099013937579101565629964812557721303186221917869224871712942208756812011889886282165597132515344271393654389400835872797969995698465928251604015858161912144633405053630342113575680504386852478065624135637015516216068014586590043643393538541467946716101709674132242539068309278827564497746294183244702984737149328350139012003085449496283142359212480214062805310404625081139126579089490531158592568651074188538451902815609735720517154796348942097135029160064896286944882820655057287765979663138844622280030740080750179807573955238569357918000947473904472098952663522658551777690640105874976854622458249481760181739318296892482576504625966933609146880074092563966963999721928255930027516399986982410666946802297569119553298362534030717354775481268980108724757865979940556180394162605292809173386664381252999991264027894103252858372729789817748390949627353408406518722091963346313370610394058559792732120182772175721067645454682239202708511477959342389852291213501060454272936569069595261580181511588046556954592394109161760958414060910710544473536374586562379339752667367318751748231021123088285975403918338082985913637707088811867567159688929498517720304375192039426994625372916962977328232052830281879418713571342582998355013726733608306131706125377268651993027179362002111852552860021258510632919752880537476752241123589522225466581758086734744668967182759098644017352604296163430446721337555074695280660037827560081186856782914829505917650609778213094741938005652845648746001008506176528952410287552729843818931194674923211324291721549317027524160956122902481000084192499134593261495862869516987754499857773026202734802166416137407103735130907947361924332438298459942725234759933620551787492463606281299576725174733159346204932187584724538048411620993560906368505411972087840464444264077945157703279900722277597079426625947379849496154617500928765735808462491544953344859213295864902217212617891924481281694593728925073725082254203824285704299915751673056516679434471274214332075186967457049155349985197097616122953551668855301426171364595646404563373096775267948204143749627061743104903722610365404749666599202841807315741326207076136109906141310153294146149209528173520441469385517080234123730385147451662915640585923613227500268593745427882869622344284817601735569354093013596014555017063310523084675723814466459850332256116915796848683917228398446669204078552124898705491393186011189953887246934637694624545657400330854899448146345352935314660878603188925636238060040628273502614705440815723064374266052949773944929406909353099593175669891145457243850479701598624161376426036216510487662795246498775555039467337471744186181284979286616703370541122338721864153147574630848114035536787779748738574930650801829438771011785840015821825597695356440412486696454011501521727468585680696570798330696122740993662965254653174746765897893013467513218225483774330040261879946470558607593530992429949659028191838814428357972912703241208773663184694345080295675142590873489554001383858693051910321300372687819124336512575913819697306712628198284150534363199693837827765817322357098556057304592522710338653697707401292826058631585479177462697572122673063414366241431975368020089352163976201513968771180056723712421638199189252866222465101415121218927218504210632901018085456701783992523958114483586648073564611896502798761513745641959637979123033751835964638416763552353601546920751143040575380928717500736197865799011782510582620624915555989319281917666213539289860997197906852005620199429179925496889288028468828759147641394703086502909173486316969921693041444118946116145948523679395425327520949319156548093216975827296590775529431928067477055653731994637926009901607873101560263616402647840990063461394035833889133202339051330002195095659601940878487383126474499819781642080753380822885896673684623389504115277011452537969855398658539120944899669285914843784067942014762299392443037264796547975174278894140214888690629163293772981501141957104026921494827802681891808570300012677780606534080418632695373146583260359964626141258680695317306728437739440365204800274751913039098340054851162752839966054186550070423789537964081347647735774181577266026056972098859325836535938815033920471174482096946837726326259396996086996313923901970385647260504450464024447198307560052348510272378914218378136677271202065252232457880172543404956985319670805279399795433593758704211097346639614703115838540579322425049154147460989090356244059972654622924959864036727448484308449554237443876859091561159517030254166710144566501196444869359204211505511134292299806418554329796370673580810364204818645371216009420126050772200778937226764166632682270484275489987400731776919532201025299064354589129448725281626630122478753291147283103496913415433897088449736999154919515194786875423994799502345123972011368625384346880459838917009729569197056265608930539852839491828373006039020796235138885676046588072060661068278809090919237235199412303044793243198031152238045436735926536844518643913545634763610540102690544716989029244919918400262965796120460199452741765882898665807062284481289218534626462283081293439474520221751666441699354496197412891987966972732767013872487871130712497317725708597765819767131008319501037959066311306441629019787277317262656925225986877062795528631798991829149909251891626789842489232115136247259546572327222807723795654638627370501356906534032112528379294493306969015652372091649561482050152613310781663604210825753236917103001492384235579258949531953978012947471030940053597495647389393066642721328748834311666938494832810630320566582387929616833195040387177447152962723059259367191343665870656303676671830395865279243575496195995098265880921687170811741114270594712329101700633207235850218583048693995402675274094783079828089819121486664888093690050400942058646225209779662850144576684543041215994584279067717354389197414434742331313753398961433866772789607432330090445667541366754858990428256557220069709586172230711136446253471131630875484369179022314231694859522558916173929789154634693060272617432066033116206335831684190414317943290174953252138008878172765276105014476597501130061950672371884557254268134815431878732374765524101674890086065517575552615182334040975975801057925491052632169928193776862231230873936624784083263745374795511503762584379432795145053016933126647895169039610169320128094494308854795738131658634794843507116783135575418005421583445840655480522469547587583653317273843379141369373563239616165887336525645653276126525411981317677923293294193196976275367480037434700444476905324402522045373751932484287196612087476912448003818736171179494392427705486887638329277903789629879477357093632710917906035301796457706869787103261699084938975311834619523953041332511535773165304507428924483761703831375000515975476979859441959842138997720799319204714887908877208729767592483003944247570786623263328089241081117970751865986241653922441705804039866431788905837164377193925465430440585431424733498216387525387968353924857809616387570577684537971910351111035802037225435822590742334395973968317658892732524747145362040375418812945171135352233851240485503497675051138342206434883845930828124488353936565795339076786060888409526893319145928153813551094864769872839179978276333248192832132411330765684770448244164887212120345692458318838661212527025065032513561980838075925342275952540188023646265288548153747295390224276508276223809391444983970323678571674875296001202614854199453566179312613413834992096187126907628165065164898691542054859652775198668003623819921635494370925453064336214743407915090109187111323886030373855218639312799649360382817646714477327656723496910632805312980460969628601683636432492017855783536396346438711492666497223795951218464909386994146191990463729319592715980169627285459767532630460583690847760643647556226410142702031274134007804188530934922441486178931446560532255773923132374843065309325712935545183153437633045980999438536203431293582998607367790682159956060703282740856787461299872098558007015643797144315303725523508952801509872368906546123249254255654287197880447197791259809054847739386363557563644489731000907042605039869259586537534773455009733356220345448308627403624457664345770879574819040211810985458063873522032762409395551736195502389578184988407037019058074360289032329492342291111369777738305717166036208384348952781626585805284245750158258760706991715802843639697589336874524054029990691514859020140656719364475821252924439116334995666882629429400413021905321967946792925716065633599629461081548901968490042297945540076813385268964018727068174925281435804584650518138120552345592280511825898406088199156222640574621912955942818698675768755071045520418929788663339670060372994687406733550683139579520162759448083612312413788763552175065670641612613178854120906912873757529480705625355176187385798284754174039676495273553230273336614386879327586820152571627475449165501863048434981679300959278103570338496558044387876526383799368151652155130032684126840306048497906662360842747325317370307702209969067384916531877233739611668489032003857248642912746093806170908093658802213652968922085675939974624464932881572848600156408495180992691056313727661394923790840821283033469356901909802757281380429054210479784423439305454140675757346779085922707863644584507103767793988808463147591146450102545602491800851575854458216817172508379950864869995505817092111642303665432302693126967878262197318499379897995688309908897147009700151954138148448825079531957738235579614590716251822983151380963560440906429116092697400801896448939841325010885375672524383046274040735299170051023419320879526926149639546549066079555950988066332520046043608754730188017779931324673810360840810420908660798002875969553746235362362463048536207519344057036980675529293735217615019311249164270357471124939542628116498481809597845148322814409073492093233176830627292522480887405703865847595186991501261995040485698618918363969971816080085387102306752973112003712469064823122256133950629439824724573725635465186061119049860674417910132128916770614190795440134382520789162339173416632069044098708484143428915255780969100796124958605711705359673133175226621790619005421475348806976360081324770584108376665234359221980159963637255832612141425303147152331869287588577605357120639495408608229819978640238859890255580510925989639312618314216703212707698935927527248497447900129336784971840754659687548363886275407949436417543790227108005566733222601738033383508804597333658822767286380118103137321798268315813477741094909558541789875291194056873168265021341399883749077267108858738273704061677208615599471885617663536920416181327465464723769598180520349564477379443597825710976878265786167854740728906421665825687415828605517460982489363773217293914705997480095610258168230468702307251503781829109197415043658045784367911099303433104643531827983914586586656517237659900780631372331160724279882264818261436448768029193035451881204798796686064998516859682855194023862932014272491663271142417142156858261181203889480312235845694489196509906603380234548497355290911388978356900962580906909053817872010326326090262872921986749217221793669301204078065620787879650932620281562552607961994328633084914710212081661380737979705206695568020634415169747386572844948962082754141358782850648528513801260146368522455334676688658042057831362334606915262783791624445787369591420963425585583660429623185199596495933446673386086433633491552480546816061900198798490846243002074336834412820452822965349545922148362712578137725587930038943304209393304210445299606387500526392770232332914298109011913730424427184342248909127856549502810576713184845478256786319556446072664199247634869517153378222356093189383550181062381282954445469771159198455087595693060245196159592499000171861009389097894466519926411402161037230747645598078299713169307572258473229296968954895528553373731047471266332512441972280097951086724577424315520505828864263052177009692309683709985679009613365382138875791339042997316773823188345324760583422506118441048834091882141830249241512372385932136370216787994530087821204899651801153277856939475254992183685996137243934759461484535150047856290301301180451305210126029066441646807673310520783307367393151116936372881849023761424809421512323961267280732533592747427360045186496658622622485361854971718096735071215225500460232592717134930663350090715636295885290772472340758531099301535700599100014673994421053911580566449432106635072320829568455127643876962434031835292479139245837768112527501427782996719331595329510333356087645833925946739386317553048918368527061488764642652515409165889145636003953814258834381828503621672806221115450777410884981702371360450592553640300188841655026505688310664803669821578618863402256069568035335612471378439364982726629975871748869415849536568751612539933433991816413493394858456440536952765206447195054515786350766999506327750002222262565063638949365073177929585359583510683126835509873897037000478006044786171119204197098337163059346352991592147372696853850832119050812843687687708085760375016217321146833582854199814934747310361506947503654341711480513854508888021652777889729126251611685484710158509675179081217153606268004705452481443046124555419975217275754199946789376741121674007876443226954571653193149387373397315503576891725584190363197942613644483836970799396945191415847396506634272669989071191449568303529727536132642783845945373884084801163312387093925740845847845394713167694256385222841858032632034991946738462031471061746437361215922109931858285823322587865157071541920437012823533729765125291302493567246182832693900795037476966404310521059144569077316789637642226803625029847926477400838581595571670145452239774762302250268310457556948718127399560927692912810178495681241890312024537839288444314565343614775398166860113802208968736669579066945494736488941275948999795297180605950085865148199171573485313039928684710776358495076674687946089332649265829690382442612366030168920225135215068566278724837743980438226612275605807145797725278654573896806990109090790321618094319455276338011698058993832170257595323866972036471889728043074085683334432260737012325475219598897750259574427421390675282435933727334729571339522336686177728530569447161747204677684187342752513658645158242899244906730628150340891771163831315086389405115271345216522966260308672390613128434350124490599152381728823457910530061184963067227147141296131851054200248651664175856546199491893537328863179838510358625232782627236815773414888429426148497040594765223448863506792147825383486666815603617957941628164703892159070302254393014918014521213426729757244794604148927714141743164603113859935819995247988959004059701824988435897689864024312466006094514266841641786520368858844376630796790892274309680351857451213208193556926431538770300112074688385937260282264886537154329378681467117829398727217181981759728486649683333874082173111030223948931295084130873642477690898759379679414445332110521183381466293261252647833213919196231874456068363103816027178737817201154730055887651811466172236136693721093893019369335351224121098638925017999461387654640672870013378402831414991904178701277044235270977855232314702772505557302633480865847484900248304137923125562441490757584173282322746490361483258958059698158581691189065457781246963620881145005530560721128986540709838535992139824661944338589951527876754621768635860766759483428393352205610524876287655461287134286657562842337694363793125497131437741461035051878175437878943648077533194909032729134123629014539775318594822553749797202640536763324118057961717409683595153465056271358976331520851841169628976298791465552845721613991731223815650825141105275405675519220319663284274006314342526170768722789828943616141744879623273455062637409005663254821154064667228508482773161810871474311811930131889758971411064457313463214830374503445485638223503087217922570224058174938368742684309528463118078960110082167219820640262344059739059485533721869636085462056197011022540820101578489515633106718696762558688100703429126829204396127722025678421269919990583706209312565696945109523646132437036907652239976211490258392257249932392282455000993977492845877217493544891673807897955214371497509280817418630556840929019278122553464642290795881331330904267278083891463815269734556971472356141558240459488826831692989994760735747130127467656743538512622114644973413140258138325646095531532093668797526508446983206949260558332543130135477955789724055696939970354886162013304239537809070901303554591789667814037783938085882194952731677248561706059479853882557991513989118774309076425839129454139197288414295702263884723482769118307695780190908055962184518787624626898877625170585207864197678176951529540091640042330049124494525715718394585614113108380702416027998052058643785658517705107304146509421012825206247537722667032674330625220309736062987294536929917392546492285952313248713316620430514771549069111888098478839494080614983288757232726507802365860582365292011387289237836490965065318455985577006629661294882098379684533689795574005561970493357566501763715351378051743520390857625307498864914403185844653514856780406745656244330050535079929252494586133423675257572556792053901311380960553056040020920852702835442746917816256513941691240647454319812247402684007345776374747131401426549313193730148306577399651298046383519618460175999522353184758602669404223774646189527376133051351175772797015115750322712185223181580845247944146508537005095990631084387117077551085684617420892860081351785429011840835520332324040334500946232621209675300760054267777768751655261110427800060910907255990504693171422428694467931208043920271365674060138127290789482539266604537575879271010968111027841483875577052448439911552569454213107026124183438370686196851937522477017486618796561142615554141022538667745019300115979415708823525847691942059835754473266534671452942461316066511449439857266263325201658987274695067415555961282122970332336231659796615648705269878814117138967788759070966134069901603411125129570369323682302706842394573450570195487108893932837160590206382189773630903848798535988621690553695734510614039828966631030862283095804851344453893132870723197562697576808598782215340909714356523722115050481678991024963850276329103340069006264108257875284945102475501718387781861590707819000028935120625980292029312985704301544648971631394188659945033993464516183147353301722944211673310844693754552752980061114189543830833188968984784109454597367580152156758251732142654283387881034691630274972934232547971246708315376831463014990038425767024024578063699456429490930571032374676195578217199841711055177109420316879991949033896588089132366726285443217083586301021352858204737202824856115100856552502292445353588748396020560805323923822965580820786918951910248685037983429191989343190032937498320642747217269752997983209781111502382454432456832821067917979740625365102426204204584850340358497198623542280791689797113967646112531210092984843072417753045278472884494455298732570207367200054943924057919722438008557436254345091405664160298269949741877852362881721560235282877790731064550758965896141842613011124115771069218294069697459095155378689835961581885541971521968875726819644085198630862996271909639871606218870170077199546999190490057953083771639579848923719977235874750078973391911284646693841472194437583394953078715545628976235139985504446718681265426836210312066002029245352607570754243804951362473175213600174347817064320323291070581381181239405150686403829145618751361076884236477147693812041711755313669227193726631949333519014416826941437649107842566741292948094308372150301289050369263949988755127215391861421531349213043793812735754099737804456009185977874858670208860875366449372490435744737554771782302376323768456976488624644881430756020602088088523421007563243395113859594008651376230939763357291842865562597939391257857880563913502945836276323579513927390872235637432482449164779902368331447344817307193206733115776695584358799309023432630639631320722378678886794966293634726114960144034930492087406171003025916890803710925092040196719902649400062291924637265601933602198786785196923009204999706350806684815937231436378888942645988669063285599941382430158310966011056164146921197969290989012010790290249959702357936939434046861686898621205056758739898767832195352089980498975075978665027781880605326925117765660622872334425160142026940502054090358075649765633363615273183695671983671294277188416096735736490957895521316936363433440751895367622908496967431683681285289074107440040886202858676964898720885840757282885298003988498329034679321901978991701581393063584688407559545252812130073422658039127188153313419568844095878709515099988651350163324756856382231779664850867462382784515562793335477042373957950430313633971930744615829544847047642467092335293940047433577395792830977419109779102990168926264779695779405695735275977992881806542654621176615686443870866437458156181353224216352391440289535299529465465376032145800683365509781951304474734733650511376767468985628598376689594099203102685070909851303627967678172470081758104070114307547078129884590000228391137286719642143435103526742595183297483446073453128830208092489278672959880457596385213877300781003175576314837663115769006436705815897350038663565088420763290945204730964707807893392084314220599802504055728325480870071063154405970420589944330039857028191449299901542726971816618732898608690837623111403573155131214442208978754492868162499350368558106700032254359609933373633224568979603742972428274272969194086384595514998019147421319696134575307483346512132875129905886762692617941670698387645294949580307083013046973893338032504412137093251984610609852441684578700069370707188524642612792697948319301960538855510308355213667118276988111918737016112272524062859083171258926945074261089643117507308544429226842637487295030612246494109459082358798136076598356141865232137474770173775393257264327608239965290949183388469970801803933072654088930022131294870349429871382638806792800115410479792324476384388069396566890332906030047023161458551134479026994146724754643117605519015180635250379794679723421628595847362172348116575938070679131079551565264510131816259977314631523539834885750655466824189091063975822203699269001019374701316266967444507223197108493322941236893455358932605670250611899991372282342147102525146572852291943918564028207723557516718583883040433064025022285641639659533582458283892615744062000297553413688514075983168336550192290722274985123399177861549723572487805322979635329267154341940795522765399739399415975784295600119131838626443387023527037180731605035241645919893350161420434409532968216467645784700380068567837522237183668873242138155187104952895305042881274141236130118418026091874113371748698851568010984090468058792310646110673296427656457132762854772032385485784518809263413388173230863368097256111112864172072200610093036255705767026109950695580361528535494927211079023941640769072072764432331484793009393310467746263266806374153475105807726116292299839906090857473366028756350740034825233654036563416532961745718505972339060514744428774263608997257784476083251210662748747553184099879760986265130755450418009480814035081984197760243084934097497658263537282015389759670114331632403512813064938261537508767021061129947452505598575079426569289046107352916236864375314416963973523188315576138357699813453012238511569504632196746932490268122381671013747165848137424750054930125689236488533926616904747030519109822781033420070254277804865357475970312236477198079234204212734593466225306848124152165102712196114167569524817629125510336231965389932702545375856190524809963639891541194921581205462502027788305353667465895317531403859135817613761921807897497389387912460490091620626172625142987080999686053992643741856855705267877268334509193584927000585664818260637978801971650669341135536544586437760095726310050480083048584773723610894346604328608879098527567882933631220466179499925013802520579255567395606579374849088517583659767375388556318816901136542411786192099601675340804439505897637798968426665216821305311747100467511813513257112472425749182214820433891259600362663532669383056256568161605830883608955247751115534451309310965652101267878652844757338694230156053236594964151786791420536039336184711181173954987304743035708954864729540483804740649544911418308584615858557787367277056328112641962331995710605946362725524531403821009277696526430321989814152815084209739979111510051325682771924605837480833136798515498750610774122864951996755647356879625855931391500694753339066303582018967553195060661239933199072429653737917917216657337778273683078843028942020651950247382828114798427670689907432049866712468281029812628790796814849690525055275323305292474943444818495579660624845302875613315141310925811117238728002757811009997300024103043316044914843053792296039551707534307167390164545122455147063165646547807816095564932003408345099841842400307156578963277688794677263543903743230827139472788821279171952500160910490493621190790096501429263104303024799178895737566685098090322880921573503420094378777295019937211592556172120040216802280539502272716895368385405491274081000187342616450672620430409662640128810260122819012140679570279304981095423351444896062487957140983715831764814825720468701363665170960243062760210888886624173257520530073234087003702991232669376408997044474565652097135070463132139312800409131939205584407432747136806452985136544320699338642403985323470410842875574972631645587174954070004205354939917487732886986672058200758884384877730673296055746328113479264387708429761504043034063958177690286793848804631304072704389313342937695491230439499222660493531436706404715627372866330261385508535045722144402670768541122105873896771545958146350092428915388481016182244144869822981576098324038844380954949848434087111657728397755016882875436345257591930308891849978200847338890964417496583316130760876988268860564184668637222449258677241837528169719076075786070594106580209745782751617312901174717177240340853410374002267739034021270328672905198074509972327041986712223671678191680366667619782936546436465527058907481727090392814995198941263290794713991125315850358942732985192191294469447729408393037040668895432905782573031396880819215384449861152977653198969469888597040335268497767321145092441427529342182810509701385759848915111707625862292967578951725998180557098080818805777582842703133352846834824817465529703421398768139430604821203959227612647850895300198892041424018452943544056204006408791058834926676146897379467811659037434316014537715038186641351741507422964962612848703098407665456282308967757740376564683526908823310157645734353056934455080932463002041581718536789298715907856139096852853533752461805996341211076957217159932624922977410738868840215288594386665871010426561334558371377516780372912487771440530903797965244234680154904433051224037953164449144476371710591184828269743527448642140096520806742934026027197341981853567375009849395137075963924124214812337576478631829820125252944624274665356073833366082958244108268478662631844906018317829451209081976704594536161666237267728561685091915681970641934328034082364638236512129768844477699547897168491390737811152563409971307360458333359820498831225861975670561739631696699624101731174199578086025938233294689522043177570180360098016673712517194143076141670284019664121459301419409575630931466749898303346123989803506750334547525324406006617961652623182882934103614266154638384431362252296346592966699008520564933968525629950677115990860055986559510618898795664697488187070088243889812753356101421808030198180366623057871503621448135785014434081229909530234073532675147178861629004006472845438514750436293264528396019014507385781551768548871276859520786785394105142777270694306013284025185884407058600637578747104485410856044433368623023549680513542429419309407119486034749951516420977961326410553123768322240752877166782999299500428107198667481425332827234252745412847093848937020134426364642443615361240097093324380107221573795372295478064448799986406628135719635182186379851397030083137551967152562590127103512064227821129103372828272062121994402974529466587893321054865802145909283171300509026194827575407151831630641927679432248679684958628200125351211312807882646141259689997162346716161037919312065303614164265436976252735242985110060456665188566565285894125484730555381967435879797904995382390528011387072717316274026829618070853267792493627374248156467101489307517098088577096144782092091529697408133405847178991448292130720825028002948559994006090527112496144194072080854506283262891352662334169758224273636425110471836640609366056216990240129729710568863755694776038796508265972327919230716576037985408740986366728444147595310561604643000918488919184236283441306635006239405871966003648049338384250390827834875388635694348142363564379337064251051705480712618813515977685007006692397395209737713954834295242509791479552414301444459316312129236215172592245198028625112762713847145151325308413069561056493716593510848386148886187496770905546818495528808842787230896380457704572296858028995364507790420841257420112602523735750987130168368856565657863563137023932883871521823903236895306317953125172813223566722840622223858917304665056616832248966508201920408520622424569392891679456998764117534969505371901759605263354047123343959326481045191687974197604053025892830725723275612572545356199239688938410800343692763468985188903240781007494288192751796295768907370080073798415322696754602462127137737827387190117610499142356856098234808289762025086016738434254164197148777260197318398604867071579600523794060102924897566452609347185647683545764890614094337841088031256050940246044079309723916248181072386338458114405319368654637906563700319256523888849627909353408751022637504586546774946795079992225102495089167492824858594275633154320470267177352270155627616819254597284870252708272917646362291264078227989761791846857814682157354708162605979257588663284041650791636526193417758278716334749435760077753124968410824453395806558250408457308441744954876243440110788980231255592057750300161225156192620697139641741119629496709317512282343879650125324499455744335131660421478685050872164081018661941373594081491435745166342298595054620367978222762577564364841313127701411057126841700984088730094212437629184925486833007820031258120490789436115542893438209281578838314358394747253784458175856955919073523056461578440467649191854963716101989198243539273553921049126110264147116863499115913719799403607039107350129341112912804864218796462700356223138340074928593799027419569400656356338507399719020831447113716795322069742762995951743990434216167485513325992682926021411490327895951408903136121493469809515831743625027886467226634982987327382459520513639099448501440212320274980707450014159256461129931650333667719029214874975566301378421376878037613978420711942803908803103999686203689363782985975958515879184865985340338262449993156838416885849769132991931953908423487624045209316997988175913312913489151975647160091880338687779974104306377087734608802923300537432388052676116052442184469397029639588650587196493042393601653711754662709705216494527853692947859330055507114159474889733023018682144641700139358582150583295939125867625848677840996218976589628600143921717370280990228529761792807178140159202321475227870494621838754706215599066484758317247097987596516258478119241688385008376277828451858437157708795939381746604835824641426195532518547278335698882227144107367060764520800893250616233368345794290225697914444445709981474998477078701972545095040240689803254394590650310176213084827139990826619149481997357485018212414515326641047355038089904337839713012581040809543527363457901573294437785844014098423273467307923750759239418810747708998801290970651516869190700299195076830250210415909240461363678900550161883029700833669629120734464565149995506631050501236398507013398273950725248334082358649623171590635147302696122290681473055355391137357607181157259733823062967029784618841314086828528301371432345808064245257243808199971822261400425283249682773848442453238078283510424998679391084426095550930969536587300312655341420785138125000119463127595951715113334098400430231832329097352009453730795724105203579455637349414742888629494747831073108973610716052651094781335688478282080423719597834081698812367641874918704127628680972936066407032348337024614780687013869317428499441887423686593825733742593304920157905910327901692279564473196064511771472720581642960800410413053469748803920752561866345836932502821584889529533048006313965247807129048891163105053069295192818311413378559485729391230887602365675217643341132432769536432831380152830501665635047349166551888217313583264140216680586568409522947446163566284896713860985366472881945278796159522778185257262036385101963609895123294840672580834400074823662670490515351005746836445112111168840774617876925002914574530283380839537401961525860853680913876680927890678687444281407450847524061651247696660389908940159260249751565195438069110250329188655074378506302655804861924090940023892576494671711811254462726131913028982979154940336266215403657354303456717288938926854045226187354012918906851997337977726283470202404371141153300002648186215683370870497350496109647836448940962041294186705888467852947236684760967290297476266011670089216973282206924928206533436860416365150062158442062337684934508503430275884269264127761188560706151418793228309147692817773548209784788379913163775397470391934778104161021972440869322472370802565773672901033600469540207499830903213715836034431045010552430405178226278494178657937233899308078213908491205715733280894873282780203894647412320142908543718989757583137392825478836914601291310619359928837830438521465391081962571664925890599752497992710403649271222950147622967546844507892865553685496148978760628248234484212840431231491902448204892161666514586117608426532831022379091592494914058706761533857320104971556423941131958002366640978533209202665215821039706917720639816099291144680750772032109758650558499596600548164585962527451422784121684695930990723750511082935005301241809382919096116214775538159427016249943597678635645369758240473116328303744873044015571958836580350739568967381884830449429354672794325060168305688612023782920748586143977371386082502881054863616048590310920706189424883398285032898601392696097965494497831111664397320431368136138532951500623823693050958901295540039810137104919227017656248810774406692871427083539399579945459093383109590369910847544750287938069837405687321812144121432200736029353226413788403838178046721190017777100139008603582872205052448813356134720505769172576233308943497276821251899320020279052700676141445736469089995498288981213538250193427986393011753222686352409691758651466200006022057001574274436610283354182170856785458639645623198280799455163426772242476711851334135997723084508215815398849996567697438554442102865641114012747796647774491375777510657720559850959067103907182151656612089682517914683231977853794002756554247244278572577377165704643946478819428924972240271276062723966262871111034855710498792658214422587756975031162969727919188353859268472964012514612800063169445556562925774186387089338368288926841632325721526808008469252946845374168338799768916451386834969181310053995886136345938242954555660295863323741082721015103059251919949085557800963417218963628229010224460221311009750502595224192641152740094589336753530919099350825712889488849932047176005779704356781822652985007141040781127223475398171623326741465204564027831842436235603557806087450846613227760492848986949316210433703112059179090259213137251061935062570343753155429380141941934087702361814684865294844125825422842647014008000527428298069218079423217458580038296659558528784086511428804770566968734409760667394365432480088387151020802166077754135132019109462313988099189639715620876538553494284372338708967074435316789647640303464722061643646750370008631654172110478401560350159600076630150525913537637459766201163555712952575665328140264714356942058761760477955402870059509854561348201031293099985385146090963939312064576173864542556642307256798480371016781543461215068853708573247049357361562068363610363149273197387381661711918423880238659936450607489410937298348617372301695097466909160160805965600116715020169202139412161680331975304783309719514423110302675550168554291275767785064257512327784264044556397777190479512668261857016604308538019720447064579856595739072561281101549043843118322381286005692721441666237828880978619536185771739565067472197897616376014783745001631452105125554738601849558054075128748838842540937362992199160077248121137970636281085963807143034833754011762048538867640964339837026652839056919961658677520669934321787275290514056828582349302376918585708291412181689985903758944751986588095764520303479126390582142980446412631498338306182720145142489470733359464576838000025242285552766558978025378235492234140865101787802160216498600429786595763107816424149987351805660061593315747937791449866790458488813598656983788213063682637594584826580784596568465829389670245952012918157228548174399917751313625599521419105683783262772219325719839615754063547218464160187494797253390432449398941719806261997871403466492598978592719553600385029493096110712649177210157313959583156920779285638174748077627886957141681967308141424234083505601564703934860387976352628010187375275299998514649398556042044103249103660091943717827272623917998203436269111274853542913790933253481615031521823418462156310747379716567539012365120090873796398783031213308651067168742299712573831297010462911135831980706527387026431419195216729453314676402328163142126073159146145355168582879481308001766059410195831584675216736898328618650666738893358979079943407207204486165255604090224594310277551027060478050386323259960351728727234365685007503555404530428678211638860701480196244557903011101874625068076430494558661000837138788847314466444135278009971741282338207801077535854978848265296242506621676546169635133663839615234484647509346506470118843412187290361395370565454480071929997001855811618367857030132183496565910125246818787421522937583446826871849653485106614579017405852325271692793346861585720032056170902724092300408104766972413322478484077972403989709588073804340125937919931616572890723203949103948956921065791600324655874594463401702076701188470007618724191503711578389049471065303683286721569639350572048803802282527033223630446823518377744365873722011004545368053769104295821730749305740051637924737613683028212301324653320765504243283968052681908782906536798085132988006654418824331443646927357384471882386131589215269407359242435556757989540858480597382850285860896338578270553007126281834550740312603188462408702337768322057406936667552414464742040611450274078130403210618747895475928242340084798275598566624714770705284856294810841642419703085591270535353572904883007936983209435919412525299698515675336154123309449846126820749712430577574195889307538558431874445851002477818816849978818149533202725569415154478492064864905630786714257386821696255896258406746858253747580365360957863347774088665714929883885235806089073942356383320921374318098208409471135799574873663841150527322436684044636682872023247715148834286577234398451200216976315810504497795534358201261737451200350120610402985862780457319980635996841713576978988635885572156361751117515648580962348355241208141372880450629779946892808011761570030466706863238001952409484181731785169327315511983999976814082449651945712657421011208115117112767130231472702441905981023200259001223196686444899425743233077793150107330755411977839005763433964895237962062095199594963372997030463425563792913851500417838281032725848976394592234482159743443760618511984899451057029478686028219497180553235099932624558253652225230492182699243376695703481061289090540593185806755271217951582020395750480877212414096159809071011962849015752272299580667355541576881751026655635737489382961847768015255848776827357110649953372803919231381103072886229261703382142892168012695925299949187367663163626631675570140422055789608851550567128769056616719103075442589467458401251216816886875702563098789346099765070102645963686853391836567494147154971724813570978765849189373175600660935567347380238675508736040297919939652685966053865286175858503448701688980354957006885656176089539553400916560963791247160724257473182935577010265583436431369302452105296404018808699007260062919015585728327249583905718472175314593071509071870521113525523728550519474778576566081375085760855787121605755394686328416274329679053462616172943253708077027575957109512518856995027498994021390865158455686040104659699633005594430684020138902451073019211342143357109241921558523599725273977894151047199196217929486410412170556343974778795171761796506466615393528883328471448798731487324152048705300160715441378053750819499871099844083704855763916607906689867097008473343404388718220151598406702828483902835827824105832723067033416871800569956351160115646135380150327468990780987668257369427921749265092340138283390148705531897176712181311645389956353867533552189634215456016672478912072624587866957328080124800920140140554984745001243966169157767819041228302108239654356962228392501046089606751682139243968110238769197254083601098868222094400321261604393032204396084969639288709729540748256617163068790718977204398032492669694225517252322234905134946906624044753686330127171685405277262890617483047327115145040820188803974790290735097022378931299084137753120807901366778025723579642061488068255251628543996702660369143923250830901700660508028818142018783889673293124322836578654364256899558474047346284211521027384616514519575888684028325564761848136579636886085670906790479002540957965023883775386773602394419295496732400755727535635191157503236410159644560314854111285944731228326012225119662636920131891027971566816123722252809820325203104555411837727584315031329222285889043393319714435333632240484798632641375723241293568076160628769535094030745962230254285988782726730826360803984535310450826396299186962283719122032656121903820425744943053884721483111753165245517752756194833400546552705660000198659973485814969192250289590287836952595999114997353600122117842908099991781433179555403552356499545403015460710129615608824710345252410115601467208973284240432145690112714237476393815985176021638042826660079349822405958082324347784535668662328990587185949529936788454040423968199065197164881490756906093068272100534030403157465044472153243128745613186485729439014754425708632698628687714621998262631295511532852840952098895409990836281964902857751696663959743552606648881947141085016353497617731347825390101426501025972790002806039224730530387487674412545294444140936543487970615554140404930103606059768863451302576976592331551473449804502432322250156252062620815534239287235629122490993741918984043889216176609178793984981209463150971356133911892530708824622114115644866359103442630332834106660867469759607566945637274991622445422009792588681479168419488514296386420681612189412315279988847957158496032097767246382551677244094893020075894147111446272331252923833823517292221946620268792124055786082930731849669339166635136876017847099239117138487006947056995452108808240961322438177965591573224072058846039572744190895402288264949202293888105971956510391713037025565433926077761571064076971356955041762464365937032109163074550398017990636805731544592238460822195370974273970159298412794393938259575537624472158880878914820533826791771393700280596900769946792941764390628588739393744117389612717090258435003865680965534593806449551587837840396393352101446595499085866878793701228702325052767640908756485117110147128983903501019686358456912031207996811308436299822802641312023870540115833525579549844459676901303146247059087569916089267326502287344097233661629897617948490857878059678133017207070402310591726734105267752320467427310605211520460085826386499588849395191931523522667982426494587315960969742253683966018181117199241124075133176901202786322648071392842982879293314144201245349128441348051215008655494488357203537115310554335530712206889660354359531887502026611129898088184113280415086704483808761813944650058418884863718629567872202748032218168609571623516154740342213521420568247096723581553002247992181213934714640464995294320885570755722467948293541406070550318999704404853890747436564657240309223114979538009545633685318880822710169023838371078046074658808284574075394635389717623313779419877156961557454981799476368691087625812036754556067835698565018125159607489244311016948535599505397932233473806817798937594305347411163969541610392217067774248616807734414786365860311622206749388514904876732137504905688845310876040392918893823957223536493210610259524350357726785430892596543961142838007768999491194423703026700594565610553752869829674326275860804617588400519483045737364568628638297567861148793939281522369150928177791497405580820182813358632140355062156529553800752404163564533375192307380608731640541931561314384498968741152335773528491031198996401418309907667469056655290073205696230667694812564268332538589195656668905992845998780140233816777036635077680993923769993026492429608757074774353656463968847807028841397449340955977771341978437498377347991331756252698877224339094640675615106710068678288725988446207300448813357874799157709862391078806632709307948512035862026480863488356461127773657086409503506162516322125373594348877301416128505181719333048832570454677286776371279788841852651220507934108078750226607701541680268887308927730891526390460483455714944653722633106791133422170406229881235903785189197019513640393120264691123393052254586431208702590783471119241894520381172061099029496186541398302896640931165434108978711081102233442913419351628395857473385978339506857504764704850282859991532391130699912109796496573155662627810704641599848256863261686783354053149050252392572805898090934785144096071013396927183215151490323315620288804513087770851894979616601046687576305920069205832616623186839590117332731202932015012395087145852016527423671090874906045477236570297497009158732953337110430538806673690237321720682080042833633988611414208351572196649280734883668049751074123263616399845853835221901691501133138317544872161104631187500376507165904153299493557886480423767921815342317021605293439334397530635525667482016863978946393295797200173764689620845482006886352788505971915653341729401459631186455507680137631339704115233018913413081185075642673993086508640641320006072641175122172043636833454396870270452184004142314735397883951627996851352909397124087559148574288278015588932505437618908365306429847746586241741019975007199252153065658791836888349837118080822160307904802177325349982168003819800524601557369813174713206043214828843957424528209317912030619337319315422748585645171281325681811492153103590578573168314560001568776084100492227305011457692033493753517408268125646287194600895443696618179298623697367486357330608556111201901824625657850776687255482115460256443129375036566899311422478826556495189989333492248374285682752898627679722020471936338654649001478799051722869336365940595895215315943324360216317171189424865378245582732315236648757289287168743122371871399201270617563365810603451530015107612310488739348933627656785083304508733673028246469209764102753960159968903557909168865641623853312510104334280290345343052417887038373993533643649546793298426555064873598391168055149633469790457560160737126312747133323266984533374995020319092756276255281098890163888409816599036521982228055307031592908844079019487662209639069306493406984414157552799657390218448707420395813115583213911703078841595222093626599046130794546001012011742862633262912536286199612271788401279014137146341639344001144554154168201380098042801726657301745718653684829453811424104518597695185507902251327760004053710437796240206152302290620199351836221598652727657942202867872495319003298031124194452891680649072516964016811990128280313255425990354522830595687076988551226503175389700640940241110047726122276209768450976895162718658451810438686045853941856179523764191901963756707370204400696756557031126572049688958835545510037900273330316610980307814481886107387815321947510784512596911802223676475042169779156080533834813571809533698632931156913185175736004267364408603762479778234116721995795933068667218510193743685884788296042055869829161165875673309501790768362797452134217915603620737613981982984264889615825763626027740765773942684074976300810391506271400504735741787337591280220937765459848936284774829557667764991843745676859484611789429653528966013345320922903057101995843540373870788014493015539606578499000926462144353011882441904986578982195784827152177219015344892838870624796995715466806857168915146767523375560924094863590095009381243346520321388078880612178849651005409850452240281773713859803205772248641911782149076632444498171283329479082986249577053409398326104223642169962917357369269283719781139735948455167157318174892795888019768428174074079609430577534872559913267976997281866192081615477499641322990161121466677670667703164824968682306830993656482372142119661348812322290360022328612036732680821714161100283694954141265889319858984690334069094853141726237764287876213288541495380694232692823174979659645217718804783085012667753100751717604967977788475510095297386863244477720973539397011261174592626863992284891848290845843573764590945642854047124809104548795325768648703938564630064867032798747237677304227861956058451263230775023612632670317692203900967156777163468893863886876546724185983890437817337226998471470036673545733977207141702144209690442722234535704819504666981884483789825075912750206604896422993423467245492987719384108295866609208839563740698641660735246954429054459220822437737961561736972636380819043845076735476331067715276615116025169739564088935527636398705540312779947186740287669326767363168150824689281208739523376626549889577019215249407561828691365259410970552934039892639775767094194480279681051405223064641934282592221203592272640635797302434769946140060391821476854022372626650115211294936243056248923199600215526925500571815075149392507930785592951791428959799143692021739916248173115543971587682381500658703636744825899992507094188290620058495525709484017871959677338073963109826674325551971413507132749138080996313522237583027669833758265877636106397395281739425881845482502995055053062278176786036887358141821764551043101343299038415633338762457378108099840919886620751113741537405932896326649641346450729519724929342438746255107009608375289536639120824629975221357456322012103370069659564698235768288608900733158048170419543353962066185691990954620773142681994799308833122564995255051510107221064762291310234427420104656158816036921392853733062873680470809623241667957835767334389892435235883711509983398092067200680246322501389547106230475054704697941339983309305176473853039042423238099249742549989171464330880726904639952290211857858228442150505394000749907224222532224624112305527651124843285514246734954943386144556986844524855641782112587279199456529804007255418705746635052089950096247863485621302567707914768751880748899414470362901693894079602204605486183010040994265434490499779581685632593318920517196119923882410885669878607604760600296244679289077197302297598369833275414156138981708261335192198695131394559800526079700495267282691445334038405921141492792609561943590922894681506418492322783244694762258879777611779982990307288114329029719546646702382754927178378826908643590044988861407858357474502793667700911341012643374659324440586932699420617660006039145047800545768558669306686075312734648148530649090955148841617005905881453573982386111204803498386059450519519079448073661587159650149139730094617110776983424425131650826645076957888647593236600605762381135648314961475604122227605682752797195919886935345729794622578290978145358934849952301457244879421660828460388989038733578590749305544759908497344379400001593983532331615954300272207623395360959695091495639933449963712684621168119902810885752758893557409125284757234986950414151980776746575725110429813176339197319242822013827166674723852269560483303383199385435852061255435163618074339918549305545378747202328199458617049300331602504659045869163802295048734232007940513517730004889515597732727440105073987809538032580013131689091784591322692612060042746211330889476496768936066285288166045581105173448985094798402570768745804319755667829340968570395578505656293118730670536356739252314314112247077592172411881199683773445754933107658372270137193505293775105111167058035122446505001402515487072575422929482043015687021762062009666724481318044957151189122825014684640526992847442827944841278871122196727373319238063578926915042044746651939254817367381147689966312880776768892579028476811574431644971356537415706361729291346907946960553192856922064487733748999365646966162237041174515758477396034126866666008266798982181131699427454812473150075044534934725036286319144497078933944206439117876452401925527366816602068908819057852173824483140256519777882523240903955429791979990003229551429595114352309420761257048410163441002074003975418358264021652174063839319488556625735566671411148430579501915706943120299193260388515045364240694958692606134652107114742480626347056660542161667314129723367555890181252272560702469805307695237120512689425714895699113427827873092381842187716972159779843612148454014968405652801124608945211208859027989941006616105324130659169827913531104169959223492168846537560273155221795170418335171693187137794109375891269165946531819666197190689150427542570054303894129077213350435695529185772494235773400110475707044257798855146491719388339307474703691831212015070682291808317268318652395558283764576575639769637014521990112160959778675933085455716973078434897995233239305210140170928360532237968051305312113797391515521047181522509859005283833976466074650257805682283222593276479490922809401642733624851685389551759777746844565324578748967302535552511826759559310429761310232677513856754783133310516021764244961653264689319360034661027388108080644837877374089883692718341915013175581256852034977881316497588012822985968771160750049250417383170293904799258699652615134087928600377875537686561061871700333620299765904137330404750329445006177271483525976146829036305998267319685227826519715980957404555918640848541843818070574320144938828919351680615400173240757958808515918732917605125888436804289679874647240110824823025928584949604759335368750910104824183328572505536853876698648229759275100496014410405721017660432883670245023994869155909463399123677320178245052167435984193768639526198403789142391659561425768802391591501201269746910641363524458219576380880443723738938876477529692009716248973035470144377937950425579536045220240197102818718396684049442751237578637236791064652285900504771520463886134434206859726556674915575131881969588715572048766245199938902711792964039350055552245013838902240219987510539837540276302965901099895237983123447562433280047461935102348586329921530992352520250795883975267545787098551701540086374550723508808493228760381720361560840012132264479280755673008702169473143741761631490779105042584292036515723323355939722758359984047613524079527213056910022688029387708769637571004731601960186673931735733918408964818019444807261205420778122590922108057747565594984688498927724919934276165713255035186145031885815044147244427307903647315877532553927643275179306396148198112060714506816875426490443006319037397160161997001884743086636333160756655092556398565342988598057713238391566822742648193525333717492918317904674757446067172197510248054485139567684781691624291985352988628990916589809036017639183842759543931293303723698404997019420044984491733455750248798517326278162897619197888527655194035778592354243742645519178097417473133170761709022473867665555903579792949187844875739381344123843255389779889091772877860538348958104674904845276340201183391902368585322650150462360625327016960232651763021602467824998803455667625249119695783066109397476160380024008646114345770608513953616874219344001820731268896567789316385592068579445460054719860635275340580252663796524450877339563559320313361303927344025452703410413647286083531967651638855453469085239976883010000297331240971956847518072811053726416684116020264979985888625147044487927540222748157062543519563569432986232663184079802230530719842584604986726497290218689313074653338190894781512723644537111501630969935443343277626959744901663414622609908109956124106182470340169118680437563850783616567103632918932669235950560035187843218780712682102750587047948621480766502969568096398683917293754207956097103145862330169289476253093871374775026841895685258556390116266519012021414539905653573279495899129007970958202633251327337848536108718798161656927799922071816691107015120075833989451159520923464066836992454507423478014384120727233801168976442234219777186684478665971729385448657541047632735502121176741398482025700413889950612133757830997845067629344925698619539178850303923734902793046895726599847065522630147375523820492111112358356782004682220080619354413300203615560322997984802359040841810375270407602557868241561684709362192690068897296115360612702667813520524575588687300928498468544014389524427212210951952191765382379636250192053224215600736136764846683017469563926523399256549121241933987323858646456475245446098455600928265585453889440160812259483314763313718110574480969519683160891633087144257217575082139376000643457230685105298632010421969502861529586356497545959991349132870985800558775850216189453823116943960562252774971184020409267197189121662079020929005637765299055964229089758785399179720358872477054732411556573549005673325053626282456666448800354777586530475885926756984978264070783234328500324651298263773427109922058102731951821083711226004960729785217541744825366402983343268133911791586647313479266115410673158386767795269050373724589561392464590108730632750727597719107788915650516545188560088308629780045498718967373521749657447844349492761645780314725225409344897070006761743948110245118199351167744564447200632593393578907702520933499443916625100220880471255426917691519639871017222578123587145420612301401270157127049520523549305300877354852584341202883130008777974536967136804905052574182221169117110602474461712723371034179392511327549210798667181230243065997768739340474347635244336304345678162957216104647487760359360789503562396396476450645879120149280292076344734922183201881147912137485630310168380466073537718115556146430096916627004300492135872690129989569052973315121475663425938693519702647727931366210505127758879075536442075820701741871448495388641102920120890197935528882768868845857934000122891207001981684367230270449705189950597640569414413759095891336892591763937423283836402383983001780840443403608443741716110543643907205407442992566423069054421523668903924067625140915162950330709274158260561432415092583357427324858834473026663792324892062732162911940014998506066004727718583367034458576654174691224053289078680134878222755925582611507527997438486044262607785998795438672814974401258781793932298908739905867423404639376118400736577858236242843798327484518422488710409950659863653378288128669400937184718941822755446703070058140045952198014962891167735093792269620862158815223896495972356241480319198463721636734237100065518944885359435484777936744125352242250524963029030369709385481558588751816280314229805737068715138900022468820680833043820729616076073532071138776910214741485048627005861122347949845734115226345338415693921677632366649134294073873475716228065186724826592547511007818843243374366699154980057085498017660199386006121712199880331598444262620218412705666735349242467498867528688054872710146362860480995693521099782477956031313414249303931447772050763859554611578557615720426983354938575330995053116030252368776468590745501803664862623814687703601945478570534335210142403169227007915508656984793046095171358029795583319700684235509484209393612456970272476429459952037594420174030786449822436194284807104566967366092821887804790428147131526234747676017857136252293660279688732157994008861611380418272962481681908462566981408531830848924186963476742514248981196138869190592816841951999890188128244751399817665147151720329331630571894561422868174279086205932024529487831944131648756218919708419562125072112898982945607185958925893835473446786002177472970650592959855216654514402841879316085593169557980004441367134389407319870045912957949923739169328604296377036876277142505626990989296898802671627606706076881364758856342464750254101350035916069314796429436512463694416197899706415678124534180436643501292087142370078800413069898189819282981968596795280555782861509314193966086520416334325561694196486238829711841369688918390642736227168288310085581073999944461339659825427893625741805007920509396809290844933559992930339462307569076116076840785186394093372113464592309468501902312160045756733902642709332682983435783579316870969707699180057486622870251808043704316095035044757768918022032678551907186187719745769723052159584406955848946577702168202774754594132240822275427455452884369419693666125120155289849935425488478787097543714024278742177325460045029891717556674679783293849139398064645935822694051970850533827843731852773731563709334945220533984964253215656026100948455148985275106161260148447708038300338337558477978104072493611205153190379675805974402529980390475624143342254536360420677533498777058223640162432527752656221455792821945568497789420911255785224926249101331101623893350723124712702750522642737845616824162948383918549366119315127245015790161981805569048022907393430338893050023534341819118811707876449682742359146952918278355423681718014300612999687203726440012505036891503189554110667941983044415405206757100375560460044982193430035954774200498798709343833084182707850006949674950195988610833168396091473587942318440812911243051564329027055512349485283455920850903760858188536337672757903862180310662559370204955804002241916707575903141980545693392497508892724848774636935141048727627207082894636915403572453623137065180103796975671949911765465226964543433022432235694717353358778860258510301781478471726917055360121965871012777360387494522179162043259611916507817392826484771872920744183446681795412542698070817078855953357697982305171998121556826856937876990630123783947403581552143924562891531210284725166907433770003246870780455082488516798524750278513924202265930812965038787381340880028340857787741022970929819731801968913940122950300883912020578686459568565374158366165470870082009368449321533772843332834545694925332541583021391836956387388492245187149771124089489342672846317205649655343997525065323056172988202922965356639806073161711626049208102202529366331812155757192203814962940513288750990552301381743180690254624125294740250550188729175571306996455269564813286676757471220134834371302511903587902307540481196782587925062793746120240308182148324071839542620699909241805741710545183314009198579458689957592042601104211370313213197864065922208769696844719353249845858545250992442825571704491758530499215068337164118079822287497466867700578100566756621184445607359524333156373240978763782939194453916520237948957627999632009495244204096275302903829156540703480651667532553269917645350578653583088999427978629745533126745436948120029924552046887312554448535078576102075808821349485150325962503808485968153731296732030122721198576089114285225060986856649652091400500736021023122286459541243169053675884187785345200010247756197660886952345363329356152882185635812147417620233426728176775394664412005886199408700446302662101308674142514106095882238736129656144205491208334833881255105738751979041268288234630455572609980787271467767244452197394819390306092263425921007903002273525453081999988889931101527723970772609011121592665623922779308207997528576137336302246683787114003139772198360277712050983623759904315884752531532354723353665961130691421048310991565806954811819523985671982405732213937380810685951886337236461845095769540867651704220914175819699711650014766636043899676377833672180170796749279851172547424262304988980194082784775105989201975704593087213790366055989053704917552447040423197992481633482066519034377293422607830907872588280523767821057158133337825029310560776360304463896552175770066086021698533441403180134255003686380920400711469929369869226282316338632074497363534070637506763761157227530327924561677703856290682977533060757451574008799219493958759923135384199004417330964129474404743857743127182151685102009192841673412755731521379948850112288833507626089673608595539657969064947670350557057970083890830239054917986129859492583705128108942202656352449363025420916594035370988573762800875291107305295153809491906526806161292897278797365310579403173053608959918551999047768153865357547963900608053260501280110123019409165860031538271925839163858036847071423407562652318577926304533106698333365096838848426536243143403853599111983758680104739557619617707603445887016585854486714680094362654452607710330345563289276104493328168319283569650894112387081264978617926720880114785266422969211368767649955201770221322342643388066567326793961513889441750716846012538060109596774795259913384217920413678763984498874611455394562963916377326268230313606504375419265624448925878571150832258550568997407248940593815238503540526242364132154013471260070416404166806508523284671594523391604915711742725593199231853639042236998246619624131688909415769797809627467694572591284691866530146506065675407748216139538966156593125805516995502140421588731082005913540996715683592182328653606617070552699610940079005288503413286073894677670456445113839888250735179341279810773835334643930220847806261243563979339418553702290063123303232578876626964438357419793635838144050471911135824186592739867034586111583603384499707113772125617091161740389088674663185976731308395828184953364902484498101836992019896140302606716230035754642839904485951220408337193603227629304076566450057194642725716233871241594469736151476437164517009021764948896386667654179348114709326783787809989437565844108263999265336200323054999061084081262478018853296456981894760869802243462895364389932471529964841325732028999588777575833073741277464962434716985791945149254466170327205121874099098196646506207933748382910447313221560021463209156872520359109013903319521305096067646719279172193051656461433108041465642535129593298896338745004487240107155100742449688072413304022462197478820816733422988488031113224122499009192792757060617924915298248385370941049357058868380263088182651265582631880784355179945669757050289338235931368100814522931589317637655838804092785574970338057570336006607000298068751538300069288774794777739431691706970850504008261502834701129828437154928767803809961818092275138176745108082703414713065376205999366249989157391313783459878009438254198783239233041158511518930084831834038409693199720040985113310838607257414663596877209635445133539185550717224939051626257180760316542593650294626984583481815266556109644669324150343928460231732812042399622527290283604738749720159581355503966818293040191359646571850526590610057738786368284870823947957223516570320653848606564851321258706184938311714852244206774070636798239244362074168265948153181565277450462789582075084247904233966452350945174241144213974054515086046306079498700527823693857883042500427647902423676354603136863363034812711404823967734290509750447957716146661426144620397252736275987763533869326863053006889616644115445598124422490317073870518483720286831983879747679966116185786944952143594412345395705364763269603245866796226564899797842630110888154393617904263249757761522514670220670805843330804325697122829101814419812838485897781383775662443856494369308992687381488301916813250563748378222086682318100559271457131386005327125504964549332145171152842544927207222382903337534506688416402652007210183208324462153715756290470120284781840709391637301155764709466313691152520405966020302373433256088137084457302128455206845004029780830792786730083175429841134823121864272442278909040951684330321171619470073042353459164982252263883376337685649307900886347464323014903963300523793618644437206269173166782973160826449650134773235546268590761405580484544316364675547340842244941256908374930295848949649630413380828627320992343787637236178084122186903256040332460499589599321062185790413167282759172826681121499438067865457396777257970676868118720928100557658324871503918360488939979015824837781054807259734446760254776535370325360672946007961041403675847308887988546483517954317408614886707744300582871452701084727522993610709015926546215677155208136949582551600342029864757961551193212674540539700585215799396740928767057440059761410330025440313193262212377440800357727558624775053810230267357706854525869183129296646247555326150572488861653571017813423374416338286056890137235908782181568800108476798430666187150235668939714852486762357341677822180989137242142272209751151859689714784582805773934344720499876216169488582380622243931556235599772832667277858374155204536048660616914045916334587132740696491492296218646634174397022214468317218229768442920030264327951372204980551262642941624856309871325208328707434601657664806147714600907317562476288168446405965652134301412907750808639370991938501504777107689215934174812971457338942595391827921434680493068321875296233773255342671206008249498941585370406440544561159458266666505465259671122539474168943484767741745884208723865741468966725732966188702698110680411967636931616380659109460634204195494428807817177916399819890754587050538596915484626847795157522790704050196734361725803978889583543910558452186779973618598248252195182054341337944057337650861843571998512538478636165964622394252535528204238158968082282718428029688085355030126159157356057897979625132172481285131814897746924449043029489202038361270793873144361164642522155414608829805931598656872614939503026364274367269835874067292937496232826957476140822053670031465400411580143526415709532103886690227287079801015501986077023496843573349316452129831447695384170458464745022292286338569476739715603498460486480736626751869585910661424146663733183250741242397975447256237935940164189370901170744446136250977446176622105599975633671476967859810667408443197293068950337063544591901441915373050091561869984496266703887650721672518137176602655016954473843355322032332683419347675511053701047165718105846827743902244051251568989828224381055775737214929783742490565030564230568141288858417093927202690705806401577408821180536158787610264385211152524830347395403842007077150311492393927173119984926601933803632032649658733175006978102210370179483447916048884047635109913217107508753641843650865981818759872631022238009376056807765638535653666675592620736071201094345123760541357224428544742741096885144686776949727985072152014755696450619366872577138524974127670270358504977208551096203238438213135761851453954288226123347864316744281206242168670991434081911397434339321634318677369417780248704229273095737070421124408298648794799294942182235220240534316417873759568639403171375504344465141569987516631536285542074876791076169564844646659825811999706912050234187049130009873398570409949051014928039281396659701350403665796812120512458160025804933462275608835738724980277922608809159437843636461371976954538834845802677396253523228551017434754694189283949310416116364931973164161359745048992832916323111120197311835733148990268785173295725672815858859480515514693707190469103605511428046131427133548980897403306033879248613148076333116483696756228156219479127192599004518440868876328621960906485697834130050901469803180023269337924551140413974861887901886757349595616333998345200684888874408593694392772352484642404206796672094627226900299660281388690662164811859357698416499857673312778448313391312103209752484949950592813377010929481171397124599955124164387267147287876506764810276006474345396801602224083901581077495283649300736104620677116043385544688274132632497667521825566601562995980872912123809848711465980616971887980881590791356901770640214244344664555731774727455074778842694413915815302726097606297710842630928522297218320275528907008830592521562839636878294090502615741001405454713716778830901982336377220803064796028514534375915194147883894179103099653456432579365996829034298995765185625033132682239285780657144720521091813026376262059304526246812768395461121294281501789012648121189248058797054570559489852298725929842947805245593108481055129718524572953588212341932936030939962146929625461586645986091968908388822597758250468090064349228800709899439184328894429742025810419101277033635879855133864870664447291769814763884686791429171055313764140842094939362421432916518298662488788533101982380090358488378414587497402108140667020729968402432393618667999240376540525464442197695684860042117760679323890083486437095803953291685698513389077559783938621009122222590719989163964452226038347157078747659552721232501236410818244924192625252112178370839093410433286031273065725992582728127025099541681447941272005365060866187307233675597437336853537609901332773481506352266059624390746796333010994419776180197566523148225146353431631790841447361860082894847847962384835249413997544660150750539181767511118733024698887220268422256244063189562453176644701183573658501208173273224146104059352052748225261030504935164849475915731475352292757499722209698074017388488014734160942285496250424665555114525974370744251992289661956963066399316932843333847805328265471519881754977519491037375999075488608458622338761406398228887206842046844427566009411227837352020206078208885413314007808021299873324383521784050712399440925659344827672993206209061693833398304545036012783249001370223429208033139720134630444898067162806292792324024277297397253775236103581355574624123916739094424591183400341225954108021723579779592473578774335162068205513321406787068766704723316765873439390107868055127074832047192146227510937152973582549037965907069326825982220400314714041811977541471923520091334177959535855728900584637528165327318513752443466261740930819274895627724737711850367697482020363958248640708051682935739708392015636583850726558209590724187344220495344770751809767918063242198801252155771501185387692114021277838986903519054282007379569248446479255739894553694735792228664504167578154387975281067617358965001006069889811901993992301048449728619831394829895172248762117415013915932491418878599721648079587879494843846407275602847691203661156262856221679617173505248684575319537474038955910680180497468514849750664603414045600843118687534155815972211603874063858251084253206132375797387508541088106406388993626808738203096111761267284941581993264395723320213316871556596350617611806203759157282964435412700913898367520192327827698531983158622599402339526307093987680253325206045734111559991366102478416784070866717764266074860834549546348784711033719587736611687793646941168652618732229096540348315044830658770372213459984565421694619473567752469469857441388222286285031263743701834411041253170883352505838583521386850411097161180444297070098791855057638513366483123063625700683298610658321579485369844170530303935031776711460416618113566524259607765459054224047509356138480115214393284072641032842369850794079851809234400456247304520933957766296835350554631712414845669281206296508325017749618540723330930772710000223578937721229522839769770051495986737809303938881717272976493357972011373655471765247630320374714127580864949428171505446428514915772839402663217503386826828174387934428989902808430704780649470919798353558012405781803608307666178379477422212894744163476654331983279916969327431552158734257968575761606656947376876639335190949960897707300637452685767735251501970302290187757276842592258489124968533234933729855592357477301537782431546627681480553696455653103525177348926046222724052114218722741307102689642487650715470104943618089251546460365229915526341704192295292081987025017194962459378465787070641233381301233137944967794675129251242098410024659286208934315350078207494549009416095040226495277038132144211263646900588657541338935259503773959293237799988472563047065551342207335640790637135306831455932340187967631396583678911052758116255060179910348734636612916929279712163691747526668424344144063762203103556232654803102926454472305560219858310503079420511356108651926643195089989691025786606315363867537562154739326117792343894009723754706153074310359986990671439186552435256543878368528390299640684038390828336998843903379150846774154790943301768572091656240507677490119504506546287888972202513367564902335629128964963797785279543716483618487475234772164576460211980225561165491123883828534497560649514003037741989387933235574111731624869929408188812679385931751721378374294825772024817401909428065390772438664068369695343467754260982436165170660124000459987040344318605980522336449095709692635621798695767405866861838182521892943279143577479223232033779959444051437398231834562152026365702720748621666290309535851158630298065262555916712791153945063569082310334655662283776939380562033561197460057311317788280851572939761825138040242049658240769049333201929354008967606090914726427501884141591272638815882847779515921719486224508833356260981482662273745096625320737267158672082580093445793002707975308814871019045542163528386887414065141524390496314330777704178822788665528058629659632772239780468174414451591569954340688130099970845187806388971969644391723132773399740537949778332667318743977588235849090427788382421946659676191279424602009122411606790567154001679705448757955851462966181637543210822458032122167826498464395747663886160804231265191930964888298466942976418521298934454001344176340970294241369458574996157191495832498630690506437903718950330201237949011397836678814356064066506819061700776889549423033475568771278925583091783155521272509621154082990068275942085553399267074214349396676159230755662120010645717700829479826670940736172427199795106810557109552558612548647242242122351157394251302881796737503379415439292640492081611349758168248514918052986236884245474460004196266945938770578812367723449155784895257689736045871669869214077715843811396106443112865951664198386983814570830795306854436404425105739633945667587620773387401270401583725807165904715242423358382231794439030046134584050413905221749355684004832669930830783422679831036179952501071864471494991793484041210115687436686910475701613151249320981560893447914558882145855638732308537443324860099169830854497175680246706109722749373675296240388677322199311760230746633573755216803014265642856401473646263831719982895593522894576704190608961069536951129019758603963969659707998212754736430893614071240690062778700206502369619974200276790187034156340053250201977753927180009656609922085150006494820661638629658826660962050697155881182729686317961461117810470108135564047497964152324474873582520241422991773508579377243933877880646686832589083018901594564324511522055600033816761836098992281189990866694371025223698252783113989203917170338568044978419281556590038213009655086742625113231864469555246401532887713959670612119338065338620985607993535022280622907179436069584499433702986807686246122436985762125229796468820495191777403218028258943069872854353850165097298411646581320151969070475627353625946546003377543499625043437107464065842239838206250195091827356179574460455260938881953361447866653566032461801279484989532133594064503067545629218202139542006991270117852072583223967582154523001282265134513570681718840969103750314528116783768494315202304506415914270861936457779595985193344394533001581322378489718523192948850862391426254406482461779609867552482890897955131829713708018915221447275245351439018886022998311666325288522734100645033180345614473359597886115162347865249824268637173479513949853095762866891342895291354870429975263015533679349005422951800762766317309004100693333253736209802906522734112595407298938539134122378627483820210905742148085952885133577516647294972008574834474632885284034254996611134278612488301383615443201456113426436187620639352254473721167118518777328272583249833760432133876767004728746478495343898703188311891332813405446406641716777753328414271296701749176679205908800586798015216138048732154828130839998437046477840856594088607239159196462985616470446904921495702739630362493191205327129356835304438144237077817230876877546841811543906643899711646576252884481888092049047876111007181243570943921572862942076768922231256964570994619413314448568147042518337275776464802657441243269262344518192277083447897338817182354778960037440482010816694455004592745957362788920554087215664297080544044375850875202466918050767085933383408635881998016907886174819625611732273668820625961333709280093389618486691688208321983042928003059250250754163955002625542589120808283674280589687005731248654407562353295450950800164859515563052756103496239693639669357354910661432979246382737812733850858181215849066200660618789367257077215663465610766493656412704829066696208392686545895903348930744990658974674309726655182853045977952512801746411345482880041871946701332669246576944504273368665600951224313213556704834701948360056002974562085825920616739685066067927453205574382479336730785686474247772289845455560298404568861928096845824593360604415713679085863397765819658875081075869852113102112524971371621432837783812271826279037924544630678875869092781228994907471686935216915821479271883608778029889948394106391928318944510787650851040860355045806113737184182022416065185670337745222154773481966805481716867893788336356638451631652419152924617769277047102750199551277600606208406953861310708646788810277972945120023259305902517828486911534042379300083108910867003743924075510589681127392327851326838862690584413915855095461725006583094516962060917245786451714601256804926728886478670464020139316069029120512074712402395622419043290248595487036453268939001482579855246935035754635327133072471059985652114034287037210968012954495847076826981380918009698025325853990144057898017719453894592989794561346202155534071499554050626187617395991457154070319753369356783121576121338560454657640916561564923910522736639405149272465913203857063078429544453937556742485119398780652448820121322184191398286029636879720688349475727809923424376926763798360804473903458088109397159550928406365873627156938970497479972775413546876212524204684667309584036411853630656868458614020144282387337071207531233468095070654898206685301803241283025203372218995121035964747231001041319598907897487130652126977643952130773854539593342309066275780882386495270241604452851034650316833063151166097108195986704903648338831243801987828579695478600239172052237133004246263795993623609786764151014763683548556401117383338343532954306957688432216404740034477102355020915634810171041852659494636967496252595646779481451819342475955728371992373303396037020483247866328472753574182619441014129494916941510249000519401565700818065243241550271116131701117532547718606561039443031329841706847709225701371886978990530455235846903187571432752842333949180200615365055253258492253728758121168978481052287038854368601746664023652464949399665438134657698198022161940593045774673249748730495376097801565759199143923579552106083808572549997493790270904120640989209139215383079276685297899935498637300001269119533913784773772089964105970294692972627997193331266494374400340980965295629897014452216897637457076213536417210723157596293466628780153625074206583209346918023205995675086342632281042502618055193053949968054976369653920826628043891940803097338752288355607610186578162354069286293643221498815006018559945928992699561717486312540830373246150248035385281360511847538891313137858382997825072732121532647776700227417035762189388313228296797288249743035769591011033218884109609254697908449245065021365467945973452404913579349873805977959345183376235418180917143665372108251715286291383280141006924544412828709134210398413250205609539960409653390173728274434593906799208940580359914952782359580927383675832502120300577518081044389498566113570377067387483992101521786332812693995346627832340802094868775649664265414577120068372570056305444831601613420509163446627784132269745594003312965576532236143934152245295145145799944006418641757635357106762096876858883700081711749864530432745540033411932230442558722875858688612362250999302202884478743049363098257404237309124508179349250290198302224523011589314972681650361070959185984075785953435915541680195439321752292626161313222794664213060605058039761765114937911896368083001081560516934100183475560664798149152852480917203786511538838211765389981952250324276451271834738869365366388704725218622446338865237951877205512306288607834840105114175935430144964112047487915954841575109003936530120484190225375020456016141841113465337122571255461925506720186838849522911139050413889765375340971527792951025964230784071902890669884835882275346417247967304182387505238269028856245856322194929198818838997444651996876291937704577262881006367616503808266903887620158793630827597795892963681740475474114264468990236686033474921416287125540421253529080062194778704995576381330102945369449007778061322518836448900486940893646126901021778739774330860146836119783149326680664847383189661251817342027709906931654288619555669938510295046992566479164459265329738800035656944145417046911140789161450345761529786970103744023932064661753293286206328683768306371402278055897735269195818465570659695252397612602383548497615322147909205090468492779608883983217614934473053052264393157855593180068858464428918866713093529096169813893643542092545077950207768999788226216559517342519621817950633524112563341935830089977454155189800559278875955150480048591748832375013747418941613444234026929871074585173156024089355178421636871392281180803081267115955295792633791439881808260798947712558727895072563260890796854513562580981781916840070248837399548297084445084438295688304494326619557320976873120954194581244514259248256407105059240589197553028641101374387236831430867413702942858466023250659631340539530475406199662835505022950753701723245100086626093273235742298236161120935285014076359547240033565881829291498905285341295085100548288889158113271059936313364739213670347477834930204454528196374081736632570360098616904117344942571590978154549027660180874341670098144751017835326035380242619475132059743405710629930558637798006864540225419768976004827834459907188422103874964947375553582774441734619832831648810206615077221136787007392272745325169996439943531128223324435657931015721843196190576974414326263190859070550138138352710838346881357393406984355468435951431639665928561128657756453622456123134187562430774694431406164943702160489591636158431355185329224243135671673785188226041705673206219397283692261695677208336954903753075496483642374599725337309031311258673532332026444573200734890999127155264722311965882525551852699782075674477892195045099399949842825363575540853122397551239729718067420280198511532773249989711011938074880658989323020420471382773146524977906968679920343078456743614926150459203986023413130754903611913258105872935384963727611537161147600751659123402708316989035770399164685052769467623536322605597482124177194695986061414625572102026041640702225410072351278932989534945729013311851293629033060403496193730647137095041774356263580267235853904299542601649921046088162503267984779984442407415226597774698490327382187895311178739914041598486121471587603995084809092573548270453898095640474916659664024370880963856497715052423647264509319113422773070163520181881057420039022711277696537729640213940372187862627534775444667785196817845995101144271345240068346624532751619365315544698746576413777928528449848482476262420456192332134974858811147932757249893621622328840619528153591609078816807993704929190358809016827329174970488056464875277057274874617568645052346236632492063251617221358012081595325658958373698605910179886601260539262071240374991024907385332693499197361275616145911955485569971433047653091310852166581709002464358439870939881125741672546257679394120630183033060189487339771259165430335935776045483646047769531126480150642858144473615264084244766612934935712773328339012660771041517769667269387572288290667871832124154204657180735927282342943778449798304168031044742336618416412635992683992063243216457995198237038823761789790617663535078175050533766306875888459958892328250646386561688278859778806411889439615657928382033889288230302986721194162421153665460932817879076051453880585392712716323904570837053085824330603325412118078175182631050282687877656287071927470597401196581332489972848536507540616013472388422926016318539010332794784502127795611279583341603009133960386881400857618529132544851661534703215192020300485211658393893605736975560179818830833387385014936985559686692585688339521629820534252260787830786528499353782539766368500610254457981562917831246748968259685073789827989513507224903742310119530075310736113695654661272511616377481839977921698616461148032195438451823986177996822195900828363845708018064664055988126621788328945983626412615649965574120979471923778588221916562037311542998922697839310344838553446717039726341455696712252034875839663806301684525387624574800225176136633025080748401401769885139151233089387254965664920422032135160258042548449473891651888754324593771161548069889704682321825144010463933673775317282292802306175582051761123774531768846294838659021762871130430996712995704266122614083199335101259392723070441357527941491167771890234995852203928492527177048101900282729371854142845463409317382517164777741772533264231267584002409457771794382071858657830213532535730276239792210071751712057468658612939538733666981650733789413683324811184755623218807655925529665469628071099912701305484456576511786102981170732430470322178147359020704355003360663073823611333267152849714365107258086094694097564515959925171199361403109364730932552811804333883444620694505499310665706458119803370327376446309589097115639484752033246409525660002853019782352024051106656048500684279606948459390261171663985123963741070485469263571006542301118277210575924989919184696740028949615671892714011154042515733789034667664626277761379823912858994637359098801091757729109522373834083552804477346927946711269772395555901063109589111151645022667984041864068016628328294250798422177010990914064013325756323708281934133843323809242440082003111333277985341846394618412271031488416541793546003173030634931871726098290792846939660693799975731076117761351415283467975622981473800960906649388221053727458452232502381200889092030442916090937428706393336114107653052528915736820094889257147927141246039478722844299956638872308990906591724001333978877356126959306021538686993119200425714285467073672968013376093630343538024776969968913856857915042122043796421526395099682733948898309355321322572237162813038744556155886855103247443696992710472409984886258572310105172184654166878749035561914371089989431405793314517095537920240899810911026737367871748153283250746606049553562082335178240013211094851053037865855019129923225623563491195555358907646716689295331120045439717643520062874704040974934867638828089192645298865291132989819203333559666831719702084109897403090795687145575440435465679406884163343472248796654599165805410719242698452254216869603756178776259720309339133216960730029550351524460298198862380190100676836115469132544057807954878792560752213264856176743092777837600372886294796914073732651317869021235623963664667478168176014328996928403788462462604293740491530883171712386548345999989514820584084195490449316009189710815647037676087837271665530067052826301187696559709213058242241262217843806042379227370910168182669808948678639791241899648007183858478518441299735109489680877570934355146485004465502302034031256007563950401958556863759178348288922696991171756498326321704015557804049766095889919324858265991261843275955645752641676659231838501391047460699397603819766515230020439114271838310932502387473662245250278889795454248466144202693405185290033907233843024392272003513516310327653184299707758544829848202622613841011595759070882499905775673383245828291361976691650780783166143871841589547523189692956001224659296064951278542511082512844305244389806207862163215278116216515979081848127391664861808031713362205477647986888211395323646193483767755754335262237343859059114384750165311330291786016999461820333308725183353162826524078555304769847256927851288471225563473560567044293267900710992391296315986725037884777598173894988381950670041831738678238576196011495208132880884722773285288362496077663353808177428092322175035819068300560384477800549747178264575857708290023232206898114381461584251278573923755827970960666978671273512774719128334975172984499380708008874209998420813163117977799817661854847324376972846683282064487935195987616813378902315634053403858295493724233170612860347605154556753912739032698784630282310138709513612305008851118092639623019251749670540337087310260880050096221360219246561071643320900784622922283798596627563149724522759475889624367106474350229136282706539146475808354004866369699784624750696824972590021664248635124432666957631954400961341406053212360413982114895647222067812882532549902677568366277247504967283768775707440918991706065462282008435984505475162862574486112602194982655057719793018416585906483337579769205332074157267446837134886614392840847744385886307068799640779979557690675315688828938669445475362487887929105545834065119398363150978824873547790362879805282401075967132549625521136364752438111009540377996058754464589207037612122569420043226624031937916837684510947122275984580915968255383156952897319193453698594109903507898551995104744600017757675032767138396583999192193687001009660738265893383581260575679324043727795920546064816613433172392129728196166242508380991069462454558833672826718301737676538781316552870238600164206024346724575297451973745456317021650373466602138809427147859173244579090815274918410041323258451629947265499258638267604610203224615414012526825841356138553225443989730579213437484706327888397987659837183676442036656626619953527211007664890268377257975623696689796982478160001040496734053285410112811745793644396383571540769206523593400771105424850820378300706343921857169612802179697961388517800416057556537097147383694646720339467304858997101454326895884284927077129815537874873609736500649984842597269557889615690424285082129617434557298392813900785017325786264978492541016504754643724449434396333922146324912280552999808162017855304974906631387290092184804586307260279007792895694871206594992673732062318062765070569269874495055777171561551918466716221654018376969428238073556226946807659599929471881170193708706959709175266625448863350891462612626978594849663550267058581564965973115830644544522421799456724812825832141091260781161674565208489307735692280285109189493450809864546497215007217184264081449778108546669341749805196769352476875364342924840888281857318978236214567026075363749650817161685225161669398728795520224261176885864875915898676460916614112654516746235209530751790906005874042508692963442372971891453416188542249507451102742815915826233038970147838484648169086605886771978574313461094080218033456038346451162116176779264689650550226899788925517397849824992655622434325909505186909238985106080651359253287114720110335667771674953466224367451287564399782533953917795551838544395709218558038233621969834380802151985860557770095763413539721259770472001803281071872750847348415225081714690826510500024887811295668726351083242503643383185694614752917548182307642358291373305885012320797066979021379404284711791029993152422036247440819254477383946201938400509325906820248854839936940176960478909361124370831844713824450888642755094457055611210024387626595053284827786981497728815850829800740480824315017367304947566031848716614620438778921415041537797679950161513253917697018158466691869915182802823507290949577305662109862023980524410537728270194743115816117173017999749106843958057442461022656818046067354721893566583091682216541142554985709936058409437676958450990901515365717727236653714116073003059615314003642684508773150291218726600765826797592383453855174345212822343422566098790346160253664233982248906092752876547918727964059671646586510527871625915498240454199011768247223430451335455551005295602975147207347073795499082576054887895333951893293747018230700968038112626359524285868834787521419011406204602714800467319083978298385933662266063603826467341506506632621855573287721190857215041610831539810269927152359947625662879726219797300108624459516133389198155519638299984169063416269394101063737972051921026302802587216567179066122039449185394717149149701937961514744496272411354022381502809511172726665460181385738086570644415209360994541991652080703489241226447292399747427644167705052923710670495422703346381761265841632786453131344776514490786468916319233470337283306246550711978956251060587229683472036903548672865183753521813362900493624343272808030368888421235402593917425457735336111516959118315465790163417917012383280207662234407321266342034404112850174350145632918899254550245773770897978203183085687514089911603585455246481039638832236473128730789063330858317774148770123656635220896241691571790378405897134104677574967987772466667680348348302641571444136695029519426293986926466126359085750620110768403593683864775974906130803833249929921687042803519897058503805650818687342391418443106001993996249433582951155593923678231286058421237567970379614295242410029695073396600841450144128392884214766118263737056396492005462389953177757373825528182354690577206640866449955419812217262865781731150065689455803968504742959584699964191950243217022736937967245787443852027225003183052548555633785811209848490755792090405670571116018642213179394725964494908888703623827100566057078381971221084344512591764845087083031681165654303556040974087930401182114594810538357140914855704091212234262414927363538762804642481954263471122270097968618227979696506961953562770193047902532478769543900786375867189717176386113989116221037650171221306469745117837325751703937930239000828046569696784098523883191013211574130313951694449450464499530557288519108644560583833990952873911076424249498209062837581686620628234321282875463063121186579284519782191596003656317798705576379180859440934855282805220358322892564673104816106365778310692038653373292081749380366886581216662811924700330612780975318031273908737944054941357363829353057537230591234803532892240602743413864801278063739576074313536396326368331231890840820381692979995619196878511783128002489232469132716489936906744089898876594804454206161958315294236570761295262851546588036556113675804093578012126124524618277500431181316345116493659803302411093178772497540973081255593283577439744403060275601401405614448513681965442023217643391838504920074404638411736231865798941923498378779972138504124835513842936403700995471510438350083442836227682369237698592929856902237729291593877237956196706898896484233836135634334102672120747252737547661674516443688657732518640286344344874337580060138117692210352970312124556819236872087433079057282278451476853918893756546359310751577464994458048970536705869381282421945463046327611118696531738962510843368690957794246199901485883968678990628731085634973329950801714199339190256137650320876636808035302653369345965078057066507650177651851148773229804146206112354201126553900520432887074851417750688060491149093487550396176130041366926203514229070797168287353231841157120769158593915368812008736228248733544863186758915112532657662137972461921643488038110534126385871520328678688447592539106214590084750416161779851745413848405850265918723050534980959391282296965135769543702187305873927757419700277814774477771109700053508366496833752719766474725310722380204338473055502161867647072157750831627859770296505414617240254086308138129841996325404354941891009172686481655317454129713671146450589462215901074493275164677018807094556936509319643298026235321824499767915856822640562519327973748292834681519730329391338151909153293537240921000421226185653343563642226399769318255911935318962293972491477397430734218280448636473924327363621086680301773310591862784955017218023200296113826778790751537031689017082491434196554091040100100761299573607655861963005704629949016057074245836857304519132665349666531291790105026626722098237906361116039284755405592712742761199466189584680446876175190106379136788848880549145571933876093085021042438681447435508235295648255127474291691502665133164909969033031632324487445052579379183434146272458878812399119560258269296112348308593166139474693584537217871060794600847226873211209918254647544550618167922931312047886866847596053613055465504389303825301475658754906916266545690853511527604002066006622555368178434934330536108167484939521334581646225574261466237096880713158335476772909390505261637780542468753960313575458539814561199704664895409518998077584511186546618559005757490299906494266029007046005513997736711914576305057920286376730101895016152449197314059180084486108521741899825589511962515330361415206551644396088014018822154125611612939560906155297542353626042926548473120206030475563467929959500589190307838496899752719758345494293545887285919551084219480985338781615843528299761696456570706941649892407088337443907444460695494130495603558746587739621795760056734287243461911393722005910701612732409952701187899481305343993071447389053844825939046067423416826754742082572326070571324470715711519223738504198705566369594601694557614099507012569192547338136789474620281343682484317921389777805610408508405782657517878015388403298843617141488151650465650903815580136865742694254279999352635636875490696075557586693431740369531188330349224004053322027798620627574787513232337597226872600312162240233443086475871886402602677664660640408708092663427454058072719625716396911443605380415710200386979809917343368044524021824627657046397324536072868344622505159254912741500708447950227515736844320738894818988295051543846911345625314816548493398983627124387589901452741120380348770887485018025239772112069879857043278842908917650578676783790114649684660933375131407959969350081946728700903733085787193147814523009172210483196879368568143074773484895146389154541790391385835058515594320966719347314881306624554447614298601353156407375779389856873441288933284058257154587441258297289795958010346255210784890766179672576583411773605698436266411058247345042403703232977294375488510240016293612567510076723336915495889726094114639283540877234729938483405552451504578443444767088322078619595827272774034643314582037635418251237387567217740326051374007729618478973186523275026321275799646634114269604541594538609198084522298061189480038046302697461656647076180255450911339659497076113664229611835636613194527461040447883800871228148348689213270262636320083223513977837916361361438225445005384627899681240210417609024531020543997166978264598370790783124771143801548041961377629407869931408481050419919425904896363131881616302383570071275807840788818423196649190391497602685645137824406661019447525454556727391432567148186005530897101727551669001115047880674106787341295136101570384152169977515150021219666733556848183305650055484835097557403558951605496205811988394145187191552241489118902347560712331923946321586925624350506278505130010514987062239842648407750443945893600985858845244988546939144299123781022859216342372617314301700047580384563375734268423191088324561576636722482839757001267460284595267109222572328275612436800935689429919105824199473088456286297086949876801286854210094506329148740274707394512220424766567737390576086062778311731271971049304866082490078269228390402352957026075274506785809176883170002443960557745939593561710592967693426811971759266804730821033447541463693930423684958234058777044916062429307276291863647090846147823126895918855549282760028017389450845427580285732237645545382005324237205242483604475528203783353629181787699291585097073503904217960617276745121267980541736886842251888684156606476032850232506149135631728930144177149354409123264448675939366970004613653324117103703772675284797232841939120289958264642650363160067491288828090899996216612098633164467356494299750836147570149907226351754998865742711535246195853197523996070634691819464479890036650399804323994241182418907032282581816962141555359641090707122375091905331938348511209321769303448336834195045182261810979559891148106969248872756793739513212528479545670979851078835413977083763660793948918069042633248078903266982287741844178072288832945653112422116459522265372982131103129726420442490632394549422388954215862648710827439086406683793606325115252260399899414866235371197791195650053325291025098264706810962831248937624288329774360009607571078970253368983905039718009462729812588637941538202711973326207920931288409450665333384830897822040704075417293403989209116203894073232463981483541132127900180366190287854287946721802920378031695811641862810827456972302043802262282123818699838639559195435212762550824540150854266501784556943269767831463492574908647031049328309627816374160655676560296001213999624519937987375271928011743289374098062319723269803122537994447577318307999979963214536544752548514617816369633886498576355827928895523167086962360493826468623351625004471100003643431240355893706760615435163137322445790913887299644266422721893864226195823824816031400077410667954586088321153341539509446639271865485474407935024835565542820570175500775148529304199454053067478475275737474712734590287945084063047030922921698572993263880415650168653726565404205359541074617521787037872746767213112441126256021302200846827216389452382237884102441695095527518849745019858469844031837353817118391151674594385989593895521913086315801253853386708805866666015713340781690269836081974099919564745073813173221418977165355691368711348813525784320596568363411615489167270786974568859169488609204231854300869219105499602711927689252295754781146446397478277562782134494374152490351900902593253918242715792351999100009167686670711540780541935282826358448304690136432317443340969903299623184723472788310423435989683534573553990229364532326450964294993933669936162983847135218600831244535749702653915894303967860108831424947206578051165239694389744483408652146114705881583292717789230797630586311605683980897686765348426135219069402175079850839786948782936344928163975481898790376948781382060107256788256522091800763279667305252424025303290369114914742858625125600057572427428561938326453585511539802080700890525259464146078096438847646140957046174937020400755846158371935703877533937477813715271689549201997088164723209361749280021498154840731170457629509591733080088749850096987153972434910503012706212700156212373228092887422788979602810485190501918452590945967800924528157652127070093920484778288741086877601747961087015134512859971999960847282591074711273385328851809476880827231672070076985517708615559126830644352609711816161178786603443103888552718140404525276278491539874165662214987599962633675734480033721476510143356421653923810611046900987217591349942293447663930153371380055633564556377451454862021556296006653406945377197506252334586025169799535453223140755024523824651613527759948315093880397615402239619255882235145768684703820208508474141254624488230277287381292675091785824940263366641559830121621558187313738371304526898038727917237609622703250968634344204630108889731407497277555141313268954644323162925124346393773724965576373689828545993152590226946864714111193652183703897836930323882822582087938949599018447747209501765027712424603005767742431089759709614926157682735512190370249582298601629708659862033176161327312687711936045046093197283745677542204311371331700410278828389288980585276985299498513947713437345159326679116937622130422090896435138852975629479634921646823341242831332573677155720420619404006846583468653894275426605663210988261028283292471131418940943505860046086684781533299057779703253739630678440818832826494776378049149436842791971337771427310541609147246027215996953993547271400513910843829692503610157059544256301124789741953196511354972032407379694515538883930542780236433462961641882983031399837151275657467074109777571321303626359629840359733296546153113545303107103904904183448876620748339819003339038840390949724855146652476031926997824638606780662623450854349813119901604132317841519488697713802632766713283237221006004711504370764715569949343809381341305426538299441440628639973465515662635160263277921270499483588513693696790187148816343234510057232170501559380759180785587661032930580934333354015704263705804595297912929804353968064938492702354390470452645172186405123853695216349902091100102934145771577448602494085484554927770660973881148161528796383302859342949727175349062310261068577449107350623489290654103047067011120480818854647392876570254566583742234709628785899004658944347108612927783131651172909832122677561078636674603142810813411038674328969802174354286531429537024490902013249956575801356257953223805702467391083039959721158043643678468654122096056630660331596562293046227394557137110663457264871336013281808460816979287480902565124938353705444636862122077867026778652171876006816985093463485265810480879250689695491346832897525411287770621789981400620730006693248795297234064082623921730916973027789931811754981597118251662100571669063040284388326081096835997678353679333908250227139691840526616061374200291493091416412342916478861895280522223239181100638750793165781462607013079624812468030374996242985042546107612582078028236614885529935871282069211943598338737077022284767553432908686741373748495852052225803760711310120504591227138124849866280564409021524444575768711722685020634505833375409190784185472319195270668305004534164847045776786199083684783572206392391778434952406829889754771959865799173530789681339655535475035532653247169154583109619337731349229616592270881389712451678147443067738096233248644658108315651217334631584955946047660849650287615418078928096033517398832951500324439983252354611334531217454067403840850534535281712535517711819571527607103546200949661141289892632220950889268068524775511118161734355387931189070473299048526342108561899629335590216090389130025783142322158812397736807208492597890628294342653419477490529883372035846084137713613599309226033506264726400731628421499626794300692780430928890147722189270235102366154462064477410210783090383602390610479733316976963608202311561636813481709648483578732972219584237038545462656618022772399958209129604026149962925936398509037493633224498474651936120607609394256812795008218387706836511741279200782191779153277619377501291003997558830531293468033003209509263754227268392166486950166581070222072111876304631960228579397652486030426254834169864229261819966132545499258257908314690218028832161276027536572212629147655595608402550467625550368560875566705331535936938131683611605621231213522551908854784708359407984729749799745044864981517955954898293467040197455105347543151618322907887439065128643348797105322023444950677287932516117696611132420217608751500808851419001628199485201227096912649553036104984793205664778961142861252724702523085209358785117382121423958945053623564317342003718823124098236737757045792665557210333565945512479482199953645354848953032505733499894660774144474668588261682267010867300582659551460594942824414437176435126019017916120094655920944234421177540820954590349057060356618752209081668081593929411013973228069527956908562512602466295232733912378164491279946601483357967633895322159270104243509077196457718820333196464997859749553664469010992708228674884903124099022986343566709426914594888953324857881864058310577107019222865205640120103598469734464931368031967087753563385668583329843001019842205049224634921732910187580082798034084024014036772522619296505765948736504343128032543822400962414769586327899384251055881927979388890706485736313213279848895173263549167365871866538591376066388332355679913751412965317645633107494367018420224069634440857199535052655692242267612471446557624069722602984589631516297956378613935106534408962068275614291812192123284116162241585392502298736475316453961583665280521731421420788108583963885524719538900570479245595278435750651392722143206458448146200255564366458704607041327354398289570926335440756355009517296084839347963847780222350752562989797086371283560002140827214718864461177816638795526678899925558023443900956722378478187142110505597446094606955553059942928258007454115106562789872376880431431452815233986904812253570995317274326091546598239676843754297011486189149508314086450652865548048661919965186495452986406516128298963385201502853494606867296296362764753319860454349086992918648254075699233266656551735370312059146507308784987790322842941756029575582864166331216016728921414130078070141927363424590670757485178695757006604109520061442086274830864649809649760277373301457109909277990478647032335985030031794243547869365769898298458925241971554049204834885906435425735428713970825372753312538884448925779938277713892328810415621535237195094931301686352219315737312767183223464181764088467477981715015372452024171973005849918971785305554555093882470193197809922254308763756312023851658977116701797532484267761377268891028631133369409386857590794598951366018276262291491681330321130530463012066910332671124815928783360189702580170485438362547036241848088274849089687012509709915427729287064769744788055876927440736802939941038784642626859849610380266283637540248284429973803958813549137528891712262926588541020076325325572397443991708500695222214815664667144422745876089513891123781041157306337114926172972518242273058085313178587645239544556635928287506298297912232481690178960778018017086138954189798289739868461914995897652410320037700880911021012167951046004817725000078374858995918201431493341416351552147554580583455872635921690059133390344782756047913606281681204420070310057840083130139538593530019347105719595567701923924579060641029262726657711219879399140041740756312784922066323023332854814924273844212313394204667171992428392035570754337438498539149494221076937820546197724287066747741323943628111406585454085102929050640829857188813627163429495910400396523526123942829363858227501602901651353990718663578395078539965581371051580378967118583305005562054840431199303897175428752989196570949220437765637678901616720036585200137664136414048384510056399962336874510844245228679686634903997095663805354382191096134901161856655215979005659682786879058552836816471349626478832470978614653163678053999082449316297052640682780671485890460050716814051826709088094153561016390664292386969685139919174889270647414521157007658727123178927629457580473039400183348132649824833248770848377495876946844110666366455103501785046794148904733694475927628093650107894232778842989420490341105609027790581317791195899046174955872262834407867274426637235136627389439759072354903766357658218676282225906715518000201580784526899806753370794329866459168703535267184957789896029867082483136366974804047634398880218291601832796755937688891617055828342364160921648593579776083027400808240054934378478621246071923561690654552649217975021420416073897652308986172447141745874638051172031597890288025877047258996494707678000977264043054220768983778330360721226748509036130191272437232556108400923324953555107364609561348909561404954395300128114822478762622505502441404363574043777366083579134761345152894152132360967613136593367761621687941235483504051929884435165812073123422982361316848293890122401090558829460175900706096509297820108935029768532617325385818621683161118765360359878752115679373004800500101947208264374830823530342922572796027439881427045080865329316286468127292796430720017495494208903296916134860602460882863266747196263328229216488039223008956213718511063615254250760654175772025933077107895458726129542420825320975369708267715699169526006944205859940268613965428777004013298429996674233886371503195834237499995406239357208326899936570038837688302978785540139987016152444810658959954682012954083136087536591566315901327650582010987712855901570087293622557259409650281857092059904604719189166253003269417743859732896264494717730866651673737750866719292556279456344328692937993139790737384660347963625586785660239450300535777514161979087860808993010344163700098864261655142866964879684478649603633331852507622440355694853093785584891861786334717158538508520259448510738023652517322059697112238603788047334809504220879369508513906727219271950260116504074678992246875323753762076778480651599324837816693605440774469533178211731101311532070910779884623491149162259764085722894899760390587830945310351776851662056125480589854329368303686084398394538537106292891251857552208297025472624381312772393338265965262403381163552024069473106592710876057136948804059494669631072760823758479856484034286343685290631087573452000290137458844745421724785547643989174212620019808636405831171079033867149399106757500960013020396169319010378465770266129960962368259078432537044257749730452635751229827373224817767079217886892687578187926893904779716869212302022908457160752530461723680367996380919337831444854367530015865768597331301494019355138358781612224769865457200295630065868884688045045591942524557146913973040209265540633867033129375989717985662711753833888438021307821332430582621724390573531399013158635693117257813691492350196585783145381279145499960808888111793385199210517720678494993842107292389056494240924947992521505484259352499575763429701994924678863741190864813319626919894293106155746174923544605458341673275193072813226581562826270926603531954540855031304353110332285960816433216556744941599921133007786445521014745707010242457174246966772036694370874430430317235659716562499982107978133982042460562115693503999917600298084116696691543860121894124986929362026757511475349764105792613799839386742089972623017015547698311718460105199452178826817217036369689263354841964992674635866886188314228728752673593347832691176578867826708579816763334493679490699453603906608046038143310840879053348613456512308849774850989677076951267585518920174066165026290613337119881111900243032170104321609752465962486300479006786434307441625672241072255658129526991310661373426281801737369440563221116845830714350035602103215294200029423416055236190481819974420966409386132755956655653088633814889878436733069986266308736588082301574991893022949512131201227920638807228161682048702282234427537373342883245563543816707514750541953339344480120388597205044095094761358662304466244488427876330235271785338750696265550955016678299758771342778833734754954160373153432492227915324395938611624571860136041363825759218582905090311849758988818575535038494608994228052591080736858692911717676179006622802199937514577458117624885290756002706303561944838134165852458686586551179064902040676390743790071800568258080887420765685516663152343089927444720763927429341584076659374331472981998328550739122316918662047024838820259817786609562160452691818306022771802756415078574874094314766633645718646858267190493158453992106997443524879937239335855844114362616992686152036018128823335323054265763167763928757678665091740625825937870734837859815226969014928620625655654533782377570785894613155521849667631482169439398410795445425360582112051769798110316639155057407703248929222937798215189431328763186848334635615180400464068186881679343437804619092772363464318813973631989910929151977998389057292248333221090251741845947702123599727607049958240747922937761310817140231516757481462339533066742916490297396044578037872540124637307449530313697397977719141930131565440736124300042965040648374724184597583011700581826114483220589222538039898062627960526591620805702059293156012984244875125337411095616349018484530429903856304885169881607484507383577649806275213904046115484917969102823868509565806981924051217623467307344124982490992172070098207216119110289050588734019394534059386428007433182340215045457744696910459219485363686459640105718296934343530805370295115118594976104679489403597539296567596382778533258694798538271241558614654277706452163260715108198635744282718735934831000774844175476153044685369857158940248039844078626080620566422533790700997304964622661749165641805616337520875465147935159934416418313785147963725201599119877939533158127694329971621240711886297289943467550835857851235723248690487621501712522673084622126869105520731386994521080073775275931958705599042530441253438442331946395171087810930372496414445504351552077578073856015833343493583020334969601436014364781799301366940148945795923237827177723198011993035928138251859564271510248909193811715430289792399980627359153762776123153094929936757032359664537835022707864698930909051553970871540826864036420685726832703095694007805516632975623734470265918566588373249994521361995845355834611549686059651855738181272294268965313425798287220574860441004587105274489462707774188607421939540942088205002621653965889362734301725530092176218101002013486141481754055653320462107051324630513831854121300264921786430184432408332576962456391616821760567965684545526572040047301532970239704577850935496288150271529493073384644014729712472045689822009900517558118539083130880202098753664419807070572827337697531961616509112478618250102714008653489314157452639607856587699067756306835659002213032649647378981569995140007514366401400003125216907941171322006009969949311219750195600998805667362124700611183632694826698333586465911334477655474053449584243301495797514738399817616381109752930125243079156744895446797457152237752960389136177562743460020219692191169372280951264225352747975418026206580105937810987248455746351208360624527573386747424092563609210120403629218313960681870514787838333350559524705029202700165391550397735484765637676674529506836503716520020439090813063126628265082897990474161058014282468513513548066602361603021226303895620598250813829649836750219915428019040979075141681407892356460008941078068228634837372245233724387125341181518397833416552009430623695531352521130328937737504176953411592823741800160416785488526825020996038361071516739206354154179631912506761886171460670070427051048524995925672317900979460609935900819988016536833107437071095970118916715318786929406437584479621058841186902019382197921508997306040621569567721361561923296855005117903839962332218749795456934611503121856559800454953678025601828228567236137313633793610909364900817116144972032357289674989482260068880841433910565946203185146324122774978249356029678203557196622703180820154623208302578085165150369111868598935916617450805296555048559749633332976413810944703414466856985872315448278707332982872640792932808415055815683319286384918082681297855293982493197365417822062723638944317098589640097816590230315122700728241339187530290106256894633845551233819112083850930056782980354642080213273924564932478234583219964861704770616846825263204352502336667496100380920955102328245074534017811382733683813291989175445493676664263771560746917459888111138607931602151216974217326798077914638135795938247918761100870231842826359790703364901433812540709054052483473881910159320299989108250020657836665941435570534274473391139645183635525785873098052122875941975695875686722010775557991705578061941235209720868952456062323429902267800793783126672047364965813646107271867454848849273459750064050258534251565510314984921412662366847922455962488142857740228383156925056732877978290836020708536664657748934706100425027055073387105576457091047892955923399482365519522060812523805692309372208588935154785457427379138359238537661071553072676762201238443181023660727153942026453768271819364119466599241692571084668360492655068687646732587469571901729608871507178773521716631865510628643871232258492914509518090946987967500668072958840192038027754179572263282705904027401783646094628135494308521354002775079407737337283673163410980886101893847106471744525065851796065143253602054048989265403832012605559250718819359272261270907674578385072910135085353688132139408971851068306728854053877346380409082311171603241887285898579829248761171459331450838151618748279649505933542336763644697774043799739455261429010452825548751167603670102420035452331804873523517710451980194750870929914395197989943995424276751516455456886626229899062659698243258538373754527864009750546383976926923969894715270187092444936002227470104118685791391769391598822222165961592968358482563446150059303883230405223670394159295727262145089664217361137731048675474598931007972829363239925809647422837402958041835801190371235724479599471956943459810091846358368022977504131954058019970703045037893903752122461484235700367663794069536141285911348721776124359029103774822631060795759265008393424336191326850846086491683304755560272616996439053195108322960606710917986811191957250927244754824695046009377698251469929815377778593222492562933162111744156207809992087318400955508218738136333325242479807006931153278001456747380027937716558417291924611007235071729794841113688428927217974157496155096286183795590728478125475356055602425866508111375489568714199125136495761893249390113350315970794074957213096225935780377579565257648989116860374365913765676426634801929745125835604787861702962661405717165564088943756750868340707667627875296797673489373244574120607406244512341003975480430934582282584593715862591267210139479902546446909689979295556175869755895377649938436438400353961038350744254381010965428183893009120663747662315402024443933584948383957987418413488095482207801887732018946201623663458184924388072406015766592179270105719425261750239362250855574589344644449400631518022594573749436496040623403573265639886450138203827354294041052191991615120753907674102104514412031488430531876463990252628470369863107281914104946590581896177104136943985777152731325115840985881190080041773391342240705013930882288715012839521281123091790018248306937448581302335211418871689479836091660559935692646907441901777728451279492012246250159996261296930735564527766735520063846147299008801637209182644930430192944309886853795422245711827664372464267324800105981440812013173614517192754930354181542146492150562702317332372530115163022836345458348890673803570254322281936180419716110466668843364718516376355330593837603475118145447713869034243223967658668176402983966120522836057982087875310250895859769323781153415308363658357565906626551212830897439354629918653832384117037990774660643952754371056872667640827232262219386775879577358374078775969028233777939826587843950510860622913287011572569130182615665346767847324912381360696881711141114649839415207168728440710553543279301830428147566364832119020701987770969458278290704589888408275115221922544666442106719088977233267136283148211677644009782474154415847626680302784644088209478738706226530100073218158198329800315540898849855632779328904449892246589956115526722069870592639466049794595422829087220946447714812156578461644970631135801952340002445422142405673422100640644405278083834733424840291244440366510696281030442996734894243525770151174277728689742827099113925301148021780641978907425795238623935502033311567665871281468817335062472331054619093990165365001000419278817721005502455705873216553687969838266244635311862202984700950617988720806957903648737278174304689433559401778284466794934280877648872823555811907639265917138256831821191978352679874511714793798857389919064211024891094121034821562000504593544896931325555189413594013335165148345184999927339677183364449280854532565492426804742182755711828430293714734495886380391681938524027121970722207570466821802685862632023089204710405562392609578487050469912102471605152849690133029540729442812473613863765657178274797481341391696424204536516489000916499613213190437593339458652429340336618439014239086097342525873979193072557582224269380693281605691547692648142534403156755116340853235910568398727043882069696876286625647830420948920143092394843469604180056678639020275930960297809262602037203555797562640305073277827832413368648833032227439730152490880033054496664131971856789373803854673103952641161474853975598999103301940783665608502711566491147960567303428248420460853705542022695631942263770129835000364655568531351897903854471804041470288742443977538368124155604215450742399752977190118514527329277450218988803146803670669418727807223830757740406181977859533898902061384226718570029209479552649520336397051245854769734036107022427154372330649728503953008884205383487357576128149522432757562501760970641727120015127021216007603710249667978240326592301483893326372630296899842243895320573478360343483599455326494677551410595122305665687245813903328766895272370372187133186036778280146892941936199116095857404328823201686343689020362778261128837549680848764072415454992796768786679189903972006626501173967395010905350524507704143529053208933394800293158942491943135273987604293267857475527878765283885061493775142535473458381317035476298277647124312232870933462964117134344577106870497495081433156271810812525614049141217654295998063178606700535865514982021798871864381489077346017273343985788382257896089542258448050053388457356748156629844315360456122292715432396222812205791455287799394755361135252496178673205561044184781660511429755813836432501224839316063234515345575006072476627342893997386114041845498768162137145892823709087088215986671270951180961259236550599733856610832485902229151586105134853439584142746042504157912277526071458112876268449320950731239483476781239469068050887936541618174858416363987173663292888884988942045546891126283763240330600339332542848746995171680667323417851778993758806376857515742617228353645867572393755741709295323984726121880022262217243101933809245631326762047635637788785647256050700579481682151078879326093547334520882315916660254517493833491399224376387655161862125607209137129184786145885161765318365864219739785780324669161633778064349889874491430135890805595887024653213107783715241308220391232850453885033512336782583711544913156206088343772218553198601135880041141410950860022635428686705258932151415410711872062131266913911358407851259018268505306362662634204648941185466212389304195555042814178828788654543054552126546230452395187193825774775339935104967957155596087537956907397169358131141171699364646479449706324717554285832672111487840563894525623364071970844493162628705849511265803907172778777663666612737691721818118600292836595853514230415906457559397772814278905588133598889812479845266525934738019257455204945820389013338547727788896664511006864407760737370370887139838176561326446583192421287719896647955952389863981532181761376889937018633786590910675062381213340176468906665205898208361974217604774692806101226903051896135566033411530478898737276863770290373827960568116194274928065755676184274450739497502685989311510585590962757525945974830294929621373170819277569786617288916297306809366659979414033625183352804849919272796455445315809532604162595301671379027642655206326005131083562238917509781531880159516919637954178150149511139053811073960216154191906377968370783835593680670015373690224020379392225531348145409029936561064371711426819865151107497600572226906683572742461418839495442783422773661442417693839896009369411682326241368289299472609268042833122382201924269818573752678916865346556631026898299546089793449662471416722399280375774061403135237792093805135459685751524604191826061467453049501448739315460704801165661850216382307446392336098856400870614090558409921556373099243445392772273276934251806741147430538030072361156300696625552914283491684307724920555557934456708045284128393432170646282225806974536885358481738777607381267501516774584846623168109170143974563295881079461161557513172347107213790380990988701870939535318766791192985769594718024610058968812999818347746651574463277546613875168902436136362819025766391551960283871440690151967499337397791867728390913490148560293855084904724399074514967605518163424244443652610486514651538334708486644960440055748239891227650381962503610193916415569952245878784433932780724166753388345177311020087624857133803196011688130321234507311443931586312360358467831846523437003438838723821623685178475961567136439268244233591212631908615228797822491300476274319757559389985565116723808891948109841683956590927979621990484066370084932015193395397847398487274224372530766151184108224858770616205536838553304613424055421787314837058418016750288800375256741344384634933983050262353578468737655745975140299465696800781466607538367892060277225128885793439933800347196195998278848242961549473996219622852771428515995725265709764326593435114412626005820979087904202095977013927294123590968758731388210623809324316129656753278454342026295124130358953314859400873509756877491705542149885508261595083562594642003110446687554895220149489938301936519797517676376869794593564389889755343826978286644986036543319108462907656851497458504848841953038241859564595998692085345364556420207064562373867762244130403309525783657819502108837579431612301866011889078548348165934606641178660092772989374968385874625529820963958484029544338888547710577408787983560805479696681742272421405919246045194459227372055638006337201940043826887463194268836129130508835155832697931073043785000455274567016941367203417970088397911958965233882003605270683224666164352433535418434931410769544102230438031165239040513849258428794183178144028305295602135754674557427701399828687718624889762531761677022442140833832313542636625411455609680342827337989725415337266021726412999655419980028089629018798166804203414634440630508277740124128829007701170194077881005548844822487538858914179937347705231184245949138189197365711421435316153436316130124854423841409272509595194579086160409948945026319797252834447157881031766343398871910989061152784064856221505939811041903672660747601584720321604095545429853961807089408520653991620238402854845139850654511210845798876388337037066641596989507781933808799075711802355960224599817902025581846149170897173017723488174021327896434881494700300258258583161357978051387932300703520157999350998036193782423614623931539656505904911565509062251532412142896563418574221383623875311371582066879355929650117296881033839996423994962981887013163151169255778683934774878492016594869728015080240941957856647624355158015595163034169818543147191495155004206833098569185935929392982114157425923179174629425551863775780185808479266243969541750083059110936300796314511951747899088303813502082296248060807676480068991315886835178897672585129557551937453609241435580428220069132356058716952704761019930240367744915266063203193670023381580669181594647419591863564552855373742578158098696621111204928574744677234765297209759103733521225249088213973210605716562566274654068248811070257935002930168672099350485318456250433292453945342822279012713728999384981899907734522114971495644959191139826243760736583790794990141667611853296666030467622834170360492331434342056083700661996584889507137661829873055027031458685442425298222253042515780057586676835292936339238055693759433894464006249612671952085580073200934301361932409635288884410065613524478984868877865713950479094356895570433623024779224814223651444217779312356542749304373607751147474179436244531934416112642051920330554263841755224063770919804572466022240253317915071868973777622014236726762147113242731695945260845038801515356487418715225607736616132513055834755072727969578951563503635380594651226618393328397271671954200916566317137220506139689750112716888878607256485249797506818968358212164459309029759943971692918150488364568048488812516894993185721578397117712464427102747230127106217282737011277184901750226069533953439410703870542837390777066682012944794770907104343493507660462281827399503437485736139433166359302886197476423828490183867882290036699184800047814710675024170358082265931340013902143054858484332219295307198561780987834743810538445249891417229607497756297226063195589573161229160773573839274755184517480176171906137084043571183692959846218403077136908953284337076792101778827491502279463632470341228394800523450387042862021447610544823837629001871866804571229463049752038168696809167124232262833833150644350055737049741733795766549164380845662389013994270241189885735978721905323837346193513425574324038667791832508000228911327814595243298878332791433817438956101990574813619324262437375422008174371839059412910537436748983899721336337327622883288547953942708484544961806726439214426903222300367557344585331769501241793213343413075139304363485193523647170484098616661782196101042942396235972733202201719704402231520982458827011295775776304789704214999031726216490966020454967149040550994539774731147448086115613227711518981425602629704964677885508350128383743010073842835393673670717578403220880866994064771904991199815834748757467509648061146576867939206446540129846573757524243633497727481253229051720155517832136655200860744769848658124172734223546002484747858757015845982568935399961928124709343357505209311852222586803839050280221499032001849082608382693520806839039956854175509462503468067919595582191267382979370957116444433899767906471429535160254948490168754009875258552073720460231691021092355141524026397511482529731326426352578696053800298767584741859684794310360579194506154593306158403498401722341222145048255884531334311148111965906766779497139282262231632599032594073511760424067712045465629319493297088380429573156541940279841076820364484504461150812129473892897115520901766484323914158805533518890116118980843618204331078606254714360245621121004987561759964808391968680395736839990080287892220977355858859833355841533790474873151560476207622703321960287338171835611953758329267136955385127500627566042450302409204809742955650251540276012115077915640534996336866556014813658115564193987044620625566149523336459062816921156729465937167851489029123184683678834945775500548097006358413277239566662477211121576717810138564032274259428436922940222108655298339320324969760788739849540621325280558218021141499530969093997699791127347586094527695051996068118452563798376166918832009618741161639547062122740005808914575601000729156493319803981589301762950983715895755056683590645741839115124404736595482014795016699240749254352579782699065492720728048166294934387427137159401110448676995745935069463473405808245807177061146696565415312193657089142363823194753880118713705645294169247828146161350773462372007100231262141161070112354978612266044025565552801052531890316338100609095720715233925738564910858493405871891853547866099909711682491093861513214740164246489690501526049008623407394537282925696268858636279977001859005770438799670986131373398865443731781637338887567319546988547417103148337505916556176424896526752234180283416511424530173133535506895437979967060822727762159834912745197381679154802302375669796805180107482279855625228006681653934971905036421089331129972909807837798426529163248600543590257433523043188178895694144395867662122930774783345901833781260363903647414061790049885199108902773297654487633885400525720050438371759820675129152923834161026107959369300182563349878458672770279090208392185462728825996494970347509143676015581744714593459162500579860208440138373481082452601583588329192390260419047103699824370537863694290728550316252792011731197834433299992955556533805598018721598012576712235199723658140066347372983438789079865782957843455789987353877708152683047962726957053192418698644455840464517034811202247330946518236207273300184529488009671139142196389889775008677733140149418805581181614444745797945574491845453460334788329201143465498641337659785547828450413391701727218439795413795120556202698189438180424618211923636028649726371431704468387723883701211863561122142272393699851896623639779800860529972188316329512308380624484621570544439969204958623797997461414320254007704169042085058909815177889480045858692690128050013754621215797907173096630956678813042542584213882995024284970641757642704107381987681541959701568985964287158959233806283211502069199566395488941316393767152767157673077566605057906022368834357231413825289337613929138709104047130675375684724079663137280415790846529481204978284989752229586900159010747265499166428819045177829316327904772020146503373580848284002614782516150194302719316472852300801822378140857939581824974644481641476395269068724810923082726779484920470460930588368658919738622741525188444327745707759109041108036693535000971381612310815042455345711450539644485179043589046166361868895937022972009352128203098267409692350657687612161254199518924880390334369188429118221494359917125698399845327151810656351675946088575979664860269126241913881450348761814396517316956418229193619319438974708285437542750637259615237312851208342355433614270181511071732598433519893352578395607764142358937639628728280365628867867529438716531089081316658252819174661833355534902722448570190471688333987079665415482484667780020905441412368533109845786767531484043476902601896934585563247596880726180606308594569305999526011551088784610489876395678597617046546338967750847074140822838298408508140568421924386453122694275155282222553202641848668121993286045257574432623744674287070785168232197375721954253014116322893841361417663262693297321268653885555120327022806390166028263166241162068909841004691546203435634088886330512051262965083431928571391730392782123155873669303572239376655325270529653946648657009180179943771710811492879468161935167201201661978125520722373108889313370919332699137707031733803215673214412213292504662095694052151875258230205275226918468816328629815040436037018612409022694937389915443801452001609053612900411796257624023093992488458642177551895281384918303108187920941171564371051114981592052369833026789402013825512117126007223139599028222325229328478100716183222996658530801995701855093787931357305522789614589236151969373112538620503323471278023260450380179189513091390800883170437606975595459448290305358849001780690277366986554118969233529756582191769435920294460183630879982862703641714668736513611269178086626200833471193647801456618617120019383265794318238347095882932852518219227051594421503514870291815826133805709847559589246296738654147954088537978909950403547861192383723646698405367091528414876551848176902763346330610642990347906326402875087696223517507765212482945501968203282294997260143713477549726479823297193535146154582487845341784511311489270381466851227031215321057747934048027264753511718570252129934824884387285805528890426389370097503778519681510651348313980319808232893029429727131837399001174395638294936945714201010051532184486367647925484069886026882614833714304064642954130530240207483881057001996263861728773440166268857690064634236073448373487850382775250501428231444027703234368208172846148015497576457870422095253312994091684154208288749022065949178334390559378082747869749365899308666776120915102476928071832786392769795286832521220509123774140652969368807239574074543887586420409080914176964876484750304924305101277814774151274690498300681601112190316288108741730739185959808505098321242046365668434533034370470631859664293532004798514291564545068716188322664171254004056486829925650840290398804072482647215879274095891036005426639011869882021164633404573686578856720069805526306454602309755749199183335471267937282005529491343181874948576290564982801702145672153044873871946289839646426612278094523160485602958493160941476465595177094634520252528034629563617122263858276944095240394594437730574305238152438562202394300326808002533949611247406715938481388858853858840553349491159797111763814693380113296056652754963788025109212641729683945717344712013321057509498627596024837669413574241389213131321247400157386832325908579768661996852526687027951999920680269809832788929616217382510067097579903031927945849447279638393026246194273755536000069754368781034319157989233848993442546441654833676535993553510754341881637175472070994608095938667962067272844437320590617007977433030381398505233145869269235192300615618701842421974809548652174447762018329969101704059086103764671226489312690299185886822228900862315302223226076066309066486292976626853676180731303168819356090612918435145259293945656230313537663607767904461748698282876769854893723877783994626942795087163516864841445497065439511216223529908687095803368536954591082226398043676265516989204646882151093617510852198706743807752624985548998618275669913800889009266052231352223825215466074735150179192306943522911167911592173855572627401543536508893198083825597732331321809442252130005560900352413903721689862098441110551137398859151403357584810101008835546777364693515320039612807787536115498476977949669265973370356403634846252090194553041605859375238096663857172459273512530214420489260813469683914672273085969387721596178555509768315973348363135156328807274938397561709929885649661833932321920027293694671891047486481317710541631737281130699604201895729433368223106776416836892867127771291942308222565383387898799599539971621547265459912588539674885934451372959302590907944206330673525451627217114204998347922169702918000065511241949776492402325890249263008137858498585198119799948424188540542911528257803753897882602393356053627872968659121821887095527444605142435117348761840761861100909752810823253065442936291978548702485835683169141915553801568930892457725440677758307103401901859839274850942786684096528614104587030593179637007195161331178888186037393404759550548823440813942081229331441408050070981253236574074861715741922794273630387534626969643837563140916757110013876312520956949088353103180090265357330391584503231933514121215400233716178018674742817316485212825688395333970034756235816472646447887018179605347652155777617127224099021130319318320724374094134802796293493598891667995245069627201074084121351927372863402392408742932943653624040155117213281647939875384247105319629443494999927439942408837549608745642187780131940581143886782154971889077859924251984463213720490661070744047381492908758281546416531884618263496500452470858795341489131290980274761165771818410975790843821999347392700617589268135301019942862691994331695867005547063854179564131136212182037883441859589542070005957957667298105523147133751091003439918293532604539385274226831609883807684050661489139217078280931193701428055145471585106790840280164676497372889386069122604739544403279115125780797621415824089995040291600445086866709297769961731798689428126109583769544967880278686295606365456595607191048216891298944600018821834876596591121895080190415140360549375178398484219001062252774874105069953224508921302188558033221126055401339956785284737283349349082990077545208098274699257134300934388095983603281176519115071457792621507137440680445071891386839740368864309657979512843723421103419733992971539781675309761441016132897769974581357383384658567776108813029515094476652794811583254015856428260411099515193179049796249882632615770979702114187406522154701339902784156685383089715853573060363832398124396068879518611697980764339840331382297508163120111366801227057217838870564526447160529874209259068695686253673815224128742927537887014454206398090476989248663542057145742901281900365900852371886099867627397275518597556168973201358675079130510346710912703611668588466543865681747833715907025311145234035569675740321986089504431937751676569932651656641346502783961045473820185175227820658322420042591885163827371503636271637553616580421703915648006613506277834005494485141298410051421970227090442068541175698068716172758094788160391971247768312171685836589308850677113449764989624719875003257890839162433781439596658822070884632988982080499256068894505215960784541669808029742042190304317524570270974974840767193900710659901277743484933564689592908353877950705589944031015681753488966006391299306280251846254603915682190580754477292213563312961855657256128284448958503642811590869935441512346838480766092075059235600623746648712154814749165067561352318114469858786452386416026482837262901392671810334121076231490611951801695963427901636634625173166714712730912628734954103096438781765377193062339043914467214212695721062448316562356970014571635017609286841273218595644448267800609931759158778198861020131119855156916319110450309512591536297476462992150803067029876484674094982583386075691778585324267261021810912963255950317120217963420260989765216235801932420318556200702051472096492888275107736716932350806211144316658922217945226503076171623523453744977553100244046632491144865332626491286931902631637949780895653134388073015036615750978275225869648498287348536319475397605296299176691000427380831129580399548320108130857680328515248325236168692518854709539753953802192635421810443027402587622942281062526054013874058167877052424229360817586223936705453681476845083081013613455225828390042784390084469273092983129366576744354567110577752387008610423592420004379644069868209621226063404339059443887562136107430798706696024771447435690061192183225231457210705959016742353646585905992007213588130009601553224905648060370361576466868544261891183144164009629547712628611172553237406179958806537582520606424496239010352765448282553734131598926979033591467342109081413754721177133520729699182095005729733023070576041974152059361461609479507553058940425251764807623760934296454128050260725950554400899825716813149146219989234992486632937619945936440101475911857753440667224841524862623150709473748250791071089217567259310231497832158298500611453202629805744865840410598946527060262771456451627004888841184362789317026201204845691968586760428717513600925003053832330598298150583015651505728163449315214235082677261253251981859157956978050005566114739095679931741254628597278119376085779968146719643393785406148428680583070817842679425051845770218666082440683235707454229959979961794636029317527829308859741709011893859535562412484007949001870583498039880572449537901667801185678723217808138302438820831789406300515980273442391722829250923731087165633322319402379522614342001515571621785250032319601592628627554393105833915898017145222571056410830180454225857392232147336786997945087447934990171600836576346520916509720084375613044650756301858436254327960991911601516187585114126743421083067334851992915035496657821840960064480887349134651565992033291691254269897577130992383171412304892556481578179727070324136722872799843896015301255886818292000397406912787635433708843107969013130005296558131580984578697289922248611876613200005271912665076888915861967650528427395071809156663481351075934951631970225256812141060584285893191306232968863402017452419724924028814726577291112948136068325544409931232970696242848864797169780999676365459168435444251939130288269408009579929050024490990559574454480470591077212420773776342298683073568389609874285832513806648635928875109461984905919982185148329232273181980870460868760697654785155746252665965307900551862403070534267292832991320592343269890557142080164626223451818917067559758170943281128761191103388216100293981500751990813478947844432804486951657841985742232774537445326043499930477759264276596824221142790345467385483914639818468083426469846352670837550272194409255274033527292696100862625112698763678738493112126052693779694915487424870942848959480138927475326776067755027367235764934556870259608663909711191621685904221017503277612001047032686096045934551232827188034154150431567050766381878228341457402833927782944662854032096128476261606103335301127081690849072921918942656839433967198119845686712794291803653870660828989361557555721851226318244569165858676098817398481131363459868295629281419288273227930309612180912077902303679837887766260009425823429897466323568392725366184534557911911519368645522370436892634607527710706058266680328534833924364060640451525757834926660237329077254342151854432979357189518417512102659031421760314434738661120120421358933094819791380339674089842472506929734396063009564450744428995299141560050284323010495217447280710205180072596473047211642502152585660790626534091428910662407655329819152924284788517547187403127921041554252444388066137852225337517828162307115389580180226045544860502916497951589580342337926008028300532936938897218858210490681937832200410650805646873852016499046052882321512136426490545532958269085726072180529605085043035291448318805040535312088881114270136926979991042906344712245518271855635929106887455806417749488307235163389552726774371694048860752713071503849574835629214129337216751257199201742066258639590126266830735263702548313014765107662092888221450437952185311517519551730068361841269117985078308215815872242054399129899070202129874278117288614838848570495764392659819727968551519895786109044284455272918383737083756553759722895057025363574247900051530955561727463656402028870882676131514542847923237368310544455098412140051472563670802924846500696786191840623209307264543610989321393832750818531601902888025811932589818074284091784370626564508105055963880939542397828701674297028755497215380830900957894302601511876391348387256104552911395076460636284368582041139268541880021097851643641367407699505594520040815342087030032633065534507191729781072335520002647444111874664127456232571662812197709591309232931727993562063488243667541239861202899650280534462233894055174591979495025331532856126834369541941865016093825931382462765941716671675769539756847833157920354377264123454351074032770195118542705490486051755813676514653557025770014790083185946320416228959125709668181173926546804627462855941146277351847893063857788135540137234313042805060589726768684408700245645454847308565991015040256069946049176586512367402240278583167678275557286891569722395049332912033192608457858991427649377696016254379408821168058909475072425202035707088606386029770748770997020595806615916722322401241707242753772769971849683252356723457355313740264302258549522735958161038853015398454612902652799246203987113250297609197207940310627508405314436311177696413331239981700881428499372027555932801584824800722009553514826081263416767951314379586246232226637800563800524301643223415905897814370240221460048129187284046032604918589864714940734327471405983387533878679202246409220875496547754405816954994485851286689864922802161462498350829790917987834774037986089626963275154243322632875729127918865513070161511466659533169042185099665113977362194630772986729284962440190959612416019874601256311643190085622672918233358628408108324537765229300388282516730498784854897266282437498077338860613610395881292491294735898334824717012322269632066354972876580053350863055730250241017491306296540825978686116487148296337413628676951565683957362083453681335908338549070433673212488432176321713613098839270971657598972720205179238779989976684890063801857755920937003981608484408690231476164533427620510091424086811070172956608660080633827727182477247346600153489046698264855726897254564294128553318208140977559702368609062657244458411595506929537432069110046058314799483485970560840778885718326950674767850173946885637242121685310308606413072875312541539362984165760640013354478474756627154992424048110490760599040326491956444886120354317681285208323984139750773118598147493799469615343733307965385355441809856810386291453732124294095233899674235846934548998351613416222510384813211334555830514369701574363217652456239074774372403712753334165447362890826628729156514069929373829978595997696803366448916289769460201942322757384363458063594947445067751965196717081655398979997060468008859431089865160201067109610750308567156331621126312680209974371763280795695583204894992268891989829558310856894521932260300766351768633516611896595704722053171725374120748235793448057478601988537644631935004602525869833237003203635539277913997614241465918792176489887515521226385605727037205497378808172650227102909666607888810512600013509507592071889815664129672194583293185189087462644896572885606544869058131511850783745910052924649990885323693450619832673332652925984149106315944851638144757689001146816067935656614805240295521339976571909604106146205463164429986378551647641342340776602503069437472395894824827777426639648836591105974219506336212703555763155803252192856757417738041379691988523238892410855847453789537321517397230370678650224032870546299473642753824798676686289252689257750701584776805383696697368028871153542734079819830582701802146053064696803296093368556723077614997347936764177214444522296579662766726364427480957845757946889826528980166404572817620790113891214253026127726544341326377206763403775064105563485683042395650133890444328615079891512862465003756453256573724093450799958225625879938122135804748838745199610510364256122255053073879834200068479927095769500047243642443371614441971930524747268131913992868564629800927377223569631088483332036084278949614999921616830922277067012804220584882188748029266091868190411464774292631355048516242919667684112042660015796389714850380137164612280403004797078205768542340752753202842124046943559708103901473842436324159169008006717326675371160249982107386938009753812151096537530192875632595246086441624884088276213687498773284665832383967124374429904623245245319291085206187535712885517977500371232269449275471999640749604490189221836322080346849567916358804907278371075535731332119001441622918384319888530365859891104548153403367662186298719104306165415449782726539322245078835252304927869338118144366665753624130423168639830414917845462145324103458235368695422470260009427039340971300456326032676262830029464418528540324830099184700762173243601017589795042888105200819509937475096158732915218670252059002155556467224653462701209088598190590541066090861033195314021923929533255104146502501149446196199975554821589187908059997369223083157377351853037789173800565769472229716024869729131303741049584453025673315143093202117560701092148887320809403444137577819488618428023194305036557518480465063196405843845462180672738003115354922474032984396334605809482625529027996468573138288881916266061497786026527329541297950498651647533765843738441354551405537698576662409262822984048603790457164324272029462248207746793279691947215678091371629318094710760724074867525121592305491846566423263418231022790990321333503564355157735842514827102225308563433726133483652260062940735751273831979781284794611285687834588996106912140726497182732116183245406563332938141892001048332572147677562632297278429412750542944576812203025912963463801724792879761167828302749368310680275524831819109410515482423236139504454048160304859470988661089892970681442538761091388799035072749418154623009353343865864885480098149975000217123232802158263189727432710485798312351448245430476834599501474524414011510166673264606732175082492750184495080573205249122746572713705016626693117002416142948605118153294572935214760453229627958716552812710669982056716210882488880687954809506345345919949426798422888081567524145545817377714170841369313740661027683850174173520194551734596568677352490159402488706037398851558467887219199400518178443376589651994409324164621743306341394051969305160035201353117309263606744726598550094354783607177840062621833614163907902630572453064042693937028088062862250376232864548396340636316587716290131930081928653548028187634637703649237171256945887072841958125939164408727055407803540431001890822820622073550333409699137421237072862506921758583585738597605751378280126979032038717265140841926119562849018040479088085223182742401995920040741049160447059754301285900017244140257374017029851232288017112369030128186113888455205906672974380122472493943498787901361725290212014123294106998000159447375655768509920114378077481182649005618173620370805366839072854311008252686379610269496857647121923613830416646944645280761170857867724827567494070398768079333119142148030860846858775869372897268397809922193023632382391658220038534632211022640274582208290897958035218134458855328966915430348504886491773432698137229293487471097937824186041764179703129320977243353571331581906212008877276923675046573853112285539157559143152155284063064925029507566201369732104962445543990559256884076496865579832819316980454816640211157991863834461537230727716261938178127278053896666056575831365841938097188511011742002011728609411497951720113282384670335496964716606155408677236869991640705387783987517923679728733038077917318871172724649522978163124791134300333312575592190673865959023503281131876900501458958188740604547580560003088025161968943240491219370609293839459728324699739221662040364390247443729257231518237437939510757195554715231582645958884590104429408917331696306139101304537195615993669974193955301840966488189003507971373467116478234708875064286163873441641893731585635355134299197918037617892120100182643529766064330830801969314932521712196786882367425258098447022259354620724628990689279700364897137865149261825402142534841199896962568572306498371821889227721961225083231391683691470754053020516879339597212889134925845521758049238401024368000467918547440340227088089107356560734293643662688805583255995890172414665545604219479162980206055566179731452677695921800105095502342804169302551156073024126214434333392693426903134607939116055484637578102471504956072230952423904913754240336650737894932676834833361820092851361081158147877401081619701759037746481539621937417548951297173741643420237838601640762035423335897079006490195432173545315692723869237294161867816394924491794759125272722423682460303082367571926805235322327017978715708750380439338844782099376064530994251752277674652336756577806264211439404128452030586749378156269005525356018626306805399894168318433287406350497213405767505686757154942678526152765773763459218022246551225128880149929505363305210687267658220121090215943405064674206935822282206928564546284905965013058163538397078463021883790082006376873493482533582412856007967135609626490742804548570134709328050362701490372744262835754400932204406743299984833739143078634465020149595184718692157181353931903357021523225030239083535291896880496797619882165135198378355471556837911265988549588264812532325380393634139195694247783377859374291674117036477521450011122783310934466946029203958890348905590539628102407636600518679953953547979969408625760407354983797907093828561678786532906953078832995930477432956632625514792031170310259704321240945003357069772860101323239018384804344293211299923156944879756894808598477739341591150792951136773521298144885807895727224997230858399064981145814188664269809298304109430136115096770072311941574707671690171170846494464388153377186095593008345243748515960751656018297691434604925683972440420863958800962799228441096636398828293433971923738179870222572183955832622155231753191931641073241228939130736176529375954116050547708486280862153924784922076634831234573923477391599256343455695165721633581653596084803215235589727388784478726335046331485000475723116807482519725764477292636614441325187355204149483170466942181593803432172515650772790107897421998085847318926300423114473642495530082262346660150096914117464500574955788223688286953542612212766756103829447111294609331563746616709386913010678652715078316923017075087227156532950628498754893384995687905170268396466359672579614434074654578335468613749750524310929892256625561086539534327253979638758419728680510247993240937149790025894234043978949127346098760830327313893435913375059571540335866604388647224932523990595260268454843452133336777675450887102451395107863319775049733568704005291650943543001863510863495105410172800657290679438342352901936035586227739827551186426718438560724293940939273620439028707080663742009964913061293086351626954524683094198533573459880026508400347656955799899447617391881159311771659650289132989723692524792944871742030229717812493819363515425717047458584825805766432532657695829169278690994737706429749934462671895984434956698584925167528932884688493695229075156605656839579562773566151119706247453411577724597975273515545335195967367299975118271220174964493272693556976599203628206530165249777561429281109162107925461188784557259253347749765635287429738337024972962145177921927835708216577346510604944609442347778377723739088254808573897280593988015651076740858967228652589113841703253676183094659954848487250477287288636341514935172890041831026855117255419197864132132981942939172811581379395768109969738549889325894463588047480515308580368439676569897460197612677034020407591795502342126465781769340424760280134818615864184020912695802906139887437506867271623970496526650958016837504813934703304299208948548590511332259877421029317355752502931611027985157518551783898136774314264977944667364455275352371703163541921199944606480743351348418849150371484565110555240547896601871245709653011255140728243243007921532428567962813695294243701939985112264871251697255024672607424908571963394418751231829862465938611006023001280610488315296541981304637161368364441458735759486822100005063768390748391672322482768238026230370039387957643942712650705856168758986256720163132454971519994846444852627599513474295111523508497368687752817311935509554935511851780326324338018326953810753520905528296700992188561190058654626560262785661078595187042733891900444714185197791687291195293657128622895797776874153540967087824280592857023093855025380858901082240886359233801272016051155339341311862879402322578184192577781704592077728547608898055384624722367809778090666462864458044275615224520370702188668894489174525101389791989069909439228806455633003966138033790041215250959758878139850591379476140394718160284840907945439907479701818084567603281787805648108629677903988056684622472138362188714662184334644842710586151625902825621694678834523935091372009815717140416249935354622071233574397826334646728390525185691830990405679852208590365409110425298398232939961995191571625960304330331774209539711322468558566075877613050668828388842805348440748504830820018855935376153773462698643617068939597101581475958631301483375080059638690064043640423596602823357439106196093298116912778409311208840484162283120595871686967615564358209784219066850210889010113799899614808953938446534152204362275447141070978869609789958109589414055423788170364238683164760930046222715038622587662386355362054209198377879125112403751787191362294855830066930556620597958525339399975784237891366728845607336463216982430070879106457247612815542259922679492861471911724147308194548201817431699313844199998692303778314415285919317645194983470431309504458291418118261883759772988355577957837534113749674522065345239482450573678834705654930732256390000904776242666974275198962622076499717666629448012027502296247954391426924552090316067979680713200510837452685614784681930708811680015001752519382472836600362428442964200226568575217086298671915279593352819966246479110418004095727072812153865190302328119934549595619159013955102432657003176988121402164802592893842611968550653161499282366182192227074601568581214749020552606151782579896339752425994337321709020456532776709021529749510222808232841407842367781606802650453082487577955181979909479297487091828132635857315548759782575688652020707337961527461219303624456914634786893115176951289953236633870542940721591558087061009755761297135870237345007833198320108140206272194409548203352024831135374458898226546515918560570128718500969945478213811568552193778842699032863554983210096009312301232072788029510357645306997515261253589429280344324774519010643349367841313932292012001059724411792841255467335301922979428119233270416472073537652832602640904256569831924127512498292819339786149740712541051709619514887401364900246225865156236441357759230880165202750838203245671843704600563716042631542878316243749709848128905323255509838658511590660712750922761314388199370236466223940819505955674907330214888962263143157474919518618185521449707593458634503383319143373765017094446362173888792821877302842694221065997739125552415686751533325978406083018168768787949342628034735725036601496763928703161506762584119836630358483044566575553763164447862229693925144205672558188119980978875455411632325829727531844144160359062376465566457344730820291692342830250135297656895586914355799377154158099564456376056945597892383995929328307819260528720079748163553020692534531147547573499500394092208698756999862386402312324075202119644332910003822328421575661333839626883850580586268987040999087777524050502741982288595759033748083439976372757274308318493181546223821065393107746641509698389279948847375853135668605274064966338411397499107948170575144172726235193563656136205996926272915668507587779377627119124714474319563736264651359035781323648223040368907706170682820725322358894434675038394449175823427470001049546224550695219967181814596693511402174080321986314157241678432421622250822267249489368547967343365163408292158225107429098235498468828656277032743629843488917985095622793802705525621487013695028282938069109107740335291055136725114697355796863402118805186550960194457190039435289989938227186725036525349571432091209928300485046411501787430420038119913211583785463106499582118265776271128471677132628374292091168188837017141027288440807777134963412443577481417396320217041293176943752224283259608651503511819571525830025101140318172742641887128862847351769371181595543716085158570107353066707310600559005658534914251241602232199443401273782066572641933888619706363231151309293449170166656440854757915657563357290421196330090957138958584854711815770531741458676518436737513496995667665483076357539652829959326298286021206372391302632277244777794703084155879601844208204382073334001600320026234984497888653926788264205173803560411028896776035333625823158145177074660597611743812003218524810105026786080540565801494306220168455754182147617712834302529297682511946486316719895334632504049624394658362236438851357615431885677742085062781311283721030933150523040503086762750139756714831109883711718474678289910488327894181877587995862903377689006674398485184371878739125676073290305549106296873106032146909161614524784352280242389195766470213156741129800051533548123960470124139870938726406842579262325740999929751798167552991433788355515161412592521369358962939481196734191896060015574710127516738048128788121090631497401865101346119502559339895381403859404052701683865714177583247552414484696614868226884174499219025014811802526592317647550867916370999034802277918478123913800178789494641963995976355244805903027146451491377039861116614480199891545467006202038727963245331782399228901076722446717835050383431555309234172069699716751028162693980130916854878573286319797862643694302196064603713363854775036292737232655141151827711063403335114305071319576005144537654850079142433253032664811073325349741684230738623545757586878776926668331679645193653551782718553412796040052283821156574266748637243391097265180350047474007870840379873047734334890365881203439811354512819602445707480198022854613211453017170904531389481965366766685328455292098035748423063946383176081654138525017969603896468088810976054732310361702469603742774500501580808204624875861050903553865713206444471097687003357879051014255971410092808212740796809140003167251948703404680892221282181998927650410750486453458931118017436525955996735351157054967692150497270675136130193596502542534787498257336693832136603669159386210605461899216217005343114944644084182227162662207601577544673653444312894932542633036946518740652046452398937216983188956288267232059136675072371611416574278523335455381468360558916617514419740016726665995974400221997624954380014266924195052646280799687545017535449577883604710450725304450835484971120927863259246332390027977355376924273838757708530182208080248311954454974461172777270153974226917188905099566512452057076415187604919097820662680757274467887949601028859594865453076576889393512646823426202709662500664158906042226976337315406661632331567967153195310468533852844250583803200674200737472295225405922246237852574018837718478195009173253984169110085070061924035457011127999734318270059450172511181703477059377955219666789929872447631156522904516733477670882110068726085921140035599355263010880857090629307059769146924993175406774803778747765235594674602266648582959297297263479579042505068921465340031790704295049106063997650952445415967031418272462335550263331307214988412537436599785974283702923591944168649906543036047798211397627772859902181098038959184359824665267310031509525720630164233978827978660605468755760580022403149312521476502021571078062491130444389326564742222058943809203059004304144755936903445133410096001788412305742922202715955023756092884074309940834026209054720926273647268600460098533514973262742923713718009133130781754690540906016762614893268827019820274525755029671622362895006337909750429647354891239175789357737332706867150104633768324230629892635759093704724631654974087582224599023835882491275099766812010894466854050930111281933078577768551570802569820863362673951767903251986267142013649577085186722459644602271834230779458526203768085855240449100688717386247598607565938167380032435416673066170463668286388483303895328071954836101683133039072805775159640030964190118355207416519775660582269959516915021926889035320937094889458706909213542872349471355961567017398260765173617723438413170381653517031317320096032212949252886741389473810366126590305620911632568654518094643647315628583841650515766911731580474632971706211046512215654602842430315529941021935459409275929349740259899862396215127663818118339071746497062585469936320495100960475953502064202388327725540638462433661615864420208438328756340456752668510327354528790000724127538713752338125803545043183771026512965629259257351863927955662244448224172560160150059727964596680022485179644118221879692813573856648241984577348772089656033194034459309827790511089096901687814987434394875912798312416531328109032480742469259718106597434617445653419841513529166378235724115277385448980409728237329806853885732064585522562011943765400235706814061956954845314882980288824694040633939810240322432614250176551987673549415900294904623009569914833320684010759211646890760037311496999134314764128524869505001123987060116180055398448098731148970109832781606896454533066659539968248829818114382666624130392444639166601300583151007556660944154311350440489716970832117010269556000368429931034619829848536886352640722393644533824618317097931752439110429975114057521663704784928003430779056696988356925258659350476991439155148267591432504494790754759204403686942178671557942746916591161569258027257174027468451205000498723465054326460438701577819375533884602330032459987707533441921066647734873254793916134458804284363331906691322010769922450405718338384469105549543517129047948002504276415398579221901208964524906795481581540327083994156731623533920809702805648585481472176930817687913021211926384878954413937732292017861720534253082405572240275671159293486156296700451222902063897006874462608754757308465371215555484873187315294218301282318091175344018022919141532710547664520910583280393742484753822879760801943555482609702286887778319206510011133230214017017543606208328306540429819257307965551130391261224603282878687363920672409205230006428582304895739441176684083063952906924707511671639615053136092020618770006790842139447152584544819026671128733952507084255481388314109159090630450572389786695837307740234957484546126118039598836589545376147152345435724356993976473977151857436221785015366436961162727575292546596280143639805519294583482652434973616058586624182717407440391544587242410989807128491651385052635584117468285612168557180845464645185880188759394337437202155654251045511874857671282233024277408872391407636536280715776052300507085569250636995762417186842137399700162106790121880818001733316099291347698087464590429708901705230888823976321891669832130906684213657660990834929241448894511952200010331804312873340501593416913425855636451999383949188111726650028311837419334956241581699039059820800321707525996457100406119220250520215583403561126194254866983439119740567174875551489756681589126626554972524137573975385121674529683734642694650246230410983675815207442327756235710247272957590768198558482750427366707731580871191390137560610442838180445433563381881551292579995311660625053073106937424176853084504968957742657183147394958188547886066817282100204389065860509047315179223457540901646108754475559440329413508144799229441317951444829329701546867476279871282411346158902213264976189668795527101609756387459806515847482721087513459289107820747183307336832636464588595649036572483817722431628757419287987097831417419159635858383774324591260565429906681351642769022771839674376005974186247975275323195476062235836899185170266252901810093519487259056863820667150143621943027176711635213120023547793646274225157742635205547999297964504614121401626007189552404909838150672941636207103823881224601488630966515387122746723934498887565612959376395411674891012825849275713844690139329466444732478718723120192444095110977961217834128593645873689132493241678543263369228665700437625948296225396972849801520202803021168647457719848810165209409028518810795613250971475134230866931696763269778561499746516158303245610230238885866694952123344665633889709661841368936211397673444559524785106872665590341012132341874718354036840070604182205381691552831868179689435104147738073047426330514190096483082366264598260410834590678790772064222356599639513983336483283511947695284713078959302848460411797954649016097910071221714128384257559844290695306375465855740797757697543068549940630374854846632388359903042060894788398923484838519556872643109840185754732492798021003848653806352690649565417764806849871620953547731806786071040008247984454863663237040825879238018839684163791963358223088888863411532097165093156812959820601123750244023447938566949277331552895240918629102333275566505616530322810426472796616490445015837931428745545566457516680665343285868233454059060661498497302849011041700992705729986507921362961381617314941746256912753555188211566413799924101032068100453031501439816723347230406221795819204267614953234502785184607611429885584412509812728222861268480372643659766198617805374478113699160034187001173314862715448868993511498708450965665109044865351563486672637483487860224583765229448182020234248591527092760010110840274712114699784390751318907696910846559937711716897142379838760689761987993329886765008294688119293154085338332695978365204901733829776786841931779170015242310288655242258758069076392462819605859871426781911951253030833153405143701719180818089296848075820271772956792411260459400625894603447449073708357392717462231521510513641611560016210730912191362183263859268509118693046339339069311106576530133242424799198319861766389342794577615126966502242658691177044642297856637228606432737864378984259326337453632314965158866485500374415340448712842845736826548814600376560603545114233854469355165251012636524680399400335456116491344875682709352160255792145793554684141955045251913619719888571416289207758777174488096807783635268468654232277478324384392039846559612682703478456977695833896435458561422951364848127853867764253666609649136930317108079598318330908551195742943894916819324527443342171784658451571497215519692502878675223271710236201886082777310684103204366949147007325835267309659165506407252171926756714081454128509689062381182772981719052388864310838835716421258912562154686076253562590744200756645906639628880187505931977085067584540365889490340598102143696379704956070148702298385138985864826756468258921200182878275799175279050673409670961620244227623697506216719025384480654538335127974429857867297264763474210321233885740436291001858783930781623031628023210591296603420752885977946497081482776789313765302572000254612679281116460379773754858864411979707072728850986806722623355935224971275841025690024860595374576912255998901915164276435534505938580482740852399812830835042683906413596077144286301463668611934080526693985759906839528572751281764994318052267121506098916031086601835843497257832554963610499618739548046199529064040306542404375253130144574999901487720115502599281356959380791505697940438484052543877237756203249242159268583160995828932882304352576452641666143093382272244184635048390821100674706133067079628187497338739956383828006621640102328559192397162270968497329320279039678544889389517111498572113647527709590265200334833484592497037666363334137836207208912597976371317623798303709505328964555977937584044338653710799960733240188626986632951367386017339366149563927239437586828918459570852332920835517730326807750117531522186617347474267467826447233379036113552715992052783834963454816068443914489655840610809075396700604978110608074612293252393867325499943636692270355385987800589096057532511223552951629177176883102129073730272225447683984228343762414794326004564417430187846463553118562983700524326970953022852660103135983620076338023013368591466959255245440454223122537263996783440071124243884278285383263283039153997827036827525756959652854748676118737213774306312829260470759290593266044752484694386094335713086876904866023780472233007583462369958354013985947062405371531748258981190651794984186835012385301321904329753003611651155370788980573235578508952803234945737311957287677393652100115109062058305681898315057813034855398869734116765952734521359908126367562130482092317838935140159096510802407489555836068818716712123991172355675784335621344734136900819361223993600116146304632309709793592109503843097872548936724598106718817996208373637904142035025361177964877243267849944176680296676592881670744095915572364124479374226108337265822089991318494292837717304867379371343797778876950432054167085803169767666046786644896748940453462837743502325291569584962432460494690756841408940880413032030519842792494334315664137600886137838382951058214343188607531791790446951403278277838087195018309820315889097154268340036916778765696320409580083495656275929333613901448955951091911935533934139095484355886599435210419022935844287521981506646225324485951204001024813829665730914603064736926758383154150582357782439860236229117002443740030388852498284339802065507625106411110369213556417132755745124722389070592950995970234727916018093009569545641494634041157987432522874862423630327986881094697739228287033462785664684412376449162292094343139441103408082947950452405747847633807831841050593545694269550580590280366320571046564235111859283441959021480637587071888161144921245268313622429100935158712445641164178625631653863468865507013864604845659882630305137546707047199350929165474191561667510345802543814618339346995198160546414986099443865232601971517958050161468314912586164023113974932513514379359959771343476092757154220010787234892079913588876263493921746958179101389167333204996388508553459005754713961954569610970600534886837457552814136246689815649991301746177400310844914003890539103018218237801617765351579997297881562880594363863057484094637335177012635748485595977274678467147695074501937501559351131473285090001269767735889898600964132121272894742501266760257531366773047491968306192698061658429139895522430569144280295033379273059493559058222240079463863538000221920519449085288814188921142669917374656108873515905687038980255837882895868252284050195034863268430150974953316054339193482866227080398795582942798442424929738278900886713036499954242784600518578906809519060480928398902811053395056995473472826243305724618140268102150667503464844620779403843251753457575317326220614644617717000778430092743254384449328567683286559409261170971110211483641229661947227849149607926347955661090731710938047473885427935134490034445035125869375747608017698135304761639749190944497444517890297602041660221124933715135176484432069656203968593456029375986472887796762097864568360035137372787874097513496119211773704987807408367863491883882736972249957198413173883137962630495006649857682802619857695362344515122101266231087218468192920005801162193961603500125368723076777946866857280744002792822355843999336769004814137891445567739848035897794763202437982315124777734735099175623759592201419140700695212673627256078961121721320349317765857563191322428111816105749795281126395036393503648681514270061318817468951923318963007022101084058214052998367056878050660252197700828627188801290335480509953398390511898166006712108074569310770085991473750189043327500291901926554933886809060934144772725061861241765406070431986025032821264141791250717809946094769770331191847568935454459185140007732723522586049879271251100808527468225448785680275884846783753720617385703291517813935547026625390503276694056726569527974092851358509955189616826949515538357654785742384085787479920284713509636855801732386683106763782217973748447642044584652722872606009166785943995338239470821258326807549783401979223667724750646174705139188743199093914454779269704289155050923542949248252175789951301462062611560979328600474254106579199663043083486993700985133560511829424926906559476183358920827973739405624007523235941286700582667292078825868554860561328030902489064972746493542657452038254940181912872317419450554982956101582533623629493827976887060252507871866747353005246102668140411978773971781066973755189019161150886564196292498510153554961666694692899606741639827053961449922878126166316474591893036985083086222035075461700714505686156371824995963120562698721861080347409715719657580257763476805126141008209980786502965669689615004216557504691072666453489047677310568018625472500013911736734284120524292233224491368992800350932020908306872293605641997176599374982022526460737893346302272229735865832824865923881914033207711565353208873302086815187690929091296449937582854321585360146100962901224301037656319116646102116130316778605648020128512904612548233880425077381743211158685761463415234098833772788666958561959798431867388111617637507026550847032410674105336130725468628014396065366189101239754516163260319559325584897748422258083087864298117167203669156633543367485036320849111541297408839581094264123193988242545298990626138341774806569288089489699827584368480905091324262176012150104697978189159094256066243972123896531258682673959871375466453753198067818947234743313771360455074767089328195556009882356362859928014594988861219190280304734011016346598175475957485693594765775551243380063846169016923567017828070375747513953950116733834592632169899882658146133335280043993601866163251071263394023880361917232420605057063514360212192670426659954810594852646665284093415679260273013601451947309908839486832946969515233156070021541972472569107395617349682887605474794495637263179864276852571532729067010181795001918380284615326554385330238075449433228064681629658240644811620906944169507943485821858514655283490735299340885675288181333656542309920488783829554130889750682344350648738038931355460998407309451915621048277698217675934328124122509289293411089992698523939727145758045695821662371087347527382856438817384386866774933303003169887963229716560814001863302766049929766532031434477206622544600649834286059356744479680039145330389560412330876435049176464432918679008467169986886234087764922472370917007381146011424879458795393976284104302323380842484091726613626122153106310586271460541299822801312548524648497617743379518384088043621656303438577724115956332718721059951797508689089056863797960282985671914734586285353965536764684498404890711155627810840212390555760896831506308195129308272156110672544563875351588219921569645510841277710650963946720709562197760140952854076276383588814638927976465137226869849810688643224074208605144504973587535262357284588553057579174057585765638869498138440046810633235346975147652183541433242975955773261403415259211415364201225832461263227789461460860909199361254721399773286265748372567108648055734744901207999866472641344700549019174132677906662773479271284330616068306359253349648227434150744833351120458797382145415601005466430403466796846906786613511086457298326962016126393103408418805575544017515656687463887945707119079736024168399044953346455292023675620797137187497872023982239114551943488653532638458609874228592820745000508667289884167479138102072751746376087694979513061852241316358119817850607824011572909308552777826749569143442827090885677004915963047429386406776469630211259167278994418298280709668543511592641839998215927586350526673026222527052472761369783371831768035733527811871121060354314221724743965151456467241623960093472894234802686539933459749436438346063557309818686471559883754834736117663030398282295314744007420398319677009569283058556262878079057065348752502377042519289322989863461467884593765460100642083648438924601555178306959319995823196253220210280574355837648313404680419309989713366807313829134795054824999800638243704978578690249473043608553051451558872045393429657388082361638063214942450289389723617356010542605026793975414978516654156657925029523297626801860812397217913006609859243339272151438621757430235435952546910644999658956539659542483129325667400408237389301945380190771397535349854701540904220719466077991239602889610853785351954658898570881733383701732365510001242619641260416296702408592248545086245312343284193389788075122616416384129424014010702731501947345206662738281615944668163360741606888924012316436230682174124208813795624222866837696338043324961644992245608599920107073009426564581801845289122559748616977094562034098694107199968587811766900546549125233194541807105773582923808319331560546291866845301892180161685790846624076396810517805516257668938993264860065517816335595855429633853091168358758558560969824362771372266584836400146495900895691322619397275421681829833433905360283246707351247403781694294685892249461780124122113526831102691647929208368868560752600883644323772152601403009406777910589492127470171710648172621435589556307389233996904886250324445640537279849869028242114100197015613342980495444754251035080292946728623779481902347831060117522483640189053916957164994546627328664320981855894926516565967729401938626545015012810547896203798155446981071422351174328508443045863708364979134329850494632683158596885420971609271322675596599921014835376882985625195574741994016718500840111961037468874795197068158230194274793292528971519342113771756408968919311470805438489152035242734862796937950506563855315955090749898105550717024301407374184620764420663961235045938016023908241368741840454805309273334213901525556374010951773424562623802207681628155897270700083792996565888523295476262881542111897288104942439849806179924577167377531365108918245634076185067960632385659689104136234787371590664505063489401648579692328410621749580736226537624386578260013674903127193946256159722717427870081821380443315085634091216278569530349522803965508505168685227890791323014473278592127411068561084285864254403195525567757958025298403109272431818463835492551455530119574814899014561611297650711837167519562566023033204966827740251203168867006218935255252941264539448176015247702350860136576332362741387417017823161254480913631953050015621260775769552261169879558662126607623996897324821352862614297576437055293713743757313380535521995645959180128076108999460181202496630532654052281157350112151167407153071760683770182342574939188723208669094624896877942061924978488007135981310540229627603873202001020005197591530716996805423860260742322987113472528582314883109480799725122007220217935616287139566960286375436164387204530478013913385095439973419113779390211078914413766254934378858660368157780168100650380060362899828956079740719588113304178056187810670185734819633836019013624039967291326944307992730340143066945519011922483541942364503569680115730154310989556858597219308393435011716846866296835111040598852986563431750386803989050134019718955882653875984787234530943374774305307812030411477368058406067318590028961747084669811726639879652855883654143143107301806541010306087552524217734777085741901068569805633327559268194122756735779491405239772187607892319822785595109125043547831244570321064194966992057461174272602005173076881782244830492760995768318592778918522764795828179711826695071121240560984134529438416820212512418908232184062475976648482877923825577216482831662496348923057523999701861819618672781887364014053368001107185701352864731412733279319678965605971626053386601232150482552643817583680523587140267543448343521574240017977223110259090085456840857076301765966678476768218955735306433161677128925195673991012696092491693676190411948351433685945876197482322747097866476396988630244133312927933270189220913214763088896469971268709641166133777569868107088782025986682266042015194212144829233988078745922751152967121305549394295459439336287510505690221056954933528833889106441937459416336606759761201374148435256986847665168857928951555754116901945980514414460807364342065109056298495763432734459656084046387332546524586591009361777980160513528372102801641040080709043322902213527094296795048194353978071212347919143903316571237798975849211254672142517134882017084564319566058487106811941503387804780845739832264315855750702078876332506251393910865669247798596160207436137132558188158088729947344138427896550897643773784403479150747042914469534435141927497893172615052724737571482147559537521416238825297884404478734690580125414706452251485854175997286401189496924766185721625329379273771493304496965647115835742744850995919118833248249952679206068863883064649454203045821023941804927369433381854317878485737435288228765690470148694501913375060823417216429404088408855122096817443353032245116304994176766910945939898089442280277713481100243684151273583164230203174623893049072208184371661936328204733559688814131871449834260268759244013397436093106754422098852343438154924652606917652040133151786272780277104072058686533386842473219432127382255851788089497792351397329092754266681050535738563473004891745849494185568749082782734645176412286515765208937256793597498034866622197281650521591884029527918685104697766258856321938122700953262004857859121447939776459234591670683595264426872051881266987572889301404875897734280019050246640199707102381372382609289130545504384768837659568627494635691719412347763756643864592695508880944294940409469239028653673356188216689900029976263306007953560312019841830484958926900258999735864911828655241074493706062490660315882510132299657166798793334534757813029064628731980685821467643358746987787606652133316665990203068206344034961879623311710799979779934623401583191143653323785084983947208444821612709154783417399049077643810749126268363697490482936816559428403400901166275193823252806872677170536446261847165166911534336113363749485447310400781470721702377919400948516494385155529293944275817388472289187680498783422315941607177466110954066429763362684632248554936823319291180447128036261741677858643504446258943205184871455854372786189041941104086640621321273866448584826013105384316730347517790673059579497792023074131624042162270325732096154017042115547126297795890062968729019185516396684787398551913678890444517365769801311582680696270397503146947762470608614472815810144399368667936722331742966351325639459424765571775276878602745302844769772700181967950432405504732350529885199677729841814069408287177969218957605650631087968108606369705385307655908283625769486129447598108005620852165656495358687370293481489337163991987726717762343107888298084178391980249108806436163438548864751759999007996928789838432368228868405355742304105587202443773245604660900993647734715166211516061896459851191555151086476949608545289464828393271210210221638132262501212445267885471635188535217196547028477739952417596361666546417285500158437812390264976748657779248571422480215045653359148694226100912018165568212761725269449840157222612170373377889647497210953299742704311157347677456519136061356937079959443139389493050047642840777510032531796079390905570080146625182105380748221321980412113041582433962390254694870306500244428876954091327661646109935706232485723043445401076348809241465677073642138505218943837594962784626497689472446006475920203195693876904833580134747365677932502947875715967614709789716430209772871380422946467374838612543842482333850400034494637092581349037938116247882604690391341106238828400397348289162337158301587322426476380144657719796605453425077331675426872422776197682521954924026301340609167653035470680503272487242848046041136694425065281611574050234145918691422042548253102657878977768577672666416691820996961878005801347822349666333675171307981629410392831527584833328016431078779147741665721888020384232246952910474577550776448935757069556382261555718352472664706456568706510960042184640903755862585653565421469794631331148249452907806754692580108165553852151544633012937752959335328457144172345140302448286802067787899032148151611133443869765207463906540511423401131385930302926910695470926672028320912554342902934470846921954203241588735488732345404928816644174312499419444405933259919274100107030171736561025104489787261690188933453760480297194311616315678723268153764962209115993078556616462234637097003542727153063204353199113238803340969135259880309934460959187541964789988012212893974909004936019450393895177678846395466692268584820736959753087265354990919512471430022790078500825677391562010436842070233064372261525290762749133832957394324197058182330567265924720796281668556620891357996074861063409663500945154543434074664449056486074583075186133937615388718082061379314376941160987650043375580971580808847525400124210215391337792893099495160150205770502482071365902126352456823122718772328265966172666748553596525985082189133636754280396599088380625875788935517888891112080626639008531577779854231511536139823293862307172313603798622227363348517146256773773608247103180759520648746158845813852745381378758011625814823699924119003261898335405544663439944923378885633043151845562223148878664960379382461663928905185253281109956482907587933707967907074099173672359693067234059221282592445693421499335747014651873593806359826450533418582426210138667436500100471481870651753049379116563377917658351989889634407025270396273241105119733247412387602194602140992236205516335860620493133656694773147559580301604996203466992070182304135076099991465538963682019144775675922094700944244910036436099649371657563666509784935605518026163701918573421640071652156079787835747467594979929528037967874497493135007505268761878510299232481912716468181860769855483274561907519810197175142236627976791944365919758738104085225552834869620217329352671647643005696962099931919078042847587943665702836403533222148669664773960403528687477610402585950972255185162079723613266551788139925642615374581481066720391977981612681091346084515970176301657327718229683527303110989373337446407781797878035279069016397291659862101867981857857101550002632811113264549307797167070460698394518479982745071614297692499402246870238166145472115911107873642521597054592176450170900113761006796617995535511762415203635239810127640794922371599799102179518246591531572692530804004588537261216823800054973585587894478903822821783688748409312906307646886188826061424735621295484820482651631184156887346883552443873587904711328836513494043040956634824028369150975243232730984241899469133221184877883186974439323452043041184587338346448310669986411398320584349101871889832128443513070936734063070668323918766164496013240472291421236698807591432690123721515598210916420607326535332802203602805715156887201546229766775691942937827094880901188758570818794130414677880521558792305212572148035293765101348831250909162427301327713663333072029129067995038528222658926479075782110704112130326461351430806192022034133446176409631528645581905859175875631072092080517151233039204331425004173193122352195372206842553486466368229143188277206652808253837870433454652518751766566221937055112646299055302405705338888589797585758969213531046523871432304179450604564332401786126578276988109409374112369975968291296139395259927665718683393845935115320250349770129695920416421582055072884137875928470379000913852938393472085344747169265325325434083240359275730791724784248033378753340670239346955904719128935791712338645320862548866077923163770049851476574824448241626703142503440605417126585982513587048563725127051675966837160818030528267254073507571810111323074402925398958732592892346101950959048557938768046611757140160162085353839725899019912184183064067202493820312020444870119044197111832352557663510419064271256771144375845389149773199029127583936103108291419312999192673889953190769627089184982196311716626946334835555350900199673606581865822255451095317959940312640495591287134405473803899196520712548134901015705975322177914348430079474315475310150392171141168867039918031032375850943322560625165959213223939372742985669843236151030548727908046872924282464429776964471215625740464768512451601830856986974078997749638422883571013353106480789007110222878928506083425263907858074162843514909354399725315745963961104165705453152825692680810953827118095822770795007710047086586560823732067770874928180786687132685488933253691013758192203756988889293935667165711980399353676822353379820239949119197846406497571039454681134738759076264382843639993328596577140624965168146149246442965477330247261397398858151978242317334088084701998806311289818544603525530031271991953615966082257038294057885609236728199093696620177636232910115483865086235985946553404403222644298505713806868728726999496469922389952165122643176140712010951465838810040656677345241757261551348276925688713320955774452550433812647489872620914606825522212703343502717634639525013515511127878141328650519035262854690190985949904794403694291335827784352136429675267264465211422165949027108837461238740577343895139167971919257802072021215336490843094500408648999425155642002909841360766879064318741413752758266483490008210390501604569729844472742263344743557170371947005586731241572535642567429440648306681258564738771925284746904924668457479022755803384326945432753534203919635857419277109159196680316520242028480646394374447509465921897420726366408283021829772090314924661618437648216338002458648037394710702166477728369254378096122836101820642837295459231087292938882839576181188108328515491274314968599910911335326884372575240401754298867359563886007470992555892648935170279937995659683757726809017081530533907276564651074731808535055292525620587803817769600150739783105907733759763098032310424841299706082296706083120986831880135335660264094850477038375110800746399845569507252545035379265888621020290706744582611787312982109057217692742089641288298249394347410179803797197031143875514404720361156689710983261801934586281682514334100892653395427847566139337543976777186713106106181692714806947357757520085166131975011012402948255608786085147927485385284655154042910495830595516981851693509988507561249777406225383793940087331461604697053703354293192494496744408240023677677696900277217685132704869545028064732086982330714964696728868294359658518175275348187189400822362258736188484204746335230206968409034246834040923398308391386080383010221789551035171201636301792054678268442618298371074962345719397171536787578938612908233521703481138780385894843988608029151918395151405373891167392523442660842129831937254799646179842750491645677414763088457363174774735866500141006621466134446717309693689356166883995393573822651777148591629594669487055198885274102557997535280412537196087217947004777875330694113379655066681447849087670201442970703659651097549937777783898028087763045045148815662476602954782695435057337017330455236616743828253734485567881347321297992769412657052872240259685547956846457180716847194460177861528280914448111584333576646992765506329493646106539568318106030413067515269836589744418187932022727213921042037733683053211926196212009627773933217556020983276663797343019509057308358863117950655299995412827180083361409921296933991630147586426430247088070649366748548481412362745588661705486580792328723850482829432252462768499355137267852555438578347784905935668584075743554964869252234305561486459045512485910204504972998705951416045483950901230439517693917048623754364239359640907967399597476147895818649294698661752447577992211176543540006563768267609974966128107916868224461473148289253735800763300202737818737598200841356989006435060284556046279804300104390360449173548909337096101540634550427234496688023369278063187491697822999366307649839908323111095405075312705977725181586621710981640846264707372978828655202360797996256559259134164906334674884919171419425539734024848907057433197663421263456843164243511052552511686923320868598016050196545205045635230045296390637549173883253111587942575266391339252289576174910656369894408872322393005226508524042226559455404269090260483565069332386643158072639063916727995883557208529683107996456468560059388998358605499512816607626498506141661581375956790585927256039075358153345247810788668292257729958374829864548783579350555176244283814542713064625703300282984668464916296547599888389409515443273963325889193981136748040063813018707236321653889880461238804778260171880629579886895047836659367296601550154209153193910355209130729510443047477392927368552477034387748815118190277323678888065491631587923436886473969500943518555592897193987216702460644469703306519429290634172686523329611095426051916032872187176068008614734829833362422602855341896189446985809948757891058552392304126863250072943629964258012096900033291122690767069472227424734774008931203179617946742819456786205157917148537785903956923988846063990045476108663083096762818602179323289708541692836036918707632164064732059831958322771979480561628766926545710335491158402103334264849615000161798097255447468293358263618615713384763236454820255976891349077550750180222577522701316658194696200856820273782567209008885725196541602475374045944457341047682308927415482069492636244865902319977253117160476552403681813166424926869017067406187325368533374871266257060812086848563661893095853174884835234584943950328110849438763968001164788896047373024087795258982007369714768198455708249016758831334480987615871013596298710073948799083555124883482020355038492307798091575781060690922441345943055668055047422146870664928302565001783976817342727319994288216566043578437525775151219594645559456270596347252684024794758997657592297467683583495079766640354594431980956075737135753080126553977521998903827793311814195140599173185221581136557366624378655708515172151974667881321842467070792039308315060010577981808892187193586430243170810380743461475813657259792663261863651566943554365987496571018602222842899555876915955559619131602793164631870953764698094239098219824069583025681625532264146054085343409282968961890860986046398455729492054994465862225916900077107006549301840382048530160417730079244926740484993897518566592378803664162479761060003125765682012530041787381052232548091768122062976490824882297973341599159438010991455313550090460223105131238071799208533088241672209110061681753392598065506179439148847918877939487102009226855865882584990793467702610308942028282142603231346876698650694620269720942404633037173743566235907574265634280777107182099200195272309259770965050736927115014308737598051918275249215353928956691638636065447210478205282257504424133007896154566904180588873385271794267729758018395523043403886808983422470530819810089112251514309939032602030790279610559311782202784822397791717466374302742967457998252932607508112072412923910401915302755400860326039560002064817622807263112111902492327616177950313292006142161984294894893911258700853343061031525618925594258461855615894917238407655665911706724336151781866582854662707676014308368408744954467119552952012066415126810228972111183151544038394389827897928551511972301229344370905410347469034819054141496699976010453648849499950335128663859323256994333434219672600523404686487060213292687472967553924870697968876726398372122142358635639649590804446952513734552145993357490419544334393260558738739600643181382263375287817311072501616790532554028198925097328835635876578332499975332943615578484822409097990599346400780285671667589652425345415122459854180599771467206129304086399406218947602533454706875894717618120194263204397874934795627336927747384949016012885614804523540476362005484782354023060163837293979759436873960138895571452416211953711389025547526507545949636038865274219969141191972536241335665646261245158660358567312527433085203608387580785262540828033514340421435863166715376491269264752954586806882722541289831391879118058352731112193131873119467440553427921057514972615176255703492309303336568123908893930703645269025557339976453662644109810450748938122628706363879529928828995028997243218165577260093337064223884595061227287081532797307155162864201101395687735510877180598955490585666497274043454276511315606361204586681643945065960752575248777020610758344548874196991516466146085512261214884111037984440864419255242159761983346503721879997631834235805544908705382911979458778770304209127647392700890985142378070785764649412858384281572893745047541170479582177311139254188454755862605295765751084069922946756377948475322721374393124545501747294426476690857725858715501141160271374600958654325205890231144467832311185538250212284571717005452256684428880299559979259552338845759678971050213279446168085717477698958227541836600768092348431896328448885237317037984102182846185072071168741720012662446939316747194256621165001096476898909856345826959853576336039389886542076330012239254364959361163390682669029356354059865312536722391941860347374886903378776515322267578505175239299635659750684737535762029913700274379658065205213431569479719245992753632851684358933124624162439782220044423559951324509694004891402770400785035521228755083834430059538714909630719315924648955308512819367384967069707238267263989059426335294225712384574287270547274917772238774519311524685980813285531407323045112619989970657787351066394062281738693854624019100356950833376815945059247864136513797723593163547829984424346310829206452032001903394816936305100154781030899551749365114433516898221752900406843244494959454687179370190314797174648465868360472070030679260838388026871778547064558232351678961645753596476792413187358505641810132927919292731606192134010768707601731618867793455674034967768039347528149321658299806262505633552375086337242184165056712491126716743342202809676098002956123219506618332973515304822290321751532724172530200921476524363356759954038971094898665523793556513533717223102687545437306887833846148743594921870037854008913184984974884971038059721380777272173827930791573244020290163502017140751251217674977060099186478235370504994646004725771832826128404158470023714161481277794655074975556538363883946936053732335480844142714650446653610661716993165191979513029149800999233001064032518154249924220343379806296569255453865006034272069653405051442623560565906012938579259218308926695006517528721587376792450403392719444198553889971971468577658181313271159945674180669529838574148347210438571890487782467296086782838117417975411947637107939587436211834187845616192890498673539478366088478064313302242949190434761480249914034377860588806836523412423004567722369960551821027920802630822345789456478416801979541444774471853722485071437092952428441775857739955195802136309097198588139206688441369103939645639607484936856900676599498500342437651424189835327347640899078508100862932665271935610982099738067249008810449662636037388357954907454695093082876111283772214751701955232063724971161150463236145472341557015536676817504156781800166000432120854758113299694209331310661315032561875231525735049879295762583199361608554373320762833186615965739503618930172321939718145675165514796247948133756726520005689068865286520446644354647515218115574481455014428711164304766644471781237819829449285957224171393926081999373003968944516208475599160843425842242175636800730876345505627699075358506834419677758409785240120058119376183238150765817756111156879404762797567438955264183405071012673118867650764786597843700651044818814369546995063865564218441463867340416287673107745955761648320182436977043203051150642567239570170774701281597976924465336475243719864063253562472716129144561879556401753233188593780066213982710794428597812102271477118334122859869378907507091808553436601531820638357605338145629117261494217214906386810853674222542303024682600818411938646691914350336618929852151853417092085516677933879306160992605494350630332353391430826907680204503668650470792313948712484036582472584852062068555832019943097561696819868866049017708682659009824944084848276539003758827559485894539300695167191999386772203015167133359547986962369541951687125705756618045311060224476558589015400636798552299507918510291098161614628597218068629698830279545364522958696967446572740952710563684010328770738823025850386331017045076986539053400025559027500593542254235512546282765701158769660484526206238531887897219401933425641551643066022513159290873299931859308715742506287709456800247433972071469433551349963026690115511414113711425824308076542882476676577151858259861570749972392439773440500581220760283216957661707060186841537411032422186957005958524337109753970665767407580462406118590749475912775531813576296717502541847073573794228057286491533438683113966202930225556212801484026987221797730889780743687862637946192179264902951479218213295895378527243528050489883165531168645569863743089107384185377086862935504462183077689263276223454165856742286291248795558780617047401581547238508134480684012443684134647128681049223266768669250864729149563759998192782298304775244966585498260035014996098421662718326729589452259864040436770984182022312221979859822429195362179656062351449148259267583308712694760748893962710287742228675016514363430249941560584618407551563089377324054166542016195636083301631880642108819407720532048215853235135650515561030278626707623666996880258252675313765588773815007920695243098665260840329286801861842186385755042131353685391887342028082058899408837150261743384041395986787080420288638822435788133232887523270138785804300649575631525247176618391712069083561990372826677028319016153739213623197713627990868564500595223150595710791786785482108649942720244561545442804964509366069666031082770332255987633787370282913016257131653911065930435332866681169203868223375370185627838506731823670591961043653693404434083515837211264254666571478324648891066874554612671911312707442622365357445647120601591797143982486728457749719362433984875076248625188751278721723216338285191527696423432582962167496473525501308914417392356376265070466677229458513823181948349213702895289737602804958140352103690336544959204378897519170224404132113820464559275934560840288726850672384241265310346908429769219232528197699765186084243795609751062551599049582844766255061389463428516745610143312462728519563246225152445486858723469320279674543034210779111760499088308669611373287384541456079168936897722482177870503844373183193186536149125731204570229665474007798511251235720274882060433058858837670673346698520971805121099353611334370202221388826971798888308468791374253717352214619945313212150859927494505556077784715030031754367148120264230646389644506219116768214882371415248629365841241166000712271884110232685459980437242144292826625150026040288503580897339051114991547068365071029906833487978218025227359735903507579231954740362488372126944853286621287267056017744288048400633507049074153917898340885666327354786904333847842967309061327518732783039490322679087037847166833696466343806404509432337640706330978468887437510359086275225560352488314919743210398738351043018889552469847199860862808467950067064042347217317302971325483146086134607672741164890594817982684048231494819309509701833816483211405571293838097370198580194820292928622234420940257897816276948365437273776988551280847168362451147404790094576662305893803052328045901549970408089935298501757499147587837998575368795426190264821428448984854917722158645748264062906672196378793513349160388718178744266194526766950556043960325500008246456319674750181422200200371367100802190069155292658832864495871325592134883465632964215017001539822923594515281190131785889820872519109572426749886762413841816750333698848446298859229133430619751084198190767315082806490864044369046210351573267142435666929124467822815948175893417778049426355628236235728185658911289094715305104235885257682710984090454436618974984346516132164057453607711687519215140431074951284087798708980734408260610544780116656091522587136457376666154858001284595796117597801658343730540079300199673707113259517185007851343095004703456769024827212808772228307823543511077081796429573586776700796501410563129689088446470642520569773240674653316709222662514296052696336135095110183020685400145219966764716164504778467152550106226672123649704970040423111631468523749187437036108896107933851970089524839616265842979459545101209212197508364207408609954716806109268235147684858828165300224693411301340153937744520745496159361899625406243748889310268248577426305413245133483408721239931752299266022003055149240093968518379758761694765817948173779261725452685132994397495276227661139962404473569565428307838775486458004312305151858412635941918633481200998717076446869005808367445954695537595834896926356845868472433987617510249394373380113297182224475920797141052521725911545303668189496125352148873329483703697342796543915096646269811270765099457948591789193095147047038626286442714844475196102947664855359468622771938864055794326269290662538613371874042027307569268851095462860634161460404379051291657753042730476364956486161404006498885319007877840284184354802449408685658746636167727227844261962450533328336426453859051601311472135748964108814243749228566689525215763446401446896703865027669945274167568223905044634360895790039192501844567293864764631283180271585465358296495486140196582836880072191144263209611898414033790119103992708084009855311183259049759172486035312505674768194278596664128016713440839571939790855348109737039656254824201817797255624532983065234403977422160706713372216691266768820706514527151802910449826751560875192278078248841694718190998573067109668118011277922247393353821131950843154539482204682995421578613773720420703911530884470540041032468517033799183587216619248070919615897958711338649672952578347874925361426589776821533532698969248161821974702188783611512558589372176639108949138885057894306732073706936453786405489723459847653283968311437508183794079047245710155203268824211980023530843167269747737106868392446085261014708688273118533723111517487611512745096858606908878084560897971536018517866849876520440819518931529029868375284847935049367634036856191981280920333196024272197415157067276072891638546024389321281428699656741604104635250701886846432224687261494198502664635621958802816650418458945775388941126785988536984171593470820741981539892158955007742759580945708131166765531323582784542635084525420222629306007137383755041411639586203068269072144907038402283838594220279070208571949693948323322991458640042927232343570891163788878982516884972406190827162816715696246887614453839833717923081713824234968541868358953004249151659079458903182585392484506135236921335355710814621134961069615624866863625497510911390918653459817638196839578462783980023688878398456615905170324048020498271064684127517537298058944373965837063303882939465150525457302823793730554317509337387816117990145696508127138077707177190465556637023100050863729454429629302473077978652421840052071791926312105528868686888210799043425898061352781893026403536277400714033103147204040238040486027515491875535662540489572868675352104367092215424475934356144527313171667933542865966973176620339804404260827116020702743580976410393519252033497522203477517337897930406642411064360978611529294728190694733515588412975188916623016879389818808713055765034307273354420858907620788632960851109366095327850929686233607705456940883255721193656461134655859002310529751402749928032359165461015472065918465995221648590502036816891606318847525485720251290628288451079321550989757519509460193606256098279885259093606599069209523615997411133917098843262659996596213363308950436905609414544824820829584178689540064766814177709368849006634850345047889055164081479154459704117013126801919489510978276282604893221017589185098339095845460314391665861314521264545935821395337855112120215007021733632003967528051799447039803320535799493221744413217206697621908486512810126909349453794867991393606676152816359516718829003638912360983805617422319467651004308165856135673798641535286862173313887496307129319116622294486002459089055834074415926900630607381038066345336279151781475152124200517480076236283895645255137916892023203403729171698358318166980404329434225084756903534088005480915120430973030972507026741926402261475348728828478745733670930113594845682449192598039118728644218984231144554302253556471031558267991805678828599073115807051092061926486060325117422154402912074718252894135759949333327229668158763393721990437884389338525854766781435915867904318795565887513789122106892283995090781766405386057325257168776869020999776091501219463945662496787266591142139625768489195679244118225168650353118672441254100948263608286639036385641512922229465662013183566208451146295459524435887516723212510419109113877885213546810313133100254407955872992862241518444328603211091499689021455567962639124950128812371427251504375607986406707780281275825687429223802589585211764494476686146166965471767138949690715548069230911897548873382346502138389608565298696954656808618372459401668001399400558005640571337743905894810135129924049442749848375183750747129241688773202424953490723539926199370437328245933954364078587901029544148001940037723548241817142997050914233572677263433886899403856001856522362370732812060037357825674268775273107502781914556499476252801724654956351009864489453678488582366669464227074425433384128654716077259583273193528061715287240299084169904708384121257415660707176877292628514370857867880031052661851453578376543715506611766215860982271064348264588748986839723052122107647222880407099229768744341722314441010148880595346175476147366876801316602991906464352083461517794111449794094106411709437818814240191886167450995586851797205126306329289442302547953056677507510817228138136044482479633602018050970064385955192415247111359482703604245163211568889259907608437986270611552871444244801396698212491995048863167422417474733171499127119556374325687945188909826159130186517526682960669440681471066195439670898246961954857913392317902396635219649739223134706648158085628244443466496670095392095436659927288442737795510198207518503129557496899206900536245999029144516266872148358336417578926897627747827534305181026582622383319979088924898312977601062581877264321423956044050270977794574805643752930283150620648991764513656385467594061521197804035998362821853546359189413848350821856982141982486766047792921363857219965119144711642622803794242294103510107878067219783953894332670017989332226052422513065318629129986900617413541123983447569708914088743518725376295122773559019512980445163602684962260822612195372840942934962894549681862356944092078003713999266840710338438432736228466933360411269645769007737248319883457664486653435341392876031885148359250779962422295026668570359248661238068223122736541263795384584498503172037088055803654096933863624486659773116826945352493889721686963297410314109107431339328370694644539670774566381469654106246981861792591772788760050302888868442857040796830683380318082412261261593748629257828365989090045024801984191605939728643115911766034556751399513520881273084379158668194863532948328362569539598881833390920076195937885438894976065470907593769582732350837844422837565262775677550536904407744441020873791145988615786534052732860146040386620199465995010653427946250091065480882176790662425890014770345392956427128099237565368138617367704970781409721486478225658672119292401690506326845252982616038980372714728949567721603401560292978453891552563617526582111050801248644223458295346040407723850264707577630911584355942749324192906799598249988487921906259979520517539271373362115285886269194134351942236204722588016068183051408404344926194737537867406004526841017915630001251158300534306731071319464106723281653383961968222901621867669404942211826407168920309992979723194610821179508438725363883202613603629982646593870097198189633092444071411406629168075994740833741166959794455819358476733850493703007198959427685682175208313321479213237933177900214789740011845484855856359723214192039543037553544987997121274677819371911016081068368883863409058706271656860347994595179447672431129023219977593235034169746548429164906499212351710484360467026650399437632221069008923945541786850243467390264895108480901101863516167970097850629859415247748064431468883299623044741779940047948678493480353633069541881548463917672563100734670771468568394520654094385127723886910941289150657283067890020865817075257969333316817009155415568967773788692208959132393215683331598000705685642896338982749428084046977842481511362225526933194109105556066310710874824644702389850219910949128573942581800750688409492918414895482125636716788892378332135844045120410815073671911108957031366752735516681830880626317429234636332456847769095304151964154060424525577382693439670053557141505814375274337035427512855148803507137546900814910288080183360022470965722904837499463243186803672807689977194005988823656836248534406471858593296390289482749868499513308518075096648537518604070462749592903836614715159872054024607886192506383118109964343212519793499818238409794874127997880220220436633327251342490932956607884494197511761176360838232828217753108140005070587231008121467237766593051142013783807493202444337988722926102642201878673265726987596038206598526917865013556258601284877534168353633437938100885269428785852354303407922579015317032611032502215409512282457268344975800846944155092285336410900756540231277733771220643472053859855825490070397458716690915580873607708005071182970139750232176546392834891356425508395682667666727534881714033713020812299975807862043137793833398123786039839740142727435297803852338165094772407265499252212697873440608376713709502999403471464649401639764826254548621090801687587080000630049984369246939915052842796762580487984674181524788268056207659670966157627619186585541448203771278982044166967506203670230017188714710982322663002503020318617394286474353387815472635414671270414198045704763173610773224726158091531707846821830874113435136461351009248510171689401471127369557392601463871570123381511455487392648255255080447717231264271563314792714394959707863126222880193096686768449227035689877699643712005245168419629936230613759793236767762193236961571994670724234069608213049989672128545483079947170646048870007911223586636071417904470052437929156915207313144183618883305872556673508036030302009427427074267055147538535113095368524256267047183213442575132100715956280649490824600962595018742704961581360896077662207141594573116185569487276111226534855634566205172603190995057952738068808971784268870306316698951568200352263831409654253711648202814932147809457844135478621854063062648248430948629881227060909652659763653740916329045704823847589791386649455485239657566284236057042465066658144779587636724568853996061682773285419661026508034397285229092576774919396056862906160716578255488165623704281587698631041212361374618316250993573787469082694509416427758105965414786910032002295787529445610698701245190012050273375653034945524803600619880288489386137820148363731413312380463231057558490109553800739405660446801910714981187742733922536008489911598846624664233347165435168093374051953263110010715090411919537694078682379311138809286446542235248614620430138665204457923454764975040509858756270869943746837568477288293734697290532944821382016348688731183524223724978356942620304648122568615298729972185648276899662626261889876886862708474493979548538930207189953928743197834866683162091980270047238475114721608167672615831554516641291806540943025643237087681547136655115549075596731256936959449817473419512360178006800631947706739152793619692009834620728018902065557505348687076598710895714180303133976043046826878527557839298932882405077442237086680895783383115031673088369198581673992351860667982891621371724822800317588585108478679596228273338812990154705850780002484744586399222297044142735653887101552649294469123620635604801207605290081794432889965943362429811035238519726484334090864754674179842999937283331174468899135023660866232988516015658547944344214708335379834680328333845505106996947310444383152553807879681173919494830736872305645566484239549768634213190428791808693261798369910966029573155118644394945473109369472103268696559390032599115110759249719254691923613678338981653123811336239441203082272774220367724418397678683679973951197771446205356908135545237694424245195378818497288442973860375713783849046192806793471431068035936019365735320946254408051625258305797343308786631030277883431075523045608901943411988925716750392629798988951134133180176214857896103302642523027536849440675671399914224847922014055154835581115304927850036265667459040744031634472493664528880442799733236608142454751683394117182554399035640379120380575047757967843529515730789432697594001708501270967197385166432900662607858482069529039894607840342431128797252078278210949696229486727941655888180169148923092172391231338332266367613266755477399210166993314105405899604139016640539998212940334395414862773530707445417217764566405744098897976950110452397350979109799405826033113402473860472625413100155234164991994846532776552760774084602385647868970671239165467992751986925619274791035785647757473096777133882788129568485629009172290732477119511590982723418738109974884807498617126888436606092017800287114276207445008554982413577656089145064211026181162932224809998758518831449008426683555146066827185682327310760511608010847837124584405502367158369648805312887727943163776657844959787732019912350302090578803062620697061021753546604847575043326655989773712895894810509122409535756331655137729329921480045779165951053792101329873340367716526435379969192870462269408738657537282762755350671239498961697429333193582723616157122796151964885820750401368523213833841456251803165064878296775645969554011076826726236445343423765656052974120011030128621366780625785130111715332566597601068755997076763465750816416488507569328478864005262890365544230809540783931406262856692360366701550808208788492455043449372855670968012148967234992859915779631373109372164205199158806468712875930932135895247299168915838730473262730446163965956444000367937110499465429692596262324356483966373824379145012745801935816761382861126926772681883570143787743079992317750324639754186788417303742379882136286946362854138063057169345765759233016707870216506132689411882487775627946805543007573930550812149658285340951927796431137901054192292176357929135420318197529267438867151431097795415555276659979524160576736598312456565977176038584741294524728911922505751646541428669003557149900284609441404632814404615231050441396811267499293250401197827645486490924729861146026519897059341368629521283854776933823666138459031960391359928472125729233133493968797869603519416784895062661881247754243117684390077975946866070798674966648395644763076891998711227240673491462973820685355026277164401332243158156507915396795357965915134246354916884331207736565725236618944974130156268647623930536417282073820587001351399973282249877645626382591945806119112035809154230666890396552989275131545451850611597389305960339149377393615914470121436558891060760645561316398079136951686356296157864119514020228601064217410731102569289637231987771436264239538772327889751492724595127309849527787609182546048779857177142345745679465688461034914176001035315539688024279989061358092464615162438486108703609545500468169358635633401992978803775372330610249994379134450101890180845561377349083305473792312992118999206780592095759525191300112785906289724471140843769591589253098785218434319068069110454850707362725703860896233417682675902162103605745553263038954996113865796155824364928578396672627552768961427250209788314693450818636088000560950224209135656373288521608924947645322393801276192462889897503575271308195850978940647794210820798207571551127300009740572024975572545768417501878193241399156675322975101435265600813316445039344539897368898248011038616700711352023057869110701405859558907025027377408540088643665733483709858529449643173947180803008646151496460770544893734471605471779787420069378857577139253104833242265918296471891899996526858981119403536912274326099197037455257163502182387527371962851945543899281104524216955185372159030569713592503028867566701710353658520843374504731332706819680588052144996396597130982256535459447656023419211624074760234927383698795975961310875802646698430866509255515434146445576529904297999450782446169922257247951016909598627465464438683933327757937919452573478096698667882413682043919149283340598121918891148512178940093241692361701407037071111944844950869904647039657338646501383257342369198832783960537068234885516688576620762104741769240824943874550473546309618572064455917075936974041476212911419160851091880500445679108610310463751295017433085705404245761571699168146018881388560365000606523978348755789812075468136424992198375559766061393968359500262834869967805089944708852898941555120336263822531248646077469392801776942446278257333855042280338826613694974960374011853945690158270466668874054036239898887076086301404581140485774948043515018674581531676592868159671917854801932136558318551606002010552208408282490033315240126190259847949404611784872129200427272206787026158545225134736493850048265875940528585839802281055510584853425547530421605321113137266945991065607439599740629018013188908063388194462256356987901379843024665599028460665826840232703094582081386185682281097257499449634939244653247685357365910525958967007721394459900207644828872711546653353986116957292651296398677465138734237961867400810000721357876989746581503540730988449455696398975946245308891388036817585448016618049342081641055130806342502082117739906205822101529708152600004283397753188761233745605788912068732526162801877050092480125454207720690130756239052813617734752514005243817016912822730254525832765088064545100355254829916581936928895278040919316159642548903144362032885852008942539678864706188910004538752931841909199398051980203235256995851947312579368291460093801956319026077862225408400813823830825297350793205221065487293936059375219673901506836126490154356543325055915908176043752131095817880787167803839060871733383973248061105431706145100364566259084737240936479601620051778070076261521234694942443566425426469658723380271700732892749459274673678030676925349586101683922800541650100598386722238260528301959900661197955271326988254564389019101939539812481170200299961193792292154721685935830376529529646729794803570628870374718910561507434702217706538184632888388543779390073327794077752978257305463166979135741619315024327625364469738990116053453136994459722021840359524780608446932676235551995143787807600806998936768329579680607507848557965811296988898725307507422248042645389634706031576962050518576413693121470623657405872822343444936113740459904575518611490038308645391058157440660018565075510921160294015578759754659690182813215915750268944594866122540976740112557440891020188935625651352215583992556573396090968607136577000719450919473074805842027740665382931657115468166823569413608931120309554445189018144441930129895966859809153919168170640647269042838331844075793781341599656724124782490279992578422328998720265081048627066727238080017151884775853284031065883300298612085388544698880125747722653772305752080817151258752119217577065091852375023190284218500598717194126105130137207018712207791352950395748924941346379824077086801923360685450148949922354099551360555546428468798203205419281404364813645401858767460885123598195685626611954940843699246208309737200327292510068330581634351525296644462899991158212030646481827017193095238115947945248500174894531145393006081907086451727008446945095306624446223035223244407784665805945581457611993440328670627611248341540684276230198895849196587958535814752085514730210638035911495367805519328298162815386360369037158609436031480765751859027570827595427557569390953668264488764752905022142790106978267025719571325747834583206260816536131465513705941320235471418336073061182644556076234888080631608455070609931841575390001925531249738426765429241410542615572681485275356214431995879520693846239972488280930248070992872948354342160351122208508563932779195762794984565592877185344960025202496587313961041711493787802385383702288179680411744334348106323366436454122783962310348112033531514776705493635997001484355872633585937436650520641298302672501913625770140572733461637545801210004861840577968969810286360933470700600987679891296478795460006038651943698288911310370716412161541057785226202423947416581306416106688564852769397496268027853105148270390431090546627592939901031491780774611251687243024612140421472082429069370336947564396400483441558111563311086545184660530267471025335023789091688044848701500707841808827978213385002951464676530530909696332554582297163512083985363347453489989930279220875921718482087344259733889863305049274021726444753425195921921788139620767157987023036592575575854257186706060057746221815646774520011799559054316553251771999599863356202746541759274357252506363532164986102134494984967794966625810472438654393097339915277126884440269351844249952932925235978810899926660826019877845673383313605377676336385371113282177737499932334239287687637623599152251338943124693308281766051761396589105332351239579673064219551593029625255059578374628993862372833849246751395566710171396732013170164466454637265269530827269555554120692842172760259956762392410087601490451846037501436347196085291312632524623178212456611702658706984796426203117868591335233081878707001887490081678596160555181964383755722477397770130226803174189935993861095284910206312391256140403246546497004289729876827335331881643538864062140324077389589351443505836221089242092053774340168512125585162778264125879911994967055651629064805490655276365753477753659430963256501833731177084745140770581976288507171151779046813883502681245028890879091183527514966864715002112220256907648500988974347252340027340375561131820435277579495293371233090074121660030191017811843456355221192129814372140597490680145825892811416033471195603268322477888779097475140568443682598635426741784760542966511591442155404615606284055890302951983299768751593519567906725507070446290309411543927813231931554774432099605450929372842273599029414048826851859773750714930326623711535380327799904621643719647304899307118688748318827423781639004652305449971719686565345484320077016217046974152552444657365958550516770338036638306641962371849399415718152656850830886305576402832449290126413216776474674835466226324332544591632693189810133132894765546274977184746103884189272775505803129362409204163653454093059067634371973733350541831989670522752099891038972746619477377278625047359006628682529677492950240743013293356262469256445929772889663149674004646845809201332387360037471187836288528997425665299113062696017133408396494527027432352512986790978723234588368644269303697784757575508848412331379541047921447538324477763918701518966618796845637089050237622016945857738115242718627556364366099099385627467384186734890849828545910175716162944770641175028954792379782473682969295738597439455730266122445323572110476958060219205728426678095086089765520361583364846117314739479687823997842082856911391903899842583826708376213904894099317156623554257330520574728433414949587585450951855759528161932806438778595640428190835130477921910252954046160243657508515547959932049915603215473430911696346780830055953544367280881971350800632703738371985500654363919268803803048338137898819950289445584738185055733572883033721989610732230641308967357518626759339708138350347102780078425886488792473601384642615458355844899422559200970532821840810545285173746053996483344109265674010064500703305135647162301072816071011247405215421624447461622859965688746419534494743829500354949903748012377651003010048402154488924570280003393801112853021087115547503124183582112982369688384070946667204052796391006117261636767806002753420340831809734530724871062059189384934985841717609887954209057246430007722325541981282895479406143115834961401116282217310605933506211383173984026313565325428079884664170292421579491541238923780248770246896340673572061282410783317511660972972882294644955318130728039221571104763559388371268486286274009608286622614951778723406631886725171717712300565958328138414434610573568608309013359754649416542217887375805557939020213144918700081950871363588275991961588573317236459484815595646837726481992073512414384129123804933688489710563687011603245289988567545402601601726145119307202850937879982218784113623597305092147634084076090676872849156421784078054089735479960606008525067202179824767859220826941828507590680407013193233044258853422293241493650125129840813232062367901550320623283382424979425501267783684269547652157869259254949202125199004267897471257944296684272328457843138768847921409797145518498851038838517957078455417901298396663313957259259049024666557982018523368383943770800993499522632240515287745208723832661724026181840735620952744532758216511165412332663533093734919398132183680378097224031405505148827678658805725885658362471932869807430736151365634009309040344882617068278621463360051526297948821090538590347601373211729490788473064431417425953867934778281576814007138760784065026207739223386513482646805063322521673243139134551009280196486182483302493401449757977346988390167550368696640936408332251942985916714845533503941844006521039651816035599080293943638748351720135529722557871089340673725239578890538838841365828138040317454452469833116310565840173275153080020025066695872862483772476511483330019069198627741244902843477341517673363787829337054947599868568137322993514645023035362351798640608540208309741982933823014917078121197443137031008490009184774476215636237048137373579960690871698303994931331265381590779897000655727839247439897561819606368260036936819012766305990128629049929939726353180941436357618735139517449747207489743718970419176234307083646602703986714589544134695184302422623728821971726275315443898829798995914152729504843436804547003635742590582275443056662704883025411865099746562262952469180582589990904910318014172560160728186941471015571131496312972049578747262824546317577518728601226373300622559782196488249092752937665241249581650264215002944723214310678117715470483669948833257220736355577780518178627929768690121870660566193550429590611087867171879580321897564950881346014159986949814951580338079886607736306158508985187384872727185843021447742003928591018514176317747850389897992468487975575981785477964115972368747872807293140659079016338325981064785651095658513549932703147998862643599313348831857146558611113544580738887691498653480881720129595568663505430669922899245493919983144721389241658145031177086108004550968149924283662565680681526131363041030295072329308828998600767819681707482114166466628187314302518195743296934364726436746734845701163689496834580064506381201006175262023925731690763173768859458144486752595507738143110208796265398358544597926236778022324012771953216290618079544332470329726773031589055880286527861754184013650938046822530263882338967819374268304885933774439729798971716305434736528295001256969771022061215009836796990323143788642387763336412003341691026387586437186381244768312479536309187834495227411330237579093720027255460055188734035113626285058236037666812278874032727990797237268078040694105021446488184303631942165002071675418276317953804695349672474396178413026945077781082547283242612446080974816387342490696947350779729984630795466349525062642215101975116208451542236015844099629922040434297764841064760367461086999998888606723707038293848397413611097292660797916272160024777273130905538902222180964267989034597772529377662631623969449005501257139966112365666823756412696153770240158873478806077932763590369591138702574923851765074654188721916198932689107288016474221953094634505515586816749222083188666074103217503873652565434923893806219806329462519377132949998263423701976317032285274824577375576782284998750661108638288744017291823538395335210520863146541418697936086021822634541676495945838248757673715957904016331517696877092326049864875389428464625552080215382291601781603074956168780982383889925893315807189617580697465895542070015727944017934909778884087759942537907589970748519814100256594681722515751715414731031129546153041661134686791321010971991115896502453883812132348231047720114296747804353128782230176154646297999483948686228455617819622643500381308396017329678174831116276782071036287447262904212961219115423601737585017727113919204240538715037503058123645747202493813688954508304654985879378994044059899089394287778154345569646899624937365356012350021197762846843767526361385687795981018523577636259474371590477320254932162383711239338356531883420744675921724664593633758749479956067351156716362887566563947700320384837768678313219480049508061430267602508461945063167257708399798274229615146443127481857104671059806024799466299017078566242694630741705158440466911734541294659157551885578332131703513021997613202489491006293733849956716371371275926650895909094094042672294628590767270126542222192609560718399116293477469712914063103558759806620242524275566582033279624075519927266190742137580208693996841730611434270738146330637163595257998356005846095667311323237824935197815191555698546424687703050774683999742069160893344989090362450260551375143797320648609450201526332089638999114871740662969456842495211662445723550536216880872893798311710872391870932497334169969205723426124639025967676510378326596782174739830438901212080008671152998724721226352199191558778446081639950044782551156921417142257934915330278196216551119288237706466956139199611722317504464258001713852485883396806044469286552580085694443099880753344639914593734623687677397446286989385699226945070407976847565056489024477531404584782103536987012004625843965933456266970218277596774062654171231966959577363578308209048991848656959641607951047138809645051275984184382942270814095028171723849768666559097051365369857849255086521953376699080272078792822403391881939364215085621315023377140458597563126094568724269060389006736235329551769841529429442311263703656165848760664590424903296271811361147684096880293664968687381764317185069694768419453068570688135411401635166774142356273810180609237606063468480910938105029028068485524534874319737645056287697448098391856365263548822640414771714093941954799058634072854310615688384239609519329737663172777107764699164639538928373711175882339838612378935550636030523815135630436901555601161079253525950440347421189663587344826966073478390427592383575845823022183136456409850213900830511280480377719336941564685503126865823078243533168892804742453588784813102984803015545247001811462603825982567224288783366707634141619832903833009510383627932625278611334747668736446779958777066815609038896004779661607125669586769015586909388580328337569494254695752103629859911086826985406846653325528858507393944220724726878946167538388997801913412582450305088656670746128493845084521641445474123777524799013551875391306822740797478657192884402953691070623553476077164571057180953404374233463577278294027991456761074631743446934791618479690198933444786168198395709894905751711559513655898067156281303238984196665787041001655967526491106812018652057241877386226388862393241141737431816804015056733217744765699181117530372828053145825094980344393493037169494646124131757175351586420637075911843441089568743817700923443801492429188379141555117252653282162969681220127393181539050323123617720548569440819511778506470268522925246158116808606035520363692812314272691231450322081749628283534008632371247838914707347960996794052084935715108023744829344083323737811187280423019835793349403849708978392306947721539557797718622287475283229612054158384850473453891593975169145143312457474425122616046022608544915216630159561725905128624808138421077655076317045493267147593890267254038326523337365839841608732973462439578222452439185962673781686438357200456908577893550007496194184844593080731348219851646423792174649004431627609511427646840554178697319874360494316883527571638868377116653191389462144880455035467741227335800987877250738062145902498601118409023363476444718855504946782172802322958671659189609389267667545175169714472057315479016997103130079157528400571117835422065386822308991085024620784636109500371387787307294089416868489077783202542852424107155064045164385780683688442342019621289325603807309045314548153343525023764452371461181055380658419997962615405444993503186811515709446582773593135772399596710678746896571035123929325850959524231510317352634630742359672209356351111172083330725163749426570618503743409173200089948528667793568409623291010998405549902928034474711285565911612008196512579877557906378640717958725212247780024010159360512341378226736138467847627333484663984637946935525129753348499440002515050009466890157282016285250167807496030381838029946667647692071673699538417261340392792975126409475321268662433558230730239210128443147336341711955986002414209198175424711360643568040452560992172728400639905480286552059029767802774384423055837333947736749278129297477611704703672562071424548065003933825435295787845689194417649499685708946516118748362420539099855732996694011394636633551450308815170280750888018906889010094106334574829955713921673241959973587676885783714200215033450668568543407882712903724384003694539312080311392187930185632850889592524992415930437756782297308692488321362024843715841391139952264030912263026120129657815057271975508228306652803730287763309187311185388564167439719996090108883737229328235145238949234346904685315879017605885629872641702288182740856732326094184956286740877966555905507241665194036712348020932557096352971459761627114637753204081296303621276680551204257318750013331955043780006067271948711758150004384643505900380178147103999832187350974621409224788114638224724003057254914552936567522743384417550952327972674041587782113401825280462167260930598682129871595314115344888767323808569811597120210469464321742051694966554997771872625009952408428670825025437080784033869626731166149987310070569911041875088012226384694523995334024611591605776661902238741146326612987897020595307464996479720932184766197501391028484073829641687086257621012361378161533924429050994005555690257833177949318563975063073302934121091692385381836155048759134271359850516271044096134629730529380065896600884938313790293154772582218774792646647656468193740505946857599892825174084971041412010749053744822196491694741918023236124089804400413090752968378657136092463144844326746330601129914359647667555264708422066755296550232239071309266625304842721202849361846293266711084187518178324178780706925697390665507990136097600448120557002016424435985512414245668412717769089612313099486698402760356675819915046818337290689984011350298126268818597211747554032427913953777757345145629707524717044756290086167049540857049277517520113929080480058179561530362839085382217371470262502702051906494763755075444087780925600772936770829084687093648737253347299751667401512502643625641470218651471195539757212897632969081053614701444171813734818817359652377973950077416171432088639795196715236736796052744937286035674511044509112160552616336640086258247837444812144802916756625692771834105018802343570480491833572477534248378741310719705853517971652494312192089004426980277261248579724516567520951443330397277421645279917024763564680494516875700065244389498380421255962954512488403752306605538731588891551993048719078429680925596791122159397858225849886224584018982769746012609294493997271085566402509438668343806760941769516841132283897605521038911878076430655998942615391334892306410674061929553145973033234809728263487529960103776969759468305033924154410473183138305765213784162984360182442859724227375797401280193537992327669928782771602468535922090604816903723525780820779317613973777447354359134272595787855615966398706718052452517064502077456483394596084768167661115229942736746716726111888612334881230316196861098876658398686679204118679940426792094019289794548389558205786251879724587257427068029089383685768332251429540508640762446739008725282064640299927961256273774304515776003981367302743692735544582267038520974707097921304732687041497796773139943550434385959681579701561671051028997980566983710346810092889917020049536849936676618771069886038316051093975782627210187761551038185645145520449847580539172082181494905418492362746999686894442127016269627129422945533605153807970974806073916081880729255490566381621983140421004086704215020704963234757817814766428609406297713221339149679023041042723974799789978717346720188855050775381471752513989398831498326060201161953805508796973903172836133332546740601764107741826829375322114756803846172224295151778527978191705113861792213931549440156002121393579085621876492861239998631484462906013884097892407409223140043932497846644404186122464414206687349600093515812635471959397704616687647037641310584067328632746418197360232429537229627423112516302437453236740958737623856639873169670607048860103650588763919446429933067840109029184529461230580788810203525936221938505831583550962389846952239232693063652759665016382291731852680577823610717125493390161855482906884342383126711908074765855389174224143457213259951659535524505142314271386724322899651889896141914441476815253100473194103446604368135384190817490641475668654910086689794446757964640215547745312216159721119816148306632384731009218204426386494365731047606841851485471230420916104175331066414170789244853377600370578891141456533462366295888209961807219940913626625462637523233637351168170484606556501112020079013785904300966329675209728909671825561518147487181316345788564382121987625502180896283735890852232546120221976880910426332893067195508886603272528221745501647703832339605567759673337419394248743181203093674736013952235712282017693577347057077606601835200416929133917099244052757173399578345806852298692001397130162454758378954703907891104792689582673079899014274386770959467443970781644046358063968436403168177486564785052141075282577074769361396836093470694584897639883344706869029035615766537386189524535733217624072248451103370051980008045508710032068409721933228337490393998679397006523848549842815650784657632153033775957363236511288330691615611828719315977476902092027122285838926352470097584616463401039937155717672045681125039124165928290865985192387547949676984386524242608141414959767236199077082493414958621668494351348959747924394105809709332187108194966498546573371326150843710352227885299797937351142282555818175127008461152546844501967109111724592230082842922779925325393876350016628895254294240479133500300570885569875358967005084253412583378384232071702916385557199032786618686557615306591657531021212868942283623280294977595498500095078909827669515494072997492971169221040057596470728763603786250932459473692083386550785892841604250956094658553129332308425348134613755992411438540925854361430872206628370092775652031522573270662247189236676271683075921225327880088827991015922316072164898276623103062186521497116780261464380668031260866729353239423547107986375219590748188110381581780138425605480309298588194453819521398048552016045675330901234905678529171548265901769495516974303421863321794694699192184802967190412005048516581020427005398539199042757321270058804213325798690074127278253757539163637954231640991145138439333987889643274611132567537142943305423939752209232275161395803216663566590449953345579491323554901351651169534787513596781723409945443880919503731359038595287040954849987202549655348169308904111084181668567042125198015383289614424212646106674997896273818133425630312716402054371244396008281832165561316127224897447794542576536549717759055790932773859158284144614453216381134173440053988743894492979516038741852092213875968940211943767775431456803956362953973334409700551062214754952849217819104907613033878949945670467445913515795215996856593584493647478804026740433658126128390380141907795676605841480488665426955185085327802989992463918272529765510296623189698324481709735535436265580261235445309130576377475836574830809190483144885835331185787750942242703978933829777776952561229907896880918387518263122934531640768618395939447024657508437621008915215954747181171595143390822175613201274294110877705854311696112730471920633300332440338310178133395646702079879448783943991549072019848882556293485115983833563026702988885065380417600309443564768556138371542255243942405244766337915929528027224739270242344050925952393913290795666096677695226735667850315839258386603386998648905112027620002967929126157052753761683169839139567420051978221293634594746294660088018188774295704874604819517454974008574245174337818131762003124276582108006220317461043378985804341631929542473082206382368732461259878092400956650296367676486492876629140487267056059709168099863697657650774953076509435178167474153994617780952337904118928724603940051206259974263457542783778461819230273618901337379490449804277742429326559261292496955120663513136118707205212310689762227804911853043318880220794930602047719253901039782569533256656444300656421725472208781053373924507430917882372856606596659934225112827053157982908420635021087457165037990571319246349152316576304209202297674706284946481696105085945913067001079540834535436798840591956371965357429791273747463136741458693283534502343524665649322212018467194243659364746753506576343709076901334629760238150639967641635392211480977222110925785507587658658381020524171954976156968463574174657732506409898114474620386910603025651764873029277959564699260622192542008020812215058216122511910890093633306839190445375076047009890048576424616906579175839924861750632376517004247898489260170015278836935704956585897317790568327332126203611871639335991181016388697332679290927453480574450212844639498836217824472864468108467807367239434246544021909416284846132739869850135487282211724910317032182316602293300936473101202491792870909835919957741976976395565341687516058204350495291993314382241628590853758446021363800728997596074349453273220310112236818417038795238444309767473819622281765707993047334961324577757264642884554594137610024099201847412618688845545143801570688793938174534998700138353736343015051159277209406194817965703078156310950901390183928995015356871060830258519506160951116892952078517688838095520823662959957387885380694685774976307673250682710236918588726240678342596779303279525725542000735746798368678870291239404908033685031811298024444443628771705298354355075352633469177558643678965854488457937883529559027529819005210245537629507796566409324231724688157556133030304365616283149553232455922614944724453903833358342154970578238439181468092002024136851419433401937991208957110649386950658633312950917609955963041411223161133330314401870366528002099640727297768259756843706492006098226461970033855093908461049919833844107761936382716556293230301016255100828957793563243267420349191122034257812317591933610111171114795114974750269955533521888959736890731282826075969529814734857825426592211492132548621029539067403808625886741353323899691286777602923849866334097141665019553243647618457882950188251184112133783416252244402666454288209940864892605142787117568621842780623318693116627908982042827038069304670249850251175170575519533673116664136102609703738029561351180489485021878156119882195371513898992840376217584533264506095195132848084201624147797030915469770196636809048693913998027366716197430368880326548614012154173527831400763354988123857838352509841276478450580454436514637861405289653810980185906858809332979171543783840393587084543466993979922976736577626932730479909809570503021971473574549553972076292379881675693713047036548144306832217863620950002925145167582190178375640658854795891387891451176369932964243061910119923466077828057055600287924817783192989524190827863420506222339828301307248060292904269384603922982318829025610462254899403363815639507907255256462007042791538461867983281083076573382199824646336160185475335172721454312078103301040085569696177694267415646461837485764090280847986782046098433231391304184861341794611134959947851193609900865163353325449609644076865912426243336394760860190709720859787734701598974280585335248453788902095379975631165705491480348392268286950965954323580734659615229184981958239856583300539407231850330907971952901811202667660771495392364954630831841893910663773859009204055136843940121748423824319151944809645149309087434829367618955468717862665547143692885599053848183660355653284701505055007725673147414057140544521142825859065634594363435646325383059664201094110920096044681499256202797810789409723239549322420006005658546668247928523426298809542706045884196548828025801024029433402155366523112367412907121827129586606216120705387785032457318550086888303455354095698113940999546251816909236066051288799699183975653756170825344866924433161201412942184106102289409521777478516294193381740457599124103563988937754588186990112788961441254939622189347108704396686013196595160577833392196297479360880893234933653196534647622706878688861807553028744690149743823410636763178745497152122370922182574510290846789512903151367455882863842336544302639211532697677452029602950946789277401643125762591643483702284093279573270886392698897678779941552519448162444890117711399680277223769862086342763966583902636010611328928367383137599142282854896102137581803016306748144381929891243571332566275849821341684776744160769528787014197124450921797254182628374338979334048497745820776605353186459285746420539629542275486134341762674709529282969536371768113559773497179124780850701530341814000848407795285272286078285644932618318818550076613203256413633639664020847009355490022266984492814669944920271165580368591739524109662979348371618814836120560387733450423185077157103761119285418934166322047083342448445795863546666552881792451327330955267205227758426348120214790666617128557212413820140163329618021190635598991086203924400683834512071517984116310983514929090266748174783202017867689187901846748550568521251737184808451037286040145314018662100247289081905562243468198937139777499966521981400318641130354121031425390553434579511619369769590003779371697339804551895941247685918516523755848422280638264592907938870141467825600363844099576249623610186966218258651403520269053865517801718925796919616415893390738706846632721074886363463017141180900089203384554724395477036257250367091979431049274756378515035130611330475730141435323461413891718903848878814436521256701313515614760901046464477444209088910082118628368294906650250981252094795004381436583490271852981191713240000552745574115018295378604976874452831870247314372285891149897694465127349849349547997883755652463433617498696948787934026547796456316635535171295485764458793789741203786815341695605669627590024294269599663840556703848782919993818611566954409003340018235101961722739250555578622250183082672535208765040959609734894808561219690281231428328193121157504930979479863912371968751273513086937253953351380134889743139829149134601525976703040750077569630887305110453769282412494698057473473364524710823630427962399162956758943876612397856083812555681667028382881328046112737933798126104841997998947566838981124949381727885140312866335330861395310223200253983446228701529095622619974743806168150019391350384555613883183491841894358383942904586731009933555556247609046294648749707254906572294334360647488878509307062417942668456117278024128296782926466726300739695143598985650426218641550484771889040202850754210526539322903834665152833259113731885485911555077930309816566332255660113837608078338552224922303996005039971567077762783443303802612875271382335877234931843135935380831032467391991311582027656014720839221736215663632915398745545400606653216589688879792427422855869572644110111328841928102573853286224779617978990430825355785295961459775034031206754695993924014763517075961173962522678995921676012224623457299366535142053352181717768625561288499918550718425274198689240879795951952930668962854961837444010919067391337751224305588601890847031366347981232332670321869789065117404020101598068412206389655261853022218903039667671780613184850811987008883025095738593026696299777355961872223073586877756598785033989296000751396650605296899185144666549763336818947850526290744382466189621801750570415216034502476555762260563324649320634709754606112589551356165079533200822441189206805109356723808832239400423122278087806367926055863782272693319474506535049739264133385901581419389594482287491311323099524513693404337026095172574423238786197210378501277397308191708923946500986925403764309955709454999522712163964895885661089218431051135887487549636843091285026522410315479010195091484535685232904457912739513108519937100115949427460783015250121033059683032042224961372414924315900280415022099543485813261703811680113143321661270077046620394615724485806569966392842225006339320126152181352030582261279123822468003917212878865788252260561606642025141521123542518747405346200663325723918308511278597822161779372692428092012906770405286224280395197328867744248332443326950618154836913791560161447257750024947156573670090854583056653767579426221823134939589161820612140491476257471710049409087071124775292036116040160101549541671109264974657229980980081227014492254182238638562668158778388893233454037630151008285874201850208300602135565361657859197415346894093558374243343856956746643595101353255147404358942636831410752196926818009247323322214522620185164651339699248371813999069214163301643524180576716878760162450945304774567210530061457050327739001647060809381997457168568983261710031594125355345616725587683463909950715314008860120893204107461592275126799092408438871458630923395431740152619106608610138886231024024685069603763396032551732420020718778970922159809863727552314382781377505628490337025565949412753102966538357913050373303833104134273556657933062378098391602277543239202373459974805061447476115014363050241057292116655235051015242505590945855678109807672665120579410585437339564024802583901066195954225674152637383736500756578659413460011628611459406429989771001624237601607687363796010516846637324390072668296982648637850701986571313364727165861505781088124383771790795917118930143304707738761349933332742058292248221630599145024766930408498089317448038105036272290320718545945101097893386154223797324598860792407485393499247184672007523629612770558347513971037940842873235708749315781237578280902655559752927337717530741967100145335682994603875742662887701207812301659330162650851888064270224777497427133787306501070952993157763859384866635805664756204237159695657663866897798697493998228032614004236594959900598596325374741139364043266083389577299038316254242684086480736953515044885347084617597495931298439907218368230380473757958091955972831663167425596625271214002055583918532795033810263805345395747916799786197513391985226594636716974550062407709471159229779778181980634580716052770183853315240764779461855242630833967132322639666762281498207551422167400759297788619354879634352961939657143587071756724813869226831694316289427600134456555880756893291879004687425057418634453059962111479642537109763356834201474029749923265742078548856272315075989015049528906570993093740412440893168547216180394712782831212101454135853673972293205974936445679276053716961908959558346885381525644043038998489452944983590177236398485285425324454883195648483973686520305724137733320757964871730163162617642099736034055890576727943891077268647387511217900021990019591199802973535536089099178630171054862543419749759609437624737497042573743377668969982219519059440386450592599193175919217584125730043000824978359774522716745740198553198608257572627251560698961323655160780397589036773951103972213969042931318865204415839096603308001783133395783331980645030633241067170077806971285631116268469584403869324149825964545586547463353400180982118181994283714056979602517115734438448173484828090702315988660948340635352858583428243537558442530046583527222420204197773079698232125860782044563763351924747200636661613966039150696767853845523126050334454489321596817847754888041584381462648778527491125471064793698500055876503816454322860931237610096542891230734550931649718229749097146426193957362457257249268874649550202776140302992279718397877470059793592279885493769223756897754254236055021169595180737975051086563794659708270461248096468487437475245413412212464348590083523489126591395761831829789020808743274702779179650084896041202162013761219382396002897578852788263507569324719745834451737057771565530223587781591044638445328112021941735671300892253618259946714856636650995891491602722712723838791730760957917349352969638221204886719461469684757946656730366368381365635792853392966509619844268729746543893677333934149967682868217000389272606096319802016176197354943045813345561743326251176797093226514402759604797184124647289403163708724005513798079828515828908264609872385758923798772055300631830465451550551971353586027013199916130157271127853640197179206844288508748594118633788155303546168200353190294659562683413311533691002016606080338247562429203409370185824519146890406519869132698230017079020439761008327651698252965832749961162774113115835747441173960194724630767389893831459679008727954281054463969725926630691094589581240617466082020022033157573207256496455368952027692963565937116395472205049858592482853458628981420809663467725150686043432634606038182256240083157559807298662603257518240541661153415245435562793105132867451055218118222526488292337089465551628034843585674387655689167739938252032574182751769733802923327474262558573557533133662746888995692585538026889197340631232000096625096134512359298075264277935293127490932296246283815463282621349224409194272811092878329295892935300996768901177341531618223705846657228674381731294772820073712782698803996210171961067838232896691453354994709990227832019641261373467924257564712185685115426905097126659700055914667537073669546480435340347477371634656649806563532578737378728305917681706348573403754263084229418309138894238066767845937266792364381608991644259722049277205517964817887795072284136145885790390663598113665357305506897144566918104606520851864838828343673375699263859961083466727320229557780246045994569985356137553118772514158624564451328775182858586318026687286786796524013545021829048416354241900936504849155313673200090460983170477000747331131558910052444605381480214168828993875288733508945165628117579418968151568949596308024454860035888759053884624393274450353823419344612378290404011228454480787081771948114522914927526813820854036265141057985948140688716901689358566213256206315607425208657568359984829812243683634403697150831911028131707611683102099715963680675889918136147246858765413516363341058114733987879907758613897622292584980288079429411277248780296130254664753965514449530287970020796010385095796471678116118815626008536258830824302698539269462899515970321307361328031716342194839413651897814339576062252537172722709297230741586451578133602619670757049531558036227970363394203457101581936555717506428706019202643150778401385915052578333731578531051374338121722172297690618841664871925489192129714219095785555324595553788178966865703587751178627587213048591595880881928531934411369458710777724851539716761052431780117512977875058539040052059025403434553222606681129462533573794094067178507740270987720143465077439503699847653635218232793464830567434568476393310750390463360259023759209479893020015101166064602875784491516708633871301425561077009860566036462489328104234625549052850564803073078253957392398815559852605815913545277312318377334478575541690459791913008806264704545876392839295373314180946081713937984463103838283663389106267624266173194372448024740580694750622345265114921407567897453695352954540194014412681807725555681108122519799481012996009494022912393183905108165426639476664861095834739155651191460120816858233012459673501913263691067858892545677254166723131568931510654523515172295386421271933932164473855447792486442679403826882889122393899774216271137994519116616948656874153941152254160736027741672838901975040837481189532487634664840473893209979121489379473842742335374770044765506055864376628801122436633079556779498776998611405461100542863121981170193201091613679810637019577101081994681405239683808994256008789593373558686784380911320064483643700826415152929943227012396773512555431309093551773674312089825993324937696103826986668535011333026637238635397992256678488791974438893306946639995806845570393134048088666377685335919699333731452958910213981371371753074030924278214082380923911865502016864317171045768839639139831720521453770710343839845820431657736685300210553430959828584735079122940088477337532049110149673886469991215565817006678763145808616270209665904763899061952821693938037659461828189073813118480473314664701237090377600327182601136782616841322487077365021465587796183054784862533381793663432900493196240838201533568858026464530076864915692128712347959747218680779433668349666449199781585679699657214056690028270090413740505752001609042867537067899237232701474460633560774876638815649051252409273655479795993322014914078359667072161898991034709929847381634891078459644793153333652301222451589352018361905753052142686350459786136400641508242318167480370939918499903147349433181577097113525796505207667866386066651018371231026310914561868360507323836778135761856968448370288991782427677405145212805437207063667374417608017685236899756999313491687134957749399388723191790929937255848323740990202456147513905866464322279959773733363324968803625601641264921964421738053905135818352691160531639049425232893643513343939784829484733688994057480287576882813744060623236944034429071541568875758277061737305404444998058762647220257144673340830132152333714949141354505743359442848299836064165678770700485545198296649288481625239225686675836994050226098860779185297629130710367867912527774699410085702265527222360738462090957304353950975090172708140816815795563273861079408393000497910876772100478636214518235669538393030242328726722044066334069776792711272733348146707187576159807419304457631533670019048045743714506187060687433018548851097856314679066267541881269085701248578284667699019185831784187230572255769068349460784326724475740853256043877486596147882824768746192275982964592732634218129107300730154471604246845004926298671466082529047396843146751547888496006793398903004393261526672110884986657578177582311889052428655905658068347102778275719274491366828284583319881737313877008922335429781823253974956081243183982795134117624795011675579671392383473553892786519334147224773798016506888078337140766954382989816130507322166140015322526474706939107542417824061968374285994043269323444386984833069845169442901799638713458701725904619033162753654275204888640765047896727451841319187257105550357274636423234072057005094983093596009693746281784873423096075740199956680973860572045803973288848072645971703351812409406610307694252942617525451031214852419245603022337483462544184550460112633043293616430420549807035177723633273399630551835275382785603994479536643323445762744425298138642812165392122335853201954437791079400150938878997031017259647927447861727695400953921162172234748530738692889690437324633744136399960513127645002767868120521287992376998663354603813021979414007974890247115146231244358580156000131777861276894668397521904894903884826433082881542150805480546582067250846011874789983332174077787659912990946896702963154678486711260612981728410233779776504768274948633861628547900269241261316603619643604572102321744989814788353105921765650925688286980460049327700695672766566103584560163293170837413417523992115881719005009603337896327752423817987326566642098984659505417560668549001329524371432938513708295617811495834451676756365987827536061756411518372567543712144178961774500451693839763430738448466178475500943941260363184902127247413457175095969046886534915391347902332849484660480813058980637760250515800498661885444480878616569914328514223567070040741364532032279158554639483714620136258111626581646311445849905818317197888803142920657178417182836709618417798451593625775013784616777236025891321130269131632510598694201331415762981948398940128801470021021731233030252199291498553354901008809071637825324315155305571061906349152897437907640820831164178945293859532505211881350212767389135759874571037193799998887045892889822679341595063344270472352326902606289258616062990634469051827210614605796870664817610353178914322632851146932280015332928062434078522762686503954950988182707273419504195265829451467380933389429494893679727898971849796943635717191235174565240899070950320875285437924497690585385835142615188703028263579293969696889540859199207728084322162321927446534169791780093291009633986147562384590383785780951254254279480488751704478320642088656036719666805542125782108763761563654522610235938868931085511456344362199288008699428508213164002981122779071671841800226367521619478412466506269105849923486537389773827269962592463133504753664221875356579803388297091655150935919764210257815437327497208186994047750160738045137806314318526962948442502338614627871580621331050004685741051317115030262397673579964755593182737733293774597935366923191959898538557732288230378609428583099137561314619169792815508933256127384754944303907180817657753069066386606553434805237348621033296642362577086544507731432500231731863176177283545621893605216989007466254595765122588528739378419144868009245461069203976537356996302961239148763914171698167648916138901424026661997677953158530831172422090737032096226088941545196340553828367676034140013999172008961904180011790126325455020636757232521657991785109541578019596786039879868932822692996817536756551127800835359086595092681146618808959645022790228033631174917212156424456916182391563809341940562882284938711465687487592720427845550598062117778798992861266735384138540451526432028747699557083231991405064353481995749682188467550019993697751290875691168564298096616506295140850367646381502459230921750986518967023163313439670161222502709286497508783678591258565144812673593179402542574333422662069012779566487111522272853505430629696097028033543748423556968670262813243176703314173817895820043784044173463321429799778059472107302272422497160371740949650470654548719365928169633153424505172970303171679417804837258614701079462114171462131518164335862306675433677760717849747514465340209785329077293610786347959919226100516467109511512092437621375386111777950254852274905388452184358355075385202111535180213516579421121991989807620635513099318014120199981516233281955625044971906675397822127815571730429554352516611953212037215470634449389591457269926260842624685310147846939952784221534682799602431863725336346831246747572951644095877541469668877742367563807974223287688819207601488678713195165921176679613401926200456420025895579511800133752993650279105959760968096083429708278683165880031997345412295369657306391469387956734330101304367471830650537326287388258044647749619008461668282746554599038036120153312119633311770105230402522384029962693938431442917196590373447901044836314960327059511362527948214737137620016625067141391336249711297737818151652932180195563001549354966685509598165800044051019727018953766692386765158252408318441679154836610945627423565164865389888341924901127757318279044552629428838157215694303915847089457862624210913250656416587711800991363512353509847797305148222550870443769311078761041049024932062476082322124471463979632373549356529773888136389802060988927457620358108126351989044948759931266125455814956390981732156010908861621342046664475356489883074293257961013592751886988105812003445375370267861631586351332648833794580991911501918630093131944934237911069156453105506701117659827177132511170776890213939445164641943538768836188569561485643678928765427828034623539859540380847062365646726136360702944459823535812992045864197801113078323450066127663408940004688448304732900513374700097080626311093610591836285444099781605365575441773874825614764069074469754093431733933028246946222596169960542279289329525222469493861330270803207204540028763904140559390314273794128872250457222255721522861896643817335401908565101749440856878351423501529213904331661604663035175454630129722974586310776084104884955904830780256667662619559335091034768619758284456286678424521358363078300222760056460587653906218039952021353362140706192691565748325159958927385396159767025632058439505048510674583737377323439867611962167627900573757119200124560656840188271352903705649951318472559721795901366290313011481751831844093911414541146842142664364496364400971483099047938020829255487822901774859491413541983757380031546059451030458135660395611401050970655736936472105100574439135684804178734605651936663200869289567020244660863791950556756765715694105879805443459251470462495688981547941014750844600965219899336907207808898358091968007600824093267691218330747930509409114673998396485190396084636253232909861982446791403736703936281893756664281178006686227326414114971747516286795425444491456907987128251880234925349206057554244234679110721646505190352616513189913226847606901638664408767465757783181264958873665583996108897151603547898616973173950964396042283096440861685355607713059649662999033564337810098749234566178648204378996506324757704530067664892171915041267804801147209626254088735291166560481445124451793326182639967684724397402048489953066472774522356491572878009355396176960349930884981001115954026176177559317165688173733912308249392453243060362264688489940419631658051505419406298511217750170879987572331885642905870488241719276395066288029419874725291411753976938695556307703968806651637830748452379124277199277682013986904927326041572237650622510207093346174115986981216006431339792570240270551836792692703431826061100246505512929336229627828724483015032008296261412520708402545448304621392059404107624958145620206195465308867312804105159965835582001346688732487856487835860118630766048706052344473550476046679000234488300792954866063067803384993014386020919926058715603065917073206845091435965357406668541225437832223239143772943065938384593816359587305562558587807306750847155547578003659715747590353896107873068774938800182295396832147480259247289337196063941804158629626065904620446991839110348017136835417372363343998275024560020020572244719216404108324781852626284884798137391688759388164049402191648165950104844640062759670597335146601843818565058976216624424175575094964907832388756315759858443408099223888933452813006392892851318500409822740684817024250068627337125425976179157856375511322959161977640896172650842534172189182978557358400267827134149559241428559746948825398903204298771885044803371198291242333805331928700513619737622714468195614401828751337941485709456622166890713579029679342512659984311991937470240092737079298266290587588081124988249380490428425231753809306245355590366653583611375799620902967769189977017718560405160725836507349544050711577000376467381702977759356611391620496137719664511743468598766976043070586888742428828258087505828577263627842653044804887963812074426540316350539488729605754810312937046361473490835867307092345910558808714332687394809779592763148560503819760892546691459209619255481089565620584341855601911394350346180269152456353178434695630674401961704351666278517647138036067702560922769715847575219053775802470188016797838564601031214766249767103224037015725629528174958696459452697114935228190556555911492118220834392033306140909011888431830250101546781454263669039566569091794194614821148395684647580215168584827290739315034601950461908712068408116633979611406646005369914027816362248534443495705307129091147723175904789492767494661793065953089858756225306650188187979677589303861799369008321310984094821796809834735691812504750811086618420249327007720368341279716180502461416502624387683463622409941299573644866883177141988452583725956346832969149520800901132381645600289187098782933120639635523720784043940110474717967271723854303116195670746193750769393417866405978730556107486669186992098341314863161502735613703027497615066308988232577139818606255073433349528328758496037467673272042947562095569662782912800650342062310389766657514069381290319056602023133916339583653768304140793447264414056563029259159507294538831428114564939745458467229738431691806119448670869830669712221961388949877231548632562184218108659823662369970198422753161141327310320536028489574570215020960490381765115864132986126602644516547030286294385238176748853944441655074402807460476672990680125198566159941692255055360447431481953442995737199797549854800636477184181024816413958599010954527975871246553072260485982366582087670647187840162674568807678547582848831521632292944408059664918732627812263318064147561282518736311736033391711200075883916809902539410612177829499749064788632366980918774638707171851997720855831758679861442433347963013560137899288116430520315571470338947847414381063245428500721475685033790499045881974159791223683009187240962945642783504277124712581783494841174564809703915967141516157393624890865563026641526131585192012313733644585815577581426422443912362110574205026921968289815497342851016884994013882724103554359830177237564758170418885146325235443024950703673716023447537797305922930710648482727177432857562397168557217509915711013171063863415813225241345646177946576268549572999770766473437810410234852657845989319217458308548655905336709479204064414710120405255010758499132814964029263506073007396226522186621885486499722483529956656033045031358889717865924473763174133892417239574238821832689660686958239163770154124798955350912719376644252859492147807960556943245754212383018322957887039892930937479486653261304148144133425866675286583306326633874204809362406161238534388592753345598590268866723177114352788155590870087286693074165719997569656896183756397899970966541915031030216007344882124598882993851588997781699622439097493276258089311513762421012327581662715531920966790772599459649473997877227486324732802556264987777164506574482142778152713288185193037395040220219400232649420573496218166376131173456657533040732871198122480995190386581394000779230913270766356148075105482484339503492416490560363173413655174137857181601821699266350685050710110888240469976123694018702467294542436060247889533901566201269144074691149324478780250632718439283239969168818123654839836734832575726511360943603528747021849385112215487913559594647775744114371490144932299263922660826784547335216221942081243713895548094253008152081404470703470090005861192532904079495131288284388622859818786868317141840594167378026071896430336130300828276937806793386988752729366505988336586700515936636629385495366453291228482594633048828456613583626954145121137028488561141883956726710044154807139008173886442156655212482181032265158692034562671455778450623638677851013807844809105864589142812353709333339331772707401252534342444258638781461311086853610534287877926169441554536327669886033052170986813105761745322270691744922197457674289010379041543449691186359840769468867933635443060598451465481426854331284137682089597084038568584727359186258123245747146265137981551767974340528772150541927990970953761872507353314390726594944119875902280208525595679226811432808752487968036773794098945786406439127602583122709193938528122996961567642898212089294103034803685726703450622690825635980227750622787629684955519311766415272988904627421718729331014552765885287351352713210278720932707155461064045804826541211547336086901928545003105386538323720317488906941081430254842726879328863634238966237710614793288483795354137231533123062399639623640345405719624865906490451772821620567926436342992165047699153698092663987532298377629551454170300952759096426130924465379746111720603483928955516798119366142355613518317536930346488391268596982869593553618532094067944826982906387639881900565872731460648401118746970884850660804804840557235323692059479128834719863743294368353507099219671377443687465580147168369256818491762786032680736633308086959930827658462782861997778799554515816340719964583646065632501257104584631995857062836413306838458337907727528977824851308319212724668297058287473046743906225208776173794604778131372827624970827750213090198799890098535893436683519936210450536349602752409029902954773876759508134883565289478069649299457455650459369771335068852592471936222281368827114398958540481485975955029237364671787253457642654792748390878236484532478687703906744732195295061291123325751901372855406430202887341695482769249919820771861255784556003562761512037756832614280701940460648638627329753615518976113635191870113144000677573981677924696764172222810642986963788864564069748184743072948716424957525328865727184055966777642978551333130213850113464916222533898875409535954273453776168345102846983933404325779381851723044507631151652525869522028369600785669025138788518724088393994308360534395013607373943816648236268991665291199665036685020257582729832964417106113672597188542748715313693193268897629945932577932589992292641331256470633642235327377688860780124681701043354416193933702884315559124915330025826608574144174718128173237171016556213659166045493425472473665782540055287467988503067367170007297579152629937580729611634786659132818350338502866582504986557494345180697987685346131511078646330356205927613649153806492300989892617570123119137058768076361837884596478517224513860784148152166309666870441436767938370056369624418599351459000538151574340133217505033516874030564560660485991925349626127403163274373255378661462468763011189775627560639671155769493586253261315899029421177639227163481156367201922990341166017190463039342638205781272299976631900393859001618808373682044340967862523864950441787318870180944229538970050114920611920889204192250298437042500152139869991290511977088985829089352652925465446433804181475762310912347192693859598260801447510782394182385628274964196040111976269764973337855311983599621224146243645501896342326579434271618909247259004380688890299912926335575335144898135067143448341507278274104046370798787715135006322729714590947692204833818835127220568701120430836470292537997407663566329748102992689034300514828166181399068481069337695829743313648703601793065192923456492261330556693961770684681940396843130195279350077482033510359695063950356414427971212828138425588392917068851953511969365919781481484722287620154682702365799002947545058447679782325483854627406112435856196006012696853327618322482955129004938869537364807517987396505264816211768308120148587572003831604505219048674014428443332193942446897091360459444886671256566317220215282355919316767505021334997611759488669520147687839428432054607527075626568889369518302709439029501547981578704490765848306352956989147104700963468234746954719916295526773517637962437255391068040071119560086919404697134642380096529285326748403044906591511366989956637054218047679962162910762101245538460280274543830168231822817420568412894808303750480272328291097033774944704959145412730166519618465221755127652983853933150292308205858152436457466678019519226380681288193259402324154452169146120181250128333994081382080843784516701909547637713294471302233359422367478013158532928163992939591290982341546627752819006492035086307979963754180810218602174474119672286957202584822896284791201909032982567660148316862983423511931356392318490735686948003204200069601163984463378903811891349614117074591702543822007234861099674170227845975170989649246217756715278635512671291079736648299746718496491479818388171432138569446612135320092358989388130271168206665773952620396719775249520890750745797966023279885835025775117107459842474245411180447074588410991030472180826610588901122107489670377469559391581723379433689224703949017661434782922394828942352641964431401103372126079331550570542314134477477060931381921726937212047534923607421520668901676380218384029091548277885917133995107995362965024521201981049546392785577665450093821968071785036299344810233338536074603672203354379189036897101008514773682100532308084403358187726791332269132738244985229988913680411044569513840390483490390671744022222772285442456917048406566999642796994358536277784478779836016867438931187450564378841259850618016623477244789221205271209595062599856055316245399689199223727727138627226907315145655336075238748460597222964687342975020776169482526140980196351317335163236844468719809721335221993825888185505841533167913150167742518698517508738681721670871899945851274657531835620399233874663736810009446002072987822431919874912177972259360962109866508414005798149490258378870309883663035438488349658230490644075833775099929468726456572671332288783156071672336368669722465477506888262187854830756658150772843113028820547358674424607179396394730624662655384949010779497284839927550722975147791624116864887009339088135782515411822517163305746155723892303606949233745929051761083384031158832878496306959645353458237929323166853023977688308557197041343204564766985541414790918941775983518380257848986802673480438193627211854080738926537383401004438505991494879317493417794411846045241978825173385281760337711137862017022860658094208019059296608122656838045067438329292590369433837362556066972625844761997765221704090384244503118297209057194117219937157205531609779652756479583576230438891538013638891772257604644103192534751292623131158365682725021302935202613208365941623374483232476256232564579645765655813204597958598351345570553947926504470433620291454582651190045849614216655370286082487951069869104255115794282485381115107240557171894725943599526716140957468239750177399923688812135132250495269734165135857590719721180568296898426296305656879177885572775335394884894616741634398080442661222206307140122776022906246250240296302641397028234169686193709550540650072438016042509418692862273165009568429239218073993678629056502752003881402229536962495739650894036703538824973637371108831157788631886723479489005437813549694371490205303767357268645454832161299035066776386810852597787749449092030347454011189531251206244367975168699820639931190547018648467802105376374606749001033717239380878065112284924345572731072338768738423357953423352533568407830014239762348646359013853708706239758276253523417243892569327373184998804143546967888153064664722308092299861848046328895066371793622271479304744645757825677954999528651500771373957490634064260799479650415160684562641966010448072559868301743439526169927611952749208175450661343668578057381427621030168871022566930387514402258133287798870791745194879007360703108157234806181032160229850926132948186552130895841235731072908596176844860548322186469264171020913097671215542514383539365589843163644131883610216908406136197830333775407466795257240120521818037891082516263485886372413541937968491886825022315284860366630895567667926672748212551488422522612585870301008370495118001345802457758668143677546494132364214635892470789158662529456632646631549449046303214217634694179092211381277450527557519582726640284958373167041403743236764086914966234386403653911103091735576618527079405080660253540920593146060520071611706760651701254937340081607188682759503922737718642463854569612829101798422417110499494959417143513602272062982199000282707351690761881540491059060812864765276489485491292673114886476430291253470213359820311765083039470521688988229381198885998074348275501304348302252623525079635931937804867171771237425493990847919918362860774369040437963961532216161884879054421373718320126227453024675563966400772194111228837248096507098946155088802142653006264802681750380330931240017703359527809034496496373440989694716187554022604119660603742933532228573261337051525728590615740012162093531722357278413810418988921784923259652868358263688082619840305297319274527383344810425407576888889447950519110236891419357112269274728848646613223927248442812063944571837909021646677543553915688997986949848376185658596479556618463105257150024065707201503622657682519402088337094906667786229253672040574462064458710667955565461371434583523920779963141182111958292700609827078121124022921150335070530782612263525894780570229728826786914875314467653182597971612159330660417223976658875610177184560405187345362807260728261764382909130143866641128959686716704892640004705955893745822556198040677142249835202285904942464138100835195736554253822677126488985517375478473479393077591730681970198583144822966335544429181478024901117028835066590378600058104380680248554934239050622864668447711143165854422842052947480437556099483341404329211270775518568220084350058111488823215916277096930444001260454643308813083790949405893011542200714092567984613808537554646425010730686263208799676901549099325026586292589700682891140997521135679103862204086693392431256688041291223212446423426510781484316238451813113804596659978489315514167757305237366262934822351583997862719646968732969630650784505016930441550212829293303228074947972956782423700518292186213700879159619668465056760366883588505567321297670095662498633667267672555106811069493404788179652175773905564680560463868406704361400500021313807831951667471498646150819100715910745469171246969016660428224866943612563726283050614964134120596474415937319193778709212266010416488290801447765958009551716185634977938755449151371735619155870293467878708669997070539718745201023399620901205697658030268008536714944420795649341399741970062168544687090699347388920673519457194817566404969572796226790812094903736733303255312379829548919477302877658712711652542473717995867784491231926951224093248327626579070681051483280189474287856257065238510458802245429786733044402065102848028385289167788233640537989522501448618081828562148093693232682859170024479553714120629016502850540680424661990592899982761819285408239797548426978604867075725817399688579118663410076532451737807996760244527430467019366286902639095080794430088269734700940537965892552444455429350039946794245311253431654231037851346836122896607384351632812261199921244171691224608791937744464678059736636166748647647417048676082571124952895768508551976969715148319448770701730031866073370585786709193370833586686631463726199914274862028138001123972234298030592749938841673871774449558825581624211865835539820753998612942536586612500851961161577238960204608180314500612439913951039722891775629933939412954379851332751722563996465697975976892869947174417775574129383658241328664356362830906812715541951612911061867546406056060990491489318631890522594886241286610154621833580477728119241070090319077531019625079464316424769883828755698224158723842046152400764401423137310469518710284215236175390307591829482990164148963016961409703584604614656695901635260547362246996805328364903295865845023198609568689639212226765355187707926474470851650482303973841156528206589473909400834406110531850914175684070483272104595720864750624609982401492072012134971511600904905731723202822872987957216420873300312073412765969828715163822526938556687357193972713967332704561396766025116822312684342158471462930086338692422453028581268976849458081559547733716831982736957152195012932867207218149415693936098879262448195034843302495447574455430549906560597676129476599055085879633297545490576213863452574439276684718251354812659498475733904629413789810755885462661151810926150326473490633723242772912145559940424141888573324393514190899738021788646328118385291663577467427600607498906325422174245221304341075438412894419337406135966843817298707256349333917396500242364015905796451301294420755698896181257697764180876945963663875556603003531638888726829390266124749502453067903812093507692097169063521414007671232672368994357447554332373189962360768947627182517615482897529295991759609294713861665970472297035561526285872057845654284119726417104046664389155702713478849565613607571198007201984025430289879972640790945081724643976361743339980178949323302576725692695015817657743057274687748576652243016736430956578898126621371307099341813392124840421254547185509182606848042018292348625117937805530890725503789085519249784867170426332530679277629130684784736409304351517423083420147405584672348436925053649438650960900487890555965621553025906923379297770900390686033722562141526777818952635983445737300765684542284573788701837473706065352608833501839313044901389329312497445560102249032552683985709353351951032388656619199009948803812693239361010744021108841789442480953444053449659525714246443327126858647220695527109554725675596337479525771080858985049747336295766274660645666920488938251112884319016926522406477575249250070887975648499662876648865966319551541324107462728660937769959413360750635998756135450103278214436707129737061493596048297097636047605801793570923170537696833260379082881773673506757990510119860077383676673620847577673080893186527522905129009867393686172841705006558364764953913692768514801888330702115426473399190934763859036632941347934177070257513776802353488384327878826089367766522896975242586751246413350070925054221093678311118515810023913418110460279202759782372867152438266594439049044791029121581390898915165192728852209342770659625094735531298834802245649236790753738421802363575803833167565181635046219110665203207056659559279050597260608919044294877039611033932895981169676475783194540486695649223734824634977434589201414427022529644567437112172319186271291686290684969034875798590575909379363077147708402996495456975118678673756249321209196450740809010713663361795924213805833570906488675052800558887768449682634888651989588859664393442872679302611358310688031744870906603179462878793467401639562135013107281566812487772299689483449469679351551473080227449506887824782283800488924494140484077711281143518136855144068726788964346578620750499949311133985643402047122470926781075988083463274858533722766282977526699013996030298618214703092686378100140839857156581407166485910363765371800097013500213237919815115065416612794650437613893473178473343386776090234111961187609713002298600125383592348823073743231818288861917049670057415846319931963107186752000046783802697269272147236888002960148412995152314681638396533793304630065365213426903228662993410145487448056859172190851267985292671321532141596330334495795003832771766929271604639502454350191523240086485158929443636134397533833200381745144055067301444900342209128916631180706066572935796872974945195669702585480473008823409853173410976897093284278052523487164555439265286009728194624350119827824692019916690162424945579360805869165755896397985216990234087401353383950369028038775739366972912531429188690071697681723864579001169680016385679297542808152980477468717100428141190413569774277741493987778791602149563914600154531063431559308382355456570199514344847490792900577892752372484370620372244872798605700169265186319488633250490201173067865794468290211156499598152417539757765444168748630207722634197535566018068852864065651746562149285818917059457132038602725220461592780250638598889524879963541664177905584735063714224892738443849865217421866756113181087974600161308604278203269752514285318340338975894387739933975837392183442139168000802987465513383894886500682620852822110356604318759331257624895701140393782985011132630771611277957030140192285436859501710433696261264533060682719490212993703289768884074271414485601507197319090402235068600935107995913545397643817020619244054423789673496321039762637237873015770004113108631882944808980540985380314242701468198093825242922998671963606728628501310901989467751879805471082354083077527224974237173924479134712354851060235083070838756057923413249703218201068898946113505675215383080145615991938889246051331727943512082000937701653592579983848167196801865034381398195343536942219144388861588917665836698886573551237592825161591588485893733164534059099384800694336862517539444939747078815650798507295490030837758445833447026399683555096025643785537840010327085700758929504131363238440974815170414633218489697307594880207954635598719977115727659222332138536546984529236542550985176290443356123869144593394222159491936913947144849781208097076140683494387153376774119157228616328918963153807441511699830928839646886429646554443950276197157949429529538713625238991238514619663639863729474707461271859864175272341298217624439203965842940606589819306810450322530247413309797386152300532861961667690061552418752269761442091757307467047724737362910629263048118047763001130774900881775610715218764823484020690123287045669091296050391322208569711182614949829636023467146230641415003638069379375124201749516764074621720016226397528971883597919663712447592468608523345349281573957220430124402356421676179140246741074157955574393741060875867015002712261920743590148666812254451515892419667636448303043519815204618059595665055923230550827457354162317443698739959807444699081851399465807691283490461816876543789778441251659808216787133893268700905761610277740589107023917018177600149113861408464059713993193468238078212748962622147426285932430220277157412869488842533036411200470674766385636770685008313297801599532422487183264600432119273714494933598817478802546871932309450329775944522590146941139681798107156969472322541611547728988284947641751311660621867956227043753439772088081006902908232397432453861444557578790858457406181705643205178135924302192686122121323259727050547447716569943891090144006617558201883940723362843129037305550277192569554099126653220734351319665994212881459012523893013752167031491387536123450653164864636157567246317676295512003976622354483795174673331485725824951471963127215291325776022133103087599221322643945364046775154006362037138311923626765101661434998617807637733966279846934230407010485674668775271393830659297442713054156157940555775402883247089401771688255627511651931378021652415739760638517924680523475053788208650527736416323252187542876608131056500026339571333481811639171393163288318545049299217582286101432862721876444231218032948673194194238125302798826054346060855334042253586673362022906768514515595623298573705723670471130294750595710949418699845619547248145161365414464596400343849355461012784798162346132463809503394255290023262931097247492342356645659134330089586599825923880617777057288639542328551719201960868833083284240008680565050930210847900789164267812924579472215027442064560767746977816430504393525083698312617962686779231315963168839593461876821850894327432279592792994336076751876282906893642543183064972599999577121447407946502300163485038053064985830167291735674704895138783300661091362972093963472130442382294750191826271657824414820330184494746012817947397754585370952819876602538928680626824130477405052000866646316284095407823296962176339717270298701652257999788458426934219827364583652166092223056003254775385362932564564627784055345092353763827627855240523715511118114839010902273969730663313415278503117239559592867330078500031358526168427968809248464421732930335582421079605749812107917094866544051343661389610065625938606229948992743556812538255269052054080278319134892215706410833543851655711967933589323041612268159021110876080811048236972730377618607123015438366969735806217281315264664424803530493577086078670494906298279619065154802625324056202018241962947064316831271464174442973073674613592400162765084609474179772192068938945604259828782584404982410916778926035964137079009988296943839660387495209617304590668500066323697491305998214675957805177194242251439520859384870916719426172667342942142001204670361867450553654828892773146918527620615916185890900073261665819741142205615870081254374714708586376107119846537909488422847596535050725372545088103461394662355077794171159638880454012123151387285431340952580065149140909039283587467587361738124901434483268557610016038582803251788938528543342738387033406249827623252767073880253582073589458620827562806221569939181887287686282005189453386817391123289481036610697683096640916391562489194714632169104723406482264122450557992196306598971918493399223762606070386500619209870327946886568228409885237096625433325559780292670820711811851732315812733017997197954469682649495441246609246164044953085571488784710005648049134364275142357327798407376872310132164481003617238738595583363146486928334960630878666175844797859123168077928750394728517190630986157325296145277674913586957813059882529480767984714647124158601478522862585020424100942018031487645406021874397422646731008023944114761522493407724034115985056616568442336864055432742257637618718998854168635672073696463822725962864869045015674446006384008498251249946047295100283310924724921352128580048792513987500971742925982013649316014465918089287403730622019053919217967337423483070846734977676402032363307284540267657700024485424236549917127805832142307901564839304225440936054548716362764146163370716425160283636080285883186692864123359561289493137237768232438543762927743003286542660753326195280683639849028962823632089485561965316260372121775068122827669793446348336404997429926054936372410753614301228608530717299877633781523676629687333205300677185574958765626490202341585990714992698169515024267163317186181947331651374598734704900296186983708559388032546385787679443592216533684919437736106373922012610974015168177304237244240769087008229533599751853541954522305179548977423736623619839760527561542733911891172924101483956983059383129194923006181748919674807500419177488315020895920275449034296990591527199564355179948401238299629941695926662262415997140967985155760116493069146702135239603760594634520173123701071849526871699245233516525620723385632229511613308354977908017626162931847131757783721874819018702975080252462892576855155273414756550964469726439843918291522282512974601290442675490018828473374887939926356729280539196458000953937436669746276391362339062169758207177846132934034558584247535795547433531629383500153204426123283863120041789202251309117856058265733293121327324500839479320947767593327480239434915109997370951283577520624516371649953578886204987823159611355393377332478688765143497691671789293306106399666513673060206563153323281920953640085741025094599226993220065008394764901629718879751130908366313309195474896074730907220299532843577816549685797959452630610698649554984406557978702060823394222977282961449180223566796826360362322010723202627652363140562397145408385609273220234979745359264858609872843801286904061640938050132872395619581345301879288401004386853986185153248147860874373279335633280850627637909305773373992020883275289351596047570457335898302398913920071478308270587827850047954067334037191916620039030329098203443050067477749390242993710920037652816692475157009365621013528388092364814401815796964672822526838642031784333569814830957532147606779571197610423382257765565244493243686657187420167996673542962167244389467220568116080481961051825413339627161884080765337308598360700254150331272479641375181924635070681922465288677971959720698574343332576613638982103738635773535920923525718395930292363989930354320816137070919004241388195715180067409793055577045029132754958926310525401216668536322953783795680169567038300232001311538495207144278842158462014834956646102841348437019628302102928485514875231120414160071748639422490265470316083014565046278503604595444763593136986966114622152122721646872928262041527947591505702448977051564400555054122285214563677509489399132022019908637229025136653848476792849912688353281823272551016741198390438470195185964543955641458202892850073467177225491659551662584645726689513739832495240557114483493889559685845382044539435279248402177097309011561823926844664242797629510837433568216905630148919135838806775557596150243734720025785766563175014502402068638411637319400567909948489676945158415614015460061305659619229727792053104975100608964225677332562327051770931833902216809479705777893191336628871365866949575752770564246420002166554079669461836539793571327315921264216989266254361698640226834408913846859150846030222463972626269563505845168494264681918971645298015919936043248733834293124719387088403274646151381766949748210926144969982553898240690113764690027686839168420739174030892786391007420378141088013300446289003380129929931160823147699967908216345102737395863304978457005516176325266290176231860746643436450258861171869520842925274860829788222463646215314958160263106495238717447840988563849036672661102684585019268604167559705189504260411836861217396104067773776369022137812084074652258179689472119414895195079711379426120690754032994907491059803333744300300116722922733429062625075888392590033291624381511146435452924883032209354780846804626500772479489470176513718418764768096250276870031329408695358551900152794710930157348082032849170878793883801246205011870226773812009834589182863784538857430426936426941853699829583111515078063164087375814856306328890840047461144733319318735870128273311515963917299832785992396750756677627801252724335772532332606223498632404943746532820210139528722173610470182536326370505251178096893455085608855352545273130025253040690444656477513181717608623509215753497926834001587809225949331753951693037355458966495125042626474156588852524116100330661681368860131074227141887552231793838022123541230249887294318350105866973584874381470309277924084822649107934883478314661445656675987838447757753827797066902072486107028286561073673310263705720107757225561783591871732238941942570992282868295235114852239408063032013292059501077892030745386707611698717713390383876123425658647620711967067167013752874632735460585417312195806288840664254569277111806957550937937200128133220871704686996004458741144213692710930165756989263205163371062944169866537129685434652457938165762796873435589373964525960262906593896917886573765024525183543337005648408510569662035107807116725521943927681192521926069165361354944233329164489775512713896021155115053169387147366184445779662639852615661265528096806525557518046879016387685412193980133464628953794989606025067143620650414367589450376925644546106950281506838900227334754074180937775734613884819499485892096538028223995789078358867034975355046264028630013929420422057497051575381574199060104243861785597709767099475680576679903669574903236097960323252330345649974369694543096832861557790611013291536742759611878974016010763706385561649427218395878050148404917918063756044269647444433613157383197755345973320621849600530310145905313869056665567588128033559388874643102316327273373833941988498893417020661085218010739969575690857430041435921034705218766566816564712479331972111461708277868701578756053830367796677145855713264467273228159474958366639112581498425252202324064975052377205133918136734137117900042111004445909991722725003709753753763100491392064376971657966794063997436862889769118236098511308299104253658462755688152256943732559358564891927983394898248728767838630381392884661364412547228740063874371192450323008106417544396549858575154126203715215365312190408463851162499545997911628301476742832121249810415731536420754385179868460768828513940764372158513812960432213200950732101973651052946963493923819525078704535442960848823416028326673094328397228626720577142326604500128356981088570420332056180974239517201539865017946928933317141873422358103829097978467987890454064528180961020846153910135688979929121055234719955635323320819015272131955457053139782509323366071726698233860374033717221668975280052158113956746220024088279270398409167391815160199788369818811441440822709352046230857692344842809589960360131422919906518606428060621525109011998520756829461226634707319456545493745237878022217954774527225463269682036065255730632984016963125416529836353104612261783770292841398533992880504762580960698635523227625102096291391856519267944829217501318359451837397756174243478877300680066285976326690217411828922719022066318138788074532515458368415294908025132172670441297744836561114845653623501098878699247985807162793135623928116057703450197451444241911608060447576383244919657676698227397623115667366465333293152026992578712449876303529603507503643331066934385001248248802821588345271598414576478538884216520028323698013010342876441434955382326470691951009705242756096387737426254055306367108305982946812978549503575709845397311525718767888702985008200914801572911373121228718037251690878816844903615765325099390412870244879086458304486949236295708448251072539520368858698185272467258999756556271605753408663830056794164651945765107192553469195513300803514611242589241487833343138231014505129180475124968338081260189974570685489838242736518923819289088452846764114468137074106260592361988651510870052490952813492621578871929498430458267120955933159733179421217978183868950234032692466562784155599934399910353654456078242262957427468311540965886292211129920984460919916845772674922942783104622596187652873345882715010868820021531021067214802132422167345089795178056523497017987675485312641369923538642412897101484350620019824745674374398374318961714493718799805840465328131176621706951627447264273941758209699543910017879343477334650725033476246654868520873867345550203624585097483926763797270316748074027784435363725848334189446342778089394893047414858061661974874012468414545508303371904195581252641680268814257841265734671822948188069160515070648068429861593705358199412197013446939392829948187183033622125571348080998495072917590647236319015347759513997156815912925492831039739684117233359288768790797788093997398934801039426056431386865431349926416713659742030087038920086188270255866272525022759015592148769076032585113316955135717027683917300987284833625007071164572589951448012591004333988387473127520068716923684682934954130705957301627899379195667946117662423718979147003610000657001539623235186587650300373475655605640669228785652752523903464974966483651272211365766012773199897779788608115004657975851303487268302086049093859878033026931725897608745149286569678104542710443264979150012062643720100089054734184370039878152763373949852959260307987264190144816303467751002087208625001747853259271834396007550038144669379417960385258363147146327950406280853845781530297348145045233632736408783245392195891913292282349211274329158935938449030787999290540737617996663298592325964071301229209239111840135846472044141242620849511289894088200933115190821673972346028346906370448159106859739780797598771150815971820924903864336469002231361093807599190588647356721922153760728039669037292666474388377728344850005662144527111089909809335980239536468794462978667184255892460002402027803652571941495564455556873051452758709802801864280409362950706958727432423351796655847905655383485070006121530681277447764102878577303296936188997297042519243420030795733092739430259071533276964496100680141728310661969666962585886499710345634370003065388151549869546273230613561446349358185639564092698514092928233869761748240713612977672954571005676871090039299344515336895945428310141812299032582715954729798801208417773329173066104015002933965096089067788093819065809580779069952765053657398599341568916855670642048439972283999994945488602335664039058134536965927192427238817393678038811058318968688616174975387382974814517367397748099317357788052479036783268328358115680171908570679843076437744366323344137630486815260011190265250576337397467961337221279597644198268566919497351582526563244351224251279679322152020779990911587620313499205239260304986401520329018752302840743136964036761491160266877305840783747817740277898382507274052425176481817490988529048012232122163875614444554108091537750215825754930212831947966274094672874952484116021526567854500870044774610533126169111265136047115135384674639483414865441869267699833132188837704608531036774421467138359009399796819595519791071797753700332947940156987798845706877619307382482442817430706047641489769943722629046818048246634943392015077718804537297395401717812044956450109833278259578208458457262975890097972433654671203561132707916025747980637049708996370059449299407801551131498863939197975422227866012501542097837907044665709612296588974283692219210221601600885712296326732385173447194993322045595441304857740923573472926076679218487164340025913076666064076275593796163942841860361191393542694394434700711106090829418122092832259559719533567557458860640973787134508751460927138748537170985924810576996144655504209223438929937712778443675073940373319655170835915865926783871376170939417155498900498398336600537449927311262007545889290538944369281610256246523884635299403529755265453613740703517872064880505624710034615272587295748378660666950281838560267172364621818092852116140058236477262497501530413063835869570198727321615065204120908394643534207660681649220901701313655183416607357071049085978735808095074157605018693514160430795081251501888771366681333570608186327808370947982141880121759141995780315197562876659977731983261811045680144711256948904963108644111301238607819714470224061968676069788337878049790071959391589597675401587146034613814304619127427677099572052648859679168167277131645213659590494290849772239142552813731176634595248279792005273064480242542534276135585041070403746107831608302376810692739707172416042911321202292417425894563449304976558854618591741586377005352056501048771961928350279855390584880883539156566528310007266189321508542292986215951102815610754261968385656839383889867501381240776171737296254908028519394596921334203621037616625974096947876505633617081831806236012439339771670886821988516425613493684427200108866727453655573908526185508436126570666020009844039454634185659031018134373886990092070611205471169608230507936249904899394334764056765071384362430076131250007130169162755643383695217500758863574104778862876623882380540405016948998164746918460839539565842029310597713535436848616211337053184024245963012041773350966333727113531834475427993477918799242079096154607113184098822746400903092294441383274741979420263203147737607771351657745525840869315937713251375117997929424535350701905933202854200623571306279990592337523904503096430562086102758873821594823636284699343330544628691493858369211625318153588204150363512685212744236200920403321024906444395852707312873518809527115825594445958437131710254754468957039999484411568191414797826813010623066802243411990072300765188042705094858347872300627556171655229204364910112963350648439026175763153996898584547561324329058554748305388241406440252024904661397843149764988195434379378461249421916940294755072191234387229342735764239377599293739889213199015793484634455409586137117554758159717996787831116178385282130751004797601902724619364849159828627179814380589383757240508908917149850270431299183236680473771722041577389380463201296757006465446352897327784276709148291600452227782162029971779961154239135687802365834462464812437748497060180637997170842198295093939415337678453168838359372003906670513460693870534415708676331844679112212744656660046397997610097222886949998524531527569662577388211919625354450849606004022876477974531864435670856433875336290475119098072360894520888099528232184030214571758836343974447517996364204573744624248424325656472278303530868045262618771845763032525448672386252676670653824616451673959715942260498367150855369309317749742734409841783542964091225425465360379489348854260533771459969518378383889347360833543354305910691442728788349954980151581203371403858495740559802425210983449089193601305458220566729062765229477212742330764328481942709993779711193325383923430343706677491311319664947222054278668140358152856440261688984690091953199076780568172970289163916157484166765106040712921447624450133729581375049265844280841458899578229223865248053969575317326236299399683695146520211922687650123614970537629403878938339234438153656427397759937425191217077331188638873463410675225040853912104050412746812038637966058521489366108284020198889974189486207856174404367023214768855347097636177039639336728635991775717493368336014754426124831739807599560683784389941358826300676943806294962925015110633879423796187443168160869511309807628620148712404714899049553638363608717822717040629955574622365432884464239229771979119558236163617493417440376811203411594391174250005834439898142618277056124582288585056158375160044960753010121284499604136982146722785370055538375027686011452090377473188593163354761940565318740939849859538861583140436418215555390804057596567063942099339402304601907936671247726793757287163542831111079360887904282999372520441689985872720504892399018799613245777321938890012627191628597025088418698023541493595186150038568911445668034784727584596527482479428430158356326774970105379214701460962604982138115198466505398720271675867184144159382028537728431694182267672369317515186768707689597014484771121423133197711669534232981725546332364982945500602863637536911106481237438672091028875101201470080786842247459324744219783406536830654333307110899758462846261610277245878735568375699064062690024766819297295507570394316582157061653539888888184314488850151077109622969820113064214370923790174958724413719540197715613643464128654810076930749179070417617306894015115165584669017876727952219577909810453555688602181711869611201656567345096625865968692302087432268542793069892588173985921410389366445221515023672049348817803381308739007151608465091058363463321896285905041802173941661390825580878821368991526261664618208020206569877338142048740168436220207009110145885938619080646039559471427241732797284950941988213820184496279933874803523773846919752777588348091303547679560543457591924652104743862812839079400000259399081810412596518560338202018868564994075834424799514883484520543771114560802914451511299589073631116485449856975476938047520304274851891129212986648826090621322261575943734066274464893450097895827262386030566675822195147151485674858917421574481097029433992059370326211890035030646771194521645214180432172402897241378602535776138725224259500464908037692001288133477315133247278388355773526274949840488992961053229728149289872248488765149830019704974680684882914048759988278490501031466388270846456592973552870962048448500563264443580628347973410096035283615928981431745285300013122785332951465338708415222448035638992817308083412104586206670274628175309606987622215571423792936294606952814109430599917885346641439458269832750009994451016068973330195305079360197055622231986281249034470631229798837806895323970791913634456494839175625310840814866327240590432057917511074920525837392599671845461541581371950801197834839860634548985049111591929998580724141205530572342707476511105919042120856073332537377765229146256508557914128558017980067431791958622156601427356193165166731231822687178221014650085893575721215688720612747195248458740096703215232420131360348189052129747507239907910570492168304630978233886552420787509790629567399534727806443125419069167704984943883793131094530685918887823769675959943173486881139243821820684448559622013380174480999839663863164517842117658137631507352077634766726965936380754717159995443356154129848862567972924794002290462294837856523838929642120259444159543400960661444367314643152221331896317269782976208680991848663925200920761748486462820863774222661182697785933797585043596953066678705534617725454592866601937064912846171217499460230015215995506389714934061456500566612805108584043725472648218529153229353084277871912467548109198819795520629629014659791886209365874280616985976505644666170662372650141516685168106737343013436766153715815761860123006719625251104069661248467410339391263122088668028486418952941674276670940211001352351702788812230089100777687525981891175695385775184560136508031013666885887367456968924868293515535686629440770721330156196543606550325907807686589752774511791116993248091612501211853821945040161895849739437363819065604125493824157130261511602389580188778772965955305973968203626777872942055297912385181656584138977954420994577385279701855314083893569769426731923225675047063317228225698260635138726428611429659339130566599023101447607953458741185971700790265823389140467541901753067733369636373723038090214830167222763058136238944773908268632340602396612870110283186581381035849978085816154939291635448828803110450188199462603767581432062681619079188594411199102649956889853874813558158670777806842670443127907903498892917137916001014031263567262563750784035357689604013707193788507582884198367127720100889835498207662382026769510741582034907873042878293729194075197115167294513660633225259650376622855109016330181054432676961113870765435161561422913293781084390524637315914978247503192304901696526781966340782343930049513645432137901284683472569993136472187515324663547219676844932365203439565865540952947461079566732263890124156527233231163427082756397525823929985366036830834624513325747121907215706395194105499425829786968090091892007287639711415434283523680458393576064900449469256609677707790723764256875435081861105033692460937573754341073019552165292431434038063919633781328468733227924284285109694274617721807139392232465154574800607358047186279671913571106411284449818089447518124789312971904706545858234916621043493149981684169884716506789503658097482409601217217531486909748856248569728103581972146127318464336760871493971955517229306368084876905512328854626098106175400219128572238850509263887381303478784081582393239214902433166318319898109583076410305300800881265773840901616847482693192287724812487888802449482656229013767245048244429540586823031678697333836260675080535101954510714542670866377329989853693731670840803630416458502590574764446038890301697702041560931542124405909568672055506349662237367966109402167095317222671387209552660205972792084067029170191631761011287771232460375948284538376907502905754829403431744944750456251918268897316482649410916771361000891456194784173527570816727489438650911561818162683777744373500910195601541025600208144150337673653695951376290938031303987954232032669694505636585466725896923702845988866926076664175458761969158825307419594563829215406917343349326307488585666365862819821466069424338112115351735792180832688514922340026675955964801179396217566581243417867612644783555108587206521576331351268507632847165692149183743173153552312502675023791513007684394777419818541394793156452659170462291181520265369231186857237739571592541151854518022944069212976711189272275501145527774750306028867921948733588314052676248146538416063299052608061685981825775545029588141532193479738395296550757164655236363773986140875543882685427170237442722587495187136088572787159631458737813753351549611161472862212667063260174360917908743021404111135565821078023865022935721511181559663756738972458666338924062463238312446798239332510401864859748457796695097224705018431723905304455647878836276878789058125676145346547948015329631041623945067080578535862412191586298362512089212120042848846224001708907782586230343320117447802538010543952868382892122579190422637842506857819160107834964650022951881533396403557815612954734351978220189228793555026786261432468375325726189848488834979724507612217645498979944539538705855929641253779371098317775146160804308592786220767160914694222611871225891178661334233591753556985436512383218894602328712137354110240797016414881897588792261533263295054464147126990338225662293108880611989764882533633348595712270091860189688877514649283398775549486386942121349953593527762673356916703312685779376134051736463183758769589040671816190068856855593846471451314829505345922350033610583574600316371394496457216301076330192517520317677680171803455684717902281142531920654915062277553533960428646499491631916759645342690719664671490503378154963656846865039599629266719695288200002004484104689626101110297802538807332020217716758209133482625119405606060385998168809791859619728824964254447496064237574164184356752751630948991731257276490848144254408225977385295386033410561519951348913541727821078062215830300239896674232409490840927828962886404013731822147513935825836001796143031492590563746851344055100682804522108868030843545477336996732397832278156820748778184225187924821223242742134861731626433216133986153279625809404299407801556112469004675686541226106419088500005492908372645266563130393711904247911994833987397565687949754507891630295887801467210392008686483647602425736236959811955577050057118940351512660124369539145920027081966661462650947534034103633369114719400901585953758178119029504387647234644018312000610302300530296233433206012911306332916500045863286683429082685778354276361543531119533639897284015337761496700494579283957778157696066970924332301930901678239122152725696903165800485977768915982910582907655188865529096231740093655137970115514871123890499184048433584429167708307708709475075924434867572445115435385423465108472648448895547177449841674167025139989129922601404004464501021563572917189831139660850522932270639174800248047311560320845203253118739004489831437496255472048116393663073056298660111443236692928291276483327203166446308377966809681310241698641002800966039825376174018891990500172300360867212685724385915036443894614577343506707932033340600053647536277448724880951764150987451803216969057446665771376337578513438949395714889531659152219640657941177968135849218726442851488824873417482955460954656727100629051974576514289314909389875308379213027456220587703994878873856787228511379439972138123765373231134421603444118211088824822948069868247396814170707027623806293649686203794842356303223765716121725080845844298810963120427866850051158578241389928133460529023603340430470377231589228243682904471877975996381129465140004458881471890372840031197474128796134075258854395808595105453750523709400769563766665314236268256511803102423266619689915660474671748601850414749713051855185495795958277915105440632930630814154722943589831236994077881794110022206012251427596020945952191095753306340430129913660037201333739858691886422331306384326461634017587555089627756724194750489676648439005959072481955098581928148879903396939477420411956152236762615791971774260294550312213161251055566365465345223812090393468424332251722573700116114074322799773341568445169309752727266219788007976874086793846969030719191985551544909268832267554272319704043567145873130512621439202785363138268209854310410908630317760440893174395694613617563430122253411407604916789428996850125155335368087293991243219786974141954168869895680924653337032653449679033282612126047753959373600934797304882523411905813151581706168418439755376607533772648108085040408201144125268985255285963284738221434712658736988106574599441764801770915727505852789292098630051622883874616747978818491614471986326109733204051659455214313693893298433769683201971213880790830141905392771949029130367170437013696407068431197132812617333776422268578667872560751029706528909482469759055948333833560889439757879399004104586357780067597452521146886382025684860288367019817660395797118669817348847512911566710321183507680980991747383908373468577579087000286288057524833786010826716414709827455125147219454997397604133622231556968392142586426460577980658562601095054115695279107740868155933768229539922791113564608736370248346159824523646697406459469701095627515439049913891654635545745844908327923988988448787185206037400612994032450137628849505058497618435884299237132237651542999860854156882569084432384541855067473286596730494454170805742956654989704796014662350520178123418827181867178813143834123484278671870843896604414067253548108865289795225624403400255092410201082713684849559512340717830030554549807116832167656078982093015484507599162837922373390499625199510304608095962745317586153976929857326870248567644969815180069338250652734654075902060187402578475315308480331839256146054464013877456737135372562413656001859561501783266964961852195889904032844550493784852354640559481901311521734521908602880777039053107039467502445166967696073242850230254043961923901766632387697712555419468821571428811662739533659806803156843328036077404571975539675117992208053830329711809979864954363707143278225177209999511525394180523401041507240322916375376763106769599182744593776724500145825058174320929098867946325404049434582238840290679039008000047086798786819235539722172484330989021289906325766682359764992999885194040521943639014464980017876372662838221861968279261052546509815277757405137328219492071057640950151261109441923375426158414408159792692281417139686814167419006631206093623308702692322999045331237604724533448771133609739987089232543030257279704852204082633717562931770949180322033351228905448984941713798150756437038129366009838097989835956901621089784319280133964526823995350276946083773254651738504101036887957065801197800539786547102221645535460972221412149313403683785081504659988859734757043037447239884191960795841840227889706099551657458234164212150034988115758127978445477107395468105736568389795660226007376628545605105728984466886554897111992918532710137388912338332202845846087470478568559355647353053840322168623821548854710034924993447230538506100736413133016643450033736092607573103478172548205233107045882824006230198725356249603979835108861915083401730580086202228635791739541185008730435781778082135880274479049203929951534722711337638203661851152537109110038692439450352699990375821402134130462565103545376295412869888884215200886855377033674476646561144693206453398197709587489488976634969516794056005718948350738999198918486713253225924350942519114646240919189313639350476573073400070103710059991514834742672193641453025202389445132827626914413277128101225975183512909439565190919042235743541624351767515603156258424719412669498646183006438648640350175437959926364400721930773124133870403549291507715875862918204124915337068044380108486786677917303655603820753330696536605863211685087954104841953704038994690086256479903211730380430303286327995073892979973241501570976611602811678456226488326603800784925733359208138647794514948479395729273302842261504852820857288465347715677267345212551402450603833202711103252040428639701319876056475608482660002301946766568503673531369659510564114966173563909788590109980453930337124801326960790667223953999367547303427029086300635598118646516995658129753981012754872089027390292410935621365520279014742021663525766066491625777974325321765668236808863383308229024588321798024542390044283151857274842369640597969014603896425016957112562002138977859315312627085519589190892760231670346363507377725790070323440246609371352212778246751375678750488711034658859854027608219432746766719399700009366163043717426940448313325066280939010374070487963555949553723889640493664204176044738977783822884309755628454718357378955797408753081309250945479286639004353073868054438998168644750883644480831887110985877007547688194080258880630729158590915643058349917737187194863262175278537537134835647116916761257433853931182729228356520534248437659793582622113350978236529810854611011429646246194909297025476071379668616194624968513492507641435016346876420619561103726231537879059119154456687712633739657113643397233394917700802577547199622808156750501114995894160439408966552517276198797613364667819594111142982873364763710686773063345809026789863971110438023747511616613921838291266258574389351646239141962727917754848455487507763479636616216813003692316807690067324866931796280934177390513549569162368881002427962579840731900699425969130894993181788152375917873716693990620827157926386582104002310413744998682321392036746110285465758842302946064135027767530784330205211462884811260220777212281223640875886445743112514533388731166262548722030758704068201736975575395912984923338212097445077586406194079090337401901883080907766041100075196750760974428490090610410947923856965484845362162317563586933693838941365380078009616228795976856819897392740978021796520596679251219753702779722692800418110590529262818903366946952111956534301077759763535470160201056276632507937518369684975488805595814674416393185073831974713526117188162422474008795420163458315813154492853130998739364337272153186857799615010577534167066009338862940224402014948819948041831384694607639467904557889464210666016531118450094421889152587948251821293301336230291749880179753354367592130279097640039826323935302871820867656627248144881020853764084954488118572899071483353224114887535141664862505764502504839754778548650150579478695850627838020715417782314702396583439440804504109955067727942182847975495849324315372881144310880331456493756410965106451355757103445034968284594337618544913571290647307441809879134874586379436993793328224109035097490196390726596053205671400501843156516381281648380247509361974390879251101172795545945582818700344007205765882642440725338821611185009778735944993571475820445898612137440278472962946996815039774263286344331388888721081527113917182693803414922512602395098445215833380729710526291802768417607956801198727732179501837246460011973628213727095710841649588580283370211791966628413318414962620163694294827310868307199506829226275208933117776217754175677204313552391710358297739604384826175408890989474153627062684506177698988776728074350759045467357848335859339926230125934433895549172334616069254868408966405619242396850660839070859332602104433051494871207604167384526517391424136088138025408341559550097782411408996494222510406011119108741813740728735426532499925508102596000659940023683773291386553482544070567958551626605092164290160944873779068025954324741702885784231562918826090744978572562933566463288285565729974074118594039152498013436497883460828224326396818360145311157838546467164799634358380618903724040563818641233264672880481231807136200740713501663239043290295934606921571111326147223045373637334722640342241781178696177038357093705965548741514800477555908175681653369985256282217359247583482314606552847569675876337720459837016350092591998075296459176565011414846921762207783220803124970839497838480058819442279433303370253074286441440375131740801857432564186952463896236829807992523922344456798517074812217109805023728923045812304262481292509706785967317538909312510019093062335575029993744354088816661705876205887082008242373334463189823187141388395761739284965146832090030916689921885541279441672035309220167999614966580642154285344845252277233877723180180248588204949204167615274407664639582604364903460484608795392784200954704078660842374563150031178220205313971268270575436366199886797959276836177371367098773201085260095867058242143809401072629047086108820469948612110225790615049215107443410623474520587735307278477343919460265883826149262838581132198633056688803099907750556696908633757493518013141476698555531114658929663556096159813676942740696145574204904912892532456302387207414457764207360291588539308654006171321159155469304184553303303263138244398793743217312839229588549233995206780185254280362155953528084112957558181709376154444635453381167621900458845610019847467165478852293737072891075260609743095921460633167795348911799329458527957321334056186856886945302474573769961634918168386290444934508590386184596994958225315051609758929930102147453747963584152868690869832785515637717499781910624702733710832067836803230509660114710102868108823257860115460208526642976955053565145593272021142219644237377243234395538033112825063049264945824832546399162029969528789929544165269991766234423710336079389756090744019651154609310341258075253573939312728736151053442022351870414300306623201388945874638010923081795169586683714964826383555639878851288963253442447593160622032407930485873299003807339048547897665519455181379010151268915952080828793165663983590236597079091909250629832764005097262273520591052866597272947128708503002438927614909602137470424665642242645767121447565121277105089999715589474443162792697964029706912891682755088755889624236575176547529828383538136229782619603306650559259482940640769908968762783949295165146491809319238415699851439180858979417115882021689654698722784809976091583816209298224320418735834764039331259748078903392261177290024446298271247131464444832343922433430747493583048681807805438366790132937060879093089429073989258780987749839232641009647145031781102402817607695055435495145194059956011510807661985560083119614227608746304085832758517226174028413476651425266444203934710220847639967970985506261586829252876975656817079590712941857673031910390556120821528038305087907186650709155709786656677480597236997012713779325171617418546869169899613828979823010639744915163707684800203910933728035682618588950253170107364528328767081881839554682979177090294136210915806941438381532897815854946478347232353566511986498965915289845937883090018009825905456297153535263764013377522710532751691417740301272955912223188059544326255694104386177305644659526660021335127127357947151042345303519009063176641859113596149996701473188259312145824694433935628876043428473863665104986416893770007583881948158038923808698270519751836810769769442917790431930680435964555816810808917880946163325107322941045231433574251809904503072078422002252289551675397902456084650151171716544619876844153714056353105686248077926461857756693869177446314071038210542300128909442495742844286554308467482674289238223041028221043994342487133033390934893149325908350251644195768844355098653668808391758359353328422928379281501851960308122609575751170815497001490524293568185629524360857294530219823286635978103531377491810584590252177790758087722974003581539464116723116058934507644835848683596778074846927919701603196631101359342207681869984670353902155280504631024906446336922362116616370964160989251173094836226239819973846564025680259250726192018816566800076923635229573030234249950877150577996435277885433426681531673026932768262235922571673556163503040433479640678912592039098974435733778598078508304752946486023321599950665399085193970713461175770387675603853808291757473141055215722434671685347454237318216993511544758367674150921475610091964718627841737150290237139835362084016511117048796252003479087685677364916564851121957430803078988003117034622466149937174391458354572787432225031016505811285303877624623393041749771780610612755346409089925713250010054954141835783468587230275152934145006270988963950928150567418846086458590931479818474602764784054355113213312946877646425473601047004996738401110264496203956026996775294903105373959544107207304969625812787566974794080566917435646440723218056122946444389831465676881558950687660784086095144415229839007676629166612500952381427366971065884922430327043337806444224452218206975490953905884422464697851389143056005985859358518660489194774881074005242163972873716199277691977691481352517354207406935618498198016105826436508669950709585812609290740563426915116856210380718128523963170850363547012704147241661647373859660122314600963043242132392930298830861591280345362438267057281161178913121747209950621820708063383723072130630912053757544601882287098825674388091118268047156169879697217607196216637263966349957115823775507324784664313017857988641201561223758378111034964877537099165999709116405035893935438720975105807113351583061100294439102011819003946753275520789461301466711274293839990007954980833173549318006402647519034738404079034494332426339925096022867325834599897286278020416307983315565334924453761609095599563618581969299613272293061382307951152090513995577088442002193385156172618360794918711433432615489860972000957248510449289975505145855390312281018987006687969722222247323614195578963550591215187602136068585584524604041852013997772608005203222124495197316199959518015079360531128068554684282814319644918428543364073945691052635390924726351888693263730352343116415190418105695101509092708511437347513361798720868482253901597288006446903636506612449737290674451253787594224461755359786171218748311768528589597341195695964738256174458606093843034120507426394370603815472796679401434246991655272748200693938284058392841893093428445569776626157907272413102997190241951093988136372320394705205653013441566772221019272188859417435067542613049310511047292545603965357059696993624093276675086774522944855343771037224836049242765159651484011647695278097648349439491263444924636425270431221643073609409944826745911495157396931590469692634308902990709057826171901761543276177788863716802406488921004869243420566068335542797177388558664690548632249169671260282355421930027754275031624790127631766805859830102303512331673473897947098264991831595004674940524990670568600842122718203197091691260224828469461505231800079087431551553549756469887085739328500971865443544156075212041729273101506030394799062244834387300719663951161568111456114575935844513085821823328444160525681661306832050135012975673475372137197062364007986725796758962252648070163322023577250987315415391687551671437936263954512827769926342662057818336658943107867035326050218691525420334047336158662052594423393051598767867757023235027392206628706088162271409004102172934550664492095802174896675673213449225699615127788123262939067539643118567419641071127187157752359959624621146688989091155810261107105367759604403892943863558648150626886549303743605296974413633350888771883048420148965478788480426283366767375632350181287069848130828090068911764274306480785569329082059185444446681961768417167373185011482044923962048648194301490697461145705194763511386627271898850206375891478386226389923184075192555431042852332315411188079834849979937347151588481290785849495916461146953060439599467230216137786800890869146742731400873520227085780203604564290972282505452450549675242897197936892918239441510310910227257617226648997018922389267283423034002978647147156744942182605490615181611466227354398699796634335951929254535455879723056090930449039226696556953650981506330702735576026448818555597956120904386407880563308534417398494375208750873638361448061389472002386678305942829537283767143222281254156014057041070629483640543457804022778669700889999103676931139182259412861182556929989986879982436274565636095974179388807339374396574462250992066619778240624910732917127470993765424994026854959641503005260849278573867219300404677255740380656488108919985415516394627794745126267353701719396401463575977552460523010207253627593395286828231642428715646782602754951960264271554826002574472537783186663250314057931998305650575704722679898854385093898820087310675880165519512359296074234645155683824776061786966192049444012938573844772694611065822491495987019262795893082572101706589023218209082366962526953951682943200303364000140114317349153110216680842358151208109054202571665774118096267104833017235771439990032361196363923861336379952193454473041166357591715392279290575083126448745907410040867358715007961255946158394891787415314609945522262981588324826920194583367754196512138710195259645025031176515696995485765173072593450534614491745418597957349113043000731881176835445827665245093120973236417112305233339820994267827567604889335334809718933827956601597960102164385443014221821149373063384773899637271290741719682881611240816833744313194560925173871942194644601632158278766597194991300714588803657074370488935318195645530601817121668276210934664600442493132916386756073327402124035533533599305213308264484945205054964601594051577196471662810441146501095248636358239632970462882742292776448975099900041842515556491171337097539105483499823887522805193900573905829331013759401882381531949800525720178621835755009530241170485044355361127682361480292036721238539241532794052748102627959858870658772167548074435552197956504537331406942004590725260280057791756029866158176660298465780703614423655439599672706550915780534471389109845276779554227854889548966308695748782573881451629115601246674758270431951716241560592870321412107521993109508588551520221288304193213012501419163179607916832217436906282351456282405686905569986574400775008006841060087182358228935225275181108642124693641689462871188297791126938169680827401597399869440619190124419388596253221226966208844749426014388633565019565867294803946348729514552079349168946555210877018604920228305093403626701138851409584946755636484269145223431470785380205026576518137394624748961820106716663709826406137203454225273058808780556554310555140346722335674341044615560574033532043713116258171552287114306807143053585776101041887354318328676465389598906752023494763560392435416514613592847831851932082470064266299099940117736238135124101637725881427894757806741672635962593552179562748841701151982834162600123460202542853348398749640565433074441446354734894622845150894736657670250680133834396456885652452167378950682271145899124901692394951044036112884957316698538315379937896027716556958050764156787265550950139237788993414790381448552432673273790669513582155393507655845712739336550789471269230341211129165911290718917879039857604551939456670682113478311512515904585554987817015228107999928737472624243869122255104481995534911225825177638672641013746031510210553530180326497899530937302126441951901629176567839906701096018442539161166201668747167610302450577706747682690305105106543258699124386963050391070994649839512751250326619517996898946289930381466086453774614437652371361745687152782305254411849830912992526098787279808505947947580638506156875221733357736883706120692660561166869669890903632916897793771312634558103243247768955538970516684656579300310664186133367577112647131341655172083916956299971876487508846911203156779285487487801896241636035923342359212943809845004468749555479826595896046800752314794244923108188346103866208516966661103258201717339558452552426695655649020631342226340827936867766392869543443687319584376319217810778111671503229989620300228118494227696111843957958602506010219833749611608184528832743512321609005407797792067762799666384176108158456411738606852027543604868299767513600801024173131032441070452867609327565216422421678199423069026847450838536394617559552346285678121238987574897111449376622201040793793990183383866829650302787830580930262112555796724607703316121042224925851947918812316772451783871961668222287258769672075327615872780426782480890068231674063842387931077917976363755930223811813796119414071668323647405364573264035483039365064304241427332499795858989108028845833980728576341982112820280178825644754031010592553302626274653186166743098056783273573576705989926301861603936089410768178023738376695811448721760277063099384005001641293427926813304194590173049567095401737858234341402199351408512166833302609144823594814103570393559905362348148991534022433607163027778382209767895706674712987039064392181518139391630747704220097806000759933813801361828200354925315725429159440762403501858817519114597375125997251718934286493164489991092364798941640587825398616559526175149944482652687124623371061075417666405214499637431431494044310167053773816425893044078213471928166937402411372974414127972962409665234035677018888346747891745847783035145614169072192663592882768204839328129191661636183963684711421027611462206990340695542568745048422074842579293254754983397551106976718027969017779946892971386699323889869573883793956918048265020060287525611899455879852343931036185725952958276074141745724377468662391577702478042232787415909941763155418504101277752170110582608401871699681569285918670151561923532870239569456911445926183135722812631313394723400508092168502279435732332477399638509922093721071763525112031175983102714199246785612208699657673250753193479858125474754091821144035046607298077071898543122912478288375136121270788712715869981024342332242413732886708965688539599093466043624617352381059630365027299644535798740771197613307664181718281106586907494969021703077544217655451309016187243669208678044949365230408644426528343778927626952625738918769315740919747920658661562345718202917978599188093363278644222203678536297306391257303886985742636826865919713860632678940489789624122618259272688479784775053694684904180220006518515934008866157639457386100783441733346758075583575178931336751164318269436564735446683783175055940636713226595632804935260688047626163466158519553762568530891515533673021216481484576254296934661895920361382419531376828073989655244299726367300449088920661780895386508843808070697611511743581893931052047021721696128132662467481301045549777986268020321429445763738499160509937299048432917283232241326844001506451942581065245017784016261535968248879563026565218488153882062616784778856371031616312976883534576530442034451992291202610149213218956139005727958782610263474343218104637004492922977030095267623776496500490684498129221985031362960701786603295993210211328473774388412610729789723143437455558392570909909607974489643389616886691565893119476018969631982544926428122041107273108700963753783925338685012370910866972348883696747490190134641844632429489203791059690004571163733617492786839293751148382196610975636645100336883830595036248580161702875081581754762554606433217494035214576709398514044911255923814393950436079857343329072480044238502926767169837509039584759109112680976245443916736189663090960846952849866991311288243172785424010688576442267293996181819078434082913479222490378721803190013036346900508456070709061335926344857177084003833124377510168596237438772994662330875107135231641070435874627067618186950370014527769699498031631206424945134655298898279493151681821340794857023536880137369786041610109983467624607467739510369406476176757086047327370055159580417798200609971778960128079164757925691028116305203531751305630407413415268027541051370322061709463646151843533959721719435713890417715638749392773944454710192521203309936198400438685908335960038763867711051123663098243671471622381127199099466223739642671547689262813568471205770127303876792084155528518697210830936474173239702647061832861562369192670429055386117315610743522635285460456586847958971458551537979443963512560463161625975619806491535961109389565225316981852317506058562182891765914745201390503227086787614523967452663101091889471730667172104605885595331130271776364061141387147752583642192659261328017206415770316893621113156220233979716211383354214944164936192988391683675124951581064125342405790550755577347301236783858021950055906439943892561094898545650447682191073012632964381994543725195523842893092700259946134079973365233399282424942323499380621613347682120841741676051399844956815208574595905108682025379669964916930121202454594997880304885491340079618513097869062418900847398465192900280791355438023013372008394699523602785034926010045738902194395716046100593808809706005516458990364869328059975424674126759071353612843398147782316829700047113575971936213977845903538070310106996669166930456900470800439819994054526975948909943512224526640439408296211534223093922186363172719518249111392838662851911805503422124514118677716719037172151548340962861244841539059066178459207240514227253633761609073642485382340734053045722351098556353264228721928157147547533309736289483988159824019174415162909407445807839911099628248897364495990415043456553825947440698945306483234116163632266058595926806101026556501157527503493462726876405989516289279966571562346095784337639514903823179291886090074755646480813021915788328278455972923389888370337062623572187627465873493851446871562082226008479939956471288609302407094301621063591863294451602884213826648235660895894540523295284935940935154767816554531063963894009025849579099860643902481262604427586158390813586287799049859638769789268439339919657867639317716231043548414951949263463344513625785604513598035783336575688064382888638394607667814321393212994364784978887731860105265849957855583755911061618858455918667909162336417323630573820474551403231741342093330650757061728890017619865380976389376716135020167754959089056921971042607348317728335085594958662318546668557512645279396917232536110556170850416659114448215142154703657220911790047065070729707462256913219467611100925345873548552492113868973174050767218149762728323380419345720826076746737495424555901060585230328596063230722604446680034599141469629490214644662068908105636985212448335417795946592237712211253330972711373318714253825929132570486664782972629636368926547877968195920409637238969643149847868437945809836968190010090641236921788265580825342177206073957178654547662535360130106224735624034521234532144046043677000356012977515441147308375592474113980159164944049968681785781320691480391487245386337433195534420877391159134681082205322911682578405361778516645080842489546152940588837034416665801029103162678256574479359598475784769893331561646344540149586137215964002236979264850191565291410981945099126513999546495738972345536101934924132390796741488972331815136986337239631007446162604055119752846362964143429764041764079356197394323725803808112194940448654478602692933225304416708948313808097802911999064294446918585467841315719026404035662992565473650921921790018145342977450959935779353672945872534625263075289430929766797876446496478743488429652473715774376445981292953886796995574936701651537744828631901056138400734751219401190583312866887476883458078572828196468148858721592686000282880046283069492004684231109994451353396306131714660331735389496582124747981471121204488117171702567690645475278732618359822253754044619529017977049976942427857922352938930456413690686290395406454317635492065626102855548111468843306989235434415950615091605223468713732515661853529779620018435761507546165011631367591124461759386680498475473631736848333252873315232513649488208363572137333333452316139934798730405556531875787200383965908524090417346853461496375883554469530890301938627492327714600092680326705727048966755088037053560504203721944430978253957457613986335787857744479900946147205735890870137610817384785146467394907284433974934143844067086145946729944859052458983855647004174282664807252562167641018686633619362062118956011403272241155763541802111401162281681967510438127155374264945818549165115087245426836962559970007503407920765437343959449066171716147310902863615275221470371617670507515682211128218139374405751373767200057195541510889667887104190984863802521932124241134754471278637888887218910676245727375628736903818890087133009170643408009588453355060961579127323016263449145205512676560316478643760127913775834464820257910377619818461815351312657317176018018286115537728433090603079351859392578972548846813012235992412095213089171052002042359480425967772521730823293115990800123977669508647745429138675613947492479014851387085711456780732481172393714592021749944681637810753519718287065717635145191934525642773162720419485731854725099754080388729491258556437983858396927929051929469700933778496791129197122730094449185678907179327630564012323723701335818467571758566245706235362333834279222070236991566870796136807112259779494015974621959997962420287776856326410014600957289825331194616439820510584817963843893019830289240097277257251217611052675567159047591221060538447066695791115810524213025394130389359639743369069852927839296195765242209725437156465971041836350309523784119604160392529588021242423206085014115114312133254375320675965453323586358450624934688430901986071852341486489994122107752398923403858843094882658480363366167898367728422395564813156982384439631084076290014127622351686979795936262092102705196072522708237111969346697967190806216043063737356077019275348550921628435707946193625706377410456629238633610062778386674393094278348787787332125252647974621109350258707554198385697866327803513631964915513257215496578779023591790055324580060265073171334179381670357771868501530873764441924295036726141223300807139871983139224491646831385816572702612483599405485973724193043160729977651011030589800684438979883584840177597062518104222261424481641451525520672982687341967535317694973167159916326645793652062620826129933259315087017762703061497813194444927161798401394895632527743320771404394108906232323961516323290667350794778510821161188666808061706040950058642312977680929068087401487899982979349162314501650811361132137006292726735602529901847463029129139350367706081377239002762315815362156998044784717083677294529423126419401220531413368545762850879261072264972749111251694795768451918451362413501104012190316324137434279098253972755112671029737793838479050568961085878969881073020288413223104048187928800502097705184340926610733946070915537055598632052843621757767812556621874619150146729230386687108233485392097247749244519873740493947698513407508435543585471955150073116240637800830937872766705528924286376900026075827814629276610701996714720398183601809156055419505876657632534646626353207168008636635469081678649283389424824548702659723807654268747473678552605647758837598047324240113485004704712516014539208413900775201923073556295440999337996552686438159334547884092667740436430327476699767960534924195264745036813684557662148638723979333058473174968758063643758575136073866986482166685103279866514015333625426567640858856338755139463761317172104418349721802058664695905041489066658763965976768813879455794035088217208308706689806037431992901924212304304753995242413852795193337612749185999905220538422612487803692109813283541683350365472820576048735632330493414432976494759649746989635581496668458466807237636421918409651564099151410136850094107573242102188453801126096438684858683527359242567773972725581539722755290024219946863237185713786259521812487162265943136828527538166235135211758388226927995077543176986618172114359791218133837668990479836272875670053966095871762219514376107221025977251083971250441824188648471114058161475160219512473426973898470308995040335763708604411605178211609652508506740217631855773379964415601706839713504454474514283571518128674117913616241941868762245801927945170670805781832476125492063234621938151166555411668581672490297915131053903158700496394191637690355142329603311211906955930673942541082189594478153533272200631724160674649619459334616912652610198763919086360994085270313749916325903365960755874415023242416968128369292579339961085447675895898808379924440869061374848215223644464211696652835999425196414319688674513913495346399469174108746360109146614215001952945942897822939517011258303414156451305090247147546897240009370439149678379618169846798840359702718568119123883979293785228442913780601297371248165246615299969138330760913637664053793353514126436294715344083351330320797883190689370229011756390887210383265368369012948530001189881249943696928785832662947661932763860731758109408087279959998005912507001569254514972267926351692486481782444110800923538801839501858525991400556106955867089233653424494930694346498141430115615166661236190139215605897169002517515381043034227965403135096893114576078580805183694771791984227424381821619525101357297801573251138571515784261382151772714187157965584758267145601856858418491734084816688089648349699725526286391683331668649954912870285595285770142722165174198041020472661655359712513385582787999163295569823160822860102980974478554419725803661675716608992855650369380673636937151582283796695589507608337994286897516804586371858203866839222494994681984740718831776529492005060239196198905498574436394310426681717376220319645800810473959791235202710011334768780428188811044895295399492137077794871913569630645590201711765637836664461942724439826137923388528279821198562246465479540909013586807597901144678654902091776108640857549585737825179008241378742908289270559839337764720746936429070833801173297162555121030748953415826501076412649121011536636575433156006439420893775215992936965999241561449428036924097319080360261581694286017629081303781646295158661832826465151302973740592799446878975866194898718413196067658172227002474171064796511609819343938552212489607325381872151492620110134640441969169748420879620030158952579179040483637674536131210055662135302626375671421352388866594549188776197857573399570145889493927202325568445892031872490514729643612811290611557683101085897940114342714917221710504970361100790744113092935484281570438009209000609678691088722996241845504097731917896912595525093402937643107418683377676237794315407758917550576837765610912256098588107867732756531110572704328263161725115493342987398600653704676335515800556862062240683739820255551925620475863389767055583196560104348183708577224877117195367233282908937231278223132932792390280662007001692999115672620705876550292581596372571430652722590682227119091292558138695280486425214610907436090757130616166272995521761448172318832266821291622044198479046239642767944549181132116071198779379156143044457963336247502362729920783808841582714921899392596857495232883665211672961660798386069339723286214976024905965363929457330539693953592228783888537613772264513501864676604445674187492682991615970677171938381940751479949547680635817774880212768233224377508795593312501828754254399710790219805221418150003297014116715728405505599301576439583915422326381007533561037936665410692456838679540803425833905579562527899007648774541280129164933567991350577977797515925927688872242203858371907214227939922671347447088941584025612222490477685627276786899676381355448791633122018107473355750615785009991552414183452337028693889376136474712136381610928943015840484703191165819012745333782930286680646043759156339697611061714007467814106581656443977958544724107748337085869176308783355367763965232406225216802514034201616604682271598668096284193524526314867147739797031877071370896711250999312888208800772937915170926757172934295222260917596650402002677201219576856593089406224135096202388272312192191026307540679410885023364353354855426425415138073409701513656892692101337736956468406172634553011477668747645963042813151542860953076775654821683764415909247470200558335033810067299610983464613803188475217576581549567231981192834195270538091147356099878951273980830586269910383668893589859337677266489466066588805400945304500691591803800035151929503668602744596055006398858224489896499239312871982372414000158758985515862252958875644143071975037182827702547086300287193990266305316829223571578985454637504179096530153790740712096512174540466968891760804370648061629703065662494327727050570635085924272794437182767955661617515557683802642861617501696978258487909388237187975584706594520687426919186578481584291959849830849405280060225965342172642777675435980049523538914399882435361021745837166965838390165497099245320221780258403822714175871385246000515357041070930756915731205707484039940969701302948727325937427500893531130389065462505961324018405624752103984254014769457960078306087662088762496574876840043657669965786251892157683230297965191438635431448289977930227252898238949121834666430127776914167797224263337152450606889787442165336829174442110712464486175273856112890089273034717410818593747884791605319697145969206612067875371907999552828483114727431818256484764283109591530920395721826990055803424311089343890926325520319641193357184449515790291933220347678001693342336577916253430621366784525165602259299309893313519882392198865532818897781559872215421581576792686035364825436795081292165408795116535315098360426403460443804124279521193389595098177441383401020679832490887953958522145376427712711109696233609924650240719975777678741255909618666156694285581257968652638677300794657935408278467273322012652208485723240474409846418302548739030652878061400519145615302600910767388222650941541396721793566147135620553435821038168908926808184264530375019861146266015119746448513695093741274059092256659979675559561901845736400715518258297378861491405184002568654248243708756379120436486295827470373866209424717521447653932919945525458164564470351363548300238178722138325082977409370451054518774709564883198356205027108844800423167279183672043442983738957355978047688227126754574914882438050696378467225276101731603647765732684380956527466105660103592790027364334090044973439819441950008292693930852047317960131668766674567678855935824913627978534266720917739746763956492546342627975459120234735015846594008924233700242592799499070364721753259626075984577901182933150403271419171356580800578552260201565615371745371789016609163423166331867339561542673516094470195034574339052485026353363467965231749542466764552660097609332534648460344108382460320902812257090362315292032143825837532003143691347744011786459699082919959234938004236304015801542729002450455902301988046343470914459554466997732626722238145563135030321171365741527736087576538346945865366680192685229097521327405636852451586335746203828504003437054989969342370149767540092720119027945565197119023556924445127214851601993097322255399877063630568955074607954021704217832017184875901104840076590925092905995536870034030556216560855709406850089628635136688666979220157042414077124280964255848394308204813877869562251810224685416403501073271100952342464587106525451014331741105864672528457714784312067370912950422388515860219131198897390252735251665369109144955730908668383922887273197749079820049047481110984928556519167702576679292784490628365699527926067779176378701765049595236078667594310059722920559698918661464028550444280098400399778367856571947374987633004502240242611680468836521578627386732278288404042301038552539182299888372785121469530385297383948845131086633607250451913342950017507138634195602984932379584856249830555903418636678894077545244697149314893671245025317755330386415813134380170272241467753581642925422375557415166736590477808224114177336663687140747677647329675228706438941528034001247953251993605101907666579632852625159273620022819193836118028975921783769861609651154480528731179904608079066978452759481488505445810434962692841925398364325583740474239469075615002615090459107868930408950070706872071802665054614527488003388930986031260017085067698768735484450599309127852389276002580497924798638500186900972266714196093932488605573827154762034064799758735118501425576098813126107305619070421464808093296641846190420238132353303102259208144048848957633319378836065020476781317131687931348413840991661563156734381665725065343190850343239060523197065802098393771836292295649831767934387689706772729256677898970320566573986609262180216593945421112038507959076253813941001508253070633885450696374778155334138971042952726050683336844303496060997380099856242970585318241721327916160830401974081730930775438072446949780585099771545692270617766021914791799303617407074297788570079743080351950876248739452923903139355891898888082219825773884158060021672373712296863457587784251249710615680181947466480306051505254319532208271820542371937512205154186964210065409346078753187261611262435745744341470427730560226591079373446602370720773836954723493772328618026509437312134614186479290694907360508266869393180893676195913095248287883995406046797306021821134905605564455853501400063125013901257270648457103142749277329949456346523402195244641559997103484431844726051484657352922876403721268339442822679398444725996709246932835490973810378853366152386855863238519060686172953335884398098792793234345769213867772738493870630979293099771257227922201426217056217231295051245549925271840494635313692319280974792671770039162237525635525263240379462708032421029776773288729180474340480408548893881364616233332779695573747182659062990642993197417971997255090064572799670397114558709037215669227902073881833363658925374712802219740018845057637081510778949839420739177616771016005723038878104034217716423683781213551108687908846059213192506366613972959384522673730567187549754983932993503244988776674657101588351191672113549109188616016412496579508153954553467322194146290724510872013063074807611266600826173059290094062471637912021847726403302686854337810045412129413416001337025443427546523978227428396265504169413104456167859202345210006633046739568629580612489428299930076268959209316559492647291922396028994905216745603667238212049712135788458397033294735162011242397184542026831338094108663853986081640722659605527444698258471559776145311867163545318246989397701886924998741986854796000035161880658456618955512420374339424773725703368387012304247113440225724077685509489369815459261533081405235599859757333154708496302039838139709181109952102055676355297697859181017395071513761041878886488410340937708832360536428515444641750298839206267983695992636819028870222224340950619612317549783866341143374572539729834344673015407511354271542532921059816780633491267986421371577560303684980844726910547990187117176894978238963184407103911857325256918164472074339030116234769698343088889255042693099664772402910626258460927073986760885598778606587059068095934694885254640567526669896528517727564629690203944721180010696729858846905215821632630642890338911055916117435515542173716257152565270039247612639799424151192830405551323249766183585093822895819150549582896445721369733231565707076388865630366267243462357728540665986928629324551379165746859292322115809795583660832507679494159656347017202334101814412369197378503327254713048040482596731833234396201019761314401657941449374148983567628102584058333170610515179869777708209617938951912574411050293415396122342131692767585144164113782650957537061601017467779818650532008558328789870569300835418938889639591160847114582411466800241833660473099288891489876358561467329325620948041979210830558080729894647313844830323003666778158355647603439894529831590800562458443787465111098203632628484064342544873734839941315597193674378717031037114756589342215636444954251619992777653563485169061871860571130338895640514111095022549238356246968676712678561656099404654103207585738828610194624770613232492597655735173624308484580791447924205607320799927476642902396963224561218429490295381581926286607506455892978057299260521155233726370708784400041932858415521874050561840725212589725681758899730338413932163416669518526612105820614107058029020367633790835430481412495709271811578508913279893396762781920195062637532563654082157377194186130071310091336366873918625632072071024840865022382074594870234952397838661583005594064751997583856192064334921564861109801676200317956806406265099742292548817284341056945229530624975951687126376104010271900043666547239688125378181418299766429481793994890178595552025980998155148919660128632334680559702454257765428167614099044560365773739752402386346948806555363599825983251046928287926873967189982455833451481916656513925718807449795875151536300339581661146572853700117910517461003856200303881907360018037070116927673419552902516206338543543048181837854469408525283950697825542170009886551752870443572552564874939248418104343198889218296160336510433001130811301616123652270924657605351471758066294945333376037449478215520105349839636270078442345961490569922056921518274953043818962863904930960773156110167677727033068822777255795618042781816794841176018898962547485987261119472112828360158784542029337846038940437785484070345791146790993525883294402798924539860272460352803663476737937648022057499338701586262535170769182556064040742556561381881629801017797928644357394025038266330127024318964843939185647949765832691030284873739781952764181484636024201366442921596868222758192201226239433579619241338958773474681269213381749671030215717779723651085031218356945866828406879039996403395177979850916483412000878113305643838053752949972028370313865245339353608642851102772948050901134234806197354071511162587322761246547988393357977284160446492136606538864047655091774027111095741518111465665299043538863362762365994838578295672049983218147193375848401644488422448844221528331023092684310037250255395848497672269006213247129458645357771542066059153708271577498955242358190994414723448838467465382054863050917545591630722928228117584724171306660827230210815665704243172804444020895487887701188207961449979561057087745276991549786064184237706163540347246481382279634239748663507031060493711681444059563722169647751580124509389023847337550415006980140689353568432092751595217697582650287340317303564487219135211659668310190006643177997908844455678419493096148633596739862181409548678417633959698262913772276000243012646240990806164711854015638526328912584528226891313890482265523609226286489094056516906340155469933039260644939441311944084264810622933753526967289850159144487496652590535034857634939876946618174035023880669465944683801838146034278904102455342303125724335325836330722807755462715090990353467605429244249062471687424456215424425369115875134014050406595905495600404879817814195719682977949209246050628265386441783902392075457198187499658636757622315240375739880481547790640189819863603873841856518800294151900834225335883238087707157566955055626205851315328799593857123648895622137363202778578502259699704555076662289163437678865094875904670513487905552143182168808514955757321638490454858190978719265602478737222160069216267355451645390303218067937834483992836450461480159706044097964600337715976430313791072404180840003058330840248185901833321372441697658143017254537948431135399890003552097520717684088948961138430018248529890645423211942056060008706841941299033435155386959059429189746822431246122950138684533028399059284304858738073672404049665610831246448035300646366026942083684439331428554362159853638317022195381964470349774005718526414408438916463123108124593175896176984904468371288511365384622571336270944595974070233323841334247716615175745444848674758791202412247670198896438392488943672704892353580855855229441539716077587827322528867551971505426171793169308780385889162096936009543026495789165118455596940984333056799218452584121548282219184267162791476259637168894087983563227611409767032928393053948520369963190805358715391660774478301343608052034571953355290809422363361300278632738409573215822669919448673922750581816590968610404138661744856507748581345796938130325846605255590000391755367875342122898481780104271148284735935011345824417411420151436554087806983294708500793029128490314876413072242247902465576507021295398931974115028028213065781457645645193014656192676771231497802853913299810415571193564535664562812677845799198407910403501479309582163922039700396582890790880787806696200523926300922983106539741894572133933244989286987868566314377982367954456552714858452947495185822878542637438416102591594747199839341544458733180143915327233714855230891318426270904327218513967929408202925111969801760810581211157108860033873371903338206510882245079576290850006497868967783012317900789538381442788532960836828209654278371875591940959691936909708208572185992530423300658463591750717651285629741069988753047389737119627993945990486942657760766503926996244618415325207616822944016577147235994291057929292405433649454182408057747164608820487012333824826055129239536315307382153176827620085765413514783146976509010077826408811817737131911398804844512754593246656647042020495574930202363112738087409363824343426683801227589699410592983636246420709410967058609578306992920323853794106354131889310104211570663759375491348533502224415031683216852402396787700876279345783375678715944776073243076121009195079729383341536538398707902648676641848437821377704371045667621386162708940547122448963686763294761249088397041968812841270703972424851497483331677641251365798022512855808553531587802213199200886573602298992258373709307821358292232865878623169460071586680965613923253572743300048334283339122852421241283797641377793314739799613317945279063830128211060033979665471510499884307744809675345157261921277880118675634548296511949115183031272951653576714520087623951722911333081857515904566044970905462126014189754568945080077556471619652414070432625546551351332870586738534938620676942058067828703775266678150498142528393535747968653704996877527139034344302644524728500580331027940137285064454591721657269161686972840187354219048691212714091914343799825115355074654960497009827957839075831016198701938789779329553159616114944731832689684124218366400223391762795411783565718355483663222799745783823677738802000910590851461016695881106439606425289231606300048932624711266803015883874599520273130348287756109118167563320987830206807341220402092735481216995141017929716677224188512123381540785652734678715792794282575383682779229282598458429985698967040078051908606876875223677518245430863627801418867887547784738873629910443889964219467834137476786258202288475302427066368679950628062702128708380648901874780866112573529189492143591584213238297171310598427297447362480146613519879262449336923467646901734839901875312775396511734284205262640129677989666020922966198404014335534758152501185344294378895837310821786096675371438898500590279167919973903152087478620961318247096276949463519043257953861192943646500722029769773101938777424490687068984891249639122112322458820971387766924053709020714114843340914638558003184965251545334596335261895238062301614755017117036653259301129036641661863820824576089354592035315599354213859125312019525307058242427274239352574146072569755214404146937334873895448886472347308941638601829496614059084504887224268438884214402412346831922177773386208087344925838345906072196196499853908682594297679935711762597981510612875909574614020204218099705460712501986176266684404733150797177496661176925271636542049246957161858885874590956250368028965163571786061147093779426749022388530733880798092773924806663459380935469793591273174931947953184292295005780927122505910325501183244573468014363760714829410413884730917151433885429043316952825390857945812623184322129512291640504754924059336831886871644717420448459135077263739763000672138942230662538930595282071733728566423253137444028172241894357180711569136993904735739130175478558509708162818956919349858547766686976977277229092628482818355366250319958673909791165587557988647441019677503465527193378006353136913156238230416627509867681239275288792327239514242180293323931483407242483795151917169961202107354571044457967462960771011911086219337815544504367512442041205005297612359023610435602652071631168004078933524430574169317702561288303955629576132380245255820194593034645066979359260845115041484581267923276748523168163811045452050697510023750567090829898118680338671314429150319522247568225881585236661556683631694035611292538005503146083350695702780509425669982221298250901295334285965166566357934166218545061513678821891363660584426662774891501394543224093776997539713604502473354078203296049052609532196098458370648657105061474668426180314529488683323412686267647087693212052537301052932020348666823566046386180043437930366391094266978484760557651621284440524847172680023021911155061299702230211311731591896481650137991912044550528722866653055094074636824922574110831019203755817036083919588233494545229267326027243811270250180505437363504545307535876648927885009189538567984717491634979889416655000555016169823908223355850436502494110528747521192539286325886962613022235730544265471036188403576703968622859778673817341277374898862096440520146245106401414995072887843169068082308273557323482264631246935947232602977885136319871288481004732753899314705263333263209711971589266434064734355595784673729349075493611714362172402679487980347193767436903843033224491238851737752516603892554485073474933252461703135064885008961188881466314552608931086167679589562716898634001681866010005488431715470742597444501202371202436227031938281336313874294319899030299076434231461046873182078072562432888072053952263219846663153099305679638523133571710031345549820999388968020818795723482161534383962658272850550860401497311264088424672945954540103456500361947904671006327430842044887163399160640505292598740590969273702657288841879388029031019363757317930282675989384181633453257711482342179500648670517437898927582784646315340951004124179005791296706388637964482397061328477345107969668622808294337242133224979060030370478226762780980467286535164853809764439395995838969250155792206048401331012452298309555072027853076398510841210205441279783533813513349640856455140699770051794576297981644172103960025064127000756930603598962193823349891296701783106818383313634125329442390214999092610774976126248821627788568040552461413851933468702872511684702516575249020937738136505634736715101007427443926713992881564199762936876401366895842983003129514166974630547691246491344496943712421112378068209343039761398446726649663863802017897757703408947565963613118467816287977253572441450330266692925179654858119692522881232854122725902363348124290292532692436164692173867596571789772941741742373190714503264414114897428947725235885206740737209182405957591869450930695594519609660240142280413856075424201293858954064275943495253253790573908952601154121153772847033220848187711511829240587104919869212756522358343168105641017829588872325422872852669511961261689145932996528510452022452668143519323333963868588024269008300419300783539351186921832918896644912196846582643490766486008088878877068417340803886196757173214002786074759480102924302018567822874821814644849953055706664218122981398928427456370761448873134634220991806025818933510217175842347291755714641591714337402243810206203615176230537206018922720952157249858527810589000508129078562044605144072360440616426237520439469282074495190962708459110339493521084269473729998017101815540054011268116347402791884653560889281343297645768892414692424403966296601126967278897114028414071487966131764686778936326083774981997186500899600798902676756031158134862541440810755160743130909275466685068819141327922111823150709469933172090096872729937174536381828910107255804743761300177717649268548738494045283270235265132569214223348254319961270093080659810756989199677619023933818775241827930904079740026790964388698379605452193447726356090638705073350658884188671082814419019564293933444820660855819187515108800093084863685339948698555951448554469677999298510776166846405021010474555543296944840063044737168662878677921060728671855587415085263091606924767222134604496525810712538141105445166963044826066777630435979403523305522901257673559064084032499976528820500412341549598237614609449580472673593227089273701511950636929767567241128360479920556959738156412774412627428966950426413868391077105893683667754368667799650624727498307879369882554134413625135325653063759375877651628251596411352083206333138776046869709701621414314879578312817215819220631999357292615581607945810233845308277728332109758393066752384498795427412773874102764595441625627776801429565687323469928277546685920858547024581315719540092383506082998699964784820224913280254134715423976325989605049918004058836173054392430424487591322273610187463066936801727922258734144665648828773548832217652617980615061433524321431777863973654460542820865608190726073847839745239170363624734298340561434823128704254462105938454938282486850426564037830487288375597612159967971615780195062710439019563827862053569179561710581290070918618034660611966349596831157563159820253604012140466235319953557594084668168877347102795258909972315073236556463179246135467389981462744517368879815942697001760744849855074160303098280178093733106384906015496180628908722805862897043749565246041844503899928352464166439499153722520642743596604210758286235301897587549555949543831402059439392884548071568005546440540081277115490516924812098375185588205069164870421308178913535520996757298124527198426406071998903485121218455695127004466339663431420612120357204175450878397745680177636377515070537366832570727872335766494339564026244596401542871086859190092964303919699349848657986858224061058144607890182756006839238863527253499101613688218842990699151186281463827467289652132229755656153198205898077584427784928712615986079277369925329501269952702169745806410416755189209585631784420776970538529601764490148799238341671630169703199585360047546047381855067389403970335416254674223827846100347909076019759502924327689947865952039917139453082374198352010584997407526933373164187912109464056827840916779997856141057981318282593810810222127175842385873893340717699828760160574948561139040610184325241736260882890029408553995118977167203624702515725964272419474189203164686267371926271007367936196327910003610046880910363348322080405266668478227977949924861892719556519857107099983262456414574653605930550111058725245434081067032726764634846959785556770002558440990815263174802747901424745544776529380735261785550013609291254651434480517196082154595042392311639237142862783530409762091980693276801564383170758195285809339169972655669951639851611813123330705599476348304171275724794546180585055841253753840394006141114561921733645653363008569949905901028548878727704978361293981137368678335009017023100435033340863252617006089684083425854404347054859824542848080025391124534581915915648146789792547671095348323956676771291954118366035218249061439394180813438039300727828081838167880265340426086879686095734952177501567928732268568239848528520454773319391551078893407015981477407869915834302524974905787892648569643919272323268809589771852381726520693050117367148404351642647241163647652362529037769550480919246478583802144040792719009621987390513866357682857335653948696267717302653314585597704823196476006958657102562315211294432588792145902968215649022466584399855285983140939372467684186254873889039698085093342111147785952230428603731622523554102596214693762836465818624444849215804539239548577106198006603815532536183557332997932786249402534354689573232524317339838138609516960688704983164006239047529853113862107410067156498487930960485712920492590716962498932408276951498182287513901517217025817691179269017895144616136884979323148756711815450636403774948633865375095336216777886259873806574449876076471975006088184763870233224272344017385299739113594120975628080280148127230600809180769157064730085680492757876630638523575248748633605199292674342174421003010976528257982887109453632737000840806606000143159132508736915294586385587429063163552569841221276657768839508064904697025217024694884446388217797425505787980649686565838385261422693602542445803257573061396179521461780463065736278082749945014514826403709030069066158950356184760659330124802544863326306040082143848054238251905017862989029315449645549246705758498219263079191522668475229689947142449214279219517304012764123821484491713386107766796650053488777369866462870378834409880255220641886645023019713082138566439526992336213906480098350096465245004159022444253366124642299858440597357532675356074997573611587012700788712186011999522338099719579714890575969627307720638123757865748407178731774217003842737712763405842490851137392478187059243128655765503712943545331197888159432889860531561853571513732583038958568409167533243347485524928964925099289331273351751617848537734639126717184847764262230510264778155673349145719179684582914116325880271324280440172626973896427309184970583460736621910658556979263317868357656399263546474417965478760163948314788010691832612902692897298463880732788473638378605191932739613504153806290093404240494954886189523981400354461392381884693282765254091588509833163187708194619328797329671590097854239643374844242313169482492730935022942959803994667183358116053622973683887995961230410075642316005641991724007190490650243935752974019757182392787728158386488877826257008484640580328334943456517985614911330055650823404927954923990729865483659199491227745314027991370970273385006032372625453576430075917887957486480696452856594585478545651949997322672527082056888101294385024123900029448760207889479980772715166672009327845439146684502675990712371301036996681836499582678762537894766736714251788732388391642235208100836291639768939320401804092137343298975642967372067349723299750986622592300697624653028262050995526294151929783832823067426969599113288107406431341274370404130706513958173524570266462823629802623337057563797681182435477963514824900686389763614693038407939689724985213313899577862810666872802334217116205703354420174590943842753723805927139186738811305979718919475187096318504194188649879319167504077296182107659620352746860321156267160358178770142013747305072120553353405503087600799467089688677656287915345922854781053200269771185557320788713939656548293391946444402959241673530554532764480850920752680597472576374395346251395981005603155958344307944475143308260573747010104745615599091763763796044268517202159639591430513212666195996345208069247657938580926518746944643914436130268355995064789632524883528539534293094842899294708384061484162033509657800585218188616751310581188537707846424751471358404498072207927806400535299930183551647051721015089046473288202041735213670190737801782341997058519078003888949345910690861792488982827595023667783501801913883508712868901871898055396528313137859229684590578187548955158586472784579117976274119812788997577985816349511892221713243158282663245486511000883225033010205479776387396841909876948979000435177731525525467294752741968828968177036951667018816115317634552324317022541967869035262132272067108416222196692941148357860468304119394679710886917947314424510796076387192777577512886836240533037026062972213182999931448675799061345774722939574397007772911959713364205128276403946751619840041471954447808113383092745163640800799941467084927806025970218208468562384261151640127608224188350192281607658414681018406939523461540307191071351325063244914793636256301619005575348478060720183439961759779026558179554884703306138874537363952582462351428584131207669057903954102235314299047038057808200067320125461340795682136973256360190430800574535314419284768818825672709326850781027118447315978926493521190700606588749998328960375293185690361952490333997053658970340111710566921882481809785304326991725426817858583438215097068317593428143656489242783879566280228708217440155450678935562263560205534509512705765879215374046964355267857539968947371167480399964830490926134871626631948279435796109620534489398699326993251810888391597584032849558771472702964892584331403456011703327268354570554629193014845696718088067791144644283427934276275337831941647230138295423109854875953858097789235886303763637086133335630935773544372586074905697083852333381838974732411436248774415798681663292222836441551335680220684908236648768092375449065240511669790809560538753683162546991174538542283198598428882826439600290902924377016317626572722498215429359727768966018557281574684423259448033196482653373996969969650436860775947398873601955601691023067253659544613406960036985564411956393225914355767359106430895751914326432888966117421520391312399894228564033696713822541437042196818774900734514997085928824381832722086833985340134733048735264045928910210461919415604705144622138012727224787757538689895773649220038204958258472811680157597520893818371510527494091423435419371384253817901692278070077547550074638401733575005756417555605378692269388454844408932725278758539541516191388649233757213885193410849054634247186823150498744409183857317286805210808141582529209087525892457791396354264311665754898952812492126984108816493063434386277678995888858768421345143151917140410211867985822663661095420229564426953964520142993497855994833954481082228139835838138578452122965604617953529192295486012147669867040464745785553412836508159158960320514849484291223423468593279180073978597793461800210955804586069101279926125478133459012387629376970393903816702960502101903418671214990691717970860694201178278926622579115923487107509399048409184153732006889726126703972783391676342434657777547917863565490621368965010953294252377115148076354111653846307569541924580851677525023711692336024288439262248058395097235552723954187926429335096325357771244979187491895569745641791425022402937963488740524406381669652981590751190456570185098040756648962143917383576039263523361985415304343540508559658176915964922451521518933034345641196306522777767196150233110863726294507817597716027141793561944752690659755343490560964077080921782980060758555265166301250436276819594373871169591052604580790592353540868405008079663941085997339649648952058016252420843161749156400212472953879391249437507750810333351868614945267676237235820030553418805244563363961911390976678233427735759564519349943698734650508866289949055561703748941111357125201049617924396196643715883038231457077745658004596795923733112456545712374313467322957815290527722000826767925636558037643879214400303908613572076788062256292581285955665686666938899341886097228662559686517565346520638635479850384548481655554950768561508417207825883091368531963447768721623223607823723722707571361424728779795526746706539216212586261662614620605196696734361528702152299463728243268268525926524407364721798042160473298240473295462805574163953554626935283959653412780452527701037528760695057724575999738863882338928676892763765385587501873233719556904264179389751646301174780069243913387495859893512296179997691745301419573809920528707900656911083803802455414369651406491022214939208440188869785031950654653135889523531452432352043651205121176842457834068127598755771062657087608584485145414356635195210539173714196736048147414758002483743080839215833457174269094431800304677834454271274121472116296998196228312303167378606309089061902907197869202604987827611124079346097646265648286501733063741910295524444536152021453259419879474521771877114447799334645447949799456542248775161268576521754538539330980926201065772977686770068483833785913925818404153530431355264203475859805053795907573232226048860532261361226924264363693761782786915359078977429912442099948843881637908814036048127569548891580135016903433035841439902439949124859557581384215394910646691520411190165649504545677347830999441497036400690509122660016966396850916651373324175826666512277061939499621092791120938779164755655499648603730334775183021314066950154804717042223093796688363820913101197640360009997746405448763761821283811408163734274534797166870478830142508234387786429740777943079019935913625781945710496562088922787935593414625739286651342438080914992547388741567603109029691853329641761588511982328065643249556312890946593683232161273872545427070926731302070199556778396936767557993590969847377882373285988456842068502964469415249768500759963220170896945283136199430012083394178628591308650404511230284330201907446389849510764145597062838590081997898374549906762435460460501165822110730656221983821200956346024460542185937349558991517718303473194740907635239353356610943668947996678168994193682568380357527130364693297750231761128866301541135026416052329309573671735073175289835759957104747565870879934236661240521502252435737978857017555267841411556910358912787691212978739794445357627508246578737486022748318611974647357911004728942977719206250670617786521435874334278874486301777953434175747638262078670222261670743366982908699895076182987745812692097944392053064893141587589339694711817639905944173628215715827764977379313069809699229579898458773509564239998617186957588900995674276776033463643418496812526707288472653476581926698707479500299915921194271719908611213057711470990217596301902178160943041543495926435384212939633746471262394222811918252149913419551938233718465365444998079732220580285000485631071944776476712222276047728699750944093106418535210791887502759021460767794948618082220717509604968315330165309242219208018958132031876050411335465874271125030389823198218116175423161902431852907806358892218536033253672890168602446280735475245241565938430399432000578948245909003226438287662842558901779698637867368473684930385897725967693952962968499588605636022032704597581448678906779375194633475440771350531811303106086893851477686468106719799905768747014687451817672079041432054640566393978417339736031675181728954159776668626323546124289308931914895267736127690654169440454477989678532433523920558690938454359883482602831899304292937758935722947065385594486135092615251399141677760792419508781851830693990310376304673613752685263239771039155501811195010192156841157648447220562715409727321332032260626891114721616779645473191941706072931405598301585790924826992915302963585526620980691539884679982826904484279870353324021427282722833438252375488206038629968845867166827180784916655870507559370709869779058583957502533583102990278334023005873876857589392600306917184875521189838518132005254905483108982984010868513333271676931287222788173204800468205585854878710072124666371812182961175431820570779302389933006467165775045921759039201101032041139795154503791489267546727648625307189301308352012421718472852592015066276702175881043342919205921280016417374035509628394532151256081029622619649136454365437665724747491486181085089488081917599883799923876125575798431512420961571807186160673917110167352935028030983872002003612602465108014303875287500282613016286727838684446005253716256466319140706816948528579463998115776861282143518264642109999858403573824074414840896950044477131819957647692758858561651202165951678434779475705813085068051048011461574243108025573603180925411428997165232574297218785121480616941729180478455526014861856250504877418810009639002095824623500454537217670752814770778048222492490577490919923415575264236406905487137496350614000341360147001437467218494269514740914896022038377411766508491532304728764868102837040620847763178541794026714500530766042833803349740103231604174861722114734557329287268451359603999021465784107841373058455958056618614468366604396158993162048139673715839730351063956072971283696904744368897149938746855028164183952687131450652950018447610495629734997995021616411560346601084775830458531099199131839563904678293410999923338880640563727134434431286869939600702044337033866321602174731707067862302350465793088753108486994288650895508487247867438844416294901015378031547100657695331288564108272012882922942104568660243369650730694679001916758231822488380513956495753185907743168595598677448130783173088956989046775941689881044896444329137059861101626700635477981308713529360631153292302051868691816728552823424559298244263629517523487527519977155634375938891068064824674426736602964680342929402311378914883353535351614599020603284790138269045409314116061889605632653092986381865078618660635324147130659376299428577017161808420856639589288250331721751356513388168416113735617962703783262164880861164690510608573001244731701370809795719644720434350731606579680198748457773314618140017512268095866403472425451460834276620814446474155690717841986042648987475586953214160925214832299458573139858584269585486795793441317139781060908434235957300787761663403654220765023129629498903258831484553512375952346667611445720791532955117199684632514024280476517246557859650596945964577430581586483244205914707291526625267343570496128777653808498236126049269792638391354275444866142149211014322744449086275435605749713234010895350378773889602840835868152641884372258367380362515428426491198931155130593446426851258952889324824522035192402250963755028582113397856076456650863248168822374133059534447325434963171348050426743244232519215457298969515353885954796793279037220169072015556573140872919444038797546792389560200758810807616031001262379865505534923528109855315066777966649835879612070782850873979612426368737066828736317136943220419924806639124095528017629687232591612019306615712686998031320246505513550969981739279766892307487966736627042520053203745884626713874929139619661549717061939552502772624638209278045068874987810323022035566964345712717391542135754722460303445330623811775682091750086009300826326470837974961505212710111114737975933924093188763115419956653090009245023513951254537807615351918935879747022753001293420858684064466398293149920953611822132507585971452737954823418976767682122343365837320877609227161218163925885876433870329099296149961051514451653169418602331584640969516922658874363306487418378032184149901727408763713136440275188728113892915072789744991603437829252156585556707131828974967669604367853378693287769831394422847586239675815160288252787690659975907401116254584404502455928855576157456641409752902099880420377743317614471236031036879479136282178256844254484546253394608403724043886700405896350762737208626106920290297737560135329111730755444353975519219514887947176123774555394740651247781766734538801315659485082634948764149921861975359068135758769667922351990743399643018211919933693105970013149265006268926931146890918181215480692257720748951712873030952952218432353804844266381098687733721718639894574963866072501822786838671419316159741494808607612501333772513466597679117175394605366784489756666063049325195222106220777631446052912447845224116857041170940977862126340822756282279851551768567554618004714259037800886035505351358054610241618178072813066653444120301715447709964076721694231809763230854719320622905948438676720939531612450178138104547018552605555838306174569252505196080732303625711759429131036301635127216498321933249024704779808292462387805740072064358674460370821457067479368004139599409115199276927985192116544309285640059716795956437500809145175931061832216907524959391055418710466559044099419028146539198218010340416096088819813707230129042301489459802539722711427757725895469901312635958429912834472434984829635764103880064945508146403340187609732241670968072365361053052705548208654241895550604474507897803446820031232759470317852329936073610194719603593435578425619037596812298346578841366848759681962574251950196764268335772479652723241880871731887489982391450139985985942663004524088633122166400289198727962451898806769350059902054111545882627708759106413680176236397845564991438707199786832135791808495046899828750738410700963081375794051771900868707885440707758675346810126539930311959329323014045488376183835241982482401849623030455239245811657768303683677490901862163013033523637180613702308342905828050644500989906430605640701090929317449398626035833946697036180963087328349708579583897101235015168371281901597408395732399277265430704214936474831633666253571472888526248455569463211930732893361660346043420386083822109500033267335566139426389031152380068972562541071373101136020857873673861163543456491046549467724789109800840266652203742286201931107450688960970373423505341429496163298661633776259155738008130210596588254183755079962359684236663195611352203044252185491976544199802657751812131530942629430607940279055392592969641832233387946936337064213795311703296588419401609504826488277476639932380627398737554810497906843499706505221397450402640587923237430766516015572318829898008603691875823143522613514335405311946497578337321571822780475824216329377475934982794623549372745997521080129085257864062696215474935907029700279877497418371289430060054010792672057518801025201458370588366660659473732756997591244335517754414716601332386148057799850851184973984327847867512568708801276703773445283142408603651804428161457972815541311256548433547981326650676244564227409427714388772902585411019394666715569987374279628944509202983040504214303970125640120716998938655851510078243014104583634903856758203308843548660821626650334782362039659235543684393533924107828045810648837347617955144398275463117441383690275888646196235468143726525887677516232403825681286449784573974836656508456087841158973325322084383890073415442574036291566556712339140537326405087690418123417931594017911046622168771397716854670635371809241496327174157715442951262145101683743036643460322003897132932577591359630759169471487639938993907462449130391871077562984111145952451486006754656269066072421693468656011343295848966118801930583539012575082359118143648262632904210580561975587951319575732765892252153943373359723449709183973127404072486593612261749788200851769416527166128935689927388532149555339001700798991791421741643649895272408113446114269890658140321534911723942487643736346812534243034424941427666939311846253826284577736406254983905149231326277932833584950577681065263923542238266186715896321379311726033419817421277292959384430324304889428374555084945823831586871752678394879281074588816561945998425986447341333712007514105399029408599804907762790408085247589767671037677500909334543874034167725452532646265547542426659179589043185361330328957214994965613552115119156247520306035550183961893064883864401228496039348057743635822057272654149473289450733117582249860913244786389325675696089044891557568810470873900368572297755977487175334035471436561717452223844415164125713053184877145928564589633232622231069806686303835361904040487426898410896933737250213596006631487164959925414066689937987545392128574775967814190779397180713032092202155997568765800782877411121071222968480065300494214216735733620823734581744473529923464715537334524175904768213327216791070738457560993378223535725597945110165544487533445415015409091019994301442382073656197246260052181850113785796237287165638816272402080885819177835848749326543252142822425468749946793051188979433618028344657322523518786019412574752819018766875614169056933531991380633558219189586945958214300186265364293657687870645148065453769798874670189866319242450846753869663639014450545594023296381740183674650307659593306406206904192600946582393255948628324406453530835278599152254049441771643291690840077809661845649054841340946370183319837012245481395820755568769623090935313986497950851515883017266759973200837864885075432559244117086380086661179772730903143653024149647751647059483633517362173888219597681269762241925290189723492436026489746806313015245240488314213488503264251725059984625713228784035846260253591301725284670321810414553873003535095431855827441751059943520997444556323078788027107791850568917112570248231382082122225636476710000069817306570302584633215238963617488310003626522468728585364354208466019365581247679177332152170772405199500380381736317252488154644439725921100213829741326998367792658401674249826728452496002402408191608865554163685790707381211877247553227439604648210616566344924320085253522983341798829735137614983940143289383614737682223745846529119276190314461637987064238993190551326496585845097601838048148771282077781252762263126681110781658329917219207851336809948464984136872172503770875394431059998363262338167020348983123772107589306555843428928270026814380869417972536419088687544615537073540289687531824122429793416372072058398767171299551221824622467536346695399527896448440836979646848949141874402716610995671963635063219304556460876864298102522803206903690019137148999371277175144354610078998743557540407867797727275585131140306804202918045299599244497506936367688560533538432975535911339053964595911469667597014125006844204915817963860517633595615300213138526424516609140092377721585515822360912904795494136015964392164505368737101306986499772499749550949859946850397507728758649750116817815230159585136132265311317072375732792315885018487991921628120675339305863542817247168340406648552718520925777963447586152089842219106214522878194046711480026564090278683595626010876511750344980057658992679660135122299073296343721526405660288564868500221963431804279686764226880620104657543332501660608704038664280453785398052721041463522923081205870197904742856360017596657484389747107359886462971335230511983134666034128837899826481630581334253023162429679954545393322140774485450177554605049498223261838753217286852208719107086414449590476054153173429541907590109626220593668294975036080848038340473143372888731754612424759706076176609833163799174807386284012645790158228131923832938180862916338951561703986423325214123751495358624273040669825570694825905301309613093283811206590283698237702838366294601152283567851552765785746550653723401324578701057106339220182087872529796831188547634452716839005391895481660741972412610699927204619888485637869868549173496831629513096168045405247893058181977651071856171821548355576524730232987286201530979532625910969096606901042893177073533281895954235938618939130027051233511190497574081097309916069572258731612654314186950065561798441696204451632678926497843859674817628192512248541741283391558314640238699937228501284514148843154340783486639267332944698323980813586155080786182092924964504155428984365299379525673878110650370504105964770084414806930437598523739698000057166691316073247106775494272643459694971850487950036026813550581632781329307850687683911889342452413393615084976093087982844007883779017375074137378909507340572972057165101682259777259559920180267897348065627866378001032162973619326562445620137016111371932339661865688100220468563351627769150684937977175902142749251095839476592134663189541952139396147501490178975149295426675822912192859192298214224392742637392658454325456854416564630065404590405418180821937741811853076053515040254098074703456313238106624815095831348875301006695647343842942465937516880644172046929452843107498015753373266620982490405988256869190865544810621891444775064093767789764561772232722325014667309396059902535669780995672427954027677836016362923650484950163161473813422197723155582259989595587963582477683148528057486926525830503319906352182169903854082225691666789219175732658130323321231200098941656362500644300330317473810535410360313923181369615375998092054151896157258199991921163131607433193807032237202054953740579123515472335247553068480489626320139375820287465892527594228270375582343090822946802939820893834907278784052355311346568529250308618041618031294263357060220232002597951467028178035829204641518843744390999539342860857559787930868735053701281505957179356258874554872340345362019101237176034245830506050892984686414581817125413101445762055039475202184721259104626804345689059094906365913139086408333098036631423273001515397077304325055902613079779503134149356579856479017473967005852354717884357048487024036316463063006095495636246786294010924309814043764568493404867254977142914831548479685714625745571198214230176142575756540163325094181064488375531194256657672920703659328153299248117345532315979842644642510818048687098530838843712078491875298832907037122972611212993535716768236451909374706068509890151085006228683928277900499178333126605786867322800380272086376628214097230875263353972932703809194933504140312317521434058650063174631640556021222445406950958760972611796022357034454133519374906208657830727291612625778004616414549366864051178341112670367175307011682021382447455405429125069453383433974161335875216748410770327521933005524971954333833438676639336416097404885709819327000153428502466788171395574767529885431983380038628699094167010928420676409358132752571641321740528308146198824523921619517968822888823335180014385390077720045557538369365767201513183466304683890610970315018838148679793256261710515662752285036075457957319807642826616009090389540007573144973052676379462252474499528598876434128486041493784429792709875201187326959254363728092999048942451386898557698705204649360344824374805619331812327896221377065165278723860878363725216558827023647800100242126291516075189346822173766956145239308147073786379699745209188145119467899263536497962490196668201277411291474742605736178917218378073318785150274675455497717452016967275524005360146915845638334378323427837179543413342392598143972349500002649530061536466284040066133659010479116686892405986968351428096702066524268963233868971881535582374421057162319104485606287945782558134747757954650098260052345005295794922171421255394994537702942541141806554116890993906280529980781932687114502478321281758114454059378463371381200843241995511266571538220965353541945668940961624528634643494381595551377734875809700046106719065166687427533283955513215885370305321617896810650268205229533331716657136793239397576214797198991143124347360136238719422267028272830512626416403547690684426407312506032617967373618989376566966007802249016446399925472945110294641701985435430286141793948790652311491974531893366148075067867711936804765543093829479127064389562272602927718983926740923811616753283780855788912586830484050063661209381626701518245832433618181720362527624971362223237288559231509951221172105681118856306593024899087806576508629350417698782938621742415940113733413646882209273115676644726909988915470628460182742283694096907250506627032171733007336552862194512858893153923649505114121401856178341416105098848640846171003523298770836632528779103079754890824162801140027488493678225331562687194377597614413818795081675969854856632048132739772884893227827039135635510982336200923700927660657896532700558889639750576485293740511512773596657100267861550931495875824009559317584890217297175944626589265746033103285934419492420271209052869866291297847915789026430099619651288575396351334230030560193545464374240973205525073951139671729671151943302531798761209956388807250102500642548110109506423841338832769132862317323493832810932456516223782900316031538495842340644186600244379193465590426469789571422382143088146630969920280629575088447493970111610008818151610899009764580021085511437507652995662116604852805756193163707404560592331029862551109092059428307916081668649100786272450714898002677213053992144889704742281087650035967343441703422607606775486603219186290315406495231400602392334219985185909268953032063012372001657435073346191215280806888194557525818650799801548359458689719675318733745692134595325001965113990456190932411894476235387390713404984755032366641677596376432515662743102637093926613065030009499007557506692144266590262154783133652267834463023531707455004699478276508978958494948961953900712936275135719014082982371050225797391902783637037517245174727733710943524517490183563257617239318098265846280289681769161666755997028055166887056960200298414955422825213495385557182104717676093819728855215839043523109810822857326347655466749881328624909352772416686545972742367310905315632495938011833453860408479629228305532982978576577668941987622849936275730099410467806045538313422372759962995860476992838213670385477412314116000386253439892378988835376849716376852761911358342300244805060794892676430592324895283027844773227046084009273266542533170783663755254928876242425667484112038550318693684157107869915860769450111972443488694485505842329982399221429269508566745404412563232746984761136925528105267613357597587676800816032223701870193168107142497898173671190281848725229548021573917189418738219039059122431795606583713021943418839746865411762941506746249292218848122391149125476076692287778014954688350026290737543537528935157970007020793351125112376897839940168278968534030259861248033634984449895792258177529418927543065812263774589672649385961560936235113633222556600469861022562479682562256190295468018531171014703254138639786366527462456746199973576512535631976443738915320659822868321150098770591431688499659670437629258941038966084679676333996095468138209491033093659690015780289718517982826258274561155001823006268701193819637120710635454786862914471299417938373079616854153700081482785266460080913410010097724612520341076420367210268592592305430123155389468206068872207201851197846106005729284082718587385403855396527726720473343802886226593075897211181649942498915613277050372226246849129588173628841293758832688412413174611776663535924755825938880081112627221930037630692855277084505191185471024338518239308284528478869640900168720897817815211302923865202884302900398738880088327639562405219535728182922632418539669906570824936645944684092820148811837256834076772105596796034500538285987688719458858514535396638653529684413586704962569855739276458306417710803596192372527644564924850651449067921367243520713979462051929400457781819804623269507144711832584775355199952627708318880447435588335630565891191395550467737365445179670585651528057814064176291236925061954962941659163909750625301574010195043094136267204016405852103390931252242825107832309342630948276767938063470430860463325917882968339758604212317741408336726455581354913706641626020470595632469201391334387770298044745914296720384854953716785000472660954360435031587333904360756438327626131014022645113822134343752904391957704288975904166820915892648038228636908845141686622883601018138585513083512809390115726016518335820796676474113594799017851444008496771085330436439063208854320712275745070711317319953034229737597492330949247514291912592559479290175997980957310572449807416812403863342218893644579965615803330198236350620134370024363599687402473237280477759975815416539713536520527031905133763770029592218335230426080306598615464649072448338721052842929708544077798167708366113363108763179684810526211874955431926552056730385124825814718337727807143004607388459341905755134615636257460429725642764748662419481845542565272321109326194409509341053110211588407166333880840082213379290913582399056649687044707337486807253046970849438179192543623869945097573044120843333203691383473449319164306824145715985735663882406067302664212876535146391799088004449921606839167984535283020451161983525825144819579394070405068288882890395951168167900005971964898003423459061279154945744381789000538537372843956685141645178574654549163305333573604444787807699542997569516832526396087977308505419957810403408472446217495803684599663249145483691493065297390266727315534655811774299640505513472928813413027474526926928033546295117633837363566618329524210253304626054047635912713532199457680409505974896068026547082054899256555128775481278480323665605973413329786823950367830102180946185985474342700701708843308605046115920046265414749276873020673629186239429597896533970621661207564504855526101777115856005716061551631213763185940268819218506552206461273479092857670293368547423133646136961082023708826502624024867447296830841930121601003781581198594499960475908791550892648969840786793814247895603697212241922485740595594349946722082915841496842169178067312234256712136919698668591603868531825974468396212703661174579863302591193681152086218934964045890995056998954355046782794007670868866528779000799025791514840184268310080231572381610522338374551340817047668329728508555345453098482774204666357184972040821363296713030984296036041929606324591254039577938565669853174335592869765496507827320955211403950561221259755216487651920300987158324461395350635989141666769834456815834340463064670597544095216810483074525523068820305038808546765106414347521675016222761442839585852766480000701214019805679275324012854341456105655090310070825251332841421403614902659901317490914477876817581055754916354280700325317224896779203090367623885690611117301441542347189188221476378134794770421391500187454714796187774445807093186619568680630493417368334124087699235155075731187633591193732709666904950075187553322191417086355139042136040952349135277981408809225504198043721005927219278641223428081456308176847888932830174617147370294883782726280227521834067654006842118901293662063011469490304195579956020963779478686038614322470403900924320909755687441533222973973495818235073349302221422727482346748579001087621762142685336631058913193117236737509908633925504263608787085206527215076976443504795906304860005652869774013955680803120962706453793600049529210008347701111751542308162261944354014873131676766496174296847119988402687150936208039720101714642873210918942009193220067757952264947299585476240299849257262768282198216602002743364954868142250773931392772119906283878949350948800442113812966614363318233652031874594202198908473410426655257946340877655472683498367225680071171016924819747442371630008112565909069383777583662623041881951674592096536992786353209011579813193944304425875189645616505381698828011016984621444063813998525284039043484807837778610234229169010930701342542405460877601960243552422973271952298543786285469193912269777919672153360831005443114597498887009669151776036258937820238399374531447146691540441826905504945086455553890658585566795151488758195368952270794443366979545988616135241944928317433662897377462406703442340138386203750892626925915805985405388694764347409518380787926916730497164599463145582829287365078800609658832935151173652850070132074061148247113096738435634572619781212349134171481765379465166197582373488514593464703696148500709329358639087795009218998160149459195667744819868990626019764252859261281382957132767061124429287015284315969579717595886720995182994281750286239098036389826254971080207484487842678548727075045075569085688376764158523864640360937795454821765173811787199056869378581964505661325680768496598512576939613927045251132369312194442448411751893363398975194403935041188323795943302639918051039078443336660537745308262736738822818895523906523820808448150136686514259946706167844268716778219681560080847474645019771817568169816063615403590567597457133241402542229571156719706116465962755771406267427730236872211867277084859807959342722122514270689565481356332916184439738319381384755510853459107558749190859885002087204503825868561140050956670908087661980096616663054233819774235039763626179902912627011293008414073127973614437784934812835865652620962755344261981008585333348097304661711609267370376067837136865588048349144737921236359353542625947906955585509284158938677983126136234300391752228847671175386368569917313359811332507577531521493822782288615182556624424528969901577081770412935205771516314962872327834352143252371077693567251174203778893004360741373480845294703217645602522441283635479145071074694898108059978021462843082338004397660823802671948035821776203773723751055676965184371433584540786754070458995980301090283219889444692620465595439731757788835546858221179552666257982619295695542265505951218509505655029827028352713788293626310897435729120397671442020905414372033804454573770005780061947604550944031460271503553193007638679165871026398261509365344297438253370164304502497910365905652585849828883452964577568566985726235975915148477247990322999752087993768319165277668111007756662951684354161628240160352229200531044305667927914968873037006439672023801262738037269967171071837297848206017138889633366606302417560153057620141258161759829501371783012229225128781143323565619678861072563021473160273639312220884400169868605968436704973771512458886896703976400855616354058007848574082970678210404530786117657982162741911961351320170676742564232753935136164847410351169565405088173750574458765652066613848933468071846845601928826710945424272729834274912478256724856711383367460819995231823773408974444532858948794757784334723859854910514885277012639868292373267288308435640407666344292883820644088162841286447142363262228629188634689898569269856220011389608693559993542072465821814359499897353113892989654858519459515577646591072394723490312536160925679476019145996800905871622054441310271669409670491213080516908960347710812116747860144655937186588584032350765296219284232897903486191463223057994238994701817143057589892034044355032476686400217688520537238395558415790688895251382766744097246009420914144475682816870498999320217142195103185910175160478947964818964409151704466899986824272264207615897053480097588717921569632854543715592788508857480966549043967368389538822385649152439172192123748674486115222493265076134130771593378895151129698266889422216946405566382628544490681124930728139382930263667055283454184801260872089948956938774523865074462050619361902867590092109206175964455700480732941290497162124073145834511169304011188869968742070969367861387921744942098411437776519624412494145974433027178992582086376710975406328489022968495381982887578929565623941325370220037548304164260432270461168713040163728048638633504342113491304357696998544742363075836995900640649131694326256046557227493121833007546328082273366595487603355485032999869957277045777743672721302209571294119881092250523951454519762020685941052669732144096519551059903603353479607564841191590817341121313950383465945466805042705126124869346154945332305205932584507803218006288322782734357370477306462224344992398950150106463474275626698266074808090251361872012058975616854892093470338410727317229686129238027379932246875540607132236366379618177025244515446696002945897659266493043201160863977780558799730137167510827711273571962852283419328794830644674639289315578679747519926077472946888879132269877241087570368217517466325935028916193008664466654506056849710643887026077910825145906865664276727498594978625417423104304678499057538683735690867533432575377492538735961764083678843674210529516814588834526723046053800697574586767195117557980711383688351414873213198081240174346607182370530496996028433766370021808595742166322891900319130285863356642631648757982036671545048479205401437029106497295089525583074497623603698683734967028782006723612520782236628281939155044769802271724061516671480237637546005347319081225275261677273227676988780711155435178915157487939457660634655875058150032614180979468314030016181308683930360018011075859400689495073719317201219215229007482677993190505750403886762360576322662335236234414544975654356358961827392259624614444312729715922936132005362046992478299635042938157189017829083766386833746636864500793242765810054053056713492166633144409408568622599438256397550337735289368289489491451723952975985208649829489738839907616552373778323723741069037462189724345168504141001174262752260905582612514657418976590768727171145971931586901584228024643027014297948438739378140972873047854518122108531392645777985913972065423949667523235068356094169676007243280756898474160395528398739153717404851360445923042446735514295161361529693444572915979360039215846854936967469969852239337604239835672602099963745080962212630439223298092215197556512063696745046628839602813549847961860937430401106794540738135292243567628628379334975564040935787111125570465475515363748117693673739657869489426267960109511660174856117275702424301792596906955325043697306952539608337518492561632296684235122526806232069289703322409928098849365142155495050501614095828905734337737069259587027414515600757381453212907347540109889462887048122090479240167842055445130605085123098825727994952762490049144120535810215837756186707917609354902602287144664555303736770371202344462672633981483397334399701608713720421117037189937253679756740565109316282044575827191258636483594959388525024394398334881101480021631820369176389023266085572030974894335546027954990089389985529849796436812300763420144186221377209052608753487215131694438295063116412915300891298601446021610193275226742487247408541211136633662637862496622971626566456676776818829957115919404547133016295108282135041901320064318218500086267488098768764849795067726351615734712319266204580842858080426430409094224473319389595150258469668376170102777836782963521679359262195636493433066819092179868899707766182673500480060722066033486547998630861337559413563509589735105481240416214705693969473329623548608313592863389096041236619546730466866664068256266525582605255966210444790990654643554435697728865707191980922000598032606460442512179908804833093895049569732976909338874333420233787443778304985893819247227163896492598284562691035083574162592467855284817203259637823140677887203851730199953991422278299945769946029457688431286327100346074359184451728458010728302434277865512222708283476819426100722427167984314378955629328662598023203553676221013963393324071363889658907370538926301354976689071898517112552084460825933621401283721117773809512006037067360987981209323922190213930308966338424598269987562448695022596090127404463379298960496894724090617959754958915982940720430876976969554304608274703710753458389936887611130656605999393120275468821370434120830381059622095436020381467886912853645219442778283899466046447650874558539135723174463094698093637648715532342621750004100781690451641637328469128219304646329153010739592914918577747846382326346724164945315540583449610163312666221268338669669960303922947674555097154501692759486840847002378857381614437638965990635899587134711162922925226050674720893615310445737221381257263783804802062007855046656208139356754299608061476163907875101292252188823380866311955847583269684817763971582513771162058696086469595150129266880617562413488281232089592290572993908324849980945563743972273108755034517914594339436170200093058049000149753925470364439339748564010538454647541413750388288826970081876919684759898390110135030078947412184217963550123679537455231357315169838834021663234465392592104019109150225371164650990559304230951569497064209263487995283318715574702751690759571805427441557082938106666251512172989379156675883495644109805371269657653911260018399117550341382958099658322910256100185964621266266629222056505120963235600572413374112402579361201539530479631869535866207986006464289883774492483492103966367420462218634501754691665982912804391028189292793468920724816152134166959260467537811579785303576406089377852517628684365785162530289111125363197880029001225525073736238780081343614120495014117218676382916897299821957850521343084260712573015413581899478222825781841246404101932216212782172125474583832101024080700944307710755642876578051601865935118891392085167912965741187147597131657535715113134274604240887548785094780379222433456377545119180425077228709036372544882989622130391172549677378287984179228314258937035910992818184903545377344026306078811148211200116556407812583137377110595604186109945699881175240037245992462124867094190197487834179137007158320301998990076910274942751410037704291610542478778767997378252571412828739893004255034488977120435583952690421553126014853339915092856899825164797005870912761567529400554682266821374696574549122152343678382975549140130483620650881226270601384730730534339484472138658218000401799689780099712335960876936572313691612780813795883537423937205411866990443577839796464185942303920542140500087143590278397946526433052843995068517568989725291289700320416891578060472452084318561836684555514697514423891765025123228250833485426642824059862677924791719289799839307039056986983954507324238873552947033546677656319333543308251607921984332051659454934143129466523469336193724161967413264713794119949646934070292240831340016484101493930623093286873025557945880949872637429082526978240798016763122344841487215253037753006487773510973576310079991895196940952519721369818441801762371662206813894416909737316897720567634671234337155890004350620380605864554732399581080861060448427379152369031732887622768054658126878752253446211966846856048462007330188020467051470466217139096493400179464828611681528375388374746663780513495127958402136961336073998523861673418388765760514313276209225166659669040116206436074735883539416523818219106627789024803178743041087591257678821514656785016949220658719250056971009910951472558613042861147478479542404722043172296871866375560816538916927611743768197961672879657460518346562389650453823307215989844511170306517948108264163282062280674405263109593665556009364432390843427644575620096946887223506579343820864526437300821644576041759937625931146933059238678490456549521866236258650318022860955883193793564511445864546478197420577252379252336198109688796199905595719403781871614623632535641649760480168974445272721306157165048700265694093511988133690228857007510531352246916000783631493016022496384660295126860092457821088656134626374616011879687234112191306775032529685692337721895330441111072960423098424128752174346960992834133562431067516743646484120992481973104070769290192658388428599402630362418647493979410641163567482680857038796201616470589668363636411371244587456006844294746446596508841616927489756188078001388198513422130326075762138673029687432233643420229171138467718051086500067226081196427668950147115884644497566966288657092593702978780386818966255703153907315895397042097918379526911891602851476001079235485736107751640913487406378467664099747766927059928396760144928237231421542634361697428939486367888029846324951130568678881715435667578735240952581837707807759652098962505811927581351699435209798236892683107389416627061004697794471405524562348921549669566552723201505303787656788560256727330105396929164514216137861658913071163334336500884297813192521133101694765132101351840761137965656149117917927975599740004932063159106955945047036797022135714751227752927406972851671036830285720107917901222006620501605110889791119463579225357944743762350059135642690980777191911092607902129531420525023964829417441820735789570167030822388135068256372393408730156707599991501529854969285963320704736840773433682129470509187298322722062105847459996451875211040739493840391847366981243462712236078132093368961694806771229453122572421091941672634596727700068343879568798044671717584925798717828331037306821749074054499796585236155633620145109720300350675346398611967617393215806009683766554252385673156913649474581389990898444177618258308223320759846536284355187273732707051017297009754208089223749351169815787218490047684282038853437710900614531698358148393468643419793004222363421434249457133287615213949185769162184010326226523274725453782010291424191871900538331616798213758844770545860458083835678396982114149894024494953288366829288263353554539551071964940034943641618284287612600122454291876463539148242993876561483475089551706319737510556053077689761725885097089105126103527349289795178790967414284491991391748294689220985184503372632319056690869237564985436772810874651770492505765861275870034562561278301370724968441221706728293243361702755172540584885802965556935447537288640407408468370472699692186357834138301881741930355193166093542084516639669960998656000703485034937420483934061318367239722201698913214907754789812405917316140253772571971566845317079579705336243894700896568425368127478706491667973036354961169233289607064230827382291498159569063813616048585798784012996548504962881621513146384932742286378416102508010014654657739943289644196390471923092068006516779404016465737513400751407405248093017970227079794782016675927753272331091444279678166282946699564891252043344033422090349842295797762775593142464255450380763678018155507085104573896364677277654199200552411969784705590581788244949790882450981735929625336285704337276950763925426673420028559552517693548367681738769609149307370902851281451201571093013806232289089855379413555203212072975908099205565081107943302671670991565911411547168873439978557791950592457692404913380190542559845142890391376520471897606435023318392373631464310287776560156473130882858263613488137877631358422744545177274775285822153118726873651130777900639181520876808821481921648422730007889679457370387879738904914548818315580334951045448139808135142881859920090407092066064871057571675478244699928366874148804764141232156944805567155651899637716027023940067005972149364773055265707381774221487506078949463164009447607127578025998321877297308659742418803319481773032918439955533642852454760922618953131461286622390669235753480848294149145896756517607727102014626704586098154950654514698172940589124661598112252617445225321595053877029950275920342524884011040997761498372972879847687714277786595374491003844137680840051975017131994698496516493472921879370430902283578112195759387047839843621246821797245611830589477215686986128673144766202061549491119492326792880939861557575743410948616269114948883116922020729757800496406013632453988134148222674562207194692852753190655762273083856242472697356872534386748196470074996339154626740573399769285193710511751444956057908902151254850184152842597353596548786760181520570042691530187146772388458388750522887810375208454351667513147725047965643377517631161415055876128867063935260862442870961637011421649909941770149533130954478964373879512954721322879850515333233684576970190518936107184941967955161846322117162815961899946492550834093153785287565623323930175684408575470030449822575630428331948950808908406975925312527586377915023634124643779734768852302983025787966885181412675846314707444840043734728726819961786233939685798787225907320897757777133548299866645028296505648699472003256871265174796554745244866037989139816702115936504007973758075694515171353104684373029715072694442298167134493645255779681296993299583219576162175700553051342734324704423840041356002042044773242280465257275811478612691944841260841666683162485172443097396479036478049952776293346329266573783076542043144358755473507442414765875293122994075758981809463954716373467960326291376943078715127822609739516381136261737947411040301059168371925467642145219896718963212696127160746969757016109312311136995412171281794900465553150900492766896273128450592463161931833765153750035590965433290819152694282221526469827740792615084685357478086692809522098076432418235826892329234239763175365983832831358125878546615259640575548285070809114486605793199905854596708384431988751515227768746306928145525310769898966904613055136194016092287782081620821557959676565501224956244818305838359479144445597987891650066263259500065387650390728417912822926053820559951914337633396526853888716585353190716705407293056104632788496724947703880733674770569668884346127641434085533069969646205316351440691275846551376876103374579113767122162361983538565703677068660941464131684712349320254484415779753545329357035879351075285406272859840101830802102201631822591624854959870225959314076835707472724503842387190319339588059941482076144589593960707348079827407270779359335197632964128316049408194064588204709062283892608944926982178975634943639589218656428163314757813172984441945795372220206063627950731829989571672507953160320950599784196028625020657486106376999797577785132117181634239826187487468639548045447283360262060086511576262817280399770922528174463743350674422201876891411781944476653758558239246223167341193190921803428833163686587768898099383956585730365152836668750568646125606024378903151818316837863244205375703731529447506221678635863662407883851552386720934644473386020190357280252329569561864800593691248834778704224990901128609178399370407803354158878770439741613817928490891900162058899953781955398462870800642379490833246544754468463226341492966880126331310863225548587221676880541660222246760454753398773966843245688060212313316925208781223803981614145819433613492761302745018078135820027931458504981210201012614664168697267774894668203585088124011766004707744177144090772894896943563732717624302008699206210405710578122558788137489725383050012888013572884100854921278587128948582718329178389536791490154414006933882097584044589474172292379719104992410497663422625155164560890117767928337222112349397096988474134025420806206596514535985120070151799255504717662533040800986637161122167522593405988521143224058990613331149635498289684715116806831822958354966438010551900392961642805290858849112637963571859670050342411453237118807412561762917331764140729631636432632813146217193898584642939015072743736401085843856256867779828601581205772803766594803544412954546449102196192428729261128374933285378819912461524284804371797645620813839228455613935599362191753328366666695155758601354566538531265675853520078187355199958657833371707890115406831332409895785850105589030283282269484450276423370550950394192362253905433168122423779543827043848287254556627657494154629495052163670437288383119530385198698018012595745277508987011450446404710535826608823418960642078706165041825401830319417073776612256387273978554400802372156185732509988436335475904333169710672953678944134076015142727898537812921748302873383244303949837266733887161152116747388904716055455507669949142857556194183317481653329930221936521471526482441698881125070345912675788151742228851129911943237529330892391598583590854811816858568262480485529204522573226688728062995692531714011772003264363774333318112501018912052760481566298010003265403526471855846758397211888347415893104294501303895381184440808032362973120764088278730548541495712243598177283732378052694577259956071956967231291854794660972216983651425702012308257388667476491188651548891611703317844022823988526329872723969901471084490635965662276969445475528238060713362013876104151213384581798307114660001182961772586581675116379393867421564589895003445070147953763824951350068286910704436412172746187613466031489781431899071292705547662104402938358902846269495432336574125050887748718000887792368603494221388535767560204367311413947378473646095814199759333581502328097519897792612910502240592916117929021432013680966280495569323091814667459403761804212369316977937244267829325915795312325514700598261369701382709179254598445395645483930601867433971423936483629080637450698899887991773757902690057383290943569441735032171454222659392630986846585013388325173280321042789225393488120688585320106201469107803832630534436076543623632851218704390248784961819517029617973929406554590733662744830653050937602911878097483459489979274864018403355743683943260890898498937373371121671697212014221363738114050039747138705649803150355392951408930315766742734990525553839989326767149697796539756599044706058457793773917325823117793542571888119327875241623778298712215360699334616854860984766429986145685196567663320859373079659510774522493934931105895493667447941126074390212357771330689508723351345613430523926376196223881277226002494104383730754148761617519377817044417378048050896506135640343070786910342463039261801709115352539987826459820721581716454117866746730864726180836009273948351443679125046245292538600962278930089766457679662222715311872911113600825977208869494509190211154412046323816499925358409528823383590825185082546759858572628492776049201264387973405285945732124454629676153412104229677079529322031745508135564827866775230181191445563690279547434343029153244773611034213967906774750484138319638106662316302990967514489584087484789864513310996054008834786820548110555839636874872183911938229052574271747783999007900185884956002415908131537693667471719397592535440751373708476962843369563601920948700861709335400749244555585151274108176207592229491558657091915697545294387333611446283808392384474681078260722014514195750717842703625431340527451442505768142116709612467946717523956701418608023846968319214038877538705402041808193813164725100227850685142011981869623998225834859895094730149116453329507534227844172035881657095339669735634956463996784359241558775891014011758783442679053178458693131944377821774830457530632946127152684772232948146332268487211659065418466824423613205601106494837019562523882640885257595848230467583339665687571859636673736774564576509995367141648718868871625157588033594075458581358148268807069458397978034626691748091081236932775711775929153250672478793755711431006470372297078762710271628103574575794924532513888267779262309291920945392740804821842974079775781520199764261153822347517013137939115891925588344750130371859720936000326827713971033076451872878349474141057924310545561276491566831215964477963247096351674346572782316114967193459014733591299810560515768406715309942340004706234469042073239687209742099907490604146242208115180493482113077185716851125375328835955453969378256313052791297828942621871794851802572306171251302379094173323169075826560074397928440316666361941827771936246628860914324042248688344194206113128570405438841532974162031395758896970265441512425754954382662251875133025604415236537230323796866554497235424097160794603100628312696894314603608958633727803797709636161780586760110958881192303914512897460332094692683796950424460180319822564564274657636576354922009676267423129931167532442830421663503787979100106891076220402152761377488629347135736121225384601939296821972937461981983101573810128461805891317158724150083681724047351593334022523681393613445954710596240906849601188082530129888562210628964186671946360624101450513535756507544730831878749795948472928532240014622872654308374700397206300559747874124225098932344599299528148749470914516722085922599531712295057040196202861812542266429624276106398140597193163567595615305001506649512690427092148318426823294301523741693737888328270024222592914840365512405877764253554671169397410249670644631435866129666827456883769122752741185924789264412567684242544503547490873278062015066361504770186696535099312878824972367546591284527474821009844029935597383081442869885444337560788814586589112817145689287131529245152102757003234999210161394001354731344482242053515389942027949254325797225571157305304659689414846932088141590887090839901122793006527926208744024624093094655349411358936972550499264897529082478095395036160417413484620130959931262887270580042723670426907033421058837165804309053728161262094626131290012801860851474120891104416991459532899591804415973389497977168783546846953215837837751221911533274011637397782363233395519269835881501223615581160602895579207509671999417090167804243879246634938076587161746863902565761226076474825966421571079128806402170044299417070628858937966574495667192674757624354923308471601301440822312348575811686540201549286537842176301729173669675124799786301483484069318453372344024371107650708797275993122588435518717010093955662799613226506352845355386170009603511324028534886522208923690452937887538010671060009440643800618445311074639299910686610211001422752795584456164837362769033671410782599928456967984244215434936102107532189330855393607373130066841553695354677917063876420413083184815733697635581274319890399935930677943446509517980827399721797364813218114942510332531043025970741676314956306826227295471870652679739308102979626475820899403760250478718092072557597515650723199978300062250924917479849223444422472848369209317032815571387418473057240157155633806863177974029690446575616603659167698273666268729596745107976120988274555074492319122424768524431008112139305216692544564269498815090697131169277435241571941946160614242373300013262934048010677729335963138755687628565470762034216740370613309639445294830098871523358484160605335854061471183377803307906173474363895449286052881872510537510814836626005674923638412877493771452408650107030031386891102389609782286202628226493883919795640345150051362569817827760830046097395543573707686766792061959445204605937118370217477560568430162580292708726550924565350885355981634971003464234607814773996159279221138519932476159962237979276839810312643848511668344026497209882844031675687416603910266220505429611414897434162088558438491690084756941854866592759787006498198376744161984147166741024323731141127478999877099983817047233171932845329385533836879385771196012305579181111931539677063885816859791082217904332059098876336175122036088535480951830658771955071636373016713598904453967011299982083292657124987004446207243898862793267197944426303340588571618898343482583490006096225352726651411087673783140569367949770376772715030201992457072802891739058091114096525026356265291449514088315126779160963894656124654176027708577544339134864703262821528896748595957517942212389305728637544126344569757625828594314659020792068149121517751543034141862701525977174602073996373011426529212700396305415388779905109857868594171592438087578038349721292841766604303652635818459870028303710824365816111011602489834967313752967240383077586677060081002382320349770623361803320858133409446317949521547237317600340810806583448254679498434463433248147899739171633512299696586215327920805190545573403442921000799387171535671095837776723944559663986866096616546019829490054924681023528505540190050605470254016209963784274222791521092018069706579026342645444580579047902924090084057663694758434696343975075953630752325383004271914590561737415799937803626630964226549603434504442850856830315726984728821198746182757782613049777878473153976414703004170969755655791279602831864556539280034586457720514741918731038276321348964285498584373339793098684401659346180562303632563634145672060438678735973355278172928518906039861987209590730197231908843421746118166910924542689194995322748879314075075676212426833498682236588744932402637967358342519703516465709827337013743291642749005879933048716112835123483917002281404908234001566089561524459139543223884522060495378429639170473764550878556730658049285039272518188549111915075664139764369785637228814775221854061884303401458641855092180412197069173709068473464078635235942544015304058209062052429113944298191517425087583431945240074363225237588149768648086144874597894691470988515650250254640463375833701716697941931655193374548261908077606132714252293099590913335452534132637142442586066055407500779349632352932349637002368943646998299565991262930326678312493000866068299025677969183861324612212285136700813463162564274280232781457062813165302301063729727192459394442277830509812898710821320936643136626539976392074114275450527928450646678920380241700719736224467324271319196128581661909307085135111745079838646729840623363398059602926481675335735620006700493237013557211037806522110622831968638296984897271417616306297923438149200772093497783649125389400811614013521761435558329202019240538119181775968780981174871441563938018215517549735548589724377105690280042755560832029491221334613060809320008085586987718065378651229223236184626149376593438467187593510086243029648024825325338575719451640634777499067034262837311284805499617039494895288284494566724233155110850128551616078669341712570724148150491858243166731857039394899129942810782498545458416827363178894645287843688622126159885948369397328246007826407758850637392271231792418706661617231752827875315187548411205024772662991893911580338930374798192102291980597848673944330801199225394411443547903302361221404952332085778341228140836599388187013066331491631953862088594596353698596983972826082577816060992791888844905563386931078593534653572328019211289302996936659272336158421331997673902277139412924549622601998605267689856671699586342640525046151313004794365512044926981149669765873617041210977284188568414506749781619212962575998073707693129356410159701066453614065447210028429406224542855689907524016290214886880694115202159928059446808245357072670743082140446181162708033030618408626149562747808056286966451794819462132590461785836896303636515278125125893301070353703527001012781617333635581359560770517829217824194452245094222955886431372107166053622841140947287425681755949049570046170582478162761494044861110654315472606737494122938731639357619774829141112546713650237535429072533879531150472764800410475541442384864276111526343790997150299751604324698412930384264838975445223951117439698508765486171577253850450664319178868159962340957960122493990658063126093417963376403450319697311994234820785737355083754616014459246964802475591693903086439325860159770148131452763511835484495529272652988479597633812805779481079260123486592629494170593578940258351713910301331969171815582082936006068351231177373378436715699245696569563894120783669384585937727647218835790295893485258914713392236819550753000054224146845118587239087420928810315752947138950837723545510024776294909630431941913194989701604081990543802743898285590865698194640335478058929624236247876333691638300269792211341299045939378153136504411382426467963218220017100307305462687717824386005318387519335839675598349849069774077252195087117555365419844481537082463506795569105512211870704543890391029473142746647415779142026774068870861281883255215091707243643019485393918312966695807079121610592724121029953414378944898731669577692443300247364557675468291555258341018688682485455749814518525375627055068085279561352543623111983693475380888132307336259553841161225437849282297359882185775195404742118242462067283723643070292337510309079789857931524577292797305808747171122226999217778542277808878236397305402127003232066103244694585315442102437813480026791553831072838040753257127758964965712890123782135384117148064113810944584694971761966583481802180837864022935384658283681336526903934726693672643166801331927231126538350666780331211410136951084044715146307065358918746124203273985492214520326769381129277149799359815483427703645265686412396225353752961974284505091237821825111549437135827420937202043159068323490532287329673047845285959601964561703822308558256965585480658686420974971079681682003249421373119021878420414055379306372205252299867070312185426284114000695872876114137773463582595346335497859370982905131119738863599185199640053603598242174370495489868701242594006686303171628466180705550491700976917632734734142253672084400404709080723297815883175564163549326102588133268168849534050866411209715013779782823534576305747880320684009660694774009848079891460582547948092401224905478586700662368987168134764587714378339644773698502145010440985310334305191259493031297021053167957237819737887400509738703829130174358155558747866111295413097006848129250851599245897943818744654216562195976617472504450006017058613223054929437084355555713495473191069989625258771128490973569342024702732315258838427343241548663433391382150501641082708925920433380693606377098105975825662927849589607005246103030658345395428969736609856404331887518322712490108843681985661478871160608653426156402852634329869286707383944984630971681120246899552973687036792015290007907509455107596691535713708531339529262967226621792394066051940554210784212067548530761650193016252648152800156021990499593524600158606596182125207792161958178609537736731608182765800826963470172668765031169551614857300657858234094814280645896761208191993526473333863598572481530477894506192800916812004114103602282746524679246149135203544803201309098021886534400660072509372941246659974714454648204416074285256966815329773475768033949397828873357985909778604168296885040650696006696330798190382128139589308201778011420505464048742986225748760535317935895433745031769257732640765122543125068934935216798386614311675458328507542437114807623588202941007747106401726019289415585738314491156276674435500009336656330959616985450485922792033837819773568612658655571668595956067640507965249506084614549210173837261416311983660160827409194745473524850572894741472765556624613101529761356085468639634128255037320227318990481068402222011366808603757471000998410359220679468446806766860860095160076793939981001941103549111939065667939798929720100765879724386602812732134935421684231226593808189844232639449862913339225367043804590302940315271774677391683040918775364907177024539528628491651695129057621954794232117250546581840173812700008862406906271338235044629595948130910148034417940603434347144008195571921395818933824130604444323100162340087696382143995708479951416417468997535261311858053122928387357536346553336072919898879582299342559360462333223671890442258280791449516552591704292355961812319793927422977888581747186084681561611890864865624434191392802108547837649072630696189090238253965169108031075934630472301978185446555823959870465309525398515942048885735015878396116393668154061652437667510474666776898853101791210283100783966211247212167340301044686829153418067250238297138126286670221671312284177053980137434819903841363110108013143084435919703333455331704725176299338771085602884847693764216227529391424257876933215986195374708682686533323678884547124879247434430667391552074038218731091693971556135795884200842469649365134825042474364668927138057901422361157335854659355442388739428592828195034134672422611292504385632442188102063548736071754414992744842724035904904343328840598129805044049280984949197106503516468390160059866645200882285388703800723982315783460002218754055612870022521541223729395971164883576247896447161420256479918786151065639719600738611922316806489772748627193905065617696249381125689269366779578147743921732217262331827016088344877079295921640446664635560339144479090838432608132380587651706152466526571726882652836939297312504392926402651395459270961819658584894990907896604640960806997686056790764783283293883068287971132701462763912380465038043541216036029271094308426606546362813963907504658419497577622882415934043937610260695717392623900195240854327617853746225396235418781962211684238606193414699398732041646543549678075293128826939834997819454158146647478714251943199246002083883478231064531387623765251502313755559385634059756056691129195643950974513225792819632513795803144775605591218061850856303048184831060280395507840153805773891951059653182545691499509612590634614766202252486579200965095331832194102766170268697756286959160305378131072162927686581853496381032285209326322672165814750171545017769621863164764664662628018582165714032084832065245993220365907006210943099342529553494601843665246578561009524847102982023975410608144732270584996866883456570707169481842805954413759121348930813061613645855862771577983975811074109165149293966585987413937729457484578388052149109903646615103258070412732191118593395776518096786017490352658049758596518390943904384482910804399882852926827260312390087977839009843145168667409329371743193707306459506183382433570249522503629053008812445696509214470001408712336963075296916230072471643672884932257956224967358048370024691252365950572611268138325806066872312461302130661621450268242005826732540967422628992882287142884742305557301623972912559398719914891776968840253624112898904324704833665705374356630817499475495893143508768517723006098139679645562188068120712437629839813844899714354924435390516122508269266613805384504296135612408723033026569093554948242683823774259483726635222155958567139910249257458571084248299370449605972405758148386505458565209719168491367356208174899294857444584579111867149497349458315182778679799391776575791816552764408531208759393075750377648360287991303367679609179783987491964767544835750166546585243328464614058134227596189217114136305990893807834762418741462662444757453551115617755595145980524085266045422101960240576481020044334819286314703265095709556717113284254143869920183251248782725544470426820060175326253349354788110026169072833834036536552591946875832970191771455695138479573818359791835285346694079222740745927151967131491630836766649951447862736383655428056168111944196593398100589826450535289954313685266587934367743257569039886393738313766526598147859387950623703155054716970689589863758921272385621745856076608523176951892094343994759130368817133794829924957310701621642549851274885625844769652615251817873182842585389893938644297183307174717130907945588489937561086120121660409747705578635831391288424329941388152137744976694510812642632600748346603711958759457053241883139283722069080516893919754055227109933332431834856111260860950851007984006804547965809898998793733006528981236775130840219861665446773274003532826973831202686651600701018145484913166873528098148965395912033666371422241169754847804016557307132184657776245519085593454410990700095959923461447333084450373658665023089471764742597371272526716296267979674254962542890222586171621698830291536983801394718980013950775177485934564131515081821001779189998889397132829358441687870274768969556793605130244785980591032739125267506984013430216303264986065717907122766255214050961598842642217534516791149792578197676316164914576239929975872223961167671147358404675009068749887722146517965694144295252081174431404947423445134618010229395636082776322820498060159582980192528627280262379891837896445285293048400888560158979208120327771214557817559892621643321610149954695640545975258495400284380225610481950303632058737654508328366048247594711180805175646758879779936457012093658357605836302550420643406147359481700139755484870193678077067289084376444835992717960578228658168036403377585155374706786945505407020332559458390931595312126498227889528772299678212307447828822189240255201358262711173596730264177999974443778410658271854768555043430584421148995728181215898894803625334260475063372700957320185532448328751221265045084871869998653674847938906930655677562914109137699080245851370796412628858821845679000156452495521472153995133739931521189178194353276437836858783415036729204344209997490645087896437323286611253143033717100593214945533778227496311120203006610475989238614767723988080829619560947530011495072219866157311320210469237534048597420737361754971291638190637890593722667041702424277767344161347510107690977273802277332676471823779113547542362233094144919314227762067296047161786446595720944637391041849393467539865262494671750533692339923879439765130181176825818441722667976777374629766065749593809085885734925661144452057884757579595674851081987258160797885838958001896164734111358453796679588851848253263347159646381008932048657733124913854452251732609141547035159565116917918068810603803090453612733984866787535286927019579359861076099464491343327060060144130574951696286943958330699208188440968345913210892029325805816305563066756195571449084804430477557663216727273937226189560025794209718184297652102049270873576897636653316971642283460416481962936588170086394508556992674887663658059075380461478138703280474773357826949847072590599830356158309014723530374139246800145922353708954202883987574521566986900844097187773934489830751395978251786598671410540298763769761309972935022855366136139517293892685455597083153862616425692488926605151809851233574427388075278929843793738990341431306431797982178182658363182015776076832139155897560465570053472102705054846758521746989222503067535829349143713569342540641033118679655410575800707771393253922270419734776722332492543899553058173515269005024482016382414763139589872027025446807330642883002937646295493125329263546087473984947927476517067254037158587288059512041790027860174232734496724719659887942422506379730705194543625935607165749449940469481148989935238677206752079485162804780677308791420203082686648199878284784584113773147680297370601055629752515911321921267369292933490727338417365528781936171973119965838518977230865780826956380791031901170537997325197151557946137204697604078275697147500088525449930095463659851465544552276785269997823886403380203704481638230328725656739685875179432291764287215197794837172324019098994203513519907903678810710502960952368638176072806184622696720602961474308304927425536990338652446335781021486523081236229414425752723865266871866299028262859267443717498495316575161023841752610051602382656412939201727034474291619913427895953152627994263809242473647080058091050127308642773843710909834407412512410060949231934177471829902127487337834745288466158106089332596603524524924580118555886481084078894998180812919366251796350998938493781683817510450386308751348366478906060744319537997908713620781050725173049481517676504857071320059232057689520031211474304857539865428547717039260352168845396201442192175534655491979298627368062660834286066211309767423976382298872454244203566291637469255580017616786274472838507413061353733892950757467397681710767978896001671337946199507125098611888227336503321965735943834549251551965099119313030760502412859545499147343971898049096098352107179269629266154736646042018458484987230315742031875323748320380878227550905156366548028352065845621468201766889776058712623304647105377274213232659684725560068750202313949018788901151980422607905254932717630685457919564921471755089436628456485736741792141546877054883546064048209318403142870777534993513076640661077003497241699258048913569072522908952681184581298460384514775721688501468500548941811961490147012522076258744061374217452559922412833798611416068429853538676952022054149977308681744920702877388772712241313173335637128004021423325520046580960921333895948709251552832548968004634205797656690747224701229294240848877912930561417220792842189927374583935635031569924650368254421932137906711241366700389360040502833230536258998160470993713912212374485512513692582417049584410436779101253544623609414777640259848100956714755810253968336087403756436575366938553074546417083515453029428831006775826359841936740953488646057031710046837285209343853831427684100326729837165164788274695983900673397665740091605033806898104011443890758410029043053991437863457165565854998954295608484077278303985985355209260143828323632391313564582286703476028443590562952924831718054770931092989685592665770497046383685360912106649562981412873937546829528680954987673263797303975900158314604911820498422991326251776702775261145160951954277066982381444280185403963940220602171184218887839810753627349592791070575933835136931531846397554385713558085360420386731199780630433914926730417755010484371448309977378077841889208504899516309238779059595548873772357330986579248120705064301944867802635542395600570291718762578585175886451804445166956212483864109895270816268935590089633129638910553025142497967501602608489928656151735722289236818931703303115461636940039083324559621524563820875934178835234216676361948772252406874054156209305408229365218875581528874358011493472826654716474589259378298360094865744533805131081597383531368175559657295495902289894043520724841209784707059762239555069756057382715509617239213813007915620141252196558622035183203045041903421884821887858658141838666173337842580151284767335707850498665144058016277703539728698199334646189037209143491744575068416347957906591491978174616800845185089821209881433152849535410029520757405192066306198157231255112857037856831071988894525156430688229024111639021330290280993879728523474888879344601856005637763366921576523565338645526230851373931637146339077270636631364551932790925377438589972770404499578486212198515895874662462479344071548196670725598141775065921480217701652144190206544610604376107670114523527620043782448654141773121983442714565981088687013477942109003384555724984534999454499715529876931206253364655087466251217792018517364616442262982821481980257565462981657470144179593792806086470292255079068731858122159792299038170722811210308195408171443705643329041479794475340342820428472213011538865818497150876126534433264635668945737083287549946018830343630692857082589513765351754209348979809296875061786117679234981863941816935604940996144585411076334653618963306349270800929892880967397660283298976848529746090293462578950641168526248492868746869665187723763110841362409905755869171902486726204719518926708430010388283136135709178041550349500731211176370387602233295283704977706824078202173801844218155431595706909411819277226071199691742395293171685470706522589277766524739088359988159366102386377764887633233426197899507142518538103469081732718043880864586048696494211978938491373301674516539915416947017937173341490611072303776497102487926073133324309708608512314747406238931697581154354028329488795923933975811074271104922522928905689326528306803375764232213748910917631041103140241954498460794095410471863395520671791872218227692630768242448166971369645040930876434263803310813279496124654383618701239468233091169460353477094506180379679794542723406422542009219712528237870106998068238345537998053820364831446933108838156489490248593049462593190060260987580892111468282435816830483420267092041062940559140770030271447197577072412965398662204343245339200732649125408132528186822662302150273357995445282559858611467282756324205089857431787511415281386190258055291705234104594471329987326651081249424479130199598054557975501303323638343331946383189019806511030992610268159307962930869378277486958379631810417887673911006642743894619211676883736642698965824656250849186887185440478391968270657606923063312947899210272116066931770968866466016934114573850508086966774718470718431720352330995414178330335338803324435055951263006849667670236999519430401868664812244315660243439292944403613641518770943452609812323153560577569760928125964787469307986314257737509700104395009763313046373010690981707653459703999782138485390543093272062093981721943832712327765265876140263649997291461011678319813056398456484202933237125343580660120335390116000213963725468452750107944885411629868539122745728713745225330149451376342299605001942219323268048346333370906721643933291105484623887554710346225408422507001373103590386781608137923791875731850110385253550199353088380315849501144053522633855860685035306217022224446865584629828779397378016308014837011685827885572867870079744619150451761786409984694148930568201796684979077135006460745163056073250342596345861653365566644837635818088139187096816151762891548517280637753301619211015716398818069073550526704436427566947645945233167219494410331357230018424628168928508116644605765687312531427660105170472757132648124426171372539103026435275844739147661145480050931113962099565743654913527824542003308909643952339317076714337662581429400655805660766507774618545545529198630792715995041604311928380259053414504437443524078035134481165998915861119076025434088946474845866747322304217659108032031606246061964043414931952295303349743163437159085913951050318127475073801041974887013150582686038494435966417041558772926947291704619664473276138798609862538382447056664266203733057029815572165158648989630012292705191426160499569732335632118787057143759027096391909650278077632159668004945244717296683593638524019389479165578167537108016788596996615753245017701903623308698945425880877132820857166495948817476780839332643255895211646516499923852999396711835135486553638193482275557283319432565011568853604832989941433677923367441286100971756768795502819926893378835307719776385765717326805967877965049398064623303621506881937326716082259574821801369953638242775711316341927950562745218001901501045356427421458307042516881973514307348813038235257899216337559694070867473139708175578187180230143968168290982157282295647950671473054871454433582074996958481376263788881014947566775463864704307008713502523820671752494678879530398608120496930834862559822089090710693823268160426168546546469798627143259170817808191573543918786621551681294312957833711393396813293658450331942127744178450984983389125538981301724724795644422086400498034251355689736365968307012972583039958676750350542204821193335421362655796982953535956668712229472941783628939970498335501603555229372288225903807921212959083745185198817331000731805049994380796116440954078726395570910122784995835013435325267043287743963117272289623251377496919240170237365960066330463828215740151659928856889136298665952652381022957957171156533816252299215974009677672494888973683772279402304280584257672710296692176238103709150309654163646321078136094345929176164122661470026587806943364647503172145595708348948815949900906159779968733387777519217521910797584324287875051263949692809920876511820117746059673637194643093345381717695003317937368391685298418524372667359855097033925844868047654624773087595067149910114667795293503967214822344020680264596092895184010197796229731874731647920491096791685885211825094779720187288534596720894134022821310380305852627303642111116731338368147614423915974868437073062850957631166381702061481392026208434805134192764514391936792654361286409685940366381640980177854890042399774090811851365541633732394701621017028117700160927898302779866290930242897264070192764681854386197145689217441131873754996099861444782001759928582129146163333076403720517632593934505680988562002087426501507533771526308311740099434242106499084076428221750829732305009245942387748564429346656829489740071824942788479884654201532787147632744288470446405140074308844811953006736573855970104301649047202215729581997021056773602715536664324331176758099442981210687278824370379855550132624201238531739029088856018040793954581046419142523219780275602486216094072639247355623717971957653423214251870016426510617858824449825988441536017821831763203337364673569456059192734242749380618574534563653480710312880363326221575760917007104074080113615850753042074884882463100665174766619953114317734292125138642195105580848814708344713373093087485442618288238296457499756184729024004058168295757091139046770431793570280881659349157785543057640223179181883412860164161228949219874348201373102364512783025192224562041154358733205107686045444143455731599544948720440692313753678547146545331853812327418985659734238383439092347702569051815870225577183225344816706798349360058760297028872880907646886919008355451678901040618283841054198504429477373636357329792858433313089585870009477213612684204980654053025310265261252972205225029026985742397321299183132326328374994235408264910435453525848549093084832064679155950818538460544735626142842774830173244684938766602521514425962024323617457342949737524616747526380522798554324753138756187225511170203681741080685333882691879667821976947605716172196913921770968398844929817682722134192442763531077612150905642652839490087082681013269686661514138336000522776189743318738116784422266506744771418802652891695167054305068761230580806699539911162988485262485067340746002712066592044402442568301734769677159018699766777321316034272599166541437464934031677052863449442275624907076407580113515418207432434491681527433357031440215297348751778647341958930488126082655281613891849609948729601899733799500880643845457368794676772162424346846320990556146374149756156305168511078872839600252435701914936999694412608322028036920890297050091885657202867391231373431478256455548210121237300767647834403489883614871849201488132370316340459107601528086153115213451892899637996703735301674952381008829973520769938361981172809580151669196190169996138945365253118610456253308126557513835081510628511771662068530213223800742252323617948729480380545170203429205603418297703787669546973527310223692417425849392341100688667372148837977722545133365662173141011680450637560437181501914057047550417602357491244461467763487477536910659921935286853097594946629149520593754123926409596777679821442344978100218117206340482228563685980080201343890586777995872527949230574294780085282996873274347205960867133010239008733833171186258710910821437417004414476882116081882582836985697309880237622229667780804064753333525830763267826747211660742229633107884824662613896131239542454885493640848284813794731393487401916037682024629956628977918820963457425861157057827315615802826775005251534591963399593934128747369878880424665141768263395038045075814172485804476437479640381372063552299683832484642317867489316449995070389047463477851569926726994371122598758972981821178443495737500120256372246339362635038787195406864498022427235643693787168792449324812240736570863175915329104930427008793384207755651881536922623106515136046801711626920838358886312001986783890444627811982414561448235585932007742009427211813804392001478577755305091459565905814026941682705914943497609753477947947987668508799622684136621613080716869757265836582932399438210609922850120184882720700827533086857974470495949877239174472507378874483508602585088396357828201909103085169252666659326237480662086487812060696595044466726876720400793592019113134560431922307599344835732553988696400696696485810480251495180183365356495446450879712819260188629764762964898355859550958084512616755505487441554624144740285725489494288846998009852584235639562896635557833091661088350679840923324610478143250139968396718724304523781854784165859669092003853898876300824973133734346838177905536613251046962119759456122021006498566835288731527512370112244086029506165709453427491053656449288295068936984450091291741824458038853246753318617390557432929142399504556306036949608677175878901126990995257009996085378777791998067110953961855435543771958675553770737844334488508849931895672820452813052382724603003576107334819667111377066036490735688409483906993927905766663991127511996291804104204352547399726531800521490005871850495860493216220527654094208225042063284382336736903778577931213313230699300010799095816608884070886301751824663872946924284473931108899486350530206736346974334606264013844178896349949595705182472329413797909494285801867940331209486199867794170052274956343052617342229177137880724692337749134131237381157731672928765020677370799411365357182046274491572361072915140593126366447651621164860253292667593610018321900346580482200855952568878492031377949132070854435472364531406772139986578043567904989801979961495081752625072958001590092244385318280354270177080645174297973912413436328810679115332509857814117180975213609534152514270154183380921156145019215012742362617352570702619487453723436132894565237335239681762823665154185197433028258087578946642581082893114891246466382530309477881476980531414480667464091630339166739089087556610496920906814685371758040006332386730963821070681060219981664828122552785407705706521419015802402967576264892572880759893940409006486087240046711900448180827465478825873539745877046305399978545672235116431397537703797446010417736219190503199810328383708711683503829936436067163064892426677941870366813003266150271253583713729310363968811503660593624167691395132278605074954610526608159709607227407096240571418483271528804972000823506164846809202858897940374284889429151614198339822701355534495083614060425903407640481316574988449574912810407171931700322066851344709587089535299666708438067036446933772343124058927814193698200207623576190035023378476484877391866077967007045350024706964650164654340543859346650758612099322928087604332703272612793643512027520568954254449087193299388857381226884062367638971215324153235344808196590461047024858115386989089780046707067830268056581592732501633419036926304966537317398866714725638144317523240215780006087064560288356698405194660142071446403087269890363314200344109119772655563051114610453766938027320929628453846782236819437294724586487972702272503669735864322699212953540992421429759129755572400653172914934723166059420347930027698658768002509646768911834617009574627103136655753316451840022461849923413855679599474505718166717038068276466159238422584615020694228607608724348888360982080716601741801898879812197608004210147983277176624378455016740335344245982473750571223462662695861211714920537278861076519923197581697023641543128830375361362467430239616893755303621849765354261462370125093045549212972950184639351027892865023162212648384345004241185899429679323765386816997416550490227654564146755719286816421900101983957460669908213477579018420630558778951472259379795521283062757230313894966415718401573800596460932994430268405660748587680630932396511663636073010778922275145006612299994770087601448518994881915838659412036695936445018485558286590461541643079628546504155511797303331629512596114913951672987329642874550780582085224802452042738584732721149319019601971917861418606982666092265828656272299542197629055986489399118753026001311161704059795861497878414262631237027635504164012834096755247708641603179214270467348722693002303762991893925221428184499708240342101277458987097940843325559031649159794210985130778121894661469145542004528930526110748675625561504661131696679453856738499169899579938174828054642289779862845634039698651990091730188811043142587341745079238093043286728800367155637750841061269161407265027858816908619212351922366941752198627386967593874733808842065771991788323652283683593033940910229746636452528951576787519961808382592026306104418141537004351167749460408051408042568050266745974275584728489849858599317820498230941758025751580437473708318045796902799420372743525600391696077742016260926560500721847184588553167472373737569128047039299075008660838472450456645735699932035472162774808866544044116934758432169775811355797971085220001745244948975155026456117305161978873832695089430898921410455157012756813830972959904089735610784687633486391033083052004337946427437401941838138490586560039747655892836647705199198360542290877196619850137262135441254685646219350411285143249154200761120676839479785894951511235454102611722897407811690986303376464492737058637669558317629706676010353863233297412548664164161184854084723993004829923106470813250109443420304917013694161114317566728899255234202229423538344486726813392484609544213594542655767970789613386719880225208364111832190441260797315364437691851855331734155335457345547845109456847235489041856484934427963687776446444610865341564496538246698096149172150861541550085216288709256151681199502638119849656287154581340728709263932091312075691024515389424585182192076220155862324030682464777884401337004791722663455184895565994507956549004446396895312195282042933472708534810252223292737447795350638437626416760588929622157620761585553741030514833885788964884926391046237576471170199759163488935010209015467150462239532936658760182383670279199419705912457795286010288217464755245432458287910000007520127381685574518017607535208914327971188886446931857479823831857332606378237108476020657296820560267936938166219450177270657154959777970873836012607999077829647694644408420747684747921843519223312561243679033152886857596221718932445379850535168078368637953654399385411820169288814581299767081080721493484996807884601351397593168634505141549523276751041985461640540258343441669776158406129143814040860345472297693423547307821480964939162375625034794231245416714329720883406336765599291469873198229186019754055435116668980674917670389791608791460445714203068435940879426460946688913405507169394784671949046337331532346601442680343837905743827255245056655772708692750753761037442792047165489186469434876579102421408979459128657909879357535735705789435129954481386564028856448924389653344570458430437699689587663434584321426835737092572315665145651198438289041711255965555273785201562026886901897554140121478958481541064555180477543770192020366538317547253733537173545188951506493862558585624885727386359605838546549332301948681717403853076068029984519924319067061656841513768720060396692019235401339418294492285555074937859790913167119176730321656623798646803926659966141957285777626870181229004457082891758502509524741188117530392336478667555320577349867811114643299352373914794932478615696812218294592457010135804367186514415952194328213764140267696808312263161319133456393806918665063237225011209634132903721258334462956421396646822681047647187676384779520208674343414249132070363823441379107674517817127143588580554867859907348253303835762232369563024126187499224219392150745447726999599795263652787463144452872294072884750196614487636500223425103457030444622315869282741369557255499077358460547100759752493453308657506311301716226510715222700922976900851429318532304112693536869854078669035390746970574303092740995066152702480831636409255045654817068920782155773273890721141708694485161739174378456190664932788993073599157086529969370505716982591049814176162508872553434429510273997563225624547028558656614179695427736612713174732709578529955554303698508624690762763545238137859142693587917282731050394284178490344442044175402143784928355458040342616595430754330585691008407185341725037967226955399890173551457076221869811448229486496814866694431307455063643482284670225929681287276595330791559747373992001080055004151619792021653465276219212042992581548272298332049883615826668546379930422020293978835629301262922747486920173804509964828599351238962653164698451496510281101685927984150106370304558709420794424905943588368697215619824798516772500762013535216129406086825915165202115485134439104660992298848446549777464110410638474483257634274346814680902125424217766180753148227173235606619309934428203004363494445075636876681573045410533894077472344279500757876158793751909914265550903943767530263728967412090822933834955260862540493887218442779983248950555168420554314622931915412768266578487424681705387832770314459181035432889202302563244815006393166222032038544370176911620659930247757188328425589700398330335161943599785509244347532962245360823615645597699357918491302805540264676648678074459131960663818089394548092810219684438727884320646923684913854572221914364481246546136699932084894180477969083654821385087520094198692296371613572273421803480068372697228628651188926548951712443795032532740120779191928049028389125574872985941005838216952363758036540293390084285909901254068677601567339136814169281908408620979289628851303899462578196454625113275581198825269318097058841984032947480630275182065600273930665672894206461365922896983208712305932602021657024548530966074770209468633083653637351229100896833142703438145946599307291372948900603388627263905664681895489796471606134107584527205368903028123069181085493915952315755996729448937395506936200197647361005970418559060103190474165228997299231700861221878413949018473720687047767339388596711289661959599735881944997326756282361214244323385264057802999818927803398281727035465399253471443915506254052288412769474763443014871812110519242505917664413469426913860862259535704667426746835049881218855474092083340242564668198224555826021482429606253800145742454684645177269794617556487717333917069199868954034907708098086637924132985450461310279176697570675116251455619080205408810899507151713296158511396715976199833281808960083217760424654261318111742491824837457906812557361399067456319914639766990849094398479635176129808968003199709715831107626384319814925144187589788709860456524683287970854228336206634143012742865457865882853450961880155108998493148482136297359395602761429145566241048964453483445853179553293611612075890937332584028826610303321672381522841379029789752011772074287972028570599145253129236398833337504513227441431959448030997535394536849198973578943904431941935266060609208710590217214533130149210323366869885017793951421417665429402170028402108053519703346979029890697427107948721645280399512699621405139942860998352945273386066595974185472432005946759354733430513150585029549845363820324197356104680679987268392654186318109791788754678124601598544647358900222373408932861152255141675928602236819259314067587592830940981608806682574539284585888552106150870094577097300620943950307456183352107926992629957847779358970116668158010625275546971849403490375494169423024954609555111281722250298333367688908482189981206883798013393874876917972144116597629530465266914307071390784862235660450965702765756718279708918489941262397543708000273902388443195365414328189027970860866731050849229697669460889897109618658760379394752171125005725599978853415261644590850090982215135886555012146531011493028613201203499424629579650454767667384654868081581139536158175672237516368714892656920772562022640824657465328864556046047597365364720698421095147267288324246906709455401276195956555354966103451942250724917262121096269698891793068423359511217584981440410727601209581522921614497452797330384271662207554254769856409911732021353517173546935492477642491485304653213409576601239240169802590476564565567647440779892647932409126391677705690242336829484440232312167403129431783870446443193880723798698006517327895512081662101888930151942216063158199119815085745120889152415307500085755683237776277816555292800374437854909686607142297666330371675129018743609139799212056975512608640504586420907249000078306212499649137088254641080293294940484068884500051714329149958354249899988272004839462518872778581486423950467873332700035745903307549252567045124495914878303654502943428345668024941647878006950336517817973224423547472877811543628860224354607193476306240364592481167856143627217750804476582355939090365095057314505029913733125835668345968135033775906104993645740356843858005257431815740173962149011825555057285302695438926611252788219413254580151198105887986541053310220894424755132203285623668130556732758543680743380155161668017809335396920404547396902633593158426573363835809933957700526943941670644738890173154437407614559118404996045332449294771738138760167830997823717884425024056112540132891882318905668059870747963774707769670110947333272637600911607594625478996940688587736115593797166135305385751525794818712601255691691461397605461254944961229675661169076008280254138884343350428449339925821742113685968961544762176905787792267108729217550910766764319256011192767690105006260522612319049187160610276470977854868335424883650382038956632858231868840654467386436277340742090278825386766018269752265967091011668326035660587718676729978185316106789041281918802769174345712150009538187986735210277296160167307256599197606776081834974605676522271254332916228829508853212806015805532784617218030334987591516056222922877435095342876756762779247451669384417081460290635943097437483495651403117657401661632670244062353601605703430403486397399351757987089018480497872670769418670131534254765502624447835168669507012956156259448652243549336859200462701214251756033710079671400514762124502596197019863661267556019216936009755703178563039765005570081932721572445521095994084532369228474879125276790700029515677134692139951681407601824526849898775908414792107211407209110227244593726700009840561480515029402936967385833975135808636933636747583321405101385153309979644125601257907279288947587001193438344096109397758535572025452581919544479865371045134824275060390881681815401175166012391537062748939691128647066786218691168187792574302791524499111567451793018820188039481307205989996662344451765907916202720958432641299005727778517063872446392565656980677090097631505491559289762198085395284632983558062370660462314734355145771318081461956667046041569117366865629021284761601124893082967292674423048394732969452345550656299637221417634579115464636668712792634488652089322445664182941296488710900609683570862995642816611735767231813371870834324350160956214122809935282085816841341688475526314217615000105850225139341709186179995646953347348976953710976478094427641662230590180349968487433256071290905785878044997353636454296475388491138962554379938944248407490794950140385438115639191496889607886630610028054370803498778858897313490718434851061369192390448454456670612185385881904493443474666650526398803697470702286504180480677420797486229965576739357095614700593663396361061379048696434152533228371518939534028310361289836233139061873056512796368038195885214776156039273237446491018038140117311063881114051119213919599773163196339959601693842439696033531638744286986120238897604120515287744632002589506079626485814639584539293543427854418133410610293389318459531669623131495732543134200017832192186546008819077778055193022296053277126078949460588853388339546380195715401860743895286355395989255169656258312942263012695252585644268726633232820859795114334729210272234597053252241414066169987065033090821820736612494419714323177918895730986191937840552237293268974671781309396438795353409827566248317181599819887091129090250845689069973688330096496986889081278155334392577719901437501530635281876334624292762159031717275989240235559727612115560211630195999637239885930603904719794650682571738163557178890351922906325424862788430809780289351693739394085880848877376217775473135136855859630410966514690460889773296690915663654894417877520056954285966168796789592574904872457839675703521260348146999661336367531275594077937786914189258701210281744800373492259281335536388513638228924608689494135249595283708924579389210851052173541679309759637582843811575464190431416404923694078198118638772992426556446794903520890019250019764118289586057253919804513813026637381241640505270027512434072433421412417381730759595176777023367973182121670420101049897998654300447729303204646644154314896332831470142885261676626370202512394344582689021718454616812547872145713645872477118050045418648482982138825454919565675250591095252115032385270813122701904287180029229787960968573202177717058322814769359467132036235778640077855094700771558272543900897942606577797954535619408560686657020487591500692529817348715959327047757499385667279721967159966685092010759689820911664714948157921922341707202098177220768037685240243938405956795549333019000530976251922463709681944339201314354323282681668036858590122125497716405620033098994635036777291701064836528907277643511713118410787570898617151302551961464442193753585915511048378299294305715689383421439665877682016702924315826708625633188244317147716308206863392942601052683268942770166930430543782539130201369845540704309464293541022892747480565284624402229053670521256921138292573239045047360160340671137070816027189140186229995323302259937419128214477399512131532762141741169421426831090274418393553411226416812145558564930192616711922447865122545608553508365801925387943528982030112210285580914070358028984667825384861780241684550284472917855138749701260834203324490190277350384014793276969423147926605472418902566092778331791422597904238514077942480056355846289203475986667582269463569078248488780194807506951013783683370021936446782195430568910058616882102314324208501813826063509311960832457739401986696389661813241216322168401171248254587818682787292118870216932575745730557846767144290647041514102826613253366149627298485545735012352591608148896778025293839920482114100375700592914433138529911704544311162848251120732583322376935108090447641603225852461522416757112297859906388370052885870794001662827502753311023307522877465688559900279649186537445207056156040217089035997203570176762120521552204459278912742264492001249827720305908939739345776831510089781987521951767233878796711433949207975717698227566728207901005173794935379652415381303568354421108093718482805294106401400732409867019262973007442193595080159008036754311452335673351668829038518227684195341208461342034403725518227955453885067914819077251511021045051561546567531922074749368057649520906989007077362305702710744169542687774102359278496970064453946664847614627106238434492638828726019977744708480344299996801627392597712709447501436791642475089137068540459197932499690173010442475572559705604676647357746883600822734279882984854961332865283153040847021390892927653883013410687448736549819561077596849800202881205131650576092792972735233590801915798310429261365795406629751920335504073006012225469829434756377988579018285619525159217118351814317500512401866522297788856624396480164090680468739418790359802732773470870319016081558549135887252716525734299865745570337067338901705438511398418904492167594396564780343718253738225374412114212778563909288950560455801584560661081818319315011412239063525563144294796984173326171219553144906294519716138519526588668747429783528959107054167332314378573035146104566934254697241465935085194065730244393042970172108547262798477609081856835563014283293755301537724588616167317074046139410890671486267796639357183065363737908876896088459456867166233687085533158839522618433918938453975588351411777049745730321531991987487076612044721497317900436933131172915408554947342997912420169987138490978174209952652074038991002277997443079381256254640864923156789815002614945927242960667121930815612427005554477273724541074538363975587343751175089965078192054769256747590963004434135338358689445301368178323619159603717029303540744802365436873097076021788699390407907946428420276576089745450595375769050695354844827870332407140798759999774993065468849887403368000538350834894919887884177965691733195175964748632776683622379309264849686986585769098995577377157563595213498840305553812288545894244547540294369796916920902600869489552046455807724714340255362579357928576626879447565163880740965562147163045853649959522701765571795774040929992312046862944244501787408533142718392778019269871950386818579624854641136556952211988792743782520820469353104597318103480765512063505839243675898952634761040367306793319966327710639118159802425735596503059115197652385085399122395443648029533362816190021839577044012064936077663511919329163779932075137136240247977177785783961921116878623471305763449060272865567665308768885201300076545425863101648812294239022985187039656176740913739516280330927082646518143304306279260979260664195395483174924936583738646144671490857070982932889813215091787134767916498210984206277158736889665382031585465995416605882219820373788355212977102591259919704234311429252809997184937534794205880256853403084359120574353262908567519780294179810124406170206805785622512650301354019328543782641638476906638466151528176388848903285350500448711619967302353517201501614746191382627659699693077586092776044822352119562958580364920618434141432240944475030232962122194851468039725785621740733559344554942380777429580532981532534448224364562685515666353064035558035957310694234158158483740951840887137456264531111114661861397500112347826623418429454825905536099048877657124248534557904377979600681204592278539958984378040511056334206525684800669102541515899115554020401425922904525913277692751188949634667881065658184758033677670299981431525090268073153367792370189778000622218255759287630180649678117636631724993656740198676829597553980326647197169290760259121521613909645003931829610045872117654543061752298993803580749357539613418457929451529024159130546929381171960824645554707817819042361982222100310031827972533817923750861817053053625046144416795155622497324629659417440431549763406131290667911792970844154794487989384436827113002383195842055135141140558015608762064671894307835827495286277768090088429850429088774572752691889510576793470207802562781233232325789271837654978675593552434161538359109259446330106941879227935058192275303742955867092278002531986851723903831798445662534878461804097808263422517472200139507160083463809754311862729538590040455281801427621038697261294710778395448439051709338516528759527509730883295327514032549115522569581475888254226434935851742806119748280521934321568886580292107984206045820390588299882125277207391542521927051355494134839727538891109269684461371778407256454699431931336234392830305339654480503050196252895146193702416123228204086236817591317453574556091136686484915643055544752510300762004885689551056529048543789193744781266016887707824863291755664951692918033000825098735717966179530088769033289690460150534504250336729868115268450552703833093416528419465091327004418106946369502172648622625974221560365995991232302339329664842344665005399219649844024064319905480003696919628588448034662628040880608715252937099455942081815350772563393081349876788008171792698861731307615482605650629809757787214018799444852376832603580620332633982456139444507435178222532662832323229224945806337978563801897194633090948345318407035061134943918151340951316869925937651121026995883467910581717375434664814893697812384234023981089219938386646470510633413595920214023272735749155011813497957294932322261570310366355468952501453726122700303964826326234508155518884307356885600725667390012746401998235188512473488728810631651923129800137954246313863234260542020173713978276729587855351045621066721923458783871209503557969233115533533553806281288429245467759668944867115979169544481916410863064455182205463333297200357056089013420524527893129986162461896978742450111791342705729552439413856062021454235271380719057902079590573324212768439905044955023749869439863142008056397596429313902323455944260559090028054835191015312432399089058996491930382366620189319711036999593867121762987965313171520588197347907715100851163667907662485504650442965059408050606182903426004021791100362094065949958794496627885416846268009275874649875819879095072510499348623229492133142103061873233214698043273028616848267710649998479431916119559952074963342468321310109444217292255404277669792443063055617106792112728505032607878807857890890373518681573744632719986615161733650677762310048718425190876861855242518542466167435571916856999097711370061808272674147509602749936805313724428912159379110139668852716262179156539474177023930683000445453749037953239305600732566294032136392612821301717856491385788766961326907911801645459183810090934589855442478460338929706072735528897189358353635057156918817621714417219593831793616826701689045373804045550604032134002835420605295030876779168425671924367414997323842727549570232105959820836286592626134196723300298060952688209726504012145874168826627714642343334066332223485795042136357250279717549946172180588517191737431090869573032750898730247868434464665595973595242718927097237400687036736934815741972887907215133811191101283929488940985157483533583304361774274938141376090914610917215851808821435141808060835941479261097634999067177406320406430489321927653677723457340488570950048665339202257635635893412063004999263100875485920421331945891902014238836686624575250218022042571036446407330094659967212731321076607334002313264538795817709956311574623551390519337468702237985048207012171078620077563232233947353642655212442488817740696137402902164588048600345167849471976694241047020394744289033037176172695481439886333988488538363981956048950926067542178813561503823842989712805820407229125383239680932201714860799396837352341881756586609226512586459215304384287416282153372078386947895369965733960074157103497016203237286266556328849861834381337665746760650288238777930830556788056721535159661831574449388152361547828929579922383435953542268722990020678689835438860744688858374770895428721549234214850238167174941610546389495739685107453592304001070522869938993305404426203144981082060490202401353293616304513214766099412792953665689282309029707234172467283591515594273006964149003808464915170441322512363000430870231413818647074041129524834959102622432658610993138764185016496487596492649596313741168173590964599615424871847104372544958607436451148125024756496763215777639923006833492640569521787101118319851545756012701753580117190966745547349260513888777862858408641695225504875122259637624123104839618772385198856771068087390420430652878789060970021183312262366829837001174949560001621954115430720104792792226566850395583467022615518529286513404266517966999812610807622695850429470562964431112666922030610506385837180127239222617793601044859429906318214513278385998731127631119664706378501394916822395993829397654499036590823369439395209780462804994037272712712377490330131799247457394572327179658195830437436218737234520190628832648304696001721234711288053236033516435321714637751178358247249200406543471942251798031216077471861808505719180625788608121272073077147255293932747489238639095576193139789330034013836790924750178895518174438694463545591834371759534060250089525507766766386985634182812910545387884697247868010460643745140707144956708512587250760444067762148009777284253180681948331341179910288416653212703550865344547412531373126603164901314451832512971806814358909750748121066331779982668118470648336578189874499877985741649129126541287206200885108808187570621895026346260154896124396526074273391640719883690302936538413740042963445462281388244265154118561181328074514056187048783180099528606653447261986036919154892567742886422321584488024419450691317222923044311831926855244515519237636314267899306342593062522597839657790322446900308971950012210630337443408776856480241171893846192275625971583639630023031061395848148116593377232773906726524653690743698124311889949854429882861638701390441315340586135821765009063256173262697531220946794389213034276055720200332531218731867704766634395528278581964741052616186192265621843338742190366802170607029358806003038673989573541973577605285485814706397664454813151343102694189069793582035352750986471719680884228303664321441729802892801503776578692552713994113475492199492686382038974407726016252148024601871110191499001197161587477600650674939324719870856161678953805792599287800590682387596827712206406393163969497739928915756057545197231640740514760814004610850273542374255673898736600667961938502806891107380968578912775686057031710181184525556569106010298804202414499318150050500884401210718950690416904836212029700431939091912780103383536374278711501202429334223245125727967866908313738294102820181944222685228264390617695287730438646815407417614343114550593504523965046316828961154878779550243508640585274839318453761674612683669299959903749021579414351819540802317072537423734259195017394614993781873886691645649576683085554570037508314126523782837963173194916138002884320152150796014804279005635197806307047650344462660352263870001060374390687821992277923877028332673934105963128888975914983921217824884494900284621507963543755074855961082030023321101143842045173195975616974973847922456822290694679668948164406153404969485672194721426145407369441205134593348931442648340123809826352106496210442338992278257405198184600629797081943195310023921233262775571916608511343059826060949409893395688120211316823623739595539746810530005083407733516551102570596183472333182968055941330500461005639025785066386041260729144140684521023199769860401805869601217398478479476938073226768069444016357220254800079077094902876394357117760084567453825413613600845134251104882760717470902900904662013322792478515470694008346198104815687580108160304957899989764565290583211154029486869118069782063399784128066345679094734064862618654982685847505810730232733609539481555133961675089823466260149676362905350507959328638367487572473061122993888631099681659692539983018811227159206341897972429494856699879868080574234108741397677432584741685160571475802940470770309504455998656562422975457941490516626112940256140681174831069799307618800095547453440767298409120959029910161622154220600564848318367140208568271729648846091933220191060107299114648059842925132984313394683573062553311107907313840128682594405454472538277485700831343888193990365471331368977657360612273897855877203245153267123313303778220928075355772052664735499659882005385353299489248818345856770570446009047760318949077872710425046420157818688714921441491382955145689130236384916485167827205714015959253551158080953517941541829910453997808698905884031864684244595477026053192057771049182271720328088217278504551934913076699593531738522977278805764165667817096417334697519928061200836965013453229026412730586687576433817242644555928812294619688939700771867735720855741570300754512189213056922160942504247246029232489551542411703220557235191250049050185458338341126837509216463952565547374710091263198442424423212982794444980739004845616822376882694793424608818094151846651044930056566929586214533867921182753993453683020932658702469799999755757673191768314033925527675712558472713147885226933214748294824712912597740269856001778073327505071520350464431244456886568679577376344476565989110602056418066638885506671607838092879437052712678047913083249110145062523004302944582292221097976275166285750624176977789696666520977317651243117293644422598556960977918041790287073424098198539419588036816956061898017017663319494576012443019538590944812836600367003621399630061888910588622210008226854481410036167267892147677431888421524130061640707423956380170404886289672454685785562476570907413129033929257505905525576172513543227300370633856156348935421014750513641332874249141781485456579407002164002418208537270913883853160515862131054610890571128824495971424208496410810325761895696737662991157247130707206960317011370178275140664823795254433955480201055834212436103631353539940135360904320241449382351953484028733093400224932796733978760772316986717734904933859242121659931065346776778339300758051773482712784170313265628824705887036108669656098088383287958150153449570570271530562018522599339015401838371593794598353980643996876580721611713045329225911031833758799344482695004579396291299220389351196014520859051040952122838351658035062061610295670358626195134691996124603993558166121320365928146382951506631828224200940556928222787776592179262245292067586738072878218025253238254498882201939539480839155733220155318947126272025411011776548028027942022280992364330477816879801522295934875070355508599020393652320734565803430023965429586984610044651544472261801212927526564591418749874642950509602864855100219520114728201056653880794500413996986663850936469020242795818586026682846777263016834965621580609785177159393382512673556476258706424897645938155599159037091480427843892147273824742080128925514282847475378668408480188459020640740788376263155153559633156716043021902321004350363866657334908479555459418862361161758374346229122294605226546782075374335315422961839775972389508094806495194527774497224638413698229342065814544831138797215954743814617330660254627498171408387259536574775147953722318543806215832290816996308247004903684193443873587920600692378994968349821063485261949272412267265036873961206183096001218043697092633125812232667557186189687882429134169954703593669640789243169669393283058519906968230226312522948806545480479752387094696647460221369968840987674106041237064383725739501152343454965620586848493754128941624537743869147137063741922469517257352851530533754384517338640817114094253923384942249705786516919858201577931143382662488130182565444647300676581261383828693157632598375221694597901983423864742627093684679390859342777327383510003301695223803421328465282436715775690767837453040963954086938045276440906235144946557946257888775428336823496364796183211377055008585110541756942359761136360351090422907195396410941724966375549824019440823961777341359720057834422392494217674894226425096328129588533567108625127469699327721105204226658534193660847619535088431169823104536819055875514137344864671334225434308746765554115474096534210902767927491922313797011423375443490469191483656668234216384607480974357292278515764246383483263695301339610058218528944237566832296358380414823626999940844034966366009735351621572562550056768684251638327538993975673798528147597994206548520927104336998387697096053038137897251047202370676861098096843918199561613685916366044510603145910952521793389298967405844513469812320884378479592991295389888590667861707664998958057714776220175629007415807128014480711355690087987076648724875840206611910885591366846708566992538572075088729828694176148403692619636765071968253042845968965155723562217376716336732336084783880640356468649084731990703008435155456089570970531361176506339339363251962913120099594322708579083548531883709203370377878062338998996682966984516826734313097530450876487549266655465956372464611300879648706732892243507102034876692555792084543052227269379845785371448361288839213002394584494210546155001429372882468487872512415753868328302669833344812285445230707061642888352286402491706040143574997782982883989531304930276621421771190835523040344243174581734692709107687816834106009816568443739117012207907994167320794503225920770896921329636512348919461652541479733733173124310035041607276685698685892870817001764819502019726492187095107049603554935046166997726697525895633694889385962696974244434541308024189653590726273069644431192935719458799145537820437324946755254885445318176865486400122706264831898987203197776672311724895110613620593765114430153625386972820609261283740086881991199065301974421841763653025763035600378958760893252177911794321123440533114151589548942017795381748519347170141024088503291110346147222233187218917830734437797413891816516807779877935404599325306512075597828808186143247305804505861432544263004559646844820221689310023938404712680324440725288783978868852666634026387416373731899452621682817879038835906452696401859832307475339409458978848958336657223265728664130086367282537797763892238271059307344315057665339926907192227651648297315116222970151376320448515304938888873708615997726304281478039164741537533142437591371176867443548705197431797919060598716429936251506016935510296412060498241787436918871396530381523776810968144604063677983539692242788346143276525194111415607708430211521414252195275866646956002280974291507378579319695784300979679653467885625260191523190967766084095014832187728877032387111734787464548316375464671668203792412976148284441854498415036323428579379549468750399053706218564426696025146068157966594069303852729174859036111568591036987051988582293611180922933707160474459566022399744588738299475668578278655640669604968852678524435337337303111488748819937610412041872046259875074825042359690596495119304066799790945130979422500235014823839253224780975792299672219390098469465448151314180320046146313336355927278148148882924307864657687838891549472561303581855263808881992945851510823147842423522910214693321893515157617474036741443539986284533285590079919355618469751436073172200782573899274534956647112938940625135301560111519483194669909998037503612993289453765227454050845244976858837337832155630452097868662785179257674307065819981819203910695499317994122856455525911364108640833943142363151502560505285293649558804971150939158228499829427565277007302448138090480439803698285223297691510568970577669322536074748410278786615580140201876586610373677263703113450602884962352546291679117566060836111614189282448738471111727507374967497709403623329089298584853340169249271119794463608090503588785269368800965650347943789320612504354609988057439166620842820211965351308732192443422764082069867605982998712603535343184845985883292102955474508512113538467797239281172425867167874293487753181384066873463465354138337094810053464764636565405626225031026020753144468949835497480390998698991617534719070990102324737872814008848992161246884475964984055369491919925302173219979563208662080474416828143930493261274289172062389548662839520346169323640875403180690815107241588697635219537294954841275075802208176128929651667268856379369967857276449864067496189893922030948509854580632018232599917088159521491690772667605755253178454508426752949242027181670929226084717959118471732910343054588365408853695320697273816957657784684430724556093491204821058297731116876615458963382593914395460911725289128903668404075633653087728615501310220120202737710577350365962625161192098577138865658143288378504595455796133658217480949509360034423232841230052600500467227440048143171823968313328415691727140214037626530053527918160854833430691641991900096075306140789434205127087535214235759426259450761682527525670340719244022645876042779664092667495481988178790841736870190776725097742105615519314953727999284174770367670788984311813387414448581697020877357815319810412990058777636475280526061545422194921401862878748857302459206826084186120860003799831756080201888988202785914771122252897699657256839130380466600221974005373459399626683435478863545476290464473998792988276836344874547089789757333139244244806106413254629976899991461525192558787989489593912487729223328610785405241473045716016783380370835841047681367293587817800303922261581500777321352095856155577667371258852341207948533705846240418070871028329972181642457205352963155515575953709454290719609471791785747887509836649126565172203286242234778516797725902613630430913314640618570695293187756416453982480131118700966478568162453928839994533216166269191173721937899911860183293932245567068487417620511717772766474608498207406503285748774722902559845648262432573544890856956718652037387750920197103618403932155327084457783942670233248684764633648691366706920096636961310875849543528097844493328264629100858215393981373632503215809417774636917926693696098606629452685562008549856017874898746854037033883672613448115669362868185734547785692980875947404755979698035895969150740050769177358898430876582924530907944544161925993547923565695850772877067510052042539141302154947852440014361657667959152954183635623498933840837048897345479813891856687859250949136475735308045460917350503075611984540396974803057097515380200919490304746920573077150937340118883910526825025045218332335809644083775248196782920608659947012513640233840494132053526342833707070105326500050261815840876645315515107955133739888329056979514009893482587044486139242914553811230007620927409739175216848809690391134858593296399307708865658986033097888409728253335931408077140015788032358480470471043692930000314403748982852520971302807299472782289866510636126835548866051181828334517769593916574608099359357065739145232636972963855724010971190662056429130823547093512363538950946077041700702841100457643272833692907785870109520293740535710185568097403880099495427590340378860115515631519685607807260005067847974474293123768902033849476913810942313377896073784094130943495095810348278713670836245210946040955923969538826161621783315839730363762117655945479504503296504367001558726079361885203019419034369678184601468734432003253991334147766797010427090601322309369738627828481311558075640724630989636959404958262231554199679338584277897355365744031425843474945143850157875408941972088043691631300234269402451533629793035076627669850587111947840069067225923783889792930576654453033251031191559946484060483114652600596227802588665386345143865539947898307732807647183465380199594729637430736871375097790293766732689801781561135246429480826839019391548248560022336064642399645603090510082609484882506719106607183333690305452807383072381472591087562412859709556759250786891694715593415129316880692984827113460089900920797136441449876826730260170107955050681396222152466367202695326763146194941194170893690004853399590650889196051357642213922904098709895717117274248526735392783216939124474588240425850252353590434955436449749672847113390958307931150661219754717132962568712244959620736267063004172687722779451278328437863155707936391254581132880965389294618013265723337525867729080192334958279984507086763179463101232231390260760357673177845034547764848398885006780500618188944805645035638478716089269352177900665413461703833650889290683729132823145713432008272856283651237290793572390777083921272083211375184313539689745880770848255334221701257379192250129080781041498346584629381264347780964411703445119620607677808767975217312470973230720302751472317947700169522423782971540719905304689132271669795481269878549277566412531135827879567825662767372312813781286452726921189317830548252921953695760947162629314399054071641252651089373851349033376229079815996840265896491039385313470854549786607713879937550458872114148003166613143418034568395401308924958877700122123545308418204586774011289155105352238795437814646335515491494606858814855757755709426291914502100490022990140974127200531930467726561660076413948048844069956579776989454318963013082970681284716948577069663161354119914393311098962300764266505393256097270656879672488209349644376282935895018750932114240519255346274753295145892025292130292761136840862477261048230265685076140592392529355024313101002178870036300641525741578136329095748647853268357843218358177267771906297325727190838096381878343029955116265509324193629833105275178130897328885418847220594841321229662455280849190959860242510809516281222965081619977880785427824356538924571765577171882055510325146332315355769386882472657993808478577001207186282647254629934158436680211305303987687427242494987663259403719819591261591298424046385774671548681996271560418756409611180957912991936413077027411675132545201329479086631931583242679319110343600180994206585055973043970494300493622937862702403755520655644902201780414258250924374928906733755532574567455611174719219798536436793889312013586868898858833230481436233158373451719321396849221026583230530409200120404930527177665454937242107529231733173388905667789685566045463942249586733030281344508407050906411397346321588383933146152742269092045108486423541915147382693647328331471098161129920550951543572842481839638748041382706500808956243020551678341934752244968604498778254689570359245177664506877494194636154703822946052217069383973323703976727638942043605323114059778118064376024825747771014048399626729759148995238435457735097058175936439497414466725499287256763800883542116055746890424282261489482672789504664165099196887498264552317221708222560886315352194165848511531591856608885417964615122949775156211199646274127318301238983080648478107235031170765323578291998962911375328295746411466666693093576704135866161679792369867157670862947425678743838289258644235591973380144456326156139735134676631338346718687493627280284619636235293548478044454453444967440472213133411310967739058732585105792076013250755358269987493294106652387701225035965456866171239787448537772093132496955529424826223931125782541221440709980307014847923278394362356929514182768757155873621502802325498912801000365692774738077598921085141315760066846529057065534994538790395557227518894073073759354278506182464241816012474783052648399660100870108764739918306080769127560293383715082069887741786475430632253441194612722890579544119656679881372073047081373527749146881796406006895667289537782999714676578012010928487148396470208653247587751532498554287527210569075716181494870164892295901378140962572202270372527051360173240133553238682919869853875745034041307428263720313073157925273984989131122748720206645556090141811223223361475710574047433513790989728083521102183131001627312794860982069562719775162038473288278531878916584333706194200244094771357900501714494893110841911032785029301457909570847514216985942098664001905528720992965566032801308578544683773038299610034615299834091363798043502644128163326047838345099155917700119864699739040446571306138523370565035182311303612400060543437393702747354716377980821379964962726195651865038825601184570160024909031772075513080924806927113063010637163505371978108298268689600369847641788071709573909262660191609378915804836375600332752671807182877846949047614935622663229157520484168051976988483155972684268465883006792104571889082997538088551785470716610084297087429680495334532631950131069390703102605296086339470260782370118316764646723908405734777379489008129478223312009211981736876137694212498092108034245363544207948686805864767702244377582312328792468205758791208433417403733840337163997343925261161083098777457610850757319731106204848981978229679570421481076362651651759912514242454330895171442845321940873971826031689788600391258833385129700246170579607535791169700353492358952133287761008893340100403543467775140874749484545666723196962371599667823949117261592142091160877826618174863427633856742975474506379581003807379483597520924776180056416872203757516189850973952911848060775583705290664009095099596419381010265676866337154113477478844504506075080192165724192879695475470530662887321197931231284271761484230276331401549228731587241556318713623565808744032017927976877834374965931415266014671733045549618084653594709733229071833415810897730661372235605380737113353939120466357102595923772013071381916672950020985254598747916291747372253350348438033800657169835448773991161082977199774539371977113567917605612971154409752056808328014411447738691762140885080944898524142679234403240410232707516165797603204354379510617328403460455353497698934578191739466543005227020132498986099165162958599239196576859579190957155398516120503079751259831570727664727697915313412506214986832557735945636522764308192921168632286959128616306531004191566278950884757081165989244337190717407661374963310007105700057425887341894690860159486796043690849269781930558318415872447275959705896375031006315267031450918050111610607793244100595883342361230713119759629848061483085839036806467503548959278095162620766514111861318598833111057029117656360637283941757317397292174658438526322575978833618831833757543946801312367806722949753151574576646382438345191209384021494254653443677833068713541960974045095785572899756954672011491002180121146078023103497417081475282489008042925126086909595162888987893657694854902723474529238106030002091513887273539646660232481552922952712729034258145322041408700168193663233446920383228022973267997572849993448945451229355698626053124155651811758096549382028406597802005985753223647405956132995761930828368658352073174680235718244039266731976040122101480899382690088052787720506736567433229288232632369623168552933925749784254629785704086451621451440265007341654414999341562049470011996624459354269650159395335209146359073107563423868759349060042245552254704912158175140723226500186898730777510229026879224497412754596835049095167602514607336903807176368673384674983671955748079469845884053540176063755543123644024708587341734358477391493555680401186410544154022918537732555745619691931237243717655926568552984473575913344818373777375709594252648149266532569201225617992173251085311344499804384687416100779523943902216546947936079826445170356894739253655814161162511558719685626313762692947848566396001975336192535178624076764036574648743039322088835209331910628238678363611482497426613038760862464293743390480814087172862739581930074548765507583508207646879865368626439971370283830314039260932197188334025641042222466409959031143146061858366248357642934031535664769139958141148346815118451573131804396265871373034811356405261894337934809874264640435251980523747038398036234361089468393190641442590155054731924547820953674550770113191392774165477616909810584580072827896274280363772319353290684283722896721619461603248250946146653754149549490170781589873387543257905663248009762438511124646760387070457380337558298172258155286542110784817027147603727414139920986149244686026945523159349771632858037909764154516890020478214323040849981535464634106279468680110199989848907350397137520736575535790265511916736846330722135302456304853006778290957253537228965036828856073188230603007923212872125320801017896522217559754595193515704107958714988061047136893795605061615338792139818409536108683757415463884103542485201807682018596734168089264293209525179513760344267847060772354779246011976394492967593200860976390877829065855837215618998018140293324382193931119134468515690283695022235724857125430608919802969278624898392435510577737446849559753034293958545190038043625523174513432403287493786113947248728245825378032368895873963309521596863741012037996173670289139959112724279373564348221379465691654232439069665018605112049230684637402390369883608195802267956493729066709017318188928278232036634039393195080724333987993517366939385656350014041168448594589055376298183690283331246667499046635145794906707306457357272690242196252770835466805064580426130553683794106841746670676790867706375477236406437316728170817361933812835697958283187989732853841577644442165132765772683778220261263567800775312900337277280357197232367430777372070925739965705232734411798484052640076900394233921911078848035943755652985273222257971174305356241947317408919966370387135636069249333890150445522560004766540496963479574493326246970398440952865581614089716681154784818498792067386559005238148403624832303214199346134376285433087775602801774995854769320680489374160638480994241281782224345102915644516884799722864494767129628818603518949266018718187228761402405640968720886791736274135620267024932918682079746923213548987002342142383711113887040365661496298049185520532804832268513804487664612761784024548914973750112868530531170616477926349198706412310718792956121873434277925953581522373265981654807895737726196113901361094448563648358016331942577618353260942768558007677890651389831014335675820345976982949701610449526996416955126410956616275354041239937328706373644476756818993631541551277973660392138292691916327499792011086840748459877553532779167012799016453750103212867460804275276733446745022388251392473779877511273219737068568108397118342333485573760286389588817346279523776982860818257662132989908147898385021134016421732289499926219340703068985148372426346471012034800040614536283357713813834981397472142400456702926783075967239047549973231858903382593755040217623233029657598490669232907292531083303389258867826040158131847984298692229365750610430294766406734014456881370760241412375605342734030185185186135243709145932128521962067790857974473153737494244478740001777261024821706638116271842921395699694335970601790145427770342902681659353450863390702748900416376225147506660555700447876081540586132307775454456269342917263871555555713679873513090061476259983565504850305646309706792872361720522558521426016624697133472165586244105049866245699482466714231195574996698008999525488339708445687211547528808721429656411183611411002954518305133194225105709521689498602607647477228253921627748192837932642074620470951522233495289078154797030919526434565200320585096760020215571709015796723565372574394041407052195063364081119260136922363344042393969749627730824059354145205344359014687246230342710171090150621442103689077598632488678553526495352158883073259596935054257824878996034699895617670354773874762457348266162427743602057708697462672718556362588062948389110024211626888652201760076218705249035675126354905617091986674256399803780893531615193628972467005441379130001763455223618845193065008741472840680746587724847088841505717499055316956166777131665751721259690681998827320726073617599168704250397066694450559592323555091071916372248845521259972470886847165018998968203607249985792988083087692842858998268473973602492264278774804791420888249464815725701165775803837575016682121267399049938777585545517596536109124225996072206888368091217598688697623054188961760359609887549724749131554685678552385929291864345259820621131538170918998013708002517988687581145063172691774530856538928973500873633701543204493636658653420535593299322415746719094434418131294202120487007719591120839334419020851547775517537745296363961690813028855760508042023277159047402708456247900261540547029781451391672427022251738548421014344544348023876786152932518843809950448056567159725305491639586636943852493199440155893895401431487824333276658786465929551230588673758993121317340829553205551055269324051935765427175027423051110781059756643658087447714776224507838612356600324775141629575481305349871847946170423246555738792784146398083986582231249474335466869290053925332193555947957352714575772906689911693465644565550644509991164812051537788735550455447847455936436596236927301885241758812618933717431685125524158026877866803192913388239302978499351355730832368239648002957926546803436887121308716106614124884572635838248165075380755952509009423771062613325916223955708280244030111006727159467183286574635169289870118288020143763385259498318238462121679391578247522798885979017576751029886818260756741041198704465351339543875476334780795250958792162695536244857479347130276422442850134188431158986669331080507854613457588983082853599825243394524228320369230146390385774831412826118450713709200338613578027183526819188456242271907577428011304808625565721024701243787985619774630496244412171872299782566673686738118002752591131569769150940248863537879416375667833519262692643687208510279858643094312505625161088639015553781383598876404306583448173000941513275886648667371418128589732882962087163952489063319193708174379075478133634638629209584008445512502297693452792272136333032633884122195502513628571651194236035965477070451205055618304557300564997073599733549144910008672707804643304333194592866601554969136078805144946796712866056038297038993290419911519496677548213051620280326259441320434530854165607615590928750514889658268864656825767541904074926822211546015789821211462062223066604148942146047574510096293034691539951864941396352119022872927979908637378284569628588355080505484631846344688117270703648505243694328019732529545311363527245396894958981394175732839937531621446313427521712892964128465632728847051460547891771889549187299365326030411778837827112410877737097103314899559210792263171913423406655223497120708704717131235418734391316697946046739418622003329739110169727232053352437113835928139998590840104059795363266125121138462738691954301605925383339692015820054154840769022502193927738604269652754076333912149030506999017569087875831533535956174137579380535536754317318517835004165819624002902325615973186986442440464277897775212035283577051773185346945823741880364259447485691957208064386009421833712944235733028519625448097363225613313386110884826498996787059471059009383281118461005674558365187451243381036664701545163938517825821898799353088973309827441206666738973095895683109349103741404421175528859945218775772680454636932115266300645893945135121838030202887195173610972709630469551622686201315574332353935015999068565289133156064277048804513879489041388436372572403581112593058553633297954612883338662387427117704947213851317533817141013754746892056593698130604967839123734397303540296248059372256117103518707261451214163971955734889209464487889923319210283079060698716708375608253312197734667981089045126000210229834502158299796523891450097612183028297204591300077303711469075801603975411659197773777181802004800768553149268006658490167386667960051081924261279602740542320693372644747710781876338659195198509846441867444272817042422105903681784795302126749531960925994060673800567211522849878324862238603242489275960256653263441058721592711686368131093409217795465953455353831805666031674768267941072292483731152944960660342605060059378380913848579617395907657490371439481728346464401882307578121335987552032404556744775263704268166518153709084203931558526679481282613055634375218215536787671860877207129794876604483957497985286258427567289505274138803599146091474848674665217339057413956603681437957592225010072257367413600096268973242121298952085999507457762029611881717413729999565490759994166147830252418486958625945787908178848056056712824030545387284283586323573890908181366874530387608689730835306955583679338479811701535492094900916304690307802062224944689814281832272875468570327062919863687579504404621545523139409984507938745520224516467325495310016859051585528377705123381792207238125090157826758984103556118856146058988280886824600406910975146309904986499442791661373152264051765381258716266275756558958345139282174536140795324593123111065737322818451893161707238467429448670551480670349791982231273461293831724398789394286225641016712923227512492527136626324841330536342635262852943800807270861682987175079769143067646228736467197801309083347341317653711668640439721178098763966146572737869176236117019284390234784021304329177508483832800702081936641075434522770579053674487637439776974084421897408856884791553837187681952191650003049627572428847996199746118523205116671537909235033024710132835633857769970741469337802624677281689538189040054945520100349944424969088437394956195366876361873199105043767785152012467071643569973970741275545799918943136143056032050646355379249280159040639308517503881461014991216450027494345224335029559132513512958204521362923397663069822474620080583720936311293138515944400363186812245333651032083196497282670107600543405112883777245063947971483403923447935317962207789787170780028436216562942915093944904925664645761376419733074369221013968023213767453516537069778621152225040398685236809582423671524655696405593827976315214120793563640944912607996546035533466863314391725155670692744437328681563664130898372403637743076899485846631818924825096519651275236772414660357788347037013210797040917161932572076039997152024951431418248828840815024042465174719894162572239086806368293673651740074715669564876378762627981385277759133550689970760070098997042738741068900352123246689353324867573069899211853480634381487914660886287612369247528848716051708497521249819388918334414383941798059718877420591570807741948140113017442063316854258619929305830205472970703344965135070564269546249225394200819252335868842977346982671775408130988640127281213728571753041304342249459312550529521423350406702326190907457865244476554047432004756697437042654102963279099014732681495275848370529121730922123843945470302041650166110222919812683324590512862791186701617480979238062101126550072658205908082271231053464122273348805552712459637438860467973876765889603775318836122515986327101193100527264754863274620171609642310871217598702959117665779855935772566469904393833850408466685792840188555140402255279923554073111080915110101098850646403282657507677812738875468927780021619132981837893854669378870104500780204830845887341215165529889634834580201172119232868435175985673607682994451839888645228691716028628974239514123287425107216022656527453159055900931355376537592634750983252805451854089126509630198979468911531628857586145985111861319492686619909146632280247478791687457963405522224251854361264504117169533667195680877975538726471155962419464633164529691150120871787562514268758810316056909811079858089399451071207486638187773463187775948971338532602469008165178502595245640611081884735470113747050476145577150523743949662239605929041252661691448791096341256457245468047614025236518462271146501452811171716519887479560774374812100897554590442901236161290093296800361837339772088503276275933985502920421207455544256309377255586043041710203109258703337902481878673941693016701751833877645278821771708632826170159524356696560005326437174019401490243651522323187831023886427919529297793617390800036688553560537894278215078820852131514022576930459448285517863832007568984220812579648207507336779870175696793992016829930885546385368846862130242195044858995167727436817621692925655536089128398372981338766905282579426959691538418854293762543878302820447322569628496768255140148155494600150265922182649671346300873807717515427314478537445557304808969209359291691142964136131462151088649160888733527716168086066793699424169847119683152010075111001882325703211550229685918179851228972171475806948102722999921083405738955143167847317555749507496150346303478108308340835650351259895386238206438452428577401096947292525577409451499183164156554187695902743510863338590245335904941527450360841862754493888715107875068088082968556984756094358751035882672308061044370724501268879963906523345155580871464431496244732199204974884267852969698852918130324019006856203972479944650153900373785970767855662512596839816931491041964675807783780458803467220485493467499735698431384806484159950922639360299777599733904723085010494363709836886820558507466820322514403691915457071810975080348720804393871380723458065061341747847806600656851563310084458414944584002965400591245061148297020346979892358368120574105167431791917475961867530984569140939654475770055038106436250671719716071013994088396589207055285799849321704168169054196891344511326536133509333080306863133420337510151018985162116450726788917775741640559643432371296552050792165260036324035325397044098425522848350638019125403124113923211357460108182803073738696360913550032731110344491090938320260058491575280926183173782222581874377926527541268014356380571818423323285036364141619553811530552573391860039549836697860289675785359021177063036307430920965415365848923439449649709360620174237616806782716622738156448937086278239767795059654805631250884172824411290967414229162333330362357890864701177350354083195996810815088807228297598700799036503501801721039593674755219325044800850868641713231222762057555627359262931790409816386774873065293837148324307834060038498061179551985358365081723584518606727098970294525345593507650227540860508527443243837790811819961097863803997790374272130823273887507574843007830447365605707540991760431638564446385191397869310054795645278108695159556570705720310675727914085202912566847829774401548993323224822004891178283999285740323226201799012975404255615539559399610617529588655491927802903434881132868278637371134836803296205576071086757227341232741327965354012517483353760506710748886317513404642761726802272043273814987487652763166269858086634771664848076819022115368962138375192049041997065086384046834563422987673298681530898498793628165555384996774835675918331688004856599549239339235222310298962808915696870782392383974504287102376467518441422677376230766997113882743100827615341576975854432406987274794736026503843090545162145814141185574188523507990057117679764987110835720800348384809472800651778342274637718770255441699476433446282088464967471569939125102922931093576045373052994468886810124101076526834993667418745536287020254463497856569192579446273280922270584269467211703889928345092321040562419274024878907455392357385377158053361425624304828831605190610503089963873376805683401460036959380429733683596953939002094850887338020178328168889383857422406753885827250258330444789233986466901744395264608960801748060692516884645433145120717497327591405138013754180715193568928450461819239279220862377648212674229593762979123801252734237207131930866482051302539610330738845389561463882291325884754681757280370147222462461115894448663216857307636842170370823489702115881423161079584114559182081756934318254333157664671317595456698936260965864857909341607855441368135757898706923148621014525022533826830026863375794043960287484381783569481105954708075366503795357574842467515691636212241539679682504687575151095372566572392830618843929370106125055753152908630969435766047685096740067315570911128215836251401052500013823418502521461547617388788872452612298878227758008992581278567211824292812156099405302221365292906255723992053409321281255536819950852023596958138576714055752771739807763294540604390957266875078948402430655078909905859024475715303758295629119524601867610444924964468998348654439110726073917886055050426225422080505600398173587060006420876566178326425423289061851322041250961970379285671456407373941929056356410864105197151941460022689135978605943064858389378236376119456761149009368611429208073404366826993723992046841862780871269867084478364876149969137176808803221537618196047370654446627430917950896198853924265117736650655384583419298059689268502500133410181031271318357458654617562313580197135650068516512535120128276429426345394645530427810771876996021911963631267344637024492834939782607376469927737850492445266327449187448274659191640788317887375467807366903376851265647626981691210125310710346013535785359171249531580518106794483433129279066462654478957990451767217382289828569186801523019215730971049034377917134432624355894547442251747967713519139011925430466405377535118009248218904302810142495682787543206355734497493780473400835746640317983004593464722114290553545407784641120879319450134204405921480451099673257492650851268524038504639177407160776663097348657388634233080996935612098485557725511811619719399689832606920941656987467393226270432154894530627184786127108141816494500826762376007830742640317791385691952094995662980566689869012186476779260329591373359737577061828206529755643029651527811064341108772876973468681039095698929233099902656111041950894071704440538632703907217412469889020221797534628925966140794221142723836388122493064028082332147733510461418545825276009044322218265247166153743610777257273504290187868464415621875787432809010063198601675218072289674717275026577244571093706574568768432187805264178937383614599156760435768267759937731752935177056886753704316672320586178882880545239946194973531473742242264289182605909138683412955324446037473393841262863313941647761087798447390417240711474533737517242986150116058865671720690671464766165477529773452016063530085342556675371949403604815747700260170214670399966090383431179102052241729560100429750960626962542440735632310629295402902622562982339465520946784258607898150889405353094579971309259730720983323456346629466097003025881789680212889417532703736884264327455633639724448349915952278061452727774229770983385834503609315392905881570706383706379275512821060182650752540919539051286347006325856816269008330004980041548951963162234222863678621460054933476879339834483200793326016547805876540508825287264910846185889011426037840634394555568572377223415035447315690377331244586136523592659757310594480590355710752155111411681111649147613809625131698725247095227928608612088116323356923328563455676824870448807773859947358720814511981946706693078967904337240820411805218617640087135106496051689214930512883164868726387067619715731799869211611665646714923302702297188135602370589693710635257939683535482989567161825467032591524112479410606874197942580376893145427977198062934043842327767232675011967705518581055641060258339517945024026226148851449961954123724033101827659859498856113445354751072957602234984597189379405446192654731691934462292972372823662807271018278040934160760947339744318601257846279958143779822371691760097761248790152756753104617995054781583578596446623637013343100011350819180472307952913454058522652519332668889295928692750724128646402490934140175833359798385269218653363941062615307903223276938763066157063899931471528136540029939983254585110380788267071071152228378358446399218633630830658257719925294090697525355261751217610940790441016257400729817501457807522022006010509709651922061759429491573003646726621105617877014333658209865144755465782942938791299462154690029407856973997184190222341155968015166743357012205138867225393077547552459825392762492150036192799041740171739236728148496106939332727663791877147630232453615244532087346738272881784100182114945095381102742574278176104740934263737573400788377250645350712618392418112567024165735024989082929612509470806777161252307975115699163704697711534279469435952766443469282682419104486884718000970746262954519249022340108748100445527806060276161579596329352371415557203287893982304556285883167171428536451070736568530788972281047819936185687625171531445668682197264714064708706766403651042726406833537985038430223867028364867198361501626472476963608190556796523475340510055376616169365037888562717883473391758669390661559496690383088763679842071869753872625693308086556184285170806518248923074892804782072357051880769374135212691776878845477647416769785041937867552366939667293329846780298952030836398964938744379792684293434712647099638195475705894776203190111812597231101125421409670872671861404766253348253956897602030015304643712356086855717713743223742556866944172963024330316543866267387282187247736588084523892500573086544417531379802057148329590796489506736677158345901085872398042799434003058325002871844606444980860064826914884925481125169063209775499843794932588241123742611953457357739848772665640222106455463163721390774714297669278166992268868084527813274510685223190042691775023774523221472585527153855600397035755586766291937799262173280316412149021607306131096659363690004750240829551415418026070838936865449657013051847389936700304950115291821600807865537150884327636678616558293169834132107838018862691730550063940631512429413288787070687458346977174904201506045901386765747555270445096553069041625052250562608152603404213966760332828565232503956761646966270996664231153105709533035557181170032093887794917060187868823016674023560123514162702966099677536921622765353527649844438500873224531495045474060399600148536139967399124311851115251445160644103867332523887179515492094156045232768014344700208586151025713078808606822658796397813861173853657324205651437770734881683754654122689998593195994304352869155274510599138981664059848399471459780948420433852640716373775543047834989994644751486423924555181799653622959769710121179693178113058406999484943589367891350347578435629212844504154749367833153199855161617459949403077748367872444505625925807351696398937269043302122964715304367451818015454290300764087053186254766156929884457042888084051234011830891152099605678940638315656456972123226595927035135448425206154613877048796008109525808431396768295182881264116278185409231092291674927069418387564045143354699939607415925474475295525139526527476441860288975425964731762961228266539317055652932068208174820371371638200120459198324406848192847601903258358157603904658111063309482950582626254146889879083816148904502993161255911403430578592923438063541102000843735195468684406130138542766261910794994773491151559680545487583944948635228703802221042559529935547817557204881092047599220705893180165721039945173170194431915280211650936713413183525387938087053655481822686505226943040386253687593755210487208333704546894744520011904275653524377793469419390857782634420227089572190400596437379814505561283124444302557088073140670980065148103513995103619615352601927987889892658870238215303373297397037107854502753651843676324728187013723706628221346218244960835921870916765237880242115643866000835864358838130022619452297844592759800674179518663956904266963829500188484926796689866023741212835196031462964780814702696358157574343321787411500817685249272506795313270582553078543383608476496930647070145022818554302447366287941931782726225395296826036801718948206334418933616696798797564014481530990362764767710525774716291392251360097954677238756693594270703781584517352591065106574300963885963393257777673182896326408106057373841274606947213364189517815535424049322061291411155670486151997080597374724114576674345694874658827205541239803429205789594835458193562930510582651340264559168478061816650122366967130809402358140279718554293807556259920682182565718347202417444855616647750292256906868137306113663723209631525611273784267027878845741444036200080683607223782066231787003234269863707344789969381610867594118302294866680653920942399484642925226895126113666220032645378114735406964288247771473095607182162119360119059313590409877510843275639631677133992007349757538766361782766072773951525623009541481428106219846159768608368776205810554158086757916040223545025832056367439319765502789733945999516115728339781862955014634647826657985788928401159325689219204984740607020896765340351453509464004543262496353065792015902724106297882612763195367403381540934216459763457771635246831738347737462269430937945029106979211140376714512911704897943860045837524587957940014574684282599567406389804896639095124767313991906275194149520414248916706301509291439256513805094567514945715329134201763149572446029458160709786766582151631592027010262358251366921351048214654570492891681296485391332761101742752633809629024468668656673544001764942857925430217014234730487500875483910464651363780016638062416203186192074879678981661408714125716463413808656519709495395448744957259832495516426112703632661066268122778857866186044766710570669160236371670969060513676449599911918212397062178955704359618634465572464751469457806159224013847036888802854675702973736996677456005594796995666089218436700268700021523090711191953405078553353378180608775721819521336906247394537811447320454093250395404141013985559489410083651750851861987933352958556001852954513021283136477740691267305712251380625243765702686738057784531926145552953638648346590242398816613602870731917068033919246643406020451594668510369117309894451419665226236111346024958901270005548302145406579468957515638094302067541267272808342935957948760551903641126082719505591904174181155306407738186591362760174258736467874975742944704623479576069939648194265182349330462216872909203667452825930668972362503968076292099784233768561822058595305438529358003986922712471659993994217513716145639757752371825716631163333715329967007138363978531364590266196491202934366173126345506859029842086174772494270309235141327301530981107171604670274791938313967264670894852655080112206053111031899159133265172065994727330483938359229441839544991442115106008023216323082863050522001640291533787466113530177091625027500157711086555052005364311989437572412694009028470105734855323158073732942699085062810665686770681119247510905317145429787172517868206343993231770555047521154453605560182909943097677951842111481344458047827676165457796932246531304090101154303390459313372932087287903997363756795494855463768568854229803943793055114044538756296175026945844702350649676745988552636780849708717999550778461604797852200781790109238643134770472236061829244424400960725852800025882271869730127803019446197717616197178207018318933276362886606138057535228974176281833811402762044850245440191273459123311846087145232565004212952216877916150834951354029877292549883104989025327132234867195007193194112406034160483881147185523685084766607270915821104793358665051022375986174456890513169134434889194499579249358427109038242870942050459516116394350443468838017732150138440527256300217181147286252246086651609389221572863783654381075807363588209694376536264483502166373225007787217946098439137923342544976608709400000298551301688832393708226770725510311234093894825054469545833220567326193132636995171221145538558284368176263100496064269010454335029803317995521033782549060696772417537928184562652537042017989809754777853336767526988218644670741755281191669354642749281710925180117287462430795356589129735382847410693326145521290373041687904596569224043950823592412428027897314718312972119825392313840732470205111696421904107551827961543222886252809331410846923740356316904935563635093683701166286391836364847686228210257707391221195473908415251520765125715983208522366059419866163136354527832921290619930153994613737020476416684945880878458121480281633189188688555906564036470970734567291787726817275493447723414487794729017088829622233906911417410182253163682404266673260130813868675936815469468559460975136677187391041447504793603619702131386751250043491196706771730981090462552791317531827847417687891204930158012649394269806119434636380687806448250053986950857274751740059722880107650256054871778941701318844795947940343858409420797792966098436006918482448998483195791811137060559626334143476747459497167416760139282150090651389872813543619562574183048294840657720993755915528680864975552148367373209789924044104843420831647026831774538652197481680156340569562473056616509681362092947068071448742135027945548379197052525952479125290710406029596892717629808217748415475059537489407682296595245288743205376327830599322537225558898791560140526828102115290144544285427143093889717087290161308510317710072212071072750828886434322805224026319545094695225719556372623251488865755411635948413897851644398298710335476244275377024174637688132871968326767915401523060380356398824541461787198837938867772193709788565293385010310512158148825132315925165606260834936564821650314250378727276518876340222490129968820817195423843189203928893995377328540379126809841506396822765255984598166081180378304617852811683868518872407415669235417247077767913367488641971134089508949772852342501176133337502174048357834244117874175917100829425554213955052193406743081528934558725271052511804996252523573696363288607875239082645469399807295519464231518699077746584233015445028383266019742749931851448670507571338394316940421047664183096465533286932561994528315394946823609462923880735467275749414077373387860905115998931818341283761578974778623586727765756902482032751310510951797398289457056527417652042112930926552397271300496235711057098925692821511857717775765967930317938272389856725356949879167583680562457176595033007507658336250897245518021507518640872443213220887285281709027567922462120024850612524630432510451462616927940872056886958258796370903493391285001411299194692712352527551469358723980521848394033852875178709299155496248277035053630126792525042487521851277218329172946841749285451701588214329755284142240846704028245771347990835742742435006010138058645428181242405369274699219963041668230714749389797067686477298491968176806879652278477363133870144511759444011751516173045110299593826631710845610179306119385570237487975441134818743700217778813266353319461712087406077441366226093793733979493786186445918624213966980566758638157915420238538133417542307903291704510864974483377971767400417009841986489628550950654923956012517657322667128997809036349975969073604440795673006921424986681233120836997917959721266138312655110597485386575506673180354842859733505773828324435725792366045120595282472160302551370064166055758098141375910032617733159678360818690736122837393299761514976073720265003530430547874804498933891661088380846008683734302636545436633426445237713297295872255452862690589572207826318168306990158674838208168085730677119805805962213531804193414395646591099346932765328703946361194388475778077510067923869134173616124493306107976786319350017007653981700386769001318439278703182173658468026267002290504360132971544963786277027242207197392794660408708110482155675526090922433934508357537735727064639361013264566760139201663766650069985778181628380586760038097216040232534036799347233213687788720707467336194442413597648316162485420713431939362334009069273749520195990795542175693098132021992245862631682536657231638228116931512759434119757408005616459184331868797050486125132650402149269614592453163764189858423623874745980096051833242692598245596050273956851950562838348573616170181827768243117882428973023051128445215874932669555648361853158742388011200108944758853727061376850312523703121603562867828493057379740384736355934123082928060846789814084790091879153936803830187233177369810801231338702371758298734776293607254588744613127647218257321759220947813170127290421577140220610176932532492013700511142295496750203687629151222896524541316900481434024163341541233298046805799604171407491466286948158349633338594452127269180703345509448226383583211753236826938513715669724936910050259293276546326166814273184483208416389194237279563880379908221818545560047462267313528543938064314530914296513925869442363759132559254771058641961483417459308926843328144732932512404077868143462281336138143918599960041125814528063006063749036012721254666035313435749521147716838290773933102032913019293587451535363848954549524944494396435229445214012792142803671112413432632630544750212678049936754856621170401915632393095758323328007750702421011182482497978425657190971971405351616772037213208966968115261673204056927364536181005954703435653338267692594465213617953234928948009960452174683945324579401938802048530839785282621035686556460684682257015697694232020024191733992282402387581908620356503273182641403972539692430124477464170643971869061992619675007322856383865997038633541082309693887812207232875645279407942800048218945008311587170806872644178399503725530084540879575051187021287185879556840337632570967159782178606658669929250097373875631934942461721015217449870150329811803934298919153291647994107908279177882951343348179095894582304721038576716988166822950170890944997705080859942424254321563315660550710917557366312244492923056184756219896271874286881665830692960178606344774277668510562122666631442630692026531987221331466070331044169440467862077997856724410312410992143311549982769639977377290788802255112318042282406619029224068050911486506090242659452106789320279596516529794007653901374896033978114325937447206996576147612995648837220562467982988502720266516271104871352122742578013773426822374760224173684220778564932518364683935464994278286220152894115933401999957330828865513952680297004344749080665356364982871982538758810582555273347864070141460501163284742967850588901245978649014699867143225979782527991619886949471612376067657884075886839997311504843266247657382353551267720713033565643477259545065079994351081361796506153077488270566950359578330737850616875091648697110433909372142845981483108377349165597135368211977775188675559638775727270036269321396876552963608766009911849743357839596177196878392402091084630082274631180577973291139163950252663294848254608063191062653732571234865571299711407109664872798817659496046585100236970894837433196992946605942991213436793102155290099064621372421824469411832215195893600964107247448967230157011748465703307442777303313848405398803942132439968196683287175884123463124024843355894248149543436917770667882746149107110968620977698920472409376975188735063012186657111668252027639648414194727322443303585171102769874713244308364635516643768473396244989163587304852774128431385452251532226678752430289677173089737742128094298770449170896746575835466270698181402370413676119470730737143019028803761400437798812952743187662037000424111564415492293854718337546857797711291151619410574924165365680440530557143635660049650951407497803613274379886951896892575883065919838003280232178775265873447664286914629037077437071526121726469186123215453590963671856364876771954729622676837166431890339056547558084537585092097189424416519704637948237970264812840321136522459297695641625157328797851016492288151833147093145087336674196619757305335532842382706593986924920181025845127439805978471064432846503106580705474729826981229211817130568406703609751899259200211586506058268258325051774798749881778384309852082150878209483147345025939259561044550109659614142337631423508173233324552722048050694489533960215549159722455572923298527529767277308154796376307792187609260420213283951179164425451302228172787205778460550063170760354022598700733519382540964074443495304425563837979778586503945337323521981877822492531900247786206386037848001393659607046348391840588187799497836489185738347114260772141409421986740372687943512147465086361782022927653848508120770124873889469241016602088329232552440755723685640504075892010749186365124070943702762118953088908958799088863643238082016287247633727329577665214493720051869722097061922488298599987633936505977598017734235884650285280696815304626802933714221053183771128243365484858657950452809855990008143215112614290648277058529648507543069917211225492385662361873915312397144004545720874915604472371408106373528473390452440273902316239514781590695329137284521920752895219146266719367920339276058863099010688797526190921808482059989740565611060952757051383657710296450591561268651979969529036708471629862350981468167220157336489210100999613346819375177333596375951415025367282708958887384365277499892879295139988497798910938932278662010278501102089101139319233534964039608039402768515236517470889793496667897861818432186346195020934786350539569157183170495407859251789977027291089824556561024506856107517506774727216154808614769066274687925172670572543466002190704797844101077662612308110618846678463461862981200701537414236893208462353317534462492871807884286103314310061222400105632635026112042910701724769020574046593282072199877146147386640698404343761885888190173979758298585439665371890137856871309458149746196801397240225912235611757819943268825751064978678691864902580643731072995528003582445412070226815354529776870881324756939239196305246315714199952358631617155755215848069938385492594006119458080472911228395634252577804380676271017748944496274885265383903136870141788347365652386695861318048121672871812501903142175613743772445357165631575487727754441704962712889161496104264343580190808239740037625581368457414091355854511607457620069082306057309070614123133925672859137684648587838349565963901438878127192906956117727324905689762631267872610647414049777183929772210765884115293010674465574008389005490719090923717580861025492566805024495336196134806560271605353579511152606181519215139858592654143775157133490389920455861846293812212884610042290383741621704598874063578104265302164585884330335643656379505040415569671016924614126358269853324011146292251566823456374202258904278255984961310205168918067472629050554482812690104983065926131136878360793555527676068451157210677261390713974819113988514630848767404546892561359528704927607136857326675374545573438575410903802632809255212430933391323380748723562524583809382496077980497178755492917111373400548344725807638951140980419957797791361690128759637153853574560079143502475091295789221607078711137236451913527641962881792281257458977091040870327414933973676358774309007988422684117378838900213824886098386757889437928811162325588847010410235527096277499222539557949531102039876024104903131536498718881429551894640741812190758806905977225639598258868852544439527356300965547297345745058625111566900337383602470436577835251387446417122505749256794836535353754476953732124100465771961845775499563081712979847936788931773823232991242132349333587855277283526098614816278040782549743828839201603347443129438556581234924450063384564949475946577823752098636516782827856098872117494252763412153489678538711561344336460473743122172096941832926350148411653227111843689216270640194120721148825282590237384026181943714535762288487842694585865370618647732654487695577428241262106681873046120512392647336605303585290569769198610189670093304947965751000847023277934215624087097256466310270274186820929857211158382723553174981052855266388153771143615620193003364273457816504982736393350401764240244827502668513715667149013692350863603568594572353750978980644104382397907153118188323966006522129513060400730896375305269765880214133755094805814430420979188702788951565425028994092087050026052825820865661616137473386724825860301677778202607124949793797524269269370726975555667198198958325820001171522253351535874349593905671296732869094529194160950308947094593204022449824020178894435134843734526439456367447468809001602418035768851124719849004686005889735230062039954316550274774384924258427632259740638779289078028658871312523740561679147465067780495021354701381260844116781738668761040371458833954529460275411954220224729399229132698946456883946158447069155266387061508809390269196764553181155449855499058305655531235713856287701530698180217028885243826753623925438018199356522960830262941541800734026867625767425823852784865714910742738731135384923464064780032301274910378826280723771284565640882892623040963265826733601353487755639127890682961981708149025544636035056687436740921640101142216282387046559739817784712268353209106092055393272040273215935365156423517521956250373105516037581631738234115358556879877030801947643644294876691094935034768509453924721580598882864217048522501752664238933623098640875870628131295573506379949305466472863469678028384577252276954136140962187011107627798589093641487726061743456526062024749429993485758394753807426097427528610213769067682299246095083875320123607270781720201760123443651558699734935956509994625511084828777942389751765191829291376158471971478677222876815294826435066605770209790243896905523138935490906391126667917618912890835590623786147657168869574540242221464470961455731941101883465403851155385663759256383114357833177047220347803640177853954266449155264981420901152369093947474036864072215175980350659493745363304734340894641029958953561997512280249420980827506022510485622000245757013517120235544551235835658078650751397138175036648013213816584786124072901323517372689315767797061558316616423225881736922176834077030579634161106784262404881028814093336221710754324994413003243120468490374870160735737910890337505304652788625693954817470470899118524294746940354482502050368920094552076111390585887648333026305649373672103857889121455153000224422044386376404469641808776120862213717775503576153284797286290842663219249496078084322351859806289898440460887625748551761516281613283018158346286813643603894118998507805721101020152883236706799547659098944607874366601003233261617225260444630390694392322324711923356164532125620332302264931281833645707026479806386496121366258939054770453559616446930797033895538240131610545832055999699961141847312393324758918704033275275994660344964472004538392321020868359647841483163934425378920683475770930857636499251669000966345440727606585330539593321206216783046436997631369014154105257921900757214732005895366102928604356130066306565104239306841006382972285042168094504887263249497794383955151070819484051855140979167216530744443258270999217145944438281631909558465950857704364372048333018393667909867715436817982162651834220306018135713068782933040440430939794827994369125122505339060455662760810672552977183516609122915876600384758229709356597362707762159657418492074030374212215179864306371729102667983925174783811551684269020026160027740330557828856299628572656732621330169800940657104690119670042512566456676635125151028260704641520386540200915129360026791652121864597262040508890294974897288399769678570234179576739660637079970882517436758984036131724613854901033259731626759121829987710708205683377132670348448583396287178379957077628213314485277920127710332423000252590419846826573535563248763226819751726851586715207592000976559703854175812450103086682119155556596968028348933618404374951759399643500935973750783732749836679604881515265674978583790376847830796434291788465991638275436931620265675941650715337641210522554306624210425356759839452261275069411897486908834421786291618630145774072521359630364384241168699043626525276875676410825783040084438164617161710800574176256963553790357505231032234072056498811329509461018604764039987683647306272406328356371800767035030846680376162907750698351449311983639651907095682599522050156748531457608050624734247190922356989201303166364429694822478568832310133807125002676794173091759731519456756604872547265211613769030671209699285913272059237139647872873602520407274990272113878758266915719238596197600070180203458470690313199453512415633589787948327753768390834951177833314784520098602377004955385090803837806413549782395852748974941586415138194438342800666335610740566445681854562912036581411127335682488188632257005806635885544663466675287873456459193083031981766945365716547504650283757094968519270395358834576755990150536648143775806868429486034977931663792513345093874478828232650797842458711638973208300401322053507188265273337897753677750697533495972334046046257576158687860315539294901782980935185379525173623681952055124950409149216592581482228341028016414330644301887964445431572137092157044018259804527070379489749832316754011003404157072188944378881905013006392015003710904316612584773210884437826340409575305117939149038378161704928539466414386581046995758815542790203998981028453773302008393158941014898092169855313525295745762172494134620225296005605288373382455717748860698760280222687446219560675042021421521799801176530058593672666243046872817390609671591776814377512668036586435892849210421714228672358770030577530732984659519055493944090938322763852432430457357501557000407919264439294973139527279490780455217349903521618014567410944580991037364593883425509164611682624320635115373502023382370346153072129239861027849368981463274882854227631500224827998751730193214282810431154949813213814625314519456188614291489981257874222247499101980793252848814698765025426040139000097330725689888359914123491629185217133755160178305529454151878069158866600116648577134061565948009191136909725963194211452882779338748836625842166771910907593300205642479207479222052753698828523683295178983485050277308143844617605610138240504151098480769421246863185283437943121143577798080105173617910634705306696756292371732841811838222912383423907746315644298507940723779984939398993366237104451012007057249132555487522049554985298123210023559146316310035785750508042936013052037982768573953714079208557872225428099024474364408333809664168840721839622599224010339385312204112556072637179921506882779029426370067167385057581787751041858768532512262079043368481936025715194329074996329900168482151665284175652833116000414007879318053183173842426244096465046209761974627545030579662254483008319127360375957446410721317057851077911864750364536739953546853405045681525945568078598642924388338074069022916093295277732798095612461813122761100025643116542732067655628250459996348030170337666637652387520167979831287927345036352715534850808378576546327089411204706919796664871239248357032541411795896471510045346257119259866396948066690543984373810166002775957362703275340549399645446222016152953667357804626128153970799269721595118793396962092686456274476068781733713352120631767722105153420359470047835978705394361088264347189545398983572493805513884592251279167653195140611640515522055869642028084838520193914634610411611620302317216275747493945571721734971062611346245233248048526460606774889755531670756244185204018290484822624842450879514518152967867257065783854175301454078093199053350697618145218119942221759323181148088303513062641613488655823755847337550479833563532918555067908772529671785679910292617306146783718026000497551070407672572450013825036491664463544381218687590148193634176405722447390233548093256994157375629775489326752529906655107163464014246493076653010613829768247849681189145299343613320853021874617363329560559749384188007213736521704741154215077665887181704089155278391674278809975945906231564864451571519795028982131388402977251755723753357565319540896894856553528003093087469900933333609605088755931970950333057096832286005183957799202646667119584833495251554428552712241384492652719127274353260424847231464122427013573677976944662493975198941032410314641673851614485232796061036300882453290026781989763061709542682298132495849864987812830461470408192790802928139768745566345628992959495881512016805115731739730404999936936960805884932698305127853779247906597844079387205852857994998410090359679812302936124594854036467893583469422602623147772835040176285183229439144066158849326184211442545079537181270355713755833897242169979225339657082434037901903856947344292024213921856838921414277964378218181166045257824020418711257313325283396923955212017316175396483532343777547610733375592061506178209994283583065044802890527941651846348624679940724473842277942335433253482908438517359546907194169487797720080383039954053151203080289041857433235454430973531908905973556516165090526685527829175873033599581380006958889453639544795385593736595794393753979695622650475181701248687302238318534800817919720748281519399650710011516791710496892025744343528575463014125915447647364765435490126294914343909327483672735802488880783519810919461398944943141848698587681553606577160165997408607603562405312860277063248924385227466337683703374034877710322850716026748564928354302534234076408083437123234063465129991420263510404738694926997104972822048689398080413568915307383714199474051434233217085758435801472611420131217292748349758771223964960330463953385929818440429705798679921957441362125835970444487784964497495675292353958508891375228947651390269129552998125765545069032091259753429645487901198858704506091353561892682869041454267229410901194328675440655797535979528139210712886080644811578239387211219680410036460339493400283784090558952314526022863453418351654533160135529218567162804247878321526538218851836717786690073849497463561859238343415707265946009300267639719365397712373518382650933664688960118419729032403455054732419114487581664697367398833613920628681063280219868777048491924922722142527261212733879514572472698759224808224035224422884075702174971800871403147762681146164196751339440389352216173037728077520682881585776367001059928737170537916503960391066297117066057180477708503377001340827418404662928279113556971454525837405015202069171566035958225582944128641698745648537572536955915924659687792419952354580275180349046549808213366514744621350294908359785944082935723264489008354355732424601309947158564311891199433697759366812344961017979717349933476874086864382521689317173146095892464569098222991594893704738433097383682977042226316395278114737056267406215039556898232874987064874288545031317181483018946718153065481501519116111966023868468325894459652519203858978666881463285991415664719387136999075910101106267780316712503517890105540756073905836208056853189718121045109720309915970590755831912677203698042238977072710550408113823969847329756434167336464987352014682656957161379202790420048492376811154977628206406630776497713377903262612470959450022979907257267303212320951042569102414620776311542765368576427200645368124882706692554228637340474386215450510199832715523531345435448095237540334125313244271128390721010473244917261655494578486000563019450227025768243467038910113347099297439896731616827885473189358469699433411065231283979225190104541522195828279479392317146736450132766835770954982157931431828704145711760318854944679711136203971112282316584757175775146967161866020236748856018099153783745224981851919638194782653523119657411084121618659460619495782675664406436526165387486406054121391665383267212328495369425308474118215776692926981845175572556936624458274885551484542435128200873936151458927581297699067229753979531054217626364859238610857617679593059037173323519199347349177353033229801588393729041179846055021282011201801754325413393094409621793586274598148244601342269909984707654303410775755491159234636617541156729822830783129742176674288007424184205901504421801740596603307157238209403639005652670732129334248826639472381701044505399544584471241063595258671830904146246591612007427452839764024775850801707862715817398684037715803367421138538763667019031727111107494391983936280325347515804649582839512490394127787220383770042222491232394951337334806607251152920618872258989024210947033605072588378675017043666524781652952330383568387486702414242602879943843210487915233140537224144388734005549041452715718125042709523812761115759945301508407587374397708359730587769263340272277033534386012249055490136492645190562242896911106718385566831476815615684479629335276256727399095413018397138723364224429888462604290746740400338991595282405769198344634192069098618850809726843705311256346902202505958255929765623720367523553281772454949641503552941548287790161392743550678113679293938600105173959448495772437099041905060894675169447951212110887511348094962744036903817043981256143606292470475220009958014197204131000167035815388508893549470881545753688354146259173545841561082824970488560201966171721639629825187187693849038695429131260463164346505037589792659210820265710996672272889451020340393086679325763349332863478793985973826674095130814857964532024950174354202483354214955665921540118132305870790989433723047516563691093673677856980275588020332705225353416165318633206508084015134629408009481496646565143279053435443255261698993484127723694611973550223607849356090037795784391261001030061216432699950049433688172550964137179051300151008439534215642212042895354154191575421103946320194199106941702861007142443983035134197568579475728730360282181803466971326016650961503544057426980204424801004296854100639568273782205344149599974903947139441614052836980024861701636978665443295236211693052747536371479712482485324125542248923240964867492960883755190690531661558497952507059958485420944882903867774709958617921835383955199944726651074865227749635197734798293750900797226714681111416592978620411661680023882845581902978334619715389655710415597191387430730589755270392678685759312694391213906454021286773505788701994564687684980627248748459640253567436284110423053599373521800157306686602787083329530215109415595035699360405911299602925635715203755276841955117357936511045249142556043458949439669928500470710528667137540117101297714153673062056544498154335113495302275408733757072464832496100866739296992409297267301633768026428663071592583478967680557606152100624334030713181386322096585639253055688125215026990138892293772329652472011344156704970291233707308485889943530722518859957341037636809256045945746990913161467374329634584993501999015828236216683339079410123845841204610536440443837404001285509316903502373277547409193904043816006101545060931029980239387597268748009407649992403177153753069713236421453267695079639370950660216720750097211694332905218124099958566830940243261952091977095658799310674664594683971446184178025516021519192149598250472399743141243111431224696846609117805488814854355290964757329514545247331425283037469844151648744687141301381338231905131144534566285956007960627827868827432720692636514344308945675938793210894282673813345874415673056300788713291200946902836358110303668396650883996372296369795669704012556898325137795030245693074470865449633107327685018752980487412962532057982825486452346278791676399223021208423394927582606691507907152772187632154242925039103785753263061440854902101871071230967798545868123570282748085729036121857211643520202660572284206036756935498970972926940491555572096959309568802308762046863471714717415688753290347390686573243006289827669366878185529875152977400802574638696564119388845330815881538244696423801430766949632309183704302216549884765121315495656138855340240074493562996583352246105919464279191054376486693503311473710911472235511625848022042148096722724862676120524058732341782920616708083994257444561535268367152203058099259936734951373073361995176517866430676532658212443994748889800188166053092164453536683818654845888083574535904799785484140828489794008074920474317174132559411184977255560324094593496473256642360919547013441897666672550618843919173947300047718864771287760605744864854597356925000865790853768874148492141219530834821415948041498650893788609592363602462357299246716588650446944911779979555946965173046596377675470435905003991446795505992995315769897887003514202680535924184611618529808559123579927899853872517302821915150552722519492631927333706180500171734679390623210995184298405555725363721212496786700373703341444889616092959109399964493410897476658793623004767233901181096205294197125843576501483092707343086058043762193363332716905171392266904152583705129128201280184755322038350487080772600109293061184579945467652148540281400824771488412876172546081215146693236493495626752336900041665380818562772128658214218224531921199354262852653252265102566703713382920548982504460642539093770981772662313788776642696548921589157019520504670232854396496179443976402054015863063035775494548009480745754152790474213078153879256828015336214282793477684637660020050079543444326833472059494720740347342741399988921888209912470471464617224228793024148806819035091437525736192340065688243046768787702241342668545948686919549198337352132179962145864513707076634114276915264148047511758501766877368216271036564104663724556314626480741294408300580304982393589526384754258076509124199362871684280017009448484017477234071672668227671546183960516034431879960671458824126937028817427010907279998602126294720373023324529498481331027006428283485664096916441041689632932629705627523503912565048540441956174218517797613069603007253317411838070388718111184144909198482703411446484870688531173014146989769486966674464404075386626258081778271792789221844940588826184305777700688606410571506489505805364214901758821344948075570376379993126690940230852697381577415424222928311062056675710873318954204592919936501358579171153496941477073457060986930536642957013241486031783914181073715308404565987870767906900703014533980125670257227947757005292183448165486843448625521781370975561430593858655753244296615442145328966176937455103910694521757397526203349239703360635041741425363471850377420216968306096450852799710764994519341299002960140873625917446915171287622361776628192146357027009594618639539457337205840038426471764611465798596895566880291943209688778254388733056766790126543804587712227475281192062987377818504511162272377092749973924176023099730524039399144784547237385436327495507112085209622684909740709795590220918644741282673625744992274169481844296691789254528203843491772399757567286367378135948894577162340326511760552858118763947304203967222921431261954386108401210718709408057822296314683824185143199568516033699170068404817603254901822272966889988060572703778175615316359437531949999608019025245301455809844587264000491677887132363105538939403545043234936447535936607150279979385666986640938757599141518760930818841805050110333779396270265187124055330593942967293326544834822608969973769526686626009304895068601267854066628051238467182950097780351866727836038823539284834499247838114848007431158426096076073774248236797323464726253164675086193876130888673809619863878629423033190735039715521412250583425717776162430359509120505719067298891150372851037806605689288359122726579134650321303941865127466047889140510010202481300056513309728889449860803128876790049545825327316523337994294229728788275380717522387481164043870300041611638531131687263032530681470841871621103158186601292849290487737436303461787517462724476937493225334874516185715080622150348049525617544098259808946394387649483406463545145037090689285824786498576511397009643720203314451470119634311642748764443795840535441844647526173857626909787529117970251243333542946375022053216221120553947129625766698176493492937729962024905121018525268468313005825540354503463866921710163386602937751198636220388888959170079164592950093185319995396439488581718206313430608565733821265314897699180264061928929937621242056935303365797666176370757005242423683404201701534792831477053060376550624646291366808011843477128884851619002659285243752266658854645155649222270490774283510968127973810414261894584670596936806425410989857568937477665205565685212769669772045100451643682853257977829895315611425409845526514663145495396017908140535746067036820702013532445119429968781489089679959964084747538723938387009394512408023133305584846295845856496818334748659193538329555752386768122041929907389747299268488816097402482750331812299113629058629093945119049550469389764174185255128429953066841890867573910627419893829640898125558619600707474998883890764842780967488032271410224003193216132208221224831105562308535230166951172578723580100798447128923149166336926017784832394464127194645400950454454529883821309393370551937855512888523695335915372478859994412688282692762685432251199567079674825067417376420933421808886716700019266061217656076494347575080573996247330592256857944579113094220369110003691372926883906098046625986987656345279326612099533139097285124010134150044232320592241615672585392108689767359824581048424234119268534549357456219993877649562409173619393417707228521457587322112405583430950283384586202291306187663358506634764129494928172673305788407171127094107186917528476729773468160388093709460281127458205522748526519487313492371763775140718309010097241092160160987538179514307719496117858452296519491558938929628617850484839409420092423851983795852687570098646334033538600016905151200882173739669145080652184905140343106570791107127356537663269132354618881028917079086065315209503448580267154582470904662151513399981133320338336661257401521627145400624276403792259757730922079503419983629207097851271382790580172396654062308965094689545425706759681121512559481381514542899411535304785951930854503395206995489537371060003088722087574986984279060471083076126194828942181821372915760810956515004774863721479632673402975525035449986220385553059698346973946001959181096891571853120111705298194963371090616196089796885320181834380308008575506562988761058229330194574069171566402068043699580456277882922344174737142220603037227994025242775454465804186547706617912990814592591431589906727079507835429460171855089807983446740547486058628334615442334034859432229853177365103694972344670676844337710433623275223864691457296251160663816697854577545521906013627378634552160829586585544834644178954988334712972054448120107657861096704941214521366752528300159258871331016194144651591007510484122601964354005256760044752263558344055960452563980112358867885954924929046591104591956089658991730197037452009017239816825901593080271910962118705782030045457205050908323682260263669690317215258410368511466392223547545933302016097714061064608225102260481857349836813443035582923162897062766510869047659267058062206915846706707539569703741525819218355651264168309408601558738106596753190563796987303820851742935859500170313763885987853852371500567268542811370847352415340414785526014425298183024173195348796928573690783181916622417799327328875557208433840730198865161000466885206178332527673917274199448207562394331699992494407617030842820223303178190399080284460350235316587503882952449576622670391247624113469208089101251738261948120056491044010819606023329452516587220114444399012427804866011458557149803114058461191028082723670716149713268252489542581895420986806808834054479170954698576272501092956895602158070474068263713190476952972648569677488461906550486868392620034539570480898092631508725732111022644092871362750729469150992915693621888247188191899999644413463241255618149181714549840976531583654085083785237232210161943972654109806480486169177708827996707665715175122672934184956561028978801633752094635649646905151701784514665706759725613094534235474625432953061595868418766415743863235745107573376149710489006179204537921670676711447576100561594999659939185879135916168129076338760117400180335571692121747466291502047729109198981553699522156394280384250827217777620219417517518369946781758318399851823683500376961035978948124908218929539531452781645925749724881920423717440966182488811191459414492036295609040736555143458668997232890455154186517817781272345851546691515512060877932382706670929374834289842667245087685123232711730831177166252224820202251553658907851312250831726783647201177158612160235077397085351033075602484141778939676538775892694068326833164685255996525156624383791950903865536420681753885075563467779069561734242271149198806324929830288958621341112422502568682252719507542452617288287470805987109451081934393987728701498093592261695939748339583502216550489712431536790202320508835378502313011594153595772175355046330908689316602740247024302003532885230194269484150448959789329921391468058283777443046323287178292927049621546265200751581638405105135765912249166730478772675325948748040463481296830163767330655660374347536446910735129369841912704748259589369763139248278997640695005868836656757888156672258293349024286383556087595528916123533118194210581287234148693718223639307096226371661524540130070084155598947012838677587623399542551395304071211471112653530210636284038343954724205355387984140835712234467367591310926275611841614278373891833678143617295395456980082971645805886186618552159938499005601804942620411973420356853672404961437421132766970198557226398856603148165266747643881171535439735680065557600339429752404435569990924705305794802764428534174429335804371529473770444546099138492488155928543357191458904694687746678362624221433930667333979469194726078775968530020929693104009945230241044931481153349938930222933605728117255363925852297011091550791822036001150734638630333752743711021224989271746914053921094564083629972696747623166692334785873292792336896901808989271071058487399519049959365721973956475405852925601843787648161950921003178716435507435601334174852997032065757739500646702310901103563732562852956253391416666504231407370401209971174009785142243075801752132116155214637620412250528142702527434814833244148005909865124583529958082765413596407321789126015242832874574610781477225370230347982591081647743230069303506171236836523495760304082949530336035134278401031301246302326082863688808841055542672733513805395847835787422239408785610435300398595726945245010850161687933568753808036172660128792343994679612603695092848535037720931700281627958961705552604499688078968052165039238669838194847726457635873264176652271639818762807210574632387099199407003231425922314059941969331654908781167737941204818941685127143539939546499323557323188417203723706508567561380398143087552239285481356742692142110577996448969958254309235313793525221895715245136595948258367945283005627244506975356793025751425400857345233453584179877474263432820971868121178079597862094678379412250429476955300909120869746617860048790873307305203649256701743072445997576068736375756017149302384337541316758694177230231504939449430547367004305975851677945720954761377873900595313914904370651773571278971299564966632648807650154558392178895509476778252711927360282276585891996693340291992037248888781982727064670621702044778752477541589411039147297056960213308679972617821131974905645837085314137688410340929929713195972063139765987328839795076051020317624527886231310076630059559002017439239033039945985272247645714019950448149322650252508434210659603985450847718152065621919397034483847593193463373733091742339829876887822607382009383257441242195209434597400852242877288714627998099848192028433285020384687820809549081213332555189904383797329308118004043043890366271737885288431682063026807860217076339173011090491834661508168995692569482917548728083272955667846078214341861194407426122273438515136454172917796894102284237001807418336252025925865067399525466259175404278166723417499380370977278486782868605073913043731420442956243800376683616329062853063504377422867777556123924155562908244173063137077104524349396464312604207844189468070868404081003773262426948653136583155915004677315570011811984710658324004732219511355703439583024903188264941806110798139814823569743881178304482670176837914411235836441603453205937254013629679584745602471516974917655300504588535951292079194028358570129494041444355368218903163192338510524471255390841489808833680713959599312814140629228832710924088763567711561326216027182575378040088326322281616575158621968553194508213657038152097713342398699829412719155886438532971632294200487797632324675550819515771976018231264434657607767054871915322704580813751095471976073799306745367082941734023050189536311000140796559948803170102994042316953629006002584295711974778669278995235540139523940306180277071650122200049283711604611563962730653878970067856501411000427875102193096222271035859562888199438313003382871192243039864325717263674397592618104862448440749723943788830653829858481744965904227401936509631239179120342756638436687921925434629324643512208080995995267414363537022376293732141477796480789840387570091721393544426816683173383147394488296226827559548491069441750405222630315209066786547722525544747445624993764003136921640248587752728473763218512592603086159413359422499256655484195489122540548851817342262122972183786633680008531042697869376279925843165094291546753153143607166548591849772982112854055759421274114916380985921628765919082230451412695970572559150632519880027874821630686022037232125007025593262303880305978406076442394066477181917669112820743701115631658414432722944937894238748758020661319126721952732646997710870189466065196645992042655172147778847560911775111288102118940989284349199387825500780932218677325467103261782472284961924593960125261247807825092883947989806298844481609548307882278398505815132783235467837799463548445941993163111555179466587605744281465901714682593866336478160504798901248968355265333005619121579581331643486848692490449745558021750395899660805809866260570791778559541201027524201225536708416486177308443806197688987547471816323400866277098480052486916564087822058743837018488295589827331115109096219224113754979295684916030710738225762659766078811180984791318634577816332058527589328793654615014782463097193055264605509082454126873618738500966008452340778681686359864349129485656455362138942901639250402936797013476475741296460700263790991173489654723535950530031060846523836897330587464899493998121485527565570669636975858166044003695328495961800136320402323761752415247165325847146156396270079648164405570181868093712343395337748267939435134011418065759818054267341816712927780030888701829757612915313880061888915716448058538358699514474423679583651447990360225709088852964435311569628956042168836783822762458119474063288299984943811234741275633866543338598952431248252033113567096345882684252405719232308832153571092000623424507789913088240824409003463586457986120468143798639501619927367531896500047929938633946404473768589615934857354619583850241402270038264616610608676830148040196727609495218191029656581812179613395304942800853095833526620941617001165487405997276962681483926576694193887935412118280503364166486199827139602527701738458675188535110331411694645289110070552177558972838677308459936158340609116207368420416306611423103220824902221822399097247270302085663550921036050687511178245505857665126590895918064636412216702240941458157093476736175747640231958890989139314047806710728849854429822411547494636184183968664263653408127874599767606684081401698412790502819037411607642269438427552571808122077494064384672802414805683335337228355265868860839954622445582217562052246454668231478434220571728483998831523472695998278079197902515847791138974810127071394099414536265519064200036168903614516711528940448930260174021149126281375626871038049086509772854529914947288137711770572164282250160837770621335506684516557414307129471131722401588598241889942067729546091693904553046707454989216063222878654630240258077349754815813865673913730958380480912220057706923901807196527293541470367074982347855846226476269524583225175839697443931672939474171587434150368322192404042782784953724032771576068840351775678467180269899419866167229915143827091230803099722605873174851807287704140835103235878688496062878246980928247975088064601289463515299160077618919042407958535610772856353555576268360101640706830372518473192323559977909785600894108481400462444915109980689553792060191544644720333054555019805067270662726000113583460335896335205471005883922797487275945706198762987416479675508351704226955500798671151502329384906049193120665619037485676861666518534042612332149145125731232967666003643471678576684424056104530608219400456766767793294162029405032312024023516564746585100037394358132068415361525261141048999713059037505683753000069383866038524838866260427969956463540206851090124066290849801523626809772433489577695814658048393679668484322814771497688963101173240662153132357158510620841174315291036103428935297644983729108324705734009582062657809219715845527267180941061987078502622217319741230142650705752163188686475669993956274157304378626645757799567213551212781656640645790240840683721564420098991650542000415834412855816530885885310861921750490764985247548392918240934434339830413731807525817776209623055594216502103165183319203769719432739246401941463839868016302578306551717078622792269955883655532719621784607965050961900221628119274381089905428456616192017283197117713146532925643658435200932915770991821791235666813575258482776724726009830360431456759664027242605462712554465163036787337372804361063730239742624168673856576716035639970420039229798630058716611781229510424426680862686060954445051327240272293430338000942997579150555931754023430083967061914022642348690680883989102289471466162064141548107999280469972134041679109279533673860660452183400485650998280568140383434997561660594664313033473682432458926798248032247190070335866252109403329832187980171313367433643086595906626566710784101551258037256168880369881993186555571049184405324221407128347354749318359221173698978902123604230845204214166368100801395441763454821729086059643720013693500099859718508017375979689315818112514206821986330506693909246820787066377669987228905949293428947944207810745733128040469794613309352601030915141425760443151291297331305681634975782768441025302974616833468025987214352037871238171947473592282717970929680621911257988913739111020248554400508846013995939701155044438170120586597631261001293294983740474610931742750495920068635466667930443000312530091023948670092226182336173330366166138687771451763240770118534238375178713456886847368693739285751722477718594737283705000028907335708483734041007204807918385955600887992235065697935619406952156652590411087804257816489994007245453044717268076372645781461594829073753145737643751551133227417967163875621408134985684345646023681898051016971925118421107557762196137508677573187089328302774324313833119432219320860427433313593247672444706726966517769631538828320913270470630656223893775581885386583599923130387482399131482192297832321696118644961294189931451230383962971480995342219824461291152758328615523700132756464164881966024371868353589479556890913083911405899876321960680773328174552520475201625109499645758562060111697737002741380341510664853937099685461398386250621160362527769205135838364466077096713376551038635527860504657768115420414834104140022294719250413950974186832271149056138477280011398809815460701915661263659194030273204876779836766099593631001351404113329162112906016566484629457517968724553058255896249227024736851805801223713983229838375097548002142509762869249151102931733330159133753940164571936178364981487690043452367176072251830279844639791508173998470058779477999397271330964904107941322086047450419015935418887302563891890056872612205392099945826070886807017428331197302288999247858790329102516682301391726432546813024477245903063441996628109613179726266285314744854186735217808908656669813272727854238768475075349629640013707531627398661852252224247230239709887579086320616955491315368023611874419130558128839952296851810729800272092164752836681685241705904142163289147303757888239438110610141416884419571880347711237508709494066574918459074263212540385276655342144676971969535622650379137862862475420266433379025279035562481773659194629493886268560809967996527457878070642876338899528031303207965779805167326307497652184322220040838138832948742937014054286197431394885985426948770265917373331137721362815303514470221319676388476196750545307465848760481361108251891983034465055414829125408945598156771954209159058603536642698157160595881559156816344761263897753255731454121350302032620389422334254427705899695014569148554948322181498810109640351174859629260100283260394809017605614271058444448031330993848933606899589756938228024803241645152985185237873806784774787123675678627628472031063166743396411236514838811746179531623205591210404681028257391987106366307478481066577743979333023874557521535230767252882748290559581508334170008706996512066723171971782277713021216071401507381897104323477290571398427492000161158005105982403654711287075772829450565155759809739000093505249285974097710494003187094075393179295199430540215250558450628951672520950344694497678824429363095116873377541742494184875964571091665295896892605926499240284787318041305469962869287304457966161727967622233673062674663536711085108359750404288530041606484557532393827754185436541288668795543491351509035984389529578030874829276805218031546096334161837282259308388958240549933788565653665732604109286967824247373748280355960941818931546737553120195725172264146495424408088662624415404815717821640552579704146886396339010475883269182392725835750571334314294772691504965722711994345261459605023802386628635035532709684617921142042350484395659880805167685035241851491875349950994999003372295623664517742046766852254047163174252687943399286537175546416432834390805815998935196452603047955826357158505398606799287882698425680237280843721773281934333655215826521035253561273583079513430482573097885859753767750359481272476938566835122292309476974715009781222888135067117154369883707009628255015097772027568614445158974848278800490729206495771649052103001911116054356697899106644428624449562519356496935893166838959931977094389189663634709323114571586963698657672586370179414706576706685308576054527319824093153458650262506389395839327055594227323881447034197834253678918168734557062468376773502096587286780323498367138402536830984494861400652796453421288665342447540414757488067578107629828871150311454394486135454841120855989237511541751266996902934929237014520621932477190786375585895535097519809763423029927567884240908649852400155391636814066543175375154484825313774327866118784465179350754604356471428556624687843602873331676651347048040360995427965625375950054891800395014400067129567903365250844871194424898272449176485542534972189020508242846053769442098698262822794016830762498807334306788871763249977490386808701177370460925624143179790795368482909474069977383243183298620972999031507319867668378919507889688976071746988645822805088895236001371615110841534946469941153651295207569122794725256346094865247745444757597059286360070599355673444002559062826030432243790939114804810274752350417269230618207149470386622190137682926578086373503916807956618150563859990019206754825974987674543342181011359161991289513571863433115144862525329851605081625407018564795062648273295374937348411163781404092212590948429017706332534719553466155315637416085661896282242605816773955021077265390579553071775486447661400547150966986474341154215261200816676246239191830580294755211262963903379459770460471037305602588026709554267114236587847023828309351989983312525838945792459109662501139145155785824956178545232520484403354471429687596828811563115472166274862881770680890381025747808829345036760166070775070092161138417143291895250577836988785603576033521637422996392209755856310533347428679468118952512140234162011354729342493754240369213314567748670904667508781129468248100798435878738155573861091252973947548794968863369475514926740834342093088732228581191110177370540816471985035650510426991832242658329942606710613777239113689672339147941542171612603431519015937875848028043445034284818353087398434142952694433532254283311928037001220243383843772743806918675181044924455844770034885151016076503760057743801578295211755409176328763050409598920068950178542013406856770670888331417997589960319972194313577104823462879640829185807388279784056177541027026018380667823221103245277800804866223784931923034688052191959327677133032579272019238211993605283467871461792682311190868404206117913871063584844206570612619234635704051599815261042738853386476236469000912632653120012235512275740762710875938712439717866899399016784696598111719619483064585316814685190253947075981836009300641653089913169698854218284671519736074958744732224614528534055593097061351730065614101330075159725469737304941144635305409190915982974326569912202486952647863473956219279032939077307191502608058672701736573619100629981662455671762015456339780544577127164083108088141904032890750265865727468047867459079429329051423108008116194872285326886188182829892265789355565895763025152038626875785050193047371462035518841716908507506046742057902387616426530564046134345647776063736175127565563411321074107618610569671859846868534373283102401842304910058530214878435079039727139010142691040961893452777492533268214194125067690962426714667297037674405828679738806817569021060601712593868259195244840094761665627862562484830362873954705704002891148721380462167327975820310994055322853390995061112858125577846110519720320048261348552621442357889302117144394865170311713108301080204190279096861937279930356311303071319979349553901845571343124339686718119765203924151578578219921439072234131210946501894958125831077617697076203861074096912615996979576873846438917640562135790156920893801978745646082603513039477430209917013849664058202474923064631261636643292753983083860941863557867163745965145117271244298738017170280335855474627737999385657647732536076279663974345316998192879464550458512498525301389406683559858200418594039423996109485173635759295197737135659444434526732909069005173286197785985495890715849618985185094272309029603486894728308423707667052545876182057371104403515219011987042433993616954951270917771472788577181352772779889571010040530272715459603824800761319193034182250059081955411463382001050559961850258937889115722836743327274902218671632567978937629223247945330432397021156273494776055460325134856087041514759381838897226265094096599028175824811471096286114204830979671635945409531165772331695165570384475080861475104028461177239111614458954483030977515796235270980504832229064355245521594228647502242270238228151696107708244738624775429452870854989728579343795120147713238011645544982535275647205119686683911161513504019127111506848596265154347954565123194929686737774005133147444907395991159060397966998677382511200511788000488989065364034373878040620121873124554595182336896236277704758159693346145146793777489356528532010560640513144879793468737710016310682945073571576352515778989927208225859938883158178999988710191262142733161526404282882088140260161474127792149809037193203675737484953676807740541353707858928576822649194142229895042492827470186274314025738033648346948099833532150664399100091228348362439453056887802679041840677967544516769551992607122384717152827963862908642267224513382202252862569692072269735030530230153658060532667011836461032014356608462680917606819860235787978847469778184038523056941031454986506264671691269170583589708710207832277995130646899207165179544442765734765194963198339339630017139487091056324223991182232548692036204395373580036901139979573505917559749775561957194292373901348878534882036742173623338555140255129611468978471977299037714358659700650035798416984576494153029316939434939959869130246458285248898705020712684326933026668465980663734286171357934166557282455693638570930161068359734636342214896445214744347284701610772673957503809953151663477002501423292094057537600194562574769997984741300984860415786777254011275643780449547054695736999366545223784813177964888148822772482210072580616939773839713229077158760074567616026831618105530003249066743796821837599320004015025514717831709699627031949323323675319769692329606162353480452103771673969223621640354888000969564611276778138393382375153263341882201008953047696912528965156818620159176410990401793194895090887954077128186402556541936669022770140835012694869861345768075195188043774028301285529259665671521209961968579183890224022236120213062105417971711381078992226358742314948254671730451619919290000006910150131532140056307248840698951694951125835654831320155904320125807084386937013710351855844672848394658190639743083637946834172021955683754444949154962270951186909420481891085482945577085301960375315092552459650945211328021467649209398601228313410669992658802608957455632314336368379756928962130016894531824921700110439542084284165106522004366791781589756495657409640683191399287155055363965133575515741262927255294503809328942859491788438943370916527254218025632684268044643608689206741290634620035734096071334263704646472209599676364433283879580750627878108405322914672245048163776583585980928976256484089664221124669450264899823160316493212856545861783718778181865808416406597963389096579968734268012601099237594108724145978814476903181422602544616590662182431902506355791694795658529546963371258275119795812225192113296445295459897327083608936533504758341321865462530474528210145236019217145660605735697044253208206967976890124690175095060064215740217521850037263758227934974525084376785883341933647071442532690695751577741258819138728610931741699477809788906341903415168635456510575943906897052960363783525197281468531755668083717564824251998503189448510899006915792907251792586718813610951043114970579792448934191721615133087817384112785263542011665084374920057093610780548344619840241324362896628383794542679610213778698917773008439824088070575998610212755013380630790864774401782533074246429866020161094228890560875009520702713153424947722386486081534077826703157780866973740726414423916680670754186611875643057450119576435663092359650947358077168449058306324465756272184407007100182506880700414834087651385172941489722946132579130061619022013805376879382458951265042952852105122344599079001724030489218725560438471075856816311461691382983756709537749722058911870184349703955041300072490243626939571990003019701263493600603350630269188706037092668748897020052442448531930724926861538346629765647405703026164164684413825590482879788578431476066292212865447088292019210894136647332900217920899722301339325952770652770601113741362063495250699320527408407182527211096279710216858764131394550314077615140737600250564285948472174861720504462493192260622125818546109442225353868552369238933781772556983358718870282824442258337673787461820338270648782239418468992646481845201013011625021635762512211425347481240136757358942150162719255173769026369967416222900724878401995584905777012488925712891504371695135156407266430706727604774641647309973625853593469023923199449965333680047203545357964912349853467684197680242265105695980260842270354737422340581050198501786752947049489030861949346466338329663884054002239419434917932832281653640590473891204459383547539549818839810382013803005613803607162875395790603864437692696666280708509566473816756465906366714565453080832157150544652811834811206365894620163291089787605485481256459069504511952763262807052127852454277192867536169492934153873712662033491018497784903903932581135800649950389275610478532816473229092563118715602681171156579304883041361025929967269290224418832104058746503094796226242665338195308610438234686313282477290164446570836835419506275073215157755472653662197645126484568409083125844923353209515548036537787003635749910621638597397484865845110539635594112070053153638505628725579024516879589159259117320244863325246121508469523304013811031043338818621599649577744755482429901590554997011786703105226234703740600452145165105923727426888733882757023361717570698927479235567156628877253748517199717955019641778136535109728359873241270289342544115034663238827396197203706679355741378016760240829343974891540960030902366909325757076478515722646395964551592974482538622410050483335383048101696203844745112623478306469138761987169208519271090798072159326060508922938025206307993949215452520515242723418402541704698549509380906265465057157947464156458954035854704918354031964241397235079061315467097101684041896560501650171595804518480612816924831064960338698556712080750767337956501834525342173526619585090132943171537716846797643967902777120043531870051640550172303066231571429998286765695446606985537171044901572758997625136202289761864316862588230679221999613540677323092409656729787311925625691842117339096426717312032693960313593542544963079761751651582090956071823662389335278485366933498520676145280211052534713858076491751800812138038339879822034534584134043658022537334549396144654528148079314828901309491015117208937032603313706528751650026015971005066007618167969950258406205151200384453440834931688452048842535544312594770093296437203002222008516973682056382298112030058541722563347159402688241477412571713753703463023962592403850265317097005565311777263658819646633605608621527905383364499887318503278317762358738867260134297540499495722946538120966237133318233598254034839895865288462343277493657090184176255596034289234924199294048979808334750915794311413080084274769653747381169907513970795045285365753472626771192933558475790116666859416951063647282813001979747747375470848527886666323832770190459837105558391604652762857665571521491882016779629399557809090080641771894793519037517300186895024885302669974478640954321307879165019879096532939475060051666897305164907367480365589355137074680763642105270233521236021268837678775092877946676202923529196005441022691371242729680775199652781744191388018857521488587117783991239205239493685517318099132385152383439315167506691790892662342660649004542502568264912728897607552331165963230466622637957063414417961626961626695798412382733397402567319548734436376216524728852559222211056905385809777047541758467135487434211052967286716063989606837098470125701920866170760308327014591228628258411539002371113938871443973462551731302990236234622528185406270050091526307625137383639904392927033377833333835216997906030488602559427025456330006610882859034710559439715331254532977298095301918249807478119326787399982638328623250092357645507221731636561090594100637793520751949578526043365771784222509207957578473353084023123284126482870295831581140473167902291307378787636941748452036895304371962581127642080596041235349793233739458026637943093287339369777545157743193483807173882767595606922655476173866853098058714301312017792218119083192627386959636831931004689510209296981804893518304056121089515194004083369600166731692084263734647550543987433437031997573015882092679848754172922455014752493702791261030200496502014706169336885009129453514599580534519362626048909806059404326212702324915163244317782660063194256056840836368913595423189625558717474023562416938208357586937657417040234801582886295208055057990776762571535400621146016469293421620903440282914459175291613116135624169781477085496332743538096219066656819522923019704317157746168317245156578161758601352536202790730200240562858095635090290926220076380876438323299226013850247673029495340776603443318423585630567696290467480271023507806331373385719059916263184961689228871475017332595437625801560678160128962498452589774160396997107714520863522154864900173778331638494423647626895083362761649026702029590223929568816782309426984769367561824441045827311244906645759662608075496242786377820907519596250355169145900801500667263117388720041591890042740106754795466009404494091202718898567257978913264173163646652665484609087254966142525591769364039244344366216830053642075968616456512294202440512966475183257400743015404795762050080899941462614906663248814375338067031345612909804732432780074632916048172667095409539980375676854749674339934690368345228614902964080753449562132236099167324511951511710233774349052576905809756261701816776137633877088368460833640870715873750654387571236629948195713265365346281358947600902747326482338131240985924797081439556445711873940505464526874986722267815979455177910911036113886781839568641035288291878338495057411460240851199200599552030530028036571742835022076815763018781066465924996257266517691553498171621089257897178823568627982755353994032035975886355762544717576287909289812871456895308951525309598126580797332522525532057734893462753352937511599755272881508955651972917083652731267982942584321641531316271524224495493715406744047405512077310749873903979460021389820802159787623412131378087535859735445356682967795320550698799809096402678673605775813507340408143923353731223438010491005328429441152281063295041723925519896054288838178498593925167088796665969408307130460496525068020475226598551532634450406587575783955043993436970981417018961545220745272452955025919034940822509179974057765254927644110771058301822476384701750103127510385983325951202682840025183560886131357141105176489457268919938159808820044508462611066124475134620830388132967459009881492998058703459033003478807327974819899242706871084798016186698748605804141346370061818485102925298690160905216403368072842729663348267414136121356750652041831476694164333104716754604272299648797443745810085537111426040875943207246496318200516993184661750255192974214297266867857411499792989244226143842629977145007602132515052792114788584785498245638781049150181089859734040315524758621038560941256141635014214792581347109908096495379683339852977440185695251398383436125643800136088621870049640410560689142840633244307885052517807092370373567475409732213596701414735183666524398679370778240611337133339993418236085603387617377185832881525277959711846282359299047930712669232793341395947082369370858064996735569740975078171584215522858510816085965647441804461128394419074499463204872382399194644224851635063275937735930095208029310014746429112159631439633745845288506977330029412702002679165463213186945657734959760337818285278240730724664757859392041615747797357246727445948700097256223371701632902450269155374493056668701270774831480704241982642055857427257837864807445876366671550067166361605191071490723859684491342076610720127278351208797299482541006526536861285758449736841989487587851518441511327141755137496600229872262411500817464723336771406145055239131207936223751086352234990843758409200020702794831328298616356410212585420970097119861014588034922003956304031324738821097476320750811691444383942239250923427670075350462800515658183494703654202665346519648216792282001862104399510248915482917291640920290378224154710968836741587688634096333391159413625642075812770583839432545039103135063308287674445226987318852250110581473685570365424981203318885763416394039058548420402694255662284085129269400058025012212177958356846094356841289026559831537922188127696713384780686216165284326796480419378730227150335443414656625357278234267041028365746607694514801694004162659900461349060791467098922505672261879618956468888123144471655079927990685109351518830137523362068114983401726198530709611342137512085253423252413147653381442997929667038236130991697967379733787649878470383617931181420404063937747253789330571433062261187068423242221567741746875693319078387905811405755536512172790808670670583563630079752489362360108974865114290935813641167371466230630178911035680697939412669524514229644611500543317573421988412468808520304842491958793321369953268286865592851661066506016399163473328436770298903908731597345870517127950092040335871722297710701806429638737496058883263120706106511734924140047277274907634870920621476844757934254891669579267458181951554076637239667315703065557273275031441910370256108664008914905394535974187112210817814420737741551954645076227624260216364725807906676871289511767096088010690251976488913385548434632789674050693602118462789161535753760699049347334344184773949469399776578716405289321197722180161537389650715101957305631797007596650789879365914283095026391573827141277839522164658683453158666647078232599680191006523801503275749000925311862091623554043828110955686955079965371658145372588940050055251471517877282384204686662040778182684784449904127868840787029015408624494140809915980372826849786085325021191062126124003032890218458011463536572946376280061246269293954816230872260700916444223313601303599724272052598542493694967355071627602858007066372810619943035735771730628010460921491745799994073735535299195283275101877882809466341018878094531457339612200517500111458657302041667549648215883738552586616080204764653542503403744423677569862366094399391761622500950191848680957537775163504853424129205427290268054247071197999647745054369280821148945365797763481810325049290094419551831809624664554785033739859335671478917529043384628756383633055364456897797854921273969371948422245749860999639038739498799560406863443994244888366778720022319479773757779203093890838388761944713760341339309764477046233062022911475175046167008155925566192320652318419618733331386580847164128373631135016462040535364199097461543422779190782010306051164226198377996773225290873016396387080988914140004832268781807396430081927362135803155962730780460956033928146638882827335066704225824974992710004079237298791937076723239776157031888869984826732592269003881079393880083262720728104289847494864695136070744494788658541614728905338180881013734627175105258745133655494765959212857396806967482076130180857217068088544510963571108497545698750687155527123236821942721151415093624654602296795214483847889273100272226770262186208050201399643789403233710338300236651545383397441195477109997688503103279633771135986350467549399083932059587588249264065368771605736009441779244462261677258967720166590366165919587056021634762086839654097386589667903549684187931169200052474764137744042827184080879820703972612010117199216955335895388830011351235194492868543662480032294647477840548857249022349545555665846990585278943222032178734119344939421553970655453721996525327211378252680426586329359691079417196315977103534899126845399512380244888956152628272388544713134863097992053763121418806043829126021670734344589748649742469114072139643784095893207831462001760448578730545147520895370220868649671923174638129798568746620795027059557453887813222316771272361065363504672107967266865466390300110231791358036297587345315476661303880695876529897881791419759585275142585181532234221431741313584083997529916985719956237371532352673566828498449957292212548851571558779227466160140137883529021413534982866553621159787149876198977496025951413238927458229155958878093979821419343804361112171094402076000767283130483658162222266526060773643600565763445460648947689625530082549950728096476539091811279234494089216817631430397842188111135748689995213487701660161319931576540002339365840660037635838316894891058987307963690961050560375831180994521285822656691565840109776714298391377301740406792980425472799586986133693222312505243412881193094195322413458756966202832355040475742938143819937403192261945313729036923725843377102866599550846931011718796305342608218280503375805196484573360872205047724280837894395356317927385706205612339521570887325503065086408034861219820312722537630655044417938447454928652033741213526428147670853405574180621947369436269352059280081709475660275114476459694045812953019513300090930161481557509448198417138089123084700837262321296851407486180020341390298936490703478459294382513510114075739204340174629102810433750903941521616424815000415182414551252948031651853620272766728008615357474622694670804852213577740377238121402059590316206962948767986911556953667943224407661013891534126594262750428702771481267668233787761368205933032977482075524563143390156770013851736308782031971086611901388210832102447874562076647447867274071602970844096976251086870234389865640309081687158563437588907213019168097252285568423196115459692140568945451195323249421958097760253557930390932221917536722627089899307144521944341496102893946694121974704608364564951462265149251658804766679219662819653735361089216309384913834360358655721157151205327032068601426223363971769965937914759046144552021371940830746684230563489597811731894286852523253019792284700690808986018881885597000198067946896885304109509675007238636604958250086426422874248707435571390455366289928178117931206839213242180388895783132388781331348127547052014436753377094026549363584714321950314120109644153217021086183028077663675176983857696117882594355628442610712162083345927078078656650041652006524195290254600499756216572002726572034218654331840932066835140046435264862778630585539972182579147825893295825348710611642854163911429044924696480223389131813694391800015964972442259244902343789137161619982976184887484737244797874997670285845007820277640332434955831878090723624853858327939683432566124400435320010338338557015191154594863951644434742093157625726279193461200014376825192348830464854776535794934161973992885758578262329220071107743506316738708332209345194703992617804191714500206528847979933878511739329867615453383019467351356475145234607605920442495257134682231382603377034099025914968419045373538540142526920234084069289375026157787657817192173558626669363897534564549549345033063790356398422026028597491727580001261845218853607873247055222152125287941365673930734046543891662250438029251964722551581330221902304290879323760657563359370052418126767400384715750004490348082830748529926564650465735934597926361481275399205214406636026808919092670862280418969005463030440649590017322177009184475123879578799316597109925910860606050101954009019909617571750325773840131466990906438179680971845818110497338821799802349964499481757566557113417575202743860689504647639813507587191845723775969192408916123525609455768275443184841141679309309165073726719873468253530849405897187816347003213282708685542575420222298188443267742665990087279298755906292441931289625311986298787033739843628970022328216938303822887934505089185516850753721160277743649736231409921853421397351219429703114240994607031729891217062997537280052511380281045286460128848579504555053474991136877550229894365876817532604495442114771340710255936867494712253921921367737007571936743611326920335558933912598832785671951359338737219582483550636427184667589563725193753698303879768041059456505087043314159013065328872916156985013840895949125728081316720149679890063999132771978502453608518384577805253457611033987052951408792364697111853416948251703880148106148341182986840423941039561554587668889651576693649410506828710507784720545119836132787283568730434869585638866770695802953049256134052902572752880613917278248350661119369996168923692354397878627133679186125425598183075978841876380197154142764472032771330453902866177936967154318571575998718487327037811014106802920078942577235095772877088902223093013542838787694388682877229170268042466165635272360291246250813373524713544770657039237185175188000072407857467368614076542944937649711761525052275870937921930542889479699726893681478733197938545332951567546326757747624920983466488074527519922756485525560861563396176910959041865231233039372779172339498098849318573373626531320388582959872898156892473976197941391363696864966227079074015403600134606120664770275868468380039163604844607716045756106894402082857288410429836105138216690862550049981932271010393395349180350705386186819541532245346186344612367196461782674979087863430391326459611147086616844361504571839072767878677012538400599742098358260885702262400293179285991817255710973652289297832706778174008432189675607792077768656830728000378105261666360907134619721576299371516708384060350940257464710617678052639048922660269981146907557726357289708398950220433394351727856310544657745204970645712262113206056640272258428268685568287223808004232901806382015447589034226088005898545388328543818087498647134972617719734495193165380952779943094040569012911490481282837089179078094030277871895244361291772689638782387244773627800062150118505115779632678090214913441776447268969139764471725593477780853154222467431135673307050767150757124909460777792633895882446645360661479793927468916901822834638414199064267009071985452436760077819879630125027618780167748390064825940991215526061020121868633602454914536642798752122405381261907623898744688865624903046264243638842328226760240297605961167078831814069844079900030044704255690106768934057848351719107610809764903697178462552899863652509529280285981645558514393384169043532122112441026822592893785933466690871863890807144849885461392416894547107814791439026902777921576356505727579768688037070754461233835494073888964193458339071581633984386138062897751507043404593821466649345192729592916312320737272681735051729885739535773757365979254974424232361115401519123058877855038256577155469632950579746574687503704248403937956098434726664528464076117274167090516410248677635344235787007956754842476854304494130241955337700146881399708426654532268792385074874873458068767389142085388287927898659919477057702874434319350537815010189367694912769182808680845152946912965969245286054617404587956684574438988208019051561047777466649735232271665746990363315877607477200571839871983888795139634776568824910001091639003953990189661995387589374563674716615385296659372004067051045855051160387953433989907891492847649693380924306850888268704252326568738450047216411808668119885165036514549897657936658424543107613480347996158773246610011077375706048605585239806169958857232411254309909139796049443535013083668373059189654792906889433774653928553328885876252575516862516778846331822853406505583431168631743991243396948976356280678511458441410341822524202137105797890497997125217721115358829549837262429691928525606237630312298923136367631463107346234159749914418850367461156042772061422109070754065622084829578759758175292164259736128686963808860546349646796217314948561246625750184850571419637827192323488846648909269651654105957516976474502908590709261508452758372182185808433932790078201504232107790324771050278354803688327230982179291260267137450089566007703343473956258513017620721675337615266602253890142534519921554767675262821571224903286884331604325431219235223011619973411465651735908374260466882149639070601705697597989767680807684583546739024470039487427280238479983577711383659639948767323618732355100808387624724284043998569419709225041687198015386253379841482636492458275274214276389741368790772617521553781423515721920440155502622085138099739068898285352553666528954681157416047976557304748717558226507242435467519495638848773889755631542120298768778960889671794493639061081092327345069148969427062700460865161591016234113988037214560035701439170978477130220676389860272778404093624444535610714936442401557114723581734281135658009035335332067536264426328795934255428850745082884026133322907079345234559900098688921838827782921583874883964166043981349308061167459561334784939322080011962352806470310747059437280304679889068613535492219534220978928065448942419339440337391004426982034964194142883059041233883468615550127247303210319881513082215780319959842223215154191436224764201784545228489363632301434800967027924601417475340038972522784281831102140278742050472855665128016491347414600418840406006161944092417226455568200111119115274159698464247231726041574399774960525857486440015759667787196025717084322634452944755647663161908314161188964720963979515948241271010185263773279966652626871302107250020059522050997246718897609225166856734740718366583858166474885351460842886398673248277072805541824240980590831927460862670910954191824811096587334911811331707359214907572366089533470876624249805728742666080141487240442289387037879796665944114050276593434314087239328152693430307628869593065945161999045120674683338182382658497931497494505864092960397014080027277797240108953184236015527155240692071530736074814379555576080623781068829538466331349589662734422788452054859946587611852126399769611728835893239371159346484411239431628069146317014162420933668310857745903323277632593438257708507320603037964033143633811114557589181433206096493080006254196492713526708516274133629717908059430419172930344150002139111150213404775947846421746489832441537918175555894135114924051291448827152402732480896826788713039986807519380606076301374549853490821626474902470614484905004904079589861117104904479993742705956698915712557259610885198574912493612965596704711754081181933926136927792588526521976826795780991156968274128388329792669190891805351709389982414108755534274097801954724772939641838715480139303217621692165259026529833963045327431645412168586162528665745283885584556135014507162754847962006366065862582435852508033357927650330986404682689871621761516072077391300732919806097705933496434175467712005095478602347916930608654988605001343798938057653589982213336421805610171760100194830547988533254843324176803791696650877291965346450433922894925741213359414009567051812500751491656604233560622250628842366810806520164775843044713447748101066203682778450898934023158501841445645204977718217516871469639610292117047877806914464305796974094852237038263879971732425566852747708866430303623426088363167910848526278547614616653441988226592910767420027362517921463699459786593449069244914552152704025343925385099438718718750544006198582582798704914007022391574492504895409427767976638459044035334563087705556019058643005886237587863113610840832030778804197269698653432249570127693549953249898650115068870318119918521450463055761665322019080752412192485487253908476450842559487120698078178190543394357235189894888767709654110298513385653543924511619298473581224292231998011969904886433538303487378761057427352201225403847322559055997989700543526828868183218679323882340340856695451904054333900690499272336503458520714127510411581491546530058797950330460102503384674352898340045810546969503831457452336018437102866312429579388311603309741972790853174399796465859542177337287926312665275131803259737804472574619334913211893999427107841323750354514689688437760949464924443330081035233286650185773423260791352997137601446345203050172782502239828876207406655829943522076865758028065779163828816929246457494238297339955638275420985599501983939340789804049323462347583365082717804191239873420399098413334508695625595681506889454206173642449713888736338561546059297429577479221636906583431273396871020631374045271625030181186473773422818832985733863684751386765903614391024281736721978993113673419160405410607990964490132465364518114567711778722386243006557127911947105337954266572241034956505091287277179570545340227685781204147615877495824040925668036240982692132062137464832919810923320758009554935968026327162353679776178671494728035631207423562576076178583952494373439523547995837117810312555942750168703050067145763693153036261139881729184906815837120114399730052885067909164831566059392655511604142644584336832019054993782831203312715565171288968796653670264632829822003045988528055624805052595765662046032973364574161599843491443856059840880046984366486473939466002038528803382195200311626226194788022931703879251903745494625271142214759810065134668902191802736038884495153174271093313864025641479002469057315059496377988345352421784362487836483115951088131770972173524591198640987362958747386809299780680581686504922222408570016603732891977667552518161903646292731300816826854131940509470270188845019780427774318790536441172265899537811478508540572447641919221531500197313388751512720066612285433978659996040220050953666612103398647519097515219387231602484092690589700148009917341696484861254332618614555793133014389292095780109268931502865872443824912996981214337141797688017951403630709067462124943643857192778015184499988997506820479707574275552574172809896444311956295121635381021837881005270398406058009312178178921944326405636538377147752165726712654872252816746547365245372533406681038297492250440481763853545324485896250629424197706092935580047222165574853701374246515061492476134143993949129324416224066520037121735728508490343400750543720916068048321424166470513592987270794475490543524134586235160361585959384480757774809408513671474003513281413553180305818775253927174860104676322130599712415621223309507930586464826679649964882660426391011599719631851048041671069018717240250943326460155252856054539887691716050256617972255594835489570913396879185432805472443747587321518008664785404207693516750717323570989623715595314960324236453851830944547252849061986536683550084344325400029670833708889207091444598978998906844517931060081430935312329951074905017052183484985769400164399905432569173260884320893589216656442036920404898334271940929685707108499166081880780605607771893594240141253415677217070163536641867363388977393511325726265042748770987329799716119016041764193527217315995493060062400309585405343650078055462888540158665321723448479327741727912615457124491307116690535970744570464679185020886745500717691708294479461501123295820451663651059505354136689725409924063244261201926924552265253258474551013319261714887279258942084829123155926518387106622133729658434583765979940124848660463536329443500538846807831072616076060788560292333536329083618432588499537292869766418809972016858776947193580054688494358189543827157564302737015510465990520273093934988688135513494366867766034278811717422114185608120429730127006340082963974337428505769634279005061501251197376553426953996073691631168590588621087377380236208644314585808313515113262423103208215740664472117861478421506167794255922981529944217825120519310341038296131689261325427774660252658549855500576757796503322904772710839385628153448204283185684373010139027146418275568516292282540002171082714664701874331775456366285206760959312233944753968272269806726149723057327199414524604394828863944675207983709673885943047799722101092312618508169577791863952586377272207351650700062274486204843329981694618711318055628754907632716886355138327440281128450974159205860355588225800396773683889235059032985086703916415026458449233811578577716998004265630505127442602238284446615335780048075827220641268860864088908442071991420799106659186174499511950160709103144439520998250878361723555572571002657796249119288428015367109033509064714023391983527246510055489432634246855287060156178135929236291333826397102950126342789473812147639996844838681985024128949909357718489906343474577983332292790317337765098843742236189428376191042603725359768332624997187931022879939684511421079075899427562708991542846974535322730755508525485443496715133818887603183976067227456791873735580328749567327169490105226201802130419359821625294228678770734011489828273456035010034207104335454530995479910137545685584067469400932034704413876441556034061568004584013066196087494628543874362354720267409406703165786982967049823540290940909319595105234969112592484863425951215142327908417361350345403877342065158060074571554118814931771269237165437233348165239217794797523629893475548467747555422350220670008260355571323806205595320073180841164604640319752875884357633737259350983438081479951613193824155069123520891376599578117364953687141658641504904375662962897666273596642539269611243774646508675063459751976106022805436380740605633710425014004261450775889236962634364232669689960552442765401906999323052244870752752122605540343179260879439383876212112742366881496194167785761921771814242374171807829106609260976521238122554528893790868414397045622423024859154136562596119677341065123608984706278265232135953002004148567808762655858119564080334261206932108658465160526896611912988639766760037363031499668394200807647825778577757280190010127474727759670629329563122974446434951694973773596063259032582024676106585345830896563349117005103465790745695221402043677104192421067799366756575444956907390973952216858921688093328828453789311497484863921589693080965104873822484579307539838495540370131589774971027384797481329711183725958199534868366186703357293423961101893729347118233972588063895607901694741560952918990454277279493925100350997241418462089813127679322113856381072163663557987684004220225042517897952662118212637653103337875499958218816894635917016185565626553541509371784262193568473901969107115678461451297504506875042075081518061864615330354072650252561130908461877278794019598834479884793170420010710079376784418950052160542550772901448339165892936924447275167470776842189087743395992359234037210226449297100867486899829323653107742211133365174273699748460138679795708918015680150261453131179982324257694135521646163560791719457205850558179583275073452739068727554121870248381072444825297521853942496023492114593467128944194165076913810077719974154147063927959150953723355574033648516094849978240353712220811539635547576596022020801507577915885010993861934203231670044794098758879709370111231127329973465523571849373886135440890243386769008968424683294828740012060743524251379507931120605678920536561860310512451326968060864205532307450830971291459494913656821110409954528970115469765693749302780021065159957214707442687851924470109191246359219571923473432789634597560227574446771928939767633286056147258385640805609701374448158727848758633101105413724107868873365609912634371224126280741763486644568555979202818970392294813297204498499207917229207327327602487694231211516075958483301941113803524382885968785884600573718642231955921210441381009448158667789738381927626849579010153515477617996878864733133787923343525206159875532057200895870645437055883978224752843518160241866206839058879367763391344411830488894041405253375832446754692092498424047963194771376924582937940345950082642250072170922895957524707641688486190037973471750114974050121896466734311002957233887135278158001433101622166762327942222092275342319752515688047643088241083598890983732142354244408110777393829200217167577593300619953411958656626813583858204008372057442865260396946572471148663831769968339322397203216899578667736228555796896810812309702335149223557672538381717021054090090408038008113004353078924085464452167762509039602898149215871848276293656768417924949222919923312907157974778129565752330966908228866065097612919195403481767341370044144698200434828997486889331080156774947981076260826996554631209883378626934826910969547588885256614464446806911620827045500844236245273502468857981560364890443163922052283288651368564644382189698831250730179853327402086116276440447208321974192680444264781906366173141466002064826036159689052151111793332072368428387420566370463372076018907015083850678377220184399534397387252345969969487385106282368587078471199928630270812292221511515189581422668128936808723970134381500097928080450660099312519617661421032148920477034176058339536454321491418617136163591252662185153329818969876668909361887765011311523013833771058210098399114311874711867525734661188929666596211864527752018409360117499180884666884129870048001457994358095160571324731219301485471838608166028232363900289330354284633204005595615698056711496123484946407516743051252692780531270044259138332459756466708513377738950642373978642083673403614902396866405520894675329456851635128499728978737559286485704156804194421166644238640453189976013261415483819341029892766640090792422040096482490386557478452242494307817481169653368864355799435749850146694141643084857472212842421457553985115739274178163569769842656331245132786540544193400510574718511984552094582902417977449955501074771025446156992850541502095590918582210037678964782453162379887124165829604103328015424516242028867830933518813510174066680205802103706930688717371775055197126377194081790491024175356757259588023966378515651065141983130326049875830927935489162387195586022448122729843603948541843881002694145412899770760261263421283350533477983036014890289237422885376617723485739438363691189142117629054507620937874874798274124832773929638611378785979853075711867404236202646154054264490784556622801548500033648380295761319985262222276167520387358362163307683015379409956098788317751267780626245403601038224256984412614383270014602931707841270727176902410199536637730671208032647821843291765242352629034271528927781770580611049402926240985847945259684074973873578615966043360480985220741572441416005577966076811003588858925070747996726542859764127514513582440448279388861000282013377338873914050725623085454362119917257664324146414951812302076851398124203717981678156612040569836982238696555674435146193471893833023306723607091553563016287976087783962687144356798551872371819397796209228687486924292637074387305761867413333257935071119489796832099499016735461704978278440266168697494208085577205038119257754731176017861032763900929491147350293357691651303769489667741426340068563700275504129278123117400311730019523433313629810764759094495746699737654119045351542123518208956275605285536411403273827481574224484652030003714166057177185234753091328999533338583506492797156584667450435735415354564341482872520353658943657714665829688388304170836855487963233509622356858751566917565762801665116902347603124660233801962451487624449549735348671014833395655924733320963668223046334100973680603244100704623430284689560553083164781017423032446222741972718925673701874935901225802998521802475393324886993285234069343612624836499464471543589671131842028537882080260488822957515549486514921301195321553812988796526052115470659006592230762209400790996812460013667706470914416448259115789635076295290831101364331418838436776893318431553716696792761671032145187241044205609376602626462289092822728032354992169007833319830821873041623266698248299517018764962682101969439057268115224586495973363969505033262646703028221226968127422428912207372077154091688477742195703447562949353858336780134670594844300903053351301491414401790835949674659221784928778342806209534708779689510049973749142895326044170462592893464403395286365725802229192209955534138300572718178061961651598967214212168902723638419246005849383459807529746539777126425953112576697595241652137892114173786100310052540204486388497300118834796999733885329930497685583186959409307568646715320692884648613570415917442545543279611486629890854592695203630338134356511416440259048870843348879035438467995810270786735482896898424963290685001394396847304095416175799426523752967158079321328466581208737955644145079040378830000323506005824764062590223691119759190196425325860470829404449835543110762632227697066950286973593348840039216575286937060227792713529031295295080564322151481481961884393305085513933824316940014010629541260403875957596664756326976086901845128526050892338823956113653074855172154908773564651259165012017588241254759641763059516066714645121404620957184477151267144570569726227144808909375110558908757310298542190175741100560859481459961071687543139402170559842545055153697385125935660827102860530410730248942618368213632351096189096178612337555901681701786356412458471718090423436112012421366150719842002395662660332177215747558728640973378507142178074065277928191229561614421980357883678688507480268310619701838999252532044583997332888329557879652481822940404695716598955053571451131654216607904999228296189557373034493385056854387639908017718939965329231435072541327555408754719366394819042127207658761298865505522495104290116694333736679097580039290760925931095384404850364328998898435120885499797568892688043914459398023119407069114769584759222039762789910032271006161550430733558030650960237402193283205462332812901142104773875530131359097383012382857460970932047041715794708643726349493235615461826598967367491886863730119795746738475126469015513646331724681541717504202826273483771087146776178239609120081958885712795987398713734398465155020289868727982890452929381891002716449998219023587962681278343007498125782908861918438199486255854712004417959622160138649811178870480170966393207224412482037634833059658252710019340592347988238628820022348075342567452485066265307801893856735691138807520658260632588030785785245802195496080502859253925364855903048391879164350887963905623096986974622553297779148490458224681338250748114526683346879900868650767832668482986737863225043758614626565793049029608876739366453434954185877425395349712154012889704125760312014540868081297780821432587952873524597691697252839146153167489930297620778645861106812266362212454191897337953275653066174166461617742740699304421326693020878503986643110390621751984777064997457248278571014781470203075254255289572762823342428037906742710207455472411873454916462242410226075858041077675604929661483069722815353588289815168297896809363010431089327750271534684395599114429722417617881933061219459428013582818201248054830129208121609724576610983280086364291371862807528830076548637639461872742339239083401564619220770254925766033585546646886022433709611240141122617749703311943619837230368195546211340039059007067698834561911517566013082680439383810562965207188794825175143121040135087409931252730151680956796451541364188129334793043954197865267834244967302907777873605185066576208187785676215182311022552430347618554772673003088102297346984588411879228867880056159550949982130216136911979165015894009395137265612834996132348017251243524416416425028069896190203597600085478909318152266823803783201747055022649455102580969138219594797801276964926039981781068696858123647777616660449020667084342819929843881816470972959588998822492636522563792105699523833670499247045651361039197488067892564462191302533162719028601043815281927748781898081139897817737921176977236018519644047039704989956458722507889180246073514932067825639511911149858394598823502424552725935159098102423324518256953505158823835463696945659105870358193225443190313230145719049684859825229299631599923215814515238392956001905835844211942512942674597344759249478226793674867794782476426365635680238280382909116323205919619463981154251994572986962792355725890792455471891957014586617543535914277206214013429335793236432318635260018242507980734676076010088321811163200627631503733780982743826133575172286467245329295514825342095162918344833226596386435046705064025965679413396598253283177399060868633788174153249658821935707171830471251706772326904795094030202243372807723705043432652778281736635491758250624683687237172363466926193909576456841101900736623183058547255035660925848045898259106645441232519498022944827072116613389909099891640769998047212009583699729247413530636396951098215398592161087120405558204166694708016610603088442525859091250222940010542903460613296583201745931232791700405828808706367424315962528512453605053384842701182714494878280600838937728403835050452023515460423546726139376105660233013718090882510717157650802071289273876479101211066776312898822977803123615060343736736514979602511879241933721113046493893152693969725827838917011890093318122511333296176110152345118595116910419788554816550300201364846075158548274157913659828167231984508948669934284291826183429741820813180487906620590640498616928503038071815991017262438453194864370933759661030126623702661578798054391860770960426834480072897446825662692741434636734426889697782876345390744225870137619615450684042624929181668408527074745264273738404395897815084184463974329062056096549551643377048167435897350731416730663049208613904915926509311726445558234130925859766892415316499935008925353211628826483037033780652959591538426047071279287131492968893207616899225194815107549516795219899323046770542755413617410258041425779418052083427889578951478363289048663188205168280601140913913565944925415278239219844995714104264273556691827934017286278421784502443997455781919791585619743023691879015778725033241092261911825468727863154992617060885398224409073421769896338521588894655215311272476581556919168041208242689208618621063587467109392930708487834352493321394974600584261143956045508702623527272490898977521049625536530395119347376044627899043911751597144010632021749510764947550921068486220929272652729435452019495101445687439886777839490511479578241913009401205913399854574911450399321976598342300589363691789515975948124538964837203697164961851880296578347344158240595252543995229688627711446635550367059299421483125171314724899040203753524967207964191117588571291724026288489129436519856235959927695949149934196179002887348143895682598427196322601046920868355158266007825452261254784092841704251677147987048535021488335358148130380047290391387994181180345366081931766916567810200256437682230634999799011831591863024030815075125335441065587777318576792823677516274475949509779297539922060158463270234559986629084467064606820337467281481511469565060715021454571610206715700068973004052281913423243087235462871289256792718982230811841555810578463804448441510393739270822525700090799718707247601938785474100660922130283148837952622773327455985250054942497841808333255753397033926012034303911626183578151686731879429716188334794133131994906061059568213025872106165794235328718322003721839086734098011696888645284995487233292800407043856952276614749336702233449261649460965151355932852821233299556004081853775844535964490482053407049392937204976452741880336525118397834857662800146570882010031297009480345181792288458487615421166432030349175426377514529275514063286556524316338868697206881083440360989019542307613931437334223912395593219558645020351209633819327091863817666634347891765910588518730193477255260038393117309805419892251976947548047269376236426220771841897060411899689686722427491893797117345317224853546804111934686576819865793744291037954642672097805616424122658118367983438034990923805984297367547165860559762567182839401692862350649096093887005865266395381671077353847239081943388423003815385968251216797079448647298987524173698092744074692908376325783019951100586237389424098506676853432338106713144060190497862105721563786953647383291056702396880852399476775915200186724920574113100233445115082791049671492749012669762283536423438989992613562624749547362148899847520126876532057240704611689067075604957304862956152897667595536068105879385099973237893138469524233681757143802451120064660152221491182737770916544302334628819343218248438131785667553462612981384218173738297420126217822342174428703251666157241291111049421916551415639522386301464849609729039894086437483981009969379509330428286388251382684893823922272261535520492678043937337777515657294685041931933265684700465204914782541195913969984117447514464734428291927672317166645878309322816943732053030870806223910041659478116147945487850172460927387667363284982824995195419852894203835546683029740109235554855003313368948343292811035651396740831745958342968377680631467145729070816117407095753590833985308668527071047081813085580118505112995938715734278643191715450264877387274618469292287782704498445844016583526717658453365165208220282726031146930338931855094198504737420124807442698268287646454117917679581118330078917546329797532598790584760185854447128375468501572502473781248018728400477756464434260557848549203613659352211543364118226274674748361483077660485295962382517311369505173583845056530484112426637615304022501678907773967300528698276525257304683817618505388075232726846277400935049352445590142286789928040022242780031331613798846506023424777442044453202780426281443525014097877710616994353255435578795547385011702307684074030551329140095344414828116036375540233671093114114814138005799335501060787926408787969766902025789850598927433915868768481410415202684469658584006109405366154783323872613661411737993390992759225932223986664427201278519377549677738453185214407484268173919438088975329584162173035730578985033346070031046121238211469588238811247418002422610523317812093673494826710585996675043527007922986398204173592176449945376966561068626887230690386148926171471107861182990950268868515163435025056718156474886324784987023416937616896971999859029178030481964941843353544671372971290350690374034073307860714009798645163942416442061534555573343305533889894725924957045823916209207498061968976131586946605584017568024823424106678463900283318118112661516593153996639126008472943497196337274041903932318713869644302794905366467356225434145577541955097436988010885524189261049862017634980222881576910346329997247022105417819878854968341410370224520921340742569491095357711640726981189409339053007510296255727506271078492701894763263453147015569162981553069908363161325358802025547478037518444427195406469197425170418177118302909723922614776162622605791507272110544591620033569962189423097343758664617155765764596120239461337195247981080254862515949596630664860656113594388875405198446939644066031670993587394244647628459971543732814842055288663169082684523379087417578168303511260087103009228235425334963487077664366617965401337979124445002709490610090145188596486731986688316227983947388622885788246930045447030446138669677160793925481798843582893087794273460250730037566739496027839214895099685630181447036255373642188820611437865601237123684083247407052638263451353119543280217114461580569211553293097321863896414488506505982878013278214724431068852419649649778149552195435713024777764511915600210113561895701523428542498826733183050993598427563269972740655328786483702735572175493321898878651261688782002824437030933229531275636391807628600561999180323867147111803447535896051667705820403853001710834650304850485552007513150486462986580819930569681257987764582294489796120926014812348623823412741142297179228771965742215995393813423408520669273347389906830328676251534142876855892843674639561625176428141754434325698733746827663248170385052189839230357655524118825802572652811218155854682163652276176958458339232003407752996179623962477807223619427426565683475622221426314932229516076749693717998972694242121431783647843451722737090079338880587159190535580568956233604610829429452430120872192796365781591964605389854710938955683495914411778050985494469326728697181778343327373606696200666912890459029553593943023740156202985250748200777631803047843048005217719623247867685060404950753405432278129547550564502467077280427618704223466735036220707055328339802511228688134774094844962915761249870412191196910442221151760677059939710306431975844856099633470225910247048439641852328148352369931150899061893072783935899860215956318874501150705707809721731281750130537554145258965063032106147392285570695878567369927314739645309297667346527608093421595873580579633071148763648000247400675210139777659156256537982329829511763556315033913007839329328369046917122290430127027388680261269201052194175203177852946061459376849848238868097482468197763425188535769685223075651652099401653884157900943807175774994764280277223350588992563522394310760763133413558455009643715636664876114369631653041136800491147796407306227478341302690829598437330466793641288826092194335699235787154342698263206654443369709333946138893722375865173514495142946782075644223227861496712617815100643038370690952617007635622232027135635527559945202077783514896770342792655363095650555696288464486107743712631209683659217514631497589376995934035308937064789786290194264735650091755571466664383256741279144546253934391333156582255104462701282297488687479415982773272771164961450426559803105258539948477253807905129179894446731802960093675998283274339401186408811971430057064120218941214497686770414576171822438476017567057426667070988639486831417931536108264474970246300933086111354672226299328396277585972117886812681639341629733434308530085141934689287833330099375634382207833505665007374194867356871858047190461048885426617621458743084124666872193043618727744127910417608540100773157245738940694876334239425708197639921958809213921443237573430937328033499253314778825133297263196864638465432559336151748697982263551185183193115669342590434093413472989480761928815083892193832809193953064080755515989700014545259979802307757108489298882774742188647192281337096490225007189255719022685605960481811591447217691182880024520755455456020576101384137217661532691143005401708577875331770550578111021134152291279077590905530193977390269474343630275007218771145880066437342054788465105364733876679321486797811235142916354693061876516659670485970136545141563018358675723569680128465747814747767885469638763995759002205319859183006428995104000170415706049676758501724220784811174562871337922099629059340191600848123979892850292190451915831485361525250011602259519926849454448522290934928370671417632595452260294722321027866144729586433016545504330655223945685287203905817580571781489124293927060688939664033064777563813556719561133025694369380911959936993809609730847149598508920914679871093312721312896121354399584835098311225962962804098171287411581206442975466548049540020784000611671438442417296524449061381058291103251310909265405278004145213238586264801121179846406315751649222011972968549249851425193352261970388504600570193917731952927543022338713208249728754971149938531446986252857070701621808773679425176890859335275413288824933649509646406466290137816579616804396886730353490876601141888051180477143529361802478627102236433852429041588623760488168663108177995145535781992738320134914020937143533121789404048377204624403888564217094054258247303301009917163488135531729698064273506625722095679046808273311162782565586359431811372041552466718388125819558590657272904314325631402609136102327874123864064617732955301220207818122245972991067366769654011154714173254599444325159491519422799090261569197486298449010058367191167222867270278813035572041997240080539703120652571828674490251497373948331963966724648250708548994006092168056690482961929313650721678873667435135865281023726579829619992137454702393802982564971684298424178906067449689121955567187036472737502442560122118765191021123629749383395218254921308215108900610613346846572704103315669987796680126137813521609123737723639534316812646850216086822250667696228339274992619836794000149723811561214071940594131788352586796297288505716104997357229077634470864690209286555249821791417538671434132126879145301415095937864476814176602105062594661412006212942705814077516069817922556761539990181364980554470390285315150921682193462378434348885605552123016504662753971014003875254606956527571300284585680419039028518031245690173787316794733487655041065538571414677002049925871340718268996725129647777017575918553409543166704270468129976135699876991743615237359681045420014812955636676156108454413735277798068527728385210555283914553531234269198213713447211884258276864106868601409724106492233956594990227309046780590628035450674310093983919153148849163827097090032000719732547068254021747185769903849730007138003957055756567257096507241693384588889567649094611134427922915921448069537727881133256632225315740832320894829235190552879270627503859675070285125760337989911252711429147430225648255942459652838506246635316678393780350818799574378489847574058004708548285152960001599746886960712320546624270381402100748858342744932131541230500242229310082794664930585342659669035147715743773483563760947320651675528858684708841337677770574837492616479178860081901981565954590753348907439074428847253603845868466431505377335977693861667738956058947244762034848631459002796910279410987491143281022008568547567047634109525597066087149047602996945233660477028443204203516389571172510987066768476962617634029187183070134201613529058414904437421035796323025876678582609126809444589150343839443595363714042102923260027784391138823841251883962594059422052245291684565865997105602932462722142697696288339581077963827849141257122360731144504980244218925562841990689681959477056506059936048681294516840477027695739664303813585175987185620123935450035649500700895266362892376709853359739211739288088140222666104010075998868438842739757201168059352699839283363072228745590866205134547136983599359454486805399746081290354781841943569405614339426874073228898092894290934936020602126161700343144760119028294866904308295938754104415231438822053526570310515885866744143896562403345572895790337033149764156031098753609625050185316376166287085248162939420117293000960090333293424230120912365755086026921480520052331881030557556228874765554121041578410482205449981078286193540508980094010231815829908701175990352887635251316437004006825248688863667148725449049614991716369815353589036258531699952875462991666405019462158310482124891557139423211942073548376603532027454755994445132059903398538860377647002784181350011383009890206563949978185178519986335328215878237300789861447601084468596832669397644947253446903738350423511431707911397669767357307031190462142509936089692753058282811851262419721322384028730198313341320302327337680296653583048447601202162922576140763331116629673199194332349719965767610704125127709573471574889570493041263632761156778612750881073483464530744604995474763202763160653623164436368498534815471326694806554825678801763815128284279943958978721713495126116747015900767741461704886403136638289052727790371529332550839272166183278889743057327947820415087500178833458956707252495636153204744318409458962300122063582517447569639221005081607300968657311468756999245534937038610367082801251431026051287238003905353134202562256328437948039139293109232273096510333904787618717409889648620184176616026595664063334478909869330837315894882295628110556107721976193320897710049539752382501789008452102619219920664728321320892713555944945870112803878776457423526265400523173064208695237587025315021012965554500803843492522901014261709831565708096934855340835167596340271194856278906656867392445270175038901569958265808127618906272113158253841461492570915820376428138114130192735957328982458230091948319396129403747573180200026518163312889253091177864283589408691904099935333351828438963191786573751217879186148492847611504128678089568114841946655999614186678147045360066887242494759675473125520505111919067667946254904604490983428963975874931567060944430907875593637620178250110244189229253963871676873477438786818896044991437082511711574222979292229330408688215372256639708249725345237983711822499193567625520579650586799427650739647640782413584721638366100252555945864654169904318463500277324607422472619561427926573962550584048107597670503652406148968604121842858842028508432824774522216537480487912135223405757409628571200869776681236886919701245366323531121140374248765277412021553874692836654991957870445563339331890236545224853947158639424168451758572963037195705309506704209906009863823265306568152735199170444143870520390269774048688266652279562264822800775164274566904369219680696380991090687957714027481775416495032078603092934628792680277169721778408209102418387846951269230790954179344309149114802691594533536927216783359323623644654494362218519222867771736176379640036970651346458521646607891535473339416826744935706936095521693323902570656409839066606213717132142835590434615635394593147548285569237073750168345873240840453161554870538175212515456197832325412623275406580718755769304527750397637992417115324326630763450898733004813821518742856436896654392263460087809762331032014015396026630339134395207235312169280715387729636680973862822685850506967386480821946845413015152235336844095193605064663004297296723859790318755021252696829851822113058602585772661870434320481486445489772947150094264683789344705134214080667777932178914288406566469784024680241320217919679102458946815336795245272151851909925481276105386627365987309908722792533011476338166758653537346664698715064956241190553680539207844099277513474073313415567864139931239595926002101792448562519895842739955775379855778319368910577090168513481412940227825234137838945867274538915334114499445897806777362016018480687304585925985991931532093110455514884160755047482979177128075838994828474655609731362346200520198865749985422052611648706511958512797098433811024537182562280574975182255198484349363466453923776083385708042397703949207410823401165413537945292080460248239491005279555168743123267308440034088839340504122590895468215066641020611161464795203039128491743918508203819893557305768290144823176436996185796460151772861857644383942178839203282183048741198008926946049651601380132212065502597310112503502281037642402803143400120251510658351246690437162543269587177255716122903484190462912673361801498856296251749617837118230042811421436301569192347096553550725963475717454518972376357240328980472673229750870586605149317110292557589141296816634372483582672089463357164897988626791019775433461913843073247744430662570846407851357926422216594090807715576849483523889186561288490662484797101301921134684579302405703706114589431824648825577734229505487310692688883953943967433014334214627497489626747374924667043552205195586149327178110054063510553931827498423293394039239054268435193457104282662780963735463488393526774400409682655173594610221928667817194753692115903894436269609964656067963944332723932670374937333234093399079310122800109138454453364630759907891820771480523394290647949395255447739064820442312835833271651034443112353161566926545206564064631895287812793001715806729676982649024877775744627402534659749362566632753636468021857137043974052305631826826928596686019549697572359984147932422265685230847926809921950928685701465064058796371989164303798034563000177721666220370046855970799025423747589273126856280247749449135764524179228418308080315325866126516720005330695785079345118781867706886989644007399021877933299539065233952477668752403482389271848192874537219442136406660370033901692200760715107088147756089681844546513897830231290823593780711218736010663892952261688001503295790512107183470197052136542160392514106994311869455914222879996413529248481681278062319619238477828555865872811023255945752711951662484340233173666619555759423829150867545090928122576463736697473575195945307946920006818443714492320328295739602075087686542852931702877883840268136443711656300065405908621816612601578194466863913687121631687559140968294572128777164590008029313277592883489531937900469952043963638568068721383195411474983731377602727219984650150588680379525795088456274528179123697355610035194145327418208206683505440746225235923492286668096377883521561072678432205037635659449340694301002184438593439494879947376498906138304175780596485440810080944608272954585943752768005201854437815934256075388619155312168213882785196514938666510186716481850478932522218288180853814955676918507382319655969663023638758136355050423051888078652894937589314464714159406865841891916583285501996059426676547456539418439053950424847121363720213644237137440629735920026966701044931219838009887853779830112265250636606137515622873293356676088311629573215185328240296682779977021049547872712908084760069146003307242398628011154863433562552943382505894843718554199486201230396373062856929413625491146421763424385080946923947301570986336883768358425720794316466990600748118891052678012561702774257641150144681752847018159268036876863903735633499803115282493902317118462009850055615790075780032481934513608477280792717462060865371171045494448023554635067617783632919945719734466714716973278532251454094312339309037924443931058942579671860276970476374274934632948241637285951324146547883677544096260578219915929920758263045170694053064878947301509376287736842983441619757524909359671251289333685153915696877713340237814779545718138485332579653786708062684173705951504811026774803907293483006426106848140126295141576675238589560275377026750495004035749042871041041967857981489437412286506065486203895697351708358489272121223922547610554722288844631646756620490380370616246197512447519902429211512664659471562631802897218504111423591763659754320384434647812130573358210203286654924237558066829537375219075887398624747043044186444063947132416899098822701674464809161141499956685469969567708970353404269681257632422895827675206667873194259069916841084144036242987219076771275611359550196448780538492107322191492247023247144753050096825347183314246757274033766933569128903900780759953759380221224393827128821077540108848886061792372069062530060381408062134921637957702415853082286832321876120969523574966075276400336776718248197364443572761303221912524368834131187160496315576026255801829313081123104917132830433830752718238555934676309042369123948282926281481867259476959716823120782206949221947288998890713037447837142600796178561909783010771800073655630606703109478943794611840586278198589016256977857402147231214466327583242494124037791408118676527816848533341264717071437464620049326931791277990668948735915326778547253423237740876707887662584917677816626205190530085018621729797769070154394577448993804354793992980077783549827312204366644966227006299102795504276145986956050515929967691110654886049819987252419902015906089166417641556698835436448737207575633316662739019872121580708745537903471546526541748106560345763853291025401906225956594107695950131527471457680781708083692588482848454479648153628986000637029072942990447263048537706068021300482078937915480379022327791908026658068614659446986183168553685463529742948236586428983352163276610287402821563914897264034321305862881081572843927001739788903607076653848382500532590536013306520032168657564128943805876878712274204871338673588798884553260519519084466291462231833386387126033605524459812837686228839713085581501110775441656872232313097116489434405344679135030005928559517693192086433419421656485220692169573102952347409410877617390231519498284051539417327603653449186018305574060387532539248180422605050123106689628899370700828838999255697014102328031175917802567550467209512880808707730364594434236332250802464222913954175910934838970882550906146350800402919508316224752039540428263285513453717487814091611100364038257406770514798831589835011679820826143913091724378862025805142457736002341629245123757036670090332145183793212156150507505237667077134166129415776755843241923975239506663905700239759228775291465055202714328885905858856821075065579653375879469132151619916277482596727996993757234460172299124954191280647065854872005242763524998804196820687339021013383965043057467367530097012191521023732597919626021466894061164802899837249380340389450820099760186482158586994510187901924522772644733365019178372195685358945157519604107731794072866759187216375711133719235908602296132376815277602551161571824356508552847096388585169490716212509648405831408306275461400131800560007405795880786234261404115273933138172380051175123203264834976062429372597163171990126742135104715819850639137249859951680461203374213294466931320627072605277081320433327568927791867181989598679886109225195072187430554514482568268233012694926005190264651388912598899908698582175492319991524748998169013139766485563892938709257162563831153664815858111442108495922515573378751483068352599787566315052301401783456697975303416369369238029231313546405762775903217911277568104476838458962260866168077236483978919159902788175592674255898303186421517605973207711072174940584844483285261445346642420889452042658054224943797808033478167614672293033369441722676558758571769823712604355200115439269695031670744497281462446610710241141213158845359174809323596309088264894360057584690077755255320014377808267950326001913665442835573761599768569392949009442081485177382409880180809356291708226242394486346615951528016848496349053616795470225110320220830833640558108715353776828975905982098864668575901397930299824187601874337544332380866560786577006845719802908000006974897215186331235388099312447533517790582448938706854472823512536095590951142385060620045966971596033234749556761131221322485286690950261732174020190151969519275820456426751038512528194108598633741153843440478894914302077158065536011800543175397235908344795748846087489659796226389656597135744059344061193073086794372340794264694419464543936374694964305978773900238211367568979965130203255472384997219145801485539357688348222973054116061175910770356047750778275711895966189064549121979408048997802565700075506342590223626716943688683236433210077383818711175209510917702764685146781865584352474204260269192707692752672443869757233174374363937454773448515133608908371845356473491889621885553811998355882077967194811571648951789121804868735563903468078533292936216822421930306899243318591949433910131363779024552697233522231716803111316000069750639407871755046781913075557836413202470143511541987135690404302704948312285051112682125823520605240225748191620372447687189774519144815156895390156848872181715223552608381492574181588394230267832998913536038918897296651440350837260210249007834197014381864584559597163108641251316767144333939792160849054992781043697664368211303578577918054747018174339087195563109027187277532379813378854680877182781237170753831044763821276015691909144646157150054568247432516686687126432804822564911441683904893279291654976178564768986561729404180394471504939035801459005227893553292117999779378018259103024295178872116292048937297760939485814673852540309477516458071386774536697688532243068254971751907445069430561085770778175687326762007863662165684707212461209284273104930693853232460925673037117719636636016257676938266936244837385307536343218126326634990258873422488949339606160435774021807929038399490310281380373854260649748053556661044038116952070141997412946107235158852366935871080171684860753474207788827338374652036806644680052821894336652569431524141460598458979936401924602394244492787187252056834015795930687044490799685184671808691113018622977270457865209970883865572466811006216440583627953897841519251793755119115711955083826784090242439139159525403183599095293844117228548074622309892671341674496245026831158477900599455475874595795487948981858451570733591007487391139764919308206196444875406200029156286909049933443751293152818517844952676086596846272713937520460969419751202312913695435743616803397511749868928917952082018928167136142150163710987380264053542352693551431272972489075362433977009876934979105233315361528888685413220846930068175571578289211758672497526362693854270788293413023572897430648776233895133192542476814262809800649406642166947376048205572631490047685578198778266834310659007562504126606559924759251142611692532136117503653077527862151562404122837487679289612761255273048958576774421722769744121116253724095361224657561047573516737977280427863870182992490856600010600283584774645518106606765729246615844299167754462423680153092497648377013705508433150894244467122482448217636189826361059719074576087233597170758596775689475746372059179628727583798402022632614603016473415204370698043818988876662119443892780770916560585171446403191225636254521028797608712457561027174480248712351300000235795990002098499204343512561765629926772669183121539348774010253118542148957261816547466988424590625532402281629857583629197922454699547115054985140439688059387523869574860625655453101632834652232311904537021560647050520274072831122568071895290216749207983229835966957928767447359663646708176960631161369646254910651739825476674971417435181102710244096457899305912105754019418067251323184126700207534286271492132612383284410712037943959657263288116753582013428234063903912189261352535411041168852118726429938265618392335789259929323753458230866658727837248103435050882052287452276707955388467035081980377629435686643925442353386838691582565725796680474923332761337298251445082342722454767308334921721458567587533890805783600079635755251004202002492190770515205952719397078943555705377419075113710104149248876633153756824834898337580156141533704014502937914941054292593479296573763834008292334685605098054020528856561690359718148276242792957302385664344538460262625886189067186650342149416812144905538785731085523182975516758734570748147960027027012657222316639001672805659886890053043859384365943124418760298475641537232694160213428384841573033926319495808442487905276020924705850023383858852115969378347591337449107898732732758356181307255965489865869065895927815066769498075417771149456473223335859703355738968361675534886311374228776066972300654554517491127276210455140448495382481843240114494833396350208952370019158465491218914638351230874075155723529122513218916015909811834776268152126930186253616606240315867390622497469398128373076057527430188392342978371267392462955521102097495350302554771210851785972389274182675545111001465048289557955532746846005524036253768138789907224355296542348763819034947602246065764079390894208694795156377871258340763680062254322973933560227855786025093153034067588276205876412510772945685469968956172932909675752763268436849431270947070075393392151106740490852947721364603607651999944014105850240051250308386730239904787009809220290320743825198197408880866869261849183219245911758048557141206374968737249899837008725205159001262026934294558312177741934992897926327637248581108255743947766697061652700053679478261312174088368059229041036550588742599923302989644764997019393777289959247142349421124487205616177638627545643611679397465120427468440763760392613805957181634114347768572542171844520630019733217283813829430944169332542465477283459007528311004311226751063868115855542143917402192334617929654425883779486197414253763643946314054414047445502043974514861399163164588093907480063410865711093595836069178819221074686687494091943736101499041607321526815128316799646514182187164935261732691072136591609173472894382385205309737576133217993585603318772259970311566770863262577026248930698094891513845591261064394289384235837247329623147187360365919187170322135250127883257259167553026395045461827113865688268486689990055790086422482499640268439430591420533634136864279176785420312000012580366689855386861696285796486959914885654080748784435685434152936283442066135431134269851197208929985322180788303770734614146987539552267599741555652181318341792328017656509446920177944237998035789225128213249277103164099646934762719804940737507256142856623975931190818380990178416536995125553420691303012589555255842685726287055404279502303989105047901749276404744346409651055535529809035935510946740043926983521573967159073754045495539789672442741772355152466978016055775556368939198825895007798416196248319046651449507083914310822055548020406164456829418378340469389993006293852045314680395086623928578137275077182370674941158709276481610630555928487990685728327651663683253759327168579546846740184690349270628559211281678325347189290445167275354128960594367493558859621216846526912436653525700045318784866196612826324572170182727330277040763320296736710835012244311585567664008222150636873462785066375223774993973363874972549915786559224073257686833061353712521413459832107888756914250023722312428683635373429539424066618470626702524398886538442976852042157467607160282323053612250872535380579182378442388432649199011175664133186767052042089455934349205376527735229926700159010811044252727120144841710195526801374261346463157804147847553088694958919355982830218050536944569573060806638950551218578801669442460655596893750503097876729272865468239845071397779862530524944332574304552397779910079148753151143541589024658620123512105437999074682433046311189250787791675440894573735472375098765225066018072454451025854579645404772514944054663262318446681461993193329638871881495678382680092043924826044460159484346775108365982398286644382917314815981412740031576110713044914387188289000161004665205840845100286134870897646964835387711071535352554545432464446385389741173375999658443605707527290482734147545599899912263063839699998730451513550548608567920329935369603732168952971657247377323180696679876865160166690705910263264995842983216637911948969467939307779020299293227428392626641548696923263639494613139839437871039207692356363642217270213260720631073891282966740561853837882020314703179761379967109589064300959157118313827105374517700274133166380933466097688024717027296031953537859748923639213540564639512359167913940278172961678087911230041794523384748741700840518591496903749884841939559422960555208932462352282323482526652050192639123928554601578352329523383804638639074934148264302526178967236508325993953787125251739158076734443229071284727233729382778517072829543006794730071223615247019627353970481874235699747399008544479911678412911395564930778920424368114727216316175904867724634016344097220469581243739894719200384350382791386622300611975880024693779752566441837933126737042161228089717866384524621622181343432639577122367361626950287290260810025297448547012008559235104510819710006285494237711089732620593510627302014641914115267234762663732753056093796623799823736301389147099596328222086785409174476606091813591923700417054273044695936500846368518202784878877261258944705024587602777023423770344953725314471792181445122608354164633705379276083403061901529687865812816117771979835937227920681403623944640229252359367220476411239970148236199609296932048947243896492840295297256168167296310240939347742659732043996841336947971935119824410467226238835500525020258718614486499204369539400217831225131479023302898516993776964448972643195865528915276966052386738699079882734385203168342576018984869476483772832556604361208644031839173458046180702302850632644967319760540301562303865547697122327290740901055523134646248569789044285659380793350016900307880395820424692736947107052590801010012477755670746782354391936304581504618141994881241726969226569163077717652232823335512903667971380688798185033635582620040980942530228546619376568544718776889218858608802406585561944049771420247036046236723322846581539750278307410621455699757971017982026918926597404478807149396690644783679396819425295445634308208147163639770002390455893306195848502141576389684527409523742387296399878188397325684178556153273558875922277764589238320003862291569436477144446671716599414667081276005590591737017602672004219131630527530278569082945367030926894293792371499722199768194409188700868888529440518327291243229511305369582107025319416500363449474934036085478885116989555481970207747152838261229634521472826127480879134988967143954748616372698208264667417257391445878348833041469462710301125778507695906422338287403781418217822141725292897296633813894183779210215901472662296746280510829029759356139674553187596833222823503682173730560820150535821393999774908226361282920346922052237988815259313246008733365552635657509153942363675400860323104582670881992988011950998152090072162336247913043449888909109040934983740735363304314421398027340853810197340578460801066449455874337272383762998492400403261121920277866898717166658502238662933671989394744311744850637956818938950164669091373870194437701215312866525876527101161140151833791388748976922926506925873478596084309907401858632088175850115929566297040138210922708059348622065354376179149500790813641941033201563575875181273498759660688646431126046298943214539921769781393319141996673009949902344881078413448554618939849671996463976162581104010800066329552109563197535895297400076561042804890243071386635219952275902736127687047025858690515162824124877243966219716783218220290311158004438722518167059396423346291506867857921716078291089078441328266709772809951223560033961252863139301845210127890046314859317123012085825834729976367872200175843660570296746211513971630008707076018395434251840793961714956518125150434814915018526800176894299583803358906751483295000203162085467934757634088812623131493956511851162789870214720555920333187190496891735062853307259872924356360140025301088535431988188688054931282958861009192013922157940775011938237832540596655867139904817437583991080023003110295959175373699977295659738987861636765693830892515392229314649329831842844512589767646457136217050619120995556124881982846659597388617198991918776946982204012462198687987474606482161150848672946590216272874786944725115339633351105824517312127797517705824754074297795229048617522624330338766038534608347064738421300638273521841437778727376663545940758087341392990981213254995648195778279668828177199039466995407557302507385674070495430731210615257824724628437058639215176048154657793802392390199488204244594488084354361002130543195916886210566536792841226692266299877378998357297819203948712113751923854133391942451392082582349853283407686212126516581430487372802273786097050991372850212032775396724942389275048937224085521853651015551136934384211674301269359885571753761967091011112775770067909809877791488571837001345557144436136378549301946548228706388683186463957080044218102425222347516722416331415712261260415105226913492481409885128053555551632844783069349019509946950194823189403036811194951808900510974042213772637472561731232638322020404602014424914404662703232666918916895236497580290750482725839126751435989838744160174922105220067212954525704073428680891651002997326843921962085801306790566850653353612974950466904746746211659772945648358309284601851488193085040204791056010886447668067858116211621611842822430656922741379206588873131693608017880537460940240794780191628044113428842526006709114653480200136583538125602526745472063212383404958016979757931636376490511789033729218624522860118843226249610826249154096725627599282770985420158858976745413774794382621448702237844198432415787346267162553100406529926755211158201904493653158061047693348829523801959158407305082278519880089297284732384110894871480624713163501057599229240318554896343974001545306606310398702313522087030406294965085854134432712368620028238486179362256896742574372394838501228465666315104842400658905656177744655654124491321229060792916437504678418470506137082759668063305068384170165575597268085679624354007549259095282896952318475769782872349283844254284859637005719904389565110311197250604719561094524362017595145808466931965400006446976779906003753383265557538628236238031245325058664964145946160282163946437112418958792158267827476049943680321577009070745850059345701615297453457306170158826754736872345179418324047954589070187558671529325539360918456863915859873925880725770163498975346584861866610221741245487069224009438316380670494181186516430731944281863147291837865268823771702143405823139287971865352806489762885285578017421414993864213009737196602928731631252254891255631613380538609516142205420789558597300904729019108702260497322159023150336803873409534798786923352762269704232105271446910807222829187148034673720762292251798543931279615412112158234556308027149942175077413449311859750298605106248907090946157549014481188714725340951094604223776056437699308667490613803203647515736844934104330943386983630310673028735534215079160239377533497473305298318297451472637874078697222037307768090997161541004801707867518230514229263843514280066906901376872863035967947944748191383561472945604313754159889379518386760662737630611218713491141585169452465449736455744252091634083804683280969362048673497195945612350881916582955081152843787941687021636732337875989756295057312179566409563986752760099681711477030286749959588156174055589431295043045336087534588760123398771548267781012918292603333041868510161377224060237954263705918982461855104715031084091558568052949513522933476729028065224171947829558808571744777075760544150067238613398949133114619619130825250744818723874406564360830925288949998915309381726701827967270043044588654156117729405208654393301242786554295823125589269424411258299772345613756760590581020075706261536144225249709910796691319522722275232946440668199053926354827649596561646531866255182019313955886346309564296212023119267563016799991432306473519799876487637403703006211725436752027112226999568988849198353315930269079840169220359618911123432389779355508822371196829997139154529648407133712475659245655772597422401321498689301505479461296604289073580186579883026403691848830948182175709990108720830209472639633663169929554665607438133664996100363061939038153144755782110282139917906458021191446138454123928776505519877065744388051155385968111114949542688394334832444678140895918753940457442317927143363602478308822940233518962349592241155713808961052854022430028147061660173961738171179215903284699799818675717389304664511034746081078486130469232300388032987073678036839040020078206983179849809592700449454285849917482508910913876029454285491849194625996915319686285033167128793685550019381135181326969807526092785150661925167070531123588600651264035354582891020970644091817301756620584657624552097179603770572565787539293082236127578913806898374686512360773054272711233734131964984407557343271886709268385752506592233909420049786389633752137758708813399227333944248725330702506325892576004119713454680756855663725683963340494541240877543362504267072054570869698454277172438971652535544637772444277171308100819518464343860477166955669461046685153085888632973843095274489696929878321660705905490364651501631910085379455856330529482241229395100442942508282778541681751227379868590825788694375219635500697383646328757231795282453413797547612026567593276596524900612922433367370244928557330130733210175399389674558729390578858791645559632243888846517186496516061419858349612128541232005191094187103283425193876630267150703400902816346724895560559659038992987461073605977108888423476636050118278514313761432122590481781398087788939337607985944385037153379947863015587588550160418744243789542756014496639769419224974347181694358446823024531491583206601439955710126679048502455028331540600935030538329627995768532050590772730611761921986781942447686864952221230266724237840264208304686460622242428887464265196741820329384104573153896811942702135841159830053149557629105972780442672318244782949245520013114761163647598000537820912035636999877891952692813929318527658392728363459649377647788258674604606145465555233600875666612581284415420127591526419652897782185170935897198516981381748569147858762012063601923768788776049567408950915296387262287668037933564955041068092054364932678646333261421604597381204721684195198971089121376870988778333110275962566656097539465051506379541787406122252260335980188273740041387057223488752470536028863823478788082024310428932759614555560380884623685665900768759041843217072159781106176180194404419938805843772627155777876306608314314254477670209237281205851687566985673197644372178499477869921818233388079095864625182880663715398399221422556395011862569723270538390561697460827139428206931227326046909089184942772760352655655191608077851150089096613535719234846624096955380136832957283735702733921281086589466701246856502059287853842849454636611898127221236733961470291511689733884772418279454819603716208971117597109428755111841880521079351685824598433279871529072110748724175358796068110174533977195474554383363816688771539591129743114118438944254718364466879538623219332581469306751357401818702696932696014654974177752021488685320781551989149728832724580485099013391814226596382691642907816421053852951421118647087336412422664935879594311244743202230932550113625961819898268178488036500081259256721632434582665929333540812412981887501341953448324530142890959459755181340731235990569801713723321914399447064383388000339154615916653319041388150874267680617904309008026633424031487676962971391203981372738420595202777247508766546321112911887468283503140581298469064399657516081857128359494933571662502169637832800476918005059893800073906213144569217186892642648788382982323759371366862526642427236448228482526868765461349637522624758383259059666504194142413711221752131252699052413801200423919814271304530088493020075948041551120730946665506274106140186625834723080287776989867308011129599078312543190589639747696074778440351203272280031308342056699219840070699173167148811575672285331039430996015590830801374604344022691337111645659612996719147596420981612627610307494875015197385360911905649648735099313502460681620575458777717192402327307279622963815891600467190204780539601643171536542886232531434518200236171969260733583405683388564944056801159792413014268491428938733980204216162316701421922749483392659942646972921592003422628396539021564237150696990747803393641364150021746292044230795151987759225039038972236311074668038520114201199743908003100085362379228631121048919999298476589887681232444826758383903391337126852561973005296454631925218870765142387623431519176308768009034475390740287446405130090667057990108144484305586499776598789278113446665700797495296008201633019139599784556254396250042248853523391455667869412912546273351819907662290790065037383062809631795240940550916459787607590023394853400557593564323963863151742955216803325743069748362296693431146396884900423108056557357299535341318666348229898444990710849469422755491095402389613978372035698319545238619170204682184332495017746413934608099256278307006256442571240883161902909849258611641193726564487883730775609474866186920845905781810778906657354715875869076405864178611500570158715881043258746814018800119860023995716265689009278471787795133201472675705677304627138752151309018626387510482396493272910355794059994798640379991645735760198288694633753785887455672116191010111330187863065719128460586166037050697658190121610808804633093326549413807666051795120441647249396724297799950559478532579264359597636499938092515194263838427919161732039897894081869011580372575643503664617157753847503545372001086216572995762838446647085283309651129784185831420502231434113111981943969950126514880904236369948692249756170798263947356974181216386516543984644353915354288165523767081022679264459583642770048143951457917992760791633562876590678308789671133929332685961131583432502050924139075220623186631277974104061744830444131827246351759812528113839216495531323348298971830877601457324173041539341256564774300973620197124307648671173537177819341444607464607790918255160072826061991192713084196952739965688219122595237661559266876649319223249249143990487349766546212537991253142691693118082278563624273374925917522695295524572012391125699586705063577403446661635031074415238398822369579217584720913946391369614110320708135682056002459158755938681252150164635128700689073678171365648579433139604447040255235655946559490018508595714253587667122907736949908596345777752788863285782778442914908785652413271295650543575398120441660284710363559528119615789873787114327654533654255788309452645014794350424577672750604456878726183825397048873247827751712795204973251645903960701594585171376963928486210149948057728246871222396632584562020178374572257010560587841569940340637088394407551507273394062260328347840800564099239116368477901454337569316658933394061575808628020091160782343170108252110836623931779715656438569642039688839587819227268924911710695759279000126459664757995206779468601377132105269743262164301093774253559949863600183595827553331519546975663351302281035384268624626698547847897061235177102470453370005944378169680156312086647203685162232530513902545492180507104091120121951476037126481384321782484412003900729435649183219105687369348454602377644544076207782167368727995555500456757921666950275943701433412749414624185723329551270329074743963928809429162901778736988752291684217950724768859989855094707851602588118169892560385584549029519827225474819843357811516125951191132412396063161509564409148946002604879186377226183196884567332692310206560399499875541896094663803742940717323867035097114800772044281073741977058546746668118906913780302278588271056757697782698284820949451355028391897883313387719970719802516088962613975600905835054460160950543710152363822510046036679002184056398820417592698724484181644477553496182984314083565395719320547882853579411975992404463385275335769739374626931686786722179410891182875937438439420600330884024001486346073787130198403268068977314444192005344645948479832170501116703674722261421903361299598710154504754325971801715851429804893648339641247472777362921704716960938189740203408055096396664273645555270011103494540889396328359907803546698004998807964239745517039599143524804339982043063597169523176768187665517285825089625068287132927895067853749708219207708805148261206075098405133896152343875319056121578899887139573931737384029606410535348123446089496199787123930170637596856891146312246682116947441344616156761617762466083321653188327472299313346670564137042430992939401005765679681031981466009469265389745005301965736486956230845510673201771173776414323003736870258138484104568006845885211900528706348701059798757402559007629282460627668733846729469762162589429714843436959181935689494114089080798212320364116690185022616517038011173594263676597139187339180038506156302137406694456925089310401623815040454953644126119054523664642068684642366031176784566805035641780567796154167647009687579934274171372018595499561549045812597753193093543100746686448231885672905076414078795191875377683937998961736878156975354679871296953522555328100737542720997583631331390903033671494869661883354438535086871334675107525906090908687160483469363813750707720585607163883509058179399853498157151872252581587200918748687210539567880924020487342075823831328666622728472124177849357759384938361649365891272346512133465482387820445631095014355750732272517998883398256406993044080892217736531641428838683590940639804770659439034581630380734532881279446800418869131148367772275949172770335087077111186688846745382143471742629036915905907232895711693042184695010922228827327330430646130275190250216232674630753469180132826179351630317701789838689263317815099787474850345001181722487647907408482278032243837093255585763179910776238607369992620733092695605920807467253773811551201438610397300082628526977189987237698341725320136740855958420465777497587431445157574815154141129719146212870729274140921839025239458911751104022448890917000371604259438994533428403493349828328552708222965597953161960619324276437433772391230602444363085025116351874216282320958006148483744386865488095391821374064305987823152845264499634267925278416482018012222322954407520400273758322070429614058909325349792198332241883757846831851990083151107325058764615392898394121546513561203568342932460327848444058669824783780792022772008767647203229133069366518237239004150425790236909855084549904322850980133899051572036603855749950747928577312192795835041217457637449791565269820099759059453298135841163610009269804157534795297071276930037323675666492143897521064814220710834755889898028955682363406807600045184785585843594161932647935529606500599409717158493720089349796709328495407502928086149700545284255666784003556987686777506493690417819121036059929581021422519373537492562881685110238028703514356982656166010712276775940291983732494972265893401324881600970535791253796007920716388888922299380207605056583361547116543839558149747902929460693632578297581381274804835118246704842386605713005071357664805997913659010334633132056344707973023635871328967406052863882892734125824191984218166149703542406927465195982097736264417189008305240626550352171738139889529348535328897905086960688525850457466963819769057483652075796914604452032594737787407816759150007977154272252436898400914714534714465189617490110172074862251475178433493342253149068466941318623328922343722636349557517917772330219295401476176650745446087350911896788971525337261085009651437828518220380248242928260237506269715018328192238391260489304713815630954007850883326276940134811265425327756285146903698000575232151924538354029671468825426439883948321423940726635202883754972346498882002319678149633186825178986222138058806818451822568293858636666709590034388733499800196042581277797658616680420837669255166576983597566892566811238853285138395534426290646267484733219982921057480725384122559263876427885547553631566810396217770854516915749449208218370447635891499498412218091348540919316078657945149250112344581048311235703891721818484348161326317989707454610805747289459902596423968008284168438630375625391431570907460507241007012742988573062312546376297891503558468949824438565898989116778550109410632370958647773620221896289637541515037725997278399789563719698110230772141468867529660554820240647476341552902373692701747244803694030698272987159890503186558648028374897871295033897978102905156205748876807837738606573450438923905764445400590496891071924122053506914223084863173978048088689880254501955163730436143377731281512622578708226209230199335564758739879797151546430941930326979577776952073090107170786518449370207122484655276371454628551957169870128656515981889553281102068346019736991063304784796494291879470429416126239516930896653734541342057407740817556936608410603715278431816635369474738969156059533084034700081269213255974665788382623663439834347222560795113876272207277429762635408274109488625156363047146919513443646568522456817159211149417860355759864450796952779310643418340760607932074454597919211921927984831092795722443260421475144751207349069498093445797204605779312444926812007626536968822050351280923203432812755345123953230435678404289911014822064154160002853758373968226643008935458545672205937203639449881750145506979255554490510505627972885182878954111848270071721043006672983188754632438630904185599770256573078367389971979970514694710923428042980284318439276284476338448796590372395936739671372486548349198203418966851391391889610181120319637601063418605612290967994706403280662277619084670584397449252464929869360978440595375328219317627045018390540882905337451930771671579645877662852010640877061203851662915284664714051723820496113557819655212527057880040494626752288503472298919019030393935148794103395564306369533088541441449812485351502099321810824723989493689988627396435139139905390478408651568431191467497485467571814578242066619703216046971960980553786482959289039806593696473388023441849202385118897013506159930562347964414605956959786959784785515623683592239832338518477609605369594854787998060479290260540735657195289359642970035266363335579192080700638136555618648466404640231295561355495634977413424923294071597829770512123022402892884413971252200033367606759632107384511832456247194375680880191329913090274735396692717325820762024946760259907037564178375194825447050357615834392535407548178587258337872212644064508289079849483587888945170483088866549337298012671530633421315410772258393740267228275821765897330239920889440614219248155768515946058570893830163135796703323387384224085881179079883784129970473612816567968264305569312362202007404143224191745036366196285673082901696969511295313989201642125341068176796971917258599950810119936847144607061980490690561028065396375054413940815976323971042280023365249745587570771474230782336074219728892530894512358190812370313839237777446871106847059558056956487131829945967456784633013050814729864529346592870521146300442454271475815080992659621118207708381824239591709163707463303302953844059321051541082520485842759859761032884439475250267255113892194560278429595647348414931787689900599479074478592163261016940185064221293840582428172588041021622046757073704141670013454426347481899284082907030615287746653229105151189802232773702219092288178198427840592370218084649410375085119638716083188803111547214371620601964874293437363383902039762714666808886856466777615590286785428157033093407081853160540386168371067915114636006863926586540073004993442882934495466651817397293284007460667930127080334895826761285600100155956776621845050612089757630969969213126587196118557469129234144096961833072279566278568847615457389707215704009334527606250624597835704858560334106730856462969777527808889680032122244663118526624282615307388079231525790821538151582647946018024604023739680950875936561356426414387098221914422595572822377163568840237294113472733425650704366926844525776931330448848436043299146562752245327406788541908739089499171989426204374776323449035226473577473879684661560214634786023403650970026530917628779576046098750118809610454724511937615296741651169531462284712925360718169720039543246443411718056550222792143091162598961546965249367568737827621430680541044663702227416629042928449151607330850986668273320396480582982273910218515552460609808871147035507691591126163279001127845871499011356912414976147698918341348369707341070144760021893582833158361047678067659560500420689574848340186520035004996808070208698840618098818429799164547411665240800668612559903516010422178183379287304335853831766750359704345941751661323999319860582675390115852254213371936232947773627816152177805547168424145667484427888840124899066169794198140700423010481033094063868723890446515201209755525375751612813126150004341171695123820989523222243079364417482008900640725694360959284114941791055111505509380704347081343835900768479597107336995422644467165008801788876184609215817902592427792357026564422634934962941304916010451718332661138483159936419308678628942979755642827894620518586317658376156580474675557386525932752921655616807099637021110905946247782112724166073451639932997030994453015748018525348858552460780196881823241708607450898613080201431389859063915186596173600038708499428892191184127136075914655524820479147270927531911164477665275567929657472639453750972569928032218780862460683123648070992261943315420613317406149189823408402319771676412444797417780467999563673775848059947663789654411300981049846191102607618679184658362482799018947845647259638053125284847871878324212187655880719726995956102192180333099418341294413076224044017328123878154162783424371858049812234442905653396417696034107566954167000375567268587130855882352168857574076542592169549910065997089283181808387212161938403846135170081891488978085945518691223896704376754077202419933731829834673432608871811667380193659644681856667447288752515094463945658616329002583863664760019091174014871019553529573641179684453845541882930663806646224578841899731803814076166239621944217004324534238305076585050747781206984069938209296504704165280410563628818486519118237263974875161312871391425511105065128516174025882319395138133773903845147514779583493730744186450202471884214371832048721489602587070960181037265062714605792734610590471565927626649506307017060781448045699575485928640581325789224628047993606853365469542110730609214962807329719676991072855782838675194422324568716182761179341880664039202237411809207844546115544984419110554321871238753681997045728993021770094632955057762904801500777565029243823130344793927232292575506535818403502189160396573725605525685482896614726298221976992640553194810513877354392570252335144210695590672452226699635783664343942528132562522529404930993743563516045921256989043965430971088574179686410781468930394257481391793614451832633050048027940435026053232027685066455086585813000543208056486422209783535175005022959360721047568498432586406156981424881415605813366411663149377512847000220379335648156870932099448038687149685488368086226401857477094190743521791971529624568399419517325722581231960173945673775909381047240272181372380006025650876719546392452597450600199299558266228904107613819433939069391375843691425513316681278767945287353152479689537405313694667571189620261794226379354668534538500498325854647119156396007449769246609999328300752494406007861576086120206123008535247610348889424745087374579290368834795972252727991508342737140803085561254813304228633871084928389355039631004498288196889987550738437596329488194466722926052281118386601360722136719901965099033675326228874243039295526070197688768767031014285009125940154810484690856167013010368692524326239865543670844129555404893309774715639121876278132671100119622017557143167843167105065995904952032971645474667312996362028912391046003792033452350335937522183906770527363700726832489152144457573123157587844881865588091224569412781765657708524006060721616799088715887208971155939456362172164576930966728858269269039412726964556680912339261359314359281438005090943622645685221442583990257439428618615847894200356607147570879576375587846855073223857740099170041715511884484799876076342638293422051171088087957617480666788233029040254031355778272619284589963667527091158409052631667716656008121974856753788306013464346095166121331608720211916803522453865438440199789695817906038187241280141141810864300370389900687428484724009823054705476240315857609471427880350384178230294520299196756626481587181076452507554089784863040800074376048243257915525289547980269079761119744046090857717692550202274957567814093871312884523403990380586997909492842472338757322614650192335549766352954452983016848095683178944254564004569532004648812537781266335038706874915601787463687624611606909197569884433233761400989556631410607307154447606973150709947314799818200388921778300558947131771389837589180498631710746447066131012362560644125361260625170572322587334007458593318325500578828516882821283212608388370029006651902904843887321135297901493593686260163323966937367850931063189085140599658208803618794790456548549716828716632051748914623535790994956819768551194128014658413468824675115974994446830320911118224420338358906683352667094901293457541693259878859892112247573340518286390628876541416316440578504661711633661097193328290853743864050112101176542025391267844602077498174727734118198851066986930399935379721084742138108849781699065143830087382389098115598979740197600695942809050292514476896795825957007029649854764352460578566698355452351872653276101468167707813878264941463138832309061662575693643941527646755855307308617859435885155274632019013248005302502299755981147033007675792598886605786126435340135348576014012547918985491000511564307118439849986986190405468992379188382826871736320312005591476746291941366624572228011406857376315317185589158294493441517976458421820444650969896098483437612209346162591571895454648196988737692352386736249179017507017718425836255541826869669884448902811042377105073522109919923980514761653042670278928188862968421226010929002554124826141221468174716937639135487590666314170610654116299978994918318883783119118054702706425954170109773570822321569283469096452898311015844326427605587194227241264411956596507765803943296076955583250148396319929375621233654202932398516417043952420951826041051845588160297452504568698195916502057814568265918729065564594964061813716024497502727855905090248255766432528964103183367083001897917869271514476404030617017139839812667317350867906810125139175819508348364707198139730264036803177213969420012777936482902311962506119423141891929540116364689861688591673785453030073703010538791978671452669945856684757590608454721268173771884894879762647793250869718070419809872179612448672863133294237598142730859691234682403159543397537458752410751343973194807101605113968420035679228398935765833108605103604481307201603507891423693324737098107737315961920521853488493386478929742392443522034958358105797963509544403106037222390616648705161207241841019299218392266886052931600841302104884947428938440069703878673169098126782244869720132066699569079294953522691209935052312494700309021411098306505503263180759726085315973148999891281299405083370418009218419536082283167512686900163922095804822312476134626801038272274982990333201257805106141977467235828012142889574409574895208882310220134567371144501556190758045403042041627943681393683156655261768068603465488987112810631755505972614876858311398954185332664336215358356416222760997389561700331633122178584720394240480131410838273299961160942047881564017151532275952043049112737381976451769991052996426336739923742826614082498340495813826935866791643834223055794437589123782736228320717857270547260978287225241437618368536558297988981077612147485880886037667024170682600154928728211592272006860199651683388047254284319169684520347175602410397838005501938022699790850691017933197698047724985896251851616508981054880434894428938341742996858802627239977226189333455037359929726667315574686480660402000752664112250957682774872147818333998833935367192536806250060081543130908337089248963955236590044928147213953812756629332220787679792040167218662041665469338532567489165591443293539982492954181303939606904083695692934853835751932383358873807098668157168126917742430959478145332872640763899707528096210923747259632157937338046807237411542191310600640546223243340755702098682632698488318952467207453660756545318262066296570487214924786641606124326404840250003048590538368950378285252649504492810541658312801520868567501432905204474902792266667240965772320480820804025202816920157984613682489455945351113573548020275194803905690342506703979591186981146953413038936721261088235220095011040264463581562872821574706361162577787788537286950889020156948891579711977705624346912190569300302388342488334744967865974860772401868040946904081022268136236255326630535153608228408467835093199282445380427912764157139878542648579804953325491828001544992640403182017403318992912705055874751049676072101350938125659435696308580862422942936496796823553248880985980844023770201767692079523178181561161694110917596015053115045326062882485644451537433082953333488400143812490703705391631277177090584175186083079338931852681161298429544392514266963270664032643079708996712234428554701514056877548795770618874238016513380205659211878160368661688065499107884257652682354697564609774839104217378164657092011331592175865598938273198195306587466921364775950709018664853554075348480757413494565511687486822826845170635256832246280035594053916471443033197945677780992909864415818191771286556413003627210474889665214438253747033893866147031743013962027034070158359714090861625827292518331545723282339270368280850294123515178624181769894235896975294695579900210967595709797526597086458537615418010514121556558678794968746590556801094209610522537199487027001958840139596107553679132975136864316642375327051703059970997811771695846838373622462629516783923946939379748380334721526964361546845495627519549438184085208802458125766797319897330239441442582546518252147250201759528131566782072795591347611412574655981021383953867686496270048431520968055115487495002210292531723023318305338224224853481175112481857188099740801583579464666507470830192469717830621652884851668120452894504939257024337198387130115866867601306476018817968376101921691527714883901820505653303793829188170581809607149374234130855315461350144896303597909979832083512890895049346281352216291710272435883845691058982500630335802158070632438560533146230954129175916430639743554137253200225181111676458141519398223337915396217912522958505072320786576059689212610860050334397746989240206359804249612468303772662508227821326931569386103570904100949861102371256644673836742096282563355702653823655443045323602322741037075694341567346843741487489110384640961580874753662263274313424962349626070077520625729118004547058850510828402428953643516541267632579108597096468644395165860003131913676426139212312336039307252734723881490474169059502706532068507433037281996960213715548112007529585322401882048698927104459430605274215486954423247358262526310280736672589626317725505630729089455509088460900413453382423197418878834273451902993354537457974660602022258946724125619615512016506022581775513121453718633006690140388279505441792143244715674830124109724554825052513216452167296907110136260634658642002667547537374341223706429566344670766935351528617744203780271918668242871645026781952853893886201886107876457374486518467211498161154541786955741873163962806657372987397706137776230073393633994277674767536366965618659668076622291799274159983270161715163640551771952225752061298955803619947636296023190018271770619724847791261209302468510423356741898630016270121022348287017463210053407690803455570583027223142886389778727187433716075209744063397008116363328429082135735749829314715841590102117520344077299129387830877897065562500152225921213287323014024345047588923128607876047157297198481912111036893561275200249389958195560989372640128738430010408929617316763551592575515738498845559115686135995416109920515130783840861404040078308032666378556084315664907177540539800956236816751263564587916783125241760312958054352050543770153762295846921813421847329645339849891368507329840247278097216639489835506230498765247387787203330917891929414531779576219596187235639764524934458686048252625314473550068726616947675901279339718219943894526470933344332249289956572677090301800163088728894207624382140405329706519618432722828263506152889106136441614158371288996804050965147850341172156325896630927548640162904179942506246586983431362188218839351704202173108316122364617339907657301572962406437854674678308124477503115224917040631618728505928823422611116506226464858302061860467802121347878252783048067491965808083349104045923553712815050000968736808261827006701800774639410163974138162804699467549152941054952698823860521784697853287117042656828601505111769119574138108458806617982868137749470079839362865990815928596089112122925409547224069478693507860086560749845475956130325858065195914340467273268329111559283199158621685840524309923952180276309954335880296511329785220233075506882242073359016852656100154786300402168919709128860352454164972524911168453244376484269425922332141226744633881667388012201003838283455428441766564271421034516146621632347370538773684330762359385666859236910146084473605677358980969049537809524326909930573611711242625070257825477416079348478498015464387505778554783763797031400164866479613414605270950171133975408865258944687097639361767063328057413505908167514733217768489211184685409172753731179701891204086347078288880584728345439986295659130346411159704608692182649509352359559240323710732766310884530423772487559201021239797022786961148778497184059339418784862874721040362514502589222776681500141195787474124216688394724419835856535791653706658171093661635161382440892114391704630749436756805458913538429372756095533746952393122761006841538038699046922245492888323372691811707063553522862192033831963653946844441357774194327761923622844904189792634056425908867398679945038086284444753072677995319688312522723442373184482607869255077743721389667532893404634644327345304310786191332872000875701182839730062386585040157621753039532350889194486242738343644136609059827841950508169170954585162075549089938256829359347725640496238863036545757915324750752779585514149059877801982490317815051901099197945510730120903818856572725244645814427224849525919367349660941558915667945007279543783996467278105829036461538970841345208025479076855041767970122014209793968170410882705163602125042070770568402929286014063860507536370307491528906578664983207975601363721750625507222764539211418793981722945713267343142964134779911783933738227798639357134786368324278632846620994498241597141212265936367635536174332342216562005214212571992368592809390592935989106412916815050791920658532638080072772534314280191907783060186437747255702318765784462115022727588744839065642723613132453925955467916219070611187071366854570752174662269885643874252163001009337908160951282176284899336444025853546341039959837366103187603332929241604207039832554220018226318928102762132706415512639050474392933945897788467460403032824415621496746592320727183952259177785635803023160108147731466645406174860119451639350985087703531789967521758095510733957559237299195611367016835855868028867127024857887282203036154316440945993623610015468838429115865806753881270927564972516626968736182033444338592674158054579591673215081787512114661421374630163836105160589445882765454433534923487317012842296125012597288958231274708101680766152692830789099142722885756923181697742664656935902116251763598451137165542407370555445857503912445011994182841349577584034814048256138805628649382431957121563993494482019674121431089167938315042442680701077863346744569515058344428713371135307483661036727469072892567727170535537716789483010591079741283571298511427652190392113150954004724361361997638752991667075099970293935661319280779322901286552764547208348684511044812003972759573896451451228616180753088041903662774784288261849707544809714300544951501547682468792519587150581396375307597585944970614065674777626848923559816935924495181764606546487230449923386827124888813783303010367652728779015827763565394897652163570813231007104568334233793973500956434893233976735142377988543252434784673508834784867867527429691261176560000713791043305009193913574018708520634795748770661495142325114134632577537513549305945180779163747882390458661338121000368259602394609109777623424962191859441460261854857922736913773850434935542516669417244951493813108071833827654504442814294904970572966372343354520492579476745185811969815701989646886211056828823151774521919466785909303053320404470823049083115378930460116490200914732955135679938517107545551466517823537936997956717196324019474889635591511622651232677251202216474637336244511609846497307950138628542210853466848881412469245846813903929812207262238985485369737836122476030135125770851410597528544191422947908789649906565399589124130175166988560197080485959247385915400484710709863297572533858147013330387911855487585138598615897860153418258807926340546757977838754963624584594693947549358741753723412816833570617305560696865419152038503047986635189029975817961274848221759056668622019615253102365022122771938001174225039886882996687931814487500814014220551186311145008245299275899633928642033500283841379510416878863770305974901918449439220178695135239065348930917286104661482799861569041888384843434439555480365115553392119141137735892846379551222375280433888376053185761744140312740278536603060731785055030165767107567178309182841433749568261671753317668881673462843843152584541141328121011754133906456558682866614599154310707408207397769435046864048689223049455757629853725185845509492793661006290494925086963872329385192387093198769422859456085479144698438950166887605965779487763949310467697473436948246346006445086649329310847175283491731418773134575019589982422812634700602988188816729709204293739780059782911787895894594206303136654585317869559272783665376433395486655964661868742841412474802119931610234477715183585306187136238097684034953959734361123858501462242995557766493611903261625615605800295761933201689611798168804308575376912361667709912382592202185488756210803361128926089566107298904481928684286757203536807468631147260194768436196911232249346888186491418746157424130142657549071131162314568512250286072456657155774102926581040206127075991339852003682302819313846290972018868561890056807888515868477764041212200265429229163051579855859691624163220106891392392887922573180441178348228104372048103704822296229483251360096155910580545074814885688963321363715538437771103660340722373505839440325513947726043990140813198852810646559102931865544813487462286761103973913017207911072397667739985066871620964625786829945313978889020887226588677230529113371124627635809907490008730779947703337739628252410094318630461913005919234748065232244096405837980710989366944321778116715564693105313816156901024945407268670624706710949739679562412750441889537499191929784958032909298703479429901466777481152772767544346094142013066705560273946228301797625009248638894143491974101154838366929035997362161030345496006934866209018524499568656663661936332305286912100566748525598410603312308151483708918706319721778198787970838732307056205027212041195732256834251987966508346045108507754248491977706178897400411939128977470695134965979826469092819982252565043630685664616278296588543763865459266597040789822163135551423665998992847360991417292197228532604364942499129814437254527002065063152435833921465022766760991050574585335181711172452070809131467398453990060608312512776052561267253446621866431288929079847731206691359953073352582326436975602610973173953917972857730218355456509586058848975516449560837289868574784843849173550014264324929689080279375758833838400247986980806252965736503970660586860171757668701972204734170203005438583246822804688458221012672909016372298769709014848858762173861872903155688948752627153617112461874461280387973064294687378571678165054657925947667073728362316711443765269081514767226721531962560024412708731983592941122065082870835699459540547352612068882873915646899652740473730663337066853800667254164273948766309172625602829599449565175629842211782726133791875304286580068287828747204943901550481760627257175672566066841126819026337898125716550868920071074433493111585878831213301444192617392877296652029846789311572705183437198375376477888925681090972683908582708246509313197625638117497028303897926580401256983459635031365899127971374636000667465061129584255370891336046850513170258021786039703813402630764665334593880432629209798034622851975853439718425130141815079146288225726441885685211750879817757207883605109515444788853890365349619796007094885784420577094003206107663058957990328058830450868360098041237364118921213705928243325361238787666670544929856987204301076445319322003187775933954953268907628002766690889603530467990581478625861032280994037491379613050326526522983486233287134998771315033703867792088835108126394272358872121904737404912061241952825179053004899984430425015146352389589876017371005420115325192850878097592716277112242659369920089082576590553456741792375119343826724631896241340245145603520675286827984335797726819119856640881513355674589713996940172665487762168756612991012265740633327410083440764009421864752499774454826072427725655124658058495271798656171781551119900674602356421333899660950185748328911133839180183247021782268692564154540481825653706042714969936720805763510406946526325238130240195736481373071434762288735005132158832929008357810299739983224587163532645203198189055669969797879758902939630077501394653894097289522196812374264048952451322265686598129703510988009438915975930205215796771707163361211846823246767385451467426347099910180236104050387852095679990199876306796623820864756403910528876020653506934884306441184084005162938587740911676934130331890051157428031955569800821807818983115499894182104980209850262183854290177068992112127277585121879824327852219288733298556866074995027187016143509047680006100206762172768331422138797396681288942665313357218076276931380128014630324799092946071776439823459930783108940153327897655924003185137271122530605965581161024307261556362177037745044978794893754645441846370120174100743587643437902643268300920378924046364158557093402459695177053970251359003261365066942134641701524113530833413813382354166349351121033563384279431059235885247788615404133936623047610367236768001454498801904595239823334322058476669102352481088048615373774638716619346212844182195431254599192351449929802856090286560315343915482680838050605379960817289127683772393239538923703143493163183273017828543490049297486722120501358062033373138243508743648250066076120738096367425559447625645469158968740783037177125812124665325529754223554322301850647066582994298036623098616823600258663226844913926330829997283044239342371966512403678332242969350366749532806139235578645092932098767317089058257300313542053313335613110619286262825479935236978738491498573450628967664366585443800751872064067835091758391986728473439725254361485707425633137304139842817779438798107489109967376580756757244343307863520227575395950748160388537669124013799872488452357149348393678294921916225830118583040729647141564229575808060401867307742939827289358561860680317438019672417872538040118513089119142404508690433775743033318841032829247348131182668691168338417979806001145940275424664383559698529081547396855490817550097374477795720747048961509981232134451543395915562057787587515932868429680007097792540363735722861939920134272935875026355324675541965010992715645272451741268586210968277527632458303385308900773971176917965168687759946793996752939789601660403316162706881060049466872769426402945428578138477514367645685781443837154575980193163361224257135255722015090986962663404126613863961067369569406579174982291610647535543297800361708239263303168059558660492978451797748526924756987052191003692333688802177905742967192654299760141825509441435432592288744318086842827216911748742725984610621621920166486056043401702177173698846342433826083270779082546297875708352347307105629895262327103095529033993022344539492244169446650167849917137253701111698718980219308630777249290348251441463184584060409716253963104040284618734467529961548785682165535801873558022375511712968797735635000063963483424782325328803430473539965320466040400047397532074750839061944552245399086156594539396694421149237000313735886378980910720759795029203264015082059948880332718204467093821454983208660654602962421097734037295675487154456757486747645224243074574529937614924908443994642386423308710425062178755395706645920669334811187636144310528355811933549221270308343864018437867543032231906168242410919841572985823419366262106062790517976913481957797087936301522903912758402588563664792321156990632249840141116302891738575436694723707342761825699430806259861261599781330501159794555399147211933100053044602995276267115924038413614847183147390065072764816740989195358639254306514674405903714063096602843346316141394313868167076812169041261131055944330578111662837363923613974730668610086301999432254727538485531898315143849910089673375242905295242012060819180725906765384347410905274196780125670516358464835325415543411359155108588495183804120572293369176910630746432111921561501693145678192301673960297110941591576999752393613153864577743224383930542442857210879111607308851835254410917647577942587599230442766601310968949898835007707515625343102654465548477722203938184078029706735412580088009731688748431727788029921871940114137451511441396677567084296582675236632651956686951333457519182765227376331388969593447704227831746760233958262965335391443362020864394835912586014990478480031558651039784142162340723143737615832696792224581478401885496426864620902967314679638096802290515543242609721655812402551054328263015489194497467282556328669614461533892479885351564433941273363159102019489900929703580387950510971337421935152569560501290570990221257155593972218014830242933669333343209300568840853118878036869245742630900704590825845903199875056368101508936095193984588847801633386704114348649969852731042453863463657439508089288615098259275914547497694203737933096440866890899592657785160757123731731088150927607738521583946334279036009138948116875830623733318812402040141549756551907586068714125967142410727341775421195374479851000702080195044594556181414750320544424027804832944525751097023094819429094634038038325158645778014237574225962449245625677141328701749025133674171844729866729258022495359722804415829969065680440959689607652789789944218241898257928851574128670464157635104567051249134419174209463084987151436384590389235194338891948787342298924521916779981815619399353293069380863011012197119528174631821594347754659409527320031336950353804340691953909926979646678529330682473869907703321900706044004964138287921095533189167715110201447155003894238625818874385914778741168045702183090567664491453818239271903066834274714177133595312062394418231655937489997994084510672124926666804975836140538568310364233606658143065621923940007104535276449237688924662966307024887456054517801212794317475370516524036688422397168216480333785328125055507061685190810956699380820298365754566182898824076314056853795041944739952762358889416082126368967832703613876240711614124571563114159564711494445408407783865594041415563840548015920847789842957964016358992841282839366726337977747179676745020591919033551014534463000212426102184564137949642318952438164671530117022279967230769140096723845411238999911925481332875247705459184475561807493819228217742496531908771476254228882138670833692555266562141979095245621529690982608594396882588730639326379683342186446492660416346221320777414925497163580380545352859376212504249487926025120609580570447741212265920206205608203659444316771967308960509033092137692691142630473673278689353999749746593660758513017890936062938464018682848755265233117685075075848200831260236969636177066736552525427386942414821109523547712131646047425342993824246692229641314989231198699108558027080605555012245065031503458735320557517239868663265942860818204604023235558565829023782143103057620125019104788736434225598190903636260527742495748867697171502528298866656022976240839416211944011965952297935783768520088776002869545053195988901871343773562534177792979414645323417803188971418649789164663560256540652901113437064740083710700250380846641100869680741355116691518401317372938746986254692703678779292240726061487739174059827077279692989802699168218312331670289990693258995243951783188870886077952094830402695940697958103175705901990701997712520300374342173992747189690095870028791433363456928927720660365577738092437314323996288902166954568827860396285998744681549915473236004157944962209943741913293183538554208150558725583940348661041226782055238702064360876150323210013932333414561958729381984225938329221957060166610278184727092871546321265576500828014394780674138585854737531383661611328143056628990184278373565677154557451783870809689654852367810902399564687058929584331771768414237388560900178411962759533122838999278909073716542904515410461227055249093005923076800563753999439951071098690168556195433038370656577808722357922892668852518302634924387841916923366010053277060458131785902212514636741552197982759710351791915483281057904044553202246746810528864296563785493721621350167891116138692344039592100535112458062094483257517232243294367626795651946881880435684332057467455891868970981972721562657599169556245659434537068066836694184116650773318393085849559969535842690944940078557430673642010752386941423636188420383530599170594116363099296452665288505364867107986321694678496527570601784281153551215813800912041281939148903362547225273531270421994744479381606906360010599050550699048142309213607923199006391215575178015531526200606353887771424595196453509049219880672600250693021383966432668482449747611632166828017626042824608983174236526624496235189473918775674391908968590638423518550320565333660417504779645650541333507841723299739533385162264291045100580832285861089913346283232902505447336472387292140258354438673453640030679116680480274137665050929502016688916663794544017779707340146024002168927090287139150150256450646201149954558343447422895809212788841211636121386761440067294138406220888148799383888718403844455818609757280710525353186822920078101138340976015591550834627702020387343768573984214962441515563895374944772628997381985036446567412612250875077469639084478127602042932927897414889016479772818517464907591566688421346217539655663814016883463672838584416043034905044675771984552007833206936226314897534576761408437343994176120822472668230894857867761646941465495048409649192834124283129201498459492773589838958715296470293092632699567274709161313123096889544760447675778277579571875790003347783841826303572836359749956679424719865249811898364496777082972627489367458471753317246329423250965043318898675968997497773917554408405988254638047393918261134841539343867433350572219806026352425684265099862291962052673377525452188531478781726519974182891342461886978101423886113342293757728078606770610531003470292112319379312535381646698168902373903774280837969527219008652494592525025855680842633786174830731692326233146644307630050466464090621443645926773654830730854252612025596386235809941462236901704967034024508736615151671971933825169316360099925214298864441056618254320488958401903673646649263352504212084902450224333186832313929007357887547145303309171932720560122233960121308680828153155386124909021297469177508630625308461055540034619504053956847877500706472393382095050557199344681033941550074304697430330627340577032727787532309603411289679045474118448481987972162614643747172170118007714022346847627207492309909478645895088975568509291440343267473924388277447065632930263893231030699329089672443003933578594993486998232460065506723081910702125115814615290862409860081699771815084514108480480950183238496673621752351970584608685883068322839504925257520161546957672038421405309939256152660560379389601736945766660371064870634019901125200931563934999638187339393081502537768971780565107723195396256906608513794936800278433930043538493169086233450995208295890869035426620695955908635424728314728462774009329025132316380865619592085462056199796204632688406803506050350642599074865341986357736298642669036074107089409006367825043524471461618487100725313367349047406503820681681848863802369202159641103560216704826691439777133009295681344947518443716430220401833356874800465387974320025776528695579511540000372050706130981537657411487179465472080076758358824411457761550813216519736851778157863156836712077228998576382208610916257306894592642461731390197791887863825126143154062889211320409581384574119003184476439139611526630135870407383916472403621004387310233684223284004827071642128940075808598465903318599087113710214720990608703802933949310968674620337063422898726474655552165099919444348315675185396963562202182256073618928680382365473437488020559052925713847052690310040789994801159726764876855974841767867730874969555471343577076075526184298195753359797241962640708332598174431539299397674832413253640216849773067906885298211687235054427638099403647073698463717066340938259242202734718038957526854955706282833464653990493260307433825568037319709043316705339286410016065209617047993417106209988574757537232159199297212074007887938155619414740279605832301549462679032002732197800409400062357151570264634491483142164830117403151737126986935706948605430475255249980785519141954968764857380143509157037095469939791052114349523141745206278160522828236209172215019533962451742585688475763378809166387231167023702326231685135059001460667088982028547792805326414185678231307588664806266710004180785115602691559578492166912822452806329518794668584085756439179931679083496904594306913839939601096797235734889597565930109841500833933884070067276505801860937024830084187613171783714570042234066238835702348827253107915803594465564066716911500962036765378095024544039313399329737935519149491701417765544720682198354408748206621201076139565551491637918913371926851849860006470090203992250121512989467378818012841508529663037160771742883630551303014359139934738043918933651205955371646159641927113903833763027846720453027985052193377724278054669582726186499668465534437667142350428514197629579743632700392239024910750890191192040319156447128663911086691830515340729032933298596454632275866112084839241644944086699446276209262515189025264109753852200746772613894100684449902967579750470375396797476882871182995598496336905152316726640354226864709002574601511725946834401088414269448244058985909758308393103138444422913026925502809780189707676003516647220348059300269204511887683162957589087920319060306329773483771813288670149352537804300708946802487677963255660951646813704612822733919965904922340277092983108397450333895090110013037651445788243556632018953850922356393288191755083811530307727355894596375524420488852120742403931612763322495663798712981044487328716388738367799414806448511788515559150913739394057751794049217409259101918091844966264395670279086040569243556528756284722455993309008285945082841222120461680486218484259195787597431791028912588373677314730737493405725090730381277550649880023019519722045084561396302108400711913663168522654826531897956539916728222382924045618084720640796339760942511432987254778198166711967006818305394147362063467314045897481624280968909812720050083728591796155282714199540944994347139880033166830556847946016185512096438096952522979442527538025039172753336902740763160033155663856077744922446616811102481621596005897378042072942305951939998981616515354448078094262522649937011912448886821430265167785229161465020930881308083069408795647634871329336213869658261756646114378379599107676194576407853316166842366350979642994701370334826388914894900225653089198821340447094501228484296577443636201426724162645715015676689316941988692126665960280771831768265305179969028317333194409204163574562377947572084082705249014496904273356247562512541368421459243608999637508070305384953055941269792147742326877845619507324081945068041761133161482543322414600047135346253807636806906615859720830336298838749914575679704226007114545240355460537099223447736109818188961591410111186286944470334923400710861809101305951918031192951143348742089078241725716108470831251894238688183631814411371557654949124133672206348552019643412028869628496914442018906112910518434604483129623666089313882550257779263596413232468967605559827853471697395437162845523720344157738879865357978487829101929338967167051634096815541914863523419927827122313719529145971589302992564838104285573827013868133662193258746731142462835083153560945723407883798681630044958206174310100654986881291834677827491887267956973867539898156197640430828784137749690834348417375899918490982539978570865414110681552391517947763427619519803959909423683526160881575829349824612073339750536994061237181611030263479671054587357732347897165998544943156367738445788533760057207555985270990719915374351928992386928683178646266808261757225933068895264573008929078822944246521140477503166280099827815677364142244887593793092941349784864361720578674330679381902692826180811910120220936619244640385548754343132673408275286405480788078747904270054346039946055759994072907228673290677104446364293187586977196594142740593609504394253640857227145990731585787493438114528144496072488919488039442835471717561116506175507835492499694018484923114628953180978643532381005458907353397839124254194952869213448229193456993672573477968956581772368257546271738379502227155677236754968569210604246309063290160062172069901948749750996089320269656876028220979302778921322163633807067013215742500968703963011968782309295886393029796008556301908756563068319168831613082420053070463136259645784353132752234992258002018495160787210357290324532128209619432909804199169193109142461898589900998849889324933264070317755721263423696635096258660009772155296074407343584149552757984839089587867174089436063416831558023575034065468481335152262293474355158096437210032005856993059281588974708221884391031929919926887850833239527941202645867435760277904215427019835537417298081167382512872190141413008071121560189937667752099690709415081783289430391372436383900740988719368684214088125853541016175006638227019070241860558821180806692242196751679974823828405572257369953427745655097022750073710966414511829614038200945480035537841963857983025138249741610278396316395225722056183782058175317061865438356070655404294132840452085713869164810851284009059870059407905381241182504944766082320918392514344865081302078613153546422288048099975254036147325065746661903146616829420460644749776391641684808016055452312290398373522809789739975428994044808722468788690947416894110465011752035903224880624032484811731831888692358930784892789616336031760252051452590531448402171886093811683631333150688471314504958668177432063702606963220544161751564344982331220802742761721839194628730529942634059103055961510665160790473229442360995981280446260156928392026131692809763732335358024344236790678346061135177541452125029548518686848533996118823880798240903466879932097478033558627705196820287355545094505359148817253671089338701972921040218927906653963488534056602159905680699325802289906662896588527844958926535313548365321619686266230577410095058436012273125025599915216315592299531278188982459345687683501924231462392356537668326708756644089428530301644675151911329608816359678361569346747196595039583073533736004807520274136043853218141403429438868530153192224685906839446455468304333779838696511172354138980484464658227506537653144215927558017569864393990728460655974312447288030141972202250516834451326095039464059045995947203343650867976808654644929663560900443336532307218609880383740750753546747350033632426633528308230447842447501565058793649783024692388504124758311895173980123181310917102288821723533494827933707595166815384395112474314051937901406052099227535320763972096473461815584946369423227672057348756918861836915107068614641223235774277058783694717538818529298059286471355201880300156149110329690761580268915893242134616945075490626509472633272532159443672569839139108937135542232914413582856796044554532228223331701221530740954425937546024169142946233078761122955040439248280338212179024039534542338484096160624934490152252951536827604314339568958497312386746398542278808075249737331489404516636799082289458376284382313985622688037537516162990777220454895815216096404807867311404629899354760463719670919911397542510133126507806208445168742536341666150974024803819479347972374291915578732149497812622635510892782052511647295845500707145134951285089256317799081736213762534538926511240514286629823801571286912808244622462561234904878907062743315146881232553307916434139916318860775766712172006488041502746058940495746438592158234362906573487549091484312385692211877339371866452397503275710340531896383948398591537700700194237745369400257833480275156154002135376609275870230967246018693283586386841773470484141074168324097583342614101372830692052787402145409076770513989614751793709093316037764709182718809239095099739603359417946572097333497264722628594516364692688700777537477635871727800821772898641984561702998239000291482804618927911241879997875066937492024723051587219917543711026190244899646165350890944991425258733349718655988024086689303555483614076918215211888140554958431817811662021213815031585057937331661295122666337570342856265171128403863020214467072510060612665582350329625895960009528618558790067008176680549396214520461025990179798574817448850842099346696963853947890011891660785976763630797284154742077303580222080957648234647779388698346199203133990450930914202382070012351809130795128850634476391773126112931522341688138194368804677415523581808250603833571667528747540922841845538490488011009350770252790865041243931236922524705833263293296420724682891312321337534367209414863897584833647676676639798998339877918731851010229160274386871359943450252551806841535695098376044182900610845198089802829176442288514847977894813382075321783147156046126653776966502421002720503601075469765357216587641382411835956678633605416763496975408822510989846814741020157089919093725772456002492436882024474034238786627819912251118739046887231213362456697631572170030979444691359949132637892938016596831800823427268090319292756012745719680108613861687411841829924221358803067718255102990067782786842227239065024900635947459962146348122346055677775999676349150604483571622563779553282469929075094195248229357141246437706405654036943168848398448164856511833606232445621927574740671173654786471330740670465403931022723514210508189076470090605768235201330677206386033392151608266770415419328481872596953512793557555043557740567073490322610465680402561009536760167065213687882428179226823630688788936522357464240409485668003656536434258437858055140423581004190869665490454922682505595211744692094773534694883615383001611598422450703912176101168889871873172779057821806690485654748717460766109498606069969691493709830386022493176214704596294635112462079137732608400806276622728770062008189229506515732482423204192363041904089045212258082803541872564312484700962575132765840986511992766955406025311666441383468631196492027416217860600759079845130689326612829926172407811137854350220080207079120310783518439315100096890361920365071678283181460218102354779111033983876331341108506957210392761213413901464024378930173188133208639382002529104321671223043737029855675846004778010725996227118264525247105937284862818683131071576838315670468771511428407526367354047985899677007082014761390324359423421453061926684716344227203278721832869213754557148130030607834358568417388605455007394075891643276320662728503810364063798367754704062489414982802019924883330081483090963349037658683992082852974030881565960730362440569697288748926618461899620390121408480888704350252792893332243868399705024467533205719398853514932135496673119653779390491774019226087735467300555469487802996992383014607259442569337040507714139796640355850225902484344709656324516901585558129592332169392033245493148729440578752508963092880788297702900906226011632677519632614961832292997000926192788731164710772977317702520841493751982503590561950850137204706693137322372778900120968859184074815009737915310933673029997305825227594877924090768934682331640678345893038497303436136057980372425761105276631195054549701197224563711423953322393544949668785241457053213860718171070701890523309222337783004850846064694014762321335194784969104956049326275874991951458456276195774515753071372311966663146991565450796527903968849418523923502903322658427465373251537791890155508857148301935660799384140600975194155854331482648064657037811054564459524427971965898696633125982008061586480116204434213195274080108462474672270092181730354798861117362113041673523987608158323647553077752021527702559854767648574939107747009725035373017685754877777971820385355075258516642270816859466598592967038655752897954191622884894152624600056007778458598830837917413992911293088120356308477357102408059454923303616690979031389092806299360134637317423054177330523176436743751968415955526062067921917089660457928906272861166934291810924048016376369602860690518555922392901635921702315356528577536088170828492241607514877980556766608047073859162261587971393404454011914087050023906203002003688940787407160571336587816748255458373690693359193072352647665924126416082902314015657060162785840164443787293072908752577737775964069160520730611449023099213617643986920088846135126672173899066785151163987279211235999531513662981785320530805777108062560272051738703143149730988792739000314416719475464989439097726746657187824702436884141574452057063172601721965631183328136173239917075067408537372698135444342072559398483885487491708135851664573202992603291454284048220293914998006782609769280504911305857053445115355044373150972020452926471325004877935766001220704685126567847284501621877467613468338210445485004326998293919060800787134618961632677643319835677028812973589222365919997098571579867341533140049369008335888656562050738357676721454359601797478898178574106565667636651872758454250299132970897521291994537541416043323121363722456108459802682009459153751353548740428519760799532680286598239235691289022783585111457638904584189862538962799874266766792033883638951982779631433220441129694827551843691973955870874443564453067113376132195715009064594123340969637829679094171267336793395892025898212967898160550612285050786784853678027348993268567963251871568758468070186193068030685197885858187635334190300368488772912147158633615859386632740338359305890992092086782278407502895484158473049996678227552047520956897122295247050392789504110116453174758198507077133360176991427640901678042954469241795525186971513375729702398948940168095981016995815185642751589320396958114587166865264755092403660374409457794865110158305205770443117645605564343743037223783148789800961058648232297673362356537825519846603731132692566385446787032530188492198672268259833690292471649865953769034295304287400470959451148674846052208217721817537120274479924414612824142175263170854518615866708279668698135612459928357714453638538339302139294826410400812013484793623098520539330622068589524297754528655775030970062892691468905613118617880646668188056331432242650793987718119832179361782729665173097800224433198630834592480075341712066486073338025950810335819024644730964583816430937883608151551367485005690381948358208230383715447183866334790090102542706972700317827040722562369919332827471513552345999394472192723983446068310474462034313078569479926498052039903268837757777809868001186416508550862730991696352076730977622426621041133118340575334671248070690656702981744254306076234867016041561245356669159719550487879595400712799598305292067189893885991797568551511849648396253337761316509065192477411982051126093737399769552875535314594642114850040460856103399906943243048226493211092936192387604675390655337819639880559955664574436555925745304167333167390460599484600553538754677102035223434466191372268542687154225370412204254959133775953264777456273677199038967758651200908861658739528836393402483222381349891061207103166275244353364943420951020547623031856816959519417035770395378847377707976979795380293685898285602083729761314462299161352230499343611443025061904473723957129175081249475269167339793186851600839548405353839757019513491318294803408540100285081067143434471142187287416812574652065491885449045515303921201440131925727457385854562869937680254940785041443099168896580445512130205003679180034623603983194449542176708600500913162799702496132737900828363896961112987332300733145062822409553882109512389192339895630854063417441799396446578660214613006696528403491849584321881887845482053520419164252857556087941386785320640567137002061746088088692698222301944281442846880437363640074564767545981943900130207192621007949161145238889613562501982758125268838782588994138078159730127840479741244256562565568577150683782433831523866395107678657054210920385546688066196873885723310301764925437255684175475828822446866627130217095915189806904062800058387467098791083865311147691693088677171809234903889895612170912092152843190112476903925788382909780299081998583542179651484131471730085697512699929784894653223968747508873415467484213130466003379990066421843430435693455401824927869077265189422247665096575697594093643625721557873502494125601986309262932391916655880667426383255615444138057883584055419593216506711404617877201043486387828293374895588643737575807772620129857567183057947594874219971874659604505915522173499446128229419167433972889543258548850473280294018062259514722073366353434347836874513615390057627343312815398223525433761918821958745594756900988151735950031835325930489309428494481072936586792499696045215181666147654213788915614058219153638401304230914001968744855010996594746225242805465952675414666198988119313989087320556278828002250751870662112420537053984736543634901700566385934289450060538520303871404122392835602666075256132311131490660297621023747932050236782022701810387814238606891569310314797434530530398935723870988965018836027027034596464980474824496051106263593777148310720527877736519048772483615159009814278048467072711994398174861847913794723237537181369638084633050852003297880406321045681096970111341107148662933687322027607044241942755433656782551223129165054605662816645183224092618005642508697749648476088915595050439017085570560692631868974243094629279079147041440691696056483852797353593996682318877151883928292782986417092385122707700008506666017737923617718140803184678056524337904976293903495949573812805335556391628940238976873480028472005506850057914660512056465581820634377073432579748070158132769481156958860775811254998897878042268225716636669127625595545774760535919970823250692404665142367566353397428409886073596580513937020782985398200224599777668202122599517794259550646230024177581019490873877528964760493541107675384799855365567342942533364541745001055796350034682043327478840989770562887400898133398607268538571982009769669187539468109505463181020431139378675455469313691330571813258825034474637018616052556585972648243608405837945389980821557170565863029108241757039634451476065386362914658361212477066460264852919603954207237575875946606694630985486741634952566879423149424595005518891035805588989888391803416480851162938787717141475297555860904772628986341204993790587018782089619052347376350291281739277014523183533388960625009249275951454916879772773631967047872690479699086620157999746716234144157278066335236996980236970818780401870353250950160269616643506648350646301897835227720534282740526731068998917294072894989348529120436457146797670664688505139357165511935369106781778296927650132272773168201351071151583580333032365134117130673130771160637434518350613709540445037154829630929731021489344981623949052674280490099769501547936379385330803972984772003941131574601333822417387661162282528412245845628594836315098806105137203455225927076575306167311577141790073680792863306280009928507053062081311503575898979018517489912368860806874543715302555223747533893784800510577635901181716918411099252399379536077704968902803255602252213267070708182022909709984358852092287102241280942582806103930480686723237752882832791918276590037283104621427301005204778297632384997100980302055280393119671733890983856133102949599015352414772272680473103909283027026985096508710481097809274212812402765840729391469740185728939627891530270989186317711015869153115826808538820013742518104464426505010638749968141433567426684854297645966589680035546413105906904992163340626600910942309713819880019745970412489077239828055906840624994907448861850222871199205185899259736084047636434509001394836715876789632532967412830174959833614279988900154004972153568370667830773975808586057833644280390593789109468091031773730682662539941351856712926672207967103629591206536744771054583569629371647038855756031309129397337076474521932386594131889513579334396259674621147045146958090728794796254338951817307906017544355337759253153718442791688826760121849037828916100927525357591007892880752508904844004729965429259719825547243819696506014383242863948211523252367722890608970153652857522069581849796474864489432153831284206592764041366306886633583382386892646776701401947719610327560941811290974365435166221760511783962250241988140647318510226721369633135862764081995089678826304735033970009745616444933049794962665798039746367349431377924986316552221496322023300256012627897164534083015073468703913090083324077604446957642682559744841181437895344987915708968573962820406853271178935118628640399282952853733026299726115417878547573306136915501477353368939601574382361360391048144568711313846063550820501971144079653102119357837789777145762726051603470771232404392196642085793799625439631035910604937883996457154322624654963066373160018603033963408029116079137142401826039120567130181313677336389352437416216573378995889179801670887330435262999973688887404782227149452343666757511160566069874869262795781620290248962858470456804355872092327643997642354262991863379883983170467533582110419238512922203139241072458454450733690822137443884242838925165390335965377773924319109862199243292797178616777608040539477639153832299350793766486485381336039505150549499774366159139471952372189707744185090163014266564195309573339268555202353697812040142319453955235789836733332804507816451523446929732717866449039676624973322651195136684274659858987464726705192427425377720971688360076456019735933669765029333555588111121366373135294879091119601565415533859370347482747197232444939975240617868272110756445714766096227522629281492444114154704333574044261109813332498816966669278463121784997879724344504428045958015472259359480237361932581781883393507128605161589698436471125929282436678119399695865826074636695335353149971206454678956314307732893921156970793329759104231182940180745819551697714734709065323069874636936383882957647282350863729964332369738716155580052400182846336556663431664090741117216846331272153244405570033329719399179180966520697164008667651937381572935203546753031641407455881549506716218056402967464955487384572107284180565253583771559493602007941419168412100326541913856901683302896828263723127498448609910111785744985155448137137455229929813966287218711974038670771472406397132293945810792414856435967321465937775583648917590511102083034516204982554777635163523715748379794044054247782125294320124573501502044620933080727698424731287273500043100837083527141660551632465746366623535921963907327236009460170200433658140672918672127325857513633678551391413893290552606981907364673816010148767192996250618108483744904745509503115648605531985185281409829122307689511873539182814881281705473437297840318669817359892897061394220905178244102999527497180534651603547138682683537275243964518584999343862079837886646931501390161890584916482930284966840286194596181173367780547684190149980713737734458305124997679290103603399679124543114807572150722661404681799562513788572796645591890024477415461158266598060864626713315671930316947001781196261915390503706746534913249859028417598606640510556400835595309006321409734214896398037012492039484057285103032401907768480892670635620066415365679858266175970978144493363078267722469176347682414311747055300110725338757986571462187906526441501836187561392950984638897402721037233371662588239325064620599240459797998275142960372964776635110138228892037890422523265991295922404333581403351225298789067818856912821069025967328499164215550894264588576743784114411885463485000633899601861384115047253148982800160028619026479802797346222840958058592393566849922642612525895172215010580492979664066882192233271385286506705785676961356685230144761692176233585848416985982389978215673125248636754338973790197297710237725772810761845243559460037695903363691379377443411939125996274976230925015146171184048395945902693813037541284813488490448252285461785239244995747733874783745996570257813921341239440838999221484135638394413731297507550960289287266035843183092722165603753802692788404745607969659241162674566361065468042316645431171803384693340696431151848078934924340444467145441934631640283516647940611543001805910139823471164780517418300605092987536321566003570197934544276118269370339723915567697744202915796671450670567611180534753148090958732659405123484382368135473605661525633710382749544222542596520977641765832797416971519439641498151521816194421126074271942592491634493925510932032496375129366076622836510616899010851781511364267097976321131060759833263233149245501715577610464419557687889082556568286040146278638070398449288136169570149342289535296031188802478145051142839145150183724223434752370313895220743047681097293467263031094524341801219144470258671120969086830435210925933361153007454113927175616962447751074520139769595466174666741178079347584483680956248788973229862380570090874822860328660850317097744002671181137800038741674455756828575842421849863276124997502591512340880031219868251570743354671399864949444863737655682764710760525264394684776175807762909251719028422906798146842221893481516009018903781812910009513612557224896260941451949742194968251539242392409217526292087254087850135052972850873825093054009134251751142360424976391715985241753822379235097299008519798966110814859847666540767287979794281613885634017106713204146046961838697823343299745369342300689124379870540569294467942974588377203493007899152749311470981057575956549769386069967671336401840690865197786008480447090509518804968558442348582452331324788667412116038967034019770420924865432442698419720173644059064388390769538097282761898022712362797535174153558916262670580234322628375966594612762350080899480585471441327770453282121066036861946999586974729335086596708200820698364114069676052669239007539526634040808798807105501051223572590074603034967662099154416283201988610441257774654492956195356828392185308135030872271102286095761434523533866843275430405724638519956686789059433680011367622693587486098460721622249121877608866268503148327222009396935029650749072958510257170462648046628612910769244985119328600383657388112128892932362814573055252955588715101068397682182007683533664272478016455211172901969579679331331678333136899542467078617381820155197061455920855317260463219932917186534821529646804188045547330341140537393064144756737739177100729821821665374737802113928977688077282219878830265849217403507054914669926093949797998234333261031015503597354369496977096082167750230138988287734541456999644525550631026643553746441590024052059106669214109931965134927827251996363647912038190908198580667746159108211761903842835800633144284781448844411510927330742889450906398076424661389668926544887179580209869023959585366561036284793867006696352653278822994602577558531732549343397859994023750758111289655117562625511270583548941775895479507751169242583809456204290185342655606905562708261667087616061914603034296530739313653703001987375459130008843550259223995487985119614611695229812250303617195916432587109135536893033628085453271569613749922603252416617572430706799031021882243555033487310904436477261913537811313487236945399546989099722632587339444660268873889580312363466447988674529565070689498320078119327719839927447161088276656688895892973408151677240149420299162263845380871313802140315527507121412608235289464776095084375935507104335692221716731635594405629322225206529723488034815394954830423706963207326882902188986548551563246198360713248925456813806753012588145422937732530354969677972075298381590037796937080187827090774551165622267185791971044639710613432311930605862548662840954079941844821231702809870499137446549846297253056488850581372135933803474475454600560526926186390651366084846091885922987529457437105136619351304085313313193459018673197322222556034933129216415723179735632751615803105760013413686981955005998070261413547390886458842677962226400047326427087024558242796869252106945730343754949947342403963141550508886563532700945589053095656232845263240197342446212949181786351691562993743996952926004724724620274874293038899344766297381106297792516733585188632452654951345601501095191609254288389840116871633572848436590645376186349812708529462893297987754674118086730770894586809647552899016069736091284372253818200753830276703497857769938767522565554804492360003361989496003004334276740021365210494231849976475000696177971987270547045728907731589293429061637402344558348363375681454237074414845757090606503438373189056809864895076621318851079317146253184912576794775552073797733504211730909354453935938641304626368151912937619285559052026935511705888309211909907136499335451556090468159017912270876858609213271525413874632981113394036175684237703605401210212012244020682145605443143739150313591389419845512174009464161402164860809978538801770407661010890975782531950676657360048396113337467367501712536858626959464450632831515547436006995118281879870289603668585468013807877964835517250071275684989842153502116212693939067968195390903454300227851077467057310828727572832546988853254131368626004283464884859878406296380183069674148806944711429244290120123475598930258976949621078532947652427773089967438207954928318201927301964418723754327339496422002787236539246029936440154982515865612017837623575182813748072498646524715048593086838451556059093240931719618114259061566278609113343383643555841875635471138486237396102463859070774514587430390106368153534130230776398580576058712990974841434456672000367833389225373929296387397443254701207402100459435414464102623828882763181101036497128181494713562548594194254723552255480336957750439017653113659916222546110927171709892633068502769662834955313921654870418346580937721887508567598487867144986196719885545567442338721297755266148909051820702011837818587945766753537565988883047831820466475246908173865694384591294162084046646257403347280185694395989447364368671842498619487557293978175250414180279223606333228454406004341049083043181646912263208527708675278477854617232429217520021687323039884082881929170441740591420105167655546979623386251657636761347390143073557597058876052904855306270261065642739190149587519172303477066651130390926654829510047171718866063002512822289981696426889568667341796299671899446615794124006298944514868863696946772837864258004936816966117448559225636233559069287469222194370521611779987416258574324713981720862119272573008502843629983781847542698879189316523020713240485505718211600518994964809201077276465631749028822214968915128473793309302636536336557105733630153474604396817171425986428023108869088721959018289284136423583718282318054923539695827927591728721179238829806459195382517897445683692788612684393082659153288831656910154044715391649587519942973372952437910612053168292476439496611936935311683294032094492761369212226542708721313234172035230965551192888596450711338696202215236187468875888324307816365321217755538341763241775300439112851123223826257235929420524290360839158702255231648595937158606049388254342483296281806868051577510772158594813706718662441522079630841715144937813837356119166745235230556526699213819422733681341646813163886006790925778914368174246407154636337443128719497857094497258247924771147640699261273202181070327759283882706261100735918102753311290010578209200894030898955901025920922851212956695095345663809177968874440795852696327607942779898409985777665245286167316809431492472253078148622833672971721953125321481770212656715589862268642455255818097932846348309624052538894105122156470263649182138490412555505205047096187820372103782876398534381757880280999165326955558863843341462319411312748852729252899967479717329097743085150964935578449522169149721142459202105812036335837934355171862557447388840661064309287544437061344110196577136505557289925021514249260292178398409825811464612636575536607768077643772875967289753308952428186630258580985192158396078839796728630830691384089123192309857256086102643000049482355137604711585246245326767559391438046019912029436869424748352118674032519890045746306613988389141983509778845426091152744292028415692994455567380205910222040144425007434972158955990853357341657001571472418989228029530016584735381608404889796439717110094880207213658153911526320271568639557915552550119413407646953262982084701072924438635560277177669865027124768153789931302826259863584685160699853893988151838798265237119994391734253805835260798433601209060410242483777434058406400261582036933239377775852646079362850880986524019308882045351366466576202841726760040968000003083510262619610025744475422231507108723824914563431561268909448179261637238170718602940723442603418877739448145139441571179758718500922271056842333908747606384150844209972178636873460066778725469410354139091154179188046903395406824855642498292399960296220433695532802781870353153542510214851964456990614869865815275167560098064209752756835895837634558627322071356954121838076003938903612747693198572013557808503634428854296505026646583619410631583025553883135111252579910865610681984868936394253504524976193183142513531686115286742236295187664896459281156277957724240098000829485733651328277793965802287831342762097616380191314399149065929090065878384944240747193676496920392586843587261722356794936664147907102979533678899229443734944510770096368497922995483573633453922829577445084666106945242365839888198088093581396648116844647374137031166956299197845449047480139655697792819665560473823728806166373736263812226430481966486786322199671998201246270749701202619071066173592232591817490359629649692368312324597349500894597814629711053670375387307958357096507649969076774840904392562853346009328941654466081133215444827543498181843641070247808924094443268792052155583407254470533906969284156060404651157770229035837181902922446720036921284527105875922462155490858675826630796637154325451265193553037501017394746636360578731518009100199446433398878991227383143539059841990141898877746145325462375370631933211819309822585607202614478585023040708829356723327246978064508099381751601302226239670408612207513512294209374788861360857436646989717279308066563057119059811078134190426732788473785763041970213994971918177140377466952300314798168798983270270653999022885542637036971585789781075950892971030954407508857636447087218284849954978828463706270200071258638243670238806669257466249428863519471815033096662915408950109446741789359816150549138597553401596597722493190289774172716184707006295973913505334248679850663701697593647231758858193006457717980987941163929680508462998448151541366434708300555101292602105977009081207050865621273609832975328634331522327620805105839431863581564561105516682714933332252590161678975169279016483917506039513077142931793744069746996995215888894004313716313349348292695520383512094572611951201350749838595149142451581059719689225734557117598153269177192472336784629684994181951678974909837076806360636884678954452014009779134312079760855760336798904375781860001513048989011043996196029087924629076734767508330688244194131616494826810116631936630094345773154180451051481552596837962344017590033950594012745135690267349966724660132860649431128555948078760057231838726166073230397312228520730942401746301252632182218293921534722007621180228186331619610736315813096163669065467846498338074641000869452702790144546778831269930252133194968221351585449072017978282245765679847441773828221203502686576054978131016840080440905952847859358913717913138634899977461433903932055031625778874163486987174239594614418737601898031412851241561860771330615046632423096669193518621184746384409695211134874100843034634580618335063722194808476329761052772127491563205282439560422626984439919715715023134144295151977023094866344479690119191963364554078431060533780457098306771749600068777056523476444376676825572864112113519775965715635482075539271144603725200646652377995191467279859397477982392992795992987467907503198597220736628394157769188738887341976228179557080063626678216001474455790850753998757755107466543392990211209003349864862749883765686539391048883979077361887315106131079665469530899475823746694223759308604581316018348225114636729803770827246029329254292914976734069816610658613254132274851791026833117727512880708561267398069228457903212042101214524117056827337506994534348838030547785123540641160685322457134342492892174623325732172743464951584362571781732552360983684715324101353990505743810930286891117590564740760127597360634622733746708784367734647454854649526492042369440350303740468590046867650540851787792088955730932169054867431469495868613855610797011496854776674520253593030948184776012055636629816294821537701436075981179908921098675956423848630403465457156035035284042962097599777986795945581702173523221954329232641495341402618071318730959945405447024497654124435533369276420499304844310382253393251926105627268428947493543217069951098844167435690150982195967168146307884976946589205385075706570552999528880716096909880768722159856883916037545393722944687211705092220668978962883086009113884330399302123249840851431706382225748964415637022705583211049724716684394205456745450396061593692337180253784582625380061922112677246468665203376359038550282886461260139922711993205266576922268370593954662971216810683136247182272626562697251946198328938204468849159077019131460723939593371595224440416187233220662542382697772185848471150037621836822549026856713050830025774837818492788573036457255037754264897803753714722091970390767347178260291840546941965971883229090090730933509009531978235754829010988335061202890932882109875643031175863556599440701687964950086802838939364076849412565922815094460431551737924094110425524935950736128152011305279454030647563179701541389974129486375895018401141557307060832229530309371677721874426491436012631735254490076517174098479413740794040609389477086287182227176417965262790226220006784047860179914856222052262124759995817673323448994363824798857882137156892988032963466527952632739786690295139770138086625366475285543330935053805505814119700151410122802482705701477929043436000928806778228824604660344396766779750798845105085487547544710074378835968884849782209268192136227690881044336469863148243097491491057027113678245569130092905873645604945772199648160025598574623050666390508012887060284961924499295007875887771012204125219189430223269028472955403119172839099401613771020040460619301379702738587477314729151647570489286376915795259024635575496284149588825430835897837591786703652178529785430038642633281409261276552290544101841627022481486416535982928815151932540535371587872965548980716855907620535067424601522845943153135387266298164172893497971220383664772444377853308109181916681546122076963465092370977801339656438098455782693172007555424735556150617775753168817953472610344588341929891205388133961305853888843940133699605761029737418637109506408280244404209515787437834583039835878278018860435440233835326804908563927092068674579740687257268145921403015114385364208482597810585060253454109582619981206403874621554694747325929012781181354406402172266408257851237154936261929923900565927770402653658211786909090913284586972486401470352226108687886888175131584646573960670010184848279853768949067796774459812191112205590601489888396334587966829272366207843818183249729230440578344098109547078902605750558051439942541985684998024741865982731328693749670880002713506319476881567829817402870591517073488845043361565273739859963407709783999363447034601612451790178480727009531222772481359182123652936400835901638886379546546552700167912489829898830536678854842786751081489821879072435102693890299179756906722456296053885155728866659572380041504497421412923331765464035571355449223251004745365053606458246921332787666619732936227002458885853391856956874440772089898744951210676407795515671299110101628358756115691062764633980939866112710074003161584830918993830267836391820702689651518951946472381593705347917030537276352738644065807021455741594650687637433504359539617098287569311096938686297046343463987295781711597616633367752953305795782731087743421250051977484929872096105288281562284865312989740136088530332155923425143293685218017814759457573550377699918259506185790024580894286119023048727169692179325867220243633503842745857484190124140922879280225097493623487163809758573893531934097337693286312014591111252851172518738373942294302871699714355318366287649067041798175625906236664208723074544537964354555156735047458227070267543555744906071044883309058644251944397775785130558223071268272046497694491243535208693591454657521264380018917601875896598612964819724779027766376162418425154199846790407451002429214581831521166941251770498174660856842512374941274040505384134795073526796209593438504832693977013113632861716786722047839829187337781961741773502295979227685733018271841778277317344933924608902146785094529291605362247916235284401246887753816547468961492507513481856036714752062005124130079924923592554236388638525203827492463975308445993211954383893503903242291136228969316578370037598747520055346613829507903830449989565173906311101999237424273527036617494770438211007847515505157291155722954372404223336863863792793824163016072998409504913057312295084665587113161304152746385518429443128364932598417375247151095559907210829176758508513045096986115863142654714486574652988249385180999005591026907805641061724017282482096376918134812765297274926016819847975710098778875158672389919123110215361567170151345273965881418390669258426970067196939863158496433445031109416812005406479590656283703770836160823342680431989455070311616622737604748554963081352623650529511068101763793454653391582479343928403390458010119076780049931303604876414154554316676181631059736151358185629110032275498589255042743154259313884968561878139325307437975371279553058942813906402660505272217871973266897912265688685388288662381843292055229971582981953719528755028780434674257023608069579786736059632511043111512542592986395911486493574945800886379195180308107200707307614311432412561654764578866196692247885409114785208904599762083134843798858735850553014462169752574853270555606605834112504245919533248251051160313977110075979783675279865769251353813824024422944526145886585446924888651334113073942299386740696884583469877323390640386105160115677805452639020497618878636482402220603178307228559321514894079595122080357322286491827534554049741970319758655198577588403292121641285439502990046115758723518940946479726126547914025514340327643328952611726765282922421050367239786528726685506742978194371972827764800457863840671626172185422370422415852325501986460488945667437806271754895550621313855728093313231026015493686972799856757991329134188988969761372179880429430152917868280451684798567422645270350270062140617507300317958805131190438035796487401595477223588682052061657615024365854757042296759704080460220758174045178960988427285193192884802074486429604014860690063884163633244114073906293754695781889529358036908377808516622298718777596780594436309334300506623171348189589844137332709585952750277124122464053817588133215776711933966814497405403192892030174451705529746385995802769825469788563435242966316381316028183821429494243184368898477170209787116806556822630972722595236800081556710611142731001441989507044531754595349860214492637687198936316188347332443019508525141968415814559803725503069405814569844453232369073547864599681261398819077114628366799491954334126536662051023344564797955820676028758652224170408584710776083029643892992622137705098224922693881658850701451796575562137111284057571128310129205126853064013836272197912045818408769461210184274644745120965019890030000787427303443239266089328835435615122936548322409740826862971792252183953256560713097039231366647124388071426243619511724683295787986804077195747976316457532511616770612045550892741761408244657134047900770776264527538352763055408785315398735123360284192979065245214287181118205188374872322360096496918160369554916318693207282683210171620515921957159638292000691075809027328510342998932669354393620430107882259145339064070682658836590614905845638865011534192012117442003332380424567463446004637485668336657460339215181222817986798963143056637431532791979519843203124452280346782517710053230809650898943671964799840369453297625753218369354683323880840662071789163709733765052068607748849777060233392544577494829126955100708311396936167015329691953794005454164082789451309411438502357741184089885771411193810989014136547703118543455335133775331930332892008331536810037638137220284705901090735884739777630414065221086394396076695211191507944535114814942870182598966462540266865149900897552702535306036886098530125029853410549569148495181513066366453900608994405442690048673479596455495689577727239697794574699683588739902553063731175601135752509756741131706699282620412101624378430583355214098961373329361493456562331443958922737638857812807313840666044919175072731550726285769983103906967522951319383049402201347865973944811372025239369727751581324871121107234358651134852454691944223277358726778128247931364552612379664243183183223285713587933378570222928337057853230175408010372550205755524038496552890493179179549403624420295016055714828750066555269799053361286545431492207455200787671906090859287272749207657457014410426848975467398560591502609313683822652799592387913386535460749514180067067138503826485110609023530725017718942647937537732052556569925661250519657872773702321927419501755607708283251640094800042783558850605046931734505760537772429738370853662460051085842339859847628860511943325058639930110385115494660110712488385062715459054165530967662082297933678334663566568940315295719675684211448834876289150595243845765387433825524185409770837965509218734550296253661413621088596231936152156041557477372731847182247372585410125797673328575896947060889761632466132163386436650581625816806797362442669931920376881702380436222190822901290015031211972815637670281142138015209779687558765568462533975953705336455922908473994579253810977634070900022280806170409086141721965024362689025733186031353692361844221368605473845100382583961913372749543343207520535389761208931731617492385171186771296848175757005819602582492589931991737798759908582829871971645482365185991342701678345543458297935065953465538689308159551638880463524664084506010706982124765240694025550149258419793491543603467628775966764198368200513343153564422858937428619334255084606953140970240020973921609442138889824248467518221674436379664357851229851556104053088160712133525747078297448791350402803613379173213788086859761711548499316917900467725753386270873539671556027329203510954014184731177077723453084230436327853187289409479283828555000085563038049020236246930998405931388878089678047251044868728993754459811822955327455221911003246606029124873974978038839188187538133735598911917621495160019818111261874947394669626546496907349780028040014699834288328222339614891525515233814830603814190020892529974313741510215604758563436746509648337882654376611974870029740517647954563616179774007599220326799513414923045096843344816048069755037186262643191851607517639396759781978169008773523137572166904139773129823203305886065863130880882682039964096209119514260125431320099739374603071880919487542586946616791541716186209076976034104933496357418736589951672495694642952899577556001244059754593822717743551970176797591552797446276512413057018080347231817950900910855317153035186157343601112914475119675709877111513607394702229100959880372108959407653419409085658640944032066768089837159149047650352477087751151806273811333119233923921011240329028354075274186967395721547055883047774139446747787001953951617259807464326956574384042110834732793062988658380745939962104730114199962359706698199238101863075789270960537276236037237066522761853965750606977944514445130217450830323659265028237226287757719653187479695848411539417335727154590380903795676880149422382652082791654961485994414540051323805116941026969095623243950072480997327358583125797272635241715699753487874327804255724535817189168700850364373814285341234219207811427547456294988091397008658713741461657528945387303943713069057749343851615934508949344832291660506754582028275993492098896145075245201135428085784983413541429056752017377584178107076142350923346283401089694417873371115087341508754051786887287049958248604473582626620617081374564559584115904121295047971476748446244598484866165981887762202734570544849406350122225902500808307852219135004996765433222030000444943261441424224606129787945208569060109433852691548113898188563171882919412547733621850813423093719195326546974646423639533159532776784814070013630405702737538109670188884425002622544740005259204523544556815524785372714324037204610952461238811116415990573607835748407461686666470163730290641574406379860026042552160472884800855410179738377966418160569835408489864183311153445509524870780360246429118300879340770032128851901522475583625990418528051545954057514175407564839700764034498692371161954548346844716446745181084686107605912115884242152520368359686488484150295545184211914386143107819386072504626074540535395471545905487506900784193573369231484841561352813165480762612131141975546859358438416139145429945179476603439917582038239610253178984829167945967221979727722246409943995888049836227940751435483809974425179683250727083259836455666397436269381093623855499732140755898929146296589168154340080687362557872081090617937421439857836178033543923987744246231032277219285689290211271754239668668555961432871552916071576396674232864348366803176088378399664269880222232349510824926613340321250761932297110672482534810971444920922688017473627735976224727281686061393128170229593133592385177580820070940333831731286885210249911951597215471550579353763409832606850648599324356156524208092848323231106398758951080785541308297795565013141138609470796823500208928221904389086020655466049258841814989711102783247011853257157809771453263268914201296763490285868975951092377024102410310579587018012009839445230352214931844608700380360690915508281770506860684351242463759007967567834786034238951856486223566147241033685844096245096105399832655699934419917329406438555951111163195016372172196727425639010358595720691268612893226983370006302682542868282964052327542438839908907057909939002809953427670106854936373771731308507919851399791967823386858226596688878233529218243640117059303263211348426617737742140786450943109951451003772388632828902182020171394745056984305490438186314368746305529028591536104790222243530354006121714443350672615824877018416583897996691906403177204162121589282313171162429217157378461039479909469552252435261665975862782851716452011807191287619402778280376883943816476147879248943546467967987639467206603310805743506288548338025993925900325360643858712635509381974449366578915746995721225908932758732177386943247451564680828471398585160948431678393703742191052238976379340944756744000193758872095501554814814249210816255998335485829854228786751379904356812191305382965603819959145084089893550957162149654263442950328041868738015764475065628354029099529331631191525532913371800104232356419899563501531998996491821935198419768203656566468691819501417089153746790173059844276559615911253600186959767012173620023068334198832483489430793144017715941536522979759283554358162846004106835472771171923093959084875152742702335181121332735208151796093381959836558558098979379343766379547278588289706384740064935392857604663419534290712896048942272381176433819692927546138334732487924954543021324994019129694313087801471341306929557642233916393986930261714671831232764032532789112688156657992042197434512490685194087655297921441029868504978507910346789495082808814907082679846117847131622678520228539517579553459257213201672989427244294791300583363733822863216267427646044242677136523653499880103579351943123166785982618160896339880936192999819920954851082886275601135491344105823917307696848873882173379059436776476898990092699364329949605362456000082153519191372647194744117928869185702706258049932643859767598109096858313225049072781163383111700192062710050500223440756403506733534457688868327617589738218300073225019058316821443653396754509655149035986024966017728374065563017244230650011002065568650967056870200150874026236143761429556747268070236801751780054561085936332836094906635642590376782487563605495148635966245469445519050995765877394061607970032076426876835516157216734445203915587113195393061961521741809482806327123162338485703123224039208496822134173106180527835386864810548474748791038179656058249389257528241435696209324125094465482266897727141625931724604437552406232153065949993896363509418397337936841140428069781453910690208052467401113922976023601137777208200784639743615303366046935186949762104427843557201507221786030643981850613297356034462185317917587290339895073766338318756431111707205898493892871874660231467675341002798670650683554971700257342222912228165223807351263283596094287173972933435911210835530964339789065548878253695956577046206800016023860188978029452823616262105414011155695954083307835648668948221280804831469110329369607092512750693599789908470084089705062195630606967202682301434295265197518943092818777528389560619651119508948186546170887015661916198407735105689118355690354820578466946029711985070175627721845760098199811444917726962877911333258274004224754857486380670435373465768880570905049588845267230706597256879856929035511898955586905129614893715717993254091117866210076804970944249815922017841116481043497606054187713843523645675782452188884941839611512056650395740820148434326925985884820836204787506806849637565471867928457589243226491402003604102795658190229828565103575990034346558631330450045961658057779281465741293005842407195464189084192778636102017696226694695638406159216177760970257005284133710712342315929123231943009998544954930681644410127222476082809512433638537240283695185310923000137155101491176045870425631322507086231102132864856564196029383402490025335100475242014693441119238332206103052815151886392780433852261955885687485190038125433453276111526270216951954341817577697280470457461022706544825324678615533405671796989701443410979833792109165813213963443855626927942825657330695069298472213049173515585598674525979333565467777363647133498112908636302446981384858627386822759394127436763891605967773422724390521124048766037623496041384114857980117134305391296952779008223484805654479018385810023741116565439652880618799485445215540589496587180208046502732415866832845595113151726779432609748488002234763925766880194983942621747478683293184229336437022549764472852416258268075989971473842273853079601406312009672969913726074480670880511728953678237079073082955282579305981174784597110993221221950149591459357224910856227917921458592553153058839131193941354746323567310319386364558410534114584231344361996982021915081878807285043256870039843536395202403068540282754590153575307652531552877347091139715689694061767586232040616346685407445166859865621147722645214651265968792280381407101985135125169861434283508870801014729431810966716429653873828723812466262955925229227076040762550366184986730550731155222353771068874780818621781225809433948864087813689287515547065831982900636569287152468576056245803419635931443392561425272325004457184672201073776350066572176744812427695386025606289730844450104874590215387734333650145853456993472996894599364417592865985319153357748748046993238270355105655873588952491887230733158966980372548041919424465477086180978258368925423936551002321291262969517418925095442401879916165896557514559933636747661719038203321071293704423471583266965641820022676047456990600744839061638083765143630188146291725729686388819630815497114329548856904275877357603731099714176371613714827622381546786098689176504292813541641881127120887272642710824987469325041169881432175978238180156897808213675060150896226933086896809401998415364617986417474793036865726694226078900741531508182341762695971544407237427371898478745516251351428987707094182174546462302929298324258005337083160769002650746068065002876616842648959558318380870183750766777183653369094206341831736364553586251701210912337944852259031383988285312802513490031617506561937985742890890087650489152445318427666893967078621168702293751518256635673348422768101912285293959701835770875649730823218539355182785980146904027031380327987051448659115125492041756902816735329426596097167949197817456760488044498665953380819775915780878890155205433182959481068136185787702924916071487306119104141885307570046616216010784955841368483348736257977580386890978671178692863448426335044281265060675297801704601578201474800742843190600200885610195948444724061541010236219104663675484534676660509356548522658595238899242628690225785857611357325725145819546729647834396213828562070959741694062058873724195588833390980142926669999881734043595799682903115331280490871746227157640154834097395246325463218396607819447571204440552657917937793513290795645695871084700665131846833012773312003434502845616829308726998386198198641516509057238752739846475458885375950936454002258513352484318061649736660489974004034194863889242344598159820391239997577656665518121715682809837987529280718184705518605079227102023038604250583608016870233616270169620694318413488315920009033053672702152760681955394854464274233638214157204759728422953290221937182600694678384182723917487094218908283363023121660438034843064517675039440377330920990278229297882635535542950847259332717862815425051790601395117319402280506221250410648049277190431471937656319101049518996427002324917192500587757299870674752948210574649917966948229930831836054251108297711701928021437781007253819713810038883758506301463746853375167392324731266338376355014303594395096119702299024259307915971558231281409789063325450122463537641475323484394380266684901557023226349645697977044417406126723105832089862579995085324610874415106017278108794747411051950974604585500528956284646234191444289283377429318554103114427655711731152588439316463589925114206669062090437667287237518353906556868392270744405220764227239067707658907633282088313298529271617873939234676479295538890593974646388431347262455803217849218679699438503358402430287023961568693433992366553895730205030662475690409210986588401282182371075318846610567171738953698278543868954487740591816391078386586963432451641361838753240972196186992105165573610724255994497696795373343002627499214361724550742707163816026142446344446916459812996713368681244617642073110025657585469041409760788841283229311421225868437460296529187141386929658948932480932429908942962701554497361803995336125386640163298632213777146951345065316040076449684749546238973944375008700452821449174222331548121955007026897610558538490224106547701101016600727882404100503679645080979664272066654648629705684190079434552958311991345757036781301305405194745946258358336825880145683275859227498301182297551792309491662871744283478180353481261380938530244681613692917554416818422925173356870818388081409588773192070861546011537690796852998121689053754169633259941435447215896018419610589280487176474574688174712589319018578338687194588702778780132215006354632213783796379157078955233413114369033878539513968763982977589390015038251575080733744689854604845280602926385269627244011525057092060569716044603262885587436236169649864291471808955262741833642278674500683348084292243196950533128034832182252052060474865211055350395464375191992794406736230019264707538133055528640262900073946605870354732965287685815096343993738643813723837368533729286694841625180862219544095154629074546953814395837721683176594534786655840148884970635297296346964958008872289759250658369559179312857559609131335830122245737752219444867079871708610926890280814880333860546170664525022374608178840707915311549271691587204207581942451510723657600097974828791100651342318375142193357102718684791620819043660447112076874140336205010177194574728022870605375012224411559665506469404313069265615755859309502955392865173720576329122403266070429994903072390618519352764449880410875648412325920658485496180562832362929934790222301130661463809794492187869119875087585590121360690735352611370075706306177768298483623516680831772260424365580147953911323985051069011764717926429343589516276901844565649831720328088925320079483004586173071407624424861935727315725851119975677606845176103330029793455521505273003546253649805233482888869369405367696184841748345962791693729955215446811720169413655235158697567978071169951605522784088463713402301908550086730825393263963590042961619496225818511720844791960009600979910402463473922169167700980317820229874284514501569827883029569751977635990508475693711692564584283395841302298834636798371705549595547748267917009290475238557909235298783303748044532064128727482063075218608812572706541571298401833111617647427275565307562015847530258582220546048801591690916823780967356297829913231879294473202383254692325328536910269078327198246618766676844783530074109818375634185323443246667350842719611678251684877901089922230140130026281973614656551172229170707018269177774695786489111629970212674678483095212420076396193018006448403228088643236394939464243701736077089993691960496128277262313575268458405628222218263908438542974157672149805209004703722972051665628390880897289835280745182623699624274955420995134184404253221846975855809889105771507737659628417439206658416395508691539270481098150973870771923929563141953406699962953874125944773039679116468259331823924150096297110165919859682736294734437395667310034306840574798755915611101590076472228111159838674101591103252386000796492552990317378757251108749972979587940246400644788076583296313489688637440273180769196835487431333338129271159048128758025280879279405222012644655306108855796875732269166861526559866653112642844331106693814506196043211810567283626830941458135791766963715072837540310275520096322037060565753092767411760793207153586022901988339758185132223741460722746072894633372692935765983769278185333160244073637783825697457402504409436717491285377330900896695180091143158723659243900212764788212715003781064307227338205079251549203667492356968509926443146541429522881952325638986916233475224676451468864743635833521577065420834122822657920922055475109516052354639319999406112853516623210304360038311964843016134672477749015631424938638966453894214354913272372155500207709851700618206044690575567867483242285857215859488574945083351842515027434412592755414324077800505589872990765160338144200818804914163439052862454127216827089084221220131457694711348597561485952084691288885524941050826260390252026280803776053583580407126645690531996396024306310610393224172121894141932914438744866576663694882767203379111357123652623441762099099546813569440242902430430241034555466333160808888277098436055179928446285667850628633499008145474427399745410686494211313287326375977314531990399576957173893445683955934208079354335846334505685638202152808321482505715329064936541825824400054878020707977624714354497755902030088977454346586779011699210064247918639107130864419404648193791804821211163070702193702633861622134946156298901490567478865113301775302767107688210793364671626833426019911636129992246686087129318172081607644116794320158988622068100753144298762313909829882475314466508232093797619581062074496424274265076574079625552945134438602751577104608676942962413584873134795229384848880981233374247875259722034318688451456975968410873907083860553377438831174031473500476122121582508552330206122200036491620431225136598328417720934429727942354481767008940397355778860344752571996930535032709825449836430800654628564584690730963599208777979189081038790602906077973163335143238521920128111599593843046939619047063349204848955193549045085817994272405720235137954169686743806166633658036794216675970735652354944422068545724150490670130211134883429803040878832128866481764413472825222215833739209349859640190118361524576886451230045538401992740480832053734149116768811933311804296097828583382257266040356607190183244570574038196600585395744286471077673409294331414427555304025421919461372685258341425210976749298706274811919557068024076277539896900385384999915029347237519682265872926121319175145745624179610481668443770973484616911433593140799274425913296666524358045083423571575276255908808769600819893265618275507936552585210056089292627676815495431435390603438696813368822900196418287969025371003025767662160083582780132733853736876494658688481398056008910582136100338408717922787002460541352750513113696364797915364428983445411398665967529971994156298569075261401035206615100069762081661153556031765332332996259079970637832426835012848519897752257354102040591819576120156810799956043682464504376576362335366208481508469644466535686527641635798369466055589621051734954860046312370770159815122890662012384869061167551577689634385254989660965711045601395998451285193683689498673805240583695088820826654986099745257529110833895003780666379697532197262777405677903451337017004398121460652432919252146436881190751760082476854359985924003173879199589277800573770768724670755609472123979599787129445144030586984389089266614060329506702423390779757042881206938827459388609055259663827109363657019840693533635228931352716928836238103723407061467030764901546668319012566604663756172963679263074344876173009866578311068370508328447831639697733772931622691314371822157776346688294705194444115090902371687226896792801673995149369590722995832045774477048535207328553111692288425539773760569887379630831333109111958648867499216391423678467193516195672503011216732052652225142906332499579156207600781720266840179771379016923815887466727826751988636570058549736257684717418765014337915958211828085673092827742023973535135200450754306432902382828695600194570285440528602699343502011834389981739603454521219567311821784705976069630140327550753437666884219995375664750375688430099931354281809539166547817987420750422898023941597556594114938422407030314299205339683542400679811774468843050344161668449589754118222852738303949098420406394510716793469316666308057979145576323670834821341139890939039637175636698539954412227158141350305074059237010823278624310157437857782105021004619918079947665243855747229206859016668276566043892767544846282129179374869990569830211302297416805484350844392883695216711000276844284663758487511911817059164647112675941938895686740403082657594358836934188699950720553280802882982042422208218823716639220708479812395936679929312138527711610072978822560499877257868662794788817667233484949497677560920780841158979383472870995150733229396953095996629790213041148225654943068094040065420048576153202104790740568526142426812762447142810506224056595177921561743368255471950312577269212999336128687955124692840590219482280769105893006961984700168211143482216091806028681314820245334405034561526901142119590019915813131379686288831951433616247806154217539605580906777407441545092042139759306323447733714574327827873739738767698952412564927870774921054727947644582608116164134880580959252019179663220478152247518692528839470850633132130423642727141108041065625888724183152442146748257259546049601575216755955803927668129534656374601669632283223895958688314105649851664672736498641747710036345892665727464720927519233528388258720355564860890623731224487544029593905402785611087302310460568561842243180490945323948100902095831248880307528489669383042689224006158821555982599888825057311516347637536862359249321744482805771133242271444646065983777748521179010914948432803017713627634069000289302473879487610010806245614226601891111261690159602343173920951878745421444298884955483189798231448893049064475396947211569319906920471413249521649321120375953061044413726412785271711481517802580597328832457552276725562331643456543895859242650907817632452967811639079764283816299042649455251861951771724969037122095431593018741149820301398785011894276323982217443928629845128445034044242864253031024269610016159318945958811360900906811321997528998896215612239316209478234936652892772154585743149356851620116989452673001305285389075773044273483142007884831957743929205428795194860281105305350483860328335640507735526871187750640747229706735084668519528893530274188552177148013269448181254243984003771949666510150677232925170659771209949080254689052216673859285155129419151811967166712619188986682455125303734033486079545446966094469923973156229732971673234118530396840691771697815971386244292321224160255902882010781931683609567386094222068262670424343098785827777889410576998952762193951023239770658880830982252428652646184567822831710536120067399265786225760558227380678459137509140643999160730924180271388962338872584321533107624631255078437832332684391921045837182597937913857863390516999460817283427526035542178831955878241390719516568240934270301841990571811022222200048588499085846367570133301777701273089983394652156324996583916381118477429616554179823492013727755573962566590476774476975616748206704532983978393251193478183843820598866324681428044462054140216761928057989290156527902505290879551598510117203814529403381659963533467883593867636494854258564968760810100343522531982807321390278036967080557662771464802389615170689953752701524114181544174217855392012520233226948025393381268413315242431865755356165200296592820754053575545777522469196420712249743370120883840905485627609296420105778468311184952361541718005730192881157090231036625821651464458029423117299059899619670514321411818050881257738963244998200581474510787948042775232948858125137636711357078074823684640189641713375637275541100803003284967782014398110432365896982765664289803825457360737776692775143562925734245480547279951917446747972457055500675122632717244806530018952069921944215281427877091937729512078152512519342497555115316979102001096106347200565995301009839684578758034454389992689057359040112424082765398164605612206052917985416505683569091711342780553156986653963445433914874909316381093584595992438710933855095165004266635082058369203993572849310708824403210359787046509501594101292681811624428024572354995486367502555129439724237208513636784839601901841610923113503903047824865478680522806158649360633307616032054304086111189992202318165588134151877181566463032613663688759632349654928501665204852738167978741268184299235181615883010720491277142683061124245664501377603365664651928556533186345582083088194390626309589144220884649965993452471917599404096950508721261044056174498398490130015867330292467334416401551168816762196740716253784088076258642507038491894185099633430570395359091416542991010717759873673296754964164792364562866537377496562406351310054917451254397797223333568019686596633301849842352978588949476639473294624033091769407546882920838564925602050938659930390033908772400290632328687680138304862945144150092654592435392997498750972565976659618314019888608272404854938523635167144251124127244688599178015078257381388370695545555730976209188012002575666086604756417876358617640808908642199266659237033457153876477981332305032089423197693161248755569875676026249593077307022570015699227396603013311289837212186605243698160310654401855816851648687049639085088194396105168304494571158179878805212305475207175075162898855917598476139859783254599021667153185400632197174593183745693982722310194373654047292246163601630986689459641274734121509199342468983675132244342450396879620532349148473293273882803352713912447868652525392836262720313560508373705241448028787323014200161303643866244807641135855359629696801152306928046725994826143864740939006515383296591753015985165310674351972679316587133666400946350010246624683093469925673255587632045840872227425217078427555331853527520340539935396583629039231312840570844501777400617800605176804122436836643449466048154154865393022255994867310798881248835681490061308925471597237200290074143611453997197469923394236416731197733652419001076713337729063163488099051516453159827695762829624779324916021274068736393656669104277471937617005206963038266236790253913069836069109629789993990871660016948435312197362509114407448957960784928424123686091990932412467267936384956893218539646856513746353153583248899827576994204951312815230150070209912444891046906605461944732532113808389738015936811504237107211455845539215466899895602993797445252623613157227665003702343005084810023540130963157075364547315820103829981424264835595627628346323056718190150360481607699717588543764373741127108499166309726937093164339159346437332673805825182617932837385514214437945044530492363658122068405223892860429525687300371125169647571923420963929489406887027088673532781471216855009260684916264326362243166567257510224663819179232577539257735668730000885380272151747115416360744119693726981871442163188099998432996260691979956497876855585565052235256773076150582854839615711631238399249866539062626905762167322186550368802223862241274226886432814860022564413343903581013142572197580811459685380062104235795088330368421271028945570167342996829210012387161857829364073739972652856333247152408826785670651049834266477138668744902594788721141716477544628412389737732417279699801160848312161021677816848830492985640792814677361527083026251736795198632429117864568218686329142364513350951726300860316553230858736705252039376460460665709282656199696518618296580849365991361152479685930967193175183901757330966167139738401107190882801403506644069091420521958956528639580578731018203576451379180639038337861260602580793601105609168618754480721248968911230471728687058778744303801012815903928447618420208354488216380778004027276855684060194447797272840232187380246075350286883747921695200514677815854204214614045849865808115054095806712178575112889487896457030861975029872101704353022514080501942196488561695739680651631776980100369064976489169146985274372320818081725933623974976772560322440234009684382913879952010566798167214946285180846592661521148333773521930069468570856905118223254993023617681306327321381384901171080907280569919432972559088275905694181023330905388531594839117050717207910116550513570242345074692631475766900184516187793529694427181797181253454630980623800585439011858406578695866449531673471918976604621438430038162440400836583867753337452561962637822180842028146694884149397466926853647941263847497418178439019269524585929174546064123345746155012365203730226437641675688177305066798626827294471209262317511086196738822711228573226190249199023330106070325960990760518368399595627453345169325654448797330715260866271146294294696412876430801407498297965344102967126451058534002962029168696850595673982182267401473595169729130592167173588837019820673351394246063761446128634470899955504927661617975463540405779939883197214351898139859693128186291752268460947641551548711061430134796117545442228002364396543760958241203145406170039317874650401378497579217108408933848537878908164377849106802722621514675914995074365893835623743340145877757065042025878672364799736455667465521025942149099435930887792762219148815625106921736616151610451992240051158641855266247693250716510343656304408925705066951060671045910321043943703714903850133920139905351243349035678806927911123006870604963525383478830905808553401160873737529517550747019760984614796473327634420209568906851164917948576898323159967370126775798799094616425890065138264017879115151103907083001051675893763587170566242058757765175319129853154113054760856296064878498837057007023397425181250889305123856894492804682640422313198776333706258618362145847906673022511478671335305650957510006774981526780703814384757141423014267700603615821826012627844031997833221015505487019386244573150409635222710448083005168885371562928273378861904245705126186770254635729361859815544626936796176986018896733782369819647281815261502755795853174268223960978851940556011423702365569552481657391705128221832188916013917946510011569787778895510039352979389004830452007833411732364519948545946652608723785283476524769782164260309521510306070378455476805070754050572551742375403041379734645206639015266219811200731899786904608775249092269428344178631081967137369352238674352583921464697904657424229110282615085711084035526648971283562422363425896401511831520451784705551331441545567476173251725138824818343108079260186489348565406823779730858036028690193176612824550187393629326905887184705725205037000303823147903209678214554682865013964043440303926004011212517449901908367035169063054140783098052677594649413751994022437229580309444516388092083640019900349512871929825380106448235081329361924816829145844749459187634921068689139343562557995814028823168158222892760967106937459129350694723321017719073318263643072924277911427152493639713686349023497974783323037575630805774052710927863657960547424109940487464784373774123919042519784691337938849781896891075303831749571722030112138316537576430697029102252638783701672003805080961570712579936500275566906825900122868433380801253253801628701272572072711970009167378894849638478145296359214841663397988995607804394113692723352076954107294144659449652130251535874902948900643908645163966932273030544782471679478557476126049873392178735876558904628288492387718608360103450553940588153767872494948715839624970718214514796170476330561760189163372403465711249144993850926448979002276541711669710290688724380309259522442930222019936244694541362118961578983208524654333820353525297337283772515518080571735277588108669467566138886583277729225110886343645778165856280782815350383815894752110636190046199249737722768810218721634879618331963680059170543727727261968473034818849904623148735216826743010094391102249815161808092958464241130864821527950737563090544600478135690737916709745780033818821926882612001955152923307027445931608100920015904112577017925907495033539546772619384313376315034877546433961018730669934334437459065111358868309301384752179806124732922044671697571068491937967230035717162716624963113378598520062000756719742233093082409767884892393535653329683888510526708026916215312781881457951050142447806789719743481941214501986498717950246489322359822762767138833822158351417898550832867284777119070068693771542724284272357732021902695847297620260174139727192222475555184175788523877008516968011910982707049958959772602350543316413471379975643660686902171667082426603696947167509765348188519312309777280192257060533124386878243274126890581528073526253184123056400078154454534640390642304484350478808018535839381772923156651391458060760377873196037196672015798444344055516122018378918354202193972357188525577971345187865099716726602775004562030333731646246506816898769550916145985929534243754321746662319162421469604965384436990884481150113239554388812027144351558563328199266536392452326597570867826597930318928313468903964495938830622475060708268713299334418131729517074145740677469400920940631737272337538044132305779389331436545188173904798970605022468546578086760628993688782161540931975536189979666350422446455209073948616576809467093786054865077982174189106706202633706953367599324440772637486240666048249749799857968687741286098416707971033756265756527078669904001112440540725558571978765888385285368853347158118828201837460791911742172369794198052617574421311954539472935476700506584368921938748662827065052024656808569255552843875167525775962131420904102179915985341114784379390700908985668502345446968913630901010529535059805156741120738083010744262148483996713537099101170267033060961778908907216373665776204343962866818642776246767026098182627360849848664127592610083182440651899088929648988295904876272325343071420271394079000922772702542411500280282703790318225602476087822216099311636679066701035014428230867050578160835125699672800117878518788588353709014773790887157783200826912589216237305459173167854097366816798393511246796970185423380173280014886719434461385121891251415136504071165348631600173321199488110087395573436192922339298261310564861089638453587874659662520414023653528043634667071527546435427451882090487496779500109865319917150399790717607893645137354802857467755291385788371445365649468382699867369851697388858063134670950593838788987912316423099527719715282755110065420254016244943164068136748088312473899553583407430246379563406875287887188623878395952042778509795925700525409616788713670253793726437213692960740091876173463004341582685574800532397035136382005539061066887443472972149625190750259920269209209947331280434326629347282875087558094327691797253227538163411097937027573760170295635839200183323263498254530068443021241172273536424370863978824621924369350537655669749308108161204677620106910771053386450752226131784963054815413032677859135041620331291817044826457102959494312604136504795450856332579026936989185543374259526659325485785051192484720584793082063833259922004144340007415468901892861492711243537343482546875816048863601290149940726402589739674286783017892350481073886017842154857663460777676252106464162445472396216435123408836599939235138238545365253795448906462535855170587167538296800532437097701986559107882659443338926151327249714714336456495045743417180625965408816786663951449136495194774363804766970955203563096621842730854984197454913069894002748343290002821373487404086323247244120498421473319182981536725507910512011874135118348905490862763860531497116032349922486340368552712628415369741038548427698706365237014938214243376372492419511221189443126723201645545028638672417850796416033128749656824824156965585715354664619561864097234769230352639773024306995897404188656990439742526979474069652625927234478466924529473652227787242866696504571851256833878056263031086069252163197112049565969661830681067012162325794803225302334193309814496265007209241057495835813056392549574157034875253068088774045716033354834606141513663202694548620010912361654544215704957597136965931029115436572609216225260954632867847983725479293542877223253709411145388646110552527341504211011362024955324162800047687336300949995855080561075318733187304263361177016910142463046047516010957027234985391384787266182900408041996794300205331754115942519780462017941022953177407075589257802422468706996009508999872635410807244460060330304983953755922845190075347465575388596969520013505550801907252619930027548556726124067930197916935454911705687664790749909062985862516976995155862568092605968062897837109245829400120508649704208224820341113744871270446849012128565273090898345454883383680722055512937396627418424159250121590118326188445422783143619699404465175247144274047641124470445539683992332120501014480580657610768203789777572814844395877056413032054468436367622069216624035762239987662155913264965482877898830454943508495156898865425972416657637447606061867546317193781305807065596279913372702536107284525725644593399003677576311176140330999410692072403817180117267052585543897246961742848984454935972587394227857683801490014554788237743377127036006710668737211758007517307281999699317461116058020588231534630876637048109002949463771937970952198122475070697464948438609880210725423323828144708546083586411748932203238055158448061783228033732259100307258844397567216002345162835002317236647096515503367835483700770758415598970267919672420444754650352647563570332456094009178473075027223386194501653085135032150188897395010925338671117577866213814113783468109232150004766927407749680647375040002539640493464379964856904836105715078457980886725364100183896852519616601118833990504975546666964577713564639517347990378602921692682238669213859144549076284967484278803211437665929924027987037036181691187832768760874093816335761085683303609276267192212449028829704359640640215669222320072795328911081696186855670588393564551718729064418379328781256623463366661164431473430884091635467917388336528787458181814737005009084569426621985916172252492706927188320721812873413887973848438281973235741536546642317726802324672632069282574876957406374264435917602786846886175709626768944379257594838784569832187532370149633606046995666027321501459313749490616433821667247520019213311644763438001176621082034419861979209814502119256823643759368363640816260000409616590466407312806753437860552016886022147772902184813798514344941708595247533054754949260290869126196034181809159761960242706002808406571401349778748882635467593853671582301178864655574393295550680074016925069641923782045251133042736659885418027734361014275878156666852572783842154832381942145028392815267174073501260502183468273614390412210336437964505788565251710001169075641288908978077888240984157966284972987007260315227672364187706337577900006064193819779535430628244153551432587398446819325334285785204727630651712066830141122439266374425693616714511837158105390553309818614428233768920121444562932148063119811903100582311298935410865866134703135957448368150258885600459755661517069763210994036484170312246183202134133402094807974571223967568763831359051791709452655112587424222524383917744207016700784322057240438093906398228496366997323864124646052016410758600052869993490313150543241265740170758560485488819743049952631673175943221668639975845405639747498569394096065841298892820419472982251108557495302943154591673702706969742316083768714266395471093247984986471869935482267647014683574496776746719151078499558900772571457847495037726021857145938015493345071083440797992835889493573728019845392577157468110237196459681808218903793031010340704774374480514112083178755782952855387385947827554833496409272446546127379501642668664881048414411007744421453126729782992788610987735932694937924185223305128953856369737644974728890016035895875407505168269162218409455999689412605421050857285504878454414841969727179523636420858042233499494420721995019074328106481842048909666533766099528583591448201045502372143079597232711981181214726067080515162123427729753591388028463431198099978700579946973832131382433734332932970661372580855036900926869228098459541637256355209838293825236820109919454855392109529230093103141995034839201767443878642228826893305799984899890610615899968667226385907686327524207252896774100652969235090994630878101784422047601950572213677927925749745513729968552996173495752179083722305090579959799128165374929556552786345202906854139631607348421692200718619697958027577076207568807763700005696239299093932959135493999476791411980211309341248475132941921964807118464121544581536204699451448412972871076334741703283693978591393702061355665229459807944211278234613419315859754635893713819101462374559216923682604058079909523363779393976501499597904386296766727715486895028878194406889604400295737111496685229045023833069167364625394251183703137565155746137509795935086491386266701737571469661401667386387230029685525320667136495044678462347829951066842307863722891716531681593160463648670498891965311946672679750065164829055793810183894415239099990130556525120902248385951806688395639529965215481369399922650709027990485957847052930103721707795543326146786201037963298468998706419259668396049805250463110988791535333043011154198030983744655845970932258237318357632935293771655235077458080508162691640321649544918023682244330561560567629534228329396951255734223919063273007636181066962248355933296033382654784069336152241002255603268853499437422603196182269443506368472400448120850552190499934703866972224546963193020790107710482936080955866130304553354563502995342332227905326600949964482554707432847498925668880645348602061289038689021633825047211087349570995891532921705223578950838335779481286239350594012791437909220448319027783932199646231446369810734177508245860741917171782638679607234409483572703099348275421089830938447966799767598215597433025552283482141890257626714601430353927029674578663547041633985024358683869424949207816902984893966912078272944225286109494345749347970712013038645913284773622166021823784895776892635639389060482007709775441335823133698488761206497385249840903686422097800992729837993170126500978873858845433461283533111794525200189214771984484568237707417725943458278278000146142502122196736989552012739328157182102798385219001844718182704934510656575052623368640704787749732464567947721577991774071401176149107602453528196901110165580955894403396612222505700391884178403084805933319343540128226873071140943452289183044382753945005993751326090292962771310538164760648153148473607531843819540642633282621152934600263224132937168255412517058606602760017098004317321402655610444165048447140827986341090047722021614536878086699813410077607339077337724302215248755966571152284435167982519849811213690447570410194762909943181754590520539910503461912974126754844450098932773651844978317865543916144475943807402041586293150276631855755580617979357385136532870066548443402617466503660646539572869090318042859945190687677971609652634306566275204652489696581958216739432309950464127971082533063016578417752946246065396569464882562734122448675367998629773179475161048623284636893984987445094102377805593895436253242728790029640704346859892555413887906466023503237315910625551818189744068114067062904614846403681120338845673605658649667160576404311943611353918755890774404054906348912242584573476148864987754586252485337007333528826305419452992981521784771720525803894230798680292839835212288645445845917603231178285137477942556968449832315213505693777072138177548284669843639585599173784187752082599418073205768381735507320572924337100195953983285569463337600454669615265134094489978580188794667841455249641353215629990929272180173477289667424558330906735963343400296783989925067814346668613624853910364953709049837324178563305997266075115370584921475001286624391339683480657656568485221518261193841155258558019322816715931470540289438364842724796533189097411514880377050403336544660530473960486825615220624128633457788345529620235785155354440895791696978583623404751660123280068256019281221896201745911623197963733736384760883642502848745374952514163536412962867726425355677306620395154440343641187353460748411568369488499886681181248583103784159586357311642337722135546705886790457972561257178528988297023522130518492137987309827351913786915236507841068575472682480196162536911296424080307941747701184924531750114777116798916129562482232802569425276134159133646024657379084301333649268129859798391695143294796454925485026696017680435015265069241331444680031708016075692752363786054246804912112976055151472412367357606202910627180931482529634761183939976900423073698396002771696274072334020639423091459323215033575102681076469561513363707891924815376838671418112322768608590688544610657149918199391650850903021507014991197757050081436424168623068099502933444491921751957862110749745155104843381909811448061943786977250396783552485383385808390390194573851127228134683906207991785344570293388732598281557932830967086789066288188363937828172239881889916168200054409114860325413887091156183117057487819337287894691622217373193017881258471937401149283169105292811575090723630833818347890017226762630086538290152652459226535159708494957420566167650712457250322372259349839142716648833600178570529682469156559534173968575429316677553372607455735658707615055539461097620147126504228890955826956106091516550718198410286975228031660496905659632628225937572422538609138713482979068590898319304128008066820834055569812725893954513052353851192706404598211167310734344523854004536955103546782282566262982678923573632766662522740484372548269812911466605311974575628999746859233365814025390700799257340828281077931219166581709490120740236446761636436437761643296730534273833172091086725719936332792186543219530708835833590217341563995454941855361352512258941134253496122848094130763806374236253929972381245947611045658351508714448054863749982454304393209196151143280813223006750884655491656681321437668828929708148941231249055174833331081108627916540950366590010186183445719043054054917307781103460219243057667197911144270463688360931782842234890149497698897857209979401612462990968096467764794551221824157538972293111989371556960345219054301498245876792193162798182479943271509550129007165965623220740298021483848542558335456489313236676664494523151310676325963464349694265763193116341188870549228220874019895839515324550579677010818196999569053058778470906221775652201776376175145291545287996637687303840957557785810120743808172307188286778951099593692864817253224766695156197860345350650480849279076306899535380235407150852351313985244006949232864962688517555538110969725382363686626697958151427604007192195115018415635785746549197410892604125725726807321716087535426311014685385433970427493200886659975741377545568179611507824748619638625869903186200905184679857335435633350733715483689342191920789175664281065507516735684952067475026716875089892501981302711580439093501815098495669098299915801564653229194776821373804815314654731306837487392910933503124378973121306037241002461734567826881569814482785818682288172366422070459160447785234638672061105454713708401176626774298495841366778954430373874717953320319630463525560152245865274575360791031854703168495146372892224476629979358520363261496148232107033492714777532026459714909416165386268824857568468677285845186351739513043180177500822058028438387584165767969524485934096090660027737093170375511555352584206462525953770864376077147310143030554099673248480713829915454129967461511002352546335149597660204567543015145379259624343952320522469382231186423972334320269969816754529235801146659289043774643760099466830691643470321959477280171890173550469580463740907034887222414827615084273298494314203527393246418146666059570919756275902173938060175973635687072435663247658828745520614872278739684602884852513641232160412648796210076023542780850314261870790485965364985662192875709626045372557036915447961992910888407696968905184390862497549718497418087921200688281575030713821724113446017521316792761516378295714029740764454239523843488376356601705358724516006823467444179276693574452648836312525523194458997691317725757898279410016751374627863086534041986301488058869489066827930524887371610599859469213575336721366948746595998647020976912234170490220176086144901514353105396865860656375768553095881882137145550586428689049746202976242855512820905704769414630399638696144972290632253648565336484776043045816668817981887842157926198748906532757942808205819696411716490690129749465057499369581054320575790884360252890384113227790388826431164300398577982818663286332853289190853081804427305561305794996562979125751330806615865220104509471146546870657212864964787301398545216583703458373582616536412053606225437929377284979674932416285858213523209296806684381259237654542933892291392974365724916701916908258478796639532087058931433751607638694516633348527338328083000349331574640035388225266196523242799313445119896945310030941140319168388331394281068754817246309529839033411655462816508163724589669168297674990109285210676297892498791381557878223775008868218656360376886358400467797521305393495498199013326749335414121494582871761025166776691792217782572434106598790768818874693243212168125915352019827759935457579788991372876447568788216565888272307206261466494219736005146604265077647966086064649124019440566766346238712228942308412866935470697998427785470784961740793578739477522801864659131416619445981291673902929733312452948880176459808251000441601313961451725407776433217109485814109502306655560509811920792240887619555437809251355450110759629618282787831752736410580384303267306979472576399761213383639132005785833897220616604899551088729744481461637930380676850048180228840420699843931411677008313883682260630903828765828985950553816846448275258051405077059131582280160195742105823489164747550160237850797466600021544807342621524762668310322500177422058659047365774184317426828887293171203652438005434738348347461939227658866109164777702719076939222931170591821255017515090097020694913780100870249077531137967855521872829251796824645731776349785698147498246228545412401657865586097723756175897302330884889077547059241767522607565661245552841930729769053305574318286942401190356090229758302227389645048037969529968589571198130632612287229839256513018093139356560895913796776743144792797367191463138824161096362564864723164556502446262608679095894624917224359114206010137224298595821428254549025976363111592024841634173111209128879769477082853557957737887994647997351153494898974505679465680012535148425739558977868200031727107693615818110415674506836305642319784968653338860302026248427134054199608643008899725060946075732838929327417093877388043988600198835969040015876931247541524938961872700582285480933896122861991789287151639948697713559377292509961710279053118704968417346637429045632787138453928036122988517474451215552640449898303504268171073242367030030733035933179020847632003785966925467556520648957025548733877586278948314237472614035107315466604105909342635690154926860738875960944306730001743274331695362571703388598757777300283154395990089356275296706684282640519725821609825268910960411421060290325115920743758881321469174129725579957819215535892399323923159193719699386752447904818376246220730944782898175317519467286323264263627952535915604664997120546865770083569684649169979905589995504841522085514006079792546042061522890456098697859089138539311299848880846853057399515168935835530186410105972169522639621327758691720359440506260642307571531740491887772173503032279348805150225081535540754819962803220315022028189251742636773547096589986411260807874643083763244924404507349418060557001551191554830759498832083092727377873558902712954975138284223719873903798650819917599010985029743717491614081924626393206561786805569953439114537574290544762672672347591674431971591910646805450444811349212544078984432802723301249864795988978543550924234634649065942036922875616224375123466424315300710132417739018663140985090875591820107447301101902383529596396025226866978589360117862090988627616402484211768167235851722595536004860705657258437743626150852638520387851796273664930766361450586646782038494622686146847768646597767573929579371253264479630958124934665712025931133731379763566409415459141760281607763535190043263833713352764752975517333540258781509046289842195101186847665704607458873018475728547050753530470011592375947633337624657330210647782812045012736713283975200352367105778842059882733567999238734961680924554489018315760892055559362569320358699243714187072837870424375320831434052350190950792059574541510620485963508877505853093939839777817402698757151587556164416887022047184996944057080244680575281768388569514816393090502387690265396022846834055401046577097794612473849604984501998308298102583921612560174921275378840886399482880015993543223880636451309780241224012094559271414513331037270193650034528254081302014416425877529953080015274206522491588568065528169037150658722520427742574640084433124877890459120187247443563390960600930612689016675966529987313914981060852196925196286194744673840349748669220013014750827425664958305214947461520154528656252521814124562404524766107235919550858795347463984193135037211832205057203972092205150153603345051231380184290978092292087411386355932295925743123302468592805444651568077830204601042561609463081410608806749378793143542031465526199183020520129834803705745419068910626960554948605436212950554553614143301307675614289808686235025150320343185446364937135843604875932465510980675532174549891770764983607237660282664119429441716963130778044663370576184698341244425258857105009348821012506713790044739648416386590581106398811267474635840490569835350706491108419231635794882313737189504070672198100587070780631329245437682638324149220152512264477447950550891615117158338303374917336809271531015037230639195788637424092951769758427023760973321563093172894257887941667891564174424569789654633285938388035100018882014183976879651532628187280367818809148315916827993778004967451136040454032910878058257224034874325764909140927858674088819046395023818556911632968125846689026121701910130108192662093040914116753867255151271951569148084735237059103497193501088364005030908384329147451851011947492188545262781046739493556218572294938460835733874983985024142490619532094470522678809060597111450530044969813624579333592955848510207259255293988057224724965411201465685064254327385802617233950822926167742001419094176313908033940098388979122424674899764481543097285470292423708214628628605225582438063159305808284511174328378872989813470458027055276197171543009947338843018499747301570601496906898795880096722464294709636973765298366740766845459126010555226203807667373939030289514780249600276959909931424722967316933704103876975313615572877047946132680376100349705373623724907227564481267673494622612922692561184768158734897932486722326877842235018191810000127292310004417420272373028101167003949581259156446962894971190350046799019904117766422216793679916944685234738410866914116116311813411819379996573931851969450744805370574509545618728116159483263512207826512597976591013324537293993296779498323461744015019335089647905838704562544544281816205265264602157032066389395800912797561125084191821785297281111304819910254252737317640914067492560013359992274553747416895458266519799245662349508770376494822607561740894297041858331763284800758251051799176829313795581884860308454041097679207924275587387133306156671961954429639600584331843839263620186590478193858435436515460784724178063279811174343198894939520868566389451487061306352058594928762813488035129315132606223754250434473249855133678040708671273862836040244304195069718693595711787062301831237344407467409095162053212580819872940645359829840190288942645492250748830837090598883213640331137483836943248838486649210707742439591492173551591427816792481132979619497169563486535425275804314152521798454528726701690792271657415847447292560266259366683822401227204359603690736147867320313139479365019131188704381878934404746814236755558075589993259429019905664771233137685858725557225820989293920297705231155431593220608685443258760628992409578814327890858922449950263054057142660282644733667536844796049978172661136438716258176892729100875350872967815639958070239583505893991197476655233463799706305664179408206678711597506433793494484152887278971020609175463112540222531541222158228595720446582803118947194773469797086411019542910013633873103394225258469377252089543489587374685904374148513283596655862716492457662717501674672316483534056382644685882590506823168251619881728265185788564394612971477213836774471061677726308189604274927662229759810463219221726870550958508919997271509176168858049198783962014885525689256993066486770419739748004263399253548403623884958213581144459033175735697003771513189654398247916724220269789651124740190307237748916903850380091026016309689928547156137398176164044178642435701406236846046651227726525628679984815241304482927832874777239384194333903658368128972418065495654302608828606089776230805094908003051516671960078481513387077720508375653760617730773123989869217801068926047370990376044915678104272180549670050116998945608525893094068357333363871076442854665494835691152652916881415831741772108659034103405844475419916065578153258123769509080877310580426327938163699476644625008420007281563725026984330767531525187014210731832176463880094728957573099011631150222226704400195087157415775734822682561156118985999353288157927506185676832574830792098121345378414471012317902380880046883398804663240623532224439882725066072055580349475708390887929206554328948357667538475174530759800250613072725133162862245586131582729337973213030192972592086661605577026652022687295864283048219584962451818636288116559982430878760715603890078265500139006118999259260624493875143353592386248423435770608276253868947733411231362551808891543354898973583057954699879835391410738028062071986119876543646808264364847181825016019157690208885302637659911601413453364488567731564421976057122507433515960402578284114440843109949962588726698708789594207428413632893404574306389404306895265670953768598297525935880608949926045093511483859140844456912756305982271036632212158449702890892481345211894194191678355941703175814975138835175951727273291228844163671363287201344487109480569431749969834174310856576081005504259746189349109100943418409144650230675469200464107613141895210337081297273852732069696339571757461304859676136891063268939611754294112761193720028769871166148155094059922328914838096146518284727079943396877208759435199574327164255610916181125409039288129144777712155801420504409906569566116013824655997640933865890774070232146754078526834319979224396104022690890845750464138945463800674695362216067450580431728611716380812606762278042223703271446692287451265881301561869066107124077598475839779035952391868374100109906275866378016631727161177192743683677893162571902404079367713592961703672068906115584635755610153672132066713410948328428806579181710856794053422400471021834936143923102456454969008045025629102867714990432279840258799993925069967654912470313786845660723077808680432725677592669800168196133833426440225021706941336144339285866254828754492918910812298655940665626644945937233761144121700477616844420547332351053291805100441391098920262302733151843382861517451061153701938822902281829971834051218814518663977623214188008663412391833944566510637231599771005852472137640235230865450679239874984261472255829587356295768214932965992286882416805686895662605544600738391916138334501998004647718448106845397567259728832039206028930924145868236152452124259818585602427914212442948612052449477390896296283747900206141660498518036217180917825507643594064347333517421801306038591098653285174528309644376990876757503930545065715926098022139980079114853305916516782541907592971585327503860599837167319241413518999749585984671882794309679522096016557601487687215426564914812169444292121618588101262068391411233958132053703073406836926512288548596453606260637410067879293786502370406054650770822989485646831390308014871915661525415234300973549347035149940514010118965315339932387194991657349071745588916508214224192420531376539729078583705586951950137980653885934197593088680580620071847376065087624041697334379249887281735522889166684397888248145829501493067727008115716331874416545008657388545128435064670068429737286611322121179341229221352119068970412849442367232896200098792171188386832759796460053792437860589200549968616398776969810964748807619838209652761758984877519799926860483579403544845372615625546633775568806112649070848220127841513979124227243776077972076181386570776576172175255152054628025806348620462921227844031188655461333916276414128765113427316402501974254241672242488446268903420497072572897632495880323263413400592281005447082849859130146531735116119539360735650467785591718178115224389459047181168534044639946979096150749585143455037371292462238530504164835058740107163859872974646236725439332525750966701594836498704336767560212459205847354556961054155740044615299194892269431719519904818507758926593751400412102076381564801713022961659617660974131179400802855401789020431606168509734982315877665281320868134065088935839255996954949396244936936820074253559888050121916613260656217505021291257142900501995518987624911216369500097945160901953713848181297989360344259429671348724592356257191159197621261923928645717912759539649780870248085247552879736433013898577735913266019394611745033610609050389119757859335069195511551451994535457288968418519922200927934663841914451552122819108522602030020578047611851746505681187506010227552170897528172852316220812197093014984487496298995110358334053438133832158855218286278224250718997377826107987097501114897045021516388602238537959619795954739119950830117453227106067775088348098314928689344524497265083689308955710973290176329159392499866864340151164610757309244294536938841109735754586645834158086524781904403390023516530492594174607994469503181015275619032369456671276241861481687630866961299390317678844167217727015876740940590358166664866020743552525084665655308421766812034208568273120140816957284440690832513620497390017455420810280378918786649602340131756846192943697617506620859237569707833434113443101765467585795347411404376396443981197831882502292580475998809570438264285020807526104266436491498074149479092095011407840906210533880658606371642316918109002740242292991072809554540713605013432458763374910055477591851501808302760380083295380974758713805686421239603865389815889599455784506109944027051848120838833978314955441907293609915165673691376786567067286416678117794022867791355736206087779953251814098658497366229899435942818733723980793915292142913566789706733316910839224969311166601660362402936183931778529737413026528467733958027967870549239544771381822831138133529314588836313871617924724270648061206691336742416036422113676130730781670708251951412945237321626072819459332953219733102206313410945413546203346586051512551277727274909650045797880806919580160907628397654460645312805819372407174362162891141545612287216246285328335212863789130947615606528831161398758187739484730019056783623703179365708576523932314975690350112066617535882144473654355450587990127427280389052064042682576782103300973925490934589481496660905172143550299111675758525653952346278232159394719118271098823805534362407909025382718550518288867454610667097902321737306632237926238048720519741264542528581310908042989472389196775561304118235543131663927154876226530645624110154463319115559983996313702599526518966245599532378390447215349081718458700106625144482072380282970291210545912362733999004323172638473364652492758415507852381632147879314690364148584900781128882547945895974667547725866844423459176726054509526981042994149126897524329894232217853485096191914015113225126320864650743623444234685745798902385034215985348855560025707841184329228723152552632884331856171798868324609522162519070240434974849706825080355233626273965200934662286602446776621343217709445593511838132850198726809929824542337045993327770439829385694430334669354237497008415505709958664777841364194750177306243831336823135053849357355344048978763475267133384094897516124416211437667638954583548285129844082517003770490523200735275342104644513139028847149322631178179657798676861069021895349996723075996659899146122436160038661169287752930589299308474695889547395645285651954109334810431592819161575883037632302653375669232026523942112723338745928646982036237478738549779547960053042993797814236788195771482330508509129069277040634551071916861945139678322861846249726349034876209077840586592194717076381493691659751000219111158283407499278907474994490743268888039929241403641141971457391419339505766282317223910037299741846512318642281385657305037081238650745607467923913779740352212953423403997531174348040176164437964732799846375096570301211647251838271557113045061219205677835986714887086266702171014765095197582244927416449822578250370397279405797719920253957985717084349113323334427901185516986601095638706052628254630810488499928935172590507247327355816001051293182379973041784542781723832233253597396045564926107893200319613799457184493684385594557180636021157560320072044974460669928429086174425938963268716890175713368097338524540520254907689940224749322136716642715649934120885311899522345325034873775508434522647334630594448031122620261624997432414247549096279178736573421438584396265473966510383527571187788818629112599464889096247649663860249693236277046386782103465182967511913794175240676429372127062083856983638001484084927531806522576827951593703429584281463963956521891381710272012649405037662333100352225126703114999704602614243408864999318787998196021894279607673501220992869157176848612108201514959322544807942115759488306565521788552438267459547637858154123893495298249906998495894153947516550657809967938398990896591693343762108616975862257908053721867260005871933740534550861207410855283674461076297889746474977930314027828877432791287703352948456813738113439365378490822941397107464058967163326778529745189695231239370860826912218923561745285261961162622367751590874314834304704045662947593515366635468682712733833162447429538599529788726441778665104707631204807317322723401939403819171173728019920738143323061097086055945920222835514557445742921107064977155982265601851574965478867997553062103932011711971324211639982853990432226257209490194626402223531047605161862939199854975787642793231129553086081593303962728649264203867090951746141417203490593995993703085171945192883186826150896574825881867708878493442306259605687399994553697145922341165444538104044619925173744426399133869195522860504105899648130252325436312890729516368516000518831369045763755632944364544724331223201913198769465329816207966706644382297157529086865180489539589998296694846969724737818614605965312592213905784787282447559683908889034117712600215671160754236517287633001518762960872716707785618856357184201387238445144995603600879826039670703473708005095631994624804563197692625780756873752048661510579434417485826481477791499844427727909971932341954808054262943458627905624730191300871655163173654687708376008972307361792877028431278941637405561896009152625113101459192768263419849557768841704750684887934398043019247405012414734770219785484498522252429214171726617215291460193787593446230721673010787426767678224596435624000044063226199258759824812188895456568898692075447985780540738504568734370123118574114837481286889429367497548908795462847785832811827817644892714088880482887580614530868510162497255045286397548038321681330873744326084983521497398020951394898714918531797368662803788745206879677640761562710900669994794275894619253744508907401771305298705823443043970128801418948476976561773332595203765514832721905877431002074512907778923833535198695436832158752967117967054785277988436982613975848718508027349756725392645187691368144484163249872131849750250371937268496344828587683004230690649341389982759258079708993283935215755113757971403051055055677918751196855372914091890685444864870983388330889282065669339758575401218933404951403288076137279028738984416791724634372697202123803984078618825035323335624455149918637562261874593899607125310240117572334961867636639494209672147009048431686735467074917085687564258131866534115687989861576203963566344304490506058310133615577644072286205269238879566129872008854616622050600076207345479825402041775049730629467556284161616589799372359872842570314333510581249641432374527784580243388132667524687521202776662122428063972990098177057498283423766793726619193260079820816199011855607029998815658392625628623962336938725173867611082820691278658182358156220887592847547846652686215273462807651064697084844193764854367855391892849470616206834405988827628838722977901840272572903874670056501959633608080180494999668590714290374107034193917503883088277336381274140186069907003382389646984048542193791884469599270454244799716449483637129898123522635662587354642542984549175630824980523907230501119962132867937348572040594036584473716925583594765505038484108106858250894839979573927583055687955897464178539060355739298122328107450777858419192420080835011919689616108134667684669325808881142211097773734052650799698057972390269242581020452658154537582685808439426446193591438403956553063935395081408008156979218389688452849702000515891466732565042519462699714650881728769872768528123361173651593043212472648223985179882129261298438813061094094125561267630458470227027371433990539489032991752550415888376138435109519424855611798581788430208847566090420765270017851897964947436844987984523465179197218353819885487184625463071773789995900019910878702859311980591912589502469453776140949032803005856963047029509500434349296553853028447341661310691843403762169696434952870281902498536624258917582196489480445227913201859895860800858471265096986008427369661153095801558477289401383390718478698912214976813701731465127226736586095119767238607987639162583379358143923400129922031608180314443800784239822693542733377870128119715815599459147446294767638066842271501616456622028311646822821082764350534554681889735719935719382191743066012662650230758161770497602491264771116540742277059108204647268437958460216038404814460661674108758921276945331780922415165400497770113922437059890318671496583294877098113700880599025846088331650045411710437865358513573466242718162994599290878657819025426974532214047517973129173815331322865194853337301249854540725585796942864847458422093944586093957822604945793257162168003125945080362376325743703383567555894782304363149659477081975344856812621724486996963738378482191682468661314485051311651370383326942036791881529454557580655720584474316374740830791574429212224391490923006896680032568946531422552604256837332994908974688066991158908482427954190987754076268809478839785035370566189448982661308690468954582706701991520210213159318458618712268723458154526653620966626222595710032096772498267575401722539345212306047433255858756369931730914045302756597986043447197426481047309353033050590474383405656981126196040486903556749397596860532694701384152715898441232699714994509647564591454267561701511429200146228531329590848779201908596558746241630695755524677393295252496286053726857613588051334460125463010044520681430163419870723100127969217533561810962476905972659321230226304495317172895451312039654102087852651107701071406991300990718674408593999041286999605794587846224979942233903329560316156857181308446832011214583872865449482936821542683459954851528031871756324520177152933176557977936869416279017050806133894962007433118364422769277722876309421180900484143896544951704943399754716861768914836322569391391970439694977844177098273877385985312526040224160022434554787620807560596311050087133874338668774824653417620778202614833130859070019641492953269375496977225167216161350340797433961652127960193760880388155449309324126745542420314884077106598196659552435847132462533742333819320638426134701093341622669006841120782334690850990601611435492267620402326045785387338214803293516097402711809424391628341971080558259749871151939062486356185832721531506496153438569819440318489628994026755548220574332071839742207466993864997952355933312147117078236048266537620272774910364877172362137047237796599943224873899298337826804475612319438818505965402456322569058422785248480395995629031604406059015428212579175700459227105881957148205306357029670544855981439223332239969291936458990874939790619148918319457518732370230276587603622111163548753795002620186161821689560494366234670447568009126003079197424176534391899134557013171129825517315106612619969062883150494330088930045686763708540908913743708963524146176121923916610050215929828840013160209556942498007088017125212085466628475708367490469069447409087280480713907645513366918391368030970804746213481920194912600098165263356947078058743002889230973889337768255635844325371276796814676971078220976639729733519900867041735655306929251283116662371474168047900195511522810322960807216952886920674263978731225650568297180092646676975564910904843751950162241085004251416880607776777317231689263629604623194108211317809777891660515722133156102912301840181108683308226493154573355170095920448703183302278400136346711186376597120394580081328106184777066594686063810484008674613791381879929601447646640153789941744559557009503613815436445511535829262746982919366396885001761222292626454620048296522818891957444959151946433148075285799083008635971271309797731027985653070100895107628077439961717133730629335402189185857152600579551337774735770127970290216328194643087543497166438292201535016271199601792105081775705133520150612745681320342819905528326916665746947951599142130309762362188078161704802895626031684506453197018886508746488037462194075386549772252627090443767900291852897443004274390311097622152040740549229624961831540342421235730628291019783350478588551985813900254825324420713988567166847769591618361956314328938852361562140707970501635211707837119322990973696914301924182871384775089915417107067055304863245727803089608419421513804103340808283453579105118506595873419577105573827433905933258253832889257947651495420221824977753643785433894340787102627144026367641141592575493984888551496748307139714117856951744287309381188855214556067615233586798543372966056891432707376700728623835826178201115212560411639698336177867837002032828571165408685841127600575869997457384166787448837175546085549683788437014660943497534727295011295629561835873524579984820862287982827308971271573064802930950611941889694618879235005976063761268906565299217384461262578186884385463083268893121832610066171963826458097625524713078004097177672465656777357106633330722123758096492393474799863662437880888281098104259351407621860613923801531132537113171059893378279526896783836000844227381916158070505492591122530568480888350957135046746428227563511353995025474883853914290349961264933387741678287740840650063528346613578553447498649413322568366468384530033723627931610042981476264213844980448572134987041740433246211059943692595734180768121828073843290472281905657877042755237058442747800345415864718246599024234685554494269402529748886782229773920077880970850651484931302211138172007623313784067200135030712782437019380047549943442513948386639186685920886567608148154422095082311623905887083761297184383372608509701316680195462100697453262914993098452802710805570412099413389746333914056418990909669607151980563928754993517533670424630753872800909214016312775967192618030949000584694494818207572266809703888798616654471556385325391716586729507342528215909504624943556531904971017939684288528302177031983984231688464373732533430133528420929341194022025293642585887044174010973859365200226056921230244940131624842128638729524955012569698387124007240734917217130969014276264591717356898196197591845523254435537052712292945750510813181758082364036197031252177978841997382019954386438451767378516137695063759067047435225617122329581715631065919141803571961320353253537713385411219317135714408823629251033741673237425486926519313190608854097374495107267516823704010128930525045080500190281818873497147883586947611004982596326548039933359459837130588372393739909412523643349324575663571474147015839485378002076016124646007783079489067802398130315869511235444477163731955994778831304528601693393590718508219161517088037281911090405119271360749221573378419000555990675621036503102290634636400123956243207929152012715296909427424955593939517152376882454805984328271260440935890816260792655518523651380946682952837136681809942864732230519331386898866018159352136958717333399615964835913041324295782326969598380404693043106676609341162411504038546571644110959863770064685369277291861076680430392382035695388689853380967838197433664976820579777713549177448527540702850081821794749345696483198220370859456910224273976950789759745381598915483603738448401870442675125437377812966079719082212093941463738403684789454272547841340646556068192946413492208755722239162187654214725147255420367554013877115008918310222154274377287505394129529616627497826665562993335259942273700531145892362365215977934349706853637326589220345386427676020403191319578202443438888020769435351056797266663719744352121385658338967820896438703217658162358134070750114330651636296471000679455721118744252916437024749841335030085298492372241197636043521201174670642076017982423258567195319674303921681081748366373094530194592006537347957522142450705707694099317887905229216486028956701661555271602024826467160335032149300794306294243322489600656398573329038978402984610223383196870164793286281672014209917948046010425303658665560330799164644180759210609083137867566958694182751561470544944301506962677988684723159270647416393128664545891459627473690698075752136285879633340452214925415846994415343318512784060580098397156607401346683724962776137937665759786289318128520117038119591504822116695036190905182572158462784541680793038238651688797191157845521795371318525782244309243734487429492494593166411052984669839491771162130664996403963777826015075292232596709199591485579168306065235878072304221601482303022678333625593484127462222366396436586444352555934943494661336588170467350144347001982031741984399230009191018639432049294186963877160424512350799738732927794736088436672327778830939219811487569314022840284376178643755229551042090452304655721626902976478664326118146466903161195036958101300386765860256206500005543456416807057424246462701840196448703338411101947722331936645385476210263275861742268932653428264012063080404889539109886345443480201315672585033323850728580204172637096910964240715050107966457169784030460012621909260103771755485936081634450481996039172029634375770077293471243417541788252479067303075135320178835117400106169329281731829967244121641857903362073915480636302333092866905773738744284729225181718502720294121689921278526621926349442024807924119925954109589804640366079547582379719322433810319825808630242874919649977036608432296048462512120238216260197872808240465774928341690516552978773710313976716574819472189679298538576626243755838940438274573552164589748091937035431033777831719685624013419334417691544820764508556610700981232832504090467171134081503360066367260891303193534069929188882744953407672179370690624468113562088763031310563722056512333232179354518328915542757989213474269986669090457742224283789614821119575229197244357124671262318643431063589952861030682136214289496870448616296662192673752310552900985421822693875151858710157790370890544782791708178104811860294645458852248779829123330322979543784020636423382608346811025931673713194482649882790631087690725108857668556611056908378092240239953234175523590805526383702975418827544802310134821866644205685854069376130798658657858244963508297157976404703339305601875563856433137058318393800354631540096421442318274964399789674431457238855602636228417237674873934650454642723229674319191404345197030010231177022121457908208874982640742523563186225924263792001803534098877251442071808822017307342451097312678755217350583668166254192064989658031146804486531581166978532964577012333267314986484431802117692730092775628162035566151891243189570818360287988151339087583157761514309709739728248615572489285102929149249090896854328068978273392178816951161896779377518970649908506231979695083953541300052104860018896827430407523640777503976944290597391918500432045021227924239093185345670004605718460383290360283247642629231056112622657751353601457609516302140469117769008839217875182603764436911142642663746457228423180363455777746501578650010993904313220558651320356930066958883920280008914776897845939539360803107621823864175289597016115355610292877173035057008056315451949950410922825321175817288480589665539798055717647268984423468022015963789564342905771133398462028325140390141668422654643281244022463799893887558243551593680416775356026901705024679261217710788988296676797751725440798455958429983932298602168818638006049815542724958751869416969452133427530452398225333337854229223373296383051682791505245824039820354461038287033428799705986931344600127646546222590228515297016399948398554626201177235228743078780013503486025973992532878828190796536208904533109189381609336751535255791214331204995294776974857714406349904945804516468884314284746446833549387607552905058892447069720279720236063225126662617048217742014780437571847799826466569533717474762736157067591546345036100559891235981570961379909961599893858979600868443463113882545934622676419887080516530633850212911329202039057301501216975722838577631972756453121778562175874938414182085579357720686752451438079708708905609421058054697220031174871261492042997904893248430531515406262137799890864190781656784760677001274523132887115316760203824128896803976981652209785233698348231645363785585915241048388185398486287553406578432239011940923168710259767534659265242163588217495132959705921947275012252853707385872348202587944908419667953084256875637270870823807780015696937692094386355730445003220394012837669331077543609856467350606901575208669730046827379789385074844310942369121987846497451341991185218870841380871540546231617536450748814310349300179095722289340088160217884846263515245621704799977327974417968452244266910233983415333805971052110919140766468696420564431821287085669762863246853814986613920384015079212640882458083645191728749669615366324670334456480680756329278881613305234041201374617184369783045920747437250237438915654694161343388298646806129589485335100098462583142002441122134194018950190566118193518257459608710862345431009593786740660745580948537557356376557564711433820941590691726870813117660300895975377650350265387479892000638899402427691622565548778272093532544740667567875538223762016430717998672133533787206713118060838135400438496901344275703735659128601624017620596434050981717015671731167948049657971782570240798629798656202719477974080144965317081286930452590687457278327686220909806925250147926902391645895198857572166503787545066467046861119843721431824134339914193581819879892325181923453931085221160507949758781795350540977328112570798463978526872326999033760525984268039942824340558416505449429923651676445496612567529811044513856822095077727975497998514365403534177852603167770086990781926035165683465736072542781720490741892431371761999978513159258744141070578324415723290478166028496064262167298570874491944379044090287796743281689382055877777471601219505445580330666342162785966910730540756476468761902943045347152658497275916225384273762989026144422125987609246260891036806234332677286806619533440763269616838542967446917131937084925693197673584726977013597614963215875488613708943466726370909409310110665070473006143022152693079787477619153179816094635195877539065933455017863512537303182968390245470242107444074246062710384200043050552898209100022514092673163204118158383304039744212880463185072805469322011804964167821713604706912238676273861486588702236087308504661879614554205367843531374382534050125129394820818050650001841150633787193439532158072802958057821926399879649785887271142607025188150363792484916454098643759340086911624518067318710788793995489235699647471815874837268991680439861122193178527926766463689435745335176630238461214968704640239055195691878941805179638462118944314711865200903669011448091272036156955689413596573575723637870334890615268735594081404319403412030498019524095313559880716520940744400566706175225593263278840090937574938648169258140726368441283527295922989329524306923256192674583845810394973187451698835487025194821583994254120169993308914528595542064594874155280540695006828205057675988510676376277883322051627708955043069385164397695334830472249214139487306103271903686220378555284956465390382791779131132589650677882390510308423913689425909632113735074153055527355952388866611878614995671723491643682286325996630115487939037241210161084957224212792529605635820339049887658357746031045456004781096097040841048570300954402926851170279146167155446698866506291615250805581353298660320259203512483910355446125676831885679258681108153135788199323955145404450370257380446947194645746616008698952797374788305834728969418603245424868892374856477855672628544035881571731509588717682194657759928725313142742250349104736186596683985076819565751830092158293439430213611402035972258099371496548181530007850547284751988094461990724160990448885741212894727662854995973272698147589737665191127653603626760986302886898544444650418752853670749032312241585422193268185512553066690868360983221036544441984001577670168772691424146119002969992955695820547088599792663056041936239227371915165536456675382378814376399254369912603214974926219865002811982460866127957765059656200276851442059424382489113357844235095354175580714943904886307840557300820502435393786750087205628253485097960861085362559947922139902932195903171142918863431761071812458311491339174748911474612240435417714712099303561602762348621817256077945140729841807011115335547984936924483386201460514862629310391799553181878374023388449052186551938914041015676027746760723395436549247908623456704771101976966357269327115241728172119369961584318958267406254844264293564547404298936709081504538896395352095118299257695778519974642799949021063224862114256522283986230059261852251010914597752953750735102239256857593017892765743562116549004173639561739422838242945246934179781752363105215125627133315925613926150660100961698658028369193611276032045915554791633834069397126618410850472301983365629878977240982340346864041011844457458246012108558987618636987245887744858822068905975883225972001488756470525929928604747664130717934572051767846777837983621792566971135063198184108725776235577244804883382405524790313805475770397649836241275355523239426026590477020175084087888034038261835437709479825439262872298883515046616663452316861555555524103749584941440778667184832135845460396900811206958398838990151631742429998608245106730289481836342056237629127693535034667069698170407779126830462085629744902244588212902567889601256094725412872336105294514983651634441542554562217687104321090907111695561740949296688510020908355158025152271246688661274143300600208020450019629394608073423101023858106302004718593053236382080686826426148461993507404937489182642946456259851976829332227813318911655517477649816264004217265716543264926449655264401088359866724602878465300934462628818068117052944664938798482410662555750766905669830220456916892549436092143170567684697932185137406233202670842330887194366144853883400604768175500410406354846796227313169235710595659987887848899319095569144864988418072078653062543007074174899374547419833138342673707867083298048005762987611773099888459953961527379258863237087129258655092272873883371669269832843940278007167643344908268704678059466181016978772336043476471852155838256144119098124679074089390528613805381736000409386521106046066087712100706765922843713004968770627303121603171337177771079129623013261836288274018112810934295265870333946750866875761553780107583315314809930924122760582928386204231588842278558032734555982781150170907439023343788833353175385605616540176162766421748731600198194459344941732477714566053966011932002858744718146974507995334407188922323913930709774589106899145904539789775552969292994752002930822116541545865931710424215244958593751277231317669759388575274481807471860339137679935317580101781739530963187311915274279950083709041981533453784545887886639265610553862676999867712142158801685244768853303493733379830578680938051054717457941770329897563426007649066696566620790728202405187261155087293860223267196949847040607086752217788246225823911286215294751046898469440126434321911718823349437857035209147923997641941760376465137105055449792411776539454089975796732814008856244167471073828209689379891696262842048290184780992895572890583776629892287115305978892500946199695844719243742576058039387331399039458139588062369475505084698199515770933719619573039386115680024858459217935326491737839502365095186606399772605655644642779136121693192298653427395348227632024750566679110904868690648119823715593359014605944636608982238894197018667463265460689111617932609938177634163941401771661498777843774587034071178778965787527101473195487709472901052082960339626738962102039448908119601893256420216467450129783246522014829887817165616935091756162042375298717781306840167219525091941691070733342271464924413216923863829370220679795962979008754310833806297506777021055741296647750860338799247951705652948438466747691833683010319976223331986669755484493091902125841331962689078403384752597214869102110308742526937086428830418914018147339135740658662706684446322921463557181203504877504251353271534952299753124003669024510229654722481648027879737347352218435154997237574950754610856085333281882064955812430552468077439247018363115885328981366643526274742362710804298179700233913776271030568992549740450840688825942198233717709273807521252516163320271042987025435860223945415724818067447421221959951204513583264364065187284567992879864597096730407609804615260949706396629463968365912065367579207746874999761944470170815971758269451704330286426126957160431701949543710583600986435607158281221033015828668256537414027970962484878653239727874980001866542081561288645396159863175265548524754680977057560364226389312002960956202075068769722933430570805860408944634513195413115014541991278091585262096099639534795939784223155041509168831233317338954769062340798580888864369209046733062740148185838762610002253198890016111822515899234543881666000600437255011939793283762698170984973208071411109665044330509881702336695532039675888533282791133316431244851700995196202863721073364998690702441479632680647668792719525749791503880880823649426999879514939080709497574343954856595755777100037669867969062069689874166903580515879636627879385683080593675448351363240724499424490032629294875537981014760558271900988170866497178955147399930355543038744104630761747090882091631509564627805409034757222883756196211246919683562761537113042570019665066223255188074413900759317330040394569091802909082052060357164219129325143568845355687933751081930662544355398970826676621233040182250950074888891592682727658683775758659878824458612721370896125744078680826729148018006146144607663764025510005286881742733511658265589154386299652344549723239362417934526674297678687307295754088098526280295603511371239326899431269999372429497290849279336245603060237890401593946144286262193294317945822344171966808685940343944234970115449311518693922551089745809667554983616025060346802713556025601008392167838865017424255845073721735281398805288599815603565489056792521900334752358947014782824336034343344723176504988833725927610059055334292703233778543902095111066216668345441976845595410374802761577100823070291007148944546085324253541638381896060614636724277645651373308066925593106848474678415575772259124021628731633825503965300872043056883825588278911804113281539078587010421908701296102538793174444645844283314511132045879544240419619760823668311148987850485772749016169009184576856013957130470556354191306999125383442075497132116784023020380699499684877708209508121103434496311534681874112590240985305854110678905685753050545254185551931949278631790728478168593212672487920885103791433760789505496044153298368287482752678802636290770234085396257029256099649119500237050607507627959904191636381390172316684447063061612477112350620735986902528898024911047446040737181438600434336484903690885544711910852535188683695768806278978454642272859489847639891336467215402113313910030694380785430770462357115248847603012883786190862379412861996416737507662281193760149830108015711530285779323707852527467447510388587230621913848617998213362509695513867021133360624324424206843017384726016938520708887038117298741365011667381461866435342059830157877961594114454484568566102889788925287433245429676162668289001699015232775344119063637771987218151200628038374396588269188334931374150262663852948034510899954524619087492559550785224604709205231415966142571894185931540441496548286760861945866925954023075046494192774281629195090071530804190134180092274519083270604627695991089174694548897385385196715021507380620875267378646054836459456886452848989759681965028210048236122379622981231113870686981751554137747213709874161558177889974546165397805152878503481764998723799993656357650565593710895324729661055468208459210256754669438797778924799671457015082092681332465083737083714377251212784911221334388460115093568318648229549252473017657723663516291445327011280114473443365973370970669208532160933366100651477496697689222242644885978985273830145119036885630515016238702489647548665776533570724079880502806664587391195407328341497884103616147184278959249415658510124137580300418966548612548087050039646210023069006815749966426120044112223752382072707020916162401795073862359268920346975645076157557497815188160472794351448468069917946566434878487322351856792383433233821405679247172074834756348936216830956305774582047530319848908955721141083308849401799219755589151249102974425097763145877069444471084819207318033273863041586714854955252322433094589093379748360669675753800132773753644830758034968327183745282051089922836971574927137340263072443267767484418357001971246887100242747376772610469233698558579038031351798660844406149887273885559480680091383391040316193518535567049837515153838192552930420147645182429243577563471995618877569717057228229049026785158559470630553621147366219563694582817171451488055532669804230017064309448573254651432015569104027700616508531422934826948546217225596145806614283756751027075675214873916647467658091097117951113964734538781670337351107727590314661583156662214093788185023297918960466399815275378309171776668766465171386039934445923329620924251808039580078530943805879827883691860205086670462704911447585195435792438736424835850664206901029676050557087764695288501706507185030707095967087444479569890449073267572414402219946902932189888090434527219565305062982843981883235870575514244347481196990058748855920257612919345427063536096372622835274052027388088430498132582577431837243968950932656790677263656575672472319573053216305534243825672666614058339554282127295061018197719351302425929080736908938146416151803778180602643546776655704608900359493660078425618256782768748615870629446148735826449031297766958859173475278413790926030526507799016393102564873638466715148061033553378666766423702174905229187828007647507209094997352819821098565555592316979412158372958120594694110792372087786141816182525280051930824670644418601025992192501321672729685351493142428189206725255071860438132864689489307807183256917574879524391880539406276407048202756699003657092855981718382460543653748068527063990866897230170362458449666050075349065610508122156927286396920009909192168139386644548016518163683764065874896787246035818133149158267264628327050065572012277318444976535818598002831732765085758288051325757899806652153838858682095228751586595538886773992182643457861510192017012630979709440731180197130966667158726641180223173469681175545471688656369734397347177244565198047787185062963201855889484851499743618072685899070587185696722081665491215128809691487222077858748175040340896482222186213313142264860476869683153863967652230335654851293096416899458947674073609223768843683762105917640071338278883301699074664815880769831711828522877358539242215437679569412710408134352491892688305541407023890605076169975389478554774226115845325302192262464460017231149014048464902322717773051594005248249924660398747643264749875573990165266299050328485504849989301520514617240459863520693533879109947822119103728131438680262733370470618755188945091021686395107943424338259536051952844022276981368698385839605811526764588589156864476750821190710711246928168206248660097233744998103077356721416518865780666274040354879129278721292236246331868841725016654430652357695989463456324091944966579183566953034159916820256011008114357794895008781638593648059615193369516553335440801164496686054367046949594245124715298158116913250842274352579496559410112348655201135481112459328301832317801564427916816929917830740502788383903317159747283964619502012897144321692527224810794049956758727473950510961578160551942233899096641049714995560371898434191165937299274606232484697465450364116177007875657896515841130910147130316559230339356787415788138003604035268236659756291743211009505295328788209597118827720038709664324221703178951757747868507326875738257820643265522947637453189060599199492465805146440929347496331154961287191143092509323401462866342737820931689778773805008826680903084264401711676932289518709083448268794028364002087003989661949416611148162863330933003520169251558933947513087598266887824159891558448307686556506216860633159693330566373318193433366668727134527561070438810539923073868932405633087415857243105222144421587413317921055651598264423004163433889270109367776742090718720735513122397667945382059706163347120281218908326073842418755699961663939323212053778779466181887908184187387946610306104978966617432929715643189353042942607533607007499094164674028262489339799421861354810673200214808047551673796218028118934978871872213531072317670775664468686522950917386586880583435524721299050011943498472071521703619110781781403809701778004608453530735417843983844627280004062567789932562094676236026353600601176028584398637468038392010086829207513585619133533235812925577526246324553390272655276996108425185454069822042400892667774977702091960688720664192166523533106413183605923237919979193693974385563205090019846890480943773048656560049119362902279678179702277387128721160963907776101529455317872833218721822646564502305463087289932096793319582585402152895792534354411305822763166517749031014748721661567386427866267694577754577789988217042076879496827173792617149065663662884396975905011167478949817051655347510660407624478148374667322075727838994346973669279498269071732723363808141014206306093343019966459006961989302689428482553340312506215730243747414263272522321945051892021088852640998230000774380896317125190319821700861954217696243511116594432303403452722214236972340507930903248791439794580192826502485364139404745909041402999145547557238122208825040932279236406483122580939547548516266333586333010385255739124792213558897653830483151581236362114609609381616511973759579640077243805018226430572425883868328797791109242500698672755730992261705064720754272168252027404268271243254791305183885014513000374308309900385871397807141462458928866850034221889628678788004980034883469490297292451748923642867935705650396927582655249179198309737888206037711502459497266062952594270339832955271661752391922779926863426992918110930410955016073325713300488285596832263097971429088068453902599006824709727833491450321790630090248590700571296935288203008649891868684672459529699306948751850302287305274547519976937900305966128439506525654628088152856580053409792802551645303613735682658371262404704257519606103543872859416932054815778602336826182403519716790920195996143788651184151377157559108035781014663111198345790085270781323236228808629092550185141360675455716432646361384197191453437675940534527948482190483626360090835957420674702458026291908263066503828875611907597910671501718812727400477911484892453392466293300737991188948008541390397840112318704619763736123303332583345671403067962241762977974967752222789142461044491409066365398705944331706882995543667072828592852325101363188503212536111887708709567198167127319587834418403925919505503047347917901828590001140764027084064562422654853824809994192988221582576061884902397692477559044857015755910407545728446432224251358838215787336096705723837125099256451151612429291020341883672561782372090022226407454726132149516182906138072281223951395880633673094783354583907513020023564603948936648084302432330513322789797957669373590336543266875213855529440328644468401082558875526779279001856663897044061128605038521442634898735247899024848795338887809585209500587179519078767501910253844737539316375955126365098642876079815487110907112680687797315914063847445391549472426337017776720202060163166442967790723501977003842210343118323940972845643568994270593294889609898797780545165351805444752714591317901420894333550766808190561238829760988576893419878513018896995304368509003292219446483604973973859984309424922659403918979495625073888383165230688195806085827575134424830705714508333719481462297923250295068691925583080806668536565608349465301584005217218680009763518683026975619915022431370778910023654241257464992601180381863129958455348986231240259099886118168726310880839399276280887539092653528067836591317578485733940140017567263898211938458906950070970486569923923899369048209941400832891656056488771745657934718189727390508533157080911938867648628753467480539540557130030503480835585837048574409008900283354562940388591091098604677806178177657301246330404848499359754543800492541164087854411400345828177547053824605635539325584357077904480917854306782059763006928547147661049260331572649059937574709445543922854359616667712107991876695218132668042739938094753112356237164245768976916620308065078442291812415991585132298408423007155910018051678248951451638199764720082729617215826631873136531566440014911720621625852159093531444284317124155973985546897976364915550047581586181242145413817418460909143753847890199154713729719525169664674257997406237006831814801500243088481701456398839665204705259294682388838957918548911167188464148387398604414340573526808976025003929356324067018305652417435663024396899621048031282999831287985280269958795530792014245265983625182041088747956603154413582726721587098262597043319337582386204219252035434217740244980957757152586469159723930128208723397470287804633977383089056730850116544897825881135889054848445528062511122208376407879388360948721563692082162052754799316928571949016271032545991194348826775743432871533249932655357866086971509871454048588948116984688853805159393313932796729973374416785463636634907093601164879278405060646290727506271572360735636775389555795934186852620468625799903050139846262406982728004965736001562281027346220075934470553020898037136722560775494478556092825265776115836219397847379334479420243221539244232284983650651387304460420498531097403344852682950216268707836166719364935621708035861234557574031574331279802272101943343865325063108110416611262633416520233631877535332619029302095872234705274218503537850842078682928918794093250551161418357274597891190794745845247843846418248693843886494861069561261163795724841751515471549796437014384328232350554362223642354394963810356482164559600324434055995921151626257777723917500392577189382302925716339902642066788866187354529540395294230082761583729124389674383763105584902586848742938522937800392927259362913623872962157212543278272019473474157265996130206122281653947566302165206450485070119501084362953531108782100835940751426185873844496636189338369320067149126740384670134138971291281453607362117675767674296843778515310785272089089561005138512172697419093891978976204674665085358224300389128397317850365453280528490373004896584415967965456934565542321963518152655417255009351679826994051450811658804562541425226665967523751295958121466299156494354456434995728829387531311230281999792444330958326221675610507229104469368625719503585982665853590674957833847014159632691360139065363677257730955109603636836972594734301102270365822038212601028028269491654868047691504101332243436900844520294614423745661421182119286326524205256909938196977473575711610358777405225672574432875651263416953997226533995262086036286111599051130882899764382037995493235777249797040843864322187409756696641872434287732060786023105509546076307215902041285699883964434739814790917545715651379290524877449527082906782604822606203145548305476083477364402632271520939410713332232462169951085958192308986000311236080933396180192757590239948963020527297211838349354638904754890211539018541948914787032701483373546999935324322208397053264631391751347008425127006077613373441388626000763095573421064719884195711785292915214112651553432202277943707012537538286999416875139082662988675177467124376326531801085577434124636717406407631362033995197578894235191990395695426930504453896020193568355230921075820728980580397991337563092428688687257054016333389899594783814300430095522611850195180537717260898866119069847941654481515929512167634046480766758491359968753549262140544747563639955753201824498436496061909586384287946080531578140846380861595778915386068542500847803105677667693876700117058422731838203290033975265506031569500726947105501061654331109991473981727450868428118441602614275373452811514510573084558649898637226623030676640149709428882083789730601406011873948667963069597170629666940433670512868349785292384168874559942122803356773668066192528996386986988892368235879208043747920906715180900267933907616325150337198684066286174002130109220677022828523336589122730303450155327626202613768706782107161887720192962287018737005371986736190919780009608168808702921614310190724477100185423909729036274340906592852442460964705296622131812131738333252412834464877125175452494544306488250172579390511985542192312525366015724513090054683019795074143739591102575756048134431650698221320831343043665140662675618469622804401542147689221398508287965366573288420519496489700192955055741480632225673095591003589746307107802733437463167667963206626050937045602781197106332719856073916470597750873188838522417265628376292628889133213534212186396056686314269809285221449132378233913254674880417948835635680628195980818765624689182961993771170947632630309072079552151541945517931476611744522721619628652544774823411782593900877943068152593481024046260338926091624914718884292329204667208589239060351680199363328456279686894406285891593162502504133240709465241734682538585083100123057181949052517296852025906560836975399405697383442937912358783307354601337769982535593277855675130340477996975630706621050444912951348157388081672756917547571576590359858817856846210449055973284037421425952204845704688624465047207589859272835880839432354675096242324027685735092161871462269904912870180672052846520043914494007610988385934478518029254140149520278336923594398428318930887167751229390983580515752105390083039635035809451862615339794778987139871438294881879182108694073284771047618253917166475244025461422739188708039916943058851505273449672077227331252054969634978594677885409588167410327540627665527336173429126276144886971780638804654604891874111044040043261492715878271307166640616710689380099056560814490845103372295464446415935141296824147623694618016267754611521004372930398378517644058758815867047424997009689925914258182015707606807145338139227193996611680883752731161744010599738055123874945743016022416440162383295246673781196598815548907318510555404559069724355943468947802529011351566714886678416427301087471683077918437081926576158392199026595253330711954633566463315360648001422316434148865301956880972159536049528571976298756659548404310650836062901867289098644182842434641743360009224474240169901164599518883476653919229376330782030105384981549048344590178819129345221317186887238723483773822302264063500233439299753513823414206749441860559168538422062685136556264763132372329205181505146276273582167945999701503691316089338133747471281345464635153684152061857256714663107942106683352429801855850922457010995522594683363791420927345456220129689050912518395220700711492981963675640272760124779041824834099028289915956978721574635548031720148509262382518358517669507130200320822471624429221429175156500974990273214265378729592360466841275313449118584120931642776054362573307076143951399571117114082367291399765502366270759688813626961420973445357616265273498003414890308524436776651580619773988275852806080122891821345784831309600366046266309687294295623989284913849141923439770100447115886677471447257270275576539491110879599521537148142452878700874516865436740153015317759629544286143703857864306786119994290812769715229011635007076714731479248667590782385872753318304872258898263621539106373719249787940554166304737541700014604841045280333186389857501571239062821843049415485714797197614212228327849891618844300231151339407479800446620441953028344530624548566388976207059402819228194336332562094002368913936251534757857126982359385335637580933841672108693930933067237436572130357611627370434026070990832937852995177325406987989530497325390593693637118632734535880621867537037213676426846074407938014847281258606120935608909819721067323055137310634401082509647415283271248930914494353599271697071766709096060018581405759809088687325642440566581911785496096515246238364091707809292424695189348753738208405041555688364412947085901131636365703536390302173673293674759202994497430583646341481726392166994016621583445966576323308186237013651130753728656358876094557576406200035297165354258781048497280807075686054391719562311346806664000931901682381680901244248340877514445131553219814822623946575843741068837518380409738447299644819500417741844412076832826942238449105992489071976407716860043060481530299483980408539420062953376750429922810878844283691297591112163692014483757861577855718157496844565021811768436528631572416100667111542372345000626772009486203894562168279719608616621280079614748406711720173454707004928519968216259736379136790778211790012355933928081723706067153077174468701651770110753601204185899139254342828951188795826402534005435512696726093765466370527407476903757523338541957913082502891840448949480002108921473769493986924523261216651641500026075491968135355435548665580371299363487073101522424546608678867668392507123038910407633567691923633613410126548124589206596023819401377936510672144073241284185197740911511365322118316713921909151205638789170556485100948950493497259400299519668663802730442862661306583406602839626510603026749745203721676471111790173350840801173438182050266870437102576101245282911443815391057659186716238698549710695787012497150479569665855568881634413950163330816454225756594003830455983656230023495061024501509725910893318772952119063064351779613891168112136378018412251363589543038982163515598666421934561493679678164098888521563562297687149614089032019417039013719988943700622401199922887128789709391801117380973989465822617189775920701856211390781257179858031085556874349488768116582182860938558136902083824917116596657638539682057016023013790553250385555194857221235381897231395192614843009000991686711649049685984156015312574221452303664426037030725744842205577397556013211641642124862853026287229800374690197159014880202580602541245717270930951569238920076883096015095460492021901144316756562424141824218320100343730307507482644031877446270822096445694504324521552052218221198360122344895301417603150832120581133982426101338222096149794630178824068487135822425957428870432265898726546283784793999609469005415192097305588506603046873680507046793323689914218180058588999579509938919254616345803218689108685766797794072103512408819590279212353072105599887273945180371157097239255252301780900738551923376491982133320481391034082237668466190389164235699700638353175305258623308279676836388315554002963441909534783946755960232252730042613909829666628300856288059726509434724810820785048125658314048836697102531746056146102292417134009989737206120532492974577814609980872294049098221466972853889487609710520823980881905915253569995083372825602154610931343481603117610680457832335808000083816371558619685714932339042278574791202584258550990122746874213031224395975164852802112428395173483340115586594707721745507296664860116705219226347014218289293569676656781547186287088976580626364908651535844728935771231102472766797886614861476047833789304788548523344750884538211955131359103253063863397141359334573594751304759713104836008261799327188284679704327006314989883552494022273140665132142258931713260666690504884548514712645546642846510948358266973565421683370687854738664540419947912466261123473390915082427139579923863435422844407499725548037898786792193336641446081079303771647825331672346187884676081697198147094237325081085573056713444319115161186885950750264847329457535301374733596539701503324338400518247900551118236463126464226879709992008641102189895412724891611383813285662433213234216968970924482453418361495732186103057292118810642127737810635498281521460834050624734046068046980707773141729513579646785388030521855530394404980865572490473638152187978320861657670450899520626209499175650112850783285982732235541577420821406899741540472382732501882123030092908824706720020974826094580632290570306018848991680719855431431261300731611130964092456039407149969629410440142249114879334061436760250583375247447759434883745166501417118620577565042350606397726398279982307999202026739588901609279336884580400028351375968263479616908053473455356447137090141114072082434036640049950050859080949557753689106590889379990298660851606091320515683447191107028927437074062944599157854211755429345398013408874854447903782186056149207832422792443361137384664007530610651176665324060584380225263549066335955322191573923122193790484441607276960741412806955214490599566312742478596193043344870261184000464327066968279683280630337851323732258245482995429981485205606485495663391170414947752234745551330576706732008137890078061662464619946776956588734167347744576570127303426610005208588175585547691032844435636140413350676469712181088245831973778683312152914565152991739440572602726617246977400425042286458564288513351661600257191894050891038282596182140793893538707626675378124804744924155805115131400037818400380429119405723621911375139914470273342552343226855868635950329843102357713051473409413162629253790859188947816313552116621293066965706282677321617567471692670352318005115092800977006777963852571113480314876386627702666751692408088080371288418870984260256934538934927202855997395396969228558213840780722030232157636651879386423807551837181423397815513762566418572720151782112304961280875774246139148584476482498030214264332785617369543031279926411798881739912301865968356179799603895530475170173894643811381882649878339207373469321405012432395575875487024117289498917441390836506934833818149903271681823661737510700930891153481596426010930196881690153172739334528588357454972453295249790723365148335436916112452071289793495530269311835814825696951021555503136466032440280797928309673885081611447798747884679369968033406847145710314957272998022186290143985301022704691500513331924408696031559769671657637177013611433786927004373512864794985490461410675385610320964022777027357382711823876523813838482588018437082671967871590332664185954180870488445106543057395944955215846811717639362977658101728175155639972326298451404701139592460424458909455290039001956987600927880094336024135275082416216756259997842043804816987578903291789312659264017322467847675428123575287320118507518388406440423923663855144966671876810142586830383389531839856570855439804811456691972222855797314418233825950719400050193833801298477200268687595342294598709979532531327929113249524590786877727987908803644963750909757154971947071334038983847620150668891130119128270323760012580950950966279354505041820880265293703884030043509367465078430163673462387629729958553245837128606298833066579940142057869680489222147177225950911995702377163038084143978029108486841758936623786616481137040780753890129631871918131113722625593662477433108371447043470254147777737980182542265401221640909761096565795790847748375519104819014110380706823755154996748067727095751096931376062102390740958703144907886295513190771583943972676516041747577218339970575399595398042874799966238735520329064585977780842780735056102089287144144741171630175786906125576647020122505737666640142095841867650844017486913650799225756383593525498812702604414029884688994364652026452363510464290698623270364236367710883764897559452999660172822667821340836367008883673823066882092315848982603438862107244206300682435093062627430318083578030837922790135128610592740790257937482796640222811857993341587921215312980116642782381042173073670720528582875233562853089971305556341621886412854459246097187800157084676946448639473510462071975768964881111113359028887459374668866596817859535890485240694828339487155183039771013028612252133611781601476820189030249842409629204285943139761336291078653889610907985920895066493492519136774713917575641737529661209604396467116936818549959117058531921911209181174357931021963762967420014253226095902918361611588059423146578168460510893588717127685180816142802516381424308218698896988076306081721017708837016173884624602158434549056819317553225584275684063754109978528539785285896846002989269787452131326377821261759885866085116891477113814097789143288244551073882731347216061529895142977378418535354528658662617709273178584912525189110944314408880638866971531765005915032285878057175281380222984268757689449850012206976070821657437901249508308771674848864905472601451506502749193017522975109333808941857513993373758919544308403708626106696189323152353644889584003149108479023976305631894626299149543846006206859247370842273735379748116761891939168847284802013252970492594399731696599792940675539206858135067520042618921183405335961771856979380527382191203307680116664467648180687577666105666230264766741270881154178490449200596938672052553645834939046616288665081527323126832753084404647557254286144842436724877994913786591041406410965226651490521234423380171551991457751180803450173777549459637257942827161141862441391540813676138614219352362152995701584958120675894071344470995652726156217712419065619405207002975077379136242454540802650669210805630160990615922342357438775015104494354543409386848484578101997085154957570928024967391700534695955487559948005012527810765954376384314286961907096756339007001078012271951423038582305705159428017443978627279674093732543721713081030460943919694835729020235161073528496600652429573494281211842507546969982577243254274137181332159933434348844406391257160544309962235913235256072847847118749402639723494092369881365431017181901508501617682454522118763520276443402001755117242592848570355778788020830504908449022786174012769556722263152725828995754662500696676565384041424177672870868433090275091762214738019831865800865079330475372577078296010305434252021911690502435993404823940049513314037286949303742613849381272277406713893258125068858157073219384867674733599094856173629667451283283641359750487436177378158015758508996509158926935843928515644087793015675336037681200490698162028065409567719687765822710370901771799202543187435410200475948242899340485106091254094254857393233140695197740959926615742818241842495024645498855907270707092597304650818876212706594402122436050596667194069707503773572746997953441479499780251331267716407639937105340023048497885636550034125980686508138454815360585194585357516565397762911140073904001107131603771572012540836750501376102793046800213638224146930773997014652000662697482347563891342811928568850046547736373991454044384533958621859528176266353944206282614327343837170915453174409956021885245279356548490849683960650051787695349847909866393969621194002740009853009314699012928188842155207878213695872024316147858632207360775070339254798943023632983492817745516164518280100629050449914504776617103295285085302605467629393545332196715574777293377159494006009345477404343449698021384343488964827027220863488884025890848914038157437308601481416542489040173670869976665108902334860464215927366258281159817575879612809162706185929517543195947467915982587072225765142825904923054297923410509392313584769475882911682706797713960880536142606976374067268374361954107649239753331969240945441518777740197413492923068687440422010067467983740239607824909134654616853214182472333775232396198489681557503269816153029857334659460615460418605010843555056879214007322456262917986270717435441428560716147355205130745051646147817846650680035003579281026850081693035952085811948033876919960988357898010216700905726199371525890150435808870862364755213562691553778379672055014951684405356811892038844893048153182880226068802843413684239093063033114329652183645828703979605991536512195373098121167418727682095330936881822801327724333206492527149837454035776541305845082200571240987691519117112477727172503300453367872790207812933822991198784437957208845588214897560854262557823086646683122582873497792200808844567103159281007068777764073817348839904353389000071216164134428843709316815255330480679116297105676172910866277305926054328038306161667135869192638891449965527870524780921601551123303745329134652548085371568361323118935927587931523457942617115051474112977562018867014981639466405080717291480885981099387129001236051329781215206025982312750107271222004620158179225456140868420329189559665124795862739153707442638120150772185394822797878308534143435746246842290094101631334098401323879917315932890745893447564663899546561253878518449371374847979136159476349163913352942049605137233515826226558410153525829247478365253532329613482767382019862851589087452419929001420375370939316752994594445657355464350971859094602907878066406567931758930977762279226632335332400056611510975683656648731095929371290191718982937292043929018834047837426996954710728395588227282767288979775380688974578336144754567575601478775352562348922132986868345633962117430689975258087653982174182698840459744992363655363932130494507755280785045823970438180042558334884425339544433192392738260071461312914792509147413428267030436880348794331120924321871030310737336151836668448478592354804972813098819369830112019771792062480158210127800555546964413728867350969418764629258116617754348807422339720882749575321981820609773153160793799277666681260039338949643721836273509896819433425831958796084391526410593596687075814723505265651844742679050007592005570074328032502495608279550999727843719422892717645514348605828342563437245933487183423050613886640803870422940930388100463890513573970623099747040944219899706884688845757029862129294976495074476037453769137877293887371810419297478687422504388213728709209746042824247227211056642622671032037622872909351552695283375811749274735977232763134745097883361771700024454215836575376471962018870231600241039990594611362564585228159601980123415611756548267053685869248377950877276732612558827562536565289591716436515732959117727761954444084190135331182955399987976040637214001072493983298714501618816863993310150862282351475007288030276847326390149069728983579489062936668505941034339074172775657016270017135204448352189418578607882586170216393768468796347103802645313289867499977802021382199418442336652630767381612442182018973346068009954721399956861525071813886114161254801233594629540908491215354307278032050175274322190668385606360963862404186402129560142019815754580474003528232516918257395064998489295529781099861170608642702186243028969584923172722751585269591695819196578129591056060916393705337776831252379744047025479526875350491292763829069367441724229403896805824598111075787369187566229534520889537760607618163942374497971657867775476341120218936237088546218820098300494025845061613200220278808864535418830768040138633997273843244774964909776030019404971025303705783927205710474436170614769100777197169228744377549681047083370424407125473804313440426311294344765724306179183485805043124903559270611500931023447050168966207967462370723331121304737912438104945997968125873186219027453524405832566370383603908726832204073673412598155529201416600178156534330496422848221620571574435728786488447398861760752074334977772073322354249158318935373173180040673603865635547157260856318940537956372682255785185781250833866079014623295996079147015215160745534111419236200024109157436090000999074689520327870802064504868755239979547202951690510845083813873194193837068065335197049434544669862373443623783453704768685211701904473063223341910769203730961004793262746191387846056726276756055047791306222180947155957678348143861849161431360864629116083242600655519274650954295613911361784967867213037003293062177772487702578322621877986659116406769554803224039970574109225676812920821504745675026615392001342601789904761092676618549037174630305787051760546704364997416169477630975871965812350708356497442767354804139157186126229297282309969294731169397392095536323787095845065364510149288987893730007277095320671610680692503600192492201263845382581639385769928739229719155583821205228981823337467476225518439869206560680967264793270311822285663364630246037131292537917122978095057767667474902105239212199716627489986673621734161067425959379271270868578837142857905514354671692128808782775199922774680261994365696898791577285529599124548178920432615130446949204012435860692032590383645097550248054136192141713834318639596863805964766702852429948393963478606531434620304293449918954268623882192345708878091403509787141982953965073329894413793196640000138803691780239163838978980018915990388081939021907621916004990509164610068342190301249808308620054152147381004875944017201795078487623362095909630422381235074880042095931398070159369245509224059225052623343374903872776431008422774570745641727471805372113852746722908873272632573269699695456541096187115800286428165602520606936020646440026775981426653062489929441186040338092584206929272298044534960058651497888993284216556444980531841294430730788945531692671117093384890622318867407629367143263196217310784398694939321315317350279476777486169651967646038006288144754864627847405331773715966496466143563216805975938019742002862742960157843284974150771566633338561967423426980800168951754346691531281511273370096463035713422507913698744321135031927509635500618821979791246209020743091760549208102247660217614544220576845914004194946930959845978737613691267707851314088028291762812040464302395002917739603339248985502528632241634927863673940460343399634918902443820373435253338022826478838799816204921634632610222841407078937224244126967868698275923413374071551486028685373531400819073826460618713703286431003834253293192016410045322942188455874613990377551503084346770369068529811037308983187816510478786701046611416703357694300565339440550638088415368138681085569494950876985436555353853910825939395971965483708090964230296639075683508530535710079240875170631195199441251677693729097596034938743886946626770586474606333649592052376290328501804186390434489662985854425927945091368024260831241599710511715570919235184554277523126423899550177746310417649069449207050070205366669550435628090516152960421438628456378500742517107662743555413711102538038315786057599771568471530222293187981325311326822411823814536086308732500719361058515034504965088945449260755408262419989137634491509431214436529253429335361316641284535363257305854439415084219444174457362068915678924423880745138987550960986757827126025723871730027227351373490305725895964478936535634495801063893584426785347323205877839532671962861422582612689331782138616978511438529051927496446393510797619623381138929379614020312301021054395123260600949952259900031266858813777302576750111787025176151468347091044613623587261240299960560268008372317729154442912341453473985933567423190474890531764366798701034975628506734740787978175549687419579551752131302239156507138696934325451854116398179874397034480572271835470727815844209419368524267616434844999588962787601940672360909180871200579210605294043364009938447035163790985886206704831764277301498049648891849546841166187574345538568844305676994660749370585043241705030524932009456131484256465206147587135298944540795940757049113982576267651249165758109060306774641440957607028235223574989135367436407596816743280789512824602455721527445176556747573604696154591698769151649293387471463020539285338526354458088564814699851687186581853033610958002131735463756150060003913598987272328018655867509448596243999469465723529610803901409064531206969868177041028032922481822208498676277118353219244151030271981688948425080453622406223153065916732510850235932520555279814188659934772670774140646295953954879132700832967593955930594565637306004366424692747209196881578670907122151165589894873161901920156390727463881389300449651954660498839220365946227204290538161973200005585166087752854798019230948342036702873149468980594371461516279945324860550722241349753833661103058373652325261679261575951981991986682529438595682881643094448539673294429558549604275965050814503604213579827244891744229171071226304138466806924642000960706165544942402671180198039200766804260080739660426104254877625321390200180812925338530923837692557945098621201767124276961547635381498002168216344712024924427122147983541355262478941371411191580472232465642776648184659927214421031802863346899356824481956957063212416999234276202557443150772742834539653563141885525258814896884389921638600612066272674248866322960752450203491835694886495037073268315833400955469995301974226889675863852161625207477129500178758272810999999913368478981954571478088573305815418218036479983750143637086700189888824216534164124847977646872382617549322730041706780081896711830305623094169213564405723392388272744238305798339928114722324634059287047642250172343548562023992647354759684727044075302252632015294317437282653197951093521933029768476652082025822477715257715712777697071698531537143322230128048441190170230851301917902817161140387622019817711043730041413896030025387972884964016137364975047396763053446341657356086121538506526884483974548327252014954946834281216253215832612447319102798753972159624907942095547283936322012677049411448576427497855525162507884248764891642519647548974824428779916814426670008052088247132032626940400900714524771735112207009653190622474400401223081972781458972130391787981096018828807606974311053656119841926083430647775464423862676233053312352540902763845397551428489247021329961220996647879102738745353725359009793239425141747156327523487428814830192847575016721173249265912880150273236431144731592916746759480044815330386651470811742830672932150213920148856069593353513474552518775468303371048510980556909257720740522848357541901248637463219603971747231255765562624442490366307787114633758405828371867686187369191756173257002569074323930805758640203298346640558185060309547483185394443049976794603751302719707573366467975233970593624018540470058094623574322920995854911339811566567715172195087295353735452347242540289206687423953691477857987045079483558123400256466279218760925061426619083972610895683414777856605734652771775838551053241530118745781147774256086768090329014275691661938830270804002529482795192788540267568033315094415048346860978813218497576867246448183121089565883160816568256598378005122592596709638223604823321453614553130862200695599171898409608883185132939366976617533472734008831543651605479272652401149579075363134073834828559487533477219324273102704612466751507111247702605689500063181250193637833575441685346996182017892314327432101957439284636873953066390646885051859533334729057684451844540139605024025546019528391146426953854790985638266340210268512242171821880397311504329868720647253051907891566687827381756256742246606141110643437883249195452946798455562249526625911959446903803205338935612962359382600767546513170997741139053604359664348890799182824797387005341774028780852982411359941013852988613175507079415007852566105737851575033747030786845139859392890724474383163966612589421912337050571117960061139568692016328103646612794861800317183231867165767026305673000839574648308300795965618071803995868027726679178042872750655177836030573435757895973426727703277241043900982150965844385119205549480850735765878479252343899337394579484867775838715533585747519055181918305887941763896283014830368349674325350908580169330495842369252255532956340249652457298055609156362011527184618124197601114098834145153072736422769542341140948090518935111039223406421488446435359186705944750288719231160261315268167297250623563898050718015320819653474136005136085182249337967337936024910027328186985599145730977434286529142270468386822277468433881599175681087146892549425107047245933956129251441375880589800239855396581867499765824250422855725123655354504295954907775170861512423368134764212902881098630642195790723664161648994681388272691110135563184108919055331554228697947594990012686108028297978367296994388985768933140541673712145929643135283388802336351879112417402010078831008056919220770588126427292965649302870813922887063589038058773440100843250146783575294896895068981860788082405174468944073239678955700634551415774091574792581164235534737456789667516418171714956973740589082262071382935671909544418120765442625859158356059260038038023192018300458860766773119452099120824775136021852391286017988317290827179514838045058677109489100361295799392406751454506160305730699306058423764738092125177514819739477670522444627953017694176721030658027576112770387609542876038534720011586700233977818064715580961850043194644776506545245174275850767432875074290898577993419825746968425930666176959442809230048663107055853381726980783783368766341325069163684613048100325143412603211133637480295246796799182840274018543133098254184127339134414616946240568627791122284988838186258816088465291968397166184040986516635761326476745969241489226993316526533902515686007830390875217453397229642573576938583815505290701329325711536734019811262130407766071053671735886847784408964842360043841780415816468901457157882613501480113903776763523005624441880969961125313511862759266877495257668058439226018306544950464181991263728601066742468645943122199009772409739174108359088963254544985947073470879031051210996077988928748258284273335350304672366271240703615690443571867410602807718518866055196056118002385605873854010855044566403818423255243761110235102804053340468054204423245554392236808986074581121423876250031175622146801151397227633773025432140432010353137415425000656216438996554323024882303850499396945885379783272613973674261065822068304904155490154779613456592119109716909350980756641568825904503371122422838625200266736642138285702971424909562892240895680644601284603454779053539715786449749880186654268415347734852572412952642819863086803525805502270256327938482447119211650648464834810751442214652382389524885668416712724517296564648621648422212095301663340252845477687465119244895135376200384358684319378766581116177786068259697565017731087590138185287337493868405623482307484211350428324823183798503952995053398007801457978753851106796519764489443947432766415439424175691074101382237719353980281847859758706341926412579184840761086568109983217840494484324818297967069223023471284043332457071758277694731708792644878913002346853550391837313487690924281457057692130075123907413435131366682199489782671632335815611261913469142355552912312947595933723958874217042781625761900394302113780787497467367489480168919805329926621809802708633409163460152106391736921497057382618454566855849364783777708189093640632527898602154741759635602386911589749409843359008066428958251185768777622258741036282225801621569426438014583049765751671237826220219274016497590765539005611235618487447685694411540668870617946108757873449095587616367174778636981460033447131639797030646097647403903023179292576072079178743317435025759721329461843199981446864164199213288748694995534356214481690853113090349862153927835657692552164194671811087524943023771047596347256556383734609799424827804120654453319954039027868126073571607356183662465583916187138436816337464872043591835524526847316082285809059532674626805979224321111478298812819318519307795283094520974636700768133581581986751761451683023130809983194884482797727710788202779469221204075941798937056853358585019697171805489456432038689973194317550753949555797651789891610963284946798635736525559352020631551438966249022084546504832647359262671209578284380233536559951020948289627360505217345294708903876953099579471678475248711090189083435938449839739029819526147640856294606657058462366419187441842716973466680233675040215091340955568997939619382678033138312535652577227249938669350531584293654940546206464906287885246988589636016847795393495237844340616115087217392448405021173862183723724918200787585570505648272630303490431245293217102958282999786029733440252862833915987741323808476337388660655495521798301402036938060404217144629224638741040466276477038332929435985649168065772068689272607516251199033681199195044197475577559589812088266067624661941630531903759611818611211470950302805504348163489302430465261645944326894486622735242533520802030954995044058723862587615524165452367276078146217969767550196049941651843883434959556238794708672057732092744298827058885865901074335508910170366797102015656572185830768742579389148904797522441308299774182370436643144621960402774307649851009521308888747881530510198321582485969327748350104414674971671504869829693962203307781550006609379514459875049594593395674357253894220730101306630550338732844538219987200703335153203604660901283302688948754900224206164167210526204034322390175981317525176895924346102916051306240288721441545145378087874574868781267281285021460763281683556747249178652258512607750453335673068272251815212207962112462473306147331689420692748953422582107160861092610928970881729516111634792641037457296297274064225592653891241987517531950515220367328039855374217665161651585485178612914910061369948582991278855304324418359095553160251158148215993693373483086511199054241685294275126844259309311210884351393081409536749656668752452947798394910670387373779829847292712257977210479756399788879108205834895146556757608625356525459372676459000280619068852388655413268190928415195268166926452141029074712792244060858528847164247681558178141608850245202255700301251632273591565426074646976810951544643190956113355035693221165320094237576298160496993145162894930872880021761574707388080227401118546098776660331900021822379863480457416869935062324746376894945693911130104026377328624306255758048134958698904512594903441105284940257704410795774896918929178359470875819505537783032782302984253995684075312901812941160902439467387771444143499131535918452196536810231772043756011675836319966797145132698781102121837768909134784447859560189709014869799848881660839757011907121754280661452929080740475601768938770004521684678047265588446583296704203827021039596851686865339175681449871855063743887483635337169592464277719487526107695530951254627496077928477521894978014564101708011663633313950535696808254419207521136437524562044398662404123483694769403762613065020663615205190874497967780332722246754897863814220024341160064314586024163054804166676816191441166427160516380263260156765300181353588999234697774184786722680600670445766736270674818943181501827682394076741728179345474884768743414072428256567210263398582727678487155442913352123820824781865712561498985564051900153249165756616811627941419743392677835360144593602715333114714722454081691710259660037326982869635077259644466904506028124180536728424563113916216042543538682542557172277107201705856827051056369350279384675142412144473698515020597304317720015135617369799667881403357512866585564733423943834628037339754015862542445340319574171542166827800778017504704830205148234246041917562932459233442645082968558026080771941618665171497599701682489569012392856488731160261396610952863632107589633766937046937830960183722504127480352729625442655687476025683361355362017839524399351420956115627955893699965390178017620956937919973990335706953178925705513556009429047930305929292863641681489380388749130997008705209697587910615499970623645223548221684248709906176351634951065516351291400446054082250812002567382343650959004336360381795773720271332999226261613546761552749178839729332608922935748430324147075067654395135193771535023154337402995095437573953845670604746028799225067700917116274867881969775535801345704994731316956455017956735754399435162976853818244629210063358622928795881088104368231591879907970490219398121769940158187637582381069190076819145912112786064503362643927856362313377004348741154909755818503549449241656131094873672117735141500754826804251454550815773943676815866644900363003894720731027485983373713796371369539072326092433906838101038270128851710550821486966259059066309302916276012546217297228009287228992628094860598192341136397803270267248581304499574793025778584433407177147455874700132882122576466400892862451783564403751169525816771558398036315352931543782537380834264620373738371170218423883500908315460493255025160907057792584336210695923148331672106461638272057646000047957457721496130778937860073055663744857572680066491716196119251085396817724482288617977382804604774993198708356383490583880494839092668543798093750584847612939423218124376744192360036564765256762753385425611484696070285364919614050081926027087568886801724519580442959486178360717448188630729836320574305756953207715597277334649854641590205225897634597398609024968067101174731153827481385180473024902534382886803440878199292694839170262866861186104299140392910789058496930195806549898011063017781395980713647083500536506508824758836322109184192122300450095404054886191515150512949683557496102935316651333560167646303711092718094253822020936819527275146152649417627469140081681070675550456078100520597934324393032628343255601506582990240472967673812125858699265767606369791471336650291083023176671122747492466718649738423236743151973282973227635472188095780417880880632797432857750756261378185335135990922508925321403885340104310175982965192221095694011424986853387737961954506597483563117055043046652255035203827179184274394756385100474660706317578806783312598523718617394326900428363150649015937855924588189678655806457480295130037795411859757524813778521877987768142094637356456019454574240080649556247899808221273262682804211819204847201182359818656242614614890328251682589665465607881635004559750090766587362956981629528965273872845651558125399520000716296735295426026309145854675733691934910977508902103486793805295188440234949152715305522695199516745422671920504493469154577533119488346618061664611148062856443891490297861642985217836512045694828606040432722914579782474265350270913801811283860799050914380771588779867051133550929921866934974748464958692800498105092910195676714346783443767249200947286985103415194888390616870749003989638963798483205116239230091949861856167209205446296792062242723914623132555443289163549700457604439313251530513881864595737893442526607503606226581144092350833111420331070168614112637288845508468577911934544822683533178617581720056954873256217969318743759993403557190824326159377177367363391608223570108693518786958208245714227460983205165934470556556544617339707795526598071771889526331760743700758318019497889834169476770106820223224850946948575374240274856315803813721105497717243399871744543051855875411046841414968067158586406221599734543004111052838546866029364055623761332529880510275601309645067261818993921442660198431531417779397533349881405126596990374985206505408132403101890968508250234441106523453078691680669156518849545282671089599133723510889409677979360854214403087664937114173178118417813715110188212636489479828982123469556844781967133898296080459414949181131966772010290406303660778032976083355309149257520336965391231297684791467045923386479965448996287746018152409554579538324399813556527571510549828977236526433426438724681027595200785485825970087528017105481859329917694671374616947751536583223908825459141316753771090256893002101052676549397266591487559884236971634211410543474087932307873592758676035357438785844913071203622429782813335256154177691500445556731325628025771905731574564908800926659979986163910423882712661462113335544344794345999879224961819105045204794045468254841140413840989823904038062062067638563949324758755613673944325817467091995336885143373511400521407879638717833706101890984561671993642079755847539811156856437582409617753292802603084594871021191472041748364775852380545708300379747881321233526392441234688053265660202302996487898858523059903261750046879141599844588530553057702670660754656124153716400178298761291809860910202400494210013236839594887922326726897455027806703453349001806956813343010157578792635707699533838024487267192069241070962254310966199009527249940574015124253133450676995723934320395788148750476557409068063161883005344354062695149702153100212539294816073173100914862270493735846770444782129209059512293174643594462793545635437928270283073654447741427072223082705741666263783520255415725255817360914122500958031104663286780621185917124944436014396341543984582582636257439623330201561353400524052310158891576830130034799074012378148474390918306658148147536663778823506088097658275971987315037535961455013785976541119772064384398352188722438835312725498280271471691520500233024590629537862269278606555173538603137932002798976819285768879117076025777216884993768832144795130634013379025835304069513824524042040225847739338504074178909303278256491245270230384320671645910821718310418721423830921550306942964460629680087313515266006960721050352212524985105692149893358140478142848564538885267454867059490378672122241755624664632694278983236335776934811087947769816167459325369470127618173785620110615876173269166010938976645518821387956759007751966196235169632614671968775746224216367835234580180905331813363968921495675368623872219517685487169890253060319899544898710071046543479056221224100122327518255531884859890311107307088581526826713808167645422795604636750686796531039775354202886014539456433542073316961107585104309023879605777356152841824225875697705273724564872602913512162517088790981972506883113920801907365910419262807597512501855847132806868834792902697726954463378318555222044284045287105803022033874223252622073525234447265790136937730311213069166122177124127642174751264293599472079928652074917825139767619217770495807308423676587696727821884428111711804215655897523249017053253202453137460009571884508549005910171706467242342826836964673127276789463867114971870208141300105318154550773857850588529600750108081904906136608632822023384009299694828986198900438308299063594603231573583257612930810232370727462902423284446221250044495982379576486406567922226214375292182945509075701890567370466794202860884302343121192088337065688624619323675577072202505372901359623323235339378374698886295290573424559366998284261170045427514591115880050625202730695022590137954771169497070260385292480456661477690165765968596072688753176600087629152957712573936561688443804606262043710184892879778661962987560017479816816635685019001567865157979753830914538500146804015556271301532372971005090505515173535068852249868720443993764488955967099767370040725783715082424574939842958956435758427773543179631292975276627489909498368878489178106963052123671204307555414917916867936918479657176234289504287063234147203028141145052505038873995449817914856101586184661158434504055850482994912873716185898918439754934647012274705537332522972227748175714903710654577648679038112959851866091954266825093181546727737177288806166802439147837374893913126918661720825636235252108422300809169290855108359086966631780087999023801776723344455404283158854247636655169284023654261273609208770580235656784468296134264399104069863518832866580435941227989133119920232369234232699611890558121401812458183826579799777636511610907425548217291354175890672551673748116191666455389546527391654234977579738821613219437820765268872006288633277849955259899878297565742348925223972619934919224930775708030617786138537948309346034111299955222788337603401835084316198464148183774843639250881481876220528118699121694396659916851986297248349083021663977598499202335017199825463583225604747820374959620234825438481876210745722410624584290113986177244743208390349648615787427907685397446991408396926489541303090280120260728971656265424946887752944792400687219316302175281201006471945722339175041533813055075983139942717759182573829265602031249745449346888881139644127329445434938573591797998880435520157907272713410559855606044553571414925486641138355967873642442519016646414527459582048185102524644374784242040090789241638243134273963483596414071416791240738859155932219196462495539902273882214963482577150342179793357939771661789981752227266506242229354219640010359192690734584108002560598589932318433249690101816896988008724459921815151490725330559477918549219493672442614271144026155646635662961594996550632060816729284106088065488487251498931075768742356939199077387939638189255062480161873390174806846333244551237665830936379351160209470053902906117408924643660891713377391014104463118450248418815552590393606201138289646014944886240366925819237941565143957951117986130580202148411286420445427186923982920530144511223036781093696943867188149051086351063165875491859122439863652524219920174579983439349053247227927308740591398799148624051810519498436054139543758987247789886899147970888955053812909275366485466287020479480811382403978105584259022982260111586788729407597184257052073954979205190343183727518077390993461093152574404108530892981847923582263155614446313651967081753618357676271204341287166351550111993055819890327809594300950411166693753029895532349204787383827243663425291508061472886863350745560789864048682573031326951871830177371947453451865228021347494752475296126536094828556072469021914734058017650406063390153503673082321434549358151185519789790989669557447206569709321311073566459111662226365228497885826993761363807501242152387132500466676847192312612822511803972821987380356426326598788465599414462584839161627394272342086675596005558996311251829883931846687982211858693311352908777463636622965886167567263084963813323301895901945834824512711411130141402874488031092118801940557336466604832883158901713531026629203397393863654323535040974269245689910062384294068460371447104249136071005350819961336128245528323455908967618529274780134877794769560578319970825477322129181500589564787836938165126981187956549388452351328931515052563581960040438140943019209540949898537841473707183635246589626114079922009311446996311616586973434150068759825829346358084965356903086288620229839466929168438367723916621455744178220078558403478391189335699923689806967250248831197637810576868454069074512225759230783770995770143597860855697392279388022989773106490641854058244459586020042092209367277820584024094807597160382818038255175022255171339216609007867020632245984986361187636394280318404681925043295196358142511794790621538331156888974320049670750843490334892001752171210543930186553526545461912932912021786576633061768072249438827411889039086034089745813493711424419159160094435437237889074158281863070908319262525028176196422676276278741820756236728586144875244683104570182929445537758356667223623809911089935444054210997917955046261749568170565642053768610084604619112074644981965272277297366126954099653142750654593838001063001487021941884138059738879286892799162889119024278319223038203596468333222854468197400290780395746628903078412661731183813866041771427247587953982295109752798776365245432995958613819039176106710641993135759600505043195069465702658961810217743677976872489100769260946428746678092805173336766471028354055162241806308581988044141972195976194285801718240157124037108763393211441562687065139970639281094718665387494449808656116411149574865838398371548856482364224732752816067237086788166458149017763382105599817974010487911051565155208895265884953599143461959308198843656748496492265522125766397281011251032167102473404620440527599814335497722058701060976535371307168037451652445753047787666766077798253080400856549525018972247386926102797905587251756712740895685800171966565174901764589019128867454248335985284206902523807750862035145836117751486435149981671186684655697927973896246808061028092593385873701645615292375552687244005090882942473769432980615643897929277728806558714953787385483876435183483137025328805771287250148420978368460637891333025723296450536840975303281580105473355920658308251232060917123316301364412341658723522642067803474121979885711648702250450980178056438559422779884591923337398773748039802371673456109371500020899640920157195870409892081498464162079788583593732259789069176183967703774157816724563111823234447275128303292352124067204117750860404855758515135746380024416425691926067945932841535708721118022874184239289678877219740304310130014645666584119391077397642507678554246328874821566632095492743978630913545035192511675894370172417052090826395458895786571138198538386982377353694640604930957589767888258643781060613227085244712930455166508171163034800528796505659297546428734398574474828683600363520937294552733052441671930214634140621372543680654706706557242599275495654431402497474016265042530314604487697308937207400079348295274122836744380106200005119945107322834571723320057535363387932133702620980610971771264766129646932967338810331680070784866277255852795188688259120136891302107784475834221510481971388803568794690434634484899925938232958460069093290705113768151651762416659011173767476389439092752083549036732908041630504659575460152407206682716599736597049417712656494194317672904341215144232076970235292627345845808541050281112967358289738323948547036898146778118459487593020147022759324910366517768457741077636581462120147715473538836114977757750773401745937273141618551521906220964036239731884990169491374487337825303003979844471094386399416706660486417906341328251014123172803465670606968271661102244527600692077833983389490576783142330885042561730111547290012014519115384955072663068575781931094284294916943002023930990763163084568812899554279105618172443349060757152322909293019301913698321195260568194112577930015008431270675894599323418833682403315965970303181025078083781020126150443973490525229052311314365679870434326735033470501412461418785622988705455825089588964998436557263817925818128116605292609497088455005208472398975282787991232020754133863163264459427266394606615640244295665513976839484716083558215332761964375765352154687942740978046032114610538815423268321432764020093781148051776282004901176318268121841656233734616457679465047382413635940412482903211836269637211020404405731973057687061494835265787847608682923599758669447428912236919322909847796228025187467628361273580369230745639778291352378179459386852328439620634634139259922142369828695523227441358917470764033595384259136814186154442571517303713475454930955552629916364959372489201582596461450262362741769723185031698249295859898673154856149686614488793344948871775727048059115546189008744822501972541582825122047735524248357826971336363967607823014083177662863525255779112303523555748862258406903624540517895706942366229406594885468498498030932212039363751251283516960064274108402540305455799187106333372659320720058389529542193776287141478634031457307903212829467373830763012760999519373242041129078988258938766140110038217469563617875935046180519724543888888445885749272061182528184929517984317606128966454911931564154607882019363038240049662008470823918536895929060079571913568200426298014180671795983717515405483147547428859451927968957987248695741467546159022244218072950097822963285532509239823653220960266082206952429040651674322783398552083927576868336250722872260834615869809312278519929963842800354193934362411144557418011828883501793822439043539701037278637333127309706953872711129461689543945823869977824020572230823553138041513501753194353005756196136072789698017972875208273721791691347652751506555368813518714218018558188510694118975421437397304209707007486965865863667010823587328640091949820448769436436322145276476960560674211750675654647164016560870545086714159275286373704969903598914145723218948818134773201066154365899155120506706398590470802299588373336887422543481397371377379749404661422329630846567071539099175134323959402039562011878964996286692102037912202431215714419718628037199153130853235898563173353859301766710534570024369146525435184057481259016594268363981588391041298569712204885870927835708988589402890223255376992947073934504798519248945007055679565921811382963445145589209793486518646680856094259945930040918253802998128923231949793686179446971330190030689323068254896379425996905409315110549913780784415404321399582952322726649998541856300359308752041794823166616748213700935267213616783796128922945613016851437850329316746654884252080765938813459936911002085352586700688968728860811690814490685645701456617441236122565958009600375762851565896046152596222869258527765800286974413651250300332130653235940263661074855397980768570250980970993747995014746625877143658032640976006385326064344155072394751078622244445068491886345470561201043488087284702409776660058755579239184453811038575356636621279774783662968509242888269580946148064777111039443775207554835849679921297622060229771380193609020076514277656188699991164669379012451547502754586161814545073062043664908230228801194847734391015309853992768948816437258886913007987529707847842433281636953862448010578297228895583721892569526773356335396345991078594783968278403960474785421557835417127770793891054629873046025416498092024819963785021055248704246962363975875602744683909289966075062942751983102972293277041359459866542674491667424050825274760867639956561299625270239356610900628340472844020461529104305472799641949354270089155207568909478573474163809686698189291763159577496289334956060710345804800423992296146164291173221688439869293091437158082264642022406373137136507964880303297841270837107080456673815453382639844698393111693110062114936923830663759562203274741852422906253467641705643322720541484956288881089087137757691554018931392470382532082984480561615272681538908223494127566955570039757808747872780609505268258191714250620444985722500795166483620365599981187048412166170805520558830495934408987298517166869183611330338479425747351074198745645766320470684480972035131402223001058957808124830080786845177819942590075506315270627361109132143758144634277277752508121893206639030918245315672171834849152553918043989011231695425183005061990229761417638072118204543334496345017789857785438061440962066120913359063776840524431817255855859640875733893189506300092155764841852365010057036593064809195767336381133414467099015949284594146625415950349063720601794531702883750090628024160181213987884360891805900225322013610193128902127518839020869988233527062968342403810392174608963330046286237552994455169135469943604351677441357963091671123074607375252367578818284856309087151725999297311186818588415043660949650193454124205869585555954354655216287878325640725311105327623478739317943488198051842979558254133084156566395320042427310042384175683613062804765287781081125639167583998636921116210065182856087434511123964239122709424649137419615705887672126995568795970457424449856132531500301534525868214703833145085786120585278066647720777375480468771057946732199923206167687618588818497604636496703118549217907202228538756201354258543456400856765379189688236299081489408280816147243975275799951294415209252308603767351701796031512105439787479634835241038439652843361665674558843326976161442291207890046406883572429876719281149022339034062480971555872104720762230504449423276160613826167947866426857667681592404784726432914153818906573970837109615726764987203432256653031900291566995135004694598459327006718793754893006215549591337494868200430930269662667673065736070968342197949671994977302390972503518943001832137895942124561766411615171481869400142727414767741212884742967924635610235903041352363413593662734142878849115605759294671929605557484054828612186358346830855212858412348021445230561485263817586643666950763976370348684430855394673203653278800589626888977599887735937851853917924466220953435503068289200732177584100606558097852233810398549056789355602648833398234797354197930771755911796569430522494360737067416448634961565308423268412463087875347506736686681649166288054916220789241905667772366306022319260232504145364177440573718142093716254403795924004305819614428452180271368780818841787756286610226543661007022064518462276663768352126256909338674119102872149945585859164539244360665936843790253440445921844322756101977715736535160196434487771502025547581145867005246819726930854849700778569218261224994192517048430660568476228367760139837715780732452079715490054483501193040083487918550859426050669078046673022892249047190710344951532305964882030569200587824194997492529155515223741960990848928435455717237193842962927697266206645676749406311455991024791383204973075778973980221573178848633039846539068577527478304117987841850450148493439609443509787773530433123084204460782575038843956724360219752447768659201780424464218329008988470946421358972783840953566083851935711879686940496661476149361764939812609614776647954689760595887455555498278052311665093574115862431187578134971759050925465356407999403561680999683236643567503893299698738180900894499154890241773182386177667327342812125737496437034714560593769545298909397034408349700836841883010890326124542680427026051340072362371195360373901572906868481152762209314333820082692567439650043695971287650938548359055568763373928540247199787572091158402073107538216415857020928951500970455772398885364408529467477148072925278340033933342391987452666896005737279521090420528538185054705389411572898611886566195720094271078662440224298899242443619013455278660774651825745724883177479910400679266548731840301781659604709969129319856173978014845206225780953032444047290948248302265969083337985641393386621975090900548510621210474271993778789138834438924633142920862681776427385966686174778530659532882907305529008999163094949532754143380280158761606070355703067347457373204810051234555834769927117371682371501735128696710176855355289958952165840004668376615605114007285680724154975701431137992942407912389570605211875277511647152438246596262201309710857772902199413705067151735806089953149852708657154220113704796838171442737527006517069220824638919470065494861322988086342098079618121322946942032982045637562522008163345977723179997782113663282050305166440809504423604179851782796101376669434431092765959389266370249570579317497652093378054645258568083443230393584323882821934948646292568824161041774215126810226681414710074487118380424715518423188362044175833040416034351808292925875987679222686953376488014257196408820164034224410529197691165783755265937669596159070491151795720687317945625062182657088400916797413027540273106403801363047916485851917051925975092820267743304754393185451017086253459409579182841467136819384316939009435338094605938703643477115784309381277841526292191152681340078326923620683288940927216398203827234498940733823245074601280084326590734601880488134874673410374691813043294391931603557217146226491968098729774703521729301728772214281211983075801541036364146589259136883494486852342913805474962014085254078459558568952125242206392070780371102844349862778348112908510996440068305284142795253452721589476837057509525710062232974564787683024128459328630588730706732070244788561865739285152201275467363081065273490843807744903206970094643491478177073351576972815120825547590086949927821989048506395219940222359771793387157356768300170720322811898265432515111743144941328270244748884600527183911093834101818790502603970538520902442869327403469699661529065656526299423599470118822180346188545993907468332198492478345576356279591145905058515027860023519494310824059343549451522427087527981023753571094412250281088586443508485397254759378156648861779935193168668351596626240299539742121005855147317542189821523904297638224377859401438943939112147337009649316603688170997403159110414257793177050478945223449892081463834039693087906312726571572916286930051298297732920716257734009843021060502964366551747075870426521650885968889790114920289424717295434776159268230358190438478593455660339250893610976633630997250032199562988589149753018519838897640884383785266369549220263033775818456302261870535217963336777918816401058121351621972696438811998449083107852113491843903251257373497069976983359830836465628856153026849572633919401519008320156292533571047783763816501185177661641495244622985811060276354697500349558734074894748510822588276137861911794832513418488107696814145099847667970850135556154270086829074780640057196603195951792064617662029643043324547382486638233705594849156209741226721875100791373847667172611800000891983869538245665580868003793574121978920585661682313595165757030100700181133996828717460184625960652822320974910778511245626285467345729085412851378467112748070133893590645344146600403873419208659400105548632022585415093017740578383924330538625314881049949268362601268662739782800301083548324604712809579280114836111084307132171642179304404864417027192713467371283643714488746928835528235839798791434250857637106042487125810154255464248583871299064338296987759545196292549230390120459812198281269282506524769547258099530752205165628719241970374738540707780788438961843927068417870203957176522749511469443920794750107971178691424886895328425937445529695041274010858507407904481916363085285300153888737744584819251370351906915248529634555657248108222024634776055325343870582460164056795636294387819216905109875923182553106696255120831351990994608806068465835218339623951524252304097554903952185511061548922269882704431485695352449463800340716325632426974200460983938433780584209319036960409100400240872304004298903364652859541448541220328317113570211491849650631373454589864180144699524499057351262041085131752193402980994767266039607628268772860294305005083989897954801446737967870656633633458159322196556723299174998950265990313288808970524534669201361081355473730333769720946633485360298302127927774926750890507816110837988534033448634996079403162516268920592263232831657249281776995297247454359129623489147127558687517249649026589549366296938773978943703100172898388430160143488957235871693831915575895486725620742170746338374151665355180630884202582570354616074884100667459289695512939561837933846803118785261654536043420502108935304644611244536774979062482102451481747726455407113565263449141748700286168250135008274891331381345712721469380964286621190430258647855528008006540637095283977138615964898590685543057144485354761984070582385636828830058872035079963029827399260027447021261711832564492515097802456855347438646797121362044858482052913745298198724211819690751271745453009171788347912378625544365962503454819471466096617811587409927174157601956033790761867620981219943908771221352947855953393447518378487279482429989311701119069403433667170934579503400071082822456862073339915091842969944720932995433428879216424635636292909803751930563701858369132222884171071411618522015634913777283601181956490930766711081451266044703255373326659614075597159628839363840337879581749691989199114240060954539406813752911920740497630934004981674986128868478469722058512047299828163260914148117786490356671906442652104530283362884836805862736234132017590785036601422557301229647739319426857899587045169513953468556114697219871617507076087479725971362612369309592466043086521030500707145362101051635425741711531542241652261758343308770972468529212637733418970700310321152375567205021131222992790846628589278256269128295196036723881684530434782471950601561058569011017902887671475277380159780343949911620804723542724520923865006472562310370998802110870000204429825899129149759729800885168989447944819446439817009345563212944120545245905276503953432790834566446874794419072160897828057802243498023769165999336662132800482698304213331582226814675955430272064460929766347032902729009039160174566886579662461985830942895201682143599279745135223951090990525757463834225861254302994949012091241161122109367790401643181409044606714058009145468402355169280743853503268544315294254218797007607114514990029876175112030986012911532234373488085465522631412742632389708962815720760950109989680500447861792637551875702022588513715591668082744297562058016726903297863292594763029895561910139288258180485211899997907491643641930605267605211435432059685418745026222160659488003007981865425594998546285206441718142025738983285680829958408683722367519646333348154746928147723422432162997694968952472483632728618421120030521543589223210278456832277233867117244922532549015607578108993975323332389291690048758904965016107207678018286445598195407881326783192264578753523229641751388867835708447247431155691628184664148272841213212307189502842563493163794438915137323035275868048363576758318956892570174091301180753576883912221977730788830244617170975874163331408983716313745665497375317131938849498742094150637562157398845863978229933613754292050225828617344013765764497411829103885989984399185943480462279044298351987284228226653137046960356058355475202346182731313882010546158012532140215859269046006534564921320041811690749146083742584907238539660891251329787864741814416762476770237384732280287416738792295340163330270104725483075867322834905166704354749202456173906920790256868765637121743644557761460101421555149062722312587591723689916671346096377375684411224196914100375900930874455472617663964932233188877977424096790684610524311254240897451560356955349240597294231206578336911274819970554332317645272767906699312075314410017454580227857067268756163841022185254804100868329181024067711532400116142980480004635995087257818752835669418987278183976964656840878644588682605036779223528540458056270032182070264957760560556009142569904142008040259621144078540377958819802267764472733019088130503786963875550228827227569793858888039885561880322813450285889746875383714891526604447463439969399214513487804356667595090595916654081940966755249423483606229853033442220698847819941078969853816551866977416441580424381792159345178566506827608415592493379267639131498070187174700273150567546604383403043877475051997988561610619535485288043973586532114500045644505711834804272583247214641131982566842852643410116834870666698096297298644205906603802016368174875889829287951341150669277572166688795157751095717544224612762805299814055311328953458750983188921372785619133498252522242377442055543647507180566377336600137689788473147542456851648452334904736068950246725362344524085853905996424488474832293713551912065889331321033650542271688071201319381940012327919659196365251733393172590726537930365609132666857075056839280584877926450842840428524227039515898162356690935216730146306069675235625695363282596013610634860712576596709037980291670383732231311498311680008512868813329816347846832118744991770884207809234679905917450310013178710649299086587891735317676615487187505408858670435965938746434508189493032977029117034061490868789915045617204926150529143498497958095345245785780483591559001514408160276248253562495835770039003441673225626769077730795828976345633477908299640586098901270202788594583532806965704813870636715374481157100750130721442158693225412914022598558922744301374765692650755879202487277108584522936881276830407868319058757047877555546774497863812256157947497520911557059055519018086907998308120951094613685485759374541979972544875220066384376280356424108196185759647921570025067641255583800783014316060753434717222178888978154537736216170891796905909001950263089201970912248109371957200131310770711111248453267552300326834685088612343945245610875356989921123647195126242661697209504483275381085543990302978485345269439901428159717586232426620017542541346910453803048902765355351904578596495778713357720852543600610582977875683874077488268562195140987950345752820237744653889640851299724188523382161654490123176477705594045826580095536205137574639573524192193500194848804614427555644202332805088903340572374403484166679591038967737032100842970178722549046869527681275091559312487947804260995050637496480477790316043256367334337767666523191368845835866688918845970761277100313557538428145452090583032603302558717033124246004474044719789114828738405724450390479615326586680976716855940697688772026655424940359657323189528975378516626243658689649440329961417923123021279472189343585346668450254869411874274848456317451753111210981307436640155434898663165024510714464126119050256786320580677238381970567767217257050333105017393268400816716377821192688762829991550655730456332770458821400661827523562379932933625067164728063916022663370951149568452953895588442739940186862169182798288242900014823873956769320757851936178571668326965678764640906955978341768449548842167705741168400272453106557275193858644926768721898445555676882606471930079884165548166133333511179573250934391873147324486523299610226037021918585690408010721966185676105097134609226503247940274236838595898933260436597478633181639825747846579051120965517263900426590237646279472475956324971654041319571905587971774270172455608174365350590096317305417256529720230205193136829701743520514072852411680239949699220594347339517881192460577228180622072454380496585888928958337894501787265482149525444538340168852595199094343242456553056765669137425876466420218070630679749945817274897843408663384774341409016917644086556862619277917563583506963200238489084804454376892753834379464128907696667110296922110763798922098364991678127422272242710093050676283917283026975894222020382441840174068924801482395246791439282227057367931425224654687510162731919144633346922807492835400341632171205280730563040923598949147231362690856745872282365650260333803318790845645133284909944148056058113990454681014844231183135191803518900550954956471883237865877624803080736739482886037489869075440515573459847532271510663736969184049511736356032449259187748563360729467213431749735362341338934210922443354794023019842118311571913460304408132330130790440106873651306738363684771993091848491647636125879959143066610445291678690303392445357168336588607194812835840252969844727763651962489206188360946254716714374523647515279637868956120295530679318472245575483172506797837569447423396445430556060153423388546286931877039981538191391938733672369055134763510130874257311093047614303542773460261119694616795974030898912000503992216965589850696242037080713311025686392537255417036383437510920418279430642520495153202621088833811788596779306579922207459282497179942136416588624913423872096590136889878125332228743610995142511027431293768991936341843170346662364025546288204385807349013221027534130138375566947865304858535261933890711327184834190733824003603112124057989385080889218979164610334576875604745155512051958469389496866971672410503617354853061899041355711931239885866857250226722161379694383125838580662469932827712730866207996346735529407352581175247602531107504569456101883564505855283925010971809170934032790440080918576344024585357623380560995749415055941782583564830200730005494154587002399563832847486396877635024645980738875228476046251839018878577380943618416989588946384470694965946504320670659675270781743449638303921130358210008147155932812787151445789294292333005125742028563706132363422528421039906040515181964062009761737578672724566528354464094440338658195222972313294745629321213968337345446576784855192219315854052150405236050251176329982218899265083862975954387676086945358954273576686149498292715485628235226664461630326698062662676982044609855017781295651189102143889373655661270889626117735592225667155549442731151121785371584943107868804960664891795761369889830822886156905176311524896402276839829321657078757267051943596212676115569504917728017561719606877340494816264620827646039875451260528354644191538030880802831717193244086071728828449837849952437174342271050932504376855296436006604163506747099073345626786235091896588528888000806327489123438234611890681260681765392662826050541715968684992756055328540097012455150121665592619989666826065253196008358716954680171013697570951868323677895125510427983721726296117814029635900797086728453541262699971552067293972819015851573627080330664513312759183914511322717215322317553608441475876583283379229869965056919039653591792539093045432140036719801244179884584219968768464449223525881024798218954665160244110789310833256942397386071048413661356055185118154970232592877398936128553209774609691328339487747128966966112296918172345227434995610354441740250300368533732835362936040715470531394735381014680998803041789935054287988003846527092764429882386770499798835870324351838279708976053271689367656086898496296342697644199830665098330106538670485697642689887941569825496135200288293385144667491364377626720280736629796652856922068011032228977220018222441159505224631866982423873428981179428286709988328851702326695465659914633398369508045316656518817363140700111337139772151614966594838121378716514128354952781320857715926187659256942745908523918155171700576819085990118955983236458680697979904117949689415053984267164046284259881973205373570507381140485147404408358548000456857898752757106814339672859984332762372220897749370423428867611903998988397703352680009089803772736420774614665108171871563565511853121885195723941105814104495504080365793653166340553984379675807362506014197280788126544750349320772579212870328674584065307304509705383075267099778172715159322634778630121512612435052377944708675114519466725723538782165398682858422800097894674905733354643210358824105502992145648524599919177863329259853834047676129618867360570132075486294191747316863150198255958644964846913273418431380438741777886218842670761293980036570026861625401528437688643005137231894003477825206433857482871260101767593059933705335090411288674149888267279872963508483483046504261116148700074904495502381539708216186064420594018220500449411879704666795967767463582790929040597167656425332506946605439696919799535488941436401204039730133938964149792447518040209834856672524212745491514344677198336153293660344672693877380810954682725431541983139704454458809079709523167299718839045449183790543237798401525184853283878084673492305705345926653627300433749216926427710570357983101468294974703315816648159496629323122914010367376328547006934083097211898439102480812608972126123516253852885735471313403625925114253964833478386785397354372017352141186473660664197940354144279541124046949228897987039235531986143632891144859256706998488917403281598739407225400144771954705836080379323157905625905321411913552728660531638031971642345578762121768816144919011955954767518198213939838923922872002985437681899778078204172740212283818513567704350405574539339246525161540581173643535968022020797372219878069250460565418957777749524665121266445560066101591625674860368569007275936727725469067883938993386107304664486227652062839876432950885789085518092880476007990629088535717074768202730917352416563751619810793403677351442241347726648790354042098068002768828264729056689913698004087028155382969983451617269768488760309419155267554343877645010531862186472448800470997396553321833167643141335197556926132601371955002018725919875496287319674058282058931946733718347348870405035345908345529408518816922889469414082725278636374191900282841676763570417637862271943048650436270763699044227942852307216071305665239743434151593408144452676904007384688135670462601715188182974664387217089460064363086248214112194286135501285511065462501684380754258193332941242780840414123308347149459705854794103616359384203235627113420446166108765619699164135583089465907382043138887068787831685821783662093409311604708755890911178284375473057428086079586883465090019748959223755108897044660108089487579168939372519968374643728044820164071022569218110127816536592161071795502324832735537485889542230629758593292120580097827577299490921538768453036395114761084749527295909555770619933670399151902878769257346812209390526265445961176318843816536278852482377668239447741097206759851761920686105941596043333686648770857907864155675211958879947285817400617896288906329617479982684016700237301603854451596027198698850032475798531663336473509477246751852027506324009669019869982616413095067697500000653579429894633332760212035893508377262905076752321763399029278148541228842843146820472738521837337509810716920165297872921011054569875305950084668076955714303776919010256172066336677707338830528808344891994151036376004782928270801191477306708017313352528891023629088775000282022411627450474869974974953980506515770927330663783468860003948317960989109562698037592854517558482276211733716377555024133896585834716972755470963076358226736153674466644516109059648902522648489603405282991829929718227774582538114379933491413564261015900288825236503281539662982710068257965924585094127392401987158619860512857357732646880740269312998946567453186971706530736613963952962727725448934039832167394441528910312387227934372393963123883100097888780428479461422652057365699976741069952231546528345384371051531387009742332638118398735365453747446685512360725977892325354096234315184198404808957066361249182567227434396118982026320064706820613204490363464165963804199510725888943174092453839863204192774715411640147354682226629439313593368689314651712011092307585175853870522857759863483104622799053634505308873198006119963593202548949630019152429503363643994450844282080119860029160179028216245399196803586025048320994436425316045953095050542472345549017077746791105325843205056375589637628637721275302467404674220949029488830281843556440163002886639449552076019039742284628111713050864798131431689880998442192818216182255726061133191105839149157586745424869186247336646865653014775084874093601574109428995421738566439970009625298232884224365658683378259269252734671043393042398992547863631593856484633525228083124351554630440854494863896849282001191182816673755631733614773010528695376575552996170594356504081766971943808855761301720299164673919105119335996850467226911468180333994110689320760035738158452007672127476197707687773399300411499537461795915681917889646404142040189316098363272421041814467019242855751080029048412106605604598259727817003164654281156431056524323501158419800894751317358869197994128953815753619512661786882844988993000570811930995729283690754808851289913255994174540885766026347587554568444678761852834610538941561581300713163038387587482873836483203034601715492128368301288899133912775501816677079314074127852985652168887983778705722234299684857028732709249944990851794162087551484901634218473989915542402721823219838718029170057963778223163899582287595998568634459664451329704255273074847709233786084146417580666569927508279025052991870114270714918272379395733873090333392913854815065433332551635824178395291044201826519183711948042886612957684751743068526607712979328471674561937140316409274237735187982348651778342686481150909362093738055131671813116305651065260884300850774254739202345682865004097053895986592722397842547889563267029060340841119381905024606298250311481650151570421109899464149986206467993952593992483442990690454639325022068835920811426070158447104241330339320425229134814082969772011658153617595376702148550022910645446730765013840812666004450569671611936229685018271301618169938784700259630737014935589474252062954147863477218892023573284126381017694988815295226470222390322058196079372904891625818232064408919359411516681099106244827433345303755252826085301558887785827971830257473987428043437050912184311107719828855183039269251977352024877413566273411046791443736369070548253530312684213835757808937614744918185918365049610592491292984570660315835292038953881788033553974726119877451632529244898903298276677477296943337305396877475033055208127219392611591155352161851154739392590544415966666395475080272354946681169035354696788438791158337135568308746825905027343417669283767532829329028280924242888007260793436167088336634519458790064124337592124384222373403972438050106429452379593145014987597825828633083592370345711687927769984823918352055796096574602819584526576892611272716306673753033237617765652714289648538747463601523580504289064163138636396656730375889773343449380699370952281559082218291196143095533797257060381010593003497976653833007558187196870481391769486135544040437504537496699755399054726145520903427952971361217080654209477231092428933134248263430575551411002842537461380758315391786113260219786597694760229295998049041158757745600822270898237999245581283659071133228687091562049663873511687550911025716126106145833189162078414776082630045589042386984685371872239469351139029220650967900012564915858965874100252375990266871341902234044261813944444648213040885698132147764752381517494170871160904181438056242539177969675119704450219231445056749992170312431333112507741148596306131872416465718105171605601586460586600801718498106704800832029997221942023714495313195200919482127220211280980569697891283094003649464716802895060480833391371783175871524876634256286086883727992542619877240991525220268804833505329448049050247746158492111024534201240748896205644017827933472814399218743244000660553137541512864305551055172672886610869531215283274342147357619473889980061244948901116558722581573276296071987910623476066024415741897083981767664586536775392258806585239732954841098681932714269654835308496372857387516944799628773968967885319751207182982252715025959796517829579907840308541335424689751062340605147058774830933541820260843717215967443206417752540271619305773029700244719748385634096507429621587657005837054352932765472524425162883178463060848375958559317582561272866370806514884117312624122302420372182221557251660325384361423300420096890542375917141254964254107794174221605284366132649087743375457345192732268759010675970983607319294524377872957797799939914465405769968795744261444198504974204159481657174072645242696356033338513562057426600896576379669679120757309817544232753448065491695748492186960416249111328023992035987730795790914596996853507933221044346412581459207254203207037836739028078270394359654082088604527782832748185730227363305400526727362787828458654927254596672901752564655798681768016644684850406192133956301593240052759965444549680608591021153318383880141067272440869080150730361722733159058078049471771789999802362349129843772481959787476769970028334715008311238914845307467909875177575038145066349387331015381073819462404037082521027973711533303748526926866564211380781167379246610883712604202934057483615165749951806867863793778608866487674801318134011509595677261685005032008468696749725395441553050400649589297997802471488285391451629918000010920070623414362657434491577732919996334236642526453414989941653083325066112981274525815588688061215933873768462448289776670366911868808092188827720460113426966972185973774577563207323733583433638593001937842766722288904468085106570703542774359818002502090825236976200817433539629032789601474297948517619617605828071347135677551352743735937788303901207510541099854113374472305861813727427553878277371299563969532422366124808535091418145096295423123193006127789618688071760776693423337867950723208839279814149443622088951632450975313087200638327104641365247108419245471774334662331099716402271583185860671564128048603622313676846574965990059142347144176201380402746830196907247425550561575306164564975970148856530773002208260367758430078348908349165246345294190349589467482500290361416967301856027411396223615228954962521713207819663004629797512272550551708603715225398937949101251057034803005306401847818755501029962714123231578163658525861761213680856984986977401040404188013092850104460988055832924281064983786091565598829729631191754240725089405837153181488967811219218107234184478527858744408970350387653297814372379602843909894248604204373345145946908714304592004271678471770325114966138354242919124143342571750026548146129717377606703685176139069805444119178325065819772235804241025329168946870712377006447585575787958699900491129856074855770313487537603108855925462835863039182978183048261622113454264305678446369041996229310978883781000813056798468675574400565147119774889627170726488447674063425052761611297685134421479321314330404940617689683907191551780774883644393299120189792387333295293595359804901809464415172804003081775587166888642976512939706620481292406966493890746447762173098026167326339048157029821934171118314504682623591711223270986134429633401558431951858939482608081584539001346249370260976367417343139154015913714419642931747817164491579064178155998719348437841700780418505657974493908319709068361218142967493223462802130015158902124037076377551575787655770637200683232970638125199405673822066056004725694707697525587434417301031739101182268825333294043143261439503933187742493101159118782429247463695870561295571713257717433694486306835470306127877912696553244118652891821101778026111927325372063719421913756767956521490976895523005779170208999048513585961983128254347925042377059769296756797373749766944510951687420934243323111341905341451998430503738016465991712618036459886510801651535697127988340323018899653551783547722201763682247028774888257476437600218205479029228837561958068443022245945983170735735939298999348017192536699045441261293149035847544144440755647031486634115847090530001484623885917705444910357628427273684663981006539009415469691355127322914904662459730399045858380242846762007282702506293171190263169084855684905744124226738492207212079452902866577673886544071534305445608829049536600050724758084503794430001676328450057276740819256513609296695032904841429642382775619778474170405597240899786137332413188025821105099170067538773587838720093503768450736639019904768765647593282002026871804230431280067271988812417168840536147909299241820301343762265697543089291707816226886441446322998263520512206230410860798518013490054319463668480013750258294121170317352768477699039557279543231889685386092930040167920095263537887675153165624672968193846262533649512477513891282878242009530362707755269526818035197733497452284218978176930616241192342956582772224921143189804712273260016983669269676220207457834458663442257857611172654086070945500260886133141574078966904240070526203035891544906868195812478391184375897273227123361932737840419866468157876971635561635009595160128678545790794911201946939521326417416254793689521336011943891815178307197177868820962193449112371888740417141460077641567600566280931867878068934815984183816350726390238639720014055881324094504428912777461412182638400971795919240071604426901669683331421659908871024443278452890537884642261047869411614187763288935919869678267396051132138852829469704695868526346560679105396783872913825451997181942091290355844841739440281346594663075211494309600237182705025010101603813078903983786324198502952615672195166043077187344558615642664113681303810953815013687289739891033833608369912176515673423513729052235684972439002505839917106609671269480385771073600497385498039858618662138255592695091621173841004910002625486906374743727120285199658159767994144637947462342380044017002811167844588367035835434742674671527452351953177892564521525878622513766560599742461556947747227001975762344775891210888893992224532899114695525095029839922972482174296697739293679899642384399181316935143746572303396305134921881574667622600272514490054495571041263356099459128071607047682059358766451638850770637260156263099172041139720965609413310407648291289903850737472025560802169247050678235529161818472622771737251332349832882317897372806321513035490095195172204899221365588239377297705576988692821668957761587297775141533103902619505503091772913391366925756889220082108159213619993034388031239663142036002055200159630520165162921549261755976188908116686882871431034128878013285265204733383832604493045624509278015952697985142459701011375318265270910816007178163697571350886810559492031138294152132395147669120541632515508851791281962163692062623353105907302458165871232253426544949376505882574761345993164061164160373435206662575791157858419670529131415945554459221094946690562746349702405960892743882347722124335490937292286580654077575590927580623897406831032466526512856444504972784585644969727636557297521431362402106743620542670547585668501275878251673805404122535224271257780422787767055199066052831750637327857225134113370644275186846821483588178721583072163833302135978615814325862986456033881306687703888910702462443841213193655683508941862975111882066428903888678646383921761691007444350581009970350043311392801597820696685566238085535318594673893870415099144422144452911569588324090297913932402546540459980865948189282146301370672632754766392920265157481515306183189883373250422076188095439889489297350581768929026691947842946400404226779486997460742704089709479569813481680121564546037236884531980841914221975675838994149276058413573904277205501423411451179563597461539884288066400363432528279464524798243398857792458178569806975550916650746460242830678289621995879822860071978161871341060604464446393994104380973302518643384327369340465981880443574400514816083279615770000285600005146488654238722892272981329576916260566808381164298502448335725252772542811613641443962758075686708304184929969803019683120441311372437074609496713012375419970114712978047159608094715509482771966757502764194152383915849101637442007094512894286804995836360979680405438783402390816047430452051487211015531541929036913863234932288049410671800047770678110362091189126622931791768696830194824760572076782500473514606609495560130244771076926785186197927982368375282308466029448407940049105792227004078459639649302827107215151281993056397463753346454809460827620293292999485545227198515981023981928637992847018162224776947814442908989648508502330276596327448897422878222726653414786771702885072896850429382902875714273047755896438257357697782885875566229251171955934902658379308586137686768604100506964206284361743306684472985916282750345652719584951564063789876126478848816440255086349383136554869319070923725064873278056106085698734067587187551960591500553272128296371863571496138861611709291774811769354006299909620159586708899099396002367000537020385330327274815931261559725874227439948055447844400824019166174102837110029707851587400846449126333135106742259195058741806038098630157906377074083537963149939415344691642235595808406182624930111272435608135010149652247263347333313587981810642204830122176727779848460224489364670975603140809526518120481127242910245049156466645685605074370322392892678144397444837578723234973998246391666822432904229405612611081988804596380226157258698378903230919154562475756347782905379897639537836165967527751590928939695038103567097786657094005234687183050027362361990339098757484074301278369719051380552122187190372466113092743978781994793712836301559247109044778944524582026728241780008467309456729831128277514754404945155929132560822698885351982996085581176023687426249713688277061790970455109118931134171908607533308747695044529216629784096601953274705875904144407311757293189589001538218576937343656053013278466856782976065531223811969169531469553103490045950536158786509173319467955606710541186840767536023804353957052927408054188003633003309340607137664380787063500783297995833813147602066824045423829517222135651410354763651826044438064265339921991312808079085463095831481772592159053612605155000478054599992578375325254556485366020294308420022176223481662375842976814423002411414507621449012023348953997781278835104823907357741653060884206269959564287761792599416034451457500346068260135800780673843363489425807809142182594671369903015660887968149405802418816233385166734024581552903025922226073581265474275652146184997413541914501198936371746844540925014689475027710382355262415074761204563937718380798363478240216796058637283120273768758944764073093438290785489509572572053641422637524365804340667244953704555483853704079874583262027838051434232036490026443831787823876037416991158558822268193341022913860323546282045054190335102436194569635709028600915152039175727251638674241526860632458736440124969891507180136589043263385732057327711978527323705431398504280748989714079447396392757691274855174681670388309684041071120616696857661432538873846473359707198679962094463028286841380105374607917952139788184368211577725882816871538342803148878497673347868990396500137171538307750047298365062331779867283630292240423166414083175283195851236901993444098507777888264086233032409843124075684399431433526646073850145502440049374737615730454416874112353926296875261923728289193281583936968204998887029725724317717278805178533300625811045477673728093948906236091341896890306186917306572748648147972181899318139320457148705243143747205499645063544880286291929618575599112494689667322877589534571730546040944451213364061748799203019779573991973140729571327376887438111209114744165879659822445047860967139219520383935337816430381868138128122923540845153378565422582718390431773506695500538817665383430209157532262428332485596702152439289247143608420581728853344523410236990306827082802360485355077864903436838718298464008336527759964485865805460146481516335806804629107496707846562994860378753326549931710693126912179590795566411313579648646332215966156218265004379843598290435273565786026252854068622941238912599591235373357085511348899266772734316042637919412036583304571406742300056539288906565413698391908536140236410813106701314056185278327694357486709563565716666957257401574483912614903900772601984182785999600309518396512348147006959405861239236203623007204280525305373701877629000761713516789359315978801113721526872229332894071091463219156642105757959725670303335785569470019462000028610753904138574931610223582186600950835811226874437567489071403456760628820725636068903328546646539146474859130340981535268494591234075758502702554916544726405218467910640810505123599541583080983153986291002291308636584980536811094152178238037011333251469151658290551760025253273902456468999549848061535283546464714562821939168010938141615233374628624787728232332497763702911848565586154272490272822754342688461776281433803550562980725848818755265609388449388608469174937610769511773572861252967317527520366459107421017118316617072260614652596793924994735444781894018030541740828186482758706763222787569594564832186557366458829330453098130187889015035688889688865572248547751670745273541620786832346352665248375223056426879891013794039977929424071502206130303168317818866109073184292266713141617484792624170142044735202292577900475690725246256152315712467373569432251530583858478785622144844111419250319855843806044596452620300505265684868588629673142599796031004855981557232931601637477751819756676287650658013273727701977759390462198805342024638855217953890744937391240087617550556471393329583740512706675489613567057991173259445562035857035127191709278823665515863911252879615530365206573017729838313926351341667972652329696852047523668825597110815128412894202843173027360923671983959882577985363281137989620049420957911026544919989251222483969739912940294404660983622190094255319306494497622994859692888035185835989685727110043826246405685190891221624888386495668824875199834858001563520870373618464350183814998946962978028653916755336057829151018127392206411812311941947175909985603214820806501809164287431997073461181830269421813679707427711819515341985395790353344379742496516880475205018163716748278554130671087002097068116271810723253532097873311823842637027416129947529773206600245534249240319485447354806248409117569484793846957744610349900462578696572164614145211179589358820801195289388386886980626466556779159614710655233939114822579854697573012168847772392790449976471558752213768179303303049085025815871504246449451497105706036180061813986801571557421001734225405574825441381256421050037040528324211689412473450368740814185103367903708998893614915034624063150204780172062485804748870419439944177233040784061157598021341917431948400118165576296702305406324127059168644914833284558650914219542132076013612605064707258291378162974653423603510563541453124345170277279464825665333532005952601121032495158954782891155250579904746766027411590032952286120715150905530868315187371162205600232309093644431105448238939798466624273597420109260034417627653514267279399880201999966195834752686391270550499895647623165242853871042997935439307470293827383824753721753738614410501325916800966243430147220141140718778668312764633249929047783623739110356583274818042061659628991142403979911553130618262104908621094943261064497488115335487300921292262750786925892668133920539135639184978161115921394360907948901692808350262043566454471603874019124221145078939354850316312411478872389086871019688481773413065826141745651705008996265396892909518423927024491509124689216496343303495556486586562981745941583989128555225928374922102821800420655262639314294755382767425078187241242312895587412628348402248189499286024835526217603412865309255600641515922960603834324590871255457333238657732784996974024779124989534970583297656142125168416196143190425045910633218579227284594500488024139999427031373650583417435100644435126731064859724625496954202539527448813772260583839987132155738974394276446119646775875780091085391380875380439708761198440279042019549738500888069620343675569635664212611792708598328918197883318511726493271658799892972967894472818135427281624360737140955411987288017336387377432268370443507363626907506471403324490498747850472073644690899156441097689541407212321581465601786987706127295713430588927385314744380445537276046064722769000753340753109665100169143408703040745147270337337266114784919472293785898609695970535111972690685654658390611237750640766280784049764225502076946289511551194907633429145138193770424290668002920487804527224024566866862789016085486255490535833409249773205504297516883388954013355013252284472275535765838086284490172819216286704129838180502354602328027214917854779609518465112578574952908297571975048396524044908632113367798603052375278844549597595300959450056754321780212436908509020221192626724533065738059556962291621744370751331258081052923584868759302004644397632636530204967848219623031549549813879608410556479782446976393589074924484648910524434180533118004853463706045772228361524106494835016113627681983907078102165889819105656696344844146308978864126191778492072212118926897632978665477205259842743461754330209126647764252434003798753335855402153453011636081924967624936682655212277490074707285910086900381059269587159837952920384399385809232505286185319038557259543217211278094370530614339262288393050384026279524596482386285699501763504369837450463592186832550341694134126070868081107669098280370739692743337218996430806397948593416917728544806190575453415825928797961636059829427103114978894846901290788095879009316103837677102736180359911104397386269819841525290707093359009733342778475260101656265185718936877611214118868425451614820580415222389080802081401376476886975848593908324739271999741972214566395713757026982307762414582120484285788512005221976488671840892969585777499680899754851189931964156070400551508610515044696190558831492883788649988150592500416978984750859388707576721611004996546803661154352288828048310490614345156397107137142360880654031679722081121937906365509936564601138144744680346451931271870120161353539676567872026772289159801118447031877435078127778989236314979737490109717661684624286957112917810648248993765344953572099978486717712046230944542477455309937683740745271133309264582098006035437998427704512268709024095887795395654789246811544184313265603829952175083261722754076592307773665553525989774636358714094225659567051886802776533852143409045067058728329313527927681269310956766656450839380221719355905054593259010558215458745371721234074128280990761556158281653449505234689599322193134492760028788380233482580519430099167697118900320889306999981422662750983791122422078788766488771281324296587910417689196973459854254637611511122704451966517255102353503920966258604129305906060600590168733348027740634387391949729322224770785015116042511716603891600511115002003323590417437280518831763477900808248276418534526511310099424014821886920409940263582511694016719597646272698241660129821210037446869709329713619463280678252664934825781995438384557223601325244194725246048681456295170685599321903925952956385036534148763820859997315001995827120043962725950355790613795219289811917735050643538547480630088736944413462758079082761983624515787690477478601123487787116451129358105424684523907910814914749049459352403761397742405462218627536747792783465906119670101197553640684462398741168722606645239754321044541581186809552597763999334401515217146884684087856811736988479598758469809745458326798985542325703310667458182272675794385253034526277601754857911923497221162308770011784818314233031811899766193327394207990293277426614101348910174309922724899619199512094190743591530836987281624166281733049476330498462269303238710528340076317069479206609144861959673123128846559511087430752934792075480712994728403959756226007486600948138780124612819433431341137559856310070012156414405423694405702903469504390087890892150047217579656819558524840886538199335155643495519033293340225285279592498163062407075769530400122109267831103822784166239688305810351404593329841985663379090142298464131201448953117055621978872672205285988834388030249746836476127566034553799184774919253295036383192613385372012931259679141689774606821299464273432103643490799339606922825504655123043013488870178231524826511582496864923360033173538882291015005452775339098420605759924048611000787489911691037924060684759338108045498585731835420460545033367171630845657343253045131986604969373859299611045424474587791030580460827012177333905099130102980713098255446166602567462559468866905088812854123237414318603614796891617443180649675475903573977855080277091495358560902523371971969633095311764542735827757530565866941787933084021148693971067438106303704664243487027715630242691977413625245654804836433687214138747609529510999626948516044934506540195065819765413477029352217965644381140793373997174403862537684817364926060662843157895062467614835988765107102291862119665475651206171886592714071489442031903811493258568172210260999267021983149184622328653138913547461773408592838852186128085383989385777945095530707277664504188311956375434065116080417374659494791566104570505171509882148365116957057189071324065406421089889625742054650485744001025133797566390539007766744464529632083003743617647381157576332865312557060884935238679117957910477561780505826177973005055134041471650411839364088717044730110395396379428027610523266180480146482995469861863925403942535106232431926291375878135983643813562345071102405072357454221009737201246156521395930510215486960471622829117936559986013182251128297575434525761736004518025895729630066219759760852240710328560429895424439226122587673544328847117937765833077820530167005749463130550062938954009692236413156829152437955390055366432287010112737062524138118313058842372098769126144789989413415696856404323213577410434464105216431998902138466148704396651076082232049004503972346492920325666669372373737877836046626306247734649748707446692958422006615856753310242945951095074456714673326611455948500049853925554128484383000562942285104753787156977818578047920250980668078032604647519071515119791746680158952310029794259641642833419816437580065043010995429387687654322597770896456633539783289790268159227170737408642238001373507869499885639267140954319438193351612331958331815910486961329443274304403347276882370783204727144467367732656282952281679725860999120117467945537794222165617119965202819738087572715366272223115946611688933971065083885663917468788463274217788375316857748758233451334044594178795171334070537467616777956777451004988530911415329919179012630160208752713536514510874342579272084228781089185812324501905720683166703469411440344781279437165389707105787404684910052152263229791313496680797686117697329315007809400482351684441669575883543548769741089641152914777894814877287788407153501466591530273623381709809922685787499927268737965069762308215386481007451693277167825317677084069970008175751141143879731587298183451058080224546114072797925825034238390558171197211564643097133566376177072435246872555737648631361976636232691368819646508403455912532416946706855990117629779611376384850347191346132434690770085079300985039027193984418816979568665031698097878671761892860589813814049393255765285708231548724023375176208377155191809579541090080171508365282783620267918410891649619865246442465297039272476827073795471888580359276685810523566681144249896035183338702559685219793137983487653397114051917914135694548091449127154931705794488335545033395374460880257319159804340939122366889882114303044431196690285769741792574493289503963541602849385814637119690096951174739947146957811714036118398714757592270445834611851161059279950468246586294289682268573795663917692294113729351703403665167919399852579734325500073197714933769557146099589974979350914515773214899651928142615806581927129446683998595001133382983299452867531546524264258871253635838003038585975209381849562994772649975875890175877735378061988498259194830550011227110220254123737239012435071165466308255502780757411225337767728788609863987466080294835402790285769243036645319725139223761578479623926363863480481128030023649715863055061117811145760121834460058875110447526239456492966130586575226749967814863045644372290978749211536590122526838600572258959008511632065112906657672243071328959792724960129213113940525025350022696837785953756962316865000041432826228087140107272616307513187295910142784739220457451831728505321077052098920779966071547344061083736912947298651511601140893278250919973193165807308494830217367310740656286880659774985652217667905949874767908150108043255449211054771358123333815605472707993643134490538529061605818414875401062669980477063207936608299260635460306523952728919504554934101730993739385178074536623331763075978472800439475510933572298150402979263420491700864995376209948503290792170447053071887444358896103598382686070895027302465206808145628997617729304622343920844246364600346518656068850344331698105149575793593252674325825282899619995757709036589418792085015084921050125469174736607492902169158316909037186940375407130924401046072377907182263662407555821233618747801389947130607343943825017851477194932658235910574084519707399596679129001467400563751853498094342371908955664084393189567747453514752185057922493319854530283612158493014132857244089485102404505665545983623044034065786138784138179227447913678344816569548441447399810154483172603671035114650048040190066591760301809018189298060618354457906714398638414285369039651063629564816171779885395553538755915855400158729937534065618290015358667586388969652850948784420585877254663604418460929224946635037854419911013378215605525050182052394462757765685747699836312155740582531950780339043011287722999323740017637669649053883513299148820129141575455545913447527071923565362433950526339785801827503233665267326884232504137782722530247403181028996041052094648455051816235104474955711452852808374032454014418935542709813549664506480222237867275492649320163404417313532800607836311962939723824607087098158308297494108162553696786404037446283552195573493549909688011901197151667836464925905282865760307399800539187383610506830268312329143721208560972133140929885000843122024697659516408224825325345537807703301370048950354458613745995780568737627959291071402206235293097667264831312046002062167963011121100881191915373704104558570737994158900600977545291122013975573467384223621848415664957162214754599864552817065816382251700410184910961960006328811607876821745884784766712896400700538897783034154923750331574934524846814616791171759388550307954403456406023893935208403066147116751195658647600676629892844103099471626814867190542020676778475661498517162120756138979695820855058268703645918359944276432779996549363871249050836120381225239528779253648616610937503312997845516774982630280277524890096400935072220284734827454359647359412907520317726926332115089608721021093797811657726716752225584444112612269510951220144783676231862975031553306254381733271322332724166806223149697490752394890752890408566406849015343466629157650821360005546546952185964741239692829180084612619150062777359689969008090660552730204744847417644543764289827363558254781755406977926883912271955719232150487250527186390373938678657425545942888014573299487312058988124247159716301764650248018341349602380162257185391160268623899676453923682413216106005052714638475217727928949141843150928003666459627059500201657179590032123712925065604213333265975776192355285245103443769276448081370376405069579085900859150750666582923065399809072307206326064619357756719683725822166932116032616182598876940779358383065639514248229087217012907877175907831809490806121353547747232143917388776320194278235579019109023776047868739577483545457026309872479846101686620828299849422247626015934305172285368560605941996206830127244609278668492391849243661043290236238597119751352784518662602092258639742590802814703051810967217025492174508416808593519511615585521932072569106636987518235341060460740612883137867486404876613738797914207463739747537590968488279160704555828639080501336803977876613565871505629097835741485637652124302030693451548910575421567403845871831536054050820110600870044446325218534485913004972979518124165338119879093493109325989350531867659356117637788577673964575932512667834317711244588007845241011874029336226782541638234042894276076202609190063255103928190649585792853121180333520322507306246837117889325921270598379971720342110645326401711000600439435791306739984919104314189666663268978612999554116940423115629132028905375403405989136998746305541123988493077320486101124359378828292345296854283974037501795410875169965461184230531873495007143860526939687260527255454153792367423430520132777123702255139910859283499224793305278886296474554886994610990753337172718933501601321316889283546313730836647360966245257796031492234593514666674538118970494513807953452808379654256279304392403408344501124347966516306241480528404768046790200691786545967707899654102679934420732928840446757665897409227835254597457523650524940547303448422440519215131811828225956142121498207323547161096322361256517319786160577232261918906757818831163810177611710530490303910387967126006610586287063069812417083150907870408042250470278100326295260498073274044619255095604753541738464062921415071029997227350583021316890901134770994186911896995036622390780855758683631479859981879211307297023318597100798715063535700773822507990746499535763428661031038526896115358787475680743183175478409827074509618362860259216869005354079964931846505171771969949715083513621854283996497927177699345361012378188508937768180253708651407427617669522629770650247653236865262861898861779071409680548176822871728739464361147318251644003151164013147172515488005660074285767578540028068346177893410242546346320318050299940361076461031265375714223095213558120841755219042862904015872692477919399212972451997378056922281101128735648692685293835890330652776184451638649987971341101273910875742757444138293065110599601666494014999136085726853345189688988927330849227142985635434985224529582374668686227012790256751402687718130977465176279163590556280732616116628477678006995542616478477877961073204597164194113117048895124241338526352431623807552316779250963086710708644722166397337819241714556301054468179313545763685476489215646247724102881584780037228600117740928047999499244305904647057131106619639809793659070014980737224045545170988319285755576673424958513137758013981276255359039802939869682775415338844943234697716858244255865456571952091630539875919334012917051032770422982231681302558086598956119669806530601782058402886538679610948924092981981619780329947857203961674943561261785799059385956473789595791303649334590665870061907850672376970299270437664441547899803361456788803737279328044203901298470127688034272031711089099046887261184763226853587671337579953216324337337137711665824529774026162871910453116384879146999303406985884412918522676363170348301699225262250170521568390398503184864081764424559970102952852480289444600919343615147251073121059423184517210156389510192358915917393823482192684725224161120122419130272720465764463565689256879490817909308471090953109926901342095094991304518263260148815317727614912699480155050913578881756398907335427202749522871282070338760516685717090500769076525416716380196149006090143743260239380110321314849895554576759971779093035480549521573611947707862503125866178357215344386652086662120907663318087068831099432758352735404825000170100104984835717733400830919027476138339265825479506491272066957851827209356805868497599132906490237185313100371943829745435103813834526314030132898903120782176221249046063050439460559878215928068345532874464150549275212214586205791503359149411433177852054391527168005765182039359600819305488685915721859441552883908417549018738702151521683815416948459791574480677639212342084004237181660039761026323042288067386422409942801006179562392117991861058073637870118501102841793582554240647604129802517447690538338292616980301188281619348912967318734152926497953742365298942088986078458876459651700531436191255492500492275418789050391171806607603906705743161285514283149823906069644762576575458148806339199814825805106173531673015766222319917370091630414760204100275266024992761690337979301821887030924392447745033808962296006182103551439058354089813141271315443919321390512966095123691232153729178936972097739029003376375642259726804625896425797784497894804240556200427308181965413377422545499709763042308542207362101709254079378180836314142331913110765974401738322180734905963901189604355124702095806562180704904939729027289687103728389161324903744617436832032645391569187927471472643700794612633623505856966711573305261608679468125596023599098507899312397979661273353547319357221760518838055713393077044260974604342555997112697374454724054638616947173177966335321736226885254493611326512889516435399420267949007673885732448291172474393358367218998360571042799304424801765354112768316324408581412315202524749951156734448730162554764055019552029936452274516131172092679189113636807135402909351913035642558354752702228102195817082624820827243268271477248587866205789519452573145825424289673658537145675167246354354468476416833825668242933817376418209088741242375353305054816308592602816090247099264360041850556487726330183758773802577234453725130284185920261851329591767387483280298556570459427253067381074366054251093090653983650317983108977924572014418863277303446726718926694087336930522187017341205267756439298705715437439682212138980293822243797398813745526324198530712751360460326302898061482324328365234831392801991401313475108027801823427877474808167738264338487835744899096695729678171972012821844089944161062557776254166063967325004835379933789752469226409735438600536435539775861489271665117366467294257441518258802570788818663523253862877523966082460100060494569826815868137486531644462063038358398620321233049438082781143179388564647368423282074435423988255210778251311906692215459633859987674589453505357547307044222393821569574583168975319142710553727602338153682314511533568214618004383685880249626918622797416542435643103906879762975502020282226593728981238605892667967739537657822140097830314615427900002102406688100519474315877004751231204316341466382436768631570809674154238173807209849490903670110644825935250829973025773383750779360069491875445037059708031640962264908739479414028037751099853797829453403051600303352828971252398467575278152151630288300407447209946607774235482366864415432298077428610090393672400343674817768439989545248442512388733316668620905015699755455976521083223706712729309082007879330562943691904657067554694448660003257800408278949489942825046103783500522729929454920545349642526899995925041707360397869071774228415486794527938014154294821055558313958139395143588264580114081796189792617309407437339391861522664967998141203082699814967152129792507723460108385126519615377924895215945075560409920344692307209550566641732664938296719639668614715556178133537098830705567289374690008801064998559114964869740368061886863074434148271311703750935823991234618841766747009368947479173797910052081101888857801806204316964241449086720091429749278754132988285608938809348449876791570652662938144733427068802397764490994324503640381393414751758659777817710374578752490803373901441748906132761098897269551951500242590264404593982426903725606661379872217994538840049859258219108859889205365300010719066760084658594884782874111588482853859245221721816243546027440204543703746802901415218344975020564623644178245211802185460285961029937988497421462861063133731621479737539726141888235027980878160864515209313140597363036833315953870127295182075732869126500075301907889623693664830528103232754436484014826210250137503765941156623375726426832855047578296338840598122585330659811561399067766976263551654734595610214701296740738552217336789806620278831326167036520991001784707686961231025595504003520184603628826715649896232085419577788273113159033587838312660631385000794376697343410703612226927984909745472434527339837763664024114372626590530277526729877865515131137808535624920191173548256730586595709736710880881357911186626919408099426781667887556069825016616779758071165145265426460136788953898650036790402936455165973406897005593120693140214740031280553412519907900581948422972040136796611012591531661641965409590404474047936433978806859666151842887322927284031950235673779624104267699853137516638575060834381630278429040228137693844662872936625945899621345074217736702747926991208967389881826508785493294322201675842790981173006806786349450465070894165411324740364000237221478531345339461816923623726510701239784949759668661992944923488119530027805911062167333301773557664921770354444036997366883397744053562814429902491206254278256281443288061935249745533954644070811275734444903255730905660431942494211390565099865949964507519681337669972489239518516383055046188392610058965079138709808557998243263312552656352412143348396876078032523175976155571674018948212012625376570765904532407484605789714190796357740796286367692950112453814414174490340375773705560292259962632400791204694756896255488584275645088231985260569063435987236604169397554828170609684519936339759187785562989996369520446017591595723924791884862636040623581890662135050063277678226308840469100606465800485452341106733576579368404288410451908162982470849341142788263713650445045056448497631084640457035951994221706084599161094047286284725425059422338800211198807762472831922867419431352933694634099596780823932374270719746658889622033740056259444174605778426426006350915686201608085682646578494967854219264410135742497249027686831768453508927325170063940260086871952205496039231747426492893089275763119219357484889936558075658760943270627814810970499318733550391790853109655277211651105856670749937144742856486065908252268069556771136998860440899267733808989046057957769935058521344519037007316243067789010533134410913294163290128674083209988452731727117834658374980900443840480879332899981717354414143557259564593678738338781056383786616378910143083612675714706899124985357555305994930616562603671196502535369038890788831781803782345496061677354022923518115525087336845901295701707301423632444026457683817640125904034122549775026655480390089083258943919802534382906357148313289002018972519553164399540858334175110209230750155822586799364811784274437700413481898416679135847451400236193755715383838596307708608154634540661561999010101409799205763266457180123634670852424957412077061604261834657207352695314543885618391294444694866458937062668009852914317347027361830020218624075327217497326151950070904006068724853570919452446239555434861426633316049059862171978269796584637615004020259334674686073369581347823151351580423088291841993945874568585034607444324764662229193779529533209010661592366338442752123915388158943136243872578389375911564525895858397924248760793375049268411985881598874008864389563316420926696334679449413210101245172648524957864460751767087038526392187818722283141349907638716679466107744589076791236214758394670025673275856723378699441103104081016522278655072994032566582117657075121812190009695037384968794625542169878115440905115113678794506486397848845398587299182721435549110656517677205109776651474395562049972594598497103477757693208522338270249504570622049623222198927495985708919604898460750090252402825308341338219502942778965438756355630782146356907396745016183596008595780084224193143827388229399865053309607896752672453844878804936540278755342924399291860025001744023802791774245928332009989360045379748133068334420967012865399413954020077151535054425038634690550931970307700848441956299508036055210085730809590892845532038655823799793446852267806570591243918535440146376314075899599708062313492757958039821186638405939477889218659778580705331600395179311914081704167693564643097279207513705281025598218153145449000630789752237183448537928027552753910180755192409708827652900763494209502160233047433638614547207752570712412164352255184171209441118305053154211280512104575911562967910980051373075613651778241027574265979957699483015819694548770825854552990402768117855368803371352118518404699910599407507271834769274898462036282177014047283428077388567220238946894981662395786508403437905115795824512969596780389315930103413717199585756241698472951236951658620777564230094254393250018207370571818395265728539187745828465481004151721603813028177671398736342786835380723043740402435781892603514125491729815211813094440168387560827761910657622278112180076123601032676125049064624731394491592892208704799399514402974774228288612020398728879581476872546068833533983862876850628461127871138103568874767744109485644755318030791312530957224930017625388281737866128574614233989267953469252576081251123174618471243402721303548748296325300187576994720954954201863765033753068554617977248010828168064133441504100805572791782085585717420616425593373013745351506900248492242658024944728160442673140258856727934426818098564432919620136338307704390104546016589123170139143089937706634368984837797090760037352206544097856559819565696814232368766121425074647080614212935604856167043093299212384743430405041738490129465822592704653646768605668222783942406719164630803115534902991430855987352960370045924718577094426692397993140890329789674517454244112611207571515550763915557187287253863317198149704578257762229569011285467083053568695868153955575802370837792961334949544717475303330949093263868364449487599812359054218180874833041100503406639768660086159063721654826193044417329601454430974106344862627226137704503198617914560043329437123031828147382167439518052691366670564673555286534588322289112345305616514834704163979895322971464198362839323045687610807050238082157757891968447992055564770251392551762773985878524229228571376272119225687836157073376005548510194111326051176184360295287552096345794495397892727951375869271997207316122123511199958917307627395115941213820033250882653093234671398164065432001860148813768447692554805182137539454148793754110064035830031887570026595160966009631102625115959038132444164468871924020956214365517236210022333895896085944034656451099435381312208769496427239817852707812446716865300911970532177160291531353265446181939668091480677201082292481343721054957022688369354297721100927682121781233048618210190754541745859615863451741892001315838666515982666903736626053563234866472094154291688048347972392701572641056469673315614539199487127433075028947912173954657581459088340373368857538986785856332870821383123730982199652882310501752093833992754234931091560326157394331603026225140016188008216632590750466949421423626600496468274318481264638839126773156336112349965843846192538866868398701005449468259096645922148480797963654632174178603846414663512046000388629496383329352679899281676520610358219821941959185758263838986543072510867703265196985239367385335873331850925446699677342015933616653557451465297581346560342841110637719787444732257799305848029759552679390161644254556991533584046026392507428836011607463829662147094464120225537262390293292664187855978849221011291473402663586215366066717388909277337162007722810917110577848652184864690453922799879939317569536041584031156631962817860881766715235572771112845201279362085045817168030851349204967101315979365478546924002388268797898605403477301961450843363376721630792033785361461799243040763332493513007278176601209167433823426441358017988802350518722507010685017064767549685351234927975084488747176571498866275372120462448376732166197716666309187336473091016893015816338555738020069193707329235180583923645825457813789053993802699248580552637051422084171040548524091211451971936695016427940219731681595294779182808234311424317778660452934536496680968540234274902922712227718154234698329934032604639823733628469149425729007416446891895491206720881567865323408353098533928953020045178087472081949830844517399168770958575511012595012594709813963980274146745120195842954457282915434843456784469143087864793079413054442117651726050610594743841519251179862736266644577273981054340530149297168060846703020545879692011924059823910867157354111376566717737289622413840807781073015650753074657083767381915788821725180051160670009741513408291847668286075445938498400003489003289016786323905293776627319097071531307150270937028777980777037899520117957209993188167274594579401157574132131038974773676354329489890356830057333052371406672200037460682233099284841660100804557746751407772561195647075068164150099541513037567509535129561083509882181932923769172859411561945884643432999839183740287017222124792576703644449259920152045178414657894461228527147503219300901179727792846916419373004740156922364096204363884909025252666973817934660522398667702902585149625937745458918563497965700707213008876203907998510870485829321400858020024947329941699887065940083630998993035861289880796767155471400400166347267068572040353808369909996464605533562178520585682557302879095154248362199895629355158273756035690775560477130563259087013121348703222553887485999003669175301042656714977578583653015448505364944655463254249128032715271528605233690092534781601165431360273850277366342317606710587763281414878932699054252724880249135918962173257373903635533968974111402850172631201130508369551378456701733001195126631439883820174359964792351869146548945894927403644766732832447853715729890529956000129943832405474818852167906114167652979456554030290208836902775126497506267003012208491305989109294121257618645935129357084078355758100727035038001867962371397651944828175099086444679993940484693730695483432466834685470220689229211707553038010762343999749870009093329117068634515109621716556227645846413442953953551231215683921541959320165499597005037025075045600103359265605703088317774641535186604557505998831359616411196551045292960489550590662322481425963141925560342193863708703076730193626162165989224892911529839905316757279288822997821685378429245227347353353048871986572028314990143198830111434589837810555517233933266108121010319584432959730160679219092948474850588131205604335813637326303400699289703218923540273095186843199469463319003233688967477857980127542595240433672482606314487127539568083573931130271695487974951748716997479460853123999284087307916444577552988859336594351513873057229280193134179197712088767143574181530715354752895345518100540483492852850774670082046990713845728383061865506080753430894887935068653449120928949548775042553781065703845403628429165787778739751399851185724256041964543029687792812961983128478514798945831277725081729925523622131117319349735938166454492748014181774032285290476709441930874863266101811516151708240734086826571209440370059928620707000613060189686020642233176331091344523927502371107042980147333715507005090369459289030523373852801852419680125500558817677803869597618213666718649222977451879977012220681707848171444790496226801542002867621653548232588493928060979344956659107087077456192610843231801249032711604802602846310059948612611561867146296999513250002599033110292927898532087471985100312552048635105571720720405897267979566908368384009237848962907831143767018719682121821223689064316143094272632434145328848097422199306658150076822254311048319436569105189307231782608857788271480427067367223898105826117838966266536968325296276752004430103709661990929263898940729396816542508971204208434436457844132869612469284456627855343573604084831746385357886851227317228132156310703898404098856588090663683322912700166208566055326792977056388879906933330244548586206049978339272088086154579715737981617812397256910888865533073880622687112328649005238836187527025843290055059510915411777223687060302532102263544509624304598483784882085328194368636986816203667213728875502445961717225361473782589411023159843640036596278312733613514513473291132659350581418043101888094295613720615131157184876858521978068886678162415886751141479652963618346067440439317450374717317955374812391767738358098831896557163090413253131126259996042595688305466591567031959033851787518006862158889236116525804766692547324112036154937770754926461463141970742958751839577846168545503726453968861653580725863115783970263470431686990743940197751592099539382657841987822879152037076067982870745331347595584716358809077843097603095694165433688564544675167315866515350970489504704360760253128450489418029591082222137006751081416683449438624170079927837932636161551369562444808670442167372040172782444737539207717287742287312619457129593806406981710454999772046526688899517495862636891251336793182248261274035477816661840965788819553398495936790630426684691550886920523439195794628779015632199120738940957088161483321023868713732878062915288059464699440343862051482625164604488678680263469427178957492344148090917750634532450797807525954390471649632214011623447779151863242218293263941322947605379999307837922297842685405903914884217170846627433732451861601098961520607258466933683362632103418060148595049566216742980303585358410126880458632910353636335325547778600568572886605797574027824359904161478154427893872904427589289144227795675162125846732114810166166007841247330149112548801858209642055611118340782902971846857131823520106764573256167531312009380535937336170891099212002047580216629332771947252756960998496183243058773077131336536581908346570993527797957683163846974655546033248597663041711430373975171510991712851383098043121807687713294020955766540090524130595126613916889505235027841100290571109931636489619812361206973706636008105864330364542837031673184978483938962558092835111378031784859552979474168378353740956647482154165404779083043366978289522626358840402443778870726241645862489135057885369525059695254382942939624682657236168802682265221302917088438420124459564329620456489783744076862843045452460737905969998706068797672812738645528860683384548406575363748423758176245830037068800465712203508951928002201257138195878642326527046003366918328268590129158936923857374967077141908284072358881120018943247045291704407836573603482113718378567195682202017944934542193119862988203598017270269993437540087892830384595696365894468340119826863744295701197987062456888690267103901678658338992483730506475413000023847495376411700401445327905333398832549322355123452612612188589822701909502208343828792613257748322759837641447076196354067149254321715309484620680870351199160911348136789341986898179269426740873140669147592797466335625995890984916196645146960085334927938024318906729803843987754139362481931246055946109079198127260393170444144568486762342241961182724941302089836529999756583288350295200516933395506065857225611029881620925317098674432085149604003652081470646915147478882341335128687075062553981521889401258087244705072552746825164387776130643606793529332312205457587759526628264471150026037898697799348443955256665995392622865251520912714216227312554439271185092498663422807338307149779869448862865806803574190952205984759917861589414744202131897283432543206876489397319496783789943089261965269135857278506504204239874044043176830319530126402997228540925559420176328240047288611986907052710165695945702511535343056444163824009516982137263635555220095153635135485614821347628236423656483584429165724138882176135678021320892280929594801080087166129480861775958999902019617516856271005843393716892916726927612233055767141805236124095996243982138166996117331797027424076303758184194681000942655356546712685594711066933462456874988809814044039901209802892169353592817677263379544268651889252426938284066611085463077159508983163095081891519712951295102236424704815724888059696150815791167420087987626762041534366209057416556792969692079035953722856125201899124647516786095907653140859103293120543753419881160987982694713711520629755200954287984047046487595145453908865286106882320093337909413894187232196761212038841612784479081751947723511589841049199083212132825729411428402491869849055993336800881973988144126098779185754425752798190108797643066247991793116865100787816500538606044313623471579558226333974050331068763074804793264646337085450226769507808319448237478566653350141163679880051899639040523500745509960837490918562216269806282283826207837385626656043113636743366394682313533717079095377634926539932406424237648722290359020910391703831758249188063623549595789049947644834204644917426778398682545377311314614658470974124932875950087169263805098503328071119851777005625073141761571575006349797969247548980388031461099185611386519074051845162588089425302585410751343065187952696358706404133544210499853805365470156959981488292771338619020162377922277456341342618256806945929291345354921062628012115636101783073153236159594233282640110140972969319053217716180389000251885392906009052842726710392911044547760534799970679347479257256549177957639350871502438027215440626375312285655735495246128336832417811326956054959345489929217830829873042232223158645951403092468663040748789718342172230925397333231115712913279601416692696489326076972420461739585728192810198628935863794949704591495922361068687652831404121300606588298977681337020864981512395051699026396895087708387806024263393946405558707368965597766357938422591467674665227644859050780303039613400321360688288886797565709163156498182918235555156866121803600157692336826135684319001940250742918024863388951868384088288303710238914863317133189617044937075164181014877006613923789590228196483902261045662408341166975085897320938174251034682664521582558123634080942343469562997196728511335417482643539137379182854667627240176344186904105689874534690471300452194717462677109465392356506168792930520604513173133681942489655758621199563033625805638293511273297520819614082592618028639995498477110649882690155798785590589135894631545262415425471695514145121971233489931260481379543499303198056833850018068986166756941769859858084487106215185190514811769196848837543209942924367707437553453853737749985210519071503048696260209392347422187533446131076133251767716384534280820602200147515129677082198185376425435795467670437878971558688177745404564158168987505485197062760398678720231685990816510693483559505016147120471726311028705135414675925929917773940015899332472269429194710234841302570655858553473774277397092953885411300387640566244617854119898384607648152959276921134583497026284085703699831101299150581666319217171391793879559303309613582015373259651981352445391875254895269321727666144936851605521896882368808945072466498513320259796570203848566788815701139462318727928543746679510684266476101788048805733026134692860381249192480614064311837284429283593442369333675100573553968986303998852432453749526479618229758981659588770963668282259830569134218838817186517555262141832505365033291303171150265608229801137511214366671757089427259523514214026375957697562431500464736517310453100192538931601337384465907142926485407544953325961279802347809752863884190751711558304895967069320974746397427435555565164582249738375487495190032460313123903821899595274108146696841605858290866554756228350986003629430749266865654794760999763175007400744106501014322785844387239167413716286565261922639835313389338378829335308471253102491824593807926109685668823695356121922452632702475813452778075973014690175088797356153582748435913195149335579098452795661235485958191857513303468419269946381642368007415866823649230178513912019990426905107812191766067798720365763834307317785683141505024009631650668794838932745788883632900926278717102500674478067585230896665970899441939552763424313362948865765528567487574903604262233610351749318527237401575884796182344244395739786915273496661575234239635372089657782312975562225866665527931173278627843480265868459735584171529541752649487719916518515167462643756694941006094730895773157921951496738972802168902970605735643779841837971663181898628278694304248725420612755916777702423359281231215392088951152814594845534728117964604372837011089876303350919998108962826512003180148810753037509311746901494382875501657333911979468783891230069123387025596433869111537651680542421655724149948274981136812219319537763966698393770023551579429068760170221077108977188698783852763471723180700094138143457243174718861104410635982037757744819664056330476019036421127011897000569477568196999991916206650973779949172229313058357322052150325209350507771145081782531561232796024470515224733584727528400921535202917527852730960024629971925229382195944784897397415689186399014790101913916719754434615791086962524933319174685938013447343667270432829426095408647674240378533802140268825124537678463491543181773761620852577692288393661299026499967040244831499280748473819726789134866579432535398524235282334150393263313600479309239037192870217089366362524973009715304033138039798290232238432786851296878463077120828416337613353709514212595218250995325046925522803872247482035433356222405320304369248701383476665582848877171919811641742552202488184298240471777097027683442586755371551647464984127184913240872498844007637037256205708505483363908278769057083778629026383503377526962120104988795431674464943017619824426177079052875097557596250956464822998950912985738373898724727269984452896222139050222948762411978385709308173262382331475549983561205443397267335412322123662705863730016691027827188509988956550858010748087036940842856546482263921878018909028504005577369305418823315528831779112784529127399129490653938273023302935188953079504236882063457063905163927673237283112713373383376507335957090662855451347354435200502594242516445084359207958969929129607221059918100694911136233181770014856962540717493923985411800294302851864246788714465389562949526375579749127653695194373962440930723549606972608886212711321137881819586294615185029335097045482999222151641881026668113431493464267364289901989798390789050651343711083668027681864254999041673401008024259440938458873789391517719230247259364045386423023422512100118182626122512916712680011287236190536872628349717672887390875040681050895363744197126301930876129945681216150162502320606078294664469078424043124297378818189516007943746606162415672657854709990379491545536526608355590590967464417759543306159053531366233490434698043874873114373141435960890056488665021318383213757222199209245461258951009023359054796770896063025834760333972975303553710414680539007086068342939467031792205118057730032213715098113992789425934029631130353281614144944294584493575229345776385594366671292214248357276720355299326590981114971249333774928075950674093419111293252433033507956302611893257537243056072392180967052586890452591765003757054720499841295891436644367104022420068830710996862772547788087841510479019847094296512342468606981634327715884829100060482160152522958144342683526130717558504340912361096052981421158504307998869841251580722799262929171461006367187684618117845785770227075091564115997905845499608020208993100169771744452830887784603227925613178242733961330017112952711994467203419900057654622323929650660456168705252602617629358836980383285285949613518270076341303278831650943009358531177187163150287594726674279329849893984288036341094764559540189184203427020952206124262958736879264350275021280919723538439891967611290643774220855179430877178504107380631761985410060768012633264172577148777909861917742477298791185724084101498093491776261975095724934333851803530425965988572445537528623846904338797748768616280261986952033600898152780281581587113177164626328626630881637183756122154764873976653699782335226394392523145133301806492047801003855472842668388344372879176471121893370858436882624867034684327596601238436927825278375829111991928956191143706973582909421556177774356228388015098319604838714665330194599204979517953201557859028453480595221018302801921307627996693020158123453813059271083027356325822333688577878653576001394839684717400420490388711224592685853042543610576546245220718824664534327988423357013274714767656098408785181430123864790502790589117506129264450645042862519816134064510167083060884234500187301454820128847315376140609253604330806982878382078627660863154589053924241972220892129123550933770394022364019149770889455333211411079024408024617707738196253877468336108235045561768105926991201071982653817988467785629361092192441516787600503006886813769204269195673375972560051340959944425967707865168328275299900278817947282373549041909389414726106983359080273562799005350434627765754527316426242062136461488588282986841429838727526557117277587978528554647134614238758951981012347045786308056148591409419159489437673328932775856656542724589911317888505863519844868323670495169757617411558691719004870164326034996818115928613000988774406925217378739116247409577465713396480984489128002017941345482876602546711473647786885341938974593008305873799728972108131045229631810317432910961859592791411799271504253713686675225249448251544135008130508251690814918672959631181553803117740220300437517116133704016729045188715968877745614706748762779039799291480645349496870090910235576628134975501363856192940990024589443789183069427762881422695164958992793365696043878285920181853311366892182762590335096518561240392265767808248695933305603422535706401097676139987881213913479091206371825495381089166411581318297128111319131220486856600140790286206122549450082996191920730191155663821303363188200228582759256218751576605295154460534471367853805902553856757474282336103578652425337008082574917821958034505737932154716844970910847933147849845102446436561204884469552722127553321248820081047880092190502543834032878235350034745895996737379710770283036091575756200344705981891445602248766122002647934436264955820423851390285841150013674152651913311683497608932261227093731351055416254582277047644896833306021035738935819356820450310713180709458124847356152529553644452992649375100903792691504353110909676887965597094691995367445191474344373885920991091833049083631224677480056668264344241123134860966643741696126399471099607986533145369210989812805757885040345932562051153255502761650895413143435045178383304568717097061203573415308929950216390704853264056704294350009696430260065070965059461833979702399409930585227522775003814324249359287688158055149914456928113462753451933172970997984919577659594310435903658527136493471563314806866174090991042834063852799461089061053287871054364579453926315992049749950786169142063712948220497480698184161184615169208491664299059041767237582194000361229376569019681389638856588161531408406166169504605711081355973177908456192377704989368190215159875992164053143235501872303435882228085099448259345714368278665410172959568531338215757258299301779227752595082882808837150885144514546441759109375612627697588361321874385068820358788513987584096937033043813521294787852820842544495360090190020600846318506572719504316384126858317722501953217283161557440295394220253518729451338366504489027485290795397651280993208474956121307667166757570843073720337891562060597003651635798735366554187973800628925921043420825948712274169418846436360766372749922941378380277136554468957220457118018683412505172426414864840533226475543614160748495258172323754035552756103767644870469363981058332964274398885885235096087753432673709989120269749589906475237694831816251508503637784795280354991911092106174774674784445970625231435280911210666237980781016286503786810459570244680087600349672469061985581722800507954975913623194357838387404162926160148231421007407340342374465843895268462324864580612753176185846536534709507387752925183883961814737062496337401728634505449725171049785425381795272726526183695947354286203332823414085229523090886509619986297304923235934231230499545959934000977178771198932655488766045002925929432517613434117107281991303061005693753510228291383376486385037167712124186060534324125065480037288817453295451558529223804053348450346614581262896668088610026558557765435848303765303537350046160790623299390027647035258051025887236435234702737679918070493605610317535650076576822923822283942205696207311723802216039881512726925648380661033456164381450166966126868862441435814073558023967996630451908163129314743151522649383793649288935949391791037909850398521441684783023788116101938520349233862651324377418460700807806645327184125539309635722725844023872873215200053147593128933366469163435672696191597809488036078699963079792550294475807452931534963306812206636008170728630626242324125129640140394686842868649042726128984782073612569024118567763718287257337487831337866281295213619638782668695804064368843248626772263655840483295476015483035963185725561650115697917666862428714551476806200679944267452714900081778509323481578689440254319518101353125787913765744723070535842291425832584377422075658186042343689201571992768605788375161806542281688902603893575680168132547438571998628501396979390906962558743665343218827632912833143945314373025873372624983274795754765074711444456715607144639598425447389404660298926226888748153916162670339770354868905887125490866883314849328628380568515783165475175344772826413721603151931198367376157367075172378258073546718748587462839614269199009584688255180625996723295456371934676812732991210746173380130623311170971613126713202205021109697199374105737357449412918410989732842393273998486800980577766515014991097467531614667667277037827470807473138378129690538974315338933685348592556872438820642957497313177104287578892866374743379704071332914110753353232391381730972991286716855082102412325153676674548060587976207870195184919234621220465254768441577028988536893453463198323849217545930455546871065694952748937167488673152507846390987650140318250449876110557469624460223368351316475361770864644911988924672489868231197260830633723735223943752843719136210938530925107009890947096172175987028801059149910930798601924074828975032728031195553327559804528151169295112501375368073642631387305193334458616304599667327514521334386523658613651234488750891050865869156603530874642714687434554557721198605965874295947889935041545093494766546885432924679712528931175239354333435090239830355288763732437898660276101204417831739864471406417716919393870045918144194887704335434419859886471453250915797456904773591312954477537635415815769754306521825384967385186316455968108783467923302746107765327979400791504898259523140696952212890096725941426951795241783518320178284405965269887287751181988144726369738467040706743908867397663898808685182796641146897252564345357378855724339329001138031673167717841491640020694250955959620952765909621347239812110555450222661682558678068562602501870089608915460150102344782111814963286808104835808458480048933931734975974149809755300429207555721650504081257979112799544524815583431751906829885711171974818397516967743044478515148616568744958862797769514116762052123943625275045459709192329131033063743766558131394461212106961017032084236495968573765482367488283318462505049487243850883469937666828565646971074903317681008607994396066150971709708011149930815245734586969275627424991975161225243153617704516129636496419034879489384064669283159290434391450267284751810118108397123715266431265304452489271983122972943646946962849074951931130669667302105059865590315221048955433341102454971783744213550384891635787200739229413579250065074558960879515501189819489453174632360594874155694932475928601091689306407577889190459515048393907216482462596146171863475083031908598104360405935084971631796106470464755676558660631065884457437991081643165935337785125163907510718507675366368797760966649688154516558016893318848200848673101069959997966781724537044769533154191706540665639784193348004563871130024135641679031393541996786768278077929790272271643875559919856510694921450395258911274366672138566643351018710187444959259980666838304803102243587488619273840603127258536267259607632943223643490466052197115615786781582644751314075667112289960073920500432489239909714050885562891372641127328936637041932073652587794248618036339605941822938980203123338656919473292606190172222712630729162565360514368637222858151844324269052635031608935484849724758832431122245712688051337699332773178752442667428695994095365628920274760814358155669206691119549624213149272803997222170412313083232814565775948987996723924560365712126129834985978771818852744305040344030043892244080635887299783346788254741840696714269195801619652791877405751208764034468155803447388728442115505536094735255958210517640355276615933346798779499253485848043469555111297403029711645827542111240299534596655809122471218685102155225711816057770589723871224733558110726655416010122206148280451043916971846787617384714324224262536317129961413434683320657057114698199220872977988619104630070933928616215266275283729725499732260072051926978821369643174151503291300073197040755533609608927278864999765550994518849596004931752081884753998055873643679825711859934276750294387923684960570707734584140314088392617566258462376501078621604789856358731922402539831614422212773104836315191028581358233499404395532758180437250124594747985343427844905279028941310088816544755373179711869292846690614306226062952011021386988107633424068570608310135864545934720114548938819818991815695679022248676065981974428663414127740771518861427512694693488330090916042556317774219557411385496964180277863014967528105077341371765765283100155278279300766323111243622362660635223049360520619833306588102726641243590880386922380525292046345671939103703891540588084409033300856714092770688250105724222751330754981805580639194545985410034295085068028312464982148225966257135315696240828148653139951949832881482929085449551749249425285646141647072747458805170175926159615696773871443503068703808902698425327433841554035705518183224950557680055268080175140724388086420838910675209168234371093291567943011199828651265117164922724738313686723583394470335191314346528016029648123216116071548017920454113289591269192227732249872321929973028736075256822349021684550185177037904587738822557658620202118662390072183420031620368696998380891097284781936678068054696788548814701893433633041143796925178630443698751302672084986035503978734923540765649382758755162664831842615527409382328527345030143247580847332596761240325124628607509613032629705898464003087356320293037600066510488251351541015811002358934831693967339724525188713039718148862128440627659899793461221525034927615890733017206992762411099854005681895226848683678619970519790059949408447177192956683801357612845470539534477390500834951567728408831930903926113927238158408640075091119495656350245090745218346898530261129812387876361133763464170118263624264624017658314656089912083920644867425495605665942255283288506119069648301528621911420854290845076963658307979752667813647183803341467402240246324210764080607131638784793225249792270157855217978819206695032209761872559438657275514413078020217295607458035098405953864562681015477072992367695140018766885969144943471175765915482428233771537643286986381040785351285382187444550565339760783029040628056290681445447915957804432534181244603570858987450221733898141111518570051987347078306790195091284110642759479920476625474039345689501536418145542243193893111878376805351401261820806386787510307695140678155054788043372651158276996351702325201511405530188325511891973070510378765793728758296026029678065274720064942242744411941521689359256276992220235320216984840094123670473429043798935009786770941073494296061961667378955213051566504362704890634726859051817082688342696222680837138764152660348061414111537980305872412391411919662600020900353770933137342103501392436635560877792671526382504106376436004646811000211151285400047131348959126067739136752090841400394894777691218895492018735969626076005407622086494763731391590191481525040448820323217063760771637963442001764470377688253034230903182418024064898551581292982348134627522325776919624271501104139684135526563059514179352017870199003480996197573174348260395013838304478176237125855136947099336089450454699644521755424463366875644529377477436016510995353210755485287425197428829762996189414559506263938036909729813701365532658234861963574675088653264604081358116767511401716323480935055316283133574183612313108740798322143692766160264884036037514029827427139205037340847783444477985544034673025929095310565985266389597046488463011484168857530858808366239852803831261807897887379142005188389157475741978795823568479834594551425014269804326377422473690417929228295306664806181707960433795184068635053778633192153895752880022510334739295079238394223732274830937400091166376159770449493872980361197322723778890757684051781547800043375313422500486126325150442076080908570104873858489026656713529396889182089033628314927243035444039202012104838035906061765883217464707593098873230841644359566314899273934111858474519911603386457903621935862146663593194588641846460988108780773547986492976034758916623678868507500482990358437231643805437141598417391939870516674466915295573908491483786649201276829698425432707232554585377627129256071008208665217336009369544904027596492249724074689633747487672770463355184633034489585692676501276225158297999895262796433749507454855258180293864544290391127738205803159366573349887119399240278572967654585405637541002137129600411350447094581599043905420543021943226865824999285296056458660668614800662298281970723628827443292063638675825358956635521333856645171602241600183885405089808550083251036824814402628363524257373145242035554954029482560814489432114901310347864769521713790641943473328144616857240661974586983279756735496931964681754300831582149476012957796052166770563486943221218225331700358268238751654468903685580148312601887485372444568519712107088203486941623961307860253706075296072119332479936993784461584580968725055525832890363478382528033233311330670370078909157414041630091513893729154673421780739820858237552500250464805279427418966216582028454034749700716046618969319426441451566417714735918821955095930398040001316857513398350705969802525753232425353569742053603526369669379914533023357937279800016584873652681369833876576958861881480278715223493867377428149919329448065569482590163813529842079353423706993303373959248629375088326194783865559132528726315368245884689296284925119309108068348104241933216095067831248430241821164306174224102354832153843195209694595524067866461127196324728319707187330189033514437224401383565425809762423353564951637263694285529339083999108304479038062313263255192338027079557369784451266448932683724838463651621376805903831215129000497313340105551204807319448601963672213674529134332699674364000961950625857681620005437391773056379283366679548972813124465489521735618229919401148142054357267437091840357465840835427675110315423384274758036770732183903897176750336265583254278616329367942410525145546586292877763404048635117378585744335289697706160104702179737462128275365004723780797298818349330263477470962812598345196307238081604874015575624589695283567775123266891037385302856202764437857245011109456326453208784151767407220899361124714138431825667536877709968507390506122739321916249235296439855454772301535076726936324538163935086769894574610444760682108059542843703542255726894646917976728503577412567314838032771749792138207314320013342755152256977130416776341559173736970112323069255330869740438105034743382075677040215939280627474098593669448845842395041639808232227817892969260036237979040643077796114129187936120031874079918386688992129086700378140778672934653708958089327811547174817695850549486981259562762403019938128128244127970918110252090167737279587317565260260651160008812296879665169925824811965561001013732687286061184088829528642273373968640887504674113962702487821502538440711058465653123940421056139802795718943417433798250702870413273989563779337217455720641851556745715435284675811833556602843708839650750760057499225974226216366090926175222357842776067804747486504486352770316562306078434150797441811692522343814358348439221399938081014210163320419759816888877697301114999121763822620843005845072077316081352372754333917159552515905951051023013336700413289684107440747913077765670114535560043324169680142493332175490645308217707762478510389782831710903559204804018785654220481560144714468470137742606773302201350407439221826097665945845809379727608961402447494989060428704528546221034859887806045903812899822107696078138576723668522933699220404349804290640701173121422780307983563642416940727922620979485994082543729999460395273511902327376274103244427966744494525453311118483036365179656406444577202050871142492228102545469203036011040952314052425837991548478868477216372257643719963011464700284969387303168310398363148204322148493187815154260602900708011193998635742808046821337521434394271454184065109553313256342806179166497205221160691157246957330177359879684723793391284253361173658155665159404125565165242500162897416679417136529639970512537936564806947798169874616643638623324328920086204936382904263193992652467061884467172322391217677492353762978859339588907437527714787069523327431569655358516239996390756581375480631802322173132212092350022102262844092272713910892220745968369159385542987280244730549062495095195558906653566295420857895414139167780944795231822632536718192025212303810116580917753292758737269513110056920158286681807388861262522489837739384471137422834084244376619800932710110443109674882625999635866639877625294434395154978178737178044807453312542230042747927824973930352736054488138104551024308129445039670101153827171208486633395489649468939739771916406950678150126648497568874153401533847517610902425693033023136524704842602940870030937028810917440206077189545602617166301444357324503551653700072638425892490333420070218613182374924309731077009173151980306097650014546120158879719543425601624782025800297246880111553956026796708959700380828503217703706278055805894022766835082068695881755891989511808084016128972504973445824874829545038068114666431122427115982058103795487351371392781832921622011752973621484383132319513636556657301567487053060757832117859255224503139822101862392164418996474253692164492108118073589990007894030134965684348479041811802884197409569242069639588065185650023098288829790038953332638315315938560177289845055832263673027240821902633179237193712729970334374243286410154456432301955542244359956294957662560219053682293016799396763447485816447590175566875011016163071884416369220512669877847179678041953699320460222891936118137898012761158452694317756665917681015181103487234022619930032049975604980967775668515328685852805070907540996007395174979262756776773455079481436633919705202556041491615107141155086566912832338078379428604371900774403295810284279686698740265674262711334070704903724442238107545868130937101657664206208790347147819949402512072925182524848165934208980575680427047239353162639330138688610633949920690160641809920218559268081464685732407627430563264746096295731715167486870523080933359490654483533633742762268309410551640336111194706039275689652369121141989054965133916629574551221245575269859231515050118939900316364182494969752541182483997788727363425632786505293463676603062210647492304786737857586957594579493569213081366118135065132939821059147481202757913240642341725528089630247609554299940453088240851215565926118208528575422361162862086583046611340798226592730357811506513407215291075391579815244170670224311702445100989603335572331844305609571021929428059781035716852317106731098777180300681923883365972383187830357543678918446972168104019707388272599139864630595638410303539277770263711478500937664245018055715450890624767614237957778170308765340746392927875619185444929812331794525294029651833068309639135317507947491253274098938499544106896341799445233890832347882195329681882729395231497524053912777838226625815857236380678224005600818891376572471050948766173030990489469637462118406651957631967097114144278990181870752721450057576055181168965541245745502324548617945297987894497901050566347431115468323167560469873482077482275558084113639199376469653928990639265322700738577717865439749736493215844452049426472841452206636583147878844860551471169294604749453265116099267826047242736641971575636195375797753956269489848875874128961392372217178914005017005685752335281658511412263062571902790977679712578487825930727555343370718691412801631096577858215669848753119340475142754126288974495959821279356695037603367049102652576964991877527675572353026227639962619266537088694185093770994924805402506937780735051580339338774408528815757339174036229503681286221210815972181607212373615126203781259944327627561051538771321232698578650352543246068686844559834342060250925331049005069665522648116732318623642222577773601978915654537008937233872597587196608987768158644681349913545739657891536964222436198734684066495533004281987004123289031956163055285730650658836647017692919723845420373601801686603595086623718127761946363372860186637627370598998591108176489463138580069872644334505389977814878369327620434898272388085893626822669618568048789566260295215848290328695888203316398660844222700093154508469760925569046827277717279626499196190133784318345728890729393671956170261955224034135660216592122655449018912574304829207965604279435187378998732838418886290277378789636393034347561772785319649102180009994285892233467438146888516188321996898912234148517020352634558229722303573801619040343210220949177132566095144954683049992410258677911093777038417992637602596133663142938141544795870541609111124785912025130971218680624845092430864104113317565614386878008858895932219792227497429093102375697327413488236343510768614994432028747191637094304192564227468653351059126805108685926521483195091919978699428290637039013209249205180283808386700459627566222189068650882480866699019572694862354179394268184059231830007695365227475654926628382325001449780905300098826653863621784508168019476792309757678068029234292034072839255558455807132615593500113280599108553046153264955509263905727966069523331764996007726098491894068768075916985044022332130138493901999323336483081588589929499819742554250225932308532493046284889631367164079556494726944119161879600628644176059756294930932791262397102243853933880848189508895874978883009899805513763790601683113900274097491914945536275668910699531200557362527058080201133106761891472185922186568274787084243791283054092912309162873728379934149229478857498365300481555065318935583578123243877523622013390383205853307910443615556475299660516488516948178185556069936954563611739170115111472404852411977433694719594922200761436276879198137454841587750759099325065031294553798005065946370782043033403221170551422047060313650375560829225070043499396972932486381893211104864263203748443289159174861753308105730021524610641216029765578950302494425926622354870346288848653632485302387870338977712027996675307022861510787100259771871683528592063474861675882942713549998292931924438318478997575804708174241814633582899197975509255712512034395967533514290327872894804698976344851083948019523827893431861488619414453611798861666615782141634501738921744590006264524036503162742031400233646860929096829913739271469675965120005296842645082849364183003112044120261629475379849030335512792667636994400379863918263210916342080892335362657791773246094645995580259295462951270646422904080316284584955163110305352157143382039985105204603459019353896804063556395858100729204404913985860354368529470247518531227282407562664050922842467309850852041390847294335355264145015316027332450429552563824276956752995480394939761568496173924050617470211457544458756970774653848423493827222601845529119263365602245423823077306049409681337613128974377319310241648044617954111165166649940976477072786092001787136811131996100360244949419131694912063496474661079557239110208898807217936953994033992944743781575369221268901402448641522554377640149704471431036016275280823115966216401006367671805896468988780724706500524395738831251686276262651090336491226877314542376619842680726916351006242923707508898105266267554914450406297312714802624111043929651026221423859559242195577057190142656247459734356806669116717294507594231525790921295389013665988581761329245595119467028868233134370730019179009539314705680608922258113221216697132517719842996192572266383302485082791072885018718947290413144235082906715770349606565604402196035777825628410120596964616009561211407617818048689827583645126000081719321357946224993921235571177940009179598620589116480546129060323589795501912791631223972006487113780612109911918303677837654801608892159603633452955758730650314151185118401463724572211071941192527580828766648775588176732857930889324655158432823223131139080614685385048197895310380903000878494190555515519498859276996244973302829368087192913132348108256365757734232868769255932618060528004703011209860591138760299378477113987118261024891065282785065713885910167548914239563211691387837287587456572090005022291476510142432652411773444461392444503212920933684926618050880029305147873853883534562824360331712123260914934282865629113931047091891440584196441387950933143973527759238700316789947276919402933114322449137739388465592065653361491001709341564627624654419761242692599757180746941393242201344623022105264501517388605972136688498167837235806408643365936499295531173304516971904127023553384758401447427145444237293075052579036759250094016017823214794779675227548932106639453300008753396090867167627973526262284216020260646729951047760362285225071147849270563974589480815562809064867111380974909122432492631754143867321689217522433055817522370600327877189578036389622034401782154418718029105346536867606986591137941622331828887641925659361740399779190500245684355926512524260229482690591820400175924910127861235664446624526020029543583103571964909625995956482023080424795123439370558346778318238435717811100750722287022810836085816932107034923020073381474739867257664614170548191635513042366281122522298460138771956199057261642299726912158564816209277506443039504260310800108261154025463052956466466259031706345720525377383128929869378677928534453721215096746292368626844411948842245707422837443226783227835436397624073447073827550465944440597479024250881390704907537725932832497657881619082635492954602767563557099601593431642541086742601930645798997865307164818399249081247727712075108330315343843973703901006028189865951684549094391021239192338969556800392384574953558279433705920754837441532470562323180715174493235509889456837476613700934655187179916491646041977298885219886216027585239710668656651955750203119408945012301695229532432690253627998848660626410911468316227915492954048019410300488921705893241633456005315058511169382979589065541167482579980653896300569000242698071294741561640624570600544499817539345568129004757710998038493533672028126600503054429367329488682152995409109495516091967886909037875209893954556941590690957292821628931332966411082934328708459634591505261502234526894236083033444544300390384610793678994517984507756686005874304490374178680567995732167804969821662856082353990329105067601350175921620161662763479937282809695435340301281914057276109686074105603617996005273907391709136612947436470908925628792109600884913095356933529723888883032538831250578623649617708739234772674467210055667829077099746094426375838244107631617338035432362739286719258417453561619561543895656219257479632420555684036767461517039187214728026932242079040756304409323376777389892785755411227410649180300464779382111052854520033557429617299993584470470773329485702146294989244468162990831570288867081735244368792552466772615938650517906189334122773045922612583398418156117767852159531825967572647927246542931685631533854356972463407733178672119178069854959386485103505233916302398239357343813973764912713455598856446787540952600802527356392625467523394586095350272187904843518215939167831150403427072850784553317114430136494874296238317369263464870544992193733251049782828429412463730512005110444001116266350971770005723251640369885848024724204200666939275003870854201501745946537378632010866611069851140301556401673967417850163544698092617608156651388925991922809204941403935069394739884024679451023649311987700228272567675435432694982067017111382268232764360945624926717855269195542315083150023239409031456401884849656536033133131608072440876949809142918216829185418342378851822825866327073372880396958927671099831520134939387971379915313954506563146709389694064007610961472444718862296085065268022101031460256746549246367704599312324987804185686205992803039219776703538623850092900797058625696512673691427286159124847300498514158933468482072225900500983126429853838829997935310272043289197288233941566420464028501142559552980646084001916839944758850874755679272974607228950975387226135020040358052951281606551144791217174957059348292906688501015141304290069282444259178152541219196985059933446259506493191038715898821761914670564445046366329490143371200136995550618897727836697286607091705627073168780733910445459679762365185247393251999455668224538773031026320336148391145069721130702794387253557568955011521225305725054471137439375395230034422422630673435398085666224919966741736179423314255920380275592215834487145249717515279424403147570412183996129521083760601344645734475426444434663586508442053147222543759250529352414181397322823256806865010472981216566380703030023646431851191659628415393977113869249703537226761215272527045072617157109760540639174665098154502570195151559003774205061031150370669054513763663175078428424761160344731225109395592249119101680312984672446793331031848254796431666763410750620092745418384282095631018246641853065570462287764674031603927217569557578718998548646162401121769857877150056160102295651427413189515169758843391583795910790315044001605539072441201929664697588685292736052294108021482664576167703674435159954127156096238483443813239041335211950613599579708415181084604231693054627471901886688626783447753107514479567990054519255296763529065838947071548141507985080364363194982671666946359874090298938047517754602698603399498292501722098183273673172680616291759497215212820732640690808498113321032058412277879290367169473161531846779145542264485394160781036651301669805596694695529597693943194701747425689083044737325117554693914754037658504124490778102530650779664925330995510288429210178182559302934285601125036330819297338429885496040619013326293568801992420541481999915986216564051211535533293292333978599398309247475802937585794549889811595139870557531404747233570897924722677697263957441005448746512965272685510284509074168567597787626654367225925583006101099754681092374101380373393570079004363714342129739646115471640492695839144772390016990141025581905566262882123388125731639051176622069233894272580126054189112416677644548134293930907700071298798503919017018233971367080286056314871702088997748823184747913420367679552627041398154014035928002786026329380105662363157930263867486165296020613884828528191632516992399366075980452722206241143037414224525964874664414846130985798232775277770116201456452393888350522421070913918889741543992662987365216380515917848598871611835073408335678947867755227710013140100021607690272305279268785964265882946268894743635948726942261541162762152390191939800308560687527159558284412306160892776282289689549255343875958195026430775527939445459539334601266265164394867023798365451337237108113657001402569379965335252341310795536981657113393625641157437019249734345136592650322531450559720649054872673841023620105097105996511118191556694188606076146511173319940012337288610800368859595496479983282013346732425222605752913168875082670885362892623974862672089636594987593830937585585198222666115023285941143865535449433812608271707001417265101812855953590364514650877244810165050568634710311182088191527966092299563223335092450314495943834947411103297943696220234444725077276305095312278041913010142198383235889894391945566158014261569871972700485626136529163523368856591171699727704206923346876342527496745594645519869381111570346877390376669781881035805825591892259358567075314441009079909653278545474684981756456379073802010643567956839763067734081290070197041377945387961699206080433178134630479558474469486426457661838138616277636156475196499524841629970873030094645128376048105875333402915814497463012216401381257132848468991615522924473381481002221150857122354696073043934283006759165120194505396140433793550556777572329347359863513450745184800675908449790788788811839836062685316571180701061696764953997462284085774659693538968701267242526115830777307659372326567796896104160679967512217733306145615757150066197648894525396091744136459047272207017243176662821065573630705650151438118524605807092203223061316793727917558680065049027329413280990549676447857034042472215704746460732919597570589141755235462117837825596669539382605012357720772820495871901622205465238326438891706211758364014963286154371176991699056514284918306912258761716838636891021840721457525047937441666827925758106186995835567928145600599617042988430508545121979635774131017791261531600575153173612432983151339746081217798431957223962502202971409699879755318189523375593804705993748570233948580667993147194508013958270724420173485830822327239811469523754903479734958968513005853883299758391193991374654009915759980427036405105883941255652652753715590396327963994190528390974200692039548549262115014181173694100595157988007205039492631672667649585008259580914102866279522625152864897482087702046653565311111851544906584851027704480517234327530549928972270276237799705866072295839739751490712500429060290550760236249189844592936762056049882656410851626088082429336583922934058177484780337072973198801090820785106410302172155370800573653531525261894383255014015388725632258672886738214212984288701416294684881484026646270664262323808096134709852945583330869486538494358935232299841435853490920625218550142292686143407607199180778129926192574032173326970908963115799506707036963931911467098842795516757709477973322641687539153575570286471533802948735462371889724829395590069795032344269668580111766163814194237901520678654604916041700084641744077518738464380731199648080178473492166447635290747983195562638568722527240174511375201826982464827100254199711373365354933106968329531994511487482825468896210647777750675500325536608422724489879089911721497474693999630578070459145595615925952085449469922415184662220478169732414972506677797957043376609762671894579134638366086482541808140437921007044970814528726223611371194370249486548816819939580650425961628621726000174467079249317444666037174090844948034810375382499173898495825895551186300559124833580220930472254057922224538388301082890058786153403879180235515760465211942084559851377365359205962051785958049497541160279268316802680287094438190865840256281437841920188495751854307296568850860472363985112259611479990980271773697038038550261173245746512712820893183512221741268840017022619335216404213253136520441067290216798292499581473009091072994339006579546495590505432534703676238520385860687283577379985075282675459720925242972671831762382613096509546134986254640572866814944783686765691457346217327542663054432087629227528168608482816109752313146480979765822053986499061744884421679374386062996045860459318317277660229533863439170536339401118728600461641619835700922458531639960022911696228832482679589709569080135299234615002595282164921668064184496630418032425497425573177383913147903535682699657146672751516028112907792294365358330276265534917011717369411470997288198226404883915293105867667783888261688018659427912395502676520346350435361017237101715708797728178966740475384126783275062518862274573934289077343864082051131894772339371455903474601329120045710961860137729457480732599566999401049696757235420752519051837329665896039793754317938844243208080340003296863159308669418293464360840299423160209141563035397951116646901843256899536282435409182732995434875047375963460132932126464616293532010888850752069283638675492904608928087952449566317277255501543523981729702129985772311183858959427812604149772852788139598345874021942484038583369899071263066634541066105539612007444220428974031720691241845980902747001787044809144837885769499300645385289803603822037163543679085493211613112231008113336227420016231829784341651474688898330432692336245323807073080118858701100218123324870793191650346713136599168803598412124068341981800404606304351154913360807006790340438153087660047272483858472055574224490496492573785749113796813160669776632456592487352988879840232699541008016657738952562663749118127349443691360753112987088249396604897594326894455974170214532438470392426405793935201544372833570600787424701322216703814956585157923461971038961641455637154897898486041645016447007344852119905433954436730748803948259545932028893108681067976957517080794907649267306787905760234865611556029189340519508919084816368761346441379838782847479488378208172912607768775435014021376256770414200487476968266171404087830151439182290758809785090918735182710557919678721374632963080496418249242347419839629599830074561556031135213891252115824790241383208845427355925552818930082275605543332671434948442842499487067538702409615231898648905616624405950510839618515284507676662637097392364101250128258189220357786396572920698698628860733020828682257258883413692141903276435874890911737032823371468445000387744068859852137546724046651373579261411050127744617534113229423843491500652556702335075407474234130828273328250345097611000752147953343227708426641147764627601620168653682292572363220080015384322866447312405149088976722924755195594137337021216775007986732367523236445409432583738705786672547475341494886559926436392387965557846171346411577698198834964798546718137612398834135040102947476789140025547254436123638498804366968575406261268145377733060375902071718611526197009934304390792532755954862852498067469685563531189237825823810020573571918497780149058359506015934336768519077943359437304024142178085585023464666965398680454585035392992690766494904539511807347998596490916286431609851497103836930373776186005815924838989454829899692976400954317962024961838376576012455831626365491869366243388520720530882899017861708761112611047744507038557992176866707670800188534346564725402734022924462700348655589893994894979362004471100750501188512771485845273883898891416815696359384974283205764823268776877735443742746005676689604346936052276392998203306384276764301284613923049055462340846566695482791036298103958039258304375566926585424774569504848042817499719071780034299675633723095598303154934450907578500430469820941834644568040677605375682833287077543687931462812604574310086252874552400713563305991307419626807587333877500528509737442914290983669701343111486753982315357299127911678050318012788985781917663136112430826877165220201980975542375213280064024608932775785377988035284065606791723220031984392006186457790194523277940542809329534378443327797076118040290572950252574338400204471812374392804218910759009622150645728006358702271719508290666182854223570856802204469296264403338349138298057422349789262569954373668885952840706506407340686675661764626664067631114097441137165311634180299547073761789638513845507099705109260818912015232469408776612857051927817675419339918779347983090389203978921616464273820366438160062248311457168658305436697409742227776072555899909667003678859283021129259475066246737894051640866262238456572183499750788764034352536732717015648563869054342447497959480793810800276623774083158991116761554946675443002172222629952677398620599223404117026778198458140564224284526022817796817038340399083777539669677735244522096682444164750112663187181993246191383450612012456486039672101645095643231455156188955983704733894909001097064716751803622770634354188020117973853953173465793155196832449341870438210237712128608303432357605153681839122518889913241661289121966555482735668925168713949412684129703191715691551720803698578507747789049339959306407170231136847517593499251480019340260568954769763780032875049545912747567075183812516431698429446025665371575818099985536568312851357765385449958377973969280558742148220849276724739957284907766594688314083114766996140399619982921726838507098606678500508498550959533039745936575561308220717545384701078757254904376530812158706925377217736705053556658844388790764431038562862609956826403041389653352758224604468667977019420147085724261822898041150153430755760062298814501580937189371561154738787041585089086424723102088361888991838278493138682322224562644849472475247452437447838438095146156507385086825298846688703052082140097940388999925016352079148784755073247940175291805481135361922997823145137164099453032856747072956074036445906608738289858860752417747573997734745317350549987084063368062132608721698932155311381796433267507395509298076038295777804422282271565922250642800391397899339002367267664870084046141463061002625675309917967393693087481926546982569550627817939080192187005860168909648639625614905160193292906938033432636210136833004864130407873361660476354510988784001860003025492934507493868526848427159085918801667467443662861179975224917190505534111126815272450847398428672758339982847331614119810096405194304137980179918180562863650365160837975776460341925374382079548116221838666189642717113825492446105285509058614911264706336407636436257143223017087682565137481219980065364467697277238304424377013498499488500953511989179937700060948101972811644974019171022938215972621842828086192659561862293126878034956219153217451361346512979749313239150233770238871420693573562229362729256635368751106764490667047577069302373912236179096885147614487429774584855617756071463499498578921348686506805248519698829630051947070432688200749695190080921103316606929952416661661851530222320589208256769912925306217040040822685123465184506999954380825956345804455861136438408396211856634364326525230140451556706266907439965933923905240097042707253426582526356559673684799099452542804369560273065385403676435555926084743482264555423565421424403709505226153714791488649804611093356239827054093346240824864645744629536648039687498673895079791223300823689390564387236186698989882918687139092377332946183500933589271079131036643133461210645161214934173290459786844989587992056812651153585524818408527126078374738171418832111046048262055428687734543151617177617635180841784840437997110829659157093796000359645790464049377371780693872141374896571390575139332764411555622472469215555420305562916386402171312763764093974203968738106481435242102858558604761559833822891808436422911740395911714093408781907941357158238800190866207967449670076357921985642577796787708181189002708131027558756109322401475040189924075850947244035013210942089462273167243966024210929774488194354885308885182480087800475628162820063487106816097265351573585327630592408055352910604737308053626071336532764251552574535308668783463022245293632197658319437481005525941204205765067594530916352111675111419557636817054700433948875259391998136931596434726521111059601115534920986041040668938278854345215107095179680059968462316773369546946437456185497076976299631520967940123266038786045280263472731833478042189414126478365133364896571833829374186429099401706091136684509815167880100401059406075931141222164173937951482434843365655229072373036973184644135047742422836775373717275332481023083121010219739181579225265348658364077677922933104141343818145665347694451663547857756770867451147122628465111921035185811484584584293424037361956563359229444017532650417977493255336326376106316560368067083268393136768519478338217771249065241479331333530726052927528468190810362523227599135158453109714961369317799974862120000556488212727937330239065865595357781407967218155721737502323309774263276887376874500453283523499218596710432251012867772799388904849876252891923554843963827184314806463462809797945055104301633308594963259993265335525421453349849063023002848569916805947387091540820131742771344487749579667096146809683655423888455478432445820645514769675203558575513891971792650475395931304621638192707931690432002883690742966803972820619446387274217606993245113597106661288204861500435529068135963914987445733222745745839527047400900784886545777016677135302524284871077477742638090896798745504044164158172407679954677986510843094351354920312670422478799120921625852799819049616694462431660321779969337328867803896249284888058451400597608641045265888445802682794220234420520488853679999674788958726247095328651244252140372051485028391144169123477528147412256823757274601519502704364896183434379596956198982618815300374218553952745706943998483415601859197784435057675664564220471576802769074955616483727386104008293650963367223855550950174829750531525261618800942849881337084362649705861432037255486262453120349547139636498606142056388856344178210986271629143711156757520316628159084743921370839745412381169645834281233119852670823407556080984124047104688327757461463932341142045539907543212664769363833697914123509910639824343221150178938352489209065363593897599476352923522970010865563367697982484880169284410430090391847563441186446932592999433589067380577789546760822605963677122985804641213720462555738321481268972598766893847681441656446295353720630345851753454172573589577958085242965624322778728818825442841962725347767134614829331363894720182742099498987496673286187783810174627523761358279949107590130574365407000201288082300316054166159140535903815077849001893796393900362647144701551399818800619859137937731680151261161785161892640632993914587008638259843482537679606701649561753266877877464802066268836082993846262875351829672736580163139303442288087396361715060607700738184919521659101218068258888520327130952786985823141400048401274454550432913710713448378443401990996592442297101142147650992011781328389662442366237604050676983687873800351934182322905056348076758916792129800503265047117403683046957348510531623313200721228779628532640133224177538204022198605795817936735747037880542305720250183534506148940583421974471052470172193922453710010446318468691092686222958590248737574201379084452831883185983258425211647752919245215642104687808371541730271808341930760937790197723206082095464680141285485143797253872885787492818112634617354566919947225536574846914188684770776166441218772102107953567030049101166185263928681346997944422497746509544074783145779142745111738643309664070837945533998657668872016789219037453339867611293626733065742171572733449444364144857343109756333006290350710050275345588229396109465946414393685441843463323583155368456919998543443578232946518137829234466418482153473729517323230012931983676067580793388090077395611267208200915133635013816487878077553649490992468577757044022633004504036012540524947492992302073148785584881313946804158214451448532685450679254531161191776308246087554937258314420344840646201174061954885380810904869583010535156472780985862750292010485737524135497294955264102229601438663449465707420815133225046768262854833096225835524645032823740802277247984142624106632646514522134778945743905801235641216221353865609261759919293334782233109842713430342571986658850853226270751353093560682323764565503944290516264694677925099546450799908281545301827831775647212479387588538841642920519527921933021689547776000076708864991500859477468519061775418253661613279196811960446019628794885818719903462330061896638422349286359761869548400238489928233528967820625779848236068095019403328017049333306071787572434601679267815826204860448493403494308135321599843654936748877864326087961371160698549865073458293519653542728134666479176206738049097653992712078481175005984314585849108808006748638913455981915234820773077899479200936631382203893990459655464367699981776350661543014567516793349437504814946097364162780793097209777787917885931916038840123322007870852010039608348054151156547688272862895567042829541454492949036657158605859578478481849980866213829888093595451848019304615673585892206103610365854302898186382424178280024687384517032953455314563861117712785572168130661538191471387702928166596426985165633890955814548442441134549377215850313657537453145697618591688548056046428798248576773514540588562920103749812050885415416677798166764676266045458897940810185578400664176508058169826198759779772820082109740362640225829162373416802735650864783765937629306333728932459379656556158287522199197227141445894053570439615843098207154502547659180572891515024419568946214612133491799109453934203879065423445749146532118894059409333958877107594585787933131203807842908949720560101405517974243711276095406132341093424257473415688944054571805270758998146324296094834865316578724757851706405973365610121583475849682256483224045214548404959796091865198747311432648067525197538591785135649837337179710143623370016697653702429721962544161592490311153229850462447965484116178378083038236130740160515351407115490362375200319015383466149384029916870892589049428455061663222894725550048055204726087784587179305100351949080502942766674796071906742815622483031775214155260728927414936753620109793627091011532108942203618590451694518859513693554060028634974509872626339397984226331183016923326620324979183068433499584327950537062567536847368019066074430349760917876150075117939001271436379451263236449747173422036790140257841009468347350465823606401263755340274700629151918988580545970560215386186293322289307641277240401602172862096960549151337833679523646835406504983127808076577903790262161075536533760224861435176981998401501634959820002934613217239212655195287323823862397412505868342258489825450986757019731540684930498872105204293546454342889346167761053646174791143236260977858590341311861390397746051227989083423736393568887326590050994144955639786045551222356745547002463835312765543195977199264795196472807068512619144921160238533819856596253455594564716676779155500379582859464924705636946957725386845288561219926003046306131575326769305268013911676000389778201049542870340001088733234769905901739158494327146497371255423543214075237116031684688246149073497737729432728917538059194993686713561001953310079053894436970774421266060220577841410408030172305361412719217396466957605198163805221645577600842700289495086500401537654488575123873927857850946675408343161003306173152797498781572295376001706720243225418035949600334569932933922394392535836996329641601032949017854286083619820603666535556554053907121491930342514454908307724502877887669694283212152573640372105664850407065869108677474385796275612659156158838025240541916023913738254642974218064104962136156330627945005155930330725541145632129584649913719622478715514833815908659734333780674085876349334027134820053148197230272195381346603906731852981514295283058369439921694016955785684988114467674012196844775992079712806281235971709835908650514129928982763958191624977441975576277681309017066440218812061711538180355574095802807708304746925731826372663838999455461718749463406604558126890611733249235589775229036133344534098977630594022822805224154384126514226735444061725439085042375019036500986059458137918233820369790284677361108602392898205709177395792131561590654683131747700477584582422862716464529480708985890599155550755480867969358402716577004442553035789811311629460963564755888398418091344793572912730126050012582234136709484684025340838256313050189435414692434484316686333660185355270708523857189724081018142316532455438976910684335612701834708399650411703274179135230056977924181392763637030223358371289063705356100917939143469200971855989450919845718366558665328026076678635909482996077821151815835391105991475241311790341007830272680322972536228358671601694802163557180333657171547018474915061866870027472474032632856156682217443764699318681837310039932959686611736362265501649744749983415286052638320772816652627796002068319784851337678058384203406122087470299411428260276680749306300816331338653818233923870860606663955618050105334445333841589707355968744807077136251503552649206188608035397595917422838423583291042131719251959791951349040500812072125490504707690000401457238010499684251156093990052862685000036790814559983340821674845751958018664699113438491567998440933498752474556259933957581773441623059481839584033880950852580724283263091756804614827737230506124370607314467925658993365842834087349127904930317911522256995163245203723357411269856217450547116790462759534409362759753528007000599267290831744897805787954455798112446520003039812125546514140300236467161326282894496908633761818901940837835826959907268997848508434202054309664881419165930112031315126380526903535539081445091211739955084629015166426018215603853286120467078030902497196644734288026989787459653531828663114570074893219827667216715014757402205676819222020849290541402408967520837251517903583058288214719479256044553888945895172127119578433827898871035585466752516375652277314788436400059829912121794113666918554540492098228951070185597300923558055094058880547368381801669130443220213168448920091572147671858938631534631544471702330423779996571845936672811412611814863281592923759637726534664223866018675831017757339100052228340634433678196140737433748030205975394932348467000200354835639544559529381550774790271090352249467445276675281167328206283031153438449797680488983863685948699437837936958541983952298700291302197741938882087780388195727482999209510113343733045291070864933509863553904795509031964939370143693816095810890609091381903675382236042226526200026322244101133685062527737361089741135795807839258612975277158743459890475253049945273722435454548905202005421459273592744544756145300329480389429537717509537245985772784280824782752842377026314224577950550591340517962846544852859398272772048021284921948065310511974542630775367595414584277339764595706087923366414166878411527363642297737340943280182937813636472848584454990044603988974894366292353331023375473077261343640293083814921955068059088080645996262330521942152427961781631532557494026234651559893981126230099820603725825131034730145430396894098247608639379340023204586330138836735935475434174303214222812755202458281326174348338899984032632613792656545293777609093015845212682043033196105935359502653891438975037646907628209274181996034063077465473474772567430075309093181303328793260287969352307102471218740377830086412525577809062516602378917186408839913527131528413679337926417711589103300527659901884624766757156738019939187489126607296658242366927504747777045179581200384407183741930548756446828415132651060010071230285733339500689007674362391369696351958927191576384455993554553938434827504235549662472874351686438446251512138163345186579879253134957627167244062308219892241393239473530651174218627695883072173287554966502207894671769986187916254269826257338833551107741250111056822261291404129340118095021061204149732017686333107404771693322527846746097251942965009760341259431375115778440507322615207749437470793188868698215122590889702819029601797017027307562162118667447188554068885471234809376563930090079587145266752011285453219951395225423393878411060774283230116308870233641618412103712572984076311161812329092111180126593520001883250454290496941482349025945043414351697986821846487121190929940264115673991956109604170024538781021269983757124376889379331176757596724886060396044051453531347681136178384194684216139370522215016808439413511185754467342666640773468994268640264176051915522644110475397908403802417443470470451707190873701263941468344629853458614897305053002657001883153654467459779324920592457141265663899735223371602498574894221395124444599820956180246143352408618462224742344509381127208867251547889076335499377081997258209944018326952321057064365941312847016700195668724986395767549201941646652301168062796102419695729229443228531621143085467205312035286945452931623384060802942593983428879193942069311811718389380551220222084453239815102688475062655462396141563773158007991413142032840059181816517271949229196104873375922708059945186620416512738033657544747720810047948700272570350923159798912681076360878247911545077749643234774967511642543048228608240144033480750344404430003503232658520325936582094876132505244578200282238217955094129273843885630182145068733433021794535993952768912703993080671433212750392093732359167679903983447561529453821701474890805404473257695570803274980237381970631777853505834593911901310347872116946012370039844242350429998790103304893955481858526457382631048281684370561682555508295400245946373581957471398018605539640022032820329843941830348310226552531626453292132918371025448903929357564817796036605491311913147795820069736168604915798309967722210418067772155471015691227926529402053374871353473778516467055241504012871546540866534431016370202441885627933257199886807146910115974007526605629663769586518001643426924850906299741018496016404962992317670420194939828219030173487279100690628165375802803164204963709005836874971436688163312368203925363795631810522405029522079421911063057600138514150731896486225622491604592974727956826524358171736031562075947540439533981195718362620330896903149488712588332972317009414902763702098889783813732162492276600677261306428792881350501786213246157820388768343204987828165348720406744862860593772048180112727507534165543104822034795645170779895615687475732566302286826774598671618956896675690763397201095817518137749130319733356530014414819475252044279183606076848005061210542467944390879457580943944230021252928327199995839749115987022654551506901422812906667462598436433007746917401563279444635050908610650568434021369755602910051027552629237308583745627147655273178872764501017300048764359887760740023599933249238159275353849128477533167630458857242355757170366058434800823248294898523844545671100420826259746139838296902048483482656294620798840495213135192310083507710946594603965483616345328043978446764077185223995708736761119589234018914636480808977461624794477417740789739615810960161241008909737215005716001487180164100309204142158811465154886423397845039993026695464585949246887625646569881046496599202832437739881646881263355735795643060536676041655390367547477019465468350399606506595518375418818954971047477115504784245763411983492241116169813219031405126211768463431517436131458656991236015489638312573972170486365521086904023214747587881685263171919614114813026717361567049761131006880198220624721885192661780965585025253341106607150750900060376387724459977656527723055053594859084680834909120242625840442182141276785028041794741244076586366083184403450229967302931638761243000057049186933545460111315411537774957974887674826652818284353855541293731337196832155614971145154195616661883239510566399815150674988117451152229257290464011794841572628752836403493219085510099902524785516613604503593286253410603600995633416968812005885755513409942558845408032623533267040963727002882221382341009550203265372869002924038238855132334515162567293502429598765199514073334609463483051330754402111057335502370143713368853183956106027893698469220108547519649665233866497023584605167696706943499348969989532956358997024639626171951593323347777357380354707575235593230012628619825882870430282899557542261578991717101782395122599781746457216124018051945037305530994631102025930600574621121596920069711698991913037627717320320245558085771768755560796317563885214372756426057163192479611234558457362441341783912340704697029986476029377323007588869335219517080795935462207191441492635432849131333724896426541731797161205599776539559795823676500053141323710684471004447067663633375526529899645496921303836190271635665818614287896442933050158410744465079088562067002363481053534168766581917486063323828514535807116241445329720138588155338529114650156618188503616894263327581327674890878592929448950766225478316540740732863488170228717124198918647989116961362271796373366432796366280774330215670722154398539130873423663539027502316708370320165220878487151128420740472377105462638887616789418294871065080044049882400499486135200134690089514238288331399816428264010479662757932292672905258822480494602291495461770711494950241988058784768760954050892203876190931033116610564688306350810695440819210185521531771347509291236645514324639505158704718452395511442943270337584826237894388313908055978705156500866785118347291140980212772006127617248069292050238142784888934799913910588106636719762160311730853609759138333672296917736586227313235244496472260046006616056564417913661100974401526015636805735295438529055952986937665806809719889944352083957435215229973902422422159410295676213561481495092556082832174748955223657057602451091868648646120189608192341074293690683437381429404560053306008772358651331156381410891667864963165492408370631438203203639281465126167466310809448285584278520219375540025277187918095224167373428309476223329713014767264172111389827038668760922960497520610079967201770612343221451827943537048700054792017701437035855264071331204945003250779669056105487679220315116524110538251588059974131066848281424977120832664376905624323400723424645734594652871814503967461410344955510202807292521918760048266675522252411315060289147370777202834365253403036663071494352479861622486735099398339956699352822693595506914559185169354989600778546663518280703034373150973393202230281227827379216527139079135366486336278186950135971231129834959481154069382231137418381683906235639537005667381611827867487249452198828067528145853504573791769855420202670299380568005654044642696726663869745947948043215275226413286171564138319569732958843189056543398214624851250281310305184493440569578976602486541755805170822641941244004497107029834848338604708449032554932480831285227631155643806547277717929133386635210221863835815456001045935893401381988895135710783700288251346724611754394446220012068855693156838698575372143961302972134655708022602623567747046907146802500223130430410563808685648626725723571529978121150233987011655293579980789016350729092642633841483246524297598725558133461903475300418281827926903513068821411527974661559987865529854031010051680559436353995578328443393362687771309151109414998453428338906743233744824430543794840350351861760420219233026546920383807821836844244303696005711516110415744115680181805863669755347545303370777204250564970586780764777580069020090725501943537167312356254120834590016015912265269680339578785267905579490399177533763515275522646798485705632681788934634489326608213959749917602400191618834140524647631426559812446426641440007892379477291417217567662245552527579492775993037599886797445733454956485829166236569782084584634548711319915458791968724442974752203961495086405416813848912155850404921138307698439541437550910750836998309382572614499615850542966615334256962451795929572836065660509087702082214776408702311892293731131424870057483234732713872520233710581147812332434232648545697187165814480503798759893445566170200041052473647385411669699519562349003492360628239940772679321485985879344961634154358535969416212833973632104247571390852042927703954171067678214578368388704740966920082375985925240256917152364870429972529522230830505792202808833997765318890420819215691145929831959976106716852811185394569414541424833942160373459794942729792443714745473231892029192188751517862743466566299560237166014085296018436343082305906544555260007530770983344157690042388398678763613874909426862796748393605101897668115449688846645546746026330838231812652342210277975360681315036758841418996225871917438050064589453872529912589380921993388544103520608513123492007923386643748942728406342293948319519967758432921148997198151103943803697933624435791643508437283198338076928965827217519716283122254545321207176024780528883826870367803120133614699101638996413981615855173346926277384220063372025398900076825549336375123319656041792607971705613056175994574490247281314797211431477318529383961086859949471172649606355204480210079342976619697097311038111097172102868191190882518400962586113375464522096270993941650722954719948830076356497079466719263021260343427385531740204130687886495600750568226155077188545195532916785853176011475753193430949692869821185408443950865756785737186980008641585833767429407420559836326500471833367671356803722920594082507079967865445218094759489014681529408986591633212136481608077398766107121923188465844853226131871996737389925283591138271997611660564240230059742292944769978244585407139988360646299938650767573653496491466133947116102646480540189276464263183671158120794871685176078760758707850447952163813549941401590146244958299864573479220271360882943275387229588009115805183186803728954537434547131165182518386053969923748861719138850285154494539503657828093816974213568960751672466410800638784581924038234653759895562929640550298396372012233106369472670116708371034567408511465457550361998325481192856425844766696953289685592999266752183873859867055683742440408052189283503666161468933289147842473656878615888347627287493431889540855959629427162557639786561297836248155507592352691515654123963058764545095026789821256654139681153116200252158684950348984581318754671305378745645210197758268036011930543991518571863606605526324853398159563824593079297394391668727076676307878873658951696931715003455787513988606222551272523746776161719877716039810296597209969544157090231796424873871084311499672013483550986527841397391779773607562378027390505962226735816666973855893255817787974310787664549738063798248210000716349467810587488967259387191571849155033332965421598176448156572155829079520706777376000181240595175888930066682048617729469186521314215945597018403644674419597174515455675241033911537884290162025398533961113446075266234788600741173242718570367066755956197359611374222690974876718857062074788542896550603562128186577575264565160117351424305126692945566810511938366298978139518274440504024426049512013756673216714740525898459514515949380513192890064547309899252828720057802501949109976663257638409281796276157412829308647656272921316819879087416832755495345756850763553613101038090631068142818841006379451095939265014452089968959845716081191424329569622853003334863044289630954123319210232476549404153031604578280804377342086696516203369354314712899183439655115938911506182703841598626839135686269388731571775354958234432944953843899249574367573001819808118390819459896700446340073683596167112730958486303889227211773847549832382516482319627810755709367668574482712150158237093449756325718751318802424201586863968000887057707113913838001969126677293400256873042619461344543110133573329939027149979599790146424905163104874365975557730989538808931387597860180522094945623711978585045516597591749021726263606374324393410898473008233076627027054876176405228724029647849217050865823557420058284887381086514642610265896828991333144219181234021084331422287662134099552236412898902124813750763595869889784151152580604260520293753399543027195346910156461878124219612968369405803880133437543587269858971277518880359411387593704441391922135019834368208494413367157056517530144171685090610164112422469466019952704602853540927397423793225346289140867703557192503153235334586293565848952504097950823665301802829405235692465067840708396951480337553615203685365646464026790458683278556040232964480113212233080007090180411985174205867955269505328608046517012027206759925367189439945441492833872773117109282707141888367349176753500742471727078777907718587775321507019620566732284441111483117201953576947849180366381880490822447433315060580501930621682872511340130667236470747065139600333975635899405689223986179466874155202471959020393598319325973895527177175076091829252230360095967044767211113042850042458053904161602039814443648058289455067210158682535979601374785360026544188877222642031507899214846850645823872627846680283371288180695539584024826924283104380900133342074100027515314172880168405720293604246449966237519439824710264059982616985815709036947891431802342889921941985270567754694099251942715370617894029463454122687642015520888024841467424741501330170206656565923248687208555667338305780550904571792058153163928572564494536692291167277612720257357637755577624202709277246946045750140218820750039848897071699562985767392226186228227453333985516202669819665140300806028508882927424652374820561527207590939858068411281522215882586517063245239059172208580567708094582250560179011556939189744519634083975529227521375794581300873180137548530707946366395364886133644275162456888428870379037745342365517983559261723688011539544865976636238837908437642952717096653994169952499184137930216575698225343389761170513685566872574356741970066180867767278408551490840245499074768301391004465360353298028795351027073579363640089144423422207567489799879307319794571613665712570263717361002134446695840839605730871365687808038822841773030104488628611368771313698668281015622971951366286018743861847009358754373467515979191500404313832802921153687061791909553084839996053539344019734025817095783410655546178923778124057104929162037595403759675755387878244631402509073190360410695341497308953346734130490180941156552894397173033458058181061781156382765574021534942884555077339682416957887285393779020093032810867237431132681865685927077402065783429386537009638537598269120463498576902305769822433936619452935985241759695260903244153481390910906582381162524156195042732760850226695781883464866627336323912922721289605562182264880623052777315618302584163257632581611359645080650428891612381108906570860012597122400275649535211708068572659365026055003012296641728904593518734484715353700093759129271575914366303090167992469963423901483769793097769270891405964232890670970945378238099280115691764474392138268475920671550107719685137251292530572887556592557907365041664290905714063541353849514027501421899479530304769560225002405076706334378890481046882912953208044417205751375623609274248717812954949783505102957466252156999549098327643512452168341872167019983541607562170120981052856250705530075023786599190134658421445691099112274800261572451904674544915901578783328893805953774679593077118450387468584845702832009574254252852228260704029285553731475139680763480490860479499299601748889757156233400741541148227413136506715299806320675324864587581588054796578270945281631898942208994122114914758835335603612815838410914440692219193613100326262954982098626768167470716532395122541842176349453184234569418096451484785844220031792014228752127155868915504902231661947491477309363418491123053588245603939156084907477178060835693633067038584928170649295311138904384312611583968623431693122533688969702343889967322721959681192335009845501033364164528350804752101775148316124986145245188030430630271106186934643451858847791859468230472516606039377565531465484797166163518911911946911439453303330409701922367100506868584796084434192116429665931628188695980970520188084540578863248388735861987075737896386663679662015816750715636101960730944996335092252299701926400007993466733371688099747478970284430356011020326059658122934374994639830627940614526186103103650921188721739220624589106850823741253079041428431192664836994075283202815059195861930259856476907174159545345023273362693713816676256031453009170445382381495471844234578744285808156466567885493974579913673051116791715319472610482265436366291115430015427505848995257400580174722372234902163967932397209583610667161519556612511753599581669642401010253659812766564192914687698657597013694301883240260308544690588543773383383176042482784376302521931866260581698621093495440611785664329902582307409544127341556517983432234218218084315328259848705471677397507500431434512354813779853278088458705381916697539460377343602746380869897154131480519837412415094206291133282880775278481161038480200152145350199908185214775276592889035800255431925008844292817276021651238444496273757789220771990056189085081957446070585314413794168399691234876692821334578532322883917193256358925187569523747728730904312243882097069196844841882251590411938207432789174568869912251737542533431985402507346661278779790042092716568218258576186258958825559938848567975958512017907853624414797069745140394800318989402697176213444952839666612232843708499707780409716903779431843384996463890164302175291492401740122490800905618784231252266546074094582187873847531227701429244557830028954830770336413069564581379571581412671412949579299277620012278278687575312248444880234810055616360668472701984911569469601042364748447225032816148712437053319388057493521277684149213522371280476298893896592788478815888525354577658281447472300000496906242448006651259178046523384770167681585843652485617431224991227142787844085479442097499555116087796875856306644648738090346714040753368359161703258645207164841228401917766353946159428465916998791328462088813752253928383298278867420709905989071253794105557440123570123041684271201328132576241054528454335301404583127863261676055410889568791513613748462406081313773421223645381644562098607856398389445141741183831756841393134509267631665835227532539129156396027719599301334052489312945077314460411801017094570864510816451523617004823820109584505673298859121123207060743914926968735893770339187953406827069567966598924608259949305532709060611290155496390408146701078251949350020042845911327847723000681211280512184285939535137598961740586645949781427531770112090138786919113456375491422589866858940275264399756019939412158934717455622563818835729385347572037214571066918450349876720959373511127223561491839363626197863513009181193001179764693024787138570039136597766037182827072853161478264083783481406177920403164336435610476150058273598791679321634448992373241717514312614218949272252291361024337261139982310892058181266150311918579796106263943688620778239754722122552892851475144546688475973020104053811810072364818392463127968401338112029779851258256787627452352210050597612471506164645190491557147447671583294437309140440712609179825755900377095694006439322316935277130671406273170491835448490676250452696757101204871829391948475090319110354561436353029152013366075850306966949426859778892917224800819475764642937695665837090517688026755102848811050204642198261911260709649527722002917228516516660285513640601958705555141271009461909525847376336764890873326782907727296590996164704206823196546374014163437068462112538300881742027013398041187371365272937264051232286487381870631366662853168395024382990180120651731031233806425281970458205685532615727799156558897165065111170112793232315405638179464477598157196835844243692397838067899805813488869086612645511611247049492280042137681047947463842797823862987705709683919129773771126860153511195216943179817522739415829302810531511322640501108665176251210077609169500278515673010842505421274781944630422753595653421676185800609782102503858960551440889337362880550139962451123859685097202670192771195712049267604916885414482365067829838994939576105934719563286219048329580127755881082317965369311772276264348759397979077739188775544989559120232732137251989024848016234627095821125902043832100615834927768175391727415441325103019883455920799333877152624780847688449429776347102875918941413830257825156765740695548276857149406841197477426753056770505674549533037973227980585244552055520595707980286505856552164503997707952660023183287629130452117285410204238841665639679747258136361775803736731943413108962771601225890668990670886760777045537363967356167565469333662371684129870588129426367195864582464123007759610572104750120439395545496886408777524686314629678257557810980964287404773194124745779336331892406895138311288438784956216456162172459242593132579162942383414162703808613031747384424113155318550975480671587108763491881665634007635579147585592578699989435405391702359197868604208556534299222964383792517273215779799776058565129406634818084847254521259546500150877248587605390053219093067189404746879418069996898885345643258024528555487484302786175937578234636326101437101098531628731024692038216269105770695643955918766205091181712630533635822673704305633673209338712704446667979519173979050985077293317686752955686588187561687235124466293434719651171078553854859490536810375393333647152298772164355139882086177540496089557507034228814633239262072218446749720961120471651029564557724032382866987743939539080485563064471757672848952297738835907626240502987547732178655454792000828327201893599453211871919120527981497299804361839306559055782765683800436799396287385439960226527822370625609319210775989873890156974783065517266484029119733198992162940437206571471706987783172694213708503361318746264999033095582022387801631700800565059150199468507198940813205299646171089389296572608608709172462888276379105200088970124791258916711618377252336666520523507463314710026168750731117044192941306155057046787969102032026957922757649261305606523475818926233474585281996655386700152775973570257732492618814671796593916291096703884405104973154822978357957041589609273535831668388078857807083670043979916600375192339018434084878611469018870685109365535824615054507928059382845985702495616859691866262691850214865500989239417124274740529408348002927129114968618640169645753865128947236515772161258104685318068706089084031287997815488465334714283859677524877209147163486135953123544138603129000751045272595419994517371104998154357852643958743596741444931171444551235019269868171526840684795976538270079992001307973280781416131986573290260468880113817591657898459410002510583871515047509820045204075789992745571105299849074063069981902153526575419704361224425807607558343565095184918776152251333212816222941951928102087272062653985665714699985664721651062750637915441151462936173312813306903813498495176344271152995525365198674707660369265911914634019791242135788133219989088934987125647562890760499767183175770879759030216320056919864200402906281440511969471660500055870602479947492929034391945915275399833305311498701819936822026204400141000352251650588529341950202443134750245475397365456452635143147639014938860927764331777787447709580890451674485400885431792414162748088494392319049332669762308424444221325295928505732114040073238544404545189944381294070775349714651205964679055877784331620142121517482812054346094422740503012702841022880277385115033595931224741513179258387228956326663050282830106075409913836189420431445603669787280906444250776955487444763077847224140412520304750535003856617090946146102305698039599278320251173505042873508160132578248729763791956743066803953433295521181317379170051468575781499146885811763132204525925594879161338507465078466013182150885511563376656657289283310367038743640114852092177641381591070481901684955038778368465215019326256216194357208878111523838201337882943129006841971899586834890474306928309272786780425838654828899858506745321048930750775267903399164531070358524453701820548273848683635828223096165040086241247381455843932879792348220639063297783684867163652458948734195139169292387412912740187585895625877722839233652289589961215711067923546621198046386736455280693871064725641366338294143803653815026194043418913782532487667460663535872925301070760492074000810250368371930154848881642551707758422009712932968464990211702395104592035328743560433695284514016062484627250915256655585659337869500479370309878598419429362931743129838253431987492948572501464182210927449326363426982183384401236202366587340788985679944284662946841843463786339856781415202268037970375450568107021837075415080832085931639926790217734576002969165997221096252559763518612533790369123111033058179670043702944708368884623229069875688247283072086626351508277056304125300955126427237256534669992271996785423382733516075798504942239857281010804315391763691826211460406160248790209247021267385779107694684736663805882461923606272598591133494362057047414291479919249648408332298856406923528784569444779707490513898312542849554116053657799817726115510457247525498486842401539783917123154377350988811284083232567103022237940212958191143010778064443411438881482972025370909886075359880325074174639283206008318904955094274509115802575220825953403664203066302861644021554277255119620065696019128674073892887713381576617619438401696862902231225560161244380567271782696319692332213543505537446061964853609140744163401411869905922629296958972586512584545345826715111924986720609146410064689183878880957950211119806187676318226325861427883574144973879405614265280967079173843132010917212159986607770348044567168803094707186701464534053958169261831495660805663578813980100499322335623759984134299418724238720773500822677654701676689816089468225732333752236836865659477098226806336734616882677885599524116593736045036725201209906171923512359813208572304326868945862629562733198431326065398489139134385283663030493884818197474839163560499615563118344657815667478133906234764556771078090054352037345275795109470059324213438308925821017394371741620411734085408589923156435582442078480959121909275853878354280179330201291869579755701637844382668787398434574741098714406902739624939065502459080772878080858200648969621094667772047258078687803456492056734605782867013666941696142986561140713662092713273950873269888123084212502866878213869378349638054803793412492543431616353620551973143116229280215764211642255523709544234111613891214757075648580621364231477333222927887148916327476065135810074495305895192271039504036723437947941157708207055378924300107239773717192963097426217868420820115454693092949057758642719629348754613599356148487832853720970096625414807714108002164869538466931636117972398212608551748020904580077247303897194902429795324982777380401749941683180117110291761373521801991338605799452233253628151222121886728936294401323472540510580762481774682141395259415968085939121817807981549529290238445082014431639221513903175234223739740440520522834238243557181784776387099366865714090300107584711409820674361813076411069938179971734386079675413442091541259527118469041578142404097407157015995442937729280562147046377191525436141330764825475059766843571974244276442827341715935238472774624649309612023870929159818887004505705123884926468074454992889739620814127981083326671842914687975540526725847946402498209507292578124499759529076916751207505077861333295486168665735290289181545175628808063779324013923040079570424978621831108397139883217481803347277774346920668760755445121500871999146721547634218494964707785143045807583445404044156402933100808162304229286508941793265374238458506520391299015220911755541613743758836292693836297400174107478717069738664881888504279625201329156359649842263231752573615540274774367754051608813637173451318239356284535423683368008518480016423803981016823073051063536557220606133242033481956800995643593197371426271041484161818533682201957772227789172284729143174185608304056874570550260096909100147563903437899080335518634380021818209421074505392374697534724952767456625249581312921815932763636479422708767994375407174626342819033676404140150610834357371231892829182872543750921737371114253977555350631396541650455703513099734491494268195441230225565479814334817928875834045162336527017941404131247591869491386531101241931840438000949292484132652913516824996638681319668511923676530712039177073856827610726713020132520939437513254743425657355149003506437580324594595903264042878154642044411472995916939212549742598961067345459039136979175047025910431963119722606642682279670982601283401043932333570440511994853573154122075378192151714656435328765391976235996769487955761731032091519851019939018494758256655728272511169192462679096602925266165948341679551357818118072159577893671327340105177457512756390234673147244579878946401142037350159982291852206522090379143815169853482228259163695646167450676496811816882095507033313512656561962666525531785027258898026392577054804020102578962894747591211728556548046800443748906922734746226110168790092881069644996827786109994828758514560781419778936513137584217072495998623973679973725221870984480530226147549709060074542260467334023372739667852319080324771129315567483185495291429897247816509354212009541236096935757070726744451994492949928407314351559469112462215189614704021825033572489382065081895218161062099830002077441109120675617725598822392792991476798777994399090798270720021109286789937163244706377564245534964204117905929281979893266293154387072750375141478403081126500417025774779261293911476208922412458901508214178539715122047111481173399519098304372129941281208609593583632824661275369649903261159095533742313748444403308526933790480370948832533796621389852135544866248338706110462144894386641523622137605089881288514996545564317516559826878344201048382256452977165631561150453110432123791181167981014184960758064120074518904405154611065744207961689410835083196977839833717525084062206532695815918767039823650820231242500837398567814341497776749882804727337324799983624915373524653781057734883404954491264119052615099642900512799866818295868450775189323452472366825935810675520650296515476066273201550256540428966116466339526264758219129784676385687719173314523627390737201972138155256732489537147282883097265205587539079067772243598943371728038626170777568459603904999052110301806626267151551162017226710825775070661907252927607656185183702195252771158140859607976549330424029042261690208602452490315141124398459509895092854947358722024459403810514141132014330784534277151136862450823311228465300986194446791946103748849410221646238106122872828015782469067132100466605674612805088616034333836431533229525861843143968984965304036607136940497474259742681406069010400628836899493180670910911815464211020124224925930192240447089210956934267702438579461736103846225165280633942671848732949429301747963797306771219255005302389170727541547629370608835020647034213551212107251417744465724683289223311128147908184056049595802809877171817576371810974684264144134891901429169113244454742658113888678247495606466199893882895925096372880011839234843167696667024433665312279537206264618839814870411520136778722460113138324046674992486432920123379682378605697210442217973104753451073080970534240357985955406464110297410597543799394154834536811868908827724728481142716903149735107350015492568198076864847661170095031456245396775931721702215114060333875715067703528515713534465846810236434439512886127051312067864108356480395951563095283466797116840210969683592806205374935922763554367026347107212561335079253474392584382397387010609353525310938279185006569232896106537367054795862079861589600855993937877814132702853574820235726812297461145313097109319118773396101540518765121232812011768814034365052857156524111464975672058575503668760769262976404340084125483805702494733429080660502028546994762448313981480694941801298767040393344096076995740770616659019266147308491880940232421899126748905574548255605396303583244159139182744350512436592734259023483251639500683095181671216913440886325047749019678096082163811755845991717751457293836476058303212626163097487281793994247861824133538538025204165279830954296106214690134600746235538179163301494326387622050321842810084172346553992666512330958098505449209621192428443481013240350361905409477624571879129137302243625808615738397414768300617300785344431718263852063060752691965342240578337388234945931431311388624918716180211121173026710570802340425042928722864421190793436454646813114768458946619420511742504345588585262241032206576823763530123717954896104295567004032466394572365905046514651184852758408604812107952395418804910315532554299078297549070598554692648163002631482404128958534275572358584579358738139324379725112186309805030283297778696994335084718869034580213212502410052492187213431017045924667364737359449505503278901861478756538120074046884482174103827872576433657767012435522795522815233002850972797891461095338291607843037222690994272466525404147951025075927713936797231174421920121784717970468919054471762918287477142248563139741312950422443372240526480734861001149415415081957196085715946023906119983214841464750965127814636630409499331947998329801117293360838449939060212685688366299284832336378469167085692444990021850622536188003533382346335366005517652344303227748299536284748091161814798975791447875211466173985204235807449450389255406511587102501363355465560618638305323823858006242891559525343451466965664549111110600505239094294731234228335392579092863326821727523444350473747815198320414934541390887821940241968128717039007531721896748506821510536598896842580183612500162313464058502287526138651640115910675174706281280434283878927220714922801857865637501068160296671927325668202407902230341046746939860382055386543052863397755254508763102367710803863175693278188619635753393084756237482302536932171906430273008423457167241770200538262451645758333044964788924741219969662027153091834687758091736464714453291044668659255689522427832938274875925514246063079064422835702518025581995479100919407374311500267783289722342303018456650467625219452946630181838988647192057317057157581793039128092338591605422463077262191394282054019671214588243751191832072218100286250913423864401253255565426619109837788641859644391845645256950316275406213810378928574372341593121487856951023450978993694202485884414746346846111139017388652287063955233736821771855484560632498284340128764822849405388565416989703950324477910918074138046637005162630456600407564515892287233502199930969802719442429814900410719594008101658278949884371535828167922982486716564348672419192810181141919626692313554232654178999571597191891497363139808540707834908208575657273736189327249803872135864901366388644850473746749979578353182193061041125711589493233256528492502762881865839728889913494399319398641359866978739890528948682609560564346553486596548524541693712560235592996878187101803072980017616483809634353055993444500585812372465612538787302597884197922316951897918654348842634654198697013939315491344059470978560402604973349524265326415610898800272753792024533489288265502240683402089734266792012040068160691846505789518435593269575260480162705029551132036500833810857962798180459617211401025627212801867389704162580227300946816629200075762730285239587796595660678744489332572635878484379239601809381539198580026851765891756786050411049266938829362729820533498201224247711683558306090972455283550257678999161846148807769615581561051710378920948866840452496804691195928988903878654815676593390844143838337984522957768886723333715882577638477942792213556768699125244778894791187700961331950277632359252219538951368050061071601475963698476704697048892515529075468819023658123778272558470352274410116223274887305520667315224486315894453916461505279864450019876781468828673021022211834070291913238017382113925856690939687355559828253859509208653721213043511070170418919175936972467107575364768915475353884501003650023389071868675245508319666597957021818472176738004408032188756799244804442478365120950318312521800417902337550523742503250212960517732537095562670322177895892014570875446295604893052844615182832611455943884556374529811562724357911034068910556092289813064865928846105138948703367469747559830824953111461228838385632500790126631883603605976602483363856091688924524195456571184360539873337536587181405133128310984099265323935743655822576112014291668219897619475238747127093148291272585594990803137149220130453925808654073018190022960914316743274070395823782437947410672988029490564821281225221743449212038968659168080681716941311993375817872479353009922960578730259762719054312927702021082702582942857313717095014957659356274720320757635656663118307079914943708933559809610236517234210551683734824943539054582371565515455098460398550846101833154148079194316430614291850045455346406165757535945699580659096305763855942164679271344738640357200322275355118385556907841487033709182824571401102953284625677726460458836172130432869946659176188225305612579169347132192474186586878900267549869241911555401043897199398362132936906171608037299936811018744309967117815160209778339360357990370656834400608487113856252648896595288374635849071996657646395529602279460046897486552214348046233075804626670051914310031181950065939260040778784264926590450432823160671538827417046901092122959676862956041024132361025127708412700947833550500434576832369030983227470203969145696736933607370615966377509340029965768671419936423567302116864708201096083839023936561293451141070374388280128580969767245634141310436075367348534238795636767825818122416558105002457840944371175475776667755950814110071690595894065204360951844886314237571544347589618916241873642221438622539851148371437821707452397345685625477983051010895933662107822712138146981225464118074606788008136537643749239563972106758437637784865491878487393669904235549994821836360206056628107535666866541253942552046911749837807940325687676243765663589425903742409666631370362322034685447536191543249412999239064691158206942525040801688768499652211055579171134305741357151765599606819756170003154114265160101941806955945613964063651223991823695010016485656040466856319568860586828786536787605914220751786431188197439969695381871202785643422185837927244596819308131245828586721576104365856522883444116395105522678070357079807851553060139569993502570835690062640832131066550485677330749528915805524092634495888204718278974184278248913706502850771320720714845473766929306707333694860437792955164633218402532807701127588429329459508018343809969132690784562265038111151630037134401400184465414478266749836513957485573604470711531597408377682909337727855988030559151222779635573530530543717259206137919461333341795426571728912989533774198467033712116775419537965670648452999667861510845878468041599494771110002258858713491596306456940801395611158786243316926297756811775537096938067409860208698149742618984037028437422461116924473444195103507355761694975231293292744195966593827627648670772725976501520266225145738500816329861868617589479854584140516698564303086367893234087475855411596545551694026501616523634712509281133858709203018475627466483244065518944699618470224950501501042242920742999692917662631945553640956567495831352976125547394980402708425228483588248407882909117695150446952762539220465173629844044492180484504911487505873034617706294030147767012507216524774662891009968299034330111868265754063260184931516624355828379575717007776331746791016363180946258771328088651321430818815572843271182867157303082507530367956122231147789198834671192911410175163101208473530825851261563278978671548772541135584700817265985362681250929864757871036506599279384173680951365044638136057203651314263640173780521054531724983753847631706847714024950270164795261799805736049471192914134992735477751466682033745711779032180451352819195329766757901880149667919136016364988448976018784948391744909717856704043099510547265484956057021088154420997184791044189050754995012472998362544398297357032474929695276374494018071281796342486419322280156015417593305549184566963986179687911833651215539133565503043670813247601945708053133511971862597096877272061561665338026009353816959484356553720688168735198277200896075238151033403168243933065545909816662773478407323758180582039735330554695214232885511822035268010594857071141555842476038613997756888360525316400806256852174925189475411921478286553960794253025498263113916488594910977055081672377414036056498549318103877802094392505839608742270206676444759178743647601100772073606562326173719198730770353274330260709092042725469298317911596312352200304862270979062938403920697027006560677996078439677322497702421542406175329218886145067947392719138765864549397436137503418002534678864494105726468972580356885200745565123417472784424857926662746027348034639251578046950223062214412996181132880510775384714203318903720007180902564561391280752888773202718232733686712158288152742345725680252024835351709434228728068757089507475421799299121696618466283756005867952210189911613439717670586622046371114237509124725145607929917015121011776165840678926130945909657154312298474166759934567439662858484540882116413765962005790096092045158769872659046612289379163237044679831443884615735658664453808983854253476043018539093903220564767462507240046316097536023734543885146502697132423317568039510837027873726498880410558393037541901271478931841256151708156561392575063307945173554828810391185034875452700201371662894684452203865477814937334737738398678166031754351596541928592935663763278187873320423713717640088226537950479027294908685547648326922852959980229849679291604103742054356731742777885483660119247644265661901248385553849163526645017911216950646246692356241869509015102105987214321181642836321548842471800099398635060438047519030566240396879291165061315451721362919420067128095911672892133645309819296399612108884156276564041071112186169731624743194085448149060043216296220001574551169270489421245227461956379453669510844150747457548925726663190152252518008511376443354136798013622884145454046905468145237449629330078925985286199588776238691517352757523925128703967087102814103682767509063292173942249108918776801344377912159428800470231852185209585404611252975682266228415775901071314265586201545576511874820480065747909202274679337216133766649598348992381069660817334742585108154005861801476318372992054124051126009092412899554903753959865295912642123067060370907279958023379894421971091247811009029716349278990898467564072004155519811839487057236057020621411019514108829640835449969251598646112259062364575307267480561654442851634253743313752205098025733786567690099485441799692488211499707243901055990626262269723125529648704049524866137003439580827930159807791374296101741547425808894111560222151879641137085488152084040528384058457554614121945171523863335899969397031848087527336748286365740787143165609324142071209816581960722349318465027298551429276978522329221225685904659096364199425907425865061063628249455237560697477353086464681836244848061306968476906524176676938311822155048300605249985361736908159240336187082542244915944557706420851169394610973806825777606199209956508392829884936212098284482853712601401597351324399171381265812147858339866661672310586005359094178289526933132596238747218846734150202042317526848842913237033686480372212181647611767958249596415497978761831525491041214747229864620948421408368448044041760715907428636766536331497818195347860596959149030707217574119319273306273293095783638316125458057952172224614297887338430869432571956769759021667936892555166714770215709832933669319272721327719697899075219929006252761978409016079832090249129871593271024422711970378429967846343100834014569380913120032049301284555364567817795810735609689355148327673552421653168272961455376227752453518139493283885930867912621955152120700001085267413161095189164877584408288847699022581922284946769778981385926213416066452429146609872806356300314981270884718647398556907790171674401254462762859907790853058382005601268402833215575320982463530579299691246392065742304500356093070572740378927563409872311975489182471362869903183993769681348427988012307519361561646366230186236498714188651422748504591499926772149232458940387383635656498328006354508907403066217435393689706662258476803697683778467069450469277563834053255477659099437503666437105547620602513144916179961988969625221585673426797872095296444723639755937357780969494435235360186835115722636869880634375266994342416270840420284978864792812154649939327847264459193743068556353614548124796679663906461929078783335636142155692297469160405069954393228947605144339688845806257512889582481770951866624534341068836687779939317079023473604081049045463133855658496829002608909078289038202856728590435944578843896069933860662088486853710183210352356039967493145182583766354954117832367382243297907538181174291344076854854627129560992496582362673066124898873050832901620484892283206393633070147996705413895682085345130597993487389182382724423403506520247975589213643010518699525279451648934305728763136070952454959119369784977999055002434577828257893573979267134811078039821094513701387304572775144303437791792468083898779830951251644732563216181955977202228577725176741392198432247775310535028712271462911063839175585672313791832023591135750945482158519487967217013041592855664565846171086579766489601826948794668910204180795269098523380557946044272433759150306838947349387031769224954936328648836955309396841249874874210950135344618871766072703030699196941372268510638019993578209558627105092325555232877857737172634251271498661627169058920407803621826263728698566912848739144287061856408512302874201452648004075129135658099104659308362757716771254752090358851003727744190306496953095539147937132452350510691407096039213011463483272637971716501599185077244266258610820179486349203829017961888283741858370619828423548522060184476600692209652441878176285261226478891503056707550370623650106918912503955394222949551151337146149654300918895768638201061942529702806869680846978504562627083767198304730257813731933252555554649406378268980023122136590978159818555585622279656392156420414111247602194243247368957264283266430176927086245080870849755389706115369038043794422176366490240411318789328911587483631593877900734491378644534948538021322924675266966507182136174107577716515092718308964566153136252795585554342927434101886246726851813436482598602486156112066786514231460341174347660302604345162910681824149582552517010969000547882819046307879329954999706138959745328033479240489363110582979644517703177710917829410791942234437636216086356362876232286539721380501103129498381257714975727267523798276637328016647624134942399193116427091343024663324922321051122389384386490077155460144065087056602109459731942393166033716576238579765234814450457483348344932017154396183482490609580438567987097064395455434230854969164248976641613561336285034302794134657947022380837022611762930505829827264524346027899797077278635879647084394338956615346582262731718060374865909845605984098148725974698801319588900435071823498241849806235643118040026534751987207372878026086790033962843013048874088418171828737920983990698503044373286404153928850409712768535281421989986724383738820337656687459887257634317674282818973571846930186911635617895502684867938886690541580377890053727287584264147440525929442486373696215175014751459250869423370754957736350641225813925834924367381236179135646855546611569746331794765290228519202911446728847727464197016745747510548623032296375779982336187129449166780577204792651057924681874758966738838491195568640642244212463358719277937398903159180167455631822758917519651154844938678113955908438734099307803422841428300763429529287443562834831159021397745957374083624107967897279868071064207926395012758160227174651339833080598612649514131494074813610591601565965118711105563110529916343168432937683056450383818692982782617262010877627444995328738700359501195449824405008141501156043291390368224976151717392268059549916980988154076517462942000522147735387712486925909353049077275196437213226416557432607350320604331299135611895925619766049536602864682805196894478079076584527546915046570026312857476801977892211154881324733378824471182427536774417799525803419267991550260469229654658311446255701981002802887191105466255124721085227222275477903135726141097716334472418913390628929217463566046854795244778979743736245181427180647943746815862154932354483225142883764888805444407544428872776564799179848938305734757427658052108321644867420156101031099914748076221842912473058020505749176673667261398878292335665950687074226454743006081084420241981554940756439591049801376901224615906633983293515965915630440889079297103708435499307722962914507763534400814687860472410769099405767480212441260627944152088953595002126316858949001553889325675553940726078986125322900480090609467450001057638560916849644561806759643521855335362728427085415880240028171356273028888131246422183759975658189517868902420578104800139533663056216244914975670753834060042387538386092233612157570483350875983034617256917680683279544456172184680335704343545763929205218110302151252165144572031171930070314581081121135385805492331900281386741180019971115366051508753101245008001646748186173030921998540329157336349885796012438584411669283051115213170720095794709004910340204195002605067214849726150549410414045181994310740413396201563834399274320185512034558084045092872116386950117677567382371173333250871196247364437468655098780986869601757628768407413270017075884872349192351773755572910546753346167209537375309043003586229370397656436142206349745923089378495874237658008430303317420224818917022821618434519005071278065663169691812794261192595440500125130321998027631348745415972279035549945328272133711759535936292389429616165958530464793164840828652776026640184422040647764809764823680863734985896691737974522290238021807762262006539278265705482363906888153121522379565548827487408993484669372789767557339029800214202615092549829731797786906118363193624831760460558188640388958394133483938798217647988768391563275372185453879868921354784364533018232016304018575248725371567965822158317475346372426409558503508154588733855383222396824559919613438734996693427070444755480279293093765611264471163007845793360163135653006889185288276654589219728226875580514138011101765980102340017785222493944446421357349172268028084653031485685628625986675284881542827527940065042236638055944120709930926396522280047555317639863418189122619002056142270864371260077221882313988121741356227709588260434556232972164717362214320084318483217680154784615658000377017972852625897214312527150171460360150512287094480466601694759928457284455358192457800820019008961727286804762086900014612139886433196921763356826702318708666368460977998442063568370353840069629203518669949517268246136903890192198360777063154303739673698597514569204689108022011265045669840670415529006287514382317424764578523808590825479574150158546731006154530450394944256614031933723152680662520021251353555619766707682229252604284542490380943625691489683369415902953344719994037009471194054176326228665243022814115856388597993542416944588917914775447854817719553017532669891731545908197036742762320767538239867845038310310189460462065404109493519657019682011292296604671523178166145325644422455752718431863621813987811879911372000256442970668080164861094214563969537365009729479884075614460588937228466886153376792743263872802745249107590907471706735628132331781552364230653425715574518272750299194292668047136283838312101404393399340844089356844563124498452095475135214787013871087616233811016527432146388887560454407607979670658804079679963332544465114984703693375258655518032123427102231577057417049597173446052396494803846793196331115770769409265533388970586771460323521910930614884975866689918902679420526066663065704394858922449914508958510722990916693849326161203094769240373559870865593278494475504889307232316882944796224523813521659313265376986756128183185069019970356838029316534155562207464943349637850066429391905257605387760391589246389188587815430336397311558226312152668248508784913148540100394461059490919080007113523907724832393424450807184423922182958065624488892830451447808374955822740949021673737085326270448202952015001045815893425273943029135903658054243777009566264688853981797053610465616036876071598396599695091056929092462475276614376645993739098461795944788285256765128766589068196284674752284537411448605426202882425133626257058286260481447190082316040402812061800097516385038329001650142618670443533812017990789336662855966929226467072852820734914212139029058617332335465804459185613323102546735182868459916467913959979765143965289820516129270682875222071539884505039492121685186273017016769563888572848564555845674069560153824718004297566627985586508903274424931541308172913619122959605858521839162502133255489567988893909350913796563744648177085044894522141450630234152206710329238498072182827243289963119541067883844434872322031061347337029615084071354972136398878137082124334905914886226001568401410709485600743672760560832144362048791248584711814942862804960041862514787603380601709748340562402374589500861240990983987286632877945611781767999954640725381848037249923881965492287954847045678494952512719802909666076236107976344416277091638573589315355848568371707144237001924095299578052092261809316359470002827366275465162580202938782104935655672389415427650879152508858427361459201567072514862500846213053523777625506286906280384087010478921173811451410139236584430199231005431716727449889015520156707470897247677158705596272922519190370506861799953523806972916772723585193621639233654800471659085642192334476660914601787865278607111919874160906174256897097419956719593002120446562550468750269542871841476898898773258255569169227373983611019058501381481947588939388470625928743536251117165563575537588456272387342894457356879131434871923108826518624245644682207586461547578636619660441137870556330489889319624729704758973531092027258697675004451665699577192734030936800592731946459472168200698125900323058897228768823072795480073690532104643763337462737034872987784238915430120581555482796101385636302665002825325182788816890437052800095325322791956041699189073714186330449768320144810556333983871977373711384177996207862331379783971295496810683369494199428320948915311697141465824246947198451203229735295950248295006928793207078257111522825914873319461812994060161332740132272582966903999965845863918378041711422112027862230190388933818680780142320559417165400591434120070214420205574005760473024506095108223154493800581056926372470489208040726832229973956311297568293045886227416677522422352375922028527476975751826876672144503543912818087066670998984842138601473293707792375771501917809622453273858731944798821133410649558740323732078289252219751286503638714748212409989042705982114394943497647703410156822347424941043562413345971318852972556902716852031602151451195178235121357409857369700385041418920424768565451795612092296127239081603070156963754565473211913268614168468018297496421280562833287372731103372958202802820669154649705692621374210009207823985484313647718443141556648650826885824632917508241104425750536194777118504952342903946680795375799261704184601605072192274822711887796973428944495162055275532906998066883901641485813528833771196379188768246421740656570689589930927159678927935514306871705516695598489826422489570976116958836892451322253070960092345810048919055004124532964333553334747560727913585183939230202817339216985774312549394847711397530814663773329324514109534838529692454785036693240444160337257274970277538030796847722157485919636000616802767205226610432455826046603944491789702892247547316101110727113766926877026294474604351195736975249283333073619562975024051624440179090393981403214022941337511199413454322298663157108408885058216316116371254563184668012982463753228990318056917914656219921597105492288544901883996558146783612404928297618728601567574726465032985426640631858524113423531875263342178034661454918460909791440621713796900046968147509882168854447077954752437722056468768372847265224576172573334822682977375139500677712927912175410520420226037627998759889264405238944605346015066912143440834655741759040542972216677392809985522150220727876415497074744763890332106005738372968880007430928835319918233867497619056243212905716777658088250779989054704130057723665173427682422546254921599714849517055097438170701249682002021197795066444222790434182362855278506886668031017325653347605382131132600567440908094538408388754556390810720971944281894914456731017503353035120661789551408624900044779991417851954395830901719114157985656455826233391178661971996162612013619365448692132592526163427930437850790154701937890917816047057946346715258114875943542464748314201348916601826571459451929966670589476791364624763031816870178406500318991100719709990718186608344368121230997043033218023521307647122072484796756850407455795789029783631527557322951179113620982407667881579967632419470083469140451868976727018113931235154387304505435389885512943194223836638478697953471259728941144668342614169268480259310603638283287132355246380440856221694741489221500837947222818387759710364842648242021900234528186979840161264477541447166353773741813547472711721263423120132127192998837509314204886398449617306672815723308472680380283726854366347341914367735770362671080555310839002788324243158032111979777915885698501155211029774008923215383522504882907136812725107446386223071900916504951032427349475600159694431975775298247590158882144605615067113532316248008921968678914833376647993070582700318467867631396793333930492136102969862840700268042623679294873393758576319810877708693730973622606720022571615729686688325314266990711127363626145056862850426958283519277867704143462268759392847768504239546770514855715592371975458332154705842625455675554468947910584696751046699617883125894545873767555087203499665952188266854232064885699574511846817533765843067324032371164976058323583126448662240272449624213361347466959405030640970651324101698958646684930430925026621871808637180003697407622344406204124088155973984071637748358516886012575389172658845271855525425566484962389956218732786029124427769833507013652885507701117848110909454103946265581856913029199631431334756012714109522789867122093573826981849760188155417785490026733630668406418948018746115809045645995048945788131780024384510638237501709936211340187103504654817769425515491568687663715754142948872629898658068627551376847979862285595398112402178181719132456585569914423506336240407060721232377216496259764728164211975651033108302581677998202385970223802190206741320779994362984230222629225792575472606333176579877220472675969417460951746077218452510368593327022008778955464204651154268145362317568187579436938955556613654839782581821940214131658516229241235214517212406191993198154431907012181585714580881334387359248636013762172728337039810063028386656084536750766986786739857814302862516428062913458539830286062023330282870009024484983516399777879083004838030199064276037431348285710457648824962358563476728522211179136922682638785273435174521887038963948099203911782209136031829267686255237936504004735266027413186660521145420338534905542684117631489914296456221637142646071964670042944854486806107450567336856564638583121395086541038475924195266068476986837582539739597356462106689887876273482864570428953618059909120412104533602436561733563715201036526490994921990463323082446005670729387212199045511422239837970506265595130460735433645830479618304394229555424958833166282193070703916789083542903769914096383421082254711159348444419917089626826980762843567195267922614207172663386039625581617580863937234321835821356434148410442921360786645795199259638085209901258194818912274586855517273695862841723400418997315090416468659648391328527214331513285501926599647246309078519792549466420036489979484560002411376761540797673864532724470099928362952144529607966611321394948476274757945516176207600559832284130899240199606955092097314023378065573004129752977220926106320613340660033176226161212826996400110792709884484062966909949760889075021103584642484918839185885209444109738722760130263436715563954847090070654004201140380955131207301928238804058421583672043186007649541772355089391113255637971317385464937758803924050158017388799164005426435440324542927414799494447347059447467008510135297809390408102425741234261409677860522281387889387928046707210348236326910000965595588835584755700046049023330525688913177301386087795601460460337953047877803327950114172054871584587871071740737240441503026479741354759305689776873014096179799796716563194668842101131406398647157393492257200950415275219175277936113424620532178373934861468476509366796851402430361107098261014045276729661395644206436886787510850385380808958019180340720032311363298984073409117320542295951017853672110717433222331494683938919446456507135493601927665660228190035297014900230092186983286498112300074996757273031970689341662241737722495123927912842376943454428846046848677965345985882009153437213389590752512115854205057838270637417605635797518981784712329270097607877771645900599467554899254701542421930455515781040676373934055358192110868165765836286962022582242259938980124004343395227236311127095687415357049550616191635033965961877384241585389400259441140270343921770481119247401593086408914661814379817054177260592426780661546711681819071745408144929320186873895855160925496241700872251853709450892111026143316403853100273618741976650770675650056831210737476136627584679631787668297551441706632007050457919848260294243758780639746885595784342234673064053598457207482415244749908852998338023767930733046309781815541845489022000722182246666592743697410351428156029263725187795743454542447860946027655488248763225461165977813312261383036749440150234024666359448884940930072276114377534910852493746505151772561414810178104938314619278017531265830630206027298209039992306663472625758363839122413684486445825916899337809219636449493359763933669742284125287203433333919530242516364401363066420244412503152858856105749490409675984094788857995848946785779753435284511976478824208932087455029183341864759170963685169651729385182837822254222220934782375494737372331416853939881815693228514290878605131145156658933329433802428375308434855982405088201397818796760799908106283015926138404001898697444540270109936921152843278363955361804305717484518826570145011140331827826663990842538775121217623629411269521855544803308031063307147338506176808974447456787163704033271709728660880075720492826925552106564226276465976860023157630386452910620077850431193509727165518980337755876106516640233844565501653661018319288887103870505662838137757496256692038051385973004611771699392684953981375895961381344846706915377334885091086768182947635169236174843766213030214115517614420991882228600488522333119965713921386132899110506863166733304527386354214142210225803765301270302679917255894732928145540053954568110863523012489473788267147034350719063794641273499469378375079544180940970890109016905361037959373501258103584012933929036733668742435438306338537650536305339288705678708017977572597902056669125086748635685242619295043167923931113041267727663751944502005221008771316869905386714837180799457915517533625144551104391490063952785488041060331373076534673117568838059809856599450721018234281834637498551157571692906652868555142456218086124928384537307433565141958974429547295701269856772304611221425930001222842606418255375639379240642976972252950477291766428815075673735834452985565353510213209815083084036620890599850237937453600223261726222469629535103372267322257804796318993708276437150335730825369004099834548537578489352134722459415598888356123588200606701190584874577258356322575950325421078548104971527711246708706524143712562149445578437393757975087598913935507343611066628486709626810687698582834177719007717218870364524156645706328442618811423134543677218501910726490452501147167001320064674209214537122647071109638240507528961021805658856528794837297824422737563718190351016800544861090904542114052283530935658980457078279666202696164751759536017433124671901816702059753504061790149048539386054925818916394606964589714451218852225841027037576253256008786139859199827752781483927831360952942063095270584468652492046285657275692741307092161432565017804507170947708867910826845612267673630113903218280348884270832107842074008980474721695293618992655073910926687309574022779173101108589769113931921535446865085327874651478709342025270145221504083145348728144636313567954867434644257751369730165183346914080524015256462689386559026701638713695123739023068044965994707622411662540895883969148264977028524058898303139380593200382062148143074861958566372086461053404802654514132285853632940184721449866120611024223437843459303185278658168106817378113767211648700898737290992074969716601600567869793957661581885375542378717939817161542705673221275005555151467389879336904242004816543638701735434405433021111024903018877525578258355182206173568164131900800390271038600639870845194111418609902551734964035283624683813488721196680485190857862060514703542706510403348484327995362572802936545527372785043777075018010676212686323499188325553385199265186330773721686294670635527229023852515382192336754827044317155259175263999414147024787470050873337668531343571701661506980498948914287177340642797391194885069287608209739323482367774134233957007798788286254645616579608223073657151816669504320389761234865484285700144008207304677659993600315630333575619683266864260815363856851856585266463252397670444020895409457695746686537177780682746132170398678497246346030087674671847390599455537571821509001659839054926024595208907283564790460495733146090627007884981828567002467906758270708396357845707854470099970555279944283263384118351692280881960422696616700035167984099997503697226007003012318320193042528019097193844722913945203122717657941453541003417315048693338478414068478062254577988662228130294380996543773182530498832357035694453468226224025456129952564198292670934208721035035297137553690932117510946231325838990590863467530062686722784542794103059677185919820042774304861791280671487907924877098123309244816090280169949471551217089686920305006201540930169066949827142903896938017535430909656619976277831094888725324926162849135438271660149648663377010849068111961436761555495428378734775935086511965507257602596430005372523780087884725945339347122979927740514393146717833102949109122648614166676037659290380419685080382140537079167658103832540731145084890251532978242392927368019026986513708594626621082013852769842228792423759892283488469549066139966543340773986180267894723609806923275996925409744725371177532252836625146834675533151606105259410179092304318205895650178098096858966034792069243964411552277614726203378904812672209005127935618753627595975288110407400483137272568608384368918183840706745783355633588308330906274852178800359796298994645494324747923997918291813062952639533047851627431192979486331098647306236230528200674864421194538469807889456107471501137531574261998645423405506550463733993742085836290904589220215064846208870699699021717411993920673752030430763723336694182363291737590572913254281233709491563645549247479070788853499017022586051568129827792087685621303562032539248570361474085364444923579645785100099028277588554379597968654632522664655877313749295404594078679848906617841972787866449300890015339906187078446402800650310190507027210109015247431892870737338214538198892722218836064412954538175186438959085667303564181138996628886400699856108545071742358822967857513864062867052759299131086679227941925255543512032606781432925433813096399487682328850415371127050288390999918158632919521685432367179922698923134107453666104124455753423367015458447535895949687569345435702115120867015841967411709683747401758514615793944545584292734503320453494691269243304247357730969997137561307433195800367519251294936682178641827666847077417896490890249327802641535489662797978536330216373960555602934568468989710888603197046588738330675056476521232893591460264642195968256038852827200845168857529510887625304890589664109364446600528967408919241819047320652486058276019015117282933120687454854119262531543747679163218097640208601117675023390284784878028138562570974894634696567529297619543822164095436302236383908631145617584340365887738154545001671724926016272466573775699431459438681101559557488167051780739902036951786551982877421035890834804331559961406093480011524637226697933960405033611824962093977667326060466929743876432331070817793846500872067091760744563656105625621807732791649569730113201625720436166957892022063022321821839862571465613303018461043633642225963659150798024106562328372388137406485599160740792592262660631509982459681291438830663854751472953483263916407906449338979091305976948412320741667714102670357806322608023477603660970098369917168982330495100048216335113743528146098589432756926511355361494365243932714864626078279820291396518559034636511121639112662915377790469248847055287672887902694554836353931775584528262167162005743308327451688338060706068107842704394913725955374572555149962557890402376832065057955237256549906414443049805805802130370443980779243078930942872338450914607463117011494640555819836773234239419628442078304247265086882265905013866383680422894442293440530303112082318462610510836922305040035085937823091586089576740781743650966256914960979120443742026099305744461317877568291842332213127366164044043630995558575135280607775509477632579069612557482276002335853896199766635949030269756199913924564740591370151221613434902273604721838937152480837574196404039834566649187782660557525053039362570491532487330667395753965185958206726822951499838376292999069683668793773193646280813600849920970944086097252279439996630812885012549594232812913267091483843680432941807453736547494688202334163830608273519505328784799940217055409632184287345707000867372894746385533675329866872343578241681447759306586492084975267753254424587837366767480599354949134213056334401321960887956895297497255963453024018207816250344405198855922984027593692123641173541821493128272605797292247726524147055071858544149650154503323827238079502711642820430735141559589332008772972427064133733487719583519288010557566943057710814222175621011427034768502179468470283074185787378606114669568872253755112633219814439847278603313608191103049167214108152439747063167007441596079874431342562196048555975897795778820406965437657743830429279084038485865442613135845471387813324542984402878050090461024304709627296741073185676530508136852467383468218682538185238630606275637298328272693706798026708143928279149145146031123257930424448178616338804284707703110133508936391268067281103485810872476526036159754672835024130886190570805047600780120730949154101705026888059042633066652301367770152484300419315996566454094732378402613282179980343879030279151091971657182837122297382830900465757490518981314649872575030537751561118658713937689449458098737992425251301548124807343901195561644501933573054106938239919269308870560555446989565876226690747664311826187136971382909470795613526316471245692917890076615581564793696406195273582530030198794557187035547675578701873943637652805482452060689109734510823858986123445801065747658536149497699395035750757744677514376413630319288366133748920582652432686166769885070364501635455128555671007061337093232806947249341349428607810994862829582619482874685757655686684860744500018003493982169958922995662562190986496997408869557630125167182061874063184458364201952479747688118023879294723266518465879113742813435257249463041695405244619819615168040300463922373706688679792326713496288769960941275433533161871492072996774285389436999285038613207868617668109605181487996284039504906303824899698842862191919893433995963869443622176011020868264274769219652110618620643526054045839080142570144660406856362061135028007866640518079804250748500513360913961379181588445247741831286983486077666010731378638441950643815589842454701898787670943862822238882456928581685187565577947741919814725414297258532175852242265890242078435368460067807608818289535522187027225514649865271652713601774851665524290913935437700810262975733295494499269811931456853496092847610649034920409749571513054195871670059972757906125296490748342002386514182377340942155993718252405248892391509564236691711454101054924352026744175833038675443349793427928694517486961817463684615354106084887519524763933905242912329836149211487123215538241009820862031039197458946852132729172857271731041408965896653124589484707626362595951647536467809199297726775480749611351165060776029359532724814489664979535281207139764720877487875643239635730892976991330521263751435317781162534776087135316018116402325854184915776942228959090793060978774072015284547819278681416343443610265126531662364055187808911990371198647150646665245326107243536813483251545331417794342834652080438925399332837137694981089608101194908082647686980689369954119044970919042256666532328107941074777635232561538011897114914462092118934021088796758482638868860616233145527634914021255833312774453916421243060272310708017081395892299130913470523841744953322996297033940979180084608987124782690267475023559333321391817643058351695626614046457301090059732398305645745167483257337284276732748396634597805661561148018023831137825362040785865164230450712584222737477459916374905291924756554273244128997873207693106927764897803441026357914594780111893949188730337730622667786159517054341089902930817895495851177873488047108023537082789352813026677795970492045638417130172934453192347090122044522736807279410389581801298506293459766049710468940330495162754169630209162782468715758894171524404567080599825267140787888887246695498650266223012259514745522243028580580656444403429235292991533818728310516371741601010689662819592451902320073650124079053547017859634747520079146114258759475352767588757226957201200513908403621883474385241385270810913394368309536509277718900719290987114010195266919231019986839702499411398334839115415529977351233199951767106072555317601395737068763006024594971811218512996820627301632210785118548008270739533709430833446153408350161503952971639778057727015440019674285289318297372639004546987806940758224627438278034325967435580968097893620198249416608675042717905836484604960284910446731995826067870455316912867480083512901814126006217120272522515153331715471474079058764766097787838711537632642543511686182910132608121479263338125724722018077500137066099479228681236946946924368280667977461239986419324499093453955262021240493956885678633607861515140171684384878390417610720190877354460143664925076996142734807476841031845202796301329662725896624803670968114588197356581956086656114480868151171336406511281995446295553802897697350272393781755901894052998815168988741464442856428559009498411660672706822407194991535458362866700759117123394564928001084515250812947139453843763238528790643222283790411353606459354629385494434568006810765854612270645893163467066337402958068383612754453112625147954766916514339492341858363873053994721304557325078372265260665836041792365427050566060171322740572715869432658074250977116983516394877741992320192525390203420399716534784344476592034544427890355298112502211242968229779430620157795105137963518373292906635026741771481275515110523751324885518380790194623417635892859160025653479981872814381178375826552734148220689251212303790247098373776627284645511896057454342726510243414555476667248220792588313761312107133193085440473158933325495836790838843381317622690126649364088013034814478547391171599270895865094706461886315732267546034551587929521117051036344127203157946791898736261268581947272256924796912177399308151196986310079758530194865177141478442366545770342041210352228516001803671892902232102583477957558297359733015170634773703792632273231884055078041290575840752881313269020497828590760592756670320238238096226242287210758856034877818117754964655755622237618501419770732392812536389517262959421033132302933018098899369344326004194593832363331497662463998782890330633500152999141485119965118672559514222252648355823288923139596826593527796712148363535257117051403695793510752218052959783140067636084314221181707853597640928274822251521914981338499317665121649290127599665134335731879578158089749548133773043154789475391008953394607124691194702300508881480306301980078669991282993970279725401181109101996892241127966218675382389401370325583857512075253693411793786947579258849330764751738721912996479929558909530043885118229924356590277040385135139118624537740624116871437131241974739364540816602981808259215273966781212262446548138551133035481777492223897129236233778638818308447933567786020410380967925192556074670405684232361766614317170043329605197223666637816741104639924499872353814883297683042520204931327415206002160561534095805353931717441972925723426539147289854046664797148940009735797151923567705776872391903881889202128185908376461379057296009994048551871993870304202872394284600069970136409707679383641360019366170724956770421118625019608189297960678157250510532248100026096070815714950304273707109466404022988603967034042704721806366980846308934145914915103393347833134225261017683417193038777258863306966008842472699075060138600961584687904179549142108225115609679595346412405588052527322573536811266556479294585346913343091124425388924532529284141482043536725911840604569448250376177437319946967135456201255158794074017648195298158951770614631202713496646715907305177408789585723874387094688628451050050438313698578766476867551018762672370312730135811254587379077571159551284976183723147794772699365834156630569134798118957342035852096395812431959874411460556861601282581322961203802457819761375485058773925049837711838563209214138078949342717116168908678503877906097081148554689005809827952889310500612838800151103669254273830160873858178329835389855583047297360606941902688084408813966352614649053272710870902591571894916420875053201678333055940048463323626340228472105704691540117769562119564645747961193421259112365502938117019931163950290725553242744232744382983825314401754522841672287428951071471947811338622984369669320040862851794959890389805775629620245669639047111515170882501220947526317270772886638463489873887092277708628990383649521139862693361479470379591725661962276100714640742438936155239622521556136233139699523902423578501173494802674196427089258688234652813404919713478471047097941496305268850543873423528053861529213613487599950781380354717939573371733044189348018592174087716673382762450747392366729718637271546979216742432162817523825712705074984651144255665668219543334324025749273774310022362629955157050452329558805733850998950098550652734277326781840013507479415405961481752246164733850938703206778734076948275459455209350976011943586136682380293800616120064587392673883711168641021433685254887974290091950087477420007030006726871352782975231788495760258046838612998944306140044698666870049403940526041438956125538218002113276406653520466808423781722138570247018863123692588383633566738021748961113598436840690200897110665012871634864274103872142004460665796157215289457707110734730498884142956979117698590460396251281616703526636882729524839844580024166589061960726421558770754135825500649681885238518758056464801732311217415951149878870650364893965245043251628280563052256413844630313025167092965852863274351394118989873702709981236908750819877932585060397448540272060961554151471039329197228938309968274495141206794164419101033691122697595481629087140725049599840879609705854506574209287199916202524220251509769023589665627922363133736876176466930031221396949344832010706327508441970899049333264868061633991843090728907874545433842427968574839718223821739873365497336940212228916301161351004613310217710420914279092345362190152108645713748004872306723683179167465364177354112986365904243101970384056934774292563422257461568524091426513839540925820070014223366009387761977969537187947727314028795854507322398912687737075156949516364819792742706522659932882833731066692297508470024911897993500321148546471245035994696123984961263078658990014064873883758607512026614702529885655337902719874729575915151929968818882215783400710641769029645073575753757628601243777539459460678977214028200022014127950325831891600518636537231516040487068061108505145883698118450839715478500329290698692168528877298234241273825608985367197139977878668142651336166446783039362186828084725492100802428125564181590553072985132459187471287243102706569460896990376908950671612663635629938947048635130546477288146222898628001015824779501588968457969308669583354827760934917973039219057541823519888333769983445948739898641746345950488193900063391908547423828737166032330846230536352533526241661325264447982971924851616734537595419599288249112459094819069285952089283057342268933294135697248451493715926248119032831024220013774054322140729283084866264950139438154574055714341675308753822125053540855284591135879200534150627570734736228349880462631073177990029965197115013629699375368226422844518072099294665402594212612161440837971682694659431360566363036291890932642155633321998690288737732260822095100359089201444150467805891869017799309367768741191038819051284388663854594472694898192724715931229535094990074779767028275095130131947289001413348199573548321732334885618825942236577969230993954110401318838075295599800365833449441275099091059363884816232308697664009634239967479955543430803777714711703963530090507088359443531463790975517965087219125105105318085840567381871731801715070139647929010836823751353290787111031940111571205048869887611045845139569057406330662205317368629167588255309234048295405134284603441029670715733701083460449241381285013967997363961093826747237150501450725948513576266315215756661047567191652806782460429947788216030663097433287969321821677936295987189766708974040455935694943942428270655230478453478111460030927039565955214357390992339289853040595018145803287951496442367982611482865782032610936342005297356867655606100173225054678917536745480680653922030277316004141523310899730883471975395307070514035060384828553399409100946383194371606194755176105631204222290904166351673084524337558441658532901915381951681394206715850624279957648903372832740341131272931114470665449574313806069246238004491439182262153515262774991236350089573152601914891158558649008558001551092523243582739792193968879168213409422069473429869030190207850684234839320023290961905182727267808569538587722913747516988094988473043926982570859687150833311095655167626473814853301687366116927704381836881737344582869202678007286466624769141254356623834946749293487772691626508792138859322410180127307841520744379270108159934162122931164818980773561986290656920542765134268313478057576722127292188426644040161406112198440983582169932571798481911057538877285681772604897266340545564966211301157587512364634904139481646764432907385963577008037045422081051659864432865567468230742766439568295388185821199832074794207321291865367039752764583001661539186615630204735784349249929977256630241461730188351698354668648010921091560778669807670798479924710518067662852902476399721336196562904456263045513706559106836423313455252957077287474724328089966912839936176918539323619514267132995126311584490718433095621981209390873281991681809005331916042242271980701267707290119891996310423582739055953388789687246398698469630366931149979765630719895663990062271856756943350867495794751604095585302122813457189143558209484404940009492680149651408447610814215851889798962700124455997896863140986783941611011003107126345048076481011676087582958024680986045601432303634858204506894193527712939978924785382548790650018045642583479094382667119986011650966067692697203038583646268406703213107383342381420482401276309819843209339757134723550173586750737029879910362654601581615012677914987339080525756815840683418341760295821997822568918749786214776645106696791890387326527138865131770106271670045427405386813805507019000480781386976442148676826931798236003906752384439614949697787716528975675904014572287772558575059392382715774216034981592530639765325351864545861219533422322241875965254543303442997709302912847259262647082425121488897366558195313053145202441958893910865257419604711464349548343350464088434024885540957955569894857399122717366686606579112633477622255101684354997070930308805113626821665871908469152616169785342580210530065445030488288924604919219428035269640292133882833041261075343222985896161190102663200088653414402030947307359981865771711158261217475627125018393999829632186572080607683223092583594245935573208935134098807424294521522831773549810946037053342203122906817095332395467989511796819731455162533439030564454341402402859359816546307887521756812026307377847149080810136331605797867730209955440996888465577858808850211367565078580245077896408371268491775406003785111910677611877485606766056079656551627757062202611658295128915010831756685863738766009613193696708402050571035897676130013123438992380394827781231488380635740715092641394725343459763275529606667453881569587151585866175544062787854822233637884978202627472946476942656670756320443841668648492463149938292017469705358265373297182510871929818177241854801208512485253904084386020886025642026427157454553533016577489267782616465147897117532318770279239491993143889765889606366853411854248906715614426446550187294954188095107599746674666827518146478822445698424613425108616063216674899503209977382754909930629012720955920857575280525623051823797980482671924328084197934763463789380063541524477629287370551440585172146309301482624873992428422732235509458366771368349238360401466347935771873371770977661413777576689031981841484360325712874231142787721837259497110835514551478284529835017552039257580222289176873271316582804891717033274664858417389584154031343440029118707332244540886586668518347970707171662022080678245172237180515435111163432443505499449144937086458369092020948664332432572915122688374994309628249899997001370937080937802029511022843123185433707967488880853366070639616022352236674572655158856803501914642536598036550721457941523846851596501201208726659723171373386919063901903604536942804513132006831064083944187471375503007761488929299996638079461590527776637041663364873222513346409774638528926625373724746505138973053920410016356078800168412935356243620174851787103201009542403806513811523726143952622482641568878305560201706296604371461860112944217933781796509514188765867396953536577845619543606456537267376003075510560728246797497139362178162929876575540258119981767572222205614408276076056813329455612855157298358052869004338658333212141667494149896261960297130038649478886016639097348417877995797572449963884327209109764583593841454932943509093472961058636391388059576323902304695096775595308106175041216789612046575712071113402540940538160493864499520930770343576986382164741358783966260860632904795236752215438527484212207983485586697028377558366211547117839864436998751569121237424885262567153010477438807392432215725631296536660903591826969460661065215189010051327773559158530906265840664769119436444561154394578407831947760217903089230126098262069612308061128136627395781846309486904369560203595650749552990301309444947980833897679809232310229427007216180083330901641848486449583018532698837835245438126254633321514279209296681709857513607216273308352644290308133732919560465050095470070344947064038444516238620996965288702637496950537993356182397223497584489369012980957270625930033178949630176574163104102386890887094015994033718465276989400400773764196120620102282743180934549118933862974681332851921553867332848595084417157071787446178434601850345413940014404817777724175322875636616480760488849096077533655843231658952659731728142710290425289617731944058509455681415772492803055500297400679911445779562510553322340483459234008302857905387097782041832859381280457134753952790739981608159277563054272993394252863601550102665850108545545908559658087138386062519836311596327940909833101159507909621324136670346981966313267026850574547278088380324152142676460444196285275640701179705459793146762867824167354826946207897789390209606924151654283848784651858293592831861334303073968492667100696691422957053388570815232974197398802540629433956755227945176271731325858268491922512924673457243369849968754408539551235194862740539977461588419907198248051721865634238689460428674920597862112783613449161373548283361801714068910858446368823658147074645232949683809836637937004156501066790166278838582752693213062744703146401815028040793278048420504132799421552448277754806581549716648602148786947547571591027662521084531330905072611503144889461120751415785975570321866731616180824022540512276974241739378407279979138561952739434200853468954045903947628392178023985595034079556106568082090063262207876029884920635785259348490040590214080112517511403856583078894305395006362100199863932056449720379374702150587829288413755200084465181950548265337622240321813425986373938975414211245943677177585100179437071103588850753230488259718775564989246708759476505417817767409620364377803480622738555433045249880081053382433735178111922782997888028874611869458167120167499287213800154886786443664128557154618841061199145458925710041250167531875747119843347455005631236739076658140659540114904830650969725162635112547531038219788502510369759246600295727884527039427012742825053619112026473895517667319106260290646176833647732813913925849963656606354814533416959550639618195032638055607047877457304946871922006567609888875464067373685477913335437824579037047496798166348904140742158297828760891346834167755477984348696312294669867634532294616240758699615510371422751469103765740161913243699805470287299340708850312415285112914389921990007275676743156047759462279617276862916345647148770121018894630399280367626981623948309024677378575912128415377670701266015479928779009339430795475427788274577693116900040742930932195473893742232336583926434483076596563323621394086020724022795958071250109597003140769235963360849743857067070863363034448966232592311403591885026589222473326867969989722592336382183559347979291926707706084384787780582080474341892987545600903551772103350831106936107323528139913514572055851081189306198699916266261427242955363899451764287994499692397648923164735173119914816379539340872458484915461026136962745887814585629452441154813346494866234919546197183225193231785735112165582461066205531640333190342461692292503117739886275791862993341209287456970413475675704727821612896495822791073570302323634398349142240825730040911032643782346868331670358560380596434938111932894301210619965414250561727780454525777555888570151460722088396476115219060915337707577396053177580785207739098186152547410142709396140803192366172092479430610471793030152508654641038992954984723082468648763959808416256225269767652553001940364619714296743425477425429379399010895131316770268904157608062540067660835937622256979936028318066046955447972003786554386372406595680600222137731296796768701402208055912807518530336311683238246920074333968616656605803349849085249704869564057314088073896643567296326360859312152920888872556205144677695155978663825868206704399784721248738538722316412924223050579884185706016172083558293445706161768452451747920046259858111438565988444605347176493193037537232698156802088633980247519197946280782617838920046673033704459254586033540479993125690242193657044458923088563371771957184302356881476066543600369920110920974838774120784489909824270151672537443358119713016429512827799643763167447484526430493658457789621986837511819066748291665330237509876164123147425422220614647726942481186043228788725212392866847029734941726657971410057084796497877392250877454528069738457908174785190289189073011657521662421355845801888301863663678536114391676318081426216965469572233526623890496287178637162063290135431784965238393355555753414623232353154974413237992842169007924575327788992098220968382008138188598248987171702494983338720510891248581481786936382781187948576549524859264048134598687280818509597329207128623870080658243592163675273782900236674665060076005314779814873627157415078799305453028506971672757024357624929587806650821332681464807687992646702327625854534697099674334719475392975114514900768652448676795233460366883535924005543887326064326773156610467676515901265258958649579258622525579683637637455869920167382539124022989115141736755662806985372785000600124221112000242205822967500103494112033632295362770640286793833955584923956152217676039268623941791483287096233993550060273352440641667401856844250890464679661348981887719570730051782643800247279888200223325396552172292616991026942586796064013505917196295583820250266585092111660986735214658367299070381999132281880586203497244505888913447024908981524603004705057460732047148164881226551882440391063870304554512768356504450715616354114807232801865758122852027821126205549906444742413027787397337671830239198994728848097118926658896822353871879786109163229345736845408016452036342426977518436780156878908121466670559512742646553136829884349810367448013995041318056362784242561775956289000132902342761908259415329545330101789828867496359322797724068882934026260993261909635634879065739937572400398189067066731817372364843496658848335118697296405757389425803671593575826547069250834194480229521750114480667154957476794658213763071611565241808505681082157325694482884819204155698441255611038827542128598015578807667095068676758316881540794199413983341710360607234293833838234269291937352017235964256642722178357224731281437405505084886070494089234317433207822203740119837738102750062662783051286778988572158670875973752785503405431369911225207822603638219480117596076758022205511505108343580709533901324811412043844540593321163797471141105923611671189824123849508099817304242027087587549808019147989187827501029697582139023634599073619567328411054366380846320013768271678128343443556082111957502693621338536513988500522282074843467326819910924330801059314441238792508406318013785818042461032486567821065926342853442421081012272996729326883411942618639465922182310323700702533597333538620372045483338454288833275604037938311543820186662519798490470603363710797567085641209812906757764967013249371188125184422855449169525575123754419743763680553094971514966996038435405994941280196205183027992566230252220127226360610950310512768835880140289514387324117822586526108001051182427906356119664901686137974418008692916128077620103307766754403814517147758590280695216863195584301508535776403569074280873666210688451980891602722731785804218189596795244791257312721028061398920779156349133584883573910373623434798320795709410405645541987132788239687541395672653484616001792454331086229789812938757602006314322717756652780285870437458471827885035613345277736316865910740842424344243115845275651134986294733128068206582313682235744404767562810657639384819012749444265435975315010642177968974009510884416878799229135740306719567498058885437818458214708951048316412275845824716108277925020091522741903145516812894630594451397574198505146977480499738173993460128344387486232252674202454915613292053390671717382980363354568420782026677675544412011956034026286595496819760129837143221486804161480056226664008518891481387507888026350513850216349724287541622250622980441362445458195691163602875669899891821369159894512152600848398449271582382955190920550317070751543755361337005534517551960908245836639953481891895221080586715150306371912587814949535484039451557297450681020127351328151706410403892288683451391728784638950710664782498665225354859833397056178395350479868342391511553948191336488230061779808000530335639933642315004129840168160381814090749989503427912992058178592653423699984330999932360320705688346238435539096571996995838595473167422991136934560990664850745671050624873662010758022793557478770956849443924970140167708158979743911103080286814555060974241921246395354707874830434468589991875126285557429534083509512613543691909438846031582829559196349180417800627714874356641064192478553124006811656654241404989173754573716352926160562083549980610215874915154275414591385110926074483523441850169463066657586870917815349750813438946735204763461975333160727748942398111184779967994177539736282514211631821574835173073426803254547466703957061006561816535505833106999422937894419024192170430040240748108103047332442414208198462391428943607649574838186925545850122059882781958213020632962880081237412661990170336670439130532810453845896498628334083878222190433127706098174264586071834649150062271386529735334476424564666573923354243429454918030841213475175845517119560258975480875864713830446880625330055000078713092518363922293105231114553280027494272652819568136884303919283370501310248265865474075742918447006243781551055475022056629758900940401484086836592735726735537849100688427731071583658984540549231251018750037504139239333069851387961267390953229841077640668039995610314160287516081821409312926319290947044900758130233671816718600578033864490131913728866232197644702030010038893378286803380479218369217444198428815703977529957210583782123410116023345668234283430734123574272805965017183026725772578754897729052872662806129195888759448251278492174708500526574114954862870412100983672136216090821565788881582174705864577248234509877813319915582578459081982712036185348561917137412272560722069660654716991774045561594535955850955777182592835316019735102861211555255538517276001035052575723318593506184667817300649664811005161737275377400734063714956050150109691123323934408196563114005621764127097636248703489224511206453738179268126234874653024319325569404074221818391588479152234793334549811246300411988516633829838627912404291146170431921978583809344257017534524001750846628008995353864406285821155579527363518520993633314334292856355415493574385725951325602778594976443083402296554590289281163841018441405959859007845913166201057033011696716643644596735447117793801527798347460887464725279093285242795063557929093248836559566420004187574661955550245633764240586825040917542775921912927221029162992055061745617670552859196247665680202730718019587813604809100144841972717163059059965160084736458847868409202639423513059140734063511155541842381569858712069199435646981607644669042444756329855098947064354477836203885652520437690212944721183529187206219516673739090789561081023441164425927580138921910720229126135053956197258502681233750011265472409293776151780269389343678202609496431065902145246103917940113488976175943617784620067422686713581736424317956861521067723085054694344213218289501669869042494169595965255987223203778743907865935273229159477696424759697127241363248506089607386058724273483667465967256142279767835355834418847252610198234819407822668452348147657570317667724531966920750863834768500857931797216400910707840288506904188568288667986407126857925467694892916866276187058938677616610855321560155446112164837872452838363616855006440730396020473158456734911193544665247374756523290873892578310217320375791275988578497446472466711425327449089183039515775128404011834507477167557085684844546932559662375948765319550918282440248506633616532164873923326562892102882502790392097569919976079295537809728064808523169891793688894355946628340071891008250295598429648605709818019812182541479344975021413620124542428239435805571742510872272321595322943960428435095761296911231732351768278553493384612935497786754169246028956959699683381067347457052412522961676316796506506257318344341326701489269607450519146286393532879650158040985084293575921779236143771033100491196893621180357264700335808905816723247996570788848402170152712384903047222609488483740833352264572764206439689683421727201749241432585326766890789993588918623245915498543489374042626755253766371115046604103938165625473039113538178765179028897281901949478445464418112161025761197181636633355857190093090246501767127499073384419530070998076103463036728791036642152654276198638907361026317037164974027174278340629788332092593124585034562539615473526981281295602547278836973031068447123466443034148376888052438033566072909543434889813676532576385879295238428239147998723460996612855906751876612086220245577587188752639983270475944461573591968644418348454182715332950488136135467952362766848339255281041292426546288481511512907970527113659976541654339261813005667170145834012395868967953516303784279614206381746995272712968777349237151487225041488197920145148013149647603352112261670737621902793641538729656219730950081399966271813274596179560063340745966434776764326049124830519301415922672650729708972112113517925002834305031124579557829725065849676522237146648363660471138469321608887341499088427616495850874526309720780108054868950503879272850081091759583068253655699111225711315760152388023220243339450101104186752030903077819569689443630161241083944157489032114606736658923289195477105536172999592132798510093902771956873547353697186786953768524523487839703378156378258072714099402612204227800341167786638783365204085423522431003779718389212108870709118201321812294782536854315433277151463599226180428522232045455160098943487384139338775236372777521236086384806729538478225930054485792712049035268762272377200088866233980214779402498776054995330585850783312459949625788321588349294453304237445660457286843138178298695255869120604370817189680394631775102941716356887985317751585841382495948347912071970470187429041307744949735098792752645979557004631200280416228651505240239402816853413433337739124674085402350539750646522767737752483082473810554364974204568470087375521174904264879816537447031790807845692667188111677413041539118299679398332237513127791697170558771711418609971663644793689306005549593326225762612422608668928681512998800779326894234424403239459479390525842352361390931385515175019387134675676221327265945723835588071769192322832733463138568126009433597984163219706644405565716560666570110746749382750992709090080845893760159911661394257843408354745746981660544375941447793425471644540508655701674555804520093162898060068878535633537070496541842122297971600975873047962465052240396826039200068362401398634114561009019899256535321856080158926363754634770851149897133672941445060408033276622202749880938895390402268318896361869802934198062426945491503115503364195870808408673143112218053021788967737873772800525891141578111846375979150547071074797200266757461508672095991670322003971152207165868132775054093689441179794376640157115761105240605626586630046027954417556352822134943852783323639914286012697416524562104067756311335658674423771317157830027076005306676470544725105219195948614492713962605640051521048595219448761160195469529418247704066999969996469631561512272245530371534952716683011040145355465269123050040561578880926847705034725935367679570891256530122447540307284798100598123947949370235495408376495389770949593091904676594291966324119460669952229838469571126160738165288844647681288078461680906773724707953997775379119757037396451148383446801182946435713136161148172881490802130810207864315041389965335196865462260671940474268523593503605375922879062597887565838081845241298246997054786419708589462228053795545023543458646643448603820209471664636080121134806046269799042291662076017078241169990982607655477287424139332498411427221510932238853484561819376492632388571261924948522064894814217544797346775038265641621200105952413896505585493081804421635073343667892306674283037590541652244431404489912895834908031576206276201600237308925086526848424090953424366517408791565688858253838291859723032543716019957344671244317259689275638812035638176367891648682209210883521368525989946673328944374570769257725804266375793261902229123731839268772843360743448747499799383823167740005601954599524295828955333933087893706663534528150495191021596778692682674209892370657670631487372003457423879655831050226400112747614309204974944234810500716123886405141232605895937269372191034791166169898431069339748051565398845338603331302732199470602342691906004819234714515106587450860525804048155135739966682645074220902175793178810989724882172558175988710425460982109136606524638270190244916421170287500792693664015289341980211991665219385366401310469613671136510584016932880018145446023658095030283373691400110795198481711142904985133663546443624902550396314504373786686100648140572964948664607613517102651014574093523093826907232208554683920833063396360518172837945226861473496801838210430741400916140566665502778500432945630184138443830994916994181562371264480409976790466652397072142992544544460147914913820989503156623313680065261269217464265266267309558010887704830602033099385851095217182746287042583155154544415595170196212226539326292680209569519571333786781926226095688786321557138518224243938192373978587698301808389266806379856373739494999503023957290696256352980773133372031999598942077973768683578408863130976552460984056583815349123007782416908591490125335854372338186707778463389694323390340806026513877464733031611556177703557219590752336375873975895978907583270739550503233632010948687052013778768113460517122063307638786867995672738363711853864824292282699277165021860549624010592661930244861879378086307463281451869258836569675551890146614640530060679554029606943806380464115088601486018650378891945040975497930744691570837907817360570419706532437721483792918684618803779189987271072400739122673155995801085075475221127729850754998986611179214554881418015604479364498133117550524608884997665285695949029489335397987916875290070247159970025731300653676778911285391990163970649644923115573846129438673688667795012642537558797018168313455798976951621370070571136531509847446077569228306014294026422947562124360841965928413523028175123455424831797294287501343047433537146573825851092085076946281699977497990743762316747132476992881328840261676249502961908520700013597364383179445594473603653073974278966819217781577555174425666211032853922446498396408820647965619232298442893224434888545657477486469404620046199057043172083226964128108681464052637590253425706508541352234817104813495012744140528791318500262028190239169659918531854387469510941583346692485896598309658149478742629981122714552722814487536698433745969533369290415068304653029079125742761991520749819033081751658325012098745750117981842157105049367493432183526090347508961576259013320610825160172368344471675771525336678273767905001510366975842053073545412222835654880093049404776736802630868679993799183483335907788569511373594115680863154697158921120557071134009231541560910221081262351134837001139972700614204644921194459407638794647889857539966372716925192687327056097941340126395665591854315198102099101653087455537701578216782960057973176925128142895353550320339732832780207762558652162518559802438011953776069202603728018085292857920467649237438673387699609549053144964012771493291108127374257272599964193912317820158133297526870919833469603281780379592009383600233911139151310815611808609820351764746174432207677199277871780677416206874247290226403444302081552426632650823145163056496451250617536166356913904378479093141527868647059292656169011195001865821464190754217418726424097018171026958671034368526966366939026109535849525750638911053762467508785887034946460699903735146056198247333323475923533739473696775386169040798076718884948892010116904147481491117366728511462644645513266555389104776214877548314048271751584122721540644530653016594035469482388096393004929316020361406104234282051871472768265367557937499853783647171015284211327023098921861267922083373721037496644235773852653454498322910413062055416378652118401824566269751876723893024037607939346195060576290253705418576562808377533353640801956547774435472068225059290086555073597063985185341388974802344380104758571579707130590521258138568167200161491164799256548435136782545273079570280221705091418027358140092834580799496793279763318926457812483709105619832211068347579032165361519093290357913144106778167440825732015834787173976369379986213261656256910677873679401580546569744494624905742618723734772941250273563170613857654048463751364798321758228242737472808170309852705703290044747537631138046326762469908898370602624854798746525957247042228593336302675239038238173923738969157419688895970816532221974451085377957998772923323257753799902508429381962250716342869377756334962375234175276455856437937924314620452874528454714471818514615781698727558743451815969307320211801211874254068926732184894442991298464306811815395401153826115542686553808402429532250173694006696711957670321306475340342743606998022255153487517089529126240949177727597091108338781050485740202846116725678275794523878448130505509521148489945721143495170785419306791039275859587623325127013908047341028654436142158182082073584996592828199487159614199919622768627478860724502075654669595794085653747988536576421538596227671441354842092292878477013926962438133053564067874872258897069485348172648709646635063858305990472252657812204266106485288305672829586058113138916841216283478346471541490076006598486588224226312522047160029760659043884795654113532216465185296009229884518556171918934734669785489939150843446536502689023263784927565444196547006363880757008555983964790089147026831587873186955655458231982422624265434411730429716643640834595109668708470514150971009374521122978863554680646982117431678066772459561646906036354109315794058509837636270078529546572236295864810424001644374140983598808779322916174588043712958282518049243143004707762754514909398292869888224930488285586643635282434458939337034163592639610958033456028398873952607182153927411180971469964532325238877268232146898378839522100294794984525006781997421765999064806633760922534587640416138945893369391556694408558896491402952847280713816550155759355405984639152347266666598309841079481548863012947950064654549351753377756234842168514510638292711181215437584623381437922976083200332570765382497461813422089909198232555215928613471858160128649916794216174412406189818594606869553307662127453466012767290581235134658270161027918267725239317142673372386493978750159140396813009887470636408319223851455549278127590995585144215939004193240339148468038164024483975353661036133140340582962592970324822411043502155200549163196867508355013030073058948557777458503897346651931679609339019189340819924972159965848454702180658326429591852431940058379895542998239319031016373288030794200753087865005189253059791129722870823601922939472618486321890611613782154544684402884685875669077424908570502322308565108629816269468088808007748373972650973696490224410125289879590957690853826382410680016994974590215436467961839117639167022149061497752978430030610961390063998368661528223132274874229912164237826833075608549330318294900885546692280793947910471202430725534675956761096750673641830390264741034994132602584001068728327143455694924515267155355048899329800951528262513191867187257407329069295158776368932041978150667900829666996290465245649724808424729621935507091111332712291108683633862865863570234246383160080736720885965952977559622162008828551031777530774615989119830166321375752468197574251503888156916010705044180094714148652792856632722272352342669917269682789322375167028645516192787954166110280680198128717483934540575694289344650427313366277545239954717068413745216148112055316744055053218269208825127299882927140020301140507979393774393211110469232006511035003576597188294208886999111630770395534700220233304495377165906363629583813934043592658763140187430807755604115382332093396022406147896862533715476882980860814080249684241685245113439208087646743996017900099783391573540741397409735079631833435976305765933608819723016265570172934249926060548360269794177701737006675018949614323947864445036748906297161456006260001203371204962387461602195082977433834263775996628670841869499899709890381823662107070753566255460593617923067015811195916989837992489429411707432533235110509223508967806391179843952150505357480895246087886685369243553260521129609894414901074068359520309185131642019696384214085955670599751583497764898479552415671199562712451005145557466382415316150670752875131792149834144351753825420688198609016880995717324930305562248090035199813903318371373178247200843531038479016490237678753817082656154639810630744614995459795635912309529857412279020940712274746018128300991703811760548325822331299115436531882056654761508031869267678993340727826644931339275950088279221464005714537908220310290862448579614965265237779736371483225193558544103132008564491906514132149305369183648208783147030745067662478610903757361272178179548949532372215517340627193971043017941790648092195192620158380567017441632278968651287493756254258609283480880046589890544145632459056701304723305451241698341367449173840945861291490425352347646987074529617816496388456915842834602413513928363628471886815324801855852266835898985741155216009560879143806342376225466399407313863865453330415701102449815107386837390806535897660080421147733877848285679037809047947645415676702562813153958360823767267747097060901468532471269915639910321214219319621060931032281437940131033851043322321848130045119015268576815668724155625634822182408077752814094896651135383948245798285079159337619583268779373502177946288708491550532376768342702889213571809152641459077867970106366772628393796274755315743050324983295195137542609500441255655089483111334778446460146002325337987118123372963003989529590963952542149952738530435409387779158722685297644926512469399391245098530969606960816220436628375348135009349233752466966350630415092840804639598648829924267309500784054657316600720589726650525067172557141650912993643368409951983504341345754364223965363790071736033124347645226493649585959275676861553408419101788114342270490895024704410066372477025227864382920565177675546099052315079014933324296180472747962595624754015543958848657503341068852460612303163439557690948032162743065795788203271994376455204048243230547144350294847916408409517028810562536835228271995581531877404035392124393600495521013995998897042826423635625972104569596709577020576989050908369314978453861214722485810759180941055023582210536666719235370254423587103386056304868150121878442878131599163109079868368508721665943956637631019894210656608154367623724822970219583767186075444528144953357264572498358435257113612852906531217351230715344338657104494808028451977284553920622891592324326436108351268667560215089582338749630087949884111018458180054237490550985360173937459626684860034481273326401522900198040822228887495200891858819954463347583968080576232188256768961478893000992478174096472495348624267226297946023702457965699305788493372628063373748858446433338203223179553021987614198115305307929579993246875658812122408030126364109208837132237205421883062013749906621474642973168175544251230271285195945206370500607815498071286516434325377680034440827192496232349876651036864278587100862490739134676574841490995036963266288966447520863338265637358489421045335637527506804922148657081674416549780089013058136347338058223941881390267800852171132391761126125825549503997506928189328163400983809449376079484482082579187697559885938458937758070703070767795004046020379917549513928222880326263411437429736474217361244830228210125530830363374699574762980145389249460701413238285724234583599365734978206667363491730015944274979211976163131569510840935089718327302333890430356609204448363639728282619167117865125365716030716193509913979327009113884221546771716459758059869085745449291278042430827552260037350606511669724190013900147709163429497891101859895588964060754254368904577602377641054981002242774251695310997611054908881404046886660370429925671842537701280932940017384250890560202792861656539729256452677627601522701868270875505959138759531553888357028054728396416256487361933065599559787975586735772715040346189176341730875582639129465790788842186603998491786790808903250827520963352165281372967129464020553172054428083081458902779271670563033010213069933773604029650014074925500544365918625537725422683181757762171586360229959367513686745177805132725650465940074577922894772699731942375757901784953632350001368071726122469756435074125628047497361649345155893006379728609943739179116366948629949337144522284232887428744068163843005486834983193073123645164850659484017146426911957646564355788382366874862022694607586401092795613697445904147606762009387341266306724714625825109739756996892961303208975929544739179399456290098806775901084763916256111679404591267996453020103372439863637271864738022279466786989192941952038305766662969539956792627792213739969769990092745764896871942197260544602812565193201335872389871106993801146210420905254088719497052456932646550828424116935514845610952247103233832932602898429228058483588197174128431121670713575916292269231413617953404510758692982307293380860106974877541174838958556325449706341873109410312754537882045361926002260287278647282385400781187610004389222693412645372259206031809512335469714992051058573802655599940162592681579622256841870821798435488907953952734784605082752775354559037414380872338116769673545535261071589725330593977559212425799607289306782776574835746129003727283420488109534345544845471838425454226218616045272972473485558392098890260163585071885937369421046239458137771158249680586294059779401164255355127957827039535999687187447363724583244370129500456389854920518002193969879937130947492501322898160673936593328011875824147391836491239195862504906088253556543928993277845427967177306069319747665526970940719833688709184898614347867393412650891614031064059458583571124785388530645795883213063511590434419401203557665566024118095331073364080660736479813469037279327785159418168031872126061414038723075968166118287515429820076240990874005462477716329922222824845115433933464373355695263593447515411694770243754103852862007784719060162761719386576346073210424090159386826096453916363620016425214765407151992849984156833575814179771046967358608970910303402576041432566379381643252342042804214103196149946563675425433058018074011633341941067206610263776360718895561794432283490164797915714687163641816285230097456333446870780194140242720631858784321850294213995003346478076917907589494427793831350767663448156381704294486403017519334646559690487274212035837345654797103826554081454026908029172408110282852959544537897362944612569307408720231400225646808238154697438227228345387105786173151174163193924356155001277336552414888905568707495664362031388889614242736023435030906692961148357352561300768448501563185086595773631218654173810681290549117436206591433725436330386824963631633732678937626723779477453569247506280674883435357503724788290982386961538415542268391149477582040094165126178100269105599542795118045667250144849325641664705011357424462681777194828437617903010959387870222999260384933715548300244478437412688799829048789370356136824939562108520935714612808132682176490902445107623773651895778373025378643310655744655828265872142520560824139743696568646081180718857528968169623231703207558878267483302647313380891847415075423746905608977430276909697430890626077485933177880814377253582332437819027235427153205894375243274027530632037283493561192924327854068584078806442614197291840682936050335752128385630779531014262563819141708786882299036055135768918847174221866178085232164949389325960468001454639653397103298198249824186233095657691216626725281725528876712042751566971231459312416318668807179327166786842593451741038950568226839404796391791216848867665102050830569556366958480266420661130380493054104825667143506415925895545801371504092430568032936918924561663772913136641236039516994112881957466675379490260144678868454393856340155252320570386129228680015287758983113699307546087805531994576439361303927920418306833489932579500471609663893967861382019266104777703722499273647676325027808257985465221293082786002080605555869559810727657116717965566237478353758173768827872777262885064185666937698310901597425356371075319955488747827033322491933711144631443840773189674371934014807280622775751903024596702962403015968517944167637183993424705518035981973037939009674427906680289121680034535451237646644182295689114070413162407254488213416941864076185738864305952061530149721222049174252545543015133502823143562729173612080133823954111120138844566586873437709242748681490009865878212777180750018724552846396847146323527495396045997541414017236171026899492690916056552872990220037472472646326088428431590087171574293309361668430978431595213667541950096668431437379845087100751694320322584362148987076982277076379637897706189037156404078259416560788036302072873158359314328288481598291206115363854353129610766060561577962876070874524044814429959380186930082023283141988009367520987607856821458059138572880385660075830723871763998589568259903473370559793957280967067536751211493207194383424390409578712776818046163456402007241961575380266176502644097730382228689597874104013072523344641865119004930863774069360000588965026183769605099007545098826779695210771117122688770336916524964287934825287961042790099171059237101854658107511793714021615501546739571860903541923723066648707985597717809639557487094129628708326513128813957553946369297037572595536457031039771330780545684247515364192552143756243652656062972117783267589925257148530575387482574421010734129436963938021951365965065241622975088172974217205108825984487718320588913361961151595144140915185409179513511388015989300884395200538251412832096855977332136409212358672311252291845488219869161517771545556957638203978569712085551501978191462940356771920979643479449189690940957321459332476326714469175756411376496477182069672971506862854222745479005868059206303114133124673740805823430096588268272535350102618789909352103262509557107400157220783769075117288324269589304807006444186751673178373208916156676245937923321950100810822074107467079214156700466228510476889987776190849600907746509000577798320966850658287312421047309364980229713305350279444136662326919997306442314062746423344480711451544208298114506975329326051488885630985936940242526850593331523897142355422361015900724622546951887470076745028391048910150106896236394029473244021681747154210516003263022780133449912504036094771421272641948697713831875882381207092112137393117516385986473317798877341846554767562517642044472185104521036187491186447004088488165410266102625589427387532308301105215128426929882537683230678652039122671382664136357494792212064337991772143957190970232369603736072553065613912997938008139926677768360998563300469735327594833915202920475484868314492232344242956738784897611265349302264990629729964489965667102168498925302142723632870014358804669733856182886985085383123640548199541569307522541404706675062438908880760172700932689668886452634815046209926187882285784722557995470709302280272744078622362556283660992032307473622710203501980975576139159163448679542189039803528076046793664937164865099100540058013924130475776791291965187086422792719668173732248539135666204625899865388289099313602051201726948552705508272127637851876499037607541136884507839448462109748840100581118494055709080066340963992851235343719703549243386098820507215968971512326983048601970294046711602468598006449746533190060021569491964195221183283285507814746332445803066677887787840044813559584749619049642500568486502976131718933579985579967509419980272682200222622793468617630377620367893311977576544236944329842471660299342929072586723605489728313697517513380868830785302980551217731377706181405930469194058027378950404400625949945821546398994429612420515935859529337851789354789963774039478129147124472361282819260253565610291376952932078127882324655913155453250250649822827838610384286919022556993958663223682822468269687981838888580581895511997318347408895590821313328653299744397028314995182131922450734526986950303192653637316818298932118116380780583165454429496094517216437777229170965164926601450761100329211153821275340442304184206190392472816562263666748956784792951204906044791843964731774900618333366061987645533667141660095320110735189619824688600829402942534746388701126100302939205260280569676816723531101100003875449314882162334255209548892010814344134634751042919050541991513997496727075875132356111847859872100292040933789502486796459845038028783475627492393867549932829940721198168284402865799073295838471898607802167491227318224501423516679589648293514351545786886462328067900281564605177300828229382532583410851876394939808221842125519842185431454700654310230235196086381683413552705167460715409623754550480480698784949405258041495237858707904794728935772612986316896551765520406208208575277303369887082720876974570137736927240199370094257502023433253229528326106369871784156721107258067791194984192506017246804395650977285963712750495278152544182574366281007055700551948424965507798434582935085696874217697777309896166404326847338676545334406408374534295347960797444362317857292584660448535959200258920836939998537867164716277095589339292255914978032475078946122017978799553186582426351530212986514696219301829314884854854547527113435587948009192352702369120485950574876595810827122001563455297749940612901960773092945158631944488413642670405073453709452858081763623021256903710441103301904454029703833952576672839563113329390164702223253227906437551438106835351541298762239231327680582010700350795347124387108575257050337355225840451013308128610903994288793456649818875661377154549765908629926727400494320725160294820270006074767507939138546415106086680272584957553254574599005998141073028953439484175664941249157726687319642785961723394133258649257069206623636847618436857012059317989118561581232832586405763969139758061979010665126988065201642218903975146469464550126703101356496644510013250763714956464289694278332400441888158259947111444924229799400716606783183966592227110465903342026942352015887206854345536710015683408048139851404362797593013105484491164354575219146438554164481086454581933951663748139430915012361551894028787581506146053212074921951762224823784377251360450699900436589634768926070108722687360909577408774323273341698652652479745867792455890019851929781950331569081790651474339191680833100056913499559278637901092343397860380545902519751548400091776079076697683749559325959790612879601535187551681179404215154754774714170288777150890336287019743919484350137866886422430924758979252564440320949871156432267562664374876570473383079609740077512681473232985754414313855104476956330541390635255192401630995436466788555320670582971167158764060961445946959195369732083417590584140529681177663800073691600488556333538933019899450990154332785608772263950940779455861536706009300270362319660927291345421518091436244189465556473735908890443173475683145842320368999795059605690508456686414279953111316292487733754110090630036602056153930805007184639871819439740671297230554699611824737363612700874665956175544334238993586699635137804431214429548913645012106027073958821060589587599301053573019984993895948255724096065303567715703677026939626372024664966082019835095445255431679018810666438146595223184976759129500754500391824558854099171583745829754631432265498042921544853464710072654800988418220731897267864894827556323375405801171290890247019313250445235537200934459814191522373546167035947813726548709375788202422876934595010568298996330533511319612998206026624903112130422544929815408726266700579481025709825014871092854640049390990669143162326652557140503800973930570396627020781741904145561992424068647598846304900560415702232592907471439483746243231362108687427195757930471230702593006103664352220353344194220418197619689064720513368166755569770730865674732880829294159588961869696700199299283900860637317882977206405179623869829256967352250769717803115973453615172826120957780637218399960064350901142002992115905490036301181105732660382440800581357350124743707948529455346303578859524295824257734147311796008136157821842532310140247130142030691095789506285392186178640678504236709529462715630717509929691365627543722781522701343543359119675557396148721910079247366024251461332087284148795488609723466134862304465170395400141763507870418003922672608337062926505834778058032773497685588960632858026394596875061963308697541589441877906422730299850989749713143674466741684146059360120903335108239227858504182980209074557420247139763992096193543713712099129251955441523795078657352617950112855560349985616294690214481724650622273640934935363679327122783657924022682392395786221127057938032384002273157128924024288934263644951905494218017134920718188056440045340670201240787292987722451103950922552854534992279398097341901052926721914120877804779792719997636173393644922346982369728173668035198731986425563683108102969401356129482434233246350434031953827500474862561513716505414484947414910602787537383679872900875766234294763845709675065734068603507036330875128142872759861868431854063039981939980971739638522674881548680776522223521977604034041875047824537940372758740805536063233298333162471316575213699912322113858536971918688414211188501758209386462195855726566137013558941478290202277676455180765553056377247747642965227468962700910236066561755196418196530894529222043006925389678859777656542026886059143771951227145607001203305642602988175510582802163560619043722650741043013069185922714317502948114172203910960779986398457948567059644582923812077984058008553448487226816882493790181284240918436124376610144217907994223307948544443973463134318271137993680979541316239084412293743231426020126681174648706069072717848743695186089851654776308539714252460902283800256714027109772590186406639681399602439786928944323134413463400475120501075695550320398935751521818619357549235116833706391167870697205208313463466659744073609106905276257600510891306665828930772148747310060486927050773499571512498589391409285435394931183859803346358642702813369884064971385707633640851761573637454757038836415966903208548077166182177162773187490537408441330492281021537069483543239864964071585338838530236576289105552334678881678374997184090814038721988993433289493550601132324864215715106371796630708615414567597290414855380815747051227421475346467823300097475136529459823981827115396611866960312189918852597172842040039052888105849857738905276568757646727629573578813393019463374464124315578142108837707619635237449028436874025670705850657456989062894977745579199512498876905097073693281611625177688250721998599013421082360844716913114303598575023476092461351574425614877763088991057220552854380483992251895545922757440475367789614898290274140734696427898676064552576124335115156702342623150710214431963037067636991697710265570163567127702913152611834882775818483980844827509977361456756430380340931348309122397895822010762653356750977080966814565321917083751538251784055413466339327501312181322179860195629074693216117888395020958072031692312311669757899709570700245972560726181858382076529416318736622632463858916538143616779471498967391354025374648443032595342477208616194480028047343997937302484021295844695429568453282088215083808875483740717915714719811888517897565823026421336489887157392704488677694065322890401654714476356968113637033042427587200656631819439277850345148628740015120898543985093255116233162641860466537040580773510375449555379542778820656709058509049369367981978534970736578575675359310692267026087707535182901712976552507448325286250399134243272794100584668597474551223901150735479534299505398867206706732369453988206968428514325521200665768129944359268954806483126139853063397817667469249110363075763051814218882633910196570776258494609452611182057025998480567465482394353832204101554034529383161528879566268218537421050018672877111197845183889885160964931435187645023376186343265973495816416596061581173157883814162073802579467925665453831696212140677136487141887164246842796714932624481581160376214285259863880017747483462454419055831741102155518616319930826925392994943544159426220582468028452929923881294558935976742039192182089821961155876072921470747824600360081521590074054799848728513555790582404331054390409134102535744808385289837926100949145724556373223196624576857802064991672961755407089449337459125205847521502781501398159988277559123034724700494822054077019469116258930115157386258607512992631282192991002414583159297125885527794218169385111653785359063881697439055664942031172575006697110932883723937639422465486611087759376608222074068740043149167788546202537833421351923782518275472212313502735720594040986514698522171986602740792480809623760034706406347410333148840545616738177760441838602779916439580384996961810375049289810445848962195444820560635170029914629917693227367152215331055888696411074398992599138299808852726694358624412766602118754969646157573139386605722288830288526523698041672149323616091167085750795287018916273507642460719627712008032604431731413827121417754315353031124840352830308841303465450735656461339175790499733786948287696459513996355330042018248201279682266300539663470008558918256151868529373363519852681956372668981837491021695047081442015813921590069945816749910259961599251483626744030596485769496099297302229520751458644791032010881207952085339348806906156033788654023104339675814472489689590869180314443376197567960615942480977874674914737211547717683041946542916843983170001715102681888943882894311866727638124902943488605473293096902152442549263536271571315098613515024667686305352915004806341220690459041628576500257765759118695276834442568821471610363910198066938967417781012573894998104340019912478711777561427229581635541040122057452103495718030348219629086477878060817655379990275378241206815429222631209534500515138042227372132542666229947402890197704399124008000529644674199832802312774387321608990892060419457371100949587615675807161300685560295145120018538230994369191532193956274818644472188041631525160106943476809930959452345655767594815044091040979304298132618181682787904477215148682978158088506718133524491845944378250758390866761546242645394916508319391992502965085494383319111417383104423228422782466541057923751753487314921222648323549924542786348596955776556174225026564181672245389193521686568944288739321087565056769096082634125652378519904814350508952621107082692917129440951361106155254921222103813295736655175138904360964586498851354504510604787815323089650270391508525227697578465709716429401216466710365925828959046851430696961214517601137882323066040637311143273382231993475123060425202031288003559544366653034958161388989230424797416817327382347567472461701405142622134508454074894154608216501250626517848445464334180046524786514332067281567758931215723648889824304212297294853242338943959360513269577708439550592411280576805398788279804332539184929800453386393468892014663016458552949687114744515975765154423037021868249738720950851379717276827698143150554761811548095163072494098414610786928426129738177738841735532646098414728676857791670137376763501521725832576700276066607583299079060357480015120972475097952912324546455926236832253584824289247579193247512702866273765471868654703168281561725664728860956171031527061714330979526286990936907122433977524299730451197018562959196634861707650137312961194038362860559741949031609584031105808018588017562159456245213025701683203021911080284002603578874943249760021475299434001639673673849176983037505131995861065137137452653288414647778938816291699560816444051460426110733353797802298486988209854049690390859140415588582819581463122524298957456233785313991734111594441564591901230929487065753483629693885631952592640470952725804010511513675405932695794556618394392429046299850525510957956882034989140545221369653087637821934084469088452684167502463157913341253803154353643083397974607472517322208410923415436771011383213414632796464409568851998725718765564654454515090494899791710209531681669491003478813681339598824836647644412663050296449520414595135013999644269803342537068504482169044083398761765619564597579087729164224407721085333117164629708010915929367274800919509822470928944184698230391972320932089723140154583372867752905464640562200556903767093711588011427359389978071065734836384796623873798567143377571973388698838924933983368121594625945281882244051548855642008483987719473135508567161452699420642376231976519921536450613076640507349381533185659793243772705953369959951794177831871345048024820263868047828268510608919135422723619230593421423288061201673989174846959671740994746133593760814854526602527334646097701820579310977188924836254008045702747203771506444966527270433762525397767069647590187833488029466869917193826338958975353754104683870872972173552880976522050496189295870702841797213222849313076819220251511221257999049328029095484994634286526383034431423637229848605695749607718362543587346681148788758163372835593302064628275738633458065357696271356126308140284084590680468381545822240848863357250347580288670151760498437674186580720369945774207041519707251206568155939971611917783811115630112196816946643747703801280789748933022671562630293696795853555145896096762927439153661405644953848740601161355669634131125240812996187969186528244437391628961824738974488025605757768049410692009419038628147030018612688881788313518158611293471486789016585821423722510996736655495739320340601437827791249543312895052362720422259580358898276618238806669640145536238848526439019369362540544243332029080653987805318745263185526925924045617855816607883921702493992343241144451096586281135283928785908534253685452902254755645023887638224616762410203548322994966674828045822739464376415389327778674360531084811031583517303994164391724513719564675142165496994762263288957753852182789516180322777607488589562911843795539815223213033955285568303705100055306475312505719688074219787241976726974055620337229843373334478142669920322738246348158959043022648266852495777200645940039375585684476915496971979744537723809111069533734733310985608171940995364117230004451840433946722194143644633675923150954269930754930025717583781097680149324904013636390794494142977751044200042179678293093162189475944803119381542779722306333750138365162704256049820789514673649710018217444598391569114546108352420712720886710271546167613543589786494338241519008505071496323315704870236092914091061393352404355483633832495897152970920609194959861420773810446630350445989852042009285483127489438620154774952342942494415662826031203793868750496186872625530198685034454209849593914819495380681149533299023102906631662862888709499250374413677155968168116051729181446288047672650048654688888181445482945088120029253897410199510982403545192795972066333169051751360056547078315105778164395378060782739487078517382457298328395620424978206968271113061876641537205613054198327201376965750209022337634899667939922882734048155693230705954834672542113345359152946696105588123053776920288484467087241830390419000896850094924847515013301015180074216864298246872492882798924982713349388412274207251616399697669439725686907154202632100157511350625348104149613344924182955466866501777543205972007111311985311551682766248752184003485879042188398632608385910485278187779546491926796107971772951050475617586890099238358134467608861669356271899286305884277724000765224171027387219245669021444030195289541851174920760963154019106697125764594626494414178492678968362603170016578401479529444368052955394174552597540105403840179509894872288932261271644570365973922810644250402044618054160945643858534866372401599103184980896556143705124461146810620058227721410067695563384037477651708162418551858167357016946258585084729372597060708213096782458581978952719197741317350563943699943282105284612224619629708805809158880491564418479501880684202896707634242282188978549392988482242502751685903351103698975185268911816048304040080727795663077657525646397991159200008969837404082662757075366048449839345263340044287076280178006814491604541174480983142869930636303027714538785018744722995043001068071104509440462305100738304229174454158746629127617964566525144666660178953239528242422023024422073454349290952253215358969287880228092406447300127999005012646714025322854734666148228851087802000699096576282088310379267058197405049226095159247425943211372820440454542312679719011751218435493469981470959368849887693271571095661034456506237359754236314338379407611774559240772261950937692059044709571586348715086436474745634395830264043809784952786352910666139405601586544288105444385611299013653959142386826509877000410312167437851762425640721599704477814666487513539876801949631751705114947464277913480190192321491759702462277604940432030641984087193017939984816981146581883842397343543032485912628468535546579641839813727153542562861850436675050336357825758260457570165054673548979826965949968704033686858866601853927057031011108893698899525794181459530554218347120845053310821294710351115371009305547911901077933576236095652815808458948940374241202570103130632912599876306167938381662377764064787922346018722937066019985150961214322668935596740906054022161302842213400912430201318864646907521370996809118092966213262836185427643601183975732247066763330249465679204095232031896092462498116536875402304108779202277935178728861829976905507775218867915998889482814559487373188604732155099231242640103800476899493466865962562105567588574118306668868408168166820643257559720400091243397870424628992646824990990164411018243819380343028920821286318946872487954952702147486693832666493718579646228713585042976885577029818993606433821890712135154588745265238788906998136149954592307390615173772906873101767444718445124604338499813117096048502907455884671592116180304576409415173753798393002861073046617469162640770663815211015574527604277307694173509527668096169069156962843580209556244661169430236706078104451078438802984014961608081049592047870781612371362804993136220397202456456454212450845007085628737936765492861361869558011657956764623066565237040443690575076507335494707541460951319624906902933373848360849194246266527044646882457492330665900782237362372037642667180634339131264716524591551647009257856783331630863436522665215249243196348725694029132691110586012508806539242393678390140786704338406304188040650658613663528147532979137771787347899304303637740876023083572854265746805926725706344383683372183778432603816132642512550032238132515195297669596744656629296463256057179769208758903541541956203919083654353316397482212495266653247691137020019512592171231275223138822972320836934879646105121901220410891602383056691537058563474183080030706677122127382923537708714783385230040241003816292806135241627397670817559946155110030717757507389159452212421940914944337383732412806404495748247092446590032875561324820470910789324902947219008466201060992149575782691067282523242007053074930911051459827886280253133986808562094203820270971468586608298355051500598517904429730310637599952840467654942065289697786888577122700154000211228093331462842130494938467503110618885714391771763213936820251134477075516089201932035013897118872300138313591469831450251349475421243590903012686761615415788003436736765054424903743857152875847457193059491976129368880828750467996241071128773861857784947267050246278136830225605786658501199175677293068689214507038711120735912614424773441915434282922808078877216417306118169644998692830266718708523741229118597326808915949455343570080334045462542043925681721876615034356022034866187217356558574795033779860265692682410204509670818227478679670460809045375750324124946842198305948913697668772925125934261561236242500299867154260020544547297450955733605841030203625823988140528943944776556073957341255538371082992706543104476875009564334204913064771494643561699310257130113533796587293335178916671044857300394804370607727916917039472640459613780635869045641306392382869548407516272479634183309064505340010778299989078240405389409982443790551525618732434811963305384935287442711849294840825393448500505075864108068926283996971048934949406190114031843079180859635033049941085335813934129783021184242001376351443963790359351600844909855306890115410396995704034416809500726596664878359247562225655631263088748118116694732586218022610124912130389985098316125332982673152859273541951428728984839859983464240101238945558714659109091415348648010204541503212653104589201755135771632704502578175548528701344762850399647083884701627473345795711857273854872111164985308760637255124576669235669799750578902370917602469648591752137944712147342545701652391943643571861273241817723055269817259567906508176595836910536623272119747691261051629485295551006973381299485872878290641673555795402274146506063526972229127412697933947972009860326542159686776082682831266885748403638922487901406492582190164201287344559906065438633830100225225537407993050145943094170974050431997194725597582766760794572813817898917835377806223614047460290873851220531218160506892288134895884376346254561089715633007469850556125913700868220803444558314324884273829794540325414783270184944943454429641515708587554697858090889617393720576666589184662331771861560896302285219298818856520686360051709266563592724069629527413309468111436240001490021745008248639292349508459135768003509882288160274289547652970118050668931315533723854978107513947277557037679399754183116433245732881917949217967745875652369072763116815785230874649495498169591738603193794445701763477075618490590124239468907933554883602058631733891023153960777060433455881733420653082874111007527093261597732059284897305235852686465296600121463807925673106570798388165762136243059785711075306490830753456543782737069099639052450536787971888651633460252807535402279545941938481666039663092147558212518010544302939468658036933705387475460378242417266521465176049939188239276101360064862825865428858231518852829586974537856630519313607557250853826913372842664901120584941082994243048847213871749598888374761399972123114458903500429488720937568188436506662312630503996892984897341193308566924438990882946350469596759587480194922697660213437235731486846389580556194574488353998731438382048629528695889977905339796610304882429603884033529639417731749746667399615565739487220365933371559749201725466525249571710926873049762595904406541852923452872804253897610357372678470082393064963201907779555269882562409179779274248280672296340034055827214400300903883742363524558006530708975277684766974574595671673121139294667530162897784531267104190177198917381671162343720857328690123810295813042065602747302400294136202070798233422472645202128279957295755944719915687690225642052233280098228231518348861457669204234534632365578112682048097224497991388572949108581892212397832781824631728583090186900600133329536743254925316338534214617583653043393587674507341463170594552538156756053182660818750203293747267389959029460814206843248687651439999438970808567572925327784024475344864803243266323059985696183807100819055400380103256831775062265843062112805739655017198447936801456718648876897035684208302324755955836670020248027547908477365187077462206106860878698010843701704208175733826088962456810670809291002100607215561353974817932288511731720464712235629034882486432413511057000433239812974940419022292613939352283542819187670061921055162654533069219103217580090041509399036670652753585490628417601043979130084192667270380164119435479100637648103988342634229012280583475411025795147000055057262546188221853957122025591025104060657236631537253670892089096176732519883070594576031962679425670154957108923495478034117704712651567406709952392479128676264164574847286088095666723637022655383447760683218617031417330617749478188389355150563801799275876284893088244710854342672217115318545733707589667677280927830891508284725626511563712117642812575152322677801795082894947373396982501802496695297566441884177080738345104331244372186320821829196300923628233689496771443817784561645021465385474876918899532504025250360038318087137770339164129463451362480223368331469569618823543287815802106589416537057612686315712460738625929324844961245699852523521808727483590470197078492081140513512889581996559705291583401319689660353956122080169803308198082062192630545037062669153317417440188193749213530203991330490531465982505784864126239143127848069837859406119679161065019325828528843845349789638468684382057812912942366525896337167517841088277659933750206795790969597386595528015232750464090492722041309873861392218912588129304074386384684842213334869736328406824696346439358226080949203868635193024921715698803544896686929479247813985518467578325592037248903512855180189696453837545268074068207654891696560816689825607892404949966473427577514051059909233653261291102801179474420019561350062299721049522625506008034129850942820329148087967060565210088877929874690448748605407131973522016155875707610170876545577967052692657185821401878977284054537954314370135877669785322356812662757219240264222356146958049135361714386968109000507304995624346811560938157781688363413783072877753616776135008761105904347110351530597831847657762010671298057729514481613180691667015365087317649958694112834634199206275068116021102649691592314470908334113026757929425828227013577332337492976166883550012116827117714876025164966589000491010142164839522819064542081636735802188009571810126383294039521406075284871539227567424743860486958985213449527496411723511831457195325290777700888193030618859453714643379590336999923273118703756924812606981965215344076761828161737931886925795688892595436131178705671544652421598410053341404858854537534022558409942141763682807070866237694919548313786432572074512186296076279726118258182409993700452893164060220245219711546016860558521686437396516014307864820389821916638327856599104235919982429604111056984332179792630480324934676329240496243347233040206929786471535957405171924756792273257261367760196573601477953335220373451879381638973732134044495322151320529775272978831328384611936940729224994953128268747660159490844125518337508587957809584792471722906832843084051812667655412194779615612014383899578488302110353584689134464575942909923872540554447783546335498814606688296882611984140016147414356811137963201828311018777451715627284500457336325963568103204249207862121535107247320195206878131661493865042794184205273022933095478512780381829313997592143864072155638885038456590353924834666667096321400326413119098215486452105634803936067635472314837679927214675491130606042280503522207854378871275421462926862844181491852570745155950584958746129964334345234494910452678479495648200241666212872970582286107770102682561166747724937024832478544613732287621341175471803100983936755346336522351640124163773515739721251632962507341305800775726424802531049713585786823299288541959525563927441779473152672558274728086439499961499587852646575171635323887743899101418170969381249892235830180551451874952843678481360515740776456296338405863744827603747940391936250807899985098836644225838509001104684490556170198189840968811438299749369683482241466650201719643728684651221802822991775671334563784531478674564852489951605734114102126050025239131925497695021389814792021004642462542556475071013925141609077974611395487852379667422504928086756107082122922344474250394774620415108725459341746092028664849666722628232359553456395964424053508892098062268620470503158686848503576199333869232174741982616078205910440735356669189291431869709843415837567518675416294271261462963509983304816191469576069522629478557624697468857375445816025346884984693720562697085454830174395155901009351583774032793887043258554960971950784682088930163741168658626509949423125294930734045918940936579603931575260709150770993332487850241302404228390463214838144992088152461012984141729999847453399090482715556200509125182887239191306879591307813336319226485703504551748386248757868252647493731834591557116559041117412030156006990935671008329584989381800577120920973022438782868385599820928915682666434532896750760676866973275235075099914127159787838688795553099910919661225719821232942750729096690974505834844331472185961735027387537636286865085365451169231693961985384402453374887605061927223894394269633703656254140947042067269261787710268227157254046359893663687404605910346387794341746756673460443328954573984588790224124483139637890606234564672575419298774062192211706132661386302042712500238324117771041964520873303381908465039456604630034792928340387814100263434064764245054486891862737702879472304098090689106371604515080936436354437727322251518977528276629988074816722625216307176198859312496036335291819168875630882568334228600024413372423894692659907157326328959630670221372978791286995470037012548692061953308508711392521309855138889649547454435178922004392565855340828205520043337397671179312237211356607640465812043214298840544849078199068598609742580775122358922033871734651824161820796162020626295891801569945028361853953321133379747812988920612583461778011563136271583702722785850748637033903012388022396184629421480174952607757232997234460320353521941415206359200966278084372751669846961936131463290939398017869849660444672900147851148065471523945853311555886215418384536905450610898128102323172803779415119716748941043634056956060598625638694911578224266656108794366910304854813114819076618459809000770888977720699350556106770467040107480609917758482480632061299977487883242299871665986121708872447776520930838011551391533675152033015507960010009017603625654868371213383449327076313703475183222385844840031929102329181807607035813652798233013346858994471323918581415596211884055363061293984865986883814040637337227010621012582709025556929245218091441635083856940531279702094261586462066707577964527117017860312610754536334042874661635432105310193533046626997964394327348002093776216179942572044828008113327939623150742826552498348760483100408837677511234680678692469065740671297450711555238172409963300056177228942233294746191076325517347582356054158189743241410814967703964096456949370673161907742864385005615896256121467910216432866525078753288619899100051710916339712872215670743295881825451035509051349927974733974333918591854137366369357636990249750057378123952705940227242437563482111017405222966400654017064871340474574434925952735419264028126269452190466450505840295021643487982661473184316471756759208617052621778979511839975713352854583650979253080167895662381540637328756910658249412905207366562591878289843382135316715664445355842725955066864377049713934946130700177078403669763967900656902338612217878959973849921579670978806884191792706469409939100931928408570284878126258327901175314127678657002670764644883067133490225539601346995368672989340718293702714264183570749012742894427520320435872034691311812739138895214540469374259888902060723742774963015407388241644035988814312017896967934392708244429352572245142341610574989457519336581993691126139737417090553120556034061048376243134395734091826132009361018141242711193849710752835896837001761408594593845056652258284626334766460799151173756705411653101944454219730400051819760371712381707281497400928761123903997187786694794365771128908520530343774050009467687178724401086820106709207999885990591412287986094519585970940174715824881931954680098990999340768173595663977651805384231688250767756566214887696356927219163964586296659833730618769990938973194969407592622037848177660848450924470523275997187496057997129204591299750280592350705127107431306362020688372348444883774335261780924509888651763423802215353478392308333928886019710703021781534240666201576178042103399164510548840084918037965489258985059921323388565919355801228923394393515452883959069570481005225303469847402351400764511396864018367603908655273315462819095532290753253440371395001056621666857083230325928741675146780923839569396384436968313578475006553936037440175480624242240371832668781670907020754111544131337244676518519919140247972068786209430224675820554592971649149953841188298329868028179087043302794797949083929087111139654042879927207840409654867185604359005160847483491095193246824371261449616662569811597188714210927363443103292827125196896844656668128652322058110140407459365250366853726326647305109110983769197744482929114062853383363894024935054014004791185910261458269257576385525480482604837496171332410313754008161248591615962553012102334824024717821161802961767657685879973608462690958570072434649033404061391981702025711051589382695804905816960678044531327918204270472508656928761725663112956747821166156714496498806334824736120338076551322852496521029862352402889059174758789726110386713480740611837961011983174853003432211543435251858359816447617166077317668919039579579762404001312995691101829289417718517824935857346501011913861817712272189174007116419328712130301510393246677972246871102312514541103870657474462885205751449756282103806305377428799134849041213259804234228460791101176546702502572773571096703997423787651506415881101130842264005038132829245985940004981275457561866199735379833468012055973287667849278800116969329299535046253810929458730864785008904467683751481084554121798757097437007221020582276672059471711749675316808655844715351756396870507980496154065262256693336676164156378499954185449175755615980464685152937832324026181933752883307569559287361474080640195084782236229218862347147466117486840968390836172687754770203435846910878174764470903422728685751743378984999320074478362223470799034076651617436208661793939985595600989175620646697695836260367289189777255416756872458161099189169112521266966988413329562243920595890701320375002093968355854792587902626956659857026592786787664257883990993321267545304046241087919051902463339637062022337047837397637456183020321557319152774309621785399879311454293429120021255159180249365698735209164154643583733862030780559243706087678938764485075416211521448290994266534799014115993443268522817074694091312108572685114495916682525669185744953020930873504441080597559094708757252113220726570529023130365322973779449253186990621605621560303673209042442934476383675375817806791709215922123902322523643135236536032405283834100187651502811479722552965561656110752165482570618572979554834138152127923397128727614379268793489457446257746435842921081608875521893858323905793628739279714607635564917370795289188785737708308530015768641002057062194983384058690956333853694932613485551531565248050040074805218273183803293769433014672820696504729887459036442538760197112806130526758954954765063648171966444159656403429044020663798624326018029399578251466144009257504037758278835381094372460200555430686082351616760185906968991244549297838877272307212257716692342675366565418750009190471337071885226667189673404847998795446491596440622066576982635103556299522262344111912493191852958822684558995208926394191988768959930153136997282005735891027572272373493464221085038440470911710278484542133539555781768853002302945772422015390029885257522406146606129090522824158581243123812116789136494048275171960508129322116071727915453628960610875165346807032694858825095850066820727221720066430420062253024358605317210073420478863184961724793464408509620838545915002687291738342414804648908821015739055293066754743923788241366639585753301965858769318773062309689287981000651648919907225582107969083694901160343723270118741495697899052519766635299078653470980423046336376475606890913961609125694114501982773282739770763881697766171424946819990037927063418826043222639658507130293736853673140351568600043303722786122982760313695088803542769524560479179245975393994006594378242400078753903971288113903282365080715517390389878971336041172053215746864545790573482302478334400823984165390079834331345702415857207569618733029948902551574925959458757488446715189601833738846691305378196352850668503288539565430846015435457778505913774605040172267366507878625484636427388794563176691747089934714216825328821393036703125310774575634175093598598187810765237616062298287827148421394966116947629653839724612374042542981309094011735690276806306534891465416487404853107749030700038900424992111669744504578846133263939759565542548145428515532997600836465172964133558077760041559125189549182487632187652006995057028828476053816540479692148618196959255745757962151635597459554657607021445436119322252380447278457297482569519651269114238867596265283520230971175555934002736963561963006367502883512220616856169573737602640838896564552120090623452050093814301179683422105310443198686938962314716467483984653416425198739279069376848677589500741145612493820983838748587600856114166734702645827777587797378111879393154642628375618456121540653061221631746332770957000528955001266465810588446479102781574434920069230008912606332101863989457205471957393845409260194100723466328680383086833868548294922838992332797805002481578999373432308866772482135087360790459593545023332789489977550434369188213741895784041340255098095481654318030651281212885103044872213706002971623221315702213610444195140759231413734994969259817834125480624359147009924503025227797774614306652134748400143589909786537282669113296678735315150500602224528223435659919887226493042189935401759769767240174816989709422516756472109370108061622977864557276750631432256475373603278218030704271871541317887879774227749683339691572674573539030085942553926203203112027664471859139530966653524416503188880923347370286999261194348483014680414096397394589566311249206098574337489325597629065614353621126292581766805398992242007192349565927899080147725966132137296827642631298426339703648004921713362611719599131337899370224648631045950990553192271038326958399979762605484014013253914762851011652902764531575823239637296816773984920000775512261927918382931665044921063654710210112621342707320011595232185880139012187952980375040516118921972895845660341420523000236414092891444552596314154343727052659084455830982223229125579515330770492891851111747352475253716534982334970462646942316498741414128444669254646472139501371276790378646068687133940305932709709385652410736938334876060242536380624301818174514087438664424405992199800532989407958555480929140019065203864520046002685699048711399925183167184675334614271352579368173334610947432100469407149508580116552676339126405095214330028368685227332624058390819028625019255561866263005036725144043608775053222277935184515371185880181875472233968557936188555474897867395454336018917640530973602141460989616825577148960260366474419823621868685852578959192965720729660052280808277443036381789004674221070616588830478046448393446926701424972455665768421745980080093177096245281056523578708851852154668751063687738649005925515981921257937666928039414700832830535762440468676185384632377975470100294892227008003918491178255382660184479784047349588200648443998303736391124902569665506301623978842585538996361921813577811347544626983102468053606800750394142002814985354138063346578923221592344121989315206793014442083108844307519229459049132496744980435462161667668747910364609156768506992263623133801015676949405618899502091125524449908177167276205808953485966874350459398293123727182241523379996428746262565636470775459652343386759513414556732244350808682354299614780810053993225629633668850233973558075817156014457790554749115666793313033274521939946781464384679685639076441132763629240778112844585138626709864418961490588212670332213596073806512094078545345684316535338086829626287095472354528133050481719404814433743656161366983386973963948761550148450341239604323193347457529200167602430061074270501837006920882597692906455024115639876107047952954041752708301237881630807412120409169659460116940451989558690399579613119206920029779245180096737405255264716751876760328830469590842406843244676591568719338559334926321979898496752678591698127852976877346963199698056290252097455969723821766989400809375193203072380507779077883023010110364533352442144217378043353136609204359301227433964536658664565504220641609629032867541115906257072346874990275711116025729299389680326499666687249404102673241128183956763230431521411487642908823012087391510801465795208530675801332639927216262455056631182819344726405396073092843145505105534794823382810789449712558684952282100967955948426741908756339552362132359828848165981381683243109959304954345741094912161461755893069536848573322950362819375815755045630553774999155159449523702156001747710205752556565694856860436143409517592532109562768958804425339744213457080946355641610263353144976387972897956857093439498554640250279664420301217135706660725569826703371790889596174580224341601960774689652035079149324869488928889482950914158816215600900662473547202762589763975341482081166776898042598201303736174643194534046522422096512240555559675891835906006664089110232689681307678958377054983551623569630103341096920500484903099946275251651912017779815150094772165449779374943870275360419222509576723976727812297318037606753273067357459147779704707836189687453473570202893753012843017394147619643002047682850015891016159056315299825917328348251468709611220894909069541451484134282394143576972286295064561933675349091204408355594592839262515540082773400004858944536866319937528877434373164379374751535981437167457981205106960837534209877443261414684528470265108038008227486959856084978808527105880323986508565052181908260935742778863145365314776907360207881028183307255522991508205035155330658664268085030795573478745383571687651558527735094766609642342797978998479762891115723466976709016877103249825381406164588264081408104082893276873569157485903991465143434104630668525863270287370834811496075333667944803930226207470383614089366495680110483980273828307639214158186956753056345474943211097202565842245946372066065886730482642601268780425039391458082910235156488672774455593530410944955279458398571622878658193447919869065725591132359035970095449997702942458795334569295461037019058507730885070385592263103974905235896568664894182046472061086061879130709108543036180091318404593558302652371878708624951783034344746158097341697523390160365747984658769047050410454990503689477967154092455193168481661644961678727692321510821092850353106467760460986140343231857071649819037039160510186094324620278327727238655504746456436561244737882553707123136662697242238892435585370074126189265962812267349559265536432846165897023711999739221202462675766031852741911368131761544055708100225524888402077434477450177708608613550078927525531881932157721360614771906615121640371038959482269219476437941903389694853485070111412863147224958063842575425125825134230490918573392613718529462429027026010464263712871293884771283091725008806592651152583514039233856711991852135424340788469271060756967847074168670841768666973179387969652070193100511633121046399311804283243160180058946432035636500568581891094416051072554936449910870560864158900531980932962441546513869145779739963228944923668791484356538374395940537809091408166439530211893299047625515943093880562283664808229065997832959627187660103230892154226161857185849041371831009848819085337907431740167492410346747601862864998970444415931646794901708509674398210116429871395027486932103681259653073641513773877928546811897407369543621366491735773180166021926116658835944191057763534400093627238613740404247184562452804177349444570306760785995883121168907317931934023622820184330545414582768290325830356047181989747213939585140962991639534509670318873191267194135364960731686031738849035618726131836458559810632093142376032869445276384151847729755391753476429748879891071231368672670786335461402278670034098600078122660934894183339300973732678689129548106940319272486773929992764090914701258582834438354547745102480592466581648871787356561667798639561689861925903347970354477729458802628425215256409635695329493458233664000820315083434032965819913466469340460388945655581364926761103627538410330181780100863678155135749575651069343544918687581551115915420251477585706031424105615185539755140889276616092982198068784457193621628508812664204015737870273150265775657008817049633977341578209836530226080517557186879493283931177491264018827876441309847501975284433247529601481425125254699189356145449626741809828492439216651494685416153987994613573604167333102714311881552031401935039780451608093023005596766918160887116623012736023775623938185487159671132669954849569921109837264904566747489552128188060994973802889506354768613292299525846893017793597261726775803216005354199673542690996398589098824837525825555540248033820999489698101124194496454264769387286381372892379220711600710422625125367555688726317966335909270789788931718126109913389365304845454682145947854391854150991014568761891600097876387132341339245561200426698939167312141387520585478256746630161425383265668951526392750981198684029802588653012416174120659008447264258888961922527721921294888556075269449790033145710456973285687986527855597025585704146125491105745453112476254352985216378627207673806530986568774566793520254238916967068459400243965590495085965950637942865067698993062393659621219240437085973138985752460434306714216606433717959325401732656779013798097482045295831338847717699089715447961224467849737927861558624193242472478519322281703768329421212011234971755382889949816114994579488029592271126613089604746000153886385422602464013527315064235868253474026403252089143343723885507716239739907754319155705713463704908144847904080165883680857631567479871842865609703099896179178027671216726287180860524730476083039633951952891145505142750894246963428948760697765821841697626187502618780177149944663017076858406208574786334429543669875051706291466954072319854340021053870856686049465099779506204041194085008896067073758008225715165370439509865159676225176629448514821284925956721418345505165736893299940920340353497007087526607750456427499713978574933676621463018502417936011369502258110886995525524939796258283391977103115498484453947315569264777813867406769603817491731326296748379079847750994515312532441696849090039301410136276145735699401405826464128716041185787322350181784442011501628251031536271961868051021872963828419077229531660276437985048314773706085520733302030015969398417795570018098443193220304856136389003570897630342585282685826079851360708178026621386717761765116074735222925109813104690504748367399831548239776272810123419513118484774325726405591309022806266299056285765464081440707290023487805944461704062437996641172028628669099053827379071301865455803372233604742093373154650273027236671082486986133859694355950032933839794897062715561659271943913785626852941899533501863784114298283156177191943201478351367657740678249143898253031934571430612557552946565896309891961306993361560077217607567292722774955607379375550743485384619417749418266292901737968180634250022681494065060510692772821757500138313573012871121299556924950535138162028074536285424764293202863014570996949086900647093153192578993338716992872290312541582321860101671491393260139006360463594421509699258001532785016841260101415841458720923763508831018916445468323735575363011776773618182439072544706426897339329722082467527030707977833214773940076098211161375308881070905577688993792115633383149810798985395603542557133006312276754604000662212953801800145438956168201318820440633554027262061425818218432213450977486034163653289427209287683060792241119053944063632262579226493163296187958816149203139801298961486449818328707285321201020665686655034408718813397559752862659877823645718462779086693299372151664221659870321601354749921321606479959774232665150001454414262618532458587725972303558190566736479323959340298778458944924911962235275021562524718367039443051832612693259536495598153503803132669750454068631979189681683734013014700244097749857281416732572330049357275077082905565829514088379956537743910046981855942659306823768014593074476107933271534855747830107226584725065036836931960930710481593854103640354792570618724141986438815479833287719833635576834248185416363245868178383642642215193491301551839534654675938904631366825812013161978419595323409455893039449643098259958472804228305780156063070532920096654408118902624970779529167855742483884745654803941014628777597649576915861979399618996642090325875105811455876629219008443096276777672570936322830240195947478756961491054431106394414763292701894172316918581263837541025110378209362761765354845810413290440703928029994660267448535423561365653522072284589148969133783865810040073189302354588471705480324020120803748489729201531373574153443154473217562298961496224669561175413320858205902672178285061385048157356957257795025087937291088830325126743964659942794897123598729842256829062993784130065774581479166423278298694151117361248645155880603030921327426952732685416851328135667983636252196332507193372752164043089911385289025235303502826878601438617815259908899216157208758187527519956279485662963269305202830384464280600894098974415072450665282169760483992000183363590880501676429984639368981612306023614632309762261442184560788734847339958127892509716869715888957039110812012237356841314298916794770074594274310912011633299443242967009725829525317632195829340306891207739999830418036692180676958557747230591087784525917110835265794336996148588669021602861956294314510545069280800643343281430943301990504165985822564466193018640371681589586432047266025554208956486256087382839908180067635068874398589751330304162824762501409253896589256433222453287752664935971486124873660055185228509087961238219991058665028098758745513498157415037026332579184809031067410665848814987903691182082176459890660521266848957471170190661180209019514804472766477497303319773525638563207351785490021750646192405339465214897033388842535376321913661342388881708604330012270910837340966060439574707963543579676221175927400927050423880373336454575790473081777008628718604955927856037347674334531824180794121062101798697018587236306673832711189276964348843775240037766709243952252767283374937164767048011619541464339379344285494341634625656802093460543136348827843834941520061259151571971160128681148016013054367324975615744342320872756605854613475652994644429063075040723012610350518439861001698742097598817495535228291162406984965001336476672261186765820782423163441027440322755661099545097612949589794993152358994843175584668621277165291660314299687117631973633185758632063423887385837462636715816280126381434317569966575901917391082879166800940661985794611401887790976292888888973161275997216056564606143913362030098562524636857892972333063784027565670861101680861464478105869632823285427794430632517277076205092620205351113841224036041650898027110178753885197981666923397606164414336306734563898856336772898593308575768678154970822939790050437587768613528763922126248578019572669641032936550496105968508413799224734009328206258991448234338650959240754494933738078456126805911301960067203395881153640381433184525254343235112605312782133104295947294494403629207323964180604456320015339983209404880164838568686105401086420481771071428789662038409305765815639059985670717724961231891055952749020669697096060255190164099542491957463248064515772808749627210626979643490204983269740558504268258381124677476518659067477509436422399200910916633151981253794768802866896949388382534509466413697693151927451803474515556444622248932407563524922196795326002464335476859579887300671626095893787677792375188374537971534914910693869345706075765657187442701858697430503388753804288697198705796134247796499892296469299966464240333465051037882562274696801723670452809164201513089120912391143203707538200309354431444330219623990251832975445157642158783523797553946163914129400239547852824004046029941356588927591751804583519457756637298074506172722685317014534544521694940182579157021534024258969303359979617367834235582392736684534941813900016878196183827290240653122871736628371304152856655113020202097290074888090209466551366937133848797582286222128943704920155081277480709686501789798214270392766800061860626754304455444029306712335767335790273344390632431536096676766287503066665419725518704965429751284455035793693962138014090112410428175966380028464187698050384074724843054390087081052544448009536930943172454398495613064462964199703764623961182775441106550094248658921033083755323571739788654108247589886756915931998110016454758492642180384183628484109087035394733246681743269593162389688611236552915286939319177095862507620239099160517933210768222490702353857357722933654898726468676788432225401702211399515618996442271530834133775227900934787547198982037694418664521396414774558598878362135192804404926060344295922234301998155930715601399739697112307149541083920817695137468037109677272665394300503758807326269486488829540662528514986918285613916432487849343443132913710953249415575388140775668179146447103734356064168493966170979415231463256957633260371709465677645224122410839779199904581693951863436051523644839819429241185514476683791490261468837267953858971904346667256502040474391216268604945408042559434922486237315165191741844646041912154832302320780262995361125573305499764117473780882604439452848059038600482246615279788035084774285093483507588803128168453487827413845558596308317655680802894226409538843886191320542858349016198600044513320503287330894853058378220182250897291014195365466752380332424328755434404577882072307479124173018999519113208344031941147041591273488644822428500012024591357557848888763476383741481371395291992193461871689555995685694614494214606530854150874868630971829333656431577810807069952727779985932758117207395738876962978578072895621602202921602640657729261081925895484098994648589843322232302013719508295192393206073717058678502518418053185814792392664077645056008071494485147887693819802431787347440518851304363370143388744311462788507744385659333574735361160174420162897025441558302413227976527569636613828273572911627163211277721440482951663399550869518589042927733415231972523917865811665847441174490823632751064223701032006229132029542660259892418187078935924546827921849486992292907991743973914843724742750016592313140659857554607066784598178339862492891499710102427039989902605855573171102636771448343063214174945670244862287686890883346180680053097105822706302912017767330777002812152057645164264324937113713330690831926077510496642893359562746923310819535939520283608351730821859537675352026378149991806883438335818797574242856741186894614736059053038834606394424524142108210435252469532387752857714382454159681045897936494519117660268645230749806993082430145063010765081040656711644794050918275982439659837017701930209716168502522156236440453614018690903549853659060393737749492958010857949032346821076671787574960658963796923473312396454829729953064335619322808069277236623344435710781197897251433372741402865838860679214543976750334326430590683831253360751168129630805712267527642985701327301184500716968709752440587600526778499639675599816864319642792804568242885677321865856851322822103135747685531873146300703095069058592389150069619636644095748426429100236587398502313106694593636148823329681891817762762815197204230349171878206701796735542380652349429008577413301877102345077074252540056520902983761226174575699182543200104661726515140418895066966979043591163903465608987715578460434926283197148772184723380378897979704435177560884049217976637590343315358647537882249535350663151113355939854532883488076804020608929421285944299255944904062065846049301771897807665925388860518643050225542166011570037350849418555704022230073720676214759772376543737480608384537570844409004270425028905524504229547754267032247479548941656188971756757620950181437967994778475139664080932584773289844226516454980887366961500731470413500674396128141253623377935704499522110214568853990253687211336081337403817377631211706907065282868683228225759036192361432663929434102360704582708816789229895466685385312039247498531769578405596669625935514417559638176173561822599095122746191811327025351827327695679038579332356856160827149955567064372255942779674913516226979692041500251324303728377783428849939753467818626651936236606159729138277491904362978110189677277080623718405677713611667808992149739505342972803939777554827848292444181690561980018986733856278963417178940544840397559447438620527405539649247982200195357885723624270141008569796000436889528586133948679937712690337453199742449124222691737569415162917425225894303034578278568857878052630012102056456719247350937178670996472010565831562562915429125979789659283891494265255099801802704221717111622561092384211940117423281389207345104025888950119600919555563063052060021743782174307487365181484370770387274408769923579890063162107132317154666802528572759774031528310004165487595155980751968408670470455777651303384605064010505544967483893024178565149061480708902917143890168382568726908588853782731401007008416129533903136208201687819812707795783390732453886487574778221567311809990982238529641264894308068471370969008698457324817218258665250043157866983510982245400087247105614868276155374561773328927362249015000130629205897915508627462339075839492237824913944497889234577985414720576366250947648906782291754628808859391593429620562747164745011284167206940691310836058080995699744455295066409744639221831721061565550596899564020761138917930703293067872222509560470851796860764005158626729718714896415502195313665065983878011572748124579502638284917949628326681935834262996168504747313009002984984996869910318725374374344246123787599393503875187182053966197538378797038602278040686649293595917538119604616418191642336642087203559299557728929880065333235755512291259415055658463059922716362753274482307656212022745848921445374616987779323076162559211862204487288991856549036745302066172180154047757191170913946333078108259262372984338917531351102746825870776065989921805793749782714360340246231065673277346188597343301906228288030983978417205514131654956890503093100842750300649062887500131718696150185928591942560979734109334842141916778402516040311796505881046268142818320412578602589182586448753585202858895201311175419414303117142646198351048549892343062074686605279522998932552942519273538131854168645988403170679575608322607411554911547333750830182628417552402216473205308145101072102779333075123751446603651909519534873762284921744344669946986824552046580854748407970073145898758148780268570842129363449287599164235133182420987847952479924176578267663555043971767010109374567370919948985841247645714421359713409958106967301873137333020174762234189114304592307240535836013340221078469423584183172965613661138625241805002603573061519859768311678683880830646887786742657372651771147464163838806910088315655924728514478019224200868506616210647124052385220035061650780142541736094294347020671039860286776824977498709514459374048864488878390442786105880312165770903284699699745883472082746039757235466433381328273846006922402335291382929189889870210663467741573003083000644736922091623191801204800286858232409455088033565391429625477388781529089535155689055605053890836595038329008526855022772402628329321555378030921755142123454879979881838574536834945790222125407165689509713725656074655220314133507391861306717785981875756292560371475379472670301238804271449018072480786370464407803834834192756422426510589788945784878943003238559729932091102577293991523050901192835157731692562833997299932804257600609022955001896709141501575406611169637081553036476910489864077046875814154772832003059977735054276938455827647648244466885281623800453830078952262755325700029845051145919738942638246126186103026119012295866035030486920081281280302381066927511734746825558279439986365818241397755597193338085529607833503608512551545220358432057649584893733997193186074600586012540313067157320078149004393252478793434427346764508098115091933557609379738339650505182491786339336440156001830892570228063098750113671766893371780222371935484163307558586693332567839561995418973625670437569282163505665022812592114075668266576869370258017085159474137211549795309129597656960849577435884630938403669756403176379592542553326834820611487858506479580150728123751167459441024655773820500666815940270582575182702172831240367234493055195574459625539688815465924718389673540213814503889995418377405086393873485370838985169159889022836107541534428395014038058574479071221878887007255080362845750234063893338336224330930526589192316730605209838226948270338349998171514783854029842156317385416802530789770693313283127748409402244473632104519677983255524398429999407913589886334394270320585948245214341669182890117985391025607722989328807842968064791016674316047634060010329685308709980547854675809651838876194578121489483798553482319619356957187220009986676516830698867965796446500906317078518435410105621284329491629001008604848084775621289888228132892810828602751239482817363190112455217449953634434133219989689532661583197097962704862069802396016382878592247967853161678872600784443601779866062990002397636368229777905590457209218396509578945666972238693822705317060086923317610369323281633765690434782914443142111326641192785070957691595661660681372175011790043526497647637452145638692892325132940033196892716879517250527045060178053408157697140803541688164890493522424474477023409918179541357006597869458728404069688986583210570925017148029853657825832540110067142867883334144582056309738610617453424101742339570890891059753679299896869157251397461412924154902008210759179585947347507277331678388620694523875039730113743932887214672212215176379590656703601556786382043795007284506190452241178114031591377114617128765863307249834527019209765774605110380636261627609301391957263763823195226705331469934928635027491247716117071932992239485855612109986792883279251663749145908911525032395160170647729484712339052788119181839326521007591760104663654067701528255483647134286224027067745966046144943867407240976567755463460212137754370580957030645396102268815857590659074878436663159957154685005570201928054225433554000389714379565016971255021876275265829405593999333442762379067171313526537684229556200581066175976907147187758314222957991838039882977981421382056634858452001026966415815978298153099531631330276625907558630555520912956412130516479320133660744077476013443849233465969505153379351896966871960909666893667194967220034662572042547862221954570673727655053229776713157491591475961534447142490310640987527213323571882352769290240486312402622073900256458984071261916342931267805232062863763265323411350693433667682447661229924649933097067269003616274546449299354036382880219037485211707344472418166406691248982469018667292809817791755603217471431036178703851789827714875388653411611708554972048628263416868797044463905936380227230073788641118098512472411322488427596920072372586481629581144411761403095960689699181692343847316193945094128483630015598139580886076250072377754558480452497902204138505824935432844666048123604927322702399955296885992775131124163664753795263345342121005516595109219011080888778561536134090480529229690296252880902245722940851640133012431686191088594220966028420684936284966697175423025001480353671803609905326383805292223655496012445670899904690825632604398489975292283553644937779514532926773314677512105622396035785727583595676859889060877369159191554386606366006466932992288284271615470233114051171514680629141440927682948410742927746590388547510395686766824587026921026052445429251124934399381711814524210304010900573488253649518710848089758325742504532035259342308396637591301643525658210663875369861360269213053308933318901400235639764861588359770473525520316733576773898591482533905641849850074737922766850284658963177272256298845392484689471255371202677335052773330987101797034284830389795560957355387342932533540201223770793727000674386559130024994823345734819307918964147723440882106428763171236520049848957743084972331757537761150976695762405866942347900524276636522843646360077537293059559556833754745984392323312674080187605800546849321340965504765626565408345322492881741449570825936017898761936543760782234880308359428797654862542073070656668746927087108387123449671574446649507159298051558882683561563045140287960872997359173830930017278315402822281281232296768082071024599208781050807490999817842707259377511904393694149878667973077894181426940266744140247808970236024143883355316973258506167413502553446560828404718321856023896135368161645144150461695310793389454109173257501016214074128697581262891510119430495894696367603667657804124130581860169825671823850463615020552931001020345611347230770158015297437201936985014431307388356590242659326988112349190277035868575750168481236305142754880663005271589001702181884162418386761582502666889696226284029599258738508977101442183615714216618245735805330203637877397811086935747552297951057634154854865268286196786335091917540049806799826901263000573319600396474412101124979101959914052144752921512440922391712383050864191216617216541153057222472411050209948043359472213757200524317800683592467851366588676025848747089936389275040993111293980044597386018451202148324954894256225553497810418165611245072402690305363699561213908503292979044050768936349220351754717517256466686469633461254484235671732931705677553895731537679032537721046735990618480932167835125462377547231974736236689003205628126008802472464570450369802891879619849858159507409317440457144153124948766906442106490888195676769233021465201545911785377368878240905319884334721757996604404486148384045863747053292285020144748095315049498065766415123767207277922804080283721167223163229232699217085167281506729051786784107555018300770575302142045662293998317169036751119125505631706807056708810150324792082295004386913762519168329014457437247373240914489429845005081551317915676535818728910091145094585715608192646138260195863295931360857672930078751048676092171400988188554642858662457568810265761482739641261052401735294168117069419849086558035500651548225686495772702766539360924690833494583903725864906597210549096105138829517393514528239312958126053073643732709707398610021867900489831976785297449230841863572045476606485037677198934783490778370466504186732200237625867977135986187197813956444144938314029591235312573937517559966024645161493828729335410197265077903441534726068205643220862712277432901489622550634482003017454502010833874751395874462920263038392802839091429103325610308253748665384985527579517881983465396676425909214121760955146088806526437695171734126718122867425041638109390219932878841600719140907991538377071098962063308700992039299197968379897191951542048485623975752900401774549667373044423715588280087316578419053901969289687847341447521151608945679884822436615624748858409835088212879821259775776649091988052667057092179718953482512986735546062116946947510173616828685491782214132179337622751055778958892711369010012954585289594336211023231591397085212079223421050654019488530024944471926264126801069977935425921219112201471691754101236422982555754332842129958571494679904132291153979960254620419034981055356147498322459382079615328329734112247063570890843940017673251047419690638445120678358844208610384522075218361157670484198053059290357854726795812754502612132775678749149511396031555302402839279781502083529998139756155570940218062233911244108077215727593954959890642844776531457129971976148338827016916037676130842459478294038499954374631159032155673735374766977622041952117675698003675782378996641903679437238991232438529525518374626894016009658156131285942947001112846038917456150496717472559819507973409932293288973831399237896609757004357678458948516079349828383414290956064039705559483990044111157707197493944160707201457717860688988905567040674720011138623494154856667522669968173879684637350692608988106609240447758184688289524858294970950264741004298552098640125773334770954924419726639581192655933594998842158354457814382766042616961501557932686452856029863323114795125907450601602400204140608754109346166507062827083976107927130780531711641888723494677243367685371992435243257411360393841507759237511227254535092387638901115295473559233737814611580587042592090150434013110136494693821038510946551638535889578548470104612532879761943493124507626258580141879587020460248753541224599427579110581226686552513055852716000427766332875613863579964598198071378117054858774832365058533295762022109515871792606677339393677334702309304011005493700617500997244162802531429126419929176040771021043672097199202535962285583550269541964881629699482618059967323908694461386619040941970060379919468018486221436250319590893979049418864443611803167159907896362326493838464685583596942427733891004246911566749776624264736630790848144789684303784445285425820719225730984631832005672410868798051546735498562730999944372958137018415853828223213354473490154472061322004809192725626545224921888031496668237684465687682691403677004153502098970012346509311568888230678463088662033369010169278271899710071857809684001575032744812373491365517087330624166931524132578653727960460118458300818591082085748567055831736211345350936848904054063568029878962909415812489924984068367971754475297076135707097744970441376728297529941498180341405157118327585973687987448646572414699425589810080067604598337347529677964533602308909882475048305182325153896856479430354330516158385761214631877253988810407430755664544217442541226570945372758843273234073487462627738029610757964196725235602867491482642069760184893826919441281785908624193488134258076712576782865786020088231302418950419178746057547688447889639826413687093489934812961036238512814168138578781214794847419578899946413562726410196751411458281759610079972968720455145501079872774601996858059785687883974633410579042351696362835557293373702202153294920471955505424717758983998889510572414458127509688243003390985722756378989996514387383783179044041630998669167249375294253289446080216389400308546148908288891529450943069852905908380956032709240186324250173778037600217645790044533216347957705567443965994310606113190590191138708916559470123990383662665770135305121194200635913402921374305264239981501036357692954275704357554817642796515560869206569653446611473827421075474594704551112048207076570620871547045655146225381582301423724196403876419849556593270534111438581508430202820883927129380925171775996460339551518322935880451674385977508732646835751613317273015480661975164381446813703764555539975126003156702431367788120103694425288242859870939082744579039348142278106015941773723359802189003092490537981624421916373645367840836446863201912430280012831481161701920885610748533738321897728524355286836992015781413438384285997256766154507478650143223749447431516865878534139833374494061773309223326612795241389749811677184497467866921078093882666314823858760866996927215317587474949564218858038938288762002008030176281288253644175950051783267571304614983457263670684912213430607024895711294325665917976988295864846578546117667733253439443148034525148611858815778452372888138134817596683106066815989358660256755595684203357545896174246627491709428960607765539607176713564987570001620106614851190534408842534302659552801738139706472799656353844873528231506128569181786867808487892520798505659832835190796717471891360279787756855076503534021327365852442087095289322594006278336329741930994541601489953498547523387230571870318304484454346891735037566788432296067427123044821257312394506270108088554177440591292823227691697553845533685303657648761583076504308353339612317003777825121938713261071819531195518503809645463126095904295899115510398754251461503500472034263682690079961925547288665217026501112228978351354540990448190251960817835876255063099960012608988971324501022561025178975595276938305336534254950332654422494944832616172692208823263235026045349033580345088076032209872915005823522539681562212287869670130228480165206783736102719901018441655100847298027429118040835915795845293932145762214259687555803893220130792205729417231151936410256761400702620423558225878794654440357944870559900587019198888288656517242351336062391717915312540833866839696313657096539116971387751211054741495872324206358734881692144565357122714189180121127649765258126266152134196804290915587107894989974148817455660515993850700456225160859308503211937475491469494863698830131769375997764989096551428590977103892229025085442955535015955789939614219952951935604675203651808410170091345740321883315059472430921297468558866426387713149673818520186747181818505227597781034208669089946784063168971823676633908860607919861508479066951248947163996141624429878585577421399522057622693079539409080010497273902219148015605557914369367809692650489111391263935071322524753245941690833841634663246688305790901992926468467466760375180494532695525099500232566604568387875479617252389340598097366308998712570998029326578592587525913006142873985030011207810340715522283194194562469541941488944020309058520349135527784165869571088511241330346560194642375922954346500141120369257831464789337996090021295054130220873255821963470170472003326006621001646639863611940752632293286025079735453013841388063044125337514885924891931163964478887757685003145768537035682973353178250136421416104290637910781457274785059887359439948182345132051269914232692334028001939209295934704197797792104555699751657762069372590681965945795957622147153940533358452300070224032160297322505160229828053390884243392165368234003009332462002498892241255840738784912864569598762334739259703817025882587438508065308083605844861759427270810122944963669597430542231119114948162126970356409194676689179103030338301465315571804004025140669159616282180758653564336385490209856717560951641752431145391417368614592750394606504637679193835260492598071380638193785783638891853044355977650489060902015370625982304563100653760745433732206376429045677744946147309064619464967551289300730381950333510708283754868223908827731343280982889108675466815694168781254817005754329864420325180199510519704071907378952701166818882595462917984674958252850512476805424055504640392057439333518936171832508087833830563125947163984584724376884644776827683107324827787324766376095248313228634084125779183154266586591287670012940020849388977096894691477799619362326833372010661811627797243658784547995397082920912093613695725084358313007859653595659153018025669871041200195164936972361962030658272296797267444478848889900972935253661548502286276131343523847821396398371199617985944382169779912547100934275546758906217236665784054763369857998101767308962567550448649658436555659065428839516987874963004139212951182290565946907444921204231850036857885614810547781776970610357255794427074212737748680411451227580379713972042996856101412652229297863752392982530640236241464636288706420823636981582782269040850853773325491597097286488247692720655266935020896871392072799057021567275127382611270305185494930647028355243421217772984204994810432039861397684515221644292732870453359572771495852924747649052169347900099729316042623399105895149594164752272974798029247615634221895468427250976640354119424177627200561508834731180148726396872326572829782370905935667482724812422589936194245793287787424246774997798181854577866422636272424602612577526078908007761621705458312546909288680620807653010260705851586525438263622598779202515439755845670649195746149315214835082231041346517330035680236942554330665228820440115426305639852740907776652119838420526110943371780291321941348896334991700005575028242334433181542250583703803713603779796009097975201998151639876410720329019226204223455217153711397731529312255373746666028535295984578106769069036589121564394478233669653997164825479658380033216771026919530240684759510042042348774818865434667141911564198631344045467807737217722270368873327724866602818218650333606827027467008474118644569614871568199631321888629073024513313730036879834897919621460835244907406638697684052161107557818159066348192561472080857288644875098852656357789115366418839759209955420926805297109888027754621070079345764190101200306550185399977688046567906424036738950058546253061883180700237319922330870487934008923056281890389530224387274237868608987084888819651908787330539308178775736356401083426610635174167119770476922851591317985565982389077781487044715472889502949135662753290300960541765891067137429209505276405672569578560633045320482725611028649267850481679506706808289038993478760797914279119608257018890776820668645202015472146663956289945771841257120922176339684883132545502048772587229200287053852267061281080139766145049743084429556384780188187738418100880394858223866474835587152827812811074979434378066470095039844472655086996463351670469099402724132989693512860328135221922573293085674435435078054579955658514169452574682705571188472513286441665750588275662661200599098466196266165583564005672712802056176088240596508334751161114942000689708661933838613267718434755381024746116673617798016578429565462688425782846382408334921049504693642575523022039415941690340137258002215026774368883042608134416713092029647535788279025345632957719626691051579646711052934375888693673538446173320296085519636515804967831493363177154150579614098332148992129929989857662864356600100957201663676881937762127045608043875657517403928909794510124848146173594012335118671604146746278714547179540063232254665344953980259945972030425681899182458775344917186206610104821184864867759993754987343634419611167854015895923092502670215501117830776628477411583882658083710173965638853730310699285972224917197816009026871962734459805938999597310253765995994892214218214631164822227128668203922019025893187695270304463829544292581824121169981805930366692563368813216581066291007329688456112827079175911297259483483720023857220305835905640812072905747378712370149961878162488772569942081972683458115946853035218471289688837944814358579340093878808401493230112985194417899862843554940583319991261317987925076604222306107090829744049668854211181486965063363156685214558584263593831913582391305651474165491535001943899945144397601093843689985735098267928508646994383689786162688702194630766190810114306462793142785346460391458633173611420608497918733563671812849222051210028938903571870688559895015977187778396477503736685740996522958268094958449624304544738722618374713777810494105747362707190392962275033646870485996640813791811235258952574989218739849766434208209248751680856330147718102366165053981404438436021011365780423263903665808113558459441962342767204808718059309878363709026143048963447488280338074494549118627087048119970041694241063456820010767581642270821423081496024737207440067528219192948817831022437675001731910528329825571804212152257417637551738522472275936132464261331387443257399317816357242637927936946655269651517133714264981512491377184004690610866510110058266620819003483524868424232363495860462631601604862074688197980664452418154852891870807277084611138426281115801870130807824423060777420507766302852318438981227265184138706075227321378913462184096721191696593532899034891338278850602521200613943989349519352088228810318473825718272914287469324243734185819098959756863374484987428396518373991714122553271148662701523360615270689521364808514689073571684025105945707808003921907386583316643539475644899954050922054185234177087340101355826541244760547059924966001839116825400555663989484602288857038545812933196924256746684366483619201777961586203894061139760819589763284097661954920919500483851553364795830737601147631428870867990694146765689150315444461303231842526004712147869662229805324420665599276199480181424174929361174926653374851544322554718015865469093825704959427942767788820297202981386325912009380953399789898133146720842415698923601995328837072747791223206478150608268135688124329499253563268526227890065082931379297499393993180848788895713485357116920151491813282768237442679460455295217325252227859881092179103822565994387521600958165427265807766098550922576434892694679481045990844772836741974090255836910082531073729299713717390554506619302589541163304419748083498336610892684145609832076235143724933949049855070237932890254300150836020741246550597181764229932329171890023774031443326032625518556994125026607100446693527326334801776777730068196471026345269484071319131024501207437174151113659972211340486062969016567639451593863155125165636921027383010059875748603031761370746299787059521394934499698631392931620145961385753219695640820726528840978743759220299955412238727767197770079195775113315350592746651290825920466509876962046654743979419160837185597678995374586089316704847561527758804197095127057281668394809600277874835845859087592365326492892797800963421135069298413117460384484656001371065087922451345942735685770935638629740713543798217191897945740078917088612688735914505477958920012573216156917155585711401581881568304146855413320937544006957420330209555556020519893893979942413004363187808495345667974503058728478421854613816621831936226471324783727107434792155511072038312453453790856392271855277383699600415874480493743047360717464514370853389435035835362408353887049965783766472593559332364331051043311412195653151763210454763427414908490191305272491925111155032808859878499700061132725664070724192546580981445289785818681765559613184919726694901057481670421263551860849989093717167118747284406814952660390039524635991789711826688400948157707213511844926186676438952409061413677936869088601944263652689124014875651295464303730189335522868199649123453031932200767226647709415140511775071877159671974277360474454234146514305933224646457153579822075650339977834829826705515700613513078737175055922096847376199408371600480157207847239984115164004629976153360891420138341103166977075754639356956817933225941801664036631106239267954891042356160213247943635246512813184949010932620180337309743539649204941643618193507832615780162604695734760743949529311272130569928370554573402553769185472225277472799600604045689505520650546462893665042875985588136862205508015923541529580865190693857232055253759707965597170282814466278900920784296080232848604370976633854021656552777950729367922228858002786662100761238026356220080421892320547799581187753545901520496930784762334097529690243748058252963869132486875777814621225710337948213656795842090291824251247405358891019348689480105527442344643927060647342131589409396837674280093349479187419325682008146222286055811767606182988792098579245769245131940936051237888090183101553898935896993217576674919370857657665332834740288260269288381468494803904732178452903127788935402013459074803545642136447185138410114653440919199772900350120684886990262720574268899099924263689414511768440354587140441992452912171176582347188131184192121767565189875224079523677752431066898545909479283358651149163539036321215238574444812730505266292032357970872355384266117741413635409786315360894423750215126761207562449813867509387365404051880901092093609760851745265193569887868281863298135202805566222336350286069523887474786788027498199487101805163911430735522048807293638524448560024830019357904791217429120657798527659635319890648271362267298881837945855563266524480418394545463381850652964418743734525813401542967283608369095512489034351815126352858707547946794817871824394164925599177749815790937092951720106917373679411467004003441276754039824173703644251618034058387219568798094816527697774919917424503680044474269570125833066550000199916829798067545537663527656503394677655581187831141869717932862998725123034074332097910452800606007482021929962069889814704117970626623604264763870672791256750349524118582033550353116620639469386554058931632462292563417658917544256802753274472277982628760009990758133670091760660628146129361812359022657943248399032854327555203614055786875734266901163518135951078592586583012654915461334340789974139801987874276222239438318886160969224545084384059871696779025378024822357948369141943526058793575637604991592955446696792778397672837495924023662238085548013115929512346736754761485168162822353568085601250106034023368567041352464643571281363658865913565799372035043309062645104014296008589393146052856828823019430474897005598798759746634467742134869782347771773038798677895975984076997069005993347998626109921716148679587553310700438543156050272796737228339276550314459469307219612687638964171274403729175384606299645673240376767875781232148261979572503888240425888383253528280992370210250283980872497668561114519105462996525399334497135630232518743507181010161614606663971179877521144164527278493591988806069017424850692335255062701373545265424703179985686481792091162015164279543063045028117493639130891916271611568515499917170142090368444159525343450492860051666558614922723420110066583976073681183567626231944698841388052431646327743706375463159934641356404479405193809571194744918751247154574077197488644465291110482709566747636775972383574656940612694879885340004635839004786688374911638364736683261939150602551544806318740092965094582668878155618648341360113127786741668571400421478945843984869410100545500423649648879804686145393292802598272748832188309317299378777519641051067194648811163738156376833418031484684640802335942092303903901730604677975298815612815934304368299950315246148630095662969053586150039496557018877429022757774950801130120929410434710413966477869394188401256655742908868762612236258861609854772475099812953753074116367607448589593683271259782034140841728222704270939741373135901116897594673722337278138741840723481159824737875164471466574308864181282538058446297295543701495590462605966241044281348886216467620004501420084688052145876713220428119964985743892299283981850066818852773823549245825764757006860334329687474675960802019027292219993262992577765074292978435080577699574032721632306604272577358046287657553620593358298030973292207460605529191152873611095135008981142534251868903531124400924959860881565353409415250758051271201493590592845640017995981369486890391151539680548867396045402591787175276496030345507026151792188927049592705488590553725740127050755241909994917299887379209646254661305784323495290809629950171342254685765995758055642477242433005595054606672355889498229469542831176126202829768924922502953264239607349371592929131405257411397665347622180333156833873405788322311621379341521289290822008122328501243119648488187950572488254344879662383990028553796407875300310625129667672927623093704195921312802458584954161640756315477158984122824499710146286259623820910345018732914947101782737284221112250783580331798398627411828532364465546203259794924652426147618935588069862760439489666574106017235709103229181142489091015570801662255637037534177556842672561535326983672512896358803436943318574907253283008529507988033252781484540906962513973958653888559113039779217944178981785404578282671984946632313462488369661493110236759734381793526047161965965172223087309334710465025607664829776922342918845801552402432876168240565038432888544750536840043709122017474403577955912306319331936317342957762261534924193608734839162775266002780126020650051923443214793709407197144653171430045172202224568302164793904593698461185134690935267261893543224349938357419291031343387525967193641600202562623368364618051816874764347658416984941340943193627452760883877552369827468519904623721902698965292114853350686091180612969919267250680697240490506290835935750767202886719114636205716596965747286572673545349292944968991666510565264588493288680226735398450045150240485823563902748552453687657746347015572648972522741724824083920920426882043191030935991285134825903383745709176425677276609110630321213372376106724795116660503730549019366538010187141942524307509568020012539530500924508501979658201553014143475901342473174985875204293490693295431351670146040956759902018294536647266460228918617147772180897885628007047409774740261522526853518164792313416003740951410084621194110759712840046915861281619335348357318430469640953196509183074247304054636037835930089284587791932513308900777501123504897777152388994617050854553589805902550359091515590136881836565144150884888963299159454717600169900582564960108743439052857395726882188525788926833196950993476330574067095330472649305099485201988930651853800202087910615655988604243539551477713971969298965128119894255956753390514535772035501748108588601637025936746365043957358845213511953623553466530592498653516748955821296229377225656370993571632149035072168035212039650169117676912760277289651918980537988355217411926932067181101029421259936896704843693575050673668893776688336387929240866190626355279428587481355068311168895298608326266238290929950353643076468492837958380917885538461512646117611724055232762788379942024462047090434088545770509880478355286996378859802691009019644184491376217198669362742284549844432952805698202222361689495796658617133870357950265248213055250153933632779937666900624457208095887030091345754660293519118527242494669930455709823397490627755751321249758284959812269388422361770531353417609375587901188402181933561756175759931233145201760476171090171253380308154785476381443563223615915598000566904815944843122727790703476105722132241745152186534076322905477913861532052879586784993753081918767333144023248092170075382960729087351531151301967250170283013963902087876573832970619124232968811561070548589925230834745399084283806275244391587756492805654676407204414168989594210785575807115042148219512528059122921717050394761777231602610363116192337220736115827020839815774566387343741601223021001345802118784699835394613254028042567186054278700284014875378303067171694153233229092121389466529056187184633989160923638423285157073565543710985665366664451778817628936926073285594529966629334047086882986869429843209913056445147878982682805264014029986139720706350412014273433890940207903572107007219892015904622112349355312039624659654910014853812630202874707975670902447511834204719486338827960907748332917118141913084982306368332739219933092158376386494708572462298474979594158918815113709978449266647776483300292156155777391715339984091413759342722357939160126885046468832650547684633459609375889696144333302480427889449341001205391585072234792486841178100895471673353552642582549634120014046655152784648953731721617420504444182537120759120328563843634420082293724122248209655273844717285359517774633813165229442941764073468900710429191550764146061890042064231716225040793861792055548892075444975069511921617666396534088505470469843332951849415885285556089540087404027766929755209635807117567023248106308169011536689184721493446505750539656747592797123411600929817324552070067549923847358237886422912399453587330854933229636360237278580100563569052653825987841688350333836624790850048638037064979436292137474060152884446575944561049819499224670971732796421681543783830206203090564879325959227506839020694883394875527835917501911577235310856163592497548219691141797183086798515780267840156549755004599571529484642817196160308886736868814624730313738645893254157020497970420011121498855449486922809677917280037225682980537740102870276077273904243081890791739580488700963174073371441450681078952519871163943480135337779952941325167627329884750562925998885503038503007490863097169790748207001382575542044821066368172485248477478969605220854036873850438290142624923309530622697080186980675757585195814012940543534422097774677519837383697428615595778767222047940673580616961970809091910980767166387269838916414292166138211341177360284007849892793858316429632456838819812278144260998057678309749945800726716337099683946842179935978381253191963070991900031690832587220752595897250228532890715556117796721131935596946128085021096617703428049534643109104003504617992617997210809846581103816409628498092411097166709487306524230582480958724350354725002794002600135366510388678956330937514336614560047157145971672669655649675756858532860774377427183313804559603775817002241749102740092186443445254592120289032796743335994772055921320773613318440978444442541466275207931869364402380910529671554164360779952691069958984189108110558672178580636768358812224683925867364204852795687123173580070512516831999735214058269556294561021795808950484700613015214679032490801059890615863504059117219905634095709330970175142781775498259863496496400991015172876031027932888322143111604964323033272014153023961770938959225295321600333571848036694295231149714741813418133453706396130672531104919360890577266718710941625203233843261236575165260818433840637678474316798734726340829744978673966355584975092109293993787464609685784521761420277810265749692424308795462294662952302910151832360452439094121398950393679855444670399374351535485318173485819613700233303659116793286689850566950706978063734220373360128729350809190763587696907066577416919379189216881932780586248345691184186499867357798217767843515461344653356164966745599910834705854419636464162571094563830086985088233820070337815232508997550920169815375069956302876469163094366218583834504945616464875091556942457128534433725196747268328917943513873200327155321302186824501878397348309671917285120547046650786406788246735168175612825547729557298789028593626368020628586148466123275951599667194173376743906519745336120609386684711974071388227325887298008246901148009584685455626189225908061966366967057387283809926579488967705331196750478251844142626411856582343360254580838933972459775287569345337075963807416450061500978584955692341112820460974099575262888587122068901921340815145171336970601311707055620348303808043366476835261892822175222848145030089612247566014108930966675962047502235354293867994879444358413513641866888921153504311549077355794952291092955763568257133273482117788814455161099977189545202229390339255687048693659460437596697474696026701446722520706753049047888296412953814941862918466494551062118394841954856062132969179552618793914532798417149993250396324523374707736378765568879820196718251912999456164375646659584391165565570245645943077391463821834583718670556890882585861756123501010806586613513269529488888865846134472100798431054112914653448424808574642868278389205548229046279083368746800188030366366321915159396547933215873402120400663249942077625823907332246788138307225020647431834601851829419890747267348395477598089676789086787386560403502426902594967277214738235268524414438891084255357507303874514462597859211973365155276796966779543393162752931583475079882846839701550574968125851182903738034333070352193119169495670723775242412993565969072101151571086086667435572656038869022226049747249647379672349721988947869851571986677499779959222214954548457377073250064877358319273312147739866728897107824305151613748996139235860461416568946034971967589904981681888157555103669372483827473402052730714263069885935072171511721959976992081669735749133210044630480779235121562060321676266853137602556104022555143055713485760213835664083133704804162852588741491079192660094549379587985363732197690500938445170485692954055089991407871223939741552851723912318512711664897782874591200955775981416641120743036399928466133464254332361676957197115010778051509058886753403063252016796689145166599358295463740546176708396647259089708596998104060668969301717748982356733922819762707292673109485145784440353613261491275228187744439673311509599450096149255220945101897925295782652056341894270477693575045196814320253125971877244170909554730175575402272099880593697824071565556756180772464326061274527920071092906786139279721906548195036055995566925215146521522452053304112626223476230501607082837776527132556590063240471892466652385267559913278178116185088667864863159516937703510456852320841319314329426992030590909627044629236040534597976253193905531708341658054198565462257694182805724386545642834942816595591745067100835712655165352256148043501813021753497133628922400629781145230553974676534230214925226937233424517241023401226045572327981252805539498022073670107675910444629391305364526218035438207806389811127047298600979233809232222162953262416643317263460177832731024009022593939771035004559783498667715928153691945212372816048609848338798515127974008327878852692077840432790485003124134001568161204910905274137159335579468857056146186062617410694809504678068914837786886682363325576674735709203684252671922546550980199980703266970882170951802492554884307782816814445559331286699267920112748534898869099578598326469512772740766932295221895581411960407561995244807045169616755501549165216490379182135512442871958569090758545947800816047167203127650751980506856664749587990823813642421422315589846707743074352694248099004732870225437150635600973064527310584381177062946207907389581343704413850198889839563261211938494099234030377254166031662373350742262045699909677227458198025066735247871275730967365224790362223293228068453765229434423089494485623647607985368844166491902105013484928722079349372648247435341888671892590178071543775762586899804122715552125271540899192906857311054587541250181069737114605708159111089849888574451052876067804268857793620405343237257804386443107505266811879408302059955256658861749235916600194269000167416547656006157279092468962076223224113738097698926061013064699976019222279159747285938514128181850096591714738689045898780604376857245581221835947649669580538480049250621377636952639750019032713856580671986860520635789445790604230097229688213992204537498597672526737975796953564560598281901739557678367031964399861980156586837264119806433042669954498124998535250592975152389791752916372342016712092047421331722941071540096322074338875366950365314602553630693322754251081969834013401404807222076765958838999233522684677481184709887324368260285374446899446394617220474573505108550007827244779458779934549170209120779309035577892726272426501609027305670426995427031751701226174434211876666977432916486858534349878923833211649912981441071161351617492377623412100230659927922764262203112336955834441758088639834125015355278396063710974827592764126039806814385963434222214268067727165559775760911991742636095174188437536310143401622897896312842459806994719241800693767553811439115750477777741690450780096786164322397706115032387965754093720565102605426083443383670232568015014799858180362135167147408714669723759943570168274093403084763838076437985380534344030689013169415792514612142248614968533163349825280585085971064263896426883705617670456734421535726247276210359482530302333333947683566568456280551939250894045541944074796077352658721242657066751000560144423872486151772412636248128249881459004806213779118788859474451528192467960248953018389682480665675127664926283429434695999107055704295056038679315810119004201038737460037065654848186693142378346061276660781515189084603976083085436678177778684595690948065227648738235180848140219421957900922122647582634420457545384194140507812745024344215159580004379855896839311546970518734137350621141899142882698024365438962238463075810779120204684205815357857323390797436539172243095127833682589034649049770521759319829494434428053254691143493711592819203645356008880555334473547126751997267082204562166531908411117703399769132687936650374657477972864342941881993711016712854177564745332934720007603713216221062543247495826029126960611281863177823750187854181019307957357581203633928106715838775287569188598329997163830795904811688994096241961460081002976476941290875890151883494755768262174533595499201548875905977131697406705840127269221585253482514884734084529004531428071766729516378052764213650193565836156492663995715321105206761661127270220832324024080690107315951068165132965781892504802289799225136734612693683482710371401206248146901981086705704776474368022868093261398417916374222630481406076865578690313238035293399172524438124409320540353431051458375985389206070154540292693836780474049056579674921895130099687920697510171280297338331433663922540261785853417426739850724015459115517868873769129653591648329707938531579093316284757194169525126366711500226150170660490654483639186813717431715476097293035886682250380567219103408392072729599919932432279863916076560137035709350195878507042772880319078985214830481630888207477593637983508070794217888633795684051154412088381400012353977020238732681123052573790995366561399072150508174327687617499463323821043273181549145742804020671676315845856936205571144025074513639438384822377532632605822602859324840024353326787372565560882874520722349377721714717377103685168976824860411400506226660843531250464752632458750086379865954664492092941818932290061925789288511268122382125259833989442384629876623694481711828208467515046815979711731301720843677986462312795908768695430384552214303585003479391131218159019127565815473605580932564020427984403735837285019454171562822755526719146535640728224244517379984027274263821853768187034543909692231495302759182235335563848816826260484542829086852191817508549544861250936675032556086418058967442707027239651893495760345323172540243621890825067380214926056263458074291209851027326157229633563469397143994344270638420834853106552946510337200034891442244770511365841188146482390678432784079239364107005291502649687041584825634884219286497137170665255160371287146696022962368621596000378115845879240015079582576252297630730168326843138091145747556050200323756731123234186923669682479304757368573028262812840763083107683686654338058773122083546835530484431069809868411309497661454312561072308868124195750994027507222013922706844580517297524092141589659932393649167833078721610941257941265586706120426289099328859833532170307718163142893494583594367364069794272730410793771497407356331154085636544007319979225746384876790640489950299201169482304726661596712441222791925048132318408286584368140515472202038427147773337649722515957916362535880180009121716219654920979132797178211576134134115651592783338409931122497203971064040365392536229771663655107852393587487916693981852815157510318982681627344262381215407059699767880251224447906084190514050136150931489607313091381973092668305827128264359019345878416712683911162423444177404436569132029545940204025860829043186119341159181970224118035651381336984239939490203107160575871985724008725879499716099719509951745580664618258553527698341675741890397770177785748023246145633904565271715355185985740336027087092868910774537541234054607591878518929958436123141638601040928506990351710305278609088467501104053454158238813686014375682965848518416743400367888609668122760257114886423535973246295221831124154536863568028142862029566212933838815642010896916347293941911041872834544738608543021096428983376719361165570632103916720263475174835426321916030460869705025723752051634578431173587122484831856960506351597611203177612306791083597460298352722671083736215742714439222453897525327407887614062408952472860689865607052474996480664803751889605378365113196490648543404790137206966054621112870223646123998032026402335396626553474249562422429115542326178443594636975167083023713521743942967272179816818752239095993686658587276315990621942566365063327307229734035855201843584414011272129446849613044844725245243250339458382332807450683262925066471587631108980300963780051237978190659908801877590135131482219713590502044384793128199427593779916929068700070447456411252328609339420762526748439409557041234937990096580568832716238884677456685629299349184968880203218125530232289542191881564464348433600877785105491347542250160726041409126586714487073885063076010270776284207334758922454737281159343624919873426126598556936624834601799022165585632912000247353966661592389496000083064728547245459079892646452869266116663236747305211312197126305493073694224968349771263636127243509815487631525098004560499333216522972630774495180550854869004502319092159203935285228883519763674770018440874933508833357312311386236497393852329174359777805783342697445109209279112294806800345342849798756370622736014670396964098126100537342635476485458086759899985845519268544772208900991587861934812486214397123317302554722349149659423318547708246183478544962867553138150177530209154932445201371833087143051903847230830948310490402036299251229040494704607003438490016591982626065547423828350452018928046818695007389904228130178638338211941985127891692947423275569529996305159291985777878197033109711529107860852960538921697094242646084409469442165616356623727361238454873079559951647977800206349562711211348305685498110412133786205024790991940006424686967565369092867740519607105814882811777367689443359673337999224573091136955401306388483634006147221849204872192420529697459035632279845947581223098363647176871014037650323813293940432246551014438115877568620791583594380437033943539081211920087918985439988225203829847322461615177542976233673882441238675006767277169420754576876809097529021786127844528205406086734736355035592092921366624200613841525566138189087800052184534144446500946013724833464021124650102062230015992029112867459022801278729261680987362213497460459539156541803577413910245067898107970001905135962170937280273871535945423881689878125322884014806285141978810032159678818375578636540531183798956814075846941425541744154301117898079678325432765077982069986651441646011292999731486873665170377864713625836233609909920643146989260752385205113623472770451952092766942715019299626222953528136779898997149305873402243650679491027063111183346776376797635293157955243783416124351343955280783280719035470547900306438064186374008855890094965902576729009230849128202048056931470121569999102948623477880538721107680210535557886330232059383646565799361712792602219142312147090219046584871328981844110404757064198214885442150310414994459576231804631806776273359489795879643524813227593473365302155772877107102592122698272221011823828951783950277566133169469367848826468096267554866916647034539272655426424521921126206587461563755560390847080239233325341326945558486383189885172707076124560688268743887671466628304753938826051196549484400643655273295189327834566920872010030961860246134481464650889978397585157901955753344453664045708063393367679487281711723016633899548724736815519726896197286833032597270495645163438540422986208484624655585818835737321994371253132596309980330864050978859778852351326247770921920136608549536848393226673046918177026945341420291638704960022449130070275305395187026289859369962350218512830615019367952601820532494476813051924898480449411448176174746828716729581412133929589376574918009930799258965125365185838485223856447566736701752973635188802638980886864441225440688721202546350624631823035226647371749857489860526157851381348301278146538592677736830140955960620997592298920578128082833753893015314660884319923893751956606133977808495398418090933637021285096681005622074527758553582634217944183957484291499466828919320765953886775022266676670939849534678282057830960120393147755411274273575266754366289742069390307776153733082793948592387336817657637076397834342174461948755165511889014442155344976098485764533612240648518505065924525213238523851599503162501402901970899020215740321766117165762588765437978569283437285905255542083469575598247749386537142415095944624416041736217590991741254949033679797124137799633590671561935217066066263123784732787457158725691774891711030827076667029311568054044239269936273022954050823494308260638669618748751781855610349642333200218822522042787781649593225543662269961627073282460438115059228582260081610424457766158220737597937661118648597410051944244387592206044273768071472275099549240551835632445925107141842213362918138399642647177231912364428249610499987183477601905859908704324071076249113864400462806645393549579411267117409942777168042493649803609374620387578472105741175990353109531606833778667660544335793998441657693958085272049154458095343343021803152921751251444821459906264545412165513070994495681127538310418496301419030472371978493951831172586031113220358758536665966571008823102666493455172737778520620226336642975741447693676981299506896193697504411926193853533815225490170742792153057274326279128085469160961897912421435222786467898046703994143659042691003210729015063080268469954224955078054738946515096425612063656373418841611585589130213144761343678405746010753139897012897363035776998555564122238881731073544759977528594790361421034062911454221038462551176935558182743172402345644090380239546352522398467218732682841011335338720188550526348004039767381117927685321662908834269567941160711010955163883439994906668062549563462198329350348267380736703076234374389094581093706815862502030684091944482726665360851984408780591595447015154710084544139674167385258039725140106980805683106215187201449514377605676464302062724799308023996502903657477564740408081113421494004216198529072402439073528024636067519963032377894299766337990535153035549654344654698591359746431038565893437529442269071541834769892960595143746160137503656000014131356722312994437488374888111360916568688111626634159235989386372600151479001725171774202360856412134735209599363598919193764847864735785132537695218582299884752569011711318385604656816312746657250706106148787952613587615147511158346974033288678326524238906294933163282813471459818969024472160157503180633665028205145004064047146509105173133385864828384863836500965621160794557561614280695117958416476835300160367375437513689319016454563774301714526960213713594413851977274907388380700094344040410095737614628772217110582776095019799503984981613649977654494862637333141040024852254943517996609949698563659547059485701659676146584175286893012646897780674573321903982566328975792446082840934422909629460739712264063650235491562543734724555856197318165396996621227306127971645786215622252864840765076199253837304775519100590917304166870387743658286873561717452839583813016987460643598706854650836408351499740409971302302302215035205088874997984124961369372214512486614297925812907905881507542509191565327961480876485329337098560561751698411237362446861816475516095167879479354572360421349119941587635250860472550064345378530050101355217614569974786601080397438175168855571099807754570712723329093580079708312953876530339901084819247615198344442760026167577005512774517521801920602602683069763251487912134301911296549063272044683214984971220966161696017582434947177248385606475777745750798879600771439029836043207656659065309640508697532747428877718403625570681235636964620475565090222599398348655844701997678920464763388491557241458310189183605406299437497703505637687417214273768076515886076093393009293214225783327400725698704401271787369201499484144246789717358129643890639803628617371757200307338009319090714936211143076731823039605602991587916902368473730613369549836627740983173620255798817256371021924956483726335461814247823590076038668661962074744039142705285130208495525467136018890278504306822904527213668218081281812852512889702975212504508781181382504857011429069462704919668482526656831564343812964713188865701003137672949827200936978742029304211920610260331532692285981937731167176142363228836137804269757399311021166847619471864159094094348159134961099677102486235695239729394081758274341953922203417221917395766366643958401359122457416002749629053470145193132115537039104452923418490320217570851421545019980805883647349713522830510253375777773763254977641224326989043637338813948915532734721857992786370172814767546871575196201321692699711537045024367185518963250149349352406328050499547967215677322617303127467963958814504290670091782500035281926113708593778320610806844916534516575983677947920374745809502507187631737658787247346385657568930356438864171611541539319058764671994877861156180841499378875310391462841428077059707502697498136571102691374069207926674347747738874543324740096839639458544772302439943023032011549417058144132776230450181310281120805452057716664340103003913655995976356157682823570745034615563192409697119107531046187782454846014133428732494582469970144490005950918561912133052883422520637805031749784054485924599209105775452881488059501754408158377796793626605853012281026838193524049940503337814115543887328325081207583222058737261950054200958005126582449988446040236707079810127703802035056569532570572261873827628651777795370613445670573256300253830307696918052969155516050316956837507662618812999662490078949729799575871801430806594649743371430170042096139583609271508226278181506918629103916714306175830668978658895053229617080815070338672282549647680800122366093211126276028063121688207800516527737939755694653866751408704130211921027472451960379155250683338351297488331997947908497476332755862054767199741962071751720780359685546683097991627230252828843593615401151892776553986967247746604203538689546271549613399715841565919830452780903995865171660117847096522833219354522124820397168558767350233243588354820274792723029817101799688353424808415201292908848651892365246317232939316162868597624567952262058704014089975304675551951088912829778068922515580785418822359875444310131033492232129766118664114882361963347398912110736135387484142374582465165343371341728314518112856183516488719316257390150220968536029703937553852979897262104757887178167480503886959625379039001573369936824012637938121302186804718012723084940119672064568910935086654071823609274130194456577822137089713654961572283777322018980674340408324402613513680377678844802734127569361474136095741808314229310590219602219054394325027930422993032392592465976927606427398773301775334100325467658822453935068885135722637926697282714712761622263062884080584141229182391634577773558844529284986843961673715420244391721425704996885330703329185122405395489985258889097294375301302509367702044380265624792789838323723854357099056614208546388570097553626177015932103061099910587826900763939804553053565980486933408636638139420997834334686288303903772028097855637560810587166547393814046202738274324877136030555144764739462029109013882607703587991185697836309547656356804133098652185876580731634084032539078588203561220984121964149981913501219660758436050156381073863644881275145559798971577561065383584341775727309686669600983433941604563840521449158403822617746438499643050956194929692747387929443103058664326529641465850193179263292573222689810648687238567306187240709073784326303886237386854660541897587556405834125452397043222809901040121705245628153182400181684596214367125914085380358486558508825004277833097875019520590485679628663033566019601350856971430322979356381347005762311715672396580610659151675194427948363338896201679809537957018963498247656006665213751802611877935777727785517019117536424722956340267675608633604200790323541686736369921514241986364237164018875490784338150821797567839731717655945244629490250400513727924927529633529664732612622782637691256240053182093729098856986987489760349091208706078251579924608314158391511658439435642811380812688547448965782336510620975825445867910502326519188942572097853199510564430362280499902330414197041715545375747513671513961056508180767245335886368203316799887222542086821623721491678732262785334469862014192413897075467622683850852648846023591565208543877616372783793442426800665884914904796727280816796867425806302879538415983690942156034627951616614820572113533443094829326491598427561201889657900883540482777088111424077700381904487939225691996196726466846484371245315388338176330356339706490427180728832986556969338506534304644565502557714134240467003254775662271594639500456419283533124787282545654785309321627620316310381799432765576130179261006792111083785898535475165366817244403472241236971614388404755615015693991467669212589532470651981998051024417558009996885491753264395501909142149719040654537667326978610905703497729644947770988103309186930727614835446841205043071579333014027783824772798353927017633950576210070266754955319725665492930295810434554945929250516140424372793787121351407809440146432970217595091619135320495789154334088351509539898713124112607600823142236093963142225771771639763532806333380048537449921564274376495352047662862847941716383676615869081701451325534325756994598341197244981201601681501200754867937282287987107676516917749436573940201421951322072435779609107221907730780696770559188992844049945367296804661700583939579120177724542514233340543538375362557104059875421306088540575758741323520648095292907362167895007507744771271804259043411716096674483121421274212004935072804181495936377937114752395555360915640189156846292062117336756443462359778286323784399244802783008364733095987099553936739694746538181202240130541403046023204168721920138769169376494425709555424168776032582646451249434696088556105698881750472019614633610027396045073507154892249396220913968042305762594663461360609450609022775967178776691955565454352375413522726328725203369441124109595246852010809533915361509857786556939824429758770798995683662150493002164270731836566398029736534196538140750083501176725681871858936440887477241354469541275130619311870090703164220614283322374395449371294840146082314575001155380799268010792865843019765333612295653965387186207590484305783034677250829810087065489527219294035779195166838830800828588323709016124023060536342092413391820269395720171699189441769369675808474513266299780530291466701096683047900552277761752150658412079268962011305626551728966483370967348989602499728890752033425223056683309840916148523863295513507400654423034859533397055898917644066834462368655935068031765741112094420740400190335248309205900405806553511447772546465208543487605041212085011111015622287100685090056630507647372966428932436032260874816897062800759375136217492827111008292483985506058699280438323748057941717311551029198409474376705871797525377516391187708967711259711988303718518545384114165861424414106925764896808420288413293168022186154864448021076577029102759931012084278892464722593335606064173867824911714130062028262594425403313016678424610294053261077169492133179432858557439257068123794303935985881054600505609904658720761958493028735102063748936939099387790630045530596990686113781378318386080368250190749024988801199950489645457086651254044391378141068006976068327306794662425009821978514358433518405128669726496803604592000758363669037834500919522332862116938432104250186525129782668221276072370773328498729680474167567835841397533909151917365540245296545763481836333276881192002105840751492854137076796873632147979492839593211081050798851950918800994524082037628126609204737311997228979923638370555039577539921266878522039946908935318240417025525332147810813490262618169219130953897169258877951141471486070532305762594165758302308896671489637679646728486571952297508875781762229296819580108836427597006733453415237731899112210738978915946842873286020081142591639849462572224070644625391537017587365149950574167993491174222120935561350931098496759617172701160452676527985201972503075470177098518065994487195137969096642889255528234118249358633713257130390510858969105247316532321840209285058463023649617628964297960590599528722909871463482232827312446137964029849313868893263716642090674082815878146455384421230502346056136000077510235497611617551173994069408361236224036398810522571136615029777454128372529471183745529533284133284737250146375659997402213336021633360297873889607094262002817241524462312828909896873835718298942411862175109226196875162214518637313864530741899024398004641686065924955106206631143413448023114752200860174054949000223762652597299406396340403054123290390193346639727939227919624224852711929295149893464673177224155692380684302215834544746766005441696404794397236109682665236232559596100648183268823831855614465095233840876989361543713842551895969824031642266572106250642910225734067657896514668594137463737697604901638362044970480263312929171184762225864193736788728333354882390227160956365050467846990829987806655463782235703611407534692816654871373414334879487053080341814860556357584055710448924085693504986208356404262079259578997082995309222876617930059469456541540690085943392419088156758368654897733599505621627622098719907974003828118384211946840794215968644647167683473695080838764952402527450944466584884416980187422054899038672457440078710866473257608802350860730013287627399004911391387658523103411961840027949906010963335267586708247086832111701413993327776758691546404563380875880776235597116773855561287040962289554612791529280730050227136041355396432689068109164035358699469338854336896310086210537481081951757582827994555465732262515794028329743603599667195876877486432613815558182371470608967043782106271547754311720972765722218149714075646134064562141981579382465942025887721017200458052763453156948271614052625687214277974427631623805121102381545797868799599616142556216326935185597299777321661685377397467170763699212501219184204348928579968411400446207538227018782332851251689583353098328784198221160366049083796024583240496768109857842617912869874834340878243009168164590292324577874813235856238877422331108924944819256981421659730116903187882774880729339638970888330841705115729826892247622532497890580310836774472891574864117383296514486196435892828142963278390544091304919752261564816331738743032199014560150876966388845386803678529925517861150098779029862213736340011456743959834862207822450416554313050373074756801125295877655840720544739735683397226601227403434710352527272520070002504070764357704957427740966061228442264052872936238438852854028586778746510048466363311896521196764867100761925531913035713909206901544391824535944718926670715453638001951223761264655482160484363236614189171856669361559461384591432946678669611969201212214308842671781820465808873519902133605736253326190739417896534473896622221896868413599926467201634522035858456946456783150415629074742852475467102142072389437429981745381269419874403524028965445192663824998292465891745267704331727955635818209509256697852736946921168829510559465607545032070915600011633431683680926176869622247350425088576602403566039097693595378719040018500787843738733716926503412872132861053963496016804973302352477673844772550454945551775372453505309710978528864437041614647375277352777819178856137694527486520143081564391750439807634711739448336566348390739920960226585687380657417434382505880047365801964942963398045604729314631508831762943221816635262599707688835432520763090336937204986415175198861002821971751535733164723510459119670917809590475512028003098242506908237764800859058632721020233042055272466937626593698224304764664968748816636484946536231937624959879773181746153084369461860133419748665437396086354488074420379480525145779144457818728305734460040101122388840301753040712995533221160055595314659976741493096891712820184506852905175340882714030472547191931801770633538801911682317991899057418005467563613910553374930009171132186468669231090100570796953002795628153641313819962467985012216000449692016346675228398490743482455007346965182702316179355352749648766980948476670071568893012967592864294834128710242726245520183172120621785166455037709199180737866086389545476806561325156277639580539550615690925188823828580605062460819092918028968709402275231953524761552528781618763024682708792923494519277703727655645029922892990673012626191887041034294328780419638415770576583473390836312581555243994797517143675725628702054594126202889496812571262654175047508812245573173205247019241197787750688386546738522610075897719513649348333547663765969653654513865440335289604286019555057661248207164383134019039002570224746772527365685256851685915864010385952651537465893475363016294261051279145149260970641222195490991248760873270861094312193762204808133730180993847711897858934254369270331594947383625349157946710925337613247481444896923546090231239556466148954605363680846342418648833385654552930560311144514439252750079378400290190153043812564972314478919314101295859574448160631776075170673696426435228535181610867432024188087600219568395341156058738866313131133467016991634516513762349911960624983707655422999225375900393603593649633201723549689161614392791491864519858260441054961940136636310063145862240444890060015313532981492903834051020430813462317192336332085215316939876712123616582343132346632602096263220457394328434683812073104776207470149274089891205814627511026365018553226377725638837407610245486815372540305055846053110770961421362288637369231024261203231189627549925431924341459344033809094193955043712074656982560256563304917893082599839034271987121328307041938412474639947515688485273230703460575827906093591108514999018489732612799830962643256939629690360100378443646055619142775359276651049995685089354694562132063061165870335140390951321829022514029282008500003932955028100761898804770763673327082870189758396503503770089388183352497488549452786206628999992768031191260863048468993291120915950984773261580401078261698439110680582972190834047460596919184039432174181554009353906740148980002272702602070328979505293937005400512215817859186779726876386940428939157457388036066687107493009675583381089749923515857007442872499287252899574287888996731560814435114975607873838172680738974021996135255748000249802290163408252539602309387601037403913378900853744108527994854059401665500753620357664956538215078370697112895357852596167143996391621835654482745995896565199467305634369582376390611088122158201597778079888507622464706766037225855968428180825886431436877105762814946837014767143131059053613948122926548562415514262218817192041987328902180080738255464436617717363533491194466345596456143502291661413123171522880433678126346638447633755517201352847613420076186888334736345803287673202099619913915359099687595244155381978889562427302352731526886388431281565028938773623053177092184518944820035041185342695196255663424231048492262681137451928955017769042742820470045188126125205930807919591583001711911075022906565549318382697139334867681348143127398752799018282939927213188080557365101899974430137790497774065378665619531311694332959908543133048244407490103627398812932379846873412186815088761350348733478335744849962078843650237171221690212561048250175395214594486586435771444173944353107651667028369159891551793248371521353541580914902454866083423428965990070411151709144600305709011199089849402307334161011070222999281924048528895516880760027959741883953530719062002883576237093813889984997593141524426529557232989750226622720834539646862404282373126008786964989235993969740139488135279465677541627548361136427920644376525623896049219714653591938007282079014475141978201737859727208466264798696738879939243585296299979295461215355028233836718132025768001558320159407524817453873652362787442298943023565196359583368358791869608239081241877190496550455689637610463957290208450781034965862382572762232520018909271210940770146050191472193478783458099879478611995805272737268459183402478771594396737505095487593685043705225937011532934172198999873272906190654567097800739723982726831975085274836160944596571226363417344826231481585336061185198653269868273539305015547929742208620761288292780419420857926672129975400626389174992279800857181700202898460600215354961518683206349009505830225075748551333356149034755941200597367670089521337767243950970530248024182753253153201068892220366552118996997288022412822239815382030137960540940850083016636776757007289899048251164598583226844633337524197321546354457773891461848022591797686039441405728086274031684426044296180001610614363475826282001255667013383249384972231677704886198514613542286070359696497852141619286590939528130388489987284271266245521197630737965306364191682530172800930037264327420516373827409604915130693150221697223337691569666928307383251460615571434040715815756384615099488225274526967086098364050411647681269219692103686046702519195546599370792722762391771733805901942038701154761495033077316394237106807704593445604267947831868339846447721233055700039692708891998182513910186153312984021728773394216518127702392619864577521592901587506809119326123869421301472345713986119987395916218927925624330477758497632171237206114876677751441745980724451450450115809792223156395435031795113351440094397504701593401852696971579943182618160785547874569711658912081640245692672254103225074920056170264255909437669416305635574387902232912038243429577570607330419565966885656100450715761700873336202403981423297095924884341361967105392898165170244746137213035993882915660647422804896454750147284675612199922004858328452435347748917819050328927854051812427120474842097672202130307851171320601788905417855797987918352907891753267752549131268014261752418509188265922738618102688288391716177241016374825141669547965459772692251517275681886162584452091848245115583960484083498386626751059509280593952410571330333182994708850136839932082638526797117492680375273275569197988799824334682643602455519750321012469091007222964457575272949535204845467193073833328308245525527389407702618662205694204754797565743349388725016623301886375707635384977286458870393686582233022132982146206511870041232449132363802162587045386005420865650283441260096380474437433224337976052897168350376155283573552604664178136422224747847652811366430506049447675596487027999172380513377447956404356556696184754101075019381688093296146470298667358006313903452644286474257490555258425760173328802856989830837099997550184095766490371795259121374557796628149793117058790382722558815573085192354528685393404715625682231948055240191869655110799995991011488928467257542320750763315095860091826580752589922277555168132166396944103861054473462264597448928982471970324694733391718105924799651466959153395142654230425587620595420180250943427773565914446846203446602017129318203271385869160127434966863422929957330950922126345412940395465127998523511656597780487139426340765473913871415706744232473501378546346138508260958319955634794468715917792488686797367118000045642086095087006621986555163649931558660249824769546724254898481621597395891168094375221296525057721086802631688114396816216720497675473566620842889569269885636896311997264975334568897573589509331786365599831419621853687462050335587749355401827995041739044478450163786282564601990479683400967423557073914885359187833140630762098468481774180355827920866869930332928169573488368334294640280145352922740077869975364994498973131577921534602972083336480117910349339863089914205078451566965890792588973429821300012458986779959814639599994232851013724636522901150796738322849430191635709216961419094728227402016291800584888057597754764318209455392641049362914847800471351352296811244836939611734243055453015897379461554297926333796497059733061910395241793890747503271107356464292891000615976977963484001829741385317266163311133229558810546109657074957409450931955034816910172337765069905762858344493115238223585379132200308119221116293405111376323545759258976313479780573794528593635151673875720626729025857648158095246960010022601456093961707918079029746893617902829956383087238745284582098581178457804282305197884700447778505816916896161145036183496984623504264427443831196626430866262474764041953541300115209519436376107323178625736750073507960875837550026265985623712957206047576852455754447128855267041783187334268493675457863304022547347099880539232671895176091479274802952303119364308920641515640495165419491120464105564637216664079494875043879611819754356806641150353439465344551798759925100809214060755686277980421070272085360223570751701226766687075093531470762112951114568591816992443476816438474399460913717156935849593885706496865394167783696417984684745126161122994530546713635795031462985476579066787394502026203519376087211254671730555812114435454782016740290366844017838509369063892741185813101585793146161236705877750319654897660773561492737380614147919955297748858600878707282461041551822787407086591268804176991370954148517773587670250990880106494919017757318059948917603689552673807191813659247254068301476557606551102656074782746241619525771621775549783045291202081803668421225241461512333824914429910709581540322750426735360515429844833194006699022898089941051023176812011857796324488629304658034980019108955614625552946061641006295883354612743405505058485684280128943977511504445933323334849941112562678861828178120860610652437076880272913095953995528946632271671041171465208878997702165928142456293472055758475388242132777955525693729350899615169959188049186478637407352766845279098816850934771000308720351489777634043253769354962124767804454947267816260347212858112945028564824318081423230830941062607400914069060134092943692876473319219864585586798134742520196640312759389773589605627377580353553194143648100142648383537013257492244258806050711116837168877494394019749695063010231088409797978480397908427089214450400197522774226449900927496347085409992853130911739253203795670910628532722051140636421603840534438244586019115950117391296446986001979735486383487464954217849172069851512256091365682017717474709705784932482173985724073718641988579632219467767695220777154191540477407931223306373802481635253142858491878670669276517044651128120832536534702478328464260465851179859310380432658090006828389466570312465211233299288093708423254844238992407842183577317006183634931754534576477228149087089533437991930455149852548266275467092208387113186536408939341006576173630128047725010406838541493260669227690165965763458163889597143240935062384188885901840178857818214483818165635338318262534176437291536347558074137767917816184270412531041716532968892107743695572249442850366693106695791125742628190712644382244817280393846976126252135408656582809089733930605631185836939378262043161006237413238466298033341312043405383422741527846207100945616924838588558994747973153555758571764699501800078474392034588226224261322061735966048828918027723997268193133858936117299082115926272719128441595155813639522728474558312708197973639658411700375404014307838060923411014326984853142338154091166252851439052386584508776328877018253624755176411431037207241657533619355243146502553515916365022697449370986987349062993115861047254212070995118214289143085221250069923218781525062770637382594647824975062072321109712225889391020449974692534499536032390006330724510503970844116064562784677355748635839308002825900613745789111989801720116847014668175387311408183658585080774599543717395794688022891997124500518493727498188301660997873602720648156743876997050675315254410037799916278492040550449032790518201093196503183171476806904662408165337815344454279089981456331146655296883265651513409021855804993453480129394173271052195027677126991844952457186277278943699160525202692053749443281386627302347215861321828706662381072269271505547579667033356310047573881548527350863090591769443008932917739903991850866641991011925333867039329651333589680542856100534233297132775131713739142892260256318794212106317032189663963141253812492053396255575043247347940666246163578892919030783446457654035986519992917846184581020424281419058429282767849070750967725380917138315233742073953926146259267677943785796266980956972864319894628998480785302387134083784073422422913513792910874706783560942430580371038211466721388541926681773238026591337787131175462431811407700559103156288157027383593433272479192140930848310994515583706954491375881753684529706265820210926285008986770107766021982660565985763581694625263122560635052987935326990987097409280378780300573596618096232955771854682894816244140442956849087867621383045781478086852732395118988107160530509764180263694297530364623517098175998552046839655905632321872780177459634098812157541784767179319825464020391411619077222292043964814805877300323833365105831890946004935119617383837531159632335161624041664359976671371290853706989338615815718905255885015547867604800621116120478155914035579223202461923355111365960457123424424333968599243493247015679674280558020761808093358340882274809719654638831176265226438059833539790106004188543807490665492058480456949491908375111157518474217519059720626524989758322055264691128373587787094901239405518650134732775428956497426239824002438734932362341398211040400124153682284640497828698706934294241562734530313601937694924455762891624518080349019134436265980802197850211014064614457057634949549361058256674880656819225827984266053870755640242648050715055018549818905970992944995105284697940185272907770776672861640404016216554091701535657145731244870335697266313328919353318155540478870994029492722254162036810625120317937844024838780274092250576070167298911112595342241357521464936630202594085431236241117303121524800707743621635460373495634635525518827419031357405192213217534424540001641991137893031973040779095709171696998022920609178680512732995552097995599905326741586846904841522243029868648974050532111393951093457698307040235025630632946549908527669785336582421854513269604563944131462673507939243886156278539746730168502458369059696314349453685487205745291788636493075761907238788070991809713768441563967376735672965886063031294408852721264520679765423767847633401069070046446784147684851432393675954496030573832509070575203987575902244013039153014763187546007744600218165351146528852235715851115753633571821681780299837103760136462564298393769860008936994783793393369667097656132973979409143221898545651964630858903919539269314846335269527906285493684415120440121617418251136468511156750384465157486966799157806568061375241581164628539678597606018006440087277763647307559578070201286289851188560449234401142412271462711168243977483476199881668210636057299690573180630179358754783659462636818944983900770527987413937649026274981850374589738574965462808796286178275865223296518763271915047857819996151659523965341897742408679025596995416948203601316644931845760242546735690568373862186480974930695302499237104276902846703129734460582760769832230565412052870381578786948713843819047636977992682650211639337392157372012355175930649856657507622026856818832064789583106744203192380332863931148808129377871700679957549005305247262826157040851713558853795065098502835880174556246380374798689292200710559405198438792908556876229165859758218452234513230939829330815594010508919782786263320706827489457573328433668815676647312681657874364544338989350613931215903480639609361355598725431145680274621845167735059533821877238782610884592089175773827943418401892375088447961342192015254880843969934065796992251280635255289091809320480871587071510214221367880477572455585092148262156204772828424047131795649528988507805302253026126863129361341770015931390272002285109812884087513806916164959936217345504760407917704736580131078453491918767250492145885095205098486118625352098798926212080796678055743089598380563212826122345794447971295548511776691742325500079471988908961669364479626669165561119572062019350903446815619968084698307099657456731133467903450338268548083131308682053674716419693496004893867142079680137158043471202317183138598014995765321870071076817377993472986443855947888601617305896860205146356604090468047698822845314971858672079239745830488295980633154488198798992247050895487728140279422100743837289533017042250064648030383533858328234956896140020073991141974665598254076808387838217828804032610491682164911503805415135073170067668530022706210083982843945366610136558345067068384962848056706663680812413645874560338234383440745491093492680223419291448942627365609083868243702001249301198940356323896230939571407581410180758834047502676030581077948754555688011810194208368519649295784732657195326770488409348572705390144620751030176167615157649196373912260727534354286513876451523218195160125145038142180694791003903746344460266253990846004768833847883106413393068590520321142640158082144530500301573313597973010015208835875964080782183072119742404623332572803893145479697917379325898916112792079795314442065392563516909964064615430845561298165347018698202146238805917274798563799239049833150876694360137210385954774621035439498083445399006564971526771508621312655101971061535647711040724738399798183991184376551119898824166206159917260402721442721530963526052990036254155034246084721016718470294578967909145015459849547117327250528753953944183096378512449962635920918389616211004396501524399656510271293412306777402961355942931058418966971920917081423770816414403088410254994861884480585512672463042141373780432871840514977206843573511680707710561691951425489228566123889891375086014949250318128404710101529434603005593672777364423798892875936911919872622185793653921439262348643434579659602671212315095633400712391106623621334863919028662421145477528175703192754449663738795698401075199962733324896731896952182176051352388778305520007656474551022383811336091019547625583396499760631282308004711769870556214547690123605347228432944254932539371238520603605740485870949670163826756142098307373673537821772197219847435442784331045459017742000563040416759702937517164555938020119158719190766176581538270472584241210689816461190665661620160988066490958565239703049648928105450626695159890579761435601689950410657578739332876398580755509987448266814755442568550561493027840311266245744693030588578793222946228544700109547059739375978506023321458797507172808893932484486157381154020253255509239094628531554900425792935347557902238803303954872448070475527013914720809852668869376638619092683101635953910596911480834189976732108126809475532653858430604545539511292922307513629528865218453211767059481734908904006626944109820308233784526145071952819118336396289489966266805898218540053170016123658096929917519232474715771417392202807748394295367125601069226665206267401621872589136322971673413219892053719254404856412747111713492658816958140058303590387469111007427724237641285044611534909538028505108079176716305931017252364876166602633824701651311014183912494980495080281767167201947213015514886449290601225519173938049740460721898674460819787145877426787257491245785065894779643467961421261584115121463125618824913992222234430482854710839231351311724843253885650642059842012885897690881774547491266396011245905689889590560595618951732246046274942407757478005160158768401127265679276967796095811788981046681560784333965559865947424300880714711610712377385535711035678388867492824295018288373597754697498544157604148977838919165314408607827509728725982050576941209734850707534146287951846156658504967694707788065488160836033976926730045329595397532989731106063797680443795611317794967894840388236893524427542067564149735379435746999535692688601313467121753409397654640729291007020943639447676225616503143129985977268170642464946983375095649552713869431887876391373147107217857147340421020296741545788437530991259051938149662836142461844826982855660902358531683641052014529329125011268529781543838691606027125377982535303084857715990417881533226328089152059192620626942359288905376543063739215469657495334984305355639953758268207429004211268749218552954763094335488868289874122285902539983687392580330081240439651300747278365733252451780860780858555462178759170251923025951144934715347455218431515811303939496372698851305435944599877055068844403084789510446266764352569582740418684354847432222081418961182566390350006359753485467754730549389908321759626025098920854169425791951562621048422613952110992720631558992202551921313001813942567542146594430512364052772263967107598792830482526989103313091450773459918275264993111872203689212806452356943197700273018486070910696160873534367444699509293332774475832432356875900188814235255180083878538079641180174622704421806746872236026575754354772226330897346073446127920836629542550165022272444827085135192928065401659106115106845315028032112237623973308601163537986317542245241381599131620487383165346030813194314995796747738890662956511018936121736364848237498682024437755269345757166972641465504417090516893327392718307114350884088772863453752283009991369205648793102652753642402958428874678428344389202796497928442858118734579310793669482791316054763612753698514253235988233220604093638852466161713762555241374178403374101803371455138243144537456328750482854348401910011927016578382188637331305023477853632672388792647797247232238498986504383636752274471197541477070993427224952656443906233636452860238080027793564631308569008231821333178777195569026004717739491205832028451139786292125120131482372340107255167241335987578043908039517599094820451655942536725871661267164619159762740028443310709256513408554709854708847835157561620402837523691358656571809140909545027725507203050324037743790733434076989206303212669368094824773876168709104260208266371836653251614559334880416490894324472090084581070747089978262086462515476982656859947099955693597862279595495626643765315622275175848591480418855733739291933918276299282166139096527722940355840753532550045291008532909294880141122632072569992319990354852568465138295659226748377080421610605233038193761762567661977761612512823464907957019568953455521185243390518455102065102252304787941458310662669574568817120258102562230872371092515622747676400452756308596255447681682869386368054818808514648225813363495313397747716656083427365558502718491096364706775009855663862562093675307694521623328079118547079343237800490743370420884158778686509514421206619881544476855992942234166637044640171351696737348899411930212828347041294807300536559208209399889887144481167872415471625863178198616565542740765671511784497111211981458084247298335579786522799408691215526485501552973849470819366007052741110011795342711392762375106934344964236819837271991373923682325295287093012872812760456574372826623568649831297817327693433659180776814307538017182447060811152677463585000464812938151002045226303128938770525444542608054325178346517866544517281922925628628195753826021582933967049079073048747222114496832477693391226568444721538647936866591395932002821884969711627973182750747183499003194734147778942645878856386236247906791371574519637692817346270991810480894303433234515037392245268952970390968283751799490360277087525734738480943838798486248936820479754244466241807800261681821081704729199995935560234632873937681856360368103470031132141206655673946884048926854042695127829259982043389975777193862729318175718658588712171887157782913476700282726763613878344030518559873370777326605278870384479489596053131416103380109658935189085350366050126756301695871980951635176891522057824411823420348354829065439199310733288490028020563550042410310603680086055045637656428653912993789387960910710398048626957951173204684184014023673208081247242627176774951740142244766839231209862566254079828479010874721574385048649869752037425338564217335136494057215355499177352433832654094622174383446182334968268906673585344174385193044476961389580161879806483427727767242839604476413829580209328994493018157971681286430706813689458303660066123724138932716405378396149226886203908787433874366173406091419318601619358369923326840203578917759668827914233703921389645726062705794724249263507309585533552801418378313749786401792052934687026520737482273656395700476376726296270652365840184536262021709481929692808169277417724661929280507119855416479473984590562449067080998641166328759654171344555259352408978553453024083173802301503994040387818749918219588156639407576499559749486916948606917400980672944943971166329682699103329796594850366372185946418117664126119393274952802555536885631043555430263814191830716586791505334825379694078612444441890702876405382405242836256048724269884770078256986686549605422389509446561398315171704225665788645554408708265660047141183742322319065230532984537327567132681809091917746848222578666332761984452868495579973192291735750275139611299415143117617622760709543483552277023138120169900449752954899331172231415434554453399062051827258173523435189415065524357375439322178852893796675260372670726421947332932572416536525696173180273530982567417149676600281794970114142695792271749477386194932418696210703528338623443459349425403403927279317792298233380754051211803683375951189485850499103374899306617533068669150070910839228531414489169631428576555876827489468036860666386007795709173489854575079689170452889003005156925577364422018034970352087432517664426496373273727060290754936965337659120720898671124031462442937923690688783933007646608270148505826725756735132716301120816282073359382554701472889325703263175100736814793795300283494787529367950846593530289665765572931072121024514588472691114120697006569603939803813026170560522815633682283631899384388464805545035394767862986574252708015917199441576811498267649230574898312673868318372279058019820836760872164123889561146360281107119135665241294778404357638468161566202441165484827653786868319941608260655347694913232675550707387853812468889194084074610829524472775539331446686017004819094205976102325656966615133499263149797870406289341555351116692279731311818467262589699330714765422318750079767340476654421670740692019174270464824568391785125431310009997122254052432176611388098148139443593835785938597973560965221411431942566107227797053886901716262929673006176713363014621328922701779248098297931102443562894169675187294044111833595871301791045972040534741668620273843482751931318210678713970208300098712929257369389086838646680941487031396045755367900719652950952129158214577093500093512117808002145167140085998742593354359422035265944119789690227090613891947802246910898619884037831610968747969853048325217387446951895629192437671384422010155207029860708762637214996304131600791906343452908953029883095169524688560599529224296313965360805011481226042473237738279457645091744597389283477293307125581291079090285141030710260841921681357371886324668668678867472697069228886411972641398571792604821432875950540700502367606009857443890126185210698550087224096153994926516675882536961427162808762163824760002153490823403879994268660723746779884643018243723848672485487831627305275249406333918038747923295741979284362680347518669870062276214913924712301977574422716794694449031941438155191485683102647571823098818279883373069058124180761719818751767713447728675308538745527369152545726868653248441606784403560955060585050097087724681448864653291812895778484156780407258273878605148522716105991592506047130798690358994098946205953149639533189439231931424518282625540682071157991313719700424471463309274130665481625278940715285506553574733428285944525696964774594360432426353238697355586308770189594903059721620792761648437044776762438992429962495185519659813164767159754337218700698849894114008883672043486465958843875910967945827048275395441086033092057736335739055731466112367296112097656307391315946193849137127743378700429655466917257185636463186820013580888097695115819037091783010405379942826018155723845941172765869816094231297608344309189576303480828419108675643315013903223549055694205775895859436962115893315992404199345893252098446937965260435198569239469696305831077359323707501209806566929067430447902346599866757692539747933234226819558235907542461475910103776195840969285150817362509283560898992252474452649941415867865771639609104078057617204623814739648608612338939030810450622168232956513943610199127409407064430899547148406979030423346946861491296189872668049826213620696871867803966865809237175264525222210406616344015941261916747622134833733499620568071127328875766228575716883734181783208010363426486535656678475546263345597466306203843747085048850687672081460740840514005916936693045751730702408255023353149415004923301030276015903437143528431628997102320171506420735608951934277453204650863152799535908845360356795334527742336026722166537704643711341126063697756712053494387825116375439898578550850521458072958164005351214752366262844519674732440114403695722460317221570398417045453187017903435280984278775878389227460903569297727540184205680851820047435217203471678869915575985041968875530391507272862300929416447788929477009515374640542156178129703720622369485726620363454179198663153190065463727027618775881811047128045974381823560545109346051654338597734587834091987609726060588301631007575607967367066998316063648168708835479272464974272746967354878275291489972717796135229606975752674472215248666036193865129373880657433634987065395691064990742452822757249100396980149568679185920456488715991987347988450391815545745574862560839502696944428069094673827962855435944319787340114760656875965769524185014957525867665077028538597997844662245786171227120510274620370817929337959260625778567813997829472414836971474116728646942344197534699269888785722651365394712027847457381525440525545578662709653800774793128965813953494955952215592023206603353426783105084988335075637687976815687271640992624799520944313674550763762520923251948568691544193593421546368867167450287612184630204961571786877439321728442632786166538262352690718897089607132844432918280278483007946834688878982027657703359913024188075967735810808699579758057524448917194334299401973643684037251859908893391364239775915128598922175835966102990318770809039463052767556419773893269123564444231743094170302752521398394773907143746908366147600247940290584351872724070374213532090943836557190723758731071132071076346347771528135265912428785284118319990520440104322860085704304472355841378725409883373343782651792119082486907516393611758058802379853769528405538714223556999578860423693848883282986398439795221227979825307536622566548546260999280251076062807146199113240310779339251816541686308360374710363075395013305112237509969808952695104114047585004904668460929897521703313124541142886268743279739770528245939923799511363177592678128778761935160015065129064098912971591380574684397670607984117623208852613542733275656287727841057351722368818714993009971160850320484026469318267991990251326998699735038966280166819404796554481476518683698424733276185670377253790379990205091354239482539645794501699412617847719715876430650231230073633339534398775789246461713080228304598289694248895366019832605898006411422074656999481788394706812033020423443566208097995699666616000451071084252447358596791102388467815148327270456214977350095027399945727089733991201717697065620584261550579508080357625794893735492005717462551048062602367614192842757904595110452157175626311556657124442585550538126153332452997028454821162239521367111663916951677374665871661168620327683712697676524890141962082499940968271078350461375064181069504557999676815824363610006409411468365346413943674318100690134518466816359524572367908187834736270701746917966433178866174114226282241178334107058059149430311430703422390365468149068461100817460300024136893451822891070926854291206971193077119290132652760590923772053123249572960917724119779463877108319411639118205764469967578439771581844210041496353335960413479055475892304837125196348327469519979352187549441971410520962564887073340795744241779279421578168466545995714906969912931613916082844240905399271004310491745757450234947953264323865421818544905176957557405707608267160694318140536238287314112708840578674815170482347663116315802516982493226861759714648002670170994314309701083860363103243392341305402117385508786036891716356202647038469208328160357010297674774733114057358670237911851981191824450613570902387702974468404711852290562024289306671178868598568880413411105348433498667967007626730791745145126729283841136162154737292322978373202879774102984133238113313603160211923897579600247445985693424224656384324381244313241491605282222432448860570484647670758957629769466670194485197580885724580762100169293051341082348250954161178253275038058401767680021712746852755173226036785411394031634216828615222015562300036570103094062453304781537609749335664913083398669428631008447316391501678137227777343394239047233893458101136783658123038900025239141572767881966085056345949783394391658395793484786257278460420001374345060358637700483088876847462719474966802990812674666879345891923258720220138673521312776909695636420840103187108612023094414691888755627570523733707875101466543063560175119468511115366937564123227217143105853517971381630182493825718366694463713659221922023733202482104863966713955236214634235323883310425557787832752687590538960637556732025358221839687855617195451484578271709703694988029288889139645052109389094808293997431322108187005610200058685386769725249879311151073710031754636855240030743354527125188790096002808454389547756152778942992260764606768059202862444409090527104913589422470626085452003715878117900972592146957319450822213653621638236605215411399509719680771501652696362909797443158629238749298389936908723475129070193122667514633187481269065615654625903171688091448041663504829759647531696167706301824506218166819238762796667449164764113489136031146067232252568054464392697183960246000892571299166167845331782525639140968521255647057084399880332334666135466538076818739958495418076785767776372132593075343177367869834595906978962327168449271394632297976265891351222470497369829423977471448843155556204426812955512883590209882902833826347259965836484095382574262692917625516685819845002469151327279041617528043556290326630376630301965894241739170333115723883221317345179022326791049498330470834399851052838375603103490606875589376840337198856984284978501227230720697715797520505252035955350157698503935301383328202062411064971914496791723750352907329873509617195899458199127824811083092411668139033070118600364653542809134086419800287994542914474467181371007312319124407003929480276649852026069952170663344787395714864414190019600283665500720153083111920101598236385680980309763609292305942596370430322746150396628708522496942205327080574941995437299897751977991925174818969357619989664544101244513603742856318902404311482082979593133164572358062922691993746939692314458545072344841274832077091393299885615700327284079975228554997597677551705504152421130964976450561023553991261349496223333702455166867073110516877286222286986463417254068056322909567246142364749844329748427151324540635560807211569342613248652535952672297606889914954358674481868993349615904698461701815597231187788595804677962362667808802466672866656206967669060530944217415156720010659485508499652214660672996254923582453352662418437268174511863461718976192895050977797607672808900778264928994771497980568277894166748245009328574037087282042382621037656415786657540125933310901033732571350800167747794026947100445729086146241171999609289480482006003101410531156597860329380572185593903825609557934861554962954299749021355003659666695045594677992886265547093293464561121118071434359448585913277755363169448371466089590868520795039186649499130689767259645650393469691686285666066513119550817770245744517383842882358889925246752804966214614750048898301524529424150110035316579115971077450121863866318913604580043280226074028502359962777704231114389001328999010058687870429927425527116033534489594693675786347599674663431813804576029164495160868965333372353387301042982229852050550677729177760286056456394494480034667771089907392923484803857091064364658243326248975425130746563601284629841901342655850067837632391305359767813766000737387975083237529461662230944807696634068826369237412323195371586574155983755964655990695324491988712711005934330096530859081253298402083669400775638008008024886531407752562946730907878631009395972969997600712000826018322580954799848214174590287301996581395236856186414118172296186653477566294830198990779347942456338785939368448473056508125286020917966824418753584711930429922256091953662313100317678276958254884565814432260677974504719820430305495793268345055666134208677885136115796103650191475027822255682275362704022447503339542853962820660376476226324352284357283120695666233354332038403101702436839371314218866921773315544685446408188361833689200738477226483863758289381223163367759245547997697693894619027664973418357368308486350494459815465062437479137132382580853299070354200379050468481065333023947270362176443092147678501763926527886581181981686191173644116750892223721376165820923125002461832920093795774126854927828840720419049881794249698144386387023138806920541946392223128708868792867284872749196444401536573119907251575460502282935860140458455076026699895951792290074274266871117307541706083543478730919081590934003218131546892850333033522386256821500191180615267749059830962509798287986237244387681083005546246559339806008381382469945165097810520730449983257280515014095161737233553042547517150682222156654065418133289160268933842099770696480083445489587186273147579386053793777063210544586883279628099320155291258058924003134510933445345461898113409457015203774477602565369811519598416141646584943876353667575810950526764372058725570922858894708812835209268283636119831513855712267609817226359592301285323780815974824037420035496789169420162802384769995669235821049231946161673498595962196874560962255916235100797419618034964456576346530654158337150505656830628303368333880547340012541095906241740453507892677753888878877891668309699893652565768835984187973309405838993408889449244519593564028660958293792646167637548102453938394618145628356893357070461975971371463467715337518496992644956403718600090689915473578508082060985256088348720217065540801401960527827209190268467737852250513891451468199922983001220773956728191197167453686033268312793161036329579770269018473156129878712928511305192091651063959819319813099697837908198410072502893883679776979325247217214595517320869842624694400574205305222256990731582165840815304102615488921860836624307039217880498885188478416750700180174639991861684025784068976269074186435075036861971672990787124785957128743948181461952150385992776784287731308855639982021086094399088713748244911159417037508845074800245549386730769206012458288342404165609687211829389023172246431201152240566162216449507591167142738225070655795148219641528340652394072749299729670555391884398974386401439190631222821296286497189535949596526890889970408318788170236030666326827131803654540462579824528712243908533073012113145250367805581264526100201611809641582270028600380425719334900148733875157135795657944560856210582691129574492060737764669676991575591034715028212863717092079420423983703038164657892154464258877878423624493750541248858514606846723640792838616982119770733707601869886629430415705045849038356249498036188306308825701388629195309484505448448031903979596697413526228811535280984333154808643958240681201288565109537939383603008553818007880996688163974127307498528050717501349190411299630118543395078730000256202742574520127194987245165281952197513502272206611325951819422627512588539666255718393800540600484454588667944122863782921316272066877863857697591311181151439969076702136064491374432666184296753512048774023505063433725324714716620976170332494062959175951498756498527064454830916713197540077083108874134976178644744131570039834822669015166565554350491197418146038159133740934614491073076927403173318799793195759561108971437724300190935023067912424687014987231294305158845459007528343380210765552662613153434802636152198762108581807010725369773460264407445608542211207050128620409718932949592997663308094488738558891012504791363970101047490817363764542363044113823829036408936118352441405847900847612134534126961756139725979308162083913199426367913960384476494152084714789147484853267679196022663841950247459120536916335007727253916843046391132144757381014431731578961799249650083505430523319491776962448643881620523181600986520368443611215205069379497249386333517447924454954704742752673947561741449921129066622557108844149632450627415978520655850401278523257308206845646680686011056385333683591768005558466638036133083803446960680243553459347858286708802674749539184747229834056126255653825639636702998529164134247020419664432995605236022209757737918830724517317690305842847837117505757821264873827108007804857203245809025607106250666070872493993817011702569288548333711879703118939331217653205442442500548962160295799057609754748697261488881272158905205512765121832930681675480633844055339943746550637569265974478107980881140864979996730485948050788276729333148898700163348638668323513563689295686317200617857703594087903531404446049548901884111340425940253730121364583936324607865254537990226440857482854872987977407376009895847480433333630016099715005996009405137704955822051991503940960434335355740498963504564272926797090642531754022736881676537996624849715744446085882219671771158646188568814520320510725686813289976175569154679696618939948373453350548289937499693389682558915600902450768227410844198410833887811027369779065311725961499135342660471279950490909141035285786899492613062645720542947816980235238867120999293053812432487157782477038076999175333145731370198485267802133964231495325539546340117354116456921069237021270549950659286681138889635425252411252238504949646556978119334199425040688821194740706445305191830256076044541457126654064681029668223597294320124941987159785732203153988588723147369290341830549921312556868764582020020421542106589543244064295301311412637434845598733210460393897395246947669666598836357142539261952111966517654914196051140641873106059906284663421793213787184713210025906951573074487140650284613384961289238126556995880780628915568937595900805884206571122259720856554620130942116473851229605930652539169380975995386946520642956032694769486473576318212262190916573008642144064372265790688903632881416821135380289050350077787150242468431040603899691345768693336514868426208405662088892839278457722492598515940385736404948620234173598499802100614554932798187211195051458056655156438602979101707073828375968904071341683866528361979637490449005481485500022128946024431390512230800913052007337658039080854275093057537337058689962128594066309210948966300671442690582130789847368084806183880539284291053675416922019920380059533239900802724394527385363415181894659314599731226185101756109642926535719966830558841744261987022344055817201472658727584969902321807825225636925144443458156692055735784806132687403509660700962334800641785706948223011442764008710114319478510596651473876192021543949071512876154547414105039736757518067451140910333323131001266855888783065274042063327250439819059542419661653514583556015613367234253404912954278004620388472702567169457801026722409748840321183521848256226098982744695837226758894563811369645278956205925399860879665238751448749761118438386709716271207213731909827506320527693885884769667785164650178022540782348634136057213892749121612559189761084540989105675688402885221721697814756366057420709976739458834261743813190804663024704718829317198744403302183258549869297898108603652172478007445001169257007770035878900318100753976283528854372628752766811590448064830890843394435614768939680610782305027788849222063007656244777287809568337009466127604952329530800909443162240691649107956506374627185913610497631338048987806168530373342211517096418401079302652669611511270132494231537429335652439482065803820821762010602981785862331685023564578739232909139924433146393897899316982764415934656086008014776119316714260744371894553437050311331707640679644377063341151612571494418437957755594412178639228188236538114564284582243423991165551873626321071671450770814642411410043454562473459334157111589590687893029327379383189546410174605983132262855800034159356106370665125017759115613910998426088968431049607588840560373371992440551843070581435938074401827178538738377023262660562834325473363869204276725887905395893177196010776001922870259325513033552241257725272763757416883697013985408745589341118119604294150455681992710172967121073239726801341575531032891933994370577740779309560642829761189447224073103480501585215121669917940858852855892817198591178903011683947726935774608629373084201078076661220323674894378770051496426389937802943996101676525851822324895666315483460501314633150762722108825769685666819826741749523124495702585673590467865187998745474505016007667339003295937842745701567651338926074361695609511550370341730545418799420832955745276152557050818750683084619684433802718202345974974079816942487390004937234770477844915408852857486985639343637310582801634281957837607277340165959203126062280179370316005213745005428375988986168560002983452896156563831925507710605945754860399216345577462905269445229760174227774002386462541804877348593471889311974145628675347469386165738521186600608791014578652770101663171042082895743853749006893150846347987504117679238851154440331751156638254771209576319453851460736321668482852668578161633865857460435749673187281394323170277025877966246907845274680623461679685737856823605970865218707762148742938950958673546489473852516008162666495964368687975059961149550376847168974891202093048377633265308303600563330771152394472169047311114587998980752748831122869575667186943146266897964473952456067467835156352076172897657989019329394378868303840954763634200320203845329472046629032154807559843081269324601734200744312757749864654027709029141979548560018146494867243325303814715491153238901067270356970340470461031563416679454917141995166037251516924659054720748965545701261267190744726897003386058905996364991424096691071685857273383420833115910939316915829041114375661375976416794458927603811725927672337845768789220181771315526282487057029604652665076223314397871010230718469717977234509859257728665514795657764976371591371549984154262001144105707114357725404595163000766136666025332014626359738607555985328091749276875072475584071153828934034091774379418934145677176455988769556167107535838519052302073015709752491866902968799893928767475611767626211722016920413471572576164506965192476238247920619935701922542879196599553754974350129736103862125551572379318499889449418079386783574534043402559759607556225825247654279064520552299812280585549968010721125945187787709781378006750911054851717282277454909984184813933171637614606669862391061322141892615308340435871634137511388341699620903586233615541460868192094457030612691770112213158165722609750597355564175356903476442266759770582488692475943479232888927413458460850646147198047706219663456183010501011786425201036134927942995377138985501046277639603970852904437024101700930266091151692889302056102415045892029557845273078477501167920846885253520892040726139482500433522137595295821491532110116780482362146359391090442432679629169647572982404128928065540785595008047416638391246784570453538443378348974765175691163500982210981365459952892766864752691743607476611163084920129455524852208737279811255700421798769525084561753061523918241240473212997191513833353110493235104808611254119524729610746941871781569660943880638405215980936725743171640639818099982230695214962946698920190135059772686977222997358167777610443346487045597049352253435831871420824984067834748224960190683307163535036107159443557857863924887530136642407304252760759456297394259102841351331430769589866582520056377298519547646814757736681192835391088720467845960153571295568852377036960874514998075970439986678846412408576949205119161703428760981948719319398608178786332683259760486062929197603411727729302380938161021676928077429797558316169183032996862937171150222783988895263279487442971572004989687663363192657791005988489679247663753441106999105951185401495217247296027978169074806302450946769089094857848220236125843945366462404563423825105330884244289202381156258458459205613657330164227760772350240123074219875622508166516406222978965273582935556262423636309012407822737983421498768389072894241504132250789251633500899391827381804174560364633313739203618789170120489749544184827259876005563561973146472475915556732823352740604352787094277636435303530941225690359502601062047596554204970827571312492755895596188874273023216162301196437828801412674442696736776271572332556197047447508341265489946698435678831390515579745415073476110324495780639083631819553542361256791962053434428174154635050956686009602842772267091039304509486348712320708983593907571510733330054731684753812474482696501619096399042695972741383889971932704984217633965961092773487721798047152095546960338632069315494121672728243255820782874471365886808551491650452340858929090864700452380760859762695146881424490204821882636142276837659731019846842165429613835244513487817347634263442734009350604078678955417595596648141641543595685961220809864355638782401260688039636555023575574106634326090780031256713042017757400108351849925455792027399557703918272632111056691912887691479166811473140423682078842386088269583229506657650825260750589056413390816982222233664257115072724828009212545996418483838254338434071545420881866154334480441683493369047441603238592682191328838954484284161611842794691612414697749771833028218159939350023479003921758133917737872520787232927383855699166761312445231146759591376303899111088349974856825959434600015144316639015866708963483784400211076735891932415861109506822338976836661021940886827803157434251770252944871474201885427593749839295281538454595082906833762709895757862925669847858955600268753240747314711440487502819675911108952504747785892497544009675049292688317046391702548260383053921513105503978039600992292712970787156286065408990478378821965124002324304996819308259214001047842761436268323396844429940202726114461540318413269863050194427044466960412980753554780928229052806430396654951612003115706388047663654324788846768312422802511618013360815204235763669799985837027860793941045372048383733880936397367015117966242893883316818681892368827579925771381401291930796476387923065234675535086057430949623979340183220271520787236029727224587477096964479452412169735268377836214739820178957058450962352338402048971050023459228649859216495603338145961231552423735856274519023221107903627996493795476535391165399325618367639656647075176900040770551540116385832744553686729508699775791704389907237377176860667984680993746403536673570855165332630893915401951354483821104854672072778296750765743338595511137393986633533737393487488488090091283148949739413037476072745849624994628623316582938012188179637579720372008832734539683672905891190159408424439887551782111779343414233013515356958735025906527149959798908337568631601993940931929250879037132076962503571137652271684368256512543867577891800700597012277802572316981697570555747464329051714379573673295947206478551193502434468455074572550648156204693046325982344083591352823366786534385663578571660196708946144604162258856777184820777872772712866775892241742814836158266357569209566516984177635061257097933313681656236208094770405948961427258971190251457867618957639289308698948619427605996596436727894663915714477493917194838540360261337493557624410732095085748237688319166264510494649847093902674361610303802009054750371845118941809995962437692235722615984017815536985327993495049868935942094470725567963679441252291259359489577573117219064768796622260582990355848944727830033904738500895177654731002802297683098864095751370670621581497801002382017048347828762968955992053255258149491320686515010982294863428158162977902047610815663356161408366087944405752386591153783837449708286495652619011325644064306616297407013899672518036939168632139180524070746815683241297281820139221785161223306318984177654807062463430948408639799904776560536354393229881398546693306451841351038471076644658605218137082793497948148712836739346933672814174122243538409246292390470912174265961475225891644281091244119920036001866704207954338526852508456820640285950829065427483587678346468622739182175948299933085439907433621239756645844429028685291471455663179478845578648867899744566792609588862565477388640820174059763374421581596133706967378375646261123224078898188405368943176214257478389265628170473227306650504991508490200334444614159041387181555831214770182324463954234527532644147867392367940575165627564520641664097076231850611973326500807007272461508690079882788669223706031118077354153432291526502806229143685463525118987198939174258198106909919365548925870854269178545475013714789019271967535162905823949193296512036320622172694613986940490946909931613522817560226302787661232086594842578921312128179359144049049999270227751068785791155536626300021866981786589419370196131202136571683284468476149273880088838865453366352879658135539910239929030565209584514786196665962787879052348221150252105871897160336557519223648600086859158492003717765078814598742391146963870290655434521108153737780204202753004670870854256386674681914531281258051127881182638665700647142855255070823233376507429085448990279218684901937283927184189035803456304187067082449477657272454281704430928561705781540377900389963694072698907686663882624006253789268674880621029012829255068177659088481943024620813582481224444338677975530683485014072413157515233020458743004131419038622845340411171079646582626788369626332834112508119778715442337476715327191700684996937551819702774517759100272980254210155627160361661205699833314366525102253498863206224481032792435047307966797813622934961564847918574501648823528275134278985985250510491295930372601372763905928569039468830119049237168434896251770580437393516951896935545406272042150293390366754746730703599118303382419236133976562618348698025578468865890448770537573532570378444365844105434390128747619961463703800167870061871136944818421892204468720452353349032494537976699953569108955285149629344852103333881621557648393043327153695453242274716604667160189008997348026268640150932632862300393964828920897912930099278238190140716697380905047474959326526967219568331428387838513206389584153185883686567888938437253063308560692630080327630356053033378730304539979821408677990472536484669190897779054915165818781406849779585876374049752843414234841847498179658399453389325907356614363255036604718659605363108037634844271635009831633770006027267101453750119623483989311615886442288534899982089138401658299218539286593677255945800938054064755529721789764381999724820869412696302776820148703923373619860439302695700988657103605354593242438324124720019722772671807557223352938286460147770172357164998935974154297043169707802002454631091192829747145117038176633755798814196432227472321376806168497856471027828281897406931681852267075873343877406491883123014012623228249054455947816842724556901783955535185102869175358804777675898732941542877775222064409186157485600741208680370209310548776030815237637340356377709279389176892281221295073426298126353537695900110446125925936749887332733539764706721969660740291525902589426800611554912199197175364234330344858682907021932060375288778412116822287923532599411356879357869689821705387869516404084459324401528997595340782554679060946615698081146972824329684527467124825173331914352699223245330392479815270297831161534744681177269449248409945312342894916887673780970010534369143556758154063362663858509633288510309811097336428592143992365193370940650039574494480802379155955206524003679109727352389329542689789837258084747897958583047983403577607371506759492075605505041003218268940458346413901881633377229875931034145307259966524196115984875358501955767077004913251623258606036765016862677433041609179632151337972082802751204144830320204198395413620005433329470024587125876330854684210840054528790077945386984768711732840520800986974791930423148507073081381328426279482461570642128677586451420938673205647558218397123400430509268655870371162681105230047294585633820495633932853197400848414835856645518669418073817065043733382233265410516041186942801382395641038534810567607017174094580642866668157403891761234467482667050674291027429533946757377116443789491919491808499937004634786488599508243911107062233821843537937585145664758425547297766631701176177954876299595593431987038206074898347501168041829359524306878761900098996868086939691650800532868287679408701561708271041944228915821195025103293376008869500978086690924419525402816982205760669194049284529214225338604406760565044091103506934753052561935289833875526978764232827731164495126139710867543852692038436375160331342045908040453344019921111178292362914424675924238490780944551161136252270535095618476306227000764638504144314681060256400666446146068937693402060238804588999287574115466427451086880577506564043074523986245379495929778051359683865904879514609741660008039143916678173198330708486340565522033989213052229419148731430167542483546760792492079476731726611636205610345876979143915174031312739078127426434935306728994770621992640167658580697624936244399042770100743052763685518502031327257686270023278481957712043954791572101696189937771631138569004642296197155973768989578737286700159308568391407973726529687822808631316379398088896476720914134650057074064191243186236566736196526670156304293570929490421708118923025358538121768626727810476289171864168152549887775517527499780365737280346164042942632853517965037933196256924589929044499867078486385354321393800826677006481680595628270970153019100840705708702692271923578622065016170772197486495439382211124038879738310602779564714533315911798868216286321856091434225962582590215885210371971844016518668345058678455134595087496446062732705030291118622683427768188694432069861181981806335866296474729612207636066727639553816061221079881591951764035662491880500829259557638514993669256075045631882919369163363544482257561815582284275250674018396187533915417559672095273386948128730553090431725775832124376869626661422758710895826492761579648973865305828176991982094486228710342551210367152038640211541783112798723887708525891360730726377433269578538910119767571019717874948370008037821164406767376232330040820785911053250198652028869471245187435886172262729102990054769551380026507324003200083608452663957109461231580143253246497337930201191971423144520733656930274058628689687746779459867983029060447756508473036528898349873323697483303368293852884744504406821107643954811878038878697090310199437490763094085929652019490116617406056740996299283137915104949721209578740895525967315125641800637741541265892781647924779448590186916517542275369132156972906675350092137170348917418403355067676152928224414631729968926800973862587093320371137571100012743952956660095370482315890551593629466222008500956865235995329942096228575816254410914948989959204105013409940197421791932534591494419541317975160424884842292118099074187578126923195701704850397280408111711263583530046709767904602426675487550333345310879785128459951125193324852009999817104089433394088133519066142529456362138473266603632701369860077001776327388394174971073283996222101000250234705580298690975148731381904347624872713792013478906768448497028399669307018235765390111279849043490149217293663493360631571440786190774720131439372875503209410568998648782948120027235532823845433997515620653211227612260895526651425737383338592863611591660188443723063701011330112455642352836663581097853467460402475592327176589444457132348823694729324622624046179211151441613950010313779409797106355455300016727030647225060403891371319538996336991671331848097440194481765992242824161895453764547022575612317692751924159726422966605322565546158723288717481881211234862767458308119722207703586470119345383442191429796089306414949257543140399805220174455904480196375953020481083094880153602602258187014211245408763530377345095107486187382539710579518093167616990856438663859247236543656803314032176020208928431315391413358376125236733449833191878703659689278496585146529040001814775442550398945987953405191500304028861336339509433484262435530284566114337403845801027607360996491666791622219656090476594619889593452122028612110551674964730902196894768001976095136111239944806248279019650507813120504473419348194521401563636777984540889250964908515870830796885566257309679766524347316313984496591571460992957823580319764853548938407375167022852827114591956236354606114570525182677155219873888858112776981448726637653819852377082314532874167620872459008658138387865733828119065366064426435091690295805720213564610082490671631032748396666485175005135694117817753897211316740141647871869820436772814809039782823538891938100785337801073655279230796742976723936962429616064110214384270506944631911106462539063674978481095625095970324608608250445066435097549706237698911326116141993234668268453267594563502228573240669596456965386146463389313254815964274075035420613988178770352890758796875749698507284642461176277807179551593113366445165109659964606317843738968929834293591202353560136853490125701644205453393565478397763856073419326644414761140633536311767260439529501092951496903529356905863939410430017256992414341857871005013664900670229074621439140060370011400996230325378368513288268200012220888218089977366342247800592495875913508266665929984964278467167169143269595051869047743290551320559254871019646854749019640416055613469229808245562850266522918270529725553204132570092569211657311115392668542913207028788484000165345754838400775895196008584923957501671854111125316726393289229091557861005811495219991042713750866257546109188605787125768438016831754976540176953774816733667015504728396565501966015962288562683252584650359416933102679975889768513568577198717068432051750665489466247032073954044071247575843929510059260032208641093248096204522240780783530292915644300771682869195402106554601261723913233206900773758891838210105483316816648107525411335365752359659110727990496433756567335230773963264849116741309551303192742715111274962757433100984927735051330338344362421094439757550152153926719442855146102341335346557605422553356438542733948239867060109098268935976988493305401552122699313948917749318742350687854360304182300336345309601327749671278512848654600658810753383636725939952453594285005471876470558489313300178086487842712162533274085779473369555997579195446175203732241630723167844002529834500080602051431986552438643582675034943047387172371892185261513867217830678127688304230663705374779484830482292358825925526209873510667779556106238984212255310257456450672196378396741022221229796182133440296924090231775247692700632761287662528033425434372152532799484949677252546295062374375699014639723942893283370940096635334499380092242404562555520507385892234609702820916479034065656652130985728041620143822421902879457794749912446663608486197195210491586835839430399973532689607229897128733899027945987511736154286245378527612508155210546232114198206282097333991897338824250791593468055444363888443070640063614547770172421848469656239736981648898072845558654805583410149157961466379182659838583686457308590769102102109765461450985511281684842340443063713056027860544230345234112296521556606975151064830169028482826842435137497122252461313436496212225666514563315462332193469494992178279674011476033378022777559508631236199600051183045959880981690873830793294843793511524971497513350057387455007883617341562723115229800714710266900335585086313218739540307978272126162239565786684627321490212398654820266143599886888850851977107194868718048928747598421546554383147265303039909498543285718212131047760299696206266315875475291688849265212749943885708713559558193337003938295721487000903616373865928549230959019971064370903421456233410674458294129522179949658816025051174927242294434673992520546253876995110412239439583561724824429946191055417109978225759971945915442462253802406240590832461077658049524134843753837601278755572919205744870358781615968288426472679126502903585678297488990054746745770812971164597041424955570170594233857949911847076038552728417775412915559817833334072183225589703428865827429928187744689737491042420067986353289188813178438939363506368756665832603903969770147617011445164746524378612492983534250320267075517054616460396932798207164029270884185085482397058274339911433620608787836385026456665049957205225958785758905615346285325558377809715487982271506107713429165578289802562823087621804381314435152971175968646150763610776263967165779685472082597855897379284151682218205108134771248720889778377733143964086029557542827641455772153639835721594992526691768678523897921841958135375301941465733520858453980117287864860009195655526389464982622779369391304689555077221337908288610022350828192100125933809786096274211583183292451353817356570807247795435003436257182601725138438396041393315564700191771014742562810572109837104119026576261276243056789824578453896920462272416805465477928581911768867563582113292915257761103802494288808821393870219846403298113653575915776224852061168643765152409560818104286034588696643571007767892017707065959636960531381348289048425269704770557176603538525021831147723926892679185662449048258294583549604462827325591846835221081817554392116049685209996216264466381005764019943801887691879257383006196775906002289331381024443842682042233297104378732009436874466479523901179894471713686964403292639428457771732044892125465558253056437582370122373737023857216384954538834480211355984629702591405061916814905878706231733480500818559535637279072260682527420220421591225263185066509670286336846959683355986580109096546973807250543880310892659825708599109194219440393148033798787464808017964089063857265982572858206387386154222861160498547001590436718299643585823372689889012415462634841764287425351167769854005370297793703279436382619549286605461901791335142578748898097133380936707258568334753696693755497159706689609274700808648730091072000664654517777875779166750454982179104835794066125409459460279557474529784355592908276450499724531665529839201527118803411239691849420887280499558177275401589136358173631711963492544179583124704875868584024495859294574460341742609120473834201911139303764583717922578847029965605544998665058980023094651324439805737368582428709662351626137758628134936259342469936853129763570102953175817400468274554448698916757525328580835466759804416250455560942454244624127413155423973556753663212498171657636808428736780098674026287550779611981337898240940406955113208457577559618856595023766370664327821767691111257594978842941148452819999102344605886048042789731923839382373735268867795338385461284353064801807061794661040856305081360946038211692812027468209286318440890549552553076974138632615459394909846827430578290476500426713101685981620883837139727268601463329559777480846789455900969689358404695812252667014178709165101018862302145554698657276042154837206190364707273078250024162114491601859164494118646076671415453171899379111831338660031134864635413949298497975407738238493048516732625213827463652363723562018711991348905130242544626974835101889348130971111797107442632290122241315735113150087642894796426997273718816868895582574382554043925318603930718061346917266280380051882456040820033915602717325906055858472346747156654566931107867574568721210759765684092935215282548682899705588351227593677546743845516333300410199099609569724799190421101000475226898726738988982659683859673778622590032770854738694382108936493632780260077476358954940843724986153385640682204357610592576086710876687049439681610175878351711473302675724524207463036677789315117281448346767325672219702082461280241746868742806635438748315155125471906351576762686883328852912582733673042995598311643822251053622452064094586428260665414830147723404766445451049556219323126498966742964462526978395265978430676449374311286629911722221641559942978913951731941640428283130713212878542016949975587684204034905579802648432428943291062781468865733310326168221464206284293353346098816813889623881783858035950168514796964604029327203767860871372548296064102863200722399585203686154804607205425724614002638040959764064731697695222018292287713319051288248491235652689339806485527406528188964158401920236190172160383573593356890200882690299165049705587973940988249013191754128424915877272346057387797311651608775976394621295725151735712209884323862223004589541266769929146278660526628933092198254138490266950619887537645899720202640680448090555266391762226492120814594713098494164951064884308113715874256339815218854852119797423501539119998265459439898536442327163093083088480508353326609414155140598241363234703102449619969284943915688714162472877779497252793315885091633763964662007315306637228813995683540727180285196618977804169195173727277574141752892145349729081259864336150395214475076102392668738527661492522453930166845580567561028379669220588282419670298743003225880514599675751692565274850657256817907278498960798828212114392739732114217908783184569200567196364392746629179561347582231988820059389022791413017787325836857101273398048132653246993392935768911644778767733927776752845437594606631690550105223042592580738721410021168929938598170761548693008493738040539877052514185169781481231857932857637186717826716220041441974560921607774131743226176948552017212136353656659771243700215384498737879407651626990236293775073284973675440172010976904898108647208149511082768611852404093698335867340064759271130683201166617088523409129939748847310417070788018032062583747724122378263573707899726204620477557106664317712672128418085945583438682155326511174688909155467460351499506163230023544559590030208807845795940477342488493302062545991755298015692180538781533782408605847140468753680379316995856255399414257695475397254378347346758927393276354742937706266752028701215334637868015661677724625992893645811509606457183906248348326993330200904954664022708658500958786061349338293116570736210615726255061206927353226169530615496678393708617757952382237977165016782278608381316038670523713472508848709214502595904884589570646079574423278191851680268210681224125226945257681988781242247953269785951758698050182870460785097087372274703924759036386532373931562942961471150017723998235566218802831467518261544536662919040002808197640760443606888353148476010814531581929310309222932657501086050975253072405021849254285734665818647054550732335589117547084889506358010964915678147809228650379508500992173966525324287869462236521508006399356196207167292550895749599996228323015916188589316634324861308605048382949577509626629134887156872362426258939465108823569312365456115129134920914665785367681604156516895422973298517901237181524565149157841316509068283080216296648355258328391234867200388975979390915015350219999816630419379783483205535107926731680088332334818625898311478894562273850761262966030071605420077815170247685579198917361897318794704858894065674626904088171513089216418080008387031840692527794932348061011767535412925702163764364239513134536066152491243522425288705466293878793331652134441995217397114939224957936721182402996821443759483812628653728804171522692764763651912097929038953586653030747052161305835021245880048846374685078260427661260142143173096952339072519309028829839297798079473980033173636493705837313937507578401306673687024105861393824717509133816055312943860083054168853571090893212071154373335468847523498406023359543350880226697489604832826142998889176266131247428174456131273256929638401554703439930392443007725331202524723469571962510201874563612545609175595268849888962553746228821683770515001603641426942805058889384849240792654919169790571682498249215385953227284735901223335229585052125596519494982933195626814827029610375292306926413435700657587324477766090653509425873534453090866367228695435497678215860478049310929371445214680766439256214596717672339800827336172199783006885151619570268845839169380411417719112547278779397066905779023185941475647300883194400158505364455329223476717670962443407716636978344867115510187028849081281125317136723023129058086978341302321908976651482304772168156126905096695457649524141903003718610409548128130107513013877899059417294965168089133128594873239374386724371835379044643239635317883424806612284153943968011868603623663250406223863095592446368166260788427378413152355585232497855739321704455615841564711093054789793276271038858340910190688478781174054927689198912783160680715821089074353102721371924100872877493515934833475261630536025815018712098909968687636398343889452207105145661965284897260752009395107552636742217135654115651576084549015841650145424382130507525914428346792207405857149831930367217586422966615642317973504336537264407925662357027438755252498317043169140183578313321144412230326062769450405707650968722662552006738084560319503242927409762708834692986628268412758359082949686682996086901712405060799177892551972347645412562302875896572040492856816971108856238535441823994961228494665839069358017661123338905151605980669461410429483089889240831947048961147634421080136842094034538943420520412637859806752525608236180820826390217734301765593350529166314550654749132088473251169464833090242904003412377655701882671979307606391081766633319010666828956320202950308875404970728442691303301146343032323332559143478410909479916641854956192374905336143458113118544453171409474585903772837888938072775874841339963389916403712512340468805425241180874831446113546110932709893463228108517787643565995466295325129853125152110301510853559290557260688398335119441839800487540583743809309483415704860302151296559183051500161232658472737329250512163057743881135373216855639335797582371321607235861287253809822374281368047789590776714274954403801632043193891967197910053919558128576434181733609248956540166898950759317491624174581923615012253099796207797935607227097732302718429613272566199184899338917165557876542147831464866141090708859722690316090338081117883738530619528507825756133368368144412361424805940309973018807914165162536367295736454907296290159568657211692565639165878974728540984835248794639786761750870975721427271077458166229874919995134945350060722596679053826262186863734882589011487013207590548743322078384686519474196410209699520241996620475525067893631441415236004968004176383144199173241685748200998825092228679866594796569002367429999544556777338129709773359938765858086480736968437770367431917077276940935171307547341640223870426114920952986756276614751607752397865892053779310703405979012312355046891253472628280492331475004421683752508159073143413993244859175848023648015779841434231991713317788305268876323294082341053084050466437436509213449062786338936985150738050748952969438237460050587609595294681236541019264175899469965114878610615083070920964671510489231558807287136148696981383515132064618184628179119768992554737482971925340067106406272040772007223190479813054330299971630375216502157650690490215787282571724301301602087650870488790239283523506123080063866790291810819054956917180617783400261195240677692774323360312457784327937019292164639232660868602467981226258124020709669513511474032074793656645829878000064081853993894299903752166785635460530878477585325231565690950246216000511628222741141657125607033240070490865100052477844703910861056974472455274986628627160107493348458431720867783128467119107687722993064300638762990292348430188061381593819763486409166174550856986475202505486041231047762803609325184476584901797179765484797609106459800645172318708374820457162514164395818426346439417216393719923199830064900474505073472636276955058674486906896357707197996874438393512197513950612034156737002729132700426482470797180530085182467750123301579002444835674506431006240505563196818066941781327780354470128113401366326292946910306151345604141974773564686921852777969263138550936553898088747855113389629815357667314240677140754758831298577401754080508073767639870670920889756965166998952312757121072928491293448134889741878307378069201719303224970380694272983402661297543213062333516151151076980292845151907734969252620184259957573757417376022309215402553414521348888504800098593641666705387400879321911262209709383289994460754903657094517750415717999690190353127685433450654952256316905926847214503721043762911904405638683381373023891856806701942268574867148870270176839594977166239466579350469657930025787819675368178786677692940001154411057495031730911112168126711456961928712270633412295638622840359814855587567930865477565683336271634796950493508040625241512530078820891449020073615812688344963551690961277407362025017415668218434946199062466832924777679101084444114755998970937605858878186752811709012139406514583496199426135999212570200601538679078559786482169980358159065123531366299406347701906668091264786001143838497060783266563657254353872884297375181673577106575325368826649224461021165908107596382039497894417994244850980034505037773756489882777728604414204165426710656776626456647172327895994365195283085273840100690226843809009636315527030121132923785265050571129434149905366583226550956713416586290535679643589273434968974999491121999651782253744250997618011529924808765602422136265204300188428179050928814940857649466273948059478475330953983451719911480385748023658861660006341075535701484394761292058278433331916670022475464615977062651763105585475670748525652416862532576332376982871237405113661230028453341610966090783042564315404627724941722015561890987566338161610002536059353396217139256647064693302365911660187675149802368678800351297991841652951388461212272838808124426663567610029302068728387274957184866922571387248373124363186177796866213700910545003930978201337020990195234569766980221149681372450597163739585299805933648925436456930174803784542612033546458988589700410936520829279694251382451949651389924851893096618619362403684280267866134452384431828616470649121533980638773916677253365510576340081829797815175720752620900936912473185947336245447698672886926604968005663307174810289649119209425304983757140119666059664595855858495865187730525196192709375111311524386157972582331578327367782283430817551302775591773835205948922150930658003554067233237985162732639239171296651063218101490075756988574987199772743663111829503940902810229977058975303735494216167465697525193075325720677418720238450595207925933704329373500237862628058005066482907413278708968625195209853678946740554343242697969228786315899917659843409695646490847120454661714609164287636621595963286789877598189067076006273234838125133960041996977172546765424413455262272896654674687652751784145257802650778543190449300443024783140035378044244050081707369928031647633121971837204353687372947567241072416922428634043429970735131362924302690656965136842366640534330634202251958022483201081901982012251604522866741574010116001362740539872391367614316164401611949418151596584600129651896291895588035227087745254426451519482330483076697435262247572262977877759351532268510302399983206705584200250065239137966797723202810956648307675261208312181895981434755624788549603333065121277357636455230588925764134556363254480020741841472460628271003304685050396278130817460703485241491574083125377651267725668412369419871595759190466554053995551665955736274887657068983391942621787743471086669885123528606767595383186651494689281714496940787833539157716077039948739548637149980966522530486956959215192618596318250485853952973118054835852533549411266660959100251643826128727541670321783279932238587729275131716958079006009380489266830175966497556541010081608919412365808075772637412952110628028506188677320586163192582347694520543261602510539810092843783064086223339867614352661147601908866824814026915819510086318391950857342479938946210293011426501657979751497075455280015810687125319019936965247557007687170952914436036116028608150126152413722169247946140510244303803261617918522954134145087402937577312680062349903896951314099379042266091687009957235178817032533358535039871987290784963762179417418340911979117544135300569990258738799285106055874830109870432366078275104180916072695897471578200515149081081510530555835872984414993434684803111930263842057394392998722671274749342780734893272466204045182163291556253574556314010521622419543837394944037256901717708545465199587503681088229284628041752992288931266830065794141127186543026627260882355654558923419372572051639878957873089071796491538077934826014924626571471124068268665407124825279047919677779616407889442152215228151017320277624866722335318207133954185593008487070936336958682089682345474938099268375511745901177083561205448121224209504195322799824208043825500821277215071220362574634563194532271026317562414891043308255536534948293314106296265283104539674248293265574083270299197938536013129752394565163023724409985234518777541710502217122651232119880778545798999109812076334741145296489625925676855835692096046748857624877101812087540684833072654951884471978478026962388592988594405541901692459881143030078410237301620269895383579230798329452213127671667428012122696829709000237649070941199126961637854684983613097882870705515255402265240602528895812979457021587844134516008863826284993787336384587224089469192555991435736152730118996459810828995321353679319771338022242775647470739685232261038546179361344594302567131491084973358337153066839954862826610871182258416202214164307441646862272401303817477966864515836397654601236176621703394580595313150066892124963615566038289382975299514055499544090467247762417670806876081268345027161487556907473233486326964159728266809647691470909447745478863789119673332086121713243812661262048357493608781408420421359283721279907033640723578789159321187996710813734495075871407720048505668452292738543567613476917466046407492533292267144650345860056387066446276187902462367670354083395279436469472272627790674034142938215250360035458039157420663240778200180345778637630848854096390175013958838819856900187722080616082125742519010768154208958670793779073311491352209379251444231963422013252901572342068524295579995738320585278306903608129054196990847430507521993049958894112233213770501699332712298324359078596383983745628170502501412069587947575614372844081964727961606865555773422426238845594903512325911522180565337907063565367263108352636960598413328448124463457673810842920605860877559364639044818876190860762892700455500816977961013516370333772386449191269061116625381244557455866228802855241944387100733967371775989614570716598710226603295384708677192580940590448448800058919319430490320254770358756145697283658291512530784728255810419923629817664046429592319115716679441111507655581421085211669240403548702456835576000490411074335359181254797309861670940598157020461010797709631817849605227737160467577756721828050834045069754340410723001530718568052033526076579915230774614478957404755636493086978092693954966646199251077369035681314112887749608266047236478043290309603326632543524248917900990783714801874882349533265398646033983177741791366563145512365480616896047653203277512953702029422812492470502746747075360543339228114610065711404047108464833829960991723919068109168450648247441426550512315483285324589817241136676535021883462709676879381825492283668720420434597906320379569252598351876684243406771153256444553199106835691909381329910984147691853332382997975176947961532798842868182989068574314868999456124832656978402849222115351548143467648251206633589780416573727260916227982180843936237562737109683200002561512777098390612606469186937929824908113525823876200211513549230614515191172932761247570238199405951884361895388572745758322316595127526981028256866554631924945928154497922196137908489881021139957916922102538169676938995639278618627430009272645619647748390689343810831371661646305136887894364269676875559625342150355062061767161795923554768749602812579833386296261797941125868662103952660728378305084827379771570246223392185500294615315198584296717113425650117275363634363365759805462375699608797656599938355226400925215904881694507643903828285724369434591121077968869096417188524183288900027862497363359570562993623584524520159145572865832870523174578462487919192798595365981706646047487581648364283574560883846337455341122298842824605177696530395649997185831246651227759179935786557591659802909817391242013347165456207215043049875052987112669901816395295845126206866045972238356428678668453292432741251608210492290259505675104537122865738767712259631875206340974734338988013293477792246386786684912637988606533464156603380286300688449240118941710961119873426150452841921414374645561254874161797761281425364733604520475504760787682788778382020522556387612618003009476631979827914988091415656753035516518502964881344972351260156989281712411167116380166972192057853246343870847648662221731588975432174565647695489664552628878541581726788558782112010835154604047393485220331330660111788006430532593749710897931513571935781859181671493498950738969373815436547679958656987758525843157645725775127956453439546201320048092653255811056978883569764729636922961600022420617587323223343494651270989017433993135307188614791195423020607589809615528654366649577383264544594905614301227295654126765586547810772424818974492981472847734372914823797255379562655831001410203440738977725806401250768906825707979747592551342529204136669084361325647661022504337414379268868347325439540104041621645547727404431621286461496545880105247693870390334875700262658703725029115941866560031786185330494473186290580120455111685383153490200126527068294172432375464570644241802047338573304441781343648658069461109262520246494339304975919571941116386669870628080762236917373365140439316954990573722213249171024548393971793721835251757812395082050842891455821471749724391343350354367996618648372302093907872145249478076694305810698952612851743372320565992321287997077827635858457667842204499087083159627648391898066398460289306563440900879406566321011298602946617770346233458953363129001704368707103572890072310860258192308787716059152483277103375999474389776829306219055121595216486389947901816425168264238536251501774837953394705231670403015461702530306682103038137768706658543103681841537707620323017257496992719745230412742095393729078186449727976490639210049914524936233013269826063490780863569808545689468793912402333695856507825124932565608815629882454078543115923411307997421356354716085109423219332529811583530817778618525491249509144133372162012801261888802242651066539158493560237522336363120078775396246824393720449190563759500137419207319052610181446513357595586220710162857606334133619992376483348409761305477795189736506083627333587296550254216043077691924396022831300982982924653012106821367585991127038581391710398853761097175466129576016116536473483672519469924238702898358525125757856431928744438896468947007081676945698918816483315028090051090992822787040005864456849662026511745034145939877430018474886079117964099821753180621633267822662371750945633321484804951126647455787807807113932755468623181489219291006235950366302609155200292274064420627182207023683153239227568453208106409105170553419036923635428010016877249911434890485621496585745046534734783445851925980100541173670245574803133064708181957174441922710705221577390279450170145075651614209002613598756366024598832870207244292713622496160739218496017408612522842386295681056571731481644050264789546762999723571240903543391265862187960492123993393968744205599719413692712074331254533225488055795074063478542036228542116111369165849872097131503230821632392836467063230737463735224340277597371328337816005499839067768149567209815947727215409844720474767627306414981352796293604868927585125498862887016043591067752507152982503707878502219637275292731199215567698522882510974103290954305485804500351824155670773978342272341454447555255648367224726541755247834012273662395876165144489412523688847688658262471363326733677910558589996972105622437922079685998595258229172046983511214803354869245668306050739835420780273656881805155793379495883042148070134145769000812029810414880911522720169393421204168538891776099396296932938032080722270139420432193412654097977972613701646937015940094518170530554513035060167632559683396249109352950939880346369719066285238605450594295923948332841436930436269889724077865207607070250039209575490387051157596412242273439049716241545011232807498567257105294267300042316673801748587592318777641872085150156949420960593152583691461028280001367637194723399523057950030685448906352010969013999890657769164542383205982855493052735249332539168926898890041309949707727148547250298248057239606103527834982665940014610974576466183171043748987697992125090685153843759956011300332216007719444950715482387571595449616414080960622705201942677167011757803225867649614111162023920017452785549197084156054594549232389990915259371584419053073784850347753094141985913648430329862016364823194492329903187486227678132801358161530285997444746858003855053141082352591893897102649644891422214286973812934522348614636751805494777644801774315551234451395453895812706270976570062352894688639039958114686150510432552890789037895290122875991807514361164564890417902572321118161285139550143670071062731299448291462341451270358232300442804550532903928403988695367438292084438107052333887893777592505788661508012277533182644344373857690426928944541316580640611841759848585325637008748625205207254519009612993087461051610731643769594650001006778211906584184260111231455482895847906827635707325906039818998057698060775445528321375378127580742479712178183141049069007362027403115842519405861533210373922245395013979035020713117964688834812884372028383447970575865722991132706670562033695655345724308994477693267619134340713610511640610500442147047952781058079124198671853208316209600975476632537361517307638448188554996149587923435905258706409388218341012753643374364817277868457306196273956453082916133129013288380159403886325880234082587046524417148098836943385735772881730744220967223504718320601596202066650371153049254395202883874151024253349416707570253111388505628069461105361170906226110202304353132016395575947611065240629954388204236182480385078310106559987325994265403730670265120426032993618151479974475296049787921519279638745283655421764546884581829335033766113694489063228110538238782576345482778501706980047352428485054547001389069581317489206394580721101638617708930274557027203303414176443996195839611026166804666167899527658571264417187727801039915968867729731366407671075748293096551784885188067805837866429798363566303747423364215788188314560605617871731787671917178222974181391733553330057624596777426029075323886402385394658533476884969121262364943791785933179172235777468875463461303631834464224165589759831289667376978049417178443842365877193952410588370188315160453643660749105030311616464853525579546663737416469943966921551910100273966264087971820176702198401203665006578106280829083469577338434553845908502499387992081739706882513447238478502378286371503451764701451988669404681123609062729885923736778160135854128758816354305980553760056628650938317108998947275472625655379075582446631702632579780340244021470221794177458936747738760920347103270623041333456689930539407190407166973975152254932609876046047997685511146621989811648422623012443324461923785493680467503341125570721054014853623382196041038727093736652038799678018559065694698585710724144036989777365086821257110577396608995564088235615265123561219721467856612543790571434924877192571700382486956130442287210574190720826647246031868296173245806987462620185876182231046856040606385177337366724428691870832559212258033310668519486302068309391434610111222205478601645679267133407583561994958336720338827547883680636580068864755175499563251350641171135432396377084436498842560565156300055965714278658792071353528964651746656440283962978910206995774831610402066606071726513692718617757269241919857728643940951588228224795815196354472677289073352281376581882098465087065529806927384558981303487621858873402388104223692997098202128565183008659604189481798566378466263311767941436731116282364619211703172676474184650058254166291871052135201106869989153963766311936161239879608715445408081568722931523633486623343126720712184090616257207259531980513386613478654681755904670245916094762400507924188799922217175060304655845505246455657658831846281184628042007955529364230739498117304554820869285114729953052737997896076257057178229167918406478051092069993295488923557442804257026556984389680250655508723014883655154090576280360204629463147385826556437003507756903279717283813533133722853520120354276748168188454986903844409972802271794332556985088463485193071550998260899727310894727177031984489083604778713830372807872460414549755695195138057138599621618353895749512169912007271578927858844198260124528020123019770740554909132759772472075318730484113593267519374076052566226915627080346447741787493245624377457272907517525112610429567369419434316327323131687141058072886929518076315121075571916339211981396167387367493636881199204838398732002644642030533871461166284308022159908605183203647974386773288151492212762366054008453888200715772039976309963117907441705771912616087883020567787608012049532624169435259585085433373244703340097739060746765365534362059499359366063167814631919239324604683932390619926487996943789754993980205258416103358918804191504136792148733638003786992055568986382950342118937272510484257492857526643852503863244704332049983084794921622080629219209975703257857236925222783991809692489938674448484446312302871034926110473185638015156781248887396765740444772800220620381810082197151710446002758599561032755973101713352585993443479432970277608875866373981916714063203766079980981430318625047014463804276192549640532559455316875684337667798775964591538432268327913744101391362222671073786173309998640315848868612748349410486153671404843863378029658573750366625726613121310057019336661986847171487232914066834593641889286909224383683526603817810751035833047712061924792813982933271153070375360957688274356126671398172591538831419882600321635975733598164004516228446615353410856521446266709643338956578761531216375196202356388000498725886330896818847653708525105836926121798035385744901724154985795528239886135900515362153426147597021413129570853758007115572382303514162454930034781704256504332521594278368524155674011721177022507677865756939463251244080428726494487839869043004320851639774183831676554841938668485990859818198227220190119581754979643891124379236570535038683092713193621675574258464406378295431407769605600540573925851665268075895793571918659162645872006058109831069212609949463801313432631101639746118647970324872428374932088341877048988056888944005744138607155824270201073414084350258592385198848014577620762274036093116898601679638274985210851240303009592459281597570388084039444470650087805934847082734281317960592539526309216584972773466321603963682483781326551974401894777735437875699036743258310996428878877023247167457126644456164911649603578493447859575149627706987282576092994879427959283292071317799435050191915243259573828011073838044937385901718069774167337427252735090559068929148415896938118923077425822528448318731812928945982040826574891314167082265941693170641648256456270973041255271656577282776930342494488065389785477504332034782508035698050716704491333856998442451926827996511292628988582596247600642578103124050273856596083655276630920637664993902359733186848193134568529345682385208993251746766267713152872985110279230399460983420560182693463102416629336378909557236627363538715577625411323124376644394467447529347812504454970892793286108587903767396192877512232204153927192218441276064028556540122479626677759441223132580678061855888946815595550539958634085519049746185292934981095681353489458045065219564295595751426654953036049233257755050611371231871517493534136260297820212757418529736765844798392680438982819317599916184538756846677431403666300083742022271933044904117592953807622571891552322089373975974236781601271622947415884909922543314821626133870828994275286505334875312361312467943337706061238208354750296925234406823943864372021172007274912618711209684445593091656661575122570928443822808982100817591014318110230684117553934437030236219705833351206684102043042893056131964089179744917590516900481167603767815066590094049419496867280987914180535264465546848816556736551857037633506607464095903765520933263243606347878622895422460367735196769668862189583086450505339499778101779686186568567391222984504807052341083312186538722161566179083357100864229187264895205130038372201529816587910660109944579636705749591486160487119896937387014288191472090827344841187765106736629606706676023641775939327050767962017507954976883652681464007693088922621682894955280923481250504870595841360985271201154909451363143490230751548674933962014419547096089607288537623082377958188455645904775503252082084450675210148914002132041949748322635345094063048634604592689056455221931301033141362302372335292419466562118084501389954543778900890743025021226007623234052272614856714319885202614233669557271665002390368601737500325908061989665969864910187684693947012606915763084210232095692330687631957831353138234370237200072580033614532694739627070871144598946546633119540599733045682963465032664352292756427863019826479331465948556010747692594673915151524941181773569585449585048817177927764598456372305502941492732662852754537643631104124165244558818324946600719235470877014518047417724469592434151264654224722654338864064459832167646237650775060898935398084548687128803262816536530634493640508564500508042070193063358478438956001591099832869113015305846762721899252150645440475132206263609088766796396363244502006395774304692459849014710416963996636134423661094647988989633262396430215395376436865565060269099322815962978085812898808396683327460033109077671421834867394956339293599032394247138226671406374510505755126768564857351526030382339885511020389260326504311384197661800128288779626313602311577335705088506251757961539765885059887797560757529295331768233828767352545384297163321261239357466450597097932542311591503741647092856448315529638291239483256703937714149791257507775089679828628371511813696042909424900957860251392192062215197423417685567165258635004897691417196495687007148152346232765902089170262365589576840393666192035416002462688434898386868769772422685658445323404896632270014853593889968736321433710659251879606180809401962299633525734341667227501230486307249673632976123868126974968470096666855719501351000308371984062801393612759066841281487712054475890208681001874952169574293420208683278612890883850173898950535775880447714129927123610265389635454744830082643284378640791877006267928404312972414108833623835505908847388805858388029689809111832262479350334622614076746674119836869493675313771391055526773345426658323582537942720196804134401244437738515049802032683916943274064728604008309427370217181191090216572774830208821988343070690154476424211195349271772662677541776028766214096596247361703185537065735516636350026454294552606394390096300558490416887389350122248552658437135407833239387949255800671190264010434024252177279014022487871297638807887410865516045841790298300421271072720450379261287185045583730051150863739392696836956924460801519664651517736622669856407718589208361438086565327699741538222680138863723772391577147349196546342300177590471973214465378327363840556701216712615592594820454001919657113204587283528286101100712001154561086103172750704629107452218631664983226240258918735216547068815187878444915247275806527487573816801196324329735990320272922497332000117227718806558136958384295924540867609820238640706983028364250451623793932580575561345513719442038450780081551707321114340270252807050429497680004868237798601130000239644111503986543632059811267590643882446344244534009653247616730138746081966931106582789154332764870114212958587695595867173796869784148541490678877066607426653847451015027080653305548136986525526065105178080608526177942025554841480314148994296164148087429743596981208577753183320445763856124360435025202120565437509866202642925311658146958928961696474399559865535403744539690991870222298146662242678790736514542498971663230365414729787390598341938489773744574314921498741892596075858574989646609656570209327395298718984052344022700547633532989235454905787913073473449471938194166009195917537135382321570834671533950010610790580164518613692228914526797711540139868787622729736191457861569623190937615749032400722513235197419284428333335233319188985646264125284101258451474431901534570829843828532371074055482466235480963128185994687453684812943591730655702912697669689756148989121951393384220385139299830721671489494864654718458170984157451259258506953919666243721391953686577511379677125995094393963283942730358149238583470327579501401298661780969884268503226194796965723784664088264005066373793489506507874955855725565576410360536577357953590885808813675428154330831792237775612061703920055028527844011325899743174343899122803518766807026940657682728608072030559217742500079356983360561986384198797671270767020903086436890670683147668536812060607705603416230575967059716171763334002091148694463820494523611211486464392838862053051074199792940997533510572632888410800184212801574018515796340378958756830668980938557895090498210904691937923334512636389586107303259787379913321808980477483279827590313351665364683677824028513284618179172262149624831354459851370276228556643155504060292761457247864125415248475763993767977835938736258636079280912118810115208678006971705032597400576755952094539420797423258983524457783828903403226056316473389839100064819662004192232612115970528940957212378453991128480157533245819993907726651628125526328183322262093901246343941517650174754263019517609685333632678517936292319605516700044625713897715570254271353896346932408211721633829697636375876854056496289709263340216890094476939295453154525004977733530805831112020166031697731380668589375131138299056428154537758532473913598131919565758980843652432993526616113858713739675356357224024334419704710190599302837167153197130454224004060884088906729826964339969580334826334795660507498367652363839184207028189111311985017113823362701370687440549618240140302254561669197142308443699671959034521039221905534851957687563413858953241880961229348151803914191434814605992700542789732901183040210994421086642605434346880274806308374375246132305488597361960106404464908443172376918171032386023100194663071843354008335646019175583087036133695880249199934484590738836313804673197826848462133181186166481679569190829746021820083949143257562646748359184506809975083627064578476568327263281761428779330221570401566979646225393306205563703011194448532399626599124160583682221603185357872700679488607807147026926178428408085934707295398157601242672475984027886576098878430335918575609277647484777070838815994856548278875475672098957210600450639656305900383282543914246812024590753189561991499773143896837275968745113431924084103983821347080114716285190361699899774810259895355472640274987846445796472707880065137904421409508234689681170705850160625430004670040892452991669924766777055334163131923195343658696595158088352672545394254459692783114432084822967929776730542590097077220629189104506460687493052529480949775237461041255430733361611610983622074272755422390604982812428054994927474609367208743442148094823371254912215705681009733241095081622411500628088575525110565840532683790216967209718059369856441738371926435458174569688445537577814985436549744982475082717065227646150523350179665860820426231151256329330449431806828485087745944897170268236993202030229891577711653987891075811509145494055228368596022840375290126780041786019868404170856616904396085989844027095685344396280768622498477791494152883468153049996397921344136185578667168616670209682827051192173307561926163221456174013351699099999330360940778590490055051608735866583090917711191506203212722057880821217063626176453245674849499002989884783425396484629734864972426987198725364403230438522093696798936850910847861356861575391337169631943109824736772630683598349360537608186495929541138039116889947368748326576706445269522693074871112143075484662945745513923691124199261406155847044252566497609681462014375944501499718021201594692726278510982136051984640965620447883585048573324282537592252751545302532592534628264685621987916209107804970449900713817009464288133630202976076450113789290536756943684036481296787991559640733383769264138913328290307867459307706396519921890353792495332999718082884816914316792540677039450750641547547751642817398648207272096920838672513603294189233103843943277288595477000292340501317687814596248557289722676290672848077931211378928235129859000752513855137934317303584922564020038785447239097058964557354140287945485117124188886517115855783266187868751146161945349634850995691004358889981670272806191111832139296951526076295670028425318698290938704738923792817969307500737280500703372170125755387327426846837866047876119948652195397772492783842698510302053597366570577444771232094270129888153617076042846065317562067589377184159833731073958537332852492386798782940928338169959601169655655396877002355460501929453932188860741745901564261802323872918851360921220135814838593448564539111795541246157033766103387734178895655670138131658700078336845683425736553639988193059235985917109630611740334744686738599631656164489649961162947450937580867695054805521914958503008843044541035396323536803447009434865554590217933586188308796429953447648785720164967325634430522790075084372073096803255103019764400360400756426009049705740468059462753009268124578375009266931706137961861243614922728896167978257258481041104300209041103717716674243017074867905097872829476265659631767181961002730483830728208370385836621106050337946241678462546708260615605092587282165284696993961910179242738594064951093256992405375959517541042925969076356474302904642002236854118359489653394339792461855799701517489751974214367802280561855553753838434335672925090822646842793013545492733893100504088842296169294688874582822532991887363334303914497400360393228575412802314531774667226496061523865927067600654318879772372070363911641073764260227010049528001477601073827130230587652991783149360175419269715204449584586183569965986957338318861463650000553522358303970396504775432199880635729773192464347444481896417227499101570053282995919176063609093405175119488227433873809283258842117437586027495872650946355601392609143963151464032888881324745916969868004676451907213820649582268828823393108349354093412785384638648479368757900526426874868457059457211596351871025132664319954796463297385777870410407932190892220153660497868996052958031993860335271791592625275662715865787294161060583859805234735521812074452406794416970182042953013095265211450445816986411807694738131167496694716607551268257367108241794287982711135113239426513340336627514093841371939708116566941211026078272889520006390381440871899604701644293296497817660694336269911051271271505975698763820968252094805792139810854474277650766424754645953034433849319055134878250640736394282288246948905242637573430805841464380942194745616176627805394289334871963808357529098151307280769809674835879658609969427751968392896618654954628960942536882234507523603072480076199936955447989748215981129841327994451097100510535282376863228161584586045277264183128260514930483144760541084929676551396707581416863863273793369706817376208745565433499660980082532220481233762623832634009035352716803288565145622969038307934030920406120261172963798976541719530548816903624993679061442878405831360592955745527792846031658106654071155863239664015187906446924249347919289292473092997773873028273027983427321701204268264222774300968824331238482553949310039577553375054800699267357954853153320058251258670408701464440957630031956252743262079825152212742210931301145854808458040775790665630122969890611329342129307007312727037361993483052142082677900567898884313428294436509169541167342520490454160202685735645777555774033962186355806430525519075569986702739634457709561739600131201960907590484768675293151086858670714082209750327999271378705378625286056909209063550352503374626434246894204597097063985597469815751885690244857093709343291233376294438205281224057565556327438298435406028326873246381494787501710676669456246042444462401264550351090932575412200909653890439794633503572482285669900200002567292225883367078034155771827207144382004715877509556638182202649767984052246104311587235190354160733279032734438084134413668371613661451379955581301126755274379646250845219657916315259611800719460138577699737420347291054021352701416926488948718712104689049165702670730756004796519810119905187067276497731109465223173744734936556231983625432214811561263214488765093171722062087001350195266474778439549910273757437040755505983455396804544581368301878894904365650343700731892951116378130342377966543973660040266033962000972342207055392821486178917015359482600371969541825158316624262481556567054793476881658866197808853127852617866132931541749912107512793607457996263903107406202869474243369852501041647155070720555911362634222083980545230619500597578691657379309404558213262573859251981102623763387066649763475374508423620051621023965355194959079634041128759887486274004573918170782036439485303499431789250498256809202789710307760918194847062312645675915182964223932689429595709225007227158567289935160624681101217244991757061853415014313499076358978358210943042208554518232507496983946746666363568555485523982802258256641109691494052555514718338794680246893792246280151185901443802535177684097583726367123240259573995198089900779027587251854407726249154345851612525302355843212548898786360201908531594618239538520978194322681537234543399685273554435890536941819520922943620197726297013851564855389629423773937406371439304208911160389469667453166293491563518658969517499905880173251240041425824994477971998334708264944223259105434402624589140835235350223722437946794286343532361825780082333547039872256502829396025102861589610195141420404280760457810134420037908222768501527156996739769231931411873881393016912500305492695548177474851205344564622984929202561606117905728708665202587592091358360672456097859504669150869033195499158987249467621406026792445207634788144592970674890511198338404484946776412916856203033974657423220595006558402241071133585385735635559547127751853830907851351115001058841298962435419672760098794785523129583512170960837360455566792531976199693190301132418013304773856284742432861554956530144693632214124355154842280384537163698955542407069700755325422824034673211616590349483197403956058872504860193502658023178930898173540890475054035517440364860940297186669057183891529223530479280842227120200670971127727322827162099323547901503340310964175080253627090806803737715064946876264514643038347975697640215411577566235503764475552072921705682962019510411328675923825563462313366962724516843428645261703199077307891254048088185390964696056955447957780633695839322228096196587240194926463644949885437046464099738750760331976958564009665677176576368921218009284541990333603617630244806757469934913670896886056210354704647013821432352220748386687524913299858050831979016860717678016627050438689775211026149167077940717060693901235036733058209471072501090405849256916601661093819550562267537761033586094245835235364791458644017313296414791960234998258245450098332687466339938713296037587934709461518427940885064965538804103792108838154072365215938609634910677925723860296136365928142676238714703963385466589126561033103145484210563947180714166090768963533750438688259981431931494549330800803366858186407814873416415070456536658651329194530931228029150553943660452054362013701731348523849269869189877371102158522699620558552812955772447521506373890999852402790747522303340764759920463777700011246543757224144461974481730429374368931845426890727115062257654598137252604660027378136222864415796539722687958753822569389239117467923459122947102923182525776615147677615124127331319619743652887267243362819356106117589484235233360447452481651106586344161813272995164585132519581342881366929939947423137411322723458582557753993831806173001613141758807016452740625365718975496717805115889321963571368579443532921619616724722558910543722602815404125000947133358624277867558523351126211131993721647262290090382439650215093317576726370807808173109301618563605781618256148168690012464534205703754724458598904106301123450505419539258434887423618468702014184482662943941997678204546146450848651483635441403219720291955234666864101147720487139221828805732912467627481194727217426497999361439100985887966308210621170023014068904590614496828847851933522637588999125743312374139445577974068413319300460969107149733451015828290274784804722934075122377398716199052986894000565088568299678494397893185354097026625601304928987090143441247102777748896235041385769625889326726822995576918879981783622177102998159174583832831394292090193239787840659490607524384610519232807008478768790126059195896699410333534056198838759740720300031577224188376448320919896874440575185375776989358056005895439671288357705238277028919180660619158521139070296392850992048822231031509868880170429353245485375158344112455423756532032956195639943540203463759914996661253127294387045638259266121127893627597016782378665798676376355629224590529797723247498552261226607086131602357466443868272711568448710288635342717757335824818851039675747325601245232614505366930961124314378609367475683270027324016116031673534526117901183091783093600574124026807112905700396807000058057382855587263324627221752435809926193405383040287060317614754367541304521468156933873089314021182227991459687825926407711278793146049095440578631574328253845975852515506509656415265026292233922357014302721189916312835416660581019724285748053720684016760684259321200191256412735883413766158334017149328871487045855003947684137603756821496682313595100961727127558791698945558614664357647821339544631982240319476587684799532695905444570548942718270761661739326915209946489198947857472548418047384369287998823013673174348821661607715992110719598511074584090335644692990846386913006594596992313715677196405354931348551823989189380028540795192896324914752946444360632878068814231812084185182652657669442824249453327296262079010776910533989514577586735112001011880287100944315013010897086932706822149722456330661970841412243482884323798822764372165644787976033930405948399859252631275306054587003624586086531211839932892413665538657805309889796883820040573518537101045418250721665999524116540330995236842525485179838658214812517161918565267617313806432853223614509849399364440942457451365403152443044463909595543121866827843190254642400759773221107794356701415024044359618404360729893860547587751848794515841661079054709945406936960125352314069044029580481855250218629431085409592284235191738232966588031848228002053410709521200036387438177534912583323891084527077774048062083578857805295434503233910089141465213268661883571105070092764999180501279939329234081032808034104334817560405531385068799510903683887143553140251314375757700907774275726572619673053753559689595629733602921370549039823579434937221076378803345316724768093354835519437799464085267578069012346215029256112312141188772384527289443754710762846541660812202538739816833475235657540532259350440601323138654330410406789888213147627549250888839649227697427904694646411684762871750098283063407679648860403344407608019999009459260205088621558212820868761680017911057738698153770230147241333101809795675483528127379291748248429511269598541991977317194887334535078476278771020678729755783392517556893734608975984776032155196693116472891577884259382320887743664561126771418787133411540347172883239628606418638428984225305538357285657310071551977233554005172869449450622432495092011413866835934632600673476638273133043857395766764624482456602997531921841235100691271886218591720543727952505083334338377842768022236892146710231398478035187911028199462572039405521184259507002511395976106892565308251354352545532483333350372184130037724747308532179174384600980688348622842687924359823254210287401126195471846487962109612187472290343798079901900114304300223838341094987025642228977273413000826418137989579410198024453075326922002267326093286105453680036660272200186749141406454300154508605170823360818615051178971546134365643307639165737005115105109614002945111850418540239997268497501252349622964203953045734766298960508658909367378726926217931159144882144708535482432455623529842287060349279877277049127780106961362483552637665298598377642600146640640276695241591732806320494756441226312642311543086262700166875563597789370284732804548251107158791645337442736419725049901492357539856259872880933777390387803226475178562417886522071602559046529144772845965471048083626192972213965108304495914667155280160035854533886075523836308614476823164705844510729685128750919006249695430711880308640151014266231876697829030819284490937808149811773789431654862684664372745467767270658909884714235271916261688411455717614516920751265637941389416659704717366245495648551703970971019987587899137912294662316984078159416030065196240070217812978870770968375373411758193473799265134815450477756020641324322245127526875399737930798173603518577990022501809762969850848784223404281268165507625754833916556457965540467820084930553416957740026859321266721064437127402351793773390664166340645651374727055660138106392329163883935122699704787182925494145496441146535534310955965965917878490060712870077446928600755695963108847879040401187713171564432516707021484648104056438371377120304519580305394781648134085470419569516972234207463393433400353643608875039830906605411560081985250395813118552011990400252642009971607478763154930925107829581379861541761596886021290945386737211654355060098125296856305900346637654688240992809873052848849717752780628548515585385906933947524799751266014252828267134565592311557942308382192619664599277151539972172682572390162114504418844993257361706392329938052260729695461923638122350080678089893129663732084920337403978987711860472435677972500711391263535940731123874535629591870622166445305680657931053229701197602335554672893887286490909102440898233948052314728236262846016843136901243177996371211280649945134851526069784708740406037457337626922767536761867425691672326334317199508890943087545424247656065655955458315863414981710794942368764451629011445754558445601662626323360353675250661818037140226427780134321632175280476168738152226971014060328929365068190378318858244920281119050818701954192682394900674073586662684201070813046270248192563821083268341641989293799862284458561675651926925974271545753299729005021466053193260175705913561949513227229394882648430546032500205324528554478704895783375061733904263259613665416708180624822599889529727015245810773544543886045075677404568773066236099959804294970160227540406917684576222851785291969615962643154187970436095224972945611742487794981459531692667673520688643775474190629835948707125532487058639486593584755282708702487942240107588125939423473395606207195615555776806563540856483802721908299653238803769907120879720511372672608226468902947316869130579462105396071117292153802978553600384617388923447410345408815100169688205070758336486579331500436460138716928638836077611843411351494825288914888634024876346623759873207114062465444994871978798050217610953035378517512303733236554155351182712730272517969265319213905197312676391919311548139589928216713012116215606795824369927002186442196939244527837576435658294126342223421903307046092214729194487813500341688800512115922431369016596228991966556206418303010861395152890534559707277964894549515916603253012511714489326404725412966871364012480527992013474767598806062147354644350501008824945693380663586978046320455117184468361773147558699794896824674372970323704828587104377602879533372470507767924025868280239240507124453271441668634562724560058856199134216352718966400642464842429801846680403201568911082518834068588525075439707882911366877067125058799926797507311673108097101341551549086701924286813302108667627337647845244654842697411042195534362684191927679587937668900282264930612073754647628789930598661537584341344633128589791091575972090584359081798163470311023370483105777726532968442965212404105425491360993164117384043912166957244790375551994138443495967721766406475652117856383737042170388544570097791577568171451198163389059595020715875511858699600624210239219658081544602845911879677116886700875678157663621655630454346153714381084533892250881866096920723886953733523500005129660115293662714719214194417485997845394491558034807051671163858260175594682730617522640295932434503466117011922892053616734533053245134191549622225082060001287118257989199031216136765172688645712832634208120106530962211743016052300962877954580320861967941013705683252761176808541197085364511085896171984558707093233529150658883456256658022347858095566497998289613230622081750737917205580939402892207906597819906726058590310546729223819796412498213502922948209945299691139687023997412600626806618064141578869997973496301892192346567112269591540430117289485442661941817557326999768384814254729640134338131824958877013320779441854076510351226372423552599122018663825358569235570156187507395371530407189833508349114993481213665548265799086865808430439974405627039078447278920678611454817311897822505234008762187667866022193395107102615916069115500690878598352967274004942821492069802994262382630843751263461218863809441079726875548289453586076642115626749323316903485554635565525292938223273114254544967562738168770963282511953115404549556780764294136362852591770888560780809947486029757851316722572119772205326803983307336437045514647057643380504946551978962850396187769227602649795025582373412442943358681241962491361979859734870460180445238001865797293573946125295489442018516737096703995357724953509236916085666338052694993579745490200777658765985012491359314299934510171169551951074150231809296678773012208054132030053876839306310900985354909208125354126118687406447332923028625120876085503106013759356702565147673582321927766303197880366958809976099033367354164211932666240322893209630380968295071823340603184533719536537716961213102848077639781325341254794710608317012700206179386143481745857685881926006844991851283761499645511161397861457288932751896239914516026999670581233765697505043341736896259437097135868976391596511689413037492104180078159385312331871401337242931730988696073355645245046141631142828910481549475936350896781017013624101358329639186777080766869525868566621548245372394646826735906459774028539025273302281628197710486598909847515971874630454055588640315627418276140476772556810130048750749100215091291718304983041068594119878012633481883930938355972825544093722876794409791052024153691169011158880097681967888736720107061096953741245349647359842881523299672863480839536103999840115809210771840907424922801606277525783201682079435224572160664174955997322980123213927124972308035353422873244652196839395802737649470562339616816805124010998465866631024314687079794130319795736127385454220604241373582507189806713966238957605107477407810198165653429036228938860961015510885195686453329353070901779897979889235959876862529385578324025006413545172168423266708255953426977683313653638004616681751533418946877530393949185624752280328453397178912755809057054589814196814967001807234708226004708464848479275332548381359573514408630050606127273590896592370947686361090413760382382476008836529244871873336118239469544458513823531255060759588813826445528275148512957951567476905371773204062999560334683255033743899746937901063268023924398751693395623944738790903388318871942812399814964405300111878879217793236471024199732958074432145639842641799585498312660819840731514616461489079782065182603283452873838639825711034524037986982510762420194920487498638185236291505403270041397692967401972127019038909988545297313027315598627860017159557408687338428180358624034516014128269401762514779880740752662691513676846836643250795753059183811402113064853239812754911632454421300851893898675727904131142033425292655952467503905903914575499383560232231162433112967879271015417404123391471188877211607122297241533707053134873111340717053258267565728705892825529454950567027875274554552400785149541354053910479274215936980961617703721543399441962620616703596068154705529731985883775062143388526437031094818959782687053585652681433982624946246969777718144830078280623651166447632971022741169034410582174277298335688939377847989592547255271789545782715452764461796360374383482818044289456265975061524047336136485602449214869429985924645996714215706590144323369593784675925465921333430942302802003679693839479841068906996637658566271575667002365730700160823047457865750358882452487043749240627537368919217665491608801680568189209126236191766490021269995697094125926593840860991246638999332756764936673675161056710997116777395766723423346980506477641107724306616208382213098671193255991032049621652897298836276255424763325363525912990727302604041290374865537045573646164976093380255294130868914857733864023473681458806623211563516230902703832457126551752510784916774728132849716010140113894779956383971562922639291054931617165762799492117144824183642511879893580613731409750360438967896843657925478667443632692483997695804823657474497317473623900603507790375768504019496992007837922278560849980918881040932914329747195177748078109373238957659482808690098004623670618885776982191830761620281463354952199467087481090321974496794439066799725786572262802359104935795188948651082720927063181752224153942559068453845492781256906042501161457028021263982950889921586830359895666985368152230143575023184035164398430162727389994393316607381466328193173402082785176704851151278709086610856649493529054093916743935886442853655759878618295567841399140648775517324927861971863741601102683314985302148577458620567948972248536926679241752222022364435779867744224233197349343950716561079701707108188188292210048851109909124216294282480689869444270310747301241746866026917295472590141168955309533832707255902630802385279594987790696156031440383714683262440755229035056671572024823476263189357256148766169954292977666133448430610334097744854310591495765961031989785736183211805356351346366249387154579832482199346278592406097264671846878499912617312314502521457223144808859233518147880602074405948427391157654301687405097867438711522185081128060222264343936956562697776317791121626946939100084786400031311323967356902754528269229238841156428461188906987940952225891065554985954824859269453037724457199252578758443101262907100308094149543105666606276224179960645537091936272420719336016357752093156075053079067272520242367816428279304904786369954864808236693675216370550548146709637629524654683215199974726683307471271273265826719092089862130074941156712965760206696976752240325170090205672334932548442347775697181525391420572642941504973302726338206912755989673206247377581152222069811295470445808402420761629285319545074429187131183779756066412290885599679024011971065165668277617362059668076034545488659172961218896821755123350490916958254446567669067046213592152984140911986319975487072331656324809073516291614190011284937198916629980437259877451557908117766994094303283500348895310131137971908783907799314425490356539839602769544550863089052877455004997687086693598155632602427622293168641297204620994725677894035972143753859029694651699852866693077358079191205968749621000313628037526599725030817993814847259560822150179160706035927642315826076214816830052163851862261987561064423639220470579402894883984852686689605426256631145553668155841017172126593210367982779347448424790922417771450785435582005355132740347734465223950363605285861971411560638170545387253893290005561992088728246184494067995012216590313176250556653718004179047810218063488855298614316236950712877972273771791554191568826970687582554997833715552081970677376777811967261234174806663553810590363599849410255874211842538776676058011289335944014022824398640894768181392436256368894443873221821278939298303937640215534184959611291126767242686314661220989837475285274247859036923987544125773385721910419633444063992949638459711174463514616356512992754767438863074610548421691554977877996254246630089500475328470695942172795263554918528664703525353505785940495723004822070098556852355952822317483145843565658302482956488257398622160301362591671561785615466308134850848140996804414076165054132115877010601045433294833276861015483963726481394097999544345492074074712594125506436437173520770969374206742365089200970013211154802109288209048300724038745150144247381655402698562694339984721442028399547679626109109042463693755716105086485945062485129083748562637893424823133326444062748343468406021560498977589459555351806728837506841982389351270317312552763463366783344684709867184101390872100425440664918680038265583331572101288375140839749237800231559688076188470037834625561724899406276964098801237908080514327746284542265072738236542571430769346799056870572157838868103428696005475806002918303459906983788782342518086704525157710753453746432267295336608371962990886913767226278908000460021197694670388440081464708437929823925235452779639324808410096487152933193682032576345286781785068544921678981771917021799684895951215018926710644710292205372166427758553279275814451838542177038237548413753321231739296135447440608264667813167376370573097209897098446606197434368033420355873966184154228935960807806465501981245602776274151766781564207936955978224343217687642593548435394359792414089540063498585821845312994143674523137245305105189021240547443519870192013281681182177424868585869055639128890236426870700463431134025356183040981415377879503148026000971027704023837312462103024743098133809934596225720779836641945741150787080844197004863954154829244158477426333900518496248398147372031970376965414175656409667896928169759170955892450684603661893447016000684685855658938687177173684862622348363434733001067913337023179569821106733590271652948690416984131900691591443550145277184734404949951038497680362269347718336200560999688859030817365975919026309620556771523996578798241282266285925476330377770454041756904482419090468105068722539512675753013590997618795980960156321770148608785236785343533673474716105011552600563496231960347411541094345202556754991298259488912896314646460440188972298957575825304906070119808190767522320642171604460611318802554928533988233749381770686415397604997143543408506238619853192639728850448654793634417365633450461062319791528583822011707703843786826390522791900732885206487128284010385464857756867189630780181637502170588892430827168181988921923075273420359965154719397518177574822735542676927702901502730570487830705157794739076639090480514416812483064058810942801086524824056234138993754484092425044892643855859591605743428718241805090773495034060241385174005226882152888412346754918778443835001321982643213878521430238467006753460012302225642659978694217469051531806460512807878524793554955548128249366398703907319606674849636653445694598952600562252022689163476947948515741274107686109662932638501522472340575337138433624100808065069587176845114696622238823510395208246351117156745816316042295966266361999901722642241356945694622599107658422557936373039494015097372492720254115668262458204543443490211422896274694812220243893354868618384398136096367947024712548914848209814350531070735855845516426595308796735865239357277597417841216235403392502513930841642057674441334277394252653951309424102879568994053612231146737133182331962592685328113030451910938290982829093171796244925240074227070754217029153272621093206939433940232544253950934226720797229162501913488536986602578038238123589399540667202341064554918514922813448415480245714566080450311206260452394236605495084025360065420822385381967967118553734195858541818927448100035886372999973914494954985077904097120649239085263506447268740945142587280342142277671077494186307432742641494631272140105576116779751772729578922417095266026989131008997954755804952175267245667670273454703476683202006660374731065978376491802230429445343695742722460862783390602483686094863818070506063486948935313059926205595441150649369637269396077935392973746539644425841340018449683270072606513380727075742766857356990786246714430398204663817918514354934084824355882320175113604683240399863266110870447657454570936115490556519079322601917353118775526442808650727498090765375899854264380671030260780485881369031553066738969935801105024302327928439391348950784980448357776709814362278795533442283015272649214124579833546278900479929144930586497503171049379123873566910626197817798243045809534233656450103087507976588862641289164635138411189100396809846369005298626740454344486355684058966777727077022958399446200499194924205984615823390815172277919561034437806846781270304024717032204906104624642236436598893189405223675758610307130519100045424087879866144695988205625933430538531441125172363713932467707130220676583089711195571756571240610340998407431841279616723216440580993208639254249208316391273935026471283864180756005093796861362281424117047489915054182490931109785369410976211371029519455922076626337890957870867067346261094474810448653488934299185090479069107595063661969108322480668688458870785560108073133307367746702283932035523576231715279538183604557255419890643555703505421814137449974275301581273633269916554978138746757519996521104782521107663018353763380800333864119322141973513715599818414942694786350378303614853730263687321807323118039642535589595585611175147579074213661419947982418921098159161709625828397993134662607907033383301572317287146898510549477579995666390468056665309831693552470716755969124374358012017880422577520707446874476711475434086131230288792361434187520798192859375462128781678295174778211115904385912473358262766802377634104520858268752193477394711199453406660283698264087951144142943001900793547394887657672039711215375979652776587268306254993912063497716762493980355734417268371610441591688754093270723320603591258085090194809186801945477103191202247875373880607844194494688258346598293783483799280822105330813444442486051753477703010051969350638391701524650990400059213052557460668348487603281055150601334443376870304812191756720564504794075098190071577212904926145432232388099375057015533014919367627110170148986659566508676150672497282689299581938552726833656574756219444751836711907117056419393040052136667614493243939112799027975638052135422378823871823006252269125547006641550888780116474890500912305322718731218299557138354056145891905128680339765628774443077235438480321667883895449515497085148958935897734242585563840537236240009388541156835208133639720030899750297706967190880325330914621369041388638100877529120543078259567481546284524032143709618279246881411350636309481504807131258392685016934894872261555755683022486849985542435573431008297523656269977448270248102341807451844447596619846193122989740296910658507750743220201986111783582559709771950079791609409725569802842746990008892430657960141111337552407762968652095151954961991614747966190326986036320923519595678262907508373023698767656541013676227407712709738808640630979524759564542117884368108030068572226055079990447047695285593647159464441370123379335724497691255880391775826075673669368896884511827612712148509949105211805737598549757498676916313110462049696172056583586515511224868436216940349521059233815786409607083419967453388418503054883219631656475016984292485062865544947290729461729780217752036551498782549802685708873788074106208681934274295107123556709669032086193481835962926787313624553481154726628752617168006919148957606356630492465769870168263907209295872492353142537141964398935307660296722443209829272443803587209699691140059018743335673753681889011146711765656298158816847163107597212166832334722643317452884714547322802929660369346522514719883953169801047230167140818594457323680897609001043795529206925492845531078504562518227963289129125317270643601689847826865222586493816202495906973927865845864939916951467560101374951861229273595233130445566989932628615609665819058035528867908277992756113922099390323095825968438854412461770492518590403928517538285712616595003467227483400453187610894180308186754653739695967400856625017384639409316009202623953416136619649660938312570626533111450157497016659421130908731293109301106408643710317103001940026672901309280359631082448177154296483979127456482672273904383650612928364899549749116208413672983376023698331133669438185761054588993968580194652861167566282644943498244078478905217941874404212799645280993005408051265684070082925120760376647887594917126445253691219245830809644385722626524969380993534117221228083618641037489442166787183379482598820457268745168901651908251700660088664627729744863636177934103870368866878174945966346147671055001571349809427072789341341297460875069339352940003539144358168654515181161963828371645237997187927837736182606856037458625630228707723326893153288799590099851737222105731416238041184631654618029306690137838745248462359161058811419838511888735116738636209397525854764991684539328608704758038312156848860624592091154743935351320658676434989593337388940183651063167108225908658552503936216364357548199852758367307600606124451547937189576030760501872766470648124507291919734558689231255682352958523471335620204291605116367050456198056585295201027641362191960892103375487825274908489648240246318121828184266725566440667297777320087432267625131183553929072022005477753947784502197440312232666900826865938238932844394089020231994361068730004443811862154770929039442079254552772717015017508745714110635431263079834028041254687520776308854090794813087992771460598817812736685977766158690091398987811140196841611205691744788582236901688898725783789431041999575335447819424780824841265227460908871334807870800682951802356255958952424679496247057281990334149827521274106726687179386184939334464846870738907947560013029731671356791097338979941641380445378807374413560517922846851708311395134087177891644902169241825769476823628387359350776908997203445741921259667037509139986053094347465620660026326997843200646698690814467249646017003605406264732784481338293157543608307520713592429939329940763855015934506554920777004116803706694153285099581591054304930298355988872593334686535599738318673742536116499004355304885411502349026052137349443740384384295991164798244120584895653835668896612323318352504110233777817425638497131357220674141810153575533859766229805906629940031193693144797262401337122883736994062628131976594728969525589361329902903846332019683917283120608931332089786314364900240343248004023435476237131840687442659358827731157686938934147890437068011748152162354928784848605995849705733850869810078533722131781080036824624187786159533981865275349540180072421061027320058067199108491398655047651253826531207775228465345552207026317183397651805851690680678096502458095327887655446299251953659971261674995158224330586677204952498869726596468749475539594551158579604156175996220737801920270112417945579569828515856065458804404475481278992527010762438503866809535224866489852513580393643119451083407776720681058767789937749129119419708733704624984654818071342141870733640697406227200236808465502056035533260988065468904837579533113510492045563498302328983859205161644180652189859232308017005324409853606321642258256964656940768778553904499038126600168588378524204198834066012387213597033033074569868439794080409247536536746172580347409030937956488803015178434324113809567557482839809967997329001668955197825104970919263054116591167951100729393741741432381876093023572561746986757964086319847559678757929717537109695672280423653854166683807305945491557783663091906755199833480744534924098186228390721143262143175631266835137347576457945741528824540416915718817638218633663886818994823527027256091679479557519038038841082045654427444825369630455800419664909748341406031077054615465506625501218725109040072582565883225384389448101718500207815321824507601034424602487670304045630834097647975177996408038392823190600008260765192466855164287106385519040806813781760616311822636152663865114210151278577443623434138018026468282558570323553235564769859215430888643470171894135633616747963049727891958154669201036504581695319446779430972423339195176899829524653428586684040985076594572395569361324043117828774098550280220176494927679515164401531532903202425755093891433141866779496735369741351334231397188327813726779748979940530153351611486220308212069760075426167002461612456473078431149375208860525687037768560535813707581436076318441229284998093753461976546508072936678803482518375740267841752330570327105517651461278442183240833577099111376887638427160325009592765137874223031152844544788003447081050064553806868935887012787933257303065948879299651379134070537750962471629070119671741015900123162162786536648150775144856431820921514746809685604850303269879470700330952314990388234090151390124134064132939158109453090981502613890358167584999459623771560353924828435751148222222586461583160121167359687239683887052986924846901731309047416607139454536526156850121404851922182331120637236809913637108947330341841545618940450711087087954763597707329373240908617369087452376827380815330763805190415417085955058667326278066665710065824414845257943650560706220975764767447225633310261583639073213406207930156835551433846742563151469921517241194111871291803144677409581177900026912827960027192699790242171998115525962918041599186725438917269083164866878001070714893260414739450990932519086372035110390928933069896636896063155188311792805621619092842540733014076674804441554085507303937087784208993285088001984265843777041310600492138725443068621043717120395787247563421645122947598592707098182202338584809309238379657923501303503032229420252388086500335351013002156451583149428527655447918371622449529886091716850156018187788756917014048143465507578584900450185618612063563395992521797853824876190718442486395746013350191874599017732464079517348574795456623576052730627949735981551830084694404641028858442749303645734154882711707968453700197078211813969902142289147074881302151036089145403276574022830093619954176386866843622010374079185214519818918787610289018568030682618950909783434314141656411817855191280266460036976412595102418426430677101216771041852897183388261552560020515805181851195418762349996305039495244458273422734075912499405285515690977748805285349501444483045055383303211440213775680693313414865039026697056811647937975191003913498004171759199575127436405191175341572294312809322710443237992864544136889839550036766585437553636356768563934442748813231602202409796884067288704234487154391141824194084311477387095641243609595220710772300219126975559548543367195247162093413443502179667067897980237452133529387235433871409119291669985370408678290128691196218311203560696452667163901035370407245528385890068541058239187343467867641684270115024401014359917919012766335575171097228892015078700490478520461169137057643825243185963120456193500761193626799532529062533565102502689266106793449022675415210824781149993959488639878257194465374833463768954462335872918019777006542233741218334099033239750104736477688029347276172905072764511607462013376147843083491220143545042731312478754859129926774429262804083184018705412894792312348169610533126047899211966188425835576807762363201783509746194053674166520165617159992486087129169115089234086740728804038477293925643712838449561240415019986868285210302881892057117376242970167898003220714228254704289326945736578933747424087099399679619244166526201876414551126650453146085327764866664184534011945685481092321654181311005529557259701736433303107181419217675817387983469569038785547924112495186466336139179112855941431770675042380189458102760407492694698154342952728564381150933917669458676878254948081923295201656071363441174240221024548650241441801612710739618014906636477690928838634112509945603844837344119605327836344746367751018761872232306132398353048669935256743157360413204296677192459988984107595666677554324517967063739696985914026807477598627051851789385562938781904071453673935947960221371480589872011652265812585139256104787105467915814550623187855769792221672903113931679976137450227676476604682839841875689741665575718018179434906517213298782437346806885289086850150801434976942924411071198522550481245373699583185735674894291651999782259004567302505203439970763161754788120047272286720145429771006346558548697620262646121404399864827115757727387504838119414732505679298248020935333527229747955876169163781873622258580726004580370265612198186658015565800722760811628560141492455422590449796628242851798829341085931557533647917317942568912466076009905695913619270989116958486794081990331929395996689855548660910775493456102252403866222133322706826097059160736628235074508996177462342886915720920426670291641228801218772176278618538535781219566622352099424503211430803244962524976633490915887417675650652707089607936922990947246447446202059459139103153223244777704796927948019190028171146915135310989282770091200516444165785702366893038084146078467368807707859719434495194793110731483046669626346498508185153047798183142339162743599588310690062073638598637142144561539899819110231350931574151215263388833938658341521892253129883253440809538797161207031803866683571958612567616114724600053493563306416037282996799641188303864830459645562444647050236737820197948546009635546238522808760091217038004317708301893633337377161309841847777883804548325049037247416386759046660591648550643944048709074338135710998686738207618058896379346639411008687121280066575511524787569457028462582928671822639751682468836608102634990886206801857232691060696273208354399709119973416211530264192933624315767565988304118714299929679883502050100600730015792156613878024582735685882874362012749230329569002891691751059060495861444984709772776606577032222002339442271176491958974564541469135062273081242398306182560831329883930368068567115100235607868579830835512402168187740031396202896629967701683893988248660500843817403579792021119113861340546384078255709062709771795837701586796053028618972772942950358374819052912560327643581093569399669562203951206220321574787767586884127107479881212858029435618587756013856725269950584072870445352089406939096489379153864144093872455541479512736585174105218960714116791589585639490474915861388193082358057517329335217049556775866293990584980625038853501004379073864526240274270674866679591911764841498974095024085278145197334900873670400366991871411180035433762831922996027138720084978921932639669748585220625053549761420919629339063837148990186626398808585248155551193656101394957341071800489501670540753424601242529371730601859945878908122515781568944341448631057638720142865793920581783829771291987527154094972887480649057590990716496310210287799457638490733272738795340889348235208709359849026550552942159878471655651198569278852127635770287750444542502993518036985318690413090966775953363439039923304158523849637290544778069808118399088531911785977298830429196781736717927018061840601933899977901562454943513796594458122272672719669549667962397737395487474374915806327884448872908350547557175894550878190809229910999209576001566478959921104746544756295114928708477105394790089097985047016494886500794375932514238001806836822232018914260549891109374660300798245432838647844533764272317614441243313975562021356165891860868317589176908253385022773727346991359660106916669525753030362792241328554677978121920359896254251987734522660691425107892402828615329984249020553819422146800466512549114909626748257311801236106958452280542112410718317994135961549578970105921538569487624030556406476559958867873899142829319913972340004931743445484460248711819493074879627223669070477727039430920956092874328775371340592693093281837956435025065550370353043408430309447356885195677277302552774337677184999938360822861631473931359342448903811488429926962129582130291376671061133093850767527143018052838836772522319499768992977287484583192533614452485179637465444313574478965039371500795686207820995884606087483390592090349400333906550991690185880458906238824780207071124219336837927832607023876106270364607879892906024144233090620790454516954405742790054385184115846944862888875942368741841459366416369376837539965891683882167588010115592833803743697742997499951608432921910764451218247298389891469504246912961088001742623450319356909529346681029998177240495571418849227945678052278624594393627426154239915807420525341330041138978736224105160757508524687984170526189027640551779303338041290304027923296921409240790971617259869263038573774196960570603032282771027017931239133712991195126661845505013303079452909011515046662475574080247562381602994685823998975922301734904198843040543388430018970435770109084921572952543067713352236700031197838115913427635560552975716082988769236400730927582735224954372081942589964572755126687990775587133370715601248471858782589740698191419690704561611702219903700232289766174862052108843822317302634991565350613776573219043302847308858468037786577372573729677022368956544214804779729401281795917530247141597479026233933568067224409134342294146997858208945861013165224297994989900967788148299039871309185958832983538821550090476562111136726929858864208725103944517180065430191017781289817681386021075199598960279914528299562890926375063436626104420515560558358793072364336252929365152295511424664666130509939230242665407674745009081983765047537640268536694852141029773435450803542955856428406643671950202196696056808408858669637842011266534663331181155920821519919311472770391709314656069525074900914011626416983442518993686799589360232097625694784495238146125346091182487427783942767002109522432748284878263523111033407188127546725364930475234050976467549071549711313995754075566152631574779583555940616284346649547590084884468797278524352263992042304924420732026753616226351901460351071702523659782283576530271818228810735503941853799202259456128788060588185022408382262327089584603589154748806409457311583383023114207181350530262864515295546464192116165066888545765772892526625607167202412570757787010459197024118183043173536862660869464754995293044763146709898513731927065244706364750018468111681359768681785594165446190172883367487474730671573126834537658635184306925654517021585746383414959468395020668743907047817988309858428110962224304058850596925456782313607976363667922609158787461149204760644388639023745914115213138338641728438215753910126201760722786571835529662975998191088558000947761452517753588103679915727666043630467491929638665755442115049454918283011679497748113948873774124444703104740501913537276659345123791365116792515343293184850873435138935968800045503368179093826458538668972751264355949540498870250988727495658491986744388315310053250785254718186034345918655177547973647639123687266245676215909578048845664634653625889836380343485442933789403969791629050354555900437932359041463251877538311224265072882320070888436678174379653923234324862884040427752061884130535730237845264381923001779828542649256201973677561300365749805506682226131609934367152538382231140835165008250837562568245020257962380559680536008488838122751525320445636533865144235508444492875372346944516395801891084697930604299305443081848766181685144611195135963706031666593453271967789434783074862434928884824411517938898607235112522071287456159140625743922494493157129729840088100698590313458217418651799959473567687305091882494792586910416958921507372952663622914496152299969177607549241455715957614958451272008793164150065951134975482145573619125840067215590357355218585663509691302642524080702986488423574800373624442828211045401596897091125451997522519808659130701674075672976954131350500722163514614034503639628533677512256620423992307996611907350425880513752157412276033291504612210762483165835441848785321856715910773022943191781636157915913458940059155259328218903171280886693222819798159498540880844232056122634124977758654053567197365645553587840816864235728017435392520159605172873466403251663239544129754898024036376648177539158893198273196356305139253424453396516028690182505936806015397531540741550222055364876101472259572767976834291398249402163288552341151129489566788337680556287725153238835203792809130783399956917280814615014095739374456004517994503591167944717135224438632680291856004589043782848320355875399786904762333717214650728511173262092107105385016397349324916196039973268904393776316024566896789750458977704938216540074634051268096044013210145935362298393196583345534575101509932390830652180770923868683364606002237596899122804955567395873822916558099667549788088041186860616055613597581079954205803101050528680719869916005542043012770915868583021969304849547323842942422702653824181586655250005693494700088339156355204694217804764201166216904858071052882025047064317883868914285349459295120567905370227928747914777512534347826389718543076128143932229201706082153947727410654357978077160689261417588174415237965395906676736308507961893094880425678720990680595513370334060893129239264944018598560973178564485634491044495391479699288320714778397198196940255011050769408495265721976148449228683100570133660299499596983535189543576866576949194426939332892654327923268574226106172991612946144718903374642769282851639594373370147686226596063780781410212860177889016811672037837726064254413047780178940541689728137323868281771910886099894578998176866758839538005612339252293028540739277789010336341292607633238181403627393720528468378989519837870477899761462154016758172914849145479838119585019691820987485411299944504004416076935058524000761129329462371204563915668110126246898640646684648127366658048799847448630869360610530098970828385918490670013834059473022939812991241187087386056716723978819476941897801890870203141268744667389983259563015619512380886139346308126426243878682041656363107675913566815694236449586107267527223160857058414085922542877753213917494123293890464434473975191518212971887993542152091630632424802934011829667805029609000924993833763603207065977276548821141722418679028074267038596455746190722826482399832281118692531697336398002469150747833909861634714446301751195802404597042284047301102764810004714194816820468028478431120237356953470051981064493572703082508400048811509491088726687927569166117799343174417391505728384094364803391161819637925185033320028933885146384231977281726635029497419460489919162872238072153247665176825057712395699427910003574361711484110270544340383961468685426042404698433235240953768669042856362651692722266069872990090555251194803823167413311507211014615289494643264550093985596325786508702104339263204839633957377362966503874149475813796774213401393157977017647747698396201081398734197694932708665355758341506134779859251483020649976879538878091829901715494113568966166377655279966511792578944295957816146205841956570689567858371095224910051003578755378638405006809571162294315431130927246278456739808985354201509100497023680786998359464703896989396935826272469757967972396119194453624051014091132245853271412612533630264873845711005305642996128708727301897523152358519437755844422359243630089909595103735408249640460460267562587637827702184957311625003707963356744862567067422741615591494848027288240247348652129039262406806857697372773754877903738388767735776592994229180218330717280758904470270755157692665216754498944930572909610159246190691078311062930840058393021566510950796024696692048391643646403072043187052865362688183598715294311832439250015834921790880778021322337613545961551686118788845955682890550764497658135134701241814735434076653671863577713853002737205671904972922874434772036994056429860776539383940821083480216405987116545108216319478878140797663520678712434395032759149769827865499438809894501958105878429780638199577596533766362593250211164496055682100975972906941367891817899566704230650223250325686298400542351978316386300293347921211923434522975094343811111732618585812999155118930399207857613851727354031484544812552963431984237372457620549787636062258315998216736453569289254498587498250517262145170119602361207530253332780097094311670052034401655156355720254095890078290000844590071935314340486716357821876564886727901684793838565998780285398852369980461962449626696259059844627597324370847137170961276292286036813304336491538513611905298163626562432060411913742183723219354686582016608465173472119183797532602005145361968852166995091433816864319435647496566002693834982639707661346008993524364087653109560878904566709341129430214698017007361721847221967528063153427926475984781075930473776671433765697868118820677630661109222884883202330604362069249104129457450426169459419554866272872225856876453331646239696376579067754644505217739259430729039617143159497010959568260995006975315551139272019880947479064278969442380536569607169179646680666844670195798223725737289270146089772540752820882224753082797527317765956933050919795878271962566891848819674489444246075976592628958505750320537944992307872816531787175689233175115667919217341771191641806366878296145063646961555670860889224513029507310958544521128716492962047701824857114439567344127223894958119305269343286894137858768247797175568626505705457685300706917406490590460860877234828056743531475282731681066284475694658843087315428971726822169820993941744159818323585993582334209141581569073420859599073353045403238445188725966613278132839795163109188939976014700624182309457646082787244447330928262290598338563609884387967403921831803797764091825582960545119747857593917421858947949336261911814364084057125032388542462224328105769591731716424499191145185656768871899818134042294451772129251723438540717618732658687714922393897691874937442370328577177258169800836947448803499724129778955314202437955703669213058566874313386131634055632604237969305746074981186778275989841951229114105081401371880611380895214559232280786306557654033652228720285238130394699761946940800824061740571985279199545199340767600011273200594150388016768755248949799451703995121138870073317274295229903823106567929930627017971578111983371821829319954953084946681859633734858170378078619696365971701096681027044351196389102362207859713847056103265337807441448505965654599846930467899507335614959501328251533141698665352382856908077150140280544510501712495098319703456982789321319732330182862586225384209582876067185012793701319851351259906739727914257510607340495611295064670640058288419076600598813634785326695472299199904886121684987748553441288324876639809124497885043388572507162732313096384585065916787979823967424791615596605926610394814460160065524269262923223403222445526784042982222663475851827719878022402787110636185806395888107214511731681587896625910656076407179761576501569770039140719552284214796048388359728941817143847487869044583746469529925302357890871206402549131810703044104160192844106923244743760821264302364490065453406431887192140773149595200020456138279653604110471772385064545737481898954759475522991521825164829148644978906164821098222859391827028940111717154234121302211366158603797401718715195139310812265039391649947536352488583844531009270448317334852057387827978061231224642258348490677030230414787225137630324236896396782494232859963232184230184191805952523282235706259006915610043566202105282774612969319347423510111671591562767428038912840241658749032713737936297945284622971458552327673640839549819576809639569749583787209647087058001127088960928818754628457503068331833271958463433147056014226802036625533529134588942656556219627627583089466630898688259512471397309753275144174215914361497705397125228710091251385554574451166166883734332608837931818498585399114320089305475631891097323751274758671316844278661701636422211781103863683460871693906033635749398096347224431526460675007853750414906827967944979358225235634115857702204941748769256997716824224054010681287147778135442310177237126456324428787025318626080127167514623369593264258971082779936479235829113424304211559445948352026164262074329906257581890980843206443362033949411986776659872406936501051430179929732283692497450120258403671210212323001328523060035560808254839412819731504970311167405953588297820058929072990736648119601985505633010825588006409055953764821311157324114111062653584260125031939800353605075552048688833757802788934183654973146844114602833455927049574811697008717078923650501839020064794724405064427413965832825878814628399826412190522195444227681807465638577699641905856117689044687323703214675761958815306774811259146316054373417154345900795908044411322710214345427170642304114212971647806281846042958636163247709399510842051164308086691912481189958859685392192446690182544311427541130585757158653229705553140287611095026721483791721405517346247779840216668041317246228654511726316873822000248112965378201155319073025912366494983689186938722507392893574724415618688626709388818025180379735732549094729080147486794176232846214276657537824693453781820218735657267927533326284497756264175632141236221177437450855804404187097613284613552058034994706978092217470323211463812294064442846462160164923482825169950862120836127877909196446937162036386014734098988888640509970961446275399298613767987234609344804114435960193452255103312456652795034167488635560487064013347076338259275857812853461833640848239304763957384345429556598377702129529440728456165776537516083237971416856783601260704880580353109265920566472423511137100525162633851672085575866269834891432781762595559149077370088564444691785732142576850860820181513401167646144133427023657258549239913355889416926155247545164907013320522850706210333659430413166744544252772601749995389585597307666784722109416824555606198283112602944490915401344645332616731647744839032506361190495879353585817076558064213881273940367184006479695909502761015250093494964778178094430317850914018497161425067905143349382586353667869984862373406402329577306902388171764468764467903116161329775535080974393775234482343275480838576763436958218797495432310671840366429177966289424014747950825623429135826734577211157916023775371453892327011314020568137387663865723655188572179281054361755507831907323705244930723404583939396157915372398510721475742952527496570185010677958882443071612466321588328530523071507740864148614238185583302856395400526128948435392652245443183706676142769821800510879217060058299313584380502129887626496353209389584795467176886766287294762599774618706679012832296215476827989814667549051663346364797885519898645094655917938058086099143802651057135948243559515982750094693769741166701071363238983512920821349195635232342015301041069746160662376494165862606527640641054078739646828487894402629523047778738462235830193944810630902567134332152474439755545884041979811173679260852233529597808354252218575140899085579802334373307121659560058680084430867246248201177182230702040846822156879939591499524284554414140524850094537071464650019222395557344328957136636512832490201508747068868679412502430153706857590940846492374698896184302159251426782247631022093051056351142577831999786666219503805499976661930750660139151887444977869443214372206520479306875054663641887760573783441002242612824690142951183219151004042183951579553646033101430160944622286551410740932059881553146222120584383616880599859063804665148236514004486592795426115347360547242270755397580508664412749272379022958035909577462070150066550135345063642317262247914168562920963084180952488736163390159806286151258331561654225772963467257421822314355125454975457998969063255764466689914049971954508859349622587373314768412518723289656348817053888218907528863015660232630869220533313543483547842587215207344330514469939582743671815247636282485624026036931265947538067359544396099831082642721502679850458338378630216076715079314100557242151547761744500236688079212965460782879502710326747820384383199619569140653806707039417326886773623245406582156820282622879250916752325859088595649132789902262545952335596692493465423789875298390064713760581005098587137828055908674933999348843185659676729259855882353713768004267343423980222289040984847211914282091273677767063774893027698801129000985014988948096015089339456672793734507197659372073631527247346871972548076374364936813894990567559807610443782916164491364216829415343940166907923642069707318921224325786687988777677584609904155038529173733735875941503094196941836746658972601891729831168198331471737450886695812117984352711465933153476039244528185131926631481978886050800479822033819593643501372739084941011204401791837353630312946015485299041224964777654861584531261295710574478135410002861221295480296775079282109763392951391651804730216277185045476364702933984430891286113462679274679177779449769650061525068158436278011840876557089725630979476512658665370075542516646349038044346322706858561334608554178217081729217534299417321844604560902390604704067329319823067929310009659864720975508378920587841057104581001162146435933933868052926704664733846143440413435308839408718191224719551815312876543448066263500195496634368228832203180676068127268330021319287470954096116064151931238564288294230276367651731830999987649087637800022661227533318415461433908383090312834840537909807634605539449979356565372387441304039854507576488718606175560557173453559026777023498443123345382891742630263501232635247169903461362366233707729120467548641405166391636923904544947910632885466612328020427714045173787583585008531913448059444148006433097288225195978030505142361408206213231313940821159520981873192526544804690323640380416744872651566857638092859500474511700615720370253174949311159340617941690593427956336316699673078479492672775625482191767559264980461793414779267820347766884760316883244979316970803466495082595087103862060277024979254826315283069598604961286483162134552539115651514587754303769890021942198731396203249110989028371653352459449114078243535970845060715331758263095946828806284279652857884341076673361480569240378081043967997889687739132488097473470218799641281495841015917758218814152680826834145738811628959831055577126164247453304933247352477937976679347073350153033856398989863445347542815728690459718813615653465403684949016230266304776136706335735560293094305506964199258848384667408695632943581685013593524190112405823012055173341042901608959127198409305942988861793176715752436421305954968500453737459801369389178687451023794365435472805122620610944886181514454832143761626041259829422607564768949752328604455686428101467822888401362917778149924468448121453940299968779710446506408911413317012736717598066715923515090723887552149113588327998242753080145065162861181578399561211266583820946887704626550029505786124251083923194413755402135674795017337311568744578602267373068628694614681081518860671622927934964988231797934497012259095259556033026539159782138370068697030625562146701332346659033098369736721571697902755779103998780575548530668814103710323525239980683649249025355882718875851935585924345994476970797797740090577537526467709265966031784965637684157208243026837987706714319434507525291829619830532826567411830558858947264052289700492664165121737810593159216386086800463168481484462363434832802344946797058457368187675607991496728382718151141393281964419680931147814902787818003716048609201967148435783064307690568797495364651072532067976422711213816190347995048644716811564665655017750019476511196442295392146667348089001868407215675368249949939998191164713149615058973324772433583415558682976857516664557572279258467368962159243322744504632191146009016321009900588720512311700605389375556241892844059919756151360054698925446319984147611427533046185897002180795196788601306311985789918944192009574746660145822321298533901920804069819094500340097789251905218069108206073314982820879832949787849766397753575107746647668745087981364554206539006317504807389835357912721228608843016592687099534647852230284532278327384154221516647195975837265397913015840239146756187417298793016183544852646955520476330861707126244636517116045137607288004710624204512995228751281564815297623615164518896108354154954919036999877650449790808724304203649397853509377723371460655867044884101321006943629333710501100035791183832747725968805079124004291174298051844568003506854044275724261043557003976010789417629448266881405918730092054987955483545278869925787354611331784306566053268947699483886523750108200425528730467394357996746320305890848778825440484210401384426804845452538802904217775315481269221157396897512939572673635432137494979803730814480650993543465701895977907106717782109121374611124870852318600575679954703770880582344488675435697557025969292148064011343907827686003754401640857522206684899107848659844973229476954280984900565956336081688217732079795354378797571724739380579134456447151708389505434591706854393750917375114050462141885481568986616211409620661170920386319994087802341128098362724756141348089028960851410741524855413160417088928518114653007203456217283642929410853715787603003529800388397045529484638847156392249713633211855713951293627978164497689165370590175257027128356260866237557766180253692331163820195963889802218787514340036314789621944722490827969316358503558850183645392638962078967813317896317356643997684062464950994951559558521691673556854695339731051500447325939762655832995504443904813804167532979410757532751188973487370255813620896702742874918857672332774923478554411525307412276626603981994864951641020759281886803741439165974538398729585148920204360719412148826111873383619517459383973051894001403316559526278467757983193505567450120644293977733109963506254242325965910517733315527234309726877611858112933815015726111163097749294202238515146053703438862495370153528874950127188111909070162933516714604360005810263000286985939151110767585390418619465133432640178347904846378442992461160786100812967778109236967120381983835652272063037973882836035896255315926545016112596297806409333980767066481540340650787752620832662757301470190005048793253407491602011463516967201303803076513216322049695187009736661130975137846695986020291931213932653564504251069685418432690965862032683861528945821901682791611087502351941875345989084561351709084963836496264361869490334217129673727976896566725891058805115264881052237265518523893934645829324236103019089084136844769340081664734532228472262994741343085754597543322463611721007951598846118818884369084299462482840256154802358338117008764182141262924218553106318768920390279342861000965904133745376318746493640615342970819507101216984439440420367360270018782778522204051059782488090283261286408356556923674898937002752236104694545960858864681246244802600060335745414542698548368677268721532578279892846215099162437888911526770706235450249942592470286244051503964694521561806940047107506441334264168184066226367120066279251656805367454515299005534056529149790232325034401597930259695410877464157882178023065735634322265147053731574282546562242766782634855612623220818398574361769570145650821516299639379361047122673913951001363940214120484525314074891551383676566162142950032546136078578812231504949016183559078857758355051490104378460668620930861829455319253643443184782859350587077061688602338584918722488104060634811992142235953760963243490213728040651795963615264342935106751398270643496597052861818066074792738102840954769203441623019365643256991254993898365400340926773981039490182592123672002806707716335798112702279857955665226610641499884032385872861348617622491060429489629621376673247604163119861379116281924262856196038413686743302284542740124719846185198609578663859344781094986277580472890627769127375072220089195467381203086956659795138319974555955389196179154420073490430056402858578928058439158728161052479094917968201070901513720277985991533831328014661055789483933861391629680710758622231205290929403076718892102330473850318335534978170670875280621501099616458750901847374888903037608470949684076597207069983851316761895888617413561300864880775698281357108880388208863980125745560826570692301661148987788570809104966386576909874101778289884839280630811592191792603191510342444726191219829248989742247761708413407207615465200397666754610054565398283864610074426694118733213071249555322800736948228026875756618348881888719480427116340066652022893136089807503090045161962234656365720245650291388014878088511796188808260494151192996003715269172156227186674815715989968275888896836938787828487313986922188451594427419152153850200126292332143999990604829543119674742444915477703165159471770976583012931379340174786833033976127228460793623958212935847281387653965657507597404035233313521261337252007700317178352932185274503017278752453237134160042320413704521544132442256723970910826884874258713933979893640350985504450274047478543749263687564418719133727687962901850393945360450637454109909592787530203981627836847016791550224844999747147934166507693480352645966521565206992468689570904047470258134494012614740139892804815773889981705464111862793204180637503927269198317963896767714451757115034291755140524429670336084308109880913973590649456554138858352204058648982003346650774820697548663018006515082653443146611268749647254240033798628003082911375081295449926304706589072619511815206419567254694290246705694940163971714453215685815281275425701939551102841837536799535087143248549446971331140293595169789705626188504790093453021588829650033654009481159934731806892772391412711656853893046976168701575208595200831545129652845500554023479787291688461142864591206846538329317411698510320215551182926385494182964829346780399705630148042069835385275432091579734434609317807769234506571649105758785617395563655265064034803328233042917221208355171798259669920146516818750628311963994116552542350403196026360080902185157790473236657665495995656572586567411202487813692791994717661738093038040531649800000684041644982556837810298855677102108320481320753621210268676348533423965792212884089497717386479395961699472617172090309958434605858672688841032011710378105055602798006761463518701990286519276838347986368165831663242191321999993600626773338279551379488745991519604209111904396894460183824235917175176200612566065022884042028530003268533778995585997212911024276894381668457429532460559171186176897414638152108487539413002531359115668884103895303759756672806312548635562411297297302958699264877487810356427371585963944777573955163222487798597499846551883830278190364105555482021769632197916873657543497876552892282992561650074035786718592630978097189741643809116365405972538642952603426919722627569433332413279445554689405123083696808524672607117443871885928813181155037419575661077245857727702080043422231775209312366150452554576209213870739258212256171546486195935305540207813986103470513353037678693378974661469835324261117183159423268530491016413202678091573984300273442390247895401830673358073171392076595932515470264927840084139686741752314890688853524817125685114350479954858595944809706247803448595231375029965491533930705771828465316779578820913771648663437029457335337025985761167901588561838723594579168016411161230901811125966157422742306646056800088567834211421876045604197881660022384964610137952115153375414843744986392687395689874143181726205022442145571277922302413682761831760802974284865402473294264125571976860935519365298701702796307901923013832949201088967017466254597034662026818723822852662779555031323702361186656733413305854535554302683876812453133621968972821168273102080186244871830497310656059097865544688405677571536236355518288994470961206257518631732214512412444612817258623302619930344772290286300195784651869096371759169480138220325148536879159280266680031596380431756675917178890098156999075072794852268508519779611686690082204611965071223431378740936790676973315658727385437805192498238732874710530131168123258733500134762343166736366305970366803938147827141703314941614786967614421808363680163945731490945048438392629897174352099446242995906151827456666216008948434969132691273300622664940625150889493456290686205777378718624965548675286624992038161402329221310506487488950771006993429363879641893288975519010986028436042898819067769350988837858425178157954540724960012315378948043334126578774740204828386854335865386201688843863225490175411175766467216926466543847740405071538902141429161587759091922984330453683849931667571075640419850469154465855340775630804620915414763718681240434811367232725342005044638291551836580436151534122717323864663886185653429440300787226134367354093666705721137224852452791184375040757411983246836906305100893855072383878649170404171029855628527391938133258233946573460588593893026661668735305709464734298144957522319308638227127800616171778717468839728287267423177173720108091150272857253546371274911550223588046853763437529523067011496658730603090369882901661569463878189951818838921250977984327270042698506457838674130492223236358102984259393783568581859568737063903486279352381950858827119920979022281534504005048422637687543817115058822845642817316782343334636175590811172903841182838659208407466321615000883251114694379540048737480447856641420356599492226135547431523236359010080820280466455792625886992274992769257111653109449364096659072370807860304581524168117174118378267207859827052824009516921841423444301262124422895196935929624072018035816364213071941715534302064578107753882758494714073346007786703246188512855556801620118513724807253515449488346838512427388744149929393158638105021381375021803741766921280628437303583898776238540259078082749472368370580133919211960700361786109823012135666342465987161944415598635039525299478777067851923894009693261411716643929724164230383132156353421333126128907357814681927397195117363418327982929146128597303798908079323779495038235600014948272217990662953249384541045035518446558344354690643137468526490393505158627954810796067099216419496702339953363323661224024535006562128770651186440842729169996033086268505259434994129171704249785606822777286845027411964797254471391971969206501893374861795469739175702617172468723474861903671589379227793292808354015315257737788814871992682432408234862329121909947734500878160945994346633403636160278804081395087578357203014990500601811129597324047422728021983553412391129259184948055501620395295008214840992168623426493386629073206369726015068322116885331192554389559668469993571417980228586391943533265636039881535550010600398869586779399333372750632835218616605724186564533024306953371366158442565154692372650011847511392903098475014747142790346815555796516305972585101486294361539111192131902841985310542089058842077635548285831378114132165144084556111852356812334913015462305426706363161712450078102220157106240849916335490319351818606784900728122136382975497445412638395875736014857176878069017233743282194238087948560685418313201358605356878003627423378377436411154553665295549871467332804850664432197242779481514343642880396820737137957501325529681918168599606891597351313962919168592228183316751202827016330754186843230433497835070193913821373542122004919045009096230656076065290863858023133659104474778294429958587063060456793584389067165858802716591720133032455534487897647748806398550089768523735562103491798659315889201673658000527403803194968435479393182155744523625617398505319001303662165785522450292777102592529752584124913982212619665131888494238677041663123911100730803485426376328525593303955508058034636529630837078027971943637272440665476778706121829743171653538527525378989309780791271514847416006465628184863074086693598236582688662567161402943603402567839445225457271471294485147231923426577234114783578376963285422901597699810205575862689257416119772747772071497852926816913957279141653415931474383875279994067399018637205078779461129781198370079769692562446860817999831856845243538286100447892252479668735307017129062038842905044346933237640858091568094393674653200230653836267495896365834565941413903976456792834084802647407213671294936754521484991313207999718101191681986299022990234262137460335382717882077738704174934526423104780922101004349398351306053012307956851401172527490097028359547956457770666740496442620340845523279581347531732460696392775665276684599020014458272445804121785312384667843680647274359152728281823452306961500273211930092269451126637969877080168560058064158036253701299836106839139908948015523357986256029405618081236589608903224991437274801673943358708451233707712899775602181817489395440915441405353414499817618939928878376264793051207820452911029599182382693460244596565830334843842434806414575690750893083268093618564937053217818589141722428679821501242569671461393521718764473327718944426117055874618666947153516610961439954978622345783195157651765194958780518410060837842855985302390552104825530109367225172421013467503824673472492526791045106498456311643312918805323679288172693776732285371621718908426287767112228127978045370158171208411846264265362692965454846476387957532081234239963311911323624081951608596811837726356677709920087012688228584345130440604698373064540470554987406311173306110308017270775713952151355191917176476242075325151323003613025021574077330434817819499844021071463849989009987256568043018397361375539584681575067289314256725475753054983301086315337017027472553340853128336212323962705388746624383156729799002145833938366365798672929519980588153845623694818839484028262628070842945192128618942693089933682414884867370911952793524570238543160041550163706180848170911806262167661420263982312690180753375100292096723832988863133163592118549195958951973321483607094004452992379290464752403977787038297297094802794826034564164077292640584267479963106104833837228168418280619811079493969859972997298072476786695144632565947495701309346652075137229010655047076150514898129488027814490267684845968884170636734114835405207180332423535507770091632463732258860033231029766741431842320843142570974296587710738662030360107745047228853356645014665037581798630686718089793363343451812600900234759811103518137150113978553382893724073541649037180202708101875974414816505861280818677152252595072765532128951824842858173476671708958180425145328838489012378763894662998354508952694379218799202283189056016201389541145138325099085487472636076910149577758805446222166603063846821188552908195247741672172207867993333836629204474137215639051098807763130361535508622892229236898822056025595083663133021096096651665043124673079620589610466330402050046531427217101740250128765660166107040079351787704282126836500909376782326770215197171433909635321008134784420838959136183025224307776052041744721466844917258351936085167285821271785964640126181576193441710089685489968373878078394299518712842103955821676868634226368152620874539793686199738136842642564681443712657811587493661581777053590285688793087576922337215848538292360362789095866101325831050062550735224215647109697574702526631806516824597162794558496662746687551972894038071133851175386710408833629866181418360119555368746353929776207420110827557900899973816406258657767955249517498639233592762572243489970218368190613551983424453008748984514230748017063820349240054004655140687324792433567343313959890388454541261450877079621537760212912602747167865894129066484478693502536467532627400423682813315089006535997746554098662465620416534296900040605507325682983276853364990181882833732470112614053569862720258445584133250190900711812649671014148659974449837755532440636776998883664118545710728819174067386250293382244878681533358423329514939837953834703607194050916433991991022051071481961856185984837680711491061409523770792521420740081806788221856426987627305644864847900127469287110581299509945823047945358469621246241663472526509043675569242894058395758128370551521482537007762272646719731267013223354033900930706715409943435377914842235139973359877510464807476201398740698825614369196362297459783733599494880709761869833362500370485787794367636432609722727623178310372314406244527730010468496967909617296337980759546809052493766568913690592506013092739129327415524052348263389163775713442164167425021063266644492088545113218091544357960615492064688571014043447514694226419877151889091031427468610923854293072367224192675525965671654184882613590575965317586972104826759826188907614899990564868860688171661971908269858831713388020373032530340202901979375660296547086996704655550626289060013284138275700124410996232830659808318466933633174002106103037933487580180576112510690099301230222843224647404975000744937231664137294324376533066321282403036492504549006842188470660572116878303282006517235942627781616497510122030844069866199240832268163509473244468844075623441406492518650789362501359793438566492834266744089287509055384250363766021254170027246702235109887491512840209355419578294477759578976289452327017585639003116801538148827564231834603632834907302453212265387007477006421610673711163181789226625517305474022599687975688977675411111418711100794065266529013950330016488162867532166497371640808593617855049716245544237627623752951709463661448994640192630134583231752734749288372712736070940805249085370256093540879828121675498700143591749904042610704001596135500202757903180219506754296567925969895672473326402232546190662571656871766051267751955011260629958823067076245527432861512685132847578008818801292212005977160709779913357158121049753542436799507760529600455690213385081674810129728315851771526895963082300174533244159996721759632403452705796130263375420478315452462156132694907726012222378217406736481385656454026708629360679353164794638159120416618158743685745838148717165311981123962682962011608685329132410462283568574326768276354549385971075630667706914589413516262412902478149387389425668432292597891551968693089435350837467590967521660254818185699235529245675253298874774247537179325406622440162804825338504285673562430667184695481353243784454280937509205616452351005622561974229676153080701950215312455985279016078933958391904544377868993682321430018212811759987050984304569245260609951124155998640122771107410215939971908615908480502806064259464607880196873059856258926100714548258966735455578248936025074442015672703645495546430606887302149450317140706713225554938053027598426280742797879006267804279845116171843744962209073490641125301795018921882497770808556733905280717140391698817412156019985329669511470163835604493560481447518952711508485389619074199369310692768347898785538284821064372898594278410236189406380046285765782607533248008713308100944681829030889243194747233784660786345337253847186586377868163708761913617185954839516717906151539791680851240631267760745604657738110327881733214143750292602178848885425100539192646356512858464119100559469478733443816368301847352720798758475405194430680142806543879508574155199164458061445238960486575726032231482673284128620548428741233447004406044992784216734817474415394623754419591306013662792665123597143363251996044494476866105845270210638123496814480993969130974728512585342567524986646631682425715385762230062264698256144853814162345160299667498402700918705049636353744564873061047388797522545955100056728114008898477805599405293964967592665027257782624334201668946566030308358262875026654439803432754895459163853180875761024123586683216892168925173754491873476121062142527023950663937670304974546162345454906650762296200515416422834036051549797041693028457658716534837905241195420048060082829682409263371329715128794428589943518618635824529236087207545565876845613855077005257868294381885942969529137755757151850341945794539513584532341053905060114823958597925617929932412477852702725187961430437338520219739903637718267119072999822401823006100741213133677160163646996012894445489041244206515799654753200634652807441675077778595837638143624692065795290399096003797977605250168959700392147126784413681576615019898956427022689523445235881193567490030737596485176628202475379186891851582046513397452559812215724277123834192063474642454070931639106084327675494242463321703775909929286727176604173149398172060467125152245772754128838117660001481867686654006463610195183822043151666573344300378020499737015340699672605806897553502303880122781526942685867736133207967412104058220246057241282141474353127628443673432055034875588345947860003205481936471308033148102110323955641770246411409766288917201462424381761198201106952799190756613133110989282357667123292440243350786447420227392873502275033986907324414565438140369168395868653282342721041723877114565969343740749405132641463017348720467535601432847220938654459131569203230289249535866437371453780777559850030612478695952816001519734799294510937549621531107309030472873411215101849478366682094511687451648190074473741442137740426173221507362609097576773169874973203531583035685956031819473083213754944530869182917910700966970427651600395319784018129638578267971969972907508327411033877198634790691845779948561516913237590564551785166236013567653862668026777106213416340525562319784111902329455337336410321555312333463370149239768131091056520505621718836698478090686749987485800159778200070577390956240521479464401916035981675576318952961066140315703821530282580244457160996371039140142591879245876588458727325825555745282075782147342557709215611508612461571181908177358454971314032667455919489596152672702945582735991147221369990227748584911551854510567421619809271887422135069625684082144697497837953987164000605361714909750556336576871564395763800726895287621191027307131633763987902267048937244359594703333916134434894645497591974262142197393022929461569689215943579851725306154074242124517407516632020051544044502212261094250159154483332781991465864145505066096606761184942670544279286521492352574159427100670841132617425558081769178434024163722548959069079856435715649691476626604219285570546764571087113000764257831569534225084731866399188988466772430461356027330887544977319147319948778090899898817232369104342093076123971715753770119800510203943515426909428442987337826332596876372424558460638077696955312309889464670707895805854158274805580394667956425576010660204547006233983525101965617919368700135846117037349736791093181894723112648805705133902082140278017313851543198035246948071966888497639603786027330788197773487311569424544229844552242261817771722845684452904740000476379140210245153448947077606531642124014154046574547911740946960892396545981094817885525706749723554426913631167690434695367871249606750680665077049768021145791425749856197447924220240587094521451999217174509820017279132465096145650335033512155991611940657147257806282591786453580007337450461169889606169554747213578431531994343997746358233821760283427215697447688276714643322983871365465181684058329144535407496101341484787178426013324784779601319416802028507236002369187021895810913765847691504988044237622383458842549713059672145478240624373688606890502430016056139548462080931378268337561577760489327270866332161638268480392497560637459897645072517683725103332367496970334342945757493396154380844618132245934783289337926368685006244409939412208872720039574657407178060383862443440501028767046730533856280876412473056105751379436930060447395310782189128010066453975723872966675813215324506881494354335279669793277978440859008357436814694094754810948901300652425199403676281334039088990257224823848347549804540123630924846816377653846942670351863745157420747012756558014408059002865561885820303126044007001402892339955376498552635048534549461692438960950114577964751803876269071616842966278027683428024714930774694919484071139319697238645488762303281571000004784617720444485150925806715781882464222559724830579482935342906945539304792962756493845310555716823135187953018630425639040846200202618912058121315637541843966810818204374705887130320066842875979744915737015424070230030483764974612130212396195520849488334599550826748414262406145848441483719603609559880543318041296164151102180802756755778363609463374839920346850386570842495642624709087263653726899172149076866889744413585572242902384435399402990517465955673666610952877627620707922907201216436124422159741083400121575107886215216201398956736609774648589020557186723316020764141113679366144725537085881363298450975689023653521019333492000297544764721763133512533357970140899809772046392208937278387972820438540432913135471692123773796414296954896101073105119966219723623573161891605644480945658358104868684359452538010118601757743700066285234504663081354607953944158884085780022659151881278405255182777623286474251315270741804164135747901100395002971648551714637291259495534298925409168616296638865843970117527320181515553738080828305145069189349635585923476090770099392058450388466697433250357108239833422921810379056252893327862979303271877731658291943348575217928068206197937450709169362669398275883666135633769949410570784242301142730645254141369904887555388564125030325639736713742285992942116278993845261748563655149834530204367083798619841864549299174658733794064067114903798036095358869208212018266908775743726280149592800298271287928102969252370908020803817349909299217282020784421453669820533600903641965820084706649583011597274072346129266143046907872207741278557575609543715824111693865009574644039360518217827435971056452029887871534130318191085805326594986805072266128037272306392434758785681645812273841981859033172134742691485729181344377385399272109883633651577225316380816662836496263117957522291482491953524101188460657057775084156260864216245382867218769844351550257691644392036616757209968164953774568992259679525666644060603756469952507259099685229448950288156417374120904981947342143923165164281384184486539181112341817026846425534817950842571524488382155953913690994030240513915487654388117280186902547227780336554277078115992370215460877183614437631971536184830224348320710867493307170873136450613932695323272363808078106310877440100453361411570806001033180425498887761585042774853397413718115016167946446873049106390447841474909830794117655044285324675758604891394216135337093739252474975418203031001022722288411976960438949180859949595553570816957380170884359866761820968132976652693450048409453158043403071770933120967893647886565126100570959461477185236777773862174830495792567555608500128031827055120120555198363566928447343801863399353527690324822728667042277231968156201564253416360812564802887859243392447201502697833148313852807666407399066028606473908660513972698617598651881838449232608918422857267253347481644384515723959717544257808605308443922557782371795684662541184395841404219745796253708573025468721874765012954030001597426921757682579836138976875975854763815379092280679117741457242808631906285659893862975017540867182220991043870173765256166998793946804771399252607094582316199270736489780132986124859368627101359458720377660028711707913558236523249497382250160722079111630355161547900731720343864449944420419486558129125450515395741961119758933205322509431432174370980331979276320605890457341382683304085206366472815442264726214212453525470263278748806618779476526601554934819235643395337856781838204633635111267002879340198730143858014167671077530395496011520467822002868321216053188439616018789302442124230756862330164646701442421146183879446992910708288672117392785617528009156692339208361551088697470182657574895195464561922347845380948970500350888976945974592478162737041707449239738874263484933532077763264218124973870435524254210472529669839129944521688192652538650762569616357101977065976455606517128143019239746843280714274811361320282615096950520581410948415068407759482404693907492523967000895191054819581253804460124373037601716232780514408073665211637309713706891413793684743555292263749873712675299584197906824781248616237854632826996444143580429300977515334442493787226742604337433326239367653027855733942317279477295298165278837441958796162539623545595211063904657931010699114341545157464557902791924092683127723593831531090725882299540113217480833247141489484478662528192397428166201868922115941176935962379116415101088873232328251750980214576427192163990434784871849555704133953625518397332956907244054293090616314461134203240583259870515149904685353007827225039490019710641407121311268597609320917435174775699120236756578620170583297772992739718035356948942940067836585533406726626030050050350232382635936641582837684154885748502587044423615270494440103035422468244042366497089906655918245766267163007308493546273230858158636480050424171943292824287351154673821719840412970092386500637147641903019370551700149787672076282275383670216970727528635021572388912149175714804139111919524953640345084545962357579320426669902217996143286526945073076912098364111260558629682205800557298619098134554934835485850425696234960833869585763368077300716813681045589831871821975702401783111539851704824843526917158394208949444696831453864708207165498577334345601861204932595477789429366925340243739344111933001011465439455300583523446707863340853267618142399350630958922995251182101876862306312250983953134422776586982639481997210317304759928981603458391309544968310777048380273132517260772446113240958476885705666242969765794472848863175448668095027748310780305120766475037706409236528837052201516878228838364701279912343645241369014805225060300337321923552036539033189903092523638101567757581245942992280049695246371413078009492523592454622531163002618148368799008612404776469431884344458035119979776527833690011015542328557722394595374868262428982875880204744219841324423132051202822235635829465326561976822128502900878505259968129104655784609225823918792429164717551166639345010625310464176762452526103516746685654615450064663407752129427230570707559691426298081927060030970470328986131911417161142375868835691899301335844146322488813378568940316205255776883216338887656425648206936743922738985580503094734151621855201162490209500928850624962650606423941505500970467546014524885720224184273726793022860269090486972184720439057653605846700629421387269149637164526852206606379812327928915802516964825674756836174236317526916473970198064635027124265539961981564166673858750593469842720016408911192552623219217765675666626943530122502375073761495318266046082509739449804508943843100927471122253249565344539524685517015009766053590321376496260712618088635634131159858296322361741239943196363594890268817991565284935214661010191210876577392651722390098702892717655921066461489244777592023856666790386288402311780717614323628071207616573331056558482470079920181284895745214595402922032560611498349312514654926572889842743720248732093963513881786020390166359709493910120469587206286092092449915415005801960506768528551335194708315375789372777481244703792538616513305360824207499914160962717969358216812674477904480079083377011530996347670642565653760064349820622247000214259004661295145884981513639931796565411155992196782964496257270701946918993056807485712172163759923400921615530354695025772555686962932090764609680158125563917916323054480602588715143687154538539413597399508520792173738819098094124178329113750727285454767979645917798878826615521603698983560792043453463523366891792425005498055582874851817217249632769929358308750836498327031163713479629632389889836943532456720138804915597400644928950993344624480216685945868000588096916776253374966699872806997646939658702903775090415280585834980488953844826375994635404081459059389361697136566864858671149196481695552806971253262713298647030356340073904452661546745735157816832238228111249622229829930949513305310057090855741834596905884513661260772198841580148634705791407672552074398593603384087404296073894613056293666672773453563111856555215172890860057044221539409908148992824985872523070161013935027106665029078517393039722873026389397800216278168503035500852995496339035282159044638514947274466236469330404796898455007120489595520331960958258302277787578724028740526524180863659490716861027732907962072814528238639078005770942612110968863740139921944342465637039131189837545741728666177718871966753025646056242881592865851426730903966228191279991619894901758763438142960734129950831072091649120524710503877163191176423946748875231547978354865440894358479016722362616453092355053522564492957701450394701911774515687229987817162914472376172662951865173252630876002366192672279972329810421426375453115607958851773221662938692033227156252235685436999728386745838032377980065825635941087401107191801042651447931778442070220282896483679799554425509703883589035390429427663177219040783080729751318149087531355288731357469175573622825032610927512266810109966941345338220618369074776303983559459042555100209692916859452764452832625372488017005337724870759169224672163266181548798133483104757751151259681646977785727779432517159369560220105549085306350498625136977791992308640264724545590181378314412153097200574831647955039127701744946579589441752999472495709357995755987357013383991583577526787795363717865363088679311906781567089308892596755965418603607914141136198753607824014472648874515275356463070847619256573508141337797072512397978338128407719678353041958453477042566459610213262526812149492827504175838521632183318071684232766057972355402399614184456528167015146952001256432786593843399234947178226989206311498142099372987250236357400702907457134880048143262375928565673853700539615120081015941247235128136624919165490713586703837616286623091732512129567351303259461397973661062477844717923702805666730366335766023851952712416011328624918611908245127517321081427714078724550456937800905996139169117573476962943287174095389409621345134491450187423604255658173122125789358171093194227516496950562016729712931261946441289954017086015855527537830278300183770541820031930533920864718248004120416388799884792815882842206186215113697042369688683966902901399311045532479631726909526339985055777575291875866276409653438285776954302843719250157953374579367670318462591458175735729939621055586013462820870171579620216348809665754019790826362522219370817738225530232023163458033770589829831979009502288751947190129253168984766835849524088355363837424957057084163259843137659575820409637753265485407527055905717202446493500785918740674036862527201862412868312638529452591476854605717361260411838914098432751258458993690558573663680390341677153745816089995226812136393711816029922734116892074953147873243742159879572320896291359327998795490502225791140417608558038169266123354713273267992332278511165046421497650239306627139799014563276312517050674337155293752096231035047072592994425199955709338022232821337076682108036040083960878335033674276366946020116141774222312825965527810116163288787184534386528859940855828458641741914361610652020435292491538315536220027859679137719672297517122912250372750945358053282075126118744459403894899643244074962514081873387183486921666376471190367239896222601281696430027874609911907529540426064133677583013059973779923466071930989142100415870314090487052618535225052992748503916725245915653558397610186092664729717452661845208133259002174301505306626212442715855150286370295290049293482070759636991730022955225321598949587738352335208050264747474794054789343830523798493613317578115372003264534059596239242402312744612586784023502962807527535647397572804573643533150761913527193736924498072035626846393561010212774674860906422286948298454628858251935270566996347767917450372546296917778916339221638966100796762432761056666995520380982420912235014645123199249164183371769394004840802784305573401279468142810319921338584574554692426791440239917261071176756889162690700313584397441322130581492293767632245422461644337091117377617694620198262514005946898195780708404200321753051797601975099611723756647092392805209678523121678124831238814603880540296948776857492609437631497348405547197985556945575685589577804294899480849704296880867918238284437686553677128222242658503648053180698149136199121598265539085816295871585430766493945286657507191305199237155769828279367533660577063651574763728079264685329249682322304080209492343103167442166255866166980362001789120787095983595701562490172484210198172892981602210556451526932108971982637051376952895797636413765788702792325468016498153079118341743231956940487646271215029698515649298088554292172472758463358863297293395572004872215416631009582046122525016678100050084194159583274572175130820772086248537627965040793271758485381384122404244925659728204518056457992212583833142781682744766939879877681474888208191092700786868021301891110386189747462804224886022097761019916868737855461711670237932373897354522430942891348236948267204246264903235750898150454653300331796272667242787928792391902928428002794512072326693446610609070381649244165856847839694557548848189116074480548525859257312287954210009494141245995988477762606960005380925422361259990004141377686982713622129075323322639383216060747615356353182780563442197752120120228666920407536324493548757481503715320501120806820281966777507593986348280234923575626024537049164289156845935921481242737408174794898217556979267906290763391200995800986700286433001165060221338026533372168927657070821896782487022790500169258603025108579876600737429992653205302077099100431660513563773388220263833900501404271847078090341004622725506955901381924835935259974390246346841762579516349518927088261112675358395759660282329943104960226063166449738326619020961387458296234016194634672903589429040801890107656889888812394648880073455613263074444192035117404263803253774025632535983323992477735565039543155573801097096635644532319930326848209189903040169176499521404704931909856396584845309700253786473414740020645066677995348435926833835111624803250476486523713265019864593075477045283983078459731468060389875191018387297917959726602171010247757409607237184854767607088071137004896045284811544505337180862278383866866610844758220896631874919446404539114602763517016074602722100013554381791592766105291766618764239369161836966846379732092220552582668482080257624288570296145611838859894258076992981296878827585254703438588671259946861460563615407842569592183592747253051961238073325666065998258800072063503661041582135976530700238906193458401659043814000123836972292842481602418741103344470249647881418768185561823097474884297339414851148974219538154145806149037913502398858284485240805986881931015048929426073822208879720944329494757648085299666208116014045769306315869478346697822829736584893488738343078476817995859195556769075935443886301051662434261931381680749339837182553541815422627891101521592595531094278299506418429370124281237692929115244842941339407321511645420082605504879599473325487373935536349556676594545727324289033294494609528148246317317703859241098602820457768765196980741441431982474060835903135651014853490056816539503654499735722575079555875134530235959261326196717654893818707144448134119531852119455319084028523948342436533998468896683252156308901003869787595721189312445073882348562366398831261212042184955211089139707294635143614343448579171313022340799558937767614943219747262851694914433278067328565601413643811349689530978027319796315952505403218172018600229402318217304852858706173771253019712249637387579036074651447640239710178646744411008113652852433733484332195913132685830193246691585731853835511122010866239205212293469288254688340653089006205905161712150244297799189073696211305551159044505653284202169171029756329971990532733722296641162573017414891501132797759049235431259118082614613954049254930098787593175716092297570006980268657397584838728210025538382962368311685715175262104729509684116696967274144008895123921457299319252193966818246100079111120914114868337610130066873118994973948992195513810451816864675231576435821201940017183642516703179486300730744963257647658251185635385774762933941178348512557807071383336350803331486987878263559637941265561772938814824996793025520106332764816194145750140986337280328916333423280517831555803088166747956169661212819400090489166961268739574824256652864113902414211339307020864946933176586224534788519813378007416415678725775084338100058710916505871373868903683758818521825181322092230418060668850594043075926154773734748477833950727967701807505297600001708382974260261806150752741102109916978021485046406049252796781081652445897368093350961431283193810891605509390835265763444714937405643199349419728803428885997517291985544584549857694375858305135415256114522151072259630255524341847414827483912744519220558760243773414145782696102744490902961221377202028313997251641642664913765386043457097686104955690759507479191151621293997356636610345447341405080823370800649091466461890268533948242040203371936354315569458504352745489539172263368472476996913891877677175102707893958419636485363472545375515053768918880758961036433361630043612568771063676370906352280932880444682406957544991739671875302803405060099563589569969458299036301510611737355044126434314419783223129472679163095293410423519127020837494944830974709310066633803663807526263638363385514356951294854196987431342507313435562624247962173439966983557952055040507756391960133607194181026331269993697243959822613392199807728517358000013705672706079915765163993811859952787613874253479476255548450827921581643210050758433536671321389968199282189483044010332145464238044560788271235166244316414401436262566426028668543824730042736527765359534551842151580724377555426497573105363947466309709038146317535640903814045288514132278295091835451335187904769779964142389502998726640240069894194230141401123835974605087341197011756885353859470574522165643497679640397669782922040650321982038157214102392736928477857698785804074970843805070406226809904083875157539859477971204210501868702633248221106181048683494392269620731388005820830283987192465574852352598210236843734619549564939316039660572884217621391813060059398097809450364144331202914147681018208210849443038533623845640432539998387700744864691726318995071177407670758722485722000411346493745748760285162665025802611782461753308118664002162191325643550797864352352273403763275505811867258346705679922294305787581896663532786194367468294217976850375788659397809618125452685136052067434324810315599031349235178976160125882304476501163194504621164423766166891933616406092815877039740643833116838936269771097332798029735624407518252484537900629188172227192267524225330167047098448013197444281942421342521137588891200833703773278432655019875529633774225583057728465071644214041975065723985002320474513132375687550823310186669141453472505402634323812851328364557404888388541791241148018888955466410649520464412716033667123511697478492593917783972878841460356703847450700529592855895155158428040083953416589411002822606846158420494385391739073908783689382068607403941096436620509110788549531351548370673257151821218941757244729493763387077372634102729229182107651313673817847507242440383452448297401760839379222017134017907889824777851948826801118605534829662571530312561499431288908069533808674088737077385929800254441756536474348120623035129530092645214763437077327378100733607476739263323821981678256073145328417426635423496343168427775336796691633915006285394928596081222266602886673939767350630687895807832897123993550452681133896229430424933301880760251204379385822938935014518025323787426023223931770621117925791375516518774670396166762247160099699287924581029113758404133396275027027761373246158724025510785682761424552139500502185982324964384371741042957327223108335456658004523861513767375184668154401786080864388159486372191663708442085945909141343060323384877738531250883688328904446889155891087638635552176207281613641629895094378642502648544591591740600798731751206886106730589705013480950354833429848699232429988711427715382916148139809133639738828637432876477757772431334056004668597124654725259700002726659806820795487770960540034921455913351194101400253515502156934368268092742248399281878044577281282831671709035506449982683966720871248841550353284061205523035498293692798697506599955480741233492662932808002186618701902234203670086819303741526836882749650964882143661565475567173444151506897444765444833629914022285784088293969615746889850989651359322455247890894134912655803268463012321731501365753271041191055273147452980136022907280966748342322551214622007682085988277809245299143104475989401695272946380274606929876732419813648184015317635992233768870451022992307748998538492138340227280983080286322259699161635683525958542452092362751360740350224673853968525279062075410065474603229633297857578483222592429848680604435066575054587976558019846468959403361529537586233939332291959263932984840426614572837023491071071848373261258702852612530947476009523834871372936149086711284502689637426303841040785020549239896159415875940958314560683695063180568235962294726470969293194159867748611900428819360681808568462141608114527325957153751058593122294523388241446588232991561074054498050434217025739275257454468171830854262978487029388178821157877025150020814300590548785047161211521239048153030461598430908430021127354966686924488688975983355603644325310481922826743839794691321296299127005805179153471359874118210824474784508830175904411974036281915935375910456748466319032595761395080814154736573803979401744942990063840485963883591294087532511828229628381892737536402539117806161956655164242600953918595370107794640149946500727234155579095865213267097669488427623410164761536788196891562401963618197622470150148607531241370738348951438381069487209484208731868063536413102002820585712238689678952911539505425480094696592749209116590260138398471434644900625954301241174389000175816318567571437954248818577984205253420368528950366191545777102083434331388663145469089582889966157567022277110912137575371498622345635065495506340651109979783833749249413128718366075502458267799733988446385925047718918699647270328771170103837164686541094209509648329390744671560069945150542250823221182589774479051005602942887695718749803978786356252806759436206164972357356420607594726371052602332369652922501254070452289812868691259606552695399578565197083744203805339539036554626034248773487642221768727840420989590515391749168903590747880350046878261903564480661515770874381482538340319447352123049177066987592115519802654990215207131373362611979126697316946916005781405544071482866773138085964743511701528862568051614839550960816378879018208788991092834431608036348447083740257355136160555748377463952189901306834380233452913307461707391763645079232743502310529063306399321296956472906393435732225919147613201907950551069885173905517506398342367376470464948133111901102513317936784977156494296397192190471571287992588005129764171932419259738608648767492959728760109348281711854351645319711185746646644881640247248950065862897368275466743941510720849355385063197441971045562439457905001243979455922441195887883902095254852940718761571328954178519402798202363856315823033497244877815849580788580922750376505521569907424645823105277640123409944236051554795062616740206720877624558580756880912579550161051206761163329560858049884027588960485195064967386009639004890177353429408585877648414347322911428109617461397999561163944359600088804355573983727678701894112383038330673537999285781801341723001370785917477747510779062936752898385675643869015906080156127283368828236918181359767594160096968970906380002621315105888301033016684764339851065030492437590585916918754377542104971447696267925925004884151582160521721021255533403341107056208037177269167756101006836605335708010861490894420348875121981004722753172829328844583035041483716899046954173060398297515748528981058613413407580403887686696582585436331822474932976667726171498271926617709051409343930882745391370749565022925587146767593098397878948318574332774711792521225434061735262339610492072638763047525774105348084466584353603918225830074567059670841506341212869644795984050645761114738545048539084718576881318842263900220883366319441952098316427270101741927425380603528408190635401211266697826022594912346787218289289404662850781862588699161627424832102997995603527433858930145166370586526594195682380964766178992271890583261441510608245722221274605265175969789981162018271817829597247772367281127295934370888470532181336668041843807498649265292084196453801246852213115455773335541194781885091846064331475324893731659677208194501458467356720962887695979012495404167771648881690426461092703376423330851641593057607342469794141493382977259898162251905885876996777941965680943419196448277710083289600953211653023893542705962563361256841751911339975725390346192877779453784386407562765367087333365097337005154304815999830889499889933858981574007358506154809438688576037172978815524069477910150632487472796344045783957885573330926321039120343748117289546723382621470221070103505695503755138098810523972224687493289307949241808059079595150693807790714904338835047568511869550347662410521740897934110930107289381695736005212533776280210870268860139137929721975056055558247064992138173923747031080624102699194761714227436116191914801189245523708262176991168122958037216917927590801560716363803599284318981300267781280620663713244187387384672201507663008689559847351433148606581683660658803757546706980151581135698836368691369507970120252028404227314595997646053223143204218010981268262367073497719364382534411285090492093812091103926102860143431455293853241154401985799839488977139486841854412185805867860708478325627256848384312359705308663334818837799322247382928657850060747294753581176491417361647044790298382971293209790291073295561597388407756879018140709810468429385763754525108192517881534245548740561485168864473548403562351040207684961398248297174905878149544548676151838595440641991554549840950420262106327277995455880644162921331551408223108197251168142062973430928309546862694765402599641976837800388277768318688561053597243392935155092181004189049585812026212804595967283297703873843486358114601601688233115427719639773241454625048410130555065212692006955534984863800161377004328690407852042331271714863755870033884742576725166583261973619021227277847752077424541417759345008898713727940269386036027105495647861847979452974381962003767673401112684488224999425319200643335576066496368117227653927190929606366016892944388766358688463850220602211790259754390811301804548908213729990247007609702829770732486250427161707366003592573814148591784811936028481264979174129091806399216682300124345403287446569425852846123005418988850824434120538549133916344583629803393674855683685944187955355157647687151141296989016008388442723293133468476993232111240893735430551795395038117197311986313107190234464203052937743500283155047824948357382441604069027078978986187221267755565644958527883053161466208631137028333533275475354155923438600427605819997439775867029312484333719203589902304502259047938466567247477407542244148099144451504981204272395772738364139618064556536316802510448826299879062202045679225248594610829045084099738175223261112144698896961550829501454152303773309127231303820353881539979174608701994264804890865528241144017042838078532839254544495599773036079862057815674088760541627389134837188316660286243034983254800027116973946426640997446527060391270221823580012731463637395691648799158543911089584824072213284538078163004193371490147638412567417702568913017981801572767365806421904730500680705447085636966039779651244278656678551290222457450133037615346599550886061649912783480674829894265437810548231616870206936206863573897140201358401262627493899660689558743724318674928621672519912915961868335833516016927514942899309133034367487612474384358842736614713793758265191207898946693582429211087443896975656460061167988552178780925500081708911058624233107074121711836068274307969994672090321651579491929387282024433714992730460443818496127009803192206280659643878120774076278954389994137232077272610212493793093126207275877785596697044251488511460722017874389238532675685416857472090665160200445512073520039675696101391806411797962236454970764969780491706076858263976626199327570915103579473411520155262739067577075554921549184616584205536975322830435446878582642556489228232590141166242308702586207140621523303594092671873710035187427161865090368512303333805023989647270860347481682132253337369299941355931676170962438299925759670954084402561100994934961231812452652067976330411774575837046869630034095295335779548566077939914727285132086905746096714952306438589735315268205103756095693312947709154764098642588909189893400263460103835007065602346534673628156453915646482685365874810851742578085783068242751015416992434864303942644732445232487925780921949262586601495826138999991286101395849517779425253501813460513798221425946735632859655824706432982137894916479601188128931886233987157097011845135622296356962018721464172677319337649396293044557445044135909845261348351323167481099289405569940774919145059310339479652848062896166626302876192494029780252081693286749267529910089800380788268928704835841202003208029057613476922529412622005932212131951932708875192821601075324687655100223360681781546469219041808459899559232217230295867917604175782893220256956116574382794404806619170561732504285023970171993313354900233498690892982440512180794116180514911214972014350351404836486547108433750330612446213001055428891405856763867522716043624082750313300955336120887997687559605686016360730250695414762649769547374647119447184220626593940566656239761996620708918220735188213859646581049775373028776723689198643945901333700168891689531228326642424872725029029071649287296665160552678859387330063565672639040728530179200168999036471543648133901806980520121441818848012838876985583963535296585608037225188151016218111939571502431383410178397734257731007326877532137070675929976408715935842315788002793248513242791835723131122295064640070378470339658236260069896734446470881736344573833921061360862517303101262290672711129654665997835712967415440262640150138953279046704284051308034251933908666404241122306961314318366172183871892432647964422403357017343159441858302258005654017872831705699002205684070974398969612517439974132323984872356694209552751571597272963831024802375856486572245459256690334961989706784507730858048913347180002247638987116506725446464367300684811966717314630311638192073786572121975346595314197967459776472601699682531062120317825783885824981622971292271423037498556856006952573208835308207799102132480663165393557349320578439852670489368676372192417629572092285121375777892971506075826173396075344080518898837776093746813010707027423395145996784158059898128251922823430591511316933916693771001309955823963822830919382457600132165036971644415798210235977621803397546125681072424671873949264214464385432210641192144549162370192521310724643239453321812657168397416024629419511673315470809921956162380731170574232297841846489077612097784033453737944560610122711481183891587459069052097787137325048808961345692499496427360767012768376650017384024635386115573319967408361308978441018429779113764241938627349761637046551044016901497867339044732321791887468112149819478566833742115435136929745942155688807882444014482354074956612305747883451622560503629128715858024277842501157651967903514787558212132711598647230958520818228702098195537173212807351158962218619187441378680045270315564536786962276594893662571194575449376349365853067432266904486221508935028557234979615406992502940815866880925261899205960282758581971720469138303879611800889246663447277574738847787656977683574144385581914472211434014970974251676568947322838131146244965918467617261793902179731770642430758680942434235538594188185248190564746036836895098516923150559748574104229726277997599099862510338202834771026568333185566185022489493848897785892792655233875507241265677873441440052136200501599022524079052208843686320799096210771491684894024829412415715700486849924698367601840543773365166964484171566155447494082925360638710849959341398720161096268257059529023350718845893791100993291649457414119263771618590123269320134836368931005480201835127175423183793484207845489798598851394311695606974140222240018625925271876016228355766380259977243336250591628400681791650891019301005525519429326804232513265249681231078244997725339034770139788758864146463020842305221714016371097302241946274179236499138902293820803706874713404518769698586173934909310498376169009631271299529436203611177169717593834400855274538941370166958568746893987279246047181603065259582361030375651561371537428821181595720380522701349491955936751795599045425332403505668750737296632217852252551332286533065472514815751406293405249131557019727180893372378495537865884091343500333649550933586794673678796340317000554020080231551482721567217610434123756579100380385655294026322158013421352384864460761005868518089892549245973455631572084291189850996514523716786437485975841081558981253824847105983675144813381086981593768524713447866689128039587024499972212840747046774138950675260318092611237990767635588484244642491486297974366720281368796241418587597361914414499433752666791135468986956487403078386864706781839441370445618719268952874935933942032325797848692571442784847706180677898896572207901065404486590054042714095175811357552946849103632606723036810368630310302227688787873325681414055992062146466572486187905348323163980444756218135843615759395931564594151318867211420934175071494827725040776967637970612597909911884494393620889017175417456853000216266617441288555511185517827242066622624089543444110727856838233978106533081630910769832043203826212454639758037278315104296379880041432954041535924142727138123994712508868874591847037711231296797975823020434002445886905978757277544921879947636565891759179466299102320188658735255860128771305181340173265954931225254482229212803376849688373649213783858259249685193688267372099505400623193104662500508036928092935792001144801497166254437123398073452004537123957376172813394851206353087713040669264045344563963028740793489106830369412110556984081084439409749816087804619235750058417495982222810166990037889167423813556121062653457960540696251345290128097865989465707692236445175645819463831340578966603203420158254954577263397040069042686821733786036460891920708024887425470780138914970489769409442898301855607241878383457215561544316530234651494965751758580437017829885958595623226284562423864753643489563550286311830532744253899587763003062098700152148663636354208973736992825195458116808969228285694690288449565268852854887830810699502304734054649005364537210777001456793557018468404151239959534260827500346765838097070064015888908753359853283651640234992955411465722403428511369313199509302048575715137098534066932246844068930371107656793801833418694635202794628375923872819114067131219296005658362977085259362080089605176733904929488483092158366456681113793850120347676334838824911543607208469639753792355027223139251893044339758747238070638572943964572440602892379226926480264973458412172055225618600059550200065678851917949252608852151696768787914942019570955313231042832391748961571910425862327279051415824135183157679296431035581581278254271344729896245536532007658152580453839842223579768707037019621756855878612702836884004669112608751211086751889874568384232085601928078217766325108920166453703457106222801634197851398615105088768729729120998451325821788033517966434201929910027526884845082396082243275483219184475589524876779456172658272738387291751507910332929995241347870739783450908573566215885145792159844399273779368919270129688739997551992461391570401030542826804567999042432994094504292605237489052646718843627420006667116205993610307222653412938062197312650988771474065408961709833259514569666731243923796668500117625075637487606961687125603440497974458164578371154821965786871647292043684490965485541395682844772758556645541814635097932390739560042581569374075573073926199545625247919943062541687100955765650595511190380114975189339881799831659818165343727924669764464855742954533390084007496215164929031089971622269860170208399862593410117575834722320751787285416744895762370024462533783980420239578012245083635308572409507387773173121010664613810813701969586695253889561927800578337782891816386231579040530941615843831195384730671181552010149663654097341818210019434709337628504839277034210242724660043006458163342139548649594185095617979890671067594824671633917295811696042336091278734232153458660952497957230398907264863033918319728302196324351488896649077985864440198315157744570912297280809522074153877481531007132430908769769365836186374308257289351427472957742329138325309171734769761835416478675282387637065001112904192937432852327738587838614154379615742498145723697281554673378408570870275046898382720590004063233223380330801992619545701419313161179241756190082224748621781036790369034606137688390661209237314566040545541142140215291042466495299211340497042368764858706341532464431599867356462615264594476503397604524701893045463168757995123133004287678536223049258554339022658191434021334143515818766076393740720276979823870726925573648153740805665923209289019651388276314035726278126786086715182373153968835756590778469672080913024948793693163621477704591164041869675020322064698796636151948338767216397473217468457929233912220854422691031713536828632231311425036512630682734034204183899693523082293684817698876214985881618816619133883085874038651678174886662623668225783353584313439699289369306978986697931343268612260510428425205502329350135601758321983074308095341783099440172687181873014254925132995252790410204351391854692787073932024914334093140368465122131487186083473367687274386762206935961460426875238388720547358458642929727305433866885053320146469498776383617013250820726838514705180980832289000939170619924416824399065611551373501400141081501811913915790651403660341819181342219680041302934018782242494213413271590399657915492360404364220315946507253178372364744346031334318317484690550933489061148835775846497090692821517614661488088778160850803738549683900100645594655717148525052787372707012987860229083646593718549234405880188156035520389913384074159429911872041405454723074431849126041984973259315190007489033215745732558866207528258245122186254647144637678153206973535253369724349512614292301730658820284064193118476743653789497715734325203515725931893452593471211267161212242627158545227591524781944755677648660842758010014021864489116359641340737369704201183169471734157393614704813793002403633741719164129835508186272969567163431075862679888756126612577566531461122085741393033981604739354825121724407714640041661492205489673092538708163642335691733895381274112465428679955909734240766533406076998326988506384732258666133831351342565883294296847012671916668196831547359078072523468687266860743557887158379721140611063020131167142660536794160452790513355163500763823707764887268026620265488493552565410335949507082252593849987758496297870648946211115431536164030865624407219795364696628227601010942751953275617689635468919303036326221570680762257561452103717138342931168618530698000006262407474167263526382419371062799034722573576139836315465438995058625616723348013161083482499287197133676676045951910518920959817844568704944918295617940461599984400595192707266144097199969487033091828819889967159525777425300560155373351083842604614112270948404465463692836394534594062964276353355305004761929776820375626795123206435736063209157519596272446489109021205181145846638603850802503172324404185800728548707597161027436378371554071203624981091043412909991659814502877660141004323026805274574501107943149580079662724422886860997022950361855921298298231036985534616807110198928219583431926415903673835288130228415007456089930315688434720281176040358546978305668872918803518420423787041375695025469008771531242770533455779604028689959250728661719539241953494196691231377685607056499312593090214798314718960131737027904531906170016248953623654366404122321484533257481620982954024637490046069747208290505679917355180389356785854150934040299523525214079318684205403752941116445847164276104758458705804559394494972539376298009906405968836868724311593690535010128176627967279422264856516793366905053805098968266245237003235920988140374995247633890897657337420540709984910185422540832422264546019489943708008041533567488720142821462064096621791248794506506593792865035202325233413763090856160566827149844813804407102019765927076921068757323610289050908467202759632396805034427637524443408577870412883741229934949894183536544398407990434154238538117324628039821285315016762378654844243685110235270373212996371389671061795786083833079978364608465974899103628367037135215451881585563023426536582359456900445799219513286848562003649783729211108302919268310847464159788171609678334033358764801529139131855079299625784385125554203436908130873619798534980480183875170181578532559016506206233631108743111475863245260845967932993033487452435711540719586276466209979389953525639148001105648626718068020535925912188929665511024970829569109315347771813999554317544155370274462350789822156292117563081304094942216364186160947157088449050520469629902872538359814248097734945526023584760974936701391863868103916796445655084946032750791906253725560244977094831687412621939753257990460470681394516640852840859938297538636753366047199180469178070939301828084506069722084288663184403547822231532413220162259358898005528867096325491620947331644999734064173248176144397776994230912906682400075160855396413697237476445059858049807342253275146864697022113788553599786743651439862375955066776954896587717657618183742270462848137447504153741353277660647414811453185025334950864562784797289116507734814907915663860202895174092599345409741736272061672949502112259879196122268229174253013043280633617773436512506712635034500208910840592532483989530155360448944990772070836426628486507244948756154219814767064294001513513656180917876527356394295230069136141997724661947047515847414394870362988159365229733764062751437294453486983951114950393803370679610593402627244425257427961176908097506338204124756304939072847697930436351128423483955117064965171456098758412021252522131745948435182982535875413001465653053394166838672241435454851621690579238872458594719741388165194913538480273228392674668519238332715382532478698140337220864209300230191085099681139365874756395745470809607222936922148818065819458832097673153265669189188871131595175013737792291563778553183647009299274838869207213218703791399570172739365778912149618386914723164429001893123463369870143458628584325739086236855708184723552589525031588683417438564986694605712631990306369536017524674635471220893416619452358190267657984561041945664658849478814261245114779756706516682875651703938496109572162385776214661556658216060905552552008678141758456761612067136649251744417245371965109372373067836683497075726962952279881613368346682841579151637544998032782870009903039925652802160065689439521845704984247272912419228627175699316310829892468131407880392141711437160316212096846771948638217823537888093944116475017805504189910350277342902232817148216572429208194223893087142263720552002308987752971040080212768840612820909193563684598344826308975312026651656539998750998085096214001034890770483193891892879271970945850863821534176399819627821505342087432684535884726117830924312282638403717476835249690849907204464271861196947471698751622490996147648486938296493640351537663726652624749627216100606242045135172967546357815148628874185667864445638522562937495579828955461142416436549474619815711276749238577376151048092137407632325009468810413620049439151326104512936028400025483472800391251864940192642775755728769152231569492870336604876403887819288033039257225092608670860856720062824557172242459636705563000006426681783308886028358774804068173791934238232234736410836359086069883365268863250152906860440019408671903405023979370967758367212716630882311367756072848988220362394389669060551202300219731093174390321281417964526442493483395758959628573985329434688241268981512353162403636399661881412197989488673815782027651198720848259382277599802024386145427149712712608023307351668728655134788751466782593254718747254218910374016870181303311779101358200567822351424411776819868414319500833849501607820790075146449299516158532284661611287344153529840857935675275932881469982722140018594519036336643517826434265870686038792532865030651403772593518220423534835561837672446036639803581578095664169618395142730884644319427230754574236126197848439253388785806543154301834330900307938434648160731693483257075721452737588360004106654685832647458094934079736371128848509917388079589713775273808467451198545963615351290839316430333081257511264686978337149494689290673105149047049580813848736054001088171175590376278232864624488214779186704947574067839592912508919688478643228328489202110688961491210704246193575659146435927396701673832531814865727617101800717901036664983764672127415131944858888710857777978621861435102069437650211196060823059954179823586783589347884291783301909325128382852410958816196238939257040374855409796537273380660105220728649876525077994108487282466629778957062375013634814842549821617314144816100553993695926942375030473728621945183170902929184800735125288576747134273682333043956114161453122355603470043502273956897019888006447943294768933982859738486785940175935397767911136925831510491246696972158092187898220881380317425588886119003827550546062095884035157045645738075408084918625680846869121293459039184694798932215279066752080873143617827376879249248440129025810545243228228628082232250383682442299882579078039807016962387659272717708641239751995551371542636990312433659465700019108135121943445492112291916545292315043275504216238633889738544176464981578685340636942581520528199121446420900251869130214458744973137670133385849120967004659615059575088590042129696086785382536327431823356376775964285216902798646411208525422229630648801619516640117984219479848328445113593063540240309087015851268215431993975701180054256107401697083330594224304721352642309676659333178893033418008294724597730038865457656087072298782068083994820595865999977832047462385829150836675217926959678516856181996154418572787345822739600797103303572706872963436815054150078880299162181487610324890753774403397754113053901807189722343514740699334805295813261173196749781378777547092273077656016033737322080585743335657597116503902329823779611000331540857968908754492390768550609675318400044676063317514359140847715455654235158080808800542527773190518267728679551212591569094937415236548455437060144129706932149967357324788883077554545778821953616045850951742256815538635547550180333234405195687415177181368060821663586069503034958462402593840132063964049212761121240920876482126206203425921651855174094169527058671793593158491386693448710171431707713563528159413873491753176247440554535964051288681092823031913458388627393738591622061182702574353983528624702634739813888711951364610896241257954574096960465559273860940293456375404565778317610505430970621620691625532344265176236785203951112939010415796197018158045811436170534896919572956856969114833148323924637998920191184303439569483288368679349181872950678935490178337881747310700481317930342608730607858657254292457206731154527749399076518968992646812199668617587565346263810289821592551934792265061558653087924023233489635549193115426147178069203939034652011453488328966338279991688578979744915957316746089171200856499749516233824372411513481651622322105949742896966006497097215743924382393519568023857320783455527152269906973611490434223831310605184590794533455587640678368770981357317100549231792241661461502311707918098249732187481178610532597003304293654557913944884859851401756366828858825455174716278648461430512975788322082206342408430682455692092882349597717653793328962413679326153642579552967877509402902089771199995904131403414696022777202802957141608758826129594992262572539626390148424817132204146093802298465124117661840060990921928180255311392451737031720855067126886871065469214217224575659375811392064282122689380324438873797874496276628373940140482652517357346912942684585558932873779689742224346558705407159969512082716907135770436284728360082063740780967771096138115978520544179028968967940530581631867345973975617864187636325330605085059859722284287192941160224038006612796006745380335562902596712199749206318525689947223379128164865297966032337026774504803706652945956819167728056996620367137572371430060161993519388067635865163003331124640399797734355567360862293627883686822620201173503863033023695969615724382473014686694057781133805410702919951116476523523611245997110386052430520852557466318949089657821778801712418612087732559123406519051487578569902166528395371093555881084302723310522548292468455694888760229174877858684219213199222726681949483569103488155352984078278192537685179707257879093569675911388395236058112095394735006159954748947646255489478436320266646733146302505255437782751233530772632887426201609166582313591989429400234177789935848136554501051291569874042893044637975461135562558525603885365006817347840298033313480354092783874839469489153709146377427106735132501023372012893312880458225262474999214709940701482437573776745791684956722141382947393134527027442293723939209558428727029963497371155055570755841923078490808152234004081380407427052691403215830829231685239811106938988479111621865157721551075281878024122239859254559985099325768305424368804322036737000977236212805062074897625904308329537869406727025758998201543780215478523579534037764531094813243959445710639341764479069704535685752175801074946391604961312237290053546471170468617662126297601888842089686546674934712600191378953111796379487658505702701330231153213801857011638864386098800116460339520238980988178923826245737830259660461314504271822853377567184178354931807351860517616781285252076026718391848505042301374047478465999713827251677853462157386421778485322572937202371045447610049475611706552981870337622828144615891264946020574852911005007816635071099419800910837225532090067020674278286412605970817098213693471660289625884153886584048818164725324510327920017855986601570746657146935472176946989616508997977426021969387503428761609031362968227284074553558014788939102372502642896048014940959291724662618788974856467442163001900050451622413657881053121378653251920485572136382820963801557645061478668640331234122561916325148197295168740624266972263325923588608973130556628283898046984161541353068628252623667414024031455823669044197275388992850386813064341953188623693389123778967785364782680997823152954867960871668175985229743608074013706023575042429150578702409382043665258642536614198114005368510936295288031090307747760812678157801869456656599171724297285859005358483743911171297066996254715364965848751208914872578365948127010825343399505172351215082105091801144753469823762419488050972881362898101571920157916766385153639754156890188409888274030033146765169855621166156140755782964188721278052799638349146555582190333091253573393506624596903348323808811584025007738007768889973585489598811435531950336634503952671618817831671459826933625037068820836329687826092282527916118485685856587075912717900352129315962612335123344282064723727742406117944994559493321124001589285540074638312853030475489800067311925124246212681019284999629788123864476734388414942119342240800271867088423313379152945268685483185094079477254590133920694634866929444344597155868603917579058174709131305912704583042281841458487911663621165069852023472906135815958990724377980930584313873092385065311350306681694425549740909502314493474806985984252272528175926275339998138945948352016478785763027731234856399008666309677937264609340979842468642264582077598371271673581773601153777908355897800694727918355904587933593106893809217601044387694208607358842706307024612834015142347205975685448053864630363666035168881271404368504793194272517751961441400332031892934820420090304581489506384155781318092216218300481378910338506625278816760556402445612728592840094060406947432083665694627842151801652937244818197952651341028739883648741057508408697500519753255325830434617425258607502642773698112046908476414124934960293639552627303349677066476184806974900951791767011144470899982912130562848360136847625211044334479574605941006853070658465348678496129525422891682653295018142706655248399758442346850741439220040262608343049313912267824167445234745402305793286834790874593461515833507975415215354786182289368357257228514239458092685708953291403244726915201056711963539852620028189656510137814312879164050694466541344631046758647121078918220183862961723820211750460983454268987338914225769144374064951245659240092249122115387727077127200191841942708236834821340317158884661870922913337201707571481519007955655130622686557416115850471262623344685023025385443535200009543302108374487195050807977865310636447751621277298288930072132026927188828889874069546533902394144824470521070208456275735406513311177585564657267296633221632627804748177887109124374460454240795543349822950918452748711864550951577035383352985529607854643240263730775040616509050525431015822608051620160799278056738711641044046945734629448025384193767991546190018856113350324170344317182086065409222251476907956050536432544475345019803816652162592476248536970198635610616896713304418806290745148129461945260166239728293556217393863108650597734449301267381261269196652749829685200086511601502827443779128254046099235231992297527595391647959612187189327536911481398990015678806450976288091092518562534774178054340424880142435558927166090782863622824584152284962724657072445947999389179670693241091548720199631913905276780317491077912592965100251522107990367236593010804116654778800085636637401241468997465990703161596884508017340768362425329179194967860011741769966879080112318674837376088530799238719544633290912366929748812318282771825603750747530235158317726715650537387518889204942152783832991627689307998775588884668576579310730310516429057078029914045346202338552488655199272350735443045235339151258799862489306763363822958380385533344788121298965971223910734376469654347801867337358167008160092901769519151346117503878705964335577264790055280819755148301429876632358106990287246204340395567913377691459640441944378261255134365456517654652011996466564551105768345515659219587266350606872210429013968695932431787155029140046951760845162706034094471536364058908161335763210838472890304440521347353158866244105375025760998461392815051748237800881725768902055782504446741798280225157096108671194725342974731079698012207015841144705475463488716067630319951269756058118861573937310554818613911997982700327681351697096274043978649660714081051344921151634322113493952754675089046598945567157230012160698791415778353139224546769275553299394988506568718679331433168226508816661541513090823227122597354864168797499440284513149558898560314319076793594639582868419853846919996037533304058575631972913167621643173144298824403711072502556243036624794659616306443118030339769775212677003222049545936991856658801208534298345327130652041220315766803676475599130969447934126341889353751783874858245084971600289519230438026339515604488703862417592353819921873087566482077334016023907147509008458724039764444876635445264942929215490877092349591988168875573505384697078604992955386026986112677580691850374634678445342567279203644740442992762103728305184205871202414574313593302185666654368505136051969521491865303345376722912786062375622700649022257936563045600764094501661468163494403901140958718483578398527640118454490760185518097432228163432235360793206834429319051452787573787388996846999224542759701279410241962193979298210682619441156809857772471524781076465571276532943644535453193023282997698558772901258502424801314937835971151322342222351295684636864683671507694356504018739386872526937174799214440623901646156317406307056740730502692606669674953103131275966356479165230342264860218115320584128689413444295044066049011142117278265566620345369972727201629979297332414889804512128832546647936646806444234678619897248622468153716482189951801662473959567878018669923092821853961844731785284985788130326788074718215636286759215877245824543649461244307834072581585732395975336656050625865682296503828684204069000229149379769658394309332897365710182398424202853236530447722635835281865681978440687047270076826190907659230225511395715766861990481077282348198893361023264517932735136924655307409698060218164355188004551017311640016487175004411733729210568811746574190239827379510420602337926537799795641627541004077478399302554448906510491770408186610499934954975470154222172783872315006761127922199588499896054584006292500014837508480390117910789328398347264615216440853915813662735014078864636767013622508161957966313566851679287358985767484588081869930301587400007148607547625640887163706592066831086470369482480071544824442355375003558176499450561010683504613821863498934954660564526966421733112004744633638335051797495996590328097517252104435484135841812069181603361034820846000438387494214147503603334222545433894604097088469008355768389200578457443882004274555436434705099814247070341922543828041380440140907785333076440007180731497068473294041678930933566144193679644659091304781006351345666101482373052395770497258271261068830556930117249922242473402708986861675648701600155313104034351476774967891064237481812291253836983598265741940610897532626420358602993935837570038057601580738708638353110733620885530208416486111446770666981220221372689246088121163759262543057176500764372947596128695545473516674418486194269849854922840817100878157522582743830825903084231100824995815045689959614368556699346419959946335060878577888493007429748927422015856042735153927899387317229061123095092168042320417927554120133990941068520006840949240942908974375314420815759100619247277749690204444916261471983153300405443224078041234973742939660198640752243512723115859453578142853970372183014234621711406897689461596850115127204209597171661019376706682976986477002370542054280157652999969575091829801867247092340793393856091701754731922132868241050093482326437407342171869489126273816241487783384399195018793054875215898354573434279235265926911585179976970905700397879428270720704228447052979649487126225980305269852446628595186826692111166974192826256515853564534203315701245434974930788560894127634026635116366986207713957519638373452129546842356113514836210559283723249107137461192231185599552578561789604946715405911086792210027875724980461774822889111710353065384365277611641036245761974493695638246603648492700360281338216482762369305712005525540440390294318519912446347281909192893730027839277625404562690228874174061303228716929393419709439034559411001832484454056867355888045552360655023782895332473320483832216934428250499886409633097068302650473614861260532508857048221188908870425215159724156650872788051275028379730607353786446094406082547043952035244845881053602779740570748175403590863565533478650008875997372970427396538833507862673434500167886511131272941120898701071655975484492735897776224891399337157538450259723413205744359435353257685698250623111760464757978683022726086618806616596704549823963343054462305178036835309747493600208300849403202889798318697797605318245470710035100812436781634080656937454600133009070627335139573149628969501753627022236548805092563450108985866655387383466180980288115572156144447864301862429891756175699018566407164581829706776180005590046163487113613320767486365501270616529725064961329415262911797584169792108224701173278027854375665558961535824656011195047654631046717197622768393808461890094960199340808043159696061198497807702739541615577157948177907869167297725276375860031262446117387390311420504264532493962297924925138940036240005278931848856780196588760773618216046051404194276703324345192429799022238565465368904183975904139145734083526015283506020073090988704155000681484125743251718973460413276555970413267662884434164567050761067942391726782065228549398725189564089473680829633000966003614128986563216386534542647970453728764172265588640445932847384324418967607671874385010070541389043683213099526077568336456651553136670433487115051999479615943618102925156516958825523283126050409594270695780969162974470669464667104173060227275361513290795684704753197695396207516014848304146211642557576511909533758298356220893591821672017366817210812498916245984931981016310486578182555759298794540379287785428942374753814896169694513110989146011622041838384767378536454743750849495712409920121346728193100287797878414630189050614047488101117987235453665692067517352682144828641115410416094974847031794414308573411655876395442454587105757352159402897543289453499924933463079591701033147941802304227556185355941627767009964318858575788769434910621561577111787237334923192220477041783926539515821156121041415297512902092111059171144236347056556054406685914634643043576742034384639888671328100335106975289667640853642922026384099129573722464303779262717216300275655544101056807109589695121911893678942018102745742763741555172358862739362246284443002146383713789647975099782178970501343884134257057815351659708167364660353842208216235225148011769380420041603549138324980297802598284919227573780574772622822178832504392170584670416030799657932111771289262005585855464141362717667083786049578292960512706776429581024070315111219406840817213510968274143779264889574387384409811183989479049852571743315366717738502060652035851778875225640013426231474113118249483812656099890123606673179343469800866086039989401579735661362260164406734522450207112391534255706161138985604864750622572144333902145858449170234237130339918832260383545759606539018226781196773810413968141444004219899271103660996721561624583288395808370560246137610515987615367928248799908305621994568279334948894157120334920582646473532447855524483917749313196730926390573854028377002811389513408287179899193618419363380150528937254672223179242251758756615973996609530688375728264178921163877911330187788531915546687200383782542914140847099313122868989091946825742227636919962057463058927058502839269849566783957619733923521071743830085027136669785556749210643139942502786674295932167451632015358210980592481247138412584019012499927730109499796765885050031529062677436018083736247191121423145930849402498631229420405426159465763140369192667392619324958672223794199642510110693782876709410362284055442040566121277109327226215096831209669921735281601442675365066114195211174007124539666067956449303223661658255576185134614888772872631352552940782575538126440927445487602419151621447079009639573734324780240782241363665102440251307359513507826423590231359664155365389798207138602900145093726016612114969529100783378829872065900153272682100547993554324397454465724917923650994153417152704698656714261570259605354305763639705978759972062339903413650817006165008917463950911999030656828653173620846488314248882690533366084716677185030363649274672278696176550492740992735755726309685201548712372678876825370843367175568118786041013267543857835466961474795686425180220484613272259123423883717360867922500610095050117474284879471625851097444763245246079587055846264833506074115656027994205985849061346768805116733832069881313089825020274742358168270239123409114832247874397671740782039807967877795328442617154434505993492912208163450745041592200026732709690132536605300055595465121435597054846522352441967724524434986084666106066482086102942583371546782798515982532624390596502750434664626380114512224982863251838301178709411706947766171641387104610372494105470363275668431079406978536339064100656943587954252898397430927546093820732328277937348371133469476911394339618190877348042355649061807840150104015771418284448701027956917889406763844077781256071204049729545488571437781477079992976991768753004752874698844262827358590728377767032316894765114404270071466838222387911700041035183112070061303187577916564060943117871189007297888624797412867824342179814897595720230058412736914672983681974225909995693718546794769455197672137671945936106939357395708280055786447448644968368513049943754766133798989859373968110785176097048549102923821041291142231343533947726878658081942340709703607707943489296892645257199187948465948609086628544969774047007595609608741116967804885976181434565275692006196363103864310855414154058220083525798188126159503206899146578669947289554596035777272046906089543452301479983303393533696063515325563675701494199273207893638839740324120948495168386782807122487514961276057491667220943165687578020006833204817082704595696302795712803945946503275159887776131742727531280599702181941405068509968048193154520107823453502719763307071886531646785686487883528506241330400636727243071337368882377467925111050176220144336713829318906455692581736139721524061982606036589953982962006009204131525942344254723380163827636486720711253804219020057576991954700196254587135585194401196851723012681691871863943726783257428460086348077073248654953072451133374989453390506658753765638224249776697624971368450973153352066042279588887269360565952383552802146641972106267637824855054969416826285836973113503799048974763083055463439487564235771740514087121344224909824010237376075006247697815860136309929505320240687626253070909449077495206734630735912185749418315119785543302197782671879824721902225128193044780908766502712845894912163084027895692697633887888032645584535900427540947058588006180702663198589390380127561804061587587909960046185631141213065900380514564262497243529318513705435725767928221097248463357985970326193202357125626628283833198565911078354046567100529208115824012729215328980872440176793518103750193915983321973127941289199828518080146336002651977629829411538830662095320583640076487141296172920838011932418128549278059852386850644327613337193902949962109032674547238403580362359416833366487753624325835038698344531326180459547515462951736826911082513181561072767993760253543716796407786496138760945167879590279578498826249098112424347001935456213584510990802388314134338225373502015512194592119947893129904106455521329029582260657864363501387740077053700758924796293690948128114918648392858288506814034066650223506929587165151324658987738887940033022421432368762984516309849877822052471704872157685610789815261062216995165568002806027480555786337045523942033969709844814152001536254481209588325703038174054137704522070740127297529225273339962179254803865414243698822730807217449195200199873619106918010365556531269995616560417532340072831786523794628062390917088751732511087713276578459983119323096223501499143850086058336493870871630860934621257556900286848469579223777057183515621037286540514849340712007088673677365752372871301845175952785109718638731662771485803740716465506040326947257665119972752953770459198795423338466198878677783755003897388547112092927871054911697015666695161285965328105889244389972920555808138811570206471578477077963694643755446609419110712545418939190079214053012953027688020917618347975808969970263852080551334257493222046922790121030840277818781544678159538155514425876642869884046632930492547209454286257257358988795358608495687229563118946330108390968226068223348315636057751653459675378670724997851317521306721091105345889834632382894314547728366880745795260432622339730796444899732228457934387891813584550548417255591112479218997453995770527021077892709408632506966678678971290185698597486218380213151922672090146951957369888663789874332945392668553023477188004199278778144826394686076810737066258305279216541120126323925516537925742819508258051750573210230496354088645705949866346352025420243667415107998283256176265773187565956657164446537013803255391333712829512092413708382112316612063273145294778372227245149631366558233993868611169630103533515208209100004490936206628117942201459655386027026270480196327032943702537084613363684782558251427665424289518020221822663838568080174614899676923824042245055971583438152630961037406977398473526928198011780176708831674685668679634458322399964503927897166996933643688398362463366076042302372320796257044470482128488626067883140104081816190059859822305085080713514382646692520868411175333269853594209293849156836707917399816222383179418899308943128986214552551990275006709205584166058929550117780114544420273724164891256599739672059254831436182618406275860756026495674525431442301174589192812962922761572104382144048735265901310248059958275124187804704563139282159532545432777759741763404907444575467600956615464660972661518241858900700596044747108574151283745803275548746285084082183411159829683279180680757835489359329923257165813550559169940718828868095169926129838089359694967096739016940778994658873961565373481919369455679524204240604946831348455890519629513228707900057869722361036272384598079019988430367059082518037939569278550620983709424533066389423684081720421471600060408948572488756695237488811918386751845009315427455387946931983331873523904818680791669524424557290380944537311594877159221390377830708133208597478190324512847348407568447283958030165243346043218147828797239467995729957996156365055472311170539067291754726101804373696943328868296812521008269758807606983523947572724306153151825438540895216894795278197333424784852216874189643232276144776282779817315215049606186103751666632251027712725618723021635945065998471908370327676105269382056381545758458203061918852260695528032592591963049522439812185332204757787955615058265577749770305585797725180502496907306172128196805574849492914486208566249585210228596566910260560540028381182461919561071516308557322313266093194272345847875521139180751035795321797843968008381147513967112663876444000090547110681661824096977502638692377773113664853433041110615947203599455981839403409335868340119630162036004205507354549948827494860708943645828850573843111247162315873003547326569201237399251304990259969858368862601711407481838689336993163403118945370214698117542251577351890773015459864902085274376060680839693024866435370174624367260605837751836981760463844452481413216034467348695752640633606471479278715926397481170343923112905506023186047313860099336687397353168508058480571504806687066693642028869565125367664982057570659571658395452678594896541339500484917881907793832418673043943063894590804148147066312575860526929684649896867309487581138530076173226523028890809585648912412884623644530611133052789187917904592321314298311991750161645289641801450928924644202946321518038995917405931534565141466978347616091632797397289118529476884477019881688351659939177364066380596692018832994371158727997573801433470791921592131766434290757561235136204721457424807247241089146954037558619377793833766509379720623509137094194722650159175715810477326467311680493920396014221388046013771171123254900798213557447982307883141753413890464100374918668916062285432017682476518699334562157041227766484108145753364391942196140977877743355528470979485481230385928423251088921694457315331110522230944861099864326283742130106616135988054780338337504468125137418338561771855237844101501420199785080116180949836929478623286161088352840089035548212423952223039127892533409374595146300385841833891914917460634625616543533784218855133865219919419370938684105372382596464755340208399283822778230407709429810040181599745534052801570781334833375909830043170768227848633920075776127017730173626269729861823671358070794589451783243189641748375183150012123578613804205415260023382454282770000599762533713229743004374646389993769241960556942399638387702649376335705345359593795369779327533175952505759431496061656925683718068362844887126115888926833851424696598102042277576539828233752194662751244950317670739699768498001922414500677014178985010469860752276500352898887043451002254357527716179001303418332912142108963962636958275822166757255005694248153483308563718199945834949417075331881670113503493558815164426530703446754330060038490939457110460753227962507384447097075094658869341215714432680937912329825766348980659687768362389479789270295311207176453051573158460045781583620711582301416174566360208162507394085302480204233037030993015367189751530480506253470843630688002848089032414185914566053248815801143631221250917578948949290289435939067441156793907012531829118902923493614722907945630781109775411523106211731430248975235518963641901098441020952425122314821948020043735492076493646335460165831231564930630321022439931931251385294782473569934634947123085266626066830891275275020985455508628566258530827029242053397621348008136676810714205032891357222574541422945782726837995900568987163894214988471445022043789131577026232153497683683866532032288993050515239521091284906140510887769306901080577514732629219108737939501246592101022674299016177453374432725252628303151440175927196472882727092220330414922766873543227987501359347443660115618737376477968460619405290135485925691619836027551266437621894739455902729835350766697923701890551155089658713787807730593389027189775908879289858566092407289669924139503125777690282510468152739319995969605365469368335487350360440818385562897264395457119535353191161848997924643208420834835914502693310522318976659345840097853693496196874950405611038071578467668366705382164916963125260252869687723980964729601128472261486546852242349422604785590721982155735891323964836785730186885140153697951580043145566063375907537564841449694929285922149128035499133925417508855733148959075755426291775303475683675917549923379285832149635117456662371281577252275541560085967899079955409459015508420497660662915558420488309513292144449793622555055244375881716942587412209006693640398324201765047182978560400591174730622678546777203983736579293151740166838248428414607839421736988759244639857511812664057714544300431657608373193419405130967846285002716989900654729798306695398097582050020304540598845024726414715040274547698300988993352101067720051205881737320585034152816080365520157195296282273864818827265210037998650212513897221642574324629525633352794922132217403366091652132243369033184311004656537424907961562137406972602592896023145186221993752507243616661486078169461339750884290664207598210537229526749889042661187597595498616149198877225560745945528272240153380696717508775495049874816397405583814966481892797896171250143909696956525404593548879387852248307624467623528463279509735324426534492357646751080195480687112206752923473365293645030571489970620525746553368202231427766647197762708665083870717759430712003921119922381932500821491798385002376828222645992428784765438390834778080548939774821134177242914355680835982992301601562199626065942595113416476569834075240851910183889465708188619641671987194242474724872301924951267960675718803402886154701224916282352678382398118595300524578336933358519806788903895955954952951175549276931561912486812269524383854018067250840725206998475212891948585249916399770766880348882365281780077385242965835542754097407454065010567095398559156176985681707304000561336067216011996191481703124914132861725232461860894382201405218868223126218631551369438539669072776109861071258250615903530532319947146951421003659749492775305616835912875802732891409880875825374566126373674639614970533916366692724075512963134982070102769645063792982144316238167396206366101282552751992231504576364579838450489245404206478475828137517268418413338522745583289698565658692059724165108315555207730520355187330681250530919826392189326275546242645809098957768843914008864432439337323105601979678426316431114439259498358654416094760530233492550590794869521209785892853253308248069952346097886997535898833821868267285396472611303323156063397560879036392786801329591699265950747189750275886482529721316600189684786700568822919988466748515834683070369653068442528342008935075598874672176057892732007501150551199980207319386391408566344351758138926643732440180090218880698484138857555035361971488859021520976638941804334024618704759178205596585543674052356925273307090555949213246414640369170923077479622797839826090054133809352962603481904313021879593786339749264871004882112120669478863871920933314557645780601408970592453510529278036381503071881828260790637599778656281380157002759457951601205096712440761813005689519599784537588517647209890618733483088557953425877358920160322360570415484021337868188745895298602104086206025843320745114363641290291599366656915275071533925083756083927444475160346845536013781127755254267941234499154676628133470790857787236104759397590930491745270705664917535252267578844441562833891137562697073913637910523130255455651564337007373283800356431600433514471720058705470891173473964101013523775004123870978606393056186517642041733917056990860374632004155860923618145774320275061139654319798388780521002598726050319769770338419772150380758651198598808029884761225896839873544755742477835669076683821480263847851977193271935088398062626521491617044725575927962329834614044910313644015790436625800667732444643909668910283123034744539622416252465157632576322133803253934213032743031356867258307561456797974253210219493856858784700283304525563986249020825783067722024034810520799006433719890929791845434453762041627440332006467389974539642423391154449792608577758433496852027525461075484860481169526809379959538499535929217147564791591645305272806434107510891454726602547270454325909887585288929091692468004232891936868081532508934480608976653034775752461592467044919744935824472663208925752675483640981064027366819719070686565383742161867073360332184889330949675643831615323835196003686886884986899187357654735785211446825355336546174843338224321912232104380267956584972387437263167815060319088240232375676606081190074143901355356265577970492378786731281877272441398718748839603909158572160430326656875059344394837694186046110499395196878785311582365664769298733801972210027901768809375340221722267978108528846625007323036311526196555025545779931160304001481089420566704027762423241792827514040242005987336176735287249518034512675354316814745493233476893543551087945320379318702087132851655236424821595778178153626024238632280065311675219952385290684457259854823478157029758239693560987197230067346723922382081348122360837215559650764208487079935765074642727398390507309931155622553166296586286183227413062546453273466957302039770576346580735364819672023229713377510362160613208950665415407899292382397094551183294622207917481334669823450759781671573590914047374756124383584252419051911906550138847148580322883226643878299833938504124061842939487410763902571027815682117120581018634767033909397436583815017224515411069336579495720603818332882483409588179064744982355783710185534741718317148433287756386664720488221111346030605845981093616217687132735737296839379853430460133787854174289726472942031516775992778589018459480518919928088681139434539023457064715912581648046380074671519103073909014113543562304265764272902724731810284028453139400740623958216779818333544024810224856142364483669359828805663937313796613262224553526251138252747055355388706391223590362364017889321530925762220059894654418392945107496693850068452637820460645586431999140654496800113422113743234841398831410054151648963478252435737383840147421033139910879241745525745271124041826885411692283103730093705661441210129130880358588478332137707263768985207903132166758016623935632703331662405107525313994373120562574839813314457573927709361085623073886649169612942357636929917881715084097831867164685278875635089796895744756306196898701823348128930252950516454500156611254718283239687720829476063677510992057886001287611236719631026795998407146389693704689736331216748691334147703278621285719099161385689337561288432414222203702343124693075208518255614154286241115857125951427073787345060488273291868060872251611594578968091157248172884772967153797875439580999671848654583264448857162935294091929125656635245999384345360458028535835786770471290267314617121968594977456609107400863251711452890697000403931417897058794717189498637334146645112581247827771787956445625653812944005190194798578049615011471754551209540949140064660724239031496308249707322394735814317429355859757887829497696200296104114848244251259317436321068076219592177663190881881452909455851018196228762944840761918095628974197474386788769159356920082442552701416801777389660980165495535400282704760907046918813781435612782118319094231351456627463965507117226593540608972992067635962355405176513282145544614165262350105665864287188845983562720813607007702637178877184899373958212868648243498379946150058185932619455119576467596802965098396410896173316298237694379363498302843421290259630784556562610219020202308631412616435907740768467568966687451478132066496683708695252022390010409698067396094352357764352103686270818190667922775521594011385105526000291029460053185552816935543389319169506833056101108484529738553865268487949016099024761599978356424472148794523083380774022429062098422411893399441138282577347867250299694693676439279196253586764729543333703554788551811771693251446203551140245209373064764028695523522409977071820838995379834109085707072755231071423626250625140310026424440005188310761547542658360527053042607017857595314386991827218051057487423586865044690825779730023240234864510528195498555612696103255413077585004495828297154931755954963334004413841720098187745168395253555783910317104819838317377327905066508334978756431192527745035801613417854650555254556187459087714949084922567206853791468047954929762041628430281028497522486287782916048203732019336367033935403195695548882319702416795230140270288629951171757902302634488771881253450351732380458491144567041831526727436235718614137373459100875350785260738653039524409285474760896786541676169379281062111933155399653275561138324995597388862318168185923353645709893241632361364999313818769368458399661407106219062445318130314516901966238848076462997760090446608575229596895663623662107034264925014751770674175147078501337488507439725566676607513751742946717126321960475767726185827372173359979953024162610107781852412214053949224832461165709371786220065228973077990379201294467780915904064619934035444754744703142323165908908865660814534755598667401235550783460568013540138313962996267920408988337338263546370927937428876809456030144994968400246964826636537782876110629351427790900231708348431826841142000213631191678446054541745532548913972062183454427001288236307659959831803110233850198001349925420072366528939926124861660308748754408836832904997706361873140135780701399687925270397870118182925189204993127363643516416450443869671027231578266369703676482083508830692869836917752702266437540657111088198943676893406161884608605989456759468244632588380681108370534386584664881882603013315969346048212551918671920654805506032997447646643936170296810637885341202273209265125145880843314199242506766416283295302849420088895026531767550244833736683035679726956777661413777017798511545006775511853013073391851309257088064169840628349043831028160781928573579237679346114246755354902516294003430092706210842434940392225286219201820545158310419491514603847086037721748665760535782860561438205331749736267165442295319599076693457660212470749409821337707688372884377951751350346085639954115637895467237801033984984611663302508185283108397424012634189754257002139373174464155360985916513801663382120136734024584225179594674619799827142800346095578019083587228050764133966760638278662408969372211757949653678288027269853282106245376524529121728515045975397037819787983511936993458459335239208363437942203721158446952636302769530880729678836923432344351874478747905809782878412636442034874034607402930965233211993051858039359235446221558039448459332687218853598521649700853312050889578158312478972118013590090775642133361743156985238051040194297387590572236273070017690731025075979734045238866034306264954680257702254354218710585518263359900685932532163943865354725586172657747920773351630588421551678109060923389902733119302455752402885935033406957596013978589198610508704574727808612960081214162429060788782632661873582113070740130832564278802679907753669707479593748568944069919492570268418358437556042563073331942547221152773953754037081542148524611140422453703495633557811438985670786211968614673895773315885026726075810683686231713180563566264217476081940619420422704143279107338332119382386059737832977819349786057189189184961612791128149633604788252971989075371027826106761746883763339747931648903812889612223164396874541723944068409656713342974172523052914485871471887514605947323879481283067937902059041526351456432545709284434945778191163242783324307732233607492034918732523344511794631719841993836416333905797102801483563165315171715042459552426900714866325740906538633128488701369145979685388323019622200546871550247949919060014611185138004830608663499627646960484564784864401479011907689759104261980156131576100300427672410819616256457862982260505060893011479274614965649673572888755373678448608202709111605495729421630913867713232185745343844468036871141744650054697804533911647995648300129911558184593365611617287830563476804525674948875462973442704707322743020419606388263577841199863308680971143322163234638507610129013170469943995658983712194217115600783693910373718412103244451329873896631215049274825922988020669755312144721644247061602507947090976326813945950051919337992161768619148193303241863293473168275541703396120317513683545975161748081820411719101419441835421355698983774587500369959965764257652497667034006346114041211221884587339125603439447129421673597107461325488481584939277562417820529428703722779062862977971816947003851703219725968717146480924114289780903328644920263581935447167952421013654647093106342579714055258415272672072132219472218385232847683891030322247213542663631709995882606444844821392457533146862014494301514336582436391567227164222832999517775519523828902920482699736510279026422352729041408433081228186566997591250976749990931438100780326816689634509988062271368926130025236191035202241744917075698846431960835019387476624778851974487501903200107919358030869384398685724573340663504686481041823067413416131414052585798899635298797579191333046655653730272307025554728851080906846710600477546482843994104224341445257114659889137837895794999099271612895618595258390582308285284116653530817971377432403855326949592709379755681180189875011329457973934235186619233801788517471544170514920203884141582627877123708531889233768993522310901194762527982182798991340276289243476738022254887870336002141512330284580411948132886719572454547909311682641703334676722733587843482105415340311749157158281495901444304346163212212976453220502287411385767915166439567297425636318572442913232200004204185771708151426094701767490271061963781944013330179184611984006208225067231951730506983030721703698183632937018517301130863181905404309125408746661891639563874969069756470525654239920827733140311233968340690422193913063480065929036641946173398970260116467339030717381452743792650365861354126067555520074873996576286689459521913586052982555043668002005196115929481137146216396597095401906501022487237222628121597493457868153362562749943515050605156820390497250907746704492405656719830092118957605156532769863576730091403020505619506100741843601172097596565317546962778755893305929786492502763907883723498026490124514817191845989247795319546447619529064349382670178602369519975972638621112414896848517875805383987138109533515795665507501532047995863246000764247796859927021155345688097584590830454229111041188706528764996270002888800565021001303289404101617028393078133584801849963003640828027057760592012858081861454285090884188191932931229940415278971985859718224964759470373365053846579587188688895308328559797539924099853611039179325025323789682673607932389291454248438583181016632994693707998333707314289760671618466463804727340154163989609114912857990652160576297960742843886174558309586082817676029003709198330112190505650405982017190894751223571130590443357636559599689552637928753536583392808200710636926103617580420542196464136484218495548277184529670699935448370744105729732787814033925764482145790015416959643246696294829082372663501013443377030133431812332515237317033358040537598365191591469537606937596755691303352083130443919753400855624998660635461315480500725819354401510909932605751205848451574803718715538882626948584262907133646041231456134906656719461886172724734535943492364797781727978721119644851516110391894021995514815504428491067356441982182053872539570853456077202315714749574647031201763973845830259360112550976622298310677731482457846634705539488672007406065562735949350334431611609543792519372686925570783747628701241799140209365097974742270080596711500204830274224635357491019877671481090106500596554129713990985325027252969996151059476787018446973945072058544252010472661242143531687369433137373560682692846164529284809697458607571178795911929738002939116566315273799302216716271576939925566545771120562043177326497114865444247712721048605497374213094116087159727311318513234392933083710223991301895366666018024564962033486313094951615627440692018148882908589788859975429146323253758441285859779425690270505407948709959180362028708540054237128434393057766021266502575545875438654913655442263816663818003506968943094276751444166001060403433984178992241077037221357241067003013652382271733932858150899605299825496495781082722464177970425434550717790998698493765241352935493767360100506632795016714840869714732830095307860116262686416418652030071157760716252957204454704909329775436726445937226798506839216627535634394782457031868737797582714706524040950891829946204630658027072551128871648847801127053996564555124098745379463944562385280358509472096056804719854970210842547775236311911461135125208355459448564166652643778232571665073100736715844334644398820578991659456535130169662884224802236381947467426039308017326187219069470278888667139504803955126446824812557371925543685248111494915254845150102482113443114138134218199251620150584137307347990105059916799753297911404634405095379875554758509408678628922635568323599949536619559210638880759027823940015395595215047397152930360946766449154835972098370305513911544253028363455400575519337505889891119401349754883000062791067856333176446297023311178540735156602848955985420346774310197366037688848126963841906564259620278453536358854725980653559762364736205605732004092578682758726363288985972825131074983769566057996723143880027831297563402507145996823024625261661672433223579227131878179590924023499358032907675602907405078472831317397582762997328198188288835650363307502699311954438059082840756543988503181021819510125602019130531029695096992110183400563521682872368533246244041665342905479596841952949184284528841714598056647445922664494648545121762719033643609665672234615047936784512564138569585950348662125705156493541327678284587191144770333012438399197522090098101713224943550773046486709749287235105984826490198699771895095782644421053086865920638188134832792713530370404894028838562836367641163805285179832174256837322298093680930112206956118392170227196429266945530321964042082377900191694546960382099731358965723837376368750192298022253681713937164095060850246096049449343217288011498731534043122905179016253985757182205613729913059419085833609278883343477195396162908408634762306195244981022206064838931954010145569330204852383013586234247430771513231724502918802963554465924393852969032755003504772828135729222650944630416049622266930570319635289834069674571025204399251327457455329472868548240328409756234625473887355450612565937917917640604794631871352577998377071305764972237823250718384721448077260634469425030241140658178646945567981808193010770636921293426152318300384822036407132758524447929869198295033205396355378132279622329264052594437347168163174380803221990576274483544435807565018500023727482045667989204503325451304847574408111041154211115576193430482372665347840381087108199245764937750449034686375567519324146853390184710611787714560414675361858569740379217300833079592565424143038486504685895605807408320582331806960745217000582525870147074429632465818470705611176272128307822201604014031716587603678178589824746769308565515958551632325909814261948487780698429564596346379046168700589944029095242711733911506794038545112942739983941555436744029017125945523868837708950615731903572977991869943013191587765425928341529842917083407203341140421635883681159343234894757427799701006315935131330150533983665037872255976373749769359970533774838407508841397453618238479744895912297337173068094432455250752340520912769145248837923220681210890845090948840151515654844288082133266335736383136873947364713280158626458670650236703778972957336453854751649014593811114050946122145335970228037033675863403434815621768252518901514215596265677707655804477276079492328429263496373835983484763072625468725942452092366029395141876145985044189491036269665347361020669643653579038530248849644847843945709312277691204701883545741679931241152201496239188768868481741538645034662099722621742537849000196128225529387924530458090033291361144238465727323369372458403199200640734732713819379976285330451226998487959775426952539949801033631001711717975620182144723767578897162791039392232879978722056163096163153906788816162758952841918575383590217552305666059215014043063430502378648798936134335914735187246683486575907054374875527429833222584462199499286254301519800577779853147076218403017290574726079412546142474050452047037026997881444588007050958796381884070897673884745439804440172618166050779520196758270754165002750175761305949174112527756555282515347436415394947677868656541136892445853361697686311385381536127721436950164206065462773403975456847767857183842285471946077981877350175517345039992041650430981198528810323131690161831927415702377109349789051004422435611761300919119249752379495081525374894992994349777430967207431371412848338421628205691958359800241615420680557282205731908591404131452390459346438162844128661886301168036417895600374387724421203136776402171256851508181448040277045418549860708779866734627453108094008771608482099127540323162924082519906321749004003189749250265142775181209766955466991870097032412965779550422450561108403032607182426066173455420370956199563247600235161885968481924238073399172675507891246004632076735624636998094064666715589365758026844370746317517626154813355937450370758104792567296249161231988473339206699182570022890444937541755048920585878129272996698746881699769505056047000282641318628517604550951306569295887183705957404842123234253939443437172330411908976122764717587259291619870019452959257489149368036521050943735141913807678964449813740243773892504273885867243916627624138363142124972947462775481204613452442783072432572160140607764643935319388665046522490092961891535828442682734491526603013460524553237483166983384733186418903080987503188247631965062742245411442028390592501541692151261898176050881325925390265315118666990464604955958131865609115718751896098394248510591028773029674196786337903819730707883070888743182953921102433421456470197220743746830229406401185917129943574624230637122081947718151795517122667769501306391725728108491289557242298183366314864753270208132127989157533246527353353739916913470227079820463713105197925358321969430611960857316003926492824763695641906198581655635763495688391100848413426330836491178064596298832158446003372920127965142310366791438281653849626716856779025711330714229319019374248392544261675390311962791248922642938942533521271357568230105713919447137872087338693136866443068181492318029325755790048094794692970382494972978822955506467724072320266238699037783802815691180849663944479624446976285882280473425609988540859797134274806441560281873037152394159380785480793242741365752961683240059468266038021937487073071350671618110058278160281969296636525670427170187712966848825664920205108594392372924228184179509773855101198231064219742355590820751264976249736961530087020392944187818195362842426240976766370583639491938365207290533991383510168040528475270254203165697153668036657243340905078298094020621404675516107506762002261477368580133121011798645665155783293365839980906669325682353459516697963547235946764285563178332383158552123308813832789728394048065348711911637282385288430420249719968704705818267360262420636132617904715598402117942652584872807016168584784085545061692482510109107390354507506337908637703414308881852736819010100555836530871929220695128809380450309372791224847081601793291654893235896668850842681795222302408259563042174542154690312406714256138914357624637286980064430005502529799119322331163155522277638141249248991249683670973876678794436874862577131165447220772025499102970480002810429976641307091370360896756171366864711504491169760737085611397154396068630412257675834860441231317534716426249265487902830587203461486385313788477857952730327641934073155103867596168315314882052949638116163087870274729923702760269309205801862075255554222294843760919788866231470629718827793524730228587991620253237637765830863702809829913333411008562357814212109494048647702043680518487573859769949945477032132524703277567973162057223398796661828866768964603981866921013567393027787112331716393624568115840746299244975958771183327187026363944181974251727565404563761418957615839917392538029255312014910254059305186022544582889385897949443333263912135641153499049493872810738717692507451898542711262271798777102021986069623030202529485069667830921884088815451910613326037703064891497960065774844309443588215663332721046427003746000636788376764320705994305135005077028949717453231835881753253367058854109631547838850901130079725849182634635196178712811353939390468369055909546802382473609698157820445791332715157909102507821492575457498900165919434296762199229526403965647938137591249689819648318988235479156314296551554493491113556297794474240422008907985215319769572783412779842987950703479176907018819466859309934482109801652333499809916503794442132428956956919107519581771372091941323208651751596702270024300555297790340696354973351717902486138612586111304367638370608688032987721553195562881574235804764737087057862777991926415770723289200464412970381656032859153781962269705480527415825847700026213066109420072258364740863137887663964605878760381367883286021558867357663035133774434068531592985813185976028014245748249759153943783862360623891894670249987141859436702845103327964893583256932150465298548119235589192858639358215051290710813804829555488357308757074889662557161381262824608202117865489044464896793993182400536496466686399951776090786800498753182071379425996243351762206082010885078589554621730012444177606516153465366008501657875575141283458735189726785651008442758638382414578128568258165641720980916764534908861925847075642679145227173911059941678202572387193154548455569641533567085500457428491806571705795415396136402490112358794576970178229083653721013532400503560931353300536263555390579968489734566384860683996540754483867641825951831533371831534195479123097002626315805337659847872851645802658974108960534241690787334798351482922797892325603252319644732253914457351640365400540330746635254127632472040321727578462075957627046737606534626139068747136449823241606391463670019115084558145375494430174790557569693500154093218942897778158553968411330090806290744628510362065064174267642776677963022297184668265432707649369171806278643774542742533233729806854547033277337081122027825471518912367562176163235658901770352570751342433375303066212915169169478086153680162959463063316458900294415312620948632009354256640009180920493327949372216318217365171700229024629082019756004000148686464687356997845391777687098427269868509331986812274062259146770482478104675369554666139911544384598666004419150417311284074736418465387571749726358857166973653328742844507072199023971384706224941255752651916365033219143468568756788257591941712604981052157619942128545277433890806906606864871067734257986131482837263121522116522593660129145548685637395530254807477266070997858677326654728068288358364436231830584260017096209355487030624176653303974327306865562403812527424571254797787271790430974791161202276619039244573540550041626216508071589803918041270661187283794471109138181304457798468479264235984900700637979363073292829727765243855958090386621688386368541129764821753773065740329153899959195389551736424384218871961681855188798587772772940947536162360266804073849259677705053573357176275012520377735272689655555321120313891216904096676313120105094054167816699912407106585461886776437366412355598826956187174765045549830372198736760833646705484716615381328522566822774286849858502302543408805081768380210411235161180797405800136495989169479108141422167706503173629212036748837796671264893178121133502044923794994021499827241867439641000897132603879617265591415161701915583110242971080278408497368602887499385154824311288501931988622935802468597892777076846016916426308937448619068912034872229880953209137923801036301714438707667382731512277576065940091289794741081832391017648807474059232505098061404745712218648756623492755315054008574816226664454212148687037752147575912598570111583086527624791784333050822625632362624096217518419038729437149970233859615478348857820359817396379578559347661920165149105220714342768294768093039849858160890537784746007003736410707559738527415857439439344889262092984648278665858262990484732900085040589333761823291718314698192344383745391051836071657433816773619570217774044377155325732654590707380110527777961565135196685049025441586346429853366779067433933664455610024884163811512023059610913039718537915311814426279865402282495176203640492650707634724387194449246486041187174677091292031163685637329994926849280976802828457714170061355356994885404993865534224139099073008580607206949680789857348698797911622312072694853539722760627346006733976431788926661007394196332534280881490795328429574043724694660046993614563269423749285612330915481888300425914248346140329206304627922644107584918703007345628773604096365930481251544649023508721574201493431577221040555302874555288606930051142032976446067629460282980274637796187003140637910990577657957852291294398976979434262264236663651720243674805352867388981695413873493771171804238545505811782909555078827315685851420912537782448396211664456308199437320829432811360596845966051354668058506655168640890895178874647784895279492480883305973635478270766832609368597676270781167618654329854704693754129626693686056083690303475626731870702653415851295867723417932705002755645705066203872314442375215283456183233317221239714107628854692017963270509316383846867519312451202929092408107157314334373664334666363863942458138744520275302003688085329885510749003639695077929281760421198450947427687708260061721853122106635859419043620966449061046736384505008317484055863669570207984630825580460870624365760777392910846846069240298018738909378110485763725531664496510968856552155833175126637956128532515712193926191479738210883802553592513044464667947365709730792298602149021637992648079542885994204700288112983961244015218770376300501799119754022438133368771657986818589563003511586203914544256170475607112147893171234056477600432572806361475281387245773251589450868652169756651255346716145039847167662706254102754522449855366955416312471111999214798433093210799754617348306748191522364306545730693163066773065760113227028010415376952480407978502134649691727600319998068667585687315612562391288958746509268677229288339976495418813382998310225187970101310138030186985665478178267395394693441907718690523632431998634127496389071913565584550457957052970336694458342712900717318405657970015848316498246960071845021627120301522785659705100341238292222614581850785134398772697572393483764556318691828846899423897770616850115925772295086194611708345814437448809402781346996648188378309057737041164908852666366099082139729590376162138046712180412270360027283652797621851776224785036028301004966987864593549440491478943542042195690268471043990391690646579830088330989771071558450449377216813962309484135690829373154071218127662088312186715272166806869972018033777016432241348591581534578370061098159726226206783639382524659849325515097259538653653553877575489022781816693269409856238675527808870665632720572571217191574286198563656284915084454112503283505106382442182279096211195975867112592576750961273976113092035490894551518920810120233966548428132732606363562449942313637286689212600995818825774222586075574874673215734140060110074186976118806970321956402528988225746419149918402040561642552784852460775150974055505160598995796001573445506408185087644183303346317056288706292079934409891320927084283319554413438562917320684698525825685075965783671718641562352606275096001269237497490299825848232108650870894112010358498976889661394868225136938148076427268520332629989867466677526084388257611358995498591119251677034907958938078477060569121501969706878468252610620506408425115379156745651961923243068939519985773346318584743049152572120240328393806444961827625166087115590701662050214241883901526414237831773663767374508267653289189941251952853082511536420897805749669344480319085418449568315903390979540446720147079728250498690834887350656356632763376706247037264133328475414405144197596722319893892215755290228740401982468866768682877812440721333291019553351697826910965221971632924226326748183967530753190571153573732698385826000830165799149122765768405531373982642771127854081846609067105979735167743920936349087390895770608222369502017493233788755501822429704748202185718775012789997084726429244060030044072242809798852448056849693092470075456634458173496462710626965991956517667592161044604436762087546512803789155028839547696655875655535207216186099280364620471785747678719230438705448532778134329609788728589019462865029179199172244965472687901142129801874659985697559164937444274229050665464612620932940980404463023335255669372574687983481536474166493216986101970745750525604839285391156113991542271021145757998554298972901001407899105114755479486680966679296993566613614680426217051095176454664948400039056322348109573813517829553094729531700647927111998804898858075653359005285209364712866443927836729562987013687795809877004071046954493137204322180213889035511587114104809659745229306357522045381958815527790029816642979539462783196617154266673984682994455321047814878128445973523103317109208988521672879722671513051847716885874005241567109424252982935967029472280635203133428068382338463069725705736832190755738887972837928137656999982836422154827380995441813379613835174975840693378088561679892582943121535913729044872069308050885033421457939017520140085108661030288138708326881723486449372247906550364067481747168840050664047063783992906497294620785022253286684367110986743210054481054550261919160346072284085863414463858092783739651386568410344084031566547991617881553314921955166797355113165258090842407021361607941969984387878567807021023938916249045290549847931208853177275611576537620000057786419014997462909973275066072858524971502668275857934762345927799726923008216270070010319248220178477940451642971856612949060975718582659074540688655562131834871130912816622793292201844768981718242807142434814074549508520769914165838505473888527204721187726417179905201433210532659282179412835028840962772947813151336619211255802623364767061178400581749306249926538229703518864620106880201252162585829556793788769444074176612811051109059666926360123703221858965179409775562430851354185977015029211807863499668547692871978814898819218514384147594954854885176310033115204179160436205082631775889332104341396010652526738610040267492044843184060276654586581310684114973303420056150636983137727708727127412022807252428719650072906764057260605733518048084141763278035040634261669851115102346004482345764649563504902656305657297207100467274196849119146683881541775764902332697411486304124720737599977319167525038230703486672939932960626306523832517738960311671935275561138362850143131005773580163330933419074012834983055816664116295929066037494163038818305912856015695157838339433310313366803396108518323932406718219660415178532417863061259794342603588869742349590510182550075797738472630304522950781095492593188136780535290627532864150529659423986838383605291567128808037138787568165288741400594771185950767708483182684889266593218394324719677074143733746836595084513070484772183910037791212273578994755056060066377034621924342720386618948782678674436545087923927631304776221986617419248612445162536285137058991653145754279038982907806871217557089263380081716554543105952729588407132032915257767914356786288015272236290654991876623686121811792959540703146503962575053371702444230551142129338441834337507772867181333008182205485222458620286922023862061616032880990972545160726314960726243194139184305674693147172469792235278848970595394150792977005141200409240084158260378902034331398121661476930633479311720447997544234300293698027003162135590772009392405321489698784988815136709053238111384506261869172304334419286404051668419388770990322433609462097199047795810454357640831183362561672409234330734162646757071237504626875257441851668489388495777261316251603339173256248010549702022906264014411184443909091006458136365433708109603480538828924284813776878877298727947450411508677280637420037278723175538556137688574911821402454752804353541205756815332495943195079801569295889797217952668316605185353766875402547221646738519021804202473802220425883939722119206197714641281805155952568305844384004142232010216455801328601132085927398964978486731890801388455345485489484595379661626195730610377144586111647255839483338825695899627164792268356351332612296782512484121915194423620071977259081035151649660268593752504379697711127090920668103308762294371550720136918904580273553004492819278325547133584937452183436240236764092197367255721081191365159341272182365108776731354153031605604328043427116129837539671025172087160677041269252922356398104088325361806958548525730163648377289550230734174897574819175932640136482292180331653219909280213355635763318637339736865989177622591329593153219317928685092221195622658102282625417039291424800895411797788941879915354007486320186950150552463120130421201261253424446470325498923765624968719300248577590104306429880622505408168952353031114315967648234799686523668831466411330075343798085118195080882034266663717737393010608902200013231651014455181626831342772774975339838727017397874769206015119775268186408254011356210627045880277506346922758014069475598210395491353090727679381252844812775029836231730784249420746637688961177558632505297683515003080130406511995998539951821582249864623135728549858543668952145768763983832311260957507918573074824950489089194359057014540970265676737322787350216940237428546763622122561102214621360824115989987982673669580628021894948965542118789156667221985199456520078103756345647506830224863272503597448443886186779288689682685963716937511457037942509630929227149297848851370475457053932122544667413252449755687066148105645911512838535420560346075560853448413914695246155295318909971221547077374665214098209010571716325429686594167184567993029450156910940005334891028173831719039247157714032515028506985125539476492534515517521545930209107113584224962897635415823406413886012828171062097148581659096576356768748620016547531643345527191973751721808361854992326693224097949424022521918849290904985598972833582167345428432295898245625130014202355210692341183766101135290165735136843684143461820170825628982327695569917956715210283779517894017194667233003597695633486556591901753821122706563339496521274871830696348628984277249424186929738834629015102393970743692626080146495276052650563479399483073538272650787906836546396901139221077206990291679184963505512964368050374299939247966590179925042550660464598990465806822255149635368699839612356809620027610456837487876658805191303321482520357260974069509930330167345696557051982819921512322726481825909511329759937427479960365550184871356376564620291845922187591183978566575385130329405117813492892355414616151774271307373031226691129247770589519752396535953557382164089795662517744292978861385406709358315992674786699200130693969711135053440076408710767808412207183686652969456102292797636553171758141568348784571792449023175014924877006339869830061043130367319688248189396236253936677682602361798832471873527121629655372836388152052313078943956262723245475317625779773105737503686603978966297060202238628585070082819020781721357480755780875805076721449523161361098526835263088372618154848713580449662398529347027988754422056935081284495995352743500206044755856376848837434008602396606247948962046095214842145466238323352929933715900833618459964715831007471991104448217867249324891586683728979995533058481112376645434843346515939926669570189705903997463816814245075244145414008760728840285012901063360694993544609773850693444144592864475844476560422459868429875788716425886346431522617972386754041987815963767830377832742852764336606149694439478444843613614182517080803068635439235043204051723759667620183191599449454336763717467174370851680382774849895463782035359703175167842539609417075281678849223970701283124613774622506107282356165054557109679058474581002562344658709119381605098204199179198669550970315849141426785284341245919654633148670271127723739133855914273012610507987893260983696657021142555446495035171624997718233235102602925609827979323278507675367384889557344183490163930166248381428535537986226014462553768763041920024349842295691217133705561977925249802035448181232690713639134066397552138119324029327480901212021733607212376727109465394171329751408423737879292804055801312637790339859833172210606087383296314588571173776114650139891145158787990349443322284005132150708129016535531300476725151208273855590678496035823492324014535396015687213047378472156412872218543357320130225573851640186339453435575577703214284138665760760177388285264847488189034711785229087642085289079713368232467403856019970448145016719856794293336037285894335052206262986753231179443356316622357827415236634424438132119067457933703729733149409090901204083132070799529584113592514561031094577207825622405761549853539611735557798813155645137279433660740496082884839687990597452200905807521764396501754995751350745287755481249575137479532889423568097491615752936646371219232646153652134547218142313531366145948852435984706120779504025600142909926175407731530658774703381838318926050666476622402994884421284973694748990150660482257932093715108948924772935689668708775145492538264920176848053719249011506072445983690536191380833130508408782022188875565683114569431120899954258266409060049816692287287026525493168615888188499223502888910608059672317881390864464401833669541720411051633970069392276162920517188633969928896832476744802905090828944574167342399090128782218149284714888146576235981531124135962513319019980750726406777807322842215059921162583490025140504074019346889522787494778681165371300542087301671432682217175469042064175272874959167384033700994571533674214125647918406818164797664218467393284557357410398748149687568414521618827217783772915528523965002136806017482988336525340548627088738581620238381664513006542690011772662905125061587408038594410196155795359181891108074156069769088632299435525828392413289589487103992755068926539489503719911663326300126122498709106297154396394936557870158735743553713700455499608837732463763252926691856785218851078356535014636864036304486563764939211746733314003840538759628730886461064686378107641291875392391259509257631163881416865783761775254276484302286283070097272652828782358642775690691710347120426248049282956803439370629577921758945136873040521262696253522076946688015632890693271842550094278042826797382851396529960267684508801815405580767422671409259684806388917560530319884212298121047094036751110346626511834854317636314142094820147747995781349234892985259811839769899924895282766458607816224863094675230999225987467786298861629783297709835441927422489520191187421230889479387189968247557173292040969683341656865339101328783653091715370009254282619058981358531426923288163397472506150954106876390068498806140582737284181979113477276522020232726562684924690895138903699034941435061521998574959230926412830375534665705037741383920614741329525097233146952551417757525860292626218680556546453296325588324548502188614223104627282055319414280168207457001512625778203231956607593222128205311161661777923601293931641709096367752892118089658688297950033491908586898314614146046230937160592690089460346968477499287556318070217768012226469902640172568301371260005299976561021664446246195640934399479995665835974742034253936507800358055299349419550713057041360324083732127307407210439810223504473213428785595613700822446981620103279262154287576345910045874729836634862381136425746305009927427530908839869957563407918222818837015311464066369653506566188360216314337259066805799070447806834126993866510983996370724749026140430026307416712006647846047867920803747093633695050111419784047907632872734616297792040677203008748290806615476267751273568014469685684663103433970374706722253819333686352057224059877756879919433922876659614878531364059368081285903653767948045140399289424798638574461194223451649726661248059361661705536691425542444702916175002414435753432788371773371486364548567491833616621701448763406904341307618584487289344725524881548159655576764812603373342382524937813907736720397947075087922382283907415499206562574683474507381435463010095522200598133672673099166094636309006487196675850452926650977059723043155385400784815555552619190419551214900231335571736321655549866438706113725334091785893636762647877860756606048404669985490769161770570340685983303793957960263651520720458692952912467370806599198741523428771976593788930428300963490156215125986648530518115481613466378519603750008023480169604477290694745785416973286690819605643617792000625275723235731861233082785550524178809413409017338251151636828490303943458987386195941031601498136219953005800916642039011986279607072240981146652592643351076855628484548932508304805117282482549434478632608896319597519148246999944340711280264049782999714486758916042060554253667500277696727685490440509921950797820591665107476680604302451762701967164921036239300251368179314112434869218556878278470813505633528267331555435351263316844446091934199339862823594330362780940358185560017215003560229528173486752255397849838566072267212916738276905457746771918613633855558237997738470755056368935040128946764997089326156982194664062684857747342374710963556329188402749868883285067339154338515555248276625382738846506582394270827304255706525091473617213688942277686235945990417350941080107754374734010035823885160132333894061297758902567889840670568036036757299467287027033094910470374452111673847967856259554531180774478319566934982189500383654558479317309720290723607802509647684905890221676785740172953651129282177697748455641973451589668026510635433610990216148454014841833813731138329783142048388611114050791938266655902321463714491002297072984685824779356538352433235619085410450745397616859552526932366061118500498279501109502884436899903686446773814267887385229870835505353998888864811576825250849655992343345579598479730957803709192562310300419534379592962191381588476284773667082260546339508520953561502504687179405704470566523862820899546899626431029034148236544800388838056866674078396621036909192685607408862365419261028270833356821024838476929347853487532086142337068379947113517390497832132897401559020384463262611691496794871636845308437322907026041682374326681227527596593522718983480632630392868791485879059384195785417630746478986736789139400808079162985109021293743659632977632532209325353453127569033139338430443906784261771064003039545840678603821980580163669686287794208050949075102251202051403838438273992652037473981952821875764434549295555696960975477361985234384767151366353953211673633562595615002348820420802038513196732556163420860266568662199073252664672081271435766232729123632471359543031153706448647328554721744707547005602686610846001412285128473606757975620626501764619029993400109387858950268147325326567091845697854360258591284894912531687405436713410010205075787449535687856006628011105588723267378416148710432072338349025839820527062027529076195139801277463065174459428684642915837437465953417284957927639340832687794358348121954699018773312924816684703538240509598061282145269580155573450045808919267602869772051996440517493424391211446371006230318995928942179169959059438169284489942442555887746758005577551836744574907356557038115529619832363235156743701561467086648922503857796502112550686349859356554536014919503379903986462087501714725484099020321055986031387917537095999819753596393964861455067626409745035683718377158270077056754259408815359425258092708744556396266098367655974061600009998598535732910939285923563225761667625173725633393413270183933545423493275370676813894690762003763358799425314136159732909882464127838536623900333947104413862008251455154590165883918495936983615333675363412993361831963416495024200273164850195054097500864307468199826313603068810332175892863850065432572676394173533737520137381360587861992637165498179661048672108578228439079083244887271935620801348252018752716149860893678864116548457416257400798537595061323045361303248891596940915611371933285334872286921218922297022540905794037998414495630804258390776257516959424352364847421294261258533275849526012007903085315727494761971319801280037676888782246634606712025130770714145480656944251747176725508358133672972097469413795842873355576896910887036385654379802545449532696771350376805616390496473601000096112418436482748167447066413408493284259519331980322963415542274524284851856829020251813944346341438213835375604541771237174517758548856253361606826397267812487980022437986829312635349818915787123105719200586598106906973560928274475507948146061072417409017687474177804573531809187009228527512060379145596203579112522477355087395839607421325492621650675585023685971831376083418911248369626247913012249275526189344283967969585512949814796592071557227789196844567902845683325811610410720324180834360055387970166424224412789912860878502540326738480124076678383433430965240797533166015756063854091401679161761117904900412553378411332213178915846678114068535123087256345947734550254381584161860969758041513053985210779921808446135445347525537019007864087924630893835706526830759912105318086183888032206291117053968423805059410067078977649498141208849084859264149174749426639795770901821358272493783767869657006259363551829505316443051784956412998807750504874516083769407825211144842422632195206765237520850905500071470449852096244893991523173731522169431992169083050622967104489941681653306654258873737734871911488483358366010165426745663837919279016179002165745608405773140020033427274619006778712723779956228889639104583181579228536492219491291660938393074445879525784647825578538417238544729493578541203465965921711274636655602318401373757466383687271559677454097587107616109850800184298071025830829045196173877040902749441474316408321922925806147174165144508887121653446466464920085062462352854420780822992550103084805875842681629631282669558276847655691466151052835682604872298720263629125431065265321850194837602275491992025209628072184430806317122707836045619266349489617453473753547002075212405917668179005493849683119506034907463052242453231143273249016548012968418807769566720470032987248861316224268725070193178613175067796948804511553741366871069120570644851730687099046414448345443017212017062707325858416415919421601069386873309474203358425975130657218462470819440647149979384425428426181217598800276339090720742659614370617350394127703117501433567630113233568613661803180507590512951593486279085929221046222553566092845651105408831921318797574183919597162402931510145063285246463108090837383116546300039300182256887725542424314520194124097226173601994545957470530625924756193322335067074828474459687771290147113814354129618033465717795802043354741670858713346234538819684951470302662271923647140703367605548779830346375470354672782067514488947138512398179444150211809646862025206576141320901707327096220644104512046148079527483916570325425040467687707728646947643812603278143540139683516498031698223404042827119849003566043419335155096647661289205737116366609793574722307624696421632712648962372700883677124424777627768027497674661301914245017715309697647474667176100265662745822074101178580944470632827282805300583221177783762094129913964035211340670717742614714852132332124079650892276289607729367085806267349301386230302501744130897221055325463479357571974829447710382062896158473545783400775690091261838178288523746344691627900433541625191494448549195643791599832040636924040633862968855113302867348528414676429502720720504856124190093106611018527371552842674008698874507996235898662566970609337276799589777709836349442859650771611320558847604317677206957302052030063898422777789979088324445827597055533279416617729268113522701289113585593396721026197208102555741400462915969554538330198445468798572788271217129066096478086510155073763220276555434616858111986356274758262875908967038785925667229368560532888685049579876552602879861244882543650313191120101618972933092554864060999362705327532666386971473782880295253845016553306904890129325801891865927209878846151321920091750869814153437159577703163184675911717383934253556211738585276666974870938074936170515248445945234247003245260361958479348585551930041865070041275482032588396742936413969473533762172845901918937271115817375174218119370149789956369106981327214638073767533118504539930813058016545319337767939004189604609819157337959440694897443881406235594135971123532118835717819579079598363666268824084056035910633148358026002341693167597197937991133120594075987093859112697725084635170539620443560700619722383911537152391615471273444951085990237985865255258328477890153203626110392474448122016009487627700239362846225192918945371850272900296413103404121534286068167565285619698609165064266898431567442019302317776103033159480613461604954109857653902496455395186773939831783870773953286522106726022713349032113265291313978002154777983860817669267819570453369656306749422102320518619204620086527329795048657907757885540132330315182100465032455252135182437006541789567713690416725182993020461983110744252814997844920117557170835267149286243724830565144960506195686398242094769153354862131841531958194276874364978110269344492612100302333869312809614657623896239972487542338036812901310715680980874212636163019880579430508444006274948838384028164114044062384878199034581715339553451360865812430771563758745424088461793340464609691465988260422899815566108898481093752438993508987952214288922560119669672433115894883995186510297235989503991791869518149644101963744560914235930660229538291695645420419453608141273149872253291689389143825636056587189623118608318576012805398241520852007495398163099578823919280725566921082472419665464394747050333985652069514969776271590611049923749375080324469385402285117654375096177020692254030810179530522963131382934449291947375320846972138243840720835090704573451965001188185183601589198340244438045251312070481375281408066332253396485371462215478041315302491941503196561972832433252730554538647516607342595765062165073515328417329082720389732747625259653383985081793812296893756127827373354941264072209538413085475545459369080040661556504774987627799318786166501456205529912459660466640656467999481935757379653202536933389761900900872545130622669781532734402552494455066311030602516499806956905474934203297882410170950090902924998248671161530751452163164668300795580865858066148381022524129990035427675682864824053145936986734436532288715561146557522462559620332451439186494967186289728621978221810229439323954926096168379433404124716483223047028565863685047936949844804220583137594603731152950823415111985051525980320810549183676814653918189329874816406733821108278958628196326052005213705031125078857989858665646850325943094216808966444563279125615843966335805842726744171010599269759408187112599652293764268684146922555991022901480997471658523831692978134979115951075520508788600955772997750708162634654195745427677940448784826280490110544288035353955276190332952916789291245150815974316058974947453078041624406008080942740035337338545213400492315796922622758907831324760730176098012046698237057345539301846925492644669601138584309082414532135391265645850955466083370416313087933968671210449043854234578027836427348947467424255997354236260604023589049245391390071511819980029435593928024748350037991545490325658256092049026990063690965624830380756255659490459547098243410839529543357426861711123367291258614628124022670421220927633811807132762788842044374244306156847365385261767984972983669940197374421366772525255957380960538508625029011823388214814312542961677131017897069388427998230483031761418513450296896104204436823419187811268659176090303457233797947866841312462392616920019544804237202440804617930224114326608489765184465224455210356898138384804863208341100011102279724040496621262980332546621414704225235924477134381602986267495348812442642812245031528425113834492542577795471819635485687069116403944371320709176145855724942937139803410483961870512270420567741499982436797850082156722261543640710315226840972859201706031625596655657160451056636171899036841550865648807171578896137118349092797424420120206886253005588904296130262521612304523297439383792350194015166922920641187033238488758416436548727321529911515860826614974749994608265417627997717277617519136041255069668662157548466682949249723031523148900975980350295072571727214161936719117471143378595702799879596049678834512529030929889333999315438552156646045646018382520864369000508297831952462607258885047947773941864434442098285435383682763804413001905892808603674125795556378141904115588660370500737119394365093070739377906595592038783426941153046579962591484210303995764686886860097231981989075049257784485876871042318604120388719472828969540088636398402211571340550001864667174402671609352914365974920746425899339158508319059131239786186863290695471084168042301053696292818866948894953767999675944927135765810013467127057049943477783800071161683854389340345533188144550481769565989288823827892979092849891451678782517754700208841516278810972102988263915910500409246377136296644444483845156671895274254285104213459711315981681347192465005391218957376507491889341486109730538245047460612134418973246311242475108754452972875704648129126232386435631059806308772340189376918283054498381004070971495208460046236603116576953160708711814769972705285865254888358357126486914024364592573747054323995283173224723415274498596052703360139445513497629935025198060003125886140003355162383123279204919461561536493225206818156366636521449934801821079711058636976627680655597583121310786413295612985255798074486037125370685148896603746093977620489094418266580006555861372789385837308030316565601194564879837845979160555842810739971942319771296335203926118721249332656823870578373278442797740724342474650391985419835411491926258770092520082429697616754313358260955014205302574690981172109505596520049096605679543052109814555958036061009560766633692916823569921598754977620387748552684921608516046830424455645681631774879570848208377369921400871098524519571051743742171052092895866262283628610467735091581486355522755685356941642026704550342633383357457179251095367783982374932102466974776255715578390447598396137902937520979047942972828929932950385141723540989310167803700554907429116083225739681704954866159358946115801689083478396350525040106235854383076553762430778971677862229698225991755139283093574654856379394594124718237771173351169164614396185675834537290314633908323357676299480536862516127395538342692852869402157915539901378057182114745227999402329912082342220343213104523555088011322236557413875287737526156558054230051179771982969567030599040439322712779319859089657983989139587748131443877754593631519388775858121778782365664484798577712325409114228371807474617314455130840372781938924526264321071885147381200852595918924553239177929681835932696029624207499377108944742748198144966501346769649704485719353193500799772951606910935938570941472931530106907786436481266350296155563410522862698255934719679512949639219936955714734550390905073268395061286598231938830847607748581023686287127394830739140048118982733890755274896087478308071509025949883555980024103340697159154687269214079500156588016914669095410595030491124407995177889339699015212540729010316768173377780599872574722093067612547346056178698898885426491241590732965592048783573786751056641164520633116962488801760790774047242080811618590687581029838855035285944114193906639066609673585016397621430605050760695064152129598245949338454158283138785792342448600898188848188883708371405151493494777582074763651436813791489234738441445893539581773100079048147118367836974328026594944221739311244854575817345298146370784515965992701062359408733710835674517557766020083393323233146470678167346839340995606563238227315929241725824921016464003283749872706909561919802118770737223471388273942420340797196482686185539961876876459281692199426182393837887752257913407254852258584903489470245370322695812240930737877906850132589649885258403003849435477754809439556874945885643114506966547804477786809701579244439395571436559406660958113268483593833389133739321047500059206360600026213552678368443143249625313145663769308530296556936266819751198727153627902014044100010540236658975568945397964337503133500923252185122945037066170821228908019652387632314250925417270303037799177936225565439655439821059512568173419841913140728043964363272719867046460543445791705780803648006928134219631738169435428683073997609233344366949668283148247246255991724150196639421942955070484706846459448069707006636871889060473351912772646660014541095104598888505227696886869306537949522982555741144799790641317997837321985094103354138286465926424412929258980885562526725827671741748132535194519360510711521056878194185440550082997446007896276567631493503277328534412674357020142288529361997635766087073962016679223694498238934807418803411836944778910805794698488914376381771530384898998235677930201252534889926715228192298763316521047461314667308175613653710208895371713972884695246063789823031981668395515015051202014010990791415566860719776413900783315465161302839244362517360629923192842401450844458197032982462414099249050544606254381049422082958539591103609937904720279146365360332294031691142004347125484776663814636446399578017493805131540244934693698528707647861325297436668154016861611154200225022203107990846732626005515691025512748642515448971698902351426174118712872456883101613847180887045421464049363935169707527720619224253731019663991255490293619325011187767422872197732285379555677651737681929927501254567495493144345275670907302771985076240619046173334650261716323674341252283965052829343355367124496191818063202976250285950539983575904470344869434702431492792122956161080082395950862042556856365950415224367743240595059145223270334845025180688121658584344654194383718772509563913855492053187058986879157268669818746986156077197345336434908077189798935735557884405787737609236236186496515985749865129972530389140375702860179505923177665661277783118191234965108973318237037590735813889347099907314884678704799613916085814749358365902067909796454013480877239497382498042292440844081366056612349640181171099550849686365881347160223031811662349372697228298252708893369875645150597957514251209999201520212011774884552975944851921398191392865954488283645496542132829857586991603132685429224335387446729661493225551819427321865422278008339401614846661447163119671504637361776736108560428947204356519665377628400861743344806940523580270042312092608187280558992723907574123839609349890008317848294987246071279445747909431459361666110200089729182589041788398298535666141577594504250709315491471742002572337377078202648281630422070092235963356650977142729540442617581513222477070800990671403083778932652608510809025123952233914885251478115235759768221168139140657744451673067885499752485814885254130000476787751091113844602219112746774414744608057229988497765603551508054033186790879297154321636530030156426544374305566081012571556092366325654255842501705881165218933274980192415370072163943115308990794110415386631496003663068656400265441057261642771290060712851655156095893137510415756296886583816636931932116355939278783181984995533136550039521536693834043977109683696536698722206581085786599593872815141114135233443769724401254559941115363638923961521690864389004737034832609377005957843375730195033786017488312020839371323617868554338158281045943709183459726913910750711763317207832592914784996669375624981583116983857926418548258074054015083438906746051549326843555517211982158200787859932207123745599140044284483776102282515155568320271154926114298112727867702461400272685171490799975006267948027902346524874065002980895130766179443623920905672130774961367119132045393521982141709844442655006220269212053905793386479588827773040066545846195398650254755284651257472837136697969450184920530493192568617874835211171093800553561041325696504185061729947946750730085087217650272816870559349914183787808781033605805944453894321206154212340215758994920654249173942743400603885613923027162287861077999925925547659793921924781399127302238506420813384326412918202085394070320743558577297337265466160566825394245372006458749682650383000754264827598362054520065684100203884789577122626133350980172670978491181702504578732557010033770879494575473130883456402511937099678666859533326240025387707662635875147623479303837867008986868582981565995645619169095529840542546798907352918946383602748858029894419416148642446154066816887630433060555780149494879747190915020453423231185561199357592108674085629662251345681097685445308576386709002873176594270760625897474558461011467566279008473087287593701834667779803889428462483336665982733872787040637664955982613267115170418642328005968814396933601279814747189417830238512029239172007573343192411187131827654185628872906140278044477850917698680402512474317419603047976418678192150895847057564008497610462668349019824892401732551565325802105203431354103892975010693020098662433596629841208108442116738136723020061757013774248021043990587782929385710123301126516965488389567795168318046879976784093703175686753483454412147648774923947716914758932856875989446433990334222445413850630195243812259735808894658373337499342198433859194041209450998809314535691472028029192530112980063941445515096672724387815267363456585253338615175044152445156551317610476206843342760664010083882220793258421393684958181551034036899442462849841174321461229217030007942013476236809378102542092297331420115403123900998601296564278485225552286204149699878411321687273430892421389871116265839807379581308707432977104984630138664677788069840139647806346894998084977483267524503488664133958660803336508890289763318120785748610334998509646909929248026636264522917819490785581144566201922973913589496470704909499431036742818888470962764975681477437696899861514898297673131776955942091998624877983942983775820051265980379341010343112764411887933693823246508273835919607699724954557633594391911352213216889515861852002764447183939429439656263672586329208574367801365388556356308797444188739332712515978623689917981627149838424387867892749812209707572698620722270859945455691466176606233910251668044668818802820519727996256865394275410659820665205234804184107903955788713310612723241785894014831175967648773835024439039698242503311729469832987566984002304370222284617521175816756079243434746853915280800430142761732337194182582945194685619544913719874313692291583541781021596918816772206614232753719072966629799557503018696068527415978847952672966714920853912648600552161190012692864266049397642867655194561302397292793410003543990402969632600975541847622319043686613425310011712433547933314855707681339314436554214820535262400781916091929390045560429062876629819225187147248231676342974894966553977413983467218934553589919033722090910457539652502559288786940851294026896117190855306891296738520164667917089733281845998489445410037159053382488737930733561585248700343471548336439758412442581475295196265620040292288050837869346850752662772107767230332645388862846362437003268696247839498984704137406888340021925052839864414426262246626859016344465306760323177131874266405687893096395303675008081740607360246909382770853947150491821216819502840998443358412843102596956368711843247257711612843769505935108017603874781961634087841575796918355019196631332996761832377850461437001302003728535291307561236242002674194339555160132553436688982959107351319022494358374734930599996070658009870009815965982444418170619126649993214177865783232604344445138023524718668642999468113019331800876341505381270511400234352360855463771911683418521805459245353862899172027780800901394751772296179033903923718607676790982750388051726141926704268986953459389171254856478361025254603913189768420405268997787606506338234725042693145523695844934884330304439004949692642095831510617808966242392373445692444868194037914451566162491031385021185293924964396734441223875654089702758731736516560476013023402593244258662739425369889448543317353349344919165377163725375082301815816654886117683281234968825726810407756664455956255420456729133215469669493394116080118854984087567395402229688098061010899285536831283001595164328112810542119585800422903807019390870314437310271445533801683108696648875762864472413092065199458418643418533205257018059735172778368472023226672671329998438866100977071539140154325276458021020403179317470736152640917632207010141274854468283415862288742983039218764761496666823170385588072736403903557450495917667324538404332181232166251268305787565376083304321877545390478782698956426845534415136648337010686657410892566980824324387210755169096250258590510877734336490719195461397326573074688288297711375529947906004797473831675034097490763898578380445089116915504036391824075450045722579440067536091713340538364729324904350416622869512557081990619469992831386672436266920773818261873454617964726070345996987621859445836187387475393717859265258455488642221311998275310254404356734953185347480610694945608179420123516442571537660933791449091979503655224352753976890207233815084030979568890365778843614084685279841983801178997606386636285945016588081615716452992457069571014452192059284233152403684949604558947132405862306193222284361816836011321366692212441362485479997584094044639527414592634778635556861103081626101195540432066787001940177633300812358022302393528718012418030092556497640470500010694959900999008064471159310554420674180364897414866061051082142281586056226888176422751494142753578658526609978087305836571349605729529981159191036570394859580671546320978871032719282067371818961604954364113884089702125987745819301893886648766490221249624530120541311778543380462692358968299177322535597971008983485674037743624582146679465418715984440183535560455425914112711781263466323627279241178577714679055603307515222752840161537199505442078502593983204476323306702366623905488667961217507156967233354231753301708037676341615649460009642992493396793061241625357535724902410540989921557161301230406271664294815668223338300817239133042926146109497825622469340329365855110661339908282243601920235791240059767778437932904332021215248219949826611317198554080973294215791466363040861137914231566677020786955046857352268304875903328678167299174424728001698929498871555141467512839203216856204032299069651951293249914174016449727662213923664583542068497210165582150193180980110370387263676464625343104950757123342317008786274248143628829102307476585362804274542470109028737830637655330653087389831663915279606363677463024945977980904516381949749294868858562631398550846010918251310427234328141720371852996364834848638391947221291964679384248953888976469469301848944371085013312471273585196773677564258585887233698279018835225687872036313514701924074390278791740683369948698103326188634321609914184421472136377339497496717911355629312028570477453377653145409831805303734441464856059176288556872761724160365494201975930322730220673341229925061357011671155528485049684062035444788455996825398799367298419081925599585038370066832299971482023527283057354342634497734471205309711431615291730651081239673720704760288997224751436844228405187837084538804307994200033893183973117751315343818949168707011934826653418771142082436557064493148106532923002796686335927514531475535509423105795319089196523897992995900353341649683381564336693543247018282245158155028778034033556542750129430849048760126981154582836427230306418435435268111053158039334562775612359191817851195264101568690658299353407957493722661601366334329931576583750653380835424411536726515698275047769197688032744438266234017449926199375082721257048716473772639058214378394604456953230449257373669916502577848455931182660816879317172651376059057996609626948522790151668373984148571888887087082575071505717528832370345042857373314550592033616120945040430534501453827694338679106652281893940606042781256884196986335449794129898651892624946167596089994596658466340935161638665930063294565453006267285464378469797913675201353941205267872418322772985973411805750002966924714450451360891309763811007620519142159838040713292196076524744747526357969577831103121518746123844940726072815934967598951065493153721118411948824716204809622797296982106568719301084179209990772242088061127957970164918736075063343295737384599653760676813699120797140663552887170407430507533953872991270188670078935604447541791098545823767474971835413036223067184975094236083990176208880898165288824279291509997712559339742460809138475670794813250441947568130379980524511535412623320123913822102522491257840252746102751924211659322501140850321674482384542213870904873989531597178495619940764096300127339029946930045115710089478339167761504415849537528181632690325109089618124967806764586135211869954689395515182698764338036005431155598008326939551076618658573448750588213276851489471244314130790885765404540555606105148565567123394838488361524573329682631987952492421796649236864794287226367620496103052537918446826957058164833038812295757434280126773949698131662691895132268465723787755684565277674636763748404090831959367374918110688553363845120514332635193866903297139791303436218550742159703277277471296566769122389648396881126796815496659036840088573282716241335062808781872461342257762808838077748326431070276231944721748812869075730859274288353173760079154776221277056705125826041139930354703862211841842089306981870087784414628364290762770887604886524894786448961419309850237024070518229277071472410085787392360805232985460045838018538674552974176839483956005987940700727038039533714960618278952419475049382704125471965342748502950534007939630257981076855922995995331645007303540225406119248830493509850801328713216040609263659267007261028346984997456842446710879131495975679587972412308379353045286670416617277494807697159457042337083652366805673038137808405910284477522093736629579852652161037836464015918251731691941184238801683101341650372640366879799738618901108792191386983272072155948295964274609151242683627242739429430889091235377363384829035276102010371219167498299581427167677029793837230355713899670249452638404013282351356672528471252696071828240376031904754085966978529435044795456627574098883764701663533852808213453323953688597090381523551093978429015272035058734189297240407858878371342154768742257599853290508371729181124867194663426433082861342606160164323899767452880950058078309660431357088538691705609415167173032941956167267320212444598151657485596348966424229107021898211852737841493950336477333727696651392131737663046881102582792414024063283860355503256361072781822049766724916025873873771542384412706080002335872847493148351151383976531460637264136085663984282208720671528019070355665099101780770348717092850189583934746870191082795928105284135342451638115672155229818851496107308761159015843730125506472583815571378494488270092885835380157907080642550861975413285188151660206649944446500038805515140155671191102607433414272284277666874140338159965820271900563984487933455100144571825534532373136413784730930451675167214872153578442995116515288540675351704966575938061976909977185240625056379124579805133182366770547614499905425886147182771304340482123523717764192135474728279441051605346898912997261516032638863735899963418915418754013381409376664974069020877597448491500104271621589769339738760062683006040166732690965493654802530688957951587121496318397647149124106648269629530928695604274576230601809872697291507528825233982143917719848288210282179560772630442703461818347224643576743094303122920029871400399633914734348093558710832143901752258294387659646525279475296551835933538094417641827481298585450577648794858501890931226880935095836063264071047168566605214057610974602683286318000998931988904944822490200789737307225760031528892905146570257130299681931289871338403572843220926089224398715254635794767064636121152681236356792560547061606581698464873491480020780071058925640570329487723582992571113940710934666957568307895141849369445519200339328081188935098916758546393743740520468519320352809068984922435471263718646013648492740269794334206661438526744962891527784395462434897234475962163814990476245753716288890417756878473934910717654410031341335755374172202187492306016905779015960247174534260767618888005792421626529130293844003087619903959455956398002771469892668083962017402930252905040782444003429088717549071789465160660806513046958089736613400791031411566912725579549714143787522432230289412795573217992055723138174191080832562078730496998337734373604941801138676693188236191081973634760556874416524643647232815572420631211220433109009734450481927843806708195917408405355937913254382410029678034630068352295043879463506053443385251766795706248170734115907263221482847349757944382521801735837277542568150321575377533055955599378688036843784498865179990598697342074226589379293611547209932355560313000829282024478271038534409472759050597320728979407044632619843717122238949767241125859898629540678298596547765299802939777539961099011469119333060352474565006814701524216059117246384077231294946441262337248212263060509348203679044465673930472472712815606918744472399017130166353282877703852103809096928453806763985772552306563625125393485253059714243388269364355161105787036089249612123741924872784051383893172770383490903603546545029642172147381620045597441515337917181991578535404764229223954874326010081232921014456735253952058503695772789223406799873447701486571143885010672006704831662541410838154500936202953479605523409640557581069598115326025994585998531604219968631760460444997422062408246217373856780856421092215943055639751228249475756803344694732599019129131093710403394032590907641857520255487927024710625034578620708993124219819062588560801486518660618208408965716967868858069058667344496281187225008317881332102983987042945217551561120599279092894668390907018120487120998335020016767324390405915633474126547554376856071206155034053677514021119886019363779264875504949098324382839237348169778129642497998749692058547276807871926992537018145139466125602664610025211343770523410184415522926733408764366501751939068255940195000112908368815248442487448684832016457053354382128527928437148025909694510930904395271059532080586801525920421153969812524761424798780348185292666706182034331434940580870309379961226688029659463123684577353125981320667632300813773434755813123481022250932910451953491392561944410049264141474918747972305080000724035823974454122162097475550898674681393588111563916249366168353527697978124198992016152422535889426460941262329563494718636771909950693333278971999895266433499771100227646287407952850256627086347144872934368765508276061463727560100134810201663743487461164345920936735245676209545192661081438808806166965498987348822375500420201878095210448019743376789727535195444681934040383929084780804356027793641058547302619750729328240720412972526444925880466872111799819107704860300978796723525371488194346047314343125852477680532700508620605008585710827160192695187176018591964516105401081130027135596511521798797945850571199177842992392033265060898455833403664637276803925142021246865629076196968097225686117410518861987716209917731254274622739960036007140721029284137440907741316484854995110282213512027813617522415479510639153464399365892822870833026999059549348634376757418369767797139838567576508036360318491505622918154078870888532204677212864698712318985886478247099882746294048666440602776567944722820081831515749659333791855040518649816609144627665352019509586496733817817653954305918029570642086672947748362836021809771542068541577926367716168744377715945974431517806428679740180265977817293578135798379376366838547165274426051381523016184813710843961772097999303440608056821733194067522567600985361530541644067350976687038638702056968481016702624150402563264235408842714400466311972541491925980728770038019314432643247267180998059060668443510150417032553613293838196536668900542877411719734807617686286497415085016094676620398161983901713886512524258033944015345094982709317323878970201680116559073027225482541938069393830179663098670775696935648680468024201234689296830032840926206033669966573170589148760047159515410650884684005239316475134024841741419773407791263257629094867960900766086356633649550848359762772394466855531314613628247290075004045034094414927593195764566227133170083340970430004732661040512817117232145114559642384508530538996519054452750992600847941878152744755608583361765658137648219186096077812648677665595880748673658022957860776816705842903435367888805044925226872677866562080718764476553645743180936284313939446531279011909467980696770068284620090535698938559132803554336953929729670622144493715059794042556798857354067674993474329679517546158700819244721689007861056961252658196705063496247433706836391185377006152073842422035284740055182345802663262389440279808591790047123304531949528733618250250389570022989422072955666445635923727936450246599230677894497738082080522891637814600919128648102284524616450898156052251642314459438403505403809531035372329688173469587628199555415436864888337077509186799884556072079634039455188777866771445704875724285752037590131933102488736934333111034301649468826940680441279489126008369480422949663688970223023066584967436383433162078817025215060659677566791750135872430014554433597004502698877061065436256351637954233619703466172866263156243445095438125204540195771284763734305590046857828620304067156381253951138117611505148311996706445603710662282926398201231827976686210555117346541081549926406743948694679971343397462617172948789599775797871614744310372232479101900661086106589561959741032272222715494495394175322799579307461352509202677322579139240901663288063727444972300114399541851953205362460391161642126059371796186322325110087709594923527793617805854969813638265738582215251070038201994755401168894517821676542081804269884226088878110566737214038771111103507841351437857586325609416203324547730990923799467226889732432416798602125472015437066693288381637250498874936909335876888319127102092271517299348692476642179547055952664178295842338696992467726127337350211272732119820445112657389651221740454675018897766100825239105975776284324712918073060978309033272837158764153695849412154821779074386658909153367776470931237350551613946529039447605207852471242759642110167398257380084778918836214874890779610217638516486972126301159331911919867965045656462603855440521798890663757476895489111037072286142366857553106630920511480375570698611930652774033175135699135591650830622665253101166561709923573466877796060353491359265207758331679249764519133186804998748024212259648207322311478500531775570308034749383363320339631721564797386829925189979369170429279068020866570800562735569310442255454785929068619604875483167544612527326789438390543337872815241176741188312001929812039249932287054771873574799582893950761466251423973406853456133286483423081500683783003553091095032218472906198260234093862800818675318922129956887593986947008296729668209548210129133205161895953100211487693801030337282662632208404317528276506783951630216834281316725777943609609084746906716387425529092919314752537642181799128775696996064388813288226116411795817762929912360164983096828380527975901194566261933294271998830616672852644112011694390890721344700009807205749786324243586633501000946371065414932504071149342465254354109069288946948207123137217404323747004180957640634296696253905269306727634269671522601663431104552328634437382917261051327163406117445845157261728587502656655431128852865801824176896372885130969264530798740600002064659794308004264446549785478229769997336324028287636925413184193752558973399605510089842678136230507086609961939763999828450102471102354150193060867787580743957087091567354911068765021106386153560936709400216118236521275593912934926593298347189575243079069756864553896272114988399800481681164976492890885968743352878108029191159027762471713929693226773735554468637374279711114332512644568365395395691282561626226790665731218270643435242231120142061475254000593179135701962950457285442920528736136895528900348079685709160923872768608063282848124372421483333544455460867082977015072198397846422864369440618002515270024976343985572403698911017253915803375173510275390505639634123303156828159692021379466164610130601787624429039424074654519536502821878986737855549704122723374206863850223215751854267791486512580974185668963003772855176158015063311089564479388626708685123447660292613191218576622182810132575410716517471086242872504933600825672895440169717966436476438242971151883343614490654856712811227627974043285306181702728775986239342829423687396574747419772253975099271149593704341727807086238617754281394621122134281699843449927286808108946231353260658581037014183745617434342571780676113297893037187026623187117087794398945185112640355853047551996801110142035909693078785316198073415601561662026584413104228398405466570110231457439368677262488928081263824873616242784821930816849401894839387184445837985682898298148772137471526156263869587933720968219613301261909305912752607843599206395690863003872140251188662486763816009465229757897461247688271552168632259380085343374574808276173327289411593621931990845763596202607236710748284315272079822519741511430372227360081555386930786293937497032619453258101090201244414064025869046501351797564372052550808852400479404161764148228209214234111182562219134734455781549445456525191843642658523223148909513509117677158346236925774414114938889134798700907419115489207789798651865995180272329285646365605940297976249025094539079052290123927943923048460271588611571892779473142024253382806108038739988014678528543775373576004059153840978581764505484934037132623396751038742658359629530206485909159971227181227352419456887890658451909166031959565614017603114011867092803349345290520100925675932790346019217739696456487635433666986704613607286896024760027534431842353216537705422910657949687382250909951098464329029485016341252671839864522568134167532151417799564426146653475386579033012642169582956491358398972846189168769126905974761852472684720217515997309279102929856207477177155406018381652734060160278073913424863786499495847220604847652775805103311310176289765039810558046326529381308586242150980363159193802542387224283878267285697837356496012425640130787202055947930663615315568947718328242602083905630526841452379538848208134244423820163738886447863504542099991304482511563109989011933858737765947925433508726419163398891736549243215923752697345017422262480254098927222047900618296290622238930197893969413521337748102657889352410949325619788912385735181686629288825715843521565530654651519861751125915794424355793775898175605691653960956234187303798795754641451884206744751545321375980842770004208467034675443258023493816784619090385736257587642178712771016502884843459941892119853269922270190593856458230420130335646062224226142454974342113075548481294649075088840190799759704520913585325731234147277666527778652240661506558288062905868828295252844261677602911254531482085710287519141606639868982509035553389803856972885828412385319785855026070707792572290239255944202203107928143287177339698780662117726214721560147268799671093719292806890689192311651708489484749963597445590612194715579749213350327631697127889619589113795714447941245245078674167988434482351959055938629182952684703486701210471731802551834078037581411887769354855595338788412461561831307674901596211920898406243166707744656431679970686391269319405035579019162312453516241975891012101072872080678604156604593954029113051163582897154831567133226474284256509962843484219945466012869057066200832994344140435529855551739731684906598189886817103960370011986470778622941874366345664187790311768280959015779620866105973205110116911807224404326223767638460704697347914245749836535004583813828452856729465541281219531648206186503402753596350114352406172646175555740889643544255992145359547849300854108974352044562505029096190842478424717587363551189614202876343663407261070508746828790578889238123266819990399708987896537183624969658114039855577387906057064532403935424316926415018123911420325663274871316561351203207097381481232418311410720103701396717685222148948271121254825658246794696133880144643558260699174852175801432056152975764118125996733715263587151648670797090479269364735498676854053282966360338061270760886330525194602253485769911476759299531157598580814582027818369677828953734797909478869191258769735986182086227747103329244835581290325798818212844172668249799308466642297124085407922243528250590568185811821586429812877918830036794770621237196088255742686966711761195974780913373350212884626014377097250041123130246846372888704708848413152144871819823672138746115119259177650447749164593761349719542160213019253562802321465487024362141408644178784232409112665507204188747673909429835951348472270458335637335692191477720643096306479121057233881219421971155431875118581233240835194879671850658717162755441307069867127411210454404888875448183052471057168386819112882803310493600937138658390619628914970898764249000973426236825550488823840859309661770847998933962038742196116271462534944759721144754095111792456238272943861118017141448673051507727776999730945201174358222886893121293489458316802970448871911171118420982769229673147035219164634634127572807341430157953181633582236458083252758858771349372144488088222361307879681906987593785582925895953586014734738750314209868887454743502322322358007369093265538997536794855191109097916644502714224682075376905982286111780462521368858850548461678433416062364340822402271322720950110379494452201449749615692039852672023862122874390004339020578451863440931919010575349453701351823267613526683502917884066542125997340901558438306774168873643606004353084558525029475042457136809726339780845769322956486254922041966998758614241338771259776956475600954509245415167513157463264338842753792770160249755110543418040677553896866730987566753285096185338740392307146179068638244632615087877619457611187940290696346560229279029387410473224898190647181209767717626456659107470387224900042625208508921405631859857021839547273637308294393260397939015965512702183338952637527107965251916278376789532606997563564029043710318449486958422186808316235988038926175138512036044027228913111133341210339938232036592628298937178280622780052127314400528654833647240695441011426797808315892509531534065943792845468695485144175707604925168633824553320935995366293945391462125993573099250302688448269296514050482766631371527802038245796195950923229849302992990129327847680074050949967293428457304062164211395522041673272907013385897592775673269874415080384029422582884320434218212383413272356651778697923683029685635171368299869312895595333152675707404675474985550076962090183208809886706052017447281720921103577246248788082256114412598503238654193830504603161216433508394035838489416520960996357263359966019172087759302702768114570630530870279697107888702867415854449552986767093719758934322583800155333530708564010294875220054339378515547642348795719529814836115189728623369544274674625272413446736432668707952336236213202464558630503475735737825805742042946436036403651221016032303424897642542033195968958058045867736968146715312935879167967939418920496922486679157412060716601982749872449842684576918926730167017439296803830834328962657476452512067147067967449331766993749093903410729286565505763085187539795338432271984384461090119034841274311431622658803194905767871768215332310086683183142405376373793541995907982872317112587322936820306724177271268273666348605291478349189457670817036550992798678043181695761030810833116816099732533129612855238427011477280124617891239581900715080077800307312293454731137717105359513070680026125565614341491108765959174907691713915560020050470118803905708705322041224005418231956786208162279500999654110523440498685648421564911066844928902131128607110705399954803928130474688114058785999644175667038255747240527879823257832216214703392404474901350430484765962750530775216662230778212729981615430785484618830502468036598834226748844482023019152106851121632399498721902828837007218398222165179364252954819062757939690316380380232274927560712843883883440650548003094900976166023370321858482743972797674758780492782145287467398024285316142462260930676472920546050703700601904839714521093735087221371402557028316749271868959809868416029364919971829003242053428003601200999823102286149330008611600931652032379349145512909137906145388304737790591443657405570182405908704685059631786153030200146607961550741961807687581256415880156189207473559437332569124238099142614617809838977845664911583206701718972259478439539574579412819675147124385973218298694569283118594847132467857156691517073776851512154638450238158918242258683702175496973048559899795384267296604148890059245809784827108899272856621537037275251521985858391908454812282894087708373211640660221609349826421021419898184186287407266447619429448217304879785934183239973356274892326569426293686163324742809350728681228311557542351259471855150576830150280967276321881944064943638598248562051615189136996221244014980381235249504239725590788571901448841617569920918516075359460081492500872112969457247145052533594803816100297214475665080600642387021858268503085296015136656973586695037361578859729358247036601150211638811958801127263758528697048889331210077584180224147306368294768810907739255259864703292157112017480107759232982122265199310043725989400856069540607819169154753732090415056948011932464213114517882499883621910878569712333912368208283794952165256793846851831583874924382416927392243986845203680257512130679676482111118891338995896929403719585912163960073241863994600847362232856377365251042836626802429258314591471924611890164930551974791333600871675775111430476684700354826797920414136941931168343336989270237922899365021422683877122922707640123095638509988056925378866906598202267646925427326427857496579795203982881859373526845963465973671015771528434868919574086569512215779785469872179144872429272728405251955367258462800936132628580202791844388819947950328648878658741260766979391084690243859380565519853690115265501460698606053701383265431526718889427330580091971048870862580670476454973685534125399309835576685390343492326125362044407416125498390260262326421524301746752262497213837453237093832930360819625974104928760548384126437855975653921344294408795803617789388835079258127063761799383412758945797964197346360910277051331610307048117820877594244944858867740265013794244967541291077501008911487589192705496890747028706759287268779645826477904938818391679655820562313228478277490077839767998184171641096565129395071963307703774426331815200164718429618414894172852085562501600172781829963930215327151506928434247351600675487986383677818408265412146646667943416354991340593847323790724831826255697994649815260402191366715614143446888201078179717109643507061769953817708085837860985614874281383155918488877527161919455942122681731259590487322292763009149449639761821402667525250472619862818199238833271298842930529163346227279826312069622909401276634678869560719793509040358039557476812522990567395722367561629804356238528457323600691700721957291269152624307230305889289794771605660099541566751779079650545270859804035355659463240825408435421130795396156821841157460166881996553082161559199229484824126044199761962825679487560430035281371764634926121401464400140856218407765124149541620467342538444347640297371063013797869534872156471496019106911574509267349284643549200643144950763602574948525310765805811181328258018593896563757130132247361430769979656236849319496476617129576268593922126132290218356440056869356797480929078825793986942124734579570409428048577114467812288810584909980961970329150016187467633083089075583352289497265596528298816552095993277234833002385932230163273662380774609207923119474642238452081859320299645839468822546219420896182271292270042695340549355896087176347786143157875525982738554669622064379738825658976436091722333037697264646291775766029904218699348350241729527180841721037416152763970678854523857692439865612553711938942786986277156788813748743475664302688396149868662050189310488320183208911524318589481973095077816090210105119951361638700131832964386678240205741623423119024379784452365335207003370604864899815512926397851301108362562591316241529406536356933078315864166214606402263714294401485322266361028323622415193596506160564908060227447204018103472306321650104671562472581446170782926796005051727029134766674275415688510030924817066298167804548047574138584857513370032646002823932647415165459662341649431951042753304187858059888528049751746502385341760052189247616562340266347237127488760535960776062416807707025136592948941737756974531347738075463003380226116592429839977115279399803166809434137442329843601169991987969863352268072192743026984753644300760369333148473855434332326059027282144384448406821281483129814150900351329661376886246164971770748462201251446723007042853235153828614258661626886510929016949494631928842818511425182370727683237004177288204351143526070817987991610968595238526146243530788811849394862991561549989689102716970012025120027702236273050569755160355874134970599389510489627862234048892727497618735593131263018533639498385390793812373806345717089153418063569808351899595587234235458421937348056720261009228608725175430950932358201445599826540018709597488789746591488009802606840508209736870571008437576590908564402840590777396273042778278740557936751719358977355295604794705250205780831642251632380763981598363851855617440969789369224212098488138983619087749355968145025557133239195493568970589495073403024143892872292680364922379384601993250338615751824846922106412074766071828023759086803969344516847296014177101476709529602900257460684411758534464043241061169424689736777050572439234712988296859750164843460746747051070005249991980157757556185895459213882423101500595343845146782080446904070889479534524159542101218221320054899925354343369675135289485370458278362932711717816255180218478383642244921014100153637707802741123408370982021448576812826287105066418742767232984861852080095355160035797752445625540262016433032774673941719862804067852482887466310510875244126600972735619683687540546846076455408933031965776405920511981996385637481611983151630424704289705110597065056678654105891783609078148317582331741153099243436817561142310417629581142572621905141200115123433520420142151644868800104260508028931151331477500934227102519922634087068523241997291144663515583687409131657551668862870349641326176544048199555970747665529807535232200321699739680934992264271018993524556681347266387265623008720153077918825166372412695147502216204304868695608979347193018668833191700495933827120104064035241048954806510137925052833337457304544804957983533191647120448453050816896917304524653551271251065512750606565446890541369327855737471818575051516144328830860172900803016410649911729601427907898442923645645383099678144219387218552806375048276254328512764430051129471698723518562528091236564131367497863738067998697950098070017097488918110090373394564093005829540102595506664585564516998343255621959193208317376307731866518832666551415459866207543826341448703269835659322216474591037492683404249597812791276520823597372560346312608629867073102786148109615133687914501378394781103587486888688529064059218537830959807373271034597982956071063670347513398967920345080371809251545310105330440951485922468099650301843181969756953521574287777587274530289512981228823936755707432265352791450682224099152501211053602007150808671850032391770838566423502633810419587150386494047604480980376897939084599830332056783345885611282464956959473440169319913290062149988939837271639448260744696866522358297187388530524743327871610113242974162183395214063749032983426785683144747373983710244167503326322082126862534127044231865344778047884436199028438805056363283699158104942074080394720534230812411652593099749343071595704346367311857819684974915688467807681607347357726884699064440336736773714336174759498039025038768895409720609511330487724914925922347332812980902512249760187345945216415862312297369768793463416165035530068533956068961220934182800428139040681009035694244409295796763821625323789165070512107176105615143862739208495615653223680314009481722773853512996546543255696649689320244981992619326212707972144346500858974948736313863226774009222400098760444494440749865368705631135351549938973855350263766236057888867177564634965651879191008505612974402636034579396336446886139338188510426219711389017737218829330202031519593769622565066975165727296469899160103938716775301872986406260824878146711137152060587062887471991521712825635791874970276541182312040311366366947603416141567439492918128513811614550932552202069975260910810910012132167690381578507715217989078232350391088692060001219798095707300505648233842278436100162252557766591580079741864670956874676985386646946413338400068791611717965095596074714932288153941516744126122901746347202081118170662272956983817237000950289510005913244227607585255214530151913487680172909814261248970435656823188051662641861902197606752556560780007223539906693050352439314952781557494690779641607848584857825134931072332100175134978447059232682898889037818063284883504418431080788805837503997333032664236436567082845980499246096111096994176342897019200310856196906344826110112047629991334897990882482027063495921867804558535073480138863986863848565600665321247938586823903173783056867035145691317664108723619839669566423645240615370020872226188934455930664776610492846937678235796693434815258860469112372069981754706379762992964550154671031775488471362518646561272968127629525425137916603995882153237073296161518304986838081025422385551080074521549542026259450912662899206104088601237423040689309215345494710449240969746013451290538827067745675963051233035056055730285307682309915863549863653039390194976010439780322005312911013147443957197003485900483613161767330456090642083670751868252922073374583457666958621508738268533733830327383864451002688986882047201419674293376701579375126972382860985671931510300589167406913903718766177802618796993013193247997958663603027691829341384574893363014661698293417697711977129792077245419895907325068643858243547026678055266631481615738106878978835131599892185467477922197115673312075054597621476151261926739884307509533754283078508935606963387150666156356376143732419315662603450520176549791981838987221176866741309192914909887876098643338546294089577341358696616206036147096867243140896194719119788473184222841308917122509576620809360856109333818920321739099995358883404024227386007057157154940088421653844580520200630737826565354139741523352102304714986235098138013365416323554558078368429010454432725490931189090955227235578692912037576386342235588495311743542278045752877339888337594984089691434143041699678590073926252144440924629818497159621100121925261058371973290877925187339433054492547031851782139793493542401300962138594296130888886967180936345878236861478097891363395491579283339649693307905555889480538198416614591628219637221983619881116753715838451536891022775954659748905753390505407510282843951254067112342111542968195090150917250427057827548989653026087735508269884585937631118169381188283646429977144422285437945126025856692307667154713555057079565254798987939516424673239223510411021328111893385290511884276910957862392822712973488162025343480783019075737411534366199375241644524046304128339743600921314551090517589594875606839680333230976835811805907460733670819873307478218191105711512558787402500730797642277674424893368319061743701519622739770985174672713890361418882013118477736871382696147302789046271435826549046637998996504190380976424290449693244073324205574336822180507196773821243296476316311822924221943927068747314377775005429063990606579413340109009554057965391724956295305529927444061625118793559567689366091011320670464566454962223012528577758278031569659036175445767933021007078018241237840610168348002211919669727935898463419352263788397240344054822508189025463801837203874888955794949313711216728363655461266044885768763421862485290393090660539828028800069459756374192443881599842722706996290435127630367346245906306600759830447536438457238696723640325610805206018241175375518480130401183982645673696524103613458550175542263630078257630697457682867481162002856114567398178637978563778804165698334456260377347225675395628585457111573792875715544049909987403585573374815758577113572644974078701812954429913769950815690572430792766394902825724118138949675941803795261799541349899714922706274549296933771728451358753048986763124894425321224549900189797378329946629748000726248187782849520623976380155392808416269411382285064031228614529668081848084551623028564680878028725890895524849593232111224769437689883758420210573391938220297664161364840008837895215871499939360947090525328393737056673397251169767514640350915307698276376100705676827181661348841657199144930514761772909251199054913146151420150319518324325045238438493317919840298246893623639657359103135671622440820858472336163737302479322476800269774403487647906670464602962708114217951096558741653718670482813029913270046830317009933047099242852702808285249321400765986286571939012815766480038870934018118517954230430865687629763660454213334252458781815295777450813526716781668664875217091383570289836561661169961802308187914093025841088912374003018198084914995061833473235662739673981545159354460460225610887558087005364242160678721082870902205317679666443149085204303315572933699994756364359877514128797763370684784290424119275470507407790324400102046023131261333561178687075982912445981520082915548725435797430615696061079638890884197199521937109409828992254202626615138570635447183056612199613458973126758775675240087928351362707926586462682202868073780502917838304894776006091898806877194292291346941698791007041791537288908189163136505719400348966563553602892417466784363294778372904477525409680080670440313901458410446893664071157412633075991620036552471112283591029776347990858006674999629717495060770166833779167950912088409182674400698303078228585227572825336765021109575376643710612505633310392701388179943953803091900093445832835980825913361720684664504176497547595358136528373958190375805179723854144579571953375996040621394225619003393502066397784311392098585333470715546594700428900775308458793295610664264994198153370400634697522469738339322382206900648679135567334598659714286111554632092088594010192171268354904894038313980439600133531526282607281192966045616664219870460158135674551323948657211279223753725285338250778378911207453932713776400199882929042661729755785149652191978392958749548061858766308591006171028901043236320498543650650322415662434021238581200728094170820486397275175497194262682950811732160239100265930911776033966210183858610053832475774668787336202333397861855318278539145798585119453884737932081956117572757908187093590747757492993228170020846376847301767941205449870530755476681706410469140895074039616078440858688641336814150607567411791568784877245516904893241873509833177426243879519257075027060246090413588915126386091916210171438601613692523150689899613317866176581520530755276196112410094102626745155283043260981309897659494882716325584136180468722428125075361113960123540550937617915755453390373815993153768359285343822456224094747387362527231622218796833822717024595090324188073144536558012198977453311643115108051180222362675761571652502651517702443028593528329219095817245549850975152647159509460322067837756358770682060713544673315453851202827853889490938214115764720820051305668389347723508735054462730409344357247475376981946416343769240564155747164861066025591805684981692873002081740098858916006933307395127541669973518320722038028801904767192902648275080549847228286089869672110910122386332302198577101073126231592408047297648692937091430035820573113203512585616439346979303143894227308335745827190194117055584298364415513578552223861949149387156305721972351273353378710033226096135593879162142030546168539022661163202896478780076995836596278072495063675776967262929178276468494168550135842512853233849130991268278268789422437791467797620549206658404806662722482880054214548022641668004307852369859190177688236576948331983417274913324612779440897656132690995744855290710721737833919368734224891919455617057321706314972846154960869200217449623491147383549557071886028976872203516930430186556640194760455758988905664907759618080608639132303916071085592056399601472024228930172426766725803390268375991805356154724138481597727400657324562524307611794092071906339656234571759660723855475004540395663808976404951744382113130068541113975955670720211420012048467282481979631626677199414754276788727619165174791681829054032239193506758626106088922566434245554458034278329179581079796377157839871964850939123027881722868201049740765452163523756109704744216572056031295780887549310880206405792953319273180358537922244514882980525315738223367995301049349108412436512049282504833555830630762474395408283374568921871639541998209639461261574476179630899273257334436946827328774711592863083686645988142187791252434661069800725530769896358258107930012993549773412427886606826281644420169863909161820506682734337806751149747519052929975518564163353101963438109221039859598771964969682773831677188490295020624349299757520265939934690543174287924067023018896641252195323587722802049690652676048208715427243026609299414948904504779117406013598426935460646429192346324215820979320027174826052467892966009443693441303329466619519200017227373202229051487375041620966743583174326043407735890797982065331647450000619081300677485379698819704205727654363791904228346633073810399558416915627354834530258468826233196807021887788281885317445493187752584901516940141742087188531615696337287535144872173432967720107436804633303169056882598533466895802359929188548775329542412543043236576425666803223338846555450216103850866316740925751399812091000629555758703889439183933274993855562482590630837258721265601406625352749408834702807733445689186733837316853580738971765446235984392680644056212649055272447900333663039991021316951209349285643294471726634771419322724150094930912098199031589585773719635149489014998762897285912242597006610252854115278379501284240134799201121291746935217706956683942316317912890325600369000097850962622085960375545728054134446567007109174328909547726718962487997492596167428220107521851828819783482141578022542328324679158898317819824787242234033061380600167677455036058348413720945121852666338401744855120717767142259884974677211464017328977541673135180478181365258459444274298108645849254239096750939695213529297524697517322855058628134352446510318751457727483987678496419778887887243811019184660170614518664220090121316712101704078211595809189376020727775915042474770829907690409353277069979113140297840791711784406610481354752729336383514490889336499159188752125235546453059354215073827664450127239349693787518024885970862928502345929116170049046036298215175858335410003500928762421421950908697204312161308721525402351752129211018118719113147508702933800100891549661527272757004136663937530509272983773020200478370070280805170390006986058707188356829129246111547041350258095955666629980094715428172160403601264354444737805312374029501915472233678087233113533631791913011049304886757785966822923994783795460682716445526970283688765411166769419951575787245187633676747125666817173999407548055389549159592846650522725248971247203444721619136480971000822627766847215867129493605109870873807378475287362562050767702434079619700737223943534268029761685051162402714516360372847988434539430961795558626093334378084097818608210859040108713296526994550447244054797515700047942399003238861880907332999183739101433788467346514818874581058225150014320652688819783165577993754973236394222873393141657316967467113200824969146650649878370959856087432016223924952374985149329514868175540641437144984639115448599902250828372383411224377687238388981599800576974487867803865415172689529490021802476399543591205830394755730592381615497476329146116413002308048068753135769303594345566319074493819436789150727372316549816841244802487169053839627341432355365319239578365296618347271550845931219496665931316721917222555805694747893961384094012759410370760408578582159899963085925004444081614683083123325590548425484786284286063881757834233072327148921033180571509365582362209903156284779518209747964818235443415804192393157114977122231370962918197567219928048225112812242530976301075362510455889982595660384100718125621416199805414254732939871626441207806372365654425808226918525542892854844555072724805863205488180683850254851740125830202900820018049531940287630986730467480748418256704491662588182840440330618520149571886358801544757716782006796565310698858159247467719236065182899227112511854341903340971449509464859190473004081736376045905036640746647052271702756944218582556100069307984072549158822988249328743047530641594644548429675495108005248461358870668497155749009415318974900200645941350532443362854302604758749248950747315980206316095819076245748942988757302870451938654567611579664313334152423034146474417608940710935489098237581179058771084187128773845861644689034699442868324234546932751034912161529176425125819290526315045729513993841823647056097535434617039903000412665628794692946335955900536583592032152918468896467444157942916638074895038416271703614064484451207020432765217507559762578714618354587139302485158531521021797706223279221073420409282235045679438320728415929645337181657843477805815087537512842380100709690145515385835918180281437696720144336336328269561517676171900687076547859250118978999058894472579503582475914265078319860896590102512153335159069580534969088875561766074795660037148313295068758951603143271072026061544736669956773952740928596284820080779906003479686407575298810017888839625081073435801274478403272307481977008041623508701257946636137834775906835604804624742246304328351626124240706724608774097442562528055313050154160358415804831164306201264376524247427090661564372201086215558616262349880211341541017838947797034735872862345149034768397397251363253078551654756254413473067979755161700482701329136545475414415809049418123779636231591879654451876574408650410763003016072378478054977326225902252759992749458814931758163443419769669107724900477976659595582318437738749304266123499407604891756570090528722508417204676080890190092607120600397610461769925189528025794362984161462763445182782350739574674019606789318830891003426245352272659355109045043916477736838258684553568530920397895470792770540854502322959974404527270567789291858855559072094929355841039124979726817997161409547920326957841207298591441484603625709506169915712768122569064111612561796643017284235537982318615095983214281327962942205173433687955536362343528569762161200616021496444894878309862819983775824201236809107847865516044290299806187831727162250498242157109517863693722636401372841360527177745621788404180335895359759832735515400186318895783807436358049564377098226125963672937349860792033296302222962008237815845451717621643626513060016303072340333498900227288632556988158169338806488612517190493439807224661013423755060775433976534946067452791363221709861729100128154672480101796536735543612570565365898802753667561350801731301217332597493374645997716648439495985735318118575330779843201742584536087538920862333124385625319824414331577578945822867993118701058089871124401656745056802305100060874419257935395488610903092747840235861199722820107863551900268034548531300409775011304543047150459877034630194702488327612677256131967036168128379155879037413195826789895785450933379411792403884340560020111601192662038011140074531890276621248334327893944327999393142910269442472651381926159923018010216781375489228740479206347822806205643141287298982110553172026445317438198331900957411259571906037324100670949407488378305656629664301115089232983168532750988721763341313742319364744975464017281905659065909015170091398128837043897919472582974296916875277848443528045011649024420338591013831814719601714551694863625710116827275136260132754735784229363719251861794329350657203991280460400116930967786882371144945047450273832315276797316837004232973789278830294591577446727380139305323006672133018487499256731111326430820937837802471008572616624800057743588872873544498889694561416663582327850486351974522654922824112001326573423914526559217172707631037989469484105158680250569874890693767148998445859658070506083009863640728990063050722345753052607160435227458957483229894553436291270625826484881698616690227293445903484016704262688186554209075374358279548864584030533013988750044210353176832587612524569171157309905981561545896300064841059683812591543119014247168072211731394559718750571697039271482373859847034074842891690299462864890412899082249397273079525776377392890239808629388144460036519214499675628917819630494166130261299007912133191414499798936199559854502605260811878945773280515327878696352390488483631322514425932615063319368281856435485185438896887953472164394538039981503971143826490238854155846046101850842420562431827641768291799675971742948064793343648681093748761013878835312461840119677493174044111597336448305359807012114105209963778721793550683104500704943307278533801668633601941195905917393881186205663083453712873737820142730232257258382758643084091708377068804117542607168870980968460095932882485363925653156521258180204846821802740772979273087026657796970891159807759538407109101306830164653543740056381887128199767124740811624247798810579222797384269034835690791577951384395405065505339118218713728015429990032569298003706443913340947570006380580837225361530512127715619632635660973471600123860934232255152537102488525541061024217658963903517751332978635785364670918008235050758603953161144105800025585717852479210577109796472212003594239934787638232252113058438551985271514728859910661876487983984413132349791897575902712148171237988314727707595176293101775646802277206513583293588000645496605803597343012495774746300021989001494394421671117471791622885797964558439988602255576552780184901053035075876632264565655589438443539066560786573019977465037594137876917439594195209214282297284062190366472962808549856295732760209169246527574217939550850077794134076966291749134848267179582619895943350193923526533210252849827692274334394389913729821591159403177452058210041430024353789255432726466910495836540023583064810894191004239073160936650953116815108777964228599089013042152113816970217042945938677746968347305869018458083909604314434087922875206644856669416572492141270642453532888674910070310720317710278819496529769736214847376632205772134684621196054298719770528066777924606170477304337877294566291845072255070290069985450779139642966352192248069365664969824391901808826027847467783786221394987519383401089756355160068344060946442466128657007408497356025173721944333286428448087457729090676222288582721702513214177065031601264202593803955800420319976329371053606537548271100672866592358639299278731366887202296521800373123024697184916367536545751692199107131241872753277503583328086408929808871871406240818962074667527621845761111241229571375660947026839487467246342691203404998159792246626842764347691913410481037008997706079512009124756515746534184176814241315602886224655597121100044851049069778509117821682160758073827341283810839987108107594252046907090466637385764650226340514651568601142336663314256364718850978226268990763634354282832619797204806438107675183730469403228895164291454638549317163568905988530257361327775896803104102266399394397960407700569585258624017842533913142465475885831913374929540883822037563128031425336797601274179414419670904882462441217355348097388017457099685957164046760444528361453244338210872983110918879133271325350891099576659328630732448324626306340505582560694932343404776923889004453941975750999323437134473661565060192976810425932013150199491084296145356189326127741538172093046338886463893568920671997274932614549087697392213697004332467317099196547758339801075726150427722495602135903273575157600678023526307872945648732413586400018261096673120910780558159040448506689888358799282989510210223251551898638173349406996219339751732852024520900197285542760192034529815853872168506852163180442111201990420912744928932270992450403373540163801797012234173955957931691885729943750395530657047007574123606396386163602410991488387641128856148019059197431332454053969784521317677523918359649320466974420271128910196523463405936122009545801835151138791869934175523419024621608404532386617711698990244863659128444056295484652274113798902718536546259753857451561879257734469739036977883365098058501823150582275291412595216134069406612207579206561914333455883266290321355990713454124550675522171225181185325673159185268800671986629878295611680390768695377017325406989274619011175412797551758677895244877377318858480680716875799483425023905027151473959630591697537538080043981615577815429389145141317013046833910923450299939484375848538309856968546178072103351094081588083741030409125651667488933091903213558679360614877205468910479536080389712077449808091920793875543994552688273624054639115899848922352478208936248544822104214989430673793045154823921599208575766210377542033212756501594104575559081078339930819645156801992843547691330966387966257293843317343032900925830198291930122865545857972991985219050536870247899647871378743071027856132913049028100192180896681677692221413257785960401964895621704897203948103411723522826618189307102783925976373376060332108291504640130335180004206390116495880934807165390218881464121446753383209674989001228143835102709561961400636551956337209350282000158661972572662364511808655640804519418907362836507969660574536100386346181772087194176519104202954424102256663295125395361748735343063427446427946506946453075939525265670800620218684947653457299719921866499299555627712992473086931943677803270225952363127264023211493986286087419827390146369109221876059451471628677346483258926889308993569188142403618288366884187664509698391234902979889574190260837470202979916815498880059175616535191951298863926538945422286744439361007534046765630273204012301897385393308896040062256494093773553754545686207987175997116574960139497267134209288812179007987260724895699505621567513760295828358285380420497931873024673525575369631679903789558591794777688138794819258959153519704839499878769996018575167094937731551509799269733789149336714156126828834793878751845115761278104580752176148987316243338859926383741190307429625761811680593694653115988598164299094042464314657863388549696131567619854997297308699961047683548498384460656600556223207452506459397312069826994527652776815959831640221525156608552331210996355805843296112983399289085206018264290056430810538466509900427428940114741319911011045002533307349777121875036014752437312746956250046470586760888284309370893173832206425268615341489064710373357295571610072287566900509582253490272651909977264777351028217053197111975419475446401976859019617860623624356477531577423236959986552896773527533765471092062378000285026022342081875800772563986731590006682801341008162552794415985206617062075400200464309591633296188740280553880941015287160014669995618758028922224180092665711792810214150809518881229966036467820614306360084432216348557781419044189503555755540094978097681032663383906273662036583220760361465869893325354607942907842849886624938448436647447732401093061544601946286898123441364209279097342477273837549432925786144354403185401004682724407859474763191624024479711593966271752867624262049341261418801347900384160747699284734928342204300847782941315836643323520558131962365202001699075072051976272684268104558595547939612674425403946032860534791110978126843028125464403024110279625151427574949109485479991989781628973112889873705315008345725058703495279553061633301652443630437901743724747554852983605596250414191518237081984519246838783956074722908512585959476044746987740591578524804304591073387172216020425019947197238998334941750031749757733164944785455332238824768434778343184373031737059273471431112581448261844107399252017081504823192256762703296702249729601329550935656266555741518708723325040748604011813145185477956734335082669123777507573116237522838716382052556583689732851517285061366730925362029251704045763613413742329148589959830032956560602033828180743330077239182193225168509828546181175558335669388197196545919989490478386575649333980555288306701576541664392153275731201591326901728238893667938637946747311638528851498172439669235974306999781122686953653842059067904342744763939931455528577205430528778526014965853106959311746612315844158211494467756012267782570558996055300434405598208087046807178273538740528214817420705408605604088199666779893837769163938478401262036782897825239155434256232349391460105383895792030736477219801548861335599993961810369666295227719005445399827160264240467727383300513422411579050944980613936062493580256909281625400182204452238910498665245839573560584819824003133622570686825654739946907471665197394141465324207098221992356579007241971282333429436395309982385514412160462882712473953476054443867548752560004996505622088605331716942938608320580900410640525129631882271339086283033115870431263949442015469377545786625454293167603189050366426146512563609075838715352612461170267068636854449300970326574728244784847233182448721865675214848138043739797748578390491384682145344121081814581362214007814988983258032558233067780836680363403946125310537622869125263962906415674398519075930301067012938171728314593632748803376447286037121332560337172355838168917347001815627830451972102832044292120693399338631062955935737873156885598960339384343695529354142588022467064732836049155657834767369062044724695275325661409754737677367857608529953793108850284811347077473076112705892714836107109275687832261433330300533011168169532636366827182976148007084197870620783920192084609096184504810868168645996560444560930495096694581987401309781363228280724529805195698800908518888800648229421892579849102118215561064580468612563110410604917250378282667823716380485587620424526191912457099168027201389184583798939681366430439666828295505756762679934229531246466804860248473739015469005602827145356932750468079801434553741651739937671533459129306219117726609214729152668374268902893410454257973150540958732880434644100881330865619139612618295713326817090360195009833350310748257517102321523028696107944312197787603443218238752136790699973354443695728365842805795519233604493814368790934034960405409232819750384303291622753804067827824942150800689046461794334118090502096879828357037678971636322708245389054083198083183486469781728641893037096857115317480857020383232346639933223841555913510964324388997630026795829955002993647810591855673514624656753463853926101018805342999354932870895446720825080640713801354797846481050332334316956862599884732130040233473924581502646432984708642561371581831731247565220131657359500833970156844739425783669020343079772151659666504655368662965145200053036147450419680221433975577697515472135635208739667647126341151759790934390679964042913777405754665779304700538557187391145542096264807544890113049965857954127171546207515380129085704153456849575498585604529896080392359553135043257228372527162021802382150289135750096737045232711028707237414633590235434621284223355404116951656131351199390248325763359478467548207180638728329246813834735848912968669478056011992705099762690446913673787744022595174578953688513917761974857636284714278667245284412219081635007600632473076080790455471272083211438182149426157262603504607615586377442735135261127165046466359511751923697498132626498861876049189264542376963888314048041596008023165894441981441573448710702097616193074862410268146994262148406572421254013774992414392246697287438370984833453385235927767008486492616117958000408017060709206139630956316015692287771826926237665994003201251997199962339083504883919070528274887519582289636661013971417892837927208270685400648480702326617352231136032132474476882840166158158091954362036317275048229076545412088500861370668612669850620594610296455650141915781347192469447321378818410040350272391840392461293965746007858098023896820223014650802425795264753891780236700021856558752149007246776473695802283680773258093347962745867675092720434069754424162933272138497483757880698903123959728855773477496419651668196620400756391863102466065837445562742171420286506524358529345812021534728138876784817837490390815984325630267401193240803427084890997376594972254510372567923243842916793998346462236236063625445634671088179211037370383921197462170855513936178792147580806826123572965865673396018218362800414931371924063338060186368938749225113096797086339665888584050213314190191568052285512769689832777441828383761422606238655542708486715481367757843884821768686202262411994153884830914283894499918084046839522001092806954261214029654773852968917697875009466123274981446931557057066701992952791640789279677586757520262663416463866827010796679519829575164973278554312194895738799096513268044661940592244943349915072833679491546690254606472092455623243346330531834597177385621825937074600570975732605128181257142971319966206937857634347449262018022425093502029611902683368589802186283402051980348346724428679979534715278657585282079566771688169884296288432193551295073578741755419440689030288099038967782992063858813142974245865448968776836339758583403403633698403411458894351346508173477327617300564634927524523001600966588375314089788926777729209691455222299189863954869672258919091496870308735877401258731599044193264930998738526011376830949437012328746764595043460585043793985570977681282037979152992848904705665469068106213239007079884501686161696413248655577387279537239172619273807924144437818719086059012050140468446914018307520326997163995172552756298963943170658687987076653443216289029573011931433790952807761327668656410851864726309027143737948878911270405327368669716544933168497026480888200722670593445258756677141065391074997570860395232678905146450521685898219205613049458520728744042179411341797677561481010926931037798835302694771149530377198714193457817265681091883932603916643170826787033205121971852284484841535307576394722907450596824707286344835239340551141411058697753464979222722449958895314204408374415671487450740344762654346181711734353989049658069967603946385167437701217521380139767851087778397545273863982419943139972280016657098072416184680704511077941880557729929387677849664671719380793100903314728956735141138014810830550175520798190346372176248200191720159732554518362961656447294520203226210534701343133959546679711455513675595407967693548095479875062897190655960059785760289476152905536510958083484879373496484681263867536909553342765662837348386145147459009395217427954438508927218306315145787459035636348501545922850546906685095793500915679257725970371129807574301701124326293338737033937703087283796104610078516508216273822931529545029288633886000937915835761194486047765735978087416372791553711539920775060708099046432412900434306338957571099520781675116074027983563415104646822511614262859932430367689689057406325688113944002146855579511587025007045538359532501298144854527451912475409099007682074027800698460199968636925342121858513477674771248009462096794411624727943921134940168526725737824218695915898482190131355331001312189753754765267677285746690543731372312817276879902321797088681553428040452336073237501550301802882847734826856577113736838686976300010746620693658567518049631627486682182130058056565984937951688407103857933231862184127985797727457409221483044304058233189271092439210786196373199299416900153790403457974701482574957315748946295699883350263160430472827411786700625965694577475635230493040028131129336610013265442005619898758198815233126891188768421728513915995742464911075893639336020786549797139801778401487427277467915945990813851265714114710656056529992305331080544701699234675785857345455089245436951937905417259410815068913056545637963562760901687827013757002286782618759751143467156241515167044852740621931936200764968939986418395740924644437050403880560033757163002709828069026175788194805672928947147840960073712442648807851855721241643674840500133187426183747442341302795347968478087496653612539445242893541798832365341185599445030557035776412692049433201396353313091925598379410908168927173052015890710685131527188312724575873169671604792222806398270245450289837749793021506655322952255405617031477936721802608000407598261519743730561416908050058373646734688442480156177519957946129665830764826912486294907464669817004236409755299867917334192871643711339838759381657772420611751370295563148467473630953954834239227268549433889256308317869846192175632833663306687353562879207257311195964270354128474346464327776278192458624764884931594488055819208748352072714917150365935670705035401391486860045100406272221752618629984985271460545922444799375390692700724023512114103551123087212394743755393698395597172077075534494918895767399305546082320874865112829648756914123119932216257156633466057804453726015715050754065860534765560292055692362090134189085466227892043701553891371813355308272085362040175668942224974998345591466074622543986797728646933804028251237325720747035043911910662022730258090001708033781659278628985534146850234418488249716714299989902957237472692968834163809607622047550798934285098765717383793454543360660584141487078687596778430308392164056617570121571438612715282799578887021297201515598533935999145999976287479640293642266359215958989005397232567546156393232830979865146411348094840619055680630231632800301708516330541042301360882007534927746817246874464890228741625039924934949867457502849605913355564824193342181993091011706911847156209325611409062069208244224538235787309996595014366255189491635109492494121146783077868501519156255113548579792209908646769403223650758918358663670018341578938998448684599785790139012043073562895607890672325530024743410668495197932385350762761251660856060014349216835817082014480542709339014906068642077907540963750437080206752734601705627687579881181572255263029156061674923539875507913507551640847621545513621570886982048932863400686604361627644514743993863983075868320180963576291975937532876059349985224265951286487009899701629439882064000564662444590352910126983114068274491251149371564505697551397781663661443405665554256511651754203384492735527827660357878766071280016434858464813609020314934188069816978538153317131738582259832312773656495727431409466447864744259876188838960575579547014045701420283581088904605350430894002471448021633391997373593920519539445783571915800873539349621539356180951223943741356843331736838204710244523988266956624125271424754557170438365941097904656845959950162896410952976970894134314178634994524291058101783269944336926052521788829741537792755150741193770696639461353075247921637645778905336432908417471883213324594501652469926586591390175256910992495532327771564067491576198710272007103584801326501197135241846985627408793818158180385938753389189835153778589481697163060910895193125596916166853617551709197125741529434842720608157450981525574070993035675618037019389212112054169848874867112487169035707292714543229339915868542468459215317796151662174569597967368061521290310132022815353652556498612201244674811966328940290138853427936409860824733974022508824590456515497587204793583572579998127841793284167512416899259059295114585546870484159124053841252162779185244991277092809977663788717201226987534850530541010112646984042739867157639649555864408187538801370089923522211086627917827111061647821184349409720489967382509001483144452327993637292447920486749592439534661026360679069558018202470368192624683211206143192609297876783434923025965635752774541651176645029243638757761725680138315949333107463675667603922704388388017660462568764815499695608483578542887317155916468958307760554004469581768902033793553646077485821407564153110275939087356692640243776278351311669971656929664786078415364960554986198404336962384831737113046741620653687674578671284887087982143995655802745954065221707904772951319564264867887147614022692853991708852091931484827183469901793966796875688320567164042218186866981563982744730444408373475003601360231663230275933247964434801542081243154181936638524685812006424331799053750802409407491477837597184109084074046500854235018622232941721065360921362637801396210427690281550027939648040510946697507932453036266141835554721612812474828580333077706024758822892835437815217163067587443414196916703932992130358860132526710880872160986100571414427159117013650198184405830082539259337197486067794358043441230247084967757086013501765007609780274484783841303125274121208099087769957617429953401779322751306542862320153002336151988403467662245355854461535464247869468166309922342619301777713044260461937326391853837326444008820257169698049698471602146328874655819057936629111698136190531931510387710559795079901383301004349087176190340757573592291590947228113873445804727161722669205055534146242427433322446239591378073515871957749720195913615178215964452507615143204458172120186248460000961937341352161787166376696067453890926047448016345982399355504246150505918011510748227509263568968552519473610913827952373891618338424706400303979782997170044307327469188097987436087798132808649648568820147150833843844014115368744650103166895628863582022802465813216737942876713755346539128213838732181526459124716136492813241202520678319522396304584537286191894902509485101044843412476600492778777480914717570127321697335810649822524356247048570639181613334188070696613967123057361825610664599927388174597299899752247984728434018169448231383490051633928797723094923646991201354902171402580577482789342364510505535804831602218073029714719081391569754392242316501648398637722669176350982235492917110576022014219597364192453282788904158363749614546390413852566552258326207507294664324677530351492921289864976497897162193548428249230623453964979869327165558957873243251555465016036345164789120672489046033934521754156824988636832987650542888452861966252236880543803165865050019359314840546942195297513373335129271658838358482735371172872824437709543932656477229195304502870515337066756424035392421582372797236445289359204656423981147843990288843820620821532869716496653245079133062075094753745316681756232035620936967546429903941577910175133248481555212399452176936389879270311716438142818230849717405494235106348360279287754594824974500078021864653336671960414377729658485366036978106193318852806326734008811002993377421853466887468898201613026952185473149868317419826439345227685050477648373086607309053850836261880539287774512644172333487443304217467159300715699386853663778590987220795423334747718224698900965903096774703064341566373791665242944155485079252394585699590675498997772619384960361276684484355277022402530580777444290563437187685019401684754694088409433643722062879018700175195113492492016542453594569045139071885516265814138513462235808956097554570199975582922611480497522436988967434735580263055535079155613545642634247733967873374503097192467396333078562466397157553029888026076947546604058655113057772694600829742447558455160703127862314104077713103987786389151627383782189077301477547072198000536458679086125641277122277283732784587112850918855016000179344803632917112297863944069059446954566148713430485033454249922220840749648704392120149617467250007326490435288705655681164503375268695908890878472176134255367521052300580250397268643478279267068985296651345653756372120949736194305278450888152640273715560369211761361018126094478119285799858358608821615670557627640652427807937333994665594682059896015168116686048183892896469403199673224929521422291963675116565212396933346206993450583172755327701466124899654623140275657693180532024226298885908828678624512717764751630797493437824677290174830194289630525173738634650052679498737288591809895584051883992252141840888111646195983185294975410661817421027307543066357390779911988439115222405804579215775328139489704849780495965344343104720856220649267447047431414674550500007168553484876057397141453716864579260754777287290809015720859165558503378164235101800553090706684893997360551188490211862496373050736774387250230187367983275449997849607210403874129424479924502384717064853756526164920857999241280227748352201752954881478658121049037102018798317479478264378241621907769397483537607040996394477834891010113545771304357124880761011009369451914232061134693533225084091677700054902462879173588306124111390817665932259344711069013778754012659094682773973202226078686302842039376815589828208646086795296825080690419029423487128378647509663056570357634015010927925722360048158835025354013284383278227305851768882577960529887152641049283656603332546824178511785439843232183889482896779654987300308547032954226951651385044000433030344196955865764774096745359950171134104537216745304533680216018337213399409840679692845144791844904173166553176555103812425912729275174086459336365777788236443884244068919340377722838101953990605396978206911354632740033821037406335910914608196164209601741926309263902407356855587866086381955247759887128153972994690655131107134075300588411538438885894460431972299735168125588041068589691357198880448088494771855858660800381167480481053181833543101884733098422536519693590118533373632201221657475204454527756127593542905776805110512862847842219752384110239272948353185900147364226258994156392735228638038300371379412483639169515877247645809131098785190981302635396015999596670942491105426181037920280619586156511424035982596562582141447688975664534093567663924787719331672878975653278109230374543892891453505919268349361911851020844922479984503635502441182673422673340265286743387743696921331670223782506531742522485629141828826112872399668148401102470241642993062603731363075363654694682092644542912153513747011328420584876924249187433844728418379620893249691959337591872785895836109343899776385390087903692350494910070621579367531669114093640377142265680794098581939421936560295105480462111630609790888408874624116111109467398475006376416460283348971139577229188890748155454810964797943415404842361047615431399999100067628239483506555294514130296213263038090046390863034560115811151177449299376359773719297025420019301550148366191228652053527082927762584933127121330090380987425992486926643243709718781239592052751230029320126128526574740228667294919664540255587710223894576863883642146036593118482672000972978715416184566493865322660166335746450102066148544672238092163362432869325956713439383588552653597980147364289714079283552647114207029443084417428825632126825237521381948608816727962200765503647911813267737995986290826203971948824042381930106830200232606207100868459176137459687834157525083499612003878264463510984377220594325540579768836392014935066932596044120762163474492656721284794707466700316071749637557812005416760569226101357558323029615449417474925076174184436457085235487183107022087103752403119695337699427581116775778602219417122623719630127067853867423620969608893189780358073364884247710306393511653597455836095224290787236486656413386511540756302870391240785777300057063212008116017431682546988464820912650953742427985012374601800778909967842908929001174590558445822497899927059139321246538887507327445664812020435869872044281672363655086571377119307539065104676583603795483217898426461798829807224799722243886251329408798704432033122910925342004017934860628510129573215775966064770989794100228337191133875135274762580337395137767567687705264572144796741339903966361861189361402844894402923469490016662634401095814925593692598887285413023705177988928586765673286350412689667147193081166344239250176279526895270453299753417048535843964810037541079452613539277926972333044903059378589665924938533024418400369584594235687929945261637725379813860309417240510100271211421307924996194832270421726990638013397142023367533350762879148295376049682672868977491508944290131166507580365621020704642430973852493421088652018329048085618898846522269224565312823735180768259439972751793906241103171059641546105745852174543313909507220636087179668526029354802540835609161690615642706729813916878280060911561269155360895305656436575506902361520262408831319577921503818795472392347214332982604140318531325983918785794487717433971348878087397434701573290060540430252892309516882706912603894036163121691527404194381840065654511163919531672849322412345736330730181346397659084880023403304444339727620732092292155798835084683468496320220242429621396106770260013012888643302499419002148133217228973304579868077679800166248807464072372431587464614257943231855568535513488984638801175127947535782308725068424437235030180746280843361197400845575739833614615323160210563264928760065468063431342124311702811588674019948500320875068675610321686587619934960687444740435199487633217620466535803721242794371785451714421670186172788039317045296155170088666683702047498751165421998405110554290759237941714713697317683656748301947145801366594637297820161467840852571873727669080950895227954368267379812524760040891302621471288240410509261022064312344405811532726561605301787461702861265428642290286354836131026439545873698665636416515906659512292740152234816249720303157098915583297790356598053743288088626728022724856449070420656267112128838907048965185948404031847133670250032969760751276815576262517182795152627961898646185025866398336619857523680216913559819140048998649938940173560726891832257425401317933698977500607898185352870346924070194614870435309357590600958761919478366458138715741147259437681034843277009438012155773011473516415910902693761090798622495527653132491686043947652992504939440642853718910548535048546181474642702952610310622692300814535501198036378880536604305657534998727506872669909989384472469481522889705382192320598013212346052500587857632323285311305716867206686696547858526188883122743633190821585600265500260496024072221765184698695085137255894454500062870148276982360011538957542255717564427950251379958046885453572231445083511631741501810430007530857894207226117763031952945246344230290503563104335335530819475859446390491448785845780732316377508302054230471127500228122561196977545166117976326967187929234487762592773720177428006124164632292136243254800790057395107449569559959113908963882884112293973341443170325549569766399031947066533199529615124212833881755495205692788607251441956499013608226043245992364398473947354471548199854419141659440089480020394405582453140551532680060639735956887807928679352455070532168170894321950900368763145617582086098992916545538373328722598309282361992690927203584612826248616483421808826230571074367280314233982453308567867346507463593738777419582824995617546857800618400233748987498127408973893277348591283410703036556190114889270159616547423058252256395942941110626521383617816423536261239702081144090061575568053257809033084464812383346077969756278741445713747235186706977249636464360908977179908543393749433462002488234902602716995189880234168143217126254803065447843981945345759284462804289080913102667409224672384117581483678330958286468234150474009370355737615829871695940555671284658283346034671264303856819540929624611456088517841957915227340107859854400071916847484325214041454200253915058175047492308399812271643692233415930906148042873043674151118081705706061813675000627470922121059616327920202858679629253291740392235024105381121164417097459849905112633751187729308619947965920244344313222083339359808025108545069248026478856453351958431058173342670403518862590144306472801861745111390630819285746058646979081383107217338981810642738765391120798480221156427718848035503742476616484300086551350797014037046985125123698235728030325000858196872836825722981718934529279217834233359539625398420151247280810509031840564496693526837845811097765069906478527683330100115791912848834016001881906835905312368875505114513394045022083321102634764456949804840678323965614999947361154050921932577885615344889745225240218446476858221651695830372072180183412337821174872337642669255548805440160022923548418597921621473052496540028986704999569899148091496203318088171303675431343765033265377764606747036893023673558739944311913907840578371376042296370320576710191737390441343180642012902777381444124149650471913120969197852214582321924079899296313983674557745687679281921577497279551145489086035234860753689338606072820572100846701529083878715886041344697638297951360360310240189301234708660132708853323166743230106457622766673010444270653070780112358283292076925994837092451933596609595517831730681881121908235971173608820844985670551792915467273393117517145780378656815246415480139688549581684437582727558465811961335301479658800138000047207577741002120384099804663450730277331515688100678218192380621715293307914532751025415411558553100411118470737373847026538363486395829477173634398295287160804907765777720312850002664794620655342297359591588438987973663671049181426405912680820011230797225553091679944053225595471439730968087154666718043510044710987813984050438435373836584970177785450241794131975118034771240157646020971127472094558994540237160755735818056587940307433968668703318212901347079641145158848303189677955151030666144261988886683375913966517667227360705423106591784853878137187633942477730039327216130340331184330741395874777916554896502124686232073753128050509183552027772950931414149000056661615925410692608599718705784890134355276813174583063444710156495217123405869172608020878819865263672260621930190987307134476191888538415259585935950443262211269847566501853699569908454251057270148684681560425457712486394995770798570920608822891351838528634027946688791256677762856154355519534820661869100685804388451798492217566971788182427060703172653935629734797512894103923781839466313806936909388964721925041803120211360354849989706824715460069134669525148683709163635454815383268358993128300771064976451068767525905433523948438866858695119730392874380818784810077309061630089352441367291672914960207018258725704679487972935480807919116642611171628928023470564748946029393475589827292802470913994893203250408951244593727827757354308774165375442045555360974370335815103359110927999404319590173999084647926607658321948309297414156979260507981570089224778993833317767162932115882364766014394200818585662482021727297138443121396924945737746048283933833875509521235847138837262329133764082221913026690376229894636864562829355450068505706601139359577388365350047084298190841389910684266812852499004729048296362582814039507118854983037293885283608058102499851513743465263698996276013072132213602198053650666176029858669256698157580335465352831331486921844283360448197243286703800594176978927514338477148662443397056348401799176169258986958860842877014100991816786440636727930990151438247841061417800092764243733864119328392313222010946662892588088601691006903219311077891424306515351206050683664509388588082060410209714614345803807489272682885455465408483815684732483555608002328752810757722954691183093088580041187092756155895939712204720422790456921235671202545972635130517168337558536528865524387890731395804148449295027863670326552438703692786046261464218693925918324051274055124204716623190620591621693833340137468378751948416136476825212830211683997507811165620966609153764792294230104496414360571580975750276079637831933646844381090624328404420725871530795367456378044820697652834824470143406014996075229935435903854464514685465047893250740778996822232392864524498036197093288841969928560674892021713462881297357534939301162946211597116636737153010218918485558507105454802301163781627975367798829330234842187183936018177842825778816913452357095193894619456841420752670289467240690027757073154989748590522268932342183871951112193641486979785278092926496421577291465585491310706141605502858553840789757850600206578991275461364250287093923642815990615263162487860167379979874419591733233587199599230367893938272667568057743192022833960261394255664335872488125181171953776190018043402936049254698098125085429371025131492606479372386595551392334453459419882946084694322392564178371449444749896707886894181984061584546679696277974958071306037830046045817559241678895032365927773912512276464598297588768784510665465664374078058171354298147836425621612113233907388992007437523164114314279139995651376072036478044357364447909956913073201193963307107687958736985466665448920984614744216025576889235688823049216953840439837194545989005456064104815218975443697520184915214966902294298833992931424109381306983364212682083824280524710396619059650859183691825017461769868618142092399565042067679035102299254120743124394478225093558638587743406321447616142766177572429780472361477482879943293706318520804363837236655291205514110217865453461659160668433769843530578124691191532362234591264918802640902017860869647406555816412195734209273606522552383451996555954198547309548555296047248663943515718884278762887892052304623794268241345597576672807602496331563994598785629694391888357178493930433725393302650512300233605776289767124298840419138465129815094119689590934854881576944573945865975412437115343607540201721407634892492336997670336845552413758484760014830408868077503745938149507100648828778251320424737349829117726590570751876930016266669452395197054797604477779026129835933297789633251712294852201300556013164419865292049093037450462563614525281258923711954591172520162399010947296357617633259325545494556724365246397392944164146020447561468705632060659586356084684080190137909117224868468673442746924174056649202843048805048766200088578648047808247966403893436027337365929961387306955972271803686134255395905554829321623877805222231772768914854415047554839449370202547771883283484548298486754719546115983721878461681502495912913590465760308043393307823178548260511484513148845370073859806927504452818278051828298253176749697025436600632355731561893824763747718567752917991809698855352005549345188576748687528545015119307199694665481651869059438395648561925587105586862757760701090742952538516359717465156300306647581451677292369088930514347287591290740952795955430439472433610984293772573879486565740437008581067718615745843573497999117626007804270342946923801705613932622185184562171450765970273186250552337903360362308880706819741699262237315483365167767592902207385948672003774745667491904811944432123753704872302253143296544678504747563676302339220145671857980132702979877507703703028148658493622082758954425452300483153497475258049007633269221540730892441593700580190409250075453924312626350139939957540155975808470314946556155376160547740980014350565257370771397685850559325917153126221930065549721648964129887031586144920055697682525578532755273874269188844140624926291461967450433200758093068795096016815620812966621329464020506222802835635766420074252308167425750431396894333080733054690655476680395847564718889294836846929905853826727984286053228628762002451792276145845585077639531731937218044295992154406629480955001956523208921417499853367542898433170838736505517424636119204812670112296552919950370926297804319094317101791584955399133513062126742050927274532205753778821849806835598383262550649625104742804182709137232135031200514858599234583538457297378905334298714390437752955016038857667412347836102217026240009483309958763109823380722799142624635311421585874193231148122836897106650968935270980216784586856637452304790610527928905659839802359010483695169307424629445006352896854684174017736213604352887913593780534077365286050038878161064054180206885030680460552057873773505204292462274230361561701132832988579062446671921364213603336490022872947034983149142097203943961668981298670165176421572002112999334872167240343446110961592026128035742503352134495760850287960937836638637174028926586885395315804283464607085197364254776670897290062556056368624439322817458605938946656830560378138722992421733453451972801461977237205047808061414764296863589365438638807450058825785611410414985782939346856086478467510969905694394915250119813845619105068069539667666706553574406093409685711479807417751894300523208205563266065441599456851023616589767370329781647911426706164394693639706899907460406919140581566360264601459197657771284090402086162351016784567354337573089020986252030370549830760540422015858448631389652868863312587043002491782612867232754775450668416690719583777534987337814911518787843128557810301213513901822955745585231495678841305906957530641988907211291880418767670612134328554580175768950640007188654329179316905635020272381843551740772276134567808852576866946802455608388046993846543849774044325795966357025600287293602736740011713849986937227625133549182520065280081031716454964743882704951836860194065724635111166714265059559520685444130179751880844529867512637230881650833398827943086218822017710607964384129305085049172787954709469385657409108465721227617394835108695132215170134497664903389116532394607633188812294664667431551718202059776448893674643401354134622667129156212722327914447170413505349486717378049951810547034580405897954700806383136451750045085642742436142096000710162108110564588254166760470317438912011784821211888731135599033862191770515367679360388913504131803032426126891982801054202997917328653758371505852251046329463587181854014301522437830723623644255530914282087211970514615237958717509353627296133703412636790205867691720260613693898531733889992764561479942928379769443820040901617524956636126236034261040169819860323531318216733578424190056671232572771758227688816065470896160911706930068043350243125995764217931264580229815717355418545939286481883410391996779831237138350716982442524086969742992448787222114221404241355336710733639413240849858160004789127940790121505421950503366253716800653336345082328500268591279077016980479107517123188026201364963225511501531767517131334001977828659913275367009448742250142332663884514860204503344825150342981155402935515640808585372306615538895491877783446191865353124704777229705625773499760022207868417638018534570406932209482379687690450367834826406639999136000708925794100149952748272500909338460071428263472001230713772263432175047596878705193748012276817106425463278271656709061017787159286741032448513655982919218825854586705429772860133981922420748347735206320335276114612841996537594254945072066243341677676461555600897951253214617048397609793176342232979741353760832761662731670772773076883054812715593933595922215034586680668864964989980458230718335841600574578428982315920427869355972824799894518784925461013799158882866645010514677069195999096081651140457207032967520431071779311619540921031279016183274888963788555547233505789921169638388703128210942340310912349866691144077021093256344990438023294071818040803146381389486558376695199451050277498711350721640219869110846974879915318488368680525983803241381196301327226106252260870642466712690815818952144519263515090600713884043451870249022837347029925099240389177569079695456529217348871947611312433761914376981686413662902737645155317643129621864573695335551568373662359218426102751815270253630783496710875393555431572795983768014528651842546657709937393397873677892665839368749020485091225025744920363250524907561164196148682472025427920536687679115766466868716829145663783265556458609408198685273001706330381587297270291044651941913435362958692318065896425875616401494445251031482790677406444988841067649872836110515041327786020226149977207685315751668716204839324427668384347847913133742267550969992450472660434937201388778703847331717633497073613133874202106516176011992175115423022423424284152613179402447847446636651511432299535689429711794475554522970066831135316642896634939189612108655020158551829384875874137069909683031204678812784271651492127935540964690946916107367869577294229673676082072947902877715367761119376160240097814647487721504232613475476236606547657478336504096171454275756592016369597800721993896193240829611858643517914067988847575525539328251113104435535589688582482722938055437173408680514559932321958009260928248816717788808340804545402523742675136507060128526412743665798770872379413031968346813994513065559241847215743748114843450481241350897858483698105420176738042384783090643563040713941815323692838573385938057192473663616139523766845736421019724165577578808148417918825660274774281953528179953697976839542251935795642492214075880707732390375372092289417874506284990600291277763195638672118988122813291683952259547423298311222185474651609383353751931680078446397775201007388896317790645135281462448079200488582405159198044468447681533506478842616147992029056702206290227333626542650005005038748793294884184134982700248104706925534790456127174690425676009885132994980108544986477420669833456756743716005085394493537244306167247495841519874287480038834719137590371021063032224930151119679712337508473392750332651535039377959435663442755797448889918875103650896539726258967860446873883255857777677508622105635632322191519831946889754440486190846807914741304622510858749116124156786925719851367679199728940989064549051659469036415877534795515221979794582727043296230959463123174193722185375573797636888190867946151544380274209052802015366990930402065160915692198833625087074547881842993502526810131108241232597329255073502019218786821993782995533018720681419339190540494160866681034237848549944565337277668668541986583562091549850216011152954795367290691209611695268797858407092853992769069553187951095396775704092276720847333333828758340715043439182308324666431595274383152086005307914584142491156740697542649738048445883829896928647077387864960184455005403630965097573620270989725195187703910258338966640012532983246450043446724317334931359276165848798424777503547599256239463989551988887786834826604185593919914685826684663374640772198715067549964202183366549024675155544562877679848943658516291025767115042469757502407941549859386103286819437709387437693904939869952441048008933745105454672159792291288295243338017294922321350281087016922528656640575588920555002600924292156494271578358206198088405147620431769683232109125828391373708646357737176428711750910384621528994043277968971845426119199695763431215761364639224298193919944309232785574197153473043301400535331107849741005093872574771054076535664009462970920209396043984492650692108887693673078439973357777721800550180466639156001963343370750879479854297287278270239706061026501302551550173677640041298443604153831190348390209678508685345130413661087504598981222754929418491105601551876772042517318313175066532190002777582214171179506776432854097469362019692795988465132217234560874941969022551823845213677183529466389798782898580552414416813286940237560669698499808242354887170004401906095570209748652539194339279887223033309951088721889427664195171648577824763239526493398505117882206650875828466624403013053965830721392255986051720046383626467566232082157249799028241860481885125347362949354050075302865927607258369003556311140585253196612694785318801480330762383693175019556224419150687977814922748623997158463419313837048236467981116660846426610082219620853305599072567986244212368022661041595603322322171352371312147280752648921107297317292540834572134130498259871044551414878486073232363193128778257200140892020627071908458262220962354055223289236696511325797627481273070634605404669091566396824050790137508534268230185053210422863218283118666485816434256270562457515219458281633255980763702135039278445590697677332497915299701806806388750046475073810109975831032902461575470536747807501329210118691468863190005431083175136964955570713473557873143383000793966198405788706548120049789564626804667320310277694436577493261249108324399331258632712003115778059556204385264170929358592581862410609437147583135348234522045913567940196262002935637678889601682827514567782586027028853306677909514275202363634662422073642847189556662710637242920105205421941137167182044208132949299000387172815693537583705454196149530492902152969121595033819740437988363275523417029515804110695491537631883013525251470648294464638812195989240842793045795449603284079296137723015908243982994649503990515587971114129314092636805189553585676264455241418844912949498250046417351817902951112243148085476277177361538476066399079673352899506110097185638542759167786907789102122114072282590506606564048759075737499501692432125939747907924921841387224441310319538877315663998414052288089465123888881501713691959875889896233129930184004682311498151394383181707393463706830375813113479534758880640000673840040096129225518673837205975328054770923639234582047609202591267574103997960078829952041303778625677508784402251495459037910182804266038191125533180777489321072731220543618201862563262378958637852540833053654610470988447168277831659280874533727555309214391825458215670474661297830744783824910190337103279394490010176197146573371469019059289921576080431800859808185971679151706588475971203682598908053702329887596583521705602594170430194124992741271356695013621574908325029009730367053090964994068361898493511216138164466941085699940810578124605851525476300645382160213160216810397787765850959944776503016602322115585813549504982306254357237105727621253700471694008466544479398314688281044208397233714742548412790348247825363000419712854538018750818145841721314676274320539835044105729108397873711367403845798954117756091226364141626634066176786830386277373043901468541687896654513059404298928823662194579967735368113567558601903510155987157451603576776165904479939161977779186599783992374612739821077055621471885203570524767321611975645088137082853660251569268801450427648735465426910337270874690501148012209904346713762454854592326735462498241342395292922533940491950441663544856193040486778013613378387978524099714562877846272532798584341258043990779022040454878778414717342508350380444901586528269846543472551126182545842852205520767068933380090995713664189162719233665100870166412027700194414549993740767262036851645007675168361385468353262816154477513696222580238602304386883093573014624498443257010836266724282865583536128945013495474927641548696341290288862685740264299517378234050890998038724530489776162013570190927748145080019897341872526543116762092146892904139883371374464110517591312065661427897547494573693445120467489317601907313020869032460348222070904407973869959359002493399746963241446033119012272490572079278017994636262069239849024971507634956210763007458609930388519166118344106748176695648425633061993944848360840873868548724063382244883873170094817615498811383178809907352073359646761439385214024545056015909104130810369162146375230459829907028723369034750836808741831121051312833618657778801177522929881914154931671440046991121211733646477204512406347615546673900294318010267112396552757813140013439456754727763610843180990908772566878483785097544436647465683393785594171780204232776418233912985888230428016742372827474489041963283418248087132581265795593351600494925964542031850287962169604005809030538815313672939822547980109279279330717359544492024515273506434804180440253479065285996158539518910346034966428280321411109095892006663471939987829692193109015886278099352410241852414956993391200837451910722609069851317340371447629504150867899343485175633303219295419741603035576651560233449292194453890000903581484182157752293715493408167270854770445111760569803094781103311029412861727090665682163123160752023421154034831931197254557622734996807568916573546703656919211786341910015730937743344175993691436417686039663723328884445947186873058527805592077132107627681823061448395187136775658059901782065528597855595196977905531505639155844809944997587294054703754544362492315659989760849109852572811814175720771553289798629036797253882196437497148697553617959607892033380693765478923548105421456086409599302750629650865771152407992938742185345664801158110245587790919789648838348283574291988040689879452937735287418040623618498144155558031466956325130258348985367041992295313691682445962342576462360992587811531962089602066632511942113565293191973163376719499394304652140130647699494988362480564054722425370572916682335817348007529405832029971108051488364425713542028156356653054024008823134646605034054201632861067173353933072818761706225345274462595911652442655132601152486049147869445146104435298266778270550214285302495012891344066493630019077935826043408166469784977038157105700279974527909610802941604134320385585078283276354265529503561783826442640731639578376526438624093592137683594979443434073470691105229879070903630558127561227258333634448301048484419158969355460713320720018855501979754520214270274977538104503722056039557860390447148980232899234166663674635037835839117567908962609974723279954563342777326006273691359137699220645402909955495146776507864926373890833416982197014783869788904298403388212614254393133018170698554016230904996576591013371454869580821200747177464588169932174323621106123534998319160946360316937598731578333183273581977351861585603334948107736504717566731545987768844297138696779936209094923794220273903872861853889895525639805114139248974664227447729014447748151941704070540991049303385503278273712125017949051681034709015358664214046133171122340339715595475272973893197048865821777222242355066229999479819038997402419221179701262094047164477982191107226497029424747792946433328870056521346772473039698445198471612232410968318957235977373780208818763803370368162669924631673431394345568823198321606815019422186331249289683773221782744788729056111570763357816493177983728477171680167861974863538399967686805604149226939565897595073339330244260796736206296418525344123355953546650136863914880087494928860392037512336551520424682320829015622054024983867167313291787579808281753735940256921172206962044114164415153626615789750271218665595663510983172834651636657038181219267182745479430097889844054769574871346024889263707451052979773017310797432935628485144110732699700594270333014572234425998672595349948487647412206470529601714204220468612578519991800469264335639524104316317707954424711631894198310853776464347031810786503954747861815764982187060062280781085527392302377819393848759179685001128460202099663394414206642765658577746204791883334424890996705235946445129991512086509842700662740274200100668465581007145466262586322023050600357297990780856216054162737900956511505518705396306609597983661854291864464935249888127959599376041295497338260237805117970411802903089817104288686434112126680086371065577010370062163587848026418093351033338693949002228299349312618202667653055868571218651922484908223982266601553227888711708971450137373003292965025711516398158378002088973411712941323775219442069158418611603394110425696114150377804175021880942233737759005339523974407977131232395264639098400557212396330696531698948553320596457905434080232493210420605985879123173878346158724724283206662824774211953160623262143326967421073702229161046405528173805596100221586553257141222057084803470830338551829876161704265486221158087024965869445535641737920236407954979729849376441073699555851038408373814349804623774658035011213821026319537083587726830465502355001882979542042438839016557937767247240720595164763138603303192676501615489845662811975345176321608300066303745472651533609316540287478065305845678054296810650310716037059661740546363905856582553699990316671793732061084043209492613620646943610790779176650213828714006189558179162354672341389082736131609347407624781393554301015737442615827387857659789619328609674772685742995532294485853913686879013860922603719483160682832661329840067592029431689476316923118981192679183289491410831709228306909049208001302972968165688631987816338449688300719311424992115904339726009023512410063941177479246539699599637039652057593068934440591998545920910008824106100178592468176878966732306273232060439369551134600124204872928883326841642861575459261983147942304358316827347777538653962885311734463856825974137429249383763919462959293039522950594506196790847435580326486597015032800019273229387675510877705335905412624333038440374689090990825726994261780682010562981851754433954674151566348458511398941426817483225217950931846330081494850253124556029267902797431622367295165478840940570746413175575629372959413729154374926762148661757621080331976997409271461163270483550568633942451523132050999841878464344511264375320912888649293556124898627639355234944259175124677317104996043471596613113804698536454365761637895215600939486644716282251497725631175708699419836706635937403289615187699454625253741061636394631941151811211337145747142778797114202958420514886925131347092880686435503902715159789097320357510782735689485305587792894795307187731981407466380034487762201356975377968914213959897971668794035113704590184539872885314793047662605538269828973572094271897938171129707640462407476784529364933014549205694650982415925529850533598544937079221866893200835032095417313106340072953305795576345998422735865220001115699524459599928396621091836832276184184409206004261783965958880708950797269275051743654312688949997725928541606529660200398634001057567231339323450442757066070829329288753055562133207862999031686631446527627482638845749326215971875620981790941132710049278650118196791595375893228750421116402234754703050904521175413434087459697083639720499668672138040233230976687122757251191831335655266490477847543144125987021275272831721717231065617002515337197914551572580504312232103635872742094300922223966883644149398894603481739546483389565954749981656499000159053267401473360624506345105062931444574376631889186989599004236785780082844405526613855587374482470296722353642666555174594030176736155899071824940493246404011278481692350304767783464039679691817673419024004745717407207750792493886061908499215930031123176297711565015669067754314923953162792007870840856674002592396877558691910678994427632294917099409406353807303511650865084561357831485076222897017554182088786794421505015584016955544045318564457284884376600109778142226088832936161814439652388843479759371940057485190987180002993346555678110428764310493768798821422375221643995173732665649799394739609658842012356848344760909966685152126986700975107817150899352358648176830276629210109177794012499999751970966806550837457673550944131925734087399969066970543587033376407357430518889006673923616619788195410678607887085244323628490585305639084710559504310197260109685632027540428231359415619128896836273629164909650229161843572241703922119038848241164340498110939454593071032937503590651857220368641455157592385689015713031989871667470815536945658470629145422009867710333022256435464808860066034109914099386322810881666683864092679054224816800703843648041452828285658152984863742638242676748290053962608352613184652680851757995988887928609738123916903990891502654906307017327089381607714510812558440354303666239516580031083006177138799628636365229511358401180494717540993689711598581631588659344593183591590731436632188186802882474380510878048001392565870878036619733819977645161191473949685132373681392558343882355803580578299359320074607937344104021692717433943356367129200276830966546935144333491972855929627747402961170034459882165070953331123276040546533715876600953519968411470447434371462102637435092767544782680959529636554057309847828920737935725886352722301643266904605273749233162509361049398631989684761244084394688179307236217616328645709770899271743075188380379130705054846239758340234017239340262198512672979143093166742218125928966659780995816006750942832884120391420896208408778222706032216036851073463644139601263807482782164143962547146056164505713696733461507439077284769034424586045126636317574896016387317855883712261149669560251530878883684701160235298957669020420834988365661537068044742145287713256589814528302698779003721826633717172979201744498561377060407785343293079559121634104817155411337879028382468028744583961424728397425928461864184524567344445880135915256102954245922106768782515468281392139474244901061523396403744713509101921443199352173600895732846554538849282629318701783242883050928378104955092670544946738080521127748592303952553763311356842907336533091732560081820310290906767706078167616380196784962420717146558635699504992646052398365373750017306012022168995091214091008520590386083364443597796103546186895989524828916996777013851671607021629459777112509893550585086979533246801139592750999922023267682369549706256963817810456550313821404088042665967948625265384076557105211546897655603399125483559790591759540413837953322826939034993365561386643829910663908817838872513161716334216179215532781162377524759779081918889690427513509665941076443694125884323800413070484671697657106087230056328498253437526203964568110389720558966282850757218666635667970329699943441330265482733052644620635448931222972359869074262254095918627972329579430739768632324916566992523537007824075112522774097895059456727862266097566895596740358062028028293584181864354150205804509603531031231583630921772454342177291061923610366923978877955619593937735398856203446940882211210566620055644537237784397011494877688202344779050872389533159838360596795568628358049523518045240437000555868554974046592979095359688238885276717186010519577351456976993727214776914670558586118589586712736346938542670266989406101778727663213523760487368010149330556448760278834920840746631110364638851707342915039025111625737151232331915416223835871523290471862173441432770419365791704238982844974424365217129824675624035508534314370808122401552658589842776612550435328132911185354072509400268557355419833532224559930811023670857367492090271918384479341659066770423019485617675526207905909087575650857961216653377265786326257950301543171055381980440685920546533336405598304172281510174900642638363962225738392841223986368457538516018685861206040002392245685171248308974438429362165759127274570030714306277382851923096057294952456147824919110297158827115692477867122887749476120894907263043288852244465960313967811246130387073762798565071480005201267736652154362234623397175377191861277390912125456323135140602324649252529511553375211521003725179821195362206538212654778835346201615447068592212878988104387519448563503356912903399663286888947191842068155906333539603953100721104190127255197599403200232857805145222995319186405550404282903630654218718918173301343924893614639601082530475663357476439203469871625750998262244223332191029858170074367547812036561969080004019448163818392674570849140669340771751217010256593544578990482641662485230186783072782910901939245546691199873381431978392777952775874397576686634149194609345991552113898455915284750401069312706328678765663219283368508646535183072929218270733212042549873060093031823170095770115797464598589875950406555378751382316940985501451087147938905907543199504166536864393619430476602635677008999724347474391925765081778419998448215452332700091374203272512269406619136871925192427410182031053721969130813781199313070807020523918461065128531722855003641393082618406846093517051665244973510186232906166254420654052257386629668161372339954666940680366797446502069086894337705435600348758643020130843100409424367424558360488066499384922359379575100684288491677194256694928062610293217613142291271155637354136599202000872546413711481157858319605406711917576116755363041143253120779253783497550358717489534038075341567870978636278085138992000987215747451085018238894646469025881573294198414993824250680687662147653276812693030408033651025801559114742254307777039931795208529510972790825946981788335745796261744346975779657129310822830209096552248584922795882844797685478874691988229854539776215457591501517827078599836218011835844850078818921769388840471378371320756398811247197906367001799557030164139867297928525139103851053772925919904387774198891784775274902302852662592506449342278220924159521938984297733993824687408239351515920910265416411496797340742637890726455030057837341345074845494065739547020897630232228902799442182404378619160729209890532937793994269143286156908515271787354751247308891742884002226355643858873988293546051973898681688170603097530390599607322855770214992294317571164173237566200826389889473962243783880365837541066735279235473300527756925422089905161073061298033328063565391440831501791589938736661483673776871210094067001054800505201857074899798630462373018996757540429374240229961844221880988976886920886799905304865882144321648836765812007144483287681470638710090165326211548189710748728941731475518720054562679550332168897015818668520997628676297227632190150709852231405570231230781299700973818669921236384535358670151033491896840582596895882720716599748673280335797869650984182400824098241789039252730185337330500967487326293536486104098224517075599808653660790368309630856338678552001423057934782350991076019720323340922749463705017064674052055870362696349320020795585739916671955341318472741893097794145231949515007709028680407470896646024154124758749059292263192107290685016499773798144097473560598596073423343294305377998204118006565658051999354662766317771932837415683809962403929595924850074573637496065673537505950328908654835020911996095126660859553550755352234222711048901299512052300703663658189569398628739082659688872047734972142966033753294266720684022716897229303722104629078570061759739096395361369482612308698709496567733240805793976525928598699513073639900936189782496750612897873958373149798512439482791217845887554745685860977397032672060593600034273303790984652679970371056149138889520104921396788192040950657350139290148584497766656687212522005172411503514401413674528615983804035268126856508022126745178459019793940122487702535750261963104769361907850823849773185356590658494147774564498976972177780913325050280818037887233879498526655896275413915239326499682725749150542162319538094714398967936120629055904314803560678183411900341097989318557882321158265374285076254558864367834258708605718868716441996132945776395236001253368571908680507320314901414251042309523777800868044739113712810014023462455091855492639253564987137425149844648280311471461018542676565004147365424261129891492925277009075962182079562677248423130182836209041756324121772248424900025299673530334517734112759984041182772033574782229778143337096362488221168122287113810313197385867581951343095426792946757578043231518529789657741122729506526805536196032370773806495042299564829371115221791878678698493349153423308117097742688155299545999388238584157985371716504976389678242373239077162639812864343893193716204834502478665160094924534004490933994035318164395515182392866903862309263225982802793863851374946684754616875928716650019490308480309458071655421568727273348300975299380775841000263196479255330879963851858228384469070745106471208675290908317644334258637092866568616240279924544898054489565722270337139114545594029398119363792884821229630877826387284986474235979381586227703993892506678335967917039946204574268144032303930709939861823450619977745032974184036196222513211967995862825198727757600635560008479345788582055573884463050195244027775645174780672200896940247665225188825751893686143131306094926150138886097580047748616189865316142277651632305664302746983782403711172371534520155681936877412676805295399214006049929304759037057629758574850565088072776584148573954849531561345517299631239399956592407105662813614169805240066668828054035787310992117451807560678925581846120127748280268575996618753022566586977589530865696400820420813051868426461557047544411643477400862246034051482390831316595993907516335399641144276529968065225169660379714277175390965645166482942291814241416917840183533274297592672411200300105380186549774963481880256316124408802577624523843290014062535699831206067344386089807240969789744336674967750124275460837814417828571957089987927927509894744095972412744448491012454810522342789871778694550065253161826025550611090275287513042808294353441054514927925487701675420458333488272603705833808022590607590075546362351661879215113468165548270746680263133946440268134744075596672085054935017377464967449032334095933648392077582896578991123601675467342119606573346831430234464397060216581358328546437950988208796535275737041480220699289403624877110917163119042616194981540917983004914577822028468376844744360873850672581013171064082048470532736109190224280565121825550206883947386401228772121779864172635302952276504429342851831229391457664261246024759315974641801175962592697138865091668000023423679074652205805348821372779812672799025465452501723020676113721450417689705419974815899400420612919562282113113756294885008366950926437183000665508423386034657194506747794017625953572103576058133301463793818787616511392713817396080955291065251195406674952237680286618735182645804104368177296062198387935366342957239623887719059707812258894648903632509347722294134700305067532826124261671659825198397623135971630348698189955285480622781692369602640932824298574055749616518474243235989973431664221385496745192953824522377107990580559548594954461716503778649073980402006970423596174727644203799928799706654010205960624018282383257866333819977439259343237272203414290145095485561094114365018697346739042777522363289041089052650489701472506760871660738924166849038751886258381154976394204633155139513954162887473495482597613411939225820607030860909272344397862352681492929093178502289464297250518128694914146249468267908003079476311208522488815794684126405013598391216039802549901996855186581854564187820850462612245775165367558341254930302143080486275564554756921027785392635288705178090443715890485302336798683327993448012083298677931749786554125380753371976217101556213814067795659866690773947942327376604535066496421902497351819544736457747523767944242600866249309953641822442110259764101958003083934660783989098838807315045531768244259305868393129815266508537885135556130349940989647117123070812074537384725348093506838145773625588063997216083114625553237673544297989661546573034919781690141879494980148032904801296523687561064849627637442102919565277359616812151249678983688554724486585530130211317337980509488075254281118459461908286955131810456437762394991169731935394060070319929393424823736402317169977339067910541893594489428731645239686846315564293832478750506839939802951521874615893193551571621947939791596473492929215008448870878256852118291213335637776280051542231094911935321232194053015451473153742766648453002237184962339920594034392936895564722285034821128394679004515764874732796347084629744728963052388775030892692861554154430933419210356542471428860357017119174205059271155462625236656181835847900664313868367765215700529271683644720531881488339629628687565501713023872478900546956438782753557685676910660069155929439480282456320004153916658653570766925128714835898961813164309956720776424286874753041191601480877248729480254724308088089891863900747618961658677511974935531945295948643661974056722091306243466084733180454694623967811777084992085253901368860683098809455426707411814481215046730708761583929785021511077331259520803471526269388508374691819110514244998410817301621169653143450634857170554416118572980253296844050098969805665033048282154987026249557899101930218933218884891619704768002523729850784529411652770960760661228149422025778088960285985681562068927241125256856018661485130340793666973744137938409913748947536930180471532670418591093250469155075128718711502165046808409087026378020428524498930440045170462872198371542409136877750078027309247649800104900015684344123530423859343213111225628082232605860014478980388687615181119142906841963737041690237082049014860617951825488187916088136428172388552932332644532583233659321042182197437672749664130070851816307254200905177264584538296654609337602333005500396692843741611261554613779004138686343350243453619710642122650435349688337386625437084509998632039767556188872961176251459675998466819865248472494694900907917851312182492641431553642637789196517213893524912280211933653538344354599305207261146259565982824037191278239037083269155774243544851102507170690499833607750833917156450611416121563464515805264882774973255558350090793629890590574971163834681659042992056875011650199520158368295801574280426741486675663366235951236325853542385628238294243486234887471984432042299787560225070231954731127635890859444932776982442787102320537472364219415072474492245977372699023343477856648487484571518120584341067993729682559793579011255967566205467457481609415997174794156801999700941019234930431805812570203002424805373245963332587585531264835066289016148780631410727348344407357788381610864053431467817602956072580930489302704308644383598442755442168611919114696020486496765920246609021227113495908252686113687506580714727572430930213835927168210288245794712395460341185296511855960083112231828313915954891344294839836187773714579508827698641149197990421636854022355013901919640860387048639179876730094516241309706569842676898358290493668028270443151067244685119874820954410844256509802052641187309285101898783616184278079899935000827968450142808768307103711132737271675425846714228305894415309408279988886515667122690558819286362440945381253479557981613962186084356030762925425661597016871008380141486286078319182900958612557007953375272799005380085177321855157758454756963886715396702605830347972121576790008119943238397766855321826244812898118525143969185273714176896281915810811774706236564516194274798398530344542674737464187917968329943921911204206015670272822784416106023133219357274658516087869968129699944714900851345311237965421113318247877960423372217207369415527171877064068341293858741520204383168119962639445917394903015728561070528682254092101531223719356144251759340994286515871559243953584805946475057413256585104481985435037508336690795712235417834103216852872731597264806794671311175163777329086515074843646160020081369561295078721546368102155056878817070812097117153377589078948528921817200064516952991782698596357421001328105098765505041403518749570509212006732903345232390343360067128669799952933612349938129172040713889310029983517749321879788336908714738286833249084432643738257638437526247197230023190054099619798594345511576649230145196077520879191351074080331253571610455554540841554479216074988256282058339672819395421823860870015004518670478630440811309640306033657404341786276342965733375809133314327628856382192827591327521283576666310775412933134359929605316988184501004853878669993060623058451491251110812408557215525517117283248583483866815892269636509580841787672962539590475975223426250479300215528080700022197200934904421705743250069938772558798120469922341410278719460805375291717868777755303853815559740944991257714988754607777282926317455136970606315971148607218845074086690531817226629730481723850485266520227711932541761405390145894490484923690525630792977962268894879558319613022867491208743032627230330065166027949990150243655836356888847318409331650533408380740656193175340264227852197397785437880672793504014118213656137197943733049439681524030252694742200434736092902423331483632491739407079036061435080864870551367161498571587115987634415597541493320354186396047884455634552803249123388101155902352954392150291945357276357277666042478554103862969802800532701249005253608265606833624875850262474598988239438324772246177087338097288740947358946377818264939507342891485261109359015892756336595772815856732185443693735516103901988866866236109251901604952495774701543971611780725956894503616867081800748108628230095761313636550325861118158611207535132063095850342798329973994424900051035738668022147110173599573867138835682120091073139446012056690817993533082464671241009030948966848134922509029786159673454113324468736736292944410540997645164079750213758186047967060066362326934341006567295643324226020071366154595752175883539246598477653359482449435635549418135563999194444671961111866986463118130186055787465040332600006921975414502733629823600540822389469640407993686847387053536349357314879095017352347762882532500662947334948419542772943347005030783942395625940885870702936998958916210909082785538046486649162974229058922438914805457631749948272628303969840266022006156809943152630103402804627983319489214984080494830494695529865822157354527216556096403918067500567002543291480079723242326073919722419192065327870084187713549962510003908071016296370681837979341712982359353920857164800524214987652966827385527440637627575028085513320864595739193127785834488545162402156570909497833768233672516146161501761073714903571947441565016910277718726997796995011907371542112225712261068111009068258591278003794180421972909867046375402281492039648600416421139560687899791097700581022028026304241302567790737282606053023588700153731701319734791662116841974459223046486441703684657345570161776840360487155325511060259709649401736739736058128669359519648079220136864219971137153268103472601123107255916242702718030982646379126834039948022746700873351655408403095422443880174573335294636822546148866692763342925394335455781657452740291499319509264312588737982670059385867432848625352271255551083637352966101230010431083746185610033792377177778856436548099269032190151875793548237242409743221988312364763052344889568793050177762169332325383065184053089117912863049244356306877590082351059272320806601511060824646625983344846843239086975357300767162729797618458077003459715650955952383903289867902673302454902678480974874124652135564685806568663326380617852196239153853342594475183829143700552079945071659631702526033699830090362888184305113363062915247965275110376618587363898739802130352010675680921734270019849809037509158156869271167007426154469599530526271013178271546231944225996577217629914131345908952314623409390345878852147774789160611736386695788116085504104753902508355347362285070918440680016590653766043804445690930642432053015332319021049190347352938835973729693725489368673919012606715601040668944444421260933022590489839653274595791124116567491349406272333873501367172536221932431461443721316631490899858451863415728965565570051538885282177731232283318918580817077185565790651608607406585942529894666911916846789508692234523265438314761915597087304832708920233482188211488956867479346973831714675427602117932035728548740928664423265577705225514630884906031244993111344525336681464251306011786332200118285752874672353546498744647228610626046458472791901010240236980233183419763033646968002030004125458026669498168847241302351631795833622632267832377237835990749575731195317193846770821657926831866385717024493563460452452868444384428134638332044994551463674109260784957014468849862505774276562569379591696726939931114894998312394393895891794732924833425044752112050708719528066555658607537021475482037681405285878555818964491968338366336587892178307121196477845719493347077928335463694180223314553692168283854406922361469261854237131784586169823900354554733793608084417374657864556818445963991931231431588827263861839795842819642720137482599564884681848934741593869108355041522609560654266674542442650047974292103010369815602252282681868485172680498795804154807930203070377759609823414823192406191147359842062710186596796758561885429116361013768158363469008555115479502160271519828782875308658454612352297315460269349916612040118117557351216121931628075690216023496360734115630176482898050565608964282066966128459335421242863263914788663265327774338231108816082223703948722145116887896963119883966131772644173168268148154285210831085676027110789496514060118454388030457875068022163853249703793605113145623199151670981101495311578073445223988370140375395297286025501016525021908933987391239508494554789697095966694523288213932980525345968149690031514070579830027075177253901774754672653808403786094275871958302803480854620309976751399850102623874069377817851837140508047592803002105668309225503259947930349575833778297450787391787236996912837812491033024562087029731649607446438375848191121741015987080402017955163776137112251328028073232198062938901850945700788855202080556357349286440452627215113807459404396535649342889947494008941010966615940956234303500711882911709881132093890959596147595848133687036136593203088889453732244650549279863147096453513693932374692119767002114568209460713501053121947789856270018507560367570712620789392802183761376089293263461602089064911907290225378304675583475975319312603969219404138877156776467459184365397229901162587704982845326489287084814385877861353344376147329886965514869151605532584657221190454386030577805249863780234870215909850983321055347329986662242443564917914528621610185630413559305389323372080864041235901783377966866883252341757539607015100505226931403383640459923874461983363033714085462926125123777962094727842402295633960658113046161919599673867716347371187097927199038723086343897172735996852410203696561527345707975281280208125529117432056068376512466141628345703951986231146211846968833839267250608259653844758141261425730597641395235339052577947370145676320011696720442868451685393840480188711590633829278706275729351280063411027898479197927661313782764612201085616259046794877231284841544157230219007309316695813944754580625557603220536179072130922400156422245947131470295689435534663382269960916576928419408277579245998333886747234506348725407555681243341338520306886655477120754472492218236537426345400476991582994607017452143077106745300821984174651600634218625099886762581452100810121281767487915163769411380073240853830713927171857899771288803657784919142459792694063020873637413442125085222634514645059389248390693619685503749087368803127907766200877992907239633110742353586232929122956218103440360738102460252479334235939892295182880142785762783386323086071509579221837890931753960456146184542315872048884990073398548635410877734097828721978205051004755328997286749696726647761289097399630012693257595216601293510502627843655906095720254832470976867149330939199894893261364846043966596946508805785040206569640193236382637929844346590559260280244691881268072121328774437345823225583253531070431243069957121392881114365506760845174285393254674952154650156120284638535992665251520455333376314575702775648238899766161726635405203210531667336942912950046516950950128093746716896180622360701197263536506010889634749752850139668179686317778107532039599127368573030010092698279655642518200449878861658422904434252467320918496445357546453933373235394057000226801371187884756737334599187685701896204423152774051559570145634953577869108097892042098408109126288933610602675885935062512067210160539331775674425022186018307153690392239691572139973006954158792808568569886166737003944214140817773977462448082785168884182605924232461725452074474516113492571843266647746988689560523091405827233403768340266098336546830398117480204542058463644512766801221010761989415166357359014651791941583536157478992667205323776666943627258224680539149557719762962844981356698552244821691786528389664035636823027208566780706848371597720857367269360260041046559346128843811895456153381819806592121086992636895659586483530309875123199255772955245093204663816700746074339212381648415304346364511957324954426447138485596498053319585755139016779102531452818738395461581230997692391515526647929707948510688256777142369726292843493773126486707158843403023140744373411534964395951436018214595048953259010944898991888669014132769101939120679895667435297690562431053078882857993744208106114271103175579516739972076804067921552201277079088965068487039494063190328636758996753769000389761124894019044872124113686631342393945594100997793287075105629743047878644559255282038237829775309874679815567092316638314781486176652829164100363143575417921182816179186186772478205722514451879486254443768344462926601369711849345626137071822317357965837198053765538529131402925901835694478926752392974158140592126601816439585527643810296198310810347976949882391471353043923894739133800617745996621002862191729932181023850289589501141557878405386903317197874989021085863681924539884811847836525331351747334156223549024747704326942378863944892473363387966975516214477449247411175562028681895001882830318124321551685737244373807128787121967014744100139108181265118740164369882937574427624366103425945486577851416096507738114813340048203304871186100549511867897705777616600307107068463139453456789426350185947998194846432466088900532903263082665922818420110814549995981216184324535712062816926654745096554804370990975039073740295203740807605758167051363398437768827421403992622142970431867009001808154027098963931010828225015521603937083924828917806907923235386179739978271731069777597424686902173346831414638186666688617080294671748112714007497280178865157427607593054055369370859507804946789520207400088910085298898728013648494384680186393601771315150828092929208001375888048186568168512995038447361314071084375480797920186519547552187168216163730126325502658781066454001999639527415687615501433781502077902246757432205233281407678740786635550273897779333282870748327957581900411163854476328837892645694836563380295908512004614869378837114884139065829303839099395373284342624149462145744419514739187546343780106822493796292233467206812631624950353338362312886654519310776762554925898570114087979943251575610233466261155056197339599968800196253216031945223591628615418591657879773557424250293960548318811671352509278263744245899567500594330382216973932938769485069565381396769833844840087037227335794989853585611709833649087536327464609201041723947871664111038906007510200199321131612002563374406343708744047399133738141280528995934087229467364583696169253394955947169734790422670029844139261069756379450034394939087999477607831285892016869158598289853907979141086666163105623583670339737765266261311006874209532302100701656651249836967211802532983159258550888154533042493577871702176977415245077150446816658595763940555620801514292951034542333732270118466836552949443145045016774978497691546414079935151042434073968484973706173310906447766794182244382555209494367323465136641797578286001929825550716446445499721719231446029882510582293404482134686907358072944159700451857714038227418127452241599429077675710437196719566307388382909588251604763504290577042626304627821019903093430658198961527265982408758343205477980215011721586315879988304078501647309768986969464426840379671147486006908174882760966849680894125883689767351346100526120338342597004041232256117790493277338218300382671554990694124342398684654755250649344008105499290078695075813991251333115766290120357279395766719193129599187524158746866839787671410566783340396673996258902372050689967467363788687363130804553887298443729519194088541038531949587263681603304375905077810324512136437481707876212393921174021679498288440804367700973482469314961737702294526506127416950565262272600323947004720874811391886736577623087044704843032620743167583408530160657728261629876894963280806390634434411987467361958287033940853856807015837528551528217585180187066154855826421334968251826743959565210049947787446061873313819109902841769278529495950721006601221621443047826433712369194621675572550531698180813775500368854962039290272001527542199105765023941648665198127002242276298867453192691713586714052731467794099974873187043442081246181239872445248686580322439969575590409070524782888547159205656238900244841263693371847174813046478578265057055690001509813663263162166589045914729546131656586444910915048169174693939128714524788526742242419103373486594934842605911585424472002544232441825732368167966964707331983685304026552366545462738155619851212385274504169287237830259219358533958444869595951681236843427383805298158294010777024538751493871752453406070733020846205263850175352651119843531933187707088314165960495572328799903141063719415070727098967589048139164544257867346296374828547814065529470399373578784796132549782209120664770381572530087365794353151210927716863078073025878429760670165722530287139043190404769390015586228733267687010643913521037310465436761814942883514815236775815898916458547447755171004835372081671807837835462092205483223276189244296282040936132551270301110143891620331914317100497055324642944913637569840414307223783557232073964817983471427908971594487253271642932609861467150914317181427064161569242880358375286748670091890766289966420893502210519361164258391562528516930030607623081250663443057494336400369305957354354723671975167386442674462333142170514048221016380964255310641284235455928813556534772645577148016794286875860565518452956668616813357454096398975203740184889600326775959963397139810129782950375069896095923545504207211008124269662455136872619763515383382250248492617417200470622377148625336046955591164192940584072373373892421884501609512429872873438606111629347575117461162854339838234849092096302368923677164615537053424371917038003028943941819577479072313641448667216691786918943631712154151808224371788419111839593635744115195572864313037340702411949773064323426938963444299256089695177417165103949642984275088197966860439779079192334626931436473978304034533822893531336439454522233337173607742017572039298822506596492593565438264076872981523630710691787266652986370926039895225034862026673308228041953425822119243817361236808007753497486656757762404131695485680694475392412144415598242254190148418398901805647808220277577337794779251838709489768879417509440255822414482489535524251001302756603408610090968524688946073393233359728383613072849702683747906144224345417517454609257957470796493280331873806090194034322242725439445002169187655173064799220726126252424334846590798690737325654554227986997126488964162695582118557290397627535088692362189684001512830986613481242071597547502490672557601360500240681694960599742843401283877222446887718464036532165107021592759570301519769473661856614746218198457234912164239587729114441019681911597414600304384329615011101306701738240020989223514213041258288993525981512648721629555580288119396576808606031634300052528024762514386854287269834646548338300688110898534959176088853943267855761551286482385408382812353834692312581675781021508767688290951281894003145797923022968684733275137576107073045157313850496605293441101526683047261583176693193062490071588418297821640270906652343827942218042346583031631432637461880935818166846713193540735141695899332177228218937752716587478833894058745958345164092593320119290996847795144857313323457310929762043673662403956080430619495848663638302317643064210559594220415683699192009361895499796389599087542328403517174060823711439143223389048012267055059806365661644317703740086416331208321859753608572918755746740815437284061371033088911905121655412015807680444116889151510525218232821642686170234041713632268807535578409396241716733794358246721404182737316450523496168704336713213954002857672403261910928088572009419985720186158950747675946552593157501361441432733255720449487940876809927789080480107855676731059065376060721493790158238155499600353628005848306200891285545390945413662272124564761754111083092320488791678309898740212628878374315821276738734440391888834841494932332837770460948515053626316017022291226265589789505703483410496286545648166136155059055344081360012093136815220027714462391353381740914041457530776432915943749325961760961729987975765633471495176360298671808773915388422868078207890925583193011386126085960135638265658406525621414558047620809675361540905857917147136050328806195046420592000525242010192100942156525363893084373226107119612269776293806682509960220958960779465575961988159707789228340080001792895072662584716188972940211555983186234944443155363334535235616186892263429481978217915674669542774789377385521543721840292774459663238576295700550527191027135607355425105735928978340995731632244058919922704527606858533212761015828894961923276974248971957263295491539133488847486616184402841704254850971720696181593828389393199240816833249155020473046412932155326986155489908962773847864729557075923702883016251151776000507386686358860731594653591423040689513958328629911828911826092072924655879795691772758360862160639037155886663318847090100733874061314970591478500883080513948801170504718617269607884481293795851928955848731881038184095123733491125242592476074330095422656566329509260957149826749621333383047151400871486218579312674006386127554338609760032133760951122717569547148448435624851283108277206708109246984375387677344306369292988384844878424420529659630493923858056160636190280824368419300681875420701136975552624239803728138366987295641505560594404263132662195579153997744386781896111746161716462329348474213481518710303095348136723838468775623686499055895677255891100601944053604481845253965261413889769123343090445472134139273680207533745480233280550910339027648851210416259538469959554832900527276277773396483531028491617347709030097562298906004568226411338923531053025457148177707524448231547279144215254793322329694897636846391353495100333633344427364869289476136141521333706944336817420855288835401742787090189036580712831482967953823098182063137254547176608768570969020878955282211809569786714356889904395380530079554722875003738500162000140127696787000837025485676542255419656734204273150974095437002576182143603797575105761897327504081597939044889217804017130779331986423666514865306333880644378537571332748472833277489269619395558384879309905105153554527115141445702902727990905486490073025826162330982555858229364272527596346972721704408090739773009907478201116713810184543292006859025198276404121386830148068987792251913122664126212882868040212358141208927913282484118187008329814234881587464552653530706410327001929081203472076339877564628030719199524255996315928422702419976396594264245515986545496650614249989209636433818961502037988907103068201464227620305456100363531584939561880437158257411787600673494596427797309410873759833348411310416969309058951492780219947242444729731410076520988278475213396478019131183487731590702226558437686377774644361171947793504468445487282039090221100784944474036640261824089518747453997039503963897197150253576133351880130797325517651810242189959194459681957596931370467354574069844992223270676788009598510712558712052822168719963864687921129453173201848614931058842457675619475841997747443483771121566308434741367398613220017433307200611906962114638894579375487644293919194148473653056382883991850495104158970249854878743614957311279746869856913131813628227189972125908992452315714563469582103287650650649195606843645148536356173375909549782403499499121818093338041526154024655443626377263840371292857284540241147620344701271664026982490998005293857818003812445262302331672251865104752580315791799483962224112784438299360130841073942550601119734944861064299370797034428884987350527064480825632385088988481938426525384468923834187715149705648372049041736313621062373415441897961638306440868264703300026613791495129234963344068666395940509243185969386694918657886474058930191088706849056130183154552599089435832442978708754830868693095597553520093733499928977828681805603184905093806800496562571643015287741024811297517388962067501221480523547062759725752154458047807479459750032145808590657082706330679653065787663960351063151089898111443435016838724854433199340868854788338040776296502880819047133109202654368135745070776689644134444884294964508549809463841571466295702729195184059272498471644813724327885192663482952825512041446542070404044790061830055626752912338046746388730006892586307888256698669056335664232422579495888427738145608453266219041980989134178327276314444215146947811161009143519446182408006383776092029220682181021021256884525700945155121664983687256807801029963157330975468630194522835590596429111710701462318680848225016593336930939427778483319355337897878350190666213139358969621265669856526079105173271674071791566025913848686760830746692046074082360908377995811256496413506815370916773717245342879989545199833057484416742980657418459667353557259783129528772006720593017112102565131066512594754716203279637042576001117790583983622702999405273961737610377995440793489083277190835310692055265143274441292387333609431510602897510852126364115820141641526105424094201020895138745378177560458261040527671953510189416577033629900197966116559336823139921290459690541176076459861658419312801501539816229059101051258759165692752661357309489874194494439688350245344950432643033059817148061676488485936066391627888745598021432179974397838813462441634396388072673023881335365708055448047213852396944565788695261271073815872656088740527406468267326720121716031039336019518132795606834520873640230623438797916168135901464152458473187991951105327134724522886052427712345596389296062281777545291683635646817255459318113505822055766517789849892195813101209965200609801316812741613567065904203687631306087593125267364321996834744802753836529737377075192948080429064633692317948258660179182213930405453099542936572984041506681395289944586763550342763092372487837142511271573646506487725718677346934505725532725044554744635268076103730247623155925786074149186122462842275106136300509486187175639472901646172812781686323918398635600623981619496322369954380121612171388276332862898251509513891055445390634378269995165167199098586245579101055186697155663156224767284296111444006733959229571173757361971388473463887899106655039646148242484547771639277765068627953314616718509326995570465638707578228260891818468984050778442591130433145206434627625246250927548741139104316057053808685385239024089598210345729659733062679247303387844939828169163412931735204761651046483543201923116538294199600245566288993199220713456421430877480074029311276825941050643548450474707915485937675384881550667971136972469207606491551063363613599051549831227154320290844855198397690758234136892384251830140265517480184721429013417035729543459099509785607343782557746413783193991104571379641944725400888154631131817922159752933446265379241582522945515978484882996934967644004352694027769318686065002254014329621994178554574804977462697896039816401024290690559694354664615924412825801878850098654025671272621926229682760609015495056696183129312201808868639647351711248422557052311616404199871608600063945399484707042625940786317010135527115829564465014707407033147584762169187125211200091306824380068807366218020804244011429533747688107820750618283712437448198644507172610486665883944953502566925766658519663827441476018070099090306694213717964619778590668510288832269671987935364276542952293259547408921246598754983835822811062214103734626712184530999602164617921683878894130057933505353421166060597154758754118887648466512271448034652152731011210632513546052185346119103993307241387566214137939891535409161999253557973731410757731449976858375889531210479306777289760920457956254324034243990994441645749945876556524256503361452256759467849574351850275188693326402385845213979132063452912459761595187748757657714226738726848599882457728484058949333169641281572802908681358395786867860198834100683903707005420909200846429081981110018598881393859116916138511232173483584667530344594537462762739865216801276311655934422219753478983325248644064007706193956706470572280045451153190737960729927724618338651567061541295281317571592945834111190448105721360847396038206146887959933866197359019312170187270372325884039732304292689696961974618839916793623570200422295863850136070276036371617496421563912883615603045900115119668541382429928921570423125132873907564057064905613936067847041304600452817350507203444054999362820078533183589501234109215799293628539052532563385644018454181166040169424046327599290298863061569406059835675932166441297255377086670766416417849791492702639191100686487165482270366376410346637140529774742264477139235999521700786535448198818500068662945480196308726090182119438460374318443453765356190435246015702758200337196034043328237589514596601556764699742068200083502363143549932706371456642030920515495619193345687140792858942639533442804453719255771286953593921388903564666929150265557324592554322006873812629510313833481618312742849711065101307476145896555883533201418419019113216709895124505141716271673023320028352611928789089126927642430026463415747359112120814637285149434107782756973996427074077454536801343281778605962871788816830597016883882891901280150969844480564517131162661062932921623546087881919460663339746720057676945673621442890204680902441708688290980650993266675574431373646139204261553369116173355228989993007649195178342056330616925786492558068536761455123328265713806977501828013614235272421988549693658875570889128601077888337659389593801695052467359352322787150071372335648177527263287325941434624504523335626681975143750382578281308913311528717300350710777621629576469367949504508157912008736385369684010471247657043160754585987223017315416998885614452782456229901398087859640084223980887082110431412588702174249965214606625186209230043262535312946659135149621045958913787288941898179681875964740375517361177301043195851391685044970215543971117987555692478468702304475671571584276992643382493912900663921391792552311477401244498951568387080289620525203839895825503044366937386683092598185591679766331233717977583253149508308242520625441272920722061115770043486961895750185215324345581573305496712500284532489245470105423264946599776731695834675057013396615525209002501487007863434134538537292101855263374938394537228079834486523375240732688354226160059260913894564780017232395733071185064849155389826095085242171891016685412139111398693611458366401039445399733884140717284108559050938010327209718843885212420733558918016845212236391477619877266950035025763372123737593455670325835500155435528144004102870298861538041164655050296890234530552616210495708656787443420444655731393604739717209197912221418824131357134572210452205010659298801579655046996451474099370734393631917427566948018341064111009219976990778427469933850778771970280841351684450024354474708799640108054026456546058724810362835864069020219843816483995274241482554581371143225173312680197269516088837574328917034973947988595155871569666816852836236814280127723849650258136002672933404671968836759286042096406617960589695897558464983053294949751684984639746488606341457940944223299583440928350622403109140794220931700326818629016742746885178618741242703441241493771414533412884176062499801504796437559641920186711549081401053107153429920273544031544450635605959482917640859379258778045604929583108529724281789173747286378408710508840390842566017418043143670130519353031055737633948985109885995786382509548446639709720970266031161050631191668020937159641885229540915179917628083479475881699171224731131170294742218622702655118155615272406554254358348852986846619093324844021123067684618186572191818958070190192439424530352730274860916290568678268872219671448027574488612749160440015285046946088426873210688386252390752258540526215017120840570665066741068120422242211962599615712107357746456220840306618382950523635098432715668270255684196556631078636960186931128745688129380588916714851902957029556239573322612141653745886619428941822278268281765621549501310594724366165695261469503767000016994156290419575382419534380514582896199010261891585513316321727291908563299950476435407799134055063721645616621936679971821997036874204286726112427978969161187786128631148072066347717540173156362314098532770264975252680827133637212667821247456123847228038846553424973696943762861350049271849522298804244774217962356170041233063345459654262860422653095973932781592269401917713081274927545159609821913660294136926560543945712664174882489330611496826337338736039416214416668151575381187363461964816263940250126500058646474587646259519693839714749700427168548061459281492524565757170804798174423299071907208384909484130035159039309333191246915644314778461243698759756666910983357709670879749026512778599390316901562351711590809870728066286008110864238466644669112284789532981527610527299105507334574059941681452742288190270620439275314405135647620915337810365013638343618220895932567971470032411651799371706347247707651941217055263060744221113666493150762306338593847940020285794767747933319012464788141442361520635392228525143958139563762097044199988440827807461876049624782523535540216100248476806525715110179502417910589457532376267649135188525448685849790089207090657231020716513232413001857847031057720370972111118519602485912301712620912590624551513518048680210752103904178873656408808727432337725767070767517151311272523351025126143515121047750138572146102743494425966739732861971005899407685836450167698849113439127516778860126779813401685221304154879583156989993094693810865283755714276616949906969030347925820806625714188327764734389259818534922771888558176100055790584160444668993479384215879889129691175434757107011975277087288918993660718421381424880932346822572544652530911937759682553475575867389088463588848303180619995608717552637359923165442342490301053880256067043593177580321820897053013972179571645431327769522983068936835773597355477352029720315623212954849785469210733047125715012095882103523383976915502754471167647835759972435778065592608445194367752724122713358727366525860429793994005296122983805672215875988244176666832815982105925173449941913292919850297645935585477891333150474999994452094451307038553459108122266379813611986157447794211166156442051119403880779765645449713793347683634965048558909164196062087000884451657278094737472415833070035885664235253794612887561698348309835285554558686774321018602946787456086505864742667720431737432105898974897962182654898533173283329807303049903531249139784914937666089499785955733861363297695107587417369946595981441829361267002209663344779892142794360878311554680207698650298959496933204893746720119270826823658652740157600491517918651495998164115814882102655359035385357071113731503958613269655964395042540675365287869108796530844104552180918524061254473601624882232492849100834605373379845321199914517331283394124908084618111852590149999103403924116009041516798814449378288494416620497804836312470614963553482694065875638351106780169165469185017931086952744263276875873009201960827017979065488493166032367416708372665036187475983879193266566995552269983570646165040805999927625890543231140558384394319730577930094753812658561149023665717072768936623940506401830289630028093368694438696416879410658873488825077907357041326611669186596756739911641948887921530146921326089112065941119169818150779188901984887622514207433220505530430864793448105030198268934210363449126903077906351012514126139293792353693401056080361317205598535318698497224652713655290045995672496111700241068454143779496486566996183945388349854814907514846071834423717561706751384467640184707389433670173469575740640391903988181827017266245588118760052291720844749765108833352483415185087828506698217744950910074488831337621204184137448361372624963228121108265163511182943663378660644964908604582335224479852088619042365924540078287485503011939250242743284223431667622922853316525429703569000348077628921583219361622085205423397792507577175955839089821959694563827065035688710996685745478095037201357468070428177978381545102819301633131967428598546310620698443817467511168133300982022115044001945010965991557336506875470436989971315167866711686391963188209576416838088201463555045345154620606092704199473413823290830165357879578076425015016490468460717425846752486818035914315783039164254947146587887200810655781210065764018407097605667016572545795040087263650813149854376721195871698173422315905649233374610199753339154591044603693371354369959226693262615106651345618428606907690495994760941371347921205501671691407608739535633673378866592803342713635347114367587393584386437097787999786884818851773133216075126594349379975546692170905436717560698301517120896562363200550889606101748512968706552179260888274336411923454719105675469750163753940268290129934335669867305391269936816288595052222406668514097347520817799498525750963664816321930275677158659310549711890233046374705187560706147105227468250339360318723402510174294119506565643733497369321234918851377577104791736346722008234696785607429897823448607703494793377038391620811488764379139594686587202333189722270239821737229517832233349393621232632539599482864859989839008709656005977976413802143072954625246734676348835440763597760760980140682440765628899490616145134390414995733660504814621054502576580000734166818690482833608801430373928723423003506458545268163212071969771217471220552841936856810864125932579077811591788050988172275848863467575381318185578615532730145786828720221279363289155057118330720676461040105963721870398130627630299804612572423829600658797983930936906309607596485026050062263137680421785326301900206542728209553422421776114667012984040192888114156306615922138575323900976521225018094169860539354548639794754030276610491336476227011745230626413057937603089286989556311868655494695836964669950258468372087163025803354660573493753394538335886111208167060902383353585029494824881619380961119963480580960030076141894086689392630377493642730654058948900674698190726723083906370476596288931634277018539839381301132126896817009230120840593955855557496834615959502736259581265100369415740792549224660053606071844944744528952169777034170260195447820667324746171296938875560348168712729272652018759308810576487405299338754677074979347864812886497512066262518965659581600836237483549250932876186121152801420352135398419360900798822856707076949991878912570920477918998041128945978153959485140377240886764827639884385350108608571983336057577256107616006958772145828110609186598401854542093226034944749094418736161671971622688625243293242459504291533066569366287483329998077562304776618702971080966798778552985305847393238427256689101995723882994460376653439833084506060776573876428712513771677533203946443595216127714758896292032815390702813754806001719845718252016464840105588514717782037249660019071196117694255751329615210935407962592305834136587616091362284537142581532474358633395707213994337867051710800855643784935917453915633858886627404764798158087645945146288858718805799826107661675848216075084757131020571540902217255839271210538095828013448901663357025072066047140602580788297718533613963757042706423439964114662708885183775147317820807536373354546394247115436754617363698039741333899765635396242809154477869221863420725682254554542703814830822257457504406858867164946847502559626089332001947261789880151455542556713211465030142815851400397879945913947199307873263164806504513180484636542797944719653778515456104400830122811691799388076813180560608792559735271251211427229073679863848799146384789436193142392027424534392482263320679549357053228198677902321825278318942073942505922843024779251381453543107025590754718648940318020376019445019468000527426677680650435935679078947018384880372954556257996536248527637604661670543985541547647673524268142408075252996358634705624653851103641137905662186965310916582595192340928044867623280171457850083865714506587731597560980628107558363009341489098150738343548686201479891288105996434314196130364531876331709621340385702266755172943261712366066843435206908300409682067024789344396753393459300611639430122674675184570034294744838606973072313940578786247181025288826449604854194020468593306149890526071827833718939857352839795867084494360096887950497687708747654472475725217568403479140463810060027618962782194779283838981756509394666166707867955633480691900519643006168684382581611116590732276777537310409661163364512934554027527925465961008471117099653060393577385353577363074903155022678980373015906661003922776422631190669992852994591608011061588529045282235339952715857388697958832920665345446414662921524908133958116754627071950239451676905237344922202515411027884912243792641912917979560834348693107907615175774439036381426888788055169827747804813807872029016812611299870982323570377575615437497181420088140991092960715133177397132973399620539190077704408291331538649464520300564062772985548821899056467442135678514053959578370605528350344715048009372907364384068096223483176202350168013120460669232382371852695212058804728776514587049491908455127731073349143733274659595012205700090237218218637108662446069224399611748538099207510351438346339723676783046494186181489559963037626819312936515757445292556884883712927694155058162572830837364388027103684935160751824032642243349944629939602666277150569757646205327393827463034865697297599750125684623137448320434218582610016706610518097506382705321507585222689758745129744518104518880291057167381714041187637624294743216886036237549996254900162903907835215271165451990517274734937191787624475129202810880983825980711578437104670533293175752234249440107715220797963530996754705535083756403059196649343417841187761341166451929807945685533978289269606381170957109109187860949081336959364625376264306897668988563361768270276304607113865375769468356426984587098674524388132839493744388346209851061827165842828222619099089199468359715542070784537666565169380666244570737860233690580734944368745510394831685531372616983758305683232701883214514165802169419528025826005160863218890017227895346682098170689294975005616327794190056586409125662085546307266429505660833324925468081993980079823421716973186179762939657338340966995055181142150248234930030994195956489637883573547468594813163702194349276935686778690362562452615241081715327827454380253183491664282541709358249611542520251450200544455495769157364367253850034993428186561386172059380601439180016734061055524039058044794856343744644912486025221954525890296311409511106665325553040719634800098558194910804883225483564754179556722486033502103060576202563140466142784094766771736070822780606086113281258980753779265108789399103195628644075575109625082438748934921796567943681673241827587632258605746624159222005324634400158271384204982947817086936502156492797859127076173856300055817733495358965807022177826417919507981395478353961108591026220670427781128097398292846710244577821419524134097891660515068539039924172559715765030173177121863058131866081006225333147913960993304632420972217087168572018796828194026744156772209134301641467235563753133461609467786985032065941438341338230449913163523933042146492206499406789327559061884951226204361061741071153150325177008255640837942059355974917209403399751795470171100632880491054918019794205091980070432136633992893368757329388512024693501679549974061771604642242501929248767621510166490412809329463609327992825846160838541255034089156673383231642562572955797835492710760670664307791804401727559432645685239546651238775205168283238567452842984874205627551263031157372588282172630335801433501055187503820911100368285452522900932845985634413089537092500425321039338107732595979982009293020689216085909260186174895180796259794601458798138530570235340249935034315761233869073374591145372282193104502750619349107889031075344335629620449068509885111555920533172217877041216759890989077786378707050511177795452788719349893113298064363382302621761101134033325933727012021306999387740029790302677785049969063237786990789498202804200663357842597935584278001901992517328167382929396244127100774521700664816029699811957649211903796633125805135300859485201383731005810349346460361281774353459588397368560157495586408471477110090996436239013546177386227705506572759207073329989178618396039682159321828323487452688583726765638760233490203693878103031009223198247250045359751292887560177486228836156839825452183561911879853347328380908553987242569716500664400894883190701185820915125016264219700323944823039669911691066466173444931323466760324911741956350115562199539516767560023465742989798313417169637159986791706083418529704994184693660833905855152597853009602965907375962258949703643554723606430141575264503643273409961112123654019422913041780334218955338245035968947354075702131892650878477793154915640145362661714883390917054210116830041645318340504267360537758443770376545696098766205002602805751143125425988137178699162903926466916434713348579786939400683197718495306795671606149227991935521722703664374163331441192737123082265205092013765661432965733643809464958315193510993354197590983491474199447652704218986578834085306139310698189365506459413115465080301190158399277996329459226614905750925707638140232842973261638539816099209291698179565113174476604345769224608455722673671111910110417118209592582448871560146168417428751067208058900116276382830918316383577953376030783221404129979256622644690465338838087814619850942071141785260004020287440450177116500038652479057410197358814894180760833004575132672228739046230183073237385695457572610729068713814324655595144587363420150542551317876616419399737195017281441702554567807906399861855885215446230114915759695531977386171983656298500363843101166766537761603746743656299457092220990011276770036008907990815745077427721535544933476796354237676072005165261822032692235819984524068126643490364031603675325483458818055560385332649395372955188477781381734716652861754673292153476505278418321288909872673117787849309158815258812023648613189940853249213095225361223178812906728183526195578422187477893063975128146176661448322556458395413760945679272482815118447928953774540681562743040462278744094342475210440909833131420756275008068645959665448650361298776525415361974362305390775570851773580439413333516390800919603193103954545777296676381041623516515379844684529084745529960340734923510538692988642944336789761209968830255087517076410231973811437439626470446831871025355186479174623176732075524699560429248261505727521407704839721887815351495484813692415558011219815002810410190593569798454928386074949302156269570438939994874848027883947335743039391287860253565413252704839051574788404139388736509479251206903167047154448340916138717935964714366394263007144333451873516757566948567237107807125374848238817129424517330704339004574488905842561860211809477576721692511405079501281967481477226598958243237934680228019457031025394847978915754882739147242498344892772479305099726652009563308676603247423560803007622094818827027407050022300258626574514963273964635496797870794379532408928951033837848136719900421782636986644044997964231881366543168823306859969494768441527006840093786808034220019425479200262225423352867828320794249217302921240063099203995962112307709914670061244428970084275781946669538940812978906478464359557922757979047115012694697191294844354188854792796317904481708157672397082432950867324239344862315311360385670587602895849071770856435045811619146695781800486102312646474603170725957081378975968610232227332651421097244804683589681313779585506160451098531300911795228583898238733659861201399711453719498073761356516688398088911428067218169932387832226104936748924650397176029000656133181398372006930644693614041638435862825600255263679875456266827181196814943060548158894660050081700031772273291988146501091467823292216701345763377870084012029545027970895931905051155422206011326387989828555359078690216733204350543098431106640980875825036836043587257684338716849772155946699067716950553185615547198502137980647664651679756581165022324497618734498255906485847865875899684744797219531514595477500699185176423894126538411929325073537126979146510116465341696925889031936104301280040905736526254558003955073784078433195350893245781623049222672480591483073766100132384140023379530888569186778630860603958497818386270198383883414227597059751117499343421626114242877499611578024798631948359643633053541976022656610630545449375973052279223858628303463685759309900676059227610782344650242614696163716641866538923135421096658733468494081333591863872862986274191494304518439865793907404284995802666467646923006977344525291737423814094255518725837541147282426617659473510475887961927542536199160551228018011241647608153294656474323512893165530477339169454154583586752697878382614490510206277826427947197847484639577924773339265746491811777992525325300963108935513966782405442000790955989507478202113234248574015122157237000793561907753454697280234265944127193731739820199877900373519205369587323729960951564855415394740178455691957572589196150920613785399395775857560284865709440642690926285696700408831785538867585472080961472311481265925220955206228065909592917509150551134937560799053679161729665611991777326527853958125008444167668370837213771618308614599090007872553613908879074697569676989520993844598374212954727598797187395375400230572675287971159745182040005828189540783782060303929037006210531986601981165317393309771147653134231589951153847647060684335425855509023359829338179916680657622793532374149286801253767866943719603505152311696259555713102298206427554805455252475692624553144401621291866546985592511523221257607776404281867177032667544200410899136503969657323450955863162794995668301994299122790622891768171283455635705183161741192979893050536929868128955334070868223344565180348808953867321990167889073282693872900614260865795924604441984276423424796770693371738914523313211611316728695489728084426199687686177500706468891474504416559004439911958945149689849385308444474112041074083444372319465350692589838998805482665825906173417939308621518734670514417019952330720027203311395070659218972669456999170550001423710214177139610254969573428137456021588637615433861275899452881080934947948124005017406706045284512789049410455168303572238899730703025383828532361722245658666540836413324065151866845064027797902375754735151067345283598524520483724975725414070810304296562837725990475867919547313466133224867225151076316166714378886086370337305573967022824651538921980839056142397731573341736694169283963251815998803059845207708977411489719430476520514285951952203585901825979687357264954518500174668197372970699565340878492769190170034452980757233638801344468874417653215245779846737113227244341917887352897719599703198791870797283627238910217940580111740505770650109843145438910775104501270456798637551570063465348969548919882467603145686346406041749724398093763385930832101288151003774913498297506614498756012959838150468674783528972615550911932607202316488033388973278724457092131288350610781949889624147061186355442453685983284136954538584867144034777406510795282896073387672770605434226338291686867106770925795818570505620868378859488952824254612211846346587567755567684924053488731448053039601442855512045365294115159335150503752567099315140943534662621923475342040689246676862083610224580311905699791244036888210236004641217631458402358520063319422582719055096612113319450445951555319858573429546109084430703442030725303350863576228318367797756251615430237140081000462215674150210965704330579338293938635884953888964547999872537778991118507967261605703429674254343891339793055143607813302412747335283808253286415351860291807728293329172071914992701332770610828457280672565100052843214311238749497820679633041898640318660300231486229727973698685399043119917274848770005862205208113146256820382782974742741412855127433107500813742410761165145591490052366532802286736512092852210813755363445522677005358573617219809742972999827128424225186780804278217626887373370256541881148641128809557229313640079602398138414605348401771272081388209657711943705656662909832936162569768294754903714605333580491897253633153113970578851996448146183919277219446747086230047866138806654848712883530935391532442380848355441072595928663020456345270035759042011134587824038353310585526444804013218022637106964244506854267936079179095240280918962464661071238020104396181692497023172738041308538310241782092935662641391119488492136896916456677371775800237162243174830260032682071144219430859898497925576995156176625293159335253698319320325969675927187180478771469860614070066436612061467748282200211345232173362487458934526926269453714593233834263567876409793737301567345933468893073557844382590031417746293883487553044994006342825482763841907058362512443714353832842372074248709355651531678588837141525566610945697594729824927672360529158227181830087225141084349321982907282282369258509680809912030264632112800164954305597928554817001251794934342543854836034547710710263329387483971954068098129705891256105770735115705158971776098202592335994211040819786967145331090959615712045120684051743575397604639529724288585430700165470493052044223488903060148622292204911618442880330250310125727855082351121630348043122353125373388609113185260682519627211117902390362421226977000584450387423583789639663357679565750353073197441509679221533945322384985386474230099102423484377712119740950183876972640170029416775236955168839393139696740739089765871603560444965301075366540273916630188864474890840495706268490724595084451820015328620692720350788733159679102072058902533542425186187885374983359546234280639177796966983131964643183580508669430797068448293253840373141741768871737561456759913125145829852763599878848077719865730437643813991626121375317533410283956075364890176976021423702260995925330183366028594230325236883682037068064814031320760603487080956053528748000748745006772276742516347446691601817060603029197683132327037055921356760550318561995578474831383797442000823795711202291616451579821633650407558310162825087466649679464117396584413376471151101347664370580160863042710072154525072714343000216914870441691243110393311240064745821062694527357443522097045327393657978452071658925220254171741077784380610163799046371542457266757863543740819670938382143116032864094956029486964489949904843944264965282083965078751756985219514601333896803113200153886598875632364034894466202963100095132819381860290962074468918267330477143343060643602977151199536815794686135937492002531994828214625347977052913955572812142805751295621097166075885188635742781474997549062207887749354975260170134647907009659313693736233194982306894740583198961839946608269825752223017478195111795776065503174038975830739764998979676063571291701424612555753086773652366887437998746982737463035438995128896352499918898216321614145178064428523506661593433978756728379016642292490225871061549879404631051171062957931070580743328477309364621095684970000412331505220554374134630533896287202193332730600590903312173389431060980342812963988770209081233266789831987415097029051163890409986665391825909356006764248593561569702636449249389845669886453850224070370695832411137305722184953474903673632909638979077193840251744838593567760831697458395041664249879535907384589164476820479813492306710816230075014073237038077277413860896635329110172523530941020391269229075768744097358494839206014165011025624613458685527928406709538200047052820290730631552143588637143350745643800092555750737154330498102157143746098631325606675973774992950482831436325666471488990084392300181311711605412968658195333643862379078022549505411107899066437121620677832847697853165197541909428232395890976558325419205100054380539856312678284262033445398296066651224725029088978727252423267980815568945426146297091942958148201902489724703157058999447372957173434054807746986082356914811764492153177843034903697478990106882153622432318963481398681242601771517787711078951440963880480891023611897089822511005943207531445691650123509607735838842352890324932316521809197018956253382832286310629055217141821538418967464933754545681577675782287838809900699982527202602867112552412928674053416598504434974361217038914766701806786002802302582546352489249355082322962457978011353865427184883713082933853246697614381877719154699818340080547909730779920842618793132876393244144224297033515122457876390791115776476224516977120358144012874642047738174296631103558299805903811217227237918108129577358282755319217718897454128335981539979448693110761032028384148733463328516672560272015487420228430740156881807756911545692225312143948354625116446037132239883225072179203854790430921995992846065022104971349398781178530670630494132847731055030805523111545459393986324319452926729359891170973623968641929884129569456048426715889289914706755644126974306587080702200030800892957737297236168607485393484312752459367293196501558502255292325971020997119769888424854840926430721684471005510106555235959376071375289200998358362229695316663890339081008397353660871092059337162833850912900408746372695625781704334025954605822303496429202121692832647703817467900338635787152370691284513608062154261379135518649757562902761762399489083125122532550902522584783866566533367101120200933332988586387940785003578212530233648631055814099671616023951960276310143627878987569697649239839694810087798525708021220260944085915587142061401146337750130044488695619142161560100200038910188649800307792294850629956383059938561593314336890313996223688874481595650165456996066383799192243949454077297325909021815203056245807825453603850499677810624045560490140417236882037583773693529992098687792263979539591077210283449133383540217723563104190749471893167596912051055732978838688474883679667960520567858211188127376339791119383339003922919108923716435441157450634028336267771781355764870486775085602040602277221013711975777115686278558784285491333038798213250472662823801763801537019461222965233986279410482489324024567017869519130065476979275847862133985826176594947731662037903202455206276292934951697906772223296959997602053741763975676514121062331989470142355247736242451042867396002667731633275262992755742254153775842280907074749620670587557796401775379919596620353843101015982973809973044559487315208201325921301338960324988133752544007835656050859910461944725907244761241013561304349006845947114424873559306096079139623438573522872787777393688515113123270922522033742794423766987723154189943275245189719431164209393250921236400246493583244914411733112187486413832415986279374235611583512563025217068773177658445944757949181194695589256458460678172056228379709981030693532305936178372371862413959815741778335080419713103968155244098359221972500511891570896284247492243807944432555941258493002359715445550746892766246626506727535838184921264473258594049034031206183175014158190694849753493179905730570041154424972265076914206798951814515973813902941233573910901088957542750857634580898882766329673456616593335598089426420833478411126551750780589352384389104289683257174443715438780957261209089496840978323175265644411310932314256381438745282714045579842566997636191870200066377215189479612533051248264042789393115623438386387931069925239648861162544828061364570154510770019768401448743817090114219992668947204663665496142170953473538787343804176853014879525431744130822424996139261655267137064566974810107436658563319767631076114871442794775747923216629849396485146067705306749723527050230235766887004130876229709887410556765537997646871066244304709449161239205599307048432139877234658806069167230479741985817741257049388078133374251871281727393492240658002029219262978518462386210952860105609116697659959630287513650503391919777025603772643330379963514476265567538953762467264162347500547687466469852751906128503265026928693739032827299748140677914660858112329365775555834639432580664470874676858839547939525317403399379152410868846521880912297074331258026471915544004562575219174516442344553408933372169578487489473882345306239851234525420715136912403313441263895623863676206879687518042962924658887932650491098808597493214987991889026085049777100160018277111544051205706056485730493064602039092666933594456164840759549499864287553814352463789141246551967587198958806040223305659085356529943663144678177275201866823815628172118390738303510309888949667747400686966821544030562832002327995794286288387366682962257306098269680616042568833517953980081418257597780150736455993264147483938270556022408364432820267574871390647912973935843522093969743715190927780627163905931418560405733837560908971850817270030986203625278955506759192279179182891434910744635753588018249409286599374909409286096310633637656024916780206393721791695807915194816401857217469481800918491708533375592364124202292666653976010415652381679919893815267694334723966689371368774594775792380685017580606608566595297991967072408973282990363249280092760250376166107804903069872831781695791044511070465503719039382672117342390054848127412258064533723806582915949195791181193938684230711547215297579146242798222502736250246257415630665406645145075396520698836249070266651039605217731514440874370558698699317934221179085628995900621449339976924698540669835078412051931678878756404944498306274505913004449284308978423404083407745794042661480226600766734409462691393667685671587070185409363973988063525407010655442066214935989408830452355213793093192807129408708114389302247466356954460169720906597593235892984741258207973102668149709054775818918875820426562147455568288459341885340441607309104501594997942046599476779859297006911894554582554662915463894291401141577234311555269283593396236345107347307932567031768770720804470045554465455277742429188325216762639911372701219390821782772272468756222272145759258096360936111254065710679628135120194220326230182709107699050840551128206845032093934584047896011115188733702790635082661885809018615132699098188962495839069006687003849964846953679619825622709233326176787345115831204110210995233849134883665012329378894306460316253371144568209026833626120001901531697354671287788609696812301326320153997002072598624347652031951487983650870210349790666858842538327115348113723770323755482664520927920451885565314171688139353300277716679337676547406969779828813266690234461166974222761024195857118517874941914036479591995439617669024712443391142071634679748234932445590472670341642450421018909441918019936179771648327643750897249172492380016539757571873947195656677412933487765910765218637915370986447133553798507013288627929563956683716034965183780675190540719359288138319979311608734719175643787442690007864739808388425028468496322578432540407391858172658448808053479060393574651207388375850237355421490527143776686028344755009712625704022606920324295224312210006824595800336836474030489511540035018612204026514289690998189601595822962833507923321826457169520587917200604833097600957794745056891228325833471678013525960038615534913440524943122434084269686504083199647635992758398265532720242558189022120168787716784419938249497985099023561995217519127813515626307659570431031419491267418674635252816797589307001250949539089575411805736937341143717145529480821226150687851722763956886762877954605118520772512220466753697230770949977106061911836680229583575268802810175558691200176591663933180601805770005658637061520580922708056583180648225497764599521176692283452197226216213927907653039202994824730936916299196830279659388446355897314684608185661026804222603055591118178371954396254630148478469588543744685648879395018848713173947652391600008498226771165554140471084997303594538908398844274728726001986943222585112415762235304945136081798939478746117963737913187289935496621971668822319497754632794469427715135091415342014516133149713632787846632663991441591596215478790951173726855317839096589250354958536572210526618454862166767239878373418330531618233952805698074977480526156431273473685537961107883311958359894774972277943928541206943910430421649474183150301454210986437774097949528452460710371818747716101830084518039304198988004200317265928184483394283412243327828809114320548154205328545029378709510710963215872172625975399871513703762218164576637386601592666731869956940825594328247151356771156840349968024753615542149358679164336442673915011043088359140856440219403755786924637366905891114491590292050555078519360044216529464368106855011540225146719358478459592722779323676579202890020667433893826379227037265749388386634069748003834893734820754638332612515529541467374881354622532169116122911979983593338390659902797104108888113122151601129802669651777695390096750855282670550350314955283015649301136085663650545689205345064641496205172243057867100209512698108218492826559666416676462316929200316583736942257477315070708335186815001315607584061756269297206358957090363643253959493647890750523794831171990517215004931264153220528515594202650445720079028435202013931313226006029101481662738811521349507905496084612012683356165186506095671200335844834433377694038540164481179883977256461562262441516322115905118549685863845258793149322390192156925137046780923722584454218378421414144616868543487770046748992028379285933139843914992649032983299499076569672059380214004757294670693984175136162820190489603695329768995222908037067368836815244229782587748621488311752407408160406114041107084706420139222817684950774143404740520882885934518940864603695381960595120075394262827002990472970280741532539853413025285941929170990066122283408493510783547282546912235066368203936651311034344608396385718923793987152762321546219079721705321814557603290628850127709588577763023522552806611163928243804038238796186399062841126207322383354744511387936571121156181616446141646884380042377749679658828256584123883527737735971296785911634102521347236342887069422364850244936185997445922278342284033646898257846856869788176808102781524103696312010885293726057905362226475588156590912275925760504564843446662275779811508899298421933855548550493866724548035400709958064152084716297783827817994757350745324820186402318507919048709668763774328664876510195230326419632685322820556943445061468361072640073946536441998884871867466103357167645020059178510078980699645122015961301281403119349646627960746318288151170570906004388489936337447388825828387150665889601929500627795800331001667079043350150819662095935938019520903918137946390104588335493996775247391597273428400383468310664150252766710823466963276432679334937750201956221511430436827494705325156800686391706293232901877806283841964070449470791641029268180426432125049658821767125172752233676723727638347662526721491297979193897198775806266529184427414162940922783149349146065486339976176802746863766589238295319551234077301752773108322794586228950696770551007103685399040208892112978001169598488973604314147876558594613704869276821287547262913322754865539351427221183938181533012158041041079824208709473813456615388664076021554361944897496344872302863259276019618417321982032190327377053341458515111608541717824866789351755965422619107720877422540977846875723343941219690839757672567493051564923966946648306579854103850943562939071711529310490650824725614835947377322612709094861565082088754041125108766136015261691649949944849114444857255364626390142545425163617921709375663783541622315220337709039715872131637102584476459676917961254672175253029803613869722102781462265225017227249631568636584251644871551968760512928578420306497128866860351169674951728863519641796403788355485791081291093648899917111434509441218180642011878110372749920248624709249795477437646158978580551359787905438719659377941719899961160885983525605258127652593486322865432278032197008280799380192355814483742448394545640089849733827385551331585197450993797485592082512014676733205509908261109022808240677473919929205278046683270266405289103028008179091562095294383247969988967590041004158535991725064109498121930496971023022598846119662770029790346887039679424777381192849364974234805165654257917826517331779148548350060658539649279380624106802810325652657523786701587863259211578530704910353416815159148377086269332099335746252041799898441188122223522143231626643338393193009014452867600849019566076585578608061222336576586120129998510530478022495636397905706563761787565682044438995235903070708184918161167922548116897946425798318208610484849778529471325336971404231503816633149122789053476841112339220792396959956141993019593148949491945345059547624477081811932407354431640512999535622805878132201536720084370400873571940589269769144040897818262614367182333350735459101898425548370578976431951271604099157427155422951975900262533401448371629157332422978235538614655474623898095420643474366000296964147729587232189015265870362997465703173599213267586824747657373755785637353544723768715216919633295812320356912231628570491919823934535937308429906479210805353883904887610018627868051881182947539751039918951585907140084519308543636353462623239500877972295498863719282733132128013861881367470874777678836912558707430492503598792199012300102649477103163162913380761425888730278790342201938468603690478304016307930853699166508373091997276245835198066809380770064702675067317755926070186972917045156808582088524079499936675461609610517111992646386644935174049400745942277698894970482641732824889898162584311383974415103785147814780816084875871352990187437942142342907640218297909225948115902402311448383291952007492339783383204985056637217550104900382329440695994694685020022372714101886186478358141236845686277714184446847927855268991338802715217982224554555523774764405867793479864084791807458643930990179797709906243605673537358114566857592931682643287225542166398048148658275343839402493054175201243137338995046052993159216900598722676408508125396465078500269351325323819963036417511063438725986141614815941427589066512691600620229242104945914279459524140707014048397083478733891047910267656800109797194957759195009299338897506931131035621919131937761665241850406050099232644529301219989976980253919946748112216145445667062094258347216605221336306555213651768401232260512960963426352234232527222016943240954481845915927781581199209135744732828946663251516618492461507501974777358956984363817724931241663540850895620937554062383370535130247040368380109921071776822493550302701012770498046810096963718461219061071579963635834141990218198630565526152607833305425816215466058984613081573113811137274766969173443303556840718458633453429244138720564620872953982265022034343016716943154100863704880199129971203966405144323341864272886262842726711275733813669076304658919659179516878803471094458516859473514490176720815597333887084995192570938410709229472881612820650692896808486917582801834422457055495457556845160427943820177421537213855769947751151019877871625967374610654763175704336680033260376517353206386947393323633535754602289629460333585272861155777795722759950815293987878427099352693532983079332948682712979373542746436714759330084909428469922134856906660537626315615644160486805839014650380751834632235737036445524598295959697106960231256875286120884431526696326605528235650087825649317916629705791713589375837590132931670986171434206533487825329741389523850110531042633985369569553957245058931799570415436464283559243823954217045964323780057650454550103923900593571750433204895911000966205115645100693472597845934931516927132356207079021954414832468523835018288372508246982198556935588467255462489798455461976307010130743970611108485728663072936792751936579993649866610060922181213354976997963586866686212363746803003357992970292722164768082325148066579479977434969308843071918299477485019818449720255127548194822272404408043546775022999508195157964328228629998616451109710112643781308784189270944229828858363279701806965306389094724820561537045106631592496826036631050765092308408320540951289938447944758574981141202484823126319841143189528470523850516457571882180919580994826576562465875436920088358540272059766460707192686606422439894463393293272038546955294112792068729694045608052733286823176212464736314268778795349629237368810417669401664423906731937140417763494160118388753293314292764149762377659756156713075553320076133692226676568841656498740427050701693014109017450606518370168074945611292904901817962558002366340600006395468572444000123995342681686715927105726305086945427817221101296703725192383147123076601987897371655993544635720331060562827817540175964607881293839956967927347451843772508696606640228948615303213657121770376436220767891028532610838652525138363160839448127361061430911922791500838676774173610311411702158409750759234410011555411489935724234838469040202681997498014039728539810087927203935631056518020298029053363345787535439012142446137383742993206123336082087693482672444612526242986893197490177132003963558011258703986856613129459264982705964785335069772415088035190581571462975912862943237943591861453327080592299909233940188958172598536735120949620336813659063641717380392960910003902876148307975981442362848746152831235896438572601111063164404738696431173338123521867480902807868447999773524699391755290626453336573221645245398465597833829529405219772193598165654257996073863917246783606984498361155003599823658488863158597770504341262910870502957385549004796688870297653662991948613434284297870126728065714916925596013230000366342997278402172058096369326453110220429984436437314391696773741287371967204870008230532137955574888768887348362641754595510265424938692562472365337926845746900267977250734645435203337639106597674360611934903884661007359432174300347768589137632450426485791653856982327019744848121805027726454058159981684579486530907629514439173550585042976271634643188866209832894937757793514676092935213719998941134257396327444699310505149307713911374871457074066027582032435627522595260814791758250368436261597424912720810954839572634535668448159726550792256150086782085786978184692726451175059146141018777763015037398244852848382025100515591907761593844318795421719376585679261233909384685187337698491073356629502476933436390559704617046165440703811509211216473007319008184449626175357455514608528391803123412081378168373775925906874577366899141859143106256277412150958058090251311299258191751245839645326648130251233562954739933490914754530555063476607576379525337186730342854523155611508192484856374269858861980112367728496157258327776123939575010743952759560685546961007920069882787715576351295131831851380754174982486372500609763045540478800085713246424643072375791078231887205463287050775508264248331678850757039109350536001150079996643842584633760585263352398627305086656117287524630718250981819105586757158299428146803919489527075241205172981598328762731892941142752475042673297643539074323104538882427627331953832291916696616826020255204352479575921901243504440804609437287682990728743375296758621461346187146940795903115790947181516544360930421168422042073919637164882157581031898202409759228107256023293974992898053373197243243903025950090904219892748217326021565152117124641388722242211776288303795939392319716949850973336205166311870539368578887499043766630985121344545071834943008756769985122332977298452724537520053230097645737225731983531385261692915502198934638850538421873994282863853787101782381982911964889774710586047258485094004164615498356912310409071954036681883904603816164197082419907201721509728781316100886144467327787191918274926740983664033555289007160067231909770853135395655215252763118349276495336766381715018582437248773073035254236889527446858217732297739796518244318816255058332834289290735987198349222878919617613453417626080330958095600131784336868301983111636325615265993351737287444897661091584170573479150655788773453573016512932799660685143023647994574681616265612872537493907494959103063408638479642180753061371136175218801392693605462420662025826992312163072497553670356516750072132660503763849716096126010268110301326957113466392067483553668591735239031645392920562897649717499894144619485205164279863587330129233178400828709190190507105779989434486229326469408122584116352402697433332708630653274231519276591294400272169487498428970931942105635027199463514359881341891537282962830142899407808575050774477227572528983997647205419841127858657851076631412442554681202863887731592971506139749753178954796146130569600894186910601163209206194436572195777667960023490619919495754724114257069656285058546918169689331942471815841712913613705359694719981997505164662049756810163161033206261058991044633525087268309934110521544509052896684836957165957519778546609276796370888766914631600112837273487366920722509597198813257589104658730570175269775931407241459858868207118703745318599382250241152391372966087515597360593106175166282819162168463017919938196004745753575732456390632022414961993117058469817527516541431251461497337497599656706846677248683292039144834928502671411823531218932567488277449434804764324482452608675099830734047465748293317954815445720203921812742873651642557868564981048323256093372772206139001428078188655366603526669031141502838235891317783914282543374783223689729740593963817490783899908446539222868275976419368039151246225456198863958736331334014436126469097374426054579409952793903859603566598042727629746600190853176885876152413742094910912648861049669275811643213764121533469819100011668271094299497052463425406324532578758046164158272398285285872000599649344771975654142762016262371786007901019404655682228634000765707878817535463415095270989613565705360824883342327120343055660225422859818500576601528255427819201683008559815883120219344375467814408566030064531763386976531948121837497457812726269970555325862417488353278781746759438835352449390408950429763227430172154249459993847823492120843424652789261232755373970230603893395627687231769771506243840579622813966369812284920213234598534958042675923808503760885569776545592986305722295058910222511968715352650237065153998984313279563221821369009307469306790668768921468968294443319893895680270697792608113025340010855831746818369032899673299765256118358854399478089540972707183146914235250053688851120148973487786541459449616819659888725280625584632637945382475861377817569356780229588437096602839956389357166446031150241238749586150713829566893741837411054540349487591938407295840063484310928405874651447138755890484791550499107882683070251747051037763366803283060794853238409632965536741610077120452852419262663611347859236295851404937732808958615916361188732436658283280388573380403335725162263352823472946243908108411620027323908361114280489666609276217558235910660392719103174530274489124224371950502780092291578344934350285829476413179142162265855975229630983468796054462096944192125530046700544606726359138303050032953745912589664362712860519912393692051575302617219661328664694966364438575898766832318722229605225522768210058221949142292841850151531715409420664420956300806817830857511297988463970627601816123093417092056093373873625741145498154836314130342069314842964932260834975346346935123531596034799335520846106649632153731737568671244677340475720968654148297468756778902017077776170293373803575683069889392815997380226293076075019145280560374857774980494051107045024106131876536147021177129166383945225514255232727471887011287683917269831755562118026346816321685366105734799335980615500401125206077276433172832768497754140722213064297624702209372084778790874878922542598355322842358998719418881526924260529475367492142039689605999045281622465385596138463094267329333802360544583745364643506603336312096665974889665594361971452096184688248889226512012820015043135526283966403463278783522810095988719136380838724979887685735669215362087705123163277937006438583209377180298681946730237813725169194764495758959584530316649396639914463874623404916466393781791038980894187514909969275541553152130252572511571983787616837097659671332672589640675704729376240642139366836162449948153327051318738090597820576667498447951276240397645611849261234419704972354000215898454396792327932405877038739244727071020582013321847901444527383112851691001073301189146614881401635715576439735385791353237624324839637911300629933248889131920536404778123411342476626947389567263841474588086373120388728856364843953192494159535878892785771353517741624271566248499843350749330205098745710752698344811114045122713303305990091687847276535500329964459327988258621398769355649487333283559400177868814359200292889306326996434300246715163569832530492614683653607655284717842610733722355252344109357636238701637808875333166676781234891274441336221762599909014852226788421323745030441631197618815654173637124540236239556430064596428186277870777531148550122515244021452817148564664033383657884869074196235792832308921208995141566339888158831129911372873442700041008406091679153555003679594167996578651207580308833532513258412344226177727210692855547056738419289042497726748643966281195957648581246498528508352541072810926230554596347927202399854104322042782484027311530815119668604242333247229721544424102588637150050675176438578475363126871651600680435824516441333198778778449868692745539183522918557313870551853844885548066500297441060165922417623324842265466234100613889173235817678964304869369446058292532011505164199816759994982697946642466122682342683636062592597343192902915369685869415430235694574839295213525963060768308133798075809651351669085918335012071785645481444336138474336829079350040511826540051981187697841304053005079487605612036984876624240767672247149190392803467536726443388837948750384877437412418441895917135929575650283142192173600597198514362390150576760211022413776072872213140289802018560659131834341417919999825717888311166628719306526466802817007883424904773218170755164613178297830500289905618046345934173224249473407481305275249788953594373475157016073145768650003138797682343284366241973565357981921694318305199269379570857673494713637975759943862686604361489929648345570124355051393513191186258255886621196971348909906270139981029114644150846990508689774953157564004165625353088241228629053660882759148268235051098187401873335185232463232019774060562349630301350064017030356797192977259992939883801002431725203907510406110766328232817115465600743065698608335055894187759064585322410018393150622659738120434321700268814042806009472293464550516867967570025575349677914902232609953010868928309685926887562103850019609238771320159794308192341975096778491804660907194349259568606744500267799113659286132086122831117969126589112552800534857266491025510893026450225230023562986491797399208739858424847482967312720055899875491352484019459810588410836147940575691730565773248585439475071183713518381205758121537469346244604008153647214412404477177227174114037362273671676126593891892192509905787338111059018141642048365255355530634955054960042283628902070264439810034885799934596888111162695844296808978490249546737546240704691714715601495859140155437356737174703234533827281986399812209032456507072226355542019197665765841775290705264829226715927352142686262030234049269581273105325374935112658417736582277701663474654309709388303947525434079816349341990295300918622751791699605848644016036354800436165584960535207088440170225626388921056821789178015704791301562213823871508399530883124680357590571999573346016582147982819266633592781184904332550825291344013391543273016807098196127481188116356084066032619189807716427678004747708767044519656841368128071704245591552922594609987386912336238322396964350507099213505405319408245083761021208166179389538398494253155160578135697681297080343477551914353733125833155360182533755262480560387591018850939193098678755477082591639179758911316269417851742225775422927851437593569177746580401236967521211740386081749307277664996989461849107334076717726012163621958914508362908381184097942661781538306495537709260673204781971247451048140282719432657055027750383366933740639526056439855607904266225351622651962567755938153663662719789201670050002301456092337958775345851387220710477926342201157749041439923620078976494469389216066483851797096995378523745544306000141357593268616368790493913769568686624096698763431206960553962507692632906057141702417807288869241729984333201384366662728509758188818270868040225895946003103780046857018464704778886337581731745162920635124362301291096597230591407247722384682595855153462133905538680979763066694962917148930518856354359773604150313374362413977895127458019770725792032469586460571683678581848490501523703101718584198432444514020515316726920723764594736220448857129619934124926883280116282235578162658522343329436525916800870083584424423266386159674627055021509884678601058150449916520281469973839306837175423996685097265806236305247714563323397256541674026031306466997881047616687595564689122293778961935102226814660982448753072397619392237060304232130529113433404094541920187131408635949429750165411359668773759904263049092551633724886344398690915458102771814189643081434593786780570068867080717971519995731764104255608470076319375986963963090732222150627124174166328455497817453702918320570488781987711360876021575029696689291157197146299083944900229332647122977488764748807323882060217447579250714638396585879800804063122211398093822467870385935188865456920441446293231013335800974333901781149347323138977002257071910969801354912719928704389356188089627538458267993597818475765351402441215729311737364641900718433515124800826865676813450311318713517660858696820042174466657343123555829492650026009183950823228639254781865587865299093130688378948755122211028112573541784481574336728146898989810430921158428514779883084894194472947905611244396944952919534402577868008500447571166356606734788948624757409669010681097014951846647481666198910638906234708335896020406935839488042341343540595043322681017708310325905889796347354214758174925494964330948097760383394799434163983398825409635033406809606276106026683411122684345347464096440282576279804093759464646773620769661917839061661518383868373041859509594330502746614783739260574692229135647806402569092832072118317385692510229702848972968101095755905757568811984899153002645734845994376987839548355458975154492399478438331481300596827195280938356689181760611114769247678752581937778294399254249729084801186967505943107199497090376059616094710269304665230028370744219257533039822363674407867265533390262248094506499621587362206455128740429243012070727106467094926614926730179969356367116030232305935818411796626171648582104228213485378005719705637590961696820442812480264029105115211143076828680922180950419125391861260660093350920458667901852519668261114241423610524904513156207356188144077655113262332199219626544270712089073625907543830560890606742500154850566912432917570517993516271275932934918280916632006036538773812835602824343623405345505796966837803515278460575761417887071107023210518363560194194317286363506331322624103002636957307479363628838762283794625754660409108336062550842033738766809843704378192967042797328579582009891286505800378169796267729515157251278262950774851272583130412913170735085133751495346983974039111420989828236314669628094076313993957793423359595019519983219499590751536248829961386783076804724190386174683191516169989527080882233631371612081682740760879617782468304255937869234758206302004216364976698831722333899439156571011742260414300711064023530344559818452198005141796449264935584119930390560370211614227995331586931663594831623840349055379662639833998970000751892706835150322478478925010705631984553321050854896303978130391130316326797774794989826821562309970781278279480428346814074301511746016195266684767855452398079550524793808763415517417768285480984102181478409647558732631256948484580700349192982749736754158887041323104549733759698172317589528039299016581007312085851081754716876162007499391582722491231552069331798018831062867397678483177938903583533646222254017754171999871416034051624793714166883784903997859662754089207720824399255318600313702747167646260645681437152420378428525697622236604003890342891038610301055849265567685373718503876906171954190372581662667606615787677846573384138503152470652066718595249368286644649479716188165596183736378373504149544776299457624390479470919181764219129423331870974263018013337135241925660315099591430391363500019245942491745814054995347248546568681772227383057925144354777064231870575106624881538350948229073751786520677847946376690307320058721544571569560742105214540696331950241400237487151263455432715537009095415037542610895047673064653844965729477874592274274486676510128190232811897811703065434013246761829891091375687459641298003083476632946998989407566520619819291071341560204780813884345174460990882867922607126060705456930009582872584393396316445553647567067367717811217559509251638681936275087387380802656563076402107754488172770845781568166175630760561892070666262453138515847884571263130926497445055953687462900842429874024205226766961310101602825779059354659206810176016968913148307822756441049916878930829944240801548948232009832769227419842336656671102510335883968927394229926172147216715572288188380959105080863103696024428070001131881121901249228394022618475015462038526777070666317242389807248562091316479357166732734743324016826754590512009076495954045067904413728603791364384982886980918792740000622278254426881492159989993561161631598189903634670079638422720835657304619228480608578783486578760834973105753733485323177072515040890532757624592393516530914483591740893295650246311701274490848319418104574960917447629361458319238405149941949006492978492057983161612374914080227435931166511665676684052988953258618847014437899996603951860699844747290285837069445748921634970408620963973301404564163641556163114187812029795799606392494780319376586740512821741921351627339277732059773685832985862999842786366894745647567209992832955823708534159891200132746874089417831620911934643244469815453154669714829557937220453953474220340559265346627585013992221127113359610660969417155011803376066362978786152689359766669849988352679409183066546881981123821813115421873433919226335099874189265903593052011198297812985172753211044200391239287067509771567362451475670899865232218100680644352107578365854576497801313789263756493207732129247847600080126168436382004857906393511140658243287583385191435306850304715047821675586663705774930830882558041385088042201609374677918781412142007765323937234894641011118048925445703301714851967308144790448340155455078671408467599955054285961291604959272408405882835631701599458561943875931340163405489189798838841550416164429234105517538397335787165654405724978383436477759231197554600328034169459718671614938765981042617325137583479498973995444799956452488382845806480346178773261483628486690741711418531938465432259265257420017751999051585338284350227630743667379923152772582488372867389039018085768267764770511804281755839375237356631265266353524619744414370077459910988493671806400376760541157208367554844900820597342280465790225215087697316235608661605972302379749815935533872082770456080256104865667458237505614860770270843997418846381695483063142108425339152221728798647947982556528864414339162619918267312861752531682629161582577899568487241533900405652434456326737224711465229430563096280914788300449655629953107333839047402795963901455886022567952814765445285408367223913361853905704723263133882030241236118079956098588054058213997279289613871129999194261469464543223317536474624249269264068729624486336564508082526720798263743460064975579423073020690420347150977960198916088929369029024291474178795983769892467924375149839008694256977951869525841228397637516427959520938468242631924075308654529973658390464975945964276102706868450898702667144135610856328718745238937709912187649509426144328795164683855197486347445973805818181091667706685031058030974647320309781056256255155257749229092404779434362553990033676260901088873686158181670123463876377810386771663647234168386179175036234831372751297240128843752693867754816722353774074296403510479308190027557426799290550045594105882841912281006565610307108149061631492258209471142254019508896526372830186950414567573437153426131453979792680398313625982795447542247428087020484964409048071315516687204995383588889323636654683363709588641602270429798466849307371739323198369633800164192747387556848879509492276042660633404502419745806337182535748033475191446544147985135664631295062337529678430942908782407865089665389712373783696998244684954170120833904167238439812548181453500174759722797363498629810214667899227888111500356101362264942197520002584455866898016516346784663849343911845636531025611323285231899742487355109215646720492088038638402240563547713085875322966216303031880413706553365051329030272114054480564603361534395220071963611190932731901438965809093255554786528800823944148575579126842249009026939606958129394822553684200292407629722334700705839926866608249188883743982160695122006498327699487224303657854302584505528989394976349427642983203339893594910724688927557978044444228720843158512536189375323701610923771987112471137139791396395711092816535318141522366697435858873585643150459495501995898525026300149412557682656009753439019004934882966029425857253684163910659386769743993708998023668302294435598556303608206299587410431232092910639527622851908570686430986618161505291672721617255021871379235272385927176228492379468011478390361434307390974883625782480507534624816068522582974059037867925367368782343559431703271422870123644146771702004465047203166319306939435739743755721992318653248039040790078654578195049068775712074215920899416929612334792842903820729710357391576146081854767566931027931447519104793092662765575527488917206805462723415547191324499140684689244549139641235086589871276584959397618543499031296109903413894565144719566480340898051788173789773658064680786823308730450243241493637838425442621977994323205369011776137184333951235210523432505686340758277509820452758282437607990366701102612798957465897365918455842862279241232577607095350221422272155074951937498729115563360374820492021170465448644767412368296118987669557916194776147938319581285823641738353507584439967647653204642978641291995705158949505663842894191452471585869087942070175341747336767311979045729790506850684585227384566654382128923322752772618796883119385239831408199052731360471822767076426409135815958196792945566494705530103640192562732444763836052714431361935096363952076465323960773188649189367880482322658158657364951659113966448852820746692676052903185371559768935216009512453441476226149477121043393322909272924940419415361858241400147457753527353212580823782479970227523117744445846257653707908421612343765542026077128697389321145785023190434024425545020430694903722722973076517257048226068572270209106440741494513185329239170116505520762927413950332046555599511978385383010456301140701776157969511285177487916030813326856226391656217144800751794952583810531955920537573866087431208288932213817527814098800897684456271868270253854289123214197833341473248518019351209514826538620619789642351025095295100686739807462182562654314243828765811146598611057555581299418912909385460564179159368359347472972445164812082800408056432540090540647488079811719032377479554388215091153763146945818066070636619980102116943045373260292431993838139492080061579797884838027953813538080513587514503844693640781975694460344431745026330595818269421874750395814357352394926083101921527573541747360726760344658740519371522153625091243825980479428759366938489108768384017360976753375816561003441129845154013159246144006832977172041556771213618775870114727463734307046232961055961934058351924638784337978285743641668147337726436457400400486582598015404805126397462261788602641161348901578811891565145858486614143040182610928882260377653217817771083952185668256756355797120815683781647225161965573918245094786640554584861668382954804138216550086963519982987245001346220261854715274895075280792470328130621637715239930415078820945282651009169768182103158192789499589556573512687784904989065427479983393259681397815750197384488515005368914754558905079736353542641239298396886726141033464907820951625280769122900346325020254312122607369723573003551631933252313568413645842782974947567863955153533586232410599604756385016854781636368189062939920674459329362291547084922673320502923422379925095767843539464359975738303368311597011384532256500598342032783003006829198860202825094197852377989904788160199622783911214441361729719816682130670473631105294242914539996307382646233026752528940354318585914735462989362442651828524103522258044618371253970129744464448619875882623187740873757291498305061116919920057730065540513682644166452852824042935956294919003785478993906159198477790600235274911532295678685164658736587570374643214638228876505611333121500038268732631561541502982929863029212038360037426084699757977349179560511512823636873540740643364127960056558722332101300128669703090075949833284915303008054084094611111327456811392225137894543711403046611019937281539025777157331881069081796282320187899949973075685323462755106865891247611527952356992205860953939714817955436681568096930372676614857674295319314182516737395408793069296139118424097511352859254125133450220032219927716935889428376977275594666952006329818591599782807452123604542191429112072942266249792613760561529603998744784815373563505728509822978007387046528357275394099894282664914639877368703791676623401364824820433017622484364556007071876560264627142896984240236420879702383679855999358435021984999526972025982608325370968590075158342891580572841094822423887406663760365087134827474371577976335754544146470673965700196576830660171182477303444310972221683524048217241066044115116219549804272323459176668130006262046460396432679116523678303007990644134802583539241730366984851186516263736763554708893442252422225588336550989386638301461559078993596539028762454707687205757518331119945004481063207829039964624424815433616354211240782550815020907720395850801480866467692109523174964753565927026664099030340963865026742560620223283187429042484963460928105792537341312915365120832589290632898466378099137773455001151221961984104833589832715988084577881190609054249983723054251846243535269385464449589932706779737052523680228140627196456746325916176748745298993586643444181461952660611414254825307080333737125739405231087472355097184045823403748278075029133173364674879656827871997074771168535596158025096711785938946184101977423432394624815050618814450439360436710886234730773204045718983097184082006754906783741834170486869943458903922127006243763520293490973462877598205126407399105954530865505524621339803077568805066591264346910456692382444988853129483078512056023608911063449930137822733401914670524799523727920087067872176230362895075573300326706963733960023618342435156198420045045878969897896464977295604030660437883905522813196672782353283183247766558378656608653845203499391861062926441039760237289658870636518705088613897513135072277453389177360213457226756765064977497886795770591256157182588595880085126401393983857713225090439497093372577999647291938460261093330282037477154679377151490396942272315122987541237407939110197149023719278864043805361953489280498994349609451625907401522029578505137400835357145504738850103715949272766605116684904912785223800276771386700557775423902388919585974282795792032800783679676881941055130039041529155696423942228697089961514486021149875262205455665285911483659168192754706740751691851665838019610571728246058632764216818680299372542834031109014444281017214235363564338905148605997870373568776065439021215035774471405950138530165601753277832545823901024037052644610338974420409538214683854465686660739581343162844925994668055670301808375781742090693207478574785778896945529227804067781956356196467494075589678093483391847016465031664607627742403071860923582475044308979735196686513854385946713993832966903954539147555114911775109155164198616597603926090456228235899322412747241788575477640443125726254602082072166265354379739325590810163275954790619046306308631175399166595784705851213938867408104086399318892829431313002634645206099149953396588473442871825694576851620775328874997775546744625625775470804599307248230472181839412685306188969217236001129296502394616778978655292622638537098986746338509302666639770571438019906276677804392985637406200242778677088286000083223363548818139557310771721532649039699440276993788129180289718402236375240093528419893206207541435902139498201460704080528090027307005246010946178775721092097627785840418411038285156491859633868756720991940004221143692446257819363955448190654024652933125789113519744795727641342969852158226822998368980518635521009046450797029494077465736227888562736387757476404620394088257542226721338091700067067299997757318124010890900965525215358356068191862348764240027123384304964674979514872207039867386133986910311781660576358337093779485175085981537362792190126961789028783285338649525760709316620384925246152753870464227482797758601163999562807906394646800552858024558805465767151072736232051329763911737991474745098154307114498504482964801807777346170429103523566795507342703037317579923086948902201491690166503940290197620478895226329292479118248548670739380195825741780469020072332866290242549226110543088409613218816796613291294333892550294426393982854854685654023246625639325191114859354078504060792495057040670620418241907930051038023940372979069398781145449861446190544966891773357745513660634653076213275026761609898199884064763204005590666665958034940950617503080394709157010122989225420428449584337674355806432498939771765039395930265172801683807859876506123855749321888313209489054508992005021039607540245156485269883590846199794565132157930649789989098318169237927804902266826140404617807534747563643734927592468680786433686747672370511849107462748091492982703066984700248143261215891887089458318277229347070052594212542677405383297895265517251280134273487222887334087162615141708745560935113403538342356211465014693054932042844888813114416648517944605702143481241212478978687194027722927070394188558975507638181770757185700879356916662033518801361111136644411016860057420799046906159190212300699910261176849703985359040800000998585642965164345876403468427528160360365322275590252471635676143959277356055835151669435567388556010867281672646007230669432168978698414527807917990080887946914858502654715924926156167108536979995250598063479364561660965911048719472977767823120452230750375895868378999714635190645590540725983393944733343075744751624512157192034074106854052573844522982491786402971157519512343601760629013688128787406622671253223235014778919594035288948333491005171889622732925324516845340818110072395314094617501778319870280781541566308214704795229242365907900421081365548284008811137437463036465646524505682874529317328792753826340229873884126953205159744973048122421918168862953890720366862383684134276705095074530884276098702196619933289297893782485564069234125756774661337666383213378934421194307259534429950571875043547810926480523662087714214206398496821148151494404240798873519419385837953307347582140409222976597606404413138796070883678082270071622904596592518838777315072238915723117223604517506077181389683158404299332880999978887852932587000328428127813045426343277073656527622394772040848303923093356986233437257498012328716015354888241542204868571828929876949042054351490175885447427973979154086169637383581778311605096947160528747029259343685986253595446340241363272052638681074614519606400403482281080010184089108876785092305242680422953206140993387515545639391591901313061593808414161746041556643227815259848051639980864963089518491690697622893600960083958011193158581459197068551809338203206056126930563148640864694080074143055522982040434694270404422328371944973570358349562228720016873975712819843844045557946845927670542054210600834050523584027273437567305017191233737276279847014185834748106040978734495063616463241922308951494049395675051711059220462617064475767381682628072470579305872694906281551972095664856705034876011506581473904038285925546515702449661533432558713138536592514260524691652628663847420632258053734892549869413299648405696510799468342838744247839778460007860934846505712346584481267776685745746945942695760885514937312057667946633615028312913284792907553809093969990827461445877725128259614294469118934997258119400808259399743828085854038088488823834896404966189240669802508437943404265160682262650263988975086030581196704515205657128907380147743931622021770626978034891579483736933194530299476019198148816604157406445739003684754887750768905643117244156571965312991894937908955992285483468719576055647576641639430566209385950438486278516377486624650698086653967217464991038920067544513564421957964992541730809675227058132757526547702519532931306562954879457504805140483920357732278571731375654590110394951081089690241477307268368643249426493063088626083288331144181893588552341643628860099319932883768837366240261024665127663853605321530990511351057301583127576648549274755014974210068286188954606830299111034303108638766592436194035981314760338774827045026567099616271655755392761975492271025464857800156769495515245199726511415614124519684309204740734030952337574380331528735434107315036246394502828858036086915077385862652414038199567349059554681585237142149265506543550366454053012811394106829869725806388289840402117051430136506749007238662103234688602911948101296229091632431929728224647319636579946597060261040976864150186042775298225176061264964817615752479859231543924382947315871105533962830874539517337590496553886448862843877955617897502346871450824675836395071839349186586746083031494836380783787354140010089213332032656073894934235027290225004325447882466888349008019925715411473871361445089104938065784477261091242366791454181543794500356364774915350985979578856312612301487210260307009339519556825798929608866086776194012890320532618875112644202746938806220444560444255331406077767004628798761662692563948758340726515774566580312002474045058584730382945876480953436803070240313786596217993896855431567774502556387180463504601018337130787214484318098584737408806665058535158157525096601701006452720725461140154330278243668130217013733903656366226585734250003015669050270163209144300485735946842112403326616353479613166088317706707973772525771779780585117386352519758148772258830692607243454127543969553647175127289159003816074035212238510514279076135317794358428582487171160095589145269404875330713274407256623466039584312091246143817255026107659384875692770085430282948705351536521341160340662215422782561935034508192602220549862145890311731050737741800692961247715565081134505034202725785083775702425327256922294149908930241856695410309679841348359531992923830976799586243788943264416408993531233764818564502880846270898054970441753071536199400709486056054087847323764018641686706674168913394691724560230693265229072197628739111161851113737683677558267225402193640703423115175638561514349896160667187031193617622718005716280559846088068856639182939924062280200947499858373777692720243539263824722227008386730205653150938080289712621965254591622276651852641284134922994129230270346052929891750903602683919416558244016707224692146794612085843421174748747598653514933514145816629675988140602429205469209278741164937927462865497693159590839907765076742555773220968353202183257897089297314372996769059944173839383883471733249502293639433441085066606275954231765953101051506234142811673939031606512871422369426780362688566593727273576203303923180128658794946909632670410301617010247798121218408648419669461163466701410782953475971636977837657592940443913574980612854031633692448195166201118580815215960267324475121963366219354423551203309814655670363446671318361872486292096408068558726332856585577002349092999620078295261145181823423296420656899535454381297922126781846987768736237603049391621257402788404823938334408483634889987617463957419365951312833349030336690534484168162518647154726742820949488477781601450935424776060118535940762806674736669013636282178412016616155010824850596606364068907979223478922329003396376610328101818201716323930133740349804672130986789505121987308532934160269385992522985468156928523159716360755867695769350218300760957422580878138755485399805954317384211386578171691430698196711348617133861183348826343064892136044383399636465664394668658730847472533897249989242606106698797624584108240206899747893580712649949262852468663523291202533905555002721686434683280015597581640347353278844007306465027480602662484459370170752406305917063077723500979192508802997617723846265941411338373529293832523870467820561320975782367600189094777583808053799099798773771841346463181103678177420955740284130782465068704410336709570327191482025403105950482276023324694806895343776930280611839085352912861214664310952788570177200208605734633552686798250214183417361312800146198723529068843586188931493353568061147598358799322095398415508082488621029756804024604641819062007231638437535404710003268721908968783971042135909826205289630113961282739460661047000950991282422262606176645250503116679190717328193608962913296318935965800402234916006633532487227278243213238726096790464913386219635463208730388626701275137998433949906946863774060887178807186104977544939951114683751559872592600625107473760142490718007824959929442838247452187223501374929732247555899481409682598149246856519493025469408790766877619583083704259213721025814485315183539875704732298358521380264270501627747758218809336402535144187164656252865953573811157495694235048055975319291321222905626653407017170974685815935458766425726471350537969154524191934815871285467036779978394974901213343990387820918421820003310116669835883405975979733779630979344834984261511353994735688096749788856753055485072358921973427805579572172434204107727654832301542971841620152426239150443845956407746686878854820005349677479157675436196758019140819826491557957886798018194377987592798475745249265324545626861855566691567775350449997246885130960613158294681579678628489292364236636976418596162412993297880257432526671032481506649359871904712954986326456724828570686959157252700576274982123910679053228969931599773712799637876463818318160770614003183651290408011477096201879539901654522487335861410287887956899700648815776668960432775096185038873849370130860042839324811234116338203107880920722040364654183776856102752787367595668048439750256760453267253716366972976899898882589220856274628133519148820432069225467059099112749754660686745204276915674204782150904468614789245369357840772902213119097543931285725232340268695965455334155443985193290124745569308690485729834911584532939960025299534359263717517428317730813219995221264254403373061856973802243816909929947921747018768683806119997689276970786382402240668208451338840650097317017561084098730202366898710823589456468386698472436778227547825268780918310448629427591822833059848267102641117648850366487496413214767207329257999366725888461318627190225155287705480351394597574470931033681910852608466594720497191530002943395109901046027351590694031606440411566186787059501828777033087960771805809384153710907611938077601792650398247960206420837683675125227849273663247899854955918555497392565930170570720171043340683511256322946244166484883994515295498530785225491939389103103384254948099301002714745836848302746820585270110129029153399605567670346555389629285786675914518321562860599328626585204177989477642570577640752878845072779945046118181505981419958495187473560256530839524178334848223633907902414827505166462581325456835366792579909928787864048423644255059834956734071896938674385933393545577764613812326288845450589536932227759908115986465815549155854774360367209079594487737009296486992605172726644504043212034771249676804562052174959835735931675006236160095309830570128566720498067385961338380736735093486648695767510115680172463558858708771679708321827334793887695368631134829256073307591789197927877820772613413805068085515640587657258708602949987169015486809981920928606981722284205166778801084527830621323000770550661623814181456957897427661789209011707232953937795973483347381067438796149024048187474990486272515802124411469376856860439369590099858078237249174685961964670457998397405570705008350632044412599990597145419689418275454532151878698555416544362725042741190949569611100447150388282965829410513173373730564561618353311857894390594209705653647140367739632939015759666831306664939669484496242893243357309936937899012627202126041058056376583083270276250863679690257703837286097545753598085857908160373272147315218027671554080521619879129802010978850744415857743717054764209009329883459217721311511215867150088497352088301495644001923141693513600059228178406309584966930683203935338994701333343426115427979771910498729478766698223756510077402239603703821252372227505266294390405203291096683716475064971761622163563437777390844712414584119806396260392974521862249883643198483201831594524680030050996059085215944519931636243363423921570718916846608007995918093562189839441594460631512170228425153977351665206786589046538654333432013698041658866372842833645177284705823726308358658779650570916673372721488986423153402189060032394857659976882143204284172496174295271065488502373657203803688197396656375767154595319206876075382542068899381033334579038796146950083502181931250140982433647617990895144080879923363691786719582417429869811934566982614447588039365707238345889853366739272230672420822823587986467687365936760608481787745501052907357156594494860571516652167465805516991514655862120473593672577874387278908325040237208209343524313959311082221049705601487105763772239542942478491527745404263657232919355154799571037574012915762149720757493809208520784014526654968568573888638232412822897891751067821367414234778192971652170987875618721605417697403385128849277409518751969017132563550654350814365957608661327728943140974072144908209694916066385240593382766124376019682009917968194979831017611707527066781525508915222881920203479770188399420603388924151464579115976663513956332252633219983356188494456123903476278106434791482271259301804326213066360234098758327124468636513210045299813277917754802865017715565274654417328605176969032628972580884436212185053351291998858814093903282107724291287487601779812151758275090518887654268057183555595496579818611005233390954248360818328831529336720447236987673749985362093021372077470066154918603398900521315178842306667444138366247267275633238897618288112439304726191912822240500472572486462974101560192466500693032507375958747041469614743437260431885999139459091463964819892610807032854069351308323685362541422440081267649118461854030587943100647523955337889731466446212285719707018602630232285931186617908682120162915920078918105944092517574034079930890523724512277693958956273474005970533723604921428778433994946800886822748567533312433881538530508417796703285886530658142193710344201231267318472903483217726567786074301621082584538485410651306164789941398605599795363609480819994289592079309028299433795391237799808229894425713725540947599569974227741406174658219325186813422380481752595304998786916159882254700986930734597257673807748038055448506183869941956216432407327231593267393367104361974904085526098187908341526486400011346709451175590157976642510001660846080712661040840668906871057687700192647222922860103208245646491226441883786878595043475766981007829002724044668079197737356164080570550748688258695827174737127425451262902648750460028267978854327837447180007357955896232427190541609428720197248503733148121975057791312155526552311493871526688168675534013932443715056245268564351541384465643331570035061035081625503308077206881684261514189128875217270148206164816741710943416022788515931625746733674829762608781735049676242924121996082854319584190264491954486420364329473542677267951405242815313052109792705863113102414132891469990269454492767138761806370384928725595809210555286272773621951639583708733596232039280695797813141171651289545087159373437517873001458420621798971597646922126360645158500866619926831628247251422411608809411595669019805738003883266318266818470388938835180809354767924345985666007225258529862508368878508038356258342779306291561513339417327829594768123219598704543693163231014066408928683278908105317446889308227117697189600110394710081266382893380264557804284145244503665613483013217699857433658360680256852893280725835464576557896391066120709420828602836866214684721443807159282797463058368653105005377994550261438179538511111378822665610833569285775795311958930037116216994404978127932549013159554760021774511004440083913260009706505368964657518725281333003184736496341662643109938912611591592148855443872327748557118836635692284722774553147196076751259917377195065640302955213914450792678492666782918965420280700070152269287680509662122677765925385373961394389914987550971803554493438656121127072262321159596281442165980471561370157954629908903725625622313419724448822514204481762378246121142234757413801479970743906830846512635627667402140043482961896241259453064892110158237870994796858532244162268926681200173643847588200537665790397287945041520808353355990910113887021706352431874763800880826996318457929494625459506784205734633324071653283353528239363733911510918235921352306028854361658372292253571715657549425746709130653331252535038485053061276153987442313732549283505070849606864559716329169908955487186625273912775007776795378548583504248367026207270201866491486079176282354923738809927608133038003843728809993641001771610759167111068300319858312589900574582498495630045052387768711601479456482722759190532514847294065805258056829151581377123041502602463300861051878202739082641782138408125471803751938178036978167338740730352389429626736589445758083450097287025427226330478462496030333363897525692785273324609264694708450082169539517758377986789710020122448561982174746346026597800296032748218349159020290980435161130901159430691458032183505315016863914679799508938720018944841082769645269795255166053504866656062761818843241622512913737192783404649209813382090973299449403179568754998115873698727262292328551047775407841884753570800838547268007236085927952384620927551830727650927029900443340119771293214170887373243456496076218051042165839988351169714989847285760250291589941309026055129479897231463346496719000974417943480364945000890521129066960981628098291790607970047687457951059007092776913731225615224733444915807507295722786386907924380992604645930332037632799158651468692898964839498465564538700991356415266536996476893098223643489191619808228656486807197212277895979222789204894688436832883174299747052074988636259629177648771404166674596458694328028727802574230171499840480345114954792447803572604433632318179939593301267594247085706895006970159961011658954576241846902820308239590401127148348455637371149633773387315393529445642935357252362444916989150885220196031749295366210657104694769734398583418961104182221357637811631797546327427128134946261154115863056333733266813657710127570781822086878848367882074352056353031834519003967827999791472023107988017748942012385843250010554117409338089595586873569885530199456165542576359710246548182282812739999834387501352189210694436384289234926296461379770104053768789189160832487116464986390563759184478924244416821281630869290719719574030719787976958086166152341514933177902287477580805028674304541329570529758907694086925402346059128431670031257537359538823245974388227128777445065494530474509760736389944536917816541880259209231059887709839084450519638223524406662339298067843730074428234056381364590745790572843546538853547760387961557196739201323864884504974005523302388216614349583868418985830408909877307840998924713611461939644426854902835680805874117872253505939655958273255083510641708787487392543994561182305692812431129668014290811166626455195260255023341141276188441132122596471658472124259770142976347641024490308020927660891604278732845194921785184176976115789585747639194996336019334906082531225824766652696879353166608776392916214391957200951799366657859235705967124853654563126323236069931699259484633425177421147433918105774399271838042191496134753625078204727941260690479257222248033470812629493401708191675310143888927715197464592691184449745985426183648840389184440206242937197777344506297505306581900573416508397701297044869905618839939283708470521672622566184057316076061904059387257832440558362386554523068823402919957513931339605653880176135332055972185643912480546865185852207238923839334499278473349122186068185703342173342755318857719646977611022278010022966528055934155714626031752768693517184001984124001115186862854548837654683548339146799365496150411957945716753505577266520650912289748781524510241669671769640807574744824460055402530927212332000779478887222632578742152910902246063150318141126877111755508747951324746002887948396701505976086492533428075498624179960266241971539747724283680952593460881077969032197748302810745356198555561255884737704395537933553206868774199043662088932637484524726887879091945183659555897607341836656139167435011350622669554568628047709643841086861968412318787731451458268008014832576400112312405606693956004133023609935109918628442878077943191509943081462363554859753631744560768450217897201182392257643394645920961321734160105874743034427692394987702722040884716809971772696531875676522240485088446373356503103398457236034818915940093900578022159380950503276557018150036701381931251809226605237747635015592529047345893470332807214601625697396298524194116554746769984972562062748707343611046908175585003994297888379499209831274418075432709421020861605181240282510949185762875659284351478403710132657551413942186070069665601684381233032466827044390888655551325035929190384384299093431372388220206702510359012272778575404373562180173272054236777973137707805662909146685319274787699276999642477439451221929888691364557569992425866338160130106326078631672374296610960288695248467322621692021320065821177805449228411037708201882330517022427535249919556455058320359688938229958131226021570781415698160061725024548653824789521364965501054475417370532254928201470564610628570058074297117272842163261988702726771446116673854187252777200201432354104733739571449796731399352516349643894313169496483557660592472353202442910805024838227603770440424734425701328585007585660266789463955814747689869660448617718073140277561112543061447687528498271214206609489304439696228819438150938481075443831175840934990153398046076786038151120244441758223991218483510993278136644422837106584942794909782986405743408500774808685091182101144626914489388949733665050870504905816984294625654821955803125534056958985499821591325569406798681637404298524368855532734646845613062070720165653936491567417723616380744301390352342160951944821712295045843571672473196742946930633569821651273051127543663880038695301420715765619505884380823591823745706726286775301463719592422697962925243720391014223816348989946391401495108998987930901170221805779178832741229211650413885350947042512869080467919860964771010894176413412423785993868820022970498744140968485113414085374175059610785346877091027482044842193800882067597251174192996299936713097552929449067197599037798863097450894325196907743021816350680974241596680934473558525334276109171726742001653425934754432907811835035892926044117242710994628490073342827138349091890108852224071525705897961541675541930557615356838527731484765326579814919423611827765295820489187355481149648799795284314923326258919439511564816103502952705208807351789985773791874946550381069660249731295919256186034164225768106723435902357096901697369564334746365847098624223335968945195181489771328349909390561420630307637995834368586822440148648373749409138411575818144748276540568505522272701212947453517715045520566735630411993961770842159676575244504687213122811174380024103812241742681961713059430437333017491969626948893591974913781061862902687668442655634300683502939571552384201879277268745946302841821647836067518999665600783513469096738309867498671962223017186664954516052255177068319331180628312001877974082311202758676238405699647783175826479278063655630175807126506819321800290135876569823173039785521262852327424057319477650539584156055183640390153173255627821061280127011232576152594457373304642105751128028381625493934230140056410100779820017414359226228921008859663651260635070986529898127951562478047415368321959025252940214456726847885159440616788177354793594463437186822147473637493775607996001508581981361311532520721482810277560828630099045346853351925577009534239929702610059504904633668723504924052124903844822152192203073475900558271665760665431833453842976584393080971715638073763133594445776503865515017592140083719538472951487142818879127569770971451709600192504609812064888117528862304442394650884034555662942741770966543561400552561435130769785781802857909828921449788613203670825265278944854502109071889335194188967996194630832034332431113692423118498061679639264390338645548883470431739157267682998515775604494686964739435630335593035365660104797679816957314505908074860898330838736073477322289147077793869199196683332113153714493705372383960458458647769805999211442496163770881691383062823720723900740212866529901499325017692757943856931024663178979641863023422810313902175127181956785837633991658442328763875339970704861850127172095239797908035989266089312631408650006046130635352422304268370390169009002127024478236325229812024029867590766524824907206606009975945712202944725848412079587925725506751437315238650221371058019241210380674960282259203191646715527218360849048953776731886588213238673855205215537318423938209835481008679795307670974818454081707078679439939124180396425142100396672583873724696005874086303670262625528909411611008664477572614006093352773725191344379867796587968447655558393356908296367588791009046296081325227116746199701777445785031920432481892169527843062014891705655322712147760253342836943336105349142337406441190478236812925652283101560641436541062380189035666956839072168010654375423729367602010828660530299664344134794304705632008727149381823098706724401359949258498001603103846715244476595717989333749886738097368342298049443126098694067135205449908927324676804734382486263929908791053061835324517436801601595735518829179064330217388260361714956451349216586981735449338913233571355415004499027186721627371586963246131212169825710916520712058650413331130486523044727009354924865948122556571558092656821447186455611991619013727031052977602044638991042384403690648589638100389872920981709760607877385741690851331461217466114312493057194123627781056313125956197431401848197639447202699882734348148917644006029697531746557100669546099298708780631849957691243669136189759450186653666400386551744359007557221690077985806033512235629111768301738461885874074122094360812013475552769075444224838249802594022795266558007429638850448875901763265612431343035766454144202632574930829450326307011281322521589641975789134358036873136117992293322487765299441045817507985453652930733921323832652075834649016652688424753906042941879683995285920592313777703420860280768585042115468138951610142866207051456344258000301602352587363930362660091293114762787569624850059880476705569089466361773358267552275537658109447930550737589737059910692897912720979020037969056073173603378041097213837135663087199471749464803227341584040461241183269557258028271343815677802354210092861966112408732615242427645912778235403353284013614206784548191652347871868134913705574492141873539401558943810194131418553954454998996982887346386767500685790601104464781458780913021183958727050399688882367405213064534211945921089028931125192213246527178795324511317438063781264583903385411136725218776997360471630228593955361259086230476992948622048056059662073380227358068912418515141154521690062041188076092188283458483024868476269564660348007133289904116958823119740147032141036765870276815665093492259097699762503084080346571514598097874522269752948150888590792018914372913328487641373556561477767242680172056405756873322871933108200895262209801858574055977762808149868813164526693281897751743876754702897714136701406077693713049437701444171050774333674866512041904504876507569840309319065373648940929595699493888522151542598772553565040774954953699594048043358901985725953872346549844749807691648493932940141094904192323309762652344247344907679360399016209445240327116391458054216492822794775748707050928448370229168069384743584108354334537381967439070184538623952111710199137495110813323473444713363152795190566808302206715093083413355096565769111442841126876765091828797371311425692879103121652592139752430583634671319994466156026250232911670251525868153835148908176958784289750790286818085383609121139471028430731798053705330664041561767903232616236666289529565686144645507648055298655599418706351705320992007548305347800796798127414226255638690513414845272765816945553633640541504171264856642250757557898464496076363735371876610700851043491258667272202715130145291951022014290691806826912185463787011903807287184942069994859008720575817297454617958008070918934746932092551899888996802340478342444060831517907303532372951946878451265812411474152441986234548167407020299234439332166665860670595243469063739894097718127999457059852376077133975257689923043663887686854484400874574034525227910393699117652687170086298176454957027853647870865237269826950498821669238567678007942981106569422402455224630221276824197946735508799513013181034912366694207131633289758712196079552427250652135933975771898313051632699324566297281284073619298975033860422038134580373449675996449811482007382410862869274232060682791997156924028283796714508506290469629498554302050689508088429348177503939390910107108198510294555540395713838288926233432522410869593214249378735637278118781511189502762163759578360116528002865767471539703333909958954443115137480026347053037688821164621446579619487869502202371011480689842034361652552563102418916323513043161367328029020323116797784217274585648675032659401965642158246174361513083684046857740905561174047231360198540504870066737425595632761890491895009576613923581626340052626614870370320444833475809296650951604345022554260866632627134671778258996949266836709752676092977340426270038390772840217535924855587438446650779840947526760372337105182318569868575243792614648284635263568710017539944211492627369793326369280651691059122918343200613224041557775917983903829336386695811845346982197208141002128692609654368309482629330602072274250124746318579480210832168378803709017899680164855455910112234565134842066525770602383890265768885466555515931758177878117035129764248987372124416414737223938516379219746902066201731371268026411405233692044001365177536006925892646934469988775428868790972898367053864905571417985904434965804585279276143368317635008919989692317937685054235585676273149998419659713185194099198712507336746299607639166063768121002969706168400101714683128415527771427089554102635223692741954680572694674952126489848137551169860120551038816281757156326243810398365500333505688124214659562997288436306841049199962450546602666737583057522595943384234279687832180864577379838556299202230122843497552034012520330819483586322371176728549916828457768677356034644453967637387332538565385125487247648163468452339338713548673481978770058864787612744170823114229451860451702562687410408202180659246991139917303691679537676405278170705708154638607835001629246974733023776030703634141865756360936677178830831238881031925919883369842093863864001561940049110246401290032063853593581780173374151898008817547099760069555642489653449261781924413928627839811807877519437023418453398225088669286257816383332432530116756615328065628132023970291294772734535642769642252072099132394163483869214207006497786131944579431581676821300642651950769117930699003377686531625780860755679616891599930510223427300739606415459188780256685296667240124068839173769672235696512774581834338099033614190007969220727513733601777312824505743261460110573336693200183352168553354659435299576232945463948046467708612843821246971685099954238756882283135467115326480259799483933108003153639101015546175230018447713966170838985568208031631981188775726799810461089541889690760768999896241393182242000555631013382545704338193622864520686898765206069529130751260434222703768932638511408093697769109148846235252788845027453184498547856565304542198171361772318790735923341151602373075408327959695496615324877195154314262959807063761564299606635544462352932842052410631397777144452259204579028431462769283301670732970941156096627852337192875617998926837905884578300902626688540726580414963129417814911417927647852827720273535435822970739819882669598382006835384370559443986510203732243929073924347286923671909445520150411242093372435449047375740142514361093603984792346742029163791700003935406869817899923148592526899869515889330351728279299064157009863114756323107731500135644983239551365626122151986851707268964637302973617936004045580633948339101318776446465691765780032243168949710719991209650241214748665121481041564777555837168200291634268681723668597791566904020279083564171723161101757010299338993071467259644827696252003781902014663707635851096777785817014319768734361999704535993352826822150173381040645584035725694438359145693989960095761707729675760558509217933458967078703787853403155512029501854947030324055077221661689797691623784257417793027708027724288783426112269438909959320215512561931589709477130908217034063978151107322718764775412428540661711869607046055344490857858747825609143634634227561381174598266471677753778251801237296975107193246352571358877046483676193597993478221181564582742031139397222533099361175742731229323682224864799707082406659583484808014060578814176678945673073975584716967213270502409957955767136448702579393281764019605426109169011247753470634605377917677657980624626435947334575181167396904551356867097650997190775596658519837356787645654538635863540266004811329361717778436455449966090708778934706689547113656726875628999624543443086728019531219729040615600224951542087276058126024313516925136368677786170753636603770651570969222312499582257430563289967553196077758267259293963093440189987836595806643327931897984219268083493132606235826802063950125035512025338724461110070061433523462969211522848269429030595248046864554722330514865544961194550440161935122584063059201679692248959049592340413576836817712875450161527821839477501832107518075950108693307287216537831565669214243766366881887050753521087485357235842748848283897239182268582016106659481204558923690672865943627629395802347537617835082764729903185507282638497379954902200166856293959428938411759730687589849687290860615263106996524298556499233059348273087864926992840671191029808432836291580445369754348110663995776223919796852290918608966164901241575701708270910674568806149792557880361975023677056777594009914552850156739867952531193623938129070687653321342161034485066288374561732166516725182260647918676740715564302756090419903414400262805725927348431257583305967019357762788528276543949297994448804451399052761567322106674670396418941910950667998414565480133130196416709669213004897269678962336728773590299776668080426289400303406214880657228593702171346879164125678004703714160228964178634930240679885906695391941080668417483702880821279570476199169513183178774148268737404784791909368966673709662963146184205284747923496349755867112359755969775668884711770687872761517448748779155465785981697928047718037023169731014764655139428143129352798347527694116082520645958065408289221639829446417779470234765568423188017422773316002108875346496636624653069848163787014012836103903721020050478252240373050209535471222905960148300922284995871412974473700935062826651141519456833803470350505783480457132810419447728526427070072085996453144039742297448380064996912355610455278439725177653347168477568352900864842074825412136831766334362462294732895037157237915032081380431259381001721088675239355814298200303678360052312709394070302772541762601021416819819822176057120131304240325732909607745201059230923585383971528835257949669339900760799175448180348306369937701051415474600667275241385936029539590587372169508305602578430656760488872853496504192700320924581720949785075815200109588143075827891592861471081398715154912038269464057148507384824808388580094498393658564266169585400510565096644800647801325943569072968350311994586235525543191722109037524485257588953334403558240672010656493098340634648455554640225980449114553715365238778528320160007128049160765423541095069919807134185238557087039598178142162931751882085529436556547243056340210546253610254506865199274774288661107671793824179178669796004964790235016245706818402793401626169384732718873321437748537054671603230068595212492831550819724408719283245250433985509364469559950508963523928750934998370080370299517548946248745337402550907166469320927887619506120979962271495080338712976021202041166274009953498338246508959933001044248703017607143009658078786942207399082903447813599066114793180431862253608538695002588146455629490566433727230995430997653331553763053324041086064298459482702643318093570806341932725146679219214905559096870758533359594693918575900176604647477082781728369391404657840549678459991636073961805225340883120973187463179347118246760709047538956760001998158384393008000897177870724931246994903075708259086860053430801708775469557772986550375175967010336305339937333352293142131531778925492051563098637431554099303189126279976302749674156931644801284881280008606438064160853422896618654053690627347658763748545233503411356275255268756418079052837178454659175758077105772154537100083112828424595337542095061498002646765501328803557946111544372589582493470831939510282132150733944131374387125627553423333620145239218934219782066178419706989638911481382642465193086193680085092846990827498383168093660072320106058207142862244463282388067809044540745242851437510413900759412782715871070225320259349916070499093536876825144776998429771750375158660885371211357116925446514364172836202438143698389060182532379820311797230666878913008864037614275009987642736664222735443379480490628644597875332235340084595846829578159840273506258736675274787913025019396418878105268737530039276803345723241427440240325159552087472187798429138489169456492540648820343506466371093741779525539172316831732999223761037545519968355867755124708611699269712901052540382838256333434860288985858671902235455340355084848709972896778536066519270078815817156992868771540526430391862417227671431480263397502726377729078465833371942829004063088758338126743339320550202737413120244332976455253159012843200612600147579611721206895235024298398717724095405385593921184092448906086277628820499809066436155650005238234559405171884142605839115538024980061484386303204557842691705052908388201295220724214915587048097489233952856290074377733352057543917147346951521484459191722041552008636124117642108198576778323982070998134834239366805010273015824073478862559851833655033398203872281874373291340848203458439500319605209839184551281975534239196705689459184870927969135608013824419289232327945692284220422164999042813872516084522379840669791106279079840787688726490086660610869192632787667302703608421892253104350228613787029180551205333044919916599323154988486933037575411316499237819646366883478473974454614358422481257675940923429709995798536028764247300761697632319287528583050773743901294916834692569278217259414070741472920650050560033122583960059426527482273650885775554322464172267459789508052716531511190522107725394616724379699219937850750758285056219785961063402162102743857045317055583756565182988717953365142960834591308384197873944239587328790301703562374011968060857029176550761878987073011080132898078386051523624375148045303159929698844497327098229552879238165149412052339783237191755238277950476987428485306614338976019572187215059763283717312760838963949471215884651067559970770757432341639134221381302886959247758921265893004088503004733685967422025631566933506845836196843888460022429290687177924683599741916872583406404371907203605203107332677394382000766969097689505126941601264446368146059304505713172856280765554940858199335554960592570488061325214609693031598279241181652359949683077447676083380802526063725862529700869414779416593460841717136846715417402099636166976453716817225781451827513014141396953821908110594487739176556303327215690641619241574006242219114523659171558086790274683426526797444916765770243761210524816594454150075222622256980426286108231525028899467717831993898710172880244174765622539466850793283795870665311704916662612497716568396246728128875537796660256184360357290104490470587898045426552662160232816464640967011436621252628673039842886436085882977821878004071929425323684436144340249403845317144646950478994651639029896755311193962138838650672678692834292269428433182068200162891984304035769771416513768329645298113344730861046165752823019297710275441324006081773359199349536998427060543152857726386794180012530484899421637369069336833179569506587281472985546145479871497335815563890948392092914821990629275398271367662346921777573107849279284402227782155571344260037857361679323915948777566093955812086424245915035302512271434535504121622176529884322730972493963493945361784069437588567601873296090227576730034395773838021438201490736355695682669545399817644302754157027168513365557801738321816377409105257354619462459767505672586332738825819589023769969118871562659797637023823531107010033012371334521303674728947994430899991890711618937159609438327759797537347901429036243496232327150612261305167358473301862434143832911889759334313476245154513876726163222167661167480786584816312434302187800241062930201688502840067120380471635958036660694896057568022523512421964424958824214886254829994669452753279527913636851594846898253424846549542940619046584237833461788554446369304158719493929274251532647711714325156300675068455033617116302422212340685025713746335172732639269075543368557065010522975732185220490823233078114321795692088394664830152235040930004645934846770372359128617278081439725365145734654380661318670487748197332463889108080601253654572485195356459411962333738305443329054033412251489889287017265296169940286934250980067135173158280358394642108814221137043626971335342749812145811890647368868949036143192059751592521186291444385066204537771749663490450020216956852364908248068506130526937692812553857344748229812721015468148466174716991153746751568754998604182682567845872801702252864253812682115922428618001572088876312823123679040539800385392957339016420104512011671357034726867052816463601964759068019309507324763824191058662531030989326882936794572398883233372989227433288140375218878042734667970780575577596162487362625371547566637292678326043891239406146733206248465348953489060946759957926010167869357531094525653056206176305449315205677566104160378776666954537700406806170139819541983280271735392504937275032597351645478568871502141293614193873864677183194145480249055245048582569566117407176241067475937303498173939074127848593291486241014671556667545928928612504855498254546061372656550608495239795367047770895742747633960089018326020347487896035578993555890311699621421990651074848507331462082575902748901579647230060337116749216545208328872485707102201469564208662097158316344762298358864783800697635286464298878207909229549710972207927233503261268694995208480674924628949540614119097074988462089999910423669241765767179099557178930580047414947158444447841663632126122743162090331072043520868745690168557450759450873049381620006307961454090495140597212456248692607913618215670548842593966443890774204218635596732294015970786817640151415360722129018566586422246571551969666205518865329666071662260396029317185294984454774870439577372632615704920607752904319490659979219153936798140692080182995900101677303120766510909999894909729651321561949582932141615024692382543786404767120925136574946084103676226321580720904895587243293332023266887138995155874595570063218417944613777565491177096733906938793900365151984381043465075332425173088708589950985920080678629174156950780921992993755959509522590828345592150905039472941136740728931681195771876057471978875450988984805645012713617834090026129603577590091831123441572433682537306726285556520225872934199895848108892654293334364537176432483164425913500358257182776315537356706126164951187394209969471073072061541104559027836992814773207397624943352747041813923715241618507553569176143796451898636777685503223559407478672657980597559788275753220501034223954736886000021302044544660630441821842443942789220093578715938255770376810327661947548353476725089781917426828745296774838059582330374853446089002273632930062190125185780854530620239411116297899158091753877382747328831980605303349556272313137879627386456502469564391431553002227530725942626025498686138430122787137584105372712981856853635586839169619623341096629309044679949083991108766753172313269053572685221451951340902976753330816836883020471796789133446665194672222323203853176528490270308848769638786381114752513965979033735152973929932584737566393308983501227670243449987109875266043535938343892339424037984249263133550782056855235843025555406606843434827174128074648785299288812530884563272200010736621110535520462846555643341535765528566648922234935227337243614756456823632143027133289581693414150863118599537295669187412883985252671927396513873013071859399750204945340172465770836936792453988586706004823336295988026766067822869965502840298686960801985037232149032357788917795721985326389052874222347675795905953527814218053665519815288150761074201306443685115551133882342984500127504092893025771988022947445774458331125960889273629480081110832773844109270528263453095802144820250655151373391341497347544365511326073043813792627603502135199626841629049236449106605893411436787947094674445664553563057841864782568489732594278065262659249945708024933128380444369145510146090216925033207592466400343925133448753600855209196031578597613814376976491772257806232250080880644288435023028852306038086758947020267952307435316397226223203761234212865590939837587880245075348112831429448822924068311480733575505806909253497575404712563559690744560006848996706320580097846617564527291244099645853101107056974313408866977514888568112194523812269219033926837134514603295380853618773652931489222808904977400090608716412232650874336660836479420917068809986534114082497968495310908485979074356412818070713341939556443423785798756143394523802273650950779127873357873547598386924712336558765928358913266731422745719955923614470681522823431347922910869260784587251495693564374108374022941812312805606370531801680186791814969814286584875013729343268794407216553845854185928529262953567514571395428515285846819617779478201713615975693869945086425859654721113012992574468045063165387877542068418809301440795179353967711033748251563651414914246267655133442933876978412310115475503114308181346943747743012400794223624219823099154185074951346614184410858036403213839022583252649626907518553177875662830009695438247834761151730692192148836450275573592095173723821709618318985057095007153634866669254140824584657305878681796011138562176351464209336785980791843207211614025459112066098727347527015762734062762014147350217039619101184214429376681118747830930541173329794577118108521568087768421131496090454684165749189061256942578468563476043545050586927127718636691959126578394293454746678013457090436367779665537228026570122130046403507768506123843561292985857987677299084157726767255190166949109035850985965749723229033156095200260234730528039688706282995215984644620816297872694104140375501560186496818765576106899193836873869936007670652234258568123888666798825580407456401376221503429657217569382120791584790087950831841915807976216310263084615530558618274803506893512569412336336800744773607574007135881848073340075197372185316517061851273356478849538800797058324162013160069398359112077871954656132014294864634612980411371526909321596090345336934260481814600673203510714050899446097782882369155164446278918278337889410106015160639955894701501145466478402451567984357130971238165819090838167705193462373026945356511604620800960642044236583064435546385135315625030499117429618123067840201662568915922441040135534257811160889678991719019554045076433726522764246787036273318857081219980725863286435940771669039868616809810844736977373493508038062454191873450038178108408385495894253418121394325774587082724331771727835451784275963271449939042016026754034239082193428264597625666354706922937784725137732073401457681414720130189355124039154643394132599405511493117419426423253994192512318765803575999926715155562122549396555502233291803712747336755018352703296928713218770553525665073877032612846629091038783196475502527508603019839999354013785178112847768611029517364244924898657543568089465426143337244229048664407648503056829306215469056796913697276266238008095479417497815068813410887319492634367623374348930937877463725109849035421824255144828130683718392855415632583966553164454761840916468118702911588140876875292337586776900640227532630364225561937390112165255798309936252247437089749700137119637015238632355555429301027995090745934300326049644078070802891840566707355217913939179228959611232871974722728240792023051298329865512679699642746483421345218179410441053339201487161151998923270662789138260985235201095320037679762934626469418379796088838892453283450600420226374405644672299120855287853572669706858339020627121818749387475085424014499869297291802609332185394494292526360601442146814340697591498077326682267254504167899338262235000642476865114922204935703271959908431322386749925012825423316771004813833193045555453755474214792411829898172024456448315228686443983438576618202985996819208329517459868825836948491368835344172081630047087735308348520945796114852405867425890102146578897092231492685036832779446533975671608444654101191601509216356635083411131405536112084177042168231232089316089918168805233450757899677867790692136897096855559342491771084619910285723830411102637329688826440404649091322476980636282126150288259673056020462308852375386690597124390662536238936956117727231365198886607030458392004494246202114115626706006701915268192010715470804672731195606154036539196279391097462165303140335774915455615442552720901484574595121175526553026343179043607392776365435766567087855252956941153689192593061878162981817798636473093283386585174459109280559123287747995140810057404856002421897816001558597497753538381386439996553082657190290750654263559369767404289128154429626178745194382028664790881391738633949954033250304145558506537328437360858945687877515636985324949434438055244864346020716813004786054498108071404806815824320783305334549141437815438313742755330284279656479697226989464372950421048404680804407775428218366853992182957151616468009608696576430460577554507609994034966328737725500707176503077818970662301823403796599243522918555111217763808821777902515459787907985942322123336807803359079143325812402259268302965322832838330708421688886397175166407359820760679371131026946531095369567130722662613900583313068073062721554512959251419462803339686014604324379772840001604847744065757630424326757575370502601152060771844708668489285931416728027983838481331883226887295342180699477278653090427108792992925876148000693881781337989859679485650874064215957095497271494374178331552012614013107504547861043730248382301187711145471744616776024317859510035948176183120306921516241950038742520704367006741177016839993159372645076374343504513350939972960000666048480801603023430623859252483536098604635574222521280214961783136053894483513624269345018325039642767283617397186012425741193503902904705737747988347166513241796599617535186326109044314507427814076315522177681879911286274570043453179860870076466686996513597566197063844643963157815916500839580934999209929726150354850656091143454811524688108386019993467369154571115078529104219095486900095469663259918853829343479437285692183129721644083474097472876190708715222830918253566461082646555863596114466843179013419472301863203907232968171414279303399447522113860316933064952902002465589884612484287952543720652208324790224576418528670375482788953567855685932103577917370912753771815606729403039335210264954194179850677693392182232500948923523274995969200225287466851783250533281322475288045342723201350124510960343747025091511625298058366259279549355316867694608978872472439771684560552927960481335449457230483137979599746280669923159243379780355356125124610278086476270223366952187387443620683693243825664944029579138082909748323950899433400573859467331435946962258342975775829038468449752476199594232623675661732346535632525080306172525039225464739375424257447342072678735769055579521661741139466916369041248338269682742977021352534797509817779612823114744743771435371918024476994875365513516542177970859801408382748149623937024793174591821851149534273088807117844940201495882075669074938857165378172917201124334237131693239978970344222976774923237453019000146861281319956109394136902158096061017374271023660633244871878131363297268240425793595753320260369423502627587820174829295832011529531458037399992514571547758675239574773812258178728477928217679495628782812684283707529397702084931326462315847009476191742098586012669898398772229638718085271860978801918341860058224431661837777239236178445221756244170064232377369012931032478414438031232849470781617222233956178267562320841980215489693872987567320875368731828792834188686819914488004818883408134492357334434357522629313977705300177509638252816757717180397031001022324238756703764485059808770286430611541625302686603480521985216453895875153730990299728545345808436798652744378292693941749168350253169976448946803012814253830883701497503562699769736995532255544083626996546320097936660730440485870747687383405392915232252159147510124646664962922061831933531539268139945460170026957281920386098888237816920545878220605426961544688401050752231640872819616485681273915062998833939481985034429071296714733800525718835909018174112476568299172808421151323971056117064778672173442119146199342398121579011611075812163087868442430485601819849266433608705913050635185264563190714532984043947020492126446193668879538518352800449683901571750431261164050401093956827560526625875630684219113247405295847932487005083079760994226637126358801888008289993440439403867846211135986011740954192034642654000540653704986844961088325658286038106884270849292346024459419318993321815043978360165463396381389178678756704223079784135976183114633900111927348949654356347955067856889477720020632391904900350222484352210461118794104015558103470341935289707814689456693448837682480474171123205830096109950495751124559392210172522674104910554980385468623026835942308166617673741495291873332465085269227285421808340881027119099050388575704892013098239946340462355754744022739738869865386168766728699232357496530010390801443976292936820582302270497108282366937325718813450950873247828692566517905214845426054934329199544392680576663955576473057070658190105490125271645245721678974076353175356378744992894579370311471111456508586384107184347741125148325906080299557806218030308162918699181047485762070673583731076437131804166492515227517607947079405433030579356568512798465299077465443848710604692500129214916515978915058970027739220332039549241999939806659717011534087755076136470961154901919117130818668666706231854547477086027773699551748781693669920482695916628938090649632506938720844505785065917714837110774308646480047707426555088408879810124229149949326987294597997157280611652436608856205791139948897749768291420350347016041735124556340930598942948142701965924175746596800294191933246288937901609694249551469083944599109893729818033290953548331100967466787257176201332032879044865606938329385205289720116968534565522893672424083886715165542958339756340732817944356914607861669112504975057647279076064098423823925304294397374340027952647843847956113987883569011714140264865868355709758096285073365458879653812531141377520267226465322800369516676998342987643493206130667594453042474859224828878552366469270844142560879339504289894974666468339496611255524275104130720663940076391052136734757311669707359125623466108163005779397177216365192258656182590658209883920588233230116015128733446606106032331336299368055069631455141626928785602419556689310888522525315878127662551273125506571642262085876270490029373896779867800170543489413419130029972419196154415699702455261732630027034771789053292467787791533561759865713409230426351768875825466124736826269178304883118082867908344292837969581608873959954048951504443180997290193128690520815200654832523179648650721554512328342402776518592346804062192858633895217553315019279895791178567080227664173324836489491463020660045120875155952044215604184396749766523428655582425634604948370744369226653023090749751329288229470563286703884603906080670801817109849560963652119703735463669050417625892579965947065125722604384708590163590549188610107844413241933646205333817314129680393282297906056582807804604176543556416612900858986479527452386684805479845663889663340878739524272357585344203123972670457347599432367235710886079332341950456747697228073295821694081154648397829690935996918951322643218853503948844103827584656197873537181201027417631284891005477636498952186944461387262676379413889681037417192480283986039320336523930173569824767518194658302802724054331430895104073432731553781293498393215174453341990606604300268811613774152233939128794327533965403586944987265281782147420277749047423198331359086590875445787597814273246022640243860777225596199364092307175384479315866940714694826837599441074330964857065443975523556497449352979834935659353378665283913294817981454410068360188677781520613930459628708633872166331729501452916152343712736190705890244824824491006686026934716182103225369323623183568752499562324832082361039905767436284411337042821268649951641266063040781292358771430202019910441163073230757723753063665131852872403470882186234550481987298169249434661575208521735088065321417134159447724616582121770290009177197091968012857709603074740939346715436984729193340865815547978722498874406060661985119388714528232705131057964038317222144503835819376421523570659175559400894634442143627063248004064052771007495185401144847552150371704346104833855190693706930985177860952177205849071012264453979172186523736138251673860777116179793324986631883901897375227669797384916401336726444086068016676304949662808163953596768046074071579071354528302423326248872588544826776845296031550486334894498421181828875143450774552013789260086625469370981050138436720026881604498388315288762714997229840577374369304734458669994295746274243481644386618209124170327116248144717459166678679437388955957197402412505331224007613533857911453568469230781773490168155320638649976473756395315507440807263265245808767107393126112233074597694829424598636043388150565648364126496839332311480388365959545165072458982631864709114890720082645739716361016520327643454537884528213799343765034531266099482011879028061841006998889372258360537931400567007449894060742363431766693263805975757016829644492138394841708318125452229759102376728267789761781097871102467056914546821135491131107722347697776402344275364042655072595783749667584984680259803963537109587705628560901072319018587648629318752244741890082767092192207815935861568087148614419999998643095101876977399398435490321312032677211658415409659529411541607626007727057032895259289404819317431049836003445011873559451686057279618885136927779875237624063060699351193006002392878726644072351903692967651860297690785082406521719828285399733073561435942963858948344684272294560020760982472578643654204770051105086210783572732543925478482831032263374726226738014424018113701144428228939693849765285885042237094463043938574938204581246329068854816771154219361784955050307615999062380611658277527093856116985891005294578276704203446165627558412510000595421569367540156630603884695903503063464170821330904488942012536970574032695843200907577375596315510489635419124324421473340813131883536771931431860427532585986369461237284538544672255924510413872684338323177693916400330105345563762510420273788159377261167068497888396363381233116640808327158813693018278997316870883930096455128724785911271730391793489360899237705858833581981230719228929739978624565931152782219566293790179322088335884831559243256816469305994192284723204701625614732756549996861345961384461142823956586071642375297574179388502860424888589514154233738533740337238520161382468497498116988652231597598758751005581006029439773819512540212868403983980352473479152750064171338770599594993605551515588671733225057616715493823195419969823931264821549536386525965424077574127995375387771645666274415317192350136037335239959273463382894238051240340520009384088147169349244415042912227013178465045327909400563215866527969800981469763048658975343976809818407304321602756870284877093519509448858758639332373901630426602167821835453947583745211984289161867878961790523654929622607097754878319446799092805460696609914974611580182220015321823048836597490591862210009122360390168382888136068564361639539161943289785113497783175767466687250180990116635345378859621151897360554686046463765342502622065279923660810388814930099239502300284779233468216830815573100604104970954031915380000244763249324108504581410455182235562219191532604762893511291068669849460534337605594598450876877680025809727735039620308078776825383549449455718503284416453058394840145955864571447233533025828043400339818315514218293257207522092584129986327944287970247617387038055094359392527195285197075421964177196886735650649825679035603059375043621383928176832792098044151093900515805587828376798769513055852768639406633582566587301638833115937670528081812453337983467304312347690518501156822382408728302427688532850321827518373502300029300159632553920645744802864533111745903608805563094777052777050725679468745836249411941518616096397761848998605134443534902452434057470982305360475941239140781370951901187097084608973165266275184265724899134442960863471663601708033126060850346305131915983587672902552699526204611088811859975679937152761629120763963843657046134308372230293644157442767504584956527806450363760947452894003042491463086635772175020633519803218581335264485809470055268731933633353071502894006361748376638017969354947126421769319402217326213786476357901641327486539861344798048108494617129887406192512698238689618318676570420752349546836287271301703218326328156491773249567741625866483890749502514729546705571923462228632718598520474713953415077080592332396956295037473294171052673366046710592309319255344337024119268559670905999896690600606901580420552100089562289772548531743372881380040981317219740443497215072374282461608412837384565605326559253787404114804168966762766573270193064773321506201056518662322019829281161312878889248403225246872442407521241198223385240306227581779525710996169008545257485547538550081781147454280162003745454628798742518929572573676443074111862312889944433037940588546018109387666733158830592752913347853527895796182236379154616207661009845260946173419643361439795857660942537288149491938205242443035130448079376183496557130531077148259865686375862749010599070204372839172650964754090534303756943699495390025182008098551565575247447466936891980590969622343232685480055682449791738558799029244395122505440247115514523774764078460218740707022421281253565883239209603869164100093765137488146609291605746106733996741345344275393932122233549838351662870991400606822375422393544854818965994750133821684509815666583592278797032763757448752807423258464716134511941778413333705211328481503632286448725435221627297421146663296533216623004014197840286427572562644010587529892158816343273282718076386577642014848908296005300176604754284825435572393415710944808019380853002652765041696581504939675806052462086320428004533900025344218829801236584148541520988699213746057837733204214122579196604294125428600839456896065610583285357083299928145720056064181684835249016952028311824471832440530211297953072586952145672612471776510977931641219375854502212314290952201287169946805328413195729362982280086787144969620017223268951599804748937875571603214539358896189111358335489316066334285850545054059742888629503957682839888009744083284944768951669962953325453504093198089246195851412178285340801347754718494630221265127131929197235366982910356974215585976499371767644671897794158209147849733647847970686405444504747822880208083628959619212354324101978176430867322981566551801608795758826843256529062543213201914433594357653658800871491108148776757006992598831855409394452561442782789578590244446348212043670735363909224223258149925167568646600878772974882440141750112417729613589720182638845410159963691958410748439448748465177934861396999308523777049046791554626414912300022611764693585245335762038745346895339175146483906089723119593030098606710855811672387975456775461017629773707365273556006579609658605137222736465648297167358941705390272705643745961814954630937442752215488366677248154051817124495136367764727418554934928866445745654412361683159441104866053176178303536399873776093347734237540320346801300282121584964690485623727842262667261516486926490913931914873604831272462198546806062264915784268470171479004873161795227464501744718343249147202033200494558926565782869178462149711781992186919098283382231448950483734734705793911344765125471774081949004819863121756821608446043867383348480656388478899191446711486050622913642145315915014600717048663024506235771872369075270238734676137061179188294614481857289651264842901898790824928968367758646690633883132914592861274672772366090725716651451259708267604744500860992790432078052021210884505791240268485368858550498464504273475168668071954581784452131272236979948050377038655310815591353288035045954748788011163644541583455610861849447009727583554472471547303140198250747288064460052154216046761313230172012259326675277373768539807915564577991821774147930045942959731356484938473195546582246017302022090921060892642392375208420427961854654485219587423881183121718464730848952961417940696718117067901225782742215629437694660887025668073212607240298461231156112955581073299263946091779671972335699098337068533538985879094922198174419057062823727716120534856862723822570571006154120383736368474893618609476947798754951982585452817974485091161009452337075686201942019681045761796437866700560186954797627045221703459304694913390756867775916695563648515708629197806763307968198363631927245918356094225625820690097386321332170062537080301948149052072933183890033189210564004444341241215824465587780842595165742464872857891403708762553407115197198974778839744809405312615031960833288671808029989933310939716163908337259266828795567875807098870860900399616217231007263645178112405484846390721971142906591320289722584439020407213054930881783134269561805423238164140072488490034553847978874048213023326017060881002342893016245151942063428157408243862328879727052523267250467722706110309331645950181553467199450784899259975657342407053980215706366957055538056839684628301238084994131262821557813796990540313425355015577535657082247475570229600151220348893337536393618814894950878704124720627727032222961016457414214787914025186670597080121823448478493788283500161076572709519420458622018187671541572527434143283169025493203416565381339660873401838579255958017437726312189773457052782558996060848453381430797609023106663273753031708111341252485630249638932033615886997369728327250459623844728721352387658359399051653810987895146724470922956005808247037053849007889076021380880767140316347043018481459747407895944248498769420207725465774102848378266631894654057145003082566841581111615749788336439104128553293386652626640305387416866582314867782106770756059375652713382159715749041738196180855705121646380975503784124497561611067143349054029678912932926801190509558155573312194418043934729831957329286362075599047600334787901206692984987776742562557287047362094379261207657991050383446327749457633495417863548308465218677019176965798794578070387155519075883248975739258433219170951569425988678545552970683529104706010851070909386596417854971115290512770902714042093834429990496210260846272216253443358132736297310244396189958391392992511422469084393057203434230927775041022624006674191595491492373640373558036303651318158172407669265907197299420616634473619754840359277016407744054247304707407271912112487204333942140794983364566690852932474983545461346493237043012827170129142750980066605339491583359357564593901299945077082261460590705492247180339884199402518924058296529818592128694759276167679528156661569760727712929881291408659909664092908617315378995127249631723883681565132606987033666544940074768791131329624887541454572149588157633765116380627379720120159269700821063575279209588424018988702426731488527101395608879832304483045477747069902123455820879687136057009292091855966483649902849771672922239467786673406966823061621547369332739556897965818733385593647599427368573459080377925693805421933146744610518181840266192730671898697156452063898220182947522992678211424953713692294948986858814603835990105277720472613946500462953006911098720795817075936947627504404216821623407282222141298335141204661460110371993409964939679978140784117539357048586550031018084428209392531854318683974845865475465347576071962495717250026895873286828129182270503925308471685159133667055058584666091433109421736520817948506085116043906615749188450428827303006565402910204617761917148277556493341150494030464383179176150348378945070978209624246442662087551389487104284848340832981612437603533246810606602836197697810061097190045215025120874443813600165258611347335760011646535529246733256936263144725801927886502898086844681043361405907344734575461578197562167517136137916197223755367984938681152497752157717667278888468473989868193971982436285610082763920317195022890322199609413717001737070202530597256587576362169856675481894087654578629138924071819707122834093078112963933134390017751940757418952877889221689784428556893030376361445437930805147156987503243476566551067473756568012416910852396134179641343614769289978345861651852426162811039212588669519459683696889174517463558556422830682716256735395407318800418480877977042897084904794251762608567565879830974219958530557862357982814397951436837037711731397798288644973713871710681533040395436965415672249735662122157043920596095807710669690750041293885535362562384360790848304669826897849888703415627060955182006113297817043548034291858374105058443750406014524641869212816099993792889013700889953652251297510936698566176914465291856530522041465237908285014329861169540470027785104877680673617096841599760438541223378464782809719247475456085308164178152786768807340807490264140835020189597458215967425820203079113286040475241515199491671405534514790034885155472252598402697490905384301908967144249309617880733542913243387594024715717927267345051956990552745496528385032857022042014928184818134587045872952958031966656080396543182044602616400023919916888652672411287432417276231231198576738633997441971025540986535056122388651955577116718688769265460731675511779775231002279635498657826198672163183101525088281667632704320489591781622791978031585384166272823902980832911621265156370248402519802171391279413371313783048795819434071679231334117837577172194479478529565888350675615413755999327052167341296438996258125469854369471950296413086024871989498393833688801163810114546419151790219862818030512949283891460015322458235185796041268103412122703666821097411616070731610771115011178871973823999267861705819411409157625522234986153271033183563304193408449333951308148826130741563688973691243260129254096483159916910702695088643314466234058027435633976521057974735462942088204452953362580636870169981904997391685918769213788056104034577879024446776343636613450332826481543025257751954326489828941041771389447890375657792225946536725575271419773910562146505326662801685853584698368810532471899359257800301067498386466002538511580053390064790969512028088014664027350829690376164511434316962089891667730590760373834179481616688698551485267142364621749777682489159441014908684328921464867503136403413955810976858098639590850611896560749962899037843173215094446400005291306703491476739300776277346609149675238226081274928083825584096828164429438658962864880610887081676438992791606624210706364439395244901235755025457131088036142514546986242276473532216592287209657750583796050982738330718402914554644035575821129165950694922397261804160000477345280146175717190753604964084524924105623474504885358141116440591976778562701619774164082197659274077170744116457490764624071717310428909639654149231156095008135526629111767100963503061045972274176084507309188947584588290684936505780877493853220450129088593010828546474375616213114481251105269885308140151688856937198272439505179555723183851068117245656401913583610006390975549037767364851194530537326123335602586453273095927675038884897231104654555274546935166653652730729746119411039273724377784282311951632146937607300179720151337611495441877389587851346005860250110876502743084234773961424549912007273631376893517814994597105181601162122476777128402457492048637566341384388369768854819243811783196364888989240795849314286105130508156228140326143562350226437808851887977324798392785179224803197013597998720763251232122035509408587203164908424387100383025974250597575648132660827703163197017567153339044697039941820884165007090570927406392933819155392112311873301942193175237635764739206845138239164887478039240417408164388891197533715237070502929997557544009711796305460947145029239302632111840072200342469648336709495378252196206590276373836466293434077905715203622464612008275903484893054328557765140890459548375370544116812569737925567950471509603840298298068955566057170042911795204894310614835695778462762124624804075340692432988202261087818811248348444270091761974412528905040763482183500195364404754408176106549324359614977719702609864954490596514354919548962167487890731208822167122272189147369067746803054863064138619700752607768898303636258997533132252230323470856032968225467457132748735762156919093056656769016498313211483400246262330364735396174330324517496564476380291735837209288249411442296987571796580783362596478374719274176955550857314302095268051990556877851891629011762996747281529288790124257215658764899239596754006322588383392512736701781594745976735789314277376759192126774373910958521633034668080005316506693200714819700362527129212565871006911786884711119779610390381398456580238222707967947885069544088265056841336457182833906938879113450187433054929662638555053155394217363903606427207058804884541019420386447818849617302149361915846230659583760503963065807658916196149020062962048943308467587865450420096500639754006140367747918134053604487575963794896017316560155961958460251196971370881360397537048483354882297801489001611669143711102897421027226887062413179022138205882165558825708006784174570293092667113206572779944215488965382797346140315736726244887523275874881476784139910325757031212207952089043424289582338382958828622144150633852354779777518559058909556791371695434863273170682637336525254842159025390992298667585077436396969508680097514888270305564577737601824016402933367094487251555117128583220254647885157740321087762923832517514913263829414471110477259458814291487761912870851765836128707824662894845801211853578621401500450054255737083562857527478579463056994067935702661003738865035585221683088334149643544221074961919993493101207631259734538436128547044525002191594682123070693764057004602554686390865872885281359135678607889526901579211850421105923574200857850774752855041988827793978808774430979411869505645743762627811501585859672480629163331863527970507874599341001617253837594303824202051173669653826617506978104465685778736770130700311530840283112882708328110097478724267587335165620619864058160495383029394145285298643200794812925200771719253838565054726632252300286835034154199934243875174908431950019666017298323484672346810072451612106250065893031971648752865299204324359596788910188314653319153990774305344243050420666913552249102857833319001462493189916468690990814905763673308423160072456175585229309477052070327854041144402528077491614841110965401245295024874732857859145650293916727889301270860762033863203178511967397773285305884390914490241607951817114476475826913715398154038033559705271735645424701922102311361719184929807848884590363245774777504616762919750805477217355222799202404567361411465664294802770754002788166445306967955349252257752600950564871657698107940242606833083165159605520086874129548409189609985281498254314639074662218165407664806797146295932196432905404277154645153589431110563428941784734785248180659553773835503231880084168489193231425534480898300261097829972408952242226199804333571890824712208434764844101627785439687199318677139873435991234006432687014651943328742140699691010172011340414036931772732216743922736461023271074659122633227500708159900723563887689558140922413735995929853022755761454302880043355457952413105803739018879862185438268862209847186083934137571844400780984672342312442685977529585366588656225986234181071120074873675180679663912029687537330283276976810889005817968233986258837015522871499207920480948601971539234381664923878470661881849524930476745656005501450609358587672398196414770381954558622644662558370980642124369323674886308155734408450904227424687162413187703212221929760379789014134565113277316446617042194485734347954092663034611277587501936871057580154294912985323393513270306275315809120047780615865100758129369501392601241785262778847879563077386361968537248967165620810308114355161733771853794562167545554957857025749482513315861329455333245963229993655913408669823084407998933402936233855438225484698951817974582175858792419763175420667320534590236832636329965345687683911229101754705560060068306207600575654143380316823895140068787939710820913241042221559314941072525656377327026168971491238721416891032929403979959918554931721463721140713402942659466225084644716570134997079969813847260605425356869661427678274180890811031594045230776505725561420858420828180672253064879573509075513079744630972009537936107462009968244065897505674973536332899633823116955213041374576832991941592011164867460309103417109993074095643885968543815066604024981896294035563377083404096234519861023710792376202486960579815439082657507823868362191123799036147396395967048194477699451551810351928620278460318820245580715464051126216325175851028912293618578263077971132202492321969381869347072166563243202814050194080599907945436407421094315606230691633325199930638188068333602763761002360052593945757873346250800499190222891171960287268720835095746256146521591216237900322452324398091608987190638386639153803610025372480684632442419313796014997084896691226293330051533084605583402399466704639621261945721591697281924012800173372498185505903890735415348175146683630746966587437558744133668599646689836754324889223779533733641077941283181426034768563149554600624469993492838716463850401833574721580499485279003431633648767507437811984530307881506546441552883387363552102979333957273463510601091052670434392899058204978795298556345286271284355084036265362920573503977871961747013519153585070403884898381255388776403233720989107580803791723556782947595796616549231159030244481492749950622044454675397773965415844248701443232189252950537764616038974042771098904188157921871617118226908235695978770941791666341114586300208221910224636203491088855766762760873538536170722370204304301212346219928022260510874766128266933223239173494871381536007370814320972617088645215696921184581120937694122203014081937813558643260420208268889100444738936807280519240407694823862044427783007412694694731607298043957052697387539836663343523033002870130315030725645161904704931281104985243457252694366784200576798118200991950399366045803527122346652822380073280559784361119677609258242282365076960649082873189897813035527881570781369204569414419458381299376755616984233151117908038664844933281279657706387569672817214809138022090464388193159564017321331139847378621582623230449024636459831472288437685240129442115157258999701165588353451275462587538525376460294159800331335932048750197846284240063512000799628985544756299099465569998926008021938046023940000382345494712966000562346610519356997897972354629304942969138274253990384161285051385807539301872824289602173014625864656207505824116119420782154335764900238615894648209109643142544878083682862619660973182906672719457978396674748333798976039349239268097341677205223667994548776957429698957177625449999007015018415976062488832403642112370793033375883640145294975389995953144741608897384087594970056977679355988865873639740869676254533431821122887634255025475734290587128953292259384661748923729953559628049439614775389524848482878580951904326152559439389851191131264412160962530504507817635118152126574740144430531842229960683107599834895803531936859878884034104809581787714451587343978951444161425402607800097256103679904495247242325939704033585995392935044186352226456988979021656558200695249684843050527165098569812541597752334377114402600437088439713044110053560403176981775109357841184864808742337560469726913352084761099136212184434405572635758009703504963610944507393253415073271748806061127295373599579153492553411430353123950132546625939733913148516303798917682886370662938935580548854323837772047898090903748624514619000272602035242658339149937762811879402612660660859014844598923665408318560897394770421342973939906255142100829203824530676914641101671219770184422366242031941225187032364848430990363472734572272278880876313020712838632952887080971010549697395880298622026939134271971493649345985830266018784618540676180552408772666336663969847107217768542579249713995388138488063285361037388020272695116916039196250413141758215227326733790144241034450494542934539009532803988625907997454087263062224216803832035478647627486350414701898893831085063703216281958311725295807003641593157864128393794959195117267229292546826243710400991364746233972479288123382847850653940905198650765627550544447233997852678840942240041075857988870255288451005533306838632506383963308531785300940190568371066357579908567438459517112415396247868513714179628130184472021347217939457662651263775625159338988448868289093042839596840083311420545907278206624738237372401418443231383420056035421745144403897388029609815816458713946181787099621859442803852553692445143416557538286525168957595889705367035663237617036863696124117779317475693628906073324909694184588200640317877877541944285315255807174088863382654536813723714186611820820782445353994292127256305727996357657234358340419226586400824084924859099657900270932168733988030411698063881248538812689221606466245169017768181162471538235713589721999811504788324525205528463185843170573121203134613491114244273698795972401713819615215216594498861179384877495696988639388360853599015812721270523099180044217337859355239685135613373552789089411312840760762355823814192643030859531329523476684493585095797372032353562625317006226421594614101639843108486744299868757961969517946162109333750379483171381252249449653396534526064371498401197923211803626883816653480903872443536906565167983263821069824324162452848580995657454657994695756528181411763530651849912496479746866959283268581049928400365068004020000702088628311649509029792913731194180494812072341906352776629746698277707527844674568366328063688044562471912699654436787470939627736392712342364512275267723246401442291842079163101976892639002480393891820665728910856518919230884660680311453849960022107114333422713413463884611527242152571256637442249915960022632570604800554974630187223478334223115893148266433040590308240279849177718017069762565105965856700908135245190530817907394871370282665543581833552381350754504804529514533682376971769630484768075986618859934928844772569532887709273292896071900588320741542104073708735036111325855943408478288334752169109459465779172349963753475224148294964079308853363295155643758914626496224337058442857353934577063269907042342491076690371849551468634644094393428820676127377150055168951834776600779896939207859263428360155495944538801394412271006903594739765318722987304189723525140797996515017139076974626432187486155431628223647276271030331273532006051595238515287064143436423436993985282346166651943129765090116664438857824798009761335724117224216526410179920353813341475968096678566519238440976327348183189834108812546778598706185128806111764572282716902704967184939475902751868130297094566882929940146799085808500890510476013835943883199764869315850593578764505285253071091143105364540230841154458598286920003530987147744504681975653606780298900877239966077606434801350629852607775512508426209629207428022957678779441188162887385928892407969951524367116503908894784800049733528025625100933643266987324961305023035979236843843341789156388662573167662162409070799464341779039446450770157249362487879135658688045234347636861632780335240740028866815630879378824934165945654569865886180971461750509644043168162062099553633477004216333332655626480894510442047835948229389429019279989851421332997625266768497871433540118755345474156130186005274538815937843984559282546767664867592647766960865641293261529371249460897625473167537538597885631983393150195313199338926446651494318805880556771664762380744063871124589850616032723774878794732561754738201748162189905407395116126426062287906129762982981889395936941452872182550387468734195445218530805012145778351651643199400170246311583762303390596230142382225058394310750639588096883637346803625846687070136239162903385549236364916139623910167345994933962879380939820856867293507810214007578913112966800615169449861948436983310043723372514822065910465380375792632572044699908511309170659805835567005074178460489868624723689813776818239017811206960493837912833218863917651685706288134481590039836033557847876758676536058771878638719707214242877009044957899136842259319046807201389100303042444594889230857639868334269335001931970923891730460187719981386467473199471141813640530204139284985642946769950117801353239821941004835122209357312663449106505654142671936568418222963572431632920342161832725990475246793720568864096190901834163312802385665960650607173226351733245774259300590435062138854563566051923565816348111565508956290151896578046171194515369527899901781762951314377577793753682853025607940702185537933222375357555192116762683484651432870576965028675755525509660314680048267444632106364697169508531727613844049831916056316867286379954322633836219847644031940958714705507549823847115545973246178737587759265598493123972653332888301410619011101833558078010823836035227383361355890488646496404793195815334419100113676375864783264943440570933020617255751409008417357309156900361616054943678180926640188719924443245019825650996654931069083668315533628479166038109147065495560794815984903609851352643023175871994210551753878404674370578751855699419976322523499358886354542245288241409080986503651017689255193970160283847867880223312203873885425904421673326662366595978918039376792057557727807958135629531943176314733015255010286571269546244415812918490763465557812330260162822840425707470659023952954672362498901937340248866112347119290500832851926348675531332063844318115774452598851855464522464931070160845585817787671724436269850318015638310714665838597417615316053807442105753649447102713422542360421845471510270579549763234226678420971521282323416299738703937010621191393994467727534082280135349583406470204589097023517196520860692030718885455582455437143738564181162222830739524203757454415308438986763273622104822581991830365511961751037494722179959555190500112509476828538074488747169397815685687686971299431407007373652884122574945283935916047259033808481711779741943615844356432569545690208953643096065542509194832890919101822998028678433787233461894724502806032297133173738289935046692860298806631276498723392146506071354738177836260012115505947165620234065971782544761337410730719592840250309349009985532556201097982184147484211891965568517033301353912244006574743466616454468356975454183935830973955773163495503272552280682458632332328945822217938473941048777230198386525707134616373911127766356475174463290697861149699105873313268039684942830446037579378126948664971205942880205348818892486743528802078689909356321630030893920895621154516500248364493807907856619007975968726248740553058830492749529603348309653250886318618845021719669681763322100853930109967738309309640038115265063339839632715989452392716482038381013385625446247847392424053529298545089259596238537024410263255420553418433985024396181010445846745748610145524628361877559682938206124442257397671359084648120939630238599880128096315071873264994203509827201856789209691492445075528323390363926753872446073853368910933808020488412869715571260798405780370897184891521362673974708131885147885949416945090256178764874388843064083008553952384740877029918583514180799483745400398888343097119183564530375949501794848718314658874393715575379852173061260053975530518603085141836371065088996954155684156829491806349057047551033449265137099718353576161806262461012481073031155676881874943489488473331965969705834267583440927552785213550879569147542109669916869142399257702310303424038268897671213887924435720399030896656932308656314795663707770815267023637181324395060239740575459720196035819443197665905347998539929404824479964477470286883933760880846338329812293279588078575488370084686910338829248088322119783250440993469777372979547144750176892085960455411290320349075574808682299570242344176118093194169695001538193735223602816079054428878672976903645152688213330878524297932591600734946316946793515865212151149093210071946129347037406990834321214913303180989352720031991949483196341269837227381288815420664090468366745558632417898119554516888114517536764910193866742774396291196041455389601441130380359038370409161341310035755642535853152357509124375578095802277200460373576822593659005117832054396500942845116557213255586149156978155565932492484627562728216989988473038636930876574367435600866284399588531921275685847173137021870876490319225879835472655994947288769511345630035088206672450969277355547075321101202647957324515909617301614838483556574440130846882087202832149501647067207511444887070897103009654215466275138263119598418664674751461533371105273707363656856216787918539588058293483824762451175701187486234942196427312011240397041335391883990189034085204697776321430472421755662229196853223842868981237647479157214241727502650987269444050394908957205244408203298663314492744397537378887148019053618196463864286134436923448336243797921799267291166438094442509685622992028579333190706597787920820638358269089460732405507105759572592357972109221121494936037477357008012235211800006193130210273918356043002075094123383154872494614233325131743442632337774664191331187597453307973776334619619259145359600108234364871835795625157576980493192401847984321357577918356636387152481874720569292969200638507177029479079331567785427812692642567403107091233847400562622790507420102935649792723631640817835015734383947692795119928335312446919117893797410972381792400166512372425543164113188181387090880098257488674930521535378173520935088618113508815242304609823335010102567264907351201933208959130621553963298031508345401363707228968914642078527309928635281019300717201222735020337704381054833131736828367731289036085213324491865253455370638733291234768958429102812239485332797745928233137785746178385629527117155008831505795889307277425516037602463262692097684672363925739908998844965044314096949122671662662362891506305762329817498885173668235967483510880720674126847248426716128354416335650653474678518867413176630370400614682930898155503895845061934553749100292829632771549473778891287580859240898831012382658057017433472328509592624957522007665677729632475811424049422237097392308642726727163193155843411672606450488433346166062306844027459348003617190424548721800557617143697377994241841671662307824647333773499878411565215069619286210675025190399055472080044657277609226008468366955696485548023764739548006273175298306350547491915174396922707937269739388305063546584925395831925048802726065929454105726036774462294724794415455339179137668580822414981385060394123578999433166413439568354536605336076574530006219434259584963709139508837926534652725801079935216567752199900333597655200139720813519624455270623419308085599506253800496575476132796789341988183986998944222265437048689613171397239375695643653879339437026336681355640236155125502971183411582597856967767917162460686513410435314649751649402519136384983200486509994377193701277652905709245463204888240541454644372513312057493647941337605958548551144588322222276119291440581035920844363520896919564225441926263708248717133257860599671133117299939367140258501727366278599610458563079171316940995646761353409422866770747878641819256092484499246608399684065121735457388331389745068039385740443049679704157942081624031965349440293783527679552295063687899055694510834356878928279060310114770770181912519924571287941448701462998331102429369674333969156102114688892725862777766848024848879362598380108680772266472853083031158084220877143163772713869311398904883489435381227005300959245386911642915457527006268798168357168223006606540062092696774733977701140776830163857455976350517185600325547814557865285058554096926804432814052466468498689234359512271749432821785538487070230487710244179343196551898045202464264707411962800630651683735170698815348842049351545983381865772370148181116153914892369281686988135704735366102520674034151668979126819962758536465059444008042302424729688394366530184061252949135014321846543973107151042817753412252912415965826924140928298174325746482147910658144320588719277581990485853887992755453843845395129749690713280249714073099416121437509223130803762309636232232595581972544873246502870355464318169839860428374448099490387704738982820707228410383030119215460306075017916253797097288219577153956672866952483738700924869187930948737696794926612784591642857447440291184341631412899468312493383887968889171784149033247137639843121995736831437468115330609921462647999611543597585915821617566076982554656131875035495815083798258561195835680796070052412989069262006676885075422177995130127765588318597289133108223558391318996639796375525672178067401951784187660310883351850902430590741069280779704798428126456926306412061509692891039437544937696069101945562784795885993913126373114698525964128968398860700171940974966426586075774755299653380600103230385722558826176913885447976962088414193584898418597934809527787004606878514714827549258435399183077775864794196101726471778796037785028583255034081338606448970948341390242027079138484525863251206199458704165176623950519732345364912943638736467819962767798111913335454988637927656937124764174671817239948465322089516088333851073408117971637565961342800056837981707108320322724653347209577958963414353479550796967110061146955853713711359653825599469210398085435765311015452039826941122698068718922472451888814391766555823513357532127552772661498876360698385811595907214338106327638197345643239795448607186319277825407100404608009954902944925279702758565097406087636361198543861914668229851330435684024921231057373469199433779817820154927470745993566516080750028499695634341786718640613614328726030735629819402101043212838090032087377965999481306730519508471599639455002029654734949032153474350989449178634622014901430944142355517201042622650249089131845202468046419145489236343550637434871417461499815482931313668655616876311561054662234119495845804895642608631304187932734806471578942763434558271762423828730249114220440590629807407542858172153123677862409142120790995277862769808694319247517686869932899997592149758611590470628692193821161696085708692625433363757684462528236327410022072716528707633747594901608781275387717392135961097385823259415703696212980539174834116635991695013076911843893582317650984282641210889201302255247057106152872485433362624518299516695283572251467949095571055899916775449967848697020260982897550409886403522947927418352150358592942413515674314396175541464292319957293442897887822637089314846168760244590503639966213266611390928643217199846353015397947714665399416543525247437542410269144457696086818022568311311643199360440335542643963195713279008791034697386559979930071542698463462995719021048036432956840722858338203093222050450703197753561321332073958839020340932188291057396744999154525328228237585637101630899894607599262525158783900761995473224758033412636982750018269882343175807916583271519533814095643310826724145016656756880693545308749944411030814930257941555855734697205487514426047673220437877111042709618331829585857715670846097413382986028685344169515861351757976360536281853963243863002132537669226979875058069621415431856413894006180022216084418335325445191599635229733938213561633038054068476467449410124230722221673483964602579862294479136021046394817545177921172607122554191302850324993262250685896789211509790134984174984535203779832158832180898320847086738906451504468760984405480831096776787693158082516069282741593970819822098968443540561881063950209222437304195473889547490651770138518009928242841972525016104395441815214422689504479065401141848475136657328918094462677734109975202035213761094107918674120146641855450473200983515960619428331550693554721038025393462324747294832382409975344541865831139953416978372060091646732054572121207621078815551470286206129039367682283635681673009686084245738377255814829463666614083956596451151009458703736841619413798627690439212605817813007585660523904650647503827859333773837872058442749417565500800659825857820808977730993958903137508385243174178815346727617460194519688329161298781215821063933963104296700127606857971833230920759845471535700019959969927107066199859294546807170441738869195331000697155347894393271686714042402179313017462487952347033611271248265702612871539173205139996781000253104907179509712989851686834379383805184883784238149082832230116230171624869219946965979108340610264106849008887292525116520426134694955292578202869394236168307641274295208328218832816818902872293419971586761835261629929822789067751593720631603218215348180672623042019234179966305492250063908058080019426178707021740664072282871448973588188169743098382176956076720331766772870004296978468214512652807901075434077487012621166797268726923335547671082731877333925025656854221844927778931061042919148594845932647656985372688651963875312899762195435822785669282322758822536300018563845822817149584065478643640366118312502085949339028402968191907950555812908137178585069958964058103492121792290439489577868246258424450493929825787871790663474681671807207288684511308225481106109506752380050499671441017191934596735109206020581051638994248738578527302935645631869354879954737554110855326425190700486260358050806830063942010645972618560316076971080981434203087359567381706448242000518590917437958587068304517203212009711411464028969705265371023835485394219950032934542622135823146800247015185904917636061036402836201978061282037483242157987928417155574127210122382657091662404441523386469183178432201034537180330272610098075432598224906539964008448011394751398647707673976129589582337077151071569532793663782832568014655703481433779299163645559312960823831362544890111986296265696803926442704037380244976014787622894072734125025022170760479959970532383705313126045766114922893965484474355784115861100378733662047776766029951963469509211802674899887060225381709753711766605164113515721916993696548388269748821852169999438636321695371815638151623035710324533086545987846484237123425597203233774890236069646681559780498634757382380345250515743564527176631487517636792199865267839449738773561483349454802271548156411754416319045384766207692328535958880280085009416158370161469770046683312633739372738885977193302163263917007958616702697121612922572999924068134296246360941493264223245095767119713612356318711334296220562054626684639720929059496111122470855555774351758389610571689843943848732918728889706427462307534014222882182068683217409732680075436146668639994602575172989230465214572039238185748480094985523544840578580242575066840534467010807358780027447869028888289825713197300927216765571996765218542073565814008818985928043866442164432179348201267649884184837544641271511089280932862753759696341165475895522402345722163634208624043563674473881371004531724035899339434975281736622550252470033852305379997596844319650849989965948202634205831174219527343746246779551440455650668390770502160007759178077412126033591769179930898375420346043396246864598164636739466112359126371446673760656627496123954957994945959498873153876991757195291822356135858329113247264923185094949409867927863298323984956010472712838002024441860564728870030972951510901188043878848374656654345982726066983141164243714029662442195919797439137765114697942669643091775996607850647364372478645322447696550844819849758735664012708099965927756059351906221813663645981031722508128048368163061593445744280947841918965993013647545804774637839620048186044856183776363974832457719908240064519460249677390600156142353508603615240373972767140577740434945835443394725714763751298640894266367019940289873177568755392187809935356517690919353301421653104076006395214984673628510937904165283274533034304212844614199142212560248958613063914315062507852191326682143581398007380282576901656010643833253291297450494378914337949962884517094309792090262220553471183696884961104394414897231768277994261249468900673916032309330613318255313807360921628143265165064472391365815680580339799124704810423235820110363802993461001845124761709310049428585517714243887573111450412644752077030808096273436050023607039834552684144407203906190323895944269378940605582664313696753929822251448321745112290906179722414129829940369324217593671593380219491350238934507764500555106822642108538886523787101017545142961398196837194222357006425146184807524976666482779266929801195097223177380566752548090389225231050255928821316279605410640288193123582215582572787447064628474673456287676715091825452272244458289151056628428040933586384393977244391611095251217135547406092664637178587121356470838001071631920814330926746283999667417658812404867582318830399430417319085014691004043670378844722637308146377411346883200522696123127820959337038592147381015080368702864220703568679753960704124791841480284126911950730240669895434773898771986323084316106552878563761927341465130080709501271776699968183195614060343083931849167128061736934979110603728392337361133134728799462878415040803043585325711180857729285774345798113019737733926528004922822468741990567395398886836112879158428770487112833471543229308115760993202436418430382561856817761787503968331044488192837073402273569138027279712335427737116060189258024047715684223731612775970321266432425361336571682245633824703352578016825938303813342473554433195569511389482150339315192943350405322697127768775129618944965685687668905752021275817954230035375127461834529882482360353788585718657886495673279184552385140970178140686238405237687458237818987100932147192513281076366161934822377673803510272244086303828302201652395981711863820257037005618637785472688079246963995369741880993857641773783927909778970584829650768907755180733877582232672668499554420270824750107231225233991579835165738250818105956466581713692089149872959670316671843419485352940020565164960570255380486636819452782819587273163200711009638413923342489027695570253585903927263069087387167203785502122776385365625726812847894565497733111480136823009695189111423711951295571662776214830115224606921015166187457150978674798194064024616188848540666972456602515842719895185938564071240986918920600389491654652969686108074206034333947547949210946889023803050739256203296364138982890084974286522089484097376726109774264450415552240162492678056781352076573368233056267821830820532015155873691299319457871675044186129060966592444081590629392805383381248594307535666747893688752631690238168258718214664585475045478477628115253834918691029630293168522878590646580724839860187429386832189717327553796501291229347610746838873509313718158145454901805091833320786464427536344303007449152155238299249895489413418750983107803570187226892334456133905906432185131174640196438240208119539365540354117476157042023213100597199274192901255922268584670885814850270950999138880406695068077547780496739980173116157022540108348046645750149903261932228379516316962427593341517705134164050950169326321813420645052898506277500861514011213697240849537291796805777255871448685719806043115707891990324195458127523945422387107434212484378583997656366932259388097277070671260698926232914244424926795415790481822756000945900650655247780102633515973404069863371956283147115770976517404968597215880506516536817092575037954191442833749625871491297901698319613573712505455668986365101720280809449262165341216820557495193422812891764978095271652831434036558743277416738633518324568636986761538325371040772791925471495380925606412039395231294264544891148877543583420055513445738484686972190875894547938517905687533382240809575301198987848875574797350727463239225952814783792883360915456104624041499581706683197335352104913004728335275800112575597177155548551887423822361322541352010593477165176735068828928534336636870438909911054939348005303016436611748094684157847876492305198665244985262969663212409936146114208837100331053974054554653768506759167968933705205585145456925099088743639966404130067211343115104915578278415393392901561086256152032073125636618428274126048306202643243011002759050712189670396849319506368835745019513634249734624534592096912494248696879039048623958218311638571652576486938614503019994068243692998385260349569310579542077471684745305847145740846271440476879596942564951129746597038765871781556395988806340758429397535786677139090538526272340706100436608142251000753583966877944800086818492168144535337311514823936404694157823111241638192182525220973825633610607712432693105846110125775896286298033981079617961030084334163620159479959212150748286881425437114314466867240000692636878614819036450134257253397145272649162955270374474802659772994516900121450880629536330525733829469540547621327025643602408323622510901691775472801751636385494332401482054165150871414880875316309254436806652393945807895984437829192915359450614995200386879387101547538264863257636929525066181913220642445082245619608264380739847201559904741453715713717717565206655745199444875778983747989663751411371083553660960373186670669795786610454442245872950027850982339759439175524997619318240806698060178381426403854078376740902817090574423127773824457966764308859004262270741884904515795212747037435621923786385125935564690622346886767048079267869937705755863936884897884453059164846591400882068147232782759396098310402322907675060332615248134780712707984106619356155851640748805775008357762788658575050117686406996637203208184371148522653398888509687444201451584636768654981141514118161667290837401837541653668394160103118369413938519713772689320157484217055741446035750334572609656184218741036135057444747600989493412744120772947020566444963497835283936090935512847352948689737829249880340331338825149943974131604828903065076011126455655669175593104580738293190299011634755875532808026527386392575160719668354872307542327339084559842059240769587283627176702808968307817925791682880505953722491359722932002265469791296600447153645307107634121628216093345426519423475118446344249003495617679269719994670597192250716303632624360733004211592616787366005699837614892246751554750764229310668419733542686071118412230850092194054096740608957877118256677143213397429526195648197705828670932580657942295061648337728136821463741145573708292456102382176448484005587948206950560699978197534118486423160091802255635138895700236334578746918592594075565977034089912523410240265847517850670455829933200537109171235420816733133189623424716208527187457640316826368771442484979466151356932763994256306794522243159575055888394695246922140915214314997280972532104498887010920292165738458569649293005507648330566258725723097868778654745652699615711345280550035565784828434276840807786468460488737576781539289701557627186996848834140249409235751759454857925243694562373448443279981904529466259898085586620414368412078190835187307422988936753028155084358823650608819675787424016706744352491277761640140488039193518048912080319165198017496367801489788736589400431597552899227491233707845762815656621048918729004135220075370683880382282756010219101647793867576994827397062936514176062725581651702362414868929648383409302480690855895678071154909219226686138628598904729070810890198972107684001928816169341685623267270392635605108354198543890129694792716125742095782256845613689947321319561997983023572515948997107550838671083895816766535725362735397796426238004306635274895144566847496995063423232933889922659797302191395188904204432486119544796059088473619083081267647589533492630549819900752489713179347158924649603500435902273207584874343316774974875829844170554610128933158961615839349991388844722647323054352383013412144795308705691596101676865467813654192798310364369965726791934570927515761589066128109677091282010483640155449573511850445788157758475316593772320229899428229105076863785698360730359369316588121022660169927202517999365603706163859652226523774480876339085753738427498596475068356354458258713946390007305381621583623781613808399225426331609748839701314650546550958090364658574838524294815437248851362612339324453202909681740200325846650828043333275949475312438296072968198253592257469126978041377844139627023776967825943459633437905209342264078715156150226611229800807482698060760058600480748762330249026686300398726007529462334251340626075230486064471005475000512560358206291395240559739074263018536756194981707283213194556979009709338176711416133140160202950150362876273852645135990676777894954182107193055605504641456583711865055077661579748716245764200357044145207677064747126221080503599183638890363056449003986680015734211470728413130272219205160897118034632396643178449735793954425080774217824874445485160723391279968619422971686890711169359759600932079318124218287988732113808050462872166047989125225393518653613156788970111295917545464568593249782008163979003550687874392437694332047639071662922493351925861919909631029215852013466829829428885179320349966653141643810403471025435104163470963593694568142229002828297113192751256035374117206018961566344420343099883886230371849766790224109649097763075605701043304468315455559085715206792494900741230175585123394644533802511459355528243761047349784564969396332093861116345055683959538418918259993706012237372568575428289487327538297391590976759075023209758297668268685005500048200634218952049311148228273445066347492076652952821283534825478784794766793268461453268085766527310892344996655560192568874587794251339434014819848196256259195288982159679264861726320915365127531888239785765237373275255052262904379510069495366320484830048280812056532593466110361927858320215007119298617097734883135441469964667458513685641965494409242256349324571395571209815169596672829685941475057566132240690478381568767062675996022864673352006929786595676411854263391785357939420194115487283797348227739966691776365674901280531839584490436555369206901528102625542573216813336965817692398515304612292524456382780016642738641321682194234536609000217381788876772150466862487780028164339569952188081936011905370141626721005913196772576961408550717844467782703749132959706690460783895848612934068088093584277588291642148756518791140906086418479547825950891290934043455768669751274391703906854886839183235534690670114360280198983634494275983808612226080168393280635139725889562001950872548527231264931747238741924795561039315691688781413698933247974312727304061191155867239006545881126042510605044034132196747399272054706096691918219420628277676061001876235997880644156372921313479613970725418073799053850995854843161334463896436040368009737502997631355004983350931099958673223886863298742911701909779282690542603488594368790914382751279165344892554459434842078716288726352241559821806884003455130470056522316289921504546776299516183430509850057903913401092764550605542220573659600485816337399426313369295471845747380551140552444094429435477274165267493284446450548130012704220061305031196771664134774734383119274399227507242804881371129405747622320205939016276603076479903025787204679347720320570033328650223727044055389983672942119415026951447934131324655702747727853174655033467689966435868659442975983961930173445746904440813780366285289500683130373348324263125409507515063585963447532387709078150983246218687266879381169039983469538659876088868950786260744460756198243775913260102298805252252885739728858482588551971688365327430352162211627837966998844726629478078388802072970388935811577952703466906079167773803764986398536329415570957431406053030172752782284444569653280398189873888607967306444940272123811266385709821652708018658423606069306341419144097034149424882145534495980846318964405178804931569819933904074321253041971671802125559137427261763255945422761557087915100353009368708181758527972248043124788548761641982608622815656565006344363151360079447241452482988859731124330000310144386296777854171043492850448556518150509678435309330917218463069140147603506280241231865120733739835265389350425324213282423292848025402829247375052766729905131037691539905229798335846542402724488193109095193306783357532477416092020815260636256166289787438614234366075218141211186931475582322040896051540671485053598757365410224853123627787516129048179425494805447302395301262178173810841194207988262444077328501670762669645692138585678913434671718655359508875240743820028403210166588043368724742634939403882777179685866109445459302902480341364555458199338951598130236414362449621342168459285305132470049964363276382410145667856437626225245439782724242306173370752164947847069894203461990089808032053389692246198178715290637040112533250942953613868733837617855430595145762669930573280983427150211495543218887265893438786406239106732213388961056572355753795253977622949358925352287292312184933416056570461442663679053740140995583660130257112069160211612573096325759639533724527557389135000044398624777946855454763705535320348165339945105764804103205918945909425166580752162375230809539254437355609572663080417986858996653640947466868442408213513599805927639912575702975620089588232834537512238078058253881608210798852516638998053825080247823017046679048841030365301853871155655809300918985265747183108607000346467785561129123353457388102167578065996495226888903285948558756963569387730546301928610282988605828740535728508849268236209412110329970006623499657332087125326469830192922415434578349069730203045631181098055359636411893992994943743889314871142690616508912824661769563470749369767772106572142272802419913703827641805933028877158311124855635549653205102500425142399791706130220587163337164050106405628304965728484164338200312885695523117390820486338580809452574517928402503756606849880202104184835096254707091050432173986788749366044106052621060462260121873881930864285216367541214060601295208284912870441353603138659569601491718508405054636767253382432480157050482445368544179911733006654363962067382697116438861796028438462230813399235722559574684472868180721785740215575990910160953594596634998519370897968095258528497847138823389005202278899887787134967980118687013763200350001969016213240542547716977711354338428608505403734854885877683907497707039964558097602707368115554495170663083938239169260797342070907336001908535988753880203400874261804212743412323947208520207677375004237855261890900179904511474873386071879248845907486442365444393800200280848365855927366942376168888123527180878559368328337734720585817384222457429800835358846929242879020644866644209032786611671063258469985559384989573431702526407513023207445131949840674197804197591347640516773267975249388778419127846130804831493940463789748506644996018124131529851590664384680375183785303326359539772855631264155119243004539502520199156492000383644008352024460023775260247547110592270625988320255826549577984721865766965744413611816551839187551370039833276018993473361067165629266067440158254194899488803246083529330534732907359727105413886591350794508266213518331701199048312151688671426766774853575024113762358648755901333048953578151801780495300572055926043271194269204283178290652437188624257374015459766594298064728728084088662452979167919642454329289485430756562115013630909552176210534663028854671916891511468979524319632556506478720806588311463384631488458473081532229662329785397114729534604567652582138055272489733239460156958805424627443790260340125077647876527735190826789123765924797199180945995775468445572942542539924342570595877854995265816259197834714643026080206315283259249185442711070873871899117704805012345688558085698514477966001956098344903519277887249178527092910258111683565809913602304852143218723254046904287623640662694400259580318275884890454220062280758435066249139326624556494701241656566563476665099170665864781136884222980603839799532396452998454910395589978506104996571595342239590112938089475692792876495460839960278772058392365146462360750243614910223557763974435136444154233781491210439499285022822855405162765313852464388260629470063981795030358121656953901865336946013790898360514109458211081733043826780112336207014860827094429034078838767845320440372628944159106919976954998243678390290633410154168329880645069948261706701240865011277417844557194430980079566043134316536168043324047685086293166548743488357580298387616920711020554262004214016774851559482600429405403993578331837537017298410798361658297798188656491651896623438928516569230956814115465873359610551916324301945818669362235107895600878864257793617074115317282345465026459007769065950053324326764554757111382628749342520898570949528027887345595816161578705615145199197054127706960040220093232160179100669645648775366118645369150830911427249217189652346684179962661146216929650053169761821938263791154632881570419180940836121071489602087603339847565075850840092572782415360092318333424369279509759197701593523140321494757700709411724970647271472060418026906089290048638263175134817422174767565797505322707056178609218615980822778875764403322723584656736707476736033225774660658293367410810196217695281416907966104057694272287207006624242063397246738345285694589051129648516344487052447811540253097948156321738241989873000527778229671339654749799634504500859639908173352887475449268032439231848030792192560075077417953709676192776221926978291748737198415603032522929882851665590087312237984026320569613672710087793841915056383668951321083655759654425458526916249327215737380589066376218509962026880966652083770723959488116247068546855625593037879763773467281777409091503974226520360962655372899554417762792343570185376956497579061241557971616543129746154190407929975757568157057202311357483041328564151033498421292999866444738803156915863471821113110860229290301283017019576757263373238732010800176123824134957053190920141239270403187697040900497229399587953310069057490321698224701374521503804958297870483138445508997702855702159293513470509267456239836269350215902684805369107746761172308328193576215080134752113208297691201592210457755743979992385201343457649810950271256888670917766952853568140220756918924922207900771508336744696634112347015810282567542215267747411717712198573283582522361926561065362833891344972438247993453077648076690602519399471069797208020715970542952868515222695070533885869550885172672460291587209761799393903374448021612714326639134882799492013398568829404143704123179137750402466259223010128240996814775002150284531060142568998404846723802885007209112130883724401954799072981354424392947407198570666330320256866193048697646492677479769177145738011801078855574347001816012275601142822222731291590529393017845343571241885746885693196816137859852925741558559758343392464974355589508708239710408299628296628520479289500915751166872561980619869055676201868892501692011855954003694407848702492563068481376990296656713669845666050748053644124747433322392691851903530273904895982117990581726367380194044677118844633004714623158146981634757772221023276984962169507446168572865874369129154511076501611328193623773694318739221769297170361329417634367943093733591113251518876067025675551271303159914571433446423942561431724393151100623036630417781854250384323665393647279311902977058510796421233353018839086046143970416611062134403226342073862272594645329449811333171368775812217105805790663041648778173724941579278952916652437894867543160274488644626852530883598340760271541864494187091296404463684254270546514402493074524810667876411449703742446308716268891221896680527015124925993181733297988290135601745294374873419171642443465252409156672256150507886574056123932881741168585838282728709133612692529679013202783128085971356836247529012215288185906967144015444129845793229048191918511640592253510384039140808933152217383765665065092965851155166973427165245427125596178702260373028743164875798277073207940776873955497206048333137495638311927543647571494799806865303394745998452252984771336408561978066383625856543130895118847387069612837375263384343592786950167593859884185770111049867126079274072738967237218548869838594705011466747565131675365097493465265389469595779104157672584576702099180201074999219534175421113076355702573444155242185199714094225436274251677990446964675113275867018806483659806654556218479932646912143873998603542410126073211608136824902744716057151885395494741669077480486508780818468526440041262659497506999925982902653927342525081923282002842759933002762730024935333202320873630139713573756675444407568341369990471429139843955072419229987957201614691858018061393883692843491413117878430800585709919930284339210310314770228416056113310746136551600613379070980336661486467838774092174038498456943817027981840586500741385945483205118073674419350393410917497506260083922168932224875012085433393610062052651900066541924789742112270458155180014055252609855680017246691722009446303996803882656488477703083946216072754430984805911151312909034461698800550061297478253867514178572342993092806480924362926721617585894464059215316918050530826262779252031131309358231015693523843507599996243865014030843531101340156283595420824377552177167810759132735054990569265088822769090704133317220702014187350044439561784660862680669093897766476570105054302695626681893703679859349268640957600210504322965126102045713919743469114219392570085222011076303537559094643980492872835870302446719511274792828195180815554679647665858810994058775510970378680367530255178938004844109368794427059872047120837917130039735058816092569983472437588058827440957672337849781515943964743740414586598180971629192882755083412595555091739538720733004633244707865016079539072073535557604865549247457851097132419616526890112361466676024261029217826904243292453937078906800629707070601272260239625943836518488927974683376337181425888105947373702499999122446484512613835402695771453279561714927006286878593623390939496034969317409597753091021808864271091832731872982355949948454724358823592583353072000599116552251956081974286216742205720433211118615757144249200307723466767413722197338516649627356348691157364128138720037655438199476541713279495885945036145817784616896838680206145541510359115502494011131788761040327721650458697624583912302774972069528645521991674353230248856820893492870358907482730250136326036205695643360338611341293820905160004576128191020031298747049627945045978777787688082937848872467302254574563255971221625811136628565042369367675428283505014769914216140701182701523795256508009670560798213934134816750638800499905039786592343323425263336018587211329490997180734534503144792120810971074379460590606499125944321171237340882385307272287496297732714830939711245946815843367545607177250664314874940080755547053478394309014010438999285897086852679863606684165299467526015488697884270067382236713245690794082112989436623631099094998861146479741470663068062729024020037008686639854687901689014374384378348120266867638369880737163639090261876888495659373874977881368473950143205874965877507403552155530994326742249037627859453959322554005153479133104648366921570694998489040182340457173768369582983819825671573269423546873900994083162191371479392091410889393407653347699587727106654099012496027110758443701102787933077108788919556363769625681917740890647365753791430462159049250873236723772914192297020134870671888645341415692943412743663380424661490394650804432014077117896757837711091158760200568934492584124832951596718454712681224112179920164440169474691567876398114881840795810998619755910613740936971083128347261863405620963245878012926917157000195645880140942271386530950015035213917084667836229687276985878957140516894872018261052836624388251313073569180023324843969934839510011144331489884457518808669541957405305260615508753288631715470612582506649253598768787847834268040154385931813488279969230272733335229042526750840824151722783841468221867097702129322949941053336391743151956938159095264985453840983794732888788918349787730873145702630966152604343118486231813955062527483177296112800224085341471376376741744173038528671863210780152412004351801804730062239335568001559664117374131479175499947950045713617816411552457151694400521989521751520695219154291123606077206884203379752400205335124062540043758467602686269852951266412031760429022164787492754171058921239646738399660257001731506330715481411301401286416857624471295505470350627922840621507007337844758163018745439253491361228742346944674491596234349825591825600187762282839730629412076422346778019030024923020124750970689805280046124111067787265039734483010704741450920961007133116061422682569080501708953369140613736046835110258954700404454145612283584394074109495079229608969429395438266222675118369441642673658277704862956465013735692579885175084443555853695326545928588040513577883435911676251609687512535762127243088643800535956028646711495723268612059530308241041031557451955342028972902556522998484700114466907081734726925615621747698193718587902662039265493778884641250855255984533571521375441977074966475215947873187262539605142831669115381709222329876646304709749591896397804297273050013909730064364378452225922567928009348977885576365954499903006568044417402654731245584741669235476275196713337062557475252834069922112017905289774216489485904711147889322733417049319397501221642332337934413400295060011285175874819148126530268347514038122914788875506605803182800789550514729486072055866078281191099756423172794256903280767336777653571017015675199129540221311215311696885903527750921306416011036169299426121810265403797937996177307815870642628646649387901940024119543600861249514369168078778466264665313121760264268417308821029639940462330358491765691917098506729628959594553244127108021264526228293952657406956331137661911709705323681298269172699861934182607348557089353800291325057116518241081694187279922565695646896192906890001845938737997355358023475270838215742317504928232889400856778330087572087576106860751189908340536728252431536751168878288086898371011073669288933203583709493983389066752533228382026572295954762042861177697002232015265130504828796626574385650803377385955312355948818407668923724896446091200569740719477620937881591182234008759137785773141334064347129517420324380835562774461056790378921656273747867719497867067246049437235689972323421539097666298163444330803983486108023843148387218144049734278327948148669685184832369815934086237878695587007839173006395469995705318997911365321863482200992407756117886194489425919342498794340934083577783097442881516853954385759602149243754786824298985071452627404700791830651532337868466213982893256630692405743692992352969639222676879510122704442501192891127236109188753757467177115440874236999583190332953942568098478361715572644686532690561244641318673285227090072237755589550640812349497804246390861336581779960587201523532321227379211870075432130518712407965336709824263274170788541093731446544519265056070835486118632140075306162645640683318533954917368930891231321598448887590502791118642962544906368026066825176605243250491371246576803320758255311720987553641198756210417475801959087519009814844370490257558214130111536385687854965317021417323393135242682420628110499417730010635589846918113050308395934578668017878388082801097116519173282800255444965898680080582966080101600569643915844884503812761829220772867486934588930328821422442081170359396305753658518471252381429376050482276051098434123498928763659005449776189682815147810116663349477687959073503473659157411161190389438346878439366687303996954272989996452489775484641909918260852670804574437426433114517052648914590103703887985270479628522192698886660322042017492828677208257501671722594661106287174764603675846709470578836936088013276316057204676391414356226488098360237331540321739273271589320161140806904963401374630215743955022439029264870871411338104227104911935419024576419145816436391279974958624336141490893427675199994249153843217578696815219309717544248744345078302743478588353441733767822235580980963020870678897859735709814805701481280317170528305391446669440206334632432086342847237786619195599212573674282391913841477751267332323323006583944191253179834738141516177960192387920019793847074679752587272971749107841571581841617218324107386935937686162843696271731369430990891016212945777048185424217659418592038361663625891485340093462628186867109288690043406904830336921966070387388350927275698611283599625059133929664050933461816538893458454799821800885639592260355640305841051974919597803144095243667229201608944292052659343291500288211130215374659029629614943839920020224471420653252342191820857010762146129580208866551112407186290641907351538698805850406102060467875351557431343803995159655983623576926427634232420091528341983639763629805452168845604634359951580779732809977823420491175428011374632497812563256908451724544099932650029491952497656404134824672225636190658017324261809295228384699996022347734068442903352696904311477055424024835020573137199101579765828890725493917507158249087693188780287020826354297841043810469572785899140180649316128117145633973177540263365309258335421015375331191228354144296173235835849610181675351578364835746915670260323370398418371796835719337487931263586237474058370658888441518927026771800895787351934713066929659800322067960972980588927258295967690152396555948157950430383113573533755441334715658047912137583987055096298855187140508615552315150132150385895824138773715496957524312351917352676670112858449770078196839463808455447400371772979682906147308137163346287331105323290918905293802196741214309626733369317725231233724317096651590389279305551221485696744839068977268495724900172179105506117668598589788218446786217894091322271271386200947392393258516528996951761783700804760669480884271719906294851585933631117709458121988060814957955997766792282346184912107471643390031677509170453182979815022885865669307396398394456529466118590839068211357652445881691037905098653770335412676426387888920377745339482944894631135793003485743489352085091502865686543239190851687415604544250236471572404602031270437216806120541912280653091575813031851538183395356683914418138063583590368235646943964769643089680299845732729978124682626088210336931374483036022724009924655213405470645542526187544871560279276617889305310069701447029206863185120810926459888074089563015227894878123462290153936231636100500940887200894659932727030763937398778746366964559010496157946093304294179026473827278542127347514321843960839518715888646844858985221690898517687698417360800295610317651585296675995034376475204797512255723618889863412956099574617675672063860088509373785906131208909335705303052082580716227057360404550971989865951280790252819239918010359308806882466691211826184043435646526908414291842280645904612643912364255699997226780994825827770110518151654226583204451686111824349286623557884366977490613845908959235814632824292419539644128477710428871082642922372094923039538993220034886073073293584089868750072480727007935116660309497247198039337729038600516655513367480251770747795114995560307019717016003459707091514499594625095797670661105116019435352193080540947624437520536023681352640563820475497625783532774924180524904155720033540841492838620832662316299866199689819498743523266139401726786021896072755876237015700366452498344216079888142973527700946334762411500390230714740394455258292084477496357288814933476915114033140536870197875706795205840585046422416587901901822306385374097566260823988894691010572684557329371555087137034838228106953466825229424988685054380904125025385696770480902552369900576545985396911585038658246525660008533002143060219925140816881312415309446327462715579395310266521995617498351036571201482990661690424801288692686632804341974701111809402663910448988475645151559425355136997872955800223637670181588055820781930233264480079008730789097765123707228371847728068251103760034157234742636567380034171512319420237965815580697747896157877084894441609216275007195732415414516085744726966074354891558720503998551529985627949714151915761262910658069356857215147149209402811230252353188648720202541659580341622962243241801476089846051315186027252307408146362435629531923214790425667290046280614791216587908955116915423554257106855905293812597877778788278135597156286008950399467009114119165219342575398242598912874914461786375632818692145627524079606500494509119450278449322505486775257823181413580835633453141192107922276497747335257222975381333502743941004476942424327944202449746350947594822091745056095925174323139453373583445937055711638808639444761613196307886385172125864224512485357383700296657863600093000519468629204021558935611176778726258622311989341670956561516626179726640297783156181626616882952531001811128529746087538927950083291248150705952155483780838166097458792072782240876505911840899884722979263261020936524747920013884397723297437583324583901180951827155124151325972984080638485002736832309657949875560800152884571931979121329520571346868676807279988479083996615655486835549305150160467370909720858407602312817299223351936479342632764620985674713318634166662671113080268751638780035202770722233091746458278116359491123618669239997161136076516962028185278691943347528489199149018160352715627823489438298191174251002702468089098694046358686218409602877849151344259024355874478917511963052214674390372887143041364694758636792399452787412127249463096925915945919622836351379445569782988242951209526877706000822973378696394030592764809763842802873455463956873738919106595059440669766680542418373753159745981435946871217849423803677119757055964633848992569701833110982011731989376373334869192049989777849920816348396350136858715291835393325817919226664453998481306180008679768422051639398321373772290047038396024809111257269956127325113666940642126415597719525297761718931722063985050798753100107790864250713505072547336100943079527247287372806550586266234177915225034759339982928148692604079013515363220870527415822981845028223445593140425367454345185281053837237531365012386756268131173902897768947841037562113498534101733958965907840054845096858507395292560927903235814156134780438658476339458309561957104337120313414707863504724944939961381633588441701625111216103408723422617218703970910748049544998591732474381438044349039039652029304232564763270905314013108995017404222545583772539223737450377103269990148957551816587940335677633788948051222467647066273251644531350267413705172999839507136333918796343130943212241397219365127519029683632200030583396213296336579253525701998826518198991242010696318843526905479183828512578366262387894764625808838076923230327633553514377887112983157348379093209748049874167939626257499473681483509081060829044464498582462899344730168016113383097201842476589682740888324606923737827794078591175790094555964670586359166096145611488988374356454975620173190497044876028549295152029925539851636228589921888397708353224207171947726357205538834070596966930774892073772706833636446944829326364885892130394823930398701185863679085493396112780695036466148706571541045194609985577457322422017799398378320103979339472690555780337330915768719445670323368823781454469793603939683680763729005263075369364671111148543832165122793755724723312420964607217699901320360963746073889401684003571219949845288404741641144665360963970446915175597183857830360065058450843531490758711823343222567791106996121477255086892162390250417352511863224137729707496390276614589944693492025054327689939678543286956011469630726017354379852211414322177259072743110349811411611725998323034605876757645652945286653803822395288595063257941175001206671923300892570418275687910121888336396260142863484933773969505289827239857025754897819090225979117080729606498882686564210472393915105515271506815698957830794923143549910878539665274638441854321269065624742393026273394939799612358275841104888783778681297937374630977661274775517008858596708970650789301937084042850661892831684348284947055698477465539944026230157690979131721737489942809742826010198444524887168423949436503934625436871877205419388812559390695652594943558852753634543303045943714612712673989057528006133884290242601181064311150180731513343701254832221079315701015934586759914703642034979775551826256213640835669450799708110231739028956541735652615928174279439114737957917305179153006301276510939675663797000090214436292278994992372763177238864076100451799369732377791002029717410766056044549315659376350981870463082702566144356933322348578107702929100703025144788734456896003119151002827141445332240703085827382478490482382623056019454930510173140011680602177041291957675139709470730196152051739121566601743655091309593137522455870814242642205343201919505356857062193338625667430345624964805500425962568056842786583656474156565031239011152941519908784688097581668582645004525080255477256846801356314113494810378921791595790280591321007013129479332612756163266168064823308909900831676073903638221584766977528755611180943400653603954674634684662112771055414527645649437755092764621177469087904270002410192367556980584564548053185266351194354628900611386948918039261611632294135708562724305257771804355199266686484757156837604055813871248632313156157778804394811205454168537549855171958216841764770433973617737386480946544147719542848629070451477633795417010627872032840275501020334084610210124270682722719178954239578298256111665198337556579578410961916790076323837497464449177977935300690773552427314646550253138643339071107902196341814293767276887297862615168271378151567238332090631601999295325763599003725358233803958767820894768018247057548879688109186695245824491411334248802132928509238806820167553408714943933730000930908352142849627899373338999025501043667496717780577594484564023096576822911316715702413134522010652263956382190994682067561537844256606677934391094341119667253723373163313542932654838631408810939680295938744010480474072981016575476046321144512333193661540004058073076648942574541528189972630099633689974826375655217166444590932488624283811963943533665197190605721746509673923482528353130234704914826340415404717676905199723253222568496790518024240353634549183751338770068756485840537478190243771371941612633112850926001437491101428290026550366648739901641356087727352817624615815660112373083302794766950248513203117132825789744005427970859876831193204388634248942373324086800932166499229601056193341132066828960884853682720429766713298944402291891145766184967176999630960509434982320690511720407359924039243197799675133429186449048602632613108931217576098267825079072082037934604760615751893683979387504570799982271678721929637973977364541183639930240025418668187694009591539241410299324722930401395246486053618864463217881645599834199939584312725487230458519690777973247753871648586464632206312264778376600981150684058025376259047041145460433159598096869163237992972309452028485424038700258276419883526312431226726200104086830343640808711589321621865074103717065051315845546159775401928665078516060084012842851368150440591542393738908032541110476136532130769151982491829286642244275217605071479811393837238254848783282475458929180912581758865900216217271852799664494800277285389680408535010175519913630057591631822830904205281655221352217741761194552650210096838314366003980203154789103357045352074360341161399732423895304635606676573528925589683832780737718666810501720548726836807589152834947537355235281337925976365639704493489471462099373620369819064110689051714935888471092827883379447558631642051896329225862563563144978108405077893624275463970270126490854233135493408791331665394626913250056730590295920085130766976600814522099737268603990778662272772412734026124633638128434092751854082654873618382657307336703307968148734861474950438126406752541083397212627376508145667582306007492292248542448173944437958866441097372632569626665422508703381991462661970499249686673842846983251342557137641280795524389918085455671423431066197891726836838963756062216184189963820510569599899779613747358771788317873418745122250400500351123193534691564197944975523672941996269269180324213165659043936280296725641196429174653419786691807679405478533202931977024120908905241570544309235412391484645481621292116094453160325322848891461029817348456858381966703529005511999572683051828491484468017820715753279725900944377189400765816499883504737455369476517143085813336858680162462965989333434009879344120427980172123824452439113288027195496058744031377888669112710166648413099026234592649134075162253039266473388238779022780120758206150192286381314134411327974687431972226452472835231088237122750018403519941499028667297508736939261655147414981059080642170094261405710078132097240259101383608845566617372449806312844762123178368889520823191600767441495028564981561659603071968665254559633551122708868567039791258257706552458568646417706626979529825029835448891062626083724102040221770532685208427214142736432171770040654253209053462643561733177960916289466272813210462531534126164787924468292057407574425715877845253189598354651325805157006780446284664778794681416549586940481629729103303557215348703784839911879601416399850841632156366567945394659008936952974568961932601639118078065049403910309919188343981468099003100910470687785743104278022057315084301891894010222216885272713012934946354351648825510853542240414198895468466977662596092923348522113029651735162174522392538794645677583391890593534693387850369944897619420301794591021362866961134116930318507011684376724894206356225255143981148524847719216242020027898966638292692565126011705778681056419736874882809236712368848200163763202287193007995733939621395617092382288037947149231634399409129577968584549942790531768374191557014259591719192196780572798611223295899532072341197103116541875947618693789034426885586618049977484542650478328220740670955330672823329477116802428408293155266140599728240893515173843432159926115508948084484037707223483525197372723560677596053284803690130710921373068478318776954572610371504349893580271039465851513424053910048061798798589632925349445028417190432514068568262310387846988987372676864000709663495016163519525447875555602973663998608154496393039986621607580466357535886396935274543012590419415721272920527179623260998740095168945241323707069200486822777595244312446610337451055090878364384901616831820169906620006892850555544795504782758319640427389020671214444004003642683043600386823440989524006324702406350689339683492588133166183927660815089669004007754630924856215226244957927109380207651227191324607810870305871615099732717101533249880817086818861269957402092624564279314727551301207486005523151543220894762981390210655281122249115982203846113673439632168800140646509808611863481439822499846897947181289007260298519898491758996263717233803222916493043648250333230308922053050130051836157800155948789628431203155688342713987179072026301743303298594236720386081540083457205065887090225816438885825259558386056521029859154428753350776830350271403281439099336022568453821791871017753056780170784967127766564034426519272441837855121100470002122915675448773043618418094222080983852685954500591478240870658914665912916341303305276949786438451944395481869904867697484341510868151318496277556764998349447275679446076693295100990434077022292462789569367651342112223134774643768700716880881785500288645793246325236504365490762758125915679067969553133617756881382597500498213409604281526115674478289649441212511826132718554542748397560964928051522636125900829902573310404575966400797770753668754166067141985117960755340362436792793755862617639706093570701246766727199757467280379461741163036858085068076063695115531244754632175445183446076888599316918212477831405197030015384103125233251717910357712140378062126378692167235447747310866343185885216145691653588891940587892405226232723993664984320568755373286920423983808729397918858419456229386025604776987989372015181362892156092087356592409985040602821929798727480800327928769703570184692950861887014960800163008071553462711619698125830328572024051390386274324200511140972067679853803001820447656190595612607878776088392827061002306546881303757532386614398865603463995026712599212439164153073261705946600903071623737741069980484730230161089832375353236143009069563948292370500468774028306548900621789050233797853537626272580242044855945226558191493336645398627693426616325003439096593461244818196813459263186517949506001749989152213852550102018808028951624886602931996663310213159089580761688016314400676587393505382648701175688609140881790032397747948469294391033393698095354323323037640984295519240086935527283476307424215722604452881885642459603679125634092822587876499824323385163421488968093136799134755090803480438142798409844280129143772064266561000954660843786369537023017074858516192457375359092682383264606987954169591935984705355681395681936481087698486007398413771764612300930016229157435419459467389844953882335079967246896571369097862771372644538120154197512226357885446762655087930991881758411306157830153637697695776982248395164036384951754685684140064821980046533298248324649269951661645353916743833136635547904643668422949943578601653466168798662946757108496569849398620126176788594454250041246696892332806781453943188573041981971546823224296373630811398646758089098170788604368382350776442341010166765969637836955570470484756702851849334559122295964488905327573098270434709212448499614660016794689162434376195278176585014839414208903749457434830795960227895366016010410634906820838814777583912421906355333853945902462466169927969237060599298780124692294104222351487081334702962100833025649096897426604255111219886518436291903557579824181745306291085577359620442110121039035727645459016184448765954294787311277620689324882832130685166035114766026004554999256568249470025735882897482063130928231532994023577288496807317365142471186737829926947187231597339376747992998968053199201491196727511447737781957256579200172852495284185673990918363124117531307074794312315998800233796282230387029842329227265792760675217409787413044594339502649097858380174492821955272363648439405166708400388423733136386680031640330514415115486579930767035642448772641472377581575931501618004911748608398717934563856934638708105141168190346601210864885875006982814972296733776508979236178162869991173235139595634132579999397975864585497311216509170139705977655507401079632528857331726871517341194173330625462264743791343074338116868940849629462492031730339173968484079873729451608240285965700674532589937308977350873938662865251218800148462217525934006159403787194041476349118166489928314801540446694690394561291976135514081287930910942178499456526489147614474815686535498569104782197139438069823577916751755758854518338713034868583837751933062025520056193122653271097837279074188423525322659791800990240605865101823328603282836746188441297664312883981925081019984481023342622990488397753010208223589707094709129679965428172963703008164986343464316993786412875245682626120745403800409437918043108662110332320577866609288257840932013077418402575402997959730081813781221568989071816610423648655370310926305181854377468827249034285928986133517569502209511804459941248342355716391782609656445878860924351521761257411881242654457510205406190649935420752946830250290448796889263039666447728003687888406997856510976775669402333777274368408588124776708590728941627432771153392469522897157433686794608813797376331315429018357391353864292376203026692803102059014577432630770831883148339109594624225160655610417962808928628220585294698857857059082429292540029967251494876404194401383167218173449823086620810726502548905636946472689933466200093134390607528155947931119965008694291275177160145106816532891211558850780393657643580173525205342361683913337056169423039989009186167418452052475038142518413884930050705143004992218972118493699702429815233907743502042442810059225274685407347574220258392959552383851168523857925133445266164696100526879017506358097454374741671373313521758595534355466363176417721618287664987710951587715372599146163869794052952012725991032816011992977480219642993148766408314190256302611181637814225949685385022085607886195463587890879772985626324079091307905312184848441717054537737219431961748610207109705294422985834625377917057131037424924882979014657038017081252962577648565910553122700565008804174483405762814872332303565791750100682178051106423776077783112319577598593801035050759394377774802879692047219765302681689860372572410356064583437935703314937044337819570940787943425916026719327122568945575971332490963467027089069581602852826351038866723867491405646706280883018918131163491619561874650270926752312800989052216544516556792101325630025846293459336989146164244577958129934166833054004530589043610817414904835036799971074538842328548295798945042941189211104363162208589478707136557650993019186871605611268258840587446057407836672384032801040176860484227734038681969652739792117066545265421803055007046204621392544221153793610764444023044249684659244270342976864774126666843257725875279849044023048154972968778957460758628612741540975838370473952629308124574918281707846973184472066958901020690831173976353921947610161036540698408961073438667515879281693797726723777127741332983418952661633172636570210811064345996299621918613834555494747297518927932047013453577135615623413504225387547922377462368872274957957613173322573703682149703013062076276287942287415316161058599831994812803233583900925373241700980769130889285133372190080239672729454500579358867904017578806031526632630833758710288691733008782595464675850226400577893092967746301040798587126693550603351415557431864460038771938357005605812330620598865112996687580665967445229898701207743849081251713073876437989264871515226606248416937444796317444081647633703745229965590001882027497131608775287748473385652880418688138826671276972032298135048473905956291290865705732245572110935313456839318227538007584847310407223268917005909068929519840694245017151798882173719820222715547736924249059988766929296744980222160517076702763150453318214161202820414446553425441654749110786567344550070735047613633489286358278818752074857540156239798654308584719707424771095630867296724785529716747731704077299914861647935219567176753567410264623476063757875875249489126367947560875682156476937226998566201918594193441440749440366637359564026865712863972495302748726153273338053635924049999131642058541715517125488952069703611167791393333277349989577262246759834610677982461930869802370742788847387744902283587026608507562783731890928955794573307732608910994037410460165012057182022367937685785757155885512155797102038734913334197967512691499836740291668659198568919070797475266019863301113209334178887982978935960151659404982812841408717705943540593014891983679828280163323854332896729834391199381999757292286415592157396608684731128297304082244857519679468320680775614590449282304918051932929952626604746007828828014617818389130791098239303250824496123450759537772623803879031555833357390358474572181467605175397115038006165417669154719052651410822617442419127591993992181038093276492344381178620878802323882532579884593325905766015223678266443804880234896214278618995198912667629828761662128803230676266788301809101508476012250778929739334063180007123600445920422531038363348507166976740740342678555697956285546756751866063454650003477168316197805350045845112940491123872030783462676751480964828067901728246920925629826346053582220354922690288599420303219118181239719207045761038232302022033710195660761029060470323653844821031613154670310436594403416810392862069015279376302786272800717623599199271832065137781196064997898197752590676124203382201393672410072678740733682576332242724786928722835271905539309566264945523368468403781478919161715637683203443027803386964734771991960540453082212067083119903244072512702980279744055585208987478443858418750356502051884819888185207046210581055221234552789248089576226415753331903609253976287292732379840225342516871615716085249684020608532931239080068949800569863387293687032099463053001898725180846863329740182115877426932193501774778734938133549721632435751587866566052576064068263650956325090103143743928830883962863637898894453638998893505449769532612348058560580343474917137967109260750600673969664964867806688300850646641349768988585256143187299445283949473893875007618069776271354872388994037771671601351631426520961817916584164075962883907091476508053516157289404435202636726453609473641666100540815756449802835937663697035435172102020421154841788996311861469187056960012573136190062777860904899841833837174403907856166392784223105686788009162835974864393780578506480205460183918477634791762250991916956118844461865900542049025722413911447030778789136100027933879793069219656520002738378536592502143779542980667850463641227208223397474686485658632158278456606980379368821725264686190783035905126396823973589123089869878748436861622694581600474248977162213807556460409748946171021666927086096356074184321437802796002005683296617291177929421154153511877763638762345201595123481080038722673134224878026863604280283440689085780843520945537025863136970156384501277962183394115536963188843006527760952597287396242743988312371470067714473292288938418925573106886731339459757703981187064791358947758126338250131122817079364336063627899264631901149636385400337316221685211652956124207590535473877651605598894065793152786676185697797605217620634123862858209397817305200698316958962316854910171721832993099476050316408290100805440447224077543232848279435484510957944722351197721009441492921099672558220433430073013537651060426272762019985732879376370097827864791003646786476986525099740882395910981081140578566588098173070451070462961882708099829846546296868839756680907956856828753292118286284832640615948194529923584071545495334013648483888078109547562970332622146139423442320744696023936433777571623111269744306740315299080230641720983790280503821972665607073185162535211890352665844621758408640545903177642857007023362890536987474253506461529971559908939291916650244906272014955644420378372017401582772667444435263975333569044997767453736762398056222411321531771761632274129331751505221444894333662812338138368279703729101937476703266548432399913756408944581205555946651589159938376371984421250890766732627307990174003091726246530237206748218155505963154653403394678550724402261128195112055865283825011136819686358133320359388004765282088769000626712575272056243224543913097154773368280422681434296279904874039590698379722183641359639478968206401465561455640271288658038807544692029841443398229230882876131459458349647888363481675650283605454551058663802933069693732177009073362965443978998543397868690279745780758247949131522300432160147355984346733028726448425098563160469754928432041837342436233482057538664515435328277331619096639230771314699849881358939898454973912116983981745410340659134520811986875163539472893809782912576629898672616147758051254193393365578633706491575879673609846844645386567784563830951601723590162457351646173741692012936122547215889759880281544742469982072290247524240442902934210184042791074976527454859979522561662558177975129635588032778875035073321571366795764361524634409496179098657228758981319602533065828250924679201581441461075512748528491298297498547973189943921851615989336251601732796034524653252099883222513258481582119121138451396521153766968668483180920374125369463926370290770296304855328019102723886102633555856842460283747043845973409522781138096601832873905345832804670544425968439930141914673945646305022470660938055832267666851740854496087184613775397529780392411433825911086374835917025639499419573145704087066043615290681179249904897378394384126762530394564149558625947916247322597278676850932088354420700271479935593477316579748241946278140264067549630079164267710868502701799881197454421896909746373581636845525065475188709897577495247033485694814374590830565564309154525156585651788976714324199070268277053065706562079564789547461455868241157537854181841355936229474735655772752850181268419253224469435751542701231985796425226012983723602530752386669949194978838481866349096963424412576470369979639877024356231616746457524810837329036678975130420094820811341308943171752698562234088468348302934917293675248113819593297729503253878244617037783205087079389087302889895302461967444590106097026004008164496992661029257448977700798835116305878305843642048399813402819142559375897127017804720345345076361140259325324113637850197266776285896542222942184842973012388001535245341544134509643507631297151416632434256828198188297624716378522883018542316768086663941003662567812974927752604336936531364239448314018986583136331366067106398463965530125725752474584214306689721739764205142699331509528604244479463610827622515628502832109011343004561668011013121668460185332910087328931576390952870023420964451528726017186513941420002683132094626422333153707060855052867453453124903491306015299876719796623455206697825248236310065955676202983911020056736172348694802912683687329566115820755081196203441542791656377852127714812740903785003029934270745033267628052425331105569865208051646572552016919996644674282361880434095704105853214598219540316124998142604290911834753060165804115991371918295687244675126444282905827180099048880387157322901092064320509294497665454052042337504043359385864115250826190361082771514336556164872580505581400187388687175225598900659099637014489129300216690987968538150925659885124022468715040021177498424916525127149656300683227756799244265178809429512043513999698105708603114512794320569950181087661728058969153128516986992183001035862192742553999502668166719517930810004815141625207298403537985340401843514700515180446051991464405279895202982256005804464208307962190519602026412720050253025003489577275147484662821063702899143273802096141348688572659323167150804139436460462987811596003733273139080801820533722020692880559702677518150074145647183653457909418264948875908785110694132935820838776611752527721677540516762760147033199995349002708353616035993996791249695000870659477861933664092206536043091444382914401440577117115243065031716472763855171095995510538792663279613293324068945358180359103769789051788196026754372521852263573575709306825322522406396954340432434807477291930467670081101919834307264546263658708458101936187223504170926743286246434753486815418158715516208628708837321827300684955681307108154835351567949902955846443273177795022911411139765582547004886906145574262194597091703363526168504444959168785547239143319490228020262873589539396449912746931300622395718372240203487904423011322653672739205949784090085807762147927783076520270492292658953118885956904257306615954477788389808550447479253816090258848468033393759880047121736673152820764377846906032751167206180617282444052236353113998791242295545096137335793953136028676115923735617484651611518011657766298735566238044853511347305564035235802618573559001187694174072202653636909983627115626332048173586525601106787950823417977916229369095198184833696549428823211064165058349919035998418225295006710135545462667371386409735480494194796115406845875500194269313196753379528173735961335365528959667498776579479884794198816759865024217923936868757881430039908327838073917178632897452775825538981291105756584546114054783579837760969736904729008565008601247175001418031830510821526991369237241319596038382208156569992788535999866546774158217167587170809666023344039718822064139861486236754994612432517898785604877351286675030707084014294654313370551481667241045731847559086832301346602580963897556096252347305265021918126096245629073156774051685146448376308337111536158427680711607474964503014648038228448766181873546003644370096912291700712467571391001121989767397495661994885650207356223188617117444006882676265452760107787552269516744869211038095593869935518940297475960801816808764681846613157581731715069583915859033029389704232671382430398999402649616856161165084459396220075153875075061576191382069106435999169215364318426317109942539373599950753825375320743767302078667548320203498116529405477543500424168440329608387079518288085601991980788054585477593713038359793297503642752027729997909601098678285973830983574326612183496559024581360518281293649491297813344346605615035821319666346887403854265135675544798265462151981972163578327573825300130069939871894413564437700890806218705885376907993599030113892636144596603734467949683945203937230803940707085694021983457228099018473161358278605103082993958490189676159877462989851177521768491344440929929935771625867063550727401646220866030017993085257045122303623449363242818719391101268875143276503642187289999560417785681200193705195431100131011833859849635114637903477331744318710435948636716321902802882467348225326973001608339459759058478001607149611736210090042234648482971123714618014337619532942385828687912609487398553188976474244415660071243207502793144763597492777692592989205388512810876136258762945680743515095836762273494296283778010183034663254367445552195328821382501650949154270109786671388085814516917401592259036877462416270627595498035181444098536606109161900369437094025493308178122994819827555368959908371801578634944943009862897492974357989299558377284338123085319783671314289069071974591294102076532212433030486448354999334528661994108160851946970671708760789193879134933927813379953358047559547037828981210477449455031013635739123822540620326168717638160789610215177602592809684236403842010356227721224635685289326553938155922637482957563540263709668680722802141655879293834810283061608753334747778152874757296702405293288783180126951961415073703465003629405306012280595467973869616953802818085861330363631646187918479666934947083710117818045999360797811846779898879847864611946624313444587515714070256916155070015910646794250355915307745170040003885464044525527144323152693181154527225574914569815525597123587874267117909949714933650099628874768297256609492855122284944791945954720198758203573465490475304332846346992883747804260082369913327653325159572823040084738662874977083569049480790680518612559291295121412998954084610765344059790598769437170291292342054019644886663604081171326842830606454618805572183424311567329012674305702735355413394818992527070843175333486118104793566621815646928002773844893939651014334140262826631465615574924504070600738806112696128235616321483068060137921389951057449813714399974887719307477368941986625022705250415380970148953997145656530794640989345959945643777634064084258933752443014875459355090148592630360735362829648085405280167161628514145122886653046946024540458984692079043270563334439098641681694202101330128658706161253549090121919083914456119934087307202451240307899407308638089562991569716584792904502653709838352723808626344277126096939913670081285870123297058806855839769311403375897968345429289521912105599063009473516939515386030122437266911223999559098533545367621301785395198810239335680244368484631939325115226988911437258291749703912971733443816227987282300548522212119160810597822389848888897454006806115884534269303221593247827811394873644894338895010194946088952335254725396353596621289559019725092910388170193668203652555648926192909217232110855267170800414868415784920953119880960203375084294198557441815612932554763669296231369554651296850306928605267537397156682900572824637534032131175821682409779785479203834988684911426608432136458899123474651147535557478080100860103570447094902229266868381018002362265712717016080916053339381358220971484669919380521533903856306244000044077944104255879944477650301847681839405564788089374491909048218565343916347529209699345003988751035442840249148932310367638623063832481635588958045355006893145141438311809185703729739037984777888247857274083568791376914729336211888231382062717422010258335576242328601472517661703009032931647126745662503487771001377346657890463876104714711143736683193813223894910857256824839724716416270085971421903584047752609373643983296765504703250929730311580179957225716073295171159386050256452653937331235666917690833802138665608426676946965609741121149785436258753120611261962809915106579214740396694027436760850318060306512066853927377608623208802046180904947271875555472965177762701210489805310769730223603759744971082017269793520011719843736827911947916028936959882354744275474649531285986230386496119598815660767268854890973905905929478044816957495810397959144183560586249426347531273738212971970276440289101625507190015090329352612713974606329595573409952008352181496920621591844713363533357415831051724814038751305418404120871465009066190828924334666375289091211846541191768272954368599544211705411658248570856802922016405981547480350240768663479309168829764382195583421900267793674357597231452807851373826869212828119150105103785856096567653886010359466960867858415085743790947259974081986374035227820579884812240453428459832641837810805845370323166575802672731653989078297938313450064132091895947038283548983554920998891265361504992488538430684971989918507300547704233902954808693301004989064844127885310081554508054634180129740596542664264787097035911886050285783894073473880822528767895028152800817761451267915052298297856614278270432328505217467113271407905691494567207014860806916232663328301773717682863163563956713551229553923540063093422201324223877785787958533049631859004705131603004709132740577390196957027305550909313644644443397863274232218111729819471852126903852298825387351825093650450942403671044854350791656337141543811173197700948801971438009435769975161886853401579490322516130390579003788909456021531378641664234431432302296423090027272792705445562058083441877594573925709727915792536750864766723366154101052779109349352555775915579333568145874226065056304731330858852506715918374862551597646601040166326896612519006621582887212326795235997381153628573649919075030735460635908792467265095907125408833311727786207740672814412752571378950259301499185167106995806867796251715855593484526111780506510879786797422765612230600953475860805836468453235250165647024109634300661122213588863268791194275913182760295578513762532940450110088273746505844378439065180812903178710444146868216190813790812042868611582672630632108303492380629940144626139116295822565901744144313593312999410556352296633809686794721406580451417922418243162368439278817499917260749212641112093343871086570346105334689655469520843816038418612437999866016822713696211936683142057280186081507322562743463588395685450440690266662314077746243979021373345641458236245694693729894959491660865283750977056236485295865778073970431019305767916170340341902342721754396072702318925509605647362502844383589119282824511311099929728091477016662502188014204612087253444893512388339828767961576256153752381723829666802221094479481353692637218864634894886014778332140862362826301510891062459705053113235666909768335274566651579566507060369700070347728267957879381782208520536858598735435181224613912034269412262741602541666030668064353215283371970208489895770781712729308154324566623897925586973666982000195633138110236538976504709245464115575204781184311618311247371570548880782376924817894425162763539013293843029163562253246154372456261174966329404263503067420030245579900984323784304544812051857826968656416666020539449112912007430246546996315000181683000601514521529240089327277472282589161063844607711038357442444790292647766533784490855417160317337871588029271510630171642281332156860889510200284546333624052579504979914980276958975214550107720428104451906814073471292915749220788140817705576095417664073422442409234802821000163459923332663333666335249726926365716300504344420334128984089751258645899168573825714256397468934180499290094108528855171223991122197533833231474970035230807901558193662990179376071732310414700250885695441469256880413991116562137498605761783382417040446038176653706880855795803837265933792765923133463978666362962891433162365648445234009287023980490468330314222735077526337490577792835952721421480491895526353745150630761433255064227859538454303887542848959727791165238252590031116217273186594781480465238366647038094792787369770073052238531247903221377206615400980829815888829775504768980486969380215511369731325067032264292996200546393731151079835640895417357939458440039920599588617129384943270990661563009807288915173082641796684103767574440410426151480551719611607904146627839605926475606313918879760440046751128987812437273806499818317718117328361319618182288696794153055504019417572141563166590927234524018543086035504380629988155660508962167721872806874529769108032618296966150669706116533527629471450334821793132549726615981546168009931495627669855308755500292476537605694131949434906839868845416338050715990473947707474134289607948546045165095117317924689051412603649280708169928415890295394071142379494580627249678605971013422806009604195014359061392098904293643008978777439942065821092099034993842673669780680015328668118886029813431806540453197101085055389617389930801267270072791526653632957116493979117371605049149582348330428920227745550223112629594212165812002413230886953912186725708847439425690277810041559294415956858834952612815904492146678769618049506989582375522939449757389266799693295905266254450511272051969181256189796730167871208184007922829954248019574133475296677298113036228987588295983292038238618050932905956721749987288455564657304681108951042909278475744690608136476884341128629737485215497603235057891557725989142190862246967192153484727043684409075139423965429453170010140042944848623111716191061776912303723793212710350716588951157811469779253460940496978087190061237418323266757440142215708555296225260770428337474859604577438061925096737941414989820946844231016922989992871478464721746246310807154239602630985298538325307968145778140268352269984678465846824393865047446803090266264965240269034522350582755424592789344998094746502700116284748111225987157632662270368694976781565907060111436021086485832831052439566702000066045576471308892468958861615864763195059324650517076312172962156330400435375306593536574876562139993507771188600989479232750296394732993158966061530717611457156322038370795868959701965961647804031930791847149633299517418462903060582665487082646890799327846616651991581708972820891085468424692352160449607888577980274784955794253660063186351601592353681252679156649738427537684451894563868022018110869701780294053114948807814619918697274421046297252451586521985745909826555365207314268065181035313984801328051994172852302725902068619003862277635388388219133185305110055448594589890616801920151376111466052197757647521652276430504727806428385281574233138500226560167471690298284752438420292440371468695428592005376460746401998895733429798189326575652517397553662634156010213231968909788752403769725465758129334040331402169769451729937083876353682403632996159984109821014397861752285470874805577136334789635514723893660429578428637772367988344910765337422421852905122154613329492283038488626977247117683989412823359039103279583441155126989327541810029989008608799272054249305273668838332028059643002506997903051126577466074714710735441977806524917876472245679863404243606700776949245641416647862238756852480048464404433559047606558701816969810770873645028229895568990473928734113510179797360807336656542080220365279446626854416042582635165712647156984169141328201384623272717027820531495703541492523680563041007999280250606854656074552751725764643275763712620310541128962099022971935575187809421140071322392482627772272377641043264285963657283458383656920013742340492939648712998810122399552039045815458291524615341610585041378242908149921863948862702797811989933914503465359985896145747798586210497752094713091007171110085072075483735777782653520136085590670437118859618123511740838470697221657712038196247769737213740509263182313798024832114989119687156386060778705303926148285681370861993894279974330370539524194127552286956715413971619451966153769630530710526187521582573250360518682893868508007362573631480587546597951236409015013570604879690650136421750530410547702148803102352711673803192243606606348643931016191279531113277255578316722715300807399468214034435016937027485933874263669949504494678146542772111173085730642842774209223023863426878104976796423073198560290257588013353812063070355024094498740602386889508559639832950481677793390270751672251358635617751269418079929278233548981841802811596454791502266577640266791255862431848050513586158324043563563897258318040896283841454505917210278158414918061233588513796737667485166033166030791004777642162142865061746479520578145066974768410712735085018049626120786980909124510796337305566333894472620041489665228883937688605097212507220397921901355805267587423349070169405316586436935695678675044864297301667575274883423781264083277852196519596350483554963563978304584981220934953516094904485376585507135609774979760534032341845087996760923538909991544850080483695741265540084337616160387736859827699241926775756142342445967144943201158262899082843574929452535695090752889137036949909088506534948952500841940395610411962506531618699456031495582992228954773556527419807482451593177070137790844581478563391878274147084099426378337193451362489613066859251609970396354646235166001509321378353671453020556274185865807980310585786481337123106237175402644396612299312829052406582939055148316059041221726064974713447045203525226572058976154242106690760351626712854729883912619281606427724101848768788305780699151471214615641512063668083184943357032957351743562802887561285616499676651201712615591002750875799973404880633564509015527763861023465172208755114899661082454264365526420273261515583020745509470414065713697149173743104976308267992496007789043196422701811351340783392853905994320321148802517895013800854679205401184535082535979500220211521641071382416862400816212365824274292655921844525536003974467136634408912758748902899775004703213895686644737991349016530193629875492505025119489514860805847165462058231565345147224525936857599122484473347352899706733953788158264671066229274074264603794383054253109226775390702680934651402468616154605695203432718963577963112481247621936933827763106242231202597737951112176556173381292624866383859325755944868756516056481496247891653238971767637209450728819035595332297987381484847707603721765350221797958964347586707423612185568107058366733417445026414663303300289054023855071158553727015609777456881179834607092279508392911401122133893533087084399440243086136118487156046453650724276618330908886718516408053526471800679796847189511855508368416808283912664857618289988457749436273647441463750589539066477075676462618852042667220556085523994941661609368565159447146733497895793087834872974599727821838081818514646775515553309305703640064037234933986233372608021232219990982902790248920013405934592955865571229673306413889460416137722983513428877960490455818291270448156444215052054028569925559854232638655625720500935213758329377510950665714698761646717660612550733009833159984451312117458167485385924295673739870352469577352954952554375114600016183199297516255015158174813026213487612881028154869213343494816264880613074454072351173843774912520062320200051374029531967950440526308473755026475920488744154977716669466262461356034862604532363407178899557990669601423782688062137143333491712773492866647483337506546793120232734550414966718386908188441834250045770160464182117374088174181108171435501546309545202716764652566272654771202759984231016645144443589081730809271466586214995888320897020332693150964830997369801940428259327763177764977867646504685984971343678368372802739970471476998909471518144923885836525386655691738274863800899181755687280689000476261487444486511432704723209469148276788455123470683373020371672482872720863247706196039881327614039752986300822715549428351040834724261248140650686443643834903589624745146033571264804873260322500054254663735361795927331433653964504995480681337253180041498682235960455416575115777967448480188361333737401784268653016095581957039396149313432472995908842191667022228582458361836251762978941617216770083896462297520540690722847416116817919929306630286863514055789170426866906596778282359114160698593162508872783532803781151707004727292340137582309628806357643057944194931170064635178007638519733745681511443525409069816068524654124902671200060932444714495876272646272201142594642812866945117450078187233378104434885960732008573590534472979152619946326747896826032534335029662661241379489603207150015020548829107036996842592668366616767469695613091479913746312748649981756677864587844896454830343565793812679149773666096902235813519364426152952715839792835787924491071223650789626467379992457960012586079375806863172416391044545542290045715417680881631718683724983096295840182281790613383995036199446686156977601851688904405898693675239275475770219400532023578513036919456301294050568916736037973731227171508487770114900559718791846807010463199251817339874707241944639996712026664867550089798441795268545119141471577301569717875622855903981830960422140802351423665312970368006548771816168468057233594705107551726128635784298669215163085261421979683525204203586895540130305798145441880947041318488187340492740263164326576892476312629265283466573221215557179455746930958408070581691977948751224482992498991746256104079080305778119776361947967507744022278699277223451820817398071653893924976016144137663430947989798667175417075567441735481139725552381602239663868954089848125489831542643910300904376336024093557457146359017949237908279034012469162278785465141540724613687378190588598237224818541068256144334641423437818504286551852457326674360583377761386265876200478823187122862350118816133060519930001255105451019568209741171150931881949263298427555764084331933290010638887935057986113857939359434390919210189028851195561570555305292112305659798501040798930960068055846450261818779298268152043806433133177109302502698957198756392178333795428172260483525890883589296090571120285977209042279973361304236953663579167268774595843160608632384786433555745323497330336426491158481950710247606638621697427147610982055315852572222646289684971143155556932704969085624314396951078152593547806851757100844787600230793138905579581590444789138326900282549172861203348831350629485158572556503737934117730656476319608913707899823882695294711744044427724924141019523427976356657463184601692531404495923274750762429246498777770207013532432852207822022637555641307361700462636666877360316749720738404873081528383108831021601693940697629515887484134167815764355691103064106860586125930780994671877993591637777539331958247443753628214323511704793174941499719745879193697199905423868112519897917928312065406413646467791329581298784630997770366629115674335450471351473321079142892190028187553680741146642588659840821204832882574000761875936621838094443682286256286755842490227742610925081731003262011072589438949340723063708312510700931140077659063431045830012189143669223476308971576658547229441600167182691338198628982999311247938335175061638501568423591954383495193107133710077471695133264837729068089396515836448457869063246574566740989065287363504365250839355959822874920048965338398308831371409480029029515006686862034937806685046821100745894144044480438410429662830732481167882396540078853338388291179227573345436749956457565894918472232253032267342316228203687650987732355323775680955835758454351676131166123467429228337425017020717434452013859118835055454719633209563287051058172068769237681358087145721237392008826222885199846442602397399764078004703434415264781592280867601114100119288336470302597301917603172195053698262415575453888598585473348624755176859536983456538900637411819042317241317253494612942339959455202843239656483604887365731382006922836607422521829116181857072221414374860922727016860122415156946626946560046694617165801873312635216680187944036033158936787795884748394008720252240360354592830032148435970375084289732233391678708538254192401489370403239276614193565678333038716749151810342066587545024568251121491428388660056582588041560916939460235973843315949402994550321267308036957009236367644685090882142669950030413361632157516341336296632032656784943429937484376597368575420879821419093239345463486331695973568333450829606472880347303383951317524530765379094776470126859906893755196744384495745411772322054916787691915250969373435524198195939151726288070558935623780011136108308768423639011447027149426772814375635230077563952416677687463950324020296827618553804754206696654225636008425910561684307520003924810416726197975410286604707221320681872352045469146014154068529675844648360570404408175559531945707795472640120215839314530246479102898557872232498745538180982918876005882742218612276553515619818638350370435184384976918288653970697209596638187289715984672188828328922331036439328525024810339002544234545025423352678669290569519693228522235840360829973539448279191211447580456792427075443163831085507600295022607117925725596350353142170894599442197818280715998331636327682401790218447601586371335005945137534887514721695937892724218603601828980999268247553568720515158211323479884549944589773590552178930125660280772790748999292190070522467379681322322414777342862043875834385967229703827194868543184014835782224769525332954564682881778030737746457041146177274958241386236084071876526429975240394501067862197758538555664827703913222459121102509924582201928963225808162739154892449570587143024367348231971239114629161162439817111505722408449556014947848396981349643760641386769063056580113787092577149641861087974071715071952535611494361822942857036834047326965404117189921585916192127293663746999453186078427447768812228778962112654991321962595583144894214614090752055605219497506788793218325989784866035114823615448157746380838602765974461880413745707653163091187660138677154342380908973235503280775825707775700501468976868295361591566484209413231143634642920772888493090220226862593623083019687858095347385347850653534687241368584048282118149006631835266632634521219493854405179266716911785236699848319722260111152379937671125823944155132085383267467551197508402314129317490558550396520694426679122106016300431022546820563897168810739870987155312807291277524569193140617095330215862046433010022040348999034841144706220054584353773750490887793643892515056411229759664199773818887944805639482753409140106994617005822398480917545179723564059863535144323684456652776067764165898432799347804771687000419432816152519115872812054692855178125865570731366688736781509653464674481841346687379249038539187366335610788930932632350654348134400932571195849231173257581710463513306750328474874259880123272375112335779079446116524938010398644254934441405399887214895969590350875921202439230888956130538767059329093313095406438814638474502755694678804931151242385007568509732193799732168950621352047533985027739387613771184601728235147194307164341200462916279751424551135562418500185727686100222655286159133887855038348810308215684804596384347113189936021790257753287835723921474304225378099258406183780026529464928363956929031576822443784306095535273576257350640178843064172712829268849520393080897155790090127219937720428274839538315608971600667931336304691056271945587924730177129865752261464630294276667617552242739012107727470978637963923507337230260733284407790831453240487656569528420528688339218535899585895691439153280416352255354395782043695794906119436187663623405488419166240366973427522755122650111286291353028216224688289460914182527526812736780637719947889209079461709602266693912911313009910314664269593009453692336049377935948372354675684956188827838390338038539998507718630598785090161629436362368627535081984487696191510250427246558160892922572708693165318346042516694839245124349408190235972689830627658613855158802716997843788553680313127461623122896247973324312480170046918811231953988642511885172786701649044101311398146500426009098704661337896720094455212814568071652093744999711794110701308511326348538645223476730852921005637027501008313886535361877933208889478467476721631885897827931192956650938129192527426178099331911284034283070976377558488068485490159710479715848880632229040565749935031367458502394310482172459896061647346758809636496416232334817802639694813107142264928079191604852820818283351219823704103529941288668860727067208145724594124565679008816946848391953556911084039995580103793323703950335609902436129722526882457696498874047374153816137906102925703034142057645649957260359613603042447764092643727197800125012995209887010114320654681955164649271080826992407908527415059299480843993908061893945901209298161200650789845404353440418265843209028410532311214510625471826347199188186142596971112083562959071876752424874653536880135821631561571280711331294961151681053286613747953575219222760383840102942254031736350944402334812435117487229640579047355908088941583347082118254291752693307208307940226814411495616973871051466333487583328773016058082108752031154008219796839145686972409128282193929959578064531836296596197390006784404814049768113220911752993275142549046806470107494072501063346497875371645285975645832317536778965909471946668801233301084446602567529130839192637931528179165257752213054246621238471084877764799232619146986418001060384895738422445274702685750351810601347976019737186509009751322374145465596937451019487714912220627328057195584372375857404940913250295873349208664666117302536285677106657869886138163179135749842922858715799801750011087808974560162333225091469343230901392508910892322256254629489572360181611262469382125551074861663220888703968907371407369339249515437447984296122994588067401016151147028691779030269572001217865733230189674998258823291343691677209804749942100682853939415654328865456717951031452953997944344813642057363565013380783705385564967577240366463876024858355960685283797598848452960920539074369785567379450016258257217414549363139459845120474905491473394746321365039699394253945545139666835643369094542277190517429298402509796687503883713335062601955031389767158833712733133437913195978963624582029765551196665627493894382106328215730859198302669364852031409791996014478644476886355648922720876454481936181261092020799285512315194834449569347834454191503540235991699615206013113404868677721788781484010189178767917490260633466081309852024808610276769705785498972122936908816636000278981364193196212348454570093170824911259732574241151452677695491510524209503946476842950610862582551986325978808906133531622235485100438298841141477228120506484529184324665454235090566772008575616688716764757513403454127227813121676923289823570929829635792604853944290831984814289795586925262601015472228721847026037184168275323009823620382509506512013278117995253883951760015649576603464828526808269380805744004059046655440950670527093800028343088888118875118412708470279801482536023295648505638963382883138873047361445908568925603914714231423618487834094402935354269902287881336158512829927119358897126157971755923603548617222414057148487026637221643236549563002429502627215535949891384442141372188836207559443057060916533663167744980423324859348212953700417338019603068122668638818497073407767760565008190252108253002663775301029944788004803992099053272849850953751320410480954431939852623625608539342418041980023328927646507513109624064454991057633809095495488675095903344146862137825915793415334697498264503609889990145745993823376831647417874016707342236326915340488295968915420371384562935423718420171170853701026522415480684701973282362869518613584383663471197190792589949923633235295481162611957519921573938545231806977901513285366509029307395056395384335465841787349679422492655996365353183314812578101933928109000701522223545258909344168242467164095184757332434843109894398020591376830335108970233935201212803629072843286776035456426606496936672324170398706358595427947913468493362297638403558784362218907729790156035258715009163550892148886731733977596665612418808814214398865607341272462613757933208320490852863492122141597521939028006683746569213099838730878169294907806225870105737691140132611514789482627229724072487462881287068745392231857184331413563188913199854091654242743043935609533644825192522545216419217404147879651825891194267804403152339704463615137556070840227060658183543616222486287945535693726311829880856942630553586145466451503253733708820745622311613084594459023880943221497523575983198638856209397398919409347572839282610579467226711193945028334189454153546641323817748179450767072096501810086838520024614951657493565117772902029549197477795484844571595620133449552255357940150738731048200192723693593716671591375264634275021773561424978137710476277589274491240877341605398532107975682611082249894534973281139192527010436617278713207078419886777230321516067255222732960579406071229578455766702129332140031448398929289783834039443406001083610032879649340216541705131637568185145154015518526598196890782371082966803486611966748987999099362789590840686824723964087353783331733003959242924715698688769351186308414464332774978737571530904447695098169320861371406478858625897697043384795429862942817974332180271389931961745531911746706209164508877382906198286442879674762921080747128210212598855125902019481083991932238858520904144205811968269159442808429411958964581059872829372908295591418518919353954849076575266663575461710027071613294518297180252181058344822315888143422514333994993586208686624458964432768346978050810007903928988194198321542232702617974518182223115019043586469853144371996375086019955978171766084168744166013218752649454941877589759469633661873180194883263674550989534129898775955052890832858710769569917691253796010852625145092769928269836607507861951954900327863473734382206610700915510698367176364312055419000457780836902796914708090127061463726713579614716314444799671126735051049055606135983859672995013537416229520809474962560013501818473885467078866370840347982488716848580416209419955187697213583697684303248799047178620858044432512951265325204032466249945896921237834805353020094143291763362504127413842614749042488217226514072515856978434784317812282026813436766477206420989001688486392976997248736922948813161099440488348177687467842795187182691477829997516540175480487370735888170473068425379640971531041454672985104728617491081029366701938809080417639975643897273925475469630827728273097779097568311907337239880063206981560249120159478337362651760794216707460916466388112286678727566145173368931658317052526596305527167757165088229428167944170028669323154535450507815919323660049218545912728097842896455367592119885281651008140218765959331529440818631011311124114631100299064004538669280984677859595728912887248303081528094037693894871928502701901792816954753466270857738501036349691010208039656622377703619348505015086625010397463744064615625591032890087175658645197507833164710162829978216925786371271580724125450999418837472255468404071491037918715920783212152365139447167725337923049762244154253742534419984934972998634230544174723440293777607533578222400653821459558740110077694427292653493622762033636815917126474760202392697777806833537154685641670578907809118544711456198933248263913764216942076573084344580342503068036591324495572605400465158393416882780623038605890171747404614389414357999062793547730617411577717736385892323733901051592287241020341538940118268883368721096161395333966279463430997555108582394077450577787440677018494525792838162873637805254722471786390185147549741254727849766845243139285466444407998990713786296778694199470642890214947847508467754526592717006253358715254224234066349792335223964018598310328673225373911183446396567299254654061579566161042478401852722286160474394095150220898647686887712130299013187484822675060711038117674608403588040131576327386580990024184465380430084908862941508829259272405312793007171111269747100319706354802942527199376339118789963476790722940715760208811311946144979418314995037209455753375475489884768549996863765343110098846372318875180257306871524149553358232452136712412036314995698092049110624771779512313263285033081919092624752658255387326238433095682489051768621675531018747820850328876638176101269109665959349570642890774590878705528827280775248713242270293267463013960646268399028085765909063455613261731075114497136343852050013766996379444347979958928112108306592673034253270695282946383247485433350966102745255533719977905827230452683987420787749992946241159761131383384025453878303801925554361709801390412497591804046587029388909191096614920246117985806788517300899844657820149961190923424670970714633157056043217754856981395686231870118603601162457200455662030357168133996117909012405221663142671575404975152871802854202725852809252057771298585943695513203158198113655418268067880025075954280052826651569419659262762029483841980873519559726566989714855089318741130686212920673039231570220007359583319715624805566660735074298940593083501288385748133985820408734792511961973407498869867692124855165049836619600107859812762246717283197628193138636362850569566885296746598524146619758803880105418351496173713836875908601136640360353499997515944969867081013299625002387135220318166018296310117541901721528107120139457423871786719801238583338507018714872588134436836259970590171216424656276579733866998057166570335005563931260638973073084973402847382712200533402437252379349184551638233076746909666690647709605246785774578154001753774238507625836594031581329750177146352010257592920892643767542189734230796985466100993756678160400854896788694940437316645416434074695995873884404201265104335185971509329697185833404540669079135146731834357501904466366805213902732287996785696599661780576153821930837383158951305722928721344734029672526875144086075894708214034438073928029872724897252582652265833261316264037923616741106017131895314629891294165315919304410687533948692023537423417889410429651110736587653383894360942432097831178856920040208410808281222242531999713804718533857497159931913432854517210676089567503403607911797187931053079391358220591893470182374167685341899574232889370493670388910128571186943380486005600614556559837840404461720432810042365987076598102289764996712897634702038092828269034256744979056589965673727020049294853027927856866204818045188050466822128984369047041445509141494758547751686609821698078069817411392880340972307638604504904529196755791275796010533832703265676086487325789389331014195238220915482173688917439160290426172106892033282786351327758740989047516775138961751073779077493450264802622428424491723627935203784149997762194668328452865912134460650620622177137031933377143529618111373914824878178563549063150606333537961539733467581258959727481578257540648912104237715101584093130764331576064745833552609570508852252750384710611428298701474063658821600698872242285971208849313394967735335931599117033509105585090574977505033308831487647046516962038010476372817348780266936034755302574843700397200241387925773953757149527365195139775997694435198347670787216271243444815426298598060447738215270539956297469180244911534847360862291838154035054887397217825567070158720602405702748818325098649368222836761788097295737121440473673484527123936113132549800092208021629553468752209218095148103054294737725659158048685364507422630558248145865206609266245777351970106970536648802582251736806580488879459449535428399322168170085817454093182317797282869589799845965436173643973364163583622914621949135077983787518863249560286686621042036096294684894100481229991749655311845006305954938011599749524877774703431709243496234257333815787613259304521361936755991036768549032234240107280021336218125403356082450365647788473473297851861890954345374967591460268186941428888734270569131288283577331827288947179306272346580657276837703812815868833527568094825524066243792954708093804712623040628540524306011038013533674714316951858317083658330750142263272890235003450692983530983048207034544599625762821645633992584591576112555529720309980925786601468736252291780625231114917113739162157005006914727301538517572803022952303194648069491230664418210727215520595705949170052636395932583571169256666895586951281255592216224769144997724315710205723457155411528312304363939550617524683818722204043016190225395092440949779522237371861727552444655540965677680500774549884075756458632813665181443145563192939230108282886520757136937351891897466837939067548997784745219630104918660276561487723970976977709814779377242075671755963233942098085127321328404335887372719012466153895228447640827974135302463150977191876092724662973863659317940553062738405994367930327767948502629092950629653829902262015660786299624121744765132858092219099228464379526437028160911061825280670078155287834461343054121940768756926497108933809694671941909206922329299300979093553608139343097941537487442750875036175506463747525616458402349696141328104285843552683762138570725967971285484590404066054669590371530715740065601884042268307788035287100156759780399271920214176284272241829611461602564196667951649482653483886747166795526985264088453854129646449710478648549658916637447810333316596784127241743357287221131397240198814722729471088430401081973531602685152876246914280533888195157128587199699162610366811467403326765272861135133901714753762230179922601283089875797525556798402614860198268705046598510780274266964419602918259169020642093560963797883655388630220423282230757048797386537814100416987948925949473235346973239851711103392805314490065193738316151412027638709474054611705782773051179091584844575612826914806766209714328396363413591087358759632052396980295763670039025742013132097915175299903445349114084387761738203840979689213086379522723682105523312773741781764620815968367421353043892225759243771287694788002405450929145847495271229824685779238130465114057908398617836818376602455588915445370309485455804335282102184837306768649343437255713854722022607383928721977304070918347854640083851304611986758393147904177918099784012557302418482500657583238988108217763199536398268772934716666296310773199514999414611470158554450443409209414491513306033269826156690739644898562676643648593017626916166978225696349875219138673570792705666981439108931195075233410154902736782148854312843812388278958607207730090512258743612214324293492512444589497024483073075082524132967064332242951241571276390932248573384425575688692715299161209199530434413338783369600083282151777651715557646312699440383231396424355186043101697633120307328858913316662784818028619143967912984974088795917998393940110166131491733290224768388026335842097728298103830151122918360056518437186904630103441718249506024577808076833898178744633556484437992248422359551973716611305142732329091723245656037734381395497481438658944888947459909748747238724381821016846100930731060414080617936762289713998016183432972639328471496129774983751577312216493665295169976862155181804625416441157933862210829557485818431952182024890406218426566641481247640044801019287605713140031403180539885643073336260300013740866626036566642349577296753542135724489104644077650631097729351492895239965849865590084550060713952294405067332390646829244855516582153986500298003507518230532156991921577008369863785535208170399702289821304469605241866529436020513400071050459663150986170261124318171857735400946288147901187722007567780034196092064321383317780978038302943866444212233620576898135668059426031284522633008854261559388271822437191025483720579142620949561357095215044750469269363083584690784414054271671087711028865658645972331340698382862637147049395110972404549019329519599189453301291610715260459142415352246334872196947783946662576131134955812825953792559792967755798635423670769513947328719874454934807451772442681562476204080614256243748701043502540933755829247920702656247434354940038094481436531863587491850517484695065238028742779150388719360094816182987462780323696363183932468229529649390295980555461453448847522387704858041491304079295352065692948770822770619474548840014400899483884463786941651953070835263645310491969880107094298971678809050538980774260163987721950059305376215540658900988286300409850696453685077331693964311458371350687234068770477026143504216546114577761735344475511115131683075860119645589250933699279920491093953347463222381485894055612128451766113596706461362262854975519572329210491426739451822814635083789242757078280396996884174768553936646040384917374113455218007890992242986021619308055716024456374520351605364076138303218619045223900410762318161384127625746582852397281553667288355360630755010213066121429322729441473033741525342818946193780013996164609256531051284272362440483698150162824093662688403577423924780159975589480315626504428404703692362007467894704001955021048754965319960715951566492819229403092093895739256649487465977331821800731555021878300918886807988862350187358573268815157872214432302636357706312138192587167061350940076269897602299254885460829102786696131505907009047759486229374728116419828932975419851663713116897367212344360632300276789580774684825856104966404526466013966334921490878201283266000062346600879950364785520355938335807950889669579492238891635854426647689298313861336214108523205630580219200342461065444921350849396283646264679430587965639011212949067096300211603523170489127947045221347627604791382485913337495472976744399699340265086568702151009839567879782759500259290655388968438371081585221592066329837579943330893658105952905394716357439555784043839253415742457887606616024517611385895177955044538386142979507346311238331898005332059826783519029549905944480133802919461699403728526546307820265333428633706550624884791008337782400771683837602848897387263639487180839170362196889176044265610810106628133247159895248938844211873022841860733600829354189538031057669649419722748418649368964832806341237588779861129175872342071944279860261573467271370971040428002784210157542333542080492699715817674689297520082097098701119988950728064794015287428675385084523038959651573202311681130940840744630719235251155080838742920061455972126437442637200432857980446081835727823805848038458232338861539786413233178454119147653273498772635300167873398536160106181296263265571473858303865862667161164714154449939645880321797963331744820700651259725890020913812433814406288084776224792362438665300510096385286197825701416811726750944767382699966623457068486151393137549845224034263657459186007298686717473976685795710562809857765940282297209012149418474429181319169050191559340517298253944456502453790185132512622139045316744654258444350370375342235384016427906525251960827291437389491365071890865347329857559103354439305373960270840113716288734999775741743231924133278669999519006330929924845543762829378863565968236302769543412956636945020295576264414504755985930871395809936383265061403361625096748212127707896420185472570548041558557751923861760685026140841785949876396229648053412096611856847877849558783942117991788845041768084300218163455122189375071388924516290529725449028105507860847265932075053453523920224786053879094642856405379690762746788543000622846381190346376185417219245781376650705765040524986194846388343686081826104853461301217287918139706078043405901161676130105383430335743334923772817141232715300020033743820339300505360184178755791352081550276453413284504897783426543998662703812434727010754494504487882939842942778002874393797382478393805222519711378962674213460461155578632302475412078682108990965844539908411836742651594217758414124057910044935469308395768903643322242000073889449724308511728853348726942512726369792032900287413872944077811087394871624903220112391809976818669485817644305832697930370530931703905503787339576457594930821278716184045131857073333747369706814480557549052913410411430218098171109410830211024429734438473012823130958342149535180487630722142721080355816668762423742168377214808191862853948619545917707678293035519236423469519451542917555179581518107696330744242345857943972811709519528126127735708954929195590095920035592807010951873497675144867589402331767479439438313893818081315744689772633841425239333091198962478706494596135521165733655804174131605999513210562106355874990789201921781636455111718935603051061753409974303796408281398728758867969794089884422422181717144491909092421930374995576364969113120512917074147324878292767235894182475680324737200920720746284803137858349788818832473236943591517139408254796893678749285613732350507410003365393139617805633686951992649352821494831389016299045289574036002910046601378293919385889653188152405708779484830009986147515859903481344685619205700822545135564968784454710196620257429990052583356590172899060475185498835045658800361469318206866574657861313321883090515093097920481543082852496361724862669499880080104180220896845699409931946974044958343899047198460881740251752651655563323969445544839199077653815805818235968034991226223991326669556069118970440243718207043018154509888943408070541637984953880236412991024992488802273733430676078518876881119380167770525263042055773892287413240843480263716644388455503865003970722252478855219216881620050606417035823137679415654846448793494452219828422373481718589458821506193907175586380958319586427826984106651317611319548108238762152802813443290589397000746906856797582025115704782401526217270191482773579277840779617872418047471889304262325807021578859213104397373317817888699893674686488386490063706144195176833438814381242115847280702072327405656674552725127128629165280530847419286364994792990766774187349225181834662416771796557778777295077774565294682962503062300628670258723107998173414869961055694755696318191485129200632100565340861502880339402066330997633146508423018342575624119589469961242527140004889405829739518880201984824883084416742170037710064862829002664058517921331071261052219986411817083128420185029493348423910632474540422213766026787412858556839247091271065420420733786755345045125240569515864405142917873811794823051884137955478754386092934605551263615614063248044051253695017620659986504502595256340447176187900267190376010648058419275334139907637776490952406681274671455830600480848443692146830008709648041056566077517178068577148496354617221939167673645613104471145209967918861182985627048084579754780849059774146201860222458937386722576999744551620511087229270337846899337733861914603251414271690354261574993370147878910840720563489578183853742896804655062176741359504662409067784865204232136003778975562813591505292903274795994256116324400171063348671040393158382920291560196772670475505694831753166757829483822792803967270942564770965807695931263776233014040283764340059261128715824208849471417118971059045957420870432599866137710179371440711778276452384812917554241506595284518807444803724971730584141517298491263475230647979932226748432884592962917478087970543194104144290142954458440520191584128454911894454401280436148365508034540265999261589476297482476339982055137170706992225595895183221272078675539070506039246003617238057169066006543751300687067028967605712247993136605487867218461364573926985174078336378335120215424868405472549438127492017190813860217870098645597460050934727677052943812700352566374538906445302812713217489134723807227797470755960960051309119602758988188046833780649637327123422762822731999251199631236221639385713171119159408498393186747191229627873704555897901915198197281148245308226316650644864608103776848332862126039499804878975932222087031815570304744233983659117606105349303182658714201786198790267611199401847341421435572421188320239450713203076728123456767193865930067410286249022256353841130206992532258159531936331749387297887016681387870229305167344609429157170264417259258126745185711685317988047192129087457866192681236487863914756355099639852564565696299483246404056926232874513469275743778863954137216491859037601407616148722904085921962475759390981480835718862194374562653856240312362443648348212945498099105089467944173833575705742626697432622422620999649542830401567602415407534088032115687560186276866161600337300094224501738640877126410589615732682846936885741571590402940701679803773194447798554594394774379912612441739366527707202465486231236429190931232819406643768327607254593284542026834434846488455208284012019153505970432633580545749688468784627472573765624997197760455709263990968161589568636602570534683161465343011113207333018029710431444626103621457128834547685642058996226035122396319200685443784025507194278315035899406644421015628307561072527172504513209822417127857268348564004994506406905879549012009719363960846178514111903815752634912537840020256118049022956606703451686459403730931164180125115530312826457805264758715721084057802128143674079175008699803660338490998810311692656025102416980559559041578768741106003776131057263676228658007372825531711408085729227265499195548287121143709740657050946541839873062564895721777350065897394746736411685341345178396026461176451021327021453294328645180691005168073047832982582170308890002859927765408399053722494307265474794335810275139409509388885540144680996964025285484386024952089582241716750817620515726075862491910335161403263480613880401361790161904102084721196592293928528359141788072292861719479718182407581524177782347776786497305755165160060425379746894442655690037671040552120783195227895232385292489993229162723838138361367742487990521506790088356041334351675498525351498691029563455118791113696165017040909333056866582731203182312300774967454796085966748741474783851020253987087381595634011329079071271171446134255307025503305727937617250186272053214535678975893720651908493376454580535790177193670159742450356253967120750943006091458999791275145030848792308285374382260971677981860106408363426204962381261818961793266568920284326972149634425214511835848654412431373962046112070729070580067889976291458807068461067051794954799515138591470951110332746417388680493195661428817703516897833143788799920727172883562630139191498215392771762243106598803637579769110155609548720351917210624830904043975123470406876978235589998488819219931731720027358456020223193077862316379873418810478274258477603888585646246064742917997862645108536694818330198766663258727906612431606892851874018402547684392901651032324207141119048602687285247610694409792550456869030337914345413587509107388401801689571681364239883039142373636006180908290648658158474074321113708583657435888690222447144392611529014907520834630562587600965485725816391375848713359336767632849743454210699691868534214127950810500752853433276046200529074196507526937465249249461018917886372668448043394106187293747311940743594933466528667270233704063387509927067629854523697768680219766163691271417782744442550721815181399697225938911734703461284881342782652450503030233461476763618500066304639294833398153771466236826651862949407086198458903888189001424405529493192900996372668190013487064812953493197755608012933663671270287981681205329129989435130592679108816078591994226716750847257980025253162611410969213927545231150891607517065167005438667346158501265101207392060433741511091305039917727584341370290263807761695560727003961599399230081451127483391470545620779642550876335622521341283826853238379048180570104748484607055546263073001273489670937033598086984577209720633891719100562775523170545189550451584296951800763074205445017370160316642259731733501271176874505445130303968047879333086090238365004262496774846567371872494173598847060280262987669044803731798806478134102589256337401140467595075306904368171108625824891822116774559333510443243450753846630602412876659899826504474118547054217433728096119327876945379806604523726497213035617910120921397795518891101589183535327733969522615263371266575042693595522402480305811753151310813488695267827018940652725863756218476409871636837993338255797011985341103479350524933963727685034225349941531100999335127829703685289100312207381715394122687929436633964755524673738337463817851820691394037100056989062525265504946470668043997068498401837551645780239081126010809852992276285288691120700969677864554069337508550190441781771329084239085065700078205403101300845342711748306668793511936183052663288057565316576832503027924071093130664445037472183269807585504840132059522385073831963061021462313766218222485525478869620667256917098418246451919835980492372868373934967485448081677656849432120255494639717085215908131281765132212031262074190514132461121831481035086131826319973586749625302895852237210273578237732712002030406281635495354918013375439819895757929184293533057800124475930899383272276700796138657927239155566470393974887953542012715381119935610568711736740677345557519501230893640585063691439702064880218774087169105844504395188975849196330750211013838322180019087773099411111881260881068475681268412291317044321697852281537531659183344693171603754594067681268693110844687727871699509890522758751411839820860218117322486137081925815964518100235318911035095550921797625188649611120450664287590225834981285242476229642848836750764966922951395955885893558544415358434607756426125884060011246773229018915975455055290229420444505943835038129774688138924788617360102781023621077163764863711487721283739184307657360654851716340080566212311243787873854661239637428107710929655162323239519351210081565382227664379678563657754574304920608068763710247470744186165067424178568257496052508467378997482150551925802824293029626248912572108859521057924316435529396785297629117759208343465228422297890965028863984014892483927132238796029164029593917113111796232000016523271617813370875224851782070369341719059883120831487231156057534448764460285576354035735538606342502655784566198182157425392259550249288810732870677439307988204505275663472795453497604726858277521486073400761090695765908862999896366977543497461069656403083507323803439353825620873741616662712782154382463879094642073181184166518214292305406828865523956682443179632611252110314256375477890548837687297313395362988009319961312893789909249131915284321335859377970737376819678975420046325235886113166664936682500111808433416082746429350302042437272585406743881596586474882360807392444008908234318489386994272424680218485417757633855207062762028056610266195470030635059773304753351276855376287768979599033628903543796153659332080245950560378679068715248043274033690625184209704395346364084899577881361220178210771836141354818881432539549883098514696721880467285013473618291823475809846527486254975998981282945732955138894107057151998624650786855122515968782659789019514199357128751481899991074227906444438683004980321105813948138887755998153568477346514355970492370272513950139619551585796696159714213308770411435013498842796947497130346603665624558778840803305891537872407394161156598544431414868476680280474242980642481178513307507790975126042382660794623649234841349888693221001276492904667786021847389297118480929198938437893781403223644765349023734435412169173885775435310486937006178174606505929965173368139384412319277925821406969934285528614606055032682511505070685316629702339373948960360595074362663847006807412404910167936287225718472973207108275913877424568728963475748660259795635013672140739807487705284971060643673184412760293301366909591947579536725542564729863509462461806393729153721070580733837970768543909880392659787317846083361153211882458442889860613244974898750478290740188096911135728548258969253676937022793439318824367610777992812154988141073805016030189358161027931620373469921269497354863617430264983501936708622612774260241975360991009619961370256203897030046244269420682350917925019642774189265878701723071057653307424146989138794424301046641501633197500383651211508055380925915278854287091159070761873549702254025433756176004011087538759414855992558613249501255862828948980705181221099763540443992892139515186944886840189461069594424800760758528407784411822108808709802224997195303877734059428052090997195559256135307467662932815306918627460338271478170524272136258941765789153533550541342612622179859143898591375676979930268639064270553882030151271926366411369850987339321330160411962065261543488939899776331360746335281001628021568957399267618044001238903032626110216744245858991645939257927892945637926625469229365920391240023959686971354357879785243484225926405791071833250707269100860540451189673889441297018462059732354139113980581926535915098329001907462276741762250219678672175735167738606615501650532814557802993129163152149072468351321048265724464363080425518340527825873919318449971904903706572926032354313789871925368109697700050524525724612389407298484561131371396889292539761962651606820654244813217805140448594486487598998057924025226767628394999046874943461145336410452906497752974351804655059634354627207648459805577174727621027164091122422157785543120757072699539715679325113472700138894551893674596119144108476560393953053964089242788687369013289126436582052460606916925422182213992008081028119417213084619837952841848807183568491704728770232775972505324850896268744561081550004313539785529194471228299380951179131083840027797005483553014070768219058742094316882682350894562110119615143118893740447690949234085426554204569550814946684361019781873349561932824480050566232394574273283012075172478823461333169335955158683666780983159184815990529053428564156266049379460708668380894224904938014451147718911005881945001726286794905569016176035587390441105128137944521284003782045335168429472179957062961185015475657172998506123987250080024486455602719063491621591492435697862975951339344810752430999739843816566298463440049130471562996129737853325441475609174471263589499336761921287337067856647527201452611965097304788099481378353086606884727930654455601181229669664071850542071943932237183448959567607783024651508537532572361577745128668281174118361487577707263293955817915779220378213685143588288316573816234086149290673800360950688376677639698706189016844924529687722245367206132345128809043713892815611212863249336442556202511658150104068851201286945987665235752330462619368852073453087864542251895929050021965766731128375910485772863317403175829826017299015059254294322234722744764005816684410905545260279282491276096390331214435675493163311023408008707847530264560728998173608210805585624836776202653821737661149446772557172821197296869160629178875974992859495699189527255756518442203140414804315407255330487712487437202465593074124901523365701239970472575569919467204081193337399505252680848535905024877989689656064635766709021429123164673204467409043680459471586396369540109758356115106884985373533689201776677943630531195685973622800394211976445679886354587572971737522723967682262260439573896012590767284452716186254252035768855040650052184423996503487329440202862276872384275184342265907375451702623134442994128762917898109700736991472739777479430209156268268064233281053049808205616687633652341951785677474331769281708719890091094155408701222123319953519466260835091869579564102767634148983960128606965121254774263371759750272930589133361932221261854714219031541349624991069059336759399599353108810440214609152842439536167281327811754833855886124424457179770407320261661687592799071141219490697174137173020961602652719011287510679739713310056881846774621974373452294062309071685845191018711139280382147006341429742994803511531344140057349509419377475854040662243116261543470808282879979972512098087493309015428972627085577480853551747033385769389293782708640845086333359523549284467586074144265177020727703663011433383246629468549425754966393571943125603998007874361142969314457038746987909484850374439903469655557988243557598966065712583697690145357570184691865623689740417706995150265698286264298702405797824527247861855598462083379540902040100145060434337573681955496775747434900749684263797928695085596472949698207193293032910367273324086500756915894701322284153221548059538040705887868845429906464810889645911872940138298971312154550025801166745163942463727845659111391046923424257550481208409583947332806845961996005779085285386031264236372784712003988972942592152384389175437422329865265055677973896042218635517920764794017806473074033163117286470455367374401168929496745713761945073877785366657302871346958778971699749604710975035985249350974895257347004245040873267078820676509710231872427331141313220013932789596098869506974879838129037291201034368711428065859238172577468528285702031264833695302048262103519574282337729245295029442644021491295167199876030995761706477041902496614669719667417883079851335828473584540449933157020055207985420481272426337487771167648607758221236100109363251634787836701617660832142068172320593194662461553991953348537159864897617627745618709958317419658810162819199368617857469603671585781247203344726789731138902311144909205117593090969662258971686080816963999437431703607539776036165685503941130658807465931036913969996255291511209853052095405720790864936746582610190286843508476700375881671326393150513147325426096704475530328671197783220233950966774054206256532572208262339334348008718147975121785668662657424899054426947923437146682147558436349948395550203623814298529315498769996822363513646511524806619102633002852257564387469020733989093974295514709019957402588372940939858945815958407069334715068243565222738091942985685907513340081396676375890556271237547230703638032134912889040904091473405081629222512433032497758740583052316504058943538482695002013588663966206894173104363105845142985689205193662256789454946234634400273119463772179368795760418134037288958813533288063907579854257236270537313753261561488750086233840288619771131830398101605577430513309442196863118531533603683214251907550192411246484092929473009934127927806110634243439736498755126693418744199499942321489286699598899574026175673637700587589152130246805052698220736370877725692698631935937456778682622006804537286803784830699467114695921386654232116829423275204412907663229342107045019731302217619205648792658292208375731204721946415418502496267348408520453286361883678768054619687084862721312763053017546274183093935118055364656222062943848175807465320977101479819334827483569320877386385809179487793874754340163462159420266098290914819703600165326012686738297259891545191805469469551382631294336716051407977719331330091923960597956960645913809059587781561308728843665702990998623195385654739422689067951462598934942825266879841767415122200627979095933048181255832875681156670903708582214338626734239411225570619514155534538745158344690182453268009296649921888213014668567170153112884420074237272958371056759692844742453714368013968932432841061379143836866920982567254659825213279839701323444472007174109133580789053202175384279908228794982947099089524469016915834263219961965718826282368759163837042502781348790325939220507725015976347197305180307026724212712328003895161437051112521922052693131778074920084960075217095554569003920021122997131006430745952040733864736435076587007388145193295200364241593021449530618153476047835165336293579760926911626715930248675716659871787817554543766586529096981070620966793599267297742851857065930772463530418355357177862437960885039834803019737579016245081738859444272677654703645322566263581594397458340793990271250809073873508472007622499264636335688584351010533042044230744731885434116294089446262377264006967411362251297458696406936465227587107455122167801486345250499547014043795514992539009794074169209142880305148443609900943896578633233353724985695675443314460377681390227463065884940308572957094290123106060625579374452909878908071550606567998191543996376193024962724208811519603668664113380880141469628261766894277637251619182827617420531083842073611311887130628467235699973893316927743623504859022252230509256149989195503416472482273437320147513234167686591653282578041647560958305050829580588670611021440819449209546408171092717071155173842079745096876008987051623569324091011423420423219075186302981798694180825248168771255684682181152304930853171819955196685373516183427317090162878775978634984909552452383299510600369047601382196857161414820461654281832715324622090780744168155162022871355640348909466506541673752640276852699802417926544430549361964313899512086524014915347385265090757272972600182250469270876965214922497670521393348028836278985704574422407631857855128582115749892459905667854399360791909622070791414100960597356918942304997962962957146559139588456220036684042317815574967988446804136142781234382859034075091649712695924212083221174482541493031412897283271806492829017391393371608931435963734127877727959383953892202295923206251941623125390828290285903051029673723756631283434815787403422071802310059444696102350704420813377187306460732248779461836478598199535359317217683394300472040719409558524842574639284127681196940716702915427475070568720223281094527536894545013590784363192243559365482156801572183980324188303128736468528708102272784092459975320434013591393388083797259796863698671510767975477075797381027936449128935582403358819904649863282782962714638647949360565644978662231896535068249389713689500939004889450919892688298599289191004909611217493581659018114678143617585546693452795282037462249946352320422981903235454225045838602927325207894222972790570821902094018681484012542901915717352587950975138912887734682177813775526581492666344461638524731758843853526457087979314255917206277647273891180791545863517906423297244482371116186249535587643745509953948657130181103267162632085048941383523367855379671391602268088572178853846532910047017859954042248407386819831748381693546906142230427137062492331552908752933355344318429492096404391772861522149327529013234933787397668923056169973470673501237847549048624299367560371042801453523014004373471120290388797843981016864526933666875927624833274105332995343487169594198853358177186022788425018098147213315843083079136943284035519467532025732194720142626388958800514945101739652773087132010066038308475068532711190272416519946405106970232629767291504488787180083273110388010586764408838964856064401366813556634688487101188501258745677951017733139484606821479382171812775032489632948944029857671249195118117650405507714908689322604991314696483815065110501214743949411528085221221385302323479017419626151775108221872047129108933627821475765311243275213605546899770455895525139039632969592599687562276841861408278055653089707716367527265276512912289170598750262605135595773041260377149176470576300367537600313165460637857993792561084845026922023120215116177420141899780623986046869871217929661777578846580028541272985920712370267440829547429307610359588210365660964654902293776086795267228900356735383107547381219591087830143981242992292786467850695944082729029967196344383987131766979324555447266771631908614132109886193212443322947199384090713104428025704448323790963070627224462561915552150167832573552001416617606418261340983786677968713872799140825939364334352147856123274284885448202404901230385554752549971997367351294877206652585066784223652400932910209385483555312847793662119744962916775623519536564237910754289562317202229609115341016289998492444623903012917512444099912144730734835982673943345324761135338623412061443882994664989008352935202984605093218689354501920154923157596746449299621997853645960928732233391636031144631122653000991599984653324696193226996746913840817075020941414128638282827724045614978432727403225030181094986972846838600625667354518041460362253807054105588295982161969695004034921566832113959874834318893440547131038655217472130227643631891601569932788080663724867954949149914446726326275831622172690085726427047097023277762540452959375135416453903912250589258841600069829329304868479489271026372200798589501254877736393353001179031115129669562610960795470271592553459862800277547098237360999384859031970933445331530299098486154397706826516219454476101131323969285926516008922131790522124202157199644437993292322229685699747556105155778405633736463279259914650724672233376970481840090954565418823866395652008975978435737565376504389158456153911889766459756160513295998748490363309712059670823024560961342937970366298660175941729818639918734407323492174273899146236846767253913403998587060273125082115901522685329728458450697339867625467825471106174952227624122395793324261129350451687008252036419918773412535160806857839898952862401935370427180691357390558566165620159635497460858694778814356798560540831222932777840637752907208114749245476183922001766205020978624865108457696213754751242959768526941788177058222761022517247387449438469495175335987943348864130457688690637419742889405430998701974264933313793567813760688517893139108110198443150182826178096252727201198272219549041372877881482057677499041516106636559032836845882002360891509655335195677954661401709552108184100450635320477319716410245447651358523023738462496682957465911390150061062988922014575074350418231240994576786189002340596126926366423113696198129659369452510006719331031376057083852816942562608813258539662260720631297553705565244236532964177607419084088980318640081949121497502906480482783902828623498893126940966662866100048008804673526087423380775904072231019547465696522262775533650413155229186515083489936511935374209760368746531991812696168448102452134978039571287069419224062198868770876417608361351340035840457197703332197185382632111487365382230271896735075550306786303651559128272338194334903587558626042923828235063460802874323450848225688478803790922778045700261574427389837289162347792468637948935269805432757080978646187968147401453850546950898915568021604338680027935267347054777226986345938323195321880139819822452167703851933585091467716109624905060073206193187323495565921887744947582036422255975162809605313301242133582510012768070646837731907675259181805330675225846238834405693723455439275897846237907680689927307547021256981448187667185575509593734207979045212898087341913750440270444039634245719688149333201666284056171888896695101351608138631977674146847361551414971841594286328735392324938230389832009305053184287588956837192470948597324271150178454429400323586301005037910991260115015556267936814211412011765515876219083443659321139369304847408477255484006277120734535774681561752055333920086776813661776444839688634071872359371010451052326867616049333280557459073789112556672114597110124055027006587483785622333611503416766299016994710692947637878040641076398568041310186424866272636477346790507874119673612993049618472153350217008176366399229061161277156810941362110985133836558926248373310624585277229368639473681062409240189945930680747131521726417580762610060348748151746459569629209433907751903729611686433360422024774584594284044592122338910800624970291990973424624488463687025755229221656105937851254970547258728422056875257032613465441676680993802561242182260544909311500569735813715427453717491249271044608131046420472565711540455250089018052852224378615523662815694804507174887221308671687955962484145542949066546069736262493619546516743344049736243469426665122540157477658839725010961899222418358500708500184854714884442485469985863088342668940634355482838234831701339443566213069909958087301163857163599783190915704229375264697152469857847933552260510113125867878968100490105545103640888210703192085144771880257817666546811535976400050917253509239307968311988581546337689334515817521461030944743744228754446836609270126515881793381791433014491261871153764788491070298344405223741112225324824602513431044658980481211312939349707080966973837380061287781945307215254795473716959911819010285786493797654828498333394566971070845475427998941476111978493090462737536979859609601024356767336923145117314367927258478351524896759314365579169115932900475954330097011509650087075177015983140814783008270935919649896554839262956921557279614601034041770222449871420105048848340256803326127227072076555119207173633157403812591319859270288568251557045235026398711204425374396825756148462203179331155603458715254439898639803480700957725305973753078839872510274818937000671691524842578996660399834444711017377376391015633388206090065739942809697928033262519604720718363117439044815579077934836439028675310791279838217696245989826045250068869890917523476221819471035074428379985674162440986381803049337156003880263257890441830705304589254645953137577362272181684233406834482326199063998237550336467511896085128790274992792411220022490294431479246229916865028911821210396444854842375702630175084204561591810936722376656775476867110681920544352807996394963720165921413346725507229903847822640057320525993079976958273276350250026226153639239703616929081556565029175126127543576471767587717343819865057283044967655789422629023446298721272980928579000317996009150086017845191009548227544604024495429357410356865402932884599588448634942518304576103555148325383770020397134391208221016286925848840502306755444907267720696315143625640669146833550195145029050336559659396930118341789025610983441376065862002457120715642944768349087950191864169503118848452922061286797736825790509726343098468023907715866533752742529130820117723747694457318926459727193238083824945944322546226641761686290613152826966948209749236260648773478995191045097336858380528032931299142482685204464337932090206944976807375312159872115719675786324498118500699995953358250899741815175880974807943479607013386420735525730451315148918781303167680734145951851805177027444263397706832044537482369058090750808485921977836124308934038989364152514519954568536042334621875419929049058118059384280316634034532740402212171424791936272039958933890100960834366103795047762298800100770917314419997553751924680045343518428773911163025620834946863532882265933035715472716624819075077025534195743096568528488863174077785151397060502415928061812897307478643753724649937598648391394749187291019228832815551553337955489576030736453539172632668825862881656751159569735110181863852948167874312557123826076228873880114848176814154696259669491261786613737888659332048319132568870730815549665722414230457013918269985740649758099474716957155548130463758633759274418541081488083514875499599258796097987153911588264617358595008737106418531275785581924150260726171093001276820442201752068800106283468546072202081170129572196232424743918296341877077980662318683853084463087423825455666591280285790839218217654452821466630735432631332283544277925510567645393000488288065725768921618013382088241149067473210792363480180201271007955137066230630690462600348034815478498917899665132495501176556195821638343656022318555173006603653142447541462517433374780176437576496987764877243210899966480268504056778151202455479277344444962032591163242068934614386402700800255043286871372140169998700248772709774048750030641609149176537063611939089552209619792458903884168371207016547835737302998934460521322235842105310304830747712410915685741601071391116280391396760310543533041095308928527496367788840787445588408602581721683082240632659058339102568422700230416006067745408977482580789306679202063430676172983105126676102186737200686965242187908142997186173072276536457699255744036199216365335423498657966456189295416503127124606966390522715624760971257427722473128562486882640917569059591332429251726064940596976918945146159001723168747032325609709376424141977290296492632220256307577018701511750935086014280702312013953660589529283454531663359718918602439888510794788459838445431801978413513386118882628300425702451490882727228378311071288778023592692804140531720396749935105891012692413788848887398675407964988258386010747707435977098737072803085051028296326320773784668552010319565292757504294093141479492404666666048230254992018353601589457889710681663978425418589868565287817893502156997392334165670865387818942717317453445476377925835390828625411730225227256467735991670129828011811454636520589298557838378695257077456618763960985439416840128080428052640696286980266335394917575945953622095931435431239356046399153823976299501628951004211984222683382569635138419366079459684053918611054357406842096810901792695501833670107654030956250052121785732576447958865715483243721674386762811215779962553469582669335516665976862767208917978915686905049241974415544595485231713688699524729947458060624296484771057838618082863483397538569879869580771605997451307862367724466191390737112845904449947227957766619213321010177269336411920495366994219727193092807096212446522380567367318888613586552382801641940167555295788133746809297677070819938230868155451382634680578276525023893025574390765946670349411563814087941626046167703790975645200796159965939427443539403113456924461693527354953208421140658787164623634448612954928356442460624988303746984229237017853874556500459006254547599671290857077517036062416021369268335161208178192594070730787842000175361821365274131084116969319319352942810790447691014591943513742496517638660696337058203987531009997113299738729289626876240305351977363329442904990936577022230935427831062570232330926669867468786717155596322395417308922926561508720876566521857193706668984647576630696809128072823313864318385982397007807447074189246693919897646251827583978259577494692746103724391591202309131298688348292037479053174398259706526940405521398282040617514979728200901132726500598870111061826343701631517781803274730646106049672750380247080971939594324615548975290133674771298302378721843299003361573972014661138640382375714773209506851510736663244079721397611473239904011072748026137551512788459401137513227885521576885768955020515918749964199831014924906258554397154328965225270494478688370039359713744991564721554836475381997259622020260793137183170458689828187617553963042662274000750098161339828872323299355425066121342659812232766739142312376202532074777193065379872479171191744255973449837133920069280941616021741322666958457947360854437621639373476061008825283613156011370922017783603647525948029618852883972133943791885515183776017196989006898787644021607217343032572478153287684502962098661952222523893112219657587458866237713071722785241599157263376696069718306089297747594508618532632617977167376407440431914931490967246023073937323297789190603027324028069097703202514814993170169278321274535389515728198713915387821872100643499261946632457434277317132421835836388039136479785903050460981385654873960326231134523091574276446816923815572327501951137350466723053365831149121995215312336978863513236204531886720331142149705316667015113887375638886419506301676369069826792258436677273999580097297839906023862069861657752310275067989165474564347840281296778094016723680728312816531474168067740569402330365087399832580976352561420670271685698934563783282653145702760323239273898307366067876310565516500227327743266579463307817895893918909563953601015086573947189134659882082290630157797907111070293652939354007033910453430885192255376264593121239284043418312828867715487713533438801343966395414926039706090806385203026050854159706722526297195784901148946339812070384517706876747092978274514126419521502934019860852933421073587301035422096661348263634382028789178017077928722120719985161651033553124583908633775301898613011361896691157773298149135840548290796002654065911598859806113411212904311611109732382362639527413028005391945878652127450735234510216251528020056822547315093094506657842627015405906464464017106417194554808246133255408325448304786034597993316060583947667629615102680395383434094242956690781319228051168088887671775925806391660575653577585435656584374124706655785687748154537125118198835616872589874423693072474689086085196835319366444580994965635951078329742966936208257364332940933697037997401685747798788425319935638051682972828789667371626017422636559457925950343461723157345936380452445871142858543541669002467128079070086799327781168928876812136362620941063903828485075572947992584987357567020231062390798756150281202209674081963322067137666069471625097002652862942004431638712453281296602677407925364220673411280595190441164145707522734650304450990801524698214104122814457185363718908012828086989882126765135382987074470535046280900924103958592467437558294650805819004847190119327448060850696493928090482870532621898960779424304022630194163932765730489483216574401582694054505993013979491925321810945002954432593025378486174411814023550833089388300347316003313798382092227820803943144811354985121644542846611107438062556027657101602405797291946646932026461869541484065364881448232225494834847495615993015386441658058683926324293216483935034851472591677229457133850582541237942045535891512269003261253600717872679885338563149003054646521916300001482553911026544181218756176193826404856708926101436510602589179811290792056618399217253557490423110986825394463460039518423821376088943654471636447068613050396921609674287413470602303156470440737832749087185222299810685789542827510054841159967818882726496055936918950106897496407122057618862386046273870422390175772325660832357330583716641943539370198881741684049629946124943316154660185997571991605536212807890974644581944935804784367726848809315909289785988422137800669194125632044814261660748111664326754353133206102206075956875300190861484121581370779538584565465880430462517938077339969968906246409976241182869097592047149513888524294428281519534608445672372741188928032830488626438926333004701064993623886990274453676527414668205065586660602567477455763614796789360396863756466765858465014199094457368747623132612669227304171825229203821058023443456819059206138605734970523491896535857335788452286791357143032873602999959335528307072616301955257099787704769368251857840650481443640133026440246578590060017386843373000401489590606158488141308669116640448671195542259185036704015163362243670682305771534664653372588136473225042634531937942082037216051787024159586276918201557491178053981190536146717062563743679296927135586271445911496857299530267032299807946178236743743993888482898170564430731723350827468851575657227789358952330926634870713875611389803825714226708835711136875496727232154706449145899551330377206463102898953730479165235085056637346749012914449905606932425006166802608401694400709462809361075582553451113426728577723350876351210163228083027140255249986939682512505713382023131542614786540924972068988443041776360381935922252897089779099311333199135609110699439327312334652721507292510814541259975678427238022338591955940461832320503824840527306551185037321940257559193125636295353445232874235034274240651093760991485883257880151952568098445136253229845445212629651442419259569985810569770272037545168951318598465682071469701408025521346179802589921985093523242823807344534018547962656431760101863315540357274651890369371563392213166739527428005249134533479191071145438670299533116697283868498306054984046025968193183686789085791031033704376353997083997427682165277613927343699595120209938942976225309052405836562283021812838296340573120830595475050123312075271440061540632942261237496915669955651008789944142234335052060429057859815339974906684357622016100580004458494743382843149088850870679088294982006521248068543985886746885834987190418552397093029487016903182664997751991528205272029143791525404845827601969355232144084159446881647866798655213378841893789586321727768340249646875433432367429781284790147020864019245862180244375468605457604622514701246362523737086189521926720482806391886673387382175006903765983230507014135012414667748891768823715986395197977647914350430836041792064514866740359535424010332046157855491373460824514556002136059638982076214402478298681175498696142162214314909075336333300438891338284746812775055200653929653529568475069775040611156925972169330642501955306624795057331554705599446398776967977156279513719980326540767632684982358315284790552516066265793711667905272643792376986050732393633670771441790834730829833632519372084079306922009164181009940743910572264509987301074514298176723532157871774189849073188566059914177145761133251831377281599543359615158974327062613681564220510385268481636710653279973739775398331176991161869154441820833748373926239311121278792369385947509299299257202036909264374153190670814444040417551816887756928072726305341261537134939780475984299452352292567059292256875105439486563314546719021626961988270451225223435824007369597835366209513743684647497608857378790189585933796303524756052837540077325776497548852470757470172559367056392303806318831994404023682799131911955908903580230674434182031250807918878738064467757320623028303445182895735806867303884196969939847086193716308081059276660864190229797340365429775673888534864080225817500201524492198020817122386687102682739351770592805914910231782446885053483193476583189793020703310083281092187408534478286229983828673788016874836431546040486948824379439485444302299523099989108147292387613905638299242923127731711550597628077182662059952296069120224679685417097965670804358670122483368880556353224203555938540077120078877283877680287766557231423568089003501574362369497825189518752016655131765481192141385731629639018018340016145922992532132339106177952871229997090314508154611003455982578576663150222943913815857650331324366880449111579959111517282484078910823448000400995158406392313610142044873668594734213138491331706380095158085857119057873254518871599177634984309435764249076847819918449870162184851280863283890455011724714899002244496686608116451091258278672140801883243367569871603168220416155363335242324497621445479869734493799969001579026608136947136047246042718451059146048868510209548722054488603231250450114468342143881182435656825127354870479516267691957081964816813553551924990320806531171942991916006819953271518211348223869798219632652428810365917774736050169119565594267656003896525756142733967706433090460006236547278415612488755936075143978763489421107808945182514540110811946225208640144451816552670984257872472741243266087435237128119008692327398347146983252210315698359446962881919155892527093201338332415528305748259300028153511456575380952027966615377667570223420755795443529520360128212086487132529946317382347911918317683051731509688621021252943859522542132331655724527800275182286765731926160091615255906574523370921130365159768312259260449454632581120210701242631314758342823312114898774710550544826266242640071094549358059269481937649798314264381472224606948615345427835778812487248704070133862899302673404074590167802992530552569616424772589292096806947953491239136174195789628066669553991149094021094794121518009338559844812952804904640886516562518043231632711682019655053979756200212023805710942464756182984154720595736347507642547407154134391397819961647295819655446135230718388377025642467072290887567174211275268839192768252469405291815410898886337530131259393893452888755543840014231263259233290296409297307855641747199154628245087349769171341341181499960931929416390717464040805280731049440363694553766757223262040044529154645933917821885909611710085649828221230257116873450822928143778687137428273709356281546510432154338919308227950036771575873242962536621469568043359824871872421684185214696065508925340403248001359183349564698246909483443727898408057786451166326473813941460775457705440817682850808722372510604872234662058350792243446490562887412384701005044875179758651585465240363757402362786126088476248878750666032711279650070642807851086752041037390163092439618631649390586948982815614681736870590279113224058601344712367021739443022825997001428940654864235768154195828096836793276724704635204834650979434673477378243424494891953707721910882746000925473833148883623398742193843080165638039629068862919187820756353023951827483112665450692218376118875335030135609918351041754372052852426331203992033361950217697737208616014604330322374700618345669202963276335125879212755599309938798172910530525149754405701958690098195973729233703989743475536123263404270094607509862752289041903473536567589545105965133550956803064103291815998974408504196284917048551554541338299765837364768161359847938811743402122057477267091895246224157226568810928872654147629601583841457393464917804901143294734048886037085370419665803765345833683484559968519035638442795161225115475733267537299373134807685383260088695313805167226319239832303170231052921453969588522237010319138080470864558718263335023900624023639738960004307807328360932310905536992220800122705203981488302879241535049169065378578215157039998480991625733120386586552157677202009119376974848831515887503178249524793245742057265400916457431021153653493201393924393443059632532447976971259245806530867880547968234738241933489526967006226799655584375894624835817755013263531337493018096412414142672622295131405199154169933702899396696820409294485954802643434859112480519203992027589046196859108470256921398667164613216458964507354767391958322249091445656992270313306308213650305254699718573029703355632762582064033059862003258313355172575407780698338368579013395247024124528637208633637574693378553090858280433647755654896435451267730948266428994084995987546969100032741681394963444776612669722787773817489831745160854876351795192433597515306405343577952865591560078943011057527287400361700457051240307883249784195958407409600615815379363613618048339762818274333189504909024341459376648624561224694525295101826807262496188594318925667303210879155864649352624870849238483679238309587117130047397621046891414732800402697102643986778767482740995575543333179091155483821959348794242242958093580704003812611607047380477917003940853690634590515813369191723103608421986581767516724927820596440364517966617805253823099754031893608159883924118796829243351426397751360829656727266391602947907100087779121274944724546675269682702820669429969963927628292416660395148770117040402338820563189455716002199944130738281732304793384361800431736537780556987396598856240047140887847305568744737065552687011161968401109289966375034242343791737433747322249739073690155265292024949677427379509647826830165959375203790974379217416231672321857236321542462638645651749005243790104299261051958425179292404735796086325830180047415393745870939381125832727538379252979129603989846082711694374748497223891708429022530173944257536375301207170497683111437941681481162899493384255659130716753738815475697533681649744442289179366693362291348246703793213866827817990623700523985449868049847545373093375306096551365873254001027596767933263833150735361790355517837505023525595914609949313500166988813668666949627125334767912863963086283517016032491413208497680011539117815129314517765984712151963078631941406735239922570408079185448595733255201957959923022826528089828084867550613447007329932119346382719427338896528994945203310395373630242037226173967484211524615349084526659237493910180437692132143936285354519592621603830412800609649958624428839787753150888379375378626724079476760678759563111518268419437702847573924506933527454634432740757944119645176273630560667790039844634191845568144807763479181904237441234159918996652063605380864000916646579557864799632809216552981359021456675115212414717342846923639035021292653527395814068450491251748887664414373881824744730719018484635478511277632276670994240502309191194206820466137191561531820770643801953496233183714901918459242878217350227578055047549548960283100067451564784380096873915364532246885675636164614323779617091904359056668666055887328574412390314792589575052603952443225515129071418709260730023770275655708160362369361478243039857179997045723875583018335372739692277791690778338742834426655476328552803225741331204852152356525755613292804461451745993118725303603470525480776436025988025798529417601115503623497067028204186154693744747016103706378716840159370222443164037862413979188214860577717767247064187849984600610123170093354426532458574203640302307353575818513701811013833198705788758917752419492402019328771111774134153160414384123290179364680000035240382247025411578839546888112897429407789772939379168604787306436779285040564192071201714377030762312133801116536334090505746950758525347639675959011270207653971002355935840139898609034433398414876943719855752203683567177833451379462336357013695135706617062803223437358198134764227635051414219236164585262324720998412171230427467130474500433604301245697088064063529853115716289328690653197816223067445901977316206231081503098290606249344927789558418470460082790222267906971737690958722060812145265429890973451522370244335468208189485841258039210431727178719988089532914503346470423423922758957695375151685250665862312608128133419560655640340024338103185756074341764691503737123261159346029169368342100454146397532036793992461390072158020601746502214663522956716946261580326520029528525159841920065123686611216978041901771156350836886099783818981656263128598236681379805274416819970471918006170743141878199521954342890785810418030285860397558685133223605003555030630979746695459249573636254779358116094510964498667085110877792900323017425328604165298155567752943703548461530007651579206762666747035271074113998744890694912547417956324828083445454617149015173021016159757631227975931665825210132181222582441274768006101694633018908244108018731811475023035776982716684511032172207129042085877652551619108017022221116788447138600056910317780141438252867436806210303176602682236958796323403288400847456954791410853666254991269401906849322444877661307467729084753313045557412014320228509174098024222514188457995497287378328911095521548954528574671831238913707301101974022118296894400015828593549358270871140738221606682664715902003115909911774312063237388461315420436241747699192407062817069562381791541402758253380310704235456996508983505718149927065147521269167003513917904225917954513482649566936266297041886416816196667642954490060741944359820075761797948250602246129528181259285304983931242462609161730417963684798859241802545324220044728475173234647489617128139876447870684656250760096115249116759637979259975749531206599358808318901951196651805125786409204753683522177046411688906283107908293055167344100851074270782099974565573026777560029869470862502388487224165965646274662225141081209291903668583981053520311576659717433880673453807572493146512481309946547262916825437131033481387195542671167786108527226181938776795633167155663465332555831648419792225569054446082147944650865212794048191711984716542525466979218639401346514135634396556979129664432053762434674059690488603881732894355547231359234499601408867428247959615755621606047591478135750825239327879773000129708391365621168584397342120543631388056454855340347657999341958625173788504309202238124882115204699739357514484589663413686482981502282855020979879761069553168096129273692732401865336307411716075524421776589098713702200933920068844995616686822485830746098408784549021664714556348864604832409937248467743768387993044093670734731806463733927129394227367908532215788586639571988988373190441894260277589546167536448185885127422018127983304234963216115670950254356722189333391477537997520184737837103126051894767808156008644625573038025374781356578377661307776246976972337555465045541307262389562831638589650350308701068317903035828048098914904092898987906193420439739528988344508421741296083246151530057009834641423003061230066109844408615217161769793544552900425958828763909845490967227702861206182923536977239319492078366593119458802305744738408792767855034806020705853124405177154695992400948198222268422078772432564416244182557758958963623023452072833587479203192672845698863272334784470863591670256222458791630959095966736467772726483237279964040657480211385219684519578015183724735425151776302094009435430993462349376552782723799091034987031232300433964329091289603406553950605020846343315004258591022013542927531660622855775452205338393541159285291522436360696548755570739476909935852930719609370709310881921555708355646305048908408697076041323990482950659104318760351098718828448116275735553561226657177729496594145509415784753961213493725369012479358631534498653936067261355840956062649642653886499029323230619059819065661885622584734444346073560042755341834189435580331661499045118721573706895760141375171502656661492107637219098757651241705601207003727563871082076819173577817936864164203613380483324640117883337285261813515245797248901825917364504036304788752927878008359787120461127417368086395046357533808495926228932841447950709667075062705661335127906959873085932671053291243131144133326925463568063141409331592563125973337117756533599949735746892367752877662612430718282792156182513286533415179979283700419544438505158700983652290755006910991398627360389902241728936466110107351396114701673459471682485276228525764428553324302099887463207349783040161783588504046831080296370645116518092907950562619168612559518295692989647669291155784339154521743937619153470439324401201966127147658259629203910614631593056548538453862845352560019653028566065290617856155432274510558101532959300649403075690867258126952602274666329710332676635164479784559353228735873029957237738962837838513550701816544449944001601297432352912012793004047569976417283750029764472181038442705230475364770087521646227633520063513124861259948109797249016425803689397169317733410526159087389107192996971426703048934712854635535275772766732047861358954376901383287093728140196973666237930968033787209232487096675806480107458981827357388786414997984087755967992011839780972202755586698498818926287877712244551211693502600244745748006827303847625386385966659360206674792665126984597602108246275531229762774897029857755790577466780595561113269905787853509605159071435501336546388172306132558743675149768757097679254763177281491759170776451126776564566249853378356551803861654720262777608532107079203810793668464317457142436455351373281730620904821690255370659116224417321048707306834887978771831188144546124459870023625643802138619416057492054665813797772694410113331964963027142471153045094991862114169218146510826271418212606778694928871541232888503433229554496629672383356833575789836176069362710745211692923310607261119931482255666345887693409886935831389543691566243179799949721131322661184263912549448513767571406245419624859864869172981926800149919013588752665890746131972044142576173815466978489438693482362986481891347152967729015715570709899947295537951281432949675755189143380029025889414800035631358019758772869343694811892207375519184108206150275419517620217469421267222482253373894390772462141843303774110147833769199131464745245982720371268475253330101233733879074845112340650523896266352110384109532362937098308363494355344846384091387572932338889651683470519748448308814487341578330785698520292606964937016724477465236490030564125435299353065988362943165598442384516331917932860887430272461831462682505969420660053218084661447966973393321615671348668355060923953686035316257509725935200231971892387623694936630729485986998016286513515101578240668226911367303483212092880698837753329064962015167737754327628535001263398599430047986212155854801512509913728087570240943506767662329309816271985593258374950964736227738746388809347651104868929652488456674437531797223429013826057377114055209019105256647652690427698712612608356498305782514267246903789454020173855822095810902639399773351370287901184361637264176094827526452032069129848832345365712180368890388487397835793731050921764064659012374599956849818848940490665464670255572524443006293764453186270638259254393535376051688294054417970600602753455515748410210477330776236711637595830923336244396997682873962052345035846320180050866683787811279106578238647009889629935849015187191286907347125027374789806040101093318835112456148644048566511970693790506186541745764387474415346602400664733634136896302798946353179599124827423863619429302650549767872648573640928599293176052935037415022478073692823275225432714520501843424903638875037500979519202237254085045833765241643398931313975003971282156477252594201680138834753341343233482790172450632571274692610426700787605806620007917293827489400604362199515142081762784613100953857066180521974012254244062780363907717598250914205054928738660549628030783007618216584519941202214496402276037901004176268723840249929249371965073146682263673057536613449914391581687117043621048717119540460661293748310430598513713461367221479587500824790695987904833495591188815772866846331445843959485757237877840976733451882672639468839032935101761359468800609899929681355093475150417035242144881794489948767312557076204307352441019894722909643156998623037160449582111163498408834771278928776873759733583054410353111082753893522575302571733648623032122713851792712122574459922405316268210266180160273461748921692072655957770504963533338531890356088056765205294274681001451205078744248952086019937665078565088190356236486706172688634081953270654618553849978254089710225961853575803799008277352494249676433459996490058104196674044123599415217995272594553275022547760972847816385921371114820003206275575191772687350676316343170154631357699912509840441961438863074315788896358477988671206293194086075107114343492575109872489787730786743060761257046841011446600748304293256815900450178119412277446413101799229609557251885182420593126932756450689145367124564134156466409284632225912912952820727351977744838302767956276900933231583685114964343368390897192903910946844918638209832285765349745590497055140643230200388458498433214376024840909257093078822398574136395534526960905834091647998382839114164659280298349790837860514215858862821678697553756188287527323223515725334231277199555643006067511513349950248471315497623127429167581403413157053563756584275669003452112148665873413889681581177608256914836806247193977159213739888435926872316043223796464993483290287786647738353657234208690848408923377892952933641442248543659060501348267150349820871501927303749810282574180109425768300109071745959183706770949894606554872111309580133482378855916774053192774414915614304273240864720514244487212423375219423145568113008706392585923709323593339241195193182047354536850038568723766423250531654117797486352284443190344171612798207027306110536826295844417315755368865366577751890063719258987425346648582271192399460582831155855896393644818028330875713663130854653746328405042029099663191416505271734089974284366484364560244275018167954967438121860290863520166690154827431738860712344500137561275104014212038225878803273373951107130914784324712470230449154300563029845667529806183198263737825933051930149410156102087917789783637265641564702697511731975914824574470045898229412233413128890993760937892219069237082027610018397872054554985888447983330793152466502852902478505794893918604091738343565554013683066628256242008069199128845846788720224612446568632517818981773277554838673789855791950214006690252776536727328413182881545139176896750725114759853720400502083819284980567197539660991278512934396859030945357322801944947709327122329122510391492280417713949645078061699273729675232043370839918451984540961067767038185140451724873197285737298977801114538713437747093559753336664119570649763266908945538035569272563950766232523985990217189872384760950164727318172137551134380535697412328466570022663610045647171588051764757540474161174761455202881562551046834416612125109236151422753054017644380452001666629691297610332710574125481330280106881354882340856053672636523069412576440435193209924667609489488493016343315013891766141064245006577237457130907343410906392481105094746763486901081784748820659112524299346787704483106379941892931058721545546700125693081748993756129400475343997600609155084424706149310740295333825996069287328534615976376985278234544719168505172066712025491318977157433313227947598152160811212785635093577678181743321829892216425943813269885018425072914717231664079317848309439432931288147043201706460816067532480277144501535315849706386703231783435213042119710039078895333868503790114050890285282501181122765933660061524012803580934871173207483888926228753107258322837544100109320126063170575376639592188782664310564892066342636462719063542004286995442838045475098089764222054059764596486542169322720183111920971465073239632394915548575467592985589926748498437288787019574157880126782694651772178107986517005866414755829119770699010211196451229075197056817838058819046319805098068586999903686157750556568733594338966999357974396281578331163549023885923329704688712796272635831710761542230544469763223560520303729923135093383255774986848971038189188091265741674175751600037165334752837461981241110360475450365758501220222556623028804010586676306245697294058014627993285330711041866088699591924043532710577267295762085408434000674640036957773604180049520360754828000434966382887398293989730828496204444733473471335635159938398870049857811902604184107510401386225099056481025002783036055196850124741354970093177453740447789273562736052583717440706415487470621709226376051535753950760002722008555829971396040359884048964368173694314327143404956832718389410057402388495872168700547242140132717834634712918955574520692068584303484267442955146958440557131198045406249176533865998574484076562783965966959579623450353592450067269572852222293986484243147814068318565335167458762925867732348742705717304450638871684573820830078063399932019064788803056347253642152413591942678147774341126459884518965057011480540756426414267657051670237598196746158526331592180770771231411618225794418938230276892983616059506140372455641261235508342378693200239888158474978103027130566781561628364970292605391622653658285788686103210580059190060507303977448696808234304857767288180848075474695347027865167856305856203732708215515640461204068373364122729819555516561345066604921724639863943258393724856501404321439336027120364591546976652973432457029188749141573269766517451252305535763238005766254798883915740815310078963392093741414225691886802607113949380310918259057700728731258138151258174500825811329980918095552251101648747547068827482664577598765949205248024302084268451965379411985495541890633648999603757357894998569592844213958364632054041679334198416249727896828582920248287090992119453241521351821109067179722550922957100600738643678391118448186062865580701357037240820355366746102173897818520243165652966941083732220553807125884070505440651920643768796675392583103071818508756219489761772688914872513974392920615267207667578114495345948471570550499350293885684770143372312829111168727975829982349424837633262108916622950182347506252732423622028585706263162145819605990875427275395989382274527880537301877245065905323112903779521899043964179817343872289156732080564955949990978468803281679956937497292174484464880416877337747800898438199198869755097572759788691613676963590081258726501622454156779929407903177574903818630364090981265747032541080411587685586162015113903131860651157122051229951892377721913884980410832373538270091091779008605143135447642295898312901009042561150398872731789597233070637436375154865874811066626043940943778429089297901758599467074143599963095730848678518966906321161335151638717332348820171906883854330667371814908452737923878069189890791865258687743309605656730701634909063635821174959864593991677439754352575693823569015264946683497991408392949347437143703115228247858070474018916598410674241153009489377444229526794049330280962587749204393428740781244888226277381834533601884237296136858021688126521754751226491895052475003464663641293945346778571956370582583887725615486916259423185598106809150855510866773923563444247636911996887337316272706101730307475282582407858270681903189652911131299917853910098807276745495120952586532787911375944171402288961987005326999101407661016251371169709530712170976951687647317137853524791964651506586465787676638521906084726329623204074255556583213400285491730913526720985580305181451035886720107169176119417861375465134120564652244795283599777071793426055158505231116835374215526274414858471277123048365453552247169178838479699860683991442770905273408730065829962491564436633960238009661574424253961030421634826797587873211795203620942671236200258939730030803765903597524153599711014155277941913827251630259262161139862693058298294324341609476559463252098555756860422091842378313073434763097651610184121442754473699135602623122550400522654098676141575360475916903255407222314738097109232175552459645350489119015919012250525919903463298783178941519109958167465353665468403675031438016327853840719206140905411400389398948761943907021590900945352175799584649514243489210105430916931777193454115349367874605989149110846003087391104394057423255334390323188814966595635533310831038749679854104361158476223605330354084645911641676822606149241103876524347974019717422320381530435079446883806530354537544288132839067189990543004058065188851557738460794621099583312125909327487269370225008485152057579080692985462248172153588168191578464452475849031693790814690553819224627679326038660746125804592953664846097464861966334228601742923833366909235023047980537864815509142870913167646330378590995527903681363528331292167705260765245234272429326672963221799165371890076277578622719747132791401051041894579075973726818230841888575586798529416683713446386307988891720904543648222483445280033167200058875112719096409192676541050562934246272991245527466756294861125686682671859559691286505161558422244074513198446671866920413677818554715731443675827904415827520434445199943221863143179754094840058210434507425614510654421393940581037591878758349998834088671476126837292837969843229659450579422253547977771770755318643275990910445471649982780462591152518939455418479464978445407423354644155626422887952090210590390177608527039376366624414963180122342514438802395485559456906307032506003905403081433300089855852717605970708330744554247748518550536015867845898567038022046059737940395670723238545429550216066119473045986326528210526688376507421967186458640917267838914187181361844096307823571468018534238661800918379576004369728298315388808073491326444424767413029011940379750886657190788326014701862163238040217503771853455855069493060887964434624425146690830569530866015546374520676724463966961004208946274397863725724394297543049141696795145037418287827954862429660671553686871930958418943696941044273257767267596954062929845515985732243355261025933537305242819146698835156950618702662912311170656523753263391960598068357857961060771257227532445880137242543987378244071728806139679862956368015951063683170344546199520417710164309718913540352870460239965824775197119617399274592485882854374234584097396411033325573256120124076189359767880239322113237980730161185324450731597263268625151071896804869801963764475077694754458354680484975670356182445688481083532728659197773765064314735610470635657025234383069922796214563342682049383727626171260972884541069014308431568686580134007781343867779864584210019185266152178362835091437666527563844274183799651804355481038832473402906959587308235682930163905189938363413597678282987376138836663341414780776201247550698348206767254103620064487324247261266386964013375048430935886357948780866620850112984722550176965520199733448411367197822871899417371673690497067255037631524247785615768821338410261113159785114851901655242977716559754615322505965906124307989089372356673712041237024133056602169038333157954758526012452892233387575912816651488605970974670234090863595273272523374684911544932947635126932368220036996709597309700127198032401343474139181780514107867959228846201775705516055859353224840520947968138400392273151553183027339678148311953203794619979993236662321162669155363987620977959335751082909242091405118022183248802305875052754277519967451877655200354437487484414731769830081388443581568179341569280407441605015766177248262014076137095692314516613991083831216126729425989285219401996960370887000071599467997512466975771250336301555107778270980857229286953527843309661611273654786262435984840033037287770854084609102769277005748901777778269944563441925674346543878312690434158307074450501257900968766161583200655095307052527686910288975180463976504090925189326985679376942912349365407691981394058136965823967440807689464548088490771568890683416523449228892857459155797690931244438286223760542055227214493458690175662305833121868670216544950007190577436192560227920978589168943556357063783563829448238366794845388399790977149333523885543840268741221620103474884816375298147525939968906576955222098714037052340339853614369557615770974476918303456968027793047833206150056051417535702241323786287283225442911117293002340836623579484481248049776983686687285095328043139189721820834777101882553407964540298114753544159742735634657080117992968149892319320727780574809915435654779486809733138051583380995510250819241991726938982422848797100622633440496214466325778665733326280820505339159787547178390372449919520358792384020627679339224925141091344241128657971933542174435482725051839858504864364152813760259270145780974817610371627935139320280632864147963364082729203893158151991680837830834113846439558103591807785590356781649923624383593125869155660854962957310267327247222899097401746553964766949290243404589737664969106684735930404884410473021639757158471726426016537491243549530283360204518519485999066939209311043382891596208317114641348503902816094527767015151225025189282688623419552150877865740852786227832455855168491217446678990161056771281898304990071996822337567171124798045127222054375091358103849472101423292326537472296609491954805881864482708031004447180218572872014953374384345132394095703933642931904041678172784273293076219585137349384013619220788250988655821968154654959649202214475865435981183714201728676680039909929517132809638721488060627240558156244866056647454839122062935070665975715833070182977874159639539137447786450017110038074526154785871419884026779778892767323971294525268913680798429244533140822956808731649643619670291449114462937471840876673616447989896293563279297088504636556903866262400795210389082751148210933773021643238457957618012375284387768942110354166865231923773483497314235355333432925822072693798508053759280776753468096673190315949181424774750426354485489578435266811914682820491515585017507124101342163525312250858330059382301122596837625985437503500935083574464506818976661997736338127284598456925895796859696945908095585036880078572780828789426316871753330041037574827458212777744887077893307182811089046391321714162920394676743189830192069444159101132604008011147610515191143200910489712320419996754362239094502609598772242275487494573221980251851461732829360329328904061231921339291234433077968781008584136007182332228621253438070806751188482983964473891867611480649298693924804551557659652139821233835460302619145556142335382725586127668344895871473744870244525962764345640429783327306705917688883160177851369320695665941594499076448529681492613395573155863189395402445537754524840654722792212203021383124597362558634565759225334480988180788694031306348044016342299443018088056024468221622522641759373101599363454850847682511423980881039280134212581187269910233487434021175294856459458310597184734182798058989648507320086174998678227926808482737806346561088983112569916524327773966226527005474128707974297445217755224775195729298507904813631960181994589064641440009573078068993633163176958097181891635947110259950972520319844946585221286032551468253777540223547787465615016493353413882909607377173563825155534624295079717184114474596727705844633393443029710102097284739563989837201410464175758695635175861869782817862654746640739454485594165709783370835127517995956908160651096630804837762606517776643897595817532263891809599864185352672542934071838946414228042119593675193757420505687551739143494963897753560718084834686361024803491097176901395269168974523702691956027350013990408726445960665769437923239545191595291228449615320223444518423255046114793536746928618790214611374490087412710712908174381190129198655645085754801833644753152236264755054727041620490755356683196812031505188935830076232177420971484210170607212093749347661823223258019021609271098768245279845159994295128543798407474508315758738563418209456901205416542587348717251953046280542024362292188978057281425368847892427102536038356274812706779691524373426792084685456414975851743366879486606574454928000428211169209182734164606542263786011365728416029782932594401472602680973041325890294844537498130969614488942088677275895339532377118956193043021315917347711692172153059935666098333564303773157187242938156544462600552053939297130073904105240356400406861733695773381111500123793258965820542329034617732585684559694346094269616352887814541999622267082129034074868975418257138984165266316769562656964867285698444467156090971030006887030120105769778729750084286762406745772482296149908177520798688948279867520067227095698014816536358843804698154577341411534483176524731017317255901348437417581530027328661873922178585173334545055062254656308413397072670451394159654603263218576670150342491506140693407523441053546088061282855180469141327699992781163260801746238841585040366860803299405317171866134428086895449027323988894121244958368475317027198092508547971843188091525167521861557191506579703851887266396526242385422147557867904061523398236906474623595585978650302511108092476030835954146425635580061816873632608889761789073640738815839693864467491626376936480626429945776957077106064715505327368616955683795115823262056332887272002372288711429859788164583519931474316346536426981179393887714769533752562115406276968402588814960149369857338150183816445460527132058138572723375838719264017223492986136101750549479306405424267416918906064991932433955088033450500913928435062885961574628876644124769333177976798681110268732697348128201669710503510078252984243309805408949501042431546980556642809594126458117715939732920656572401650394934728828611625811555893323627664081645810259356269113503505253111414785375917057695441974991083255297352264995997408675411450723803947708194331664400935676573870928728671875258271756431893202629470593525038651854888919919384083862681997127298011013312213223924939201884705908058727096408065875180921288059862152378153374570247288936859926301963486332284517310044583861123130617009095470580272567530035835996401921494750466285071479969813429538315871728394348964247932779571838503811150327438635832744972972216919169696298558106241519331712388325239986366055904233753259570699639414378948474358630986131405035424283755146135708873247285136222469355950983256704822448577837517989947276304757780390686395954660031534013119416144501899082179781586137074976369070714217660835229318261605811244846094124125595620502306714785178033359644813621331034148798980659663177960989195707906469679820142430318913951924149934424353248972331543101226651724363454247711277888946825762688911305018137206937535591640509295041443151769941961202490468680868197859187624055393277938677951053922631226068257981022733224428050984877480476449989165648489188552727030600283805641697182719870259819713330583073486666648380614998043572231550614642503666068458538185223302960939853101168584760160248054198376825044110137125962687506980014377398026740684644387228208685180719563358549646409392448880168990559215479270159870134225640976666982746411279874170004131327374131630437018494127613237993624170903013142519358517607164608620181514295903878721310433749310894624500380826789995933861205134196355645768733857985313095554052134029269252530901469387087860102921770476134662577850428733034033262610416307321058975526350891724140301172052328523584097829511897570517616873533914415801351754018965587486690614762373450545379086936894027479728659022790137097030087963376925176338627180579948705252732036064679605965681178488967736002347940667635324290081922094432539362765860002425325819852359096996562366965123611375305117357401318264058018659174895943212530353955534295067631440239754690808130012907389746516151592441886958582697867138367817036992333902500931577117934639823744195790427861911524611343855077916277108354496424564226639718355300343337888883195641339550614530489340522565830498346943968028601362928323073892012136681332720690792466337443329874948206617620684416768009503992603654174133964262996325893885927262776703857520169891973642751434329589506241143987458576073110932446372648001402581600538293743413560944650917022792006541229629580991660320948846835895592363514337770950033239272080988313318873937656933434339535047570336724235217001346521770853706288213647908429089957281890790374166226217495282764916846698005726268723118532573821925006331665263235488981609470396082305710925149579347222841431705381024655692954073409246921518645933410866876055218815798447950359356452659201918024026039603302109377617551495917792643757018752806685354365534746168128720805196691057154488466139564168470777412210623942148586286778781285254412584911820698290140118495862886972911524252793623308701940544098609637918489896064045978411669970442431554036284331537733313140224918091057012226791982866541778538162791082682105456211580706148389788111963757701753254341957980553443092664633693224644686782480005995916714569693603530978336544473185415470088675156731967524031410294333369261304996813465109224972411485789931083578527995054854061560006407069211353748353769147621009974877962752188478336746161918687596839932567668942282641724247283309413497790366361994723447776489971607958794372771723228587431762425395110542040608349228680000324061362583471302457698770369028518208280634077614188290934920114636051133442016598322057008391593403283889127981186580577773682205299479223803890870882487045548789829804236772643561435046567088858848535861503658392170627757983280634370132380736111392022559614199392130520101498979457187580598567817947135191221974232630256970878885116529718303751344903653032365636100931913829895059205438919150731658213130068337362515297269721514066787187222433614110241082132352422331248181914847945135953696866702286222135002229528566235092635577371748880897578327173404569517494876333201529771661912594514489763138360506873980303668210269176193139954127800347249127272076124226967336339311373878029335868726589433518483802850213981087710592068419372019341538649655117805849549049887556854516335612410311271709660631439007685142433711710760864435114569956120234920698614076233467563808409223073672250194862826837164257684427329059903887897339794827640752168186556634091177533563812855522414493231738805027128477684762226271912315426671401584185720544926189421166450215251383271900314727862134049421918667869605595868302566644425630696258913779174519574186783736514032137058533079722533117748450915805954549158627153636858542669151364541998351233245920523745332258181416007088323726988369550266986308870886113386916096028479836498777235118734276023491110579906639621130596438361531447346740036069260435209851613738748975182679775017667623726095865550710333462318232437485109748226719296512202129294885512362194215943204312936496077210095362027912973069856065227808920831631786925141447193981810995348597327928346089830491029018440420664620105716656011623013361859425422297910951906213138141457643840754877800870062243478128851683548009152844714189477588243309398430744516532633677839250824170800044507174236046704604274206947154519111691787577596156392126658501657344763664252548985604519063305915246816181646760205755081677822545868991204356829562126917239213126108778419418050500539806597950163045633220952937177184605627165027246684735402424342666934560470135974530965942461474490885270219031944859951807715412384174714219397578700371603534363150896192332092124972791912067302233445957315550734109980181183053198245079337189455404648877666383382909392868215322944504705703879304389871239690779547100343599789236171443158581785792835942775070029144727819569219969524756328781788726164605607676256385036399450813621786112303876827455912199194061359610601426617790828419220945966836427401592883094465428265814580453646857638408430974051623809330220238418165325072013354294437538915475262142945398285687208478296667917474323158082506889871028634348521018102783604897462511288217780839476629156342466943525765172318394639781589657512905587050604684427012898226997510404405351275990304728554274726586485497759897354663064956556194090790021251565931097444047152461197350979798489807290729645073185623148897289392902311650578152479378763742069049737420118430971292322841532162348489748736255362499826161230326013356589046162579870679774038873251743261713918383924314495608645164926479110605403573765674261337017264744298640469045348284207750691139504354129007080770058111273630324989641092727879951481142840167477737657255775549753083198623227561434173615740291588084432383081101036394905686527459890694075750314384602744115852555725380699023832217954644153228902283758411192665983887185619270856383403599455903605710716938289019725451487927545482725231599489771202062043118929689013693426325713202961959251812305263746045370059673741482432755660208672428312581574001056695606274332406042688915813462297403617118388563612716526947910834047151563342636852056236204903927963139961394166888679103438924323003921390302518569683753552410377618588466931602144280279935396748809275719329968801458881058185100750184423555741771641121328886621432532711152890085761919100989930394290910840558186167797620007359100389571802399222073857411407025419669645439967831100672012483303719062213440001316216705598775118379011061737861972418748699680525100598770875181451602553045766230614123700006512743425004967748507267744456047211278883435894798662653076363098404986769291241769136185978267195667560771957455280342350856625923781025759639866597456810830718090652574773282330944269889885989604613653520130886261007034310808866871258078037149818394660084640226360938220629076915075972003611962840456998887524017807240400096275585242151041098474182072235979353384716417206121656636362983942803075165008838866611090391012452126428097645231290369128780309475110332453036971737634718349872368145662695085662735226293812239624075835462794210529704930653546328947074746144220770201177650227589347296355314353527032192350706230350110647261750411716201505131196439193691406839995526556145381754948319384204823052825438553480284733092836701442911219118914636203273534413827893951875370576735468075219212858861677295834620353993072315447311737306626209585452263805529092328708278110658563284743579460692736208580601728368246326162929767327551249926327880744961731890852798238916365252791864188301232825536508728272599914699206924648230371416062591298184846432203009420123478099470838198051582300720608947393013984662873130329521386090012853076502800555152099332529212441897665223507732881514634619637330356291638646494017348989625279894186264862399168994428166554519987245363717860357337060820468130847111280362271257952166711624947640176215389704553544606786999564450721906838508378044443010052518927592471557089436009207163087928531992246271577549157308346382039927320150061806501949901050553752860395217083449119018674315342037569008611492533379381635756398903352526256812762617585048183212890266492854686644755259144055185585173026984717479014222464344590641773474111667005070370146654568762964532455349137427053615181780558712762127670119469692175517211880383777779350885575440375793191048631069817301666236163339357064736959369918849065297181360459104876756715659499398842650852039386226008449900875602593990241176681382143091198726774699809817911780865403388510374847841500862425719925411562990036699391689572077802638032974583688206758996930998652682024767398326296677438812363873183285323290791719407453454778129791539213839226640481385064401735782554311351358896271842612543529457397630642995117848583452660584077470428381801530357663754235050564652209053560982301202098118725708303291035283844037662472916501706858144172872256714197441076270062207666252851333829970689866261356428597090190164098597499868659247694559218940802944403965140588308589899914605792567189877268216385074325201837428839845829637322765059929984266528466848165381785844104808749293129995405160306027153859995802279907180179531859130216237777112630116450255839777324810077666304147168837107366111299273467916649561651284496592763842006867025303687394051960024935569673690936534907807308217143772465194666229001001947457636762031842554317905651385737378494110935598745634913798752596969483542861041480391425866920770857775438012207573717850128889482008944931433212804698489332925369574156876987775661154966811260390733089528183205058687262825723001995098426212344566197397880094559646026239219640784677543129483433087775313641965408747413917729032803481375789433224970921277685525531518249780753535620026900398360717945136109434157600882574391552966133836790538941893083459334084989711939389997394543550673044351791178751793231073508187684816002265739920955339862323038500030382086657314815451325458254337227691906289197175179762137626647134495042979061463766559751795282794680434701405437271005207276007993332516131797665377470863413855065841282846305038463893179384105385069249996627370516672738726138511688396462196149616985475461097023476852557716644522484875964802807900523131046147544457436362531963727771250449989111240099768323288879113157212347123091209566206609552977984455540096780441338334337534900395919872151345763335718207112177407799295285768618123185932691306779805350791460313110680155922900176652838349390981338858141697699652013392047822133592925135220771641092365254261863613174512076275165234996893614810057352096107273915045212123089593299212044889494189135698469806677043959596988027276580723438498099008120602337565796577904719379432525074756467070083881464015069706061180577488651061360985544291353792952658101323826291741987923217609371565231400751254321427918568430605092925160426856075144204805119359325159678917590642971919376823858811810251109441981658286745797375675681936854021875272622828828953219693261244922545676685414515757351142330672641937095349718113364433049256219374987752096591521291436204255655109357275743959190546191223283149135784450556534397362541430469729000341353138800739191026921586277143846119839630579372975357634472411996966633384231857658924407955228584594594585571260258134380286109433865632613363887869146518107485696247845953642313777718051218894085313110399047940263904137898927843749943502912838985331929838500703064478312763133033617624118166320626364131587993107248256196643723097944769733606582200825505251984108337985054574056582331435955998074787037410069719890734843072496253612215789719512920936353900106852041865595960330694738519453332846649664049391945988170656806379653255603580116636272335986245068913958031411163601060399129993719810744016434852941563182508810829380239553371826268236078624461943903453581047636244044791060540391489757601530253566533144870390690452313703236971138740039702345322501339395953110845927764312212398311673372579037774978788152632737034708659015972298313991374058562311920022433258743448131955462535814555260716868212468178468705914346635433496504604292874698469982724944321733672149261629757942437237303955846130859122231347793805607404515689418439798562029233429352288465342328672955988326231355813994068546535894797537486555202289039600144539310778956919612231208534285064615701104939725113741647951649491155859113687071122450835914322865296799342446301725176916070500094463066474359071737474839271261253589375913010725077755954522590500940400243950764326379235512953051393845069005145362446613123228538812196182222373260991977557601305189916995227080892331988497313321569494623479648505536923625912140173906739422030313396193246557933382137832797449172582440619611769738950021310102230316112752206195910916239044640700384522442681767339118643479322924884465648560560490925374629563800473763063814930274644476621451874300927008281011581956195387498554563196585279729039979873061768559198721408072972487677755811970869917460556728291489217515166506779154972031823619228708431722310007518911580843731056867392254761901693805586051998126442356421833036339681973541849456798095816970682939940224394520455615153425592765261664330634805855729494408915431299413741074083049225263730344356505446999716674186154995639453852479003448107589892180896650778088943950670102988627562387630068930027786076198785815819227094541175388525616373409566919281275862775530732879271988452506487283656445855020024737589107016751029982923367458288172601850907913732279193408010969240314497669773705519569044375570330553590601572051147841463942144094770411400454863266644938494972503680745128463830999179853967623642138131879639092338739583917996438753936440190176155669221022768358182132577947763949653582260645540789641266300923801915765823978221140270530571766853737988654881149425446537921417490139882013304454633389917661221491660518867416313839736565982000170099417449181754683140897769733595740321923519535264123683009080384888536915712233868044959373069887643172012735074645703258396982932221997240189244943827744107025843719258615808564866732041741285780398983115184290179295422593625848133467679685404365854067137503609521141412674669435961389799162247171956800292996102884134779786503234017296893239672288537083587858111801513552267697732646336116314547692830987266314843823621903846165548444181372385420627337495027749225915242713064810283844045019880810323176291022435903315975257028841002611725402549380404342818313451388261474524531212910857794757586735856153900982479875902224071406546982174892469289980515712970489662341357146781022949173252107243554951370080631692901806588130749267714312859194375967976047826348580911800733269918657365600212580994463085635493173379004351294351133921906950570236797248938045316759154622447569959387161458319544230865478258720666111356380911110492559420642294159769281972053182951329364362209617877091861994067125734671764958529042872724198005978262697936501307149764155639427527966848884784494860411031722204076648273926318627888677034530313973065641722163849101275642308832835141389492316381996316195867465098670945840577605176197868617139427498379248442160538872176622656455227187240574069545903413479734595343794330252652811554884702548669740371851619878367498896835569780429572231778865569749112730199365253298335362995122740958514118392726639673753543953188235944509319562302885891754416541175250437646816425036696366496631225072739966657562875574632831886269562490266857119588120285215061999864626518192305187900442830454084959892491527276147310171454776947892515858457115029333350605802289866260283484977952919684037868108044417997586337088300997944582498492144695003188486088278834130829858171787211112742185752173111513463826100336343025743085938976560296087926623693482997574644295349456811773362459896401914422208405431404261468593285871006324392199978551720498742061984350380661608811866585992638187649583929823066399079896343442719799639082111296009091936675872266494133329506002185480613511128404884575057786455575021900315972688803313980026145197330536376988012288089842763881877940203642868078484990255343930223367874888444660252642683879304803461937736397585214495636541313276622648542860013760763949551478811304526296494054064965997259534055094039459182450497182658957894501949307705541251722025627513003316144117399260846897562004927823819972184691162712690595952340583152631268113123161459186754003111189107543090047582299916109483038940275689940041502962270769989964806600969572920972513980135888399965367948312884669273211628819499009627138930722289139607201015607977250568433131779552997686250666580839106376744979084680966829536771460105356654809995053579577685180646174495736775848874136146723898162988938708624469599015302468810642791689816408936076941967510643588873321717938283053623024086258150034996809288281616604885813643864213975052303704618312264539640372212225064028798866383568295913280778568962188055389127774553847794042476811639351951774167035228469626780638303736431663425556653676760732916017868960717409573562444885749115810669411758535850560011803338367457754589960037825254075167114734598328063244036040549648691280866491769366314669295903955752506139479290032790503672715373116016938175229085018773435251235604102661536387123440829492012450780089048453623699944535344262879637718400906805352610920813375809239695289351562262078805849462934011182103819369103982229469365967790219098333346220148817638407745881514258343847810810363587598950166483870777293261404545327269014514818232227396608131375334727256082013299316204279527058728878004375734647644543647568730175169980891993703728827301403731437867955923293058915165120037172538865758426772565082631398244827593606538254504817036791957896277080980023127019400985957075540912469112924715359132855022474330907474827016088477863731464136155013099092521920743877585238018197605966808933699984241516801279182687026215544487079555438484696784627682318221907377016204788397330670174454995548201689866934278351534146582179365118703465302140064601053329262808621259245528131966819388580784885060709022866031742879317416429720714187723371188465849615307743930472440520283996437027160858782847535854145231598887376441523724448353583347272661266710567920326375195974648633449490407345592341978174031278407619040669522284174703928247878202723124439814593884449330212935104409947201209006766551823896410585986646237748992724004121093401793772989690294505595720474284193329425801256031798371973401991930829434031665619827176687756364880820592016730744919774499469250627443900954125914844636265674124637506064264380822210885854171821163281405616370968976987828690720484402749320164041650464278904034119923392318244320076746179422081260724720802158573624325926648367120239902753766930359940721737236597232824346876928537252485481257839040793614223116528453837286417431704411497155117178453625141409911729968118193812190093383593315740211397684244151873859311409448768700971000152778789615872910548732690990506640204135816188305441866856103216807338151686867178177849447190167501859359650202008577848394592382631485302142090208338742939368112881189558803931651558102261167436212787669437461230873738558487868949853394548713006715789788736873303799723358569993833733289661538580074697072243319796195972118768693201580647265024718047081938687800082607677831968518570952014661468455605022764461289912725306946840654714963408314536083224881775321869853583179030100792972273194864409958494289935580379065740928487184794111072905737965894659736981228148103432768780701342131951447694287746950397675433046654488128096338262823644436988617641754747590080086001648408949478098442848505686287407730042755726274410027882557151681358811186622979693633592386749288956382548700209859490583578871601270205238331275450236096929663832659751966437254034208468361974925617857173056676831963152181018539892110264585408307188989591367129003141610067464427186356572300105517866334300595463645362697305959210483844965601011785465013335722806895643958969318985777944436248004365749652928649496078190678464807539937243543791654378047690121650190528309992698181006907472275074757793337643573159596535597189581591962531980501902086965410948449087205746246318236352215496059721628910427841818606383959196806744400660816164144866945079826477703668236195853041087989521656593058065792232449257258152138981293529249626106799367325826546247249961052846087196631582131009810137177681453011202355788842328559141525306268603257645172803603840637365449547442728538462433683790318852564300229202190034661646651271755615016470311773370923667578671221087235089263039182667095383604610630889861895396226255515104142826465730721362168527179627188113738110720347818197733271076340508806853021954981343738396024842812861583965609604748903656126152213426458691366949536609272023403782741779217297103523645911562939799391918737125406111001974382629969972125887620246860916766453693262495973405337533331400655187737295054466479430596835693259081801316203023245169763524515553306023031833313122260690918179985732809892515686616875956934499599503016031332333304219890301938280352997390197487357056891581400096847441310382926480472186146581557810563015302326327849769070130957841400529104926342559313097926761606716140791104753544183720367633743436276124051290132245343371292136455188032965902456047462339626194555083403807610247688511663795156736356725013977293811603888080841734771429515209433314765787658968896276347289560808718280630023450838062794364324949024864181801181444569038635511281181273960573317355945975684496053219985373130169570885158174933819747994192918752474087034397858667366113107096003506218200860901520465994885896779251598771788148728296177974854286563833700527374987950990012390051815690749243318942792834914457043369338406177383202301939695630433075034339556339193290096195931190385064863552365696429594571488208910961098821027948742869126432034612848191536108857112178423153219570959900201301683497867291246489837664865445500340303359039571564697906190275163862957399151224101742363800960358176551677339958399752800354928022846967749272531418739472308053530140942106027032049141123811232424981181007624611658233943065068165752450607444400989532977578937467317911850710790568667644263611398342934902947487277001167914403716770061485808388895051347042897300909237531065499699706116954358496161255043154535623577211432133894445475009967789104418482975340770340906600834290961204453565034281324135142123202681337779711294034981610823097539792468540339987458115799921446770385721538442506960380714795078992421338616501152418177352703632249744649543745721861489062874408204076983566524550790307365604757594946206277148040596425341418728171154092979013676954397907739815799783397686918370407650834496321025425266225672384756985917160828445653961424474300965414179481761239928211953187770890195373356071249126627016979093081134193487162043547326350327256154332867901983571940058447175741145488221125926820049894130065637489538271240897675586765538684814238676384376856839278402385018056001651146813862039850340339413743624994070482534960350143332225686574272710252715735722176165002467863680359671667780832794508370843158010175432807997868469343491586131980702063526374933947818198235115453392101868112246125625629528120903411432226073264740182141452316224881743164515190217604301606334469098894761719807212670236547077856992770895405352257460671052806040017454636681796870378789988317082388406511451285491694374089647325587247568568828736350079169674265110041513965570400952541520825445176824199007241396017407481618338242221476144050325095637816860910029816002998149437069724083159698090157322601560931285000694215208516347029360701410387377844832772136444729710947255327969112664603985022770083779774581995820687111808827682342245836431978851721541852542910546252338126369582876985930316849419559366902143108958673729581626449128941483292401028067917400514404379586284815957621351569330604005967880244260442064419300816478634817667418012539662866779640659343408374234373326513893850246770043202009735035256716966742479232361695121256473770657171170223325596746639298248532359278520349561936149600758508347262664888471581640182954557414207011847957010066004295337178670465233079617380798114177692094677868246765339883459971860427295035596219235690242936938593610856686003530985886478800957362687923492462253867485718653248583482671372485954448214013574650934117692004310027065914662037478768516866606590979786700918793626312381994690868807898555356369970837012980043213414734694313102753732390842362368788228395211595353210040827931321910914026686690369287094313086715428358729530804078601271428983461290725535032535491554492222391470909491337441261529867698385594253080751598106074039140675916583411157952722560125833384675284083486044834171343628808748870482603640281342712656800445298916099726279887335281145697278547140770959223131112876380379860956409430858188486038812110745330047263170114587393829253354827005913062494282069770728187982141607400294482172702889537273546492695830226994477760625300336748261761461519257736700757217815417519525913542300144446278219888052157460838810387810759510496944731712144307192882069870347841968939392625061655857009176325264028764007189026567161853469440045292843700553876799092654053030465462898377163603294730172431926985187291188214006904183524334240482541452574630164800858835413664250814372044252375125339543976956149305907869679187675080329763365671041324901895149143433421168361436987635783214069444470641123477797813656151585520656638809038976765166408101343015046440628724913502180114281875521072007328045072383441327627225698938474745214007388806413530537345205153785145142069731243729363957823253794362071927657609597926079184031197757604428948768233512024954226828436719285383690372026934938017965290032379923067011565373117273556747869175549348811278145998179950069327743065016917836713022043456429203684530408675985740547504312828053092916235226217594890408517598978649833261852796412641100009049774568036894148198143210834961078210944440075360653347059975794939679186023841348008645228099758738118806260594909577266612139793120077958925270506123074012881151844995892261217564228014804113430316721907872738663778767183920888175108937966960648390135125827822159871480910812614432466874961021587959194358414346841027182317244454081526021500565920849201823497626507395275900306056209038691327192755018559275514370526788547983888394350171075163410182142456087982839548947343862008158407656248578398266210917972987588995397248946714073092710321997855082974686752274690603543005010065208644431333721433286990262130439875162171385285266109472609041112468761259928579288726896348514309477023858927068251032703503886790030949403553429634132242084943645018383933135067221481246804513862473287632625637184254841229267534761490542441651813971430739466354585938362799300585450648596626713931460128670451095702457797347775925319749183146921974651240310262257226176044494781930652765140330218187613831591366402287137461964782052095657381452031434119526116364333586952322878442131569904872852492491887084883553411056839157048356500450268845973371962582634383763879115513333286605202355113017574178746164783666565251496842493261057344227905594565850022767571704198462184382317699332418656264346314442006958536310180271169361614920220789269409972109023891510657331992054101038527334352914266017311444408817293992774888781403591160886129833837649425421033524218571971972184681029244246965777957182055070858578570333208271320158894595180728522784065480900593049298775415148705651661810147218573276332743975089679050744132553001120318358169478608587264256824381596874071613756191631296291337282679502821008929085100466654445949723437341971507551033069466679085039522052068605586271736329334278414351492642392947756223849255568394080396721400385794695154455532934464353971410522356398960638565077627433390587467568174764306608089822053290870890444218693199644332545045234165345931691753136477878208829266853672566650617857487158186767264040137195503362300365733901281171677332459547118350201503062626145462437612413455783448871238942040263913437355903790049305071027412715270194644667117583230533588343051198355115149345126945658979553821349950310397395832629097188341097881249473902817682283876873927018276962782657734978470810174132465363867793995295974540716955366636588948603233804319744232617325978806921502733994182903788620930142782752587665593013348611696030442757847981855967291579333940735712571899848654910361313823250281839261015118052379278967351850840665023931138833724941182697927252520622504824457425178406449513221425869356577349159932058459024943323568387189135500616026161611025866500486514360566914976174077442824463802231327517952492895667869076837428878039766730832111540271528979105514846118717401417415879063098530196895251549817419110778456860527171561712841580867082943563304709903137933744984115189020547132487487404401182466271554601123410035427305295271699817021107982420349622072052746413375461055151611227857824494929034267095261830969600413493899533404687457631764209715418953498642763569018465153219056790168688339161936744444395199002355937428577514123283624174362532412919333582365890669903220403520259099997593385669458946423091357516545774379213465938149632494268241567120292038468211062490903044817696587327644995396609952990431731775071688602566330893428969659425127792845570185679462779870116995004085547611648352804958613749411968160170974320863071572820157996727287506927549754626924255815977019568143723918391084508798814590906249536646694445897076988880003013225962515519289756792891442532989365425999074067599495077350642895174325743061975231733831048458116675713474634907314668058259797066100813395923367679416523881569916895318709022946513439624919508322922374961265356447658536290245987226543352074484547779230739427324542879669386970885271352809144216752106661961903183122921466956962247851375139742637569219522047246730107526536666016405243876451854625644558677715973226675555726456506999714606424833230705438511759841794359908031642900164680167897532973075273387655365690284970068634622753902471297399433529803448888557722272455131851161857832765147564820000276818800747612737975056574726996338215242502272374292428077584470102043076440673812783735717289330883537108760671126378928306470748502436352590722820759722236012490050093894413696024843412325065917175717115361573972622715873786239575125860792148955733143507737538973956528842233836283547731739204361676551841185943215867016103079178470570234922470672067724111755929732201883683366910788546890697340454105187678030666488060430707739834574224865761541479818767886563577873462501149279152116322200168152998576906858905858506520069452347132851719885522010401089653702239046164101683525319036582727266791556001998637625297167324658421073016481216078068646935236647624680759253647366171208644846260171891802044899687109759691584888275894177497456130002613964292611153812898971091954191008273379578771526465361496207186703254642802815027113354647669081452653508505323794219799827563690296874756912543330084219504159779790133995163100358777377846959396073562570773864331028990635171713730962142646824127591086306561211895291366689780905563851715640579309484106077243832692437477870965579696808023948269551381150770093657416050346017985281419658253639032234797743661382440160306412652944605144091619920405291680871550336525163300513934673369105539439961255503959105540689414888338420629866165403868279525152129716178014131038868710065893525640140438786964537842227066327537832880266529786370856640755824264049766692991119974062266222408809062347407213440541446714112382023290442883686441815804814123430759315197834141950794605340285439392093175776290744378171142482044336743142991552376127663417782438222884051013538969148618214008317120087166213255992547521578649269262873872107320251080369157547577013584259077038910605673488290134143493583771958782210650908193428768070794877439855855481283711324439288022720191596550292963801050227852548089656557307707254773902167632297211857925482978547516492641311375466682798534492740574567330926033908776578531214102046051705337243628587151733572154325210316739841284132866375020976639092074495497960574331221681412762120818632243868657134910647293450802277553350446335975079375235612405665423070371352009921265168193509169163493904563146952428019314502944364506187664783955740377215998897055655588640108930616343623350921025468421247066101560016619852821265370892234768360745416660063561078946877434355054598816177663730886873297671986973582383753185669815506696287404319449657245849867050505324743064327110254583867145325049670538710233338107576578172625680846478551614330197936269349397819693256310591588516345462824751694974704619563091546166680437485543522272620704133720695936091560238722806910005399456171086280404996143206946704919404231297291669745621012597551860018248143351597968311152743883827327097987835445713194393449912124782183905149800426977072563638559454786575878068874218850431459545519997569104740671336491766816984804632749211361110355281866712351265064653054628791320085909695099816894075797431479337800431697475292267969905752002084602532029844420057466677299809038874754163051224319081318597732075960066562730506136759861081692962443329949134601050802603284826679440174609582931161477856980932258526256698606609125839733324740228062548168795626796220431373730290372078489306084006236716423686467981966240534925935619215162856950789268519877671545964560108389764821811547913617939824177002904960802147709399470961509203947412467754336536105179543082432975982283272208769623012426129928589169477167969166112356501490029757769802685971717943755414591379600915339551042903208751326753627444526957730345504587610787850429279384289079825088261603831265857287330123324361206542890929613784484550799165792043912766820378751083425623110509845370964012384011975772514554973741855659387824652081100315379903186300492367231959547228036632925914857207910807327834330216478892093684358779878996741422440257832312696198464980011736334775556768256815757636824439563243590389891818493803918504564326527689322513919335642038904621620552193170727106074090207619502078900429996259225998309230925180249268251220421270415982743192509802134732012369303365994954608855179166400849720872898769452192155408522486768857479874493595093116639256707577951619451328549752568625944988581330266213986231856893716694886623689170587292933406345906095927644193073467268338522552726577955656689358781988715347244115102201677795075426285280935825417046224516749923268624510732080152220257906475063501618241193263035470013334294916530895638568974549942869371954107151405586222548332570364882989264942104950714598082383988460229821776259950943623303017322122829027297345625592754380112095123925221178426350912180823128737226801610724256943903189246053197893346126526585360007697539002270027713537491335744481440185868196891556660606361882769658426969391916818544876050577245464719078613569231101040169075342447247861330109915042268054589967789496826420992339084026160789802987787083114595314059463875737477862455388159793789226525139056663140485881702946084391377798783227095863925044463637238626795231302932453660671420888675583285693487544568228663131189931367541696666926882364828184046320686159756821284122729690882376941727143687524908921361995800638626810936138374460538829786670151389596852736060703249893170348774256981687127446785811848044332392280394255317978621823989179577392046773068679465229513632582713855408094465167590472113133267128681048146538409122795174997020227531410722363943845196629658935303584853669188391817955146749076945700450992747552985783161682271751227537442817251963172879978463869333384183589509243062306710923362345654639951690643593704379501358737972094450164857917156621446371739525434046612752398815629497325406011597900650532354944870231116018697446733947215060458251469718888829718873917633023763552068043095232522337492527262205013922758527830551745371787173195388086724439596152003483100707620711383153082592451356611140379666693127473411424737020844619609887805754985413185806495869643747558119959385519724501733604048482926897666705653703800751305081385170255172905215531516463867119204674852009207753304580494625750269672983134290915851654325551404976237337779555168189329850455613746191370089914742061885185077818966899766109914418776688094816829728917832578387063723587040057186159046985295449035550808524430101308177916164055480570717578465262713330370384576402109153679771101066428476859786128039343178869797671268804374466551383040743431621818410685866742100327467636576199685928400621278619808132948482761195366126722196398387608077497389096960941904560375677857015040059523809160370153098085923616064510871007446548271774042366819934873993743607744593143742277494540068183223571155530268561953594642645396555745224716577416380101255051313884318015652550264008965363488661023632513861727097852489423474388047923426864614608868505983818952812867798760044686603819177805555107295930575594496714225953401719482401195659006831380814434574870991743324507361977120918027843206702643758495332049686505399379119115085352208085905818382331466508609564592678793553955876802366315470093221474474895219516155291538418437620193639501168198045498846903303442351522506772958638911763068096550702277786862972981086129563581182361826256675593177860264565602821222114937504177815233376376160123723207567389846772397668006746934094423352080513179692305281414463383243123486884218083384069009077843698284300938128183882803116684258540501175692635190107896678713439125045902293781250066270045889057151203707214140656527304443881027615081703214556845951710290935235529812206237814887740086514095419099945220551104397707423222143837468697162262550758488029779035369585783759196790428934395370158161935847306549791452879246543460778132802933679441586377807611752031019285906295847159466634484671071926570869197321450760730738763188730200324851000040652568123679830508273345422959120280334277139732375315352374422130786502475822444953899578936819491089679882130505258267484414222250414971632024508637199201423575756712711166895088265911248293657409545277710762517398183953950383584660308347461410683600154342109939312470233863908007638446289794532184316243699508013577588738700938555249363814296248490167838312781667196510353056303095957486819209331554426295245840009884390521445852687809126504292886508779606816556222527115234426158700710535113807254310620645982828992897999048763445962487559713078183297948847480753040657182299183955702875948450446954028098457232315186665326700044009212472227817301876361633628968672709295859928491921491287293444792943517205523344577660307211989666058262865002823451079486121559457639759072766109032912555002339004907836251041086860907399044995836839522664201456091624350728955993436500586382635470834983021803554546464544580690252249925935629147371452031393988814967980995342396081770971906177361475817998668678287277027381983741923020352511956245151880332459477914261806851477114658244021716274228783833686592916182232808288362608235439336525051441288119329050036069538858415593403047418473235941082688802353057443470576649670290001031748590775815646928407089935335768327337661392365879594492207814956664366060768363023605576240907657581752707473806130010239948460831056678203112182810949382264421687003669846878759298864967025711549688825271349321020107462887676419246462879019467458255848407339714848419305693482629032799927304670108618843895823241156257334165962047144463114682006909991766240878897776143258791537380261209789039949944958254145473364435490608033073174951174407011940702186441485636104705272594251492779165811277454421426418072990759744448783934317468189807150331280993898837007901904377647517395272254887508482424937284012216198421591846307865953938727676505630080223649620167075260452334451726394492016782938682298489881333895132644340278288673653210363352885017717403047951684024338473634715611322492761714668933610575449654467616155060863967365965658573147473793858936023144343668035089001678625168339557575658881761310084495073086973479330473127100424181626946480480277883219765329202017809301119587630619032709176840401533443595529205784364268265100012844371516488404582619112537040620536856067611121005862693485865943570007479126872054665611528348804506343931529126700194610425393243750081026946291209113303504063754271981546722999008389780842800608502544875032212919560141887225491931384577478657510067938980846463601541126021408589984280638824265460372413577191419561911759436986632782385650748991578808045639965825191305752526764931668100011754090310819366428723720753863763440124167326663959969122834094125036086329018582868269527825303108088228793474413098049958293348161661874161986311470150862895436947239245614256687565022579214768050770767347453720961410045008246653708487154433175740196905033268226348711222756924288825803131880063947841350803247058500680436555441259372885213506640090789768481599971309833499912939292016391251693522240394367071397222710406653376228096483538891174992383738875838032108305661009753216804243771551141290693122703074941179873350986973063305391582096757570664732467474055278632764012997696511817962552253287818652773149921169155816518574246115458118775099300938040108994090204599871702000822729545638826511895031264734369913413238540096388546532387633411890211429919498644576744089441981282377133842988711702033560199217399865108004501966588774115702312277972543316576018076910094711472347354037627570381516603110649894402682899060146197631782586175408416177015081857085161980916828088585754735528694754726361958914787780081287442579915953789314376408228814138648971316000857167688139316108134362646883747634135376865385933082219691577702281962110071589137204987351977280183291820144056874202861881411695903668564809287685548288934016774306065858295200163341413738038994635150723828349400277872282581655651014989664565213095646521086555972257673947945869390800024112334864975944295212596886001052648027641978538090541375805580051914215580215776787739344620877258090362515503782902308809884333322260574799903068886627591059710832296460483912545403654994140233953663982688759933855310964205103417067269978217658733570192759398573427747179067997556130330478781071787150346443536812578844267691870956353809125760654792920673244171114937668090112473963103544764282760511704058262501333909697439597658718850904913545121845367624655238177848944864093155306140770550834319126907780029536525994879356420120169497768782182192102990547358626244408867623922793022495296706697721035352944141754283796150638123269216587493923598728301727863124598778694897069533846236482417287691572371132634112535504590935740476276387154437631576010404205513438516319493379963292967923716593011965850248435991092750865826541883489198581722364087023161424392984877453617996399073037739807936882214646654111437505842378240337249098346093955231791784563589811724677533226671747079091260581284655213806927395195346546609626894974688378892900545777116411956713254121995613881777774264081361464290055160591317317485899319667719419734565998486676273092482334977310813794955657750659780027413837358368243167018684404425938753788072918562552449847030720268919162752268837657837654761530041021115402253750383387921564069397872519292260311991764256512050789399835744166090611736993035027834927163531646322722137837971913572020663217806286095998338756399105679181888166020010251050434938369993825170339843333805030015846702256616644482354764673893475345860881522862547669317026898122239323507543565064907759975157065890161973470671014610277529704523774316339077444975033700398044525892065984008606846060328183713444040221694869862748446681287362218476754195307109931823387692838523105011084097657331265356859459483011339538265927077693993577096265339181984748884268705327404228459632059803193442757636587541094591509603446248341210662900140397339418435454165740020024856826611468303176309499043122098329113072178132123090850950948900475487515970952911184281431599289503611882666987183390641543588186536380563412516078780409071456828206041226850111121818850986442027384246972649663048551786324180116576098547379381214766116234578456953724654457936846326805272018538454295632915470704429942245323183239636172960850042468586866935719903175430452478152359130656460991449703876421262698950105337574054789613182017265072435771636959747381705717386745838680835428484534811027342504023122973527813908287520953391179644552732377363016555890161569757105567774115982802210586410611795311335894270502642821832296058088663426720108752678914921208661365564583107992911831215588255791628674106807743067227548392693170693256573460564476290078460310594210416987732404598704442084080273237937396905564298721771473653457465314548085668063535581292971039241992026050301252986911674410689838761672100289806356117810547179795419828552445242232501836952563964315624126946400865601814337793579239146004187894475707367759042650929420945363166792544611402489066825535870788394505650147530881585740550639562859689168851276390390936923050149792091036711004460723229950508982052598136465023774348422917192572674174221253369569480265681981407048404184404434766972822841090284720707890819446254927959220048777031270924805816643899219195445165942461785462770971391129918272624716562420394231000188662546472714842043274765605867295930304002854360860472015514084948857807116723865875641054916918359885459058243414286797888785801311644532283739570351600709526803847390619198840142249715144974152256467027224812355102281620316883994407907288981420683107789095757388695319032052783652236182149056127371423438646495776949293528217307549789662042280747805724064421441582914890799515103052413649993796842395539481522803342613389950078458846290879335841595261505254036336984903229965086350723726121230705926362650344800352126987157729033347029447155479097678228418970485408508102039338569898834790212812646322243327091502904999207573475057109520175610747437268547017957306093835238104738999205791106820775630633010825906919971103122813176948942038985993321488089790504809983422144851932138342044157118674646471483563969049701229109049802128777545500322792711169501897853827580504738195568144270888228733234200031190483512789162598656125802166546044315624271495311183553802456286765160776180461262178488393281951095287845737174696165879933869239838917898496643465510075847059527026004469957713894515510308152191373860708646841607347755664645517209864376742584767889882469390457940526826793745013725080990295269054590460951913556051188349095327532090476951414139782871081204673018111871169846660129684092875798062610060958570701882803857101450664225925865805328959736694768735399345883363676703571835752740919283223762255136762012998704601924933130890617960050192690920067048888131577985115443846464496239498451399186733081229480879090409741627769422921163750956660307019618585023688230052856988525930460835121921761786488241703426459038468597255874209071319624383781311367454553331199327235285359262734737128815680447479901952975421844817717169936027377460701774585457158203219134409048602110040674664953585076973150020806790647204782117120497719207227247734151842729491000012272810325827760153833859185420251394517062783800026710013154743914332131662631203811374400655207551105965866434831185389529657253426185889851543060146808430217736317445774782060075043468378368346315027485954489487848013371944469412091773149789090899704845698044344022662871087446666018805595763195796222461912073642239891350355172701734453564206061184352729878452822363447369434754299624053627843062616678751443186527724102422961621553726917680478153468860136559763907672522642626084415836299618449036280052377130762699192100126097414502326551109120130008779498915424362203013050478575784059287202750503720287591581301206236993299825204509198164575264587239548112560763007870729993574334565417217126424038377611755713378978009002062930053830888294517589005218669574430136288618043266240985806857494392638202363706046371135159210809554995574816474670602185686190780552522961162105828847738669081476820714215661288800922964369599775329542072263429407831423797786422389893845056271308866736113041060809811698470143647477512484759739377440269754961867594040957123979302586281029594183341705351331302878865964278298560717591075215824573946456099672889242174994161441746287436964948009552193446696711947966929514272554816969738039071327527967274128632944797193825920744607852954220848462601665386449689863648465516347248054415360437506400882203924950501607136241505847541464962448460082483703153988708835429920265887787753368467280924896136651382178527537807018120576732928269849209507235270731036684709250378857009091480642392226650560812608141308794695087239901046293617770481338269411654674098590597866969847336465579054448912172509291110150276645477555136652203033255484714083424906178194822541611552873026491589297384535728419985315142033752402936907509584033374762221663276924405371406934386944181780488894029328993562130319937478649967960111388672113058179156791135414268562778521357332105549473723686604096133661065535480350959278304900066894750139955670233155912461845500828709444444705769603850589381158533565638784916982323512205355888394995402471450584060304287031464315189742144883330030933701735467929710054518842063266805726215787125556138572837151622966685733608088306837960584070508416960542931916479574018316589919175414784181688615683328034853652870104501754583256929006286115128606414340208757932567720067998568956408114583293039322462359640812136387149220361960025973413631023577361618396808867068250424933333378317428899173908821487154120113390141081964953494628172138293096866562870627526482466014075721913767985278009874101103696898478200499436337983557905393542649981618171949085402065054485426274435891909060196582998986133271503995099863091107900987123345805782118408884049960748078287692036455636677607318011407593720716157893012110716453982761531326844949864556840331934375660416887103767521181562951126832138314964321802413833570447868355615530558156945956330780242178609432516429479128214040796408315219972297602924606368930517449784737263483019539045866612400959200220935668010673699790371319589895324721660894315119298467202586231173154532877389153200622786977578568233440056349966962740113676669632749671681643355285624903309408665364330363268289353217529737587477051591715401257351249298745414918553038397022651008755741631244043223213646433659603455442338574843892178708406095172865175918305084206608684116682711713995336304587837533130780786168807522252206335862130020357463596064955709804551905321893652894862769767595547353980938726340840866733462391813238686381384313315726681628027503222523730097613030384855381152943743425974861950729490381455595077561895960025780937055035652507406215377042904628942854673059736480840195365583188594423329772487914195800094019226622195822930514552265114694379062396216388258338426564621846004851168258463821396344587719092539578158792225347984789388498315579933790474335843058795955842467494880232446548871312222396896137132905525214281329266497877226993078648366160841774799949431589562557845275772298012111952662207653388463743732654624683059492972843081386504405822865096670739616181149799571253891204528302543755130289439942640629621476512886026253089365740568991569422681305987398113237995790403107372535921757381801293340301122951549667724000429786916110508707682101568481771640182663860596281570282203564310794746932357181838237600228910793910149608924948833547546750553550713325307417514813589860764086156709283410667212034877714625245092980237184743597485673356882857551957074361371009018161004446584432386405843383765364245205226406113466349432381817241070907102184981300418091545095137163942463915273203281638324522092166223182000868226774126619865163254316124806366664447938721904648388294237039757304953661149144905365608549692241014356033191527467595161844596197549892577398158611277077322027864762878726281519773730964945858517205827822357497314245667767336959972598844536917872066471637341800818162269186226972427368584938693571418190033950629389237348289816431645519014951235790342084597842180272857866976542095069867514479253077068703527974430930184067253903760812031490375724336571490465146299743521779175655811823391185107931895952685252426404592517262501777544739374045691008817744282906830246835588016982178820449184030691730626099912767419343350869520845429066000338145625013410871204451744902765862003967948412168244510276661912430639541498730091611103013597994377377280365891183293243829119316102248730550212593453635304232511737015871327903392590658649972080766491788685597117028150859967684809835002670517852153618489261625648556958883916588202933703491642926858447712372553147004928335565466113791004343118206397878313408910255293070066724926296173524973725411005262785561684983766411665957911780912882656521418301099394029690474707930781447829293622143430407827375247162818218097667142490104083320267359452158102533999483902127598832202550960245804109016869410301424864500476899641111778738462898181909331683626316043858658584062533302936986165855207506936532199056242876673787327568203205069058475148754756595539373786145132811317342535196241438417171114636026179405988967879765988625226398507672876487701093953799583457779034031963227122465093213216569549539338596445785755560184883933496974316709383410094643728377037620396362592195591436127536493158493298895247596414319777151969094932175854546034875290052485519572462600036039250286892159482275760303280372757764386712466392053365671674343741107134441825607260532822651402220028834869120695330953872626573006294437898829276470761512711824458950033035086757879410930482106601575295944742179861574715826689759864602083378171780229484482363890720294801739335660065237726620663698449138466398303240060602876198903090581943956102374203343534428721849355723987220699082477073855412490117705568705088291256979484392256551724675017388051662830836567937140506785473204320586598893983969215647793152656375477211399845737606161822708426407233936093697385421343630365325324658412459184865730708315650979137417277068335665155724391876520914480271395985163149314563905899249571088570108744345678496263767216023190506640214987432573078918009535580133228992867016923870370835036330742637952866032135895291890468815085013750202762203633835640615964435367712094771319675285977728943631363150713351802952750860740301517177086447277981074843099073286417578139508930539023286664936304596923176068625177507051956294450956444234430430498858252754383377756258157526570634457493429435285034342164414332581044597089461807120964810935057364739280737957450576460777760179530998228757468091835649082634046247877604999928718315614966863460123750061948996186539014709991089289172572354819683016793339566180068266289798451108369452697060390747061599073739266961468493800019224061530690683638634548255176723090833168442586021036546735003198779177791496046782403166962764292300598907884343374629890518190566169646806621180579356121989734947043414715981657763182425749603725972555141312676335161572518579444973493225546571365419225392863478943742886041548793438572716861243294626718505752063558845244877844814619302167101948965937697390483526920287687705376826753534940587210197191750380789997728853652663804482228354585984785219193287246498578532621390137218310597001134461236099500449328449125163667863683729671708138076088309271763462543127385616671249448776622564279826802536085875267138704562057889632900208440924226762967333706144479615893901551148488466238592416633862756297664210107832745189586218700283164933310816377348023976760270911138155937904952305296528158356119368476352889419145446553480790354450550939716199876024719475654669405664685760327398883325733541409583669579901421414103565083997775497890101011854928667137955480351501004458530155583062346775863352885765820118213881654694636212491480633939023651638218815532102367049648150093495021632284069938307433879130014582307098465268302414071361863174359487151621793263278495029560512178057061535999880737526409734639140018024722445416688698295848955036867764184524622316555253185806931821896898046309704631100014032766055557949709993889394060788658526179861066190154231579137369257961858010078130612408113243405737039200984775934381150789888042091068853257251212505141837120854895959111927682464068301413705068435397194673828948579531978865108092467451314894120867397148575531260963657689469394692590507326611230383376782789521079913997830829468571905590620676452463903290993265602557579779552440448435798139792916081933141143092923000913169506850948827726714155627262814912670115060842928688959102622146549746666139583466393699747954512652333135366956081719341702766011041152533155236290900828863509269327196221737750589067524638180940837231721729449721553538975993055246087822218567954682796006481421627619269320251954630912652547116608118595049660666931561346129633657921612074166786348388256212313715106457643953774395544895315121649012583187283387980478499242989218332143220717786126977170527787819692914289119121019357672668348915737932955960171455363866732254064785156368639104102394643996995883504326599787326881386324092898566595284119661059346549202344189553365727193734323922179313306226167333548290821530149629132937164578761514321644516851564734566474911744515180478805101717765350944406750063056400453693529730947837675118754006296031685168093255610548861432594200389105331172611938005719986302268913207226968956230971676263400486461451569269277659037589431228051062972160639236904676559815069888791073811504674881906183845771031142369291238642637528720722476653519474397126522433491640524732625422095543264319554596314601404038751045925803342067717365286341921600169502332158371601636524883089940385406087429840266364861118086907480794260139089225919782317681769233880207478495595836850483217902226959646755989306801907744069126099869825391245974857872913799279015630668155096681348061845578595015630323534992109370628770277289794768661210259797729891247818527466766293362658745766951638254966353727504463840857772544139967097935686263191471545949827230639951158845658984035809931365941028774695640013563031079544034521419720435882257330409597676802233617870278411262292091762171557974977662641772250192777356122941120734323979129860713121496236581676654019993577315061032899206202277688072591603235580959639407526933472231135598472788099376462903113318184936799525620155165849444299954158325506024864935952653154160676513476752195174771300394664161833862682678321708893061791326805918779920163405741750000626904019307152692115508303069837420894776049372504182865717393810791913272929246285085128025392927773327583910902009217424243492244321561717505350565037419211654753804032407164002744560438502361508604822882053806021686649183710057104381272570632494674938066161920693771807281910310486862304984213119917677671187733922604964278243904828418597633171271727605599036409881691112109636935999456198305427164656492689932574075098870060732241597687094082137449583272528741694015490882674139613113460761499292179202741930602998360257214363007106942683030156152374991506183302920926320384498986152358646410190147351117504124947669565936783707146023758622099684238211864837099174465930663245419445454199295172380376388168904722411132436690231382078849763494277598694075749647362685439671213098625905387979135978688062498748161723076495410815106802259710038007645647052513954269083635310547891596250115197972333652611369073949375800827002036466398452193779832051852965331810723535035573359954464882673938842445449431316065934621418879039936529316037357455546777161562722952774998102419202286236099011410956983068907889783002411466033876342200074113909159306518654048672283555718563616312476055915552732749043689446784159013867346438038198653563368854722556295555970035053464907288541947475967614556629221973716970284386972233534086162559917341049321048928947619062323281449035687120723840501461145122298667797495546180647419036451960087808202515300082994703502124533764718457609633487929982408087385246217500103728537453538969984895624201150948520356475291369777425078444222085135191727893687369514825319766785638479537813769542602110368924830009581328107838075890510640878179141955906753056858174954479005490015649865130394719065445145596952427825910209083420081866707501644083621967676831906355886074188163388549471019024004120921808093417605719760961422641376094030108634901315728152097815434404023468187762228490667778488215773275232552604997969224824710546535242409882697488684598627910065886749492161123637393055503341710487941385336324289338229199652067570067639592575329900586935448381565282328186538165523465849448622293416439814525519667458818711996595921400743240767460159551493680630953925471361613907373824959472111932076543196515629574530386593159285436535553226714617422633703290393294801047492116791335665530263689122890995307911465400516722165371446960677556208695623461142905154994791126927467287419256604615932485454912028081508431306059078127633792807868419857998758887043263446523695575753945980746941575187557358760008571189758223341961097175361901175618158680016536521612388539697854391756682188888581838631955016434984814296400014174030854218701880380435719822737870819018986171765552633451229426409216301083607530923615393973740596317730984233676287826695170583138219819917031380661844971789276688623346896298075316200302903072281436497145541106519979105752824674480513028747771812106209506457223825398398068668478778113117907233914522148197096557118072712345545023628447781519576116220919174576324849128545790658337465702726632619291349055736275861314501425380423223136122690914826357520751925368457360322773495974208082299799649905743553231524136525882804268468101308785676895539997471802604445043960295759227912706771292665041694101008055668630407576193147313352040011044938016027589872181737974577996812035812186897055423660996560471906031355945125600701362724281923827667354359596365432408748910244220141128824908019311770679431187668597061351601939376387055757855401115023626164436492267262488881790870770304124341015707152703610252804617102946981994584486966012486403651238045100496722690181672385520354772128688688642959351826825214704588439074462921547036905298505010570037051392036161704798812280697349829949140944715055856769678296412746762100025507925318826722355632799258640657521134910762471502340777019640151275153262762522536400402646923605340124382684414898856892714962598631372866467781201391198408454762570925922183973877708704228886467545836174897973815365441234101309797328767457658365931828695432268186221632513760827873710006424252992092859166896553804240853340406020832502925575568618119914899637206381167597720670437764779721888143632479745925011383810596675508898640109322257484815842278236078131418723718783465139268397050276753718063992440551728339622078444139734384822438091789169359077589201754627395844884959082204330722738412447504776954104286689979521568398102202852406497571815690838138863852806985257298828368552144073802347754118638347682719224124278210355218725494528595090430981759697955120036457634269720697019343112289252887477394425165157032135831773088782393027489649444033203095763226036285416544366787696005564184218509825027031597660891723993706430413645233722493922457736284026336952496226712754593609979259007756890456596723272332487910559257396611546804537716925471646793111555708154752462631555744465226372770770677597236792804645499134633676837524457295713101178812577972295012770198764934915964558443679986231226394103852660236778818247383832845028004825209490383807628153712674946709354199222108533649924319339348457974849199024528100085675041124879606397026921701572206935472505469615257706070900523241230529180435824799681276034408573523436553651766672854790743702658757196314723041934486858354237495132372426280895179666302864556336378898822775487002248754478174775200940855586315391178731734037048604458750714895350305586875173181674108153003577586064332366360589950238428108079176893236077593313554400676709616400296789171928520151463614593498430326287907317977786520865672594689166599287067482147900345922280268912221345641147090177343659946108167544391305099733157692859735870481924490390513315977091085856252423871793387935072808065760154208252895368518429071793893375728597513405379431038962599048607982231167617840130199480963247595394830611203996820277148473845225809991282186907623581911411494188668712934058815820750496790980158290804397890532438008532896293195805731024883704771323834614822978962038194577961677918733524500221786323918693060742880486066251161093657231631005706407528984094788628803499808472849308274606903416590920368445949208161697818686370266428543839426900498485950206402468396520966679395532900790276255016368506033824513630008302288371710346780288080823504933536858622588530807921299367208500521993306376118002640040401586215280582862825085958712697464197824668815919597332763066922637405155827247298476405924977096832644402304525693146393730333795449713202484206670090906873038978415676116432701286753155817120493511465694282123978078483397185676021109231895707711364832725668814368488104879274933490669104638173896467135097394796419339370785396691919664908782778314508381238316188242506098316420322577338847002485487209407449063245638559441354523222772668996707799949286797642446026351394990373001776208910738093455572930446765015071756271259861592755320896539683381873037320707680443050017502812815512000954378152831810625889464823847538869612795445818208730197806499561622974788557220453857368337313148920923678636242234147014380277153320291942626787600263616401177676303808391750407922022402044016331403765142882126266771799872717466479458793617591541115280111346374901782123917709871900352940285688774719056299675920804488210844074924442160203712315722685966358084325898434179205173623643834487650530220499286408408962619970865470562070521427647469681025423521552149320764669846612329126729318703818862871800564913941570083037822180809062908386289354929867085366572501687298488803625515955349772891051579706556755773355633593131449718405316677102498757725096473814781523569568407916835489764711104038328341662503641652797168344737239600964117662270735482336489036761046062142556131153546031107513226685004365643653158085608908416762972649902928118864620484066414360117109543829711792970414292045622255368566021020925344652965096681253872671874170795119712438920328117408777704825093040293629169457034589129183299405411969959918186092433563020216524350680328612418958820732984111000638207873665079123374344970703435428918062062478157378435067492810911502106974595771919707290080693020264054104854906018101584545867913011886136003978865260949248222240903473938342106425884127208669677188439433858937013217455332953302864349875727548229465071944437772529312665019395856277408855006920224072980816989226632678588285313957166598191383106560710705778244393330202457512265083680034240822775962372803964573168578180014720905540314222060755835026150354291851118083871697454168413720002863071839403433290016007941029377518951040985385139806316239123953085839877112511650930898196952212686383703460752982735125599096989710897068171664020601939956168026763814861823251039447300709203829892447197697585840585470866757545749037576985458348680181319928925692306210724558885018722293850774982606534363101032258536788310842362292412067017445852175642224242869749573646223335192659649060653574835682309509883402006870519834177554729457723420180194388587122826942538243535812885100766171849785803153368999293871920011431440594225544108809465387447083804010145515278006326379322085216728077161575969301769018016230402877036842487282321087416941564822482696817669067596753153117545279874023778350504406103206187463314323463385270005418628632388785860332199199745633036484352683803630297442087058816161261038958423371891308370314907788509972321194539872050575701484010135250473229366231296050535954052484194049945404528549815385325037521029746052782623978009655300222949203235340897042320504779287972873623443275516400793249793980614070668918423698844858465668263046120847831287151173802347796082574637889621680822542504775918832957981696066847912980330293657309995939120434385580678593589328951782589849430000980366430001218249702338035181222162851954363498703815313854391462872320743147492863829642549663064963932580529353807573599596336538938743223677596714627764437919823909719969653136487462990812345836508025436229388782386084800770324321450552731823644102029576086657317199974809444346851628933950483464161009440019841616015900653463713196360433404591764612853547472849193541845564182650668271181294526956004575485264049005348265072731123554812379070398827643040865945254129897742701868090751368333385449796490217552891595438498681375147605369605379352059039861080936453810442416531589182440015496320269352901663622591706261741913271699406101573454174943043068649884318950972428408803987128531683131427766284660410921696997547381669250054052813200822704215096818290562346935913055123282491255159552690491959454920726660014765453379540954255222962671688262828913706171484058549366280294933528435197304049244516259297853209001933806033094825780370251896945440266332438476302215988069545128479549223714409310466624114084754678720649329566447648363415843752959991326277820246288811074667550301217995696353590219285279559569598189057593364999396599738913781167041262977372444102078163122528908136023389876249601799500603988137960197943406446413448334268945263577330390508501807069076448426025842126029676172938948206189671252728419843987798942160552958576235324361696217181118378008195006552212592967097751218691066776016229053844545405101841163707551513287705942181042874607776591185449675351336011615427847562786407268939883231981720525940927469597900613734275583162193957792729877800582385564539231675570376673423886100821716816067994273820705722587258848232857639140793992283774335874592295424923377760951655998734088069109343005281637848613042136979761495058594440111490905996252147384581828178946263126904899495694904215618069117915656408563839925209079323670109330944193541794283416585405423204364494859072080832250207686673090658785466545662520913173492111866596905457519928186013003326426766613059240124566834781559742132306518375257681374108385131294760277039914946330780591334677216011267208834333764557818138996424067712535048676596266271241161877087528145194697345200520026763763943034519391400948020080532202447066803250003324308554758837634378434404265329401451147446699833022096318367173343055934232003725055090773827117305300362750197708111141174897708674247773232156736383367937679929007529051670087749067010082843083404410677245687014719699473781100708833443785461995203048827511290062185480370474877005433058753063685274671738170229347279201406162844285036150242865162532553825269856002759650914715608171971056718186171697843943025904276895265194456156309168836808476546022507297526186234228050651082839608390897021467351922461589551474358635263885775316664272179644777638680931549529298338255123275756639834992197331698468473796358385816262270533076025407898431864740579886984217767914819618879221762207958084053132374318397416205608696010983445037568249861772728863017775726230480614850929028148165238912803291683087453490479558462183890899246876496911604837124610609971473102747025433953740694075202594353478452032324229069542919026835650604750108413434779935137215865370537781919101706442711953692710032292012671382601986181619845952687280010183369921631363364973051581508892137271525017146239761348602689154383599399650666048853389649177219490000421480287087446945057820680220627189155416747831682103813265776313821288762972792343083194214358914503000888529360199840228379308970812989101675191051277212210649208905334114581678858059946246005784541785174318451431991187330709781944390866939636651440668219053490799640271490318234606358945300337974552349591966357160724617011709743954320365113557784433255213943165213371875253555942103878019621072464823970775487005246115536491327047438122903627401829201536783233423448938601413592153841091692272362992676391980662248775985830607026150367020422217418118934875061142659289146038811798109748830163503640461705194349837955961589142077387278910287394007831496994826641590524534126734197204195858304277746447583582624205785509523392176291430556654221625690007663565531023444389867775543842132515045583470371433045384243161689288647745999416837199956883371245948042354406868192912357793908276092627228435623867048717317671449762246395514466586875368771735694932469879637732621751598256346929128436873621029894687890772773879881113238848332256115077504983414108895655389287887285884583733889914504453570954837514602319225102154074982868206466509808681210779004958612041490837580547815961474848495125669524403243298999768241930454748381853611613332335489885567378627524913996966426112852965262108875527710093196504079977566758533606604425417689299816986255422483430493822474931491792004179653408781099123397420660739135606419368323226545887291462665127804691349769123771677724089126316486423209407674890179257434132608930416076047220368435112304317156320059499776026823159586606668765174989200685811590893663019140068788305100777548338406378761561258883757989308529178445963008207421887198888338837954598861384011402905105403544333505068904246183908372311388339516374104648348587157299274877808324013383197374339044168270313302081756080093897039389085268425071599006706437141465856068258287441892433896999022026832802197072630454174763019238780016539630916712864837918186330727280362377476706852146057497274412462615426833379692751260402620702566798919099977877914272335358862725300471967613701060787282880445783393512656110320673647231234351487239637268374032924884378709342430836131080411667590410688768085881341122884848070911829505054807803810953896970608757948634234519235031464053504600165076146284528949092021308073853721860635600699065262599937510550772746282526191754017400303955699436122676636482616235110737607857431810257931614801082324600384316538351099226685178374849840641375030492280011880525052322256179820233223694793415560838979459765575427886676873284132068836800136355293279246571216195516038937171072861085178460847600157828372875612073941732507477007012201194492529882978318801740201452777158213922716221163414048900216913896114926725810884006544149484184098668444743967631734028895418507875882718211097440232294706794556645208443471657728498127453662760300636246709518689300681768488208142258956149768448077300475114980341532342519303014250007184599658656718716122701673879583574599985331069170329347951285747056284112386307398159347457318857834133182293691653928462187847604535298090206371308606018122945238621843791397029370793933204254605823566666335945034949109937085044926937367341188673279501801380306000180319309639107768368900341986712239603446675823691418556342640143162727727552562021956807704414891768660139428037031703160142310511554654835479305127465536095671107822655451146271481058890559132166783637525591600246121199509885270477887927070314157534466889964255683506565805637224851453312028900934324259674303302518697665484550313054042692567348238199232762485824748674315275632430849807398028833477819707639787457250856399900025342525310366168792832943748169413663736505066075734379799257427666462160027164937985386819434343883916285352151098841877917407407177340044755346570612172269700262443774711133249295360999908604907887698428921709573704194482153189049676723880338586243290237541101675232506874430187384986018747742323014853215274065679771696778110003372119438276979262459254213468473135053240806876896692021137652938704101312476070250170578655420948359216044418203176302094422183499815025977419199754559662195919693671612613455632531075255555628210715989856208010398218076417649592521857193431931833317317211826582807054424841955803791109484560756057857013965652531059972056002389055404386786831375002727964016556352653232963193844555487703940783434738706666249769498224907856701112235541242073570774742772689878979954674530651331529730323106782257584455701950614869479945910811865082494479531210459873361795614551928017858089424868238042636254025187752672001248586028209260341860675501630866913025657038671828484026208137886611832155030651334007427250528681883068705944114910046513120592429872245227409410037094257477181894900877817701438868507465540608325305791425465468837656698023697830642357068971992543841204971235712854750389146537849649267042280685755563287260886833093196893480573643639901848831147319865045877093169330635176410882564319358116096848406481667127217773426673150313619162872849291334720278003102089892203948018854249392268243652730767788542399359440701776073144738260625727009533701169316400589226311945462090713567309329917918316830308629072183675395954076996409101918695896159375076140864482074625678788617366624333316223241861772929096037491297768065752815027249318498727362558852287300887458377624809468076621858435737342828752508407237178200727281591247688932019244614630473986572327136594708837140289541027558130181882987115320297990126911468196994115350618197829381776248626111237700886420210353807044305708631328865356587130729471331358380944009505347565605472855661792487457291935385778201728853913143057506139199455281639285652540051394806906364374727245488801790551531929938779192253796724874331884060345523917082006073266382919242698519031406710928544659370338064469952787020727814369040566578357843512474064046150046398988944563019163907654347171253464504355044678208719292152036073886173879491649387503920721735139967668170191898253019240589277725844689855553404757655432871126946371173696897368497968875187432313004429332964816553711328666992107093800374295270721900013527688462037130394767868300610102277718426530031981437887490033580255154912023857294948327386299347283921101851725309975584564487067613623173231385362179850992110737832490056693641378077415003596907505218451175330604657715158348112896606950535578643778414554874077318019051836293718748505019162373746753673078207674182784793488134100005801000868925466734833656678703200218450718470803450724053127516488248866084815892227876295661959096023202735656901472322201054411607447435697572547934086682313287789967951740909386915773630160234185201138403785273933803559281467303777225293308411203244762275498945294640506692795557374910443026556985512243533735849611845384538757642204353688713838637912501807735219020188539493023962275832499555020116171061393432790441593344768728903159871623859399141211848689898573534820824515051051036232423686617255192974841458410974027803962415104132792220353848108032578923084644073391870653679449305019893230089625912356103451060134518046100055136538090551916443990891293863040649113275989133035579156301444837500731521922467000571768751334139856922040087888889893862439751121121777325420906220082528866094587390170679807244793882080292243606349626318119418614827414349824306440020637549637820334635539315647791552900627908275968500582059863080976703214862640633807539478083661513128096267959807550549805629657874224120427049863938179733152294924003191453241174717067972507958709222296495874175378414395176235706596710571681041703526290468626922198285823998464334474656399464775603815558586507277130658269172129323009908565844557968336576249209234268372300628133665773431407886262056793537077431268440823345235858955367142837687842665237052946131032232910327098106020079015382365852750029015196082383937526730104166845657113544607754132541751874235312687962379633720157947422453692979980803892010056302188921377560739909932300310629585639148065133453934497510021579975990378843376132056700960567590749086707339472906169533540264836425473921349420595414777282904444890179119461638791173513641036652699271311064604672320186391745176269960499641834438689054367255013424256985836551388370019604927437020887701846976742742519676668897152428627724467028016938874180990825127329705936081263918065004677974664649519021026737073100264131051560020445351099676202299570920582525702135959027173336629175922601981775466217903899987632054364306700636642785109062787566973634931742376986610454228876013958539990950190536033443753036047326004034067508285536642950012267826955582826819424137979181956209973701914661979831989377663774678684263244414738776682005321769430204962041501119926939208345300280045639522758815083865688181192518593157155485163350467808014818094832286910634944838081163780206249927342384466909267936371335353948759588080566904505611797755160517065222631939214936613968249997147003650580089755581014013667200537051057549454777959627627783181091234430678273316008975555592171399232649592634924308638772435587793798051435909738048100653827126334134020974435563866987168867954372277361844549969911274235167322079173822906633351112005581861810046077050084281026657483011022791818209269734173620677919709287462494700333963609147668530720580151094955613505536296781567626063870367256632868990608484433889752924127672690315837225457609554784688702770591422674655128389466790391196910380491021870857648213518368543534667319688200578565938834089384100629844919278732280940642917183090903010345399627449299762851211279577059229150771825786894312570892148810515417090879248804434175772522269832629750292549375129360843878728028108034067587550321607825216279535576252591901315031748921502245497399287403174564937268912728871292566099401632036956821916995590799447621446908238720273545513623522049636179447995028875492744911555564061513820817173566728428460981211113530196333696032247945806518471305246511704323114549607961502058974089974762678607003514565045102502021897248713213363925438022751183731818945064356681946023187599855486653625584484125795289939878813450393526542385201707212250871396244512739796398834614802464183422829958656971994280790503980378683954595415807790463079856506162234045110494468570909457417792191525088002280673819146605458160202194015088133236845392655905784739462023142104386358586554836478801080572177773315377420641857654221539677229450586078680206137038004698141323157904621855950825516230178773777204923960298794500098175822714226661954099354043281610535631880855949691918514137807717507857881516958928459916510549482985163666721572733185561445145638648193424481476941717639202665176068072731760587026035362348231424699799479343886366177065751535579072125635115966582426136807967120872932220350334577179259181424998194990409661966697205725722296638260124289828102558934432519061643221373567600393299386938143971450106152705363249390490051617646183711751001294722459994910163037904116117928067080966279614757490712345207167878602166129916518061372304906354946611675081608940492403996206753539931283430361436369526699511426372303918171646784999871888676476870899114674417313381332997448112561022550053357599869241180480308331843791327767522118033124303053340239056256713590431536151500679644301856770267259778561810685606921867499380314801038008677203119550562934894852979253360615729765462379060998656912919643408386079803644102038666111553188774444365653679853069212594803005111930596517351910887626179556538946848831516561015337238191236642822361807526779180279125607373963114487642154078912660453265987327947886004253601650978896579632674177049300266707536211981823327091195089899628262417116184409921364675612976247117422453242511174761666895944850734543150293090275048754008294301939424205121377232082591328992152198201228450440971977920250474575247140603849267901104211462593315796023942034322572109253000087447643676275988399104518051311693732142871511515078275738981389138989321102409448024247855210601527008233479860106874025085367045492540145055572765243746530938865843611164072024403982552906603731267743063534411948066191398081622722388545413774537778885879023035636159546186028000458849550095560617310766572060061063095318322401339859404797882346172755575867103647385647413174045066971686342706368265181700486632583881162141890104788698684653555570493913797281562216139809639860900050964003948030254105964283297032559780966332568868610176119158246493813122201076075443724129027564949148380714032193259711186703399595337927485454685805010606513849699963226204603035264063482717591545772275633912058659731095100902317937923384634019632795073627586164053934698595820289301257306437637377624675590561634053247860204972220283750114569016800751493706620782855925054681843785158058818392189039033008630986843956853786320268381183440986857284523371171448078284822268153426974288159506079511284366643327413367697424051041770842399903541872863458256002828948313243796021108962180874853340176210946481877812264625648415840599463322751894903675536233859409514281669427156802501032544377487618553142301381371337636504712872702705514192975381481083894039987214448130948726897496706634773585235747281451682820049663645805040753293901215068665934345238941113136176841263354793836085657776536397946936128956072323573660749213957804942328400257836375420175884042631683419562827404373826743449385947934349399720583266168141786687196655946603355652757725223660158118626962204350427776966474314094694664545833077203553422254104014043865309248311199874757467541546531195101751570704425267595785495340953755770504695183737731982049897508551344647232769416418029161366962946817361941572571850143214310863629397204417207511459157508457848603038654282289477398371849896618892724507167107529836324662197723007710783797786249084548538863303943517171072125912407432427851622288760948443592696838673535283014265137942511385459002974937362289221585712841145584144468456357712638445087361600289653794883565852259540375131122676776295538651280439360043460174042128520836624071115142657617241230379166698367092614802467606980031653941143136693987457459618599520995285849100348000412345124592674546005239135477774967384465003518347353037720983135805578213212782965731951891021814851160111145102768381931459565861478622157644107479325484203447238979282436544332857585670309814987489880558650988677558675049433424096086470819038568586035041447681093587862330439532160468215075076335240850997891689690734190332782209514263337648463200706823828957424789192980268793978922265145771581524842765133464293396917003597257560501958440509889010650238649859246523433265780312835090410850750294147142176821925899421522035462217434021263835154808507240823423889023905392940103945247403922189047052775149995624345166742082897687186793246880870256412521780750402253511426564516900289830932699424121987109367908808842837226054459250480249335708738389396047867549811922256362334161231690982543725086066842272315497309062646984343261769387003864308245741191992497683757175177996373277085906680075126105222876139549447364374912696596861738404897296007079007446689135763009297426982877171215287315186168135980121164378966170136400595250591550184368865451597480090420116826324594675311048822647374293885455507412226317528692989547788959110307194520132112007985946420258071445162838679707793560887322791472915749773274320574479448607591441041034988682546880735915613117653309408661888193526269266477699093843240665004574075833409084176388654353289171324082369300872501839331832354165314531484228770162672106887549247704045653905865610833920243662590601166134049104071656385984102361475469100381870386527666304857025141082915344718508092893069079624810177656504906259837043323647506745529534852822790518610948037817756452877522282205595276670488868395110516085438809525280748148468526855862872927541998306362829461949926571925920493232704290030889557698997429258132534320465775154318146610529892214290711326873482664638115755436726051980414154381286107364549920783087215425858747608558349428956799242469249580152097197051851238322363509213595458471406819094189083772119187785628431332039643995297869228180181586097203039420642998639586274390537154837303319339778960690238748494576379025438476048548362238837439020933978023756072617956531147528386586795770916531795994951883796218358956868737361842238374039216395476755644095613692190563864544488236950382893843159240218660471124249254385417647517757486767043161251468125294946396544370150348406464146171206398399602913583567732287328141463947194551897965412149690024920754030652562430137400632861823514752355838685252490816677460338985175791597521018413724774305360973278864711359823796347566816351845931988745428583078068898680905171076086851259712940677318322528263889978305612924439310172386613048404939357179892511585510254213795932006466125846617179833594277934891302648238460397936547310371154338611768574023089643791713819700878995621789639145574024202386542916252532568129966450608655775547741032412430655702069386118022759254082447005031358540616967834890257940831572255882924850880573745796234404339192976262156620221085429933816906855821366975716319735547333928580874604160401328078820699074323898242314476457997414943601248887076176407055144393668960494035725476392858428531710522394662826049432009126076331120782560606259483558574666725685092130219597920703147321475537863250793731269509802506056171024828753764105861878402345941701480320686924347333624860276548753857016846022922726627869556680247518327197559360404549720082365490034308800172374952889604678511102517138388652120169397992314362910860828786511292818170725423069790837590036020913870561828169859554588364136943288508047596158276308056063207191689907034799115420370725609633572963161586495158875260981321766167881778918924029274938651673473709726129954175988444650991298145186963091606002394802331603378899744361622837582320217833354594422782960756930612409842275537800568330295983029868771010540148346208216051102889821471741766847222254590876981066736170545621440400596178529124046310241859230641976920415103776497678084598739278665113944066967248311902893627999886110377825490537360703442336821222984608319553732751706999279038410397913561692974419866777935133063206702369763025185787672652936658033836075501650068714360441497103693479469600520453252576611432117814782648895844569172484922281188681228642124301820167803034773069871224380843876827617680521525147742295053250420645067825801982265529796073231743976783176208186749443391674497553382539464194686729087770283463058844229599047329969049415039059071285751119190163486317832600241113764673704149855465205310603968394244925553369301064432051019965712249411694036179804276163517689839929473208176170319920370480139832776445255213832553820688733644974198420324880215942672475518617162601493273486923186286161329296237813466551389112548710220571114191580043119154923021618615034048040240265261806757054629417376791811034870739900872374379978797767180562496259512223673034118028258280219124635484962242225733573706250534031210498348743754806368406561597610666738312318703349748207249426799899675480018665692473270426627435146993980941586151709712251781477379519136467996773757220165786440012293351568307354279142833795046211259522223510583612869984879340664833845196406794024123252396329562580369639798245953278870648488075085907019894308791162705561784395459054032980694392906492267713902597285122125714609187317271299656871645082179135408614832847374282963944987257733711227408688612758677121708229754025141112807940769862448751993559806826403930207168798332240812224345986234664815754678985464410571903882492085612962169862698533984170918671694555784491889010063312836828679293383723920995482660411655505381438122995059552972006308731228529866463084300860851242461235993590969824121537161538296773741264340668867083636659587389702035522920064409188287215641638913737720583459422670206465864515042246914691561025684342755302327487296448437109192694206231736048295865159783319283078873436093067518530761732750417254150527918065865417913213060745800258079332329214624156487179016018210131532014092358302199808967294979005281732178152532077977426102046178359419635262422222057199299676142553946156358188877931763683788378377793207889468020893513577765389506557268204410774335434938874749929063599876100972845387040801733006569139297896713495401544902190736023288815018326118826517428958703088344595982499768294447463808750418366956632699057869672884753308240564209654241326578826024867895741488882219954565197707065419452842666885770582468633674671340740054056515830793198715412727073237364941452769769156683376250170877469523048677714409984548040837193254933608316272641424197821933092875551548995663354748749640568603457059246480983886820500424394211116210988536653196922138940461359321358625380180449445130161336303753817407906314086056111738145703986708762532234970893957051988709027535922145581606365339328533454249285979391234593564699556261685153701301726865009076673882823650271316890617880728548784966243929867985452810347796018839573733531853195741124460511143633045298865781046395662103636759038220829242251318361142083175493064795114813477753384177357838207298882135775829706257343546676699387370606329737495795811120961564543670954132552352729373260290842372650548741819429373380838724629701187022130111028539991614718891962395807308714000906855631199965931149277882662717987939490644160394879064918481454445785871218247241459773173361099026924765804024917620481839901609054071611033220254792798647248605979907586126576105644360321242057251250639794719757809163401231490022484014802177002179782608945892049346365279522046795775382073468274846173355545947760499428021104687010358320583744291091244281363900543915381324571358475036236640962044582811358341929060119319444619224571919891907247870702283985990212598846740413599762694499470170970239334625184784048336730876637715321793257944778663581762570588983159476475154509665183363066277634656892548071379117926606767739864895993531788006981681503745758426557055758166816906760566863050400436386764653754833680866320911157097638880214223016038901877818218499361586894449025809447949409313557506908843067196309060012294375272549422139819910122371365555860745940305134861176255290006656957969882648008535757356824210715438922890021509670560630442973226835181527759143041798251104043460524699154807313382273793707402220390671636887312839782307254291546529646686746167841545254407313749792627086473604295505872945561542812546929534812445087620972172292439573272218397309462264280618824293206658855061151503141838427295074134085818288496386716513427783511526041509836054975370901992283817098256719468002437178939878338407123369071168625125312294616729254444307363677584842383243183914443208176737378529039764541215971248320768432370248025442266414188964544605871046256022220784977834386421244300163041827481992981495320366506119374120494743353942341976180916305612817468142682467187328882866221393531014620369449930508395459946343862453395164896806027358739346803400966456174763287989524308883565777694420319055993945853481291224106408304495476660834850837958867228145628230190852254527338356843653583225105329732298201579865409113936112612511156759315479181010644075692893111909989247100873972717107254012191561473475458913764757244372453453473059682213004027646443037221918603299718734233646820203955753067713572263594145566120028808201806523375592411709960273117504818379099068423583178726947700494884755962882477052883875175352016427612210128875204384209080430819711354163194974680324820960086370636718891334956326267237935697114040043576233351607585501701648902624796488413071570982324897983494006589567492244635612153621523421607206675809882992042967989887967706366608217294190124398773716201620175388941665828330870263124065352027243200201771477548829007210461484735704398949380343031717019782173553897936352162398967924763812104842350121797542080935147793371774558627821328637206452552324815269769938195003124070860104111896643652055335319009890179288877004721490292371342220144114912139407110121335274036029512406766485648274708876720491258038880440211407150649437511802318964025788258119218040778889757741135313671109867836290559614228251304525879411553574458667510405181638160651768351941289337833066736796450171504787133069860666427046078788985668256612500421571515587367788850825904081597884449068302165582072309825749445009760021864278085772408222909275557931454454563457192365386226341342450145806222282804709239905323088884126320523343126549908669607281641536777960537570925753430605329044806493607600972566722958597885584091823520021053105688316520324396492715951699790492683541855739223423507517663653568631035193233277809196438624542350699095144666290244475225994021808725261217806264143552043445911343024146403212178200187810155230588829678531764984046237414934328038400716411572025309652563442605114249048086915662052071744744346865358728733312369611508966178824936736525813074356570778344697729400212175510513782303330503852774747349190025791301263285545120721995499215400106306960560801880992332732450381828465004794172163921119415592882552710765426486421676804621213065023765703535077119926211029262892281962821566114303687662661902919651831884989100413463277326999548072571205937009719399035670213676739582332074580141662479395356809964440230538097362730637371765048040433074560762011613247254841726284219840957167602805274111801129488712990572270708233844407662305065219941302647833021308320802519617294806294683771317674761176078847751961600528115986439125952217251173509252608253978073522245041007114028418147505083699514074752654081965791110157063877481615602035832243194644604489485806255610082757531871777279631672861382104029351299259606463398606785023961192761249042955627770385581538878512305456955114689912620627199933551215066034487754971768222320967696887664223525167214030391246983096098702929929207918604317185105901744692827487379461022997083017334633527201017091038395815160533460525120720920907767366368783436367428297078908087533889436106284953256532899880167697542287849639030761443151178995869574228341942189593246432100831230489926153525633223932567020915083810152197282087209254201821161827941539395982739512307888926271867728491469413454196242043440132150541974755863458521323364368919592564039712665616739412255680682273945166051167932552437643441529909248434566749132876054699773438860650820700625126211615904005138212558081739321535973316427943338422088053632343885174731495145877064814259625447115211338503237591458745030322814367245232786144256765969687691397891272401967317066339882435070474363401337689122287426696271300488673936994315505016833096373334282050090786412472354892641453602546143785729746492175384970742794180111194935638245536299380816919568271147395386437748521153724567219217253908815157205598482693215285460006385274292806883101128323559625136909731953929861231887127597425228700230357782254351257489461170456865489395385564687690903567127839604806552400685212037173697261881486489804803404174684286899664802385410431764398534370848546535633034734657346454269853472813832342655558815950305097175930797989960197415752416109376309274991092155871294993785428901241353033447967845511849349553181460868697275198694649800104071314299890160971069591975638603047825090268207240716642186614908104882506505015834990403490475460058492239467524891812393947519212559793913278011521357938640429614321081029170716201694354453971570603386897716449224535398344612405718377750654316273442514231850589587779647574406664161173275891045493686606009912860959489130032055528718487045432885195677471561897110524000394654219264244337268593945491400116147148739492126676696941114515849188430354637582414212105746456554280886669953051398587951604823996272054180415372246554737908182593692262003934558141201605386298778610651777138799508175407595341557891764558533442834197407128788765436752703657836471675396671902153922590139591447407666023788903629741091327554456180632262609530888543556521234047547694562053169261234044134594338967744250210195027502970799488650096483491811360031265153778628997560813672616064000770367909981490117443150316942522539157692922321615385329949516690364419245112148799094216038220525756407783214010851768551141197503439264597980232189625106385908159644173817888238160306040843782135100356635052298608030658928821175461624399207324972623366152552282110991613173208551916294999189847000942551271864197305102294133605269676983706088741233140047361782841863375159847212803546341423801469507660943798131694555978547869589295963558049587240642235882708406890989502887343037296260823391596985336365697969817639495974844510740597814808545856615497947206600210609873622058814826170134903909118643832330402448498110921348921193937952355004963825966871101293814001903536722560311336239209331170222106748826304342530387430112101042243539097506218480278269735837618523908864973387181065176862349873043312201847658374976129593018967501308366200396363990873228141017750156356163489750727074204181214624487690520095346881486574092003460705045210058491270106644553114751061179689598708665401094189186434585488809362219633769698386360061859205770335551557646011139093891742990919712330136539413337921768737179402102217509602540833481109957247411443027543230280621617547935820126290973227832272945780033802512843313190613934783604122602088227618819971661975486305706491079894291692741963855570529344864750059585462295362460148962369017683665139507520558805862994495152958286402015634963895234823604779863539347056369242799007902686373051386817656338568666362581560080920298149395960351202956241269849140249473665554960753263038415004446712848728828528943647926312221198509153494797133699064874935069515587998377832846013296635556404572638839081721967074901335099233242037036214088546813579187139221402890579564394226722821794698226090187005218616365083496428925367482281733877448627086602566520703594318058835584463487291761146611683419350801552841749984751510496148195652869622632702013086331063252821110543628287977928683236445442152812051046293109177020929405139636325056227537318110514910617934492184144256498104242897268321650246262701510280081447874796804077261760848320405014000509200569339656011032959740905264274767461348071868824540263206740362487258654849685348686239743273905145706395622956606318738494414406470672639476454359215630064753401660477563257203029498471423094258008147768627134414667610848523879951027083701039846837403425889219278195179140820732852907724841814894283717751487849643188660869273566203673141083126857430347201721923815992924409572356900550948618539106458949440237912517832212821349943570495429137813729505730821054741114483933830273665337087492244053333622744603268244386032187087653729834655460633322927563235164188280241344097156486850200320653649259161599442530059926283449649210729813645152437053712675868939911372740576019860374957978773917112791091767107175429718825181173643225517620240975033830379524646424021028692783036682539964296930874822599547888236323684328865226291742601190541395510807827149924339689804669333159061361171493232736546604114741970048725194472378426095678533021859570797295226307532504785055689402827047805593197010765067415483420808039488353453513015189771335342202871526570145701975212719650296854643184904511494779264531945890205619458465463905275426598091465706717869423475687421150693194252534308017339068523326838743720744264006650500711116612227643431763045067754562487645978117890944069420934979606937066246397939380046508862964205462398671972151431239085115981866343121942533254838083255717161026341846615336976516447716123577633286864429714400941686827819723142857192558200195562022060479512668412477304587522938041805598807892369469059726886008553254962629228029450887828112344401338452563763839476620236063353221417907754812122553225300067702893544198542397919163359178417287057168225072776632245685471984642520927869089517940609921245568158164534380253713053969217085728553300330784392572099654397681065764702755884069193457416321928735015750417214793526814422795369164865819025409148309401694425508591759179506063134741364024357379761358403517649112904578046063087663988477188383659432653276596364161409109702794630171881228464431567341341088462042790798951976575347168206735436173544037520356918516574657300372429665232215133267378836411853891710177140113004132205639049341668054082364533710107878316228980152948367664896576840716583720954385421693671131296243475751285474740807955377854312729410407509634871274633896900890786717877404881330972023663843314281802598816830867197629527880582429545032705881716790630610287435718867327155626237092628281494980003930913260605369368304414531215487747998216288630325011519052833700716557497810110007293307042409228731382183165070095806761752447781058025313732021190589310162179777173672527529497149034925532751830439518851895294355790587508267928156312874318383320975685715552453019099994385083731055964576422722470912472081376813744569607809356783105647013629155545641409096413635700255859385456523693216340174449010267914068381218429688904861014780724329930667299349407598802340044677275060487419666497299550645945796518627282322687031757320057063596115099687548371423955448368782489621376835381896102691060322251321409931361419448958387411824339327415963607223150422457103606699913089768606241057448413555060085229167110660721376276936964045885191497648607453513422207330352391485038151035041892977259961633885024549654133849774775177274926898208824130980928947992530948757045707969943748798714543665737068294688759847731850324086588615638644049315569400205830554596582004979316366634683880852199896899367510243162758045855898332715611488422266104303733119339294607168917796632394808288950713774463229463104200004769209833037635764998356001620206181385303260844822252512468924517683125028337382920971035898208209849937095272754278296789889392745928833727098383633002948947171979079318268421462850696108596500178397088717809087848084799223568762496051852514611595523498298451447365267700398918196953959851041802906173415460657283283290603636887916660380904381426054475346047497120680783490918965589201190001364355541778328953484665309540507372120019645885700846034883919124554539493105181877030686644412468000547082880071450749190754374121375485530252890635179482223146294447552574733763824129351378154265123615291477881394613908030508273262148595700212139146461845400821291994483656448242688190269826214126417219122412224911745634354710597539618875210991650463850234651758491547777051907960505107620267681861943494307222082712533822432436933544559860148352557043744789851263116042267442486871684280179784271258329548981165603110125212734421127304370184619872110775879859965040261679701183945047498502679442797066213804732031940435867694794846492915553237880983162852800482357163866702287262701690961442674094626723938713198843934536407816123623660060998136383042169801166826390771115385786250142714520093543724093623288561444559136463748825781539739422492558237022969580945694924449914909408808601856815881912011221921519915287672405829825933906683081960288880287398217315895265852456397230935671333043481659228378154952219937062964972020424330164346275787528106442557525527636341450933666991323286302758896822963618747491016700692151844406966962017838126189202418897109408820211564523546215047558566665270495890920916716877546657809785470245422514760420040496299385662654495556207334921703627602210863846565529075478121065085987421931339987140278334210869847122530829940011054147720249126424804062891510919307343431051720273925914404137177712625294805850214025258821936705887734266718717216804196040629457625828791254570363077395959276089896215252241571307410113251499445433675523490425618692122272295087964184431513324679847490175802000548600450344943833564230079985878541811617850001245761181669869257523938558006658636513126422349411811909127133414597213879119788922502547537734455661634955028928541008020779797552102339136537802254891495496397217730716381575756198835790154332326002922351336419217243395916403742803897690256555617033915287301227820832104977626507630572856508683667901195942400645261006944408673990781932824726364311552196304309120630418248126766924164362205029221097014223986162979117107193499455319500185673326327026452681230317581962232652355034497691641997972575495528419479310484165397306465492440109326019784983069444961877094705601473132034621505542185972410087218966828561003915904488890322323488588396925020678007054626866628496463686657585523931901011705269567894177846089375726144392757188913488658605401696661854259557369328761168074715803317957764211709448510421481643370750732963754829178067244921125486299941572640675007805460935815891840293155809252412946494543760398629689211326078005021141298147181704551313509288454544095912994950978699201884074176269316614290399418613666276237421175572832710206238694211381458567451787507402864840504675090709856344508674464371945001288505439916492241814420480282777078203497899934316242299497026814557927357093506690831567535407267573424132478941887790393862120428750114376223060120634340228057840719417164645411624307416166116660646506319715916645015043025238812523346942132023628089054346889103158740367500904314821252963216402252719223445932571566274740288590798491576035634907570837482954600039714733760446281859079927446490135490843470573806509483504718586997441604806345659690038084942801020519596840694283232054319067063686953261930618215379100187926331472175964057938367186603380316799139677312960616741890924668390321785774483683024182806067160064834637508175578062996714451929792163319504467469379558185741869343198936324885934203160898401973410088160497275802468787746109998875354023427835899770838897990118982189131036878274599806081755368132203582536471269275879242197742440307303669908822542366641138683468636497264709641523902346592944262737322241549740697624088061248791419818149132646829190556796556607674636319438205149011363346578325784144563964855723379443457718883052288573372219087076209504983865599181919811690738714051103110040894742816055613220258931083147988801136767921905195210253868316735808267494896726518817268625502052945381123717055442909852523193631490054264658359040686425430587964491680713813330363488789886022118268661542437293140457049351081793460048580162092275526775126774857804699555956152610985104034919265022142242595224660673244975441987492708447203928062917707531831422133348831537284519668498653071940408588464718101858417121818545355348906389141368295907692312201799607378682509519386277745743622695810204012422427752245811452271718096734909063129551283018250275181462356640013980652077036559123209529628218347424677384990531925190024599643686644209395160712788657426926162760413038575569829432400691752148211038354726860894039220999955160112994905671330938672845591143147309270770706106826314593196085127947404988949411431365448806793393845915452961443203944309108272640276436318163335587075414147856789078405986260242907522473641727791604768501240058292117839524253830904333979761706745409635536898823443917150784428499109997846332865016011557181322667635074761469447581745636744028469862604594303799956797288546174562165885964201468321287599411747907295050199041216664187611924996384542251021464273061187965037335882130271244984948094521526134856911998641170682526004605843380434333837785398828697650650703731377606861245545213722555963094289759669158173235420669800815422384385690299071277776549979627364241471589040933207489477440625315572009585897377908969981077651017088903592718082460769117557727069627111180332190166750105187221361833023377011433059852905560475233291424958801570275184789396574463727312615837693045857091910637849845022412882675497911082907363108851231497334629568746183120132061526585215452526802746512467061909878788634618244784955490678645609322163096711639352702085599708763702186171982591342417789562898118713576989985610523157648808381298495807683051820977001267272565471935533196955121142500161204649280368432751732437416519054468055867757277535049856687627346098851350924501050159351632993048945803642658187566857135825218567121130979465173557527601674491982257093999743880194042666014374088184812503886504833893677684637985077103205133474673308932239785494694991354174912386226706125062412997040584475168013675065530665108117456901203445933144840114576050903054344557382031437546901366127327131921143211828287419569763686195844848245098586730341040360616127157112355895862219671095881468885491236310449095804309419737094505657284036408517474733603783620950512378064309420818133015890840563716650313021823419132755425801663626338597539023657070065188254713739638755917302559431400737710105299188425738649419053101305152726554268382742851316416717429383786128057309429926944686672371083232565877670102700194368791982108450033674716886084902380020566832480562509206994941968639845144636197523909761479159335718986860949301354537916383554962776291099401346668147379672825700783363893793803175344152560692145819553159334970909484110619194445580785389500458863848862317035460977354457325341110851517926810355049276169397541237761578345050542045788060725438815245430500897492426175498442248820663307483391320072982869185873415086542157245585533498314174731135454865945311229260206565324214624918406149279792075781193826339384786525923666140209142554389348184161319020684185303987370979569570795520299689045683457606098705518053369822610112905882456772774673692353649612316016346800774735856645132082713330520722524921691101849102376846510307385232526809682883489090870093374654896700936556766477329584791830187021488759123692973437638914100018024608219781891017605697699866113361575269926237562648337639712819039674006519141161387206448778062324246865761083766625482230057115329382915401485179207491168153040247367287577103040333979030151059788808248037336568291724184186900004636105442536158657226646891855184866024838420651761734475905027514323077800798553787101151165649486294868530165896658271923974214832992957471541116767164732555104398848520463181741270420860712624013587567788959490722376781615202517164938851331303246911216200254549677470138255435673260242625826658904494290491246775561623480001361728203722115116804619043332414319559847391013180306569892160044540439625872666909758598883518155150350881151627154646626031746033405438331430107665385828508425865404683142740739657075494490550315573291519176143785472202187374405928297139479211294943681798050123284183419126950078689611894047733756408107005086863699724152584903868070486327830712381595522666274087904128702678198849991784715414271009711143948981944974800345284400595407652967369473064189066992403223254346759020431823729618566073029173801722681241271522395360978319413531122981562312420923768177993593647772920505970548201495823889002974665026423280837063330874808843000785465834735506354069887786941183593749778294086148963887839717800900350180624097674932543093104564717209945781773376512893611517392373323853702102792866290760356181929262472513100936091831492772617422463518331958664200549109634164604421709481015728930296670120249649910029720250686706069802105941659507185093762864946557995139576777509336864432598941086868452987284899997535134261122384773080738798440000009438927771527548326637671266583448775838682170301300950498071012074398873492657245204628391565530473016714308157876197951248443367207425980048993363250996000314716806706465481072589666420012737832848378755434273279160773950050499693051742320421911372554247426775366540234662568434068455520526322114954757868111882227072822013947412383652355845264523907636247205505676260727704977907870031022211059681927804336304001879229557787085526354976889980760533209773435969322433584051097989073894966741267606701606092135335229996777128054817094599326394280944599668586141082001562340260798499174584087647239456045637780274568199781631644018631140525320211709896447000649272040731655419267715447212283752389983098836161420897875671613643355694044287352410826299965428205048236899800273731835024981864706539352854077249006038067034725184322291496571501334905699500738349885093268327861450432483081341041292175630225294505366067916496994931111274550395002476271768268424090273210147252551806204009388069199316479493434049277065626158527208207220329477866132326158164210644970505695634248292198889564455081913591662252997621560705392345278992422645087329140265968943932462846795128843273289217672145270444256790444516269917167866134645426032847489399329356783955292578830156505457101967845409087013550102699562967744239742789445301715559200343382082963258745392985450268696124691427214733178407887627644069610541409124262989579252513426796163437273113451403133226311791265593074780578466395595123801406358687187205219468865539863035778645644863788102749783520268426881012978340931301921803807544040469163426070753054630904646421058505923245410683667987355903872901117151415422540476005402573074310612525376535966168627413692285036678532906385345095205615701740492266733763403723447552531317812182634302313390714424112060518137352027793677903454062859234171165569059932103124974465209463224880858675015362078001630489439558645137344951216317472207293596600657820978767698336141351242653163628585154117908350391872876965114843354808982512448324210635061893600290759523837782445583512928614325064914975304597615678399280305322305954435188213465604480866640598892857566645841531577561833830618555986263643570634781879260768476609838556740054538886103170695794526166381646759046985937836459340628896237773830133141398751795416667788186369776802712073564707894968220313040565708401179652356022625604326154471459248952310598657531633242359251142979507781387003227342720248316289561536220806447500729758748209319326770101996231515456364431320738339249710383567229732362908893150999306191991817246168241521819928660954978043271825757159168665821086242354840114622372231444314111694205242970261199541311458700641043815323396612066503765919281888034930541825783555876420612401352471460862603065590172211606438637673765226632501658344187705726236257790700201785156630984676073940492907347949497114538305683539407065866613519545834298929680311931995880121864802077218813127147412203602668896123988410750082279220261886332080186187291889373985150753738898487909979151634604920541218358937486803136367353966713327693266585813217751217446331815818564816826451102134120657535882435387984181407032215695141894076568446500231065141896625195874529296121712592001480221005108648926361184399346139067431009947944366090687923030294607888785115579272212573224497903479909454408595731344322402373304267401220401716225554513216919951701380500147274939456245006859771052419285292750830576743824737058914766212621616666426914943329435703686093364590027744590606847094881219066039723344451695781744800645409681590246404007163048826868220714261031662690278765176733014579480840532600033362959002369411188743607540907593392874612300666050015976935697932977911970511862921935276259669328683610847309128263841726877192001314654651510818177948106088173991218030282061932891839592521574031897432917838592013690796344604091900533975437847448069232171618377740144025288985780894179142088620388691937986309544591668659512450287493959331765213003939896907275177148045253775469470502735399166454748083499069961530489111094245470963514448362171211554686251189465516381568084931829584656134752490136568486578090756482922329902026327136458557289452669648995494889761479908958866316254376558199095741909381365154101350810531908780578797453842905154128249778228465843531753453143268353930742446022163611544170648462950293218645944912543286720646996206780530442070051432941994501326739263140193194595190450632888005479067288111264221223818791613266251305576781436377299924807850904993967247578636767146030394891201247794678449155767237725421773100437719196826435433858812311016251399932521014018173676331595237199096620202111034778017640688220592751786054773376078580231854461193444167246224707855293340761135140307867992146904716842517390760239560059229896500879689034510591665045650585756445686998579755117949458254808132129149100026638450808982583850995359495553520402000471039557888402090532579895367860202093376796244937496349188359770178484768936176254979661571211127174652842752004453064605055170476301934504180088786934551022455208863790143800657685829138778366581849406862217784687394295525913804445901870569758886997775480411365195616219544821293847899715141950185948169123332313953658637991573345307432351062375916081818903681790174920845989206301075798144406228493092812069430807542609081491143380026860063207246343507424457080983889331654137416254685624215879354306826864822432271819849958230422154404587388162554536021094928366130697360039900368687589955006208645891209386872083319486037942496639305599732159266395788829398463457430442144915123668237967489915699449406022563196123317117398382089451915966635471120527315067391095109579005832749038022120935862509547095390839883366561715697140427389812332455617034496915961315685529461983524688488248159636946775641045697787656084201833302578691352124534192346898108835141079756970742399030136154935719368842834150441589818385903309031075144081120170274095872905545363981047338206253409515256504602155949910504146819947709446370238336791929809285898223615996217493488456005340979200645828815474045533235481699749027853635718378145742813987711943568923633387877267233227588968397372251966332020906818876940552832551430200693829426406262642756424862766621400329182736850010607598391225970276763956723248969887088139163521686277489785188873464014775852144096757114214678418830863583062320998670101498884947995608021316625064622559064595075054360739384530676088895421086229918487540483080412017797027000497661414894466307309316513821699397601348158410026021900026676409311812327519430135869981254101235719988681625210923293465347168300750446577662973021863516250893348023898229045690141494549358767739479209147229371604620335493684267766421103872484814582790036072926339221669109734042150779751211272172599863462787029538748152272383968627836148129759864765433575054513193741052176375218706254240168289439432276751342299357769146176429132567833614952121939468771428129647364371018443987172327501268264776233880400548248933351057672289501393824214381108918899084062357398672415160988067780633898314215229444643641732052110336447860996598574778960364825645477204696322607170390020563200448284497316517011741977162654441679450315056918536133813264775041028928884088754173394911418189896693915744494695878301907777795195125518441838683012995732131848712367866753958259641889015208542855315809942786551780218728494075374711569352459929447564683760803446832820800674720032963374457514911556860553571270952061779408594377341543422124902760160686439003836238339690081676274200686247287882971646567834501577935320019381404729758439867765468408522067471207099831540420309112567843116698949192817416844855164429585848503991992552865869480080634639337061337099142730476619840028557919715705106913166092970871894558047589017070582008444910220201297316545236779377328395602700478699735908197941391796754855434228650958378434562285433124794762844697099969199209424468421809935942030336205340791744361579946691324247865140411624510041209555087523595169487726974037577981395460416847766666310270531209331920800679382064975634798449549277629798355047791280973307200150658610683218366521880948892450451194153209808179887416741969999241610709842434066693353583432907235583882517023382703260708493022751510859513041597236773011166617220031541985582160534118847504501845345735479264071975357787168002368020669043789057835307106689321113107353924095125960878870069073777096589345393316803224197428073339452113824197583489656310219006894585341825088760739392359056798680262337235385702590933192072080527906736172044511139651466386133425875516839266917992809272490197275547198817885271594290694476660312507803930487707866280495788738499826989344427770658239698404459496046884110180874994058916100898798412899726446122153115864613636510186374003051636739033025549852186798670148897832141924845790591836597766031477507060781196861023794679298724195990026403705299070447577462106889129441486045407225989660232426909448953492748644264536594622261803146080628484579127997526585336251787122830353935790866198672763823438830870988099734413377521840505704227439029675066812320627582273298357487028426686981342236435543303413465808822872872589511231549095161100412421013397224730055192330966223981440498010169001772516369007526399442701227735941519046707362890234979371499631844438712372484419638526268330739299980286974106208953265286060200593897204548219807216761688667870388650946202789044930050060862206917171316067868507023307914282580748550272261354206313793093465033774180286317907095072810742181164396576082741539172675500975587836147006269568475953339288750582799696418734094576381322813670592792343829849687223338032100681471264766197720596846470249770483480615005641459960053373479670986060520505252142551254825324520301582362488547399644168568717793963966822954151216967517480450199943225320253397855894259299860566486704724917365136040128957160185654455744482582262421061318398690882701146822855272456541081036670603902594491815870741888030988416862495813087647617376561476216034932488876582619862559339939064484467456513424938524813687572690708408280544064395277997331874322434587158328847459730608693079386344927558322545781066738358192974606364500227351663607154107838510240404292884243816447966324249200498574400143054497415241439856370169640395621260813115085126129774757400259817948003307919184977498139761404039834697260660984636993812179895832517599590360336196798084647709704820752071299869411868293215029211937607432230276533884323324687416010024733760398632859946610304089214035805231929038374082477547346944952471471695506512122423157726629309755703635559351912621095888425502274896201251442147792735360329414533144443699385619728190543101604068595300979960778054681580287800451585076518038407329866276208834687660229784688667538113521376530075549754476673123652927174114095085290529420656642449165529760226962821330639913510776215885584747580012001083639363726518695724895042432112889833374051758260617149646227965200977455557170061513361498502565515927849335681148797318427506518989712015395494190351239482413825156762126122613148558367191064296772347731781305240478537398398688943357690936203959804515149547013050236485431010961683812193330970853480214596992552049655931985648464546811587234060131694497787615430029242348979339447328459021484671751400562694125847223684549986407096078043779704535397672923120225745530347857125037119651492333545603056806361837338478367226300365629418755199900558472694137699970391424979673127736513197455352208964630577937576088750200134407264779868036140272786178503977307300387241416390446645008517825968005087273735243705261490166741012877801741497638463567291497107709134109478889200328263113369081521376214403296805527774718536479001297505446384514679039393954819883523310342484605833727499036072595423687639060376152121441297644347846488366051080486266886816865069599532928124005649737077132840507053615826059972024107383241380902447233285706542763018815377790369120039910876607463487210529629307969601610860434954933181802989817239961243823092437557915493736746537613161362701857975612265702676225272917799685793330371499883876094388633627852500601947841347036070204657864240255164842474892443195220249904613202098953149391155639164980765213402529225633429015554278403819730261416267786612104968392871585143985802314486942980306883610462240919390448384071834290257932361192625983500267983297173462491218497558508064195200226340916672099230108879182392397058471631638240020129177076162369135727992780170988400873777950551700349573706075056606696766703936429022502861734385190138860606549176122006403529990888451537559767404751256352896769866340265405542459605012826995183010884324192090350962859675133871576013330661912029060198389544931453108373153665022437796937659178751475208485742800793315382149305121230136937642124324935333707468842041568285369959079006295704844062388509278217349204083530234579668086604255927698322339544231186863011541299487478419767025347271760449768023962932212941994825160392731978179138633686674569253994363605734684779553970441501498431739352530462370054978023937290422963503192415252080714075818522361712688343628282611063681237109069575890952265466622874535794605932577440337152052188138230228513510859725431501523449367307555851671635012776443998959774748927183220532866993815418776716630914196034649941060301173295040915631054335372397164649881408361987130640633479608344787644164742433217472312238510084421307237391426534536081951098447273604321564718658578620461052532682092824185670770279971081130356793724437679635818595162976295134561220497970265040859484528738581425579678795515066983949612631027941758256129116251722654650026368931282069776219194322949694173259563988711996126670570117285971003002816000893235199463608262622282533525980606561416749633115187592902625127480433163783146957411638995588129997454499992503561515317555191088332462213611936220745298652974451553937839623343965206529631000788337903510812824830354318593854135253004342185522770691893930463005472485283259105807821150859785873360402920401684339667110289147909733578445928471990522203273881763503805589167234883486808430594859370348623335483946054997102481029436318888528794167485704394182142806888308225883387041013419648988951445922875734736667018853009814750044731942847973593026772780743728687445242879065239465656841807298176461232215264348574191893975633949034967801012878128359860808023880166802203092009029585673922211310662443225643241438975055307638254659121940000897864059435814329568679739017090463021379770109315418242520809119822386523989911700055936907623999081377753736867195960851198560123124138646148357828481610703473320792109886400882915662653376988282112543734402549638253888314483777392978941777195809626572478235127933261075657863707589101790455834075573179462071366968175743139962856661996567488720326966187562905458914662282654534283872836279403827189692558071341250813046042706515095801700300041882938611735595069300478689884202908334501292365828347280786914798798581122936197984244407223065011544006842890672567186067469875917390366054782941995997063601610366100858947268528990555253943600135081140496315892247765420891009373111050150713502056914115585260469705336294557085217765581547236503789216887457689532188447905219169824668860041530048215209089211600838094732688439031411000364121397748980217669885904156490637702062439953694388747585077414826715212933616469796202050011565229291183112070258486596347629910880162310423463946922678458998527180010467747687750084245695619755832925451863116156005147990455588716766073547864635945504317823048162325485283530846321190209846158094069417585847141292896252143007174455411676943634613083755079131858683160946356971141862211737836352844163183244056215195485399031513657913821794575684199506686912402537053262490161356295985561196909035069602969431209804205644112482405396467849239131446446184053736955968381444972855993101247766499277467937197531672707354385693801784447168278526526178666930462728062174112642104460310074380147435253635943011249376204141267900076220633449202836446800459153355194616978208551317575350734208158132151960333942215251357580325994371595323828110365939608203631545243774507360417290530952095074430662320020540579729625925749624534010399658891614957908449600271385873623038916095953832167267272796983252001500408402506474957056032536088585098420634345914860165507455277508082986008841892683089814557940451283046268646990339659727878329444607591139261312665025352688064889010294161543328191215750198019618991271727246046797756482932204747915817131875784461634840112925776449232728981666640376900381279956851674974395221102194364734749758848970712373830223050268017993931771862962998293108628145368152936581455842502818148545339937547427612467704191812944657792038878491447161299140367639169153162943613707388368978853333885520623154893631217986885492512943735434250182265867633449492581303174951116202541331147899562697300793293749620089192481168192600057945358819938906379079587076155782328996660825051736547332235640509549663931290877375528248890126443713735196645748354399982760702008201615380404854705162015697850184066986468338044478867366611935785498877050617900934734353408596982359446139811343064891587039121977150366650014365153980341673888898230951440107524424486092503731899733724424820070492194984057145909428420169364018457749448435795350795971596660326921164051512838144577821583111619796410315442746607317806249495839391853281419149669978617506594267698247411996063060332650915107238767013507965059255421079175689983217078365177561856834981867329419579188206379471029502974147262596048794683178043413130753383868018718687189622656145259723330609944484375163496907656566433736873952721191635256403468335827758241819822375792690942312533285066835488798805363292489231439245084362934804794431040140548629388132093764283821901597672717036687287834797855734702648983129181929634036440019201468825968129659838861559508611074505597981864577556412271428851438236985208551872496050193568540040482613794430483764228576819060985335060576107014210429966984898007591420067201449592553945334662905674384473091432998145741007332683477523845825795616052129373554590281647210874671199210055251737935864788100509389896096647932839268542397673176952005007629632725205217899445809966001359917310918112154201020181853229429469965769639700749049052752119667663290600237224417734189311235661666466700205823903570505948625645352902107520252111141600409683220628042398275221028740501488799292651689766545564923095769978494424616621744417046796894242710285261683617650326979047816184894009018699181341650618735933889706114373903295848261761178791258712709807242384142497251910163173181108075890537671070823745859865917000324561378159511403185270415136279003673683126372731574574719122834205501394560734849183170099655296820027662627777660890445226622404980827675315626327240332859186555686135649558101537232715182982760127431296011284364099890996253463716211209967731567769659368692955046217407461075311632573072828746376462875520654645940372103557947439636548254801360371284638957899239718646660028315382491255561283139353876493217151865550780113669331033916162592363059595773778317701892442334595988148698815199098007733024298256709069402338090733521134107719263134008880562082283531462360085595514224549637386716593915733408060767346170422405109478098125943231058511851279832389660287018394856531301689588408488269481456662394925513653254519061417371204849268338076176165178762779204773047962011664468853831674554224453016139132411891867546824432732561494029576092065146680584952685585882645681214636662836802123951800729263323845502217216706826677760154836379571526937622197886326527107209549117678340294250103127841785509033403771675123383809203627576195445418263433047957389775860635615947360094276537751429149893795261974540875516396600532755894818897496255446210307344041997599998539771209245778653636887336870480484547713220646400657609813276078431883260129522162512501308258479684608159935596385742417993602685883283717913294783895575186884686530068598468359886328265688344207521435311373663253329894816923769121402591996459357348092623703077309876123431296002579330012663591451340703427568153107079865192182646442747892240577224655382479723260162115352908213408432330869364329143624365304542991908799844248327990755995731357972054490956323398289962269550005509888806762156886115122098358397949415444423790792855359839503841627835113719100808870019604101764599282824695091456759812274725412538585397241441166236233447648544141899878833571930384481888840640703967449219035601628957652367646908033123338661122195394827548278567995894075877410736527410212790882416486245251528097203453641841492952998434812637291898957307602367170260209741880043409305450591866108763994746793398587471701631860841140356496912652587699606596462189719996674229678915315913680413797571287752638549381785866435329535502621394610606536551706495990323968732832009398073224217470839622440690522116903294231861733014002357355249092486504630316985395299604979712715698415414972773515797691026642027858015527269497308777286431037825350176382041930365941003779450889363783695135695725480814701464140492656878835462434905470515566858450265324657415926715599164788869089850575049344733558820858394504822191734406297416287698491371108531893796880252445692270344412962877369507518180580645532443336430707595191257498230262049556661108192037812571584418698887873221702224421591206677969934450131575851019996779377913000498318989017309781374939642210319727365459954241235257359061563761106033729504176383402686822632093563697019479835595106184602495733602638325618469712076864706596541361707064106177681497810383302360488519866618534063188269537309479859096934610273510019274668166878468023232275519813874097728936691323607954249878614052988597499935706898996322041572541578338658922490849586998275321854753435278679104931757479137129266018348962776059338906237851674779304696273174938327164545973379198398854491046269426409591787751324000115061353070846064278662577230133765263720811326807956040411371971762287911275136569140630646768444159762615494811023055282282973254069079322176357962086052080015946484899349836712125225531471237356766128136073731854266701575636956152906310338915532952676017395009128655931509854400554078747671491672526819307201709102566228448899652213818649664792243591865658759506817310027039941523874216252418612340802430313709015321750433531400223292085309591187129628350413857617628379992526277694215444829463721416485358855836328968195937809513116218018972478206834774178219895680759975749256148445035318264671419024461892243294275233363697053674070582776191875651702333725174088322797860225684625461561893576401761857360705140737338670588486332080070056438418757356253358073954747476083404357738118233291255646505508310165243133031666025333580009002944611370999816246095362616351399295647665951212041367197047324402049255461425394760215965723439679361230514397319451320450380294189481531982637569244534162422032237881520128559329350139785532885518772953535519669482491509853039915445815051119087876695768548484474375559573543511415667159066467595316000414273802592074236952849534039149149885554319461313092520922620131011122516397430465598427864521170648469056773272772841684828288903760534024658914319836684243149642092848020612653959654422036164885421482655669036444614862326386449105372366451721655691518430901827935733808019902207344557682482037975823330225474326692580854263099705196301831532089700461529724870458306753350220712359223800951412284789477003606762956861146039653672766922424357504116492981883017889140636803852334205470886254772248889950549891327165100671893085740875245075962753126686941310388022267487609833305609008563189700300589782250503124362853454937452294811173180220450177251471545314042209652212882347016069586553900968168076647870550438669004947391643136319833045624801497864552732031833586290146091943639433664427565621916746579358629176368678308804242536820312314490179492563764151221595349819498253266139715749880168529414170170261491962907826908590951020390962619757101668115292101093111146643966775382038307660529317325272157417451026485311518498803973865073933656278087914542002395553850940489833590231773220057935801016854145580814949196362514996427970746564605815603029191082054165429041267526353943285090597609293338613622742565350356076348656270952500370467423554487207934030375262433139434564069718449929240613801539360018201942264974404731125546400990350400973741838805720104476091441581067387645820064544707956231069077626930407057956714233683825101939689091717408118863342640417753232753156485285260001478891862281116209767973271781410816668612511524060769644558788327672604348690169262560910830320297725335940962723464440567314211645237287640047587579071112151736858952811008157809172098575336294637700981340740070012537227669461396005456038031118178356124335793424189900491168470146275890988448436630775016941170646142901068579555103560310419446432645401543299653827033851582118697455990179786133587644879530320928669840155710767933701372864521808959840181521409842637698548065207165660298840646973759919177944695033561611088417522492666645965597620011338521298313202729264307462603459020010297589465814614062641896443153272421265730176445074233743982530575114265941968730042762293439568289937321358237952245954045569539232175831202395407586860032777271532351007561444241475003266273464087809421018901305092066086069676626834184315190490430119510051517094837912338879822328579260959556442363545439071726247499820661060059293749061854115460357206362606344710014667650476701987401557974604336832945131330921189656431497022074905289954782517986993549950027876019590609480115619345353095966608179264194499202421019784155904395762668505638702264452961632597085386720774554603971351049497699967577649811391056570262610185524853754951666967408847909485854552735623982302911182309804306347384861670110804842316357559205570902932953881964112869789416283580743885076032213592299068161766987861965774879544873609794495684327989719604039879463635842839594747277131023711641993986644223368528384596405687432626033051361433303016006028614682171959850465726922206700402960885141685687698040568633560552229911962166683335722657187848827352545492180022927626561628302772677921294907513274423434134998259659275628831074586899923881991395010673816469532601389011863521026479549171889411108406042936138854584661546876137246968204804958235870360734298776585099248637922063672995759777208306068041393799678784512006075144432976149718476193325557453000403234104749268878704635787770530621463000756208807228278286548676618558474410890289728840785734436066344985521764047183437334573289818115669620551085675595112914997612274210266512211175141757114819551931187920791706170355795847871785900569905289225620864226655269516031152719033367077721181197525401964791707006464498064592390961243401504450994761212130566787875307123450235934518166705411019872610749416051464276865998855279998264158388047378697811708835020489988528642409212054139352004455300960392669074856473356818267784387443014887332110406412309379684463515244891955770048846247403605884862661977926071235631456406441464912686100551221155094227462154851058558645195746047729336278633626972877165315135333587409463042553396408606342516142644861326107088296595574931381609762113580595787001969056261246425219693713338460051704211597981031044697795876332896078910441125270250774427218776857540076796299915127526191247625069576339294243207074820931845759666046530039565763824898839990071082458095172491625053319354229678358635693194072734548486346658020118581074601518525382201802016181937133568971921205356067299835362917373415648016912108504476097340620342266151960500557640533424354140954757837622811990386674786611993227574760424527982915533651478842337953162670126546963208120397977120991388539267839235306200879409579270998207486240925506938496204195018760375355135845887004952272926331916144009793926883590784735107183632202269501443339392503986909706051088388137531983181687916854820753355941879906028305859083039005835805668215704592504473245060938204322312926109711920063204648628200998097873417056967774340959599104322507255872879683874397778137886997525243354917761594211507028667773394160125216059892964832182990105105615454231391071834928364893389247580500303937598115339690717552954086704859038110622225502511615501955054557461560203187788837703293406646740693382964367201732117235759196348259368374625499791121031375798319175963819635324129645414724107358360570284350324748584300316985171514682672501163948348013398465398751159120278364703545718175432972780609967990197437628158229153088583033390636543349141514271717722425861535557299698443426166170587585213064120482584428418743193727208739229702805857956368804940587255328677450506428095264015881472613072565494083962720155219442105273799011791730957842386581415137876975996478094997193215940377143214080085335765340542402678544173394913101034549703600453309610531311280947926634070203264198824667543841913617513622701568848083784551106460642351510629287854474333647073878964611209797010991697183728469546507929541581090567493275602052205102249155875992685252369174237883045461140298604947275797375595854994095145524324044946999557329927865337776821584395241181324396939729719889788847788540074944060379812874961968042205782290312944872011707041825721323518196471406127498302460637675803425076662360983049818861262440959798088795597484242669016540622662332183357668875805006661547146661418528014584530102949581710881820494195456477434113568568647659307603231807799547701746279709615293925236851327234920452652284748872783692998818431334859285769485178914676962182832583220957160579834709038575871054350814522812278016015565191064249054006574755242753903198459412568411901450986970555698528419367602487731479004700820239737007203580389535966380256121264083664035103240815539111212258489884575855745736997805211618956257263982882610388359672056839990678667189925245640506963094954318207424905813803503622663090096990048295994386776695241637142503760487961326951083957903969538310559616186978692739863119216575406693597789933743876340973452946011577584169651342338273608787829784609907084512907567939578207868067253599642431527616646512562121524828583369168838395029377479433308712137871141911450541960658405925589607728237256273291192888217427927560958432550094874670824766851696552635380711616909179267600791870029534794965586502077570592543133481316176699309005498972743762952867999566135270071580324665267081996660487906697421432106854551113228589200921516411044732284296789642524360514209773491700339022208125840106449285985495822120566831690679665431893197889701582604867655340184217326902124428185562532173539161518561153174531134243121895189873927317995091389571161891332702461916602752187657236543484055991986934894172773054977115033626103992520024078399040473638118294471025289240322896176357635196702389475577226930782454725253761013268773452100715448085601200274782543651683056312731793192483431946333893713957101791160747907054023126384929658522751296600882241273880285325047129752064869884523568206903919229433755858139388870737295838028804608325342104633597279478052162932391400536524261966842230544585220036810115589919908949834188838225238036395849214342275386033333649797025994284486185547610289533750618168408439222626955442280871858822550126319366528751450564176887208103041037922939042675144213178011115326953002931789327699315855856662342107568387764084213656826423132590503446246714057412762239854240495304412132254671585092751603391352661466789509919231370188509784219479530468617153979397585208545606240393860657597310202253422925027241343768831350420492662739820367547899535748264217975481407088379777846629281011210119936463597218164593351671887735666053189163059727649984652060955027189882142581624938921280550757069411088839197087676104297080995479930772014467052540634552135362461446897669078470903333309554479561804553822248637564549678872037776491551434177722675692381424247650890603201508720231776058517786574954260692077267067116309238076309677761642483334687317028742372296803052739652173830005454385672161628097685102317065226160822063870407937865135500010068881016867418620921459910706230958129219540305696404944444824716717257938240195523727242031793572914441677565240951189194543113758692424377778916060041471326382187872787130882571449143159827646083034795654391440044590209022280890483482476119520829400197856021792650783750741513997563593396661823688366945694024436872092894491106517238499534530268559161421722924420167659901399074501347555724625322280432983242643859388586544016668801399366354345721007271553141990437090189458189851104654822102740828916711381371474716046964460670882843191522512825149089833259796743089881518992644793243518954969853172306428476129870513491615617955420625119595795140642760711759358857693300197212542446064821227289605064693124412800596175375084268010043152545065192945711236846459952444238476876086587804541240841504375912803647064940366158032227374165759865809404423630452816557828155662935760376175642060319790987516400332775582054646377692283022529542999072319123103649202898609836100388964993853011798884146138745863608438762913683898432889833810792314422635943041677763787375070915839544543569652074719267937095124497232177851514555969822722480949897918099978872081219002768300874421992807555501102469610630938851893301006398937837286897315087494597490272126438920168034275851500224431352472853173618743579085551535768786122826574033386231145187907955960113836728129289318537665665125446624134711294968740386728868354073627046027730880223818439388042428316054598773243533750980357985956305241221750382321149589541613352918302102328639074565102229781223873958594738398326569083283947602807613243510040786549134370207502165438155068424936498180387865192067976827187487401756757864601404364970217966175821044908307209353467532738899643162442343839830108283136131049231831663645471039075026111139310268876668347418840898625939389819078268614589335128052592427548037039682390878037277583033463031694802096782894869248162670360830403238110162206581919753237671662028162254697008254957806471233097678496466952572835605615560652779754245117720047214289028258908607048987591550294083638586991191500499810805841889759002119486149335532991308014893644075148390119792722280457866258544702349829608546108996722438570807105426148825497121640647951750651711375466044409907174906402971607884292154690970904275599923788089646079651050749814893947193183706081514390922414210090255620489885515740351604553565765039378624185695625522860075082861694342669788984926114359209399298544506217196505647361819509511311831157474598569949457897372533760447805584175917100789511628430301782806301759142019395432277736674735771978690619769618193976975441810783944063095148940587882421040379709783741539824223575475195876864797537584768602119995069704366652569440663617659611488537084716899701591916320521286681440677180929058798572371735364585035413046389264764372235571171004206577035879102361941853199671091443228301908256901229374223283938478985058863882354214881116805525860023990038880700604606407433136974227096183004479765087433194380940122245963844053172611870932071297851962717883122919812925714852293199641639592895738379182907111667953386928743577841025137324770165119941190928192023445814561401520193259179281335289383457574854723758122589890473295223571768316510577982843342971406695623178073769845813069755137882407751249558129949327027533698161531776630261634020535174206000434821426839882441904471774860341547961704275709365017170911798606901399144169731677739774584589881347633880460832982641694199146607074514305714719466597311946324641320399753858101461170972063823102340710750553140058146761941418297489118263746873052692723111040530937034242578443217806467691394112683834125146675814565344287255159332229606416247750411143992619844795253338131377455582416680733592112305357991235379066164472503630824428221882504431015892886620400732121381971879217897142505228786090772301535980345819547345147344497789321891983174670776996999080328865086070263802302156899066058372357293504283638687659148704870552134530825678117983340359144589636516624272450855189743178991484401463042061486757493721370217429878319734419412970696776253956845569052805102565775020421464741851628416138758581109048555723863030435543256211274224771915191569322687262969594204398443611663066798273651762076011107373800880165281219289109308848556651913642139525169443618761863883020354951734108960796998087835277673929705071038733482452298913627341496005335138035594602064342597071770419615709192226335369794034691762706501977814090152858621390762254947194942082441910994469907937854933490380769860255513834251235959331278556648350732972341533910528222958130093809340087339136255588235520467862511070840238400582779194640199020786945398912708040891876313288270921368832070629199905453638758606866574197276772157493663536764085001692281080886353332470074589615285214442363567211581413672824635107809581650016726264708933709771571413318604789029692676373196682260453817382530547791585969075549070894518866625541215126636468156784080792409171098277837191531420130522398627953400885899954424280736743981435085473097324538227223458762645387603877260136401770773635653413276755919915565618855717164276903523373972346419205825363401167282761544448986272181910567615515982269559379080856092198300678988610013271188556007122718801625993115777646237828919787580899825950208168276954992412976147072892892242471016905204446468989192975742642438493846082197881028544020919362090254248465355137129294563306234577117586191917249017792331229937187527140199724242899548114137462853144569404906388210826518658473343600049249254146563249801951437330636052648556234928979753778941082107856206942489282831968495364890252981049709034485562254066290683171150472004503860719034518119080120634248935263457006558190820080894425085702370709609231712696386781275160441097381953726729210373750187306670886604259345098500437980322415996685773166811513078047992417721425029305932501960155498220969630194009947262126405437884638765183669545953466369698309503942183851441371730360647881849711206387115162222341505655172645451250594008364430387836587437649844417358729639573162944294813658478559610058897299984056979821056010558722817930890748735654887930400110990667791477471403245601385067479849548187094752965600582552222332329296657491945338230288139596215561493988395826906799720293796156859795159438926309839478793568012319696723442203744526803257466490546512249997567720574495261136827985064160885946149844822607926528291854903790635641415317851081735387527654411621162122877558542916299363293031033646353819666876644043704221604290051551364966629126094759132355332747744517188864734118847860696718553738263823752958566475588235676768547792840696076352974701749976440357837332744046400854952294839341569118623511262657255614873453149675481553737050479194410262202720616535661141296676303653696132139653237686965290396630257583390924044795643450551849173025816577975140032990008472010684283490668061010172025387954045595983590873951534221368189464623024012744069439140756778329456964440221151021684068065527673112577028436541052447583160811160520184009537101307321649235196230082612683617290143345502629275154639466115625217086942680823368424322868176014846039996483728418462651762697221139117861545909069112243372864516320789840252249366124640000768004537392254883688940825732937816847869317891614245799230099053169069302586163331998580428726137508011651197489883896515654258393815829055129753973158626693235772696398243261836426647154254509343753236779682522350059995530826470310505725556915018229760267952828042439680047704223577198115866874256090025404969377222086766085165597790943910760579757481188644114545134084041727032221716571496164400986525587128418535602195193793718091485810272573896396536065988390650318035754590273673357690617716689105387484039490544003667006458045037246389996448725168938168511471202504263311908999655228046856097262941330368189718134076937439121670831160107499480942967165842033167516822523989832526891492603608300552483234907506862617899086853769624200313828418794561034512040082741182616335958183439960705180621088507701785198979062279086957568164874211304680793030971990268277622498303566142390524274226995792606140913643509548426725356511435803306985725513127606959595253912190965605382222109921105661784543689144404230624029476348879046974847286117890750086211832666694049624593669717835005463644494710602629248960496403294774592307651343394020341709104231911584989493535261320826852577504430208771087799313467293183421292857810879011452579244017445074405611144173818723606873613057408480675727552401250034851249844785138433349987608648541984357418307369012553918388139159072101412313605231766345071239295572082082579734029779230708716400772362003663963247262407180519481621678971214857267216558692495816105124314621417457340499041779023081742201713052045998781135737108029786819891128115950936812855251054616172522847979569277720321234355884718932619218199554461928276318969584589545345176849512564760634173787339517915411641649883022155976204726022619361465853357140273759468927899128859837500974909291845230178813107837105771371642955574176705826151854944979663652965419905036160079897325307358205676089941492345612766931106546865791088175386568415529707674074623577412837043761092314924577277522795114346363259612883951050280280124904778265578857702446546243200044773220806205036042706150808814688002040919859001826785655477676723733889966440137908087412076593600844432547526452598349095466938635215086215045943659532254194462126687640662989215527122452667180727248211188085915755142828964665223832471928797800199409809797630514110878039780633021764931945457718185804578249417154527478650752508948250832960665557217094578093978749934499311465873883716818738509700097798184632748107533705219591785422256450925123717653228872780715113509253333090729942391896538663617468226230500612695650363923607090389893132791844540870275533845811242978008101230178880628701742702719819884547363767737757186170871153897569752972361261454105066509536739648260292625901326667059007594699371889121192934582885973110988509526980408476806286008332844274709227463992943512750509021754065388313046771508919612976714147557553327515618220342104730701449220082304491272275795488289022597877955096468817748863701833601250080209676275427495029597407162212878854318977738411071067677326262699958298542952210210348174915458548893539812365458537638882515824481568266810854911701109239463370029119532848381200187826197402644528930894823414079002280142665387598002238498701234288390472237033401901037375881195846394672474244035397463195785811261909663946035320747392912634444067978014833329386641158148732339865831668348491780004599234841655754344503557878117394459899612852099547138378991604702100531639950503338501818895961261521286947403280084989747526739159519971071383702023256623452335927865654219195165906972091124989829711221400541789494593097181162665050233714175123061915163423679500775125226226203769589080417917792777057590233488748817646379286321128448622364634242914168646931505838782462612822111003333522269513615823998851912002849467903551911215544325658386375003733707228875935677871644138539791132610872549382466864446279221084812490963157850798683282339616049371638651530057203012619414367222829482452861669630258584152080913271606907720032290764425861451302095389528171204801250289094481785935992712550034818757066607873137954248214362166868422567981278917829314231841474898609773015458375434586595041473025535507015083591380619529875695146300164937529379572899489858427693861840887274075073044379652857717933419192039042954980992803412657818319141994878905467308063098516256718815502037254405740787692939365380721856535606972890306908903506929689727889598025188451287652158431113132683466723993665761079168994646905096963358863441327350457431641197958799811739816160907541952345404123399416441742139419203019060466246563508246740050089972213052585108018438735580078024325755214417464963431416389199538705131150444304476197905556943003327762315159013078847380199144672469127552882895103399494584557510372638425782685391800679212016658633052506564111367999850145858805370615418242968549678225305433728776629884827271538778652635791483009647902215288305752964366673380062333098746849511683227494526187579941110382473399325795268996626543351214353000713818134809546184668245064496579583274457871100421609021436186181280193939913515404657015266680423920311035013397782280495423050100042047022988562280896918066741701902636140559270937109533167783644458517768618472537412413360207581944739231388630957435680171799781225720894046477096582821377136890892511689602508855847656486045105454309113220481685602287440491106096649198538894332800629742408314246082444947787898449295216743856179958392552953712740659750336801236611316049954617870039759284051745656792405143842448953786724742693261612107000006599064399002711650053987661554983706499128716999496880037018037554583766004187287345905113456149220603852546295752355232036125652979998443995579965068724345755034372445818674199525870129799639076298620515444134803575815117106670751134271430709675625542168477583561108038261654295472938484354030459432693198714845512060987666839443744915857967737065787095940217648869506089953354867665804667366638644049497117035002393363756914817824837194888889534369779937818749407564548945011639883872792946735913557102554990917264108666770820370411085460067028722762138965569341817307533878821061127917680742101514593558975187395116695662856724521614981144456788154733073145241783403176227541469343187134136215395653687314115312180459652879537060599999698895011830350226231394405950796448018132048401106263336546137464085213196268706853304367015967918532384518795296134144913386688267417908020838521578730971160201734758439498055364071686958355215810007002750336944083631409290772671649033121087318718001543758757700574872559976739746713126760619985627299762946855768766134761023543966079435385907320188287552311707520622285357363296550636803610200437653744912016840883775542852816664216562637525808500403195615321858541850332116439416157523419595830535056067527559329836610557781491352223012780355369477832845387101955688920173484473858333849905506902842306473741559481743739521895424665351560871545496004301294079887688661324818524360515228438341615143129705196712251610521890169658166910009309315371006862785306971274250228979136656396077247679576618465625537892186743257972683550009810248135925311108432873654751161416046439573812068138570388500752630642318719141543869051732930011156556229468447496310855296844948830861353968224610047724057382623397012147277466211967661742474323598777266650619524932329506403472471193004688810471244656799285552047980192346582210910528345595715923809720708363609186252838298827483808499626759944087256933348328322361681453321575095511026628784520738002489222814019420808365362500328533401200385393013141079129518364863526589971164419118022030598608621419091948983073570222480989523516688606481801058169164131279547099596340637643757729914190447449353129861071834087329700208259902097787527237366828019300782157924239523931394320686563108474109335540604787629581680363047644870632451120302526392458052121190496690586157557495289443412382591053085331510896993181414782535464000412259366067888374959813864693994661875384245819209214207033061585690515226904547460507218073047205828189358305949564345623345707994578266648806513205892590269172924311542787142690639298961087588575502823457856088158407408359166674908606656759207195191776849941203400577717447105780696445892040299743016292842169788286942135283387983845616095340822970683214599059387981837630136373394182064910888513728552495446698918850752621902625332970209069798253934760439814701646210640016676971805053427020717196444075549810380105045888199342252732651553223264054634677757772522023986029877590837833478672773011470366194004908374151575110306027982653003430127370633097528755057186320837084217378782531675960222524105892524399750238798234813576932277636976840473617077755384704694144291215793353664334960303290762363830635327976633628016723058026758389998332541224622126585641895984542224728062467085518656835512986319262077906536039733226050273409476044261327829170231661706658006948561750402506975265132605593864725966165224831109055115900482558441745264287773317649557627282188076128186372229564226565303389673857146324390822707902848286014595383680557216912591008336656332256133830235986651497525214156382312141969755443122021284382265377380580453129033266432374708400507200270567988510922390964622277200076760364399216192803398086750214000729272599419491597062028976552568712854520495406443374893998474245281209315120367895244325208221581999832891063049138471242651078230506282836082073884359188250177207204369139859795377475369097113635236464500222314130858596894476183880974061883580927617548965323482328992141518782011687879263043253500305438389063465083216845844898707697971325263181289049881685639813214157982011566708828639249739702039197446169674671966391315981218052435819353439969713397055249131603849127165793634849300598710904128372901718155892005456868762980261564096187510416033933704145629641469631478682730777335273567885277527145385786824976408557257441226912146430747801946715843292398493339674325552827008360131162409202553908719198528077372675264989391318842772708822941232152135385868593607169638352283693482939351913248761068246700956943806215830365747655332242415519172266348849833411665933765102556046350071898694787990652483347093541431352725591792986324940787229994526667974754138473608779053156394747013879996162814481423949537228643589208967374279110161773308408882303008004715865548536684027339820656716153491465125172415048888768404838524857210574130590335654942459801814297929300997057966473147725726588322138565056248103428528255951259179025227173015876456329004741637054078547241739706513306402640895976932280816731911618970064873374235678497052746616826047024165203110328512643388369755299069346616491211029959234498690701013406429283982193630672821236079916173945868432423857400746396360662868492829357431862748227081992920524412157348221371298004148341461351227100387739460680444711341978573350807539940353571537633509713310662926411228151877876433514118335909223032916101692399905731720508793016952676511381612864211736863115483616856899392553817892967518326671427341277570788099160431240670382217620767504595916481328460950609740269216067724537434961917643228699815564713530834228027345536529683833571779908135005314806842558360082577274509686033100649239362982863523857231343902107224078048381847899726198692927671505545466412754634582114197601188337532786081364501669834670140041319654292675575412274268297728589933044694978551358165306242764845447985052840045884844297385737807500556876951049301876410993711638789772339734450773513209706021778990475983397113175617091344434308888190415626349090109583603905215331064522734742740689655358307247688136998388322317656019466075786279523227968274301030019189838267492941854362346771119032685242427590086123038679264692734826736221580211888720372388373505171179236773954418830789219432999900714662350270749582166496810933559428638794576417102149167631377766180118743537202606410132785219139083307860361356549908152178568513237349279589290036895758854951891823875863847094800465887257211010597042271307569868233289107829000094129551852134186312318912934476505062826678521402898497491103824695886697702654126427874495413344980428753212583441529141924948070924551839038431611525091524942980821232214887388614812312943604587554780869800288636752955566641448899806957578335292928807086511566841200052711103075373921275596876882589285325250646497586459292128176971286453344601018784833862988128918798802850308338569061784664643542223938310900656974854559148394388495206541409720186500999063702008251427955835013845699093469694933619953268673781207328145898880499977911476550698536619233434189696302427090922745534661383756056230053456643312590398231688428216060058561983519522772872271886439255154915963653900430392464420183665834323729801424202740283825621384321922801510960254223668085665253351123517606099271357867290099916568348094999325626994561569191298123491744676641102538769112206091630908549768862167637317871910403301491830787762075968620471296757709816526545782577905001346216429407466953673254021927434429864829237501483166091186094647099790915751171152561919670265069333148998601227051859405776807450757771586057551420811835490890143989467638052328673514172684870925030337114750314086724959407301477859145496326876950250897676319692922856500669967715913550899567360401739368189716221181427754881765258039418491987837256549202338483845199008519672830115735127011611342093050171477191324075847381401463428342277095940696600789990852482654995949465126640576507872639860448162831583838207977636741160709388656788770595672146329552840670991277736140178625493530107166182058714287448004452321214535265583813434724127711121854981205248879797016536500364896833424483492830752056170256963819455962830093602462060069444159080363452128619942610376031040674227590389292408699507765457897838852365438988757217496355230103382091173128113476157168033258288928799775113549352022785052504561782631722485205855652388304353564112622963900873818519372648633135775975934894781783647375155427905116290764193385514444600777117712905298731221595862931423925659625348200000352007252931007019551109735534135367535071835114019723369544733284891166636087122841542779336040781805763787931242733114875076682623135575804290504586280044418470660915073609274291417314794161699921051193511557432754151545415029172354224213538735327093002110468717834550605608725650485327702703782101034572330103517185357666824122085770663143501181885519687180138667592470668099388272380588350943118305141578902144471386078614907040827967365683061226947287359364659285014330074053527028759311960241076189760581329827020513790980667768167623624404587161123807331169478118837300298223872136978963330103457288119677942799210935540401941871794539639880504835009919915838913624290611029486712120617628929633275755395068760491836836972521881338846151803329359538344172719808149975466813283031492999357501517271336262585993089231176414964722751173505633928467129081188413611789060365416205702106681944616967549359225573307007316976190252841698373459478607262887040915248727003175115529015825598536740896524618731558607238591511882045775707850467048845323713978095286797397282345375124690310311223172714277015172215952518992128506930238594226909322678272857571158225649617255706057845477379582819241158260897307778571627604496304026697942529856346175802345463088349931548171265897127513914809960385666058018852066685137691312482360699649734623894030486283711500782419629265677075670799467103676599465113200299176255577978849605947510852875317036483335536170604012440544785895455998891482330810867764178726627837553220595179748640607669842332814488366718792785019432921523404798780673359284553916183873785026266104793486792092771799126154790587670499978841045520665191759414012231157833658194065012642914006618699299537693754020572051372147616162556059790682533747481472481084894340858071499315368194187961210722005896521128726316628050114536258116772308874060319106819653559763607720518001325494833588017352023423842668250689708828376713960031333562147103490270055447064949753833615813149217030601515081535026452050686101400555925766353270910621767547977606624424493113856058261426374115048599616104874549062231645664979689930473473177292228771690333200663323011903389422698668564648793515394825300546870602533861792017760515851016589971686690474715459696413237931169643613040222728127570290581868738775132207995420903789785031621879796535073006815210626620652956691537772037213208903132698384342009845770886823119817593384447949267057933250195427890993566158633571921895917213454326046886654749533973215308045209891348912491107352189317617332174197235172294954205126985033318138544110281926674262319087057035442710714807881237521739054017434738000872019680255025279734064838296354166570154943843865438568028843375136226273226356239346965664164046004344600213234503189517093861727345987455099779826392301757706689066608429198794477544644895015934731889386771664969726748557783053302584122260510386405652159803882608533214444822897222778152078746895639443727004155987592377062039028686918159206891303593244709812834428949540417458043443432489471763869653008429601090528904210220359666759603850585097108029533456547676609819134342772960538425710505189091032133037566187142511434614110289640989462334980721144993227028237210638939303810056128760598645886695419144379235642323291076447896273047180393282843391734807359388789315247272861163482347338678661352692048391436836486670434366915724468525687517605910658661176541041840813790506271314980523051015575362245721789774828313070605189969855580959441178691150189300593848984479826053581870560997640170321221121057849141338251100018626811396452084260393481075859985651221683300125692238814212203519335653651623380432121594670190925835973513615272047473707677378064098453939714322872927356226400205032589940819340166946585599862373566221547815903414906043639837375373005530037427944663130149156707165065695971185451955045071359040085397575151347574463306551253558130239086892381899517119452105955746019557305707439187450561196539338737729180652625321587084979772637175877618988742607369978128127821542614312826659686197824136298941071147320241780309718860478432126573719100776019750483289828410630087406997543678035277200769813548534299633320683330824288451510203378075463195874092270405974069616075041451733770476365815956171583454919640941633386512324440165033433490928595300817632711212276519037147254085538259523374578482138186456143644307491255619335627942314580640231993982024628072688761154272061781657437003121334818851916745167767622441829047098160991006703667249187848556161350593887156526258166633197236994923963999352887030328312746149577348156157006252200896099978145303674892252466705297416999994039280685307647746296572997268903042023047252884869192131324740329279962595801809661518607790635778465148764739251353538886884756008539624750024636382333415803187527734437207154397633164417133858308950125118165242272220915594591362041382358813155413814332297620432126519233482535831324405945603888053312215033751644425517440397476207571277507525759717588266140926554295517855225024086141606697829370802632437902781974878022211892587629999955501668118014263412141046542779757253106860225188712203089199492651259974913930804252162687135994938552588762485236723584721286744523020551672623555264068558909309630887577275566667815878300511837845982606192223551494276075905941570567986637259245303785117580919778118113465797017761229997786877520878224812270811312932335302932195459470717792624209289669772371042209355199086403228059579942004360836616480239330222638948266676509302642406852092026636511380820015790683921564020648664568534215925676981939898602498498511770883902277457591572317183910653429346027775813586807391781388234102344528093352488467548640256637015472272099062321851956608471915319163550400611878497654352664033642876646469936048775117492423924669960693969436251222918910092743101146359997736334881907321066513597522109431452570163533740221355852306053603698199805303338904185093510759375751891636771382015627738939531220644028504174782968756775397862033514036864834497045235286952607168655328996831865693117555258626250057264742851733925570371475584678458935422208993189690938475867137523592607507592865563558594755686421991231195812940331875087353046224497350794399673740481198970210825303570454210240396450699660959312901863837486957335992837098787265945028789089594387675418205129749537628311851482903696827090191679070523962048075840498404723631590992919694256885655721937244456630532024309189166445646778937692393529632683190407394890008306076900555456776361822751650150244059667863141232960890897816076792256258246307583719396408444121882830764911708567038017787282761597192346221836764029116041053464048913825550912219920521706572684226001805599216983825524368233699943554222516828987323329606384099523657928611360148192313052587136257618219244192607890954972726020475392855602295488044852007147756203355060184170014560958516066655346856111422262068800496539394268934784780868861982403485033943889928529775606678922287633058601329290576268990298292393834842905778072382977126490734576305701737262303723586385568403356716551913566089871249224001951574276519734733587521850289631909522502406037362434276804413877177459736207502124530305180446978301993039840411298666349891092425307521100286641218476025855875007938806518277944881745961294440524596600583629441134813219065455798875945168112666869145308972534791722562083524556234216034252073222349740014912418941204208791018547415457971553212118476887792751349785220425368104426540696513545251517611986712370695700320075122444865366918980738966037007680848796251331155555170973340879939483717059844774756123920530360073863317455362976993623746471117124981286689785116751608592196907777351306971691494556333395740845255883984301686870641831421601913649099645824213862225412587973086897834441850243969504666345274932603656220234880212234134207308072111071341659471095123776716572401321898680017105718152414810364602259572380603859218315400598395015136027971925811609080307333167646848545046390601036606923423363118647657759110510801544034406983289405911522818812738987338163054272221873920288196919609654735025961429995001158836519470788962708361606506517160975104209255330309642086182358120352624559726857656946660061623392216497975736457434241703487856139051922650850129500304119917129204875367531365485377694793901686298779788675922015861999892963527117968034113894968839627436270053376710491989817404092367181001776566215682584648329796361892153812317468374658314706699832364898328732065329431216957200149687952334102420830806717021496808898935421052724275340299502693761591508659031310642723015531706931229190787425410220107986562575217664259796290582065445283852470960083828270686077851725283281437942687052507251580779401213145939916968171816123156944783362962254919416389418354440821703241696451722958229275203529454482533328021282354862623678373585714031172301749107030297039567226953147359578560828086029410844876012503570725446636867221207915831798855258224675033829360732804929268272906628230151455435066115992967877659534954502443809663886197815733398527933773316038767970097600634540312080677541653822106758816771281243821924947599795081457194182604766891142055774189888606276608550377554483073665805694125113175782132512424225718271857528728432775886330279724850044002006409874010611064151390041618525606127265492872687297809265380837966160569118892130273939901336725539130609077755007205337238951748523056628064732179330503762755170326503898674212288203502876362623024913281207456593727745129064856250653582258403970848061315249623947185854916421118396680814429192949399605101056732839460327210540856825641114976261101717285669948707189421992318125670037517613196341327810302524577946010119477017670877064346954791011996683396405698237641867265954069877770746178815484220911406166845982386723414076258979886755806143085403631491375063440130923015072355265514034732916724753274062373392528069190171278156459676950012489371805323539389185946885217322474903402012345367113763313611551181188732560676213750990490193191995158482606718539868575106928912495154811735875904948267880547252331385494813447402657686569464042651690861879819455078093290452180010500184958472054308173597441254395272830641101709487515220518660737800364830547625902716377363051830472736634774170075393894874455231445552996312664780526081620958296587727452090393391239649396329890633330118015447704614371798027555628539048100958075408814094070940900811069038919440684890588966481145794375994831857059762811278854919789874085627952089884560689046290075385492117555639452793832940530966786250025958922631461711153760975844670055043586011264404229239768548472704939635800221880654291224288026365654594053047260981147126363009469205843574985900551826185580526964226856408013730247466551180214709833293270361175801034542103189316483649841907460580178766590506031163376447214099591282795636860940417609634430228489130926550633161870115235204237656631095646442764910545001352167525087489827594795400025510506812647700034585122229008379243291975479075835612906192316428820015293573402724308791467450743740242986019073800783704338014402849988830623034808191039524641190258939581989484457273909774437319639639338321223672531491669598743703119399721413510048272741717562770830516190651693453345454662203139026523753163803075346530812445628069179852746517560268688138168284548842930220587277648080854496990829828309056291760141203571479355882518265116051594271846873494846941754558346485008780256363124990533975348236425531483476388554239132757177567357996689415803903660972924331878304417512952518629427977747872211640882967737639753884650278330546639506775936198412441203023692174116183075854670731114549371457252918036539031614374023383346489011659346005184819426395702707451259593996830772307840291584319227702906889364873380884600421538302276690979016346800043108576451787337779012250960965628710433170333786741380046045381315871758189885042491717336396642305388226841129354318052104638633305494734389239937609978687061469693450866948778563304516806757508759584832055129456766974025061403284786723728774957020990297051888859402376469748958753889686703789104174069913798745532955390046556551902167633184359798528233358791054491866913403410649777348623632329074123107782510275765955198599385607173130705726135430160026156156311297571821221804368321874243316102240365923920523821946191681860304006572716849370644507128392922338575408989576700356519159464368977126307868833963661162504480907669525466586596196088604022755089191453592278281860738834753812276216503346873332736496307087835360632319322669653083661918581380289576226875249640112735676051254054226507186763081002106380714944112585327273846480902035009218278913093406770307087416401728033965212569190940800444163638261101970903716533079325566138835642585336175884039899608561645011869541595799289810608936384430964315503761375988594584938750683149389588164060261460759022071148955140427210152270438165517316654573577587634580709053650640733343631411665732793961895406643407236462705774923941098359425713145058744393791723793703074146765328233147811002211448957841960991043704470693488376122057900124013233297146463956070176897147735951997542584660450784587271491553485547089748657285064235055730687539238058955805178586748383498898478256321587878359111366730998273082411307869426648581089083692559960192335346676543938491105237763408770459851707656253192895950027959569917594326921574044949689565418522709759261830412963766173373974006199546949820538632334126226887208609469077724752731647401591596221066449253535448970335924797296828309877102266818846020532883743319674755819969036346122952251704301772262511948050662643636775445958307006835360424022610681092655362392251254608211182609054016502487638446092881485029588522211264932219543694472300914678311420466553523298591001997804270104904270053323626764119946413404184922149223651834555271092960578982897678614970556352523006260306635965162324108877735486559721246182566912757873178723503055040327167681969798436369392363453512058630793447070398276804569794241043244324384033832408326545954536457248420629192814511833581136048617021239887497061692355063451772436093394722681222356183047576606553161117094024426964383757008130405316854710851849213302205941343232864833592197028774122955997024936799132004190753590551923277724037178900441097979721366833306870209660197416290214264434012154878286841293832341840997447245800376084040266845574771771072026291654179615228172129115122107220852674569244939696782078778351530741964473674876116918971367419588957998443016297208941183496644608377030945405763954032112587499595242549397893463074054820242825029629940528762797955493798482708827102247566007291361540151356622903365147696459883831328450391521506975706954742240487668084743807722421254356469473039591217209552870039898772094067103698312531228375862478024125347899864022761957339899422884036939276445705578554883692007152204059333164144025826318668412322571937118329429381294208084015218082052175063123362555669085900896524285330031592422000003387736466400230832120005299826583804622607767334397372633637022248151209645750779100035371401910424292482149311484832762990900420609361726219363312267166732061432876334617534496056083055913225516132714669271354828615017497042644285929027877857264313381010973951540150243119801327741494524853406351633173040441620650266994018677221322595648922919701447054324708736894073270895239452232832642469458708708860383260291258420280062743342062717451738294778720366705028225141477323709535983887054962064939537329186173963843353130659837182988313181274633177715942568742820680505573881684607391332744583164901486105482562073647620879027360591204527860978902733889624752906440482542446303652115763746921480505154910926477611001573860267587019492489027667552255259425726453345234926151005568761082482319385263500364919290715620056761633640216529600918883335360603918753142641934667719454466078952134342146991038429251208429601963629734266985048310534782739753897466824954633973438535779903456692598281561024068928578622331296575085427906324276396665731322251403304819667971274841127129131927568061106076462436310814733829451265126688965051170205939175095496878032552450274643579417798938199928098372544118609466202945942470078405164122551266174899213420524195720899714543341510744109115785834571850358131331379407440604179779580202019116678039979051897883836295948147110216973642367761193246598661706002625825188450461471474311801609375183905516158229917886049840763077711819173011049698734988653700619052702507685038582517849999901753482322065705078358857812444109160686880915722951872820320832913617617440456566852767582805519693945702525462667277613539825624018183182690255496981641107632156177502491593441653415989218614986523190862857340640299133990010833688180490175570673398410305201056745782332816615294137870829615936442590848510213385861705317130860229743632085834434202634438667317158096970189453462522476527068329337290595696254312904873308456030090843661066405760734580241085493653609916859708283224966440116695428754189745686626283161915968435534231973835816867886727938470154102460058290516215490952718580338599338395384887910727632426747260466603083443697134118654852854671861960574075898229826626914957954732675669090447672732133623372111761321285692807199855692170702711603858245791651271174109520574632418099035601601966271180014288694982288807108545861497567731087325584588366475705172544218600933839748434078455866288413604065750113797172383722885719786845418017240672200305030190831053292932970132588610199418171342870269661828227166891968693736752544373655744567909431557899793714320518867201475491153143199300005457133832882181359982572063535134462224552626760115981563484174472458564262498177941230555798116068777239660083737773271963253740909182198986544166647774472611648470319161176501851482371968171061245860581195671084979741847351191588791164762931244249642631311726104570187526242793768314328099484589058393639283525981455462157034538524872106775824715447782142304019660034403796007843361820567137276879820114062569541865388267157361907071229378989608818064801464819062700700922912498532996436182793714196126688921008699337331939383440521768091696080926019455638129734986708620095232919990395117363290643520493062248237414640413128285745132775589529123804260823828849508885843498306515965814386646091209241843546290534369592291847755550627735177023592561813006601341596870311632725483446191561037515069639046811553424240864055506425781622552693066373976723822459625625059295288270812824836860989032650250400481871443854939856121455429647869756949888388580725992069307695163305005626723327617327726510943303661595776457183190011758994049968849128975071486101028473248250705760493812616651230178438965274801450867999855024080135110559160512960900896951725438549638031688950492814270919200744428037531372725763576878012008249111705425804798282527665143627671407426637884655387364844367376811457995561632901062353670555320901584206556098012018527029884834238424910518606954005614069571587037459707868453095427311470739416395384416406331622593916889922118214993993334350009458095180462921670297192590017403917951504819389791777187351546917496851737330006587189986950782069116095294910244619334130934113103577488899129160142201042549917447664560834313901423648709667540729224236487724750745105582227110897205223899146521418971235382866732565687976145172696451477859764322777205170558618550342364801788530917437407246417957512778184625547746292826016349852640589534684563604456831708843451903095228506445973495606325585936771152297538136837277003872431910953542731226357135717889613840747355001051574081933430507177302204377784610263898617974059682777230007554467391757619446260782490748353992398055518466001648295909689788335415037809826220838196177926959549346057219641506029163356863903634522797381106359434203220979088038781029477588484835551789286356788678152688081376150051390636382851556984907627017583584058388697854329211147304817699006216567353594451356071648159450109955895058750683765797785325351741173799347156942212046157461772124782868646245487079624011645671572257259943443277500689324595799380386450786997068896509740580893709626041927179282760252538379873280010433394741493126148999270072350137831673343695658834664354591222927958209687690846322364294774887497138562759464540243636016185984053243326750890967067791100407557899372148773120788680707354509778287966186148431252132942101843243242540482588126877993268580391217387535953221355167399743388201591955732555848615111230222432304840408315450695063381290945911513829908559596313397495148754895803052401687935138065525562840297183236720070203017116552574913767710233267950839748261247823213099397692061648986995431639884094908193550860967553073206327568978979977703710240908200566152840160908005217057347960030662810416189051700568548373370688486065577478570614220220658393449730497601346164532807272383318568458236390880043457132600282409601723199301266908059582729966366354540854450424922342267897792372600696382759404747312583710432401827224259378020038885092238124670174910282779909682227321907618284610632068165423273455832591754989878245117686710348882650086308017826790340343900920544136196511861622810319816014750333277648838783627631595324556033985684154496124061454077552512676547544248572186984011576635039220677223179919650528417661320307545400800577964115887829219477554029566258944237130620514820381499848147639184814118827801283255403031953386245994449900392803877952849919703482560005656246520537421694399489456436595971412944836584764954987442990706896856567982543979066212128933631308965310214791457390473311254981847848162308682981497022546460229064061290853610831106617653217187793350789234147336235236455136925274601289869530021618666067977115460663266189460263811487658740537090784340283680424574617855932397240066624148573512028546844689414834759673813957966912458291951459726481033050342155583747774820248431578913195337882697645154642261104221589821021007502097300490310790070366278615423757056175188632677888991880558304437773138925027365750045576190401637902188416130996092917446599389523238578977824276104843230914379126442505215310132077740578137094591702623235619252470252857621394177500749006473191305886933994689999125917802273106812791908087608861768953196064794080562893681098849721009838511921727153279318013732432829054458554143332789096304773449863662610125323926533380216930874006865335218988867318293586331018719396318390041777559024073172055429150383685652686277825759317126548347512567350636571679170011752378641118807722817302153723801540107972311800093712313924267988014887615931282357459588033308615716189971091323331894524523046497685750099132395983275219084033972373184034483330699948468958114819720793885283476377944759990538222050722033102017184847222575192729996002514679119918547631623675414504205872592894424079452717275199361729267972508563731255148311983051682911288344576279473329301360197006120476970960566782371454182377397290630247434416136023515657669234625390492069884025103104735976680510574810923239636073177742385330631336700065995648188408135792333360749403953162038191057894972711342828514088655604987351615378641619520499314731887711778133545639582465446888442619047451686089828842346325358951128214247098796758707563245155917538912989802818672346311608195877600221654083658477464205541096525525052236086840453974370891133336501409261388289012587187609185373121079058454956918253467313693688025528719390218228445937876958612617808109322429491696168125842819842663879623082701265239160357506404976410372446013688362345029894327151761535864450785866636684532032424431812759372528063817476490088561501274912567309618925711123276472887026180485576205605727732984964084318567228936764834617456406236094448778280319331546979752713081736822212794537667159974274696185663794125865916147851356847519010199226972370228959587844251190632105465273307575406254130944089396846435210575080646292575710899091081059693801847226737618630171127038127169491644199272675576395788019709838896002137640982521953551259248821875627530479320541605954215202764378834644725535351209026830881801949626803273812698812273745845640066429351579272707178159027766788333583558643791284404090551572426205028210483488537947283499084129635228357449617977468266189751616202979604518539026084876165272508501972712477049230423540462174181686886028916656100645206121302120063783209241488954061618732659065232367215001758085332853461882554170320890514938335237396339679596912793841145720731622386540491911127048527629774047871155510947995010499419859475198248538900739667464903533038020450639287887448288049562120798652851780154884845342632330954222219989552848184871642275384213680081611382708247198557690676103850442036932560676779567170434456183028699658420683488168818167125114378537948354843649237663861556780931317235757410978957860885628095469434397068646952808187035865011017266638135376834992050995406763061647117808084531379358138194072503391870147238327309008621756039773928768677242420395536935475683134547673844360670664052652700027703379585807014625440977743099441007712704752363051142241280646866408941673455835240469416353366245021295132414548577162817451304108943022016269815569497257600735923260930305841502074159385960883058674465550984544095463618097245472421168549877931803882494273065560607027375255430643708808353363625274023181217713466996678259404436806048207791697858179949598623897302445420173230122999218531719498982571167472865368357900445457936000897006150428189928080130912191272728145498549424740835632863658214922486284924023146496718582385666555354819161017696808955158387068093541252729842623939653991217031438854256229630194597226130440359280247095639648371034259772586495288916611033623399029761067171667013313926672151138994561077259082684847482147561230727695630579636610044304633994215303757994284824269385188213733027503926150506591250955460260232275390906888349473879210229797079988560948175135590601630181468209453762424168158499023894745624305264990878420524828800726563122959637111691247041512293359778693776096346722231863922841267781595588873234539864560197725098777261448273278137175437582052584532808356610683622571397460344903240287068439785219245771129801015380797305293799114456737408135959915319381030186453146073268546764054697131195892735736506742075408846530421021865627887431565453871500850272134025772348691268137865920200829901632681956728083700617512995979960299642359299243073313372999293496810794509640068167660162331954441520888076799783547195939954375294771990961914652160488037720290326264495927376690395166385325686018021955329986003144890346440244937369311174729316880182308785567462533921115034389870957406517509702535482677188221181417870012253701983943033103385594984702253769200553873746977630436425541670672519320716195230161970776143493872673425813265484525533709644290867408623831890611878764678554681651046161862820772167676274698058820157956460688811211306511812572039396987531413845262255414865170540846470718276362316460052168345165396358152404695391594396458523070801810768268792544458105358315769709416162195230533219741348854729692128283396673838352273895751352588129936829287701722494317548549588309417215470150049830476359048205167987869585453582225303934822695801740997755286005396671576527025936186623691965138968802277247956291958708400243524543215608595316590634702845257745571356864636941423541868160156722727514107986406252573970425437840107981592763875474926710299129676995922805552571531898515652146592522365089750319685232078125974016127752146678268292746976358634321244297791171861088656180604472257496214492866090804407479516727078816333154348611378759332031327891397483507081537664636097536078189036527177906304224188425556018344311373740932362951307485116175925296022232049340484521790366788083245254088670300938779011742618032285182173499173171836875855330888165932710627156626835031808247583407852772846889534353036860413408478460770523319548768217267246038282322999337642316359941732204323709947733864683518752823287795578163945299209996738431780317873417469760840553801475962985005754205652219396025292354933794933560823075005733297570260659241391134641764964548431042191363428120988565734668888678458505407915599156700758443533903920056252143260450415959350812315079278638123279799622696098089879953969743769148311835831425926387150511015679012958257586257064180709929296455354939317061249739298531203671345059413349688456781280627332801375670679731576672056504158580915292413656984671375588607000085912168753965551895920662283238040383263127998740011789287460078840972617437676148093644444651328184963875848621059697923904148881342851903780175330694658131034356957157154422752895862782078156815412878857971373873208393440527354020529906629950900276715002820251394885809636502793768300186656298209589094184410261496057433589749992987936217315016329519177873517603960184834720646612313127091513709741097775780069142998123306139674509641284642648349342508519207824189068208725795346214228997373975715743415015252471810678584838020349454753409230403591856514124020136428391715560366664718486193411450226414431641582518655051852677217483016703824874097972957216135727037855665015726632406742742567642119844872005112107679543001452075338929295333072432628214872395776191727049529455543308330057075857658792401906927758921836789334750476109929367249851158223654892289518385549647039065389560789618096050604460932747909523747805075607595816628590433105427063276421666118800481402852228420642182318557992489497439416430876220999020700101035881965911412139862782695661345087031570316895568500709442258651198890725113919767375634106367322546078771806544268303574634821657393289884957962324442701174591053431607833230817641235659596898347188666661060970765548615351338044838587117608060289109596987038607579531957624494312389815716417279103420096976749993007325444111880263345235319986725341581662672662074787318190142658481680598779644221278689986674393204929906625838243549772032717857118317625345525107942536700075457218327839889925602034834065100587763578102179888620137618027269203928122974028910679388658117988054186095392156035327618654124472539369831889902711528301485163338808990435472040270126595929034117973406289713231369757543271118083849179849521142917858465832627666647900096012178500928179307430102015138239460860713860063183193327319455951073407323344203210577940158612805709224444429059678187195976671698127066579250700914389910622074783179464859937440284532217384348599569106529261182932936928905855804547763378091906588252153654312628651222192757547946376086609191155259058637208079932783229851380263958874522862696997768525773883858851753026765794971035523426888719385177890784226013221058057351831665234914886193972684479490820805779509648652207600384481299749624562194692398675056082116463205789001121974078986054460462573181687630791168819099392902680623379173208266666615587986394641785252358523442986231511251741965365275919079108174189891843824597281497994897406946533216943237680578092463284965358075090389352994181241272800047238503379352046801053927301961132247549567404452746900803701342473672630775588666712019516019445571738241600741417571764521499876983176600800283692044747693916556304438469280721717090421474743774323214275811185809739161889474027888723166649005471291669410734439517317356206030963954069904447023327432789096133172488170365749757272896140643524775912675011189861985451184168294748387538566524796866273862534636803996227381211613100141849397478693348132838325105659909858803495346892009837102003665251370975726685067818070382204797926359330222662422819179570637513499275549717244479928996572483693649580102944175703356018464481260856176645836979346437499390457256285120835324188098512157839314737058127030369791336653535667220494295155471637595456842449661139642131985916818140807195815330853118389259182445032332921958515059648925487417330180266608438375607313258863818977383119357721564422802516066993003339238538141991872811343346995673035630910229638682992531694839962846056462460400067820717005919995109041965184812923676256724464930833342314012989032807742152002301810220272209222880824299999889514989076780003217290355499987533748012266741141732363799163190199312412409500143078725161581901234126371721200599458904731758881533703289207079006007049839501461204006257212818749852526674606629818083621055285609390616984649176243116790197719354570443588772654190001295636214375968314451149839060517543662217700951368452039722202305767040207757925160370011904593286105738956913778150634406276827589129188693328268781479650496762652488696508675121280127273922672585502111847715760979423833266010925791117023471826290613415198367889630301699492702252290596779946226995970494219028194641241732584264815868275934549986499209736598908232205318079126530561596764418468852806294919595603246138285268606141992129958996540091584635539406326168704107517406191249193778942725406186610513144760764185613579009144922203738022510368921155232863083754752256842115436090812402227699945250035735156813752041861826263348940626344744380047358585211696917790929953530116856390313205449038719707562491713199498794764369932353230157239228249780589541069318062350916519037887304443383270694501732906035706504525438649375183983337071209114865869824707369396608563737921244666155930058375334621814624159268665656000734886427041356059057278347934599473170086134229307838071523340685456643718182599653494761555742706463890069463914316467685398102679356795778591101815500945727854930158452014868339754338972413425967360100638327216153930011666957142477917340968547429420031128227853966786567338271263588192710899651776555795388696155143422680279238768261747327513536870733184023007943603181160457411577036209119581668807850925224096134991991690846800747496490096520585829186379425267077915374063553070554697848747786963829507228684267513555252719615914048947967223292938369727695500454345043319581667759302570088709117222176873457076133153368037397671264503608324057945900021920291857727214004804159089154248973221984649294232592466425409338806274544156932743892327029895929867597365969600858586591062293379252802035358438555186472599725802131812118277790631352112986404302601859878657520116693498226169456269879529020841267107343185003434066313792787279945400610699978905283471377582031543240678592601358377661109416093223421157198773989420610338804025409695087956699321827677907789468520000151129630621613807458009909197061379648966092175856071801356679407393547217578302539917337266195050204433935636314697435289885451915911667663459542167236031254963040296318336238295300463962630061151743875717369436581660411890506516900360447976363757463882643378887321117618219054112072602981973317340983343844705279783974933708020930320776072478542610123393430732462796252087149402696480339816424834710101592374460696286318856853840243898170772132635371269939577384201353140512110368814513604436417162646544128706580293884506422195838140138481573339685755003756149763751977538459386465199490951747816422838738268468290854535450344886131916163411963926449542056907022398122113079005918986670187972613347161710207008293803739239067584804156300755791597468469998692981763459174092466814974799358277643252364950288819654938989738161281213826804108652068669456726703254412456739292527470906460537783403585910135939475542577042986264137618949395910850856154142623954721353028912791221093558086852268429218439709001784730413346776469642375914745682044374493718964810527852400385788140456840483825711189534024960244709802265704057437965542032905628457844871152480528636470633689131950116352664669633327441783844270692971160580163563802540462234968829236446131619658916438092498521322546059086302104454140941798944968272431823640329193031351977938678003020058778997052415043822183904830548634028736212025567728835626156054460891659502615295452124089117102350024128925803706065378244209185879715330053782534020877056165528542232919745279549011071201982273544257601740322197707844840006272440212521088013807778112027371235758307888505419147855988940676541132574129173318883929691294791220822175754919981580091787542817792705171552761008855577102820711138739323029055198825749039318095627067408451933034336751417745558194718530637586303632453400504305598454082934679852223716431506736344081444036492434372882714642427071950018874829742738314715218835652597959525666274503892397196201105503696315304397451503787392315953932108610703353194326523658148065636464083287505945695403076895889157991487330387649190968861421226097436987952489849686667639758892230498077210640149617503899163305762913822618928744646333138249812545150077762957170626841495359894212232114861457596974443521577373063979685061184484802500561849130306274822071321337608519448085605709830825323823070708764469526629514788173120819242608434729499502290745858134063839667652586935745471442799347872427654738054675111206611807933968567221527313443229262713848647543650117833695929158226843886285802364562623651871329879469430248308181193549716117528130561073172632116398611362741340179260728439141630131720846574521423295190217301658105693197402771757859477544730531895577154504855403582348646166492234853243694825836303713701129103761691981452853804112510646900304876011409470003560389605369547253984500520762232850919726180771312313629804528738290624671589035651059023639979475488844755626455605552364984098014816304857511786100753149444755164455761429623069975466300461178930252455209730530645644241593478922426762833749464598613359405091319724206581023755288584426037675817674177859040497757915512938713168776384299413671500011714634368247695317113690041234834953446085398685516977894536081339122514203804890667275792838708575286494614025064246956062238527081080566126684897634896584064575683548950050174762928064137457193046229369494864505422251966105278866100731433373667370842075260845549507363146516133800178170034725239842004207993559268877246019756522336046301958222609809135339938101877329913011048693925243512513380256043809560875724062621803195652341887104849161184155025214538091133718594606809377708476979596533029862825424534978407922099992295305806224924846042328531257397215207662079737580195459165865702443936540742362136733062893939792700861485251717654113041015039599146967339566124393580746132581691855710690406368020530292880789475876543967503604056290380237224182226590325867790352315767091897789749046600060101449588915022238486648537580797764392738363924947777875686300813289241476751970495651232402456425312989225910608872201989540816621761315547990950307765591577356440522239285891492961703352341829794037130937362255122022372215139416465510635223509341377515033826001990226404657413824380206259428999936335715897102176940955645110727500237034319695287917525949756818686103688183694815971719061910930675101842431954276235164213145667443219741239826290251477475428723311851044195710785178957503862383891275895910293921889161923816016393693372292530003863611899863323959235012117783425864662735607010196785572207222214360512846313047415135790337455756036277696758639246448126913457451742711344529803225398161965547196580048575343398259014234940220801424130807364504438233317591724982411505872848121522237093108016527126494925777164549046069687318525017627514940619518568350852824706514447239224260389816529019289175337996642541191681840134700856288470559437253366196568156331241307819992303439766663381827983638049228102690320729818949651723909960991385260219813471859331478376276519460681040791631091975572864508389997275100317224638662607766086242564794532271450812328432238291640823992999602936227949827607210941339944812819387904673295088918529867103665765613073329322375577090608751376981508569734402221966203918126058256100029522230894981776019219469715856599187718809763190623003898309966802221653624889266022920721510842604879897692002005552618700894678651343269877117044888014092576711240756277802833173837714316659093268438807665569155796018131068519032313256336780156389186073517163115395745542314314861002034304198719294319481490139765912994898121074482956200492761830174531285125646711172241095222207189654637492726356005654216904676588017578923682494407958425772567444578538670762217930368389884865957263862719918639481705942841496135686451135463922941441129517380042596382220371825319810560332025926508623652448379060313021557065972632990179048375628216047430791224136127551878462525986587533903264836241743999599943418000316176041221206012920616473054023307786350938592856905476894499651366974642249907891749869184750385732152868974627765395849238019350953948999220135781010591528678046029761617218979659983131134286516016931794166868966549450746834950157311805065268312273880518259155250303271510708676044157851427891179867681500846777453605879666874122697123942271957442244604538117218618807706336453996142819280960268304899505823604098841784874040348586692338749053845892773021685647112451498397786204989149239000829394192032660081847490403577874548612704907807953448934359580455075518816657531700960050056809908484641116677389404135044906513883896648533126181604267611213993573665845670771465985110947567707563875838091417943231080018353092304156274889929558103605858677675119846773696503378219309492305477876444904398915105504454957999818844380176520942405672472025141220528645964061315829614494557881128374022334702854461994916145048104427230316402480679977968672928321245746345307210327236387118952613812493653834778320419428130274539082057834193446128466398719051778985375713799511701243179512367270275552417990944448269458904017364043069325864422270962879539200821039236185841173033842724561097266768927115098293591144487306351682796998501905752636801729408648475122482730252501777369862126072889013625131099242834689790986075339246324941522160046383321773993944723659896536923624337403417304105067074289549526781225594612787306642411896481661925351709410040648557369106999786673626375234114513384723379528547214207170491599484490913266802137329099803458310547007058155250677673650448242652129554081100259117082865856875257109522943922814125369027830861014213873698686867939080338889159733811796051981352347616292964784033048681226925838663975148512864514527344073426801712061320560061466261823623749385606784651423767397834999771513808181428793339696861460035951696160747264756719190764282483842166170878528528324306771967417785056301379438517829864527354497651347194722824121194096157088820443043224483304039308326470592782182582272558703332957876435141502912782574820185982934366007371408693394301719183625180870317566538177789306171381067211693711974832081900938333342306409980810828514099068771758930866419742803798464949783714859410351027543257291935764060626954826446969551610237085538459997695585789463990308718736449427262814620456161096612431371130432106417265912944149234982594515192479017144404664580129976671205623088293612380568330586203257282461957523454140448168358482952649665257805901841797946097732748266878698243594888788485205952632568906649399302048297405727062128723113872057822131218591283015879946331537943616495593908441529377379033692806338029450746513262814082494480773482386990348372444818868821419152642722403874562235226521151659642358399703936337118584526438751252815724884811741635553987397448851852678501578758470400050558605417124816920894100248334260032466351352610449087727415186339281118311729239618366137125866346781308289056134497938885142565309622435246280386532145991110844318281698877561480197162558574228160089902748784455961292098863533731889105396882419003571751565621448872511746353978698051512316276736728477457615995635212602682180621033354298301215473915376994079642587994033741775023307964069645310521699388430862580205279910739611230913390512669828725481973245615996903158746985431629388987159268333250561538091190771870710712850377333706651609179503057514169366245816900657878989252537451960979237970830829700392890864231982762056825757591707720133863020387881546145764125683012401999192201945846907861810361856446124822972446071430424389043814805258231789229705056780280312184386908104190211265057174427528460592424319865483525872303439784238760794736542959208872527027748660915768678658835371131489571432888720934706195438163188713662106226680366736436366834703777544143003194870104053688238068333496581808231950818773303395152384436652249412384356026937064341335091129007605819223147837652410957850910721424070235338089218938921294438594775213182943094683569211673459397617962804841924004659686087263148374471709933069958922523849321870546547767297321376941058287282498081821886339090302813662199812891182657588453348163496211073186386327524491224294841267785358769049725124023578375153356694966320030188524097808362737241658755890740741251942352165486294247942587551604850925917041474116863410489834421866315730739738955843403540662872035464244004693474554977347610468639226306556960727995416392698322309911352389974683061094297617462287477354823815315532878215764401498764517177312991321833773854284119195760409401812061895074038970266449616236013172803072923421816137159246434126902314338518006482712600021395780966107274418022212141918645190960694764876565691034166603970286723011652596141954625777653045084577559901882802493760486665612454337952551124631924995001036272914917158211419811781429125737778205565043782227903428723075196422253150343211718160923518760735988213431789122768870583052767478888074234419392491513420498020902775210988517106675495277757529871197704488666929660666348685389319469442346819918025746786902117328350463568195327418715312845981293158672374179917468877092161829584787875429012588408430394617216742955914719149890453609615729349360114979955458883005772934562954682958211125497042575348734504367396910065326255560861697803426455919401719459806652289458554758505451121412439258560164374279908345311245553037163206730160071397647112848973576569363386354749549482652144306031623953260021291176141566660229768741080817541466347636375535190747797785279526128120724978580971225853331917927086837320189554102800882635732964550170141571424784286781852426560923571548741910405900411567717035707513347925643268988851344317346062579780321701127797405704439088750088077522363799447505725780808427933732085984577677922491107531473839618494538816796139683653239787983946836774173866384711182727394078049933203852127444754054121293048402637649071115463513601623308152841451079125209744058414835395726282268379511141593288375645743576431221642569485486172068953181907825408115068120419462544957063675953355261757902586807618091996270552768190656686959783035898804450921293645308105974202635645698376310823835650106697628071578142815014355168743950806507080268263866394007055897826794483604393448554926233963331836766681602267733472774258436509234628177274873648843544187091740232309915158282210783391121556200778634994724930738218445812475495764649868365726573081404850338651897083158397218746832946422856507627969941967435288298823776613440071338064275976551968620934868695367614685039418749200326563564974962509027045615760183306570621595681370649943194293081723248775335656378531141281300719634305398835689720093272769034749830763061413942651205703578598605526968454645475419428642677118130894674065616766437972917059626757964535307402610636170165248832532846423112273543112036225677054922660562044018979422281481677062354290838936026109698281988354308737947183255442510630497059270399440526878312139224832545445627993133688452105962848180175158088598872746581217049326001840249457680472378110737942502797965556533778650879586300185424781870945223283419993369637653054709405275686604095712248995568649788140678199242697535049686167082881286865179627131479874958823629778848392423981929032423931452576625714799997629573286644216740696517294114944364546054786331170985053918981266705284532749696836702269582612031299074554556671827277486171304083573953461941947580355813847205973324603307893240499185355766947281832285262249541237542183129457047134307767298617792909097583690078804499700955124014466519436699276396610609710190594272303674428153002881469660693700082973900660501800155479141261213461352997314348966409541683788639950555065620322121596538212513003668959662029672171817497369880424421327766289385775886757644236816120446298875448507228453863433162518501762002964680008111809472204634992950427336002001831439486053985857329514684472582115674436331207687249417061019468479468523812899260034973779203321420568291140421569599843844783345100482131295377392207285589141721649753356668556303020205450406197564924925866176675934216033581052000668476648154598836097063335746018070539941818256143296393313365678294711518925619391812381376723952561806998198570441514569738335931227273285854359846731420631009215205801464933061834365140255904128763064147464062277514623004210592703315941302282636833506023983168051579615749696668997219041824140249093697883835289486251546282856597325912272035041887935684145773364533523987625720521677295921772138952849512195973704333103489948624238638810970611834099030202338960016245417093874574660017283995283486558797835120572161782931861986872212948879088532115890493039183518368236410739544950057718639712452611044038184070215116849139207308700525922053640909641514966480777054680633771276029594632282418720461144325471209665123270535555757234577538326528602577570696136440060044859431961348635201810176521684749476719962440146226693622393570170180827346012109433690085925812057294804964507253413213334543024301536094849479516243028428769608700953820072544959848168281985450153525999424065694561255097403699222533561110776497423229396816098945826479999276359324700461206618594973001091567288508399628815249014937608032666934368827894547961649271129192988634750580436484063296898052067564045982507033199621242904230117934005429167152362360152063916659730617330309037811838924410567248470510030481560697970915153601754556539163031344764816195265813511815921064326694095885387894621852251416592785001708544997468445797875955921612409994906315572214281413387303205720625393635307771412647508260155171023787030506156999422361795035512027286745266481049911824848321071594288938359071523774744773326474540640706517228718359094476975849203541738613702938264517271880247305471898216720527622746193253921154455156564763801777032040920674623571066734868805173710413305639336893847037607744646417622353108128545548630492572227983908669262521064670606454320229701339109422167103482198885895103960503271490203116439376071414223502808820263898849847248530340913131781167717547700239446727744080019077425836429959908981835874927232316808474695404749596921812115162278188358639195060148281006151365896966029784381759438923939906560471077728341671363375231729301262735918210163670707519550226265049950805330913035609767542455714907113466956116946382005531700553045531150416997118793854897509980307030466640771581422184073552393562688862062420382307731634092684573373711485160598480049921627684862996829421927081993307208288016772354435967129878773341114378334962659205115131011865644805579448462918085227308980250287300089369104916270544300310939353618130980258441596313615400803872411941597795570121857529874854914348498900557341499974464231004597931792984906311494420707099609009725300375682399158556271916050333013662739498681486160213476857413167831737166966560499297656518413139114570617714900394066436661815563023783601649281180259263929892744181265859298850078665270514242311637108208994043650855273974222610095155276829638876407202098142018485324074970697695781242893144123821583742688263773051163670773998089204642239417875510137837851875746578607641838066471837483398642003017602969211668979922263462841038203970848237500770610577918145841687194846930452576861616148453529209132852784655362902246792349125095488048760367863043470723633193387230102233668494162678938620153346762413486854931199754732738694234185618925616846217620912929046462427085845539416463531536364433387003989611144940370001604723706099804156269380086435640058461407916336122230673264430222047603246054036191463087340713123314484819061112530463980977671629219796234656808953641203375151787443041061618037389167512003081420519649308531477219874622547033200677049790386060746940441857654170344830731086275239475456505202281814201886393795688510859637335720797642282968388615839342212970415388595151737739582380977505818455434189311099645907253112126900341551302839426188133826969739233541313826541087268014298160017686510255604813864942597210719103351831313065770777742895730724942372752934585429466144221350247216807223539886394720564849127351437408398589064031346660101798201205955654619113164607682147873581600152861658174588124300021442601026551013807830817787691471173639141787962735288682923547968108763118315713750683227129708682792213554544969946492385561554017045834953827702394764368717144972037838281272259916336913023129796407317015406945342405352955207611568270880174215608472996781090446810056853924896305735765084325196707793460787891813712547290425790985867996032717047829376075160542611907874688931092694228673881729200085671420774574443885055519140154753388476950688084216408125712305445441364833901825992620955165128444915472583156308683718000916578522901601012618292543637938233397859577985257587323956573717387220535904452810931599782356102682705595484091018860179286904939817579348008264643526220957557449122795562409209309950151245452418910197439518541297620290360325742250269228419329210821130755669942775518187171870756935881457834376951054793470445794239848302207050459898316732413009628496822241466935887393105257723414802910430820121904129638514156362021708421863462159894506247547875873791240799265662276731467124347920796111976130404609874117182340139092346084836003865362743311218231874404756238891534343214773470046951888628570087102961257879683914974639544595566252324278569556937092358843220333560330139315539791602030369894695453162158876560724108099555615715308805094192179539095170403823752958130252050190551384684007808568499387092137737541736373159729615603080885096281631725980655104048687709091182802612914750538467474994587655630408809621533176161048039289283596616471823876604970466739618592773372087516536397801439572853022465256900052021375145408061287232676114046450411126822952406898157419331597740773273817203469532324474578763113335437685293326462707239088508845620783201141637120292768835213177649677893642070391663358457005890527204862045266980076316843645992767890751051520439567980725584017234257479845098697270016914800963907742192250341306627190076870951929158465380570163710521771173369623784374038048855537136061680925518162948352600171635090164161304730158324637463996444550001606729502270755033022448677558968724507497356441985803354716048208266659150079208168302222676961827141580550559128420072919312041705995390025514153446721874216012913291910012753413193776706145268490995196506944073873186905945567501565634343276969781475789529995719238319742157484287941361400298253812529708650395325000738937721020612612219185909897722038910544412269865169375381406325646217054255387814815873941064853322481385347579345899625891025570874666277469435536950345300457727076990885095952113298380903931377201631007828062758683792118169068289407638142059443364556877433702515900260971129469204597316984016774033499000387430302336182480566710073702278982014387682025900766508773359659126373958236518327792459330469372323577202512881034649815146421637742519772552278625181726703251650639601836150083612675821679869690837140322467599353912783129960030191778938970248371081856586375651614988316115809688764368224064814693026156739876418447347875481044187388545381484294335666607697271927035081505652974160180528966952413752631145235730933558421805498807307885610809484285908363561072266268255704711926720217745426732768350417397227693011509542098642478838679902234954358235407550539869067090845487854536569573293097084242917061851266286501899583974510188043573734066120568124773447646181159568751786598458897467328108374672870017442749282829727305306682537012348027109783090428119976870069779745922456786432041046097843734640651611417867616746678897360777928669849857991981483751616303107132979172940042236519460148351168518444661022821939986006628758537646816813716625604378460031628130948596637895781962981680772399589575858755994027495657759370188937394382679022885178596160282042460503303323455680138707450733768803298911090571829905221030575855854514529075734178281946235753019881862023817988661893584866101388815991791418085229778847122695482276088309039991696262808566619276261261773478268146259071538517767596595291283693434413381336971365817069178436441316059603920907208937990011156192711329334073692669400306234501649799120833801427233066323395736653472953953634147634935322514004232783319460923193121482165173497494902061101003401701950537225699596133995485611251876484623429325545710139040076195023057258933077670744139527417703079978705764134180037890931848604376175277398387396753736285589811117715718310310444501192962172910483190809059988132767887672771035302861565017268142372517648768241881055618519082128210459783998848408893262198297039163884332557337277551588769841394435027518901399686941121263216960245350538801796528918692368603833109349338708724884348402506307083234596779556658258137355712587348394340463596779108165900690010317727356720959533175805242708190195471261914202993906910361328505602950220661188674291449405473836856077648237334649227791538165641639111747467343861870855378435286412683339124568579847386913227980266166712472504395143352806263937113228740780877306060387900869602421628720026342140443037387804154594952609604853525121825214298997800790175284833570379027006024026858766178088266687408130300141801614957470251924668107680378157754548199710789843776795307162948603655572613567144049613417250297886971618569334817428092605496895980495977084795094656987326897298430798215395489719442350499178718863936311963780040641040054472492880716912907826781558322075758103569368101227034830736722270171630121216637394464231680705701597673420473064150956804111138985947180326503106426034914457300708241513572189529089303283209044837029519772084155190418739006408289335769941386111625458825868087384382870661797738309520665587770729455569551155767184078266934887946724131888107449731475256511080059866978657504472295923788424856021261294468030878110376900733122697625565359783049587991274768883583161056062864283055897301323944245880563374518069446156356874416170837167023324661945614885237074578369313586028677428906260027070013202437374997640768585935571328500337390097498203592145375031056485008290773063224149878251864496281827249815483020478765964086819134752160731708554775469324370758568617100031507586764440079894621384948158794759516889270338541702519031105057974151831407403477143802734581932790910448942058513213532752959782674772336851763104229685594211944130912318706090237455649264723291768030364831654475191729371127255497432870900049486358804217756801549892489077736336108797528704315800142608918683399162769260662167346828693639695565213333940928635683070352285831868686833774724090505684946552457900410773734709801404160402459376481688398173176994830645052604254151629919577092310194959961720241590456565883278502412962678503898629812290531293228365548264064262322959064655651021487571358532291211625546266748827149369192461287219319947385774556079249621860725558003840626710594026417672985044041185177833778827061581753292230027726070048211538200248764306455857646912838985618933194573923938025061674695149607239025317404746826586481887620342872996912222260297756727487987435135354428643287834435567676284251316823206898918909852236051822438468565180640908383782673880077096960395831464011211259180960027286963971084275540622033382841378152736317811522277742726688587988446436833110731171432184850752804970853424420773288853059164642184253480132254208852665948910180899947788461332899565777499653604843091477649769197011440775181951099312019820164686078486662397597794583502869843480214052694080633512584606324283177427786329399687792152541908653445985981452828076224154807956466530178159162371784936235855149504897451855234487577600322814465851545508345445079466805515883024898654459526106075008864472865771080995157195118600676970372344635046050014512689074958653790399756592154900239841990107155082165463892316441726384893299192078315270517284145147814176385796684683689378475665028663843837010420284500426196320111797039253604255507325444652960332251897265400596965612985250142045255074550729013281476653824395048931570098394090941893556132469698772423929187431973159808804287188434868257113756040383730983418737382595344361128270650304901727750767130478739538806060836941727832194144288228993958565563661017065723959403464184603360661780381009602750536874812215927453781875707175286887607475365906114485120413377886094373378456927428533109089194905973872461421762442308671432489616877086625193511482029296692644191083189204311008412186576331057540438029569474154807604403185407858270760638708120713707775095431352109854903026528812897201147677895187424273806595633352055795228633625946688237117889660353371667473895938727149687940795121320499408808775940631417399662230993879270410791684739884741657925815390877251267574611149043367032044664329304995788691826836274411057542728610396620066835292000648256048150041826470511016145881671746310009757753779280511301616002066921925286289603449238718919245920448016547795117714606101067773894048029515435560690869067317711947296589701252093059988546921193775612462107420241463169416815849067501437416002991886503038253559649630319846687639494737992136241797668478050197180759623484679103446792837046399548196944938335842091144221071314879059020511870840010853982516818511068566061317962231254451371864652393640682035160465414844705649595439107006578789706757158531974732944291161988581574692515679162671421974930370814470344036484890887168326285830746048460160483982338706486067746109976212082413318662735796482044064904290834762380065078828850792478321522954050649593884194672754950324904437269336541513083889881644111070063088049110193810124339630091598197180922043735247258751905421472889878953652096558147107512003463630499680248820127002084083415968390773462164456817333266552333699036448288936357400149365586077534064893074174791801596259185465618901849520985129345292705343669017608953663324936071345100340405224835404728638978355649205975114777455650251832303565109385784698068970614461369878482129423663855356922317718882589380820128981763707250615098868794787387097375988979243318284936708419113128382145688147387203027227917559386904757731710720031266687288610345593075060023894385269590950856580973162519839305971422873730535346740190841078667213488651548494755375350303696534172601180662127721911681028114691427082865148192100400636675642191035385650034616308087711199006004686725686703601085902916855884234796701321423702157860916911539798118985428965940047012304052618502216336706901662673192328630820736552273295834422055350138428850837314815628710912845769714641110344259456573016337726687433338852276672870985033110322850410730145606791375926411062401835746756068603474591745271578344838862115833270825042472346609119496161872954517165847179381377032687910640762905850135051515960254405573290183021177173261529326737570216220265407237517319219640750503012068782796613486509044071153174067356892079457085486828307308528420732464786834453291779789377502820776119238619937185722164005557588314629980730318559501028030162840878139232497609220414121325629203411757513625951888312469177792119430659030508358519887594514506214814847447209054425099972114748234752338300081729666006797969864168577965684826538365620228808580422973961903254885114674312896803293582027264473077204718762711005579712180468112017691976296605560879883278883050523112959258349399242072649170804171642805353607886430939055261435379000386199162254638898833521216859646519649143245602340221400298806570236763254175911176384250064484897170858920801268854927997986940376226622416319301731470042288296654433514578944157279724967979524395514375485070830231061499652198189216942368362350739063940484407389657034947862845095355552646062756887808039921078715131907335063435993161300293567407824452654563490233622534001621325676420316526466093832625185543905774819318080793164240877058645783027958911019318160544128076266222919461020182731627637006554381836671146017188307443205519585654586575196552942535555687485745531583861546819678602943922010537866057878614903451140773758357711368162867273361781308139597416529680625005842526273779209861130496689642960287249082522329960540886804638120841228720434417468295802585623491230056623577604972850469372437203796668344075913350285118223597154582646942701575903457860820369216648035308491513689763896178140197529972135324211842504991924852805435525455966403203380697584760817656725877274488638354509691554598478106533891587752248151249701288822646419329801976696442205486623470960249542003761839221768799828335606199925922812145745431134203707743386611218547240015087301048134514407783675910931618264629250429856618920236648329739360198292136651269725819145137247211666204754407851162104988613909291516079068032224161078720319122267430090550198764834598893187345506701721749945707828683094569871992564135343761340410204501184334518353215583475435338867941736610137839913957102165933002804178691867866878676743770333242003826890056762284327652262612133005438048507934610463512882589475411143820833825453848128001954113578804328564431189581760014615229009953515994541746731984813780369643443492640770326671159774939613061873264335909051644431692711093631074743640398241624191624518442372045270169032273509819060525213914763416773671999939542274584825384478043612736567841345935359047077543140132637954050189198761375062446463744771235823653454229179625121973606182455579306905796689291217420950547553998602302781960812887024786574305388234501341623968947382037778709259778470756438617211939872657327060056771009278420857705077912257770891561774041066304339808437553848220696872915830007090084288730546963729118940303916113512566010151993533300044851618226389570155819516014135420620140585534185317389072588115392435691803034616052779453941537682030570705825564294066465215990167703902174036927973642170141473501285168886386510905663568789674102115017472708937163586111746086193813556688232403806571968803780829001184120145527155352735761291913459081452358140422241909918416712431482681184577193394835442427414319897298331859513385470933502291035949676769115763345153723568919835066572049202427606039457949397406597072510686883713131788615188316033684211111837864037509192685176269211506477838734015469062811899137033063090153300697347795752770721704947408794051155788625337680395296497225683013114131874037092972759440152911845466166728834999606888978604238498603142786635803756837931659648159010760211571402358540936788981270689967757199623204317813223245326250549831402053684261457807263884453730939741129922248159356900283175061303125701191003037299538246473118519970174492981878963480622378412514841218808181566225275841285585681461136751905337705046098037950781880478752064065512723568851727570791615089118359636686801718441535710813165889920083187508263535263821365410678546085044332717412559027224734212381653823713902968581312673985875445392089781951614546686932717530190721941414151318132038939420227990925245712782211070909326696809741795625162660304866219367938199375179867235608109516347242646964079984988749345027601262537929006360170673322614196177422719601372950037739771275926809304583398504127468657004478572520781919118067013653036405977504518141607821649324897089117210861135853000100997568670843851005351861654732059853743889186428727124000850658780512642708741170739199641603840596013500838380594062192529343885089187748069509116991075357225812169951619906057632467094820021406580266936758791843129975153969309763666617076509878621493958393407574735171242440450509414533307515863135639889826986988426288770796058700202049979661769927449676455173434120454164318223844264379054434518613213894156614804700005992479260231398227167178256623245274194671496244895873060345652434466665626054612720521715428163005234604270665885314091951414188868767823775151502354230977681290682951647674869410637162407830424113114193867342210774709140794791990131492753815470459581079099864048210617836506074028344758663044773866184349224588659547292667555269485194645609341441126722709682272828867882567617487354118282812049262272556521263426577144977612994534522725458728381102154729556444841678477275245300913162356027039573215295230426189058933501059938542258937629740141914915481475975449291355195299079054322911864426203353599829572483821178766078052955745173076386340179455299713290076572490909461386343912791093427053979611202185853706391209145385014086758405905042294656034411825455381515852685651495730089173790694321901410183686856531969375336046264141333645502488767718014477371537182999200856817947843336349595689491412334652031626924478203440458574919146195111127355289380405076404465769101123951187855374161130268800620579515992362700659927151442828355824933420939676420184575162140543475761937261558313587950855523943675995896457851759966593569542089753451234206424308839725003220998106914868583764605601540221542086920441557011165134870553405640016573600659920230276871895521588352459972244619881608678947794573697240649914002046361462764231386934484837991482582744482656936959311599832552081468417467728351358204939925462917854210327255104189355388371860345229992513846602229479443983831815486819291226871296188625643955782798495695444066126823704671341223856610458225616209677694272008097845936784934125684892770580620423781803485628587211488423169263342906758358226348781319726097055152650312131118957255360795638440953431649371739673677363032632799156881309399478306401555515922961795419294432086845337505248021947254756897641872447505856913569791325441073961765518427893412340192034016677317931536466956274585448587660884892442417992052988445377785749541788051575357995507021570171453094577720669493048865077474549000890949567840458112465357568481161365999731957642912378390055355017677908128943680189965199518600125443320331971646518869952032851601072622135634447478002796086833551614249781764329095514947098061078307737223272745795099653781766266324431830053440330527929647806396438342175402895911341432277156861168970835970635987933220058679886570471485367957352689333254778559166449684472328297907855886990143417787285186763657837773623775330416567103080145361717924916004799284893094613001864944987800924231376668435580649687035584693636107477400356323620507614928145685501876964297408285243875436101610929307431385531371475271301671552291832238004944330149498650371419070889019979457409073531489919362538139117543526581080517853057564143288736750459030634230956532277547768433909150915406443905773119436434793900857228636843051301402550874992254284738571561368289652691824847575978552357462611048680000253580159538018749077940432589402656170825071759520962705309981225523357084289817426294762417994844094790985768545832638766167545855991564420030116867902632728840859864327182051097960499036595524898365414602289078028733066047403218629278835074246523581901153843714427719705372992940152002509907007493659076574509180346429405765703177024381998845841952189565074891749416342935379153966576780732254511502290890808357540641045645250429316420854966772743948247937078167135855476340971580899396976433148485497430856910516368933736938375659191901735032596384246489851567615847460681222979649206688114597606126128227146028397437499980119552991680861701817832505142037819624131257866227653733506482198892140995547233482408148103767984515772355967268038769666913678590564759196776443155454910644937716314007423596317249478772328110789667208687747491881081143866974238459327544939412534305320097913711725307059959489068543970317387771154099933253595212277332336908001962750244272679027030191150113223986168336975686190388193106685482360521485141389501906437123163419090730718933934889267002059801851664450964072945633896450663745340883115296125723518053367867555589238372366915045819515991690936045664178329251194268214057591658772131741222103571553297009775155696843223680232798101351557583508941496320568591512072272705429153221500557305023315680291129245460720983824652257972770567415100027084433089503861442260225008471082942385978386615148571567144432278263918779684330735229243639796636261141729264355846896626037878575205796526577201518059714339857902416747652362003204662701900179978117522521302692191271770862517581716240011539798312243497390450950154276501249708411194012881297153749474375055731745997995436522168881341191468437806706488271167813101751612769745474441224319602355013294820996893332329951487649357495003881088061866597943238980674861189794953754132608519213999939424811311870415206933378166485252951809325096312072925594108539595321020343728438533852554163157496621566651912365007162326435706190105789802066319514082987872274630154498125216428201261437239176365399940454920464225620116049009242901001655052263420691104300603528702981314593271212634862406912789655375032044326546075169066716558562362020730392241503324819871943796001287679104341204988131311944102478084357024174711154331291336848053501272993057061927356475387679520997065253930360288566886797287996916373581283514107989159248010422620183266766183100839672851231779639594554922348594234218339907614879090126827010417307167963674512634883092389154299866895434744386111302615386565527348224656769693342960499903935732840480039338594853685323277695966898085788324878937780310734831712387508144611613106074943621245779372826826175693812290709727231694130030309759679446461959993136902980331903267838364928879940154995909870898700782911957374744865914049440470830014278318966045220626029988696219380955049605632746519676546592403910136366182822824871982473574190999262006444317666083018190148118372502479327636130906444143216887751447959345646713408773212186531857912531230253128386823981117365875416943475691766015554531826134751982607680591035236642503372861931936846875611544554529146731903701385795288681205388831122004089170963383832588602754523988690641488538678707259672259593942721745460770896239576291311098515964858610538013160621933062830549191019146618207001307289605765750699460171042943928867538651133341773860631557360386097318570798572976559034758323069472654609542646731083463316460209413846070811213924794117805708735013378507191876167971444816529718779585838234303638080455170428645727109180237239967395036603447781405479817094170127598866679667649635778509973577079836260552920583227968932595624395862185370192108655928729619099151824177151976528212288947345814130525428143389122194790168171275296073518005804336537184308658099349612908984838246234963430241376370313113021307915319181920705031349798567626643765586859838897948142068153171719197921418182371532343863433013482432146176225171976577416655668078774557781936018178223412363837045730174206057571737685317123709560909737800581293793248887091058367125461168247348566162384167449968653356583045060353029144707685967094484013053237534940006724489186628761340724988246987681214770101931152828719567807919514058637901781051246241800865190254317442800856242840904748808007856516910312235506493177035120115434444759714229872704914402186456569609937711499123288902994933192337182691566253240597981984112780698582036688589537116107742377342495445601294923224641534814966769718018684632067937974576554008196831196167034656353775156584851877415442561093100372938312378138111444093485850921168426682249882670169997155722521882962636653025123961626346560518314198515827300450928852196011973924229725866164585211754173152082573512355090718411344342863798534375441483183635120388011214714477457677101481550969400099347758034102483453570425692066934914412404148118939611970032247642159891323487743724903907446226083266497492467863245609613873691794837069498059503220227268786534082035025629319661116104672504155837859388159380175412413343394326816343109119233694419488057290844704999393699439632314717317758936181296412757564968086287654345292927180010225824903024771887221730783555049258921124819111364694098801735732205493346504413367934626156578896510324566957832709529313878445756942230715118260517552296666581811356190963092300835281901419774080424544171812973470994501937205334463323546730530832404618371022614314142363449010017318489137141323962848591878007229464668018489639437594934380965022392954704891935772626523721875094203898425577520373990180933623502708773701995423990621782296102766644169249551452179192904008418580708185580758944989144803108228654603192578701884180221735352000108054413757072144174918333529617473642010852354851282669760002626159840489080258260717338599068915819086404385158011184905834513365427618161831527519694215185945212022686861648385366062982349881485696976234694426675101766549254471845366000852914199653508886446815171151623217492182733890761116026741384597966488156293559945472502280361961546562295697360183252235590331191261381444124273923975828158285191268411975558284145108921360059305947307136899638091031029270502701823661616748896817501076340384118834025029224153748622385399992889229119573868222741718555861313475040075296455846191348305235833349173617147721351541512655516645725844167394766385379209965066953327069304081490778338413726568430713359713044411849542713887799122371275322297214145713508433756086702235434682779756930966431116724923102910864145620687759067438389183627130975287840151057827085514674204520859189542043490732107147797235076822723974233565617736407984409973050270277149111566339857742920971949140264333445964305655683099244120772582277641788441558271909301000722220193855614525753213658136936292024105936809071209530600604007769501066195560921711303079348683723442419719907097391132031759124803252857268246767326279127469260180063855887119769110675088889016671313736637544954415396265685824060038242355072573259583858687803231832200519840769983986051227751235513539044905869618219613269850711084259230648208633863386192303678127580551231841566286899019943046503498876763991735840353874478848603670382480336288228254893096275880220948167226290740280842728443501002091378451718668613143709024507428870869590393832662248124363904549134853936491435709055422974042072463457707251665449599898109010890441998823417750209128242648996251445117036223348990658287779211120425429660818635611515874985931796114689556453902386135479280995814111264232762183274813577002449526635822748864576337894981111994131986731589148838561509186142670256289353450066469580482688142640778988053764292613405038493176231942225404686962672428238514850594474314097777853644277206104872643131368876097335003943646158166874772104872857304413826317811070278228750130423185409946067872027677126368307362740546817364518886730675308678173612014992508941336694642567892253215706578664910656899041565051021995405591072312591123458493066713817020469729663832849634102044075445509463505407659980173307950229121786971965867213176589982251887591167225837632585973290505967321178922026791395728836242350451776417435978935926742034670022714214056452744242031311225616663805937190638715642878926367371079743176095636323530764969731894284306081746878559201588137161299352083914383813449601672937564202573149475349719173075858713468324457209420179529209187319154015599854820482373014897550614034706382493211820016709929827474195642669033946329117240078247462470134676822769858206310132179630893165957193006649106274645716373228587858510715440132871590527406765510185269466392196230927616179776085644224726834560020167106458956142335647444979045425842751635619730978746470647809728876676526848449175511854953395425891472963161437356161072741799613416272689542456859250458677464043283832809989996409406304804321906465236780379877100386825724026729702636712976894315331870535298951265455061702617657675667831950170825339400814373767831301030874221342131257728910958367243188288881591241505257912839872221044796185137435713440110552423619501902590212366405810631519093595105409224682170767092043151855952008198154720657601013926542939594009542203216121821681963155950181275781448012318053795992519961878561740477140803765643846195648754841612918159383589373165395573812811465713958591937614752606286851341964144229021022404575553455539467051143330074785914651210216642206941140028497302167295711957365312284178303559146328646669625967817522999278579102845270438106028903505704995663592637158734740509391646338400157416544135198832568000421021691904245790886232989209186318760672009042356111475665799027099801320141676264632134554669205553725215610663733454041523176423689106167100653480439123872640493849285693432890033981440289414190495990812829972749710162435668586247578004594405800147627276709328824242945881265648569470834894388825023839242031392853483005561129129612379937122931040764209306813596327162828959688847927039159650767141311516878653842680818086673612267695891034383819401415719465341571499855511047193407741072178548271466143754649446285682555535563717981464186752127560015096242758692213967737096794833541919408745010083716847970471242388094256471293701060477693461150120820719509680172157459435626874086791809708288277587763365211955848493442281250391616250057726608233484889078896600702742852081933011775935055691199487524928239962833674947725160523117611789120556417526265651812300276932488492217081071463833017859707118473178696240842915380977240890923990088052911970521194722001540512812036992597626213483763808345818042545238242042478410000187187269596301669344121102506659055685167213870194613617038791673465051346604955085483165908040275289777544585710365358325593628119124896790318501585075675303179841081561356802714882038356299157084766572323552107650784141973219681996277074437502987352788301347733565813177168862290407540762023969114034084511458668391887719379423447815138580370373669007911928380141651616687453264791784800632975292143176120091215331524986083290393328810885215029458742167541508992643013772598382042982908002124087187890384059704976039795550338815185103194571166389233884099019555766189147574096663521166514918734239027899697680181754757225344052542255480365974775062485429473004184077832780670180785899401664999551138632503815658453143325667308394328833381519915296362059353059992959275737587797097420310684434931719987468241345807886687479666793378691075018855401116816348120220446226688954898424437353334861346604637341687270645185707197516558429607972623365143333893671733187887287977059388050996035381703535998148578244548367087965495169562813670986240272019217597866117265736484916779790390172059604921976132867151923845007625817576532276111309238517891373923056040762280857126206346606774685974719292299999653408286062965598650001621707156998588660187751602869987312870218169919069423509779466798677810305002552202996672794636588460173844663516328096979742557515989316608698949668530531897131906833741021327384850308272575891424813235023694783295675677163345698145633442862805104417433241234045403282945293592134060467881015939396548096964756879215808108778212724063861501223087286625178811624096950652010239131542269961085604019591402825342313222204676397765124040748661198398695534645240865552032676329154070514670686856126785522914313812481874867737452612556522519089470678313550022139984670714348067714027485583503993054859191978232447741854411783685432620775685497459843052039698891237491574649741085100712830690780398537439024299580408765979752741349289093464189156217282322027975431339003217959277094827661145258460090817419227645254960980949273109843056449456240894381413338694542562988253741946084799093582159957725354705611025882546626830301147204112199565854876358008397793828031405993928045891682259893418333273910141294084543506699246983742828447136253603999332857136637297970323894632800403478223224470383328165582308758824757162706662378935715684552312170168805149729464383730703892774111660981288917653209631787188476448193859227110624513465858236398869821103885921387208442415216874778155248425778503508108070983351657687017862065020686545245664616093617269758879108832732015616272718333594143380551106060658283023818781173523469159681340674160046064921103632880343550248680402101243037026618250448643944160240978317112527366607561569736948071715121294280502040623891054875493025919794394953464322720679157817973043585204619713042703037638173501701664347726041682667426953151415250543248931932814138723271156922171942548889655994666083046390583203968220069271940697059914889453867148341483041780572928651217531107763480058541121962540506025475512619994015975479938519908499385339677662595208081487631583662431434342867011761282008271210064673188972713030606055064427747250522380900866297895274691717294078525430367872486722577421271018575366145455235868814947189287713534465773627364749479800129028983686564249327294098593304562636233667537145223960817844343059897214089313522259016864911591218802845943893670153025239462262253269283056509783369873117443639236881925081328220623132061394317411103719140647646340137698576928910106052755918889280067333026473580247640200205839934539957947680694947842963318356899946956537501707257659845015198419968904816371840595815445237730491694184688818076084010078970748654610484938820779542630152949226116760479926335334501731231798661035969795812577949873820343752010207864586449963218134402657667614784270282608292538892868848339222262596022984960584832293950777599359611490046485444912743967902354434258484252871596772592225051000516949792389880043545975984378975775138866942932072130937681769871878921133292634969211910262108724403534453183953623047298750475398973741277625420027531380088057405567603096718286843393954066024465586267024272547301234963703833685458236049767712608663958892855995239269831765038496467749758807303901110696923763570841691464856689296391028574992102383451672140032102435523397757599296452246376371478886975116410670865421201235876579539587326936505838910584322439922998769845983502703258628433264357037779775498792065655492129259609475735103761590471402438778738663618295444266483468567485249136952112548979640958522563327094072190503902496754797120470049922860534258759922092924917223104963716934424416144674214834849611975976273215702101082565888683190824497431267109444665621450165159483460214647427997988045577325556822698078508596715829648092155879931050682361421310020669022107078746688060924708150444631693905732752350540402131662910515275766479296867672624571647878026159853244535693070400243576714747052596797136194152318151218071044173866946571619932159035749228202300417388608731224490997045553981288022914889494806994444459344045160737578078342677892054891817411571909089457275504691194359430876511631731663653615260535018044217434903586789417106687161658976737497145416344679396350209791405277190898032984046705603076888367006902724771917451014519432506497655168485114927668061399809014190735106197054898279488889029861870833189815333077706086765903769709798108503356737673089708490606569776977067960326384618699591931003078132383336298829713868762284672155619144576676744694256894829477520482763551782360641885027581425340655164242831516781906929527470096165381045229342738264736031653973127176053602439186024784792013116168723223398491349213666908477706488997025764293655644989527823465696250175903418003868426949190356976805842403185930612750527899341370917958002072992541475628562275963094572639336584198257873667774943852743709821721500706253939762420890655510718300895106822601366096786037059768364354672974664058874927898912499431456962329145745872490188518268277646279019035449487357143721262339925391545366274011219454361655499933082555920362023623771185154311748560589830007420804206844330370862254597485102915444010245063346709031908581891155276058522380538519393207449751825824928594490038927496934916245713292974898038059408423561631242717089711945090498260210428805639302762256358236700773450430263895232729725440493751253795693451901747955021191210768834521871961156350274607791370309506167977310563539594310930610938408440082096805731551494816857629621879360373857336738062824091687066025172484465164668721941242836026365894935583899212094172968685923432438659317124382088892790071650498461835366314122681691493816703833845154765327027927602760381810742330955284929786073022395250482589663029966010065515599898484714232615652397172488433433297192843743765520928083160500361477572366885026800693304747671664009972896819685839093769583136236232752291335020182540789973886546948602394325541342480232158229163860724618403051655732926180410777455540694737775495651156190698887228063641661139787129086104128199026561782620280225248580681116575395818107246221711527082483899793848381549455505106888351799379055477323845514230840875399702673345948200637606682507419153685802962573769158388795935511307992700135379669019395790650172983696598101232384980189548550810557425094218501586442552251946131943372643853985538300503498985465071010095987805106583871391719754748932769824157794541481858600748124148055776665545358593958324808131878291716290683919700198883304400170272511381102795932258093021424977735159762118533253629461176611142785454285305030394011391428347695190286248016054490887626944984175795825834401782672700431431623575987442265073700667667393336707765889373168185055886592550683333776960770986763890707416928306880699090243786770862535959743928207706622473147791492221737866278620630556714415321645170827162777199235110276421785117731064662994711372274243220742195735635493791570382970601949129417567866574831955481535921874433347611504640659830369296632810045701403670331056721134499364462927889764833247099238774291714990675494336612764430329487000233425359239458508533218485425223568161723842199579540719988393374260906002320239122543024282173591857914875295227481485466315897965150510607872848913429130266677752060271980888689440027572632579473128185496180078370282592457371735148236810267009645528229656243735699213783679230641021825925040467015383016444903569144984824439196546932362806357190805944724234919723518100799437138249582445207092476343695103227734977228496815828444401901999290853506215873710250428746944386645290771601335068625104668185400246586021923358659448645231512442899995983525370512230734078326367451225165690234531870305933033939651307891702359406193340713765454359892604408016421073347085467998311031874696488051749744994947211116944391496646526418015656538147118391302774873493689217899836721354550277737281261446187756495207100014652237686360070753329797983920183808031888707337322202324100940864532079800637014211123474215758750160458286533290998307089590666717694699601648314587449833858820250975402855950553548254032875447931519026285923084730596373556758354982683936981458744389898176847515227238610303295310938645804506074073041891583411560330873865454578963119734242616387210838048116030086535419150906883021496552896320848371238132220135424342468418492550634196190893950650512585944812623115627241210711571440820210645795560955910904024776260369333426461954672599963603594141346450704812933684514204112558873878517042272472565894872209794044281375361371505400826342810985184899534240065858973925461686979483852199968074915799446846861513526332758878677342060377501878864304653848733148105669090560338720320080323152388764356684152001867349879470366665180817802284722235408049438108679863256756934231584288486382917463998449944950356559049071196502506498348191056677305494838441775282962100160481707628065909474471703705288063054354659287327682823566703508342357072400607312160648285042858090339371750984593153730262961043331149918787222754916576944384341732395397795905825145877403873320147893056806112979474753423274656967923978784608204056618137502339166771018816881941164621563520999708808816417833085374409468066527687863664833400356145130704205348269206930718222501219939874537391802030237395861836118375533065440714628867895395454026073314598240742138135748110966164922066648592678288311478619026711463693712791062015637733763765873681491776625003854020335467691011496290622110621053262643138753092342757312612780143151031176711453145792533622066867903910996758532706588355567201147078026186049797813590508776117858734446973105996087366829028986718970421559297347165695659725208852024601293126567729304994787622847714962257338419453417983608137458011108341418101006130249112315913716920755770533510298285833615826978616674048789757875625665365443210160173807987214385014294645396820167883846564270562625683555363609143888953509941345306675730811964307876275840280462692876081095765407759727116381726430126952513592205849213055585223346334628571581638199052861124351835217529059093823659127149499906612804579569193517047956565044115795051296777104961592254346287036573726731320328034806267270209670466656527933608679096783789590272215742409255868851295972814608625968874612092532577841444182847130835973657864186730525087047042085234507621618364310046819545950255566596074121171081994172296222074557287052402198453982806116355322589502351440156538396646656527186256820586488053406968566115760037846052040625694564704584284793350923789890638651743985593083220214127931052686993877671172879295422451789902987396885817727596595095748002371318496995841034401444908732601790319906416412639722462396863562345879065239698883655226448217566881762853004025221867317869900232356676060055715953900016963063324311944914661163895311393464688718064777323583205577286688288152529956051601256025047242898248978445112251554143387690578948090133141045608775822948293225353111091347724641508760943584823657052018160461225615979870790536386748368838067509508870393655016752765032724038541510756399856384900140844730274149882796053305070408957963856428761829579448964273488556409692418776217286641286851772520624223856774589065604109974567840037685191656163455883979688900595718320192044760349665880410380303394307779401334737029915366223583373383345771687332956928123783197281062029366689842847787343414820073322884910360207080354063460082658232729259333034006759360857848161938382545311422707418765567439567251423193208755801601836339234129924519666943378942058756103495767968690074799896033487833479929373029884390848721910175407847952160584569092315405184612824694966105439522911306340321343360676739535518848818020289304084043227186457716111012561621711941417220680150458928853746431084288233736541753312183396211160298535873664440668794396435542103837262543836441077046024999173062339802665120807260280059462871284699480249598022359235776202225301686709421921998000422543176496964642791945587940504636702808165326048256028660720557733932780282258590576336423679314241342256048625412261465860669049367388897961846453082520920286723205268416790898727985666637195445888183895320039599054421734022852469460789267352543687076946486275307952378773660232689514077156074786930714416763905609811381696734200253884800630845540884860498419658037678647237222806635323719191728789426908948400402149896921401123266803365206484600445207178989795399756402228074771071757862517206477773653226576949095853448601989884091174904329657813347077716528422438914589398531819080328167475821972994684003671134264644417298091802798887892598041817594957000861610156297691983428613000648517210596481767730631207606924312330024300955371408031954101331982893899582629743707928161081166296622284034225159084005499071353710965830288714197733386372049307577939979490354356864914844477333823722071583433507728888113313555242000170779988775280394746435559027083024720536748847661244058762324989697615294301646984087540580518898950200421594306261327565777026692809353092498786427290332550206515380488514725519147517507913019860429112532454502194932595846620770726027458521717864114025707840706256394311549001362317929392189371199430741384750098532689291728772659339888265694336430203414591726369143232693588810755952023367314096111114370179265944769783521041521055408232490271786619252783179024535105526901282474797499844968490491134445928111207542834320725434783997445736389561966080831170315575152784294678003936954491410747868219061429072621997625352027131120272611918352335951988838051624011537920249476786389728417443503941117852008976706070450847503947104676888058621564429060329128281712373074332553831157739134316117235925360779256490280110654274410530966868349821111285381416840146851242369909586747311222272846670028699755893861242023429621013772179711006526254965160213759752562709821914715789874842696959127403501629820475931415005049756418028673823405477023583432710967341717067263518095374576961647121121754484365145247548156544049799277414747617789092003848370330581031764178412498209566917730487137352005065176452740905227206947009924248874183676434573527021442642663267402069838908285774052025587372025645486051424523887624516219228295196237732156054302814125709649044964870100954826637155956509134143421614397343513665868323743107647968053544547577071739806933616210811732980062049170509589557009820238817467416327064368932718808724182654402829907654167797004033681630913535148891954552939814551859597998472934832238020708751034043248306253723501482006240792310641101258191301078973486609550137559735413188379420364420315343428989049837011106940317837361009558775274991076749263124161762618983392392408271121375551614253392948900128072716614650983416951632114539755171241555763393289813516382600565361205864702003737926955058237827028949516246220168971782232234573051819524696364171106669777807129146092044751949281905585153694560078830736573399887426727214972833011870077480493286113509247718064373979754990661967977633965668058629192890022224029058935095169076028856294501492264131999948090384984790596120363799691199198640546536900264806041149521821169754861096968245608524799421205277036939219387755861779937013712609191936177484584597307107723821475129657818093752715036799793617156851502903832754489871727514813256147022355829525582155497947581250299421538593287724207719960920580985007032314845395724838960694682964517455824830330042041748840518022480826739461372488439928224797248369869552860426571224899959965468271665474546673357684776830771807758314707739581133303783906555752432820453379786799899678532260230594945440924097266522797676696797924416755910146323090362302297577996244108848379489544412924758935183200377296174094383705863352043890846110231881332788848902246927382322575616131961695888021894534742425705098432039968683053613864042283026077345791409952322359766938971094900125662927145127584913286531314456667926783545000152536102582703560610140918782780679590842190537172916109962147242208631818869047143727930065153344966647671337500840755698819869880608573846860725491723888042580201657806081915122355291557907105673935933288624264044779936420681409654307993240354107467320081284347837966299049692664893063021924259461550360182735677391289909452365864902412744822922833921638319915181213712252916088771355248255398866314647844811205918159742513922383593495519899677642359853131144651919267882251118674457044893850803485109591913630385933723393869797050967340119714282439287637456057831610724064625734176328390336762809004687467126715222616566113164808694112246886798329873644574489506799142588206179226273888418761179807611297982426625808597362219757678027445627314989964982901482536535156710432379986235245545604544150497480155023923429649728541099786002627463105940837058409977854704659111593320135787912838188285828366530884317065494270137972783475166390438564662550074368988944938657609560776308735765617437697376068374749221966249180854231163872486138682157088817357629546165571694557571205961045706644613745078611462198579734087143920811833337760538528721881833381332152453181009698237274107600645401515186039910832003326888992929630714845301253876112924103915058946101138426966373000636036880463411691199708417565099236643052091146199965310658382240864201185677371013528015189407881924342036141724562072345786824000757831123281528358973415317346602551821905572509802527763753753798363947922849674112424174489009569321927679042467401268142349195136969285406067219259186426725965607702027443728062387278154466729550431583187629618883202546135804534512707215280821530908470748907068524821078130499507059366187088768799564684831177006195381586188130599588879304329419335366658667320420665171243210508348340905039898989884485760530567910238403342090660849799732172914759440896748040194859883879218842889772567425616687137105900084798574888292584421866662553914209154027417879806215878880440643425095604518197126021490509643431887050408088037412870329381211550671093726887864277330067936560739852952864294724755406451868385665978146457630041599930384846878007014618642392012803918017161539084466131731947829199777087303284062108124268972342429771736800587092046582139844522741136647872517596884350237870206227596909564898808257838832074769108313366336652629046716976147450366679879220241806504947294257985544418304299265917778511363259756704367089092986762644954824117837975761925422968804221891485957856954017373067158595782204083670563868767882335462945174651410706633208514889427335159798460550388904219236226051679965631593815704691712238371077288292660108461736935088858748210819145951360094184567598765337933981458509331681249943985730680559440866424265664408267441905808797515790583931529156382733164343605838615665612739216235427960787330968711960509894886640235551577211078927804576379632045566191647085041382462610987902483092813570734208711716189910053969196059242900862941977889431566203920137227880411754446745528674537942849021198730668883795383377771268303400907732909371644291333983388854656438075392748374219909405254244559145455052319098395800825045253989243360512290040356903551970410793331109321980218628072208478960844900947598599833795927873944432056949789361707969707470366064277211879640810401601838460764672682083030883956567746379392559299903258509023897053794328282469717134941326634356392771803066441312317483185161157757207960740929883355021471338746439105325489724736465500043904841918987660611567237983250944813761493955624840394475740595655667986272730966087029322033150407750270753167489314124714729527603945126717923073605683943650111157603413354842076974280071290430217503841247059985891835286111363460830124533444477809868376002216174932388237883060510596947693456030692368070999386010655975128158665909013498448311833788296888077638255582092345451668278703595131961592295223848436191474053947383497433371118146955950179631224889871949053205412801861324220438621494876110103894436003696828033884463052852987299593208100803421120874965075291466971370341933416679985361542552056627076173192134583937616913672106584415573878018081256641808325528311395454212184396027045700253289624844217264149447330854546023928878364480120388749405170020742534738324221163752924724852061350915085466440866592556277652289586136101766074217184151251386829199163524154253493976154021973259848865517446928713570893943654568383285820000254099458889395371614073748642804209122041272681605481278781882237370339470044922706264451952045231969339904359123145322620268157541406414263223068976332744296389992608414906003932412614542115610473579042520816037350011355070404705177243505095063434591194516487849157653867309470159824506266654790873263381348737938266857773346971215220976524824580862974652485177360986094343681313697547680089102150193750556782566187730012479323370312464550549159082240618606442492050249193029453619801607339133504109137151647506377173441284072532974636068824770498416163986279321791997942932512010330818314197554096137961562048686556583947102135801040598001502883856235574869823483659531689538277579201523894586184347098649854817608458284179359732849331139679830584184475370730561694840020745821713135978781616515833826531678761976140415804765345930751907484748754410983091378365959917929234186375142645287346048396566231204115158021748079169207509976006711824100999798945937861353527534276455509159191042683726573851080542036808498163515293752048915278877119609130965621530038769408145866584929119786268601126360024799186524536231458077319847643810559565550704647740897949538153732175712740876015917225289008053279999731900118279843981786992310616173850874861594414638081090002575216325722561706961551183895953633169965048535587505416924702867297357524679083803630076267020676918177830353825582094985359273264069020107032548468632245798223415887949086634599620315691325335052900101573256706878933915903263542316820528046114373786990353036988738949065044863737365285855366138923574740747269932462750005088306851112203613897785537451076968092075866093661840064552649177507906144692015923642049190682265499354240636637227578229851431689774763468293003036143297157267457379955095634894227172180780766606512519696398865190362062743717195185453067491956563349711955851748260636925011358635079622421753632276042815717209376733622133856087693357171742179424469962319560851030947665272445127640558833407971998662406970310586301238807536987720451399260401031955987227718615275902257708000493546579345208175330425650618990753644673314479717709640360956868603994831650135095042185165896891896847786118062656573383100271886283356742490847462708275803459284290748050289886603505708825667939010777463954019723998733219285579914111625474912265382996612547726584705710746079637321372560013706510351456810145671373033074303099338716782752882502716247569052080965713216087197508856936737304835799151700238497144839717561067952508446023381759591365317688421969232168740033106582115920115561317972644064239939872007860350567788550988236189391254443594478803000408341027401942051159818832249844109000728209729510263675992561301130362828834846269789101988894658447478518340818702870563537675992660818690505303772179149711117886242063945272439251469116702694881674100266068832147774341393085737207072720980359117613857723157024965715923207014563657736528105896867644620956953788043851340282804413107412786705561614873503732064868678254569974626686926946440930495353894770927623046788205028291653515570642831934941509859272326264411644535159511943361452302030143991954107591153912398662515892478297540815324591055966276007965592548819380685880973451087685867594098097027695827965161375539999648584194004584725660457704951943452865573761851120247734296122941825773229279967824626448217675291624730274182960194354490796556093820799962535516083878552250454385107685325768881260813246798757748216578955487629416222625680155109664159266022750194595854216039716032387249667708818693518565819087746901850401116999947942734709938243425343639872980485442557326218862149289050425042782382289670742817823435335512834339563152983547983970869286733446744567884912438929097467722450941587439181578641936071098292260268302587823825264800406405526901236297506821493720728782770977643914814935138319026900987786029103516978251925996151689791590639605285815892394516368549203101187498981409128322209133784668738637047058507974294997967171302548622413367118856709849466122775199105370452930872304135838751718217105871162063481304558397941360530864803424329679300447801787701683079944311317654214956913536347666880418531436734040193859406173454814555407691962953610462113849937581270402142430017948678143617533325836739823863798889759345548856037555544502600865114586537603849680950706915101645494783990616575935052429889356377451575122807283064797116501013254357328621293123941969860898985093150729700240299731522866192053802111675942245600925575440055737043085097256509298802425988685300672407702303982133910720010355912312441944562094098048318754988592448814825386687858934391420667992084724238224610114959378163118508427271535432053359237246170411385771608976218585403103359573509864529820956933580440507664118221051808752768934487470430523398245052207996005379258593848202612286206147180856087215826023674573645899690061592801906757272446573949565816077417440835371438613313562719495412070048017943921220180494984222063002586257391933685261439028149630898394034740258175925980107269494151056680414845742067999000003770029747984546406370242866636532514289435778315462100891515689163481185646146694796083807184443835546770718762283741853135582538044357705600581398715920330273441281515819324493620694010722097484370109272215886455229928958533010386352280636213107790763670076869869797326879403348063231287766954753811261466346580916338164788071515504816615851433542735258041980258392442789944274218388637171362542403009796236937169751732555250371066269576150993590171973444798525736263575046539132793841910353171911497791964250715656482157053480706251210145444062853831795712796407017710176051703588597726598789916669458006565055997648492182469901293760432856395045916114663270436968295030038189108114989094349256001371800892782438150888101099778403064644451983013519431609179103257995239088532455193420207011335604957911140174217002399023131378712600517697792878175486634268858097178612361035927540114652282725592334104722940738911027522943467325017320969250269356118295091839262436696602708234915075143190528483049756179692543764936406495108960036214054493124015650427573903991720062507756232502735039459351518932897414641012176482341273477225872489221450277336875105917469944644575692369561819571471003979368052213364110214696104376420368101301097652844820973784747356723523116734958560909831466640819477322165035864974588326914384564785476083472186117205998001541832647101606148308900541709985570126509099601753449780934732453502631507374408835420265423249079872797012789409654819150325304233984964457483331956796715830142254917807987153965918267523202584837606790872427126094020819127663650504358415525703127980273336666015236563675997340271506178746545647450728396119376665011789471671418273930070513434354875736203144388407334028833099210365568125873219888804941721091958630862885864027952862968946862700199932355233695034769939948860203247322005672894476022469223374727859190081845923969909410066782150999922137163797163107358966060032457643745618845596968421235086506409613662250202980987414760548938513620371306614025901962066495481804792423142791195733004797578888055043305430118883763740238896131604901061513741993733253230893085002962813051752673779305179544928712681358845911731444312345441679099610425946702238010332663115606652125889003490915223162949052133337092432451358640466505923708605255594436274569304639350505558835873174809233154127107688525785664937601700010902592081539302612185413657946131055646168895450932161047542816175536503997818708498190066708434826254971117337497460597586366637866812176380494228873722976730520828513080095712759472050112576815478757474215772610083989666794085159387422106442874391210221744646275374923677490692024990930535760763489621794572756278599177956547951118867554067722111095577492159587289863879791534556015915632332579019906542098610529054519071349312123242034779610924979503182350768931163336563190691114217044637553961985921209569847532519860363464223821075481323700214695147831198821127363645111779605690923198607007470197269955372414458719385462242162847102820513046790413835035474432259785845559299166739293340381770533667343829913118968285615448957203517294981180102334063454949365202336937731928387360792875670452666943287664531578140440170784416045455532192070182722306236015743139386703118025487204081165571439055325095407533591292922818947687426484029928228419854868533537882378829420124533509950035426617753027859807013790698310468671793221748208639686615018489500771586885810677812677073637616140739878337125803117686129457112941575971575255200425013413328397189553340855792774500292889757979540754854839134584369756428296056830425783186271677090510245959034092580442621716147880021415268949151456982683272828373825675401218269526372050949705391372854069057394088593968609397209521623716480819531174831602865034830786123846136632005897485787318645054856689665969148901770269499382892809384600253281748401176843483719301881722350142444066031237312377378389710048095608592008977395084121655365523223916937410998612221701133684883426559708221674001490895387629269667559681554882692748819398650565822993109650235789278561752415757924964823674843983311217382958045126442730614782947947474305006563013158490713491565016912664151163049843337026713539272830308936416137480604090775676377427220625715630441095516753311131455076487340157333451775277219273711690043735211183922548932401275002407296357574436213995958129355100672725824447832008963571203253571530246659346096777028685440225009240556408554883758355869845479369202684373033157524740901831077595353775221851553560998135851241644564271039154159626756896720620000381854581383784917317756605722143859596132665054654199009344730582484422577602010849792116236772763736697250919189569044548705140461998385488457069198292392437047495404578560544897000408328962694383155758030507325157629478842703037102344418634766097932988974033561752457923494899102155790787909251267465911896991213038832549692217526745275682158627015189963522171213873693601687918719988958533387906885715413022408454688971663704014424708431205662398562705382931841321036621558797523863042870536624934273311158862991356622786170255424461734031125756296859973575916547041672908592384708409579901896909209938468502240557562200649363033710276261335198356783058610678577889709519600398768439822835503760439091029138794454858947021567548996836635245810697269879023012707317139025772437329202622826416878150552219391838743624482485396965521337889348885181407155280479057670949838988449321564031794724436437417979640380274951010026254546961072062249222220732084823287995509194396992272832302542249222883570307076562356566821255987157495684923957016845646596615748115888135996044226241166117733138885633053203475065127446683370443771393958475437753753759946696058002195748683770234767756682054905088033922815375765973275187531382404243318897564303279502533470523931257431372771087690010100462710497280020180445035565786605920106749810607445160831552411798867571677059538517041413534307466338050624733272478227633926366382023360825997928258280767397106187796681504232957688235934179864330984089241122488392455258870468225055361437979787066363727908206844802372701599219735050306885760270197834621833676631823234191070634277686710666840795825481553411063227465286690413297368927382463484948199055763098745314340260713692131506256195238169307251825074842790997851583868300896042786832961672130084919160995983148907021898696996712044281632570687743592270796536281400809746428274216143139176663040205971003367915984445428381935822775080511290447387353959993697900201746735105933111313920548880994019391112690384885679733621800696712578252082311466162725445359426525253883407964804664909701232044652476437389631202103107708723028865230524920088555715546697462339374395539071918008157453578743790022626647923512786047090800654446041795178304570833286726473844101773084230194848340272902524906972488392485742623180008150554012069406532871108058300251354293910675686019125893309547779221801390233414977825832590615916665071395088405138822207316259632119379144001590136756554251650721962352246361912476097603836799240967858048465774049502761094585745131585840369162958855754803669251718409241182591551336343396745942385419140341349400819672024919929587012756939195831830946511756352158726154745472738475255545147596833729859351722529358290996561673614300471441687154538139321595415858479963554658360446458528830033154506191299030155645443120072351316106215888620407993743812254931549422723130734682289105673251528176553001090010363145516929061315430358631556014849997162468392924539408525073523735154427203593677960849185408067300790366349552285106648269785136584899755881056895509825394831111089149408973398769350618854214612121763498882862972202605653694496468079846398830671548217873232952187901940551562741489032858830192559178677568849546317289742420039427495030665239578891876508119776300371266767336717863972278981201942944113590442470094573669739873397862755824031206058767664964738523186419926171304123540080119899343612426645225436933886112831742732475526555422368356418552155641842979232098165630861756159909739566796371294780268192188752625124477967655842364474540131393106559679946733390915070211741320386053744594331020339561740335545383030104237845006506204184159062710319974069825224297832256263465745720459724816301077813536918255169272211670674826760718845377368408317392350871459474384036570563531343684587984920621861275467668543201784802525356167297420620056981512090351999142404361689084335212456077907340216877189320780126858779810212991630920454865354790385959912150921755926127199768299694143743797073428007978369121167030964020381416861088755063472633722306439445257299707359761278423928889892274138609161037343300678907369587485336595545715201955006303055595111742337331171205383131530312489851003746744627334875282784939158392692227036579342161496491443179128786811328115467017254248677954015166071248255314221245895527076503250346084459057318955295499466108156616688281519866530576005575602938411140590998744224351797328340756223355811893905552584741120430263666239649011853221585810267631225755910804133372978361259521623585583526119037622174196032084064541829272588679210769568233830728905389334060965653116847042763696259051518671412038362894242150446576618494571619853197748927416530229001640683456928065962586571031382015684765448133109046092968329867040193176376588768802431552694954099820170061190516777180679370259874254678282847604465056119947609977138428334966489373770715288723010963928703525569888735375385358822722697705274395006188343548100604589534212432890990875366888553219464348422839378609535193021401921162561383131902214663556043235792533220840564763837275332017796969048547614252484112692332439191022824094044474312989781378037982304932310856583183021108337822021656736016303775351136924965727607751031914474726046096893150915847308100954878951912921865936405735743296778011828616991630399838321539910251513589874794736121434163691708037321575160214427775044925920434534044201919745252732247223062714342808226759177628073571876978564309265908387025026030644789868437472719937919690028696150881324068912362431589920552677532035248171533693717724911620469219084435415047332325643295443081553886362787093721417938396974274043037639273536993674971243639746104050551381093033348405197140350791259110646667649846482460561047296277415974179367692675489727268100353602120781126319776502583734137777241569904040889467364629321029903139080204509763481436780235234223105140088064781425131663432259320047198877805357944020237551530826978629215015405480130932896718444421382808494732528381123608083953545985196436057303156870972971539367943535065806658875402610355248888804309577408245993735039852412681829618771531121797126256957097707456695034429746450170820353914123234789092992708465778305609502873589354161604422029426379545274247786068746875972774134186133338992272344692791386325512835569957386462662222905446240498421530265766795943671722770694327430896146369921568852677469690280739983662417744231024519032221892717811335780435669138715564573822748688695069017057767679130161528857290967726702555342935925968368054161184206772048589586210015382912334103616708809099906781034288744520310249114988632239245376096346736850968385597161448439492228610139249208135416890942214248261081472852590976611271766933638096011001266270412617898458734832500666020808424722408699059903311268512061532502957489342439137867964404011304424160487214277753069764474573326268138270256246897018268294526480890459104039306820663564652974331016497731850744472087116289993933209436220177254579567253065431341621569924188986276666472974876436557235648337740991631068615376845159273309292152356692885188603000239952705313531555197383580888860085181540489321722495605801118524787516828281496782929002180168931979575133529092281900383638600482118879914259188061306861224060166593011647822422289275648110807021336405695173347036755583057002610479619433633152053088896613913088149521451204929465720689052112466883655321663897814610317567627950093292813463857126087386777587594425292156428242298124732544216908255229468593284839041878056450816744678934384269970185045195056466575274826469183519722836331951133418225131678097405115452507135315936744540471258128894449948549886321767272878220701243184459260860108258279347378604088696110332717600666586318314272402867169225193939789452125874479341179004280563867816875605593297154621818858182415346182762852411265727813666051484476986362748932603002347881400303096640742067359126907964538704662169522155583486547942949494310094017471416962678888984682579701360426087485153096054948217305651341996056429885432983042656318245601232342553494032771084489883661953561317420368431299272841642647112957433702777302508594968363629672726814830255052478802333063864078152661383246081130710048223897133376482937413287942110767110800522198579071819685992179019564527663364741828149771455083382922098500245473120191365335166545448332640969985626659008320462012248832047535011813352278034826513045258976206243993813558746216859545957608753610048819801642837322307445857883575573275455821819716761922457826786867361030855132087343529403879265289940992108510793652309918840844066222575245508834272020238687415947057704300729226656742133743000658857685867979981411356004205824067127860600072915128216894076934277179024778814830972868724209807459427057222961515130547897671168876199304019954647650289579673857083286587410063966634971371718828815961168437397799358508266870432863727124060900540200775680618033103689073496155423995335567291964189456124892892953405964818917002459474841931744517529758457440487677196428142275764183389297809430733186959167607997817652901421154949958654824998091360481689374540005587499199456370349995365318176249209780268504981778543128063960732849371858386814959791573937816730774920333560698541468812827537644342024991480281255388369391434841674735755348788190878320605156723715644317868751844654807607482532408776566910202185527750353615153587417514550500900438253411262703882228540383602768984285194080690234617492169346643926208443273435626788084622089535442824311239670012793723793637865928318283770164337057551468574034820719352337935244613531955572123399811902178948788954163486777430209113743664052924813251157883511190436570967043003816466546166932079209156621425014531882924931126971827512400341432401523561413212406802294061601909944279018016929040422803626067446642443846079317965710955103387963003238544108300165691291020366560598910558770685899838560864375775317154279248037970838763940705113331580536174483076986842525512350735205803554566408215931776869384692319958963781352580576248457665180755867203948017833318404576974356529292201774502646201000166840727593262207917287779241041728080095009488233790382718707303821702098732086033839381698845564438261258760435578352930270233926091603957149881712399443624374966988686116046045493815013999099153922895818309760105010900401070168861211039365211622424373749887954717542292013605159193481260136963653308984849376294781879541881091020005272012929421692289053795350202307838208439600857901341670754333274518692194196978005529159878047692666889461281361246787235596449039177015974351215587129131371100671049206523809907087348877745014379767959495482900409247604465223686033092290760114655280860732823504746937478096769330647501630525590188701166706256348265029914970749626126247942376775211835054732791020115778183664077042791300827241134221097758348592607561967967152267351406201902493455044411585534084898595385401464705463955508171334225959789079040064324376020462111956095876404783085444894661101975245659216227074900485002972419534235365797531295631709754162859054638607127585636948990303155199348004294967150017992839470047796360362968060987177184266808328279837782932657577951193823869768776183223425182046711445430749191961961224219578968214968472179164247750877510531464525234031262023583868490987898031803025522488899492160480778512667503931267802374358622979769674725106979063559851700213538031059270105027209406911738726064423938668403386077503971035346273426346577594065615792026903228552420592102464483638823995588709578007414640800222448208915176307175385905591582063199043791292923581899920742158809787007141704969613375369523985964084455693051820961507438346875541149627949542634614884713403055946911955627639167586386650176933560044443094876983488386745385208503818151013461046603493480185069359190883516390979750422598432465887730334025170295904960251995122936548865498497143419754066909651291014786509071972931513130673125627276740709741778221609535418521276782972178448097719245758632797019120781309640977979943044822553203816681576172165875806107564993735265898741092533294631931665876386086589310723971164083521093593879387508420554806477981754917586846519013985275689659496622558994716285619758322253009013361117737964810400287657990097839771627743143638059000214514813603023882061980180144485690876846843481928258331651015434025945207159092251469161506253573556669086032095148649512168152162815012917475626125991417639004186176378429092950154368482411550562786080526563295752548254554806821285122844416078218765183357258530313814464942112421778921033087085668021630659217881364307492697039999812971659861999492096718932719405718287203648133251007295191060922229718158322164156326229966881205709027204934696389895512513280848578975930499525467612204478116645319029232394572657438641507268306262494559532724660211569525754552622787348371613572562269744215161844337933552255671797750078544559720278306108334186480825770096819783501542131537985893138887510328971064739781171946527366398446248137636576503202510006639817488672014317539437456670273450120248492742786741584992840955859598407228959693684719050195414518356833891858186828690055874693548994091817968774663132065005898933276620472959011008102265648156023593044841612223185630515437659847393683112558809933712419451624545690526135964109242541155213140816775342036617696149468454609513163469344585316290836459304712390600212855034584672913085480233253732030126122914398523663973455117295766258131592902944744000650015496634935637761858505982798311192716562643759527180268329672632759280903593404049110119649990357064839395092566343219294452779101498756464820479021487966105755397167898503234596225824645338819978288617565101105353557646114642889704823259518690312824601949037159255789651007012539589373340960585029302027963623539831286359550340382680825612025422351859866384508433318655924197245651450061302869025055456431051455057195365181106104049612697269160535801173974809033624697298281589349064800305430458778174803121357481010067123761486298005070416073997449728778084071317186286716891030979287951390336457428514984877997524173603702072536563906171055763964720609579343534623470500570963693309802053584390886223305560049761289757587365897654640706505081677217051284061476071777156389866905526320181001339915665014873081479067479389012749541845889699590766088758613274637125036969627468581250037792520767729435640342659596023185212200092329569360578470523649711497780419401422243434055385263282020709958146895128415178154506278807894585619653948019527059374058020795129465323880727792410664691168992643171605647795721291547033565006557037901830104845884827583104083230042784363074906747030438952755448475599882684182437712060822527870506106911240798397581607674841274288118072916666766461619651424570556425873704070539415592850994719773093056388789072787101098965879132656771199087850476626909362742068666632399213055205699000510951378724173524322574762818974498918247006045203998293805968220620184659998321920842762227581042929276933675665900070605230421436803951587406976704063631054551813097533437979517347819472708860721887686396651084863388356065784369292693332263294092214230173534829926526603311476597894706972895493236863875669355596377587798210094652403030015663361806050206191501301897088019977745204986819284359856724993694137919276459384570553005752678160886371716746909282601147216612788322979452572392343243552410198368996156360844556710005081645266411725382233244570242261381333139117381462181304593623744602051609551720762024021133708855823868021908723573252530987417184620206553855553080170221580514351858347061928126970175193854269645699973769598399009714960000435711684913652821228661584846930321494629297611402462258302952152337992831467660097374915092113123226602773474653632243684619955691266815244405798377116666072037724864650417547052640473116806592362034108015426148153653411802671800524178019334135560620392824844905871912354240112206784245016725129547288912426515774661333475047466172131098421836149589832307598092669622519521485756293556648952427665050221696439354944146398599289656200377641513374740576579383389224496616935032197696833060914256828625569876246518584609397208068034426835548521242380036708416054069435458832813029731519080735819534642871998935380737355733497225789725336345031351812651074687461428625776310582637752478321115562840785236945284023682878198621380481433900721553042995726801204554874103289915786244348687023550476315274828122457733188751868711624218540118182807425403398683401623538517207451609892681873798623788492542794480810989375535194300212133265573723593725591353094500197872330757267207824962263905346047458853592277406189595612076437111134905763368254661972919889049595108847846453128396259691544248584522599455189457255973439131477800061377918573761278778536150278229024840795287161975299761587441254337621181933738617557656467692354991895675394003572862522349048251198077025035998379067147626329495271511745147392667868391141702777117780869679939931190839482830497348882866185131242884352254099486019549714393233899191460082508376767396218088159773221635195256666471598269381001121628990345377871113124189648936367593380370483262381917704469242552451564866881021503894282571508547992389709874759404621187734145358394322384942390101633581311866392371815105170112689809818418183158463301806138044518667679938121447985227305752856108237637031237079782842803397933343018059850273294488404779255610985337315698722468402397241648399475884392493786960704716269057914621472947620414957355292116554518813746328524672922417603921617171719584184668954682253701041738195772723172346715884683011823624798733728207002833127964970025809347044049442149794631397107936134291791150826891798757440600231755582085722844538120202392599988649582691261681055829429867801323178062587165658995491133257686981833521839776415782595626267950621988197586031164211415689102197189198728671573917391668252438245017348804337196598824989780277053374680630109567399170185464336659165894511391724497066425938823861658622222641444915913777223470421454414745000175065449240598395921836946044511674132883735251933101974790943719412726180487281774104082848520081306910370292235620424355734596262437540678153991239734774524167992424734015474063943633900696103647039671306632730408814622528696433389967051411159566003455863948674889545433438205759636081101349971343515419569455923976424622589665250998867096474807463365069773602115191758412418915566736256588758150213518247562985215790812328328412510060888968274692622587206332679731246073270460380542609055292582701586062241243166058533220379026000770586789795517863182575802108627808878760231863319396429489879387061009765181361131411757344351195482946213279165063045139085876081215019512715570445014358888016818839816611494146088054829291881899528581864005239797480388845479769085953440451154856419995140766718784683639049180330700294693425978211612005177334590212339853508934307846082899398788400171547373952913868451362752895296837859630830579969790838593271332772402328550867411397209437548390188519805453392575530205286002038524509133575271334863387089497533226059730974068821310009960127333882187592452049075167449752876358735337922586026902442172276706192282374760718813539565511040438085351185998892131943146529304900948271407799078921363322244732630669077744788727707445579869391142181091120341751940316141102989273865427486478964295830377650916909637596038326853063046979994962608451218616494984108970222255776106018040770663635789739104353644812625510410872853715966407397012492794499317448728959459424774763510193756568075737927091534418575242278966807130831332728435961165944410298332217602377406704840804808076941047859257135412355128439472865799687505305723215723362095817618346175114977299386358826487868162082322387902538895195113243578027433504328249565810702386943376980363277188697747501952088493682236905434557771065568887881590459871082286629898981562327212642376448928820722895424904282800507245159264028325139460709482726511558573369529259249033465045790798674133044384601956072945576486032862103768940191185099856522399225215018850474488563974186262908342794857402239610577185441158790027459186538249581991310667058677700709397225608710216722606294580328563391230939238839045893812198510410296123722168538757951801233254871978668724570563541057773268231687892652273442988627745965574422934649733346480382375884395525283661809954871571598431497821534135274638474388536231459485146297461020144326709077860642589228392478574278072626432335406222272258091360613157784242133869063936515363249862426076940596682679952469248569510881872683431266088411420699394083500245164429949542530372928792306861652309646612445775902798841169944377481351392158333168496877155306743059288286095033990168635302374214779905600779417305045104758500571292450970137196592019199349318476394351145798088900996573054789876085553389807016819122838828273159125393798964198049038148232085638085463255562313751705550050215133321605706912408686620175981387282721934821645487833577144028551984008157942011091577388796144900434222056881149309685143735870442798479227517004168625040710634978095276662390748883602742452624012163132816401606489552598345116862047638660652282771392356419420630534834582238009443112416191995938560960338747345615667505753530987899914966671013561297276976623766859133083408537112397029649174173998894480831698145604025915392174643173585501214490698556717834067725932569375627239150246433707344266904386289350464607364205456479168670766454907094194326378703495966623667068664028176547783486896529963176792789398944065488651471066486121601336128875952676749170583298262834972493521885033619263429759686889683045853118523158995191266621561774625901042547519962072241906473818347209660088965095008117366760404440496738494366606030853815841084606158705890926831803251702995570826956755094162923210280553852329051768594325506353394713353979114619382290766597750356144785219631468925689501383384751768331657237864886868062210577879267828334220014583687167118984019125388707428197825440493365913491915243015502572995679407468607832358657053128187629159285725729373410379723212783910809005157959494365829134180446387493981528397292452129455020446958160451169988505048476084416559028432244771569000176331829197862986883992237851108086485025425251841616212109757751797649868713027796288395980764708108756819146407989168542759274812229545148812771828003199406115100864989006323666951315436279531225858970984198598338399572778415743744374729482106836694848610427685202806337018219870591918567645571004390180368226483476811221518952468243891061217899488553412444440385882296500788364186745115131962683869521795113921117600082870942833887931495913550298212354026750083595216636494173188343593315025527566425030049719963970367662962631546867325964276299796581772138438623631905806423558662431928431497950416761779709425278489756089907850635295576625347499416570338772842426555465767695318675692748255602233703455464752753339051390620916401214393340144159851891970485129743047189764978646483649693250634792081897539210776630428959534133772197821636218289314126346868479098555210212497473357711935106652791861647152038287562417072987316423689593534842898236052826529467164855896220914778753403170606780883334487850343191545926270682051454168190504475829077467272717279498044074994497397205179459079789284573600602384274649752776846639737047780164857811213858643749893505588517060042753187923402796830564152277417178980809255408384682038844721276199543846160044799120143386014910158716509710068340422563676225018643049623433215638624887602084905928580651073877344852721142378174386413565709610094171702830458389700160196038056802399124734948519544683640532571971777842558261024689389865772773588099560505162528049420281899863132413066172486333877434482521163779804451131586127604939128512660475553202269843524935050076108996730031278966680743228012805233126861859616023549277100493309181652099351145468442987652828344314698522276573215520844704604313373005064079969596497863855851772796169864936117904020216803764791112127868024118921261709696068564192054522092120075989529989391711180473526551824051715336392557899840512077338550363840771500636100895156131580612335494664605215724533104501341224115742734869391732514556509611178058954336978924438425896197823822993715646664628785560030451462851736454757744289471325244545522397541265181781327388159681406694877129169352422900054671345713220231268280630399344121723181325165638985956694012447403544179546554045895506104758631945625273529100715319075056902053803182006468804786077324747834584836907087521295518383565684184231110772680619288772923381646975209466525697981649654827111481370098062787032801050452815793068351855827353347978634048985035209608851862484144204246374641611836121781965068390210066460510471321603082110928894659254667983107287559595884900743319404539079364921235368884567682949001155060685463994492986581559859277754572774960576321512049175732735612789274467038920802167320209121157757667161034255592509914413691347383762008473145703643199364521098534159074942722962806150849957693034504587780243055306632230454559964059587587541028103760262934995578851710482552177659824105214878085859781382800233394291320816620144848780189416858036163410210315362943262581332706029706943636411915032272749352216103843748543233553280251469850285039302271148685715642089480475220190669550684521164051166730077742707509183484580820072877157774678723062223060303927644739093554261876811126511997239963821616430340878456941326550924587891051099134944725463351829821618110333765065148586850599075679615302097999068666176200375100996387828734563656344151729666778860708397343019414495124808257324183558685050405617921302402579868114726647604966666407991037041815669851955591367888822822194903450912691683980612328292033803413766677000614123059887694756294120356840573347524477828943092619227427388061080323313997363102698822038564984541474120903756893159446129478198756820633529907871804501796095627229032905323544538812942112423588979888144696206779318137695284645675331321744654269859523620988779216021131813014436797494928434902741757229525537587682298496385346570888051561818288504439345038332279096446920090563238020663525605558354402177929857993031772770935833149121728321313010805400529313297972270964268674455820912635277444219146571659327513329985356298556991895304616676986410181152985021433956122339723665398183427329114945036072767724813626730708241529585494315035116388752669112029541046283348528092579777332125857123921840426191346969786087833800810410207202951713682031290064470420162395706882809304270555678030947027343122116815487683958981432050394010006774120585062170526754884897849464436574901766673976647979203704166222873131124686107394384530397204178892696411232538728676105849408423840977311500520949823639966971282434477730696019125886176226818248097025586789773588746755233098682191428850482530072339769999054843131039835402067193156692551489021920396838773638142074905645923796994409803558110406427174337930914839628691177265247625885927247369667343518410627574934979170375419031373983950182163818000398301943619757732217963350668677861722547765258050079882166887350865994128805523590924153561700553322815182277943316497151644378051762713549785307390209239283102902207257195708842683125715013876176227219571381801898739332220114313932536260927151608250103268991575212454427466141250044053659561292711455170404643317748815456484638603604696787307438033275691520528989075793097070095202270318454149929157248622952374609105621842047794160940570203786222753473675105919211795079179268694164130252200894095282735941329316000016816953124263383403786213152170493638580854161298806321517821371785566524292186691793042062518624550937705659488514377313277615491594309240029988415224598550827975659990120020469663479380042191856016518584271504321728492573225046165472741514016943176263495272419950418529326539230091456385869330836008591208394021814755751773187992254131189972620622135838102129405283396686883114925770106660896469254677445093598763153742341666713505400810608119747323673167359941304817416171343618932704450014081620130531181558468227227194034192681840849270502611122366713409362101458618234435036763577666875836258604736318023207633541763083460091787281876829450880358000517690282232935800017031901714694209201607864269336830217111979072077487060971466796869532120641896027707083058488190596859108204052167593956555418135203432909326877414072887455731818660121018304757007984883408897175872196970769827481031484574145976484038089941320984418621883982519668972550078603016603986707870856269177192512673037459353466151301587034983921208578379931679291892340416476996254109654454596132965863022829162057918054986623274936823920491382294175310142643604071461640515727368174004924836858941951806731670758673931269596689766379135352535254420222986522777130152512812244991514547646806090180122016391807361874468270238738353942076896492597877091851784109110405438713280709864020985148018720029349700530937605174726427708893811034861575800643491951616484025923058843165664723740111938117926615870371410351887294521021837408910921931900003615537428809876138822994055208211735114488126323884493404663512093426141404985300244455574779448939666635134856561683667429898789637854760441314303336913702298310164730320331465343124643790568847929345993308503066483387415849885095111407961280089962794090153717250119369293781908424129312362458142973884031878399382861380219573124983762753345224789644173225074293173939109548914757579937702604232702093423738859114661670172959602740672234302446447835634023446577099131925017687242276376138217180430518834831873057118006759491166281033894089735945088634744804256348157658244847396969510509619528237928124091621534193698711245147539949563487203378116392182446073702449500987710655486337471196101764306114470204429280981225667324045010527890491307490180682884862979279437306779031898784058679152329400345314844494638385952468276517154093768468352955176698666118822880605233497144885585162356113721918499661590082303791431471588695162729442267639338685292964028054264354333381232371704399367498133849881607135345208000992292062237522234323972114161742229695806276593154641242054526990031539977866809765532833424907896126653405313902423535519932473371761660633178713729563781822637906088255405331188848605429978278618960503977988537101047211662197328766920840923963504659461261317668883741722672215819155134329231091374100142258744469717481343848879015957676870877493983699179549018200114462933867027894462301048073293574936230587091901164966235594296831278803761029144287219921236451117630222002431786584400570280583428146392223967922076115518455236109204174087011446033510949370052771175172086103632774228611373734385131624735768769839063541482830820809240430406478546349908291577325595419542319358455574044231451884727074530630126158627873678816490808461353641392877139466049649596445285377858339753643810020329737512544145092457337098356605157970191280468139722182392472953910536501894064384516829722733922885376214247829238725143366941714980794023164023905688498940625056968081780185995086903094142789354857301357936266407471488599124853662563458986365206203276420927662260601888870629981050501177986373816142696345362668053311695010174964022107012083274591656748854366280149371674125972319978930919028397585335607769860454109921407877245982035829343285871633578656140634261876625251499387956187291628950005640129233874686650852859475602541788240863226865914346256608631605841006013633879569413055878894156221568828927791098960334655762985574793503506023412033770944344702059047016756665457021666219898038663978368285512562176849454423236701280385094976838898712406422746827715060663380025914773915238252836441805301179070659230096581808413993472194385808180934600239191919661503414801324245368971339142369180464292722331677683289930840338234562507089207577414736393124057093424217642165366443306899221477968976651783668434710344837782209006901684915110309668722597522891051450304859377139440416322617557488603961074214843530245141990116439044048834392449948407859546209505020266651968188027819450968498225900235707775882072741811405579034036805584245588890758059566288401230247321712262173208365883477656744697030451527859931263405699407044685362949415167405296483524839188187105748832150661338630870600525329575682604410802823711673186597257869407856208312898757574977022535481000778194051669824197535669203595412494349664655223189386554311778778099895810683829793240403220039285118313972738842690889595518115467830975192282635602421616905436315673423930691336624939820745626977861418366373598424877430721098239630217879605315853591124243341000224466838780287742821310502686138975077081727681754300862623200766800872772678034222006135253232150463996337417051101781590903690656047484232067002359437210321814294836661126947161855124589627681920618832875490628057007262086089790589723166590367050073140225412688478682008280456906297962964579563783408119953507251168649074147906497862202684056123949337997697831608081068967676026234537944280913831539125593469147558467306334986702307922386811733493558704182639087352481949241229031313954768620472272466299556647240828349158351749899301952958637882353012957518660603360607757641432767569761451123200878369886643774725229006886801262079747033073195450198013992593381644817686235143339070403526040253241774287930697600292630348084954204534052269175130511297460865921143958729258884651278573168780990431038325904960484697568391344103505188192448873301964197465186283100583566309449533082114399345002373735227058829874162784515350720460583471544024303556060510486964193907744434427604484750717856764483098257694051307650285442825847122426113353598028222692515692423801803138868190515813169707103333081492463112366923045429028934874540749552176931062559279434137784165576020127937711383769060895449353604544075950277040829863513543340144173389542793585571633695864141602526805972437372377556554946097270360874943231410528357268578026708831650745276632173580151568847544185734712517025272288258690036926396940369576287933901269214741150903830702274233521542213184387326478852997763382631366643788470008691418454214056608530752032226849360197044154372533661571598118426935738848767096782324408104499629460075453543066013264525009057513899051272191160968840703782529312435326780310993254543987250735094569826573063591321726527901578568825444023240509242780104116317594602255182152274416199910316794149378117683095108525893387048323432008285825360557951546041053265540026756221438454604034497795091767935947185121153766970345366937883933959183838524953199822531649447494715573841147800386240572288029859810771582494391654847448626224650491823133677659790471413953667803774181717425989627878147067929217286084525394604231722719826003564210239049164932541745563457173818488434557380623324872865729769193310084540256962472521791765916299273688161091253354579150410036356196225990237453376438559096615116476754565918855906003550488628041559867112537740257036039668557979226547952232576686652734220321342084045356038069911948579106631758525384987947888764484788331408726739251314007454866940157939074989390492752627592587140734402599227505479735529064110490180705871109773952994415454576763224014344738885273421258987951457306744974910506622790876955204041847935161870665435837861904646152573541805636588233941045986954289063848355919792019678771329966493591482007548695962543996266303523992411199198441353475111726661648875160085671280221826978888546303611052400052447389319398043443627422121802305803653074714382725248667700952171391991351568676409762549540027477403758712013306020500998616580892359860751136888505323368590903013550980432784853216277049016361939424377579615172942757469402501083929298934540597758870955756647321203369403898715004404029985281834106472640960380075762132465009564510690767739962480504253436779170148116942494037240719874088215262563036256735852551153887392002592331955846983568210982982538392273431707651001493108522211111900082724412648254250197544577518519992849851057982681548454764819056701632616930716409014669883659636470285184014233819858371046734229534422867328936300105551123419941130030430440791376271846313118443510457989881782767812014981068386321863192573595031817783226812642667426121397677426867992497282252685902633142700834680347838728849266076257131034377759402269759365334471574433241753249908865592796954877065043221291161533459738026461798655167928924042862097447187050993196723374758694718501794642974357074760492091387535038760559670733388311839828333694057809462069002993420351065742550505132900808657905837360185024625503586552105247202393498380682228721204794557893864695733092734660073633990416122853033654446166451210472036602090335665852697479668465751500107681954052780613099337233376271166036937471658079534853427452149007632831607823710679904072518773704341287339294163161190914598033968992893815810728531710420632057768129790152476509841027996766723377532206954082510128551683323031448532482574991213547305675863520045080168756312549440276184463030246780947822516460722609432164615649803158950842511666094239511798554705808184410480324481871307416344080661411131733658407482762486151241074347072051951967967845825877121490991044546765323153744712610062457498075784206505881692574852776141455841957053627049507157076776164134553386956185836226212064471358313895412760355408913747002112471957656475452605361539959560146190955100030673658674950723854909958732627955789521046840499775025206142869064917563039681703496855712764214316237797756657135425312418110526216663296980322948339130119735662559244383506844582723396961480441115263611427201002956775145052439198763083867968452109343075298330081714790457684714504168003888428087126517258962207250499077948279153234285016508711176502730543243376758585724203197239016007067891959513206392952406581083421897313851254472823749130233977929504127849451236362919764364376511823690234595849699443938912919644155391901202037618917396949341677932308639466483104129875693568006686749667309283081316296321168539413305512121524446379900821056790646440372048167198093795226028343128784158477257236826007179652407076661798878144155428258655855548074321044346526805661856179017931355473422368350986691851265461497258885903059623937919603673465620156862399353754979260033223738430140875782281472496189456301342368451347025735713839897299804242682207528484000545698935479581796203729427520751014028661728366681076613736544032216011499468363014740881733609711660907011572354645244085293243437154203096091501113949985373526174795239272080726954961493472731857868039732002777570365274960424954376799125194102224791896611111364720282690170712934532657611346308214187246106803196733718869953901433146360128310276541241467513235110120399445137644994970594964997285580438431706770840707792276346152349509609726469864071715586511317651171152094550712321594888871363281236397867296243190572439425304592067333071860173315263218902693730119000909256293213151264015396515794878284871315760214388527416568044725440895043810010597014626314897888484301417802229443643606020064952777273401622847768558503149236418162667633092533491190191308496740313297086780333792118984363867723649611147698972516026308898944910418322295143381264321317613981776358149398559445167019646060300551784439185650216695973487461047572868565681479851061319632937230502326377416944654058272088679730951998780787966986889116749500113899952142663472105359477752208794694845766404703036329823153463484580399403263568206059983317510998433806614877623222936598477139553328266460849060636343161950190014629667902016136015723911039993355696317087153701662125786046755490627171520104400362223165532923036005218566320368563037213093411357618168884640798351761110196371701791526735739096645274645568691905962593335212370309782671441649133720355914639623540319941792198624032376664819455795985234461029714010237403026157657524205994450003433430323694175486890344134388360324427896244075052063848779827476746112614672272132688131854050266400852790639352311533310908639855386610925736590457055478514195282180751727348108333232860880368142945400804370016993345485363859701892950855604506012286547083096055371620601327451304192218224135487265158760883261301322327294494917717197141392349654136103903722718645136201651324458324615040409915426109392211959749785647313417397971300027246796773031105786339582542187694206799881460205617869100792807035998118438608156870049857317810420951549160877729751235035121478415848371260157541311168328613276349043432859560717214143613485765571704837754311682785990951501790070312905493491385652897841108913139216191099861437857853487487910531663149532800811691777474163327995299141496097819620930119261881102887185193712450932846719031713521426671181033439369632253517939456749966074214631411357025663289938060949568783425281290306387051363315150650447719660397989300970121239714756418039303525624345507361528345331585378493185633487128099289946349832118416350024498075346277923769398780853835131003454192634091464775718844470657382797162991047593823928507948615148091572328444066170167491765941251250891424292153815295718624957515869098625877231311981450707837974330465413500787711162491903758973673466279549967255861496714835626561849408350736475805975005706447348373295165605880379456712178221115258456626866024948136407708036784274666664267924029986758176945255312609348154530052216971937384247000851314280056740154214730844747733389954100795871780132971008142748910222551716947480365884554026316999462687373887038548391349073340656012379853519810073591827213101058923883353421033512382484903020904686414011544369156240415518099354295355604415632567725262579282051947276308006856297613992987411358753416485709309391161476194512238632651914376408587951588588900954549358962406803604671504516192103711398035594217152785941251208111510919969611725093877254518112562662888442965742811842479237686558141848378947263646114957024070095411840598878671463294826379152694942500936630649220674000764097801332544196793011322570844495717577713634280370227237722516100994934262971615173007375797682947724787205855272048575471485902275019621744199915653110814992106305131728284712990547582185511769276146614460377412686374478152520653859582207672690605196475807892889231492676528254984432208104721008579470283915060766513047131992129802445856396111325104667292089984875196430128057306124730913493105055305872505125597022825246048045829056301491170312820625222411708967704416398785799119316519100646178396222702355852849448867466843514500946904548985823704115329980268028634331389276461779673153396233403725637210446200041861180686651082135286589162760343828142261300052218191063612648816471099222640528208947638999423178636861372558708458417672752948904587062468591405642089165174252038319114641244830185954599686948590042217975083792343326250138019422200501736522210300992235829987677506365550025828225299139596832756579860315058369275219168366621890164536875826331762894178605609796074110357791901871211784793912137393213538156517764336788898752889531406809113841470641167177235879614888049119732316153082947229808168300057352541338531624203171831781036393243941491613842627952396517216119478494210168720269250050602935146010863431704957681254365514741130038601967387702744764813027398979031260217449334427846714528014071450178335092901197360382824134890984153072023284011557360225983743779516898306216374838581426077672806490287294987623205914244442575130217069860230936039394771424796834520492138859078519188844524017386516046647337990228745070879062697563095616170121703086107192684837497280542557546620474563646690184973827625300607585815052198755010045607985336382126505858531119286591259659093919818029614621367032717469423958064314438008502893769503253712741978962868019086342890305859094154777602358303363433663952894792283716048157556251918934052764183396801095602609638845134391749735879190984396761996298643422634634547945162416856029969451785310641181093580146397161700906265657145871850745121628213043118615385853709987545794837415889873635947095340996820539859599857174286165292224367913891532848092778023478913764966287644343185942229879089835080004324970362016172810395612426032546922015967187405154329780356834380328693770906755586402780469534743373020917628519252871748818450635760412601387128451573849326089773213844057520871580625836168312650567149025282059183752141345409397122238175045418153514692888869171077868089443054284306277167862676488016450456714099263332478163439337223675121863682935062069105599049641100252050313345575443798251002006592730269278521224035075286530925387519669323495651900595803698904268918692295409810748630912292051838521196617170521468059963948681482274852819710409216393998936029845820293420292656872471192446406488530524235983279048500046367090716527170003854093261914340051571965184368317119036238953516397212270639124315916458153960097306520377046462575304065148315369284993743379871517681984604137270052846706143434158601947839933380655807980613343028184226532635524762297524157558187787545817532225400270275330429260832492109961778577491836283033237460337285193580899998839731922304881459650555763950931212196082458216851963385272741421425755789777781009977689942711580629479905164927730417354414210582335015894819869938791401034195208445048615304726127532782848699183917640315428209800054124581379980118685850098520142141901187462510837765731741555914158018840640103507448270145203419251000008203054504015158106727187561110424776720062044733592034878829464423353080877123351659037020011470680104767548821017353776165952765251647124090211276581793424054313308249617092172143906466929252031865876194330661394690552405380377808004867789689824253730819227431572697255741504011234429346694193521372196219783552296660049684158450545932620711082318201750177928478700783021813692581399618351828691225518792876984353216391588557034867221245264680323401030371179836396950110292159084522821609522680759336196115835067499672703090960998905076935437666474876764609697875446403828849040486379008705161115341025660642074875447217812821197223369105164619778402229648717609150748006417665806098995650333296107577320528470858327485133043472963804825046406303857613978380552703483146133703023380282233264517342663567298801170053302228646847871855956021038424186542541066991256199390178668236816993231345488105625236023401061044978494560492415745447598017246995698935114876878571304232504560445463760509848998779849826020543920388619820839383709375216473885901975679689988717551598519382607778952567949709219466745891862095340202107583216143523275785852933822781314425281777199083716125604105518905585606992657083613616638287819397948576794545839762362962590397170489705639604449617519063111773280321468381780223851809670875205545163102164252671875878653348569800098938307512342779806772614905112264754669712182560322517388218862050735916151349231260280520851831995816647404329892368474273776354943489045754730579102167252349634388817150514164010907071504511408131150976120958435424644634278333756966887594909182211026717964806463289017368709161527306062739743200519472510337913848745935161265435010108482404900314869672429285335697642059787537876524069413389273768636669016638384546973912832386534830029920826789990630987758705649721243970745739246399760405032973742069564329009995380590629977103556581071901630195542255345905840360147158299820760395122923033932405221000328405018619295552465133844104961165525406425557454726191924702813999222268572942838697082770415047212070686497617150916077178814506228551189491431041452727915312694779968943618255064769320014279800924142299863711241721682283508040269346737046556165864562944514771518805089495004877002625934362227352657438670393051825634565038561180151824535630702149597431572622888275317758619077260298900464278644051124164400357815627661176077402609362529908472995532820920949173784680643085221901392196318672104847544267513633887899935651550949496199298624542765090386218061127757154298021749192165819166121568555092389389055815118069670540313514321279728052522597602629931455681579942488474893713661234668787556291081466789973412371971011470407640828298210959812241475428545266740636337985110589945713054597717338774643867671645646458331793611985606669823830044301454089234761047919624808234921206790258268134088930323871702401354558466288177855843243350497538723447393098765982045986835694178272116172281493185631300109002586334317654159668223936091273037995895139193798650044203617120691727737303780686937984651681467311982037391711073634970440858336867859577831314834801955943725919339821762559844798267325249068861588182575277764410608021190600199891543445227591774538920277896201986337637798632166916188473184106133064786566082554575087676648808769459542632712698533144051999679785679327889842671938589624039737223350556335783978581702334880976323972030478065608267006128902117822671777078150078433225641985426344184395192099859375238151176973594350736773922284733650052323679455400973916341395361616218478448346787023135381372614520895178995677514064831367790995610296258887374014355065784014423390928971325681695513579766668807481239556897737904895029547905809829152911093645298712649735239357366570831423928580389578992483457769900409195822228133258326376284942514113228426213344970390404689089867142446033563456837062208413353944937628000221879385787739801635544208900341500502712187968486602946689451222865791184053536131222295336751650264781562413487353551908641945430260730497995231384428323623926280753825654915286259184745426139293323359580366980065006762888124865713606549819622283410543839729787893519493730204152286193261299037759550694039368675561966945629870777821622390941156185467834536139482294554674914475101202627140730562828033249555845097583655284852926127474286623335264359872531235045601390338936980270266560053442909184856209638744758872276250391351117345892946308573695899382481689118194152606107317829789104672395710484236732515180712505283631246701028456240273998259516402942298769231943167048016719759903196153747966287007212089900675155462685370411666979996040890590591498341159157217550384692297191320812435387276844779033582490705030064334802215358771220163443488781218804146624848042833041227547861741667864527119898472010017611783157320748333098082132439201370792258843905004123341355901978168652712255889693013642394871609296544943652293293459833864748385653721067745890263824651266470933647408506220134368600537356629900076939772598739431417879319878458719293513950747259068971256522072671990159312793330239031885485371098648420085009476977451162779351776840977080931777818746534221887055272409435758543556897333903414604289609197620967187171497096569791820743276212153538796691565643228955388033511466070514569823432483041681135032056383297277151684865073123220683889888651107329760384929053132936888841825516236869602145620590388304824738693337510581589844232366968484508120712205383402435026745868178765641709484152409736751294686641624591725366354670670582346250748254306052686326843143917854240592520735799778184388302355454940322739459283015147255196082077470321218968399312594573286867858494188076887419316753249450861095956379013141888454951938337202645311841211145988539762680629274395695232029625056513759391784667497259631019090809664345857595167979949254429679393633133694197459523942168533665215837494262554832313800867016326917754317275047732834272028198082819079195553211056270394856450371709744515519785888247242485985195297973955748264180754378992929657760699782330555868699545727859851464221236341758727922484193448419977893455454219605580102565676607968177791513979572948567063729664778640544539604433653966300776312818096413767910708296685410877925164997248415371464061493383076130083653300893523270983914342275784359460739882288391388785576130871763529312123910668974530944073789708431661147232473301924462797617025974435397069342423616050515261832314230190638515452473586869210184705603525260847316308464239777196488274079558290742051162470874557175517931559107025553584252739204480757248719511638520469740112627989654197163593475942548643324667610528441299776690727381500246240672179623091426076082938999369564207304313867567695373602594303728203097782453100531354001373349184716786498115682482060605763921475570759313823392223977371300306231470823164721439195526464678087188197073836553948288083326069948899108682509298339278427882669038247515210400193319809060165891139145340441115807407300250906093964398838685122800669311789714275896099941110925970004818838847270421198112527853998443585756550984983503134426318795216676941067543478253201288713784402855351045162529429631195136207478137235607179721539991244636565907028867609586056035201805325465904278520187467431150751798809566970941922252709410671171277728764825655732844661236972606458537069902772898343054578164211717851657462767207828190899351291631395042626102382105008928760414641911311832727774456370326028740496127634531815165474899270046202861878767377965907444978743469228427923176700326610327342110117821201052353394149326432387282499241869300756516997566572226089541938826395910037479342160031927898137665976868337468914570681584186414153941768074053484270162568076888312988064891608230802061961158454589009606003522756312519809248657045475370142770197317054714183983859190361547716516672472861904540233585987258976392749652756618511407133919507877935699688845933141788712026526523683889764231836414044464738954526950092099632619082257045463273720067068220463858034910879340656466220009733470895464231681291986031672512175988009287408374103409507644234614464804303105425224557902080518580007976646199168738053427588672052595840251554360149924253264466105541744915507544074221083346449619155043175648891589591800643212208380986976603169006640233072819475518452481475292335446063205108129747814702458246255678728637228526184466389339250774540158064783557204228747833928297239319296382770631428306587908425627235226409833061600671679690327865236436313671529043411208733345818858223466133362721658148994891284056532871014585592497414173983913928655259899734564579254561368413796449546992941156554623794722153117320658822045107479480521027917639479571990937506769538961093961251429432763572725577729921536273480466464516654430884929794581740488652926545766540461074656293944291651821156101659016830300855137910712935820411193523569801047979736539505784862941856251416560642170825177306295864620242868658475221539495973125559234635494140833348394180639414153359782985585295794006871487400110595022738818499956609607810563974207983545173299830677840889417107158964401477106549256120259424742742104369722420906373363527639947039302252926998593398469116017040536221467576526437128827017341408886806122969644990323491613585684477352888176281129468705984953219132556891537898810135814961916537284394288062688698551907486201018392376495174084607541890138669413693516969849446426645432847950883210273643521924259551148948591073743197607775454017745028627858788569977394612712458934268843403888189315123542087665698878529061330697843734947495200225086225188755444698495478208041044611045520081404551609479041144002582822020213670727488084313946947212437110752880899762708053164218666677712980364138532342095493209187659785841250484433815495941579092347575821448935213691054158397698291579127147892127046872086548780758546843989215185936476632483708495746609976867216316003476267655865255731814525378621688435192631509971903398641674430820107143671042808282860996536611483918110803621077218821094682506421876805671338489087694542483499981009302913674371396539993839829331262654431795828604373964047962788090905417053669554116077101266831432859075919103758646628306613840437526957034342722313576461993229206622651587730850889669861789585798803057036071317909940950264966485596332186067322980896133263152183057207913058690730868133275153799002292403255316232952707634526941183435624671846943492479206874360830811331704696647000603694510653087486467267582852225442380998509008221210496700028939474562190154280589754971018068938380107061203085862069243381969816990576193166827946858431473921276381839568770909524079920950897534096596518253627626648444571370611390177823515588304301609343276886097241037283617507611040186954345461714072707896051568465791343288287927353877149708768600554093619156821773461347771682369568469519699269469216479575760797822543022342695587750760914991390910672458774590614312402956944560137792099068671980932420773761764934557324076165077173093652182963768056016813787391095197754846777858323076784655457303287422761580738631535859100054733406640052443427411666326345331953660750580651909976181027268782044875689195050058108196826309836781827908530768138128838367167890331463480609995088967813385238032502408055242032241721960720576932818393727410015236242325067914078404826764236273866044504550212201068465244624877699674400574876919481044320827545471475744162795093566632989262269210811037757454512541909724308096110919412366393402860970952830695884314007983115295409332075488203678321765597545651810030753739008594494161444447717052105906211357270796121497782217979895912504103562148413182808549757874010381415598253460484841134364550021451464229827744941119619227241977943132181732409612094327626765456151383972708574520643924113239856266670790059545972885008788568677156288712788237436601160918155749453281901698840512408629946427657128050834848146165368033490879326786727095797056512602114081739223875873357167173875378266349981829127603911001430110897564392162921962668752647799928549950314085430785131218887070046311704251367783907651461515388336165338957793534370958531645064635379812557095456135537386597159432640678478581416171878734867281721525168958708109512331463555301210444017148036406058362377439896176887090767465268107754930753800520762651836760833046741416520493024393330696922701141949098230491495356444924691561640340772267164361635806171797634503828604783139346406984828163819016254299636213241264713943009523542901924593896982902712492031769527426098913590529675657527654047598623548036025265856031632502597422456666386044633036779441683337943692190304498237171715601966141896844463418072947335455704113999904440896209170514385643192282464774739386552589797502009673761324180538695238001268168850341009329848161578576856183215416756436278855646818779755979569199807134773687815352307003587239279446871007560906269585428574441311189841611442957837912921166953714967311892694410770627726532121655481627001775001584896884437902653047250568102218487068857576226763276607646627661128267078969891982447732925250997651480888511045948447369981382068323425932267699660298811386325344990144000272610493727487353661807450359430325657111076327330881305516156584738008409355544395247231117660919190178548948551509716255165864709509842268279182291505806794021536963323489313447616149400437381974673356038624001872101613256422678706519954818313998682044435144204140865670592774078074168028944932328415869069396129432593366842582799240420979521970921129536818845990985297945040847058570421146934973279708555238442856304033093728870048600744649228753849455458608603885656787832317883297414885193707679957196616250874058004731542938802653101813123900378588418484290899058375010976061145609934360855851152742675117205540084349184775978199747441818740110910979513239925122465703686976969665112396233845697993937285033776629821376666953459690745546482102500772207435956017412772153995967724061080983058526270377791450967319324897139637798981837848433874781707231973323059460834639769764601072925278965640230889808944053789911030959503041671273998457675996937185778609897789962220300309994990381065369052293356647710022289847406553493898711066387530032792422389615266983146905488622545933992806657261019350529965461002277973489680887911398770850373352892351113808156233949415103331550585739607236339953233808386835873486620524197531917691640231436015436748717830589717886805553014535564397623118682183339662666775378231557957043622384805003827842199829504500906112383390322971249005299517473362294227203395770131572795601433246854747460780394094530184888838786383630902061384269547129793932318754250533363427793947913313011058554943324715988967255798752030822784768972920063042074586724817179868877931746938213492727574277648523574978202253561759850679106298775729186163864321038759217559764894513273729914091621168815696417998478685710328177302849654941468469810588518178507971180121806696591416792308739949344464599709657382493361704215579311255925872583505713871729059678143623653577936067382877167674365100305029715562995354738372899921234016415179605054968508016215702249937572970444000836284859204817218749950871109724240745198699759662943597262130455212938678370036800778136202056436123223673812145121800381316587460233162628576916951912735555675396595646239462638891764915520415577591221469282028088568821975948296512711460708740999636005467502518215940080403539523574742103976478642523326587211994804330641757130181593400996365680103754099191205595503272724644532342472239878999725008478321646003910116317520219202509773613032984129034562242938530288617961719408691440788705650450340467395842011177883340272220221035925976069603791929594792936661221258466944380577576002760531579197823213653330145383253040263184057122993071305218011427736296971247397041671226913123908127726300765048879649888410955981973468618983661587897890656174151423322287160248861472489571618938435554437392746295210744973466605984520137934466064815577027078610570655391129414293452175387452657960161672756343734696422019926682048298531916836621039827623040406898826491611727098213161584471674545357762993631536841448077724169669882003836236285557628565346673665602497300452412949656266677361219596767823909509854931518557350245108374083912725915810806070974553894193343129389588521891790915400999426857288832257500053890263399190342293184286968359580512993818930957487421492216257425864445134373032324113067645513453690077498049145732405614569939678186673863554473552019622269219458517755028901322955898551302654037215484374766398045399432462470248102992289298470150861284122735130042083853703630876981047701910635574948433343141278801716170639015997331336297974619245378579060898696995764166784603303809713039541924601893226215330967553708991111878242557749234566686048734599939225555500264814264425253095344273161046526038758837646989407011826456634004914142914255499448764371072863133171154657401717028773558802098607226405025817812684429599292772394167518801062033250485597806449114896380998848891309579137141085480452396337642213829714557592723942406949411786215506113167743189533521354720261931615737364011103518624785854665318831168970453074247559479185166562559853502257420251454263155486666295459117833160127663531101930574745402370241786744851435586319596237456829791579794163581641140741534982248229846454037982311869528867965496357895449253264472222307836487932597638395439875592354838257222839624922128293902864139506480341470084388660415338211226459239649613138261522098100024744149684999229258985317318439103465706994322071227793123371218326978162050707138886399596862856591304940246767697347380581001140297766439461412356370547072757897073630118468917086932855465716846306738411664471650348856451142954658446839026094882749809283978378557167260532032051452604122640092102818974641729442888413511806426801576286883981080498190613808539670087228062235337459610001527930976227594873448629188248091187034028420063383192640203223176359010158251658138036817501048830914201053643811707035630050569777914547677325399491687326631785030109927419874350544837248023852514866581721659141190601195319234611194338498895847195276885541846937514437159906024265995603792264103311260251456270348300258529511737568298085769890270024515880142653694839850101569769103357757895243530359031698949555729097694325173863907744047550256567884834062266599346197487616401317735485696113554863369686802479602336904479347950378800996182480660900753494972449901536120263479587986650710681351883782113540707040227182691031330815753459669099635097432357886810882272222402492836862081420103144589410208449108743126280701294253459009649600434699900464940876545366707976959316741783150964988869021461838354725503175021698835722661465339429298579976154004711304224397912696309253226900718922447697478737166790060761132149873459182352150857947533403249755015945449882792959787452214294181431848822575154312134434257649214822773299135657155031098003244813107941164871697194251569637118057782780123894234276348064036666053781375089072854037602511669988085301155571338923255852404754349320585495245842689152909665463184899179980149225013665195761616918551180917691269685715892998992314876806737032761126207584242507096348839519272745400907570377369869025578447153081534232430563226565847370173088122740422697005414510751171728198759616209266596679537482904046572041892996258531143345545196816783836545154410368144214858468069878707088128597620460050854133087718854063829918115029778511104206551709703912149114745636753276491861844197059705836297380746768539953628934534551504700473641647069395397306635803922846569348118834146332614184723225438693019118755333750734301231551511530254685723038888682446249562563100438999667450926767652617024876139791869820969894470312556171674636468435515764564338353487632009891936638473076673759243394957671466275281399296617821898302572591457139914278895034456951727381534682897761701344104659105713407541645687585765722407789897922625610490305995048675461640387529184777438877924229052190682424210928139369033466908379446397277481948512266495275925376451499017461689905279264534870671854243330715827125134970939507993197012350239155115310785501258899148422120398829656076469165801525159266568686304729446976604948165340499069658286888437691523799955924673516504077517172614268818068587151229415596789207646848247214787154203686346578728419097432565082664471139241433372801188880951485706239500326489074358214401891279768922824525837341042171409248435101782739733146022115293168218358911910955153243045868339892844582222642088801928902602268329306482311634674513371452486026374907491473688628157040420553164088634846426269195997822586150961492720131995847834298499777838758898427431048548128766684494895406258201050780334193096715662974042440431791292319785167272769212419272602623056193047484916582800778183848869883708313773408028675249892614708119778898279149078313717948333965627577267766654681084310011940994425193264400195432132149859905832239805265810095078578015725820295235089012905596644243715275432258748957972752888577799086943002972193756542501758686778706431808202845215041466882995808450431780252747444511673663203007354841040277849865635198043361684017119144451884281521104391858602436034174839454363673778659975016404687012242485202195820378272724196738968562767190076742456798902546380929767878916824063273930384627612284680998264762356796057956264511182439600295118506378392459906790207677593477206922485880283169238183773071379771906665277406315988452002193766543681293861731070151583170899770307722141459629880330489896066544050247843499403564285714453384402748852692428143854028267501787232352013559496074208768983888069822248777943247284559783720320717174715180830385992215807368191639336468838786879443090579356361163559612299467463186725756170795012263300124826230535479939921036222107707894163457442416783088568770331151097673356029734306279941320541549429439890558561241714051254718340753638822058876122434303901323084312580360235397605328486379738461523690345526103353754546143884940217319329127566911755202671779318489643661781785880507757048884278652019866606802509092703893434865107560420722099489920832467103566849243848129246777027578742649336278192766815006000140335624070491328189760729837099610067093318634199341470000212071559566479326479517361904366556421101125618558684114009636142775543334215174255595635000690136858064822368137637458081936066659866602180452288372284872017700015796618913673087981933025441281480497431675830635573497011904276023137640040659156981321600569224512332231888214876016580687134329725766704870217228398253150147070241067064172992961156439191845222762377781551075626963919312407968952338018137887062746750976257294766276839156510042357544242397394510609818897570055487589495979194876767934320696576415211451703834796814257941036053001266823032493021216103888855209307061897235603386183378552680325293444251509810268278651155431699991952354485655133921519765499368634712410402804485746661194259431272441324704328065792345535132271816610847625522209243038165899657263512898942595775134393076141195865394978217763548816692886879330377870291688917955337288357221492193856610028218725001359399222184263108747945465777720763104993828439165530491817254761876277478279425676690673968692113291702191717136717429766731728503366617085402282450301239769462653641423837712288412165884809991611216826157173895595255230292555910696898625571860388947166575427655544348799008779282455930498959676282532839737835672993701849195986105699919672555087797110729727770162310379676735477969760255716883242849130483300703408098642295122527894327557472856903237369521645829735270998416509390468609022722787594629461093252004313335909676753779755041968982448363553368006980090234572183359381226314603530713589942818515029525764621097912908072464857995901343522142805426652376342530063151476936902570632630701232146231044493020845008695004579911995199221203614311926975488718880616382995090179424113003315587024292650144768195806305810720673618564781221897619748296692986912830597248056975124647678887425427928792959701402888909375982271419259032841486256506897193845274610830637431047524510028654485189645500107545291499234858816092409462113893156627291780627757178529828563975926446654874159372529391201965919352591403618169743723054448893571032253905411793145379621086299718942483508104833874803303552996081955336024709282092193275759986550720882032704939884645225028056639382773990565842541963128166871822893194018018209633644495770838567298517978203621030560098218628246683275107561156709107401738404367059812461740484384562837184056574723158338809247953482979448621515289612108047606935196908790790218458034440206763298163391940682038374357247181639128926725224296209363561799218381345575618605808373929287071361578463228328159824207841382937106236028026395488086203086493315725046626800070237897845027060153929970875706354337826233605783167287991587724808301502079785073401583983177372349401391923150856776033582829336313583253364302536123819764633533434245045602368530674744098439944433423975872748340603748158727747843367872107141299923500855648949610670547449449507422030402283256324171549911736705608149333631541151989256708388613297653089127296884638531660387448524852192682355954427750526353820568767009263049985623238800102910319506351652945588263196599372220288451258904734166168301042189998420164756030886191211407274750757649854359921840246797039135962626310658804695584659053127544246074900660146936337077113855918974804289582969063634136536238069551031369430086181728629089743703238836924045710947433359547118111285362460408248237887524088176298661466942225525581582645991742288339330962832050783319921769011750412833353572121979748251909670236907254077215376041756583668348806667654972471097308218202417330340500128168553805352331480433151474066752914320910045035878848471282022384343916522019191349679770689770946493636377799312504195610214364730032609994017434701871808723029830312144919960595178794654212870424728234697958767510708640982149248597566148074939706810599736778798041758554887490942178874636429781518969006150639160180887330593557784859139484261586443275834328941392362006698320982814972051040001990603110726322457158008285317955310003702013542908824600601039215750233725463671016836516833336731959923826335117344587881073324167764624577528357358128441363681140041169997726580040022701367222191984519230388322922042325389283942275056482702625978731878790006699108713824719814503318086904752395540959861623191203928035323862047048308229139466648522576662997151237793981722925944024716991535510974289505344966110490001661131185480720301635155177349753705782248647703878951096223202979028648193537489890271955503180429486003081049666864966101002032869804851742505969536198561623030446724312428083910468197790008580091811275132328004536326631641073478004608866527274694254209080866678982943729297801477439706461346522552318024590956350740368249046181267185586450189107302506095079167020812837861617689251276758346228161319088611641005045174330781178223742288070291975499335017527577823686356894248017801700087137124551760245697393946868977465761949131435258100972070732648170772123235427309783355706144228808744720743067584842009097794016323481326989470297131074533213814880008278356421863157173254081369660287845467448244183267731241198980150953894210882895851275568821039276024503216673935039874782887052912460689187838212404211877489795810495481286423624736629328389619919788565199273839851009067961725586566208158369739265540459557993309784261091755353465464454972330506115075601713320683198950818499098562290988789544372674200498752975157163778569197440095727879691406520018733706068814573332473153442569698426403332887964139984936440945416263206895013531321931420498658391884587321483183608486935373749962333767860637790180831197221740684014655892500710020792755383455510484596672721081204623743320119101252778510209112372175966383934365606972380287100728556979785292461862254442844105698413326078936916549428031426136786205857700990819967937749069624678677242345563121736714427043116672768061139000835281196812045438107579462648476704021713228832111504916485191139919482351074479967851757150462583058569553757217230549723411272541483463898609641231472400988271698378619928192785209037786333350210485868518924653222109635511939794137665181748099663664551218634151639919184467639731362558623876591130636359267013999487855398786064703434129202800920735800680426163942661708696317996420570799358656119787533300887567397858172954786622823881415986112366360415016109389837867622879811409737173796898946165946778047605922512886692929580921430002039171201981708834114606073617894136307448220991247452440273889281873194234176139757317886689730610097010552577946003274871372290262573321005694770927661180442962582298005097049026389217598899955775851981839459783531515135005588542057239567414527702323590323856325157363897896093758536896282114609111025876253198011955653909614614493496354581992628385394129047814134077117369112105297747622277737722538475919660437083896938879170259474866320792505163046674352743021914515435813984155445876847876457427312208335012037958871397052471438158523180378200838901424530778297225683191782403943167641472722052879401080231048708796471957358855580587959608076482599796726722363381736143854337426444823946717648451934276903203821863942112170008586173160641313333814868139572431417716581502158789438789945109059195857060753604488226076329324200292701889706207482502731867073393596264190240017124371254620040276796908276598932050662041599253433007136534378861771872627983929185539435060811607921346599021574190186514138512399608898194271651996226804287262348867135260253010576316093978886241458313361992528230806461870542188574429872256500342575258192956677375527979315098474138845624700109897119153188658214078615242868383079722228219363208362602113043114270005160218453613022700546804680032227677712110420628749407336288093421113443454154009815533891867303608588879944564597683682469176888166835013132454462407990181988830434815686940805588382565204985080675766951756283312733912944130965021377421915462737469596441956862490482939477521572024825054303842401716681341118759788490771081013460569370468567148301832285338898597365580278185057041333604196742597847555673946314553186626574368131885047171617181226408662521694129667600114888293773398484020439290832963430937974769434074390435865148542858446295874472049566946457989041846792857287247618629853438413049127684871892336769831287440604052516473975916076112061356357035671405814693597869872060179904776932187083389352136773862339383986524934514676120087839343187667856326048306634686876086126983417555444429483934715870033429579665368636116127201971782292851160616817612341612873792098424564510550590179815542451420685792833766292842996996467492539205845732674880323760227340136127168961312549440976817139994496959562837540904433339914832536565830553934405006942421046805976618446458381758127242255531322191680920992082975074750474482550038105978373741827598979675045851650490374815320090375610986870399627552696807048075522359176347064451338661397675940773120824014849184572780185840570801845483164860821569061700085357485995112821724315545007774259456682182209787066826168215215263426345128880902298809358691236265562790356422500009333799365526774714059953183333583894596707256384344021827465838259174270794601702707470784478542956046194721090378010031613295855338247100719526409051771502781006593642486674950386699756054513795376747708157639406395449153665944748925908535982821906758999983072600009154329949380764283065884574750920614818199423487501030322934728326783961881405448741820146767024452542905297699665212684973831512948030238672543818052639056993720197553107472585870315254263795365030552977422019457552445288637001693486200131625993410296531271185320041667622351572154813055990170416497200665799045821261666207158384954842062547230860440471577019841384734825605615638754332776640573614985705356290366406863790731026377477864839154525271376196739193060712965804547644140850970715768293851847552832215719486952946398920843543778021797120333218201417601005302412976928937583676600208405182311900196499196123812783895096119977096693263709247460468639364801066748189090909682547518848663741352092965510317451746692905735690809947469595251412508474545869952468792388462781347055659863850308162174419810423131932063942430064950839509747126096082801461796752209461201227749695826714796135221908853326684288919989452936385727529525675453219980106391110142426778450803227059423394461513809804769857563686954235712097684322526576174261408062199722589953969896437654483704953010317466807773524860542600196166318355597479234304398546448536176481227881516772651569839083855261668625719697466188281566679339195828341486748878310205565669808885582527541425006349546127696722074197762382003959394238763412886592680626752801461578337563804645629150148595315549023128713154753743921758472363075185509257142031491904091126133417590874768503807026797104044630257767668818635740530551070981466612250097956010863811832275026011016992318406480969343897805989974935167862401575278485743897104623513513335215351145698900036869557060687454689572706808449782810731205205986839679192417609628612943368701180084753014803103240402671827140754662838508218228605122192043607772834191375989480440464675663122613564544056082228246912120317169174597728453408815914557482217477012018595739505330666926438242367654735908594134573574400614985695264852208812589915814840149390190891216154502215330589694838496613450249057736798423794818549725399805416235255816740697894975000928780484423443249696492066984652845442627790481457066478466606064883669927965000716551984595965137793417979281787880573013261540713573485358108123993651864809841920180835959298963457396190163960092033966313561416678222882767127617053348180771777846545193766383965133839875397693674611810229902775416706710480618905224766353293024204471132489159484335672186816165333429872270967381560724201428268231300840141280816190009731864728732145351244518910035647942462615942222694175265584576096116185160840751416198997700418614806892117706620113906830675591563614119838007288234972347897443322470983182201923998804478927222651162906769058002822421086507107664120804434412779491765270482595133529540251337725717922481826367803687340827376083417785215095924313004179175290945878541272930369206934184421891026405361249642515958061718813260856695205588400889054140651634982609293456157177077338477514394317671413183602845551427027761689912933952615409963741262079476081036034977457408727864231364293598506507201759056383979403795209724929751264603725943269734226805907529442614108753586712588703299746235257302638217639308856464859422061307044196262120796776821117593096774112512321830741604445990319691607717811806794986965560271202668911943255406260696953194724395614401518489302414340157912307228107743043203198468695187301456870542145653071595797511215308604818060440795084606151865341430829219381930589636125658404851270713383811667230002610373299285663656151133406697413845274178373638599431978039814595412023439931982173037851971304968802982486730942084721555756400699042852539030401305163914137410034360791069026795611270969480435538994732588756010128438815331528393306916175768288245397664396730015249408570858509907389507333176196912801750019114392895346587377718810003339365997445727209588939957582951055297486310087705658449509025926670625493351181359896241917649456527074696311843430441867234757125920625916381450955620374592259047353124441303416558048455749361358237103413722666690446770529579560173325342433382652582779401228043971595699515173021496632676325336871050565248131574220561563528909297221399692139470846638814513627112158277286049238699638818493359509823947743105120687067791928655751222322305086811009913376383234850682282681502810557832800496834559463540232687219654782465916395280142108705546947067460568930912003480174067095008489540758214883659788376644542307333945962526182129826170938345149232944583066963487604143845417075226005005514076142280142574432795150401600619636467205566073090166630833079255474778508658421057031000454724101096153914157759028597761158535584975016272223384548750083693725567891215615758194587456794117477375012577308406320622153090781982154442245380976654226870983794343402994345538564016954827093120604116439770852460298964676288419359034228239649334586229401855552547649203684724692786376468976788997417965718330893363326184071492567056439287227641399919057781930427282367597531303366202570496025134377387510784801254706946966188269031380935912062084777116045157864759210484278273381408509800642555365016008368523696995419783296030820578876211811299090722895254370807293588918574415090552124568909424893362310834690710964183795550601998946230695295171572047617952641010482835312367927632373906848947040738697215143790047706644722833420434264692992896631483474147585759159734020746676690224402787842105803743047730049872519409068487037846999292891503464185193308720853554167674202199335575038883805741621054679652034934028119847039480568591187739907252061714967505357313254136687074928051588467192863137764106729419227782124469079081440798596047573909286828524960214411197431198316237814453954372816984400420256081144084601432983390861056081397650472550441139371202847897387632153891145666364195062090146503307177607431047737111186436607580226568533617381581736832639539836884945399319151983568674851121843324975715047280343685011580586347384746021407968584019641935022516464523009147778712210175688945339396142832966959964793238817028283530024004586301149878433684368872141239591445614593218487439830209783542795451220511102494363234377721078339761686227942595559809728015592959964356287624722614559954230573903210652831653959971305736099074527225923818200398433051583452531566905904339669968118290547210439153630826338121031141403961569272690608300946425715511319158617097396075143805618471981287833426655759073381271667713982383929709911025747699950314747771338383511134236164777559762163526700200363107276546682711832065749056975461177281785464346588991761384739266977362468346925981704699581011647104613231767513360075870809559945661865986040607486239107273687193646716231605920067756501757772572481162925233701744636242633944151194713611239242460312193993243406872101230168281092033154462768694876753285845321583774343104521534605087515154994535023920549473801764255145716886533350677303565702327559882676145808716078970531366184766718564941193495999364150457246817543419019852832411507774255026945016245543042456243555588009193701423878002978846123404217224233849063509645338367687303280508074597063467228139594868195125105079734041792902792581031074975954183741918442834367893366274633453767978241509047383484217941965371219355422882137285915743726623444870922710466717740332920465840954249577947212375219542150257210371702652144882017980205875983596229669981882212325833479643087150650928933563917367643177023482081751765094106875944853359780415787866125658083007872914949119632732232212880264684222066983038395966951721927496768352084297747093823735234130766601525260328901714227809865116481618445189361695137477346394606729042587494257485460503123249361677382261826675156508342161776650337137387215798336719027191195053024950347329881642013301991480247571099187854555064144613236187384598433362478802239143052071161853007801836722808908636415669432479435073493568290964176094460796607965943898190810208976307628029853459428639027836386050125033875971054893536338947783335509170426745080998451699465179215128542302268534024186756713860274024372206618780798875666334220232159275811734564900463078841171584530537181153327942010955413031724804809224239781774686274648049328014249183842527480620751099446844153565255638785694419618882238000553914513138173494011642733150678856323933231043021151240707933190576997280092270735968796011147136518370773750930118741802683008703686530691144835747729135430835453927975984904840627090501069680449531426358161328217602507489454278420734059858589169620574288431121656834463900551661066317980402204871879784954836224533098811568832411769424936572002796930255306903534944607104357707549627614881681668691622655246634745837871319128251002836608032136285025114788072818900066150288209205087247773630909511711970609922768068694114326415305354448896411584187225735070756906331676160519930392483231859184593411207434352903722442601059777978470076035770191455117623285888608257194639549269898373828349498011262230899238318640039280651736630335778725935199443198637742154621129284524531694723974155814045023329941948689075026961145998793246919354810759265879479236687483510643225062319911149821696096008733680594797996078161597112502954528242317045690777588488461916962893751823199675202427435824085486447651781328887089993290629834210601181905989937432680866295875170592038839752865355417046401650782648344789123769068893857412034878765155655641989209895918704687484086355927586336081524634658517369950294727937051181325068124395533745771233870775229452160124460577683211712983358281039031741758752039599946757955445630250505496554118678789517563906291836698754999333952742606094364956801071504128325389562031450608173841285869227669076782583637755647474245050514526025141766502408571557709967012452470304271616319386033794053813373075456614134388158250952979696206757919436312413794076238651230761563282132159287141727144241069795786907711326492086442871288948038967895921611446216688244240542882369159182692381516435900391814068731475317745315679608669356815286077455192957067203885698309231659671022400870997892411087448382659888942150616966104913933400007778375391083548627176034863171265082618051733992894581594871203710012912525024112439978641888922148377604156684023246424757822312889590148002100344294934570174288217517255413271146448652209346427255734707023465985208950396886002329590563138625763972632497394725771696055819509391820609569297551332821517636896319671306716689313540267569663492070880995847526348943574014815986952720887603692821907919041828866672282950878542010791213090525950623521609559785657703846586739376126137887721801057869366683762168664029429348619803244509162867248879838055556582669755532297040508972118169385770425454078562709524580744612340919031973031582328014319361617035405868534647341518504516597934919388069411076523063013271954672241283707209606930479815795002109664417449131642811546952207980887893090209753945962717521143830720496727839198078932359800136174476521641166305318959113463416034527000057916041265552943915937552806699621374093331318618575197859271067335543749428873992101359318216123558567563507375169367094568367733523704763553804269327045446378468849849886664374631868558974287119364781021300329486682860873286088272434171076016424887167386813547480765428039607879993381036959534235675340683214988305806208457121392877000704655719712091211278930505770754356518090616077477074651116225165444280917565532710951187842337841500333341858378835924811396807276933089118662873835644760564605628892283835338760458957343143591302375576565827998213066749913910473315407340958295725525531315904940756799902354354835430882710758040946125091848680771191922036936330346609554575873643129100822818385282644246256422900318536167285998775412314545797154199995146965427444903038816755358270082735481858092476321410330899999426826680791093981170938584859563277747994399988958838459368468854776613139979893963180650439218466961351589903352609966957570067847555720749816088215597766937239678851494298245586408474693555772011130416785850018997883609819872958949364538756162576507628679375630714215541298088172524727629695939544483197818300913520579408817362804054826042490612465082094929397783991363095039025799126458517242606861152772619991096406758952183551707594005640175816909354543818924506567752733786593270118417727459153622725537509392382880202259258457815138896440014138920670586121078221430177748968409626451741670553891816047027393618231077781304544045783225350244413391101982344488381547361581342286198123214435363626093025959018314112857645422189077990115981191157542052985883949856717663957911828429127242972879266192107462697696605268428011692613165584005178563146995758871277894000278389716657195720099523238443248749850818395939133125338654327577971067340607507685362207416433796745374284128248269653413407478019961695505408180247662269140718517506499352082098018565275902420567946019887159641848730142438859182012526624812308409710540692834371541933206887023063959606253350283449586214032852691984586387702716289539306174892462355393580923569816267641311871166470327089372273176871319650866350813233552937351965774966348430980791645552934814287190332692247357668224168627002795258506247764829725113801640176915964992750752331916269076350542768148953017877173653759285859619932958687228168162526026595123217740325104901853122365758620079668514991310779481200664174329204603456925299183955252319399528126707081635342996359560026709392124787769223045445564125834414989856979813515831091180313589981582846279505195220153848529260519053344262743113184616052762508422037253396257942477817880703380306554992189507419203199108153151236525330790079351802527312383533260212584820766971729601065388101702434250510781835694819337022457641154174215645040096983472059631510961170151409337306421161335220951666711542972992210827423393566834560809106483340334331747885848347501246388693827096371396876190962619953897619621459052432091427021050144898875657598754781051458601794824454050168216381974851204301983030308248607558521240310543010701168662681901551363724793329406138788818095254706011796617065521415488438538230500552162485797546932142831658953387412794381647740532344113326761464422773964187334641468909508310815491062479375774884198146755978909150620320746159636453743007154594070556400018596294241575542272330619768648642363276294721911796758721118175655176757706281378733025921882272425093826196039240306766325180350998624145049793148264311359250106457864161946237288935379468667365409014678085737635933091121422593847662422223825795162772475087712781572616915533110866952684188356330602853599705878079532746827017142145707212018799018675340038898535008342095017175832074157544077227630697626719184150652751266920332008793734853713342505638405921816182961463279703855056937795602493640442717973551614946057163852878543963987652675401344631485100174091116643681749862783977976049121513146049962204050855660171217442459453092427681576172309226115953397837349948001447573354182748683253029316972284043403684673406929450891815938062883891678426011140267682678358555875518983516112291607714054213642937061604064310976059959504110349492351270021941892831310614166445880826075926767186079542537511351043929670195979862914703018835010935413127506640374347214552289680252844198544905669094321859446177420036545299576487494964987811261883319862901965527454233355640690795110974338868382531430204934283464779739200134974711055573439030266216768318410032839626564196100375970821701499763264189276275728405903931734014057579686173998230127843678499192259057556389916883327257016648996813617033906262827676906593365762456634048031428516688952882729094862706140289985586102232682980029390864233788541630138813076633057679648903352856037340877956569975720478772755339605541587342481372124065082839211773734667872276824909270082591007733838191528392554189341089628382047996552880326714933934423667673340480101642653693061248598018887578525942898941088211540359835961974143673608434075219578170915152169524840418381746607860123307086083685499302071326449871485337755690343273110730900579728026679913252660343201207548731368362212894105611358368429310294905581946397517928926381527796332755522904373343877629626286697912182293082817937712828055829963576850652954116192144589331481066451281694996240260457045584510042153805833484333714924075572596808640384414278974251045386294736394512484599693396417114761144937937209026926935181584344089166832046907585708774962857995474039994859577654956878262169187170091380515893746664121363336115491341761779762196780887644118201417566583909225326753756923328902981067064219940241328420653979367147753954317188934091699587707402903827744565100698275452246641745852963179330830564352181087258288299078717310832282590641464912123127345599125260073410578602540729541514253747988094248487519025813305514865001425350813084967530483513358387155908026805391421088482104199552328848551658904081814741177495931089220935081344023503713972719224349536989343629446489477960724660086328619379547258042684708032232407878663910258142001531501674366095484345898542152011566710965379607613029236054267121920744708290256002243503098602415811725646228942576592305567123207623352314615185869934158143319319732485046849033395160767873233456082834583432623995704259683826231122984471033235840609287422774232237339588596155493574566430044482933152409608387060536586839915487159511647160596968734749359097295202084333435313834821858008586819818000733687275609656230372638900399467666221049275292739899187742744991457398099897527810920055850905936150806370259385538642877971443618365545367255280880392222077068344654800594621459806197391152117223419315159349240628107133429078576206738042160584134364039379247024431506638625085676254383066464496605277681996314382883240894570227401276197109731148489436505218040230291434284636029948391599402420556988819021050216308920754425365584434827874362977822864535594427788044224039898166210831329456525525726514908111799874080366493999061752287305174088591635342337437801571994028586725526105785461840535806150149532963313444310596856657507629463829750722896371639772410205431078866609678762048908157944270912861204187017902470727399828820945742193920623958047875782411048779507944581395593556894747253787403570269196083050361991318787998144117686384044973524903867352250590445795736735815918514912359986545060675750331391556537915054434326742264078445939459301166980648480649884529931758446556798445975239987259190280143752823415039055391157644645789898010047928465133846964597155334107437985655565813134642850061794711390096589822064402764476277958601843628284258785519595436929509766678307568599938697702647558323531639941496693957014236312698445043466578519639959599628374149524103713887206990649528820002666381611833838781994141244949657715057548166456570039756573195876079034895743210627177336425017126800682720100319341211342857991562714244547132849866828744499924138570908181780519607942499125953621099811738733084394148499459201524484780900701530005447069061271458291192421172403281457456752873079737139437749456903584956932487886418829656600576325969566490035228892558043035744271404659725946496123736697035837182611447555495000399185722089807730086633218992044101580638475449833116262713974098027171436476214529818910129060061871148652722182690772172544450931149928213663639481274585580144216057570291089148285859132844537142697682387971254934600029897571355044461034061500087905191156354723171053933689004146834759701946488752728369387947946491007285595247765631776405436902458624918582938966589114496621696752002400681736398268755437129220726460946145818546032145333357208788485981064201466248403682506009056697776446760395285511632689917191055607820165733117418131556052041313288370563075536377591558110179106451133916620924095877396645479051913764384959715249836670941014847187506281067654138416242281030245138640010002247350522754565026487726232927765786990008644588698262096382481750944593847665662794232895615191330676724051337186094461449521595018315312357313540124754944675807153250671970037534654160908129886602416362398840374415603462988104469843145517173562621012403967905921450991747698906256466562302777400308024707066043856540178832169390539842581814615423183499652912972696321912754312286638433444248251718532995497395692041543706818482536515806951432707987074958413651488528050951449926582007864362400279527952760074817729145079464189229581201069779374452237130893616147993711448957545963388357892231291174841096367402251287123235726877182062748289527273847986959466041794127963440083304825960039938273367727928598797567587980795133321805106208490231179731225748287666770886376953281073985417679238898721932103392654287237724006610410346597931849349150851973964644832769253504530512205173141678164402607061411945382248273128477428387528537546868505261946856561714012443652859752016419318046376235850846227880226761222820154229125845752478879327823894119860636819572262760814771745099199079887287563573115282231592117321355585451133614480404013778436082818805311846090278970598056274948914969717867617984401648444659981999382114529380465248336290715787258452453856522019794846276818033164656581004602735488321170422495831977936838395126298547872850082873907837538324388531977028819972763835466896887636898956083584988995401096127798976122503914415233605406316082254494530429734287681393875269541497159897077735096964122893644145775518323815018545471615488847178799151459645327304215237028255051730115366166321648788686914572410806431799798070099717418173125185537131410114045820152402632900374059343912138905370054821636940969517668866843008477023322033553998415443967068151377995662791584951115785916592258351481570815596812661470173487884212507884360007532074487622737102165524606595845598835998939091124105477292549047777701497868301138159069424215389921204240822693350774141488153200138923671085695153588965320616445466684829352449918295169424332711591010019321063766118585415182319074143858990232472647061184834263179208773552189405197327823912855810512145336097654965821098006334660763735167995874858692077471566076086386600589608721648433436690891228090704331561320470318773637927015880430065949184361866673759064249798426936823460450320159672026093162084412218988809510790606255153414398231513294098006025284538594319121726702938403988540643988750617190058029415809865240957456764337443073434102190484252969806577524733383501955806452682459141168781122350849140667351656771825813511012302170991504009863858588383905357154770024441532634563554117509963961504333441213647169063882019636096973063700958506652556810057178643535286788570838780486098034769447550562323393676274254937563928622463151529825136404294904617226117063730430030921063230386045488363236743719238317604827510288278878826045193802827473416343312193270794680121943155089710717629392733737718849831524539661912234661746275722371866090518841607544605077290308397803820228327879224863378519615221909026433853501909053647829082205125866040616510742359363491642046525679996499697300124214947302534892229632279678895780454531018338843328772743752145124423745672785717358855409013784988849585202196457427872357187897445294124637783870471538736416569955412362961264280516285241042109567476871858673137812872946475100371934997512476076395054796559875074076817590653187666464014841427675895119857102108523712509510763616997471328933137346677262832270946782714855094547662521750893570818942943610372304452883917254278261825647062703090901503917107133243070496783946632923611331851180004608295685357349918857631808507388915090801495263672446470756451785556551803448575633787840638223573785044912081211813463170017957528109257487451730971418410660483573759987445254313636859440213024270351533601604117866755810300606357148721272962428653500939269302543671598484832041526645660842912914884027400167718434746921162199009567905309496190892481020558807209315670280582531855661932571332845084814661753757799606852497706903840254617716756468156583091183189387290342438702529589327012597292704727854217309118262367762305444300548014360710453219314411929005737542266319095037278654516958628624579031971109995338947812883002478588299978447879799170435427231949859920589762611071093453925837288314806415598139079624628887945849009990380463184405118534686661132469978785138151509451443461482755849834016685858123808640324613206686277032754459092011550253525849233672286700050035290836902052754049657606656825307719600901135458850082904039646475421872716940243106152218665901180462707697905600736081048633344586006347480408801783739800610056985870115185060991339969428243032855421916273035601782573226416430711384146202192978628067753930147970637265385612187399467354172913759440980859294528915122469492617170246245204772616102518814465395036011600341717348908930056481151039868898946143269407294818620242209907653721415584620262228422332650872674701908982060687105090174153645539131477716206825733438582385747216515779421872796621670112783187788757606181707033807695760628232277535715452844593834390488270357329801556787708808086815934701475934376506554252093633054342084847449805635641455964781469777969600910536497228896125717109948781830370332344011493471389603352565406007999569598993829530414246554326911711458498038870329610239883429607141280268198281726045547342285270811781807253322996928196209569675017358708510521305494168183894963647802087040736840911585715572734313961954037386380309696784082059638731731320177131988227429530564190410412570592038122519332776698351513907785189376968348935916306689474162323125538950397610903601896007368703293730635581574699209788878889453612999410041685829847209875102855260916682343528046887708758117347535623718709266715287767036846586800337810517694809163619090826779451920191588415917348161133805673735295456529452278679018962959441355420064756446977806965430542930208058142784396119748905567191069865049163687975689414982319862785338475387536815879108811552099480741941913076610152365166031044496969865394660360627582551389994798207692729712206083639048355976688508175971761969998456413111675354868617252062896270217778075635848475664707920316892720463987095794653424214285943653505953869819001604633197971086290768831254460086264411961520192976962723678337722839805514617163651948946075364791088970032578842789503107655787982494428958728011674556070386077427569554791629705792424807915738746412910535854939782343672311645993474354115697630192870973971633916663509000193212558658866983880225295392709024143363287686338720577050452471921135147571723533552427317419754153044611823490379168457402857935314400848336502160290989583231401283102373132485192740676323566714701732369147449488946715086528552838076135142457806592448347492283313795386240628521049573896464928277028283271260232923123397100849584325820302812503406513831207803230634988375941431450321402471421766869322556631939929584992000447539023939375052378041208451360276624680525995138044224850491294597708425485486466305363083058885518385059236793693907308258264604612837651580314868937957725898390724991944993381476049196581182816428577507826612452077642326100552018910812764808596234330801999277277835888112252527514992558035817389172352354744781040129939240344048473951523340499636604617949687532367369010445031862746263551866360287568510394567978034835785135794740780460521483916766262442662016399935054308146627092471754560313765859193765262684823340716852227876048094626819344269891629210099580518974174362460277186647144807679362620064077045926698760629506582239407764538753081677832293032171359141030363814819740304970117954160453548546252518739267264925793613229011133188760572142176608673466327959266559762726164559603287365895694551292601829308365825569525057931142508763195818026206948270579114319714087636102197461344411433228007549114634205485740221228974692962685033420244065167284546896611474621609822640961032850795727809043084748844633437716207578953511338931110444438898021364660546980875836804187831089533268348319257414613358281514730427359864221531780530972752854311483642137841836368814254152129407511572747659039082148396729074495835643519897978174233717292778226217983510673489694501388814948117034108323792871994816872161313116021028458497917351950199831154316898878514552071562189948960407726232604856889574730443765017595664440175649554715052151851326485293347797403886327490751306526932554823468523565401210250261978819535336896944906794675881892687079321097630061972703602347847013436811401805387558202276830665925648425290429264346986040153073431258077404953655537699179420161160951918172541510653401202326910444116017190410030683803436033779944801847858922463067079432876750741204857134614209001692990181646641538085828121415542789500311719684010693454835964526924952885627867587837542578074297484729469450589836049974408869400442301987595575503753634467607001582572258350297751054203822138739785270572545349204908225600096242575558879509893711838530004657743870085093029855441764428016962322354580442658282505842570983131432708621040688747653657880683054891429311794324550468542714973322380652613739999118410220194169168281158468874776750042914731352507513114821058670291518169642602054046919291080330099372969562932022904006489790529480479041671684683677789349002343061117359234383246972838943956948183534075639459015874551043631560992348619405345291413527835809411749762855373365537414811307398777262534036739848582098922927586560028714707069274406624646734177207057021961918918560947938844770077063827019216219351236308385299952398569679244149929961457219742364256652087329735092263199210344725235740018537570511712580391000327398086174014363674422884064642302292264017192265188749828850942235405337212355388762329838897692047030236017895156165696211066962163134404260342542000772809801640520596930550544241008447521653416345699115929855509428329941603996975897168129952908273386105078170239075347206249719905318510367358933812883350628499366045149085933805381587574435284303389207408686682091683516081993386970357090143141959230149183609419826036035653336115283306714291701309461350746551117109777721920010704506117157783431433157700555113974236791105930446254558007267087552692611981587952542790741971981314659010874914933426223567108577581730515691110355565278366652430701479587617619951378514588877074969310234034755807397087649768249575380739281206012958093552991753521712807641156881075802491567538896357339410131212874014533170285055632018459438152785777788657948177841274540373850526206102669096315281694629993242803395162534851331328446115113711731596857327342583123415669160152873183186201785642137779792527136064847396813729513942568222494052801672599574190093867599665163013050735018241514015270374529331282103172665690482962138138028947318729711141010435971848656578778485156080097758522077131180768035838954086484327410184640727688569837222593936815083581899515456149793616919025075442050698232292319548799210126743159010144205341385795333928021547065341302319921464256357775463579440175266772504508332696459909486543899894301512718702802843276807690415185781406652976634853557871748469245951413433591501985891108853202553486677411016276759036606873808877456458141743342716640445608393653231729270398463418922293107330020201091109354126331959576595372129786298889591390292296131822714191490008393292341007736760840153611128103302123620876495680178753053032045677446732033899554272583739017037443594022982178021821914686475640252645820379746020727369789678790798139085185895746006239159144094528841440871122121213357979946694149373274990462527982408287079453613167958190427151797274758044707521722777228328973945998356706201727485365253424007879313762174706903708864744155044550883503233881915119115996678213351708719922267012906688475206788131096252963331728978107362125436152315711910832634724255873868078879946388137201364446420574497981028610434144339454163728453590774734478710277940301252179925752258472762545725965673729198616744250498832996552019784395856656744824130246788272794631938208762088856107911240410634633255584135339058278526684949126677511735860054769937279324892733621733800566375755335215660933506350102654620347470358792268281069276986884285893397293556794085591752309588601562944801270800432986255922225595112751942764443042851995837154717575010198263545097001697445414184780184730840327198955074019899142377774028311470411179893059356971000031829341111503902222639953473876239290701585908359829145812823055985179912992506676940981410922936195554905453073880595085945829574436094677799525581962851544814496203246678144699206108571288689235923529846021683691573029793667028736369711294907304939310640549749920927989180966986685841985814355823896426993863615485330667730590765321493607432954254619374053817165374191923321701996888267003673657913726774372553693663017654561737600776521657096248811229676546191121436947491997528174761541924805716500219909123292062898462909398280800375133937622026129066097048884982492042175737995598333779593515150504480334173402086257700907654949729934299361369802789246900260209951179656208219141177420376529629382302214335294186764363340785780481510562531006298875460764250864869238691943154764870361063558119110933828196686035343978138483590404159912260424988567543477219664900754282659588824013573361402704173110272324805840131113088927443398094581162916396434548685872223653251819598953368317655698978679254593895112569722945553569705198344020763694965256122682970914512500567504293782391241436477946563873042795066729488808153395577739088044462635874961807854198628922922107134683352892789768769144859312417892575484125304207730949969328335187928523935441931537770632368924956715662514425286659123803996302524542586384986569384157896417335017759806540722778559080598518448946866800041016977650147132807034154320032802101768849361429260975455251840802314998170991508272117709343923393931794877960227555342941922776311919863946756956510356585891154228189226654542097955236480857350708382034265090119025411376704849943730057216535874307656572098629606457891147830312235748560441465954008263530109353830457117554536245692618211942461861754056310596369417683115137780784108730100547706755108820821391867218171885693873825532191452085151424183938660423461492855875896055679464152064186122441373167320089803900279186870692160186108745262452228524956260261241414568312144628469454939515971246389322987036484670020040001637395396393215532732052145775978856375470530512781539172970562646421134882297757727108259865824020480522843781975548714913231953492557563761167461938296774527213459883663459220008183524136840050490475785808080998447616924066052584076934518486651986200080291845215891217835356771892533739538354892044562390706369231696612072949438068056722144288392319403127415920934655814233692822539994675235613423941080069194712370061424563653744516657292251741482120989732141317039411150638557436212393482998123326772384033190236072676948178256893614129121064808427477119665101835642761297626044348422077999463788262994740721474275299279201803273689957567971099135029912895364149885922069541597635493755049618215382882993960955822840815147329297084991034864567417370397925086655825816199300154239432832810723978040892774512228407792543821804454029137036488828825413548098609524268771080011077243738643328942887630182395972427284236797273533008844250292387736385929097889171479697235544386824647070614311219018531227766006623089809416490426912188322399303050391703737298305915272479877365134477931068927229898370728379662580553435680425833399215769178980874165587715792205902521769595946920185964359398648280687899229121836435526747876578838161557981875665252205894031493969697834150808538892424745684475350541519072742790365592077956322517353088878447983793604353053014934144538986369400166273302129922231625446299226037899528130589696333979922518021166548948957202250100122924050892142057529641857130131243194293637447811960929029284536618568136610129671648809269679074197815321622180397923909973184196892342718037516639921773181866177052636091118869001590399455709023076090501179062055904977876952139018648589849170304592886345380380882801227056037555832909243272260443163176756903982862846509918896559170826166750838734102746977987940076381498047862685342517052658179122982147210700514709840655327805007389491465852152744918925794466736143874830106188166121950199585380605804920795297605726141860400389970361895274365436634377687201084366168266653405046539535523249791797448401786295783112877834323021320853631997810032140141140763784310558371916375498780200336706244653647233694673107540522904672261835491010621313496104019865147147158438021228458197684186693761904555079336734365692134659494937918392954957293127429711234478979194772980029469532670585725256964103529714579858352659447766292829705536258011533225346257085528661278327556682967617552306493874477184413042984432012860818738836083696751377304877294042826279209181129630695741954266610753746246892237817025032375923173432290091203443225134038797222835623975462198930348827796558127554098051873138744428587608830912600928630563584697915691093102212683821315940847478027856527879521320926485038763775367465992195969096885313775491882344202819638212581281217244153728059646750197680010011902290959844843711382131838047316859475504197243292481164102902162020253812041658412823574793534189979043998440659144113101171346008524856917332488658215815098430371662913032642949876687645770752481460289998084573878338265357287981175739847536709011926211199806745393817338322984480621242405501386014290575464430794448349904791096511171922932785614178785933205398811136930878720742342567589183796093534933005818868477764691845917864041836082384333465619094775877058531800166029539605900902516118416114810695988416094208232851205761776194366425678826611913907799146927863030236572650660641923366449757151387049951939900867974165179892743050390562646625896533687482436514772771126764576961710675094495603590155856454106266211060659397956087667549789640226006321241453501954443427244938703482670113750163430611701729040681812035437460140854476365414305767915158656896692870235054887089212263895976996913304188883806299450567049693199971184966347384441686144178533721795999570335861614836326888177652067111654615989586483818857058906546522415146784843436302044473900151493265820279811206909325781454825138525562293792140692481406756623320650008102029157482335695107445208511851933789348078866464286255692194781634626043022182855948486428028102578766945022283922241589710074391945821936211551238780941582121412679617929077041155508414146825253866048492629218801107533752375740511544975216375498688370933293306684295640832918462160831920709903175642788648509148761008489384967471051157285408111885677993952339819975069522888607534320523254013012394788515105818296468671662878480500598355407697326837194437597752424665218575827244021211644442115217998229437471145487505311332676295791165141859453568967241277576959612848179158400629198343643113321063504786743105037591521406007683817365511534992145060927391286323543088645013916001234559314027066351824813347814653946561337868742056262240624896094162951500905409360739145560795105529749581489151086134090594513750339503353544350875171924931600921496587915374751981961270022668087232404123412999497232440341519458659042151255108474669946561795390060968450581214915917685225075650906548294668746584947326437240608779764537320344144585995491427287853779115428683277374856244247289746190216249094921324559986031773564335073022300082909283439814175683194271593911906100049692339468682472616088987733168757575277693882793578772328655569574703363321223458084386952407361032477818098280252042751324722502385549656865268566701268978273346607190227802860403640080010608290894950267416772093033343309209611844305239334845623028922499572980035587320099429212458625872650134962717834819842602134657214630597988648277270967006377114330846388146448529119023364682731728747717485985384533767976155074658863587722120945087663600983188561518394539737336304007006721351229719171482163687317218258379650724834855083382767654584657376743745220793821696079416556822499485717221369925550375697085377148769195407609636739103958214776323346818641995670516433759838974285806242183958042663631325644177554279296667559571988108408937420669045669573381204544416882456299849580902686919351137199750345921044595447273849440599325679678341966705423641608075598568233754096404899445071136116579321895544655552326890215701198992061740622422695147338723897977784105639434458860204225152406134690288138528203268585466245997569965810234945205045850435711093056867821522126240193088760715962621510090534017065229023205618184052929035721555769337081428241615827358644563806588522472273684668381955343616422885502999519163795040971074342272984384635994197297743508409879331862300839199094425792946597042372199593952202459423327733294905733036936390683942559870990266107196911082543528635480109305107554104050567230135644887426340055499503158938614777703081898611009275484480524300199623163713975297596122689129865644371503187051270801074622165651137818786173786000283697513703059480900998829284575733458431668848791706317905219842393058835752468818378936014598665534196845220278330755956616920950379542329259881476586927226702324185250721126145437972800869493285638937149208010016322607639036141793348198201120089989542632101881311771873461710691313017381602452502231843873714398909090432584541213313659505904975877578014277649896932620937321767419089366377451879776939321038619418081828381041768748265517934720888811131766697415971380863868298990874839626955843144026011625895115338258654947982544440911743601551462734482660735078846487540209651922828597176384308422469806068342663976347780110997512919842156483002629951473171713894153683123961633885513658832661508556312022241705987034629567239690003320740195703753569936453581725428577965950612719849793009764192702033411384174864667764973807221836250006620193330197609269161575402906378697934861343766428539874614154515473833139191850060673976759645867030586230031968928815768588420120525596420800877392943559308615131848154352343599004947420369080254742288243579907339755770050582773151014299799083625437827340829776159990235222773804636893645296781674702228339098659076508386273630493116373883914709067116765989390139240452802892597226342745110009331149825021609193942341410651635811483529400927445898048134312523730750730338814376829433121867710421035907691416504305578645948293535550292465705081129616579412305593365299507313843205309750768769173899481261383059482508465652832476323713710493580524625267167039808355673428294690006933517531097399254278947573818220595623924354455608748515504155499842097480178457795771901136465855070137655893335566138798675242159493452986563647260049394539143625538697838507941058425207465325180494099920331546242132262478011465452537265439349295052811679167275768879274569485528031997637394938446932432780664150802837120330834685137243562593540702046829479677103590541182839540065107574804941451648726978110722749150610259073709342617009722766535720511930916542766895005081050413181550499500800665388497253468969712482639312165402602657369657353222041595630941832737831839858346294741332704742883892404550757571891116421282303582179026387323086142633561778880861440690034644855524857201926531354032727741616084932874910872439638877066964701422140583790677088781819449911685740153026334735786143166833593212827502126195228925885057657813427983193480969465812941216483053310240593436418372750025845411737564900727508775223120003943190055881086787292711508464789000487196003814788469923728086789233025632782648069426783878104418603382109435976529590354301276838283891872225208345099617351873969291261281015351527696900106463240532098221454136422194623765098174736068706321623655167868112917626147282749856347622396996417899535891636845310598224578531358624247358236823166061056569908266439740929612896155666422406814646483221490175044374483244511257415398444385805204113307467482292907055051873544589265232311293013473002958524213834916798810091573058159439726176889058889727113459204633664323278780771571861767476966620152028605725487599802928409363534168798584439164452441796350702911193597890005511106576147490324707040422864766031091002092565864776901549777395194230815526714612150925907643777289492790838421203997484264708545607753033292196449501422071620442164156458696477458335528498252932377067082318024895039272737712818374485584564947509236826889433974840558107448149585585213039214709756723750077606396768802884954252299430056482935873806210850602838223791374424480416156684102510552838451643774216207882895942096708487653452675838201292292142131839014355601414089278121560972459448879311645426874033300337505683261894110516612065307668025560565285347024968682585689240281509268992803928530666838178439534405113400145575111244558644149705766764160994249350840521200396150738346215096802471620930649536370685450319052817540024482169399152804069586547057832464652270789106779474331904819732073391812796818831336909985744278689274889824658909076742833505697529916882041647667415449838456173645522262956479095986168414301726634152006133702439727289453494903078177355588000545002182065419223887438680404827867915858538634333209113274954406944809169841107456112969292115080817072072717399108964541392558644647579041591119684960608171475034202168774824276817059263474275992085473561081679618763108190510933440948622167069807193981339643122508707548063113890892895524774128353373333040318200020406267040847098928236013378664796726070487056426002082951723511670187707667967798734298117138285495688578883371537776462701846391198294856001077235642950078150388564879659213638935497950397762562870022978268085681626816696913204710086800180778463170152690317026906427653910906138220378581417447809262397416952364313101471382849181123276730001779585389782619448727357678227482602705846896654715582872796234849122622141471063743851906048421532453844911597191786500928783077477731144193573060435651570416560705704052260983691115468701173053618821250910785747063343303591469340317969612388270341494739338098580973650378523674222447280907041610397152799210133478542919538642755818617698575866273536777862555807506200329312486257922345455533555391689851673487689201075901155343191903120743906229260824332054975498721314902425161149529738447297297475954903957632422292435575319760437115456421550873431755728513690217320669716045739491822520494172883523596015653885541088904150639948652157246037502430474393745298321901518196264165241954621994717184650042607230029704470824064953532293388986586332012834072162767493242416361073776502949004451567165395185121099087181318991902832899748721933190909717294299348736270743202530826674707589151540954413548212371176065036143309488044476887486791101624259294804350033548679348566311817003835749250176826717621798229387406330171422163125119608484193730987225856067290371044335041796277009810473677101630090287574053537331490015634571587372063878282421593523502343400614885984257621106017201950516442057645186702545669246827229349921780314971543324084715799333421915133003953554437412523270905466335940210929112673315175054047790280547842886158696021246425908513823277912477758345320304944832769236611419670321924163788227032274638493282139159133319619786854996129281680541021812791160210475906456321227852333523103938664574569716479908924210330151092466953584700086022477216332042965642272614610740677982393141674019468750855006238901587380484252663050573249382197534511563558471140092131670740024125363097069123906512538879482091726882990171456086288609970896838740478685911283095528617884151408515034841201274049843426557252336929811126214341932285626400487604792562736762008354400384199556342335306085507875522208909381437121317273609893823172052045194351935028142665535697235411682674819219145186008833506384496131291918565404202554159421554563370487899856788459908514110521981361909504504071631864726332983750909095276363027131629583515024168812435739744558389196042860516149481047896032839084591007254222859755705020625214465363549538958558696429404814204609461744872036489196053244427368391476202166661975250916635421887996821890844984174716246125085256650224102381816080692626734168505879165911154860085544348405800902359453784152624802295595991092621676203864649212471016470177411918966624781264118122150221231389962809021722107114882084356364265875691575202933408025066779670356184417900375809937362801836308402890023739095593935208096866462295426765115398101243087975746500033586336209571719694595740865188613966222577952340931647812106302653922544207606884616227355101656220826336301721182534388155750341644948732039797838212493494154219234647151399118031742947989583704054199330933223668982208092853001032781956830399310328752142343435981745728370541954493820558752791629312610775048706025732883706943595253041166945544852509371215750701586677911853123574682467000342788444904389215280991974114941633780397753028457319151911925035832061933968836372513097200100694875601566359532053524666955604061872765812161675154940055695693624608055314105199718980466974156155819222453277564597531993674400693344541000025065381824701706385112836287777074875636774182681410690213088253867486205410769034609493372117592422304520475243475588249576338819764317748238266720215565240700785734677313606689857466270817621005241109781481447451342943195439571160497652065871436974439309459816454204548024110279445953705090377499991259595586641835752430596180035973187741998025617606531402151426999981418700916653051287102718465984421085575062355098171271915004215464335390169020778713520687852481394242608464397660738932314353862215096093382190388977300063915675863872653552685341033988375671875040450691106257925908594365519190225036978762835211515379989715125903347315906612201667986610661601783155466157708151016274723610426811835391342224141149157117881481140298699915838081847707248960044462343629066354764925106175196991227129517531795618139899571517923561237120617852128159787527997874267171985869674312165175110154734676782276563491039212268511499401315743600951540925657502609842383072324081118849869132849727638683127853148940491153656547718778367635388658011956361755824401304374481537503174268925194812399550508539489580993436240145353248721614294699966771274094678727162890176463177328195989289098081394195859851243267960045593761448016397577892577281159317399742096161780811228252950805545390492288452454694367805267078854007112112443159252833891587615511570812291549108334329643127720515818905862392589193477903928372019833713904519190300082608522470715849554941914097139011955178227943936916766083902223163667790465863847142855234686993453237671967495565026643762898271880161387629260088081581970369262782121785990118114524910432321941718473681665209439119834408045434833517571952927002070289470641359881686738819939013437693209328280368404373321331155514247268190415676898323800653848901635399382095779373757684244011406332942401601022310224591681941265164234553159154250050608541205010907153074142297450758789226714276465501425033016744404120878672885520758465414679416116141374803797042988244671300121043644287348989640637830996044612506052149285686629297911547818488461390656976481976809311786566026511003986149878374012518424252929252502760783474291765771257335202919655795554734841251005589611552325830161052827759584910779050164371329328480589311288404117524463207039016675544894298016370558395877134664799648980165743653273388260368083181689756328504062586557449820548819644305467712590110056310430771168925161812651495916565341029234765080539167697590298396127078607421663437684896624984843680216834192861285960554589670473416786689609694427324231924586137635163127472780221243377852805669816357306690424980703409187550630378675052159766211032652911127299878126751979461903657568971851117163926432437364116561415651699030416807788415606367402962915056697649942858541111826176340212136100731691316324440128832670965919527810399530337600189676536187987834851588959273072683674051336946285270570116380772531888453575048575310912083555948889487686628058653159883527393167856928179612420987966339175118584414401382679520250768721495376063476471782247305940799007523048360754112026544117848339369677936969807855327094240986340362944241023110898079732132821188458604830128018859657187469211818099803332577142500204928139351038252619772050775126739479321196639026612844200604066616838044252650860147879337247916577353904816029396855815630409351035157587587877579669617170854600830575696429151425816806042829931028217047312783406490123614376082451751035014397297568765735927797394702785287719389384780878920447556197168010150794948463376849510690940911016390929384799328343460936240316692987791770372259987612610484120132998929305753797687945181299207763143436157227460277247694623535037701589779064058753958556393748075183746787893268999013249023495308810248602344088555730743719473659653155211001496617008883004972655549397128026099148625022280969909985860814111824966739417613953681728597983571153194475292347454907099304176347113837532644615874904817525109657712032710060694404894096633046033947087867904667557463108723255601117688203226871912468148659472143211035294116949218300057168054126367561105678606095346528755372363771103828958688166463891794047338304723797766022075980737362575052783079289160606295703849679670263023400484287600124694180487054734642735977872152945962749089695775343222816117335521758986391526690725936226565608509169193838985583102627752927627999567290012393329725605444544761727760824566745119593286795049728208562681811495657172720899043281398807186423963404887146462169999665579646851216629766392505852292730675266726490494007901344935884209298989495765544612397256112165188102686040143676951811197557708003628009181382413372137199572904815824563388421273184408321021536066529349998745647566735123170647461480476698730498040673586616563406325421855630324007276219932338054642735638524750064090956468880945924991126381903437649705765184001871401961741261398935326617720748839702104498942537719711258957190214240380051293398352444882871785107743755508498141923340945280022706102176827287905866659239389596262004025411052506256722489153682703816635223855262655245314076633227138577800061277970172006529398132127755717242116306188384902467197507569341482030993552509571118914498494245363865444345553704281714105978471804134583639117605751030595922478304494815074154641790891777562980463021072395612360845974598648203358329422521342947080352466285025956085462781301548694901576185060739641361224208909765189112956482768937739591948119113093194846217452419198450662420692443625339017100497299585283600205371861361257323313685592785044662934568939904127842448669817156137300502091175190620026082746470040497907907388582551559733272130448816101454211994874324720773278424938196936285012865506967107785915387552245397348138423542681401507060591764509595976698712772725125007530439321739291165442893435473545471554782511862544660590694104721121881029069154399254750864422125451280354732042908627854244175517829622947123588618822871748119969828450219389719105516388362782352947715072514540600972424861833310622373938733657493140269304051872831539702418040960737955607485354552751255161080356460728186345313459000725569198532790635269127957670951346302807788955511194519801306066100657233858850896367192174718746705864689255330788189698757141758041433736712404817175525978340392735371209345960109463317754579899942097550493591604632706528144040771273782279902283642412269949598648021348904208004244580195340744117257907273763176778296448204776595333676471936402914692596897886549340923203624398577401160289882847476391333043525994240053271326714536956031569862614841777183188578137117377922804568632323816826328173194263893770922486283728291399073658279280848005167163080781268487171039678279628777500862385966730380110752466781358725931204079185083833920581853412591487453992616526871598957526431926755158445834604233571827727489544229302973686150481672703057153476713656904831700897231882605291876696632418619763246478140967814824001270104393177921041036975152388484307805120461853262553518347431681163662112011831391594417609011110827564136657582894671240922943552970666397599058309941887169577160612029682753931438041056181566249549711659344341163478553454936255208847841967701709672813312565611232847058841542235707129213846698490653419484725844577299613613869187848437659251449265806768398992860726217686798285100914600673255124058513492873959258106223424188531732454027690780094567508238235269465773123638761214125528620201180240718405375378073948125093914559056804036214408762301888470992905846240325016910803414589514501922488207398611276984073149535056408444894259772296333522914178839471897123774839179183575073496148827443835767673332340478745521162426716853693713038397344552653509061195269845749568668660896601436463591634933889410346519428751191074556121238480162582885406775089871613919900601333038017287772360306882616933756022928868581182648343731669806872632832990627877285974025311152838974456992107688928121910675258490815371217489023104230045568030399320648753317347089741744908432321688484495897994722522276025651785497732318941321494981853877915647504130836292051450067929354550482649524316979781353891064135354520934823317516535600386977722399922460267344018081678484501642875392060743530517428717069567998804991353897400347311226699316101390572974744821993870761476818446221271801849435829457956771224371067309978514554893008335247390364312568351500976486012666249664894778409941545525666637350019294419828718574299790092736607653801125932086716953617783548237184202005431406575956321128006885625354292105890523970229157367185363517848197802007828851131877260814894929576606318781684340494165334070948729399116797633586074007895205524064318610697133131728655368087908424070876012204776287966664494522113984625053843594669217313829056393986708977045913388597485692348993506133141279394773723545816025410270932250611364079822568104573056547511915216426261265468032354883252845532366627334994779142086420518869122834141910456181266795038280484691510649313476096028040218385863835677592680991708610292552208355311043655241364838044850926518113886441160675986132008008157698540836369770998223813300517424282256210382565834647197398157222347266325084459984876076802167065130026824868201756311636924343446724175383867047790940466355453460221525279118594049334265116629509159425006618974788132334073635921508805793781340159506151834376789919351879752874680698916545480875677744555328758676594877791194176844584521435493964216989306497275177123502322315428503099348878928593776311021603227716835655561074207224706135606396623988290306930886789066407024024938630420329607361485525983584867309745821798260398671855218130671591367087666605039119467239178046089914677918774523146212546396839982908862303268348668476805193980011686761551118460776595120835158866973957265753004394131383431517753772112233384344331977973373660465967917569918985713630775544870400449462278974559394518130338354331185127766871231324608851002526212114224341247011655492550776416159051610518372747657015985827777489846538219749663145700332285799276780385531086454927406180121219964289365563020772667577359878063479723574266605944244282359404264552300903734000020342153435659460722098390401451138901955170051348429945017161536893147429145569146150877404992104504314274093638541344695896672422498760393999557179392580618081192815158641162789277014327684206072750174564021302247387968294158261201472217634614770611055195718124625575978051830238092588679676707656621778083261971625438441002640521898106853697705908584669064856296061773186882708988650895718514996098367854175159396207574730461681129445515890708927950948330333397036438659876633511003204599105704615697724714828824966161691557488614153366186235054492870607004539210163794667580944687336481318061785738796112090457658330482823619862839112072796049639852154106437795382490066308299891032965931596173363569986286626326302443848149203062611069934312440161449478945444036012945787785113066769033528264557110624812182506422393065197899044862277728599314183388005239432251717578221383118307977591306535222757038439621939913066118329518186567576353501591948185511267187600143077772473944534494032318736018418502150699648028331787588999579648189732278785297945337551879827199820816904173275760428535203018670996560571284537857929292309120980564656144178889419541090017816480358590074411753614624487320640235590867157376045517480143189967393019579853500884213810813406869802530154052111762433351167033655061744911507916495580406242364977604955861257147905981637491437287789374988826658279989722838050029083136108768409615512305140320995889916208278847422223641387204048742328265660524527799564925772328120027600200048765013884536106020901243027915186430258154010909709902141453385279241999224870897653126766257062402558343817522546486135264642314874764864524282621108122349845052118796116103960318528786507525082304014202412231366707513950417788274945909191398476160943216263853181764003296245501133625592208660160377270892294352158774970289972957564770656697220778037785140225070057756302561139559352442430974229137478021052663645165711053420913175159187198376672310991822052633423331141817266368601970479704156114388026390047377650224534955053125910424380972125140608268185397619949459989286396376876340418441669915554169123149535959380882891434341469523312218139942940289970667268515455828637173045175403685508330794864866662185766203953637885665815432016609117034194650625877464630676400723951236670218332389866947566593364530216498171775034911727398907724125656232044831086879921580711203727243288612318006308822336481102072358829556543853748183180840003337143158437062973815831281475535752903794573409783721838594767286844735281359679072927543989444139834076740097330886847312507646846446908992876174776169031144754483074320648617651547340134618338935817358525436090090975794765579530730831492381409137003812828660360668953624281859249785127519440682667801900797537904497417277611002884273015044596905539941595399828115535938165587581106052628879058025816826151236108225372325696304551797477206357282751540858268383361854534231461394640384243826683391350278716878133443489164172783988437336126710993492625563371005757154045522547488401819882500975365923802162039386524388524205323649707444912442588674304685230511932206686173487300183881583149829678181311519069795228846310518981200938332159644386952113445929110008079852081559082915458117137485390070311274843867182563035905699994712097457678446250102620999857358974598707284849813578394044713950316454708527639088595974920689646817623596132983898384244818403824203014950999106356344878784372756157739670915485524038365441951065136114287729374079171922024816707795142948810264444360846223712323691484569697752633361520077471624630766099286869201228338977007117259659137432501258670733517888964568735071482923636245034939117224440004286162961159321801176031593464660906712476527160084915696326510915283443440775533632150110826311122423505104768409960969712149917086391857143462109480811142600813375121326227653038613167556626670689048364655717542095282194113625052294032523502457358412191678800797895828859395540611475095118358024638807768056596501314604668509863388576381641539993683039156425409150821628361356325984269770950079766066424654317389871184297618648190616319757095328861303003119475964234479301656873595651849577784364843794461944602223377746037555850979768109884377982847914390780864926497586367412645127995495284492382481102204694017421335399598307863508018038228933406080495989810662971513119103519280009521778515038553224227571070146917457941897844357147011012055497480559508922349029793220688197700777494084611818800381621050907082461677757584078698655236028688052288842326711162350369758148568923053407574780371322723359233430914595886414020185459511768352483128366788146194498328842254075806512618162747463361870898918762396594479332971802197757740183825950218141022844633086880298067986766646805984419805087400385742392566462467686683130672155272418273042335597558167757786899660377255828436859048226334589069358862286810743037235058595459802510418722304607915712468819753946392192477716435497700027185851667209676023155786098296020166871331170157331061072381569911599030074965024718398086157593355389764788045486917166931635962928589754633383674872147104440263140514601425409148054978025901011474199774629052652488935949265367078445596516996785831979317464257941893724761395992908701666753463166329032932167308802876999353597901996291458149336351534024352121218653776852474834104040923891573788539526345526628644745019278434177066464208069478918857342950166741719079899629685371236171331843715902879704936573915534076258922012811108335323756087300710159021088604985340247715352627897576049352965958957159728843896318974414601779890125894895722058971960888325253275374017941251133087537305223204050093451831148381601142920269178946288179209566669671010609554411891119495631178828037605109204545528464432178159617579499423128221366170137300836613436639378592025223213501859972147235024876910075017367904687762833846565696313975518974324486970148595027786791227628407065177839044153690836560467077263598532800184690032346132818744156098469648299563390505751271840223189195990761802932656936068173268218556860233079425122012273001861836289483562950426850920444230336333054069886255874208571150820735015529784260116311326522818843718516958261582078837070378081330028122885570958861178678786756488183740795215182724673902868892568563150353693773378919740840067276572939535348062183590562688623974326897826859349050264082088513624814102762396534554669728834520741089038613615170363134667376842439422826324159697365105959651373668385220167410047819517581233727153469390364674325216047275272093410963666411154633354884084938604915810672245110025844740554440769069308721086008743989277828100091465797670738975886732095297417212095221508076746764967833281969291131499785348929906348385496613671129612102171791198834653031056502279832423037639377140550109491928566507830378122622822826160308723711901539987217054285887143446915305344107010506446919992545462588667502974819718021665566319878005870847006171771845860590531355347519076825786169067121535522550431551348262545133267889622068192865439605454728396492027303094712761773368292930971174773295680666636978694260101610135430176266893000804738366398864676226259823279292431073335005607997779629587696538846635192445966757088021703585828675020867259355852593320351253715867487183492696851008891170861072290975066011549019297897471320558199508630136834860632366994366454996766275552471040002027635948049925026360708651224004982263441194862403683266042805833047471971375442334340167214684446551947584124222319127470494898083402601692736335861610746014000363372109630292545809839941961757953202520411868286001243230721056252240200358784841925204967374534688281118084189346912777769619405693705346624372929325009729619673445053959532733237204938659732225722533092397108801279999806115402365646577728544791328514279245761269051644284128728767148182505637959982216622800057616961225681947441923121812902824693184086156584932826957915585613254417443290620979568370342324729188482353810158529075789387542191131079680827466038435515119860109379568069685020145135133111996734682595650929844626076572149140562145754774579148942129514273620085409784699709727323789059267211748455067296872298295733250409424789626727727462809206261426016654315328717515611361438281253800896253609208524447652038186175746815846327249866440681656991560622115685019374855284480110857246452463343571670676950488855719419907880073991966872957187490840495834711704883754310551900415259159519237834542416558768563973402389770062576927864182267184346803678692587002262291242526154050897454415960758588608257927338721747424570523854684250519808069470801213639170040705303065647146098978923830918217479811222879812169840006884059743831635512995414801411695970982682603790470651285466584780373176115977290336090591750454580349535401032140408646177124291964785969767123580404237288543463065085069537285331563865988857151487071749580847313807790472139334724388973004329855871944896273248779416568667093225438826800518685821864530980029881441837557267631237643430671538442185129026245451237087644447437370848307671339207650045169598600617272072092181448053613566811984936267592327527259962726982954230051834608496371238628951129625030395467054667573053753326736841984733603589640330036639551388082717015408865647268839990795217050370930957020392132909758355802474970326193199900141968797342515004220584813919544182316403509257200630986267910446845662829524189663031734261700908238076610206564763246330825562714997410137719376821654731003910564829768442160935393788444718053457151416390014535836467909316044803209688115157607830955212726372294973057144850048690920454604688887432326250699280604545996028470178781048285364117636630463374068767325693657994873420667004208285362611432378171044304696314087851560661187896284981557106731541234138765759777214914836099406596366356108243124771179663143539381696904050543082838305582318193287743527932491051618221604557040241570821174317612635847665407469078802664045170443517697546362680406016211357730729836086327697808815022919550962336085499199828498925853117604421440350313896384983819253405177505616295584378416609535385895809384502042034903261480599815468284785841789962597149687203226896203224364994133372006930340505491795418302784335508703243724296561019791414668418274514385741591328324495926061371836582162428305047821590036717287050871580803757761816932499842623191571150734076412843667440459315438140055692512987635647812165152364717431054868473681676632257347800894506640293518070496785271434757360005275791365772582230141935498941751314482317647606964146896072612011863675473898629624418904379837310076258431228094675139396425652267715822219594479707984447275382778683547546511148137278288346678958339718563739643366352425837503970436003786203302750236098648604905267524036914264911393590916292884693724863407765182286566628222835593094999539436113252703947432546282582290691170789516673749097768506157048837458021569134754055403750348275462552635659015939122568550656891687992293145003512677444954451371125595017771619635594851258165707820642581235516620116727468491820347452875551984015150095404050741548694388087876851677095748554376785275474617964277283416634286039905222609345001762712431210715611657397571292052465517607526232304083234313388856232138736279957805861383988643346082335198332267922614686910350290602488641878690857636818333262632565135465956911374629339056293068373822777291488611752176336813903330651200092845772766336784632925594636008703173628834084318446044780896450120444197139216782405116322778344729936314814383786177303764457587105640489931347850631438076826696243574136554230134868773312261552063352110241615918865077056087217026526441560599686985949349385116252782166453936861933657800764131473004534137916179069483405771746119311188334639389343098121702134225167864289131153414246481368846113688873592830832696990941710056775530475542570778192519086470879293855406899497623208023334273514497830167816034600913446208998971261152757119250186210028799600889770687624482688486551645957383868354765839277785179245209949142198447309384042393453502713878843173956182493485827027242917825762452926351802298161373455802892769037294360658079048614016602849057809664391100708493869603316273241234031429498144218728993293828601622573337887477403378563198153957946021870730636998392100202385068917882673668869514003144118640889138684504897550471103843381113011661716478470779551705194328208976207933971598630985480963215328275370677721521565635975831233657167514073607447214059643377474962339841689945090747785533047759883308681635960941640295822194456359939992919198070618864707143420553703622946839271708131586466593125731019621391050739153724688089861496415657110485620701038204662386497229472572286330550773899309788876874897162792780482417143301613082550447943696605957092526465102254588515164855923641263331523804656128485443404682309167874100701941247511440276993296999235357801340325183685588334608386134725210444511013306544828625420953609340061541098145209426606256085993106367717668753229870946425991685863421323323832266603378868669285549503610852738039578674590723765792847270259758662853639650066394597176125982112982500943865661431171158896563408502194572627930394068064334900967850990468697015396622396505592891733615124518891222839998393938592773135033764578055743975224878199020895181914616400093232310401037179843374538005737487235824098012596625446875281674281699119021947179938802630576420910683363849782370008900117205884052113155161232548751372204184817710436928858557349105614524313350048251509786093831799068519991989933828740382878851955420292471214509314530985174878424344742384215874544565835436039706098959217886019711378688385976807453514820242546789659175999013756855167850988044019598673141458090482283066866620570900333816531130512639818464599582015099722210553375815145974581138203123916836238408836372790725046988385154879414064796234619922516438668077614439748379956055119635941242005301638991351020989648507448607605622917118827289119479490760144686837447349409353413508139207162991322568282509926193661817991200910334386021460498804194372667541934506619113083808082344770746710947726357445951638679114610916480206645275627003075543464943798652350863563611783417762128785922287455045552524847572042739167305755866179635109419275628877474893119478325557715509600504566700845756591496545008973600581322248295692254694710916542506862565089015409708829791407647453616640512967510275550252116623437474570607669580724088866211976673308760461609615680626447656062071812223824090944788249148975127218957907724793146813896206883348537748992835387740265884378513937170596156500060259120168996897408175397861132097606516475763812967581778999454373601334133285511047652749070854177509034514932189955480620811147978361643560593227768471238838430479127774512446278297656639963374323851335696057530789359794137771808648401512968310583629765990235206026952886557136553829366344096796192172785223267565001624200430294051630597128514616389690385627788644972705331240412631074762105878498871199049297959433312625058708352991771080864147243873717625178274063414555919663065800654911962750245165837200297388048499694036265525333505171577565900314081682221427193264565841183537308481269353107753227229238043873440301522811392935814407844417929872201702579600645918263711202426880291412882699232297093031758265865483137762006437154160570800522605938303629933347811645696520871358193140441510846651543753783372265421324135936276289232356943286269976540247042818471871666379356967588552871095714159955530234329556132210926320030637787300824733423792966193643444345928084047545070763013624452697350620990761561990601993386696713982272739639654871073290555360216352162780372209232861521224756549294750699840087201586567564621509730795424008546633196561248050693265608864485929436968468072352740509344271160593546731513467575599249843021273383715733740932134842830995554341273641006551763307999108447023023133221042382721687172185599414639152882817769487168527783593498194379053440253176902578707668450685750563022964259710439099363590819758133519798351769353854735447470443872626406537714288071982966603916010788704842840217242600268657072039247371684661868445834934595185232937908870262251180489422923564772145097407510220482853530785070831025549297497121807227649193714294031390423573618620484601521302242661261082880834974822080082780741518216524356995915100697383289270189368681492303259863385399987437138928918820217199919088990019862821549758306250043084201646789476853486023512021520609894364822666257770366611652048536233868541777146208479947512428535523686722928669707618801902468727391002575049551046838083121317318274640588457244554191687545808469363376832190068716368540509211486966858282233196099332895977691221327494843651819468769458620186348129222222797926295772579234808359030751307049987939532850413617055284738056988877122645004755834414271597474668923951290734581675040188551755306865720181258669393350657530699000345151458700921283881288701306022599352912399306380340048487966850462315049640055384931696100019106189137095691908843114416110191812584782059339696525269928022133302000714042116944530186286372686367689263808350225213390404521401333620333472210298565118977245754047418388425939739503524021077990265492181102959447898945733090816554225003763876922643171447162389061117535190965735224719310959798559080386125887252236373200757468181357949606416778558939257908597774905491999230324510876410945462838287446079683105218575213713942183099259548097516091944301013827238559663829123588579741306535887027161859675405242401125285981665498787438796108410335791824123462027129030907339079926292895220657445235031245751459775508433240225633960234754475487394016247289647477410496165057447873327119803481516609568202295683242421492284195993272320162747191738997965947050818908186878841300867750769179967469483599785758411237973323107151333767768800527621364998551173723350802328394773647196685340057233753942702987947365866195257204639956633101057872106334843111241279876443403948353012761631864159739520441662681668229595551600118438252633474198518195521776627783652430709095179590148158855654508822235733335878895960117576912386246559714059492839674927275684058386293118596759685123651435697503570196560117233422301349388251260352395635298154676642557810260894146902925847104495372235115331586015691668772813930394828096663934695053347938744466131128723379588767402200588663356956435314957833428909642440537433314282817383547325001320362382326985366180284926129305072411036996570439403238807860206203287259898585225743836777333786471039622256993617306532833413630300580091509087463466972661876697527232403497518779869391611641897743517986781181250980445357115157636259251686156736296121153682748220140545655819667904520079939747959204325276706702980265448166313647777616987492079008049688725095609921296444857788324794963354051586610927081375261036017111556113561448838528614293386689773446027616806165196190726971987335658010347007179532803166902925384463759988226551301363899859539396440367537151777552475222902387382697669609549740277244471090666516586171997610672459237371859209321829705672827673579578300739615239258841136785039013969181881112562603733416108606081315935753541374210773182270098307625321396568847019357969484790340995095467106652784458872256406802528820803359711040822221363683563686573538261431880544088700697577775117668430516149213818731873553728056031074035986233572032821519804286528409266630442872050325909007640588251952312475097275379957033081143556355550581655326043233569500149298981551108021382225688820070099339923592415446025570357525577794065329559959514052680000865041555936105953492743787900532263062650502268155192598975186290441998398227221308316096451731791982338197452532092878334993961520294583215107440973736436548456891668580746220245633605620918682765590511657512460184073396578950608533373586936605776945527508590507676789049549696978973048921707229696415056218879309253992371491814808768729068574157076062188632879529484322796891929461918833240180399929702959782090413173809760148781078587417253375890653976665815749496293163922920857675593683929151015152729021313774564359626102975510302538334637700541113819293366742988239065779276122367971285674757246063770854583039789961057743892345597309624373255077180676780622714878722904547003998859063336568784660065691650723879714070638316533767524641828053852659442764397554833598565272079526815958356624650293644190230678264540287167791823708860645916482902995589209935228677334562463759382194208385321477594733458770674432652089953765202577805876489662030256998104505610869767632308247197294827298696252986034052152379890071449314676360973443737109051031245442839613314246047435545360122108945878584724832067397055407569316748050910540557406908731520346360475654452435514570865308524183637728788217859313551102113704240749246353698126936172788011721738752738491908597248745687428391483984610154427193004005431912847840127338008032134718606004900999704687366858462036489258574948886710407205560432269894695406325446540686311113864309835570997919560672559707103592400034573813224682975107638603245328747556348990125731012807415487155922804812219468342115642789365210626741178939867735683998115520662611086982956286534315947266831054001409462995207642201220873547407400135131658328466092868055345959976101437420249665132581065835882204529459371809291883488309839795873621595137640560684834243887641723754225842728191615828127730752660628826205581417733386328817429649761937425190104325588892011556368205408887024824525419808795264332592924858167923575233644149996099367716215560594390617126837787650172547031754679225189430130078962115961408098691131762314014599412198178867746257903836303945805736091957698794164088773058071948078695983373958635985020373214325963108092888611144308028995346022253476169282579083754220946683794756206055568945816939964080216214603631033753975989180087685788570315503256437119348563101671365651070271897014978468095749128684911188618626828817789690540651092640490480496145528648032617846001292976810379175621782827299868940921326670057840201082153080199018865057206001632847104593039796759853908973391440710795512585098195055410849502535601103363922653123157423221994509364192718703987390224821101960341080285071475135185217871465561060628800899369106236345114754807308573358880493001184832098531102011852002911359610968902933600884992641788852188918572511365549947349264823173055733477157972928227305581919110312975244766374004988348208458383751273735905469256690517614525126717391652316250829794043764620345610094696650959729885682333927950619365886231507312913758099927306972495287216282767391900903520399025132171384839589436557792959778217334128366517039911312307853074638686466728025438854930927288441632907102062988609591793965953407571326936400818690713803985929544330706825555003275652797193355004405156507517959226507602203120504975189398651908929629611747672100722743356073044034434100217248848574575534560758449530066853518414246649817774119573025193466744741686094848631936277736869068252213158980808563890693245386439474079822783350298865333637454410695083201436919235882585455386454710886776802250825523819520812026181228318164922631648343574520951714154272915824659890049356905750558646191933257169517229219736400561491619235364677057557970608958070284555845749414892483427588859777930879033193205299315508838759635213069038378422504369777988464800985444560942973160901770949926643790106947807521739307127279367846727077767130266955390273184890151791562045192091800523529757921597372365762205770992068261866284364426569588097444267293142252286330870291443640230522886187674871695532666112874671576153382115026127068909596149677418720584284627549244274386098718613562075665022202017281761965568567756960735298573655443441166308179677930937792860166336778249951128127068060929497388254959215616815525964626039104599747093169972427547112895868333972454936430448282119971602565078137335030751847047994560330761958552954222955848343694060660476468470604162772666201134678636886084754415355526079466538140380201547603450836186755695986495543235990615292370113228266289253309133337637296878411610539265398159294362812369664783259856744708808525670866917810300744628731319712109459846673580360987158150641198610359472261220431386293016347958979680420724750547780032911666909790625579442698284664176116418871144217383159181974958699642115048053481006393905112695424839210987603417489297161767637770987167285555095881626145584216136631168517339968818470029954766686437910368866868176060240310208012940193851257734679573416853882526922130668220717344576325164965370444086980290499741570887798021925713604781151681196024386092568868056812734656924424942705177096452021621698223400272519188652349758962923632001741294405356389891094505538004921930516401314397088298997403515533926197335578763817541257618711250764542712466883582522975318847520298786494870469932185494026556482457955822164719131032339343506420139680145689358309342012964971285480842456928582441233408287183566953555650823758206053572788132184720959019874529504770574326099505312270730669281972417048193265936509333724137779235580317853946237424252382377628292677241163955254478275516957713242203322191371499101434582277076763920695090105220482304295052720485959169363635559923821018200606181160972475672970333702397916188027446027629855279157742689910875725569334750624022334256368633142813569766136000599975647272707843464496939623193512685617991296685053892863192889148790752854048113771351989995817554464488957817484282520184551843032515473146253448133561937765804059780285284183058783072569286118871495292155089919079311260589469872402820500642620029371044842895105392721840291015928456504092598491163559420604866886627387016148938262405730821776288082656273816216069513611792195356610210736168365074273592587264602924470366927706195904417645461145765021781821399007342842029834719322873676479259335349827597081970322261323856979573242696381697749262730017944767937657402622643968040663998372109100379400845262278181080918610981958153439161913112957208992186693330291342047373110590254794524613928776423020199522490266542010048228257630091192370286278743564791814588992896589749850297243910613264337342783820221802208508931934045082062400819049341558250832543996680780859150856021219599661480876434369040213411933173263400779936318206756938930225762903658579368600102266889779341452188800295913242356603468547365635019467785880345168869302364160129283969053638346093361305214247272433402847383041191509425413265294019022890452398005755997483766667251164806938423112560449496474785059897089152858250478514636857694930686503557890584084659991340497043229481793372977563009932207631566549828753458948437548297713430875410763346196421029694122369521520407436688627025104732295100700608095558169719799564434400719266621635379769282029284980242932273896527030820267417853315902698818651959751156518311978085327229256855413214173927813100280101145965586500798506259639018989753743397187487931187133604542555652858114103938065133354849425576136433507311547866670711169466011290281926758171262294204222587464887043664401196473254408887235819092541351460953445952248699322536192375803564405826825591623853096217455463729796793682742825360429168641429147667717236492423885690831407610633748787415120856800349132467756191909355967076847734996823685850412193333603801314901222354595710796374587683581936965278304731352975511524280658202281616259972555026559231590534954659409483628784275361981022615503746812061670805114329306659807046567984266079339576414134844206800712592565900739961477272667604606181030651594950968085479424976962794251520263267178395134832556737491935598079124413809276057212914120189052535054727131322202187446303348724942252316761258459271062503889338757015729808385684949811737989628074471161685264645226910010936089532034543532218956316371875870760435256928253731244290158962133228559088875697188287933484421764128871863442400465281753085297995358709557547363123321974611379162080368497600312327088179867611515659443735561626479051740024563854436622386224564303301962560869076419709832054310044672847929271135974108987823652906802633997133362780305080288427487365992343468301222019783319933552923614691680432081505065265939869797271645608077447441783402928809231785984397788721861665824317875002855090225258145250193550933491525536476163234941792447900605505805789461862460067637448803236842840683702043107412173572753231864335660933653429607453558067177796504326836152564353270454713475924178957792295983402705240925331082373410317665914003364341245823890935036169624741363169817248028033652723036960663791579863947883209622944155752012447526770829779970023279848448932964665778377618886564573430379426356662856801508964445063475283576564660076477243942417461454607280973742171708949981273045490731449747089462095380758019396361441179929082968879460641896185412336972326803255635006477408362448755854076153366766079628273803662319244028401053402019215691718513967029940432734830661944590385698227627333556943687759565035231950480791884510384445916467187674964437637674371238437086327410695284361145542043579191498748299000781823620363349002062398359207508479161599063750767836493467776023465434457595522788078235341574943038866249719462059410484103256581942632305878927220486066053570229921574000628668330627795949456769350802781771259657617369089398260881038485434074664286266045083370949522101294151834636600679818792751203608297595516828443639588525343315772553013528583919144295701145824465976354445723676585228814051457411267802714279497631930857535954180940503265217264479616192567562322595485885707548071902961007197928093615573172003770286290159488025088194672745481386149982343680489017870538376690127469470229310535901969687085480547685067679447167248693447593228954892586090917292122719346285580306144338396025511809091338138083589405839001550524009718183632460407793367206046306099639009289402874861357185075410541973154250580830492660748416303352390865625114736885081276185312482364133313408184553848998614384343449875132045427845266217836650768837469448268427256125730116260520542943531163693306498341848176985193923477120629135048475753216010581539541975598643416042623972267940605820315840544955414105554836963327622621915779028367725050236307316121439875868278831648115744880461769356052362424557804378010620704776697498765620193618782732340708151413926259466166762834906955457499659006102897018045417722967087526903893570075748257550206824898465760013021595191547825239135272747831543611297361613464705905097753965760933321817297669257730727065852317162396707355780521558450126518535788203059919296147292152307951074864719382389391977007508525080500857762756416342745268889963102365174411938673243706294416581400759461752358845953216450112632798419717676180771660265298676384918478581427539169394835205917912496254106409273311851914285905585518557532801776768441305920157778573141200926697348958107743772780862415560774319590500154396829035517047203792942652675606863068800903695418812103674171618448704510091958429508118450122569930424645268602029696188073424899982714590282121568965865267711593518534551695701240921707195346635629185500418508231226631111703584078292661142876653542399942839430140409325928801369873157659946184210369747223418595552819582204992675871955640342658689421285495281042038869421985280815862842083429330598102917885819350720193343987335589100750062784743175385613614983315809895316607688894960680542742355340539509810755823217940550520315624862821120008954824304768937429829189463449014520233515969002782700849331967943073120366582734521665533159218898815354631937239117102247005404174065165030813357178420642579700246703763283920251363121168455789145131619155199962960766959082860300603264414446395741192107606497650309321714313554905058049482061059802661561384120016175535691692692772171094307075546367945867082902434290262309855048090542937122696739858652300299726670272750227287649187029579668920195360288210248246592674490449540089438157749895757387165879324771417382077652069430776102484189497628816284159133755233859879730659646978950803172735211592735463020933583438263612722697467860731271153959034620848339029631888926747605792747232157603407057276319419221197904837394132056281072058042261798743078066470342320703513516960148648132360273080519580766168393418068160408295087434107053962384320954723201181749882225966253633490103364470968187075766176961082638690773597765957388194788745952127013538048478873815055887306766943314744603932550846818724583201283352767059400725646789501319131134151897091962655983542530773266397622037951544880518886695538038266958991102194049011660138891579635134670176017343407792563614437832795040754852328173705072598108937312813039439443840277516781042064557630792955763502393055255230995020971047276846623362463993515917466181016369241903759724084063093443170895747914443664540373645277414450139868804528748861272380079479789188073896077094848435927623145274340214954876439378146031031428587834090553736725165599448780988781397189810031918640094406103985842645000550184353757735958053942163088606212580625195476091444135607301088722230499153438329577207203567085680867979418437791114572886380020361842923074323034927628249739041788066931228944965958181772752653380087998473384688592182518561050627357453395128179765311882702146565557518242872260706851708245549355224024905411014142810545396271964019742711692274444981510729087004657955365912284130119740865696062689241796123241220836267994663384901705094003032124794420315737298042186958748687457628822528492867798632441864930602748025106921947433324000395661966564095180161092120609391303184537365937351736396186157530791579898316983939989269949756939313313531772922956314529778361945954798914442327011214274823711753884669369180629535717644923232702141942456619608099720436906631838147147040673648572067706166922120817352069061067972297590235294930236312494015560712935245905523606252088917223861710697381655002590010325086345954818755183909092546540396116553430343528471728739698169646669150316970479743622365801261284437572613082353388417139317223746337724073982337385435913433457811753007789430655904032023424808594129030007637011708841057036965766658728520746348065699125398095077697906322444782761153271649676803607654638641785672062162712513184604279461054817988837706055479990689716677679264770859703551796203965041623076536478967605047324290189540445069644369207791228874668418510021615489908531379943048562755724547186408236000677275681738075250481890515756492371795704266705754966586960622173902592237831471915789323473150517446360994978979030030811315536739316357086528727679600561868828598585441068750809993140949871480829855101671125435374342351315052819415409319098460631896700375795913385934050737131577896717902646291468726531583811400213598346930835380948098063238846296779005289482042447753299006526639428524975537569178857548464036690817447972811679809163362559875081483260855585334872586204480136681224182581179786272086210279556295254034301092743540047477728476982989848372950348051548757524854494820390228626759905070778379694873430745287718846088839453388675921894410085599889418264953436519568521715463771688679233610310853955988925725294897893513335067140992215144028567025326169622654199521691448022938240745423619234740741767653572298600507908728447087466375073563423956277219481030091357195838253623802364742913215872915104303991850119262217472276592806703538072161585480943180627267534686696333773807472760851478895675558926249549664386182900181631708319641598722683422430342724580352436883064966699614593315530030466872346028377727551842181266208589466290424807028091065357099585128756477490324974235173316133006028330953338495031066270613596148183951425689599192692665204729500416374242240396259525962114242323272504045723942401925690658244125730886112108540525925379038391323442792572552846144746959143245111693628818776021702297893378760355845143518469080047093069454394891321970720707699202329123148360344521592641999730396752132547046035529490195508996784209497503632761273539934729577905549449036489414020964710859081250746350377886661306825132059210637277183221447986231737571098515397125550507064144453591791968027502529896774326274865251116321530313777192622851982847755619281321742280790314490559360697852011821490166983328520199452044495468070885165508299377543591516006134921999094212567685504956135097887676808153565742275657544709606764049005539225096020057059797338427995698002653678010103683378905537894152807791732974673614089739601337353995049762402650000235947137691045770561859502950484721873578430944056720339176972550026826609897197927168222549756411311733764222517846949421632004866781330951163274031498339703732378416226661001857260927629856688083251803856773832777146229190250039110604729821869636325220118243210743352151108577113070653373071303919904043227244720603964922143602213262995990735945749495018776419697603900832387787500105351893946377507086344344384291736408466125793364677220094129512711704666132270100049179406903882760645234582219659978481286111725481672871146639477660973200734383648661276292024361458549881834336756429113795438173182259462109153998611676972230067570191120312952085629771342896554209118686691832685515587564942349231033977620252395188778010375720931247111488999480483480023187080756729504323294872661352206064960241579898044071449781301939171318579777606339869891692025131665675671041228108510867657351688971052762167460377823567269459577146563770392027040906203612222978863361069616247570592314464674891306220672807026467632448336008089132935399866467097141364564279793890297301182845077362880851172348989029127485723980653565037868112721045222574166392654145080374704658751106869177259574851594052637842634081528841526834997013241343904578639012455345923303266701263485603885407114764001275575236412512960756413863506236019372499995845231880718389171101150594515438980742914170717212714751249548535412095057433726299507863614298041802459157553432356612916006262209512294138471009636395423790602994358474317695168910621646981931968259880172736272928291185780959513347757411279946776040368478940224914547368013400426749130206042589653002090149121242189033181289200329925462660693529851230897717776561440477056926161021188041805390908144484226671544361708538215820475774915427227733697819336168890408886159253557364072875040596289055407470536833674168421423113334703457382346266729963212693397430365261514236378362868237876086459923990052946250560306682349093201113855645403242290590900741858068928861944664050037967639072885293296055146470781642028694860937006296247491581876231458285425873893254541762142408089840288366335429231633545032630493010196204636963465252239700346052431777764832013867286154046941627422330975303177138103505458788884681065121179689716289227455659393159492749394264866088184256848151225515711189794658721287725912035421583922675570627645080853985641271530365159605435248009108656147150781388062909907849547095426961215863114987634954071747904440101237668926302040461944837995103312360158691913903002441576587646484693136676083398733024341565843651170558692404650571255594808800840835536081400772776370061801368629508832820732643482732084619399632799989482329763870189273189781244764699155745114794159468754299145290232569208786653111097915489242476431668027480855376413339510371476372862927706131897236549946084932930624001980329920994754056620138256259160599347412642894657280081713419165242485448600214808440155436988362606613337216405031657605715429760486612500623871420314192545080090313443135319311031903540399959882382007791254416867885173784347261747746110944881666504373562310446301072640164785206943191875042247042565858479790108625936395863240348231140511459199598077837227549070850854000802844376165862609734938573931633931535800691005223189360204749762772428352953501731826819769883763310506003949523607543816427097121886251469898759688246477913244927089978705863416512830398657405333999737833249455576533946280258477042309452643728943993909268385067169998515227597676605532534890137337591934062651711643488696107716942644916348996230030955421728025281230080076954746400885919036446729671982374361595012253259159127067514618404924191937989061664510806489334392725196251612912156921323587614078325644025395342610624269258705412158573448213512937923071882415164913422337216457723399118435109270079142997229768887991025856484406268430851310442490786959021351818169746789074775270975900832455685077229543398959847253187119973104247594286284922771885278147593874526042951541517714267842155239080386570665119907240236044466775495241751923320018709786409390181123769182885344144731936115821206108191570370546877649336933107977339857658914154574311508237181051833168328338431206952191403345581326363143377156081952259686365725405555085454402492095261267915908462548809217445010426098344425018858539505155325958470658664023014654766654339671210507254129195359006265991237551716757220976432830454954300503609115180137142179183336786461923674025880021214574475577624734341092228675656240564135094227555741651093870567332852384339466878283060034221003398336932420923830896542439011920766806940989383152482287826352214430596758691967551248167900615663084639011273540462329838253431702459507600871982966647033852095807937091018445699677378856756021446155000950329862228646627180685510741837085564425330142686355668890813323468200502974833323433910617686020709239276893934351266012290012170862478045032278427004976179419527669222762101887903727194394983921367725664543300611361546894929338892813375387742248811142608525317178202734680422893450917671611746337571679342754563178652788120584335695521347324764777136779978178664436220231638492499638495764277115258865246014686525152108065288530507356327053587325506011887339471449988737059565188989830364555450451733999545632026819653607554441696930273185479622656514532750542563356966658949488504281828171317514859746055293396497672181158903376898717120544709952147914526275781469925383683817041702747622500514009280506413976235937395743039065652731057533085575798909931240004731953343910581904280971547703133517275829828715469396307332139447083121739133471620390616672271945715803875779285633804122767076876247331925950278360052516099067531498862386087160939639973341280274408450246040293137535966436998722547319743949305683577708962645002307882898966819337929693752188501562896826225902209153153397345325841550058501814677904525351879270400319599650224775668668548733069157447875262729884006389733253989317799329871029540284344601025906440072163504575344826589338226193869405320828041821054824004958189068966945566640233806059417612019135991535866751777978381483725271180887858132075673315440050488134801303476557469839456477752388929368285762798059840360413962841191857858659544547327627538152021017844450560893824450063503479680969616040960036993620565367972158515067300183677036236218633699948226452908939363049218022873261184460958888979744466509222962201971730786877872785435952808413782458035677338850048945275001698369304508305955924344850760963796645372620439948062541770290974443443252236808901908719550429223424642881712586804662509797035726439336413703879207969464634919234033294891838246315168215612110895883561111013386825899177072389589659525917986181156923168537293156963044882928675073453998013245270729157002448022798975302487143194882991368055918671177215819561909749165303605214103907959632284558616344307329198010899777380750648020413223025828343938178156743425138056223588682779060905774435480378775611447047677148445082206366768080828939986662756810864876548835276349380769877557639128980660963118276903720466029806228106195820521863188029208176874920491188743679595584358817595151777616085487490151888919582304318068303027844903989981256734214899526493928401060742402473163860333586279613864011052060841711207747836357532936852146765177811630718884250972597507591997694693450949193304590569294392278634579743907436215862047800653452491796638960972596520292119017171985057816134206046263073248340200473919325556299331780554280462377211145146308924267892392840218643086298968394627136778232123432176465493944120834408418558005382358452539779078376065268227174259232343732759193519468974419560696442516983216095392084786411153499016867693223389746929378999951866388945209813241299476124606108258758825556717715114120510255598294747961698516480467569753100687931212206515401933891896091377782960544541526886089101209032693564147892319455339293526308704129415615559958652707747188858148396511713153883284255712138241844107036815810711296099723457254616925846398228744872183613668585906379469297796979031807529978277789421532183949884061367224854384948317048345031604618873549005702642310711323176009458370145891685742646310043698149518506284695309571820297558161534447343774250440328416196107146940324692655558596440789509832026477820198595636885367653045726505169753848695616046375507174183189764746892753874439627079152706244483085035617666845271304211072000487038287603531303715422679730517912444524280125337666105449299820794203168878107550172290215009760959388314401993843364304588242256224890842140545722388818223225929611233279448984387489829580439232108877156638670630318575684049618632928614767472326783862616071626362481631566951761423314723750210869740084016283562055083559037354422294764193976284218438125942674609282276868778504328050376331859903345459587223386221220837976736280524976826656270697635923887709597157701201135177252792723892074669582085660963899383007379527947433479352324525865475646926671374432556773559400921034752070780599570510391036894590840140903653647488476540944045441574828792046096945302316894639613602005203524202401264498522656523975469647803270847218105558057712957421322581070527907185676947385003887006895683871408053167503327857965767360105780763063817454192648178503096618785510197079210586722040698649758245151316061513621652137834417776768953896696253783360548242270010156953128130003782355285031035299487794160720346184211182120730776773924365870825890551604248335800324268754179965907655840881718723659477768328007280169018090709751236153491717960820274347864121247268113313724440803210712359268056812622576634673624153478869685035812877335303168515737794595975155800596170371057552807265866797470537302099756477957404456679022766730547682112140636265420857876694868783633699199439428551937404457588043858926190812422751376045701301648125838740740497632020794209831432860919443506990120153355789169660594331016820641456439366694645952387260477613868439368135026080207751196636058867973043798720270429514420253315888341266054454609951161572286288103027937860526838455255627206446183757106139084979981956104028019921315057307947232355664471798301196456471024669064746060225794234444590875842440007873495554989410800101151469249472834048614094327194988543885479138259618097563026226442102482974048024244422861978974294699876861990326828151972126287151209316547543164225290580127479101159264001827640295867219905649428551226735444383286730991184106820903799970246018817117273815910016740473527454830224096752960137590221402386628644307662103067283120728608433908831522242790029142370482087156557374518479585732363857852118997800887425634332270270190168996973516484930697852988133918282996237696437260732862047174205819958929050394267903696608738856533989801674295843326743906292779490491042413510438508526460941429990267747272901376377337793635303523819098190717031299148925991930175027547815812058993630542481498377297763961503141668339478615901518304446530052198818897409585431217015458297158185294815494908746603297060316810397168389336288975994526857143203438521218262246646902155910825231938591898671922757181549980986447673176492641863625022881109242825754889692352859783245438492554843418979193665560473041241703510775797140404276120428714021678315086029228911788355026153564257487192261779001446241461037859078165429467950963207697320847506881050792815585623607017900801177112293941490660502380619262145606946849520600615769533186166142028183121021508716789273991101965713341759463832076055005449532484885728081995721799094646847044022520002873942075843468370513126908780664977428823319704688693606167919375023380658434194370801806132847171006560122277437819457629479754010498184910653998182334511533822440642211111961710180353695399509988964502375759079342878560335633476868002853002576990304520264456775724175147611583391143393755673646162486979845968999850646382174956430569104025491893440147409158780674668437475648562557111728958688056229513390733834896048270379085784791434248877160270602662469397229075374947093694501528195340203477188770695920475844435060504404683621919766967603246052317534246312730092145323357811642258597003132243688081987622791566216382067054082817100327372313173086692456234112691110011017032952143709116531705668310475134457130566536511554105685287219941693162442906940769275929563889134623166837634625145228795495949944397174935475601273749872124777747136515517309994768732122015557690542445868509416556036784329842095794121234799164315415060402935456440678338515677773829528364785507541225221595046294356361586680876887149311939798414676455345531520368640016047205058165100701109079847198920441196634156602343048279287492278235208235636040731245869555894573400798730135431621476869779502932106206800875525054242307584090683293058166822878302794656854370448277717146049767758031572808605798731926875578647935075998933439759492419882619413932952203161859274385197446897165908522205816225874655582822121453450830363695618506011942804957040292443837845762891721828637392980719130841211492324004633053361265467093644729601559164423104085853760097724372007466342205982098165423255807856460238591362709089965309218152182095066902323705845222331803156654436182066757177686702624260668197930904472599033043158006374248721201901172550597125431789866154499178392069051672660763558199057973161827753429819998834825951180219835813432782317055777902250369059126339423839478767523319938182688070551655270256385160601651544964662200526686338346645761426264120978659160073217782020568508421429474624524787823064918626432904090402216809588259688252682200640075477021291356970726066279846939649874864739952181944115257095498332974021709132207143021887932040260549237710234152845668715199252027747533958345386935552424793867606363569362735823392080313815165631424050396496593337974969123847907056075517538525003754758782131724066038738759789971804275885216604997182540637505872075395911611146538651925441255891608076552339356757854536641398242158634056914582041471780949033196417661272012959371057764721840045722037236958311824001656957494756777943786678985575469057701044809913137540130926628543418618496654346932591475603766232539448671317289801776888100520059035797128788147119453180440041163545815457458625185373843559022506034132232603532068630424224724284370731863747956233483881895549955595140154250806794961308590966608913713460884633544341449269334745383692838583637573233801438597687932882688238462530491239588446974576319304310783310104004397961262489963700493240888719050107667885674991254162895736234427337765865588684736634467677911938196741249814506093799197933383501365190021136385115464688569461508451167641042527759787261968704318663983161991370038948976985909084972665695160081745728812416631164372224537459682970535471258719364690671495524889519868385611951885995396314369177280970125572097015672417923536537025558817194601870294392874349862492298291445620162158188663209972347502701593309602621029237717753083319267504427823428849562417177535394458890847862892184223464525154172726920377964383628230320856675663912925634289922434535312238095957131228437002519277593385409080711523342054932279159255362747312392288498755150767407196938426412770052850365224889837865173291150331016649401724927600825355081457769717838530937843932651441112090620935456014310771272990410601408118623258454444986237956583712471912622378116652757893087180861498277081655359496009098979891055563744437810101820075658535379202455486614349307126501372983409040976811107925170309001729877924076552032591967267581561038380891547552651314197472145392051580355961423002538266716792528572458185462063483412463183102564523280247234705444104786873020751225450349449647339695895957268697101998908766149846450741007891868650896695060882078818800303746061267316448385932611491831345482522438729447490482372784938066130259401925322172149674625565431651214396419625802147079174731142004787697964072094995148359075979781938128667560473832475666421516080032492433403321842579595265116478300383666922690122444390128605754649552672197295444526363299244781475014624242138442415105080770907558537761064556491472452626407225610244218456838873602661984936239917211256653598363384523182231511325626080641218337938649201002870632558038433067962560045322435144805458911592052215527292675401563510981108298995629127258741480494881262238924589585444560228350611231278943463012763298382674502395722402756375652261150812556032708477629951391061995488077998541925131896459287256210680977560862635891282111298689275673637249716888367319786513728928373122672308138691424908374220728106244951709610906084357512483880667493881083670491654686525790401948012017525522874861600373441302834861275349871920579163111748404822471080883529422347250745761900684052013063896233571843930394994638716049251053485748664365120402252306513041872275150011114273731885987771649305116746790490715901884308615572194869705693009782365466329609084577477051364699713444774262057055827822336403367167013066204496044716737362090855041778706796333159648958182485336544049268482297029833292534129546199281065454950819255650682989781137557828853276127821940412972237370353873817891053118359550280159532993981375934956493604095345758740818965283744986725373273279700733364120004174867482753027787183332056909850804017637617769203108025758220326412619464932618122625591989553364224402868637270397099975494322225589310267828496089151893007339422506907417885679202521015072358341158475648344559666493064204778942003082125255632365145535886007661042669651734354431577194315430552428771686254399092453448939360254954463389406141915595744981095090303889539846997270896165841389441878361133388056917209831883032822920463907223707568505890920315172542787136578231422815291961770104567538681627016511606583544096666095011251531792741825120886878704559345649764404604931409879061459104449104595759291203963998641274058036555176834964292645695573649887998453091717246818458984016335405888787023844245895925193547158416326782637129477455101643702338744328657649172993681635632916605754981436137883269845841628575376540023606640117704636244256940482773316877505170754888725091669420115881472637100118137002467328966895891670840670431443892196490126443507869359142939914627199317733130142930125881268205191168640389577361867436556837143853619768342777117024757930750300423138855904154903649274432791547419412218448942817372469372727804987690294598163132556541888805581543901580286957119904866564020401987761809547326835410111419495580108334351100171583913115245695230974708140365162642586401482577039296921403259771626657190169031977876539876511048449263111829533380998329783515940012251759031954642492828483943923131026587962083310152642943517054969295313381898107417455235971647883731736406342627526851434401131593578792030952204259642690537593112438952432912104940568605398777878711570689981004698300141971960891931507890103755637438622488698754985186854832444186667696564296770784461228857946432902046433854838084149114622171434088270834304689355949239718723607657064966353655227548241195983435073792807333002090231631972697555966733069039376293947545313934060448677353790657882717857647119216283808484697813447071657127833842177915381609004624539610139795160815750393731849411321058499388042817616274643443790703449946120916573192908081552357590781134067180457824670865428252676276196936274488319140812623634415321519719425896387728473198162137384302237595904428224051321751899006494319220959260798689651275216008664029052252108579393096842479223245098174413176989150265036420741236298285117443652009203947185853164487851284892208819707764435810551971736967905870585809466903001752346548916156712543002000455089616961617003433663091675039827592353319427272604824090610953424461405201150846695456433164134463528340123234325729804765759728648761046723689150388317031253729408233512332902734640905075071975336480593355214006558862368053653827268810154466905559058127016144684271190316927626863693858793233276912786652451830000141648589567689570902604347986296059264389913240720223313532992268358903198984424285940488430411968587393288485877169538321378996155640041524344879142853844652745660843379862962698908571044059856070956813474161549891196003642927454044237727856485783078656620864597330834238957452434703187506983595116557781588253121978044440168285716372111185263720565681002595981784335628488880276987771997581046032930027201308502367938505144286383610723036046526015311429638365948273641164727383498002114839630898940366504357219576855575450613420906123058280663868126622922704919295625497065947834317441677588594543526507969627404906316351075437946839847405869393386683010858782242267046301918728382591425693059765318086549342858690417929071051067758236091741329967787173194068848584345826779252268007424033230492096122420615681455899195182971037425981870808719159121826860515597466074861563102803364200344865806923846707759109529973277779524574514195708543899918948543294947390436200719435019829312772148145534276730776196722633011901078349326468495319916289412897087862198366703604741425052818799972370937758591859901239726241285717938694890414972672148041454716584663654000303068545956772523931948171685727808320341076411752843745876522562948712671117463167033069801039185318348271520929295248983772487527125174053582437556330543058086928546421639009769060510133138784067818199416036581581082416572081830230830866078892757405631234652636022941429485094115228679437003625914999257175571929990476266227925082062227916691096145294701886568995610679296574224035728796830028430721397943381087516129500193594262173449976420191759759367410550979102322540899432409581335950074070138555166726927484621350207669252020636185543519238773748169253246752300716489462369094733945576973097605221761264814033719915322822212377151210741664726918796435472990092772585032565121747496467066566807195703081526663992980491294392638282007777816262121718093082486332866063779205977896558994115967956369227380562780087168076554878152784994421716099061019444038345140969715371436920412104142984144099501723741581987425957825681917052607815774081645403107486861689707441202871039644485461110910149202694308792876589368438885404015503860710874148752700945188593342978609584237285572399928257048382714284927798009474828862984038072293754149172730683851165161208267775352352261650520298525974119071905386249360885023356865959998501983639130748813623527065508631313723226068455971234363001783477006210902952768579068257095727432625043860281312228874031130230866654414886998204932511323806814965007450655635957019510994445909569008688763944636272462149567692304897540646542517674142414342183229288908739957534465297274550967224956042246371742044136890761480364927802591666187050020230147314341029823538428503063060101920539717926256431469832859754014708121896524042232296946815462206794606839503373643867647865163947094822215614129641025588289551571400207354327377446200345192348009845143255202480003233273449871535440134063968484702140525661894075309631939348112641049849497252010104808764262684990178326347427723858265594232961875195271077098720100179841678702758286721698821664924994075149829928018088108763111679793143310024250562548707923901906058183735070737850816226314526734019321229919846992226999617270833832370121622997382074133409643898920563053818631753758675350875564614206500303886699829314028545680361753966373590013371594514830040116835502290464138816662644303478900782870777966681755707211855273305138895775363413018108322216822683342457560068446051649017420542427234234942576050425265857778444239322470364674280953316508435288154873532041665417489313712853032637392856725427694384480649662056048526984265848828958158241988705874309704847887293029559814289220096969446252780178954509104075005330061083074897743771606510212950069234602837215038194420590225577012326200042219787635735851948065826768881707073615290808698704581464463503156884807386634635346917978844403191464251538950812042813637125517613761145613639717494629231099898713983462746330351458111103438044370605191892954608942491914338244494939643371609826652649536415738238321880459417212722187187610733558377329659360846195018331827529923445098952701296494253872439520944865730765320448353411771865578356323025865647394232128394589483491356842691648918123515010219241426883216787435631279937844350181836393324181682040489051588350668834665683781600013520642921156060075544020360007277883458344195237716732389569888263620598678576075696679554597868821436325109546159774684483000717311435255437841055826458471578776566919017442644238348948127970888194483788650332922974482830721066795938736537819171607365840215124590447529100261027947010388391697240746628830568340004086583476934638470732290521987024145392583036622588306952625268165431043011814640916348183930231427011783515697333748702340492230947499802756418539432192328080335399266819281473634245492758177755273573426704498748369440250280265128300102682494018824483065309635936792116441684058728516743526792926725086036237038808994090422445953205659197645894408126409459933912782115334205319428714602327557396401945643685115872854973201300363113256859980327250149437258930341324677507421503839212720386716272851596379897753897719480813099049503735580205678744101185439494157589007363241289944604215300248077126513428395918990022081598231458705035892522885846919049507131660214614041703769789869063866792588506754197623752201937066418124161141679670319115096494228026784659595600360014703384532190928252310120044336529988624172125490231283822024461706600887814581436290881775171067208585795800403451382922175368603644296738330464446942999753593473304430892947739892293258140489209158474876016141059156573474146950072791810751781649126893680367532577873357860439624327268183683374182077489673235512056006671330749585716852430432329026808364240396989951674267462392593659727386528326834511071784925096401422776711306186387873266253214399390138101842155592221441492210424224559328698116062503757626099100828353920166475504673743828486529680917984092982515141088986340296789063087934950470731861279529401978632853931722737786573181650784582772322543712879738659059479983149006746630734835072139103730911336482946522206636835849985545839827359585814737257961221954725526215225579834475778103215445678243253805790710458443729509036622757292489841174613111727770505088689291842072460107251730102014070966937625090204990885577959380953469540287822097421594502325156085431592556751944162759188107741390090578519363917498766761438109812639196904818213671219293123429403022178721530411494293130173166445249917675443953490083513800663467820035328219639645539358061578316188338265968696934441045843118713855385252521826947280718041387228471841225369993023668703831800806631341241680472863778532390573149142820612998241912617971382178752728846030437026743970577133842683720609430329341315745705393885305628182072534192018176268571659780154390628564411057598288661860697056530221804626632683559982055168279080088633396552393137021777269343811009200740790639714182356116542094490117363309914535240216440979400310723882899780810915675718993132173130990935792376590127460923231949074990207130321838202301707529911797148490099929240569920793487972335121185209271268740942087182234710317726734854422067727175582576410476817270284934063440270239836425163248612516302858679862334054451418199889977779480975378649202825870264690292021518476370180764596124291456012303054839419672070730506264652297745079299280920102942800115463206939270548336838964994382290016031357212893245758250960247675632832342607901598618250536867907853911402020510657338358270934542003356520156418528358344221906027395414242210140381918050627947433076273158080776752621941415274300359438904523823352905297625006186778388484148806910628799863026863775815405091543087482488011952438487414842578831350197877901698504942239906357828170615348559765214131874504770872608248587500031205987706790003441720856153015813270777134514374728522828140057796049638571145872615220024460009633246943009718099970365608535240171599872284827302371429436491339706386966162538175951522479928733915406054362458161552443668290332368477425143599946630952481093541550373232362439222721949406038749044921034030402809853052967175968553518636762327273030051840371735303749408046240651739995168750261424558841951427943153296447622156176165700850880660640473729102690382007386514110683563512219831139839901048297502796201469270862818154232662445143925690382536624529627849855436116175623775452040737606021695254684669421055053289006745382822575259069748690903646563342227346183588221044341214627972217399191945463343042621507291630936790923777990838319680004323571562538547051062592774400909960326826841197571503813381656873698178078420332387108560561757297181364020686383664649433613924936167829325694516056755582402345117565878730054680928845576061583303117641750693661090088517949878136765498141968056869521532441447780007417871036114352126144042342847355150743953155552049088098388255229700273546748971137419102775434931581922160170379313738173635457054798143232957780378016457184337161649034931135842830204968804957419051792851713202268912609880488601515619705832921825269163471331508879094349554898824310471291552230257320967108276568733657982640717856924259824282724157828254083301664199765054940681458440523041724851364993904911423046971288756497009411730584925942638241570406131172300833669543560127518148732281944167075725862430151554789977916395403299082531133340097081533680163321122110195593554607370314039898220548270059015760512579906196062804199114868166873963636250794476624161814851177810105639714048107054234723585826355643414396436269787286137878882737614512804074945267248321650654365031921007951423091569531776555564221797962137042058042544110133648750655009022392410080732122293863548324887450886918713936343042850868152549654758307783481037408772472664737531273351269343597699267080152041140334302848349705757798148219094995598664467370143581230354426859294236822599977709844177271322187698471476175441055172827456199475865788808090564740058697762574809414512375104438449963221355097973205950896416123022178151191605197195517568751002670092821239998688531267662599310204905779096033535536785014053411367912957911077149068988688453489661459003568948780266292591360596081031662369304209675053971751615465179213912545433085189614762465392524677078340072381787037480755829800421610466938445789071421888918927815908050852631626006384159757690882234221255643414516342093800794689250688272461314308873502635849324256704113810836459726363495608879896403443866494397325894523883101376218148115304765824667811566301231396992917010743811488432783338113017441610902033011699555805951152061998143218108619497834018575239477175029747200397776051217908208364710456044768130221655712455378892649493084340864804742749520865339016738666486058284842442926906993985847944129366709722831576808267073407025000576904000859562133010397671094791500161030090247830239334066459479454694202766129706197369404539124269168580754712940528032247900125630510243383112305547462280919735975571384685902933619009882523761520762348039322412584013750484618355648043573592329168076202989516128076667983608032482354955406043160034867771813363877908812685092439167530220675489498200139740187446874386339495191864580447510723838033829053860589474934575755190296400089493855257926598878277854719838332598305490731031171802554573788892425114899544064978580673917687459818453035351924558184640284175002674382437064639713861888375815652815021189186130796847425138683716262187328549226326475389571672553176557840251727092444475310580257573378462925091526613185754272781582800895636289211524021566644657314347338305497840807141535626522672302754680900224634710779453077352551034747557671639630133246912307045606416723433273354093439389659701989941827563409026986629250348582116958352297579003081462610526105935916238041819189390013697461547545877882281924956747780013448136409640776157025743138328895004502594282215460965390188222025811335296798530614302199723882012922341141558327009964088047610902090899657262278320148407646747044201517700214942267524711659872504425416616083780924287271774715078681700853040653187303852719822103934619983921307851696146916513227000516346172361282896376244789795227222991799537514054730629698118604985388064534691980937938048940556516051821134115712477300863497275814711688757848383150005941758231336961426190450992634270737571734075211042429412379882042373571659466989621443767575539526863269587026771647374432895371169717468117011250680130060721384155391944036233993953704884326608247654871345696323012869546335630126437217040833143845042599185030050999300369662700192432997450381877922652600424802322161852648590777937787672786158069103442326357081693688487915833553609381196970381159526616303672420910009636507411719918786231338002503498278360632559892558291637407676350700335839638435007961973457531623943770539976584990255421127830763719557480942031998230853598231470191041557549044223592153878343820875811275353762375766167781765895230873292769023661675477648518579760137574072345826115490654443860203279785188544096365306700152090886284110759447147997665022460345252495534431038291243033960085581886745354979184111053330439227789195845901485505773086661447704950751502450169474034699874238765198180634265190035850285454063448485852829801621202614589178213412168430130999281276951687817602067894489288678666978427696104253489713661108351225842127104976473829583645885454010002452458719775161825634499062721042761356629853359146366648569663403179092708870214225505835449034884111758226351947085933342454758008699803649157490809640230023623596576821330190942966430114202583354690172640241044810357593126888649148013465070045378614394058814639435534736788526411020140874881814051140661718872366639564098137053243178804151301252133863247470769911246587443839404158508240748046173353073326400805440426584234804988810235435754196212442619448719404639490539071371695252951445052094670481827298001260239985791192593224968761169083682458493027331286836770954064539166691868960619244833968685589077680185219400170905440087913480220726643326801133040050853424850385970287406569066948959715415905330679049969411993623404478955503141742767480400083640657230759579648564664739574855982608854181966806820983684865439936789366707419363043226030794215000008714836647749700175297141636400089331382596371746875939188364129325718831545769529885332494526206047234407968607029730598398598072355951851528263954663981363991187827212927276435178666861443131042936615910934862095784913563569791705832762696541392724147225565310291255718137438613010246469193150545601813444420831450073060295323790243153249213505019599476941985263479696359384140238608850786673011813516003523645621418537070650691096771825174967018241908803250961259484326501365355802166319236300892868704404828619139772448264668742857421241256642184827606652683797195988306091158246498148603324458293413837227599330263517691342144984006469688930375819227279770220283610286650261558013584002694939607073623727483487346013257823831068817404925061008558684500775207454330979551789259173241767344689984942931502236105810416075734918537483788626562246807914815749648432265534351842663693280658051303163664042317415467835130409637941015138627291758719679041648960658125383572546219461609288145522238891241164212376995947152341419631347698957702654904833222660105600842265966031812875218885920611450644097928110451342214262591590440566143818300714967768701538531222512163624268336047706389647741138728976774639781415573354981903370848211260116017111977944931909617428769895806648769595009513917742416006970150461945401367376629049090514907381294433366615992680721309179646819514138855006309737029815922042358696876468751229161763288802378228063607796810100788762050311347843562950017655939165026548419129535118327321033141108176015862379985431110039442964539246155182626209811164656041910481101374479778518228190934675382093133548390662321187951602125140717333953332060315685655245541141759673322872698241163879015773067691400629595301100698444305007140853635092086895168230579185587431964364178891551504038839563468226474165563790805930193244579541499711936222741041417332306004999980960398984198905213285267897303777349435027360934593789002303368090300779808773153665825022805239897176341646817153734294091032356741978423311114821682906978707618426645572799266386376896313369345489281763442941301042550564777871360743406920655947543174999673890681725502522034050734910214706005606593132738075891177878810776173491964853370365681029264272138635480900492986852245542855457648717615401739681147274122651745014369921633403044458256453824206293299259309982798468938204619377267813417218333686609044612723584022934875399662587153409487447897756454305466088740013100039934409083367779780795422060800261886664400702160413280275686493436107649885573502171601161608290809607139454213202257101762806394614982651105393661131866226474819898918275838204518066339857169655835651410991258343836484569081148887253420355182105661851891714135846658983652716067017760343793322797903188361747582539225990158089539919281532955255377914712473474860606417902275517861167194467298273521350433644960295188748426513685786358944088403388632467182350166640152592109860032178952818314918126520362930779492211144121782597189642965143926461957457378137390524068091706165463183656163943965963745218874124274570817204462770293256357118619900046683822517217456551791631419359688933115349620675275880383674795972055470205525984070242170096437363368778889519047385189128462966086281731659871261815954844754392905062988293385532892437840618907673849381251925319306980478094630685623163429853232404009728746837918791946565805331317133387925955013696507362720067933866150937699673445248709894871923949839412460007860463352141404139228962076551582604027767400325197776332932401175158508479324273844411314560239771008340907286039838199351677722157193323524891497589424618687653387701027058207808184688050889220992128528430292289387626607392269066651335105236490143339201851387106926867310972232121409850484132909379791944148714204028807838150380702058887839890733650858155892033681712780639057494751217688174907541430228665286942735298484185307271941057050575913222064729034956396460240252949172957172885965471666740581250369185846252977887906793430642761567230966318981555854340068617665992112077509827826546923819441445713210965996832788232301015955249734061316312344150228417052683711523428171668027155864921860473813873867209084302691838013592147445856213266047262363521428134060926275222293132192873448035896468539816605721802001193981361423560922985772660904575257709382257576081352652002278806049834428087898578894421852227452053545471177613983418400913635909035842812317382157630595193623055150716888219254729345691573172743420928288783507558344134014560617558127635842395300868267440560866033050054419880305117209544643116496888580440069138238756151069324409591153964046082446443224186958399954560647078176078424915166019244369616332573322591324968390817313520097540267021893495585358586086295307629867158822483986418816236476214208119331157902110745641401929240885277805441353687475042241103042611545623117611035850586212791480502306587774371388688077724908185767881156093832704006942107341533652514219301792007504642779022234889971564238995226377720440975273868190966569454625148113252185646040417261895374348174647587250326993212436683860714658711802317289315576311942167111180689201895797914607701845263345753243160567746827752800714410273475626199179579145853965058580979225600476169419464812537658271148485874073906325675182382695260622165213563750208404144231557921672355658086469329011892698936775204003557179780247415330628587168229930799487675230079469962806589762409647078817184150887438140741287574831720494969964591138313254541508324184304782238014219603955122079178830840104582070665421471501137068211662198829930424102073802189769782598507438957616552485911814175734077291318497733267803671978719110483905166685777815048047171272234449753613422483772509271022710608672068987021476664836698624533855073609381654299428213651561134404232192153016003171814143990068764597903105314051672329293452326605546013518859363603188666618999104150492281981528379429373727203316577819801992978253909426232834795414391565077465660248306453729143765798364932971538638169284441026010861176451635796188007316676265903912605985087595415448419051431309400968527747545441443308436490501388814172122235602148674634727338490997656202777164149969831658229036682382940461138741775548204554900946444389806165818887369334584575506218793778457489279677143854786115779081723627425894006678251714954628305912839235590710505965261620517164775606127419824600154492712697052816354712034038015863610660299387132892203513897332672675301486621169782451378300822289770692389282153915958508303642954642956464445287855043904595779199760135841427203665214131841000943371727363618866270595358582937703923108067593018098265538233428279837176630824121591402962758412315775776593304187596230658615991641138892686916945873607948917824748567327156266813571262478388913961802881383954554461773359901783701413511235418074283868897733991154883026558923163073265702698836867881506218733465010498877418008350765276844208691389063730375895350680455995513063398353069890590880081161283861512844425555426607851558197753329857818994331645350991870422240851021679163611535640870800383312900850961443885862720182991754897862834176470519763899691275008664574068729180054695154384900677231380167693654376057288101060393828477413920223196329607671566551723154537154232721119199087109897771106864764792366818499847053775860661506580865837960488336845743001589748162102513413189184868121941233271232406277356688973019226476088887210423696195261330058639632842572514029779191561037455665816669233909007249915720858392352283340104027003808026807584037602707355246955236523830013378384518236634634418718224002425060342581023397529723525763593214755268796261342524562184451528814627991583262046158204362863712267399626861555343636604038685703600869080544684643247804626792483154455501129001011763483922184264109464570929272476081901129448201268801580585029876687490146334459384824061713722525762558151729780771376930597236381213770888635138320668555242653025456849315461939929869931822578179759669790224139983647051029297866541591263346567657721195966129066901942306769198994611856962722748003516983745283965123321220075871616395989855173248051310682132593524066941757550108040937933427523855599028490182748952989352458256469774841040058027136937820221233852049107528366431933046837423391980527952783507327490268731671219077140395357856220104930891004205142987975457641972232217975364683385194054768730188268926799716348589405414642263577054199413879247110587803860644668419281242509622232266579991347110918017970089795433607110280973126181280794591090787496656548268646851793461292932981357646021715426952000981015249128537087163880059717734164371933978662581751340780257093102949454365986835277835107119118494947938381427074513159819580701686390619953572511149768354587206383622210297376925344621158466738933079865126184540813419683634499718793733815248872854007723608272909537096251903771009550139320221752570030801831095106022565020074489911108461910132148138406787262646294439840417392322868249341926518104322749836151369733260903005179460675365818425255045907485491854028327262197546338168315477850888577895377218724094651756247073999142282442277739422131567332043782962454604809051203192259515239004625720907418027170583632410254021914892048694029510175013497068894428530036358667142376509338142236446605737729924484781902902185614931136678183160019302659463477185317662854823392346873246166228729181602812971782339746837641842625538180127038795106734968062882681470618443186798670680501658623721188137925747123340415728388912165738445184810740753828793414476790101250488379074239619970087932310892972046770840957661848562894851184499357702326447297648166603176087871445937812676288756477736971184377198049153042326611623303356552891520732741536732592701418746822951656027734355946609313644204306600611134889710018615379386197473135983426599165102269509990106020662919609451052820274946930187099643618258706131174021683803997767819253945802570947616523501914706646754786517867153040611544908354600925403944851981711641108023593464975388870505758472640493409234273615071639152925516868683775558069645732438782977455675231125139699337776630384460489629923449782164855859674452473423689238132418874435008062514606327536142555201395534294230491505904077819492794283970911453217122901119414114158165191398359176164322197005677433886538864955240053910808581804795108312808810626529214986688418199000945779387559174170549939221117852553809009397906605467959180621489034432597982621353948767965689845436055265640117064482405384888986246874533712273007114492511217956064598853426441837194172636156731575988383661695669804695713538729423055453258515498274779795897436868463037608203612588577888214729857050455985096692765577059565287000126047506343363700711809575713053223491577913523718574641017147002408639770164801012811833314291179469189685075205099796342677026140187495095278020306668679581094914786159129020170564369556565352985165895016489388719693617626610968916826512635791978401156083093068782876763818613859037046647101780829389229097658991539860697796115526216435136620945132969605500023976657999151733295256844936756507636246991617131799464938717637790169786997500654615603552274489688720682025256966530879201750397860356511550427841051807781489851747545308100384815074854130531463543933178292228079627910740118834129402772223649039103820654320371784315079143289911893107963022152572364880559194834892514073410448237906576053622096897585217036641248168569035915035682968538874863334681379894574354021421841794229019457925746129018283703017169470632797223386093485953743260683098728173069447017748578312388548995723953503889407182699335519547020300706439738912262958174173594354889147171729605866285185413455791173540177443933653754481781266070315472801731172631274330907167489416569631067591055082908043864638465697184842962024218289157729707857960764642612391802917311049972902987882760113940045117235474762250577525599588574746795318870511124353910752206124605263697511636476282047887497982878026647467623118589048250418821911251632013146388152702106852544525524068386451965523593147475986512341978961247754679666544820051710395146556614269352587517727191352636394449423467878738652284557310354843703926097044961265171281130210997536576043451890319448663741506213492478103240432372456388059986641645905555989942120941307268146767462786540562989762031311541428052754849408086539589351810989901120784814293650927746136140222459866249257279616933535971700003186315274755671643421382885882050735767763408783903881493203894317091946856416826053137949366617259098847313601071390328252435686180738481827935935320783895958906324488217865888125337438944347677849063447248566319269332065003363369364572812009983235110063551689697635072248132635915130316147941447573732787449445483807120713378897335789012854599616620963435300991472959176515966230859133751136845826262679746249548108375295630079572319022070315454555205199396367073186779027303517812006955693728373767751595003749224653964097023079203740218480428005827117343420820838218430234986478485262207341644883634953462063361799613731491988864282332787732440929110660356413138888000760890685117606827544527719483134318332937086460448375119903836519646827541840750427860625551292087778624119630548664084567364126640770832015933173854354071658800992415484211995453647603041178547274503620581148642981311188346230995947387206839401368115184440825615131808736100552658440190841665233747297095060609255556719170593011816493003406827442843787392302763822806626673954427437271069797836618043638039927891875035960130000989359885046850487947556696353624935783856302897006646039127325029416607297946981932244880163712805445038262654949057703242772680209066001851125863953309930447330098452494998861917323222000569709277001049460128009501162499686048572297521158281614616161081583256919319053381668657496181131368899408799486865517336680237350218390493019223712814178297159394548042102552979938627106655643333904755364535543576074295414360465522462824095050684345704780345353700017061278023517210955421985628597222825623469776254762335358285444978711093019373456884327413049764835629985143123461892852283757650143585492441425340843671500943828617491136372295730618835559914065145287485832367344810221397405618725242586717187030191794625474344997173098073855290457181604020108430451163551912547249511224750828715835027223694082781111335407399846131810165306173988365867448667415938808031680536961448743546749371687807532923166990767091503890575638906719356364377428004165275462010210274811886200326119603906542992402692008751365885615188521467222469664494427140341963755533784098386753967698834619354806889258347022598221324286114527760084190129493223671194506955874473595926196360930521472019933735877371391421279218695019992617834509023349550840710295924309124796542029881871325306185604965404321618576036505561092413220082851871601559412554472581297608154358236188813320680167347878278929942660875246892005740325371348505664078483159569705148973443386930061052410696764847263661138183353172629743993047635773734831349079038128295114855932664911068108393055420519775888576565325741841726116501700049412068736762607822030838983670238134815001359079139968902211289390671055395214929513003672809231675672451066094101651923239559809263766497692446762497697838876692157958094095544280333028469754388141860386076171759701262443644813011958993736736734265063328040466555145091470422617561503291369878960797591349364311327124033448459058904813520370789322056655662183021341106301246253479262926544423917496303169750287028790825906427033258433425203757017423959475265612389364406323930327377839601604346248518325541267857909965326723151899258210939805191650749121174901311672533718689738559272157737862044331098134435780085455237548182086724951328419632372818681702378504485944763000697436774076053627839774130462695374669644433512589563691919783986677032999794571305034929551551376809797098273631116585369032187493513568131651032329295850021604735359997930292920957916146721939036900823559474960897826673106639814624695311556180401410206078030654818248000478194020509759614640490568544670408067379003057203132049535010505249144174965315611822984966007826301632972836270419292198014299841781001887603579445278472436014138909246728523210006697662601219083728620350339155680948777765261302433175837052370688272116596476060951489045581607902745853941879767286727467148735026312435048800820380131054908427477218723356435184699035060659939452973606513456094685150161294188941901280014588613572021382564836138534877157975152266766120076821691311321481619324502645022138530232175084161480224021891767357210063525944884709721948099766400791003785126244338555022466933668380557499365008658131559480553817591331915085587835132369344216169960741698309819848472920351401089335877904018482365662959771288456618593458831646706646806769117763924889048169543796704544409914383498898651480750027207629198505814706274844727909981689603244411079948797670446154525464216030828642680961243342768399492714243834406616387864940372452889164932370580502357608097839162969176133998874566312330708666677737151499441438948570619545525264859794176939941129650929691395665255754235138539079673496948311934277615716439217823811951893755980398745179847506435997669016515819935720044036424921371497936888213650841957480513180405324242564652103524452240295400717502823685279275101093004473412526991649127296317211617046899121279174892550571469115263046557374882740214318817590368434246294320676037913528270462798946197920454057128975676772519261839142900459943020674421439034539719374677332306794786642924393915254069766421665282576356505695386015385665456869060841429697281778829252240717256179454333412132380235499081800464277068553196745720196372588078622052831760224725705325761965305184935824905498851615696857052492019933933616455345992400510646087066454814932286917246560684470741575641850061539112187268041627509122082797471913097191652867006681412570175945444401524416865136157467451293495704926868870633376817568796183986609783150113512402980605205778749483015833461443321529989885085108854082775176166695550698087005778518534600478676095986528618602331431363218782718522536351069390826194589021870434231605476979778019932462423653891040559300249591833683581425815460985923033204864308096475298413911351827078892307613164072054071381887550517705933587482233326210873205126221108235090781770731616718724630299932973678424856968339902557336489589471277699473067183509891814273538132586476306551791277944313912827286245140720365050100686043005671740532835624144908862710109163954325721397228382572248871829048726520971298041651571237815754452228992504231813120566991617350460062498508195703375586076293352768332693259482586970746575178691883084563157615624589361178830199896897261681122183826979283953709445187602796069930040144541610070843221282444702622219527060939905967084625351480951405258466731278679237734863934366308029294053588706384592669617277408283051697873254417034915992209494857959990699009338920421345238923849230648050175367910727348836333552546308222912201119298582723439630827364614987078660501124137582133883195516349464784386403587745119011132785991670751663222886022654588067829015909923388469424539626406764672480436825843479479089614083602292577093416721746818020893500357096115163939101978275038110749832789415997076770678535801865640844260074679817095634644845829018805399134051982932501096570162618596242709545285064568222590914991738497883848593451181933015221645866754283343924625134274906588831799274511287795006690856480985354101690465731316837345831510160752313476203413354858794883247593387577319588466121724258377872637571273808893986164722253151024668708734495982580220288545536379123503342359678715616393190944418756550387700695180321539689396532457712831603057502361464307600537001748786258802230640372662724691841988934319248313287299108120187741321919643401358552997487061579988093142348619564325685578251243436976425318652896819147193179486236395127383528348808586694752454910311569894117233728950586590165822965557039152372774474836462716871488048917437599347400552379749007288091059827751279337290791207431744919966838685906243656940682132252281304141139397269510849518762041078108245381402986348278889494995046819904649208603501203462220946409751601109724320685638675553106357382950095437838298575776668044684786523834441456659959009419642708666055196053945520680500260471030531147184864481607178990991356074858369719195987993324451331377708427774212732292307118595746771744360105730066454126217702857143047799559611642510426219906194889298564724129956589690614418848625848074831358933382666315985617721382119682328558502793688324142472278677471468888064926061521851258513899170469877948668418461534237472634783084214513066130514329620140381890250485424761212176698502762208343731486242098491069812997720164683652929983054776072985793684531129994990534987321096698447415902684041175986017006524114925987594352460292155278170545371153040695914841464427275388401789025723116511919381111233546941708608011336118792016476138954449941199531990608177162811862629113166771587452501147755014040672340599396018074006390399207399824823588880595047242035511466364163889705074615585374734560802389780653741409218261329854633341054475991489046880108761132290865769063105591660729257672818782603561075880948349706768766159419788701037688707057187806788664822826728748369320073245938654553778579545165009390292046662618289179252964504916416343925144708264190520353832250221456547477575607908783630926279507898018940862366593206954001562899617131278107603774535058983577447926355113114957476521874491368521270160401528799767810399371864196107279731476962893004061593068476792589256139984960573440216631103457790146647707707237477088401364590393386380734201150592607901963601565529076954977494161360814147101314059005272108872152811910877305755727151800747146831921896393473428311594433324713733040202721413883300685631484859239620535750281823145706234028669914977819401917785724577377804447992148285786110294011276264210686410755252824603540158322057966916995956052553001091588144420043214730979058504922042840759272027695266854777394982099954487326906939825564101111824029941736279883833743143671065348136888584458960178671884558696503742033758543708176435904095974653770133651107375876575084245955860637747049432334393155636741329059550793470892217292006787684125227527303070226296176681610273062118065830821921218046941004540176435601227124862808559833978330251551988424806144452238809943696906745531767833659228854381355145984388825154534847048687016300949402857562217538687734367719089416943744185847709211194749073463827988791810566206791209315965077881968473083799573643843904224124447015900495663348178582855129703724401480425645258331099554311991190317379294420609364261982767796781311947191397163540306444043242049595990747852327580333881547743021086953693517062595112972649764016597985497416826980902243382887549877035978195392937065224887567244668987127580716768287868347842604438429163470290774489135840840737967072968136556911319971584264785445598182155755380775606181207137777754884938479483486363414346466555395142390298237614826498799279543288375403205276788103732691103057568115963936028854420750449181762537484679563653872450792009402005534478704573852601804936930033316578410239194012276130266453013500207181978179948805203206471962340442640870716022505285216659463107806797804931137753560354802836846395871384906905232150465475157381867286989043936749047610973617875009034985601772741819911384967233770898116799020861719474041443344246102986377153410082749368788803009965847746825528093149329711681163150205019517004108597416618388793086827978122944919653334358080305286144172686671777160023189433416515611830393454682191414456310885500757822911391534667677787362191595464381604448579836234292529184974027580639875347747928671579140610584997118455693106284157542577444704338155783452025207377465416001612486498078073093998667586679926744554915719916046069457990392663809440664147806938710235146826030944323693197372626217338918267651511454670526330717122209821751825190850769521739876098649576187083567372764979545250279007725374757825001210110366415993293282869578268132975073094834376746055771988265630772178065545509405840809113966437830038801268190631522042015313854019982979334860248456616867861590543971883649506641154526207005088940121796471915268389308028709229240923363668423775213172045816613123346106586123126574867447541045990060441722127582426059095219497842555465359505068647311098706874846794641828407300045536084285517551499291452646081474199952505926071333222857515318457203475375554271845690897297036821331985288333873343766140919394457653322714166622950053292126639628880161765178115994693051731134245721633429994244018910925551984946194095367697748444296329012384916395530792408107342817409203064116486852889020083699863466229348035002087658857728664593817867709317174889188026493331272782155982370650484505978819805471592948639589082571041517359316238742852056429988581671361883673447851657929823145692701263585326076352598850500461307249981381736647205608895006957931013571302227024118443910209915322406237356512944827191007958134385194887698561759210738564986698807686355917872914184210931792432541585606622021425710386178289604144313318479104346898037299758264126210094727401298055412166703305933892565685079636404680472935639935667877975035327171060884679306194223593020509179295738804842961076014787892888852943067845873909339225865779894713133163126659153385806318079286141519804296453521400695967264158761046178097917272334528820164382398124177887775429620631451638808506108853597807885683457941688762553518388957082570839582120818354427902659144718282686104999454208121880759409871524940080750924154009532749028164037121059901262407169316627983376235106908126253562970470706605586257753027276345643765747019370087487883446058581299683229057286147492585132532477061121099043816688826008865286414873920650098840700610806840859979170687339952667364116417426185117541916613418244358819531408950320897303662293714556547289235693310763453213923532073030769104223406311934425988504140916418232305976500211982982214450504446698451277289894782685163064052701626144146823268322883978819582820248423528808108974383746888043564165919222619564640226303048689005765101378789677586674187504553192593061055659239378173458967455559257975722810120300341122567366752972227428292031905028924671167065068517598696034105904938682017183681282695141653541341103976786577452082905420853424731628179776401513014802287434989555856082750200716309945806597860612578026385157029700667963382627182506832430982175960814394454977450897782857523763879107916661217877845461656680455418488542280047525781061966592852768945282452031784313031435508594561006368308352466006279421230110400178099576466282880808534218057548024860587514916757526041627229276966242063406671707160684233729076858423174688222586443759043607386004893712149076724304213692244777453754293830819689300873214677808095592402506314763764726944286779115695076878037113641839837163241505698625627293000041937669449456669985193692679521438702873081849467863317544853966217415518990301611741044274288651189205648603649264245610569197805777169183749425111377333636267497502514936543544129724484720420580109521385267183850333221028294431371602867378819366679885317156559089945097731662306312058086915616768153770761805815649553867167936607718118483568172901233208273437984069380760106078590067778308081363255972954041071886577902075633630467296989926712161976991605276397778016728714365757261134310117730501858075258925745592307944496808722666862210083287914511128836324991927076123869575029445990605238470245746492747763123561597522583169498832377789153047420082472583818870277393445385554270514814009523013797175526961115327490071200513176058662048847143185754098260542583206978196682115038414543524253516339930603810174447655061718644005068478724211311691712543095655023568395804493722325583561140555423356766467132525924743778886603584900093796675225851538075634059062455553827137980832843579830114753194126882325623703588126065762286346411945674397880122196881604245192405822413550083705450031572674499721484823488694485381796175777883652286547124945946738940497651883052411214930979437359223181597201086509265620016419400982888624144218774913186943718100735232545037923892889381000604498448334420096625007808632224976766976067833881475264862018914997283290598510499511781646656631260745275066654030861246401959221641483061132294969795166915211996957658952586534492574983672863917504081854154791199746267236320798349541865284934002159754560356512399583841212066736358892289607310574252586714862807335389025352924768256031663069417415417769573716303652430408878947205870034664507704175054559380539633830742632184311941351263178787014207188373586203350278558741262216426710987785010013614496636703645468081286458220280315552826617939960659607802848770359285150587259910838228763002769672739520340436010601623355622852810717259883989349002972088514127264048968942943636234677088020959714274376763199576698213650354155490115875778524028877928999299217913354638418117960835858118421062006431124119857350846440248715264804197660749813233129482783077056361514324146519244716039382226131822451622565072406097338981820074704274975473708621347863130014934541671974111308624353081323685523790643345632440425463361418206663329556486539572677041249060776974939603278615087392702177489485495570616250520007086447390850371196706914547651372893751502471134588574996902807375869248395648785361460464722963987236520304249707181219284509587438178256995651093955214462961593651389326891919926438036235869664015681666275757852174821379538911742896362410257764452834706868248829199793042100243741500232685688941194464229332146717417106734378181105345395603367181050871305935868548519103932126940969755943531318042585842052586114796319701579170745646990307251120725696097768544679897800517011945251589970770657555625340374310899729367991611323591009528668827915786706466080442249492067800637300094381488688732237745035873840579031356209459501443609697986967102757885404912993931198041266014288296337816818505102470532920612164077624355503365320904032150791280441001369868913064031303674596435961892538875249888518022628421645206858475290894510248886991011767180429142428663008463472189197425691188334348097771407335776561866477958440180655781087970607451386158166728730947948702384973652140653278988801130196238892487083183960935451990709037527493324781248588357879553530967463765606241558343496576965655012647543861108202412208775209205152800574784766683215606425281740679810888771494493938230077683571144627316342066379810536238041059345298270009093999180398366746662794740500511559235495021332098241666800210952938825481918724974492160956028162401360048223616069938521335082529590766383896894393610693484165970819620537905686120684273500432882130901818328737307901852030635263470882693722882690328930000282523668987389628882881051711055128464125973700366631465664410288638446556384829229127939294995171054549021480640538606788847664167551701814708272780769683287527833414147402277242863265231921026778762264621854689395585621361979028047577935886618976941239893862167183741959194979586512666028039029281131068979590241744781219461941597715914571605956509963359169015249132469046075670646360557334745912136683196527893802884773342881702602319655261300648079952752682341237399993473978209584123581353687823490472068753873236092705540595791768954261745084104743673601211053943555204081728729818102482489622476974193035358124473853774434290032876653929124199780201295338783068170049799409722281040612534621316324898298041484213385844568908795611222426634360264800123149889899975134335268409997093166368018475004019677330490816254256991211833697058042549047499545179730087925029459332804378724418450715633413286104422281551071648266298822477761365066125693978399421306077032095663703823065528803664169943711410638660373717225988830433775813123116755904085386761018623287549642754423333195500116500123113526564615409604680641488207667840073453463366767532535147134272749040616337126460254971944061134833711228088699101579015287977586064805261587885805607600465211165391466987113059486622655817737276654137266281420346401820853242545895806247209432474110727344032524844343452798033150025679776825938777672000527462605680639811459153550002561652931582596459595767939831207580790932687370853621752807034584018120748824863352225807873582303377865145530650063227027686168179850652717387164916981308910060851353023145224123661420277721739002519057155491202957097704206712515137336149004850129814867613226681417355477752360434488693406620833385559270314796882543832300869522903932786911284144162898903089057861795323347151612355462407742415121209306333674686544712451194883842101454020186286016323444209670255996864888655336978455396789704406800377183929100375721931442100212005974958650979283097705339983502984053998600343320130804749274380683052873845101869527309315944864820301728404332969889665482950273471811352975091509044735121424242621245943314923533805240774610065733585196202146319683964274677790023277381752263453334350543087690092058640896110856734445923564573291357589057139489214833652297792693281450332979180059447946927127836178892735746528935557774149991337104573275501918099110247837857830177216177318254498100343716057780427468487590825945306840623504936999181617995173214228893625542957826732340597989134307347512450210479077798849222333620551840635179209871214806601956958839972653273385656078158336612880983089733907502205481718026977321546472795966459524412720316572017895024795410444112794968243216058727171440705395152698451870031483740219191428491120422339720129262137696833988172811281561313771824559484805550295199199694709123251206616827987102452035443074506596087231130240598592616403585845233814266942235084071838292554592616037122044763782795370616553146624918939503731473616398691610742729532526286241687861678029365908952267479677686767207923969667221277809590336603062681049253071968623861470222907517132759293659932832910429950242337008197674139065410913549242714327729796469309653057462959142644808174876267812696836548965243656288482872444234795426608932999958447394925451063422768722818931257193528916186957548056726324025892609394594335311359899700377816579087314786619702209335318241591456683667302293317364405019153389346234515803616459284644301341725754423916449015220178244279559036297461688877825553672294524617001373771267582975881079374777069209904583253424073002437678405874694911828717944593969923515662288550618046108500951498392187482717216162017601499429853948807725056951899324067705301674163329958257273589356798981911861176632324772911407631198256767873242692782899837819105345164391241120467545611098555123484203817334253285890620553058860899925526288709983891984640157754519295599395748882774880715533138190499091134842419749169749115378437975052572145050561975369660356827979448120276143590892487262267329036936865830784238842730664234234956156497860435010219802470856626400466948242352599818035827491944409938063091007094037656486095316319080817171443044587936626402196472486242512903564616043817918578532546992079297643834846806332127876068324200321568626867381613253952647741207214837840012223442297640561765664309022616796981427218649586219705035777343800774368274832295451905028940872959134002324448455859744005930462080672487381736348001782249475651018157346105960201512522147503477510377918937499153600851332932183003229414583052507034806880129661829930123346075490958494832747961760402575553202348227621064081213243700069341110339390491311824289821735901537111480276886240786126177257147056984300503870400284377900068976932173506581330415529968886615706731714806060292540163438759452331042979390364784804238762678592092724034567698950916184843125239390229552622665745041305905939905843809172226962000353664784848909185477255578790933990484101805380100257818971263135717178659154458842602616505932775302046515138606298441748067911441497740665781329406907192348279111383655990689029646980863246801234896084972880444853346972500495787299065217169281667093219152137654902915814113974083045980001527044986128482365880900835803813565089005159593332024937861217844515230531684867362232416981263819990366382283818669100334551857264682178084774173303821044715726723738311965455617244694390397395150595549625577670498690584523847715162401875501173540155542677641469670955192955592814863815447015379828120608011348167511548349134497760626137967559584238995701044345213136983336007407334839314910717604418204835722773905555240622411917242686006454695474184446118275159542746713613472915234669668039499021972777827634794089125887487458708054907217423980607952298064715351183534580532003002726627786008590781470913147433935446401573001032811909939998635173511578499784742992859259793565820717465535946225210045128349162733245982890978110345360430909757049044327437961329159611736020760215893773921793165450538614486193202620991938030411202453492277446278427791522978808985558053629126807618849865623913711578497413436816934198441360524908989292781153124830474910994255315884766532862701157401815811166933418862276624068231553843595717838310871896266498259634281595367363693169472940140040717038675871304419182489154308898677028731072327494722614032668683769767395701456684956218411792603329519959684746870961894497265802769369402185552641589977801036651885032779428078910515045518926784244309813192904653051444907267363565596689422403033981221037762985090657829525927213847752548296800071224185983369743328953557709711767189474077010195968407419994536764196150884012957216828370982052310766143169274671220644431986636967369604467062347023417821559393023246230684020729803340865281609527250904276852877516076462582561098889582356043419087387336598140606526281767299038499524977589347493756691730674790753197779619833182769318295915418766850981135461819092521184739007088498481891735762162574123010621464066905814706513438169852493611486705172668226696436996190565154522104193002269012464254016298619499329900353184663845150447697789627663192049097834226444312916739864712751870189520245562810865718716504411331881002700655099748655962217774170162843454364237684270139294172963956100910247547407027738409351609079254662382789669582535797367199318904577537042011958382021371481413594218310253464298758812879415412494614963356610424200679566789970620608510894486760256404596163698091784069136902668300158026447406112722039088755125454091163384789956216664873400317811339916653345777117358352044292733133013757162227378452396453887713001861999473384591399644497828098872295246851947365833225865707615421810296585081065963866609976683732071478472915470415255080310585467178527856621844875482118326477042730545885360853232887103395183980300276538169339119061470842973818314433721783671453761595649180506956922852549479467170479864137138517374595857541372706049683648742768639078088590174817597898246898958804140717692278994554019444511653865942692516173615973132941952801583149602256571227690374302519620208458687877740899235686745730244690977883088565585966739471368352321013217193667057556457922129634507593902112778836576406107904885629836667260981285216896673041820273582260408653886183518664960501907024463257010637925971006480210499810895739447422497146433480945125761043427438122973486888429176953266881926658301776716870552857960640201363352406173487133358115381963731320573789515036703904112539226412960247326369908849913513368194666404932610287730022637521067457506112404302345942306039421051063095414281358523078996680198938818487169058269301634947104776814430092330132267003413769991716254916436265318574900826304218845916504210207521034909000670059307667458363098513718923005140339789534236429443433925723922741381917820408610433601855450751152737278535702916658611691677035350842519612144436894808408066570715274013140410282506946455283453714420557137085383980889901975863664396742572559671829189878838450300895315147728857708287453968502412456055950030484230185491726623882909226572858000668578650124794923283163296609416351113286993585517407848364671954197984601310442298021055906247366698589345627915874068561155003237730272205716280731464653832470298562868642276283159560196653414494345405852270759357850265298352831990891899225732643862580183013822630277963935112690709460022520821595203797846309531443116713286494856610435653259273070928718518122662529616670258582352170509555152270514975248572681785905743982432274723375714493507984552834488258863099727719242950761823371443352466345059462976455908503821902769228179685147074497458280095671194592799538510593811772781738615639707548690911586030828197616460721880326323716746767078408258787638635521958787277886415256216181436136405893324050508196848586907113774456038402372216841052479144603541869149767183640350261828028665055460859270523712880339458473947090961905488524521219178156717484986869275473769237719966489912667658806911943142286801587539659108828874297119915739386914127737614945749785906365094430819015901063981821444869203685688468419080565910649503818087006202565259496261677501794572387322213540389113734229005661590892263235180925232872277598418587619796801898766009569476165533882477916825501346471877311077593639159707971678239045146078050387270209910366001952757887212147909608753599899820276381476985950093624656299793850109526683030373343399537599378614264280620762754390105573329816276842433389360823316262266164151099250239777650059070881726782111475492259756873107250783243951799692083976127576679391957413606836752940923078687613854074282779925327810337284154630432659485708871578120718135440279686531202701868505072831194338875230484095642403535151569947318044947113737616496214813684449012154350230380724104152766302399565846742450729942514582402370647887713676225322417712010782448945054446000146624059032775620136482923967275345276171305956364680994719150921736135896441975326699058457762774258399038579859093866034045359382219766838642802951818180171807161889674596496298640927846080673144078900982481196736133265834415542265263399521950617847136847885550063043037744441237681207901655627274250939002770567226983595001284847921449322585618190682588699778230598650210577262656223266607060201656374398025473313221629936756001770442753429987244188445600575967903476263639917782497589686191809651372265678481080565002782886124997890057074802659147810802333532158102656235811033787736321255515562400023688125786748013510822099073866827640694340921173812610553669805486034228550887604125337781245797700924099984205501635821873593793480961898380576782321846901879209813893248643366744859604993047343594310715631195076347312495939147812053718319499957400200160387155600889983151432585553847749940605409444739912898270654808311409093917091405142907508447728314713136317861307616467770127940791813965497704260982215989420701179364750973587066100903457257082476286742408306535104334540822156007199935512066256264234501827001137439913172677936030611503199489958656343577084826548708142991807080690466990688166678136534871700307653237074846150216230899893127637138631165474348062629448119638125671131181251636476942960705218086680115139253105293105420949594858432193641395180130830136045495172539456504261706666899128895461295031792676828252884757660513594021327780137092008422872627739024199380410356639074764588947254659185111255622688760804173628603290535275988532974619962310822871351569604191442726361723261926787483432322285036523449476277277884724367511911165459880859942780152597766180963917888514871347898479200556038983059731114003075885075250660300796757983188308899410142081779144133418471574776117676124224785860176894613357797326497211852146883745689125992466174868901297200689307358260494172317230963538588620377223781605240788080682224075922513507538063580351465504309912451882002816426052491300959458285182591483319849473314259741892403430582692704436979649024040188302561368726002723064136524364203999966973561109795281399856708375132093765419109235462750028573844103841403693298422360252443072756019553679456170865395583858278670987130121506631437490843857507582768860332442178720396038870985727866757935136529620147489494991696045881593642605739724987533719898958106609486722427274580741307572898596171379786251347841360632715816360707876022111584513227879704464774625225170131558124356551300254715429571053784586765399836928354889887807036481354183302391452898266849063705767454690403091154329668167706831545194380126531369221318771954301447624732363004853676009578366840927057871919398372874106467179623742569515871249305994182901418211686118522949296147015680552822290917602031723814128196893331753307998232467547742416456842491435364739048869320401883544405378879571694859226054788900453575731124502288776550233672339561482812766098303754827679667073174472219741549876873859958587209882771897154228032587146339736185043017702951519135804155823980759611614665262069594652342054570715630823656556910958167024544102376738450684928775598508195303213996273599079630687902928439889735592377281772182655349202603124358709109217766116028445053412733618835518398808601401491483526398429645836513081035793453010509451814569402988326653523637678428836735731009478487435090851305301584079707423053406297466009670639180462812659038426826427091298611621891820584955533750457446740450133137268202886824373621092081151013829203414615753527152149441517397572174754064211277606213586855355089573220274326641259058650891914109822421617127875012877102137486370542433527422597429073203557221398235298941387481836198920153174212555558272232882389027177621439239456506898800399831586289237640693975868661253113759655382419399892723885609272810572912776458583501481253294199282974612699034811084186657196670275876748699451614820874816651094910834970868198041772819929411105859669945058181793846919651484904306116585377821325996565265841565580403373046202931299518504062751478180028975373594200274211376842397306737312947563306369429210527238936476014003811735560036261886900766877915792826482752018252252687595695350251799490227104490892284877095294793744586194439521206066223811530238924106577815229836008276809563141064095418799515938367598039699379433356547376968870992741940085030240629899964010185214713649987988574812275978861099045658178279760542473269901535489535169147538718414825102855972605084167027856433398674721138862229987043010815431073498621033265456433875217601219136408905253246592627880679963636222727711509445637859475324549420716033213872814293089986414735954447994501387051074590120697587686069095027288525219105861271172492075666269450505604678182898010518752960082619311611630242096456030713670822809941297275803633201571697384659736070109958039388007402160778217889095526529379328907212892583499671507701715915569468564085936642195695721280275755758162649295796562088911425394850737741419874742466049841546540513532687287693859685344230481136312977718836857584132985740404442261341653789934323898572738932495893314280994297077759557588390539518532923638437721547541976926168882878800451707133575892349047720178191056468982597983287232561555522719303781677637711793519977886810407252753575844078679435968992916465227326424816122595558608664906422750265745810045228316296818826421530822483791983352748433018589500024477690513022832779293421309678929038821506298114974346295178080383918864536257478614219269707414133659398996695175499079453525231597647194620465639309650492942698824133777921152003674857492065991070500120191461304415567443863875308152011835924429431384221159408594745062402769813612254722340591785095009785749296872072446315385572487011834387856101683234159897233696344204148275803260331225589184162889081046821073165799702730598576478315887538981980023816013228859140332324261169606372595545658531641617310092524770655083688539748496460438875051464577637297685295948445863971812454455628199917867967677090195414975701319920841258767462990306117100694015205266455891077022509030825090567057608630374346455509015707565076064711249329066761552998382583269427143593278087802622703285900023895700966467732481464098063340692993410380364698758136644188794184895250290282645097102014032160671644855490763429865405665248290153000104622745487926959100210203440984778762335103079950179427604418833980722614392439357218853544428167099150486425629850790728900497067097530133106089503321008251319205766259555481879726295157941981601036523792207700745134196242653731772987888395200853701047684031572764315650511914794220677333752482812567751935544051178989851112932666300226949682423789753669168167810986128652874559573176060480934720449751354311086951284730122556173171688807875126891009903479672779724523062639933455248010680469131109669877191122465296373930769165825774357658253216346249033244256220011098409467240605885838634686979687195056670449706914536250813365824817175400713427599357164922094009053278384100220718230214810968919269225323072949454770793488119120175086331031544200073485880247524691082106279121300048140022141845232894918261200397220180296390881260512697186647715338252179058052283468327654157658812787814352924839126588945842407531207514662867424266864863872293897485735842991501461680982366637341972728091875926775390159069793636946151142923750243960648525158571922293362197610094599595353972061893006239851859026903520407815181294195572885953471979991968022589666490185839945210182855226885529849787416432247410339637665840489969655559654274408126590111981068667957959533410398271127872477647792324964037030536434986373429120972866081645375153129150663745897698767469971707336280131745414061738631787735408387068826799703945157828710666464054960587193280995920325041325461192913277905798638196924156081857402011119862416980501234703189156291861761372146041134333932651108921077805534009746834482286806087220411224348399763528005655516063036633175761820980197923235529400022418878747148060735919211755194119509406986714308242990992650409885275592549105324316650227455376080961752650140069106989869943406175025011802572072395912281803941308406571092511425184050919554763500667000356435198693973967979457210532509214975517283158207591689802106230527396078164287032516144948140406698981918934644648836973079957275702790944200163964372180660053966458508735038435757638235010810417060866963571580340177500155648466921844038604045498971635368130493893899239628957906696486477232346124724657389113079668510258195048681073366236785116813339618225212212698704928239921402184282097617381175105847757439887510414472006168980190168097952284653332049145319818287572402321545067401321814945331190473733654104124571694917254955553002259588446804011812355677482970941244898486390386141715524904951186505801072853434707093437124991127550543038489153427142703398613798244269622657464170612140472752871389697417841933987127639247830144271298827706630745755584991563212985887888281956454136066584618068491676880930202360232444536379550786493195390784971691198517142196097263497590576757173466225258698370946639496367863351877563362029636543684365003882783561080754176701804433312093090752674476052705253318104731921094971790002001731704871589292933955615288314215192496781646848003208795998862780867809838282530478656277711936809240123332519960032117315384348368615803654223472077554122870520670156564114047947627636029694262607037980242470313984445605241760329730066122695238137450212060191711557616249246076067293745698465865363057445503030345301429345586893173239645833015283507605171299947857981933054338259559343614764761399945854084394755348930216269610227401327153865480402013645920003855965421107585719857010993769333506667387852590826496628419020746182893611838261871477556403578738086663013139897927917905889059904005005618823917554398792970006640080698080454343005186684635879775439766430101422455839284809627310129281070592321387669640924625147034983699618516907298122974229681406126931954442055609232142859751201196137200640325324129004137834539913960036001137686554116716099521188237495746808103233364596672247468289740433485645561331771453095767463071345185396990649833148911520956845399391573649689450527481985869519979092747353020413926651906664768460936602134271245895722217408337292191810283769193957778964144085363972482612574476946019292176469619477509553124492135584397894352281503661319970962932043359886681583023435465100234339452776604142510306652837260938005613004374085806058286227467617098653382950998522061670325978024608487996092390464785121588347562485449714895555859061643138712260780064839780366708884550443931173097473538122637547844059599352385761829220151111954124909622864231954062009414984870788671881692744069404151603160009628435622407375630980129128541267976499956073740988497571906482822324501657782731514057192766843613248308606507002669250413195349989792411542907894629949392015385028912488139927267189575189210140494787190577140084131944974003301407531135268986501958727351447009728186345346571271174119082643141529942457694365846885935599048120922032280318464350753412210578643051881468325431576517276628122066718231359799997255815982428356321059099002489608229975028346121761162243303648482600017781090628675447439814269966098965140063789605986969662476000718336187348043114655437697822753156315726048851102234189448445369942612914703417535088084971281151773357835862186033857549198284402967262779588123926258053873864924341468078592007022219950365020212908359209958723962426899130179068445982568371867323501680456018241971754101918812046824522960669236659723208326162108260240856630124842884920547016342804905661726309513110065790671910335255466203644238365724815764359076103668146936944944587845864480205843620448539650516699470820725113105309274773553361025217231850141132764656181913493593443735282949643332486616214841462156741760735941054249364373607522653364411748054195601283016519086219448831614271907602769600395517965324085082723178412114616927229291588447264452661424350101329610059215505298055614858333003007960084093507281178361697626762602772181889298561561594342594640462599781556944263877153119620678951596092332964507943870391381690559795393955552430524851088576021869624293144068912650610490484113596052403584502064844194707282267548316587006225915113112232934529433103311997863460250222971348970774399883578723071895448311575042309548010172531702272714021013819641984893547553421888044894918211393674347293382377871108117908452255546281923630602120667413826080854722801368786101846321859765966932473820107604003082354597867683123468710127885330427538568919560602545039327301179489178236725071011861296368664222079884546911254668327539762066349760076405950810270007439202815501213883633763479732684033354739983839093052563623275650728603463955372363894649464263339217714893113475023199040223718867904356689618097310207427565877517279595322166502921087040272895089963091076606206619069389519013944803845079718142497467502065919053037657211164125497984667125077220826946275886299279008142610603577303372252636025214222348519788410623414251042284708651441954336348106732678602303273632987203827579918447686773132193469927246981214790579521786085103885242596297619198278535578183972898630337538047086003958653112837704056620745387722702239429997830764109756693901897821818477621919197012486962659201610447155603572421311969326579149316917006441509495562302966827020086514390358279364352562519683535261598730076155356273492653480815278433174082612472688341954147743986583922086717257865284751894390738202153636135124414366027610100345339615628311280966918917590598859456209731759423111082082352596170990816183163579077107868656714944993757527721593864652947479015468062612567504697946985354010350286050259853002829879704136406021951546481308359891722098214468866626160961949389338553176659349263350088899250772007078819009778699734249164128985449183965027544139436957527501980786006345671596013789147326557784546254858652418623811481178765729322897208023208803054291823616449632839631262282871369713115953274410617945496488770001695470068677261575179883716489689862322505247718489175224262239610158709306496511928453812441562154845544347624672089994642250752658835327129960862677877734464827024878231594885671933948903272800334216703592973463030209317846484489860102581093006370790019627687605717086926947496352830589548638266202266417564521697223243713204703194121117433676432479075699719029640550050155382010062101810768938644517208828366125623068283449170111702202111631825443665876154608914770315078787730514051133900449441251090241156783656585634319679845221811435904924607718002583236110439586921580194657955833796143576409396708353892605130162265763913541314305009875041694310883838248379340113658378865310176238697697258158289943064168367774927321771914728819296871820792526887745506065073371225143690170142913948120757923736010509071753305583094742398056090816097153032455942903214187666336787222406519194821748025254462575606833044286920108161390031495437440879011735632186247863903297134930431733624460492639676882870469988577950299451016721969355642084029914816870639930656813228959108792292656054838688690905777478014578113819209645023808653306858573915381144282235646940699710013504549766393906705242820712138921345431069677674979977183014230631598854608981375069735125822568512642993360073267739141475755962431927687440899682803547116141089725157979224993025879723305715411633084643589502409494810318053989716289537467097421514728679710549718250122097505141769621034946236865433637958305635516673153809123295644337306504828117524234538287420919585546502060872430385970871038517553672312646646785983269966459412871584717150791071150572296080428831752288871731900580043301736299809545137591911663147977435017578318752049429440888924149707335726229454103921612925607085382963883834961209958500191143086349674459738754665309448587651540756526426165870184577672410278103246756285918382936618451744428501670539762651851323794209319534048741805899747410766627615905254584166770908254835716540802369065620088553642509471480536989077632185961392923239166538212003672028986817765975248542336802378226661435796342046582527106099824313320251875634536080567392341093243100391857106917991721239163675921658704031932806206088245932139425144769712257453620913304255417244238046085382008045787657156678453940372593435608944399055534975064263472875075054021592171736987801545654321752189602197184571971238111424865514715546592331672746062782972008495134944265505165171202236827635963531494895459915560710430627482428523332849708241269072444575766173605757928633653986684693616372512031919763967837843602209147184830875744412072275254758346050915497480478723473784290428356650822642070333257845678839271429685481037704956567095968397650722582040919814555662049361015057412448480166519641363477341000930722228364820489777769657013320940432937992273404364430854316028264542781318857445472351574307806177511180019778593606606267658868742055160179466559092321690584153305930361491439208766521245162647032616945430865194184183308872433615953291203651249731031717326216091857763388020979272603100385717917342078763611608297031516020314217062473578454616574570187637698057170935431954313786300612440636047196842715588839269507153201796444667457368779815953168780971528369060216809781907259428008451389179304204019414591438613526368983605165488542119389262759911452619813877730413193272466042813775687761955260111168444182651680331308494367498279794630604150842372849994237465537290083800181807695169185818564163478262022030642673523141882865581246824357962694326657360787302062606746903116844582490446327918151115582937770830761475511806478373424248820604840002264942210072104220496704878461148490873616050566214979508957490968352649309945705498942993119065354460776724396866808440248602963674526071702071947860044697949809551090054807965548643895022773403809116116053503616969126840880919028001062865642444019532461891101624327242959055279988817768777382880471316504332129359370369266006497604292155913597337517766694415060271345766201322392475478228986343299302874477461394394184159247845867402446839445168537714778129788009252998156151605521143997967133847258760425897344998858198539816772535092162294821163639275339903309091249710438129263338065962501005601060507119988333991955062703970545371910888063717462832925094396165864419294992391906617393407387664565383920374620049753780495287716091996193835068762881918801113818195702734652720097999173160282605515654292027760563343569045377274702425217089461905732138323109891281481685055264789806706810300800961113325890174591989247047463442239146300443283937785439329653939015659761877703509676795690855346660129434942777613287702997413123377475298570755512752647735578661097616771212981799015834167531731831083057525848821669038807729326145660121979359057650696955600172873337120295092169280212740532415655916053042254507513211442810803235149975979185333013082219315759976451745541162137322956218994444117206136838110075752265533126173436520009582969706251089404081775042953348285312038572091918897693482037594822881505421142618396556007180956855305093322886302884000260289610619291980331354918158449800096873457972078110955631207186329848489529950884724681085746214400462806508008556273567613488987157292447259757331941453243408535574790273820141885549200783298941842512170838633724922421737604290570819974850951283084941643647248628140363309237440468852232391569566873791163696624945492359398177950555386097432318446776708737262261378072873054879919256645213520697961499631245156249898568318067456696126014889397383165450422714362124393081973699463091178959642964824858098004774666342310006898612101269299307862340740390433027867501839915299984164174198204548741613927111446561322895161997918668823219602550865988654800885697841068736452093467071883777506867480377251792298275582294453802276273141404039954771198550615257330906409643481298184813660630413462523837208451534607364764380857684989353522350139422980014548598113742060799249751665630691262266867830864947678630225762538658550990193180677554568408462859921406636553405486077788948660008955039409889622517301112248259883611148208603858993971468910323303230608358763747908328438506631366416925906561677893067556672565662613270926201901838163621987143317618793191741676031228858125285310281591422714056912488962657109234479232812805050410477089140627593101826315086241312312582912397097829567172565389224432350036112153720972366948363895752251965715957008206580897789434599288681681163703554769166560532666464218331773536682331476186116667046932101281756269420489332295274272120151868744459836141405055146081355034393653018448390878550353348532937596426278206441095230461966689133342215077084449426363505954399726415705072835914320261356731342443454787864589350365341786223843934276438645073575485049309281421523718879900369621413366063766031669436220654031919826913564543955651103834949647858703284288851600042145566992093392591363485142532747783999441359310848188183125672397299968008516749490932978307747272342375592837324285096528868461306474326526077455228599790477975343108428660704637567519641291023354077994482740632330255264696942993815783606160140146101502638561771073380542184113230870835998878479151810043668893081513381082549213391219216791338036229323842609783144846692391890344711136329296852953945494861213220681778410893209941288721083906837929810026213979419326439541760648099131821316773402586616949102172851780564706012733121400696959892262234373227802892641534432018217497357350045211599755840270823234183428700606073702797612228553156829281726650688725267325755299632133756181318382169269365504738976289349535893808800385512622487775391215998601962132412278815525506880889544906554022417770883027760403070455187142248508193607851320138528348366753400627256395965196588872787737236433237095778494138263930451411486708143955146236156837036223375132085626864557908507577602618825097160066520016458303582287047571217776350141732787167582709605009035650710393661946250400002648934041567198304423465891422304553877795593267474700081105474180314325474885608781322040992483852658622276147906815113456871093086685981866011617896636813681307787371023565641953225183217320914777004879175562633379694343460284789687417056520628884564847333379377341111303540698326721531102649736950364631745729580743921903180997750200350795769783182359199646356807554476505623504474095645931542139022415103437500147018913930493958456256765150907382845687467058454633560391709557962900434017647374002781752838275824760640167804035552621792867267791430787452523496748397050685197585581399103020227726929099578009163430386742193193281322235858307721892913428641172255690867012320742801372913113454385673947985478564416155610141570990365652506320652617880326335557301307460647125297496460029163633037640384747499153082547387418428615828774059422648860553045110323239863889806189580451822709867309802354928816144621744123890755867275902104578232771347778242481742533774371763597149518084653061498990742949416096895771763085918622086519319961294625267875869719308048146013779902348826247075259408332611281148200867302284239906941399894663288129687332501170294843697712119688681696947925300332039464020867552032971796431412967577070239680631012457033542278921105832649358688476641672423330300122598466226510593369602095475928351312391078875859730210822414575776903613499113381728559222954204041247688037280503902767810510215455748355557097538380323965622091615907041766269789795008448338063248971135187602844500427649133191947539090765590334226353835599661349781948140487854775491814286008541809980209112349720528754086240771190025264857229260576656332821240521420390348717306073655689422238274123314877404565245199363125601145853898847811763771483880744286592796280761388376626856915449069861769341105436715549038045134623881004062565828109246363556959341980823062125923879154900603024932722612253202020235745499104484888863079273787544012189867606826973765299934314394912205128072387726355242692020805431710578638837201291772312885322974741548231659676219264370449649745560961705564257682004976849011805409200520034973408770322462362962414769586474445417756578052841299104199213033692866936018503747138286075139060992096793601053392908025831572389335359257258740577485238450591618545963799280932186160501271060231165358063329656319049084319194766632760508166894413233931629031315172529034577016933956508371134258578154146299068127950461254983595150105429290145280303287832241698173248738059478366281930548830948570776833016876206803624002685300004467239496463279100246064561797118132062778751829464922174340458812629335045190780900539338481342687368031427444526375761212417149461188430925135177977506834159741501779397468761228543531337425991982177251228539717613138251272906578490893055632606318116542207223124717973314914667495516262261134620866921714043722882438769716364428388804275311797880992037147889996612498169553189881809989176855149979121559942763727097505221633557786045118069964743021572807093492373629560806950074730510043606638741431558213014947024613117474108461759745899304834032333603594834980108493128354476590070514477423103694516030555145869561897764271144526098542905752362822908509661047645429715600856265139476118732115265440627647896515840431350150643023740796240699900601055123365045070626093971601030891207003780085105332280823642370325533666432163949177121026357912411482852652435028215205851414377645332649055157483105553804902919148681772647487955114559190077325963746153216513287823763314950458584872977534538644186062724175792536945250849106706580823719626115298386033657986693698069323890294548592213625717821009848130331441679034212218212320328913500376969232415658961871990893946575327813217226266808507657792662258810292923292744611763411898174435570845862243309872172913505523039635569352613672923470209594342805048581472690864914277817221721594653836033731183537205696017512635139200632625623566265604037881493382455585190408519921310015755524233566880819641161384139282862556246119264690431780799793800477020174729927094576273441170416106291413717557294800107894542690162969470462807834627834037841061886475481460035713965967361133780395021865675733542038071062741456395514392120030431876716802018479361655861961823988201191915129857499542558672332482771726183975763321846202417130028448803121864793904924615099930835911725144876724464846571106292697123042680087100641645602527240214954914933032147676537643378802264545423354165525391831150583919415113621187942837790063310197611649336009079797741688003526767033931259360303935802562791452020986903848242974608790802399884996290194062013087582977593068564057776079863968610226497007563303803896443230606087965564916420666327908933992838042334724376746931891782751899516712672078946145097047882901823829151406899170218173479857356072438611246327785603098983130245671246856006624939688434949167961345690178456851528457827844253497959475670069667587162472615029238877631105100454500800018037112412458786757167360896256261904477667008743300589755351789133367371565637626494996917345425321387972507218463136883955726944861432817382098813191578791513818756268950098783363216413766805752207302456106374128298326441779713153697705936437570111478712109724423248561215713653216120881903789050053384815966541815997421827720737331310331626117811234992666651841215429990257304705840624929668687460479715028404365061562250239275204161956105003876011607139619510171099983074725780111469496542985399523246117145093247127516600520697611270228657256322491832782465911641280943841844444508322433166554383780218662598724712887491139232367991198570275476755554474901236400060151002792572640795332119467902568789135708314338354094576333265866332056915088635212842587484618204051624733756966096795007067270591254905647534302448874032809390654896777039591630625053127022420361237905074862306425362574568853486937211135005207255223854166715903132806725633874764129346242674445056230595250995168823468376784202290381560703413436181778499632954393736140452829541788356384529826786194326326049856847077027941472396401745424162747148389259600583601179637034024016038988557388253759716500933582687857938523544780585826911766233125255010965007592154309100259445321302508912584895743892689155252079000084314186577897098048388130175641395103917322063326146292183721929350081897181049995887828689569138991317630760082581421783870720173205739980001220746420100716732871446193546991478855072373032489992772176539268487297629222620051267042861540149996100571549794549437526957213479514109374619435199621160315055639398812541698005034846336704597662437819886073677539764604638687279865530446475311472729942067856957046135079397439322363323354425978502206497703715113045189792266313133845692991475525386951507667698273500993269629819112423968741928389650843044337395347235265805002206633580134150729365585397730095017252652374373028878818171765003796619800912912648164310027859592534711378669543614501973057553304604631351610078687035383971690842106822416390538735746905305569012263662065164982551612729760948845778842069308024286668942085280656607761738258740067598255154968070445302312616501526105575190515292628434115345735088990081928089617746858101624648939066172674224750652625166263072607790735603589837667842085722182414020577590715092522166548878559998142350683427006081498847115717783555497098571365145187056207766753621348292158452682635157107243567834416583260020077940613534475937751256351720240560376901290345185300875235872021522637887003922880643356735763772781319318509586753157718327236680728836832424532105157591688351519662252413904606124982305124597288581152162112306982066752172326926686420302729823633838454437487165580599641876696677639092903536415852564055420737284358044754321811808774579004230994899903737114003616131875025619520930082032947006715096786436757672836570235439817746761557452295908301154938411661846563992668683264837116410471442184629192765524840024988702439966513635512911091315526544234129519277323527044435455263125326891872887517015526590038270284417486263315685945870048685770099864389394739273245896105565905078486505333745942557757575885418357078564734353836670865801890987832869348087694829147078729293769822906171489953273113598659571829370790773834178264079089414737330318491390934363813547511963896670839837263443350963352318508017200210751667550163633439081582637928493188513620781548103696587572613243010627965032318190659028293921637192038135674490431355386867607403288295006088805994476222217154303527970974612420243072881977386254448548645023400581387157355139265859066601720405196878142180365996807729536869865102436728852761942153874005088844256577839528037417219250450928490397090223702812969803012847522708214347741710117411049650742587020470305200599782445240137422528892045492813016790699060505307804055860976403710729766601090409221651225796983601978991695749890507090310428289629413539204105792832693417214257924470314684423045072044556115783825300275511101929751961072586518186098625569526146446822840122319162939314860790970655430566187074016058916087120451487055235718456894392719193236085166249435048666731993237749462081064014317735185504676495543466639582776740497868902429455014998456063756705907292122480807951791667282730649306554415596443447285043387100914715600149296156741161871680171573118020414798367690133287870779379164852912348030585533182510174143314183809874256481936644087494450514395853497658081756177240757977823175578207843017732067361745170700992164744502042699437403758488331971454293718642461287918451737929204950772058296575340315339136727295592852733369380465356623025626200608577776834114229859929511850383896045769298070518895878977142054813699675134401487677815577598027663764283096061480428324460205341303114303662763431886842151540435735922656024596840152480650247827354836208729001118158713718419680384022253853606509460096100825687726035881363513338279384496261635462679957641947798015146539146081539479767346656477152092328696456555722180349501015363025720563143875666991445775511727523324997476421081020955965506785423708171011474785975930014646128990220904628934975486332701541094736916145294432867805446415157969514125807678965019056318201351641623131931668032479454297038684328350988371329327335111213164060268077914708401648678884181924362145178488665762860345415590532380038680311442000716280665189432552356511846663875064902685638252028992172058043451628636510787126462372846670267646630788524934728463776936267777410647433911626797743833229712098970889378847008341439066612537436522146770694672749710625957210684521085944902251374143634316703246584745590074200892953426888762432941959045870361949937348683623536270977341432890575592283579536205929567147482232447880371067288982105787922149299142315640232321358408495096028137741996678689112523799590067162359606479902106501407082548810175941644310594278743872181453877873967852870204676337740850632064493833843269010639902821652736043442422331917134908846050098458741956947455236719807226195623071073451135040380250233015151735726095123977728666242412003372802393484808246026508191068458970161528667837913077251045949049322750891404631242789158793710130032811868819081129457675686376269315827736605128454715537487877977942539668384772476382161535260689948015066548067786485332690730582502686440951003472608976357498925261709309514031725731784283480418198963352024474993386162662140195457127165438955846924056264758479910475058674698569423484073891415417074439594325023369520998330545769030672238346950716645617148899987972199060183499284914809587102559295490937519184729357725133008817612072079326384679604385827511361724510625693683654540122173293395028846902808350890687050338660343136916845150344766970170854518795091355590194961310710270460447997333875071908778275394081266089051627280680598218316073219165735148873416547910347854620515991452113903009055307665468021110109719014456842642988452215799924807256101549154355773363672510640774618140594812962562987024646024315108898451064810956261727398740108729134992815151016950186414932865436229418293788385210344542627996577457375390131870958015310262094248702388879728669865921343171990822010403098266913380438297005019540851609393958183767352627264340338505055199948499524120039187469700588308467917000130116499230010143739253777835679665201700797800920497145571670592644007902029967196473667990967860140704235217212708975489824204672540927191504297686673455047809455349578744435089317696648633067954251893963492008911003294245390978785607043245577795526971605921691374103697051679725723667339778653413402876134182430762738257273378967880809097857768162398713316036049556653271202982902272608972099652525080853926516266350478772425117792845723935046112149529202124272093966217847421448708617021762468699308998453654987966372121746358495198713720337502225221373439785717082904954350932167428094425698468704781592355803798788833039291276480476281363801114455240091570962094215010264621462696444285866701239912923254588271869888020156345160637317927826953525526947133368439404148164942013293586303304158373123904659489455591706434854503959527833569921952360241264965965054515034796683013006912427219143284830261061897279921552477219593684554348079219752411504239472634142712512491436790718514136226488093413375652836930236797945933834309777742298692349309357523426489818045548466961638110928160981109991556385805609165582699233331396108695063925034775663374509300779603654933520965651694612573457009515378246233618517587433789489239219488781802679736389232650207846810638642998098959667762546856310380554099812137696287359001614158799889400749043885179405169480885950031722283026445218599452325698710619191268308227186854625294287023306391140150267724555585113505528933541764329300543045599454742550270321234585461254181843620067804679588591827247942254041478315977799199248621120471619083912321802154538699009519010599717979304089292080409883712006768110466316753133471946869007728915515744405625202076053416822204423326097732327784046026920557271533784700066648660621538294621068333889188818034181115664721322632843803691027646540536093375791284153495432772445401088383394866343300640770117547610899124084464374090902886275846728467802887718258080365838396258758794138641137080999924226176568945403438680702290889027019560861302530609447705280538343143783141878412378897295010608834400486908233973057566853427221118752812811272652043679184790376450709995281097686037725550379822004029756180590418618398218872911087429533737410872088566178325209871374641643420144582149809470711334234426525582125630014230654752205347785316400962410234531948266763536003476607696786955423219939544440452771316787703749804988076142420638587741584784452903190861212422780675974009611225239377621711551757447263617151522826320457239839493624758081026208725103104432209320859060209251415457266634858537503496759186564602114274847265881071685340858183034011352456105345249044231476228574997893478336680117443539779308013176750320394374404908430901682841545378954534975177437202943274531198296787048235723810724603035764452595435342390076138960081278540560909714780575806060915484554270638603507647224612452977739324700636049182993769457141462542814529991585922690137218690808395677475621291699977032519016402466357555317967776845760052000751690931315796743172789739620814167973988785473675708717606626288427085207496581358092115196918288941682715057666239372728886128497766233094772071778632606606311258371482796105013400509705107113694582134512032441723887382057072779876108019241826574027517108592637048586238948745153030344209196156434542928666092941185291452919846064105109176868817880650442433179306427210004082459233579479405699038941395799907630323586706444386975039489887890227680166583181540137194126542470382289114530929460940546166237632731700004807449803173391486526785690646362478711640747370577181744143451884796093967308752160463441758240373929287464906247168793434908548713388942184232979706256761726847057999299522121435276252339976281236343863287937248223001176204300865554562548348182823097157939672817603935148835758904957437032465671931761847087048556057176190695869814052436760253921509195139023596985343933523096926587418684417178935505092334312540121527428809261616907721642917340319900426110859229137790907748630098776464819236794136177472260183179639408276443238051091863360006440734470746096828633218768598568530769322166775186399985351906862814661847198725458459165986703796175193300280225956874196588473356175396014257639759398793433436217148810129867805399469224001400451049274206016182680090666100233223985587353091454570976080817941311657366178805501237085250748194819267446698675694587995638163760088800232751678067690453169585883719688141186717890678655948702822531262574773168007323338939970705266521436540496146053177249902214064748157409416158226496515050769172773205195262897658025231331775618122337480665291980880605230866517450499783149562920661281618625642967630871537237918433187889251478135317596038768187903628835052942301834723496683922546515177126427536312562417078364558793481744677241448380262983795937403902768059054277608278233548198578685482663564709300338615579233785697093153195998247234668432850529748764787139990687678492331013003792484212723822305707241023606802471378899176857339288861320319617088375119579670652327661917169076115368327944949068339069458689271370835301563655859369251876043199172076565890729857320136741398077957494405252070873790217565549968902833017263508151832185488739635664206813133055754324985675149419365015211081002221168180100462758070182957407886474874983027648687735773685764758370329424551499625788489683425039431849934455147481554173959370480845826530951321815058381226295694578722717448058114291637208390977555741484273041199912904738153362203141327608035759854531919059818438096839083498829327898056816310907994248405456570439331727403230115310217947926836965488341944341900837130602657522873507510229555258801029246789523514728206910950149313062494099394667501844864694259966646094006952481861282640040633335908701971944383642569257485593165604239661911916237615882910277963522794927838073812764413659403762303985001165289820347384292083818753394618651869044894557502576344069208027971353422537276956789778737497784117220936476634014880766324749031137713943011722997641013246792389796827636537506292163962799496195718583610708292306106928606443111293299128321338865876677751213800489748850569318206960161319418170767181812189448549659623330657403314693140498551968071791327756502672690853671572204939564446184491999961512425685324028331476134771478861389843865448885942527445550294752587382953968483793432042193472462387611530316715114540793196198876713883474710537683241730999878014393983715957164004875487501840895118326323222975684988589632138286329187470682084014497647669009357014224406089995772635758721074556227666317726589991192842303093433689324612314525481723295975841395378143064054750921090938723199084404733770855476748582133523422180983267420811263413112396261516104330621532780468059897034781790872023344481900305665506555667565761890173991842836666840828729541391729193889287479772631075459842652205879321600644690294524879455257561911225423235118444977504368743304636865692941435847645580741934630534579291015269660710723732698494827369078477782200127473149969898176197660704325641034200958446752394527995726897795809191307953363938049865461066712970168527561947456890946534341069921293551469287790944734914743981772674966535302934082886306791998569329020428467910177073329893910736916051992409130059216908131692938830856784291424693636609064437806996554632406139220794674565465895080821596657739592859788526729074374796976216871658471847157742050716189415664334453839614797635240629537645254648633251794452188518773517712689224139056342461894916166799332197537251877102906877411971560474841437874501521345669785886420004747337387207677597527561808691970979374190176008363583487173587026007077039466641933501578607018698844430188676766513251089133413580496473998962793729533768349748930425854695507363378031059973781845163669725301480565461434871282417405636604598932317418605571530521461424688780355990065549534514369811203397850045932600574427841477781147010866265783466531159968951412443915919440134302285278508933810089466310595482089028882417738479639788280312479302684746564975603010431752012122749340740811088951883479802493235589424460693365835424400341382889364873733721585561604152699380526864594085978309175241593587987742606583096794383501864565699071859770959396293801243680860136908390892031950171369806700623514094860271094557347434773253623151756770785618377620522792812458621840779693459907167096125676238860673349770137821671236688752039835856927365605745013264767861235979265447848465380117401356725959022691508284677831215573790339507401447369481251204092805573943847396966668545856890196494648949837573996039984442913412822595129695287161055453622737147669662201973913222433577038797248876216529588529730114452426892612034420897093171132373553260720710902274319156261683987406188754564769656498419538603278331085206324795391206275577885482297213104194957115280145767815890012670438022526916626833546696035588619125214272979212836384197823497840066677301828262681363308693146390213490162920040617663093228003869523447227722216772123761408201616075235518079071673929023579443706433851811809099966529603361100222728498736855610953988617883356383734735444167180303922615366533350115022429319949278423436411324201824194400330566971111259262030858175258419701306131264516178355824610779254095816007674751810539935557417179439419492404469723905913893474555400413521564522086455627910535746457822173911007194742071076753583134320396816622995995934899971320848247484749879716360017259649696383842374689630901184599210665212339771325752179834924740290663584592754979432545013435561366111283273237741059965280733465021771059675793336471499417341565997350561138345931016861038270245353524009214102126221594923883825272800980986269637537180456693336931203603382905491891626647501411174831561254917833665789505333476369665036529857218835921485038281694115793319316369967865152179693791021630815919923316601091856139495999637909759845669086128236463901681622809528805184392584837299255384544578292670121520498113923782427979784534905584605423527269142157538241092942940944103279454907193916839727941130876380174094085204464200524662480091565313516855444063452934213807722231820202014353108358039498539429989279816250447640046392349334416919226209369302359795819762178195460167587953278669054594460162032202872957706451062385072210829414888441310787337203300674432780194587445609452269205230219890433555228051150140208905033177267089946400427020537118321125780846174428990253613987220126990196705176028217023994834456475651248807600418631318429722176295179498430322451803917990025843886601597204315292127283938597046920161905424110579678644872532959925088533947070672332848549877237337134778153644904632209579092661501625172407242250023461354577239856770450490573212382721104436184181280289145671411994636294627916895450852667478900726331396047706413428916585417300880340362350566188101287700335613201606411933381964540972222286175753965406927667755736442827082662495305536864926799900313624120609583053101673165974773332452291851627244815404135755022338079528704207517502180383804903444191914752382083203835738622701689340211181676918704624229512405850152620937097879721051885101261464201888643605008685795149784460929658377435352829404632344707882131145935698754282255207947154677414742313272671784976578379443736475997524050277451978128468886277164769240290864216646995371638790804533069587285612148789472140717132578425643880380999039566338914410602351735305115028316166848656911978353616895383991846884310278518542399431616213269746556502189801032207715706470873300277478906304732865225109957368652506170938263586779149395522637366370724980369103857993052925400689617237346173165341234248068302352707312272617457270827093609906939382544405407090434918887943941287620347248201684352820595319073955694137536102797516359003771080838062466724034264343156669279496343776982610596047899465350760459331506057829915049548348294225591657708414247426788515041100733966461454937662229273488380268804192759823121689291234751007862464923400953549052176611562657588325413715641742906812119369494781555061033513634214055960870260787633063125603891352072385492080906004721966370425624525279277584886502688754586820518827851781934562017266980888437048382811155175148914802830453229172037716831493747709391690865452326162287223051762232219148126030978026700598037153015392541410917155063213068705178215356872404214702704869162112131485359976177030203250771350521648387124372949639602056015408361007043968166069168976251721723673270074177218621398811750368420398274625661651033846789187192601927226228774245630194616517164109536839528527574363149126678871143659742232593193014620245492859255072003176165476298025450468334417749390425142284761624722127459914298663140431882683850110797408868906374028349583600191417165691071703976670404954272487887215039424953812106641867610209389292572847912399675888901778407580885563021352839062503984147452838695174854107600974629035994789160276518258695060645936039487115962422693303215855887211068367783338140794706955314930117912082111543102506407572965575656114710040014630650215777231553981414383631570616506908282567898625841736428835669455871008007678638930406436038527783019321012657347573441854598273835996316951402241602855232955665766982654915061382261044918880055263787465066507021337272684365930654977097784912159400671254392875150121457968509307985944006639633211999285864308098961313129521639239124063527509053213144507135856256439459011025811131304750985300040432683430501203949390562201785817790794698362622081042442894214421822041971127885820195936583282827222044329672852116069904197361993157364625404299387518864216855553822541651116548182554365243219161598847570036873933212142022801905204132621916423634550853457568625444611881960866724194673584370557303376519295163360041963593371935868409799675437634155912565591997240611569247740483063096846143871827092367509596805413919988836751621681750315961571959858793015211930664301954730622094233076098242722379650233529188287872844789734719815223398208229697051024122999577416135445283680288891038113724626383028559476377803039946318298436507178164914730829074656495426836403475176858154513185487421437973700574128120633071430812504242885195531228444308972029228156155051140984583394215830799615544126536245158782685147653639351893416345914233458657722180960320847834245412884501740335219954272852779743533114613433555929795935991500619043102206414182162004727517733971472306186721434790891623563736858186053510316303587190775388554235609664051163446521938248539889272462362866288206612878988867553927847466369917788264706718703987880660291169560661436476204935151044443164947427885435690240422950917998622975799190886417438936911856973194886843821718856045474843369106782970147705021831454503972836022165848064991324325213591379705120002919695011393280310204951021984588079087933353360941115371205303285327849017903203571090541980652614676627426335111563468969431776035027488865158552913953248206232961342709751772133848494315198726892867359549076358648648205052745614054726650706045918949041666834938391718402663404699564767729892616253540300836134036219906486826951291858870213815535329780418186544443562499984446491130626550217751340197887851296546925139378695502570925211257533737291068969982575966308100738925985260617107947943163498309919377552242537633619836938885008606347168653197995982812401097524769577911301534087879515725220329789816122993891397629590547744229375166979358567134592681418474590622717058404702587690832170760670299182986592232340655993803686683756698225631383109431625771689318801936176349923030073518620122123826904211902127481076522042534109567594163158822429287370103407828946026402652375485542368600195800055541057955409380225982811032670332701426287746101184855702989676541944189201300090068718209591987789282757026995071792541797134238603263198383556177904023621144886109712574181187793828237133940975479915323456187015589812614529373663477852201896535320350544017298718436696127670606097892641995119228005881441134200289536520609642829999409315980284708469476025444553756096819362086240931508067792803007417156061927400223471457756978808179489263056096582751818569915180491030153178334865459081406315975316663682846832405546399115622205825215170339773516282186078648109443576988710037457278792000478283901166358048752557274835514249229910341725764146789794168365072432207161166186219941530521231583580409100903570142116455115895074944127691148370978302775911470445198064998451931533164933649952207767062563905591530321328791626366317308908749912805795259896780125441550457641966831201398698934044902058514464962332687030107765280187974540750153783009497439566714763159897998179736465795690803531546894689538578334378464368644870820855629007061028543382067687291679076949390144924906935036476454483488738555645097146411113017441781107807995045266214268587581998217763700064527832083525516779297839148568864019290269030068698074036494383954112917712791769228288081807870466856703216908664526272905731479387560965690808490459256254340115716157887277070405973598981394673863384515744657176325565522974189882168241311901385943394363909473637834423097257373138673932001043260088868255914368049764365777832828181571451144862163718499552059551592134072420923398605076575220856785839060091992464982863379526820777431305625968558751631708999915542127025282344076496500006777270789449662402787991000583641724902898600265174471364248058819066447853323601906526644274143584922732736103959855819762517576633718739471487376066029805226121628944632647790382494535382633785650576081652969039125118042456636938938497833005984181870929321228732052211011794020758048214450237810356754588897718856444243009354179782182042660816054117224197191243968693955051505820667383060355311842827314377287009421712639765963975820090635191350395763350238004372980616730252877135878688322791981132562902076463265217472201908194820072489135795581232382506105130347759904172991191062319813077658667723277320978255667735657421643761493340650781313950945797365288248310384909607886331556945922154139146578158419826003341207437431511488794053989571781812852141688369370689436589244288001438842509874720856600656858611553948788070500322125764698748265486354671216121451605829573758783628016893288201217282865293270245278406639756568760059120266661286971151045042588335356316851589712310516463697831540939080249617161232512076125947640234519462658781435610222871546669146404621800464077721979899738637805465655568279933366630271627813337907653555429773469966014805168298109278087110245028568862030330108161669734775714306485744324201110306228763732492906135112093006546072106821287354880513003570502925496901215493700169537781514417786233135883986180931904609264461182613728152966722533354608826345808172596082288920508830768742280544040751374555194787504878005199890023194188770063615114454085392898969536028902186969614188325319709308459261069782108405272453752196079059359234394742473083244506330029995913802019235252110106930124282297911672177567554043381480564990852674864107724527062987313384925811142025427414449687976593412976934296728165157157457490170402009002375409710050598367023176210883520887480386774536682033713905318816302534185306965876393881034453801889881727216004513628598908637816026235923328316064872672929373741276291911643620784486888072893893358502562802776086217714490682320851216769382877619393706823304430903768991234605115038328191848746540594836849076879331441834115225896943203114983044996636958224377078377824968115560495131624406426206103368856945968165126037407319366795259284346816519749952909903798215623972310768889078084443356130194479715152008301041284711137278548741242275975296291285092901303630080920835765951454341822543907856678356644314037099421989995412555756199839758950410836908104808521740843655611266627256648887091819261257978928471942649761436292240341296758075940624682785917680219625479307955325520523204551654841238567909708019553939279081192212640018397852622488359931164622179927225090669196079924846538861683618095336362671931375685890100836430266252050091138562179157326245843395018234290111204300382867760987069546357265439020296482220982714237160781095607427252591824135443344939699390589191611465921085654410554334384395644202822201168606995141356472321324403007412006297730010815135662491857034676552654989481659625617625214901779504675709163154968685632498068790726932220087403416483916635600284923312816389082883531926772992956378833457643237975865906586208395080448095997400432865131160160279931677008548907871578463289373533599605907212404896809074656437745493823980289801501352089683233373008435064517913537550869941716850853407292036024830958938940307192810995642864649217527725907207460499998587480148492051031400806182536765457747379976194314135440217722076282759960004268628563446251802186214127813464179685273510482266667531560802790817343460269811854513952737245112617680949615025909332029280427779034605981575886675619807481660013216472178545314683206823286819503874671890842189240656026638448155460258983211691154428410139996716871414322470510127719728120330195550829661067450490917750904523672411084274979032593087090971528139890354669299335694770279181763433587105602112809722824731764820844846331038505768063882775212604169768179993240175005951519129376538656065184767788493241302071885076582839098444152059964631746993439980960775285514157048178565443816349969201743665574561353096407994066220483756218083893432091417376247409594323099656898210155517468759156205976157088317100676308876090062060231415246421542227630262414429973428176244212400528211806164149159728741277908671730021796680638150632030358974906855773876606810329855256064871450723338418566064848975877308926122296883036916485169093895887197827689443842717911536595255774045718717829391621016575671860222834911143047414719910214287263559172540689259305222398377331428531553498132806855138374084800284213278410691507964796896774246412604488848389008423998053220556335765106167454616988339382217662436977506684346464827120561259028495125160648713453220762554201237485669505387905068413579547597925470979394436301391271464681453821370030287873944409316797430031610483340204731866911888193528899557728557132457871208603094368231663670134500297318368149364778454751509214497544871418126526430946193732735597205307418345459512011528430682232449587939473344653649846127990726579845080449756630037852229454620820949736068561927965266530526847276398943712654810026515763706026630748515878067718802936750834970091061091921149166356776582507545866669009092524239410125417912955595093563162598998824428033227810679129119844429183494411614992931863539790213231915145270742325697791804267042920461039160331078482799847477650071726846820029842858060279262180004520806784234564455276702583102163974512237433299427688943798998871069197968621663032451648076074929740551578489523982959226198287487372080279367770821348095872008985667117509054749802820998630906838588368412367929280556611241672083812782928536009474568619265706484913935869188800883277779410954174408521329328963543610528664636909954171692934224751559047870384418096836104623870677869569537663721081031011984513662949472928331872544261556646522451074983575035200529467005148138093434403176974421595800616670149573259869574090710232885716004794541039031053495233111093238227766067408665292002522813192281073969222018813690757988258319655777121437789406983807000114373779310308204576037786730228990709937644317588378971640273327055076266452839190028746826483805741860287536997584264940643978754638570654973715304309607574321826926516909285452862365687127910557311962519540840348532204965033943688211029903857880132498397385426571727237234465583465344077510402402342622833019472884596622160059344931363360641559338532806496626318540955829872872296152279410449550438153064438670807123696635028696158576620144101189730031756175517506372964338125500405508629233432994072203508218219151878997267631041706469764432859120165092280416031288618385747407194891531377303866399819041559318797029830473232139694690868552614080059425131808588748878316703228014278508734663398377042021128373938932082281595474776931080474117495863738031672248771223664456951689577021266785043130118559463084497363873212746420758968441569645764716441022486596980612947261127758249698317789378105798803474054675097311584755186546781618181869435432447648683997071841002488344648814757411292428204225842449656821218139875570016545456557407117722556778684955417859033588012054747763658940330692772867980967364690564181033678520883588929339620296768793860349127978312112115231957040950324500820905151864636421585559752863050575519466889516167052732758628437972028336751187149157193171170957945854502548672223925602725404883336748490234679233602710917512918182802001740202010953993790116709520965269704605899087703576032459973422863717671712338789379057994301527635635962644540062249001932787308040428327907970355760331546394556362899253028097394706882858088474083184687826024839620229544747300881376860518579311065345982063376135007778172806902846939564029472699133223143748086848760054408232430471824400896952284237632272660681353263824985305810268373641956197567629020205311473343620045858827330023384765673453734674132159133846278752949793083065751349976020906085395408748263127814494505513485553729305882035836133843703044247408299866580236456218356148337813462972694024557922809893608299209337807552470643131556824868614418731821986102352312486374973217088681251268191965686066798346241403660148934347404252798678865046658117912022598851237165351837812625530810984974391875408569281294279174506133892432272321520649384774000459239976325647714247832735609549596820216884490856576677898658604030534119793096931670164128758215317736672727449608503761949247921412243971292664867074892534836387164542587534842941064924699711875290829531069907519675500038463509832853504509179059344097270506494235686432601562164232866630518110969532708320633991340814251650210380759849956226530653093688075459416050597020910165132008316784041665752898609334096615667325560071027241029316269634940125601189030840965254521584165673819283843443997620505274394178496095546002237711262659998270183374191108028395998697396533031988851990452862530067424066434308136452637511537915344823193570007777966349000120045750566540123123581820484445134317087654272467916363034144380488458481302193477526145123271517654822697095506775277749711963910951644192908330505658253353774567639902998341771665103761745442178111149013740262866826235233030381237063008360523275144078750544844232640164490891207686254320715981266728467834423773392491511185871928452133263473155121956725278177640653353553655431077737605038990133160217176115087345789163847903750738882873568562605614098502708905766938763546489688194679316995837575626048071462128199835222875671681033920083243581762122166023287973688306402517890273062445966965731975000912210686846133607637566033903126885647640353414689009924550558173076508299037270715058953964492307381598986017091288175777992286999235596960370481466715399221741182280629538202018745344473818628153022831749465271778205405519555678064910972157058169457764993710590392794746074584463506020811897127961528188040773062913555676066142283203702135417996396550396211195885295622680328081626603637610114786154161648246528190037915479865736160431954112893066438205988248798445384660477323373778814538482332313286791130716250560814282750406208395169238707355529396444569379639022271736598934708490297756743956752202141436462182820578797015348247795728006205446534824040170827794687827948852997322807962098410510652001084717166162906917303014186749771645856573063544997894105673760930134320435028418655138807123664167880461104460039486509358160317875191119267125954851418448503572900409191395645510695696730574719016877544434093952516462669268161386084099713242133746799455619948787078722538555463995691790898007748406453848020964470542006676207803149118442355847360992150056464484948267190867747351187651371007982373788815502419001212021136729444149272829345097064501622930448954966559332390235192177386262570801557580634163737590570324394023743282304463386925489207926800324069703890012685916741352969026896604474922703705478570061893467257465634287532005930605941945126292978662503587250138005936719466855436285563369407406078578644386179083381680319006734698095159772534207914974609678708091911873105873729155784787259386295050094014908793136891800122238984192212517664681970485034937609626327012018119194382223323729543349594825025635799631038321514504162118381037799692982037296611671596313444508639711292928769674090729975275036698606586373513099801115179811400412012906788992648876342371174715939638696467345043621910409858068216409096576012051744389937677019199062873977026410939258920246228082938721541391506510989336932653277540544309316165227847428280213590684145306513899581785328780858311326302556103113482016107666223403629594202820942104154577016952309427886649747695016243026780393441175564054389241220263657530632339320889710082411870827140806859212134743970044452510967493292926004949441352753731873006760817664187081590837554343616137218694275644521974491854956564281668956755352384765435663611352760835589883621676110671509145436345905554192131620806876825985079909102432235569145128902983883231798444601196242450470754720298869531400174664943397716307904865515077586348211858460973277067459851383170548925214710730979110399921073852560380258205656668973718647866757665318607352908301076715854105608202770595226816231293872255051000750914041106152558123412152691795326345535356399773930607486034549643135517914198808294624234074044282197687177217815921209145743785199277770812797648605094734710034136062455334682608300406675506398035437247492810055652910633015792846284500549165766842483251160446685085590206479879924994665446215407659870026034605277851425058264982292169359861107284954163601776126790583903107378907862939414282749209896273582029636136535150239124667256344689761511815032221548169888001703617923221322414063153233520835961082307128444224732780619457181002109572431447059505882591688497124830748399873235721444645564400040193157123991385664994726680901382237312519645310497485145260523426975087199760816993031466881280065976414624366551225050968198059276889715605117284844564509860625751305962362189929685524401197652765485054029378809329612398328182275372634065948235810839681386099433618614155259481704473128748925661888824443978797943539335412413754251248819895675801088337259759813776710901807812263134957656069801538062386518104709278885430808649337831872326323784657486336614833893903604276849712913168598969773288373446317994911394263780288253116716697436072398281011204961734714884243201850011842973653782645374700569702512882573763515280303140559798066146690656406827215274493084092802917481012682475310621929323697867322457051171932338551339765605393327616717606484784434156556471066391111125293517613684556588339293183340455497464531856524124212857410007655689880349751211366872980558157076101981898395426087719120071281132739409335318075675582374278087050716425252512480044848309720639981472341799759710443754595276206961492846274723234542553542176180662784461063655956447531696071070242896161156151949734112143561186651704838426973277003633517622950177555528877129026205771286926106741004192499707620234872843444775465272652027880219007110132333425794441190418523252684549140652181792495577496316407292839173356245719230430763261256383382769220220939895777570555674475450874889779612928685716897999335627609653853310618440241211929593953706195663952802763552398352183354528046819142613127948907998407152185156494487297369124928419041388083036200619495031254711539177028870455019456628094696375923417881467510719086564083539904540201394777378678695583569333636337902415821081567617441048186474159416929054838759506307858619159437791550780061619379260268851997171616392930330565653834809269376501203732397139368999601774856150628470264585953324829293368815764831357209900562569887655087259332571666502551866093565749766555932207433446664361393394833226904044713719644494537978435026328163096761122399603862816753260178964394846101550250111875336223054425000993556076225383140286817336618140620956955426542115883115556866299176149494912458633676223144333224721082623409586411169793324732879259455733463788242650295261061367347027956898794990490405427191371075023994732693544191084283800173901628110017554763032934471365197465351033047451093095942694139689524382703741298939147006261760417161055755983881222441274830656709234723526919266448589945679633465617619285693763109207212782755382860556478034902690629908570274225500672673199200221243019095467946212784537741872009176139003780212143053188958692033510142893095186822947511938687610174804944542035463461161702496865415675898104647989019586641559532624844667655842113111934768069682985152528903062623988406908759519823514012480835131813938931500569014625691931318775396818340384847268618240718600007577508315563631804405771232015905101045332486613404884879131425974639256393735832838070619662347392158572015244795274637749055134034763982778993976102489926940457486553270598338974164514798985103606081249959958414600165727780041075763514318755821522778401402959215885354099490129508816780645516376034976362458793743932774241662808471908144147602568553145694865278034474730488671569814301745273661211348208026766118098661001862790646071852166404406975734028748662075755737525840032782831564726028772891974318645437952796106799616312243288965716482118428414829159490005969419038514834968592619126457145675169707467164711396602854710944560906727458709746890603257977228944763860027416571174522855461478276492521725577510215239842817159314274077404668720427039603969511746589480205972860309823285432899117019055698408917318046567572262264743746300081132518052679938013455884126143452806359727716260801740884592637331440574738202977248033223655843907933575564785040377616277157166186409466891342534102830888493832695911883868582191720760672756632677023547943994393248151349409374122425587166039790244582487225197577646652606154961429628492967920290060867681334668245484280258411682746939078044177660522819755632993044241393773550594395729401158836286187868564320222291563288750523448551359359074971981192747281672720725062195731856615803295914848836025258877743071794367096298066794959014340978551424429972136002667705311242184884009035003898666891285575610888093419161947127599067245660978878116543376719003079473208204146553720932174332393640295915043640606505995579107522378794883579632909510411814512593709611903020970945906912761502305505112943027533766086994150994004901227717269761568548899674243184262080515428985553738364944841775901233229949321050079343341605724296676993488297165944091628768150894494063178082992443510347878865394144731643584351706896120764178633565805257752188080945642086197028901779458441663774301702904530566930551426191335169485879938550086853256985906307674532542548704078376790677975786524052841174329188290727978455114234955880766976757823185139565394751321911584402733314016116268044665028608723366420976755086758107609168056064311987078170879691008462503218251047509570002871189705157859498951641268739608375112611501073070571980038499113263723520519635845596434290868117822518031910977456411478717830676442800757050992820001565462804025384949758029280997718830432739290775124099954737564212037099925243635447562204895255226506750263796638658117464163040272503464486543756783581587413364776981447373765417526460542853842207486814573585402482361425738322742014204763304688226659214011044779881869733624907427339178688293403114128233628957899768925074591106892109433059730898513173063597153051661992024139947092973535481353319687778306761088702310034278919620365537650435526656124706531188592945481714639573515846910304069199559120908569419203243931226132900027126258107264717323457802597115507510796379176472379884101966653528758945687677691178854938478366224631569438924356934957005297381359417667339234238038763418752384047564556536568300539268021618518985607677768585748710162476110138142763476551237624590179729057462282941267658097619279899596345215817138086742297133729753718228682629158128668863281890531927457134407871736974637859081265219518011888400302106387765348283210458376157294526450697582837023494620827591059202466124216140310948374340487665463082639959409252752143791656118953526909315926597732171545113720669443128894172591755340122273169930471669379200515438946945421118582648308910156644854517249635425398469041837172693163551330156155272812920230289931880673469074575052932114501892412631630222546458204576036961655427925378172708395027370863519821469748564023873441759952880800182305520511238664327020729668777809414695412555647093528152477079946493119319853539362408774759136904161752048601957355969533883510034262332022342639213763274592377688434042210636955241659617849833673934018094587615516990508726610016656070730693830555534553275728272852964283724074692061586408650676967692216209561706187386085484440300407093666433671788622950324760013218779248685089410193371856255896555448701051916485779401113474080708683825863858788243829274115757375334355313394755182778369578131111449423083612880260749417710021407295773084109489817526732893683623176256403834902767429647154041132226273513580539867695654836928605143258989634288369678931372126050193475212025639041975144243014884610476831889624069436951797674928246021741267729948531629653216342540568452820015321434495086337637993679193027500133128290268895843090646144851209194729560352611503594282491623130953025568330787292578431450010131612379764086135111471612078799339148775263296524183716452781229912137778647579242120236644687717766484543319035796507044035207830573819724928872066898522785844245433641919124709714359699637279068195995873317760539487812451856327895378748603331701299759018439703421702282996220080209954215300664639700316951153439737578302628548263405289574158628482979862730186938143198576624693060768388724328053534165569803138057642427536660465545787532336180029569150564022485058863296102829870126044113844636852554127746631494124162861299400096715046189530360406041272559976509497277536733568505563037503901802211521318064401252578752003287178796178251756082441765029134070686476262557870777585549078539476697692395226827213403368252802747661195283099696885115993607449813903368215037610739987489833495295145783366602688217706603941928610383007419720833708707860415208839119123096543876371921815804350102468937533873671086018697446181623000718713655890868554350596611094549096916470409800672312612636128638145877800050496537203382549778694799672979208723044300072723101874915953331478665325719905979954304653511802880928508389106820286917579716494062660308846184530331863021189282821729617845288096617679390049831642949390046993710620698858524483686681525807951278943411209546646502794186803851686175698246702719677395901932520834950638608422506115576675228593476191628648215073602802174135683047811636017008187145528153768089050827034818333598199792923449758958873537611502831180384449157646451481442101089716440842082370166119862323436250301731015380052831442254676157871297702461171109472660220030687742895266112620721073961804490123463999834017732756219107104541629591632470104314171496096053437606645235148692990015778541244839898899061371448128963584086792877762272243225716217241027762401917379058982358193190628904631262879711675415594756853572354386951320035396635970272707278842410744442751623754316443104740842683004522084814736508935035597487488075294067394729119759985814350861049975037530359055673749384001264201773434502271979459913902827042837053001749048364556765398140720911816390815901823400093720258042924358187334309797891550011222495285960811214674390534114620803977966963387925712551832705074891702137928671753760595930057735212749621515713962401540315036685795059340173852881859834809478483858355163973615136664099314486692824020932061019974394486734820380140725984602209656906358626633250223418714566440768491236523168505392123152819750203651103369991849919398405453687935677013919523967920556573519269257074332739977693750859021489212140840019324918897973983635422390671710754374424162648280955039142598828726722386874341468781807256210645085383733531073089663006903645132945238823012074122846508152749058817615740897385729489744031873392030415616561498224376439007456184238441218847379691600864524141272649526195490861441796690066616682856522946085206421148896071967138118855248548015727892500227427353199437487720368469256540050492263593293637069438439808402922542795384548976341499805559694634434514683445597220651596378749352677574948396274901787135754620314849925496933754505271807319672917493018820688725669964043522865175374881344211486607750300898538173787284515652152125967998159264141848256361916965058870479632953358189954743946451788968387957398655053098704021346037279669059489021689321071702705987477293101247191455345651251096157578658409666712160406084330193933423888454602323375018159975292743684660405334564069874463598243656098315201359325158775583023812154294279686367550179474063019189092954221103987273968424247666266284100295783150380693669414976364629618761289858445663416104117794161923201403929488903249261171349689179676243907547423132322340505209817534667822823695608455203193270898409961232311503533262723827546051984808085787739927950743164141896906918586682988298406851325782021900385724425399745050331239693786262073647329547838455719728859536106259006790147361147387975049651216116706053525609992768880441251194181793828472793971742462088750488881784266874079201597268444843177107216498023116890530591735246786818624413956846125887410267743025219533974972085365693173500032133722570844875524593462188197963770761971716519320272066693350918425931398381047055394810639745495704102369310090667431186616561534814834517940734294569759177698992876751960761032391604896143316352710302125490482901029293150119393562537891917717713864739405983922718093106738823152092799104812489084286496628416274098485109435549155188514722938278506251644596953548662123890723143592361839759323739801410820234538754767916636841304578056198091107019915540530659501326758606513806455054067405813640830291644854856096722353288585011393579828508556052414937151213934086554156775328470284164541080412429904767002140034970190691278888975375946969676214104428145896239090679766580333727717570137788629142775921253457552699077539516468280213431198883527734827514160408549596897841390717290682977958580523331959432020638088871460182783684568901719431519581595542036205173028989982047388673554972058707333772624284899207341968789481250476627868017530524886454913989708799969596666156114488149129731970887240392737589265319454884696804234457937992819093987885142013380761658960953908504387353940654280235392739451429854984252590954821608628463839955926765489553921759324323996843268460783504831050013831107050546197064848454627991894065717654521442063727917713998910431090711783212263365467471928686363832446413365858589611631496341234397403820697084248134805724312337348350304919588006323935629117764493031009016556902306843793907892052310087904525334997712372237503529476157667270708204925908543352659266803596155061121473996163801141361586004052202977352400741714202325789136157073231198111314456577713822977527566629665568510495485531405515370513915969031295002480396993414579922814984155300633609415393974706625639963200125843883370230196035507796938395404203407090774786283412934998806853500865016065378068117099243609775109182508377381379303815131432525434975033000538948663194861336788935489811303731180694966193329873539207033362155630374516725553035734500932561097275266695903972255142622870001091683540860316650796824089447924877621748548581535832547191015355486230958041716387885428169198994948916791295056148920273520865628999391084759583630544733048240836282830065550064398764481132538851363065337375734652417193663721368007284916792404540614671009159846899602237317424654146085659815916560680879266183736903640428590694380808234102504908692899269504488694263199310936569125215807137579848168456596392464021102123583281399096737986827625433535924992396215245763537825329464243626480661811228845200271458394639628979318176656744604867005766390857321535352010835884878843097312559908841773575501879137941827641123664024509190961362806193948309220962465566683998324724209621688093186269390873049525080683287107619334552334968646561036830712231673103353041846336319793563911594528058996969290733815682469430054148631999737576552027599784663682818032751067129620790832889283491178939080180353835308536633580160885384074817225725280352222385859378531639738421589265077975924536160716233565784360508940582970765236073012742305988688758344994162706488971295581604640643976484005219113176669639402316094513919609992294413661674133896680365801314345825342014528754362712400059920678533323367063005505493987095202729331124361684777329050190311627132297064740551446123662503141439070663072462119835822330460949924193735990915633986272823385614071751282917730461446185010493490761310870494223741606658843496333221235127230061834400012469203911219594890835194816926118511478529936185649122591629223895763206165056947221877804918428843153021293219028033620308795877698161021472197468394545310648818165378828784338999258680725874818716158269021735501529574854718256883511600969595392157155251726470830985028061928580537946701293559806949674777738851498308550584780530730801419132434407692651653544261353655114599391393264811721595183726913223234014170927385677591202595202029471044107102647979690881186595579757890878588264421588373371678403844339845940031561275143874904539825268935063706645374813195099858419712644917212753234480844802873743105591651091569151090995652926675120767628412505264616134398074262594201450403299045824646819648681456369243980029620246453820407687145944131071243160659980573607608168296094880623241240418741827566005119370258041017648607646746795000440480262506990669795905702025962265758495400502280629657086965492553861339920906151680931580751981068817682785298229894247762864650275284145698789734089722286294201711815154118702171664326099528714227489056289998642549370462700271203927578815983720489853175498259265969554037486187759747425065446974474633451283971700258775215897074303622087787533214579051760238463890562406202247283197293833590590663885163385218148974515791026667689618746704327819892197143415985925812150869604978399569177302960120862510236341667675045628119707498926769689006122180389115749410924768483678874760415051938406793045134667255136225376742162245785282954459460042901318329404585101271843938874938088688147023795618450651920560618904606419368046012481520047157767378568075880773327553194551913464052457363625731489466559825268468324237681680002632702003384760490468450004602009079526084400711399442238099573888371808314433105737080677530040069720035519047230603119706955006558974703136178535184174056201431950118350253601027670905457545426337832770733016298829284998416374104765126732086667727072028650888825805049550387886027375722923043863556037965991271416794577619590143374938330378640702627120233147917215543074875689177431574053708060129677856675695250599364026811965013275187824456138754030802238044048082046185290679339510769291352575230800343129212444360251455209279300730937325287508570050246793494100456392766068469124714791660645611848312151824902946298148872416287166315139313896516590120619760193453190541934417901846823328970592484190364967797276915409010881506821405445207500840842111120365241164702080921918464931318014168309974016144111067848749157739363615350223517737670153969083680653715125699279999696403443577076305304670745602279662182800319937971019462648558382751954830797229249824804680549574142433156453947228494227871351275337332358963948265234299487135741724270968866275440369334712927815301365886275748402608525374944538029964294091702060164678337709147285153287566929438633195043388307698577514225058479663095066039249374811192179300647636307496240414797712463529369059845853615668600865906786598034403904697396121166375602227900216847865680762197075119810301566157759467345419983230326954085295494146975035285289488470247307905163304341460981199858203679780298238130365553896969718040402779612002652081590560898991120790057754732439541743159000470516688085651096715508614683292793676287827508286804625504021350083514186318299649592645808840188615355183666344568390380275845413345422334933033862279288486149631350913119032389282027855417992752868171791426931712320144181997937658861546130927011205090445178791861830023751036092437079814691208623736143122154298740265044258125634152961083914784989016720117787366106284375373114868096726858461609915517929362869985779824087860005011648584241454831195614339057263762437452237132932872038832486462909550740223089106523661753552585627188991282815038700128702429372410700524668542155663856400934041895256094730553773344449356292456502114077779774268647088968820004040949356538064027203508443523729929431146472855884026645530078030171838731444386970043263089001750411383865027665778962092132484622325711742985337378523297186711532931713593299877861060560058991832094352576456401386551947675583472139678995088485647011096689129144638974848630060620170408700176848323844900611506187913202302005330246155626577951814818896017699378005881916988230467653093361059365580745313529072836772459438470358845502591657281210825544589507466619054511944475658706496963679066599411316116795566468501294043766846543759420140847752066919264007357131387717655690269974727049246544032279054070340265184453319915948621332389470393844977566849686974278128657421587336861568453303044879759861813330913993577798839870162480955352324605532338411695911291111145600201234163391291553482788756142721946431739523279886991359654251245088029776448274138820507049735227219443774770756577212054352006476270773172765162807600028636453381028965896012970725621056995683515844006746996050264971422715913163789513057904278364537301876931605356341255046413082171632135146221826868366493011292161784592203787794485168599236039388093977261748977639997879307947515667535726645710038345092620792684117042534242408408530863115035992199054554675232366585802715310082985085519166642002905798629449735719886360369865886352935445163222954439223060231347806414071509470467040770880813692745403873790568078242953809698782957529803158633458453674619228454376317649908387954189666105424702051608264030038729787221438404829930747096189963461673058049815001773438335520471937288530155589727312302985078678361354528715963851886057461566031145976909607780604090831844336642137408827573677060738009372580431585869454518217266010009591032179240153793438908993684364610390535427599475163768204837033249247812692160386305059561330978700364381130249192252504529429356013693847356345650757585347205382534206713665525017095008990258716973565134089212629045229816796904240841841334195519857998922605532310669881441011137866227293862417595078035049507160499801605509977925409464247168973603035394388187065470695518201430476757746873216647144411444413180480154195430551238928557274208361231223139563339575989846929028662632428814927422184560765847683102961606280064534873103376003947685712630987687893168441581856710189670341373829530050372587860889740849146562027098157179662139729361146768756765349023209844473131125252019547020850706077667748216021046273522517484402718948260414614866594191728670059045011043181970767493968904619364342777973996451771177648472039440656204921675886562780827215010647236231633706420915553191548355720969978209915129110387990623505376471544491668410146852116332235732336273431731091079601363056020497569257757539590056208011470363798893687244704705470867790772570479331126705967376276931297053105014884299788664730629258670120055905336896951867018830778795625851501522579042890635974044617681616093209726460923769301055431152467880705610873008843029710523210948887887730874637793512928271910137917533315171387890117941474366638740187720357628778379564166738905598415023921119448571534009247414759970635472643412499738785725560737163552083765346398904962327516461711316396038935033836343526345380816210589280660088779842187394365400152126470974846898500689367812019264568107697210779006201017314337579165884009984423523484028733685044128199660444620450857698953731384679853920038401791650857254414187660610614532131530938647571111417307554372323717355453904090600692479028369033087056836140990578426733520099421343830343636250716958516788802256723677996518990424773437253830707465114605606063378560098690302312052338519347836035156780004668712696202684489220303872444021687625550512004616240085353423719203638607698958353109210136101183737946606933368930172612884665237383264534375059368083781913973449778028927750663789452444233829547466534367069364410357772271198639528636953980122310504337928650527028741366799656727923619744800300129812627705113284284199650096293321823552776780756530687823598320830265636478821439722016825745802395127162880150965999147716160110223654436580361460943198306399590747910146926717620114928960316632695478063938791407742158987542299272814557550782874665966230400707180601417842529286252333962366794137233343530603904099273918236449791600926602082136637545561861643599567353826504871194312107180354081305747440701444833186358768582253075956998327169912335982401736305364670782524533979718368966579762943236929637617884405027117064618677823358574789837563812482154337458514104919518858977421508859042625018958917650051067589498092340506890330999158340541742241761520355248834206770693149639128737915641068645203202915182081705038874097811346632151275692271079138228507480093006314538910327654779991628548520110508429249799260699257506404585404021624041989230371874181077762226816100066123793076252187420700830975120211266416313811741429897587905776107770138343026867582673296855171834313156744246943101981300275988226659807093523217480115862206195815566905210417441648338477610115531421864450113854347351505691338488684124403774387984094196619977865839135115283455771431447158401056211241436358968681091691238412699068276334418731541299840236288218561443850295223487654140490819948801531430884915326824553055096719772218935736196600622067580314967901225293437860743821199685904395609986154783885261398255528768499895622789630032903276738928431058968458554304442460887093414336908190994086139917163619993936683577341863784573922288603622473222587741676355893966447365606039627454390075554966264373455684085680401497620915331386363044471594230935033257709707992722630787080705625716988603258586490965003858106431903083247725627304656543063737884258849121951841155580872284384513099712385780569338751273454775671015859839995351897181008361686332590642461897006435295214363327115378887309811728699809506611991549764221228903498774816771879161251986417645063799753858486097285414833891519891725217405684803967272065061973700326413899781083125819362412980872752549172949613299290070004061254167591460697103792140192360422220905405811343072095217606745309023047346802614782598575833775292621018398085658566356760380890762840768460544026072782483976080428696340927265502336820488566771644832436535276353760396487387522910832353863104039399987815668956485166885463185644981800791142088135251260940451991980265394196395756554812326341730771857674738157848028457063024910507250923069987838719174627420502076051619383490942650444090674024348982852276598704994662976973115624015579982227548242636547064502400549308350807814579879879464042879996764493525769337438744073439369912883767135197392107141084025824379966132949125970106116322660216869662267643332197102105366536329970215922834739620121292907861710934200472178467051358871895732394597127514743023576770514472658708776595210837225145561994052573887710427298917297507101109106157622167495151748569798455002105937641317573167714934752417686722826524758747699674003174546953773791825096714609650352836147053526769668125240289006668412244429386531905776184704080453994597719018913911247680973328579918170673151869548181946557268416929942890208057975915320831512571485820001562880788557651456243191667598109123948543795495921235899841603642412739326151127897858641844200549054887717135114567266134735029941119202114840099363967098506495173869062023282555688300451115891596043199255182331488382000612294809012678501062371067980540745897624746530549310627575876886615918756115038976774568402146231357724105252009049034467407027303943546263430956322230986489320944990564338598139327756500949862857850255093702335250472450921213290920481925981715490689407371438503360869859268482265293589725024903725991603916044346916738643538615794989024558817469488856211227636111915496541164421805831144425907391049545718383709221839549753952304100570234263956418559927902307216126201219389416506634562024272190994657823913735187334020600258084303724415681055900806684974642659744639820551818565987430392452794326706307439178777363948996276943502696497927287012062052861395114058912755956287389036352023367890510854334012943450807188378869940156002138412687253499598753999502415031386056730299072659582066459782563370320396661153822688190646638649809173282408540376669458657461725617749796086276182843844652639790290830946302700865604524429359028497571980908523163920753626203941706189095509549944994279878537016299750463852933292185357573104374929500050253573741812069744505185596798302189861677504147489400590883429859222284391880122253481177219243410001453087625184816895257407016665203037670015690385413895345860958521100608417241351285426361830182561488100493119375483508571428681174695956998533449539493592973161647096068009323776213517169019809566725726400125788728017702313221555978613529180565898091350176603934957394082891433443961415849849014761507667883649305943645415707020981150777701248996672988507541863699668197088636847274936245019795147020694967527695177384750416190808755526305963025371687610380309378007419872651698555047978036204326749355205599588853876816582156687146251478275922599704229304614471930923059375211678654590366774832600689934075361656224512054472712702466944972740893276638338895686726955860942412575040882240051767463752444569569398142776873566076564882334706623102174947889845643498104713726776639559469806755401796734700456998281495507254092847377494617174850980162934432964786943950427884667514074202511800819308355451394161012954079353198561311527035440539083761441116230223868449766560132464111443439571855321715953756181763006110640582919303119854186559902903475213965505055077301762559494352327011186526744156546098833598173992837213925120448634480397444475614720078680861160352792934216801664627696391113812071493829758596106833287546924986584814739556450280652818359957213276485037865727997026830686899077977540596913866428428698159435534163573164987427190766050470162443161255327031643769073768332590420378228227737830473820200244515645228275887985444870382024033264737500468309117950122189506953498441324492209114314700391231273189733665963145496715898117559501800958582297221927669254239026825465136636265995863543384450595753564285256978520417984665188780944203542584521361309786780430391672225327282674965981408571297800079583192339270282918528680999728343030527134550882529084151410957961652700104166991312634682970645057316158636305579889986233145475428986913929141760108125407620794561383460487937310690103426171032026200763846653628795264152085465637879165043212802641812411809665732089078661024924289645512794589651177381208627844351397052392458799341402298119124624309482795045542102227134128860709941805244118739387816942792813444291418750394363173863195711103801792199029942462962449018231848486225778627281973341660343315643449998529961361728945398217796441408555373965398984364481817733843359893907949191939808610187591347661721697889076992027138292499544074447945240162727657217429766344064368473030290667257998719966162052015041770069674864347361314400728748846857184163159703303383280377911006777278940114843006179092104672528064517122063737892294341746329480051109748742704184788544675235403582731769942839960586417404346387046200487352759450148549442400778568374296579551621263998123452121762680151857850067983302774598512710179453469348240525141424680813668455530128825673361266021761699909174066691450628561092706179436747757413098498042678641993113560514986932908290112310265287281399522496116590012343798303309547376608530625544222178246330096571738596154693973558691516885597004736207252941421556750813796866090354169570576985493461487769586884792357082422238429325348024504896781731316965453608477920606973179867907110722551124030584942323527739452825759692658312314382730840326213064931152616319439977728951431432471422293240553738883635646789565687769739926293425299921096906815239519957590344415414020175102079758581290765655445345808483592167080292617453037844357200087253469488472688486424109107689680269770672349913443982854782096714987085348040724235816585769365151328350594821952355372823710965150039354483182048724890033128355695000084637785254892535500489019694352161203016434693696860613779901886385861689636982219180141043090416966187778929001971218975083198012475776817558564049080543921842609702286991544038549326816567964806128400650992673127021129400648311357623175254112429664280053484692843258297163171307759429072852701881422311522854645691481637902341615236127813071369648778271378398879876106144938212306978000433370009194220631105599034101397882391267867609494885224656586494516517468555865980400717066958366891587234257524675931706508829766045393319063514697739324885713808994756670194077924932467591399975679948287108614428945805154627179984839971007676670068277527515707659876572120729269013503737669296774371773378438396678121748603407332751642734538745094501309423896094464779164039014787225042835977926044774384782196920438104388094598651412844364555144574368989259690207012619784351877583137931920476790805639455371301728174159000810637138895185110909740130150033861159429594220893405737882151461916877423079390791950326586004425150656541261055637417141723082096681147672895420457916831872960732394142688834276775576808776574494950747157924434713120686696588549966034030893789735000338400234619444872956362928942046364526272806511879254991606272572150322108226973685090296399522710349714593710256492378179779819191751814016314937133437662934369705438284710695821722736998092364136441913225436219681820257806642255986610196813730725697361618177871589640809613247614271473057148508787805962614013871059799993328692059420674900347736706155890820835320698092383790024377705752932843806583346190647202967752067439930137213015346742748658115881514550297238819023831202278599916574233985245325530816870999895974384428802790820450849746733421595345026190124843777613085530919075071390960445947549927131084374031231719810348147331455167027390347036273953553923898039528968837493608723111042935897935055522194894059012960981128257955142341843562569772941069415493830630117881795338353293426991548149393783896021587631674601911239562282026063102543051664603902067077017325292533416373866770826674679860193025083625977268438670783463364662251682058911167744534663118439152363554459990055977493562664366982188919597903758228299023393137385260993822015446953734510669394111046566263416050546102533825267961266900790342699962795457105225756542205776770296331129590161261121181548287812844344447385252066916388190849803259436016073113940322841375221569880800683644506619241695006250456515239397201057201909125085097497325908398713512894503860568222451695785278673961615945245033339736503741435594837210264529771194785694025258814319682428784704746674818573593349862130849846410687411307938786000024708335277256950758281745359424994794360885333716741325501167330267806156881172754111842296184441222706657491776812213735720757776420658356585561299304486049112299805742656896318109939231330353497062269481023292897454763326412229799331615914372385188223716825138398204340375784920913067699413101882337234534260320060524079275264974731909340782767543092711775081601387797062371400418722082995241990132177479026836665474952940486650809983067401399800647432044640350915609110977235771882142156908732196821055742954249601306230794491291264514871537256391980809991265354480567756611980435389940558062975368511983782895236972730097461253784518795629669719412178460910101590992937027072053397462368672535726348401996785971345309965834186754707921197584207501119857359179766791543306658501685116957010026478028524236416303661098501477573497282836861035868393165750540117582613129768762700563552818115084296460339023001070854244607107014217136661518401595047656950368811074578164196991103373995523479929262472918981967625093741965193473200042925734138756958609524973693294469859727810328417070208368093627756761783667285830805711129376604494543367773513457335492239077101751268086184602258524575929439096067838121347032311098767796990051746210580897769311458043603964790981353435358117403202721744910946184325232672998072108436302260243102134737196687402265188304674081226113822178120374776165137350159373071755296537582988347131128039309101661821054658898540667478134212110201908690218390555190306190074889687950891674387110248481825805580687435073587586528426372331846518166872594653468314161735684569897471509707716420502161900412729851075822770970487825411480882474362145522023610982963163491205274136100844378455198097264960808198785266913490808294698439718949762267266716856141026438081484690298432199154025911481768300682028098409415632599939372024440940314051181929986335386380619188692239823091386223779256300709823331171712921868058620297779564432412831008910924585690024721846775973036208781761283596293459398242329062983378186476583554351566597773982116872564107464778545411112566932152191050109375879415558998671216390118029554781428197384585521731716675419053677888810899234263344860112252725904743785112942589773883468345713901931922272096138356940738601327125601256881937983749449569873769281152191959712520462628936040022014117649759635417991629228153954508901650511105652759127240326025085834293329568044036758683146793188729788450637997547581321956981352444673347665353876585910358551443550063900002661254008396765182130318879000696347482256198228917298266908573249938201799892779938605726788570947876980951964402290587233699787423516945368984982452626598595542423987875036688261248039942484446470303057896017933827842490308357946406560463721976260885566017614354611986457841070646003789538904023071996870146615374927313156119512181090035683348973274951910948067782684102584233931548111047507984920568110960894055247336813541457731537857631276627044249698473311925036332567832459053025310125152591335366066423166174088315280167035833103279396481304155574457337045929831553040090028254413836780743883293967063344973006547610321572172840606692477053507912364749035334344192516090340926563456655994572529488796523927821937371462789826113722013172657981901495249591946588762418100123064718728616669478428345659466293983545670015518378366137384954054134661829297196648640575834678942134704935590867188723960713569769082295726071311070955008888096390943402109086452576034964476794347367433402401674256386608935760863963781809701148191359760378698466515793310423513059429172398662272349367757788686954300901798799074286357388678260450917114729580873648271072020485829052523053166121163727538024661807977447741509309868724032602571320532988464246787790233692498110004502325546955098166701515177914813858250546578038008087312594250191941602571831783746442673442904549769133138125732136129775528346051745752839899646298698782862952427679575357270161752612347559674475609996683306266239877158915742145644439277996351988252290303818846057527124719439687624542462841786635523165750687596363509729526809116267865363223347734692432955963787221689135463549379324871214892189273936304468184917933583973443723496237838177807284307656262691824733688345542350056923492800497987717902165248630784590756369122248672378788205545537270424857289299581488093585131531335346023199157820596972361923913075596000273903417237899751985294349277601880368374706961642929027514076601731384149309554122989349441127218240518788589398730954379635631763489940071585775498268656541605947955833896027115144900967188365882614986062935716227046943873823331127845701252685470933192868181546474099722928346830953826059049534992255612381432311908257670545492516025352279158946042959509408096900414378872402910096040479380182090127958287939069518026099386872400106317033323528467108536749468144127769308992380249787245035065989395279863607804089935444417359733718076966477576612737799121000141487486314380896953617879275599531336350718755458397794921043193260917936215114884052439715264516577198993991682915000166954454144608768792103867800864794250268481065302941864650684744139744018390453833981483507852276991677072389715985206136392419233057545122718541223534854348043842540392087143668458396745503856312347183930590078811344213006126870438462690609545694540262219267205480552007511273919094167152613412470344321595383614397823277894305318969504862709174953667147705706041733237025412359485946602692854609048483009324265684416854126468070440463927331970307120696059663436576243545748483452503997032942350065894366426139940558660233086444268495636308547099004451242963833412703392217374407799303282275318579727682731761570134565551032232238126832236081951527397205847447789668606865317316734791267111933217757676632731625587671512648322679613432952441455912270263913524551084865659579880216773234830516690045874895778053293870944487446314437069483482711240996200686327396691776198023738101831711927280981253148665792956517361854922768127513613229071518874624219329218228499067540078694223104444463468467118049071671951574176412321965685271434859097859086149931378320455209823840302257462252928881520244186878438293040077533289446397483587941310839652062933130889602257218559471083982980570748770805835961724331160370192622998997321625820038739244716284853679868195300169609523093061448554907249692169160407439172454689001731763672949360371884071875679473639402185685046246229038875518354273959790696416243499440885044199385535348849566317351123152101523265083076421534979109450442826710899838561412253806761027830377916047619177832862922786337652446968143937763779272311183857557081745055763471514207369558006810206523439300411429498922229940039338913215866357009434743799539488716788002336434362386360143189734841953529536063083029557801396906143992302841581524076126055536013474880636751047646568430673608009772203708742025920371001223290573345870222097353441025976142661232648629186311863215533160763148403846492961903945197267820135639867440024786525450531601446128478231877806401053628477243740921410194855336848064963485693963086194356188734451268580671929077342500668876442681473898082955965731109205304910354100838280325575905060289530020815854362858415018651103513872635373832339611606922896618831256523068357549147737175757546549080317803949747767645469823349218339353019237980672384687922251817841480746110041372981449483184712389480411490557241398854771092964834200523642374409046238935941175688342704801901684835984003769957635170365918055954474767928349811212038653998698702408442455662047442215897206323054454911451575844097035328487937384169457126980510797157600846961203238382709995252823826421859362304263983796697519229229614460092050497537115909466157489229642467499298747861809008531781489450088035154335819645618183682219247035212552541856758880594096889276441418972348550904940454658791917246068834463426144182824576265564555935771922109380224678718515419081034773431518533819498161255233168264257219251898139958960185387754778914819301093141734552367246577637227084267452086085985754885442719026438725747471746348945159849419482388426812950205762165026339487707918874555995142438721656537031120318757430723561534679902860863908650244250094584689631523621774712480070049062606385329883103164802064590225925193058890658971688282663951601092986772249161597855094600587280166563344384487781350416233115580312746406888728932921875893979977097800334237418836348218589481429207047981725913042405684655326314967168219863268678312146199215672791220893996242101778877503003799881752529837472382613851027139370577987811032929680578992075432288177830932024269465369689043218274003421907226315979679906100011597131754404557277827298309275115474027822854713976592941434133959438110245771339062850200059537843314472800076026187861621618694555199767056711892377800509687543319599692176679960991812550665742199370340572836921667499059706146690461991287186744317106119633444041018493368947402795333530765480277297291319794865333446368072354740091966689874935622703229724571090716545689293191942748517600525005412948642118606929350517792605368343905504457721656965052855034769667403668473804758045287201575766229981226715652156967845484423372746093882143655373118209886646143693370387790554536014221161430193268208839534421730088525194886789816544606156882419528692769930752250864747414058836099810513085316270019307233832695024912987028505169102494449071063404323865539137813135563104260798754545066624008893802847199292387377477161448549116973377670259005013694144150180412895046240580187104820492360001172724826853663126371987207273701592645731254329884678441114522200618511804751403488878197818382071633352057356814261673979137104872908337186249640601369133867351709528458566735077709731927317588119590312147910525617277236906115817472924090418072664609544869359833285208845777028746903929182887353928069408859642247352472389548140177664934910850884713201590114582580306875420668572784532655018715793013607867805004271135063064389012123650668994913154581906086136583920374201671108148308572764691949315379781425782008453420477778841633320032959295286906623511651259458885247103887288955962924208916707081154772591109837500862117683859533758403936478827311023934072242214809487766272310510804789648787987813416916039508883504903522800993828129451049689200366219622925569779302904483419998748515721173846905175598738463896940477584719562396315036629248028559699713759643919490680568374002468905953704964907464250987324664656579759221856599104875546548617778864579777883514543675816803378749317089208271403014665761402716779830833060080743236864042019135616100897691311205529058166767524696244113293712767245971478157194166411717458552098304399273117516803650982278591076078394561821575306411187162574244025569259720192537981168584946275195954617442633464887345736609870227542305133125041604633442059545571841516131061358317991678878025242972901058367344633661926392806695629872949083564706344054894452802099392298560234993754500353959637048165820451193487970045155426930312360034562408342875095220912374041461253421778380869517395008455921949063952489110410759680492415521631735970457350285459189225577480965510416389400394798127089693276571327112395300841993393981399602275812516732292645649532464122538396427625799937749239826457381699502476465351059755118196478554153755301958036020314975041220512271733366654121850139976706135739854446975401872562845440625462548335947203550784959288682032663422831920047073824597265450744050347391439814104539171957419573441416027728208647148986158905722751795368589455029888128116030464124171049812047816074335039319618518433444922763337930164704503004785563883257589092350759111321080728472169072908547431780698744790530942048463270298642017273702778290900861963989470813595168282551729231003821209230937699057880905543019547980305623021659197276467084403540224450231249889021566035395584053055851429075189695903381938934723894253934208056721562267289086520113246271211360378442286562595859355285117357425791204799504734368623342618068207076048260633209001289078974622999037066518233813467569962034025298369624227185864862116431915574716504522657998420039658420635199273597735750181367290850932371095594573606282383100288736061452493388237929136601706156831161234745958916476275854731532134483541177821585973791076706440120769489641370515910715222491254523741993472518992929714577114128108271694388817863262049007610148259190779524053587306684312957722502558333186503402482424942695065740792738727185271136274376138083826566727066932874935678969542539186752825663828288355518789241864637256622209538607742578052974041397572820090998960235442598310961770680361075159619293647080849310901500426831518014727122784371627415711377540461926816191308403951210226076466682316558794808764084427927980442818020244846092989437129647897485665122363109427727997511892369815032578768471574096833099108951269261532870512531595257891604992926410311262969838704025150909720800458965063505656660391943224084685960530139420411436815193924168540803681048382131008010346163140876403985936305159412517588993943661229256587090943566879359391960120703726465175428312055545116922485569766329606584043602555397625571348582947195224598942386990514261559454369357752946400487957339943197877296969325247573385796342669902268265870263911993139496648252829080826034734184517299215362230214331342604986951682081797484428443934140356356845811146189608538350338794358548620473496123196322980743278002398639913520907350168956451545785823375205187784153027247577717384325024718745542425748829851197318550875801139345131831379918492713197477078561883344864894809521297198667688676717842179821506860854921144531634866509298364051105745253490610296786182438443869106821591952515082366611277759797413384282006763876468205687892386694140592225135189197676329690954690417469387625587277657497512206847094843528847412649105254737846621592002699564513318088538656008554243455107100988849431553253148638753244148419811924552470730712138570344150962442147188067614555194249680631207663413834343192563673012995007573920169083129981891878008428108734036267512210455690553609148886493115008845145229743364157966848399065405126265364626165881298817419617728109342735961937809662633116200928331293575417636929878590792077612003249122232562605503262361300813347496939954732148844334995873390953631857621218255163319930619427119615679474534341490361939715001818060201916700003183777956954095739683732985122724450646804941215559050878595203682702139470131872265538246947021805890921164107300129666179333164207581251907197652691065544083889326709750466857168945070374944700481616795759310446906932036235793652713178601804860969366448423484298492790393248858362903857960402647385576413663988681562334303510885295603521800938194936641907056410039738046716330710803484178417783878685364115813356256415241817264202106285524110378050016416929910297578990372798609951340761501785779513133845687553057292985066331126010212853683310372527792650000537267600156585006173263561752745627936536106986128263822963557787966462113941840228616733443292435062188368725502621216173770055823944287177788460380315356246639711488243212079733501662526214908377008592483404926840019078074365998215714709944073800062525978213148099061859489595908197966841566190034555023284743995041658230792367717607202055683591677355290227417883987328179004690584613898961119287887522263039774042123838364427017422572126932873574602337553270893146348773597640348252529554431174024082930484350197309368821778301341438555715889355111254362696731080077399236385829705786117145512458475442969705663898047799817408990766890258854702248107475456136663330315998237076634215897821995262569615361356236611869531450262403563880776158283719435712721629657414554233690338856752396555826176626914153677824892703165201402271204619154206980649603794089371025134841065167902051205266783672634527147687055396251399079147422281480169705337410190723767123173589740804386088314641923377063639780068289497812988735094674429984089108745003597553062621590883345976332302205976419150389063474402981139755567094373418665628759607434381741005968367085518423421568322485135370301710155136299208907020219744279231569454468828375733535392918755587869721149401110447193646387648666556040354288651643184648218850429774087768975231003760869471659406470424150771292229697596001573239059186853695945204802170667372454042784739849585254749994808380992679665047980428394849101729493575522668867139225791559941988800003775451042528330577206189457417739191529258301750629655930026909860027080889648645705809814286695478988131201235844227503838020069959195576941116885828040875025665236197192417607036958418609423105127385077196481359562644077824290718428519589949723491104643220849244743194750130649754036501824313237217889214139383325349108874192666790726771257121492651706357726313430695070937494438553567134780614708329646077263470018274581511936638923675888144566556836075057154546928482525867301740454564886604076270299858488241554645173060717597743928738127077838968427348604392589447457929424685463641340300197438369975208268730319357779507220619805099305721549360533614923423934937636385583682337344071867067411652668117084651126757177922943970501678138392012695380673359083885600691223185323853523609746200919508633664812011868246804581327793042146539162049454200307152970230084672645203826835962347359937608868136458568003549231144209539605991096239197986421256051230605150286830141153092590225258738599796978097530492296896408779856822824628053148516100356257424469396910855586566818584858233531140624867504553466415915024251521279995894301563070348664650059255675322466892216962059994302953982208029887362948818635653900781831904913425803528348761841965400169188752460748804296457389482820630812263217393594442145925311368102382797101857347968501443276341504471405977170878119344611810254369787152715546589181713698075392971929246789036345231313225094836761154828255268238283652090869074947287649987629372238622695619723243724506949619053574727829133532554020858014287532951631273758068962681068938455512095948522049631818397766848695544581616894319548853839085554021358253382416457989622595880285660538909703545232530676211934632298182942343277724904693549034135689228754786514266322825582242286317467761365365917696035399657049192748107105608964366842158236018215535231550113956693317937786138221278018194497794986840114538814417810531337242342860790118640009740375664086956004729254576248177319592331954206285472356029371365180935125724448329219993910285271453941299764716743764976241828297334395957871980799040673754378988856206737839423288956943896383215826597316807265506090006547196786240708106990588017887735092538238864542580229663629445892993156156156302016196619962744411989151901632449284477498267336628528874709983639882677954926884087994958600606828392250704771630056745528533681870338152036597806443873709249974840975093262994087418782081733897818950075887675983905502073048390232381045786685726040716125529494866692859359458650407760817287450498346715008674788643838435822229459970097418701270473977643762851926699026046341868764713093580564587136122329074522831882874323753037651014819557055796156084919872016885208462051604431038357725143256575753580086592334878303413961306949088813620486341293686527306173558591099318138052060574126753209899987221346692164706713646582422762424461540181391149792477727781611063058222511877863006174538539967141009592640107201991544371399125756962332569761119859788287103297140909223499059287721160395504512651481451146875660316805481901377291155151787082226633512510878150193841973761970318301890690719656606978383253156253536269646687475991317707837185500588173437232817848585056209086722188130349828704110800571287977996755556806712315368944924141130638741472817473141021951607951466212328582697818122387360323636864352364827443689528068898625732352451222718685937630928435093732108929513768470826367084653529676004635209507725969048496443245077287974005953834737925153940334552439914849479449754370834947976347182969074302729763753490908367576042974097759746232660285073844728494813143695311049299752449716741677671877329108315583190159322015534832382575399671875258555081660776049702665156226183473701726785194558798581984619918189808932496757163767918810003477571333097238322104948326129890367666667855950563964439579490661785367623104559593809658828736246447890294639303393185284913548975757862577668934973776889464344886767320830415135365693792261871392992824166398322932452370550608321454046465528886606356352576143959329813886633313305576548862664894754314144945407863745753702549910797011905441402551582093900367508629296255408066641854238535470322385276391157090837705157449824808647668283842969795796650442008169627830726292611305398518531315538653951055946771580653427422854877282137488924501787595772156734285103655882433833870041413488603973393875603204460578998886319057214989482961241843414901117902319177713531664416068364015684831069059910681927117852998061053121655733642370470965325873196367517056829249443051455099896393338787343930777051605198590530186846566156109271130748291639781012761154904829913281640397328066606525471491545952812032680146091370266635676551651572164054991009145032439488225603031560568180667307839539168172324606976392826413827616552909656533061414330332648076009968157048469200222036671734717874527966067546926660781638964828191833469221251387538931443089608448547868489293931073949573474206565013382747862929669127212868487770983630304704720001034228316993296696808670101750869311711370512865945933485714034816201417393076216022366005608271896557995561861859381195739844783912150465206852267157753281483624592967858195174803400950092524687287156244543358374178029575800213219156002087815849376495492836853108073001803942798149998644300488569577519573704570986189136471831065462033675846312882315747952376008309021912356500710442174502449064317395750281870136022232058052438933640089010393050500862810634922030044004092511039750009668853337955986314246157459198378302427092450746775233001559846445807682958316825262297666416483454642041595506494531774431295343265482746608094135028333314828378010025967462971307156709779353041344823067630217164015240763881700045937701619302911204029964005493871717309284777211912133064504789999635851128329540127260324641759979826219636639771729409665584945142821573049876741040863821783158290961683750186091489529662609406342981645196596539134779137091333635017810232178418086389942989640363062608177753978998376415568424961264929607708547403530176616041683178494533622398024977818204433953566230705999950197996823784391098638759895020293523418080481722329536347288286794561870891501932345470198832145444805694474837214114777978129809131982134854961045201428667429511127722533452047979620917134444059451485738913998377077217531518828086112133796833085911994095943580431738503731000113203444511122460300621623370224960450675954740580734485745377321370944401061267632911453573633608800063168541738839490844798959982505685340191832701553211107102243034906927544310785412799692389967549779736064774316133600844110721264348955934420521876652888822179723894874592238201022004409410322563311860318140960850557759930811354648551742723869066429333093247454478059408665157620076343284146501185819168327317143557863391514938072792420336729202796958781341886639972679122527019708883933463424401663518919100982030216247138843774384516589416152821110773739494223726497814958258815861806088510049913225673237670626533309498005965206567600413578729781501714038047570195310183665857426300415573132398456429666025271122529442840228649728796092577561472931838825388898008923135728383150161569161247633422084480855062441319125748596824017121707489645648210182764489133879427900294593077455257108348958136887447391919988141622728360357827812130055122776703607413400051594553772483325516897927901919294791465333684917782612510188692675846079868500171029496244773481172265239721976135506573300948357152215104753193537268574924291533453988642672303684515249506629479859776139714987356497279492712927507746137199404596914923795708820953809178611122675316628461212736224424392905144017214686696498237032426016195476062861296357934603419442760458574520620156763333468624254335417507997195561891411328389940504834853614352624915486635194937998766494335975714341154850403149346802384797340467911005905617224995577440327251207733332923147162624917761786689072456604583940072774741337538980119707332135037467366182395059442604285080185866183930276703616343600027485462040363904640451863653615688522865050971749251175562741359862742892824437192801587146564404914066262424814215560469416371726056299821146513510884257208786047818552177951879382939659470138905407528922564243629833912866296795236837714590342496155483239807124443281027144936693734243054793266471076343965813222157271179142496507897796691380224549450013023251928763884453102667067266428611599006892600375281917907313548073010179355164928085194970424659099857559044595173134853746763810241022914314228722609469319502436838225942869348017255127593052688767717546362579714166626330875214793681073955473643267264061277400981564456570251202737007417203176483655428200932700927884536558614229741167106607519703296238768534845622409866394127432779703065511356221459022305759645932216773214809856818200153911714866154374685824237351428135965611139171229979520820801746783682875985963517609609319742873920571134786988020330035264656608491048996428936465327758369867731324988748620535725766706270215324086381791960840889697708673601603249477095200281216402637626614788736640997624590711448004209903771878255302345402091077024372776166991146430317685307315914227568462806551102598939310218909683892305700799147199310920608845429420100904417203082654584412615872123631245425499331344821386170145574383276433230716167891834825540366905656035339490152823240201768786652179783282122306408191796488700067929820868888610256455202522234145853521225781601371174061178416604379009029640741726194814556328034288898131724685132640120795364769059252140189052636478942528514413769552317434882107256000942297133617422972975741266804802809189692802059197385716806038132358979829345659919677269125006227535348582471287032122249538424889645307046537394713578584959721682618152973836871276540104583528409794043768961743821451768490955508887529076562596362999479290880350377083279585333662619694657369637830135388597266510477104223174561188244459245994102065914586194741369122758361473152526860254933048551033121077837044055300978694736145688332405439002898633078981892745657956127241045072580086778479534816924945611398561360886108434403116574799146522848069862121588319926290845215001414391846142667201255444965317245155026173195069298573260306016497057259556213600437267867438859001623952872631001144717326670137095792117564670727384320293167037386963208704155880799346476827227816509007786070682226070360790447172954085668324102095091836519438105016581820356820343671360680482644079690807871491774276990479025417993510389318319695834869759328640321178926344121564933213110412841979149752742651414596600360708056084397212327703924116655864412587044328798678481106163255994720888768217306498833845977429006368032503309952502408537088986329011104602382366457305208035463260910554492804343686968541692465323250757893873464072408901160838217969700651646314364111777377761674875656102282629833014003450181692465421736280884762633255488673357384086164618625022870493445286064588378379284468012322895153030050770699067672699165319404520189354005619752362808353096626310163138641407450734156036766792287960882430064120927266617470984654205073458081021250080643667503394288142686246056083990842418415414528740804261238102621805835887627843883980794847088147978273572481978329289201943537926452025242495150931924649586792098825064080396641511673192770460719566497296426428530824913824930339253972750437085075881749754994015032338720487311932187097955437408571149689467475376645538471037234003144332826285690656269121601088198705725191056738680568825426040276611560316639231988865658242595941879432432113916444118173963585805188419115583429595232684510071109164595234679509119117242081877283371579643433766459861243523072700338701186642679352768667062310547417843764566232597488560605140929606228548161611482167372985707962859099971516042285010369830181817279779535596262528663397771754589746649533201061078191654689785586582306056899976963927963615214236261729262649310729500719597359049524810893300051751041649629523923485376381821762154807080953060460368149914771428526891907003082124026692405566678735748078592885591985238694673819645579455776372415018963631288660110985572082115345757379343767812875683745665714910029736476958735873867711655562942987278963093561883032451138946775241709172201916787753059495046371504405999760950697736738586556198555424162682160708719133509957383994575827723482695743440250498463691719447678367660823136588138022109815705650363899610854669442017265592118547023638460711722905162209912568501935895738322224569935268299728577320025497660950234819556729522894862015926788127790663736863183609068717285618259559975003826554446024506878228702355734368009230983962014884306032547718470853353175212807114207294934641837067980283727741649310805068364017560500483143174250502992395806360450115634123682434878212432408636955755231214137165166609730264881698023729574210744509664686559259942338270396911207211023445744229814843129405840752050744161098550083424508441949735624559591686222214108455755594496855158822409672307366060036307768141363477402094806194501788004844788144829394678455998750703683704250937973278292276158951034512332001461533647485190739156353645991657923379620615475009719642094771355085474190048103778641229990862396910218167481678928236211515018657553938785669793409417887990895157600854896839871137826226858739283706533144157210940447194495545615342208478755546537343383927015975602483979002954899844078204765311590575972390654443525984639916518402464972096793327121657321918727526650250395437456456650441479272134068156264733554208076002334492126749596551698956950221610407317303864165282532389245322653819629379470831988471589501685747165356309614308835585558661793403867331217778652784405130493107695647924465237675813442242747238029556992352667849363799620856892111653593339249844532399584093243442662148809692107205049870863537907874687333602870377867988804352127336709044112133610234429532219929283180032121678946756480866973061656641552433243279454913235147143653413230627078099285420395088202863165796864086633879760798518475033399475154714040592647289186044737436136224534434148591911023202863681838455452647369205168127391446327757912397111509896431811397521569730387925065464416395289264391232571975540415010335508797803237548228530757309496977505328052188214829077182976466647677757734730262849208443437913889843003033070161703149059799221382567324102744249095323889806852729075977564570495113855100567183126324179002917304187907446293638943881841760338161249897477340993321714946186607240838939629479577957555243120763136173370237086123890387464866597370902766366273527747912290337151266051904357069828094777000766711867800395577787089484922024406384322864183498416687746718154732749538470341407994367243834961889197544152386271173636902471986733687284908952871989141578760816206475330373669740802659652226517644786507892935301930891571462647682286687879322327582703362972360679898811953673050432653196525094209126491855755135230980018010209014094881120765009478443739127939119798131513187707710939905473078027215485450343345429748401496993715676578220988405510256024547134111755089632402715473411833200688856578870730376561359562353662198825344100264450109847020427049032092294109564579539447128025515110628860641462834931472249672905076975206942194268295705040259886300581173669941342446492842752535390778582536556909104546859727273928295224036913167733237861132356452999258868603475855769048193516599927212109726628615009897741237013236303792314034861944516423768180069387598215167991094716639431301036305416964604817430054837380140465437971142452009743371313098161998251279267767346563416120044847361092665812224970112364008478046944544837761281309317377768892458607530253440118691908462988973839709686768885559377152489754420805966638037329912492372494001649181525759783555341114475462613974304124458093350556606045535224922822983526029639834247879340142575237430987560677131475814518458358050484308732143323089287483066746896706233748371655427020948704212717786911569679681583207589259865617820535534050401813254647109357978091863471726981448848749805403084637533413930369901997444553184767695355459247845484115954981991771786906155635003649971809412582166675425468722400572559848303777981737043745576939528415034475379428924939288374770005571596690130132264148370880179161930227711446975109302383193199609834600243825047650624311189026018135993060347923668668363190511822242964851025913152591900141237139309115443288724098585980589450193225036865246355025569424951673042216937687398877005275136317412645166502344082222370460147884089622693577836442719678869853092966248879429363901941176355533283695228834981903880133182094204753495333107335318498626272127471530781974739698745028475629051803693565523535068217725302316847946155053322658361756317183914459850000392673233407509432772979901869732321398114849628805227185957581097920090191936357959545227488072167562424582508179723485159349452384277021370134530221644356399280034854510348368667997548178945535517997826491629047706980465144644614956535436736501738604074766373155782713537490831365481085018262400564702270133888962813862327872388788648965568731531249796027072278485329696065300028355197306396790302980666384610830721412245636095249855381976637018775121365547310485419795472597452195178266687538601130115617325170629035761174563535771385814001844880461745126343146394381977728992594757260957918187747295182824364756419259996780641696521153159195970168798512764447050022339524336557181404330516227174590018504511680184513399932213584205546351777806209244229791043314976784334050949036532365290085713706520791504377658877517592184037740262918695686019186069811521436462226997595594537778123685114969634407612712665392729624889484408812167152827943917515711979787896684005927766582073234139156856667025302194941574237866825290252726822254278627847102243348524744536331429395885500891643253836647752050983569936837566429297005277316734596083351767667536147637793507974156093803853117521386983836847489000657046483079911960995854323001782093784389998101540092175721662134451277979463757956822209420560404703175668987134094403314643308470596015203023348059121257916471620804456342068409445350642111976081602705997515705770391540667855921232953784885580703582623557351244844632157659440970604377387242128361425458886213173255367959136261137530724091920636780174939330410203729534070375869204325108546886498712560695604242789706761638805940748769271740137892449336365250705073215056337049192855449278987487980485872819580087573884218281426641155809130822050738901439889494671632253293021885101940130381205172468278813525332375396416993844098260284898223325276591403437579582638054072319429536268858500297246682407189855233888793827220248132030948934438917386746835258387840408974969116201302994191497138131409140217908354524791660835393477073877161059978396123717791965953544886797321537061436852325567522705029191945302670341224910932167073254847235852624194581635123072931056299928687553525455825123914441065287723208478301383477079123236026927324883385031053831281600745928959602036476326925723341840836538420301507989792673219543086049817190963366604020099624825570054099802559273500374728902749216964739851518615850105781106771618061859169587260749001017686883361586457099109608763502686576733723614639789125001947389128868367059759476870910993804280149515969705893977233176847075451151744674667711726633675873207503321621363438894268159608750394861869681654584306275837765929821653208495949897447616134073599419487426063868074490994488591886680725736724035924101563113081507668618794485331287476730201523037534969087786551648894499221141223484808499219484700827896641214271793971648027218948719804506077285905799306433760209201675333724161163252456322807517501284377088901377986347496109631923254040423557167381133929122776738438400741663649771214334639037620329803224054815230743350235949176834093713607776786593898963748810667113502721927329584784764985361317324383579518001665986566799811287210430491207335657136123494133117050596322432779228333037034216237849120319475839497805941452561615730051005472735487737601571103779160722461920888490402578245993431443322450008924087213402365673115264688052220449428665831427453099627095679355470857452675837442733009480028672995913191977948538849448195395500253515838371373776077251962233781682269891073165948389236898175571995898374176717572648940744977549107909574203437407135743497043021885451886958510040065656900579235596308729598899159322200541874817793058717456785532543220513327394020691005905125437051829112942353506015769736095793532181005293503572961463852287822814925028758129868995633187251030834763568469893650895822469299977634025994298687184528763089456242402062725372294424158532712340502988211888098615035744008641976547661829593746266968973275183766007224418694545610324026161116385012511211960891151139095594115508682597005372383241845654819997865729211586675846789111807973851611971769052765046065051200490965405807034670360624171090309914224632453468343028980198867864192040179196793804879350625886281670593541673821749249822838422332716968600461137477343189078063459042765483036965592091303342990772344889576629761229103499498500940853415910313981460006472085453702589531531456190418555324059760134072715284019647173171121351780864205238413332613728549706428084169719396505679840719317953988569544504014980809557950432634169672516472000623285633844398187756836029807976933393706022145240748396586671484782951517969563814900796125620634663806188326330975352944677884629233565397353155767952098665591912526277021643861595829460029367223526360947794039734219186652956562173672231931295100699112197951822888608124229464309734434770461990073872425634125666226315224361069260671346992841695311047312018637111109850614344125983341211476259926933923028667358587612374419518869174158933042883263907871646553309318248059849012982297335535937294876599946424703582068605431907429402819477683310753789819252887578105606744739298814159460944066163222978474172956248699587433615375626103911237748357335340879902272161934856188799781383259079342281424101133648927836294921100461620450226749388398266552349020596063462058955521591486927243131311569311352923715102106382406474115880312069385182894867469887813738477987017511845726944211255892838560328092348497414272727433843805402749524870559820609496851741039849566555240870657951734337408096851453729430415957772977111159569714951094113362165633515335974733959765518748877921347085011102804502432168513738360111145324747292958956285536852257594711192722296657992324001829166143734390095838004428543354702842081537440723628888917468002207447137859049392062213053168654956042220856216203682395117855452522900759294545035704914955177893293032321885174764230449485775923092202966053339376062473084229743001505048075189873274825050451010681770198129790712735329547863451682010492237336861494189609604353454723924852516917851031775204607472067374129638709626190163831731240550488466304800531845201767704342412510849976901070903833747255634922481453664866083721630481551458379059799742335149813104374655222266188032376116453848659995581750747855103344987531548081590934363499492423632097154769330172964876605470588791587626141811753615345917855708108601791252716815565549137385861736368154567412759681103023866283400990693113547482414299939692681485036427143186147723035267160692171782031057817585421683122357015101566267257369287401670401478087362355763595122433809648470438513792715738812567644322292886286570426434240517276109353719287262620822475754162910029699414403037888675398206448050162015559225407471952304575611741438174421391643538400735789291465977613872668211007640119004457002249750412962797083732733256120187121402760359549301174290620732510621723071325590416572594144521794764243269584716641056411845220190016378134487244599412266975200359528364200998467776011784700097890922972217339608024929216649165839617911983491062668275970651147117606702810469373224353628541383824652569789906762765813614005700951469766380976717373283089781589720209335977847313170264780747111595004015447116108672299188946653726237360202409675587741084937901013989704369479140073404102081229755635715610743629884450399744648741768334759725545211458630587217484448489074363136737374874378490406974248099770488462713964528249642782155340687929835793495326615629066633016561396619437870575201529554408403399660020698595841128994375466901354323079460996003928058999039228362842756085983631839881128373735290264301878296091414895326443142344238125045878258922859432893145728395637064239196027315768783413975968448584265560396024450913444402999482997074663297897152584519817089785275521008995003933027257388585979358281894172919549517347567950843072764782081743386620199059719148901255110164376210320352903977989645185226374010010283943682203291324541503746262068208032743996519531768628628130016843768629986203013532181918311768488621486951506507999011077291480433012156704795403954093597457636343832156484753938948441527815360129560065491085007847352854168516793190951919771827184392733969885615955660696303196969338989843872480911306742393600942078734075330381489256834491988150504998644465895145556608513905368088454741980034965211536553705596004852908092542650352866628343870027404596575075746942971676471605321455229085726762476821015519137875267498861000552111284943829995085962131959275101556311068087588480954436049811406445092013972710395540641510061482065382177497311517553638262004282158668659443678046625115706473201562865092925807386234785322998184835257863342216429340010275816881486844947811663100659359694501336374449398251815879693886060896988425872238450480287144423766729638772037233276329663670353170074583789029176813228194406812413094208700578706244730275657150071774052991969748255887578263909770245026295865170841048177628217732715822299801947075750036755929469997815590556629932960237726136773277205405016392450214587847269087353197883735908177856166495038616345729054799196568347389222523797105418880526011208851901059852167072817451680845553383712847413921249494175419855742360818147482263747587907609729532121200960645576740275209062277480179040908777660215013815547873846442060045292275786173387907705443081990675803705502357206567453684932148044025730106101266008849501090208553085284628299298102610032016054036756635978289413191910786730915320381444180670700679224931809258544002796382808857404508661095067235781080788236886805303848275851141585647736605391789977331667920945182970543860928975620370633883005652733753554371960923718933097647976505338318972516488270746747333767052021983475325208995619929188171204725435574374274966205796670284634511285699978083761849661727061528389859990218222693923368799842837485391993876508806411129248367366081434822511175290847531713249130166657574148782502394079921380158518777815867487786285566216957547460730361634827113099577792886158278589554525953508122343645811550436217543387410772323359661728756356088750403069522969975956025837343854360103941666158537508623289723989919694835124869551708378262959018995934272584021978542258410290255429082598721010666453098275066137253739058614130358225476171146957012693755659481104574365042709929840803647835405044200306034902240738245799992308795217109723680604462131772335705356737073173508452357830695089042106747635153027019532984401356279454745659852123856664381621991562034502983198230041400270553078806671557921626617201032524301570150921473912048999030422821961930463249722442679916202729879139542938058183437295538825256778616371271515603001489470334869150160493807194232844048291979406322120514646407186588742223189137613265755754423176210071939369177122545745448102233006025371108798581270154843092694905963985844521625953213549750050135840622122109553902114383587196000445800987418081370104204459722185048641372390843220467665987627245622917369019628247828463127976869392507216138131387119124304801867594868843803395402484924225206026043995298286020186499260831178673910985128335978484610759735912198275988943547826567011529948468091798068626999510044488184787378491731857923627242098449746907920853807639990723160466458586519595512455837155891703997344262968020657019059244743365825461753427517990853015085155426975264748764754658605743135632270176646674591356952491917508116730871701290928887167244533494940992973815207706940378686547827460155025104459558364811594566224515768533302782714976048948431606758154518879797144971674201064657451838192376046746400844140374220986860287829275371722249997415616439555150848574558854366334164595966922827287140325984679609862315413438568342017378907884778375306376866812478673095276775842749882083720789683273199902163788968297043984150327969642578157319053931601324259806401802524858761690775473363366284335426933291697757140983204662668720713731569301807131974263872240110294116500327386723853415632051119577754420746276507512189864183664144292984928288818185596753352746427123242650297966463117865015311953392155486855375243649156693032869275377994248298391168953003571728248373540832194217217993582507341379390600822241032520101975355375003658514311601939565274476450192497489388530457063924578223901626021562595074381252837584559085525408740729931102030063737147421708694365434976642970711394475105333764434941525152263193346623285205961032501843665733730754429098481888475352919517137322674242596038404607339933500318341786448126808531270707391304478784780745352520314432148374536940145284709291482801016109402710723564205346349523462041293337773910768536861007129272991593726456375823497880927265578663229705357811648099403233219357696437538296076912017244559724435156069118569144173617503228509036482716344613798609728513874521615524823971065065554527619862265399761353952902225371417348109253074024288700681502472093561944151925585721076018553880583124199777979869410268100166744158235979005391664401237476188219296409906545274088521807414023363312818234075243580624171170363934079167027009326452036150065254584603076788237445617848085273173572471944521419352205190140956291698280807043254243259881670456453045161118269687570899880411773092980916121868147801110308241728657344204820959610095085978290100492936842504489912227483589307234617152697503663094864877909316702142385541903633056702977671769585362531373194826140549196778629395854689903831330702789993547873002989474441834969160247454600234035041291294589490367105720743083451033416030700434049636048626021663694587838026156625706600872568234785634223669180790209118794608803382443114043997660097267990993113947058016390659311301632190189043007973690625332735556322233570553011588433796094525261788399405685007297923130811076357294622202016394303173713397467385420638415479268543441433680379421091846985712932459712677889522612427786247476660733514510500254821504912506476676254010609352505370204704273199783379523125643360107517374310149367782765127197227877812794709568396189446225810790520199869090929159569583516093219508183618431252736559865022795556957266932343800799983928691147775535132169341272512884323663746963219735550105305158931754838354068653649353960489925988705421400462136819896767717589431345324141615834638690946766831825254075131500680365182965052444937698421980421963879807911521981025656774764872826915926362426766881135997258731004080990740282240306164314519569328765602451199267792537560723477277341870029925677748095240894441670284809509258945359439912215393930604482992455195303833018962049138778083265335942622985410043982225534809863891110559248095439114727969901211241768679086049296830627936658833592666906502938731757298930581904390892728493610661402602357948688510786545791316263101071646527794944907802891526987309199898164312133714952471794922509170891773251484303426462518216123322610739675087936138998782510848337262735295203126737916225880700139225658149935164466095005922383106618777736397164429851251252036981962575377777475659501675424542759012092723053088631329993509758304507710826049843142530422084892823917671473192814938808082738946927305416939446757628326015456095355775427916174012853252565658910298485334430998105171755384957427077814038729142232998905454519005320644142980219553386493123993384767064818173543148901497231312250561106538743007991851771948187185326763762857821412046792069641847722629107083882709658538586334051409475221583469157246570628278567946131381761354846171935545866887956525576922394680709205568814675370294261392557644050256863673987595103562304618854248965166349507735219361290872921539996517203167848844030485513751135389554864704642147999854482333383106591699876186727482372819418312757806707995924745876955439765982885306873525627208608740720016273511610004786546040838578286821927052311494148597396148060711147469806167557895020195089146425789974381479451629598596051333430553764453772035149644089651296572251315334954889420961506983389470749044659471410822912064583164681103095233708718407020464827071245584934616205833697436168938113280203399237525080399364538304696780770207611811729289897000827519808751763312681435317432500087850134296026243297311689315665405888270651067766841190729708839072975747971498429773777031626798097964916819405738559534077718473929304545482236175176931958492416182911395620733782475006685993997333423972962504876343014293927281224269545093995897875209310009600514550099977608194222311806355946315876082873121127672573405178621327534096228158464623605570364893774510275086583446167409128698788318929413203359819303320387152550723394061782384139968585612354569064169387651912080792271542188783553466619035919752303242835149332518789275117449091287890761732492415989926499280433779136108546802497528848780594715194898574308162062490441936496753420592375469526260534727359588945120184495236703431564231723034205726023243182332478351623765459663330342341205125817453220683512327894854432417383315823682825721839311166366864208793207217823451503497241937461626378271009298221974955043803178315395922981102688197571867926238793608195321979693491302397775998756230646395573527575007253382769529178472825801997507081702178255756423721038579543542413808346950803945304909609814117732833087586368237305764784783219650367269079490944173331411213654301958938266515169871830913789751205170892131806397322121848131220560185345134712248758376770896426347238389405949345719528989956187092151987535381247876624050035106766938371446352808688269747274226773407046290896426192062438429031965060059241600805781006905118654593559029326620609713831508348297502499245568522253285829908190509144839416244057666733546131759381632742516407222981266570839894545182625699406882303834286570344671575577999934684378644865631239390851487688288299188267061684866957724478497733535154674568651932366697107186058922725193092933541086414243553715385758722246461930124105196675437244051814288684325847891398213261598874866148358502760568203102922848736971781120056934725466534970820424868079615261976706973028299731318127078617139797159167965051502724754549684392219302114085987323411697424565302410490547897117792386288417813450935434912886203122814863591830915483558278772097629444085993817964397453965739167072541239849923521796536404930383449219931130785697881332180485152205034973866406395362022712355997151409529039420736893987234594945595921565935928237633469041708921634193027490452095659693044681883445315037965717212611512085815954395062350433020346232321664781390345278655783644742824398311485756588196554468882433299382526458425731472497288829644092960248753606598254209730090124829951443306993698094543232559851150072235396113050121952891838338189745585305036122673694262314045768906206341471639644319985328934874307993349070483574471289942958564850594112939653293973603909811505297961190713072996506848416259260465055802449095041068997670497182682378130617260089337041459902739624378943470793593820031310754240005851764253291383803022108675892385191165511819342132421044801953121127723843917908997682719438175888540873221019081707491020415107235846836642858738732432862931075300979157719481353585269858521101280336699091792189268620340138747379092016262113330588230861929251172291450633074915790007766030608044797665079954166199012492687393100724964260220675473405411136859709886513849881645566265575790744538642163717620062606672959031975293178147357632923308735445625948507803503433532588562215175016219338722545713715637261166883549428813045742918818921365851631873365857226228113480284165801127187453864076155195748542637283167942064679118680444233622717638898635296711043063313944178253463803914687019994025688501213962301745391780622252401382007759402549693981042409782851772745542257853276971251950579372601155772125939007625525781511762445459410350210525636670362918294677750697389477293685115236477078516782932265764956354306817699042868991654267615175932102026100505843788606362797246301196162662673779380112927244094175796693935256042272729542278768404442837039033553624579132840381636567919445153894752695142650591558100690515124956185006160678077431604790374378318225551101480200105890138526016250044822197289367392918927771526424528433811881578708815311863325532389765746970448216193981942512075738355249267958497677612360617974472853703115869291053180367922890834083859184835451750599495611570497665831569558472529287602731583647494579008450679046042622663360094242578642404281154543740525756326044756380182492620419298073350545411346379225039099260999121989904868578108237893678595409138712230300303160757993318956446951312200673067320570377756850690641566687269198555591127066996476129269597686921873033320792100624454499350886025296997416252241098678337200971912844113475635626852927527118464583353472508051699572539627101261400781441690790756960492699595365333559796769259842476372109380655866923977997457902128855677064486871834156809247706983373808047020065588129754101516164596887777686578553867321909450835772016808236043501358285918294334883415075890759951330337938965872907945000908984458295128140871795350927951303903029296453138249718622744960193427628644070044865025939643053420795816877777981391955067926233160429713606957532297557809783728129374951780651259065383782401851157884492900996170193287034861434040562931063492542537587591561412062983201707000933500933485934677071068215027431960424100400124195430153433540358774011267636439594516296078962573232637125724334909856608410837003168859007442958983189198589056107646386179738888018280264606272897593053570454813591561804717847756109954547047257446305794618628689711167522673690416580499318034698357302670750632971804292353542322552892355093221448140578966037615311918216322820553058693130985596456229372482562959427296731353908232944473687879748840249024027795498813516953532925153130974174219441966736338551667123940569484528105249137940831809403895020398148526487298488670620930227666843827280942562777754342673379848346592982050696167781917925162156187764857204989710922610564521442866945425871057096075076500384808318165165125275949104340459024100735631436068184684803860308543627387970454923967937636036957786163964436013823004266300603647006541580261685699970499065804013469818008928736277698526729455950472982266984948470402352692030607107051373332459091177529705285919335420511722782971626218244122265577431757391706767925302107411499032852576894490354218959307575248462246131235976564681864310947245205677051210028817434440388048870765106425548811238591828783222157957584311864715295008121104950182918458837403019131027551369271778065045674570396862099231648574666988631437566136358481052303356466259026952613585018726797049723360897165161753645448404429055989949172720788796216034374119414035805780654817738452070948598727588182638598506065803982944961690747994263977713471518806630621551719731536652011881429202148112202838004473307310493067803346605392864921398140667452904750374913833920230041744312862968769117608684155928543676591663087047096889163313025014553316975888592802124552887707787831248024947363986372078582768452305937079120348097782980127809920518046374087761586648351266265419093743133558758023707566483078713735013859693581123233541212650892978566539745618154450435296312648054848286309903666542687895259628088969998457167898249606588060956237415649027253264640971567260305336668630101276830474796040597110114185119108813282803531932889665643578985393290731910127254779910371107722841311983526962143076429082414833681190914586528138960430515439018204110861065220479477264535667761875258603652035104934668922487331298249923309451376247374611474683352108029759012912285835198909407696492170886590938564982224197416879708403849759824221860674552452097701955412334521188257485571132574685954564431352203537894128331055640345604119273723422047978829641842968658261863512792592652233832397410563692857110457978320178629060984052714325810357535438064517887318209923171797443764791188659286251837213706134800243497095067967449118219448612312997023015757274654444720279190475350617417311367962068921882987455717504674134376763198927643295538216638690206647030950292647823212768230819114090386408431969677956807398472511407416164640349661359384388984173990250276227180288079336080498504158862158652687514805229471433053973551035501331547285057887377981697039511150805736564381462065516171309641216360140869412490937651156654646326485626522605733403176427848988376710830730013374333128378345669657903086782487854631521802515937386857561533150834623873010084244606051788826451001152617861463061420331793820525720204780441131708132297762230807295615887789294836741224416007700740606692938765400498452677285338577447308137441189297018453022877870281897940426841662657752987857254404835936179109074366968611353431884270517560095235383677391981042129456477826131331850437856465013478115911154863128937982226645284851490759688081081982504919985155553782158415951049772449649259309386011442621212189253181784987813284298316796824635918367086320348939174644697914119502682574791456342417735822837798344872780084917683789401582037254131047430347898379157963511025197261740922227835752336991556575517992560880490148826400640236465804724567773369069000334234274743686189905968503246119462325379959813383723765892580359757832573602883506226436906317043696998238426701134913610648604045433915168555595931725467744405462499242308969354046501033758917616311520043775461232929258386618222703574031391708173204679428320069073907338915200342972026932668592269136289826563078101272722615823767156683359535345948867304319240646363242914146865961312457122449500228234382771284471728033098830324682541312072553821249750838952984336719313174726474691794346885698476964045021741382115724549837904519628904428674420980263277882402921720557139553967462539440930438975852613426738964626192151549131597923319646662238544935244576868769182959468544837421944053255220906430732283369628484743037384914090895037560903485325037337889030229678485148319431683549435319360542302476532556777393562900207428895952831939989726308619997310092641193511956513331400977156448064165291910899536418315376061367597294842480467674808445238636930086925300437219492518028336584693106229982813753567874716325096256054544340333542957083526328401611527091404639212834730383392547888669383057842175586773871736577629066477273043370399066140455161349322400957993272283039451710266293809074309842645688973496584664669167821446294273486404145847095552587767399680758476437353397444820161554421882286675149619718118853677101579034834164732686399003757146053256963743742217271188496150605061332533976999477591665575465626681860287181030585172384518047907080198158098978990900707900294095752902511994134171326167810557287956693906604386269060893313345967705878377355971705207587663241331722184902816842886070406792751220640947409705599226923074202708615247833392578427369218741982609763647048811641918288764576097415268259625587940106229211677617677820745231883865662536722902949638262697662341948791219910901466470603550296038853132177451533959713979642287193227289839608210515844050024138917952157584535752775107663848705031222052480166124646532551247234217034036262530524483234839721364030111982337395817780982286350448666378404710937626557287696672741440078256528768478240505587552868738251867605593230103880545829263416657640466128808175140778518357051485019179444329920760786669574148372488295435702108095748731500798160578089164026915796245796084718651572592494367895875305260219297258815897344483087854499401221770300688419089064537607907817517495330310090516332568299131464044352584763679222566503497203295661817170593082513601296641900881605672947938917390065036760862500939666495117322815488601224479512461386118135019458185061657068977667246761673505396445124142972306150509011103062284037956776609976819804885109365203834410125470612614213361684125636362735779943680739490025654263991912392650211116070234816484927372096980754696704183385789063771747907091833719748670797490052263082786234212564680597779702857353867741079444766667265652884735325118043011026099823344784607461505703200416860892948009439177219858799326022396263597167418405373911012685893263415471875447117177002881935232365235321676707325594736774236180758773331591693533215690292169023270726792076247177935333548850252814602677093690191778099067134538329679442532162440366116587148324449732077200208903571711901268880816594688000150787494028107222149389213424560165385253793227462292214912153098214796793159733373338781321615739498388688366632652430002496502917822899905968378406486390489058791687329279764018440773573050915483479413954444674867670119241187785583941020260598976877496899218254316923860740622851366054251953964961987521320019660606255746759538158253579264725122931970492935524481855429811887747671792207983553893462830507157749363900765382754699787476977781674256604162850917700769729121143886222719354783907558277144133188485134968004465872818894283693093576765257080129381916809438873829735683586904130441389497981282961861529403566509136326614865287829501836525823581259990661144888132103720002917044305592643687649646853745577235391930725813172386611507572238924524837560654997858598378472176624109310630423982856624826655967314922581063295363876457010931581465320705475879291771204153506328327672915376981215543685387980728336841673314754961733989525368647826025983243764391843779464989075227146750544951155567436614973663580410515616639336944710183392259956282628554185797917005718886416849397156436230461084286256138580235876968706159786391464790980144993590446056377621887068520271427504684851430883041229819703156546631790848480245096991398192201880850512409561706343373291685126742578831965239957003338885962516076535434807124952734322332226777845251946311414844334143291425505996307434007005591849228983570528669606930485599306536907949297435459827961572084012551743375267241501799511264155014922283560907475897855165855948544130710988635276345505753807477226168505463270401974446685122153970790166826751034343479946109907191509330941863410935633465517855530935017183391056797807741542747295204866446566131884012651706097688016603233349291876996070155905128805201527773751047792929633959294865113890563878147132026340449591994844225303703484960999294944911151498767297101948383523179456396845204049182883546310865978922869706112413081986642511545751090143926370893952477161617449984559505594771972345973594931429317723805418846650689463855568867588777253013571211385196078190986916144640372436228301385470394232121533914134054739355748980729187023072192857657144694226105365250263686873278243026930087049551691155594725365065245258388010237651864678336851784722406570615503592586411945096562170390530692842424620192111447406395380821385848494397959612842402753555924443455012628355337387154268684285302818122581132890975424084387481681916303127761140007889533354572430940569725141428584907476249129889430002015690892426231596694176814683943390009822446306019380907652487229788193449899414788400215103480786589947140493370001603571989145930760569492211764268832253856861883782588672486471267596306771247471849180900687901883431898112079130571196584293201435172960018334718997313650237039235215792877223997635514534238376686967710750933466646559858108181934983881345752279446453175162938981103254998159686054513171134797284589179549711775657364865212385278263712236852694298654513149024667797895861835324931960838911928783157061205494606939870295237572133523680031538676891946969630600484328072298234765315080815847604359344401435694896907910461201280203229770389725283076864200637198507701936106280603509730815262104505512158139501393440529479915969373443342427621937599105795716218911018612100995009942129160788287038130810682278954534819486345436905515290846077675061093569236823986616138782603320893817571722299232670939409800001517831050285714477745393419079124603802934799006994074944814780309948176643752660786326284980466086890677749156546020249466556438575190594087865270704709754239055865072294036369539299059666101040636616337387820282383703106418293197595582264984272481427942296088503100814717100950306078397272962942245582208422022158557128729901973131736430917606441083985878626852649306103450244062540223977253361077986933993852562383555486138697620495465775447668146353296764749438087716053302561888423397896675557910630356307959716481358253792659011414002010490066891337164161502306489818042993655448345066736526166255085649690503293705931637528010992420088339204571087331839603999645511999106938578240575038863686428680113770923279720977480738587796117938518569560089835213372738793061373534085659651343082443558878542773172970728949577003379834494839205477491331029608963278482159706897223292649017506345466336432373247294106940707461056752466344769741303852833076117365407524969678757335250812589306542982891653162959903299895915818267866461933794808244955365175166659722077561961887518676052839576579510551787754372981587780609013476099395125341794319576251643713403934964080034154284176150080170743670141633002148953755666195615633635857208499767765895627585497714669768405628606512438919659607553466511009827745991101041584194436941731446806962406912796423001559873316481012177359876122742869197114367559970011392856564584252447212534159890382605295232966946280508338694511268844082088466838111521859487551504446749937094443433645464264698191902670681624054555649030475444403193002400751106938000724760978583013137070815841643503304027597568010148225968971760906467392733373769120098125037881510912315710864806090530967727146783873790336154189678173595379707413605290307424964114804765670900231130083717464971356001787675096957464481511677649750923670790032453101307469054375327017375214611975533270224790659109764260422680661981260974640135417851710095842044619187633490517836574140542916094816186394418107368905934471259448053766944662006758067443795835793002406338530403997167191504587867022937689965924436861591984095660454813238255954616633239262894692708758420688937001651023346166773148972008037381505097809550674485703989187306729765342790202036515763763714861661446067449420416568480266967568567113885531467562713623118267041105564312001510083900055107521410495735885302177121409626498614461874141190016129705749500878216857224773896897689666042722554960491322725236536505850373288313582386079391667936694171359658786589411720811913132176640701689925880390243915059074191769134070973225939202507821625525024588892459783558110607828154236553841257497482252169691854476327680103942522764883115999816604310969292269985561659938789893214172217961396464626099895029364121443204248571580102767450408725319889780858881831294679221811002740752668728063351287059975527786220533051513524075781398657051315520299396938340187338995997917290882407516783096675816459742150197371747029175438134689881732570682196883877989741438758665636482454621595598939984070668697630937677905675345744156784537765382563104803613734193666525239911906417691941605411267354197616754030641370618511048256546886892056762506171529090933830088856837218257715072343140703025356251670670836669490493628712746460657694990837830761738482701326290380754423728694415978927599475331983606518058138109540680019475189931909190153826742210014177674964803468837120280545634793373717117696414629764875681484521114403542884795752235141462462988954301594388224934161182133187894007384807022272734476941422121271229597679757427380663885972870572505974461400856262192114673995712282167555337887432022760814788908151336817689636673647815435829927349339318241462849908314032108345618636863750473930013058657148912387131316077555037142922843070710829248830212305774814473849463506167087408869928473880570015841115417444995386569991279438155960262198218687175565436401732111472586769668572772632154585196226528523736208482695354596317047179343226133589176207413375120068406834887261829883474840424910014995202958020548399345191317884991818714327015961517490274988157764766857313438109641231388051204732087983742781764085497579779061160713759813084273131360642096590782032311062428524236377825249514028497798594914729058819443044411705404819030072279371567263779543664275548593511962963973393441441011347349856122310219484411479566629038207289145418389809091634699577292740959497859806073227404499529675850249811379693741333288157496751438902274101400932244884980851886300914380364517322645424728297695674437856680166671608532125247369817903463987584190488767728844004318280398181158918028798216575499133307630688635072462826645855511513984148758840313159998932587399511425179882439948519696988137616995993948496857894862099103935635394035709848658495809852988831358412206271081072373297904196719261424732399947883415580094878740254537650136537830167998833620041273177608434021407974847464916729787695382868647543571239382066588393761689684972987682775876849640152588426246560887536284633261394411899405373459103866744502721634322633022191184939038485298828690472848235434468259864568030214039937837740248878016557461783922950034155058961644705209158051259673336266404328222205405522254173272323397902748966783850152545006744151988830444474781800524169236191786521618848431797546661034734031177936814913480678491027057888817566181447890473487059825614705219397428953676405854206704966693652646808188293782683645240746456246279008060561872109381174265554552563036944015333788851590219001338612197708754611036984972492815642030132926928201696077804438939639089313967539632865228732845415757662958478260421097024069801166620374192552685854420751498333586154500058209229446240810553664800486333633815051670948799403401169762594343009858686014415390237339733305230385192953148492603611461870614667181790459944488729629849198413111117960723713474740400460431250668474223091406751816819678692318216442409456380593724051794777219666383051032652467878212706665068246419747284567519705118339768214455419852101690939400422103556713510255536051253151092263617224997371247252233129128180892886198091588049596034272135134912565442107477957022806439751142078208050254395480922043798594840430908333132107951128475516979354236955803156521546588032722595921057130790956118807616194698178544122921742794420550757695639198361118177667915019042381394909947209442862579281865336445369604354249530870568027936889475653328372913860834249362270328088402807197311192994684988213164167185155524550168396728425871200811872411219781652323674704229141122388929540530883028291836336357640273250755770788011535687556753800983183586507678731512043467424060537370500751128619559312181533731069760460171528100086927062293807934846193924261556738623300700530153502005783372168772611922862099919853005078491158843137351892418514430944609454076601674925409892148400130731009806868415859172368158299410478994391366800569892846312935875868234552682287240015029760871775836397509130494270896974870491481808371598338144495337795359224399400716265931009888946828884207469489702663660278697758671061680064145946271658093189445522649255370137807999632256230676496513666639792216506329492374856525268024189254765652205965691940211331666018804304030880295893925473366530913712641904194859467403258415773333458252653366759423274496641343480615023750630726977648979403422552907841151891191848554261811116916440929230350202464353450306356419818661154960444471713867883520746118584678215424143403198608936018954633924191839971947039193205673354658499313403565045151011576594794306373240536168722828438957035629019271956267885040784364539788495670413947425625461410787253247877685821693523931578645562686170550680222294572140196111620019277301057879492622742944834491408586789618949612011723556527316126132990486360436244817471733744153598312371153008079598293684363316612809454563348558503056997328678224008835853185010143365195503269594848766361678263916631497738594368695812532425110632806312348410070867212038517579304151312849840219709458351792670492619807493703831905098917438124326073289916497425845159172444981513280980082038409690117518943247449985071932067957546433273133018155719135068730191632472854356440221577773324093691847483023935215051475859156963737382426961034556259376768887752199491293374008342292541090446116431839138924083030323761905972846165402004253970253583975977782350324964774682240038213158536656098512780025848667032463013362436852545623865157550344047681304496970773633170502711362293880342499735104455376620195186147251128375517234320707845670701514929290994396713221594207536529916059112653356402802132113244772616171039222601767683628554292502064161138639218680683832174827265535912126148263303057450835883135784667956483979654849469420537059864795726655169324902014372922090726823246579370270906749963884650694586428091832653075357215565729514358767541742419404546591478732110351719887759311189049423195982570483551929184217788944933640472068866317585791002876581031458557616986854384412701086174855518327145206829547330085407084637831750608781702143597009627969521589190698334990150656396037579160958639226563379038367691967639147907864131546772541955813041449408963972397019093605718265711521077010245570597024667070665984833737636062506294526744440220518086317043006671151380449355315632529949638898606139218847522514485406787325179058689638747309618876398785436901693852400166619374759513867202746422022850344955377170487220958346693023681498102285566490418232681360044514529579373273039393755057264746830078568676270500177343574309557600227028546887301093669691999394579526196100877831364674954292197145618830413468634753472864454592302091107517882630217570119813999853443202727270089840456105284386440364797721728739029899214542966952182572576463273610056880289713739530029578288483317737567252720896340205740758268402660921178958537464507804130877485738070644874497312752109692899829494676980843842628968926613254127105850787151586783065883648701359524086582318252410598138977228577019533113764489368378921152264882055727589081724322838062564426970228632382893820653099736202936267739557620830560848640480287589003751533452390785978691756864897119165251713936899745769835740266787113810041524277548110306466098887562963024242512362658795532214710873759222692312351490512161044900016835179001683048435562170443167941064260304751053854093869088749474892626132389393144662942276419793958117706575695789229477069294935517499271251820170892565375351115190921129869801459195343047526125014512422781429901264563322523881692272317191163809195969340174775476468687045349706635490189586554476418446019240354194558293274302779694470019684101805904341933274423585247483691801888923692949646462275817762648848466663800556915674153775994651455630482446505526903861923411794423997259810484896702352837033726969294971367320639815666406470821650324995619817547514319039141851025924980882507413367242116488186763267603875255004041542474392774917258379113628050678745805652774553912681111284140267419622551165775101092675841927663030669936704659555189765054698119968919444506046740052407379029857065531517171777201382714289793532049663268908002973271579465327705620510845433238686807566811581703185625853231654655182054409180369234870473500800013567776617859720131403219719247093276737845930230212608411298189581149395558151591588278891557633234400112567250111275648040110225493398967790371940978604601597992161284497234050653754923462866059807835804368427565358397255067024938706468746040169205265505423559697380309903752173814820740915396253458835952092737348348191222715396071429719644415847809024656965800870801115656904094963966612872277195185577314380767275135525580669290533704725474351347880016716912629354682013870783970678057522906754292349936879863946876383679765574856447361357504538159595790784400440657571472593413120509570461411883878025095949444292558153189362519996716294327488322429551591822813908248418122997907124518978584936226921873095563428504844724080249946148105982965589964627162615371134131024223165684184446261331615496363051876240521646146165980527033724308034383924394691005637147606870295972541928221474826244900710101565872573428983151617509276930196561730389241135329423767900477210763874918978450507835374450858370703713195473190309491588948184878337256749413413972950713827693106883632202566739325573545317662374735688617295655415194793383390310662466634073343544497524602425136124944791865973781945809884162635650272911131471118375309191695800540675324575533218435231436313842107325304677115314040835377205851840672040466982709586069658924936490310768831862433717986235584639774892612745136682610003167791551465706425634285670987327569204530691177595657473117735145675720963206729068654900246349583500196933704759271859411660743443116258098394089080588670843321736745921953833640853662164257578771262910799372548126244309387742518821343348498009731663540095196608372089164638310740759001498327448138823754666487345879550498639021918191979320490100178598781867059265043116436650632499319462673489148248313273359660333856137026662816871826176002900013565784650207279974845348486340957043581833117927677314165195386529034290960474610531651612513308077031113247797629872398741175139783509081782783421273037604209772612243598049957027049346283360442746023265531955839229803402368720867846475519225239407360430544789217996291008249575234512550128515128411986458696558625884820285379078693435046897487003274300112047818514931433414604098162846569071187389578468492007864840133903774813209319697166731578918491708314488920125008414771735308881886847479455927225453283553463889877039618190916478788883617060198657147310022205017833433931527071983679091777394019820760190101016386330704504638786552037028141069939074972432946718474379466333951715738660008211481966969776451317012644783913372113365188529781834856139767178321052748708486601342472136976236061001916686504021834890931869507946039553145309272760270267051938238706381506457073129609862980534702767956811223248418311112381779176564061080999279494603163277925516386273194765261087269486452857062083090476331426710125661206312978470813737975158249355751225639746048500984905450058194572705116518270762746467631237712843380896933728103210762076146449378372955393084961631158825992283163599182090999644594650639020774162992948362643989160619263510057428789708777288920592459626372516786502392497155112288329966964488848557669412897142890133253643414068960959033548841822508369678759896425960287866456427983595341187517834902678182307208107626257606352980348064416772834431365109568787374228952430005489309814893852982641053838932268044024606750026573527850073696440574509750586301405589426528764513510222668746187849062140644647277965029120319237976932974974297768745916000344747195931710837714633994251321122838575443241454842420270889004235007556055871122045677839878766294856525682858640418213955553824230518100210274975636665105921681266225714886118510886303406470962071720720883448504477599187061101784439039045487153481226497657482726140983323372301701305689712904474260997715187515148113781049291368294830282072042356699389839966684344976437369924564501391607205072655568121328593138973292677533876018774897071027842559418280103784913618784405230833516689691667697753807340133703213447811420154836788286264046654672848339906588271303680600947891683781212226011755440961331956431224501649344223729448638073789396656112854093005133489639555077514808015004260595977970418627826114759339477549968185653717582078696189231839798807015304265348926884605697928249451833733634155153660959036700062521446953710699275005931421021042658323143084572947852844172659165116133339102573596470848721596662370506916571650758951724436317408109086989617312971941325364580340423280773819921082822922741294362081514809183243383282350735920409966405894876287795548921669992384467658591622713572867644452881865719469771022164968052910660517130973266266258000500945663135216843260403539308312264494612836025864329187120478819242968326832011958038543752205847595411075344640644773950047918067918397983805168580563158593561320227891427505331721238286624495096444590600038339896124986571483323319953101698312065126713289898259931968355571858739744071248315226835436092706205034397515778188785408930648536955236125294618089236290346700171772580258254114140833471205671484289606212882830433139526015227833947269294256757386750940369872929546901654313695880706959187106426728510427861328375644654851597733992802463395788321769833496173290502627009640973857303503722832206456651756372055105873905806935234393660203584736651297118370740580316139006472472132815020081653960773708247540123280638456041667634874467308367200681935598484803747434440583241340744470591726701683455752827635309625737594426264814567997512361984627590049047223975090910543110943865737341663430497289928819124745531820020007633580742743762328385144266661326266752372246311175807508803936851448653017440859347883781232050414265262501518917790530684271176907742857019593305967099666754597582334706208463628567306060565733740564717596981087804856372310102416784201325702570762517000470089146887451200609907120629392688815504775518238476559595061122882583561361091346880915722459888045615099639535323538637226663907483421821663533287056579793833190366334675524426227129050135035241685222096267401342028606102001219188937878387729194547052835232395510605549318932328709933720215300415640525296979335243131999163051718015412114069380832500539457128576023598444823014199085766063854646852206846085617486050937248232495549278281887651009295294091344077633836387883381471788064896190656730132873971573170617143372059257918204101691494926139799685561427883302531657646409690493294758157067057423545167222523297115548228781702021106245580046888014125522193636910123473779986591590539748563570533293144274728875049960221194495279568637629351825016944484408130611232433597034746429052618417265961948869524829787881776505212554232095235279117900756788700111667334503654106568198997041913924849906475408752492166620854588897846814036046483284229046427528999344601348068941320725378387097077201306147191576216523921767581265584887906005510345225549129220737916172335077735963030509395523403378358821881870580362666133235949751627771559723765619916971006290890906215637969356016563361699516022197072149045108068300597728546703890244917861691145124401988886592672021853884259705640008907941442140024294207394010526333680563121245041152802265473071398188335592025530166134074975604839303090453064352275394396512743592535644918075098607937695493334475704668244112362423291858505902557222088526081678581311067938993734022853270402583869317525274481669242483529474187520070269696253801263579367532845551287611744834010635075556614271991639487286476598650162558086839507881363306081908788185408668919889615659751176463772417934399181601547652705933278642769791667804826477848492842860955510596769123084886489061330553448086714393856324529980928640217116969020097102369774815003111113020030395945794639477135294830146863473869729966762361783308790102039388634939910935612099642309910972354817035174381567760352370365147399549155030134049234085187731707379698451098900523100015011049734948525897022724103067156204802863835278009379230789336286156294876465788682367339647307594598288553016750679073445534239534270303920666289306018293308028780200545072874453065041583565888391451586759506728926080138981672418399378662415737432073542984537900475449209312088576830141965049149162368566480703587263733909556439459117242723607267479489963423364828739569581911583965444825692583392170857776468305400134613365482479520463931671386891059006809203332412447213320333467115283574999830850833542839324071377887409585633597288514258508766149305605428617066465732752446334469516100149990205468009536084527101926499890021492755923369483818496844197299273900119377607548033068199131258201198058035316256442365268696919092321558615853329405251694223885359223729899110296504199456382387039462025014582613914369588320570136469447945883709603206418351786698845465696141111959829356341280406079440765309429998405183127105867889169138837214162522076400381551101450481000114281237931989935876775938136645869213267426047881858186101653460577092901297899401816682952788225596576874370653801332295182652404839927714691807236204575579721807906046428083617089323081538183965501419936521644823087663461092135189553541321803716266286534733254220231061753193504362463037968433531978885991539721626306785395047371700678698414861565214359566085385674439028477052475940098637348253690586923600595320160517617563078456820943686681441301453761362222805852315557298243044261923635082610220730004373472253039665061087554312346802123680328124335908722683410851310398670325013685117422558881394978575098413782750249060243826737387866441113683384006775232449849311791735317872052545247873963696385325463957778205506386078191013097606205036973597597815594588256371925421722193017856849249774598656081082542089831532131667519413060154044058549703070978685561595119906651223615349307484488556415354159829919215669871616888931145840712511384730370042236193346978136002573915592349548095277477430514712369358386849735620492032138741750704218626142750605576410312177062357352294119144651450176512393594712161342788709519867194037542338405853083983223253833175732184529354901886195979415726164893802581888054300107912099745859572997284963873801388621086714283984831635281832325613989101044498097618932049576695929994479615161170285282410436026159767480208008159039931177088069689496724597262679167501709243865035141096969674251675755263112580995319267617429598384090959736034552538722375376746953302193061995592177223455079410397416459321591314066713752491287486957030849477653786267640985473235039202506294394159512180730865105377681485757837774235214018581505240888665488629972212788825474940094302824987963093709017376606246330250653959743451617976843069140554789861226040463237781442603525551686456287738593197582929058392115180958516280545260395646065213521949717871490426102753727268354865249132120106895086685874922805499043192833399095629356661386674103197866762923397448914743589121746028987855535489779867062715391285734235814391341389378905068123240496944094910495328032629405511091002802463577672511393808243099021867023138727475441489234345120663578167312031018105203391905058882784608330695672731477967045447464079595141233194258878975009289846893637883840318955523828006232646466010572519857371184132102508087376058516361060989225911378804059861248576913978270686848798659218426951980638178668722297071920365798676904126094961866780226629959478118135255892991774780065664786898238340895932635028378604223813409489785137709841275156338706456841701704301176610689231175492272114001116833699579166722492690762912687907007187486070997047599624998583703033120787261533809480924399133842204982418127011866444812633613933152693480537223215378275065908180617474632216999799151107998340708072022058977036420889650136670770137247327748841894402108572215251801103807694830188571339254654290762518738043773485297523763703743567251867370826529227791109664879619404907083062257127619449080395469387338102072182227050444175492464183692222128519430591552544672347696655389287560472160469436149030001755226548748566221806164277942951704235531160345002249292377796603624118062784293000476290131124225986160981353578682248062547004098439917823583001223744373257591916511089252401211472387777308219813734253976115077200310642702495258470713522992691926123308199807545324922578638567245947240794102150580368252138741050893875100045267366254996767818122917801315605641033914936157845060753243948443037161216124289030220367376448436410496598363733407909677308927924276298713203952070530918235913996900570522977481324260050225078420194766393612983197534944776659572814968018770855198939924528644714463946348930947153713868785896663143475492565383708828934669316987518775980453944345524889408600568826317112225803296792632049829566242815400345122815650069283739242571584447691335747470619479640711754274528362485317723754034043730757328906507235743810458069730808451366743357608790385807858949713966256198363688292028822160454256741774111849438174184222114415364109387209823566312728956825974095935584901662753237452807828662671398938160527969174273049526773054577845180129424487961403476567798846371893060372670508244492416328719331048509397727307270887836040075985048801677560734322182382476650753247219589016892203753411970997405928171103016349649421082438761782664141458722220296387214473240542129553974009015178688186135976584567065474842599645280133482816758296053627972293442854883746847190965268949805673248277629145964462557079055945372812277827649158622075674462071783794044119968711929696825681168322180400776073799721234683667491051431415917165123860859308100724788581607446734305365967900360102088116486113966020382373555133664272023455362770679936432314232078007548369417447954032604828640604372788101086490441969951874264370409728512592778082168111264110411903229211118788791249661559518163137472397924460370967765351534408010068035215672550996138750157828016900613408762790828641174683732128839001204155713510982923226622862137767121453173114599510360270943167339589111501277167299577114021892924082098117711381627887217560828771856376082330476784297424284485579866973012509144931347722552666976868146740565141885371455712507691187243232973705786635749232106690469096109417615543424934353628817129132892473682792427198793522073741568791446275541555978380050219371946964858014731112450243836497353653910296999720820443662074873952952035471250645904615993723403371821295464012152881928184909931608909591913849761373786930933412158778505915187256793622326949096540119707130089766504909176055514862215847977097051159080207440658958798871349498981197726672542587202968274422094613061075993857697342800167462892141680788604468536334756653665835356831731350351584660946220655498648851099147176108541703694104406689658519480623777386560599032394631857327595589470870197985041775887297020161555930908057502226421256978941114970298754967307095302588279234262858981954102823499050242805482515120104954474299428080240771952759178490734801530141911087921893635447831202683970392007307791605301985985336236198686226365341642363707826915931178558247041708455428440214115844929105176217819460934670854155418929332448109026252145194881657194631357209605515826180521479577527774585103532117760040711071755888637934046599514914646544482806680462981888478774607383602158084941968368927800937309626323898069966797807210063331750754939599404184318838457331995544384235402447279206166263661168306136856046409211796364308380606539794855230373643104505495463467469275950075373716461488358111469228305559769471256085845447490231784666993274485057091819261926383151500591731089834751231753159273378979595456408549854445283922431155933268027304941844603516945920848445314419429332120153747222964254928413325129254918237330595065638539396613639842652551325234987677107753228970270559231831637219373891383855471687756442388428753050273249829722759231815014619639209982322619485648526804997713180352323914650997365040076017258806330432613453414723654781467145850100308582028338378092046457930245543706757434738655236442094053211852248183003529215576849783314713765668852721466324906266411634110671423266689858151571161478179620998721100475131164287059307020602297911794661650118042437021846221233653252085989190846247696774410039663525153317207325167878183415955676939965918253042148769737677020188722798508567213908231441380033960055551600095187589526231088816689630129886425705094708357296091810983047026369104479942367322848446285374182427060393957926626145881279631094341693277918537876634444646815865664764965785428794282624758220906344973997113450761887069195997777219101009259765487597647590117201852700549149886670826806124256939704134739056818975365308354756866624938056166624257618436247160368829087192695229805431905020025207064623232117414708785951831004752334293488830344717652072781836554107842018671757258300854464879386867180032113411875236376613599716906686771624449934805385559534245519325784963576511332837385712526308682027483443119313144461287240377472781918764158953717631164536988530461047372520385197923382221849931151948917333136232792703084381733817640115396436720037386708010843523086301988990743811547232572284336794301947232376771838625739766506848217645424349736436399945826572322555422103938514927141951904279754755568823864486157387764615207545016254917118211365550817377858255469903239746524336062203095249696938875677291959584968524572737908579647936517337581009410945079694362536924819059687909110163451193071038198811528583088319768860926636989778449267223349354286036150301883866548877759249047032861768630699507030217514119904834661161885590019556123262249695932279651726259712730666482692753375724580381629709085028492760179219869194192403670484717401734500398495518538759302110009205706061993017226605436716558192755686296279103631092458194652276659364462991819765326238916605338643126585217502746380721905256434488747103358579511577372785031781019690855693930153814561425910972348189189809129922837426722341560486905937297239680342613770175022555296336620175473350910981946805584213063300736708921132211520695524291861817842189685207069943538089046900341074923683844931999903998760846348368579366781768608586950206767301921189249855618720586685200284223422762823870911667575255103053991881845411279386568800218345592225478019264589223435520667226882781994616886664240939333207076633509296846959750652068590407226401849672397322383741271163565858879419167712403465260847013532681663880299037748338622800122491678636355903027196475223495581402059576517975412183351216470874100310763532345476466006917068589040143720940605233176096447201927052763395919078275978600548148110746011479422351950953751452975877786834437796062631248679640002296262873025032482696983823592700797182210174491222034761924420567666914034056714852871777857751189660538817937499027567068541203197017865637790525341716647503341209134327782549128858440097300573396119459928547530232921017405055667679622333702240625661239218962809334799539515129508844043929101447800945386181168556536912563700286143484565858245259630027043081618794748258860076697120467984727818450544896139140241704339396624836355853735812895756651911375712827502120687150571385016705720961735013563888369541479159577361480261701917356131567049939696606641175389781343297471719790677826199580855625158765960548606135220494915815992635698291937155312289323620024376953023063406151300337305230855553639544652308730806219125946517425179687742296039875895806631939674533410780724329540281487712238073594253698598704122419786710280754860145029948525067609416746812587738196806018111760112928773606187035420840486484274547232436589994284846733633179665829179242406469990102940049184655456895228274937747408870587159665872260606391530589934067861019907408453844654903367617668827794432033335023191812653437449536393809293128234518205715443892810759128914569862046426598481096871942627613253703547572582755561329761788267504502039977955628415780975112826329868119530791405020814094566344374056769168234437310141945481996187764597978001961037393430516808029326116215524225636300159384856957783304657724626394198864170450773427225988288329395009182299587662646456260498607717007875477516458587988002282408852035690245258818715325643841239122079828120141011898770519558587638530013512259981534779946077658640665965802651291408582029812739567359417903716303388850090170757263828437751493761895224949109157249005681686580578255267323744548065337863226462033079532194482017659254984823886027529670119937164013273248678529601995584729687577260405419704064080184301194138919185971305884633471191244479033889040407170610859512759592062720583265493668863853911578704278174203516906248711596690789561454873827600044479860302386916312200368893648198578665967289485043927054164858927441101953869651045010737122772428183179446972230641800403559202386848140790118989688230832378616692049292846686823852129599357837624538328156637759363789473944159598974553184372454544085875080685619514784202819314637384055999819551111456451044956765120373062745640288340975285649097020238309240464482219109423289819841669705196609255545088108424439417523772086907446073588869962443963684112324907633652414552700737723414861296221672676128943073270721321173664824444841231721048814844222487371347749031633016046005439501776019083981146996318583561334869368432343017973828038848668457504514020316068475903323263533157173441642179475171639009122730265327948282462220073132764966824326909695928603932449346118985757768812378174469899544999946476766413926352192537429368086138193891804904276866920672248278099974101398581792187377231486852013009445215660803783893857716125707513251348168025856909894846996123662520692194358611065536026340411572310461735124823585592076043631981921501932943674317428848725589946076174952673154003062191164650446459739198620899734476358797448768466542948173270373767307469770795600752878641424949728755335164235083729775394453141147369582590431461294137393664705390848344789557832091670894448499135188409046115163857660614374721821310663670582448078783246254852978794681252399870020505830066846478526500141911479852278713614787425533686179869191030987540579273239612857808092346514588046056150119704148870676405965874257663143325289705207718842642655810165984616013763114985861521007337115440371032200214966687662517431117072691524450091735492210316918774835420108408631845165752200996686236541747098126794414753354890154250220695248086410241917962714638247363844992469045029122831730006310479744614867515788360680315277755756497247658566059888546251385191878378976193479239169998390519682326751992859290192096900398410720586203246199420465999690291414347093514496203702375813678010176760779931265329480998273096623229502298804886459212995705814315929130704256497673263600034428263091789466281733819655097928293850795439054858545699117136801332007346289810293722852424886265987740143006933496642972884966062849084957801902487391651750373949560042600658095629949375624606321640999874504440382726870282054446027570544240673059388663987410740094626657855685862790848534288778790946326972499142493812639124564364987550383123333999477132975313070905516778221204804589427861024531056150715060005960778250767736951537535526564107259769819565015350712365012541346005006917448372729256985431785336169052004369924234805440819991756424870460793987994513523677903697737852991258477282590357427951314921454293956281789724093923359514752184157979719670957520720070614177519227122551206595966798212714344907261787397627639406596996397034495629139067209516993504342755814689782150610318472172099622618942919687414175784899076051049135059350046744801809275093782920443507654500286308463829915726751707039060740365751806676088356643829490537010881122555120361225568568593988955170275273313687319805142964924456236830047783272705050759181589126652273271025300233635597809161947081429357720495001387051206640333659973370057059551287386960194339315903592704944895723998837575094427473186246219290164712818933844843499516077291747794274476580338265217690983630922112247807165270537367602254437460596198662220382738034991115516722433730143239313048528635042296921182569889731274655572629560239203298541855893573903378880998950405145538186578149167015690517930740575950723865174310703651191398956892099304072886888102056918609740555585042530587267681444204112443120171079261317137593795988446305409049205797544332847288073847276066491875958284528293864080201592570824937950176957781623112811541719875406186637624127216193164252617579207020214106748391324515249488574768339142363122359833430779954824740938141222423061006939072041597276432092100741448168562464571509928128168582045849152986710178498439921677177694515162808022663174161039543033210656294210292501123453104203644587726910632048225695906485851414660105726481191728733189866236260117741676369131077539181844579448837989819637786521106391054413935646867155225897175690706514291313908809459259200173418057765238412338900036186296043228885958578350861041819972985610068050334909445087900495864229849299266521826026420105836352279436631796794528006403782863755415585694321008527810077830689514381325370475403978040864725601483382862804309614929938379928562397926851882254347689210454823094700735544271640472847148424425349406962680112411127713276394718900900252654034000745243458641282057774586545399471564652015966688272628531475549830817259140768235380806374764832028875854229248282197273295198759713881876712609935238446003477657174561707638366548320165181763602829127487968654916662390195011211095744467575858044499835497786211518897823286487428193751765403900594407643115765995501835107868290609961129755207581505915852087836205659120631072972361608143507326428032955068341652232346195983889980270093009664022875268918500774042880008755938689002303334724893709027218931585474681215179873309451923062939938320396694468124690501044142526305407451718238570754199706023749003358837857469337297822014188914495755584448702610334867029938372468237209876708246779511025091319547301055597691245408647585333513087169214463231054992571127059255850387578327426796181884508114053968298285468965899020779869719772443584367723804169057240316294646201233417990359836612353403285194093571714813481111417594346193997632816424927477087857295137883753356980441355089046591931877188107575258663971319044087970600656668658418586095590199879669559299100538668807169370375902373598002336654645355976169929958477407293731960345345812802594239556797439678437498012766245009785284517830853079581828133853839075700746252092293655382168666694191778813923582296947467407185868190286108782926074348721823218299193746472563694652346178156499469774976881063663739820804372904560003207890690354579744493619631827654431031787736582276965792535754291826806397579349076456346823205080231596728366124632707142734390282552663443355749773768613424907186661718278869531933851084206207059666531913611474435493366398039969173646141309206991813015695424155096995742111930534400258050400049001716889352107207443660803283831470470527654426617182970852627108314280521548708423668989971391447867651771082148119916153715587928311482981905472257427998513122172060155090571442849356314918919437391822666235438046408964372323582146140495556788084555297518477774218596171305208445467099786088506207477179073288005071111118427588550570326600682082997395864797785913630553523504645803802639729592525263374807434720916205719311907144753811105962699153205956228789265085403870287431258051339391641768204947015794591607699991010913603859832647779409174064573854160270843695721964607960529741739951847412019775232050625074172089496175847742062981984440309010200112155513835674643939993072853526413301202431176027602669979951087033552081551215296901019620948982364073098956488423489382741784258527096404233062550784924605385490860857756700806067517269565309953554955873947967239943265389828695449497502180213266498885086627322635627713565254359972434880479234990455272963700349155942592813249778170281763530936519124282982387712726718265573350369298949256440993371916538536980210780630211858317830907495427742007474649554795389093589653123711421105171434915068139321123442549529872789142235200101593743945423966567934727781772354907399663884463778722058989553745998339437536479184205874226374964717630507073775542772147441026889313867302537029705041843746267181300893841948512278120533907316265481837305447101441853334051767374480433635548761006513797210017922147687214826700421588291218745162634859542979113218668626078389791292037957495644349879283806641251092393300396244646796267592156945349268195933117895356154492799101075900643400249167799463722742298660579989748018252012229853051488738142491802959352821803123448361083928486437472922388570885021699377837037531226131030778469349936183468067699105320781426109480201269940248117640681879305275672875278976078891474179558104844787043362810507057494532958570416497951690456599134752695184273371526519821485085488692586061791394695721980297399298151442364076783874228423142701024020137701597050903903477111709378047418048896921048948550057217052253639397753738017573624335406671461302201027020246273411566334310154661850692055475921902226687013874451481432920696292984352675745178548354921875594975445079649398444887633284878844332945760202808374465137875065016571320512449542692542450947983307276712204819487747286631733424119423988140204871802151788968874357681760279344945219005834418200024603817245649017152565057562493037517487710120807845358669847027407949896579882037287736795031907556354165434996218550200779776848269727246130471398171345001392212188944644780721623365196228453780191860549791601218531281681367904482177417089015632925428641338165166631429118691841348199487172478971632845556665122073348860644477896908597318456263550112648710944406109675140105008445435353896928544148567199749417716979129445799529060730847459532681626813346195067756073794996450089520344924002500804057597831049668810536556962083484754301985081141582020821702752068286261256121302761459394827923105898874767121477881675975107645885459218777003090826859385792212433730479307104443112357166551176499764333623953398936455725326296956780879808611644140097266386945700118843703289712944217599257823097298727521880986474432136776169248704618357347796452597303308681997420324285703417897786276115507394089227262155267535185160655761538388855652366794623719678145129329151301983554813234246197520841050746759717044540305875072400905420822223126550885865500611881839487289140419050965339327695046347770648700694716325439697886070998827568336722733226971792225276196871828161060252169563327574397904065425551069102775183204701415811380327702790198785054371152356680812392627498766869520400086994639943783793925170666752887075095047327765601635650291809519908345963215711445202783735533715112595390388234688241221070506405205009531239225333174884226665589395329709522460275786900264530602660504467901769106818355279522908027587134647259129748433133629646929289110185374244100453693333627508408139696361761068836046530942108567814656195736029614224819675493759922648974231074070797338350421497704283952455191715498390513538980563302308906360939123477093296774145506016871628658752916122033563920007676835878357035413644666854006961442050147700832928595990771355305104638696499130988359372948767551347219659204949285039228386100962078396331084387404345002192308949149433885057545630136910191474604777443102928765342599195870311680783254406936299014591855336649699461873201004687521603523603762659458001464309821812006836413145795871956917728036338735395297558534983595647576482340049811070085375206708162617763672189149106190978117765976615566857049847347389981030910759679886287758860995689413670788101107897787959434780720788545046168795154351050032039901617043870053890208357112582549158289316709475438520335574862300174788258043377498876263126321285051506718712681148427636408902510735198679093694140023454458877621303784583347980965437508748603936154959572991780722442827538413712063847428827271451120814059639596729224078072530033510479792313492526537695167679090414306083984689814413934225752043581729403765995858249705202252201027189220197711792897989033567041439338056911292505813397609465728185178608727560336894287154162368745727136681995488055640626850208184417244318336846466424743372361286187056222975973812138164216895694622583268157200946038416661123382023474669733044054180225204612370405291817309317209253294541059973873533921248343866464331493548052615639840924773332807291093393446920248096093005408536189087764298468996817902754710318162189153848739322807351320612759817271309490605242495033008991887564354676858258314853901936474324139199230870368669033313585220880383067148901713735047201127639557473933258094815234327501864194841138878646414169861077527187394913991058475574084366072891720780226262282567771546636330202680172163230658957806810833274832969055497601227753141624585225022362921179622986511068964036860913897612379173332720165815450312200285342436236157672542022864892378931037313078023253687659376764993736726668727387887523028751199455052719928368431847144662308917041624251382263404900770853758546915985774464998342731406306276323891051673730673808795214224878149114799480595185855337428466829545804716431362800484531176029147394205067437355654764744708146411825040467457358695737948551645565597389398963093468535097276633489067295089360191332291993661894686542750339267877586803833309228679703530431057599190367726910407358066846354071495055248122796778322761233359848594761288583234724723510116738004925596296776251744695797109329164537143787974714586623064404200137326493336158687681531152652061496574612190043840980770007372514284332072539014915305002814024540935468250125687619958607354037030013017745257857699534593175585960616658663216009569076220877433622940997437290970676408440090000848402447807130458155789835748502531672632668377461784082719394683256827697803332217227095789446463616564864615150575232178519348207667669742412975909868547965799523690342390650671038620116354369249468816713152494621493232300263869581531066033558974569544693368862612861038958851447747126110799061972729306961460143741456058645758477234678472859033966514048319774551391956008087645684165541766566859548509599952059197028708320647698712294778771856508146923659482316159480580252980423572775555225540991198762667975176575399994447751520110424076213517190671297540523262287121039856379985563064878477315024233198335228380638113409176527299328820831686766392418469550573041920053790512236895579272270217510091855237914514326761989037055596581753942373486449984737372507676487888709360373069454147774755717706413969448552252024945066533239086715834973330775746016680103506377645349174256887074555419436258272198505995274702168545314680906188129566266629060017626434242218397652380769494399469337394913066170555856284173703791283612777818573317914063694279538035584888323157097364886128347830332234299807801137715985876839528764261794217398500752119364470925387503484137879941488477494340852344431510591222945381275950734398142269293683262047563538244550512381465787785472260523420515038748187060663880215522282226473935771745191619573303342864277886063446507488602407036670970195214362244885450807897996957551570184176619502223747203804084415145454956216465859258277742339186372761894882052912416654479848942678713881746061581064853253787354510796878966136898784442106150530195184227748124334643535930752518964409454286214831600118853057527139167671377913800264094537740318069116918321630252181475247489056233095364397960584621175921524375475824648674575378486470589452262186331107867916000663963026881586822340367247712343111225193405045851229542114761827333013434283642891149010248311935604498712644448088230789787682988731783862671767527308736764121649523280673438126411429230561361082849628443695702243179204618589486461049483280921777446636596538889921786945569435916614767012153643696382818308244860737198247753111709725436512452291991512211592242394787681934422982225126026709262702916677554971004149442099927324831075048347018384991528431133097160961252036529440801774864954728771896854623825752157047667241288873678441962616052808835375439469089518941739879570473265961319868411684949990616293402692804246660025318665045825904383937127277327841073048875353808259778584901309099620703582200792195860268376695049350461799335623377867091920314087720726315899696957866119091241159203819466122321140686328126359992292214611640504956270470964976229945120048776420636876645061519940827290824056778045975755283018923422405016904215352730754465437735356229148270678226968700834971780044309526780089835150785436461449405114133735396893090094791334896107321583334604810942893877730406863356120476688648977141311588551841682608375401796516945341711155150659059734518198503107301059410896780062058723112378404905227508907229844443632631942803079946492964185707745671860557620702732993173717593265943288713229138065036278626943458245801593462244040689991716296882603277032750280482556677192085031282754850715965745238912846649345752866236753848342486530114746438188929257162922264892257832358263667243118099113875026681309955640422325415674548541150361965913867343157822292692266428516503688349693873099831834667313011704437769225335713959371331199835221890390232119216472686227056276199265611833422361964026373272384495232869906220242898857394069435499900198161758741257664066301696851453339864729813473727420641500312901410839438021345825172537395749326242691365033478474204411108368221454992571212170207523692570822869570367485882282769180277997645376868041338275874667750513008198892910383136649357217955217966841817605898877497715540996670045492648981142481172156047680158501842046351334679556171323593944643810311461823932322097881698249714767259568523230895165624395191943759553324058204014972029668418861659797686337068171893993615499550769510422342814688443085117982885072547550273393673726995514332689300158933343187663327944145132878329741209019311925338489710325501610913348825605523973799571678002755942459013637960819009668865775472796665778712080130536713079868000474445350211457563084480071036993401134993808449682034219491622847014868936516433976521551548126654702653257759462610133743991107495969823968268863119500703062165425701886490298339164518970283411004844319819298838167422228137136735108013130028482670225325459588197384306744073196013350909309243887706349897584761403572618040760764306296674558504846492987393187234129056185969900332410088091509873659060941708134273595995271916822316861904784320191958715946363477253229655078747884324309399786898816558689333331265438422736854241694826232904549495100132264831326444258835838715512474589598400200717726488718729376600757513787128499978435358036224298102076902521471253758313036850553414236093684527300260677624661144553639696926811225649587537890737044272434834189821097890602215880297326865139320857171824852387675820584738803708186632477140689896158590023139326605051981488581431763313863431318557661783098831362528404351480175351379456760859712801573657257133073161685535187061149202794263307970490478073844785475472893431010075849466620041270647256638114694157917148513132721932286651970648041100454194122706719081701041436185211320312066326392617830076919297183888202591525719142291950546869100896702348988342954380580355004464932985833777314125395819823557217519531187542100226118128170229154864837404717325656512605889819859565466941224066302101814724569613009510462335777384069414494366871744210424650025033928620962709568799942476234301027459537723524416355242452037060443859194647549696413307156727901181550688972279063028470026879113504756168323323796139573480366832803516729789749254059321225993991072872478397574248136138565517578367989248714376665488414346603501365605889712282239836315920426107522618309219266905544936258789536230491090301981212133513563628088065650032768311206509821574554161949031344138466052519080559832987054505903873027479146062145567705406870126925165891093685149990786044022928035591564599937191558198942895479596131094618218631254338506819342600469328866379557755065735718900697980881946982771469430999512722659903805579435706182734802482166751298964236093051508548413993808826823321820653195102202744213241395676554143650575236521785840396046781620439992161537252556022619025571288707427835234709684446725538934919628918866802044459919404420904902932724146308073710645059215459809231672157637098349371142948105798376104242520817913279596795831145144218077939601199523484925059555394579229467101843157883228901163556696517081416405909134867004731537418065132538951661274166570049080720520206059786043099106684060177178364057436906705510079151231750191495657257048214368579176087907524882547982924242531590474519165081762878122190241179433980251817282370035341872310390290777314156656129077524322483869307259208467921337515420615557613257204666843335266880873047809881636587019518861004616042544253958993866466597822036030343311819692693782063014017947108429784612041257866623297851116097438280597559666479571808414330748552054291848856992852472988794790032802541587424457073284624639053074001974714127515775299749087150666415498833676132996777265218948741249070979209500209633161889983200066540092057170331027996713909185519133685783363026155396346786891916556698253088236935852676623648932008805490914322686919323178426672289952331064285031457995143590583114302868245394721590057344887392579569161958399180272972643365724741276692634214355477858003215120880522915914020941586722476272333147319540645011900154426631483885320663380913733601737819816686439499357399880498152736744507960182786649491203251217446070597402017404347839873627870912317788836458949400829261711036745474945468651891358726680280064659049036493623766352666468236684765136574380458272133916030469452549549420978217895720513249281868164864347470437267987842383408346123038884183693580463419450615701407694142078801997537208807805987862368354961240613113413282356871663495989784153632510441410023424548737894524333840447607444595522784278228576860691248590194589078179388557934566646206595935933547504568263081995358643013406515428588578679228306147070231897328390029745817008519683516661509418814379977061008012878572044709455285498415787338630640569730340131999933639037592144159108156864763042319690618389521323377536972477399953990529747606039204549235353569221799772534374912992824475087561144373000097842344395553597758736792694572030522994838330738004076697624211737692356151638866797157364252063251036991733651590134093115437350677185706283748247188787714551852787571156394969260197437818587622764729634351077793858088445715522762801523417950949019864693294861003941589762605147503712532194246576463814199972050375132197858403353426568989407729434494568367435069287296077480347233889501182764757187865791789369694024692010962181306020692471749105793746888987766132764232230882867289027377207014126634672280033448897650686167437313526627195641595129222326121050849631243314818669108383350789396317363853283280831011859409461734768070393450013617942922064785507896675202969431368077796276731264204551439131673799708227509657494262224678515046592690395947517160217202850340892965525511466812186372549291995535598723705654430179279151057698528137746457125606647527590002916361426678082575694042869229543713970402286488526337731208090107644379151153069686870058913569236633774213367155802600412037808900677438831311763020645254923571462497428014031018991365677324083783740108940663437985397355250923512062043656173396971111142697019605607566196685009773798082391289474045561387341149752920454116764357928545218975953655745466684906798097239352095315465807225952252395477422085033901806208498116396619775614122519986090088795106013529006452409816122119606538246855521102739880916333211450580984633288795286095611865789593491217555422054834160931460735712308567910948401323989375096479652604001780720496360599851428517393144439925508237962933062154473449716267975915912090006058962654816208525206915738981787965750923887438524495032214868312850302882613184009625667500688434062371058644682910114055463988868015994730011527045839224989069876053711368858447474650290154961846559140699855081519679366683184912827243739549304210307362056084106059643012623729556042438700113705476201438461464938964534966747804047099637887765388682752820837049526740645616376165381895295547727033275303995994224274722986822756683603542033256089331562318078792469661015100927644642604283774511724672571170021824582351962218380116926312257146440518490940487972621653397301259357707610683537591011954888226432352502958318604599457032679826136183364534327489226025046120592039286880575092703088305347587636826407601332330130261708415235874153307017034704097217034861426639432400759773270840930736911535897611742859443335651705886105823987730937909906142007876974481867810173545919486446050152000033744164508433860371569454645179154928722513640372958135139194267148176251620319362413546480701719247078785532721033321258167373834305415342672725322947916831120867709997429656272874525886941823506944840760525133157031420046812600070975561613016352950663461521796594938149561060687151093498809732432272346111294840810833944702007691723548165290775609530243944261369926696674660003195475799461270447806682602095449863348025583789056899770648192112943622673672379136324507117727433681948227857769589549201612939461934176824138495435523310008214546365541619241920664055326500301807652847407744010623480757382061881597685602832179396724443509630302649093460907602598659780159671180841336306769802711156936824427473239615547686654845639672860288678494549396250567574600599523712063632368401973060789618349027831004968303007486576105134269444124852643224661258709265625683620737842997351820509165094783178089562912494096427047619441930316976188972050083656863885514325206705261476254486485850100819479951132952814075920794856360134917373338095432842929905068748933862228196620012198817493804787120861954533870409387376562652220872015556520012068789296357813344837862779971992371265578335660323969399217936795738625939705441937060752962087557177450054357102205703222384724625313244858944624200690109305201382644385938087586816471209669778867144811069091028659279203660691749324971322566426012627796547652244124434450532325978635789800327084384770606787906132626860007126590145848330391439681416820977503490303402245658833420957488542277624511089452325545452522802175932606204782208755016561112536103472076658224790430999633741679273430179065972536187325447820921469309069331466278920027734572708617895771701496580866555060681520686166617248895063662280587878570289749309036031062130929934759365953579951911305842260299274713351154714563803552214318716093232910842152270757031343766073823103531787204446078376167387666089283930556772743022153306317219921856184612068056213427196912322769620257747554547922332817110427305469877681062434788098610352336432658434171794160433558150460137196205663927503711290635136431730488260101318354435578711623237046917016702809406882402451099016010633093286024940478597895949754242437188577158354502117182507651518200929940540939678416502431111915238100853746670498984191651013503802679400908431775539944773619993402583664254336083327913392553398231373234276909389316327588319327617567166418243408027264181118565757794751280977548283691423336335349636769853360549901674929227583174172696204896018437396961758283883612065891348738168392185399567221946213240688860109106836452031674417374233402358328421952246063056667890716982223927058075048772372284951421254402728989737573285553932466927870929317740076967044382155718606884980457701718128346670790068088156963798990356696582331600350134119211598493404284331059524996393949018595274267774033492183718007362175486714413019667709492907100950746545166697767437277781882483469140794163408601753379767790136905211225932604904993481473972768495786069383509201935604459232313621542043641740492342676609419106763708119021467428306983872035925541220551538781529375484499693419364341293599301707186754472698031544352860675368069435878919899118800871230810164332618851914324725662090831608730591804566241316216013801624506669292977291462515606922864776380713221586287856400604584832720862621003412914910918078601062617916770685906277379199995109510978588217956274396960078401493715308059692158032743359851095919708367357750723546673900899033525881499407496760283294976619521460427582626456464034648809828675035383769473802590673254121054649264694424930230894437973599992350193683407266269388765593517148071346303792035754300849411887754067990592181460429381708525789330689479398781585951396416569295399224544769837262394521418611594902890664184150854963817999446495635530095370285153939074579728119756365414570407046240720416805885615559532446603243304520458114067479918446970455431182975643114523687588185760915667930933197276557532547018689353312203011856313190651799302614674042609865756031899842268675248016687789781659355183036855649912233312544065229971581709387031581104252632202634384935008558046824223488836969617360555056840814085325481692275627488271965860382669939111517882023153754646332290724495633498634571855137072871530167769733088667061981267536307325118565581782811033675362204265195946734340721774308183741072330002439769907382148014716858326491347925347685535250191165351474046795832481086689452340559149674334907314785424870318630170703830288670124005295295399971867450856197874323340230715657491071596004821637548648405155499378231062431789639001251343959388341218287753175807879817787926635173247338049166770938542607862357711546164432551393268871853743600771680850521730085434451321535146079148631618622074328316306720489119675876660817791993862993785874553242013904299246294149387039773931862400313317337995841633748137970299526646358454815487284656976826017408128570568434640550328265698558782407931221905461468440812555762432873036687937691326534826704956583363076490958320678383956302465236492221269339969020844247440914789823354870076155770976557731953365418391844959911538917951446221271451271381929752923241269103283293916991071919306926800323076932174820316739332990621348002227623547253164654998367423638970927978941553604226527290828025763831864009522679417839633485997153921571119812266456941326413799430065282953779456335961421458825092766854793629443888254805490138820266701946396230923300136551079084171549188500398747132050541051999080499806329225856113423382476859838397608344544281424864015981835111078934755850298652822366637295640249308775612752993876069707904532009261356718797945246636633725534039967738451296727353903538983800211325789156369056848077890779012019609703033557847708921914019888290225329282804540295390673765778568670315480140933599921813510719343853826674383391086617789501975583257450084170914424168766341487960596800129220260550819670679585174473868032045132066092641615319031925109124122967961610917659632901638370068028975703434337399958045713408485521493295394213074255205950046752472158143879788360770782326936831919406643990292349811206153721586713021567001329784662368068260965870235328485285669051141320172723530507453138995552069405611520774000510843941102542189520152922539450044993282631657141911394941848062572387801470951105541119296948542705631227019780440766535555807456007310528907726885539463126740031927674183963905236909985293002315035821631429502703427836035663294997802053080786799415599078300069229490634293593505217186358407945614780726230755836732911287742820921182147602191228678547779705861108211973480057607560186698617072777289889448306225476589307997453369047962010258350393178066569826242974824426572838206789839695003213214664367500554281318030384517120932903334422589230540430322161625134822673490330422730564217314822894647006209137270375682896344322309451005654625756962450173253324989666311358073273087564284953811581039144761181910779870520972936606869833873747842676570492018849517826734806615392670064357305819513381598492536770295852394930118272096513529106767985551908227804110602916186498373175504285672366602717579499802701398806341411033372364263674296697265712656389674684332973275015425983905555345839139459430388873033283831475520607687334396631599344858455129679898338549792704248025342907375180090596232505947072554311766745372726310501774410334856402874550080370316132541515541642595909946072324395315597860683657362908529797157586831212659718877942656373248399653497421838295890004833851989502785989851776424608089026123358805049128054743852038998556410757538884065448563030296309870107956708820817269238478134970577112185037763609741369779604757846977615385209952249496241111082859064487985587771736332816571916557338205343126050413431147385317752640550256220601226108516621472004856691101416315092996642364413837735289429313141912364663329097316404729921873614692552315037107890874117798550362026977097154675176817899286322127011919763098470886064698471543860922727169242808413511874583153801339529828043877826836378917392318639731930993180355577101701406020105699214211194647052280947620519385315822948698098328117682907500060190838793872751941472331282005274493248672586799686139691353462169846306036791946346607354675095295534274107931171614972266997813177282903466458761665333504878396775498060248158093213541234867336880034388254861829727776473020354226964884637597672615881056383294711293724569839263956599759704538976575305695757529244318281493226500104819334284537962899059484506397987847483737589768987899065124518816310210231023548706096608117069713520963526198272806621644143608664711223479493195685697328355741772030885519265509974159457059863318402241265619677984808446805512579750742111357905986445897427007878033168005359713689541057083632746933862742382475602243499626902285462261874336767568816073446760665083125550179827498714932177009241881485618130691115450261277205854408005317469755775874575618030505464037181588799865806573339948330973831804475290134815251410120742744946360813872283062973795951271205484167600052514068407310314456931473248899187504738825140328658360608099438623876018801012444500678021949439643440314196289951067471265620146305997599799211579150864774988465070798973027057380192509998741978666729744708833644128177731957541011599946334156427832620821098349712691859763801299482963314708754789487348099343356018221956216059069340636659448551578442940478694457940897954649848938530524626822460944310756192137968458639241103255090756587351529108585813782098743580893097925029261845872288984924732541692232777480736589234002501392975881692915204334105275785800160802817306980417311543352998878466833831497933030047912069345914513005809977428238146206335743627397610468203325006645670452363906301952893372838262341533171613878925153818038336532738472027543608397404505863807750127459240651805549566818595057766183483187358593304135487867447870709163597449427024196592465887069297689950958335937491056338796086363658415056490331304239402125793101195155815815802492227549761428407068867556180839372196893379286452001749780122343742090132692707226236208471813815171680299123554821408239574827992619817110468579246873426422817955792422559749267118362232405910375592536963275027031178096083781954606052679265951828205058214407562764816562009587704853348341966442178324410097129445119217288648677002073959838854774444612872627250587662357918866482072660575707457928325030218564703437490138355958651154163788077092951107722131721812003263777475982787318473082888833274527911935324221124011733031662263753453378029775381827967065383513677692485247450163615309380648825962860922314555734432706794004976233692241627080114093302861612946896794227653155792475007811147719630236240407308326032072078229951771327393672838424282467714374393372745709344518329690816150990138997742637591807264411099088269179201776306790176994611767096115729816760678723493706584113428065847660244125324638237711539509456449843412300953044019155276973319382310979230170415210901821480651640919044338658751786272133657354488425802021417303754297902663042898607285881384328237292443022571719412969232651251101056439776063029777934158165349519765651198169113547365519676881591256824333629920326675576287898962203530597456384324224252838467140987808956781441824974725059052534703354549993547146874584553662919517090443833526583574038507415558416400252011079868655397929603977742564617639940236262072173458187955350797161611414846635338681612678596604334796717853915774008416171523601234814633648059894555401015383780215350504833111487908800056624523216586978748953632470029996890227561424346023349483056654548701118566056717599121455520771736533303270454403092498602061303705408370698617209878366650636969519802757847048818235464191431682880248315051173036465717175118210073461739639772497688591144739508035466005896486980632806732765027158759408289017193569570008446264652502502199124124361932292845484700026267497485450586121097590720868628707707826434977418554636213015604347680991709549726984866536922184457834500782706302937593504256734011799012843856191617502848437767132731718981218773417412634210372935058711496916557554507608353195890825238964786670848787103517179342399133722606643731437049899361172145981680741310114826466955934408333344113433396703481791864063922115952322893033791462588435946453722043135661926966383391729019620294548640575179518855817596644419487389301711401490690952981682367870987051208751748372704858305078941037732541533317947915507158854178899087891183089570337302284729910658105141792512023417200937880564510190638956789508805027541849641432021668415059316092088529434174780547986571040367398714812603747860888441303396926019398031587126220802396776364076456868577809474716913591969718858937544322145654480168258985069934485827713470555780968248465064838617442836769233311657411137420903450822579997911105805593858939636127822189795289916382184552431300778347844191340403184572094590476115354347786752277793839930614438918219483901375779800247667140279706073413025732646899422696592651963208524639257967086991812942541271422217611338266491312974352774400894905024386450784922389769834389990284889310241405271676755703009686958051943152357785099857109127543092701801519248764321941415390207375160541271935535973621036500904349907369658070134760247526400408546845184151341449045521406268989043960315707350313201843130006465677034860243687766231832263513876102830123042320288244409966914222642113427024042598217169148150251174426374300457077704576031010043222966406771093953916268842434705487541335231340666665607802645534901512038388643855177370432309559780025337128024315377133832088788932673293831033887896487675609858070694380230752094616660440224070914172014975625543702485314119819249578094392222773741735224071807060962913795139238387461843321058870258603915517304354168730256508545993696433593218356955613114271199082411825233666858872008508024478342748558561406766944597087124108997839638057241222627606298761141786402200558678949797852207976918496233014081183367647342996753634502767349233508093026623244049835313420124847549724297715001920709674975663390085426677966844638161032459614305322649167827873271363892782942983141424923601892074822811780493644541107694976657502257213209733625233386974624144237227608375023953763328708536494034853298871381321967276687275901708896489458909869943108724727592466989872314002855464378820551909139760448343892951344958161006390950135946809997233682375957653565505186639484083134854684194487239842456600262900164461224409023942614982338542048095802137260545582606837001096646391694030990160447810395967601010196584679857083458079082997592378984425292110641506430941715695004352244144849127599988451260643603659387578597624234667853937210319077310052474743586738291797977715394764005094577587402996981649690199594193311495288305056718158305239719739915404505880924497449342948974465820790823815559998956774954370012325229180358675353971063198675220311796414560222987241504992393879421883016737866163588506999258304969540483780421908449754215694856972397772512531693313508069298304094132988273412509937178339801570391261235808723208226934957392308653024746694499973999613665421190003377234852533882514171542025457705867727668299075124791038244163278746502608314182587890976504894167512023296532911005090868539689209631246682371153782330903697269407941593852083066920522338111783504225133334706409981132874460533751848099187919808184470572755912103227704484069264335689009254317931998573111114213292863079862176260999955226957952138540412641239407347960487906180489705547115301358270410956615282338625622884730854268932774963620018675478176571716039482102771880390121862052415350877506350315093755994767997758018548163119422691100396507604389256762257135914722212933241295541944146797808743330330680892452444603490254296117611558437178522206913252150345844203265175226307395672369304911211856698708887385050379495275602919355307484128752012966683223206908904394860817725136798668377477098614817181302435782412540040843035800977502619917318383304690956061697570383717202967431646752827603186984009588258784665602871606285242645172283390040391251780681816987190743194120962662229176872125824261812696181751730366572229595419823171711480730792365110716164506592801372395346530314515006639961434302080796631883975586997275983190005439373609582139307614404293074292070948443181760542931311507924053631610840578575492834771421708462782042493103284512589733567035113175411450782083392314576448911684421569659041447363729069242193583091291213228811977382694520994186398042714605637224879912279321380463818491359274119433317113229199650239033281137514590259055791649355499360604143993038780492301579505322081848158377002076339173631781355169926934660647363053574543730581653012705931611313959567216868979445777835919089980478249471077818208740126104432506406064578254301443062460149465064910157001528231074601082064136280453298483309562781533513253303168809882549122238989483740926280730039570032203612568373933081156203871742085520773890469969966640872861666208192921156303176652016103975520400016566220486060007878229115927605947704176692833460806739785878753928585112802839580824305226702730562755853135753984143757235331890111363554555706096001170681254276731497616934030662504901606342318984052094981753162773806818967822672628461751739507113896288865490221816444142402719434926016478728572916796099296011887634528215660458938205453182357422328495437831347407513753296277747612433315070142105715208637187792169761336110471022972207621120313147992676700405043855254597207196669920666650721318677333472128371901261438860647741585807797532097263234522558257294924180872046517846173312492554945609052585225206994476025518407500597389096510896679072765110559469850061357399555654942570287737865468473138514673722617429279922656881386588478316198926500471438167571231425096807266101508263600633851917770477229372350847512709724013463671150366819674677781732593975441824764879670777712217957612291149729029245645251778925975223621492160444822912704405558746998577146620554157718647001444410482592522426633847606304252879166343955104576284513520282237293492891607882423498890447641610945136552632142410706630644739296824682766610099709236031459083252643087139364996300448199481706550818304397216122409103166930410607966521556320890829796303843086018418788486682153308962669139945748324444675634047005878203212634625657953839644442015509692202482566857601925021453710113211653363582463553304634979764348763012610249126736646710256101031373709513394448456715540734081175564843318472864125402220280498093585945761307298264282954851603086750301127137000312004044452936506666070463510881556719749028549818823131732478189586391588697109387357374046418054012805759354152930791244096871163013887150037061250706918689025048353968244636898997661831192355759478573501303013353743483187502515220796955929897227756628705701133957306809098822757365757504197143469799675654910740207676919792150889483926181893346101127363261962774597482383383589503654517388483756347936400332981710449909417587347319973931218013681128368879363126392155663422103144659478567510497070040262030255946074166727577115745270322052027529776689056930006640313165977388971259944046908545375035853679115081973317917636676800083262962910985994854950192621322343628663589817326648518302985414349388563707453286990173597433106466878996924585958135125311589754075719506609357623402916883845143713607367332907042217738239081939248117966110128821637801605473837869599367465707470498625632154788978990869765168467052615165681818561554660976060932456087303179693229565032212663160109647798964491396533611411459637368991149929717457616042450743512309170617223901086524050556470999563796653464579819038715610615641182901602913350114288494182250082650273964710776771280641530801146228449836227065902719893997220254013580784809915425494333227765813721470723900487476401857724706094842683221831642501941056667771889369284513288518677094546323381815649564179733308178063236345620819102619220580700529316906764074918264989264923900281930963849666261086947944713379746578715440797638105884867018269027180216652376927756373263476302793931276142790213315333949110097916384596114470041425720725256776535538424746701259709622086505858287726051392973107436817773899729545322717449174536072308257989955878205399641856037254425710553940365229562811936498445045832294711225954725172094730356179705729123424597009957058204945715857510377952501532796197997096587494250028226919527954333279678849266676347252996994766860631193195800731436809469838703862233148226376553098873619360407931702587014654823449481775301760486050933434993779571774152626139184017507935835011058641011132857754836762912040525925753715829019879308140943602218419101036175683666514472884135124621852424233277608496236889121158229103237647551702475191675543811498371484792388879213866398575386434208838469539097655587059385339651903251328063601889948866832283790909340779716327020571288203000406045929128364774968179798638317210060762659374077895554598488556845960346258874709624454142820469583347472033826216684436300843213686958955706152802816960395007537280303087480271830457887673024535850695704143117062563641715407823100322024555315858594166218264744713220686447241100466223436483711882430304867865957821638780260627356899767620892243534743741023937686254354709191876915017499221396063671432364735307663516292722060096906471496565125591521094553864353615779441724685076555149417734542455611762404598656764059230352834422925989299706687572612458917802527658916545494905496820891520051331657990029933148066307197308117180072648960971546853631173784515410837970726831812679798630332834361599794219752004948590581128487767700819729909213358996453927221640238251170693168376708371129266709224718497751734927556239233026470146413913407795857620181258665727272714612620414587785054535074587404037766925547415652431669765099935135025830890096068308891614056213708514599804452436820222482678637395527277311901502358098523558447675753655711768193095211653441672930008029673830941165099763731809480213514988354696004542514829058104910001170684973946776101993234518595069601941087546831173449675075606092729122194979369103632055661735111941452146134871068590151230843212400828262797636801207507025232573507968758693878895984455460622938834879682890816082751442771906704510302945270598170674810409510927057988685183166255767267945240203796143853121885660631924160611962788690819432854570019801216432682234392395665616505203538770676416976713701440595752070714023663531051485609047358165295544664888218497897987914106912703338484932350264636415298065204061677137815107967278434408727731069220529979297830027941122772696469183048427426878899719416623425280611546019299308444684972109435963497705272066297065048938133838297101463241983004441333847342224152389285158650017030674124340558634163682382102659798171001373085119980038393592414431506512355888974534837278029209163320353362857048560987529543001747706956603848776595591959300532703269389085054832573479783175128342967423111552064887359612049622316543854868047616758739457483096471364853313972321891345814046839713702356226789758150527682115393804687960580972460800737227468188700355575281612793410269583223747898108662410920380170107297180579096157380588886336509290048469449258391658426515239329720239096751570703561677867687694504830886694103571193198534501725754753794874872228709007166582436429407579515617225523572321191314710012845609030955599347698188120636550604690063194339419110617594454842263876979031667285839900017289505763800837475107536508605301405059518417930881762252303376272862670849435504446317901197129886904715304963803752760637799089806229296127781103361067598275427191722935322879520008398713554160180204507150295450087993570693835350507664635974842027617646526537419768698864312115140857580071119173126271378585379635608633130901213030893648403191286128024154870578627844067637590249892553756777411658202530543760632644315068629487787765005381009862618372534726225318861761992761412333128586856490467049481669524383323662246977118434764447407683106134803964977114686642108522873348736520778295926518635607953600137920677956330564398291587267961635742844137322129814942742780709408407446391900277604924064140617279051599077309755791209717480308610614196582359424318907807813380706841538816348398446190363580296756558108744122003900946233737331547834400926772532961635397837608309495254722872623327820117125847207662942544376953787461410628265058806518583455537840076024545710554985243742940390483938172019044419593487480873595239590470928012899284761419001789965187849201335995493067354019335497243108174099715011695671669483680275875465767905532490723426696568751214426543698841608980449925366247001820318676087797337331337605557141886885041627873267004603969954622175199159295643397814259653004258921503233961981955484891179756451757111087617962846097236988236254438669622102859598338542053586613028437635086518406966979332632742793009416067534134092639476473884914193965539886928783977473165967301804801545866107221542025044966050213480957078729070896311366062589781387031723855458001298304497759324248793582564283058761135377631493504474255494839449757736917029561551444927845636171563432069140668119274778560481175273085206309962549581886197681698248888281629873532178717190392736656541819714094520927352771282532209384794961596504255846632801006735229442706261236509545731840842789893375446293341756634537162115316915658468880946701347258853293326863863910033145541990928574781703505524868477089082108085768078095646635351888295323380941746658564063969847594649867302183189766170520573687376700499749890654949296822113875136977700280974636605930226986118581942124490646129553240015360212046236093948240853017721079047024260497226518666215500272445050192315631220528441725606005852980510567099291297981455811845656409617171091211753208025396768826925689433400779275918898618341718137656904441749578985057696488888051442989264400413738029848006065955308801808353738882683524711216502480705611125446266614926556238205232081218020559585214532891836131252502597533421467748379591119835734090621143525133744960618494009522138460967477809389045158727497237611213288863095793108768176447602752220931989569049875759383048460930606085269607073336482391239549208310280112599421906466823049428266473198720162983586605163986181307317267175322305389701381849565237870635286625499649334932437257122335958716343233256343975930705352832831858158192997183029920293455774641497695239831705108501932148635453345968229864779192449709828698716983489022394634836352005290998939740639791828676424002500070000484011811414765627582059967798671246414440267454612875328359479350021035657566111944320986293829585987667188557086517640736462393346942566309467459220863256744076885574606391190934754043113871015910987543318534716843361996424459042906671006146467466527992167165486314848243527438518161017009039751006410596076843835914078490959662175929930719660009729507199228230592653326701410273759507171784667198769477536128667103379865936097544128649049352522694546950381823657938787234236374547356431062529464480100970295165711549983452518825571223240701335375664296827539747538732508420646917539197984615090104364644326292843194914005334852850307419916436119279979874455802506069354488078553121787243033278678506763648772264615156163166893008465222667602520519607257572562250712973012913600761993657524536385131154508863918179512089833737281149520669633617942642839355449625873887984378200710860049428444663449153528496703432463806541422815173473279645487030231134223280738053355430235355451860810446477878433707890316609877351893977358200960813177680157193663964445254213433091290515060376431413881467977363357076732945355656233747168639451337541368031036918405710235789451912090972627245948600120517698624949541787127554817897097297770127093933580880930741303265082224986514253956543170898038981412250857257532829649454179311001662708362182097051672999583463614180943866452177441415667602475918465323053864428174932413085015351069432567915800317596699604626777178811621714592299959539236848049958993719798364990216901208116925279809063067825781160234612479702129272064490633401344413064221225079705829535081407963062299294819916433516304007811719920765650683705837131820243063262654060542243801857617282135720407385579236288579625056383438495902768469880676826449461771739961252987622418075938301742922490350550218720455709297960202815622790549091739393280490741973425619436111598168815160516391955820588154268038700266034748216661768605775301602412586784332974554685917990348336562067789291931711164702164676786554167153827275436154253434093752403680444725230988577745779507096374560323092026021374109586762016387651249396940467223890919882988800879988522814984803047405395688333157729130566305229003634302029405133949705129512839809818811745121092926901096995501093936660590157880719913970215778477453111536491656940284878692340895718066141470744095069063645627770561882814707947137526475824962967406147786214835235920154322992818003271838592522258437151785013689881897543227566907707124148692088383422264367553070183894722573858938531603287083245176920220060816447407161496070133949837579865391764087748032988684608771846049349016373152364952351967228025974895576978803665532752019473605973685789823670051810393395761357522867442143104256446095709555599655596913488168927415047021911252695838499374343197626094212406018234723283940377904385768043033141035168634251942071982448496626624987471276400848924121277414812416862833768429450191755677842345163019358492044673305935499238898082058518403456657743430141770498493323875714532130584550196231523976075925040815943676598862303462079904467885124206609705267707014266542131559684583799858899539765256817326802344605757463898661538846232189482297408409065489027715114311145338104859462153245344509049468128777635123996475632737067404119658688810447229957006020288633207517985539175465669736331313209977059524020489998951833759379837967149517886064614114023896671710478957661271701661029370321129182891660143907981864846053931267656813508930078209763100823327522017788753455940725297102311863715649584030003448859474763645839070835730496398042395146100329175605966535355962863062371784454119706877463452854422334591784286957709162193068284627369667447773891733530441251237106922833014569099828821516912701735059221601396099050311806882676291314282704760433528681449797051460272702705202324328671153998076185687782685067337898150374231392652608099058725219423759290295350958358852314463695809943582421106844392840415058639385539581866332712672709540866057532032433390597612520767457599028613429639214969129958482904548925839739112355168534622331379299834540832271374687735553945180739930894824185784634376592141096923157674221279479687565721470922630467731656677016390931995498854916450343344433656942556911133351803639026845020954973119934486236960831177430454754811504828007894394729760905882039668875275860582805672552163232527808012953277270659927754137892583612898227381845647665063560883780038546900076329505267272922813486640523751943583771545615149044091038452607241281429528731557632543010706228114599620825474589168725357306363329503045387933594499596662337425993362437968634647967429835872515979560507660666271874010948596341871604617530038188808735886545008389943991545807620137461104926798348901714810606351326765385534631003156073123276090458954734149594189109036072128563527744858480043859586725634698690169375639438742601703084037175516390195541179827178907991124245919617326082547974112549649164435897949592377174756750931951260265319843005284342112188079608809133105809520134884854273218445264143177475084236421050216088381681398966807815796777751516400818812653769847794000660595487446240202624428660679565462267075591099219929414109269094564306651025612065257233933139511999192646720887810501424092492876029799955953788263164935793788337021066213823541318640123944248213446928931892989310859598909654395554731988496795021850654711390319532245853421939345223735424106648346466859596310427406861183851000346682205366933588259118444394262869278215741652038651394873393321825581916168677854857843875966231535389382954858995045329836603007973662733886540236752988066863306869412571037659343815715252896900774571253824880262373630112731381638917273963156196050657624804230409495586941585113462631430067158689428271563641216055505064086385343572905084398834023628800226490449295040279063381662781874398552416891856914416029237536150377685380549638517429390234909229386021161494584865350422793632123584492000022137484715758523240707915324557328331773434024803274755567406546211569886621449520344315505624278626124813720358498905470250655349767366769787753705972207972653456096503395981663489328838100223516659356663105045424745685325629499928151254648894972221254514441286367613183493842377031710348796139599633799632515357878222332582312468720031415803988376911747080252175664981125045025779755594910209346554718482474518831598335333462396545026705630337318837925173218330985497398151757529544262179171763051400938223063203840587686192250187143873414981370015114576472282882560171429658673555718177990211149642112831493536120677866044617480663683160504735338930684266005357334989401967631997824068799890845648924295632073307962728569877384157071262465759912400319450972647820477331384297181244935902864514247953255072757323691579045992666448315068805339092070424506706010332786169198870651590004819815385080386137955554767646907253850740785050005738439878556131205653697922139594792550333079560903909101742564797333216816436629092059319303629470000132620212164603941674780450440894311543975238515784910555034528286126309517910688787001772917847961504054686200427207686936318947109900491625397534080527339448636580012925424482157109433399822448934752784367340885361750896159117651338984077420448585397872661604354133557144391356210971579509787895041017943346323650603800773041698996764345590753742988988459179817079642768928853640493818659308953553577125179749143584486470758226374023896421573916908054527416879216718302385684118905496895032258348043429833923145916493580467649852549154641784442136510436623213067307980556003819000715218078517927500462549053061243290631278372210376805262389381777908429129592597098081429728753085390570715779324309842867980401795437090304118644670030370241186666797273689669933108201354472769079846019782988453351656661962822762184429101064781662485034097170602229184891176090481850642227129513687686821966230708109935960569962143960027605693991934472432604340114197114877464369176790402582352042176499131763494994953406714052045621411290732017376802940426983084496734379052331344781053411752721951207261287694427209790759868626789257741420839000341590267160596424599007095701628090111087935110097072374263269273625888627544019281313458198594644779665017376693873246753269025695177397728427449473969581160982807202578586498095662892391882766476040719284087615250458451973861922342889098192531784679836906553750539762474982386806016858794768257857239522498034626596294469517506717787439697701101301889848784049222653063683388191933979652491338277221221321855510201017546081571920249256394037153184234887583635898642086803611886180294347084034915284055485531076589225113821828008742874240325945686445397915364447622095137513842726497693635254817417678469596951264213948737753977855547647772804075839748849906531000956338557825525047930463577611713541200664879296046728895638880571181905927709563729624825836442285751977683796182552102654025171586095028790931363533345644090807242265271193776221772571801415310469606894386095954330422564176994764152877886547758534820095876573978207182992294680411249792231941798061801585937960310259792435009830245296727052883939477428567134823698737598700664012258110745334180676330481324767307440204230655110985855827587448216876953695880978899258112149325253899083615004429572567722670473040013979762110117514564636950417102374104739935307506563114833993994512848218147001946445127301262487074709292277281684695589692641839731177014336174608016313197613883817314348199202953518639127756042198859067518847181558084705505677677464514616522681818351294562096403275905310124858811965895693494786750575188413931290183608258376576510067078713076812318182976080109339171280523673400652804291450692124573969247238485370050524223896832273894828782467195141769747223490126747452906572573702010623426407514145011972570382778646009594334969371801394491069573033937810260655693714428423120976700356021346897132622537195757347412551113217321273192608890184330495510568601441227811332804517785992366293496952248957109896688283727088189855767761931198750543912687237140812229469119527378227870031750588783118272403445250676875245684573890069421062225988325002256918608753020552266039405334900758280810920213885931332991011968455139680528413138905867864535561953780920310783558024209799033853572967794834228824042217067088608080439798441887690743377363898790444130611615911833954656399338474733147940382829237881879657357636846051238163063015574349678918632468292627746818684630718178336500317657273992068903990696548909961047760470365282800237692608152846356511763758235015224954634760081289199728822063411626008736672783750063039244521293077721451694785344982237876503255382871409225455120057489740107974046784319086763277550562316679461538977803662201192430871195676519258902991101638226121718514867089995943986215975823962494874661753352955496843330996114846345554131135320128835381540156653491170969582809437525717971553042602318500036084434490422874460746729621758291554641603854063708597217829616193931521524269079314038781620376414109298270268237502088041473291894666192926015503109361325524922168992179350798739577925766153222166763508054614503476510000132320838207439127753876973013936273715377887244720544783198474985232717609163278124362264298636080967785014156497679497859923263704492285396382894780628797806669193215985423626926787261101624908434122222182022558812603032037554397687540747568681317355972195095214320083909796684713659442128365660860130521710572023514829550047863588286079894950421773598930107191369654399339502165238724080413669120214282642608823422479956453873517665887205352540950883933692759208360438466349537694187289407225416292268134940158715388471027051121123282978577434626024537294014988372425283486203112241142139762173242631340008521582038732946231743728310652202018364938504886938823964730664009567186713362274450952443020708798814573179865020301660045819998013904059977944788706168617311533387321807494281109206698181986831743442903693290593937949714979338419061907899069686175756613320692827767548472648941818314900054514887952905140752275397616461643199689367430104330290795431831497904493915909602958394668329165364122178998337576831610841678711789380385033503471598855629780621805637889255811891588290866464448292250170912908354271463929386258487438201008495533116213991164511887123959209137914670928593081581027954763906626419106203422064524960385078083181384185746694985317068353643884994045882918603982361343018367311662199284512816486944814708042504121924063822696748326502320448937702689167781845664181313130968806512802409736754015381500527449966889586143842134843626453790562202401773944579980016461455860350772143623458545249029123094255015605077864905090356276018165043795145579800565795055707121500587713148498788433289100369377074665758260316604997224471439521424317176620565382645843277733446867794188887194729660671445527971847370853142353754964294000271840406357021281237604075397188299308365371937314142596678912130194695195032806107220454683287910888142511418255031291719730302932882634380528693996064392833242027613858066286518256793354529869401244307942219676620657478011143091728980563815023026611568569562956388285896456789896795416931747654172326466321534538331697740466230330416556494235683612910401562546147033419013632568834760135031503114767408173396716804910569203288958497008095110611702108362086664116289306273477857848858673918698007314048787613359990232626385868164685675412058523039348210060816059860314357548934855283883888629815579440473514465993070181173727701546541392138114899446859256611032710878924902744518295495308923246559855489979302921752688149884398633531649120722644104572200843890900798112225935055986698609884717503885857720962398115610580171115862170544223583221116797512341954692754693090811611896222727239551662487619334402085193679782998937910527421261865690602001814004851825272043544652676030751507672617405142893856509388026729354767709491286656485203062720375016331715770835959150866351330667328586047396625602749466592781134540029350495940230388677462168835458791856115968506551959215153588119368924853451699839952734140937783736698725166495511066915229336770641035069144906870327554929644286150368935028674651278035629571669730761726484023373316762114969692156832225683718555620844787702047242842336318438544255827603707481422059372446926011364399849572900182066564424259456727345464193770913130532242608292127725921283357471546128883719901933561719192688734390915048221997235965154784903960906807316173045533935671021600259423626209431286095753156793768985051664525433936977758939395654597966290541972964614722564405207264132986651603842330056903512803041401433491645095914273301996380256159260134222439970444120758188404525572224256467250946234932579995075132835988984343124067890074111862407881168324507190214964144826433191080411667402296174625351979351141903295031154947266458037878519115084111906584730707391828270945224691449082254217221907606678481690727367123297041341337851007515471584984994156499235907525743364660772329285201124212263936144870610107539291423473196730350186852131612304342905335334872236364667257642242158260272868238926514690088761060707532016184762756044043574233463742024147380238663842643545653703434389071458234093777277134467649848053391211291716480352065800551926456561480428523501624075283002429406385351856882183187568608403987753471805373364872634370487076365140229578458506340985387136709328070739485417016909639306860905314328801034996180010125933072675873165948016664164942523526604748458156605142049584443495272870314667001049310032842559691355080598021414734597885699202661269285360033631699214277262746063503718210635538254518119626105253164828177300422070252331100471700422639159103184805319765496912554592387470583166531297847194760860621419270925255411536855568939827963854383133698551148185057811466170213447884046363912091128256403037283982291561650447955777872413976089943306588355200480425797470793979640079993720893824712877840430143573898256860639402202940384697641371306152158623827242248510461949700831627325501979961841613482841872575604737229405198448893265830079445861836082502576801926219383153244545019955610013185905463500374980750195274640345158488806680248820632674852765884947390654091528633642605488014340218197519023499977230089661719998463067193323227723354416605603504639035491238063317345461795354622979304979180268964230380960375181689088095202757839245499957582773172614639806777871031493573768432901328606613850013234770933221039637012211241727961737791918706145226965408352964015963323921948227362275975569895546617440550127846294107593205262850638014640140704776430197257435851548680465774411153222320092916789307066161962761633770505279039393636232604485665941693403702403223789784861212615741219620019188150303689946695635390538299540186011849787557729597552541132586492532841024283153022634513115656952594500158312232568959154117217988705571894672481384521246314573226853810446627707342482834245642477428769747571459463591791910538852173905224553096296521431119961810365907371210729713036546116402967074483585674510643923273532836066020798260384481638297892445302044848953347525779687240553336944639738112870989798768250549635417899535082382046206510363609355743521364590187103064955103154333007644302464691473662140461252058806055869752644691241897370503517839336205019087278228793465731814556699477640603725059582638139409417029567094716120654013643417028529352537984951780038447161165240504509547072063385153554999232587530748423780983277976810417870036155258119024803695470097031230253559731931454766961083930008479947643345408846001005192744080511159552984161741490969812173846945684799941757552687131324824210232830642994654292450598163879062315543315806201577278893280091271457998642747273352591745191722488862426766004290126122001963823792704033723367402556674771898085142934932203102199159320673131751684485093461335652837912916987789360936450432860016813784096572504200256134526865898662369349318116536951488774679914398628817867257307420584831892037506534121937534397552129696567588916032042678866919068311777957533111081101427804533081928878326495435871746752290441808469735091105274793307797736194863862403602965287790898250161162268214622466487519999721236204849789163295634939481871116137923130133392212161179619681245943231007776688067024168810623316589146014225552134672619056378115403300889871910979051899823921512579686189821838318203463780374837897302758330298798977316130813727334953086283019534149199321233101861768298723242059196185190090922436149705404542683712963113422985497745214183292675378984551491676091961064107217821659284484787895027013973822263057717458630404505182281886832412453339170356778189208825677073207816515481818935990465275714255838713923291122475812226695341763631218001099695596932323248128022249819083709406310518125993082814470089781190056543309968463199250188947180261426786613934166077105005948098250444893506152476802757899022022606184088562853199307187332412853454458342249814732672226683657361750066012556925902243913887044310133978133165664410426767163173789997599520324165498254950948978994648035419506685929688299006784670929853961447336664842998044908726634184094316080187555451227692402870024304851707892089279857210124350564664561361484730859234212635661781045929975173451383454997804962479611743354336736188289384639192967123145842797177642521407138348732294491546367766974231655734865049407569349464476506349635034319359925358570888469287354561773620488861864986078409230278245329700428327720366000290411762164815579253264674343961869511614609144036830182375538422036777190399854340051392654242161794447666952303616498629309631253600701971198304831154958380644691436332404865604436546402152150988456378647775526990528748487235843630242563439207387697014539308365334126129365234319160854815897034204371320526245037042251100108762887233692131251249523725080311789520967024826215787250552418601656404060075189081325947903604739799176137856580302122444169861424220380201052296102190740840539056615568707812522676451105065479743452248673678003609503080570455053769935745158963415379031781314898685944032114882476461460914243588994977269116380574503588941810146660846967185292738844505269505796969786979440613420228291572935359150828517020425776637550539070946534420926278689029498187664644753616598887858861901223831439805607797924038455728550291905082820044442388424662255321921193131371534657257810960673330053418496622821818353789571067824986478510870606615861023366482680477426991800269540126261551337640497362133775874634366348387608261000641849493067292589168877069101694575412835069959396907142285355781928743994097755640392925197954230066731128806647413095487204391652351154497668296292209356164005412316283976499163620670791442422265853172979336623173393878042882567125818753576859977473017530174570715497268482005214020138450051412447171716860811795605232672821142018661769889501279329867925816499078478640419823514561600263583194089966484104566362915834445834322689786500700673875724541966629512319589885963938763461230686437821437763726793961956884697280569522158999769407761748498875265873148032712412601630958221160530743227401177162447710213814480291822359860774782674113197502861063457621864788112082023191502040422337032582542349769375312516324022670168014280873194399578698224814869119083580555066786452626163161177922135406422835488588226091190356077471828134326004764589449674221147416162073769393860889545761326174886105661937123794294256317548240088034194196182799762437748631716821115551163149349281952180078562069847823395500690087251013503223868497209559310584544668309809902993945826668047330984852548615020589796005195886265498559896829977314593098603607925266971670079057944625446602373629718628651000989959857661835502427647715523349803736547539083387176960923716409269470087764066486717200009214281282954418196269630936878845797117144452842208067841050766273825687305544819610204039637400201193511060535921725728070415767139784303300640631488466339015476218321695882370944057487364999366191284957648012050638281070236856816098318455803263830901169547703514636807779500614412251868419048801550483290004234044365524321255319573638100578646330310671470325106985384875825523400214268549043377123081262871046797847722820633986275698091646226327606656217649401764126192756374008210997171365679771317095770767954430600913216439421705861365809211568958960992952293143479221169560733019271306322978660266673917539252665053786326798919174656775699360528621584922819531885419404514705274248577716390109749845796269210283732533015463254246544607630028863661677086319027462550152817432225684077844860863992976089650238086643924092410157560130926373423104442361362051061146604916496580590503210629616747311340561266988538148337602169664715858374355461863144325580650007162802738174193803112540810499523083880330838831903173834196290748521987803894291298635496080544205500652109960369931797582862886080105722517126661578225274065107493195810540268438290434355386649052877264836652880632519611633688375655313449000738572031094034807495601574483006497479349753526762739145922521607457861146336214684728806386229712883215428932746392628979387442873951656206475883330402738219206599373150214009805660858526115153737570557247548161680080316589416560147843454280176204564749049540575694894217816807239469998044059953592831909224255678243845641051942103937801772141731209758504736904938111744584001842029225198607232098532119939950170814758223707652780516416474146356232120558636107924606591058578926548759984691171202440929694423073036182657233257597013539350442095781643524195763614589670237783364216875679224914725637707415711569807749493174669127206127764768898721121436317731363851972749627902268605489090388374815174797483000424867783654037289631753367647874841113795208011927287267856078696837157455856417145743850751735515241980202407180315048751288847264558229032906176883416874717634620403573412591320073901432974960969020743884718267812482613631776402154119833340576373473976619230528269827542154899998804388571173703308454698296431515125260908828102867206840360063856118943909570633432304667922588058119621288054492140782407630430759015357049648505501248858604639726570270981706075077433668797083555151881022845969063287754658920646048131436007624649189401894184589921596341104818819297954058512315409501197320512626944608512879231385309104364795579306513807609891562411165860221869097461264690740827844886258843938735720907818327188124167500331597199353187567077978909758475798161255309920140197023034946079250921443494427863011758144727129438853518521136854043676020867614491749183746179976752303581820453634708505662026788778685079516969704571592132770329133575640571638203039146439616683471235622227462744339128461860120470032163653368375454785256785535808837503045343529860009925713048871912806802329182227645089848966084821700091867392664353424037472641151687197477760327951392522252050698184401725591387933301091268844390881314196791548321024719166306835738038279254358260134452683911314020534678157086554630403622878662876642886261452022231422415588283486570052687144819704688218052588456635677960094251296495387302976956523028955415210142584169945463401175117304105396841956073781532033794875028779300582305191558250263002041527775460517405839093210248786568519420921692893802724838991586225117883036947362576526882116775182962621056090426728163373418231383606617326136865991219015539513888968607139459895948978811786569755219288279299931860670628519474783441424304650698083934700743036144302402132111695370618356157460021817259676659857853721915530487640099602817441541579880852178186384768998557424924069346829073274456003171491056095956965408442676788167991693054855938315774428796697984054401595423112696945606788640737212913639942589630362269088109491590241165820942276069059005803342930674028403637568331038960567843086588367160699835537355108303484384561072953511540747053559606484694471196771255245149379465105172550262588521692905504697134309603851531578713392390937137750924088406841552459455444037279425532750618213153988974727853203459518033671485903607873354306310215786678985459954377021441782315148000541905425556443436129492766567285058104684055012223472345374528313926004241951861681531761974472760490407123098282957599264000091880897169691510195877032375725663102512143750830479546834332953527404084136326344826896110051453681975347224797117889692096054784235993895062711950830278468591459588155328465300316903881539826186209210512900515319435398166007252417615129169321176073642856518084655775861454091455958721622532845449416247155288077928823435803871993923993858551429274576649859346566890622650854685251516676750127568038923000472914686591242923917076705619750919984198518282054747939053995135145732830429998580322902606080322366120967949587743237355879446077894387074271122882937082444241682926282336952937485757069196700125672684309059243448678199559558436351555667613933713418882297715749398547226572436782122394531336044054169039068842820520858859863687098327072530967558196536025761528259483091542114735780198340500458699529702052818423373877128349970716768851554434908635744597396209482919880975103436917330428582181473992229234194510180902248431756184189598237304871020477985711017814298688990645870331971515722354228027359453985852831232097174552588770839413732270199705673026932790151252730970340697293374588715295410096698788156212296430091852959185116175677516678745407012512185790652768008157657088266811984704483226980915834680844355529836511553785682368313997508630749066984215567649250936219829147816799645896058871587836672647147568574569310976692461887554964299348010691510077761836084351312265697525553620955628306871770972214932928874620120489155941003959793147144703887358045220722099259142981600480074740007068299520756128855682562497927451061127622197375130110941280117287176930203742455719857589111852899803903235586798247025585450860395415338786524967891305189822065231777065934008877927932435860485687555246151101125212369389455744495881866605978592970359681689002196865935475517073477577526835211623811854882334610920251378094524850281297742247632723713084796257025771217110951786614018878777228893398596228821874389273379035897014714761599399322919252246203465357832073493068696563407172489266649845466098306045718173494850515358454586885233056138714287659031700027644055174274605415557225406630792231162219718748567506882356357505791073945493541564020296716097038474201407143849060930776368916865141451991419573146887282360698082670667676964620888559197558959334651297941398041622792302362436013257692300784885716005288015060357602332637381121784579129007112982515336665159044260403688715882935908837878858359640691268679041589550933836295465863176564206616403631297704320675668577245815886563814118873523281861510020411554504530329355570770201144935240584267362628745143864883581943941458840283179891212719634467689443532509046337842721605128437197773996676167065869624093763176207124248136702742033790221565391130123124185178833524049102752229963780830586030304152081002587601421859959799970768313926333638796359713334718343187049915640722221468223654885352935709997963666066418348595678222687630183625815325649278207429270159557947020467230052117144988652896617829062367102270150610868830631893739680778244793327293623507161476552216114832050037011496104943395447267594236562557707317416556258731314589651628534747953898271812079870598638181391894122094369526806492501733474267834144671101953096293006400068975302348300906872564628600683196494318195187708799429284966657088541312154915695613569222336602258308550318780654812963455576008837709277929770897261084445117121814538912885139121195635235440053036840227904857361945240570152994532883577554936258927306863248356777436513882454070332800883617505326191044278963987033601417289810515486607358279962306229316308506037814961427720031191131010368312794107606380883247106264446470773827851533986416797230836235133972385939487001961834994463081649595296910209956323641711121016536398677907343561669077361453512143495987972914694483217268163296338212458428717886134249709793600425599038374532789096910694224593417500496318512759375369054613958774493635247800227481433845589999021992897784136700984346190977599453563536660962192937102689209486231978057850456591555317379292451627995423826543025054261246605261485188454685442940464064330823491643692294478456697691097860034261902734237786196697013946653861032012807119587758933874885563903932557473263213981464548713576168046005536591455795704482234607067616427502330575230894005434852749376631224407269622914980302405126386860335488183530091663200434532866456260822373784392816719835584240966034644778529430143867798798605751150373649165564400573072393817563103517614634914678610498380158559708634956509697425779541331955792388339392084864063078361396796379964768667807783423725071804964825851529620393041929687052574847873563340389403174831848548484827446466036452291141099681278663221297432710346182716786071571294658682936015616775941260842525578169744028067434094066620321865431147527242761931361864869508906937162699417548603691646252400362210287196062350312885927952363274726762939421899573682965161707882373140382995900039479450831351185759817884356750820454109152807120354974935330066885820445329640204785695409945514128240592335495337952731834520306194429725301135602892883205352602991519892105666326765697780907979207409104558497226559632034246526645922081878351696654266243025368145609059305278020783076945227488273565921624123958495530820794997194694523696628706098126379354438788662758209962958438816482353440591072230298379531378769714790275247880686879287017642723173600272538895452195847317764548281560440421669839229618630830738652953931967090257312349669839570584945090526618626822660390317160775610387378580365357568572127269198421326879149529273035739915163839412767256013455285626423542988263094013793825644695755658171499794019507046731743555001348422261179793931605013380057542734483644321969262681087286097784439745783348768668520041307845734508025239445382204992717190431127757342715597547450950399871063257204316448898427986684115142703577416144981596837489565372501004204975336636626859698596425811659552061175224749970789054123694956073900779061984429289894435600350035400828169664016263309423092498475013153004216736196082553226274715067690309477005269148145426865623594603945305708348010091159029398818808568477212444366865092138398735409575062855723707261267131953290808350492515438149796128043951963693184113550810254217217396346208555259505490116544003700255288514724590534647800471117319612217248859053637028810350225379848626334906538837510169658290650486535031383699185191205703401811642299528693227774187551534672030004602784304478535913908217152837870325621030479630463895190992432971176510782578248121697651870160495456436054842291789729695221691716924370966820462338027800852947944076688127382428987774749835192725886408936925122299293267026127786009682391629996885326030895667099400530121155336287968276187798327071634452001739331704810641243095042279403705413357033832368734381314361983208145750706512077254406234490240977287168837486668644323916392747147847137250768577679435417777482736792770441671361107198428788742060885106753945780571037519711936491692249028152607027651323874853489340502243954240209316316409657077798563010570208606066271315141608124542880345920170418965302372716300009873069618730781920739230061046551360640816480804742713445987760085225506940529172780422475608400647074159504114171754313248383259548091096478174560569755427017793694319505646341427530146182380769345796966699931914430352031331106799129268245912457186838609894430176806765355993152138969555441087515265416286932683914522979360270291191947910749200005042775246292119405789373480794356958626931735695294128865973985366180945364458423749599903119837069974123553154712399773274069427034839237940721029536249650872092506258753105534501784456083465575712702781329045949369312114161260420271444629614773516982554105898317957707867525316591147107076030473009859800563451062449246558168667866474440397046474211210681431910764166515802721524367917925619316867105216465845624626312604661065641133918767903655853958586393225925648031003551846609523990034080793698059793615278462993011829653788577762843913096022142063440104580948555916802637534838504281759179463164790041055822982354193115286045103362297584871967554419637507345853274226140369216599436421951566327889729652984354023224741442363369916811912372156319043469350346418571447872737636919277696922240114977053804929427385126336179593367467452193500750264154246814448466623859144456627778979501568329831577190307962584097766948127170384178497526492561950771393064887411898870730730725816715734191605077485107524971222504377767829126748998886264843187640046834781710309529424639851053553030054054659621593827818448290855519258631166985040740694623234031597118788569302137130468937690296267064127901856993578326083425438246756705071173202179671757571602096799623974079729540081723065012836597802006699190770371911324838208066756235778708413068346435929826834472464004918165395060182647412414040803292808410388624704118309566574245681526655437023029875358982949556151031555157898099060382580967770672397335292686215140556142460356870037141694437587490988192462849151212853531106668885300739777335374098066845936165666214454924928862073376513431318293340109802718036106323729829740428800818234483819626323105502406691065684802724161509008736503377585615569926146955230193101171029186166116632037904672187140032177703858457408670894372529826438423569273895955408305961006673984022579319813680059728470806879499999549184519550542338374130969274261133341182511027535910004672442265964729810928894263366755920396245290814705300039236338149554538364558513899447890442756347554860430298245299547472041000201572598933791613141832615438701771571145412990196003574920275332264429594226264773606695920963549729968655981557168225524362658581486854547543476592782958431388141157257918790293351786863858496399016603563875503266808407488799963681863630667348074701643484087592691155099192585141273607791876941600285828667448749855969978707442021562690114639915724027297730661508387301118891207087409176738627398803001272486393245696738285517655432044037466333290735864875504827045406174476891170635450968583710288472920918072883370964266298016859381626567804846853230270078996106314381216957746712105239359668964399063931964765528880051842115727859017451631404023869323481261846711024754095080374163006917349735835371787966691171382656020997878305853359842225521460773597658307132293052655481914506461385192034497490185383015908097916464647210815451616046400631810169092505029346346665048875508770192929929450183761373497651841431789038211052319607241917355217750397272891972814837882519301835930962371657470460971989457666307371608880388109751762325231329371615896673331967621183664670080936551525863896864323369114251469613639684114607733263913140846939131565137094237133845469549022389706856515097553261017064888305398758097336748211276822532638696508567634661745799797836816015153821159363537439483470210259147093282865986391149593581456631252924266913012983798695422192511137406863276605614158513447983170901600910761290430049894269969757848000650536145956321479475060213225491397726072769399894057974593469010237615227864137363230691490533761705256183812148358669180619064943681081398490772440224442252221931671222727792033797115105624122706508018781008565408809034665037658670520350038034484807728200760534150200405327569764018094211131427503858391002681893541493554193140543282602035163910141687831114096453008184394090834625517865246880372081464403197833053832177684613389966399510424924227343642456455120611924080755439830565050307619874735300484259767783970929839743028769438888993767805363971166878795251579321043876966527868802630967105693759903247866917415842388410904439041301953576421976610096019507928790679756132747805132404970217432252340867044331036964538248457625764887315540582663745583229524466501200085441085077445809499124912914951065876964294104768876406590614563512927009568935972767208506094506157823537676785926742820871183956261248981541642603066725099049645374415366701148780528658209432966967103999890149788180969406007167397722988329343085137960203505954981562460825037047380189025481935454387672948654657232155049229343302664764283802634501081598112850032944548941670108971334057053543611700778824736321026625901393518270139133424086790456948864810412692074342527952332637935546927831999993019235494403569946078615287223964034395784273284298132630905002694310195333778447546003505667524419985827607134282246913471582795274602487805652650437659796189982341376484264648994051935936407896537092665744024670568600897249887514221900462852510350738322731028552473139855105771267619652902878117692725449784874796848562577065535740219630884854479220474696368626104689167490763239689010644533785125142692594060396179712860058538890906035908693870345681830606593713933762406367681603494120546406353746185604305789708371320241310033753501853489158363174360996023542220540889782962522271290404365133307004778203645421592653215222417201360534170615515261961588819475721622745385190045461865307613163934565936034515897317759627343156995495458166342059046224223230211287406176744985834172865448858463843285596431459350251903020163669648739124596004098883200602617946989289708116395478360609165710048513412983666376385724848609639963776976220450126754230070222167642678439928365454910716374126435942375074401811571439869948653303308756138834237219228609531129911449842196232605568504024883213448415230905346932039560229477570952018914386688559417795270994553352909607553664564529951500717852140330113506688898427479850721768094649379213814525659356806544134747096761435021338981170288066636955664993909356713803773890335616068040062219310635744047334872589504887255597122262673232950796625246712660933329419616770853291223971108773598471592422724967354219169752523965416508836967487310111203002904827178489890285949179958627458222846223652765298180771715470172129423681356042889999570691440806563702258303244137631010530483947235256841190276000270365264777367191014051733102984692532420263612033569915254397095063767378627569203595171629071400072182362821859668847289427816346088210531404841411613516156141365894163956669327997407324092985327380361871336153329222843468262975370141521140547820933851356589705136486967959801998501582418521298550481159805469637664892989147115211995453156158716167324195187836656291106883857724960563900863183094169111587794362705328932876293191429024773786026700209741622598930940410040548823186863383491275459047270232734975277123821924647093698140976631399077379022751551837347961704981058126523592600867278162490022264184115119287034578823793178188230691185409346673869567209313453510669784092252327471605923322257892402815981509212888312739428077898309171542692630273466255341240154639911744749267192698378354554273742045397153895504760103790965951886088044152146670488237201253010131697374499874073983520903660604548262994638660103064334423770786963032250415974317661307688662841353112018259391284848401753010759113283153845814390342779437819127117098170950041981708316089935098219345908866573094155661020277241262599063682085391099781197909928971086627591916803084813371546139419788392548856487782864389204109157262009358524229562906457814940501755993256781006919440998412396111272476425842564202339767788354786821058256548341599115671755807481593431388595244623821731917002764563626346315517452735271773099972284555938561805449914225031440931062900780879303953890806078604273743042433158326977826798021089869645965758058734666846456204198823601334676082081348993446217801744492664897528180894382218106811911281855343458030886801474868659253596066656146871768512471938805807228264863029642010459166288714621364998490476791679915162526360831198973436894029590907969530480619182212280503259842213707835236024735941199378722577871555184584507580729476305609804683441756197206188949423746412205990490545549553166545451476081820473834998138484524242760620413504538571688394342327525126135762521546758764323964541987996090537516460040098535243769194108151450544839410469465074051902192397666782169620153081816854656603941153337487073084373956802326965205690188627209139596112567697448892231518802993466443943701624649381345653714370770161989550933727978814232531750440261819159455351584906721061504049533891273174874526444614880719412961899563248334413106756914259441555913728272807595048758935906889477148210128939530072033605743881318273126252667151242547742369452557517835108378867955707785372333584002980988339839259146941413193079928516486085981184612891208245045130928107093945092173920588996805589155687814431985097292337418033801310542139675090567690020090078109519179281806625520373091630977187234799099638257228154194106374932703642976452056284397458379988294399800073350577642105777066579350531160195190894687753419120722513913893280127774228732176090131860956078273258754033759747363393617942053308969997368847182603422363466205693613051263296115086674533793690556339556489685110121460867651957597450343103553931110383524377836474379318383052161350011229951690075381331088986921386234861178626114170928465950013626675266405381247065845676686932388766248346761058947273279052130795201961774977368292108291492494455521607862819138064064216554963358434941917112157113932266405737489550271786049186943892774707384678508807679712070926659262447284799517401958466835025410843959112314364441545739288228046898803634223071533331220524226209017480482278121314547515843169237168667838698025031556445260142489131720118536168717902167122796027526574493369189933972787316260324514337893662831130180951444174607868300942768623155731846011729600263559612414107413521258228339206956067750715644191008107701610886923113185673943575629062723883102087098983232699682956560017217924597071798800877513966948777744733410133569563175880267714425297813343495070451477587439915747097778511593895976478888819370159575804447395750080491476115936949601445375207176839037190540026055541462572769271450594663095208753555623731671612941584784425766044224385390072598270490712883663051094945333468442164649275551009331379004151457019735831600632075402056085346292065737221234219412526433091956577377843363054504278047034217982230696976265602541785863430548180404373066189008223477887171629796447448797913503194957646425008704593510606339934829313336222760569191645145025020657132870816427677819270339478699315615579723535668426749146586266032141493405206163579548687232960795830781656336992705389990751191837114699651140461403433427030178989305560074903738783822134612191583669630049235754468735573531282048881898646488639848806248607353679339230826536053174216313673082251905738120435756424955429081821216957182004277912434789928986284525643764022790905419755559804082852170881849924301060559044180627826316133121553405228272824020993423465027353050183561620807155343892376467783585318622635237134140360565361020651640306963544383419245368422548922457716153976058169639130381942320632671128741057295015984296711849863223171335570174168447548232713522054029301108990697520932096977094423788940591932430221038494506630490797892139962182855216535933934863895769281978660459419035934240968001740084844420691464579655198592175486219001218818989724696389681572310955926898817758112250326444607298964376441668494607994255019694582983502154347937799858235210052235979248222476596443961640151718513021877546418687775420377314654594809234191516097031843423736913711143766871757506733073941820716995637140344288777842767057432063869755897458017247719945979761607474414193310158937922177371548353925883524709586980454220142509363526456496190196434518422815634396686759921393065237128542282594610880806281103391323693937928460355229620150389561963333213338410703020963829201221653654673019739231041289739456322375578370793341159968062471678802442489878666530019048094384995241844461693303771382137531153981093082771649789758791528418408317085163725521289611771786074678836865619775812852922961223242236990929165391917685990846627853182562169933516372175232104279637712186441770088024698191829245257447782900494519533956142903524523939952749127902386436775458320081959798122710503273288625775800046279078717442863087095920496279668436504869726400643375624711656941884659694854260932642321744931355040812165363848215960779695009711073615483212337321982062652920511848587598712436957022697102094259290650345092018506570112471843029218158803278003674454375073054193131903739414671713921088334434570417537032087337102436807874906548754036924117752147361002494352620757226223540906251005888052175567277206470404323749710727802681309513681070681081524874937045139012137323457910834653909718408523532772810239313366475578316506161958533349771458266013499952727939743031025833071012479867343278165427503044701585136489572168331434555614529809149751650596421941810267308136997776644544535564375279377763407778121637830453628454243937518295004407593168234390750737620909154166753531849584511398365385771268523510423129643924211484593956028367396126884803679083618945028899890262638490195825261985854579208093586222235198987280051302000450075480731662734297786770423468100332157695722824908382379959748179082972050153598661476608436272474547761536846010219726178782898192355710985585543721615553246735570497294513914484491303009619699998807815134797954766029682937968454754549344785388374898266159617159650907442971135034173599915376962925768152061401427645951176713609069714907205915914248489914256630761315998684734286610694759208967487737896835173603859831289712647354100179065847142989643424749531023458405376643975025635356178744109386211498446578859599946987186266561767838265515804379755405745560918937863712190319541879366693651587072793236175911161650485151305008854508049947828247902604401637659732069671260027049739798530327383599616946999121713149449037231883939745731773640957097673320387864795403425619064828494837513216940290831181878868901395142768413613298593902126050281802605082357269663867059635081093439832590890109574966719176712896507822754300423945235955512623839681221923985882625062613658548266091610000333407524218015716822330507120128140419329666421689751820662058402223649987247152920786700312947975098062988542682264661898041787483027190450494083638584893959237719775207462760196318337162496132454401481250817629349159496699486982224791057212342493852259570500542343785856663260683499330035960946162350953381748046788910250195946585622663501073697559779112594255866501383108916848036990346402010138862622336905974692452077703615420502813121578917892386014347546838378810209555664367853059818524485817751396264261803522901363498577780195927539802037268174182752359395741996392456601418128108340292084848669360417390126936600082179254305964348800907192757638555427574360494333635278418571204773052298681924051445471878081979593077047154107315372947236586270999220639925955632154398689193496716055096825747843121980680067364677434864146539781396540888621172329099189177118372013951558929724583121571718375290223869258784160016255208276619265353237604952133831202860813544462069230467640630985051401599265616131835955588948666179909939261157514188911326313093204086746170697443178158297856602241764033918808898257967831365551940422422483320417264628581561119899585400329664633462428132115776189812134748722206973326251216879146730659796273430296082431034366907619350552402824997756327708542583588226926369378246618253219859209672817456232498579996498879828828784508927299895433124217585375302562166309705352490473099556644426376708244223160694129117219851578380351843489687374722905094795989734607683536194138692837654171620529497762216621926502873943162559038483678158742579804976683660103160327707493557613485922084095983536500016760404521531286227147861217313425038408084854418035809741738285421025592819777766033769931574120083508843264965096838742040795896525276970535296138015030791506778470425985135904169099588376558599100091647989305979563358159486699970265605355131907720823568859689920292058199648679607973319713860886145392040985939034119236138836481897211322354335980681922712687328855434278811354449325343368926466898255478274859382226029652072295095796187498526578261674268115075659134612941224883011634835787263686608083248486905622012315404165395092308959818224659515110475208095455510300614922844678683844463235408017018208686893864238940619771059569010375058073937509274456945706501027065650653790541093968528462791353670935866993362512118925712678128698912434120432262854049462769902135417900389722901027429553958612641146741614783135658871755212339367098564601387189001296528215816340246930837622249002049699712763085648858756137430720178947456569760048692258892796924679319017626365139539242798508113166620846150156937230898538511964994907046358175505361430595276843006461411427117479626884849115639701212913022561285163076410799615576566821582633519634416869680364573847828032877067681935254701191318026489530266388634341244867463250938450587211773838223791449065079297719596383187831368408519573811008953610906715115921203431479225757900809174020196520314706780679536472996409575132344757090130493997562552848527764807343114340216128735252015383757490815419259717095122471262915422538438967307712282778303230666501278591660487675662485343465715064313862783268621502681757817515347760897541066257370790229428684432623809766145275784110420678506964807497553240722268052483104975885660931787067380741184774816167656826881540365671959832400383763747614313181621962777009664266933551339799719193028328117236711812724692068179817586701168337941670049701933451977104740012454054394699067801551297626886206904348699681997731978013762772066168332764796119551348267326895954831431976122107633575951059851458586220389288342272129547385978292945087443547257064896295180017464916480525687541855719326989247607545913541546572695330662240805222035008540291238910591771117573269984083427623876363078603676715313487323443994884159249685010059490437371417240068092866050566795493680175435496613822608232134174511792971717991057728037098296573177092773014501671707138758263605647727935876671129355308375781596571440943686208445186721323603016425809986056632642547339440942461708357174623748201422907788853604131694266003637103415373983236684052250971751170499536660515340548534563887080556579128942139944154692549389670528096468076520457338526633957408719544071284146805700332211476054814961844585124969558789925317951501761038483954470968570967199540518575257346589552251625892961551970118433509073817341553242843490213908946094625367081541383436194037549692634795906101657160458348926615377357412246032893723320830879980843902830573843800908555746856975506232526701344750522927663523040528855157150176997210450037844527400692856893731218283319899971148688738632610318778491411085938966989636618691876089726933335936465584971557490274978162516477825072444565491831550512829453600998224969931462274954812891397406039570875441149641636557630184575540333720147542057307926156484622403745906144499202711629660275292652280313925701554949832528039365197339096544477370790936894228080549556635966674537917917917419194279568757219948452229734312252596893734616985901817605989828904275779731020771950087965908011570941997955661768694422950588377401459898669041127368475682857377143557178921357582810066906359087964976526014194040858962759074797408446480101501353335878735764089274025492965462235409342260497707442748565646858239572710532612942494440146570863570523357399898265555328121587329521466915551318048682507294862780171532028936634877283245950555920046422117500436135544237421809961691199551184873529714505498856905544065551099056815425241288497851105897934797126897524423122977587634063198152445087270449786182297166436261966689436853672500132186483401576609651110878881529143881352263817861580544122883204168607755996802705185909830917283229962665100680876215724721893499206445669450219079240004499364796719933690202406817163038707281806175432082029492087475348137410928930336361352680112935065226467827895398583347056070469286041004659699265847099730585931116509504090962170859907549129453359575490906195976015836770450410466766682122269491735113515268475002098839823706362194265601219795822585253460428089003944649425137803425653366867103710367635461263789047496281697460730018650920125768572894454038932149712408944273398052496953850282517295441333185940199231075773141875531780257216709412599580923706148428623382283985178666202173022004836463626022370468401732698913853881005450370390131605195285088135790820382320648500484673690578179215425214339188342478743377550916214992208635408705189888665258275621600026506015681213740492248027498013196402256485304000112244197629583603857528741591839536843279265183241691612787935294779703546958577191832528347909746974350137089670315802467736243118360775169958508505955656976045191111784439585176488929340372823555961432683926994989281136324892572452506263210232183080821807712416575287187534592268479734195579789471740041798770143735898177206472897633848646236931073557911437757559989407634719804254912127215435234120462976862264119702632782073756256559524470646125673893373347328544879201352274187852834737349734535386358281862850300197225147351488809175282367966225099087120243356821008391162220395502805039885031839409572335491032323003203339376519716362925975203617906012657654139049671529191211488326971743717184535743974118162073655150524533983891614630482062038359903213349749051909647793126578459149124270831902810569658722640627519203030131233407980547439820665430043694814818965985031493918557872019168520826873692218302656187824333572691370621354584095186056974007702152121695408223503046846613126988742299605865617091657461466629624364564417545245794539888420034307554134306432874247096584793195362773053732112715861468051811807345199181283501458698567364960396606264873559982916775495959739767652835517931682938557094049418462964421330667781864178173559683758466973151680546329976891179383652720150666448314581770759129650172252128318110319805087801899848898097326311230349133070925209690585292415820537277699745864181877781849580052512783729298134496587956277152676639298766811836985274073712056276283521710545206153514867540588304479322595889510691835982104675259899662797039599386472257940150509613865599747490008456553047493372106894140168212347692413053983333369692102397901494114902461459017647164046018797902943203627238746357245635783932340232113835162939924709231315074334401776471292231960145201180796079303782248475914218960189220723174048799346990181270562446476405523916710263829250854209610868166268979336413542268990055509761155988602767529362465582260485404714290816311295297600639250227301573487717254753409230325228933827673463959364356818479975933828229168286767674643033436615692097369723584583218803186956406705338844829365838272236375516458636089766372306443827484180338387781865742971622897846735805386926190633275212693261645838384138965766171283581215967505078371831538707241733046771176725632051514070694247698051085662666481460402641544835356799621119665606102821434738627264506289685277346719838366883553829101946200004265888208549459149973820665151522918377853125551157736246034775670591970005714589366254781172529165425522733213974038964699588600802247892744266229665060253881559154224605035551029991438045895269345127233644971956508055749737237839722989510901657937610252151034833236588027337700110391447542311678066134767112022311786745953925538042337650226859441481146030088022183264481596361574539214791316214150884182191859676328057715052591389459109676954174099590130446629736299283963489332652931163855513787745611777339126167081577903116046874803137291756906876779613526119363080946071699348617676419532231885990102892444944954530562021480951780307528516316635262125704660564257374717822938422447776546903553723348561646539932701573857742951719731734006847853643158301096737700614777912510922037931216391987073242661930533574340276097040947395840372745232566834179438684477797030401497997177360529790680514787816126066267333182812192575502380451374750563505981098030084778270504511838604020895055108504560167098776679436398950932243113775742440601538675784068727168288714262854797454431524680945234536605233069477791038744272674506145063810754555694616484076788632719072385546805038663529530694136610060897448720992441892576340602787090001473926187654321377662996662796184254386382926857479219767679426486507377088604947157970354826703399866664655695130402971857271012379653034716914300622567352326949267335411839578921922112775409094802674754728091975436560324335703145328103921455231394123055572857473551125153140154662330156305181189093019020574528453929511201758140366781424153369576275934506594950544263339649315304648008085904928199151951919319831797740852942725696332062004836278140828276799374293039449296931136720236088219254024976581321523873993215876489276285451578317699315180937277288749668613520442171425649686041394705010114228182954769680824264283255781048605025035304759035290954722470119302247967898035657332583290530104832476541171166808025316715377726036198466135328490905058033330964830575989407272965213161838608223089792259708323136017148443248358378496884526300214694235035750176380129982991709203604553143533439147884537045550542282014911822778798792613296847750313172252466919039847528954816249498671717428210203676153559446633911749839654650222858390672951599868471297984644980700855082571113719283981898823049686488386028872364089414743259202331803402097530051661695104883011477254071230149277626197149668153012285730559812893015413309390542622868504529354124656831742538621740599162926138184659464794330335017627759760159401684094596218987467224904264638416170106239152620772029374444389700302489459222926191520661196427953644919287778900919179465372564674396255406603689615781337902697609175499800365791567095647671819385839067462600817061003021582195532401447511499432527967969303744067682065382817371301358143189016072007616668824579161220685487366725073167374649718082687856416798250989004734556443012058191350444474050794517381798451398005998696845816279491427656546701909964355767433842477387936901403069049278569259641057768124026708321793163400712580063965107430304282460722966002643453769312582119027662065907026368078876139949429813985954715834150122526254303972570782638706586693824031735547557640902489938530975032568540334338633692186184889134438758237985530072561891124740511812256488721137485086764052204312529620717971633131169729109193400935827145995874611067389390385850528872726699327586047523968854690988873913815844312329844211013572603827848727252849046509374247798468388290252124738808893712375008443002360115895062057156388432035174372736391302275083334370989976132207974931336821180348438321301365590337001738417930531745278533841176595862353814977479482704581623610003699017445246265964263817534619784347805921586159947842378792278750960482876890235544345505575993911147389657781175517813247045554105228495485099220833730554685841014525443417821823909796477600999626362080724338025434814108867441261652233854333064758029644328293220860314848951022095045409604457675297129190287726930959006282795105221282103903081248481505629536526483369208747458173275708033281317895297861256232932446927362495389991820087858448782516365538269519113764868603372631704672603455033881063374616198360082343357640608345949477897568000415349493758066876453056217455797645566441380180046471067913298271342749583752729511417037106219584934023481939695034227704030449311249979639996873068449087882658057985807111059535875675820024852841422855735903955570279860914627294817296136053182018821501390456391132991599015233428365765519667922521097377497955292958572433249459870346940506156041160457303315843681943285349660409467281156508815483738931034262729526683577593258175864583729331808567371314350410000520214786390779588489279463530491496661303566212117166121289130227811073062127622367699808563841960839390941066786865473950221516297078714857420157648251477202936594013997675189189978766500575732654121039263065725530158289460980795030066342321278528761281878451467069872149743828133248716068148576144486037166946744867241180236605715648615684765044496503384404965017406038434105343364609226845160127242815257551531498766277937637190227192471742104671333017416393205859267512814091295793249707185755013759537541070068476304041987155132276924140933627340390484911941186595451663772490575499580062630119104064789826256872042534922073196291662732056338789040762138166658686692996866256131145504554785597784831960981742805468318364558604084331799821090395386980479648499617714483339844043835519835502233036437302686405106291800183741507637216667295632411767706999970615773019981854431566790307080347073694189462139027050823172352405855273671215541596965230915476834254310448003223934503273770861279275818674203346497179807768621824530299759672433910571213207784090033759337910376440092074551749550026763975334292472930089221491196341860490937739816447595155796256979633584795089123274741602696493493592538541245343328908144542631315775485352732768680647721473680093970990984415130588806182534987510126265870382761061067705058870609844433304184813174266480189121127674238971746641441727205482266361020970028008018071112533859182827918529196137662594583421644892685954274982703280296069018294310135217886386366807318608044442136539527285015662201885470895100106047038995181949780199790790872159418758753901072643787462198794008012155011401083352359206622086241673179094789142530436387754856947899208031933070915695667075659894768279224943857429141760011064592498848613529015782147077504729178857328899427366816389732235692609767381763031247148975112109514917317693995956261928675478246730899793035731592536406402358661063990195423500007200704324300892410102273471120159743454821216083715759776211648756370319867554407042323630222416501449086292583850421914923245577878637480613239602229680829092700712698494384260677348546520206809032107317227319189166650592426328408237692798974724978417623920789051342563943526337354295334436323631231947511028209731843547522078838070923560463400188931335795842178044773636815737663893737347956760722898114592092726090415553598407880939199723294072153904580071212209708895806559411944255848158806555399921812996182482945516538166356847683296840355534248689394974098846912612824438365649075303987454073545144172604915603844051576524575666310964271007330966435826990791554451694957413657610027298205343266065409334564312797394591035135210399761688307152337650021789235726408261281214697711923883762045911841667254984310534726536212360745372711768664879504713419192702230832850750817863242356654342051051564467009152394077611500632102100560969240061253001056850498753963622883697905809236953553537016151516730720495208381498194650015940048138317296960491133156113808248854056490080173695448109648143984192036347165844761141324526102463856438004009970964117278761471642150161169542113770920633536274270590044766931454092310551494629246198698566725337184734663742020619133332326618801790334205790545138944043025183171115083168654600776146077461603099384300751434440848508054773987375854479663113783419742219866839357770969732831298103293216150134107906510293512190777936471407568109129871447213047831109184202118899464021003392855741331638832502950919553272671740684559455154973783223622391552701152170098907340403166568775020872311555495777299591727115744735686304700423849015047784145489453499432083117124165223055071488425881410061040647845075560422202726910616781308128280763931324904299254508846223821201986734592888996382618956168692907979284528163110630050630372148002641001182895729600507141137736365063679123685674702781130496972797342204671165059516066220515713664899379718814662418492531404187295803162958632104482006832879623557067282766332864595406283198331630323014219372255084603359514991320231877510221434819858713821681738656745102733250790516514880408437630026035545848533968615363275333289887073457696510304795767022888740934756282003596817951988655127130116853399682828086349358681883249111156969597117211457642653427626892896673396072288408992800198875646441796172425207847057641397480951190805863106659312035270296090392558725815956610283396104328114782827596727170598846909120017101423139179255704773894340432992749620136122203384999514368238520400524305178912964409471330126528227897011265470060760767413642788670322716618830951773412521625121798669160381655013034608078872598726174826648398404977264434187072138570273435917307422038325149010634558291061305399396003539650123421848623581729356257746229131620601701053021391074659913610279943702292885676535922297076430888989336573656000853370781037058827385506044481824932212994028862938841918303213660242545897389008022089295390809028372410348668900662463562872222974806711361476717698682150848715832070580494615281833627953653429299965961290871341737427545500870251858751009977683027279146319481854807266259977455865415610068798321694102532181792015552379380349593168536480359832331545799357405702665854863358123472033679051004011438396662407792034423962051959307946906908451101104662596024082301877232189565037036638099991794145747125481498194531151886044255076058776334152539418671948255111140624519500821766568447039300398433879172885314109419880651243677296148587106001400132779018476394209011339564289778015562350258476659539880053683028853234171339718897468501235607053651638091599042034469724268670138145554730442842182124811182448913236796525004532000041840512786826779525931884374819366644728743897184255938972825772632253552435672964268945456368709586609275051823492664010863566962320608312737320819561785151581232487200935222460719526576953909984805066952363234423125497028813578089323949851261162036589647710554958099441591745425273680329269195541648916163890385751284641510059814744433901916893724921384124679419654107962051851975957288404464211208267530224778635310823867165421915863479023437027687490018511696637573138447312200737743383725478887273278985258600615517051683448256135730389178484783867098436073899412559091444658685311588426188200450019282290638909027515096594085485577907604579168121342329966248095620626286697294286347961545316390236391822536146253787120356606057392434639439106338276560342898403926636247502865894001806339954195808945854090333050911392754769623818157376868055090536284572223038491258968881419014470228503500150336982266619307232497425784074400307387554583338087181710357452319842556489164915655925675861250461451199669461408697530661090397725349244427171826205719108756489449699635985234348984977338139142643154550387324484347753118121472615678958132413636001443208955315758984821957529691790515121517073054270913200240341928531468786935352176806416769049681194551890157598891539506982388529163584564681423970041956450835184387851446287995640614813329009978620507652320881038892272459617494235034361838811665887810135266292632631632929767561181098244795101547607447357391060961860190556509946069073788854748427100295687507448481913598607796533682719363167819444550028868624492164523591061553907522344033456458651093332136366948208771733832236762835423643016797094408086397377485644613707763419995732033424888960284936220464356214835144789455739773650149932404129882907784223409476037223697572962359831914601166869038261788884452152759740766851038009189500044699599966175100001553932876860068818052460793984449316157265734576887313292857114584834006666327383885274876077243746045983256661690509309496949541396268330245495050289352379498482870061102711264564446169613459491704740286302262378558294482272470622964817800808968529820369862828840907639875460202937351109164203343399301337384547945375698215563312928548161360582383145124851619119240863799908549045250881138339997417926604347394454281798666230447820489556229782016777796901470727630207242513885868933625859249165134855444362932827349879752632007306994008931561950586437314881838088859034195396124238898484649751552844970506707136657652917857604577269763766700298310920915336031837170914170814809301217847344247761488322435717865242698121308384982024632902929328121727887159678221302508384904392303452762413726971041753472711533924386557852873711801996853813162506321685575109409685409733401676792822551330747204212528518524378953637880935775425386695278736769738031278816120466546848952085615448265736206361346991428103441459620132843586425025852011793572876870218194783721180873205820208490411986845440279801699857950551557576057757709185132467988032357322596776887731636807226560303465338329157433386232301543021105959074654912437704866771071503384204481299478405694504244893060593019855309543348258451369572823233126948248459926950580638899647428271555645343911786218100848256831541521134127155109061302148707174945097642341724104444191522449786891673403757895866772551887756861130898288427500055764405483421774804370188994624416695185925398208374293699725231408439984751189029220842340266524709607370602589187371209514374925657070047462546920887270589333585791258634132443319707474253418301335453362471019210361513998046744769255899730495063277322943240773003873597573208835798214138917199945403796575608783801077033051884706488949465051973182094876065742306282965141578592673028883654114000048111479515576213608143361242070281454979501956160163999989478305917793228522381847827729559328845888906313544637557544351373724420679933471966712687352724507101188420596534165356940293273258843814516086476215328593358534161091101515211140138502085836576219572075303507440991789180382142845221690170713727008636218608413565584063853581365023140521678873791671968655623283189636883395133179612253565840074086166684362703187276893291817551648923678989743214844762781302961150394497444869717681116505532003839382790879690764852765327625136759424973590568580916059316764448515421827396873082384451159207018678967437696551675855472028178613193430406934582227213408773273810917704800300439216428073857820456726376363259454537092408201773143099281862474288636200246922222077612745077015830604224902772289335333438286443175897568806824931356314502770124303272960292638150279913937895093230421977911640734290687710857068778366676096023889666604205323628436908607376249138524180423674976326497615749983315574931913815800913596539034954532389060468500472240609478101666155560295644542735414153137088921857705587368761145689186586578762696845044868001827115343639077947013139409422147259890907126464357250435482638951188751584548284671042550096908218825532076468076696459860495929356886788520947245439674719212231008521710645160154352275205278636485607460019271778232655046159632510466573949894261680595737244042797726354369002796292183633360240539885361005542888439654575850244264201371994935347332186668311055633790277348691457447699228725238636603843222060554829287722862503619038787609526976698872162626562854850424196369806685781729737576919306274173332481800467029924286025464804006953341057749966370122291699338962361835142545484515379081159861060601115373415176742046115344624526997361340297498412070664433035667656830497154030209626511648800241729854571732882173391255736577660652589169177053106778722279011000467853899010139374721277294075825412827458380758580566382075806771496557748389319588505212477099819621929364129641469238699199674693902895388697238153300185916826675804307746459944030814827676893334709413398255781608016876914993737332465429067442122936388201393991542382159744802709315098029649552152305793936574184464801795964310487892753855927540575358544124581650288575425346971126248447595214702357546388038745480365139727072328713093703707389948459679503114096786453624339346328500286263932929457120454769076545446461372387360438643059127452792167171692124033254631013758682403673899863902866462177462269061376037422991132559874634791417575416234543075165996527198223800405876633547669848799993721386948922979149636066034833709049321025405003829065337494334713692446692398240595247691429414931043639719567526486657601580975931826442660825670145539742993432595378716722916323499732065483054804257720984747778224184965463522881174491800448726304125989031075181847268687513308989672971084893324327848296683817236280721338090444887527348586636759065347553201098065532408484211451999832769321946547802554643032288566564358027327816221636582460354082368171815302506387935662235257484958421166953309649002481651596239640426190528693390603203256671275658697851094324590544043438725048264534492502238290632705219994424879153406940484390479534579294499564838541053271207686867992736087190836701886366061506880827532799966738221683336612454355354996158519397307362248854241293745039657076201303380373266718651142952388272402245173495392414320756859837972135188263792386788407832682544540775457981949410900406042890914119831054627585399380611230138165276546421922907744469319043632617983977940723463384174421768320040712898792634554088112488298377437399212957241892980866936471115057209470627050683224592400703413389730869726935600255590417847138021278391130140723930247827325369452912942319516997039059093176868681673439937304149463037359537487703399591110777936601394696160065570904590540434354367974390827969386278072181229045270875930840099248372824553440526974146121357681842480039493869891425266054667700121575598880774659049978737995106135437504540301822585567993997152676633606798346771018185565759702273819179466150983118166522878844160328701175913414446087144012304467184983356966173086657510209921841375366674644895613769518539815608753933354365656553884787723725331128216852386363139318438009737408354120896173931892072516394598519354950585282952537776557931248576907997902827247837452810508018055500153893387031638070765922443887241932398157969355142657992070848108839196447039938829849495831881762806752566310432020721950985373425104592939900550652181965954280201212878781532764983253941671572462860875563770231132215795235928139263079153051462171001226600399894905528802664330254013226898055952018628168639071787831447160957214037197499075949057197971820689888081736227513367487508475015331008101235572287480589271279706752317254196711099977079771633769455554154933782086801559560809826394175123720272452341504094900293905097021466423234268101725097831195633642034111147099459931119723809373536986067708631586607743158968623661535714517008483865053874231201883016429105486356584056467942014546324352723469323611619862531640894229674539003424370205152018493712781646503961338474803049338002493844058146468325317443678725563948590463355981427415207374180350446404856423138250847391670711819777429689596109041784605553705910271877101589034515498958356695061535856810731145003562750789642788176306795095992249441468168176056531171885704617939916709872607169466755531026023770146922379624231767938310059081462432981223795595145684807969161251371772941605533260533427790321851036003356161140850771346566248185501796182015723157449215684677316837610313157395824007502648817329029898068208787558933931723096372313082593535698769235920214074186325337016783000149437985892431838201604861769648391258751019198137706066419966792237379791528798220936032664498377900534481189443049035876092134625853048253243337153747759658824855216332389311848552419514960041068772377141626025554060154192383049851696697276168711960405879847717358646059916638276930290788256300132816625761340290042055879112812524917280016901511134210840618408958601581490145978598097454322015194513846003881376928798366859229946746806151100724752107735176400215738470338066958755585874839683972370733623618358141782906142388026968564947784581051535233197875053533718199118854897555533941506147684838485354373596658989110006131565796781225613850806000633683705694171725729701507311118925979601426037792829392287894997045322441786989123660655527020317800021039508197401261163115475450620713250548982687850612189257795554771718750867632594416694702680488716475132080291111001240625246105147104143033335467161593098858976894860990616125552319930772260152860609837584994285477237241290890278020508955066083334562191733993221956965060617720263215310792208083424455700551695259437136125951907979133921028077951694585905541305477812915016348009080780375247352427047536760958860503912303201993383297659125532985137075999589324034288181481749716655068002842503749866836329254492298299554414713905609076627744820115600755281178880712627772850190205155015782977977854744193713118104761907576625286689053118479771691995124463732158705609063052145520599054328162563330922767080854573389984764939407645113368720635734513433537349097257801867985490927645755422929246864383753138650663220609191603573983871004671268676396674504284357964976849205737887699135211021080162006404905457108172815922125473207556033853930590011058253785878354925170829372274769440663230032349896111372342097374474746597684734942611891964555946107716992807193512345943619521226228288562150204842674177732523824269660144034114120656947268110515586553210828468949896015706625163799840516631972179337639110150215357547082447119529673449116421908515042733784832044817284705943386177128108413884434924745622589712438533819972304237536735689011345783049184257216605016942863117217154105996287720524242849345583012492853495573150011696192959348986020906843030138518034345198871962581760441386878632497387039182173726480167263895558749711766545644950195849268342783921401842026701457986088285768010832447644249811545043444020386951495415247724762638761733533705057763215667907027425824468954284654910384753848621166103414190239050397255980559308806518712397818646917566852973580020710315223484901659596003569605492319553528883281000568985500952949629898142498391227741865402015874545240330329301064886016454827519182702473954019887335488900858921275114854026702602850277026284606947036961900814672522647712578090096736991527112716516538505831922493505197445321070766810268926994467537077770192697572198244763624887981286779486226299297852055241812138190730868530408089924923577995639160022866615764289698595655742177576446919572067177590527261241196446805079044666058915148638495096611837769229213273523175379536802740868145455663024745420168341680849521012587134310060832376285169461285386284045090565467906075126331507438524232873155409919614932114671050818374743191492112441970344157582467840079808415507228988023236126985032094420767701345317457450099078341046476261497198050059630470781648468657220278200224908088068576156322133759320657796835496042426686192598834498136031999237476516669331165789123280800644381479839965934118793896739638703791398320583057275486272933394741697449526934970878364368824004500135790872319830763370361186900943464901987026088064328614236319725240651832817065964368537702819447716360655258317031587502103355726190688892069436145636024219602274802653738776493351860331290032334673628449639275289040191594783296429580613806029450157049267720343937916753779490147531734734831418976105598618095985045020920319244065869328839858352452257328521988355572870266833798627289781671813121671022206981918175331750193331498163148486874242974298817342933053931816220649035505778021412294215479053155675392042081803224885012307506204697128815432520289191568532591386664245116207251187017935854479658773971315229153493191788067578815344971652048947116393565803434471998876631793662496247772728979371623102402776636602727867955833323199110997352290420896103490848982361991621827778254409788562458630325813918901615273453903568977956871578098205279646955083409938138131401420507090273370144965813842509634838429402912904250625376849528093327706694563169132242645267465617598470671076897798124042954392872124090343528565749614762493525964760407445096997206152840059760479533781065051486826264669681526621575566003589915413538585986565360334958631745891222042539506587800192184182119128145590697984387207819690099319340727206149003654463771081863141860008233592343477750861967975492698864058621581988193069522748745678775373871196325609410971765661747236422343868475208644162517828990534063334194022068748800452883292832603448530486156265880812263136356073386927332838996355164886574467276589107442871282969052770046312727833359308148157874506548972905485502811628177774079088989164150991192501050269287037528681867576610050721882345065992774552812577636694705069643510931866469402244886428028681619436092568158209536909604837173183549549040694437155709824045350477779666672448727628676575238624957140381742227571150501934760004167004136025220441285258445606771935420802798241387226002329904148431376088664269350586374246037604898685862605077794805129070610025704502903461425414905523493490349486527897401096942573721130961335276085486220926214779149327064407100518503077999927794574909318179126491384250448390974160522974704948947485942243414842770437829118938517667603092872094238515526138127052200504182369977280875606815327603911712993302359407285172768465381261796402624318706763207096693412482965608062260829613320482589208552989484061227072402382375971503537030455755282838558764135333619316440323713452458282033950930753071447929562951959132886187987481870881794808762441859664959047710599027926426154704825609088985928131342424060251589565429640427313850433464642065908333378510174255444914271379705156214964429275897827247790021581668254979350369740276895849118012460317029459564774889733385598480100106109127343798485560789654493532158233395917466175461541487338793292331313562670597090240691553691520625367198068028885908496705198070475522636303477101908814362347432088689822096496301397688496603931481527216909253051242512047106220681565037120390292774147938218445915938481401763876952490941808041746298315771188553820790209377999782560233152155450984802433680292444143028528982602350389991924834875271604822614402998181108627289982505949406712464294040055174853502435341844093401604210138378580931333599250896573432607653908416006190038847831613693818768721453697570320241567697690987347487029901202905856555458492295907314390817830091888287476727834733654408844144050294289389888128544707247046315883261710587318735367217870578719503930541288724714134009689142606066353361261625296136547724215153603765782874690355531961307834831400405607503508858151046429081354166261397842866799441429273135276328585125282716678399992977245770844178142938680536425753335516944062782716379136156385478502226260781294410480642563052865194132997628576705954872507100648031249297231617199743332722840592649748841814996832641121082526255320214819429607053973763916191645889611332797670074216882347052118881647844495975909529519223673440266642886373134559741513609061192909005584875446390871340580870178471178439974223707039913364174220242246620116287195424697478647606631999725230479680560933606287943615528551616900198851195406654618737526548839870348018968719655767688972302031861003434769648730456357559312223772650729021961607082811508225560579750932789894234110595217873385506889069285045653423063749733489210449866644937691602836004666021969558671887112585964115125617391964552276431043408333372423494917744323126201879223638503901825161920616103207304864475898560675578930416256112046517474829114109560421469898589566246865482019810385003926563418291724587149608354194745888634884148187006800854848809556105987244056955023759662122618300695748691565089064079411239262890655812553696824569260321412220266088908487087947769785563085252563075219809110915926996136675767841713817903981151514980473359225877916921037236784568189918429515566869397507659783536309005570476833542597587748622504071186140670872472309273267653403402231808340286459184115536409513536088894973637291602322295868934840324766306682094910230925510300522728602082253174313201782188605272999683085448517411534689571050693850248358134036664160467241823739905193622175881282232677311394715781316526943697479463727421629167246349683900028019043850123795905581731547492701344322652388703936261120071859093601445861744033066396465201007580592827298345654941456195303816559144614435654703439150570315162056144324499329396986979028955789676331147236540651673357635855189754563652619065105678744304016521770358782027071649943085917742635924786201913702779265988788359997200072352666426778131585094418118169584571319775352426921447759466743307263717661667997844229994262321924990071442246393280818680249900908736094066832513208911456390264475208045995123081876844609426309189345245469127125558140108576768291263531855000106452779511868254873614055844027302844229106021296441207267360379655470595313653704289972826886096237112476170128219808009296241554277429816397872163213354278947913151860315976785919961243366164087534999477068945037342156972961450944444517376262983096449806310760408853944195331446353359191580571182214085460665001840018403370691739294407114963645297273530349276498765475511468106787004881609216219141396654521439161492022135052518566654429461197349932190522326370664042662931537897665428004673097272700833837226345911852197739979071401360635804276883443665078065427151531925155415929251314660019513110864084491786659035209399969159103838146412779242034876417272694137746251257896977651999552391034964507242541976108517547304539946230905818958064112704462992887099082591492038849731315430887214634014871384406600381889366438345468576218399206014455208119756665148353872382515869783195614008472288733188783249011618039095560972397722291334719704051653618216754446749836500066213381079656433596940514892464993784153514122767201817356683802026529386594223044388816288557788686834498848008325066067559990374618077148597858286469813717588248273716526594039245033855347292213699859216255931293235155580844293495224991323377387477290834270402261997817879882646713273134777679520730273808147410154542672494809110864351992389671513292685069422714612851942090055643376734034310878352315176958241887437120579659038368054703519408885835810558258175799682998278191652743039850342483352442949760870154797429450260220489310207508928205313291401566714082304325236119349242804347291080431593298097773241658356273233742025541628240252784336377519812620074599892678653332812797302770445271842977706106062217569079107388753626091590107338365984791815152648774887632278640295996427425046033420685428629395327169983544169753971617589299183649235520687345827729275297252119607734039612189531979043009351194887214539545931465701606572410336789652275509771521359530411069860066217991636791131221537165878632077941636350497350865751099706104958507734655257344384137029811504379001966652021688478412146187665498990971527712857736097243197813008704646112117780868563236553344086458040189156593103184427446070193669697460907294060891424629223667504836790825041325639220259721156345262347891306328339290549683039952183497169674044220785270950433990733332642772120608453113182077509753282201887406760274108568256776258108684696412063035753638508177801931645195462266341433293580973486915565438927462413899950105196657934595746998789720198106734846727741797502098775424512012200248247407158421564271787806483490278785964506526108049111977401725964031658886425801922271082646432391490011770279160634342487375086123630687371768656744465957274547117751154741916481582100279997176949026080778197415830096988132142815049772782112953437010151684001333628585500863692236683082038680513358066736761286668624371328977086334539705053977445806276075000483806336945763616558033090080641607412102243986000687131310461079523350977875802095131663512774083692660401856259407211166788796112713598262694477171697683537704368688716243444072152367380712129664467295164745389629436314333823765534227683340406814972066122916110282410579823159018464927759396464354927461992297201229024491405247426262602260209934911206188598419772298081292169877020205575370808946224949075648741991951732236219370405538361264343222887393481432076690526866624324571992629972428458082706594140115674904439839059075248127467380547072039444385415935969223871706376327215477451617205274970691924420547283549543895041848246739380157645855263777443048932722659385101875595216879154694483380364105936452113155064382535934776369524387859667632939185258941997560120893621318343751196494376627220297580940967166550403563753660632037585405826502771612162564344811576870911250604772510565117518732017839860064129856338830753790337805376199824836952676551672436416479058209721732602630749761783728931099284574744397140272170018358805201931591010147842716123775533575481660436038832856274039050725504313601128918290307285753958869855467837081011217588758642900117680916185502646544477141849946033408355490710332020251504872203745670996918410698839499194241251545898084173064294170430042785591614636096675649349970469195749760962223560196748577990084111499796544183086728748684359183610224909059184863626251354430159607840023390830885419439211580525189802159717342918418800640002404882275642252642967965683235212173298379413847029793982277390765995489719339680628105193125838607834428086793916810361550191131135839128635996542764436476217044770836010075293727365982585721156981856839795934011431483833878342175039074900908433981521331769785153371693067166387300402268280417899203524062748189823806776126215505237301030926371635657532253624776953699003174644397657541956832889512969262679414339649609745645856643759466403749156550170485161051632230365903689607954507615846729353997514257779394421411906448668478647797183200286291393276868359254481683801495045123916961311732043542298662752303535241815340416561608470269804416877999075046613131455374253486720063254542740279337667523961045530642965252095615698344136733905843377093101799380092062020288862743883206863015675375420642420518956283672680321334253597691176548613656330769781779721718587914223220339668062958434013354588321744181864321681959251023101450613574084305491527145258387080397687953016569984184251505030220341244571802671919169719277769675377283478627723101596873643980104337435914997328145657666345991306999147804231002542177315407558707039533081542498607031374542274608635101386968851157274232571287355286508152184267465530868733464327885347031618756748612689194447229090454959449265460250476978454812994997586094564363363672009572613219901111008584236456461793859093065967989857640561047084054112814922012408844719103689753978935667865074219401910005541530011058717843306450988409890434705679011340234087356786662124204527223048859102112961621478271379024545011395898536003165384061733262896950537774857429174301085653509104434119092709644526475687158404967474135575611470998949045190897647761574506965542969896645025444425626275299336753969106621006433341667596338445907248763149429754204135363219031412430296908389051560107271275686385971931795697457121486888918270119361122429059038219214917134676319817285920615538401612784226802341987011155364251497818539136316612057597520382627420243068091156004246503372922141484116310458036080309031398892940518308530026330914508253003060634953181455603389037712595352272907487634426784471854589490850668802447544991411685448369755663191741824376059875594642388291601364579087700210249083567442550814439976737381041628947521189876961197031679076154732037011386729655614883127191135869770659093798116882398365311804753158243894675542357101881221740090213771494686124892730132513495754381301757689258496052153519467524701997509583700282641470329473526882907263412593681094051024461302635557289235424078296147251204718836126678745472667308558018364704400822999961658086162960616935328882084752422980970084706832764219996236890129570101171360975317508961673455530567556061830469758961566161670208154233261172654288170338276159130177986592925181006613489166613777663979894514924242624899981351136576792242927093530808518606661095024041980766356429797326193284037433215385310244736854339657143719149180382148450122625716055218688885052511197452262223142228136647562207111633466704690795534781728313328047772460698586977376718219326073227643736549070179266223828343076415344355562565001553956894450026708826084817535476639242895545000868570469186221906085861238362604657426346801945695929170720216001701804604001296312572223352053275928964282487443520038246113985272589205034351415002999686453689391132774837557049010106658575224761428108577933016454846823632471547130406855938213031742689549263392564552606129861707215799207019200729909891054036840266551853350448655900595872307456534217906859565217200962652113218889536434784368465619928332226599608903951356773772588715267925143604676493223357632544168154100953938377613657631378354069834007106345873118126797734188807187508804102364530935658229279448556984310540358966600002436261527481028566379635655666258436084614998758051968344648326933862229030989387447421608540521789338914470951293260012727839963517294249453815721844913695529103314281749548169230919648659619953563061962516671510602175692292270332774808919229812594585108907834123317014368264908033110780788233015655472762440424632224245040299132465795189329733580412421100669030435487049087644431908255089717238510065477288197554195864474123510185330074692636817061130958928914513956562323077859525268796625907610449417774284570968584796149877837076584075698236273380398901076446664392815966719978107705476259873864166894242943558931285347246724587420754810808273624180944909533161292868272627753621286177917469180934240734338707335166080194188294962298868116064152226063406391516054197445205625890233586612308960125309308656145925009929788945505531912320720593352916564773942818328948830159713112214589503789286546455614389507470750743835267047973513799516417205246967269362035030039058759130759495114232728912911421652368726338522800914945851947368187307409414102408684054408890326908651046683390194927720742836540163818226382709505742886070404050971828382924021584181268146883718069745199164427066771274471890328373881021472164680853190940597307207604446697749093941257216803935210137492937816282445008971705211937886204759055429793264851425208200702617516616701525860843444012500259742768393304312090618567236559558185303545827795908115392947491487394651541889935694734510511024845562185681709518432839957908267092902794361378044402889583116799952711664560395159596229230892427542264733421856211212597969935352940189212861432244653183498566765446404629079055655890615224950753484992079701454206166065218597173006337330588698810185610793850244354485354310023460323388770020509660533321589478402883394287194348302612282519624871802624155074318087353048398841686644558520714343199134373703801613746508722778695542437482065456950210900445111461866625390754763650253817324213620942032831318362031627967538569047669529068860239624927853359810508261802053582170760948603951213197144624826488971167782737966592179996145289902987811190582063573958577719756650953204760048191910305602208217432303885531024836868493238684339918097548871728902597043725512325822898205456932326273604215682490408796457265679925930464502548263616785667368960940062469176287096203333015875882598067015187998136853093473708164597565318933511662223219295364644459085059592011919524905305056573034192616049754171784378332889078101613525931834062802975324413161307203829921436212684152598623097380969126532506668412618298655870807752899407016795288237976346907213002255119812229275301277106233327684323026243360291886449205261057934297952864530707728944626122061231126713813232162401966929045978326587926892920752306965549607217776253864803941242023859909308719838431437700664734456959453126253290811407374540761977085963486059123499305176161684593199027553836261924174100254993308824263432895077163022777760521091915079800234210909244646747003709134743810935263362313130976715078124558495894651907850964018891536645024026989881547684348441530483309604998217954536254065617443778939542779921711664270462991836360104749258872431217611066534459352796708409227966535296126265951144178078587348127535661293631933368623484634397691282956232008956130864437937885801243345709559594187632828880041424724823048192526608865396772292173000364206643832174591815829411678773446023193530699131389728162787783580807880373912830515442839495183376289357328728179124910426307672534681034620348507827727356812456816338963544029668568167566816127960996684922903480208669352303277500456479752501370346706949556344865781776608216939733188803866989946294727159696986369508844368723514976123056389551244402953054690917875149996047245253240548198722372778313885258012303662224803998237125723500810950764272463015239117304870963729560528684925103566219274650280916094642980419666175848193629365326371177421269788524068497245699925900033850384804834656481967304914808733942972057352025564747422581723064968631848620753867221384144524142701744657595896381713006612778083164265934336139829959437044795486539312089024856804744357467313518686237641498895032322449957161570948401559216558020466706568110740092405767951712498028995409335047502176070391838866070549099815793911679916034500726360821953962372535054919870786192893677890548832318425052347473665941010392984931102047095505999382819948276715537554408454097018458412168099027235920876050645576443692917699172010508175979490910751954954364843878251822360645958401488389952305826156917222808558612680906509260278305777885899516785962332231385358094995686331565269630016535084643142088758799877179378530799555160274272652843586196420636935105495885105144402634440460073505452517719381200319214440840130975900849440443403009032285090738583759666712503249775409829861938708400729356403908426369807205665188343485853479651815061353603549302507084223107776173029967372012483498516136014879184559568949886916585693102742932118301467072982973209354596962290421173863190157272149503739580191522496210613511014858447345068983084836531479413621942836807088406058295084971101538959998074918637103789323286716321575588544978043791208643269925827493945419644104984569312779858353201485804229744738921520622994275103821753156399783464502131356233723199834497604860395234750415293302646354222192051035551193228599451017180358187513360718204629867900610021150552138157467080012360640097136449190407730016372007152382420979297931977764867819333080387453260423724759072889376174442553744843233222710443275144209124356328161851233369882865768715921169736527663536112762075897192014397727408223220960127717965436364331943305324035614009290333661413792438210583377911936511883745081024237702858350301805475938965919415081131100287087132760205127049291415317366055710146738497932010910292963502269192643064698580570653421329579118283772843039103521143776476724476688461932803570093849926355274603990612554820401346695336276428337991600892490277802305467471588392578550267159190879157701956879716996571027533510807820211454660803980439513006866386822231301933743031114610309862826916699598607755149579245682380421901742053318995403122962840606937240382958515656871162629675177400086954130235209126536077329008065669172700880767294412320255153487127697606706289913193642142735211447970319896159630292683003610901397164033511221672285280549789876811650527231481788040747280900971099662212317938575889345494923554070691454343955947921184513618691852903636161697646232453877012746133515184385253195093962100676108766718088554225374782216305069018462829284553055585089711757091120362088969399530293850815768173838553547548396122783226118594274093111620095264980349370895651782245046677453241281471583514468528365224574734487327677518743021048189647566648705961658841022490870212224385777831293798137650711452849732186102412241246395959213379403880983656532692940420794440482647243459970300058702698640032829697635733889552088103976773012963422108990413851814269507713710916952084088031833809012327264686943059839105620218565967955516450409640555031727323140751160380467807399725078162573941662420314001821712908974169926378782534301578844204068684887092341363614627359016303541507509067181354193979107794755392602077633453344885951294426655369502566211138454659566181760791568852732280159688609017031711217816611074381952528136077136084430427472549328031592938151075416165890045301361178800732949094450767804497281972745917476288340895221680502844775744923480785945873957122983924187140139434318913411540384364743250603685472743081000679568269464512897058523395747226259267103336410353995800459174955944314047388181507229602875290617850461140064141580079998712855225669579996772955461304434347670238335939828023276041359794880099567242470791878845808533226301627519148800648025711906508221339938315909558742669359698088215648266119448363047623087960091440627686592181152929249751431770501166581271407135338425438718060321969054776449528915299143060844376139641914267489792605996740398971483566811295628278585042465550315264920718465813799246638329422969375717492808999061558652035808245872309967313011671266892762237085146537838080082026389494625231065559679023138851355124165903073936980769835025045850936177799358107049716400917073959255441871047171476320383831248522136122040618853905368989292650373470712667535662257696597316300190439092569165262276437838507434763494516954967556932390515868417181142352682264589167546296284885309520813402982156599754576076654354828231501881449272288662421080834826130688797987702016223754047045680519081118346877847623058313084922262923778815598361918967105570727901500816323432306218780087262469267152159689093727776673498144147039322010558473140066987963616465395446933701099970899738097608819416312912646134174107087760753407848866024889055229599428513435110099436106508283393502219868792495298332377860839011352727905271087815312144399629983652544914212276018708976861440218330326115479108278436650230427048838496949340817961028340845352755109555306524523796725363133267133673301831257942820637582644126271532703789805928103543675397758132642724972700066240039250214029379847250881295461466567174040914126119759924211483822216851124327464091881453869711492738842098938391763852164257505187184604223837662262654730738921262360741020786929289090374471613201624036578521478390284520628528751165119871130618971763706648457697703926600175604239786103701315404659113003327587608385586990407959217880597845521498428063971776990928773483110638507127712552954257412527746110499031424224963278022724242789254557317545442416803230942075819715074173634648989921627279649165499573839098587930973252524369707994142015099317009599624304641295939717416127426921976641952380351908625230961331893781242414134929607702292087858254317942088141599630835773692949708054327487269181246606267440184531017920836222245516703691998905304955918940388644998164000812467322316436071514515268031084945048277603324387352260739795109232157419768593839542921400188836597693402024585056462351919365702916970451294085359499515995579691177708145197405646455083446238317811347693142051970518875137411272071030494263350621892333585544316268417800508973451049413200902244093454436787672298292818693039959994498711997329790404890172172335943633866373904410349080625547858737889891892915430978613802006985761823989688840638369216058264806413630868836048338702343449574734137445557910245603792272843338963975155366444091304277023291335821996497581170919221916371584594911532791185074254601145747748262840451450536586650007623756243893471317907193729453529199310250286067395641396035299853536119618515459564505493581700115692456050642733369756704672132065166534631301875093632835150341823442451105280801743421271478453920026469680119102337428110589519144444687381482497163922999033127757858947747802536300511859020508270171107899217574028524974679482816277104011534512355922858610626200830287965626865886819813812747814912219338149011318991686338460001675312560808703520040881545819395997146288836692893038922145774241353392794169588690929397979977187495278905747839048931329834626070103394351249254325556648928864612064211734724011245739048191641710040851067967135913938089675516411624675113286379865452297015168286935868100352848374765054174069975278634719658105150986220929469187831501428148831369324675417076533008354369641369520112951466279900772698963844115606616355511368484987576785476951789905925411433081158862117032483655868842495438741878808161499861041040836220904443749910617513239444447658296566563443368422359268689134770709783036715516281179297029853883155814275749525343854253516941938594965079122407884017425755050697278179901784883939649959845906204365987154188055458370262677397279755090816523344220953937079888815687157940235941326037995583517778628069458552801608298047442221786098877584133066921806786082716258109922663304404800486221687921723787201783816294775586446730374339219536494381995638363520207176294933863727579387707176695205098546765294326726937936800558038789117418352866204360368517164437004672555943837710300583576962190732906369979829756390093751657128426660829600232142073000876707424966886485829278729359604929332584167855112284339709009893227301984905406908717536997965044496537571649520600942497763346266726833530881730386149009131316047630525162730585160650882613302092154941433236969226830162483774408421409190111394996606632644288168751997845274265082780546656297053089206013382277520135128096972126229182263315474410287203652378212307052797140260573109286738430003384925890695472261609514711060699223357128109245511383326454255229501259517837471717772888312338045690146660507612634733219305953023020253759027296055473424794778811995154362874939814119072560724442839033510524797984148239349609129031043064576178210953751903457459312619206232570163043382019915953102103597282253675172738983471302557211172470707571630094218277032629937122615477599245587078030276507965069478819920967868777993376678413695669190752073671893118367922167769397754589758709501775809846851918948017942975306196578028414813284725708049583700425715150135872338746666281207118686999281049976010263533071392705128119972235598737562477353398437993300097223463649473339412709233373070040471488803540682929019472264278378691422982626804346920368781282424764767455807433184770898484722046048364610589604219512807052566867415220751446540063088597989049094169535410128947469432076605114083801281611203259538269944174196961714597113560783880310004663361164998805647568637327851951988158549156435996767331201635283351290983045467992608093944279782492624375591629345955372554739369661138270404491361317953450173532253089313578531592556305900889324813749024156398377518067275614046060386242118331943232006870846737651010998883432226865836039366238600322683246102371373382334877493798112421018005130195586534000522289121199161532433563218697727678654780141189159644370041807013170178972206766295284130830220080310835159132050536902746833156792625547478720818026420646140335790526070592220932815540653563541964900926363017090539279062748248982371973799049584146605629987935882437582410315473615524035994558329308665672416412479506768197402569442398537345811151169631403950799204355281630485583460993894707913733562185121649245793313134335186482969799041860592390751519816034140055289077839990330202893351375468349788797463498072188463475809483425198125571537093816992151877539664214938374443568232519992613935423931502335407112076752531184070994195038771120524025491494312982249536688956260736561271408178897110633112993045597055160043765098395512220717068560321544182385110938335958754762019365183448657911917112041547833550932144931312235489845837617308134683024405856508793738577044037375082080893065157200865488355322861562443738656448082291147955706504661408607642942214339914311002877610392382229264329913014445038010909917475998896442112928035899843286749036704880847516263493351073435289574991654139384299381290183834146477457603906345554583443348388765546038454236169401995743816264447992835904184084383712617210956725919366876026306415464335858928767880284627694535950662713467065209746107494658574350268444583829451843712565374072595178387174113058569549624746568392789181763579334516114700567668569280956412406649440731959882496611773524195006475391681690948139052926342088927808190049164657265612971765554933397623247815976047465656326348516471239290300404380121566489362913322364775645395644789986339981834286770186528705442953335251292308604332301540666891781921272757897753392076299516821747015377447700259859843091998601537960945870134895048736675011437391900864964285909052628836415061390788622295936635567288076731298754595984262941998955762384852333328443783515392016206187031500716288549072037379711404631962808774738941291533522474299970232700508784338547605019725892010598130933211597740393455175408770435961800570487465841549655000560661413641534443046132667335744877916067792629552912093325288302027603230432414748927409609544742336661293088425534947645343979323108860824883245379798957684680996173585357034187336121492063484857879571206878085510640921638176452948751206318653171542154854050944140197264431421059389179520468998296192224703183920537069473005202152484568952143801739530439733081081503568524376826733206838710397782026510414768128781363931884264768958631586895019547498377679477452046455861771127754636806148373207379594487878782014880059282362521178281331976980943857152147938485629961420359831442988769182124654705560798811655647952984501586326919058198515069736166071285695943402305282550577243651523632632797085950299479517057344926897117165007970655574441787813421999886476857753514987072001209296193458520157457483935337107824155526073918871894162546247034820479120448960144375238455251919261140749553628646808341329862701075476684138644948671211278787859452362471688168324007958680655939559622367155578943762759846565807647530310590529177913342721200556769336947480981160289592866653214977519293228194629099493492941526791350599712506913143752660984728154300412600212975622278976671389785048001890773626446232330809266404309433671479060421204817152475994086001790708268219008464435777794438600040808662074014984514280684688254683735869282932227040715360021030463548075294376786749492121111981504853494472399558805634973432904417837308298130001036513726511092351782062871425834052932325854803015444256174904672669649656318219509277513023802433463220613569345376115260717906242093726873956658433843254877749892434736464294188592656882667303836683035541845194677717991829368381178296120552283793790078185336620095183638368235685724802440816393023154519980688005342174969648139848634889161869917261926284946850029293815681804435052803082626804559142581908318077218431468985549447218677781529832725751363935752965308382417860369856634896963281229795851159674636571711546219652513809068582135919426509864996811326561135786164164251445718573914078147710159312758393823811519935676702671905954238484399755829400591817527447228522819481995181971331967845831621059127437294729405164574883222823428410891855937887043393390284156232602949642245809439992276752889226894387245980884830465181525192745726505917382224712914094891040296738501176019599296209652133066053298314679068519029991081604934677005673520932114053431753966420647748374885554103936956163630483923219012085845081980101712353724659428686689189665843616729655173615084668251840845022403486898099266434862392609672832752096817601933333608715494768736883523131164215085503292428090577379195425183173950123812012641986505392742185573434841333288446829372583748817596168425164658761185896679391908182682244821016567997969506862926081633468677409166239921979317221963446794233986511955553853079357706445846917482093003970785162595171116403733688842588496969305733088515303585313682871700157025918896904895853606445613024757962631387403169614898976834501056226784927958483762075110829551859588713476024029494446631524732387331570390905971230353836049667247253607642896366606360478635350674670909921591329784624153015134623484914593890901029896583953755405483666836868978716491459427452032966007150125449031150569832749658811039175203121478933186951146392310810313947388740281631801004264083412857481290859136315143283632008702423270191488796757280583844169958473884947125224584973091496350826553411310377182820720194761141478467575912688871928465977766676431082770098767689990447956487351280139860501635589746332095811552326987746573742721155732208507306277687911619635698810061359762994018858918687737905532142825024927738197404704513249364824152295461879587432078276298037272101303527807438434852134772873735575018099151705799855519015594623691160345881566742380918731749246510015498939234809774750036484953627272911122801914199428656072380041786819919838401641802199389709856907183598514992247695721312906545387851348233180683480605731715705276872648721871567937703402976277550447161051169169885532777044920786949407720839834593308458178644874722274662662268842904150744705353717901815767341463376263656092779830294341763035066591071998920983882792856030493424858142035880681061402795191207553038348339497660574207239834895906569285683527823503719264119524074261911888785036031963137750186943124381800125888122046236264534782594058597747194327732921631576231519070101394337333779834148980612541652248749075868177081766498200460968643808737568503481157315920158171963619154322363197109857051464250894548651590842210680299719835701266770105885059104536119993003420395617747982414888807228500934514417216107864014919083462695194069743565714221414427129386852916070242826931201961720757356072034842939002349744977186215207730024158222237769547529897153470392723409095584548185827111019973106874023588393345811059702920350151544032810112287212718415374662363926478312834098035146266879062203486116317577242433951868378814665501066160151675331284953161227369850400333650317147716880771110016062906265116908569135954945528921798079872547028445759658340704807625769566136385515420852715281312826053687528829193815632640215916333680841779219554262417877401847202672023932647891513111627902622441179935315378285400169977638418088291240570347028482478329230737189481870746039512468081231549148309590809145407365105530926031663025296165200222091579005237219129864963198760645903800324120883043249881350420441726310197029824779153437271483997132614275694056582741646227579708995205174037371443683234098948420222379489598799856078427934596743113902917785991747284608768241230384075340587158283498211074537854349195034623679440455232072367453378280358652475887647142207197975218802748705835654858975465224583146068450490715578592558843760628252524526429677897462710956744032567332044806271031638755986157632673480937785722958944783594482551519457823352553524808557051844972277864851444852475352748963825109842868886675344934203190325983191354279446646712920511039701416598294647821688753075116954125585807393714882040306923444940930295149223482244457716900604007734633966671722923944670192136469957189988208126131464320295925181382366668981862839693475890536813052762969844850156264627850478885570384599573179664813091317221780099470353770368180067914801318692236330788719911568710728405587075770558036335686517193447355722790700231514734095457333294158205308390049068548624385413984013940843953894306564178907690060937514160206014655892405887869184614272805769984125676885714106186892780924543272100572487470898478168330875032086534836472949617865527708640437394693119280992203206007344922572307220440723404278068101913581586522915071447192044472207187664659932269502112132445818977205468240706124160301196839003415052098098455364859397373576384911295595544597941384688508547638759755054208937025080706928296532884562137163585696730893445825054376183277497076162866705563404470688675279489444998433560643154352470520332144599134259177051670099584912891717882993005571928466325930379881699461192895332480071225451611392441069985499173987451446689799445494348193364211605133829577778332462553260012682969942354105261395924605684020862813215069022514819221861334299325516399201196559180018505499278025144877461750477371397993493346974353174982898503331561206495414296274925552133306423150499836172493127439350887106282815986675621442010210104847578537174644827254658822796412684031971608177051922236858108935896176609442817824991342560311612083341060118727848361251634757544533344359405956152998961616472796639239866637515809523820736443300631916987291005806814995454443235717982532950902259612748265437835863291976363533489801302164415843638983813692567200422477072433423750159109490528320551980733612137004554409012806390080097496837921063078837967684795842480886470191283418331929040635702737677180339602962828666455183575736021924129173142352087835071124297212701924439190452767354574645394912091013096022866534888987014664495258399953376859598330178652449242822895767754207514605405969605672274870779008297263031551242583639210778913784497310002422632096376910639215601680527023383478994313823098680120052507163439846696424452917161339328189441749100530666564650778409664298436470188153123330002977166462848922650287537596878411503893950795388603925537399190634336602404890109599096171990438726543165297693246590944416682392102713557416860341916999269553546304476784233163115157516261359835351375701297235929428293351629191605453364044234849784371596603715074071541429084919462956774875301649010652869184807018731540199915855585850020515300452235266528448912199243811297821381469435088707691987300376310869988532248337046502554916988708383482931351655856540080497459508174324404776693687024907399733863238820712980663272539562984905695574782873890621390345613366889682325720727600441252472098949392590972090184429773859341911637825014162941722972596864840389404983322297074038359472666546211817017585641592394799528546149628654994056398226176806765896004223174112192932071686059526496165700749642106057338097770064029775522843737310222958924667509839879098574346571095393199259974134185273862935986368024054239991905244498958973484450722288762389618443532870279051072574594678455831425351148498977122839413403161395161516666665157428447217099108641354952293055249292469186229787636321134260806692922268330899456140692026437634502668894294405737115177439589403309243773819722097410118565099120772052385039869007452137119234901222609850160079729461481262395861726066791469233724508187501179458763497427441168947750207909286528789210569762931451867818783591742726927161274856127710438613747176673984068747951656470215983127889269623377237693490264684934418053058457635508594044983057505147159262478874502811388745169129229470788110371182684628799027023865723162232841442573052565611146021219417124855408065508559598283497762201903602159074302220507434393740379839774662709428041608380889393763403963503989181452777905370024295175706842889078398066573900226529854516642269691105889595251011112472593662360024515256916141741942110728867700237006322442504992614853306807834940449984038595506516861214033142806852633854070893642477751170816548163267610637199426218381619938993270145882903117689200514281344333722869251653300497142106438741653661185475188693248749625249185212309426660909040952981595159763564101476336947251246618631625550531581824850291552061926946026764021208562448182424838040135688493010260752257259558812842080873039978199748154749232119179735882120731110801672311821777665451372909030570706253128566108186795819066147220356440388852844979708557377840266014228150307804060329108559216044664852398473465975861082522649437365923171734879234402188774318434177097256728474254713120483865204581513273262374609115734450333522047781802228309438752522186547353790479522693608916884456226685886664022541878795366749862336085342731070794009846384346581793481378267390380751394043005313367631469535551927213990112320859649918919645015315685554318567129372777258296377102231272231888082146642049415166545154570462433108170818873021805298376830000305630792637420991507367270689680501899286011940836791603959886268987635012853866883443625103051617485781761815423225193578256321336507804364432274815833042328076158205085379899820523276965747596574055506233853954344523561399274725324922338075601661329741145851266240208805969816631531692818638932262628732401580407754930736425663257695601349786763385818838993082356666002383704766524501371184751990103466220890067746550049575906951494853838963704365698689118399196390308914444941651615900784112401666577289854988704462275349520617174159801017027744800040079620335709165670151418208009962556193147339292439841942743003694837544914166517387492822391770514938461477836041706222363875459562772240722921900486631217971974913909495195523171472147493980778311989697424263922208748509250487054649267376591981477575866891740062265506498614076448166174328033662528410189008129409143693920157164897187353645093563152892017236341355839549410594063850804164822561512399272470291385439482716410242591603718193634432099683265675373899683699963604109344571057891231927199761590405287764213902622856216649124016856238426045820916322135256885397093383845044927391348268405071573324759129876056084109932667965286582268056747821191198949249977188870801862127942392268504299462618355677094016336316404335458099326095588750930751768097234447002788782193843987148846157186281287885375122110717475012877185178623082774606964563017356943700510989251313601828745015293622435085370248079051024917507033983175230316137890992888916513878604734696104279362664584014601100639515083791844266774602646411921569366808922864151738540369241466342431512239135851485609878525811348930539790317937600446836812183100429083141584181761029133687435062403666942554821237001157563099559266286412811273632328475391467987205409560518913406048881903962679319840408538576337067294504827387937191515020029781475081609841093246786320937534480011745373271075979913074974722839135038564244940367114273345153049701678322310922728462645091008774586733387010400720121143485753755774120567145230755222495721170821726022415644361277683295440832412404492616235163334580799932953353810051424324676047317633620322973794777170081650067815870155678512240291045513558764519439573130669817176531775113129897383719871478506499386016069068092837249664822671942389692160594352105070084736384521929734312709706331040237710258522411131657558816801716688983054537371475447952939969071028337595666292868995469220109614051584516017723722727721553608704250299734780469558957979501520537536415967209782976830200137156052716523518396163759652733744335964504399184224342879265323470281840001670014600414612774101850827121066672073946994121345980818170604237056749609783081421542333926306218720817143559177762107619183218861742836101185022742680612699810150767826985885516968469373778230427636858957543552093898847448107209707188966614486999729493049177395697029000535960430011641791582971393327177625651555320077889824149680014264506119112826721449178038833711892992393642677904067146142463213484885758693416435713286540066589207660725867549551947881341978544612173969627685667614083183711797919709554113039126804977565894582010936723794102134697702959585131391196113028424209136543474727875561837830592748986995964759628213451375514667241553939196243616984768981697010203834853628953843245948915490145608065804807073938781126769895670643040568264868473246227995618504824502048871934167807759736798563211397276973858898519266115134507013848665385846925848037335960372717624123412277860993169952943299703599681554078947841439100835519731118323015282897417691906050415369620992498190220876754406146957088774513530579833699993063135000421560458254166519766555928980556125410537872751521183956230285464527962170728921382498733664085250097243972334184937414970015034698754377110175126330149472919835712047790929383654251044384791835589881384687893969096506914496076896400783930663980222542767361516982190868820791048577268928228906307930194987720252597772256301351691808983413020276684336800804803507375684423771573855253716354942037058614197578257436279623749376154808331324508366442185869075113557799926404728889794029014890521825366430550878433667749890612229340275334496653623159055035925872382730517332618093510553536918337780880342403401064722245892619551143309971653958384449907543612396414081111365117993445563847199894979787129136245465921756272291857512382103549570502878219436174304267078173139544164608027075413691519206433524329663530416303652957480982375261946501123998502906056611495618522543490385134631036806603495054786101143706346070987749608991008498437327330629259634105936470547735510012472909970546618843031006039803957747363023927873576372036463566651975399060850143798054426355477244653675705602089382717593504106951936891492931838454479159042572282223188491710363630810034010504127971569929485896367917657722278401019800909483124368510852848002962232116067965522450576682399968508181819914687420403192140299236172021616728468458239867232060364630405298220241843816800371525867102825939160866321116687549813482452864784415450516389553275645234549310760410171318422141758497534426249888950862068078103010969233230514755455959248874387164756089345930719657896860324215890039816679988241611212451106545224191909892439582035964582696355358327224412535201368529447063185195651566282834113264917320315065123677198286419154695263466914423361527564486923873818069240134351674306641538738021189856903771566755660323518435672085974640066368043154555135041778655669807599159744395668957925042766645618347525792373295196512724055911383058280535901782841268427453170714110508702347463418583247079351058402243368086078763611404707683917289949085622284946566247802756424009010273940021748261578871069462238638763947859703753959567714334967626965073303113747075686550494659179981233312194102047901208784837097457486680750517498661077631612701374789938277706056664895123144720788672017954916051840939938477507389213091103556396923705640525511478351330790780481294014537315966436712111075533760525092149048338627464681907649158852419170503865654805926422460678347326886542454657333901912033414851388243025956819275322469347703592711855632025053022604795634930839325882487427074388465879636503309717418389060235726330584698482536993018518448057820477652294865493567502344033999575664678886175611176015867202874995410433657940809577543930865015669125439267619522256762067658574863576599860960489381459851995923183987454068933849115548800999115834577381734699815617370858739773478909645933729749794353013427646586340434505159929670377605034829135643512587605921328344823070742355527441193106258030356352502598653913652011414555001505501448535051589747261789925489722361516855228439465868573865742872314984133202682393793880266572287512644208254737080580344927571081837618475754059309660869211173697526786298330665640804614079805546176829898274016406574410651276483624884175262437019831930265851313049791710394672358894323109000372732113036339396348791567538475958257414768451985111195304356225695690032922822199596490686998859241606355982196773985581233607842468809254892595567798150965947366082231298070312928764844182512541015519762573924727520597697312009362498389296247760708438629858948686686014950471522739255050413964292423686756715092494916835778869964372057964680355043025876141298908916189179442242591470526363324055218150793444367532009598475694930120399823011858231455797609985463334749792021585079603954772144905086377942816600456469425184461840590828179304649404489428060137297378050924231029773700018990727589031380598767588875968341998995108760035652329318750637339114664020713288132772996249784602013957896088233360950781558319135887215554301269646998525667747835764366136746903532508883253825731452599155915655722727304928146123695917034680869168350832384617928678158835521725243076898499865235400463310580589414028135481742548316596072075218535055010240256030282883180835514203284047298459128691391242528772176483328297817565940965273842130674020802936094700428751084805608907186716053733396495250946603078983356883476084168128671948042090965127786840955605069626109850495745714847033617378730501453792288291928020215646855758176427361418209436192640695846057722765059892242933399059873608447372959264869815242343857613672970133995095298164491882973542966529018529372464036377502555382333052867839135205317006155012093681009454342109198772200078368067149998260828807355014665083529762719648233697202614446253657173643889095077329956334940911782693052713536024512960490549025429321570970372437808411135375494345485748760398154252878511469275780383846103665781977072086100410359025585361498752284430848088870473030140682016385361792486389833319125280075795796085047640403951704564361880063377949200642321184209626792003456687476850379576140744034312404497497446912040577356218538038156879755565979680443596235174183897801127832475037971090434521073153542322668735201970937292116805509475814729935574049535760975213055450495853804699131051962215254106043792439779179190485467083205955853640642521073482029068243913046248035146305718856911133131452252379138105158428605202928827652961383459145968585579178856850957462430428700558596650722492527346184544801681840190395463642871426488682184613577896907927728185123876103486498293424405398741114985087824792679499162892827466300616937165357632556563368041710581440032908793711694793905544912266414639532003546021683555663847029106891262826525354827761060661049229208152353212530173791357124324104807198712951113483535524438933720904765432154263016973614543850980338824605039132115563588517953090637853096915847189349643757608162840846612452460663293292799113932986609631985269029399322248968381230954070979576459604957222182145551661979150902360748659823540429100602226365363068979961602298976474506896655647357198701606911686228978322666465807653674627453680465119214634305552481332282559340117237730797376104502799865134994292675108324760548159155490012337028753772781911416675940445407547764625265487378022721489548530930829017494340032819061655274494145003656015655165878305061804044745272320966514968522150216415800224334675717598327274173065480322632688683911528641066624764898480533654553527965312894794073144145935899832756531951420905234220489903862618065121746349194122059795093453980226919820897421018199199117889286158756108988658310878838144159881983495632396166213195277547139947142175056966364152721112231047497577283312427848781444636655252478537683644068467332067369360125477943644043544373620110612579059420475456207188434148614396259667306499199988620851630578740443907405827210790811251999460414040385830683227144273978732933445137786615747473088602368472440736762694045807117743709623220350775012699138160685174487527222684509877341142597451061339867427395982886018115767291672780794952214205229600805457249317009553016127616052253993678963882768392346434219592450601937098717890344952190030948001931079961979055716805665674984463008832939753189928456955522193850113639981265545595269861969452729562580583112302182393650242859387408462270769289800550148772833273747251514558185791633784029649833597779698600642629073353958282332614142113408519894301837779677332821547878535087840118509636386459465046025068754736229556815977748141082673084165895637955791117275827902632240268214925284572948101294064855256047144170917670610776687752270013844684465183786876929250112825384758907246857236597304351170137928974128721726352562853326754467483613582774920578171403165762806868679378847200642975621134198001064097383155892782674569657818835122906019525774740868892488986614410486042949214622225052920813663569995426954151491926035048863713919986614363081951377960659348176722861693981896813227572183436941005841575084478596475291895331657227688595250389647951074890039884629742893885801518838521155522141625372295819117233668201260230023454131617483408175209188253086592981012642311261192710035152990048865832605127527046759125319870725973852667563169529046421725576687413567125583175386881336433366879045808790489452266318049345583657225031756061056733396481796778119600786728653629099818579619589475781390922475021477145547810819066901387749186285052947618310321103723745483910585879574403270267993075729663887214574187992440335177293080331854024582528963336614023688928171712743573105222158499179480794575377373367106393819790599664819942559940834953550075292941684290200702596427466766663292150383471922986867757972883690407259373233522815504143255517387407537339048433585818274236879016242395726261320760721274515754247484791449931249308488698404336262782095260601791121962138413268332680349217558890874648262358525467695767567963026011411849828816490661163589443356137954589850890302954814922636065899564172060356345061031795981335898596318759939148663445731874871024019132404996463486587388584251512374040308049781792383885715890255384219517965900429318111552437627102915759685596508875562906400444307866903419950644478553987571398740073546953634462864538923107207979752883177148493120386969079985111898829189771295012956670572964951783408707613347484619612095155773860244397919789173194047586194047013468972542199409273524500661698143634902646977241963705356518641763219580987411871947285027634777607048749046315382557923575071733171201217752599472167772601993680123581585365459668293565928953096250173229754540237247934681958175099776004367730620194524669748977085248140987469451179297252517224888491914334150219611608425634619081227400803627409061818523650763235855254950768663515101285158319652527663345687468808687856885403754551323496266324190902539759063005530038342462198558130566856148672012355740850953003899253078911962833418856604005839866127029537989340062331610312107063670131458312592033858138264692376969460510061190460305080928760190873394685104939693341068795247010661188211462364775926558038160533834968678482771548935440161728411185165424759222048139678178336990125835128569630218937765381423405509094888557308973276830637720386310253588778631363859781013421505520296346195318652817717965992854956452110514290268602977029914149909008191288608477217260081002659503155095272214387363439602660774264970241761096124676019524972404618883744314636048692053403397384656048418342548045638215694145727243417167616238131614735517947038628023402478660443650092651637801496535324568576786602652335105254781744487579197831449590393589461254130055331889050238256129314377016319393651928035386589686076666551406472239102782506375662665911262065356287746462234919970396969880878410160418040740899054098734777074911823252041788465759318890782671466443170507514108038667399060894037120163378773392370850501442729864945858153048897685222186998553383940137750916688489217223849019709340079555459790666242236682411749706166508958852306040288926869298393389010916880903203956189678615039026545691895038150693151885881234446731489263297158049869096777392496086846664267076028851025472160338964098044599670772649737920545868743060445869936106662269328649738191267518871544422024682204603700322265751530652447249647764798200106235166278643568021103281999339250588721552253707645937304534075820211068570679887488966697347090756927376801123046049013827243508753822735697539991424660836722705483269001403446886751023469444938803425358655306919344903325865167760975440702661881143885267560847334474248011745387240560954365953443414734378950563434897073617628546982764973133625486515783666717254496685706926350245680261696610073176407304987702296679602590289632254371096238734838655175386716101984546370649942834477297088637010088158893068382257273895001583948044473374748640797223211308192135705781270470571730041457250688775248399215308447775708413001836305652268396723153324063931808180310098004050225239264335624763194484739506618379629841946084742295571815817933706246913072563525012157612295625090946565420972416810888050747874376928516461031796774644549926186106115253112722528089716219858536736095745476877976600803120495781543007827526992040255382485725666169715123457534879109773770520535444502125581202174556638593453426774935780512820367065086997803152516198662781875351067302438262920881164018593553978807709641766678975905351710390329189077254812956577054015902952958368793545266385584273877478858967879992615716524654776883899433776236766202980132524736457778812612406935647127671210168137556621790978842530000169214759970317871056008677566124618557204729467100404632009296527272495709742112135182240752211088751612368725530406716054065573419285903950914050915104324469441742099397477406034042566283062133773818065971391346363145780943599863606403339902862310728934156532046791761792268375905869890906292739364788567139886567020690734522327815646728796971654265696165099637495917770085668983409019323070819858647190457808411250576402658284758925050209673937612098871834355529490751346951506789211487444333704444015194305444641369560664614375057384040008487082252274232715133209925045948520854944398140626179972019374913159929727747755618481672460131345004682262035052867417698925833626750781071997356114529929842790359200317745394610556256637792446772486401103770840079435426198248389211865154443206138838865187784502958432261165671602484594202020036833446059473497401136385971948193986625792431095865795102332353017535172829619362796509527993495450203455038486356477395551810402317820789297334839594651027930469561904649096352373557410532021865939136119988440555635559221984416482988170564843337678875744558923087927998784229642021809058702373615399004570229664690966856684581835011614833266234978238996622096467821782221984584007234093712671662532446311428873848642158878514953425822387783016472837202962681792283952515814690780623909275192564787501432358461455545056881954332423406198871729688097068158754001824069769626108828021975002120749013190320582098606214993739199104586126323506471324970221485623422576484821086719120490832552889545483811061527103250884047090845077626852321950994850329710788105267740871459972814389837632023208146207264847210121349726311319578579520383177151874336317764626703370603330269648745590774901886812334151573318092896820052271906348461231998790471056920941207635305527444143187304952915290935123464348721828061063415686267197589312803443235048424623834134094571878467004535839061278718086297176605856050740098868924638111516162757731049118987013773582440769169312056575886967179404326368984895111576778169911162739422052184085555358547281649911257789907663627082177673890802768570368848403354444868218671180746891869424172479413020056695991024280056398507904809574704644425571480647913070402834259270824479856448401856531951795984191451911302294332950281235745923394559257738073542701459070650663209863191166341773246872530822870159669603489895667060072396903006964567441701844340332565908190015896559205492913962523182468605108941007747997300610212850986423914721916212524793797127992816488952303174200437802943575719816239249005396981745299619907581270129482302474763279769380080501168458482778388585720811080458015712272088346495478200528011584323909491756003049065825892137903539548341732203059318320871459356496953610363096997508195998962151104031167253618502800668747626144525402721842742652467131872589978305054239495754439759128590921408571647778413330753346498026944887307533842762700367385476119780794400409640311524295758520298291513885166139160110362655294845430671499197241119924323440734850788974357813216188796680895196784104885216487899304719700287454154309831051314874001182237123561201228491149259106743677411852861565029394852970075470941536359326353406148107434630430290075311386899906179324369253137477855676460432100244990627576917187144162040446127494722792033325374013571150339324035884313087646859266993656033912413712315608050199313856813066643924669551121001699915945192606894108856210199556560575716852808585441331920290649163558606173310774734063617446243482023811012519477470739048251479724567690867709986587743091506797381242193023968597876359267282666205739617312598476458644774291149226177484370606665441517935634467232481997883889852257141438891726850189018330959120422920479309746892936650252890094580381064224819049000263949211116712826715667525409016521391765108193678356512972736615154616235221154959374686658122553004151475735889870013031375389038791518164859759486816769607655504995679057944958126310889907626295879553312566799549896711708600998009159295276548503206543226133787767067706512577514885409767067865191145208146510707329925431460248350348307472154407550387417752201363871185761387832888852928826730355367240696071001481271907753783255084802649473043575798923389392434699132662421459328669257012224815442640626512420191808713309054385574142749020321105000553298389771188195505161100505138783102437959845943059911626776271168883698680252202019442172308780357511848495891901707671437270743860765394017668338869911048887428783435527345943231587828774245252973515677079464121583469573009957053526773651819693178975833510022470626815051357717660065753868813238496127856374155367344868689211465101606708493827513796214160780729544344847499283125784556614823788565397450294699505642126265548073667824660025554328309487482909705509963777552367683595028799079389848803782817652750226442222795064329552713958148380959216668520594212857140416586621627629731264907213324887306553336988582952543421448763362772502365000266422094018146507080617210244912925019478613109841575185079590894603320280523061098471655054024671677739149416797248670127038109635436461693999616326177661809783529427527689478525482662133100933625553848143816995840023658301480236473767902327920583272940931100773954820395557623004470324341528014251461337257055098307662021812797907785629361621433384899389787151843064624773921798865719509327892263177097385772339273779586227378087790533922012553040620611663575633313710371582226933409946988183242049720467959122145561010160502355396045341590548458538588639926949679149364744279653064471076432003002647916319248598678039504105559608370706717697823913884322014438108801481830655627858934207235405108744868625427412878173908766497320977654398431936950555098943369132169446459332417677205167391710031091493638340231948378107790361653948598674012144187167205261869121108626950208875998411840211958844282626614741927465666037910205392952278703176900471446639259453117123902255877221868596485057108455710106365173976482172032620358409806040187718680841825875544434125377006755021066020375328071828539285164173436487373876682921724985808347220964897775167780952964478207291797202306862089086632506517211361058323386114825814123399513266203755788613610430303629844045825326282180311363742744938410745513242354218190519295405612233702942015228213636143388865754372696801093890953786077060406654143040544487542639562331594541896541205303606872399981772271600472160822046004904174791042173883200897533382897154586492015387944862054859010946077860985491361609521062591809565283062071282630464329435779586066608552668317799126390340810138645169732054014303971681073102131852323455347137708263838497680001994876090670908840150722761605841491585772175504345390043887391407043154218627735997982894036719640592635003343731575910081460859694547351836724957041259470610070010547357654472063530706952940932373427603705900669865645706334755574337415012501097804578901875101137268512052956937045413243606012665090479208803466003998374565972868385686199146026799735599930035038476055382815296766965021797043773913536720754735634795974514782907815984047151080819269067472423898851252132509710491085891232948047681087208696600684706007240620203777709975570433119964106513005588573834861856806723716742846722948151888017277242386949164748257404003711104155822779108187905233574630068933415714819365573635687517943239852386872572976597838133904684939241496172623587708652881532190540836581710200824240236808577857250434314523130337892316143714741874436437676437450988658203299863637833570189574301209117183269912142250604973687496407094136126770362643377842020828136574381802926948437382110630752817387713510477206266870725982231531880232998944676069703592561920994961913808193047282503782513064043302611417492630462907854902102511367690750031535392518908642031085666668332736105234998030943345664290455043044102202051051920357663342708170538329810318595579096202355232713842211519886151961181113381601918695517091074924054282844648166889066872248172253308661188195484374897725150904575350702292208203757677801856783446266266388213508764253142114518618403532627845877963066196518942301600552110858460882369257368553055564704008921479303698092735292191257974024793209715737998142520271605994393619829879901224711345997510491166590489290628029367105498866195320424340706374126327136470617696772910507977663624565656046696061693531543302811237389732159411773661077964859767319406346490275402218034196977502457163233866704357912361946760603272672862953366941319819383817828768899673079172936275593015969511320144162881646602321634458366817552033730808037856844020419158193802739905488618232274254773515965011343689413068502303155745338589595942070672186167304228342620753913324244077265770679780932444130423580565556476144007112425323654029414331790929182088016644618078816647823580431365201634047506607768642802251337601834618229199466278116016828845386462031783646409415206277386199458008446363020888328863281690375970526619107573798494377469241090790286641755936170127243016606621859907707512113956485734621193868926906908518578408313443560769620928731614507222333329836655539461194291954659936519753426704423262588059848752452401017212669156253231062140486617331025830781506102098946651337064747432154253708609519851105211154180099231790103031402401289922906301939022409065042189404532716931260565600074911479456174739944642397046479038779932457309732707874641110401149220774148665334366837895096457544242574954473627222388197916620516918149366297772919969846458971868047766523468909289071626428325423825046225289215514618707584042436901401151040434477791914459891002113648763301148206346584507359919690786223174246995844811241502882418249242149046951748611903939293878900132800723785690163318411141791069134290176139534971606286314591025435204773638898785343604526299079956865217755057068724953240244426934257517044558160886735883727867268777732535437366041223905691267033517687363352691159739765218437767836570652665519472542815005142041544419323743437233667689461918639916176842120920726711894530359037892941602469677676617582403132179424279314855796902393437113145273723547921300833343026588657510258244314404749654173456396293801679784530585617771749300421958182908082064633671756756828003998712348775665816401870002746759733432081442963681247440135323807426590267472682017196134308952194213357003847711418238512570430440060941226390110666435798732189363627076756514776994584816932804051543034868528891380183606593243673545813884230319092357103499144735383827715819070862332487977483250265533941967788894188804239001284996890712054724330380109413332267116842350213013594732295635777318408065872955900791053825109719875887266052139600013054571785146064384940980680397379380288787133922861940897128699153196656158354089906881400475075287527298796948122971651282378296587069354437308172160916621167649623138509743175344947803504801975098504367746427729124143317431481203750480137983597446884230821760366306213789524724903580039647458390060213974876119499456987379024362411917571096031671510399152637578607376529412241994437811085752303903780266010039352482894266814614708015116471952859810798402064510936609952001811314177576567605343232897473723896774749746521894438756445078792939291857702283062788638029322547469069858614215092040370276366235173313697007057122666450418919091974423440046128985118449209920833026394743322458934205840850036272812357640614050071764788999670318094825736004385619044979527916127135812131486203722410917305698945727136611326910837924803290782419613285226727328726424911153693641973429935003179776819645570835734347229521499863804250145460145364094629161407339872433961054114916951479861981512862078554176244724106078840667635358183132689826954459902339666615535331794063266197156628002762726008329933100971033641393816324019932233463348818298645151474750476847128598885695444728055281018241911295489782157102726299336627714962639757527801281736484774832482671384923576656859849205991893119333360561258222442260017795305813141830324232795173974866099932347135489433081978099776643952193739202987446135540472217307500298070669761150533236367144018709010573859600537544738498847478115190912893107091531557201937096823412453960731489861913455122505306994851352134826546659249662811334956158520549547672970597437005144882683003426151289517198163997538791542065384916974923925239779003292481948017785459270550076474313199745845729337244954474060383803615961399914764756870694077197144072843756517266283051723993669150090346031411233569112367277143744625663906283340964934865508948225020261659302842157885450465815504719203610623853126314405209965330093713277927925223272278126195224142304762786995014140631345064894086170938631445335975623913993274383433925345578504811849059457075376135278298397051982129022111029177054599223259485249905624240652294465711103696717951302057512088134011735284929264878416833215374281299055265411765901943859304354926896602248981051351883254419069292725112459832458006645489390979776189848249291140612809697377012572440286040552472483133027204656992158156128316153855051802033464233142160688341525898311899181301082062002695314959610694839441253200908626491787694064281155121663937333987855633690910085885837158636387368188343001618497349714426541532354028679327819803665218197771456956408141792927569791604860240054459063250767665427065390290097921670080860045602626444499963194173038584800075682104447100377306848427486774418572532508346922421204619577593116752186685359082636072360841403394030826448015891875857010270813037384909308213815163922627225340887201705836747844776024162511308554686022955109962023467057375667660981771424150731612555938205644520571739760989324098675691063726642170241146732595841726784644080647739270547725205445012326104003164903558977174890377985823466465122041399292683469861641288989904989939986952830730635546600265000348287940355203655671834154278333515145676417361981889455763883412839514977971941798416182613874921488447529188834448927653904883489296284094509357598966957655066437759825873137746844702040513905507531110790788350984677957879817458567165662941336122155302978670684582597216228201587741704336726989910473781938774194404830382115044981277231075427799090216252236488789282905320979899556496753298350494493920968325358754157317276279578096473408606426247987415219685351850649721745162044373722413694702964644037196361809455109641397574008457441311606076448334983640472811214913156899324210720117109559655825912257184486152206215208728421817270865817882090014389974642011761128530246376244114415136842261351843146158310136870718084690048859267871477439679956409826736358553703610614268605615505538951072052509696410399604330657819513736044642556932628313125699344709676676248784407264843933774985702325271949730060319181907512878556766579929204784505221318279351084851509145706378229417351207614614428612075653677336706705690050377578683177117849823661786237991328382027680038403469140137497475776896486287475119684219561253091364827784190341393728907033748599375563244051129474738275343334847457220333539618666822420925913777658942223220435439350148514911908937318119876780861208867201378721528739555731141755996357202009895402871583891066446315559005641718462705794012787028101697054260566747331053211851922950610668611816749072728161477872514557855418992440360385814801316750787552138544843901129722228334213348316871018315175547314141847799244797708691179467910270797038462139133706723055085927798708078418183871288026160248848767679222396346096615306376263626782609714055081689105226091536542695209601288020856228054223882041136811425379581363745355238722745557279581757304237645238118564916934239191394322312653503850391477149708353432821148366251483894587825254206413312837621259027963281929734892107051564910297685166361852283686539164020880199251331335033871068892818774764807047322173424977371951347260849804788442434230797365623268044258842574027077949047517744903838446418108687176763206877472031766469594332569554096130598773150083827199712255803009755641480657818507047895555716300191549450052320022765319675186795042300990603871734496375577100825193186114056980331508143591904533523658615329851771628512910757905283371947098753738919422082574426804182222522442030794965458386908238773003339998317970082890077891808039873873032851935269385677843317623570093714772513085672268935502240325853843138120616601644875401169929064596588913832388314987603507479063776974832816319265725900754912302390308955949354748132542587553252172571709631233770709062256273892696127707626036304436749483519082796460067387761876727159790674447303900040318728650117623882713612323230482867632831161854286194436439821445648648798421894451120248139698948651961387341140431124323122704544183617597631953017741035534593851804195718642387666479982172337627009280183367270187197326304386948401613184841899858425987104780426024907399290144938349489297674045514357084975307182541231795769735666590118103471441923437912549920043004640882713558685068186222099777608821903281996245407509874351646048314616214196996456573580559986336007226285449769788291705035044448321466410018424194247870172033340039279103400175915585835377610822951472456730063117803387894200378836393733834918564603346138661333039297517471353973476332864292586093855114502712911642096996364959325469426058636197333154966270164102656207707545574358860311196124014680986820820214106806833674602149163945181281529273728062310804195556963692417723471808695193798684945274678231064657301340384740210824981295748677249694660757590709752414819384457791393161821707025727328332523160188611355558460495061747725053428763534109015694371552503945793459073307596201038679366961173275803034097852561049521775320753165592158031117908776710018008373181918113351094930784599921116881919272071444640523132590529355148913178745359525814641296241854259945336328571237173161123810168484223076459980554599267728948233244541913492496832557303410161198704546574760556874412417494389846873059340305671859923998168900551900316433673689265654041489667738774225813338799555568859282996687316682510047039630605131884574164889343613751340012280865857036990906982788284993654316771165261720652364683918705200741537569526677802029111830056255929854095560815264018219102493896377680945249575140250830645059047148196178961299289362007426738692887155441916992901758257978510779814843298068452091896451529165406185283808884973289356383401072539982135102016226136016135939975162252502307683148955255932603301094485592774748813729142273796431079042571811714783146154924991243637828726149554903991301725487809970797296255542509930298231179136364612547406065960479515862707814104279863505187425743060142411501043316739190121210346534020377306178748118453673924278012993149345970618021257839252782223822375281996825829902597551467174994280469258894479723478653091701291075982838804538701951031603126716590131267200339262150481064630860128380755732122927676789191534392239539343564509854563153335368928855679230792649030145141848736206234103388962341422876076184147934902036929382069970137990036937285046760148328137035066866274995714879694676058793932678027916916092501015556573070835279053419722858637580245288913416142612142459035426696174047843963694998697956161255028874362586224821853759719248240648018046699000100310612439965514119626220468700841584990134100565754597366865285582761829240817547405735296644557991529871495761745469517652158128947014907282145691786170024805188828562890927506653590522169069751270054259994577959794518772219536735616437625575911552972121123427627373392010553457133602078970749485166888045278659970669185771807906970650435741635494258599558918431961053877634217283836011168410382872744432364969692524394775596673928916594674313587429489489602302593969981560387956237829325713236842290687238574978527814536992018526807905558492210530745383368875440476764843730493105010276174167620253638014527616191882334695767535319539637916691725985421349614226195789625441901670018306911001101071402980312133703843941349746438658940455515919762687839332363863284233863400444797905123781543507446734391635164328507450606172790384026790260014759900286087367155937824628173177249407286383833574758941786590558298342897479302751378191845208543785339013623302063376219418722375537400225850319399305780804236629795175187626087060371830156777673267797618288829158768702002141438760969158764517382222952244339268129596835317108892811859940209168971975336522919916311252836118440069204671440024062433913249278446305931766892196437164975388304109073976160438893346279492739360937895320475591547382298783582048705461463789166289103538118190511489460484311073009913788997781946443950586272783637781333126960605856728750567320815632668776036280915137935466832922374228614473911323473032641801464732247056684488733750031789032227634599198142165042451667311982496826198002121593497650113461459172900049592089490791300810414085323891870596345739545115659107053020803301309951708988715283641789634589585337237166962965529415558066724365241652202143651339480455334390381608486014241614111848983994417570458813574452072577442736517651005374297971642096586846607357263012451234785933577393370559032927879693496803259121693190509614118875639162223133097666269031256092811179637366657124231870233294859688764447617120071197329710138665906113090035793580868217997330006139615613807831269863350023029974764771412886898299313040837495799184996821378256307576977831181872297861127102800125721341634144994551002392395960191521755164484901248140526512709697107596632889841981314393718371242217105558073826029941738935812842581392795589711100939226507736564581810338871697183611412088216552910174633106847345514456769938306291408316740904331910829265427029023970688330517857088273666127500862369237532618741537062563199531733595395938090490015482894186512717766711350229805761999446516852363114671378342481229367299518209505379908256576034011729995312601634226177229840971946145631741627600662353229367701511733577771444198234252075821657446924405605150232473412160119611597608390287675395992348493010340413562023940278369491547247761313158956934207623478030309860616241074995729687946454068794478246130701629859842112786029071720719624362375798605564887033964502118633654785640879456350397696422802604465428930203501740843613131359091737284686506718989651518620402669314589907025545113566125164519822509025390594834001110825235110329653955934963578425915057296855296839137508945089572939537699840028793710330542984115759652742086159377718437216472028811922596931592458708840736249719400042031412112041161959777495646699263353040129117114286345566748515771780893327697595031492206779303464735101999473314053793702170220827294201009252893472542304786359507868538058253119887313741221516820030390107349798916224718982257601155656345566646805701738920115651440783743109983505932035086960366865357338909619345334990639195061673979557959299264802645360874262607769550819535293121459481278953402653928763715990680519732214063117950472437796397388335864137623548342824515802527682771036696826559362225045237836767331808515497478821455299263773822264704803470212182980974481825742772694733899388646113993365633182396749329506548075840615250989366010158937178606399862091507113682105530099251962010699191890692563849071815658573259205092647713413922131127386484409407297669587298191942332996825617635553234800479411520721658414468016811796544285551035688430939332303870240655034109482056844129893603325052420461711461070728134245965107370004572728946254590379138289446982973250351660129733442057270574829728336091818663812240921711219160974729708372034118835169573899325050784456468476558888755131976073288650897869657387488025260262335671507709947767235793054078340931029527408226762171731216690915689620949777519900613878385192377092452084936730207313221298391431454025044596665230205754797328934952718167325941870315120427353375579932770274934132786579949589951360140989419644748495889452676129039389012656479420211965546415829426902106950375348663544248519183163224575849407564102350191742182759770894421238866660566861416414569456269479040743541530279005983072698683355848402429404822134102016294835228906262564867255691788340644285971858399810789155251000341863097549916246499796931069325046750088000128185082504653368378846638152288174463958703950706934168050683841601030850914693986975405960070791367874756882449465332593967402937068088426355923278906349879287390027911918007866966324888513013186119329493413258066427644613982986565369270251232036994275721766825933283473117668673781101927271083093690315140034726219546382005178568096691375951850090565066358853400884220649161379647952005980548887132080091765955154025187704701664340261874007308084452402785621869359259330603493503522690405296183094380463715723213319872659849288097106175539438717198333039671763582503958864441320743322234405477887967572246813914462857202770498163734498024821840728558096314959152014254143542597816701376344391547536109011806063029939001542383019731528812765428026122100244388929591780330507513764802537094888419172579439924806474639945393696176952239184127161561977787463378728245073728502107788651385911721024608567191094278428585803562688001646669596694570908320971747646478973559235679843486491486621044852505289680859918561631769978328940679467001357163211680257572936561279546280320120900407954957752533239693705160219169447975810134589403599045199360722354416737841434342745292765095733137799044677806400822342817989014503534273356667771961476944571278619291696237060903182622204913349780477160491168022963323083227834435036878377011744200117547915973954095061289233309691809366418991444223306574651143238073245646550314532628784873329765617688881098357898657920712956385627650475055786337339472355966038041866696710096348888235617865484162372640190832128788456654962698597334042635956047663334876014529453616311547820348799218803641144006320636983753134405813911850441471814120150807720924113459037801526865164501986224175539314352668213309576250234172001270093289070883698666172869877381801681163642029498771670144260662437305906938049207351661676280230363003547079139906417373527867209363114614162886020327357673287952591006915262767844747971368063078763939976088930169995701983553184950151265720737474775577293710684507551675514489983299688981784964600660423735493230109698965464280993597163285031500272837322398595266840014931034769537151765828436001552284100675461305693785410050675808310820910893024581709705255194568691529957262587696106682052323311596402110153171219826861682663566040670558700503082151510716617099901244595514758133055402177516587517267463888668574169518500687528669822928164710580712790097214250238693008554281661128856755866343492801431397898378588602929477152792703358435913057251670593706714001646172528746921209848437855370166979650075480576366567035497831972244316945867532301945346800789808922432497390395556183123308869181729157439533174114608331693253419674517789657120538989205212014643068234801254290388589158620567752550189103549096998898100815875246455582680790819875334484996014411764042775755754506877267650522255196981454950353012175550904393367365723199108536713767923691924269323043461319920702467787406411150345379951498172686498013049450046633131419045928053208440077683261941014873135041102994381234658783327007401428459740821862892223168429079058091906009057956613161308473006454956392910128921147927817369857740043679872909258875042272019924590770499546838047258092648834156676274795889829777428392631869218780308994980424317565150790983830928311693646499368282817656595569070255051223795867124173069567594438318605923003302366669768331988426035525240653532270942170944180136760481693923066345302818373305837878449952106095923631006512082429476125108723752008659389836008836099840277246330364648399416426835747012539291269876880436101349176642473427846112873858707497329598050330381162746191291614355567831202740189651814485776895377732992987412166417932766422694439821702721283998611592741160741757640606082698081944709042236850851972619872673652282377665035170891709120209824529054227766859970522062094505964002203807778837193834342147714439425507788858475992558638913611358824560054396853654351765503238677641369403408079911690831377369381144237937465407282114840331337040073110080544342827325695877028902555087262260648933488192122711812338698066089655112752544841439827994864225095902140255839107116926623834207045558345656543220341090910128110428344811304903525050161368964050017746193211987954545538606416741844744980539580427493036502526014250039917442984184368527841690057121461578003536569704479389923206961702465704022776106341278950675913009939376013397842572682491270594867585342616106631749822098232469188093290095961069923699186773881015116548739194631804664016518235822601566396210671949298368216809662982808383134392512682682081968434152662125843653326514057759327594108342634415521769455117861937337632334222924131431236501400449671499594964294315306507587861794780909223356641479242742463658390805555306934858377918097691530855395467975219847310636178527358863431776489699208010310996857526284751577790544597757666464015231002073774716926931489646344168462311609507569461536192273541249015768777507374357747284414889401382095227381994620820334022756360790423357676562798512497320066923487859885523060467468559074497646035114934005031489451501516647337592853106444965691439099691614867880572398625567222450830925419475161351387844732836002014964091098803890031023704286614462245236335314981801120028196530054812845533802412658413783702712449038431771451939502070975894811010838731284404024346665619801513488988114020706642500036211750565824018893459956021103786163004912854509091553702710912573984427592213942235412766355299108977288059626019129744733175573873460664169376323132129093260182326291872323528009879033866138190905461491934748953892453594840751209612759263863974671510704862234196340445847548595492471193206530232377364694256048340834127432327542738387334048518155485050456820591371434129320386413282976170684564959068854909666030449367574360559238845370288656729583452377465156991530503064057256476861281903495764164899832851962010512320576383383283552123304105593636487029153842929037284331612135740168897880386582837661820225455871890754331029382144414474525817204792512128290242574849900290280959084459133357098822617729886516328705371361522530649987225541111379957121494610196258535775392962758990078688181633410772553010990089379775752660486051164051599702164701059339247628369993161373026198902694804249200110412480920410017987700235829292550900985754341644958249964108944598494916630835128084506490198011766237584662434488971280990667715628128926146187586885010171683280089231620539442906609235475771708840375819211566150218892943204063566867302285930309524825729011427190973798496556786996579364669968664081117011802270229436943251722516288384178024706343029117198788255386027844296212121891470417206466774063586049767327754034075738124354612379130369387921283487027342736136734933937479120589054122250775822026244580519966004457865524393064105832070754354147582236701875879449893044554893301507164575871602872130859636102929144371155168696373661251653045369224604211658920937528465960242936912391709732708957490432507547246539186549547118816277972206280198146378627364150531349476338862010591010017878664308715499300287522868079210722246788561992910893279691534770610679130977385415682418538631035279903295972913498446990085697955214449531062363681487029148772969789031241024738666209876067598645069313509376979126460740730019914720792290852337111031195723078801682957620301232435515512047812750451225304090651689649190404354767553015192736251148069505668419555725316016664603967332878780023584449032083097085519128219749162336993497935371004986020667823823087956913633564095428733173331221763127719743259110675999634820691883096016486951386330731180694800688099326887079423190856287562845928676042862585274081520949186317684375319964099912449670444091916113049267961107638163655854454986868878186902614243557800399394818946857834105032727602566161880250523148649956727674649460839199101630207149678966511741006824174721027400401255348988579935125961863064269720401709514048090259070864242148607999218335554769104603067992809287913619419716535296482743001181779348229665255865301929500175805849602513039334510711744832715582065679991100311970886924321313556623316200432149806182312000941021342495665051303865426004740073217724339601558960732252403740866332299652223061712458032760981911611864573219922143028117049951306116995720919155150094956594644611163394653419855202351794501320812270923139699975583826448292507521798162377689618157650677125441205694102030973060601509856306292674016917919015050935985995594060254918596953300952880943109548008220628158730230141353793438976002134891979562747338127798656923537480864601510144659127603084303489164005940217402304372655516252039392475758137935845677397295520570936347727070856325160828303866297322859018004749823790554886361694195974669380653896481575076462445306158676830581212875856151649853550425897435092823901770562050310330959235226724016995588350089034042460109259633687967968566169831527433020477598327822609275478135472266991594106695940155456513339617470661640336968334104230413129154784146698794333215595764498237932114813919990618333032485677144274481868310716612245545456162129675820856990193206424746815996618915546604439195666953934912724692579264320605497304999390454076600392205206598718815230288875526405694899772435932796636177698844964089570106980167907929768195608100391125812410008739676018000024593902761368899973109644544076960391226013443285010458987515464869225349095831432570347590772211829841909067643662128548394691425761876793371144055352644909324301428906143866709400630931642530087344465989840417141091834252360572572876434702629255023393465583085118294951149431570963533830213569414578264803159855618067250134951070388537183110151951525794943662134663646922568146793292300047977216722341101015819057921995113619797166467150497977164254363399761364166604751890734162272986323382500284258427727307143033787986343414502952062267934672669671239963939922143698107935988188448342971095122690469442969556418710460985248890448391169007418591887395405608458605568711986202955591989760496165253821092981038316826440080808664983929844332534573880179477986504952616496370051800304145474058554712358051323796004298423617091510994573613159535806311880992766678630733989089002033448707480378978295664246723119645343863128351587350255089058844799834237171582891698525877981446480959402890964468914929521571510493230546755048988423128784291717566171030783467738706799101168454417806257683303282564217145025923757945075996786614933216244653718106924924246305286255689083969660884128247471816033849559968586823023321593517712837655059736107588837498195050079089614096388371074679284765096772485820555388420343193452747902974311973352493210984113180580577349592952175065004176896501226972782002719929164293381169527371110766586407467686521504073090256939731497135868610522836059687060642905054212424161507570216557717098669425239649069550433198754952881620108268515545866308562652245731007207036398910074095851152483206981955911163370097706984845411451965928645523130122553882553860942767823217776550657805152067734476961443723475606678881881947833052115179542750594067104617262563122731774277380503159349385780601278081711766510637347383161414973289868722680811223952501083937007239609690894072718797936971927314784451705330892335755240895224769622111290803052392695924280352099036084866072461207127696666224354287598027352180798890449324018561744535200798267929562941925872054936175047834777370165540539302407750931549154565322971338029434807698401395182452247256700338881374199865943880208006612079812740522016609543700254804215603234024654523816605979031331069500586198224209244607638575442326127106047453208590975844102102588906042640167082945841221933243194753862958890596001323302441896991076525312150636526495238186127407760561059360836073240256454909597187890192553935694100908810579151708127054392354796665037995707861951827631007045918990663428868821935352080433252654880589153383152675111846752080071367021129643826066992081223228150016278534754620915331602444418530946211886259232470395467671005071217857205705386521502593960740449375123089546857804313907869457594163546222797591310493614731161802138296335498203981053976140000598550471147332489467496484264007941265160232939008863638073195609227872076480978837712449742711069849824597705886380456365683284926412685382642720503646719724689819815134828597472689146123633765692856649085261195806450941388931438884609983798064037965363032135784330615429303798555116528982579034141338909697312272699336929140609131804038386517944065512811528250288155316076003193129360606281722234281161450979319504032222740080205128562521568909415696096013529092112287954651228361839314706997558584055893383929066242372730478765413344666086768998800422860216112660517249534139318520321600974815132606018549380640332864074874584269963143912440829889986507351518624358500718936480641289756896458374861306736592674999521277529921139931519636149316012988494572580826180899294997773510316437001873783509487852329523329317896383917389704089942985224329456261923277862213831891912168873872585487587680083022671819329184504384446982598671688994051985718201982276546611026812673515807350734847371945753845369527516920012537244139079291994885441719260380362158917598251088155984150258203022159496598144392112479731704673569429955166322278033621836394614829818470203265917028906966218842415619001905220169266663247834923148034301270622329347173971166842154024580811432761108538841273613393867982600128369104744107383637612153005485410167983285233994853649294602863191544876691822768625961522337259075917421765035401461949159464482429380923681394939221009635283951735832821565637567097839794441133897071700035864768670430617162141584077333313930550085581221969196191865047627748279859261457068006660926904771598728860634671572843343576763219819100921826544147974534356150968539789603390961267983280298029259170298776844420455930899239979744794414963703005817116511951771003425909883538613904614857293872899370260750877801805989301790951737144238389384174165394129753116963014601010645708518340347231733710449167081518597371705083147315563857984362293224422522453118022250108074217650680765660279203259027852668871868666242058555547390673006851767481496273643810958629455709450820384860088869431578242879587582479024770199947111438488671387928336563937491619295136563563350737780994015805716537281388594463299299764545910850543962494561497109573502862973788183657936225954009163517153114882412007236784479981126474398076218050918029798002318446451392444289516367727875170795273329894164752770351927814964337481172670144612456408759903304513800988268371022860751224925836873794179919331345399819818042284086702196226458623500946110855340298778598678392598682001170644422828304754016895283764611451738380212764947615346340122088394171911105700392187788059056631785876871672084274356130074193000776555924288158317110069343871663034034836916186862699609697536440101817772816818626603675996830598937881139978060894303070535242751019279947005020976685439934991643942279891864202248032270312624324641522353186652583032212009726624353354990445632272013443332466169284454764958529908342705131146252214272644620222962490028725384660789149224477954902829130051046744247684655869145747177933426069868968775151496905086436969376872431776891251140533913456109026140335771346220637511228477435237805882846098063427689280077738633110058707881505988346939822886228146700716147610729945748460020867749317441789500502015313570104590562271284635799358964226507506626195108155466956336548670160868982369151321068408113502686260644461615064357726659107896961381666175138886535135765301088763568898200336836866585420144852510570555981053823588881931551869884926195527286428352462699342095921182955497073324447552655299702734039014472830244439756042793682100283143036400788133917681420976548377159504899149084269262789475094900130303738239368046228284794164443618370091816524315666562235916159205171888839240852597461610694802692374079153557137784763041083597259805786463391721043355859962274306758551457779212542752973885356558721039229960479842153599341107728569030527684800267485193087141174034802201715415716105497621980278833305754424596509690471934273264400384131456504803401690545427378817092753393654324067272120165505005367924658750253588958276826932809175662239497391771452791311629716704693168475729991954628085625884925041432743450486147304996813738768561969553482781970630004351074008351431351450426679994485031432548981002715490165095027614823375905033760994029816665329253199214176247762019360402708486734348531457156544294676058538779231771051994839752538211566661513005400573093487486429653130615196088939002186103325508722753292206277024736967064398463453647019546268556369725778560993342929181288832613122537523030462542985503535495569052746685109449769657687147695169402482873002050834755692375318497675063467675024678711463501881622315997290221511686591088528256832993093013819868760726724307068784582143797397230631629411615494879914089128102577694840707199953426104737660782099369130580742367051630741857616261495457299408922741360319559280544029935713682350022667560133531825661086697391647053977312351997508456426365329386629432199235066447596526249850760445103724772756764510187395978917872443160390996429181512416807416394826498186248816702931920459447264092728709201787378026798146228124346366637824481433993762673770987476209733702105996830143637306994721960979754705768820599202317843463823281538765998931194040811233894411369811381577269005823632203984454338854587604754755261677801447946893225780575968763657753808692821608875035215342016733730383938384616624829695424175328624903884620385583138745481984302240233210223378623005718434303711638351497936502017735311587100567204958933421738879952602706528116378807145880391541876199631528636757779402491012333231103847474998813366395584425478446002570116113904083873232558025770975117628123047338307313476464219582932670491698528661109267095589962177678194773167451551008767093613943957522556457007520466399653889850217109467745182981416049449744311104449353737685797556114964295238176711926646211735770967975659444949205355770825901106513247917422175971167406214654983515865033078475805174079193355096005290403337798120917267413167543907993556451620154878735558818575456431684560832218098394828850414717303510343828534501090677215393866500098765554478010488139824850080924869542726521835871792534396733779317620290809776732739036195382203505596088763343561788230669467678129367476881052478546707947195521818750186520493151694616805017807856623593486123067693706868639484894238062740204303545334035826414728722066417385833779536110405989896169325611189344278801286996807184892889238052211791227437823103831026906730112151163711481813456349773012916280860874909652615125481409299694665491272847310712675538362296685024446197585476827489891973998922911273503406823116079651411072181114119702908286355021696831155722373419489020378702904169767349283668378050984620528128477784355994488866417628241202154961650593731792651092588072119893109836858817111331621785853696752553738182251291649948130908087828576859692679388220758102986649832382396460378726972062423787536258053417741512694250872521452461623490959378568797654712542898578096047075790130510692591981846120134452760693522595539992751783765190510388469714697501451329664085035808875837568060937265316547767002975316139739287517544807110741746368662390710757852908889944427970474043052113807827221303254429413783092179599033719515004976738599395009451960917766299428747601741806709838039553488391029387344742478466412516116079441949519346466936430993237207756072586882366553167296263572172272869065375569012213879400722191078680947075368418800899779185071051674717623861520131069366594771576884712507131182636398164607001586436701747507511487147567593652642703573741119944307676132010357231660563408957942964384986584633872792511266063929657483189657803924157120336844549946679937064400410198504563355296185224325226558259896194390689267699780380013052984765672012395336457252182390283676778431665296888621908711744960147050182671503594977166574134146781291270428017577723903451832920610592133798758807906695372952106919042864292081057085902126894796910258374132117801416471967471823936043260907593594306085734319921232380146450681971000412333207102748174625293514632231995783027824699632986699269928366367362493687376202725251116574531347531994306337180709380363163108345483874764590653171256481044197173635502144576897788416482576928507516101130420290105035437035560050395822627959993009429787946818212344269465323632533944664356919943132022059214235855995023271657796626856105538887880666567450892605685112512709295868825225418236671294073619403239257641071828789738815225332276245863176993015934385632715949391526036813695841875294101496020029073761631883923002958054891105147833117872580314129416812228562658801041156598777482266376576334728133016315603226535851207764738755617442902216735919152533668400793467786374185779899541086529429726885145796799896282474981526192315170450098605808147173895005056514209863719690024614373337962822844553872626918461205915789304843227848562034593080537271174901985327734823381279239259649821203360860774905571709625747726461182951924522618487960858349401154554186793574435599616002989007102702478703977606801024334530827638719546991164364372667637469378736190007259839634408454828827887497385323094890977997074264848236042728648778959555556576888768534579952851683971411782861614270599437007710123399443304960853690223514728122029759660076876815033889828476889165922158029396270714917106265936645110777389211537973123338677811004612900413128832712712862717137724706621807796550500550980544142360627663416373165789527296236486398891883679570117443737114513910626412931672901621040117454832816761335700721406627059923959878341070173884184036473853438402862919876243501729197798094095878467448633865263590624875065460090450602341838309498763470865376222361114553585915806979969980961900532684803585757279307893210447868018097372254179527617715847110605125724107782681922944336188076751159157679907819568671148400783251270464422899442040307322508906260237810347462322740845684884326917104189887879721006577737558178462298977919990123975074152272497500547961362963965431152450094652352245988982357591714889406920823660931617362619263526526397540465436770573020002266614143695987108251008674746849389197700169559572345923987739102080173247261096795560068395419378527075220881043648695203423092400615537051639333035334166698763703679803517055669246053710613800013528504631655185472347742135916018407998831367198300688564441848800862913492802792497787458078926422068383285287230108728362642069618829010507785583958002782644772006178600983633826461003322316812325852782096245398366288400695933851489805853341092531339183154941002648584631213851098030960062100045248053360395517206310485376334675314452561787583689681922086802696796065311250396070811454599594908288396184933941644589930834632853616090282712471055725795910026267284399991147384813185807194599192148328022100256521697256179753405448559949730741004333184901234355485213858378859469268285362873116643667917569832895136244855283277400422717147777605989537687204877909326691427510561258221151986120174382578947106139223329203823341924277607546038075676869815187655931946329579150370165297523539607256892445514465377776480045094738379434189515526769606791855955043453780143126947733850807498301801572351932434606715417973629022854884751181887059924024973968050356454925665099175049626836497668465827924265733087244418917083961427063881537196466275278732965738812650374380444243064879938726437243654632995224574848951542853512981588789202534389160374532894056421481693505172561294759635663030931380309695575875182223007291468534869372874326763227338832291691234806908058214773209779637821447684814988831940544007436306755191184600827004220141132793270225542185125816924391077017914683058558926369610920757549528432232623843021035097153712101523767833580558507612182581008189064230679198747351088155889751700747301755407221984225410525328642253406571026077285580260045662033692125265138170855215883021102285208284355410314109885841059139306662762532376181741242622596273298192612676027628039932622018381975383653963602526370345700572099182630885452115159702046163916033407967189568648971772525061794432353766483928031860271198508533377598940964372357028787485022114706766481518963285406049547401883642585056597553875901237869377250705788128531491408681269989764550749404047836960868783815054605732154968575811041220351406968668568632982371470882784977086021462780475613058183383646905606291635898326889549326631632727552270047306396873341751779176740109129898397423402163621377413405739430081226861271326774849651863660235763257593180438671177486678996945591701084546115387839994634934093560556268176744346921531427770514599282300736437309235623377515936419246884112381052862716618911708765538788834910444283670455829500651615818033272034776296429247897793976283196621033592647612829044483183162531060114178370183765833541705602734692671651988020024227819621207122110038343205158676993655888212017429747829037915785757332719907450227668013117129491486514754072933097580328680865878360851115858358781858504012817576692017644719261358969871609883030023918439243507668039113421175386366480208632077089093457530431679257778328161006526858729550057418822882509460546236058548597261679465331119661756164891269074009501975269564688631277585137969620406131561492905127214288728457731862017787756673683793000901299682184998408553627260727706368911413045049595482918891103501385419469550770771088536674729841111704826629157258029382684011425917566059175904315342676827017439558632822358756854159156298322462603125906744577997898526996523964852773009012979983865094279834564669504322199513619272097463866124693767166494396003602894680898607992467859358324647534921410507385612308736161027382202715023258097567100549693182042299025783689792259181563782987654210138075648983826835877859779425562646330470938578122213218178827535210227792652991124680306454521498456785177801212457389711683140147235818269684052908592299289816826999115040471855946922907493799022151502258009082648639868517090696640240813233891790773745560205555781935463681493706551699537278929708079219789449900452014135349321651344282775303024383283354958926615263173523103346560191954881117038564204359849165372539838338329663382147507127008457533687049433251126560684972045756546691571279031041311642946508120303642347312191616079334221938508596618075985158126079354319324343593827773073301051708767611655638687227229689821489106266813696589543600890446422224531593730270359388798803897770177273539349572260831543663371227580557835677636408945282487817431924323903956224499195188442552005315665271893959099360549381515555107549788086818376110146120685969030067925401696985744839147992489549287524952132711897540289392369835954630946970598289831739779605370786780073616239283010060282126046495498531953960538712657339253972884644493387199645879779504969523481409359751683455258649909776011129480419319019944759011698691244600273328046424859703149385310657441960413879311857105974896523759385028884026328715078441417169400124238127018140887661322521220331369425061923290806453710426909157494172683677569978935983102598069782869328969762880781593625635093020418690672109704215723164838088806873853422287687845673325426390798509856240083850490015871928645292960101545501697228257907035403022782703510961704320385402564580850112620595055573996405956121500844782345953395691700987244703150052875325175824999719283216352648838374478829789685492280975500601828220463457565856795917018165266424759059823929489236719276511831134564423405780418959246703255542807082202172791869022360039904957870639399455083116115859002029171810934329051141812610723493508997037141026145064321730999306558064782825906458003780028381040089801709113796653615235433168144894662762313094380843295411484481518371787870825334764542356205342974567177995328867099717186987870358615602119649054397129650682771355276565753202429590666144784413828289107192241747294442443915054443611688148019551046008883530117590991742709160360771801862873106167270606632048580114924191222640002627536078537571299608615050024314483962617907270185555770113421965399751098488102813534510513322034592137775457539207961916540395919247968892394231740031841334192396071847738287405492327065524107335753883519599632711042776128516785841397450660763389756328793776258338465313796284957848060453655870315192165544471810767956162975218327464744750790835251892894671854996354893684199408859043602263601976902264110929346830954666038086420711614769634380816878585843504186614873304093546425036562534821880059219115926023607596251931522199996840702767646170046941603001306899054993964417513842199333267293609943848258305659020828149020248569644337137928977075249018869465515698805792463456361832216795112799578496667866801099682162040009077293610567426831411669591108139581474547861695766253098708091539198250769294603768993082826961633002668758955782880141871700933557335108508666140948743971891630949436433082381912153434673500753973879788994378850474166112951856770112182178826560404331819479049401449246736310432966246210042547069169581084478026137523288306198079132712013739719826235589402957517058805489141613201976616167824069574000472535098587007462112968979160653276394340133264856386444777857377825718218047344137314910389702442413764872866679610216397199034680962357303660913895197141949911108726951947491574371395872301127467913602558313806998701643965816939153907134030573163664126020613224197712592298438166397991248916968932513321059924401315516165732726263859260468303752773043721321701722879789101437988042210736949060911019609342913273944337463586138236972055524556615212540401580909673824358625308531797016549828619598183649074107160070873741084248168358966364997303558733362007917004763353734752115353535917718903252874550536879052299540738357362967932314852873615296002364493252379364357256067023649343102499529543146669613584855853958017579172844587124935206443340385530528305630631521627292257358777239696640606249689202411232447319666004206484574309573384119565160277629332354440776887057416225765259726529096960066100910826970611295399845111668424577560765918247371270351186469139022580922363553773860865586061934485693599891106703460844925402042686498899726432033198971103052071867313893322888957347304744535605299620480001985240167840317941471283544620436350356727972248102680178914083187147170087891666209565725257306009007136146744448580470944622843734950850957317122914105146832610146466460191600527472672399017852019414084143592211981620545997294270087087345358236015593005501448771157460116662783158825165708117278072951201479746800143018334553727122995992939113550673356831467901197609692804262526061945794717356365324838003570470993469221730011479536964106069426703312500214572967009656133505013847310939084295304119695448384135532792518577057797122105492304541200318696799532702271166194792312452999127388173066603945463438813492233020745245596417889376408235170158897010058836683896607110444484895012925884229520493807246694463297077908070488237177649703361839777833342293238008135917874680676248189774103737260517229798294049750541367948596798256018544601745916882732801385924878347729390734132362930596662095318870859597433668827438014019998570484702575169234387845687533413469692201513191524080245941763927031702746584916106925052670911989352010544342590248207226608028154105224595561987718402915767892363256856952629234806562927600504315373314746005455388263046333416762982250975031368655074276286720138605558945925974862470751641604907404702895790089165129021083408858450273898034688757367179478348907388146808776819350250145855898447835846565183806570677471780795098098413804700818648607473153925498301147846421329610165031201713276457235180476018132611306528849167212723395631923213843575862824713756976860661325313499880178324493092973612327187473025674565856269667370178700596897900712099130419454570207698871213896925491131063006255033278182838752544750120105751807193499250592443264054644294506269566435980926376855163688916717774871562539662924812450509019069710811828970258917637893621570263423341819350356884353815932596932781639252086318502787548467609904824277996964858422918784442825926476412561888563985125641737556378461209368548233297322572577866209233211370937011576675469573423911625565110179707541443588366649319023058046620362421074993850951965024169250098075565823283612076974775552989889966936098019226000561861140988765462472793324171082997804505078545604338176785284977538865776079047448302256084289655579259275429488064142774769760020531918309505857831603542922463232199671188722463832151722530618098706323741792172029681016664075752029425447478589118519100178776422881750379390280824988504914312384868447491492725457823577944092474017551041959467308518608363303323519703520428833597799218779821672917146735976507266263039648622277741978093603481612939143458955215292815910239817346886663272257163499735633049038427793944387688440625119803942586093334062092770134139121756720471499683094344586679592472890844125412988827584932583249150970303385012852673085781783835997715604487425186963887552236258011025563311785503775752015728082059342820399428922203131544104770600917656548686898789400456856783279680578796965493505138688441089081559501174447400985630091021125176046843340693110603770507429081088804995780953982307902868432142642534609322711048473293165355222606497363137510706909774112638915524621496648669377464055458244059878458227571750213469196371129980926612411578438506972454041289045403731372866963335338429828207896730709256573154971472735047085663785339800270528865394405153352775244994676125603255825209548831280562707786502186897239426214269473162050668248992997631661428506799536352055818147362275825597089911978800021990974688984112969109250852152896474907208294474056650031201833215579451265138750403765803629805014893161450960904856115680084116576061226643390773328286247085735921528360194604879868873148410577751427998496644684370568123782242498599567586735898668435229439271336389408046733575537679752254201458352172065883044178576908400606734575627035393543888881096691849856445659739318245934567593163830145717228590141076791076719430517820408904883131209531293273717724351084419027095515421123024794545377413753665259094540071902749712805503046250087761812850031269069049803322223890952491351968170350378114528840153510427377578753688706429302793189580277897732845539832655587245014039119093479089621226953216048630136332412232215261000776522704024345722542313178624022539662071855495322215678065991665784118888904256547316519097769129573018531831353023403649421399221478314362477212465052538683630273472636761306015253030537596159002787121108854620867535767656523748634394972650779732093561517188994323414253150925376643482069533494628307676930107977602691916833268775994555138619155505317775203339624182044529475471068944872082075951522176253624747444968055426160838079862538075668137522616186167845701954470750334791622772852948265473046069487134846869621961765865022118146419388124305990549635429796437837736347903580739754647834131436261927262461543506396410102180831296596685610195342190840408142068658240845819391587108210056050541891876729431459393714374133412730929564258661916025931600765193006260900266297022258415433043700195977895476061795344189076417671529741066911343342674652314438291400576848515250664842482779999417203557479560371343273527159376820162281981268539984196714535479311973220981609058022558932806652589056551726141276520198337120140928820130167658167648554051779521363965328861857277921173368358241537362755075338473513811406269690618450505040568004036390301713733407107327549067411416938065674298119377441752770741794022440074123321476492174746815026544641428098452882563900648285045629909274992076930092931930995448729068513161670314231877497647513664480262104334382950704188906067638313697532275317667688898122363025365639887671578992752443177398339132063155479331895196331520410269399270833679956195064088133520237338980191326509864682883716433032736022708591554909371559738123396438429512237960481127219427027656490414563703952184408542603802968292536609668549195738007048269111893456516962392372776975501982429947384170099325851795163468710773205746241119756099936801972879828483450038485847433466890298103396380364583434551429746760445421542449013005522914422144141716811928322486985668274805541761413486295427034118393523823761292397246594364279762144941527516821105438110338759148555356120529760632726414709743526388629531248633494786044519796335452200435474203424808609239216259011378485907925389139644479880594816651494478462011609971692991385481178407918270095029831300017178824483848968228475366018891654445906554435414977673046545972562997896282647545736348161303498289664390241907385133452521014684192851262318396410139829401650879755519781902241906561296241833768788202380416133634959011374245838630874063552256702294797571385027282929795906264537133216000402663009260674607542622831362419381420792605333268527780881492009641997066440971093932408579592753129369928981309126956721969240587368309611704554264011614587314398485831585891704388340013523144952990730649504846875734463573647502617187337960195792121587809157540308832883102898935508953837247198956577104075662257355764287833712805276506370376421853807077738732442894230018444485541704329138880615958885731764992432300400381520443310349975907427977746809814359434200054144445518540967828210907614555590506538847828238045939670623147163091198293734967749298184438089056122591359226670931869456829137937456508249528118481342537721798986470849892987107005413613831309588230923484355964532324151797695735246231671538900309171136776025171855397819332035558338503184921671847302462870486905179140715759004048340164175245263001860238897429580096909979511388615676820427587630657301914149480245887482762640712963297644321596450821452013375365932859044698141983069041235413022444818948368000140951308588366434317477786965068477083269626487531710449157542903457000229680188501184671360201451501670205171159750900393590601745687073473052452853229390037021963040738393977437234182007796500659674032887662879975278465071223653087521156578810970511594686804053769477630009798502477290061157029235172189044994703700666240607166408665818687094186983038735003950051314071256466888489131279824290612239523554485569749340514369103002858823106321833511098197872645281593544900203472558367343685977816764728993749888342401673288136618387458861748136514722006195030789095669206211652156502144906673832045646222192353817881825057510878509248902238437559477113961104700180219840624060845663549235659556187726422232013290936007006964588221411114466354441497636145538937718426467140160800913565758206888885887063693543282786496533666728145133763352121984833595401530070892849313496451196198246178403419419494723121863985267836552000820929465979290437421736030017501167048774391783044765385515523719837617458403869109792712467664168862509684931716924804302151465019306440437182189490926850783830682767799887071030043305080435680822996225371224873971868237579374358618868410247130544131848428139891200111726791553002806029318426142401489779268358264308069812641263533807294614019492728925550788613288437090108104672546823149311473919010617078879333360023585387911060839298216761544522350635764614556487525468606357561040773147844819915981084696696802113631539122627831343737029843524349226166453170396434315599097474075789084490886609527466885705213792856962292478023638581041248029390750911991335786702348006185947573096810394936403009010950319449654542449832121671892440369094717583490961190462983539680544122973498906925754401575746724821740251130141629609040008138194810810759492142064425696038004072448477034818384799807071610331668445519791711351295775448324337751588756757174565311394300676161975394097392765629138015974035729003714204765814900329367936616428902791655742593421234976654036585718110721518646970681728026155917989596562798266450756008435967226979284946614173809816893006573354980129344160621328318340255162163032922586954992899149346676490196508589419681856992335271709374254386961042353297676767952716547457633847872582820861444767542863359135343382611923381910400081318799368269538638538411233441245229385326447128956141366923594173807162985735196280758217198580840555609696527367029345140507835052320145599173117743816635923468229450665177248742433837991745785528388856770548029487542568480465334949807642607671677097685051588355948273719649251462942024009850354659550344483642063385144356979851411709677821180951474440014232155067453347574697126494721990134034357595618797913639475770631645930374360736585395331237293699099419091383503887458787316191623409712374766873420215988199948018294854305500547389932749513106631369532419374146136977339401212261579133901333328272228727458526108838834877023990833652962244582959421881763032375646223833296459685586147902916652361764581961703428937782396864077584215946279258683637359530245914660169937945399533783433846088672142927923265782443948145855281132796314300074737390997263216963846807710975524018698306647799758612010846161249462209165470383756405873442097407625106435105670043304859293009281936709207146163005411522649187954210920377108605970114032584410474953341113636215659566619476789724241016855035891189378093354210582583735351720285471214274080642694179120598491724479507927086289186777938748755292610569211193049817526753563894827303720277633291285560907070355638410012377215137356636257221433465958848549113908563004047408567482046744025208420362540031341679811086328830074509728891199979280610165489806269245864649558117463964412265842665146194751612389047062237942106135180795612362344400977012937740552850663092915608758430421945415045725108862132521411873579434118256686351637733974371055092038000594622974304391368281604451840931448133888752939563838330062538090582820269115526412184731181454801615372628900534017918893387852000204665699009020490893633607678048535205875847760918876257076968653913552641292285174070827522099436091619116958404661273089472250875165734963848862684968649034641069554612314852393097126377184278046588448535370825720770483644513308648037589620183249418244876605733330055716439715879403963652727705412145950206649638997075604447760750118983345353605570406767593134304718569242788095509999109946556421623972675684666851926484786043783488686960555450576333878832462786591608194178365832679099201242055263087219121514009130361899620820278050263779922393039269469718154422750095278445016958590572615132337279820858616788124934830160093292196767218651716730056599191573313085732217199401045650913343201361813106801235038171597023447491973029674807236333610269616078187792254375637806557223055888481220968790615207078532533349044893078308099013883592116776375692448879216076273087790568095072020716412640493940799278102183185301751240677161440394347823534265205167229060183558852931551262172895736288098489257122081593723225090014901522237434033078559245488705210603766532803607727541714960810564557664012085197546547511376231105913581930058609273456816804455602576465256119846026437020027898330142626919973398485416926408679352596388851621080782884127727940638331948117281451914281981083196589737189226891767069725924788606515862654981974189335446135120391750843296275316827110205453839902502114264837012357490234581299102801511682350838434927706042399455421920816094777981838836836767767105608199813523392609000768209221087539757223503627760892189742853689197904351298223756304299594132815228074387405582539276368656429907327181023056086001778008897197922623113194960728778035065214845012201199449948192590654689817883475027077530719794066854604907474159459187059006601504085297148126106613238965027720258419877151283854276839663082237679599576158283903977557093143019420722434610828661535825749218750570310367707302166021700217764666955108086998693020130727771522961659176198435332333772362567968065244657214027951896947625826914180611914293231853251204580089625548235387557600852448326250414414310839778074086085056313639569637301151229847294598327778153858553535625988696698276074742475194089764017063948265725757021575751528780074561656561921300131715389299736880699698271433855633376568098247569585491371912393994132446010086618279517294330259076358819936009747762192418986268771982207848452964064078361241043127143689888059092151007126383675803239975701177060588015262698020112038250478231871581877860578901064753711605582975084613014321963252637625754735925512946150362442584748106597110944071594392381961263334018104363665555532081873836050828954519254643495056960135429127912180499934362465897939586758935080469247680619768626374685414328507018565653460980291604913707863851504849676339859811839938084002621831574663949614929379005684008411667976965087203172372482942694807146320634813958465097192163037172418776720052533797472979731420418334673134471663859961088611904052509131454856085973657928644039087653630237120381491721963775422695974304251444708178789823450093400539580734566056869783788987518211703179754192096834720446865585064362471923493799507182653910134612965222395510452839253277453809220133677803018178961508708968911870860470939782497640598242302577898807376539753568724547406498819071910756220830698510414836371054882938053371881006903571459569383417698184464837892558631233478395694238079167366998053165491859362889882380864147363808392673566677946814011175168975845311041830369864037906235038590832486486379334885043111987201701748623592917568156770812447363413554369194625991047609707730526208939693982866286351946080451931412484549683444713032651269640127257117095739294503869123232743386722734857439064238628729619295013105414904478858546544848291382120129801708736544888719940894334176966464469245728347472791877400738677449932368979169720113696284238446032022865134286226223435114443995480415726856252509001226208044115860242617260494378707250497005018710615844252077188967005637245547520801603729257694450062426092451661120723920894382949607784053080372901262814625174845403990606896869117262490716428479297160442387995334975587439884500988948623482848742492190527826034901069682756478644230161305536840296165910498867260739995133262544874475970948719536379892274255990870032938370166162814793611918325869995548131836492581107191956731374499811999954525254264524528213211089781551440504657557895567869817601780155829524627815369920277750537980509743903576760979398027483666819257542008146790367495088557122176962737871105929825503943258521358827360030083008965032261614318699868291596985983392828266520011264150745512089063137601778745993145786975783372603301266020525568791084338467398101215021020724786961720197757247897342335049824819788233937933166350751224329848195522066610782173158921996934898571053504263762047468499448653386005726357983307242254392445479165812065786157267302928976319643151071684889591184269098053842030010122429989495478986962173628461212895919367636322994718978610237719313056960697678374520039863530079447125423230173987065680204605641464300666848899368613686672520073691196351014202823264142925479096186910219679590282600478431504462271273612477966767175332133866046178863258107579817561324961923721698641599582670177066168978453333281648834347501641725215402744587931270384166106477909690034840126028632057346178531335774539249485763026929607524848524600289551341071959177813375805379363497883191510675212936531498487208154865374618653078454601144181042388889203330993419349669366436516002842370571688307355211588700186664441890319173449457267541936846999664663635835190119392725142688404597322891084113843715139783016532691737444345981236177203917304220642713590911433434668502530319431283960738691142581109769550017499208721117553078747178653464605720574359430135508952497348306002749756714907400484928371051286751709472736327673054486107372473517539420150434442992329264672603722034710644929273887589176598219567037616674173207346239250904417342304839992459577161413564006266800834102693428194618388894881188477850510249142251228136673700790060401820833935918598765438317199720728120254511138363726361545457002607479422129969510388999960788180176674933376582890592134932468018689893574607453342222906189510779862157263241431122831303636485265122857133508179523052164799244907498598649526516941027679205407073800351925846786164418022886741345954043124270254798156882815482567266780262427674492255542814539737540770158822528905620564511933246088368599138942644620677613869022189192822276339586543290737157189970839162164237756496772804791505302368038208006546566974247662178103863298420043688176913235398068771066086970306669225826102866210805819033933737381768136598386792527026565322478812205792750930870941075848846427119625238095053725890649675264301158758741183606992194666199336960554499465958066605982491875924871291339800085843857300843122471652183503942441277518149069347464686942583393991104109489491862902225234207313196678882123806049322145860428940761235756653943678699353561666122079879245678347545905975264208948289462736334955339119969350249878166451756416617264086076077277853028024834214026976429822143625936824229132479085273150098514278873057031316823247719521086007845423995101829162464384786746867955819971080889615813375290444975525468436695118446096820860930640079923608114190564552797957823911045768348740644965537685108360812295714151943416466178234942200431818020003536830582537100255771262799696123280822988232928569745295280831472101915109377323671105948245923387764094191715520878590330487903413461731603712213191386589523919025009670589048859152480564241922015716955053290141225304432024032394962592547079637189047118622453023739921563851258855810307014848126365908002090094348935960956081489646534779758073384444206097214138947028946338459394689212941839235551645297265079479657461543817946657368643555518155378659278596732209280205383508956135055470421948420210464233915544466782848222206394240067653247784012687235569433448100493972111672597973996859440045658220805864242976933965130973342206336399511975744435746932533832162740683395376494498563753373011129963462593652497775350107207603439957492388489421719494106043900702550503182833139169226939965921829362310232382934712587054690099910260616445679548125401966984397332110341905866412568805186991441996699015614963633877634805948112501768253411301718106458120212292423011433595423886388918859009372376530257264272128380906293728366059603517517686503706213231941638850792512235815135460391013270475342946698526536086458143391862397621785323276403928288284187554256189234565010401735327759895893769880285593901993595954237107074759582219007510348750646539818537663979218927234895595099964787799934741797999255814097596022396970871759160908995606767900058540017463639789743840748694424880559192545752922530311227512503872335975832596666120864015023381375763915537943435382975434418505160513659278777062590464307784264105877464692721047209392796341624809072363028989420268541679040360510398450046193706024768863281950651431286202556530593769315535376307660205205881917099612895653386286633747611082108030237620495368989596115949892690704602080904266025859081648405134712998119805111648266220785141380646133689434838740563363643346555946462953181606827838141255095048889492727457320799773871824695520982946242577845805508354652802498628823543134301824138996354555706652360112541193475915089068376854742992950282897551704743722778626952977463558558661725063730919562872586032712573527710961547512980471793249811516220850451552496817849711648533092477562313737248500360411872455244777346954859807226505647720999382678166257332501868854125991175721420878263393945039235293636943986538562461654810410520756270205618922172658300847641015078024816549796223224108853344010660781325992060999442283907248617299396080539677412177245136489885496121995218411308944417667643911436761300865827954027046353089451128484843159411604546371651023228275287723678882125749694499754957727274154505343010153885826262927548455683316425183205832952283205375871157498479667558448584584440016270143366128230239470475244538538547525355522396340738513930511147074005685810424648658944532506599163654940167555438247885290266361553161795677609460855220646066064098452314543889562453417671458083591503033038633818760798858290464861603320700372807444080876548946080705953384513298895484648864006721630189629221382544039441961312094110763194999063867500193640936508666472267721144922924711569613193101538548799798042723358618361258870779488248380542448222054229712171577685344824850339638241307571391539189098758295519281845583632291369488107972741034623501899091370309034104528666290165468393955620688699107836484483422682732071795963789140777214567275947941519697807329513503927586681501920162931356796901767701020239526532159629598482774996634898418860815027998564830714548957086150627268159166759082156957523007273393093850851366666649761630374961811293113604445654970728892291536456294987469568129700049421418093132456537296410346217016001816041171387140225829576032596257581367166208886405729381346000323875546557533040115823302227866456716187143306650249604351630497440934317675652355648792143462582986876185846760322371458607469283070878192075925078747288188489278102029450218029358084535891426999463951615684836287707032466824983258923101924940615570945337145317346596901839950219147160891117074451748987213778819728389860702997612942449878586491647177535553644695163678113765883665624849760551739949388418263468371886610492569304641495388160690455581904719348392333473553698930741383831205983917144416333301964958753795991655649187081350563260777004609556659973410245037662548469851773911560281453023611770719016590517995975223142162984933512132296407439881538889471366451193864817023012562731199744153563009383207662506371483561127162915694768634781835057119128188637712566770503218890498646211932504301595228184846978134698922209431798383224860196247309486634956146870349570141579736364270372300704825461102561682725647148867912278723380892417006680823447069324428108680808312492260678208016778875252407800668444560690534989409206505027353908657757252551870602467301929304329196494180396992348278567073108841679917226509065510240704652109064905326876329571831706717287484930538461823551275844820831967973605651328127368000895878436806855243792311332051326403972954637591505684956258227538712081281738499687837278048071542114051695668784549687543056712580050482933708930671321299487298311136128129492302421181894929038709953552272328438047146066571581723368776323577314633240630565788719245189704543206115785767602368520192531238058603783830845542380249178896431591832793281076058866048950427688984465953160531336409166294691192750438237902722898453143411370404954150419715676294082367503210964447574676219933133796312861866182710788613604975500333506776075516977393370628406936014245437899411281506589761909260691558418315299832065490357917436694672141327510720014399143687115143323144363229510052788302796432244181888289775034144713458104898576881622889597583306408792480766593149367793812586314487464859222014601335034735525163318339374383815622186654891142781415811862226327756069868648711126893479839171415538174206634046274279889900081295852416301379058931047293064794598313517913039229791688192973122340560752198416922845169652394474542618501912163058481539900217509836349689557286659422085518041266284951176020854741608301930535514828087784174496246265113631777111209662334861879919044786759034733879322338761130934756496307185060890957681041371680829666108746117142132026670638993509063308319476176481909521425455926833981329192008824297096460553582353231619914333873330814586394282091648595296044553118802075941218036112116144265028343321250567593994133237163495740236050662150165080560773359821300461968290446880283830649355309167181075310260322666449354366156929671043175997846813842565200043550903819907833154683639898287840234977059375827914593671658835380991773116868279073530700045862625360466771899352286715931656831243528220096463682533067994602566014621601235675545345097058624538262337145786974829817936312617818547582997939286056607527530067726568989068879671596231171799468712349761991164238304744125065735194079400743119737665989339528730239977376337219382402225471258269319637350874801305251799353823916469425555897471900255003382797481098219380310039204101086057008821656535790895454649549844713371379191033549704225037112271606836268584463854203458097120445767557157100067769481223012762728290260918405453312982718916426131066569663202058692856850416498430763811700490870770480304133840472112342214310224928038008841059034084887514876632926214609135129080384371156935124919118176203271141643996961212109858239436813084326010226884086000063625935467763739413644400618108165114539808233413689239271762635641447964060144144169409402395537644705366504811426187695528213874429940141085971581321968909086690077944767180282926337296841656941470957871454882387417992608548193073329936115540048604318305851035886282755039909524113645165028105264330818453809062896042702654090844708514063883054014527864930413120131071641647047904094931175963122174680327355882300025786581822470287242188528685556793100777890179238655441422782268345474931333092218752241843480893585491078103038133893869159294398060213210908612167628562021029266507037754858386519813570474987884057663567502381715441952219338616257846383221314617452157859470526593809751673216050518286201439626796267499164946811430463861864430313285871924227500888823203199615057017987867271629117788945234612179170355745896975484224668306894438302956786944721674108537882903482301765564344379903575133649210409431477761861536816790587369200436026936835788212350077467752649037189041464539393820909722370795127593661093565863792235355017441770066285293633606225456868823388441785564295196350117884646174871706210669069816681376022582095136307670466248731902811500771910231597594179308071741095327081970568523608492563455160120867881595856141809594721101613068958241598342533977818850720367095439380544349120217477772265213197200431534490190684634277611719879693998425380102626325357550657823724130315560751603547884344957927595704002277633645651961589617909031232942270384493820345154557517224947067000437552797164774731272851947149399014906275919961301269438360298112239940477472902875018964046828536239278662951389159649310521580732354268811345565933257425177846224367243569803136922074524879197404995747331959858629998860513633265521568122131139556074254541240860317244670900560940033967630027374553789758849968089295298467880997383012881375972515488832512150856105841696273489703338973081244580285975960083488157522314495264560673414022449938294093937609979115930088700879717259905275235499104998565053288163949488787128446138573805354424878489200168134519745672003644233407877322568914781246484375789669519787445741276524418234224147351221446796573156572677889480821253873974695250526333203451119714503357274325897097808501337149862259990029779877254159842453097693889555401946036331155426125118000425068872241039114917635932620388756930263175716867754605925924780582928309117708050389221135175864219860348817731075314287679522268400299092930495502617438992034213380001793868625032470116361238426108033718420417068334982766211528205833970508831554674207144158691785732483090731964544072863249557677152211092350314302195961860923969681355759664410923589254796473896913264777249412426255525875445207562687960807340430852326933979505869087436253978553646816216885272006337104393934649046328941158938156555803329780922915319151810261538538035348320725588833505257066177359821085458613629680040406630743459800217386011572293287275330783322882466058436925862098072972342456836084839229713702170750907868638399228809885440801263800768466606259583961377010070997287141165653311319785777504444975408370042110591012777620430998681032553543597148025306007920428944579894153906116552577229391206288618209880994004091789150125539324833104453113203227599015070257480979109446452302544009830489643997413213164954803026494884601453099624810406210634148669956037587094918455988612082723276031873019396954385576414591757670758544216609009502472747737951834722852094459977490866414436486632426427813384985745369763488398958955787858850670545660672792871690004756364816997924829994886385103523121594616136171763400126939435837611788852560470504570211463064465902846705615442022211209351480662726431512209272520325441464326240614033090943382525490849424809462862306910707889600734929152789257681321368428321552597772310120741576283762537477086290050846249757188082705390286320751648145337521364086830366135740901549937119156897247851805854365643106464337004542717848015337704854053584049615792603907372805255698470663853706133889661840301169913605535945276967067730028043042934026242355104455212628437971218794145994822579006952910236257513190095863788871897221869120606241370130579550680167602221951737919371986852384880506673321497688790452539076047438669151095133292957781116145167027013916268214553223157700161125848166475089066928122445221275626726181627733579852190319827757682492398005172950141194538012902678811975595143895813888697959300641608379086381073526426230032984143947908352231938187950489354292659441474817218831200217959210241430179964418947552865352185462012459895888106026281072343502621184200226895215161749354848020004143068822866862359996095936942149468997235026327696155066456939489684613807583208549113844348894128351439727673789075026803919953668893059795769815344763747601037383243623666071509253008396610432467735884616888549598765407170761190828132971370326807067834357125758007005624810936906814392610408706977288083823419928259026708369913973892106207875084489514867785656345512890731531909740830644210253466009798572779601123397199951276284845711474479991855272151864715573267037279186564031646810608595724893963182486835338651343639003482402191188644651024069349337993135849061590651997652291213312632222196209363399197772844943856937674496835056428366007897070975605472757373279791888225690268195352585760537603252589107058206267642464159398385994211087528908399803384061470142952769470341980794033848223813676416406497377818846901309456610555132619923260181906009532679698799953945823143922791588526991989605971381454645240541255875770840737384842510224758168723571439554950133769194768012819243817978194797737246671542983320009547277123105479870610303515504523923503466623394920260482953572389884140711148652410327800713684436956420190746717148652139864040470124240874383938646158220624728637794089799275192814828120397794049655689247378088419936550444637283746876649195023649244159669630994031888128468738125060229031576850589118374553990769111078537170054731775532350754261123132167177228006676105760213222386104850810272504578313981843668298326970360922989414013201814541063746076871569858439414957934838272295167721472138596465646057536774878262513320156842905127775095572661015770133622349069049514740774290158881927532540621532330264166706451920644572346122210861975349873377816007373485999647372634397304350793910289111469205475094424426644688861582078349974858466632251979437857951779560749631854409600434963819064869251093167472009106507360029489805382865569755502579619006932516907445626609714084421816206294876458584212032245307996553751506354012934560947077019185752181111480801405178102351859951624399285496674407622940653269541584572698634384764154543281622325418132613218397279576605790088529733140322050228429551156713139331705488810549579542210958372262300247645020438162397449718427091300957568658434923697015562997235675078982030725660930999561991731149308525061264942210482543004176062396555145949368390815915972884304091571608896687929477789424695609611531034023588114268848276160753405387631872497498320362110339644742085652499422541389393983313978246028717344341646134694457192204771272603808742597866760112496291590588862704522811689849259715602527216573443640403815545350963762877975674919983282197605394285089793442958821253453636700335632018419073445126409408300136552987124821521091068163292001202251671111400115652632061268426638706401018569241571479646854600619163232487668604971525894435686291217785674277369650535269653554832178023721929521543902774458333680376092521057349863490411415242220520198896313697180861531417978256558703696835786293887284299407352145996053786854976791892703247602536868615488179741257890161566688319628227300830921024463559063997464236416920885141590203746745491360818118435852703030887166107092516763361279904172044038079720795267335595923156792910137878177231995117817788350079375627475226840257106024782114815647620581453438773882801501387147335045718601920113708878916669645555884995552113245883777595323796836083154754847657589339782538537528864528748329587221563388269892524618491030725623449796764628833257392790200939015562587595748342108027377547776123525631244850894938155936794165539478233583947147536195760731558029734710926715996642727870917819705114814467108146303015372278993920235325403089818017016537834234387471534023491611220813650173629165396775950273159954801010118733716413772710410020740621782287495290525231245162635607697944992983683520986462608261945708713505076152273963150193870747007707314435701669238200214980227806798126432299191955479982918023175934681525710388321336275751009051355468743259846486068124311523845408788295227366159189019022370974193567598683537587552675277908802926140460235186454329244681880734607582761032495983909363839257981049429302919734032632135185782973371228479669180294544361153765763474678457205107216526383841973292467765386944571787815767911167704286798693526971096019914170167769257876090402531765917722878978526066779514876005932732035722002887549566922008082265619174062711741480224456247054026779391780593085606948168484375829485106714170105442899683447475622595668842828451931611778694520354856434568333352089090895580707972910861408420993178995427655386003217537410654756355991724397058000368892747351392631593523062932355716803682147166433382106990084989620210138967989581431987375861434811250548453594128889665678818424468015781050332062917476147537571789347305989369029496775168811126381576165319348274590273093286985321690087252194245595367140414207681341613834951581920715135998724837215620746041981464729101385115861947332018454417544175020491625118322531452650913906335889691094227491184340002955756262197642340464113425772128431094787653553879454160452285078708474526689381239974420876719362140112924359938377373338923301835727345275262522965366212050283608454235161622871864402756654405931266167615811584331324616651235563589825440144484647517755688750748213924091057308204022168159713361545036413738013104368565930450723865544459296815156070230865016113351194048661529513787656015644291310927159996754772989134678745654752432963667645414084685533166570887924254426846338448032503352360935609642163903164439213978567353309033120433464589558524756611712704595094544282555456258333364399510081038226454656499928997663576092701425431096284517540525595784984661177677378817336034394949656887962699902624291700181498639314509827151337239330925200285821854710244112077226456695268659333418721294651820084459036213858504416505240354280750432828178292027297398641673404051835056005134415033940308022941958808263001318746593271982550298444748643661202045593193977857985099082743716131258070279657972000531393444331997329744035742009218051716488720434391407895564226809522238555471800902564967288486349927075359912170019930448603954444835229479775327429737169404829013951437467978719065203463622556668574617114061157128882340896067850676305388578660885190050746799986644464153757021150242753765591337839813670207869323457084945566006244847035778962145547421137566412548596764146914024244482308663580374694096855405655413448484288435346222073308320774676150697265948456305308718601685089041099218726382272207206779111825434467661351800354907195945953848821551343607070213434175602327689938099074209454932406551834489912022288984286863567614436020034794304188558671074404970412293289185357720511882605735056006132949397366386713624296862404282318489034756636450129505974599660647562246425125349605577913473440111240121413273208246811853496421529050767595749475000980622038190474149226905250769769597188263318664264477098708166083820854031339891642195908049650987995172783941593897547970012783422100991332851339270178779176592945058647606869142672443549876241311321689151170234838459884183714884692034178921819871138725813648531598409866610927914100917635002382341703237856931206826823624914602652974868142353767130154018100249195096260015746231311424305307746339171943272820998199861909376491259000901389505440185682258444245665498828500704140492222020884712161388341220995551775542034934898363561819940356475497310569713846347376411350758440019720191730148576963159408319768577181490134251174672937632288264999029634721552043315841231843123458509830655697178222063745609741135474527996048974716672355736939686153097783079107267083186117311473227075018580113894576916238645180493439873613412996533198052214648003101839718187304787982313027207166092957158267748633940156436832788252770400233410002114047022623528056175312908012935138879311483772292554434617174832304249211857850567566646290962867825545108960245828407880589227191642140134921112689243699446561105165216664393414341183198621342000869889956874720904889084659195594101958602235538393612098446942298928123253701151870430806353445217835770465656505516600992389299081842871601521078515670349764611542654176447615201454758472775116839208550121526102215982313567291927516941642446232625248927850928651476429071009893778099146063114897532117692063624089779421635667447154370671406331134553001338758751694935517944705925618642856934778707392255020956944730272648845976008664490189554600362396510409144877674287743465767650919722347784520827953924059329442235772501506961237438669038089940904999194236827181673568410629324493109594292611705497531499612145663192735912432312556660969609276108932202587635236386861646106399244286995625754288079645047417993963515506104240460341012167478721656772367086973884024176546264559705625110291807744944923607134126837638948234558131992364936406354565924519700638662170987735227009853173306203107033737817329366075965996531226554625661205839601691881456951540795275593233154644320884595378939369065892347981353410053226262505972783970265114009396941406541052765359345958881858020236780985686556355860969426380948617534027377101346165358922075027230918171348606691620219023272632940232410556603334469021744680567979610863034249339225518582616711034908021335125228447337264635944356201301172731783977559465536897035892568524787629205022732065560171082181261681682582170984037869642939900874070905081254256091435658605852816147553867817059594282846653647227104906972662598531907441895617585753859829183355587801689088204470554337759459739599236699883314586688105325414313388212963243776647652303911839351255854128478052874706830226034657716414719880483839927851145296590971060657713445724911107072570437789879299563839115783060455215191045257322594253419850390642903468150024135306046424946469416521830070064504777071113853947702382957024912879736511729528155934844738508580335845010469060825064230062497055333771841775240075213029392802817252726412510157572735249890764635026655027312398543355370406183597167339738330740796491056633654398091871331680943219417047689823681472931165387232224958428702832803460522622908210875258741287052827251857977317702084266937251833783688595640977856539064940543339872516192936348201236384087505158193518992200371350481277679250181660928942332414920013399639058796477498647892416027060056503247121599127163048751987388652828123337804804341443286461488077406463382575197055698511021792065590723328675114884507186980873255070980152166380931684361145942124997994154835535347972303971476742829302858185514333592922185948834434699661076751151636767117231263130336108543563300061391822946179895865646470395389483226271130151381638078910694027314249848852932113284250790257141902590788123289325953269481960273817745598836958210768307614496695184881962918096453562883451037290514461132181298367924446173555029217901055926276388289399056605992634980245068829626960169823159601887100577475869593194529840525556814599060277044519713087629428797944868951503090657510565531853931734329976473746054207260598944557516078062657915295801229227868647092563213244676327581672468578318032465154762084524599443012122859822564535343305474943032558329481072891791085305936583254980104966916348026036457646441491490112521340947775875571265667588792679460280262346028985882166568534551197821699616440050936302547447636557398322774680957901674377344618360893566969555769651566406279157720239140652504835997381093581913109232075181497319313287065326818654124032994357359993870877673740728571674719689486220237021485057180149701096239043335345907695962845855827508949143113928600809727209337307667811958305548664920225180197970487508813495705998398124085386671602175070568206866358484643770826718985022102088860976388214632780026146333727249196103512495553325814023549034183513528653078237929812868219892605329152001650894768736403542078096310201424186051905135720960667195895999779277978025865957271171059576823935663400456538607873868402462530574715399213110954321947090653497303263627690973728489809727969743014734181355590001411278440426261103048550052983610657683727980636014885151241649564309718545420375984063275254644163083273859011355863034478921296464302916483544260397865510663134334808568515272643438061276482067605446723455705110214608813526721977761498982365699758237935930871418203816596752166605711051270184966298686163197630272989120313557183091849687866764271043574143511716025979873015765138378477210290282836041215401528422852415898924973829998883187398618544592648583601219364339665391841397679726072169555038604992027949769723192453076819207225278687542651552685542496344356810737629236480683878669656242021767865212176711449047232008407035821623723876417626118597872859428588504930768336376661444971275356100456272300153161293022157873119137046182744913551892839870946580420498461352015765918775593594863036403776371285743128912446388121237637851032467879376807017462223344551853165362295063047612366247991555533313588647261358050697859827510318426885904963444551180883657468630098722301223249945772503686460493746592578901769734130579619896975159517918676378928178391536812480974531058875606222768049108518691894631890162411938485396688530387434278294388947421471342253221795749878733464170624288882836431609285654081062169808096808992824621578434431583208032103413582948716375908070928876903003496187414044373269540554889016412860157781356321052852144770980454080966903780257888836755786686730167936763088752945806673637495068692155860462384950357907800766980366498099628196756732011157036031710815021092510771635003647280712161234198040322564915124026237781238211915272332180617493904410824565015605459823882855013612352886700427269725997775011576284789200506340032638339786419983922208012865616164789701600762995575145398002461248295911545183144668567651990800061327901657448850174697096077397081181973643221553990380154101145484373057391287189457125811803143186636774100739187174718706425324451051363465447279352644652062227497041578970244452441437406682375846605460048270851746620947061976139592298695477868764388258348440659286389895424562657802741771367227178900054864028243334943743341658458936282247050246561389843994653209451911981229303381835109162822792262748247388667879252608350787288283348827997478146185982425041449662696742429091304016587165118153027480254720468468475003453339762118087097938328669191486906186791314747847632225914544089469881193948039432744353852791492129680988506681304508660719393281078137614357292675895816419677379180444033635506886861003208393630443462118078922152809752018518654688262696929555946348761935768685016548446744182161757108026937351602194603573541099541633875132628099661044625271781945860915526297525599804944515641853766771465671157137024474597972932958468828885281240639595884634585467513427301533861471765446592940455857052533628809234683750364494894727912321620455382377867063749467782726028503376002580416331092864307334202072952373931571118306020613018008422760483128897402809791876565970867397025411228284101593796160385957644244775796254707010350451155302137942991690159051671670977371569218747126541139471958251724084863791637751327939868404083536041227708635096520445619463928080797729204318667243991106314733941065758090591346372093080235532726725919980523218282100329604339606269258004153952016626409758878902155291708180191075207094425222517923546101577278825310188620179551419133410092084700799461546540046005677403011258766718157156186839861346689194087079377988922028339568654542645101881201507614332334393030323246659277545814025686181105756029220523222598755989728024607500968202734958522428235251918180532429276250599419468743635913221463170167301959289760176527777414285336987547497410477230737159435625302255762331596789132537469577815304365309609208555249887124787812501659189409067079466283657611988980209297640604430270776686736484066190666883183071807792354844501544065749720809077668045271407427128488698541665362093043806301320327280952925377566544810500091211670775417831082395103568305654907189275210869186134309526925631086535465069410393109977505398804808142457788556596277759577226498360074128956358658736891541797932350980607697203045866003470610705634304065687113391872160409310920521159462110166471941054075916583272316548503511598990848401875703816409904580188430391585253053950189138028785772010029752361481032888054994948875614848719679599162519796783052756670528303714831303939399018473295723774804675975462197064478478886805344540937972373213442194659882685429039392213118751698510771815526437608811767526932912758323614635679518671905520755171421225555865797482036045457550398530205497878620887033215632881234013289240384412811817877505162735434373827679390730624939270151144578502044624337040857689407097192169286555804720602635255761294651892328059695100981554356675300210190919655791680107771417308398941334550358058798721656299424938451874676787011565836525558983560895705363593178701764940097863436299747769504789445955240763929911008070588171235512061222140369967168569240412032345443062849595648116532578811526209085208675137470342073077888376454840973130599527235757537123965280182925007660622448732738555991126279366563604274345126823724718799921322382487681815585193649484839861692011965080227135800085947190139685750170516570663046461641906932931345005102337405371400592370835728631236870796668018848724700150712086528091542103244861704862464154672650432161569793796601548502269273385885949079455530096852647512552564283057451414258493526396557638296181022080993363822126539555244426705857793817428157652000313388327173065508045665592349240789845999047837338477581527955988037814829724221305785779765596017198647938741630986512394471637713890888550183787199586794079889364455908352153277566528208226507402569297149610097665535648201200125687561920500596630582801436642554626898897648999982863888794607920453642591146979453216297933137296232451269305651712091527045299125090568381535748408511839986849422667828108805117372448164675024710814556687811840383092300678753789478491460388756866515980603612612810680937183832822835714029688948269035996853828272837072295631148545793230793706010148218314267652873243470025360261526861260132404393673673300664757417864196067667354193588915635413178408201560915358382346280863021216790125030726582722070551823676339187771983472134235364118700152111134570080365689194026517425748768232916017800793713912232364017383922486210550579314570947466862016969557451964771106920048993812357832221140345416944246963811924433335358150820222545705572602367854209205267645052459270849182699625702727730103817724059695241743188240957391636234195008178699269949234560982224834672603085140403524413629961756002411645215773893493217080706750196218623771777175423342837894515806493461438735756078789526896103228258071271296642661006798106291682313953298175938563050128107077959385601045156689811544599962511100114434456593358011147203048239008148991177239791929731928494016607786859694940228944839143954015177604445441156669593501955565810512985252409832059414012589643278562138930196697058396845150331435285834188236820319801141666711381191751128269603553145118746206443597920769748070752600651816583579324262192782377573483308637224435730852868759673528346491560490252937309022011215874048771896434909136878155071375185015006674397110608913204321375324804605378182717657405448605352751049641006637593453987674255715439038985934216977741460762222339005524659559126038518989714558367594897076326634194321836582889894526901359594541900149299669545925314304248526490957716004647263298113150535928524363314103828274640795909244891229348727134506712676912847506259695113314628061627914127825296612875522020455942357126852742040200512654656529767537157957213619223292823863368548073932455184453577665772411809474045740057231650947520113853967033846322770740316789136231876912103550209408273285127242693767752169845815275382496550219694025128569683343390326738109651215762912918226716711434346087186141022964381236028690650732114554830807736254186006931483904574551618206614630243216523967537390570969348801192825719724207605659092650713809553560047009945630118308696470564446168014648804268464480211663180707240750946475401805340915305297933830888994320812336949549271179532042205840913754223982593374602116647059767320805207632036060366487201291726695881965178718901018003090837308652979817994384790771829350349933802944534642306469146353030331843701608859531128088535236546399641370583626503855668743442676150444182939528774475231935578860289227336194747403479327834154265052154509857456347494883376969693810340556909768285664639886751746467732367556385024212342681484438226160954305923441633620218016662713333724601183218713524600737693682187767803747983926632009418860925387278289684592194480183868627731445658230579524479303475053152884262672460721172008514116398990378262586284676827211048304193229922209605010370710343763414586028498832630149277268703073693659038165983137791962705771233598371260946226162623062173392735522655982358983400251540518756793934301958254821665630394926667487261975205288539305103081761717101370859816527907070233316279962440318801935592673566791706956736175037149353970096479782336644912229781108419432966668585539766972015630274396658925099513784714140779015565080110702538674959045159019490818236069020539566106462711823761047813185747028357741006073438191266448905048910111583267585037914074625454314829935856106316578943081423114267232714666775853190751653102571757146577987371949191307877759183144047105267329207823698113126656328633812141661104881829065257330758229246546273607532250677988151270055271618348144922250049435910197948821125332809002633762553637439440704796459886143422043375630992527043999452188204760229327841766227160446485099938011573015820899495919537877648606231606145090893969415491304622173042030456617150754255820303489245559208446200029927456727398845780908562093671605323344659022621444975135150129837705139737979237582554476247413436877146866277577135492979186131183006994641891152783590437166934131573352020552312694964798163540116803924033430295666075371769506071962942863097321408273102356979686123687293502713685162662795978463500182078869389504059047143160391398606701368272626344602693734177405533453913785082576338590492226441870228650561573724275506375269800102908812633404135422720474829549712051425361691319773596466914028872303273656642590208986767245181611183470771815920271878952534480756594040446347528387561205502768813753123888983961209864145275492532159958681564212088072493154313360628087319409738632528196634220530687187919682134393798961860596353015008894099541799744711475060427450311579678028708757454496024513335142195562918072860655828230172154326307372060562583779617172455998681901022516398282670524147289935860945768856312287388277578198754604185238504748203871923018950200091511849926107565969621877802390273637875416996919330984678155964152421645365338767182916358697755923255128942592555953125159043198485572622017041364288942569425770394076431931907347593914724709840981679055974218549699835095961106817753430736078019624670279643547323975364435998902589181724627919448349859007825279533255856684908277666264608473965889701526436592504679038888064266358045159692031017422030524939387313723241084841174790514246512657262012178610174721051584655241302857575692627585596281548548652272875784289656863152735613751991790112921651895292978074296640682329620441091491164278187639271766537433686738875470142326985349329980525968533289554978512667921947153802156158393945818197402959009851698689869685943117229754634801128287078453708198508015318077264293823098878661030715640237036443872993156406130612635839196607378500314981856782077346397254734840831866091604638506011851253171907665301241561799202639606204259741591453942206545997304998163174023781105382420844863283021040450750349648037235714995260249072094190226580064489166927614776408383695194379219409655956941400416938722147084796038674887453603493475803207417269318853033542275948884841638780164041917964423806683797154800046959658463442716504585096430802838681298030352735037790307305269442378763200867856799828232319374933328605011709529499955808059400686928028123611480060158152397540614571050638831944693647821719671768185613416857696592406680127838463251069104810761517836143412316269717928228035218835276241367881701538426745572960921376189644587582548441009013104336112097780434104095244962020742624565689445886109692682347119467919703132663705576419047935292234764920974358456801896615640651544667503784555334391845106319498554168245459050581735679907674608614495395208605275112076338715913143370139041433637270862846447628051149042923070916250717466113080603037826061064756751512962900482592120420851598194802622220234339857846914765518680702688282280705407252910304669736056801811900964955265509584056824186684379147143062174611628582813534782863825260912562411574069968539013297765813688001577444810827954207100837203879585799385226192233189100160726447140670499371857121058550609594892769917080123125368397477327395060501278422070508516471264094390981167469237302079046566747251110168166880312479806282082834479422015904140758779649546768156931049226075599733312304220984823071907740101108030119516214085635531256850542148464962631616448891300199100823956084752527381064290128238149086045372794811418656760089753248255504385849842359442980527248997579033823944532382123783549046082330609335909608349115611040134572726973666139331215983761987655648110938235825658959285087720362869867483237699856143815080670552092575891893691363327167037052321285214167092447422903084800569344357147916588800446612331581569108700488265654162535294862576322471582878140194442214230608216333574459947462270708771386619485108259725986072084877302605187586870939695831851082623435337116478577209823810269429230089209295526580730109453380733845868886281230813506381773949851931924932709699569617965939850819875815219025603760384204696397209467897189254537480655078588606277370384745586581760952628280928618271528661004983819117909084705420473041440531627496440860962082553760156736716526645672921690164100349765407581733365828996788202923931214126085407078231758679998938378599579365942214254498290297323303872814066277530856696760513220418770516574989308050260618873597140556917794466416849855219043777499798874565448725749552929830252306845847174152523453367243100134850129621526407538125929416641939879831756538428143008222845708861193758958410934716146763352371912635046710135631841656009275279154331542109006015471079256606845801313768879350621986786127494449114605649855046443420185160095056136236039881954453227215038337045616858818852009575466775794214135545896623231845418076198795403041051289351389354223250047270825097343439423228834116264987326268169076534132122461084016953664158048127270380026080034549744100713147589921839899978887683108535719697778084922676513090238280837301998959797423897219861805061655413323254458502120335928995264253922114804459098712242356654889670882207549384392983336549379757719146265360159707149116733835654913094243900108638574268572864522790830501124786691249743312534379971750695148794179585505743498074040923152332995231133788994207306119322259490172950442578880992782999828431762932807082735214850064779613242950618482454958818976756735077989749696116316407476190035349677508578695276838536283260397169100954703428067199048931546755077792456671294894979816198335740641171348094793708332322352843615959150659533613475734857645204944722473995098611120873883311739523388813539840836037987315610125274480207297293398166289155842978685597054611651725507630346617422297564709394807061416175041914934393799619264352271746743456604976242418787230769472895887477169938255324466914277420048695503212110313355832968470514451282837051665753773617386885986144907431314119495477034966240037446040517114177714778657396003090712034592721146224171722349327268790139387899463584479163365796094923554975558978973010240184400529527966363521129652760848553905928551100520950302189234562962884313261843733574369471762754194393026735865741846598793873964002360966829649788184036032359948486356828218650441158126853323754915585810923580178728171313488235850427069075785036933516558921266528723481302322658061839042670489669206446825330285268769706136777215170720533374963486772192145042231800868227744742420053223681191534138642106531719861641512197972137378620050081934652165577314893445918808766601312460700739561906391859097295439221318342336845914295679238198381489118699087266318316019686954018579681551590422088879982691682707617675585310639213761318175799992932350572771448374237121096236202257197033329954402491771808177450160467001262189009960893693305992002599627825864823657326767325261519340274137710667994973041028257115895712797495415210576981199413634919236300989055260951347664485571112923022823112859441946721730366765890519387102792247878336087648432918079451835029053620154969486471155848637950559342343033900576419730901214755232640241880836229155657866691038005425540331552736272935751800979355750084108292647200845264929686391425803904494615145743348380178825770665954008386786674478178035862382407488238164473016986233480348813890349475830640711640114174364857680514794585993004586164433186874124264616511604624449487508912130689729349491801707870782271631929758671482286622540218992738421361234326691734275136135077556232320735806046009754726434552770712761237973179538746303727798743102753992758826341452824654899818401904289472217453007993021871983103140736659071274705005690050085098686822220507283210773428646199405006518066321914512113616051006054818539245540507358419091285051420251633833295421924541658297169179689618999293772265877576414918327702042041728608013839253855804512316171144234933861120109687141941893471826648650769944691353761647318707205767157308872755950424998302379865256662653865170910583948581030997937881053130561084872777134691076065252321973691824529322510078009684118332270090050780327708613636060981425546294272421615656778791125299019073961009576504540087683819896660105873192825551307548477742280403791053580125611262165154161808899926157391436663196351644530470170370198096437399659078214323881546884975419980814179719577425597419599070672439110641192478773997698699750234777440854106991314696637383079556518707452015425517094793396281581363530356532444762788676416961944538120247833000863812098543416626482815757277751666672944538066646111964470549579875804547855820629781170526123490465343426092177963341899161839899440869748617980449560227316304535269826823417684033670999948195483581328743344203444932847102023160435092643976380584698588764184813600179252529505594934180750701429456764442241669156830373847227772392384601218318828444527908543477962756465800315362612742388031030961686942741818407477113897931303730359509491498473788775804997257781705720022263809144124206187097043993314561729648921622218224043142138633916542934026364869484693464251867671676654199169219537797714814049493368442068664733914630484618834150690150483368569856463066450501499031808622478189924523362007809898829784788885828152412568630258078763839507582199286729388511920787390426524267351491018894398326403201157794785934352780706857045263562343225103225841999345623783232498059610378831482647733963734064905468176858505122409686948118491890808655545435644158243849246584149306440681040493983340924797333372248472366784180905751663791626535144302005094449524756977590367430602059130345911437848547758558596102574067445549909194461798980863637119616989829484533337753548869520001249677213058623808589968098305556387971936204774506300490529740135796997694944547981149670176734789835176392716152369070583257821151615188831303827610215801407254148903628855917919578834207401718051760613494004418349116016208232650976151389217854980889488431856681680686796506797722701918449468979280607685814688639761108887432507098470079779838580334941932133802081387055381852847479677729324520711147523623392998899399231338809613283258770585101501804418290398088529893664327139469023561359220538658932141517494499150717132272259144467957404582914566640483160172012624071810349704677996152808275416184843134987104954557297238553018896620472176819152299122997486804780986474557886290722231575706647608828237844734451359805045259412257263560670870329815209656586811064610818318174303595483873878858825642917455181273596786115636582712262867306105108697890484384524310174678229478157513268845831243814297201988447973128658740258534300148933251439026924962807563715189488597757530524366431525427777766917625411265804026498276046816319055821088290478995764788830032608767639306965498139479709175717115259541200905075822290450177764509972181727930109305563188151101981446130849108564683001095586200192869208318398430380402328634166476057895577188778071097772668205750092947963718329392313520784693979166633027241819178240167839568597964906592636161096753925049765952833780139146901618368090688830684166823984482297350913447169657145027139404947911963700176192012828438380034864950515835819138680389574108795502083961929995990284677828416926760228766070746402591980533370575903205336170444577236132708849397243403745217470694086747822683169703702742537471207620784299178660715730015535526145432036241971104722558666666716245328423084242464690341448370426947279375453929504526736250105499662977058008136276108169065814319666438719277135132053960824398753194377524718110410062971141696758652415324493742196217312729753097079060328927605513666870913767261328288685313413324066829637167187356223920362526157700367743160888100230124776858812574184816117073392022103230183163643618991566271208876126079034533999362412735373427100913722741763825465356169238344113931716855448994692465450534508362416783970097238549929488775552730163138651696530184443376627537284111069707129063096713265175660821380942977106490556918715888306530245430144688501400943231526514952573179920664461782777146478891297436031358294892421259332653756791164806711476260993711026496159783039854086197799347432820243880154178231115235052523098678235546859193456325807306216618195983396441360158452481323355839991687048585663374139879995008015430997114593169246228697994933564504659778831831312452150216418449940087559413932459173076932853815256610464431792052241625144544908466846227865170852820524845070831230135665026609751422656932832355674853254448781660657295433156261163910454498732728018614319415215151522521923932276005139276902084262947956594423163174815604527951258336007305428167863803670132368354221546769416479683136675614407090593220758856746762923391381520354695755313390814868590937805155532183101436714454959242687991864376916895747418946887356747394712093389508718636235105605440210850896472229555993770279325776608381093946104784700874400518423235711782346845432159215371343074012737817872881120716577777609035032774903519072496969142581458012001738408857057466199436462645597778403362122977291530017074954465645519393359177749699804485210715861257288990418086163053441981939988959970597459967048774218553759491360257013544391887860304707625943733227871589057147021958498751129830873845249761961640848078736482519119282359177857733140310129096721851829220049478512923792148297253341594896128729502321114896917999933579732674992307997024962383150497783494751283675867670222516719755591993663341296902110549335324671475421338123324130302512864118508748709478817311752017658673030958058128664053883763599469875156752742432954702247915510318092941948890948581772991301843235711443932377541979162267620990227711821631984928401809204482419278997798387554898365037359207325100641886470461701647135690867120271898382808315314304256751292889826835697543387304610252919191772849958393149661955957739401493976331194029362725728843648491395283461381385166928410249851441500516317736671031494368411991273430965709323451962902570885685231732094813273904500721328454467376987016650391080136996158242776401265033413571617704832830083863071448792789077730812227451952781469568970244052209822806364660304156777736641861625316543510633679350305717325381927445657728034470006212923923876215261230425147687459640917751724897149496158758039343755584310537239810752401652823071949310359131952871455364023632360467431420292430382028275908121937586826081009189482090361951166471497382879333623376638648915447266707408479216218981360308454825528286277523692890818526763136519591918169258301769910850798980785906491398776989400394345053213685960311201878879658382369339309618421013742057213828948572607917548144066520412802901490262570153040024660671688960062567015035665229377332486535261646817089836513831996977285351249417682472457247058719909596813783516017947016873337831608745155156466296323276058463621777136083578257909398803570819064375244371660181309290641685742889818111541772043752756720461280636879867290656812639190176839305505171717560589520808859725192556141386229180370908123755061420203134036946505504427590442800220615756568963825712877290712129363072288277405362344879106234890389194568910275707117415909719921942250811625694923681502586655075225457534084699411298459781431758548972163739832267258831930828744975675970139413748348418489327605870054713095827903092105373751151518537558545822004195062294568505255330286395789398924907020205800608645943195751755749146463292580753515005290584797546307705551320786164506705770028526670716575295933147189764147932885686140223071090365967482043448989025745661653511465856981461047614231818155679700650238809858861881698437437884514963651701726478752342468292188091982375345279393471853867897525593949267080971032999756694629179870842466809958394235894448608205623028710606884924396876264736641287232050501160066260959903734882543706640004798533789815594003631567093206329056141482105858130668853773362608848314620941239259785778227479960421542466795645065138189785673598842951311706616366972764771889054637640486062190061896459558823644003521196215150187287050257695558701512422523520770644092025579421479165148340280583216117295665824401481034122987776067247119072602590413853742997409032164814145636089498799130778630818977752102616626788984306447885411151086246133741396864715319713171024959020196959277748174425122716853888568204861911042650758113575933042902480524077173429072420106013268729347555132476172799331549213667872145232607361166427897310560430886173067461647794028982089720597364137864885968174008062220273794203007930226027212640911041983187884068340614400616331936200236548214271933330831924764855046636497525790446401880237919706400313970113739480738623567265574218699564024238086676092977105256384161283522217248915438894540848008276111310293680671971527458897644768983490282887521580625367133764761318572054416288797076119168312521439159744894554003179714605032190593078306447333618687461584735086645893294820995095225700070064273256288502627714183019794224333769643356421236781856708376508389814546630773945185697713142743445137259425914934439243933345826189014030723402800253684688886425797154601994130203891168164406046066687227715240254559241464738573134797749938731180608723785225390125644640416882987164222816802275409880656898328613860162016632259802747828256764026151783405719035435158927405826712841022074890386806494939381769644340860207950406137461827513842820978054416899989525025989222779098821111228436137090063071969083290384605663376691848607314653303698160566817134178709375605739196993066953044893168820946561774140532938744894193114039620302976878161446909609020168238416132450249547818077642304886488284870646476986536224800383227809969066329465631637178401026135803927273169361234438885614375547867344505380764088754442557370923226261145631128437781454083387533652286246923996263122571215245934878656075421368974359302388706694411571992087268483418885590569219814196090613990806270152094175680561639734277828162075861513756680406812082852965946290026868298166697063918608705692134678071859345891144826626252496454854744833295512754929960329760078520466247974143266500056527907353665714943689320844990378552905132475509715125530214196298941932891779714018269313404911687801802280348301366010979679581252732482987264440163443099752641092315912308618771533462223755845448485243156708411317126818492838923660940545609189597086159160000028996709041685433998319750114510619310513800316448429272475046959323279436250711885088112235636776357981046475001441085377976661561021462390603792944660589762455466360195104517466315603882739139329935351052540809153893257972740460763166172961044312416562563598395648035071734932229181265148782511355556241164182330727224836563655297242559008728249277411620805822038153407289591773969954622276981483590963689056584303351429450794631483916606942555737090587968426516428429281698001717068970395424313036670452779043287093473986038965004108169269214040613739526966858990903107311544494856660741840449585815040394802900033872313909555172689752286180737739446130591207069767789534261489784502900751027566733987242736733390147547328952994634289742228635530224518733907034065968491376562656012789182832877272797892173263698628457599399537500726436844091505167745999125787078232831332494533050680305780346531597419022544534949175439246377270424422842510812275783610197665961427272053892308675709749220906886493670610442660186500406709408412299534223819968506717959612317518221754574834434790949519593749272987498391623172330816770477807843645836053757978398406022001301904655079938434286558230197721222043834368805019619135919550368685931158772823418630366026131242521954179218553720152313494717904575847310087922124862323677729332549903987570719445086132738313964409408630455670255612078847281699512247694423781599362236122107930741209323898110496895681606073970550032691782952185249239774716777325059641011854231652762662202561176303335545278176537169692078971473947087663372170991270142456638155633798632041278473865098317205497660363352409663047753694440695863773781375111793030360876221917243077773664994163135667174911131241883436572128748938664733584677570039676742231266872954769482417887071244861965934872810884020147117746199460712845445840661578055728757368296511144119416625179904772798890731139400500185968057079242234939925282986443168692601830828631202510556764874452898546745195410687584494686210627000147994064379984654777142265541709652141986677751257261588726556876938095740284085275317648716427240925754182367820707785393045830131944615537293456145450901078838426635284188587462778850717122437093851832523110173986089516208428814604877994064330776444807156807350939709846513618169374039625881829267109261417168975333576414604230325687919078506424784218711474115315004739899338863402043000809696579218110266704564241635496282049654365563684679064594658509952925059348568623328827439283427564504378504651434220718224674854290862152849428462055043917069978129601945657196102175289846921940106979769665529425401903462364480535860890020730011454091715001397379328336125226685653416654368702760719919299114691237662114854921362306958053864330738708962329782536894890297296539056341579444951195366675621141485996828653888868657315049614122731706131436985937271533113860778101027422515156198103761320402904250069192340004320242661214911061874467333895082100860530682177721499326917994454924224856295559322948727471038715807626502206066967851161486122160634344443749159528050892415441704127860826473747813255110433794712149057625306664449317303185599024942165196033104857735806761194124877901340061258187540071571286348263114965752631491550877323741354646485820877187212485959770335171007546441911507132494545464393775748607740620814090661146615479544675614425039450631159038164695329268539122261407716996754482366888533804724431839300607186895199142544451166132687711854286841774604718260313575221601929923682349645978416572335306565224740637907486044318445018092704840164150143419542064467555048173592115068448225476771127390788152113959780680340718554551323426525865583640845091629065104068500726275524949853038661077177458140599046328872205023221952042274940317945406563144265269959602510493954305279747146131425780975618406301662727954659828682263434286830981257299084865495081704808981700303491587038812806358135830345799423217995776876564982301122548071422002233346983938551541195681083257391867745884450069783262616417295324342956925996466225055120181738123412905224614125247385196032543359963129210722291231752502494399515060819799547661610716327600475452753690546260436960201635630053147928483447014641715961819108610684571343587296846338948333116378591412550599032455313801137748070315872109540444742474817523262475196929531557513592946712550371938641777621031864260815602972047513082771538328951888915245647694552421505233663175969276655992439723147027103905430637556779209361418177502598544600833199275042421427080889247213964609203573467664955635430877353922390504427310648791514718471987113858541286914378679825974028055990838966472055984951807674156403722655399804116929957475800971234956837503836891364478107188506359732060977101921331744727194465213064223337276671397006449716478574522719457767328693205621389136908363594762674909274024852376604030129611469699455963391249263782772850065222805002293709742884542096981281738017531231692675534492560310994889798762961204288403720818385404806219730351820825229374242216361888470275644219160646734602283699265300489573565390866796657049963508919597218949365635932212634906632447309021984940759146018459460283566542385855664881459354194779385570486340479394786817384410025901907796837481730722351978626029023855527926114252179325342166703404137124561619276296556143797853191722074904940087128493159774926865721257750740494875080545060801401533310681119863659224993423173094959968596505160910314334564445615393413537010467409874007626130549523705908888382527381123800989413232732029407093499663548671594416119654128990636810114891542087386090915738676515513222350444721789028626067435438888274666021718412537411808379859396407650159243387283970656108071334411967879622484163227230583487828540460259827823939821562442862850323717574161391414819585671479539939359400265962637407344142819736724360218060762619634027111455206341224705593304660920450603000852589174509457063504895533134605658576003490236597352188952466591483592709288436422383864959925754527715502328327354919873443362753348501207890299615152808347212050452828822132074851747575854701539326459457387352317237701739064876794934683777853088769818237207534740787209994315414930735101947122357053322565340227729077148020148758242487191465803547725466916005576327007191857501381302491244634397561933272420217481427796236553545214111611772202414270608504871281215053235484612013396318929166592627076622236617147692170342038029004801505351163879950805623473593329768709630252327070781444812326502992256469085976563672574107875300695747511383092460379903077904536742910891070778111950786047232682796048681408178313965273883263976599631720987945722402521674861901687856534960708551083674668552998547627472305856532207171075843387246473025284160044779882383077412977632276416797994532186499313753486274298004267689409509126412646200590904089939447074066826388615020670183580468550412923899150511435298591860834534006085726652739464514337056071327161011316798596370424031139857969223470256931188420485795029890009259078466796771448988710396436210634988436057900617313847536028069104679225364468400714095997078329523192551928746649000567710043908430651962889081337252409297728436769086030999832704009705992203591086584720288005059002642870342202385163916133235370396230949482057392167826031019317618263564224492371651497069135252637309419456246277031585815488916048314748392780277441552886836949503012115766180878721032763884516095430221608691526470206634174687793696946470692263551525340503141546650511388075805879721562285100548496151415608948521410745659496370736822442614749283360051841178137609102175881774402671527961799867036966848093769187805783226522486552246529046447043474072198138324744619930362566688616758791410726940323015086579840074132659187122658429564367868147965225676758637266358112759992199754342810004353528692154232748872139954840854651223051387121958514377344937406365083531131306072870990345725381086891487272239139518080130982970635490133315788628739877848452131361639615414350772048689120015760604365848011120832453316759214046014019934143003045307315069433747442733433801949279742087125646782852872231749753935269961831224778716165346245893488711021198511850607479409029623801134061115161391928233975201535193131904345361179624936931550321863750716814192685575613639726164432509446649701252901774188436210223289472362224608076432155207397837132444711015275065372329567633143999517942390388101860833118572938198807961607132705099459743045239497853227791141587658290951848442748425722306769120893495218822488941976395913210625056846767945413535181703844483172357183092534416669804867602193995572660845918420367237946278360986473969831104044402813651632881365407210883296697190585536598985490977335048735041549897078522672730332234924637725329216914696185902646314085889753856726189534685490230637911327993535805520580481924899165139415101661983973553238737639176183079061062112059388212058666892381593815362509778306137701215082246379549208164673947474762934114690147120381780604430255551363473580403577925133482578566741061091422070919123257203490768873414656656969373332643267778529277427352417503012742885488857753268361267241681190806420511401329675745689854896604776459929010787910926557237190352776245956345499297441387923982228078246638751935540917797516348650760881050771849999747589512935004374675553330798013060997976843069664679555441158662511102669384587762451563627286232959029104449373647129028402007712232397541510339539717987472037157844227596348757961187521775262868566199778038345706299788933549936885798036219402466739325494029920029145914167357877107118475917118505803431321001650622304185707410769899584207956452911582541896645128822912439817075031719162751784994420721733438764107897888045694699494056116460076357222534696481491586983598838676338809203187081758549019647691508806460858803867888908869503283823633017538201610241865131552418846051489789977649488820978343411770423507038028425053790686469946668003157605769760405332426444249799662096597290709270644855964685465875127613206934476016936288502161923655773628259158066189432009745988309182274957720161322557840724764906029042685881669047523642380944683893352098671004847564229078357766705215516174996215972053179879162465806142218458952285023401635274288564098089066566833971897021727939487206697729933770355668674183631393320200433048765093782485260548716661105301587476939532356133080246777108841024175438629692111185284385852317869120480115968938752648226214905894079090882795276107191549675638895863041520777820055778629898618905959082927844017407434927557861364566944437475406664674255708786285435274617232511232363214714458990155842399868092697521002027837168857118947579393127859725702139794063687052732708646496111447478558903762745504096183832443382826962821060659832120448464147348606882628438390930048128366964445635050307370321363779734647245440455674907216501831524946784017301787481087099235402643288607291678351971298049213780964370799541266499617806823264577107233144670816448637314216652548736953959674255451286131354993893881128991055309937775050078947885380679897893518815868007683981885391962502578949352637284505661543064272800630624609986414279819375514730990628112009837472136708855129157549941706869102437316101600418548323893193708307649485944065840316767996256200487424681518136135911246872305502031848290263672965208387380145482183899311071775943382571789883461326847830036820310046432537886642705162576803051317296496306106619084810513507741220083018580780333895336226177728042417839880977723681922869340225964273328299994798662727426981028905343544240554645062312506061641682617434764433574996703634472133147821313496019839715601474994653429322919694431211531548786611513311266343584262258649134428930757308572569317772686377371312342354599684637661646184312033274351085034289060633823731032235694518290631519095605044405298139901789755818453175176870643824638413079702337845789554530547401698406175479833799504233945585405544022382620122371902929219409825309118140703071622495781450651491343920369490065149520414074348954524310756747972492368023713672616431474969261282272841582705598759061093237076236700813380807739991537631265028409494244739354384173079059593125693754163110783714783819959996490888147665112163135393902544498653349572483117785122142100981074293654545051657638721000925814048676889355007966390108486663332069520676526089310077721454602237313940576538755694261777860101884386602967235533621617913009917539786108603576917776251579424987449539476843391243469902325181859417855905825282369611866892089235795966024823627881553644904916075266213082661796599648409638729948467978064720319733123572709126313444932482474399249301367680662452128241609824379454599458664018499804196849341816380202527959783131988423623557699024268691964992234222920948885928631169667960764086916845165191753831899788714885870002956289325381773962570572938657287137295391437382988944529649494556152653939467713482025703916227043948945084499385458465027583562565635061071262392201670803336939400205689346783615554873472248731161265524499220261255620724270143624148044224420418337724795902432750764624669637415711088730066861284881609233355117599380374491458328897812317958664002965875390049999172332693070190911891030334738345128400655446340670217846261215999576380489554594496476820774870264507607433031802443704378200398327817821880706163302826021155576701278576335320586732436692735602866857388799304315473487288613715989333705707798126798815448388245178754199994133051663269187362319298035491619934839758089079598460057863506925848343563628485691939040515341883156351728220219305502568715386812576484497659740343931441722011473485728498813559149271839323901003777854568086791646803017255899766676977886485786136213622808095342740071754293575744568439308778010729260600967652503168998765439362609821059867887615826163277798890001148570155933895998295982529080301434444019326354199988045033145601559052419546650433750195531838629283850689195879916319752459247591820776859620139643226043801693091790629006279299743503836570460790360111180029384690994293411279424552667341235933692144357157792158044341029805477245466190491733294164574705548916195410767835546543190287584728878556106455971164305901888810056437939007460438538579324990708010472035620715406924841489288187489393873809862427006678252282994737635913421998327148666391483722902488276769506469036807221717691327102696792576896100524143825484871831971155628946238486731409524907116796050693290268952110668398678233395649484709358046579977359494718995596818438263507625216972632240330014735466899725952090423072015869186973222918389765420743632038497569855031576266707208318940815077731331132578419359781849070232732922528487260985544615291812332138840730860577801774779320396437250591432926379190778804562849451487466243699923169821333202209441745686501054413389918452576333630431285442643498517656849734034841509179590002203903403808439734961647306145508981193556131661653710900426264282904176629239371280908601037803308864754380462909581497713133092747315739913722086381967710825787590234760684974464338648421879348134554522966157123562529700748472196598910825595741098401108391389708597707874139874482506636033692500490380497303441500354295160229418473278589767984980324946684211671980714468731245068973956159689128153646125077677283543018244006005201724604810616766597583934182612012671202966283164653243757907074910098977802261326650702664259049870190001111017686283820063211758074196753008066473041907661273197121936907367613117028254032626700834425912286460884404416422256480974254787482898808927889826637001851458554145707212750628035898532484787532948186715041914057166974208970067636234233868248281878197986359579886152415019378140608335853286932973962726375314706048425528275049012166380467615855031175971375449672342489889024787500493710843121765301281054234181816648930965600306808092493681477053650454315113385428557161618354754036596163766312316253936337571792859335049080028634840093235816789310784068025911165983024952533544025305190159636479238148780131587391376239478629455420302749608657608493768874954418854150406037929479551353861034950070117299573826841784346798364374028371144313107627090078534475477723426248931021795786477401783023034091029364534948517741631965327123500054064517951388426314192825033267779848473497540941526105916116897840410582744011465207621281590431560023751465584346815795254899053675227238784878840138519068314114918645059355485799516541807689367204808370412198260922473688020734747896540679151436376371929788340589795800207264946171297258404435997164994322976718522979631087126746289241839347432203091012863747954575612144108144168785194164869552120933306107760270279279775811499160987248369470409252458758271741822300128386864041814361991944726281302159356985042118594957809200077412297520316009455499310817074473082579280366505861195782465646809457834874607575701834538200767979348913571698715405590253705909150459530576933358558838986947084548240248983981713398562689391881286822179091154653811649201608979860206623934175094973447641510732161515256008708829625988708895236898362739634443926425946175014555809672592468675461542603219648897449810143032974489815956835362348891180619187088776120645941110141189260820713019278765446199145846448322998888610437825789646329231628244347838567282212955798949027355897607635416727518630683875037374651781092444426714380602895071454072533685067003551322555644422459020058036801554525079732703697968102135620510864401468070306458209548092669076173600540183803251881204401743123575263456802938768838377954185528117672295691604475656641780925056760696935427325104974250096651481905782135702326724440209594716595719332348559154798053840866193226526438777544655405637644337739090030455927573236828171289328480324559660643852764327607724732713005949010818970468728275036017249584875401936071957720551311293791985056908901064378983799496033672514972609666226279569504791690633865493467178301709132747073278761216813130767742062785806326917708401168981095881684941796965878880914693067849667123756514632766326071630361259837224950391486628298897915898735451659309011668312443546119236005692706315090074842062070310352905001152791622415435542232035771898263350336997282732379253233012264013028683519579081051967142092265792159820627963361843700632670079395457254345042284304641258228647401660203948033667452862214809072538854371632463706528561682945386117256614133496572379846459786373737056396599102958524734811653801756537224399422978664159323394060146101397769802198333273353526719249045442416092350184653870233795324892332616345622574924096920510626775106246994860781047400002719483100637442322557557117244035176666484175748340590573479815293790096038225139650325954066470442687566662098056615284507342715709998452338372005126834805301444432743820508232510525439650501115203386060071346191163489977636898969443720420769093406074228760637385814657218347973899487990382988189174528053744463880271756933092591075204679240746261883595321928144326313649462607067314599647753207488909650654183783356035934385863573980901350322999213351355115766046127794161802203332048087693947356600852699697147414401221051714231343115940084388964667655548470431620164293510855162408294569333545950812767679042917352505107128821433742161600261284286255004319715142498698290683518816846771290127059154359433183339509745316335949259284425378137351784575632594102053393439248837821526827738863371029666506296531481996993776854772909001534405123246224296098168576207060713310448324006655079581726612111021506717288937108990776654575888680915129393727514106319229048087150816600451594032413438191989145193203734118643243099613702333581990181725909974118254648472191716514429223652674970028943030424128486361762080397681688305793664231639326340457897987968597637615502964055462124078571071366286596540267176177714172770819033573702903643384917795716497637289984317098414579000590660406043153064614270085775667430519565627433300189841044838141414185549999192260265395059453141301532608071251490688480610470288487698636718610750373551741726714621302785801610612770586020871922721286181476304979406630260782406793852255472627913000050790155923062054986830314235145528432334148919210241532745020419054662018984472694612888072296428209131616080094665600716598039644560605340344264378790218166840590623846778606498238747739876891200710628669388885802017242743977595878130997035924016451975746599841020765505973320744406563580111157166426269014987479051761723314309391025996747294234180853083935097596696128922550569332059268668163872142889514162220139235538375726144128188240373070066267574256373865836275883111706218516850711573935314980408630260151941864264716572850055335632820976687865949114186159802580249571960689435868487280727440171226563122473732441116685817221986500584010887763080061090497395871874600252054910400736577647279404315329134028720419812281318578638312799426155993717039900240412908024772817013195861754910117495321595315603424325979601411394450432136526336092147062485927922264759232866053412067011195250949253243733735978269235690704431216528624268959956889426681077286901403462622061760032606623880058339208607834722513654264682103870187286325696059076133266933790199548906089763352854967817456163361200242747116506329805944084362340235944163138367522855125040629312174550552958826161092335946002578511368516591966437962836753193096583670273254614454296881006601520525193832812618113776975881802494018097906524455633357430518751722487676823251594328643500910671806889773572875246526005203876402188152737129338741623568269751103472724699326228545255945895172828566017125471501505380532986701218193159761761178345872535339783210537682405438791312157946157913705132649157986411363504447780477722387223131572989817128301297724042806833775952493622354205218015546371028529632755719375497732999792934657075397759666817310800761221395808738421509735117620040024492410771795114477407133835712514617458411167247247645055490160476304050153076581372823029225190141157074946807502758191042979096221423007747318522529877738174476909225291990376093112582879807562207291194034221133190086938738490414410915737085637091353286583461943997351331711493699345116644529713113221294331489594260275470260298964004177442384102680996066724041486811942999196645950320812207563894951398051534715945341632274703591276424379507691020958657769567678622481801649140928621874620601357531963173287441842181025223535496948732561786743274659449226763466083232222332883469442853039114544349169887975298093276758134990751570746877638930006554067093060632145834448850949680075145129342242363353261446226288578140308613110681524208667027675285342965006442361712272860528404027798618449242773668681789142286901628859860534306381873536179095289429048131832103318742379470745747934246319378940944998393918004555664439767381765353496998673141644129965708282954558298032616039847857431060711408018743492988490534912143242416217661192917081463319671673266033070504180496401853702627045222202872489850327832292882573636674482549820303266536274135727963431568372924787253473223210312518715664504406293211022050260932258331122519243086626449407773407882444388589999224048112192129200035089034359473432908435636671261204967427812899711788476974382387081848822761202403272544458011535523785759653842098434172647194806166377194806420132897895606056415176836624401630082571403851856440784533343055276690636153605435007970597824296152246957372426702069736132598060275248825017825323460740516216233883344014215358639777502223914440277070645312846789304164780495747057822843792530398225087621365989135641328498444078516246423854360719268835073509705598420421632819566807524899632671058673907608836256877776236872185174807242287096029862364749274858780411298020393547048943493404551683527679539919498316218746418745347467996659882321789754780593608620188923972425392860683741089401944061099633358328558590371788273120207078745626869420969618059651399007043092966830609340069872381182311165784984058542795136942949401990409144860797271150790548844559763268090910968314884459552221576268849799851443508222882549087994362278414311605070619457453940670711971805185451701221346495999030046092196374058679106067472807514589239820844003632076310740908493699955607408386759312734055772458591621965568482086189290096200773239156967956109685587285898992395498304317287967465939370344778816120851766921900272793860222672103506565803642083515569963904435999559659098271252560680880301603581685886098267209828324509744860721911190807937890709670595518666917430248092748282796991189708321495175124222034252579950486137704532835258531784996576039963964643006067282718285545315681051518578078708878852225759139396358448411239705759651166870305465658050992565866451612388434341245552542147541743401443503655986518413811660938765114276814856991859862570428486964441852753351245372106239178809310415593541667327670533552307306933621769640777493727353056719142021138366212241756036605081816519899657027352431910290027719810918159541527416343279920178922117526475509385923300342338129680850191823787940636523157809962657814772832605603084609720658717371786482056220116291535098010008397838974584151347693633611476467434476477586290492287900770262328275582330077763235730188955516432587971720669832275790564289255653003186355800065593598708927202589652006744132407605560002874882695252841667507035031464367693555128649711098905828966951628681689017547348267434712606543454766512880931214655018734811735552821488971540544301249227986471640332700641592424148366473468473946008596557920128781303852306555439748244426572394522463102166074048007185781402721313361950738880411566264388056723035458813236656668409948574039899812001600177766388715752404969234519706585842607822353266949906231323989835184973351002810954288143796603916274612068875095434279448963571974704070931382398625277149754865437634820587977444624364044274621958687566009800736661005225613026697029209594107686821121404909144223749996188973260884149490992605266580267265985287320176853297253185501532793430716997773975966447526074895882543276206979868802681736787857608252271843548697134587899881986252809196743712737932364923687488528263621574980892154531816067096056480938603752562030916769079428144021520414124771257305666742070886738212335337387916829218475976693899890339367808663212097788651459381536756511616004159756037739537353167230903558373774516442464515401884211861042609498523636067048045396017307854966364589206484171626196640320334462812499643236621201800526332378699828185018129900219670820063463197391528435826210471504367992513139053474876212470517010571176953789391145120668759636504807525892692246184113934201060468510818531052803320219614565760712463117277140804313544372001080953795786902451744808753747790620049792840567836190824572064771652205186326270959996692555532259477046599383390581154051259845023076331756351471754760133681775504261724306656638663031651498993100055067946324923319099991678617087566594366270830819138284557726934839389033054965068239904378405923650203721865799433233538520887020249022753869402657257189961389453002518030526211240082193087514738110864828293253791177403355684507173775484453915309714714619479420462723636295161179059204932705243301977702893405512571590544562573648428072358824502152089526982272054943044172735241050652612781254620538974476754492161354716278582438633262982687126310402113868857260659115377139869278203267211733060555575908765417619375356497642155285533972683262555624130546850380434343026521107702839639353373876304089214516110853224656842444609906890297203650974141027670480462801855623507058329087372045292781132223628491298913639833271151435078857116256851681340400053742629709905933114746798338803748216095074662794056465929726528948531609331251142631852431982205438874214065476723903978749795456708493212288966996297654942006909325306895581894159448808447696417849640440225583945942916554656817017801331083981297224060761680547060221455869762303014866197970165599424100081236533768710847330613721884969359894537209068298210411693901175618404539440380362459544449004270058146638333745934267650621073473513918377367046883170999272841929011500693315824786898162122281199433568359991105445429494441728693994814526736279697306701492144519433365145334869416504613311669748450566287584519300930971641610265202229046462231103574299963188955487851144816165468492181643250989854871976252933401433311378966363300828534996203717947107301892645783428157042414524303268410787792116237005024766215854617161401159205374486074983014745482983901989910513724073250373189238639952089482407969933313478741287421869014011490549202401593196407095662460516557963734644589980291592434814245393811758578455267370503520151712074327723222566409171538934107209166356043528361725197176337993751829475575517423845532453848187514527618313562346656189303789565563829236633719504270831964775811384073603893876945284927470079771810315732267042933753488667807152852253692531327122805010312611421316278768778492578672082532301090144756482180252138471605808825821924438288552752102181227026485626262117352767142231588018474393945043453473197554257284980624192901862756735307234458836171173006603391419731307387212867445493760355353257688237577284152293736866533513304834463929491515758604817533380110952442909452697643313740265572040363405420554348099650891603030339262627739682568053331800316165442107882102779962725653841182894178073800325406159696852640991561214350307573219036436015783744907640126807345943901070784802309698151218490966668011112825345061562055717370991862150017811223963019956838535601193544724131474886862851615046635217245793407346317777829259412805534865537477730875196946744551808475170472752829750436654513480918997267834703361126941808470060943975117022424650576883402477679251069184618743544864469792823511823416359148756025719612602669418265433022673992645212780850591771993741886170759175556405932216584577962794552493567486091897435144570347586321171294412079145911581476733220186232081748598854478235792604252452595415564585576006465641590053135975233233878532099337695373638098540304062359749872878984298444069683481460282575135742502823949944580552788285920413399141292459881009091616384206727133427658148476460286484804335862563693654441190692152267701923650334235567824056120086365367761745186850871164091146896468476200449956873912084259073490044653303440532389693704015578945753061604665562866242359519356996798177137898020834013649431871895683341958589734933049385504146985597256809293588655779873357535805108674876366207079405676500185735339062192919849037336763734115164839431105332227882078675463285208963509633883164382013071294327629662920242603859164914620894030621192989092080283133600096605037164499973120526620541842989362042968309527400372173513248542621921234511436429355057157945876914119381144850633025810476086465518652993189995396284104791535649283063418359717971069940923376535234654447077756417466604350588811987610979243288132180822349784006979898879515513158518485293981855123511988608443660728175483075876229941245125217220970220969958584260774720335432293124033372814364572417386161463968798640452177909323416432793967058277157540654595941295711289766677572312765269632332473896008115338803622538439890622993413319642672337942829887032535949916798755807546223637872692172657340254640894036365946300288027775549289426739564668490872999137983498844922622576711777008079298765567432342497545164206724922855344790089139969407937529075234617658721309323076285674698580587354583853585133712114335358396603289155224020552601783311257508471941212149152646608868732386517915106784471535059440226565065632142017655803432374761728392498191223028419706270541246926439432139012346256802688397115183534789755652037070470944345006797250235711064178033087033937198661969343882864842975835783858781517782749394839768907504735441969669746844780314032485926200616108666745872842302488346760023272161948659705500192348687221450127329849748838449279060370113594617079694174101794179028393894995521930761708360981643720290718226364756012894775177299140028791689403214631137565953858882933774747612527486383692844465256635258885777579448540081010455573850292047230920866161368333896066424376388925576372252357495941680698297319071694561241878569186331459383129046057528329248929167189949231122600607051206238772605569696516002257453564715222769936260153537165014382055625915197538265526240948823252123153194513258258517239858390184486897160749327480023170656051044632211677568929769094244896083685660403968195630656349192032298316856292300048343118558781058107102491642970557027399671480321390293693257829395610425484723144513691381566976344881201791367420585300180809147052034772339376744566139977852059122126733506371914307855051315894983410717334808462113710055239274107649910309877644604910297594910934462465194578708387909435813683274927149796393992083768074411783367949672170535044481113415107530231259313412584113411446828206329407275615625977094382830084393269173754074534724987903311037913844296553000445332096281432555334792228292154768819284669932150024855511498426138924083234893929627684751360422087589471993760182881109373808087367400777542364318494245062211344363548106026968786295765227401827831489721723406996886453883972975713959851348247125844071627549522409302711049593994708394422564278940048793676941564517823144445135142122992610075609285137343029601677854945419537227622251529848692554784346840619237573728305004501408107040457804574990592447782981005150785432409950643661511291473068419486561518300077185182404106460833846094180228997493934951565731004400486201558874201847354913170030701899381278926183142297361110473061362856663813636482562554461178167451537251446473991505604334206143723072221565690719765890472419670217343598212647529754436465611043275434188087700320902694827961486364893804778564664968170036943953694446041791830444389266898248331564967201274448050186999620043695073906308782789570233736869842929080965766955703582834502798084527994318359797309522440435227393028277059544169119947289047504525517534620426052510880853012217957476855674015414553893674017129853380890960472456241287723931441373486821596748809100247766694542599442668852094659119404148639477551865874051022073328889356846116568341294390830254771077544528483214241403794690814779261656762090736890470505554571418195885180148226842392872592485265907776183795318081864954099502278038316225328435867642721059041059391745604190692048071666878255654579667059444112624329472608454906528412527737294482325276532437790765676242722740574716822510073410780178299838572633968447708554412132148496684182143556468753208967057741147359550401119299254513808126419021819295683912509657428969090408718109405887428383529145040511802993904696375296662918779629391232784594810605814776469500767474648997487584434523807847687287712851771449087251289338100227658411023877545174138909175585960924534404092752034350835960253279801091073716232978901790851203603463017820943830902546645426493744593274001038714477815894213153066435081758836865089870598552120792006980020996921148319735384998526108204186615487286864663120010217344708869684623413529373421530971845542258802338527398663388956265373041659626210266499962006199959891929200413104220044441401825235351402660624273560895280692096110556474376475925154536312454199504403236617710240654755245092017577712269752643943823545808777581766202774119031013061866704696657513275528941503614505226193074355511946159117842174570835666157939221531483855236947286858200021676850984793564891225528675723732754670985939848720577499579089079187472560106809187685656282524084558978526627492259160689225217014599079855228831473577455061857016808529401638061985529298496257033345358052298127107393917579609352230440914756214741992770974526498184464375465936897452513685586191573334132688190703568868804946633253865312064487227447221508702842504980551906137173546742197532421706679784527073090586352630450074676189569259394373590485572044568975536107742940298791100825596876567925422075543682076787499992362149133735704392868547902563905994185299554453082314957308582957113268133962425449710464426833334414858411344433699244898743185621199454792324132445667414929373078388598465437348892343653066070194113608834035134461931191450862406916158748442694930285734414235230383801255603976066489861188195926415158686807559216061236094715304437487046116954620206539992640772326533813030771405203111573871176637191192177519169941558168924165360261233261519231400378212297772349279583760873124876447902062497892388560685863154792359967644430767109502559975414198947520153677667177015809335592549467948997984900811481450832409999952322349356766929731254401088221313260291550158884972959543173739905776608461283006579516861054080259361085155404701661798764612695928572980321939495347727076896647485344810699767029005385017559201656602248369629189670436836330031013280512087220005569610922002603157249282546673624128174063570089125954962200729114711488671188276728689905791456979321155051723256853931051819162924558789482493268447978201500348139550786716634593529818805391029920514467962985700392759298145100841366584519110193134845047705311108366852445626160892108061583907490239228453782215944440950578698123433742287421392321593747099717069217051883991749249509680052781732730352657293909303673281150321321520777555453311841481790140570876728687948333610088793345034157509224249728840101327310793472822557446797746624535535825059798977663558860850404693689705843320160100105647130360437055940854623516650962562238977722790312838641198540978359932685335155870848977358482584190097445148800340550986589876063347630625485375040431481263514969838624699177534644870902223584948614257681614059184687468458531724112911234221967549305208260124504627646759532272007430527076527371951875479766980000721905660233832018819892339908981445133006071417945514348234655811180560564762653528965550621093500836009068254214359730979853898115219533477932093617883891144629289402120507404974282598914565059549825166359080632101839612502169938093502514394212277931021263630663691696499724901425087681947249492851625180073271897188140319876189785216124637415839568224244033541794217452267110174888835995033701660601251823977006371377986775126305945215175044516936645776513339342789140496081618640471812701409602880948829746417455539444715729999665149709778662309963642999650173804868720337108612358612530318046195577877255261376660365913166430268643370714000588652916084141623957822414592884747477439673875077934284202440234955298292816156333091588621318030514621117852237940119573171991854253803853296239783804746569535863667038114236109379951336366321507402685502443195877763990975704274120605863772174576360078693533777164716057454808865141994868951013871370049479621637644148008190733381563183530417237824025258545198001208746157827451016128675522559680921313984588327321068243894731852081196620078834949765210066654668793119895454987169127869043909005651384561353934355501522992308126973892302669143333732657854397776700417847911596917092963321672857422386276830567833300803584087107754737372580674793105308453336234154203436701949916030158193371223084607773906564336246391556852559144344642136744705207253356993643431525657871192906294964901337617386718598396852339041968275250583659892485427252891827503031940590652378377434279826925223977294775648006863959532369294529418950553329458048610002565025113930016461045263556848627855657451099507767022800143198598773130789827063337959806553733266650533999583572914541747077352220401481453485772543909417450416455933177441516705087749702461093718381263512023646855325354461055204173317064875748202473027704268467663739519973455349428302372664968431493323162453583173753288185775879935905518797258495626510139837952805998289589518548072181014160455449868428678902243896975281189747169948048065065008391715469301545660311347575935842979941552962800509114093939711641391628874093916251372331454716037990243038352444435235699159521573560172695333317186733653373933973751469848209260657788185711894769304101027811877757140654796799846004724848388235109081427380558072476233034827887345184457499023136860971654825014490849189882294737245670165252585720432325861722372482123664200689124192251986677439096794765361122629884303629049482837535331082185128710612766348993616862000934581090590489251793842943587773871904939385459168927713058680941543534440189401250024279111428717754119527213016816243368685318808805765149625651941549301514645764733516136134428980583693942209657973017399965325482217992036319320835432416690041249926867033854213329401930613318775735079923361606502018532762078259798429019127534604104537103193917046102973521643069391588857628335737988658009392996473958008910669058075090305777367092875334678219662673763225288624168991681209733360649662516794896611935830109822439992010893540001399526647591584478921893769839049059732402960598073300535165080465733259561307996763858140202021965142318671097424863795051796775626121013509623327296310258557849307042860019460441772528145528332447829656181340107328822293525028815177766712292867514214805035593239626215473169053810575996174102186083105509587205505494083964377511417597955014243774140433781128545539182926117399947552789796790173448384984290053392123246660340645785043083920057410477750604953512394585971032628569461087493906754149875843212521128232401146310370348063875083026327973268541172626518152554637563716587532771341850886461166987625810832125684538947820799428663432268407034187266510541545317722280587337956090071884710926559620466318817725220651504696959830367517379996923939967338935688758640811328847278230286852784402958785203416799286027092958019110179200892265321311203896820995560987684885383629248830925033236999577535940044005618412523395688702015597178446371870350602015694381492002063381957387094724867339037156165898294878087706440252536359229233925653134371339680259650322487948238856760506612935047506274356903584415165233582424537731205133508123774208710929099410602828818104986882762642039319361442501051375818656087603243487352848766742178478486270997285124610050114269619684973220765180733686442158625960638478233633514452030161261142447181320580458155494786790081342269087186446374584730855557396899175936414059966378997666684331582026940152069767846122485827606328405841271829270391863094968028657744001042132702150118727953307052493313877061862021106496837725838594922043580487168829808381887110099557550827212443637691591816023034623437002906634796618533390613863564647464259467382596509024044283348888251903825578306763443529802441222152196354564306210740216057253653603656467362223385917478897205248330382219292885363116115722279145593290734425031130464804792304887134163445286061165817693050459837554103125272663287949494265457335504080310868064709477902271266334502249719304948748320160889668373278892258308889954024021289165992147651787868769946864635079972705659514753600615269614440869148739799167008552173116190779162012492900206116715729629513625729686197706151770186749762794746055270467034068919872447623244717590489078976046518199856799306353739881997527061044627213198154023806092042964539962241399422226034946039727940729239818272276464497106684093489840298928081632924975433885210696796265941094110044044723681857152490323687855960583894413424780112167856132380618779742337619635233282755188207656960263939077118018094533156205029738640795301901579729455821298238368244945827093295672529994606445570882034441001540179935367776541385498961370666465215857057508051880045581304785019224329006280884169123242994229166086823658878709985264495863208831103375710727374235019605786871539869632607291416370458413047285238822357917878880273617277720418913522321324301816417639119046559974466800193332147401892893672404607148119138602408792005285596241235561136192383862191590704739814305511020661211166457628830945831994906909319764213271639237690154173026475012064638275174772507715980584441313281615814882413167759798863862984430932291081815372919466551174353598371852307895265815102216589893645398751665617310440278311548433089678482067315271846318065026201380684429107351472926835257643013080206423523243128259789853957943408633392681187804662987814156786619169826783690996269142895249580975344316135038163340916592314635347915486700146771216449103784647577467316353764973513030859738437755496374372122298471841264692259665871106487952092357934010118401586463666407637553423463741855065842084807534905602641491897242299118179819399991449809361296998416485441639154338943561645468545113710387910877613543042064486100855179369056681420812705706325981694719475977806870079811364850072618535941207089133934288755615428314668927330663380811564569439268499860019299088716025501171138340269356692116126042748070704361585633918344500844381140205264245863814168242683879104875937829695639673803816132421328471804120329803251759766322286646193175589754820582967540025836551761858927878010428611451522953985104780464503979520928555997233006033086347614148399877531038573789649090640689933201644046209615736101385374026601137162181943019222646529744206147275194726017320926136943433778150747819255550026104279076646691117619379373712032596620531805868171493753396149965357320781277672591391011892222322289544672063211977065046432097507549993987270526259348884576199632812763242760627531016034874289766611356557877002668385667035381466788517534806893067486770816130321059217297608863785872831402021285551881142571073937434876887566532170162825871815860412201086070252230487766169842568851261628148810954660834218103215749714154801475859612823034129218303047974207821421481859929277586713203815491046605672532244401410150459865317432179125102729959257580830737956655103211754597789278342932787323433390965369997132195472428985228395453686535684279495478839125597196695784105227841337879363921513741086771123651022806657090849335920925413747283569030498635696879754178494316192002894966421317075765245875039962197325092708494661135765401872058032536490807175202457711325893228382252975214647526829196352454693226420612620370349953274391270976318305977293535165728353373772672716101755012597581223224378548518088892201820930545542136504066917298062123786011252364778586429913112063984842616343602652402945837305572975757203027137500610268302598983607557982068628330453966456328448630917852018014294425046103333210159853762243462337189613146327042205086704181945910063692125453550207865823930022696660944874949051325852157836806801626376508410672383618459453644309904419326826085764185463688703712600465027681277144193137645648345509560881634041281804874684300762645324913235233904098876306261008204431168332570060789301489702765245000108160786913375972333841232759287142040080543300059912214061484643996859926055070127290772263191104962433345145211045486637450325418971015724873263290356113250894023585183312027262868106935798929152112449543208946015850644520043860580464045794202968389964743898742234266675513251692343745266651633297443950112842060003106003618882968612374742253163495206155718060503342063301144447060586286534494904062476873638736538200896235265681236533907610138097843383251571445960945216619200898931530947153335044106614603219470309476552680861833667940530384289893622599181758698154889845778258073785658241654330999523643796109707580826438210660002338345781190556465286644144701099817216465494881057160114034750049318409857929396527582812779200130039472748650442835606097881603751051484695428819578066826768320737730887626796153727873962495214509580546467325893704366379563939363546127108699913244911340475111407047452962406662136496016901377421476379013019068134643857429664395586087363271046071603564577634050879255346700660675375609553248058920968212049330551319142359859305935005031741010862193026066911588010053358089093418191970421586244038951909842928584288974985127282723286862498767388405729018537724422635949039521750144439237848150692383021131882690081887363345052341287998736654322667583358647970306881117218287350240695692172755791877293384756150393048619356083992432782094850179557902562203500946427821584147361957815163007670219405634385812048504007846567325965362049233857362727651589567143115280484273962142000008534286555877051858523315063789745390700148441515273638439757035176470803465346674658716664224902533011834442527179486653877282159314811491203595818810312131919053589186101622819592649104351062113075688333001741467355535965583523468776222320530807768052124132190745638872082495387748023698052274629586371778665882022419569615987214868647956942003200378870826360906073030038662380856164421494503015265865977066417831727428084536430302666801854415810036265391890442692015377611800047188013377377308880737729378469820406632606605851136869198464498956437451809250937355350395689456955127687868615919958334856635454891094094442709855477044057260321751443063217156405608266477203438679633306293983011708859496435115394486074210809568885361983837994269297014959070225157630364765155421119046341423493844064157710131406236828163866115727669362864036885183219919170504472635660046287719351926607468026479843977306420434421280859167856331803129340248199833085312217070331898790992962238513294839313845886572479016981787643588939935255021676028151259430145208340762737549155452264997284904921783121094066331000055079162656906376287980495043961409657484667551372904573201299234671005671106586057019758592995717554803081386601245090137897015651618182213134560507511848309565774149063594318849391848745345073949632728672869961084129665497714128135686738893724630682802587607385534853822829077339387318711953113943823231194379817992051038707088157392437593997198427891185314996778111045884187405313217845508979693112374011260752049968616395122565001321729260648351937255459212526042509231178904240388440644068582243447246129709987734533701362216046447775155932545248956236838436230982757524038590553405085862146559053856443785072971414967525360930627044845598690779885885973107182224460931513779410256598308632704999484593527916354821344661352113796204727849763198585307849781562832472691758485876212673013367606473366009610341375222130441423184216297298963018319773944650868310588980340357534459858211800504873650353798175566494517242165331372522113369248209025603282428870827655938304875091104666735917694830524471442022903927832400300016266637536000779121944319490571847937889840733158056937558075854669927003095841420520415315257839526524948248370669380367934488581740620224384044238008864792268247693748717981036922957343347711503186964877467766492713950206690122894618199329288035559824866667454746897726518847150098479301738617200858550081159046021130595056859186051900523200675393271438389359089255517596406599039674005501380011740321608184738490846109994677170980288768354015498939845265137368419600710707280124687669005000506629198377051279853070957309265562393189018536703661682685154469502798879911686979008399589403081191086992882381700934363166116888706058947054921306776696540579805347997666431107262707057968354708525641898829042556154616876111188723912853265032618903960378645608348422041954179218054879718148069937902538745615742401389377624730442593138884934409380028059348225626816571279015634750643405366858336792524270604731240137980325957507075002967791527778464713754924084253912973131418745220401752484080722004057759063462446888685249657577624104592269473039937659093569796927308729845923032523111061825079495256485318470244240310541332395360682402564136142352654021870336380650198321895827116351076427777470209301621415624194460369084931448242104987799184716442545245459367671747101409719836202774426153033878149767080736543759932760141422887433175721863966894213193693826628479254826754803083407798806115636941979982956756510282378196365490556195140597398827300507126233871829006834475088291693716953354919621110838611624398997304813258000264620433180877405636241576054952413418460359888182039654899064403647086296210111179664596378448136643792487535521274892634018580512062827623068416129520671220408501979661289783751023205600497858906001839951100873989784256151675438322455124774510916136152983436012800568714783923497008053152149034491255082567497922775276972200473410553461566162102790080762965923527354808246418943715678256036022940876266643718025346732855346587897719880515423533174607260215551037814387027195800300245029059555117763457645814358049949531400938211289767209090749039993333533886291176170125373293868626704493823072203165009580781547113694756507768191358800681534170867314351786835046107276461318039494307049511014875225650974512753886322145307699233463418455674898069830906999649272353032515084309144609433892002252342251143695840570334900325059369408836366094230965685839498701374395368216606912606698694869498086154239957698143401014030620934989863275784124194245024673202308607356985327786286641409621183747038050697938016779886058305859531895487139939752125292992360179113653901277678306306267019444360721331358213046874796540781013538576319376215913596219618951216280760953951505170913519755047499699647860033695193131831406267395302327530619743455723883953177281533738899286986256662141993970997231206729451266854410944285551240585822165220910924017716316290072212840637037055898553799271728006988476292077580485619923248532779957835191699072158112816807049647147000907164049022402794284285753725053429878837809028991470786030455052324501024681898688822727645270208851175358179306493478784547006230759898676248434004926606851275958368169459518836912786009133940684516736010438509475127921319919132022300214229368192812514458374888603363528443756961776178658674365661866007344918780853332627654368953228004105742715817479255620539659284698000319766633349455605164684207992715349559523957628664217322166212231978272750167231368951372547159212333219082195048269347441580483243662186037495423422381169665042595345247151708501430949092507319460867670955616746700105099285136473986655198911550531737055474934379167808938027920057864505649799096676729143174425472699556911975487188866295674302559341772969514067097671204625316944218630160508843130435195267077998868195148059709518327174949355252931736961134565581769900012252295407550963196411006893067148475696211553303372089733899384953598373432311898652474651257903879184438449352232065192992393994426711939392564267840633975825601909640595967434185480711907132043912811196106800060749515688198780115862506305863904831788986576927360544525577032676148275123978348469569900216491775465303888909656441229277775470536541511968567873051476821448387477660281895788724163984905085674200826526297749259393629023822607953108035573490680891106048096037203740639694072034255504853173436107206525233033044843390986177947960546199350515417575931079321468392179799870943973345220458977693639728857726361592498998953831725636476836490879655387819045685137493222586435092488726633810757317842298486751596381269860306586810688788066761788251949878955238090492769266813578826555171738661810428825926110950571656800717514152676950173047824202347307582258757740350369307412822876049183655508439702255503779958106191994319082231352246962592041145709128248944726051475687311124991766686821190114114875069392746132426201562527245806902593578855112808025578384097769216931078919805015247624426125840995982952034853056181879333984120211857894898143781665839991566372795969578447453871903145628344673808107597364270170695150089564237473148699102408924807675029380484529462717324910632791827905365283493370724952374884691712070286347154151794070211637116022193889650056523494691004640574129571006126906780982328193655236833500178093303656282376360565667556456659927874442323347002472937921125446163470607370330747672556987579426974882335093836735154236424491169603070374060037782733499342094100524163244213067537641189168663390940280169453550229112379160434156719036117590877356687732380961557558273713600227164150072906242672139451373694656486179357483840884898965630152699190457327522857764669540020896491467743821710477957863582756194868694419942107374741018905340798144766826008842946441259957434091165165581866791757036834616960160463778981846001484601037251996904743652806577396241195948634961684166029025300377305959683431528305924326598143976244312417634913499760326434637687208462196332892912223003354111468151695550774721334407368823023189342234219809495215997015573049403357402555731927970340403157811559775357077786677971100554033616653487787984669154747477990924844529913647429155305078923421155314386873106573549795105821645882559128365551173634013693132734465259688388105867962493360068020518737864806238813053887962392241239783570806315466650552169920206709173674054769962401833554285087795249853102374760344195719910482266351756159159917165218977192740070817742222917070935447996349857211940896867728222285993673006352653847764435397457720921995158552353445169970068487256398390525986297447946342131078060343075587319054692025822211489194821592089625150241587854349280788071835053247755576039793810521568078391172740170935417565478752212649236886206690535848167285520430370600439017033026050015062982822685222798625500480332490124526982606071886877223091410946107241965305476685927176854197373554824616878377591828699154014366145164414642326077700207825611007893285595190001631955023099918840597659749057263571289500139495384647545044358471058452352312608483336773500426666570856100219368202474978092083864837210761985858003550644264926123687852573921890042533780948540788241594794866401802449950388536243841616635931538022691211288892136383137159571552596616966945749150950062993050103700078983003155600084547964935021252427147964355333608136176814964681226122946151300930828206705447949092316862634835195878315470076362599514292494342176978616273024243253772946027221986672150848607514735966741213700640984890893302596257266289281013284916747201608650135900261377415116884229714103158557707663826997890433618308989289019256497098327283818893322186831725842294302131880008415331386475073345317853921527289208392577022590366894263792424796717796103390794023548135703534551985322840258876641024392098431871651162868945911490799782633354288741403664563514950876631269017855438175417072116549503169044450203294188317188532467796156341358380334325065671028581528462591478298749906112301984643450530707718723351897848395615465426734265178003348719371162081537447625150882805328360153212070404029664805084568724834644576911258328869894322992488614796893243140790735801099785484987753857075738591540970853609372871103507518760566377965548715941506702576950166789113292641018601536817835684691688115026273374942012416310973673980877238207608966940374167656903237904901696837441622204859869624686393205296519351889134715141820631378777888574673382863983340804306471859877837802794902527420632507937105088903005384100380012765641085372618446582660668705979562177757173447484414328271236106011077413860353469724885955664573113606722662815565659325638169890052460839988878325472662533776751932914643081164331230166647660067205502659030073686918016149006504017925679851969041357613546186335115706111181363622938010793439824560045778321221182585691184515647337619925176629335176370078553061838716154435102885866595316313281845146472051618034347588607920492001699973352536930703646736392335398213514568882401899212477486585123070333691652181002167633834551872488612210598238971450796172147088303296993362705498552500815247954418638483308771057780918125035710800515400203494773460732817220776036501752435154637326007786205694810798974493000969586937212645126464613133294151795934352941575827159490541441186496992069939303817029114974543645142331719092935358480486299597147149080318842867887189232071274477025741204377488931656406975417028300509555788182701030314415536839705316991238118062247866992982333237073702477126267718174583914554880592290301210557113673673294790591317908588664603922898896042925831287893231263444271915490312235913193822095293228938846754823497663694654222741263965004163212165899777163846162904802940480669848609203459946049970368382173548903287712268951374847190161583153512316655198413925642318452265757472302267404625919644470398991259041385854923174502167683925700590358874516297861448237451729200839534215632553433262644623880852798206403053719038129027507623505755028372828739705093824322282254041618620161239182354006560202377141389880879727066700439463956793803212062432510415258364141987343060356802276443227501197462898270393874777249663937360713261620203523692076027048803549072272252527946319530474110995576335199186608479103514047463855546922482563620669590872967411837230446617816233243383985455188893269840996881145505570324679357211926175610247158004331601479606533610416873727239477929182950821194887822551655778783705144320583769269941568759066263582680925143104606639604926776891303971119078098325617061100420479520910319906543598164338064872391721905711719569661635454524536337123708421977415070112175676493138001783226300094672799563104190187535494804654221907613720062062211222245294549689957696148795835480479719214088223038078695787949099667654202873950048921793371318120620560802780452171784716124515230690592622866652580099162647390751777960264397125380868897820105147471227202321521678564960080016768053362889292385708362655797441101621348214516524967461001442439779166385646789630172613692639261069294103882560024274826268277575900717184596117925034139452402241999662708522346541023160580640053650335299689407419345641680181598806710253625739897364911592974293560440148782344513517735997698026699730456314205008862933073806028135280740703444892069499202597135548241972526652854838244063332940729078502379426366067617975680398016095898320966038999132183246300496174490359835914757674586647719056254933304038585602509339727711714139142467626415853099317384048692615805159329909222316060869875967768660793209457481735499961136865137861351603989764777845419409082248600372543677694022286686073881903531055747379741908519889871941870167877156592473418108793522471030590215991700687257846262582768426564220221903028483124684194286396604254892801767106260624369711770617350901687074060623366900713702206891423636706529620700643441674719631506989564782150119898637913945890445925910048921653894079152870095047205825017215298905869370835054746583039124883220515864017506542914765682506428204083034635214654770859588260377399456159834397959693026209806501359428852196382920817086353111725005397466021947102200278474521272414662251980499763094029636403692958921721939848655307367742021366224791121048680153271669533480262698856728412849660938970086013521154324688391979114604369608541707790737608329952389731227027921532452468684324119126815061706910159119684996925644235359702862054871354715289196715441475840494169557192360112742856051599575020104160620317504730497628164544798361414976174710101980464630143755850034748325898102134892286429653577255412562160750354320603052246425193134547928385187852453826780125726584200680065192285509218860679898536707910164848518455020357443812095264027616101816895433086223650377893602327843951725565882837808715911585428595429072912783164239770668278225451228896007996509252103464755206017784484725680937872653856167791994410544378268715871504867297777029024112034881522722307182936314516000289446049327327645018563123988260616901933645398953706528175181790523186321892258163234593064196541970236363417617610196963511442553623602864973679122538457180979155862128775381168302760386272754371112043448904331255021130614783893015671028533954077833050585570664424122059075909439351397990597421736184667166466571043347931690039673464548467731900145228971246257767930402624783910107391013554779305350386528523141152105919574093407963700100381114152151635032058269456641436173522388918710007789783065540010299254032705309950110976828255988183690926293472438992481418961749146644263619754687540620994488294357906789158643712664992211758797332876515219437203617398994485445481298313167799598160836096530330970150214361285209991631736415515801743260180010306877156460358191280264735673078132666760545713942860726380563279417289840354290154423378360084061608234588125462026215296573071356461588610806983684358709236570854348240680342467658055555929483463258874460016555569518404266108302332413082694155348402277633774376733783874332539310083410741444724815669004368766347849160733210362606572453915767745979042366417579529839367428906070803375908295507316445299074804114874239972118475511844982448633552580624338975291669090472098560654709804195651432724133684784688674527187391726346942449409581588078285253466492176386269142083537944813558974186353918294650451279322794253907040012864853917013515553995944705346943664918968435514377620783844669743374362394674241318343302632104390258689320253377254264158836120918829264005923610593189320097560257794051807672055720622353366748561777211888958698760222915303872159489061951509240723097622786748005568512193587609305343605684436457179743638319227669363137087216863553907557629960493392185573115782616515516920779176295562008569288674885533978992198081317960188679052721380417763982899391859248871516592831927315804845050325821930843959486291616998582188199652643740937750218369494989332040872161106713347622241961347942491968255880687258275960629175770864028116713260584937335025024329606040685053635009576400128706249006554985532310293581778392569382337002410009189291200448896596353579628765653618252689610573836641742331344068052571755421708997668891999242764068391546904345843791371152153858591532277608244684395757211479133286214806661358369405903997180267241143946933067611037839431027817457040446925573021959036351785441607359098188019362478766239429004723352170439228694251593757092310718267018207846455840022653872123460333538869672333197743724574850774772756617800709770773723752998419937383452484975931178231555489227288812673054327938214387228222974616882088234268329815369688613201750204776630317435192058839318893718682110797644736362608080071168286329521852591529818243107816024033442707544869822735549156284698394450667881916488352477087905676563249729877017529458171141810111048080731862610104105646893900019127770695196961399697836050831111129007394123031063549279599604237918547510095701497182976406678140412000075623775137814006546124495436334132043720491003109097159726785642699357478710115483758493196465744687563658260084093531756259911864106408929914821846121409914047749759080204011586968248753196324409822716403927744469570777469262063231371236361861344264839980766225651052777408456576167506141803159246536242669536861212577552856823235174368417963172472892705839998581158688872499376902032698635144683256244508938782077556850935127920929388847306024973137659048602273370074879918583114068672826222650945564516871805987978944982184757346087853550182743254164606863719076558852638193920706875205566404276965711433421746078650658035666816528813039848845108136724114478474487459923952400713049293557381427698050877580364896161640729530242193979317765892680684755217698625939948672640817145989304056267462557817934351639436010057567373220936497658479649899286187512922290435620395978802254383053209097257578987102274689885612127676412872038566332982980912129802722771501790850001251639605434632829654271928342302451701685711722991642371320260781752956957154109973277602070511437406972381099902141396311263556760515427087880530743744428860764081340427341682037973818832778204065860810299224332802214757652905287734771494860945067250240549222818457552233819607156255146828140611275096098295431383450140312480280431422355948048187749977737288367842427085402613289526226645263354602741533818550949598450933658432651643788909962581225847640105730971298083923894782638580853730482015859649300879330842935996731480041625211995139997681883579014985744255993924201608948995376552198923747409322602648100384659508597886414689672843890445539434018470999840808853944937945514191185331948545255493660707949350894648310609653945203387675843489086610356804321666549231188101169282219548034185978348437908623337436053711115060383394437207088656257037256846970648244482145955850225694447633848786192068294925794849938604720995783824035016930869569801152343883501697217714703493838047861169916434652050639105837237234045487972783566652257399171118296945723835923537480128771055871699087950664827306075786325793012739165097531041917615707391596086748909320973840598739474283839970819178753160527522773677743120616868751759067070693222248175027869680421697557092540412742249759483421596244845857574078278906538019396086587037608791214837936632335707289951926949008381399660259058554441246332101277162292909740795304826748638974609985857110536381826299671823411420587737070528698078929935574754796200692458368842083975080060736188011832438219510050121696807590189153969603792821391274674591711606295563327922082739947681029913107340029852795795534349839202347885029133778750538562847231182460551161776303755278749166255252595057181536676133825630546262929235250082315950178491187110662398331908847516377061720523940899741401851018592162211224244491726288203612671929778455144525933854277367757319690477169977891105979858103154294178571916233909517296925958919188229148542381187253549428603949950417926829978515617308458304127701974585371818091818358416304128675699364745521806957853136312915136780874868046728850141881082372424067136630311813604438938325680113613034942321286672464472368461593830939597468264760462352122617734312348403764412290609701695750915109509922166149154605939546009669739407940962446253525265289677728566103527569333914263514628895473799558819630443523232695255355493112136962627995904913027160270334887865384982809186711747415393075798281642201036102301205855905505839968594191859731867377218782768461908389657624409255367524199290476376978789322382177221570973588602263363949391753862327462699572361129911172737285200397427975374844329061975789208149415660408832053266699068076656805254927909428017974964508745693355463263631977535467528274372679232633779665509903613410596936173151245137018904314754862459886335539878727834151284355948234592542738499908685313282373241280110117426857424267026552306427913970663139664109085849644294353770712857397445001405091270072553858873848075154864871839109580072178073041343106865808766797569622725940819658037374307082508400938890243654915229934870353475301129468834333952191859216106246451729861372667167242986228646278874109714003436995714111778931199255778067335920725023712403763128078372651227751076577916521650505884271226393151208885375461083826961691131619540655365515866715022714438764450038347581376919913370325054527523598243555611292524937643405652264399192224517536460395503453022667040033336310410986843267265112507399810867573736902092258753675594623450070105756183719367830568154943795420844291186072462350049464597755077707075883523045514986549504103392520045412160296209623306034139252104537930561561971563038830257231074612341982217972630590534027554824601147002386027349423186795469093550976571769528736552153975816205358186863610168626727936063090442949805721826043410060662275791763968623693578227233704987576623905259907630434979094754781432840953203489988177136251391370315520617628746898836467593712440898185106779503217636362805112385531173385802010733241325822210994549834616919840593600882500208412582481241838529903076050659456841613438083630385176418916818027473402243947656980232634786262369744048056483397586352664192443009945403491373117855568412984121514325424113431023929058544694499689497724784350143932467126659241199064279738499011066591072090047699907960938672984262962556509056470074413151472797252293462890439593350196126374095339484848274734345124305096340389462687776748144231665519927685882701796607689991599738354098956833711662659445612420154920847985118530230642276287229153826380901557406508312410884533081506750562358412765803913104424352194016849411421892622582534461425797354434929038925044932061367796763856037103159373650481060807989373503203201679355606322736199375496085202644916688132029070560030469603178078205856278045942991937008124388142748615005633479533658595301601322448581176390682377111414631465085455952749991442755927375425700057855374608297360703583192171290920122947604694262104579939656816845462139722591793048898685196121972522782584709755268059015775765063464507677608682591890431933068865433011800478968798621990204775478482969705502142884849475351943128180408213464852153877994400631382133450325303467164039930624515563175511510414226938409400309437175499483899857336089477788983990319902582507096278980243641528327212036273854270018932060164236044195342247021069827913353687547182231513104308003400251132622779145430323655587690015995339977186901134132242775980156248998091237569209921761175126134251172748944591338717379484671659873674838764923146004820868416816411641693341278894677058688596002757467970729929871646865881847577315167518179017544918386060387748374892426766348112130838287546319574909683318061874652394517838521420485343583665295340719427697899453966548338470790105349250732578222747145970986118065257418175854536136822927714650284272175213768471694895834904916513013867298670624560842414113162684484411217851841420284898135176501374703534403293425116018028609640512715296862343050407313257820236835228791994854259861583035497651109801666751385475621062921625317307586060303939513940293805180438400872340576524345440271339990104838292283997693030980530735727606418351565991210036396083078392074669811633621955275040672232819456978026951109557979014732790603654322596610971375540071303380011374753788291808009582245381320411067480614452850264588408960725278113724274886941229470265357052880258372260783369134234216345144485659770305192876194600249987229556318642637451023520534310814001923715269142696890788147314940004698332461573089308423990728774665204401105366576581728903734041549077596879949077468299749802169699794494353591927344369080411344337305213546625712102360528036708995099202177215129057950806724254149236022971503245658449099677799731632559983483591935731308315503075042957413277225240770500695173747605612727978989520724818466899506631563118847328498017131593803923008994814608764956017255935530639615075103713204686957907474343604044794516141382122249038338568828539784760359134097541942237958935911538182917013125229698354717440905220283589653688050173687466130785694745615380325007444746117773665463907386431011443953360326523562851490127992058537806067246679494672596843071134191434880336135233553234229908610679994601854706782022784187180640027606279923466072099045341553669729320819333689091589752185965525493702490392685153432094092822810457436953414312135195499618572069792497019667628560133576735039692718638383040448267441051023996210232954466490851644742686226753348015331328397426047500237201085684941458573745070319138886347929574403924269850062681280774642904684824135545669993530910970587227622063640301611918920621764440956610858754435009161402429553605928626798579682041117143428722938740307433487727656983239253607694134056127425372409526730188043073380878552682789328804292345834801014864435566619547147490201066373015696460090106894726274203551819385641699673363808387683920526146925180002753080919385576990126601928131818315722394605080748885121257256906325340879605361551273251703799236481177196932681842138773954524650474380707057507190130423361590685710661743211845420321570160851421284584954347601998452661877350065062275868674398535924355642896335710202640841753162821934403656575636811878435145222604301549607434323741834846451165403035745118270998696407995109644201972284235135480156388765906345001857204824397468230562166411648017913371162702273640252987488160703729919212196606579161898847101963922688661103600307267013814462015846355821847593160797638290182480358133633394941460576163113509114950763149464510564918337245505962648620131527981480117777811428158896502319061325701696873884079070833374983031044016685530449352246697501444444669454253542937146332747695392722300767551573146168572400503826624379936229465262923890335477090101111450467929021283929014761589356812047260954460650011578551020690071198137962495972224770752770932892901263802237255690408659740256283951824064089925868578809455573723998112398431089261893098365561766595496030324110164210279296168853468817757138352447015402768800918279222101221000833210952191235825161561116310062078976750733994996392840016341173730110163218972602576690570103398728241103641529097560452612635196894230366480631523024971318696676165710223574654084035450444065472141942094815217170401568751336046683777751178168962017808766174656223866591999482204810511827194128004990965160186463015578411254460808445689550221815795914471056871495147287004037718682915680210618830241440908857531952058310572900604010021408745675028016705498966742468567507038134320083375520193823499913954315836310848724858814175124640671673771508408298833231522102878997336090777327517721360288386749839689106323454300402626154117878074936561099472367247150337866529959442775402989731701387182706569118976520152903199412102565146173056321392078665144122309812139691035616629515056893061131362129710231487065732842548612943130537638501485674470865776723326236166342316894580038254044435577616533467868605991568946416158842074096255776340110823895467903075253921529668008724492598687239949379541638514334750638948282130182675869127566500156984615636424674179765560329939446286239966339652758174281113218108773792716340531626899180219067202265748785760360835670250869484885206341298427893162409501700822909367051487013068205103778839295262449718041135744862440484504228169778806623365451814282332443031402113621686881968916304382487851844079357689427931566712467639585152958117898246627875082721021851109354368778014171623005520287419578172428472924288613313368110848213372199790288404887191889173603965487176398976393353113142425401254706584007010433846295090969276412847752964967039516777810023546173531977497411491534614759286077068644189994233974889169184789783510750032013025115406101907789469297470026905516367060341468261338761648879613578482842967944872083079082797043466081926461161381594267960070237501808017608997009282367536325829268445205505393811940647235501298006402593222580672960103946290946987801539527425123463962108091921213364407934837975676898348191249967680589445918118827329633756027791369026395148082017088460628293474960629625104130673959959756954146255157932893570230192251988869813211626658412894437361768794187751947986947321654455583389098083686896759736051547537866008981186414509535997113007240940250032527814088682532893319302747545424137358923463521228969206016200360383288051475305756473609198733902567589482092023653432007349656772559173663411635500025701554871912290586509935962844324156193158759232672049240145599288445281212041148770973520638909981157524063297072323431379563930782014654722801246353826049703330487417071092475925472212878802106016620580626870183035329430264160701892384038163558073517226225915823701131273973829266937355747877517587695640433641128068590937233408223529082556606019454939304080160278406321952184241393411719548305268204633829828829379492981402885426434792729477230245386292565101945789849761244541908668575055054012712157328102343078059643773905434689440600617745609029922600949648798623265567401206814381048534702500265190886715412578369067294679140487626413335830287901587886720126062554907802300192463877425186810037158370362770478026484844628938460820067030664515544136209440746019939238998105694256602476502013641638789111211929957631099207116964921394528870108229002596455953639867147687029857234187955026253136481325959993667591919955510097260887131250331715550021246437617753934025066078030559619220597372817136963279233221000369434859776875503819975698900454196793863523674255150666108338137345524983169407679091987077160406993497531775375707843830986530952331603504183683432842419040741371033295654436542715616648608959214795822987516822953715002010512829564402814949316257492350700130107792962427124465004192452671828928315111689022301219983906345890416721882445221455283646773486562517736627364112246880764170692387806408388445981859854713384372183925493504382910109190972991493191717087655146592109023493298172932903296796887536484191434544565281002886083841396462186209269230260693593189877012575072809833051767192429429744279774210429603783439982573514260120121843329934375908082786309252533380678087223093335264695227028954443260935465712401680198084818148301572266332151928587435920751030630268819525782545720997279204907379340319936280217899711978826997458224132194606228891274654232088785883704094567946612072748072651214693214658026733319612276245403754033395160332601212963246303337787700329748808595538473475730971947789127055909640550332556959780340618576534546115518611926722250111636768637911411672311147493071659304037249960557377322141318437900875776558886304057937822525550357498640466255056699555168741370968424733882602141880559758798892323559875515642163520542833329236490256630380217737364806576319841600951912343364725286728306074953752461485513316989962619470600236924190922329626522043535524023867636590472653307831316659501485982511899502383164401288446730922596109476380825407829125316627103627183571268981749460682171501099116618505161445396193247190749259089977121918276800054861225936840931383420307492304186563037066498116137635635832639368490577931769736286818763362052476501910300105690356200438288426949906002226411251280004086407889411737337922784882659160438081133148006743006298281372257908178091867679962269088349311725886698324765185897149680876393414799866614849861415924273545714769494928947341045993355388316821926144812070882445935783733400653126659493412377953655973751223303320485911391631327214181374783455590353402568700123014923411397044705195377111149811544455408716050522639511794605486781417468783164155553489067113724594349260282462382066501086929243098987990308726265617096953486420890414564618477545771681789251696913513684009546870617881243439068695645313111949402775342536406011804681849779602840154559203031000854801756183946940373156593485681549114345191695766328716668653045083890720774475695992473747098730459116901223077553805354003949382791290764541782294705045036248260107730486612333821296501534274591731932601197304217930508603499392235811405989871404125062390789797089167306555921017766452831086790265002393125335066858555522687542598210055167384896821453195964580660268673691852724462273060753653997869168646434159192896900350853920887353005392552554962112201740485127439772194314004467705361740097840555214391146274454221381830499020011895242100050205110556158620861123109040067641515882542142926627086397428796408713057481813912398462750024398253673209849487604451498801117090980707494948526617937225868553475048311360562719195928302797535098896786783866064178433860869694350276379308678161436312093280434434949521589592695100554613669739835772057376778358967337793725297090042865161198833885697053734240533744575467368218519093728554624380250019639074734315134698391124826412459747888812420514537483917636745894999942075930001523747374993376558013393556211314283555133174999051653893205900758670088824378942758038217175174873470170542915257336365729620936946622166305849393857053527278717450135427649393330919943013506908351010841444682676979662117680000282702137239181514373299247124911219819171209075186877784679230169208998721111699502136015434915382142719857268787507828756448254107041256499041963433040144136684301713802557204125406877709917959784755819907621297374638699279243306545040960587643620674096220481486989912745810939282768130012836337608350568138407164584983910040473338310683839714185920932024636356243793867595977500773330718749566338559919212803182765396498017648786030860910049248666764927843635007914667523163690691589598683391408749521975930632986192246460419870160440514840429768262846588163456188302626021034593446287446357289373873825312069356200695878024607594231905924700369429123647378047220363082848959734671160940509345884816054393039126329368102460620387173761368064780894425976176276951674441617724931596071856859631755906799488313153792587165519520848077793633730213181255110513042261865669266526681060084452737139157656023710896840152896474406986765215202119471076780960772653824986734563513727418182984265044786837041128586039199286856445731345015112315965704756331196888566660315391391075634115205587097684855464709331573194496406639062537552194749795481128419681159810429939899957833410564354116657335894313771915514544953870881914234714622599535011306550627024176468679193826931248531148530976351327530629702978831170731975788127766504927286461454327883142238170805543860550356905691191282098907457683378997165982780393755716055980751733860868336708818466800708556214925650490502652496865935913590962050235468171593177609379537896772058571518900213422118624532079152856971820865732472351262420847803566116756883004171267499434959977962155747956681776561038842107703961968601753254036295719889229139444982108397419651713530698162689637291336344986607739866701621695429924725245358714192773903516583143430574349855370555957987571966705974444919623204870421158821374400765798477089059857410690290833758004493961417847494247879751251999802444048484450184078172322823961554176559732738674731757761195889367135369166724928876006087393836267815229671705477216397968590432608960968885830697488873554701168516122897610380030706879320393673787868217575165082643525987207321980912262216013569512487810613711869315862151245822643449561238019920999193680123243035745248822227002401323408153982726827032262133171504294859269114422918356767247851301208525922102265857121838479789233047365564059430978555625585058231023965801466848491759369072698986411867908085378274158867325923092014873596066040602406417527761387982129218243662586492646015937879419624184238611468490442095331423137493794642924618734644041703009671625356414989271173021026159010476950590455452524279004066148340494575506689793683038453150363308032100222596127526629886903561612425828559272552153109486339508539918577429078150384902823329980291746916871794416260536551840509108693740839234667686967324975635313795270637347054273485299063743491641819148719798362398153903281922239163663944444678388902096158354217793847398814674914458430222902939081346427874711519684182286851856712052796204273991878650761722745062551884370561086674542288651238327454140096853863767235461451901653743551606412112712696884716227832290335531331898577346998599595982404937139468345147636306240605603787674579552970766756771435729751076262441474501989728333862181936482007264098199632422198387757639136649878770477361752576011952438752033876365657753123802781660416937844937458171140161053982780450121158361614301237648439919561618220262296397697070098254555137525517638241807858052660703068381716000874579557323850859189927290014198941896754904596651186194796199037298647116764211081558345410537977441523304068722857627095860948297078434167511487750784567430880963527316771031931333039773494380291387688819250353007208498362466846391901745452328266159846554350436136449101152379894038266670422058212752513094829632544317987653732937842616083632192570786793233423193798693948965568647440202004564386947212279606128094968933733441421846336886423518373796882687218110201713153918364539077244114693821488988041291196767535211948168177388139126315963755082148353441954617179910588130764115787832204911876692350625487030582494397917899637350052686445717569829765030715542808765377682539604488445238235687579534876817975216775833927614726227830644698336303678507940218954620026226610807876999511860715397491788544760870444944495509991029371535030944383002842525838191760895875433916108229475689093816564183992789936000663324115723732890577596665125665125851494783431801479655611669641562515840987697684035276866959792944489139004460166802381456948346724768375873953543036236685101222957960924398874315110302468616185111576891598608742385527689526527592159296711884979161241749493694908738978223119512325046713410816621900271519491256632170077340859291712370876470460462163987988027020479442919090042099203769543078896720383702147166385710069182207470268891035050158069712046732146675437478536015027582784947295970485366189855208052880525824427305412772011628188221887090889952961875517943209997400998980983632400711205593584332595630412449538609910608306038985604940014198184652934228648925691310729320430042830029274857093251246221349978155662162634679133379511431888186951913956500474723803004880785980103470149076093145687481186957733308762202899107742243052889810812479356694175847142722404942525754201314487754373479763901112758314684875515002162485032891610234647914550144670317198102028908662427087499131420952481733823554823690800454852437518313419708453300788826911874620358523566772254401961238084055297144753305079242630930352186972281068005658348436264346014709031187969699152622428935540699231709119939905299897607930072362218542236925975839658784020803081151174422803093408793273532060592821220863659497283332535002112456858696291230962726269555596194630291661528933198522285526756685526795635529336748225464762965074192509436741914320718039380667568593710307702247791514155917351181990988267141657344572009091219654718120300705288178473485883890595701334314631901595643712581908145080321696018364747673403851924270487942512123965414680446421683321425458069653554345945914609104152398263235276507295779584199776902202964615826929350857628168165677639482512619402631467119396129262231404931240133491036666565412474550900657454179820833987772548816105595156813980921369991498039891605710916948721500375333443684200017882006285871824481284868255290904677888683824911802153392453376806329666331352194655798660559171413088803672379198980599674878427596042805726755858727838574103249249583570237703717320826552559739982636102600297638042395134056147657382788442202715489466589986151981714035319246882773373000726520734015939861995955914637307062325676227113822569026295688555891270361016484042716910486806586041915506143464931379056522286015523416271957457733804754985389723628773649795006657724725385402313285038315388706182836836674926062464718054804550151270716030380671379257475496572259279202230480432010054661040325980132173093816453817019130997187883171282894333182919143242905156268305396503352604946003244082223183147564204756509565919152137650584172186125651867773626250698950797691672810399470129317931242824854170578946381386878025584272140953730827856462119212962024216179744122184743813151968799984101931506640349824390640928163032504511849337455569491289862944165158047131066813163764913398794333724665730660311712186118319619038590021559934082114192265871864088989480307429251098376333964150990797726330548531104181274420551318140966539541393060127853489102612678714360489548499814541878994023382319887812038683275807053786085856528109908401001203351331838815130108048959025307914985628118652839149816772147996552462462828477925606474253706211118365619608086820900545663113665138951409543053218654045351878124708869057177844809205252502327181687456005373141610387744260057834842801699784669343647230028800869621747045193917106610165478707344802141840229618728885501745195144703028234268632347906582674087175848560456408302521991948507799134555123817266109210941147486841414647801756716547451788459812253456064615570590973731415614240336376505741997042998168827243804596481336972981425763016932032613584258104439251182876455900437271348021560780664972839318918579980789744898082587362458090521166626004328563162187108477801829704808918045766690015107358857799685585854484006169599619439430486068022371683139838310071769785261613923966308611429064278259041520424881292474577970072780337804539972852091681282317561189190908864650235106474377917375716602784696297977643303171005346471795980022104923035421818211512627984749134844791946200003658660448615822235592414473293344667048147812699603439080164668559337012928598928622456592787165442762357118061680776973574291692648542823953161945185218864316613085679219981219013221174232717479217227961870708297481597918732260092358014313693932157226816316701602023416553688653698046625361391379024827778637324259767359105198329933462573770459667717170429670657368132197166853891292089760201973452113091007210238172650029774364300006921425829080734897530633878627499070924571748941185779228975766798657955938401539065905304980893930697002934952583851913099997096622194175210583098587003237416754977386458026332040936919354146425864127914996049677071671939054238821764597043468167955288948199926536044661776587473531549343236931383467677333041921420665244860929035626581589044526343564352498140766520299994490561611433039555943091097054771318797740857841575630849596894222389589880240232363642832497229242212862150223502930152665871080834278190164401982317065682834606965959427610486058998912480177344874935539428932735103739089794455425866141131001365612430089676110460210245572800575107550127366159182048374262181363074521792557901255781723292672069622964648700841128875654395629060398180388200877852096461781144218660967632269088156595211753401949888294967307779954580921683744639437837747061087834932707513312767873683067229727130787867006590329727616925488323776597722914559762101786845777527500937200722887195665798216681205250786303676944029031235765405898664062285243192484794866161764984876092917972892871167237112162373795558122182785970001387823404611450275403060790297932162242191583646045426744261421657575151400375997856756998890723512457359698181093488774396125265991528476733703156760279909838280576546332585344566394407985992360431691059047659385121053922712087767713438664741766763070439819112477629226534287970187514213887789946528998762425816010400241217377333081506698676488690761487519387830468046446036965838006100253979793041823770662148714940873592251301213419211950626842021031780110783322039656123311245986945376042447077298421711885551416093843239525268737665058084830290509882616493922306830467489813517014491981451393252343192279252961013234900733257524262987641124341819938184049458293482167050401473560710303284564384992260632729664564824101883629945509079552514000938248632331331833529506863206719552446009554899378639910892100951554246641432564152010747718263796438876884594421302155464982262350828825414915726695493473214329244473497649553605409006194806772448873034032165870279149869098290156754284440099549126363592933724064970114748584211768524339798709056296484969823596184657090561016905409845503348803848874693614016268118697621660550696916069073886175803263298877565532122608443916885000590040879505361856246934986403823898943120485803517216471561601168723078341622788279342950344979733328297701215941000460080905451095918101698569859404558731448313753256535852048941572919869522114908727858395136075129419841173197514507375333252487494027292295797182794431559508810089512647743393076415856130956152704012797288842063419119055030905995622278519568196119976890772153462845927416023372116910208874898438429258086119618267356209861368013614083777135533334106309685970429997699556694156270119076496298595105213894693307418163115694696533004466702709251488589869697897006292215841386769878178685611480152844410777683787325508191218812180850151755245860999866801099010599154581198379702168496518352995709079649073793076124106870830851345528891353416704849830757991214237878619223203891961989412088954469871471070393956370973319258576830733410239669251966931424712250261313980046283904838575197083924882470047579047458935375329429863869047020793391876013300808802367281975149244992192361328556824137958601383603044880740040191992039739792846979522693687604945207392955502145594961493830739340371774438020937218795996691422484197542729740995633007701929755952209688880957147144103818534347151437187815448632769430801005897011131349401535048983387471529753248563179826621862566592018860645676960646810168916217430056085927595234801037879208685054814494301154131817254136336584363753464290508805905713329505836039414626418822125916520556290904343064171156128051971669730938478453140597610466092913513624806439351674053179452877548436012936456665813451669926284223085923141123746935694983346626609781707941065031165177139109414862435529886940354655567700977748026965574009134653229416962177628713900338212561802808707897357726962475583816369333199453859986301265130292958377129599609849962069763715071047387679905720650395164162576117905340228495168497131682952874966102310045204827499588355520927571131790457080917208855542194110083280032830180872541532880226943822120440445526454909423485065397807925926609704646513191247651459522879530565362984229548787513243985356695780670681170066324422128916831179042714200216872213662270569709118732497407820607048149100444129331017623590228284626371497333901684428551890469447476481802244955333751966106265690065883752123636444400761698884447106251658683170737410792713548281427131027429151145441585750824810008900064175759913059895312401853044236624659770097097374442894286783723309566139134944708258998796847253432734497351524918683995652962176526139327876428204221035568271296294744243363848674144798653407217879439330621493483932179522129980950094519298955423499488504897006436643658338654890021580255718452280891940953158997391496889733459365947831607339839315283647121398186467739804333927981756774698237097927408266176633961406025614598808081901230882881285592690643705175739366227535027721521972607328106181221684822279773927544032384450963906247973937977847633830557426853987541865886222533023746647904964043276352953315851350526667612866873992396060940439848739250140194428946308074643529803571383341815580207688263607335647333513059950226617097264342543114341773033790296245144942400508400515169720175315136296955409189930954906282811756308059451248934323348549728020288615460395053002240466600194302407655598929418506124792309045546644677476864750925015641497963243878941329156029884983292971806187286658427675338865667392176106405782271092278152168736341093023056289456148381583120935178186198292330912156764910653144359984453712756861750451423220450918521228415886967508288635830186181462593339265669366847406296282905133541945654046525689408858919154897936484781864564737094148592266232059591161566088583975418179428409304149013144211472118943424658854459172882327184916794538354392457375217538530957839109471905816400484252987058902611127671499647552348339517475363658273704399928062245410081280183870862267336347717620254657394585137773888456830152897645691689041999945135796725766422885856256632326757033220060348827772712602724834732000994004758941042856946705583420287356961397786311496218129000601407112698027341474793137009928920037195739819747981338548895892455612103967669976074180422756503461854733878766385519414763833759257072103001540187860612148300699737629173791157118949681242316625420362324700111257721670792242254718661151445934195343947562172771663923445125967490418001670838388584188948669901516200707984583920620895983422429663996690736780382822790147774312221154069998149014611781561056853981599030020715531745488195842286401986488943923311526301721069527796545552369497460176920734089416638523861057597032312367344023286851930013886880243138138718087615375269003727867699543034564689338978585899711110158739602742491758421077891640976088556505096809980649102220887647027227380853001583656851740379378503985546234586274889144028882527393606370898100299442065859313285035272637244107754967927077285429347973369455624073721305203316819234508658078415721188276371333730715561096647931338818429049697292276051083819473782351572042749851245802509067671937736679130856111177557939023491581228995301767388075106594009209751203012094189512632291768992213198279482680725211002560695116675826035268293795303933876347846631945736946047517486321473168063596711710033253463451885604078249173602010017107779614494070863197955195103516675156422827381796645703173311434047791692477089494498616277659198521250117594884759236448483584662850297093494779572545322484969384678727709956649211273991927492166050748648247105984224170786727889342178828260691294593416726234883685626940504929971453166052507196601403817255029839879844541015368992746431940260004675768470523187817291596993732855155408500123795778425632065575666476736662915425074146002263612637303057696519692974129280343911550486790061961886567956410715334244239456478588822931761519782562253026656398573543140370057509851796227381268588319806150154529093301735302282223967979988207035641399348104029481272382450630864217537807196730982656831171849860036370141136309412426690300364054727583469209653337663985400316634524533303090330183888150291474325087117038254064472214513003971370311854524511728744450755263417472167882603346833133347737450591794867678003702988944114831919858282842284418276547155008968299202715918380737137989274995353195469392067618864796302972605339502624742853792096775677278181809935876443310800491224631746432751977501152686406394856048480432278686161249708389788040205066170844170345095881347508901499771226315604886125752340398128020543109985897435582678771726972806266886998790019059389723252097027931556261863204322868598674856051598999387552401198208319620800007825058278421130552526675494873913792336712232882290771397690811391332964764526525734495595434603108779420043226999355901337658448299935450646010198973223158717268802881596408257378728919034747104197438573373615055951442087741559835857810913258166787505957149693157036124347733012040331650307570910541308596690317314833913763917037261620596926955177044836038530795582019772936357718560519770123972433988834046906380596733414536902211003202279906041836503336173819783904868882886280419690520074256059403930410618292454128563121997729170770479690801363177939943818123195550719781590335229255116054985504721723660359840528469011979540274712641788172168183244315735016660046386803778346285978908048693592475966185784142353833144135679582830840310326461736866882376278026250268891226053546025246345790950060431721515315182346113033598017428320639641399931339730039734276314084423379262613929449461195647887455279728022367515728287835015949695813143775477576903244687553079656271462290752897361648619804781949931520834175175036245874712380633316469416516056603886061851943360471203814288178822030732993825272209684246337423740199914128772518131772640982747978124986901099242881909014429285094889195699091362554006717974587782103933489864469509365470118658563000689890402184922218416471263378014303988956915644049892160600654466885140164688166171616991376130282393876752038852430958688405078793592717249748877740324739842074898153787186314297931099244756483725300295036543424993758880217533855343483984178689951545300748578191330246370039692046814269310692309879277115521185435085862687520142385415027889217890424786665188998187440720747884080418924449517083688055697103479065026893088169907617806765970491887935139601226701478120001035877872322988045284989531037710367827448666832219672973515662437316516427209052111328647091333733983324714685932726230337675530992276602160731368503412784914630322198359231555695567400956684129463472864796939541635769621285736301451463348050213293537887903887880574272811259471351486210774543332942252017323115731370888695630346228037630049890324740062873649096088496604971859178117233852487507755770511667225999313570942723215375641460905021084594411102951858380794690736892269931896172615708620515240153730123656467198659211266499959619809592781581531796837598014102054673584787489909679579504644490983837705235312479503917764246288909677500902453191188890594943534254215768982390270820236432546039811896219221296788632566037339349992795282900677349885274933602602675628749651646180058489479755650642994232154357013187832296870589738883124522542045608894952859092505169199985959176893426838153245164269244054406250715819657601905284812944234600100533172943102300939750604070806465164923284370364404477977651860086140815081486823224589901249073912748626500818615639582020631130448289302910075305097537128295222681127863419548531228407395777228147335113535749184025188522232786697842000734386108041514665147612510108447033115342960535354473461931388544385752539694419100563889620432534066025313845219130881976855928876715463557622989745127327200252096649834878393173618572309565037534278950857122164353827682896153569673525932582055268879740599284654960330934298273825349559776305722156383091868585620321777990003442654999809474736076306773935547186170161444554719020450813482401407369354301753343653603790399363884145199302561774073558533049768063661536210885512437019283340322039584477505491282584978071800092752023305630177918772427997509224190458101865001867528126471597949440171740084694787423585045663809309707776285906321477245436049250051349203899229116019200739809287989027869964648761741743122944278910292445889596611400184237854452511275777615359605692597821255162863479499930164108136072149894964397253145731636580165273927258970666283675656094301344171142068270043793272761097958810534837699918345153282949989190020548129595780015592162454607957241451368713159269103199876188201272495463248675622952833179234139395345280889245086626141107430868258058981890225752664630932978433804277796854480662264923981531692640795543050180970537056562359977983037533148299342782550417637754494437166818158859636575003000973708271336998437873849265687565890824611290521165540800816955729525291702431432599424315752907299228269967034670504536116264471714040794414829984943896456647714784583711834264866577692080511040049384710087590227951253938025954633213976500500706299415876713265032178312008808497708178580552607217283641038799759871609659426096837747592945804116441523462049626112147961562268415471539817365764355842046556187537719362526435351660162562571303542487633682563396663869940413218475243767603702376079506227693175120447369682230769858051393614291099925015048873557299004045392976041630833004181451371564819171962284350575352720721658952840782213293438643159153259646297801394642019661731915848204993668209980793327762225513513274375945371557557714340526139420531505652938907091145143026322660088185874510349667026477640891892301856402652812233366754302240203247822951379724862273516457627567449086376186600271416372398387652845690109672308747309344305338377483323594790678097168192750449911589037957333157804502555405530894706226343134191918171227512612522843222393347162744171349693737593135897713993936986883268292735086596346252694963315398539411417911509685368996815084911045081706548762415466679936145270990785780679291168309471893113117891340420257974550988702476538494397457346013357673698808601889761987608388557344254620965141388049766242961456307559780484079535593088627760274998546141937123723447740000412780191529472549466680713380723169783949592373224061621001002993253562824379215313592901557599734373203975240820595369388106240455818851114450174516264575612901157153725630100710272236018551751291329422084188074703295844018824158867340009371655532040851776808965218358382285444615450612716752317610652321184040128333214327305161099053994244395513186345853904611480777394766843282602204426414717281635984874978252813553655172162929431356976920176438103308451816515568831647381135599194093798112166284069207729401748398618426586921568471562843803679300514968931807374262861085713023529368235020932967793955546219182187846271577418165420526062379622557974483645502604483291570854316299158296946620288582235211439681582085051793010486342255979414808744358455975630674806251013107715734396069158189484632609239831606195168665894080453858822648691273464416581686255362580854766865479198938686763774892271658930553506576633604544044076197049686701897129305196053500772592461025228423494278841923238263006769671904139056528194536072616265350314661771746177819308994492811300118277393819232131237113027371470328817531545242398722655417690840662355492579102895487906471719785039352048847803876801880005443661100656538206555081442500727697953724411510033185788622703536633629022299217874871224438853765007553273587585443005703248363578065543703177560751716205577785166727949384760151642637845836236468344200593080561190401117359195524143407779881611079693893856344752093001121263519541742181200045372790420118807655196064116991230587895010247689116384228055863637772013313456285887670433475294780270085247055267763516255288844274751876334588210741591305088303007051201711164705232647851398882530150589100024791539217491206366435921918425206434207956105225412908109435797719210979539821097917553060379523391821316903579604947539805748543725283662802409325605924614256966330607568815918038456167980927488424161687524416142120052126298078005259455383363763450824821442498852362526929989705537333509277031771654252545886466838624028103178296269412169570214168363665194306618066686055777952295128542876273107961104039456565561642330891371249762361371126009929413776103075968986081632331163214535539789831943770677600649104607485147885678968980040680062425599379788755280223814465882240734466732277639914371972013880637204965095198802324838921805101586300673722749840709808129651449022512724436311748843145921631795646061660423866565962825480953354919413317795423213927109634318664569398452856194181543422625436666976502996380755426492877916051908681931182840718584852486379646901127885228847451074164590492729726747671676682535700801451005197586635764913058447719727641593179069130169595688901014697273532536925009621358057077959113943346766898241252353108941586220047442811668434827872511484420554131097636530245667876193796437794559796397872755788866743944680879129617687894119249916745226812674683262102363958995432827323104655315849929870987788138026572910112731895510814652883861533579503093391377876131142894811285640192434379983536323173458365586555465083179770891565231639902139446267398515453769756258713901472235224477311751274056457609065276454953043214941615206852383274544390421892225329244675145743903082679484604582884637210860487089023298694133757510988125527130686119334534387684820229149563081530787397661037511538763590284493748322737329190098461472853746291828122439430628461429546408860190886075243131310605341815728631432620044196366124931382520083209135489595717401920059788918534707134346465180474008579145071575221079156721923522809797102386233994866528790551962452875796808499681262394033392277846433850363152104339714377272369821496503154346412401780547882091494744108016730068823805089098033401377262892823812685200459177796136340703978898227918752830837252540634008913277420496349813358503680411482817258185407547532854680119455707822992503856558891999430241882299544031398923639035354686503859798844563666940606179172704069837268834783169088554059651483869623197641182056005417680101205718885000778702187579066597309325004484207621130736602283643917309824366911488190995353057839270682711239753834762267286888283172649032170365552646588297038568310360501234698420184124517236534378526670308940044211144441916043888607661184015152644855948182939478003745730719909429322510031037321730969293411583118885820334738810080364570554896974457486156383890040018475478552010186395355798686356182147058490625434057911953948644912093811056178059003422813216574891806620324246851196077838625563652710758289766642173559869894112401842009560649773907674362880219921422604562995147654687520482640954768278554410618816862339163658643025257574099655720172493822123890057319378641697567042985081974674771352527665386818608320325442926377935581665201852462488549620913456875772879573140587343315344587240291995845409258428692606316002889611820000755077399031501468039466689920377231402724302032897198416148269989299778270524300842750744019386748051214651013893629096086002879188248498317973746363768625382969735777714492111691397847515328988898564336994707560642435269657861832006001727699732056218424342494831270785657220877695780227069026935675198885270615305970050859373611602803791355971953070222859152336064593478258552811499496127637806064411891545692015477752208758458720219916802934599366344953264039009372694463820566072281855658205972960340751895020543828254603443631709346181594973649562907627752833788724022583168007101157389552888520166764655829326762518118710028263970141451973006004463991760452378422397585663860781845885560286451231105272987285560780585198059587118526468698277937577518188167699583566658501991877678038761483062371606453647386505272301797489725477727517573704884937593484130921025682451462269651347170246499461703002359002117895369927420671320216960918155256135593500439884607373808871298816263519444482525238835115262276244993056927230339993349499335914832967041743864630461306193355269443357594167498942565326294217559483274858886891251097736057933093614941598871687896095141607264571364166821369933097461999835561496230620949483748145652058884625585940594567631118529368716320639519856413272845449831521187207028417469550264319936010933325922335573665556905857723706820465873781456206749739537779718516788357632028450492010316159097439529987076681877107838322269963810248056870431591800271471061370268499207145015779635803194275147970604358804389588039492409571599875345425898500422864454205214673093253431241709774195997618731189756267456637449218382602703617515526131417622441676714334249878966903055528720346087971492144598949271819975878070302436011025103431081903358713097560424161588578304142646201646897681866216443008149155146110568764259610189140834710194266959796525954202667144230583347996644377007428733989686883186285924358180601079133088413406739606244050015563297105819409590310059591481217371672456085266102821923791143279160668843182159474480894892084072175653258103722917995169487517445537607075111575111744091363101430742054271593052253125114734819313512079826952621574184913586820542825461636645870718434956895492055379999500471546547700824625065199353182500416846362892615176586669264227158871972293237811939534408241103047787194294100592836015849212039229704992910182320331914693022396863095386247166991982496698485509808052954033983087289760496674739954808764998488891025139653836223159330267259577474341779729540208068208124730862608745018982130420937045986950319980651247817145618328201191102049243710787911865390351488626901376470993732658489471782338879194198911032611077525443017557519840405262404630244030919108200704684800487518023605890782870653630358828674813576223406200029083559442820727166242180369470720913028918594456260694269513217854654602645571136161198478297805355332261964657423422280259212480237499844940952709029953981472403498714258927155267562843048153927077642176874569585071699554285497737610078624873229045159726217119309533119910134086915584443081567580670855841808330639836358703441655956109477752973863311267154149885927617739712069186253598088467943307874065016361406587871636754813200585384919922484689895609018903001140381083505192223653378898314674839128483965115537082269624020738159676233751606779180296493328497829060873866254774936530203297521034839170432132353517812309795756524960433525854136861493624904501858669331759040306104810831755235433189908610293186970924063455915914688443393415616841585479708752875191923089930781500644678738973938975390156156671553565745292888178901929836881237043378405199495085083884915028662354832064567375820130070915979627594439607184215122528332499169861889549205634636515947859867099224381685859159858123566599008269606318678175669480142187503500817981046714647770024141988735526801856838244642531103976912075333297990452319507366345142171312893030635972043092561392831498036733846971216490486460818981956301912722242750121661948526961227716493536723830288187970250850581948146100373602106654572884796096589143806535814100512951480127485313124072013205671347659344939714097847212223597304070676575052911181630757818582849939610864956620674656631449856269133925572970756404960409574042711755007585221060618135752580662260931620493008192667338848735494740446810876397263680736082035308257266340373853706208196963109225170329091127726294984110212388412234307868219776621093773841277599130788065487772166727738177668404928275083643460191231231644182308463642775624928901251478156814016569965865169558828451878872374195102819257979603301518934463766311002832040068827112821336427163961605399153554958224916929008383535526644629116140457260506656284090036255368260056684375680175680357022568848153964984130571704278161086933655787097766756953690547134297559040836978860749279926388119287208691958009088775527756819915469287148058673137760158844815732725458459146684810927767468968965295814497399999409273673530673584219372776537563266349462917314670936089869336908590504798919089450715158981025862555150773718818610768478739564546413693704819087083475830191768313992232308166153626167340206595013355582258803373791290271289252170366624872144197199697436368372226640439274896250075873158065120306546556007643411711551375904354196130197485191937750155423382689651180967297641702731010741848117941840559104456292759477059564801237370845644934059042155352515028023352216581340345096758240607371205337608331946443285957949711593882618964212569909910059948613676964576858455256196337442215507868333976125966625631347612554054169242733252567458625925754758711680305049365529421383059606418361444660462412919864155248317402629775273751606424225726900189092966793094863074512863253651578479835671036385017751470512151831030327007868062937393895262866061892561509625473985471016692354326658187090781453808690844634626127678264251282786705706943446002815086499732044192923722714819969948666411681435287138532673877792770008776157450768113774077756120434819299635234388055236181994854410148471212690998352718276795365830499519258136347415843852762953896000719568886551285287972374339297049880696221818865300679657081852775916533713858402104565274115198911435194455748048182420623306345126514916040709606141582389080192177097572822613944768950442505614829484259403977949023133211139785913542811149787186500630702701643074265482672144271785947803255577102204096685260143410064705372084435651451603739634338222224427015806122748865554154552377936787644120573600545563078342765453961072539033459949329484035526111415314942024798508794603508192607373627226639497329545039690125057898286733439603775630035561407818653219189776920752878348199470907142614219043759263017558529326201324395658962675855927149008969155267123605242832568833149012860359755640097972897796419472285948364029451289661143368715193742012788057812862134303222587111007497745331708683528298696056305463637875950913312341068619789746515178367759608391252822032103666981149589360098878910908399804452996178088957642864603328011018782843079142916440868713716924244704181111294592525517059223528623038438862227834727543457694595481924516472615011305018653505375630890142425969693941416030122637772669582953633729783532315992049652395521373729738356086140936823694295512135326024457910660979862377941870085381362197071707211972604979835691720905951224131175007462374759733123741742904237622193839089560241967945319657480840858026423201179865891172060151654868385757698634181904997254612054491577207730767824202135137590635596283790670730894124266221507476994060597345448783542100417265616296363531401223359253062830104596937985390739586965077201689990640301145446976461356916173331539294486736556538452762388652690608931181359350816324663179745377535584040545067629916327710069833534161760668722686206141995966051205638447701676507084367105377725363449975052521851435849894923958808834335715930045829787482329435633143047500639860448673839609525266684116062058012405685933272279781798977781888572596790112387177036482011595505563758321544003936319337948766252154134915231501073755657370570034734846436862144079769133588952566672053246855452611179532459871769835725135523223305327415839560854391884844122729921516110050347903361050001869867392362069632098438517625264138816356541729805685628753444977649885819121409493694794734291676189976359185573265566102110177825846513817026122343946403476940137288598823965175902252468524298466997102318233609246398390616901156556407883013636912162824072037731587948225380312123132287895481849409519852761428355076030116861639227474923924704687676585770801084501874224000814111985675522979834156168412812248344811615617097646801285722931507383216351567775275452415071506967529068529360596481090199410370220041366129722729233379034253186086609181002872298231678023216345722204135636014310800837909596190310457056753830983301703063247550032658374344723537793667084553445903850267362037969143135366277751629057448769697528308056141856409893277086930467543753981411904862030715227091615729512640835201949609838700384583026813835464441846718593816853273169444940446819728502947831030848583275839156964515731485316445589530814113041593735783702096155266127256519677829726449230499296032393593846694890811973090312506496493428512008000474042120948786349212126057600018177415593685917520916572846616647354594019596857577697697182217681844235523911607881096372049972364438802218972273535167415706552034517863853617830015929166628786080285498689565925994590346464192801805580472100128482401855644224219930680571907727748037339085937983240061734312085239169895104758699280927616014795862509756291058328352396161692866795070565374830328003127851100858822635570723705974794613352148169810442222654362267003668266694677730428114384396138231071346544881651912154493446505126825865103645477376920959617761101165926712021976306161124101808492198166004931396209953119728158664907014075819379250261900620136922018149968335478775260888479569925644603543118678209994864825374427522200471448965658442048178987947560929405511716158085032130422436142863289804050464701850944727786018404596988365512957591307472438681469286778641980702368821645784697369813413244736471441451962067607595815650803192906993975148867519811959949172370184863881117242952927980352695553943191718736876126642803609537341573082257220792373261403801155044110498759217240600354301638568521323123818963800189830555589429812462367724880043832709425628445562015995309465080217628673761294412994426401526244542568001972065345982581674936182142007721288802719780676524995399264715402878595806305766178746522397655553752862255043537358553761947923500729580684127590097973910366201885578894930920330361560084871613323776296995804350162367283999124759390734817114515061242928369225210868940548899691837069776148375630417191758473081141241436940819372843356471934377601286942089776575732232779576618835623287011522068507921478627094936933255445605163417821016912791383956716042173819535025974784029988911577062550083189881732813756534884610863000796030505079558165538391503313140872085388020919995320152312003989476414229010870356793101246601068031316213878397440855808850618876185326185329576017859982812587692158136349378597965699820755794375181542265003290138345292453200698834617899194672800440143862937511741604383583413646408831154406689573157998779784956007852727786855020484307154870771111814194766073016493385247520920856622405004614963630329010018116202695308595930952867518840785284868350636209178261368452541143939975675253207841333846431505652997951387933760143684289337048894332803307127495951663094325163797862678585017349686314791341723336401751174603437148762013216939462373751178945540634479882098393154145964428387422320900352123114550943794300141770959126147428131696709282238408102586640548447492635181467461076881590242414460487021179786591203596352914485495409745506141320077068509566280590222992780118842358674591058500218540840873168572309383253120284959722284172595137330490279253553195294980692929330902727445411406819359030832620842243386355724404764468288714362206739460419525163105956743051071534163477731043247700344206315576829730233505037656226089573715166844072720802051282513856827222604747378199485012699756602402354127002035556386770747728916074816499392196079160274087386678658563674797385820526690154266618049193216214857611209167729232497026303468371303817739380605551412690165422913586693673214099383539397265062035018823923260768112349641735411712717366142445694941136974193987365275734410203143401642009689536474333023355132828847917470370779474253797497495340404850117540980356947916522107200585571605362294241170374791511529589946067646742900325852841361509850032041878938855531491288144941676521951734028734036776359743531683727631775397242597612440913368941236167969509091365571894015713501483181084992547267881563331506855914740068517095423880326603602012446758766335651751790048877258767707255261812688761112683844233957225173029684274932886862697323666703600097581824107664953629677087547083031902977166029836115852652212020190113199421974740720410658855403905179624551506449656699707520857962092726401420935156117612700327773309832749883345615599509256662027644158918958113736248005899637960716699523644307533243555412919195964263872071342210942178716038881714194446044517011233945499561781520429862722277604531781037483577240512770194118887780796842909117830619644479295856101341198351392815544299217775278047834596010971492388072588015386602519393029958590643869738416229575230822220386628036017124511408562451530743283289670077896932778878732185722312843173858915173495387731523964236048272295100415382681476247191884379135953990157161589119322112299434633220112159077953986368267066561288198658419589710851660218857047521645235618259414041838450232410370761733273145263408030860732919922153508787946140045487676087104935987283747029954267630133128035801801949898885064828652127504354783214368584098125434570686438954778717850440776952413898162900134022359590111443927726057825636655768273237360477359486212448968622781131269890005990307577452129519568363646804032737046010642278561398070280467467793082845636602033516137368893914865565364011572569383815148102753020725314363347158385322432000719719525188879910283184020135030140113395610732084963744800944542410531292965362293610966059055361312545308464541730560223355203755025777935236391021972853695816880103352046716580636843972230309231646969892983070953234959334385324286043964808349907182759651764821856676331336509200420296638448957971373092859038340856949750020280393763144201533217802987369853605596151186669171535156911878745314257911383878860527954532462044765430589060497750500369561142633729520565192652561590792743206956957166211876630414954322690031353718931846528705751538486031506987078213805429463208155625616253738053426740028991668517256170926673907555303676770474569612991472126043821935405927076435872927964872569668108678300408915160450923987582187225837447539057534054549790780303153810593714757097786751789421053563978431364113693425256205846782844624863246488521965742283465131082012453666183023295344701335813007360647329938143387887250413346205363447844567240457007337132874716965952596412894943391076353906018872954214570293400070241707113394387857892437085194589312267003380888950107233516996116747512337824240731422971002277879360079969482210402326247084374120000374636385037456844993775171323523230255149316110596591885816610208607132511978279913342232840323854786069586206152451565847206057182961009740432996436020036044313924508388409076309913665726235661914705155973629721000081419941422943821134586850892920029314717209000410197264143878771669378183925018960530435400581208437944635590385876111183266336168056096047093918140548855848548916971196222645727091722610023735719228413520579603989656989038255565819217540270340038995976118278691542155422337166710230727210094712419862743406605554731665593056448863834513433024132154766893098722334900520139875834349965684661530831284224720833690668269629969702150575873368067809222943177893184320383110708273187009681726413562226395076981574505302426440810115825297359764858056199688895598771247616959850642310718046311094534953677489994774446426361184140351083091867599446814989633894839690352555834650436876360599381593123774701032366617986914972735669023916827692623818142335673008331808001315141262789441027598138840905409809568539482686386852619859146618950302007989189814544867568437949182253063730918956878767764160932559063205353652197284777518257274633087909534777581304593460241248012726301202333299512717007683105926901179120176956021430503582669673234838349028669774258177323809137716323724487914516216370931491191816827120813732836949743808538605132798648772714762772195884010402577792959072705659697220321229011286861615038088171278041941938710221197949234535208698371077748011544839029228115637989568357138408968150109790743662416919836809031013315612969051410662537866982364075350477144793082755700073711889308841150409792101460885651408822392935662963252715649481762612961594622537822568425570214495329751883317589768771668001357449266992679562096109936132798355801373424175449797333334126849177979496687731766417245045167903059252282885575415199623616433324266123301917860246277440583163364423114362206908358014805608414377710126220225604342581165493750818079305165531906231640645714574620288696629564366929950939536191619143432524213444174976153405179577921138436159082177673232485771511418334652433108202192967446145834221437859735992986293651408817083377421059638139683832805395354429155344267991975897543105575315388108020526926410466227047789519185948968547655027647298907374364006126836692307372542484486111653261098758932072047731204255178508992597670596816797414344385449307363010733175037666927175609615921903160764003560727879708394625427461788780389069035913913434661395290911539385722081162890098056840670431866810938414302332039448194362010279007898259449190194950737188742824571260779921831616903784849542321892951918052209723986319287860573750474226211509311959328346465023493252207639694376609553246739070638117180431903736377729163951447530886200152413734577284551157305250965439860219207969628291048114356055612208386235644989364727692239449858913022060621573298540893952672846951696086143517117601185679137034558717722737448481404830763057864572039826602659936962445026209281829005254812203288048973590148651395556760646099660489120510945290912583030487637022802057462556482246071862365393597831170660724702951468120502241625725513499655968546462155727938819181360217919024405343711194033550709886707557799621010938817218385485041816639050166828430106301190650917350480733890359582817040962180248053704757415352311903279734231364947578078824652827670561479154478411016460433229220576233991850273325962804527979837348892334310187228555639901621827208182704514675516694905925266653726711194644022962789741520522868747907103433126538111307829434926889731892297208024827452081036444696204340460055556091868266594065056914920008499684492494905184209986747517443717480114599470700929693536951156030964233536468530431391306223272592429347576003076380371605072586545221840461650053049906847398079613272936461163464252199172148525891289033611067290186300168491611629608785424916161192553245105962233245208868594967122480127669839381673414873634530151968251793021644969346915386821898292947144069910866394969798700703863915718844694091188068594401442717553603006535223217440510017783959882016936210889411932855322603441558908178325423424610647263461400986080527893935917336758036314094915890721198171873840899402834813108348095306734030217922478158101273976604208595926507698483855226697666928770802952280879619938569808556876661881973110533113076523608271104032016797717233214807944743381601361740069097566606769158559896211775769981941492761082683273221826532197343239552538761388948620878430266397983471397455418409060306368369194652864044035061708618518524588720416465058126378667452772254753429119088945667352191598002081123830492244628942711784116934091150659532518813053232857125988840637690518155336265622521699952058730771386791428391290703615497131763785333834081139152104252770787588772357383167343363867069966424226920053248015390016508276216851812931322362959643357384319869221567783543046757212497603410919395687237642235697613073328397654545514679689083602380538731993681866289052436745171044701702420149095217562719389261997218259769582428712912315598915451713572378885922803654332867682980082229399985620439797969344877496569488603168881059659250016218983013615806859416235759349637981030793276451746904458412665664392405643599142847935951985770613281248404752739378319796485005507016392720698709141292430823235444084468984342884507270129354844460066408885829814378327959367720144162515538900423278637063602541974211212112096663825815292610381980053721768649913632853893510855722042174627188797783920462399264747104943948223700307639764060724671845646140298769764999208496114568675084296241098680499782259678319167966559564153478847542237011656928958936410418725211596320296100745569201512798418606012680630099836764498480904206256858847730449815346897819125703740895633841781087712282459194494165013089208517498550852010174147083207362836945336296156767162580789832256695385083050715993933263519032790333413383429942936812013247622382009690880352646975081544674477225712484245185636372709352571920748534041378162881736104435384144377081591323696910984623574141396813256633570703143180119095826351785107823358515503654519399371797635346158029154363893942839378022715961575558154708641218610507084843178180834972158172691949238804767938418142600867718326123042500726203840020505436685682686301282094595002731192529167325207362453165560914820458003863872146809072031276647126361141607827101585688686396192386492683876874526968538390058514120059080758183076349666817980543439455379472587231382801570736195172129288775529092467979464891980280999722839224376567791046502029470711322750043246919035903603618319466158084303056007897969492980388295392662987535631086457276238631299031982084437149348304464127420384190222401253104942213305039278113618977435500102970300775684001845104594497151018551339084120926186226609067023088939478752578247290919655828241856620222254843229396747488497101388844754817607189849382433289260162384808864555214628793266256033151576827144545003897856548735763447487725832566556474203595170479822311354415805951515583757275938734736817804386670066377830007439345729210387683301489480500790003510001240563224679209022123025742887571067455852830479490640668260898337348524945002866272871230929148797241137093281248898239811171557592920048671691511785303863372950251966304502886918231450867155098385026110629790137667870976279443480670539639891217968707222954059157441742083026596813222660146538625411604248370764596870215933400955842974847528417274806963169554950243679320098278227357368015985128162212449625384953546401617858118548602861078255968253457101874674080306090025820452301155043614211706796797791730621028500490318293137783661310071085394182327713708462210485781241297228349043898550577978542462177136398167020518361242543554922116349181038558802830941569416308233097480808130017390047405203685788878651986134241789609528994255132602662528556810871189373200027620244811569233725879899295357978427022595171107349190231757810697220156851515311228833370080622123594094796106766501274249623343918538894987258532930282569232006334709163839778201897066665415610172434902337484770129964442876540839938399143373544475663689005075640483445420197132868942093904129978480904044977037532010686881023551962590112628303908013477965061308300269435765337327347806749462690123177915071058810341933749645351386997054036243881425350640892329059888928933642491990175711466196700717640392140029212885018869213848677743909911936908474912930069857344991273638419075291290123103005951181860050271793082800510533061749657801224448155449621226210145591935948891605186173040072994497564424616588743709369262498790083991543131066011521334908231266172036966685998013050979742183411278796163294808338518821222351035830313928390259028106655130880464333210684562852425320753718718627775862340927472517143709563248024344485959620397253409955397421000993621766598959039193721352441350636996433037391598849452590828562198266696127077018117825421752977696212605347796991464770772595206326127518933250501656370035231380200222983333709220459235044133891640079091868401413656226063924630719000762653287493053173538081304368963493310455670097595980495345659541813067688451688413934072347737812060594633788309483155057352271965245164078101798842877024807223061814884882576217920527196323635713044761586351953367520575488803847729661964030956910638547466550961074041904929807565175366288133458995153731929078052733150690743810658728567234175577846719053436502467264342323359896228561238861376624784494420043406882992519668257937413870202201592219300570931093688415344530790673305810222744511089257699673050361634278070099615201310298363669224191525275553986290137965916993150209760002485121219781879949591421041925298775815292381792291343199804807183359475370676197858237588260562590930073043479738514760603425243888932368654746690859807337693128542317062497289101332145336289896195539051432941079991228408479820832385427705585362421918379064943953128843622532319282739829399465354968589242077787798389161196993662102824594405806198268387387767396357139478010584370651703623738795415985927250100055794796114084693386148276049708598572550242881983637672844584046125162331558177583428692420987241141814045051939586036589226908908869957334415567186574246007603078676290624296487222382752716844624388252114644618382355109153120049646758161357888508358646964016033693086780909452876715838206996084056991024619224328185282341637427629967770376297714191299717366813846237106142347896340724947531627177166141923685518414153797011010215151705203006215914350478073314822302860930742602535691646758924594871620647881061346045527097030269272782981427785756965533165022940314120376240854795013550981137856826716462182480694497675053006661624290524025529209226678240516476508555468372150280760024347328852106044269255249801166378127147968470114944628797279947888358428245514319985311568310724550213065646129705166227178852862139107825467224165063590780779307897412546014740438534081736569553627419083710085221866804956376130579522869036908057691361775678076539218853820256464048737840804316761890480823456355035159048394100715627624147850176161479772399563196608199924564438970441678326032891195071380935714580772292654236734187851035875186772765455480973985258016825831178581665731548568963791282355992808784286633508646385094727370143234640705786686312124587535320340903221477393156541924755576697224416081171167617838581207139539508950757525214457304986366220570194559724835018487744727784819088542132850061189665644558210276502229434973842958653799490754087108490065769070738368799158860802371531296977224068445919039192500232293538890071733859133615490241302157918998826401562195599044720536049401235077676557555795401768441466077699246005977540695003665374611942371571042556382809507175710486524032568913297768895205862206271685862369672443304813303800590352513372106195141997575665884679305420312212147686025517946946499089220599317590303210094633804977436477348361883805742378513119240830295748354273728432639307264278396388666772207601233781889746189848606329210316998240236634683280030273058487594741937263708978659553789522534016130140882898143883613920481676071906715961253810944895336112762216778339663569309056159898170506961443904986689725179153673091173163067194358821059516063584308336016539295789539103999949977797120818640102612986314904367791204121988861812636437529776091857225207261847731329866637577020565912117513348673543023407271898783410845895252780970121804524655204136864358218555082076151314971545779300887560373552826198759866937542808618914194838769877732383692559320238788873713231369250709760654646554646098222904470509417668967888953499599258335894875526138222680402889934486719434336842354845468243493966328683488858551028584471030783460387402231920538823401043239300207115717969617243527032051464384342470632145934632526902586642306053865811083234376566978116746392867846276460423415644897731185816622247248851748912893747128407869715486422806166670602056343778413083102994595296133850678524110588783760153115641166269284012279368718501935891403355140867435533177768969582093447767159744934458580118838226361458484929395612081559679481948397804893803453877666602369487373358973676633296613138524508856698132572308233866552862165416647240901435114762800895178462561421494362057907521366059788713872460802952651499546399995316954933494715528037782474206481426032271063612653783334247648468559447538665873047012216752376240134240229416229198581748193905754336805879352942061455233910405658050342909435879372340974451585184486947832480334332824448244424199431810883854001565387342039551479493948586495121835775022403792252703050703112282094905658086897408810466154364242764210256729493726093296903708768088204024283901307379664658281260967316177545246433272754496466992059339132029119964165576474205221768535341127543844413400306782998821666048209651748005238567759885930045118000279684135649947223700975784747862617053176092709443606782229692645938203234592869848780278765561291867344874939616314700759190024815915627956043212736195257474477171056428140177948394903594470511075692207535517469596934714090988524857346522578472156451851147124479627428160345352299278273176946322649618519841419340172487377040683253444969846718611974177005704909174722507966348848848250055902206751884446072707022413238085594934745978165135815520158765046624149749379040745363198638714574798056190328847620927955292527938858636084128229398147046413232413452233464094920522573648205624189438770274769938046232341631347387845896068133738829594475107676663030124004160680516362530843272643948903275869981703106615891629616098599096523106007824294418456690666202175221218678999259174105901429197853971366498272655892493866169889290072875544598264536137646424194932674777010959392674430179450157645959638029054678484879177882259644257645694104435241533413289869707912028450834504865460868858119316609717208461449056100752197820210683749524155303646746534387638690111365343103654986788413016893290476413253711069475264617798935248977883526817246809296046825081232229661888421480069017489199421231089951112689279928060731665788944219921535418234791921969720762087101013069611636532861486418850818892491563500895730997176564027218827890915454264556164608136228004411891448259112594340194004031254383951096334185791878553966467343234245265778511325295857289689987338021936074222712972891866809928544399689178846783166444784052160465998198465382171108229869886952229425663043166855273138160226212251890022260411724578979390257657378814035403777165757806920673542494125461002480171728950621926427409781123156599238219190253167979662361169626337398011426326729279242753337871265229192598071364277785502777988848227126479135394699468898953266762337115035944997954613536051892891133829865077838572188506916510019433220253467148981679862830794242373142399815240775703285067962139085850223980328083211539807408491127241132865864488716339750735882817652797683705074243001782059183346114863304470067651638573190688754644028041711106394291114935166155219928046592266715338376499266257998658866588219833949628746052143514314241078997062122195266913859204265887221649804668460830155369667932831903715482281876103589707802169039497566409583979664989873465294005934606418407110585839040253533899234914916338106524055425093485872117599586403847445723929559839126044447098965529931718578214317789564383963344277796001996541917464471668488375235156256609272785580686546461477170890561372692286627284787279617053448483456982410564892813805016675802411246048187410728502090381542857580943810042912872438543232391171279455434393454370403279113182637444730646834396963778719316055556167113906786113594359530882097416487079460027998904441188698061575175614594309449576305789450906968945168488466579487902588836110345111112019591176103290254441569582488115878483734236663105319030903068238988132503798010470418419754185754474717132881331395658915780804455851334274004883847580731863310360938447405718931754446169904419498905154693514196758780403099529693269051394200527332197170038773864374765420522678419068125343904585108226668603789417154628877105885785138739051518322830401941999116022371482626840167126655521769446941482976349427633290024574935153022166848412560869112958590485529581788091731135233072790049424333499254607268849510207401703801961331093669314411228813926964750747087949954170462076665417705960456667947119087770589607526567888012849117506762175777188628237863885955264730392114435581511105897413403237193040986934691934471410975035072256100834549527117908203480578189240895372511738902624587663291526840525577776850061049621382157227155035603199324049444300819106818291760359862039426651306554476038819135471790254717741975581657666570693231558921850829572989679663702890652051812733806281247137949024981858328296578026348544410395350578636504618796825420469198987101553838699525803973909238624674331919452113943735194894452309883222461139069386711437035896796536449888825320853017135418083252123184714794945432052523205019072659076006976177696112682228738067522042509782297589503260687804287883910358487035522606364952305766081636227005731469276673771510599385999861173213190045958154675593423160168347328404342633098535067932507100286753500572583882369368777406820545175518032327128167435919054203596521754804904010418511241025188464210658443858659504559580922563653659607465098160606819321502598595877247093907388652956796074346848086619018122051340963731780600356512435086821009748985769497788183705427115245008096469945751930908639519840541561495354051674016248031816594941866275485294682728867729157101455405493401025721178051470149077114768435180511758280976541665168957349562774330493288411537809417066636276942576542686979967936965314823274461449137830339802440714832811044373665947858903015147719575596043044011240750831457767358850221655757188555849636243797773406730372333403499171353349362620288708362533010236192008806739903700592702974692173744229387417767604818077538110902600974305493611866720149844773986698845381093666012810682052106921904028577825693568714690518108522821287978827100378446485288650972135877871117313399396971996673125291607754815428717862005839843365316926322463778916583681077595902436508685363117717043825658441289201844527218015383341153196470215217098613206397281599036289472329946096511168398744114447542073637458670170904055059062665057858012003061391319422719584691379607175228540622782660909908982836279978263807594664316183910788953475290770671939197664781501540112412698463928641845029263591592228426547642330923168086303449688488207523112480631805915191861797864178580793181060304231660955888986675001704572596585152314063307750809716286582392598918950370541058695778616460429767509280611196005578583264697554887038495737619262894019312157189101741614496372768386810295846655188414455584216136738126547193126904874120064177568483449196495192577219214743199613425127652081915406502322704275630474558020740445824133480773262064861570358011226544389091020378737491080221799368004488895986345422337569505774713291310102374419185376630426789308979712191856719006377203678129968035324617272061027791098645094496364895515414377662121815054858207354320334161754884513644465894547360639150827914723618709680150553827256868319298783879191836690546346952129576892735407377504037435992333565087295961462877093126118586527885821943332569072167420042365769842087744088758106214443560266586932991365566755105528839413079531916778761837845936790263748108519986379645299087879922285868639245389297204913126244540941359478695267971724209007378478448803723115997367847947724349888872174874692987449121474867452214976104308482188232025440400508003995140198726238464402829182333300367857414464572599655817412507833386653843534155598188707374004258780380202296881843756791313124749444838150227273392993386143202647777993153161618241480729195365563642973420702806520442174457241221653206061932264490323507680643534339243167870002999780069278988664824694397670273721612099255790859455770686332879393869020698140540503374980860918951043356277058183734441122823136141587563910616782773249630457051653256496371222834093517233068791080682143058074608609369236061275416657325168308594706239216959096017823472544239631724368964602215577328935165350376361766559403285199796132660010106161376311526537193513094934401968426604593703451405341155488388602642389991066794064377152530417516318175947958034842230543808881752781587821756519294240002393991946898711902828587692078742980014032906673848121080654982558323860699253386998454610565214884332901144451657165795403033406231614804521805338385520193994177848710810310032584487575758040339907819856187971538643555527774106874130329793430918686834714249533783300321271083004344281020212030596019344492499502677760858747776862716349826721959451829915007790826079221010640443855377155609600837788835978822933800830054647494185808567027548305332739038157034474422843719263990577325627282288686503089974730920807638313247092001955214911039192153432353401946628551549883819111112015716939500087650955685975692963243062506484978261887421492833742731491085408250255353554603015671657369699631660228846186311353275080106172757965310996094130587276689509610916601548817815574029275993994345936982624995564787655310804206082315795027383550445597017104602450633634414836248259123174192472784826381464694249151529513224087598126339271804286567480083164717095437135051271016524408363025782166777985674738980081604233583916791120487005160546111158758938840225969244096645443127102227128943477518414040702601558916915773780820890593452470834402063539539833680950053196671582872378119717421890074501521496866386147387543115221571031221117322934370629483721566570934501422589501326770584244516697020817568523866099293555040411316532985320556621212267362700276294687134575436883106090999892010187778701867155613721412375182843337642981639547551401669737261076512201855344120667995895261034093480060185508459729325632677695654984429388249931953276944370096907463482357201915473619980543333772575605108057463678075442688239076923557355131649603028732085725962634524428798728181363501908877273577070913508872842754991873577044960326593211176503594617518605888441332266399419572705854859477973912461452730571455109628250454043339560994089636967670415868494714633025954148317617988308351241186410291504785894366945427808310291609313486088666348182860524900871804814324147905507963693225441881717555612955980534028932966796250877261289446326474178965600842226726256941760356660376241652880121429384479417898988925372787571420775603335543200336484243342144491959763165230926118311027546675850084928872320013378240187417253472657693347233470391005533044546124201264062821579287520033091883675752895262815833163254952643580092038760619324895242984624929052391202380366047804789749034417945468601792481627861295061477675028191909541054501607085948556389913863027415421479744314165080568388907001298137134948919042112577552941276573386397766896113983372207085940097319718581334449977247762248601377439851053591518147625389798980370356239842847587072676647790843267616190545117478250621983063244917059300855422115910945232625348364479120629025631600710580288646093444803647078724673149654405985087508689051627587173444320526720857100130286010192509385300543138758304380271392342437293813106737412544426295437702496714677697309375589413841893455968159477884287299083852057029060846786878118162410518170358527609125760408078688325397352089602885565398574238903824479377132704479110153186373263204817310483910689345863166730251469094230564978620003367907355369610863175671987073458318759728962169799688021733061617639545868169632605311083056055219753554409448139325043220258162559865354562435400372742407605510066534981470501057581136438524740473300171390507937571386364322634550674371567766706540365514496950320513430812033064561591281219178878797759897318268638343133672169824654503645873267565053017799037723805640753753846611204866619583344711300720317352811773903324075836459967420987335030110453577562692040323072772542011508872294359222828285444529469721656009725424942357625137774243280820401625360013094036996417267022613069265763812153626870583354779172585625422716789633378358867165503871304723137458594369940844740813974372938052145719506892409730835058222572319733043831752316633318311383493014392550105107097767928972439679416293505037100168325259328748551839053442918420240709013172693636883434115427534822760750184744266107220019907267801180680919377538835087344781559843054582092662317467029291181572727101325878143434955778116290808580369786921424784157201748525404916730313654979907217215636165980697432705352568985335389346012442962590617533601586997520358287499152816078576152449595854478325344010528785134010933990713440794027807963099117814966329085335168315051194007620606342205850551036222192258170743467257854013439873084778922953215726935569050170576425627782317992835835191387416853777111747418698776625442487380607801351154607181692083400498035311937622632140000095967059117458900566158083577349055888703041163109709757764920742703114475921899988166705421621634227858942113776997376695825694351322636705694722846621236691324056589875252817399709030322456736843651714544935110356934120169008045708563003751453549791030375002469700307626054059854579917389535008934256108078862144894594359423823603961751296840237008708449194666913979219573244326322793586178660134264549575486754202696900691865143240227483868335912234322031926306464068958831060989253743584698384588397545774785787100169050694730111171717054508135234936108703863980414821378080874559727087612707234202585922378589873828041957442359059660408059698805685294990573806087007536372224428141600297013805359042181265522627090323862911960118522453224174515118830868883432047144698365145516761848608796924206254847697116153901278528294577306720291388198391493661960906219194333617326253541007951127806098513238363249743919736479129495585837332490223040352117669022915366752967370496875379885542438007121638971532085391552062719479845337022050246041439188306606677956110152926415854568903815555632262777639281253339989078193216539427713708852137109884437555948456380316340315619723495024247367863516068494617637457418813536047751172156181547183832005508544645523723859757624050542900432003102176560919757814179259715988431825397941467237318846288747673137466293225736037333442736897961849007996501739385662483981269348673044314968285271539590604736223843900395008644525475629698847367905462446896315183616256518350538257035416551982382623989903627020535680526577438467002505641707391340290879871002708452550450835055430953385654646529001093409431728399764722284135833522928418101361321290453336834918141094896412468486712058286077437486489743936735460706798679979898887627714993931823133592512107708340778003720818271346672580047080095809426504707921865946795331113372352265600939669081100123290213662151237551729300349203178242457829992426614863197088702439899467728554193235571448949352026366525007069394766343895800040374771128201726187663840129681034927342206307095743645530671549745453236488511446805125133911780704639427782973880577773247722768962416910329284486267403534885886497039410401427230568356437720453002621675016535135345821788830777374871621164410863020179559608563521498821197144701898911630513822684385083762957494184850332683286641386878744675461207113824932828715874104880377684869343667321869358050755321464673215716166224810451631657629843001991263245544117332232537686414268175118560822444279787181849092309923367730375005819189172895143982298161728256021527262273108833761887680559372313641326802418351379976549753949528600860947105975259778480615164385654295122118432563027927011159343981366159540389584108737721596169599459209097616626545817180011266279398170316813044838350801745948739723275027353860397817248403904127262323726927869323103415821529373640260267628995001363721156833702027984236499989732898920754640716922970590840024603550935438725159369851074777113397645097192954421671692528548887650293052427263472611869285703029457635556212411027417670254809807312294223339508942258141466503686217989960412338027788206543322773666441520504116639467191264691439560957544448063142634385126677151196889264264770378037609793191340041513561061226828351218341734564627879038497301166492141899837779380995416138041770978175666768472863790766295193660435461296914713552115564684164945983879277850693285254303501654683159150612972311252364764830432722969206317079465515354305505047851767828446985235615201082969099119159997621272852966406653669786308730895078978728859622590737972018766652182946813510566572233624053324752360862695049854583117135430332714236831410960293234103553070445497783426630827453247426848302356381147163356356248214944909402559901497620846856015349398160702178337472536513711553759028989829900596883769808600842785632780121687749298190656208259737118612692024555483981383492946515567176262616297167583966100462775755384224236021270755541404938682044497029397534232537941332792181368222676691514251644151882308106310357663987679226341986009839678620915274131040289414866320156297422136361853589767810257349630558689235088583982455823324645805430349097735967719955755240754944054309522716748569706938680973549170117238379491209447206692355003640346531993603894798910850208062873069075660136074031377797895921140705304762173984612886768671483502068391714846841935877777157884763447859548313712684880064305267255690487253959014600744892068389799420718909778359611043357615067711888815813279113964136439070959581586888158618459924648726413360593484949465440543619733144893216606297087203037786099983446248054256384833268138656685313410211339233894463841943465140064361662756186591996892180101538512980438633883080119818706149081506335526576799504226377318273349447231427622935439692704339313560964166901386706427931626307330848592741083318528343797414476527278787228689499198724687227593061603153213957508070526443820074450968598233871110268663405307512188044925036877018372931536537858425893835424920526778777006302674483620177346975606413674209044424654219662100209833196412489965891896901401883054552915989360958524187486279539658023170908882092309178317636453043321701892877419894301521726739237156516115660060634587136427807758696620543039339149823446762791886217025547984530092944142545324807097600672408772795918563455858833843784892242694150921564780061136075106212619045455631176370774532943536578838085135756162069628554229494845734106517467114348060927520891246377742145363502578252216224239464738177681102489562789090962998816273398459900331313266648349630841322307449217298559453032966340720396460042804385175123731461473470156775848636279750325800395346123600257050655630158514144560443424903536436319258343571326729077266906890343037504058470299843584241038956833952837089455646956106253308779368367841425338926411438742887696110967198410428691289997400388641444759974534551680308322170008941980159114906567233462135882852066730962339277867961890245058828154416401117435914345478999941269890292606454006776331114606664483576916772579366289506581151613212203878956600554387348952951967569585285057266232910350376777797387418749003720049835264469319810539984008381267672854425765176118257548380277088570463976332487015794513390372850571417901202693336263279910558501152038662144932430347692996195905133198328367502451113192602855748785127691204331556295971482488414681121997981130770101489924795357410563833872081528980882816484339156574151769450269705157134205787164609170649944133827275728690914784526765244393909573807110811314326743537665258671059711116288484612770191825353992321094718999809240458097317394104284778198531416207188895145273845282020312128571504543199231856233294854815040926009975293907272050421574959078254594762182419888164973984417924850227483826384966298088875871010724073635799666556569739072632842920115359688751829906528917777734556569391016095753240131937470013799328079309709389850336695326313624490280540030017298374219667811626175691912459064039662318327419928218589224091591693170023755811620711032629731618851457668611357595482092082847242186344249690674570992530984201743171276813763277907894343239510196678079484100343373483581527868343093460598987644970218042374990530858698528269625135261164412798700071680558714522282603216068373250712130534026807052246565207345493768095782983319516079960484462474615503063246097926799161313986705876065407448101621550211299262386864728092291613297651445995749834702397635269651359965951583564704535421303159161792153906814255477661997943714553100963070866294470452605630703575848336322066104610542632505053982313079954847624340038133569845380223135628705241302463384931331027580060492928850389189138255450597739483174088125430789469923227875650020619194860459051330385067971776921040643590689727291821648988787666781562673536203809209151493144948806327085990690362900884329554415192582358942397414797076996894149995991105063629038289290142607510442095060871312569197853645887157040524804703519525152608872047032587008585312938815705881883271378792356598924133471212615744336964578432904627480666299838373143292954346676268545582773468461250626355784481069689576639772025350222936632499963089761827240187008994881395454563162822162012861853341773530044770326673706545506836188033001153486538006641048200189468941617728966257475664218256470643037706258013562702223893447288398744221423181352946238315605974291656589867445141473337891227014112794682063841199004174534642395134670129761209989028029474656541785347061683070435292829186866996665332530975755807688109008924303709058388893263275896047819509367912911233510264493216790818131374676604643262704140032459365053095870450408153757084667050836905433254229719064307746636554571821358070942222141512128036902525115339335669580461081320667870425687443533941488099536307072654394867629064258851432461567095911453546602544686493033205553425074342501169729425148933373180897555526828847285046668158545347751151524446773119832440636073075890355560398981280814537423035008166046172183801846369896552587220284672487408140110202281670394764078023316872322545823771100710270690726135379771635949471202839063702915735207206555305015874795008809563751201511677394276098854887878354600513690874736946990948825091905888391113791618165946158607774064554254156437977705798249558643334411196009656089083923521515112354500256412948140765259542857856907872616234092224079720226099475200937036439821618113133363547585610906229856129924547194916186957173804360678049107402789710037408680598474597662983705471584848605698395363317182344872391912648666437328241740923525148376039507619192489117310978304249570617177540124961833039976005618323063837288844385619844022859439721194202010886117180496686201904368505337241031000207756731919208702751143246614095143643822343624775775735380467538325168778893908537498301108270524146970334544726183174136571854173115331032462292712818053365135740882523870897259816861413252713085281610918152129584389334896379579816408406973084385356475110288742387669442822590812802910056420127994327219900502174515691115108685425273340700650429333791216600147237442017162949452816646975885619158879371145812053042780920480052014655757938110304744126216891594525252116096574308697374097658426663744349459394087529520756864125608275612871661396968136214573498945878454791076819566651841150327239547177257691702097885049834069648977073138925548790818609658859961707174447991667238047662132556897662131124070226602613607382727984608295986192713483074180739323756746646220537672629108964342217963632238842677909357906961308210480353842892301095560525057999746235768240023868522214640395461531853755260216029626503424577264560655315763906021953910752949781405720154967686181739012402463101770033278376129634705397349746159361876900244566504814859768490210353507595941723881412773817126049147610900109363118032960180401421816843862655796014314091924966138543270905593323882824227151367291601886435516136940659549219253783779034590177630819364452463584404171027404470441182492165872383086038823895887086336719933364311339563607830425136321640835670184687409372817257541283104945862011562152271197112536499069505687082292961760658719214793201836427730473133558727960512650805050398788365563618690669396446417436487189481205475611067299907857541521031835960374500145996238905823757300014634531505590687316788236445073416090220850440128656955825554509198164409609442153398816356833732524508907092249531868866312143508249688605949970085097048695641672750179921366604383923995846272808911678838599273029163737810445316172021782283411565922037016677053619313071006431268666585249993313613500748840732096607689975311919838353974958965634411214011789622860376220739693217367726525628142330408470862464266317686481993745308669484727556779546890247203447844311171051874226258318505070538689694639971139638457639256013053066707102685947881291601932081074951928732473793497809885391004138648987641582447620076958347074496473099159770551757283076523416106526476835745575147433023128199912291368815664531174851206097371811312241983262686782793639248406334936237034950024564952331903903467864322684664196351769170251031411004266107527864704441892203877174855604257251301676770463765380087316559127795484082819355698433568738986062396246302160468402278331874632870639418772409832392927376151620229121645340701113729197427046840866603866922424525669587006749289549346671588254747456445907982016680193201236056930254214149479334785008239606636160552958223463896367163437814262516748241548387188714017811733266547549277809629499751145744969203585989965561652798552547824805313170358280513489870477846149720095292164470595402044065653188044242387764396754284190907744827603104765419494129562754385409700650099644129363427154206566417624769874250468138289348511026275564043141055911390123830138212356725491079360384752817988169504759948509064220203236411022636434238241883854122089628221900289110901570913846996606601050611087827736671950784218188015477045692059865756518757366477810891052422539406499314656694574075623643765883301134197798283211223359575358731817690134930036780587263566977876949991217248978448210022721093606497678842681442644006065429079844970359654784588097670028465032923063361670567338007253242942647697823717413399625408752570284098464900299100150254848366246864825795601035362645652488058213349093759690475419257842733668758049807073391213103034785476356060594874272561462567265119781522242567517123403300685501191734020655253720952188030400885057452221672149632620883858010537071453142312149234496289213985819000719517385133822492677916719656913507001033980615228642629230222683131865942053539533254959476389493412195569151452855165673866220673245896548088825161813603445724028755526025306360316320841111393197220358086863568721562834403596836656558520151505322119472890412777288066294223682391317752506803849687813824972238084849704073792924581808139766962232423287369504856262080747798995076724738810656856501048712219251773617876716322651394643772750039168476388428085500328272549103058556437135220947519657869223849880150654607741743570932612396010404830602595386403647827615114301405507339916318119635168038931756842566255717153560596300878774860640860483816070664567873895853164215008172297628524172002946474313904858702902019458693731563389570137950608535065092420809919386077437416420639552292457108361204049748601556351733363038840784664700670414227422036777587232894967075807277496616207777066727861448395980741365983080523124289481584725746150863833014164974821062266180705950269732817951799745621690674668730872702028869952868043883533546538564099525757504554417287493300988091564823919761014740028215556614359414086769112654225940363830434076609944068339047523398983664866256237906077285603754646548864649905748300406276696677334804860446153112004861668304584275250280531552291608297963145136339554179571961433031446132231036666084232498924906080510294973565000513573205421712814069457130662537554717579483066794102609343358987464732084803305486566033382930801915530874107599532760804389654222575228803803352391660679618229529555497888016481692292866588006788181268906458144979628913874940118424692921636848682997876140657586134563050956438376249803483978446852342994071424125016973881442093584694158544504964342711066367769344705778110705802474269680748165739084584854185718826547153265401555743468740939342116254965896880285367877855308463378296772465785686040934878303019774768010368913259407156970640900592455873602504036845629555383710811144519646593545292260244348601909378636642639231529324100245280564046488682867477721124351643492041296989710655690672114226658567565152291783632517249904486276193648069370225046522035528392689538377698603054291524526550807790106926049705010191433999233370409937555896353824711181446075928221338757512314813562995149103469486041972334080759976814465775627634154853904050400782814506071100021578288708799208948956910822940455971904053961610393773993181665814020210054013484565449666094678776524801551377540563513705924278917046039247381307166199086599331512608647594050123791293770524064429397596767972273083633151383613751818216822061549892132744124296838919712922673610862456370473632710626143751646866410357682859977010876924795237865262978200481952833699684733841632192332404140104604926555832361557797065186419305695192413958700393724612810399646701329284107027976269535243898652540379845749180434723308838473132930217344463156712667578440845493930066074871905985113809572297363538861644957660909820956534579518087096627408879987473727783700608221108604680196723227985113869175805503842864803991196162090804329092888859229715361270434103217557835057868731095962341496404478965030567929588091382919488896444091325740066816244327172724327184786055273831203036321974472218681117015517700215560883498388986020201341686454094572976284149843847373121193595896328783524929275935842382695449166140242499895794019953809180118049336197225023352761429523021800661843540850990057150892299673771761369823836099736432088680478835214839320098915678743156761236004189065194726141992566864954029730448315714273030594879909382508453249699143283267479350980707299894642784586122232885690046840638990747542333857580667766176501817245841604412127928638429567045116384355072181854675395886876435771159300708498981720382921783185192504790425145497793868336142563406203544091825223245246910766854481829215031092211771113185867213416846606443197376074479883405857023450543920032084637791738529067297644474884720655030552664321267766240456973955110954122667006483319183961732193941727616325027856721852390446551271524790514528350315272647888336549338216069291173345445416036853059637179074046122132519203502167296630398295666298643779882215890068788403226065358307744645993953221950989617665492024553537463377007976064179962375513966510566560150366682849682911512242084777856961577457543891952919371654871456645666428333095506827202675840149629248869325663101967141945084130945765376352427866390686511647157537506336971272384113958194033489412178474798494546970422271716911922106033676232765339083996525215143614219278149220783696523684707823573376086682688398061609544874475071797121864068244558501422177234234675875753348063324935452334021222367940008531569109495120367555674311767608706254040965594949267562389580045037118228757269907637355588995186682270863109006816877823747226306018977625952132969167618765804146954088622678489921339372818267881170133786416520935137137311090494029712529560025075645900542229224812490154017878154106986050220660192915044273450970298662147130035392725850047787771848140372769041331337934377433742048049509829461583311824498017462191477270895462661927661831076531987891666334297363679455147369306454171885770638897308570948394473462010588623791537109339847462428591946799742989542571701563729236278652629300548021857406079217544932182491502553591563043002118066629217583547054339898823325030358912983433716223575897325559112943517663686961366050318292642714489816251185504146522028710321927785020784215636097605516566977776667779224240878474684421667586918631839146782210710722711901863088975515123497777903813111158734248361927686588905320617482918586277241903619237538424590533755598301616404902720425198232825017710862812141424911633887841752333128992900453638882345661507168579365493127760508189101481697859268894814668861327728590175955583906901157086658733283569967845841331330056068265572186915425153929831693616910665638510696810746503631569914864224575105236372197325932147331582926010591505772406952851004418549725545652917753580395612371851575498012520111206654153150451426767695880153607718686065550387022493918437054245984417809273602558147092462624593908915900873654456042602569826507361418394150204397883056094185533100383577691854002017758795828719592246893523716968091943118695221119297309756286230820998451117803045379405374110627177416841622218479560050543981544292033635569425638422527390777511527864441445642464822783846186092839486927633175224789196649873650648682916154595771395536196436050182755830538026514341873274814257171935307990287826327180583307131314685805968040879325376019847751624041967097989296142283079483303874207808330861907753536889858369331840719397706673792854902579064327822870868672280015197465003604714855183275115332613257924938048091004149102338861833586266284598863200174938335128359442149622108909616293096752369679682684551505459246466145762173396704467054591261549249660103507636762337199635568677757018304294318412560666025182962990149717674117817194078229953506135373814910392124585787871377088737836388489848719224359901468802834370264422554557889156476828773386024145297965848349075339542179809180635786434115820761092722275880255384639121651878516551946965309442547003716891975202469071325729935263194301801772311698318410988324646737443830420005347394010643544287523197351445321746335524025438142050586850082116071147206639811434222996865461212888669683283830393324104921167659010651884916772901727143777294956923548565540445105004561607131255994954387545218003991324351923646357242323642446895344064283170666581361545869094319959953734433535319775504852592929696232642187706548137060938403047050861497877744851713804235694167542790938484517573992545714416196139979586086702484614083504857994757902088507701190136167149275142160799692324465789920751169488139098946641954193822462574482565932666822419452077952869342344039818103301647487238100719936512718082616170537548293348619627963321668839896695549505132623630849834065746213536897908365313076486449095474122985717260413007525864046990477318358603020900243693131276726032697084166192945925646319032259042652083330109834044034494259574177997976267313902078263734095042590213650057272779421219790280804521535687695916131962839266367546628374900394113075297292724703924196852746716779558438921865712736568555579130052420688892128370798237070865996371525454265159530772756612790263546873900619572793518501254043192623636836432564598257012078339934917919156633871627557198280019339564703374789569880521169619270052217533188096219443036199982891044983676554767279791571752462552320254215807024388786358381953171614836830359332291340089640890402261308324727385591956504458055408811415939345085217369169087399474399631488579405464395388815098014868821058119295995927908900396676386522575663734981887968505669799805030449769614215307645837198482298896403789442363254526398512384501758610432469720291067000464789918014817345880924225139142276009949347513879505734055083564641045589792508426354353184023444316534717240569860656722209172256991057931311572666094610302547000382310226382844262304071272754074946600712001186055357596989193977854067230916315510801893773641602976843198892141084827139187437992248588943922791525522405794257731627663199427151639179005416962194633811499581962492054943377135264828117804829491974746159785647387183832619583532067637460659889114965454904276961372487063748118680670106717063103751709135727691517056888808691222525814607279819006121833249878664556091923803339001143742695085789415082763911700702832862319837388285406024886906178378698037759696078655687346480073863696901778513984270249134019252691693615574244467132423314003635256709919372873169945217426971534066916174281338712208983793882093534610003060004747942681768945810189399756098011610553204992317806727012154092259055364726009831914930850791769596231488438953769015143652399900528730543738256895203069146172880319387040300630165465822153281180863101160037120414869072968058353985990103790625116120054205303909284843079527441808096180902976034542462387665709306037032833249588647532562978141243043816470590799905105020806165199549082933953851814804172988746085000365049895564476081318262251400415588181442139663530879214358652077079947237354593713934368338299329741093922240705185156883883992000467346275036290072479375358705669405535092997148057374686293412585674443643765853748276996539841256922148852158723731282542860508591879694084431963124421006623322670497560509534147756693658829395513751049396903482782589312988390684183576121232423575515262210132827015983121327962771423503633581840034274898078834191825925142485093986310315998907478497083378935507696300246211403415699623480383235766241658097738090513890180391161424977349009472091981003161512029495551932014652932621244642835259397228019406869391627968123905537883564666464610046387812182382556278388580655840130103158672753557891664841896287805700803086213044738310108210654900228080310963690460283531783157917107934168319747666006399111181555935768734529094083433579928011915986448011956063333697548827165175192571534564057831860789058944534294564148244294791338527132006291565327479314529037511330088157175840426667194317902351942813814138396260343877209619454844682859732150070283327610424676725654814798532313912235643738117919077153217249499765764935729378127211457015260428214001890876611245501955474789033127649905213581908462763933101914764242610488557645608016434317703492193027584590885935537492572835110627259363732888605165569833586361874664321493007958161802017984922648224880998465535002997566480696230347073651409530025908342119788580991455991463928508927322358272911816585086801922015589793033251422539304473634813980446831458923716057163644804339355905543797359877538974997549339644454951174706930233877530799895659907541258311106844941160964466756799349165448440707893141686585156466407994844629157663430045062931285855929339686767704025490841969588049722785230706129836130878766965602187398344465061143764349880500946168484467987229441579832659097852659418844589282668972144917802414218647941725066601366368060135524612569768966258035766585153216798107140167591640049185215300040021709916264206128813579071804827032920414515473554833214503940587767360801285618342616618702713918216496405459419035007198913580196167112962164033526868600512645340910231332668708439448094083571173883156233706382270849474657023531689552190637310579653280888920192778920985387095960678587490433900757756700578883795237144213108388887563468423384981666937931472678856138908383524730452717664549340410285713351961413071416765225081066527618662801047206200466689124652364189737884588145240390335925146630860000799398888827609151202491692013415183542842272244791376404209561512774121506768068398104948988453047011724795921430067238169240469061409165190860600409507233664017701859370649710781488814244441529046094360991776327711922572685227395909882762050046507197492906576074832378992232555122487729384717950454235468700991611638605368020304609214405089356268947777131303477470703722241066469538982585220651239232117014591375353375363895342861683104475010350251168938108488170851037293125444138070757528865353867619593266246934468660320054120825737888356138302047142752380139562796415810387341906912756478242299948785994843288753110829723132089855343389749378770262753944803792462376199676302719409778276449214092940005915251766431062668192189679749687289672295248538642184295163824190323736821914775964856822361926188451746819100633172280258560040825770242701101793381562012753457307785181350471085282812161951302677614155829952902726026075310954635039706014485470491071576510298677708394816846449806672830188024063653018768874503929758607964528583823803523313374389914962339145428578031572265250850771645959182965092594333112432458390681678280286004934473831172269953333779228124754377724248657929589898845265542918480337718932307790584794524201081520625781068390337262786975941871745123932968429756291441242491226471708863672628008907958747800282493782094411676814556015148095137052572992954826867108132840077846052659844436992707629516389046606840996808786023294964277421696916195259345161054287088491622428690354020314326107770188836246763957660653391878034674426766637191558699237553028937864338873731086779663141836601336127184841093336668422382692981805904734333803764448345639713730687985654475578873808732449259248907944180061858231132649574205853915214080557890544134028665523219478057633810458430381181194161166791200472598427088019558610590930784209828710380289444297491579583076280289830839610078499301637985647671264096080101192703336165751040454410546351835791362157410563103787710711651928339911842022959806753054252921657806652995675437867392996880047174470740693459849694370058298541492352284613663081585299452038103549208376276525160019973037279986935812585644165090144014463142684275018048373282308095944703648813837255984878312565596096563341832540760042504730361971052854090908976553798565083809662725837310070999890565631001347432193731410746356691822183036094277341583981068712747428749597204357763147786601386700994371041809584503668993650923715025357254579143925217272310862436880225890293851233257714245315092400849156087013112444352719849905930052916069001047731070467831438893502050400241131045082989769305616619118140555583427286378701121285252487853717134692716729760949358169030035511582992771217240456516723994240983918758239545337878526671917551865711645949212017996687127735467303678712229275566055513474663666239408030852811849562788115664920995924730618342648603449497117113869871403977635386530984417425220333394765084591728664795393232720947864729581270143002998463313319467991509302069120215275612441084203098576778795651535387611118753990621833460602761722324983684505082858508400378608483489612259757914416434895827129303323806416700855053878791751386360164979776410192929024865774216842969991601081313833900104217463664536980938183166444342072722252552272103716277980543021163878941279506543877391292246493568260660204566713185241214787323439723597167361518198804607355074327890429916562730508405491859714920865293533418996063582958976191944934007780848330405987167174020587417559900424542205165649561304195531873580555584748115715620671775211746979161613581688856241342470361332253270488077682976079370737552685909639527722684643207411192221535410232233772986737363867157647831667696018000715302413351181861563063046407669834118857799474034201480887099773654159547167769024861408926493630947334969050536521976946694269664374872355737188652645344041111131310291408882414506778011763353040192169351461267026180820271951352098332386213024061284027315758281701423494549946221882187911957625131329324847950597207208200665976154052748040126004655923425872813846145760631331485071633989821362004099841021401811318951998686004942783812877581282917225083324033329633927401140087646763422623916665556433664627455595021657136485675183586576772716748184022276277332742556450633781976177531530357899913553260296454151525336840084203807737550228688474956492929440087875156903825663283176069270962734906825850750490721303824773377863812147988107182783957315590125645276551540538454798481410510651274760811171584316939669848393381466905499641959077999806998220475132613138773468931011293348354782616068812153791221366201825351365281113113048446068762336046905175934430340126482016263019748304825762476596848106161951483981734976784628535879136453458763251534258091103249806770507176297667133583124230038892470622940494447754806944139250883348225200622574817428622178820257466220086185187894289755702977561606665257218959572570825085431486324688593520286810164881729096858009416663913438079679493864668114364219571239717095780041760241630695199143728683981310888914361141409228211336517731630929309303223467146448560870472929087734663179908465832968245977945514689567511631177792239544855274726382094245275250933507086683730783383505595823337245499370421569818802768345456415161130513120897384828402493140898297624141243624094554100378302918741034767830961268655893591803162792537982059088413267486884135652495179160488346962965669440172009024360444021472978619309092471312164010458548430199291043164028448661922894928737379293249413869994792871274431040802333716517579268417261163773865443783340658292717104389907415700612880953599418649567519179219759682326051214802588626199464480597991974075995711877570646558774419594397686058719979479028540553318183125658838216070835910590562669990002372523320587028125968502099595857450783205791034449861078075079713466406871330907946741369294892272737706077811596842031466925523616883279449333304181844786268370787039872012165899884011584070061817989800536735192692284105805038967116102105408508625797545825893222994194458015124663101386118210652873819061245719045184412804522065468767294397416558162463102751812283547604174036140077154120415437817915746520577196529423126867048635321182099915845834303925626758474538014319790182997647751395164765298052364961738155813653674203848673366179967390669378768621040410192439080049205665583716166150320586235982650052290721848400429246954023479489431515864557712693290076946947087397469471385208008022896571405441327937464997850048792516322687743389692663783825037220773287896083831194915175901246667951246028168864513410623955304777407574325415999295400606991903569669698216284586178999668310266537483405867695882181314274538316299943203044826448080710918902443579080594790823044892599522314334694992254575373425641658468818736750825132674263086513447784503435547472688867572006274238726281575499332747718080625190151759852006850303878096590138929598382924779992607531654143751284452135495996464261791692828399041690149446437353715830210063065266141397660723466387475520128652455142118086797620590657867760508004356020639969687409895361867956696295077184838146874732164747844057391754266366225851874553489299700020714280283848608731614491243998649622893507965602850405972956438587240203059125024925578389576335257749546238856030808051795806723633278486511643617991951012293886350713416004639408028093615604824902268579062700340707856525006096175788535240744135089097580950533668150962305899677293393205805271779508330908917848188901331867752420601563104361560917710616141036165489036556147613190879922842102382218487804979780120573098622079749880249861123031145962040799859306380614925664552685729462541459293875442591227345314753772713394114556009244641310079187443594832957475219404933327142655143478270104249928659172242853041277599522228980718779428835003856102680732937725905559054923694536238241980438820304776941762053260133680245415543564406560318316505571537652330622237377932512162833991958665924691977734222287110426089567368952420738980490661763589885188432335785228563085466918442536816356864280293346279253851752860781455504415876738700948051804505167898877862473304785687017636713138272408982405224943773635415262685756703682467741058790821448636093191751900596637346659828280767247536009832835928395272763851507018277714269510830054656779463612690520915114597316700333997131560459711746749398895024367894625214761671575017910281045719423761317158064903636752396842234958052296742234469415332988510746175911919338119097695872475445440426346782038895520023247591332379740334838021316925167816016518748405447506563423094149684038386867093556481681400676304769802735489874435996793898106077929402934746752094778749144776052114012897705375544453636218679594341409518939269778210639785893979847683135904487389992194290438228950877881077927905643471281506597375613503459246060185159558976967805763806930784675815214774865007707247896128746083736440484872903866064284842612840321431427303835473730114033510731652581418703054724115767163073300385924773639938177507788210029292823171203536200904370855197190262911967670880619775602161953656797776129582396803352653816576652893659763686657866106489080311174105244689138384362596348863624707191383683409902258451108142494317557390370376957013186831608690729893223609532197525502730843811336418543032987842385934456548583384672284596917406420229034620876196382305346711743456934079872287429143058838954238121472316907684428313592424563077233311116475376125076069147446879451309717930703030493132031638654308033391670847737523192391289657389883693079522709821291973027266921085446204928100077460819948322473506886949910952979036836175850751893431724624104744713380260144462133806399883150052260507391158332690843990360283483104900995143778106563865598292662854989134399644711083545011147050955819886659008695640896975917152251315298791709304481742923772676647399007198172541541775427207263681066506799617497456923983990136009028490229446319045087594134365688428103076825533667998981168781301505716844604498758735263480189318930703276632571682148248853463533104101962751980490069736365889074171179980050651515007761081798727750586104141027397095259716506609576310510930713435067654649235360231859713432765286367354625937522838909075634337918340346167547851613944188014454768363977156355593242556183998717936416697665680377492636364145940590590613429283788221119300033515098219069974022539038102470765374332902844091483561831503670861358887998846079039882105416895056955730335284333088690465984111696820045562679594432985586127490553564770828921596572255314232024509245424662115960723944746344811733391405669550714278690777173875072147525815397774615537228813188682600993078176880231344115064991863633800384729907310836677819548271939235411559556079849663254881651596226397449198264239917842466763907245618409030423173698765923951162829629965770670646230938178173931661399364818049622339880045103043198197996524350004580388114455349254022105120892952488132087306412399849256047163146893443253523711515282668054364987624059972279782748628281221574983247221729747960410022267326667597529693711401161750554477360197497812669745188478268134494456148199311860422893770825822802245241367014938891118894165305782591139382572315057470538824230514732083946810716046230983735053725538276385507170003135311085668755157318665143301862373389274164471786979386060640407077118114453147348020397960918141513488963955662041300258294573650209977019654786678733254239895909944957742354270852778743292479219014791083372112531199956881374342520610115658640732097460009148616306365908824413125978120840016084182795742512754352732357049730425219327412305698832228605065200496536718207816645988338389718550331075547592658628255642821059931779209860324709549051768252784743031362848140346898616359226030669725215127966239852242798543849454913066709524125344802871722931125925009252148565761375803751953092223669551368538097678422795119749579169184290870632218760860482551961246208522595903480154073169768575492541982938650984231021250509181674227511969717325852474465784896086494928907833512040736986079107601007646148734819710476778499335109108666717253096640146509582591098126292028715588978149168593623611058541868579709766910366855980660797591207744337321767560151449909977344875364529730372862082906203183147324096774441708814176403219250976213167979256703086616255735958848915615781483735630978621516527614447162325933990739678283756995109676157776387965191706261029171069181519488643133560601842222819438153554370773277677643055282581232877139897973136264601077684960755668067096819583742487726226851875626389932450815981377908884284320392674702822491429541367377923886168158421553613308318588346914766950807133196930934036733523234539389441054198194307713363485595369053665450233918765675903163376631105365150678070947005865386480494156918449346025554417952645005532149857524579649486294182319259918934964492233166460622147062103456672263914507272247289686944730817502613052235188277517320428833579153307795513494838650836106751027024213129449961849038445905018668599917992753055489822840970856381443589346312464042515593837279509935015239117458655927406897444482294601452807391478203258717673689397305825077406133079180229371997749287949996543711334987421424138177061989000798424624652265904935795852856927909826861476261394448416004346057960191980283128693077853693819370579463637061507884354244041870031066193522633932054944082555716353457808258494022587740872679212643343219659436069006710928927622219989732219001879235610587180537871267641351585472769740379364581024232182574099626968770714080198158455371987647006628994785580135430408291529924294383217101059279979121952587237452686827590730179332938970084543582715569366089022745577459428348362665905599510156753403377623564665466188274636999489984978638723475548235846425944496752156369773051906284563451341817499877226086996576442153530034798475589941805987437168402572593217597125706996030336546956338827892627937245351152458585463329652859612394919080864558330630760833126135795079768737370370630804312817825665443479419836260973311938112914698179231660734129257128167468677253250770523228392410905162145431254829492210732348203323280306028628123776285076122331921905816102875098847960251330891126126781177828901201207357396162619111001749529311160559020436936878171934961889396570815979105049494000259199106354483437373453314620832017613222238465634431181945501286361211257660977441296551416064268857389233861413010985023904504113759274658605026855011348521714807465910941719839837214863912791597184842198430079886695185646418362973590316213839484586111988071116576423174006689682802340703644223152191862277539297640104519390344910924905658763048561239501365667378924861710302621082274276804064249653041554298378191398504190731300467732605685556839144898752681337990349413059233232833188883702852512509272058840126339415044806354706143767655098198864958020076998259033883374581845769379941630210298491032933679215068873768761879162469199856330608920735860959090885893250704668816124357427419216394278229232904896737889556266103232274539537174427441577468659086077179058088845872658010660513073058639512676481671959186076793421395282331824150199473613165364589047149133226789106560836593614147204747843082580588717857575621706444260317568374646102421712954847252577090328906912414242631677530208022931761577182555911780120084108610576813802939822368788461629654563832113313857996889240321326192778187111350892347778775563297729591130923274521423600875412123374435827434866215927328374695598973394472528828676540753847221753364365214389182099272468361801515273537445909906038691397142612591157097189866873596698290580414600613717307551506716682339347058286206470022761844885903226224968675612534073554764916427242596131558627972834255874830514495088927268316743228676689490034979000318224586662220814848074118520981179022375889250030002658409559507310697177458818825414089770980813851766155408244924464132043146916393071774276505111871881248780393229046539643507462773834511380481755068276693071272193912893813547073720404080846171355331787912252003354428364360959891080526793661937972837529101789744104212285849509584916895906865617038276254776680772373974424963291590998456945123406609940429246481279085416171382768457340683812055157189108660924472579323987189357430705776595559960377324733665205192239241977799570624660481875910436633570303011614224612072139760921995782921640895655403097441447085769102197123322917310488969395642129101494492000698408259026295645809390516715853474714347697923456814497682055195866357264023948946758578736516180738024678294495173651436225740593329293058314170489322405114610895969726245088993966168172954402207018296360932157398049129013172026750034246142514977919323730835958606012867205534105036115657518682321534541920177492008847316924254019186410213842447472829079849821627452063983927126640444572157356848494555415023809978411922371851943599997134238319724142292495119179190302384053693408825724497872137873032490938372747120476073703544987126210450066885860823240107516201848930724118426249949648103934941911445385829784233980061407028955139399965491180177542029075122933574194651428943936591146146943870596454837832853506935766089486562759000411683138093231295658295925179781676908731287931915333944340711736181286319290555900154535031932994590542624046832142494093755906605260618818333674801156955801951670749119288479241496455760061642847051315997496803041748162019532528275563558289423002691687870280916158064575886443508064390656733975408478033550441758042780917061642164017481807654236654612296205544455861225916100177348239311401743983697902567103125832984331963217606120312941725956446285007366831593327119973154141923877581444250534382736225161786431005405423489236293301226429145519799856834500036303375018030971340203919454994173915732306666208981977510148131491896588453664208539605733616680720496917069814199584088549385542855038249387661008434395742359800321420458737456367134956165728691775547656710154761714035000730006301623116047773000829911284465004249807441995716226330827329531311617151272735276794902717706329474187473191001143018158962520472679357524007828483720158884594730147143229608360999667060722157494472310185375327191644472170323768186040587025284021204624308191947370296215150248606338029252509772089381800796830670515304586226723584005830655803230321216062547757909757179847197214614215492703395097574381487652966391812034151564070402531698709787315357492473416495112195699911162181467147235364329430589927809755842783656008870110070006359845946988141369062904099597037075978213289485714911246111239293305635051377512014225016803476450057358519694694428718773111306799317058166166364597377070889168359983446394684696992183303289865296003104297820445327196862153123893981541367549822747664949971821049352595090862430291130268507703027062628347652862522855266713386272639234886407888216292329367288683357218965129511423888453541550644082822815168550597156105268398801160268386624102693837152531697601224388486741208916790948680966881270757876453783221246600088109492535223272228526638556420559666919547151300120561244198452215901270447986362362114073306108969029271573659208998050695544356902206854751545785810674979320303700840929708656596407886510258821499269789971937019872555884850234471912967593236406036758252322108464180568471122537348343843128795604974184593851992399635185982543100500859205828511879571567951046363184284091385141470531946024775858734298409910338063843833229828438206218969283013889654659553211406420259204661252760187014862455160715045397273812817983340606798525838710180104236754704009539635045258666868219045196623814685131748000571891930701048476143571951582170365064046911540209052524038756263232205951496242850968606167820650670864189474203232854434609845365072675970168388896820027309023829402938890290953059669581571884728934922564849836945920125709249906913879486159937444613018619900594772384282205377085810006727836345978752535337346299724282042586536559467642119325026609137184555213795317893935960075096980683661069759370229906990206703523858638661487848175050922254210672294934950307458669586437068097583416614065288890175176017152901681087728179303619120429241642643574023190061760716758231621354389224343396029556828623172268689793841768611562473851117467984283255091932803219957607638208057894398874162714869341183221105871060646749101017053932356331311933648329012045623566603497107518492987350415842828212395525117058271845858980928904359966136994546584269245946853517735412542317363875482135950236427793024475417870236241367256376589927413091669305899908371742730046303620930494769512985678453118728755627546821132468155333425314781730024335811907591288565378740700462890851767931521305997724334072234752655053273657969477472502010684232926134446129318684132026132875834823833430481896709717810643413281867760646283867961267503163243244131879910422836802885266374351606130875474039939392688343672577128031460211670834154439708044762387328965020414221737249345223522410561142235531837687713559905861850841209122728611240184670606388342613746092335740234097238166487996115209556363347144559584911587655317528259968209709535492664047150516152574732918329116635666231650504752898557751172293286004784037762656809969921681097963977648504346551235693493140649864995662918132865872147879089742271638262670926073171402404951138970863348832037851781286877608388925356718598912072280706714022830891063111207822387413088493707554938907591105138355737313262219156404649406529764651845437760344249339101687902001141218717000624927876312944261854795689624515155040520888887131914132071715771575846686864148017653074380008679855613259024950572702358013979888944258053750023082826217115838640006917401258204400303939998186929139053081561224098949038381140665969112869616654190226673956358151205633595866876521715664650036119897957419290677724388837007557116850804620699034429783459334119315108025619687822877044220979856680024025460747228302218339954521636634939738601695604012641134224528839643812748043022032935782719133461488963835330301266646654669789554688619515071670260152381798625468320140879941670581141474332846741659504390787837470002624173392232913138296653107517983213567686147011511668270590429351496244055779339291664386335132920683876190536429815733118172975682393677856181305716675590785516523350469179583175981303067090669230682142412573756918428861162884316873859106560118919092277950040391327657694789726090296370952684144863627090663785605507558503792299198825268319158525959461278243545355516720747218903183981084857905924400467396361288910852735392485015265585373264734629141185157073984869462529717305587973714726562873846071543265565522831812151741550077701780087854391720909792336133625635973693079564436273267918858370094592376293890453061226644925974336886225392171922738885001424527105197490679561754440403731853396980398709272665189381374254736332041931124802236184611815443122562433871110216537877643486929292523768190200576627125874494455814161813682700179853283185644349777665741742050021055750859801332777949853130804812233557726287553971831199981109127258265742852080963851040713977117956097112317294829362236185874894803926384442505312051365120998392656949570552086308695471314433485180253184791241687349066420087822949585552434038430548196408385163862447093828354065286698413008524356744458988316723386907335630136027673824450604236622652142089712850068444450156243060764954759160779272963206102599137221982308359360727227405950269961733923301305490819624823381072772273649345942731548411385347676077031708723747027841437403240456575749201804627620139514134968689190218111946177668995922744143618129604987402437865935792292317089871185244450115086008857733936524687138752023594500930047150084931447688129691996049736436935449371689985335360139009836020170338109316880461980741767297862528294962537753323138993704177496761912275387950259155370615944131460152586033028256290205920306496933561332747948107336505512420477652454107806816318048416673455450222617913894681091164374896727998864936103689916508198188447597590039023674074207863159905523705468383237133514472873510868954049878192320348430685042146360782030700435311447638236445791968149348039426542546334931179884990021810250424672926906793703484234347905013999476322691187076271674275851991631518624641221271648104654176784494442827480912476645346809132332183561627346352850797519924233200421244215799070322710614010398956440542683361775299466598546232677229091977048330407850783390531797422032807400209845948875857276087422507650784990519752957095547421783643056286430340601281484085841864397421775730487583620250632299163533526672333938756141183053352672992421840167164058901301091159890591177505050432030359484435334392324795174107872765886826751375246494506497215571718962505234946259479739138995308954540920998553268317008534015534514319101296965253710312069632827731486210057517385319118561206194222000467557011851762461036128300004098294249137875655869746247550765230900212799050702376990764201936502690910271427622930480957719283892964245173413915771640506684505040746254220721898660936524527069717556654045512000043116976230352428217044384381336058960480457852584236431972799270117068608310216581420657773363589126756022856325165258950697807073131693744678069875045672389810536430912571367494364795276713040230251680605729391266108780323886343073999840947484541642851020875214129934930395890567587153858320482297830385710445123412725532026588485853057401248147990835692810707597846384514022626702823624091235123002730256974296242539888666771471612197507169953832592408696783163246098113139149424529911429185552242208491680857589844691352639793812085270966139501770365127511073381924746041606829699648133417313770866717712217950453648215837050004332518707399688873467047240140776580139781479318341145422885273060815980553685087109745159153555769750264346727113102974214479526290752959487096386303982212081147120799397838948126379443355271261977182457843363377812486103920047050115059202351203512914841191929314023977579130690191036035404937321710436723689691331540882681530803048495768571598646029004600107064137574180373410607910131937737991178447872358784848880337933941451701565696309678525948052483819054710759194044031139343853122457812240639387821115538928252418151520983799660049374038766514260018199327259860573723187472732142587451147941193342655291044614929085570186547329284252878685955406148704093550035660538327424049445332054439567953552380135661239629510888042168720705111579610825824763184674633033276338297481023118137967821862608827110592362983025769913350507172810467652327217387343869169680862109197115822510197550790665094403907343371485672198723180773610451181934883015496843383833554252514563184359566396453486130344630565610096737076903991591370303356556722895207670702299656924495592915973817393661444973036220301605597224264516628642031935966525046624985871809886136525645082673879769278535027693965192337947965315467620056812142222654768362120532683959483957996106143498743330933579464799082299565540390278039148301617102860467818019907558250412780602727858191909673181101955476940516597193513587225688302215668954036180871106130729892530688830313151746146930211687761923818501158675226097630473528913650208952751585551707143713919178167360550569820808584509051648311667706452553841606444664600807476993560945491425670812753822626908366272777307963749109922093706835069436697057884378233586420585309705783595665819448357434992998685456038246847628604575798221007690394340390860354230947245350919509058721859710409746434026411410364098789207544944919898880032481817525466512731397714799065842715800370989409817105674756193848670808057115024412865605827616795581205611259126310292691245497239633806072230790921534840461038488651503282955375571061016145203159888908984628041996288653255568106380824859905531442565498336283617345426443014630390096328866238173826252616845178829002266711470142974070213449485190787333732982286659514776431388055757699823974101571339827859927276177491550024101000720503544785897528738002186225097435484764388447317906408238788613714395862079791881576207878985329387081634398461442244795823035791438969182405734514247890406950587144399626898240532085859746734899502087220127585369811240480857916846327921529487185035472514410269488401175770871921693686601371459352966844637522002493521012540263717477168644873147833782221825293590461954962638030257601720487193524451685374172118141529515671264194117154318841881601558050135088983395244947506169695862497248209080038507819254705357655657706614681760835494104030681657049852923501878154048974077568919949053031592110078317918016480781054861374520128838111383146661824948134150786998771552934673647570458267183818433442693799701689406708795621963761156595900858253809908600114926551524980584910697240992431981538024603195358036685228247494425762488204328958962077257355629471924417369349368309061085224902187394231393766542647890635865116060600931991688062152600251281379864293987759092799237975598306257173893455327875202311203401311062136214724102816249146347538137366321134069007280029571378726364494113530066139829553970376596478688158706130841553089775395778143028256189256100719488700904907275582574002733094377941381302126147053447777002091899653450588341191454397239661533037752140215082506487653653524763358460373650518924363734361132805665158060795321790750496569431465400574113369711810055119578548392205715059057724138324647567871262726714823823878925652089276964468575093357866001826912685143700133877928309792496230177062386496101655020485886426783728736369459332050306466777497843352141793173478973357965724690369019811142046926825132999969237777851831689378645407886652265324999173662172704424398293313185331577807038934174605009466360617006289775286701309107094240160951934714730030235780440651934775344779700202762996162318690523045560345706098199635772399452102244811008056851199486966218325047891983590778977817883682567900623427800066766990542155192478122595432287342346304314184775937619141617487505557712898507594002572473475795805442442033122071298925528716344981490844782342310677186717548450317761654067923046210651662964216561923896323104299213862613094365524144196901236760123822640712437889857447313555486143910086255941047862134569483652519835116295747331625476676534638433241158795473846757991013996652126864498598727763328244200493928542424407325615196681491722483724035952025900798277710640816700494780436874940959150109241165846755257855899050212578009966406348689189501581917850960604450283908505424589797228514545374490284937928932811473123704778973927008063078587308429038892604895511534315296743450111869969150219979934419424283257476940800290101378058387609159244480196289761582083021446871534369414468583293966822295920058156068129631768962258805700450588149304006150575125623734852152189183185490125164091770874838969500338164704539707194026832881054944470396581552995975298468055538331440446080482399318361665871610052663643868851312667957487226145561944921482874670451722310108478892454304312554258958605074383668508016870094323169204455376646627684322296150201175050184523287783375899298852353616877358478554402216843520334629063817582874922356133065766165528982471889935517012928824996079443634832903124767797239412541911543960028524892345962095847274630266162738445874349282869632289824235339854617358866902140366373243072765162528239667366840577088455868742028640307945851881956968512347484305139584056354574736789944109311970208743959076290880698131248899813815875516565402901589538686346979960127622373320363530313555853286046465669159342234484925075143659413941653249685570549178418802790627115588704412231228072142886278726521947155552553763577987520130616737354600922711853496815194407164872356747523704647325338069608380208225457933345869926536580151301073397249752783402458140844926382891546682455339190321729747639120900777841061510737641189234699358528728232385254667328414168319620158036974328245070342170470257365656149227373848580870639527304020657437398349220150247454340683815823112589031916114223632416264078801412759473181354715874117371522151449369410072080970349010066960983530874179761425951048135868754181855955763945640904321484958292221486335464296444342312008675156364904325985784613355412524637848314968319230190783899101001761605445448515213092821005687729351288059422874474879793240882311675470561377913734924239562212422409849232609417585436534858661467038220544718771693107697219564098154057478622154991351406549547547516888690518630230720369254766594087669174214482195115893652061656774682170250455323689057533025957132349309255672910756687341593100543366830270483819457978654129392329759720788920181595968115096031691239325853064593702310301234129428143352125926824994926326705185344821683622072272300575776053644281036907953243664663368481212907531144506420329071113169554612720324941549580399078986264031543085326938380175930345625671664452154997435643238680053669404113911554180557318229087398274945991025719862872190132221163981189174531361911463895616402043540129145827506125279625625711580060639595132790935858631963888725979078006114209146215246367938395665572015830593140176779891762168157740872821770327459970508782738036690448904752355773405419676563905488654660454114554689452109451593271075082058953967034724939546676456841164552271748852955913828870108265854584121482261906736522220610210080329622708253899332594600517405738946227730430626208075436613011819186403841156622350481988321581803320749780626914515569938619958408355539418126502380097082846423314369352956601455573485424749857386537616241435180556079773029101476370111820125544142627174209826335003526475539830778070857395156694650616731685836701379273470303271951220533531040240911542221433492388280057913754017185571765317212637322137906362448179469998286461118295087985235581137962908054267150270243983590484197137306894377530092456120386541461514414894599836140286011238076801545073514094909605308135665650386517912413856395765230334850014547382872346546206310783029109238668092064499035098040081408994443704318718221509759539696851991631321737814387316733683707820410282722610835118265236224972436646061005856339355771539865468685975017983007024941455959784578384151553425166386167742199255137263765328109562663825158661094084790682893104566571347860144851188930175155976928303819633982132969047168116648622763774336009182850011808392571935247320528444013083826316577101472614393845907395127080428356463826344130638322047623563983073373376363589876488474502143248508664361646591512587084966816862190650036052808251703556109735133319673014399498096583422858708796317367727595854550558356307689848161033820850735538325362182861411277528463598781637041933305576534733825035860110618580815115224722148078261746388179393386927379262035992627798454892712746165954511835135862200309348422634130695590672844486392621009459683012095028321269938940513928578775256495649265621164758970333664292040217509615906435625482198729915648485697242236767216646534211002620915197481289661451430822870356531075485098665690029669344116402430763859683454919070616915909629747403244742738999951141301427228894728197407035941657402091982598109950961014132583206361911407522067138202821509838307462592067956741448131040049964822314473066471638585498758844835859864102498399728989233076923438942175367199520227411424962874210343133598729990035851581473216613197419267383582043018733154230901807559066931427831746546620417756910216189361136178020827898564202851623155468295572537004533873565728042373738312126793045921629909442264646835407317192037906595385940496157596280590222245168619478289299441859428052612520723618215727759797322317468688800721998517798012617244225667401627495999481649552848883530020714914312681090114002420443740217197230465556376262868828243623608839955236051473988408366988938478606348421694471407404157450144384615042409971094808412592911957241016685620756120123571893797851966407171929560957830365220182542709832555964809881316678293814846577296032188451009430414961132158051855438642356988082961318902155625039957937021465464831788976495234187059411645392057187649888375270811088120581805817837792631947855135372047424642058765475768295400231273588861004231047137398281679936878199593102628045105598616030610673845587310105872308480319068663831143193854823349457154909842556819365541274743277811929690300269055795047689394826571970290088237085890884530573841164838736585730570070291796513943524287730745928878643510570405641362290775693812215794991063521596090052028500127265668845553489421318257051191421333983948095801445336775885574001289773051961225003181298607970073581927951745190734674384349462469190796366414502861557794893040535605005289160766745010095623127699487236832616286154776931076870044584532342193414265539675630707680896454096975327809089907144905628889675302727333986364299760403544951555704189957523227348713988252273901481756018642137213644956338993591106197698190137215770557710214595460642222264871758304173850816464714657283414330587287549678922978801706379988974656091997748534260185648993378246214921758642391587564184645248979528920729696053062098716385809983670913753954344358494835920839852681850237125908366364836082315319643560127538878619873429433334927126121768082470088726442860165365669894686158756208703650681041376808475770754139990839489184200379177403868133171352551453510591827377992609777075799472661003200880641277717237626965502854164019396530738807040468751894029342339241630472050663497647196945011978365355218525271538438584640511219122797580772608887208721980108682823809093944181628951426386504190980476494175903255190885658722358429251468760673306718807845534332599502839209667446771975445951784674185215631070151676407415698050386538481584435317082033205790453842240817019193299519578893899166264245376912047076177956203081570856352992413647641107235192867611226882150530214297563323856326240891261185354090550138312603376279149104947621363481002598605967516216978415868107310561073084641558174747464288811461692510718485607251110740261627414592948350017644462747415455291723385348741808642712266326248514007178368470478479444680557442952735294476547289314916644336284349953394408907190611167206883039420514722522485840867257741379592715587056068774663071042572146621655617467495501608286740312744987951405813750279735410713891457299454145996195262813966211329065291636158762385685815114174828377302925129831128044459008334192424266836540451499654509561112860695900847401969300040867326598881006106956290199969486253806704670490329243062701895373383383422371169596391616305704064416004951220051890195355536234809474073765002807096884011695416099807201793045778802188855239925665428077540426230543349277006913513678786232976468817790854925856484185320681652892465326019520112847329261174261627530062832794285305513764418077312940702759454356069768745898162803550079067669981515332410380447836386477680359496060896353387794559211163813395835766888823802174526086844635754102078683368056018675309996878746990986043796537817729721969029639887277446380530947907852902423607201467591925037045675086995963712016416480028198321654804718101551894433742983708029026731935717191027433302704697381521034860104145286661232115030529598928160511001411040843685810059270798167775505462169312540650813371977833682300147213122737576254282658981536405697140217730128618563405312026966667958848947581195528071742328083512697190901767494066374695927539703495799121454520412656418541828986449012144366483299436917660980096194139093024133624749291047516798984785815042483201329168021176287343037617205607187673766510063354394383278280611655062877305056656851640406485087948844063978757696615063293570943525172449582507447903750666978419775596764062396125735028465844159617409304150059664300772566161556880434867766612403553666219706281958230485384498114649279436552310847257971586851282907256694995315122059002315227782908746302738185278748793089665465028035096203541558728818710760256755046394045795304298981692684313188628298649504806553776210270330520107181710479248988265734807705904302420312955192737773025904155161979900355219187941104970554068259597558778490078076204058110564680536202800139841156329500214038275696311425146431713641561159594968051515433840604546768685340183292514492436675498827643769678986294792074974936170128328323219520062649457194289866631034465843674278627032469536865862543037717086992315195335232865807020000827801298977306619264544408612783281539802689032980369838515984977935985606755765730210135302091740648672422370052304788703340138097373396744924389783383938854984618606802192891240854431516433966950291717387675161903710323324745214790013893445669130700828415535967464959165876278173709579364881031229508180396713842819557758997991439616202002350263387601860831729177298937981454718544232569252777698844209293816840535772151222810369209729994554551173562751491346066297880101143957789579208679664176186687133407030928578479964616586363937218347629753447491549415023474856898482696586831647944668121361429560565282784154219620569787293117240536766288374772632780417519906152531968539464076267864028869028853445406944708544707919012096494661064389413170346746498020363719021427240366502397314093987897646064195160355434206903603497047630201695202372286498536405309883006152556885038570529460584779241381574194107256407482352254002717252020484232018303599537092931176351575081788400789676575946763200908764186667602637386376365173865659506129837236524904515775325559169768992746401699925099288301699145686760671310895185252932911704645312238491291306099613168143353881571470924128657870423391135614894481809234464514102009121314615793417623336858910675714564335200981953906931800681988404114919901746079166264026407782052019226555507665793157033111219869029896415735807286846575698924676856309269369562805082438186853496493476492256863928264652127589600309837838979692819542990463079709913418030188788143574599083496214538738020593845715411362934290055241403184549967366926536732241726206594276604084901667470694768608611536303494071382866094743738149689700007121588222189277501917379658105673121497750393676645496902967130776413369336214787194941974815698037131473297956567344930457659462116587531486080364064525948228273493771351899618304181544441908122300958964560771582479129693416986046889407016517583599466811099340545075960391697602633502891252808196877099785135895402480714579577665996973769096168495957641501900295437874960647452655271622263883103613356257434214177133980874359662100481164362180638576692129409875831701756524342782560773695282889084722026520278074553193229842183764100406295106771901801509356062110396478206068029069143411494640930976556443071289203629391475511368833398252129275009124352735501033396739155557126818739362755704463346862170329184685290197741823323622269123182444521185920691949234119786196435433584163490584707050073188060897067910652604816902429897900143439833105341097133889170990399750863361841653862162970379353597941824724067839873863077674937533074309317203426936300829027636464018804663077382817902336340132695887543892154344654995966008300088706567889827163156773766211362951325394689292289524419553079849659274889470447799666067575340509378213114702904428669075036818266009660878913300336923754970131524205215754031739281288552466812602211463274097154845647661414863976481606092938378494896148032071078808273402716516612147992047467034494429650181601857467496062049216834228297267622480596426991182488405878648177640714181590987176424715882982167773645929593717090677802425200799317753694319410894555559776436192114811333192425634001922495885409253294262605297214459759205106544959689576168429055938402419075906089035637992214148376147897632986391455890139633611599599070756145097947256545714029479308214313630382276679444658381040418103772704474022988853133679791762753035794053297614025934208233477299699311742184720786124007678452769380103003734305323226714929170970428523175075072523167803224118357759639542573107004531264452355521693774454070333689111702238114833169656066474881454297466983524113351006746583601461636541453734887845014065237935607995431072966912047566834048898862113544593089698130499990132169990633260466678625384830455168203428483114143302457807144304122809225834621796226498309064185557062546944915516127887097975506097405400366669593525526698372354907859286495927516476984530696978356527304425551097222906711268717050597030988281864423910697390725924345140995602415202668955783242062415778678187077294131327827734916561437468472240516193228966186245550613425810169450306037178538201021770275632777767168817152696678530445164335805227206384389494613599760593418873655881313943525197962368268032311030518795039886031893042449550642562112073767966409599633067782761552952456943454059714553548393030669960935241425573226826981095256787860553467626390362796562775251507016395033560064935357735428427412017778814282202212913985811616501063893296582225258119831336594791763705128970369570767429876401581916597415117769384309588676845683465008704603162023899234805375392849559786782692552988531985216050183360298056995061809560521796944897261175014625824113377906874031759417364189299958511796995760563713137003598509588768651544840299605149676511683740189801551456959522078642683852658367892607574350331331580063081747789969014385379307735015389996950830992837565333185577390184867257544772205842038343852267073619543799539738494847753660373759489675106870718075728737170678400645527630359941609637483166534850543496370549694303482106338276419996685476182232902585428563995445163874779237455026106912361849210817140844604125834495836134105151075490585467686865235343598392719478259360394227359539998275614287915127884549587992937086588666895627701981209270909715526075955180387282089300304882742499105098519186691715090749252781559575718023701175390849947248817256349578142993777019923397961796625854564074740847318094729123227403021124019624358367777624879858786418128144193831003048370764796961403134923618860756438647207650152773247472222380773737009167335030959698068068666278167199662682781592890137185227549877301832557676957305957818993321226867775064827641702743950892396211865024819250436874620676251977000749072580014696229133981724584055314200450636202816151382399639429480381177559251830669641421743538581019790885906054646611799987204598599152934410016898301633427793559829859821821066914745037742904053363088405877286304996926654770630202711692922654648968378055483711746127736577797830467917114098963202418736444329277625644967149482276183328158791223600590801670647628705890545684694807175208748055520780673361178159322176231453013449698547898556776927730858063266047447362452009749061200250620928359029276275624021832647099164464535881142140792033270877518801785919053494027684539249228347012346247234745606318563271133083293933410640972009623907888988913624111270792891177747454567315111518754263401700324549043130113964854172114237611428447456189424646161054492084415899542451341640666602205067613400862949257660070000167399291658417670100903327933357469781413935068040017306085649293929801360819228998006800864574868906054468574118744646399714588953991188356053269614951451136080164547386187355277177164068542612530508875058372409658635662466951486315686928404022370102706129679193114765442372608954550338496678794604821974222924487121848475433834334520627425689967544237745933528075765752165003710519308119088379873360704626728012309776746740023001040615298530890094749342363733921056402847887604814869217505643061228343236512591603900074181429960466906706910936983599115941532190372126220987065385440340429920282928589416916006648612912704705519774055737934323911171932835225728487108724418916608047755048377271106614862323189430142940668431405806929614078735062741626898642217025969772817304046386039307290393381788404082854036559609364191569848010948085686346961250236396829971516282397840809009687752264530984176216147517802915262505694913254489112637725574609783649149025622183168730870184203680344620450411759594474628172598070191055337858614017691179485503553628992843680064998629693000123767869232730457995058431263839150984183376399696020767258693085357915179965598859422152824189406864598574874546939202834569512209976365457859833690993934032584468176926858488388015976629183112743265298915527777867587824428956789777538482033026341284333599509337415263397495944793862438452445344593109566539626152128646630363054460584620793914272572212941510537262053206058058611383605071097408630200793677289410970946034229006391902673481206168638798145567329800254519837857203015493994307011292344212552177485919969701429259191903961671344422295276593116502969791472054983694257006690036356629559104523359627278583452077443881246967808625990748962852886294891578302198843549311251034678047682200209754840273664258652229033903637355225282109186456557969659418033043647771363522903081252808393578053057178505453820044095382445569536086907000758068891954204137438111464886413503260007164813605903598684061199721364405757840524354752761944115344440200524262343721982075330157784596417152513883401564805705143530865335795760646394877492134046025674244510393647601448405519841197728539181177107134859204988105570575933817519397883715988113947414576118861140539830262582061204581257397073777926545900287268219389466371038032609858679844804972951018113548544301590439590661397478216145287876757643147797560566525555595517772470972957736657721036393899587503182531085678597808364884439091415407114375372294963614551388408953372482979505981200060186048635039086635335984062484155722028086414597215535042887240478024651102788574122523078867129461841816574872713672942779747218081689554986969229157462765270513173474155692980129379785498524319964085782367430028837148706889179792435356300876916521420487600858552825264377394266059618885285225497393651376291263653062610270703329715078639200448977966382929789516167154223575840441983471288867296205074840518223709772080574651782491617684004614690138491008080878452312706925716101673529203949941067765929336232168284558456563157577202540206955770483630343467600858721482330169261392392335023116276957062321571397379115475860401439155024946626774629762664722620489501150304827583551612422711019227504804100195562486106795324914890052041732456866833661800586397482889081294103360842149241813146947732360502429187233402323322031478568301902655368995309250841315759500719349798041163477196390780315794517058615614374209468549796292921115268693295660756466932134891623783219323980437322718550805034475064867008337087439917043923806049261014123530892160562324708658100013534045820964086566127928985455430306765473130846767653515000448528392417061242761903801664008778648846954081659584795919254906486012388986063504285195123869495533490432975384438571203434936785998704029106513766243813234449597759620853451053564387655179893518063454009955042698028992319427728301958806779454052189521454588480856929227098099415644601379096593865787694673586934583814436006889621294776142047263836868081759175991501597967653605772511629978280242024550786609771285289340742411957151370673495508923267785034121624620612136655305739997869258973810212451566941953844013039270123996209945099809355643307330208778766174278964112234125590814005216683937219589904503430051632258954997902001284917294367741105277242437389672227363101754486155850931262422055102875542403266839110690757952963197682459917965665796954631734875905831843023475360813339052222956819714718753811001409227177248352487476248626619712741144585577636256882022583217170547879720549160027112051748680891675444429452910866622363426616917113054102155566985121730089018023197296344232240598367732307826878095587517015820729624788708962177486087733214807405840678905135269396365046126652311253191848796052999815464007097321208414267617599699574816355971735195943490640329273423435886664415493686044271437738084293722166758262196923605382647030198936780383871967085133326715355537800978410075140707793461847801767047868739089242529779688560402892407586386941104424311204444771847255105958149344961260037709901093630142967840603583101423254098553447932173949680952211351175031443273762008259879089234879979829955484888035573468415244308698721919555046559246446927174142310428010798431086299125976149123527279307191493393812228960552353934814882589988600694061330541587456818428457498441688601969431058586052773031350550080156007895035557581654230577158607905294353707907611806061982320850111224301934658535765672837084547471125835908204775913472243996437604533747425486289531313587080069705579621980155008326567218822681936360589446815800144005890132315065770689769713358937396121721107834072687165021344568258480994995026174626137504676342519409193221238303659173313661031280166430857061178856613339950713308063687114549463029065947271953175460567838949642916229077768906394224167363099887807235525628300932847070435728033598732715634294135336733311059564443749901001899398969278758665827919370251913608273304312007018401567724926824559321844418093228777288796126290766036093187848595373654599798650564692202115913938267002338948578915598118889017600037742122201590356849378356772832797039914606064868315324963996555994831048207078619203672298092661607251354922507122977711280302281454610333675735732635324048988582994075132049850331933798039292885750808691448138799713531703806720618626663370595672053851137723617236919672507622780316595972024210247053794871602174486467843453498018794280887524740076168895918604692793328255331427412264471007963526470327454647569834139836353562423861992718184620301052008477869583976978855249464776819404041276805144154132083770919291974747881442233328771094005407758268674164569480276804369855409342131305345124521183586179656900785866307291958310848761995777091723267278392870692126558498992140864375972736315711042488062254834252680916193461561069819719960921711225229417414851630514747611081401695666784006979333958858472251972741034853383718231487940310344533388379009598684386672820934347742513480610094603800956470974344725728661800421008981920488499896262823941954176467048207886316851555959498251364045134058624267888163982896849867388533857980804706907184915469375953820568816232947926719975646998764331141569452540823492379066073649952425362026212703569076132759495523815684632365437428934378100625694364164257273598343032840597898945076803442977447513745780129016131742417481713846976916398247235268958396448324226521542864710702231396828517424710866283589412156790894100387062180037665560134935166431123749967011853543699697154384195065208123488790446582412659290090088630578086030357940266175230371194951273145324997714342617459181496676617958021580252814890046541376407103162903643713550094589673857859000280575462709733620197532691890590245630329141464670704497468490013271088631507862495558278024281007350456843708205245737366045642298515357607035192563933676588042560189468250029323972802961124647735855405358811396134065766325582063212546459087915064147325493265735716417001610790128616884061094860991923020643508783975787251699450454922793631242780051819472980949011197531660259498791332080233406080678998015283484094340807638708248428932131248953004503733355036495885292386414882980992291960999457537900489703707541944791719311522686083213059279630526662291380824384025894961413765650420941984080442929766634832767509573617381454086552502295327574263184740531930996784652875035731573917356604594559370970276444358480449918087333977856236969070580598881767967436963409713366901682689729747731847420476195878288061096433348033527361205289437896410497700475583478236947751443394995608936540774556596984175982106251144020302740276680006628014003894301137729262198933299875544702008776342219321398300533295668890924784455909280580522802326977538224280985920249010940240213679589046785684046588325487046669480545910109726418422655187990647178170211172145474052428856643069700611879688868445999735905482118914761735231526489378901959666686072580814343947722369481780950614541146165972391176400747853067101364858556667851818871659098428686506391430318633999213743984183427339269336414804892172832942762016544820457372429807426501426304257602253954937200104753707673151358683880403317179301543890125334934412278799525494056278049340694992854179408419425651817279256856780464791061422599153944775030491429298569220619457491660185539616531260493916062785610548873154634388053870445046406776782986699609187998237516861049253938048107492352005085988335069373001230955934019634788094415854799943998942599938775106179385874047723216449841478888670307636430600416671652381974968120816646837654725249802249109122649293397990277285971717386339099484331661036186783083014618145182005561881401291192831765402182028317151148102235501640820858439981908636971084381628329288355695993284193221608541157919127016215980499772078974842854540998683911515659979706372399966151841210613072636477028272986260115378284528554292683091493047972150152682868561277947084285832970644196166945756857376677006137598125065911128944071905406174361469692256922385306496573760681428511483023641715786437149731551480978666072822645379069448796980384904188015690734702373160741650583098099026313992117374522089069896359360875982137199802800422757557754538432739340886407430067123675287709848387676722760940146185039563311500276401117849637193564407934706419636934102806116096041653741008440975282376905944501443908845284769311681708418207457694160696678372275906997984011209673306201141104244499981889274202399632875812663839612087672621213941047184542629976673966328443964115639030896520414090732010628400563017272937517754588711825419860453741575197251308752816686756105178654841988766977688494553582264983603939993838983385113478466614303643268834240048984882007234782918219913146025329035077842756069197642003265025766468018712819523346839018292988830178754813956092571842174843937446963009941911595801523240747562612971511248081139635475006996013520536001299947938175485969098601156789104309952978268836376710222495031576067083655423658571399471109608959650694432826598034192963251712989960060018684209939262364581623965464914302758115342063148365690772575492428102349181105904138132167276738678365578739146961880504531458643539689258622638036934451131372666429272971766573005245303058592296853099464985881445363740005683417155711033652082948427709075199721220537278033186441669070197757015081191380208803811567760998755873714782069964492624119119106482671086394709028130799366163100342753948400571396017534704027141045445357672977607190476999868345581411914960922840640252336844564899890901190379304203869159555099362988590676128583880991448989941986970026329983810626967651242105654082936001904011367497816157053879869767745179507803993975100361305648911302166158006612609378631463786146246705732351290115408633007146122123038755233016316989166000622686337596904870335546672439305097746560389092986905539349065473764492731115954781028689363686268259669337513604535437671085099693961255276334919732010389336645129114413695480463522932529374321229738218791172209615390422924766868813065832888532780560761797547627458031091740693923344373007546531879583257572305136054841038836096713183478274096951622794446184505568942040764630257113231536319626898483056230477489149608616186124366323372907144481907526909481747720358735675726938477516775343596848697588240525908905371491899903254525039513579643677245455361747640345922957995028897324926521577842316369101733332029911138498402568037267016474975205641398213528704750550462687366111755197336413345569004023322951036818618010126856586611577333668817012078948570741162334930998467947501633950025099195016432473726460791115863344542025594174821542044191301402659501682044986096686950304877407044949980754733195583230395539896623488929712064695879610484185902702001356807161887243543944073403344971376543076860142632874550939597228247615525670984440338451368394441522312820228160183923408916965453868703906520213082991270602181023369382914144418366969462155544131490070955178618494452567814918976786786617122206700545734837898610130861625651517128058799137182173840225481351324563631197250589994249719973039256796321495802100167671646365265563175973616815870255020479797999875777550441903307294592035592072871676097964086033389031501423653866227529681487006380475953936851789319042956300004643372540180003804962760011016126318575838007809928979296393073901045968576969313882234330078502794749846464604477803171724931607047895320631671257334501535964874864113209433101167986037576362795247182355739866733462718201297911257084168555029631460454030744686293699491537542839704855215497339194329773862746000167563448309634347542545006297875213012851811067747078107975786026848863744427992525657230548237777456712259298251619241035499589753601853316969282772356740467316325837573744412840551343981978318241584691945662652423474327271495379334890546519982295608012307819910173932329255851559438996090894059207251724190061463405984709241401901394065268460379857731677920426816797161664256653336470529479167293467300842421547921166280969406555077641011586326951634804527958198077372168495203442528078918886351168156185900606127851949929313295358935110423662966661277933272468245413399622179167610691590252088267889001099585052049510993218837511122448541931391450921622123151879207655530291417823831503101735272623219285526456356816345121607518820424518367299413574133281079929301187249444745149831772990529024313284022215757653137489148785405487142846043851875004852470323712498780819620181934503686475422222860157313121161707544924272375988730481261650789489632747838993144768822647242744537291017630800958341096400319109068436572628886231653203822902910814235860862284259736329193989099178192128233745176036444327405509668331470652461249984539875738499948431170210643812475202496483333890005211093539124318994012958828651185057959418505817691689839989637498276623417037852346801873021694667457265154036465303158065838807065063687606314310975116244261183389718459906802043237531857689795142475404225969693830497876698134848414972630049516018971180325853376009725264464080210894967819111383290638825807848978118876568599676787610811048808250480943700945902786109473097698464910116313573952231405102587763850214653887644334235143000040475126668538472216020003778429485405072412058974337148020853377922871811304286363888363110355004315395719328985010792725054727807634931884155632711145580950602205346134480312663302169959529794184367473185230050360244545143898268843025905253558063896368233310074369493858735194811642062114349542403713953732144866774757772798723060589903562036940897028066339132806512795019694328357780499855048619605785375242769273766253544035425538756214024484626876345300394675862718745389323435642581296594932661746799207680286855179207553917001623633238401158341777116903065333739955798292122668118828767246743178985602300427848253085870681504125768100472396218663651817662503020554930199115846940222961991852996148171484418903163138266520683774549849821239811136475290616874398549790287178538115125984673117709866339953406081961289479078499293719713906799028477680894342893248182030672507452857284814844584799389693828973601391139075860097535352890436178086370877192053246626002577441697635766229857960173014835308135039705054850191603929530284664364047074709142357346404752517018896827493469115833662721839841194140383365030125804179196198773591125066791147893266927375334345985359161123577898573842961772946890249980421628973254872894602707222857295971390575855142362338162816804169605035655585193089125719924626550435414417203962675812247783490404562765565645828547479107962257286442361080158777062638670574998356341565244784214842665220752645741968738548418624751643365091103354893349108480941479842259319615141371183318491854245668637777629286493008901168977163552780498101106124772113998183779788741937551863246060271480826164599793683740918794231113993936603929282193369176873256315296099375428238823764625206794199175383451475939053012863887061211426132715840670162599259579848922447383945135291525797127122979204689421542453694536285222487974428140864512509272699716318725834122093534344303412526580138696010470723082112345879922813014722551806579561636023142111582663021400644526567189735268212363962650705355924333520402607960579989879535950544972572171127951851151864666184680317169691703079960767710525618721211163734388261407950479846942515058834669200509557717844315124189034500002652317292001696767297146080272254177829153685980150351951164718878453943484072599635124238187133929861090725910323749708095131771468764401693349282319037373470813345284275246246722255149214742210354362590556042112008720131877211846466898415571982466921769142395994441064592810728325220639712415458185483372900179545822072314244561414860856536179732719636994634363723021919326940596525620407596051971858270862553629581626343673912160062999769261528703512597847702686955237415867199183253923355642316143570223278079531857425176136710535670889886428879091967164572990875995774378019715653528123883734216479399339330528661907139888872195886304815052043010325845212415364017455560010386323478481176345398469255468698873905253265115146854487033453987185634807080749876272809620494541379260421887132572513595767280887817766152725832395062336593754748537791877295886733956685913745453531038548581432524258819351243720113506284666469578793462622184888821823820011602497115431432222407673886239128127170904998189413080445105508513287837604836766905516454521300902112526018745560429883217466404793591983487740871879569253881519311470325193487666580855716734213992549050116331752371245787856079095094341546162967291078876766160581255689774017337217939235140760716398804244602441981327586627364463663545118977573173829761349872458947904276175936738354378894641141369060184123140085064855053162937392229692103145921252056000604509410083092292822194154776460491994902405438057444294803906723745550565471730451504498718214314963855461116941453251236698950305732473987762093347429662501075741847051629006997411614287087362522900204179438498782310582854846912527670580551085407534990932037782521820513973722877122842438075381443666669498673149957618447493068337024007032714955229365936411918445388957531696014995738261517590461379093089988741348740542960331602926982285939121879823783244861927710210048574686661682935115754380851629691293695488474828469857694439433211358768142371410980253729812046368965160368711458434836798406897474109232597920498653033158522499429693317609136564847111611697604777366430226715667307762177120349975805397375016619310269382643878483945897538438089536835383355508855673546119220246855142029145872562158028763727165618784979305284417891921181935217429502058719382420685408871004951113704456273989486169297273793148800097343923525588201885161094799695065467826123733893931945773556910954222706623947132380458857562440289434935634956568094462124704210664750197077041550545832286951968904622719724931141264974255421706636003952936558342843863774257748357942041638754854400147130348857154951969800838393449985599266291259016336793892063355893398151363933664386449644389914794166366187747350613577057671381369775147021933541170679209265132629128464936953788951505295854161507128369809926549399828357081095478217627039075090708405115650436193761868231372514846966732560288901663748291654913329883886148191250875095924126651462997007667032751763197352834710980651653770582497069967204993174142718964852117384080157178109978181997352229621792956929795603342108953929446241391219352674388337547404579156620392853134382414262763898952624232544934728999614482284011745114419673222886783537002742674220143626999435428645485802498029600178491320465886089993172759386501125653573916973523163159779663832683532489467465554206623232078811425287499554726604485510117187831015274159318924577737548477578283875491528238192697920436018948990831713089963753099956068012658376838949929849395125590764893359747833316817383871378782287115674889984595872451570133063660904145547461243442626952034138672726165487504715244874727403897385848392098800976946097763074730761133203476761279451981522094423314995547890498408835301010225864868646181909068888884651702157207540374503803026063516030959073709338440945328179137504720061297301045267718832952266000193694843731801301672481746540045733686308150169973843745278202921692168274090137541103369511017635088355219247690563030001110675301633963334291048772555175843617841884934983044415356372638505500398369412704461913667956729600135380264635695713852582157413971923784196618734653658394499939725548653432246031259445148033416124184753738335574705373515039964517478379182236984232343848380843849795002568837266523092739793865223934460624397722928654666035796613628900715791927792038979272961002331154524576457498246748534584007204517682214596404297865102096996723687110242933598217468408287457208586394405242776807809185580845353209960733563662964738135404910138928783801668130544504503587995635122096982538940979807464158611695432841105861967906037300384480467365016556490016796075829512739852956391632660481258671129973833029314574251391180269160363634123745955213884548329398809629526008520328327774302214442138852872673290454098616988804353428532981311315890874858343474926767999921758033710151348565516876446338281240592815060256742323996558725122190208295608495662718518905553276747692664740394641279227458987654970331156748826767424109922629703972140029620176766808225805331016797227699537094871977581832902100369048126259504210297500038010866492505510191713730133354682587950081680290787951423897981691264816019890356787775705051470299347112146055211564135261900658084953325617739589169585841786743054623010168122130757926831587195008679975497923026474775321963072481577949875125413523482831654413892571136839975282534454434522270197217754752832328868100261223042533412556668523076072299430052018047791166961321539335886452203909444693020014277561743599100467824772472221516342096245850577705498645696355983420034420650637659802810219254610049478173719449974352360659739329637531762707247002825356077386760301751992968650520861881671704316326404258949128817894811838549929153550824527133151766428802137585074928388143104919113503118009888115661035662698909470940795046802311850986658564936210734489601645204449487773937138777461743749252041896462349615825040092440630933873648403527984005329868367183085732470848402337575497513138940827201044071145707813236392020424386053424140939099414471856951294325864084943276013597553774726982267512493191524275970088606419089314597048541570508391915451563351359247518933773227341686555862280055946878044565601402938142722981443500759076990647953897674533218222522083928471539398014988948373615137937299173323723136836709957626514166691791999250232448619611220435454797446802701416711656173662432244592879339655003860804943293515402525767620007113095643688658712403048058771460577834935282414876135051679304928397379029953149241756631139837885522490728413887425170544573074481288754677005962642122159320831217532288485890780977299478434471280147955311417716040864425429757397206072948267825254797873430764829865605048881067016209639609722395947564218775972118500724508170336490331937354307637118662053537032434162985621231533090102998723012522759370523118631531734100941778916797049399305500746449758915219703797621597129359078396665336900588608824626094743243927861121515090619863321125875794265931949627327161547588071316013412351595234584321226543919516347666117672102696816868588859909998041150596124618589870298932366366184289989660800229130598443676645843274181172432683761488808627153016474587690800447514903377635312354607706116221462096868147359278132140077878901895274199737106338704661616018007148245260476340336460161449732340055399453081781519292508549299082869994765984001017360167249753734320894659620694779456336185856039438238421340775767213432291188255770231296038559957395570434360581255750389579334745319375251669288075661384066119774931039698108561753814342426132297473119653874142129396675616164749128133154783822808797035006788502546571150155380213572719448036668926639035016603544234337676604986042902629842187504674892595141905672672759146307521605844112075349215788581715393599248643348350199795745916803490237682063267321165458799006675339723534060572770993766030966022974950149041052386732825744547340386544736978291264366387504914952487869098424235573850934330287824253334379197878941704089023447400266941587154224432685851828671400146534577395690690422602417210870309255992043390887017797665206299736470205359043023947872199164547774872222624492643307462996836273733825974971336979081043209056059344785981639230656257131601186330013765210430705137467701562999132935577260592324199039099955203176550253616929881567499926295040199858406139158038168359912078017396329462466510365036059030414816987660416225493652479969832640730031238903485257834651330710739222517899756369239878541093999122528994140385266172898058518330706109304573152186130367591104025930347206915319098702520702061774808363215435208030181643159965752869312265902425184520336913526512123613533155457479700240636759267998567378047461147709693642812210342409801517084563897958449211716463821001710930204347775038922100795729953711663772027371520363164776839758566115868869966462892633230746781043630896314575623776440320932464176140501638283210559295718612957514960220850407124016196715654432043358173888703986871051990561384918160552710028788342822846359846867071822253147728392149037537232984460217742993708513469701016276659637249511417444513460145516894971214356075419987177107199484671918401626776597889310169122929878696311730582691869010296004291402745683505958552212534887619959947954842371888986865949566418258865074768079149681366735315745160513435591467745114545180819976240053953642464848074879901347444905610442697665815208477230610989803554910885564794228528708835075662057169279021472521837714399916380032840289153233076149014660337292275540762378417144966305532393677291871341928136574908267142973907894102907224437323485471115471948972841473510278044293372728773343658446962852257739333842063844271783177265003631244633976633313944144669203568203336874587589063746510832267285518480414424941565409227927294888899326669390821011133349420954373358365637262479444856397823784871844687418425208796960357186894211077423013176126236353395066709264174417841180372619477400980744577497001336213867558234354795668160854405817793249995004718006241843783073766706257876642354342053049245674674970598751791562238258821832843771172327258360952546261662663702402317511105419004663755220833943414782512838754757063364592152547224972376972219043313474750187124714923560932887717626869433539925987442359680700708052402074952034507819528609088882743036038481814451848392518052525814743421864115759894840939625573789541358820151298272709312760292486376080873492870028702812138013432079436279689099264165213624595719127526646606066000522304841765229048501562163447256895428656019033728412597447815558425658985289747680299319611465693667759589208232611623214039857599635562864317728191449089020774985438467158176652497617537144243902945891977795890428649101416504484037262356724604748599101753149354703388247248262489373837520005677774756807431840387679479220951037752238779053136701955709067417123874349173973180591872070869376196515686025672954262234910519758808175454749815462071580103265489086374516841670221864728072725174608301810063825268155580996404583127015698817943053351211155850817179863875574992814220173023526834290992638245449994933616865663298271972120157539843712199186171136245136792078087035586092189226978290563717111811667523526494226005006297587765138993399784377832649505741728169267262439386751668560968093179454903675289162566106661826253819984146994501882393306584133417060555344589060892794018033896716480451100147447952081007397128338001361644930485499991008775458035858113497259869662586910588006676905132272655683931442845299666278703306068567222813790907365458565225771052913712144898711889051253927576523774782290279746398768157183394661302369315042729001706052569956651551179944365911049809639928495430785973490839273589110152218694970953209075566335796146175686467224264351328479125927430600214576121641489223758633566311429295048651145049499478473181830888747636975069185445116636651048923098509336891248423296250835666066407886412327774485211855932804686808278459133781448313029907108814858818664873792088079554051792587900551456423540489623253935539603891363297195247493297155402199329682448011183925649959106595471076397460243162480160286970463665641102876489189557415232771044171528297574686610339289173119087905224845184384559488958355139838934511043501339034708113929853311571600003887995463164895637364770666139488245518986211021771111417725001821058755000688444764664929917930532066945600431673242132751698462215851299946497689625766908973573489034913386163717762696368854134553451679824850940275134991950129295301235984090210835411390248359430699429062259012979580889409054788329699927692860843945512884748030305909049464693382485833410038885957269342965246409070342193767782353444372070498099112581654080518521270078993675906186561021488563849541044557635111536998680205821638311805544232688547690324964321262035903910385207048555773870480790123236059623867424697396502369831062002222126589493049421476015068264206867488703411935234556196563170098830798942175941268098686503160491130507672719484048857382021758237891082941583859331398930280499734914042957587802542704449871234046644965370130577329909549462030379513803249736531048648087669174575480278893651348900010824892598794745684294652738835500842067035734553727129407789940997511976501388501030349260551567268904173279412721413153429277939361484668238955344785408257469838111106021313283441713711796917619619536742278589244516270149149533944257486463362870123259860021271166557153968974017616913694605041355945445846147760476973142683726263602948332419642910720996902013943636488545359244444588983048623948283502550314591393617422764046907371718059098668154538665549536840274790543163962816737625913318834112032039217741574430718771660707338785842386782169434188089084217551307472672077096685919125415410542301005051711907148160419723642437115985778705890384859310787178832608103312435505313239282050731345234062458772602535925856458278030938301114263096075646793543074139826424445695812582332321668699035838203372901603679755165608980870808513548776883906491394174123983685291172856022368148589684323919135867601123479369597445161028094797834020126718409168749886117241504996504861310872330281371791498735412606373506515756631635948768374188404243522946875560344677095895726110940523448944804884605222609325483110013038011371943717242357006532464758867390898660869482276029761240836843325102677136278213829701435038280501432426452527469847804163313307130049715377574692042037149911829547258033059243138918739632572686524039682545831312789093021224781282257518665010885989997884463029999086833388438634933553395325496652914365969964424276681082453472795375208841110199843031733842739611064560096314075104344723707612312028866341531901538057746086359911389902181769737091707027382807483134015259350405950993997910243138961839668474550203006284319325102372097470348565550773966608413849593293865735382218311266927005195471476642648642859874473427400127212432506481601375569594325859116256714491805704378146972153552225580478312750526902071982191817225985147175806611731191458893289582102870858747387602373884259680100030984574070518589657493493516102282191135140849219014797891132264925861433189632090345912368429942292741703285426562143170930087198975453898293804339191001401899535143386796098306742076238552041042895487321017865197651424084591731159732437978322726437209636731219449772493147497149853880844059761630058736758338612773401598515487519241013057793958822299489477907748404530657490009222862409588470264326668642118105684064209306675215861172263941770690560881098000669450738400813178477292861635428634984733452098433975048526981498767855869312525141188115749004402649084177285829797310696936788909413118730239380691979115270268770423943164416333811284193475737052749649166862740996431036695730159940619893957437558927672196512130801709776255215139166930913450750462558018518998599467999801527498424128684958784518229061398351986745391432541984622864891820157137032043447094068369836185987956985785663743949085047400612882279117847395858430936823439862088449294508416349534005161660201647687470214908451046579052879294822397217817317047369570851974222687922187992156062420631697291060972805728725174243662321055448501719932632541938696410273304643678350754695792956636724643364860498543924421820059757640546528079020438600372647875338476021812159301572798916077852135056868504860897459364585718874590126474037909991464555289357362471356798230713364773198671182568005094916204074950611628400631188325666648037923011016584454592361295495528518652173382771939832837528284364841649507079290267546881965636310115613559795941866665048743885729990343684224354133544510056432560185418351156209232760608582122562810514081923120004259278619382245780623226451537544046531402133786608617620052688773274274807081850924411711697688687442069940426832557849143514267644861724952729674791412199505717231989902810040026623396143850447044490223245953498104597744318802413397119997148672117282942335925242632726248121788647075188318242872404578387969543447340506271611205802588504769548528423381601104525560608414095256276755453030702923571186886355237150800813249009781078608465700568856190402849314648311407971876069109798242444960935803784301937608972184287564607744384417132112545142830942495218458904598316120937315028880653433199105125501883381447196772099874637919583071609640008262475920575547264390246143377847650810625375688257647851713322862963232726714419769584975877728171140198635530946806131417561792870197938815370472282091443524251182476739281509902092526472988888183481369368112931890589055422742082728247626166050335205620372090691805983899996338078007985264283660526193509897832333838704908594450800656784498688734968357288881916464410895043860080709870229936529790462848746201638056492685563821007670418021942056054750636251003048050422497471586590218198658997612121449547871200940495897760287625708305566197676819604086341866873802966243665021526765285822975929461688257591623722286309295593990767466662005662821524506321013737526112131651740732405221708975760115131343154284835809882157152004712097776445836741128909014918117622395084592134597668965879836540264509884874754570442736610049572378809489545539894403840449784685016334105842783795766699931670717422838819453794005521640978519160988398620508050141966405640082657166694906406275556870136356191862511393791273509372287223880634207610022994516718960230256981979426706928077862846967771753213632598488412830858265433365384427475815154861064192110908505358151629330366855039857612768792295439384091316933590362683153813391356273285695485996879091766543769669369088405805107259849926821616577262974043728006462676589707317058562367187800197123622349719705050572679455104308956023753213759701266918567591647071028352151289044428379467973783685313619230725119980578648307632249555305821281180074069941435999198756116963448663186877023355737362845552729333207801871524219249701987815263797453549258472790219817074790921158398170807046003333973743958429605822810144695875706447944562940690677328995476461682131389742466899225659257571204633832783754821782881274041570861381801179162618076965251930916960060932021810756786751650414819510179756670766794159076817175368472785500143053589902328788993158999267010504634394897726446477483744051860746664372284133933077396340408019430514228687130008114298449829989803022330265683815102791636189263136734845605317441977021797725122097078916710105553884006048242850937517930304668484949116364912264350834151301103977622576940357174581098579531222299415132028995827221802153755835877647345918396912303803448476575217147442560898180018785801996378280348087570775100139381839169679531884153715958357912478838645730926230629733410941412408398937944977905920480918097492310512051183741471423652343759968074329576637676863850862349429344466403501758422060509209430105525736930943232399226995440120282758406549297379416963025797191450788840973606967238757381342630135993573562460234514724584276964718349278172150920309113719643542246246216845749316152287800023936752713149148358364655170756818085174147845995978755884519503646498010286126424667150330908928409838166496906910184586543899239409128080315249772693224634293055564966260126446415895965697682857065631764723526253593546031630558638044436047842500859537850407771175933498044058302847445680012453726213498253777190130961050231959047309913412817367791039808512841569576712030912351112291505138190025277580112837157013181862960144113793481367445543921058669665983833359143495551105381352966753071009155839227075699496798902244002171110761634659051572448218522466232174451704142626942752599648790856556267866272177406379286138697545438552296943980376615560801770062834671514059018842510431051399556548558685636037919049391681415015180890407269625866483032233481309362619040458392145808242407988466009521721584682284334004307777867506782513165742195622418995342220091450364590501326485189512770926091983254537675421021520826581508913997991084666748829102410946161941624020367055298742887184057253230661277869858027307319248184573609385712538609233853979990547994997307703526613557804222744080329578990245298296087028460173240655985304407242114476028585523801213209776506383796834710130161571327925433452858168214527075118559514858795981613992424473823485785123911191220580884039685512212139586159407203625111650774791164580862506557607957392571487204151409903976959767935870573477492986091453106398562956577874349725611879237627094586895121739984161136247638218157220223901452639468722985815155523647641132526731461494013886652757630828128332360523516288392338279524309680448644458772300473568640834098845622981929777780066341462191762215889272866589517152889891371567947995155561444731567927136192454709802400117329397842577781126651561450041335970619830499005514765862127988330745009187648956268346761915519525922071979965966874934863992869820271062736527127207994072040457493301533720646856813886391039567656204097157222626960437098539034466862589424779868104759802820380943124670922597991342183740511950420478334491604894186655483306496056375389940190521219673768339090970727010072205088767956682619626672857557859304016714190816570335637296021186939563438028297214852620460748235322958468839842117912943352421637348657112016180027784289902304112913114115637107373656608106258893777080975344775313091988235594729783867206647174222727391606316457573667499657007289582789941978972662628477025951949271762546661943596679201164810518802104273207421443382960631470924569056612931684007312908871409749744181616966676052053688554785067904254154491357805400277303013622107764064087878468498497936465846084409549759048814899764035844211082179063083220499925578360572571732772813812237107752927488818664442537497703849784751283446439421689522705869680043603563364634301251491063203893355103775784558063980455236259082617557300475057352231502762338297467511687597310764111149047200981029594462586487759536757427062235628993501139361237821865979385745174095033605640187522641908856166455068303712496929011872976412530532847800079515945316876538138957777224174161044872429212499800925593773025061194503930091254684571903322245893792639024788649760636761426399175778681585339280740208469932355013216417029988667584840250440099984993193191851500079195376348105962660691870081710845727750292696869700813515997834544129972078832446393332199380984711574869802869823893432432431175025357694051140214933407644528037917568831886447395120117315885853427524884321586332607571068636725478568637095408699120153647524867527905100161725009876247369768975467120497395360028762619957269345694791576491587842660637955443523671366031240552740015155693363939114263291277026145982789543551736536013772699871022690059597760371030977982040635837206803498938396169803045774274737626075037639615624328161067098379481597659712561212229024196560234760417942170592049473760721759916407547667276087133319454717324433442331386932870930634379550727712188009389698439328568827852214232756245629192241935137631921493764102157652680208101204958444668073750724201996532640622352703826442070756164852630808670540478777488033385203602893023320771390443724824474435521005984271761252123354996995802947093372472291636122456608464682138993258330781789779595037470343180363699541911862165187840276388458268089294643655480267120235595695543048122974997276865645686228296798358206725900616980160029749872037412531308237952502330437637455597747408272312788167210834665017136325294202557607595454151115624856067901167097605663449393367085903249834035985458899215815478539817587517035148598411156622936779282636433648165751575161782393812589384540547691367686791075210128615317196362383797243596990151143982355032741339332364101185910780697922474615935153739585874081190420881039976535583463496345001219436026926465895028615795637475436902167874909089681608535336787541538534937527405998466678801957861040327762613305774780158541486336374226609476422580159350056646339630228999724758531103108621148763563128513195178033274289501372965616465359778008522157894541551381657209147136936807975049749097664817202415765632625447341217837297908975731728516925021474485524039419823037561538516478340613138429273869845507640759809501592273082216318582290065959372699857395672979841243145223767041152825681615312312461950084117044403430832112438761614895556985107124878150162846564258261719807307833005003423178845207775371663557555955057947116460489452312643073305494124622536646734235907144467810439243472184926210289876837554267207595070193675486942646902563605918511726283692571650707845253360888529767013698958551929843408918418861361015834488224386611097560053431848065447187713933246758159413302174806031655808646337775813202063404844632058050976481545998244866920944988829506701901549280015586580748474943698662107175913962494875114599851701952667078981479272831118871542054131314371341022452014743851453629217821387644838355216031352584717702052240175574260893086417632574884876445865335900944653546516097386046070870051621196725629772476226423809130330455567352426803968858084967628172167659363960718764563432231249838936015006706021779900205608286086161792566822273296437346405411544593963560755245867102617948531732767128402906461172706347709848471708669814333650368081210142746278158264343455367480736429522178972314521780537117709408773968228547887650502263003380461485734531319314920311221836288361988956244251684639431557895165224133165811377156054131915596074789407728941563218390573511688537484490382512738108047620175025754250159881731862027606347376259949319447104630792091862410846413198464597486576858012165797814331618964882723527214247139926296217035115144646442413918916878323169245267371084108177357897762278216872444773650964578287146408426059815558187483321440123693804831806877759464903001704097866898840765304838602296175683381914724643827835305101581330378354729026233071390219020160997708046341011716263591713489546810037613014175036561056865777308386379312650307664797738323331144053047927624391182418519495987344883220439499617909020828631159812708771980842631789115912348428748885394473261893736502634753644407009318650724952693948799671217145947847380179074883132085245240306337648617796567293538637556365378403132025972485437567092830472773340433122748193433371222234344583988841621060288311348458528064701903680551778568697615379139916987331861520837871717425123997352099032459401536660586597526788402168900444779004338727340475153501173180779884653718661019838753441645041209651606562967362972493357118846912878748034892064676456534841413057101829089654644030741499672190047387856087442973069819728899294057670309522690421542211238681386099189482830565002349162945680937888593369993005128782455387063650642927353567088551833876868935954888787988492770184030771312972902919968367167820011818435850730190535565071148507820892710465268084618355776996076702781901771143849980371455431249602007223182654829674346643248472487221455568643841461641788600409169600278694513420497917888908010477303828839684302941164473531513462039117614257244898619947516808793138949581756524207963929635271887354653754967074835309161124007165796292906604649791446153031727410105750483572621153014246792745479848858659750690290864937416920856162828982120900292472845440955083192789141190338185268636931028163907005684063298336940127401252264944976117450035777266241145684865198923581207115163210121375334930878355257603877857535226802408390586992845202111916400993467114543929718912617950232078435185956699523199186039961194291927793842133314011003474476224234653610579981755050532529693959102428025271664320141642618891487389952455903603831039620715971795358884309877119879326120776028051533057047774833178912676653850505710642812129401635085421310835918349356190725062805319972891134703010037685172394435524177185255252883711520096266999105855720323613725611084321552783365569740313104810911914596686385809712237741366071642705560738646910928518829736034748882145629297530969962917436817031484002414614311101455398795866261526567300382708950524832303228779507899495907495317883000058776053003052904764586731954435659777119902896191385505203725909277650216183343970914687577836311273793772059791920384848192626794813044104009927270619666997264706695452098518281868627700869693086037353847551444156270196825863088379521748544839104326610172781712058561884174529113185869773720520681961568919408000119767899085226884140613176130106016292302970936206243036083273362300283668914454371462969190879315460502451274375756124793469237211952309426926601420017011965648431879767388272115549017005698717413567973735466156279561385777296945284100070700956849050209653952630694101172210342890471963304863292275935175695245141259323640740046070324616193651727995833450391788528182885219318237732038652568961088012563881825235037307309863672342600231223073262869726185003949405005183288631014422009053042910442764712192410982610246226705356127550647952791475994299611469810818031047057576548916545650864026996572612549504547444128024955743706901049356282791305597454156372832972847362678288232931342259938815957190499992340989878810868257106336336890794823262723415751657247463434331284809189564287478156051448564196520585842055218485052953423455254353238765451332885542083339686340800764666187103657541211214226367876690830680421959249270166959039312086296381050383936571632108795795000338855828193982610522817434238880391338579657530215784980834000883928146596531284021049082374220097750588561869728642996072448196431986924863256895292843897390430353510412953447588242233254012400493465166969332240112255327505813049896169904401032053411860551260394486032977608085690903987916091761474156666622623522951749661700480499306635632363399586672114109329125944825610389268872974051864143324056229947332325411450031288703745837762390148956027371092675601213897284169973957677797998110968871872661454660370085225101868813850333909012822306667750858772974791695196150418763734303826594261595921170866982839168684331504944723866253988097498724071599274576799989714253846031664604784446607477952201596179711219315883590537119235671773805263088176402758614840204865077374965277834482991282265137411689239440623930877444783093808254017942978475908384246379592142234835749780707193312888201331484715833399218307771428109973110609800735121866490586146631084093365342258501947137791726861546765576539761738518954075909372830145879193021304764464369466611285147848172424114958651260029211499412731711652605924630162882911389166443221537109387934335954974633357594613175866121177278289203818687095974051464361223847102261185487445833288266128878419988573748519697979707648857864198434251376795736876672300648919800845621259132019502698368681911473015357574870656720016120774879046656034238797157946997134613532712189117070201691855111630226017222929495550485761427084281506330428872446468158490650984044486827108733152169408959448476724293554344457015645776935651068358961931537627360471975905653182471676488614559166396774301979583307750350144108924376676288622389195672852317420367868980777393550162667626096756485794132277472910390185607672235388556389490964114738730220982277548839097934966618237929430491641958060739944711781866338847321157081335885773488016430707281314619576322807025988730332384680216799527898874374706889831261675835681480883417032807902484384806693158830846789259370901271460724854436690138593721094410117433079883390942872374959739758437586999404990769256436948273506168893297635961439152328997922194317135664107284538327353191865335326812429741663673683425687307271958162169525868146812282244842836344545515126750728343529265994079262048790885750271982307129444289003675053133580273614563229085886917362981701994935976806454334923617368273613892065466209914537597297669525607916744069672718161502530240154981135005391523193994820450094970822087552985430586815942390534527246378581249403096567134374091366793323343285652407886378477572590690938213742519364396352690706857003258080911490022693957006191119596986247926846198218160561602497924930860624746769327317797636351961672536932824738862146073935668188298410985281679914870159748292491912710857172415032304196544123126316243788966310027561329543432374419859889804072261280747201484035363910175292016195887478399590688278231802323998536617251086991790038588590088565624822855455978570074350507993189573130170598560829478030020350004971324941680739125109099261526306963925888606924594194298731410358307720311716464749327886246002743252400944511705394586509647683235164188007983321640500567144226775253296141459139791411405237011418919964441689895413950589717313900734632440303861454840765077969490894351437786213893970825353840401532576719237776582170796022872790874573323829373233494530330888074388127775581393210791666335735600387439780451521647983980163345558255094583437750911185157433028837149426011202019951576241911883700661379988602524940188848695778108245450405699435318250996640611969913570719009361283977410364637729117199063216472486568215841955021863349679498187351032237427965546889251000961286582251362620365752229192718580875683448476881802012157320825042678189269743849537140379420536305954288444815819171564033940673183583752864314466849653888362652235545991505097384298543371350242575139527689540930353022250019294417381305906609640061979896153021675822557250358397111153559494079209088365439854731643429820243290416315123695171463182723455076113222973993170897090771906642493883540248796800505530748131679671477073845513818382105730446816544209638559623688874589698345814989797009073236947192310050365333166698388602478640673361101862400586970595974042991103803368264214819663112818921421944329287859299166517077688978552115705786629729418771981392093092289530994097495303986543943444480804847143634130145858128114897514191578651565447521700483387845543565546248772132395840471779983662972241976372207242295193112891523968866902856164849119410206333426453595670118396630950104883071484955327204233979130669943232144720713601015357131170082177056715664269139986064850497922763482218481050007153178330171832361332490155532123181392391570136794974010764210460774586773007679626580812176846817669227516676619466759865441362747147391756362952009651328552108505466220706067593824047544251985069170143769650831381841476346289494845292463577516140417606237406566740807759549308064698258343470317258847310828553273304527834696758710166173075805683907478616845108420424797348660654395595933534827877574055837299071221203368369179552090114539494932255054645039752030988286543670724534153795608839744512148736423104261072748808746708913722620821624637545332055860584825034085651962853263605164270616034169734081674698153061498506281241609852994592384567589537539044639740305163231706120344928052541079512456366400853051386197465673762949305180472170019842630221388412479231181711351025387488263843798120365254343516335120448047873534682514566422714505127591788811514641095462967931948237216149890580628056124846376220711098611409849405265303427718865629331566639155101512548318339916988867168503908608065998853241937794483932152529238625175255617069931747672961478473330986078849566238298979011141810140136339307756318784731054537606440036479339555336422362508217420311766148467502801276617499940083215343193061867060471153132473117344842887156157523015580137984088625911344840106496582026193458444219493592446465859159699057477848962142035064930289194536048963246107942302564417672179810688814741249338486103096480012539876561321978981106763503229463341562568246242971431622828317842414368245527672992874510908542913954261825850897393697647790911241004603387725131874334363822200081630024223755248611467332347892910076662500004860839215129471171945849323266047953486182841503458864671358338422498027491539092075840689689260364064513620821532260331837602522312172354283075146114984413160637127320711229814878235595482571687652392468226108510823689019609189394878857979686725464760429239665802504491981651250155137451435545229757156634315575827586769663451922095349140625602678275155561140692577193489101583229572921739763992501521465961781451780911669820831501371629752268439065694509385464209357191955391060904024122259534264169751649785652265687817459355358667464231245867619022526325285725508925017788632296875529972005722575088586613868459052822308191344221377663960973818138332607679013709008774383841785452592659960229412039206676731809875159085186597352660781856034215305507585308353765589628029058576578435691848402047339685961348041404521841528309199501008853309741068605726927831383264703022960620658049857196092290043070987774612138467267857807877054832484356117262578138353036556146564576401169604215810438898636783310638946880326284471538566072111741678212219087625846606228169214246555172262806656422192726044277809505791812074016466512573627096684096432430919883573897409974478250297103596014779862363799504429826930343603721629717602097398827668863973700168791126947640358320496748791442573833075282003962744190691462092477381882303819269490836714245933230306394147408300074860626645947718058029641609222019594978702027816025039894568180403400965880771531503495848428876467987646564277103098505172459494657440439765992952082331302792776183120080141345743066833121763414139726831191077364428739381579513006620163975640768577049176452571573732962537583687282742326388152229597770094812622298677162424031085951592279757913821643453377714778977395252943302146482466578618707180452248928808893813198418727694511800179745869456009059405154387658811535530147485664909196935613021865472187632811724076908031209206099957034858495156326281039983585751628417348357986108107628951142253473869607822274513214780759533270121694981954340904768817547962883207427019799502615550806869475301677761837086394962218642956234699770178239372207277012458182025353596109110789617804146193096115353536486985961609291863034582000622730056683415507615510531768979828044877504363099678804565418819012012456103244050392720246987412917430919802687850295498460588272121990989414246203421821682648979249258048616824241877899288380002749618641917423213213949209456610129572786130785082641994934747306607209503551780126038242632264162755286036688376076881020824191633718682170450427507589817862415420179895083716013169248144814893862267286720441421251371078592768964931583281413012821739181988145034676008964601488576954064250451693038575595869030531086010898507422914330609012649297877223114305132976321603643282612849685353102238314255289245607766133795993612568942685608739707696600672402091207906394891244067074125223736622240971085267686317144238228646803748216740877693511229351459595495818929468938714178069173479744737669722831315079777622974227058530543369596115267335233569395125595701489348228320397401872953529858617322712176389539619016954584862521285125813388669976638338353530468286334012591961790475171510146517307557393818849293541649067529398558982271039400205497395349846664205620914606955357043885472048312344770567715442059631398138782849203337615036987912369714276340872402723740087541213960178665291623376664214493193593803711327012949041355754476568083946912260598999500432505194826140832738888548948755862056690298074929832725293399486504208449853960889814914845117078182920051880874750505258050176645428154005640952169769070145264288709687843073753056052258957541488059100135282192594954658947660494375230367219232028552314070543284017407625711295962416081264348298650501917858810128710889030978595774150845773027203399169388953634559830745211726722234617988006951907159565723732368991436849839579465016203110218365738731300681018342334889012652542034502662602149429135576694709906021857361995057635190159588324007944982302930482667727041816672636599913040826898060733561952074241314064254237074002934306657751243498562675608966417352416175147925067861632530576414834699544603289121237647165566525315567541770526278299853756492963199855772118215452490471116558294617274227353280731818096505204956818198869565379025007320803678170894080066017921022717940644713795443449426763195092919007616699422133425442643646514656265423736855616563371017320941598515682951966000877087705944033063449351206800434341010543772053371653936796493881159697554324059300779203486355740072512762712518959134905370822573410448888537823845347407153588865989199272871208479282963714322443169829654522841394738482995281126357554497571923291367744187063501871388027126774856438059016805346233697072332532763115489951382119341009980705471311876105809537797847521046971868740532939746408942090930092433818536425699899254549057896729494432710188946025850599595006004883994790313932115438897304011714410088666199017760790059812549419868611692221570432659300512586308308262884858133765599133842483259634738443449174586042327799929369204991003412866746120439740198167628983198399763795855013070817638803693155360594707576485613384436831819167737643290018985019554794612453609150733913613301935354089064860677656883985552029049047511308638761158907934164517212502207538034192860970239291884541135253987730987409195850572293174202578570149085077216955305646274197710897447785077067912613424647004160748589281859833435319420623248632716623858427775057220062347278835547108283403105809822608665897094801939756972801059656033746190096525164647774436046996881836663255649455512111215803224862989277341364630305447203473002956736418125104545086104073942137140606401650663850360124700017681482401053901876268785632624002557438525103726400232085349284377297029531118124035858422128347098531724950568400859868540835705052809986322462561758851894138152976365517517343603312200487397594716150876582739434699389903700335090864716145349670722350045345345779457485564994242152992706654153142992813031497366706084317819905598281932894156582204875744499390496923792185716031988651409469561307261965534120859028133539234639342080573842432192232595843188954279352345179985406874801462725011415543018639480680323682290692733837294994849470662276532998906204587535863324942496462277740759668195543043875372011540108285012301911823953370571838157736771592256960829924711704459045971344121060419682737982619100365038348803110064280531541542951198102473956122464239233668906236631926947163043398799370593520839136242576003744747284772936173607086533125779452315031561542788741622606551366924698293447278178213729383853555946939304509187885662390102934022830009512354643074469713747305234585458814113812140087155562486962913559347210305125519922140603342977364585394114645328628901767730957153292328294863203246232178521689658774637866677245057089007333027439005870092394299258417145421187621867301313903392536219219623448874144300591644299192509524360306882570868257707039809342702345676745094887178960312168505249239615483670229592256748723712070426870701149617622412592371111862550435805945904646449811973530783280492916002609162137662359659956562163564003293235922462508258032808533736706841604555342159883991418576158877700768133564834046336191614310626021207425782736182893871787296450265436062675908028540956758008306248309279357644659964859374590990532755113983738210186008851809622207876583393108681789810715542403293853073677877030408421816145963167247449694411390941800078642774777946905584861135763838529821914029737189950676231962368068950979397194077694855933271062515194859726151451939762062609180252506797958673959292684619949403457980967829862874870092804754202499677302638504214364927024355978650549095295963152764987371744817909122773305461470466046036652574509168649479451146246253588421659159071258551903388705387383133229092683581473145893824941179323842829169660456509617068871832247743937252064458233293556416594001912682210236544879745905931710088905841619286801098219960188059440381778819210413625030158460739242211507209706186067845441560003730490289561392403035911335589627721579095286292110558844400814797137010631086133143630999073405137698649020695089790832166225262174531435388464017551025551166213926543981625652098738463311256921997210634059320157000095332793031055104241387614338566789472878699411812912596612846264813009337426024821128121024399664532927818711848698549989997010682929900304566807301525413851691983484659268591522181551454717567184127592810729663712923666556811639485648709773107814775288734435251962368722485796783844086337478539006895298239511262599901399360706496311075317482325434892896074324316555268567933228323318100604078358830796121073120025522198930657355815723037629854401941652017570887855993696711508051887862875022772776451711715406027189460125494640518833545428277333200098913716955288318202884852434938191246548897056266547119388159546410186069820160503488019102049760219843651271509714904237750453462612791560927412035215820315923532666862304111093841433548671476618213780738929006413657045366230301865342085878540015481917990400522376789516984998353119931656454021301652471121030095780657097767556802531361823674495573764075555143666725247381032991750091454065149036865446299974509851440031248826735322286572024614194782497279168122652562398364991330648293322910029158808741509764304737215310971603370328440158880769903883039167950349117450282411557172217174999217424210482650558385677002390809991980542734541750171361077644021089724008497311033031307037681663996956574435208374757687370798360716583163298714012466400496911994958308800801185694072573673886259127559180646549217182261231963963497545866001225619851726502837748891839077176492339422197751149635335412189007886074829307349254974913236595458921837378153678253541575153655996814277522987311480923546824984016913931302789698885523977058136031798629723047697938428715184053337873754178927907124284620625190390944284369509753765532335387903045191798525970129210476240514993560362635114369880547124375379462377960414638531701018218032806407210368226350396643452646181366077086017984606031321259515676547691965536912848682245580471491479687006979072402916214975986055110835272632239980104511496432256433764389199395093095051240507019383237313454483112808848924095115050487679581104663677023236789113160529769650205106854660970657049606106295980475266557648288180862110522578936414279230596261203158746866562081423541671345036790030403318667032152952719717254733892384766815209493646370259281967697888763875217381011795324801581583854172914738322106469924269487580970026814162323428335752255845905906672027005512548486799395334942324759672962895692511073928956356155830425221770403692119999839294738917196572239169136218187572788202127430238246209270662671191462308884560101584712172313116710357553568821198577666465507767385590104046444156262095483591875958019930661362100763837598687020137229658008107071583210630706535199530589429936653594175337077408211112245376757894903231516517640174517567811224425620092281012703935574876648190877544742262144351248448010409827882752505475391691381596583392709172408697912120519990544620126146115542907937386843475491492988783226797501302795520634201083145309032761592842266097952229805102405199870520632352407888972832862568730446373684184416652584862664103114388837993383683843343786280856482065419122617308443500961576923611259493311454363875182257643553718553270939957643509983403145357287824826162141630624352550089294682872554364385838651972427735039007812424444299312321812841448310480634326846550844053630881334245599020975080129236551582433867233372906103210049029501930542556570830754118635712200756922510155197656815075706994442511964892309738341624627801922039737792205424813653458264207073405913363255507804830411207008806177546827908749859828802333994358417837519493954493290288848541649914104273803307363347798217357853201148298720258025391509110854502129309438014441875590294437807832512654746906701258223283809606448073914407568635545129476632138942470686495125552708313236467342730363944257830958749478532781840388421791929105714730835607232521730734992171074454081177559136448008974666264388884678143377473892900249459460345196851149634199267223453246209839028181939771263202506629945146336452061950807337134996370472149781878308569880782591770443908639539897257183790595668840127633391949399405552861202023550663578530983742931347462521923864039265683591181334238656780046281743568831704530038099358212135795441628015873895965278947965329731091692704962092342663855271084074950289191060391690215179025072676358207252833045504314793183668698145616142313914588986713554237661418942687536799032632330383573492006318235767053665219494756530249030464282307789112854483945815516421055391217918939745192650965297771215841821122000827960323864559596775863597108159109416996838278722328966280199665960167549983909030959906023932593505296132557401203764551590579146756401812314625261639962234765293240613084463300374710799100890261359411137080226293811201808006254535921509829989626910632852715664134080639115026190401816029990672052310857728774770293423287184451206085124690444359294692341722698480884935887039859651961779756102902536976374789198712309100122743258963351010529109026173027395000723242232181070843096976764628167081634624514292110546194607392060050744746817205807437322877297159874589424298202917943944176385776278024524104132576870932564029771518805202038305508799065294378580732339904791530870357280824180049282547454235513847343163649240176135732049883431968333062361807670263206781998956999086004012065756194010887400148279546233462212633229095539297529164436999031939979422482244548290228836763049153300418122267947740137919786506699409477249714525976895067685593608457312924888069181306051817504250429942091115470806969172786092933402259177840618287767411855912828821474703611716164610645888095129564005286398963127257767344540756574888512172914146995613410229436233715143406959042419292903947112979175855254709911861159569980398207164631963294958562187085551651054041400238645540431683680167611301469901501394782647502912013370483329166238133818762696113470568539631569748711307850841492959201961127459628138787834157500631938760897190024441000013164944392495577393288529693691214831119355327692387319792631660387395912140347272677058808278222842353984896983663786711673092058712550085436763771741329102012981398962211125878491635059983073919683078402729135409398146601053680338367508264074124262191424086449755819278679242285667901771919772121122549064928894752228743883980763177723664517122038643410738988657582841182502075662415239541826081018007139710902146272545604526466813797076123566639113046162036817349720949912576211830584984902661057122812379254963224415510730710998495366168111774196431798054617684316829170965877752989128070776733996189640509134170317406100226370337240256884542575752973124022412511300397827425372037101490707350709117181680673650265628118414218030617790751117565044014146964771594224903022884910057104975840895843017447857848422373588474067874232828028949507350107181212745560599498594807281545262195980911910000900060862866491486979518491331249725571463050754578138476398267415175614650569719271431647052389340994754977236897591324225230304826781543771561622887397836839611049355559335783257901932443092523570945387757725512817241743091362742068944927103490962968690893333864255714472303650190099900075258803898591807439720902560983722695124129869077197675078839724862677831638714741240829882309593053417630543725427106522569588609193067466834174708564216525636782799000937683995158040531932493323662759202909140054445244011549823235113417130620601166556806448419297762864121966820021955210542307057997689368487190678726030807614555706366363068283016395420056822555666770521015915787649899353728054162159812576823394725480109492323484428113974331872373955005523947556158247153864842599888262623990489427228037996504131681599466713572031850330411660180824051560447872015775977342468793557192590875800830263693365413480954792794035419567650197241474611413380123630846131219229638824185927926415826614044229511434460118791179793019124532270706091820916649478968492465327826662828076789928556754040201923316793909125723998447616323734194477857806250233109957412139140004901124743677384862599583113516884101585657411525439148081920193711843178355584900130080090381620210574797129033257877342896101745852814874235734579744534998579290090173025372537239470077507873060390913912993908595476413478016175342887620487118391594187708780962769487524254410639994705513872290342289628483333693799913701346751251184747037105933528432603420409501427081055227141069198621716782822829739378026025267723639763504390537037244069576841888447061091576258654242491873077124878258905392560291260408723798089453536799331093700523176659741430310283860944512603711923415235526768229533491979598431324120746349458993382156562532614650522762402895962363656661198107614899442624271062379144257258352300173320079215234057517688252269287543969554018353560377411582210927312238471006616537952071033510943788106692923522488011372340842044460223197568351712351222014498424438954864614646631585219405619543075488253842690188160972167956799577848870028942141569540645403162780813502904889409608718462012279752340277934624730798915678043525293163918932982417818172418687534851357365144818231210520123921711313580495867784824068575263419127636939332953390652294494577470407943943575281702727285040261105232507330273785947222957908600924108894270496916101505427731944522523680461950106977708390894151219010622315894551823146082665746998356480744241381892090204347685072272542762059945884094176554104745056064702752779538325022724965257508529329638138464709211922963986293233674609100997684810750014695043394831331922968753308094822556111672583486085719631291432299808431361717003899707473429337625173996718973371058983976346394531994837932064730256634596154951652679101575923784980775847246441261771912057946955461940841845148341839364605593857107968554380342633795751731755087754164680839538313256088345588943988692498962203430529186143120502823454806245437224850693828160275766584092038078793902632880751785201234556208725452599396855246169491831323869110328995626090232157926147525936664089187394493506324572327556377468472708148873624314782021589572348462999093503090419628761686639939089826804221387325340262481756937646541539701178961541877640839746660657199446669151275238666663463609033035986806644249112785576797735001386128732868961267852477471408134924725450617506940720424931134643996476880024469060811468859659525921672421479609150122100122975628581958065113869877903771233341308884950218917127642006048806692937105137623926668025380294619000589059735489357100803156732757789709176323760857249363299003470997992812897012433117319890626050392676021459140004797886324763276140068568633889235520421602892594838336149100075182153128589459574988180554465891703193912400867447881334623456533885346395936558718112215280487719561063249329499536433154943906127970586420149587796671595048069851627333634990079117161519482340676015218591215596365197418246439884712910921161184799100053257219827816016110390539043932935140720312854284594622510237911633701696557428063248082469907576626727966068527712532708922227294994622440720952485056411223497396060410451581127522279172765911096923182293368540629732174755844514023022330925479584780808921156597902169007890543720562499451223593505231405421090944495621566629941373622579148434257516174972511491978555662660743999472910431955183863187149830706150312735087736728303987506115605027839571905639875781443914619602840611533076011220305256321594026712048225018972830732470860453488689787982445003418128663744202657622229883250415797374623385226365929751871466445241614769601276970430704747631153116458391088745989792354071630386810617400110737160211559188488595256959585545181428693542031727548802712365237206373058950244788392914229035919710466051406873749302400466894275797229039466732558780879567605385982708608028853140995862919834256330201308491452871625080012794218441701475037351021952483468138186268171174816510133802237246345957336538400345843379616836429324465835429223552387732184148634140915405948134990537278240857350210970727702371775879372400680830229194905786220703800442777355464755142114370652766728138455914827769316999985034598395032798963305724775339244210366651301526886408823537111957414336320676353175545364046189579651769971449310885722546979109229155408340218635443882262335123096446753037980565135435137595682380409912574354902677003682500945345394924035673582561474706393731032484190951881251582445349349750377306537293315078223389327514109698201923403811702569743347184651622713401412598652800433346116168695529354279204189845163308198296653849801467283609366324080559406612841654611236682415231462282989652388192540802199301254122134896752810876087176689285416585604596246845282653720968116244111906712442151722939464051673711121993386236334223002142392085848790001262983813817290730834179623364676905690303176158339904730764826532666002933693305035157149859678791909639722576381492157819479083791946180808935999260966749849857596240672911789001670444534848572796149268725362425564059137917690934788503946631336607797147654173751937557102129223017260230857113553392875320208713433734584251542387140641189865797909598038130836502123968948169920051552773859280270736034875872513756877883975163698660540018315429472621650328281529988044626964716661140107132776384249522589541480862363923318250686964608608526098976431291175043455521030760831790816267063712119425417299224505929571666560522099398099711388667607326870096203447264756033129259893542854926010326426614321875033939008196179422310059840720930313997802980988756565661109312689285058052910466495245655342700945169824137362727129714090320045099827265584965316141089632215274286340365446198293631859908885627744205800309180017545292495530514605714511691078923547767746513105752648925441112161256136128347476188545718930113640911251582837385999818623359321491732727250526484906993019138736472757632352673255274142222503437134794770401865916332662799058053206524297159094294844734066408458009173352771263056118513439106409296232192151678779667030134924024972530295666637318111538652138835153408540693227747664925977943366076352578097375461515376745231446924008335594394611352273898988214680223509690522164200752867789345757253786688431201691623743415303006226563768017538825081487837350456744755624726367822813712212793792466370207173954428032819616391256164466416123222569571227039007787047105042786409841974824185649937678464916933441921839834466079672364232554993231593468198809998599730258689929037496250526640223296290956398735993130857042309635964225755648774808636317295916227108476756876006056626564678487361641410125953692802521324933406198617615487030478412878802955430251906309904185608478667802454796189486356314747518989769053773292917777301735485512155119794851306675913532051954520778714651156243150271718050239262101062506235473142812393729417860973394487730838587413845476567386837691546972646995353920087478097183504778711206306138261524841283094648879258113474192650956839836948641978180416352830310292819329563268825021029159427576606046867649984881458349334258065187200607480196321701249633510087490280520226089349431197005528232915915591042973336412265887298418608472051466754146397911582641827585036032147239698725522726916706882735076040366794010370989459313599283606862857423211470560064370806516962022102046346380974238146089126287586604632908944876845008288551396793640576581239552809317976469066437409336359486013847196122876632169341937036738618286612634539972877286911296532226720125547486751482950755025463662967332242626506034038831025856496949431490691070398337450686230405384445781358884933025930911012982230940646495177316961205362932048493820348595672215191227758728639497561981862900175590089253689249535907526434443726520387598502005559289661606001210895910840975726742224599360721001669131373547231945363913917081760090720444445760266043912752561301151077750296487514422336031446106302035765676247849701312142712686327950239499151665402910328290849129750237045234155483478366527864452297434745464141119068664460702289355984514840424549693088164828818420224380276029205870553119283992616701193807028905523460263793320471188762623417978693787356706875198720019371872829975617830700313778975533311115464637310407922893696027154463502502387911073177673140493112192329110108135669290209721164590590593246089817515209143294246363899982039960943062315419645485168410588409858075917304566370834197232962362616366335098104391983725124489129169986671928658963985254666318859849578106395998663164380093918123414004875554914629566918462043528039013156781284548640867790923109226972988472872111778710612601638467282444524519390223495798050072599012588271683498402128685443803193029807440512608443624230294772903940201632934466764154734874107915968633942606432703253932246241628884813087253169375413263772599119170291031105844960645712892355631033047366637286795622665509823517359314317334792989352649467563798567837431285814957584895383078990540811445421422405594438874416303066848285380984439335367888017692405447829230517762403135940205886330782975289742681201426717439878659694980959579304523895363900826020332157185591626840353295536938995738916866979330749430377467355546983451010810890381691747063065002530136663455776947866999221936171980236726932428367070335912874489607641410790034405872568049429369262012308697995264596013503570657098875168104774970116819104426748503346835786736020617568451219414387900402364830427035230943358061861939037628415615936114880761810031325158996260641919508571957894112854241382256803914284510201248225716691828320532989458672602173818584576138989245146594517505981777361759548195872209869065749620016841922816252390429409174803161869040891349134435745679466729244340642141549571846925369518563852009561867187699871317350668207087401506211185361265141950650228883586678211201694409355635211729083966651243520746031153355903668829165076629418462150530899766877477643243265427249247617041145930522877101674320805916529429338016247520572548466674495423487894932186427102332265972002607186516963981418940245459405405485108104091372413157429705574425220769433145997245541894959126784626328479168836636313066956925091598182102596892563286704829751137648170750732708246057194722282506187531011370943637639584704377305236148715897047215858167975001974310613970266007580841547313898694877054780004909988865996183835019648551454732722809439340055884218582236933957008545071423778990796954869608773844727046652235997611165261927836840293623715478169983584588507817693206513422455505970936556047162564249785447297429917961668238315780094657424186563335354178461303903825166882047399300185367272499614791098575293931912276564138107730408632531633452608843253264037842138528006022157394483826819249656349068758416914635991339837087426701205606370644354154420976487877198036236127960746670100558889866999382005034367366400548797775135806728323476641293652742324412669325478198696487361908559065762538698605555435413686775044025051830443845573935876934772565833073365732935112248663486430891623174741243056776544947129849842062182687421974404404245574856627529622902964070143997131936767421104937295842320778923630967247601692213576268622114105165573915611053344240929572277459762472015625669312432875874878838875581087338482680100761932666817048578313433081834425203198440155452145851564281399778482818043004064490751531726528932402568163144928080622389514567661831849034285948636956753758824269714939595241877351353853234807352147352105911239230890754198832548219547943454659070290197471913315422973530254043283277922933777004564248442528366145252753298411458642434066134614052267376188051679713159715526171344885060146602764966052241047568773975121682873343995161000983589773008595209538167609223395047221582730796135775266307661084652587138880971647597705765000649322878273090327372438338213133191450352288609679759024820515516991027650058485575017598455922685715619233077325007233122785118823078750802257218677992191431166443450969984833624706707691704237446475567031196674916933586573968831300616654637141557886549016532540573317699243224554528306680363577966657683276889732511788605295613503725704533859830254143762027590404644417910335878084110199839441417078167634903696139995188472897893862996623963973003895353865564087686869536733820364915126607685035468076260492663913312233533138585929921361674012844103140544293606063842307613741759767230490111680622184568036611075810131096001038888552544764978621444876676197249299847550562669994828154526756362128412339712844188716677703468932923579584551483090879872402569964713066349766389367146704938110934093007848058741546274771664222411313796922120149676269284894779592343253540007674739269850925819493514835467053164110567957250551705699011209804990504107492925430465081740379154694371847864181945498817274554868934106759224961086935414295216829443037223801242620580919230301443753855443071837757591757630496514006546280681010840745323229735761122521553706924524749300874925737080069784897768225405005904740010357894534858473967363937147998588853458540677718679964977361323987138347157784667931813372570257068316829376003090527175881188017673260530909469710208813909008655738805601561075289810384082805052793603283350583845756226132351963983601730084865961243674087265996957319982781131481460280488430845462724818837616830497868869939190313217996123204124971864431521073236998192095803572750219008759388263214527391253983607231656263056008924835567977900005858203594296177464049527411293879006095883792999873163439142316834975066660537602093896503577230398891657364602729996849525144132234669800529224036696471133787874307002191186511493571606934538484626713314142998820979957009129062433174004197994996905020470312459167292565795279376572833707220901281351985517831762050641947317716180577894373261901575520773803167896844810778546763172143397217030187412017712560106557008890630300400206870234684818014669783681829681979177686540257202903014813702262217000117395639302144502187022751577056893783505823643435548591528112995828744867155488164336761263748528280842959583592380070298334611186200887108976924910981517317317025189921659447989787798070581708605534414544373035350911467315939881149112170630716099792880655455113545056023887381462350035177856039549351208282051157148649462671495679071369342202358498201400391754913387387782021816065535255773007155796964793220305561066281640478980813343009599528669261152879680338323629413244826065413624212327890024626918176859483055221844676460298746811917292887680793105339491015967622658103872101284326159581871723235932739769543781431138972981027833650038766868701338192461213379959247935398824052914828348058406055312035721940830008165978434023539086160176306707690291108434324096513713505488371566788881451545519232178181065417564516984159293640953726706088116254812141095313016013034022194416536780501646293872170692827997557934133670110182724376197720677295572618148558889009528691171255908569439510352808051962753481284019526088848213110533535007380311862245119283391378853135656086669785331397377553745683598169203418801502604974502238606276059714729922483187804809882372735070968327658928225035336855243608568051871864200116903437376158117270228160932197340949891598400207969443863497918613923553602153743401394123443562943864567811942286268324918308161189114649925494007657286093624215158324630954138459729312784625248681296880791478355201563059924592345698921147003070436548332433468803333189579089455220287340147488606846218173687655570821283094315418002951967296662982651698036167081272456423664671437883000936725936530514257133196754695499909412669087070480281370267560525794924803328059359487502387536882402720075146460451035395605852065658358523870308030878463389972312359968911410890252100581449706691658457869794599280347585191108812950956450130965078424497674056099991825894955684775831167286944011898940305887090107324485717396567257111591666397071056153310951117411754212948027945524687622422070597831431287191097560045709285738283742036416474644397454259485870331100180893581891601432622172523472273052864638282973895243628296385855883900721027318372994696872769107791644323779786546670055314758373088109427919311327123030813898075964284623489799406664862593970200847192558939649046807286669501685299000377715298514291408358676097854148795856433723506847099826052686840427399751193415075361591696230344547913328967107574262682429437037678538025850167574028540903427808731133786685349391197597465696366150221541680820469379888347149602006162935266067960866102642647155927192310341696625527068021219812992516807450373882097591956152791268584471159946221002451805055568246992503015654669521995646084490631712803881823421337316673005192101849441017344364115079268514268066561954801128678147000888719290521528605401763611675435110341049092648643602033756145621872771071417481643098483746599607167181036757058270474466555425042902597052477842609293469933315619358614137463270754034971842160321491549684802861098691848076683957352792348213089999424204788262302421413775067529786516682196783449785615781378657758060555974076022507480548252290578771986917693031460009373522351333338220287144137845216302323307198430841889101090085658552412761496406928592682101515647529502993644669108048636387031022390229884035771195333366216210033746720208897282098664007179053054206059668305188019976867877542339461008138772737380280411703906566507955924310826007982347271631040404417989607030036168846448370687127496064250612301164326783017686477190077311615474315304994829715487142148636089732533923682915774653190798255168734783170569888792861867503317165824309189346664308986055717909673191860444898019210269215870264134949964904663093334814750075666677709483423350154899631392425245108914101176692456136098360366052611556490382612030023432225275772572331837890932887372458459347372245496043225079645460790106552726339916562431273438253465630520731709133525717871050815635508313875034506442688106727126362671044081036797971971084963597328085051302294951139238134129366370462560462562137877602476394270882687147209533622115505064488119801239535405733435583203900677759229326873917936096268206949316089558659789759467304950203168520501744730257835570430530073108572440666567333191582454903505067528056801754956493856815835962570877923448196845469865999852543679245158367563948985065676921073548918829784960841114603991004499952727721089640027094366421336281912368068330125458051709547690072815731607812617762196798953448158928192735337606312108769256843936215281476389830763151466895523307141113929781410508131726908498800598393172638214811170492859894531309334269885190576272599469966147070440722508660661803142129195509213751764081977364824795211407498707156618682607965512009650153572510841215713304588182668169237138932725943985958772488085988713663890940724532913800035001100547107502041430835743450386106184892040055294429465625946313522138548193663137154239091747493515512248012000817290862915580961747585168849589664501143046059325469230173356722459444991239229996045030927652152863801987037271599216309673194297987658786437677007915406528398247482974707481752777035084988752652337286570634887896114719030500899992338063215523795208714957161548455193809752854580219897177483171095472396117761617372818793034608056403453884192435876711336927657066250583319414577765272583626925045997742884766053867936251135826370917178596724622498041623172133106312810127489935056241132718750513702658346589206288951631285280784515901972929569437948987817400696606366684938407829100730189248260203002647752269441982523836708211000789650650669831228613628957909995005132325762476279445119992736815356909209982165080483713390400572073848526369561473304395457981352669194648777659135669539685258911517344308958186504644462624377562058908167820741270105429739884567855396015464937765277672446881881856789129205939415237421315164561863881522446055125620896435165261181678639080495476617007548903094431982872661042024574895708318530840332957602415210911541279102588531788202581292737216412272437012168434331157469135416912307910210785633381901447960874982759443886100529729780589245074468990893646134189458142495272208111700962568952173234460284227224983745843345960298696804962653786753495540014125758041212535800462971996994406520492199308550935110344271176676895361298704341463256676055486920004406855359547195156341020683422219706954402090043620726357247676183671521371121335747334464555269427473907763977367651356036304083186912812210230511632008488459603951024503021309994290906799424928628568640069641120790464150808983404540310190005539158340112820654362822338430340149883034487920692124736094637548923137774294234107184874054585192353319523209149058629562833213981230689655015423874643727630388745678689376444081563954169213847706217430783082972791705157724967116264987041478169782363766505942096348018667780855805911791475928730665420266257320168198790598309506836374779185478629100473507488212907532036262319152642637369233209735736611912962911623061125171091720887615894482630842894119661121560558035742321043623813641456510721652271053392420150391129407068456921436725192909786688322452374133423844807663053382212598602620957642376149713020916017870708195587933624909420378869264798398749035252048635307999727613743365638035501310669540092421137310737700016348688073786241843365195750508922708417950800311195687181666976722200631239561333293861749763324623159944350195695609307506644381499291837341350082510093708849078152476680790835368906115180719363150301381091306680454966190113155846348741444006038785344330156287763397572356278776145590070881454944136206927844498238600149740598440571974885399708303504684596583478785832383937374184329283154637737215440994143161448314040762950793354961866651655503503121008332701075412341226429868687769271069023211780646926941917870063350439506638411174977985352594259618994937615895253161235669710025282642885890250857449598057758361928328598532645878348377110068206165788720808028945297801398080552843442264725865440728456651762014727620355537815112928362559821634635649699921343195714626934525853027973615622099549857568774115290576293380805297137503938269318336414640515653376028760630986753564238999401942149642623876278441059918055298465375386292754226809664908669084334395629877080997231018039501519415393374193174002980883734689208867843777893356005474736274345861420069391726487054407605498058765296566767222291337604636694028939817196052884847420375817172441513717010099301521880202378671935687289635193919689786781549874173558979912583284325609197136891438639781402748820434557175705448577627041698453384120786662640614563070954499506241947343555981857135501164205601808220227774369234991769161192865195491431508142189860607654439397979787758225652765540783795370414286651558521909073173290485401323429987946357642377651726801840979726428987402356490176000582285075668884094600208148300317449198392578417587164525000168516159106919807567988772458557084743417763056551282298547397465695965286608633484293174014052009316776292829208999760092808476725840687250769304030506305889456918247189363405214967745336087238809825891097103620722303219069554971647549894458652855032769545721208447685600475179381553299054894917475665910923377021319891233886821744229870271167248907997054421010240864098559376047184754212433431947879476409955386993846539675545974659595254446288370075606303088949768881561844713585117351585237472993402573987627728397177377653699044392301156205234328456979070509293319471413909825253843372603075010819583216661958517559300356549701016583826741469727733526453973056731437176344182053373795675228646732567951174908170943233848869599144148532614871025026605948934895410760292996565231719768174132310899298621533551869948141974296655546258189902910877386334367891767972313125641068651306325526781730036731809928259407930423776443878216436602614843487147574018780217279756600261364669231165112264809620547418612370000117439211889462587362050051348279652960675361956427790449982398387207344323200814785499245647536835483335943199532708071834644506572171040910780650036439244600072923540874215406145504389259987625953552553173350505096154409281538549195116272556705706011331558910343927046822212614834582542763793964441671119768471008582542151883380935192563871381132855786498815882726358611205392608345512560855801392015436936432569243041728674810294570076401772141216037588706643580609669307152151400739378939689718993291293483173685690427980682570930662747327110102861804282956324948829873454792821107150804813476978978536319791983500179782475210889119065962848691688517607402344260547901021338931484212136029626660005151168965553105175641365805950336117696779847846572412919303498076262707920584962119783423378650632681424815244230899813144490433496555187854237844445825683950714270241961334040736026319072979426940409370614037529771957622291167919558271481054516501456695886227772255206444720430889771335624581578209889306640412247512359713545920798993000679927602969733776285391297290354923644494701430395480080155252759288095762501154397704967075829145757923257623341624018037807026994802097452255796592989323455815643170140329592301535618145285794923831419069465112028516427679796929728558686316943422420563784084824544060119316350941217144539495904193802251222319591121583738262525812539255237516869085192247836854285063540593089061055035316022929819786847399910115687337103744957698359530005759629508137491278841562865936130927111306103963810656896835184444532831888282807359984397104372288133666946985267934152284155862497209194949075383635884182624039486599760854822094346532143743693966602980257755767313478258918834970047734248547994660128270431964251374108460020574367789904986215721141869761639809153537951475539518968349235657861276038026074549840659580497545170986563335236525896093027033119096272087916986488186944736587789522524628768232541931038470316773501470274629543194051974914263568116367984382295842261061730469460799628577960526238341948938108812318910256027258982610888135899498283574030009183087759953437086128988370255930465647567463252928592136494199486916026701992612607956640244153511661429888193087722215557085877498681543620147662785081226237900552999480330226138361969661867279735744901600075778735764278129489512069084397513761648112635052864317287426933783939367889752874485438227635348010374497311933912046533355741856205586255355572187835012943757916390980195245068721915289517300114811002735384250182969827644466275173942369497953668563914106850312011263294534763763193022144400622407444809547867846144658210255352452650760079910009805681735885586272398383182690013884462772485934813545442955037093170924850110104320454730151281434058254654458899853936181791344639647291184915306363094360626578820973479309285456796192875340755766509596930243491970344357847581457083134417355497900570653560394667887619454368470063613012274619356940654333380303280623486596472797965372737807556512440377841702506746714286924987431319003051025615926241492789082045586125297978817255725569999499696017854991927219829429247079769894498102198978674001274602868455528719949321219488418933174486718240102563948467484947208589040070944319336230106693635986107824699391965592085029564764646974481775266002397877892176782412852887511050646418748490284622620778765048236222344142554880090936113884202581225878096478273303815994516790596277817002741122972685877113074362810998687031349983805477679826395296610067857217995948441165981545080781071633137815274288721673834813131835159966472976144971555634005962775573079261640442674221823277872572160227681698384328563951234639703730119788088924365544663727962542803406882098115751963430144133936933034974012320245192469704176061132676361021788837320111546685669047116916444415209144181832318773820151364770339385179290221958810741326067984765001096271181845081916758640263825483390017803832620656846414745670890654221433967416127888405599473454327220806562650679849210284570414090538525870924444534285709440042551693350105000700133678482096290886229539381375278141284008613538550843534041122909110889356419289333537654806908771790351172034401491803490798839399574901607490988909949649888276104961178347468125879144383096950249828038094080545507204149438547341676699778931275133663036904423412688896576557533058500681883465084533521926137767915401094454025975435035186961987638463719204817080860454706161648732354913245204832220988321972866958019058657682610474793113014344767475010262918891547234336992789305075637920026526815392996062288158898925629019980385077822082721740531449864758852324525944823853348355081436940808229441271006574333214483884211089009417404904814477601996763745736232537530024029084171701514912680199278016359123073383748104791678679559603218902526388128132209848616888696698774177268209739333847878022277817683044292196471867993381033470482688225234776047081452730541016712967597018473330123217288232543724240705702231213902781969029660607514017591082611512287917971290756464141700152983148878151262939310731096502165728745154311425407308346019410236177937472058702210173945703925899495226142333334979098159547429435964534572230276674791874785270202650250689256639598646611614541322179641138218218500966473500193571562107475925119356826572469114324302297252651867495618830322250699116492007037312720570766424657781394002113226957538641930860684301383247960648439259683018439220795506592334890832024546037101053083181470823124005219813415972079935424179176452301112031114191186674638133713559573472813677621001063616648327199289156550866001766223372791358884974351189858782431860722440016759618038712392596113950211075438384001846910796624569209278702232057058038880033193852899863948119558581979950434359643018207869415975562667480821842216787595621153487875387244411636047888744127278295386005526565273054107726495527226646876693512443001171518058853463835036892290035957065314765220196377268052613266224377955966468226563244168853151363557074661852825557638273480255483575271530098523316585338056440473064670744072573257805502220791913332309449947797906184728723618557647390152222980893751618754338721196088729575647821741555727019161609811834393779839341485469184732225279215986846890134040509426372368086528820841710302783829881066243861745500342746788222647272976302491534793138691381993377198076543095220533519489412024494366635692118594464378759549052959959495456637309412195616138597663717519216189063293267834274482140824398374338912502419325515354732097537079253297666995726106135905243732089258822818446408167014639107048231829501159388257045474961212942951031820031468829049479944434231004581021179024320383143489173172080736377009308781801233977773140289709537115595047172606383433058626822398432861353833073365366712487016850014969543311368199483059037869885718781965283661290986110299634032580917303658298383511341516400872856746483673133181689948100116717142639098781147991802617742855406183410820437982061035544590411998654513929745320735347214932983393824602699037216130573555420194775165380239765655279431253313117200481387783094719730222247382759701530534227132216352044492874965175912899339059458639637107722672939448275505858181301097995263211473808487609402444283052075908653263175383431782515598993021909862473941044928537548581401391177991401492461791579343937255806054600743045286898073622676660924034400898766988287621391523449697469904108483123151114725174789623917066836577614803008930903465932157414535148558723754792123936735169967770122781281146880758011495213659202766382096174089418042271869015673813802547098800805634640733933857480132986621630643758647297143703718184779913130611237319361826598084606474418611697514545196032909814328619933818881876107403898520258130512322063944332471473877115876089433080298758854952226486931886808701715120474714254469314396810339219201677705748103542158514245707304974912967285577120641633950120328723597402529157069174503888768302346990106774050193256264408160056809970598108548347006525909063630303215760515991987562295964474866183304673418126684783725005938512916569008753037231831390195623008149548793543389539957109319402551334491186489775945153866106982925305950160342216256821941550859421977981523682360117641624614391370818690349214938200764781294671868043405776758761527408076585081426168416718271562129555986595603698009793172483018742041111065401442452118214707701078460663780785449163245389639588997518787304287354277840458842630835494368869371107597773477882216890491997075144967662157679067276101320950356139959187961377580187311836745606555755035860910208975201057215840741594473707671661444707102013123976985203232830085237915089762838924455165865776253269941637794529466411054027865023581468014650768151573945179544730663912212874571259982328512796251999656049589663511346663587742108853575213821093686992591989050297448648431424846102350267896717825547372909658375703611732285789163616194468893493537331164815737365652714655862087457718634752120500334717786821859060870732920046627685635694856210797439695086440323235212352335125186314551876866197626355080303071355474176729209282984971910829769098443690622035312656575577689100550149849437951669969825694539580247899067059825911542617772938767726181053364245543994675554019102664655461550158879826868391117550412852719973587927363959466009636267212721315484771530346194879050819298227587380075878313408728553214319633364432189533347344392723122131711066174046291246868999713472607583946790442742014390256061733354524450038019223020793999983240661752212494545517362088952920153765041759491799512207165873316890959024858596281474603965925344548288826845536608159784972123264152989883553290165479117513634720749795408691782848943157473565235283263232192206968191926962239698431471198821253643246446763026233551728241496453442635734471997567910051968647859010119390007769601762179821303639584787830167691758339210551472629557426776022831629497578987699778864604077388742381546067287918644849001115020349480938692099217591884209991953052989605923021866014690399618307250724348992662832993266715044470482750420531405080134208592609002148838742858273486499879220347276824214677644895243582722489706491719008132597087572202157904158476738211901482617259651799665020771467495351943947536297231990886104926623599905842875191157226958253681918745749432824548691037721436444651785855207841223011886988389715882796388694490953049271319792414322241809218153949979505035064486061954972790631619185344319095060328304911869515395829519753683189871815010517508024932299164724480837371622786550526825679528841282766560716448300328202270094781215180291007040199376444987896055502826687974442563877820571556912586153001420217215840166208191039669832745048884319001925349201077288744751485853841315468565889314828333088859344173508426439369661529027113429939603553467358869042975646123387090352243051324974185127587465404402275478430465614061965858882868929605427946551088845205349293936735735878180962710025786456923260047686887573307603681649325893372889235527578701904690825641180431951033937417191993987109861639534854263839609604628813098409391151593009562939404334691655128525729325675683708443104549196292080027817681482538310302595153470669075315581595691846918246102281582280005328802903952568842396802620343355576939743479093600603693341122116366418910946950459581520778199349484556219281305484327584530638256998387805564286199233274348927936370004010585912016970425272659901939928885028474991729651310895385981715871232463125056415353467595703672277053396250772830983405008679809900233328178924919705709501220848683693249798261848406477290822489056221137203901172618300292187532916475904328443457784626041223512755952249755902526060320101264457165343357712551209721082870353258481807173126933007389889021504048375936557298964702503704152846398494760393428156343150117638901292787651499084929589948306559285781924098548282711749402321842806449388136919649809957993762517794539218175895934764105978606184685857236602008369319688504049568071370345721453729236752341831032182023410694049895990466341587663291030632365088638808185690413233617902062690840291882972704258340863558379352854910806389184867343661459525755817853581063072405578110679548238742004396807289637741523304393061457056034994178068284716342538359180612096777662166888796847946799732236013500014139240500994785982090770933514299340077623301855533722530218993937440191874586619894344059841626608784303482649250529702397268335017726780448607198746770374211300179126277863984877788567385362744192072088412090788107612007775416671934476145520691264521178217112830693159364511604788890686863617692857655717903513061946603203307817136429840048748460694087872714618879319378799742844852325007309891901015474930481681863723659239467832523963651191925293748536944789966886825815314563485997525346880204615830415983857408252658518097859121355805603350009150756795556500466211046638451127921472784885213944067040352561194743511028467621730557182289249136687869486212013072543232660719522466348327118127839132560277754761228564880284329944305265527428959826335861377344432244842689997103519569494782994967362489888320806342318692654917726835515063890516816785321737085693017392870437488886537698502310008046931728019392763510436499035188715888836916008464473798052852671204966786813063337071352743491293231199232942187631194244018032221353151052914436970153920455233755879936536929909357029302495630570486086270006678625090590759831040376843335006987557991608094497544661393363378596468017040593443316078422573166624959852639035938467518179065239664205597357640012131905324378187798288552535859631437389937210117823104982289053685268215296229884137528568668275747693789042391429766938236188576940654167234564938570561225396129910813204815873999407230846046537144354417611542259632647986422733592947973634747971634891603487833906422811199424215385899165618924295824779332783143819560669191071942462668276353633647513190635105924562886298204691774147600223266745165180933165320845822015172048726715988638201894135077141663793109841698681893419570157452927370455247422236722073767877120126116124052722703407552586130779395623272422689734794117723607330405762957461375099276024784579837371844903434993387026550068674232807877417263337687126598997057106801191351418234567673707245513561768456758546749364184423139827739158068505844318512078637152989876551779949532559168012310895479814580495152303358125788848962425190287503851416029318528683694968396243084430354356499130626789537422683289898466196566553616458140367024801443643625368232884436696871727315531102908738723337348973223490512125376315156646562350920143374758584558262728588492151824708094860446924128194703712193094718767329806744380057023227527378147094893492785709536499498543000252598871177169205549201005527071695444983156449411819322458132212895285078641683601356107746383313390706293185278442244135899030711971442141933881765601712162106713394867683382139916944081902364080101558586589993080857643464755587171186685525346674621914913200447648993436774014864378767160004254817854435734866150152619348293952641160227238454515637833522691770325607772038358462056968426956396927395358080747512140181065662546170814962385765958069081762472461939492063584273568838703466784612565015353818388920646919142731916731687504495937704944666120489218026512763087210313796538544714622086726451531217302495603325274527448786532709019948688218924056603680848190180657432228036857252883381731277636572381315925479610129667709811289173633351860258920733265762366704227496410604846269250381603599060574330194935059269059673871146900541490016027558499787636796291717180033450685016341145718761496450276902886293316512210504205770405548967724270454648368601890876693378562359727329483954805987634063045629717630941995066322092898271233483810714699452647775427120301644528451220796753156768497086690796263700257615531453644526411630298916319418242619932497216843818823522976566896870892260338284304730443987291820657286422260409655866134815405209935354822366960864016005659270762292042030623421581723567576701035240282494707503200746666632216717704312174150018603261839261308409048383428402499486101508312561226562078032989300056474016632480599471202855679076314211963887604992862559362811168587597631105369301230418816353413296865595019666926757445552851681934013470113698439055846344713612276863764339478064563282114277070686214083220694414378930165036854141959422132683601303891386169318734529642761454286193860501338105376283411717406458166075757936099815088886864768550470329659785613159712436890663424847817889712876941010955029541833964007747053154031706785850987860505296770490735212329409231595748775024344098414663525854543462350782180486012130626720215968547044988755552078177086370109694514232731358688515820305076340620154093208584922911913088805472277884422992287505135504766659880869250833725843613813120231104973889017648022223995726793629134200476192178728262383535417644972473138070233147610936442296021871726463518653171963709866519286531080201151578709106332778205156560129267092227855183327634781204459145064989280064822085855058300281284494946179919010018466532754394583616727616008126234000013304388753740398102090762744443279712275972521306173335598463676485590100865914292701567791520557521201107983257543628555271174064020262379107674266999399917060729404772241138427241861159808128332172831079130250573931821832533311097883446622911264433319605199675595828742797707920644079141846841448075086243513729571942575490993428599972888913962939137438359438102422909922339168543332308015016938899642958650119479240218874219794741607264580212848602776557007513270326680123330219607154932561662424630751056648340851837438804482811667675250814809080184150285760936576318779958155239594971965430798405436687285952421670148073020772427329335993210694261954215640224367651928913427725395922430594190569695031981969235415958322519710910643808181740748289471779147882868506478083689527981329329398453680149150447197728386370830337606632971648832890059265233649264303549987518617458304481238867836331610957447766455181538547477779456776480726469433091221551056851188660488752108308604147369184142813590569305218054891962355726280871079556340733273637685081073445145770988971730307658534050745734052319116453359484894298080950489785926012029475353984325300479870976069173680011891970477792125274107758393900991796696418784342666035138958938676923258814688865871953553872467825807603228370330991861143705101373133243294397264434325464463325928375160342800515381328302341179065216330806653792854821414136665985234869439929390388896200586413154499769211642783825973595586611364878651893762862560334925221023815080312712916775521270278229236765300121104693009006945007122093886062452185884792535300781368271921185486370636900507632624261741187263597502481361194717793435916015169575939672091845128325129645251627212351962098387722641781661103856096452032606388750640608083329705905330659050455862831246539867327682108348280609063555512698529079591255127766948744358991575234792050224510765567918058382884777390445195260039973980937290105215375761023521238277943946067067423267873532670163566931531518287325188743219353748632549489829096050601879703611624962671613067182064258604286190120862796891398410507733105643266191760689416359154393345882020330564278664006739974923372333784075620417254952867861618685584522092362099347549006153257477694587908374514228082219386450459647804581324282697781668033111669400009567558362429978916113718138740863218752209533958766012985336306280235863506952769579136777734967763747365721761434669360696205499559255698366559612912733520092370342029094734250684021975481846676117226534634550849721816577624389271406269536750611779540539093810131214011626360822058861529957983627858701173016647091593046446669111736025618387732269904181429534929288228009969110187230693721674071335409193526649221002662934903512235158578427612480758374050653895798813670648924385587759286321928131870724557598866698065561063696324316791927830610578363096061540036457894196555120096553613239005772091102706342432521536585524553339697524809252974003757007412112310152485528080472948808220043099499789297943932075951129052578158301079418675110408959397494264710106785430325783447956932055317731459151855706656478409596684048556242948327206054125652358597923547368588946368661685870170941129553196712804887995381288842212459573979055801661653360297719774121281876894451910590596214801305333291674191860044583429116137538470317329929600078417467041079680834630489988428712814511431534200236778487538354513471587870199149614543692122921132365199927710855547646315090221257585325051789928734775619565315752564376266306595815362045100736498885162483962240393812417834492322223580844149920107002670484074716969447626598829783517343646453462336993426447106453570220420151330101999085900660183330393115405777200921132659980639027095291330203215574415489462823043057544482049415860209085168489550400674682113276463750797903803297364259811503598506778579221659312610230073506994259003455505212224027723249962642203600052952142069429663274441217579455806401017160210218980528899947051464993495140852858874633072595961285634827148830116328966486160375417654928859862455511824588239089223985412363552293486469302261871941865061216021292371169381680486574799823727225390808906120993864289588276128954716895332748687213805933355615779367349515418704645316419355134331032555471953565317117151533495812441165345493929108100744928368635044117120506748795069729333453280861828407983739452259771801873861236947150394955868487244724513824858170205865035151001631536631287457616441678412588662850656819232099415333608798317638529672289894738814721277746606975137910901216158841650549169731165546988184485745705717931587937367991074443787923604097237847045844453492244854785475350724747595876655218804736292543061339579693855139974911859652514890478929299844726476651372794775453181632613053759320487686861756438455021402051919144604368396470786215994765368250985769139416171895131467310042542213807797611061760317434150776542382392379144477472841796053089006296095817944209942118781729512752013668940663890210253225917983486759055855554965762732294746510438340645810507230975745204443788054677784788095886993296832618518168531919779526417436414541044457492148743522465955895831640539559237304556149448660348631422207320069460841473633186808614825428121441524288632580297801401275035311995627931536599112515114088418148833526853556423715462339823629786520761658831151988322072988255254248485324771587749472273080248794006123451929665070221398827469271877646572384949358568360821153545434804703507093720561072605225823971967935566268611316820023381900778284989056026852705114699495014743520215828662752009600266992332442918331782997223918891579581364295684087165192969990770536753030194357602138022949845849039892633655767442976811025837449326393746245222351693359043750019286455393056857267831596010686253742238382453790651905569654918526346439507560605718171226997814704473837290181044783551725590442931428341402361112113887943398734056340874608326448375898975112046072876872765324669834985111237788462256080682824217712376205549437410740454740405272033429144767015680503397015482520821247058274163643167374727184413246350567681937571552729317911669246325765837822422895519207475814314800663758563696662145892277514696079928951826848567874673684239913437824451415355798180799415528900250861076838178911741230270801069017975795729077982860262171548233745349326788015683616584364735257414302210715960411864338219062973107255345144508948419063225169346470954804316625120853323750680914691648499509887437226869765866212296907399186978786631383650991797847204599736785906743391433523793357028559052226842969098582218059353812491148157188779696819313520788478035510889730052907653927910815788845547363738284193069962230989167850085254553191018022987930494966014953727150218605996726620730847606562878648520616031848009057723403525712029363675371812330086233784924161072593735842075922691540920543335505416299249836813870920652633390703343638986975063565417021106433838960523843752067801669995207113364495292736170649549447708047207888944965781553063862825023502247210615167459176642158384868691827604522012264238292102001271909270655568158645539666478019959007584775288189851872840682101797233528451391561708475073066730141052785615955132178072890264068588970994197516262401407130290965476806408474726219362400188002038917391333989462958185394222946331523380235725179353063568390332506488666308487935630484050339589272815628916329963287134245516444562390320130479792435544711709354677069757091589755814875306612219777833031016574880544663791413211015537063313851186506884196844575327453262357531251460077870321693167576589538076904444024196797224325157214372495398773774298439124129584987755888816643790503592500895680030689903008340848539210823854550155310422566383349392231602832791619120091423309522960655458106170040381278558137673954462965861395141372336907124453680153448980699349202742293604168779943117949956338536280128819858231133632290842651401723216510716328683402866568432676963830992030862620357383167594292421609368117163181744548566516823364950755764502028226584074111923489244186872844340283885938794299105199715509506659421179251369919013457922569667140643249951426970927523440502264922117088472714698837740456320831579023153064942283944774134468205845763066576261633426950262301624687588770094491360240327302540075237673890078928312033641423038143234953728412868292091112268845854246121069466574307175990687712386077526142455582592805307274063830340996771892484484866587998024561260670135571171604356992729155732357893215340135486036102902316686967571153676778947845238815772584831641814579450489181708790145559134524940042533843632951676311680810928425637225492181386411531075407672538661442440695685356712284078856097609188531201848345251650809767640184819607054712698122104517338746629205210842010874556279293296973532374807316723854185510908680917945412170771822490993805044076899665098024797186569307378608505321162919160831806458727285312175649279500144544035649424890531749441032468177645695895967346087221551831237510109021929900305742398223190135597065383423336985945893079733925287637634911929868053926353983832610769980691446887697724364335599692902057840365359901981755987349673353951995725904752937566304245780497203076181669658133306526570199903632115799219938452653865765257268862019126010156280835080398484095215461215534914571867805804045140067969918614387042197273256626515163268878377470010629780545147348333147162047482414325685977486823877326922580416944708211748558186521435833311168497403651360938721004246991284756927980841015632259467942003880587869196096018678754524376925680272379581459406617048540503471958884210268857267733444466743876628241482729794345216787812895638625960555980522682164041497364990992166867648604142926869686536036721047493353237630309451645549563427323950926011899454616067635626005639974799036130792716389934831568815019809154040786430685569883821249978841327353992468584809900602697722953460553244962500883989465888747034655336380582373087008587627238874348847984385649793769318671151876821017257921054907296535318240963315784129005614139004373647392061483519211645551573399556676477350159756356886130514505646353929435188034306770514365979074390690970448795552929314781877863833442012939370963267202895003995164011138639279196659680624786718464048615966051781761217790831109579248440463077951045699454986577984754082845658010889206673931966885144896560416270351272730173068544304784007461759422374553974183110530210180223530690730181883558581802430597745022361377040071969795396987967175322923180222656387948383026220539927915244340850199674921450058585600847151320083320694286063456086746234948843704993791426583302456619210438218229226821096648764416589991408687773902415620600307886613956166451905045325472332502969696304180064558109444787558667305090788280081879688463522447843672874077021305814608173873618553824933748467258800722111572340176546309577545943230780916689096998418603308572363467153917310120931451065645145197511005447022842551387337383475174440475186487573777271349670925014880533431435757596750387104058578070761105482968330818747919957451390609480983116621592599509679345973792787791358504227266263656604363210058971574020197406998361095306999660670848103408414098262704882836529119802449267125711529936297983465901776372482820378304738047842487094204438766994623581819777484635584230201081983511227471574874635335844618142222506329024965486613732608066228819259865246204873560169630490389345345444909464062076307363402700995439299288687446708938855142968322827959366127325779618603998973971377651372092737046373040471054615854428239432290259120141639989460716600620202830416333127186634865293270559879813587264334451387596082555443092781100460286807947637649547072708469188576691015883823551049057644262037789456572783892772800448900006956788075885097864454996916373234346244510494621830100756226777487190602824111741682070213810021020533393420330366735197902185694897758436868576518545162064308128150590057968391930814616622665998269454113673163111813308737777027943491633754205462528195605473281495407116722437878210824088598482473948283700311671708920522556202284838553729000185805331014738048494745602441525662185313747122699983562445484378806032278305193792073390876532970184934281285347662303570653491272238593907519551167908569725385069380183630716095169612056648119883586436641641692991002190457728539167795277677686744279158322621173392394426515950707075329722383240731052993211454660014721657695496950258657924783847789567179095687724275697852059183450990863168857874974668839727170023263303584903846855804588267094557122876387058094920416318854777403342930672738384737346122462634400177429329671338577249426156576232784432030171528389176675408266889907013260865479287990018644594354550432695470375340237636190281324680237047495328481772361215996068771826764088421140490568349832162286638610562669514483951374877949028832781500206456573607718864915794277422880736086387209992217509494652261715054671117577710973244716860626224810750293704100824378687695788562295196595217183237473764167809065244993422844227372060464113613287972738714668465282662555288169771185071599564631152772552874533637862187599910502659265902186779165030617721954987466024762524313233278790199044828546607865767388046740897233587081423440224280221258451669623835464610713637888878726328155216149471309058538937202452957703378241235371347625103196409480551323971739801803000233304559075243818046581608761788723963970257808977890550498876831299517675540166301504618575105689978377596627299705491470493336039631670153327033891267523374430041084861210521878716657111393713764488252218399532625862636275583676545351695148130986418003722349117814773236922983173996380464947170293583506793560581153837523983845489737116822101964240632428999103549792038869810594311840734337275984337029002554234401830023843377230539137687542577372368328359950114398682688505118860114037554967072433722192237823853558438685709661839837520070654535349460399573110346574820188432684350404876418248663495074064437124740783813766824737321903549809767255828259189268403388250807071857289017628697558585741184258369302648676725451125529268595378461895310927288164655789666783635532240047229447221555723899718854890815633712924520089351935508083583931411331243611240166806068492004349008450698238918847498520960096988583415557201701544918209641284677978006570471947208521323641793783967253867556272319035012588948597622393162525079406807039793749397566902697159258615570778711820504157762456405347283834404941127572087558221392493266697723012215216795060935486249409723636801864198383340213485906184435571869308304102904273177893564665528461390774680244792769173760683317464441711907985115308476604129927822369747816340410836334722992982378429795077357547678117059496910411308814107923884787037339780219857272132179829490019370078650601443847099161979979596718446136614734463685537638953207025874215684439543376450018679433650760226358392827069597747266915933029232012139114672864650121455490908392249157014867520892071074803545876436443987686381049355199263278876439731282415725474386959067364322197087804488807193183760881444235715717948632055860309875302359417893809015052941825507531595275004846791773838841669778730469598647789788235383334840430865088437106558125152617575247269238918392187449684611039584015747670910588583639398755796156817431978537624291566570585772648334280450561689564179630048669655188136156373869195704133654798177396436780774124902002804796331827643262505842827400634009757353138520120009225060237406785387005863552493583143182182849265414319003842898446281799613090957217529192787332279472378458384024598390989777793606056442747269181430681363148758997902792875494016063008236928758441927710624613542437587359164508844912202005249621614368239524869412751222581343906515303867802891857359867893454174044787069608324410267359212909871680270654545128300067486616452059648817341720715095288697500517037209768707327970600883302245451734323354683294274441391318896807291623045045835969980812077028770426083923014869751310964769270611690306933321101083104457921596429684167691886141080244537570835772413761046931883316037803114234291928463662248326795922361215920507153977566968339462015489684088148343759786186016159481095061405762508947719981102899583581594077863630799201231728966547939512139606195122436496797787796181559599302982305134651661795978336519895773085296421228287605792868801687220153162741485012920840311477302032516208423401475157851840121601447105581431141079771845103408894025046468529281811855124438965557082221541348716636456666456681357921890336468961933699357463637383431203377207282988437000074135604757247854898793082219690575721682262147502352090674291642441206989573551040357452030005932383680809008696561174178579506759325636099645124793076060273755508985981194670362940120053963106395722629176027350863887749975401190349069409273466049690101142789119105105229041317909047675127990286030611296345464302414493109494015737864409814193912314183772345576052628761345128389687320997917139465357620539886083210776200475260206781538010341526323761889235048193401116834534037947524483506556668877648912266523587882934297075353756071484429172397891749043053517629942137393683585089819317019845289423244140967709019635387212904422546586243579876649762812418019642311873349378932725234801479015918404653793787785108122104647817038063666332839650265208999147885642519496120840935270838497035489372198584442618611713214127084035117141252208240433787499935541882200249100829965482257445465745798884059252347363671215545275622127633955017244178479887538742437065756898576425733160520269841902319557394245522297265981268146455604945875260025053594240358198756584801068582610118592874640727096512880138989682451268297742581919367526970191599502617423250032842297594367884383584133561881580667124347487564115501849687555537503546711916230524282196920495882020379033090464294536057669889062171990847085626305095016636637772650070982720628449410434047210463068186136142358867543339127196151168463261202786305099269100487246150330655342232977958159482362934041496426459563045513623792609763294744319958533473435820899728730126909298081832671222815459559585951848316509258208353002494002320774891375060048471500317218255703231143877925774748212887592660585352381952279955458346785629056738623089998797961569084715860319302203403143762576597465810807037947249062624168658210375874901928965210863319781142618378004598400372066580060688816515384028192711575400582096591578005601072896157409024489655341092562831908001608742408659784709339500393654190110888532705264057702856395305836896806299538279307896852414049322235335347578562658127063543298062876136647664147230331998151742888852833073789050431285660069626889491003610286885365196279176902205266381490047441775335711177656940760044467608722805522083036740099748405365633300644140179903583626385246137831924124029563625110839374864747019768490358781218312343794616501875055450865577430459022430385713486470842925055728228965643807262141264520672716611042974124855463972763443630760081405483009456282667879233665493912236066132257119924659268106955551363310271468850870924036430814073722419365111191102483051400066270328695997578660229944972950926357128853378129608428699794631032097905215802525780392760861958604341176779952082839999926380379248636215093562198549174224094254585203619956613380791355073226819721298238351457047676336704233229950545063562290203114558492854565149524190649948797757959098678417448725581753343024739994205236449338085641601067719905622403262835754768713624880894689627430471884832262445487764536792782745122913645594134174222642455918583919374650369874936144027367628056280269044054446538034589962848149071365328855151010715656021676175875090212410227730565533909683351365222861245729501491419547532409675490017977614717994528135431294033382781826134337004655676512527999387729686178165533788893820445234734294308669973672989003808624050275908197941340391206692050018211174286053135193861645804537100020390441028306595533367829683586201526961464200548378440531776408742866403710492820801570713350795676790969053388697668465395581428167821453372853962241934506603561568831570469627159355450440896318187534891219921053990625772420549693852009389547435315273643717490643321788904959337968571685997095132096531548674084915458410241606525175009071744790001441371408228060227893406669455641182287459765075109929131955802300690033255325768431525396149740565702163821601335719064705281927626677815661282580993264473513470928145515224128521014279782003589052252745584836746640345538158402581953961527373816332781034265314312089789933032888280809422791127016382211029901851437086927651271890410916183460503036808923253812262765091582989803822619100177554774472577678192436721833729870459201554459951560661907377944934905306691608672502794508218378389909387548649844055196626022556413225207869213702176332795064092995655897036066762421644795034674180866170321498857616873153671918321007748721730399503698250845084968752592511801995652327847026241802319606738542478219038710885914814317669170407800434900300365048801788981257500178100529259955315605597730234920512664068714255245155113217439061404374388243063724491697437993874141471162765499654573249987590343469223565565759191265031908849752509340104751174100558169842100935615866624138891578358909672183287078370233069309568353715429537136822979274224832144386800377560774181848116832759902804808986658480384600475851634591703305028402171025838223544984654396562758695734911870940284222345007492710173754306778178151623467013454213456638102544862318525624923166435607374877359592675542492943537154434291958410585138277060740651946554809079598671249727713217708296180634892578472839158772120428152181216484609755281919681674427469515778364932066346276865968566906907044107501444002348137083311007438404779393119362026706987458518900666266739891103912161968802627941879736546391365589448942921157840068438441467355897801226169246351251147823904321536958389782977722536379375353582655007745507417130405553596608867266358259502475342188697905446449183916523573595597235719760160712102950268533704043802417693971477417982407083954358818620416358663437869444194858646694731852246935474275918556395033607059718208058349434427577583514765572214476774363718357188054224763086527056656231257119058910511962937908112293934572937090453225701514486062334809797826282440122280861582161974600208781938728687115668279333518109568433820297632539731451594862074446134478481393994272886348985801509484502381211446765979076739969783844788577337708198863073516046823966370435874740160921157219700266616126956455648172346649187063213999386851105168595450045466094003205022952682767344353731922786324785400014624133405957844216391416366423182773232879286219486846562660327435776961906807785867442682822047834118204546030982337978019712924624020285904517482195040605583819815294522357543899126069194034066325375109403692579110171438397394598173068807336427791267179499026281287718413989651899492561993712627423839688682262937788846435758428681331797940423449508313026312945484248502435757852076980365715788463458348428362358054163235357527348545549598555453552757427008278237126734131296431359819067879009283828462713090433300368744427972502298928557993429780019080096509677981332185729843087610483085991072102614086864191451013149190515979817680620878336252583514558467452325325741397426070199625462541974994998815510008433919974401429850416883046060520696546692772963783559478157527339195694664872458914843923272066433395074163276348070236605919060290175966342470381034627151196527623894484370619728063793818214856045691849634567479337911016489411631067705588741505594345991544351895173072444358669255144943636146508192628260157515635516821437420245392145613058326451683520995445269703172218389709190334335350484760805793005151154980307257971688293211394345591860792302489159555886130810701963248714078818330023985043878680622877026375746125943903414009915991910604637540242951889512841839173869661233143381541518483970605726922726571106701271956779972892002475543654605545133133754526727885906038542002040134022351441265376422624296669688633086227236182109121806974277924380127026736907652839371343882712463066679233309792119483587250489020633517514792853072114498262365929021896119082340637224549371232177840495057747870248443777874979095899913411852842377779535734649961405051990399301706752887949603861261919504462053105339353480403583481888272485318186234371408331249574493725866107334603455173777064434120346316530112101238340180360716534972355057578971331840840884871676958833948707032403225032535227782805950548159209974602990689004288248817970857460886089268941522236010558046231026224664878721462854479616982253430930192525725068054267802372649495944155002728576133491867417087259935341717028790119113998955619435515772633689550495404218713637086567510492624435939324597507524867964427166201988371353438567326247999230731730526723922428723390521113797573890643420633520851518310265386079159376022720740195549809669592574804434199853594506061219351699877651383231208032423065498082514417396768312626298521694017241024092851359914938527644876562851056241089074081676484450537353214808921483519861325301979362041072318854742941491940647789229804982923079704929411197697959528934291736605331683066577902224762782929003297139946212532014594156441191897199072582199298695112802125727320126549098333681650237382241911375144163912052177000469636620873274222188042280575267051419324915898690693098806498645051631809599564574258957757982125256293803417640986212534269367320781346057471127103831157326684832721627723952823575791321804216666159527516938894847950835839860611241953384140095291131202340638459435014059218405013145061326050688395663414986445233964782256674480138646395018955083334729721310789668982199442709392053186580539786247016412242849066854272952513321835085907059437407701638278424065407119525418771241240757348654332326959777517829677313847227336786285293544609107434057138608647065933705169368105160831181616535374566448449400641295319736405522331152369937430924827962814372935256505075437133178839367138888270393865493120395779922926349400300194543862648248867768231639305254662608016982712209430828911568274636057873517998765430475993846807555138691552778425583743613822903010037318715902495479128843901407174460359352774342800866065713807261394789255888473279470022996708710510013336371058705530148864201180628355635836425001257591580824407335127502315112369152705595628985841028002163898230800233278258678194675241738472722829695853288006576027056886372905559720087506773459249753757964347542218949218949485727546756448689948925042065539755661942279240168881592032858572203171409298518029442883154522200547746846546608938669766259524010957183203522265124517860736441718637154491016586045669147332601520605448504728807926636343076032365796550275972736092572043333821068193489072602952871580210595474570020011839659839276387612132534710069161293704221335464545436901315764735714257437548910663886569172070234603642808410772538949659239420814517528737842822789355475019247297381938722456603920628648284858489572331326040911585009900662990570381731608307891189513864245435230535107069513647974376948446197758658579824287849543999160780377233292039665433386327807148687815096836866199625303080771527723652295018987445167942511442587466560988914169669970571973348519110980489437153171951579868618863984070094209446570096069857603544234219926685079407506439912875954978389083813190363202146478907709220091473152866500728994345696675181677434700080535249718201534232159521134130961513787779944646597845919172017839782778228735548631283746743505136337344167754210054489715357642296492128190144001048408837866585586029231268191950473246165705692211102531966024580233565966067083967584351810281767629774051422730840068373607645749097097705368879512252109601661545376360851303646987247253729929389020543700553038308434687263810478693667857210796491855384512524945408183147724734850222492552977132628249238051567411840117222283240202878506869166228383093356581810616841089814216786615823590994293697297457841488515831704184512633898114715194614307194367185322904309825189498492183728306178082530428995609103784159581890449218090996601553781081712641982106312531794874677529695426377734065899054657014354588441647599927694433990641356233415799056184803945741177417023385965735801821408487608093384037857139260004366988680455975464315349768182421641424887090157198072522086825735319195797841887794876814272157310006424536385050390194664193556088784787951019438700310046491446899891747701500986711886147028069033608941903059653641270932566005955873240253410292474186732063844927932677070434401926781580988086606963296440907783002786127810722437996051608996312244327172091954545548411064362079057258093842472106628463444678673788827396976986249127516335773395951496893570027076712039357542573761043490374290452003741526105091920266589204048095743639999031058269794555303985689309713320347694350481621540463308413415081584488673470215982218506639883414393251837907797192860423850656596393088374171386202104269901702242472929213218153151054967593492686542941308322299284615079355531860528340417366061140171925264063738050710903097359107499856834832723941397706995498678949441208393087281199194156969147363510716654597764988113801124207660152027265691492090987754683686100300591030624882283086165806345564806176730086276822744258837370290657360123742894092082286435218548510332044272486759464822833751981081349574436848385878327003515954079676689430377626735953879320298901853515236357543971227337684434636776557713164990828007756540912362386495172269947242931794867808931739489866258446427200497355535484352488514489563991672640513427204609929334541131883568604744756988879356508315944719278825996542084924600778550838885382297118727859188633490738196578007066077411058991548342893788560527012656423351133801649029174375548747530117687589783415147551166591217124931457987312144234841915928372998441664972075982843936329025430536514626136219647859475860848621825895549671470047768264451532942045237493445244216022559216702703872539425576291251698985502113318006548218353740867813284235366371176657244968222004939449569359453317554198518230125658074558422490019849483051111155805300716243138072086811931508595024155482557138516645717845012318074301000817173111441243170186493082571744541675478710645815241228917093798164452982360894427309814801048041093593680728958329569669884288823914047414334653796830067532217943583793325072209721128961931407768956724303047455637667204489095190271598563624629660069217532217765081581055879334756757142039032868049545334807820286612195488248795210075675230064452079319284128220287211093134518855129392697417264866726288053384797605483485065407590323383058892176133854435440263907396329694708004633014049284418926770980313882039137533404681424966666042390055038853787070099395465333637262176321333266433414283707537623537880959276381772749493392611032254428779900400122655137522923808050011269269546222082777765876948916287406110164366804723486561931166418268869582277188042558349887897683373829969141232372546380203470239376820784001777214587031180365882876743232941157745886050282168754830460257583210139771925738523210109449763391344407496279731229458213433668044470923050332064166891259210293009320492300984192584246724432334665270194584797627633076290427049167622979787250036015314617861638211211387301410611246441443606327778225097181531579043614314627104726629174149794124007098262867578108416334323721311401022205329722255544581290095304299903522233449324393258516602302459291899503219382860784431725177764695944917229475565354752626361481509837022966420746950337716217376206842416851128160079567130017715764049532558464402829724245132242047594658008275603037342269102324659313424648679509160543668195763816966695865347475728702058452674998932302276087348410539471171977846563639913760929638654612757175989837090399957301816742408851542726553516586343328635545175941431927561089903770969376969930434919743853695737924795318900922262479388617952354040180083745648558035497299714237877140087253120980811907567144435130392065294468034662904795453465695424377797878693278915788267910014989219065519334750952604321510884896273511687088277604307457063411091525203616446414931117532558440516260067903886442167919994180002562360472335217183920853001481293899295125918606328580894184830503993475404661453270747052148951912049817406252020562418616307316492077784137539681951499549767878160707373786422011379603511817957706541265098466104869766428775094242740177396022015952212263358227466704356964352601946363427630307070702751138635912932366056482258033455898961556650988248911009408113349625942602490162629950716218457922669949553055593796734171670657287604105739051435873180699058557191907466125461129147491458179830648200494018887385646699199595943704380116715702832769346674839293639778632889734583354367905731677562790078552312370679818058853736095122293115128267046719135102717487825102641949005130583705486509065464800509809303271829541536851601614716998504703981177576275276572171873329735940864155769792624994721538510150902819360257197692516727121977267921324480067471229916427507044953001729422941731718108720764114779640001748563765176515682877498162544349982894342972713467097896946152029770027433054403353934915109823567852827685186666327935910499594128596563988611363225424898477289168361531117949460832485117897550943658187946683542780184136894536432986235583816675505956266851558916560009289161417813765018797438359076774000968911070575667131773691360239623888898435849670799942075915328889013421152233631465842355091927499436490484427466917880802349798170179181444383887813855567322771515768586330245696870246973817700190934232666579120077842855162196294707485253961891272708731963184403246779670433433845280059388001693313401515673681020166795243453523676979608960820379393770201339607722071475374035643597168764259451144563172886854553403640809827487258158714800444408773080869696690967931151617834255121490185951612263770458389845476067621647142308968490347552440564503349707941250896425097476558097276125811581335232106341428200669730091528218092799206721059365838758698520280315223986210001158475806199160652399477717068254647208008252862495711546868284349125500393626980030155213613202651691681287482357184596658290759771777335267963227232593550395894987687154973859062401016420145319496312643110625652918259457126265996675909906678733263531900688678002507332096041210623282887583510681279669661016531291911414253167953972710274401186464135868127111320417266910983267172336432446156390512829804818140662975584136679693886023345741126924924389840169000933336668907985034796414422586313974780074388714036024097420472497072536177567595302120507156317821359028381333447143228309943007357487964474127039810170135635237143619715912199951341790170659020978409771484468341143668144099550905388149498299926533506529026179584629722175981122004025562287624569568757267554855564561380883091374488961468271217340282504390705177912894662926478848185765912354970753337666905819258844828808399007814475415919948097540206267027572457639011026362393589191759272142618963927405843576028664202894116747105830032592827182498966451964799102221296711048379500388238917175158743203308793410703226091522527878159520655651487981990876204511633540656388611150804438312663265141954186377939615836112780142318816839362998878161329381569751522973081626953959170478516760956342320042085756819475807035190117777813793391121957309072090247055982625403942903329265814433209802510354249953097499065249551148952262907611636994403038037890241079257929495151686853439051041022196506463909838647855581752568431507225264868996780205078002251636392512217336631453986359624571700352423230198158288732707355873767655424086533387620462457370321927522160186080258752177745264364642600168329062999797910205312151267418213644481393288908097214053169593884118047863401893219002264493482992909105237149220063860604868571518445489168199115141445862608207110882380526204774444651410421994609189457446572160241931267316833663691912443362014929235500577016518300915774588341837114287454762426298633169029269771135838576416733108367384997106053837945623277685575332112075041358574919946927419365381411350399285024741861939691329310634633213180062359336040577483948505937540177632677803267623616449265691791662997258826975270847034754344658101621682044279617469373722552741766528134658581472407026667593759206598609972327781838785005465283397093736401615488152421423824147262135573590485310087045057567691498509922860748507280652777508854735804580649556900789325804104532597704937096285216722754075898597867706295331704621878573524728012208050722801898849529333694617842795741443409174085493243860311305097927303956554384948613457838987095301745947425551212581622733992812830442362772423374505071863583494413894864722189473768327102586696734160859243198154371901589241275406823356091847546472200507591775077183274793668379427705202570771328485925548807055933071071753703359970232111874373650540761077292108680591912889329796189372223773095226703027911154952297801844609759816643814940715298950369695581583779390645541389745821050511401974638263766376900833874047476227366144947874675110410647656429299781808932024718946729730692006522994296547422145922899434461234756577484294285834128217970792376902271512482397064465698179033878692363296790824611099815431408211828163907779432997634382683169376915275152032681943024516078859987251674202388822045449076545600598511137890805266409163237492594627267504492883892509327917096763453251461449613629949976762955286446749620957125018277931422380795526650960811126564003961583748665823623991876522910770806857283019723962523515567112129458980378675708135770964165394478866260179044748532927905653862448798780090930466894059194516836361343574071413469919625601312879187579051010647742479739707240647553011162442044061232531667897100752308462454551362871675695995194282117689394595812669057263562118791503056043757983514835235812381254916762868016124358664025547784978356711950777596730997416788153584449743450750023224091981262448819214612966825804289324221003357245694094370639569418245013846859417241228019801314690834423759106916264584403082453106112877839617964458071177211220018255868987518505101556281040273819647737816675359062347803174678360596979165630949009765768608993523455661305522798555171309526719827044698599183176005635994344366816477033148098611797129345625927637914483427713226802761370625670975083293987152939204280127061727348516322105146279852925506510669557907234151010669537967265648437885094227557158471162193174361652650903717279938386432793587598527267705695334567030972169835084804797295977920952983923439365430042011098436634202915951056041706916016116939279340829489431495474442977555075970777102444542475842517235871698643041937573655149560784324910011558156697493045759645884826479053370802790888081074803392544262219165800634107977091394495000203971054087370934122084893080687799233120375685896609792849808803578069467537804428171120968041735848538193152988158114716032275402986209338201779617181962388912399098083201605126520532565984618420041700555971527963310188630300049050107999668498476460392627769976038270951321980342089166387894937846905606650324128583667459653810406337571178481959600039402224140753982045243396292739103088634140392502274980629753847073760726439644152931079825484559828356742573310822221845691496101125707993483350510297384947860698872153545129059998737622639781596060949811859536153098180627540264702472446512760271134082220802907109395617308703013433113049583105291752660281574869247389265165951489375189683805008587469798579831237475538654318148506063599800695099053937485518002888309250038764519298037005758366518937725684018483133140548006117368979678858067826426175607527793217314794563050084617357205774310456921069563259395897552715633343890096592237846379338340674783226936206821108655687354102682914371676316864591952932568280099557669937288120590417085403592453943872038592088063765382877985633223129281097397295591109155732722005678212563802076747981186902132554603394031621193245148095055886593609397090988794940906911415911553528407849609011746201710032673385041279949303050525850214492902480097275545830528379593685654955292128651220006661235547801335167430383322440389254455097525314546835460115204103381591714495104718608700432725046857094062073980269046833232277911412000134612754433383600853478416572921921113302575145099845220000982091068999835192342316160189909978270334528624711741276669927187801568245877470201972527623900742052195115164293677337263863746802910710594395919860342731524942904123581368729289991213981821809577870968759891565512214987008002795486919873933291044290927983741261682424665911729673185024698908302539330907189655357583814102852439737847108137965917197721500463986152265617831209229461764610886195677707456054642839202384465014086339162523690251566184202175106507463303329745234931468570754780775424489101268616952871404825478765402047814802444806882000560282459163755432802588277599224125999486345096358764488883278611015296048936643834528929219718199081799698604424032461008327949133021369432120642528404817837494252319247084904745192185374235176135474192373010569235787005118924515384616681432806037146447924089536439790616527098160033618216956061549205412446377964436439175152968823275743571504019525670844772790532336994320999482175116645862020499819550507739834804301593162268570563824645181131521277399322926639256439725882244103688917293749764096238483563907697707658504273359564321888888275907545594628031002419712613599334404216706433751654472660326082998866950321840299620901117371830302472560510614002888677627609950092781947473685316035171286875195012996988939531587274910855023929257359557216474155642443206560039111294747497101501482165995720363832951359436926847925053282745733022020758235821910198200774069612397178729584735931846921716931213349009524740310092979959117142781298214991720647196405868830522464216218348272131010947066895761748053548700964809396524382021132216510656478432746392579587229456807184320685211837048160106268576239337151236627013513736455539255766493959715732577241364808531652376400927697433529636520145790051876523475141840064624325015266093694442309021716807756686192722145944499150377035892875812306217105742833986219536017147785167770337057863007675971215163269132414717520915239376455876809706319233803632197196010072718469700582676359284039987798363619344581918062859294271317460107913422002559835815437737044614384144838779596597485025218584168328210399626530041655927345321236873984361403664137098038487527182079923555837119412761773338866288377136875009620611072179638655572030926069698606750551371724293232940218061954545842456858057693205950447555914109842856459941820107315167323392900799166398637333552912135732000848474217095089960909614475859308845237908564924988002633887783193841292298131187485147127421590530065300304593291825873796560616054064319173530823644862657828244575658296375870340569521107818421189698667302987380947572730688211918953733068376739884458363160542066382481323278071244220131449466523346793431758875766969105998194416829593818573285390861920629031916672211990838672565010971791603011199270689626132807213459345212070692472072393264762846680557539315256941962229352677887194267155470897048749063959481161282877859010761393376556209602568564514850853341349952597473561030574093352437533686306612694297491278886419710906104768382246051876809597452931837401612831056289987461777142833168414553657867099884697210402717033726002108116917613256499369453114307283849530301284699484006166630292083014763786661184799443938297990308023683285256980344986813766611367390952553988665835150964160357721270328970410608228238864274236046928724111102616280105840442639441932026556579737477772785725507795216659326008283583023196836573818853459452354548624429138939626880597937865442969782946333984393399822762639151774977005785229684414806137367234223261509615988080545259190826761902352433252234912411719917603701089487729925232462178535562108865197598010680724833909649332107858315913520214623950958284959887845124767650250537545416069672366873195739190987152509563799325829358594476089024795256056849390811932055210453073615568861938774609313631743536029388719910020335660776914273061185084873347260192240775023390248293381690295168697508998131933635403579049022504488627516221058644685933313886442357069770964585958627574296899196838921919557931944116574840070075181753481040851306772080688553221468804643714868628252800619386879175423071602226150846333076832800197943949412137412757524579505465182364943787437743733063725806780658618895002932458077176114901449772351051611690111186285187436581755319298167291049846013097273332520928589717435148420352804663299624065122136908167080224405798220445761181941904087733631856741158289237818613894534932137545023283150181189909083786606460652952846311920293183984949128421950780081194554763217263637686722943754335870120709380875322224341716798688613886437874118730299537495754151552400072470806687545967461491215724143834822608499916719350970947267612626643515626386101406582577736762121389449555701502413929965895972841440256425020126187971032952799399500875084707288801553649054672237789895429683534822030996922086465889550469146143755706837197954232195927194153198769802138653155084610687977752391400645358763426027434223173366592902137083154367910721074150342393657270237394089422415506893563262535649735968688592233050940770555541056019412418450970964251152696157163265447339618586614972454190208037430449486333863806408764057312971757289868560348898398603176924752374766717061814733081782975567009860434912640971263172058608436925171505015239971071791825167078242174181135456061456057841930946847915462449862008011768225274570257402289604918769624501898243479025122265537488053697801731411145636969063193734562073842024580595463941928540370645274867766180441017948481063223218938340734105413111443727341392482369426748795646746151967336059308293712697088086821731441713361452179447862142522552014213162393148379497449935656518839510967800614314107484927237073477044659300690427308217900213591718261632775826305056787853551695282470694133127333371893544899943622105494131388162091913905920138446667329860777232110554027247320814097517308721801897780673488018322416832861541466534294699449296818150837985843392166338177784188048963974578332769459921510870234838575364107865118907272666270259276942281596526827471621814296048113424391445676053904348981828557513570554090826234141548855971531178296137383242704992990516654441139492504061713795992115235898184138350146978427114252862820534470065241451443513902574995177226520908400568133851515498254915830572322388336208949196227871452669618044669106688116011996278437085753917052291696288439298587453612230713330213393258381163343018840824674978545007477290251034016455002703317314210887085981471210831944835561569576878968440535764003599723610488873885808474562254749515073837513309210043786145460844917733573445809950654397092498655861360057872254366607721058986086701270531257818356044152922493720098166514797941664016097117693503936312513954196968860042727316214764930909314854474371164830962675404250118778904176880269603280784120705262778901062369723066742891909977026248743852925638554629621897390020231764349871340741844145267611979929392473999064208732082004253764957218834293433069658217891542110139483082438226529818892709764587909098963960976747285238886244132236249124020599706191610706623838844829800650270680666021911959741057460597231019581705553381669609823323620282765632869500488999666516053749084961921734081709597449890930243238645725052805646328433373365840445486581160896339859848287569973652501654553060233063272753924961266134832424466567679427372484854614796413751796783484722647366245287741846082113894562419894325721348114637272031464322181245733394251323283660484752453332373641789143435285583285158059654541867399531954193213776927876908908448466847127771968037683471914555137361369220565456871116872690584331248907581998447135762766502757300110045660762275715767050849353321642571180619340058133475702947220631206975547186695731471776552951079476130130247492878257354083168416832086204132665472081386471906339805554726835981283953273161752622517800762068550851203080609349470937189903040960384940032645733620032291277879377698868775113044098659566896037082369242327188984127690985386347402761789567883549592452740027565664208085149284758136791211262313281959144354765035348122558344255124416419079397315520003333389988457275700855996473424934173765508302892961484620348782968499720965062256216625650800132064193955321133313274787246659212878092419156990110513121088418992815046321436470631216997165057990357693857803724645835471414605918331672766282124906603614796175518780400989460541820985969524010658510613275522796439796188018641556190259273933933648085999366508317997145025666502353232118333527971219735888302388216187880353792546834207672821980042297330690076931299309397784608239692992496760361975260366626874887949452237070700031067950580402933673889584874632808809552325244263784086399450156063390730521533508107926854819416235311531270420920242713575409277010577762074654904903211604732038755035128654916595123382972624748973236499088034571021309600581535507268710429781969537540533077079809114898265516536431166380590018368401770727381714115261829735593491864007186044715400394388318115782411492555473544504301183614964620359527066232699831090841129153506637229693556934693753501685726729913067964162299389066046431031273882167221178641394787399783127295174500678398243700547155108487319011382754740284081760268265857166681075618304263175765104076116067882724213751102053280752847209242903897541759087325156292571088259064703077204299565824100260703328352781817743424108683981884855756917739458313358358507290211369044933499490120601930541746957109198309679869746605388295621535769370154260137266787917564632297625756925791006742759566400030580730438033820166491644536547103055126751071310941477712818991896909634367594960079782895829492202263127807699133017331658708933497458681002016747922157794572703366265850243507164713512643625534648055961254470892726116689200192654819331263352209040011665801093914886898067422150757992622737714617021560328112638439011104050993510185221147368946803888254823137516925878359990321951606206846536408270439508563334160667962157618099353633027567901645709066268069448797426470234864676144897215956230248604440209626335344058140828570519241035820549669959362169109464824738109753155098577003381524742471060166279483446570184574439133553510992388688038315990968889365683552278552146113906160613076517509396998048239956719796081203644795840764288590278407071893564264752204014358116291462824426556495086213135919098979200437391975185562330755264817196570626191838271676668121517829201629678681298073392327076648362615788529614478229044727398480008800423982622799904242027281889142280474526328021562084420300237260481969121265853116052274467953877164574091611922832297411092808960206423720693868031450761155602285378169524521657431075156545712864096787287188041326284638059819730772907065054720595751973167501456150747501637251245890691341518470166737587773131799220699289827221525288984340764814952167547339014236802646652624607287139825132588619419589002660043964075894202997035521026441039970093038444306850518962100980480838744816796246504008122967490954556694498531639989605309021161371789054429618472591242397160758853832016964781903458896652901644428397941529389147292732834510298155794894141574175773018933536352596267636728875217348668351659794234728410465116564949184565594395042804988116818541751989649933658401249941786313236651928417688410015952251352004977574195762961760345834232451958096836510667449537142638466249275871657557820757711067659001298035122945030402409742457812740108993038307254182300771780259813865622604726842249015817487325624460180821201885661783825463987343760278507281221101250633743236456250318556867382839099922437901226672851269412537081698190702313103971738231690997707130803980557657659074724237445552846436322946090839357826034271258708905745935566728083170328834198682039052479366810181908202819660708677995055037623081323142320572903445638982882424664974095836667112021548909611538202732772247469051001509515831276664780799547634022547143314448818257022168030719942586147484537981033558520465666238899178225463568639282928218574356968537216030529609085875700178703593075016005193956024232617512297896464829780132140439895525777238035511876475474219738401182887508905408469707965201540687332781230982465490127974594334446605677951049548706439334423768703613218128092304887728951596290843839427216129096083811755996923507717905299242948653890765943638077947029311994009199399006148346017625410068525567876464852908832418594832365576776095160309705144850236332021582791509280615716967545662368975159618945740362659793048911273597701408252935300937901883472344091514217034069629340618636576479620407351001929923390243966863594342519207312359218724053504026697213104147663599425334770562496806525217588472092717047083316174107852881720340776724386534029655120437498636517446348222889902113510813228181771769660631207547276111784667573886810829504701551670336325856820275920622169625146252002144507822193840926264224318743572643307766450891175051181824261197873068270164675606919995498008048526273933621573215379120874459133293377902046857388450116327036429976098211715024046905098898469085206201142354735695295520172477386265014951698176243067460581183266079174319895323156955243145415223945978617847616206907264775290221326354725797028587681266738516439672455606727758776480052137702014613438314657310958091214856586379831141153932781293208262311546722923625164151559379896173136906684116982395636330103574790937204892108207750429860624781075199879044761373965096900036495706998095378024936479707682894616979679675608533069225553248683935341772866645392984466494470362288245828082932145855473226666169833274240199868429486013707316079758968895723551695686664746500871280853224485664363442437630409486202044546459697465357863272312853146448094185661953654846182525866861485169828399867078060398791233653720658116178050045163455067312965417620808376542675096881742697390311823622713402428452015435928101780812870422929274366890523170983427288364987171717974408214950140955897574555693104406836262102304214863151294852403442457618744857910956914835066209421311740905707583375551907079785970883775680928499474203853941797814160124257129374657114330745572761719959676943207485990489454750506280758104639028730358180438711347245045471244876556382467065059661846539109694792925096538900289966701577131500421050380976780514199789780101908541120407712983110647922623214199238918497933013996197432112100796167267396636078163629862988009824176620935782676028577123105776417647069485248951342618034735656532620340272604110718118945067234017399452603542949590222436341271022532665040560850839319876072618082684184945350700281783405781435612567380261843392239778271758023711624834312285971227940617619559642807516671237478873857306380681721803897863242316177840744253030571984628611420047001562719428415990541661429395787894274277245410337488423794042962552241669334013095723419892971268964277917360116056997105820112695411586470053975447045653644410992099268663314941251988456264950579762138372146385905709330989956353027144093111987651469677804037418022109096089633781525969677423566083559035376158220976912666559121340726818721249622595211388574212728908976976869743158814982079644055281470267931514451342318749831587900286278516625498221058657860282364706017960588941834183332015698470002756623055504302123917237703787635912883547452798546700586375720268440288150008839454031345478806495210590285158803087514704455249023513750469494722884315857019752776924076515530591961991841296432126947577777477023192697116600713390781443265580010407193032560143372014174498001180516325093359969526439607075056512701435993698714459175914922692068074552211337758586481844366543414306562015563621201525920277001538100763351554425500650612566666757144258325230064185320497750548250733389054610836093457390870346908126686837360174476357009790514078048659243309162087563800920398467018161609127051115898494667530147943073599139806509889257741483451292887636512038690887239654576064098835562251810152961134925229741547844659914708445047824730683928503382413034740828737228924270482760394071457234645739560661450072629723408512522604244207750493975920582497297448332754409059486502772630842617747645910053796318929396314246122993450821046690599805048061298361714614137509128637336105694696863928683630164583445129653093924135437696399303129274778221648778722906729912074420720188571591998504416115239102907296973062039856384437884781229004814623636406522280409333849095187401324030629633547709001113927591582701883259380376453031524003228420605699300903517151900326764289353408159608184341764365325765170963243949665111760007102846796455342514843504262602885690593899185957255066982815703214518559302301069914798995552786549971592528448589435154221177435584487841539371696153472598333073369078670014344180282799868760073741065770498254667132427359519734868261849079746174781999935368321012700886115651176188853310502592512188735260573191350967352183916558463343761562303523575501844538225345051551037610192188773215909097754834826812971262211650614615212134169459960718998568872314457685763112292912997450385658583598299018387622999347705945886555990526681461751263148826167449749267171065138224289288811069009804055785071527711801354687689370390535205928047822776677077520989113613281785101923244122693510834347084034720531924169539112221416307197350970939555790345855563642501099906535513872141746423453766809379420617049364900405301156956602820060253472032269991189021694714728300307567024754579510385351375241980667134128723213312443688573824337802149752859584804777823217766207205273845726498589544682780442363089235331608676542346856594332561771963458611100517791591039172458227543390787983880561394350350089316516001475894483214923182998628792734273612815152231348435006154863769012241525066931542326512664876438637704797877774288715647863140205137984239359788013642032900525197784340309368306824260153640538992301684038741685319717665735943508450607524883181405275058932502983140659507924152424746587970573508600723876489726656766150034628987495175067460014482843498887283628771463022347658450843150263238621854071625587573286130447507522415589802034086428833673598136527084897558515207107780553581615491806318180962566252290424506524103585481461290094289100585395381857794736815154629486358862291829520311059123183532010018421830447887756443875020701865518489475999393188787178206033752801292409240642445711032099989049868438144835054126458548351788453462353615606469548466114185707280050356904704853028122304479823772656104035661774465309841502603670642228311418781153218811288289816311120114044626147142879763756419159626209078239860170536061424778313501194635197830639422662441536872955843566876359268625481241237008758329077714443297258607586020195029781281252547249258703557591359511561699004895365935666474786426890723628605638873888756736194422786258890099381048964316976013617078026538665784168533070438394283766157173106264554378785846130519666863474378552826323074240898808948276139987698804046463987978611299354842216487262059332271526565405969173007368309297188441547675510634330407267732457874441334885489366603739289007721820962781217393034343377275287664673586644762822802947445252947841380193967800016014521655583857331747192555740265248214276970690449668702861874584449871056539030068901889839801871689839360505560128077976241618099911532906245991122094614280146216721964060807959058985937297212958531929044158234508576154811578314915374812419114716548550003306781240877815599919704351560487352998790065458444930749843191787194617585516252283240736588208372511934526539609495111130998704049683044252517975906151615156892715779595657140568438813965485642593233112538059421545005309447284596114153814321891866181782226248972871522030755044901820799727278018672049648171223473457973564256780852996405386659043202673079390238243549992933090294806591600796880305948796045758865991299498901025987039632141398518360298449258921527032677907899505450305621382998952001043874906328059310402285786322959644225250107269273462343176955754789931707066060589118128915244024994896861699256021232985734624364383846034306262657868672824836279755491378500721809684493040982951159778865756594705289886022619181378893358851522703437568397483712551324079977037346090571115356700568408890005449645385058716576417621197317209751867965211363351150978248934804975778071436634892213885081061101176586679763414040899328702070294409943579599945712736603064971419273398145669735809144849624101759593359288572183897664344021465974920671868360962400189186045241858678697409259817171996000865701940588849652113639626920143001439295662104847304559742694253687993240810139875212725365169178346532940137231235643403677420636257245224214550306387214202822915929819475465651594062398205030421516837833966694927425961049431471968657563116174182680523737714163849298695056765195615917560408138858660430727946355979996446636654031352103669495687941088427220427689679039059955864164318363448664519253718569575687559639625790993349494951664190897774068390708997212933546970070739188196286966615401737118221650287695439638756443633812726962924930281266203798054246732931112107366315855072637984004340656204464687132336025511275106188845398973127166577684283961200433284669916705495056614524684497449090957717026838894881000288420116418631119613050730727986089548950899349279006124621248766235326533353054782918386913058495481649386356661106182509699724638332372442086377569868481447753485155538002925481362534878144583585276082586552657283013614414833095850156017465662665332131257182459605367616520936606981970991133203828892466691098730733123464568052515872549251183795556708486956348442959448098866813621236702509555094441701383831892527226148747883504194424981595578939841932357499498002935846639265736998494692756043520323520008113096664175497601483151506455935481187164330133683063383061753933056791923278987024248270383974046193892740245608435203407512477522661476199888216829727290854027951597098531240480044530988086960602443198527423967842437312988441942483652230924213761854691259927083115138593230683401014824548324510659039750214982717322184147854168290164771175011225643759846404371181169422657357065189287698142698291607892640994665819803607325857320584220815066397792263644433206021455872903225177564167158145445981495911010801750665442593924282930220515547864307802559187120061772882965195887509811964303898609057174989040391992527627913780285535425506835846183713410006629068674290535941443249563864828188013821247706156742340884576267480417389263538681147568073415436517252430531561015260435577459266161411306940391092453406709907350363233233097368990548584549678488758000790806061861721070721295271963421818999253360725832422731112627688569701083201528590180874424938859874860873816097052959949229956663254466690447695354764384617804209373108292664234269689007226979243008932403288664238538558879817429453222477917982456204193363300009907806872257323696449417415558697689725063074508531301451540365613330441347334900406436471034767220821962595893257587032732363533302436799475654135985123680942696293993302327947327303089640727466229011973509431550523361658325852562126742700486623093265966907450972599497333773873169981761955411952899270133526411481094560159282650245852758482244754272111342021762375206101904469585901254347969970001571243599541510599054435729923439435033478418643753398403650387685512892858523006793519003445858913879162772708172571789124981714209742663253896194668217454975436808925445943577193883166660671509531197124993783052265869472190410785826293657280397699284465619838859611152280926955679574126645727071390246369393466945361066603129114210231446861459177045822005053345649684669728311375381532129981858399279625825794391729226967942321413875984952484956291702394356172703823642364422653455386606965762277282347594834377407781254098556520063762267370518251686947485710345661795140538341264061137246397917137703790977190277632389921486595100081983026649627046995559527014453459717248961218741699005246215704206837723969461039115691551505068640622001440411959605765910302319153480030121828055647558176355028397264031248076059380039208079683205295454878058171660013578119030939346754749526916334676450359201205086610064367919035449957463164434951889333242712787960560464174611679810999631358297129390791218925615797568273023775273117475655168077943108682159032080924551729215533642446167986469072771597646780359717512776066242539136920650247098385162206597704880003590585307753570674405653529937398794674456655691030974660617474777768381036369726218484921150139111330117256367153711431897173618391834109881974238020146545281250715439680672004873849333228388966403629531056247565083943326427307922250759895226604684417748719662734122374032511649102792793585822447892487760673187223993966408725718006131005533413198038171321184611774521536676365541673520503619161855961824797887937176835706252722982487647631996387812099175595623430423969727513365431462593657368011235336696924458546816116068863175050649773089861019818407470144534969580132209876679749026455320297923224878868530545893362120888983508530835002388335881835951030922145142565584385404381826573357695233998023931540522178502629671542273923300842873008321448904168224250642966804516558162334237974175824108626536420122036235025864151933925255985562857202647531775276048688454663120260706334732828933907558858918830410308292707419085622429236217891305560040128159834935282095994601727451531113902761757556675003202391849774180684773423352582866364903114417071025894945589891916687850789442448384927124567438955745915236386954278324942061134195213497100960799185780530246730337446725324063380534689566441235006017011610046464816979663424170323565929299736601208733735092098765200396364844500662436063887701510551472008251509682901293752144010397258485497617565560875955593563298981992907790852481644477148418016010217031922831947386506133736822706417135721997597475188171099409738660404420737224390333439299640783844217569023720973345598560042757343635917585737174854371503674852603993016435578271426463894416307256210204886733681838403823679811135930042129462300000953178867450809419709812973657168616537186506544586693373107723226464340771734575912848035156211480581841350974848730122256534548165257385341097580672236047129496157087845535075550616094632790401312096462204591642661590524901750178159340794052488929029288428700771759833364900853706040569724428996786788378427536568806368945373805671862394847012890153955987794795059790143805044631614751956984644003880158269914648002674910551686307213114213171376809902487873029757937992359286238384356426341069101537543692305434195232008955309291098014114458836442101596304419021429691791406491916878187807878008368520399407247288232745487186319007338612509508462918497516240527541336472122033536993761895256913543482849093783674198132307517350488211954847112210647686615416755821550415619667424042335634232497711357495362304319190641292290944616216011618164132607980927099599486151318387566433223139414402236262938629160977312002927041506137628123897848065217152082991007039249441650131665149919369696711081712355697620200411973310190691564892415543744502491654641868588011833414578619152147411516952430828079249937933061005295971386852355806310956918818961216280361499878872184106530572024040083243235190662352790577692249251735843749593171932520157882636531438876514103907624768430525782293847911172196946059829575359462724243072004463912058992463483783137000597655211194094031029147700247338665357860307643480441557274262249182576507815071486268219378070129868738797811398894604965636192509914190997953451321288054900186444781223854228676273758020566329573998150423275599394468531706627188494442873718798631120427931126828911240248198336181964254202795945576243932751741209291865616908877575466437231765846930358927513196490807737820201827391393769801240283329346938309429229457401630656843576074673077562001933428233184539056443878381891946563457616331524258562743307743461698749762257052760009734357173673085678114232883066764687714619950110999017939480603923077518859399054705190654077474528027452127558808789232079165275490766530067369597790381558702441036943001412380066563500366565694414130974379096762279161551546449231621487733843041425175826620830449660439108512089899183004933123324832826981553833352648582055679396658569420733764542457993849039826896421607353488045450478158858207353390236147841148347166113240191508346626439281346926083777246819461897040871857143467782970333956104904385594477803072920568293783929004356024106126794165081525224896063691887582520884071055811847031341927254351767745109099535543534608013067712468036296618157477933298131145667857661660529197322428595365475713957217775001789102974617360566166923608916830683788186413494278879371305664806328722614032415468124322097040686281114294708243994874777580831036007301484625926688118459023068736211228769620397214002540285046403613277553276140876427163968707615160684173971984084628267405113242145269301938353880231153398301098588528557005168658101310136605130524965268788060276010895804594150186610660497217799920450610689213796213200504505127194054778723693595820779562736002811685342880168099545929534711255708521543757993090324196366210699663235122454480236165329220653736563816135214813808615124514482531996445998008135558987444633184755851825953080360026251279779130754960094197499223852196984621777801738193587803081402867999279708985254024623780249054688566754121354626549812977314081415323475679009597766813884282349260509644599779486191004265345550286266226575854230329514764552296743705915114756932783842920554122287388579318759071154979840717006649760478686448591516310395110821475837513363914468790050131161299437834897662811003548751190266939205111483335757052542113349907194916182087435722457873066396947726018096874690931387683317823218351216056940537955259551106903582567546573759522479728276486083620804019844992999929124441173965465823599650366173845858964416298118163532513868943244541922406582500678513385511110929546335855906762482966257769543662525383523485750848209420050782362531234792623634609457728935691199243203683209599965515295213181097110764362600418964170330772583170999101623636691071216090378075157938138717498052743963421176319855959408238352619685702593508462685427468423672773692690650202966071525641590182593007357236677601623455846278459465808151595464070000074632484840176666546333748404707621447279850025769760874054032104964851488378135221245136262491650751497622991081388637355990444698229751042518874879324314098417086162008348583864601701202556746826810665559729126988406009335392575535358370190455097346101894385931823283363998781905735604176830451589680939698529651043684111229946429086797326226843207950895232803187763134999934237067172480824146890978691514564116634305075460216158205824863786529137656337871573759060456080663034641053556218189876831283869672270279778828940661258905404586616515478688283765694741430791154161532006288238791156140144053929604299309337957031709629599792932692154012785673492440091270310632176049497983616007274046718784663006088924094425285627114458751411922063281981880461509860225714633596837312236533560419729261118783340291717264152078905666814210282252440492907874862834174388086515309091215344083881723958775401122063456123009975330217285201997585863216378467258557924360703908012668515617453702022092942289013076653827000828339091240559999248141501141480093361216961039860432342046908310060104929088266471231328040194110236206455753693186845780497009167875548392952284144396187199545033731164790350021342832192377823681846176409791120817251660437008007675960110080229562070984383469479841776966745721499587472089058870772215987631894961700049303756620962163017360999482622494006830423000888506215879145933729100813193731189279080867951530671646387407452348819415853593808526154332011079004686302380811883187181742933861951386610816351058181420960835688700989379481418032223853748077676806902860241302189967948009063129096942028409995046542884327324493222387801914243427061250313803167618404240907116694928023813874616500389899462255987935569216773571905685649677020398011222479485607577082264284626035125791935751485220664675153613491417751121868915898531437637417347472956353466589217139983634304492086186730534338429598659451578330667256934643555672838642741596537839019954032784402676028954304815213691454376617421815664113767555366688111784990738571661170185480178815294729099637463962985211484995898475609395330775925206765418961777649416338187073153019901943298232309856844442490861104861282442813665960034802919646578321924133053953649370626751796174242987580743145526786841071424027586203765747629655277279507405192875553804707332061394303588413780953653585960589354860134119566491341945483380058763114746153434085653801927919851018134281829250583742386388587843880584438994836850035661488130363406644516808944944885385114037714351189647016228825021737208316726484774923727202049131775694176147101993216144045319280908937100278527873983847287157306103916154859836526926827964216257351169456570288287896489860047581218970345242277691059920490647283954380816881088925986145958680392729621824576165111008080392562509458124428877485462923960589819663673459230768393710256103635177234840182400463006383488327418790952973915880674988202576309372922098159076115344365858926428178640153551539566728952651504393579993708804406000533582588481759624162466420996452183277980026709499813913392135487120773220847208183546032162286623174557674037906722609835995538922059499269688819302668434753307536957317415604345255434779147035457311606152243809974674792459204749842966236589995327334669717864051052537071752038713830925381197753606181632378681370873882130726461498319060846097985395740163339143404322319481848748106812006812764816905492133071634098445924181629836751959752798624823146837125384289780975331537715978068983423763247937115833166675854675079549504463503895708383687950917483961959300879739253542016537370848281810666963949493210431825881378763328296645977367878183049672046309175312531241592238565979574995496588421279149527540668477006660000304879141035606828354359879117157494536412216865936727050727032023260244165085683737077604959404309163487957435251630561510827470841260676401663022233169132243360586157492731993163964895088718440253782772981592449612769886891583942071824136635469929912595443663698511085034337427601077873118642877989235254723065019812494450026564606367681523982136218150640137543954175876820181605700311783086079480371670535976114736546200110898088562005202873016243456100689507327238167236569299890638113084845424200456315660088560213463417732510200679256818798485791766173506376837084229897855940568458493960643874291962936467951188992302122526568076001280406537294457030320275267342085945948949271124189406049226038933566489094746818205367567967123713520899920799393659618288945836870835128362784947538368250631193783055290925843668477457541256929332620410264325821169566787954613394229806644230130574704921910171342304820720396781411968113673897638675389458194845748462771415565793273116721154061474527856350635014394245277617020048337934947929423927029867435432976620430081960045100168626011720085329728528280062558960890480710224335314388070358171785605996387623499141380033727895566600773875112345561865769842004856083180383802738880141058290387012390206395368607371231695860014800780661229080070610769933397637175488959022535441839757341009481647104146617881223791740572741549179153580686168434778457615709242322049087529823062518450116862570138996440239089483309663656981188986477003154958289672273576830182126885033025100027433688428628327108066092909604109451629264299752160657750709897320019755379872409760226298027910389716187361360591895775104942741706748313635410688250569248327706012055240029556079296648966503578497049101034748627054232904848420944193186221073105662711565980405151111651230269833828900259531222192649224763953326685335198701272852378811663479312952493783495434688664008593770244854617024925825094548934183973825456405916333439521449940569281803116418278812420854939802830866288031476346334296043163886548905393722404542623102667695611525499131363685627635458571131358414108260646817533362629946222128592804441785418486687677793693677966598743703929686802836022846673592082172377297602990022738128915195531470792372968908728332773673892291149622008744628680608700081609873688295382166451054533688625907817447244669948949873556956932538681721900562525822509946379684691502722104567658379468662561367429532036274163736542127510984000896567491380012475010625150277095623253146626375275917042765049273469166827809983970193156511882433595857848099521919241705505235225542402844227065846430488479868146018816832273258387710413933098726696083861398581950625935303102248406961944262930587553301423879266710881776362439403541477911403625832997098596360374063468146563512460405049888885080871006738895653937297626179675079439617673983712530408552683301178986852850278382023570292307142789870609810536627334216957091046685580282251736123505981780514587726514669161976944658426423056896029521108873911520361350160040237839169537364193779694895994354275094486411348728420093511062149600444208203898990041916713220846210522141575153579090022090665088004712237565672950196236870264919918488272860270081838601066093595200868800161683470406501324102764477388328723441924873466257422760685054421261916028901200163215505501315854778058780724283228651044829295582582295973856721838846942654192079544501609524862890753478167191961761003518575909361018909775539966679854975193435828621074569746160455528789169795653480254817101834693170203053382620014802742114272047829773984853349531047442008543782172397534729724723634845759376363541184841126507616668351322720784173240525379662732423710204584710194427422691004471982006578860927366085645746612366247166049638346459274370950727736490892095408519529723831685658162421514697837104147523233675042059486365968854865840636964603668223517477785818179393142325011195424037952594416238094907028019697673711514590007070139706738892907162259271679666794846824083232585222798598209688434371258701668386912171697592816705569811775764813142072387344144351443718516902255021318412584223327637165702649808552396954194347711157863944684060467540917688625185000386940563227746015337359428472848874136327543052978365008255352040403821196946422281906588494602560834235487915464023232722181342027481276839185837796987539568222853779654796819211571282277326086072226311925828035343508914758472392341060850128420799425841733309479406841654872844309153029859542100293435052771470849435134482299815364456627185661922966757790153992427650353066043605678129305258725686273207973633146621941511834843274682552447815489944703802927141780549773816812755591138387752853581703808201325912698913502591803133687722317505120299530995663732320651884318830893078931083708810330074840364044745866532193234301852193629979911728403150003780874618086825511741529993473550203781336176193130039836946923055454998678802396845487093373474856362686722362317300862693852322728045140768797018479018672976013980491586835713547308849314328227262394543662773293218358897064751201147855576401813216109144201549200775574675055273868509287175351100703017088380499569610643668033307557819891432061586539533283689428481866447671557208182644689057663010800986218650918998378992139049344518906193879710473108320163907776760327806655919987134902051993260729589037914073547287657759850522525451436632211100190211738988060489112468307911412768550674698744823778437496463782114709179418582945836013511530815214481122350666184677743963127072421117652630459879228246286614352342482976996796052099740097900103853752754101814947340852025707268897329092310749743313121778290727436655343739821524575093599861747697351932419051566244244805844786269087452376518573033306885274288957097236791658566112737559751939694720929302400324036092663070432765233243542992779587496272104634163149831297195090973453609392602000776902870722030097629058121671138909011156999401554694649812286467454314414144468529300911579411147574260076335271858805761383596106579322558581664095046552295304472774741819290923361023757627861802101334577962034578092254140407067897730768324316657702099215177651267578880645104952036903636593766925403933849688492845880469834349648713077349612579274068900291771984203400727091598160336399017900572879821650612879073540993055073909803619694706083728075629661464284737240427746747355051121629915322750067228609481813264913877569932631443107857855010669723131009413794502457235511636701359074210546895293608423144833794147089795827026670564930092367603394614110515777363742765956305799042065744048726405409184815491975293672971518653373463724756551242703413923310011541573224677442008232138237096961118811715850965347170167679509194006822454075560252199993851445483910672963861478081044394441804748270348355516565697801043981630134604260093485204419008792116015528637861494855520908500632022898676687200462427414629129311539974859342612781211962970847419910663763385063105396270796836693300100995385043287961557733596604780729691574981674414558783462944749026241145619079896188494275601052348767094662253101854088305901033425732787927337546888598064021098086009002775172711351580794386941954361134840374515329487679429649292944095893495273214574532670782491734370686950815886173928659157688224643116400608926659090185282587431274316337344884398310534925345605697477857939379304006595789971856295791758254681337910805132004167660733098433510122849836811441571484082185316728314427925452321600288814229194180592074426038946178690283398654095260149825343367382080538107610874976679425881453053673184959471400983280867315227617952795928507867970577734662328613733472973639656145447334455041361423104269994424665846712956526097936566527357440163849358925308587337721833409991843004587093511473040452199025348465147383493079672191847983540591711875383233623472918426612400891307165749553383898518452167581743480341337080439283651487930158987078497858613267917653494696994932767971501744541301454258906169404782687175511865497446400975372702421528150136420951120505693475438436988441522068809971894582655159847545951058265152455531644309706861872667701117201350347778837630893114812408196616835563558219218105599586119035370164036828982300735337126406842247527916557340192933983097140187732953276694854513462230289930695733089724042102044355435441920461261041056205102823279643854922077115719385437467847848944530766365414260969248152670123142299752221632068154267894782727726559975637633440506364373160309798688521064163176177968876733542053206740226791565084926677667326895227878092912994082328163918704655192379814269625774647450347993568045802159737557824643243185775471041806183979101920921938136238287061025208382324456823863067990498499185273214523423842427980533755352272846882264383030625982804057806186166348779695481066528829427025100407635049517787461327892502686689857994129967831617053891168087161818900987534262276531268950164873889849750937087808190017035456943316497599865746521081720449470355601412042079464692993852328675283848435518251046723849789627990900300845351759861245265621195669970915732514566069937517644640015155570038967566064661525381262722764629217935602548292694115006324834552436875960314817077860537281797898700333466981165700090291752265581063049436319887817369043687399020522193963580265543971488746197428939157278139478983358438876637879894865196596421232327886502694971119929777800338573537327284476941424035413729425030579119790009972168397789404721415647004248350215702360978366033369233002132070790319371625423080180080226007756187860117547634865782801586395943613541803151809960347035633711396981571681043830538881982274271255549835397077626288197294978032214881199157630677354916225573679974142692756576062123698439859232145574640911989160311762817202140144565483996574549497014583628345281380180088582910376024264097459262086935494277589868594493016305152896440720614082826833338080186099161737514088741395711576678787531245075289529289672741542557883506591762123014653785052711725519282973977969260939727560892230098461581725849619575178221571081207958246110291070842157489885726999688601722374167551369832335711183115619041920765462816517715577815460652525704494184561770237934708536281396453589149204442405966520107714359550842369487305980526487972460692163640348881586190078024956157037930258498791288325642581855208700511600944770598534907759030292323503732072789976001088751334821317996307789319583620628378189048856710348872535480273471139963240926670444530774465205212049774131717980472169413157885456983345922137452745682819576849586872369997948484155636518617568644174707039772258295944904466031133691262887164842460142256333227711218110623913036558790109242453501606923293409123239681243867402841761784305510263998455221989388406763741247222097767609804113102991384458441654592305143158722777375138376103027221102311101505743759206996046220711257007926526231649289609063374236079434411390280503788307949919070412315172451019377536486963041787913351892699737074600205862690608758559757277121673978319267449749984501729903085001533468053935125222652566611403356381300519015235484802860322586779556069647202851033207147428575307236183303661472764476764602022504376473537278321985845997655110809679248995669199788696767834084447177603931962492525337916202420096411430189735620772153836000620725778157052145361299642954171799191837532541127467494044274004573709283352122142552336738465587603535968853177695506737224059783073879038934456102989976985998024070398657539437313071609240472520707580757482626091991885566918079082546684348866190660218837002721599670277744019573790652583917805480532711791971727966259468426473229357848632306615999352163599135820868612773392861693821386577586237787172683287843674521628428795776820995869504160333580224724938972244816000779028752574593559792745139283101753920439628136089107405200005892013781304200885066023426961630341493120556807726432157088419211559685826406959607732938575343614193459306471755283032958754671970074312594079794823498738360799145820100145051342526102306614340149972889464851244572295046957354417719373240724926712610833013451375621548497344409779644017857297215435702372330242214299105651872416152253594347388448579562001879304208130780917858916360562599107428147320845813665608899918283432597230678112588064516234797422351784002159546638186289449164333835505749789138132174845215922558896909694346987349012390843272722647489866494947485181281069138089244006627127692841580497013150144909809470540748885272022451192900517249873369819111039440288412728140068362594296498838800765176319610537534144430841888805235877543496268819401943929616876938119878827781484930030618067665980846065717917893983343321987773854647010131469470757093553205024039536818735618147871188575857275743232840068210825903132880304974721981109223351110922337813191376520663815246771949139568573090560894781147751891691254108685048285937555207721439960843672075511599213386982619153286145748709458769530268204007497508134723180655078331006716998322132841435648032344006846249140442411002157652490950700087681088484007346658209525198612375396783084127470567074007421004345130197904294557179145613754316157917589840780720964465503507415642007589948322312426583754136830129897702317358260673386760893628690623461166781781616422248345716450041834350455156680207347658457199304208585588025720353192770539520117986155867102133271569049234912710725316353275979613880902910641339640969509926184622210411318260608065177660581968169199108462338948361227596209248166717070754780888213194422261144774922991726695167125598342801321159333006940482724090400506074312988411771878620573606066422794627261883841680736600403521261527034437004758218370034356192593757760764961861480431722452982419670660826366118902152371112229029769064813517558693250933919160995182323942357879068837461216590280842736873949446493760028881158559782108797710148273147212845768421823453397663728557619449421343748539540585631442331651527036986191598650945881605453121129009314140212095445205560534358337403943959460167739074989156127419510871912655356097512636537304555286612969049843239020706148166800172244335613255107834331135893886133520514446666610229377173538238099446344373776025977742423724973490993885949720715191142558515334518879133883814755289856286344429377914065978027282569983935030607170683482704005476616254735404121213668327991063805816161742159049864447203061845284822476523935157270116753600960566969413214612054851400463752075148173624610649140770625598642600103660139665842909878133689572388059522945910116114133067656211381358859676369655923431837175222849768053719603825620129033266964934760584280405227645226777221612229257614220029678600401057653549096976761222828235674682191812380243986061086036112528436383508474440272326875331469039043425588307576829008910412896147824477842365361267134509541985416045666710884750396399516764113508954779316715712846198746681371568540540649636301629208701078721731507670711127556690346405043018806403531003142387244306680705996902328815329054240438827747250319715123362444938843312200241446419752644943281870795225029281755709213915141745960846771615700744711365828875484738727708198992543702212666601383207980049887114837361604780341724961786418162787306675318367696133412147223320350521015048180212001818856408737501372764615012279575193219944369835238657387226045243795098731446372393755127583150217643881645917286524040567676402406589026734643740228250447834580920222731029400350471619038402186425496016570732094312714487394959896919107932788588206411289853433638888711256867216805231775917928121226207768788446342298816058798987317806883325277154396023026699871704427012752762997386594370529818985161401898521025300059383688847848322750202406532134736503018439954054375353574508111148222064137077640906645893898758668982379085508564405579014087709959049192112945659567032596875863765282415779705991564318741091941643568163944541818892169524770141238888384399508039190383543857999955870641981958841088098230547909317072007383818649286116844220459240083970137223043289442138312369462662946819167708037032502129281878164430909875584900600866745490920487602759632466333625622712318790943249665236192732721040245839624309706987255648165452451260521222346195193538495081861147402438148636792429858675866993511483104719929570882469277538180433469471812928492446542300279733852374164315590990126453215379885070448883240993804038271839215335727130173780705590037385880218448277463103432851716940469276281278462192739691077934267688794460004285867639488538371458263008419950000475297051576977915018225645920370326819900675972937334839249661304296168354165815272306479969219892001764863801233067779922996034892878552788837037252260859748114485998931084032684881867524231792453898368232390887991410044904614404619198386523561053406741127958824418857792454048192372500070593582078765119611077033083029797262850696505314637210863805492575101372797485686719911726331013920228259003631328774817289816647521045358403448098985743338466175898975624464681462007810161894237675620341618054109975797970941687649561253478658103901168629790255809121985889037467965725038801317187877881335164500032767807758641030019974502131943308482999568199272484352210884328013572493409989939872626617607411031085099921377603494060914396480819572100672318471502186889175159745829731447266658597208246741531596174518016844262373017040471017193678788008847269303960519192018318000906968242683554106738816196864191895597181104454347056752009569288147668078022773256204433636269847171292284923795154690737306994886496746100948403527046246841786544192235807757051884951489405688449129871313396725015478231278962509585044796665058379536658231773871351607334135609940655868169746615136575449413545007857186457593089511324582772615266491071099916188348813668131545200941188756692604982872620536738233849420156717079865110550492650888530806225340254328846786317543922069959054827835065741740592131460232182802109350277483369052710195224039938588795522156537462869225967217838533045532612475312499025323557085558232972831264957437825831680077913898737119895335152165908241004491608195664861704428595730521585087780342672633345201479781123496310812195443568451391107602419029820986233777162240383572708718401611387672330544550009015907083982486474626786815835048699958885320932313830631349272077722178829116446901053306318180877599195969550190605429634982161891921546130107603502292125615997306931299493237628234959173535072467979802265111994317910826457385241195010206183092987938817211780227417030702309583589559852282021161174993733554417841157218274681448207676327836800906516492705696281015325104455391932698549251985643299292395475612399303724611044086839568771369822537352428843641188710971465733740138816910230914579315175237269652947149982231832730518820730526795185397024445452314243741627713601659881917636157200573983465540914391226267301338511122545222413875501421316494573090596699667491769906317461063809465963615844801985657567738523543172551092923095975133093639891875785827928240486351800396622752483057202780642663628376029875563494703491083139108107495997135858328796737373130847556202118367712900917808108049758757235129597170982026028425370122670053060882885377919748737499370258037730191271851487965332998464042700306594715268854278636427404240838191921771834121562418518040805484372921278555938887069157400610593291747629469832976127170790611275021877929225633597746213808794542180863924140633101126068686107726321656917992063434750175322753308156870267989137989722421970970395389482113220743156550067649718363296958378742566100476229948645305680455446990337074462865618280735554206909477875901885894314852353210173388782449310226285044534149788760307861882376799088368178735066378521321449710958435545236374471385240340709143212374760337529729872749942060372983364815892393387333139534206256429491218702105001165487047517504406309035520566948268293284007576274610639129476555595726766925959650458260120419002897549379455304785787254700403008051225311924996443480901580346810061165933479573204222203691620373761825869774515179993099839803133751734920630450139695093623056756602617318209659601136911536564438738296382283818623443492435416373995158860918542165856619258287968025526096150138354523317554658732967084084800028882045912863961021847960833535430481873590240751332567912953143679864294558361644318112752964547044225769092480794333273230007842122864687454249357067244223341344944070969648519436489906694158522005414556572061549467919337807955512662363047646223970274886737547353092340017623853852575108222236779836719760257865155910726058027968580310741340764640734034609884652575007605778119054710827484889995604017136729359137168116616973701995517607260742558533867505192087928874128966509432802935906274765607831653012210280935443785685528099106726069445264159139202585858555672483363452669123900522411862109527714582888115044803005829277423112588498003206427565368813830596936519514502538874662675759096915231022264334014378649982883073710684602989971246247948071627121708762744257853524803628591328446074133707303926113096915590330644246785088248978852536971164501914081841979753032188809885067204815520403487283505979448926570859460606945900439571025136067399878885240744943412070082090269753903717592623038787460962520746245580454667483723878177877102294481550775801015945453019153198176425876735915342277815495771218479697477443560496350421057369070744118171801492622527342697860697598212192836335457448250020102790121735733282419123788485878109987302673314989048789666123768163010629926308843130967695401126380161417177271454442149445217428670459007083605733421941296841869976054228859676731370227007713732581401709556606444848411635436714727649305876918117701464283182595847043624816824127764336386503458621994804505854254581299044803019968950623966477413766284740279518285832769587373630620185671420053193757751568081673988921743819508342397195522721681674363152496988950137650608360689409353856575339348860612977620532850171962939029822037654321341143463704593567040473115587977895171550834635578917677780816257192015506815923640282514375380068487021380486063376111622271351778309242716472916177768128180266174641803046891520570686561234078164960986395076116714988529855596882232541637355595601561312411459316285527923734024927180991869314094452445397260631480892624653538586972055932957904641774753907507464532396566347128833203315605352797930769535906651294638371764487716795913353020356687218998652114468603836764907998477252031902629164141264966806335150305977931011282093919996072219829902562021664632690106280395507288699109644117050637346673786601608790560003760915361980500778424108740587443412664049569562134006534970526805306843317454631744474304132005572050740989056448263586048682526958764279465852837124826084187324092581767577948362805404002099761698538550122194659952590761023012300230264291391227493520906463315105529830221291855785283788998733371105216516972669051194517886532378897041830477657819254393204148544077220397286171601103965798893964747833888096425071937108138567413227003339991252083411010570094911565555323958499997581405527292834646865651823355933761362777203613154150747251091554116301138482551685337929779413087081305394505711839526660261322635790850855735501615733206704543241657885309407101629306835169082761788045871790299747485318096294415063416270583398266049115042666838683750604527150353110746629920118192183816267625503391344787994000260477600202575269669100588356429494749922159215384648473087822477831171823365274993418185441274154561907118364039204223798649956856005353835504442089121409609355748515202882905683330178948527736969227646228702146792206300616171682113378265911080311230005785496389075012971881378564530901730156358271911767046637387671033452381666020202723929813997906167630547506144788955800124927050339874381448983547397148994660881502762720929742102569247746906481298877349582783646781612145988661407701935793660988814116258050949531479814771768086554057561848163942572168365642622036518949394622485428757842724098424009106141621311485859973520695203780197033113600191318913472948316528567080704878435722677789498382780639776134012731496945770388001883114164324587739769057213780160416513962813883141244136269376625140124367605656289615201658997426174620189359739532859931253806372373692895448259602599898971508042128385403657152656176441933171020613211669921537430106570340033771788228132873744737601157008294874035975056679793506767053220081493406938346846236238107672165320439364280128206232204121693114289017590035924899316837941171278181632503803243408661969919182702072251842946679188203107679636387776791939546506779758331425155089423627454121808491995911209774197407490762905861019595970370307528386531919590937073025370535587213531900290519591900864538220566271449706105349543639933889791625351430536273814448033736494147891641872766139978149756094345518735177029303600846655179393176894545992404599613793035946302412834638834235389870077993845815527906487691687136922120889925195737494948836289189529885116840624617778984972238526994391913731981604521932414771283181040672311251503313756270396571004762382689590928084528834169772682307969100014130073748866720491206585208678298247413463146709895295788025795633760145033207868662947763675545513589969466343711075176640469155489550441238686207398832721090330895757628457422404962531657299367623231239928233270263384645736631308017396889696731474615390367450885109842130189617726310911300122880614682633362613666183146323446922924403964595571637594125623074432962558804320147503787360470845880737560556362467098581527737052586051103618130487767519422163906388062820698195322462899207095260926215198679993902009888604111928689987005024292895137416098150603185952249078806269218497382143013644346503529241611966989348308158513746284485061244747159440088209243864701988670530164642145282855337240450865150682164099973487690158094657606110210532846215807304978269029618544230765918376461707799867080655322857699368639277651684571506774890227472667375270221471198055468248744912015866428262996431545750077588365223143335496884529364251063856445965588017269623905628135431433506932579201495378368064470747927580570991060147716186326173917806915324112959459865542290119449336395323406619564352821939843276413107884129800286291706224942061238234762355779241057587313789373727538246156688150227107959375263740622475718219650120550991345418705124648968457184539851068983879706279295256912624647294850296402745705160833438622592565658135298724884974399134691974595224049781898978011573450370379284301068961086146666838851939005753074811578943285332770907157850582670768970642780316089399965060089825674387442500195100209012045480421368499538644761030908531381412101887712872904566934972557986301810363294144812738907088412712674125616553209637934753543556000673939410384407291045247295013603178797685034860764904455147606272231570706439001100299743076786793071724626108736438812644759584864262745013366574520847264191817217495686301639370818200821093060560895971830782278588589567935347832141291597966736892933371442454168167503605445467074359273667171630632266735448179438283023133412712018710980459977001264449589570474571359091045407721204818833497016683214475815044024100426725183359320447595646784234131636150034648431559441287058855871529892261365553043980551228388520694288514964261300393882072186596388291142759028826832676965149812161917066011369721468226662640722003540691948069978056648505521941068030723864879016239097759307447172439342618407947023715058115820292237009913852376815099959648772881942721659824381361472049502560620129591194473404798712473645271152435360193449923207085324242963346625843402449276030824926265758058380533061954071530979035618028934980439491273781052443327379680382590583374647635463338950818021717160100112315606027120820842481331131831817341021725160325521069070315241388847082289127102498804451691341363384922856855210821729203254041576476112987207253415498926122434133608151421531844048773357529137203078191528519469399119391449311216274260081868947391010607229318394347161351322554158058705163750015435918020947850635753348611763203069626364298187378754114409663055681284486053712876787377668386837686736552317070293356633452360470722720971846449759041907123245546554059368460451119777840649894974146613214296904801121831072875746779587010251390722391757956895792579361433320505846121710030771221868014927879648724490572457884831531611808921701065290569907462048674276502608813242787616650070739280979692978001983380338506198639900689143737203774791978460970725532239267692285914927360872004315073748225175551322000522377574390009569807515082989009262606613222941904828304822236895327144359972835891418302787399630833992888119143061602158879139547979676199326656088789739680881993507982049196516901509491528869151763544406552094402165693005961371745091870286435320476497913006104045077128533306638065328714760994240685363075178326358662117267535828530586899325277525129990171276528923365531040012977587281397781177175128684927041477414503390158948186491055964319830664473306026519504543226156157555342822098006403566287496444792843248050624721973131138061581115174283393058929807795067731601621086558405254603701941553998935053720219937438931874120324891698187208355279573163420725540711306352303673893991726328719092973520208486878971080516746420968023786347422973740206084391352571077898346054470576808848689386057390869958890120364092013000141991749693620107017986659332271128715048559429104561779771201214047813249153725054501507408514050564642509259091295060663530016828042178095492436336301228109086406346124614929254765921856714587770817119795664164320473543575139046268936430405893083179729465794383161474141962684413213337454152071819500891755309011143344899607791895467290152425639279561917436153967761367131691974947054964380525339630294288136041639215163487936546522741802944684670266743878289320699751368458738204006593023396768801204677008092881911377742748852031487758631849434012266185252687334174992691939067675782498771813527658065033397505899957614594067581231108974009688404443936274651766163057097103618384976124816969237344703360852484258503553812366880735878621010236659805615668201672338400337149686260554689397183917977292263419704824950699126829573068289592536932389893266413985294362759912517969524308196422859420575897142600586939744621436722778271283257964388273892198045217102183220213207242876663683881868625549391296205815740142406513003850420228812778385511099501081946924677766455731656480035715283227903310441141451976443347308805756893284193211802089972302721647518950668237751482299776921102402146712443743371797677311061506129236247556752094629421138176195469975029822726797998270654986432823491451883299724482722241053408240241671435016247751766682797234011378491135607878737105849841052845814661258227791228697893717939139914931257958570469475602762788918008593229245198077245992355785789003560347524031159559316804699493760472779297511687286042242153530222971738823852652815586143273808973442878466137531708209949215293191070998032240668942213385638325227538460456921670346787850369129519136909427843957993222700818611015559928018401745283550445079067806365101645020591024368634255907402431938705361171701014900587806503224636308691366521716485135600215938698302283147942288774593361385657889310410877533244264267975000755912501256077025837933148931644050923456717917247571331312613434442618033239080901791579642794417328977309121762709874723521307458542147743241552818424995178398277942003260128605875693888478718180129314455860130796381576309415796175013712868767054066183689111346531762146057314149251483917307316398029328165746494369527629085847023418308486996709686280128756884779414050134343948727925155624589098694584013205217672357827210930912586115170939684252110459992614508247775149985384740335786206418780984207115537125823014739107689247057209078094111046024025829919245933378098669975985449849671594123967741898791510836509952920172112523634199796039058782567913288704565572725759712495775576899087028230965155753003081045331477690961536742996312053538771302373663904819489956409603672083165295651847760837427826579829498743404933436816610220477254929838970747114482421144901922598400496959554591047628716163539401431556123183541995809236508098264470880149533371214814863710782897448850717479713341556089885800755596053771590746998104260404087305485057921101605764213921199784567180306622437047979734110840731015621130179699086385229174007677837623340814551976209550625172375499233909045132451849396782314954229234788093055838120365444438081382167462691558602259623808024554404385893510824022402606106066374191977188423939533380672967712138649219534014735727886197391683671348428852234623188406006749676055965746759626997815879953433123369068390699502701181686687730684158937510104987393451002391732332830252495979712605553000769394044498798773963299793459386139573439821895974518654348281308951271051095693027425877180197735510858195164084096534180489280793092549292591091934941967021225201972153786102472505252709127026114016422059442667864676155373206520900766904413201274190641557382418514809173598975716373472261844746683833793190227554625840133923205801103837837904469441390396336184810606446440062300476550338439646032331312321155683243504075318936747912730873224823557436912080040851836652826563955325726944912315127962912678488421489708064689956507673510074153349316785734561523610860397032304863093645229722673494590080780915517397271388838564440521313429478205952215936706693434648066988683970051193691894770740223099202311139467832988600463461997867376641535404197385807297141271898122257191797262483792612223645560616327812382081932311260220524612074442242237100880778222361443672708888207282985127050728164061528948468587668914137987055024542826172698849197566605431482574469109018956502648992097879892445083495664579641688642643082010695135023916670412179417957038810704554230407464690060607860778377127040870600123547040220624520044623423595314616841722842361721832080846731070401150667698444541153467395471702575623572880771809155874913668737575376960636099913503825450747520918078282186961642830961978031101075568049129631613005332520694177615168848170447966802856321214024771021877756393865968387369771408759332640349062752893354137859661221664058234687436519464244083862870335416859369158943760091865945871465868693857603050246561301534037169273263167846494268685149923050825452375628402963251260413064022414593178143383079083247504877088344696216794991649996538804959286218477223557628727427933740421818991647693621464056163757556364490755416257462301586327994590605873288597784067125496972603335969403314762384951973895396258555118327051886967606046563961877212259677925034994539070733013719299321174924581200019400746296830892443606495625733999854943069871747841629827896846545995324709653888516151357259259445480359544710437827058004014917438319973425855681909190574436733460880337907422068430149205430312738611239606001211008725294138065255265903220771836054276631034517939878988508235680420207895141740504906007295284598657903740680218655971900535647713375394236630920035626079559437427980536454193814742326554347568834770920823259568611485682949657494714276837685405416678082272300286073905880926566930693644927810026263816936450473305145868249697169410461049130541305434088216840095075038393984256397274174730146892632279784509406348683336831209570865804788115669144962123555794819438556762686871278710181359120805259904018564893258045320519039519747873461891270805894555110511884947113097934047371250370077854179029238152613646164016831857195419879454588590351864566354126205462455173541723508518218828691043198004924202530148651369625348425350414114888832434903736610197692145219608030169247350409722145856241679769440224635566335675620908952995040910778806576896647159419067111060619971371579282646751992907324766324674403768713689843709857970698190857298076012030476160813110880166225767293709613063636584711186406760531298045717627638031771596131716977737912831373136821353406976835332299418321896389912900973410255670617497041167179692136977553128072924874112186075664871882004989154915038413003141254847445573614699619930118668597532987245429856966862866764819942027052176092068131619430223517823946303080862813103930241029401119978134795930553200047280632009992065540827244487297887067041981599795049183849199756599781082365260261926696970505891257791406909738210405057044797768920072561194539132280548987784117084998645571938320072256977271287299351774893459383117662829508315005174034123336706208909666038608476252470487041734871191831658731365350482672047979233184579804347432957403067533500183766002642381376651788255700091385410044696824188767098074423165622391471388071393393746937645963552909699698474629694637688908313845372099501705523796910789705148478519327472715678425020299806172915175100442829076879455765803887876035122087038284739723032637361989775092749540729583953521293213112815572489225520240351925292532351494300650186867827883024152634876146615731923924314571573290624972987592375443552612478586311280218794199123298984506948364209602627030464911838686862986873867317695801924194819061518368784401365277700237132564105619733564885502872141137446153344099473503797421665123212772502713118476898921144202040650732775097453402949040510815422015212638313937076734735161703758654565743306262615046758542701127168018325653605418869536975125922511718587936827145316859243867150137688233774117898123476907323789150487996904473034598211531297545009108415660740792565487266963374681638492589566749804509444260460491951285950137997410183740168744027964372140610141759948636619759852764196759150738294773581750634531456544968043605820707104531077349151809389547528122692090284560183424684035061768601996296038915398910215658658192982129266360050756233215182269741255736812857790609003383264120572626680712546075264585606746548833166140398604848203240188514517069658430261705269362907363002921148392719050394484118299416212357672557655507038782848312805197270332947272395275412938837525896943287761614527032257035051777565307616192264993205127440260286686816419346318990197574707694592314764872347589482460304502893064271056556922222257978908279175730199383363216441835680193986337346610884017166972028354377226547494298684737685371308684418605792578202285855619509998988584327156057467792750506915475139423180991003236689604481424283226684334078820903291641524980764200704463313728866103539492595337640451679548486017585620437883922341363552827609609485403758783777531916727265101006658782693271996845684317020290536421159238073955942306889371276866898122554892721319573745085799370868128486423281800310034777912815320729787448161860955173362926752121692081087082266114731517622919855703145727345044488209150503448757830717463738715320567880440930459373886068024088656294250629043238062972927817244787586995967022781839454082746632244036816883992165274702750858652282633956811306306490011675157482401048052097776127897109833015486654297941080397390760848744221591789510688686858035189386644990985081852351795092889925555262488687953633087942297830948703484545797959858010222959507791906680733824817051425527250820611271382568459020080020366351330387703146594016507162744129804866758597413581297543682834422080904541978177865845394856982230469636591378383209339451564653953607192825454853707645343959296674617073563604218110995095523041205788634615138778408772487476351057866333229213870810701697249882278687989874399393950785712988009218532664199990701913426083576983997070753686618485406902049364197598364624354937147239503260020707517052801074494686340317515495273930747490789930267993855287847588471680403944040277731956185197893182728945063603811454248172839774980070040185953175007813566953174428710178684392031707825764547834158876024383006321129704003968054408164143415257673684960068452163077930721849030804406096434605125706236227938774414825713598431769004418779266497288943571651035271644743194206053576857740421213816546688613473366200058690717307526952296572336516366886000045067877520837474616509204447826780145955138313442831164739549704263732210674503101627668478668442371039528900942245690904633534170202770753628454824196789675943239942779961537210955774000943267874861704771336509522985402244143094333329142915980247919748152138683802537966398591998762612333511188703254010167200082655814756379592488817554985152580656933322995877628833439214902019317605413196055213519089205422795773246798769814744184150558178290899695994385115795612019324657748342002502973122441035050132938931730422390452903452532799516883401374394511618789592695940931723940720768960293510229985755764173148902478996494439330926696202713922117234062067378530930762017335545041967444038617388667415305836439717700724034437632592629545432616461325578841254934057611302286583251836570424495750284788088442474270916965181674066697202372212749109387228584673542490919428591082266246586098876465917225972100000680453986947377823438839779891464493304446456879647396928971365591193997866738446790887910525173366606419601462108271356056477236084211069838720031053658973367620148369953683904081341873782392227292187771300331814195433121456820015144095712824714068343994274420237401708702895249292858045254355096155408101038428392362540707369197016790315797656736949267009824973211436909363547936355081353340723707394834142315092476618451860645016198472152237048152469645615570739668357089256826989265284421234544242410423179174028775677794357052582709526552590568382793853735153340922258293030851458965370814548069189983075192203276301724034964624629218266786245104045146383393146758124607009844675159869694548109141554979484781978671049102621967868414195948746748174837897347191159292237247306471630610481181206097931955918425948241424308184024174193524536875550845164059620017417547453230495695245992736195275633874531444413595046052425188376156508439064774213701519234370756147222218321364369187991274995592191146559833648315891165013085810765279483400696608407154072275462288366309772484555890744635732455760335594217375157359605256040251681936907094360649269581885537990023688096668513116618744351543398765950856645920904103830243242433636022861617653059342766883750120086423375610249937722294901947899840409949440842884386289563138541712075264671734084308103874406273809701359683515571648815224141354138486107191354119841249972993676783647418059729194257689654486837848886944929751912319640423267460872628175081391787874617460542353331105723055295859165391768685590545115444242479889346814645619709135362853410274774182943115265833499898531220876217239752705803467376614892005951715261538042484676955002279160762065094517545957310552964415504100331187238771584205597578393349904367995378482612203897151478618967281794787276906157122989119864971483483584940667753470180560759010844367989324916248976687691735572764308879582906162920880931947802168283356115558218667888241946264187918472241415314151827373084997650451501892311850755032581956849165203873262207508544487014225640963340916648317488494010515537949802246545767353573674966161511915073612119213163859840536702556989337395782068511364653204272529758012788057406714912946080169512118749264784828025378759883686937382544657611769026268065454215101838140812232633436590818408306148034059741712593223618796788724442273488444625164390364996013522495385548082291936333244262996082796592734361643478853420497908714469527490747319047448408369439076598188783168797720098228138212874466805259531662967928916470503111166614906089376290410624689446494165771790054433679627422286169601522906920356674150512100239871343560884904686070751625928126877302206224390436066401257079842597344984452021269848676887009580098412876892007373406845949229401510884708807723837405740609749902870314210186196903503917993090940248241825656106887782322824161087615874982299880414146513173065713824967779465543341093955952479167739229587318108261813667597370599051803723347396040639875136088295593040576100079050112545759482442952385139966719515655365319104583006701951390051321509026525951166654248237481348684678898072370688208800263253575160894911701112913229437838837066183962163396286434856431746581724667339696293649529854123245125521200176451444833563947564836864505162524881284794621436794188859738051970024119044153238064232789478059927967532086325583357404468454782680788083429025232246425823508638104787135850940933156355455970252820573011511447092066939586095846143492432655432257510973156293679821696251790976277406885197813983487342780479188982374397106155069719235077604333906924263499401186811217126052523439973307070516592109775843795934352092538749122320397089987461353807472431976126215372099381161001725048324654053105684379520135147328379532519753436301189866720734538918304466002203521678784960364201212719141988361653808714003117401014107178461030163581889158713370896885904588970917509091764991942382810301989889588053963463241065267636539815646807144825461458873459722048011950985868537628983333400692625597728682255474627551322607783082402670083624526520152503404024582248821550591888105169861799923083727345006582127999405346333089035372900772273872263507545701780744984382594614818954854849402722369163206618291619229046064166578063989881360774123887657371332360747279331395289531684743079487132887229426052159318011280770864983023968928149584573252783405497266378796594695053269100818763775918727088882910296709335014854335824254381967049718230854441768043723902772963032113517167482660636344687984020461411514674783005536257191980405644947570956475045027874164811905214028347246208558553285314634238279745782704229810868107624048707124664166225013266902657276673617859185669162768327047309308290593260341085260106575777444088880640351389066986174772504960974718305285591602984670250839276142237765141390357757372062179221175961613996509008342372594531872219783047820657651176394484825936816737809086666297176302232436282236808195341843181244694248286795910142364371769613008196277046766258166543323790954198296765122711222670526088224396862256075501094736929658108599863405526725981065585780156129862442571561704498494786749395779040261980236916339850584097538885282651235655470458643594336625162412663353918865680485309453594015587992182061121497714679116785675006281719637049724196669412121685520113972090570126850806017537265666501326529449679034958416482386933822738783329520252119171950323369174218810076882166220655208950226112041411809798319807249554881971168976187815513398288152296706101908575739046928387500926762684486419910656672430403352308653514731184345837311504963551798262565074972844109284365611566810459423813751763388700438509125214604841628141050697555489688122320071276492740821775664079340475797463063367077386266594930773665468178047058964355242739373348144724924282582951564482500230629898706700412110707188247878103784641555913446358233857845998872252915818745009070842260390697035426154165950783347932330721389848660852880393223352424109285804083091493426394017498518285503041456663944006588737545034392929828409269330245383126062010197870887578865747273676135826387821102445622569622767487032978318296201278413184413672564912531846107270248182881863419361199594785330853554648356180430040161513742890471285275059286292744420884454824568114604230547332128820495546483638402268537667859129040661250513880071221786597506846147411559682499049504266420659629757403854744478695502190143947589629406654749294494764175807063395375958097290901977491235250973166949341062034027108660894604653716717834868847560366602108715212517876288263745252632940329903115701711336184300914992789642873946423477746883437135185635754807586172565171848986227355945263211332467378514047062928943684788629271336530422187035051792003215493839662175511715206803388748922432894143307438375298231817502145773793070814505216279192734016823871144764162123988331580163028165206451886327362524337840332009490224990338300122918270456210379887854469279375256662981267904255975014430347498524867862495536013038598132372055801664052071995137767175368179309283271666781032052687699358977167614194632277793012075811290724897840590586409309547231188866992542135943807929974655480294039416703879002980611266003959777686713341745101134936728666503440422856237605710732734642530112849322911048714287052660581941603958675351312110461851455117007903773215009713022486903711159600667197330690808160639432722800714539363310324530863213489845713136248788949408955488179697156295647621767144555843540764707228053558043317390665424791027495878200799509392422756831652058120252572032694573708064685229612633164830394216997440418310923726648052482769910544624669826880415675683175287721909955529608244982595739581629668469119399742908903998238252993419127115826068754983383504498243233067177446979632377525394977834666543464021226787863289908560013995170563702988285347063823679866133280668732624141481149238572427190600933174793436803393357992066697654748032959659027452844271403197800711238802400213435190908933548895842571454154499005619218904568839620509324419252971951703411074671047663256706120044091225336360850247461158263151446783330825466840785129726991184016844963593825223275987904816862323431762297700966694426041961241053961485675867460583238855144323985265387055191226068019733497190510695854537167530678944946156248803038921793584357926314782094744340041093675137186642509241178546865156047493896193696519183357666925685477087360138395750109315511476643816672576538494884430169832753524586695930909401744119087198135776580413221982588017730622470751388455757014164046560907188517428192591481772882809734469831799123942861661827833933542301611394577861536188734989258283670631866335190377991195257214912488396810358475486076581053543124360773146277086408204252766459062345362080519343907306655051170936393499394735799774962669977880516836550448553690413526955900732904091393397210537896391913330386754531628133422741044457903490216362231626843610654070754515902540092832978846135387628433024645703339597050160260286708444985984611473150686824792408558327779356863415872477777323416790142381890298073213261346014416073568820474880560327518772039242455211305863660088069435035601089381889275109790223827995739861195983077225220879136494034028733729938414912627310287312510025042955301604443306054064178729531406498300493451682755220414324786993950444241640246979591380604741520784084870239634977188969436285812238990889331636225653762501805265982570330508197947171385139623291194416301864880635097454520999526188354721793938497077984853034113993310834112298546416717439166060558524357592426801771795957381556864180097234692342586856798318555069708573681535427676920913127178479626751637786876472325572301139183090037875084582565155057145910947391480288718098441768601739534831483688279725212646757795140990560467959070855712253817370656151917236054382333403163786385008620611854766025115512917526503828229980333561842130936406407152392482643159821418354792875227575467323246014512622443856283184177477218353903316274809305602516898481309149933119764855680576802860847103621421247306650595210025043307085414436048014003902405345627761465947328701739586599035579151726587421479677064681565415898542358891147438297918349251177200151438596824862963878256944239826286876714661203545005699481239211201014615094527704451754302421089651091725226743802078538680481606583888604994303326651571959604736731808074660965815609761089767438829827213476591359685217077824754211187875971439564450169477885213916518133379271224363423134552575235841597263704230333199454355090032338544416675381340034062137861332332795008428325661988673808279697978537056577691805819443043837968461520288098013644595564702891632710545065437387682446333180275876375096326431384200542819297721803033587702820955770340242618122710801716526816426409827558079674554444677107779981071425348371578444308709174078372859301590097334774348465601622343806393736506386809844473800816603448497519667955227742360879646230649629852405755728688395509044785472021877901008598697480485398113386764787335527249165906082222570277916100390603009055479291916395293981225666853888812388802280639068438031964615939509964882062547831250154772905460959416398456449720004522378894547099894631834295106608744194026351558856392773422187166905241260146620908980924605250837577254932493248783956902245670859430573536128520780518623640996424640578202509200660453114025163768037182405701937615008965329200926593035146232971366088219113710617284671271498226196831858977052334029046601698452995277482660822195131066922192143138085114565622966182951359386890361686389316593280400853908035221120044072772595680775593629903739702107491687001374779626855074176015114988894253843797325690772243345495306701988882325314182030058234124395666230594391343826382892818020919337067903526243114395130494965367195644725433767194314669818883588519290914556841616093754445557177723605413697840393387786768851024783993590858491002317939524919650904227456314966381191369412553190210818678736463404128807379297036815821227080061920286410950285181990291089345213632836547849781685072542254676475446022391001979339615658721219651561578278272323030298646372705077429610862266974397934016035652038697483689785853428241017643092300658110153054360876595721765510634864208792389621389717708320970696622295412198388486446900959887624478341566901126875290762273713909141812504415722540642527007645631149913048785232151491228286033632195366267268383868335414891672867847261403230836868030865831287864311091699393814277425675372471396648312901487067628703363165824429723000030679313951189981241366979959930970072591458758707954624737987943562286458558058045750768975777879029156340330828431217984398648873826340354033890205449312990018796426303510270895260923759531795874532162659299366856080119184205175760944135719526373229707978326317515615449100400996750640335984622398329449235602362419820393390113478503795940099627688034688281113901320899266968514647874868884895728622857803569813886918326318747993363565369557728875059387025823716992942921702487943018336939339588084635403335198785022672947542644679469413617802793113484341961536455917920308340539344982135637541882051304135369031355115567092145092680669061114684289253717501954543809350561100354501423228343568399031212505583136719904003776353325662260153966603104477654530934165011330399431822787828055956807024483334344940348018013438705289353497920973606159406234474354838718920675757312644145683417886339341875957039481548283776377492389951820429366503763851928225151276854983979710250428000508408951364351950662487548055505499902190204287617894995484502241077349672545458538313967196497628764312572108633106522585589468179867635105909289882336468296003684942496446707034792995567891526930652784635586229317171773434594233527212716476742185226196082839389357579888196083038220176322434911749292379495007479634468135987665201299567089011470447216132735090862503128751390482974088701199402920057761701822395051341781571454863997560514077750149674807438215440561367230596517397047731920607920490329986028997425526607818710593221135408387292986239185271517964633060238272657530269955626815142528579178622555821215724512698555540970135399058338659423936154824091379481797519221032639955296755788783796145660898232197666734950621664651225905098989326481740872480982624395663539677214629252300024266884457269954832018455289877321959509470253613081431183395105425011462811077579582036844146758242594915438524376047988261276491547831163987024289616039247860356167712973659704762836201778504991016310681205206629085415067864271859809627822549503263815065312510153578154292557231954682258764464071452147025882425212591099874611035065747901696026054688100981282767208815491109156385195915736443506970696188333309074327642632409190028573604434296876865007921072983701750000639335231593655138567907786864917094797441740133658795242191199494219546164115126093579930754727138485145865877533741449498837265848249208294233384084089682175778765630241635768182256921016922466564065690138793769583344692252607103628704195777504019018380337214446533415423949208314811071725742807831310392579187116783037702484932744222702234293538025630946542190761323323655761934786733293377748642433774777081256011250660126157248755832187097660690867452351787979573537075071875552640079553891176597772477499181582262791467738758230496943401951142071844979132142765889440179726587192168741363490218450600946421517799075901097665467454204922012107191875375225692507832566751390391251034817697238428520024759292631933373040369355915171291968801795151686322456321084941004530012850367810004176366671860148569904061989008089009077696089665156179265253726564297935341007286017524248089357715339506120538732763221807124252578025097940646475839765752761073603912174389349229941498007279089653526444478046675005979507028863471985504003652789192457057545801782336351484437470746918591044532923450579127249090383107753931686093806426216714368478348591114003418418563642082482902862131970074434249615208002120048675512714618488971348866306755398710252304524261088652344625647154829115002177548505800392131087921223153313398904278619991082236460108652341201742688788084505394333123598545056028663722217232928382618406935384549341469268412681074221678856921106943191823061961231270473432758023253750690727624433486260368806312753567040833813229245843392071322269077530434996263406214698122290251004979530044235867267069289756963760861764981810730404432676963878959466730459870136135520063865271140119291408422024415728282045369187037581655197928225353064128828845227214847380911302946696402408884853866059119100889435005808492904047409794673873339014076332908948601280391588507070818324823173885590443903926830666566966601007330861937067704274067252721599148089170266081812244955717911055590741153678859937842138695659086090660515456378067573924500194269340756069919002255462745865016919128223711060331880527500478168802692838934671478104337127815675664847914477645174704581645217322940855583090228990016622172314337429928760007934913189638054850973892219386040187808445841290944978540925567433304946391031789567780613156828594926753411104795705110027622583577611433316436175024294069666474996181153495466674811991767202253274152506384197514092581172187916158216190432802773979039158803029770916627109452480902003983089589883115958898609928875075686688480634940606545204615959841964264561983105213920311689116702246518989839866438810204143644441515000843525746877272984557041636632087672904332219470079615304292816504193922724311904991472620573804869159896480321487261509952259948696154200192309637002619891181050379632866993485565244219175793108023164900354834983729190919653824119283210490640159446854252341330033056824807224850355545761185251861916902943906137788053031871884145585407543703109288481460904881041738738073633903550424069455905283054934230849637418564767968710111814587419262831707981071451994466555842117825964307904048811747208592261293964366379223936913411570647859713139239066415902678155104699840257553097505364463736717044473689084282784329544137997846373172256154307747454985312713696511662337964719416987513207960013978159643446954398606451457750455594752433455606577696513704051496409216588205648032136898279901542648218899315853272512951848492733529542239138392837915150764631119701935327451705696233617439893950738039370416979436110382471978379107493025183171642493746697852546980301383119228244428548444448371028127242571459934672638646862874081566222966978055351851242096379862899507932891103563231993594603141794015370359176671371270772630775919590797499079627753655269679428870752525002342186530623181345770463226328379421799072404702944388763336460359925544548864399314602230750992198320996690541483132375861166119460807884290434745167871400607442095457759146568203133628548449997565447736142822573277742181030523213827687568843007719739200747057229195858038201301671637510319721760965069188127577782193459450842894803881326734123019671702590791441391815027725543287308185290541731697829469858931759793067952762401802249987905083246508232429901451522887522073587742241547181368719191218398992364145420314275412439293938177752658569181254219188156855805653683947119785814324002584053125394387944358204692836025428556746206428684753058782947483083492305629519002835769455817403024359343773344753794746580295129784608997582556926828486049059725575252969921998566868348105889501885869854703935892587780877749277301237375311176415400977388364714930658729426227703470396421698719826071158518113702165308584891559604844927252000998879339712459862854640956680811162609244782333178801624217576909926507850056450658669801006303363057217104768093395708356497969341862073718372507484384519920707879279454298670282716202025903011360837638763648794583734657739425837537413144924582042402423257526245661158060084158225847334788364110909391983291562808966623515886477288660255416136326704803359087714562405599058792916494932236063891653530863104182117145550958410208462961805532866161077180099846532969047964192922843573044079001476026078498383573631458164094485528422999730425189211090655324104673818232740203614048050961389150167667159543237321808912737588045263032286813596216667132221761830110368120396720582363597544529472003948717547280808967216199083654059900312053995756918361865799256574772011095387907337439185199279459886496215607380508879186117623074644040468473500566249265869191191099646565563472454348252668205552918549223044646561710474848591056021324787153906465544304810479546776076837158037647497460583393756509121378239077709966514774638554412660100723865411788744830872348912131717430034869831272859848729301289972224332070652894801960452817551576382775843992436827016923095265884135177041627766586911921390723619106489965113222959534433102683784551013502870618990648220145275095183124465690765463395988885170385032295028853592054899584247610452388262540820650292838244795078217277434153396755894571919725550112136703429430427478459112096290079031540405441327127861467639876178992318990469704420805985883035745788957380339234403494517991303163234996232668297667157627403670423277934473471634232826063628769300708509381058840093784784078477111112812258323860986058599911721264868505981013485328207883945638965317908082114438100803881096764978222929308526339291016143259191208331560202402780367971585635833026166832877643217271881079475658302788707430924099920418446047379916206347143401703307458936052815848575777581823646753418417442142085688743741538445110830022211829983845656927111139791484445627157038188958959364820925487078906820554560190627846188988330786940646653992439698447345401999386481416753989713287786322177827305413300208506527472469438121204868380296154054723741104901259353033190155696315527831809077325723324889698175803287265949085507315360646734631664150927277324520319447855120669052819205577704020581561688875989436137574810944884743945469212576387945748990681770714716182668290927967504300905051763278638948738561725670123399964310322469025957064666882290343017186201542340277713387410444002803400496575036175802398812554961580413501344911365956513415502029635953490088884887458422843399519108346295582145624634382552782981137496150798198907850581597867078897595348758969747679502202621050658440762873083270076333364980603361308541446887966908058764477555336565951225861526926701109220088170321914201855345813472360648808780372165848013816829989840703767668525742079444399182539105108106596253889058690050842527516329251350855436656648813750643582702694431896192618267889320360548818521895198823080745753560856610747138642969465753029332099482741129954332782927218025577232427935754492343632674067122606798181220882942205581501025013872563206961033493443020407056633959143183985015126950849833775550318542142229040019825456044005764555625117769046235372984155334168427995869876733825520526441563993264826273096788092674536825295390641983993584007128397377543135197716680778212803488654029778104316813846164293434550224226172457063081092846851102169043898659156198206153025139941307811445200797953418964616461044770313396341097419270890247318533888424949947788080406603447599133139369629598306818605031046052898596473562874429154752625245048600933051347530928903813550889851337384455032110647138206322021819646331421660853541883963784342383506257463015065905999687361779942220100058148765759450153217352723856617447410542983522695518078961850185543367943397440584480598530201432134313012474666967956729067452182957416331749932721905953661843218854816960560650428008783255721621889580524647908204395613498292966626559651853161909819844108902860906087067593723315843927160800400486825201508193133306545619458459569613327591716323411125217996198021531650291976152508290753482390848445129813367339988754553838227423627557825667869024508666327484899022077909406921092408724451056977373149347009134326877575402771950997159522081987723914437761281548533232738708707173843398819073006906325014527785101914507705332721100115378114533323541426750540827410159231459115542278709883237038218500745963938538598000290967788786123933657811312028507316384671701115351533174326218209212047086395260185972301308158995742724500057260659769489220288638360176534088723704370894751192420543180611724694037688157991146375266227167226892356188112632391316774328353390026607618070478653931294983299635107338354016474688373731062516941338839917536738724873576981839154027853887200634765281282319865477731119498388991821723502459974847128532592441943743292690188714823193707120737956301272156883025412854826515830804933712057794656952122271985309183754220303668560833602643617851800612645159382413310603755738076091167268149130661298528968512737105698662382561031935296526549763089616983022242765930378763757307033691291025291281293817419470692503411853271899373157087901432759647326614160298350778116277759997863794787981933176629220014795013810328249411637877454201545252568341152333279912718685161721015745032891022079846951081779666350445447804467572749608381496061188561813234964357559232660938344882062483891186595970604405162066725581440614955795331642943422034911685542042338691028936487321470428849489357037338548714369409076921971734476236051594007980255434608393402253778395402499745599575162354628890299182407502036351734465214502675974702980888039312344659542825535118292156185633937067916612498605468873190204513213004158491650398661491024079566328119112077280714167678895242202886956143491185551403028895842608329485732652997021957472042621952462281067033120660350097859119505599422661203472389803689914780965556333742901476145767453579532561226797956929673605752460614298083744950229504936981159054114849237506396426962912161304825662342297806985007194708271660181530660214498356729398599406587747221564993755686623292160241351837998176763890973807828792565180362348674654301010199724382569757130183166803474702502015004373198767894097061645063286007306360904406341193138406018261999020113580908103275046129803075941016472250512478689878753533069904573575860165462835856884423344435391654679749740426771924932448964850713813474510522580517409335604586704422748964239620016655984856540723536189768929975923467769078169154706807482885004330987858070561754395228270970077544221500424832614620566669888071877556678062640431874084243177565891867859242372421220808667212297684784234791767874206287936504040513258549903705045340697221061429132677656198156013368665779367457972508715278389415807976055581228494943248090396952153728161835402029987549780157776475141452824681245956548117329132622148772481480198294705277088031008975784386615751056350258015873654252484438006317784169730862827528916014472166287388362259825474924264130390616630114479266560346867060585780254030922699680491248951190532089999728550754441781910847613896938515640619642882174561779786381423718100968269019652010822700017079156733637342626391504934578715606255889629051031196935003107666004380157190673423980507376636886963687475581599532773773872641148608554632862142059796661718581907276804941535113727764929214507907253373800032529924433971893647308910017133914720739963605912308123273590153874496820934849090873360423058560514571594050895384223705627516003521848195841313665409660502051058605427766530322708965979032163412388258824537315438631307900040615746835917946662656787359932513065751365367597854248030043518455981109076908164718200636687400969463330236525101913143609462918532982293514845003322170413465399886208032880830750127686778702648744041795933839495922919034763834770302586446554980189461048150783821059217931964168122883762069993543523156310821347352455146481867291198849942185177541935571371428956032386895912254719278357267706918052825540304293126467323711067478914771939612802936430005707735843779181286102687092157571091809028148723857244640730292795404404843605788341243847258801197699426203999962593508985782737437641676840991131132579432855238365001298573369078539726304353051442223286625191132044715660652869834174181457407231540290012190596182612054121581284983814216844009036148797557293034659045154253272287791006817359640524548054354317260272941519051204897574113622588356340429999386690510829185333563922589886322153013070730724453063339312551955659293702583041436040419432972587660848240497581783459597409959818441745790789147339497473267145016644793660296234082411597469222011651741409841304181575397400432344314304490623819486116753246869591221190303622501001547543181574939865563094695628015750959187467855258848578222349727425291902432899393309531127607817050473426350220895928460661198528371162034973723120212922761881703090064647775393490817054503575109218881418815906936507075688852704797748593901345796246213827710451804387767488053286307868848746817150324689059132521108778189613802130274922780814964056730115024772478696843486181240555731701292626013523931430563820197024873192436644184659501434555143499933552836110162639688811692155028363123027395044581021439880738616190322422348427054187927580122096610290134660749625209569768006215476641710895138603923076337090351103239756295114585707733144877570534898531336857946635098739880809422550575572375258144634874472988319452681847231680909420732964698366470658214852730692281647357335144989448028817045891536844194056165439815361428770166230016895915064382402502723516610916651036816301784909094703403321762758148644593354194149038367443274674501916987392781452157918723624015165347070695586575657724503172824176870624197622580130790976672612580296709858709484569544447622618964230627136394420684678870240265539736609486607342718911711982073744834497193834952702074499783762003967536473498284054900586105642927489882601767685291421728372172135023328665592068218176962813230463531697219167060771288180517177731627484971454814724689077934421496649289204622831282776649797809322324224733475127285479134827657210465748750862421211973475748824114839566475826381972946111173069954450211135642045661771825595537301422423218925909875132960922882573497275606647592405802138815170246044871561639474901806823418557168680473268605428115975599818849861947758881154687787615376058849224579822456948777696591504226110544224643360517650242899065252608682442672657132416710451265878993959716276937004261625342730511017921764040769945979425587192060008909471832958356326378974720568548096243424592767154758567421515455272366859441471456903675861659923459610427206188962961306240379960207938579500483506734607021801723637054324394241386257653338295747678410986042651321257778809412926416287655754328113678162373816196975241019498074381571909434291596422439037720680948311566250168206206921622221835040865927500363647836217110634901927809543306980954629138679020168292050248528539375188080801676219880859155759577468994537439591473305703597129846441177630728345467999854381842930344133256232338380912755068101461772934986949487200045081516098625646134348007583062794511487009667550894328408855273565195480881829378228576127160205765357836459656426642978566863901140114004052731504451797780289169141734693067859819436099875704616632762455594573115606581397049872871673381135237318296167365797350330742820710182879646075455185674243484957018049606931646124524774692869777896340159369441783557442862272644672355317902371928529538439132449031399425293292221374601129840485922921377382849165924331061509202974148255854836090599059459147340565917345645743507573514621834692602456551811783533272853965524448670882573277244542206468295759670199239103394657753976466154350982124362305784857101459954594522561289589171918622816355253558265552536383216542229707879843408243090144970524013855719589778830842318752090508762406883358711595576669749532474365193016141434226932503320341192559159842503893170592171931975951195159507586121046530164490731291937169822954926485500945510431245979904822304992431957524118786305410152562433513017066129335834760020313804586277875235068407567581048241401320108285725305304025990777192328305138546422722412844293636832147142723704784892630661789472803834376964106572005123785259450773258443356334978837080768392829523016203495026296815955017642230701074843148153463313177935428556957103706324847081340748285588888482726859743382604313263509675029030596736319474188656148204392903519836327433949930774455910385650389365689311802346576344014857582676217785022857761948040799773786759067692375022746989998163292349538415295377505651153321228810566780288051428204596470188315123737951341623403767177021344848924327360220526780116133623122906874764353834340200792760228440969373467226632183026737057367269933383810189065618283718830967215442344915875885338607789166440004826179531752733275753065849925517306928775008447801090781813362986252681805662603660407777481798409362344950544640674342839864923001125300379807881607883551529282919443156399160950776980559737357986983557180237146966569024269163613413411990756702547385293195587473233069284165783153558129946936772923782865462887590461861756472331508688085753300657431171054887430338737562196480331506075883267032303150180798244806518118870988444502547226889539517418534971898246678943354382421081474746897126591057009248306393105778172252684412696346057119913264920988429601371176859975564105569282360049864178112973225859864221448080183245250793701915381181529063519679517921624415794248785974124080331968789803966664082064953226221150250559192976457296793721925511262574181986993768989796576478767900060742291222795927368792919595769324932702826819953794985867260241657029274559553225756081242751630131979287270557898338283643789973919300105284805634071419257235302791406979991267288592070201727992106982956879356635297038098424591449993907651273278720576254733909309330095045751553907610153090852796860144562484837509710670319388869090544436136554360563048567153121042065615582226389385762757450155360230894634797364446748624653330150771248958839989070695476000420258886027770361744560354008581173296808168332688812391487755999099785545206161382348443216345124282403255215852274879792311111820372589215197248655505055749666720737168522157246006609692700077488372576223248319537764556230368967669118237539901886440006227694301891887424915525494795278029654740945743317290511827853554466288218749330534141282689861043379147045603964183399905720294091417284939631928423767474111958643678438162930960828272450326481120549977029184810436746816085955614089628331399582090930202196375115582021718563226271790281519475564456523843849768891566790118090995916393550627365582237594826789431627812973818878640007049848333950622363499942005072164967215367279332745925600002088456942477022271082927922857232407429651225231555128698191065142430704642646706447868481597156828997411752993776858336808022074611927411000611622329075987507368573656745030156618945206819240054093152434267841993727468891492536393342657566859838315587575920160588478639440952623137410025687239446584996505581432434140473340181456651607396271239527191212264625642494045771267596260998357990343019845208883787846185865275686217012067178854966553249817803070454751371469351598215848253051772659569255569566188269147736092616575278592596883977069978459051302738779058571802270482296737378850086633263074894564719647349394418105331030456934084991103798917171026651656075395838529091670376387460035825495330342241476991102237989933138200382063579906697486267222938757475196340075128248210686634172870008469746827597770538681295191619267192174002781511426838275655045215882386094394132032577108097342002178560754131466834889652134390398110060793125831563615036742104334156494790726314985398061401590860603588111692446514270997164357876736435456068015382961330747304257943441930312360423607076290998080649477314119814677553539007875460971376278554095238625043827438056027142962038666344751157394886572157780423010335991101203166072192794718773613431511428775058225619788627642285835355132132209492516345297023310128944575840870188620235794941386231450117555690172940656543753274008558419794736033682995334030759383113244377110725479358329556143271965388848825338142873803528695893954524587842903500647060188430438005339388953983339928285784248505579947984350902482906774847364279252903649536839964033447660246519025544479117456520568859317515528706360738212097854746923486035289793930393068784273721807267074401807154833430179573263306731368779177934466743602740020097415030371089290216363837585132176555038562888291260713904854825621801065519178480263532829351194148193235351082224939423844243182054249204740019227412238300529826178773691834499251588793541388646190045885566914963085285760326062614949716729782309018518683398284209737213971595335556467517637905753194920897909596965080587232366335379799552721606686557610055310993451637154454215762149187576688112939850597119042809989352366509288793090058167715645948760708944769795803192664408152047222711345850760567586950918405023595025936078088271379588633801461260941564413670201814298047449754013818808019103701441658117951109456095999771371818930639306654176456031176816920047524182072525205503631603637115063083995140296529020679450581396927363533265418036007181947279630185811464310228309799924869353724826259372509345769633601871326420895025740248422795045402893888701791776636469697743549438913772076960333489409433261673117083107061937115508020764517615238426601090178603946981920790266515138912512117464253047324296850333547075317777757697379555389561589402963629596820858997507625926066983629549046629397057881059624078143367463810413407484415260701322221797111482201326152992970889444836324931982518734269149390927455843464375302555491862930066515149996307504390906934029614922312879162401596362578393465833620197287020381198511344942287509467556084349912591151582052564077747472254063465845897480076727493412910076819858228535645717899207955288071198064038223863669062764616888192288613956083120779253632212110087662912734743953464392460217662408460229557459085568019177359815947862537846768257943301310720408920915373722497294138294980898948787518859716856431231725139737770525360635151666830084400321145970289126807898653401164620879983643044111009136377208093217695881872035758669543134630802996744970402614506703718107624404896780937725397176208203880647687302234423373762010752454586130453716363224807364183525001219732440062776591200349028392448091255214574876191985630500291256419494465053047583460755699777586091284286365813306433529763086755236446960409854223762267577014817838644097523845297304442798391111184073048284704071528135740393838354664387417991042752093852934691443598936085068530729663937540303325377627462505567931316988576691700939702714708641724722453592859263939402287222370910310769969372085191580113049123288617280385089227587927722494473939857461040668673242878363214969276125641955886955366546079996355453084842704432146164183674918913723525865754893309041734681531075275684387143825244997513274774442891077505673787966070178220872124309087940709876310000715345552072387811909682326589423364607766463651817328392335481674741398475960523446550508832902695414315989561799092565202527467420049748710136689831461376979817470445748781870775592367523519144939387964668736123397187832999950422332754095450454726946119372730475316434679229425843846382408343152356387028424482432598501673279488092387220546327088426665886740345221667320507773401656508113220585298767866878403081215360783036247675444573634867255284778355252376809716437394297515263124686053333427504138207946317421528496045641915508688087505446025423124956891627767456958068021992673081894809638940032633221126081845814378299147487798874155146252075173011848748569388689209046179950897819700699449122368730447934546995766011869230069299492746402776942750696765643027976739946330298288457684884022401490906034771067683052249438690821806182160425303525885655813087692953344196873977028395580418782724398674726418443021248364949370107787007611594036150809518616594810042703563762103365451433713009173430354019668653203701137613865302128010502678980585610818035233285757685759721482299715798907368641713965161966389865709550660750483902233045724033531364773902078850122730159154917828616967877113727782312490825640666280245657239352570197263161375934699523065143652865812539152244260667303769590558346653513740417510805634767470719494940496357085019956225156422140062045693621638544020604343334149769746417030685397730886801144686598418791673528167976315930489517569792152577306232911393080340222105249830398939414813347733660234063325870809869482998205282555614230563700956026004918816469910981971398720416773080474173861447885235979003853731346315489043533998237336176661487646713942280932039799555223048252202220501052636568397470106233204080409928000225524728663006182071836320298009127841385483283426078184234607226288270426301729555281026954382116852000154839959439583602687195188027328401877268515894653114190682929925098668864684298191441380330517441777888337731711833297410822885105743031119618406939988692205184060905170813997923292712869590608652649605163639265499517799662369572942205413524316440442576028113896302998824170051088978398434949942749040607728040399862831088650993853567259913947950781210972871436967347559541730243607872232323221370700825147339643334151823363827821094081185445678967896110682804338478706447447100933347736926785664432188691139111554889556944451459444131205077069280360908396687655135918875803389324675734958355859858181110830452284399734408966448231245486053033978466847764498420739815354973620405430848728867676222994311666984160107397289172861808539921824342097222266964801777952088942314421995836681515523236962123940149774552120731513063265754130961723069155970726644818121352519871009175100346158931583085247572627427653918368309913151927240615200450375752380818536851700462198650648509260368018920413615115274479466967073865979584559344132915152388439676536735768355201566709163041163812959754284744359619000915947091803308636278110119883285482213418825135978894415435773290659003318935686570914226859224102508867912939561777392202384394420515717907231239599247500470601818212882739568827419882462155812160505838012409538096949268917347933963826504289478691127452519520229485688925044297488149171672804950539723314035411070738199072302081098485859684574483765247933784766145970985300086895149703183727617022261658768176974447942501167486458216758549679743766308695007203891592017384058270177756173419280160742674373834761279642860878170297444935154485110391619479970339725381769074647784679462649658727326860847184998525881348618603399267125462135183765894626879960147798333781276840671017087062042839309140900767488331432519028814630688441982376791349254142075611997122571497090764317262711276485659334878727280987146511417897216731315042416471636394760077362154126210197381249364129725661431366275193354196108404284126120281969749601246037971385139590587550920230250117524218074291462085888037302886295656711758522358796761468015689766300908423966197897619401137402700949266925775294394162253495151745936035120539644042239070686558744511545548375106970485074504168908681704137980120562611391176110321683862599219145999924158515477985777698495703940185357554054064419494427738057010845133003691916436846939099001682123135740743666131226565710215923351191938333018808524363424167639407466342066060391771546511275049645909014093882918096722889070007511467361013529389321534523386056552556345346215095995081924274535159408947385140350283392646206153981162938036531171269355349444495619796243835975197507303519826927894022065021291648520116377103011459967862694332597650650038216086860689333162827493175317907608934187024334389628009832562937933996560213671694905369477162217118511292659210688444710971760631075848040664158044084926988121665156976021645546868900823031593740141373762998165333379147016214558530347453205499752107297044957069746485967088112839278556376049761137352795340909412737244576020228908384964302509845099329875473838943088284089455224112046144271148878607791172125446546026793520114984300085636938247223593559743996358538524247491446753412215323984956440337388930698055988493846147756889433795174682475417124924065600613919629559944628283832232979935561776805479039474149090648587475543088799866071423164541249596912551211383282432662620279470530695482433887031686884568236650284511721428512736107278414533445939958932515819810348780376275146141428612088895044622615790244762365912325509407566791799363476350114992051876281348333992457818085783089150142030253581940940066921396071273236132212172770337610534180626427770446646543982678231378104782922049629301582949642401658322796907220123699794163517240390700445165704419078840819321813165595223884089941777807036829521376787587403954169744668364084179929574277753897371902624833490749080616070736997349968474669424480351549175280170328142978006729055245203046368164727881793681812439455084687754401042898352502987484147532739240323115529428582231112803518254911322915204243413047712040087429527558492699690608088180628083540140149941489836609447250566029764138692643911365574666638895028148715589646301538027814348870721199633595635807395415412130110166463692675754508408157731628479360462091168891946868612015277124351608457534883919185267482706946651411582167217121790236215478824680104029767779933341432671300107920323403751054182459296169759515772103707584054582817719504979142368867266851420544484002413489586657436924544375573509508622622309412565574566795563479879886188713717670818721504144926475851274105883736783116757948529762816535268820592222375362672993207971799857864192645038249765661460793778555793907834407536403507290471609184246532385837047376970680197086746359646101195154972327236515905932597881639502973103880636894048339696547391063137063263121691511682264943774359224115660139249157104533102733679445604769433448861890054728201065235725453312352776593644461256019147271929908124887185363885000012861421192738183455429675618896531747228558229376920327547987070815948621112777317989476677892037136108641213933922048758647324038599375162924085642166047711793342250946139177815951456005487514945683003915695954971003732053722849217652403571139847060327862542107591868890160826849210284978367014448708782079446914873500697682543622675095651691141611277517445825234742790425724304778738763740748385530970656931633492099048360370096504289682763843888793751938148689656835421480689683349355652378497241055572324993540471330952336920577195454008008868463659754318452898856165392838506894300610246993758917199891747546068685681278703908159436979842346924854410817639928925944488394263830136447530622064384126132909577054985761667034314351356098309676580351651047840461304397437062435700182033063139513436985795613874929515403515798487014389062123657778088254137620759647119751958821426195230671472572909643278360532689456887552961411072422878594811682580790731364502631995833132021193936686041502214003839056560804471447458921000725315290506245184314996909167002806228410907111606969374330129974871988661863265506637186933706209682888868356292102048337329576319227218302516706253876552554738017508244140168365327069419635270394528231522856435728613264535809280041410388703339548010257673015501529596602389056765930452532961840437163559629830359321422069469983972343157460988437368374141001185075588205892789592347504225096567014448104294600418699685020030535282413489026388834999309255046883674499684025098948035394687083512872766081009553751893487513251147033249103279991592791337046406965372078189221063874275982085605821028688326735090783093899102321154486119408807589159885064675445548642190558647198561320260381519532264533273060423567991595081400045501498960679069410423568929715005327164190659650395101872966183240720227898065251436374070859414753127037355298285950070209425054968317413508105149266010575012144540321312703270584576601839757554487636070224908267044484235111182387921368352881895176636912087050472241538098770646217439421114139007319807225996884340483248516451045791199559291299498790342811155913658121445995448751261082879670762131401197584205560255956425487906117845375537649687474782308048987445934892246981967840114622495996712703636411670533360161513901259218511698323228670878516433120551401237134839490049164256545371468898646121393485098239201158085346526891910745383632223450192518137652523575098129815021146519338152230618039998750689041352367854557835554510026890929241425926170814258968721846511061974115162577542490254358541534446459368845106054211435526673254140430208655281094994496360957713343890332196210848067167333959321357564376379763433180026496424966066802081223659015896184627880948160364347092809069982673949495321152532894648503441029910217746986582659665579478637523510027565068075465620588058310869581363962582848930316848190490515397621210291390805622806997554339926153912072334587555258560599495765416484856890164640882721625433577061888119259819899209805400522629993866303975833997806202537512820314167385682826427419900961516425065895580536719920685473895721962513165481565347554893452241617197969036155517332731104003691232013210004366109528652015675789601086799899428085253960394021983969346393359154824544643607212281810428641034587721207209146315541652607799692867493299670190748221911191100575725903536940711608051527510407061474284462267271290220463904937668770684377335738730636360421036554628153203764834954922283609968262428420487106976538894462237326413408513429747332551322472881823439862693205126640602011053370430601168159935386382834748015840602289491974741587824587495703355242349309329904383344397734376268113597798471606203090041372934736881048097971215037135001274370996893085806450077812283675677593585179775499387277141329532640303721612931501980592319012930593053122702820704071923375715036447231143122864160832796118233276147520284592444396621708414522013914025237220082419615457819753961055404909216874793565676940377096754695870940472486363777142487697305265402227606864236451834316624578707236679594008018999957753553016784676763513845505499735985770875500115833424714128312729698269612772708544398713200690987334791665298924371400757035580435490843185838811478708491113595461809321506293739108780343591250632357851030233860065470355512522259028825767569950174874977182214358903133460324833420672733299564268421060675380620990144441773292622459404447843198274870905150556087186190635899575971953702313060312228736846227132814208564083755741004068028188198195453658922955342308448227829134179338546039379536226400805021704764644088451857610243771010251918389842315123062434282427550503825411346596077776135320194938733960801511908611270517392146085768751340712425677173077754854184024653515251499160680338986623281730623238709264357579074622307700887451250984454961200336012130183627738499441722781894586673259749630277567193988374885888431544343279381597155341396377188389164526907666897386389440874300513740068272257889537878434961638179670323745848670584034728697082372875312402558034444925709259101765558082681956231585730790137983304732549415799770233706939769435148475241290021826950205885638333664009176418294787930473253628796894152240131342521859996149194387297953687886151590189821885229764463829431897306049304091388329621311764820923243297010291815305428917359092639781547508499050872855973162372025626254813122727538303721879631137652724124761934163149655396460680480267683815992399642519886651515490044568287456861729172043483566419655881427360640504264102729008990803502799666342191798885855289896328278082823433798566698611958344674399137446738696979780952743556595137896698968450073993993778328018357777816855982147273994498342836915072142003230182884024438859660106898579533528621431066475427953592379039459476734690013858833873836774722697793432130589984125433109930167565148641141858421840904902000984620143459643221601586965735171881341151661915868911153564879021479377010611823197618151790994864357783463385403301480754623724016485556873770711031744453667598013178990738215312944673558815381541410169118689146992383223560488685806186709541175511575502879891562818068890454505946819345893257069131533626217555907128417579885426692355185220303668714824638773857087136111405538880924026822411684529555875452076727482106261346113194255104374593045176708237078021864690575619226540770888351982123539383720610441275110003212454171780814361420456587907297435818815888545090066376728238214669886060358340466806325133272247478364272894239392910841227176048920580213645709771112656071774477464276699327465493397224321413527040393704901443345270242719637045492511943157402755561611773654679280850277060331794625398395588988869366935908845113226433302277881461198855018256902577512585382508859915353433268560106854201583138687683715532587274320106001089626936011091116674875257966985570289149382154443226439786474584237032916754124755387407671784060439188704993503355539576212393332968642849565543477143471751827208683223610261379935447271104254119187203722832310054645064101714728155678024516597691707066654465081556777212701506391476638626603621788499087352246950871953963454716250919275454172608351107379286283850346778030764491674697286251209033435447639523095137047132509070074550573310506863077036595965485502535882515340712260233842374464859091281897110106300314934584739810373288780012237746878102314359161947144771596987790601470234810214195909625050710429809531231459264297349881076280928134783002895858129052692989256801143029614451232642323596994704023432040311716158344918906781152073069494235354274966472188027087371215723137425160084598667061004552630998124754004987822887903060548018816347640227064572211931043346115389188781932562368739538104839774973369964925193685242667197822636291553459057858647291383744188528143045795802939096136087185457307949851217053773693224538815036621595194378383712591495283401958256725963427583102314315455940840918041957031895669046379184503567868645232218411012934611991271326318675407761288084436461117930559856035779337666399841317151237453838033207509222282866592675660952589463435575707142169850833918582101586645392753487701857718498012474376810322951459263637790843503046366306969243185966650667701776544057267841143375838055173211515151650704963068265154964967860308043850373025437839442585218386571302595725386029509031731683933383516822609561382968373319591353417378786925961779525602804213897899570011407423253405707231612425003803318893262730062350620407793758430730992613785816335506928867130112526027784431294708355130541565398395466271351382065201285119841695225316033546831563374125726660155923982521354519151055693911259035219893974885872846874334491112074731308921890215981952776661853171722174910316812112151298807123061920116924568616772365155575245362921479697684322023575835776842848315312955489880779903943604646323826684883213082601105266780055657814975108820750026224874107927504126283011026791640704801805111627613071903138483337805473770297623623559519891055919522693927063830546678096164078443312637753317331534426698440394617713599159281908618387232986330177406132966743678370865190589771215820105638666805380905460220773429032765793159181996690187847728632391597639523722088352521346206703935205408533675314909886368641903674857827487539249241767985496142158993127685690762928982576102804614498011883499906747883924329876677651109951306678808058201232292524003699209015663774958734727683118551279959508087232456587722041107737232024066444308463564365947831451898920579725534713238888142334448207317062997712154717161452031808457336012986190708793888347601044269024661665451714229112904229747420837663281983408868466282557753675874881382080632183306784513636439388921602082104761767161814045365064756750310358686025146205688561854624052606437622057632951911588091674981913124727043373771680485103187234834168699761035303035582598124165670731066791614274065572831817882810233017461521228991931760367612858001048683807357097268900476894737556980010925621393059305215498858983974637141155710551306381204950815640839186838073520030256693065293781824052186349885472784696960927213687515657694905404280493366062018894549649213480917715840221510864020791498236447793348576230741991763933649284040879083898318393435578787540495641489887101971880337957560243106881251611733715264769782867185197165210230459672203816589403282372478134404399826686690279938557736648943831698796878020831456051996612002120613846569623948455064693076830975799846977991441118309957082206095753442938789203206569295292453714219812599843752030157596205917405430269751554891509085874164152652608314880780839357460604588582953906270428951386126191945316774262753301630271250953256027117084693698365121087448044008395972819814858602143541110359157983646537392883732753744774328983897047928059785481413030624829266051961082222565677397568746687992156499639924861685444217641883736415904335088901437598746076495981044146597356803990003858426813589713332358982104075366744307395783890004638716929530331986299188832857158867051736949211383287677507085872237203691142715197529309081732134482590451376465217250307579191151514302345377327212475726414519097016838964021967480086942545435044220521942710461832245373806635087909240171437913262251779120666769637275003586487199432303846444512371234962331073221722342474950920853333184706059466371362934625812139811524832067215471865911852303883705746572343640520889339682138238000475512472106870533215263959047257547608571005214028209451823080715570449031232682842538667080405035376565203537435419124211388449198953590892490163836201212071396373188815374539677685127965837118477909842817236027810891700884933819326541236470426755138875175287379195226869394183482845878629247664434701171959770631125909008385308359050961823803600579017338910231106354971412240290751128977592431841716533302870465122377583512181238606076106455024333008286017360759980112387532281796551920198886051531266746457383031212855541094708088571365100769336447673404942609377590171886200840223262918638704925100059137531676975958161432176970590128940605493735791960526530410331980727026224467505348295436151202395434011844296402219232469137480146531680426126975954497913463191563443089190749910231643614427256946913946770892390990228300521762750179057116207714025019058283288732338683648521298013093936971986002963261244557942125988911476244531231174925982074155792077912740251827051507660752626919707698506345235636448525357634325957996572893315396399937756148888578654870198763772045122888562365457022013142223328312557067667587061770357867909659092650816492696508445909538203370612754286356147812632630591819385848191292003031474839224486827959505349379839022574193671142189668143257055749742937149259978932983762034557393687228477274316168078972326472968054527688172093358538249617816508344051677148283029950472374078617969204041803696451206426311547235655969993605766704382274828785311639625052581061402843057713015373335876658858054461457981970888825461937821097655068654383198502146804133070180259841376432070499256621491413395654008022524557386473068173626163840433103801175012409706980038309185407800222472509659211258323450816971605097013026004919549586171570052215586323358732458116564127475432131038204487461444815207227941578990923292404773979772478556222429073449205943980725781273212104831616879433441243672300917902491879470844427645865483011953243061277329983682699687046529693115595633141385356548234035846502637128637711401553978270764757338757357291065709409177378844503727359546543139451472416880568779341943472501083748342115722535457376078989746798835820537620920810682556013596081565006323187140962118997135814592629242777597145620778323073754549369317274651941431444366945715878588663914784140911211357059973311831153216548124886649615112287847020576405390081232802764063611981812509545081484508956865643291104309784773953360645642721282770095723861496651694774860122391619296802331659920144145445583722979255619484951685645567060046990342423567529020564313512928232794996416085121618263834921808550840596727412090056282309505454261460417758584834988234526212856176681750561470111602806720905152943129053975067895986618444304597919284018452175654601380313379291284661345389098382459901885486489208069395354835427595230539876768213497011897597105204142303951084357419888006589101686695329678181619063379259224427310374724394902271562411092301181042475664739845833220810510378745335459323973022213664386835465287073428521006449254018149789507520693090697883855528821819353347714513203885078478297389274579775142770028317656525495897919129217460600634412383524617636359942835279768736130952725310100069018595898315369297638588999307170951201283514365253205673241151986066525303022922697339588715648777771538399422059838272584528057311464144272150298603465010173119653151715180490842618718681255532247416146396941599071748892455333798911442951200373918274763352218895795659699550114167701243477397144379460315655339044806630520841923347390495187661022792786139404773322184613212052629941878211278708076713671718724688370190217887568391146440347222368911347545060900491169002747207356238517233045634106027270857746704363692371434082700093082646400980535157899682738818988063415147495262013950193340387964746426295628086310189698376641408894405205901501221427046549892467681628670635348784608975266153002994168084769861478013293563144018285267089374790711010832160087845432589346337844514013604279515869705364365921321497758347335931694846640464319930869250112397735963971930707777371540222871142971198068857874465540649421199979063876418083980332808185505672137649204159607511831937382261454751910593387048353517825779934060293492648670744339284713243173927000064861487365619851757213454985371370493256697543650248596394343835211117397431646898352040941400622791516499574494442221379725694309798260515328590724096171277400147109562678950105473234101635276718211660170140307932482986972502413016159403473397152668944166319939641033405744352922959617959664213324006292303252319064901831742816886566721896334902210254728150561105597217709974129469561546999513473607524934307791384618903650949594442689009550768572715225887540257033457622099838149003803775468497154411991909651997281283689152074842665831118106214356906850629140098531574389859442104283908309096164342990781113569012592332579985109062398681697831542781547292466894751148800658210710755863282321777211973026308368143865932041072722976113330469356927139442510542040159205989623240581378036360418895420535749092821836345428189915718459198493771703129370515190689116483493038737110781416909801381334218065950472497258222063264455672948264754957938133425997687524824664451162419949655663928664537904014328928620914183214728875351201306531410763916778353188550016333634525000012211044750922598037479083087407245440898260407724721193993982738531911895639486926578087620144235553000972582557974574226588849155968047591055246965987388158153277954438032600835499155294951385479420479705711311672656286603130998417949969216657321917691018023559057362246661285168312463239783377234900786200083381168220677825556603204452907975667115755023524206328198056946725582404537374836640602828087684480521473262854902771898147903869303615762113437867269332986692722642851907799853038288063823991018230144822328502349590217811464709055476692606530396359513708917911750075339124515590401029321743952960332989701465756231720846742019338450794456656411572760305228591869209635554967123487234743860977831246642830941845993844543656325990216721651435547884589797970390237935878413430647329355990349575161350168294190891190074125121249434027466498606652389027032697286703457474364902143506706156386289765107414065090265742990725997370029863132056717317720668685003757990104685831637077139019880089189874132665862202220721104173379014603102499238283242815057480193668342311917874328631120535060088518989249400792109842808922915157546325266243289051173008480624803528244553470747902011507642897870135255892069472882715717614813431971500327879085881179413663916378046740990592043146117824686821070026145666919904566259014273313572357943192416495497075380899441375444950262796291949385103319283207948531503485174589646070065811715651546294006528440384749065406366239267796495165170970839237886568328396751400876993981038349913619857392545760183454999361156439503526009028458878664952890316057771779018519450406919663008597104651314281902208261211461381618450369149007029507275463097728952307219869497187119484421513347591124839336509680097089488827264874466817218439065147772238333599507842886496379588408427685876441231020605280625606946695616862812110458373244125288728738303780861224705013968302514269153071797862301668005942690290559055813333084523161658377900706684955110925102023774467357673745229353486089659782066680624326667037783678000944936795080784935864814539182958748664942004436637823699707940752763396015090005508813796830984082091229559163933736050309535984030999912232029715924544468569137481543522763412858339260475354342487060424145024403052988556162013311287531604786214554595329674152809640808173849735542953300115706310508351327586792884052577261470035620780871521353637082144471030099779917845516327955405740013180818510591808376289453777751979751831359692855387518241152460761769445631303511707213964363349544601460723494697051131133169388214171594612672378221221656035886695764731381256543144797683378012012683208350262269000324495289739293864296349679715536844254248607501332974252452455802810038734313859072880512538764733788216902803138245190503617405483607788742323221222712134649996338008889592527511318311138799234423853845091780301091216309193641417699899262138261507446970293410171150351233027067982436353868895646020998879341879504859388036140153942212331265740614333045498710689884856584673579302662332198166177794731057626005044355146962235097148686078642245531084331993013292648550726814471457743177273055389393999092763206841609630017137915562295138824038916914039198224121547199281164754414811126465238516906384794000350576275573520054821967042196682284378577783202595035728494853691555791067931189041234968382576854378747590723819044046817609896968138845242775165768025456697576197116969545524372106053971372152244413706526886160471545218719416516918113113973251880123789603969308774145029367452958746748609209148919732197059171820314471953389925057215642740685180133226625177224259944445435945915992726484702726385362194395825999641733432213537224550404900775999022252002611408520344878528909103230113620999695495894972240182675175484561770608059306490728357022217129789772931019118238871807006725949834593417732398519471041768143347861124092092223817903465218532998787675691281596181441616078769768884399011038675719545567715630519419291609884981629787115581696792980966773391070266865386065355939332322411417908733798623220331050960693360617517141990311155922114583077144317122307380579736927528116118752079401866468374197641101225654139530466835701323584767450003730300684421502252532569404011962434772829932492579986134612811518754812820516455676888788813064131916983866441396752468842775436831001027867778440602138477033662196475727815404363320301663561967700033931801630818294416421593008134803098712409289580704299615896927796605225729755055373728918001269539674363802618961646700472824831729815129446811733897536435767855316382333584245955593351386918449327025594625796762501680896252825376041237233875230933084517135468742465414280046458037380582570903454929417619665024933982493194381708941914374805171201143909471624753926559972621907424339649857611124481093966416887978876838864780783150104372229768523555280028057326644631137295994213127961415765819006360511844832151447859494585642280984889418521365270860574922928858113584227067907924024350396025179492771996721785585846620894055122367274159358333711652752205206846311706240282330472118383031826977296868416216633321569718291949418796491753954991353536394897892058508325903228219814745108040902515439870050426013132341785382840890520678461246981062781130238864106161556312992063173745771466025825313081645983482989135666776048361228079873487886369265713314682642828955691775724828739972292299025014554692697132353257863475931508410045963958182420010223245546933934848763258025954943473504836476963824062442462619278674045761073420275507723221213939478668208357010554440867973819675111149303312975689154200573148976072412931836257075765650457982756375139485869883909541238698428969609092851531859334653099556163108838199018987484908608500425374324390131232160657326390588134111070895421158750561376388249413509624111577642060097458871624066772304762758723380174570896978546743364186677590262675162157357508951710044086824743739237529730311796138870185546898655401098304315946115512413502392681487883066891494348204684654637815178625841249429187008322064133046302389402294101102335152844159157105926037355211531573101655754378051689034050113099831753391199843436852685611502450961773481710533565463825252590134243581190140186796118469048275418310564711935921463300182871120733847056432154452553004586859832029418838447152876351710036471992483829879342421304564020215911410556110080134186001101977906062474883675490005541276003606575485425754001872918244844058633699428617525643114314897872618798271626746557918126043003061369320462007150770493175530467659067030477047630577908271869534434570372503281285885337655918245358367580225182535944445052436846079614791149235678550030028948169335694228736428923837429172031132357459259550527373257824989347362640959350961154574738324852765834720192550783628555584731685881346459451864259209845740443884234584387714426743564481693371987409693761282974891781466582403235338719346280491783934224176623179390533575192574693261822077066024642554535178280870941204667788082958482270318664960025591177675665228595892378584270607801158042344582419693176126809123624506364474587801167209531459588536355544488380085135677771489617596307111371902812982425618601368053751501982711867939762867781733766634199889309078919114193171201971420823548169109796246520992696748729258308350008263758914270614228917994741134493377086338334748968666771140856261166842981242147532218209528814331407237219444941825143476183037581329805058176298105131973675145856504443548814387113308893314230506122994199775955750250379400709716899405427368456625525980989411260534746114457348614452219449721539198103808057629994104010617127485453164312972060974723446234899725314929501242759610015048274044239928143130955756060247962252329361286516391188735732764758248038386507094447185491857481141568165624160551735283139667932866356353593591584730829501908410714123170313201163047018232515967590392064277181938133843370962460813092106001360936435632063445680814505856591409357761708561135860538131277686381559107594178147045718892127978328839863545724987622648429415168866498187805469565181837859002678624556813193335451106483582832974702059432223135135966997054822230379616161958975333127792063849726090563831203997542369114451935294147511564104774554508307929561119024366775051628373960588149489984586783996229520385560034877261306873465524705026841309343693899456985551190854254778519144251887191708243289449195865039472663172816439548556402732662089191904862662936261975062984191735467821602557227600064519558787800033303337454702664579549034620327375160083696296896940640822947486349872631155925764689507022998373341906078830947238461221834335258261392258532492372653849141613556876625259586140592995025510419132769128934163752064227375508271131762608062491628667353675631406727845721380192650343908631446751416166579089440792691405616973615462336085885955299797016199316224792760031230615676598954819154187626433515172398626455910011913847044574900215656431973147418965775445539395584794636484867990893124077988970667131057594334058955525492284833893593038396254845498309675363092625694738243743197309593611468954021790179120640728690941358754751835559304594737098373581591109266741501393119632525267387359115075545918270088154337486551099483652060475541827798949705557733235527599215997899284789342525206032707287387260451584816911120361304548826735470856660625306671996792086263221833876112027820908474804723197387525658595038999703334989918374054841448849675695768694711257784585651857729428737034461382281670107021544015708284757245607192039162569238075763234519955492489184869323623564536983773982171093884916797291701304833867724478469936117094041181731917513865939395047084321326982981783323547470921411741684818105057220598829369407507491229125900217629760491548249745453515388075690854211952801920699882408235625211675541273037855453227406040636407981462928950557728083020751303760258088919953270864587124526452763949260745275394557247631970252088378829854140404616434939978950091798416997043641871697759141878440254650124328741102355436859839447553252030414428275568172956310243565440253151161698761334540455413289098779810298687690473913750077283773144082874000683930814723065764123156032187595693302113966265020913975384948661500628821731076223085140041084830757676541917264062285967967842890116209645407920909315005689145654876954496191666623272695802381281579496508835814552559871625290507100645690065025406411747774025382975251369402866420190336016668147047435805008043202521652074167390016737081590857857341959401425085128511348286870496186924837321385533662996619740007295582602738655419294135047858620286105064835189813527068784462082780781248314012893979532650568281395152800856840759790306777806352810230914095555429229540670336187422249947148985573210302853240996918738848091701570645438351279524942431692594523486763647868448625700628172618846837595884828718691513051151903971294372587278061011556810859965937273464870973607741234665551501270895490123898699018983989559705754358417812814209528131782721140520949877290935872277927022927022065067424771172425569571554156122442311168646547287144721976567236396511167536215051427200112567009667483602004999249615729761623594034926908918983666774061178544399940909599696563750637141856981054490559256855860534955359780895821315649898119828852039842732931473966063992181766837861086171066802740990800257446069627221468345960637350228900633820713404446472771969606376457303130032774664663415487620728398501768010012730412392009961195123319381532849579082382362073733722301760988093088417316171283468396009925681416168907374750225470428939202006820965315533061395742173432671087351366332766843279727159211365502819065774280744062325706933098836786664254234696541077144346263378788776356373109612766827086517518763046059272934963492119168449843643026052951109494701589020985060334124532767990033005996417066068237557135610272626408274650548432020365919838698294517641630327063939016386950968886990949414370065120360639436920174450272586534183236366314873312558524875734813505897587674590296191455865920869287393115652353645171364803352559316679163475355118679575624857245468321137661215737190367317439912693969844034204184301912348082425835337380989851523845932789361533068397960330305364091354066451486777850989484005213431694748440944161040427746323327035746192920992560775246563031137198205999948135554658811204873948734049202207154147785494183795408670789869923056529105975552394686326330995531576141593990035543214543928754416635122657329950837567432697889984309139329145620283891684005084661980250313787694625269786339150494806528268623731135821439595096468017450753753851728530071031191577421795836779501578573425040605032018410685554820319571252241940645796315516796744738508746783989399596043648035013247702300358369595119243939517124228388725617842273931271105900716014178208928135752755156708411032104689524225443399438958906620190509534972986116334180644727614245157528251297876661155754261741129462990410936552991422477034336060175359714354149487419825738514049670556209176729140176370308411388254423753253376398654655751619579368872361025143337023496200819371510983852256022532442111376176438128798810976235261345837031894305418109750002489130356296780245852032624510506296690192294503249881275580205980943219445242190238271588093123339288538466026083460288830537002793893537707619855329386109416529336367897777033628139053103498920319436191339143023312052390484930608994018177194222631493505920406707965826742550366625787624693141973213299857477900325594876540562718183024982506245489952311644824286302850459748899212342338717955958049673391283369615129901133964859750907307525911449539891609247464829726501282400988070824919508451050313015131407278335091433420860236293663981057820075245608932776565232868219346448688186563259148598524543223950656535103168438916189673083605950079675348737059013625011495599963948243980369917439454639852097236041619883921506125756836231227195647437109505305065328482089833441428184841912787076212003306902789474163212624697105520125201701406588632985277111322983342634103541450786505772038734361589814669652309139366181537090756653314283457856197671454690630139381450426343197455337744306531722786355846245871320315827272820113228137387932599866022947062669957079256450341965936046966621881976088203297277136224214193725241169978483996603483796723881329867005583828358083663509910764334177815287033587312971294322245324502510215779149836049647442576599867814941271406433855580757896739362311984001745261743531805329710155062421337290957678900773517635551643619241740735912725159750777763297430090924349509004057776848222677976563374759393781200420750874407568081106864766671781542534547446002790978465002877057679252129954155491954187981672338926349243440653360514906611833689991007980599396155218085587128838742225429756479141453713309698579800701978633829049133225977588491297273927279260120939086836008833662135210625542771668421240487481354785602974907736582313405074025879382989037061598419390079364964815267848452254651063952465136060600085211429579322275979857789036156487635520430785877277961398988782625862666056724468788891312289926622912044882367825186282984602993462246880714033636335771594437883147575838255003971049861509076686997996920161145606625020688733781311406067903473081121763566515304758649027304626866378191666477543294207220792364912521531179840384647695179846692324462323669322661659314604195883854912623739516241489228320209497081104662964485980008366775628263563856551669215552957704978502274541117841142356971698946271262439860214975670981566975355013773922242399123921285335643334025639626195780613951440087636686701275732748563449809606744973658940980415684099891357698665543005565013762587742511861872312112094239638697556596610118672275666407322218074298295798505083584629608437676011760619805208613731304016414101770167484751244388816303587061525312593585985947423373880958819259292508256307804275378946067219059549987407711303576732359760178992025835253074372485349737063323297042378100197097590012008713920948864127036828054332785732211380949756784042153609127943415172644170483450015898114813432727898333832342175865097822807242619012462607511377754998879235681442046102447353907639164732511113721167408202096759001360373710226183930194032025338489530057273895863306621398693595075548478077377558540539798170491092462343095029782617630507808327136834561284309712547017173177075909999397562908383911522996428942508751473808940511233040016249580131356954114286866916794034830248757747127743908767558622869973180596306266582520358398135220510564304514859224156541774540706373046826942243574835071664181908093681862855677910595361635692676919707126521779532714372505117075431221191744755457247666529858387629214971000348789400570706382978546258335582263767716844108492405386890793111636295250659716920644880594873000417990904567473632603152749027536159317272999106810806471230844074364673902334174068650299529139156286762018678734058839431933826417007890738669365770283601382489567951948433852153488459573536020913500871323271124192135873042136972594446913487507017464717465275924296898679686649294405233280148127479137639269127092823631842495739622109296681355793973585270534020115546365275610538018820003158642844534825466565189948916292864113779748382335628280241078817580525078210901126666574479214694622013805258372878695421507673501896590022702919683688256393615440240706510901951109738636624015684412189728410076330862244064064619365089842815562344024420816192078637747830208259964633108371550272659912143575032442764569093202746436655707251122716453225444237962172942975218804209996943009072450296052341481637894924336771995701482501977320615890712355806498006522941905771989787401366788596353501303900011993932614789627324232045275558299122991378812983804328321127213042649424485343171398019235518281731354930018082150271391038654258423941183180194650857023035164459607010323575090883102615464891692504559778066665073134444833767371878678081983197676577450073839664435406752429151249302965889120283268227288737642942605811554148085765939916542052058709636516343744552647134584085480677792149842192296510268125728438766763924120591254092055105938763440871897165257867119771814797608635420253662065050430356832961135067870759382694377995218786184513483206601079157469000855219945055234698537341384157315422868571605616291856795733855506963000131230432725326109356056398361903670178973971809798988287474083191682812044817452768752026370703605877997445925546774541786260976684228480048614093208713115818788535092068247227880252892990645402947373133495022806282500932241407013578463071151387801206581971126211583415174700127713473860700010744926985644563944891583695532898867431905251581460903659753625254237749673936014779323934976375101255774865594966204156848232514461221573331612530200658189550032422855019333047521823797647500680224838458743488249751007370463698919612658668404130136648491813258336853486712389020413058864319556149351359963240333612586900149364120561204460128929432451646457633748422528804744876514234786883890887924090600401878588957133782229370400945897739296729847249218058285358844536144773235113737580437313917794363417922028454664435885257485654379602946982864376071362964277637713385543475567052748689091832001522884984759675003996846608730763318508557314954370182277018161549839861621851964278414916431305309326583527135362598240857170119850645980758210048975583659259546084386643158616064550839496787808482562380544586991626932105951205464352957783516710094206410173164351538471612664835410378323379127915477773493592416870795440589684861121579556503739470189326141250785249347773445854277013044411876443815292059982576502582625057881301932039842002243971768380673911622657175165213296695494157387697912958507013261102075884676669490136227218852592661475586811328585337341242644354259977176094181362447109933196635956841995694173248645961196641380819469916091407125178268869110459469458367707639561767239147472650470282806904594583611941009121195077414408244776208667957697925775026950981924058257530337817351348200177283776102412263843723940353598454704757070205751010471745865456860040361167404352753889159881641934556376491571943688891314824887066927539294771915923173551585385468911849895649088437552580831802584199436528163139380195573872978164553716855731985280280872427886192036636797576635918737916757573796260543278961494173563403885750711538059750026164292093959080466551292449786131494210898672319673477205817913364520397166670905331490164827261066592344044914186023336634174209178325454181949922553745846392413114006462487804743179655953748859925505133490146677242805251965170609274175211719463725841615606157623310532911884419773242202667980487201827866472108839070130982927761102786731106753892572697786245607297089333182438182410283756555944487285846695226750085108842551673964446606550968370365073639488343881639212711318210580787049710184583902195672183550812906407864924010576520295918771753464559999419905867552661054403385628239539777437249211739819716072761056772144952519830504951157046626388267241122041744469543070299263550544653008048575787453529140771741854825187586934207038979382436909779000229919308998154837038550707563497869581920574004404737672900353875157186291682437495707187656343816469588090179074228202798431944804486751613924934058664308330839065594244479269409809339250838157765778788053960047810309712180660129654506551590883790744289423255864804009321573264673505340256130801987112549715723909230105177903489015279274132256643798259483807534957223999587224065664147916105678268533150003693699947042046992558669712001993877808089802995301853307069788131503487956040230222404697186788590454113935633530470757466196256243000253927236269991435701869975876760505463406968682390890987455336964964566708900702236345116499965894274182556424777978081861543582995580823880287154147663653514167302339993931690585573608312689469067366212837751513435153752010813528671613947167188776581714587351534556057852023258337589111771195064743625408150702259903875121701503390126537825985707156417495764517813983203095485892001184344387052377185484716497571438981933659124347327394440024831440743863957975493016448968743663132963740566733304827457078053483679022288246086278965846203176923727158599331801198092837802517721011375742738119752285667352116869909927029913891578950457189523926265038130952890325734037396985996832343911511349158411682860518424061154029283256801393830565115653837096035975887512760343464078043442760822704975353690484357221515854907267379745333811594355178198160651225728357719269277260871739031425550648794708004815762337434946218355282542301197934213448028501017684003250194597479355072607999005168929133446030181128257992887572660645887041178754250307896971717451668929118423809230789978843907315993116598293991469030446631902457349215670387470691697005932205728917752269370060629419255433077207742932692590363483762839236470584351038669646253607283552043386103609156463424199923644283789771912198605726414117412811619547032123064668995549333588857308024822940559973382321289509357321474149916553535553629244186551766663686865504528463865068904810482736308323186454185328106397055365473739791076969833351656909583120913203884623000973147106667058688736749926311380509809866717859637399834277688675807399664738753087343619327260758114027438762133281949791590970401081770522116166479927528182551980452441824059711610521998357818078689771707130037738079030270223363877928068500730689302295545531690324209672138595352516812393235824992713603679283430336097665391627698529682148049799956761027016331338234938959425700570877311216888386197748534366947659954452225183640527554667720019134284569898306670421364247795295168155162784046223992113134261344746600778193682972900516694250319282593544201872099829574562999603695270495374295781958984317998789309581122573490505966476168829643492987025829188885661897911982963825881778148627437180667590143207436758045574342253241297500053421193988100986622677625596132136937309780915546682817693071250268700562526918444563285096815879723755861030378975915436184859963320702647795253188441190369430942429096685442886856800578768832573325014109031525469248640240151126164158533891781916150313802622757807573938097572767092849572664151987853099163303714084668883706991554608570972443412096362779138094187739583489984623715268583458437437196844495681141922336924594345237354448620652706230396103807677443196800279310673032576304419873953449279492193195062600785514424923204674372992723542774588732036553276789720934598029328382373629667117684271856881125388212371813923567805110474476675655154322182164840894119866785040548586668339032046342431553933811145231807910598911801213523455634768034112361100858392641833177244722260923223688850830840000758371229561704384133803848280123413398602307344720359164703774093573581617107801287090920153515223189214560091033763116592294916408526481003542264058863706755442157673391942669416919742327230263454557300460632380221406653250014599210441185692218489932000489541897821323844823350743251939744920742709390880423474179053292877951104468449196305651505859735542797591270507628872376619830022518753283394727070060252071978389606782977439182464240576744712274554753575300744420807074729436772197964773640847414835165468683236074754951717262143904608539572643703716928143817483286946491714934095968118607860775713248396600008129907828132614194590437881483734899962734301710686287967094097550239064202037456473809141773601262132009361457650970234732870167864669667884373458228669176037752572896751823167101823336716473733680039560555705857359542152475330053980090558010391967542986332135474109327150847577546798189207333151905610978198793071498139208199370859391732500204001224954061773514183078875292130746412237836919817931527484769677814693801446881231550595623912919630391605528929600722132487307558461879754784571935276139342646416307433831737234183408423873109585735862819457465940027919312234725059938925261272242654753551847629497085036247035465601291721777869841460466842741722249786195741327114815853425524500086460233635407949888640768365606763838271110507063573444017269628585483902437494344079758671941186671430170461530867234715325919958381551832486706137135090081711579910131887025831773063278592194938440748895774684256056584626100476536909741635919062942854133898200101213261924526460436608530081527834489344327685243622947622832273404626130333911143712667537570155256266680017601522092582617280408696765087950319454924591953735131325529704720695189467557557360852711731456904782392591946135102768783800799168575160733931474421863406970142586826975172140910189779218933345835679031460731227379745819991447134971832529545050302675412219523735702147667059190894091482119363161856557961898227153632456340621212843374660425082110196606022470655559261095586808476908236795200959657084966559267832977343975186209849402121963098646618404192633210744516158118461504902596154859362696136552716005754651033499425519622365390845874574149353087310407758123182685684419467239390014149326205996197552462699202656654553367402325301383312612414769412872824313563364918876795225603386195089367252950111340073039612675687789505698634167698262823557505373697085510239594207608256121439482192880855860771750118761707193904184328950800241255026741894118140661564235380497743337152854791399431386260210425048806654508380343512718308599489765855737504042365223852291117994144135309107511257098438392066726280197667257758711148030840631076989089175564331253167047516101749360506524437142386353432233468093333258237239517250989845150473137791864616615113031427712571177550161730118979462263487124404540996859738866706768750610757357976044278356282364949513045094443157244119636883379901360008490298042282432328340565981071328653770274984809439012581940374831353394078167407923178459834731170890880257043480270112943186445003745182565709928018176541253672862303926431371398785438094851385847616395221145609655274219366833490136649489585501526092055581559386289491678682036375891016466656404274845953870303376905572291203937604763518700195943314881296012180607182051428191851535239969140361426299505666308617470948037996068401057041319754353353649685573310089129823993885646657103640832448204473020402919245021697448948435502222327282102587253456687380247219558571993869180787228433699674575925138143740737982365404503455051199751112719748336710923729621901371750310905656925206325477708940033550431392813703911868514185328550644105217062557251279850066454697843395341153664305597491048372853842790535585885980318473205288098138068636009829307268205021240238684022557269583989862011316453584124136182758733448372975454089975070918450504217027637431633327221471148582478914565518512595943671160884212796388035611065705582349863282919666712017622213332120136973329169506400967036984534984792294799306760276248997480479496429937068671540860414346688609234130343520707256048303096937336654205419991744851383747285057364441211374380478378458707388769811966188135454557296086441993108158656276491019958843559386644858252820738295151051847261599552242594476061307278782373227659749813372741837592474992968831815524538123411652860120376260532714812836717113647376569258946038786994687611462664279105120192595819181861219981401649781671177884769958894830573753866394130421778925074972145508500081920519256771152399756508305141340452487641454275736280535246027555555116819835960512618853175617806889016032685390721556361820257783702335769007476091483866948164725875291116394460766110448018689755138578511221696865812725313684442680871774323544173793241849000433837411886173639400162415846226942018452949572315617053512798979669920347360042717170035777913407998546505771029415955681060427416351915701551182704549511986504787461198347668820917429528095388095294961721796951981707651922400334333193779098157159312624696685755690986838979247537913210746292147228418915486604721176454838374291940807268791727173045051057262676279657006042686929682200358496153658596718547949084170121203302685887763193914332987198179824992980697193407411834534726199340874181977110628301759336357919615713365889985638403567059777159598331252089308012385535382287122944160574258285392309555039062179747522036523991315712197923867589517418187642960020673750294155767600330317653076972613034924104763368194089801660894388907969322446249416496296523171362326256116198080079154689349575882797233311389511776720560861698916553169454767127640478538847310358706523910767691360280517921421302797541032948681301994253674689344713327699368082926638373776039758342637873184855047429353287272562039422993638086900699541872053558595413151819080178606411094538857658358227296814631329844831013644713062639961754429060786546128166910537952247143172332878304959747369145178986034851761834175002575135435709816126276706688689141819423678385275065870723723657306826257943048810818138682513871036063302906055964530332730306980544337931022104206317590169295649815571653557875672621076410649075171764127549407052379557133131116176831815330050668485937776497414271411094947775625431150378287933059758229468814185036875988692835890222649448560827921385206174253832644150954991772670484586900222429773782877533738067534942956795588172002701703972655709200630980968508054081256155561569826672624218515407758130891587099874490200990762767801369529543277272119900150974836859453489466091449363684320181136341621307898894430085076761557278146379822779214609674299012329681572512773420945115919308738263605799105236239578406663372738053669323567175850946839083123998882518369475806891650894460328033578989513184396335031638648469663735221740768781542325310036463153366501459223762424278650240755574413579337378655218809268735400572132183572826188030210124917801505386801121666873604266672004720701739512084110314456889743893538145797306995418999562040360773369635498555710585387149784154837009167614313411679657532666835703225856063116711243318086981267105407743613086906661007416823563346990205621496996382223206698794811086276405079107892698183599097739911609842886706955595912454943557669506109457089289987155170848296651957527045532407307125500897950998198990758983545791578313415385753317732027053778292114570885493500534896330514960824937852681559842570533044447369013648466835495847366809580227924711580304495452543868451654654384443712307845021707596670591025098117155683088527712060013006163792817123363357374390886222758578901568746871494806071050821062680924889322169677784100379580735641855255856219854307192636167793467707355136123498426452632776498729032690555878082529096792343361744360277698164203822369565660995583596972448621755825614872400816857024315884766306605139794623409881137273053730436673847144562761120456618537030238926154657083142980332368545241000876439652406521265254825261263087774583034456858518403265556884949948319714813335868198217914989131946678023240046314128515079343424500744317680480199229987463413528401879817144409376639754809205830035045568327610743521656035168495052819032161424632233882885140605911676137650187028213628180104554302066498632690327472232836130841051118880765675934834123779106573989455351653275661999140795362054098581345981364860224198752386640742370495993640955185596367749285363374196196004829762166159987933433545719489214688370599984827231942676789136855164850307450095753716375341141302046699892144026244306319812255938018709818041292517465339167922689901625460393436277470366918262278817765500439616048920178764591897465634039787965261329963238071813751293122919473097623988849191228385706756977856937064249646937818834712970911004815525685548977072684088776536154536493064180065218491454047033047841117996122789360537595044714452975340469752311198627414186104801250007486667484688846933168965719095979103157935275910482709832164285243335035886305316250003649843551333426978913548648558193430954166666278279892460823268254159568502054433387289778382113812687450993345922434680307043437846692950706502680360441577395343362807981755802085587846657509640607263040720095130756240546724193145296601639138907720066078950976901648109412097793144548627592297227129265692933745237899495429979786144977893388673439781562721713427448406285446076690142249278626888266294620362332292153174730587138698035226834265676204879223308985671984159745296100549224350127605242298381376440876738689688975032266664608224695704056675835906711767747351883586128214443823085586835999963253597239771431111230354078059221252733889331688722254932173765198384232959673011192976182151950420754243532487296525080424385465352698078909768774978990336639416527721229349205168638892215618749826061947960801270897148465294706056500429693419797560012556863494604453301412875117747649676513378006663258103698679495385787454680131733622348179052603504759148976670262792849174959456358059310851020795341029087069284032613988002431785626434869818578791936431732166449513563032575886244638307677985299703055313597525957616791513036871777763436156368531406246092674431234507148008260366840872130585595082114110147198085973977033763939359672520013071058614990358589816133885519297166701302881428209636592798103263198279970315374905043052650167457965938319718153929801075253625924022359729076534991371591769293611849937613023328451407518307259070674912883707861096789178484355047668281471600952368029936949970651286163094491036825376319318627281398334207462533672800661364858955777715880292693838544237897904739771650300736077115027904473435279827076302092168430272804583992697005894660425866441650710510718126515972957971643802955938742209111847104969073059674031724777509173511979730973805663356398031171198183360263374279102795975528393826871281944373128294766568074983907261738928230771772962048485616893571267833155151300329227357141725709736577405723554389615178180563583161498397577136301412586773145164141244082829298461857625267424622467634844530267542319039097646036218176388317118329322895176038403849067200073619723569176542073159211571413514320669395535452135638216367178434137358382573979650806455427245804604188134667517618908826506951464794369012053533535545916472111637240061093416191303543603403482252532480088351411179413217375379913195318144586121047595182225472351787711723710198192926327060400984263948199744611990089853731573207811546621418759388578880875914842325735132103333022359296329700906549389207668402877044770101942253614887146794190168690517293466489122321806850493497561299409788039000661054208921326541082606545831524233984333306397542081751346108610833743585878135587310954711614086958314863768197949055824553664268486425368566427203345699123240800457269330529476740850624496435339321348813400937855093304002035138951627574023712888356702724523488516244362113804726444185041539479690825056473302761444786288559221877926017774552722389052402063405301425451135694209934945455731065372167095333645164063321250515553441668430427510401873070819171906339926771557680757287297696525620093887389246283683758102212786488216960094842062683233279847468119805686686379966371189817669519960277230321497842491796573677969699447857555908546556794107174186628949981306740266140732694802507828396700318332669436580060530003550318137167698103694360544135788776796652422505625587513588588797708413771529730020072582998876192825417375034105226912040954525505077776586299044506763864852689461993830952950464582298605765723863975828264151069197177355068711100369493496385561025078651965675241946830703843270732782714156647876593917814216310418311050934652398821754246877750311067321857106041834074632033689118450137533497323039656669584736891785283650483376359918847570955362499996694466250343594537996793499074953240223552712577077233826643094439141684983514060703133756358705059102157601778347801779240013983711249782949124028165691020334590569066834570621166976010527395602241173990854874671196766726647558491358200662236485672555706214251239593739958896202800352053694087939417051314455468016005297769583034517448238661907971366212129205409038121592843639013507507785322012828333823594731558616685930636059387259019010355355782338775279840697678109711428608603940220392100531924817335838606826845804175377141600224849822109637818193293331055967116678003142091628990516986838427157520188771546997604050788519798462041677847720702320412209915170156892594852245627629420076981474757722350769313122471157834916654708224023934730119473376392138769207678870620013733018710665775022567421077117303345838072449776902806859705553629256517789599084443013158499520154644900703355768162485916141510318985087735413110840575629693936689960710966312415008488664562309120312572525208321995697108779105045909872819766560275400857417058067973113341054997014594720400496831113846890796398113459076299759174989677521972352561123280153810710904823663016441644112967446619391494176668520064012666257269793667996415719296610123403721397541972630076779339623745482400485123483411680216051190783272906045419872850155204973542111053078153570029058520096107779205766164747365454348011550410059405605201246986878957330753770773026154313186885192887926398171321759189691750713338089114967357887228767004919158558271436899283221914355496551612825979535929655076128602846213484092740149258609414728636607003768588940372615880955199374205200161932057397282127521578327264787587696933833501954843581913398133188593390053897423431405620961778032315428935443913113140601625797981992769776867784672408687156075468274480967756109470903952990666087616165129952087400468539594058350282100184738873399476465786724421516225890952880324633478626651986215993381770013512319677733485523880590003702955979978435669904689144775310803212767754409759925026223109363111357992674746448475377854674800494632001631709819183399722778861391314952044158279963488635660596711071973543541751362482885755196617274016265209818123701846375795236020852211594258035882113703703083989846674391015255411938157519174893072041782653883085354216855401015682465746271599620773503979980943011249788841600739278189605991292047338230000054451263616943452204656499068798833514110873313669914570780137685852100235545285220684776536370876751949756969631247585251652090127225557238438267102124651472019973686748887776944070092963174890625110874006313454281568551221274108125843210579942104109392902850125477963514206027864232555994425921408054555713179928294172857822251600649084357916683301984500472516012808358748174265898520276458403883148124473433694597788897891328591398773410249974086719740398541124159995888730732956513627198253156251084496184125027456455783050863319135002335355506136938197341693536264422079634516422769549037333139323517317119145589617725826739549212945340477783557395206136258013996620659479953076066336966820117572442491121388956895757856085726187041586926525309814508063969500700823871862493543675786042589872293673510571307037163203354553092759174735196129463036476884378105978613066107875451661309930519333504440696617931207313280838371845329766712107766422301103779766538620625102254929909023286529285814304131423833605234088754185077885015633719511763900421604404456093552464101341965816125543193157106978880246294089173254961295418149941572423768192435166107245095082913534511517513223559588492846684078650251108663012901250239069512030928390637562735249630558044333343206868299302317518213022554547874430170842880661715030135587022921776432777164214618800131572390374360740995487728387018801416385728975597229822549203613189392037881531570743208879999893037622494937348997454917186144625205037949855199577465626417794174548236044063088317285337725999446815242825343283445792494631338356521027605711654645765936033853528954932415824025934284772726762616011122266589296226976823142913570021543225239505867238306496967669078261385786391109529707176873828165451366578717526663658861670799372465591044574283440938502671241314418038997238710299671032242295145291771846455588970401145622847214055636537580582782167999647271879179670443180714188437235028736912087307460915303279232331373269529314633869402167741365993416512833843598562158322718139911119920550055985331060419860592756237904958066728903536663821237738349469755880726668519701732004685911889071651275924325913389955644200744991186804054762536500624630828755900978188936310325778382124191895411291079266955344506069084733730785066571484892780723062234292674309590769581548240494894506813028811175333114582724189022369453017272156368143255769873639760178660145799866426765370779718961604188998258035248942837366770982609067333753906558824770621827391339799182900356940363447074393384189398968931868141716242253100914910047222760544470465151592432401968727354014203682049424912487409867534779898483293573700044152629209497880947104874602485171027763063825174341328449590743281424540397067637490781294783430951421893620529580768284307542815678089810204467828937912530590906358937554534816860942414627680186751339091768197792489419625813218597356956087785857982081916066514467102085228105611775090190678578136392452827331484372727467180382584549591731559718496132261527322950332351996887563702718532403442932462003920211552663410904796160596267833578980974049739585875186651676922782014652550299878134677585794583120999636132623758170253623231377772201060761716784650041011114824368447016815854858783816191255672516440591327138428509707609093277490603414499747612191044047085434493481909215434481595948796856410014274176128513794683905491014494253084013674473347973731224142952803018405478212883818845176265589090645257337699874852591170818178547987391069727822769370653477951065993734958462831317200326707158372067227047966602545004670839681960825506990700525669500307588715771036033489414467098387025788947544445156650540328653242421665937267088752647330088074469987223342566442362020986382581688965538893511383424627125654130453681193707249989053995368609841511761797319895728188621682030298685798801423661302256017535649313519235212548049122908428580451565518791777332497471815139454315425247746441255728189819651695199828726615961895072320363144746408927375488209563912414348781994399986369284634662831550474559496860070685681319607455588209831750478054360469071387523934583197583033015335207784779088627389555787936708089237042776545502300775146265956202206556247232266965891473114263130401999553943041988598040465442479695705769385404725311744677626793704744964634945675544110717274728452630600254630912664013344556764904001592068470559472311370475599961289396304555124175801102430576477021144603390397761560364973391888656039829676376630910089646555540237848112091890988700533981872774133412625151450572153790308534581955009556994456733331616978790133589811493793887280439658862823479559788506728974361504719011622708190128857034484627581923990735204542593343939334973683842308767739501612262508581382752885464273979192191376640545814285553734747542894476061208259987468218782824680977266673200324883014764350129328436508003941096840050873292011910359976654273986361558925615738449438700552615604440549267581882420728417528254365916329466483752072472690411842216660742153194063113483714607985878158235180618547675301203902390233420900301519612928819868377737222463347735731546423702949248560473227008854138844512455487822647009180727982215950739588624124770181812573852613312894821924128100665305320349401607828447406751523232729422791817613713986384312367642710438364892247896911112551365877078500767704664008141941537591923515692976769108842029806233046878892960818801700257800328884517234214229433224300188363460239408400232009641458397719050481088312253647593733575694288098018196180919530698435341149519332069726415507979320138363649686689617320200995686475015328149859597984964310950327070197211630113527205830351185943739839897762049140543699725256193664727976380664873262696628546481187416679404311408009437249492348417833325139641063333945567584459920602089229916233649390705235733108258745827057300657263654633570413805032391684979374321922550072735662719346880325728116650061256669713265638114910893746940554156298729638373447316951394673924424510649527275458714728841693224032172348050202043794197328853856372359756505171020204849379968176936417220145609640359119925848508217447843155289084874895334765763355264558756482312757321934843553185974273508703733957037523322513408742884550433918632209474396190259268297372940979962710673678853761920146038362400318515312461086086342910117916010729592411858729814984526395307819509944613052850298753125853000041841825296486594647113305096498629192055584939765398960751495304631901774286646964746975261809349902514864761610389048439247789348861611093734880999503840825161077463612157981642172977179936001363297324768694127740713208616226351887422533013232233226037632722801210323794879522362212988823428076124739260380639809831687101701731706649196780684878147486315965991574700389853354036079687927006997215558708484082184234484604490471552106561675636303653137601692804148993987145349608356905597119184362894076056144200379301859326321682357453323518199227506310281320485985069666252868257987713677636409644539679177188785923013530118715294649950463094090820319314455215296618153358727570350105228573491668426120568237390749367984526154698530169052345497504505860015197790321175294297975948715617536149637136710188700413135704506198831207780174667964425357957129901326737723211348352277143590548266843109310380102097835421998475704505456817137904572056908769353365772935653678489637219981938593819151540880575750800888060255155734489683662637545667782228269063432422398234645142717398704432138841508087865658791531423633830642183833974132182094106396176553787846857292464958407521567183857047707041395524647228631215088085943303830153853518191253236902323614632063509653016861443008547705717404483862933367843831255308214144923197586209520868273991972334016493889016222700292857244124863250143378157932962642087940598115785457194111936358615239871091398366406580305292868257314151230116681424573057418718528183256786331678922211923868492299760378704151423775357205834905945328367172256634743887546520740465308452031966225966482134268462693371673695908889757846354731042898732037439568524488080586540182527609301796563295706141359650130069142111957433021966044005073994044420304808306591391188682296713901896854294475817597192763929689530184538629683174726854357258527890573865452602892366575905995244062643056128133971993822539473021481762441342903128564450464472766680172310225283164856798319633410173033158769404126778858925415301337053595947372219431227317184506525419092936997014907954998211426141762023196517093614061595411092863257783600432786889033335330758405251377051011183327774595240491351635437862863092637777732583778096578231889069185220704501850324117820733715383037957331224688965037525102847500698142461738049625855587627598173968566853152037943981402919384656674447068261098164433693779935118050800822713933033538314480732659268214337432644629199425360201036889550492808814069524361054265268139118385291089917273534190501659818119617742832926747308694390170080581250449936348392520931802879493976189712681089683131059337403255778229879501773227274953837315537718682557594242828077232949658088783262414742902939626455320632034246840777864602109644995573461716808859627612582294768711334334627014081778283596557613561163116613096107418734065490468678900639908661079501378629823277652051365047814013770849620779647069872473156179550373501667042406840563180276292526205218127419993111545794161079946915921783502861507207547287494230591309850437705083772139240698511713262374663694212680698827550719654796483614489023224937398228586319842680690160135292473832179738423741608552228518015420365469696232444653288058037095969981190189122804062453033317321801211106187882628485011373217844836775605737905273508841895387399290739481281425810698859165376757008383321181152305696690700374490576528101198745794450666690644427839377464635225604846012639958332925919406808496926038873130882720365711832329735529596493375669073518211798864006017465739350952676807437579120204491631139264978146354475339584083704214972276134798961229319850975091549956006002385845577215404873996081873180551941141539191514331456562665353324093246950627629220676282644243633172220018514117128006328830268996100519478028002914246851614391219548197635773897469888554580680432981212645205388899516929599271687591359652516237674956918951081908822480470610859770220109835171440287849232769587229038501999074437251871515540107769120731805837989355793360050005468981602825467415644682498575067351274781387067548737007565895877831453099189447744609362534840774897329488956253669357319975406502965208262803023742687347065328464115522897813115966661085743686413732551932826209161140836819297673000715271325480072206173559623382182761756654860035267469748012158444347972267879076454524533637986516972766090766488531017042118083360221069802863763889833237605399713929687175982693052743552025637899654278434516503544797457050194078910895676680429473591233726607536269188151742452582650998092595879437892870885434856089192772957578195293290592296860919044938352517250379833766297511642476331354834321483726569170597401198433526333209158006902338671773976866437836242071358579309048880724792034612629554787748303261877831342594601706220325073584192885271197493134572897073028520081936329176903705413102519897692485078641140079156265410186726235622571129301805473729184222643379147905629927477966619895694505701754190315065566545851244237110121438318294067998696525545850647135104834178796171514439107541315845441248172793812663667898840646735735046573921946154369306262392636262248158378302306662842336523478654711993818667070509420651973017621952355228157156265137053785166719509981543769002706363803537886486886765869006484624583360619118043963625960021221312668712207313103569333797393067447948805190677248920934469406728275106876612771899459877922605355045852522448626530116351431018728657811053828927294808918934420820942064211472981792051683516300455701492589724130902293912916234397576630586149518459390459478584174750384317978287926018603436598211503073487868099560511212155099945719606028760659287128155423555840487002450468433457075165024701414870726668719479702506618637740141164041485159444456639633022982321057934543815017859824313852180982444576701567548446850773627731461669770096422044005379216815488119102565041912162113054242674178661876750721243261826608256268586523236575440056551360967767623777923706976532984740263674014273291554488978171554110017467390968016683368926882776658898973220807437823163503862673140723299646075993532403519019135579970135471972496124618222745731516070883822268966250070146150106079336064706273005368909719501822881587151437888089225434414735378024918958222014517114239049314714371760063526711293501846883413551602696393585767783276769497996808447098939077146204609026177325125993374651598989179096408740539307060826435628104357459463140132603956980262676841716360355985126399305184996049876665188515210801123412667083022972174021703384748697506466122815811197550303683436958200402093153050267083433742499651719790114588328525768578233108721794934162306357419422512193768554851918471955428916192613553871369152059636738600909956517999215259261540180874365659123623573529907998756748752382965363361409615637595453539676096144901365387516705808518834905451800337840899415774913057435053574771888290161357442744462751429370106729623522061798785882687560459912817950695972451170654799326440981669731729586182406464502565046719899133642475499527116220130378774876133437111993614592476105784722391200417037072489502000141378229294903001181251759209689792259618153288843448993633520662849301633545462273806622573415927272290334638432458340105609969059979640329214103088310201274574951648405306215993357851464241414575114289909908032739352774399996576545505017979970177789422831768350181947720374888343331826284434008924400141063634057766793357365646363291480548112676391973875701242936819303190309542624306293073649292674570396918379625374568911540547782457655566536227386558507923841347947350788140044948226288180715268022042869902861278228569962134150642530992724879710380252899194983130306629505064533294617523959559051581144432486726713496073028928559168693999633825179683650913871054274938058659825085153396349896050535675835407455494590242768808760891893759453518523437534360948299464321602896211710749553187296239363809688906447982356869305290457751568438021146797851191243005149336208828425099905142656435283041269133358716275135427686922402529691877301913472118346515690138229415185731920006908023770074267680878491145382885831014521649106828853278841518752467851798826390294531455107993174556738865097224754720097730441958416663800007785202989046139379000076043955601368270344927044501756696338486809560818390670413010040052610989495425496459155462269424296689366295147308087613234789596001891994226280583875427815121388887305736566369007405342774796685374751751483685524380417094596157969942136506293937374886761803287621241861546257516130976421295923168156073258693340973578691246606048241359018190638441051561960981729526847764638801379744623006682179692649707382066736924806901280689174952223651981227602633329571366260618284686850562781130561797678737423834965033396574366968180863080744668014833082138187310501249466304807486780301113629681013919269078876563130731701581705599278788178809810701330314523872106418877737096428466258536874961040004362721745028227544152491553683745666831758724806971640615597159463343168038110833290993829070856063618282539665339287819335316513603531541720603282944997247639524717015741294252341857264325253882094652840635549522695005257747544713595174500305071914043604958340652455564273430176053727523606411951971759341363031404067440511990852061737004563460633115623435636261449072720095144168674184361586334150145661634999299924127217997253958053778354871027875249459199497173961488075627817330894327572563006045179065453758725817091115824925568441114797008824657768987769371262665951656725220472917405710917981469810405633282982592204236945505943227369772840360822860712380185601468382709090263205046871317181069291497678517983047286423551504860888990037389458531541859533737239509178759714261406591760330633417440590256022292650310600557065645649173395510717933617079139447747273681783009508678531627109706112774869599442985142196427749004646054408507836744285019622127794794053613080072571446224394440437134280005049025517304840264571575478450428341874905485840071227828238266747624514922314870755368960577470848583941715326767618454685214330560503668467573420075647484851507650770664743659905766156071161826928468210843995646957582802354098405632354190387358146402101945464155828973951204210208332285167540532420493880286566628825184162968479590406803960163407866068655477771054898459915023687042244083799569818441536993589855506952372585026854372031796289116647961216021458541339152836093310415660792636545646501463103872176964964524745962769078497902890321653571948123705604675519942812875859143127037687209611840496953573895853595215749966891664395598498689210201444564418896396913533491253055574574916292798503084731383209790103807695685745815238897821869133537246713757155117558522962814085958628341590938893926204124579926887359138990844362498691699913328333656827473318471076380705602734314998131610066868822761294427637812843565706478989206165610683189265093103365013864146265352314119587745785431667637509527470749344680162679106216705704763007373351149157142263499882812038304605835898480352302478037644474117896982890594588247002128205896081460006168361069350883346448343980829195309480407259193209568799310106889937018382055951417014033363104886780147296800519083540348370662257817448701711263893053531965621137337416185849467081183761976109958834366303324624118706586293324203489943611818573988450512624032892397715087193160754068672327455934324098105079721861087958741181423246462555537002367814751945356563949898569302764446632253033541596100247769211247805745828908979593069813472397648152571943766333338537558329452585993254457806118672556140221462816315176956575367680897080538648830671108998935864886664790446471326412428295207850205114012141565693418465278174685514220857230061664470181633024409297627107258546202587004429477888359853113696763848409678694969487938304944552862549329532137517195993895237370006526738790544576483832643693230930748919712693345099700576252776555295868416702502408655296228297493957542565744208922629574780650585024636463278180966074554089125731438113906658714304201755314387122803842179120835261434405148822807423600543603324594454909847284293873338031428619099897274652255887651408630147190704533843778172509916171209985032387905283747634450238842043237850090815779793481299289101959985289196784841555456812600470186104963967584061464048878811369534291076407502883079748931977102297584141164915910117005666924175736262993250742867457536125659616708327143867220259910484543058420789469309611585834591120388184456114527110743483754600413177716300428157472878758004859315052087191604076230992542653423489558920408547329055466878062403654499448278101793392969187463765352081939706514058763311190141399309801294978503016343126808041745384518218370280962072198327102471365645979966556476854170610918178261848542713592087237229753287663646533687107572066044423672846808641433176535084938593555467801009835037661833022844699550663173354569995961358123524726332890875764460188455191706233055235140283726920532943780784608357317834877640986852165759624219146398649096569923618260290030326488645704512742031472087054353546142897399896628469064793718273597582643398786910979168614471106557416269703710819587561766450883659529100363079419028001831125555884383067370068961038491756801041550050232206211473723670197165851272806921371463611765986121512827595906463816320921237284942598768117618525020022078400208370535692503223886263057209263966041304341956278599053288690606563831668476450073258100727151310009901196147486690591761339690805630199669793110697776778696712053323949726841760070264780191100008894718397848057299927920133836555118063713900263655235502836843594937822492264253981700081034041724156006171083430977124488721809193413411732516849552179408253838398155517864917686657274892631960522484411908925441906429917703382433120414162066474543610657086406904455233041581369510009974398376986773425799477155825255919106756244906796819818563034658113202206073944175636793077931137177721232263131182970491890492235017450920090972191786276535632397079189876204832011985836633615760496055896684759675797862549964857147226531146010554387025991254553064063887495320671063409650116322521401800340705212940490772494658989990996979407425009701997672212647122858127422613450713224472441834730732106699976326993540492346531657169748955767543563019399146669942687226814621922080143634005469383015981136816351216486387317506868048905105263282860794837003237632464648456908440390760803941169249744758783193150624038867076569681111849397020485125637302012287440349859020317936391068450905272184920389395108574464092748604165864600854619591488865857848761891213098853791126523997457942227522402050012123115039822801994517017279672813240202462445182269939235550627794026350090559274436645651385424534823975970350804099250139998035036043350623631833242148866174264893163412986344282126231674215757312422106999844808697005209449990395617262327529697642636229705135037058143780321424782684326097733534530501506013829342993359667999098455641152008392134160480125141558908705915980348502307406904644654308412384170717303833840537158342075663491480561450305559149479135867576381393969074658206624155279950587958622849614502960219344606924562175734167421267380466940057703427491441746377067029617442660796112134925180452908271036458319339669455388750197621422775105960698065432714845341742370197536780248280407304788120719547983942107103515102121335504832731634453180686809535107751154123883951319380347275148618774579409029403446473705313069160596148256297626870913054253758833628866437726562492613901971689323594937938862071317252976179810142302430599893180944885480946791526698905982097572833186696380930072356515067973782130373474490473804244122045626602920130277189415562955759704716999713739977528694138616504304236731615605137459645067388029103030640584340387741914958282711614471002865653703776562327553889059411427175961210392417978883961772355447605320225671963988803876963498879108921081761948320214782885789018561440450312755362847294593706028080055030838477119588474257331922258102887614012725770003208202127863141579448198947431469245252803273171706390315699977550289636282858626396217019057181217844346000993788058573117915463310838540023526865992776044547596081247836259282340629683605792460717056850997552233517293614053155854764890573803963518447824426970368815535036389508948345191777604365632216214347716521888330338143602285246040507215271506689009511622495405165081262280517909485958001329284290617630539693066591719218589378225565327366191504061752085818066908229777925012876849396266615279830196338732550032142960139129605542782910212023935950599930487313401381103535909559538795462712333234551201289070810131814903231275727835372457989153423064939772335270967499683010288564799639262757142092124985432534238630778767174854505420148218180593615782754365539918252705821795187215074277931394868307975293693734338897609854036526216993338093139287557521356339494256769110802629681347658729893161197126167968672603637395856275410937594270334453373423918762947615775239103716240778096635756547905953198153131008663489541534896702601254766244667024925267629962244615912327269888800039129607065073200967376219126275433514929817543065897341817496800554595483735508369469841824493811240228092667284698598566981815336027436100173681236643614835050342921890161761902697487547758760888013810486003078613914837517656544193115495741784881669094063727052931043352505540005663976361948124070873681502943669220817986023430685985086498819964950201130622043239564926553134582825505211410049572179929438427155309076524198816028640555013083326287633942077713691596911941070400182982257686935635432985267709342945393702692936177655302494562308339523260392468669677310154135863679215254358428902015998956717556684955084262249410286830881005254875859846547170433914296987955935314979851952728968591549560891163270878610491406038574081779069140981681571984803707552734346869703920616128121348859091215721925757985503514963120338548278138936718839208517532599058732709504891670933240655736972338953354057853007455095471479107780517784159265606031425518265631947955214607465269246426149199978260514279295113160359423189138278802566977840680239645913434842407715140083472600778164940757318052377930261757867898301856021500635263449001129037316399620307377654280388111983657507584737039236822977803649434555429057145973825662124071489210009889710152771774421766766890499426596116009271084332292099330641508071836531071441472880697014994144642661780411889179156990493862516656598773501935483177564654239331976522105302261597104268760657493545373193224745701693144385819851651306853393451751687939161057405938482223929399727889067983969496941749470977185674844726038214414102451815176476396786056197034433172167188384209142500761758114556561655241511213634269034306799235419581437172493381065000971005929323589695277869901766635949501802476494223257066150265649665420333191142168912144936844253546548454276676363535311292026709842346258592457435773784551054313854196533319211669307689658948248925653054392929288182784288707297763025705351043105100427625270890460485251666378179670019940675221941709541604905166288077433073086788559808519665077009440684477442420408188721469484291372838097047383875584440634343381845301615313112729643041089566094809489202458413286898119949802806129006153926525866656345298846670299771963108016057031720772856444307156469405366242509179270938881713590901211267705580089701367843708397325728296552436718352230691089904569622096939593166162361750394012609118703210974495888954491631212929277587314532589427820715236398495602703417991445718599077253822259408508127565528366473767976877262405947358185616705683746470595460597755703796733139741072672829600577215343080755876401889626079795200065818290948546806309371795257416958226163037764473378902032591218460065390160313031147740069470968098502215647099195566990686616527622861733654128129133824714122835704218010436719206313067346754302453915950998936289569601651182385724906189809805646852379846223995100900860543922603144680241606771088648309082485153519167319496373802728868790424536467780391442111070662391210672038297554898025897968292835200690571003126431121473407660295934401925651511263441936615629850975755328700579698090590176418963647146513572816489677009450977946662308566432401906476396545662508400421505860317551505409526641120653722463940858576983191669733630764339894330078528332568463708009090669571543134716341653633832598141770058502423710253642730103620870331570244344726114695390655212804917436186288189739880215655941015782089018547313802055191035608014209545003626485358536427674401379240659411517149244751648791821838670566699138792897445800403510017432438887324287956713256916871802580014406651945216453347722439716272985702585409202067632911696697868820791849879842450467586396963551026758113858211920408163600550090687720868799619339507121449176155126254392286937989557035846702516688303182712884149006042640230272288522809564885812041703485467897511436349525020884498572663292800228494894745949232039152933230301668767795659546447420484730915839777100806119017905695149259224855665092904941033726814145215994200671769256431685081779538430298186373553803107881037285475994405878029175534619235846615221010266415429906770335668619914195343671133115683472312358245116057286760662999807525050613122920692754811529612743810431518581638956295227346301801312212679429241469853795443127724695200203920255726487572256880652139128396162353464560152983257352196526515925908522405471416260337889422296530944247319217654600201758416808898973849709274674400602939981832247977603775850999876560030241057719524954877619627847563457906476708622313370539703380910578530823461780737588919707564152373613491521515082879667005692049608367357389857666732897311515637625336266180134563804604354599100757318061281275328934207898938624187417885700295679678207828895573152707119045252569313301215423422471456818455827957342819211953914307578702898546875544319579636602230786436342763128616755799106461396307390770840195213997234974265878132564671985787738521080968326830992038728642998465954293891174166218880864141448245868243874218654405532548372252967646799499174798387215941317853150367583570879729427423026929841140392713879978957522838344555609217526648174394239834777716377845870944953172803901324495483545353348182724097170391240317149810156919605201429052132313038781863358389413745409666824919461189231999539523150757795889908766266470599752826734800992895202113747644748737699503039772001313665695748786445483433873251368669568027215060548944220747197837363943920186776442105380502685259929695005716613566090259959502100612534038636358535320841198632493609778418696879643584825592401007742231805686404206323973896275734378933911398778451116315792691149569655727914511197781366802004536840730544597085201014023915514771525238302416892831739497858895631761661253662509368537020220869658863540280630126082984421341892727616852194022205191354041258788585258093296572514797665981421162352957793727682906694501109881049046939654547677999984998809248549100698835245950271922387553877770740423166334144096972495384050798592319143510014143244350484279904668681771799697677595749601372332540658341397365337849983777786618482511986944601367435628164534792232791559230129454208502013918938574347382458139245668218133986216643094469365687539333027588285105611054532802950733318637741566207748128786656955547902011896841937539502323610257409591895599786617506384992937608310069335975936632813536786462336548902793293757716904219363893773906238186034520301375943524228853834996681085804813675943769008710854179138582347055341831098585585563995650696891069596354133340002841102979110530066559136006615847425884069738547564859505482527169921473337042703176723129422968946117730045748393310734310523089315618339030735130453300209403516577311242277016199695534458020228310696820976594694760231247575175984889504567363165577338408184759064380810932109779697684717405373103268487437305523699865768862729720257571587118896825781091435455837743977148344793220903672153213429189733353932163111301112672927339097836483302825270138525028362433305088054041384803667632036664878329611131425767658668647985511247230045966698373499608205062497485665057928951236860708819849053801272740791708179954473958644576621426060807932310107584416200863632205528189144547842383742899733344443019145895551084277439918027387980019216574974375089932639231362207929090725544716717406264842010294058801971648022010226562202469196118170323001056402631026874916974001913383735227806834891194536471660272998656687539704133964502661460183122177179261729862553180930621328844165068404637309779207172227403099379494186084433194524032893945740675465648203866488175761926483042520684936113816529848385676897795005814165819395322010808300938678160296991465653685135922662103505728184219415067142660552890860049999861613447294144815944647239557428365143633821183505214349521355048298342678774814959047857534626839665633112782448105217949109626217292476681605859544749605252112797258956122924898988522143446866518447197039767035444698880947274591661268150815052242661660844518555542490187360855853209168666462102075232901628422118896315589859929769281618909022655278474269254013188190960264927936598684445011138851190039030580490195452645912843419163749469791013739256163145943432559205331038393598423625443564517674387745045934990973743619626970212144516848988875029782907055467532602867658117483312912914561750877670781658148935782105921475400698318481767821879128438873261810476228919728179750692653926859483843946038088333921018965147074208868278355806618277194752392220305186300283241868467966669253047678400320348675624995589599274958964588678273855860562004708000610533898034423445617759418370848963141622858889553619444461739354415414347889669960309943403131088454755876355293618298463167866043011530265584992344173790768325546483144287221884309178782315542226908514931814065720547989265304412126120496869547041219130026611765577505491469277147371844642304334032418592441221709272787075433936457680466432166166847232625464939998514101030491780961505982291242544234535383417736488180903099637786496769252896381232010877056171283650794831256027194853424930168117905010932453277079949496173168227057090770207067170372234489621048373952468425155269957307658220069914798931447444328600084767917941660914318724756993884389499807829508630259404509759591048612015694012189171567813930229354687583613692772427874770096373218789885177277299150897870971516399501155722389310705294185690753867646131828283436623218969216827480577685486439326382039443770466034456521303102546059598966854102349826388758650388679108720007953990540685115275107725353978803893618750749153638428741976529112049148644409827678581610536024727245740688626516513202657546735769870573705893881050801035776280297317592405929302381876992910491180736728666287606164991295723148883191931202031832947701585254431441584606579752799919743855555451733081609945969095527137441416007748303253617410011255335480387093541912762959672422289642379673719725984583021993537797572747979901074134975254095051944299744441753822589438468117300010990046973327467399099712659200641182607034345047918691635723713989261071894261268769342855138614224545392680999760999948828712383623761171485814884785206855065640961313867533978312741026602680602776220793661957312379243523309762766752446224502410583137638828200677273538150257207725329802854392389358603134671030300562402028880814699009530045986650798685287098167197762082235833448032053927242776342351062154589508632056742231560359978138258393677386961249558754451117450826190266131136112753115450639567713772267080180608037889419520796626361455709667426753234980581454782858993516153647172763181715847329993041519969096436961316623450780572867656212240520421468409183612242118382291463974890322171034789368848063064645626702312365943547267578095116243900115967938153398146700949259600585597967167412398233873318729685910339287695603784204744014016991694263598454170119120707647355809228026296516281006520504896891178316207972066286596198096696043439214127945278230140075527986125321193701607695121581270411097352528022272790721048122600402208297815226173244649476828667518962683940548921452650337164956945246264464223146842100426848133194224975250778941063453908937663052238620495546085327409863264405880325999157351274365672698352682370352250813568173724234436174084229748961447459044643407299140119241937847345551830869906619370139484247670536897809602837879283033031951744814954284770909042047137864255619307295420924652535377504804496800956172104233777328280535597091741331267857626780629751916487881890794969044746526970705763637502904363521358225896970256541324974887263031881282597077839394501275453979361531323508669330974366312994122976425859025688374199115982102923035765754179796677193039204766316867336192335257136496945252034209435569610592557483459760367958410917106982494717140971398798225886725644010018415813061009092894145671037819074496071349818758785764708228426352557984398320805412809467669894704294780776419310510404987649591937497444748385256015567146873046652922794107878004880337756741442774758652852230526034184117063631895210652771632840561982768797642601746922306748075911711845713417064895366437975213365700899705110853776030057582373229674504145994086989109080839693057782758592345327637372485904585442799938357113056503447018175992097941341393053503167289457337006218916541731119928693258912922557060693625030368446341724899587453089328559097833794589052633114453390644067517574637424095741582279878739889643141541703409991147729785029385246335792458154910852671868692568330053048467216343452497303922722630998412475383252130495877157339739860207836938027106420100124175373230544111038962735197829140693629116941727796193327668541343472042368449339230791651244093914707550586962070790417429264104514127901712477521736579442012725914316621170214239358999867204150831689069076863794756771187287344484538686536265315948883806868316439657733266153791121002374875266469716515754821839427317705076264390342806663857958155592103859019699608373721432852248205748588205356296981464260926925207288724976170570957900265698390854870676702648247712465933716423542072642747367922149616630239163910320641230927805395188029281839262271778494571899168908777323337806381925011027011852141054037061780446864754080678280064980541548556745286885581396037715902239255602359292406534681589338067120443045147807253438961812901709887680663356499363435247711942905830108369722561182111882550509470277608591881914903664826079711374429047112514333053140539324471851331768467970059241977662892015130077426306895274794081558709756978694935789864722398420212171159369090063638925089715720826801851421122673496962926113418138116453535569533039858581403170783016722966018390004494504339505369843927826085145709578401478885982845183945407383751056680757792332876393472253346011519465078309271065016158327083833796950437236436003076518554883208495351946777669217460291194751819332910242212111546317770888447296315553085805979647184053813609243578104963977782649397261005481880928164890868555584907285532681968902007464676082884512145869346546621711742539546124111213681494607067791704741975319113478498619266590837631686042706197430067905008006587258244482612250859555829502273070099648148699634214335018767279165479914431494695951663338724632178426458687768053749348303522106316762565318579238565596643044421053537241237848433581981816301222580904671643131291684325654989425871972846743888194794668854739485619205605358622000249807234040720885757515711712511375835839006491761679903353208619747716779560888201543287240146202862114165709830841204976743876907663196089149382402041800127779590745352640670506842600726662705033535324355289445850352050693172056667830063611074943033018556517730044834651502044391505214411277826582941876146947615385518506891075795690612902288837540197884976839900946904670278104005938762198577196925723897160145313360767308515411344466922135099948382923453713348974679691957719926266397958691553940073630177258630237895732477816623216525810477742907579982957056080635957095053998280407634665372168332389703646395962203473575310665344684125873585875907043168527854143803173753765286894219591093976101175483330473144368303056241331331568644748666282772800027541504200486907669624395862607601251852161920387405589073395530671115406778951227795233593082285555715644115914910167714617765693817717448200578186534440853100774050650987336931216287659011503880551865692169875719841587965717136658838547474051953644867141257530198409478033913304431524929442537048145241878358352347091758468280485900992768268330050682163821465079770142993118636313211159676553013657209611576619128482534536383413307405136761172630376687703183049350421263188986770062751794198204473965349886982028617012837922831429253471422152859466164343732846314875854564640678522905498964449747882630067111413498752002505922205126061665406945806555703437099758831053671586013251635090259972184281513134177050445706356339605054011024376370516074431493999787732941068387172369098498590636938140832095252449638354609880348846386467403598121467527581146473959398610061654225154544035117117220154527650851848792047643432674742527856544175667508966578047779374418409319706925408012555935458848524199692185517451580921293367341810147598469356116273660356807633922673369168254385177665154648648046508872758637515573247363367630185357103283552253624181173028981232474829755142916578640603052455391566832450644408104010496157187748677698891836688674491137065453798414261489804363149828854868133909804492199947079676019207987174520155885716379096202862604262753579166444852929329938042945073627104968736863433016921285084386405863857870894317065224142103723847176761047738142157718060888303554714303246147650691088852991140425604097414862848197852469437313273400098421250732122521807749493301839682797101716602391506486055657682787044315723134213369462371345678640114840254381244983981149098268470888207589029632836872934355724249919455046057385981728765917299358428121475207206892365260802796924268440050644571824428026460907350463438422712128402385444035572434945164817031817529454518835698769024773408769606208827041280038088022036349680492927878157280286711622840442196686057044011625145378513294895916560431581198901010101467045957458943568045321924085057409920105852601239669944445587800410947688787398616694540184050264497687488277665895026438102377891090496165802287014191398125270623482679837078823854704578630972920490385338981779659896763215406131771307635367121582578893913532727157852166994934576747546250912821251703315805646286199772986313014828453558389626014951268527749769685495849318185652640426283775000753207504593339032762197558371889499349506345185609596921045433193711875336084703902144784244266067490640624296059609879889996829898737724593682962286389371453874176351577833173510792003918418866424674092509733576933539477380246383411335107999548047639721102282672587746965016782097011646585292116645617692199509250571621778224791974341494688125885987508822649975090986791314594808902533116562159703689647460172734066582676814960418846872202701933300297922950635953498490966217392472620400109563362772869911274736202021626635586602595350438605486936615101214153606359694340672488667119473160160243582814056775566693938567343436583320784975869174752327862666781458298652033689002336808727344356895719801901290790933860037638901518560879883399056327873016906627335969208730143734947717023912247732912249556339921321967263528541517384037946075930358836095027368793208251920507417442946569219405988898521463105062842475658852540415593221503508551120746533422784576031092070044336194072941774406870913304945597976099072352624733252617255140292923194536750881794131388263574249952773298529640971302942297091989251469754645466408602236987889378198406308644703770963011896241950138589923350537316261800998009598353807858056677588710248185461167730743717057214320037358870033114941741700468514748138772219832084645924197946810815543489526543053889145774634364151014036403853166825069967668046179095277705051457046250415796788894620052236906600730669618230869424968616319537917993597719179583023920692120040937580605051946133296900908261476951716035539707570586458647761732691809593610081856733378494874971137389424141705231744402132101116431659020852914329157968072582622998306188614068034800403418341573541844457246163353376163386902485315468011847277746804627052451210099485354232756816065004819573672640698013482758052516944531808512005530611073319513271693066465260508182933752167732354471562422127114854131791599729893697016771070316469066355970340439432552612838293579767894196023423233765596423403201087412720871292191690589322194838126825846745275954244380072618887964353712558948697138639117166140700653080756028562021775572855659611346356806309655181642632026345017638731399732706739725130407206426209730746995672875391316565034630255409024618802986710490503306744676100846706824873390099940742311049579569130918252785399978907319426075523556288636584553871854770078686878201183776697718704442168635557928921906300476968028382032311729720506692855225451541786759882981570583382164816877833028867491537123912478550856458146630690797688278502305628656718146137794356649936713642840420079167092712373921343388944016465258264045587341968455909128276462963393683834654488251531740850241490452991274701591629129549846951788949764553415161424616993150542437065048325087295561055336817441665831488661025205948947444455304297343063512976104986591113791015932116973916793700025789018394168496642444924477102442203726098533216931964212386209647467092197749055591848173751697194666933211095279092992461787430764187394344280138051823566586504923924321562081090526023591577337882995365246659708546652359234294689663116737588115756173077038183878162775110347090522493554999661476484137020499320155987243947180228476485031307002024108830392332516622090066412230992760571954345290103669998444536306744318585364444029425087587897358076590499405658449066495825286364432875359316427803704769999523901396131899814771666159359722513231455634447981885563867070334039469402768049249932524023944182717632844155858494562039446513763264579757342303270358732482691371418863272255022160603338855517628882489922728665650891428772606130173938531159528755644943145964972731899978492105161255529935962516811516367869566565627911363377091842990417879911372745277664599540107159524599085791836187203716299051493893650921282832678013709781448474536798321999797517801729182908784653769438996383833009945510933899131133749248357484798862286504589675769759878341627128991207024537719410534655235949998248742378092241075319569483756278817517420225701728460064514078520044443377808240936500942972683691502529722757750194749701053368053692425201525464068112052638147321226231215668552045375236603374007514982329218461509271659369161464402662667966756284011011054630832869917495689203390529099494623035920031816054516468911437206504080613503654838502307820186758416609524580372183941237552723750512086841979619905878234247873070374741147837789837895292805650023858296761510451704654852592430444503900097970043395818896439609070429355961776740445091986114959509092654665913713665506257066378832201723004378029454103511905705842843095250174547196072415927389742608645396400921171368412893667430588650035498696661210340370146037499504059736401403837335833354740032261005074984470396206160460052152832252373444003301486870515660965938582099075831571887852934605742286043972345455516275125190978536551045120601582520071254824467619347697461283916070290057004584660097582368648292888941010533567048823532472726470558317363508373579695255012672182235045590168881048262280507768065611631832912373869344648988789912071791345889985305040548049006773465943351247087093596027436866056361851341510267816450267466640117791301085792751100245623556723704795060628010459861667837209304563249936085452670274024223281105012937683037849326744578025629389494896441925790465335813602479364067418960552726266490042288336784387749825300754466265338240535174662313972412392788025582043680485887972626420153310006743229777978569947517516363024723732688707717124810274470925061703446085562150272847552621758113738817345340947855456092870513195408573472420532757368441204003040288777690869588114269935021340866319844955208697513814043381007602329268185874503676002983706387321063475363620985951838548777129156819002181203026472467174017545713089619379112018821195784404419647543643090888293497573801928494535208790176264811005353354589320121519537036733070346119485201902221212631129627257317218057057590659544363249244554763733216911649645412967599926812873165742464159506729287978826608978220489154844857543616460199273180244204750286579322852447584837026455723348077693506750911054624965959695306991959330766409556378768586690268183109066246325257014316834313300927340275138847402928804074008023375190287055672161885157624714503588933594176442250968865644573306912144749547799263051375348512449105237620737093902799053035500833487705559308085338798208857970205909743001780857383465557142297275276179665672900177300896799572067448626287189827999221501370766754662487318595099247591149631271933251006116901302297131644694385373652144641844920077617975672278086232886353639729199456533010190381439476379682360607816595462768418633265198237981951729906605210621526164244761113181672285575819077891206658661977185288872362863178272761849278147147939790478389410233475504455993100486754380740458500547394583722613010337669280362413619523409144983634132706507682812181975478339702154540985496487419177420702952336344881532438698484674537451025446429901359645656504166574514971291524006685215664492861449364552518872448296209002237997807577743187744819501159550514092802611296173208508391873811938514650394028614601090747946333550520221612184889631503810723666620347764058633083070147266508641002358129019474575839520522452472480910609265477047497998825695414179026052997243824725223713327234523584079627558815836170787404475225618615416445591288818612029687559838040820038415442930373618276065254796546548718169759920547495133641179985864245665933964256277017653231309268837193702588093648928280883411168616290742761216697199245014870835935319474850251677343768017512283946311037453141902192487454446732411169081098210693051883343326690005805046938908979373970516501258301787600193563946562306791150976947319775033878366564100456547602040447571357300497128386154935737407176496958518995634953059715021456169323289317409680324472559265724289245704194299098794754292768067201203999612324301517157867993953781372796308831553985742216699609282254311043843066681505544480209976579708330936987354318562627378489998568568392729723695583575310080569417538823507646068411396580705402698124777959180713577864182856579752951059758824995912363999480710895661412301168605049396207417155222127550534579737391821479344132157212536988126107091306019170764859994806444675763590370824669582103597245923980188621822148336923208686265896820199448163258045540590394525981226029077403621107782286767305444243062258952064958776721726816324218026135982076073420117325393397312407090186520429053954655132610523941804473812391004439498617208066934070852914313258141965919325384114312090527506752674807940800127965140142321367840126694082458512577646778037923759697735512242814196913154981358568197275442813187508270630235919950382894983298108788000554050988646450871709500966180960345069181309976231600339077273890134906825853657888805189937721668510924988053432733185420534255793691633732875038001493401787242753098631095184698597775954326147748343540467247718865181150001034206899613246503361958684922803328766061875070778553742962101044514627982573135511651667098282110799849181364003578520846230934880207687839291329199461767889550997271304138044115641810775319887640763838634232671308027841609310276005520894998362015302658928630095444730426101926654009523470711928941332993135878691255770753038902458533969009157126159606962011943546806616903188153500897318935753277908370691062057130382859381323801284945876206663711354318007599544510153093855496222729038649947808899818029606314788522000138305670618451644584349348336511480899976561964735000844259054477987010889871226256749333512481399144086885416416356530592236990072325911739963770347219739893328671542779970122827745723823885347961703383309203950134419684046019257885563586832644744200750757668698960930817850376343513190094428266531156526322879259669530412116595785654693766377987512148696258563947224434609748458682068051072717616620145343908328956340817385031509693042655754899354695298288934826520627495575464465305409159828060256058324264291574033232799683940651004675034900920968656629327941956777102915697150702089434803318469350263273276398122989374672624272208853721421824534962744459970600371366323289399462656664912377495984735193716123687783251079941287997156860729345683582822353358325965460449242920881276108577051528519360739685306820438766508524990726084631235350929761679959931597545153437556160042888574457243805823282986430735669198896632577897867476354587366300336735918160539231550891258065095690441191242786880315907249215708781954006686143051525765447332984415558975933234445913885777077176131501829669496137845319846433270486707510728546118687026329835533474001664186342309216789579208980984569125834073025759418195282332048630469567382015334444824943321545462080079720609174196543456843833868053978109774563741572595283075875181360559824688112577086020326936251192727517961815598024508525933323847788665655962480967589668535473192440536872008352728030751575380757019373956896397141118746445922621223182901773995475840286814407091536712426868526501017226100081348454641543358512038436675032355686307987619124184295189090536129653454647016589215775336462382954631936684054880066553790069528707178145520905319525483003360556799562978099328861663441858743781493733741670031781933299680304731716730629735270883637607061763578472147491961145689623944931894905590664992242977854424773718965101733004837632623014453776708798383125819774400615615516269883110591644918377267189960833933661733764125186863195065814413755726714226171528996842126513476557418651559185808555172455769666159748120392841575579881724761364815696183815860719378735700100362510604762117071347257800725231415665342316244141167766379483115304484453331759222834902746780240847401381088116854610128824728535550465414820494936525183141803909854673753321412902556719846688176728443920149966872429923299801733311088256828699381744273173728020378340364485867957156880995152630674659500003436836013201444974239623112386675483668620487738254391058685751630070687086782308319453237223867097613799729244339776926569950584136001965783879765531730673062396596916711740177137879882327822299250629876028020670559252782913860582319167884413791291843254506009976243925308345457798511212547161638876514923650406772997056147961018820937619507024889075345746718216107251265373585282318212618011036932639065637162945090112488127814642807415169419818684385849539454445046869627269354334705466091389445131522200751879212361886252975006224003620101840388827097124999821376421444696228033563376649938074213680140290495980381084820429876896775032545060918209695489982898331405015138776132243378418494896708829845282849810404545743151479902781306268395059430685833321560368347196329716353434301871800245686080839162736255870423448630536900360155321352967238063963279590677699168831645939516260675083033276274561506687119262673444052480884289622308555030794438639259646097526295303024217111347507631160677899692438186752087970478490836438509648147872579545343944934830532348519436131198546626478020724325602603988923485471563324354419463041017275263487450128154654899632869446442617174906003978420561346661690005807277233354134283006161031329099991621611855403524707090064314411630480225597169431337240624004535842863590819718917663135026981017610087253240582856118840263114918422927147253514349736444114854288427528644372030947665834502761179573056133535810623070154260245113450927654267471607434688191855960076795973687312449588934456741006037420345784470062559005720247402584460734479796231886108664988342415552879566514531517241418984335152035830400593939309165677374821950769704039682678400072125937877698720934740710378865076218938537547174397434985938674425324161373265799893497044615168008920847681444595165355323179673640398279579618334573571014449184744609056881764558425660039229141073018171786190022179944231176381348408104530152825018012349378772794534455973501308074126161879658557887525371068314030950527174060379485226042741731035803754273431334389315197952338095069441339713025045732654970474858510020810723033125481908886793031789557288067527288905191965621043603069203091043711512252421607234415080638049710640565442439376310707241634685574711250897468921708441979924673903868212576102715900448084765676679164734730217419208804330334284319558886892619841769057843717728144041946610843330172211116422290692632683022100361556204541936434228551694598215371747209588437972392079703472476082149220831172012455951786074946672558809690722565080504731281120207617024167129940782857818366860529275742347823855978228772253290740104060817176048354620129553483375237862961060178603424797998419215679124961115643621128348137026843289850161950464747094430786887692056915885647282104343200868890004642803221147483067286811834301103806621877273519825623917817597893251818204456715208077639140460697772628041405280089828222620541498814872669723998915702537653766101711537945190881459563784045162389503273330236879125654730461214162112617572455229585356964772343379837815890904039361729686632263736788195745044877489661378314105976822832920604008539417587317414554241160141671029349420043615852490061887464591605196597729300240406788079043026739733585117117516729452554403413452514304210364474652460955737946564534529997898119091521991773944769813530580563501497436032338018288078104516395558056891329559469554971732868988787770403583168331416428481755017386123463317517109200842662407877466218744174297720819713098196471279465432517861134688554476349644878784742592249350821039827331326882268213934959026871089384885513865476449153859651788656392372259465978095097453971309062598128615136319758201859963560040053548220797128882684116090265548245114152821175636939722226478421919447925213440862992558194689412486771229904432806207533194982198838357060626910935976587242484524844429426614608216858711825258297176937381280416424107408011951576350992160948833408346532686141165136583205782964634631198292902540013246436872088661472811439889922304729170107694813072551367174827618740178310171337154108831639922704040510696747024090377074247161321307725882698583541597830863037523245057499408226336788106276207594977246986933562066785406890475020837835879068380113401741857213481961948780276727688081846688148661683966201472291669818280884639164426136604187049781900230779343961071291524616007213019733010229482241238199699927437641995578733233071446234386572062459696039826162944849792807536720998337260375778521860813664070919260558900822604483461839904110482431990246779638545904263092158459208650881004748890404611543514734965855704438367384467279499420908139269280272712237099334651682147663706531369796407983831011996817800353625529916487720393206410487051207383055362370007340189589647621741641345378679959583077787063788295823338392712920943196022274315695746725724140338622894073646994397438048774018837817048421743516810559947917928053468003187322295066407967851888470065180758948342960188764848332087335698206976491062518192395813276662085232714078497760849378244768733962359645691465077770123608731150714999457705162642978826085759453840017947200932760368829634569030891316990182203991411046994697018310308932845734177484495403402015717103146261833715177267376763146918326577023064864795934564447233320300379473721165792454485750559633738965574462648824863437994538909018972047115160148413332116714333930580938959563609903138250544965253470978918013333131110469637675836974282142765323150186065983944547248893934916235415930815188330677898398357882405317207342344484059173921986114458101979486658776514446460771674686006434785387512251800792206520071017741209152459594062854838260598063274088483176850079086060312783396143389461304564245421778283178196397878819589430576324854329776632352261201526855687302831833924711212383657159226178617286848668135433248024486054408528370490312521598822040587317547311953279024298072451646553317828114292794960846677214409690376488919521955848745858794507468589648837787505411068101746391259839757481112775588625614158119211744655885980962706587893615845113888274105474269778524967459870609418829860963666176480865929497375509039765230505344868994222032891394041043768226951812895263806599669357225632263426243169011096289262270789601904527052897849502826490850056741727915789550248773392405251587247491137978561454381816728116554088116439010272804491002168287941535620778446988643988799192974180995187160002689234331624209753536860071793521776674387942470675818024618883300421525412999587741822032402100767490963870579809305521001901738666270659560941957144232926453768335969534272394003948525677701765314318183969073801568151243396770038614360878093799129658219643181443773376900588926398186296468504885630268997722747304428172301891776236676833288576635902956111888765250079404949282985002536896281583631651488913218524294039698141157048107941530041946426661199578918077353767781117114961390374116893476406069986246161386890699872949311378278430380701011223575768810854472242674176304755137718700739797764810146038793419095584963425600036365500250570411912255512944015234105486526193049758682384787973602772991588743038329897964681962068006645596579107823489608845758235375596088125760968045641536770840473726487727543414247084761431574702141934588958853456100018824937477732703933228251273968770188400230477289864086029037309141512966397677629489442659504556386786039038458726271700942904301260886251686501101578723419669344435051343141073747073866491487699302112225811424162164154790643244140427971604717882076476494294486989474582352456219586869561863486078567027888627115248862564272980353223838027228933804922486187031311799282502562006400621485206829970698769141476295569789941526642283597927889215465534326174152089539334220631897977844038324634951637267845888785227365638428815941819597509468336899815667216483965626760790482549802225512712423022682422064580599182049240393776389183852732807812115803474975493814697078164822628772727403191816266505517089104114732601741785043647565853860857411907242070101266995384938882961870996875732106790920095917679562272951280176097740290288672547941796839874689625881366514856375119587650637535879602912383664241278110337768003911590178949328988906092286457187982053197679656384603067225546105178333411308744836132345983096838055673408395710351238857163066993339028004424259132546050756958483100971425134449717975018137009573929805329162937708546661964767725539376539657128330294418592189911874954728236465313054894487799765136508834581069482561404982545310908597337666480636265859531128339629933751798094004836696240150191517185943720321562419957723645735457283096366482519531602218840727417812322255309416876396076955249872064472211454899087473689078128861556626517526164806552352265821688581694112951354538029075904662477154542040136325806301859503942145440424733670730367598196291528895607172270467893611982650947028225441772414146242560807075070105280939589752848843601930373360316838030389612674375028853702777559480068633143780832901814915908203835345770186850870937084859472916030577270722270320356024770370587520538101012479231752493158854136667431454385754004337218828394378067913589454302714521912703185255080223102836177527564277758525455215298123185180645299884590902761335911776712740757982339352095757800343010638050242288091096909409571935946632401766141694939449553025124989332849304529376444102035852981189978532037718282574223185753968609328893581134230740480860616102269198043184834278694831005019880896392139082225766382817436487617348324075763723457741518542670591992698377750593300189699263433992942656313629987883859003405914602333601184030556810293938671862464068810024998953294436861398842706246249184171505992837757449249387331750647466970556054304532379759811933419650396150273940166297159938392980257544763476981439046565942748722479904707127636178562892155414260627437721582964659664468747327232051504025973118172353026485384225950006237793016423903950024275419170183464715609262999860709361578020540930086223542037281524569291356345546524072620865499498408566129781990961029972079895611219410504025407478865398892851584542495756301244350034437928497179028715030051193694630071058664035382558603234110525256748172932113616946892373325042797406277697906786979431213829576134212036706968385339525593545688609361671459104318393057493948015200271218951124503734805042743850072350241677727671198933438974967799267943515303659087674058698240467275456382262449113297374453830883525347480938774871108491504399504336207437057554036652998483434306528225914658135187615951011634995580405463081906281284864255587803301996915198416408322611511399227517492179226597384644376719683654460900731843132085224891944414766902982751915778450849420412892801096581846627406366121606546421563883486328665539237738488148442321693115639680213821225635170822869642717843226502493058061646455379494199604790460595570579445829918276628302672123398745134060062022023212759525947047330500279938331482772673475495209323182709088757865857650826235688963217493890076164962995961389880970603989744310758767030326718611119420167077976392944324540292507764616833576067753607034712616617181427152797397697744415145573756448928721447809912465222758410594025044742878409787774382719167808182693523316441827519834212545843406154465658772917385153379623604305570686177359060322106604562130186139728345260727479447370086168186258367132002267209054871382806255017688913316325580272050642296597690530395546983424600208767642069145085188310671684225338110434015736213353860220675820253146020860262112411859527956942676258107948986261491635644557826370222372572504007875770653304151765516023962284328873168070746186000334006361751722696745786296551491588059871465061056356229037246114085992439554188969710583913754624184969437347656234687285845590127739730669167913747214906399953325568567818644750366393354940445699658184421658153456711604174630593408451947854785260521749838037873458099623912794217614872905733610419729604373485034327016836624750660728082437683094768688612089398332621932575471310799861774573775042885344234855701916763776331351528104029430707108744052391211881819451447454119842982976265285566807013683692772044382807143133233669199041682984621058665291453467387535770426290527327436896756111333775777345514262553941869143454642281026541230976113490070632235090791837428448838943487243887491308201953382279548957614381152302592321854735806295630813056320473007238632533620877845744876064793976475723166392343432090576983761419309005247037120330181317492177555559254668365327319674107222119509616429422004149562509082464998302417719207227796301691605411140797487694358779467642646377060613967751780969172480988947586244246744595595782834832628396262382931589514687493466757380617600285099612250518721861944302510738267742826602879890287385085838079654719140703811528424460569425055852193479646151638389638931818320206202587676310299720544350520626616015769844813598478191101335915524605432152470741423823063831870088098307473039053600370968794050707797989574846430178372622440740343069453776182229573888957650268263486261372647663045987666201232234906018222659814491887149877498828481462070191819666751282335409467776695585084776883511870707940556444567595603243402550270223450124843458385962884530857710286246965149852256355369162466222471957267561474229053225063173938137246185492850636037585245974766739620382667977296830780048623308224344800019523669190033831105085920476914878292314203225816135563099064539471205383162817995527009767618363295629901848359871560206197122348791814593421582281843637341802116023751826631768698861897396901624980112057287360556616732877926715672431402820321715981371523854941995030573492576192580544822535676436064886911511082202578817950459020686949836722105815296129010048870145648788687380873932854148874506015831821982187240450276427459377104720624095905636768342260735164390308823542720844807709360512307831020029366775177279801626499038906136358080268968293869476882622451660619363428632674545318116661737433631836348724282047464971923333931928243650150359863978501030274316510450979513984062892890026204573258210925318503688562953897606500015326206601499019788475931112340136652365456885792077125959895040960710523634402574352008467950934789954794895152423652356749967735218917192186850171828705333060238105683502117135872862149477286822176409146138171015939691141473434807818876548681762511900765125173524479335792629775043305457254457767201547543307147593488007836715276716551821352578684995045468790725483607900862831484047550981236425955699342360974090867075356033870449870840910134315902800113982474358746332774659497067073797861796912839890300267640544091396278523548415845270101179240602592599574467901132104804062716155819798461302267718487041787048727138855578694572354628119197009770146149860737152469861116001380486573309957934996547484260772931231421930123570217218843898486496166900511779949750516919317171582701757039637098717403712433546549703272328344140839628226105788827216149515035362265562117440174950578811231314366511407466602403330048395242894808355083754209848304338640886936074161806189957983277699100897314000972474697473420738796259734961861983868494002384698121171640606181748031924089439335461911755473242013010150856150253281032353154006813247106715165676222682309555303536834056251038341289356072652183387981781780419929947522822928558792400042383991960016556848702503527272195261095890119708343836932249001764947459687961731547810551908179911246543221530529071730063632935515612176751419294017877170892983753718522664439058393568346088838895082692552414491476769060839153570432908587974546041543866662638663789522278591392482161880433408362120881778806130888500764829355247991326818427685850763094144062796172468273059607080994348129880029730675848334769768432566147940215473290577807149382804771910190460854263894555228622855821388062173039410326832694086469750363667364168410446284075448712662994335790375919199410251181664665277906566912394892882208168514100316167536845321669270852004395414001300776447329925360160306280960453567952545345307512517948827931548643631452048897409213748610556101488075361036286313388505420821975508736433031527126712113848530864088082089455407340377285796142432930335653450899293710062255129532632034908079521836486405863638594442449648550329633939500732195687638497999076648004559885118952830000861608855823556704612157716979648717675853850368870968958188476654981156904640398297853727397861652436266140641218611168520251166738040500171771829787651432703455867281470182706367757392531872303596260943402896242899658339268341766818771745477855433929471258072541795455817415115541303025114597719090665448515749948584945098557279721033495289484202033279381476595693001637816271940772828428230218235443449696973182763185134564573186339399599861771644934825458436807310780726223869967355328488258336951410864622826567090396111901647122626968755222012795316699765100838590403927210427612498003266834219416005310440832715166747043832325347977649848696236007638920339279941207505160080674852146125775464881198220394784039722707440409506948189036873033706998946203195298336106224450649161793475589571069214549146577118469108966418515829704090638291939987113511035233919713149232839033327326305301006899189207851356023265229501443454036618669364111156787619996523363880892212970587292343117145554889365666302069848666126170130294295153094994968519298501602503190127826574988782173895034169721222362202811499051545250504745969042558312542140709267802369853360555774946269880439994379345202004907758366928507711298473748190076438944361736715911893481949690041764316431394981669391228868535112803603657402636619204360734423792302949701957744602767190811021013877189506161346257613549141293505560809363897842965418033963652263000102468730744573114893766625097805073993946867525038510918554421182510460730227745999458284137362341723484672583177792891364850331144080486669242075619524452179375753674365814930607255181445540170176640730657049145439426482147357111076685516316650377345825095014722744423249925844832276969251680731220353304719466755546124223241669038694592303599674874678157557143809509899957064010199535208658057652932154611839493315166480819886734789667104389111017719682064818114835407259005840862299108618964471739761453793836425636100800650037921647178448397261289915729851459798343675239160397017881546753444856628171555373917995321132148810848965743711687369216390554411920762992876822523180884683051749801114775864442704037569460273023286964966620771838378917180984020604960871777762068515537454278848645576693631991734666818764851108899831792043573023538891993634231015733635947336807438379962324048228181532058276800883843596730008350312055628604032189569603176528056083986765975379132597473527604356859360979115354813939056596565132048256230686253011631752654875268432835952742722609624391922682283187327654480415861943966891879154242252512639201027088388010854635206287379667531265689453916122430340311072697074327486818883674507514875076256879337320724533162220898978264244668074139623149976080214734737761029161293679554871113667958821913751473486864796283227845157636047467609944516105259521779790059599090328033560215887368886462260287151597508910700116310654326793152367090872513016354157435054201750993068215314828867228141078735248511818379753942725577787356913324722421361862026501677489912338579976351213554902743593636967244448163146599545328160229370417598814967123443185017112006366566035361071619015144091960387324418794521021447146503815627598358581710256572023505215305712933526699824135986662092966043949594203045563227517342181612161312229989746551990153207899715590382814489443481387515351699440727427783291514402246424387283979204489681395919314927621974541670018697914602591029956528916423970165366544310188034870343597275804576864131106540038942466992264679201744408345626842743393670230869212783351007499198231244321293488393024775030274747044175723510226467094865490115896589451058603020001670129226289321822107475365156790821871073679682440405795938608579011784936802665946592753853451512846496866564240373596424894020199596129710021129599101032550700455215851415943953260085424736602953225531048399060456133176413517707160687094673623126666255589818181210874984845543089405811197331190523909049810743165805920033850235735200846346650711054713221571213940953089288801444962738486118527210189528037178407262397934814191389061198908115147047187582909086477289562104502097630373893755784961981417943588249627780290031986515333698413218961656805485358085076871730829954366046241545010493641268083004280665700388463141461013319868967959704226028063700860583178645284642444772194102829424161737498674922367015366838186354752860640674834254633906983525487175905444862740642496307720115445575466855266094181499206039436188371633648384222032825159858172519739804690866486680341425316706916308341198646631339169658225883695667966955028694373689437848334984987718132235847233034421716791191742491916474598494330959582885262279987749089579703044880306955161972634284858581564132836928254296365985295231400080040835959515240464245327572463721615187662018034099460050683464355407487147675458565435347091898624461251871144509670480902927194081381909354610108108037963133234222925278424178774162354071386019972649497882114285922549343393455214520272647448151004488952206960091000207592840557516237437310631414620453145715344220145366804730179030326725924949828231614058823028727674661265237342544626011030310516565490685001146226683998130188239092588338555692989499347008879590804392755662172660093950582064878229494586868006738651798370234429696763994117247572481967689287540651785213697197381518580123691725678718064442894594666633211105021333628227857755177576307212109148971458990357910174602986393267911142414723709690204079208189497030338862303165366455318515362709548382850502501763674037942650491216784740348089271003036743116177107755789805209075586779687336628834784806581717981383393579337846715702690432687559317915842344930135245718829464004496953333266858655488089073214938215871606115927833189958033344428647852581631901062534481259525489688431893003446213358814361488208161580078636375821491459557537526591851950959163020150752662509434039738164685835733866156126770669845537439398489275131568472556284768667920658238635935998593045953760910349283765610489327440805149592369128969572721471019019131932034702683287177271747281878992466888536273493238125959739774903320903178107945914597647758042480211410239808460540883991390837467211920715409835149758713659495921018439609358142346677720054372688008375820619508853146472586436026239232309531741291928333539717922349648530372329103695476667555789280509901931985590150136549163754931338846746400593455892557250037987991379085363864792373822462583439908524565282807744684034735334870977400184667628409304135398426207604922230089440341541889773397686365130258199694950079174297648374136651326045131112591585173570802010733360452883708101087693381718097747594322249230048850517779358131772597275976539368673195515967884579138196777046822379193631559073601512701601632833075187852900305818563540069824397825419103421321111775784558460508550702306683800105948445158161295819527705140047676372773263773535804945132387363029738902442279577163753168073458395292849774390656912300387688915262529192201401976642129689739029691372735908600991602617502136761792204803370871275939765834521842725847623909029959521913968453793118304951391976843447865742958272545266429175294292671159571291852553627692766977122360571359269986176928755278217053669300755327134131622274000605803585119216648674124098447916392520811797775821628552008587135354029315769735657826071708681182145376503767026995975637101180964642524109185090704838159395991383085204759948356172174686812824218543798601633264440754282365143262479485491919385138956545262318410988028147659643386723316378874591364446161669631825240821396919944807925311916101746108099544121046992463930844169434821713135214496450181997787470022812982957166216693301666841418902384529964203626047618945160101663849659013195286123406496290374810946806015486762686982849442480774586845517759012268983184847409365557018974162596721628276588155314042962414297786509777255037145111998019276648591705430876645359578666565900554293157783957716240108379121451076221719729156731344126801667367816069220553783070116640390947371181019978162310470857022537147035689028902380136219163371175027855038770700949919970581138929531182366809597705271133635519211769862237032701608177066398006688606097742844387835834243490144547330087408653636126056078509156604403624940747646278981282023485505692886112258906987698337918829244981644779216177430504596370126210094268850511369626679051486728993588591736039568350852449891160655745127200712683634809324301233028252257163398054423031961792661585220359815400620699729350193822681338349784164995992696686813364876351270877464487079244420333835167701888639148204245723660372640270792826522007541621493207000388303531999289284827710048084274833206275677703761139892861723745604772282380776249320968601731485274496037395753709248427128698394148381364480545537643668499023617643558208872946856567113948558504060606190119544760071260886062826447020540518084884337882392233234825770890456622202188511565203825379340072318438813289538535643279376718042827719817618518667549636189276112002321695343592488144319625253628422667253861567669773839926093469528898566359539151131012998388274709528123457333768918178973910123974597309477214650298356546932708990443870247214235504401741419115016085286082778822660468389549571546193823072876230724578364783398962011218951936940056985252468675806134094758658077563552970433497388565555772142619377524027253432848364709468584543639469138353573641830846005893350176439395181597702934779881264507865357913021883529386451706936492219026631018318997964648529622846836444442970817010154490079656096799652556561264470982271040614076837859659526558771161224839059460439645356881220605604862419772823637187207130402441661473484776742669095593150834112025598664163038226123531982215738717441253510132743956826315143792799921117836015986558235132193083338240798935669619544948879835402595741754328118975398713319518168236042400598010890657907669461062697134223361324195642210299133712566793659117492957690623972626371625837713443115565787630415634004700157119936992563504291834442108515927675769486457579954582777548731177103528545935266493095288335954480967402693850587161483203409061575242389511466795597895450073991352665073984387772732536083957695093835929387565937783167924975016134818287367204046548655365874471497567523350817805588995421622870812736503951585921297452351018043679539526821375605134987072288236369486610727657725369147319742490820824073801682826935702018080792610236135592435325989386524267360216997365297685857294069011583919513249549994725331608200338561690661701885106784949590001822293723389152569875880863767520251723137336034163032962025826535665920917424151269211847969224876400537920986010387256923023779680978126684265148260105965121906416591569032141246998311445104068931382297794102905972598591840876273137896978779412621632539741572395199744029698324378770954249247951393507230230010467888051651537251940221964474378653619512149932732415575667290955251477266169794752211037668357156320138270434581436597587968024429875289598383968934307456280984179690119352865289468952934803964227857506467814704433191695578550854796685378809436207289070248505496270226857093627337030899943603852419462570918143121487539944239677588826432991355211827296676384478144332775585461278368803057531548889493683484375986755009948051205061060142833033716997823892227625541030066124894789610569783750731195121065899845163084079623467829920102339001670618305298883889624208184441285877948571594561730507391696503823338562847427524845892089178788799258916809969912203261833547030195536308301994331313547517904759080417060950849855724480592793187147738845184883225930739389311816170573072787794008027278926939052558821441675765511391825197223762962052384902946116165002392326215290286224784884879775766907081918214910468491485616536162742664685145734769916231593347826526150666275044026087969041473797537265333646019533257576903419742566038302301348442474249938783803879909721888170479494750985030979217849774435835154460163810983607335302572420195851772527746633259701617664139211330894103947650442362626240445992181724837482606097559562649906637205656246120084653346834211728278903323680428650527132459966244478637360360913413566232005852663109939705507635667196571561756481469542099459680460505064440005629903846599688919027437111927050973451771164487926875724617520376500145766027550188370189552674540021855255956909425941299978812286805437315041156999764567824551598023523552812412305898733581460056991026606165693953794727690569082819389712297423767957475939732652681788485348874167149793006000807241017991202060737729709501667892145269449016394055063127745741562537691042471116316019094935339642531974273386855895260585278104105984666034953502732390810745697009091974537200554956098024713490031070002986292569041537666270414805508338546609596572665453903455279328429975435266975938310137871922654283993126105700574385107203014226214725208269888412074207834419508269484073488272199576894474664110215577309647485059456164625416731032134531629483090812458089599536658051721238454554361795138689292220494290401328954537473602521932270102469695849859631298740061141926412486925290178852234436202187332227732340660090314158240176253597895144738712800390507733188552331822460612017406229938866691797899120971926817905731888282270366559027070567373312286305919367015410983858407362580671568171212075969535235843980083033895348270353489524199598651599075463531329274022439168571977242698750910642896243308102433801258892031054358308128266061230481436045059516954798281764935374368285033623377085270340354399635710158714123161029023396490897054093601558472326362518280675628113497464834933054810950093721486594478184469206408881145428442039517412600348833199640035463129151772063486840023904334532920288587254281758074730362196249104055531855085464940588942780214066627539902497523481145312843493356575385416802722669587210363943204406339126844229637091848254139575725435069511050842027199466955157853805704844126816769499484374124391064087802949013881413033724369571507679378480005820147792984214727956676477069896317183104056844113671481101746590067114232553644457287094552533269386448403369639834679708447183565765189404677746420975222885339672167732178882176626856790951860498324159960169326528395390975278593451395869474418587034714675757358711525125272852203703903708560380589776364288371238049500295631267203713607663626274173601810541962320759249631893434684445485967871113696930681242193380608810701269652425297477960554563354097770093437551996197553422244395200202440708113642833001725308220110823582901337241097924670852874212552769475465940126168483390529628831253404484544237652146613433433002717025596076869325509464002834964320957086167558469128196646129636502116899247967013495056116238600857515939359476400183307158793726019333179231821307985235407102112750774326789126074782620260836796537476842860446785851167058845211017205875983600606082560101347582840809515525416969891504067161858278524379994339568637303902207127040905683124376007769081781315180156593970116645870768381304694433234184196473894920791187898618862118056160091885320353676788843664353730323735817859723363284641887152869724715724734600207262464027171086474969985459556894483332346479270875638911862569217014623481480332328419822166745858365725068963322859241858451633163129248213163962663063574873602234208362813994053594421559061419892921258573287561061931440535717192029337314147735733195937805871197076395123978362336815529427593978122123499428912090426335369639003366125316409473334901866358131842830594363734078984198113181906489784614243998356866390773558589327226001731383865870868263320823533507521403881744211509019793829464846231526813311817339785470033162653856861011401730706763935676861153942402719256374711108530619375672979517986746227460318194379666066678183900098961414029550442664295240589106624050203985658593858041749198767214617294990383679938744977290016246503224342597247707033640827891505387930201352880765693436072328052669519403417191016240250372453931317446178601864570693419484273449139756365796119882123866773070485788281496125872411920479893949539625675209791131617834430013883964868948888919021868163809708554461952055391425424792416348412322212274579600735318962196451566429201542148042520437030170089618649199873178184772624867923231341349489882495814659613045734194447965154273921423967945744019575416778342191485332179595755275185923111630048362987482433185716513664662922825790580704956375967792614047891227841526604606281703547574685641276463559288559558658644741042364982005239948692125231305572663053075229545886182172311770965048363619610072020583610414980926073342491849647093778635832125093377015687557292895235484251086663294868826969126878989018818960469467900580062151982105850789846715119069734876211474987284325902590725674762194435724422505654393607785689309833802548217823423636876806421223986078944364835221442311933974394470298032308496082336288772248339753521570097850645743548619626262512912996070950566667794433780684734515129198677923635057517462596571119846232039868284808797013075853867842481505648052091949036185818258077539996045581548983968287092083586283301318062596069674851736087334406338171813484693975489016926786146451063107363443091347784910409119124381030917432722070986422480288948072678666374779833418838415453273158490225093403511177161643238937688898851624981645721525121736416228361741556124851402838750690841190084261193074859635627727798386993779771211912178224265452881478901599266856333691398876579697118882749493306349179360244255527752879919822242008059918498980363462480593142960734366940244932709966617974756593589577671814221828484536427741032283296893073910783020710645625227688795916600035947423725427817243347147952976818783643695566849389845963932211809814069990488707520567048560843767409462909772994805173494458942734866007264062810060672140227857044586753512728077236406783354321080464855547500102452243976720727201610275074471719467062546393089121977595498283272305367059604031453579320993703190794796974122657127805530881808874611014631651593688854891387338055407483790580635180502734219496402695129654099505737113002920437634787158218480873185508741701282688058109132384522126021951539720731288200751836609151025822350553240516025732424276940884697896583247052566392201682123733528552449776709282912100820923904054149049741968714040517210795988824498277733637767918767981286933422285817336071507372134716595987917584008303465678003079145636995776883309183415993556233701222376222558683295222227185863524918614231275073215887935112909286070244717466057851328315335896419997156531981436948746494546597361236106724798535701603718103607001532036288888099211823007643485757006976100837091101326813104920303475256461502646445188540036194133682228526490683859083299258555256095563245964780844306578376107043213581981960740516811688525988455256630463422852960538580822837661590603801503223713971374850278636250498296356056256426884466252899088449410470545147434546631797392804877843185086437749718661878362186314412968810100031022547583145249972637939884573646523201195448268946805903485744141653971060607626466589259331455797682813869298163587589382207984745910594789430007452919507169800018757495334568392262145764348407488737062010229334051482383078554669083730207509645091369239274687625853279301014867108640901008234203913758396913549571326680052498151686492981073570500747152251199617563804755518410678797106875787301409940864609738500334397422383577214863436479888158604154277857537088428060215271913919852229641947129894421008707715397109134129606597094553209169192452439553483648246783150658371561203919576725594226423122741067174500023237509697050223687773012549539257868527372253402382620623566246609677110245384316685076160203195495008897845792762005158098706880870458350858001493366579775570914699063692358646206459092339163987970583893030177440132539401497005482663872933527538689600113613549481630457755365134405443487336275401184356316594676637947313576775418859553435063056993801955950029123370754800043118633786175435543075565377723495214589436069263632757612819887544040138984324249018949978731456039849994055154935369086309004825300172350704524910435807050098313976909225767845802536961028767422064489746199208202988499243541609137789846654846152993901571944084800512579714394755611980162143855831434617420286843889573898992284072528483006606638254954305245772571435651769868712368406193976236876130225757602892837791883659438933887794083984664757040981820541100186661628141806421068737335608020827280403064523675311209228032433769761508407187878094503142940024504886804769297500758987775392388289214833593259429567024742462897920775753673351220226158787696181703099479735602878413797156376423817552657917757269829440301318403919005053210339346608881485491052053343381112596444996910642335381578043510263840698450565738105768613679363187585346045051340351334741679721291499103472029782251428420153093233521813771649694276175963321776070702760444300109877514968667272466187101847164742539360059031090164928331049095467657099345853344809379179512156649586234777895182310627719741398464385361748415691880520902720126043987790772054254803960653186126711713094806012540421991504110475178693888585552886504784651974585871443473599687814928000637460456048194027556660010289070518587381044675262037697196109051068533777178501140208157487728918677518298153830554947886888084834297748319545664584544241147773061834155292176616687792785805327183804555230400852077775655857206585957938960570214968686141859115196235319095685859990110307957409576674552654471105926430989955612077327362754558573960541436857130086080616885036532196996064697293150227909528166125082983807380039244687226612208743919909705228405562852869472908573083707491246987653291636862675685135256640512755877146921370215908142589488217146146091928272115519447677006077101683959777992529001308909057659017591365147209328042660513792331093764971070023530712564616362675061255083084717232024065449481127200345833018214898552714264880285309202456613892680506567774501819798240953114578854721163898190181978899096194633083210560753473464815389866746371820149969756889329827012394262476455071708385768994452150620611116654478776964738634189299137181562342049648337048130844981581333451684195583877590411952218573487054126976533251489233917509355998917075079162518187699078383413755842936620105252161318807510116136954529741363389295094458284234784058421060273722854264153575896219981718562335806728194664820812140859422979755143070467643809100598482407091631647889782689737382979958941612038341269464718005053258251391843707639451024282537544562595227329786392188131910085868135276022272617358165438015008012716492510171249128848186065182002047301395285872184737009859954487153442077171355097016673280937575245334423062681318190105563508201272253753548265435990234134099468674332510020008457361668126889716012826767747217722295066812343943524388911034458213076744039978174743468246592001603555651625824878069516211842878160100576844416591789116669747395683097911290977921444783486719812768790765092891655363080376564265104333004805149688738020311365927215793510613724414705164582940366082000182801334356718476913958800722195824185871822784865882364804211348058896392001898694611924176645061446504050101471619575311568546675369708642133745889059415406368532241691290115249710487495801769320454759365300895119651616784109011940856321319513815682567928398818981645446262056839540268363193483465693162617124764155428702632485712369761775342888505570219360521769831370985385931237358304880204380817955216395579208586616951689264234597047434893813216078450656396700727947115070616138836467434910594460438500208745081563135511775399396076463979650575433930264065929493517635981637725109635777016950484170184219862216531126252069761325102900271097054458191614505855293390011103162924691206265749799453048066186402836382241963024695377454371033727432962347124287684553901111598605722012558759684050811345018694573799830755216539856399247835231752373985753701940215491382876173862761417943184615890892891370125731780132523321721102014190442306016061843474868457621501008979723473170771415524594301431259516431799375416388798784060655358287295032575898036518866207870556767088025179457451793798356520401605806876453508012892297720016786577871541045597270772363696338654560669216396287148667159571013264147931170149747825004793223784699410295475832772539684256072246599452069480876473587650694073820294782504593594840706269801887364148411306702480681125686646533136527956057796454955738452974214440252692497462093416637018996001788793581511997593713135740838141380683229446990179389216430582416147094372418296410360878314063506138813089004116169283144106347666890543602146267892742353018833407704288648261247979561085781584241845767172873569030124651844205124586420503795768897595684955433386338797550777138640657168826573428525480735034396151687796613040579846208851620367640985511179639247704406725037316180237827812153862465357485327751962649111766976022680655969412608718414017759819407099150792124275592807271217260642121394419233765312236881020635649263179634301709036575640066017494650119749268004422823980626485790540672632525101412585098515153334637531964371115820495153567753292126738010919658609875421319437291896739389477279193883600314804076611122684619719547280344074351321987856069866369771139138168332407835518913926925138179132165950520798619948839852260825966112940954088210159058007548302898426875965894238448275272539549271559203977321329960207312150396472995836064068084101236703734149821759535452380713548521307892000655590141454801059684214801579307291716334912784328498962984545298461799453219344542941252439034969880691575289954241484077197877652712543548797313252191434823443677619938694137823343256133838270096752120995573939706224677980083432487888303767130961305601384391728369379498082540320771022846393641075405383666931630073429406720110334552819707637617257046959997411574716590507148529048377539529153077911896011110245102031762638628956379563437685754815339223295037453745605855994466326278098657224527944465886130371518445655803631590379319321400986316952600148556348008922787528129806096248253326614786057331464509783050568824835395147705905508400521212949549682189635404223782935381968686479198129450527638774118203391652925227912964733695596029733400332482478887849047089258514095198675171865581514378306531026407289179894049148395712401689188055587831998325769100618585560710851765527226713643349882993935122131978577322815616313593071595388973023607695224043747286691017489572107995989865145448834184038057403156238054183640485922467539526028459041377163853415618503194744884129681472514028592164617443362718605436663945543590621664206445284135696877253247640604683960176744630736620745141065504850179773103376426128908743566109394663918397425368404134096550472961761402784173589549735454878806060698161098749376708161211294121648092648422938906592145124679228966978997178798527570965583024049458966984701512062516873721070115989906758728534254578451946433526340048137157188541662225360078274060500790065263975583526125307929387768688447324341833501759072906186108294495548298316658266127999988344776237182624511143210162504090843823528165507441487485388287608557570127542220066866415858415302210712781067742938056863293336129029735239532305553115035528851406665678965093810697182274274332683752391574846590786945448314047705868726445563928062477679705425829847031302807066950149357549225408356137756507487174043535282101244737713371758916411102936847971762100819204653545896939089999270250916317191998359366550732674381001942010314437329591294564802280102082560379699406444437791318765429697259476251332732805223359661107906663449287358498451269809545635300395024276931570612963761497081919379849285364562218166418408417546634378954468997231350025277281664728101114282098330333883632702267200426453358486312200506888632029804276724600011589505973867114847444027758096975280961491346246370699432097611112895911383794992682057084630218342140605363580032096744870082538246173880356038012284713117544146596544194104498569223303532518862798295144016653552862203279604097787529769369067442116649182007975036192439857633310062515477871568657450169062247220575805768480822094475488021644856494375157170970783405031506458120058413472621175795715042421939387107101975126395602687432096422294306008723073183525046706672057004559998586520201451109537965323862934707441285957566661465326331868661969843597152780469952579476790065417114879535971228552862668571992413032331215143195109779517267024450208894387857704900575666353766652202152480375821402215712566552163410538027353216598361915060664451737870756210381484634944681147975838242084789282495352221085907661697235349868853237824852773781162142863883336379321378508032565912281373675901608087312785471876483288901086914093470620662290420220976875251109421073978479366128735052578227049770978242047970042298654431908581167998964515530189566015902257555439671555192848251301096723544536162641695865420353620574261522343809205708107195779333672672322442874951600965082529142864987118225308015984344259256036434117082693417557298604558394979692323119410825115229649196366624807509710883694909021846809561170028897868094719305213561459756853784789335635218830257931192220662235675291779636611193064896936439339489594279111586990263320875532968187956767574801323735011751321011163601978472258497611455633608772391200130538286742547236441931534914574479231987607483740484587416369402193134879952869803703295336944615271238000208041826055625451304229662150153375853476970626839382786936018706811186523825740039754076062444044000751732070300720861529652626157637110173351180033251504718504742987990031107302630313305894303980207657901333006754090926593307578534810026427091889988058060356977492530506335629771118258232785310522912439008169777216312626098071991768910872327834540759173238251915551274696399421838295026011128398998150480711544577975971451228339833132483210862254369066351571359982373617368544873567630339827950325481469576060469679497501842466537481015172589030902046363972821353178170168171000221931150193765217805513844928498590376475392081628054233885644386889641542307030202235432924072010910016197653261733053656606321716329400353942662903857083243699813984135943463413029868787782880053260762510654554660591662581241200630786460929079425277048245033448028428576600844272542878386398494282292399066178091746883393064468623677487909671570626281312653588280944915268683074629745530066697757768023312037034369882570592533083273914762957148342798932202349950161678063673295902567079820219786607279992676253518058310028549637864755838820623200820048783603148721454360193691406001027872388605808719510770168360828786536409306029287128667718690894401515186863215410772907571123628070160437885817926178465256144340256813086753213740995673188346872053688008352132781272586549943191687813633229714313588284996950389689783729602493059831410242099059162553493697169272657151184569641218602620521452137153166453666015496528193826636556806553401391550820578619435941142011513047309474834980242329838135929054518685626009131752488036849432531849566536313174529555308079797216827240648182156558867906781841436042520498193859269050119775042504643496437331504699471713736086749525573038799414064995096018235600926432050336337865511782760393640334983869561324168824474485754429710579496877606052942038933848037754778347212164124853373065905779407565217649433032182416091551155170047670144281840448514358530665683245546091970787864041438111598434112282728499441442912818439334315594463631350997417383699459998493888588835167745575998970146903104474493138225257700827817580566650034069810990877044655651308196627547578088670282325821396880221564395366654055842625638219630784804543591261819151894951116512448634421582408074087847175940678432064851572947853141118731576898266360560310621555557234796759163080638887345910468220165859360272606845270075274834623736063829569992314071958069913468886816446555989445415883748305073740913010546904049159229554904035455692876011660937910564111591829156342567262342883656082799178882272778080628202875920884778441420908694207052106437891855780633901169443819991738100570732347008946171276945294156069246325344072214470919414524677940906413688232886920257919800450694669804176460927262018325898415566101529123580071753610565710297269775918655376594378416531146393936300996502122803194642576163129866737051570641285882641413275027468237529406597177769630521940001760639259943330818127028185325237951924711644848225443139269105332246805394350736784852174702647781802725712514300497842373224076375229187424682850932731410007279519336251454881532542437196038149244005634902452654582028997896408301197404204213872472621919783834930692631987152743093327690723399533011416485977124560651678811770998493722886767337357734261391126338246353305954587605221405153249631993662168874179221939409130312028270153319623858903695728219294070618719719339629924879358430863250337261350230650372697307501845297208349927395272322606286866143976601947115606325986003199250393393244045512875511071277595763939589954505433540166280549590050518793571709599211969256448583441778290298367255784756081213966370963389692733725198629384772723951199102577893996642220562516121399911897086244447945725538761767771474410317210037495792176498457354012681741326974530413223961362727805178067838517031776365877528960246366569047044462334562008463748857866487107030946489383427740336406755512922091088210947330470612235007464254035777318137351895369095371754430805547970327981972825828346544372142398359735409723356578951865805053512875603805904136809482187981803627121659431210011769339641024269439973676460884284549432642613787279452582194647660873824557798554191153245077101215598907892563738512126989009772410633301105489284538650226427746711145522081852819878124533356379606483667909994118812028511443100113550606177666470916365298027920380601400933795221293132529932925952497296930158140986510114421450086154438149012274827568561507238426890325917234942473537768813275700059262200818204704900316771532297496263257504798345556192477658350879510958987430863398936942771091426830097859040453543229529949526748017662325136812520176904360103396133795325369871161620248943588132625545528363437700499552949255241075614260481039227900353386692050124021970828235762547100096565630985955390553092087500408590034869367763900905954707749791064693978419514803556035994997323789854834969160738282629774593388811982178719807156593247210315567904192016122765010187766339231026095428065686952269408668647196310697259665622804394047156933645171147019294963047761367207141466747625703947369874521789939509980012422823410816102243963184994072753858879410656667301172728157672380868581380805158555270044961761396189880852665845397235163186962479366660989608281277710580304778545955153266641707452652449474359216387146367681172873306111833935830497802232888137664519852767109342011374145347671760635648387479659663278142291414384922927698073640129653768770905017987570941286051206969173992938343908189709795965941103239402585563667481489296266769030818944523105535865804378766991003290872199309309221982317437762443146067095272084859371753665167412980471280695723010392506493811102392827871775841430027467729236878380866032173924845352446575211288909443093137504791164759516724736518549257617863583053940257091083771657896938864389607652503821271888064985628509267251139514490798563271889432094804942078090039827943570181474079028652298715200025155167485976228648309167681041853512702761029020731374603437773699529854687527817222478009380174628413407953251573300540889364371574410795514654659701681931242934893919898685919300137446257041740898850618112153929110409436421362031663829492855992393838544895444250744886949992337701794871330621942110966576841822221256553507789680243734116114624386656349910960987750593490532974542791755923664414381343769361188759428106560643981848659073433544206721870647492201451447982030774322067717971166069876628531856219979703313654922913877657509197424266104975032800914130765971629248912459722425399784877420184808072531483993574772665306727035047608695964128686452723737051301310068395479238614277020970684837533233184917262852457984924574165896245024397270253392254648956794760930936880019119765007920579203060006176959936496556186743652042056485880057792732683725768242683409124960377848410513464129106345260270347445797121691195796473718964373608980417735546637480332568239029568409432669781439854702751852867306888101541346505344913210840003334363122217480415699351591001002838956205732779554013238399921397616169395242063081102334908305157113064540579947706453659415851886190614426086831533455716120411678992344495263187042928561093571943257090107146247411724958787848415032847869949433814150529087069934210704382973276288452406659241753309089822006769690768400311015883240792643496607670789919247908521753500502181067917632309542493076583956679447579856885942701111695010748698046570682970087218703373897717734949636370252469822187867949847885893967830251145180297116448013806811625836321354274177481063377071477837963402323582315447889322663499093794958839382195313323709269135626646980147890135181021535005154628794404436221442107576360452705006411665058980671530712272737698686407548778825624520368420786899866113356919267475450512230343650707980820020414811749174142545420055725009004769177674315472122312808425245059704871495196933030880928927131778560655095377857777707276329029947039671167363322642369142566804155809986077179493510103640561201927281885611560731924247105853827313900379361128609980306583567180423109813024709442348323631856541635173184652697193851346017305349593385357072178837429561308200037009656994399934481681779466081048992001510323793629682580158864930594015254592207735247369326818961267191460661143617806121631504618431715473831957856375805970238350540024786822173182107301326013819908343116458222474204359800129933892456851964855793778044668466254134439335051369057258855095790265469876919706703947376955506951561299394021348454165191454063791298909219499097798745857369645457832950618473570119091187758336887266094131469475763264427931545390017486451041116006752946307216375201351206006092186687756588883697713315998509656515937163108868733535923147068590663751761936068992027398477196369934231691451874632160602028752537286541990669250127664006671321560059602635349900441451539101862024543894588472982038598671529503176054222812290974413643934134838888379040300280576780725157826715505823745294983438732687899141863127487222687141436163320254525479194181137452397729517728937651606195988146581121073681518717170162200976197984246284552018583316797252028263578162550910131226004431888585611811221284628780875853732254948885665560487723731322080446301010511104858034752828029517566617769459704698938673034894205769317087601076527285540357250378637063269362558864340356768461250690592766625403062512755391802865188242571104552624187067722235700316905342862045966740036902519101906348306927423629080734327825354221878569757958079462956160203516755620539941596359988095910820443481107450732545309397828741992963889724958580360947329830390325364686923023469585973708908437292784104317225242023080071955807234388244706719068258140377688934036583868884884861741527181321669430294395296947577601288483896621806580756754881268519583072759212828655396708781364996158587480831415269577014899194518454539854147704902531484118252114712033058327358428577149984639595968600075722785872840958217107833247742053532282546991981915925784876133885148154404347175466037039709548880301501981693125571095440876694536071657057177973673206682692386640288340910298290961476949744720180887808316213102342036859956200495644906306955665039907201265730428215411430282136967539963010796969789778583508461496235234025964914139840223685971780415340775604888891490612830158886852403903039588812587128670307141725453266514320888289149054711513507021198918734160971206648589844052509744011885141778136649451073554998117126674678055585101036964250109938855540846234178175654924120443868372189576000899706253678206182610969597116998097576504413668962530528727738231386565477693764158778309947909684331757273390421979024506837736893165304551523327124156980204670417303742580963832480440907649342247109969000243734014369261019514474908086577354834063789194442459441486969694645932713962012749602166324061360041289213102490811190194565548849551459337415200121218762347749748636782537453520780751169226404338753660716876680775936630460524963098353167420813913612059668609316963385898041138363076801285767979661823638227537404312090253010440517293099560003386681032088820648829714938814553014714928909944942754208369079117632298036119276343325425536538554802796111348114027668376931462806776218556919541961215706302470863942264196264886808289226114051512928292531056163543337482280283199885314000085891726690157417672782961646713248253956639284279391378494352465331666091879278090756394099648474862706947639328297616364782490117727336169613379322729931095379608538015412421183869632147490242559655281162386607341743248967145536543139863078371085356839873710592737506208483028960827213411692492418537477688038435865427355736450848269146025873100665245328013364837994883487982067668225442900163244394012008270491174437811832505150472467512316898122977618988492019532297488641606897264713553821896149036551588353046459533255710433395635773537997017465057567261250327982160659315241059091054408319886221790144556546487644546716204339173213809924207805682585288158144916198309252115890636965209316890547938103694982446819949659592578734996739124857964937156498831939868204367559558040212606435921919700600606547121681485954963938405482402899392351379188386330041648364445146595731878913009845935323257290425610180381449476711656306453130176472541153258956245273972690393958781558408879306465788740152563791078262290220667784503413307408560141322244461434063554985445055191415705306395096635432159319141024553051247442446903348470846229705339302999956687378595964188365208673552155843285576664328826173901511956647599236219053616148836581364767854784895087799252493836433153713087237128188883098884525538295092664720201553655829907294985998450929841369414095462617229038934117572488574717553529273974335377846307921811491765538822289962276539745385357323276172098860051883013753617589965758400087108956768478198517851272252987403684089398933389699071579470887321030042412737621928172172279976543338294201701289500738350807451968317000316202299056355920110529502642401998894960514203932483217778238294715503700112657789770294397275426130956398360411453141538924826167987309478159448655753885326384026925008149678939083030076569186575111228410049373990671749175363000154164783039256167565489001176173517492130358950824249902025128869017469667616868521930541382445833120579174001120583771337080547169679085613665398209502660855616902458915137821353487904512293405273823138726570654253706969420628422103680304199555424303167921516848135045051785196651162586102003626243142686378063298111529163602217317893018719489336531825714655893398637464061083744354929744982985991859360648581718769226045936759547928947350578229571299737755482564395882374928098408739495936244316796383326993995552260882006946131097260329330903031486011104009523170269664851258646106344725824470879818144962989312357444234901927782183368742751105692603787893565268649139435808481730584644558194215271018875232513547603620362531184985099527906619757046480165959711148530890049650335488182783321468556892664525113200781422450415727668742534146371869600378578133886369558100771666031176201062174753833182041644682072309055282552189414511546435442580666302835171489831596404708347746997199890191180721549031775149203619615864194420921477964758393188325015568431529223874725154552954655663342508749671084854908693029687182701064964310985883890073675555652946649882434187557040532129566628732930388656086097497538332747195574856938635456693114638077991682241142441433367779642841338218562760720777056068544580323836005927920024830744088180819271678688023967685084251268415904553747589408599908824968286073813147868052711962120223226567695358038945351682170697196736507783737480113348955982654476075152310941386870778632695603277078123247610625696465953500835978608776808714415969697857057080059868798130185178593454500009447528453175910739955902790150133133283307508727654541678422833830152760258051780776189909455300832155444204134421409774575008052753780010590771068590610728737946143361482144750915612096007661033375375405978647660405770295011694306152342827153233564107874785065192021826443842600887745813720898286005618542215161459973886848214236183995786746784739823268323642624848355385568864556370903187582370114321719678561041773419201959761668480770065800567689832205519136902074297600488082683880513650597739349414174418726634167831291160317920888427979388401504794086901216163370467878574323134786882258690061221690953744070355227161672968326300886794767958500392535824913485103566550158154220342694882875907484021037004719121910677134561142395416882185185171167301604585664406031502658243094389253485772591637266732138052692825720749849396352806612025789486880204475862787615250342970008749917884064053107671061135493637807748967031559815132112604612014183387815542259017676260384088596408055239520764733759555918675016445741242658137078568730746558566634453991645428432862003572305823494819682639753409594549124536639900743494414655253768916604216877502412994274679803611785493215818359087564995420654531564191988326113587310030025387954315863936104273869299604297399652361430261151063108011891711973954699269961447801665029420634883127144854823008056286049661397253167053841972139280094634435975092695825742347507722091515496695638248257117926888854186307989647002096650336746699603838858459221637550504597141423890103304684728882977006811944027818662083009347236754097206666967410282797522172803465121105522372370449063317808542277210901628432062573945605073405436802297148385476076661096329899107196218507886579620476831452623874735775840462012597828144336926065593136487251405240772766014828253725246478631389218351562150869316475590402093333599618067540706647308649737213398515748736189002895044573717197530565699389580315397985345939183696434936034506664195605824472967365614054679617346985090487797712133193272389880627225769662501296815354801140424576980512822530702233790434295376835676938467176216711742597820491536163425233370513216294747186397550442612916849052029123096931077254173921844080897830982440498879760675473904589710032119863937956932359277667539121570741036124110813056263067423408665797264937424989274928289124656134145013916835320351187569969589296180119108143149145217444774817847457418116897035287086671381886903800453529311383255761727951194085802719217336794895611672407319945363878423832701929585999147293961416792981916640832014768815624273164951890942581355149234161744986089183789438979564580563553307363445723119251438495069103850745107932896040529727853608499024433199510963784846175891630249525681387926849541685669570625224513139514727343575946809647145026301358585148494804124092104203529186539111021843950834579911305539648241015585245583760074028735051776887496765677476979482272532018796036024023577745804843132074926904364686854160020406439057901868997013969941370788763287459505671936114937807243112992862688030653965799033097663158027671360817382231440051136171805383211378111795320782481858170173863637802286541774897133767894859757824382155489405413290107083243260738955676915532064710487756163882733542102481693511790103728542184681367931248471717375119134908087472367341348435497180031588976782381711145638972540411139305969372139697181419019214241138595293089852694579258800535227500203917920596107758159133799108517902474430530112751422224995227704720460308392862804406134991972365475143032593327117852577332974035938047210492798175622530858163862603611458452548227830986516520635455556597315834620220783332837618008336002409010130642773108282317137225454599256529803957222865494315244528427012369150244822192453877204659369173737126162877953979111804672854348638478580563859230932973887793017790918354323443211187311268679501100982321933945789507960622728857601264504681072518880534158236300553357282571249792665525517134108130306095477173464456919965374096211804506965953626293345159853703052916531930801637925176129420963141205065744364526059826263979178751298241883327200475971776628687786693518601081950380670964262807570200216447198964507449047267620697595595358472330676048521626822525700733112610384842258969379551787475186891048329690228367445537657169266322620598955688134350609491934232633125234594625215380891130150073106104824833648770940415319256683794287905568917408895390415441257864714500888398263428571709624482022259859425122268438812082799693951489301486862352454102780210854833879298564184542256855253990110822021875220431708255933525099774865351080640411694645464630095545006669684453886784829932369689237695564687819670926900830490129628715966467607265318954718748194927556317413689814818677164100733698890017861635317553661594735473773667460279564995339639139030565996507108354301730418557556480923140063990931974147024841474689881803966424060541007145054569117423093832547069985860349109474340833927448010463795277808705622755338740896932786651262349135950249043425736313842030068494346556676319804848649040826973878826802322063723487767688034181199855048380725688525638394575128377978723559213998981301149613319808049018228045300399873583364509184227098212929259923869994606407526681338961357024404789090541391568421053917819169902209167963497581032402077021014149275488600208075434151264489353454347798223826664452629737591816436504291045177752322634960905279702317532675915201837995156485944466349427186188965409012281058314987377113053752207131275070995513156029761728853882151436329823351357663830852009330951480914393628603577528101396168722505838635881148726551109087238012527576613275622434378568712767194454187220896189163135685518146449798794696626682015564238275155617520198727763324102629350913312823655304393236978247379261575539505807833742100557988528096524594531618685007116397816481303327818544084148008615621858286728914101667360724601269487007142980767293699903719799444654920158845683205031366204616450252876958026670892294213311220577653633736044129116358621503369481957056501241040599181603868919009672856216514219040077573681915709431832932807143283129602414178781206277394209273974298986875510654099494033294947489788099622333572065581280678276926934802154245776234690923362527819490847161413063739692357658848415696609725860569492315603213982424916298920653477236385418686994038439617871707236965001229472499883244395577401408185191625314055658729454993276616000871103859325872824690168444228109415849619883106092056995979740015022907198102003267305112074482509755744482142850573095906074020880581268208256666667770645779080307676975220666874160551931489361346407336801370612911348693017567754799391916727703391136513102002613820235269704253865438716784271559015396827940583625162375778022928352391780820161222751296602592596987397066864627632094234533997605442548921721399182759199327144992478344965452622114176336001914049950756564290219905544040701668873785413822192291678468970766353716733280416354542130930948365001354472837404750457969936641455202905416858338985282046182680187353188415693040771237133320588253383550406900609668147389288031563836806398550032863919931139532667262174922769845297034658602336727227018619534527854447494484600668167381246649841231306194982370879558524971090820426102688608475200217841194945576164629716944170623735078774618330502112073114323218735633012362873484255106208120973877728638451085826536893969475525550163279351254532336188289774950353839604141792136937638933405316995929885257136884038911736598767523434196521092252617551639296724882968381661773555290720828371980000151813443486226915432657183996507215874015013861035381772932659018283649505262641902202059460823757745041542468986353191542883609582249029563515344527292283669751739663808659772009185154706659880037554311354476252886179278444984738041921480710012341011486312855472272874451457526923397892163968695565879879432010898001572511286034230213570028220448516512006585220237067163269531306409652239011053761201152829770317023531084396989863080873996183988622151748441264613885235792451063413443942131102093556140704288209503335232168839494453182810880802410846052579939384256716387183900737675846168595211242142890146593984957643546885295379457878679314077095490790836264014451775621540693974895831091612123042117427001818474189767952071548323115387694043722183333532892596866573825801143194954278055385230452110812506608125550403537534933327727311639443506930513463837585069401876204183475833194036603841182745739003611039148168420672094221082348298206119520837920158932619918014238560614622371521650656106067938186104082343942982031073504300473403573510485936823144589704152110385316858184347138033387117123509036678000222214565122783402565974745809890616958204671715569221421512454015704886884540912719107992769176500776860026363293592877978124671405403883652780541977359122938057419897525187859499005463693861695674925211401721145129997563477935214557054809008721524605302068916206120003921861825874017559799429334497685459302456908207388830489686920227519723792138058583902080327993681561355176996601748916670020057863916260963006088269685833678295376673529329734837309399149437234051418442451011651614436858040337206295376138862082558363534424115907961771902685131047577487675336093829583003852615291396815435514219488651650335587320300483765102189535163699488650723990058634631326428849347765470583348944591909819063533825999485840233216239297252286454804999679557898191927911275709634232016453462158247278641311744903771597999157851880770147216445085067722655162553564400538232363844820819954803336418744028323196127500012914494915953176722050026837639113451221412587431693207467034045542522329705150760014167686245735744746986075497017624782211990262904893971804087945370201882253091692987739037085594938587115824736854273362854604515056777136756835794941831919392712216117417210075164199404105443556376734380969193722871042089779108595805185891954318372461901220195915172315452124136733089883690027717606800146876565808510803219005209380532435630369309069163560599123495638475193572957405254683726950302203167889058727180830884707943706108363073262353187559140280677090576230772392325288258086433684684413422729166827310948026097578769302446047111250166138663762526510052358508825586454670178943391306643905850009500662876593811434651549698335034667467747247590154004558253794193554845161025748081331882277019786239710913265615409381610160272309574930656541784469723271862251596450987393732026214559277414497093009140346192381532000316558592876885911805614780406664137328358106743946723694698529873926800149870290772364315227591880014879212920468887958839140737098526640460273609254681479831222099648088800164695992922689382991127383226631541413591698939207642076021404079678973689565927137353915388965563889582164132443440612848402575403400582928531877720809515465099881345750124046647525573853005862460177695270096839712770192960372347570883453691633127101950972401799748596810689237777555420508300388715406811253982326246190583637134405558154243325345390528657055531887945350814793163801197699487680229037497268930680448004469965913654415435957992613836493925348312070283775193455753796594240820997902553142666261405110355569947007426771190445189807098830430809879561425082886606951639062490504062251139797834718177030362095851692294276202862725141902735599407638931591879681017163366726655812135114622666336692556127018729433886660388145956958015726502814794632603608488157572064186271511381464369097421094489249268162103993801145872871590413972507465738995698812108031634042113909588460704230447280188885083934805205245465017774424975182130815406981953615206220450475310324676358007988379402378043486484671944097740918381534827797989556449244097334400960939128522314677510808128310657204936571412207589466526049742363278569894760492279270577564156817695904523439741656077191319901412790385659625614066945967654663730456207869789761487736919110694330121331411245470870694047677261030696192331710449220961289698246893650705922768998255012732024578273005113395015259678157802542875126267827025330994715446273642974436591040051831873784173022002267288898916837403375749008432653609548404402520830408948416358600379361854104783649354785470132259827048786548391699376353646056902826581020038517964831652478337368474270132725201193141256561939921727923442173805374052035404467528318325224369532123997318669824746264979326135886543221002556535442499581131311263253386921178938690425717545200677613391583502149129039568804887619673092350092583504215305215938130479796793814560537542600019022690905379133617397845842340910912879157817748261140538743173923880693338626332561627102133450692112339898730278257080045710294691214804802302390427984739631294501214076351797316922103762296034833905076758049139629630800660390954808275897958380494741071293881094602053765470048073536139264247601919750900967598836229731567560548137421543415089087773623929535736030663483208893890846138544598957958464692171753901215953250676290165031673562161646589899889849013722740765120376172757330372031302594601407530046378548666199752449694911456384949749669090520097264720705498950086299916955103078465287682926324007660391743033135520068819842957785995884653966269743858927633185061835700646326082750967101097454973051339790111977500812877233932330494521031847000946831037558065332910142288486445950777658450435066128764557836108688267995972445013526233830434384388912820669695345547584766140749805622535754437470771569690123669164751546040177420718496875972969462737744043255255161628834644595681941553413643495703954754966067066627888651035394848270158809725797163293252712371112081287176772760488079162224744619110295659312728983851453704542324457061830734810483477461008252119788637934907827754218662920597320477353065893198913424747437641975433935308324048870199188323991527701018940149622794380542473308735751798418941456059402287552528166705522658850274254937916355665452937488615367756007462443234579247768877643092781240017499969837772599252273273185518785343022544606838026822541336483961045518923979902189345958446385840701473560649194737966172518010284299109270428884505607129405624804528608362654282065494016708782787922460807370297177313259128038897004375929252429763340567560566900368122536452613512221303531767486446965279142206570368288514503388435507380877939665549432113464337687336942122787995414256729287872480591808160974523765593787965584664768204550388368131780743027003776867268338511095300455936149234826302721639948426953554936111071196811455219765669117760845906343040196136737780683613734803867819898275743436159922291916554692289583923290397932799915776465632789294737517776980972511425449725302374392605609948795806770831361612756853294602080504971189858976857199209355525829249295981404017678839642410464179328278386042646513847175212737414823777375995514434075235190844476198585735312279446340905579382271088541862761190300228243554376337073162211467576531627301690790762046557826892536089421692999031684129902272524586610349489933026359730765097518872696503307940748241334741646140689257962229881945880144301069618073092584531491175688098608270930449881641243279140660605172794908305913255490932068923814472407246831929209316827344731352090020798092613586589515646851832690379795431196454784415699074618573786850428924663552084484999970730602179366496385730979329183622145229844394870064632904777280738589131873985404291418979951776022118852251450399927709076701270070039608630889437534740834743206972990073082662399793737669950901191999769711098258417316705821656195777219453766734558340780341490320531366025416862035798448405820548193421777120987342810984819378175177224485195483959054792584186089588652673469880357625332103824368684991702671109551301455670630600740237856578668299772166917922521340370348634356567720606255080828706292106177731080147747335689567835947977448827464008016071780331401849340434672827781256444713973570038706852983643311744972259620381642324249037833539844010679037890371608325192757304176957199961982729700462945139002265220039378071496111097898004991696252322971951690749892521953144804013961491293902703758737905746842029751240152137915046792021741303613157042871429393277491734256669368833652806883708613198254844521069532287836033909088534797598279865665985776247338063526544921313723706790587610636865299476363091195620225294839880141944226552350744452263136299346431947634136495526981712675532561668549399102750612878682413171628216434503887445233306334566378585113346843856495923112407373879695422760013522341228544707310904334140261716586594909610016682542983930292096552573694920728680026289702057399657943408866093713240516954232302017235193106309227857899426106527418636716514931161804094719439994995436612972131121609363790230156979607024042277330752694790243034774458016683255701740601994392692015102499857487310986782612400749737469012601435487848815776132551980291073496437711909382870452370223817022428866898883861609264581598921679616390398640176266217437134451377426534028542330593886748117371109166721360251917220533485039072851711357140888624669156449789306516174753872673996155325181327106270280851378804048844676425505503081242539963475857553724418764131566327572631685044977037607332285726431250539869788401260436945179841335001581348139116129016217926895699075667509139876006564662144526111794005006168412532475960652454986483824837629370878712561381055914003290113720304872197317353935154920062600076712607902826316726786886764144884563537264927811455763554233370652559093705349763047610662521144893518079506283010340622015366501380507465959791355592414493033649333049699621564259028749123209207045152633566522249891354212564323782927524286100243175546282965885081025810531351193155421260493872598203219970138748863031983564146619848934745435863739202071873096291041080131091150413005325911978834804415694570813008812331189126940822572170728910263281432636588608285406992072375897767026880530459525507017551796861494460837353919216901933822919090327014174424543395972134461980241457848746059626021546310727048243710331630405766991296759073495321192652911643550131222111373235297928436394402266628544724173291184918712066000729226782917478361717888698432194571155702454926961457915222951327342468154146479330156791901231407033333514100964071710804692899225827215630579930794042076143457836500173308764914692448179596109024082399248521174605268533454430224000617993488111841317125293081062675009783785635266726014927490121308923219283180998378432536417663147211785413761576670057018183555181246024846443613353588545933498031942563243984910289132741126729995922515217065311380532040512038474522642693234612223000901210256700809451285305141349709138567284104082613480666721257286206614634813136314138615324631859616993210805978834896723129516323806152750652050720533339795307595877316201613007461524339555277534668945112014302830905687483318438676193848115565966785355152850735863546066558164558221460170138417664528867078644157882219404742251639645772392712585833315350356785978212824413919016364492442004358441722151043398568690386155004457412400434491476149684880788490450753200642461800769861781094894709715788493710981059010107446798285035266921275600505053043980812636096648103773588723464324937083393820966928445055754771848678743224150523317345443573657520420978978306570539862505735911872631665335702169885584517472699943285095125156147366976415692458823762555752875578122117362439733689499754336682279448518009525309634330521061442775707150031680069721914665043230830029068127979017449368913705916009677698206929547210501731815888714654279609786187118197236001750140369876885129989259668968524157960994331941464400717313132652959803368223055742125847950230393688098005496078597103133044958646673602229382555093230784029164473271535381343247236039080995184847552386437729169473304924904202017787526775386221690298894228489835475988350564785539237067331400059225499809342852416851561192052428990816160939156607044330453948712635227292515963535950323887201243382726999181596514053968523865943682433351032659695458665918148330238038843975702211590706572550217029180684816942727245396157568038585371580243420799186517604712381452432132906445521503578482530657915661370729687279759171704784576806819397211486458255529778068690639125481140118652562594725730380072764902406000438163415942255570574726257101060646380672212599643129410163910833919025394612565326583614312686082188232445285236226481792419120883205795094619671437767437799991758207298902571751781766468772829168160492947331245483633836001209387265540987634750883085212165389210500377329331322738614846101954077513433815969067988003135537353621353674279791885690774816427922118381233943243338787374400247966515114333223674817267463886557631805634804571898574148865711260323347675997546254352592384994794888825035125217765650476225100298981903757696324937470767153879139195254987804494553539203872643430608964728417098321863556057284300767230630006154185392451561907974466934065632977803755611370652540590242063265724695975743998501045063895311624448999927963875098804022464823424282992057444417742283659940597751356763631838483105730978718001426647551284581601722082988275278511557842940306809186153784752674932465804798093437544379842482246834969607274646424395116836747670100746786406413662010962910788692378088339161513037761409634409020246506797313976792166917490231362231601394984129984061438930762201633925011423068286660676801254819709878290102683655860682662202080374767525032846998832674148655828548201200345913510635812347423448600673652764661691257829775625480063145620462129460084552941292745470552655672567562945376692439454709706052595373203030217095873555786676318152719456634699146582368607601480698637525157274964874617218901881376626427952682716419774793194606500546468264772398467855814693851890229852959431018981986845522986834700894147778214955627713527562841073514611104301623227018055677464521461509456312796836969472154366167277663216661058061431701498256896451182841455948294172618026879480488947706691892526011160469454602748813407087702902191456403077680971008117265839164496160302949483462868536834324627084974083649345106993465860986262830443819679148171756608141091421554979590500903302343545778081165780089732915612160081453916835638631489632299450976119735864631047164054773404996811835605086236825572215207926645423449493666320142176753183370152153338619929760099473777006498337011973131940207412578509072745865026528578505411739502257351411605083328224187351990516156835290671028735191612872645487991110168409742884932339696823055010685362233280539718705089006786491870788281069759257804168072191583229052848091827880645353631645286288276451213896644961450086122585700182934641907907362450176198928691321024473717357418155641608611082761553085428627933887266930400641820537858418535861630706751542674478725613997181092273855051245455943676489614046807814505590397399659137461435443495127366489048331733445854311143965749098104277288344364804717217964207096876558949482829609510489759928503913034613011655545150810042453176094550472232232711848219014470139132648434445246068544830064348577433254978651207581063359716285706199116604608602264025002805920252347868547212320972532228252648363601441103347277673825174883347123713025089652448716414290186327690784364572709270673729769386536301810833132699248661137960971506418674746319615407394433020309331652006358917380965730680195604402837912100466428307176365645471294579624284905497817339078798022680012238781867343437246797596837206495890233409427117684722779522848926343190435670015582779899650702628157261983192176157639502018368103616028396947453319580581985922330946250310583418553951904225857576210238685537725567430145280209325893302707944842009039358272907993497040585166623717817500097389467201840103016015478217990261009541192386370709737148519426635428254166172223266154418019879408969571522122130195711121209361431339140583496380041001794289758085289663411728077489209280093793626771834732071540023030529474365863552471353984433678723762752869877242708775796508405999975372212555546094753810965343114617689047150569963051263474203066092169160653067745250160435340510504194536755169386588924039865805383616322855221698338099761943139040974557381527877295730672267317938370603736863907963426562659745467355126074112636675821231349187133533615027863046251545501772326409116418607504643422750294828603480743011724274618673646246773836180021405750494273470911081545950911688195632825746507582270365689914557424819512172454332788949437148700189233815733085497581543889338508928132301005627762240250035811040929228654741013299817389371616434173870475825939906855092277635819727892164234949545868276262387357480077190006827640475781028984108638546351518137451310835707299627884576562410561158287685665830607641312957296902548682282882844027466763487523124420453017785767244950710332791906007912122772853451636967238451080191892510324768046310601131068123543245138174791290404977156694371570467901816982580856370040552179152692886444481473711403611756934347215647912142229496991721658061383753491931956870944158762507283555589765251607063153961096643696580062049789975575015144746158976704616031799338029891001561551493219738097686805051260482604177383792698904368118076677319515512062862127554222353610362959826081398424011922340536765411032152268937985841021194300345596383145632950273628673366539348375960229443241804131284836426149109233651862519147054596551241266055068561554964650874758277161994900440438794218413341885122037542453298659215584425140794639909626675383128850823154557936816591034965727175792725076021708493686358843004887182527737883568444138408772760691118601581279253894081205828117265544310908196378874502377239660084970293874253893312163071186436627530760534170562904338007574195635019035948010974049774339842251298200175372514340897465550490880283707336638864607353891281889846299383299080207342273818562631434773507442735973211107507448533578562070242737089324333669082522888988490262269689091577671010616731501519023387180032400690168746580405848758269565214389633966575395737982372392596891436241126774585755480208331214087015983009810133002636255688786439733731457707208307709990892155764934440877756143017126157690094995945701285236617028955827422906843718300302753905811981009178098255352672858035109944667124022260118940507237631863245304272097001627541040965677253779026268533514673821492101244978385207471891150897004642060651919965158185098606549118408248577040381289539822378840462175449041323836701570470962418800754967957492280579830139306484793807740810531576336710346975089338216985909423314715169864778329013356994344625939612954697337974290507306747594132173492272773114420103399787700954094479545333338505671431766127755521078619142856011809281488388248193434058909150149880766589551843916387102903173287006004122398701803177817727807388624430922047858210568145414030308138680128874160003929589823908358070623920833653956915804817999879769185852028285600596790303414790387458977241876912788330832269401315941066991768108008241921538521467098878245754384328957132333676101984865077896077084028782894866793581576231839924926458825763934308665303966481707274703333957453074924940731160187705688091700508489876719298122132556894821516075506891111310565396209892438261571256509454936253092543895872754951589217471639492840671324922229990166086344347061733453538720380864525811119059344282709261310153674660120786178204368587292835666100362067449091191674153482047580791274909077664640143184011515013051054975171390050106945945081892567501861999077162375894879907753646749571497946368379493522130028979369218920258623175174429958725720631170369203435724960235071543283938703711320610911906902828269991107819529253459456557103499502405218607316646207362495871545374594861352709280583018379108993069624479106442038978656983844073576518260485639127639694285487226080154866212607684868691280353045001297928123986862780516759526809795201428775672043040942414918542366661112587240006122522056815508679515703774440623943425497495943010728112536564104200077733652593303871281183936968965593599944613082020919588379549375081047684849190172538116618843734547591428258995130538891234215548294860546224700912222577511263043127508789326380568079850390205528670930130366175198826885562593885861901977888241040033047192542121542042592867212919456357178392880799981033637672455559398889669825170223693851398851343953943996695617785211938117795816987145551085910212802216195175493344194519786128863789883376703288329216106123005200365382203712287196901734460971250581739971903619888816144962974431697140310762530962386597597504715856588553776474906140621613833455698226062573519742846241069358691204921224078149631137288292867661123814359974164182428876028088215378854327556267824763355356033854777561719882878356124968913382079012105614678948194623644177801694321703586408790975867734595874465060404861927063044337655017402697852575941182899708465783813085595617355367941139978709362443379389057457326780772437714036347398138877370428423917996095143904525260871885133978117935962543481913649731595385202517920625688464724624036168034259953146494027026341662091509919397573674095241562459101846930474183702568021107098735260284719539098607626951168572314420427380708577211970811536639213631660349344186265328899610709761620755746089897576448292232130093834558846233609192843522523949604140987279526127987944265856798000892945254328895591612464467543690791891923250445735513825436690161980278254416087024054119401759385284331822477696810258883967434207609887747811005983432382582053509472571262265502927170455361069222499778848969072929817664165197028108227367355659743823798779806919870694675425218560015909069938119433353949652759346172275605545260642281409331081202551113776286268570395563742713898881698844235659073048642660304618307459679814571382180530038948311511944890194936999978995548630444225145834499747475234514754975678054493503334298752398249617827452132740147152563253050612898863057350983053991466030133014157756482613252454116718642817006048231645662877386237575177581284236319206074410597871671985046949455710090270900555509733641469110941763413675306650100478307335695849937461529012629111683189676992359470076852102091282363700273193875232340403485812726662088265514167289938067018497133398867105011350602030172924590115996077939872249835118075554491311798562926296344834076415951079946058958625649601605552736517549154673874222706844643680888780892210719672118407186638919693554286503121709246642645121283062807827732512113480719336355819319890320643217261278206865839322809229410772136375493224450672371738664698969416018876256396294402518553461262782890193450708488303397221654178995139623631398820669596371381399695291980661337245690120400441658785757607810973213280319471691579639731852342076480569991930896710730858473345425754946651774328600984460313063877507884140460784722989396117084879019691724482016898141713261167952742281765887992311708596212100401004420303814708251645589758668303770991551916178185584962941839499919816447223342887195846729756944774471605361963290634021743238055766166266299978186623851410865761919885523928451484682123988185309308100671804267853390005586273228349520559359830925737489554179520840296474003269199823687197669933719315420498316668090008572361650590589581985262225174502733113785545971271444991354185206957226210045697890957895276689658673988786095431277139058748406411382812923318948793233542366434592898709826065520204561336095479615720341921805946359165666864388044250147169904835872125894847317028787711912579175846597722017354382437980504230164549396133004154007112194273005478276490257356910048120598887378065180039802823411687524630338623430781999917732000924505761895091370269275248309894157932467233589687789388809509848081532672331742844657219513842429190295850599256215775844449992805763765710062888548129882049380508216286022844541512462723790256153227518706509753502414148031209076505977440721563510628692407325269837136614007854198355103327003704121396610354058193630950660102995493206146766680198353068523513437463476297608636858684564447974099057110113939690584605544580696643208070871062323150808277808135019912268318611675912487428052456131726414538080830915205156567126227710178403996890176440672565077375967400826827269778546053893216850833705851210199295625447567342198857080661401508533723476168573938280012942644150077669368878934832789848956858482217188165070922418665176020939458561530112382132623599543005195762744248175679862489697215325901908852646287514608361077593939193111693106333792481448952695421760290226294466900397504996474924513435345992416769963178402252821977655088523502458735347707351707930971683642192496237894968495092292058838573751138991088967337327776459052023932963821552112672774526010395873176921831304035759032017635553051281708111636190947325756237569544762772941117663892160342440116846370612904891422904270386825985235816866314467692701443565682212416818019518012964962327423253881611671058708612169353512445679232614186342502619124258233281359502218621146126925585922193114208941076241869463212604968705500167871967507120396773343295488981831102599830138961202105942313638884279728688237057618913123039498119972455472400030230339963973142406193766862383476211046178997474262902253515498080751941415259420796258078461929584501642818553090607045015823666204574303655770823635875978952646770546999649242781988471225872988053586135497719307261349787218801008413052115992494705364760393028587171535156914161450412594263489537052089985159686075158239389300114259789002317741847748190182430117403089237212229710822529255490498986888860000594456151271168832557393925402710921626766749513001237853406830788922066548465221744230556422860760829260593964379787529097127711823788563140980986297795239531381966397755387367304628073809980879724333846768768451531820596087045028636200675138439642748349150397186737947297474173409531485668120944288585639528190205633393820870396887364318069664161851261490266309516947155827868702561606733129579799008755986666346080209949532910190311855646533573869900853722181214780159291510914438007549615751303716227366053132385559414244484556495064581970575806547797131510740920594019434964764800151367677192509978861357254710373429448032259922475516739393576231105010162854434976995452160716073107999814573869396759173628089694378060989266211293377522441948371890750285032132098619829243819527946244381958532548859984495461092847943622999214867302820341468646278431865970676354178210596334125804511724710012708655388311220529128474281259707696239122185004724120039346005186772522212291016226949652653164273994028899148326180612697748649629606722085179150614532121273552654689122395706311835951259906144477195491670709434278062798421526158157094431841531516887318879371463908398761870910336491094008530338702334414854870156293426028915196035737017153240323815413284851902115259174816496811677384804155171019618390540931138888502977681283531950492397863952260033493423035414420465229208166920641688013410586975615650944116167811462684782284509916463842170735207880340351872210777823675453811696003572592589054178073436056183430387908320804392263603885603871998219632487844696931170745816682102423230938962263581974152209628482597610679245218318462506118296624596566340876612078826620507106662730399792383649211817164815297005494642852541085667818541891095487461857556627144326584832014951698089450240247797580955279069359450243440097267176792119427858162813229064748459960109050442082690913072214895952077876569577367373700181449019697702578434835593782655755233867820342359445247096132577508760788416392637185037272657434612739441157095369572643245241984779223136968455274808003085851979618368357561234562418069421928597934014198297141064785558258741175486489975474547217783190532345941972300257189523849555381153874080573319535997901001932585209665131088338239439683382340751093537040124998645210676413250589176990794293549714353784883409236423221960590399233231784314009306408357968509106303839577042835482419897908937687585347580687058291769014921551001498219671726258904445548576159773082114789193011737790060924827450990219333733769183496447054330628803488085699758628088973104321278280400924051497313778414500883426516963481209265311986787463245913820239693773531167274634770095039279914737840115447533370506510869639546438824548876472057391661485062928026585572728661733059402429658451812966884958128876084542611007288478218558928745470872740249870106092065179009014425474238396092115110394740473902921454077935040776192597117029418796329898684293656578518982497717269543646578341168611045797120866416279450319285556074312512805337041649057348102887716657178778370312403911862099186226898443043173740299364111235695915401120453138006124031535222630235628509752318226559818286621087555610233478462199208226874858536492483105625287640813393869059140338993040370583652951618246022080896685486495865527799656250534427435736325618497085103165737136743814606639845745878812791650301266660591439834565848712144215547444385285986944720369227056956135070003017843424116249709910750207114721440834126733748624301503186681171847982502172353266953745528414586077300151819821643529217576271209692831178120786276630672945879365230902904677455942810508674741092370700146225278997091969874259333757191580590929063767774104362283421295568617224306235374337697646039353053844972795516162285858641683495308742944706933069305570679915008733101675838790986567889998019135796713080227908621740484299847688235748368140669883626476599775178895433073164768378292682383498056202760464301926712106164501374650212531182944369130654975645033354233343621747847679829934001344486597014820478298698046059585392729104346519204574324280308058088982131450713610238964509253488259897319954963161985147835665109811181430164570805645775658358734504315868060373592179168700056621069395756828415545441501636119085270766482597256011381895087943769618344775738865490318714071622087221547562597404632495577276882234340779476103664922822978117611263314215566455715225308575905898747602444548726639287069053238855102848534858156834149473757991157764150164623505805585404354482219942897956898672307961392039307510574955501714325621539982442039123602299577752644228396495083756065422321243895338287440129944445384327367983698725300201678776299840503943434621658296079090124693224594361662553222315977073039621050380263779738724414917465026565393004215547921957031707782817434111806867272421800546499344895382235564944161672784933797892669804416929432412322892975472585545501921820303813794997634161927524626150345764684949556595093873526074101696169640678597231710877104898643618595677124888081168085158743160830430356624035402130060183758040730108459049891754948309551737152358431604423537387849808001526054529536315880287988114451114488338103938675641877977676408479492030041747940896838912658562985943440065490529720692745762652942993079603345898528838848478688046166129561991820700173499209338326907803330722230522007343333598702149293331366650873615643674149626183744158895540638166125094464606552372447423678201207054053330638776236315375170242061179976791633604428874246840860423332835136405101300122957743817110236228224021344818427034763596194908960965045728475264056985879207927538003384043020235095203043394008272306033240918493518763440412290752327059799187528908460459128978230266634033904492442428848554261921347360522630011304521749790910178692901840462880735423549900366770414953406335187661150432151302575022007431214915991856371758241099205713930846536665462887610251844497063661163586500410505193656560394735586854842814638813011449139222025660350087784426573284043805899331553774993378612242812365605908591670283413202623374957446561060252906606191664663838459506759845913177810625826463017780257673036749794130027726854040524165115868798438655641422792573759767249397736868200605462185400157310002098360762534481511067540914540348105597237563116109465185492454314170020743449570734505982061835934301428185157873279950781274066201181931664264023881939804353246322402676698428585707396241060149967659792131384988722142607084954686150664320113151702665711675250827639603910524013042727537934309100737470256422774512213768043222201071607309090637948774759874626452555015140701882408106886681020709197216477111036175743689246314682907745977012101028260274169241828323563027771634407088446285938538274078878050286548177943391331526958603192448960498306066293429894815464063844779496895477517123461891884373374589517636621459555929073545933910469967233814559018434714846332727765822275747936880572012972232912656216611662125232471465757163937492091539091856146381390003591326573481515120313846063073730915042339245614589548727363743998716514203673133320443677229452236409905661595123476964567515826343341205794040585122154485246734139492776614879547970294899407666639797582003987850158661686379051420725098003676255331250071169264975692749317962726188603926866891714883245421050579351463834478837268250994823988657871385848314535038292156089469723968357133183785829081350380929949687046175556255066448576051111299113282660693193295567049460367802953660400893095365568120970398740784855121385779858818451074993077930395958517032730460599270943429082699654151857168049433829654872954035678357716813942078250619780206313032681194660897010133371331715439996643864362100729471999576618009648033520756083113890256346625735133958088378910362062164611086854020771732307125252874916495422420925984693273260444107500870373493708419900083570189427604438665180168882420290216992266531715527257285001317142530157853332434358134074313376109891485183807469296823658002023957918364925587350769360601926819932117030351020784052449096173504311881240964907432938826714613208053184377807895042540144598435872845238662280135028760371966701745265611503257577301363358692464136814253177065743652946298649666992814057982028409538093863980734383039448139243810346635934285621455786165122223525777990713790614852688440969397493385019836252406395302426789059540995803178497689385706670890798263515017340333517437011235563077893422151014073595831322976381227295148134364673938700726449703240141091853422905220136183184931762971259606896926123835629909584759397964060559885004131017128450818636876078886156852358880388952839996769587473258115070519109939048518081421788541636334633520111087539802759209508220506317039169592539474995311117892890660551390881327793712810864769970261493169996660405639752855192794219014313872402132676874737146164239612805641132809996563412700076316829283441871919345054010158655162824415493001676158950490316548860457917022450292076208447726962306116883141677978188464341710884699375597781177015701955738587083195314611962989771964976760077565897276405770539720436994142487257265891949434682463371334716961932807585503036336215450585102502105941203153042922798150017916755550043797158614356375821874714728349177395624328707467541729917454089991228031935343788196153501397564147093916251083569947211492343567531941063574075940873704380992628041574043816848819813187678973368464317724614349338018897652495549117652494348567296592990814382579988197808304800181477351630691183607629038017494203067350516715149371044332449077900856746388308193403838670875575780281118495078902028031974374969806106851496754748380198045571080004322339102966327462471155515209782485804474078521777384238752861122702741739497252070859274845314342668480523694825965297924703832863070435098418375504884670071613112264810140835141131004223288291809070853418487431068049600676290582543994386410475714426017797326027276562599166836990949198497978961864765292026550500228752375675223880078090990199760166573790346617402979566740674781171716938432588421823463341667621978156122426501454458685094049415291418944376282129479988718575495904801912678444296392062168843672391682084286090558330529620460680619877168629799774481892560556394265549023092183631786805139346144826565146340690594910302689643806508511752040708321577514746886521323909056525377533908096579910914069406426289323097783636392868230159498692952641744176131094968277395666191044830226083466923976602263223614628112538743698387976644613803081310900211426949687706078982438384556288934822322478947522441497783528872175764639468830990849222047059785254887594915505065509526901726751138927801927401059587159098464313046181162169875545927913014842372677080870437253683519125447189956323576664469081157804161443196202984538745034285637898467325474523257835628957930911190890869015044426345134629789736441713255401152970161583424508589676997939965937232301942993146326674994845176230121016536396917121639461756367638512491412112113020459733318991152128076032083344621609561558902468148286244453680270348891484770429576357561810368306977454706129232380809000469552470653874347160906244450422196153061197413129049432366670192506648020427967573302620671130563327324519965909939865045879000590435026815827688290364191388113819576271958982733379001069504316080231181665322097986117370632537199591253575494666277829056570275187518666304379450497912638897455758767957804905010515298868931629921733713055043731199552178290819390649221313225536704485242241518096106450092697120232642195021370106758043926889032415851114155474376649711523837509685638741116827271875498241626689173957084411483796639319367745212914981173195532276278089616671180785024062469430296061181757897975811288660576475077599259327220840034075662581567497132749252888378012291002915390330927295407808746483680419771418905057668308782784022275335162574955013125236736289162104749312792739392578960397108256685349869069555113998385361153087165935441352609353898987785174715288635451100320924363608844797135954028142495506988457675449225241786283329109732197087961228152452881935553578793449999547993485429001501372844368067741991856209851151960609066993873513090863631984283550390311245550430247725824167517006493970492949649195577442706213781681865175865994000493310587000527927895374804571219928653289214416990779940982538276353236497703189884452180398870527877309378804793662739877924271850606608964541739137372834239221982947050832732527961677383632168741377144121078632341228755356952328099056386696357303491451334843163067059784810111627441857039074206936801912270942883509590819631012410810324634099213267259363714394891989754025983190199207653028833444799174298174245642781514045080683861081993328103402585529027395625812821581114033744186911259614485324219210583380096530812670496224058207071236253404022519534295022543272640420525046395588709422688210364538565253441287056278144287011007637618094190135351777961440654570606779399824563585930247229101932257364810190050001457880094798977642024392943233409469496715247488006914454728285187855063038276097733761111226750805378796099725611824864738812554315375593772384968872212230806866658706164952490229598211118425570560390052466501331878087370122859543094600750619873242018451166926037618541491016823001230473365146349797042532504093331736975850155566518533801145812711294614427147660387671557274977787883747294460432724696152953987028255197136912914419863632845026400081059976018804440518678400304066528976112294192095770027915944413917560933544721661293100293315429045856876396757197065172817044095299643746373717398482189629355771157253216724801509988094018131248679635159898799320937362801983549639293631982889858938701784639624359403041128439018461651708462647368449825315342760701719755761947069284862166755494084076663815195191780363260708047860611921437769467624916497810288462044294657269602619347347128137619733633398671781959049487614387754536847962787063463158952738624492866977914290976907479745868400401276749617453276543445106499786526796757597837597589950045820284759382083962839001621856116477858289067088665392041590390251327266934588168668066194377125333415438903721069425624120823797641900295062788556318907203165716217444108774628453750830862027861967196696646509635281676800383557315068646701845780248778806387842344308847708205315611077499916666004627106696761538409038531755415991266034419309627626653901964541180490881407588820102524822069086542970080337787105812562433984253401744100407325469587914939050120595768843052160983993790059997667307876975069573327313290084077462426851143514324946912264212097828910282088788802020294864414674037902955713464616400296250954991436907443696723637770385209678957628826153843431293455364029631212164607694262366174877343596468311717401670321673551402444919717846308008296206357988478235693249652715458721764507950018534262947253609680672159059088009233511197132411491839951979180058084654689692162413578222219027182115417893532347447558325408883090886987331323349895148414238382894768565876274573393621735038890561624611268684907764348807707738669315082342073961243452239270771740544368030362519435881834481847792760601180873265470087790028268033088060868657477732163117505959684921516369488575737304309304536722184695976313989806793753831690500355549654122981087636103475994929885132414967654573440954602381819826187748272535923275443422344154861704518659407361443808915180124260323291576112137455469979072833499289194907829405258779531989739854905762741138907358104824797315019685133681490835813568303938724628733386362378124569476197673621188283819643605060776533267663149896943676094029090264881849976523559260203662618753809952927393426673565009357052187754614524202856469509720923569692949278038591731148567382508527391745847377515346008077686169592925833648467512414974346280461161199339248380410190912649304875591248632589072326895471337481776890644125134026402285501109500859726305202911211360500019112987295612831703642203890290774787596341605309092893163576790009878103341418130520669424652062008424315712974462652603861841429782232122961509621887391199669002787424443340810530831025177686962888873156403343428484075119294927136529786780750664847285643866014419678449405257192296691441158024413303115892218394722130334507619007358292229782288367074094733909034393822048014901572176112338152822445936062330953142460602642047899950472646076690321136828774728396768056680611851938066383094773558258946642891941723257634948896434186812005416152350057055289085788197062687486644264136359611604559958090837588568174009968237305245165493361507042519860621448505293278369245004829653581150675550461773839169168426343519295286903602077474896128507196549355720289577889968109397704161717480435523046794974460230312441028341000330606354248060690233350863293786811631531373523147369784270546765747900887112082293907604967657435766976755399152243283251975304762918661016936422671269165279051813527082849354872178199563584998807864128762676595775802598542745834305213413518940038054846600948785463683439248631395044708361429725744495306822249473951306764219143001954561467894962152246949094972568956197053703914856660401703099434244746487302228873584673387260752224550499600567211823165342628599884862269405123539924007274320074759695546937577159589712775590022190704249676408687213881108481830078902104201133521599519500676027553026305997774240736398202432386195262363593265552472935831325411733815303615893322587884236161705571464604915596467447094669499658585851300378216257861808371489577224701168301812284851459545732461509427697038957525769967003693250428747337345170044531754394261323236256274292703026604179191008984775336653672755933670973069964480471786853050784992042771528379678104317775992617744181158029187856336710083299102525110192812195063957790007965193347755627836430475946344452625714150496181848389802056270504304296899293212351590632742016655632646793169245304083866505941108664161893400828858338214882106479189327807143721683260463011430485411534331125455423496902273034255346256024268100033287692313613193387085596100811235652837798875745948057041338117778348828305920651538445613033811556339580530050040523803398736976892439780016674432758267499843854128575227408103882622618182195798264046845631521671415180429521491116960386448293164159661770679367604898530406164087031066174548278601616167925732098978001280207478147783700776065775498511373215770813311478465059720605406810758101455057935225093049698785046119444195856213421801428078936483498196872345285767843273041194730841491952566972651537702733252741672215354028972354021110923258247048224823768581243267501280996884881354633974614773061279129737493219182728553817024105548695113140332883496132522254027917680731359415577728981592546056944422163372503878441645084026737782217089117496691700521312763028360262073359225003487152500719301396377435269304722322367378717545112761017911843900103534008853737847000841934151828701490502173202959320570584908699676593242297216242862325536680904672569526603938115346391199326744493518744855807505044143613466197517970598892026475837199201613183597498979935982614267909378379669443067090770125039716749881902687067029550462085117805361611564718149174129781207583872991153301887632345767943570385039571050075704126928011258935525241531081183477376158596166332386241551543421998537558613114225749056327632078140118887002348653016705800732345672459915572751436280549790123518088648452395011750317518751350240621521717743742347932366031229975144058908091150677208710741211416941206491574654760976435189839055091924022084663335868421025765225959050297223729265676908468165627813235484708084436438017223152919732309707646941971639866547446205612218654469968949408200019188771528387302936126782480127276471187105835750545187974274231664176433914310900131589819858593117770027531179068020092615313418255765112443177751241076800288540167938939585352062233409160202499657731523197036571250398420055828263345994253479836535801224814424350759191125594958787257089395628896571467306561968359425004246422524274545886337489417373799284604230769660662083861714453783584723817322838027465618191836420570591673399526394050009522950752089102540041992789993807187406851103655837097362830544512113329031142928621445227486300451230482457391661202917813248965612623900247853888421515788245178479287387538557486314869807416887162211883841841044462575691572532652375701195106856872620822850131032257582518192581186768451964649022262373655057121511520664188776069571722630361006625542672458906822941221583819875287332936344784430784091433223362396553100489082789317350923159722663821034529233425452871335436202543493632634338709124721977704291256774735214961023027454099908491707618372217224123762611102395930019994653540636527788539114043729956170047918287992828526318295005172981462558546792699026407356118006083236603207839161794495536324350572011437496112623415855141264549199273972458105790736328558800139762655231226471823621104718222608200212104023806089339142121908073956803209097465368302000930562856032514872250960867358566637020736836700235887088176601237209811655791090436473468709932077350999185133592167994079977312584455712868244684789413211912221507849720115064917317207007926401429124072475107824896087473700643472676435182874864778006968844854997503103578862047107431357665198517828616045065814118974212029851654841612719932804518682830121946131978111169069452117052479365023018356414582076813583111335723241418712102362397373892324872963277784151465017436579948698435065718711807002723230086303738838471063998939866979001013277739072241853209205186539940994094102380501201801199089956891323781815830796032301055108362089961895658853907968035705488228782756435276753063529522036098190241288563606111934990655750949851333545307607650204192281395579121126004964316202671823707762386259261150348234903533410254768071277800917835235776298810108937989463476830491456085690156390000040286521567172154859533651522948610306295811729238077631873795127441730768119663873059587002970275669733592623285154871013189537418921572666711955512390137064387181605687662090413793706922282336977110113347539499222393267914270343336751753921745448733451520664082243937615907192820059486892635697665267634697691498996406848890371436971836011463705337008509971599439422781164618888679583375705704233529255278920190949091197736441385978836277325093889776203249524693507492201049141389074133195505421049917572323432834315899332739726423352235470855194644542155454120654206194784518784206423605709904972558570562391036933750716545871705991238720077279068753258336476974042445601752561937745999456177904870883478827465197378940521762624607479694067102049650591430596887201179425298826867723851686666664863996440402445100032366067397663162839385029247836935504960548970613434717275915081767655220731402172193154023946086058390143277989219147690961422029221632861445211863573719804799140447329993077535357473308929874785733330719164562447889584575887145780943744643566606039970144275094018292007391164518053816088190232287704414353319399430533375178703627384926134364218772739126678691251047507751356257416605264052599394454615061020115287064962921835855877220411462879020146343409900710515624021716432504987948333408359636603484277228371636189759985832479255300671785361305829857693937321019595274718010116038260209726524468111036020520256661446817634408240865581584531614881024602951020274537906016654884035873167269016778581629175287072309139150516760815918942841658484373857338384187601370556501772029141275784881892110412397132773813524125180697168205900891561759052475697192553089022077736812816339767487768643950575634677394901003570120234437807702512794889014858658640521856570867663570930624414653284964486401971417720462554513935421024149746176641767246806903695266610433983496717988522959500622156745022718560259841668128704228545980268458983458379950908689315853584161876649498302282946939900984365274849827888782895749715466352434894702664669631248884103337708634719555442866267120123169033706805617776101142493221840688868014291857814309690883076643944565055407084388813300541102691481801242972217372768295970856262469821696729306803781638595642913556342101870791316205728974212929559671675799361958953626937856385726666507443983664196894545753384194963200452302810748347068067225122577481796013096223578327969631901221915493887327076272221536876118528201256536269119633518259479966025431700044264532098105476860603397348142850380425902944322126043905812554701733135761370956724481887050367731287953461859767883589622883431343775443440271249095736903166489407346067138227275135308633152752078953972330268133009073533667028061726834414836075193076196649455862677589013033054809780151381092434806743119797452266311751121336347221597658478840693510200766325546646728310329788628895416357529096257908064307928060802642030362022002885426568447400875379893732975066759150068106222664200173198238961851011606027555962429328702911002724925203158027054385635832422188640110888349657390173761557999091220710098525876865027828336621984309119104003193169835480782658330758971107941939425939815298530973919364562080881027641180618995198843386151248916644473286738070801154580924959151432140414693375880235705445913207159979841412103054561111338327990167330412728853659534537648248907346608650670707129486334776996998944268803673451964490986740802223621930219868653653458921029957363770138628077853889151284863285931363430516057026736983329308833318299448774412147553743224216300831393995875456538170161929234892615265420588541460539885392641111910306261562853160363461367611328862570186098428972579626176351823925988415922386465543434217695568912674253406025335646033097371399965242550146183157473426090043079715818525375613960722417732232809691985708486395452969389254424792911552709464531108186434115743868620451109633174776972842517986687483901401679481986148467390777474813719175315785289955832866626256257264889062145463400278336528755697462907012598536149320232841081384503913231493510694704697779952136665585652276407966532168033344210608384293847633757738947511431188991400269283343918064519943938033468486636194432537349417683723347867008138821972723025674444813240319517537460407391324361959710474323688919622306541466485197715817597582692157604008380155369970042072528922838834828627469394135261963232712635515475854824055879366819055786699717370162930371987792746122016354763990084737232863440507863294196110431769766549472212615975233688639870998430897008810683449540696615544264340882347331488500838057043356413377548393755850196522649335478648464441538774653431057211678868264346597881852356167677973889041990843356973507668621406532315666319530515255873712239729499405690275880538520216302868678995389348111140058397156197874694010462354054639646871324326549805588643362228614083772467404998329362434260036012622801897683428605163816122128390335089582355877144966032646281843358702851821033946164640532713098110275116857275915718496967299068353866562748124225506395510933494208817242297366068309350442083035095007900491267026260885012996620734580394856332732898585515860828402539088209392866220941393085519296730986971436235789364215053478657064044690559209397426069856204697807202043851963640115189909622507402738610098312467088722950887337347879838925182969403239640407001794625555903007115526528355821839450978040181087625248605233253896781988288573346851585676608432783772948574940561375784627008681174475460332113721359662890065563839901173599012508854166036181894452325901544036218432153252332040131661302973022246965204331200495797191717495486192779401031251801832121944861841156490417705944183820950957526262517526354180084659561855924999881301469585388230815933218443534996350948242970875617039315807250856185983805957194867228501601788196058660082568835321693700318107391239609851881253871193484794559803684603492915291714065210658696049013917849762605201050432682727102053013843981576192865082460398968279547150660157819631306309452066223599216261259278973975046751798012859284527125819821652035402051896976654546918972685686219318469554754258216501901405725095533489767372700128131628349409409883911681607736003682911617234354053284205194099184338337701356909580548885006793447344807067047644917627383776175500629430399917126251894773542665677462690486121672295836812580089828128458535983245051482925530012743102544968047046449860325066359711431747660554790716821882865229141367411257063873048195430570135156259121377112260801494212644851053877776790323590607347174088003330891810627560100454342775192268686215727767917919175045345420284253008774805352538183536148993332207040270013895718016949852385356804549503430975965059394763729692099171757814632155189155670672045806020696304944281926886907935468721360968094643668904675657549937532029624810796766219852379805886582148836059189659691062494369250727824444726488066843119663832374188640412481979913221223175731612928512121538500395313796037971860597749837466936018235726089186707341229772948039863814872148577607493344838088078394408045452453302132827749264480893904459374016782010354010794993753541700015766796827717345422238994110132661103158977759967059411280366309727022915582652956689352476107940175065593889336958065310576749263050590844174727543541011663876843349970833087804323065991974448206819834418853694781163808496499905131925781764562803804259546991838794097202004779340212968375477418433986183768947087379892190456851295420503703963122256860783338176015936716332235622231976232947224187553131533241423163150228541604296534335588251866767449796270655587914398859725467189888808442610800299543613205883610361461494553086906433034560583522407412116594662799152916825487020444888491648674844017193498821388055127920513984934619080150847544636472097598102098425862178160413905956644399724268332028275023743705786649343132116217522737660033351216549949957178512380718320078208708129334985825923629285641127856623477583502528216837255044429440629992147332211845775963718595844369425971980580374075578520230198159763989090137374594582029145234270155216463964860957420166445467581764257483828518384261747227551035640998928744952311310556981190418231907322401910968468820794057631857366717110802758987895199502181962510435094448466879418355177597035191085878513098219717289271910704563779816266740864574886069196707335055361595097936837794999674167945145419770217077194677109815790637048477593120787975704936076386329840547379324843871095828990437350795097811316482218225189974227077009273490237792973131392967137048749199741935554285629867965973126885803750849324440038512233392253170079569912209022520974001773149104551832509991345050608342032019687743036248377097111542149920958146499384868745536582692830387294751357949265724262074469030032815745814922794317666651296564605104713771474478966044113068133374398443514931345689873005361179787449193157689568781351534235744847250840333844325715415608317958998245610337856349532547424766033934470490176065368190160693124149577308458873908861370683069652435160413348561873701271088329495601324817745754988504137183202870917622701708681713059677326234650616570246244662865392816991607408164024488453295884166689746010426233692995514624006361797909117321680785106599083451319111532983456148087447372119951850232449209579027413348545038823206357973941264941901519629496004018004237763740529421019332282726691237706591049271680720322328675411172759011911089615958159450772306951931101645919054913925146271886274833335248983235344244376268643446844242889697367604870193866684607318663984533746288860562352453188749772306274452057915186509187071356431395430185712446364563449386151092113708625200019407518449983552180308349474815284817366021374309173088728906802138158301836578397103676689136420980034643573719082855225436979002540839837543215272217874430047854244337294376990515036473209724683346508385537609761270506876131843784883902361851777843039037726237441632960264028058867091998295458350714624062102105427127002176837063879923789742900909927117296202271033578071495937544707831890338825695546985350550952933861966003351432577009625775424487450898506087475116366672295147069728311686489982928565297335828412575716548698315458119941936466743060879467286446089438207599684069310335481884258514546962050312375954856705857247542646224905867629411672715012047538318388787319828348335575943357352716072420255761245419422636204396302414720310275740425280668905845962100053509793908935717990232805378888985840626364185724378753289561310263485674433273325967356999199634917077227781073959698986777660288928528519960924987743995188202667159238121339576621461712414936635357607920974563624432523863672259535071835039556866595001916865882273472049587548373059221100892113661767418431230991279019054476716518844106412110451948529150154439223323626886051014645195264844482152154872435730299544590666234091082060585590448386607573437150344813767640294195127610633891251888745485919062566180849274105232974902002907406811510957179088353619491008031932083966765602795317884461670782214675984223925665038796068007648229588823956355680271271398479360329311679897398235155876329064837216798430256731972372423464816766853515255281527941110416192818845832660424145566225988570545533960267761834165230373692267051686797069989857135744925572708605003134744628494476994147628319885228094896577098127617466135945107609138730071965999873433670445450778914090435753897526604595996846943683117605671291194400575288220906230553521108978062917334095642857643462958787514448922301264095371300815508168262971792558905731073409691584666243875339175449794707431952041621591274871824440329762495865784249454715305020753444391909465394524956041427007852792667071259316707820850558211185118534061349130388395565478129246884238973266125751158252820939725047001935147608881306531613349048918598344446746477502845523793883665408852624650185617022575404812361589117905362508851085296225390751207080749860561854405133146153417927763572524110555692433482276014600373566211421982715681448636344938195545373676912230990761524325037135185298291170525782113010866290370560122255554248734098603916177377720228097475433185331149969874423831364846608184632340433633189612057350248278106604584600924768107938466952374526614189281487477633973281656999471639588517327844263055721190613660197326934353885919023548591308595973342960985023025826180426270991720470326874354543917491208509472751378757185455888500375909581159030755879174548776659664779010684054508951942963282775846853249279828830069919677217843870958785849476783995304975557828565178881123294272978429033686193344605506943195088201721767591478881694944309054885227559853932946282425085648386472556197413883221986811993268492003512146330144725965768674028556684388636865963036453255927529035944972693540750506254186404519142982290944440772422392522239179068416059134563034891788897647262906919112468391975809804934208315710441862812176055298627837283563412448433118343005270641385229778760478882591975208055614433250200108070173439794817460083509660938621773246056479047012645239732211847175376428776130488899848957796478022505362675278482134787338559734826986936166983556312350379611580847658106137752095885681904508843427081727609951585348896074186617315981237766171809247071807558543797339399170644526630331878566358012998251929336156542492271824512370604074257946434180691576423516736476847002724170232170308446816412494345215290399082417163397749289906360437434950093030027857471677633367376266001356835591663071800083040033981809269813129886136498753555413896672903385112833908722497977151776328394829620578828855447411072835463409117785195869262316882975620580063042559985833074601113650608215702292384581467892061256434619677044148048088578552269105062408852429736750396579360627186287140165998022565799777170389798569151278858100428486654110343899417248844891727223912394406379703254557631287662907057502728465656751617167414845366145954781493827615561846089708856433621169383751980436180298588228800208637289869674393116226331782589302709677392867952369850131410510927734851109255515744191720477921689800258305443331692932411467909864914638977498290268507250668896013001247628001880281060770030557609157832460930787328386005921552105196183379406693774169541370919107911888868424395532072212797931084389333749917589188137956901425528290574063337511418828315105100961522792341548474817450911833116617211955486241916239462298048091898387459869712170785102281723399591326079944218263525377649678658283423908881312285244507321465388876403312412323625402827893389171702755714034378930048435064177552280698160880781885021990769320372049931723192960549872833961754648934078033903457703785440020059457439220354888683172958434803017980274623141730328109645606914457066278927210580245495189159171866509969932490623876854576800671876517519089714843038260595680618179438148576879320155215927173204239772925411086075606848441792676943548563212384796191217798151657411273920100664388733682925800612559786742521877639875747277806855698765101181034963276848359825435976717955526555904308615781422714744408512339006479922841138585382213006230203426976620925555580355308350379312392954075813768905767479021155627165330304620619401536190991731259205318123111997244881793430729193769404339087853773603774155188592196252076651123776862311557514658158166143469964281618478170691717557381287339333045551916917395000185513175162095622731447041474392001668969231163451292983045172116819624934292914595654768821917401276404336493676823138837157059504158981028867331165622414325789360287819538587071558561690926504329487402146904493687793190228463474454294250712937515217064424209419837834144383387438505654400130955351463033356974152697110209381930367190923876787270292482454255994172266732747321188400584247581654197785170126674919289298152874114635523605099434542421462642443925479621331607349430024551826488050047150096571631326377794497475949603133255474332324045222056247684752333273777217944809922357542430579404263925076861773718155470404614598031043414833071582248580194103427362692375715269950992522224300992415008442065889614915449697004105268132988591638423266764733004901666086440557372508071491605450606028151909860181582831811094662807834402666990523761235390579301548252849520066187629810062347493969108721205040078238430978324528317363444230473991123923734651451205456188776459589876137632126578412218143584439720087462422212235050649473505211742327977342201680517225920866664054198154164186597224224116241897142874407949390064219805301592751934707340749179644132025116537659875717504494465331732006340050775703430883534544214432739191510291558843602752916762969701714407272931229854895091475934109513053813266056507411369644660707618588128341424068100808569997072012816689888157797308529616236637719420474165834999819801827921974455189903765340392704699668169183422628385597152427317039764483596753392163323117601002729794112675722192209037790428941013968773444655221465365638178334404943394601910760912428641086200449445303617293873898747015498680594564631574155330054546245106553507951429221082498034796462889067069449335303159482151905074015860172538166997990459479460019070575355797325107388986294193959646831837292507392487318055308776170624761091113588998497162427399075496080505259239423344001012228944707962104935870984087333958441443415873313858506900215894903412814628009841090729474193303567431363940175382447691398554189863708891734771827593439755030435584559384976579652319326504470987093047799465716940796475703007243143672774184146022783879073747564744761900334206182121421461129387918155447336363113928690409881074360084399291601586856859900834641528876551572865834727737854392815279214220979983249015359014593296749308482765395470140413903695480435919612134669517104010616773029780136558048204008180132057125527516687229706730910574017568946914566538621363419384734584922755865391487081531930289554471421638333442588550476836040164594728335328186761603967052892095380450835357482507021989552269718719940626889899498045813987988351368160508901417588753849612305764918222938906657582350965890383326845788593475398189881740342346644157704607450342072893935257624951832818992375390600581484118112432323561063787763188364323925974947344478022088282189905075342516698395169143878461425812301467305853583708220476821415073347439662219512121094946290819211598039907546873268891166163528000738672431926039520035859530033072418746837284406542662017017620307297538360140372015280511974883023509780593785429168817420821854834618852298112826166160549605452690467215137537648013806395472959443979615098206808732873415681050056088448700608597342775030771719086583948017905277364062611942614119401350983879187709025934273052295713337793676402757851658257520606781772661397473035131462436880647989533710273990341566904606020878008731881072439772519534696826910452632981800191469326595099433423425299190625950552236160598985090589292020948713935032698014318051563833597863788406106975590857583775091496569669880615067527187357133414554244118924062386928761859128194172934819891108176158856001638728339536802955245380024084774034979520788700314092555633881675345350249035499562284960054079552948319474474326397567989934300050722709648301948180331142116467964141516059360015816022979642560313188194863818636309658526495937782178183395375316998418078099827145725233303073545608663249358113401615858503287046493523910733647147897836961463150481911060702075137187403579532653292029556142711609903660220162680566967038738075077343649422189321377297542017770927522708582211279965512432775754157457785320685758796900358666245644307986214059529195856474983133468063327004080354351949562559849050764924882229063816024066063669292985787810075314677877345502564848106634148301322741992354387857176509788114829680836580961177808466860603816201156052533378092853021245133080672877436085816635918842384208067567245119043897454106828080817388548998122676298899927948822526224848707348761559022376941470433163871482848998628311449857256839872109701886848666004934117482169964019354663349004367162287420042349842200323153707802807142160150525628205943660215889243025770130346742275507287330431372113871670077792842019591436628497465501638756395836104852857644447721585989307821689489464237822814175925071646426237755100116252562757402797835139087480065758639335731044482064106263300149119356218320127053027501864262738676518784350464883277420268365976041489796973457985146750208224824600770980831991493678281091705145112030233358625171412292649773896154102990215748673893864690125318597940759284163077104890507628158832156605591264894523927060667064385324393037281764098073660551119862838618184972218350245424909014101468132238862626890564913935413770526109026931944048564091345535886575058747819641461662856356541205356535834527977314049556080245857980750021969084570787083061998664691380633719761192611599909523686845927360738229686345175385176134973956903361627850300432759391696785204053916519464844133765375811375800634281656747573050701956295962858700539721828970519552493531978225656814943833363199009806771912111342192407506605511910260616361574905025515182447551332078191697908035279527669707747938316866807438766159350537902520516131652515388712649555078840048244476343275875888944775018709146578680329114028646649437134246568750289954152990557388251755617445737450559871400755665846849707397780755591275629362970168614710173756396964621819954906412912023050128711457094891142853824683487725329444131683213785516110532298752217896283489877365824187297731846627421567215565391831117005336815168410615662525622527294582003202479591758559924196830274275946611438573820736863383143030092186096716135391550107098765498589784290268435177066881807088957897545116217383886272058787930441559613060712078716903791908033512635138885116559999074310548426318186256018399230893326423678457419252791820263284078905935858209366006542408878821785879904188174410227980463189376553235334797914628590257864674074394796287865940586783803099041147232658093638407099409887037114975294217032777177028661293697626736522060403763297754094523609175319051140099427812179349577864494241837783503757113650879999212362173749513001124792739701499871578406848852813539927523002052274677203762341549097412239371161027344651402633837242001215954122412821245588743019568335228724547914612797833055483890914404866749467601736323768392539655653337627762408289005233795148757152136852647712403138773867518598015036843878920217576022935386038529631159593192439489586580961063198209883647766877968271409151316396752703011215809162352651952987772011344574827228224334465324896556755662100837997748846338065251840781446190624637113719124189247904089842962119712198865251611508254234798585763012515671539632521196432824789334176366495250647742385054250025022732789485381953379581231344997584460470355030725384616006045212551812746350463124973531113278296518962349160757654933415312933388026743631568972532719928968198379644916915150688406729584275615123731577615075537421692917613477788162112342375384888272103489473385599008033970011024794524529859211147565686883019688259505823806860860730290350556017821998652097619340957112472851796669112908927172792920168199572316340480701971154651138113179178740303593043342851965536044742579924501937459762605410236005011277346420557834778727870359554634236354619821091629015133397067528627316802419849960028447602014402195523402612401582140877555529392793568521015989741066497942942061830679212679758103680104531624167960279739769119734079415274670047133404869706824008263789513334375207853678675457714462924225516392389401675110043064753184162184854302562433829015790906046994803035087258655522597394007088608251730024946706287035115354326720195154302986797708683574132589569066543716231468865906886532525489098947098096793258580378337767900381525909304407092126124485424372609067188211367259084787271872342081623869317426947022970293856204644106524037570626362668707737680374912972325203500693322808100645450049118292750961315790493123020745655191504199489081427656989927545762358547930205110056321205540371338155833345904642839763242714017992501459245708537483972284283119982117144142756393404210332021972970614405476447384596747129186780161630634294614762919453010073984637095714331194601793196396139324515005266734240015114880011237871742888940761386438446710010596842976000907100776180901576962546684502496899553462126661326519510081073368739891573519278249326583406018973256380873713060297857632588357405494783754216271176448301838081201792182009029086625407253932214459219538830879501860060055086467705797116219694823820428399844469258332055535397365653080269741112565675929250545882002846957954733488865161591392454992530467873376626526343620609815522166889098539332585234789737345625759698176977403603698775134411047858446606030677815056758611991294763012830163678619584612115244143763260539314367955208336789596568230022844427752654390735642208055859720081696539506118701864651762095985156248067483027678332036559621736512291717666672067752645839908522004081668680888812129412257057627124006940751672003443430740233146668428160188966481843917433285941534785211660593958461852406967828505330894089900696110984756988366170394261183725956240517704410849646440591609676831302788595008696180015567295483210841230439103910792770912567508780311782087852453848164988274701652052040683571889038693680110005836399406489082697011377334296348547977479847650352298464457700008738402599889836338175870768215228982241374781060421227445487026069855769970789263022976448803390975053761642755617502614151617972586048759305704554180689307372914782008788184302071597390356980379593459296245557716943392079388254948637218103205380537311384076983741942610134425508579226191367848397760236032607397253729558933283349231803503783187029855622000230455701774269654535657652573682253459502246773153879430992932640083794761265076045313317237918873557665766743237671668094090056581936607383607699736601044388539996937651407215077711853779757788525440761535495524730529431343350162774971578842970029310254753014502572847391443348893591836374118083581408235890540274852975271281475611895690298744851558796116439295183321170188074620883985362383277356113199493310484900577839938945223558096588434958329781656952147281296282533912467696554439121273192042052346430677410900358453893548330874915838868189725447339734432066831878164991158088389562777870999598701055555562799490850829245292897615949244895689675693706173280082083913034660101081865988086656759817750443979212326658252519610446201066357573867370017104609052832176409272104719621985120559139999727163637981864098101922172405804327772014635516567323168423076801135317786579052310364779964740151710994352115549356139928456388786427122442439084412611743847054313546205098243865501000002852577387774121551074468152178681919487280526775804505183425594967029929407651465668656275450705244139237996305279739225840966740913743849128698977408073253431267458285587968753074393871752386425199491746154820051049458204901427207957683692049958358383431840826132672745986845717886019592897091110436236901339634444652639870890727300629124140039157319617882457558077134887465499568904149522384066951957606533305621760565929703382810777202209965871837496032905423061368824129054653872419853071773971637072911672359244344878265982956848025432756364229777090790342291247107574197080094264768572084751394740824954353029686846680023029382975807920970060449607285104421597931885736379538771667413020576870879257497757950190690723345198026082824465223581617124035159660383218878719140762837117782291050791323902406661557516316108914344040618604744169559468021629922124699029891902375285794731188510725305704073469536771898125712202769281657957201802133094205721586625125052132125206480739193612838589082042311307801334696915753652829557675183214311354864309945011832868589685732992052324861402855401541629565557962663064030537128805384208923164689964098504289123207075082253425577804648764331293082188747342030338125635512750185045339485498444204076763204184932838527492566819585413172660122930150230498929313070417254241029339955728929798982049708212100296704202954114967993267705559590239842621257918418583322074482766278361470668705378738220823741932341799872248964637541773686319565763875007421702352227633022703380387290480482650332523938063551779705672922475820320353517307822257159212985069013920477337533492609531777579400546505493941391954462258503399491303535084351176368520241845490436609761176299962036892352861356627982397004942765976966760949001706970808610212484714827707545382443046408413334600050614183575985844058487619226706836659779339720270520377306568725219309345154998435244033212438763198227322893995710641311399307443699710215250682817251037783338099797725650115656877287279764814449471475935553602924021062192464161644021476855522547744815574807973935464953688172199006162721398601461806856480170646213164311166238585933272455561615447287720959380861925984482034236165884925540129100496351672231552101530768129828915677575914111312715784503336184131710311027547076492592813103008172107978993591555863351390527181588032621213286706748940695903380030003879034040023689021833748537660846823907419822031150687614622233861974100649834471384252497514651638185955413283039316415632072204419568392267671020761425762081353405835691190389559564341794830780192890931171331302151151101916711358029116941928977245086420793198204987116012279691606226655368758140625692489082830923348515799982336588104983652374480272769944685229399190752830388614890710498000796690115786255180362659749112452628849072891086444952022974531567428386010467063925925705264795088560980729698059713020606292358187867061982240766605614771508864910619894561188393890311850761834873949132246847758335076885652399012771487034439915015514405498875559710632519637477435008721555765517570997766943902240895793165916468561872103458373133072761037922277740076168213540380892527400379496386604258125042393194145879384343457021092122012210622929529827247514027754557261148839451948904099999186942133152556737999088768833604625801671961879420309751576313490400474499951632734200779933388084497013889393181869673828117233546750940204767570790907569940116715714443521762915592557816591424385802479649581866035467501222109286379526882171923549031737632564111641370930339890635913132213610279574714399511083023556070837567014287990408072267566889776517350614361636718462738522653906020428918328270734638402260860937552366836845058999393712755340826239245881304086478873014630048804473593939421331024369359268310851068685097154402605823924940607009757313794487799705884089392786106693712646852907768541264626824009187991878328704600691438761961088810345715148416002025764469130634141617505971263827479395120758052288129250913109518740382450783045715810508154187062029638215357110890781545066339935333150967059626255354549910132357013957983296152737798574919444601013821344510802026449567979268993472100642323646684905777815006838490956513117609861881649436805557428359886063898714777754088380502631146570591752752654128037974160996987989057476372932974038356309673483398460223410806244885905721134171916784949053020624866362651650284112904828311720251138276421206728277500500544000163604386760098723373808900404613800837779799327473994888578452082306679656421366102665050518969728292902139250628929159595065874162239664019303620305756163339283016366721552043486075130847097235439452075828741226974179560827014315673227971581449511933063031661364193244367781603515715610118762141566370425912515256578123138117892425958746090510299894755901476358916373598577691773536719136051724421952290601587259147705291301179983843461107328572632355179215291376462018463724085870268657618735655368918675592180725520229957383167100674518792441662493327191019825322977191314429775773067148946067367900388049859544184763825984075334345017733546979960284299945412722018727379722110221077117663139335093180499780402032478219580051767452148722195621319317730710980247857432080705699989633227215568403975123191161815779096458966417458077166819016179633808892192628010990452532187985528547759824442354903308031827350081416165205766270899299880169603087512411658614942834116139514655751839510341042538634713418171501802058782945557434345539297341689950062903713260960037708721804500268461963215527335297626824711473622000935917365757685743896407936307143833986195473939767338943096276106248627481330685855909944296359774491528973263228123361118563140701884324788609721477429437460463807936073137486205438372431930535700264132874615061110026559864830703527819979809811177159094102885242570077624536188418030349692359838084508655723888579872781447353658929616994191695914416680899803559060169451667758526421528193047699900918035471573740008197095259383543670467110402908973339824452236869361153314377931786301621084464930749350712009122725410019977287299318289530846611757813928381157360707634604408748551074145519714119063951098269634283092264157097418417010431157437264581863848670139674731634156701643045255907252471109823162005006750336325454700741868595617548950892400547971559148006455869820017710496321000994930759675973631285609372670065196466050190948911686956939029294837309121984993610735202136492529343663299503885605295684187785294443118471382633331546514715731884240756809166545557319287665140354528220369457554375469485315746391055068939970093238598790574344941970650766787168871631663324098728403817535075835588479685465865211463417713227539688393696930111963830484511579170978382066881515930600311040639052131796403172140377421458117906378346705882141529801813990807722708761271574549170645246646809549551085985152572996675106480057098942010939086099478570886308025326378271560806524537296826356745883220430266187277166440463416891263627702158848508881767488089593528923443053217558348933768065663587395468713829601768385918735440679235523063788144052333094285696240327165914091637169077647805690827033806842701396540039789802420684668205743112280501428255273314104913344506994348000695757379181151502321952138444301117979711981330954323587748126917321457120018442746471207880109555305773167939845693222880178885040973768560453946883730750006910586788148838060290446901417926639882172368452672140126454968116014690249945133651978398702054233781460190194399365546554142659195779554464713500393225193886929036357672943815675388412412689387612557987640278550808132907887921561102870456753592548123371735659929771071793407602315298008856161517089293346955979437302079225272907582898488347445035490832663180717208728843335737868378461559751188044327439899708842311920479421847295386007781046245213537391134100225941047517449252462392111328260075638598355347391601428197816499386635451307459288223512976651856748679961354065241856318727128526404200405044467676908082335247058460710863995479515061888431357040150268376356091885844891847495044957241038602810885737459535582757072440034860691555163142854450707043942074713783258545991388750623370391594849864455644848637129674586649455426007532305928071419493744125346286933536247751721598074826182640285124829060965713038194022811267273403318580940253217544911511602160949105769699523382782049158635058869322253951673304781255317161702169691136179973060426565117444651474825488424027964312155931944169856680766313643409558173576957787294986909300396281692846231910410197801716527251144535643222886073663699247843113954578050187278909220507565923404259541652474231387996619932812461746442515591724207789136615586682490446117344576726326772467888046402814290977732405913560314122037661516976976416357077727456677053695240597207865205437496086775208104249058487998610915405548113483069759099336486343650823419950986571353939928542083359487788654279223492097264655294031196555453150162925229594674764012337629490159214309120871966518616646482873999890496354803246147340281584717603683645728657339604301836104772365513044572154947152704289635569994243371802639614298064325873157819558100726070244630038999390385007440157928212317472388759960344149092842658076459146351732900523828171383548141125548611802043133434082601801752510712790701726658905802203536493406557554795554756768645326749864294901085031330776307903997173907052879430734475648756584338571692297275033233162407238732993028501605312166547114224314581769580289591068824149939514025987831930746410450548298580392333895069809124689941524022459423130701167916152190526228183773927009430870357432722265978881127036137797861607094217752837973798116541438793646591154835369876828751729559146856684602395743651801401258991984752593272631728463585854681926824512957810921715552849403036442136072813489762419561834094174882927427200943940707988413150850054605859408986304909147308797565867033119916221794966065562853408986449715608877221742927239181600999201071936717743575647764250208222157064528396456215456194700982048235533716134789144119531359687144924903843110044835060654091252211680124196089509417997586616502212681095427161145417852295779672693887434752198091798739937222526373877456434393032102620468298389885234693698275948614025386322089408589311666981817501119461132352567801374699617636523594661630060682990398357235862948007231370874788622627491711876613592938945313224271275594988714143428308581303174624204350228806403560850837767950283120366050738919975240325796795028792123047631732238121207082827649384248875995107565601575275884525658236520123340372456397981417557542153246262192761342503086244885353049240267658654745017814701924598480233124792911732265103279406852745145902546007181128654538487425622005274811504531938940000857728278836434823746832439831861718565343712047754267174971484985126836170568890092891202347464433511072284354660811244231728518276605873836102311198484133210013200525845374993213555686756315871903301558442788228911304692459666514698918359606843026547026829333434196129662015259788953251802753104509729644540494875884053656386449110506618451555168986871413725635435900565719949049274523150805841234922429099664977191768593576337821271584142040664660777517802221616493523902261286639838303389021224266531618301609734078167053219637959371229101921531055398886864497296005430443255167855278059126629699672769831547873033831679092988978603077805918464639462763208867490816920183570830357074888597867071081476656066402549362578030408922486769956082185066655184612477554632591969079025702495771751748022299908826669349068528044571659208049639487457636793951827433686897353889901582119738485683580156715833889266784933818182914267136258278647670014205765302047089381765959883759799512373076525992040450160226833097534590784613756664995664848043102602397623940257027406051570616645097379435376384750996510461493732435913759719125122183360341956246163308083063080068275043535585839042581561434390716485032168187288741601083191720292336256190527693687325242006639536301054054840638517558916686583046674367584697901479705886776132109165277196241730305657440972661433880217525661899692595196922812694531383210014671534469307865525798708919646655611958204308372740976237806653703835771590858890621960728618925422635550159582241000530126840022287496963576822202471259800300534426631356471354526296778000961986063603552691415359782596903984274708019770561062680571895327796619519641244483324261859882874818214866274131685853536411312876532611468018011036658570012898110381970141709809545541465633465287679033226096760181139778583408082301560387879240515058738895870092896475632256543237711528704653991146061794142857960616047475048423034623302969639965975719639837270997460291646745575324490806101472903653077774811529059141708707662051607164367711287567977062883848164491957092138421076007220514369156401881333155448870860435377728499509854450600858227223214364282631665589721052979369048343787282962304687179275133617169807409288923206205634944011085878519772750924569977796761646698197058926226570308674113868962506822294455313790299034086427461516290016377729597276539275226338493119559117136000514902030786558437051945093003364832906456683108738659836319029323734955696688878835741092066772925694194130185727696456286001016765944212638042635706506207397837395159626066322577692719132192655278187909041610610527253252083944445444033313376866829103552174057580654517569641052310136955243355664372514095119380717270389588289152006650507337801958266785776067373463592228980756144210375819777919217303491406659103330474263879506124408249755267114521335277156029493518804568737755579927993772509823949961563556666079190467270193123881049788864609031765896933769240377903775497462104977276745552141362011052360381098583827756883130345987480518182403220837589165108535767474071451432867265587567070407128607383840146408323634445709802829807822172490112035950498008366289554151837117387256415205022739364030983575478981408541993122607311404528850686735967405959264486263827212906398759773959831527240932951374081587339615641117552978350002502160204153315297109818547110489129717880446239973954710563503860757971182950609650005806541046741522254386429990822835996744449972856969825236135743934645878369770348113328265868304656746268712103282213186649707950693441677944244047513060976997573536221002113139485616883171179440328251343361793420114831733174573563907695774561293798025963386294249399019669099572348510817571918417607295106440312373946622621746536266993228850319342014558646299579438774571471047138242803800357402702823120296817229022401649211561824910661054958256831572300299199674460092925078883326910418602103640741769305428527452705268103714009729255593025026654455680373133861871843230326330799579267835032525777504147326269047266664773741689937146194432653053517952261158186776600052036170881979504713897329664488578631634910471511109896747834968247458031810183256545768427064200266348091433274662939320451861152581980020858697805664744893692226189430865905947193540484828501995500512551315456726024403947041287199165765300644187281282470882890752450820422583366459127315138693567858832056509880233592911318601450748846707929170913654043813520535456601668229243096166082259155310005474543307830525371643050688621976179928578477760895381313784197116256277477200891016683996009438932316694937207013048867299562015381525569901650485998707965192196027035947781873410111692830124535756608766588954229776628149337558563505673777179625502274696346376079420543732237059909568392672100650094829632176262781869057106070719222847397738345960429585929958906907251989256088749948086643192153130161496603838397380610317289610444621972098348707665339554470096207922174375417974933556210970486494903466050496937754250182345158632863373084277926139231357198466328086424567288781547207050672900585874922077235756397328505485795994449910961982705040009659194411470503224774667344588366861208899412715262790885638346535440609543329026506506181215593974167343881405685531289110567574549010080171809815286952992108175688545295021730423124328289803880674289295174303977097703781091304816396311569999083798346829896041619126673091366575502606072673150955599524857661848744094482309412908544086087498065130288175546273202846511358413832400390052671029616576039588137632791414659134214289382856899113095134590245824996685631800459286223078708386793156046296935308560396789167151221896761544957200051943871215007690558226360438669472795212498666527536108848554830578120941036437919256268400633489414497078069006308884054616815137966788375953487794534572366770406476457261985246742831608158578283950065700476981681814114978685654851938432516827549227644650386174603962687772672368603742548342508775313106344798854430306500691754693287020358916597547298728694774050613684569651073874540549869585486220438972983939241913255180558604219720232859906521699369028941084873234037809127965135521877575178938718492219594662341721201275716120820782900821075889898255894689450950703668029760608115050904181686004450975848100110965157728877794843289233929378144365129647197206886632088860541212287233246166054737303456516475732630457115598887744690263475723753410770110510619291582107109979669747763016229153809137880079299564257182386488102742871138140786946126858459384377889603413930877180791920055022823515739819580569441564897963402487456779990618751632436275943230994524043011375220742742441669701927114682100676556952676806503426314068581093266727993615364270215480087543595047770397755303980601169501352515648598299574786573123720624942865815294405048709837557031281408560252136712116819254638878562836242505494596016474208155104309072605627017846252651139437626694989215124420798119731879618918170751678915556044120974255447759577151108410216546558221359663463574283654162423233078893834140019798601554576233619689590704425774096918623918636650895665246884601058000006394548389822590182240981663822351896978367624906568087111209744118507276961818270106925611566487556857162031438139716289558779209346677692711954100806141863113395947846877481964578730877494295180700504951110513930471277778470320738242605277494377383347818951329852079639654240766949286753900162415240130314341689198444033536529653543854009831794620415940773277717382600423433805804873988806809212650403304728627927582397490540913274727843813948694300239515830971168142207891190701817051697126355094601627307208297937714907462768573018887086541111671433533683752646044572223049680948218910820481732177691877479770108879706425596553561590305961634291009380064261796914728841958501929561627024476017600895068208941801869273960954105859662832092883858986887586227045053877853733659565935570418690718677223172613143432069301567422786551381387799805159351413616798355133732168834301227366136189524867885714616152732980376825927789699027320205718272084897352344110615529801613509079719750143997062698414496220183483224110371041580852546989374761544855746555136943329711948204539049933908856324539364402192741699917648843901104849588712656579154405301609311053829133784196685355121484936900748502606487271798171849683158851100163067197997313182957230019447365394381029586066862213061650237260838687665484104361133134586822345251028107855110768764583884532263471427154818141357992637535330359353474365562954336545129478680165741338705326512422249615022328561748147866728536056289329552542545789006227299748153208071422047438252536481576668055925323907632327000676571194660604927342611755025814341829931544204246812391153263421496244627647169319308498817305201374155293102142823318649592957018919520571285686349948306885530626100717976267183851043250423064580786520221461912310606879571142953605123311413148695545422689890384619022197141206548759628710704085387042035400922550700849905717684995009471540077826750992576879181003894113876713887848178969983143049393569567356544892457038172653394056624065009563386930570226706305684180954298780994638553307087141052441127739603354691278275195110066505309998452016761538913056660627884375425565875856008690217144460685966388295515389830054287043176731207247964576982080563440213528823158660405020014010175969140537274226020894138020693068276117825496810847977104665900055571832638036231638542885129043396498113805336135071842871011082128178180270558092068035133116709946939885878661301107523752990686328627233051153376431191839230220969609733190467135742836204274801079673523265962453608614361284651845763534627080508358767865923376700203985585836413789513759767383466101882645880345557919189542695343889392274063393193306284543660937185876272593703456844298967132820637422172960190913775884534138106768459259838849393322926643449875520996660427996972669011143073615036419871473045250395288172289995410095069933967560057240128986016492222307869119012627515636956568251270200769043471870537235612531823167781256133201245119950254803068473018227541450509352590685477880289007645917163623133040931180493039013082270762879918284130404292889977920777249060660926236640250803085453885453390235720645304284740141999283962623002267236459399795302482477328678453454775719765054105635310000237575288738076167567346655264063255805427730672301351473897276362000538796996648269719898414381196523948330912248426439450508079752485653718079737977698240328048282599221737358551575421616181627055442743293305947749010316677153853349014207315465041551585334706459210599350338969486362419969697160020938151981878506773763661797293343817900831223879572598588162588554975469693277633909941097050014395847212787837620637674553046383698940915259735258015368686326917444860405703932726156143306885253761524589239324203665524285353451289070143589870078630772346592249237491251668835052819632988145508225500217102631834620847543375872054041642443595520619078326761743178373733109169842819434374716067565457945168740804528543233632975400776881631694376550242964033325235026319916655126167967613581109564447817457188081068842825875677609519768933460247066182021573877396278198017323925755716848437377770645829866257153938322776612138805861599554201194648431645856430283073511864110805570701669761838995052781861300644666995065659931385079010104708196692071182925043268159619242041179362218242056944625789067202705136240831820448993747321566175287581118809086684982536066782864462113770056422616740841026996537290160328214469873638843843901879564702063030430717352761051907265917770063151601868526169368026735250366781200459438729215410842402251372283258211137973953585366028337768324553079161938007906666938297735860464602676280643475510855229744642638394226976827497823090448513174239697944343739651855575764725452037755735662829858694151135242639280055346943867989875555866897710935463662115798427203020860432531943387300238458744165686297245063483172410936880809252214723405631581020406749965928627902213065968343074819300624959299748013357522754594713626945680926501959967254849362427944209773681445762580952276220273445028027847119141371377671564506151386711157197785965605768263799933059732366665813406533355205018352359767248034363403690225704068222610622475438519660775548986672903272793993434172422478474769228487745161113688478008063231996927712321596589470397314390031615869406909977838030021858519904638272501606092739393285690066937554016255133750883336295901441975945319413380846241654203915749619248074977806451970764237089566062930355383737197164160590731005422656003117522101493732567819852916434695776131828206621018356535067338613088594272097287159098389421577765531083218194967405271218865057329581481061786640219082595637839301599301907062174795693792080343266499980008309255224981405905249062314491881937248339008211967935206300828807870524679711335333058804573583729988027677930668305400579016298310334148743864479097804195161472724984944499356572618869180889795434858997710017126488129658295907111737110153983923690256770878923840514190604171368399646356918593297067844237831240800722654981027828020668950949269096802605324038934722221234892734066422814865893927783632362368515585653803278964874244742756738469286581116869852349109039390275988285209506099506063373431589327607409004383715926379408799145267891578741978127857679977981255041768780279729569615914676910903950853744095234965936609664702282077994194580908434325505617221363588352605205897133301685195652567576207069015353745644019425370411837087205397717223065930014751109771738082786115567778199405493542376691205656039653796527924206463303354412735058863948148865771925670325677778544570912968061898605806943575693022406781496960497551741280605400440200619824826844211222194748250249677828107916673496051299706716940686368593519708191882880220968538538550878927202014774478341805766303702317078141032400379919010864183993753603815100905897929366696691680436129256842391591358581865629665091679064898374274873074971670365301719478280621835517713431163899658421767742936466556314823591861861459438536353995594154051754821745882738357379673122732310195914069661398441345358115080529855866770241590144478204947736159694839845499111295153749021810977709060966618673043897991034173672875724524799272633279207458651275654839768174601961799121743269207707822048164484314377822301705411014977268240263587568237601540597598570387544237278360248962588964229916436404919819390251446513556347076522267207537409074514525038240156893394721830106748620474440357414319277302971995194932569687960304972731691882117772623722455432389791274970166036354329365522261321752855554363356437803148850208412292708691826983869879845549891154940454818263881524316000537726385162842674292628564201879589462359866461026713283899978105555458727442574201943081669532928351247527195523966443746698936353906049421595339011023921191804333422265505459974909148706698689700991860696678879715205502977407233876164112192057437662317780942361563429568001526331625298249659640519237556496609151713509024771483577599929094487341304177762093155272458445708509581770856720906038573511527961674213390811192604828319433381891884446769170840452466567789737706331858060855292657596996370888470691550384579649939839240845608665311665678223849959202444323297446921726335787242400738051739864764573577953004667996567994100992116206135594001452838446526411700337092172059682484715893354776381167527008428723068536655028830733269200349022350224753559347841149875298861288558414372668473160805841956901000383616105240944496081463594977209505566826367824387372461712695547552196160832593549884572922957090528847416722823967839206999106173984220072038485020209949030289245987356887639980012307190690345102849599090216806055043992264087506512633958142157071020994262343154607233535038846483380878027546555269861174626393008061891344904059358598133594978401817889053493179115943274667985372457249210021505174889572782536881142085208440527314466163837164580610862800634855299180233127152132847481188526292526478056956469742705858359398205492519418975039032638932150628493697558206715169967005758787338580442469238575372769259703055847985645585227691392803990057061835172907670054591843534875238064879381823348419969213866790757256422057664054998305595630276591296862325383429852982767248469312271396312854680002144327026849262800355439977073125644511714306384541829169959151836264589092191169696955463618575855479907670367574461579047648431192475409553306417013391567667279984074130262819839578655776532543255973448860097289189998248891535292682211701042812849581632887798982214207859314253145230672275190984789596511279249585587681513242268897392229897882704690067871616414114459989921376348286796195834611294843187443007269618973583385417539737868796989875920580073782696984947706118542165693493495421896585400677525609216869226662594439732694812686125842444016420161716727856588768450685504824947323373402437293553543308010334131860070260666152252660794556580374211945728628513952241707221684978811675562618146048684205869247223949533376359936884259455777819448374028905004415281387992236532941707203034219445326335228273700346138062625292452157894704203919825826500006633478069440797728316024657502379989806468395893046553974893505825020300296127689747770614907926134410083127701484092861361093093072114210715764256642750781095902645185945658583141413422389047237884662298130392142391626656415610666850953257287379120286577789020767348794884697268246112684085710879036160612630503554190612807074087004839724974528527802612268445746524386392646731169570393500756453078390220606059387569583626842434181398708480048186424632326922906159878833573759407641607786280325269586760427171484281550902551227567476238713789469255014349060379221772283669788402182557914183554856338401631403775504545859163952463070440762058922135786590945847696399257262736001869875860094970509494940504736985963166421097406026797052051092995014825388613338100667034151426653283370641060222475015201364031906140090745140691606688339865991892652552411014715706715986507459594063632853811065980005161944200273653089450272357552601322508803593263008476639846160672187837682051786428680993784262938638655054128479092667156629146737473425726600465732265859734152654916740542189233033791600853419705702085711712547971720681225181675186358016279088197278312313328311401328044234283259098692803863082462827323055323469682187035171059943780138928359037418724175099015971644106196893987833187310434639814759751221464199790207728772760427229689063354722381926152712449706869145973111274312976680168221427964357506435719366089796338157505827587154739760543611943365308637260000895254139477919024456014764321797864829558564703945369965637572138030410128808357300470548376564923098414590827249632426848497050087366628270122442256888889722925782493967834327256498870668875649026023881692116430205211963294287041587197051021833667439386048796964482118287789942808508565478078204074667965196310605925774170510487585431222175584668346204714506236137888032680859889617931134012018145052900244225199141361281500810745159927672568142210700505040963932424194213262994837679638737243353984847104008327228719652168034879598864860811331531337372196886632368746600259590871097161850295551873644560953091689144960641083714496316489909726343761791794164610867135520174470526366470137362497702527199487569598491277912824383579636896013847178576274277061693407010354861236765027732818435603195588544853867105929312873774131970234073147585197732520630075931801574114116088163008249482123882979212890470496888474010790696347412811734822279111127370491630356344022035984136129765570105845414781563880937816853834627389806602437843717260191344274259682974096696829256063871432880313360513424078551622832585313412519072164346680774167619463256594997245745865242050960310511130147708939263022442979014762746577951289932596431739846860522765558943406156898673712221433584009905881281656351544770558417774339601389322713234549765997102359901288882194445478578628376491160802727078195861946566367456253885680579285874993919130815859917776258973172168097040165575108300181176604683539026791792453971994073417426392290418807968995871213595679520479720804305159225581923330248653993912581280465817458287721925554697643857815485333878315960347641415048694038256846899444165691462385115290529122306031466293142417487977623032373403253044133391787929025128303426233181155242311169418356634417989500626823183550239879166273385803702918923996486521163649967467280791547249352776413967014030081914683314335176614649926949835984532936948534682708059482329405081726573883011608019003118026700901073311912622298485157530633731680932418666401359784871878337316519071051817962519075094628896270168087847974498295430017930000224894960284507273025613371685619820527854596537424139246441499336573702010128956045039052622223981009266624021730344276590748989011502786460208484330508378094728238526668011839173434749421538902231153037007188595468985514015658907353305821041880801720621335247348168843694567067097386829246684635267762933705658809323655782639014111290237786522109106427721543569460837640617555146056449326636606052423402964838714617929098239153789547043564506846718109684938629495320268239063237364646227424367165009949663270435831825155284625858544222777912995999793216487519974752766373145583054811030485376238670096180817524889788178775706326060641652389842607371727985082079229193570335772488015570981626733473536885399073640329274097146181667392152868304411592507044590024866829701044499860070839018395732913544712864524851676144464475554925410777747409198176705562839589804263282666361399919886375813535382706996325085730358870168102893934460268876714131628094397503950021744377945235792670036781027038625451796591204149510016085127088834975907771437922003886458329723418589034047756984223712739274929284226501171498198143445088596625824540479888569356253889851753244031118365926820409234935086891818183726399319955512634063440202648892930145148581521977237047854925713959717440627211076823099037524359297256315508994065008509143495848381352210153984097956842142843588006627966366262524782609039579423594889346001286050035632533111283054561248116504883758169596772186082186768828051355991535838949291831233658893350485383029381656117283511688691567915778811600854460167011222468870362544951583738782454729029087919457320183736629371053287689716563857087914737638719483609097436248231645486837014890887683539482688648082995548192166014692279968198170948276681284029053655027517580396728338203040090946844587012515421019118008759342010904687219502595888558802522038734783012382106949385245628456782575941296472512271790228548090866317146601000317823141481365593768869890796830544991049684179783741764719528406405989811100260431107191430033106905095244918892655994335349625836309473600170690839501795050685589200089212800735304367717858243454952176619084386021463245486341324844603075616941387581995246293683424987398806242428486359069363206220242028531980389492398366112833519565417192296733314407118767131532517288409404118371389319996841518204803909516082120566491593748917431797444268541818655815472516660868992503703438498469584672757919114426629097931754681452669464991187783151387742340779240473457973927680380594913872609154147997764163920690503815485751460034366082771160180883752692206015733198834309846295336098093803817613886819682927111323247644568672267179641902833763837825138919596223469983574364547591261197385777059729554434416758858286607205490829656637806954870191322277524557782370621832255868614307559089757057360206492863381097001439612885255639382904232482974358444602361834843035849951439924107652650802569713917849538965090791115430484334824221449294986641261533893726861736092561939684808108702154759278029039532076263832639685893840929387131958368789400736890116916041222524426027720853560883905275869524582265761111866729580173301944594300837587161418462987679376601445321934476862229298894823171942310242375589682910021232939894671516096103826907938487299138253141366293898219735100572962870897469046486014678601602383189323956152160036538875233568824200510373827413867586610356650573157854552019233607105060113109232916043818696360662648843556247536662217747311893426079438909908880005270563505855951749100283211587828049350184910457155077400842660606403500701750874117199296859594408005356319007824377578535896327077167909878978325541431057977607528362219115540584555715742630155380234710746397323548814790324710310730222802298487877067298943097029692474856957990148729031983937195261291549875081562821068132626884400082095369068292591034239192469392887783245470351649977542146655846709941081930259674072402536884666833720339976571718894381964034215060590838686092483251325201992167356695171336707317746360460721157925270904743686040949925824305774171878528549465564569743138072728853639006086335697953880674127764701575107829578173473548573496384026698278903303600836867552802642079666611685906022367160502902194774884811190831070121033861768731339354710142704587280728522329155207768411206441504633839965958925196327167858431804898519413308732597191438358190255789512086195530274169422086945182649175284615195139202992833801391147843688126367190177453394394619617560458932151945734844855934071085673872319108992127046413443562027931551843135142802809907982848091406905650150624137394770320779959433927908712727134495328448081530289901021110098907930699218924651267487130674098795235119551168958168723535597191308471153914539681015076706221906190431112635491831809529502858748153847983253950992582751977365884632753286788752142528071707562884623450614962155985160944522452098466845997645576425382742809772692113540513802384241309819389657433933094467713225751254172877458432381610030484074906603023846194027330626145899957786391631647523272233680105484730062509733508612082311240242674079559711585945756199009274915338590912634425056603599387354906141604057747775142962842316474903058063064651410300224887090172505367937499448074694076400821963638963619999098154570038250870579859203087066815036194683450972233254832024817549124005797268184518032983825169516419233276391180816850768760769315113931486438349842145939371714962298102503488300380330624829918491709013648677056171143723191303248727928001264423294501390471887866897871958254546587395793765666854230666327095006798889352635462632434713239176297025459721589729873500493089796928541979498600045683532504012108246364802722337284528659237804241437284472852631488754096674690147963954014559951201297079210580669259121790712880829382971203448456915226844866067515547271555763812668223127871545476101566110630508504379688385413031199318943137852954850433897490407302535189251267304208985678740482273599058142511239691824084406830490129374098994627884795940833546369757261552712995400622657046624617533071707234285016873760434925829334390773357207517813106747682142603220697949934999789709590208431600802437230333579517648192051595545403312725791036240739970155019588607846247522486941310361067788794108542402541904542927301145692133994652527243275590020967828065201074859352504793446524041753329741561557517044939826207525484586068740678256256210234516041611757040894491148486753319549010351300219824093839376127565783680502470102744082994228069776281218527218140748886267545843476656372918865918963879599093514699570773990305128563226662502269629626729076053876500515423464650742220967289941871843198456994140889323747865705894226714676170583649095376585799774499671650265876368286660650437446509984019588775199959927654433484229003444829809261003683371266023063940243687208100855901882125731301374591636745149957617861962661648286294205972086417657660491146191848865134018569562446228672483991001337320312913865451480440216464385832251606471494982935022031249450207896709417191750577975892145569201024558731514932593419039286394919361138990025375124222838313408660662611183611520174357618735592647977664847442485911946351203789105991282242139308429113781544433122685546362099239525082539965553099835225610956781283874145996740324850170363753716856221490837179346326605125405584175530317264484480917875546497293460812010527999944412797151867639679552884307020598983153054129543018488074118620753142726207199640902679545171090927636744296362540060033089133711523919786227600911132143799278289188584057915230011178344666160499669492033227980673853884790856870361640936003365277923815044101596937754059834193382347360902883927562183499390195263963571844683536122581785476244445344831154923008816444046577974967845671193524249997184416198519981981803477772741845878434622566668165975098545971421291871146033953050592825967976597140272293940417310912179835678581500146068053441775909954659876893557177487957651854939037370949793283073632747682614202792257501799904971895234164895204536450496192296127244421498338187772113269502593924460503698270427587291419687369335342777731568467576720191466762842579039800048068024799668349558523126958664063391250517029076141233615169755533406140916844002436599744925684918490130960075913022181690643896370289206419464522623984303664585253637581263508127519976193318484495911604031826362618054671291633640834010810465895669355383316316130525136691964125462980625384720556072772130477194602632911488910359594880377514350639722227533147970147214994359305853583654219064684412636279809200815200487272021339867822828228079042681467196888308397252390248188639864495986630583302871368100264368099942624732610096302390468652407546943048431392814539135891238515290416230368057149063825028450778089678052087135414618221294705393505106712660222901100389659108979900695576513301668969123122014442867339206417597630497046076555766796071657732549790923856479246336167770762257799565249409789696663717242636521369016480890736007633090288311091678414938396926708273198296678527341542813494346522865913466216547182063676262693854706376560618150652444038713106865768766247212972055060746765266553365872645213308033198959195016452601910256543253275590103789270092429766141711975943287665569664269027252237730000085038838005325344270647360801540722674012915486578444817414794366529574857925242564178481505974022190091514688533183297731548599725038916231558834599139429590036667451471398293066497149617844827174362007060693574965294787814562038468573956795015378666438790352997451796114882295512104116838868797248028365048730755987363347367644090174130795182565955843995463589445722920718784631045271156359050661712459576600806760519321531568112761633234414851508817999364170775470261417818076534928468351898488575701320496869391967823577552195959855515294877116773440407732666431602477736824682859324038515249217231020503508203702957120694725181877815729316000590988352773168545628783685810487494853140508726565487872471216463693494269415219274711678089916823472446887814832131096008370505393697596860685235418897391203963628405316729277715398594421545579330526574005784417233117409135936469520050751621983785730096020597491056049071875659515467969854954885609293045826589994571119461838369810801248824828109536437308637514019247247084715581339662776222698210043225643043599511753882431433677052673635288534352398314276857817276951900502351946820846722466655679610391193045493613784914877685752568772924447325721230644021501711717814229289073179655929252895140651948188329305035221695766883992082256464599160024950815333603896657999660573784020669779088228434941980104804211507129869354849994791555293024117981409979234032246334174108180841334319706735208676847072576451119724066936331868522526797602622594662607692411137881151302862530969753078611587028701815089473360799043724635166635974117185287960229801249808882700645784077596414564426124145726335967469149231659986697822845456948101068085750917684849943314397788308853076263202910724056402622077922378620573372584419033444146777455090339455885980487474716578340056766457632813898672109273869862228873719541754925158994630511554098559067184491878122602418353028622156999995344264727782272524748576144017374710017517941315968953159818486775911414846121555910947666180522510006122127036969538725744932347785375951788388551090173581425577660276844340648012160213151619775000311455246826453902324648756279285463306668673819075777175627181290983977352460043535600455439843173361436741651272762185089590646136699758049687865348820339313440129383602891883048537588287146646518327014726396250945298023613740233184108032647085721500147025988636476748511021423891642085114109500669541738307802744911918334380230708685544942179998679690711206125721837346784442741116787072794891577289994036895129991326283859476949765145894107743287282456059991978725131323697037739108378504375055259675337491922745189975571803910920698731639477800708597577448894320505529983175907396338169168549644278741240774385093087354416197135332194914050656722683276703196504666621242875232036335474692806295446752332240354763469323289393721014611596259481986834848932055620845990444322110692841547526168753341845502224293872692075945906532867710734687328984272084139606488490243768527254094401324055396547039917894431347676468270590652913397268358897087577644590029203480408460161440947426546975249792102641710958912590069904581625803813459184956353324698575861124099305365173301930094371562483769217877987405787961232238054936491675639478371630421113151976558193995954862357899917559309891771422957880060572195819108656657934800171119063272662618235213734852906444562912765036513106136359655726980415482196189475620949702602227016886753125925145894175722591384030829142046174621938583242423021394967821105628966215142725741750473156391690100897399419002721530232906224351462585348486900098792135731604359314572892036238407452048057233400129710167439699203588477465942002677693322861191285462252390758272862387666421059223894506152917752135499189842612971491949364755984789525421222585745296373564300160169298905061768717227338947723429509700236077578899180381225218552355396950152176060627184068225195564273593512197484645318590517106993588999568829813870221225035326808351339858091232350812544766232228876851921502868534605106629911464563416890884530364271094711834215083035147209046068065256920283073465497956787395502453529869556582874938602032302539105504909737285209454103058930315396705039147181547695100998548868466289803562189846163897559124518994654776258962022757447156670546850014124230809694994161368264524355109529838269569471804122411945898078098562934744346327215162547466160689212899367362884940846034319226191101380213365612597978732222291906355704713340208460647029979962946423547305183705533650075177371705128523104358954394780286928110792357922565861327218489129942313990944453795898011312336971407931720768931036475893894418854146979881499585054370594218030966746215981540502331866596106791309066055666462990431733054504235559273758950457793676484555947820382341368390731994033547625774200558958186962699241417720103383913821217572402306559332250386314057174973076772468467372761657869837702682179806958859457985157526439209729722835859033863797066273989625810548391439191673853022239921199336201205690146655625117303170172405499521211506937183148861643858687326035247849400583374595436523670424316287736598194329065052452354167004672207004741399330205319348569842098890326625195131786548799619918470077878528992691814458364612822244049711954898249728066496711149962184963666010381561271989643609425587882603563661179211498740540318725003292556719890609754534293573325218807908148752012594374371586952055669911598236101531065788060661363560611341324885927507373729689110179639003642197625798892712082211430379345880416313663678270295418405972016723217090171486952096697628742772717613395861829515981210844091615118646847403151514807131161443208909654729784734034676638575920223408907410686615817475377641454332094586661256645220909968653803712790133220243083101306335070466660908703217036377578441965623920630855439387410532950648054384486167701060030594969311954969253760804093428796603394747806394659299752844205120923635513716872612058878792829273938518900603573343779844953504454587973138433039367941910841519449091349483067271541686155706793983167698605957809133628124159766623099453395749460236172226758746237448274242511588418767074229723212849680294343292585962689368417928235918873300460491474744416107524979863524570177216035512667457777045063640785015155465249442629268223648653363917207621261912205345184577568805004472122609305136478384173968194722076479933820701766514111080432193972631245166692487640051605417148761512469808504183815261799813145795487159492281823338204556121285283277848761780071070018286763382289065173726218487860471212667886389204175650791163579923918435668228880021860012340913543188703435548464289378189433730399238602772480435557814018165908124810435042195557008318538897300008437587216850847746220848506410920457929945753935566207257742754999533646952885720212418916513404114715636048259345515285244835585793744933786672625287294396270719285889690274636606881020260779533199106798007509360858796137146259176934418051304249032778867431435382729345434480402462604589548287751316874445128395290148315556680635388293546076533528454074439506831300305190345395538480213833354358306781160419919126581938219093598834881629377764780922663298904287457076606369754134657700625332431060852593688857951371243717759640193776402365828247229675753778706328900163177552174049027309783473529834454536171168652837246568016660027246711266197177770091946585960464600276370077137446399132386707913838083749494545684525229168254076612991975222544673275845825074886925572876326791820374989104140214119616386176321334917767925745621531407015747601644984345504383278952608618280963140574427623776159686423638067767495076975925135024815174158543382242055876026544257979338146399403975204695893133129966259129539763242974128715871013881972201021397374018865641802261903228260670610442853870301475802960559235927964173229314422408779974606242657188641420302667555142575549063043238902145790644969299568768955280859909510596505330832567175683480390755856232259508153899995400493253261362655739656082953345853300399567633209207798164251715908811774951486001708489877905602715970660958321423026017740964568305782103442403542675268061838550211350858454898586642344040260803452291104189092337367976123159032216743140759992529692072677606465302703413106575558405961508682067571324751881699255127764097207627662647971762020394947963234096516304351294994612305954548250842225135833928252805966370060979468759512388380243031398933098693160345146921016192372307318204500891426272386823437250476153494859223298346229340561471044293418009415634643402103451981632460513206763637917242499209371551222528345571402850653174996084947392076626705428187679643184111164568738823507262015741252566658569515556221770896844890126337985016665071720808661379000789361866279984860834034700839869465148207352405604876602056638947418884931703044725226941787258296166194123729413756395251808846299040147067864195406274358145646431588346111359023982401329436471384479418292403835964699248010889076660209314635612138476441264733246064381101470244615156571020355036256290093401434344560041075322396262616320174606056668484514276541330841298716607533389018825970608341959754131468781139092730909579314188033779664975877744402779763627486443369965879034395186231346956590224502042011973936267217028144410969603231057077398363048524962476418230003525718170862066730927085778219066335840822353927116787915633338127462257237004077377885679101512989133747971642203478321988845362824772851992682800815983888246261230414069234588806260471254271804910264755339192202831803540649972587923269862475650687016602711255468006132367797263068465837112926740758805654012692450816120621886273804219626447602118190297954179384914729334752114507058811770290304343836471399714764577991441878954197452564898916187883488788241395479870825915771911375355654014550384330241726293907379220891020407948597514506677523460584758421853301376282929453924498753437376751288456886880285587367780472496109924651029030414564160981783937652035782301174023297426670674598383211599677082679775375330819164127324101310500802428178717522625277508779967378434611015618010912742960678353073663945090005792105364708097354531136484130389498987831134399653584174201413571706037034185974591401193211197132702336455488266955084456395355148037495860148062174704928191314341426192869638429529791994659532982778687923086784344172548015037920290089562833909049332692349150341049232175691373202493123585632767872294780739306955401441706057034574724343187365864547320090152847839894404016093655373474483585104031276653189671813559084039737821113839410811431445227647047444066493208189153375505435242950967389092339346421018664726131615522710809153999154322200004979140700273308322775437468335322729224868051339179581152339918778754276302198282697599827927230131959175601861050301668339094775065831215082977548536397015308867572198248883021222588374220016373240760364630602586252299737400961165501010602111589316672223772241888671548587513547177686017300918931374420991762926927358390061877142698211409139117086398977051493968266697169739070677761636148628797735101543330484529623238170990790535884542458621324437309767980781313453079418249020688363729781655248885352088903306487942034727914326333817725238032221859227632356700260442813529984517038321464827038128444705361777731691785215572473939257876674763197327994112613480390173657735290452594663591145765817444717784841700619950343672933990925358912365923009634595349498867467203189281314918137128307208069722968919454672004108196914843117688062973432641954341705432395545691652231669234119378276100579319537580169419899296585365990680233899829951881648300962985925727390721614492852550202671829017112964538101257311712552289407991945037958880882833596616197343180911467162472567642923471697384860314674877043150906531393170797556174878162700517714978393777940843273350114846565444892886045523252757736724498295267693181940016764813221776674373474813635108422443519790316015670528137055779001871134056755745314164910324745762914930203369018082921916877492232233527676722515034126565620609947926651791565566748103838538506677946863989130914181699509685116272488033234080494635669203116257039250503240722898089152278468873594482241101426454982157848485934213708281865869061497896955176084810235879025592526408293637980994543009617244382827257287751807430941841098200725427461050087558486262641358268830680011563068756096846609750607828396927671418911528048750866198008451396585569414696397991336980339362945202074260952466007367438252429793105129082899146323553139458047711075406882513111640012828195388394807722107369671745713694372239160905814956217411391546092143218239305407951534003014142530383468588922408378160990759082839922997825492672941390828164230760906120548233622957172745686329653888837396376117071873033504559987480614961362189874341112156946657196131979094306425485022726955033301987024885092119740038139713380809599737881855586712927651591772306602614202163770977572081941604952363930112078212813979483764472806330097683558473418949431486337209713451363009517408009327696451175359724365764139411814637125907735575383412956714644632917586348706175824601248981979394751114561791318378253939106295596948815508650774812146218480474758652830855277287841925276044779265548636449855063492707951247954351817953229953524466553846124923761313745383461908073484538869580500144326564317774185320599974410946202122156475713787754526509128223541176844162951536747725721144927214842034579190342632162602366729643960664501797063781235862575834739513560571969163173330967148097019794984482426648602990180216946383676447149756361418112235134796117918757778262141781658909762512888843079193971609250506411719335574783979660347757632533814354833996879092451596536825671182727968797739089691930769726373480052803001019140263703320283838198678544777640614966552029500930308438570523725956099974123376792786400283507438689296331713554586870990883502798338192118943434233121036828591195902053112348142492755805028683952785039117770782206433592589814515090661138801682945649391678796951993630322330781624502401719946938393698682644612030518383548537162353856449276844341277224879314369464451198770502505957898329780115736117791879483599605595004758540347121221991702150991250028911497742748792945199274925793969155429084678813497832144335641846514199532961391017795158656100983138588482043979728226370695347198328649686449815355985610390054221444517513564561313279389855482681584176586526657607859419952224540907248586804109963894014110734724274310144620703666543896736715313639159400258142355598644562753493859473100632029326998303059872664219304660948584346591509603121718616022865262676004009613193370733529708227489428477743215709218669127514553913237650071505251069681859270661889653074808895675797508160184650385987208159717665541303097107016652238602083868343626867336346600172026348718355971484701577873524462900213549072267240681769410873063781169442140057862708855779241274467428747264520401221862295127911554092858204971681023310550233195860586412954063511710114335639096394045447339927291374515097258484352271737807574940205655326940104509729697150784130663149056848826850683970612944406722875516267828133538918957887250743066726729369237691281824003703248281048993530553286804333090584557303148210565595417643641890520682426543314864276348947171167068148150554558641815629298144546593971595384986125283223237956228124917097421358403817967141863768189862488521633153553791903728138092356765231219901106283138464460698940812186695525306707671341438729333099743520035553866002409604320723821732001348025356881730469800711677638017070583245949262740698873636476486471055807182683544995440865421282454083035583739873234879490487509192065831256025595806551530565117480780402517116954720765066459054284723828760956616213174519791403155164859506251407653093297795173494952591984005445402112005406150673811573509133678840358083403796058790709567337905605716964864235197862348620395305118217442259501027331092253976974640744665455758134747310577683912723568295212642199447229811697444298979564609850282088524725112869175142378806239446625353979727861247061588377396235661850317221991596461831646911566086118696908952968881876372837678040452611559800613353106805494703115287836094332868661725438593610841169148563105655974600773633848625572271351731839132647386384852285566556646575820846474581488082545384235922393071693206199948919787523126283533664927153606844345016789317805479381580838171310272785560961502178570827060226356332433599306727700542207363903704184733208211537396281489362843872791979687543081189756774412150644657183292843398863374267309529718846151388430433929391427817954550628216325436368059088617462085043374507101196323447135975366239230123015819000914014802959460949555853265124944170890228231381754845510079084863964700181574821350987206537154364179404233841222689982249659790501053806919525625202217158418066231724595277688830701433142914527790144384593537936399949288080549815527929966835344011859576898657109808221131349710546412322091813290226891314374740650569429690848702134853891320344819384237145570998146147175360732580130742922956814729008903393340122153660594358914722877604275947498182145393171169467071842392524925961100453532592677612636049555779437864655617200675872811793193088661591391505097867461991648320560348120596440022979644905267236910112727275011481506602030672140805972257613661637203181582441184052231984754437608923085607032681071379185578878349494750109730992286210666244345896864504544367579742271389951982664529363231231835779223321402689726364367513543073480346250941619949742231707991635033336264102341747387398322708932714277052543177632986555009201011268187581611241199691407520036813296290742796684830659455743728648708624196082007313953033975250907754755746989479878357433560631581869504371360405107145426751448986139145678493490779708418612047451793969257754316696751109214881089007344333760834551478737784656605000319295327639366836130680169759743045077097207884052991990372026731714588009669855217187919972671034416746321980701929544576119208419933099899531412817145521134478244064423022102610200417452252205161202692043006774271801360215721166279858985336515094533858680647364662206949326463989002033631293462594157336044388667877637778839660284817716633359576230469751193651122590109418969950291700542483831399008639329252617212889811526026459669177658368676686842752309857126795620835470150312963030500498737334265473924153808527750856679752456909725204238219240206091183451244968947791390716119768409267227133476416295992057813005424988160998585420377183941981180599577781550065018386058154009978647647098521502534737722413241666801927418948306053029588327660971899599101337692636030906417323670740706285641062099395627842809927410030251631836575137938995939711875946690503822792358420421651446199054377759789474779355319872717747817909067785859032533349092401424094955277001063353938127972544964574218667363615096021179252876458864585292920671993238743391975697408992156024233591819311000032407797398795362283174312591037035545546280768119712025300386512693323909098469729203981154990904278467642273655338385947520557474954947932812839968487146754542188806770665990993933832632660763646476187038400681657340297632177388484227519659481729838755788484173330414730978193563771015136355839444519448250227983188348161772655864985208265609573088079795607449821955122257831853091555270129762099914445690960337258552078577611893212659329147249602427488954893366759820340151430832102061588892285003888494978793166918507285201848199827439576167711146616092022730055555499719681978974576568082600749432438773229670379483759658858301607125762579064628028846271986413413790595158873108875769662411844081737001061768171440526606642079117947585028291794696951742548219301295069338104666956263478751025290007304391183425326416651396930496428731882088075562448014794817500050403749081686391051459212135122751071868497288478487247676780165989219567820735760631118692322691745471359629080455107445437540914315848126777132566638237775151513409161923858821552520517300953715643668116867482933694238674453303678406526665130960337233351505051285554968199963574460257915094692789975734217682832951181281103665761784529709383243908833179096352117684972610373544302768768366335518314831257112290235326875182700636905103805994405653688583010678677327688865297661593688000701828187581129044391698013942535146248934576226096858234151482546994790813979181580031858806696428842329220697363280925216084005597163650199770779387123822049020702334840814935586489382785311806552680276020171409573958944344740960069087483235818908102737561056096924702141303549962466447939739468096023158847847897061852934262708027216313857440937829302890596272458914815830946199146121589012547682305696142970346852286852381894532371808007498109145009810530623324630545560981124626910774213946752251716446737699245384466536728660065594299936121612060229930405428480483058819366971265538918383372223677126210312959451970683994905427477521687522377531133728193392750157840840122139340928138389666472172024678583683542953200200942514091010073006990978053753130034102624292233611302144484615339920276003504130006606974370434871928498522585164445427676166629045768465991722559259185760268887057368324405975460820599320502528303414265997405634472107724699305538235726742854126736560134804220440282850200133858578774862043966870339228688257346116392737871801995529066451211016106166590011297348373307773503338536832573756921101775652579551122942095352099577623027522103433850952176377716058237778266383247498513685647926755514666569341758982413867633355238181493439021228556196193938014011959208014597706379570892436814296357819957640014293935021389769308814956644725837184973643497022898934548777272404316529557332872504514231286442419575316667283767360552574700587965922085056294960006219046921712550497931876147099381689615281143159540314352587852794831708374850902349765020135662552390737147100834318826822778980566385336972622798940941107169708242764217064692203754897088148800246405719472766472503066353258187462731604061623716404141021579585054447681970056522248146108056188239349118772216196390556002378003196406891841020663243667664913966028116248624293595313055523718944244036311678467310319481707346976115486332700957145837445695894931935563417559097518355319310954722000948227501878861549286160058845451085164652882578925369056424081513026844545363427759171174462262847256320231897658794519824708076559525398462823060954892902218003291281701295627979671834970630727891765772740779572494693498516504871589483157656111594855829286987087494204438445462371260317616266374431079678169184992344665402383976483847860437545391792732842006464354858822585878516874646140491749582372877503330394699021178028912552447661714218540851741217077051486277130434673375214304084052824560283043417085812406817681691941545669399573013982145659506153631996262310083454190101554306512018602938472240717023977439593300484844757941938168173039494960434573357473480146236903173745770912170150297267436604683618922951999074932194236077489694583105656190712966175090320113213405949481759939440763298025034354799925880368541726605651813923630332379513526318229464942889816003942259754522529204664337259978373155188712280904792571849679983136278872043117028000133813759977374922382449601573032610637044193907135739134491412513743031651011456714340503529157703694232920042053480337517293877007543337279264646710643341200471277188771487302277554569862740034998563820603642418408323023131980167982138818092505133616312584000757612058872245710649014866585839279677681612770050549989589922028957327530260115612765816111883295848927130588676752739145433562828146795123611054200706284180756879018444571404588802249967622093945822727668522543814141998938785310315785435825069463238924542206966905373751031159755258937379890228650147614964357302122290102249853505354602599853551976376030566529182090875614239038475848676740758166046648345891506094752698148478560050152407492278172561677824163659262779045673225242988880138073128451437480676726509947908244745006654719898404404981905310194979180598638318853904042619706861002087809489732439502305711388128907354421940628941319367168393636974676518946110771723506698216869188522577877388819115410748338353392149569496929731033818639131813757045849206093188251814569135360510718577568381283451316815854178991940343630439909667587010048774291373952407678523439168418357626175144471654602485821730194449790097787603241094074229038144844867234894849404173382893505122898687395221855994847994775557189194789219172976692331680285395659415330022490876427515973007617988764568239450065952629132543880589581273269759926371105945346419160697767373309724386844694346324997185009416774954018507467273088789499844412705704032902314604857855640531284728824155468411036458748726189723588571362129740601982257629981675016893977649463766724254686463358665707249047726811746404675050220568122026748394742795888805588516644284517132999139026503958827747782488023923241831190414983758493198132335499835036628923861886291305901733135170717016613209266377723120763267631615780623236269585138775040171675163772445320759207575778705150083388885070496797325136789735059429496642983579567147712445379819039732130519764496653395073724477597009771983795300671357724282240586978694148332925125044812187580191089808675818229811498806232133494151742716602131021688258199392063553590974749133599978904773103211744221894455926675440833119492954360392359072616372672328916835430357146245250393535305108030525552681865452645725377200215157629235762704500632521243152613799261485698505941118305439312570839634688267756535153968013084791595603104208774258785402200567232821092676364774226562433874416008449808214485587478348808679648264084368952461558346094054119063251072394293240375201191831708174164235303546540941873131749400603770752831533738617681253778109665706411366440745134456293961374601109792894292437992547325209890675560718506112944272761904400820641669498941224550283535217717749037998166472718456067754150163820611184095297047273021839192042516306266923953265270008054835997278618078898653276794182959960090383166383342183326406385203802706234003532970280093326622549566718226822862724943051252086487770147511139258815088505441192443382847032128226816431537807710955353187900176856566896478541829385261439714669052510998433407981045525599590427024519854482844278719547985805117605967554717913030022061473583701751417791645832503507088304370128122832724050795947388340374955873792732103200828965687669384957311292851050058457823009050239340055985512207391222765676912694625042693029729885695932905784605543394017159468992681576912652165730750410840896356590927640416084142466473269872791978284926091453129094942601758822800979541801590722005137420283644677541804278745098667745775897131282940039946193521096321285388126037031539815234738846872917320680414589728299507599205090375872666740252896993153596462021677398214835962270686052436848203586819722040730213347590855876175610103631116796009091523988287918301934390084344413697164801597032179997898291484542286689447249216987230774693518964796615209680301016644793211611313316655121651926535439659792533737099191988529104516742663586238954636429625934813241945411588893463390448754208937745620901952573161407970915272791843901346674807139532436390869935566070314660730059949042733186875390889411088589915288706313279341274749911822615311500799946833553247114739129378400084312909443906813193743347742250415134538401837997763059268303845832296139911769438598796143372326245220173036825809270545642867701479083971391729162963204522569400846357049919962222447568241916496567875905500300277397386377009182773876468322912058625361071943609645038781316576518199125801415041193021529708963757057771098688583823802939364629925839536298651746893377276581731657744034896901712641881839348960412770312064638774754975816890955347917690297410384053025001903938464355513104829004491745966000122287600432777853183288207032285292365786894473829891354876734145435326547867395781637404431451702130267452005341471387186090528771335244382725251792536966344318728016526969699688056689594717114824687064356226526187719674379294889557344907798326902367672253530012932492970259365761259344506101764177017654360586492971016776991878464228646002343510725224127105097142572414469243109724785373690388127717214756309403901105242455624642476733239299255425064017200508114226315861351414559267426984288744932871183032934404944577546566476368897374777263831042209401877350716213260141634865443740953278638887762016408681247604961664297159356294820262915483618594086569282517100145768346499226278742080469896395684487740761246922885320126853428925328618815010450493576623304905771020597886211358393168782044648908804058194625175694966166999053462256300513664464610208580771779351822902209639733682629547869143704120007994753847124964489339876297415841615466455672698864841100655282170021005057604698648017200305245938599057523300076557805055288393856779576623239961644178759628085203508382563854588856235902893496409880400870003279450336501675774124320786577858128992848758711949936645632632505839858776493015721578149073315402998129828484664817651037937679842613495913695725449694685384565152825533515093738269096659284556500747226245186247736912963857009758413311806121188219811498466285462703018000826988856992386422356598942551146604354590615561352743657904359014581613266805149589529869438507748745803711817115892428432146113196554939593283686118928034967273566471894783492309301515028778066548653876971312437312428130618635582470434634841849065472965910837608515918875525973030446219642481327769045355771088619714398411536094298978626407221553622840192499037094049760777284060088126809648247916251401641405862331317885860008369129551269096722357442211360454537819664008235093482621630827870005537720545081512969300241183068850127672030531084377944577633431155371788217486357624064690026402572718412727833712887784237930904519905333486003787552866893847324862001217717678750198441704759831114379210530542086612657491524907685589273378433838374926023173269822911013644212380862837365786530474059027030890414345011198254129675898790458277955120135381644518130016591137101285980275902372318041107225088329010270522827474718937934167106431627072194167091859229491871884147569715250933889925357094343094240527271010178663025553816430417995652392155308764129952774237236131675356164132444675978306462574065447929259068380545867705225281721185538368127344754734980590174640320292784535081916484769047552192597137543597167625415077420174464666728420485536472787877954880436735220610255819099968818940980099266023992815176247839958122252700664054822802468274056278307075553367997659901813107095435289665565740015792672642710128219109753046549696243073878132456253435180763173625653529723945148786453867333902939491415095779112642599911148281913945680451424009466239520244614860986225005163479393445336983046839694621547358737769927378410782471898441345211631256744598525810478909974930557401389725603635507464357530712043760260731309962480140852655828698821789897354401485558616520352390357907141643008013052697949484648750660854815346523355360276810901398152099300930599519125514582291688438666867015928020921180072491020571595762849418030577873507070419623200977457511115350230065775215644077481018825262449471802438899319813883839501869688038471050276520482095032579065376439442557460903052021464325968600104413775832875420050267893086754447991877113982419549473537014446930473818274144636022025773925306015054229675643037599587756548434340866859524748546195369690318412587438675522248153434592332133817994268115460339660908494997295812055089668632288330940577591599917537331928555514027861148802648725276320402226908430852594797003131992539066509707116256674804946425816470345575643180732105937765744984704509939714801142625591158937280105788904292417614681854026663916501828559275972330918109297335282070608460235502642848227579303994856346077785462673269796370197306397190075740679574104362333504867335935558683828156259270468753948926804829198272978762543826427224673355211539117509215867355324771493141986763032372775255551072285674976823982969505437383442355310058607431759688466359504688017969793632689083607641756962880160640742533752923598987614148998355753333868762762537139100559433201813027689005828171552813010297095506626547210478825464545286501589402748312993836443581004370287203009154103234895988551309776600214447113628863637701260597246725550129146003755043551092815386874311970074616114758425725731007190922412309884272672848477188294299436678079539476524460845865796954688824555660093987151341699062374252049719827172968977097186574164586731853543527053155101474529959179216532019741977080133501054934868347785980685297769149210744581907257743599482820365853881469367646041186444100769868169537703702450279852358664715516333330849192978128102187742563103920524168778993001127491224032935184778194762793963334753645163652162417637490687136198062829113632416124637618712058547306453858279610089873571690714924512715677986042846708899595422918210662580059319209820155617194525388982708217266021366333458014227706833327453567463418663118597951131959885990215491127431591861443206726492462745323617610551294240015152094775945198767529060059713767782352356135666280337734215404254719001041284117155845849775559788477818260820994763176794926385661227967502621815911307020472513576445311623924695386504961473172628593574043703879396818471325052217028575116301863224206217909456403789671206584392181021525266124740123169765679190242656982445030976191651052862786553123633909724007047742897666827667213422036130376864585585682148021505165012474671713768733503339895760394519686975362690404747787054867040156053261613322977247315264824849392511660071405239799669250197723990846967836308729821745901643048139532949329387029587683652924451220406018826780188195295050195731353500370207040914839972686280631691806004288058530630255345311616400390930886652426067649399772645077055267914708413276018165523699277797539620906487546901392564034054694619899970290335918373823753064542567241411189300568115502571858772249052806585949564515651951917053419615520821441621400766093030646024522852201765104318858093860230306092633614291609642025226152489243596584941297024927105278945939435850015418583847140138254910633725180443611963881996696254372430069972961971918801280066162396113876121492387292016928950034350170645003434766008146625601235871514395092569037429934070609526506236296977659005342619241054084974024682012077155104356626018878419524115593588293812309055415093778044998799879049867778208406603582013992390915252620376339403288901501600788013483989246640510587725022135228486453951220449379516925496497737861955105759894767196597744623891624345861805273830342570303390762922845833539690826479540274633587294615265270720020867000371211430608267010844804633303115560273496099781769468002948042088054788332849988265479866924401097882689561324461905184657527390973593924089336895372326120321899988555704760710293346725439804852744485135002158934613715192863376924047319265796488807532257710734447326237426850263305210310715698951918685655195155712472769789548120505905960481626173955403546522227989909197954230700997970729663474065350930080855266498811878264114693763166667213754471859147108134826084745728764219678956773265210545712961024880564440997909657809564523148071605304631767358002770269808724348530997115044871679603107959854532597217131198226831206979511387886123146533432365592671145487536820500934863175014432291933603535714734165909558805210646507157017228010995551717357761267141717101233380597074692177431717515419920766426455413602900180723007959472116513872923157402774290819176085905505893638922394960805999665978114047503792771723300628635284829470738771202236811063729159682384281837812878594113237136208295638988068150841593978792312343492077501677326002113127651126167853910318897570225092453575551392810697922579580589638027328060173047793412965761062978943822628385427141921944185318050178952264974076456314261008645344642354450065063352676304199444444568715492973068677160181834577676798749709919701467534565244963862735215245046112176962227731821324879015362263280814542493682493386994620422160854731372338315247940322751218165115802384238413889072456168099056701198542613380506306928463519562123948739694659869880968040224664569261641310333132439237872484833467290475538395582711807793076155989498963331993937482551347504896407934324590180553392538075392123482141443564859403804168423782328947169100991910720774835958147502967174001465359492868873155706266930434527919396370152599568541847155016787875931504097742198945775046937516439161718237594526080467371626948757589638395611504748887795185253041822764776059908738344189711832119024085914325972726772721447808203678777130860977827429280759218609302847285808282881217774454994845659844179000733790705182388680659922382235869886309084872842443365782511698161060529520070102817242877867599178767597515266073716902105790691777798023044713956696169342707480082360989015766518502653048256926271104231858184775804590100420683963363611705717158620079689071247927291785740404097782720835988475828492724546100029459078862847012879681280924067324394269433585784243621877060165128844804170615610538993523668599979735859953676105642569345250190384381800720491531658557612980552924331413597735959537661380806238480512166651159315995921649661378686925509240343859166632162518425592854943188993512356771290814371414351089787262519090122721387243889251144026310774019143065296101611789671328218839008145837692190824503543575383695782512922489727214523009602679744306100822240506714495416252220046331470970296208728392832534556754600038417291230455657133907336308076763574173657081324909074175453603401819039558999869887020924266987915441327374037452508750789179465797026391943170086559826349916331114494516317516775375287846314058757024507259665587318549384263441480540385583979313803627394078225335003658407089915272043472123633362005295354857814847058553483751341026164416350817378360081668225910829858352207616705799085465978453637317731330463735955878420856502697321914619134474709821706394992307400158073503406096474234700997439747399902182673538143938485474929077271121269337879730754657470511438521562104291185522815599468719084692458303495901036438965863391302197994532452032329763739225400958733879148788405963147835933776909605060777597623226164589403203157844155176508093381805681779359164958329958355817291723940412364954617560109545765258782616562990154192030881176974543371917622604779504153694533128652029974613355455569382668838185929960353021004726624103111610411762278886774874348024961527752222547866138757476073723364234313375619677053405371420336623716046244821767833885207120737414672600755692630184567132327822880560372591646175328584148564926831757828758134034450034501544471201691335381549167432060569099642806922531397905415998302369949639078915556760960162297355674044992167112369978237444645317685219334677429157269504854150053697195716439125705722573097260276969825077866829919305732384451780724572647372220523976594623121283830261652437705056691864298865518231423730843698776552980343738228923806224102714149306948718782839527620187864525686478810213907725290001136227635378992173134771448344154749274236486565621215157702272851569485012010392914550808810650794675854808092015661540583875062191944760547988221851043350733489804683001675043331217229629193600674187362265896550199588481410041029313860967612742076370335987023781735575592728647409881596667511124786793053850737826557441195986322203937868857551789789825300645468425713396000642513274727970555432594076199375849042695794883181906580680003719304892962587533006106341147588631091764667142384764855314608652390227782163631806584418110978316223783185494511476433554381948076722332671160143280743923935152863936570183757580144482989942001023317461751488242098991100769391564005609492552812198500207032360038716420221893984865680861954467240543878239944104101706486923702651035648657859527249054949520509478922422577510833169598987655963594684884240746263654441677870325289134015526345896004173200638987048665497790999531340231926282547388618028808590563524646648364417276059031658414557397851933598125601111750604711565656333600328744855591687118710994222814219901828107481015387659372521701755201489910120133727196342553803996643894499081556697175221505030199914887094138731577512048204662163446587345747471418696772770164776655903752924206049434543519452932266915326660462119989873362859752557759644550236865113058818610665079464214918210159190333342558890392841269215522654243090495917498518825853656612364507074661712380908066663740883122082431192062566123398735226095380819552131819330371877325884048097511092410378638841573346253030357859368579784764667411365429794617646570746891393131119173804185030614374482730525616774314563500864043912080667599549884940598780336969252670456201337621309250223524542272644893901738004657351019245394811304749179305749967922595620197309118569607369201512167543722484661271789163164916286304322391957017517956575692230027428417393918256930538251567604047903699009130178980354748958873166738237364508596911655619016609363057481573989937376235209023139768237678193677566174511536102131281985087172967986617932453193212117013969431656869936466829864792417948530519615326924588041310620109880023853546256986601196745198961044411154297221958175691186319284428583882909592020691305685056803224408373442299652133904476463751188776052620376373389303825591308689844398132749953211819495299117300624038022034093880408363876509725693942868679896114738957563028942975675272807765959290617104112846289158764957913117644479399043058299136321882940854996433620209759259266495065658574936299319327048370959312981502287017574442004568238209694583435379336635752521005259449514119454964279031596497397306057072848507331110966608176729277671961171051038982168508062798636647295883468032548621115084376352468897570442813951508542381277584658416419100645460753553261653715800781815739357804172733841333343986205837083609197659299621968777466421482486841575229633043539111150178733951858047627084215286631613170419089461551400540775736137891151704937911614839005962560413147040646635617528858851511602250188686422612494428393545013693337883899514903964621183448719581165886444773780548542002053184744668708380251171311123439593773437836580745445210981350189799821426763184274688838837211198270872773979292012047631891420617595139116108068766319484006230320712556409217773988398770136834054887297388170637697491774907696248359816423493920040937789821768759951526638399319406368513623662577548414869269050230693045276411750876887884777490563562483489278783137780289017353748940703126185404917256677518887384204864614642742511713921796155099107622518241033183612967696030528049411330968923145723568250312154841660910582453220567154947394583728316217373630742970549077535369961264311440499181384837597012824763758054761532215433835758641707421979716309862330075867509418492344913038841523341599190640622200386454887786711716393168461007227302643103455098921121254842646269767912970488011700304235953563365182783577998658003038349864211693125180796114845406414611221715311477347614492904199278034088970016917366844164755785032866767293544235188197405117546137452377618895476123670036073356418159903860469981565095987330609845028816970080227906816587391248754588308450559918100673629424560712848025905619826840893512090377994165214726851991781011619389397973291135823978480484334790723959709268763351575573037014917596676987537337591271847520946599087853998178766016561778010098076001704661250471706039926042106771674865940817613341594555686332537866839871022827960189522690653445960169215593513616287356553685976644189984864406793484221646305492349396415354372750361807382839305609762619691666613604755856372628827841970125086209825614853417986046773933018747738420622459883331759991799793235254795626544712155631256640795224729310426291009178088751768208454870480069271923168201702662951631646578267092479019235332095237140815404603953167442291527519160781464631505185586907174444248890850689443164576360722459745249983312806992942272478774980974622176686504438801569501861303618380194235852482570167577688857558251570228842259698538492098282713325402524322729451873806886939150681882189561482835654519374630264928535681502448631544254406280091270013800353338339017078397904303114318669381142738085886954311153467070198443693653050410939165016426908270087653070629267749302366670796725868930002898762165276777245270092484344709233458088330321980865615040238519967821603255670110130259024743514520055213970758483632244655988317627082093865369226235096101723307402427175329501788526592912719750253420870135897044909209273174083520247320492533738331882645131806583267189883343466278125413713403406002871887794160586644764746882234724051223618439300137361374878445536649018371636971968739559976768123511352934586037339678362679878246784185579845385130848975056653009609456367330067794830448778580304407719527361331718176785430714881886772047373210082165732032048394198212657553445789922607364881247023108172258706534724474379793019245287076158290582054268435520527319586993424415169346779717905828704632208136175909136246788685366625565268374803645143024782993644165762326130768251232270878200403628436480220073153292718427522304647630332091824045977497811050583538014696916498442837725242846762695216623485885559303540132504126955055995588456646453404110386051247145178966503512050009687579611655604488743330500578126506406815147037447633655402747266689893255090232123447618026100104529212314621556652016887963683820445442463606752885695522270496232150675052939105436682179182748965576907199885891858961325417247989919833635420390771689655020566711895233013693603434620719767096103865234550512244804499530491235389301141241288687579779639865900035068977886263881869042150436728665514137373672542693224024342888329960794653342369043155304321592966983061083061595756500354574799839622021804957851803035032366454094141602207936257989699408749520693010714643808755141639872291316043433263656012128446640396213794781485257358531103590110067922065220908357097972837278849920403005812725523259849360808384766595882948560129756121824465639322245985651743544280689123641099811419933554158141374223790673227231416536891763416584797344667752941225392376842490315653765204743486718799526148427705556021768852422775850398727429158109254855862027878678706932235541083371061395560266605518583999569448565747392191196162540944341765986192733947505415561116396725831686297664974561259211955250331043981080630215674942435451787105797558997915007379212249561492442199540280760184688802356242052827199585757895623746194002579568302352810828302551367413638837632348085262167877190462198780973449944942075463821537357014573852247807369612708223657714377880208854416176423089801411589573163371254707482738204442596162299447472591933114436153103711669350412232563030816296682840790503767454614016185824467416950284369396999387524566022972961067242871635585354079792133267218819859214369286933477708576541628885037789721871436097678658195728651550149272379693001436159060571546508299520836044163615240878152398432796535492129290745779228701016886220120961927671563402960571854059450448404714466836141351474441455417238940060898684516066578384579620694854101552607119560951491502770672291994069204397471184316214708389982397730128251477609138182305073589359312597092717565442913666372929706522801103369564309327124589607310916412302710018075480518507366050561019414188021043749538629455005524126879851682447519054983774014881015825172719853649190602259359032923989137898202298146811224336116123017491265830833956924261960090803930530999341960117336931014104831071020743305101670728491446902103199923274808090950444333276658067184776572351856290289282233702071725543040372645167310518292352974845661460154964154480035261290232173979210640157354295763944080811744096844427819799063892215084825275996974538386753981733422870576356024996804595203343508316406779125327387800602607194827368909713396138961279959689722830791590323279044376477565157795172082994422039993092837636476420697327771944448826836105704081465675884337424230251375044904729387428568470002387478923905788767944950328150153476268516395736999508701019066900720289268283076184863704885636165205890835469691550193823957184425802421062648277142303024480266950055839791756639252765907954710343046049333743014411069062681415128953883900074208237097784399329242161086458516960992494940106289884686947789215651007248018178291405236152971758144481792466468762684989314788433783005406633767724871630255344603099656499329997243699783913593464519671883216077019506225790805003385736290741020320320364809465217597299205594373369118666588398808781406448640192669837531093303713052660477365401264937243432343521039924572467132390460257305950370258799919275577556076167286900594070340623107824539392414254573212150707766054981694194660464405910791472445038047630568194363117174700561158119955435660684244759580587024130447196786915210213455836165545267557552423443391105226401973075349836308571813352377188759425314906970704578639102925861735256157460386394777722389215062724001000168046516063770608201076844541623741826895939372476542775156577978581423018334390572395659362450767919348143386702519208650075064514936989872782640081339658878495260231441648697669299570632478758831483296388616656514868431424836291845478855523566392524674185431686202649228723441856695590065599686231194147477789522762160866282918980901174699514604904866162588753821110290307200362186888519504458805249230091339058176229013180727221781357484413861474042267704656599831454634302446419294227313446974280232073076360657112781507890230304644727119206811151920629590496311505095731876766017862953606217659843684340306101861096274681743090789955640332061341663078787892647023170802283600110755797899413137995010122313868044603800394642181845410500229263660723961397367496067661136576536863676041770089908942353053356498316374189319127563758549654123636877037433889990332383456170290355896642257443232647794945079366118386271019893253324574028623618388111231548916093014918620008068938906221230640774219713587941074535207788471276689642667247135511144321783173409545524097487047271990546683114797874539366908304912756363071106425512806320398448475627174323867117225151376232744012686189470807459455325117309589210724602838883711088599929859169400275513907830803190448865991036799515067134974003101015014179020588579227228653568307015210394195026899140786111645621306887897422428696801407571659085211126421846302613102586163732100217614934203818653892279728898044876413731404598812862354887207718479740418006289696163734980677653881170274657286950108876988227677374129754566724208855176485493003202383242477571933379346006006008943041970185988046520803355132218300438794448817895323377658665249790688257336447695490407458543757106674276913302453548383568374790360802289874180578187290902383315096082564021510607509646296268848482835794628145027552336935113387922682986250717533734979684935128048240167768282947651373295398266285318317083421550660463408669619062179982919043071269759670831930115347427875838388845112178048968681933653077959063493764893935865426931160432760150352644389433927252103580500663155580980620577298923141395706741817998314250350142932008295638000449881586744444378086423432272572879222545772791803305259262606978833710001450713571925084131328505293594307281312535721510293645391951536028067611645221637677988290920710604626953244525083970785661372265212472641099171937184057657244922093675875339267160889024814866112688928658937120305883143090724763265881040265285343247271979912683956481420812154032300708343356338437140199830770040789923935969851400259557671367546047045051673385123814992444142947138681262710663498788489334166485269737345201611946608748869667268841243330345410897878385640445779774612782644387244310882875632878918835719953920759428838696886178678010154242980196933598622445425903797611402182831668291073623898592768546090806460893157490415893640697493542387751319138683532302304848270057490725968126418305346870497479928377902131414761742942147827426966855251150964243121992497682149584425922796369026691324457898772389587714264566147675256027027708429656832351638009575044730285040425128514761824666254678737040755012708908276795236620192875380153924432592392544329121184746262932538961935843876005620521538481472744702269528725586009262536741477783456762553360699412012764700596995292422666131535502515334553785131941609497722703077101989521231427805718149748909586992952754066702105192391651951728570962865600922992795145763444754417238451542693653652629516084973849503860558186580080972951053893266122420922971781405301022082401705784588348654827839722585423910609754662147301536054500743660911091445192360368820450637399870604934994434169504525854935070195608572684569001975268476626265785752687882940642132479887298170482878380997822729463327460781224151157078753076661701353263606648315335465064735158683746208801905637407833566981757728050504309957516753340352276993388204492696502603777253770845692822021248578120624527381161419390629868283313234830316746732929807232862724419676101429292067400222138733779797185864381301901229666225975686120470040934858305547209495412748119978752759085752903974797628019580867707416345241974894406915574564586689271330205762851992464111125335096143686834149106381648646639463946354055332027569014380541614624960195607346122012156857218115069040005762514680135853188939036010121285736196833452418584351676153888933082570693418999468788666988808450328175562768774108920491171837909770615310929542389452872271129901465276052479775187718544431319108529083692209742421541063564475936234176211159036904365415077338027716299252246552428790946493451027640472962482402689807554676041659496194705323842789524904228688920728980110646198051306359951448397565594054177161317445422659516360822235392688033815540222567976989521925231807147116802767071114998079010777828789795281668886624096990565752642964684087092696737449989098664493010842218558007010055328265485034925653919635727453530294917657617196520846785113018535054345049469576798903998866294313369272308721373470168805758890427260522595331314846787359531448661342835805102018043892637469434762199667608096819340949496179126820444118212904087063859681552507242179575786740630842333382915355536863987049429786386352385213733165501563266747899362772968941797943197548493977060276675337168763175232154048901546734980703587096467966535651548673604473538795169421486887691017704663505403552843481616674294764004951839146754395770105120794183922688179669990838225741859755561246170523431100454830720059297727369672637964096413841716737581186712316639180796270130425149501576828612865152571868384121701670783045539492334161319533424980309768050888576513927585898318241794532023601726726959087268267625856531149901045870362074704812923613282849997714327630564818372904737631912297292596421356402483369449320133563538751150881285891738407698975409206445833688341803463907217606882183588897740835170509778406471947628605169886984476341173425743037589937514537781737544652700580456382437846704003219225959572083477739232905221842533312397428228063198193926394690624669958840527538719926289199915137481219748783711519917767634119237120666931657456899974641057401899245021298301823480855174768350135709412474625604274582048599253349320516944328911452869926046879772279187220043637022811169253248057806499052166798682255143206635616383491348215546581014122265720062642800105774466026448645998817898499680131778689991564258467365241770481463654667431175160231636716649142667250839227092018475802297384812954723052921926724053545561395531392379699617728432974897907556631877129332439247517495645381810090632851488439880069700588185606119793744179984585952293556367030613010993512053896409562148243899708501547834279679252251117016594371210016226844432061302673169416789189606812519942380658695534949531468593193622645776065213542641139383249450351079931123729162371369707657315989206091088666190529948397262251157726866669159960911610994699662711362159585256341857857386908809372527998243777939289640448710680457850970965118377886164857517692933791116744066484048995653944152859119936204691751993578735647401374101919118887087685462988798979433020228397115402917133734636162672881571417882109599235486211290342159359193935107451201157779497923359214143634479746510541803408897343545463117507357312805317267502607353978894067511359007803643302927816850859459702171851594057705060084572717163832788942411405038574525176194871007865534198886185910507613699095329779163161477351413152399134168475612516980840691295705097747156834477089462774069911891361068495862063979474917710887524776711886957091291758679009119211012405044773489713932227667203136607924088127248009022858239711452413983829622244886649085670250166262159585255836304884535020267259238442591367199039393623009272646797609773841528101576586907680534599423521758000977639101763469888220673721763997884821954083228331917424708090644220468292554530719588270720029081153329887408996298881359559192493121017254683470215351549706542467123058844779110096652348101432481228700288205887967859251518373654550806637473324265735913512607824976613534344648306877700086421962244700677059721944910138527403822852667866397183614654343070019345489506156334491769505899039725881417904683415092407101872384812633411497005091947500729842966168830830784831604641980295969952895265513127294646716693125853130513243152251313366957503311595907435313037496659853561353501713390756717759110057795561962994707647512906170177211943974820230259986046439925757294629804203896499420153438747939243449242833330897841982772261817576083065643324886066579608293161449575511139394939296567161339848804161200410157250139540949103903985114948842385041636086712205849106974736929838960966065255840090225302289471129929222482787662004309384768492773488449110702893777964148838824299255093377396124073452992587809612133083184634794557178963688883275973480736950259651674932541626989188688382250847374704424954064061944487338567014817791536285847270444480776302732970469493525513544813804586714704123675249182121798530116264277969703659427818106837098795899317916160183369854027581468376298738527356392008114033142780881771101917519182843613606214998094702597260617631581845944200246805957620832226128032350784776238257537670693861327063054580350982066802094499585293747418506680178811273311592928857501693153312884339293318496647268111388903806460453798069244808044445109678399777620606933600743825254901594847581002100374241704605956741230984673634823350218405777395135505217736484602883039514807804189538542473952285489820452267485694587375404143904417211185878350703503398797186000234040056398939604757224162513939381598444917424213060195217113139676689279688644017464214333139048858242569413751888740979372169917092958012537460741340980015935410087904887833409571464558852943011278710947361396826602512355274204746555811063632495521068727051974693318970584902322109172122978810322254142857566518243222927781857487327132464592787569451726880150151391277448921287878864644492461529672511704060586401619640288436798790286517569960869830123787514747014173271575462121147604815086508099983066474332398712730387589185026806625045010747348196009750060576819218757901434327944814260413546652384859567719615747912893388819460933885841017854257755226010461250356664357511829280513627826799584286350739256202163998328411683195567962223842876769511239448448207127276806807023524932294963516859924394068253866500848135838402725472912128329792070897396672394019523632024150982913302362239012684717139786386507525097175456412895106077382638309118239300233928046808639482601623878957311764145861294525633346074805271420777258724957016550378014041169933456065130159962109281281797901875102506630782561611353000442025913943699594207684129535070697439613952093692071865059455008020166197125536179713439565590816240773245163144183882406471787317614371238261010967728480143754418303917649327831145803369366198372127004315607652066493954382046614522915209840518887750116062543596338571053630303538371334027500995522525319530110865663160434504916541211825459107710098171230867815088895229950273042589689062258109873153283157109709269895505301341170776978041465919237579971860966139850353974588304392751989111393768745106261144217910709290699712057182512747061985079393635680236380658870411117864944455482525257831116453183437703061642182469671267139075547263672006253792859408763035026180986333531388538337177742711328614937459843326557553521727751671685569874672835322908941754053313467443745769932808606431094773552171561400611137630308985833296670274647462079316741923334874312934314132441486261989964882861085516424127155302742548184737584257464622840648685849640183191507451353719392213361018038201728400230668199158027657608619958429898627847855537431600291264190004289544939336461096593065475968169532015889046056284292344508402543080165913912923868586165675859882878885795071181828688718018570893454014685091335335955937243207608207543922576665685249880626660044222913654242845122373488742818105138500611902477941201131532836636123835712282269259204050712398797995300596482034946638210888880237167486636844679691499032272325949067994592408144781152159804845299371034900280690593460038117117439709637221275324705094405840410129716641090909292038544383304739422532795318175562836891529941476846508662523568609122876380023791976157413678812248010167121716805655615410104973417613016069912743156937952362202654096459849738675156254741586183897556789572353130728578035437770349566503730848832830949358016602829303573909094414550816945901273656128532981668420855409528874342720599508423271057820864990413622873652530028776535070635229917097514516798225973490460420067131145416085354395545973650442378057358878987688828862890767132371157519754825332848147662794608475913125287472324283472644165188808518141860619125697241387674965521358123557531286066629617934303726772595176391030363168444414556889663067094183356129996997734483616334394644864293335439021420266101157420553274366399413662607788753336759952170374782501261631182055882260920677142904584540795527752392607720480568090109170623475504849010177590215811731804257204069442921226366809530999474293650482332820928935226669558660457262199754733637471413501713341482713213348196591459923826857231640744175782468290305297968448250099051367609945781227054793794859111809406759764407343251167878360410621821062030104341735774556853223487875568487368032840511198614127528431429993562391878336386578013756120202558536549506882993775308233885779790461845594813879199806863395020834458467012860256257759143269737878754658480361476070500940063565243040266175735566236040230782069134722226853597056407601199160367779712736544623275697003136651762204058733338731710204884909600051527609636572591975435800184576286615372480778496463242804223461057633423694362469808929133366023825986582547716594303632583635175956872559238966098411017754026515516567155233905116437823443607765055198603459887345059665729823924145367436539887543568100615512097517550375025109519203880989259419735808831760209418287495473785429685752525271461610905235150203636160464501505000421689493433049586824569541182823151389965337364323360133201604809759411344435812823201276813529151899506032888107959672806597534445742260726643392356276880184066968139748796996710299718985712533150774740490038801705469344996241450014357592967157266152287525545624367605191205583662026866881904532099774007107684800018377072119264338961089920212039872998677902567825055631988778712804989493245799336885659676505918306705243233841389281654277638070887670646177235860041522783335501629552197777799112951230471919764097053561492905273078788387501490847254091320704236153289197265053291334831582623137701480499268487108378777837659265002709936258386469304156198106229228299775109237489697081600976352850646244439491507045394830206607528703369178817702696938929815075004874955383604575693609944604476489678695849833001634452665944466879575867972726188276880063415694982744686140041967001443411402269897634946519842087763878848053454739628049447413475116456562143097457062890937058349130774987358508763070969024092622310992504476949497042648418387427857852383364264915572629283352122472886273845962956598201514039177528179268096532424216935494804734006899955679279399480523821713329536644766960410689222902055864244192021288337659241637417777619452300004730005738531154200441348860701407624888315411418589456984253600675446041837233172377642892277932372795518996657922583152638631163250559093958717506404534627065873673377368552665737841442161027315636295765260928964331080671465754841783003221729038387254863066528304684136586702221897787958978931012132223750239468951727126750951633766342470096145862502221396681708667427892920368884780641091067908049022227996678647080142665796532708163504223381599802831228977233127009513675656311569252382707758325219406891054990489681942866655826937188883517077770550039703447565988007512809494286267491033370717348003243606188319974487916810706608981643014665423055578110017107394447988284839586411758926951867311006815675665241341069376640206220494068088254194723819745163944333230460235574993801324696324360652952518522352239135303776091109790437054659890667413784366517748984753678951741752696910695153615886214489112134558890910952992075005130366392169465798772038361648337454454639681491428806043763255162043104819930039615142529283061160754247448809191123773438735649216043453516157815091798967666359931765869019331949367590583591479505264275937796790396745873141847827661292499868498910863793450045839424872980621874680908947603295170354507947964246872049981883258794775228145746398217263974298885708528110296787447860585975638347408465274680868554306532057689493169483950881727060169780744088971705928414114018678278632295617377996013116871755300634750899518477921129396313042936414089983216872182999372455565872001122298657342029427935985898703207099162600700715169002207688360470823881459981087978931988308950327643499414733096579295017353291275601193246466589766446330079728550599495561427874671222480390267345423497511195915173071557315217929895676101521252842699398507122164917480228714024773897151771045461402103479405280375091803982854413267686993542161775661392332468785642777467655555950083385844020802188091110382242645621145410880091969258086496090466957523371015591533366908154377522482002415794261267234368405971399615454224550055854240513154804516228543654825343472944394442318351764189837953268293449444378907412836724514368262295949748450229506049584201073210239974279494570531890198247334081769033207161336993203839364370970340464407407921176591463746022239369662260043876181248742689599816737930515393177274402595145333521089904688900151813074219065487949568680162166093379587623567992257529197028582843066227372696818831310073190587275622044486225383946703525633481140014270593600758694093278556190477315385108231860200330154490629317367856397717064964890318220635161047185726186386509187753641911735575763702762233565192574789316845549744043421066536605122061143008612439007728880561673426841183075744179540805091560301396544352633958473022584407845041801986614282409167503960082867607691780940660185642491199782756971586864518096873766964764555866490375317254794881009947342083134327473912935083918678751619313426054673813092921561898773859294668614675487844739863554078378880199817302701528892553457570349240193099066631394992065770237154763832270941800026642173677136906216887189455989117445288049299333349765063006828481354594911946086465470032104891887354101167076550160477945374996787789336519554595374700118430927420843350221256238109390438630829818626087889704956599509053034275604371469834591718172165720244296240596478956053853834797239063996115477333905172725684407836675187199179696522330402813756828707183960684346811270848522455994309149901315690878870954940347792154367657628796917249847604484912759349202799467766069572249868603806418700707191219135890437903851382493451813188901513945352940683435786434803473659055357345697311810989039880567793924305243354863863150666494507685330002088155548197629187596338731437307739278945795015118436048941829477963308747159894394439010716638003269508948483644606451983550002506417607908983542929050804330985889488521345372817111981205312718475107316542274957011025673146917932719464671691139890320433739541333848756148864677691449811636797239165890372991007925766871901785297896045812180776245937347005031711783494866746835290003475007471577842512611483350542154229129054370166889882148705848969074173018469283644138363367405072640007943387821843054796842502133631887041516822356012319317671870873524267973249783008973025367055862305296061024909954152771646691581617958553400544388699057583235015613350324119122378395891422079334815072584334729640806855260721826413934669270666219184092514218649730974208842895430063083339046869772377210788763025091587661033034670343493900443716949323132869010361286574899888174302686100158180552742513752552065699860086588406840655211378210165150436874284956861037126730673083479051906796949610979834510046173191848914931706240661541592630738246311874136244601338116354126111295083330435764782049812206678027365615740355744797879559438025586780044466335629300823123192356150104385116529240326249072185357409376432458025632031674577712586741296246215642464513286438067978336604332933123512410829080322229044595226405146541736519891321594928804870707165440959145274917683739883476074494827360877259833844635896023821029790888426515018113277586658290131648762117309789915354790313431138792722479879398934548360292421143845806173325771032088083904614551538597515390095232356136578164197018213833841111299522435275287896256767136884452759777704888003182951811955625012908294373960718647323843896849886019723029699356705713119196279004201708033625735249914409753828529055920354615945215908298306071558469137329605073570576127960737044899374922538957766820970028885284643368131704575313448174052712335790133382906331769371157360598228595771066915336500255932518598396339095931315347203354959494979853494837458045036906776549314586964276641950525526666601594891953347840464313369741822643556593543525124612882694163296303693048869981014538145615690478284011973084128585996468640485375769955393286163975294717677950500982021385101396276402707171818057595826916324482514511470262001863893137489254282460828918555338249297124779895718806269342881422648815659694989603446060832593587563763782049348268360040739903799258639981300330314952313290744342758244211030867052296421287409473066487177705199324628117233986988290306495937847975558904591710072314017218749125192251068595336811220393892164884848243058525693799557189813499052145837474625743806437882095905277608991229665360839348982760191768992560734121003315915251153878651498988165103673701789593403364053137918719706038251651354203082579304976969029045050329081541567274142013807954133466871233836090315179250392702998439506938961284528260314188093785367929991792170256723106080529316718425670924208381518319858618602239737437509802128670186591670323781990544604332822157094142840960830088113081918001583723215522286416651955987773126776200227918076708569524974060348462402941624619730050585738417657865406040030833713821718467289997473407991121100402796579005387299608047632026495047751733353597808276210262372714101678666627433624287990075426351980456087353888577306183661673184500924374592460871107426406070357403400792114253251683997588662875017129951644075681073595696242168357533370128952711093314782827394290167209066944796873672256985200677280925190127455417169131835358729221743033526610112863020781396897391762356516066055345599131004933866515364608207796799936917689241355469558733991016118864961498547471825264758868268877541330576783570313850997201052855815634518295210385005265734515275459231228014350303314788960692818844228831215987854621255539231076471538859667452521981828551027523659047116814422640976392656385552658132105362468202684949676541949392863942138368244869389203658639573988958408913780225789318339794694106200927724633448914909561517844569044510383719204866730886681540122273907649516393585514269811369441462618502404185533373182258465783738650940729400826597270969656640261417209747028264918160914826238365916491783651331611665990931822916094106983486439117106032094184591337115994509122194013598682452427271206419765726667801450121495159431418859842829754619107707976569455141859662841524740668181223723959806951668453093450134385234387910280400086539435923998307003859666460917594248029350652301202367775402857188835630004056023543340848526573760832439279878031231007107806031387955685579082319492590913698939072078634097361615590324991452398404053611054715131684370276751806674499708276498947439399359807687575656101306385971918338293633313551450560340006103688893749340127020004411338131346938830956555165622418493801056232975330957141584707704401340532108145439418765610222181096629195930677651287623231409341536690596325843612140461552604763840156711900560523067192443100506031345719464871395002914279509563583797127776290721807648520231499879140238291372145450172352707825142625132365992788595592024727251984134576208037073369819603327593294579801793336538576690161298668232557738207125190569684542974889290335890922098328681098062023920436918880364181271230767114329425428004073430196154832043524618919859836548353229960906556082360246255533189849676972038561936864018962011370168670085883068491890292263091710470115515239944644126524854716153834999358783102912703878450262902177426848400173241273152085690101715106916255510418146515592117275378810864721315952297574519580839496738997146038068850553628867465007595323330215839925853241765322916730664731010045046238374013463130740163724880567066751791147661384752265540272711538061008463616881259941940527020306296780228714161464522242400605621716956111994581177699646059956881183351257613936970288750311184974465131492646050632420717689502156715369618004274023306285215557486856738977345621597519459663532189649616309159191583085341227329712543592813023400491508337702191778352010718535541279339923349817220399959940625984600067185602334357063462327323998278728694276384508200796755230107385901695777899606438851133776144320915339880347691105869463228277514456532901818185557729804207485720616487700917775625353863829733108127702090330448896819057017444894478210309808538002801519492036978799821915164532250889929880583376904960283969326343286203883834780403020615377307162061516067678187853374549859496748628445847025404948082271623297035008872640810298396751095886458610346939640317724308156548056391170230025312891284632127636183594842018721899316961312352002828480251882370048095488083096378816167935226140095105065772241446332038823856574262833230768390341593212250783230406486410430929060066979821659723486548874818840302350728402121558543152253987640501612159545339150529237187142556149878774108140971646269360820519840557060906657268978389472374444657294320745368465655128145988531735542747125944153633849044580849796539569620303698835587465986468965345761592025298447505589180039426712484567738360328604830508395045768291104829681616627074079771960929720779362091526507993089602526248636398622713257088581978113861666099993029312793790569655349157565152471805945985617089624942790197323362036298284423810787900909458310938693728998317836951064815869655317496255088137765825884451580229004434909307171094695958914764420689108406727060262567891984124755418757048119743181817847854896542484258397322626505738515301649253878939850741776123195606488539062176169187752866948423279858077619626313631139308571035643931169583012708333220032698528858952133099337415778170706081207061388093090433858900418011677371900284803204151964628484847826401879617898360238623210566075067198288209322532350932042719262654728825887066414987020117521390685611114620383763499731816756522087749771201987744363772348136616006522562615821378407359445824387032189365200440617950333685456828707902216274076293944307925180920393543108807865112897387190305270138727088353229138126535075163250116743210798861866880843819407662731741158533068390084272462668074120416887265177547424501286635432957880428308098910357144859368361538875963086997774917279043404732559805470455104619081436150720562769545593318236031514258791885400536379161554005684715515433788779612693924087323549461659473930463917246891734149645098505973316843155013245408872115217913828269115186929010271359487178479890796487615285627935744594237172793997679718776645272727023442902654499053902429650524640799177683047319609318889712314861957128468246717529528588728020500042245151922986320467514182492029481142570779035256930457041726027026885842429669014143708918129610771627307832767425226606956902722403114780259367819005867419182632176934944586366686866523460065794348206446833853355668015237389391112558318582075371197343759895621889186107157451784426400439603721749049947577294941642141022586941049515070525400166250599700458656019123775380137089856379998308173147110847704602506505445081228248273093979812919348049471517599721805172289313569306798900191143552881981779212185560350203264970298434097635711554544367512809744098703084706268166729206327124902988053572717868753650628801766379670862459179026447590240206439098852739248560652514086343817270876535520107360814484039981411722769805782025114041731622629044018222899199949486322331272944779651759397264472972856808631655025918914475871475308094967558229156334783056339117873271014279376958782950127922143884922560056595112181241908614672669693087667185419514551873145233655413336796525740944314463339127941609306329569666727585047262098471708046785058470860694957368114427818844705911818095666761145029126952244488695333950894130326593652984583371725075416554237743214665103608046354976084363651338949993678296116410691777815694501399945116506921696598836970596658361639041153286398777843414459734959732305201774964267541280142785523536943038825328788024175584196400107554965193548476872251632009769271164528516035951957000534464981999303430641404891701294547073691102397434561792568952599548788954699918931435284043774615464219396456883418292741996496209736768140043902111666705225819709337537947988455528850789359074414191359584000977218225802692750075923990812380883433190739541645653180705691834883991041265012311977819049730776738817333277462698745900886201297233598784719370751123869997956479456554407837310932742760081698435617361754671433933826707541005667531967021720774647313058586271479971549706549844099436717651676683699877033175303855301217060199364870203525345421642311327701817002585691385028915514764262756964785688258420414855342818169295122549538876959643386214232138902655942449689375930946878255865323165106859171048634258972777758335413104448320521173694464638332494092131750994868823247755216718089651386843960351035978601238921707237369545615545806496687455722265405361483390672946995155167204606811072320350683909411820193438113780843651165630235366761875843920446934483854790404802917423419489468024438199509714781333160061558586313760291113167236195082165995430026477192064006717642732356444633468691251735836418951901131259669282689171620061762499684716425897625296907336782335872894747652495316142763275122776646525849605936294344228786440806155507288843897735020571504893498773874484326000154879641187605030594706229552578376543353487093951035617905625568425699440863471004589667203752852150495605082664507170579894504174485685076750261060381717214051628079687662339641438844242391899038314951045002249543641390835646891175442972080915523736741840164555265071540886394577559415763435487515613070211017745545388718019183378110193625111482385627588963134333076478444811781131661876466593309377678017902749908029736970345313328543583419967582695936021013398686818288969556833461134783928209753313267437415318990415342700896820510168011520150676155732886176199560282055922272324303796070265140507005578527686414052368795516347996006458613597690025571392187443524423052839875064291910693734735242200847627681747921887473897728470649354567970937116615205362084243703701782769917901372653261133130859055305572473952105530177175978635575243127471941189537785235707186623729336753560516697707637375035330779012679237565604968047238645538754936591838286782053279108912461195723332510014066336424534406535019486842827694468839952010006526795238388635033724645839601138831936586453716790790905380609375709811729993246365108370034058525326475927181259548170993255045217244256951549407823591528549241832309857092351877334824919879769779452819762187963310738788971900079438005701738047439239528464231567344945542516949578931226089893460979521815561133123209100690193286034287970434958919585124731777089942481018243614909317488196832536519770185115837666168919604731956791325785724993632928632170231626566844583727332000617217386566623297026688171783136752943996736031789395588882653285319563311359852193112260713164589047186387941787740903346495909631306982412985194229597929907811013241182281233637343697926396082922135001987066085217790472734394130060846444245990016403627090812569493908386384334876453530704741991784588150059025044260954126746185446860335573120543956198019843162680226307942976121254030941970204581266767300716410144077707735354409886915074584376996182171487968641405631352676602143135387608755743499690699467397723192653420270276439149068628432559006940875526577024620186358545727359200486814378797638200234918154998453695797739400325873073801148890141733044478459289689402114445712257116329717709950774849681208731978629849488031567833242456800275636361934055008910454656436268986966224151199199266063563458345494207415706890481024402366573827377756366613192214213243199046445127720736415911528159697425666329718025755217351474379889191726822886580857342139418168941706417317497540462482828555034603033457476458520289377037609458036363941925841524456580185968827370093235900639951801183641094774635644585736188018066466989551264773975727305164386337511930124183618641479447084020733485098199600348184910633593015312518237073500148742250120475146585148283091016545686135353226768914688625682018943671406746345822246167672895900929808740007055727756601476239268038031221124207085265218211060706721255157326525268038245091161000643069955825604642836553992619444929056611211075224125090120547771534888456988833524342205013672688231520507190578270574104658879141557833801368380784753615184711605148720113955850614247127583519561090319112765349537926758392330272754422130736763152933447555541182562093148160372569970623896074348365999899351697929587047577917428683133516820677385717092292205924561214024126854678178134266880706014558784769546459150025594639267324719110152147695680533114503240724623823606628033139941748252230727367441202037040245996527833908749813700953758547829794864867506920253968824956612649780539375318615071011105306785651011357774921943381953762142023247117747922904316335914101996116359364518445941770872240390038345481395635240738405616143705722614062623071113855445455511781436869454305122475960586666287787449115167952922475698542720890288196046985362910776975106401657968907538946020010169302064369339954677919973752185435909430349031552827478083600172039815917496673781962720664795136825676108197957042316322148947364006259118524309985093447854893072271788865820401479874651878374082584336480398180621777225683778378212635034677261908013279627155533980651230123309481837027045671925523437631497190090381403565989701735917330157008044144303031888804295751160969985395075136022957325676964812795689877185920406914821766330329984875834582395575521769117027373622219824107865755002121341866382030890210735903118793124655872773578788619663202584200899356204235195899796282763297061284825334061345875789522844092979814712690454071898864305057972653030281784549801991109377557466407516140684571808228408127873018140906822563191980922364109870189621568717534941934149604876080470732752717426051169097506303361921346343041341823038200432138790302053640344058386903833455861825515799732524704400123178585859822934740120960181825282943154063423251665540220302539411667165604725953206732497446994898983281387364290492033346834780226298870592272623034290400693014308961327765527534010193042727463596110044462794822329127373269351980036431955125683881573599431340773085975976987026985877274370065767547808461541830684138119538244756740413834963363590830523748221637466004164599408607498242848161600858742970873448252847993904132883404012010435345553813309210494510369630309262142621318340609385205771158648164712982051434225983618548969299914152992204718679538078109429004039882911954210577157257675626787460052240410990598312564639129572586694373563333726552033244169426826954006386006995701286481776184714859733117313965494920523186276949739223224893369036443023929905624662734160664221699283904724929047418005452333296921851894825791730051002001272691855631605834003259378707463702493823265838056294291967854868037817379811514072458514576549974196989416787169330398275086421793367395339843481581337464810450327616781128552487300899140777994203655445153729637190061679932997794152473166413419828467065449161007665300206312192981547445766475946760523650930959553474126133023087633367996876197876186062769388780380488114324684834177608953519334187455005485809179730410006578832146146838681904022440222952032670989606390795135927089569928058488290134272960133288412608865920201627842486551140887577953123805014426577894491229744917834403632950373803869933316780635884461554006606186439461803658078006335900490920720812240303704418685441314389185562219433942066757169291125734808946031821431955821787637494174220047091247330089371406077271265211586947543107836240603693710292610138000536942492457236251780080144779047355854641087795362525604710716784437611155496358206368023051122448381641195709811589244397489197200406257114967347570021965421846495477454083700435789080236156189439522712240139485611453827245591606716155985187923379569849487910809006173325719002206021115599698654638950178996920734873682755106580498623643745130887366213924975930199902760978330241042671704339804065759150664305856489787690481052428553684738318294555344648689017736560948144601849624931280234718024400313907715721341087160790223714340164549809832486269554370238409054045759480556783640461551343996048280276356216689129214413729595480662730955542047856866666811765415933620216786696468468345855858261578556227479584087361280888000925475088708905021569766292749662967713196261523398233054042125287035642654784562544222249961626483877523509318585967190276406643643318864053341662907991599039132881451586783153895810961640988905314726968789516378606613709846473316515543969125458963386497285771813292810299574396008155050144077849063472091105266494337061982864891518744857111448623219115949609620021038082029810434801997451625399027559432906686162115495483265639304762942615359856702653392073511073679400025116868978641660127937278869622860783485614117815851097301266043468409080307572538089259147310994262385691360493039427491212703638240680538182853575912843232919745706726816444318316561523391743439194228254741695449674970438168171573376561343715816147154953985321978156829618895773862111727278260161845873620360881540790473542245324115167260416866277332162577788962287017791658199817608899886642872019163298150633940957004520310003134938390935819185803922099868169209838927349541302480958721886746710094853022864317685231771144716418116642617898603211651118420093840741339300389657243129886314555408151340432530168684690005323428025099405436453466154881032929576509661604695322301497581125545408521458567965897938661596769496276760927967311586631559988546514543238602803245585484401956008958583928769673406691002261380992544142414276253053488688228662472686489789210680057067836226342133186286814612082232761761922513125594585283207074666587181707516658766938964435169641086016494770318144801025662927843430343906168450065270329007349878680396081772210387764649225626074076431969818275490214013126377081050006969152458007705185593998107826172224503304936930386673397367477396364706405864917960319678810819043827906598292620547164082797685484835171680872613397159083945703032575010388116162211605110909834452879129736896872961755082846803400268194107127672245109592314620678813224430171313872676708342960740467824764613391779624756970588196092384329602648607195986676707341894084135063532802047440736460805031279516578071114894178914012637575370638958736808175075871389502470740527002533751390720827321235386429792372953268839499104899713922842309564070916355949694687274187770907556594367031433337139898026958540654474307714799195967263875278165685403306737099632251734255334834384352488523505146383133852983130170286369753141413160669145643591579652018115251780942530254273523904386354585688364821218873603117845915869793547915758194230928377264359965223277808885979353922745061059022464746457086565877814076053259483709911577732369451078959084707354436239369863892344708558785007826203191302867307856074940214800714718253883892142291753738566193021165673528725858510600502182014587182281448642285286342177092493581584484697291167402482385152432288491541991367187233439014379845213900827967240474600525288896385357579558745607678941920464784330431957352217680760652116310633244623585035733773829330339898234323492455958663651864697785587451669730243059475821772330810475312624326631341894813498839939785891439101744409868020527226947818386289366720333315178074274415263481963009937555195376685221048301671063887519377603764444624106964054037533399615161430035187228326444133991200473721401318093095419745929844992416410134501208842936445548900779407378479312814695602626651054725668919542159512122095148520946688735918875453319847921924770432716455263734166114384704288549143917442845054542901103551765244113392214221024177552650228213058661403190150536233354764185404938976913586687812911290422950385821897745817672425707649484439784254423755316937094170456513858066798455551492216873243870041792742092200459495999033825299613712862843186672098994747662629353203058010935440324204512851636363964468432269128133097108823381962931283298738813116879631058779516452795711446731271898230511910741227207859530366680440611701177764847178124078234292120946969225598212540677812564257868626404624220387974436096070492804319196918616304322813405196018658104132670026654311852670952565665146015768372346599125831618628575191338362396604253068458569471131184595472300962140762850898872476372567051110757825634615962486396298369393217763424375709928279703621341657763400342995478399061375511905654556417985974321097711195829417636194170459404247181754422292903823070707077023694231649812892659906025510234214366109949068340938875197704723027431438644845306479218962588525506725359550946697205343412681771028837992861587790455595667307439803404811546878602531938034789984870116906081906911096782335450483206779275083388920837491875417092651809065736196883803739019742201863976151877791182212009769152435470163442663958020594290297385056646917057102808878559094034676229282531400056745052107694855454701281350681138500926560905254818810832335611950044192919953848862430365992255868108623069576852562836860505714886344690112762158661143331233519570193127616557263007792996926280989204661294209528602633856291308706988582700196172533453223732981571379460655974859951240845048070551360552782930857362876781759588220420227740593485688204073204638517850423524469085025823619409977217907440669253206768469468671823960978556865579306806856667456947894050572798844784048896923352048403782264291969220364299972943661095700941081822704797774667014584202261255064919661361338408217138009195685303959261417423570961875357312409523910472885351193857566858292887235488682120265386432450181104123698004004760470433250997007959199608057322961870585252840442440095454445262072385176585139173651624603348038066011861635532419763095826708794688231460788676451306915922493381732558892745444985547686680582168982004513582281867766367682550925117093038280768599949043289499495895067098020463941518209976682129024375547481512666776385851201273823193267523132353007643397376563470687772722516742341301472951628925369352404405158572629610981965257004089417661544619942884769665012361462961404539558834890850434475558381262107889873355666008166191236934246381075984086006618000627438911734434795366329163712729620436180415026753182516590778954972732293909500427554532489913505854791010353523663366088394919652270500393226374993648964293846055586379109989060330231194224659061162906181152478164257954014859235198928765216750435181083129872143377238062218297977138851529381702186762342865720545600830296734781199960166355765618696286350944613661602181792497663754440175396588453241035617097678823716269714618376587487417000779041334110726165943569683860561045933692391077136440045726120628052591860435755709142986336248082888980358335521386037566566284197820035816434542078534634263365558607044521037429449181708349960869912139381952201532318625869329832089705843267280559904128485560437018710304709750444273484040423373295455124775618386972680764061764748358209091207021799064948878839851942766822949789112386637571061776185904032677651650351256564036084818248125412558670855368827514200677766252178128562762149184328224364000339781757967792693129755885530983904870573565929411541381678677083140651693377891214085846151434238309818998368513823178495743864994246734043656129310093256012727415782297346884307051530587319146159417916995306097449118326048116413210542679050761435802931187807014065600719826965734415874211446546266157063761273230914065490440904364874870863386150246113953337329526095099306706335605745781587651271014562691128436201182426190764702403456060717877401140506032800035534822697713853464105457180213461913050384272632731397233318812556135132759738715335748906525637139658021319904085719156645233283515156624551638539989086426888539143699952134136162172229904229342814421634780831944707051499738269953043376032003629141043041312502913194546082121833062572963323586555225985000468798779145023518968590397694817157895089251525036108779576787944879058019355347875519793531253309066482840783908167392947538199486095621070414720834515028853697723781093055326844311365726148663484949576528420541261731275578233373070225007868176431420233335145467893831117407834999857545368109862766892837822497965673024758967045319747930362231933809619674820253590942168696868228411248603854886298078757452493895309931184165979139759885541610576691852391206315012311644928470341098478394808816306309015683005311953021039170521027667795131881351337878629681672794033211390812552841861712181808339002290751901263167349666732495110788329264317265589756348569662273099445729552848501518470677440971545300037574640917705906283301387862267785417631554656452650516718479344730350250577495751847399609902758923959663071225951834085029151590909962954179414371674441619651958517877370039280590853945825918913218694757193657836214526790512766072921290051413559972270933315070400399013597879724287225005938435536017843047515792957246021886927502949296522603191098839232923117811450697549436644403020243994378260081020258981251190360098068429996238757026927942134117286625840929132338036661425739273925878019956721127774616700901851362790665035905566077700678604918873257731622207896130869323218451560667623770017874028022040727027313454143632684671163569613662787291715939335724812818831449272018476732344588073498288146544309218205176572165311552183196577543375681793009152618427376738204104125112703270949015722931259724035166084026410790943670688592329880204261407873261901782615099348492848505934611646222764661618576629248390555982662396769272901340177518209356175613294527447877711685982372525958306730145803695559523502578040018081838881982184702999801168453141614331769398894151002411952889726850123292540617757465191049424291790358117573221207883075558113317308033760478684399902629594751836525841532055140613374361328605910093569107669350378089394228751865476525088106780818291349280273029732016446968595447951264936395263074444768049184142272697245746117282299518233909877098413437032068692761086732454631099881856110680716962378623352338671060334807300565990859142286805144485220095193975921197823158440719385146786258733277298797237773185918341783722810815948979806914376673525690404300290460510925454578179338635788187269084785605580480118831174118513106680464095979235236103192740093669541292732345303242319017021998942716089640523137119163503322591433982880672534070054013476209267413970314944166548963968762966694922253649180654145005958739227475345599683185620188229521422382189630910704156337955069346296035795055550327562665969844881917465053079210135058254308780803813818833857239454534978890062666028284821104564136308990762771013401430404381297824530197181636024280515131893757507834808752900260803233789209626719370496995674506029080655223646122124749430212610711283131932723618062690980555747036998254491781022162390353344637104713036320376662058564979890778635824925667745792910190499009433079338433780335700741621648783361417727603342716810663713273974259925312740298800522538061118177116590759438777682242697218246649789022860798373293734398552729225379631331350952729758807112980884085564659369937952810021462031976332143696545409024173574953381816633585309332244191568771260016157566781191846828173648529800641232274653290335058994158491532770987708027024307799513093094253085531219817417859506739220747113112723260053424670676646985782094548433940985554035602054751660146118508168181696931437193687644611931709212558293186772793491060572397274938451672494410101528993823732516370648847558570797037318610710026134023952586875721300178063633560644323118905383026808011226453914874704137839695117558956936862191483327000793094835249248767620075711778710554151150904766882595330091989947183804504075547109278503503914899263357144455385626982096895016731591742958970883862786430624102642422097783708667889601720052236364869344643519976990485333126065798472242197781312971081176142230098718490337110312109401777545856026393438694308794339396829712158607670620206523465426788945340695781609831375220803134650831345648092841961861730848572905232817377221018402602868006221759878998840756980598126444674482523265685148444250435716131083164097701599676706430082057796033674963568233793962039463414008406623765825192594818383404098790992780619037785490114386858498148544810806483039040956847759548823201607939323953735545046881569251685240062589747439821355446273534525598189774368516620578434446872628293436440486088946480946359933631581931911351899938335396456725304509609090277053873066484830271638099593935546458055138118895657782840465796473053864247302589753187341646189336585291153047715711155186105541975140401211929588779214962362803528929440399576516309494749124676731849508523290301320758452408997369888618696120106363476010292277211483291018609485110391085860642612853062263598655690576465494798613319144966194529357193623592203023096971511066875072578567932291557395384025901769110751608793500779967534984675054243428479889772566386119342886309372875522748753143189868926318129005469721105475815539357616787772256200540622710526428626823684204483600605196513132160499662801835689639079889219914468078062346709047953102162115727415663116331327318853415833917293544803679815277072287429872775977256581738641735064430826156881804161699691209447582584934668447149840162732030976200490744687846723942841151261999930468580514393262484671453527610599991015201304835533036233581708461053300430544008664558693526570739138478850013847742244448337668043755230403807191522914334554936057086477536395675809834529901769687273586899971968223115231813434041072080219815575485055259067887955370809955461976923690919708950150181148883560323046397803071213579593823735983663176353600985098981170918968492345386411370471687172331724874629076729637494918100668563987733716070358549415115366316021746839555540902030380486030800459672826239264085403028583005132416743138229470675129759432037001016754470718634753264080560230376286314746003280751640392074535467292795571017091378850138169699018862643432831258856280757342733056710880843963748721027848493568248244746289550761360555572764310297397772150619585842364778095661250143529755413113307170101249739466154169560778414706230416619848222182073742766646357972711781796818036709225672694730075630069346769105293151805161474824441456795093251028911695285258861392217017679026174060775672980078907560660913810040875643944268250177880446069927305501612687479787640716376545736343189040708853499358306610223804033177483268129914713763873044335809619405094040023828209897207825899624809875597628139097481306662425189663946458130944075237122843673815950181092879743847419899712603947841478188288416720389326489568403201495733599279642340323762439817259813651548123863894834229289338136366421057823036334415466179889415864273355608271570948264914607994070742520367581719013548464167631065906325453060056347139216651674564626083522556531775582001242320935224600229640363709528464986315673193937803673455956266364743709115940887566858236913377953356471379553138193805376954787816186020714596056098736563955189640210922729837216423589603350316362287260805671913198982575028648642692395226905660080334425096787652904631527849507596264457381369058486757209545489387636206678642410326044350812787027669941165735847409364293113544557527498603816605468895530693059893565472775474784304864108309772085203948545857864325118928033283321541808280291457411690569140433377192338302800131899254909850401684087379516104030008018830669792933116099759917418088901798653295509521414582340211522397460853739050677941142677947944963243291156504812947954141615099741082956214266400245023584655527562007100101196085336636686819566265467417343720883772646881361823184400110448566265198239058997207798749638999950669586694864509644880076069499394704918336840822645818908566493004225237633244129829022785904309759360172762311122845405477338772349637784159972162736631942855773073988109064761558719450083449461842979162110262050809333978897905012806401773944293618795479977574693436209337184937829911368650138838038425043265764122208106563563682926304043610797298066871253981114700907020940941180491811711557104433878054408269724483604113213499772118672641562440162942243393863985749503930547558175754076421631944137143546138455413953429283756839804518058555050755990912345980073477943767935426419749091869429921520074887759036148664272685902493759458963973701427869946323556287500311628438439790221655275842231642975095299204287271692675758652851915164654502445252661633169267694995737167865362413578630209137160677714858587097268998382426140016054152940915314306309471287613218959969231726176239387456995755060132481643059820841737945772879199519795709871012516792021767798243204083702433230827376040968057662339726092630623980666507984424963985462616266698494155625018424726875855371600290688976070387255740073161156579699229620347958021969072348594012274034435102852187019347373374539566233859527489230809519994557520703054958882223323156517345420701071012909229406191888586965377584828635732030547776533927955020119659230186749049949881133248411024628313973486446655331704513767020292533476088189641374754765110512812024386403790591226499726576659205420522532620423956845835076251309725680804214540352390682154602019705138704355705778795099596035442813682920796503304811982430795525622791129393687783546801577411583842100038645972265607322441679300735729603328053719901726731318114561581778951440963389827478898910189159538914312213700351958547523727182714333774024518299083902362349737651909526039586032207994334527469951308548344220830950657674774333441291463779445458410791847554383580509570153991229031000016609005664768794051357590887480869021781463323107022307680500067626099715251588656956863994240308276218670243900900555111211252545701345051461482128780822228088640892968400239085637145731576977684729255076088120356883772741090547964802622812500408536004590125495568068258732605030700078686475465172757949329047625176475903636189399329919632322053761795883511345638235562017977118979767552583393489226858238953624601158820601389143492579819576875694876222095361462342592867447694122593241020942217417512281225470820810433388716056886232340431470907370857084770420066326800017675598943813886221587176434013603962359415905237687540125279213847382554432477126010062012899844905813244778727784462783072791083816084098335959432855312336720220179547771052909780545022743224245873258515203108617268324977340323889802195159302389726946538252472543909552950763152991674425533719974487745722272208167031442442812672384696065253408847641254901663229825328941567611221169192341406386693994733180623334978054913136141944308716256238265660527465511445467096354402810429272613006802534677002099896770195781199551107588764390583610857083189119139763416274462856332597931468056990902743720509091222371226776364473895163970204367384678286659009416709438854988040457109791939715390109102189125060613444175801059028757992074904699641788755422644463775726749356192642652529731719265480500977656303238568020700706199877638175589632603801806153355022412018100536749531249674939507428466580678932956969833731806658345887479983808972534190458551766474568732118624662543523859030387394200266694947807606524145754709771386118857772835009355811650145135231001806132909224616725630336304017656251654523652692118713718788640902061800748878939580352567044370029213753592555104462410093346460395132284252101722214313243838907989640757465888014561556697270365748369558455260060639800331039396742610253665145858713091062346543479146574236423938429408577829476596808543341146171954649295136560763867584626053653320717107762160948678278796068848950461784904927852242485270528726323060484621739455847992549230889630867200231657719491050921853412665202563958686355121609033875718062883868803664376210558110498676225884345879492275635274682847770911710252696598265384816971815542125565616275109508532558105800634110762749403985316072756095107912526823437414939851263091217797878877619596287918069853032383064660535296072856004800021867584355857982502796254753341305921313597176700650592280207299382636893067997167973501819117338023439720014372635266650685635014533572484950577323180833985241037038902881285945665981526845126977020241531666039513828603388915113311761149245650704787070999101502264342625949689294695676430481032917358368394366935319930890854113819022667739947110018942512076833821129383732923997322073107290962305015936654254989776651355840519152048140875623590499485419729411966451150431011032398139800565707823265509123329840302649902583953199939178720517814612137177842071677431639486725112453156050844031185943342180918507835711871811353984801637964498684751526694619142855980615544513492293657305403970994276904122468764617460279983105647259895908754401600759994846473064210417865265114690135446010043146921457636369731727139234074583166835999136166604219971683290097993855375594822936679934347113301844142195784109802031498469576347119053050859250737286399825887102469549260966285369370527487804954195495295784214033867420154757662571412101214591827465703302030831632970778995890444176464837841224468846674897114857898472466208649015480822514834856003808078954946196642098947982037018087724865832926005329274390423312575535705052124415077425912567504944334151727602964158390109769572334516467716654805685450335424120571711607591309743023847254859077070560738239284176454046700335332905377035340362669278684662805740380051905643598947239011677687621708761779062569055459103038215921139834540686493736606750710557282607230239049947255123648811495992760964422542468265572831316884902402758188602567944711820866936097271655433511920327684211686394252022761307837242441803737746352706802060170554062942466378711160109848531215556831293973285340895636708943719391887942777115298428485269580399024000720545374862301660993252739008800384292692324495843398344908952647127060021390725437834206673073017432765631411402618902809508474406650806524657123041188097660463258226485063910711115511233729926475962462480251775329444006957467679804687152646310745212103416429025468990792597692784225848742585846540552064549272690356857952013047792424614670401550172689947041008757381491656871910820088608394074803591799178061014494934082615313131139868838681585442553407278123959989445852783464928671794393473399942967719240803335160453858671577771687244439487787111530594762987633198540958214927137056628268504524661496734914459320160363632232792371632343700027271342200231710523682138569379460678740057397045467887218806004331699091128707661558615705930956742743506635322993325378441837336623018421941361406506332330793651301550299088840335846223042338239546727240655595497956250824578220384442920621269122602820176263919065482602051911542059658131984318503270221833150184135613524557194409499789703458713586300897023802830794126523795932179379239397785556107043710217801887234118934659579204022921745207562237807023511716947398972050221067435502378617526107180375958835317036489287098426642375345687026895923321195129449460615580233158399709233742193177418176718963428891275262010039923590146301610614355313613048190703961959802550228212445833283363120085115283388486299340626213155474630113007431435846018884554703220979402632649726894327463524452875214628922149077346002092110501887732071089775689507500738068082664717543059648969100248660070796172826267693536008483875689052322993998655332580742904283101219283617018332883323971541430623314325602409292000640044628776572818879991293813690599355126549847951717376115376837363528963984399419864411161392878977476563776332555611800561334458372647927174844647750850789989625368405844301977616285652946629766995704235249650846194442828679662231601982084797906213998011449662248468004507525845376392031334059475731463996411460761480740866991928017984939263443994154725668736892857801845050670156236177218916181346163712829975721361328914225942676548284094363892953866056517441250526425667304051499899434620055809005733869200804515633131268171225983341993593755653405334807327158085942562840340735171873215904904778724462053816959152851429655626952712582431615124630733092988306990081854794039982351446090558636782883095137324005383967620658879755507256554645197479248281284973423317613220469856993257757532124738810702508310765619334573850017973942271787741617703045871558140411903993611074212652113228257301506590924959275328468715053520102765621565528700100540524203044870177869254422928669920858052128715801910621964765867450528259488948572437151945522658436400223961709015699808791401488241293341113748082880513445661783345328060331234240347062771775657972504489332000109858398490128742159461087046072880863986761824020619799719690976815317062647701207228932521196458870397368261972224276612886979769802402097878756608934537987746367447838437434113253672324236212658400035107705582990997464942218508866865801900542832125078389606153494305194076882806646366518621678727134127824087047938716867578232496135199985375982464910168788504354802686397684603112407978757860543729355224577088345426459047973757597163166724239918987347388664482389730487720040306262744841715656975727972481820020743732196181129130216171062152837165484815504976642975746199270601322652926472144780061631300543416213033872260019447037896027573912134736699748192413902618263601788104301921244135625168119227858614293635877371294238754040390013307801051532129957252647873755420588334435939665694860579700163432426625645319979187647909735834162142021266168427764495363087699868256800684646293002636719944154894535524336339167434165142748802899593492395271134042330998377373005585718036512392656588434090551831869671050339327921901467200104704456982047679436044738361617873549794726627486791960358148752722123276414588727872789014184366601314358528489280198258045111273425048525148733071268450708166493281503874588495250017116053528619732764801164509222905820834421379014094973894173858532258654159380076838890558167220962587364389272736636322581509273103367181497562160667060096972845054033947564895952350968725403506177362029312345605592057037873398752423792772876516238575694401987466538945604911702489356887029288894351919449757112192103528458926054968423420248041024015373753959562636217925254889394467962988879420064819886808208713698960928955734554486237380816275919369640640746146828237248381038340451011228493215052949348980205460861183575978508423202307298024000345404780946493598110177644991534674892854065740609650823976974131999668524436470369800399142482035288296833612389904288818070421279493188391237260504204888526095817044287318707497453331069845014033898491847956265335182745562419224335409167862584655191127580368417318465211799143604605727100413521653863874591627106645813305960136302922630212449523054177742028346015904198871147232417403061049326271130225961263938914714992367764978026794440379258611644686021889517930918035202185053481417468188358866997263233678376656818717878311860758111974004442331693112205173385305329762972097899695039630830963864596331815238282838079517207426322405692028436143626444204830175042114905364997129663399676918653600266562394914214222024385926392994376929104820492323723796397093274729382538584170652633023991165339920632421461616021499713100026061870510977827192763324770946625996347767818192496068024827459532588154933537526022185385722970756330270400129876580093519533751474893976981856632031345359539237225197920086030716849216621600852275841169580340542766419023584024938102854434371771741452126779845261339938172140426606171729742554694029299365739238859764324041031520870635597294253208630662511706646572643089988812704785314969393761736521306463983742740531301439977074110278293576967133777753002265249208715779702140452669919036665667188105137062445042455079665836656306015242957903961712773377639174286331522390334033694622436987414811831464531425428100491933805539555190469850839938688769987667499408982131720283947814639055472474503372767408743024117829744994821981374637747730101271005818412668142368246183540505164519163537148050296132825847623872283228022605534908409808999971126277652748998466652896014423119396769614741192891700379795559106295119379465600044541856507264080896181987062304841200773786797149054859841508904372497956018410938417129575234533455687037045042150786812039008040193291735135655827978937263336425359005323139259224846978231032270216174034105098001763449543253153937291521442915718694962323579571660794676897869162577424665463420093560021395546020651634499196655547029950942366197049739240981240352051199281053285870345712848243913481825254771949293524104951318760951810381758142152269014898328802622782619476895328734441584705840786081923440902038097792906112969529494403513800496267542662604174173190568764421173538926579075576801324722554893839241946377461954801292085219764178177868490969669552936467075142225279330910094219957565975500736690698454201010187622148388126336833814118133883325581246228229335339136611243817486135951648506839613157797359334387975307653477023510543387953454498088108588433315154836529030622360380173615187001660897043121235849815945904684984912479449860376707515175554467206475703670196422839078575591447285598191706709697742145873194955171155993361117888613429144107296624826351561939373413200976495726676942374785206924496664092383076473667145181678509045129792288652697278842352723971392024887419284448300747001448562930896393417601479309957959903070624932504355144200705925261639196241585124673274829334711287207293194083977944418470035675758612192206111292004997612471466459077025130231091032696808827281038118727513921018742213216314679492518307791668974047166111155253703080360113648465847181912854681044251200889101722868768721814313322141975067563824170464586177549249878138260471219965843258556543440296232060201350007985375319609153613363352452496694479550574130336733137197424890384649557914568385047795339515181893991406726097629593821438166719157774651812779410925314179010952143967468873806110403622852764846833046587781083245202268203008199607827793915739095354599804279457949626968027578286791715753088881304930417234877030222713697244125034449131003021173622265301208698428542792998697481806625537863475285058834097645082838576859709488153012113431219744392336517094771330512597168626354870990049958944277085324574962875165750653140057695600515242320111014127837728583482387873187910619186626326735994433247843310377777412015286920971036492819446458651020716437074307861104992048781805237396432734279827666708753748596030951561969274285275054613120407291905917891536689894751633914581261668920208589887240613364801941701676689464413853435724148194763994680232254261192483166394716693417450652267440091101628494408157349811797296640096980475990686436258424535761602020776677486396836927778524624860944461926923421857627806338948487121530050243658601963776530018911989693848977418083092984793084526984250430318813419310462979922494255754733590884853370954151752442947383774932934988246967775237172730638612112788751077657176422336410972036493348212010845228278881834494737908892568914341265827244064119589100360387547710286760766383671796410269481625353693753348146205560530503631632234341270135678533405211920829330162964577605813667677261390144806517068884980150631412440597677136586183822109113678526733802454729470054491872469766603106297258778163929246571351359298851782028441661068586414840661269798695276705407389971967467007241818896598591801119684693269889076709948165082687367946608805465971675207603994403924663365888305004349972930058426234796634051890676799712880708364022857972975825285181889725849735734095054092735188994365083628641352863321495219205466417371127012917980714705119961027150064586810296942850242715726050462429313298437432015987404941508949260248163242042317923433928740388247247756326333534929696889470226970688060732154241158529577667003187417363461253195351889922459278660745871519569392911423434010598661259857911929775713076829040401837669559162396903464883650874922704204995338767668338232567637635965325981267620594173061455294957403019086987316520750492789810624588519969473070777695684804790931516161042688440691752572249248109149443560890504107991072717517428653766453107431818861215494463586399829628032253130431263867158605326505514622004588889467531348478845394377151369244325557559258840316896786006030656681100814068283996595382159897209339585498762187787862447563570002701881118264313903857780165659329751620014984188418020380522073543706711203853484246369208975228841168859275047338088750944090121944660304257056061846021209966729351771824125265568103701759857910447317266378291902378834453226931197251808639315547742139821821208344731608004845312411794032291810655146554801869432583347970222546977029565341050289702459286433944548385987767931956856375999564203756701538744032832253887055600026422402795668989991854779371648840880990940273271228483445225857921142308617227704736182297838056992494229567433172089600177581470499308282724574291510561353210148199338600216430410672467644150545814487487398905354104404171257611903861882416592938181546560104454941435866335353326235525676756961878924808287287539885441061319206726475783858948751085049460555706330003087474253397483505784236810927063109260223333769808604233183987916884912241718546892696047182531277592758700179233551592733295598860635386025163654182631367747981494926184573366754264102964655133078338705375227758965350123079289686347393064313969172206756972414761326749723596124801382747823309046567318918190073574068444354667019768081666604241251953550727219692092956218451374143515806876437390985525029488201278829987650160840765912896076543579625869853775679965490498097170954188487184351778818861274346509259587423254531440273508997267757964291381458666019080074635244930794847394980357605964591191546329945120928512094585083263711756443582084309117066202403722745225075143759786616657926781729430841900888001650574818364463027027050030890962826989865661992938259447587659906738147886582409381032812468168339237518069343944539790657129577381243203657562181846512846987007066964322933099846900726059183981836165690492767221167995490955525428061594044132711346483969243511580118308170871831106738084617690064185180959530217342889610481142357155038438632251836559863239031628875588823633420107883091125147783390795010732577677926716453967646120416886750941939927464466033936864139328744242007666825363107083640306362539373913788077970403954258628347354557158495983961693176344656959076334401975026080677313096790166491089238130288551601262881946056951541133739196817057416163270436466737443902935323525872800320561283324750009270768543517367860072188094718880883797036314605862373295379754387761075095330096234198374414924841259581084102176270617186240793141762058741762156988721185901732137690265085615144598523920223869699682159133040619050331410305121621093740283829959337804932723157783839939790042540300437475912801392166796758471336031567899721530623059117335109728850856995904824995714825453042711392168975754812610984661270582576731302184065924112996509686885242745024737714424916160378138416520129366172511042190314996391630520511042145874811916938227524880079331400347750711527476750963745791408954191451030757095442420994921090167346156961266809258342154888826744546956483461419654092285382591160802476108922617315411067069671616575685425005046305755679192752855029416667452211965321813761635569159593328245187941364893024708609859312324260913910169006008925103296528352523780236087563436938471264413881330780896244869307143545593458945635664951752744875515637579300212280972905158649768545807334295998251784857316039196452259690701597297068517966271116288207695342634695474049719501629908108590686988801720795901366888996030511530574752944131621720056146365621568050324647202814265524074388370077683283301016291331304087436280416208730378221946906123945510708579867312088502260541430983012596475857000779431685397933373828624312414457716361308114177421385053976109395500457402738159316599633324474876975234957938736350062351100544954231636081738858295060516741120825492570056479530446315626591838209572208448546530932772423091754325636123282270640795316664948050748745579309048572378609330622532350683095547662651079734810480595008060740558504246656640639729321939960384890433317711586478095060983845773454831012941538268054744957554594908877402974144425745004850370019891562366169682654881258978421098156010099504355162805809972459414058062773965721109914103575911922062801134025538699582486658252208669030692816929859362749879979948417109648474270976616135011446267777464959097285767056001693526553473428363017848016075222159110493975205907699642588787411182112135814336277751076736484167928579596528280519631788488788346864509520823574667239857091540157748922291540925749141432692847692086750215620073124794804173855231879211809465203747603453669419441212837026792990031273663603414761322088875722411328033974406060873349302148089970833748270294667490821811704359060191011755807823844905073495187366089514332992591692687887626987330477970902706424525514555083091802864673815350663304964709306065855333765743270624009308411034211226849525973894140541850566722805115261595174281920014992008236459452134559961064841413555750548393483930977700545624459530151554531011025719736789316012250016865719292774865695523344601248243733429428698121443454099322893742500320430319088023606569828846406387473622377659417974075315731757520440405418009778743073208680157416400099119121741599306604645883623838415416807240751258596401766742281729721982196844156753477998478832637194253613546498910202283000110864698040808584333001926200255452963593010865546805541806721492355056822652911871198031794602409563697113224040856414494312423553108439565097843140670084290584914147971354639430305411199731445225441421840009954718930019998252492797771491350431525704532709661390213270439787617005817207665482009010921294314169771499843685239764326106631745648174310084252240541058315214752648586649361728946976358049275533938807406684839413994150932006794869087470112226128963588850164523681191087941866302144353026125685507836045736566927590153451730785822641155220049393925960023711570530929002279657853169571753505935812395176029375205238781302823458399645016939699300217449478596529541529524592581702583254809892247299061499696633837749509963774684361109629271680918588840800435471221613709690364487007143519808595472029756209242056835051440746091293425678376164789332414664394427758931168522242953100765877719107732449615529909783977637861845119720634381584983776399766689823517624478558327760787083216052543885033688504934378401065674320291142017423553114464366515777987710245356841422798419347513689470635750585145863592718940846751450442613873261148570098363071291088159994535867619680452590148311501777479688658251237239108657100868702697384773918967214147030979763733359689242272009588748320476028193024981895475955225896291544381199131275366171930850084111237655703424761519562131651661628740564290704921779148561608274834305929584875574811373914649320657584261356026633332989025825400323660015669076253956638359015080382770097830326144070859379893213981296571492124790411591440173642445131089501022600450877715680648777092099094693800661127941299437622963635663724913504077308820833679719420417601934421940092976108480421031495085714468426723636157908854712245393416561644722730813968045210433591444948668356216284615608505058789019331906609341904333343282420713878722836390645645301200999107690205813551578230172329822789670627344939048825072331257068433265627645452639749874232856140890799377757439861350889570855875319605971994776242977857133827307676807668288945814972178175331366405483881643075969841813200371258646331225310805902554822385770766949292850506923826974413998355249490560815446479423690857391171503366674305094388688940503400015662185287162916728651781122838193897812030537352176851094997307525694416836587640209263361324035963708810316004709762786372950904992892634350857574204461629425146040694039286938611823810333006627218778072787391229853495309662829232755373050073257301617532036674002094027040322132219567975984740163213923949438545165814115392753082944271443226743398951492788943850252427247169228242532434441492124023830417859476768251867998348616523109035405254031304617885159775555487071700243890650560485395273215011943567562919889163123941606380726412146564815528974622939995565466614172241105575235431536679167790870560231969059463390400058455216781403156557425728377709875400802251176736095953123662812493974782639908655735057899742020489063067445658488409638201824410812198051493026131700346443521841753678731293140012429293774344455268470711678427876575063350731027818364182309375887338553074176740664058772055007760321153311961163509003323868215833441327931306068241793103991938056480303236713928284346775052837035639204812806148362642785700353054449048252233856488678235004275068007961559759181607580467232480167311681893337170580202393310861827527544104571721305668033568084636566714409589515247566312131149394880521598596294934589249427793717765495067113629081200426515686082571537286547748256558900152111318312990807532441090258239065118162145495348384682848626599691562045853537721874203760232344560259333546686743171701917338442861917332176597622549674427406239514197101732979163381421799408280843136553453097666321779349208643586523692078898367644196224049048438919452532987759178925939658603259201119526380682883075717761661820615783144599027909890287915517021568117960821744480177616342618456778191534239582691112385436731328943261755733526830070396543189732890681883121322680223791444090963592363711970731395665970034468912257047490151194342862934742350855706973344470777705790194700407353156787019052863605517759227477461280729942490408922713668504160881074996687996096027566289432987385127797581318051189228844305858465260219468163946050059464444315485797826436637856446703342186372799480534447723193144657365854026939663739841664913812429825724400292198282953681370778321595171065432612874098563726257080934571764592006996918861551288145415712380039181471361608649504404845441461692042417753410584314970661113210960450950305527886201772237098150685694069546542295757320164971978236508665059538337825036701622682374029927478329656302563666210996472431991521001873022020773138391787716523801083065543873344729297762762377528438919880908637246775561499736212836539486375525443473951039605882996831684574023951695474242166954803782228811728205916089435563340133953717894276069864757776379039608051930172646041505894181639331531998646917635403058189018549353301839482790478474245469278288300407744840581459671243298759538137184285254487041749786969918453800450826369231145216071754515150217999069470049607067408214492505424059666413986568858412275712767907187730128149388156053070774270323360313609672055657865113579815987607542052255940184356664977490580277847663470612258221017836539267281199712104388256870827290242668643015526642463334535713776277078656084664281805515114191623386993586415368356481996282627220425688432179108685119680071732119240868268279452220021207241954487782299745750515356320625925615048117290532746454818151150204634196028429540459079189611216547714386943078989531596699303741829119741318585933129451816837690915677114943514867125541848952135180896335799389898711906515690290571101855759431126821578594377371841754193601486314065775627842217201609323500740008432095140801735169613386096756087911169336534665092087739990432038334810921640584971176590069846306856859886981410798625050057358704626075314722423239945721720783919168037361517930258761005457693089223887716705067915650295285476314813682803944638139882871273367377492778576002527117939517978468414990762347883955540754269621307471410174564920172225200391261444464707793245798122824400842758954944412115515956896894005473984854142947579470214841081425388626868346489962147547980508386582570263070880536432398344172567837658042553387600814016023728830806647406337567741766263089234821087414224971148601535790742807770786105263282709399394333944364163861113792682220397102975397024166902777708520319687838022936238697563353607764507298719785757370408336057135854497605195078386270410561002847541929610622888875402312484350228892778878769536116411739558303520795973080666870658506668509524793246129380975611897606506058490106772666475577113536467826569265011024250980422975397398018446599292172698915336703349015456133881051119941626497633229215070472465791164973471045193455338089739826860836134385435448966418834149849665230079703773556407441036218205304432299490935322355577991577066256646595143165887051618542765134673674305936413967642905335972234924687979699075339898290528654139212463703257372886837462283541220842656227017859231799180984557322696464716726122699889925936665770065432056641196074300552640177600221792145834088667608788095902941567201498545983348952747486711034946549288082955645535760069720607832852411448370405155128259184225580147348752239470883021053242930962258565047125475273196700701661094920944600998366455284596775391977234601002472164359880807308431839000689262179248320049904090782620275448589603440135973131114045157481691799767676230104070795514029072502708172716584127238781368183498239179153957532192672648131990403309551198345014678634610017011208077947594955319683663517736453834654713557581459228863931526075498540008650358810945190303570300286187869160220385026378783636111914711122152802504123615089509156734382020470681838348789221328442685608482396225756526928795573268632516740697287412745295303251300568682825236056906656706397726381946271620964518172890916948989469027998518338270213208943035746216319364584728735141083242728268045637296823333535427347600878541451720302564336528188387537143894705571783312553676374851449636991980376046363808919766892849167334877095273440044527170061715755302464727777376335041040805023708350072218368268121208927616447863020600020279411237609574602103120956990964270085574085224941876699163908334865678067182642216993361304574273399777892037422787376152329836348788980102962556731327971970724121982089406130317289426649685464503369269965253891395392149172030956447155465606189974622903536834581953221040928645334593643455911980344823591784690497470884700718238213168750672360641024629553484353088755979663145390860682526880872521949661006032271012811753104406346033877095884595432911121398244299018946539518016598371949204768927906434341365196887392045852043075105877991093641239273234942913691046906222315118461525129715123767308592109288640509381958191275518029773027299778005216568307231871775270450477190868049693760254569967975089669162155426534308916036563811019796847993593312197759089148917467512857819445116798631429105535173471476102217545385555710824901200905931897203124417755695723281841394208945113892125712275652035283597400322642730143599385074884194140201747053451702480285812958043603365694325362225351676149425170149974488555346678096743329053759573887417758021428743214603189123267343560453996872014456744745131967521784801165177342029458017710665099648770417597992888555085133590317012127477511487166185878470771987639796547404120372484400058496079742618416998226554598531345449725924811144526973797515094312726302130810322663286528141814145575813581158739182309546513843010541206004083060501250983985576804038513920280399616211244725838127988435781310271735202813737721843682482291683119720358329941640368270037377497521641645740783779629852508131378192229779788311442497847822710652823523707215059999040316945417945633519296338364783207508345952906957141963980587818143562063060645038767336006488917444611233913317043938412472286314085456406671561772931889903362520403417216757752642176926485759580386879140006830640138885680013170282044197596086119020313027467989193797852067296610986152424402874997979474065309905454308819765007372956020531207077916009092379269185296165535602847495603427442204153596869544536324800782316751249903451235035237603292846310415433248256288086117947019498741197302761722979272603320168974376683146575430897610318992175396982735562479996247334608529174856667758443874224129256004567634230627532754290110879821205482342565879984321346957954198696728750535717067107028225868789387109706028830405828083989414525966201581330284746464489610738356692665561933204952561374364837087458497376230812629428734776049607858484662676870147477290731956701440217247940641710657895781407304900281250329758351085673617418221402022101870773831992055823193993548449145078010260551860656278011711933218215923458649843249309174919271540842869553940777338700285240780785198390214506417785185212989743464614741034026265796093308816160274917221617984456668373309368759003982213687976356534502524565705812476129954809667877874322294131969690599090600071041075103440987438063760570268845303264348133816097251338827234339279007775365595695934227423384632505597599777120553972395597870720044503922398800833692208570722894325369109955551293419038262783608934468528027838454238716891089666094038480188001546800712845127487997139247735738166197718934616403204821683849941119411162484834549791932852399753968066249909517586010913312952974873366348464602327070285611019890673941771514696518329497953108538305896694529927497257385274335999272963246087060390308933977107566644701161943610706150077510901841216738580169585657675908495130249498519768961359281234673546174378993869237536553985647956658186729118433380631050926241892994522815982827682563313796998931689967743603966593572214988310671239876235544280796897738174412328299333961476948230561668956769822204447970894386652445670636206780741368021856163266180162793126051639409694481661776288477138278715090773267608387050455806462113436854033042412350352164779932410301442237811166094102922929027360193664725524591389203190990012663145675092488457242628133463111584911754273388644181063193653131563041207924828338724870838121412312177370519509280985201163786584733740048276113642847168649777046292348308730807990400299092683553554844158306981543639067935766935678662509122022111277708720783697510177146188952651392527795557977904721041969207767574735322196782862844818145723269432783231922724785660344284707660550542186654097754448740403238685477354034777512676440279278279336371151025294459221213437864537700068001001524876074847542081581797827859478626768616782233203093516094368913089288202777745008053025937884452358959566526490417167988573546425561304890947229752016121399418542765757064138788610426254039846061406412731946568857987416121941715433981225107940860167158679431245957230477321663272316047009063442195733636010384579792053610692033835229367639090375476532120713147858825811681496951267997400393440601075769101259987994706222960666598643655031438463599180651838791869021781850555541055948514367543549857955955975456554536092394886237920584453721335793245098842245221948791191610652693845735808876922312332269501079604571498129498605263267121686824113357434995172411524610811979896383584606150711846448939375003152628386479903048896480412076843348858099800418131886322534611547348373610303112352846339828569111784266376977379633861118415128965281522032232320938134614986911957526060524963761667173585740470948076582896525704639635948198784707208385871477858675363964543569631282494256300027326788717705338665474061210458988475594663639776300343096666332966420090219072125805947418973974008359114452423854190560732362473969598090004156984196133423777067759715772418553361340393940280696535397680254521295984215827241932137482564225364059107205584215888912396512021717644877419902136475190198400513010022552008453220482909467886723892037572832684418350735104598308399580464621977348402134364042777642884934876041892518008653050958786321806179679798127844003111404540549478887914362533126142681491116313491344418987793188432019477828619136415166730366278005022461816569427760735811827706677185948036739623429526546127088894542428091797047971898023783762762784796994770502218414286635011502156479294190573314368926082582955312388495964393746602744124522787723445309592791972731291428663131562801714816065030232476015033355359458991665201708210389851873307527503302372234150469060846283240540973970364391709523725653734833011221216662794382906694442398232273969871615881672141763484989469111817524234441324054530853778693196807150410331474647911395766451368028180476509708250517847473187485860932107783369046008189096814879670192046566256923255137167108795512746976008747768822695868093043071489983272782563913734969081963595862656507250282919316620303978628029189803836444844663513233568430195419105007249796202167227482176914558895235859359635239052261897312054171416899756454485329526210123181467373298643494464234106708124722010378834466650886415502996421172744989913329596919529532397484503123769002034169151943927837944719222605192020368299549585092899824488467715632471733437427696243309497225306601716580035906294888853998094820900818605316964322367322853760229623842071263834299070347960812273693152958313333421120457920877410643012809177360807778217421965533588621538641591112511498174183108165397267273169616753328759235897888175478959701005875892390919595196218862473040664405034285126732834827860691647092476586740301104691259736457860815778109173292204039236897252004828845959447518251395605101416881508473664632751029046694333143335801867151693482043350897759688102904848230184062570718518121849565232440540355968925007827389316426403547113802848086965296015560416986563792396661884056001128086444279141353127282620157981670528775019360269884745650241131740689579274749534610029619364105295690162636141968443150802063437477974253446625797918173394155212200573007317334591027882292547501047816745461680030875357000791156371482695327922048211587004228668943345367487275829075458786716395159947286178103982704145412095103048561574794855017189389279682089508084294073987542034737497276754316955416246540286220601168214848759695020771248036790278424657667717381329772527770514216406302098384156946548044367582228216326693044518142313679965298255985046049399183853928721741795071460365910905375141645752944789349670302142348957309637325017381102597768445035740352764082755865876074267017905590349646144823669909601735808463366635746712929820157491758926054655399699757364949706076766518451121224400932796004122747466561440361893335568364857731916696479323520373173608806294145961419032454733245070974383513950903452486799080479860100802570080206905883597744927211280338319367197579613880966255966401878036076436374868623231183729803520243456738259121895550906604325555447803225412741345150184910863398110247830727339302002825717796510680196211805905201311365368846190225071488773344468410234375869169848688595869787893294128516320156193970479600348906712478805590314888868232795850585027334123149056821266501055601499894917400589899739192972099399504814388872638869048870368486587961453210765911261629974334886625472520910635244482628668818844864001237020757899410064800194758045993588155778667649760655502721376387209231715629042956447129658713493881986071915775972947283086975117839844540151852779442830050564945640595759309570504290264132032795782536877505728522154755981217369987311572272232091266414188172648969283127260359881332749163747943375376814055507244531853403673840731645506350929338186130306533822212506118417178033879587145443335319174137186283062833946726060568497747841976090780548319753350725609393491400938658965693040875759702835559897025515928647824723149567614586665396974911470995308761876696212493001867510873562637995614140388410124515682878889092537982991445060331641596843524311175395089539256179184028974583230941814783894273438094614474147934639221009146555945823602057321489154455788929708918367398161879852686528302779459178641612852485698236949124420503793025868701637348053829643731042636149352333076543300855048144229460565929410664535087176225988073145139709420886371827076381761750268071613732499078198590941530653024740606250899736685534929483055098826517399859900710705550652057292402282872797347757845014022627678867776966475415368095514714624473922715620630153986412600467563719876096644929542912820717800938150764950004043480603145458469940257876704363353575498396790448276835606140900158802752488147388108757326523251096217213817367664544248795740617066966179638762657698755354301454130196511269032759476400231301117752160948546958634047065752765407177220775245667806461213674061581130821721263076136298147225186156255036740851912469712319823731277830047726399824511970040633183277056655944702235038665467633809178067394339813387225472306550296871107662362910465385592170404069914095106477399588156794311048441675167839659639208523861887399636406078321213539308597492714056712631724511615554122550979420411730044035838901028092850988485822314292154084401840687901778116794209042569035637440414954845743275787474659231312400317601632471621753252021845415182933842523134270432371629881275816150094879649304196139816729399837465279841446215344942080449326348274771431367377499358717997795066280589123920440246583670457411281839318737490604045054210873793088404942566921770868078924918201261364320146681990559200405924559397252603512009103726365496109325618415260562973954829614478435209387457935914683709474126837880322997946717775994012142778161701405081217295373743253346728059768824075608657877546182461049295706118295411032599684829845231225722021575385086307825189586031872597539720378544862101395120298774632820932767683948732994519563782310442732245029773990492891826576572339938069656503455234126031977995432106308910104473691672411029015541194020560773465150487908524066617179039691931254557453351237536883625245206628729840431825899220079627532129937674474466669475237210705020715342167967762307100113515029526745478177677852740420863362205685544061408178510026699580966655979316781631788972544475699850233803178490153009128038810163900246404798969246895131622249288614137356564458157006819423381372950560797025279101329651317249677851547592205801516663568715251605207390591292898336238769795330501879297879564313794071180392915811869155680587541697059885276329823114429386523297999096691958706752457363573429629926858439582827201727041972489287196718350132871493001935852021738246843591143501085165803318387272265486488644077467046014309375446495552775281639205981473585302691393476739680326734163633846007917479406875904598539972295830590105437991853666584034072800939325419508918016675221879932206184636483086970272691899668868355081893507819553304393666354402498163631861205209500352728985994680331095306298343595133621420127618973421697463486169286611936552989561510407533921108778787479400960336440870201169459871276996224288078668604976063712950888348363066287266231334618522810825521518602982522338116668521748756506374126732980575584110226029511131873963631887247000057720468185586090782036400326076478069466110907945346834675115213892337143957018552447320193419731150627984462032675897357975034445852968579455797131013364019439588603324410543695530462647500944221825810478890609691270660686854427344947287442600699311546613703730026616567251053738727452972928545577919362652950826054344885574294802855945304637280148317814396893088092048724730912727124149144922949277900833443807343749451574690162745047429652711376966603209475626504284315368885044087072143405014308046493175485764323527762571580851416386266015509691296258251959362095091986542898600954266296031685452447637278714845263701226851649484209008192851458758637592433225755718908951640747223866663407353034256715494378721446571141399686191584767693091872496170599011777291302409527772379927767237475425480642199453166194428139997437352368675902229218009010838915071104110847005308926315763983311801923750815541181717243580887062441166380273675392255712690413335183543064055484026917307506276647250771004671920851202895529676929971400512932439187879860283740109761603930427594507637673746967208642573602761693653053491468842262514084021155194683753345224261906614466245209663004764257958230645129511462678047874118863307667157515141314032091282208949130680022276158002947124346396035308212523800453369163033661321991153741738473647893516852755412324977481564519208771674678795174076822086545080443690949155917161892664065486630165954505099955510916803670887200045607228525966707227351439086427091347533776493517707813457307436388054360430635260894051241557637451972530100869258081602455160382058330760895674524328111985388801506942369140261457726800798917624712820356459701916109904208127884873912110897691536419462031342893324655333638795296007329735486369143139771493146123208637827386060350448220088484704415608023488402189950626882975468375298710984079992141513841994221972902494633651399951806679448119757340527280938259575443846166065467630149144605909771186782782873317756530008016551879546538392484936328354981665255330504882559069118665819381216009602824033258937840001179589054048275322988508113866264756129594185564940718490546846592250643200545803754662694642514808782668825493965307317596946643990589030315756398791617932417696743913071088750326319512427103224322397879219708725623135940521517988257055896584988342656782976547603414535163533788321567368408814104884591598032309361110661050318194784518299118270991927160653391224545889474180096230331423648743143979222702389843792152515593533332736563608732758125840045133360821427769973596664376289857026904998635839791914900654022535955022468164632205788800593714716784429729250710776644842457026415284205371911531742700783768525710856660483117610419730361939435280994058017014888385125393648497093844514468507273754115418777061399211117204769108662428371751408594000262612621824324692962545765657994208738929968509429101084552196679633072040817916732263576749355160402398047461044349735396504306948925024748166295098947921868221500964853563806255852135853739748952202481424481557369945318583983507730407776846245206387338399393693340919297037382044374103100497334899199333353532464768007030353949104942543787689736735450368793570739423685759037314377533786210452170192644003275938037206418771971416038151391388308233387712558258525803590152857238471748602164688433740328586671694255180308872968538608331585751429837673788000662752043160331465829848045696153133091718908909427219167669718737729168391696185361263535330894668369278121568238918155737024314325920542820695934203687026586241897480232725993867624902319858868885877121091267397762903980297127922437787230617884872736057782342917072433598859074955417823924210831552569084590692662376193813893466259120731492667932197965559064994739373060844371703726201446931073384549286774869072260404815179295771809564383630667237180359156179364996199185200678223736715731118687101652397898413673426981109990597243107861222507147561302109539481945807818672472816635854966848397169337519409263218944286886764137419721475171224409070777912656489368606566540491547587401443185959402580626490147799067958249606765166239555738294735562029892375241313529769095936371838703723579936114792797501328003116559246972987811320828615334109744992878836501553897052776215677328246468918997747013237282185980996405375174320751883903312109299646608945108310145471930792851162981135117495676077807552719305084470794537526651653030247668600246106811579223233590025007920958765065530316695197495618196097806309275975044167384512404820629470904259356088043178737181697793373354342756149423739116833120456371750136093046168325341239915050717793488189908541121808918946445322206899801986528340167108022692331249628071215798561030011039387526363136157116111501540735653197657326792579261292008157119726416483962181059463340961436976521834565029520144854850220546982127124692460265340934949019015871486867724036703285570661192698595656373934727769633681675700120247248547650861163198836638249770100448279800455812377227158022806220875884473168571279393829828068585844410085145793380795961021525040508093941431359490783492655092627192707645124025009940221521976774562400509449927755541398228462630371384522623107283130315773604960809108045415250438397394896597542901763880568235598845342854223415116920424087326886541567861747750802601471210897942781636116830593477843101655745462683855349842639827077770297850429381526188882386849493510390240030580069744966808163610237804524763188863794558074443931001058065775648064842464135889990349406300431717858336920318621774564429673192901221330357289121653914098440771249242641966654824198386531494874321961357368174548295502564972701660231753641662964723465623884443781826493562110402872994472475629153147484466755902929564144531774946435912292126550331112172312178678683175337437840565739891799774782738162244178989949101992995043699828268584076830782640828012272120748820278014670198648645364906239530181831620966150354969145848662996358946576169786384625736803531493750169808611472098444604634392716358263773313046451376555788619984095681856512537686372942272659367579608575737257160067041304174639019470612574729943921144629446285203790633077502385545394131318297343071507261315821188764013908538746375270687270715262752683928214494290172920582154372316756666424875957439931690056703389337131420965236581199382727509032082934687339316713607387602538432499645025298581581907806361870938582647977994692664555392062014438742281781799056767530769680741789068961246566921919531170062812461652956773505059736202391636020872304164108141403157596472978343919577195676380895264171901951205411762224741809742932055483670251858350443112017033726904674168573978870811765132022075032902115831820562379802585585203597789529700288296170036651347651323246624227351613581086470424632585874377482900759000423346248698989204339825768794499629968861507870098339728310480376992402069085315797095420685074548700275960357896224470647244210335581545100975780490294005420295174809644859352015743166198357954457031865565977970205735565267358933623978153854726586852669395001415304078431118361797026129698321987732577946178166784704905189001120542644717555162584182025538819125834147813564211359479186579249034994274892864656125211615621854257261958630810560696300351197620627898510936922737779791115106721137146211592386209967999467221705810233871761673395793983600912834951884455916851009195998790706232804808398747830644677091574017624817336504977753988409968927903559337422878146731874297440225195100290948266926898800430641426313508761744143444980303416011263562907552623628158462019665711525552948872537863761915683381961611301713070338336835844676786148228742519375779274593670678143202218904993493508991023111426133088581222470992927809623892049955078342678695778675801843736303343830430559004365429145334733892635954822499396920357630080793054821107071889742988758059796364466572978636736211268368269027122567977695783864198193088212306510726164005078051434157126431587316729942877286508876491662717064205795416180255516077007892492999798118905602787371087186626300056328901074615635427393364650052773746412877534474468856088423008133690816642278268274566336812166608631539957839563151405811949675661343264914464884104307741357638586133475926579081915336101926976024191960633278192682531353838070766244446039193755426110072914435977127260365592090940683145741351647900804680405108601646491632745611166249604088547428427846510952707822404344950606238610859260878665751110625172990352857041480065251698181477318182234344294731096215458771818029318760300605160279429588922955027131530240127674466742057706319642476104055482682752872944737918407451550242959993957493825339631173923888407805695371809392020074621893566775285397954341814566096025555491488646574492169985121790418188540190409665505243360230718666126452644366014872307092460605920170871818592698648459445127976603477351268227875014846013822874486478464328445057907159448206576731005181568876201286176301780577147212909397745971338599613971196841866478957865277777497374540085061149249448603650745920331076329999006517997372227776119539122091285815618636653755903401382627101479371621606146331926957585385985582920324516237308621190582648606160784615654730693457715671848938195103222179705764891129659455746075194590038588687335427404282083834217581654442520400565676938559657235257996998727457456164830037642759575279695462695978360045962496012825242753229051225195252831044335136138245397739939758184900314254545216740274246967835922822272402326406912787180405388626825595774551423799677303664891557931689723457512237380845901030797897059564131962308265210075873156747876388175423695811701112446533430328231157505187691238599452353356591070326538399440270297417891122244140696861936326103785536096510619415088139962257466381496050673456380970652042312584664130564052160683722872460001014120959649254472947314021450828814643433442305220489169532792336262106336459626986701124454996138142256930021455843646885380061976486545348646503172099986182112150125812615830649300862382232427803342590485546560102237913293965970920160517496200891975860469342690966034305009865873868486939429112847009239643128744531708711513437024284089740802969721528131060268019784385586482025053131487631786022647651166489598510522344781592548632939128588071000092287460698339747027525508058437642353506195283126586580248901717598800032462109821530847925268596075820138366169790912308565784848601653541205031300465912248123068496197857476415548286277042450658671080643118396566421178360632894377491564001701913374206057805357118270722074911777993507508704184803603194657870187283043331065208629110773461049894806600133137140329408275115772820107933304736722608186922694577508240322386419048181941680166576048601839988497166188557994831207011526619354206596236359975720178625616912155123427319668219156612878460072429611731304724076168245705093940060748919519588745952306685925838306874040292470174356510158247590079052415623662672953149815654118136195799272353070673439001541005807572409912821193111995863913797836550125417457125241105136903425006133095035755972298557768304028018342529911438184293983756355451383554237096408193724947480834699189096397537317196021917071793023057569605652476028740401649144122205253649872593538849855066933611521290800914365672147491473736055345027803243479816106277374928640563743324678757193228149628381299193028351744000833719899121948549199172096702654269772800429929511101653489353038359375303325382572526019231198485274490296518193194093342687560880442265883227700333114065184113997318984706966382135215073229842356278006426797258718140292265939364359409344064213051216224802425851933141057665874571390222271684269461423134253441095520021682724570963164243462085549586434674624637198707972870738941942224345794740556985282344964106220136401729130635086864637522881114195074672868522900292418580120396348261649123195387630157723672864018533165047668760743442065210905498279094297409244544582100233191196621770156954607525423124928015243415651403320630087303754389809267858197761349133865824984159174467181828462248426717848664335853360551514911825834808778034397232490167974886968469690633047114874328382844642393677338213946739182928022872364649566056180396690684643455901982179193626939432214920084457790989382471243143491257244614051074112420132406885375980449991860995945462367119408040760098788968954522704634099197521670359038700859930881380064745081851757678192293901837946848734561569504831454894852739091566950762355651273357209425291614826087380176760049276392867037256639313839079103653078757528359961240989952077969194602079779700509233271601979763613837320459799125221627906854581323356893504323738408905601223479834107076806931021648061748627470765314299962024893461313959090448907711396376738991014876444807773719131384396684123124418352500777567528392243269646044282226129293541525090029225062822778545566141477277355628699816191073198056965930547032555396255659247269615796584538892925322374114112554815908983206947716379243714220506660617629511059658793215868973515268238552015021759656175541001064816762949268540577268277334701701383893098139050513993690441627357195252066394816700877652066010185928392328623057920750920636863615091267440418109650799861109188530257022194288682445926417577058606560128105255368969077509295665982240750486212126303755854846761194308378444074827228513836519146309913755054869600202069350972816655882668801958506731304881360400346098360939258404143111286185311595184425959189011951291333088887216464143893882763073044784919325481995808535866833113671793355387711846737134987457025667519615265358690292103029340534957826498656437652961603915682560200850433647593028426303618454438363151933926935812215424304175831267962953401893154305669057464336746514021435807095554519753116693724657974503223744616741095220330674004529928597894671657523823459252083771381332901366215023094666400727387816404901346521711337974111672302250937390411706140928892815452344255232845054676548215562119196990408301179210183954716888326206150809040549729707098263535390315798759221426184545797415493105638782772260573830092193503397438731981205774992749249942876723144632070978261085427312069215294850131386167566903314071480046520335540095546606266906521474127009234871760987082786251044747008537251410223821050974624118732894277627673442615953662302639274272815900347834261848167517474134431532156438286765307791862962980549463560624314530145828869758990490567814210834319046258973580197839532628985932925139180465691143428525632941189682723075646777317506173400666452328787852895730003039803414586041844527731101255450572139516644261210582096519183666541286103313954096277417750961637144269552394677438227351617491114954863815546285777606801600016311396597597670394031252694544053196887522470209585106224849767822727377238256889360313971292626182571106545908962495557149632331043746353402211319333343038599577183701639532110693319587046103648345014214645313139224596084971344465398347571580346345905268507945517523022611544974215883373792387639114201020545056864580911750081302581353694029388649430997240193209983013130587831367717984096470544612655408272666709868641139544968192757368528418275183468108571222931503158709908982823811099479295786839116349254753430206400659383080835859282171871067839262473554271386055242047791713413103308016968027325612052976312270738170987948212518726259948928468517898476285698315044082206794590261815528060014950209555962819190963859629416171402516237944654465914448958715678460970529070902473025554283835223489551114754024940866294919290900451977033076082529424109919431756277802868361660538287561476221801732296348124398347775323687885066677703576678211593413097222965886638775789196131034627536915020665870349630773171620053879162920129765403818726922879110525836779865420071860766154079124194975317768072089254315008187601228003398227905049129489549200817423722831697381563752114391495805659277616486011799082887444926908317780310054666750739518559190953060650845665249748087370395576460311428362090903522657730750705899134403105193788515161136580615544905867168576633454671208195890470877312035185076851857978812020026898311026049753752759253960748663910426465021489114499638839980573903122940887300678760885989727414977566550737073380371282622380893384733193431647802104489923486447170813140245010873988369284354132625354118290326785399810780792957071099676949232545956335712156623012478445999964121637313591339434556493853431688593559819211236985376708159425582180062706178873762418261289787235884371068148973868661172492177588738364731402291311368684176444368140699345725931348902000879902135174609043313550750188497363625163725402002522899893136050109929193201698336325762555250835595351844991241201351640592052012991441093358534844837274089988066536211777020476517466190463437591486989916788469774229930434065345525662870828275253437623981050970143924829450010496616397537193463554259372661153426641186159383109932216502929848900900270562834587952881372663170527231616507781214460122723487293117800490696522175633940684799148651742461601014437418853325713203411765534298716274253106097427206870727105684403787846758942548052938186937231025425272421600815858634396808501043557683369716471236288568147271364764832731873368640694161332669276116627366966810255663692202990869519709285566755589642732161654287089709829684536714409349539733878693772051705074623057528113154143458295354302549615418416727912180329075055034674734659086773858606107153936172608489317888881809142140473559442420791764395009026211184855717896687047936730267524596836621811452023590452334002786992402620615307721109686849988159256061733640655050673225014593099306090290614528078863142022609838282290095660415051760583203386706878845868440261764903319886205837044045223828761395422910365534798617620365297992286009358065300584618790226576030104348278756346291991887995687990086015802034609691640253973554479856036060621377220785441818867597269945885347963765810610166220908473157514799895978819810371557342274284581941680678008834374402046477197441696204198688934469557527817821113548527551622081410121120321829526335995317480580304671552638093679935052209261693787557565496376782451465473169126395791449098033362960514546685361635260259883517467351236511258211189673618191185184278589599227039379494002959746934219489270399489476925144969522658229279914598015135343189594502086412921034531249446049709446383337786635055537524016072344151621147825598362609384762334484077051252627305540563038015111339093675723621912061386760826511191568156286883418054264180410782725828873240350151532294228994699588710675150382596924895297233903511866162908423115476981860523018614659984094761453071404257573049056609009269119970275535296653943349618670033547377231371207948461743295025555217275345124906759612435842479174448491627023966257447395859885652353481074921811761255426611772640606007869664940624429277936435074555521623401350244485774273627554745442728185711853211400321598410150467201261476785548317699130491598321131881477082823653315442401881321585545322382731779565386510416811247824657151780966840090102390687307349656766604455561776253418598752074142012429359274504843270106326640251834879280240995489527818170486007203962236257644834832155110840308276593173358264604710458962824245959399824383968758751877453640081642908865621589316769392588659767486648518219526581879341162055661915619216813907773028683624624937940396790528957700222700193011114738857312033905472914026490238513819502824986954176891919963309632428275581444821855130348029226821244057169936373420520678386333530553553058547404694432090060052366376138284722257615751542736553230887551261004464661790728939987677875308213955283776079006375071830818157009875069712773355654635880812718445532380830784972627703136103147157227879071342343679250930445260936338159345303354461510578718720640293794704031020368180199919601026820267852904600512090373221690991925862412510196891619230473313960195360927060811683829994236403035485234096125052150025522516717829080683861749966295803106238677605176548448929721970889810456127484901954052053434969871204493201942122443946804548069518361062266909443006817896690337307075293862362557736872173396653706473610573923320885069744948048176428670879214485099052686259266345690553591769022056314127286743519054251184771075949865121992550992006841527912830911426613321709395045613970868499377379118721289748225639675421746978292386392881974156764877244107184410809236217084982284475586760638635678801500909971495706538994783686202506598877373058175835470209886800095856566027802692744613630979258404338488282620607677528857647864251455118450095549187889717809960113806303790255403327145558428391511722199972328734273911900089647921451778891836605208764596785271021611508215313759611676585863488993781271707335036340632238567009471915781981638822197808415486216562868330216950687941399371935091568156229511253077294391468412716627413256411535704454709992645323679142817821099319564220653746423886695871524460675392454322060648137985284746205996523725637911383159801686448398842021333588979688846824031267275631960501003997293780154531535928091104293545421116729303773603835666595965293343141931723933396089410017808065864840823506242470410685932178656165122110102228815013391586032774779034020333030136992136647165703688282784547731152786557475016791542361755014331896927094401718646899187907539371171877824745702060664302250430826078949988502705188098922563265088420528288698879337379466059623364099360618642590271251007983023424271001062487864032746545465948141801848650095741305824658500656253769771472132266184024888813132535150218300802362092703604253652133288784072110043319749412544169264546715076227066054118169566711079184970009599935744524713716295886674595401592331375992607314480928408775551550705933606957850485318119795965683891688941503685496222128668002689041154444000478727369278485318099691123503139955331771820265810493387443115225778190761762659361743440813113800788040048194549223921464814159977795177763518067313631258945595905352986861556231876913316250357387906457327555506602947820550502214305797554792327431408526936386393524071695726923463615397498167985732322879010411197099862362643173459149460737103899429652917699782080170774753114214747599466389351034750975946316766474788273772913985307137523312206353815222450613864654935865807864326862731249302657922906917085827658424338799124284417118854945810321446572871942566694890243934931440401254717831431749266812929814655565908211066044849340217602527250891613212058844641362608913843882202892303325469530045973116009184764633978923723297279894108398308136924575897944239412934945635841259391059160802463351876098808577875352935196819646518510197736658272002008203654993780193657716956725158287048681892812076208848786823872592856824585736356401035077544760873006708046868868708369791066778082827067611500803767036889738776340346924848352911584322013046147444077218592507506456858813822518185873012091711889475071649568614038402983835920033298632990668426171472361012011892602803568172697822068565857693549444005957218353075827173960118419393404643852567998409898816409307330297085464085895941333533721703725137466267512113835934225516978005211920966757744922261718888828983699292384507676353923565304666122581220947838129022577403970183026595981593074254216284249275882168902681055052684032337485020676311203079303802053873452911299706819874485686538853589361315237479357101680982023083055950846023869507597126111987219676025374389184750455299149391106492557834762474366008185756761952993383098040135037103711876036175798162593926206377697791668040710880045357913860651313724003481376917608824676864293281225649895493635529237154929153883114496402242117766317928895034603564845592904554138996227876119968812739254728096260315238539661956801814106586131560292649881763511421543532423914369969237639254905063043651632265986830883779186816940046764494894836975534572237960249906695219541411109810501446276335046689173765567097701412536513226660212960579825308834216650671234639911704121066029534140931970164916996290674763848278121764077753072068593145652616129526138048101368523076198047774521288663564157996900671600163676828645813995718914337624766343871400321226477461928307513643393320610205773835257973100987399332517468376626071311938666878657802199939820772275856300119430413091095014198407311930600161286613372198308408530636082140343571194289479834143563559569337126739263438166320613204860811569378398458726964155848621076404037026430764359401569111419023972812309134737161481867728690561668311978753991634871166103964644594860965092194078054726901793106764228071364693598385231367203161076088692517362295692237471294186456490231304563290254490117176394941226264245553412152957106646351321613812459817148399052937097150168958490234945066001221162944539608750326860779153305611653521727880443917734134220782710264089940055211591299283499645597405789511141621569552502899288577850999651365349438829715427575330907618895952657423826888243827552722041879635445816079279581018933880393709809093442029006291118878872277142054716781331770394855506965786988772497492119030365665007653213876906717225204009482549900703675436431584127475933985897228705071989525641226807739501400392179944464256593021577355248347180671564515421819233374994102084323132442119312816192497617912786331590658898938483653119652692253071191453463379777505395012428020823230461720928670337585331972582886401769284830428356073788847914032769628293763313447489996161065856441261934664164789704617511324158718063914040874222350657789275827931984110238774983204638947480500930490159053315156912712800013938231159309217612634471717422739250915554721938716476339830241034083408776208661623178376761978561784707309840914689063250846661474248154861590084229311337925330698113271202404552625080673931224858234016114096471703619391551788860875457183463873887398777024545572344252825818793495694355729803814993889798446381947815023081843434207160203965107494467583334256146310590022591820907514727511913744221321136933345972050870362033718920791103705758190319231668773879024355772211814696041825632485805885380997565872701522091523656142970538237396434589879242491937592291685563208056741979095588059006812048484263407716555402728590798482763643916751839569966180138052805510553387003976528702821696994083999351803654199458271215109118185351659985373172294094695274547671724515308748233323177438798778683005098224744965325811432141154002779440831119749073926176625356611997380737841464102517547120987049014522986425321099447216714923978356675479925921339047141183184640291420059093018028858176077150433529221846446717838401863542887418239013315378484749007480570372491563956722572704869006995446528113509294113088808901193253991727548311894559433804471644169519824728380015375367463292716987261801705256984404777618736662269908162682028995620656286261712503390095266201109689212239371089796410179204118051379002689631564519263482421950726975853695485318547536036351967831766962968079597051996483764515229868824836342096290829613716335087030155479251153027470852361408587691217492319258917940370799496459789310220474216985319205096766055266954813130096115771419481477079897625330487919044558180927163633628161970723556510978681064944051002810813723493766551823421340273588561687001510985375329056293972913869048297604939084007784323696775592481580461871253392863788395476138098156431485133993480212573843080272195187477397520225448518516643841210439390122100579691583026077560576743292323610684615856284271342845438660646069448734607057339160944188578598991551413528960627620524212928598052662162531562295399035390295997141940594354648544146552811880594277735720106157232194713374489053786861744888610579901160817107057087441690385617752741005415436445455332483172794412862616993534809037831331023004076692804833290564977391205314789864036837748869317175065710188729148575286464938807956910638153073934715452674141855200273852822499812370762823766481537473570979332972135595982146801188766972679003616682126240130419715939257127468894017970759596092211539470276846009534863457378043956830623432561868715009906164521178769160885930397818658601807053186325404115881041125683307833924316140343257129010738803035580326404673068831232144898118391195545077622340764874119003006380783348535235183732591833663709843878653552980599610149798013191496609070117989490354011656012154271446173210483002611621558687471554990318865202288127341938350656057608006497842735325626059232767789367481700696606324705974155065709960287346740948804289546188731391563649887157807572047195517562411703528480382704299007037468634143210479094312854108364706590102560432386099102561149637621584395472766803044474920463885284331076330041881997311337803146863250493726856980656392973318269504704691260446213119561578624738667563209320432454646347055444625298810875233950204872802064876596319438044633418492142038581152342777798944973035409218460858028874691733050937727044672636771768588647790389208786422132865139735137846886902641438424998798650820190206553827016722343183996268140330677454692499945593364819809278084844655455851994962636687168374794440198743567756292312917181496173070921915033940754864412914380693795211865444635847576866264469929395788803814162982153652425127335535757684434591761665712428049966999629202814043275863169337325400468645187733112085272314101219958833704944171031802862931900978211166903878125684634611565110615352298481501327310752947519643221821962428387445498581726896573603822374583687762318025208832906647674482223298114712469055276205142318160398787864701040031131470195462769547292125967394382351544557322944491575306159310113695576663251786568233719451414509667356975174054565245307573485561283931522115388979384849528879352956297173779699088584148626924960675700108598201897833215265592089513165772789720628253743757236908000290424678632363028645507428209682660951525426440243893647572710645339168829401307488489419530497693822201953208306902785828895077490479583318535790531522725775344132327277099240052312468975518547354568872935792306441240468239304065287566994721908318990018173617316429918261325570679822034204881235589853756357724625419389917712565017889367438007946124960737943711607769039827486085371301250534385082523147183879718743505679347269485242763024015216516842750518589853960972450161839997083014081878023581918594235052880761666970634481943096574325407265351922736863441038090315325257747220540614863157080159827772295776383806933275531647901498205179031158872241721127364838849903093374982097330639708778275286255421469613377928979849390729775964892959492289517668197970507680217610067881524002631978449107857826892051615575223667388790997985287105024510158566497965784508992642398956282679274543065112920705466273357705050472741968277320762555202219679512953172695982971563750422686079169487464508101953776527858884322112281063135674103001403814748265714163603812380918005005786993628500404910291481387923720242024965434170806278644727916643330032036808286201377618511630502874832912129710187958070134982769746860018390751747590836970796926010125314752724409004510520580155806161334471770439770659727234749724422483355790585192279096260650652710492431371464650540890888483350795504429873813981311180731489638257095756714736864430608036647366150419483585916060065649695420726489984812229209821079787210754310626117930118996121309229889830400058990383837513355762294918794340859838545759652561072256664312553569676390494854217403724424395137262046095248161309692759451078695577784182585286083026958546389385496114404516034612544558268974955524345722066325381649872633055234073778084310557074344868249271414239407461328500008111474111964209040312962965623018864837931669910720119563756689846647508899248721757946667783794145482552062646198297479983395094883422072448472311406397286538590981337587983917947664390713692754491005870221180492522795287342574671187232640578846976466004185101870150706427950008745196232718134248353852605307802773115576463094087298975837280752272208274706361998528057685527893800704053465509678519451727595591451618766387811276378457976325250972457632595220588249693960220299920078073009300856366557340572111560761038172971326756621337203215625952155098023553059101489284876616834167770335231213055825613783670765147247544152692259896221789650988217368171081573826238328046346288121635183055141152886888368077598375930951843756066347968482824850798091159004566652086054751380698267592916485931606702506968357575108489484776347695408159444045878548333660667159840655748150457345363943279447690204515165337075412775703926327404116875317321144221827101840265994140966101886542526829710041715286877281473153298318991772602960395044113912941442437583531339766373992953138332234369956812221595939923461270810505886388855089155179460180600998043030506431628081364766803839394269348369004793621896026390889305760312802253554949400246635233531179644606908610030894740528225719866371148891958441093174042414612170682163070985670109270935385844652758957785262238327609371660896194188878184458002440942925607710585339936628433042551664472351549409052397096085779642061374008291742313942011243134535457096043156609355385388309117627360516597179863019055213245833696368688093217639563592680240781976880529870556273564194264307674437224482280649565933488925430062830847995286273165484451601099713720274673988519069237939401092977393734806358623913100316462535548063974908566651290640431039468823338189195307539246229255586206216732896393302503028133132166133624268437596732649895920866927103245358632636570474887773467319268340027095122957428305290879746991508201721507040355831975634629207170632634272187749157199244062476935242885735283055223031940403552039379563444165432408466530490723720606343516002571190705835307806127583708025489806541145143501421140508881682388349045264510746447823476509990434168542958704978911472914154194796453936592135854660298035832763901900727868631454382708320594611086202030857152155638839892731373083978491350890013504731712826255646986231423065809747024954683042597713933154402821737310307320969413546696482688605980578528742666641229341250060258560171839843919275112749687389564765488565229182615816565260918518494833043360699477919201106178657134530613165960445212169326417690776982962254230689775009444209987483620916579934729606540604814924119529010570726877734255957241261098410931462200947709100702429075378655793587901260585348515253850893881740147438087114883792576821076302045231689656098117653320496327398295129799393186161405402355477855277216517336784003612717585515938186606362756737642314272665585103306234441428122648744409360680313136100665694249847771207132503828453465401560222139747153144073182892023710762274675835358799595039637832286012144433123942482761287667820418452438378972058989469934608840594637361789330293294656735552529226163032196941161375102418615491705037065261325380325180784099444270939441656376947786069775186992234824220374105462422156502873803333726982988820728245346231776438046983456774152134979975941041890404814936407352649013535244869477359356532525745936720488709009078962840469647283011394744009752674543811788420400423771184747128939397823593449102331191213388242595069607798405028464383808240675241966910262617249042968253273401341777475410505662578237376829190286837336991082963397412199245417239829470293855142759529643538332915330837526624539384975058410556480151923012024690335762852960649286369633515597564399734419741248560251180388700352417976588230902399585840452426214259585658649009595304318361988521975082505486500037413289428466857090333097144569813568557315158723301694578213046241759146192130080490527570050828978689108331856043698537404482528764052205718186251626838719297474976579467997385528128148112483135793701403607321168178950006955389584326257380882293074968215273372323300928829006031748935233638933261026262152363850703646382168789254631023400633052493073077142847838582192748170505301158952130052114788647352865745833568893647492770392502608008179126559394320148640932071618654787318584248871496385751256029881908920033293687327463789915269015937359866245414095815221731343262403878021026598508084872672912487730592065603120577749205598023160733502511002696936001107602673756790298870868149018650211566421994681503689013677260799314240349218829491384776194875571775836455545255811432731934253961583355060965274017610387908578009638903541861216125298382351125536963552671713349993562456269401605585415968440028160232694776526767618807408867686234880721596471591455141948476684769212627311606428267085113034598328442513825054645785148164344753710681875948384874127976506817203736898632952055861694414753137641537474823441074867674341127136142043089468366397517755773748011735818992162958915827824814475835849304628460827316666181420881508389391768081866290502424206875037421554540983897492842571893403607284702260657429349399167305959797051708604310199307828987346747338222031754449496106427940139707486838808315029867606220546006529236207139325227558688435713626677069933533556714155705541643103867955051630042582115219279655299819881844538211657937244505793993605834993558526897247324683658546583676375350967441387618462500915326041242151999508672834185942495366256386259955469476800148809047203442515376691860453292725320340921514349603139360018307340515750039256584717400336953564950096616009914516032694343592661238490514303825282515193576680739367325351178273864688274891814747203087047158051381092647614917705634793723100426155963338354728840878532719687353714882635367873455908448909679970249493622020989912756652158979635633640708177659846867575282784309442550567042270881914492061661677303018324410221603391208975223543764353789004410307415318205935702095223685501253200478583937503937553106268868652785354625569544825694449348263876186761849456440937894275268730166896369428737992276183036330812239128193010416372526298910408924124996795782638710146707252375216557353463585576947571603255732288349529189632746557179017540752853829191919178942323951510597503890916563320007919519496510641072113498552753550582165853169300556469732500687331099605051524860963110142704057868999284536984902576724844825835227571850085805374143737694998221951142598829091832012131061740245837681690479095946069490026802168263303248675706860289538652523244535626192530932929555488797825769646987778050034154970422455065994638643443097120020022473939949615922653665722502667634853918006289470408848972995559138921631826728133384331726175765969419128095126794691026851436620635089924891043235571308012700028754983536983917249685742811321172833962032941879593630862272987221419609316470639253224962601691022148083265863439850816860303132250667181272805671881702753831137288941575071552089983886368010746112328344704421642512482582171946459584009039809745320199858414224098609296048801742714561347379589320950317467914471110450382083218976883927313240270701219138574580329395130352435512451588477563029037416513321680697704925872121570250019359898691729413379399571575915090916857739443761637259067216991651878047685356188822523920124221405724995190065391790956207256299631883124605043375287685686066246733797758338891403171788471426010474599641957192794847361718465296392495078124194308959766252064292026628614394335279066884098102875233040415466072352228737721524519547175268850583184881104596350060420951706573691997156078439675596969405490657278849565203570832379411162264267802102135319100083266598557724272779484827198833223170980286064417789884321010805540785959534541250534680079905109918967860680371632755397106601311043968919935082325978442466968520658482753161732249325578246218689438459932309039242746528393422299005343892785663472631222844032157345834564449465506332062010783246476221441683350947677299510615868182025978595619633300470554013350506449917543065419468099850933141354426976181297987277754760618068612146482888979537529912102018652220225678336296580125371765548808315026256774981977243335127257144365147222446182549577931757895093647026688779477819074758555327091567689115696542382608569378153916399439049024813746553261408413251570422812390362890354134580305003314506953998695617119808313554468934861199116643251286767714300048140118909091292611583414595807966967114138989187091619377351456494753816251036246594104671750614679791448237333284744631883221601072521146491095072259017570927380817787751324430290295654814077259058235793049310441784955918224266259779125355323381885960794005249940801151916062270827733560123640605424687656542090000464160365009511296942268733107414525492107359741577627711310205619941548756564886860156892701670749647505678165560167857428431929072418521707942218152310759320057955508243744455729978944282689894501992538179417628657395629503046317110803239843430504971873737438056797868678191184129520241881067641963786886103712525488439840804835655834322183768994923773870024119232288758333714463694340173086831982407278854495076803466052914104664329265436803365314157684718279321766335310202957833767375763738024668371194274470296954442243109680225622689486651438269262304013849607225332525800627642266026494687651416403307324828543742476088202362383370208723155875698518883769915020169339445562900058687383984659638486102127323022405358650984446100888174078731447608742499951511953501106181455325531272533145652093957963061467844625166389547688279073293351781977194020488806765531376054738018724326504132491756152315171427137704438838594626478449342283574428881730566122122038028114327350797285471682088385603367706199535603427793251121732732305257946884062669257806616923668424997024744859705294933525213984555024603669479358381860133037138952269797175546145852636049397422509217540734968982949145853200087999012079973630965468142027466935524166759989739638770286261717028003119412391416784270590121990749357354724070185608063704047745586659716274209465264543811019138157548353159195848427390742157471917217641178464104672116031637983626123051199092702506209201019441097493567796947497918480816667071517833616763439760334489577384503426569219743349132302443002241832389117721898898445914250391003040080216853380289882309497237955613126823278987058550274517782448844265563843191927566162187600967900389696612172034910480585298774297833217846861272758390785415865636378482971134060331433298489687071091281090207607956655185283744487189538193471151220274515600269022482218561477097752592474674412464294292862664369744394540433127529387834050103349534874340744756800727563811079124433871594717831623863254105821878062187787926844318047816475328602140300970711989119482623191859658992077558544619216084225107159697571745798798565345769560339213899082305497003891152879275376189975457479994423264422894495695476778031295336335081369407227888632997143840037093959018843098625269120868240206436261971568006003835037051124113734854719286847516955561013994959371502458139020698967961537584452523165590464140291907182224588435005492251910552391284298467632061761519678390505679513264991956489994486828757943292288269898210538367051097525056703716707032703717409066726760444387010820436190808800305493950311372284925541226397873596900335167455540158996497036170969714654619546593128766797213407942316629760918047726206720494478004628119697813881682613150562684694762893473852265770973423890785506385209655357730832349373523609160823313274672719145861298526406526632920402667999012382588788927217027874860341531713942212620197845617634231820451669911286919440058882490848235395807955270822897618323088842625004199399857868727115378212751996116113938055057895079197117048624997940474307861803784063628669415550697097013040447847785319049797063351283729766063093426086651521197568035238909370988916141495932152007348347993111247129255306100785258494443435008435302585910592740639669763824106847146058038352927662461416678533170882981738210341009700739429531589553950137415917226716428985868864834483273287976817179054739035533231610440509504693465901450675734801098722824239022050791524570238949650364003306333695840630806594783638850861836945959360987234877592032136951047526977179207108868216828941678383437732318798279255554570720773172194021198757194959033261016408733325321901601552187226940026769538113246144479596128064034622785294130427825507186721328002126700337070535277316224820143484940204476904972889444600725259727682001692959627605722053663765212962306622631976951748269612251394704808583507934164054164502079003476310372803972042828688837323551833718950960936590790486010691468660151547025179282780009216413487210601787044644239901266354613506305003719302005437091142442517530633818351523045144650072237110368952904383923156955478942455287742592727329850869052224266917739248155593843248996885481246508386706154997869647528691845712769469846620582567242314809952290395895494754031544381800459561441517014877293959853650471591640820353886396447079773261919943854411823246530937222839986536450592502582459923460622887875432075105189911172160635930909006325416185232861432437936100861355744700531429474117214735301860155341280128620382745491865314371643568712045718185874886002706910843530634439690026007670034444400683609176883256797131058959060242570109933470343002088647548483662841638080384092864552592378277107971326140183340418568098016109824062997636784143645003735566064598978522016273046019220564948782868279105244497928098376713396831434516500728053233323932445469504778703536235754832784041425899117535252649166324949363160346923668969059307523923416531045773848860754392143452382223810445202850315540204152390247600900004718010785893952031566197150743818471640365645883289331458533893429282671561615072861901326946166951626762022264471860080075265113596176437233336165147181274684867517365079812827759002064200580051289745963055180745671438135914144459830468332701327883591913342906703264525701830406039258872800900939609788882285421824553945023440419809337947220568113130662357947772902781281499339991062421425468406469971022944449171897497466228203256382394150712957216910389702510272030267357522224814018539759630372698622604419416642441231378961129998758749248503505211661127227298627934381323605749420725178286963881773930601881049728564811728024372163751270851785473929607292135184462597867590193983848459551576901899616989966480570335834935414282449262057073100514166679166366154610987564960665079769502353098289288823792878943222831927251221131428145593898607366447016440848471181184146461769719592024795176845525304144163661244500897399506280399104911582904596870142943685519112370596347680336227809457505061257264333727284098690370398462369723295278799947977642534282133977833567669009402804861678501276775105861306955355690783466641191802055950889862772294440837163582553643267029969444081464453282750258126986681349931309284185308646258789403841624842392009011212348516651859413560230681884563488587743769773781744178532539895901132409334689269732331610153768860888303904297556785719869177412990045662077063262319685712592212561688110775577223008769294009444761836390470541641741758820685852853396872613855291314129050622928346848273692216449778392093963568185743341933865545953281322702829455151680410010606531487945499699960707525933252868480948153067954109985369131948545292768148077325408403799633008036097933058621034860271921742509441333749408572901525531515315245444775595509470405905227352902510396789892351753732406032696043330848848254420996717590244172267035700689755566040598287474709184717461434619791299555700581333589082629974976162457915009982791291964203250080293635048121820849193341746698631970527617640531197109694759880397470015332350015978196121524351342312440945583006990811037979861484813897893303937230463265168351556730018566889702768347728012863474812935612321411157362225494743207882573033380622045714934327262604112656472222062290516518864405259187683880927761516860545792349614639400517102008373513735091058383655869512807570836001345405579509902941804148823044360858418773571070801822748782058826731043462981641596398752817985120308546803216712306723844670959621804356382944758795041650151114816349622862389957443053946121480455465919437824179849044414018034510030334638376195364592964836284602662616561334160201190569433043176404691197488762130361068181464713546584582638742258828287419456837843942570021834709569170232110037662541479674983138535436772746700266744007571896222450859690125600936999622390422449717464404577688801143682189075375365225611174169763152162269938702590511875213106486820885764335943758116451406830742315756690807995583573667191233250503952693156459631274193327878168191643626950357448448270727210141977875604065359249655660099269176113182729089236555316509815428550559943261004862699309213080014734554788625424813399153619856123264049611187462780577473740014148080348056132455818114208385975318631102606991629707806466185408080025519969823074005305464550841121024948635490282978156769041008035416469270270243685232294062476300746489747053607656016466330887571418020300789571104331756052596204178079500460383619403270888382801881942802434161859927134292215823476363462850441802443030491301901061215419861294617923012091282719777686175401226037871164417179559282215818709832027291759123493179675326610968148022853113973022881204019555046951435173399716876764009228605970162862947393297190691753281194340609933157811083741974596954847213198798240229390319388613101549208114011738487165240840844544831012661053357726881916991816960230986101646314366261316869141044750401355766073777883283444980711821806827857115662970792042330863052965283886698032614868081087321093140012220848063219753728162455512273812171805230697869161696433361263778357778336039275167098801662850018704816074163901534517407733764460430364446480217762679987039286209207787923199756154999663850247635598573717538074418016725117654402463111827076012197814061508911929406213380197749274550023510719295270960934522551816294074371342959255126053605465006894751416480189718349010079676882120643056453115587333481117767238262443396936285779396021632764670027313015141127150799597709948069606460199923399110432618343362172384448168536735422010819159208300650032740927472688503768199682436908347441740816715055735330564988089829271854365505628222602263717543474260023230706442073629869947851692650131611565134606412725528837864864114372961144031765680202764647773806037973848821248058388728777045228154568061752181488036537201657973768466731385899237493542960062445408548653639567641711115969912090417429332858302074746742905496881532794467165173524007524205256014481321537347047291215110515902909648798650074655266829016228674724203135773474173317441280187201717000454446994965791081993464240208612296315486488358193930010581323119327118853676967157719569458040785085246875402994786277471037692899722237304483413929807335033836855059689695502559670183518022099453228947612262228422360052868006709029795761489685866039972801529749036183713860613956803698450655639382323269387308096504177395896352154602031827478790917616504012415343185906997561120028835753384788284247779378141304327917146403974370807897776099311600887895227762584299390920852303027203762968165208723713726186949374154661366722473963909717537622515467625204200682997145240353062105973312766446595100768337175641857504070846281575837517801908603974272032519506908790195188340480452492835528757451346554047748059456595664006134785289351369982062064652294190081115993630130973454192563364527198716889657844342660447741481068970965142437352937592966316264977721043897998661879878885764150393766909329818922754254295591100134611570509490024529082694291446159767144152353719943553194330879948384254437716662278458376157216447453828044269211305081783631455408448574673862425466410258993445629682515068638658766918323566858941967609467899833059771497651146139774274676221245369270601469596978751465874485887957411228731785988229533558070016098389086818997173634608725162539789510243172177534639376680179747321772988417256355180441037924281453068847262739137040679754328678877856244902325393132273174721777890947096415848698907145847930526518068866185987420691672076622233158435634124450419402601863196939221705985035749170336276924777687081885564198396982608586690895512863435876626760931757833949322444009317619429406396345667565908898182554057185189746798649146861488234578295775257251545028037963712213377713207400719681014605232718859877822459391530902423893240333107726455604316334649549907214493662530232983458091201670299704600899333602876058292668581075689473034320704769284392480626771506045973368772898328092291599570571759639846648101611985882881886665021194315776279433908554252944640492517838919788138542298392561314587852622991674900311911204109824744958301130071239367535219061377332299520937904298691132714297087534497270009083015329927494548695828699801249627195866067610540262801892825200485012394985770204958236437455490567654040677161436592623037748550853025518771694662112888370091854564152193668293689876700665665852320321365234115237717747457350074472514204206601021044001091848189630868912361076258585513766005423329794082705452709600948761970194352220588766167786697298109618118661919833282998877688611550128209101622469607055339591597274516928994115365996188936057456141428229743448003424122054401558797091755711578531580164408611164729126786279795087540978889633790825516785941547688946382910386194332926393254263474585375166040582400936817999814396878653445194191107989026906023654506278952825545134954758898556217211351929855458055703012409849209248867759486574368511824527720658030674579341702158792241125939003252875398065287081279996943669645381222942407449966381227893730013634023857747165465263032248514281602192207176359263722521508462248902800322148923090363086459844015404855448265917901904781518204679311759705796921158887276352085898626303064701268766987790311833206472234311676827737378602712071470285180479385712031102957247542493188874854440306409647241614738398272525403955247856116262387423261022539339156215365779197231306253871046806516283518165289631655307768237000933545750706238102053467660468968763314852573038594754406322219455034285988485698952983585334832099146607071682001912784601479666405565976525529410820778756183067235232195113802066794791016870206238425767974469648483000135621412736425662750563736665811371427645113956404773376238685879862680212114906960148189423547450098966842025747433732645482952875152635580198171820776739006046740627027767386144007116135378720495871332992547042920897954728492978988292658306105255687201685343311446447738657140867368162126009342123417079361499903113334508711417390720609866527498320318135842359880118363805107121664143381014714270958952640394390148427703267276442234660549537557785576500043170559646087707708759886857983921291701972595613355225070715871747429755592403706158086140860693602445557865663983053101310164608877728773817911185040344170239663221158307846738667683770513324533968381261743904751418010354701919479401546696836655164795803569682148108064022116760944184606139853951122108435456345961530215126572322122390741981115548873485964375990987435357893419982339275006503357792333523026631973118928039374797831418330659784421961177636792670754955774680448801621496409574516808321888598949930426641216288687669375213920451619333808591780838713751841110794735922826703673372985582455133713653428242368962916841116868263180257308306641207169059465126690009096456373362424730146499211185201634863837163076210668537977502840074826754944010779715133663182160749877554545555355630414174691016745379254432407994480418843940318397550901331901508751360347713939060974618028580841058112331996151009631610974373174263645805856342103169478470355928056729932219086140824239037083760066460211236561536248307394069312911002925725985543487912225857452335201415890028799757730140896340184933783617331018510615838847072868495316936779771947135755584391849364253100205333535683270749487299973724315259080811995360522986428594808235368767999192919295529713472859213414237999274985695599210235732113897314846463505395554544043608210150688530900635503678509183105458824549535387670586967801485137438535231309075563859690445357222610133077933433845442297298364815886037214821917260119173169267494809945752766696378816873715849889585425672806362384203006452526878234249645856429312468072864272250849136210854619858528762055422666198050588152656270418538202282597097343567164005274204399511480574127928072046604024425142732917266247394823028181551202398168922359877424993242410338720322627996979649452768045507394253760183502796419328096540695886891886641359322535275358960778780313977041457605309625583728625722769307259535379447891318837287863753619233773551188775243884731864436379535388979554705542303018945102103988163980798218093106876228905712064366840829258764047879418017094279124685480492743608142410593661973674259645531464552105156744645251965100694750862706539281517890308403696262703343191744763135019075133847236279672704961924427314475876114305205843531656854311689812761601159887104076628631008616189634049683667042202013777167401257854079231054703601363159245170721976807469510912693083680799601349667333723849717100313791589587768054233834927728023734711372501453793737073183861519636480943439412924903727821571398568864871746467768361849155105892378222964634886327449163851130319688147768077452443978967472258898654104488378023737360486280112782467912099710914946256961938788234910655385654095311268800599756885179221772701062774546505472844693649855337154534806954950007435165295314520814623219421107643001968466547473848744740806302334881618129612469213137728050466691298122100910437349996842194759477004000082143747563451415465804668554876162596283066268004640547496942363288781784282000855410724600567384062853733720890486304100721646899821980006710820218601580428005843078925413179413998131615380283205321273953988748310161986073310822173559120379582392464501981141874421080555929203631492189233844607268447127232615058335570173793841572923904865302522514649326117446546382872311965270454969531209715923662630668336966418115901934814491711642592187835134709437000670439547474690350802316123030752541634545696279874944304947714891530828238448733999272609936584035545707020014130521545086946177869883801853982148971034958339598525398195929430221121366728980704961035773768078268217628233919567671691622638791568676842181766583323894254826878675314633077849997071969872457526173320159623848197231769156824447502870128173043813573108002083813754243222577742820087252638006839876089421172218082762699408053936582253671855455691586988639582754623309262972553095764586830879646097612882597643884006354096891341640619538122390830748995864801576421537450018505447505793846468239025992017796133484934942519467465561624211793841094471432847351622917578471945952898050878279743219265511387657519294984510259818137476906369055159061869072348466040490146399225290451603725316167226797413202347515916630553267487706202210389597379602835635522162966271779219782596700376161627814718793834450576270963418079073676301708527976673812775617321784994647089343337796903957966820829517355287004256898664927596473280607163454261797079337524037924711072641073233563856169649308800341796241184172460975630692039637796817521520578387892983352854799984345045450601230720120042729544927277465520496253111809608636590591161916229549321370669550873387895836278629952111733491480452993560407358305035119114134744402094369125082724840575083007739413182506454731064950479713213830865455647269899773658375717925190784118308252208874994024509888177698490324257966815480024407783809892584730488860963884316091349578397836947875116393299023606242521485252852663280668011039790017444201215655970262524053543804668084015959652059824087015526459605239036185595454473955968246236559743421672284293188357637420732862743622662068272888083416871470212114489614695150041930579347045148572728947370465216434855086179722275744171750676973639881257144060089886846016391034813087561653818335122345734062945799764588979900652585896237172022139867754799553901188957693311104444186616681340043134300077306414077943169578541488035626729375803911897034107816307599238702824986370442192204527414239829945071749535113202016974081046002073106192931214189161493744565942809146580755826901678037613789746063878560190721179397483133762322657288061554702336273754534194259512919157837690543931893985757409195916525260649870181416707985167625294229811984187452810688367405056816425653427782552853298072673705925116042771357064761813448319429811339338091138532770760751788887270545204523949100807767662616185728109225429014213376646635200796996874492482098942200133629367613184455142009108581892053229672004857351111653666433652868926009091690093209294854818785308280527677659501786851018295043696967942571451695698948228008487356801716377712590929177102580964089650349422428103306304541234015409200341529718066302073494543880292636134516657127242906901237921617945752487711017950801904045980905794182341631911429346429990282167525985168997858861497299412918776157903424007518117874169872928865762536137005918913811254556697445330313119337332109115532222186117449466940493817317385084350491577993317922328873252553519086897174517417988065610305970210922012673420417806697975693024494890698050621944899209707888284162920112910151536916838392925513525114172814960856893448648458738873670597403825946047002946544916780715894876867851865901315946415012574314483971541872164392532973228663380743749221997018108917659022121421616986519955705134257768257599981896205276579510084823438324051475606497704245392413323795163078473468116516770501736097901202934570075173487622764577546487150340801465405584333636775692093185610063347843266052672043778857365101250919385441501344493621029456959643569248774662227277930429696130834935334235342595560080498427651494233003253058650502733244820928934931115154343026567680100903210375725857791925789688381159544583624728764294376173936683957851970833022132707863899628597868006229262826663054994784303950570452375915481666738979755512035037565713049221030624137545791321940910540953066327863423533300200157509819468329995927714349379960081908629678372845601547724584867543916106383850445185619061109619017407545337032601915613805370850747943385297274650881791442950473928699584258697020023405937765221980481912556028728460059533745082368564243121706880803795917006459168749023454535575510653337228571736793880298995533312432076175468200781933929332878314944799658990155950446651081350271601974823976643196362110663482934567800523536553145065799078091469413781454824371736713065800729743568227377599422046617320712586992887215699129092194884747685746126454759357881624368311734825613064333961647973480716664176289912772523535691870290700713486179880247442815876189373583400929537125226347446923961723279070372669265340982083613835155529296572289676405104376795039423965935500752268629354245844898653290687108401847128067360819858559116211567641912201376648288948170202207267420831048939971956430296934822905665803514376114026086380904420788921966264010550630987787378304226353922197122913297218151236057992485448185664639397276594000880339858423361436372461595493475690051523350200797952054196362028241522135859505060035902175328183608301727411867135935283031336489256137629893689300649474640949451351231747197470386835819906179977240045589587691919086340226109656603811333911851632280833992936276603962979816399050170932289142264501091608085143714437621925847506622111771533057502610309352507575329350693622972658674120211812623443927551588248891386974376953212849764318403261929372798372502714309843331314663798049316941521415085472646393830788517496402562916912344979477659549979974477688286708910002747102353164975833247922313844276277090205356528496201696688670179104339395918420515422585900304227119874128460293254534435497020221765027882477318338612965610260869558506134877874744692198518409311332236751850266776590112253515413117192121320720570254051647186974893551099258881690860057431546884067587870917837100037221287474961284322673447254459293567470769240872778759045331436161560748568315471187655668724473542134298731601343111227030494304101942664041768791143815577472150418001946544093744818858167476921762594379161116693498929033377352405877609610382799935151346783547257896451802226279302832470762374284081948450486574110966910279365759724375150259890266744144900496766535708320399973502051693171957303949873237107479806512083557340664765446505407950761914868100187466474133844850799817821789037281270812373448391062213139802553220359431130640363773315243516868849056127398755900262716405495648430360361833893849288770389962883671775587669372693319890177694412903154877454163364117666699784528445602853670298594833314313091536921141795718940088385277733164260357782316164334431845952295441421662136583260823651913680702573250069392163464838412008199950444002202191294129068403135985377304009169945191437857298216994400272691577652326351862252842353369898231313738143448426370185106553219732403155896753998190913786628789722064535777754696357134240448660707634813153041217308350981302850158740606741174123437562186359684027029821485827121642056799246570051189075636500307703671183544687687163203069587694294004123055128268336040642797427507690628817810211333634943052673018456892518127246389808891666428426278928393392033313609951180296448844836592883053621777821184919259939654746732509061028015319435039254001380113495391313406676429501596703513725790300379599673273422116542145356776037382401895629108284825092669393730514149406450060838459716864726989444864068839146514306464219820625777099040731287420643798776795760713997151511204777670778948882454815264619723176536972762297247011474209748401413743601080465972276499633435920746021558272296194924992645566487614298183143552266798513474615125499982695181416362731508258941990379995793671868818411943054923975937822683211519819424711218650916238045263369241974796914870305499876618329179441913666579736534156438229020397318834496632890823164466909963153034476392158198533222837405730955382875561953636611833869085583408344610097389489374439097993553552121469248096781539481712666314281669287084386901894596451882280695025560517929739155583553883322377763585570646773008715183167891428553717201220096560181698468137786247414057750152201677468300018145677246041564552790179481893755128678889504646340762018746691744803299839164143903997217695613240428063439312255428514659660841564999621796028214393216891153994404225143293170918989364086541828174372868195643348793772603319346262281034911126711944040417876530552093294018913546898700057435688681194618103972327818107244596151856141444641931901888560555678990964778823378662356299058696212565721193582930306580348089409623530735277095612622304452600083027789744309986947522326711432402669246808521314179008296243599297967272651011731350844368621137677224746835855760457991005359637829176406266185953190807663844480706898966390978812044764530252962333962777371057836053883664707950353117809998268862899468625979340614179967748988680804545205701230322791354285245961335266827393983001863379366731206464775437737412894960333472337996314255558420175311075077737967710243520705408087491304074289591739244750726824857948414707757233142552226839821704783518722690870071423594084324845118571800762669158868727497194943584812056661875940674504227080374629310866316922910041590041134223797277495047403662203738473352444617766049214652593839723353083051805664078831526336515145675883729319708032254605771415402293202099810551082936216214357869190482063766721038194584840626873699056461472210479901576608927026770866875885261526730770299260894085490575232564036656613103763240132170361593024910424607810602325655337570717223749568227674590191397303973903438205644310711285348147536895645273646668607833533115123950892338609377982028965786507681286986454475219807427918349845194471911923240369715272204431245712686981121560033029882619983635180971469961064612661980607320521821029013185417672516941533975390715642599113963288042583080469964329901416312159243700307917055511202283877112699822775107921532217537416658539152868242140287024510473233778441477457595277184050680501710471847333479401976652561655298950787071273965758845545543559238540616497001760199964979692997198972235591262589261734408017470702681366772123517396343389012341765456833267260280963946410300630662694808501685333516281476524786627474114196361940285739851037156768239227147867663169715801805714692355713012696298599471297793589516190944418001710127759697023588275377712963335388867897850439392925018986500286040263085073492964392245979072248569835773629605757325049048637864872755943394375743092453834740556775564683443858541885999421191032064976262190952009886132832740393911184428044627810547868698593080196090172252388074585856947859728485826323622022403597573020992508318415807565001192931112086299436251293734215468014591378926151349631857246073953400822794062468935860226478976389140862101322772879661431282290072164619379717891904995348485218678375936976808895863459895713467441345311373465857701349257926826228147158923198130923590647244568568418575018532777391672203277054977281192482059374260381500670434934552724611580516169498516033247631592680718053360898571477543386708201581706255401981328928299155155991727890644230795041360727053812466749041152525868943501890369965991005988848490556645351448484504713075463552973699582418652924076956290174230389864570269380350796380595177826605169874037596781019678671673892518206662709829741346272231644207953482745096454991489566149030217109803834649099358999594401245881148092818597584728498596786687047772634000708691056450508052861488993935100815973630918291072447411372978750056179589956230969367117505423928504869210723497578198628268068482285337209576633421608811600859506869224191999085432585278775233091638070870238840963236954491309796491527494967570318318737508174559667295048918605298824738383297054815907220593015321532844030108251768901386010289069680639836090951978814760965491936598839023818323616258063038990231889761124326210008376055363066631571211666784776687656160319639719213971969395750140951282350978874577177345022166298939748990702383473842289294517794867506920075227868021928693112486230469158240651000858712543961611568291654210225236786687020522762309500546910262685750403428924289514204686316505072590664129852029641163234408120395735307990936056502978691522245177156472396081812810311351927826358429342078536024425732093835944523270931096132270823921418586832346035952162128650464039602080726786529886017729771501104918025775319262680393541524143525234581611136342537969996060113682665296534493522858388982993850842488288545763810359675998990156878037144288656229591242112107713102455085387573160618043718061568833360460886254865471877404750540225428699534569980441490436947447315087914640917098751935883075038429607219203313891952676652221699258586709837218494754412562258948103215876968552058596852348583814040874318965021362917728285862824039918468814240993457904825256425673881806359918986822661402396578118351945268020990883871784514885764170794561801720279067902455083695146204704958191262444152004378247172160911507629013417867062248143650530538190177866744256169407439534099261469965234725045054912643769349703447006907383698070788243033342717435174684901474248825630922689455130190077591898492820597500431923126025051354467588866447116137857488442643400576222339510368781577102014141287859410027469909284773549806361273694684731171915727380852352400032602372884406239968482550855378341693872045264338838306646923488633878886845767151923856597358524610387856225659284029299903733997400771347016181846840165734715230612432790552695074645089820617091501368386385560845763006393910373602984131747979890767430332529764991328029509988208749376303474775977099833955248738562294543981834444941762343239126542250384877319711983903006788135461339214056571780403458467428217607094805995131534702070146392401917455641645219586345795822710530290260850350448216435428836432645666192535050323626828194226701483533242821010208768380340348131606212917160932921733227781864631157569552536398889750040382315433395551521007234651126416702380119326058047005836974662169495713195385638108992771903326654799313424314948287489695968298387333565535395691280792789084865776320838546194128760432458309506143719019590318423467514099747527871686415742033952116875677143932939804242856051934985697271654654665342506334246625823705451237862263753344529055278266963983425743324128352376471982038751982226726363682196982973246885969946788145374098678040657339627044886396332147916699927175561395111980235398640107262141660464585241196926234387800360067132797236395374457765318200607823578738061933871724110599126776262761576246326694159230661781534708839243685086626200784751921584725575713658656253961061006811751785480285798553356258037457973645701239593804170977234653531848182981309896741381351590747933203116096855377180284831649106203048973622502160311931122929020939361848989082610911903985770167838716006557218268617035434560545812122515968210976384190590843123442458521530658212871385944331361724178567340978428000120499691728476679367171248738960659755814738810290640463950645115959288067886786021006315293137000633296071795637915278897202915494682682839910186413135744015311729038721216390898488788698945596344393211108014846407716798708318678600715822153875413080953575369936197862619831829406549790336935570700414785668235633874250391142705033059912757143592569690618504704640709668839340279725088957107638996619675023079798500811654943369448327800781690442786206529930370870098953025966076165032468248200641763342002755979300017226449639678647591117634730220941354488533058356424678732382036235117896216870117824197787550595956799591295461662019956297349322846957271802274030152778839559025200976743357013847838216063970605057061263144971557773903215373881336596436080403537917828207521260088696867600140096769328681503258904082785010789133088982180509354610918436208776450459658189972163123775695222276434337093248746425642811231238418485794463244599663602013310661619191535037379419617851001787855026815663243644296529608576400513924474508296720550946966104957094312881801736674959626431875964156015342300565861206322781971448457029733794845630711981481762764426032735600921525896198613100638885892090614144108491065983676596175714879530310790786466258334974869915198165593176521520629449486689992141339844024440122051033726699225714945634449193900515402986197950645600912827891992586921758318077353282869245197528189755938101577813150029041402865476775258749038351036740457850051078769639358714723924191524760661418795221707026821485659631442535459123944606400091275820976839199448384299699016976996118417290786679427551512498386519149395215756326968401643900343694551959492558677926416969618323947956272597076085937167998642942897535784285940885662450505512225183403719866567461800890706539784854469179638892951001897243552221777323076483226624950004107997421238989903022288510933584400865463789448819687253983692661507501341003426818561588231342265764218968194873773027045244504610189225807297912315098960013549882714745074156176828524675486665217596636481284061466183975458741704090028219301016724540980820627991081945954269153241156927904094063896209018218448533115045179219759904312540892997960109231973780034692303056697483848961291221411698392256060727900264285918255574781369510843789573407968122956910207635278933679589034094302036423245401919762693620492584776707847001079558968543953032894060653523727304086205211099192729727798805271961671366764716402463289562425805853315561957621470242637190183841530202175314489947761497811119970312391203317826632571838612358108812894282654638013770047534424756407027443951833929828056818734088446521634774892959926040835502664006456686384218055756939552275233934433362971258493808908778971393890793260214075818335931451811398195453538950252095801799892270912511723418049575809345826515302222294938263762669598995370625087305840172261169499069615177105898654885915295511940315734676871557618374747912920128397383234350515709155719690523469777698965091460573982397730998620824109887986499115182556384889670381607579639260255398400345968536669559378148009358674030299888752927417104813240119290674793653577630010150233904701330172267736912583110231965463855735368145928809571601829488229200760508066681813284944075197735582999976210169799063640135545832627282521472110682051636582078725380114603360285900961347371425732799001396046084104922799348337244824960022672265179102738730015926587831321528432790331488664917211380994273699338150920298361504761765300390987291562189322251568685619787996146580646622805703342590042592037719940221749714818192574109528415389876474363536981273348361902372856204212476258992315027172170505464258730798647234535118716209233432527356643830573681543793172130059408075183182441906329815625798905020413499844059686924109602810707801705315127795344275447345551249793857568979594717747072953924808780705892261434628230405233438925551858032541775659405200787720804648329942845402259959640959452235674127888580584122263595017709982487254534540571364662867779817497126072587760911282024860203302169849948209804560216592186836248829245498803801059567483003988719483679726325925104478193359615043454746007512380735681186437096918012136722986670471321883321158884041449156034755226578505423445826004149123465615866796627809118767070316463151095048054664568773454185607347335638146147575122411620350928416794789633620746036349337214361441206854387225956444387794743670526243717847285737847868888523763486030939915649254081311362198320949503888020679337347842257514742012614414578465937681560723525365599477810320591466234365682219518888058624065953591744618617765824121223937330410669086109428734119381697442716984887485275769459372419712576565691178063886554163603332661911532766049529478001664411962419336557440108148401347036643384076751764601302748916873994656908214215406735747574541707610295480287584453147568566172867205210999851474306050632814344496128146139602514098407762393333875074454300982045618347549767729518776368135149150378239292019697641759684435322714716229282189610972788811379537087992421943592330673169321470730663283402364638536862437003237823002414238876316819473683347104352792904993301146558201804735526190351440252618420326602933256044455780465834936805934100007332174064363884374989244887196392898058807475161944665052854886063735990381608642487774723828476739185621381399984021246454685666803931185695400482636745116129736849482158935413824068482287093175138917504207117419009944061847007664891674074868405596756936592842355851889843113473052798175070975945328367402395552877752574156940287349181753106972599453886311353885359744596889465599803107746412311846626641739031378774250169965528683702661543015809680422739879612577101166636822171118400208306920681068584282936685148081386853841229981426915715830142909744197143296499165145175322356985547145836817841991338521127296347973308843909245389983867742403006604892751154588135631818837173527657610388981357946654345134637302296340559690714829078746393034301525527925128629404572563178576828495050035481515348280382285273780559198129298443618144096344245798622766622563745667698060946556117114383651469692320425250129580934356513691968943077800690322997766971426347912670620694086930213554025670134130602769675692298966290582035662758083319034071523610018530253098117677194532328269529348696859138194913430717493192155704379029568541506142143865069206375884002724854764572513240869442123158988079548198786347599051022558050933845723968491882776875850676418610878521715761568635620497992932718534099231843302083678254778305307413252024215503373956206290543278836171079406556644579126191560677190195764653645915859200211740210094071389210305741986954691581976077961601270526162671759485829816809272086334377765739657950795637775662545340030267090461385317888319134746745383435658016383068029769927757855376050385526287056846053892749286959195557873025021519880228629398578290368360912808656216682494218188112249392579619064488771961289057115325220316505906007564514320964906702962914142131470061205993007071547616890998068072743177267873096567133230845130379911325018256053533215105668598172314730712336488868896941044672436190136197151750939495855999209967102596489931526012353681853279840343540598613812317832211693059690981218321283425671833676231733414496454332274356529225731939192973326004884807341009266476626379381860810483541022919076445028429090051751964958520865431238883279353346555032988713657150304249495577068842133108442061839776015506830803439910867664668492876887442454089618396838305167647711273983610730076316053355163582743188722518723809372170073448469806355270450086805333329583446152232494666338298553961800685499262240539623487915379717604398694872338091031185670891075887984918269193354728451018030864529405080608752902406205355443804951735076329240524798794276850848283356888718970642609742182218160218381911451201187129349889148444323040832625163452078027290874163575350589816749696405724686501173545150697588321704257438191188015954283490540096891052339258586104206231359602255784039078961873482378566410930980071572878687508966153363179152097137980507677970642940728325348782942388113348541679922072004877873108572852448784504710819771194556606852833128141026807783599990930755138682147586817620218062821396573801518325842803995655932314770062229066950759797937687383907073013485570507944920329971782089703391127716285619244426825788484029927818267030713424103647109029537006883903159724546545392804713947498975427598180663146527935669524380685110189698385559070456797853536682696968807219557904015002268083687153615839395295953974044105519735510024113743644337953250905961788801700194638005013711223846390777413428480539516129539644874601979159750303693590019936479976876349399580153254632701305160162227080227357665847750603451942448858890839079459390763640156520002650617203238372194744308429817951345184444442117903457563554782846530816360335271225867858220182703108305612065506461863789457593664046422520670724225896387449588767299643424591769890939101108048305212877191619922432474212358652428179386981892535869585086562089093564261148447216054658733255434840550571172919620461541911931525497380872182800777214797649692175620104692394158050640560552678793602106675951334747004399923195403977771610579308222380101968620355464738895212321033650659958940850217306477656624514108416388367603752263424505459877372515124790774037990257272167556703967612881472759062007259332708002652752298896290113356377991061643523751113970728077943217855330715462217468387146780626941322628518030460840500132838055172215508952313320756847287352860509396197635982248071838825647079546011337410005470167958890288142418636647228735891706416798299475995772431249865315695188191637329949757069460958834923932746356302763329886107008862081901453635449442641083066690414440749607556260503612713855648633939667188525147988982761823791773050194938538104940526439011242445953925758531269987464479953435105974118159325392794274735724230372517155661561970812128707953336507777100962640512400911158643036686218459119838597720225972147580769276036872752931853630031078897004358311467805480092522381525997620024593076309304375074773309709901395458867268924586535991568148933063506934613943942660653728858028332980505508747507085034338228901999825871460170037773630957656284179639757304640072640626170168421517474622345543253263701451808025290537639167266445234682664421963772584471226968248403111006494508067959583472674388204272495612406999577554177702859313187116638856612041960826209737743224776990798187798858605366692627744643221308608672144248317557695119597428303899738725132304579708739847972749808114729217279077235893036144111724639413600984900743636219915078699696618630145569696176887635493916488312829446888964555589602119048491234690576416162466101318841251032609082483517988367190966584145634690522386394103236550656981311505177832442995936784673075090185411738893915280529822685202851541758891120689462359207649902782227195921866941867785843180591126189539031157812503877979354310568104071553062085953168149818159186719775293368607732321535807248924380246375718275171716522496378317141208117399615274960707801916536665751021424499564127946038212342404945649563712905939189837130882848042774387647818441287988746366838627062723853177345503436440106332330403809197313820988632157144765909893332114930926113963978428795538784335863027280416249101527508701165642297219629997435594051572291898958529598294308429635771096787673521025386481372454352487362421219691813396224971927412691193457629377147106682365109528008796396184584938188088593143842660520641585719188695563959697958102475149303835376195745594710229204937275799159009486053690144562777876528920052600165339304894347123045798929700508858738512422452094069377215458056545231931723136030568827266309879856352341651924848396047978652402024560891587538940158419124413492462335426828109828665156410017886596769982278384954727596606261946117094984370571718369515318389127996378778282868301907107804679999797875195164416188824622990512656954347378585778615774542288512838157758497438496306381721346566022627311912893953413724616566952687834610491841619983406583834593047592655763044689042657119078080251884508387313246502554532482302452513220710109276891417286485242612280293001217309430913790011117031402218881490975596537538672629378184345264863240794694639455909868460610914591174261636904856057899169737003267649349485233597848771351056490484093780540154048117173956243218684247286395631943410820244547694125424463718823205108420854561421750057160542051268043181822765858120727424839474946735905244797769947872392415331938580709350205110857864365591283879442616813155151769530770874522288408588779339279510998727030037429138472966793052755722570003462286347539544152993409042801908982471577356966159079593080740073661207116111643922259127565244808379174050887954377093034270932585138611769494307882284861945140001560850696328389693129622125073545083071663629758939500006052380567171068611134243277036661093844024365393123806352092388629431672816294837665170544196647405507775654241714830148709461620705782550207481176260395985367919098441905448005335201077678913556217741858693016714858612873632522745783763754185657754560626049413099962249761111072278876431366087379244474190308096018701960367804355953715442493873060525567789743000911733693880031517030986816373112007054071530944439587327638272304961190827910808407721259089768095757061134526097512394116035132286405513376712999195424528541855087296426997446446716980403638418376829445905704683187273259594970868863448595888132681035588232935250986907433010112403319872106588831283365349256413266975106904186054172158999946748878888467114692514940689712088192286106260173480938029938910540589505628322715783753124477178008410583374117567590925995976979127012708471068816404855194713052431518634170781958852333154940132922398191591863954733948469093945518569576127373237221159370845418012100902100117815116301762747891717172060950068704276583553590624677924211119653197695650019108970191578163172582618438228061896504570386815628361398848049494666639545974827831443660913952839553026689906637325676202812575760270859622725907296025488721341461619108017652663490732168309272431455867998719478873922601344445013705984064478241088151760932656800433079098792036317900710131376751468311075763302568964426550103075560530698783407447212314638470476482511715321396907994937256933844896110063698626935603846911098637185853914478676042786809576267379503170683222966073387376718222899237219789561375569358873767181419380709050344862239634041535510259275049317217191341852189622624553618374061427897303898650798473941456259596029721641258592850912706625999146389458211451276453865037010115275530985455738603769763571108369289728354718178423793150478767307566177562864505849110376802338401917673295364637020928422644430578147737748887170827466423899810813739373962730150146286003856918151540649027189704952486641966659925233224101462753557049960166452614757403008206482247400124979639949563265502327812440034471103491728498998868429863675684370733826473753196469154754230611211005260504366350823608592011404918745284862585528248469761529550792965669228306376713126818558563616755985181307285084853845766050737373398212974591833400429138887546539761887212283037344028238103686904304331743453841081641705623319948874679952300908791485198236643442284476388916004804884399252242286981032092138573308349287707888382178759364954429314273127230612009883931370807776464116975114999369666945228157796113814902066504434331218504342633460669556191984246780182438413846119435530732868344801642780789749383347476650464746777862800828191708702957106092182336853337761647655991530446891733222998203913611370638692854534311005743927369714895707193897304885748304243936986992931560894424838128637748970025011401677992209401287046458795747672302780073714951494306605510825041025354721804144410395377905493908531517869603120244605149726412537879858258927858424078098868397377964882234524762935017718059874352900767756688356385432653381504909658017036117307305669773180304413387485950614031038770795318391669487528436848866844328436598500038875991869727694508249759079262827837338604783626999119233152996444792314276897090936815597725288851293513815321797123922272787343107208419394123599703715300263738734644663465485761625932299777308414355756591541135642224210212585035184203848803246819491600109924631976764843023420230922611459324256832631505083459004007378067774870797922296317258440427728879263115099842453537675598582480349433889758944686138788710215707856533069906398185984058589462898741315285783901183451650328528060840661619706948267315369280827001717081839822044179145486452581100194029388991016481654323573978775406816330095745367414399979374499711767652361584500151803395208893119010150772132504435216028551066574445018866556910842383915264458322139369637561050860933300753649257510674996909632736046363009181042948940090136480090633499132155051684196163823069217216117869157291092360232056890551707130813848447268823918923614519742642791530302760493560083405036826174658278597521665848713076876401134767185085820793950852152394783195592186068341480097415435578337928264623228377954745801758650604861649696782488350791870271920603918968565105032732668847821347532960186596429716724040340081432148844129911701263873927692586429222864869781477746183081464951786347542752607417760958479132316524097783751261840651754681251351369393746313819535441483828722785505176079682729745090579319485549340181456090418804797282528061545996252967310503261561398987966343109907539463012230901744612120934713288259581140974158628392032581442355487061858822456098489012100102393377987093038558385287191282033933396960380232914256986432373258931322722871962624791865680025044831938095602495751172118770003307690376837492259626667928669741205070261971920868461755812239354610926933955059147857678991294148947261903757388145324252692927970471186184772146552642442736109191445326307814030401252072298915755777411226160988998996615056156743155391129281764216000528303903029089815301436638326872845688820117775959889509773160207624322549163470502196546169066159575314287949587534909205780444490749019825060669988695061574286550644322416719262107529943828209787768867346621814147516152924419362173889093628313407070918056845426356582134812597481862928674452326770748235146992450338488656982802855220555462501597542568134707679651231920062757811787980900872145869096938887239984079596226971499573127395237145576695253203870303058305101008136100301370938288287259184380296777640549626049230787598245254948391188395786396581818890474188786613365468500016907306464304151542250587168059055500053251113816586926653756786926496921828171053975214811092268888896299647187786034964540382005491603357488635127474089727596492718682380450430654342840890659552394939619000548951245330713191734611212433918374753300518766987187641334868318832584213348193780835772605533666903852137995443266724090874162075159962129337845699518694743148904800352505499804325894823960427355070776506162698933973740929247967374880074902307907938983808505099903101724019785670156237354957968841922641232753768424860431350154105045051162788533905811157761694790059714072324750801691469937611180509485766422098287969735607722557493085758728090725638547215368384681805050241328515824584655862608320186327010424714155845458290725309472735142127690956940622271276384594391920999548600629965187081271602654786600289050882393639700519322846788686606088696367635394985917012256799961840945122891026998811186767074221642831480031413207771445196867869739499538419780521587851125433498687047308874744330982910388983765178902776540038880005143314894732435946531044008398864257228930150780250337566213097380823918821427436300950752900911531591964733933731080358250288009864734450519779588012535937308128365741555312545718271023073805835101894253931708652797014439670224497303585120493802626516701749390605473129188773415953794540316724435897763697399182440773357266455121329219118579794121982220882596318548767892741358368078226459275218181692094134486614840904231709880878554390759353031659752690299346774135471055557593472394822457131094573733403940385408207281177306248745123429605449890711147423832982755451993840722933423012222149553511389209850406413039211342537440823913969968684769817190459773981886813441380279362736204648156516403036584874938636702800503138512671702202037563439618181277101514069986317151639018410862457699322584338278660062517677532392671659535841011778273755561408119370595829811908294221528818241561742946419608656620365376730671224021979068555459611014109271675476103178097248913841128038167704477258946761442869750520517372152695576640292814056472741836563793132680481518316021690117347899729254878723260406769335945110943940483944602356168060085346189081254015185205434315082387243235182147192810287323735779481752408633437950175774996937130256815798523889285277717918727432844088864623677492879656630322703688633185516466933653896926803002558410016942670037270705081825171531899866380458221015274814420370743416424532437489102307136580709890610609319411909758068749692170350682278436678278814617535862726679100705806203952892422125969801240353962265657087750258275022538631426798907421549659026280367388328027115964372721498043635695854374329543981546906121908222746999611471308870490618085992345152005788952689253374741115429158818521593378644350116492333309529010270281418631846890639338028863042356115620760349026388207165577099651466807965060154041776290633933052269190437015832581504791538640403619241705877963828745263321239279088628450630508593716271583963243412642824539399773661454540486379508867290000936410611968640909242893184099010294760816348911061347738936134021053676813139415227043870721087945843028995048701999358562116300106278479677558494059237830230120140501903743603269284282320012013279795844829157448401850870264211737201554449760745062769954997631604399002349074630120514897377254404508204657614251899347208947475135199774309604662501424273054407589090884142352158237528722937238318303462687223874474955580660526665729128411753327110314445829199743106181694217917030916488065332815144688524797903277338792114279246391694552622357758258060503723284308527584410798467174935816283298327580206692852688167121850110892527191072100674464215009756605355568333689602574042162758082494885501836028048869824781049743689857203921665418116306590630620750803616068901532156459509907706815204439134454315131531433058477162085435978570412133197775360467987419833299304888439898120417256434458132199844469400477506268882875599794141530398672450827994252148898599372819657270765808609060427780178654402546243733737163607884402961754075134094141259122705029839054278218739451922914308477597827671308158808764073910743212771747667630842187938663425503654625975266797026989738236918837659800932814823044663329574378294477004023770696857284178970139879940454986902670848756837249652921409600438180814156701368459083536584135377483598052500008309256837068027105010222636664959499617141614635246383548889978632419507193949536071207480538544749610169109270666963444746867862392411856794357282439661072262074852551830882675106840382805136447426300315549838492598229494845800161633314341300847970187175365874710735675735196087638109346480167740521386124626793718471185742664684585700618047374237682986010076209301764149235946117086341713304475015316456763370394103119327601207839738869341729794173855823962176693700512790125633488717453801619337655839300121487856035186721236558603053326416436605253793063967027265255445102323550325376744941791992266143160761471070935146179356760423352791275658438278358013912628218084245229739548645127737058819120863738633433109502206658744794090385672243412995932901107646996413997560972911868254831064876724045532553321920497376259621552381737346359345620084743984085717966254171175159067620800132727901912322150202926947471272999494631824177045816239217990487560175608983447315821882021657611282142806323523896916717621841889601028974200931689639109153100502780212020129961024393464981267332899368793405423244667730940031616329952482437279246431292835997209380261580133776322100973911745867702294806601538915849027205048875211148256896335382113536146179559192480757308241907160475771871019538213354723698433433142441428706053152040225391640469642626628570200187829771110018999760269273847124497549270859712806663169514477707995765403956933665870035303803014153376048003038512597513111638416973135638867287130205258975814539861205628541873340619211400263753725788016491327615599433899269851797158741526989316819869610202981701997390604919049711328997338146541325395427293336388443271538606186751961699132735169237071296049740458963514413547295271621072134569384630292200782000521788104572016121711474794722416339845427147684669713330312874396123678393564784074908208365832337645995741526900404827887337557163999063679579422270141337688929956250639746711637500615603515045770290433055332454952050707625678499807846532560460225011956893884919978113094233733096142678472215360198566850730326021452372924093832418007938823293288972389495748704354999428346678260600809948619530623608970019236945399836009852914466230588337828342549081838799505952640379489428318745225289457126025598447144922168552133549252533745400413960670594630793923689882271555501284767238236420719519342476930068765830247338330931471241744076370492965621811819077777900460357610736530481263660295262621322980776896771551790789826174240842860110055940705340305998245295030375653194068383067975051508747758455142470916251402982858017411301748548056034758994608011891733532990458432160555177299075657553707615987838467964867600723166727231323947627497550861731009935507713246462601414188672622077043542618971272647948498704128654252730044548999706980061968239225823718755487192783150946432584158468094402593915959833862138557674178539260790847706766574807242240744612049627847586224919133305214205716062914528961467613601838917114148189310168601118562035635854255994815001524664937549397621791878408321613337811879445799881412411076998523930736988842266945555741418620341983838566634378625245065055964374133219901459198696372873967131401811704071114220623540381869171234119841544182605257887213997913716339758517004864955293816907807407730872808923301283548498698442708398558382142110090630430980434688139130994469609109626334586034943332787370032562305534895659921684724694090313673946598870119392664961291794194705261799661114225656135674277147861371395236203062610773730762667714878138904145136393683208242234322824417839851179515866708866916742419179739199949013471829666964767123982797627282985954281566737494884945557089556761585219940726880480148671076249757550926570115243311276535138536016097125057814940653610898369469543694172986363800724316560399616705863694051711524092668495763757430893075903177820759996596455575033316034587384203906887804293798783591714639148610339529481172717213049074988264207577428189089237590573494689730707345119720522408375549471109111363078657556056568408538783863360183462750907963790184685578845529871804213795338881053379955000473893294166165609824831422440323791659890697552960215340759265076466158177519208036920448678495080008447332699664932064838302339151431363546701493228455171100759768093091947086082457538292089475071567547151821087049613397878121996250586845754663635467370979208639198718080524949528968127265516918629834313067634046540158278287472430114353345310292508793011543185550003254404122654055656110572616876072785995870067965940943479216802836513672890665534513149952541412930160565644490306104518846174587459176927120458300238062443499393294975253589276652860951535729297667628357448415263287292291615240102868185057174335047910698482740912334990708841716070527191123910535510346832532705846960559496087119320531383695734572855925397828655091583651797093840262030606170789197655236429015322083690782026434830204230503808915830204846762611005177769210164625522040345627129795134436410031891175529374281661030201709922928239461666516325317436396458286408003247612903985037307561791669142849248703039979059285874288367170039996364039288435252942882666493564832808839277334412332855364570468758104904848486895116624316858829338394164408353093426349400698184458206621896714255913442950691504342382583410843326939254311063800444007388002629490532507228382163969336489941186062729679212513568845507958638800859835845382063851339358434054086284434529012988433801737577759423078894579771434178435128138734684868642208273430673515510464201449006753908254130673121435180564295302847535744157996966113580857954004220306603640814286460184291922534876462010123901998806920292234416461305588754984765556586768633634079362611781183304576369859457546335502808781056990624474256644341081877455028855738017591600259497145603731729940628842040316290784337073367090108178872040062900069778352617229785317329918081354976427962289432038537903439457757708375376787594594929585443014279683953694289737848734274950672423965163269248988803752231145170688172620451386368057042957827544575070189579350599836949853121744347732739893253102812083277953969522304919399136699480902647628363274055571382651427882173123767335459395080988827116616086634428498431572714256154167377315700149946878209309791590833038649604189792590830333295702449123754314999916399936197380496599523763124160984287712437531999878171713263276119120235492908658074242491140598472484316039542839220383664046011821457105097386763728361450910485981900626536398571451882870182869153123324960297285408324168725021486967032859142758692114860858797319292011541957620593006832208033585607048821759241703120377959961810012409077134434696682504793618184479367838841931456125869629741399180339203921634350597378389065702282010167671386073332344124624225789320525263247598552484569582006873828702955862521727481007546316240704744624564173674741946166219624231713335624912710708684537197305533438997101649191777277279531702254156025315333304711404504845941677626838812214756619490505051585661041452543360592135248161574654454471433813375164823245404518467543941304166476935880726905063460196709821133827001779264765916604325666845555377972376735597257763211501982596481935908269643285188986289240410461282419036768920474168188855711753370609939491515122220097575478624433354083805753134707610143047230867293721020152114326121187443359924098383176996807424850054539874056542164329728853819300991282137369954366660022891608711177035745401853044785371868859460462301064035255365797874436088298031872713976800525568294840496412385530219009375921497449542769993832985489808863099436372279878771692708597486065690413937815294437403338795025194349543456659753656358700215694817260235234365186903221130161058390940829389905229585716855308386025489979736916213884733917275331676878510327525002641328181503340439695441268711108439874908659239834285983611486746431996620495502335098519823696404884668244889376801043470604808923486186642782530255153520404904355025527982753070393671264035656093710259227856516057989922608287862488008061841635818466711493386459947403958397959165988982565015588055399816454325935215372419449302117894937768699523921111882168383607171270795506760373543296409286131462620246709683608985322520095132690645700120952891420713203600277872288123009022777556488627127172346311381908819782503955963692930184756394022412497319830986772515161143020141003747581388910598279319565220498260018412967336712359317395193057436051984749117340290858887692241369424846479685509794056300827401492151401398311515430064120299543565766088163582310542260719846879726196489842947107904912588264292775358923295768661113643974289059554729191189933074984831686463053972227107796517073214843120302740018725496162723313217255842888362339376740256099950838633487901753292377464980235351800226904881139796337555967074801000954305989237138213289055191599194698008556385958227777197315099957595870017173716362485067622307645723987323080666095749526640199501572417241684763288485259270453879785034710541754436672423282162966760209880427958273778156923166183973096833295093200492840116647080081919026784529371719941973601335895999811371299425774458911196269216873988055681445523189515936720205309289242538309297170239832980529853887795679504203577875421483995694808831427339108143690306126855510652595816890441501682434190380779827083001903932859885660535449167317039808817442627084815301617977347565945530071181424838094850983401529450833927370158368059610626882436363705694635853934105252991239649891941242905859410253127152167589418745037392709259918679518680665685432026844711129700169556690277375601650295408442824702708661017676777370077222159773746338030634921148029117801340735381563448807321896210865460678713672241562153924724311283594551837832568334379871916030234510956216643025395959361597239735578815530610578251521609362786258926558032201885909861397810271635630465702694056325407463364551508592156651511178435346154126366899790067602199112015846320596463585481019816013966070202592150888780486311613504358596009962490342242710162020493814744501872892156521243299852790461491206257339358568796693007222540104353469900846732345514537148788174629659107138390159713585083187249444871967038245737300737043550679452299944511245686998325967055057497002911169339375380127969836414221648114852887283120189806358486233453604417217634535487856489474661619759077689195629222655711016106524434564673700298156849269429856365419500395099479386332163114859633197453968857509532641022917037055028044703075195691985993216009133788363137303591574131136894106734252422732321552423493224873705275296691071043121844743744428196334997649847228335515770559241269356968898177827169877864317588829827233926797495116554224946987155428974105031215027587702776197379865380712940928799181700152392929933693901744979292135626624504682626189662016275806309447004281831676551355870314609661967297710439977321670486284355668196396491808685455464969102807971443891822624215860075490808152080362849803213122170396179061503246975920628839188822748027220754259681821036999027308815093850100474256678145340425227281491962074928198995914825071393335671564862906767785341507597957164110412419846367261337505536795938736367723772862996113657719634455759244721227740680479743999394232620959532707468879102366628659505390282023658022891569125925359114663128557282588247020226340965352210340148871737527772799703363189072698022598913191214241356872723607532189809764587393515308401388796596688692667059339294044323238141828104597421949765582319637446304560916206552320948245860128661218158224536880788936577760979949160911302287092060803678502908867841258033659541990957357354282822832752672139088396982670719526144839633817697320315200133859516072379247495301135117015379879204408811396205334461213092818715606621253971560618486082340503106409963931294628281891417961433202730426652500704013281534829848167738418478626928095535975091743655671674442604501054880650218701553084259253632284471433345198548866607763098755479541527632362110571551946769283616812432824679438407105030641761619184754538212264742638350280818686376158797087097288896711864523048361752014833408395322850584852636841088089565637401738901838817384455449073853414177225215533960082779331627874956147180559249272459647890324491418242755680919890147941155047667648912203964386500758867977610814001972254364166377274894925888292310151129975465610772083409005815163063809872822612071394574182937165009100419233276895782705774910850535167409023519003823914458163686824931360557969876474200810057938154433974696395258131632981482233707186956218049908793030211344352729819243836582212637136245977709966919486364116762219963032042857258167250434664683770181587506928405101648414894817496241348560146133140089169023634003642607641084602680518200132981163307579835541748754101029916152766466306774475244093570215381847484592968678987608716793253373083499376978008526653147903339604093815971038848657027734533733797625547926598745471441284997560272760589958143345010277093947894777604382449906224481783359261884990891149308305774947226147021567111777512047522255933134396482296305833589827282740611102289939388061863398346674249683244890846264612596260069678727317322347381824859247807590302554461292842378612570756944809734339514240444737105426920202648416478281295857810841047694847921918199813333652608550986257890207441588611195335236011470872820438134983086750080262228718635433516460834879793674818304503542527436538105626309040135398698321731531243594542482484567504965471104623021844682684920349309135219601999821571524688398901251743452527801005471116446123512525085335876185432768841579372432878633880686787131301717241835916222950308814646507271444183522390198590297374278776018851469544110392353865831119419330518732526592219651004023867942197647919037135884060850352010800261825147510254897414588725815130208585848299895350225951761781344545429023770597752225398395969085728137225896438270562634081960956531148094848918814363738982511556373365222436832859590211465515985407707065093409732321585813278905071405062250941767116970440607982170781335599091848271488522489329015451607213504383387971076451422170602109815866976150738080907465112016774648786675088891013698891056502490778969808943670197111435930732398205623188883219737447672786768851331469087151162624031255850409326191756059521600072528928145431444961654468700264914953326404007159727389136276314934559519898035721235473797476062144036904584788419819002805546051559263314820992545395858974037670264128124838111278941145843615093564635488028330529401415494782058935537102269537148213786563547298439607707520768676127199180477852420164524769014264178087655362204515355919015994620009441382440816508764290619576513525050706043618044212601340871380840574924099594204965336819099088788830487018686481584552577649659017852418472728065639771570585987239234322499050373531347991121189496196295406465200724814776794766718357492614547058833802100264486953625700272189230114272128431306264948087720131919473510485146348628646770547486403356415320651091977819341163748258301374244687123830963196734468974508206715670923537214096533011138981849341473999655182243477150578072332518414354052204972025124032175798891389667617152593611030655003746794910547907663079281922540916415815432453537808625875103609480150963125354076679295278726162229168130616290003592772444187762843168176138748746212058818946682868295557871531107241872997003330669065319699862747726953768506004590848143186972564673985315401414005058960398609277846819848542622147455755625264299960571705378235265560116695003533745096986357472448416026437493334529321561387372704484298874409569904377008707938609536731186897427806481969373265357893283148002203917624153512449729176902817648555609450765575040289767196911534631510151067341356517550721870064287028283710232344704662577155843833139777313679278226819521218278771370436144967769199179985971638815237647124500671445022294417142634486833593598949679776577654159355320677225179544692169770633736100225298570154082323641379215038901844076380320205904143670843134376810417392219551083042746643803716306182552429916634813213410421217361931521242507214254569783665684267688110300107052553281343093223856753145448128700785091733467545379097559287329263620951139826602253725748460325762124205182943201897872609848136124351389330800228603193308936272392618279610035540323989632193345792096521068943324526572048526047933042057477960353227852338171966365717035015421718733858598743968051769647202951987648838696958055814368753623586231362455730025993650353918246288483723390729318685989516972890557254427023380956465455679513123389994234617724404646721575593575551069407026193339633416694367636092217515094311628543087800763571639461793270525804765550277782819722766085743856038080406534040246959418702108862813689007625600159717252985084479747982943782935086776248599062585199855971721920223549311712326312597697561655835174496057260531075580653242416422400867202125332782682122309145823841156106338910982381909593219099188401606906919290437144690504075470930243076980112989315340635208286095079940518627831383352074646419747473277652859071703936095751113535337038412061019724639596430537970845753522313731046673313104172301523776061890455463119527018690907020385216441580458001148192609793559604212727093258320601827329193029947105293202295017873950660101409431837065938549312405462651797153766163164891063615762562824401533601397928503957242485504857624959016967997333749025657329088720142590931491693803311829320487910060226038056892361753614203818983837337110258366802678502481578102340067095383841919880950226498270093345378057255236326656522973880783610505559846180956202128039530831820307698016998260656164094202505588422194768010380163787271955629920034152432326295869810748935389043028760191561308061658480012666918457067414420440110196414363413515521689064570166874653521256983791460144027369944169365040252361331968974772110959080931455162238702457427877557619137679178067282299727646408222492744147768817166695625990040630604771813334833560993139669966610917679447709043629563428947236351545168816012459617146693455605709417192939149528556879382786393803044641858516098145899628852712016059964105222522859825725972102734482249812263660019468174963275569655538828954400190975646974628999978129396311015369786007529103629253940311895007195101769932614175081055840001456532559602652334293858050723831841660076160271458790843888031893282030210826986384633426598260538168062819548125042554508812796466523170298455359676571901405237390879654069704073338972219453649877838386533796247997132868772585990901153075966178100329394722259376175958547481533218733355715167172008305230455913639422834652406264387240781325122629358231376822623747796500793110535488530464279915307966897755800041810861812350145472959328857779519794182020700709679874492939142472936977891030420324201991416077719915297306504704811437995442895245878132199354997605824541550601638970527011892366697492903026378334975264598284650061516301601855203987792416138254363632542344960648195822338955164902571653000972649339252386382156914272207540227875867447234882579695039049357524532463659740866255578366577083753015777961498114480899859856950821578921046616653883944033218356886921576516021009295950647051610628315529909041263503907900279366602474135431058484735366055497330593263662801306522027578191902188503600427282243655346768682072962919545416641963965180103598766491797567554894312101876765183558576554588535261052552501024814956281604187238151465847442660428071951993788612003268220878030417217155045091860375017874241771098869701339231832664684992857825942882698785860322674571822849018394067103011424407465928303246505493323433871983014199960011157453006960007069125715180132375009144183648839742089763685059903788717918118596501939661935959938664312385100337265657914584349693830899845622130637934666332630630909853784036286674537955566623242302627728778640295634308866148708323505585342023729018933530843414362721838887915042596766448642267098196749898123152673737631750766439907177986681633748461087824002742313965885031688130833909757716144432827143846856360168051634713875518766152513648947922490369796176374175290942679148044009234341050005054710475489545797297994788788190797056001337250223483778581325631880145827336810269714423259530545712917899110170425658559938454724246647966050880340232235514375339013074283985331963861859458509657399538971423620327612308027843778551057200280296370480504821627863505816879204848277972469733110662114812986896347994228562172967228339130079866543478765007911535446439044178491602649963804894019969186558668367293358813988943286872774445437643297911693977046891730321530581038739318562433934075234719969371512790271192686056091113591095400502829303031912671055517388968038787321849620057291511038132971686605545687847471584718197646432238953112227670953171406990181049261522066456365137531843643556608869356597053157124931401299887395293737492210274981904698986205418834290056503593069721396574275888393571148287655396434688449899407692775608917008204267955625225169121520128070366661409209133492550996387175027779828886259201779306821172877032380992632758875870283065368461708455947114566108086962387015577576633104402936694196275866754597651999557184181075944272957662652341674372048468966267686121260276640357091138621927507042188376725814984742484936765846292926761795668601002729774087985137564338408798218119838082301294176550735889797180764385738454532462554684659091299188424462700581412655592301960862440547183976949109162221958092148243418983037352914350078879986168425948459000467221227171462769646398530718070064941414712490236525290462496970770754355990022692223276951133940568969405756957386478701295845188520323057219845880034171303964014738125730543716674735488887035207092862047932840746719763345246730306601357357997179601510314590381450209104387774923168196248787325150548192945912432637932842140128397366175081873145016720209395068157078219188761570390100569355610472018659109156381991909468214420586505839435131818410313004062593829330051127327666155408629068805030487489943296262979167174741418914616828468966465662394195887771964409251392696205608719118846395353796741668947258595023787105250398299902260814439369396561819894214977626692876002070964758017010293350929418968009028377273631618991289675651186326135562299791425104521920543181056293941839807583681174610361879445965596065335600059523541187814440194321908307355606208137645687907007265239757111559712230440492350709934647505428802405362033226069248868345708130625853740300579374366276101404316033388105363614248528411515979592194733116121722426707936670727088584262014838376076198609659245958909977745567871531384633171826485616008670148498007307466203416777433882949840693123464074721504354119402564838237406809216653857319853116427002433146818241162626468116402850255586569049009142550043930419946775240145804409768032132587124008860955710543411305982836279187791355577762678976135026751942176787118944229885873741436121265210859232602068970252835469784289891645106972543503802838222888051049909431651291004180275877607112186208054768466493884471468004449608804743821978476026640233947534820654967281017598717938015582779501948075844712113580739985334222049605343419796395728853501965069806919005984391150881842842327282184600138911823460613643377506346341305328926496883351279995031864954013299003866687624217679866849327150801710594351765550566449405214247894888030580815482679655752683851912832190943233355814927802711027054623734614820775325136017002526634977388182374849957712861866720801444179095829894387477571957330187786224478329212443796654442917272935242146804606048649199871831878045356140343904546642751656002746186215521844701623024716840501824635935158329900115172591703595161681128289254153500248150036589470794014850349433308976027387168130942104378273890892794126898068151015931490461826305044198848609353685991083804990631513367149037412429502413472772538262110942128674752832415177254222123318031582732041620787924974781868467965331087836205350387343000438455710274269983904321155846691413952338587899711360408754414450913679196560426456001498046939765691991457753327105989014708211123503043153667544624048711997565626724785262827556361876832893608006639007450300916918589455537361932766500559873568129008617773028610440066626458363449556293500325761351056656331001857601886319895223815405410254792870316200112204705551587402187341024178834845086996933668644479056250842215368972454953296168450524373576183390012802592041115555696806396694140256670397622401599023724195352333608525862023323921071411294323317811283426929938150400656851677633276211738382037778706636868601615350099611986612016507775028310337898383479493113566866861402863752547917423414554093883194438611029992097898494849748843496045871404760582624102983949829622622213656598866374125045043185599015832542820536170047842455284301423341740133039636801096444337345608306221460240065616507172640088114093627020024935176647713578758123665044377969460606094985076297242020199158768806566819249531426085588425723113689562552999498852434510024120506617072659268221178377269051164130677225810521053175772983425898233085271830002841056914253904073454348209576468590832578610064861327069408413443568196338387151681166484130451511505628266318851303892723906994181721506082488959182928123166235067867344735245887838401898952108750424309190726218997663765213037959336048275772438386721567998145788633511756591078583758076549727980419811251779381746899376063069584893614462578067255500743278888284490175504377691696535586354654454843031450433541745350952046505648726307288335224223281113207235257845577564342816109014308818392715064868720283057555857031290448226320260112166984501561676705105825682586820165334137445009007898537738408796931505559182772507695363178606276797562882449951287705688247519746478906308187583543516821628798934726952199806261318330162908847145729692266043933921887456830700473041091696989265003092977069217760840236679517698318539535920839568948513549450718539399827137913175840675527422073132573404821002808817372519615717511085699460158064540892818543761915652889368733571779480059159989841445842255550050263869761955269417116036596296022480589597138280098146301105012207936435666746762189183274752213752214645686598621497480378164379890979420714933876211031296078551841040914495204303794725209206662917558389528839111782970977927632888448809730235219740453211440570917056464054413227964132105871353942718143572097083455429786399683674796603935808684814699376553220935225049374183740988015233117704310868930976298099688994314611630523590208791609332194162652496293482470615355375380185203210637501432562895304997927692914110573269818558925333584571085261078848011543621708268091856331547375608969283104581683214441518078973642496139632232280984834771584279503868053294378223645118744440561351357543197626643837945157231467824086503216731337515014994396076778112786928924989471497298202751328094032198148857653789713624472098666151060203231206868605533308979030162655260561698513142026009439588643079869647165205026649733285981801662932181011129668062640496183357601832814333516819661224267654945930319172463864974383256792450555746716049085057682988196240739313337258049898048723272384900517753179990802536032092192782561264162050027005439659891541686144406749733943923363142078586083819683375173134366950136111550474165323479595299409954583025339056343536500150250350046762104652245751574049850316584611830342616248534470978877797091920882881218007486459502026391867379937568954074239124280281635831492572570853323625220007374292975414864970673309932660009274481221567323447371648869972622139882587271503660907006796099497039278019058048213193737526793750862654422739827693421179302534642068995804559717503468237596312530820235757842361084634620061340722294778632120122633810244586713505431053892708260984202788451922934645428457059815685399030181391500391395902367040584365898756747675461134413346329146208848424879805985006908256610675453298496647934798893155379427878050322745690742470748493179728359300941665087456508273074651758286419055657000595093892056412092671332809549558429702196099660855690699613166474339195037633293230230130706951953967435517243307037544468633927995968740482250039764710236552345519986418286145749465796289636758706913209599073641791974469416042573940757729754025241497452967099609442589539040365412417800981539676919186125066000720417941998086433786269847413840694443792900027284586083057717859727220248039798655945866068387624656208089272371111172664155956973995969897589406544816252533136228076959540745732919400070258094449951278049988023142104951387628646322424721014528894775862619678369975025696248992503500513936791586999489251252240596411785909103087097122106482446971829695210873772942039805994093608191946301683500306126397940563135044345277235530071836173245529575050002147253774490011253156884487559025187162469513330968002295811550860252620479796711469840406974818392463811567933580151717756063987649805677660508223470846315358192632038476761252489508761118740000708804707797551985838943303460572679625473692363114662807937017600661483696640349270094238839618613054478718788154269418421303394534282802013864763811669029542637135571947069215958963995368949171404226055655137304254723562443067428235374166598543249664453526079605117048998557688844017218377057328082526733485985245791378499277589415323728822354866754358285767794874875453507875869369307242161916322142127641156963455672818882968991811516445362948023535714637922715821041899296312001388322893134637069509595194698012508797332191313678806451081268096692643244550271840191512839195595029420038451174855997290387869988344371343539697357419563159365726821340616473200300978968772556573651200828188588588835575643768915914143614485684649393846157622288826060290855523246032846084563925531500911085613365034172482807996452808739218522041278737124610393723963106457337491817207230213414235361136532463283669999355858484060717500870397486637125551274783784319411472827274490850932764721051741661866206988201199815384708449741333346142040108915500301887495807903873165318069443695851825607761908213626375999571700520247254546810506090194254374581638157263832323851095497525599747256229028405393260236442952217409882076761582170073774334170757285317093508688059462987597026042673661784686152040752966508314079497774066420205558762523423919188384257129872863792491503522135758521025045616845199327609810692557351513184476912196905442146951310909798540406961062829503113854090808400496607372115484911132879995264562581545239820243182768431111396123475988304185647889002911205436941957034556080785085820778020314181640784181794774400894415474690664476109140241133688375050258535860494061929264692119259366031938107612152730272422945095745262621773287397577020656303848387218760569177615528261153198516377548266378905046832310856601257555907904056086767618329206716332258291898284945387735892067901106365066153210980398939020991622836427999341677758395983436956209997931012507432502085554708559701499921468351393052788703168887743878175313093281860897346104524580335825195715744161389986907770729658536135103651370985098551599184877224027017037152243526145670880872017490575196076023486908517421828759308607648531335395364009528532637681160604631274602228899375474398624758746205635040655296956205616788630525597473926204849111827744785835745533774329963206109482082504888986437612492850434877910679708416435135491351780222726308207008931558612712155128582841640769312920231961258700588571406754186153580870140678736588385389497021269577562039987921032535742537505754980959208241038223257216281565877107001377888525583230827018705587558075418197455959809118068283919929948730334301779784297431585559587129120069801233824880769360978027973372237374828126648675640790605417707871906116843601849507913624133341799423664240509218462775995477000771152734300867003225829102221419655636102124701205471441993135410975583469241756351546166434066561823855349777032494050022461667170524908180978439528892220703231711026624843230811175511584956019589660282039963659895652007805795755815779859604942108591646913200419648080991160005646815347329272056039454242684324498471677687773835525675260597954130859482101420121162259796167806603776004796661136351909272338909701190396209852390235497257475260080243663778194414197556206551113243657323542712917755148406254014679984529506511271127861372100328040228228945110163029681280873286252412501435583926483749430430620033827835242820512454905130621662541525417326457072566613509836294498355929575071180286405918532354784032050870411501433447807436176216158442750046733788670318874463190013347172263976833619947811016640978830599635188919174233236651704862398250836821654646181901935095326634381698911279812187336597786374889274025540646907654177708096340822312939156141310074527453733716578423365980867354757263434732063275809713420644657840623604147871399364310587376040164477978228454243458525955633616496024991679493771133180350432172996160945408719920235474810892617156404411673098376292722455458004162067755775161308908136540236886479485770460091122567077649301030826761921584846709655947968776335944991730677223012967140906054186115010292266611947326097890802293974410934460018081603097515957030572631373202914247102180780848505488012288701206189835074129787033901252040011886209766045147841100109430080364367879628470338644666281851808718862799287192848045707446502182050495257764783005370604962519297834363215414496658619032119776836946542075387854128131989735112291649169404448651522647824224464858139981596373093015837653694578806392243322855531850717884397837056225625341706055539397113288719150591425376748682318863504410737960057450545343354957942705783826245986168558760236724670333244330080946933499742974340379220017682305263541123042920755447070989009533885140682189472275062502664623459690833682190370579956117340963246244823740016269419088128659444739887125735336355233487640174048606457560288327212997493034485050411952641182998824192831186157656065891976571909266750524225719093689433658888789956817384056144094158788467199392309556784199997666066037361066057823279817809397010741447805726043894413354459354252836981370240100046806585795224256612171875997385844692470168007358499854506200388057218695035065414965251892568238678633432740041207057913757571840668678454650007487069169938292632728669189017920619397077028162399435314407789514498440090807605869787430499682938401643618499075938366790369229249116011849691528110743169825623760776370958826992370802347294774857346635101097266626183237536278246151542922949104077528604088814265424133055405779135716795009878713615711175899504926200930194855960649287721149404438867887977806258225068103582239220481562384803387038795711237076890428370471836696760566049572708817244807716848070179570430386561675736007034194705484388841333024230056392427714326614050877159797844226652481716680587240933065175200518475463045865929912585108377104086815403356199512400240009750325860378979255391089765098723686229184651649902351725608487082173309575675870007856617676933025791385110070336823080696208704783346137906482753715262372424958577415873550838494954744944173263171191189267196552112075370770622938301587416396305613633366192409998708419704765018802017511664927161568314073866377428685829529915081015276818003723140411823631544883607111841149064262988518109955636763864652600699389099495884173933546643736183517791516148895427610698995096110406818806901857309023714422025319124837951366189297650640921941862346421160608696756884140522335605683264980921159308438216021961344698083144734787398239283239665647440219085603604796909429169780167645313655089055758258313719261156379621254853217644587738840198360753408086361846545425864009556130581834201091662947180787111992641056102471507719314537578849017613632052418227042271684041147436635332053477402397537961689791690872138943141084245598682853859764644486276239235716136908010172966396676480741738758547107446060146243895318394857235144985960075403862268491879456936780231579647381577681957196189339503810549837929042997032882293475166377889087393450435541686047795417380711010965001095579683702455446953513199025727369343730963701862568216823747044315421618774753098288225447313335591558515688937063890177661932656744385442885120072221425667623688106655357146276630927011257524246263775103837479260207363838280228177951342054244523443400632503774746997275053671263409491944748775051575083854373533988660768314160557286232092934848996190580285422944452703404707588517966158891651341815011395285019946899602784184199298583814442682686495665164912849189626280096898211750688069442035874346115227043576982869997612648466943786087542770135886527455830644180107053709864094864932558316358890643258957572628027760084397073426222914835609188155216368970091729444830472024323739292617821062694441143533163333993920477671364250876819693584113360109838566953908307345419418997598503798930544349112907877444141314306120293113906374254754136810741483053680577754813608397465442229337376724190299035872607524512597365252910705131907932334355917808516621920866744893682625001347079384485131712725096775599612845107417673384434603837562681463236877375823931086023110173072178663590405301097440758738686186142686165161737698560734432520798296394340715120395292990416410306741245307672849336441158577504234875863542623630360296808439875578165428843746618642659996503288823640514217980031137856132528692694049945614034819846112947409155783943602760455365491034800543951738838680829217802990316022045047781757961413908401984330245033868841128538209515403884838958788842618395517939961122677501364801127918980594683926236325974025141512656218535891775025594412128630337565097511705415016207027506804608222613652382262217917574670506307493146696565557231769394542106371542941426003537078552382592596496201155837923293384056498450194958220855905023332074805896668062194709234473339521430619453863239994979887378280842863391877530486609377944535902792151988873755979664233279847325162606104099465649026499289582251567647781756842620680899387562022087837801146800842834122456975130791717071615785851663955037951100217082069988093537075346847703871392396784428354829387356212860738016062713079925696583810672561922389994658262617910654900394391200820749514043522863912421247421397758003972645924672364058748408854840764628490897403319499136468847442056934116297236486486461442934532456250471274560711463118350507391182947631495269940553755278953688324098943875344966531798082795873922083220026104751125267593764847276176536239744469056240434911966291120337702525436546543709297611242444640058204263260712361645376989815212360726012805593743943336789901484145368671673678299407553648371701928656337768013990867628451949339992890592690781835378126302551264569209884530031189076441589098240340840431142993049965729904614432731643111943949741140982710324143615237895546432354061246911646027839613740703097488434333863050778836740286354004777960670565222596897536166877944007871385988912898594031367718314444807368642941255452970696494357079805690986096666927030193053231509039737641651060707761336895375302755173050029950672615555093117526247210688618929080113374904409257804032789289819958856785237873605888952470733837156309600689550844307437009462226150241254566351304128072262492641779196054333219615309117994067296789548698411355262535564208882562303768603820001989115339126252215808214666060275859325084813011133733851652124119133772984689809329165825507259919893399393595552749484787774353748698191147897782871647203587900339049596597379415369135361640235713332648762187981844539468659939273553836360110888913334920657830827957643192230670617428909006927943323969822547756945116287806381373595071286677143714431159425626125074561466328048499005333085396711375665464589159245136973069474069808059272334803115740476257740300624964094503521081361848158004542656441731788038274540725909487041530789467057298819171643335983052356738939399285240510807696602568635036568281251318414006599613153154899423398042636322719454403762480913247097504497230076139747324129561559826997973560580095884453988203669211108341073429219527058135140386212579789939073697449631679039866605237361550290812468706997149173504223890263263065837352159789501058878058498258777836146059503811678985071286853035329778658416143937439719660677146990020296436272435634133744207628999018031571799411799123148041373012815462080302722098007660173517874111634707340139743075082691614407667903320921667171294552775363075906676618861496392713444525957659248786010413793506273260730607818422932007175331260944830625776656586787906603950615263986083473808141765215655721591497078618467070154568282603337723657624052711218902230218095060558429902215142156069083670350747825710152731323457264717354949858317899802693234695594510364276666365809960620019540857640071902446277345413476727085841292263737126842558580423044412422328750246800398308974162250271734035004070274135414436673408917719495127782673663817932008021373171675695406859403084121218761446387695764406717521326242635509197559051541456183614375712051493190770805919615537950065805166163596649900924838664728733397658203819502763652765117823763659974328871756882423994624235411143882217460368344373363197166041250669212744511154017158629807091042786204885332001652948205578451686174683858352542618500217717474750104421177756963242911666102002063056749373467410424458331932603523835714940161199554380744056191003777655880585826205532648634520355505327906785761638948944767375235901860560259266700691587731518280469078903711676793592628090943387756196285760323921861340811580254124641441992659756327789298045353377379742311323878261646242816911713415134345401485421943900800642663851053046699640466489021215903764159024369207769008398318248778340679228993742602832373990940977117386126469567443750563053369768277808638541526588131471977690667517901883347350019966870531725737971779406154338822997557616253529387158159564900863522571597126041763612681760207949114645833023137789585081548070179334644456299999370376952413600489168507961870815891135209752542800780898894184278441621350965069753631781778354714156541429407750920646022751861309191903284411600349844851812570191427079446197267899361379806827503128432479475864139626160543592098900908852610880401493496688053564387068691282848661538720509779209016903878913160178371703048575888582579211819446593654235079944472672458810971356552168356754064434114170559853010249090929261242782219457393220419532957047204513298952781038722121959039658136154789857468720299731032156847345861525183311314174894540647185470649175238914292944457847175744608857940840681196066241906469555631917574972875100338331421362107769363526519457039525474079525361364448389131680312471745563138735923061319384305054647690370605701514226154866511925446292379689254460906028083928253377237273291267948796166663774548857569264055023911719291477693130481391362492792819294463553316695225367934910255020636314739708003516411647486429365762154461221546419309390459651642755453789476484054282596206186268455155522439140996168510257627211051366061221873502652566002757776686538148985821731368205807068156132512461504016083753155341277966869056472359913572135167881962400888903817165693349566817635007716991218399244857371263532299598722084999516860169739886038002522616937098364285728672343657814592927631049932666915042830591474335927877467218725365473612902337307766830942039427634365153374833885428779963805630349530703528686121210027549241508542926077216277215754019376401931082880528793401136677483452862764489316537028285270791926688069236964735038526992091345971012831705656627648365182765357666352770512924415104498497862440041814190763107068657549675806239599050301453661442137012074273761698542260489264004090634209121946114673141466783500640232896460762736959684240549587615093682157855666909145017220029653121241435708894265621839453551549452093523500823681998440249197600590842913729202409612685523690910479477789727275429252783869890835370960415493951399977139231725626513079008733079849174544426456538351951771152537669194412626182914763978460309368776797017060477915663398040974833398099592675286002797792579958741656953587635368996782766335334906035322028114869002797250136272143753801145029674573324009574945641703969052306575290505452865206687969280506782796815006561738398520219052775759424929545089405434215616088017255933509474718287083956765327014618407537591704011279181547883094707102230065920694028888389231127146592787075143068910633795851335196953360138634707115764891236238403092449529860725646270883471051623986039444308071937092275595624208436246132511665782647104284282204331106164697075714992793946433380783620169643169190394068749052088921643872238609011892007306606949631692615734626732507461780733024025735542116476864218702963091802368009859218402637971580321379284918321087282446677482911167982560628304702129604939490518023228516436124203417957499520576734443179992022456601361390980598966498725566162050597802747976707844741989859162484677637275616393759103635713443799364632713185246062929976877905122564160753733202447737307178050989567195091081590490322289304222222459396655257258773027001129510032233306331659107437183513836067614059330498758268905528392274851385165794794028431079395477684489067278518213960451082023215607510232441990499562192494018258711690440691187299073953724650355361073271994542392818190487483449527657347489840579684463481048760060930878263344926021201351549867725452598925129729802567663588446654587422944200313248691076688984777807419888325006281040547391770127920862204614609897031035191446674985544348272791976133930564250417702731540789358832324260386574247784986290015863634216014800290491581517631027873841002864914780480471371174823111138928081012044006435315063252205542553644911874878475091242953876522402548741848468474334111020483323364534763182933670455375504563649784794426660757781327587831753636193373998182040834069253896422759725955623022143810916434861811805402797708206821470670012915095618527528272386229436431958438561726335994669509022022118589091888589110734295131057740660464810504205077263345773496080665415099450337076154361278884668996976013150988106846765142917242040643993230673756495216422096951009780782054834249591292514850243081114839323385331247725515023952298876920160912849416913709356086015724134303077024313958102352318667173379890089322102199837174559516433021772064363851140832472552750696866007681247619300734598350645774844626638821464077848773618150358824658021275238687628485357134690573380109140143291989305097072458738145539692133276314236283288374215955892873611249697247946852990073898053993652120888107799949843850968666045304196670826603242346281866524362114382018304820842752649146480747529033209239998699823255017962108641772274188536323825436112618697504900429713092048440960484014484763565323176397086245486502900613783341789525330902856652785233642490061128688437465797313168589193978553259527427100983975009871280090351644430786888156233080643275016243732967962635369733244704789602820227518959993312670522965284955623774620106989005376192360411295488981596267070207417388652040353306628300038163588751553882932957834660016410002642916275090190958964348590634239789270593295034232504934144475806860642127635769423913137733339241936213916657399244107806942356116375988800231941101000829031580340979050653437186243019899838778365331491984120801633261149789142147323300858077290234377675364209485550843708123054312802763077950489052145491787206668629749148343848056064180451187020459683271105890117105505483377108243614099858235932943248665146064471694080618904017715633823595815772705055621473358041801032740584035858538960755104621237989417583946431839630041220011176970759383443106337824833760064606241226391604515395628917848729012770182529357776706483323364509685640608833240573990790719915853336724923484825542770970350030786564997326063595844275620079915107399500182807468736021045872544006220480932483608552047870334435603965519915947377823084937638600884341717574101212356365739107804015382189066191828360401415903648865967500023636737283467610833657751617338332103830573484379320631642853335163173523539976944105467195805254900325353437664244913609860973144575995892193070355454972575053844981856622121484404899183979164620611401132464110710543586126773814366949248255522681537864411430532084341691767671571239207658435321670263793469885330573856316114453820595530293604852768352202561556921542545832080943360228121707947455558052790711977508053049804005589389608160246124867813595145609153865679420039055235196110026527727282836037362916771803460970715657780359065267176035135916412802639494021042089040135066901516754503366834110868825089872598853142438657801205190959778218706975959034636269491639746243192890488989579130085649342705941553574206517962264508419443373630631304276429716677423225901485772864075901492941015515684319972659651584910744277378038511635285856986894967623802855543924206737323600716522237818219175498027556078709800342029208245995479766629420955511605261325039561077435004469389594228461849533922564873089091372232433318233717898400303279003262642353787973571733424825079325099111401913283911630187519212027686365509627513325884668642077072777240459279058184370550466614065254139662877447957889650632398802685623712861043776785917439933142933546428039170056145681285855064540749950789369455904206402334249776565907641374144484151523660316646997602929881736493325101049129613344372714104803221038305212245326051395064804491401914662969074153728165822105905816964576027530888917612256870420831489899923875384200558339394614759407566365363022078636437869753623916582355302248511191296599630414111271712407348520590286563507837511224365917660204182176418331662893113355735431428046004926088432020087414935262356881006955178185044302289657305810249016758202027003725401403909694655436193881657463045220159094689354480437497053871468423543406224941901840493618935478257657744657965498916991967154466477850723718707855393738703138780971279893487465651298352296011753719375156063473582046301945422292999418472119051243569986779634690667395287995174115273193443752997208172753127661112991284556531166664589619467451659249813757488747178379250570790464728720685100166042283396778777792940245068679499609325070824254415661965258501747924359759495546325853479109527348179939346462006968408150936779529402952053994353908473846358052545121176300670133027468531426652839631045468300896053984875798204890509394827558580869774913644344851763802943455816666013627365473788632601900792508918405795073915928807958814268504246989950552975839747870572189008405783168860201248864072788519008117810372145106560400216372510347700304310637932207462828231964607698181559540666498346434397876660879790200056443971121479217441492023869287061334141806096752033388238251199202469844899077483861039776691146443817341638183358353323411758180012591501255713338085204148711223578528334667409798620879471782418890972134360291325486723040534503283765808415771446084027947543313465102710133831007391951249635653486468251310947843405491538427899347409460123349277710139801399157821069857461029550863168652418268608142513412984085867025741558293055274157620647769833489634673031954473101573466088959121705071642895140141792679022586185655554298238546839639031219670776873015872810728522746656242835628634170946655733688739653191119887258746126649843567357068395428408458644179189607873647944527682670264878189100871626450927412244217213304847022806779430244139087551569887044647770378945760001588110271311434789556077434123202213591668111020492619395241241853249254083796056500190498240553816681502394613949472254857273971837081728380874147526937135583904001672277671673122634080486388076524154133452770765671899975434497733747140873332130380887653824177706314190013680358370036951686484590005543590194276533258494647492820947693940768972796063614733091879918318170761207749446146704793765791505851134289395604637632021441224192322867412123900294079838214516544764975751355078767594912273720064224508051784807095741673239167693818912477119102887007955981798744866657730628737562730339051093500930250391959157174828399544423481500195543280051629021956370904605784958664973749571827656321247119612882200390512925485790066360872324543601046421494448820930951146324273868138349355796458991101964975455916434735471451006930510660889616651907281916779862675434607721010219219593927093272926843915998286075452978193893585806034078544858700221025889993335854980459790507885788835055942945340591339682147702071696477818775493969015547662929495103928902587298198075150463276702447040597937741911948004779190820432129890022477132934747097175683134086341597139850451220983907398359494715489389080659627596298890620853642513372031483841198801607380611250021911183061141391250756103880962379072457219961002090567313199990775108021865890808384539862117720015295653838095723287390638257778162475766403326844297019883988294445016780764371971976015031118099981695772312045971466966426566195120422274311946813707280999385370662814618156865437286919084414444359792339026154032906435339089924819267114616652564305239765479359297969541663443422702409322272333623975165938115648412871263721903534318634676478798163758796833076501337593652238668783915514871832810034608197714154455711412046730567637908473397537992121173129407682505324633909998352755804849656418378907972364233509072448509014545048108779420161765110254564052120645707905327858712279686829519413034983636843920514834464893235830456519267061304477777158153484706839056823553568211766596750053273812238531338170700475163490512807590686296766330957952078706486561472213128350220402459029284185522014319258891116141799228543795636223998364737211357469744532049326990461029539381594943371840016983019134212427432610279980587574809864524860096252580212457635021704271098976838045125156431830647618502821158834263920263419754942798043882000982285726967106276097692934047517232519096356632812798102407215297208320346812738397196423162129689665476582936795829138636480029045613389274939327808785343149644576516203127701983051305638186875758213374879107254389377392624866331404914728940929094498554209299234144225875531629243740335570584097037233693394009650306427698904707011939074751140099220987057795879019707684661597417248149286288181822144137331095421295025715008882276680855603890947920757872747130652847728539215822674793417024385485383301961307418190564972925775757698373727881157424912667466992026833947489273311118249435255788009119736585135358835398538409632511203333579591608927895877076846616270408052977925454808627346866476237401238016980017379177966950688796545190873674339039017307046112931333528445324531351220931730862770339822680638433482827419096780365079510544109992381109521243640479954937898886762107662260411221472110889600698270516650283955136167570040404258028302037737042520877509685145693635011773073576059166323062944273996491002064808583166976973990567069479136696873113784657735964151782806561337640649901413309921039489656829502040918766177423785061602514957079950527453363953362818013750624639148070344727452267722341888950754281126474038121632024373367743285592255483774256668404974441011850954962326387344392499892515058984340939409090909433363086117279558544390481452635032789015409673354435112612736338210173802030244721056074375838105740029431956314493377871386297119293395486775409449289757092093649537386784268271373474357256754502149522383542818100377243450843562725557395250099470171959344010961449690898555990708226732849166407381144732900047818079950874012441009014456184788457592483148767726303159211990284969778533014882188033705738162133934731241831436560422750450160437587338459452084500106901214538981309824231211158255404625616285111209897295845704967764018494377728617258285652434567257396497603918798129166183366313233160911313563248318710237423431328988886414365503140842339026572213519416775270318368128818255893850785458784777631692639897961894579957554480153445581926097109917289611534076450520621003960749755954778600660404797069052719500953792652798524556013316597991386560861948277312592110113411114198789839666286466705845822752981371812436389819992466783563364976734106523187400668692825564659750050189412513664550709591924323105853828930997327007581182077332568766991011159172364898493469096884700647443371604263364623774573061359849081033415703889525580516187608836463684407138963428390826896365673952934200209006867558676939341284827915260238775044660006578459414482287472858366491762872863835448247814859213977762214675768173122567386600309292555846549970961951229223562487375565004144258262830042218769641121431436634803501236059308356520214151384540786635101586944811272374008783685850547097622707934386245158305236554129019775108278345656297511435668724765895567384664965495556613587757418829102769266431644569802853476356717440107733720169501248663456081635652290425480619996648996196817418755453291008240950289009449698909555294957831108350460070969104615343228804796201551635080573205906204303632745522523177269993417405365382552840732754858567750108616339172412440517183306987350865375798258466214116915510117853424835597961105091054674240518438191746364912570490983464277801910029498298590811007255514919281771863031994965137321924789482876538373024474344773781950188847768191517789445924506873384727366405350533108393329386876592753680923969648863408036211785891630872048439447978251908080187164434713292302335676334927786527210269723103530644427731116449770169927474802408927879837482067448792826249893777144778416029625662739092436995537741908103053302119514391252923330521069886773205989636026959737664197740265238574768012661317444697793911842060895734238268969376625560395473510090174409274311570148420622303703788983822187198010179080166869319491562984076169823920072769574589660223915911465552828443373771317595854819060219934100027279412326294085198303935038416584080182615532362396305146812077557048152946117351895123680077837695469262415884372362463036800874345861203460963128056485974116789954257994486617479714810674885642492839764846641789004590070249859517464397526185353981180938437810972336560490285314018354385094342229595368667233522129260734881078254310489187152348806363277776649424878687146321735553032562915352404909511840144505695861591589953242650464540351486437672874079554750572463391270404460102367908630383200983915933898567506186109543819771295218107281772787022751597015835551849715188282171156490184088615991479775205700703442602581166679837467032420114627551373176717799017348334632457684966186620712938739552925881199424867420172231712390580976551274806127561833474764479029883632351107494354184028505829739757533227299976985861531539887142660011742040866955930591995529794544337465241089767960010138511283920796516550880705528547399654470994316220074904743507605378657767946869596040965764561251094458487973816016823824274570467205787023611626354712976074951700996355492707515601258255437546191310077414460021259207630366161021478620762496997872816316071936675594613354441653934602187251028104659787379874620774426791462108350443038046689863023482482170269129436024105036707807629339226409431528496282732676160084723795725882705868471137105209003011165600851606024557565480214208351145856986239783024585702531393055374043327190564490433381853515341887611759454925229467550124747787089610866437436312622150807685677665243084647488895786647232114986198686914231368215253850811479989740406929933115492842245010904186881913490189953262518012025038243935951831216437807737081139831429869517926698950335553236021408104320245052461462785149474679464098472826399313718368582996509039366524522345588619538061706394741303976359954096074770157256844453548136857890652267401355156815542601878245857316373718126387339484786007562063794507920725306661446289255897141047331930252308105992450926780172250451000716220280550404255612677655059678700123073381984393119786540190800502872517468568856440571701874279313183172325697707825483316132937201630624591791454797868215415155510370061316003123796934384948990436753186015411958373591609056419358528201023799557285148720475684870350791527276503541675358743380221550073883470026025395978007805281180321253129865652392922287837842385027792371313413183507832301534328177022372169699305578088042243539647502695118430357417512458720270360726350740501334699184630541871860253462848791865699148466500479564115154537263899416282956421186685876001178771911373103537232420395280281525172590698431056243525731594675202288605930148089754938022780274217794104760624825199209814856117881769397651035041204601160178357770795897724254280427440646344592909102455943709408223151308061976051571017872653655312704973162096911752971679309177033413226095910565663493233378728388396014129674054024560760329502720971932988156720488838223343354323237544688628210013415744887164918562033782931743168200896560206870399770355481220073864388542201345492191553116868699174746260282428133784025223677582421866369777057106664204602420730364055615384042807761602998503565510107942258689531669231355262649217206446755576082236520504162637492751381756588983739163087177911199577414693542365775044783481797365168680454987035942579823912982032911273567367304074028309768392084791161189790663484891587544535528271187936922145520215620620687266087893245340598034307716390142845781680666584463758267311120560329630486771196306379556664894015868993401584452660900876790802317740460840772992919451083253504297464146740998544776657886331679497430715699292750390365898491398207310265552650522534362679814124710144628088082398130920439780252635282711568229907328528552216868542236905340970795432491380970379390529770220722156399711998726528380586157963138970676424301381971077371335368359665663489749606937845960740267375138524199555042038281299521078473471626444485726813708108511031670237742185385296859978715255250923619721114298857549632468839089352806606259576934211106652979873071743080145427747963707276001071602822963021814406059089555069862038705992753023722118715770302456383941154380510369204053159529362678452560271348460772176068578893958133552697305405141573316752413658545827692272247086205737244053993361911954342675980385736390226885463407178646672560727616599790539429068293445025935438608989860012274200549171499367554047994714749404580295672428598349532577676341504005803547671758711471273794570661560180022709132985522270476399467209770411765161356303605586948225492878584477112703861610816513580632225660200007016580758574010323224902859411099255920026894241741668235868117760850771318777860687956105333351669832471828245794313096388943141927194361767382854240960413840670908226651238269655798597179498058294638934637719585103179519649528802939160073283747270426297938228545230411232981484921648440747962741557597526179341200538628020556606259172111847914144965845729999569774510694146896980359175010470032784783971385262035900059515100571204128800659689341590515583770913357632958943983342522413247293362069359231230801890856740629179354892380524367734892455796887254952282589206436497856639435440769686736627500294785628342289424097661441134268483983068946602219712793781758960206545294277702978821107581122811226683874212715543715881101583341459618276035904112263217005185958079913937477497399078794807128310579589111035349734355983137735435767107574414619384779125434199003731568453683071119703626674942725688560429817908839529265187621689189961729046510672048928450636582437485814815353948048426585006892852787907383836105135975287562608772134525062692920248956500132759961980375617469659321555769876494741080534737022043514703267274403938082353203946121735489985373339927096616105581424373532024195239287718273502309065849704073566477406476501025894577264792868715399788134857303829307559250520785517924045187611315171606545106761579334362035548263604819573058211694078538997068342111951788692874240214936313482649097822225904479120289341684034051941512902403532006513982206122215948722880577048417705989841924643909009529180533981335055280944428109486826561433217221813084567993935143264885763924907009421234630667436486194623373471481753987594995250182008451866052814105263510533964137127715354356973947456378570036270562792839662952608196873141631343626296691810522568851567012254468785016087449330470694123573878380316140110643392058504282458076130275350814345521298972591406437257417859022318202323049916478108308447596727020436053211122813228278397613397058838489075199077107410775845956638491313041058851243036753140736807302160096969870874316633945235345894620136754458532229923269183901521706605251569141574948585774553446422229145138807901399476287895287059477564166241383121912135296784054632513980659157333124297647661772331393711128427824823544302368958969293517834278128117841715787324917330135377082909376684218485209701448189564761654120802976888297628977867460966097146897329655233907240542642479661633345325146082665133037284475148274297897679654628925351081204655041009016748515278057736262029480789954543544318648737004046184220008477892049415625207724728905006234244479457725291018412431180284033283653897320529781704866745558067049063418778248201296319931058954517366595619479066414380343490101449767406598941916411564183479583220932642765892073133381109906268619761991765532415272211338291463245627564973138297236003149670679699830402161990988285899033766546497255922994575432617344715075616940287346908689503734552047612761856042763114367067770014365441367541137427022590893193873187811686179209446780454011030143776322801775919300191396087708301626777185648879521910588594589261542758838071037095182401613578367164577560537430771375567962460854998176331878604440574550014389913526775033278757616127349284707033453790674918058039158497252793818691769643100151941794022036404627111160604779142704920543800851179904538657825125067262506680227450676822568331027901718899199701552442136775934877202216802949317556611272101213494445554809120407523200267600809883791605283674858945575817387044975715051595255265221582417222877336477182296754713139276075595199393762435922538575016823310252994040751397010196676015945455741734084100498453962912455691763030596173832610018638925610707715169787388154126743992456290672346407923255444125939887364765061167583418951106769756155089390283991133715904369826069562139990946341925035101289181703448163758257263111738797077666101717004054709485756750787271053081463459788796600348855862987742942175625816144116067512038729748263265595210011397512433865387043031922899721480401989974787438289773572782255125304740177754653389349178427412432200211373459004533262796676482294087147835123332314830383901329825239678854931482179113865850374188577574305763261706666649335832314480947463389631417016261318501316018043181279865044155174314571317602456634304149091700236759711991781371418191871138463299517491699145526433445072133940401784015791383793907216560505247997238792899250695343222455705498340272014280227200422910537575085438814787234721553609778275660087093442496556817754634296982213670019872151072866893124396465545588831277797839463046818674544736974074149204304677174315635904140770875527064793942008730049844962303907001253837289315861464441466479625925665879793341959037901706343582584365987157046537665137418216386938061742758112090381882154093002531337673465862725618563345356496419132584997946487141952450779375616213556861067919110271229342453146653663805390125576849386489568668340928162912873365322206530744330650017047354027419116608008719956547875504779237803035932927003036687942891747907019293667166916894195969222541575534106321320547222392462446715106003703198727205582007353959137657854249206730268962732863225148602241098614244653228019268791295451205495714009689466052067352568357610195803518684349784208289677154749786046394606722432663116807655531964291864528768230774946345385281574352474686710004643171881648143590665262132238651107181336175798010357961266701224151765116656305851007725853584724734271519253872018158391972231564928025360439549991251523893624903884134480019161589177326385605335486107093871509323238258679142653626622547035910666216888222727204135159862066592352729980011372686646705680478618573982925583231629504501490755870415273738197671030685305850314277921222669224503739496656539508737909415649155428196786457556276101736289436903889334984344861995633299277480874797805161155949014290718951014425399732661279881804591130739702570922960854837771733988247798257015660197647908523568714714349563083189766298192713676063568703649705612864021089490864538150854528362217138631175790716637936595328953536209025975122462528932108962672156235865546242669545578950444918332327454102352473524338751141914107859231694000792924185882776778600144022450712960661471393207632316780445738071678191603072266880640459641985448548753738133130315302652273932681448340995126867961227923543738084993483146760369088311737782148116089840842128416123268093678663176837774679080540529037454158340801668539209583975518038735729188196323385405845196268976989422520504030771214880512862129227393708338160539631085061146285953702798026390444150935776531143162780306722494545971445621875647674948212680086017802542531339692745508754736288971864013047430406960404876126857475592236966856861268459686986833105087602875152931879129550614274551630994292372095990635155573093007463046211275340145619037856773541413225958367263412629602649084113130912639208708477171227932809071303006931286588959696396311370720005221742072891935787016846904142877576311002834137442522800152362755958178574485614562950625055102702241500045287536831036564910090573917969044700342076100971588806398455773429553477927376534139155054064358715998755016499820065686265988448854204155481804378768556038099295358642007918154855097614323471303206098421417392025518752175930129199998267108072825812904783631714324460916095788206852141858142853319930968798254768429639528065242748813737895882745015356118415639565376099516826991981341008309945939488193541615824338058791974417290797165831336694740412303783830035328055857257483601783439766846550421518875911477123808610741874597727998608569849688436586707577546704047105686053011010005266816959178756616761421814812204849386622204766430606909111899689961243406831165897291272443681752093240239071492554359091084830561624693808893865386485240784960188630648922330932959639724518054020386056346858387568248716111563770596199984666606197421671046485113649086919622645524015774926503826458655485057786454156063375571739673459233475025630737224877738422516855530442084323043857164848656338585765044913857854946738025394636808796672619317573843844504095665090396550421042147267926779599813561141397664714604461270905850009176435800106827507433811033017063406996134731033414830999396012531649060482967918284609511833119722271188993792264053033387694855674020948954227185525936906297320234121340840767456145391221374585931210453859691493877047319650872603120404135271650606817584239225915035592592093616171207182152871789978648245957584140668548911510073340121324221925878723836699183160523927642145034884484071569364093618350771850468471318157659505826121078831785010884314190427309629695358010063774264245061797207856469504300898849050752986336431615444084100913218081958976811868207538460437398050285098855304183480476418293677710261020912028114266666996977086370093071876405862587575589102850703047417212934427941271725049920975223988294680087488777752832555748485314618920225329926370226080922082895937356809400643907834801956039472864465761731038763823021189680053532505386907739676349537851121217176406408323694462248978205539464492417881733446484305272546183148323178006162106847234824358169853277933474907194492842325542268740656936506793587639817815135932569155820179022923219458873557161601865426014610119522329080488991332480725421221711177340138717927251947939156908720916844141597947938070793066877927754613260925916759878445213169578845121700823605777594276604397030044120196829841469507977613280350405240135081416928463259031394452269240331427106491919974554797356504987178019208963793547816784751566893401819995709778216854243450670150100155311716463470089179559507836744761732523132042622111414168229683950522305323623467782816966096555679756730489201189139105711299497162474974937540569017700645079256646521749835975888826170385968201133830616983979031389361609366995549036474449244246745413186208638410825300148744524906235737126948870424171617156479376123122487502492956057296912271958698000880648695967612164464548159432973019958723944393106177311759902171782737705205326675021988365850409085320749739359282543837885151154402445316866148938943880091880987244438515194478456519928528604485761953734478488415125980130840300435687645835818305870786321200007996436215039165423496858099761821929023588130885956355707060246774378903782490058046538196229707168501327027921113786521880208263487751767012885584782745210592627195472380372037500599083832177868249310926902006486603263533818266073819301712727767523061900172318777836015874288331570038035579670336246279936527320738981323725013380356253627688930043754308450246011982882507440439304336411600832948554208950507854440520918697665431159765750112529049094738723029690614647591952479941558344376398466221444314803026243849169034186514981765417546546106718607240498173089388425919789676861794031285055421771421996697729084777660780917573582549107197589348149899391777934692353645248746149068080871493677246682022901897536183411413902219169640366200768194906707870229702098665678574441385276652775154227505282040968175674811923437527677318668322844633039193373888085046996066351979454054977316823513764560560120863251430875974808896114882700222723176885112314076757256764796060232583468568463399760070930781988686975847121940751208348130791652401953262428130106150423017126403023340768570838012032116935502736005917335834173837958104692053809624641221884127032082887631158165447792141117323266656286148806341212997393363603077562253744725920703864994442975182391020382262894384472942894973793282853593707784908452491015712999893904155828412420833028409455707679305647513077570574262785610386967639593018489242880054123574404343514641417049820129591426254956020407213379925948648027860113614867140106686617377556095954843807091190752706794205268216331747266885667693861088624007292102624178184506125832565745710432551634341807793920630376863304777959613065931749379422235451937308055669696242709758307505668932501324960345828107972253345494384472721636313375046313187044214495172429077516695532697870662717500562868781648372734890500312212595823307195901167512330672167445310114580432031448834635158728087776344302774619175516172903642553812019519924563167191472069403612777760762094629956749310475901040702135977460852901847413982188223663708842558996209920679606650422230588531790100472428365875984461881386527787436870745816949696939092726498100205494181208670122588309153711409911105536748073861525210691461418853614765782548840491845935725760980249381961367505124950913589249228685146055594113344996046498451222340699579024166552920814317881866724217531818399536976627875292964417260303861942223730692039442765862112789973346070365701972480689872434792746554730273808764625948100457968001722335174499249051741123106633045720785883335402843864906853968248273726285902188018557256088530327923434733947998242618265388236636176411725986700238185527831525647489416460861722959130456456708217389266047671871269091638433760568340451133436750496212677951587524876422715336172112509381493996641465333375462878412862047943006638701548391809792044550123022354105930270753340020101025128382197711903937974236423387863424949785439893146261176582819405953672225364603359278314042856989268837320842620847324428730836387150797679008005237214703569638674943021390880389631061201529888327914646926522730038382785912845541951735054072129331732996023242206310849386993073325375155446144677684045920466053683586263157632957791569318339627844629497488309995156733175794474978772478287759557565687074360893929002646035373558992471862552766366934310272349480169832718760252365218607709584959531523598546758739659160198813406770983663436056521173699046975579883090377032226129541280107482840965798801544380482128344818894575936685618120606187945888803040609854814284071983101028482523799537002074108180780027973481358291957886082154042251157588543939368026073902963192807210113291221576863511917990899232125889669080150767359929826692366288808169644559879018788658087921735495330280693773272246504483804649614827514189333441427703996782474152756890055752770882324216017226219191904935654543233672450776542938953848891351920332976645945461728323134484662774173361819410914057512605745485380531871453446773879043786307412998912467725981078631664389550707864805786908380647478564020378948951456663017284154474729765682766102258899711709907433723835075098014474977730701910672578219329976225150787327104863162172938461517945812077078510793531035943043600668642718351977986601308070265348298123970524571373971877524781871723482329367643837909829001864179153165634460753449158754306823403249115886498841550728005749742720253015594816889753631461294227536605144728044438276026810634970003863542544442172751542096622935211555234710792097432865323533302386981798827618383895853501892928996486183675928347665923835748465952403096910305576432031694000553739651652744077988138097248856784532602163560700396511514535688996112461317944441129791601852377053933865039951439865423583857157307758752464321174741941271627103954023645448039584235395223234475556673141540723039910095954135708099950975219648448768780928143884972751590481980037748161537479314813536162401458744696216690467730466704654898474622360531883610298007134219155189575507325744742360917250654777709013147122919196691160848798954129655937905480298808111327710402157703767983873004431625612710626488360245846314835105365003269287796847684269502089409885468487613468138851589939550298853644312387884835509198503778330890614519029330066457892366652106332426361606966796447555219149414063807027813552767614342449352148466907225646706144417262035006042538960688061411295633168661857494815704156176396147150285907706611076582235034084945842428773383400714940684864170570189907157847764047864088474162871864371989250521590876654166706989602039520163687367702195656935528907088599428441247423826304175373974516338238375831819837384883708545752183502936805543908854272603239444524481649777969051599535936534567058706857229958903809963924941279045323232364784733553172524317487638385292472343699147588548538298483342452977160953751349112397342502043397870558120016404871066871349354442253525339817682471888102219032715011044479448085197443377006086478882030127055971765596079319183913843230026015343479305527963502808897022277878476394751726865523176997914957330304617137308182088910811862988785206191841623466550848991483090632178162241042856083683445049588400117470265254440561652494778207040339792686082856419124215990910540972870556590464268958226785545834807350909244353196052017040864564559100126846479373787644220829443615688369854200249148158028220348381290805799714122307941032948846158391159569593335331076236018802912717955245154577605499712262125900374848865600710506435076573471839788494702761131296034748786097632728991715544266449184671567282595775462021084139071065689657579497629469368014952492521907361913547968516326659609193428367419954855698888334157782682280876819138915937244965204382594808394103346020665879834856174505621091366773156724922440448539768557334488840764148370883699797640936556654699284851724497398523607038064037438186766232786812067708788892913008291614943038317192545196773918220770935308811842762662507581174539309554955687147074933056821599684698060147579898077864674351549004452411338893457875094855923855222454805014687879562010824080689670105462814567141413969615064534649948845383339006492074494917383193537436009662643731698732544374297131926976274749316456624627501825212076249189257103392466153452695738616402277648423236498814776305223046998661408304690386864076576780870442767795273079249866482507050617247542781767615067431965681716673313059599153835063644961047138072800749666796547973326582520122740880602755091673276933011042386257035030437706533572117785357927364193422812886216098083590841167050294514257629203858717138405693494898921849791418478172821418329904509194152072863394622037280338711356953302987715498717787676120878702703146259963841602381992499292568619641962635165004914645690773488949048121506077323476414561651987901805921770439494065210490982435405821820692172157972573804047636793226246770982139748379178462560671762060261192428967060057031038285035825989133461179865715193154228252650656666520496329616468885031137774806914742462656982043772446277469614599461773787339393800309107188810274730643337145509155310902665438003065143599074615636139008362667498135916893589518164929762614415531987882998860245957188514975428370120547417800894511758595954972558016612311653852633583883347444828000653416389540888423500251743751187758987565907466182442297431555724545479542199534858274255114380667784311181820902594354403935105233831549199175810702286837021904719196163033355634371666867100121744741194510345419412125447060633864893386289440936355489638403483249900480855755888279132828719902778357634772446459505034603959611866628359025643248286990746804975890944395138843091011119738249029640674950459209575840684885423602547103072531184259415865475578657220226234217401213032673462211168350856769143832195509294381763066156370547308831778073818641466418946614989857771989279784094421269721317180563677883269225013104748985011655927196024619912827447692681754876415736918034457759907095584587472545475363072536777524495949843607524650937645216877861492764047808220696523068662997466877280079738145409879115549190006116747250491693420202809323553749717992089643473406108961435248617421562973582576678129775038870049176166865401987868467311450108229616995170886818616975095499841784566857474352399470087823193194341457966895646765315975162142234270874296652486959927600605191386441186793315074895654611198280788810876169884793245935014570364379578651524002452459520984613781475327737105849262741657444075338953724975915063610770436023136473712435188646008777863788434822617065430124624177497168210995418157712086662234591533182156855119455653022204108687403394784471520865738271479309202878343165719339112852778173450127856460879597892446893911766789474302490034625269771886897972706595053958785469072378179384291558935632844686026861916048503798668930578022285296437265741221961837664882855041602338215900276995452014013843662242840320826800443341536350912330220689341940719899217287232689503674322292254403086199930356403485339462448458714338407160753896460144282845862803891308682296753324569640886559310240655221668399146953008771434211988306826185260132315444323739850234675619293101090578011110956016384689308466650685832309369783813804372506958420764946803057004107968874937772169613484607904371152375316654189326481826558015209385449549754197742488263401062520370364958119134456997273679717733988615933009945635272430408966632169025540198502674668162029170055634185072189384507590673733639959274595967069528411169403326682140139631368019005112963515660774003163408259169211308892633045308371528711143662590676241945276505555298216558922999853973947461586563286291977727085022665583584930469804331496904352415235444604985480101102030173320747683883147363501285020268750643219008444452593231199064919121647403577099055054015311540885742222185903797228046144127170461969028644104929450372845684789428077207705931215410357367633187284217093979997821037204391567541859595523605924613507677497825023166885634017627740143639209459715074853397426411062799713371400660016688696121448317209940370201773876187786137842290256929127167620601036730577711718298798568084634237376608757037296965766944269306032371221857334892269181308476497213652765052759947387922544717185174533548537018058887290634400998047585716366799108467755105943263645715362509861423999008728214934730575365964900427889575042838806054077545101557875585731633382836042144009448398646928508547504222567158725643312656058703193595581747250202037274821672239027539401868280909248120982428425462396448396386386219350798263020810298620291794025170191461168186400079331675576171083876731882085226623537269359216511784553906658422854503522397629423436355193930868327653269266770499052803287160161535159354480867205978974075810253522086593315847543040609987841756786186615555492648094270322690710572751106600582323121173975315773537464373321462103323316607697748189193461704464683840097340719774362267915864422949037927067916682641686021128550961804551746239354736310145903308353685907051230927052542440848432016241128564261399427058801655409877944841852825780208806302264049714201250627586251099230583509237716615868962182041138273495138417696224731774486888164183870203427334316546176557923557323093429034911701645085247833856056814736625472353898664191273287849364657622413202430835260326458342601727636940982508534002903346306649792953355323233341850743990976483542475085693798456920456903488424810422681422538969298063526599094167175873613192979537446535676691732045179036879978743129383939836466297114838123658125408654029855223637813662679208906279986404784500719165552579185875820371833458852565154653005322995699281079293831455209211576712756898836167542631518330660318595776815519199233570394940748862340042231102139533515721087174031324007019766453823178186442561714846733022018056264919830748125378832662110584151617406967871961853066497436686615928940033305992883177209422108520795029543610822267319472894529359607541874540571905625475426678746329324721006699833205404359998844822076669804134141149937458703123588370797187769115174273950994128388407441643340888059211430273565202071272858989098558513320940209683844984637029886431874990157607194685440415355834421216298439449493988523177848717182439881685924639038933888228339615747051908574858848780731595353253457831953695423134954195842002486566837533699972338738159106185124393931955840437815692978659794194926856229730043905869739643435615507752524852998769698613844531292219246494412624628528025403391477567651808520490714777922431142622956966170118538772976621817291716133401503089090770217720431475504651391907660148738567620672796600007181574293404503193690047598226300094442362845177878455258346336744437832651160509115635675305865016776345351579705041244843292490984634787485893094136764101845217715377432846808111887398018115851128081955222096494256488760356350014485423263714605021030922246649723178354446911822041994263815430847566342341868926083147962655671243028616325936211246212263616189259022331292261766529703304465040241010245564882514799532442452620700124303243335617601686285242205460546298222296414462882380709633044713176275045953506772434711908462910525548563187723172395841156342981977361015809325950252415790859565560469982434730892501516146671493458386498893779613250243785704884193915907758777861316859292391918005598728868802442265534943286069366552039776192378388786041541873691512731311855802812156794765928396657712589098950802447112656994748410025853443613729030509708714869554666225970832489957596980262663481827907465956499606286433847250240232830286706856525823619059751284816881159036372842504372042835046636174565844851255701996099404011517483009929953755993909860333229867671800383517386981720749348384925335946409837816533373637164265691440645886282841181603175903050652684000615784908939096748384223038191118691117566950018197551171699480454501785082303238375042695922170769304581112691821969424374998081923144286345687724820263836175205811523840308303428364130453869618903699536981040037873096739644321372334790988187729680976962407659079045417305189744224934353323830453498087401707908950608395678206457459870221019186122451531047512380397716214281218231305808622438934106503453728749244226282579251421310774352972519093561346488907438392014644815857640323412797582612571280229824912128732945502665297958977198856457802438118918665066803309896151054501543253371348772785969965453660072828802511826990305086072189231043595084106490094626565464280056004703418192661540539347009952631194161437404261949501620489195646433546822817654789247275386708022940928158184795004053937239574862593690465510190734643499979304442517321873438474167931119185062297175462230488510018669001178758522674844121263489785582565748835237113075779690488797847246682724358653666367593928209665795431171066489523174847968508559040767381798363249348622196808253126998919597024055893747758247587581598353655877310011657333719305752780826317377147072599565901522144104468662254554330804767578036461928483494978384969607319538929283420403292060151797945082640218460172352212191166233596702654300769175481969016828901386563526177034096271486858772042049140599416044771797126957117074257385568479284917707987710643634819271151528790248715462026934390957381038058799576483980683778396394124121334365353076380212335958296246036169253103789382394766456869433813675555055026560741650075016475481340542575506144114756953095824743049361540549991306569935140668585822922232852189683926332521982631848096652075303854031640039572801480284804521181346372427498986821247143496141643146001185047163272752708003568761080325797929242425659134599915586748589312182827462969478875673625462702934257070644112040838108116388338299787350498179013852421081390054827483952689905702163089644368575211602671658272940106826575299047401276339255082172785901742694684382002333398354323353474818576535846417039969243572104580389525627359079623032276001362334012987161882935305947726185446063732058498954937358519811927631376670477493179786652261060590570938525183403842327473100471314741773668785851097913030995579984178519459689965475270932350207342741224808553602235064677597599990422213627429282708535208565960815147515376158656328846148996591747133938516522371746775641645908283331703579957521819446245484103327146241475936575018225129975326488795953745126053954169533599907996807275864207336226148659002184732505349341823442276837685370605835137360771330045982079723010443730738463635990061526299322246618830584375847606923423366888634485537196397550645095754381806532888291638719469224612487156202563800590754392136784922461195248700873576791400456991076080641910437401754634589949519278373325003253779120471326652102711895230028658165945358170257338507271270700930653088747784778984607606463546151242571752699822495516966917207016036825731641915653454490867115339411162456871707053580393573511075626258217661347130976725915657485191966950747508041191094426769322648216953700425335548563664773556896690146796627777445615582728137479103348293258671210026733687371920776281133607182199236824130213107324537808891102280565938364005301674047795849245445664612537789929463654044828115795001517657156269962389917341222168623744028066281060688548979940740358556371989173577025809379616970180384078546561533591179261702241692147426666727710457832710043529253828266746287795146991390625337160649250154525766284417207229829675469566512526365504172138964770823160895617789831281018961397677935227067434540643728447285069887409794940086310801312310104146864341419225317569504940892791874229102897785170588853816872653018843670898216887944536258463513585987910081481364515465399498270194153774610862448963800111831602590214839788532207659117262946443052456150409833648273964170559443013032834873374143014300194113832120761686455187979219775257293803631435334519471348914459174208381364043993935328099999335330662605174110416778272511530555686872236912200262410027698639793921999694174721314099800952462786679672901957993438430663571427074971609311280024452832750844579882300864369793632154625586629014235624580430097343180312247065865121848619977624477855426219881526073058496664071446016937591444864268115600905751014330721845168904468831423829013570766250391736254662457526115980214040986114168980010119091864984726367906490679187634536690537914028934469065870801174389598114255481612932265559670156181820750941979683616718650281493334056557492866994189063400624665048122967184629619484724218102850866336774566024366111961752466532987416875646222697913600416463482899186748994075835573354518631747010819808522262387049671207349635578531221483984336023596775910533003485723056429102406954074298329440618690168971359788497764300040576077471430710279772810947018645269461419119520976948105195935754746741660933146848336704863307694676369815281054150814038187790105410347213421076424670422636713932172480874969810716474990419747360357115274169116746109366194761628559700351231080068970970278888290093126126826374982198027515461237001670998076588498157888067968428602911065960630969446139734580944482563351284645077493510295322098801015348894768354381060397146840217195825333355251978060339771650014081702999054756864158143423292245183773786452609742597636969939676893434610879795095730167386988600461726910267378136907453155011907644012187141927809960600487234234067464188587080250078821844086441860294483407537632630820464475920599096576409081578705423042840609269324084825628345197064265377524679557142176832504064734637387898575670690382558265664646270294702513587280739355947526349602532631636314932833592467392336297801589469322482406245929097048538431169642042793144548686136289635303691010364560328130341136521342921015405581539924812681138176769767414892913473967839779888762921594556072732162564263406627963376694671095859130624964310340848907219422180767029600954934345283167240781954138797667904461063903823531827663115211287760551610461668922513299346957074104424757288083124473465142593868746438397293452952883285882162494109935149490360750035368799006062496608157725011192695613524775098512442295439270023599364369286698788867273859438594033688508112552510437098977936925946712042051818151241590982021717798969733559822487045376513933820178518370523700240507477877760967418572403207558512838762075745391480286267715552461338198613180878971205890835991039068952647223113978533899884185414726817031072177920121410437870102882651228371575647411358407095633080241728156633994364073037218473391168799460330498060575624564852264832468702778933815023203268726201028106681942522948790452752761188521067726599649627168696894009928153821022164868615005474661171705129464118230829140863678396734044973662935333814661546559830063194983782325721746634572634664883934330056907669633192146153583433383170691400036617254838233818724662511843934475657363973239705727608851570998619111819191559668430328311462338372953813344256739526308030585595762814927891672852526025979862012044954754886493751062433025684577532934264987407572809844058711894132104361037634303669356058316516827496833270270945999414488121873831925570977964603893635480360875957010007957147800968158657767045274602303117869461850402474777843091275758145285411806651073372548531847187112832926571413635301336852551603283072911922963568471934894031661499268206085474038602070028537149535846761940377943741904379294431317957833962197365927703595846217856534619633217807251406733057692722024263867525537755268252519804424561383309695224773798113801421721410292368664971021695270895063126507405005019976189889382254855486158434943686302150654871111840993665860228594606296939639163975028137478372940817981026246021473414550270660334886857045613839039291369761969587760520746466222066185154371471954096594429852124182725661067647897097844892639234433745940997824433728192800461439317812848808729949523624946339877295447210509804088558144075744052093966457090239719714176697087269096578499836908695821537815586415411135316528994553126717039455526453487489422812904472021756207699715618623288602594347828304312913030778768147764340487920455391401176240098243741840549318923082953284190745584082234279120164689212518225236730253784087008640190434699618142464830578522933092665026440627293462136232515093086969090603416335666777819184103710178384098950895866659492673133903863778650710802887802361997919730677898274691544543821498997165332681724272260860487813852282991835780116514685473267992267497501254657585937913389242641644489707283589624383046183043685199727898843202565837640954530884190960814664140373189338631671463307245222960576441628786669697901136993061216162622794584669149436079519119303183472280328565793127926252879298296903893609185658639983517911806639451041267512344679006710231668510801242437264231708150159790175849903745670883527845460125122821507650152324885041629522501854278741575058665300000337893375405215465487225679331602777685532570963269873686453641550983317168385705883510415763372977313833847855408092077860514961510649843362354134472433701353523153474496069851568084177942575431110522642442546582170269108607039489161943231198864980802154138768325867755066123219861058450149128301973053267222477423020455463158750730381286708695088525691992443914681229115102433741332931976879132232665502921636045966558737662017894215178248184739856660729235615645306133491671674821060622151153985475896356586180446466140441953082752175039386154979781979132079296343411690649092710957172324016157109013707757060562593765213899475274484138526848079272273018488600179214312168363020835868857342466104263813936570139176925046297939851107902192384826431093777562485982795388955470450011632770961738694531215235096175415587078032073638586073519294394624833496952527092681134617864788689913574882482286727724352914340364184203930414051042884798156316984714203954499675158186642334492332263670046923781999889670626722444703109521243352607622188906567481452530068969406418865722843343225667347587466172644917413194640264118509196568964261658742717233134586684828212706025025951599903258575592091808276588695140162121266791763453736611588944756218318394768455831634008333347076857094677071222661760874607736388232507183069479831218499790483080832808822409070848318718804736998713632385502399733510231201864054020974748307465579606278274888031772859898201332330106002140599454441821726548181025827034269244773664021423143749100781224705915903991499607357083502418895865408422395484924798501420823512219637010057577996628992437477737369101449414383723769618873199569753151389916488519697866942679214699266294492497332109342517527212227458624326831145345162746007567670746529154696418138798675974246372440798160030056729998102854354789005020297936853751457417432902809608829881191600002779574610127364373486321381898776741435554154724119012940732026022023416068931647274304871752427110214373815534784576938124778302871952915056699840399493242711272793401627589465855883792810194096365506495604162829926547241032583801653469928332662852267830810077889069829423944044904720922377981261869877636732663541939778051226369546682119704091701776591061598181452787479553595441348545726445269747237827260436810110317843093597153668181599813108969757817091922297497804560608240437757153752560712949983613784724238837357805037948643369047685686364070751411009530414030265019863937393949560008613369018627136961971097658044119748145934691358878617936483229303307848051228968795002869537672101967890671305694511829536999153090468492339799314972618398137794850039337992426330264371340558394554769162087231015425739959322568095684032648204361068045439027993883995860252192823455040179102157136541799115948438639708850204257051500201277174795388461320731996356512042625039694017962424006433404771070840430641645990264272047492044462278730432162745013347328266165543460940416445786855843256106901836046709326795534739017606527183386022850782012612605816619370901824396921223263616828263659077702365904354529563956937142528412631510437163891830123113191173539785864537593214950322724500369155178425267905332211998299092786751492326421490959249070532089927554736291348215990816290889859482095041696053443356099579731946238179571214423201650509437007946265351758677193527976862024368597694888065914220693593104338954877930422967562259577774365910517388965831573250158808266842110184064559264438763503751878755594641375117595671750647633693771620886645012534755402673796125145877017913671922031087090367636479472320953649852386287063675541810517771555805162325270329277887594331442257202506818990931072109383300666335279325966210852383563083551965217872239564925783585647562194764532204054555294372472684297674099426972547495470472652954389608284608638730310452374797921376868102951785865115190287078102006013589073786336149347440761079096748534925676239076505908752839071342743607462026070530895978365732862892533212040277072918756927971440035802349996580541024284662596684439202845622715331178843820264218211180141867911051300117635455032997004801791454357881310408696566943008846326097969524329085446647759966907188336620772894922409544944661843289865786789234004540814843430300686208152362114688973587519381384809098818258773125340405916343386361578953555637043280689803714313983347692358809834723246736262967577532039690415264540507284399456930432629723583255424588808679523497077405618320173436171920589792313813494789121880242402746183944610977163547484770849413694244182419642778351462045290513985188174641190038399440487331905963395443656493301554417252042643474460423796111531361274632395732197484656791871516867907984037641617543566722454267463464903109194886404502635101329772652646604529330722565078642509330938153764357500518928877628167960648079067347577613119745494031866551127235211939121277212622008241610902216965025906863366305422818383864065747920607997856826253591410147091097552958799503603488126021772315673431243093555888843671149678314721112671765670820268597536368184443819247194557637487140173233506744344076839698353315211073484080850914499502496763477224243497865104544252470031443294139520301968495066104835249788853434695629424123138939244490547674963729415497264602380746833561178170378684466144489859689570877223084263764489394052331900307578640175217166484897197443583001454217634201066127240596699260704476640600362592357759040664580677765851681325759455540333257515456323183403390716914097169946784795593111957504497661528097136149952724906387678917391710618112336126126210537713042298757174051797872874850535287300765572229240920596625203804086861307041522185472848085939225654712445564750353482789405582672804444856761079396879819371382374139274859251395441524383655424335996145947656374503899905703288156416426642564242269410249951469745138531834074411486997713220142239170882930944115937279748243257574319278758703285105860959068137171183267128496879251202010436906022741151912170641291560199111605806880831965708253005055955585745448949581119806072436196130553387701063128853036027072720215609205894846468777327393735994536800053881315683595249427227503620125433022696432016108543905267041536956782491831402050772606397688606103863060591552685805518048719410313506726606134989518374831669328923578598254513859652101101154314337675142785521406627708908721891913029297253223139875689794000190883831710757810247739501791602487984873318264937655605904832082076753760422908330832311325692200973476317287435996029878744686155691309853892673876726955336837251534775361818465185850959432187504411087932734614538257249937883734734222557297707680420396658295480223772939284158834063010756201131264421137715584698167760864573066467497929638693075709937595548768957504029246876068163432025375174621696007094361092140443299813094275621151556735799033674768608864584944790240078726839488258423680880563589118870595735226497692206860295459392914979368508989223082719889175198537515055430771559655607173070945276283042532496436455570370320302292329359207686238495415648694525864570675926955093222220753279171287975663679737639986794042908131673428886975751712090132788625018588403101081163201614768934696019209529197826378166361745991676384003183388271429644102803641870068707057816663955679005228771307090256218842035427503983282260692207959254868706745130255988273378226495887578499079320009687132273898160755523638555211518046263394899700861490058526208167585868091130760099455623620623240489456580549567700886774647312896235392457524805734567961713442356595052609386446176449692794194395389774536378115074772366929505067333587327575303536530297312752777718148127633735280087443366591827480845413026809828110016177061825792133410426163918660973430183233491774052329290337480252206790988020365099354202368925360510908390573229660274150140177164355950693715231148210964477350374458178282364370316406531764747960532863195092497713398172739815040186267135756452124462787499060402839385954870367412825485880772306772827727579674524546439322164886664368294218290618566245158227359282423787072230496123157558355442670297767794605281905244990756760688794910463153121391474441115243703843033766319748270451481845433442965930579665855400206522411511768768271148665061671341137092438922807668504665286769157453410991075931756608767175499389529110628442657923806141066679716988079379152657743114776859489119355740917028589490163335285818160798274539524880616710824814448081711766687321098251873935856091082328527456775671704768500627133757768822341695351606019049995188423866044834817292728642406361328175216457677737605489973268664431884744200910609698922631542143601443452903340604460516177813781769276166524780079715001353888933001148538152502679440251293572331841666686035504406143198280465510229942197300567046534427423742037540743923300477933489679645824241043967115722019083124507662627435302237034444952603544280555156438988795466642987424673704568520404630387053359379171661325666861012328815267235999054937747016423809939044531558573267378202021924491304323065471222969413691757843548542778453876095424565504978190504607880820482623731162264743330094587638557798495605150911536174264949869119530312063071714829542279645586378592131559278418465441095673096939739686059552680196568291560035572341227701285128728588332100608259005784296566853644097227904422805305868254823183073199283376037612790330422125818175813382587997915831853082490968495590589268439000233537630118285619144995960088294302544533310516240717004015155979097404595339588149920123479462670366064579569041728692878913453090704394585637787571464260553692474394716896648344015415410231469622120197303781773892548110896086643415235725880428779078165093248860124423297446860466398948704847746576771952349268945945229823168152212986533069983809814840325221943340919716704891820449772282806136081459699124899022588097919879416764401219178876694713285911779538657847854489751114847120590117552111552488092411885951981729911488064044237105254281270186173953867899972749546965492556264543831815078242402273366943312512643853471661065573143464076822872039684670681022471275545380891570743620577739464699479340403206596629172316834020534163824090280937565760419171771784456090780665282539042241268390498110436189522162237544117020844483267467234542544439734086628394162406587584767382229238466151226856242581851061823925495318045061058403399068793330402609140783859691812348231106981694120688175220910944923583693153618051967011181992378354920900135585127141578454267404972506279782885215817005357500086707826597847311312210897325038762748290862501356576173776386941420977123537479085197959368282753094864648210010577502085278747860109745114825394477685776393715232975479946655393765828848593658266903526843517210442262613483880942236849433843104959515054995511885728273639806591271014856205024774815738930296447948941828851336190733724406047930492600636843285210312981362694076476342262236214637540530573290629199385245161045784223619757934717005807388090499963400940585933564501318120419045182061479551374585323875963562462706804952471157352088757582521321884147617566638730136633838102494693597002362310750491605718644897879100012370611970683786339968819962456588698916351450400073044914627042446136402896482360296978156332671120594623453881354431044155719088524739747169419364955526012491719975027793441112978414702458088722748407921641970308826167784164867492979152796984056007412602677183753441160611133537150435678529010149087477846869103997938033945237341111667175040675299664886305421494302193434470613744146076504473902297290551338666549258856942655123216497772124711180262648308358677047772074079134199982665510335682389987806206481689783011900688345960692286061020361321053070577327174410792877743589718455204691587968097144254049438724518601192734172676814421130159572685352972983362093079521925504286063471454341473253454669438464924549903610626242533465277972255801188154894635581581249118612503119286591078057830748465359558113745751084761443649484981367841672329795407958599474607752426643005500651501320466625895171150629331111516917281170764243359783455309716554510932371616722889747885442588622065494331528807181522731301795439425496122128968581842219357366415659459644436818277211621392845681424533053218030024466508042272175817027456674883595679067615616172878556889827482635247643423369630769000920052739343805875110546866657097193474038281965583609199100272760019186221419590418339778204965715611850292815308295062721496938056741097152811865925329047593425505496548639699706853559359227479325289597661736279315673465842257923539925010786567434373891334869975509362128501727556332599264938874817756961289878838869304902095119948463762757127085488739005866001566156618754046635464197382624527534387992699113250208871514888263817057899718463003298532917787436757580326083575982313610672731280189194169839422592118309087512300670908276398446337439016285514860930131201057279994267045576276873353116217697104242221880030860576059857386874378459780768047029258888358943334922910318702619476962877417522503848453624860715860600954859702428880133605718483238638788129086012077413026662963357859293993360964533968908567857592760479496628277191001922726738781322038300005402725554216811116765903135637525205218621322918294362342532398019864753735978090084296883068446954891131277205610759876630162009338233538587452380254750565273836490732852983963017466753544535927830486714842656744358131394768022579107043073478095366605684769817115149190265327155581598776872170070762467845242389380948770500976732350386778062714797863814669895825670857724683516860578845848869012438171169860264804042417668060282315852799543043411392845262530546797108431163529116804686663407064574376992385092994168427041016595532689053794423691532010169459516516558799325150657604852497518237742794006798638413834904560978174036106253417388554538083636650467039312952178976668494216528462474471816719927197504346016347401813950040832243395214812488871705698944126352978706393586996044390792411332366013201283107242836285833702652417676861456864016558062334412865009387410070356243621923063829524513480009769720885797703899406387883165723938568249672112697215570492251493181797233948932797527777938486347274493274353733275435734946675104313147127395754697428077997015852695922146494956253983322105741779439631067589848195632697323106271314090247682089355717515112603466447620834071671729319755324474743969530490142701590882477444522289679133427194137515201214725320188771492774792210332279672716202023518466141619332618984858690591903380065434988975389843660861764032000183345127770554088838382176584159089976522366319514809042848197841426986135946378183955447386087684566128649186523947896281814786321907255857535861557077260346320404290846842442144641667567130986893379620327425908128206691492275932445481844364707930472341361792022909216726976460760595983391040196505110350184750604007931542659760313677336538395515310832018998615115074973826870076166813443872310204023674680578894937648762783433101620647762349168134498267075405904681326327929160181709157142623719337903401628596124623287068911052073313808161767815681096224038951808424362584645483016633102338793545657283490998704160479981431903040733879213844906903435735648706294610940958346356447847010877435079976289326422462793074580574445982764082050429774547103420318756323033789140494346194626188097559492104877280795824938591623335451507493095269582782157399993234953215435263540663016889900759445303794680405334192954893182066573657391835191359410265076220922892334152427985385180527438061859935148611695469986709185890685314164937652812512194581034404779156442642888844226116960050603390877037060434790662127598871709642444528438931813150416408611092394468312354698589943927157618058892986728646454188203432483824292670640187365080416921577384137123030399271799826093465563619518724968223487416924650858178884701315899937872273059989178586587751908642402665562474624040997787847530553564136697887091523706272693866501486044004978267412370186503347405888391885462875705885386184520615035308260050564030511709265424340292973625945344814956541178433938039097937460493708247259068852115029273732776989297919466289480581117847783263600494477406623820291478657936873585256199526686111375330324239787989734758816938581219878458929569124015793689439054584641336157698044215818639571033334183680744473090003867942389454690665060636916619152288288003104635809602708278856376169985997626279627873742936360873465086890118985245606331631792438373434894898406111031448531972605878494350106194729562111356968028028336204768013468041069005782979890446154884736557197347575600436233742412748990638213301499273420798843460244966107967468669744189666814008431075010198040265433060123612498076322123884074875239863869389211129864833346064999132369893687538116631964790089739566959806526274592554032877409693067203257777772094161542105989146427751059272989050157088248505937091329395892973852364529497786705009367700052980176781400471905894353047312538440289937940888266470751203852406649278537225781756445134563537560163567202975409885522807555449841293444598266517648470791268085918068951722109270153552550222030782126219044567398377916422088473475713545471652196208044982901006937641969315277674242907225904572769660754532630663271241525377512669484209537407323915960369938980733173363262476980647432591070480427275008990700647364419305009941567322000597454526864874267506944159921110591807071244516514219606790423232341956763377516465044093231146819028014408845746366792254819758111118390976349619993891953882780499024844439015118530026492695800634284585949082246104353521933603010888776314092417644825005680951220958340245796013363858545197570637407329616989183256442286838585510116615221536502692078961811481718283416282449418877620716618522079856454190016876827058515853952180721199640662971654046845682118343934592062089159906873977357989776199693195334979840059865152810455588490188385450108661027085620910941265011977943983846899876376900816515963749413012060299408574591678065022469127879156796139110635197094391224748811042739538493253382173646549574655735360737393305539112856583249958142419445617813416768930630653584808361009529390273146312448206012387791659158625641027770811247829892975432062723341834440924737245716512934150651244203757874776684716679880197398075217782978776356177110520125638675363264979881895866315772210795637730238245677095364919266413109453858306984390608441719856600980917740728165327180538875581064284430697940551308384455073356581892010819193417503545542603585551793485886949053907199136505105817376900188166973597984185643058911266406548827634040434256112751670872242701694031408430436399068338911996667786823190981831746510715581520458943507473878723292524495968925898389735400353762749997476020570747876754690954488175879450757294684415348734531125438746517332757785439410767795217319310328802923030118743821308819249286861966418819097073158532276069751423547653374115166352656871219615890196179959961738638379805451561326106264221244310778286437866798630676074356442407903382943513731596804769371895518056969623644140018818016062681895339090564360807451803524866822854295622661976837141749550486310181460291712135601234225671339902564479911052560714929088335072729191976881976655742470851538193767103932846155564637084677911833596298398686495942926929902455245718609043963706050987371047227054740862174115030903875157012729644030339191935905214329778154719066547759886869443674053849812371538041063592154463727952741101074726400828230469516657617051931284839097519685820680864835535388584524722581149792500859788113604314552943448901601571783368462750652360805192212658350505073899006187515541437649294015036546431287125595401834617148397405518905159538548277177815210358268290165531406508770123702854702218383855403291072725681491069798275528919072313171428580759302102192500293564629038226278716834992315625820277040332571430344976187076676802012115938930096095643353564305140064372333159736803762279364740607369492527951038628246201773719731637348888413934990295640030603659218275309328472451598295898775550002701977291167285205332072707568933521882853590042804104104765377951443449752255626108743737691489134198562289183358027072816170431671874558030294325920444832551289128521826826485186886653426439077602952352407502856339941814959492997647103014260279931841623649786707278279892056721517302582030600712236107376628836546551599144437552170356542116052849538729748014826198489947636314631312555391363975975449105866748774669809728876648921933797488900577666515994927778935350748594002904053673464588180321312898255310245529958672789512675421757535061788661882059329437218919540912396694881098075276268487518497599544882381410483740551431537981716559117013967464885001353812326393503983215051702515780549148676247542483752665434864434468202293419491145127509245796316737391485327476791065218185867374851218196195015511482949982724096364286947916919253703461905170374852239947624789184880411339829611900401330359729517742096924939941456671635231246266522657466232914707151424878959617778610214071456088410871304636389591801287242593169176282649570689965213982360815021944939038020520740204371634030324472201201396311384872758138701254218361001600857846764213077185056017136629950721995977898995288841894864173552364498566860466916208303406379144359123496560984629021314487051493741775394258655306689538394942820093753902020633171085164721035511356138314636835372769038569372783312333103774557629204485966317605300961545597427159939504518576682316990125543082749386636977211602405876024928641793031549538148240670001209637708888866518024211757236928507492915130702009956015220745364066791828989621280052920111346754263737267558174451374568469796945355748694698444507687609925907004324218306974437006469279466614895447906006054583603587038258265698116356601051604269480041392275159161639411385401840032558170501257002071023512038192234255798736719317752574873838464505356419353359445492708595297846994480871453196273879022882864345763300320936723865463109511643559979201853317321232379163315797920494564336520334807694003746759843045483626066657832426847578868771688149916613283366344021775611436387265195330586985925623687496805533975540721726419847668848066019422720841743962182438263249579820720109475340141521346554538432311502116854079995656166043420861046017984045790364883418093711728151954251639359154510467771219386859992660027556734225926110390752588714848354954161978477767846021286865103205799665157511110151559751505515265744661790343650416321377268959165631744909724695039276724999144463746033557229117088068371251255648334451259949748011483492669843506865650979732756093133926196455122854804432392626773565218020266758441310855445132346313382724415889385332551581371019675074013658755420399861234110810697507010832997075198868731918848828413756868998925264228477956080225383647596719510321129679352690845068553200093250105239975353276880914100104988131026123072385505589718295964552097817179814814426890246645957682571382581620785582839042806250533735856810170444092508177026923056679211103217482865509990237414618701453386030025361278557351920172874403780885897259929899749569851470737511104932215480192096075344578116251871390352201463415868288121220745367887314213608295262704603801847238579115888404115236977998286373952683581125346787876275574560804709132921624587075783917197070070999845390753766192513603411486572907535651472905637983871918415701147437443512140718109696104111225335633546922297075335982060329268917918426347381083005008847823235632575152522737965684040487280404325695630229122274451996227614974174135671131117099788464939409050264924517737934476276448953998646851268003494458667480802078516556087435044373392210717488835677763396401462014009328449181148663125374402091172503302137228013647841174034866841603281168408111977526182196101273564808885623172415617576572013769021693633677163005463590289276111687654447394759589389909348087139342719141318836350558971654317706947736367929245738821588881321361547817676108944877976473239100337273542190241861585652474110548540098066919887290784797808745956882796438753547782601865521125143590060933774023566849238611726114624947252672574852235965754261630801854663512840530323570768129245457230069007575428560083783477378949631123176257076572915547512204058349814298450459537974596050156907169891956779354865479270980962184598893743833443072542415930761792233091158563091453253534652312405811243381913582500214335825524254707605993423022356289810393279485659506778091652877516087630060326882757629943958830636414347069114435006191292400401641303963863503489929428805901254090451438396303477980974339074332945002437097036299878823893160538448051362684705597452337777605511824588448719047845217358832784402535114326699394600648523409862212512211081410094098036242218324453995597418913108153621266213296546065623080234352367167403947896350801218797959881970696744662060136759813815164293375907745091580387746854844569046754920526430608791956245666682810449208231452804063997581782335097742491109541633240491997020460872564108092894388476191751183256663072623490471512761957665081995438948319206377865961337093361474930579632025447757754644545901705113620079645581323637438271790638128905387720211533384130792917999603377480289551340689097776551134333251925631606112073253686194242652494718148448960154030690929109880945336782589432029841575959613204954217991380007338659979355547477917963948446945142766684262096411348959447396786820941605471204171314413171362998397748304137227292072445973656552506969337822985241965023161092059883676552361489232762899934410166851738540176873578246400487271681264901229202901789416265831056396265571144842105583264183749253389465729346436487832100060391079655052662813509890079350682470067231368769081113528616894943927190379767892630241443101631056499771260515405860065723692165364737741503744422241340143989617306945668374791209171257424618150928994099993208689506141021229764184386261916687988968753239270030777120261716906104260513060401515654393670745721915944301841936082341823325034713880756193364679934230331521161827563156960544225026347938168809815369795424394153349808550767721852910113005414814046596044235344896132783620804385899115389240916465999602585326258460472596207663497641766213645381021715844383650096580127013868173822251365961442155966445051294968688693203258834659791979040391958158472024468125195078349873686530784839281981659767779084162347545728501203445863613816188068348190925767420998032025311970531969597081102737464705990719630127431232247045185602449896000807467414998597952118909985545114829719390512216986010618438574383735515257301506011929647214802846836616858307292380837935460134369201144283741680482488856433746896799030355736422364332254581301298972443142499898405220951015943584339971657238688606726111071042751481574449951863878636420755994853401207286858571687174955442396740279886492714342670405692344562448646675521034833365980437409046057726068486431667365162838694754621180964318900261163937391508879496686163326300038599123936614038303238120214479488354119135962789101513712872254382775705186868070865066765227239490277192590823608745294852595594359484113804005623136412156870931487845501246707334158994757229768699184889794565585893642845329639178265296528230977341290362882243840218503589054583426224056123062129540034604388669008135613261251900045371081731247190984592345285343966239138212046724362569508726449083686496069280713227477695339914170260901848558760607621567874332167926965488727241328575003904740927058549233789840089293161245727688118889952905797970903579570148661973507564523451559648113613258404543948483134890150768554465240087128598787084873863279090418474716617059071150413649611087875714665212524148931752331296529430215611049687320593889950527193981759705797352477368450575602947074346390288359478984333412198507564787062675915169973850385266612722461844687421592731568782082813763678302006252317671341718705000753152021325019498176055187410741497939302078024394219225810280907148530264596859565555846072003020527202734484214262520925395520951581491378335561046267627882974579109853096933041096999672307537767729612831130978838748230598531742068774346082259298145841224528061843831960008572705141367676184857359539045660038584530523831923341437935680368747455960225071458958680772679549952768139531045564053417820250808245722406728027778850106083936477178845893971066327679579598283632380562034979057493364921302443509007950448019756250895793682292499058851188782023693136484094845206010251627063864195518773588846732044690002763547888393363871795440249803419433981644701913101646983347676182819813832605079516919822479292831962327132209478795409419489650905621264813322039011981730385375671379788729380582892188435788132380528957856639160498294504206887308444595659430999646394195794237227141729114449156826678666716521030456274600347945031364455056932296435325375127151810612735594430529890953998247958226939729397507479541541059657981444240674972524500664719650455059788905107868312272146332442599297980871769339482518486804685531919275143456732568531648819667423366445722786164446506936621569123366544048321854603348050126783173377558514383852404433396910463185755887840686915553146933336162551408167050428461134562272278865106697357997407244340799694058943582523359797874938282958311615166260553616378848287979595806336784578430656772254986745323460388363081960198581060977467534778736285247916054168827313987488342310245617776112809882151850570511335927628890908559188558161586890151251360262099692330629231351153659856813317808257802983628994909746845274564957399217740963189858990979571408341264781746160453611407725064470492014484797265220650178412956898039429687403777757525368695644329681291729972854510431811548278736285783537699718093655753729324142427803182266000261552887950631331791564320379085634766142181674982776594341194937416957830925936596258387075968664397146792676792830061403865647739511500124720165916380501248778008460760657549062691143898474748550141203002282688774154578370143502234098253622552016687331646851121317560838832220390800958661218111138852420749580913846228832622704303673985598909269043361981564297802004353923675858269616400282565535531783032363527453055335848846576625462780866930413195008845305497956576887008049513294256125848907280639376569755934088414276930481535883694881907931052229947661751877702315108534205363594147570650609680390677502200701987032593498416145072554479109972521275683925898479600893856068239961685567780580252927649953477451124780589751401087474897351637420717294812546576552810373308615690855399917660875311005308804171540733161706351802935562515892715389650395833347109744801052853017990339280592561501452211308532706093498856767527372540597926329933710831482555313152754982464947104216729043818046657297830456414143782899911985595307806147047151151588485248886825838752603235002667273821256175212011184195588315275428763566966632047728497793595124978582583194823861450338108757090723320654678194692448223394469227891476114403771138442473837256048300538280000976089944430350990776258936707429832852649064224532205643633777613593157939452918584743826593057422069064241348293152356033517312498582420745953066833851363027606754029011516150305533698240500781863908541869163654850865423919312123093781712232838977877119901896729024340673456207602890794122812235687515862894845644540415813097427229187446584184352791827839306569323169477226084299252750926730292951820798767567894424465882549484023372096174136478580366417226601975331485376222349141277613086317714616061033093131319289572792958465606950836423257255120052456636896991706211038194220350348270150763153030047862141009704441248659985887542179461794684587010291733348976844110086007224187914087418487848821664768107067811441949111915798854335987588225485959275404473329221683158742626318729805860913519989239637807728800791171186431624828666342548957096043104079132438691592290557396454772148394218400603282655112166079119082715624595309681018863525784167739689477700736677075376189254423805674082426572887259433769160358114952932492905233460870753437676525848998412302708312590770158852712791481666039248027493806070987961670257068163686363554856719991169081100155434758400463177099589614522731795205938387305542635829950604830140144644642252965199883671571070730576575787479156265278596247261806585812215467823591549723910007351464291902080929788790125966740947514820722601991883017680337969455103560761585839423945695177112679923682824973959939613652370171464728206992739931978015751642331204593700607642144639849989221036827338300053748806822505297380292364654944871059965476507644862090580686496290915316034939300766605176166813960638727195425785187757159290602780369583931971683064219976442161139808802835529825527553622000788240121834551638255838901836308192547867084242297180967614524024840494250147423785838268934312184399894232611496050827173620943562348194097292949087035382846650109610740956516115271398161588651306013276783433406416075280541641999703339459956893297849735792842170044766670495236984409311634596170668513511572667221164605597951738317866495732974764593692295640584780606048685575039573219365514906453774541520927353231788850098045907830516005958074370995218937447359809924138022165786725731458436226592678816577132058194619691698059253812354997753724581310259292232345227874264631732666373358970269965457366066392779135384709408572709559702392579130116809248710363407689682841384324609580229164588501098731357556167751909345699741882693063254331807554580146247820026738770979329029911422280125394365346490610004256291403414656602505510644317598161963848744295664238544675045918561492959208517050068408892059631216342366088892355280390215777365177809462435257840382997532558339846952092697124973811661727904893674254769987346918070685704830484608757329351315785385663232872262259652002980821407167365135019271803235654544155539749107080725274146931744736803737474037245530153830283934518522497504865630386753649392395903946711481126174511411997584299063773656513060818699652344791853893788036336148020444101002578856934775924572264243045550472459318231216886563466570357024492427597255468222672699574743026598442073817921848838780177282810567069712516870797245294854645534158631602738617052457507791587106949217512029495053116254002252763066605784940920871779448235778267145295855912847805061563013863814637020538654487017309082915659663727807133573951635174477758719677254792205265238987971006188147921174972033522111630034201857179521088992702761773334665609056243502069888876323728873873025030854064091876872388698391927671728178973733628917965681292854017818103015483408343051590875607832226251953565056063287592787658327649648052461162972250429217991666734714811788722924205400990841686590288118063908012697070473046084411155697357996096868020965420211758936046285568780568487514880458171555248107649656031510113889991759399308315676169278141529767596952530062010419055511200500603492007766690455828894226018966863122661902349211424567726119513310667761803919566861566162103883908773821548212014994915047712270717877168437191497921944812769134455548363916724421555801286521637331493682208824445743915743168848933493792380968299571607433806703524953870486571736496949863278472619854052085176429872591758970939442042903946662524573096340449912757774345894543173877359737715416426146954378479618431978234146712756019951155910519566041144495103921393583639629165260633735677038528955626941257587911490071320356866999128146749907844555760730828056115303988384428500278664988900417616525393878070337263961642623686905443868378266294837619308965303739764622362683421388909488941896509168581273207306155878066862657609763898862488273865531587758136367834137128669021811513024644633597000618890460250410265472044604048915670568262611807934900502935644823861382528034481942787679950716221080662671518460472642281147252678925396188957580364691517795957578718407632177723580491767270117859150658012486329993152104746588514523478254759080761200613946250373935593981392897233506059769881051612979590937042835379835189357269392469839116971109784149785533506423884967025686230122677770664046291322275105941479978673339912250381290631052746051540656304790071927758332021535992127801779719213200237430214608719480638216065486236797367814133788095773755629305085199451920931393696389902345385069611384171986070743729395633197486502097704616222819225309677951252617255820180923168400177535153998710406779118342709843065262655216052909017152330371351605688147792698859770300169592315617953868366886959439245011208219016700989498119302462204113720584473958726607436972436420494944142184377773255382222839562226123442337839115362858457191941263817199432156196857413196354645597225290179806581806430916097678106886341011702498511704552024069839204932649461965885113827315579291904303033724991255789817469979818311816802667685170679518274090906809140131862960911663541564638010891129758581945642167797735764630521604040005274710765731676632180920866457815275284011591244654463643028275635560344606374744069874344107303625672986136033493508092943496442990791046106054226757574782174279772074300845490727516474105693197270133198707304373340488539074521963856780950714484326474558935710266216765231566838027849801344494407171298432262812040658672129889027692367901635500124177410545648833466041694051317766166058156659361718050069251336817016668284148472468587796173118282080528553404903936867216642592059033067858048070708162022279223674075638005965151910529037049636396120571792481238447399667853211451559523778494396600465507723835944916077541814180435373035491385529500908953962823984925761729597774504857306766676202976229554058090251269084473974989479619097871320482359715353849716593133961742802062294304457326030419991451989400386255901894513135304422598657228882078402920996121694895112808543525815050030145688523390754743111123477636945199813375444993619599901178645941527121721095692343930691636117709419157054971229823875484571904669730297364371960821561720278683208755570067734031124721627711532211579959822836993238178642796038983786070510086646912463318197725723212541505026115770683739030259539102031930598598476401214865169378036964457939720211968517375831033499237635160672540946989160009869813095741826871654648969922077330716830838683946279500978461704759204596866329875582449297425790651427000593537128978953841335076074166950927945242606652038299015255751241855497688720362226259077905512104776112120486436907626240524878394597453383982555126695141723965651741111574329908044265286964479769303820029551798940748496655186307930480925429342815029943037687743177109596406042923249846834581673457956372076015596149010605896237522845098123196466811395353025282109053251315199076297130194334966809154310178898765526289496945290784014796479350146722934344891683616971112597601004591111286301815864414286804157433663867866847613390009705594214560318822278580300451570316317673606252994906182767974595793168524868793493518697852306906310955558552494064502604063115420175591027687844830799024961547270253889493159024977049233466787502814846595584152873899010179149345889896396026614372582358094263181857184550401933535511427482351720101903627537110399267940277707511354919549822196688164066498340447995109762366371944091749104173954756477853462668905358738608118672466989224711361657249592047012669714868594005550410851492489289351356331052752811809785647811350617869009663125277706064379446367808233227678125232019378861436608247943058803773000682987078102595623252338773698694796383670260424403515131565987298673650365360462962917743875518836915356170844520066615843753375839426007120528070103533961105585589345603468473078983005290693531825956131777560234049988265963892095929445958573685640057943606553865641905172621088865904220641944908256414749101005396412562520764906000119398468026054868668926552567475650287507913492897546455164525947969640254200162923764465377025862268256283416838148781568041774322317064742383645788710220586855098392935133087629064266185184655749199525988612118181554928279378566728122342364336116730076982060343326706100602446976680975685502933034093704214357804600325686636960176440958606169544835318107716677651710682041184957668099071766679545350187957422633489585006212955926399809241571633176053355351552059036778182946290836253776854161556747735703930265190515011474874158556553881330638681551669633056333413502941799409622908181180249389614071823223829975359838528311364015876979753569459706114598688217590407266731914865691408003666395212890740986159094697919180389480042363895725268880291989629977675252064886229013186173016146518752238011273543732192427497472877903242924864879293360462267297880161373630700909406167689885518211061767414844170379819650460887873668914142835866381181245736192909048541282798835048177018034098393733169841445985347029055159128588678461445376659961157544659882073001366152437627904475941978879986287120334836084694909935828776670233210873098206771989823264118415821167542073952365588073409316749464057759120276969785999062190209561848798788482780215698700788417875013401078646205177882408168553592882818282680208477057499115854751960317251755486776989167149198279678704840125702163573757995128796170263725289226372832087730348570376711575313097025024473175548790577954105326724406591781126315908837547095592710490491783684377624529688828367929313336839851893878697513266900245524651333266985208795999655762520875269707201104994324883364077650074165726133703151541780128084427700434832317153455437679596034954534580144968462274044721921441592703091863818384446025797478673628094301616149863916359302874876123880005046149852153834647176235278759666154482964751038035353816957134122057312655806474038857856584233481191632132719975532962200187927653508867998122134986018306031727648729253691442839459348991297663888595677569898456458639464268570713899070276365155242749331011906189341972933238711208593483566790893805664809145250866774530557006278283567430502780346884773092060419811428406832129094597294374979454560531230726915895831373623688249777932416861906432070115059027914846022491862108131624033212230983585286459383439000274903164009613192412654747483807878280301242406226744580524384688514724198699912220488769677291574403612300790673842391168141239182580578349020970850528704298139862330165721147124339855212087952607010485193191067680901773215295005595319105487485476422393072749124084980094807185660934678186816706128238173317063272620239361997911643626993169991195511692001343768082042121431854853527731544361014586438375061852139966216058819483802880200827923706937284355555590627010763767782092265505839294899631289503685074563000993779115098567107244101711588884303055126413238251640915950175243963077720367459671576732708622057684911834910933662905039266517723131392234710026065277693512916759114939643682511842303013012674417429269480151313987445484348675225802682846392920017553502359119446350905116310457189060395486853040999924912956213651812136676685852860142435895596170341145532842583157407479573822866917195817219384505778504289419214747904354714841935470777565393574043983637746656146022234335378900704285366334708212435636890917791285298066377404972017179316893951642656919998309801115459260152968502398830188675973772567488593932160248847736957463727268117760263990567312855950181878012338825218799138712988225524731907686852711721962254141257089568168100663933228870963163152020340113042016120946155837018726862927355613356522417885756895034627359697097954872441949504964780370704674025345099890674435116444408802301087087093171985062123825975300447739958578932075288230333538171291649063615555838458087311697813509858903666064259225436363124223861693406206450069806628366727923630719442125431598294418456647020764684990843917675837774167377946217051560148222281786477507407238361548941065110395362223363353012531278434690351096424477386303581718042357204194900948014076231558239109547788773609122787499675830826344391242649482541387370263087553687038941066095290438902588402287657292489697001369989397756173512061914537438610485094524354302441637869225931885497165225045113639344751014551759079222608474708412313670933232096626493348583395383658040304472091460355551093448792548634282209855093846274433940310820094514626891754702771596218628175709517445618768195635770712051074859563238672688068826163326016790427714788729976432168008250845849355530241078575639917509320746452994089519689154635467955154335414181141832099878038253875170703277232621150988010904095525811868045401891547495624049710170871162308835000026310196179531917897249373024609540409319704126053289564053948935709087559300408262908350155206655696916530077989399284814658939853662007127330311971259582797188496411126039294457007970686797802941942768286490831695134911783675697885056254929057038898692426825241046992052626137657649295172859998008291216282708587140803657696265155500995155285297875063789867648714803225219339786119295743012986902258226579775056127640359969140108304876124560416987491928602856323044206523263626179429165356907858761618167670873355071079607189440587838727233774340943738768247024437536213425152233402235398213388605964600385119373070947964098722016670002756314671876608413035683700465967483788720826774075642169551573714457675517350194692300567257013194194170843599764285796798540248892585442904299380350968699906699032721000293457663903000038771870629661456644115220710578727181344369511340291850208125082732775992841177594538638268852424324219299689423695206891078200384821466941162837441375797895191476960124830212381188599506159531447533598161539167673208370226237749514315768893658895049640533016516870405070588861075005080317369318330747814986859739796708099223008740930602638634722347388112674489884465785608413196988954115994042345880792197538366780908521759046273713029298156892104242025202235041844211571076816756710490935210265927565449827220042268561711199749348947864722587628089893494411366269468778699675665153464566588036547439337561621500065520176120393547226350672687242000273275057571401109691000534157411059308354567651335158275936957270812241960625110303975889809335078790634758309639497532499223935688639546342651468912646547212760936731429354016876011612967800988110138298078072835506354539300348522750989572518387760697581021807189363571344021424730423419719319685137826702203523938463138532855912830800158454275753215746826905417564966884597862020089447250243196465709560106022800576780238925569508243785154534845513785345820475407250809216144397801179005201230402383483916252891782996527026771917301449958778820178832220954778806148137328767537602333948570497994447730350500497153668339470133859002035059561223701927766320644358507494979563565659062424943628770880282047391630894059919439520794599278280258454438929653695912913534429109958913913054393588349438215489202037772934162477863176101325995007440510393525094377677425486648661539833208273596112154330512843168432557840802958685924119321851234742222122159132807503495607976668573140626574176733713976938230441452694443951209663036358451265707890735457429395003790877186500419986984844199931291655450284845491700497544801753827118132199621598446804397471080731292350850813589319736412192110088865292291731424383746989165008959481528099069171456535565233469281081509245708738342181769110864720953688901346354905233201303978662698622978517320750062043292296814659706608449020008891344303305924546769337112421754171429960755040233509456737808340201990334471020721234552583186103075804767103304452073576623120679040432329554150172319352449219314539722283145661641037775847127624498741561138556670472768017011019563034801086426254536303726561726636194755083484182192441705741169911475286136417664691247254888137521706704027969473022616446963488319304054737633429833918732289837787024744589093169236839041542036073130870086755881887790853012408602682571483403180855957044293541563335504241879289365049661247348191738198934425184975022580117471311131581710057633318264591972522741471720527819409318505517354726001707234545157349932277280161029243442581236886803217341802397380034353042168565024127429252400242037764707998620711759773535017761881526622137178182132079981704654555201067690750309385018981888475687712653589949868765935227361053501316096440574441274693263778682986430607430272018614395314369518715762026708558691044530330841430420547502780278874036021699347392218895063124047825372418844231497039215636860417013999374325360937223671258823881561924942011596499925433530752037359625399821144466000769286108883657999635468382965759516432580334309155592149135480416973005098370519863809539349753151320804207811735150653432884932254022745835037769012943377713052028217473973616472517623221274059967044043630221292744373944219497493512433878952497310996551080827860588722326608900284052878467536102280328021626268506780130468313189154681030731827336948804708764484655607899768642617466207799052569570995888227111108387908763923784573003930728154698391761758446511077367198561233234405721350837910145174867751637886865163096267458210653671306799557121171085445495454927039165553213021116227986322951789476825138424958940278516309460991333923307710307651427619638059881173181177152470729848475179096436568271634564497825528039250890741790861207667076946164251699949874903415162005105817138611883249366819058793349643031354423736484976484468520061389669032144958002776265643468425871918418722673668733404944058584166932687617396563061676384168667504969206273106589453137919065907378089892395313913041482237859038864700745487929718343341625904181608713245832145393273685176508145894753922456129052907936338763618654296718157572333016684011750516841838219632608873675776200161680627944876185774605770349987343220719275321231048961164190314306363543361594994925699929748905832105978212796055505136737869793974037211174128213432380935510899392817093010248263076426011343029273620212010103681648768074171337901810247393851559976896149920006667456430906525252458465642242458731807660756855541161706914629810979536162677340611864231830014654069311605164968299612872218246018529817940961020071126521344413325248344485339124855344277673408436507433876527460602981606261439718432399850177316946611289497406026902486296129694719526364974694238221377631026763259785544603207987040103451044357783262195148419770927346817629992816021950665761954622871966687450498995865772103188819044380602411920553104975781301016172439027157671792179538473149878294750135143119351640564648957355378188633110704570178945644556010083474684703148132198137357935958068394420350600393270688031183540903488445352833117931134863201811157302067105283192893190558700505737214183680688745249948202861180353552691996746288266578056596964704336677610018832085745035563407185831597917419491839627685699198227689587176734165800589093161380316076989204815673775889192672274507211692465804876982266512676310669486561183117246597529680492482989678793050179230984542296321396940829574976699573192365804583139497353935708234310360037825564434421202563576008153497979947772849713149005379704741203410049887786530597751649272127388533806743350159690669101767826825998495141397857051335817652804587478446135333184733404159873771960940781882506149440900766901070070890168565671058824083029386212661759617976417975020868656081396554070180909892004841689698207541246637285370269818159337904861414336690340755214324856250605631089255745322380321680875479442981207022943736235200518343286375687233701193781294990286460692496783905330783705792224363715197276970792643611042248748905246531478072976333852157104312561171709810413675785939028114645227054516358228116418990010728778209012289732052859821764988076387957112851314272675580215503971191271046344370698103611914151973757329867853952918050555764780094207239784597473293543353521552966178872375080806884147917960375149312427634695018244904139008411908046556335869219727474317996183331647691847936513820276417005875491311341959219331250130357268723847730183231706538865324532226945320959113984064935265195640797317082286191363477591405813851099815691314783500324103706778432164261750854451348221939581866011729058697487905863152201524421813473223520983097933389533780716776296230655614038707022952160524661021449056868442927078164102029826699398773862995827563678697782816296520155289958518251569968454378643035101581173709753351561527331874572533637639713491905922480514909582675087677130508282885006004199324617020381781297664320671953182206317256158669909992157866113735002796949788489521578313735168267665816029906533784593059305877501989074151493788633922535284699620950038690967740036059409917235500151321080000637853304937401922942512819681510651691449562339892228461417422009689973257900814558419314066264067687683949323729253654426440925069120297917599797157705475741828094989771030543785571080364789136543487672314247132263195465030249948753815136655786349903655936311440368488261393828962132168125832344879601821431653886621532191025425173095349302660559827162267024551270660956336652353942954617091268515438563696343399448916861008949611219491274072264462126913501677709508949992355137402599924857053751347318560253762578068861772031104038018062646661736623746916028607182015885321167486008390164142332123934294250497539413062041922076443078629802077821316758819390929657667515937588887495666771640682802900742403318121456516424645994088375259175559635023120865714484658398481184313859248244223570594315528735148274140271537952708137511905376998171978223307850275089770889616348959445369587122577999664859069181349490366966656614423581066054852188189444104808367346527977598018854540576404742722821165829722706567693697447464860736401806956858906876210296542365914805370748291018786038309280754312084793894861106815390459263716004490883870464479167369838966872838588960225396195662654051452400467461450202295886162609308853922998307016655041474516385511351851947743504476565565771934823087685350737597457047907324533981456759498135742969477504109418305192861375188958877311072751697625791634061057642085539147702354602953625728990924392935330407240802052092416301733238459282704125127459674680742189812795263655758070783241893057595946203326993083286862506711436765940252588175568966220909836334746747862581615310016516399549784095291827043638646800139076221529079643962648903520000278581854687512484623432964859858598970003841033043005320019659174653120102134611931893746027351557570138541494368706821014723202275191900994277139258026159243345660308005546357831838837336227320027032229307079242387863426025627054059623548942268559238179249378683408225112834435437940903041816533129973873373100246835724071060496427052620927382618664476753243532063652416362575737318076623513920097970399859508892613962326335580900719554359349269700264709006197007330879394231386592329210978331833337296469220150866031046965659308774017825405647156162224900052333102369466281220739786074347419231628354613216586551162139871323966887364914897995948696485179482978700756961242853921134554233951753931161713608635573268065837391569259070271070669932210796796870341189401452034465080868504031001748981540909168235541878376366092774559937217939815608033902374265881526806271641420026717391985224573387369318692117760745930002832104125050324973311789440430068157761384648475460939882579965982385576504712925239086817925094591083897002715701448613171958778156155588141962739055519588057027432013062573874922281677012377519251672879227446395542905263374855629587206961013780595179399531537266700153197538907555939725629103076533544407373815057403182749033977962305285134580990425535356700033235830655989407078883501978102018442781419380144823055491185708625787183933905278542925833276301380248537472964641038392557540056174547906276219583313885938693466472197550644896474173479363857885205386293619518872077526110166133306228090188756254105956648560082741422729773720745069027356456736053467326107841182621549753861489846085476637084088815956270218422680388661372065117087071949147053351317918982600267967731452210541875492218295789545342033240133973471397341055503058381472318540048931016909567931906262624313431603943536460893594900905847756770798863725612144552824044627542518897913345004866608997994406577353595857737396064709105318845396179010806012740373340361295877629886294148532449786394267885684901573981834903250599662517147562270909152050438110458723771027442971562720583229578635352040643703259826470023697872701987442354781644867578037252663645326977142571572241412070042443946825630421037155674262180267890659350312308699416328088014905883501733225669017565943963410934058955009501977022145825090858501770215351188122912176276022648153686540680411635626888297713339431035320767838139938441400897940026245961032911310115806368359555909989077526135961601853749597596917681148025477608203698989934132847602859323005332932350138303225813618410220701027174515254460582042930849467535395620991022482202793287176181111499026168530491646176533239265038460704314423591575706546050298147938393280597453648572325425665685257092701359695556977545664042902020848943223790358680016920458144889115445073214827400863572427649263328603077951264522961259473915840895214942133742200094396201049261102432687369773065203206982096914501670952491550684175616041991245402218340046001441927751950348992635377184653247273814978809988402417744733614609697054079233887669823208858514535547557107487318384646922340091320656525967076059506257048376003681474786372054924984795922033513326244358102962924301668788456218663084981882264366284197930802109947837432416177701610111392481898268403249021171079204275905668844319211248176133074830543790843180378427948654990001044608344451696818501435788910310315795439824689214358604453349948234756877936144013823749259205609813042105243667992147651106748165194802482540554358246996950267866050402127214000385060886550805995952224958853146006943009604539221536049541914592064284780828326469696371158763870649709141115125416642297957728056162478880827255681220853120468629199795548657938309710631856279762909076623720358221842803134665060812074330124000943667282924389790148759744377313593447595721881209396158167218159704883694427593111474017699818757192110564233087685004895011329146282978875465239678203676349341312407848805152326929441579797989842872104920504575389972310181244237800251622023167735398528863731524388222179521582626150751607885886414195223992036342217060806709985452269261607972638495752486443950082845969563724286804243154247964962186884744211728013724184273280025100517819987163824029830079248607720387879918699132314229442027423911475932388316712453132809127647568190515252828047675459634597842926644237408006570509849553072922764102248712615237552839868122607600512682136943597014655150492389591974569310514160086329679900616623651753560331299128198904615366330080231480559811520079177686997055752873466986157284029311568705409104912691947419744255387656864219417530837195312705496840846434973782860996869290463530695016965703476238224717929084327351202525214182402547916976865459317245679416070377610387662945161565135119915368280819576678745894945267711187731621107578051550031756337672482622266424671556385526485886567591037687412565414592003592036827823115309422236959003296995415316073378191434448078424265976513675163481056471771958245867261472328344358265557645583670600054861669768339765303062390583953658378298262699231219614401582465567893700879092636539839083704223867432068055851399502883808220814135577813196179393417896052490641812375369143596212350281057004440292759136546688402343991986082619327524841878222808795556961532206030450829667311456361008428533534844113082740908157690154160491138187386404380494870005077756978180718897115839866416278616230478197659497401009552128639311889509556749378870209965707918072166792906646365937738106756502999770253077636761368199312552507732673559191980339153934405213704804328957030124787378296813941064064471676711475938137858289783697241036064336318766493853438025391199586457514964730320650685782382653795938879037425062241493715683539884990532575698095514107665120920163472019668375763406117575124268801945760286102535977751721297297048842431106622980726225995526758818834607990847623065262191211363855621756288499752268084956700008076341628642080396610148798622344871917968729044630257084272995688439101668346787929934953465517325400608870497232495559040234439170105665981129560637600836336220853926710481046713307706152487178377834852925264567181015731973179629742137878053907014932178548639184551121807594691108900375679447618888039443498836779878729144722561356495616032322171452011344880361449777285426464840065379468686178583535443402743227255609028945181263019164521632377195739110117363367928300879436244875012223826281500319495947313343956397019622859346536034150012774606258570169684161133280033992247026228078346502415290023644909979340968149683984152394230245912484949991627115854270522983803017715356688042437306183810401825912982712223124263565194059013836127552013497705197582376172247082374291906458796802468883131523673082757209248581740179143155257456532278792613681474233978682495048737802591443421866023657393188531009479624832747714921145800339665849171218305769701313560184803681885463221048233283403660939772936870008426200952455593580924481153065263752432831505554109081595890739986332795062194874689422634938593648932749800651788471882056094373451679414586592494206544531142676871928963684692515839055834260645244568172074458596027896618510220135147311991717124449463887274522667738181491838439467131668952538188852326357840228066030612968616970417173977327463912283494756031610390742162515740340319679187317538097752331112902392187390767405892250647262359256520626530231801243701496881772596713856600857869916968434198947523336043143083505375354496425092781946069128468444862740278705308679296339843096518477183564953610040335203365998888838437194782358063358917479706665063919154399286403248084256528977416323218705210909197478767379275941336655144579917109235911746078021643694933383018477212576462335775610151914481867539806022144785343699444284210723270762639938186352703076843127655371299071953371181898347520937210176108879955959982435320606993994320132831113820490743600809373283890691879260634996005687714593238272101729681573028797092719610661384882204171293341074265265033420120470184873962959402009958377781816647214277750776455792001249023894056611385116797006999493159246003786269207206158213992442393812541536707875411083727327711691982442207208867808494399151531257613445867167585273306510126882494151310655995652568845767576001800714408049760236994177958323397619450152506908817963162233250274277974499518168422415599189864306461108803178764375723681583156378309269168907756713635365193564224261185337609855794592521991298172564172699604350840472374543260744784105982439979233924469193527427868571188657896391637610257087251171078119415898839140889116874061416065390591878761875248571271722587512896286711935359753021455305499077570024456648650173182437944729048137568349686934725037884369751163170084290481034032636540212839878014485951667769883850426242055497925374659769421030714735864268277400234945719514969107118193222885127464004647168037162429381478095735331372836623891464676368585064989908302341577119526283615570005610990297706695345538523127189439498587639533910563487569630285499154148909120092256347855846004038073662393702729089350810224467740892960866338910348124949454806968151116844259282902446986452438507379615501668267854422352165384401195241368662330940070905969822112724021250826693415709020041725648376124721541763456706379911956343558620902501821298289058764248154358701193944204629119564970376786602172067299845540154160898159512392154332678985402522987921060797842593474804974393279511817417874505053723411735106231763390015955266693874079996518799547339655331198899452502141030682277170741420664140519388404801591616679048379087517585232266380402982790110123260233033275999710638522131667980970852205780502782356664948552729643732329494820395921056999255606026464368622271126665264104467795916172427375980663887065086388653646595644699815609675032334170123836165623590462235717311356898799327308741339657622865485863779375367236627760433954529422906338924679337459513197025203716390014556169025140914823095976498159455084803129849438733730196907659247776718293156765733396749627655381959410183940237555707967109314405614233176831035998252801548569479946353933979594944945165440670220450986968100144794305056870400331665592042077078363356481535029276886658282747148200115371794909059479541879127333614692657387667981890364813494422255758696284777996154672780573895413678934776719142249012069007435530352566140454659999604930339633980689911584246568548850208384670446302190435462961897446599486522017152412792198046036833456367652731899680970850729488102177386180710940725291478039917609235379007771800661020738807192299441007503024359329690499798230175579704470436679346913474778013891009055993032425460507929759099896612050874383284899912495351285290223483868784153377641173601698320536917488158435590964167892944911419132649202317504772887471907067957963167712298624307103489855410887153622804458402599446110000434120857584057269018629448033151970362904704967386267899752467297152967412516689275634027818537447195917255133306414888182579498189563752369119219509936567603162182141947844793480950114941498036815953182004396871995378003423819408340049111200256563695371817316095528199854526704396374665924337931882191241940781713512159018727783077710569636638372314137427166959643772953586316164450092123074261812258109095444506996802904363740415812664989871121620119720051731644478491169920520472518872111033148707728925751520669674932487396575772830401029409764171880172270667311456174782772539606814216278638888290365804065836412384965565240137892615178605632200205394643285723959207564186369399443434529595816909466161596782469414249842433279337927124162481533139349695380893812336394455371637095262623094587184183516743257760313061717382595579243916096708147917930294183755041020885723911559478926530548382486943662502389555125753827649859795627051966918026342433534027368586048047859273785881680137780057225956867024219952412948636839525153645391286294941532674583470333518540617972645276155584816393380330597678196593051176706414192704337765712641552494957942288122829690341149093842383145236086484276211297167369336130405893584758942981571830473020061791233142614888978857110306239503216788412429386717525574452450875670326490042416852828185039518977461646654645183805647178788057559533772761169739442199588285629929510809061394512180473514844077077124042037220438589046190997486490377574831192985219646541738120157219404221176022080860745605374962819468333642836612195029594465724140777519254284149133189195497992841454408068073339580267577134134844017480969048980901968524752170572119431863475971940416820089410643579611388387251694201899266198369046195246982113934698882335647242816704035032330971834116179515588911896695833356540804371210893926216496963808161784870884934309498275021996548753138017054479149620049879419587341496712647869252206991515414214116904213758666504877747748311832671946163644411862884700722206879583785144042325166575925685431121543868405021724496446366175764212475318900829235273289405167730739837845653948911093827363021300470555347270397049418397671987117784289153282435890035406711635736651999466068349624439734845062358697951901584206287487987134120776904825054748993886065390805900559489727090955865871567511915248538787143047177422690201614079370340624231573308448004848756981134590653612994364512456328173858119485932051906179627404095363045721614751120250318071536455419919720599828959646677369204158970155277030508063365059008254623654247251559636764220068017062846398109678587822711995418334626065390654082751648903001146075558479020793053906191485708133585143340598524713716638708238373861574390567917848564084679029520127528458700534232270109351526067430814654396131667643589752001191691770455047301374974604355182842396482828143202713177648091019510784826429817112107548020354107845972111022341570190250113091477543774153143130658794181820466764170327911067259267835414792513706491845634969959534075103063368910818512601183472897469338047142945525643911469116212493909592164692408827528723750196733976546814279783895757009218610639432510685179622067024679480289480065398872332338240529945521880582137804472054338062916811830301287492653565167574295371508202721161821592209575368764918059143239644212950803934922626633865428165645578688967010772064122839842337879527814258464753600560613641728621622558456207586955855081929840158541974695996906752394656788022311098773232692695289534552476087553105780573015392187530262111296912132670811528099452958485816376263773501190771610458729327125500223657870357365194621033449769062185475468980772943235490633359705305927100696865803792478397804664601632799440995373940805015393655409821875452375666680595924278941212792429897592969681281122644772180295440334767326424981957054895324920192681572742257524673471922643023829491243617079895794744306585777407305307508390110726617039156556742400972348213374371228861175243459322809192429214542086649565170878776382975936087688459786171091987588287840885324805835163917766632387183034870154527102313739595766626420063833272423319182667968955076097459698981913239002440193183433315469431180072191430257774955166580397818097254828573146524259393091133895235183164740956107784368369038501553308332203185834950714397899793328910921189643281440684127222414786395602773999791999670702859204831124769948271721594766968908735707009965568118875822042816970857434269045315032955557639982530987123053856834039915539690240602216181017281849381906044879299197412296593585599167673443925990490790173518897635028509155191938122657226085391400159665398825675304585657600373658297239530300652529139200951453105994422697122735263561007657607174330993332549188471428490553623327307079534619870600478117122250211104706717817269004390775196803085714309585647745588526590336867943352219203322235010258899333423906312741659673467113120194823703662026594219742806837282304642920366362660624010393946652316575130138834647966770762372949092192139100184865230694038442188307950889949196318935545965816839173695055654472694741880300114909087617371570985423336960072376859687506976528714237151117759881715469007928506789288355870302428611497908023835632050351007760532346083179594398299329343127176918944296874204267295293855448591871493729819480471141439604385726179331963717519706891607583283906924549666200257888267141366392433337737771719318246061186171948400118528621280501502323351946321720431216149553091503265983900134764840676240550847808946168476009403762776373856222869077561565448056066350454467955264852117652974791027209363107101637237039334976734577539201564636057512641921132618053004010401649702091872025303997988310744847077637112205300450027810792115323025650854804779104214989105810803228361573737991039618236274224957861135360218724151434365985910405810317577858683168754294278047502579008777795688515628481543985106563169622700202270135373229163723005296738781817067822011861248274611531855143975614910307304762851963919862499470451485885105199890886152712868236557135920575712193870545344504853239824373454347249766821939132992746616021463172268446562224998144514837021603031038984364338578351405662468040235431020042575151409510750938177935752100161245856365152252402428088830076974715240264933146331279363720224351809358701293579050873949258040971721467212658548839937025240753172796085289983809183670071289245400524692389413988885481554408465594363420572794430164020668996747259151682484922575841990618629662457554697969700256796012782253110012571485654146917957812854166756309174519633026770330457520887672631815805274048338033613516003578898154609135091833290467253848427588857367543659687808897997011730095515950092487594261593053954355789880876966391138298195335889752265750435020894081722753611476009404610225231760275305871220361220072250104331629779405832333601668725735339783664870947693171004928876663267451150215451625573977583478846336917712520819899464187128403144676458949584935151039490171264210801503624713329988054109845747904863566512525913168119567310434637152960721538864133241647978768868655877583813842827757529126940783309543660807222891953689620508788606221730594802594971059109488297865673518655933525765259423726693818319239532705592272999724562538525022846611934013254689685872286171947562787821165706183547514651200670735383558789491458382991914289310243551293252446820569922202014441011583356816771558729568357578899563132229606173356272871313780309048793255180598233689611077056930732806282409697526651175055573788306313505124230120500333690386882665870923510394755254297263049450651949116161058281060099062589627839918356398796209406745297048002788141924099157412282878009679971111573853842520549652248901608278329699638819482716997743753348669701883724225490108679184660895705167249803594410836742744462220646971199854470050978730612398906474526142014195561554219745207125166920264138643957137216754903756759443252906369860935086157291348127853379459807831202981960344398598701400184303343647736616806334733446575246104394407600686023457231724177028071236125686907244066336474677392124236050597612427280555438505918334299308838769364613482995297959949879083876481770120553622103826835397094365078969512721352594352398601205548360586493376574535416718986407458194420244004375020906092807425999895148180713137727282878085256127412874111909474581801130587414989967171064995932266529759130589185046863590640670168013627208141510443874719175470340882351918511281928862975042892862526928227055553317912774127696306168081073409943310605911631225452294959897108386835472173908983598347211503130484151305789277153014696995866798300302137288778232196426698273267117476445353614026477669221830377643691422432329815243810702737274247960556168305643222121097215501508657915593741264320080190050245538445811355079235740098737123529909422955231102795470028097522470145856359411250922621878538867105975512004807453601747008652581507909454537189759909731595361395106718302529431223819296241169391530013392688324183165914389408234339878389124732687453609775315467447836929536835873757602342052316487845136202881457262698846731841174569983667185173543989522670081112248388564150497641974028609741765381609008898222322184556155376182628573680099182615502548642828883352518260200439694580045993171041217353903235326521375632953725461263796962044968074624686681035619207083844121220297474909281579210193057976284224239700439429233040086926103387765458867310961857965314077724878545706645102705045614998716826466230882998845979284164258050332406773656438758559251776780703105619475818083372077346354728906842454940937459652271628419856448926321479497461497267768076440235861805171100039668184979463110799997919056839432072040420593533343209795051827730435667375864839381475268367048465208707646822924434005941920730304820766308592469479921014689531713880070257886113060651399662458120302215524605885946233863277614145658662799383526790465047961655761545119457194441934623359385325701137847288604116901265021499152676910300519322133379536240053275308658965770380361941949690020295382511769131187246350793043202669873760379033476256474825486007438556260853432796083955439760309706614950911990069434559082444927625340199528281751861868154702482154576921875604111535894010243764994530364867670971309155094504193792603218230052866385651206108114232690586905872610322702783841986967384070954130210061091094410064171148756837768220436334676191316909288413129646257942927508795642584617370327627866308288479573804554361725258468924640059915931774167266728758233592438558422733531543209561174807068681771176843265679517054850851989470663715108070758704145989258401433622237739524372315244985831569823229052998326502200234483385151857730062653481564748543203136879173867525617720084218526256627334255876456022895962559116842546046101558008042353519850989220641905840669419656024765398017312099524239666110699758672461897452161130117226247832362536952006820195341677080563362028819656567348496693461101055453728271742959699058473952583282415796996532334647486980225814308318621096155538264816201951824887380944898447474091819724728402999658253075436497799657249772219775775365428938481039328130376429066179657697566231743011004076009683990495707074680616382584627034758085195024097924823062368537163097340117544365602830986299637952395619030439855510384835485391189576576064818133286027008483923833512136843998353297117715534258538543537131553490196338598520127482911032353772194339301293870708971838706507362035500943172137056711552141799099125739510877315831690095130275432319842337027537707343809037984305267269013715690413105681490163618883140129610921923929034410167443205327503489088978539769375198062249029026257828368599582441840234286293777555197245543155152121087006248163481473482943306945317904575855855790147717458917059183351046243547301671021290593386455103441805044227475743841181586428960329326990937550150459498808643549896794448544366478690550249909971447538629693320042900597630954460902869878572686165614455460189106529890891720854316309268217700092818982475342952942002302764341754277213961555458146535892106676893202335935050316050403197691967453927612507764825526522283265171118939455488754666248501322695570108765043737512473585196693193540115696408497873455221245546821465062930523708726259175293114599196030590242981835957344803167161930992230414984598203666254222037459345539191396004940339192193484912286342393061764804227315809378589200677319120629898592715505791859366147995438504361525106469164587651561310801348093714963842473051098252336486177983279373579893421057783010445622195546865813081273713249361220143320637261892825353413624999720062208097067384679588390383278655624610336090519995065195470763504253430276942884319845636597899643571377556635991149524524392263830859397484947526972393054132347902024290033299027766568573886407334003414040280700554163902251777324777167618552667531392885721279257498825785875334282666767724522865840596507359133187363222903904734288062372518078441934216803010803664153792133890551144622325806034915735588602679322243756660569162775354525714030629018571763366606658732119502922200140109846074990194907240158809943584456280912434583381032766408922309082313769823572523138347705781390214466686576285420347425769048210942142064834050805512162465615405930077199780367996763672418962997620946765051108644205025231877600617677268520645712253954299899971452310388617251715500544502155697645824849326417052785559085944968173444755813962843910201440648504972380791689842728448593788464202092002963338800721844291772002818610586222855675203881610193868166716629084173846461028839696502083071626002103344451930829507299567141474999684930064517024547294329182493130125012305179698058545487738587141212583300993818229165307419567901592210667961339281206086371844921229433631418309530355360894435541278845723660064235988739818307038932105489825325659650303682939451231672761958727459424149383036441850308462743286440891276809084322170640810270877651458267444680771004443558104125642059858711376096696175228407001132996898960598595447781195371484892893597259272623566671624672997895852716487196685535150918724024519744248868151745175209440466365069866627109002266111782479662624338621579335242912536298798766207002595807179591945223806943780682114018409031666762950057374532776149348367387253814309726276687918318365036551277603005703966911697944203558883061840568982667879216109543108418448297124748938786336576491863965674981181892355719907315819455309772648475606008875972161355916459686458123760512013975044311027745340290668265748817603063764571078538719887714672021786501802565443086529735652246822733732804287097365344424463867630968833240404067988530559141257253954002024717019312634181667996601563629155169490463434841473864975876196412862005807474813664140104026954711652430635561128622733663969620169897755894069475133688360953554254518811271662843418751731497473800191725418145170848764722019767504098832319496552521549428156967630419301401173993468198825378726689488458752359682510904972814669729548219347489271652017165665438950979984309415501416788382061462735791599337291173446380461564969008864600208149413788419807489991711134786484515232092523283691735531236874306001658623811483414802655538761073892221220554541017029419057323902057602675415658538727464054387224828513843444751839316561020298229093621147491316926895397008200438159734545622628591296052772356403757691058406325071887590035306019365889342135921096007085467965582005190038890091839641632602512015049975249522294288796174772431364256657162790923821591834486454484966269894727947131948420541204773363829600365462548771068297482698177024617244400702058440137676858769865255862325950594119192158920393279089906156069906687679754218953642866561513618107814630858048629702733068807964428326007579059663669548748272513724050439233570106754381278813687145075569696991945725389408231257663076206192215479839588088215506892378822645999177107955119074812637438185707791568826027274735044837455713240785602986256697132031911089275678412594435628120480662998373116886120311525235069960580214008204198492558272231140668457011246394899729914569099970753838076808789476053255301076029379802714976779537527636370482674028929356641183054651839856910434001886308498892198314420146971238739482512578747584384510845293147103168670672163333378935170527384095404915631843884136739504683352021535683026618731893256178954676981297010217619644565259136089386429331193846052335816663137758746823551460016950240590381294814813087050953633302483163638939854195816488518791085346947602024837221334200925174892579156339747698336979961863921120850617929987556046261994644904743824112776413138048919878536468975180020482491844499633065789512795761072398211242007981164080306838880704791917184520579765952747286069517532447652648032186033434009294104462175433310469220487074636455691476799075704990151625973202097184089232815914884261109586876337400131770817134952353369190742481758968844225014686782543678632113922939121633515482661187744916786792128639400393992183734666909770422158128882953197997964980732001314343659967326008733307705074053779160049890747040996483824022817227171721664226235422837704334644222178626778043491932918004051888748408510493183414475292439310538306145285154296854507955893467233433933796394226965894979962166102466039423012148984297659349448492578551125101325124638165510780290307712896020795474114292349240991619224230551139524375763206948576477714942155195700527607158136116760588449413122524723908557880313825685449913086497449536387417861104730826595959167577874610927308681102712812549998251455081458604597979841331439047793715908228460764950902558305034063829032299759188432007948765835872361336186387588758200369356979831050192858449444492002622122468317387492396483117207936378920482484208040609156141818796814087737643464354579718757010093009791853264744732332557817543360043452911992868555530320800810348661198235898636855021992393579262531727006286244431811495079298531140013833645273347054293418073589700279780098802031590424642921192400302121660319572312739454760526131229720432001821413437545640568727500695404761401351411216478777216594668094787718309975710627356127401774755773577032525549725669323388629030799697231315026101293368024650625884951515824225372212424238734958001158294887565033494043748081353215071394834712185848088284735226539374967456276143399257334412852441318280174930435494598081405547652584841647551647403333346138880660128710405783099047481852255752942385745221536935649232655689261416395865512758642876318587025649763039481874255050358278606553416485159320732588737475359560068837942020349635619324978199896950488623189153293557168426241970583002938637583819022227190428577838573243204696244839313013323567853031407632047467643677121375668570811988420196569480132392588414712074928807377539608657849352908762275403608018605146121726250930067274533763414666341996838704970334249145857629093227867302847990725973944897552168745345137083807926758910628608010939968109686753760890468449774653571000446047958547110484106550840694342166532551324301097320926772955174106082007519736486822342102042218327767911933422220966305801481681129775511285722348566174617395693978154130720266344529827418530789297825661544579940878589254096234175614457139630561177598176830587307499826863753840024870108217111180343112288923088890565375907227121178917082049333706920145282243065917815227719824941060175031922908860096812587539740487663306222977957442810673213226333602735093260712844813357775907559966605818290978770250094223712664455502346603168944772891661603966621904193579542081809453465887258967561151400274601950994468684539755979313625015185259214432108759981457376628685550060757566344337673991722606182915939740315094683666774038913902075920312198355476421344272672945035123673040951944080292638163549007610580629102219444139545049909445516101652746563137549516709324674207742820083446365030638729486111404032258431179248092467750163653657082218949949930045027974320383090432006209702221908524753627472724474226032450781696095412170383768014975769958744581034395418646239855521241247804130697107709464908976053538147798444425294879265571080504226652384356500487964964483872577197582024389639571830531147620749912192632402964595216921995591669688042506446451144452248504992983015870182012265088315540729881654102940263605891082749978545747830174425971945420910232168805030793147253181706433709041388129906665342384894104104372104287784703627872955768107725361131264413309384099265089716602265108306508173301191805158323780850283764517828699983199423868964966367151558395138664355817444902207501113865652416359128381108637146218131248760423647933757124169572718011594351066461213657302695789791372020601433019394903913046219201832757277071229696202374795165241774265831481023807131612045521056479615377883695755073009846038212596791272103133372603913508717022827714060022354041863233554691410382115943761469843157999099553071350250565515950165132870044435898000948455501658710195654271968218002878158724564956214516166657889186297669108825439446746606240826688352014499262118682211971803122923864162881685406414803770513130982100773245098208518099612724814178991116211240403891629385848961922519270810934052503867959572350586565278436964098567987476857991812145770514302867628957764398260483936859037861658493487566836295815176169054936423038786276002380471900548730073462558468013023162501821396200739756312531329039874885024742750607384488626656038827028459719854664773974971741101794538614319006414285618019282938042878451522977679013153423052350342512423231882285283940405637292949676043737655254957778111970869301224433019359884440750326490510480679293319435416110038207491183271069298137040052667346175202140159270946025835737380565213750985680849260674993757129966308728290771197771313888395937219599549293206207177768461288565861235593753625282779995332462196595179425073315285471525934551438649394500232710186751562099907863301140065482198750830980262571201870051162640746933889439576830845682684011056261332532567930901958929423833914934537956013736300127154742113920167980959858317838523907918966169733371510930658657884964555966894537406753282513388969837047802534881808954359112768286982563282738877892994970034327383517092537266548523316816565434065503537994767082912658908877165021381343770499597455786150558324245243640615117516445957986811823862901892315596463802816901468186388307317651297598802068446264711230136584406515645584788428487566657963389624178198032236598090624889328471245958352991656254745949652565931372262030698800448727092454757971905293695851995932608100764672755533187015779951469200385773409235486457713747765195982238270683865035185654881837066233538158502294567033523902235688633498621552022785938960313674678465833420519038260950758034131579486065238389836825025318650835320736038174318534063851168874483846624823350880334158196530858618585548032414055212939972695287185570138628688525074987689007624349412386227538262725226593952665637011477893084127879327456922981414826521563270126663141921731582945237290292489393821088929098034484787792649652528559886935851612023746142142679711791253770259990909922613660187509761286018381912008793622970735091778422233476150585638236007793409023437938231046728395469053566962315561516721320013842729410022862464193047713035295035006007660917183421915733290642668534863202235883512743696608024926331902002995046148691056478876356458223184585952230275983077715367014089221568251030603015759096962768092134461665532655732107539035694089591366998476492777591270414322370708454046901980510221248339585239551875055477413037394046766404778370935963653076947329219967653868588349243597732264681794385192608117092520901971875164523664606490046760012250560367810594290649802466147167515547124941975425740804561729504856369874332262618667732041760149755374810855509954761006482673096758385767901110368791432256924509032088766157898389489381708673287620233404362212798917754918082612997629765439080532932218775584592597852655307237069569525880509522077279775781534847145435419183263506419605473592440278778822818548194369539679710560010421436362474525287797724107556453999632208665206937721332706114721821553375050092453461141077233920562995401474434633749109358723167166095388808310391207019169472882182401311397769285830519435411704248135474803896453155840260403117927707956361206859204932467762623990510063256805863023217188628861836754527696171246077100982066542533311431564907441929185817720672642547304949063947836109548784884641917288398980233844280594990559537910476151486791723989299651243275514608953765354498185077356373445192564921682223720682669578703713024317426619514024898259037919393621279580140604173603365897311150492323011666664622366851600639080677464502180692641912288438949777726250850713782645133006545952188449556304447551593667324251233176946178022385289667521211625699575420250984502343670735807577849481319454974365287639551596640979173682846982049865342942730344194780028283689281649248303169790576612587344463619690086509617388787306511375877536377478489527581046358318153153435055105253212515232576035010206597093806269217405159252822398143435889788083898239186390972845369600827719176738904795456817482824587538907651059387875953598364888276819511032664442013486762420471861132336538480868505408901661962223945303214158128550587825946456129831954341410193522414471590012213456709697283734463719232994888706703699225986381756213156561987905438741683056953561593862744132723850490965459644216902535002920312381318924560888333569744774657209878544182578099239552804757901729305802424933629487915877795118803615424047247204556345856334714245797499636097165435696934166612080157141892393210975382686676631799128336095334728487632775827843381119726732527033192193244185015986394767052481245315271838917355614792210879288651973349294644604868555174788224291924307517614080202908757265679596125186542456339980223641040762350434569355856600430418708125095678864130057317387755903479087855010787183343803869141263548284987391230051420185514410389621115733286532007959007996829531829543860517552433328605150003105011086593584004822577047245544829736230432952000531989519130590682679249923803963397095334983136452953446149544585252817210072947206044608568730874941222642301250243526833083414992108888794722829318549949176892233725682403899145862087873025793937768272281938130172629539983701727739234497157029596962759344076991746764897280991504663159953787232991354599000367005958954423211460215552818507431791338607602444147910762713598835412927222995363728531982001434719852683708543889965862124853372663960498047317133491987584226750153867448688084385775295295550276786739804365891117341842520505945442775486031949613843482138652834927425470052215945545232089497919911054867590613362108997223549582165000595135391410408161617838260150797494280935543448273082847296066881325502325328073570626275539140171384002868163568975503367687218412972803277114135244074985544572832344792273430781225541437752808787310405715840428684928009439357275837657213558493473745380691782107725700683597833522972298590302275121785486061020266010185322114010801802917361811639189549391059027028588643985404784391637900917814477188845795050755452449293989488107011601287352552655846419112517649264877594723968909918241130971816557496008275779739357506337749761550927948762170808151876067775197375994408556034973291311560131343347108157079002885602376693145055540415865936919378113799009665438926545859209579411940317450471515347447159224997008272814966125946639495992977886416452549341653757095498128461509063204258565223091640595291397274678774501509902685045877313050067885905249863731648796576705753781771736128730843975998461859732054797627551648530488616961799240749380963924448397147640899391876198750207197972608170722721135716336901548128139396611255402883232974965936321730615767433544299182065552986958650206818783596869915952087191348602924945264663061105554135523183112554372412935942368664629915429168894435907105089618895555473932268817517085057690594319009564239509651496090225089408226203288368403770240631805979115965213691344234501137837974083170178628735156911433073956117099896508918947415629600927060620442939238645076570464923309214084016219808666588684233437649881788673148861506176365777399664024927642703465467643364371492787988000669882501246185353667625175877934283566789795130990039778045171696226623662719302901349730128116430049553924160959933296358027044741027202241069424986591667001103465099225743228575565684501678083019796183996613085680425421676402020979232096629751190858161379495799938716725329353912882072839369697770422821829652262552689601121382962064657353777019772739065898465232959210931533661741166361418370412585694108336849982118954953429065064454837043198039357342370266098069209145855137614082211509991067177656641301702104293743512103236872391701080762907395883356651528756403543846881880895873459682324721616499557041726101554144993481075065810600228021864670631849557745218300303880943134879309204193655237012227298465253686671628994403210765005958631776460041002737802132593775310415146915763370692816141978065467541918149141753918914816181574224931475435493899589923030225211317201179866229739766751294298739535287065921344680455697493166624292765297610533216094570066519652019675385679707747065599898730341937095982017974202449312894414478446633884597205631979882672241152371134468823637220096336414103647176641637364997229955173152972716071549706685258213842044014045551061128399743434025812403941040079898558375445576284434838893031767633335682959578554037267130835149094831450356108824879406193743511749576678694421995306199404706590349056207600900298098595987647290810431130975981011806289447325927316828127257742120901372513401264273646067381199940826393787642942966131139879094059340464821353164934171003339318686160722619704508315770316668050197907152257006225182330239539895976740803840730791154003372891970819609968311170957456052908564678476399260548602927734486586705418592142594393362252876148638500777525179192249676179421799278236182281816727517500602835762171842462606826225503719979059452685848787452561014240808091810127920243295207829923065111233581176734496488769269563284575275969699042889771017537644126227122387771399779418255997176987420852590526244853130490560741644493094250613259425493859628274520167010052114680333558582040393267973788891951815894007249484603369908701824645611882228731922458938243979680129249460577205344935757882048658301845224753337290760399618435909294739551682385200609834352420737983207986292998625298287448210177558943256665644656153610419045331740017692138040859945680284419557613384999124682406376854697252313656159135282238571037273133808716514981182512794030647956948875100168514497305842467590513629580077485993205734653276493788482908712279776837475246688993864358370909270577948854110553090965997234712640123522309934601480998137632887094268418763394844765034253335781930927725436165521873889987848572073524178075413087800895919286666966080074082147731937849099153980744039951665488952239670328025109672756194918412625588771268465837331995638718336206146778886730964908820530247577835426572823440985482569254211307856341801636386334860875549086097390731735321209023514765441005602518956691464530116632805364784738169851902044045650117099137720566429817044962257544118269450879619029084944343624895150958017987608235171032932100268150676138456451500349172198225158162373757725113377496495074971461508418343513523396703296385727981620459394705293606131760861121040208278661112085355109598690473023522960159394674019810407376858073757862833378904266407972035769938407691721578671033868105429887089491383320335035281079725584802715692175452939672753613546576795451462676175968026064829340886987641937468259458868324304754735514686613893370311739026409916720818184895995542677057973898295884402823147291386219766247737565797768764686449540954286579716209456071000081836664483173580851917292528710387394310021858682192676729843603159538604868159705029309968937894535968933363190088829036139109890268076380959598393271702131843112767669511111186269996902123032032284147142630294981585392398551136912352996757587700542015315315976276083417051333319181552505122760833465239287511626382919306287070673262319855260085780724672018067653216904371059353547985527232491087647156059277309318234363792306853387287479155394876401192426414300808432311173960528687575265834008799410533046756686069751918573203260515000755298360311780880350922446759008571949116935364482502833252149641243107286973351896296277274891307627714521880675405326846355898112572067992034943001510123869353740439382448333997055790480799322018973476029565712055131809553757393964839370983101366828234897505492234287214516909106342506312704204556698412166837506893849265301434035305353070019755799045419469133590999233734027931203289722662122449678636973615290984459803942567010466465353121818168148545013266080159413227345515500277215332342592814312498313652456888521812650401252115045767586263923184787246799003575951310986060944621428136860180707105768105850744315604190024737753197763590830612451406281065173667929557980283419976752102053104103348210599574502974912220336093789055048490149636272073073004099745036869899497573554662357197893113475187440125030754528533227073421387091211539912042413234003825962523298069162740913170458621072167883248337601836193972678339877347310184502725586913193189591153731187564520989961078618812161146858246328425942265710576738647857828407170780073357029381180512454705657977037937934502445029683756378454734677992262808592372357082539410879435183241053509845077686698717662876855977577857378332763630087938661965375321386511632301018900435801996554145285049226890147987723702566287190384188842825750899369837065237444340318158933305667357649003286291074784573067879224394321801319206656669306068706137791328026490826874022340101332317584155580848346928106357424596678193846271823763915322532380806779501179951148689405158276744252775893381136618972449443480909437136813939051768286538188960982559859355908204773525148392918007814033606674608711756561105685988026687530093932569163442593832039538025252328261717896689904713368679026449015850859593371234055269687395691329670214751291337503325544386920422084697725514183094236099436262931989693875132226200766390945013190225183816420654791788640593608123942317186989780153926322475308662800795307184933223477530828649360690109335001013553795003643574624895791806905074202282383945866960545258565110701740392950527014558576470699060693486101559176922838966888155054967592428806095461921101087511790840877410306244555779587857063313938542225651290137588465921100508696815877062932356474159994745399983885120084050739060133123404926313654332922873502534961979038731905344117239333945072494614260642440780663737239997264987759483334680954611884025323905064449010302164203962050788912791288284458450180740209713261460121712427632445288263116558013707342165201806858194054644838534887585169062854348103698797568086532659927082020492641923961061122504751366911542551186570214349389324634667520677301023540965266172374258575380141799367744530983817013407955177479835029228109339354255631570249904992987409107677521470099591639393822292459819489346768994424861898713829519753570126105853881769632156835427520637932585195478930748155001046099206192420536724575441001953103074459169487418384912496019988996764446000990552006307014532833943876243587668761570937827584252914308083679742019272400773552007989411184084451481226441352565327409065212311310757379743138526930963803010365413110487315228101564599710939491499620124115408588728039265830780957482683633895345698528989527569817046770584955011093534984926855237697482944410845671539894640657212016741828452577347495536656638000507647828108640020869502409856138869389026318852400904724564677968529853824235607884304342102667248603351428369082835966911494817371318972279322377247406887000586895031955420500712471628177740908756105988777538321974382825293406516314867554455770780978711243770126122324792679858402202010064138706047120327296997851854973941763163657329852393954624352486428758808267434910923618799406104547618457312119315916726233730953116269295059852015790305814861767699505196425174764548309713265932778523899277173571858437188982788017877591098707759577906351891270968570006975357064326325480861550555141913851784166387649512207246475795613613033799176890309043935550491279475086650809989634978097601540916040476102377471522384215131016856297159712750408771826079940310873272647621432730423026123192534249427664368031985941199061143128558874591692740304277142191047457689839327060942469072682751033987498793117534760147521484145645568034321795020033358598071175462051493743267368940007059680492096443776115712021278681595759823304083493201077286054899561120050897360014506090023921210069232504806256768912434474950403352823765129494561377929714382788899935005624211467750017249939092333383358120180362729999262991347551542067412540311857628482831524387921471422741305409036409962960237229712762047187827666979106865466510224183628413270191154594975232513085903821521334756007473882471082562186090951721349281064675186719195747610857149797478861349445499054518587224485395767540211889205511367320127234146129380140808332052289831990954066130177447799477758145003778724083012345010602725759890602472470257236681836543878855403880820150535674611424686260422691382368545200006444690300910657719232318814983539129555591604683841382781692662974690039575703256425005062571764096105118465381154123721170656866300947427696413643943568975526858080232015974273033088714241002858205789372991705620740065337171449906081331485870645957060309317084789446751721436330962083392078834523380277565811375427952074182323627747629670851788454389606764267264309610098403348193529239254569761617109467039278098505758421708548297721239060024811050896075045005442221880498407674492271819416146831471363102645362074973389669533412797291381528830498620337764860926646621001464273674978448173780003846921456695050947041195273371563504235231597421073638602407340370856788133699712111797887912624285742521401153778744939536808673611999336019971703471040498189064309687018171346227570435394355651598997528733702065382530245447917496251294047554143227958958444570684702973588197470451453211785822919323547327453376795205154295844114672036312623266860981825781270896513474094725904288903653851396314741725169505933392825382977027220876631534707275660643428069584626155995634549683595918263932622642971718240028006291856876843907671564010626990712078290495728666389813455889968158272532852599949155628094609872470631562214163826073671399216935978384580804625509948266893961282110595010869962289356533357702490612725415594428880424135098363191403779994640381580889820671786674834731433394900127709121476145803713365775396566952952924045183497418504335876656599680555264230678679238926287629003256229577374841830666801398454492499499853380148473513692446262472448112877525320573468457744623309522758378438376027785097732707728441715801267621001998324660891149328331517227312058666609407562719113924531133402948664640398150054529909600514413912002723772892010176996581162448603295644919558401362907085800502388955632535315686044606147181647505970028784409050140883708611091172528395014008624427363103565354242935711344777065162777347200985795833628457250755567016320270787288552607462925613273673942142620534901912125667121698592412194844614224549744872123157303305061529904256760627853982468168314467612517481025696596295216785658503663609935612383416943091333456815530469236739279776023313791013716602889649474995313133183139086277829072533165891184004488725662538540972940655476211672031238104955546020960143697863286156005799860636353002939537329025735006195465142238836643333145236441540926212563901836739759752357600809788026379379459210804648003921562019636830524101093038638230693849263949361366765949097670523468458041990542389257493994429813245891635540236907834917399561906507823106122260982986143293134510728081761285015255476868841289867380211926854551926831662938039132587071568865047553284345615852536822006334223636184884413354868205080169561948593629575958431686912096128305797071751960725900504880069977128419078541768563312915173472837877543775037421163388033900600427559198192011050111923293813351142608190421613336549497665439151913524298327226739990729839523282228760266746621616726598525968373780076988487732766248188724306318078884451664020219601832490388840448103295257279361165918716671988263485440694334176937216295006553656940932764914336870667081606696442122964543830012415168245188122010720742981038886372818959835365495949026934139176434216158013395207137478910412178383544857493855711423882476597344265573329698802080835927139228208313528579831711781034606298190346213067255496546677540782622634372253692236516381608962439517467764983789779832050168817428737365442409195928537068175405890083031016098059954038030931307726386424771338337984190087667856246205813901629838588588641439817070876241310072783788691174028580855052229666542022580744210242823809093827433886161920480867467759603407190186569431955197429540615188417467325395195935590735852593389037653764060570277582600419687089583738233443652850240649824966297039000737631604535220711763507139648518556908040631322918618627581969118963844071180427635219631597760004839557887714491501124818071604586989585937742759859486718140270707174751212520426331419211537720877050233355514028658199920036186867297758297766120022032190702247024327864509627357249609978977484669223726112773892058561086096620108167638343154584369429454825317824699113925582108133977035505672537669231627787281255639806649821204646694718060202340752930166559069429373127877377089644607245474295060699845871830475186536273836640273822095038849891859403104363107242731321254100522837796652809709669883736988449267427317395568593944335617415425195029076797803099758660584252762067356362084324742665342881650831564785978501916102430567830263027580177040807754500737181824270252699843558987215103443712688032389022594307119909546750913538451642669324709006895300330720280346374092795809061377742849001873825357980896243376387621132028873144356454161423966691191755620659451560018015267695994243424594773833188852133763632297916188265753075185389513583580048650174070515920031576920598686190981679408809987810789003844837609584833272120752497758987113812012297496047366899747445400013073522050013431466206147495219553888044151098640952664922149633361611170805224970171794188182584304756802424461159479518974531325894459146863550507390776188221615571940972246238536040812693019837435541930205149190277353488342057335618144551992322673773064175700396139422388673236229379111181568514032691708313770041855496888589573157315769130978995005517473453802891863516888843023179374998470395897204728562838761653608076811050662008604664582114484713062489547850629412263057340622562707145175770907736010030854863769542878936103661000586042262348160296939648070215645667792483064328808493370105644230203944436487812076490608676396811523242769064850551834732302181683521616918939226361056768469571114399859630160332651606613136856416576299248728577779563898320635721290453969627583270749367816864612431628253265637427719785044151361415167267635053009273093987317437672786833909172561497565694313134220356122343971796405252219244059486274855921994530539214470985816902161029869497199838223697593329986910249143502303076162499088958985906481761196525468815439189429216212202961525857742261044892286324225418882164730954238689203606239673855665017283035303967550956696266314447400272615899820752116013515262728282506839123284713753575058806022886145955597125285395120643961502636965452329232145544834079608053449389299264685147939881971678987563466387061953497636616706175523588929241804492475696230651709228803550782158156058517666236518732625194397953972747942099402369625567943691206839233306134877789660253824133382922179921356696591588501578954959596521558888718368897057659132421289581774692670169076614658302822124353289609772551091683863949577320189603075339988258224436255159962075829937875940065294551209304407491012387746334399766969716551867347250826748729194270704533559060704481634700135103729419597870691380480455302607864480132115650445698031840328109881730346842110856087772220352148306877955240422546761454394044275474827635789594586965394129439289389965261733810973067829928307712483168045801467721923936457255858988966703230036651091815154095491210280659158201378589864317452065270966513721714326886450036056532292345382469174955541826110138808903965345527191401584025110862477249743514625727557692490404056095071343776357700563781646393818018621636626403749288525204536553391327304376432424159100914909710769463873032705857332371771696750583248624366929400235535381788037139554116029536704883693760643196531910609094589019603448853451763290363861572769533486438709359779977234201531873337294412009355043374618775118056760201688749142628874297909318504890471490575101819039862331882778560236215012190422497169337186304958181845815309509613221358840033312258867253649173361006408201601953282199238867208128759444765715374960779668688310481835975266604390179329082058517703661958328647103446678165792282866793687351546101598309117252385820488173182471132879139427784063859339503865919241327377661778227909101236373064990269641256034072002911535656205365368842502297341907487506326339004254464863868339798908796364038094695840580856768809569373244891640084455522610661874259001762122440899856070244245887449942603674201218914193114309848268621327184417981728681837527001597082545207194314636590959899887650995251042274447341820283808725093224228496083403864543906748216547266978137411251215092625164383637923239144842509656516390613356142260779076158066419877326534828251197818502742448730258861235301769659791750746223000452466501790694809094531323546463747262539443813291494076650840019567299147577697066703320240542115751777524412337815204496961865766246649474981614044081266133316517404897518778505574450664797962303719559595155421119615493940156797200302999259555804535682034728039717896324295661633416264761449517242603372377834443112842606778923991639366981539121932338727326271157510515911226072380940157128713535719694011609716360514304156162259288644369053046096697942580391043058967910370518871092959095316078960447980697725190650286100365611786050523586019128419962012926841889358051479547415070118825470177865568544860151315130256253504167853225624012933692966322872353396531176887508389355353390336890075051244135759009969823247709563531568953660145144215868459903539199001191839531368534484562828358394732984215633233282217271416918036483286328857656591076585585590069044759187997765002613454410189999682489404281236511471072819992829230347255024561018558754770254635799412520420948209776380521851823316763880084848260672764423404820681269635821706648541471618780044025310956942898986509054955739550757357025058291176750214344062973494431104557426840523673315369087898778184272609114887656931941326008647800939289897896186810728600391121229468295199456045898121298631049108533010395405381420623013650865772810869263847485623023592677884529411753964683019009625343713503008852401200660008351760839158346353924515070954866329954171156016630699826335685696114035182941802997627994328125178881217789890290265197985282770057496304086681409764648244917111633941838717255582345839777183872122279466926597004552924356999199923768923221598347550539311462260525870779714641774793794067086870317744758028331731543682312877367875146147616666984072778596365020005928556121200802091928969701112635928868297351216998332386260954383027539622234044887120874729666229680897304967927515134491260391795639139041907713789202098765856467449172108018737771498563567346264233381276684359175044660239346977135337180399005467020202846674139417976302146967290239138983837728219212865698533853630191070346512504512759721390691671919532842889887635332307079614363176981603268746310878612672496208909203426196773584942499979926019205346484715503800466478943103349600165434046663160127888437326563117149626093319509816289939069138712857760717947969112012602205806457064778860723353016863038935900519538729906429987556941140577546046669261004515906106817595677875194298333294094970073801973462132991977702435776722727134777984408666575931416556674902507673719220452552204553197576402716115309649616980614843350360883544826978410876006234036278089505585405970115302412139560623122830434281286518662966385274237608681986740823378578179001094885848493054590009107424915326178611073193405281576690134230228493171089356997502237927455004122326401936109738820774500014152678917368678674558536641287928630821281519287171788807610289164148091988200323960533280348951839786996888000739029462603384793650905386202969512087036075533727969310057960066053332676136290487847139736712105909376258026227650891027823125457522436129284111617209823144362545737260215085594642567260298809322345160694052240104357718748268253186822035523647392091005229040607476422614112939798892938436677404210913584745809315290963024888346945279377183344824729040328323792262935491825275743004006464629900108355359836521894999675116791190177839060179694976383893714833765887071871171008223043662070606531696394164335954247597589821365725271122472706052851863664121617620445869447293286837921334881452068190679583829739997144591177166115786850756339041700247161424695852830638624015676956373359677984411168608130987866402038380836278122121406616747590094720993714959692544922093633699070563049449105504152558304460025708170946298400770194539971412970053473994804847914794752723324890573281611165501963250150341232804836185610246177173401512868463266212526679550434464863107281130960277156850616500432659151169246729527626799153087634891105667897879830379645473868416432393516015350807928662498720972462444569639815063091782335206280547264726256799655656679058896874194837188268794963709276727247896367771201773316237292946802894874436879647928006807614656351095457513738804376459930220492103924742431405135873132585950482309083197012547406861379222902232483585725897800606651296555534656084456758699432920097499375117691724132746971239961314508020006923303439829140757633627544628254453627108336614400173474404841566024063715095384862418792882892154414641599343661410586276234935203141174066926572126433783938696032808111222691246163546104409820007200508583829316418744089513083995313233987790690988097915721705778786381961283766049889627036074653177869116052604176095266627754177732912530532070107911428021190179747473202194204740208264428706554329309445110521255063661550444951927924058340363770319893494296459756626959460735842682435393390884053398305775768788138179876492313497298559382189739212930919792518044970767572096155809132555436062953962321297755380246566179501168543562563153566182113926708236163978478456302799748360634012830274750427177875868939585611600888636128361852859829165753721399851075868787128182165785038752045915875786289488942222910832080144630125333193393401767565013676461084562036599914344079839840448581030794322777117030235565887918486249277032023635580185172437542349856425280373743849842250774917361949812878685437503072916298917630525261849109897629391091719159404250942270472852726541059190547855783716670906020955118941727142280742264783178474190722698500078377937516427746793867558267493179417242914713920322671355261778257352190155934032823082086117743086363675383414746856090376754071685206543254857659517532854035939573546117319286843459718503411139595789302549135524329581015096393430653528628889961716153145477891578219420139835574009260743814105917244484922005062662952055840951990217950592407358652163951463979217722627724538401833938808852510806009640104100671493831531570911619204735915196197051296396664732686058026801654881023352437979417209668138430228586386819294275024792773270573314439183144962901448640654561741833283995982254513777048490130396301378300535759007782347392741679851973561410588057578747271849441855760255147055731922226787691814757099165042950664782733193560427988064735896986830002491247796703637316949505641372621281341669268076094387316922529738176746706795956299991889271732545502836615738151285682023854010431239621867755551806359772904346050625861418964799556711933087048914551598508882452660785815680599736532466959771328446537436780196276597910756609468387821642791366980644969237617333724677679508336513306997242488028236750314355957188845082013458436596563474750355171011478046447531118492536189285034233259801688247223163880264065971914640804539820528427077468115674019108026537536098817326904189247626471258786709383081033064028164866443955799946522653401317553231837280320513256837199245668065934342787224132041729792068770784391747008606257165671069231231482655276967107687714955488918162634250654450785326725142463315200605759733327218043569037972324306254236165790888770000347040306059404615918753824117630461504619443305115276624989126222448298855168211162084723029405194702606079575051576236154602315305160453265006740768513440916594352345670551592942332768078860034909046155763912291945460704259340075292353549923988512598550728318490621345098966883674717678448276349988533784093909872226694930415738425357638319234622570678265256586705106001373802220471393126707698743623371110390764302037525749015792696554967818420282848161858968788216075316632378304275469855452874623649312198573112887954122202619162356091087421835887746477286993101407735783632816801602600145735811937476194950563197272821918037348226494437631114977188125435964908057967665155953231705584584539949373715881044575920483556021526191688679760455142095232902002958017022226965130511694875821694311716049558426397880940114898919592367268185443492737839945851489384265011671499964833988916716366912440306200999398767502043943224606736196179419079956079635675715280312303013614430015270593642196320709910283761946186574805695161744753991796212856997921369680784873729894234902291553598855702674423485259513475820458648286592951739501588362467122906838464302336327040201185870786457263582117760484967063598432211515187622626730739004634470116558027372499423529447863614667071907145824579785861534323842585480870080309278185770324532446367640428752279004094105516285899420470381024790793238197304128764618293132475908020144255046399977160384104208203729018388162606390680955726430376110156745273129297636004874975077399079061523913334688050166435469218763586362453335567018561882395984210200946193032418710063233834700660615735052654342195316033325821222733986337343554385774965891995474955518864743931119250844429062975044860988442553773555287264674363923049633986075424359187666383268524326330016569164479089025292308074124036338517045769000055484907674071675665647676912011267873854226963884574485778146346712147330228026930716920015064216555398437831243286423714478478009425550835371456632171463685703886546777651648999071652722397144216095632715923795978160660593445631981358662084814772983743041977118363591168048800949157153358177549698713290396259511441180177961769139419724262992865844855152957872992714133625274510991009612953292144659183262931971057314772275984605915798851995341046708133182535855851831321082136893363031572509736094669043574823367120213898928294486751325510904714013622838016546983727949961861467382798153854711462579560495408487219333879677077025478164665171746885414373169971978297988825348704333899539620867807364662864899635680483914879289119200144810834405552033590143431402909826742894976750843871131772011967294853927001222025213894192070825917679317803547347264054411627444255770861433195444188929974609870572973285015907486570979395351380080571682814085577890797208994434808836151114849629617399532465293186769551067396902554727429721262423854509693582987523522484907897707104569828842656886031923784774963346930527814392961242658659567071757464710413597342514416963257697352647271716547474355090361945401795742683043199055466604687929727752876048743154974438195554107703112151484159141533606039262231956276918654718810694533442492998752637381128529256441090501656889774396151448220787571031245585832728255601564310161002501018866681344214734080548290298676171756565049303055684946722199861583573005948498147953410063823894869905425771273003276221938009498193100796567231909522691530330256979401956244470223542790822544758775539366543437416380336567165325203999264893050692088267243332308978446328876238348835314641109429671940774415353573431355973402840125873435406471309563616287575190157933286418212388168516933086751967709602000469000812123076599868709547427080969994190466742540321402999184131737708578381030980187951434295323375622309366926962389415914611072020281794916820807575799871537002574393622766293420174409853049263807113613599693072285227366645349052663759592384095003447897667911450976572159169162128847699588801237653525695180645333103863688302444124031697453908391237391072927894980223565154084320337527658451338368216758091619258498364897653944257153234005555957012570859369116306993508836626663325054843074850940774592755629485054905090237610410544952580947749353182034031904905924670870035850569076289518841522519158755619742761657691105311535571103429193332782447596852291490555523932090979796119463099852568473665750051242442342518850481345111787431382272228545958767272707960685408591767769373113701011018037475512541100162553171775743378134062647387182099416221609059239056354299707078786477163305932798634610346550180715960584315584590071088986695873976975623670650788888908001044189769159594256323494960820722261234619002833671350681903561983009130265984666847289791111465793249652839741631544215638789888749106020384188828149559390696148448713655545461981987273617814140116685847926051786900504326039303254439575589515306776580644023016499539741385060912887105678872255770002298827159616531775609802479180998181874211268303773304067998282723435788428746938653760659258645675665281040891140113035216146127812699811359965275739259871884304568937893096345219556049148128312698203878632210611004965437807559846923645439372941068673308174158857006838708810445632239078258115866946838699752764451237341079569979082225480336516715211461903276611671814238942147806312531757067034462158565603177512436612387586507198449086748549110329290378985970256988696719126395187851379874439410154554908742251372359422133743255122553715726307125265491937956253160245905805530702144586647800048811909624363912497297342296519376572778366339851958265875527610293048633227695257133280704051833905290891446093369715812652920920875390969316981442614002347684764729787244684927433896362969132324832691511808955263905124874682904781088402259531015404004328291242962192956884375588386779698620375617120035450830774748695147857863804614720429088909518577956316495184951277897992457231499517022444739689749155587675410748515506313289018319259256210289498991230504309951134293446942397812390371506368517086547448873569213559837330973441928457089500999931268983356591983834975623173304345511056362568266797863048827983172731267879974699218225286823858235222933218231124964907422274736548376317558425879516008527695451537537072717448792398915102713514499961896467167861780873501697128105445709604725854427403122297137040354942524572702542066335352734657760094914224804606113907123552197568541619744146874236250743283531052832293838086215780755369421768640861096739945729951304040919328845159954426541785121141719536328635139899890824852712903554040558926500222813990875588768710299367796881955916766340280088113827115377150572905213925852325869765949760776349571693364201737505975989136414910877156297188409951537198401661129085862901217738203213440518352562420085542800909607148720955248040422857713233825052107393810523444823249511405804161652434530681377813238133209304380493169981567976043920659180179927494398041930010637349539548667519890475346969113907122473280098421406335183074848791623670334496475631190598545804842510439537568908113914940955790351692945597471011902902491710804669278449480027029196084622713551349977320681603376548960240618611091975253922765549886316874417023888933385108604757571397409219401978248449547272447213152571035816101131201155949332050902141258934950037834898631296752107101417135127758234990228693575911479071391189042829020810152398993496365646553111626874797100462698864268673948281555170023418660117777164535367202607299501108306069782491631596895192641801937909411285774883048408774565153717033106778130526951330724196892572095665790350294085869264674824477136096397441079060109529189905152474371249163218162621194197017994503208888216836254021805353936847197655716887198789990470115933789977081043516542134924479838177954079385439913094892025018287497446821125428582070566707758621810479901468268175855680869841556295740719438588281224224898445567565584134921097705699046734006346727454907371670810291563459262123007017456528663917202570573447027833949441057518633986227827409279719326192808447217819266236693967825621000971926408228800358125781553471177857358238599677857940532686172358649228180195314450298036846217079126031470152501834890198906772880541524605904150361973165952136040417307209643293545459389431423052167323428779734233238729086023011445242707008867371797855637433325792110445265260818044080838069606286110457120431866265848952366110912898428462113406546103358086803198960615347773952657761652540048560992552172927667290756489464704179182839442489651605803814988381974179162599383951633851157945394630991783826754127888610008504560968958615901285967619000250792141352590170448342490941970298769259833315228574708672020325477160279630771975190549296248430990807476909526157641147766476092204340227431648881831311539993199583315332972671950647420961551525084749224910361144074577780277884066696498061709690737227802520111363334456213866189143476679205570400974230041816090859792729022822660421614585908787818424827070431569244291591172288760471656154406059937488802607722820449460010577021857643937584837697708275694721864051720657742860571445515675438319271162769676420683695014833633454808190905051643755996398652505215659315830936333493568807290788234344540855284721844579724935561773116102895111536753452484019361311326223168534340895341916437079828530478079634892429437002427927304956083643477661946428428280373765694804118012214143961800125546622654269808925323579386684042251329234837326030731466253960520372286184520638485517954717912372104756819889125012482858707578081934245832023327888085189389260892099771471230454114719433580236379165910845635636438185595580014841019971055755854145602029685866977996779277384321069327287759465471199565596749902322417987252714226471618366341074122696792874511467533485948527306429594378224547713985763388949442970341172997467158039178727603299580487231686534438141195005876880576461780597001938296878078254915933718066519609182320244921737490129626355041031761127667309517862887801745333294501803510648168989782705129224940412693142710001663831167873848707446680908324341952723316774029342239653351053977534224961233753187561092928440392220951150050686453248839685218296354136128095068436915512269857608278786349697533022322782410536563546368497896542809462047362967879204933780902798932274326502941451566934578020467374939126708704614188269110114288416180580512441312670479027651722868010912319384398509590102974635931328960837379354316905680634339263618854847116206280226776495678793372226059970151231157533075199119792181127072792484200152251349555091046118112845550475147990009658169212266214917438417810045066174077388225726952580331892416720134642232097515270240901085256852490857300702032240649918183756200254508989416947919808695038845846644248354600948314822209448609547559537373864207806135602846169630543816985318453675639306548904404408300639096132694554298319617310162730620914249245741613740837268376917823734381175333841417098198450102039969319156385958900358032777531082607081372047799325660201012580712130835943683500006628551383415793834336109501494714248869272551044548781510770926460116185952005637339026444876972312307527271728468288389096111060683110160978176738963505893843454720061212306835643128403355521373963805769770468903238917091814094614350495515542842066490483419463284232183655938919226912405086264584903935558343043785579769649699466366347269846329054405651450151131248102994882534596913806144766517492959429311176538374585534490408648965309002748150919804360929690013465385263205382484097127210107963578146211200532943938124474048720716909059171970734280066209345836576838021867116399845522930774377735645709899090951588369301651260700844476422489686465715145485387576616788767870882000812834321969804007392061567092391067887573889385110323523938637701177719851717171304792230618057620686661057701919899545097578633544625185476521038022741183788804225324703639341794317986853554840765743354467318985192931358298722884182752220129387903216340757222054271395110014464433499291253731465242674344249896945705224137732687257073886361377917072493350050450277282511911281466248171522074729488730776199205230086334158635820326217515588768022948699468533152982638637520747931754969898549271458469138155377334129610278061306616501890995029969794272273202092139129504552703349199749876515006619404260132039107898231144761686803555308322345044553667024769115083623539314682739167040489978471070132303098499050818275001527910571274923924748781939233993365825786918330230875225293246305858206211606510484358506700643140558916545596379059345920705232931930662806736892979979006655347205694476416143881929042976442712365837640473676921161329852232466845925581919389522814764163699303465083193636334064121125640977399666855856165478905678240994528610046703039805049440618356220865170499558541141500067759037673038111116655680027322612770982153103710091531611106071331901069685675750601602747319555858969558698679513385616457897290393978563956336814624021852570820724135277937631225350946468367531330942037689310242206040114066186779001171932151640801440018714230063924754649057352683099434620814011753501625760523951252712428564033984465181840006309711265752458570571469259245087754311140229802066728865453817681096541483063131444884172674658793716121378548851294959922544963364911110841576454886813957033362440530642487838785261701336485854270635286398259232470190553404429362777666841110005511118644902243613523909513152562612356699641845882559027689954272510228772938694810641150612487698669836239470582774006005055358950445658532061951899445565268766792531776967225164039438114069232827814633133351630023489708125344874890383337158154719897910497185372653989138447074925394997275706256663873631255776067785986610618029443928276889690268547944992421898018664176693559527479654894466601823940703549196995639074411795954247075519050700671454091335912423249877258582876750652024042845974965142070177838648633207852631749012345918211338392063863639516039365882779789922172379994131430820992577942214679154697793745935269984956892740106230831228320811615377346992420669007692981370404728891619538866218173204688924080389809081954218199554787194384843486613819565539849310716309650020351572973511374899861874237523873206732734351034442687485882248254723308981137611115796527687530461902512831060319500363885163726662306747394221246878441432047161080199458160688319551939524112975789514998775502136353246046009385718624659720326175808421339149384127255411015220640621869359993428355500830981257345840323069428878974518633847515781470472807105135701684851530603286890152050103268717008853841391088829737819918944111074190039752113215049309705662050738306580613549659246776862167880723274887497196245348822034113297820241638911987378196467602025055143082949844344330139090719211820960913327836500741003499396704653963976839297667616443642066089307771597742513059848250251236442023825555783292337364796067777495534902452287573076867316442677853742945738239143536703945986279428711406562326763329606156268232109389297232767341542720980880719768332571568279935891114061344857311317226812426342925862887423396838678666493873222871342803239554602399524797752164717724694588935840680935134081691931872401471974673515945304546458388573040474825925431759904816687909582890761640392493870054359692623215786735202027914539978481311233346514006432995928403675999504538508102050414771212318659931340802557794248375752989127696649013183294869935086063399106729026831228129994032262203454555296891923130719711262199071173891110466909260266016680520837810968266038668598856179476453220752936882493533261556981247547826234162026526691990868121856228192650315851887422047072099197144112150187343361049191401004315104520315186376735020254028338365415024620965104536262603829893759136481473577339505808360849993265038654654487193127954064831418836335823147766027707478088293931357320943892782999739209148522600452624764734588047501139188824754064942374968958186341179500723274930720777899121915386118460755345431564995052570760603110946106147001478934529478621756292664640706373218609659222804266892142012477285305130432219531009954439969473611614707565000188549003657033207246026260235553199563243959094000103583988853372534329774262431202043322365279847443767012401529601066639411906863385303023057683803848627399105615049094010671321948871080365813172370575446229191035361706489044656112740600052973153777125759954518571498472602420360666015226473380788459518699505193735315080289792392132558970033513250126079837293617831066739648501753224656994784377063264088875171815486684757718510015652705416228241880733681719531540406526919729093067180489738398901238182422091370814548428966281101012412176733806810645767477738366573948081714346453793754980899891071238792518763522422589137132232088221999832133662844786635344205261075303757774061223430210476823204503091545820572271254220426577756789062491866328250129125350661580576032641654179211071392670201580475679350824968493235190839533267345751527689845136889540383237864164380131007734282695995982775341191337924079483210075849979937191516135115577467373471194303203325697513220783212060745840482493354972569791035481852680858510697746724901105254755713637100666147102370692026163822064569242553667025372291092399226815056586288214513081974934935126203362897679838627286407803232316624430883820523285516714882446567198113787278705515054659095090532448226171809524693720909437754824672740374447593223288160256774047375547788047306711098313193569527748194834609999666807788571353569255993567634857221630227026722384385358401820510386582481961573958167794648570055137853694632551666623793762528737659293855789021242126687207500734691117023569229330281014467507867379015518253914390407823694784219447987662701660221425360939709218599812454489802590132081828596125151270109404536030588634838101239111916013226813376167614919946353143131336280529045631351350508460512616429820172166283962199764676086997626864725505837195202210335936297473485061906593754609841457521744492293529055184257041404221252433441718968679697584057467048338235966309680125540472159960972212385269443922278421385156942678563614425294830039521755870403510487848133076445888893723201965887535685279938541350274078266647165637290520651268938873228482217775354880065896414685984353998697143250095440328094965440946154697337107333478196755102946586915222795547898503233868050450675065154984506669871517298694448449600706403240634661296235174075483395375746672218415844504187784047280709270152657808352403981357682507312184329481088542182899309334386868341835106866046160328186207013672886097934532805089808044313571648718902510451182405870541682007568940659711256962979020219216582013877081957944657456715201949589272973232343611890327152078581436428560917268121708718475121166431445802494311218887647529750508450329528325925901829646685910407318690168527910002698489872976817119998187499172934134248881742881343953654833247002618150850650827113468541994777037522505243714405105353869730189468246282280784312223596095186738495036137586412416267342687499702535213757078174055547061763015472641324558182558309583949354856240202878195820644441366499735436167797171439642218182743843038900130168931036142115847730262946658131090684155027552266677885701483584227273612260304605129162544459764675434965002737153363213226998875563170293048660069927911236175990038109279123555902241169707002247347758498489469702278455510486801908850658389125913704906399550528332658467606457378315367067218729422677392319675220527925819882750848675565483147426546734919181825074614660561147847073591196199119171322215892542587182458022808536187376737704806588328365949237982730563921155295513501724314326451439275220456612029744701820287130551796106128273367728843432796456887282663969946279065846714465763170412721099707326825408516835864862981399461742314079192760683158381853200728652138428048758773228674488612522931270850547754660168103758936125774384167145477632293906999878023510859454380734485613671733383693977328391462937012679275384496028115210764551068097859827792474079360992724496791021671456479260563771998982179154166861561603892838119674684421904895139167816408795564636166880217019507235098973041166635599777360266924292745462473040339004548415585748804907671929945585290061541787942552614585436032141097933407944607725612346225011561652618614271855071181688004118921327859681213493962088154345713673684416538246888927405076793563596711541182654129893659495802843966222326826888138119343924911449119561433843359487323684119799347139046600880282943765584962390233984874669885956867689096909511344193032446434728499906807760688414504087555700918711039484827038211008114122049971682838281698077158262746399430313583796779505603782927074934942192705361251573587267102779767492445178025904303697976598409315308573018208170931210225495022285565084487554679245858094001493748804029457915472096962764534283784321175435139402134691706927207769272181945004259261306909139996936495351902438850308801745887420229291151261232260115138123678894942069776688950505880566644981747901497739843257061618600680359379123550727685000218072789992606081695393953915647760098985993119606810161457239921938641455663961493917957350098555717773436392439959957701893002679665262344329093580843754067363516882430288100260950448091712000357386640855267784546454921316428623255130111289936383246190426061104264747895754187013142984251482749554661971947751040280863460430244517993850813694647351517521503652501402310530066891351393376824613581770963121354026617571319040654981003030398275850407971589429639145366511286033224589803956394043969780460511913110927985039174816745415471688168274393386339968497094737809620089345378743883578468489876479289830415634866397191766936284437200915147326676172143888086295684112761183273022485300944522093611336106043177049734536810628732561025669369502113470471147754307853881538818320129438224671359471985421893829561058434427443734524041676672537132939180231490327540787903642544456330179796692251230012841251624224160834655253906063809757700464573252724460237480864427860202006227214828870652022117319537882407380956975898540014295568977666416653668988984320935287835094052830731235609862975581449723699339265211273267768918078748076774236504775847710627886254920945845854926187188224923851763336658172712206223508095017877204480008389305733132316664372725886708516851999651152745686336732243867679117349180110237984336020761101002749205028365096342532176981000361839637199215253018292404317161656704415676743923397205758762199820174367502243272448768221186955272893646049855544014119693606900743369403413490319155764033475559916882630934279088083470250451118474028558419381120907507008429662668818023504438695128724924499150531240325161160088366335596702531073992084561104398353245838193740171816622769628671653684710226074624573621352417743720517172053853785811465580280413394789900500683419680839929209467873729941465770815149513732108542065770768772718988396801343956072268090993986376516620232803246143262681920414960186402808587401092828323128844686419043897093204158699307501284825736894992387190029665949707222130598720534898702470013570178998966996875809220519275784951933527120590683240361069972156467269429847586003726948051353696761072980629578883186134765860943168552598797760314892899028588164595068656878273825468542936719722299084905725078647621764101053078039813536663342462046803056756395346264781464506128136255372183860194328891858550789672677971145592189872537212117382700786551681633719018667333504372883949813377789326484898969578330453073623590861650080795095023214300803754582634359693824004376310217264798104541946707395945134895346400726478144358954611397990262581278234628062567066729936649855279261680502935375221825460568156540358002291799894920873325382422395707058028483009818907106211410588585386271705634992156771445778225920651273297963985834276901673818192334992539948694358765191615763773775659647495426262515292403974665299210942987900520382805131326848533796708251346833210904604976091904316774733640486778716662448188833688982805985963886000472167586424208059787265914339999662066089155376513173316758249991242792919175267427387839370026331632393734831772504963915268315314473928674502628202803801458391665027321375630084410362502778674361781607947325729598725129702369971752521131331936352901337865454377148260925500049788612172162141007558041342890022717810600812908559809304026861658038708300580932148896586316544236899740472391897804903412763783303362705653663598685750404528041696774153653825690227076117383939787118009270904496883616826706073280273814569610870761891964742692763625832769566316090495342527058805997070582237241244718748309084424899857388476384936217965603986263330294037546113775575690795952515167901388992555402582620700513992517192983013398481129039254730809656888245863746519619764674582697150925358043665420569945857652741139317750343806399729106451855676071734106767608677890409552425407971402265056430618343762644070835291846294540309540045331331055382121079540861709120243444547556255831867286818684874932881625736117544253871256722046730982794685312738029441534555242755464934748642249765560023354722670581854367955024266301761771019089745120195739171652271028732454135975894590381835925050914912855654769362803017645734307056160883775122483454169961501037039468741545066820462142258634621280229569128565240943568750506595201079882701984715486475015192273353632575589317286713075660746508114107904371332583674140697665903324699630077192775407055491614395128080340639715547588986207259249570464491911249127251326398678189912969110696913840618568890125694369040614032080182367615002454483385927291513478506599059889464319522358063909935437619541713260204173627261472216832128684157031980355671823352151157713909621473129362501204214952593822702382863796565881563123423366372835151219534135630703165861465295272769683433363147644369876752463935642422510173586804150919245721111687609499619376149693755503923772040596248441845049407607051637231331852948199423330784109617935334154729463153214637270665818722635799950127048105896924849881177951826503673814324746478549420613654736568979366036530349230962738616793683151857970359956190454801822177401512635388029364263538155933793260867808664659772321812290193115283008271677297598644041786434602644807323461957700076443262838719465927678457505307921555357239711763210103829614857361106216664972732602709359446755901727878856067040718380426670558186486313521121886008925549075114923483756228333403002637849723526104241789831435800794121939004359909212481863894650663917134588330546063417293192980286866995788068265015954298985224935115301273490155596329223313936733444793119415166407634199342659179065839583621524170237375272013074529196984888881576582449416646770678252643574414813456982394924473561292779048223369026357430585223136938510993424831282209873252483929832856066837970598147012080588065954721987007950162687225426892292617247776438721847839207855043155568194863754521901780211257054240201473660216694428252577687184343546798397674392459550072099400275668866235051457975179969350491688168599227815897475880104141858815571878308862720835851147426615743575868135244506243096866279540047922302406589733595155661659006981276740130131169561140977393304305966322388871188087055868665728035027719332239554968078814002544213996923303818932855100181926894113139219932602960101020058822984988199981244650132914937633397467677156076120853232371888436164438970928795480937782399368716173231203329998782813432682021435724568180013206925574453537149366043148056750814250182397022461309079676399703127363142047682836718003895337291270107388736094924314694284243287151613521650006385652711530032122159930394357335139813975458426269330788407473653448425693202573288936152309864186946131752277509864308460847493040245938472534756577698776337410252051737704433595978205504640473009232386833987230036446726037460661740233851702326829023749110692915259718378714909793327909203446751511173930968671487188653265256547428230710717744164005570448896556272426949823472389016356680536062823787553655730773485407453067061226350326800399500933677778653141018741550256780080962614177772688708866948688309562961352561412838486746888371659794923851620817799283961218706976370457498486827038636485769118405644416724775801194611824872166923742830862432886842938068983861708860358443795467377518265623995605143049713343923432201459765731448523250774531715170674858095944244808281423778336732935367686268649904836303899611972672594925972170532269785110127401468499547965057815947611270735728197244580571056248487725234405976673053223172582482000311300233792975718214158473895020157528026207264307542500950320611809547086995294970383698762344658620170214936387520421904387412339838125940490832015545856976968799763230244852399352260678047601015201490066022914400172377366050947329778339858885727408123491960499587963084384319448424914333082215751165795716862871273998571876901765499160934746004932856600193878065721817744432985966571165341106430753875684597963261919956134511448090139107509282519234581940535499561249006952130704319831008986386181361786522271571881125625322055198301276211826507589738805645129829671838953831998989068112122209089548399110171592250884643326084636976194619109912414574324717222003374439553807922586388059994722783059893149340343121589873253569575101076873816312778561585807230393333997098838509753353699291951676255275297202385802391557102102473145201615983860605700838485445115266426712409692608246363719139758567637335026936490769733834462923588156842140623535888258975520975051212015409999554016067983300937271247137045972447375614492971188001878232491455383363809253064225834771553677315401098423762488077145373062327709688875116962637835370080437485173809944877757799878874367946892917694266207092763543304013830347500387283107639491419134202822487790850367696418326534224958027474668776181106793882737406290152461833096339292464002816583471182098373015293823777712820287058416176312061555641840691837125559616603298435292976346518239245632658439822037733247129206666916377132362070888595871314205989962359356195758977252210688358001602893792367181187081389648606856070819818655740008356461789720021175070040975605277924183264751523588058537494628210195869378074553863053555555433710752603925361275345270615323411817441482042671448682238380116155865449297067170313254544512439136636228851854603622987194109474424265509011533805271333803653233857937386335548551903316441103021421514038434401795670222583246696123576819967515735301798449144740498524983070660669849362943527842716189400306631229563451785640690276910436795570150005329045313280272674739015332367132149733173031192197103781041998866856972001301187454022250760345098381313486092487996735996521317367817402301193992109972191089731118276961985881714405218151492741657742944832246578789392393059175206398208944081594017513202484407140028898550865024654692943451064719987105911435793399170324005057994824599638474400961838289901319129312777387325283653807519892957612439448414575405453665814737091714896830246699772585835263338387750783303515637286975547469848998414507781537986505758290901053422068626551287348837613406615977909482593873544884881744619773973018283327914741250060975763220932905246396616844281386443670523356005783305909465435811326010801050381229007631428906368340946257966486675421063647260264474604622300812162343826218951692554703900845695982955486406985179124075449906949034202175171622166188681566169325938452746588778567848781035818691322464841681654542796177207907592371572912444927225073649148319097316393668906568156203628165058827770406917240695435296604288055166784546150246552536216273906126590574208607524799945427702675057418089387416442559660011809467188230255793468536849067273745410419533273834695484895219534381289808638010905226111252186880974412745193609116047443988736748546743059429501050156568494113123606903081236527646277755740867244121836115340686515967158038782080914298575897489837797610480628547519894183167419947499431335910844992767931334352829149456614984173931502900616211782995374490463529402860156754004557245321702507165964146039023441867336705102721282342014029366446393636770674541987482403994954795343905732310350459192870514711529543878361795458014010953623519257591949889267893600801750908054616611122134523970771004854056103260339098978849049552269998722835163866857552866889738861473777899158421949118475409517537047317005912230143221433385978107076512157680921093542686823826260796947907588000712390521778113003684501827686488133144190639916512636134900978405552588303704958576365057781948833109820562720961102718536641203870151286037047032752736408516050460650723967080433316843167761555312596813232202497786674173294615792466415645679762740222418828896829250951702400384124292140632655562661781557363143575219898879374432910556471246004325806180246584001656568545133044817062262946675734052124274047249789879531460255271861299962847786007662918010893002083762263168176280467008800162398200051124921598761293322702654189329749642186165283012223013146945479530382398052343148593767925318364558750309459277440013829186354157749169900322247126654005825758837855443784179853862456689365061257616664702712574331769902598244925887712618832967670194505558231339075962173582754945755914586994942773328045351031145134159393910207190740237142887803513598843119942481660028101157896101267168608811589949329273985575300141783432984389428191905106004863418498956246655695923637601886206843582270839349531369941110318636616307796621821789856060037414793472227962687288797658877786536018941467415225528533470666785971301782471529635917950599380977395973876104425211777455632049882887319481058647271317989569338189765241273995034180563605937738258371499099544844821852510141820893566767628064832774679690867572250222574019557062528524910327732275426159868235379591070367524738687926519418855063705328930758070628724850329548378307313536576597021342782886693773059734361054912221240447789085803585171180524709838556245507844148321243857420964549115356889610428458529394580218834053005899652581627508528091153253657836087844774373375245200131675300946720113923955331253287108349392224725673198343775236488466871318283145435356118427425124783582844042747959505841578680821814140564232256470852746653612069274580416881417564484174231349236358772626199371849604639330439710166307633805347838734827507013499420365115528045753614891240301464673827877799447200942147959989575434814876800489411125155109721567547625253760454871606088589194862290330914996306213575998286194370248525779206008080373895467545122965063520489921667453672132812946775286261126134262931462557368703553032169785848668074342530680086702883310058673819469021379248005822880004209309925904890620429855738684394116018173883520737569715592535571873666689160623702633239589956391100907555498734614370928748686494914427891634517510443077843177041182381760423767394875271799631362658104891204532769864554265765032715858786248114740134278982765960823516594947009704170547127872324558891088816032898970050112749306627984409927370492064134147190512821293516407919264487685406537870299474446035962170840256420081605259404315416235764415308761544731214333355093969519792198201315680866714220732351189064191244208126535888774978122857383898855835493178841455518215354111311145618859547351445997653447882693301129444509794956695609146537229279784751925028379354386772341828233780651382167648479764079990600275915740374121765513499485675935526231172021242059422456091187303178512158268581919582855331350107663067241353481275435302529582634704425318882719884325641604151656689323489420322774277333142056417259732047543195034865315674761334684187027692660316023992188870687472160793486293125115716789368055749048833989721953970076920355357808147033356404337618266041558718278014615127127054499285555529559777317265292948425384417205371930076369475868988853342704281798916851455215107634487728293352187624460232916715333898161755295430889017871804185598744740021832535507267670008467653118307567739360563460149232267155175785062866073385278558489281338602514426969981534505050083147416112758879113729870063394434882781687886515901221794743394987996498288379365096730081693217834064560233664493382762539503495874214965850901282123188744225668988498421588797946990374502810303066139364712974119085147594217014798607030650078142679078525072580354187862254573106648808754680995547370148511443621930613398456412144349619080515402777406910927332896192543044371247315537683560470342956022300120663439611785923984087415484873181934471688709468678939103238831783753503414215895885368694158196686915543819318662391156552108027368004650314513308384913238968370417875395178929059259413320246152106091107934183264831756863151927832218459870194483986772031223903521868947900963420679819460810462557216725953382243936759113421307578647008406230402283999239635353971950522047457843010374467627264791082501375970139930795988568186443300744618450479310231762364067942981927776787876558199841203396818834020873554391624201106524835245746317578233469641501618979288560321667600255306960063994088593797337531301891307413651928527363428102335765111511643440595792970827527033919724923159859857537001353477475564156024112679020542211254490399013686596565332447013642615779972562798355525611658458955552904508113474238962617230725008197456779918578656964820828832472059731119226403401909935799500173106392479761992242605248251134864463547578708297293976265798680524788365577954110336631517262685621972116047790254595327161758023709507145327797168555679534305586132074794291494620924988026237232358839216286167501674210289426969246451358946303011705577956422377781045835822017437568002467421539710457346104845555821623915135138010531072040832271402290812625455789490537398123110329675148031760514599909624707185121630250176091730586451315363793669264345864469985553541447420011224501135361398170160269440914014442946533065354763821277055146124759080906888854301063933523137154192149483947879951886257324447404754087088608641326077326134594133778754578289404822293853815117767883804091670619669867177278747110435533596802420207613477210315686540895487485530522675704620722445922316393688535117808019427166288009107756334219884085528936146312336111898584089987187907238245343044929340159369347189463981403717769402559547920360121242899558259969008456454095872745183865218161088399409539389158618752364477000578565473581222958209799443022323543258463777289244411673919291502439463367569350860992481310129963579654171448653218249000532803744965920175582556070947301599585961600131314491319860391210589297577031640385979535646844366489748866019628606665312964883713474483684782791871077638613439710758799667750662613246882473328992080462216704562285884502084355985134285211443435364747446414894219961350636364585542646023727951897143146369937106857701721691699089035728454772841040489666859242111354517518901246191864251271828536377865145738941994031480826620408124962133178319608671224835015128102738548301678083667497109854417027976763195369785935535519042036533937661471140882230421109742005207955158285276445091158886637998618619439807699068268502697893542377990614140386088718711635568354516699854379105989843028701052008211639679434319228707888383091163180553567741640575498862695649362973833863628534400990026207438417238829405863673015428537709956342744332122743817662143905314669545153322482131307427964960255226582045752246361753578738855864417234916209163365468527106460324537079377353331781869968888812557575669637884077753739614816749801433655848548437802458728139351992922927329866338419031232597372624146170327134934721608175635633872968937935331453947221050786146084596207652642695724685419136751215685540910882660460313814072037597709242772137126236875843643560843717429165589803013386883814921204880976231452281188486925973884892495630957349920651554730753284684966292507887383351320715172454927405764952560723030484142346637517708542875486352227236263017426640729943583511621229237972990463583051341072049233796724923155392023145736780633406758658599865046709285339349258254623500335271153365712600297760850471809892591033475401199081585887376349388577594392011015956396802748317273426464906424197930073449582408160374148684404193501863802848005813161816485156918547306759750467431108340070730735293047718608994998695640168775536233129261813679171837048080995672645708694751442835868203765951328039089869182891741890645781116733880885345002273119232031041345260196320056830292769465214504694810117666536333249116891112522875693583642426248426243073685497320662933469377019533194647506089506880807753477165667923660670845109063697141159379254634840364117216540585563125685029408972945752782542353254931612106690245281626919357906544718234195334972410467584648840706320025347109194150547802788498687353334473499704905545841858253283216797392513688001782581666388361154511204353582264871017678160585055431879268592455933543923792816598240954253995595276380099924101888885917730423982758091092260943525457980725774029329115617162191624684372946126036669393693860900267677951942585339113875538005188918616425576684849324769629475483890081839623833350368373116562041562431697077126143311989124370478690920769233917724368930131144306556222792453741260271673667541183056199279183036567620700212860856362483646580112450228197890583631569022818351818889099246493118617774096323463696661205612241463543823945801758286528413674978581363916655149743451964592726396715972838964575025927475681629268087346028994492822005111125127749074307532688199756323643552015033690638938125399645937416177410145769040375793906002782640652737927582875694178794705645970765910488635152374544525124857929529440516627556874509147261158111708708490400207537744269230975313389540996833749766620384369178117577450979673523577312992002314045115035678099450757417381089753176116757256018052437861116040790398827363963657004165670192717252432879749166285766653644621310625289067863624028065025173937967996921616986344423484400775174184960471982954020022282000188929838117048469165000460345472390575602739068136371852369675894140428619433107133034498968794751911638282144864335254413244585137674349929344087744131868234711624013162180243952193639720409977219316694897375380320864646544831703464862562595158482757109535076065973918625616912917879268247929394105825508693002482919851429121456358003448437078685960237796598638641413202017047059390833423993248597609363099992954190476672578317063082173757739720099492617487264826932666905627787011458665562912816459156713549086921086154770667872474121895037973109204557263977811649263014531942674939413602815015080150739173846471137761970123425018798521927597878393676048221807358748757457015529699432277130007934588217082588136449229088578011874198944859949777865443686533564175807102308305764214197196694428952158659296343652588596228177622674706425392959660890060605236926632788819168452812416680208494937757859088302182238784995970596502165638091993567086305654202033047384418686670981881623859765802792511416462438452592220449020240480222087284086947728615331959545492899175498306222739971510136280579560697390735895264167515025836616676332029556112476866071084707536915919003019687287188143613378795555129252918853568052686785973771212504923252000099939998630769488912919431159694161638064212068740579888451703581315523571522375503967896118806967958156257673535068454486798227691071565616245571085298810640359839173737567266708041236857806618018345954082997644506393013272193898923940786725287397988858976274936520825817222949571404540369617901769792358700000285836325617969892911300871133880008688467900860744719831593335344652793865471267151835950692278333006543571124858257030789296893166924488691505366663485307239478766057295964056106192035967457384066689237874084036999054979938125993385069531267903870413709293280938650945861147439956371643467052805969039247936908983496977152454741857247185997769117176779256106090123234295319175216207587832082535357332752278830258061243128185039750637968764328708430012216128432003303342747417055157728494933131635359754893796312588491838470848250007472478011075368883467998462481139930641945166491740511037451015434308673191192746745372059479630211006269639585529392179987167457975704462076182153663135188324288066882802618269384004468534263968926554238415972265352440428253303266627093799092433534300492771452967572049530917998049290038599729702807628434902042715736405346042962995014915204647332986206574417118923069437244885261591996510972158994152783669535111157809974929582948075796317974720309610333465413848732860265158397334116274412423137199301551665687554561275529489624419576765230867498294696658635469529032825572744495745378907185327009788781760759427508047282680541107426390824907897842526689079180410180171167559065778043990789226567857419923148866136591803819738073584877585046334896351992190570794997152886094197337091855020581134832609515112379348576160362071325869263727599797677404184365963866862660485508289923017713916070203899036887717415672512842285938763854820469565791608408693481122607461897089018866425569966714473615315127116820129315161697400850023534974245339210240343868921461341789900074255165665199195237042317651402390822190655507671268645355935760976837763824031899789328779368329691063642530945841887043934354048004814322112889790128716183841336808572980680966048143289477892823932133598858814086667824316861931109768955108545392766731583998124492206709178873750841616848965233899235269023833085530458228018607232693780068785643370871027115257500674067905941781756613208410040290158768663157402195231572340924690282298477417990963083369746293901783325355279109582466560872298289596151976467582590090566178671598821339076878371355365235539615173546540227676556543154908421558618339794030314179294975886074502000844274116485025445131870084698497340762024945696389309673541824085504081497136186631583862059819723165889613278414641830044326292628919581601967666113990469963185374943793530206600461216133777393292818399388293267602849717877672274925359631877575729013368920304648240888613141006428093497766975653190189479867191037902184799768352892655798859160371343894901604725409067937161742076634690543651557552831011451197961025650122425840358780342447741152052070403701725374706606559595074443709729264613196864142788228008052177634464720738858704138038374232759125846264776712998758001450394395134716535197637157444592566026770801348094481479005115613705571294302598399237978018869923663881195519701474326186493819900702098546279301027561837672043498489262459714258511589628568723445969401852062386305833147973544004423198612173483126571050519852756678019812160282999592430294775256009961769485581278562001060397707743595983668172939510384321862722438850828682874444095127365136469797925943571014107481328941517036841140634628356432195560325516762622669214287669561286515254759628058619248511378551454753007647892550021440345344334301955142225793275548625690201891550215718227862814526176305437294984406634696126955664496039052387148519715879695803472923768362891622351319232474453587507733751214781069875245870971984649125525826599417282520316861329714286093635245233172717226351882424567478159645551247496206612653226696222122690250689736276151265724861367114153156130606335090596246659300843637617867105633494217786545209810709405237942713734995553115456742999579848251804293397490839834263544769064405423249491469359186967613679908524015947882398841815142623333181730631013911671783155846385257284414428543640069808916162369798779615944653948124110901192048977739753777854110149355638274167829138018650628508044124558130358895711442574240970433795540355457739503130221938268264576352393968174426184444775321652516516910090566220789964090496938264551692685567022133965506958608526994352916111782368419644512683884657480245141270463964617879476669014206553239748209750748110625309135324754657619168057781105562906374272450802509376373998524828960947544642971421672195807152976429919963602120118278553192545450646695351507915282435604653339057921844745200027623643379702215062895958450195055368914257327100324117884996765267045431290469924722849029796603507013532011800892666341103231616784096028888006661140477249805658163275728853734314376848346535652477041164519000271699761014426599577281634159431014756606402943081519430361477054395956396730863445390067499612027367819371321510811859730252753610699621263547894802265774774840948639619605816638312728746332375737605245579964991342096921565397799066104522629696391770655207616440284806652659371944726211147157729602763823819528645258523608723360248475335208814697940385059888012777832967429068212786044087873699660072330587863393183718357588672918133104307814592888032839446265855678580745435825915003974510323787375947750338419386307630402718696129434465013706608748040252957340220740740542801001787482578984159379664714150266375790599451491741165098437454793053832747044614715594345930084819589349265017719267736679638260110397601291281981624029248899481600545402390236749777523410600469094423621511317674512331254185432833576825025439493262924723092491441153124709412250676220453029339210904321003111005639541628775944149687301782690801136612349204961151914762814796952317049469411639430453443333361303665168197671227916875561536192720902528996185634934987997326726085067982935443564126388583138537240767698784667319773931938799968844149255568270454000337228733868855477882231276760562308926292856198977428155990920889245827496525126669113730604190237639834706285017017647374928764380276248494450415349076619226052518144754704658807250025855103326112007359587122980913223268078396057994383867531395450281464999389630238963585871234762296744709406805158463330028947616521842402202306344399955463150918284242655339844050031026706351411884296172062158179678356384818331382456197551138594922717218562101082387544533689936490210278228633029477044098054991603741506397957960558923132745421418484669815100432867664342638710022843379661608982615280402717696885597910378537505890132766652610488928746993379678625385091538157510397424202438436651834836811432490633778166409367707472450613009456410524625568587274126914132401924557064571783442590763150401397946884161053792686934360492100406088842180209098237783927039292029350641130071589325263945188378991309687241589928494211576426942132490245510105418253352823171009385355786573275127894991379638391540504243994869885649494487696330714012524448217604334283539881891854597118260007936341151102535353510763754222810234152432365642394700145232859204153124108652396658831336634368443906956809738924756652528216330838442130896351558839329938862152070162262687952591640587167010747508918307380916633966038102922924614013870977119726684032636363195456991727102418855286501503618636108986214330735988323455286936909907383950617624750997404793104798249507970505335089973048689244820087030142259290796904906303627622698815043273739832992791594573746777870155405454991678586971487461881845527762842379579886345215836665928719915275151974577354315782953565373890040633332451556712075540864133708042756330794726842229498068134847636773453809229047294052272691756356928391468152506247886821596270810731075610107345149453306299713413343199780315274004737643014984158334097572421290909969285337423185761049386228289791077438037085695419740531630713020115577059771538414095922342039587561942528945735329545640589836936563984673737040072466845356554083266855902792638485987242038932519136357148915088560667874904375973344652906358173768964485821494379305470824854390938187710440168212394650737604589107925104258652195473380882696377991784492475624002037556770513426315083550267352861766365214497628805465031691157375756840512937301755882796223134377333664609062108858048490761649071993205322367704812474334528507841530254881620872155728171473072012677764464923604971803131920505804419433362073075728962501251087152023696294004637345382807474896868792114217907287668998021795387440223368967803298508935576410251231681207789425299114882036371164248581863100277604093524041631542659415936808822042790361401370445047384463132008368192066859165473424155907711617479517812672553269649711773445220050095719950670171701726610101265390080305029220568148506346686733283792915348054994448680047466934945360656029701770634373514449585084109326013979638150850484867159863160703803993560919891365525832619144967867742651168326032140847977087413683873988081625135607973481384571255657111950640514480014482637361395605780209693448867675554204636486634529726161775013263047562540027336845546409641197831891383410674888906820205117758716884202568378606019298245181476347945218289640805578433772421995346517756080601799354791460207624838171285894516104262339873937017698064226202272462332225573795145447462227927437923853017619650866445875591755697304174765672583504825940639642364012947096347243732822042644349042131833048407745067896949980849162227136009089173983089163600382948986015707118006172812493827426599000869500020917189983731521797498135939741068008265157162896423076994941615256813819649912963823245929617635826043921345277075571374125296253334720619416101484553846466777446989127443061452460761662613549094718887779979399585602724139044915664577978681685584822963308376027367982457985659121960843182133715278296345716850752274461298729267593505666703924900667298877883713856119713119181935064737466782531903891866062011299243948052560458156888585529606714124709721366359157395668161855704289884500772833878920515849142510740272741709109616175359961280624282377464735636122055440978488205337996625896169339953448823544487196816354843189607661516387390059468503357776646767421589477606148744343218558816468258878502875746532568800848205346859433874404099314194577349225368385938434189443589170374393162535818304077864797791993448792016773559187592134780497014339516960703873656355298480060405109484314055492351034487558908099191910210319257427802643008370046331415422804725324224550707287596838129595171449990965463336249312326460690377355364304235158043494576712986988634794528044396717546561948320375810012500292665293448812826220042147161630983346549529600865703179565117417261352749801047740184312470139494953791641493620364256828611920990640852603659531923386806416595161574813607331751481773070659905993219070663386368481360301619578241378055454253395191648710666898889208380734689248384178667707032572276306401415971531556955728589935118378127850249237328835081615748216808721971028627943270006862140911241500612910743724586367619416783514027644632782365473716774674841751940878186656395806202211172147759138039690493347182076959561262999389774293431074971130789410717358179801856891197361585572440254298297359589482766782474165602484786612462732323040476382417299494303126796237468657273004604369480567192871481484413834858061204842968235918201938842687403568015744741279185471679336747987816064670320232488626199346715347826039305136102997820491252590785322245060641999399257760294577737220589176367009762441683800316194510502595737181389591046263370416100244813044086332463940243092038309471693831136540736445603337014102001287630127495907233313010173550918953130412175802288417080631303961853032081519797889518007385550871311850272076408818409512365874440742426367922854702918337966373179266589260106748755904543512720423336480203639778402160127281394504132630158844359333941291428141180481539358511705834304350990974542022252546165205098969339586287990811745826133592215476794662183556990343479411426030929072339626440533889563063607125838368675416299840715919630167891255395008287691473403852658560195333404975319732989680509020367279677894466300751862929783557411171508747325183272517887803989267872985642546411916873997620566336096746844313678607069242126211599963216041939563096791327016309281624477885289264690393851436422305206030031464732425693007006970050012384291928877190865606333094487225700313219406561048876129272079092749723758111450416592044831259237245707060645439878013479312886343050625058191445849723004027697915571396188565200467160598612535058288903919311020270198236043316624699475913824661729352125587234091357948077422752714982160248400142029139391862775248546164510301874033876391391071903220892598037770309027061734888184294506037931876745526619627236691226711666449649295195826954714776998898208146245460076248114689842212298874577922068786398603612415556254328839356607207657727605760917017000587501829756414700709041955403092418514322150136920926316773981548542706692681771510281516135116853981812444846121291236689248943061371001663712496166468107878258552236251091416319440353380266748554838537595668355772686629422838196616142443278490878855107006367670935929909178193353529195389621717842271795638373768214912558449332007737696552982220079249255403406735159083121735422206062744830803049354715207225545425627795350412051060951506495183623057216893846070587342306161374938993666833497841984632820608138755523824435084149778356016994580623124554320417239894119110256592041041002783900807613848712327871422317645957004378787398031771717867522642216556130262000136297387880445019499198168263241969625628951547423698206826567449891075289781937855249083534074888196215367758342859548509563791998848957842300959548108652231394848888751778965172190881030789040878014326370917159095218462975235346087554229407018469009708443447376780299927608305996033298474739094906523128093037580063450801558715663656036047061007791940874870050583765567847360655162977736341641327639183177032485698302832984254926556621572403852413259462603986557636986473793227729856225701414590173768880144410452869782996844942120041931003201712855293318705954539779790047016123379136946473582571447187197044544175170516841346593027042928594668668278173329324321161145890103124558921620709426508035738022223437100996571488377436120268852210044092763689271994952225396406112487906244346349208519826235679531512193201641900755621326116923782981924540562035861031597885075781681965308255782225745334546949563018142739364845244664870111372816142888104746170331121119308912052846307656165715902967800428224977572639963912176917548853917250573079231728272436530386127386138447269808772131087508440180350178733353030485467923184732936989918591475940058470869400765876727500784260579091722693684455102946911522799689876890040416256294238106105149140765672905058699353711146895637965494833457498548044746441285365138503737356783224348281143784647220137297552298789895619552279465814937141906638566499455546534697607697337490047243561511804729909118193435442841352543265104545973083713617948007668896369977548929032851468371607577991867257707897344702618552056302878070198254090768766399342162403516687464715969028714462910968168226499796289074469066753228146344913854494152654787569322487221720522757095296206962780957978363093094288319432160524447057663478774429287913150416992204712192994518045448235023545358521757626774970454706656257437932987087826716802472770746883854164675575800147146317619224702708816125047758110762853202403655123620560872650026537393097692209677266137253382692478982219003294518585137016231327755503198998095356977185772811506874288320015176575689831073536973704510553851142242157171010481103870584646976685576270725240041169286984505355038833478133927709855432195477935265012396941911640733607423174150523471479613068608399210062451592208289691805166906901571370792647961306089769638801591734136402103396467937215127660378156903056543930634336721813228453750173444151786904891881087897651637484029769150433371811248207395129924324849348943289905926596234950662013429899263868140767663929867588506426532171939927732904206618200407381357948193144216271684566844165455264899028218539678745031534628376735412943616749446290046659221486555342156988357918813231353365184921574204098662078792329449298932169825478166076657776166378216855870073312338055162870086874136680480580653685331578895542770052850236855743318395188627245769998082089150144698938364298392372033038076264168294601680175112836482276381320844132276043461443857568413906729029190749561218354724088530039921175639851043099195737846454012889541671327159948294671579756053146686710168758108749881640814241451483766623914202320783218284301929486578602399461546188644320339572062020720591102850129352821952724221824710597342443316077562255179645207880878373626927883629879256900565469318460949437015233936726928736071507032543351358741038670171866074443902492877519991562671334121145736375971374127351758267562802783964178482909367737705352209581472506919286380222482639292287306939997759781284001300786354910892313482540252759836125776197347138985428798553282819060642025488825551191722343779761498449652087416564005120309035441106509018695425804173171833113544923855685318005596034886281902951792096942954996197595579607654946072864963946988952242707077702098887130495745437082229431089029368437274751119488251191636927379004499768177969777473635036350025729825884344607243175592877347670284287148674974664717884837004830495669362155494992483735087760560169779785957638272770719285518271477280469127506148340222143919974111277858565790345413628744083308845336549011469578965185793119645849776071908892084818217555781245880785715130081404901970629315680456724648133290709587524193052153298127416407732065630129382024160738958673001673199875718973725753705893120907947358535221453526178857882123385183491911554215440624252804689237408217304319252615830862192497671127046686666116252008783606501935600036873513853527085463542698863060584385673903534864366425007853410609637645955014820924454589818947760764937270028771892884467066363807792035109546208019526718422038423126039229458955693229479076534417836899365693084393242509601718667654239694643266262734463765468504127290127714242559563713628976379416157212211029369355387301392204077661277686093978258151579189073904224786493449907626678316129434366351737501303987281552829750013610875484185454930923296036711565153865778062577157129857181973844209147516528291353920756948452511251765103823832220804043923383279067783583639579119930220237640943611629317403940641596048595108756713172425924963394684744628063841479332622974077676308743207348803657865239205979231618826714099295947162091354919588819961513165594906482786021042072736425141349371368781805146081773454078952889657561948483278762174668161412767313685889443296321888301163806080506165987486738453908871956246446284692179811994578816326643537981787852046467260599378692657060532860988342580177481907713089414140073398297397091771155438662510413802659323669118480539461703384282190994291008765302378368040582447277315297372006404654505151712245062781459272873262574014165765039072062645300908169804579670916208786694342055568926600753612601733551750419385340267431383484664866873786491555121659634776445334069666474537639365906225058361370513662314206174245632687102769611344747021602263039928333620556525458878555146762910383755355185483563564168958498763818626720441963355390142652447155139362586610502358760049629337542060870672995146631575603160058611211746832764985377425143903990637388911057772103074594369096534573047908542418916037827988874438436021142476885929707205751596773004118878416078389528426723799995656445629032066979398575171785131633385100723036535727003255968826378826722082718175544080698432425141041859040857331010708997570516173850351076297136127853693576248124122377965342679245448246627223455741595445420111733193380797262869847218491409774774781258770460427342382295928530457903028564380006100071136944963168156718694583453359250421603840952709590585030705337041144496937237809003148013026151206543861626581008132281655390265279638469520443417789782403053056955244093463075357634575495985098558535832842048198999092166029489405592486395021434189750984140963272948302823487173682433812145082607242562765426497073014466887583878868280442177305617973956880655718143486663396086243431538854870484659089899684066052223295599829409416510965078540578819483395317442582419367005164249855985701826550281549900041306084861175456282596207423947271601907578155703175606343114051982073498782030127231037538438584573550728346558318933458780103035683868509196172172786155788324128431123349535559377620540177050461354497059095871591984702908663083163653599589084600616530239119393680780545061798336148329597336587103120003376080398536929790622326645527149962012592899811741033036414756035572941256548700593267261242588652502426743961208228827343711304748177220520303106590523637338546226540636527405432163293310391638961243803626218273509879147179312777087489311162731791555670417636250569169238204714459396955104916571175048260374022625551201202419470516083159497036701321665509524259811193066315543410062679199121546051924656590916462185706995215582840272180059931646106275381536387529176646927750260721205273309041256914515473315778263691594924089782312760125290033824483505643228798591635392430001166813838301301250026146660768753877091991869727170183611242513858400477616331018187824271524319705911456673082492330689070379470210352345877446750821441125127312201699211788225194580206777315516012507977457869753393780598831699943214064949676017989182939292719447653550255756104186530540995946804476807896960754326179566788975479932416376851869242271894599381635015163692986230167549518974611145240803295696176568716876433782797740918133107022538623375107126828687153177360776899786773540836152822247517968486546540831403444159723585990235071682510266896883792159153482895330112911810833648225791605932893686395788323805365268520628645696859208144645887998273082588705341495876244200742756160565572079988625287192845953191165911847059518887087315693433416719661298587065652636707229764764144184181896068883857868538074752380781795012458595096520943299158088467892604209028807603814426529649033175357610728972166280813268039375003763009966921458129506261524075114044501214341066716361500592524287183495209325856031099072814834392974931873285827232865145381401997157151120927653070539411842473099290452165455732787880836110786332595688947615476385687456923029269728462124826512531145937250051616574512716337896761973456267310517332591142557100508156567871210794604388693030888252282534264648419346925584765931534462197862781998860890663350368652302232152606599675574573813556773618621615735804763907484790188507225354000163651021764471171727111636994982690905483615478467151956799083819596458055274299124525223843003274646255465091077485746051317523449838537110063577925663533634962432674814170299150110858319589877446642976478417631899759120176869329046140476166606777246591614653559653958341769596354802314821103964886211954923299260463880320212731375299659987663363632692971692986967155857090662104963695943055663315713008556618260956749871354476222971910899035762845500023741752432397907847011661978499507138196903303631901603693542738750748601365409256133931255202914497597000139662373578983286341295592360428692307657837589512046628610251162598711389605374990619151511497472157339487032742809583204132695272797584294432283907572489770855330914123476274885024138476174271254344959845301023008899895064533492410202427445602634643377138396903625091561227701990745431746550226971167100737964895990815517975486187127625507097282610410598941291893196183699680581300706668130951687103003094227178877018232845500083053898070158293231376263903497894687702656371740176396259213644899020794326143432189409811762853965003027427792414195791122402070549913418207574729405592654144145421313091718478744335009432254746738990931975087971575247601783467048791979613806260920484199791594201071478093031063338316960927682688848345730114525975401007849631486544472696595873367324170127916078352052930522706277778638707039839784148772034876661954349763111079146758524678442220552579261297718455355167936629335530368915849037637164408661356886649613372726169383673873718140056960521802575297193698453405962541031464219053255594740740073610677181360276992146053271972145910551617927961545208139556018241355041560614507482614523678229281050903892341794465706991514519308561891250927296584374893384520303943086395556925021162732482244524274423416230994235794211328744468796123666948573511737937026805131265792060656475810472567724139599379354150974810065502795459133863615980443867932236140122291659737160803400718172859805633247973115355955432364647157733177655995209292970726852380776730052030525782255138971017787388134962861525071426122180827944057655543582902959614755347447308094233493176423872376391280250671764325386782722435832390338453250472116173077761875712950055582048232871109525403227438767066352855765708526641415698487855826035165238483900925705893407815007323640253411092884604017535258507603066786853016001873438893519393031622983498858310229646768415524569046473573092677222363939029935857049663749482051080457315502459069063244154381873406895839183024647101964053022912512924200401197591355759704382783353497080175244109466668880727965345805700427115655636965155374956259046211400303997131411798555879839716004243237198960989698789903543350481557366968615968742105448562473777875630034988871852331526037684952984861071802622429984686512717999890189514185552590547432344895916723573112448155026963916112144943638580427681937060701734910294460202033853060335589146211659232576715229204448898124156963169166427709223364801869638753076244906341176766471841787446443689138684135509673183810681462022660770200241928005425979673209599778410383941741834732761769096595344528129409887736981439585722043188630373950350286427570440376996947268567454829358315194658525532747473600880731120335593293543843430075327623302220826423024087406779119693578224021557420694887111523872941286461499032671749900730810288821871126041669206650607063928178750384224213368200366758099368859214571864708526057962775665959364651482889770431045138779586124568277032307932673259342669010433020856444006251646907262259609595780592483145797493767295642376296625574043182614383567849475577743232092717184421278361131243412643397892818131876505204615445646755378985428727628004389861438025094491959885549710026488484155751810559712273839679616814353212785835905964851903279691013514148609162141295930474440080276448230852936218386392731704744010141716679909518429089792656940225741394668699375893925850130791224547550480802237897251212120793266715696688785042529674372469076508554948521558897304766147863007757873446404894204483545290336978469681615310396151842189567168434383880201046733107978811830427422612723672942305377490935274983367268158599812921134388693311796017696875984120005588051148111404573449531395262786593382096282858243584602991537513992804550931168457680319993617279387075472393092998590283258858171076175218939549607057807439871402600365893063891276917587159158942696614615658099404729092784910847332206469999076843269923361205821892766778382730385401879243735229752113119224225094727836082482647532547717963560952265523131249188648218869911483553415067608792208216389787956080992054565258461552423327586103052165939164371278799477494902489113028625026288692703098586897313283424744156496252348589029382818341743349458071932968868840474123819801603850397300915245709162375116545398289235699362683706124604990366854559121564420414788101349923670627490386611083616697544552133090210902079397692860366855419347987498962825744407209738989725727313317596589011559051129890654530470293229929366884815642147201693973839977797323665166346548437088860620352004979036949309825329115437639543414749210591272780791702930126488262676131361610362629148089449814417495566550804237540677177902014508319159166742258806868974987488967815524612957917505034309662730841008465919152725223275090525477133199967354451767446502455821653974490986100878270012363214123993814466254440871701347871544307039386458647777451130187035755054397943228215023343480381765098183929619844745800019564351636124102784124588092969509892086004801706614012723858864738131413186105477106083673556439330688352359570937630045859709240508578908771013919105474000902938449474942907040911304152277187713469354568210735832874570102598171051932695166587523650575488077112466635446329456346090897505177796416270590774283366533757656525996969896643686160205042446514212874644777732824953678816876723017571117252770485526914812574524321500947807415100054768170984504280265554536852020672480971212126971617725130099468400772752846633058131292423070187393702545776946915010512171409916811889309029248407657789257772023646352036180750126341998630158138910752334041173039342800531206866268758171640220096000596826078098944423590613333698512853186294001556045574381251788755350314661307570225627314786265521930944835601757958516820644272868853445954969914668070228075227288427219580112729316531874883914531598262806659158234891068254927008596408108634509358536988549475645907346611106022783770896986491613372778683794363560601014777169235708482433572966031671791264308682338381758147612860305377238317475742885255826271110870671825043191946059633003734701759471560515904717094915615262801284743422817240350750632248256712635559620020430732213782036343147445154654790855857807412571965009674136246456502980136777943698492270560391452535693130505114027859450847604269834573405605043682540084401151741888329502478145964396737751100347334917591527268384857923104757984769583554219311315893894883635527394692623039962144587107393629816295347865364076772946237122868792850051546246085896345115849375487978348159554091623176995731509663102689056451022101798809816090795640174445750565565665467688656124303119468781373639218889467397653234665787784419024262609844573649667488704449986497704543385122500654594493889377289456628626515034799165265197501567140792678094710040055751200567526799643706515673447413383518062139344094737818149120526643034925197137476243317579649462059707801041719200041716701645581796203912495542276038910611970904488182283014492018934344529817952846531151491980670477697896644718974300724875647801535446431678596581346989552297815845834849692016850167865212126170883976489800840263373671665906063897714182891726723701131362242598235309665686130096156243127792571889087092126995440652393505049645297140945554197795068646978406774231911619473575376571447118984114108346974888205229057563797664842199877485712243388922500557158188812447135992198495501246342182237376105678675985400288526329285893444090880717019005229247647350232722049003130934292621915058527688443207680364907936351183357577762442926329676426968377073676091411118489550114363005068454324114380533339550589949320287682644806926400160939272642360612312686475805212395925317353141815268762802307586072574013587203149972888600462307517798661269288112979490187268887926187784861008288065661083912353018086782924095811344851869643994486505609479808504822279551170273984286373638043219153887616171390585286074600327180250199745753316089448239987202123530976138631707771687809765761826439416433030094013008598452912402981747823426936023935967770612014245649390647079745805098570398871664298988017558555794859912123080866822039306829463380165860757337156676554941108836633694977024391031928810402867821416735312509249154844262304400488986330835763818778212541608333132201142911608833181377788769447564898441736663429886245599636672156369971595651323608027764496805496630532317803901649402491923991190595510810084861175786374382939306188982899390953305037022955182882423145375107919084814169952253062030898334381192292194376798243457127527435136209905795002844844491449709308492333773974404520425984564570042916746760964054377160701922623418260500779036559941315626647730058107584822356167144336043366046103549070075415834458706699399857949505850706390346933649872885354200498161433568267551890090054486021897436686390753790002131500944860434250645537575577833789782822454220106085071954118873524950144877480140488930119753524874779407712016158173166327068813643608440542420909676335008736738653465478842877688772397509216738967873084032428376729604316403634925537973425033506723259887976672171606952468761548071575206142473770295960446821476274932097270681737200598419127343169092951626977151812191091303015391331064052903225031306624686169876382176686471032252330155137533332222049935375097972871407518217124695306218906735402519826546596023404691799286192126841937219071069003581635512314984309421339137691673854346080715019621345587547670643174432412060815911082276982472411421200476756972150839422500220103855097029118006031631767737857925231903108646248513881452253289509593583864082462436861773488820245177895207834057360738257985868874049672549106992838076959343645310330386048060997552855345652250248847419673888877893454151995382521874114107375654178288717742924358965088780318878328979962332956303687571400930643300673806031309058411473077485352631246325640771893263553776544749026847997388995671305877007377060723621720056084418760327978926591926029077730223244619030861163999540612235291492429220015826554125089371072493052819809295000601018272104809913518838038494468755660282320640947210440611385570961472264320028583955091316223582785700467140319726720826954319977880844120869404535284247514315969717397940926841450114076907200012591939486958835839356608191107687850858605771271586236946051384761993516859871987258580794662083861143436111331203498028350919032924135193777865399625009686398963914001076183800909773479172899127365598974347445771226201415972703474679818402434226041175000226454239955295777791726850140409967905322494023333560319862323822287869379831591082213593872889563069560711017038364225610848522359101498602058831088988931322071045596840582686414625272292190112788069040863595003172230321195148642226406812004909289026837268553094664983348239533783948189822371725484627315796172474296789238037024024083003144274916852376573530964844857422970597494813712296138866377027134326953431169993584692202798093835542849823829101093296518539626070362273528877070754581946879926748420778968368215341728153565772065123766710259404381172962683833834411606899669391809413280586134661245636363678502408221688246828242899239886946785301948976206114895754932611910612890443209613783941188658138470439249262927383872647568598048365709201727290402528637869364369453859304833818691090792687187242200079078160695008132444405186039876739383210972479127378483569357870143814587302626828543991829064948396034444401354960176031131094421981195881108805453759381549829204548625704323849615349398268552765777119577983272015358532644543938461278790347453941562078563105771376178443792742181663698324348076273807210688265009998228043515534508066629475252257710663960814951891777197581723547732842492660750301553214141651730003317103614879496608463970709864832278999588752742777147363532452980392176401458163316781404119944038026104635220645287696687950827924406358271407263201124370373834677556584520307022531361736733996553017878742039324705126770924768067802095257612639777222830399650477559449224450519294168797137967430998690858497940707974416226320935642165246628745767348687524467084074350953036612153995744254922071989193522231239415255028873422445006117007066824178621122492640806039796927949832833230904868210015889455170266602218853444243139600305116248365310287939694946332289966545298486010499828989567602872476604104062173661908198924071554839019539661602416879078933326682788801647752198562720264239576554323091737390552956413023221772980943234491259720253915587689259574441461592608023099598188911743224823009089642205494000986671846020501546348362975928456173042595180694113710771429661420180677258957334903935692947708046538477165573184128775654985361650042312474176885959498117157760344943359658369086708504682257605081046479578167205701422946739316345227334892877052664752641129421887378815721961783980100542145418349574649106931108826522665235011662609435907872985305873981958451308438192791412375536354844602378452037791337959805441927518277225076457406809216546087524575432172828336749497427732927974897105465453706912198723346780466002330729502454339274828368079276575685908576515077677701755196025253919558993703000116059777622815873079728593378384291860461618447696655750927093191849850759615314158656579592010648652478975888933982151309049445004479414664304540948253487997996377051368098077194213173140235710708863185424701386381694011895755878212675041923845799429606827237880566647058410192676514775174238059263334278298675151238170802284711672748709332747790777645130418484178925029033749172123200164387610648176174072169315013652453040381017941687384943834895858633100424701747583785072312833017773671422657556577903827963698631207905796723804286606790375399385686524178771944094567108175003804831409582444832991259300542688652572786704705152906878103368555043255891452535073088908250852087418811385435981076297987703841487734905369937030774809785097821635503213118549859969726139937359110230405741452774505212786173415190469989852397571643083750333611893534173550857145022871720518609190326220817292374809703040712876645043712358039234559497762418040948704929678926417261886352730348418232866715618823485879296558357213906022220045292406936945054038873089989875599084889418242412635698958295346934253183229826099252985426596603183404532844871402142025135235582221278359503133159245055284911581917817536917316082445602491639547411961525800548548483091371028021100807885294694299702631443226154383406919792269740151327184258096409469168367550517578784107761863010862497544255121561909618156479934063652476450070579706299369502420483546098444082375575423126863479168142427182858559273471180716370874026988877306169290314836414785332022125175712909118024423153654739213580066606374077313931361626900970572277965185686887330211567979585452626575141166637803930605122633604480091259314419194165284936304167814396032440872267336476849327845603530050104811390161750468596541332117850302235113395160653443877307523566764083876216767507175109504872725939999665358466569257807520222942115698271725067344527254331032570976465822412077748632613175249945380867866063009384939548746866434254704474409884678824449536144316280092285734302506580707343770426876490419191778974926819514050081759341848972745575471423013936819987967492480589251377862952816408675332159823024942066143893595675705447674482425717611478055947146973054402852428801157641947330681574673055533038454635026880369899505016298902939681947978829609020249258220041060659174203249144277678749494863900430841965477002958047670331400173895093715123783265373683102117257840285119305255719229618190395621067538276626195516097545997920097045968965354113191521657341565778986512767529907140729177696150205381190779384149408996631421032270606765034371890258228139718165349447524724990903812422344079801687073595726291134428986173929458168535914239250885278833476951766013825058032586017935646841123896927094855635759344224220875529836960171204314785890871638824912011481246503243487815401926351001037636644406347509379746231838272707981380890879809906659290940175080711380095124626898536365939769345786220580462933390585204584257095397669031486216623837864935523057883953255825748140541560820702521808731554808051143636504523300260711805908554013918482372818268328850656031519591126574622561074518392946650358797947397624671990301077439205111270568621040063195767035449996272421148662658769662353826122496001216595680008925647797659461018870758976911548243019421989339484778884455454110143359981341889321767892417542160374268602240010425424076171847650961091925470700609433877255231884496946071568925215197901769718603090127739022805961960204893145657108655750376461485002783757916116639812301369541140748329879022373924616163078760073781001706528942595615324804958371307244877204329497522989535825207648334554660093919569151629964915032440137447898031098090139622029857722976973648179421000292576864754225324097661439725277076130082617916963300478479703014761456113212967350456469778723901482296328891036240255919967475251629738293434084786450377945258778648601320812718611539447121914289739599754514257434080676484678027285133898771181964267998437723515400037105469022636873291799451276660379603029845483293597997131778869846149564545206247555170382577640223236337959918523563106078448710465080544358931808953345851268959013135496661577754998317613852273885078756632583875514922886765462556268680433297727990495746398829832660423739331619126539856784497897958016965389162702649970568922706997088642689237494957024966472546536153750077752495003970492243330677637218939797724112443144802437363257364439482093753014643554989778020768166205754026981202408882898285189079890967968893078466194585347824445434064515627810502781564748199158589990298244123733303444523589837662222512923334452021204249919483209139528428878788755363328519468026370889996053555241590930030268579648754991684623028997716747821592973961562544143730016575453418706123366756724865456113342503869881346629471226796147891812217173480172055864325124312440467636608805373195869614866272331354207532939861173148268181321939241154534999198269012137552783186200964361436489571375660969718898632070587189013790367175872984982655324023868683270877370634093600716163744081016876069397501184316125120164275272608006385189244341082575051271371638610935436719917999683366096453488024526246498690702777760836781731278733100557764299170705965313600806216702384093964593437636508012991845361408218436837431206101272756694386837140638597293687661913682359164617577656795894583640697988096361136612249439707781088752333236669991171223267691044727826073166428370747871260128263613550867178918960005670670958087764459992351418776913610156902784326738614359566208618996203287475822920457089547169521049387165012176623009422067193676026504432887647481475739031571873385766632074270623809132702360081929909031187753810821450893871944727338783430712810303090323168074490828203664217230744291286029675197945611731960405120818302312055942615443298922181596161970139164667477130336965885809251164829614021066045571690744208679020332914021578685451442952251517053793421658289189438444929912110523195762669033566999219759606565220306842804864083649944763083781496645716588792426495108269532091268716396878979236657937244498226755865487928542267222585448973504304429612478112747162953710718081159559490552845937123210898301180971304892168527157672917970408044300156484436944990890547775557095404361491805836861815453191082192930923461629161338390458134681526664701415578086048202304826301904500766178447929892523687516969835649814189121573502384091270060150929183471350180330859928194970610108340115693351609627827723856650952813092210528742144539160844800700407957296752487953884392497432723101883147581073218813431922106374558954842906495020513552934054551663322081316702474218109348794684366973286550190819574693549079495501294733694331070737549732735473226746367196726958658019060787139828489404057460686187969435418875939818843716270243096816677231203056841528943860287164547615478489097382664369844053497185053320713625702405991472058518910292685828441012193076590200407134822415049861763284364197801210414586801592607809352175951913428784760071617651904704673746501386159228292763729142115709267348384937236275151522379338162181240337124070166989438417969648793175838710722296900742664474360109335809434497702997434821465628059944117055584683280892726682715349671329004189921462856291919543496592274058976141621837778197529223590145309826392625761175131244898070230094819902378163078050342589866906501484101298909512951129446267092590027329156466136140340214170397571944856796604362883016782059127081152510014082244283962148268038657336509591227352826217764573474510640911312632869212225298675932735059629672423038198752553193094906105528067994430161723777358711409248698537551126598670008287663228514916097435552715220082683489831387404759965658213696366287525647855146232439797412616136911654066797854837728458520229026239610594605197891205052034151155318293604685691191244724806270542991051521612505111413151249720753953658398344310981787227561337626655837952749273593059302391553415543399293232733502892998221191935073755102326511070741666880854396570663928883249775275488323144904776078223019534932076889654149770071437205161159780728320083628063553655097825865572597676041517106288162591247293355715317546805971606632376955716066694153724680641244857857338678441602513210989162177497689061955556279837304551328635135237822585579462208074921958475486450139646664351647064244911260048215985401007881474180613646831883789175541752739692649881288879721195333133506314392492069866026994941093908977971801927053396912203255301620018801314247462383295937571662927135209859383380521518653302404093511115057039146502328082816897140966694057383611176767394929870168313110739022210770218520664100992757657524013076411054059473568847245038998898481743164675890324769066670791885212697776218821812540161756119930570878051025573434794918102058839367535244537613164538568774174276104492573376372815767368121401678079985168958235487405995314462199682395724554368342240996586128098911241706234826279911040100271016674828907608143879579923820811179340011321565946884312192694959152649650653449548017638624853423545387753513998635539705932719821217211220627728829962749455177173299029018011551439393417823220543879837806078064865848982165297136079511719185282888191976064003329708438703640386141687337236683945790491334008303907228817749090396427863591350249711713430955142065069111915033677356437195815236455588728678502034260926581533857478335544199774251122553469498030189905033390629473359252061612418516343500657184505910891563187052102879578471338642153416819275355706907966987884024501649365299421807361039233822956804695707764586933606419685197287050844648566683506333529872165947939632048699186484487154684512756815984373269487967611619249361740708594216035131197556684064970016388255168370580061376724593074327312141798023269513816971039122103562967705691200885084934233526008735917316331897492417378174963350236028725148296136213407978226177322946469183032747977644392613303201172031046398268022831261369764552529972163992893423387198790833086233490972012586453748129669641123294871903245762456754667179492359138332307632339226025916208018021627662049757263509069214635138428420055539623044648360226920666197047025539367411789203100633279289040044270031630007475688584223061591617760587233715740526689505439291232843001506057629287399944277547027538050040085262748291322776455846268312995101769647512936890365814040053207203906371061893508260326163673840008907984855328087751783687235975034651504604586548481250598712264626195080068675108630639213696356303350023693611332827733095752897844290923339777116460201112939046035392006431788341347513566311859120581851695793612705043846106960530402496831259546175345031995063297950682640276640099503107182687322127204351391815512954583513534559382867460750041697897778281854350870930084700148320973809175101047185746058081905421544130953759581829448837121357084418602994468812060190770150624665618073224488626327301417510762428347217957171110848686868893811324692594076937387881324662075616380107889523092817124597586823724966143704924737345658953415312818379670745745113919112685313608690330300326923000958072666134996482713415744701099037656677248408382724254069160751530344605516516913369807602595402373247947994436597746874007028331089016597341447294518138173227317551182049392596483636498696681418821162911438998418505975848252382181415442363560384440314168593595803371108314277268596494535029859878809423185933828347160298938162038610089020248446671521804462406028680818781688015615892852256746303005719770731755215958621415717945490704683729625525965474974024841773740825325158935930877113756986622574611465711427748764272880737123298275468921506756786371599018099024130836592035476923206874281267078920098841774771569834334666481799382676265659928761264575408153087077916203245166920160438322888607831027911878815325804800144799658121285603880893154579289659940601908748298004191260778652299512949803250862414408873101836245360371467921620639426961787415014223419782952122246953842835326354768504888732684188753609796447496997227515315555613755712282353836520351225993002147085353078822415283289656027485417737571018792721777371193020989799755781633974683541051745894831535072838905073255993590895735063907006477715242398028348828709646630527945501157660127371425789385191867889154725252978224351183498913849967294843269977319438061236276208358802286425132736937830109353107439293799555616431753044640328599968264249041390773197600197178691031624124192083919615268444186699858464835838567457265679146957343152957602055406937560638320719480824512551616898438876652164279202236136874846986273918107321519215570981422490177333310387320930404980816032317512266956715266903124843237529201750829150784579606503809834497322156147600064152054471444141454614646104479592440511307863982398987503812832501697622280495817293213978373258252037187306301054499677855865240097086152500048549446506009157158346532140497008023825990818078188315914893811884675918370272711878966674554175341563465105782188290394843998070998828024565935051315377824585157701108764730594930276126036407460981724981747276979356110988613906063792253486496605619891117958503310676390464577614826490435005701732488518663286144053539162176702124984119416085449556037716241393447570023144448052664790285936252890636115465769574573108395108118502428013853142320871716307140324603470136295705627525428589332370629038377999960080210439095585640895431983085068402212744094808124092298674209606694184632284616291859119458537551557871335902227697159056039104049256116246243853319283617569411878293098532390215898707598551809994860559733214442549927534448341566883742749152093709706214580596022859712232440410272783917739559100516687380604391901892745761436025162782590500200830449101151881710563878684724835654233478140206175940807705221915105467342249125350725313796592833211527686615982480781890689516463115969902061873741654767677296820449801414985978852865057359123192603524645927678903536941894820153842352966316544784800167466820081605729089550334221875377197783555716698545948515749323940035361955509532732306755358507241842955287321241131937753498649836273021539779698168380460729084002023974756522901517290161146312408155675812165501688130059731091598920737632850662558329471261176427974758234149330431111435322118274043549137158147607662874273250525721048727041476091222730725815667062821602645227467505094846501091346432593901157897530855906718141302640251372913672351465349615840576239881863542666662153948776961954991717268356266846651928361226061985877167441306426931136658565632733245238611598771013558552988703662356793582400999145948017680187585932843946698028897666429966081422160671245356412733137557864676903424438255568185568990895368032157382644424471452183241964459689510328507032168044008416574995798659037137953726431675699136706985198563114541393022599448122313615002531945231757109320785047220949804678392025400688341942868429962380669272725242411362382083019166276052097626821331687433016951102413301769289979260356547245281266425636768472600694577663541233118038081738805061668903144747362052839615620079377143976902958180867917388445887254467114675973858936916576607671393958998460835779544296892800649396439593996393625872123529606059984984486062592296662861164789101830078048379976713351425500389173679059280621769061986909796339113754603965887067748479962949501419612433723973709608930783488732866231348137712773578438974612761867460787576022335284058910254493711193499673333624443973272471620589397860789736207320289756028466565715428092695508902205609571197801590838443730789893837456825480619989754317483244909466928179355402036431754546468441979247514509310040883729540187489029032585635483351268083339310851775652809148496355430514564300729685509961159155345946770730298465007104023488102264607179687058815670729062916233441482460826097079690139055019732645077736871417293203367177178183390244127059287501910334940420833156956704537335755181460953011980906309796868328043385361146246762517552669943906104690886788445227776573363258808497763469000309820750867385723966592458966446647652655366787209779690588575606762992992560766878410785977164475245200228595129408919147576570394178538396533884133965474852760832964005805529285090204977005509568345086270896402991959303843197946163814679387586285164143069884653450169655664251384508517295163201795499893297463867386916128268555235953436524998083047216231719785948044666923891707743835228920656572484034991500109180633622651318996562343263633637554781767766770970946932506128035334196673046217775533860845811530151908004693494815329067695442029211006478071293806271659645409000467804489756861402829704591759267928074308135853862414068745300649457106630811713159353594543753224043728134399979733318485960990445293102213217139312578574581263326310841011461921078919718267382681433586955081620783309818408279473801937414279726244711292162828629360380521609321761362424395897544803305295067444993574076878898739713821036711118011521017062240538969260719073693951911169558424130819761905751025126079952041559574174777832198258663086151921802913076602228861239112693159994177994494235374653980696077216306420572508571874735743297114954070712257316853497401250640652597551860510396967935569583700339283708214937647355979488677427206428725956222186428632784537604783792639545908559669607475371214967431834513479316468398241405783885707683135643223336037958258352634750757912796343861395703652066225733204453650465203393581960915992406931753526766107769810592435862537806849005728086619506855220328895613663640497973869518845130118282517751124220407422459492754212184916732350792732448365997744487837196804419300391728522793088050476796996594066191180962590799528795077611098464770881543796030045056708392697158107051985567420678941443414414273806758272482407839935273402534850926897527596549797923852476023363232367373142728766677277161896036504462466823954145302681461422531173905939953343362996358258507907385267010413819393939987027729458019320696165145121395643577592093570004569823675280710348418000042581512120825788848202041427375634844018256086247292614357048367202672731499336770674706510931824259205371754302436727510364031226880040812536650828804380860102934642557603060718809726367843821743451018395114244293614395287997892127083508724173400080995326330746719530068251445760606821548588157810387015189899166976033388673288913521607022323900659475341127797651538314028691172044538845006090292881690036577244038417719358221408883651113041016266966412431662546656797678644408812232535464393709582196469441436597726102004962803485514219226303226966636850975235145500025216948580584072281115318334024404123007920930054612830241869848391491574737146849091845930339341665707646637838730488193297088365191980892841169590104941859842538366267801438513898731359683682890892540111779491533540646998153209663289986326169434572899629584700843919919956407063236230719863834326130975381895130384098903783440545197540432067191258940671896397772189349335378287236328960916428353784065566333843872659298656518690158815818032215246580736128765343367686565861591210236225649778617689731335931062812991316348259068263102569754860751149917436835680260226033803281147777805145397468370716380237712121293834408159973178354827987117795397692415032933351350332802105818565031392069139021615362165922091195634078905358228536811227014978120759069573130759256528107346596909319218948750653765145344726908341001165742314186487915402941156118909845288888479787865156391419900442855493722835072077179392364091269051368178785757693139159925967008621561011676103448037235710980372872410605701118642622730542085923956393013944974546266167779014425297242891850567425617346550004270960378456135210440347367903365325131134683214133061805588045680237180670118402220188905865000576565366948559760848189674060386819636023140540124314676189043690145318518010426931145867274059923901943723947119200553978869601440306230128193722592359120654573816059056255589958878520251581629021518615324668354335288134320916881913401263644563274448585642139776966171038153511898654373103439996979370538823940567337137346398181405698883739078961374152017415304211790011502482372692913833168574502432887332768134359453145891986777279472847625653317717509864319508682998435141162522271396070144904585058948576072292054904379039361994221145902644378766865889287034418410869024749181716604647786902921612547627104497571325806927328450687058375443226632931339334113091986427799052301431279922940161622219243994624430172412811774548472257934565850181625962284424668157691721495869577956456736022672353668911332009146596232160499399919452439879449616737714311305097169767014506880436956674157190454177143454326126007191230885937132261262469445425996663582526485918018937644481545008375502826264378251382466314411909359690686716478360594454894636751822717729005253140553703227896723969107211003171304027467242400787533810694440609446227618952608272203803110436297956854378604134968769726635115645559847624616817484865962426554106013867544585489417972481020978918462426624077213623851170194007422314868063643979462316070595729306508473644342545687946568164179285813530212771815707770516809734172928600177246896284684010791059359674777321487240372277244187409570047769592428723529507174981983646691449115597234506742122218525223524816026169573544080462652400773023087492840137297864380679073834320600138638707810038778632149433346289654918729330608480958434692536237924344025363915509137944584527363692203190305725890524076984197869341064494784113254891309212166916091748275494399062383291061810216259310082294615932883937581168837162396728630443322989114798581983369620350452259125706735915995654903659024414940783061448386992458304587594035007635280198560458982876798718663185427346116325517900015736010567486341245829331274075091821563972422326572814013291886925669459290444214843533960430519041371426884722965597765462671128700612002223658190656657612966909721357243476955374495313136001606051550087393356773417067276298584942472214578785692328576237656810212313218538981387725995008138556042018421599593809303987282966868528710540853965474518772172536072037792259775041523484955391264054893224373671524133819019649283478871101579304566508444746898298260182566488709823143662779679084784089470620495062481433372700800795132424562435529852353987550417866629368614451784293168218762947709198943513598349440767419499104011008310973405924189661647224625651256903137316551183712682656823852142640456875573743713583588223583452625208495161763809950784750927031086354061522532411540518213343368077688203192371060305496916797972247067902156399884847596885029548497407495567845663709093925061944595824114532719290547562896091037670780087922837778379223075319035683349365608520264061516156817640875643597126583558698795202266874665097193906883785708792510054930811165113570307742766656916994038884106805181164551047541898564804996146421785359971870455037131770628882013124573656681235176430012441340219316450331354253802855119180285078789654887268487246991195801042058803746890651871870632367214353073920291284158233125335330773759087428592338536439451247867861913844208258154588189151299689855752331948898850394829209066649433136355685246985868084812866590461229189753287402625893049847513875035265048472179788713945990486952626704460455891670026709088343641092955363155008554097091938421787979247051352305790413512718507388695094431142833610478083190225876152112944091397381180781884993888091840894478492142114778756694822088601133113959921527981226929726760685373466694677888812525073953021314372050370314920071033532529007394236277453657580825294656906232853051794090316151963044270744659723767758774843241840764134112260449201418403115846375722662421361334512073188666481544131572965747116672646412083194806028346565648660312079119857833416165062585030802943091037086927912871638134119451553342433982976506212856886423493755158925180144482823428930639834862182249349951863954614801537866536088819379535473053459408393822849770255835709179734392291428051428640370507735453518848751428210469133502279661542410313695779347044438670399914124095773952582551315239490949168097273695550989191308650979314830910483903755579323492833922898808167329477684537794457464964269264309186768361782979551927661214614352109601064729142804245279505518763219464142437083837834544852941669430803581126891741986655770835621839602002623478917194257260298513634978663190630665654518457240625294651096825222524654571178527478889992666997310784157655696151083610418542651695026472630613923017158947421660352524647862090128939433974060756509747732627188267335611511347244994882002830073872409129237404241840255734127971190016126972721856337761440625621373108277755068261469643657134036536790851774326786602080930258746376182256371985297740570365309514297821268797728093275719519648663051864102873523834438686621519856153779479357756035555548369826383815054006691740741140951713714713023677014046868734187353364747366668254263019128772698913489639317345838325920168731157812537205502375031398762050389267111858128125497515676198414354377890082750644687034555452346242218085136653943260377905068614979767343074893294443069768934321635143641063305069763152171666915351105698961956611641834251076779146252512175859824985135992055580164958203539443052196439257106128092790378874769328147618118762037276404971618538150680571332167802339107997492181828482310454626414202115867371046868970833253105351887720969951709975406861362297028354908966358286397654926197484917260570274162906256993976026425999199131412903365530121727076706435020689249543370626106412853800474188951091231471767783796183384484080716443303910992780801463783129926694563251228779696877652729260437895352887520417898629672470930375495163939217163557132949123068394086095208030842321400824022029236805490266677639314172719741716928862163997092875243154218330791255997708445792759369945910023410772949311649125578099606603643523718472059667869155386081625455109101564750752752620458136178165652436056699912984441055740256786132531166144806376365467183085247692411511150801863404772067852295676275646383920168188351584910083724144373917151066529895301770693995785713905155442258611581914056672202207120254917516526162987328873384917540174357841527152545886094529811094622275393507246305096421933921491843954614563635248228224390244283827116323640360724272618311618937292435462006088810120588020994378861026091713423082300194015265683486500364334332429214839560649377462164431477393413255815876535075620503660161793047018570014629755952257563526515769609979750112901120535840069440116321709939861564116808845746547713902053596596381316037736295672108997829171771638451346047166342826877360070730440236293238069968909185045387371809887609278111359546864662215704730563158608504434177889567484143302761595676108199459612062263913292889029124704952912851505844172209494494952902671870704774589582247524589551779917744371124879481626200146467437751528815544804662366368922026094929729033934688823606348608980166728824857512197292420697103408264864691214586872945720951940901566849132750412555985990715002205075561067432614451312609569654798682048528683630528124347941314736721028101170152836060000977856791970493978997377074300398365131034440167189232104118662908356849298229259138530288217731074123953224213499652128756290489271169025235822119037737918956511427466597539630769381062478997675963560600564626957862812202055038500236485440517510288909980251442429441438241794082025048075786360808672125757103512672826567815508463587539184044842252978392099998822000365694700762316281954818272286352871662277969984853998207809128485482388525760717350936661302478611906511837210448616765873594027170308105985125340600655313509664058294417637549331570986608832558490976583603698328928593121725594738328502915692583398962762447720424635886944170509993582357930584956758845410651110328145562753532141336662523986364306194176928528487346496963274296332110820493241372258317351342259409501022436184380418702263389665076482353127761273486806878755972681767397525451634496487835623006312665158520886383847468181248653316625876254517150576692076284635587727982334526440631005158421560481858084408837267418985750087117356860107241241698586976922248657753499535941245036613171611517687731981997107744624195182483007614456642960704033114783517360841203198748720008042874658765212470289099667676285192804993395350390404730405918862732523961464449620708584446966724112710567310098855736941316026553582333114997086573525566212527288964988612483108613174591350557436906790022698157157319080397138962622847836196499827350879819897398519312534923391764562997002059021230264207917967856487968339177524003163274765538140298652134648720871551184181784194065011418633770498067377259181354769320914084482372620670140015147364272397361164220543244026995051552556721033715662764926061696804788538592817292353879048276990670625965244549360906265570114640145960715961059993642197185857581174048439068280703744251479607169297965088787425916918918027441556714865370891882070726128725364304527797764600527566046525060075586493573308905046795226903358550499658875440681199714278899436946716218411899506238519285209319218655101731480434714352546059993533877170164401785490806709999024045427889692584566220376697422442102405451540558166993105085296034462924630620684033296294011608548158931505589111981761664955476692605145033130583584771725829920161144770968874039469213820379557868481901724881130597452060796985422805377972327274588009682353398966818081493258359199255923547536127444148407846436584596977758449749192118544288602542681882040200167683768297454915072294092220062479065623999676692985013114465642220460985376085837018857709051395720294745667973194860603886516056109136796246218378070147679201838079120315104302977446436514071504703096009825046679920838715810634683693194407919652655171579579502642595362639096697655051680974689321002226878753120893325316627717706352871121474582314028508422287177651432685696178229617820711865614342516204497448247207812390605787520354384850281178978263970389451167455939895045297217626662257732503688821527659425761104643625987449410050894339391589096304153080094374090957164275475649676255543700288496552273225437176822318327947114654582119266091609946169286238175318984121191971116835836322168313976777597989568137515248075108295171141070062173266251325583220784225327228255628805999390284537745732373899609587442051001228379068301457525211518742462696091065803202063366206508750055938403974993678501369816725344734553403812417983185037603806601172528682084821716915611923897880333167363741943357236827108035021044891580372767811511027962411336630306351845837050163137928724054978837493909638664647659799832245097153165176061054480797337140556231741006590011356910502002776169399767638679964454995022817436528973276764126268045045509537370919600764295124901407058631252972364652364418845723050776528375951938904456068635288042410623174845253832977804257408318767197171119717846715496036827729063077610033452286171304904040183780436349036500562786590311641534411256887905605486774785316936891806591171727835368313414953722513481079109272139821661505866773318626812614203026776495601568949202670758758678632186887035517920517055824925803409497088105039904175467227450010502038861358298755956931977056400229071408454906968497142292892201896313150887989022505146092122356749981275701082622138653005759745682893304311375818088582688957710586272391368175892833093139503080829892797921891308231302911056498875534101504822431784242533621496584696441436437567930401168273473888324617259512473988780435121206041137893482940085246830486516329348812572442244451184340720946450512505751127685935945120884592301947563645373836021453295172820065211052200265282824839791759411488288953852937893888907674895261292961891158761370529139789489482091220621846035331098459855665665982877483297705975515676667419132036603034253568217664835847262526454029361862334297486785957047185473159612091621309635440463014331652515141433744740855229380412939835359817887913763458692010137861379611299678004846509550291824366821224828968745123395716434280864874865146991692672397583445470831548788185620084291239273980942571514138243028506895035321096464906036690341291670734070251699942892625945196936670082672805019883999556381111635420415218263369639103610418170131891681964687823216110338148369045415187788380306317485121722137343146570803972398036878873606067481606728117523251393090852284684768679460249053513062116016759082579259650421440725922343030056130653235356925614009085227181239677624390102422188476572230324148197224087609884144817645188017145894588681926229814571050159671751741897331428254757129160039703044785650191940848481055396059169228635836637933570223555312388940000948230069822467978077338736964942828048601737226422480289058949732899526885851376340429139592826649219198130471408691081314266244989219452204769590617436747097172720566807931675899217368084814655220195525400962024053307078138136642052165403959623020759854021911058821816341853317079885489537507388308228664374419304611677450663137121331556997276056824117426876967293261700911782729774055867376257677668864210936127248714841528990174861342721331851101116384317334543741863236215634717920818475788488502323262527014575449821871428236684649553908145586642293233616722740702834600098393394407332610487775440796976708065882337594259827125383028604283553118921956012989943263150540169460482268719099846796860549734280494684112452895638181465047347796318197736228369348043346938875943670955685662620516415479123196750003272148428300669328987359775179582078407032476681119899079521220029205814312142691787443031999179511611964076838980551330087545565438654173145794575864982230495211356138724831599387310029045525377258772993302672352862404965843784478769387766820950392496448423698083647261713069451031036841656044522907987735677561010539768909500718330079919082755120036751795766542401291985678066542547659453353804380660333032197598468229390457563164077454397516559688794848403575465691660921161840168224277231421555659510221349977450528699100871638730295181694965677822218863153704542067604556826033309191863419433845865638500732689697405660286611366672616208704630139146809200862002756209590030727672902450049857445509394023723685925064934149637465236434754566242489334329321187246511343460271168501724589583951775037687054051264019065660042893480101169825082516621982977594224446967383329003891399494638797288244740088518914697332178487491612447767881146621103033131829088966949105904998260598485754924259873871716899801367646314815124840641042313669508967446837110096907581556779053705501660251321832418081918888411720195227639253473050790028007347697266735531513214722170139289919932632164741194604442274199912254675471174886767896266976176116867248731357608323325870220564974385156189754995776708874890116746815762036515986487342338627634813865902728349404019456919272458725668629314474026844693242081944471678566789598905994422360770298974440775318249827462752728341875514489610332829963772307210441296713066863444014223323574579335602236947468270159162424386147317578006046482479870498853102929590309538049123596074021374992500787928292233439782593482560881016933451492168961834315351966974399854528472091059054842565494608355840328627704415394091659633719850493484619838752859251851619286907697631839103254541201500336641318276349570251853063667607749870583545825410246216039999809186108400018777182099579884840637694638428255752128382175885236451987016144850915243359586811502420972962219839503679717770979169483040649258513876682765160102880680018470401025388381998129013852449118233172219859635046189824747543006212017599265497736078414071071854857508769454004612296353005053432394455968209086640859912237501162660208095831213059003267803355008982332974168794601352711809014017991703511527765858232220940249449300354941394922121130894843578567816564716324534295978726097057685227714075828100335457990194942156227378956008643236706974698056398439067989752471960724134049182884413637296712274026313444838850630503420520411857083170578085108877614927168957034735842827796127710498771120627105851408134675452655188880033783496645182482698883206780501980488281097505478080713469830409633697037760425977506348887254316297419646943414982088989213672691732925113879727811820627562243431482124758144071369576112536168979820799272982859130265598179456507363474845274726275345821304894434741340888458616820783182842135186448184450456564786913036909337561234314560110650895841805466431989302512868566291684392728984177906314635964163383370305340908483025976760020459628271929032527473818208480427243962410869486215636103140063135733573621401345065273461742734385740674316842344470930714352600419496274773514152414503368005511457227810558064314466970923677076728802169502493140710270429036035369348953398445210475957858137102604899816120481798321664585487256655460267679211416693907275314766823875569911699912549479338369703579475691005390598833431046212247222157339003218804240031681059092607397407091589946074168110407514303883640722703516818449143682815470119885855220490551551136188270402488562396170285989817424394614087975588670049491351869822209910513394531877658652382881174022868696632019985546583827948429003961559230696117917565219612612220866848847990578386720352521902774155680419643659708244005959265221551867397564048225869418892272612130841417802916204139436147608565926385724971170443751957095434304994209591376742025960257919526164066347351531986304624558379244032316668209146429642606638688736968795736249615514166809009738682032444149152051241401099782267690492572573220964778740972232729591593216673394992764109441307250855976856273545873971006225289943005703322752693619198746605945846770809892522244987819886370297898326586721283908077193742512327127970476849096133675188190285559877645535153172170733462744688879373597493523529043694180955331785298318434946936939925652292383963531636574058473665512317754555464972169555806871795083601871664868118591166448215895394097589237288907904049852017991749241005315671085163577263885752984362499269873634642907759082765087735306960819874210113483464136527548381427429696953951705863479766414035577424230780490811658560033941964273035165471810105901118064678223864272340801880496522276960436573965819130510037437124577599956505619906917336054013096988966528523399053001104463420771694284384996507482166718175242637694115624619277263773848180045934579978811980657868095097116560199073420560188400738383565933230824229030811056024905142416602036209410297493421374112179079623844916393023103430826444604304722186694174621347244318002753609436749670809668105761401405362160728389028297444752416428706317449876092760249295358575000786821499581006007199225765329044340743041216051903854956370382149001640818381007680959993406523107601565557638475827788698465368941575561630197511445960280264967510879251334176262257731357224803525235781759263500302640876513995347819302588975457814495000023967741974354800068999637600214365754652543587696544981721007069158380635459292084278758196634087293066164590222405679067182116441414933078467231543242148177474567267870173725452591538624520621068686244429394965479462037290555630102791809426984182266221122330859513011608230527327280195044086110557631225070692780691487591065529098019430664663538498963095156438130870309370736977114451759368222935966630896853459194006479201393610751138174219757712694702114423354829100346890016432317486508806117914109185927710383801031952960145452096222029162457251355328586149380898526692958213910564613917443309124904368097206739419621491575220362362167675632994707729991092339314945001231249299090722388834195952689939839222543462282753018800240220006815936898774833831549055839143800696407120515247688750942563407711683776272826095962521033436799233944855289611420327778459653538326645325008194646134824387723437387536041757008277362356981444095051601995457228947180751258438640271610412718548835305420217062520417380362066149368142909802594286474754799904541901793479339944824717825834235775015162362445569134842731555560781795959710474811748136232308118359052354250747357383527438073126985651665549723439181024141494248172068401728130588347603062165438714992517604152134356231522970671611140283363767532664249579091349580104323562405469895667770684993658906405428325175654892882741148474696489796377813389646381992297098920442031843569422374547775553156965179278996092598145723543953324870057193990756817495629455969614276140573411301430571787006155626642703266454281598353634111690091812571208974610211447197788620339546079876505591841046468474862235956909018728472180002799525557227197960592728096245700939738276543077179492082712838632372934313962848057713660186770184734213928142632989084128495547466399609465279797095358935942480982420611116196527254218704853361778339636685984523407513111402426428288748219209116293467622554590647764026773119055691076779301468671474738600862685933028843569662548801743740278380886734394905686754028768614701679888243735840387856593667869398972310488389759818375327027217914498961171538347530062584864431525896962809128492160991857357682633520440203863610760999501552064689264878983912718627418244591968600800069297731367241886329889275539655910363354687755802064639879661902589222167730686915266454555784412479191023813428016605776909874767786601806486002598383803337393055251846049553292312926871806129678698746741139044699737786618726015918619400197229747377088462648637845805248898628218872442158303692374915086791840345662265249819189666039616044819698314555325130590073940101402854483123955208562905350399514525515653738245759068013251490080561059118980429833853478702761770694160151056938770077612463409102553167604706784087531299141534266778016319713727066642877374070326939375863981908406770208785578178157042438396038528036991532466039587084186069033847198776126403070134397429111628685054531409958009213466419749876916464918645457204941058882662231505344600531279838258776531846771531515621402998088063326172730183015304701463150588878220779384555046927166123689542689390989487056009248203472690547573373003180831967362562629977250655957136745679550313677514341909744388968393047817230196673424654484798704588122925478957297154718286771413679830823499384824483901912404633513956371393173938523167511930036656817504270897538013906475793878751991096899406095853786017416583459220653573790940079932457917040249640922615367389654651153237753530441042847840041410792533654340009127986663806519410914518414737096095823097525134840160031255070667090570363246418077752513958887215437990105068045313144564916237451529576432146162174683466481419051940841435037580873895906856097088626841256044877975066779954320163228866321221845793129095850087177235949087387433665808813407144203960040419629772206930728386269550676450884715700539768531244844470873327085364935720820424343281674629132535779526645789344954454484147792136824370714430481565221193458765530940852628045534233670093071127519222297487929793903755512645743193171306809425527931192593130862005339230289591614748002612071200684775070736246363857479125287284782669418313828745237271149918440698205492041194031040083159140635450395492263448042282588635368451499543629078699421669519911590325802063689871377044649017742553079062084199055907818870376228777552865510727210059393009538547955747996148302547420988574333790645859774446748855174514618567740323983971998182195642320928310248971646996738315915907459934003305437435038456248683970312077940356070629231951416964701878932155833933912261537668353351759515718177514065071822743871157019235600842139229886199980868663643409408630640562073771953136536706297273752522836518503297316413086920288912942168370585775102256796036525329848014186700103246264186257940741879550697619263925588809412995503437108528993442889218095969504409321379317925309190812240280229796694447360909804397880177722010634980385070091135195912239822278899502293402825768571079946218789890438957679378490686188956365294504737977525587445599057105960544037734027073015862485701032508340085034367717540641404716235571363169408133363261443290005138897100731813433450266335990915159505019010287171200110870927861583080179529138695762719483779743210169758683309299656831376955240021512722559096499569208824543059658901766006089426985147735777140008143435326078456247874885676040285989369870268443401763907514193654162425763480502468152724575131113646661577272171717116809091379964285965494196690783550471576213670212078058993379512314973300178866862156201030891184485176138880459101228204984916650144200686654461628691897548875923914357255241786722822088171722841723147015435182706217334291741537603731812496401511983587647879727357280371240284798629974165845878116798103746639349560450336128991775832647032259365344637762375126947575147838541708028713043111219683216188688536399536251794127022070948474904036927831954308549861489556302077296731835679538868407805357285019515578424411021079738935025578539469307704578802859892258472028347886077033971205419033686528666264123654320131646575975339558150583155048966177027938415847341282613127386671896705388247171717082590956528827702449752330962185993981370434701396447691982293965724188614775808039599353848931754531575646842728004804740845885697025880257818540676273990923374793017008770714183000394687895721969023851435709018873045469001753784092175771445642103073353967581164011491588040514880360372164329407300352894160907215863066967436480213670775583648010106823494621276262444531552271319842065230561022979659459824475174089409774444773075590909770672807352795910330873003678226677054385700333022805926809749184010459499973040856958031117349496772151253996230072256949513503863185383568890552701159093640969212407080851095339036343483455851640734619057026941469761126555733931618340908446578246004796142611182269654279837526846671639649438567019700879946518695414889075099735782624105009020655268588463969226629851027317087296968800418787404691636406193018244600211139215601901253306862613584299791211106094505769620359426292608660122584976841841710762400407003297555253089861673961914456700256071370631310898811629980294714770663040380157570089413058932797267139140787584162887784816136286690294454016846916258055146946200367524047429208281483649655785319678948191737778262806789939601938908974618118701481381155478757675423786121379727682805687402568771079797176813212551171721047023207005436753056391732157154629682148393319020270004560368337634274781004856315434353756432742686100214975713739874862675416036269941121785214408362061685704350362980352752918353481294612888815456782830270996865751460273185227117804586423780281124975172260925512563172707089934043431312719165852237000289323905419985144565234641026579878935682388321887081908903622387386279611005745942601300775437815603650176217151029553636478089895745141904505154239202317936021552634221639993851845122027918858507210025980713321669863905379475923224861645864348864427902442141829265626292706736909965823870029652839274296645095390639516498705784761694775112012336320056955464554089653978782348169760608061628110086554416250279984994800058530747644922275123347743191562611056540217384551616619690722037675586233154215309166572229258064374246290863047230113037991653677438897309101518208770294164225492294173788054794706953259629969150402707305657695492336327939191575331257172971102817370955407292534579052536928422826363890322706506486865983283574086653455229749719791180512180828538133962048391018725568789820377635354224823238090405509656063537639543795555782955088876085405100695249862935247985868314726725758048690505358001250604461683836366497132523367625047692980078731756243610141714933909431107327927054798131983558655582964400211119390754362725523431264255001332376976365658023846203331102504081326185163032383825063928471632626986373785164027096744886444055091419259837148344173458306135816249814168875696698539139138189825379500602694060667414887681188886398517871570996805001176029286513728124049563420285120129973857858873928704207806664023911825901418233062477754780974549162253833930996210600998944377499962359360131062927245088774836867685410974874697441235554686915820242660674017885303844725611575972531842703398419417051162862008788043229706330394360969862295010731345038796216844376706276987279021268888539279655609993121252225034738863936702645803538143770000225367601990860589964390512161949256242311832299266248053282486157357966895698513490609498051062373615587128044011657945915576395769137512689024374651599833817690241364055419995272564083992242642354380786289932586865554670145075882102098012952959286091790252962456324368742520964757282556684431394670110442703935256970421984422456982995748187469045687876120958350313092204896754470865213062191606087380088472913288347998137327597490745655020711015386830449561257568617486076616621779763433104596906895756615741444306171557281962353489672690695583547705824048432170998374483026745004755701955210472992578346079690048265082894726454580554218968508815065177635577700104516836745331019742125898440872929589841851885562658964012013191685584149327774675608510464919573777334814344168037030443282076504174048120938221748444228732723629226977581430406460702869487500962315282446245201064959668301035730987943242462922909659333229248430803279230326747962146783390698297938517056285848652573541347612263441409583230221855841729030903062705139860308833329143431350178540172024528509462699579968686124151033495067420258342276676725209502069902838989560086019183798427544488584835734818974042329476026938954706804033787079660691088630776125118659844841369717012095213424728337255732607258834807676430114451857316170631238589548808913220166191313902783442501782424944309758964785075143624904347727945827874352163510872496105886070461638568093183878573811199738824595139665913304388661967915969524223884745677240142342504991092777365655542090246343422443155523530161602600846086058034706617645990423531212262649418990704895051805876608490326528365415846541913495683798427923240220812439583978737719083460827583590285825710762102580086377019715605431509329975273388431412064131794966871685492879081515158177092825182769817698194931435494610286599716017137423282714239470937805523348879990298835021211966509342980099550389435220719582520984763467180192701317862924979373792338331793940499893564089549733976203782904334031763250270793967987992865374413806650031827254450138316038732199411974553100400878849575006340485709622847592970031129336741889588947158320764182100352323812489373559249128234125322284401497325528296307254551448094743042902203665235692141927362121109776033940416646444342127805969210192112049759565037929912368834059213811085621767825763127476147286876465564772246832401737931757678102173265173226057276843363703275010790962036581870284956679379806685480259808091146317934962239672392652727958046786851887248799545327622906435144576849259638362261995367862950940283140135953562312214308450323868982435202701436146262202798175953086098760396410830507420199816243921968977387213025757968129828193483207245264253097084385293347316935385243269915196187243643371298410707377110930536798080292739283081517029211092087769752422637370733092491470217066297500632447870104904665906102625242696796065636369631032427229501840888119227306085498887203548734286327640391171742682836578202909853029462583602780627207164313399873340101080789663656879293811274273023485196484543490285874896946138781906192372800563137759044994731064469505691867368233975922582507662291711269396607576201394454398125082282118247251488444614174740796689226675240864984711534946115762209067704918074372365800926342780011551747529217693978888457832363900770006888483395857321861453921119344471171857314982408368936985508326548641213610633613932079120184598028246938624813512985930708770461824014235712389175144765407372419681515721477373932672186723023516337892552183950280101454863224099251551816910247935546510056484220062325672205898726941100960771049015176274092203715021844741909841444657884826142046651246939257518062372286455169618425439114788449906394672643611193919065750043854921702579110886594084870636376046099967768765257220364098258073459313282426117549714675127479467089777966519392495139130913464569425380526200486227676329844505145209352833236418134998457992525139513571576064096331767299198843529881268122773841911412586943553190843967258190932677143778007343017041446331915719761842500072745084425217264771388329533516341358011138948934771099084967106758474576219064542823553032423570175379738952931284461816233128234523747523327244685876892369431585754617902751540313793700592451933517799953747940562108971649512950099064606265097967356626086315101809000776594341708223028757653429933836423085344414657411513304916169957140123894732636617031274203186408278043452800159377579111996831160038964530450572834727613436769047064342612619284670859682231400611387606202797826904584609630438509899487307872173978284972584101798315256520966950394365122484112286609402143050837282001719092061678992523722705987673437689359741615668995051825194176778402695979573168271150136223515352854984096265965770121108359875291353364370266901960912341782317627471666907970911888842962130823569855946919970107378077992033788056570261782757267285543479199464330629754606316647677660182626765239910453469566239600836463425381541426727926236689455917444544444315025844904832406720134564354330578456198079852049084166208444796423021706755728672909002302994959989444183197787377292056250436103394760797074960196079804054415124946813291018556628042037954218768991641597600382546408680487303765187247180461744626612526877241007213910813120480754781579873710975484039428141202692640056133801660704633452380656937095439067001386417949388556311672225957158305994045341348655698561715174304187415539628851926107981643220666246997613533860393053961611790394119574414428730224287522117642003268452348707250795750148978525893191573101152930619678669301334317719480048585204473826293520607833969367575945324892150659191851721812963605898777967124008489528422776295689869614913545313475024157150012790983630256550947319290637163248984807073352945290758380429132804862493583577201380135009242545371673859964597947110612045087501985587956195720701575035220479569563763659604631079478065476380154544228546734410023286401854154731731652075524114097061150114134969038998927445622449160392162557735067336761001714761353501054653931158014314655102936605300996363925215034758358998862991569696308427707668750880660671936158202982743602197910558808563371252443385088042822029746131054808475526038282047425803101737015481086186186769459479458687150590856456052855856765255485463052869019163482986044785450511954017110101249491208602978825207629680190135339423463144468100650539696188256918731536423260654505327144536396067379021297890549807124949667069257241239765508705083631432717948657005784581157910527539415725632803151392482220693367811176917915422487850964297661734369826885937197285668824375933625188466511223961981059489025512167525410931194734001630751023311847828822701177143271395593623508271032731016636568673568240164427245112060640874302444747791782106262387829225433758710612814268652774243850984622838547895611035262741602852012737121188962193755113912376835821192727165983532673675309661346351512787058981362639140443227591326792753193261398921263231264867066896614882430512058070828509361297046957245899522507118065934469168182950827904534448579066087064829086592222841219226371586605598358507062522779556649351809137190121342682233317215430498924674217220492611580886102526965605530626343213216589649713414523282909230639951146574999361303087710945001792910467068077938510537260234223826560363248891903935540232757250303652323194174056470685772047880256761003114189282807352901286086621826649473589644318237267513166726792040993015087702666874095184115481305900989582578123394961418168165567163972824774452092941206434081622979752487963869439985002356106017953826393225333042897178221116556199975589258843219827768909135820026808832767158355663547866684588022282727251535660068781242071175644393047449136937633666520907543185881209011439628591862647678860363110527027443209606347701355745053794240115463275527750323055746748425184738574577077993349898503669460038796023653150741207233126936792892636285612815345785461726982186425408337822737662171904356160473997239346122068348876836016515445488228579264579020420095408414414118458946448533180358772151401889313474664232173119405503401753791229970277975105797366096329352764189990392356870937395444928875465414209176381469600021689179146149294238857489517407968944329928233543279984947732123370770696022898185405587828581280407362312183724113842697101198997009492972105482269504417733734342333458662025586043046936684394242204204907895780537641507188792952357578844429684165460134668309065415986763392097276327013048211961199650848844034734268236152128709294877282722940162200543231903321054348698584798553196193082273662139463537819922142959258794015270519063829137649303982638847181460270237950432234342786756757909903014031567068956796309735446798860844160150066885926911727205119638855831831426002480979641772845372124937788167866537623044559377991344431860652971258647857863030558817896868658925905027202863166021372012265573056554590382948676222806321128830061030621083514638325735520041601932814517574278569142572796764401907809137921033119935963386421973455785357039222653802572349732387252255497808361008126389036672021743317633581344608497235208348554620179460011230331838576891750443104182846814203730872406964141910363663987021086818614090858583627112172810497908723216333572085312421050077351894332268506096302297131414318612892973819874370777227565243714498575291963587214713902179940307636606282224641915177718557154753134526531136488297088188514656281684983132197174047267380001582987290229588405539533726458286858381910309809650833022269104607751149523888056512085560106305588454748138029704867794747981781740431232593866225558691130559082092148337033397207327069738003835299297683271379380584915007751322029615456888622848335290834981608040916726034394850814412879831105841398142870051693108633189503692562865701418229606444834996707528285254836869348322144095283465257556323810824825950833513707325446922566755009369656362581482466411090026250413299208869917489596801085599830800932813529112113057503507806470556296644401433420735946308509177212453204253111301773180088999708326547243146852092204719045605419905170927125732031011568594970014233717296268136186814069182534426338477525333556968682462393033637249148195695103164316523815647509572516784300805816532060234599609640584834965040653539621155825725635959337945675378074041052787172934819308711813671102626202613935665785438363792194670337461470100414211639408193695385345805007742965953977754221456353692845596460708993821300784379256056653089483810602376324843492139638062249744688723041355420207341031619902485695647024131843145983915053587422721421136846059744797185216706334064163837204294325105858157576445387232123099359846506453926995882182037334796947229054936006479170576643717516383499884816687198846907080079275056964361492150734708373015898294091951674256768521909801758283807398485620742652310702319508142515307199752899288666215921064389741902606778079135668459003920883282337977055557239450133806185672714255114044043642989335182311803246906705351611894899466819484030535517055983419317485722758835552004010936346539060308323415401552879839752673650922334612933994153916262837125220328865238382966741175552083125321311008429337879932510220996730050543160760375629924531130592039316096707864465586424070242868530691158366497685998031580147625692568981958061636726525488406210523637960338980866540429600472334955049387917108965178781214282266081211748509760227327135178843076691995198626848760387894185603105419115703772083905350825743693365960836470575376773740730715853185170549611183694386674174980808268183263188625236586820992896597904934215344137335317187959652975253702565589121332191322173786697253291646469435686530845313733932398289204454250923331541828726627330979288712627427163429620196913379504694710383736643335485802514476380909812033508916587132056537301656855333443150668763090992437981446901269382772416254501102687807452945097426716740857579016662803606857466930487629987251267119930829197409474635603700285315273971879294927944066606696304233309953664601836516882061592896744319730585710557845175053382520869731318106192658382848784162647664639415200918719306511728155138351828137039998473647061935315314348764494555873303637367149498759058885292940229480064244395793154620671739420538996123409707638469752607894907770724973100324563043780304200262111707073431895471574798549740264843138198798362849012375642340803473744046528368899252781523753430431021573004867385630824893691619655666976938827123197153976806445524064890273571840001649439007663234348904746844203779853479742216976065801117706027473687606219011523584375951324463817715252969327470392526275208683561284859877865788410141728457813490580540088512683227447714587705608671477265666714465453345917813642827137511294534645413841149978783809661369356460058785592368893701022622853552106940405610119417882788553831349784139283508867762935818469300923077928009791838695948550272687737417298001786255098194153031925959872712888043146569048421443818668357213743368977791562405223750880549699914301546406604320893526729230052010830902254525405422357577100254094891908737017197262533166863705648047243490068087116110485734525215829693030907516836926358477444372227560318788679069751749925137621479212125235059086503412831346761566229269293003174815211532477000014976106072985906426292283634923309323911320100063726923932345459940768992270331920601577736120277497497057253769777273715282357897381392721514917793185830213682349447604703096971057426019558248928334295402858812962455259610371517677216586866579769484888855349552611610021008151784677568732536723221153659718291847798044946492665645765085877623501965177998297879806433954712990420511164855819725005764508307887505591854012629236335937150514688326438874253236341408597008874974743459063789042384236924774301663636341926369072220217274634236592569562763628261488141284995435345127369627289421812378689746254842757084829596119513800224178685874782044377101235570752440724781969982287141698733560233759936296452482521485835071196714666846432577174987928707929008469715746201508350940218324317890109804574189809566345022786918603716281822784214526135802696816356459426157807388881961632280671644773206458558618609095520943029816654482275664198256225474376357674863957430828686830351710476428335290958447852624895052110411312734122430515014541954639236425095306125234530846812305385375753503731639697355409319646385697206269410367315987494485988120620564066408908238757841171350280640725143210895435104965549097135875171783535577547475863986412314203760538628505809473100061399691887893769335377381553315349066344691704371238326292961116746356442790861424839901555962281084630588904375620748430693831711175427919471728427525847169724060553082452665949449002985908430954102922963256943251786486175790496744680237355847971621194935887040355543985451826355412465618470257866037923222644052521063629594956822168551452093576300546241472295472244539969623309736582226751135136655857263751234914970055469120609452141926935505734224746936503343626654693246454239597009775840405719156610360334207969844447649850491065938564162158176289322058007028912746985535292756373364720988947433764366934177149422351532063649571424276155371501942895716056579786237635854517804083247539391162821158918258406916182928129001721924555829702213570077171256069297561454091994473003698720980359749148709589472259886805537767627722782495502490940214175449531654959840037610222654697433733235178729096053636987983069954201903914639887800444024119075598153498360477185196878194540011412324293616481582092112575938144039153012299928036180965002840817144728709353940996099106704443993287409195515838040582910916514804875982403193272261412650909100354432179537232748936195171612451633585661610174947521590347774060093818870797848300516211211512603408263222095361542166365381915113888994785345255783485698325548042501214235862115963535801811401635927189885587675940086317197697454911521490789619594832557280827748150718348468006645725375055400125684755084669380000115574280295324818313158819486942130041497762844399435043727761169285442927158225670886822472519181937293066125704781570983352778433625581267700104722373217243525247475711135746193684471239618179174013744965363085206889793116593000040236869488021745803559902022910450135247312594114409980863237785823014230543088062394542729941478882187236976850434590158036059642507358755915764043786926025622240678079520095626922599740641122143684436984914566138869299231766611828432277929137103634087728063662342376924075907800873015257662003159297197479906954856224208852710569210648848592167256435981036639835383549012802091123848668836503836149556955271126401018559965242266051340470761511965201167291398273410555067583312088821618891799158485978647854763853353480329303512521949491941410614762418077410686439505352349890178414125630931753512616881095406839679218622426358150959202808348034562716071488470875436329009508538153862064785486240037085221791501703640021187157375229691171799739314935652712321124295457429533215526937610004246903108760050426120938802746574164246204958971188820724193971116056988298603027739422019142618577367104942815326209193449594981810422647362234896390332721080145315364573461431082188134253376912456943723883710218825268190856434878954819096044426797512709437169802612324973001349399795096617174298373678387887321120214725466703539499718092722124701811200080065506526228811062487874696575638476246478619153652900109097268341060873384817286318015306711426464754586193895607282424308569721969757454848909039284835150838029819977592192296501694615398640544099305795453608304920122212610611446571985626751302055523563686810777826732142025356437392417846306204056973597795803363638680543273187894197012102574528057197331544387402889585199746937410851948389064090432759220901928990087067062316509758595411302364551919762502593508222922427204287539937758984353704136410400864803463988416551373158557773927693576333903337424611411749764349640767499076919809877660270180221857444124684093756552576639133264623239259260702169087730058765484623421193927464501377991517054080660160417718962495301537497414444130830070493611450193678030504586120474257526842890648041657626553455259978306907709206011828500620675785775523921043862894207525049047249195814003939076461220951476736061820421743843604366242233620441655878881744711515332844394644776595861360615478429767918989197036028021865815864517682535698414105678039106781241498460877551889043036697805263168132375858035774741727100277176911700744323669038242951294148924006181974992099666438926274268691635926139163073085802212487384138890099293842503388395112467561622222781209823861590583104774951995688740151001694292824660454654898377853659419988391827993993198638594194763718116820165146995776961420358607560222782819124038511431699082848311558180310819707854937670703030142112821720749116638082695136006234014967501577467291372475608797330587788583145611922117059323504064077531537759833844034046654153802127538489221194700383651228398427685579725454215479093378411692210167641539265548551160087898281925357710956759092703429456404396768551455266025028788074703634190866567005050609827736453475953914917207603760185598770485140569718918097827923540932937260778356090924902844873173997302507355586585037992589462766818707044714393688855433809743156855458829926267845562217732393197677615235553505321504028921360745897524600400064274689574935820057396918728211784926065208421576097870574650821242053090339358719800738771867248686028649869428983411475556070548716440502808264057378799527318531823781304011689298558223105642169100502626006593467893857353629686793801437061974261442515604594453619218524224392066989355523784027761135928199987431012312513319177237084854691907493782292912766968464448372044850194838661980150039308270476325843482516313836098889336869504698025538230822330237291425825360090971161053147938853662445122934620970133234149379327279663228402657425566165667431897260070893869135016963230523806242693056338963694474171542934920313949386096795201853672836970412278475813904157147547083757782010609853411592796425928654593593118196183217707746269412352955313057957540500078297838803566689456273175028758649020100486855697512115794568863510585691104609914420356451948126204882997676926253062970469860823949229595307726209567551970465853758364759351257758060909395163952318545458326142232625012112572978969097046338635041977736732906337173682307331576738292583354477917591898086060844905598661685253879733109126465164062515443033770739129523338929937878078309742033438051338349898003900780951584350936383134397100460122279842518402506017990350749008304246105940228671376238772653072867610932733675025471636570833748972678004545876817089830197523830767758129661655176317731868207665124004357090923905741287158183776627650561500023776871814356480240832684832845061760659791894379005782422510588194902052944329065363991309043566522430746274399295020819574230709675462278760789916806145287690825133846266620479557296996183898098328108548643908664731854259553796285868756504318397606384930408060817542239398551727485640098361137640092073788274573808154104964903416887983677137319078978275513646650675174433083816985710461072270201238429187668512602679490089083138415346841129904476280433662134360096848599990010676078195234476635944914605613723977277082595453533325682224645991108423945896133901461623690595945992084518066429146619488729121956026080238261441508940419617144039467826261077743151948944998671127843234436533116814232502313232839315595682035824559405642279508530002892786612422674232702905817207633376418352766206460484574662219416221049983019612336518211521235959164850404776218964578678171993879281889502429142310067961331537414877680710540013926425361000182408594542921743995129138190844314464896088449536341102161408756835771778243079761475079821970608067432722935508542918913457741926610917080609762638316502729992286642190335555068950993603530186733362132246501216607866799813887090351569184518775030911250210601293602297950866619867248667598372346207822953698168730107068133448424692639127571951344111184175178091838333263069251130380971879501127115476595657164249639106251027882680128188280967410636121625176717921228682900366656484665419634560176474907961797291730218238233499875309761545153850332897863219911963454989324099109851123713861901543457446437318683232296831174135499435896868808385035310054638063412427934544601401313847086556199125294744878006795677836370188769593057841334115396264980169844900962996816045846452513318198432381900744902696130454833550817666504744495229528163865956538816546593515765146856827964670987128906627556725633107902579219882473317073381722192843600014557586590493007279884443938286034360547647891364657332289282972715022113768694472287841389531829090040002672256949222085023134739580742783649932245152411134688893661329510086650024265692209994638629323262114908719032285608986481195671816258391603488551880059303222659243495935673852931124041461721810401615598889788716823317521449663234358887671343565657176251168048626893875528427644296965741909490495740484695723038387585080041863160201071967593536718382920690754151336881315037860254529424352721786345614155380583135119953259868126324072395574390970401627169931133528728645152023448127306071663238568482886204767785453714021529093415055410769600910891545944912730622186417245799332475165836033714913882212705104517250778069148848953833769538871196568289361030549459379380668354877705264415075835585555352735512674755524317418489708871429735623033712413231233984388498450342738088056765607272635527624029878465465236137026736068157800970383279304536530030484843568862032396852579052037214184962080991698172674794811421385228560709787946543306041470962153758472873968630776559747484300860673234609700046179728673261322515306200333468985828637257608379521950052965099220521084346692810173638717208770372082581030596090839601702933547057164621633382202490933893249163776173960049573900509575213991644223755817498139656857707879606374884388743988439532830836620760185771540121415501942282768517993564662880900656557004257292325645866470098135937716198311150257973437409770030421056894139948746305582559788664411835241315757516407659673186912867400254294399728531037380661985685519859269786274571657819917841351695854079182389437043482250548434661489339920468503406123804123316516623204429336684109352146303866188730935055544605487654427388174720868487669092270534092289439871979306315013224518987414170546191210181441988072820693642839085589340671537315932655967594734696255678446678630464574189603884889693382343089884827770019093141253365441579817814190977125488790645636486510788810191560737351352703552957939081885279212361479363524749839442225488124602615347417941902494165068742424461478719108529085095798907573491768726873149428149618356485179970097390460865096740802457552949441046639841155537043787482865083532806213961585986840898847068647898898989535440069897011620491985476512588388172642967837044662231860185462590453537323277598679196476585348283566613287732519339804417390855630694993761826352540684309232279937319048285698363825833496661601852600191922086974915819454323085402047956613855266857442509642508268416052954952321918355428126553411214286659326497928372219441315913156504904407730506850465941695186544216033854963040795083072346986225163698868980015854078333145348611779381038854187777085574669507298134091711225200982948614219597036209996441173172150888901507999239980340303683820504694310226952893712563604421263789760854619041735536943555227631047333317780022156016391869318168477081214473171453957389026360546745017824123013591280595817982006751783719623375137304570778967326591882036750763332886663432112220370134211886541885395939665020283223373449612383948772974000003867384546896120038710346360693031670419364526710021225170645593316592855224412564465682900921744783155545976973390417446376604905840672257138323364478940431109550177722116521432229960877719089495966141780239093493906710753059926632102445389717723182595358012282250285410128545823612160957679754436455969659810621620853313363975598971090924357327388445989596158460804468913818150243133258666824760360228209068111995940413441630539415694293854080389736121718159912982610686270344707276749852318987428278048682760184846517847105418333484489916451822621230051608967429052303513050867589575845839744416175551578047243332845753325282743378601419461073049190676624271257960227554781747475274086207171819163916988888683508454617039755711722835547513030623078364281663309543623598489069139707435302790328782833389102161256072893907563153284955442177768619876805066624791536010415563786902810093229883446774842338313265377468151247591139753239444436151465891513364346385311732257596602422017453971496119815270868371803189203296886247949827652861049360989619744515757041120312840410549092085843723311502619462822399992225008661420897773563494681694832099177577213396620909329141235563437398492741659060414668321252561296278995868171980988852023398354590847978631227288815686687991736355918256339337222149406166485230556025962124024504509388321674693410465528207173287816448999302256294598876995926174736537201284050562353067684567362976026247271112369886788219581832105588916865708559819681423174047540625750841415011693036706871164748583482365345588460208858555566061560716730440915619747886934566658880280483840054897936178383957919205140864177990631635213204605889902524520229589517646043226510245066153456484891677421376119065864879846487280430707228930497851655033497983942952256305414135327441342875018090128509893197796664051375693516919868410674132268135379349128086752028183467227364332251784849793178990877052282913036745006600555534652953761222826645538752364781260498227231025175323533650995347851698419148035171913940105527169315803861090175483095246093585769133884698605893381798594340363265404026230340047455399844305917379595200390051940888462670218856210158800323711532703813405216448129362231434709035434119340727607682072228525826825898441772765440589190226487894875966002556836196322845710597984858660284715650095766008540794752823918590730945614046081717246233497284508937768678272990711160697823987490068086284176128974632878365261744211858009607154918234276754670972296081633045860869597977058597553711702444455714217248220759380145728371448289844878983396222386687547915052724910549765033339603333243034643229547336647891799843601667522895420678068757343765733921268108089554313005843446604774396331001682937693546762668201841122055261151686097683513182715914146610858875644922798078435934696414080936391511090913804252633165742010894268118560630385245439555745169464206409226384073496566740064011925117811284560441778872007965943303667305481396858481496922315813993726117802105415605044246345405681923241403242278836700598285006879303525689366871211938595272154847716239562005312261867109941992023904698900951414460180666887214440586283849442917081234798694582259237686426938981422565054978574636616676559023010629245488521173209224173304774490419316025891416320864305777595395076799155190952470090148376879599551110077391849773415173209207058360601383895216817819399417593131822381586489285337457807365064860274761155329868620870967479018138091589581307620854185142854041338181375142731862964391550309482318966684795453812169435477401639851579079046502302904563304026373854629958983553137737847347891391213993806037923749290290318554639420376361012049914887479098565742819981608163156937549577972395365183823769730305971135546874815054235470294404620493080442071034224806932631049335832843200734826129176654407166385015748023367330318542520631616387819429965605883910762789088989994627978673734605119161843349023110600577455606559234968413373790197218174332716788595800173731848530118643830816735640942227483247463936671426351678127150947116681630463375166651633101982615187453138224205638535534652275669305543656004321520935493716620054320785366437825068934246369155438309291888557232227146141151376150741926112538218530121154628602591609420250650806378106503631550274508630344281071548526094866096263783099440693261324316464159401243296946638869984769975324220843798224933759041695482635244235648977783683624056439613628711814659291022692437415028074527211213673025089418532883972671959855590852914389747251064292424768160082566005683951568923424775520868495338128007911426366557356473227710066116792007537720428775969302289213146880542476475577418066277437519455666748084641134322020324469019711463207832714120535782031745656726284799875609899950424209838644047669386235497458978805524879886983859506458489114892718396161253007007783330698268173958693568534458275183089247958645357492118921454214768895777584740836630256512057956893930411408701564656824984803967706204722899090762679617286076417745853921628774270921055706060263306533570699671097952733451768809309179634743594236166895384241467018671638282078529924945907533010480397643823279540030471652671145262388815047091806651227649081094769727798042673100399318281284560714532036859306499142656529994069777665070274853597133589758403100322416531233341262003800586511294669483604471375080751567352710398837130405499637503884690919433067415755884247285521919761343417733900460696767367864761981039296789786708417014106464521118203130160788176156022553412027187003322292604665488687024315011046923945331799515704197748171682476683175022572521614132755452251860859994036489253167197895330484567017865129984965441632796811486782122945574465474656731914645868371711174669916665875204370729388285565316400289511350666421502811420948622799028410097135676565071918478140181059251815931487367705151448478725957371540175042697215897687906882718433052362294631644590809005554545696763340206333284448986895278111577558474250922972259599344877661419341284080126378987732443179542381104265894640324261305546375741697966225680127443186912074347149485470834315043016387615307071850889632968730463006661707743130694475196258059227203828141438041289124264148023536588482975586834054412668242427432731975450800142242479321086701965020524649804984575007521307370443539287842537937231855175200108868138307335048282673808566630550451263784334546742546295142508376657527686008293561571482931659753074124021818942262993108120930151147885958986029975377909679948789899666123988037266691716598467113717229135013086107296601784172983503168535369736980514821681132136721432794320087562980245933129857172568757264786351148319724115193743306182112935405010362214649950953846484083962978990200784796797064904798311236959599637580119571908943691223906977896394525814707036345065597473017871002968546807445343170866044906052581835800805901911438131432253669613285152464540052425427027240702502396499964202165155316468139631113927734635068850951784425291972955082701503041980295427205129565399842436307140417827349340493851433255351480310955730259940512474015203068302249993910314396915563417161768067158211225589736995453570766368799371762810486791119557711485622221577321162366119003812040679879908429996141468491691782359399260558312437462697510888930892783544296930502897587371267390642321552124757366506102220343924518213556444738857172088416265430016587272882264066242604407729059471872104125623016063428374391694763925236673207301131744005842253930426222798457946014863695726397522878116087274658798281549944307448958039795057813491442429731167096644368922446268904872090899998242655648763870847102447093109155704818124500126573032535043908767309812664616395168296974133213639168276863638356775622542144610973668087128756080055690849484524919493619522683620768052065037069811905345823572131185067111151629433530769689906836275267467035803414825993420674239368698766840574289132350882850015684574562209046724424976340978629971624989772186372993306648632446938817272325308487518342650865409920626139314206546042665768319179290170793452927112806829272508025296100752524655277459412668780903472532624605729571585868237214645629214841959623617524562861415836527946920419529398429452931341065118780577260275719112202197682243777417078900366175105445722056359244445067735910827370784945740096309064714350593359571201762835829892618740808386471815475666620642210326002590043367326759224134627994079692084401383353500403779701251644227242136830083725997902795650446588044065094798493876468921689465838959968466812813576839257379946975798342429571565260410197909921031733958834888855816396012111298540883853720663788513425681382332783042111424858862956894256349068996569036255925719549986631299176621062631102445305030075747726298395125081143592619140845814434744319384720679157769409098405164814833423270139556984568923137441832138094467118407794492480051543574736243338464618761394369952026200639203579550004024433387764139838475421370501910236445465290080349313782949197164970997990639144215180163973876370904268435224777552854418931915959167481234897171131322350651394105466728348175588643868807002236763115233023838278546735474993932002870881002644562881174507857430441264006938626551277388462542146258666377761827517877875966483693197959075222025573995079541292579839309514249171179443860871198965631217187514828460855494410982991350954090284046475183748078354603906069504910045641356626070089364066426711693226671612183270097427961050158656374760289561996335937156763434232041774311847739188528203655810516412506371140515975753513111579940605048489292330906444018995140553332528406629059659422492131360819227565634071428228718712301978271707306877191342740251201504558599259270751886954131543199373132585375161367664164331039815408904299022947251606677930912098916983478478589015666355902536285977350638345870961295819016553609077545895890388081597017578722030097419836437515590721297997976031422762827888137145621556715725500655235658529585668619765147580209661044486341700952804425824733204159494515093034264382383659116931726148162259282471679217149774762913961196867205503681037053861938958358365672347084757993694380550406159241796429075366001391144472747455758559779629735429510107102573200040277017078547225433639453179583876092987047493325657613816560064042338507390704916007048562336712038311087937585877901988146607226268127276633966455180799307682450242740942395002701988709447812910667211265527843109486935437656176005141286917980405216807130514875716321737324935907972694534958015793475887462297725629269547706703469015103173042926749606425192058169424844533506211211955825691063901818442567283359616402752906338900738691427503208533326630374779229163394697157458882487131768285952753093316597520953839673682904235651564861280319618037101568015769195822882892862591374659424437800315655714707552919476226815328373326824673045554676928923300218360399283681241877233845227896998753239630249591969436308395794779549714248292620269898514814554471617127722734961496116079238822481361270926074467481130836443655009321459940421331099740088085711236363284668875069933477589920466920543266856457763270423526405736316043591815825744047055515605992797839433200226731860469346888076819583812884988911807051488964493578256741317853024348824314141932454025643220245728782714980960060550354513416341975580281085152475674658446272059695729178202888397021138730604993090207908920346996427956843259866260795828805631031455902837167821589622593041999054518490018536095533111989692511790232241562938892870767699988837810562008435028428672120173268732098797381757301461678088006163694324927650506309422508050456610773283876659690385331744597912112970310215705517183309090298894888816617332066157347594782483877628126965040250009448304109972887975926043110156703632613186751668927744681887939275150963780588964137057931852496546819057790862766043177050720985837913392335101165472121052054231920319443109972771208972063045246557434184442730213584844137343714653922254817873680344342290292211871103264442100424284185730940085581860355092837159098322768339369373125412583009730460911431429268399332182308261816227283317268014510124939192239818135302192727885934440927284720851344865955290813259639485544065237877431455896607941787144499867538244274770432106716609683621154791032035136953348035919587873776467541804787156112269963320361635186064091227373993182393875429822167764314342059066455270126082813393071308850026990332969565953058564049474803696827269874085338519670931090545167919487355960714362680841961376266043746004585676069937739983705620725544743213064237517531007282089938146851652983940592909215626656231467812170241297086319025553471139226447761117638674636829067858666440023945312273237288648716606422962062883167675996265296877929669708123128748954210212023123101085613880933543746298865368881136076259876486368139452310814728071793146509189692993556946644474802362298670356363854102913038188082016078133105087440504916532856671179949949308398145421491985854371518063544670322661516853368144098167374053302129119406250336809207292976177921086612497386373673760951172230462703486354608322370648473019911488470052732109327117990203692386315865105203978563843733622720163579097760472381700943183262814233720287045573303961419856710328842864388044378360532359163924883538115882827091936695936499768915791307426521608572351569434123456073101137491758558145002309464034655206063158816127345576294710954152135731712545363282068228363639714912450188318721530049349659310760031390367428731398271862196452279367133924902646744727853483731491535406405452978408526553714313400990615180617811705834456254551398668897055659459415390082061688564341124295419400711528615417887370825547195897760069795702758476496308189895233890590639839844230136726727881862485626288158362852571035305500874397157537118960673416608864811825598394207498193485372835085912163686642242513233570037185377615402993029141226579002097287995685280304526173154541412847252501947001624697219191718579329741906881595119631278559565845499155889195301821818870534003298462006655009427227893539268652383288008791418074399030744492498609021486156661532306555148490646347163478942561829029124024882348008898361181764524988668038246098971834967293995227255707488323203762179898949914007357431170491502874464082940922116658409801027223519659226013042415011490983416243718365677060686228064777288872176090440751594586119574423097041845230676983864912060832149678733211932442321834401475612770023767388958242308128451599477217039766848617696785295907131516940776484296375178140212064483271070916387032737294812282519704043590462778873847671914999500320668255486796911862116482589746710897082566694388431759769730973234372455923053910543533533175848190564684407658234182230771253518479812641158588547242663719172494362392912136183127649510892291372625862645011381197670155660987527815131121938104257797226602249295490397221636913084621811072958406585616279415375630812255116778260540713040537793896603476336511898881221733633325015719390820033224093299657216010177826457770635723706312819046487359015798928200250820942090272828967274168260002179511998216485534240881342192973260138023858126104889935233706421624653866869903146895877956177113585263834375864148816160021405239489273295731491887326577614009914057669072995991407447285466305035506145742921445328669254163359693771952091102422837712127519700884684810908298763362290213444515256844710754306055377593027792999541569302020024075848205796206637437634568407026067769743898807237129197212642699826636250384333226243301956922488927173770715623087587055464396380100903017614256609685853374169062596024989000715556890998718884914653748519723002149348192171321924917381099395906192443442980641272040532712569874501301336058750682594862030258098626212625090188693071044801834718530044703569412745596749086046857717027958623643693622726497362919956632586803456841923228585041509117652234361742358459078997499340741820389890021501487550730479420244105895587638385598700236618386104667887578560651496923852188840462473299565785041062317758304616465405483888818337597099577361520072903052770082056903709353453363907556670955413947034231573473964958376930750335103108488529577041076574102705184737141773621615267068130030652918583469906640215333693354419726365113733001974921021141668481568837988222181338849164675853684178618861888559402464985113964027515719426908482836516690740498171105098398952973634960338338326622206064631073310191891386053813627317124364352762454590502040736605184269396774226961283790304244322181855835529587008786529413385265048830487816544441704402472778810339270066341598478307845011114376039172867364378885374840277921743154699097014568135880495830171789022846160603023141832900424174272130448384701772976296587331799208582356890186695347519481469034514571153692106557192590374865915160911826680881578569296386389192159700630209145293697775345798941833470836788986869189549592063691818888978371981466980538505684508526778749055968648233430646870907736762867131455495935474266793775696910991385562287371867697612829955579578580087224507182671004060026355298222050942995797313126262267077040962623313751503001989256163563858608808359972520457664541293644586477119369923088497050230418764642833986469465381446286556763269382965448507212171857669446930150787235640396225068711772844402924083343490031805944600470360339703405665210236113169785354580551837639963582604369241427859669398862357543337808481413608313859751809124834118240435042670304118818897255736892571867914315208309117148901610439079342671904852979982279444034416912635259057551157484360609767335158575365015317348781220013226603214249759758741390506580874757165819638944823147142154871161109002544194686865915923597856162916508567890909798990951313348046159799375027232081297171686573684428878558844562451730429373027134737810252794735540517131928114225266554501498600842432213653849425748567529389012774927685075054654843043803154807971852589224234609920080485883988282260374718413580703405764289661827996322566898964063688979779560794914869277658824149301116547933867251430681907565664808225225074471668730508324242217522392299829104630239586708272021807687924136095750164096643752135485629073109021819505489607055147557990775232429256998508847991168876203815022933259101867813889118692987854697611430916746538424468630988369202111425744472949028342527115262681626636809246980679014848904668654481675403648363304976888884950647712755637323681575445827983504375175314431949166181530112305032495018697733656507632468462799665268408874411968711932253335898380233668102314785538847036313591788822786744198341921341850192999207083937074299125537947602912308025910473446582992115622047499889941150051641798014154810746358659912314275331991257724103097650365194523930111901769347135235058075350776719697553378547501247742825229664586056218168213892392610946654573970654806565607831485815019543721944974787898609530250126300748734053107021923088124672135253552506415614332260433104106370488617760069365065110197425905997883391264681726786141314744529977096959879879602157176444254052201449608001426034952779915666018358810242550284590187580671522865523028534276279825535611098187588228968859556063659944655916204110999726014800858499150990170423386384023227630108718103235866642020625473395935792997973219354836921910699460986806386144878773524164590183273744396143582118571122712947164421740932448598574074862959725423536216996183781789951406452253125093430099431228902636682022840036193574989157609824311889120220775044250345903889563684984675290106823852155204776257731015704944033235496756680349652266807396387561253531784252107391294686853788766802396885644449774379740706629995467254822038689992720344238304783149219961641011944637496761642671295559397794098394896127962086576397862175024789936950316403894261659129547944214525907135711221836357817187828353300762718258536868349885369403985361581452106306682201293770001851015634599717238439045358999459709667786022347414792530517807783336952110183541235081194296256851736386192224179952098016119524053078297847883219539370625899050973864288038022715085108789273030178834840395398689071761272608308931200346996513586945529029378469355788506176403183368415882564896225878151423926314408923299278446743679235015334299330737168353378361523954558312249900014343170387014618660508110118419049575233962078877326734612851620252046631701051841129805428282548325967874659186316971503175766965048221472133736242058194965528195125931807568647416239408513798707795326875525733965580971556059811799709912021102892254217609541949124826222142780588636743566188387852180711336770299706711729160100138009507633360819679003654055126652513248802956197553769080232081728519416958576385009274966916274444710264582596861207053756307232495919385659083243323938486601268670072398426118033852425626102559916760051155052757948066069165497043216579276222884902974812414123283416233880174555118048665813177542863981298248754293379350467364549524032215547592546257489964386807303323147864569221226247243184808891968933235407496620977236146305465196819982082946627706262083045229955862553755829513677865737336836981990250379884345967938149871067807996930281484428434581741330391287000450224222580587711161167985827028394188772929546443744874605691360986766906171290650898513141769514900185140741313138796822000997958008830569060113102406423683004432871513492231999064788911010434065086627823971167901996081748073902683912656438751205248160460673467377259769617771910282371990274065386509774854231819904137517367695376850997728351332075028801698044006560066305386149531824152244722763026818486445986791989146948559515295025138259723591234268305016705483448479349655347158939301072517855810089001532763492792328188050505849709870377147075546857396777034872465430709343510852596010952979852226971101759646305082898182420324273171250384236754082415141887729253203361622581467919835899411593745199196263819718747840222434460122856032194960992339633820229001471515790728854673994570383769999674020549738918529617661042154819635178159193114506080919120570226872531417106393882526359451358092071619013811359920355389579187867810241631917064565202474848200270709631891338729590338758654859162349535114864540511544839029253339288207124142591267827049317291449975070391556842072840796339579684804343230690471817745134817505878074796897507539664266603470389370144978558790504484335345873283011537663520510014475837870345483726522675822697996738597970674335460169311103743135187307473771497349836727827695474474366917394095148888370039622902268133555651602869848155229037047780944055114438328736718489676604457043105846955264194572700188471751591310053663273202087870855922102485257965342798896262342044519199018590130846626601814271720524597223162396561379441222546463858059727306382888561953541255589011874011560607628728120587607760251952404958280364789925374463901242404579031558414133862259666463691738682902231352728385064491998839892431668233987559681538539500604361657077212045666556897991391263681325173745714294791004005574873612454358777862409805374451065187069648210653112089428853132476137850182693003380684604800403328451092952802790466254568342228646113878581261007309935159200752872225576035587853331627640879447793250924707721944534399243227970843564268625954165907353827589632596363223013209537035987282593981183730278413190282295625975022701444020273702700830633901878348771907220539810069466142545202343569856909098202837616060761320131039573288839591895716030620006639397351559180650338322315150230927244263109986963423843196996251336337792254685141120956430235193110968639713346129265991222130508031939795305234133721470759098628109954518812325590080503243186303271169854324496524110992974121828432792367529926459156018259222459280517055278444737663453843145615996679221588786344160687384230785585868593634783314329671074205386196342860179700600207127902375655814769166080835147547381197782301618270151154799622093012951177440526589078923506996996578832293942292549214354251221019337785043203233331995027347450202428839343638124910464779878960129572874884616153408272416422308413419965488325397339623463481302518000349854194266416475967774354797774544065158802218558242900676847563162604446165970532613140179973535531474916946587029034463748872658008947599935739666913010005592012054848997069011702888420291699883488150846311226501972069758301838571810951060516382206008050722301934736514718129889093470038584980856659543535587642656870765613942894822607174900926172329269073244212527249519994862419607344594322976286759434377384740844565252404339614440168848623194940580913343197034291450412421625533070127386129630673670341075875610969330559825947329445502064251340643375807475702835713448423583401390620701139612535501599817158369616203762161651528377923215620777034768658692551238280268532211429240493231869439794061810257700274256802808234069358342693841766911081650123855899794129865770552771765734610117715163426209207167293709805091984651451113981211235115636542807532871423750496297028776154721850364194594573468438935605397029907273985797721871921163567853782307209163426003444291575624023449690037917641163307077525054607003365108244175186283278271686203052181207222435082074565775820060990276058004651247795614076880282070220952227726685152632526721073882426163146666463039327498524103532629018318413837990583648567211142160658972788737149365689426713814008071199906514002358451771350015870204611794529090229271152429856587022388833827663916467601230484260090769326424480927842753129301557994908406627758640703812126468473840086867869195817626200631953401396570791296101196014354560997771457406814870708465351369399822797916557645127027885393717243204324857683861794241050210529803732610036923893383112513313448101762488477832928861209951985508044669163529746319538377157544582778542344263340444053346142140975972388325479513242777255379130639817204303945169731335408369839030328152757164338102607659549386061348749868289558354648350911225404592155260851082660802950120112020607958919267553644838589387310031719597947915871343573252292355753185351702720287106211570742417341119837879052355522432767143788602064160627262288974296183702388402518895756783566565872786560785207254136049806688590872665797158060398944305963749207505948764547231180378310228013850744350311622095851749981193358430841225865377816383070963260780973350143523504407340902008761660018805093589331338027495585073315514379758968742000895645906531397315486481017613669585121320411346622053978197323816993408417071841362647435456329703646815090327121850671675092103723011813734064532030204439532092465187063137372391641561740490955975065181251283835521192098217499245077187417753914304485745462698372268619339302283700874120079070928347882748309054850259886453180239718701889933107268237181574077963140958740961292940029439956990832977743353758352540881662919662402451137072742998972047044966549537091850875611184100661293444021140411157570256672766719686022187196605453682845899341818103921082542038910498851699459676942719498656095568150452353085946027380705387588935018476180855391838820758427150993834576818832823554704937915848710087258223772137085905322456580340922019523124473714146876623579921093251656197063750061574161336454681268928620742107774628666519635704982910490319438549381356459127479067803896499677877086585527673351206991953339577902102520793476035735386558591507691139019248563026078865269656544724684938435719379812673157011185806954620151183618863805305073047593938248729841238957596098564362673984383365341985151029834414335734144875862635583738064994397434609923831295738039318374227441608008209429747155404357182051602047921487208014755147420588472136293005622084661279182903600563045136226634336346696058423547336890369427583627547418721725795021457245344482000801207892950293521709280689428634891474773886662499112176923262685891926787127526645674388701162972447187567843213085242683129389144474437384225576576715178349569017758448107703948535944468691725344411933527873998805756678302388644973489401893717323179927335762000426638285396845795747059897452640073292205999228223342263836532350510172849781452531560683956763156327934961955121228667425224425718766168357492509822722294745167412486008492288965819284965413058986657712924802112312288674138401264811675872777199057081574883024799672377364842919353565215304856835100384763802299066481756854058756538654453119530591779207984545610427019440050327334165236208127005217545885517757709768282690028399296377094431634039952710903080473310211495929343737158336966777063800487436554581612008908946520323566374455300977651484358425916745787465966590833974744808721703767086690630997642868905462184100781900655992437302209053431164434665040449243401035749362587524395979797593529882219227418817910365577984482881463883862607749212733802301008780769236741128123946504361712115687946607435066494644596075381848495142319903720889218198286474580856562731051684338906573274544018195595917640178175936344636293408540530475242874264179185977199739806056256511670822386944439756155553779989671052903271069037465818832892384428937536787136055146242949788477928425715714001934553523322877033265542541685116866450236071517693881314291232473393411603654708264878174826660393667859192388258455511997439832909421010822842537591602565532661058159128279717328295139017259064498883881908128370066953017057942076237608222295305443487721501515408496630931101413023896095451525787233544837462534960085432941376739749817707577037155885815496658541789231735571763496314504829369041516395398274388002376718639035341354176107814956074354516206777423134199349240528332055427939512252744234811186750928191101454762587018932325894828131472439366163825992105647474876675524123329256563755510394768056516356064977594448128143662490467171030036826590066082655972110752095850401795247958802904149015973661940127925758482780146596021034953885871325559530788990947556426893870205802024715508946541957937230006309278405768409578058439527621554672497395986655271930779867145920409722902873076016825789382214938089372082876242435836916816348751826978982531005347963475079771076949120919032918123663438333401577205042502301125907805219097898497152290407567620701175131455781777134783751434922299301476256226508220918788498268380316553306321189570490562104488342555941467441592676850817416294481712460171516834806885735490103273538099770862931065629654014401992501358210498803614895018434023891845112821425194468331948701767925165896917289407120454972674687945020328816707812073984007510472969701397944192289136273692552868335953490790009491672064313556578373844166045071401136918791469390857753483437398617445365584528704633495959645588779415267965051976702641029759334892145306998718561638171181097770961730973913013795320826081126820751603813141291947755819752308512616779089985475160094115945095416177109004321605928762108240483155252294113592113039060855202903898715122199454512717917286607391603663747498082268697301463301959903699513207278013663254487209181673495372487991233408288685261311657247317296638568680810790800623908033802391128567100360969096701348283640770025284985819651276337626435619790654989892610901620229945339170894130007599056281291051339890110777388488182989697194902035173430502666681892857809542788442029214082158842634463753860352532417909194916127137624247454905870092077690350727373166650168714310159022268126038256775691644901699037483396824418770053270878450228190500516097533971501888360157255392024219006157491682700342974947749601463335699578391255828266519698437948216913280789632647022100791565044139922319742624478923707986278882213715248295962170991237600378097910096686765616947696382586152607448414184644584807138126637517063643576319927680614608206379576647819696489782652167900512953930884829102631776713507377849939351197391091095995408039394233898912569841948600313202216155290154817158890677352804441050059558183239541286661547489557652025760261277384889115913262380595213704804863943077047495782479751660455493500697038228042693526603089957752449196729475169413401069247735161407502253064362721213473740434843408052750024793170780020732249178596136333879321235132098743837357502708014596067264727471423825361001368531068739751843888282708384569910357278084600877902146663657901024803145917149223331162867513611637584409240905099014374224255475980118639589821998435748919397459007280590971608890401367588395984528072667550500939712196884073310969385787918075795661322560222924165555146264430617853289833945596114159413307720763422055650318451078709453947315790060827918211956458998438538443179213921011810362005331433494877435567409125921123861190389973714220902555255695575025744419957723123935862406411678658091513080295849473951854833286574288593209507999184225526642460583848800811140834055402906576853869123308598267115229218502913188511448863362445568606252157158664839509346328496773139204699637953000735663725785883926462136638550076947962728834738200005376215916577054034759902376003554176341196120384881983775361519074232543839604284375934131375068654167420696495338597257216658565516592740731915065970818661596813610462008535784293360228676290958164086764513796215656916721769759546752015115940818166290865722769264680337972104137405065741768550936133355589724445824742156731392569061114467996976993371609961211374466769071207292925390661724948918481817037774028460789636859566136896576726991998184049898416307615480989487735383005012688156758259930245665695380291634935173038243431141339386263756760957409378988406754182695676104139762199639851464314640629254236960725233383386096898131219403630672260317392354745217188015800985124334956635710684263984397588230043874336399926119401561747686266579691480107103627210507261285795740403431753777182077402387479685626704113904664166965743585050827589744785550719957248951096402910327304343066775893089141592048857636423973582716321990800110925130083613405810342951554067944497123734001200466803075010252326171982945040535339878397054984214912685447900861391730041213272734690368993451207391515147347603260781969757749057254071533940744988680465318076821838088442614034263287045981365544895376961300883223875737834279459961321726440912207388639283904423848203477840960169545452065271062164132270990675823003847077891125203035792956363141347700190266338338620229463081231677057614227244688074399662575324929854552058203377948606538995658143945554814022870520085893761759055196788103759297615897527358551115617678434299107750559139283142255141360855406172291588172594099174773708181825106234376652270045865967876685594771447287526623463155370865527441270901252452497061669337988690554722830893932666478966761155797913008056628999961792018418256251273514816430607081915549388293290402330183643880373289068902842115620510646741690597513300004355024733888829773016821883017616267048239968883976397250955977210864165640364843762422839452289212542269360586175726112770709849548461769449893547681051322323025081216247335034886404864977954208223525628494851308341493416933941161142521645240711270579262611665949533011532666615948539059875725411514125432200873215745246320969818266205857033372525541278037939158155719164467194240075373674949853974977487264445098188814489754603745726996165077382264820700587694531423659534042094364270976603435816020621024581827953042552999071803520495873070690338365629893351422558897809993757829830657798299270445012349281805275554591056675742520225794733720760657861651924541618583099690452321408114398890506641352801804805327955779721280118078329019953569244333062242040826303911447730080701718057942502901069392896295941160864240729572659376427242919751805190268827636806910869193512401307569923273393322147400052139684027545133365547774857085419488179475110765113743231604527413863083166001797565184135073492273715549000961119862606636374812399177721719540813934072806133174024518350858407293400507768925118147412611344554693636373321115177561466608565427686656922807545533869742816059886495483895939269309342757257538393976623700721222674106614292740545073670590053639318518429200493356794834255260411282590842022862935111924107394518595172125651286313756807321655745223871879736347357376887811042079731658531608443846712006732290733883060002666248489161639881616281891153234255362790644974477171985892353106170738550517930898386103405472105938984592445823335007591756043231297696311669121707099748840223024835891656916038405388282248054105951248150827127803495749100143359707689198385803671274383816675953649587457711365769122387948053036232272169351199931715442638557923224398641958830895171362548747103249095569813467702645616778975386878781083249967703057304602582968131954720664690405612663400911180190705090977840570244633257847157286802484245026877338929060679692669401480184251244752936646556764747209842149226790689957610567233463540464429524359526202101320427779893041491358755516837373405420778572361136117824070871157186319038176753534025378633512357843134726354294059405895504322353343988681012999374371040256594573687987689436533360613261007915122740292945559439123955618460266754126722434944475288280216268504206018890227419767243846196069246165630341920106117909958378252616094518464364136385738049372810914171845375495474952157465840299978901173698983196736494364406226019808880449906069161202380111379336571618666149461395964807028915480160782890267804519916311479760835228822889926666246149516317152259156451573278398210053235579815528070827216048709890293659886785980791381753716672668544645009254508801733866888789285368621025512182700224195160426805366987483544214643274968606096341703611831022018548881937403048752061014838663411440805821289263424388840203350862242779284336057500759647859229628010644823498260515647402635626095491442208608838187080655147434599110193749087607649230728824319308823482016707328796776808018998062217963717196756656385532508658271491562330359542047834132285461184456900903656367396653447837488703819337726678672263248587772652557665134093829013649192569933983765039239872910883238211748894555204226738451065078494703437281408753028005278699238225184333665692601117780967129004047869590825021512346948772021092736998595339519004369089703401350519706365034544473498866162651836580190909392555942660113762727792307357362945967859839694056114454579170886415635846510790597737116147328907105265560560530629018780136035440809382846159827384198344001593378362016095102545969273860287282497436822672728969366901337670317798037630159229263764301184287002979771883279266625876077771867339585525513585699473840625286678655292225859479849210824812674489450382918768806136870254579539285857157054036328058057182928476746128617654885003229534415711361631113193183721900208994631468347400240493033776324656569286000850054908077064419526391986300783739121186599700843631674225589318458251561230965354056626453640070199291034565898683935936007137105169572879255003489240592046289424757104243527592756719566405985182751359599774579908301265841012579449470316654155427338778454103814340420841012257242121705352504657915462549708305538409775037973092912531657248641913507889503580688484964936033089957258730096091404375860245901152964194158532682879551203681373729402020476498039629668318355699597950651542810498326464426344597428542150497587642815278529549594313848252108310030707415342030021432598351044749599277566553376995207622690068885396120216060440719907548364915145640696658624781818325230324377953167423345595838530499983250600645722701246131938692981322617428244333397182551400043037318503975615541116458396496929931868747314472558166457914322778886545602742719430147526422434484282961418621277458602712936544183907261824578164767899743287965335154666407435279870428886499372262979672981030210682021788444226757528552392292768925943661848456456739485701752794148238010556266231838331447581973964790688405476481547464514148590645620517087016782376285304242417186174109479062771574775752833032602650296750500661658641113364818124471037583892249775662706623669655376241629217942883536501574090837210396012226207464543646505682506286372407000782502353041331068382724040211260072617578607785735640305386344042158472346527980024886118854550405931302236071135605441642003709108184096418514569822492588891221437586646544757753418585350393351647769755324955733098169352066086746779349603263873996796827441414550730530480965776460911762116272227789487802063609148054389259127869127660117816975231800694464368218196662005583505733019338620060603554488641017852862774125671664291750323889392561208220354664763016142480207484146737793104287968007669541080753474475595436515367327261413141325834885862784216517990944712793150486294817886397712973794072330040572896438700449104337161243732032992946632978756674424421115563342737700846309142346299210029239439863985505165573863791284569131871340942471630659331255842670925430895284370650456370447948565594059023548361266968474830367237809400623305812015767401374373849615834937669516834748561876645494805932120289876894486402128136878380806140584949558937550086333945080524001989715538742468625240837009562821279928143086449759096580201588839460949419536282815345179015040860954715851607611073741055215574270109422992761638663302563910063751282947766599851202419993617513116539890629980984622728152637771265089766420637797029341689119544326875355552780426439791094901123604384570625957336934474052543127359021373347680911978613585351297247408582580010424964905958911044360385144675959813069848628767667991114317309518924974262388341286888503739995569989567540950040101007946158568067286081753517794134234176992055433222310947372310297275349385340862831578303564816154110688485728011118934840483180019569109151736685479440259769417333549925217524990429252741368589245941353898338381587022794650323615616150880087627917088522895239129104991253513736291029674026111279904531719702363059693267930101182943831996712917746805152023868386578296960607710469628732289346259537966210903195176160280529315606042423203578526760722709765451350227382803717380120745485040978510579755729456940503888676269852244363366886229386959705854914393480484147274803989160529271296182674394674447140276688442734216519914241354677083917071473966871604350914151130148070847669049444383142493385929606938286877333631863471231848028552572566972828221812904489635021249446296402596229206954744307704691454483883223045857873391779963768253991118287972171148938748416273335073400001513660087223502938331554447895647746287491999729318054414460022942895911239625865244173664814552238144717534588217655860960805447451776385660334267327958556940297215811984054370952874221584726246075523392434902863020791820658934041876897341842836229506603451971361680950296036132285973228876985313813144163161543946357783245417415778191161837223764169759842884047160856962674465644829764153017994378386399855582036586569875108628591933322052210458308728810207482158882557061390517391418416059508700703594155476995561762414351082678021936655361257930067726336855361510186496781792146691745982546389598095893804260252289558953049406728852499108279503083374585383107347230007233526445702710410514376411278574042408881289442910318482718102439510344312362088647629877260165284111335894442798772095065130755551819626460496687163767847746919484593854012719255991785319165798099402754885390067415802618649897314627500273410963426987430314364940635389216724812760787093725575117844729349403583021294785728655367397197740903214130084831123218510771957114572865404362546133607450735980133830294434406556642692628795243026004792941985712453832718466014487927027749834872815669776578167420322148041253301402854958982925299855943136718163238665354861288846340552742808422051324416990968559469776642438467808920127832533481048424408459755719886641540771778275999681695499840690408974964088565850008758349183672182055409435954233752101223772988266179138541130879272494791922087217814063153816052968863033575925470895759011676885377260760654839689622154193118677453285551239229610983134739610178273346232895648470111818379400049033557902527380777947053736620006088901072978948605489281949106419718524479095957527512177988652161191611144044599900545873821946299153193201022635400405916666034100862927339221407413710453363649004974198858931647577846928705555151990099697333606935865384943687394422652746936616397948899864804534139991454114878740241206659200362683508588642963462409191192896590128965083461184418233782819023135828461653287406547975877875391044925140144002491748420417667118359816543767367808954007967021436014160271535757442136313557575775451877450298682929048792287602202154489556388912809130128856119863194657006056684866037771895639788402552222348026332037422454928975677815797168130774900595491858780086562246419446927482143329349063701492923584422555058225452710592488171026881741882750729833410746027537352981840284945283578272114120056146851931279424030414474403553009335958202545001088042141243177221142657588966820839120019182796450257261783119093341120810186048469765492925734007200754522313139401018281616160723925685846044947395411375153006408309905445062910072716568429829417816265878883563318204362175001465659262087490598654026296698683899843354446247066769517409149287575328454907680292731096568112159718777621238603657818252129646544789758349151918018165040781571981562872441361633438824532091691842970638659414778489667842923619617446480674303685731873958157907981467838368747918009926169543188451767285104986856558358659647669939267832869591753619469679787490991972427857680880367914449587887961917023771003650693487917305355492691798385068236224060963177969154253345026113404696659098889255761724822215602360346685037596929591637171152475101460289659860189964234720564248876873135236855852159430772503072522803540695808501954965769556024715670143066278048795810293364526667685058902296377432006196220759608392462707037064159031615025090384462444883776544874214627257954341593754516027280304322949382517472261369312232689794788262840620411402526558897317217822834470157097379570184126908646077631982988586933724152987144025621438149488996715202794367397078684971217265420837819348714241118453531616280573701504491441075272046396604413928465182572762392094709365091668440778700647997551204990927774676881506624050161546397843449857145152861206019457323309582968661487263443453226724726801532701867839802954642618477718213082594592377230355328071014053077824088040597508929159537541733296985110031636009683173154708019819057514971215090386135269553073625223642447923384701080526473759343051323788065245324205163469322654997696027367673137047931376633579355283986013446737523363279332605704585894798984984517686726034909901813155531434197895103024098342854254860884402840261645919619099166649940935704044785576681168193359847045834985020819349879632256689033700211194234731032986946720337228351303598127350405407437619080695838657277330495625368836611612349092090785996895723345139680060474179345047887035968843546824477668981105496371488777009036312411743634850756692436825132463745377857277098965030225863082109534478799402887246379349738266160998588206509724678517190425660270122485829967993743064018374682666594099288316285446202835094325783418128594174333999366893225463220375882667636568059759708201413763132463022158872760845433212362461113017376441497083190734262783988592740575940724683153926329809606176593405251293736203175243700594435487866703572729924583488738880762282900870899034150184299137587386889206594264221680508039088540037404976871230432255737421889360742628685293372345441133575936539910526321491239915481176398209394088002003395270979410026355251884787936155429817650420853371955814227278791883927518561381803009053873466727388092156016830245785396018184575067083218563660852226513720046816026955168656683005253745222953266696165963580015876398653202819241881337295518699002385092105408194263372623199422648085380336033109517024943827490144198354496016177732710138899328158024449987717250535838851972584334752499442858846667942223747922018482139283453502293053444634683718806330866331372299790382408316251034015480453788677612726480777060978563239130068993117130252853743837121409015954940265115743832978232275254381385660164829458607185201621166272148230750622576236196961089856004635203560346090609598402287587719664585780878212694850271799370509213348576773762646823988821148307959795768086087987481231152214389276133663485102414414126049765731978450217931524029561797499376561298203979572172761670549573370308277718673440854077379898359386755245109949390668625580087673953721022496955629924202945138378282061783444441239967372499911571150608404013486644676299777586253772514395038902790908654583834407462794301355002803102545797912332429527278908866147766942605167205489860636581301500495880836124276532084630076553368805046330518035771260194538489803558177976558820293612159722405876161134649263482077211384949818808172488490274100208304502178027550744153031297887016385041944251707604946013529983432067098030660184733883377191845940843358199957052043567741393753712935413829213206883918147104875016313574430982192487522929660689537793438087050766050991499083239623839347824118984330221994165794904379438976187042522486955869823795624593325733197758362402132243176996328944333591699961941053363880349453032664335891326964828787769129065108944550461047744878219945163066111004740016934128337966578189194767119153444006114429333830567439338650297282795375142951000576393778696340904754286782991633842429364829146318518074573793387223021922953993590934908788306335031973664720438119954087061429815460021054906698833374855640832600882046675621690853494216527674876377355233690665017676907740096960507473415824389189950647855352326715629846155054172881223194806367080303281095987112081817692042381760768000289335550972631001202762814630436709298286771569538223468865879826671852862801032462698450516280611998549698499188937304935417230591666216595263389506904418705629222436738011997780506410844655083056877899273631213088461941351952044781698182147785621039775442531650398892703251872843302387157752588574886148815661769232015064869893427194288830247283903686985744096269621649525016791230241715111339914934872142056054741343706561919552166963943464643727628191586858376506958669970473992837012613872750000289073987015668927692356917250349346191448533279565537184782222776589382621160318395037186897662563635836951360684219091990297914907946005520080469584022134159536600060608444464161605914347602505806623631189157480532948817593256571884339539580236921750161641009052924086871137737776396142769222755329414596981949094196838852386118599570549965695903330023961484560948346688924020205013559161063729533279686644520237948899114889357172954312081797036363660247493181648138772495917847068048854229928025573111982787490188171710689913467837704859131963286212766703847880252323017002180296207620455287095577413394074505838293539574719404401960362185324807927260451424870417115193617539772368641692086921909306559160342467892629756691627939707252214891852061577523561879925741591119536397996022536250627315545798601924699220027349340000949626148532483143437933768030738313434926080693854917193650419568356531945513286932758727493407721172735891773638972706546235192523791033148456753124869722338743523618032376192106732659381640143297266827098677600400957847318356665603097785841121063175551595821365366298703813022847324971523422467795913930194845802303020727089628870849118326027792752958091082824960747748643493786553957906268739140436420896269182830080189797599063825664918455290084843955957591821738217066032564729583045521948956022719167858067761807226567869918875267039453590977893782320019707420210379955996493854385682609568758852847665944259585627072643924804220546449382341571362520088150124755999513535744923252377621972399656701508266034700294988704521931135599781688795992749262720000567430961247280711059051040842051551340225643810632245364002294492086499178983368958709404412815800827347376712033428372141478445373070172581809122497805024261203453838874531691166724860105551812566893972700168827050025188450839252490854434800645828891987320258177887368253413830078161356461460868536107830613449977931318314089121722326343339948514525243571614832984001541480402625124109460501770077444167876666757989082566223843665075822024616687544785622996987159589864916422287194791664228118632931806043934704410817281864622278617069997878610839055891156020775759516027889111486154043911856604214058464430059590115573846023051615445098752183412963063504797454082545071802064354516087215926749030429094277914635353270293986250502827976201659558940418192145310947927974527020875983549544192899189139295962822681954327789442493962127586723493717106221289532650139455688121930686074826760790089447071447516263940796897686016406165865600007205535262108846388388041566848026196792078663947842145724735381799603615592513025439278692632860092950848189145694164635783691530817730357314508041541188143951597357022766929311982406579998133267497267567229570403270289672910201056572691838058600401992873178595093766706674763876272625425529391265517018158886609244116226116052239310526088161535118412665081625376352577673566760638922785882591678195887890451606362615640023426538347622619957145608726376354184843075027770936481396106985484343490363395600100146358333165210550558251047928674626985106626448027070786370911106264888520605649024659975047546110025914566835131186961958442346299051662688188767457778173042370255961705572687331860293507012154016063816140947278951048237316585142061479869950632707256405964020766334201360488294217683589249356642563113656536030804501141848426458953866274193195215902539181089623665611212970971811119474721029371631083174080874342501921243453970595275865490289465031191516261133991878636838208170482794313874444504279268125450532864365809600387876831432069009706564781366182746326638975716789870825417055246271095254707344529233099048848467676716341039104459436650182353324848195296732672207120288314972788401396347954489137186560140155335686129934565453003518351549130179403397244255510287562537854128494422941662113524032300912019311942660600822977289644831980140705310284239773717198471522904700716710367577357010646276976652447475885812610880315772564036625374872028090460235571125603291564995753312710674132641358136222507470658558670844608886923320129932052261866736011317307288614255006961414464866224414534883872601045955263617962288433968175103882787109832247318097171472533066222698267978509118031877285076802748016260721767010866228891095473493661729627608934130778005866752636632462243599507580210938701193334816519655422087109947406654493104155807957416047512557621518043894050008849244376367860598606806325883256951432939898279834616652928134046358858610380611773415153541375458293285928009257746353696310826609937929639874945628548960724419689057981219610386004461266809608443390266388903936571744585864252151240633116387750798773113487724126539025921352505241268167303564624701845667264601292864517415383767727532805721770901938829899928687198442313558178543298543516701083607229197628145861271824336234326757492698536868858268438099756255323047447536119416406369027922114901724724394823817234403725133588361710011500353814041907038837209200622863829107771507826342068017302450022843886120460585957871210794167576288488230732147914774418058141192037001643843462967984404044073521535960499840879991522383438314652632868946829517169809922337155838069720277935655184193558026767525423331117137478332466045707422353785855557488126250736047472993451043919610461183659366996351557881604276184732616081457252580323865790995598543100732932964764502186349128740530780725647763511348742007948231673403902904218891320607019708278892951114085565063440341835821040419848488502411652527777996682020199523594360126421909877288496070066351335415020091356457330290122958918010886402766529213529799879328835836946459822874338697274748028039969145193398810152136588104793909971503420223444513752528034273285830419941780313877759788428208135776308374075024038313525429083728017101190927747671167898997168485516296223699918011407973139885633299746961623538324615318807556321315227675140354009905281027691954100917866174648529122743736724372678474225874628707903792497811365910602157720750592434291024687911984995964029784688172693807174903312710299556937612218252635449926662237696993169397244097795309383566952090856036831373116423962031583699739835414861432942032112288999903923407578994805780310732854766189166698552341401794647706394470085266447610791450688252769295671039949871659860141958255423921404530803316202573088469458358560382401674511427623090354690782350336329084478126990500191641539270514437599993870230084516072704798242714695782328175780438565249091061190626989202521569416778494177897309786143768043837755874181934497573784487131382896166389393211711227530331181541509978279755670559987831214617586611168974941596918796559375497282497510949981856456286951056854037720554890848948630084038570022099155471678939193944635993590368687305779945565581075442243514625698444864017114950931022468896997121193956650117741889992757917223092634205619302539329686842442394800795595666806317659232186903260298998203794157477740500925140369312209100329175904124648415471648071177877520423370686496486161502127748020751530893479006576936359645911419492207001581204928848670174726094431108084919495222196830310102688940578255746468709445139721079219304972079292418049650947253954617413236900182794182678093824326357046304243569354915355530102096244631089300836187574328602205444320420607691969313568698058962131726856094554792230081296743053831510506597678779443456341687272819535343167357924508810166941290611329526773489362091659280051100519271692480559880592800653147071335661985273799538457310953223083585900702040090860504214647936072820192952312592701352887219341710720846729895020827578881428885533448004387101996659152079707204420098225047079580397701980255098198950889875840009030435855258579632597973823456421719669523402931365660805099873157978031038685120438897073142424427611148177091253547206245395736912205467792116384618380559819531644915151591115788392376054285755195846773330939671679017084480783158164216792821904489389427168318806800978017843881537601137418765656900375628808802464220604775395892454364209087201007513130747902915346970374205908705362446516051815469456670395947399735690495058176723050221454226136380951541406117383937555715865684343683219733799783653111107379152295289914429097144226756688254970020832311354779179991821891521773890537383526500027132469362294278290263586188698153876267502841486128546926084740977505446419300410348821333522254251512287525586281141917007735277201582202478739960496812993412577514988510591541630371842589120795632438367106386232175035055587510299795476128706094578100767890149869742457686979047614004321022436764286183384191863980363218649817134579744927219539717471432259920905231909187367268607546364711997527823219325460590838071087162747931188800348590819209875354549233607277062521732306959661485688246975428185140342474116878537734134875280814188477726229027560457118695922344546117496749537613434610518953971061176317449397802574785875827174525998982543824503361216798519148803856479358088767047759253253211363490085962899772863859355248437573241357646386279075372313891121491867841531314932636800052130241750952834031100819542756489026526092632643536758357952905089795342962530701579238928561699990116728308644793794435001899831009680436324116992128464086260178048418912497636737141892538493765106007800683528486486871742001818841609280400099290072792758249229497126261311284603534512024996210461858197023720055536206420045451943138861469090076273714151611188487106779015863579543322203454622017636256980532060238323492872693357032563118938036756820911414092386640106819523608240744128977893180696647644256128820755878561882615499847781355330633585159167350039684096258460864246637692216789651779391970301550010863641804970756385601438220638617457522277798787274891464852263453711137794577645332557153559775780230595627640302684573403652161700886569698866942271014417714698735573984233863491829890741869273261637727203023175696475574459159718339027356312768660689758977234614798143361998841149387367504013137752879193565788019817046248788912801016197569324105830211731816039771263476303947652656029345993519488818428158069934923475667750790689558106482229375984906680799122151280561490885712992651714602838368476431378993053324422471638950908390144781645914472711290639201516961031834175646585010252091597930472691511005169535759369013267369121234765243310250736578615231185173415681729554245210553672318542180231247826687028063444862663154006615817444590183728144990428176786187805365744514233735052322595281708966253961960717425051430707587971471269539553821981258518649159900864410087197886462713597957681736618965479593619792992839618877953460872337402655604011600217808105867561603784984301542482086068967137253802957392729153311766753779042206834651258412922609378440068720121676846876186285204431127544282307384039564672702680594825487939658432188568749195925354543243802192543490419517053467771312852032609628114576608335382744021565777142382577687629348840708111444767525076393770425831826659901170686519534656841340496937244041055615944567607454411158160961685303504833329498133687850786061667525923960023986757992728258457880186172183606326773003301766577332931255986831068832781241267551121555064904466115601342762665624442221094780323994394541693450348140098988681351990826015633387185452268173188570394644645752718694885779228836764344642664996067369474338086432431353570949591361830969004062008216677236809499573286907286961017057618234327372587907245111324413597182684328869315819854192178475956534458904235622729891429040314543208131554895022306503895663081599072610513216190198871647722018804690940533435351966487100011937272264172584132369801188571007285229859237402780867163664213933605165392720663234359823300476344299834757227050792199034824371608910944836158725867052495145356787907749686321028551273446128603417303894475254161513792417262715319160761401691814131096349717703713829317306331265361333749928440961105547713413298627167963069139290674914534062478254184443113346766737703238198041198114574132541744884465170710757113315244945316095662852193612076368419120678976658165178616154878979548932375951846353856693005792172911466646391585415837755614438216862602877636747397929673083531366225703291777510665825952931886590823485947888144628181202275669700009307250249474402908922250934524031708064645810106490338027380458336208795587869526261977624289555997954269471657774832892303170432264011315569127375997111803017009535234626768092823550627308161429905333863325316267547946558822023426438801624515620596380302801168992062227589840845748760383392319950678516527925470207293827411540506610730418948580100478671585039544593543315880587661998168493237770442123862340202633305062323591909725871467450797019602066575060260150463348663488661781820599516592885097463041864069816564971235925832451104666046874619603831008934853383273894805855606177258736070442825235022053942237982608770476802637845994062467875337243397200629016385411174958346772572745019255314538554128954588824817053941048338202992559519746843758106159518958490292343168888441103572059395425092533465042316649939248988667275907488743245159457644587403149119018717292143805077474919406573202275492007733549635084939625540171871232615500364836812454652904348171409635786444679181289883373043369939100597815403962927592160661457348032577428690769017619637697121270210420948763090615747154896047963482316731059427424008211282827645911694745055370741246338866408837632537505395222418975378668863297465249965893829221330368733020528256866352222267355946974443034344868705635410330691513661768002946801800467507176387326156970176222826147559285005130625486944296922632572970111079438729528733998042377963517211705593940346295578123082905708008907457590500401102342986709450986265757520338421411178986765436806931312557127282322929361243251378424804223747783477531869548964090741171654680545099942590224882776392764180549716645912349186948325383039452468334525240590532493623097841960390748642136686402572957749651672562031995363844355867266401257810511855257332996193573055381347325117461522352665562541714845046313094115713175651045746184852993948779885809849751166580361620388659022944967740686382225642930126980578088046345797242946678421250847033619245470799931448685616322619477866020855223554680336473531362480005347554224488480719776527371349297139589872409864715300905472979659923927376837740959590209969432729438284876828396252278590561204275631892094759639671891061615434291965428060262070645505945693567517683783249626158363741928391232492107710489712610442646223780233496762780986045385248954212814565163794521356663773906344443143526739283363660166725964401773121104439173243566552544345843060225728981559239652357142008740427964878499128156447501963154266917932107379878229852945738735894856510374264649657437783414379042783970758946097446708999567156466960876563823642101412590259704490812283419012094020393858392887840641310058895764404394107148902005365414334599453555047462151800226290091377835750728653489685120397081830266350895306426883965218041470509317682096483247213997661648930408781066887138606423359820049703332065879888882561412852109959619588960514259152526070735052173154852335963864901517696507861640106933161822785116248004010413353064252908044714061735801835294119656271108124153262676702019491249533592996749747552308502304112189276225695899350728139733030988328693727925671592771515386044332830954910574067264124837290164483749996710701395724707739884376915250477307170492762827778697995769436112849160235016335644042428249762013239974501381689611634256316635373445785729168774499123484145376526385378672050097971038219941412796468447845837702355367397872359682824715980993786134541009873950146807858112685117616371490872361094008596662965923368372175368384255686235213735888460647593170686468011279626660053634718635024697001171883428595435795901040237405060120132825446819850021760476354193546330126322616032896947632224557845874442170501506064886080060772101527383754498700419831283240194925989792601273310702006644778273326404883755277210175175918435466578422021593652035803988049329034501359674381128053107122132903878559101822251280793354564948846246461951301553559910020034362106121550403802289859380717318132106684647655703313694883427792632190060406611550003579271892969879521002156700725487242248728201077202607637275532589685085282155943212534524197877416502232504472442126838891142337333374424164165686242327185668924721988469178196868381534120484320631016040221278945919043479319929045826197758151913187794673511188061461847639966161521078911283356368067692797876324648466665510639163065792376355098956127275525811625796964761494800209295514979819797126568452204378515890230187578606498800778653387998104334303180348060306863349232260011215942912125594035509776396478989245173751904415127339621304599268657116727340738289013295961259753262324942168962183835786079832852823323435146761680506442454845502520655784796574770567415203432205729492365846184709437573517903866862219748997739451601485244308115547426847738224895431526775788157444661660274944193715478774292959194623673403350973433173790751265889907579215896298896605012452242467553821117778743384229994613758384147875508324390518792092796253983992181905144052887825265383567132269837872790712514505263163757096013115811879486659709904166621969470299546066060621169672359648416977587467069458481740879740049059078104032734714422837912459364397945865753272361085017139307974820368242217796436104318698335636005337072584773591699338283679742313652705583400902699108308465298748727385583535129530121766782273592931286086720744733342182423251765758049119965643564908511086207867641071366402080291718302262371672102943866185494129237022454863206592704954520576848930936742285142108627595854559202354023354937434768259711690807562649002096613355536397039036990796538686927963820158505703290330013107005449297241695877810428429024452346292566066721331695158349104292294751244609847186281332882996195380529872605752683360071530544774522613231547246175214500271065190243383505492884423018210721105874716568636860387515065007211632944012713299730611705844355575478117531915407271037649781318096773111047794670121202242665985425203616639877299045501374554847015557582545101968538237964482167036770976003400324357007948485461714456485099905027729162269092379530569680628264244224297469872564755430116524069392429632830401297707817040113204182391008176049936231895768039690154200385888474200038794295491064827507789377789738343540257544373647750911477809502140713639339289271665255749538793713586702477900406477885990437715656044467681661298638788009945941738453016177278764375590385762787720676745498190341350620645136009922796840684989132494907666683713794234031628264353060406225606618592902854065527514910601183331039327735846321475655244215325097152832942408397325415404748685544311733037777362520897263711507353508447747599971867108351535139216156466242270576087189917725024244934949621096600965820870296288384434010268130306910212040086287643731246421186151589226810646914240353069630228850366670369999084850706045970145082650684868752789992645961828737274505869363345667003485900254714501637136269689104629762011947183592214445827406560140937094044534338553556779467044293270692615043900061885977766943251238618227034010376465886184686530045333760357749180420557094213911584138530043027291493069267512207111052124724356520664664878524164219619223861518922730019628448761022539231023830819263725611584393136983136874576621707381756643962470172673745982177622862395003076257171214209410811094903376713041330317473265709984398103402226046287988007412016502889839114511066320321704302818389482697282432189823131359488927155211771447055120545298093065491120677702011812943833420169823808123085670364695491827898134550094427037589436915448679707292699183580565231988060648718328858596463538804578573340010942022673983134508092658090977218619650717424311583142556607280944434328511839949527062341222459398016563297178025997011039670552601099695161439947706235743630081131556556977647644205144281955204184786268352823457242312948802176657688232606771373135753608937409500147679086383330518314336829752982779727140551914180647876572653502264521577582749272014484331469728119046790804479643303307448482058066765046428405527105838946413021974192469517064887174766004764718193755815355756736757944350208316175600103556078080441811559101395091353543562369647061925052855879019249432029780230373471171739780984450109950434379865383424658200214219471243382888228685826014141537595462833459934084890381763407721710128967431689484823388309345815962351488834308603690241884893833182563054440392987422131327901274904756646301628559779292019050016177607754058902979499676876085281024893276421022120311455983588772629667795245385631277011029769607736836790731731351054641482021653835861303334323797605060253083139573469993819972477124151637721602194557320621166617483920559185056915751992313938669416379473123946837705740477201422495908841559414979009016904593939412717174764403876394281322473017623843116845620681526266816236130762598773841387151498522852656023368323555489441633849861944460588362280463200416292327278947485152442977682158239775098670059391653116883995786810682063183738994199867741458673378331371920048235535970221422707377372551979123337542870043579622478924996820168485515460309030167718764284349967819155195817770426339018538658967797252178396768743491061871532075816269342000400069046759524757890163273442190820546494905012975649833005257451058283194278125815266215551255640933327913750899916928164013256983099913799195156792788330114566228275874669847672137201540147382286711585195044624903469575927028453532780710709695277904516468972691815706885988526489200072992342520398480425480056889448534639550190162142440735164199953163425159269304361418436732966160229775665496567630553778164937569302201368229659302947740965282949481351915349113188474292881651274475532890170143478011760011959109901825028555341108404432838008414720668589906275160194984435570534338570169826716631248594087766243245071378751528148843619698710896150443394903593336307971699261852745653671863012601153729226572615028805714992826711586915070177560385593204025830899276644463016093006215812857929367038081379876841350943203971719704437544929811230985286201283591452549832137722901386177867186772599871892929938085231889026581703764495429404250826444338641867305642085372516719697995523243160214019742161965344131703311067984274355149526602824828735111095608130199396561602101336650763160537895926405648953845925582668028073214202798895094152192821410986487001683605665530637983878142248999239868640139150660336263607979875991947157509442015924418295725611793759272310125788761400763637707502086490511972701043602412741593580600915704579792104366170716919809147504018366336349151052824549096187288320113914330572821330931755768287997380901817041207260406167906591322000846908741689597239522132565782088392092621004485499179948426687397178307362595974968760788517509342266286502608775753326091747728442994186262161467873853312662559796790422532164838913098301340250397785370865819376817081132109496483367947565121978810663775679895105824452646343461453663572216558140829524298146730638776987915562036712156401656526120854956065680894647340148122779051676766471578131205296402576284620767066851154932774664190107512159604443447356579192016014990720890792553257545186682914574629927661973633183994930066917515396888338708517597700928963067260496701268221104555448480409866677310932811362828301972224823530569110894931342890240328254924838921675033624815887267900298776104682362806512704141435084193574974243510088260930205398595596499805429386270377030384212340762371296167106836379493594464004318456871257959027822334767845520597110945116197759351776936214591384300815232902015267754377308675548330539817199292734115447286103943386506132575130373770271669999246056611794255332330147064023533129247762479056125519075454386497392652705868970839866540666493063012314052385766652263667320134345794211650299590757546085038186282837437781524303415932844699623385351651367162002315245697391258696378752987073527547662975370674027250732641449823120147845179675339121570037333039471201108567142432633041274363143975134873751390461084670727661471486293985942304178673610247933536875356590016110258921371391300407769732022111602806832181535609711374643082980622932956252171912231374725213098197989495042698897261108201675324510966789915488641736077374203933220544969991518954585979419933559811900022789559333746629677230064419802768471071602315098259958414059504481359635440732619915512340371348484804758521300625815642936751171738209958367109423407707384127567368843447001758315966496615806865352463660914862088983292168545530593358289013392249491176970470505091599236492099827966440229567517997686875097963990278289614694724484772607403576092473093654427472780641853396023459145859306231559684506965242321798815861342320046539774196494157601966110713647320016973759724481914905812095034407051883657108390664153868674846150614302812491971903886378544088597375538172192466693440403806835333816223755484388318399650488980976608679649653772837048174859356428646173180634275626974339976648251158593370927009141609049194485303744205983095424263959148628883504555106586661173741851335859346799647584254289350693540469392493456923247179357516953738729860928839696467120363300127789803525754219197706251609315951599221376828717628979624811724720631446749153695854805025461604169935279008609623762274450607061146165709659052803243199101167774393353123000883027546513190343696766480444940273470045666433980121612522993481670910870271035134429964081665668250286920722629454112613666552137103665507253893927572284845069655466903119433429166706310012358183420865889898391357449703461203315075465234198079886635193679356333717025051435857254697208338576788786393773784287820719149994582938231893540497733727494491824431627980040671905189502685047341582482795177412515578722370113272818435970863505392044377409879041978192210350649831256041955776256549212481007403834410404394288470330182804398269723478774291875277544891761204447146496814437499307275096026238002662137854687902949111890915316066736916120157124332645340678553460947997093075717819921922298236701842507567970313112697928530759255786456469570777199294044008374268232953049410423233967513594912884435661085937674750911808565215616705508429944357994606869114922905067118429912830190942036997601192771895596388385169669772154373110413446513902519779261956379513831367463323991456029818617734223883104035501144558873562619643649186562216751099308688603126006088416948326806021314990704817445178706544751305295106829503010180296269389398975153311620340209123603997252054391870566093007743774949143052955586364191887293232448765103458464566565937965748285769350152032067556709538579028384187556697637409326213825565716941950646827106455210262886307995932188170403544299521380107583412933390389698887742395970237915005549079529621869727735737547835884313750351856104501270559234463807653785679513826298357951834057987877970213862797043563181297220784762059958483733292311119835967826218277624480461581531919721981943960778091315405645051593594349908190990404924323722514311856195128484051987187025526643077131197644087069981728313923212212640104805679379916606813374098912588275616571347527037339634248364581328115650297646330106286470741882000170495518501591639777233829615298738465856139811137727657152922536599499405062261535739272492441877812533200373350073605227644793966185582274144443097497879608814844930498803340650858357923366973600398523716914607260408756606582550307001443352073380194735124175707604798073208689410311327374851133157322313206869513531213670854930881328114557507443790188316613760650141145128349334364569753294107255100642953225406227662008733274191485598651516410267213718516092968710237123293337932393253352215091575196369580710912023223923642381356690499427162523041469935018669276297955900562130728861077202536943795936211498013668233900829712940923948963665117015396264272424711780140509568833888919095007068122177264538908118991451043802097422568095253782121579343920751746735843393812165423971626581680226776855217402118529148204497513430827909206862077387189007932294866879057293212339893196067977890624670582750835054364624808320620743925226569751431968595980405684045696945210652144834890721157808601330894519003143167353082065910875923500891329868466787442172621708361952847850344132043411015744742139197567076108853666124447245620042779608272750309782086023607773939720309244888231234087598270485063939582436852833345598111172393932893953878464990827480609204294783278375468154645683552976674651998179268859562590583093968762993608255473276697648531232595116177528672844029112057806468418122777214663549142907891856398782707414247077841146890381122684360109783036804045287249030461858108549971673170086530610585281989769655952146813502236717939536508868226422938089573607760657885084637718456155828949128089761959765244081867252037350227410488988167518647240280010425082710785364137261417061399243901754789155334005074592994896917517118667808532102742698318294032896226731045983355255875393346992035237196821075421683236190758676721360122721200713011027769496283922498264737069680301357026178858767779041601109191434665778622978655831373692016803584168794661559208946490885031447460373966956090130197970175042843423836005040810552498750975528264073231538938623987542611012649772289223868872539489696496733670778225029231331618849418786554199504320345033038050604454440425386462032826146157741369113196619636867268201810634303498043484058081207367477410067673295550919577644285719317497509952944404713353271167192196283333939007361634835401960474004541336146250570835179138331570398492052699454716984950613358592069011643517584284697384408403282811108366754748033186750867272348551667592267324465985210062712553930861527603015529614820339854168645226489689639280529834264775233775320403825705749723002686094040790408109533565710933884985947555542171944044110884789284178657269340226208789991105555146542296572376110836654239870202569848898741568136238184651276150993839412778416745053180679070527124202798088446275844434292774418473005544122642749860046490781957906701406403761123566560134341156320518928458340226741065084606043630176760404659026395245559355787220559513072254665452289212181127598134974165168165460537951105019145818558292374385076741582342611922822047872774876155586103014535034500223131066341768484610283764774107314572661653774626902690606212131195790443979863604653445792270784156435133946833481860360781556102549227649058737507422900803344274510320395302493599945251714499009114464258360724196387187170411851491847137047063468278008704587036234944678324411235224981314247212058586820257034230473470435755689327174791515182806303366837983282268237737307360677300327131173768482201649322639417666385357028716891811814761122818131482015952113627250523913203795873887018217288157878625768699399975919349402966253664864187189530847992772318680946117300150762192674925161952656518054283942650032962064081434379887496627850457824055701149887646103416395758270946582420069253063658015178029768471657585103537752484602040378388297984704649103359489932785606593193689115340903653797828886554454549956195417144953875555556054647697055757868712686819586078856727525054771140078348929418081495768045812585504432687607732648671826090598237905038435237313071995699795528804116692378567404528017815301237917918370677377599001380992163102869821721444833523546383263861798384757899313137915047142504160567358236470126419164266973818875347547064238051284117199353661834232138788167345997768741991590566378399959251850631730528898443816570300642179278645004421105845181975971478369689691532693852936072009431913611742788059409044877885812240321398112566614165020605607869189287842596773954655256707765183672712666237152366004498962744542368148529271250396012363214166000154238841362067898186717182703998638476961548703206574880846660510350434890897599303840715504824905582010767888413937102415732306689520928372753972424070765650387384737526100765615760678146781847399480026852187742743908811494982934664893077200892201345757504818780406556479012574575831069121076288851866252233712906943408747991058569289692053989452214588114838002368129899084152355699193081937845898106506501404201467828189735830482011926263298935466171598561500057922551028739329956898584373224338660164350745613838788142340956151521311646008785127161294485082976490334103136331216415584323127921982953521017828953017872923955193449227648404037074130079271910064428746910704247205060429198835268696149867360426534925074203291179473676359594276416829941845629680111594101262756130418156812244990710464244244687607762013490638738765165096821875911963103122337278961988814317962062390473409005500621945896020055735272111317811009986298326639356831297353559510718152542959558449391675340635531513247583836198684818510606142423282833745442358034800859388817443097858389265666970193934483328108167357691963924214544433860717890979646466337360993418799848863415512919002927436038998710637312546773371203501407113395692659255250046618857771453952537636850629009686307105341259951157371031701723294035646880305145761589526552357352171604902351022298946067509008723658928717789198597775148071895808010276938078859434729481481969469373559224227513657075913960133097892744687344766592770370958666885478457953423983779744182740269160867472534203682969574191382774430823599899591081356596695955958682094949290345959207896665849935836649745392020029703184767642674397824027654433516316963019815199637052843544696293394865177077863133362096986618712428628535236968336656607374406628704264871290780396173307553259877554224272480641334949095447782635484218674944622532017768224938008657328482570146252871588332628787710465545466522762678508103044374063843236764598269993370477482000663971907416676694737513250292114314450252101720710101688854160735930965462816782938765849303423244402986192405294148472617850147983227539226998512128514328728376362502007452089405470014624199755452633245992434206189991274602228377369496059979136057346138790783765031915640060845612448642924513064775166822675521143725568224927869347789047458134543458119050043788704894356208658462067094995919235389668771152811386168409527465027385229383443042898632736079709828920334545390521658193841607211851022666917252697688649897414830817854193153955076851871156775904990348383375290572604745526365841377268519901771881909893270668759951140102914470605746375378275962671594419657999828326220446396381815486907548441446953310481405367903784064464194507900552011910083709270547998693720598092281492549260174788845226410521552641037143212436620135876376952887418285977245632492827734969265679411404120632242894026914893813123654373684188458541062574676367669467889956965303207655193428308983281576108214752230739293886341163149070827836469689876949783386580691494522825723125392205982133968027698022200517588288861316286600416363459259590788149759478952404108375537339513457088832523425925925508997877706585386841279105031304877508239546935967124006386260930084309695928816479389537072378886554088903818037934341639841027785213674591283845856243801872035086098258272607946803025784954510128150541403416842186781462403610525667102668101467776938398350300949080864813053468506912451784635897255413682155313234512504244172386218011220717659482429812967537821988504034940223238073063665836470288682243400775470068664899324930722709304590182953907601231382090355685718479398715000551835439034481163923160279474765435692984133297124988717275818823595163862109489456022293746082199467166385216438315375758985423594996710928490890078132334486457453896475455533854657632987951291656429170076527891382536750451161888003793937266462366339956712669835261959110286254643418492579736445462993785373018721306612628299171932807910627797459318842324400262453478760173916809688908209303350592588282508654432055813824650323257705661448425790932178475214385315305721704077833604543405404437705249773929621456332610714160388014668058521238158690515074221220640305923009812158246676498273100519992171902949266363112566186531425495449810963206544909258204469343973806441245702500603968906766849724481179685816343179935984838641223703843976260331324906314562777719283274874530904019035082840183135393726016847513853135731559013529432435731928690093504598073894884653252779847007460946885194488248901066990465127617968066726406012329695528214757921147782230784073468233151875288015450031508883428998361981437661112271563525464953218906684596497089548710433894304053882542407891720994925964934484503170506644402832470261177582100600312872889460583320266687726478446267449859243990000164003870640234723228449244618381874182102737309131903384738365309007484081383181750659483230246369272977135266905586268048866343046007558374905726711037291065375968863899795321260490869834431613232360342154228520802403488283181066530224716200516181081537266405274655780556093714721456342198635717244649896497432881198849133236005457279876827864149593087910044702826989171818459190556385715689460353706553911486611275212844284654571468775882960912116428831556155205405652731986584225289609835935035656458554761818911742763071967407288819607281341854400921809242806969915947696957411110339596028962501282793702895377143480264369087191873265746521531113566827211455839057075035614576062981045751784450881585278277569747885308472861020538815557750228783976551741306454170563676990145482684250727490363576765453608564307664961147276550968862887051880146025166741454994441001945457045368333430250275117595365895254240328954135256135432563025638852873521382259042245070202702163479437884044749638271875497739361102355213924193693070621820573686358754439786311197015602655478042875188761273609506206467580227479954547670928725081110754075625539015468622463267752091238838901111351975196199685270273913203801431869548353903483109698769259549965652024673965370839257414732725162912674349543854643737037759032815388749978243256896082831065513878514963002163593940401309612235251102857430587125762171541580246060919645530428297527379935539280583797181326012949680367962193916973481235762695819069123481132969568841089911613309987689208749106924781928682682358531179099355829310419930652550932719170100685564367595405018000606696636564298163722016932008139883784144795309174510649191458879465675040676705870230633974556209474245119336060902081093038038636221422380215653783132960634344070160171257722263544400091541951589880780911358388659213678026228753323356898013796496101960547612223909115003642679537124599738507382102828066655090989759249989532358695863162353955395000126718272940117809331274781763182727611205970552650168096974821750280371811074021699849116739744234693706579647485732792343427994438115077463451886867420445045740863113137258765344508903939843659277862030444082497602213245756295980828147608897859653728589934266186302747284522291190987568314835258519110388177620410424183565153972667207911279554863151497177914892452271709449072917737501315146427146320835167475542397626662835743814946081769559729286651667555493506281882470557105513930030046070038931230713105910868432248886127691295890828645898730804641753219556802753489742967911705023550244341629501469934057350943615202041499067284477549654826821693158635721986629979668154567073670586001378137910836652304818415185683334657460120129400984868350286333552555965855877946745501587479925494276716986211210320911713523675698408911557499977433401546676441539320691510838449036927255066816642532478268194996258664811353535557082167273519688044611452314897130469153589797943988152780475427026576725270908401474839022139838326396580387551172626235414223243425759675922048874407241771093148498862197713616673273879773471409661354834772407258932938301210654010037459278602185311046510728365722796967754187886017068627736080668696672091911662747125813930338468431202403485875777084828817596320200911029282667482846188152173108528040182327716238240150196175593849756627279495506417265565556531573500363981373300168899761890233001798136010615541868171968179585469050065334988156365203375046579528906777997474225706161750629731982723987813758332340434403562202537422786185773170000194773480829268346353728716180013777393301395453756096020797601970492557837365903472719748943189162517497085331420685622137651938444933904850437642577479287384762624020006591418719819844149696629135554170013269168180482689429437873973947192484367363853201747280133374039834693231328710670711060514499175268834170790859279936037440044216701101850379720574029568443837126800015021348503603328595273641185857265331787275360645611765711344635162969759362136883493114698844773578460701724061633335252669934005902426506617209021518487873495510792345811763592791944494394448676434303323266996528406593338835432466032257636602695890870635635902169665105450100765137504263522586879349966292294249230595914057820448804460876260187878828485137816769627678715555447120042021919856728984709555996368473970366984808654524661304693858038812877799419110666362864982295072147260262372941135059676404033619737907394941134974243852304083748428417488534035035593432390550910755448724707960833704431393931334075655840445847560311267398918134619933600859944259611257770964292939600613649620781726109635537192369392791098593547349470903826715790248016751227333503553523986867276079344476603155608813344447948302991560091308880982706326448107319847665671680157447268583137209520326338869583646497511060915329655917291885319884369170337912791696349525939130710105966686529864870353144346302576294571373718586713880897562556745267034158046567507267565242664255073388144664292474114544465614895720550049617172559863489560030043942114290695551643094795157245778975841928853207000655652099028633894028523201616630438194988256251316401566929504478854213810644814559378351205753243068820037024824984660236175408721962153924474285875217346036440859786626116014164187778610407276088867773501437754429552464334418015278830233885154271875523212522869765632951382715943345638822554010214180350586331161562203704791075549320923629039704631600013614549272685896669721551214065197178210384348963304242242518418006040596243472064700948592881180686912289116866261368098552410483322430456848790468785115780200587303853312418530916803454827814454510774534719924270236083931276277228911871603678961128629820465791275294903185134427673911324116317553771198162417831108027598424457801767140989585981329312011606901580105629362271405510046470874722333286716314554765532616941435864322847737448470777749335367170981946299229718351228202859958094802014708447205040660757158332159596566473712328119668231002206504782034126214619528564896698655507341613072729470071750012809682343124027151055644634317139841051396806635441700862300736236363481226333233363195425965267389891040695920570919365118309418369951855926535077598676456685338190250620070490199863379836453211481399606513573202293130368690950281870938780373626063253750461306744627664563120976201844297833748695474684210143059667561298020254066604880096892414613201825539469769560692395059508541100886247700509865636122304502777823635969271697071243875324037918507025782728435604917017270283064017199448923292517497352599086184997156082436949624845207363165833244038850888264510640647442382145589336470344823520635016829275997648018840963783630324433810431740605064885641984991791519325999354339346519060321315574438005232114540291540847470717582457461306389179407507379307839508406186120931702083035255132994546125993678789398353999146977749477780312592883834772637413571370618787417916168285393844291239716248241327520910884410526193293660937699001990193121705767378393494383954282437286015878084334247895809186956758811438609211444317635859430997697722690244943780010822214282193074401091757462204727243834159222329785413943967886598175808533166494846886050047747335660196854539528779973079250491124193737344460880733500668952610950866260566523784396059270550197286965117188920802269236672511372527175292816975272405195208758278855461523346689174216089282687530545200141625035485239062538778586558982580269357039801308934178463492297928277107266323489882308032061726536448204697484432197722752361036561413087672757638057644173412786604946317456867276350681704964239682852087547802190140275439720665815002589945439923263313020312357401861355186650963870861636172205730413600769045482353458968307992742156568814608958351176053914483788816067632214938266028744421798417073468361479923623692248257791664258243957455663283357900524833301740189233351788544279427515321999588733349303141124818571627203225131609709706724454625867512745497004259917311484422457247343242343958240502590978009859019430014050954968109562948385126729447294604707434572542063235249440752692945028178523210650609123103117627644897840059223747722067044347386758021925903438202376003815885468717323962516704453506360938659464624405055413337525413825801496933473655491898964830007258944069479292226381840126334085992929308437040272661689738746182459719900043571140414732286559449500548262690046258760655661640719320752557050149172116377272623257034895586270871674761753780053199845760595829631741679576060932337063264239600370112188825683358028676130094408954323664315476476334873053246645828165775120531102899407804628475288210145205547842805389024100690819397493044216317332180551666715236305307508691435954706110626389865978341535167407753066684665223012768737082573674125905840760022200761666941915869348511814354640896535422893096323589468159216156077288894854786776741454152162811539106315358657434720774283977872311652383676337164615858557616976850878731706188970736321062700983891632497965467530740950354064425968831875657155738729456293554720022322530695529910249024635865907962511590382605139664461603336549098126779361415975909389612871453636216909170239960892950005266127098031425112167549998025039821154926577592396182901058175277723004794960291813893248423140501095318033179776057870557286198928724349944545995840428142666374940203377455481911109125134029403025017754442779486376457912519901700018788152563928963446987770202861376539828855585934399092947867770605347930408174810302879070173417679806624592397057383979752712745010898150507565650033789699455407301060806605588484351145078067367312169894215593848002010933798253162829140101060644558704040089382581481852814096590833456268412271118295739417747367325511709370187440060208888746953122051370395936909171487969091540563405547841983784680279378460294952872343693107473683744780398080032859811313410321128304196565050554136814935527044001381200153358534284976140106830426540313945606349945991053922420259216595707412263386147938270533583243711096752041266180352101172316753881815371460446523602733481243430025101301670539805487195003614493451397922146746792944891162501935012162287316971726881827371892285857808429984060319550023315492008040335691250155947330389847300647876078658849125000159897948416758800389885976907521146687114864969853480253101716671125872772114610871559263167808393804042818856995453310560784373081226921311172484973814310665982147926382902168918625421208471319718198251624450148034390604453430804024255012857769842126551118020643483278574260004492748006698178005852654847691752562855849750499558176463881941663316533543664170698052169905358547170132260172534020332319882680365475883051330932064056174013794214619801080091570980105058989458121375021265155726826234371170414837481659740709457043881104611863543086521011230241704862580687588005435737189051552331836676986009999368329854536301860250585651509771826959776782223359038027310536589125572852651938442468854268418975464560126659202712740158846456247961250628609888283181885748844150529928542783386541536309154903972361598727804507309508429753674523888135083856731327117364486259029260530412989594203536318329221850306816302952823163693045007457293445481572786459559798104724513792004087307940217582062128156330658229883426377875286811779556493023327929169373327480055094765376244843401357957382629403439482428870297709501866344574271681597075977642098151166647019527090168014605709753815426944804025118889160854797729443702741827393908768321138954416516255139466796655702025745219355828177293566620292475443678704335186137531079783321722044612140454614508055486585152473361978629515633960506689156227376749523012597286042892849335907593349962889681970859643659702240702151482250372272537977042429054959630607104976318074815007510101288552003169573669976141051562538006223258153434729494340579442760876507761011836976841235825197223058193421090361044137556558737259622561563274530934243200086588064031361283268946149559535372224784302567641665702746264060109800222859485718002384084263243146248763320707138436819114047929840257826649708711356753619466430201903113912968666925540755198964208684413070780279754905500046558045244271370100700553182192037758176202499235954060970940797489802067881233215526748716088025010565771560079019458263855869200655715275519661179105722779202922649266574372743325707898023971254960139129083191851269114672919909491944890427197326955735157663219447491438495491079133656699071748685364809119668678175446671943339491965156736505169410985142372569701509594908728892155333886321924249790349435269747376006853831745087176859332206409590923090624501583170224269299718917542316756294109813545200670188193534032811491322933366385903707104094129498612640014537183312852520808210406271821236429099561454676411987082502665267397609209082708715764551071546572197810644195000466978889058970241195225597199668994553502212750472413878151750132811797457396804765102642126210613946115427989262459067811717329417021077415171832824346354444339274234802911567372871820233145793297949488656163187583267662938408272908508888220362307616677174655536994232850575866102350221229694142146261638665710660335333869816306584420683361057928074730529148819482515902752046985662762933122927047194413002493144485545954012374089145870217506779437841886250225254376201992352104685527579139368153725704634390991897849406284464133936560369964833971183166981658583196258951629515278339021042526747350432030855045276446926315485370005882584230716728647027007443333325378100697497660135798521624216274434469836918557560572856266657354851640887607416919773166738164979634424459782366607902528343857073838964412668806426136764691253320148872988804770107120245248751499831337129972673284538977524055882469574718133052334404023068609971298249968307779180016952352591346285268992072671192464522283270544412930406352140268365423981584364068791655718768388633646229981178649183061883907828994441676398469099321509518952535046162317784306426558815474225093193565004717750828992422383311531817653379110758205338547927009438267776000861848102530868194038394757054120406141379114026021108326639813167907871281169907761437462327248222264105846051244812204167675976830403914554310950870250129483073385468961958312996154771708625204563194065726364046292869849956992709653003316985423942269503705168106336654041202415415372936584898042272344329544222663418268619949931142854485980659702709309614006880811184149189351762313218860465587858876133855309580416374624593538039836265520938686920037166601520290950593376520995704414011377260070830561711030525129342509138402924961247755617724175389446449683459388432344822070699627485927618278830490557307013534514378782738284572358845141073564373876656417811380482399819933106685884230320715874121363259305100283788544383867399453197912538064340573411872405798517399055023762209984275656444084574089142433160375511525189182803729912950178505089637847694966174245101466309452725208324112645636844764992089888419109206503482013753042185831378715036350976995960624493657425463965237319105128229765696599051731103273265527032967844268268025387965804401395685405937599058919758465750403383580919380933821829471148516048556491116103048618987080419397168440466413008930544616772599381077855545704514716361396966444408259739580921315051702029868593048124471536048630035533935436881520116742119006984231477898896561941265531872523096410101163578104359371437673954754221244181980941820810239086877262439851442781844697125170298306654126091920377457790434416135343754333395859455447119295206008600048767815446390346286846016573746754713942540080885100003338680834138209396505248129701497540649110099693862615207343191008108718950075043443232491029916950132338090748251509025972629379717150080552339127008036366374810915479045348685546541530188060788582254845153755968516415132091388153599341604017972974362523525193326572923966906330575803746376965677799691861387970861927875353976405331346800638759153752657469395466902244776228431975361858261106588109950388901076877992487703848149278870173491085294147440827479786510416614974399379637251147468583652929797096927468486226853456700935203112130236608199267163302800573008843921953208111749961389598974821468957812363071314702534795971700444665024169494446492783043332353917807461202685638956507323699381420548149870171723992060041182019383265179506183443522893570713984670397980924753528877987653639873913439448275812169341591805687284464101995205605513116917626375109503033781376473745830450807191298360364128846834982850338114064393767164604394749582930644150522974230112484643682203195485911989700450316224340201832242778512786938933766571465383585593224670663390344858963174493055403874738772897376961639212195819744615198756151585525130847592032982370058067127109670304445394545461017536122215471028361975263466892174351239607330970137033561751429704492609059153167334868123588696613852488828053016624317089478061474608687811615234004535830031360058235530783735201700505961816236339645371165727002828871408806968037387414863506259334526974031762934741763254474062066896390091188530344872620312751408408142530154743511027594882740360294947538630628292635566568728129853112102832126971830382615956488289817573885753887774708547159677151986517249036349531634779232085013725344920564313181903446628109539880769431946083546237117050687784074505059577086696765961338685928298209323723984032941573025458417612707772068096238415852132325763474727485599785318233668056746542940320624404916381453246534590320246175126474401419488965684587525319598676192784224778088022599680090065450167511169565455804454396872450718546933817555139425552147964278033060712800131407258914097200576707866699357767464521780110525224521924475842932148430152135117281625286648422774305176293906951396615518245456734893322772361439782464621692345042561330161790565072540069104871200240489497426771067190004279267914295841486669224489314512371164268809221943850269659417713128853013650782917935838586433697045252341132061874798973803498435991098555909004545933229336458042968545738133033397704913572040161986457134959133617421491004700945539693330415565659559696887512258095536497747091797538606929255106372413883841085080698968780347577088213425244250456187606029308926155686652733693179009947922922023347082212225566597633244488899893494535978432210209428227502793852255984105580665377960469637544430906973629422627954567177011602040571469802306082705876074684313546398481904300639219394944125055048427168799447251656777606457506447826445340520360342654542301627551386056751905927997168095726039479191484800638405959018141694390401213969031819270121640519524449819262670182635562963187756832997975792300900266179805646435745255202305659005962964905839573501623485077332248179499773796057826774862321992909972420307541237119787694615333563352628308217819885112620066200605528729165634430188616227657480039390484122862204987147766784836756972574840133784281580286930064650731927949318092714930461206237185002800512811589227111751618421564669231093951268553778731561424220576310151365219168064964532318211681129274081738056585522407389615018862307724182259766537696308697723928055341281282020423556724909022039512698424843269465689209743149900648746833461098115453054431828069836574327297248588249420613086934411046081039105402839600409780611754440002511262457125859819325407624509168741755560347736429259067495979625874482443305093639275728843414549786708702237143917337858631408715865425536767889564378127786639252685238306052494653824595267751867975788782571533586071795708836902096712464815112031248687390746733442198184826586605645306260446630388631162602064594207218336680156858829970613048852047100608550079394698639562570537505863089655738089176694991067539053283930789939942878854242282054933662378283650314574188610729331971964137694299160045717945900364086055503790907013441199393165774254335139188894535350852960098679105171793620337050775755259452412882445077954457082138849028953408174487759587189432465318407044529488984170562711222814228420517840835813815315672476684102965513279204888813149112621364400891625986602703310197918613975186134725707985366825466849704978354580733943868795438814092636355491061747470939887917591258445120885481737214948469254100500122449549628430047688573505337095161647972487582632755638120516362372403898136746261368719727475918091662776419459866383331657683252270761924885129577813078954446546642022471297411234622960730841231896831313790804487239773172620797147962769086576714340271434963721212894237104860923987027831752885961621053724135271149313972446111664063216637671498742228203929102849149885099541493351141787232471771336846020335101249149646390532013254695343477437486220584715121465937860230263561086596898690189552966409643219294751030541760188941749330661201237058843214047387716237029794625611786049862898090334524694785486985490514732584416453838979505010374474940936927029082854089578719470905716083549976301299627922746163457448205988312590743183210205804794729526181341924971793200580769752446962147436362608853083650136129809510311641951094042316347007954253561681542660687910454299575110162003678595116808823447960843675959110823729363342305710271983531294925043328151116155341312942420832162848412139966235298345629768963338147692703927209614341837653905192842828723848164052582724529899711445533875590284384163644679551292792636247694934749828461033981165521456569638383334425716529646960626382899064108988416849277710154834554899001944000895947887493165189673222872856929512566714789255428949956964899828539287904948234483235729551305000747323225932862691198128910439824592273098083440603430115971971563744277262921237904395409948905935005444910935582514250987119253958241496648473805923683464419964149696816387575743371823433540352093508791278168632272086573727799806936657507311029283771991313910514069431220060138614620379932390229837568597640256254063171942073997517683402460640387304781368641679272052472713080373745398302817997646985035813914418301504230436518072302110541172266014172071507761527822055756115930838153657207093219364536137588909817394488168989636761121363639697186808761899728112072166009099876098327977286822707182509391809258476248925097940013714168896456782883618418945041115998465765155844033370552581282423920604913227773636607799659676374465116729680227844996022048620999006135448807098137560425890989664256198409453653137352827519724423437075319369076814472866638249645735223422637690699339442680206608563148187327235074397713853096252349959323470269235712504632187581892610932390248737314000528990426650539761689180631977991902895325576725494174490915014796713114407928386306892558368448864057489744603294228520232697407266858534480581833409937408499106456551565037317656211971009695863495197637797884134042823170963350294164836732542967842601296418352962778827625351339874958728238198689478002403305895641513811610886641530665562918173078252772886381497533733319258170240740350596341782704797719566765773162117838721789248333178629346815983367681734243373643230493232505959315066652845775063672658683748583534844747497186849402232760881950789246097644707604775288068944036019469869379652658954060877150242031030161063384254751478435437785381164726440666461017581028297394771110809271910855699016479787726845093347063457543818675160476386266922006107656098353055036789225088858645549788602547816365939622146932643204676078276922678721485321515760528566874497236933117756445709637838898022538784210137822405538530113124044389204380543263988543659010821018605584503675942835156561518542532377136587088796149844289360509515760409926536211520704065884171214533258181664949817355620077964337129865055225824849140761131717076845931176359270991398034131401006684052060875291810487508022465817437784792168569355626649022442136126289038448636853813034549032737241622430354925417104956304008825494136324074622480301306540372675216333809480315686285676588557692036130316056575462802989105781687312100396093314241715347271146904190195902609500110973095361344504183109834498093458406911502222300959225199734440995226265925546415838233714351920184611356830279112590577270289139485312455064491921034541981509942314982269084186452506636326874783410634187495692582347252980755940987211609236777706860341608813812495711583754305329006438996025307839239889240222429935378974369688069216369254413180962131818383163098500659943067785442940413446487654919409341206296938401122127160595464496756799979222648823691418570743174316655554054279255044926657172617641416334596586470437431043337544304052827551609846432934686761730253800725612830571830432929673877254824706958174677896140632519167169914615145744472260997537135304310838820093033491991131781004815257877967000764691735858443412604407871144698451723442128902045687857144648036066760762586589696507037089898889746039693781894321810016543520136183624511928773012114669666444650700558790780418409806365664645304617082580844329141698872152930040878232459965486125948264986182723732005410437449056709729482853218884165602338460439520363610100811578095592036442544195263077813262985707916658658001360648502664458573744325081948276500869343072133922609222160869396991218492209460121689355039932527476530261157114239767573974480303017463272087462214758626786948600474405922433263589821518164671685480729384271957933352049039967679193517865173836542006232264517590194476691941244669350452928176388420733924743253468982774688957736589973349306303509739298270071304950786575209321941981908963883692786778580784262847395316274575789344364758988872157763277965969210764838207502425547674812524744850263854230247448903857456107657842023055525678546246653049990767288165318776457597082813471316398604613329223657301230651821325268778843955206798044141308041489902749802339585900785710036681511207976833646935628499288846931684898741692304617846837032149032787343154596965986473746266791497409622634924694158235987864656699341932673329185654912444450652088753299797179464327149189082431074473582314044107527711003888650112933574920945480919260399558598056786142845394341689437841690874165722278305428335350580029267750863653534149047698065039438493208277757606126094007495782412396410015001286559531176194794836358559041059279904041903699337762167853050730612142529221759162166851282841279949759331924706080143457314737772637159016540530373685092413439637679971954030085286916721023902000794889337638715388764342164679751802206849215823008680852392952628163799387346270166029560083111689252965282149739279639226102458497393114068898860920689491521508467033027759923090739680036659695449519059859455606258835935934781087981774436429931345589612746503162187319114189796295195758028547216854194056423269632707449133927224945141376237346591852085817097784235818735824462081450222636202704939711568983838502030315894286657253805538844460550702007544729949353640442858687753868134083671845342260430726041311342208434556015124099737497759676872863300448961743069240918536008805531598601625252953770239948975021592545579585685886402946879677377504304585175623518689595740358082500739005296758419711332850303417115722336725270343258808753835583727343438823081016130822661909550680268253263602765209131096616713118252705585309383932046777357341773568921160159493010607647675231471142790595431026868901514016560818388867158411615634924052841196461990630973346588745480386926592548683636301940246198283112438365902545086189381464238313827088853601726685636997600065624179897317233316642164890330359052835483600222895639341146730494748636134352032604716210736296017396986250541196762034454965043898048780027183759681937603425520302153559428928658762634255013594459443235557444154625541153876910945540235505401932085453785444231397622923800454622580068956966669544790076596681188307723188553776335060669341453351397257632542663415302921434979766485185862458127577423217644752361603444222627073694899009095541866146772943299964020934546161451360561419902541529980780987026622999273684639239630959421058147748806738493802578670678011222414122358218383124152253065551617139233154829774967040592604206727627205242069574169201387088760263522529127361732617891818418974149668044933817585069020664226321366454567992458265885975195186623941707842174937345169384526943526304892606519995109149007445268517501313889893525899605800805706142504655937449894638769551000561125195368056221165764355866724366802542353736515603341972073180098582146784592531142682091957424847290805653739529169268825082566358239425605623219042834343360014976142577413340831204253296538293595345273247674326960998121648105091981886415915679586284359504640197489645651557513162919464234721123770229553204258870646457115227319171602981944438919794413461220913811928493911465215243247823393939758135594804929534589512095832488447599758324716993795205216655122136104379541062484003413017926949549154663183800388388702106972454821638956407312271695589916771694243681060503044231299160890734827701597589618518162320326977039250561577644997278360513415634850525734728790041122000753356767748594529068801357480029806509030518318954241202445054734937797307881969135650284410397423098207848619673613732281768715751864119489934950893045947447068243112139266807694292468959447164323182306789199806837382476376625258063983734805707459712623123796376953841164976739785549571755990095785922866528030239248626157699537859832940973272304768404344230158797901205290859275246174433211027499035094749531303474039699430230003358816937169153261929335138218601402162294044614875166173631380033248722682441969150049851051691058541853267972016873144631976583861053178459574199580050374846204187300381815371115928177577011776083598624819207228159854958175761209768007128464178338321881307394829206789139747848654453254211113233992741949792825639732512559188706465232576186477507149157468700904643747990661920058311637994865414768499930117647320503054994977906588353802411101272012711143661481629089255386596364752616592334754324935923766988039415321307072169960258767624623064236226563444403911103685892556987782660655295119189026154452827006782997952750033584329404125950521209415054204509633745370555951626219219288865124556494828120929824286025736421826913008533546400657767661527185258178868586412162608991005536196159249089262590447066110317859963507326885600392768027493274092352564123481086530116245232537451491146556975725937671769711788628869645155502265631550186941211212088868190260673667450687585195911495491033214746915139068660473509849867278775002534926131871293310670238415740163149693349118437170220774985745260761556564361219745034578732262950061575234365854200995765992405327218110740684403226788891669134954230266509628959728137693633772368677905702118278999656833453106908248693736624373033988361083012135819665127249503340320159454279381130257808291696637669313110579904087262638946541547944806302392077167023527699185799849480422340347845033106089252908433791186711108451460425724535628912584402626232604480805193533204189565027015265256785693990276581802499832130089260076213985911862913778779201045024799163639262305223225742865248384430501610947611503470118079321891168858720907916996079775134712330617492977256108284901483338864806194568985121559348709494945229827296617941726401748734972570063242312530196573947732134283566961321363247493059728618319762942744842616701823330582359211421664866647992152924245746001066008211936941007035942600153734112325227594314116824420652183402807227727875085803778742318867819937969576019387858686408748775699372967868439153698845102763084522997498024257293780999339232947746996930593651983036992767162515405925724011545352154249530574799403105731238703164468037376884453774485391886649064655444887203712218836605482975033621307191696354654604684133870439385290058712689023802702731279482832402768728309373737809272257631895422387468350937347450629488453693076971242173632480081639344010866907124012946976961467092738808726280356963900595324517471977760450365050909399105955304023497994070886979610068843232850764800654292153405872914268539667595810447253417142646333318818002179832028927256966794847692069688536024943489191715581593120341069196696407982056466421766415460513322225928276531895839182528983275496087126441053816304393824721556287601348967438253734870534588930037381696841648810932101885773737662974535032326853834139964563902640225084515594523414686488065428255918497969242179507797792856587434050912893958665777852551659088350889401227757975214494653308250412406009429459536320597538373771112126335732437432582242373654609610032122536297743674710552368828278079613414380167149102443387350460269437754975008777792874854745934387721410591373409738106639868333097076041082068618330770621917163731756381620265240146594336241647474287737054399398586499610218993268459520733572278035323118571271404281488066111574480360713722245997875297039481854646228005248260447762909001717569318152836353779009082092959993837408505435833904305799046896297677428495912633299738480941988816373207765591350484466312526239466997739882594116655323030281491573187739528826927995737596865844112982136403261061229660495792853080219598676735546294046239422260682696922200004671511867274808484888330922985548260351811984994392229703395373536321876668976223810269198408417588458364825554844776959242251001505583655849841677042677477991222929232097706304463391249819220567020806998628207914480372101644326286717745867098906078118202670056986504791639668374983442210869667832988188070685507789894109463723633046994487064678600804026306339530573149164086858293208456543591221910956383798146351778141543859387893631758386396335306083458099491940106823006035059706837527273065281372724912109381247326292195438593405600649726968626935625882360601185813031290591338462645714093310302545317053317846292256801880946767966378328237834529497379779478463125031621311531616727329916004083034606403170079904613223337140413301305459332816909283487860907848502489863009824717732261659692242183927901722881510119925442620053115358585112922131092713633552143536177640758203985666206807189799391605227247361640889913731001713831302515674754752753442293748122446217220457384555067335445830927872799028963678675699915546069178382334232586806594872722574762452840756617881443293531831231985460676909660918069481896703282465465457436325384473219298125065380021264835395834044879633273335181965250773258630137552198013452591673681941931377816899402161580572442458067622149691632119724569696273129023271684542856423107994474606062301540150754007604037795263101815106277631554417497830684209524955842540583754326504009758155329443274233723796788357626241349169259156212295194841962642432972114199283362409013982956921085257480600085522321520030986438072321362713696499299848060829890419696201896872521542710912862225069872563237428675656041858127124987569124226559174134972391378289837391389813324041912784788561754673668921836957096469642341840963918049432789373333318071968740547651480966666594958681957493695709441078876769568384648462084708252306494038726445041895228533694042469188350328559697108877473079989560411130972640706941649395684631460782721865306393110108801438883008077838907408163824505194739002768489183273369516243802432563721578575672779532137387631083512251423139486743184069901822020886517235548582175117019123568295430337827598387616864889505815921040903702900891134908813423893863351399801798824015467948221267838996679428577345735803994870625715670647946761681476813900108685932498722573928532817454014037145864540847686349998056955357978684571375314214247708652396017321948728940195805765043813060913985346004857589918201550854457090633654828556521566273199497083887134370273057741158852634899487855323771650752432608716649608368094389904956156012336756561958973138845375671897020596357860611288230446411886889177293774341920917138811879122553064876239662678255919488361872692890143972830931198108310072348392175686520617625624865306623532109807260208520034768975737249860356793240222421765126529248523894140742060997219667581101387458113580294616383842028938484278921838012416517833687274341894380088894914363647151131506935697748489485540711332875472052516250215473865313626915196078330144328744056188982875021990272873392973693223158014309769395217561343883409325212642825453833653435918915243288884170424250397581461111006438040125830711883869573313623342186676304147780806259059710667538182641050533778972652231297435209709810344085961640650164163590760746333596262373782092256580828285091169284685427509158166021729758083088932313173447247863708338183749246848959904086925531595185671836480899529490160115545920645458455260071329413204038267124496948403469057543578183985490329837736784189283833090979575234798806298266003286326158133509693686863939953824943611289195772748100094323435103725530742991482095795097811278504702875441800681349660971689058707613791642214948812942258223876100851526438897874180802484827176570433852477645971183052735445748577743466071870150092835817368846519429429472594759205284045173041039021769899218276366472360816850853679060482197286217091649054949331932868010347900565813502182219953454158409795942541806052971290871266427393067179890676426010499362830663146199917834243132895242741877029488708286698520100638383913328426043606629443576789199751217798423492932684551594690955682265971727508488495122770967425694398581229244695366181922110550929349696187950153062970979938441787064690381598837533400637540818564737376786268070794400283877078229005496584385615074958189427972736533630864160175819398769471737347609384982006604806529647336526251472014315020985823852609791942659903092698836893646795499565503944832397952006655457933680754663012803497672438871546117635202640771415658266723617191343843970179732476148474178750186303196806682291477738296667996792759932741866444552647329418518118028535449700780136617644708197797984999880497685727808514808336146280326235725255378030249758778892124726743406646887349118108451674737531307423350020077385192430123996025019344497725983119123065060303180558170093300609418284363067098728567512668550129618532454639631968085436370463021510698892245040330047790674247176888486463479902138247225254160514149042800042458955649565723198136570282723091892013470091843059271264667984664400891983071193436449847856281765164476683435161779484504925544651883085593671070090094498118661486854732452892641501060990359850832507934847137327409991356407241781582267862586028567367848045962156828634006283707558110630812371614907584949243115986464373590646248137656185689597473469030595426803716093514516898905430768124772198932368071861608425046415408205023781163646547150484134625029274173355444437001363040051066746489260660173284221815754794984041621677908831332846865930169052162917727633485505551622900935025962017218364288746493409405851825957221305516378880212220454579565055740148740626321690938797421001209040888937412708876989034774877960908056358848533538286416606595069873216777114006329511796589761590928099775719844123228165720482147606951724146299699065563585237136423874379518019679626771441072959300144494151201755554599285928390462651696928430038987715624959229046762435541381699242248969725844080828380828129485728730771676776915139604200607150716942318075819326182056203031967457605249337336397109762244373733159203099301633266217585555833712761706645458247863584812263634254526985716786739396437179461281290816088897622510176777190493223608237670704571096532968692254666958870902221694975277037988832365031269627813443030028718778587460303943825467248720779042704504213092579547211489279180532784628500359947197203972974146839647517375957245112601770840034026194913735349741379903018360702581321339245300984387315707783839471030756535181546110979954325467588240178029425918741062204138510360395735054467947801028649392928861560317069881942574039213382879501613586017167163527378976191642432636683153584272947397017834237737513818401622213668873138700084712056031755014496710786407520314757448530388269927218321062923497809029730557491984670061871233504111402353762624251334327463808318253447726886076898356382093892399558920434449935873921827916087236706149727677854391356317583534584540671308702966752172445327292046149814272843258972470257824476923542353435587870408498547204935794932206855625716861055696939288788875426931042214407893124644252548246978544405368023173122027302594730345520699462287449520189371813020742821587500679181127382775567311880306141905443417854290297717061698850783425323226244967632312174669336484867225123320740516192258405036856939810977348868921872765415749638153400682115826246309447770064907439896491540367118821056961302570324225412563615000336607454653175699679798123368455011521237770945338165374547897281578201419851389722012598165553100487597030192554836794845052783329225085279002226324478029227120144498891936720242433293060739367098908526308135461267800133380459443784800627213934642773397083388106696844418371440440987262264674246160058957987273181509447851793114010571719123545646753346386748638964525092469322236918825873159425531661345659729459426499849783945288024981890860707615353036673368745959001638779616220230267986571204401930725882582760132405524287673940319742375605175269902281200059711854527443406649210217086068905794488096410911581757219362610412921672951092463681505359488041138232603375843744571791929345747353889082148937217846878068102848735751642911402164256214694097472615866273474381793749344564967111324938190931371809267497171795426406416034416724527047619263810631206836273714721840204619986218395043159340037491759410434852022656747545333303941426131422493199712682252369390583659314387304239078955722730945294842526706260672147727192528766106072061305075624015850151938439078752854731145861021749179681669218379908721387166293480499450567017756207875146777326784919915992560463894433525373951701817622152939375712969922141079522806689765684327552113779906183293393022813058240652653007284847226268317737489868455387075480681245418745758054411177602942645596714169720434475804196559015418291852804043700134104855729825716190027509276191940138173102637550410090978268680803972267593094391202933883229972742848595825983435580807144885975036716198795140523648452629766899497245389756361140682472717381568340122560245260803229811285902407201481401605056711599003271569573837845388411659932805906265917341622971716336119901996857957428720825070358617975076150024378394679705174831533162513494058877454481161928113024856777266793588709612017812706371361520437795933455303649898061809630989384044268404447849616733281268079634170356292062585807931904634777825398655175920708966147400097756095999721123388394270275958772536050007723190992761337146314995184837548453221312864917840747513333667512713203060534207250901380466512102362019895559281965902036866157753668493880016609612481723902853576664420808951241857689668921705811610249318075049087084921108149117255176694236719023521116408994447007531807790200867325949511492760684938646465962919996161454598678391449293472053232589741905725399153085463547801276546745528917200498552227134458467624058938151117749540155559992016906022173587481508046850581336856212960227667814913282138549125019422805895484444623414108431574194129008582510231834969225054193541025795369679732651553664214665172740766846181181711984011297193932978496651496780994990200547065467009825086096789254566842517938553641502744532181686362923994176279181646077892530834348015609088960017274555940627004753300674894865317944559341658852216887374920755367108376120083083965208374147882630417708557264953529380358280329315447623863865199146582340927237406935259496897174349452999066143954202036463518040628996389722332244641784860251562140361186252907935751802338787714688354169373664286056354721544491033671810814526431134484843809390000988310060605925169412861688457021876440441171427231285854896757306734709279437258659303666218744464253938029013720893855384700122381622005792444125885818831570495957629691489428040594567838548908645883804925755708858172685997773946100672750068333232478089267850887553956906282423466602940871378579515305212834652074688724512235427873269854026574549215144654082661127306955597149187676310706696952837646680028342467507363539574802955193715143116948472164398954193596523045901833390652434358906527110371385652440024786460534531437900044460075470433823615801614654409161492667963494038359703615086967421502053983016350752136097227579497939167648575422781617147268710088223587687580778568245316010479974689449213443709903931935590102441153093066589165575775718082035791208500630349913921744698077724894807750629208226258795491542867492550569008205645817624848853885034482203005907060754835485261382096715695245945552195687734562125985246470064132164120219794766307232544978490870994471732565342227131973135264979769170491439941864687549671407612864812050150011819876523203506188315931304807114301028780128911130465299838850574190052320508975473337724563460077254883375769419189888194117683957773275347697270002620368550665341035327528334352353742204690527281131240263907932385363080737018181303059366725603721169867155606760555036300614081643282691822223319413720646712386819942170368665846089917402548304382105884007898263870583063180761587622793582122163290490450489172762358516690443708178529932932728820700578014648051476584167115171607594561959397235157487457275289536618666884894686658671321663838179805961611918735152661152742282473658115887781827195954512123375355673782874214973659801571599955990960885892553384695448759611114599779455177184579945590390711472587622141357449949051389630476647304690056000877035980687608770233586833385711331296169465866720102368656392180189837863545209019763771357336804790084053966720483205860787498189922421600153760050825273669627999833185113659621052151079284620894458204530555864416549661091239731383058453248642147141675968832683863075402188136722058191382121407450210798315784195411679278752917725824369908264203719204464197417685060798953952923230552803796853127983419491666918709868552828578326764723240152398635464408437313772475915969254077769550499691639563847465390661739672524899036072268905996813456332253774753193210575454626845463697038370888559569948444994187369126537431643051511169045525056500711920454319920937516032110609656066417642168844206508421786939719557815909205482858629524062379756918522461461291312446281384646372251289251642747935584873954491098815762728701234006705139366743400259876808578144517060574991555429488888321838238326146560079453693974525274041888860759164157324929068072062279870763722044946503706375016976209791138078845234580992130158287601807404607007288531029964686882324884603165492248157963290424788743544978647917430626482779740822666305626820068388209906690182328894052256574582984891829781780575177312628676371624029797517260003055544695780578749233963136470503786534509250473139269702550432652792098653571286843244303752330903640258245016257657925070539573955481573160883830661619213736848908667914202942080592076585936389645894250363996867900107131131026380492434773857615218195715023628588891347543855020617370868390913013705988164647759023108570921965139211135361967226259225565835382083764033108381013291070782726967871857114706033934622524480379282910337466548561490773753151700700629982660328783169685297881957402693388545201511274339225496913966646019169978897601190279001274376668686367619543449120344191630137019783243931460839805323241026473207265984693665463111150994411597414899985744341241783559662401499290776483325312576355782777611857617056428621804756285733584304478838055556426137684590597103170423095338992854689617834296998398584020525376196092155212697894414566954650780065974331500565759684261672340548224317192431192384634056461990625765031020412783368364645666967411146103314663110497801876701803270634404441699068511313833438438754736242075688101866624384752767443516551604238383009778883118562919758585647140007811812747992526061788350151082756531946568549116136414020732019898652449578021375228439514947519772276786920811106240430197705657474725267278101674541921486274186480218818305676268324960031536950175327428627721328046656519801507423612788178401202520461365782189277816416456668265961116765151100606901271807944634326710220905620013352368485555775903203289952311797463238592815031544719946644463926811250668075318106796987737477518289441400558287547905753281925329355297317798892200448501272344016525623147038081802725564952285152788638620319425136879290771374812481606574766048964793349573887829968298849645001117035821250306233603744550383936860653472612950048212733125051068662042945523666957802952268108699200728438142426242559728687141562918323938653400193073258845117548546600876022699668455361066405980476667453292969504727535752727598091601176842454451076232928641414671847781599897258388765260663919672550385678557481904611264582912899261877264523412151270463769370048680104340642446536645216576620119285826310581510065162675105048010154794412368793657643781994603998603627463393462741125256135694701254662730265136617740215809444581225830358528262728920588601833064222509480801732102080606151534129685506195837419334911507834939726777322598002746727563217106885678523946306639955769719880897071028284912832663194237133460172413411989263870639490706332317277632027553040040171816680844599471435337268697139240766861203268240208859428529767197200121046930760975899096088691435474473985199317937275542010168132198775114659502331580692148637539532624577773571838126616347760660122346436381192451944209325832459007520668453603686783352881699032297835803654847272820609507212366530224476600997548215436418641622424059848072710520776004781287736524260005626750635781794054186773169261180369155045719015522189789848202265961798439554441890083305791526711404066921840543006289442311167448063768362620140687303245479270842442211993156104005530363475887278392874434350872384515540377123585090168557592176124778552390936322122834320942990146189669449416160219254346561851424611072509204971844826943036304529335235010457459635950554591129793785582155097429218889549418186734557588277841789375245069283364046936951305002536955045866734087780003190339516697422275104283962897576243000385390210097720681545905022809395589650955872457685684440836279034368885300351871658003537977480468318900262913626109203911189326657715309713877472914359458299421047522955079524528660515055346534251628439125464906871436915800180209507024157767526544869203977669084792301878646681205919019264605927641463746401406087484341610186600037916220852262542071783039935819350770839287692363650946918321698343829238951679660403713975551377823292838908156382990883139741588272529482798711035826153575489921051132639306051235700579639143772813137081001823518335140171967532102520310135410894042273182798954582236285961815567405751124219927903032942179981679236002225933974319852346819445234984256720802040376869434858639750400452949709770388080766065923272913937246453448698855918011374602730938298039197089650044741363070317648579239320862254155531962059272422446020300521712953483400240446599496869368041740209065834082720121419789613692473597477794546523692596662185247693950016094923135610030026302541526393820190724360344568086134595819654384544279097078769898925557706012555264856962629569928108785047345881539570872734066294498268931300317487867163064971119322520660901618819189864023406409219730420694350566977749002971346352290809188562823978991618171216397700543145528437927178613622651312042719522566690488316633729210917836255381118705189240237455716045217615653876598966971049244670942856198452702413212995288789757436088655223001678115652213554731566093758115475086613304044961432775239037495707159853006207792515554214659097500306413459726563502580139051948867760166916192465357442707619926214688104483595358941037084020753904965844383597949960687768656223599596786355098409984140564807184891415104770884926626801173824820529914565073614786591811030517352747528262835980433814035357084432894744173646940696110055992912273773997822239574321058540804314303703890654905748794418524648860272138942707901861395983703134516843872023533957840424470927900024111491255828703592283850335077521465671095629513262148900815118707299655169153354180045146246641779718946057537323803659062951314324866820326312915290365727581048866402443983034194363444477992608424268416481751865013972782288305167606210586586910372712819162969428998493173667047142820383259680928324572598067442517751333788776631432258021987938508425625336372412558391495989055149371392608063957659273877572139313545057820652783345870192531708810519609378188009133733177884606499076095740389306018432577232488060198330475350556676124386919854420309168042889967638567585880499622184934010937876815880712300832560684828205358234080414882079507657406932205807506495526042726593411384837827695146470412812617753633776261925877656995652123298917564799471476087380354884307126664565930134201971087163199523052456463964174027420692419970739811818783145936932712592626015711247097949501817086739276869160041420927125693915831768437596925267320641966002439528884589723775335606361978645403040395795279667548861415392867462092879663483372404865174270475001904446149608399187463803316763268253643280497515715781231772916905564127745923912946519395439609345377583192664975430473764645849348037187431915612136024975062723594009165085323282066070142119028812294087501874507885400896801718209630639996153012574621023223139002304360806897789618797388816595693496846278956569708220840841306760163729660862307874116559222562811211272666853304081251039421840590144604927459784005513471858523711931071072492132511348748976859865429400521472046506487271385993952912577794986193700434861929348948347923744299429614738293119091998626756303037727502485475588702441010543333421771114111367482298308017234542936674036880021135039392613075234518672943866065234323248062354146664949005808957193788584678094700598242875180275984912828792523759670949471051473948172620589628629343173224253445265834464956640028136823518897596231739844713258469339305018975893862119140155728518370624024187361772114751990141571941685092548589934603210247849732295835597539823151542737723180791376630885111289361841455237793512179867827382323699312045987728201344226572708263264198061698155025715049665630711942704237913542378147130961750396344479700541771007256336711685173745062842435267312148208433380316073861862928283480865626419639480266751792065571861678891776220455976284193639732884374753471333443910859936223493565311108404877078844047224964951058425343274683033345447459708402360822389216010694764827262311075830112018357111050988889802467286637818308917472076167926736976767650307901676112817675585354530352121316599117302581221628073840176461355239171971686141867596668547544841150115674557692078908016997951972497022490700462867866795483865120635264320388327938231971995074696763567819345903328084138714488454728356417704532928221965221830483306226857251640793461583681673685537660568289173404703211019018867852001191845705523307495713195436594594098763700558045923719985864692938166096037068954988456216470008930266516891394040207132154032795020176723575438031897855239655869845896172824544799947891148578907435772497702618106890050113527058271260575912790372242416345721821237030793199076038264310494992225821237181728700947035379247415786050075685941380822426476042480933808088715046665839558719266556561255666327361538455320455487779373667207088983665671745465503468852047989246842817776666729708822873059952784187405180759751243718958490629472407709235433733581228006076312765534172342448163899508859553033280359300916316827922114776202997233935324323146114754128981044454081258907979527780377074909256592620094624516803055011327586094889169952790919136836089106103483849215142341893353407182476933085924403713851846802072317421944873588254268991977997793987611066820009712970667684717378144792906128721286221179057003076455012707962069050744561591427655468932442902632038883293015234179139999822907050291629437775285847406927211020665704232259361919764904954263590724028241790680463167409837262052741850525182611131198751495654887244696795595659651743566401166666099743526205665036473999422049701803966049394528059453190508266030491137948937807096651647264130636844107154526184477998636538780868416616868723563004994477406828065532357599160076945962902922120275820550809462376760603499017656990673992568720963116461399784378281276005547414028161091912353000345450099847390259510370678539158358486144995246574205593744546837779314311023164404210309123133602565776973428655049224353384209064875599426975362568765700827517357033038207793894786756981735425558050119883828429306460886807912544786497993318291612944686469467976187953399633872571601533833998583070772475019401639964019845695616327890130788906706647225074526857582959048113541875154895682849447060127268330154483884562739705308299961292969856849702532375141312264596718739873301939943847171417428180432990337542601734562338826936693138396364895490651116582461023717890899188426919212068561204197775138930142237630230901517629769305042081420250863201881831070725913265627746798674752257582741400747325179180120169417897101124166907712275340084034133671248291814578463432542953789579453424002081568000591534582017842832401230090709679594668499125881313435442630092271291211567572104327933696572843544309555508087088601283686100655443563261577875339008321944064725800892509955790348815651664747403829594353739442326735952590077786279005574170797196487170426662083768712175844809381139546861762479669945858982945821593769223963650677119299907124308562266916666445172169989816603580146256332715439088569473126404475898316372143634462488820151995614998097260561800607604194084461271838765798310406193947622585797872160783901756219335561884224655088424362833126855861103190794732376129943693231867830217912003733970990347759290987656666042206894607840513653286064679241540989011824346518812997286652282804756298228787267007550927522345041220342261432308459567512387262334818928279792522003248841896990535527543135515236858873367449584124917104553150440688169781151375442553383353813784155155184533440851574459542178029674013728392978149806206275886376079413608013386406083012502102196912868420657243248932624167558087568930133983508690233239365803393669866653816551779898433700393047430721809921337596432629576625599959336687193604789036722490153942042031307547061885383774385074527190239278191528215249259785875838508790493329377068732455837823410362392079290106322717173983164082623659924135742122386377857343065634159933489172381464107987408377873387375750753014885822345175819969195152936262477046844076929409046999300902463909272744851333427709411306273551669883523004748568700316028161193356765431730254186047354165949052439009131171137219979370390133282644263440869706039787268688591348088699657472815445476710073621734779130297170927349262765573166323042449216044824051253769317076829039738243269007162900630984780606863034891105686608550247365094054266650970840932881192965940159555037393739232008386985332187184153710449954458642043273746638538349754286205644975043292783812405744885658089643749700430558549413550448310473740741382252735774036071423755159384482810521159891231090476456121361766273255963465548306746696101054931052409891054906316651067804688885753794931139200275588736013221778357976892775136387342326413797840419683216175919426568771578602492917486237020872841157554552273796787971364009833985613010622444944355974859318547816222042035441658690762739697219202678720900273476007084506885947174780634685107353233906840145800584403501951064297671371757439810562365087276222866843374727890195580728154115730774241661291679674409248200999965871621295532897473182219339171854723805612607317441971494619591105215123284436381334136352042162259419224878628088487137188953083644173888340158648472971340544706495050749774692922318681363142029798984326159602805502965441193740901792978062452572448212741935989649022725675677764474322319911223361532994601057707200945860483792115488170518465934067608919784760335145385564169844455247340850711351889176014294576945757616702592348622931845529495534097956795537612760286673939202146110899980681724924628325340648185672246897451828014532411858781194995732134602319353381107013595306211466463302872243727575123866959004489408871283291242173307629122992333834708215887931950139246360875086035197884778552676625603870166527922363832310484398431894497300321716382864106551795085555463080377819193200000419745157920204737543291143676571897951796980281044815887381812911624801782668124890507464950888597805594856198241480665096335796220158815245581468457161535733725875513586767208560857641809031977952167748294506757475422458349186077918225056915781845571435326466749549571990722956678356551027538982812271467144040567915854672088841141823644342530564259270043889446470434832497571862187468058637294443732337924100388673348751202750703851160713302678967542137793055399131418839231044591581762074803864297693951525455397643685635573273113854907702284598467350307061854149170449220278961863953571024268056552022168874392680346302026534868902368595187595137119323485975794710603659036022040657865131293763352034222568249710594116098194758407833092779791289613924365485110008784800672688451309013657426443093861040038565814093683029503488672922262464422559307250726742712784240830633755369308729239436806078062018794351253837142159319431191842245518125682368527088033217538746620901198870997799739733562010119360483474203398982796398082344396775931070668740881153464419952944756990383564586081083012110724220901523655244440809807746173204365385181422837652456709899642599879200288812353888510186506457438282550890532260269892014082555981552227559531458221072401534767429204613720506256816676656006462968449104529978566569375566852849044164236800930460705443779265132585271139457891780196709987168085863759212751165990633268608361691030941944914425375836330889833009036498013622390140112372102366636263752923585344760688201949416963739859301068978827084509030213649290748503086913565151150033985378177259666480668933637743701522671815437746011646261970596822942415695454497371229818597926648463914442456431370534501081669568074355183318180072967980642267218634574733467560886066656734737734454415215661932134028374080396420549481901101827840852597825567965543354074817883275454914105629556502350505238793375121669402119975714093296752586324848635073171138943124871613364107789504074765836960605094824928162810264588564559589512624149739040683391545497868739739474769257316847776066786392675820866893372771783294535804685223484979624160489115600054050077279504318960029078578522043870726118714285894213616855987713033734572499242434404228924439772248606094829570828485875111936961967757410108510091899182825835492022509849848636896426954485992475429152576947494536894975573965835490136840942156619667006912318262542162349891945986871213654502592839649651505987690061906136170377614642933829165522309918061579858469440693919967936220384290210369864279646811239085708248537432830825658780426764046050086900890206054032210730655834971529329294429463738263721360221212608559730149513178666167489556733809566174267287435178283943237810360041767706962754592045912192576649543885253583931405251890851774200042122856482458344061970267906950308930769657335410143514095956387141444954306039892785447317762262562117838923626998753642466773794662023952409185375627902808345060907373549081904726537243953685393513094876972475686107421954181885853833849686607656998215431947523864247287940681299933095776016456681667452416805079173907404739051923370711051809520364792085470244704256493621620242377190531337633699694725339641885597583700743848467052838939282348445199357558447777738848577009806986403912948274921161443502887190503286407894985090260840541960709387308618139880715203542868715073624965701092915031896094524395489061168888295535512584533666323826141546413825908625326031965881261207661300888837035122051836825861098790348459189147120109851204143024185171458956079773306525421969025585561524668399539556712789139578834055147171917345014543553679084027435515743053018102294596945713903479994678204294034677782388151995514581380373389632085174409955852015836857262025948686938954564722339738704811982561544318125302961280268981204459021437007211534164570092834900720110567020333302283408600454028616764128395840117173775630520377452859475324501739655525115972259489508694859911525591005192023446813763875518982964227942012781043874173494252367521837777004869138465416406009770702745795396849303149566693750254464671969953969352650076582890042955309718377494104825364752008495729837358234098722134536827144303031894163735622903991083199125695691962311417244354661354825798481628537179214046959215682941250086185688967813782647659442807865858467111252673246575018891526835488332759189542687682338460902250029460391853760805509875524207536614880717402591439396425480990870164672149463793695173311302045577938101386072476286287461359498103906097866890798060693983261785140715017225899204809833216114232811503843783894539371414655751781686961869082410163192321779892063128379685178064730608620765811698144506594993722164736549043536328192142370066873754790916701652834375085557765286562399209350267597416962926107517419772407370609881735051604809829251090487635298954116078165740565328705954608662612705768573615938498835331148927253985451945458770535401184383905622657405102830325099782068440803189094661452082351557494982854528619266916950746897724840601224320118991970909403553684994068259159524703066069036190768203057107123677238440322472331405445082748174639824618371112583458334865396131042928929643832490324687912679862802715649633702911400648033480333836855821199010433258520267332535141262203394782388036163061102203380152549822482254229392780374113575557943541379879633259430753391482001748298319007190415324708297043649936925644725410722400485922830985776032605947297915262851747994025940708295700865114422414344550421852879053856197630218196005006421392421392709439972771503977566820959325714998983289844809020668168802816804988062889344760967529533617178251335562658584557017884437674811413719054021694527512477269071737029620001828061539590839112527114312887403394674970316222418292882727932234235350799112861909519077405872009372860820717374482667586155794980826896795792344895847375355453052676616547106801937352661440747622190382033037351033388862359489314492860324741639353129611366554788937627593237083230961454150103563552778268276370567476875539524463567989643256318685641530469488129820505326906938239344972731070547550185339689037082423807247744122931971731675209901522140809022535087219696929583486823557249945453897114950487032067354160792563684574216265959736308632189204279859932615706833674789723586983125678358708768883179090135467373521401727711298187008564501135195606700682457713251235196233267125091789566365125024223800551370362282544218500080315372475662614804869187321164831315946292362272524878881420293587496443137165432312024892602371127592080198690105302000496020703045616594644668873172987451477720046795990834781934153844581453002733272913172167264886143895908757617439455747215953766231933165536880630023279272155204700386521765901714171332481552634550414806034826982687168931686069235978271268586602988193239469042646534192875742613827704820780061987539118220742715972229275041641583671519159343738817917718688676731447475589992472627778655428960626273430298128133317705470430137803742444328129398855824645457103844682957251106795691556228962294736808038213347668690160854422259135176613898733358887342870521181678656683361686105258671873055661651950275201974271770353592396667659070285231045871297692502334255988183265096019658818234810067042314039339947974802372300897052602168416501672004421280528612827913393193291005299792517191048931178607858455758289369284267673665280255958287398445390729174149045906567539138989423423451902410043400295572265146221402097667650227870766644573205209221580531594178291946149689479226965284719610570055181029713401238720639640188215642060202280482773687930045585364001365687023963076591647593214052812734779916161100841522676132599730701293640557427843395718093192961430026025844355118356528496486506386506028582948819564024704847457751163270967321226549564569222873930947029400699020177751811364625459377233044693197744134744017834229528277276527500632378232889158131902518073295958789237744692819606230855111584674329827762484212890312094378678588001340321126163644716646670929729725745048886479491503816742017561691526391891566727578115629338051236327556176279293312590656441659417690498088352582484833624551586410653244622000890762465798317761345544026876172427058288888126123154195302085622324273889427421612646359366201258357567016108192858075531309329511648223336921936487159850980798875290802311408058554482957004667410788710355835290796998852188066883505487520513088301933578285526486197433130274594149607265482215301456475582289913485465357890736018825868177252130858855746878792099664317266409269672070058227413060011744871866786403602260731401881556718153073646583550057714029572884752898599800505804799743358691798743065659105070245002351228316261547150503143578736712849045313564268872184432903840751588168251220716302605871503566793777745348001515415481543304320797361248340311230301181755047901792859115222259389022146881960339973145940357598585917905917062681487143409120485488429534504278939827220398487139330959878749058396722131213549680287763790950457644261554414184549571800873367423444807345415231590942986188092012326034973977079249969303446218951655501535631465023400292385917897410762372396791373608569174223683916235819204263807154832330851046443972720354482995394095202814519421175730569666300484428819679665763246529960678086229810519885871058234878814038881056073038576642948691192902916445654413639327208702358769939582690338521933253330322265047969110356830998432009920661815398801300099507157396816225875626783746404416979678936606682030240671136591052310212537331690650196813687378674143374813038881904775698099672263531270529738670149164731686514040559892327109967409779810735983367560990021862461204322650961040613688115911004974739899397776923780496454526986940054406867370673820680063972310248318461564713884964537773053627694097828362109973681403688201115698442575679699500597946820557690373652561590583869263556417839216812049873865810642335323585837031860015709841464997096794820349390513432103876924819170453782297483162701728017718734818990646203981213490950668568999538110147774864641433563090762630680672805628022465586594777835798253382126464544296876621701856357543836429743598635685265777200178101563978622087158558715723254857580272017214491633552490596698007898381994296538189738837418161119282019250558919070517170313549292414037170922562559239689548031667409883138144532880053173601679363475312520148069137247963629456632177929299078952058335835503823416460433595790276657356676988125869453849864471150051519932371320919381703667316981174769322590256263813467169525872923817126216474698891715916254629675430863456107711800022669586062433632510250646851535217988645430945884013499949415259673894207721699460136498686986206211792967055396388863207992844555776025116054675857391346172533815595857521061594568432356107226131529418923159246694825315416878704862704817718667793955327682271280606942684402875664356666511420150859522475548514646467642047118274910315731765101893259644433171845512303968000826172651935349643172677960952544257885149059702479419443558686391074052610943738046453631240629546651074624981115073506727331364845651883918705092375865241504292679923779030546789639805288827686891692067144359167445430604523683716624209640205500705464216564872325010401707583432577421668653128879298993372059873874688917075354527227503445868578890560647087605565858049292845750804774898658383701558939778877707555214433135473074794535713305576883827055457070703303749651185198325175641162519191550468123092717982406354719141739030643009968847911550663438568022956144244704627141277684070064925200982999529746585962313549286388661308980902096296226486983540102319913941312965966121940723575173482142568445000782457742887026936723829453175984651524183205245481737926367678972880646741625330852068006797546152594665965517323039053645466639586987232007502117673989030251561373010555386220696842194549592364819091490355885338473508853673116367392509194125256218997989217937496981914566292948193533496910517571524804399665929360515385274865917117548345906814202229612982542474049974347059248595737174980781367194011888802694419270784256327258839922360498212699949263445927155878510048160696259487496221679884838272792772420654404304902859976702791518105356671812094762725330157384399195550053648875745176515181161124506395047927287678768913930769883780458323009888164041557880547616088561900331578850354830274910175916476120699872675958595049499217552053758593399154570142411615407956558203700442841175613478807644093770748380767540367211233231315252141773774555995492453150385163646257945205407608465565785945950474644566019249600660475430731233423117927171945298984862846818608181575719227127396633163904525374054829080330730098851224843582569354313739061976464287873164404009795011396747378423265397602281552820265095996209633277273738042745698339937652740376747012576259261528361490231521387372259291279896922878948219057544112532619594395843261099515413660809798513589750795906942839492124164388774752776414415844407021819156532769301503080730503701511641079044153022327597617903352980946227843021192019599160994807850839825975802586024559806480237564726275007103702715744668768901163115259169809866529339504423578603788680830177656255494194512436610406115646920647152481753654611413526449122343788248974734257170972728695020885002468999018278881972916684741514102976323914657782940459553870814699394264954237292511607723574462140467551758981305889850279537923627880134657173417408974850232505057055970036188496102790574221390764734975731806015224279526489418836691372780958656295925771479399422903020564984166928603366660744601657513477676799148764162696917479699475445250702186812903413599640313123326849483801719113442395990465519432999512219586141405353352137940666781846459434918183711123579287131110693704257164841639703814049250058616094578785231044630160168482592573827195481882003286570718918353296688648931059424064343094170020383962401405006120785455027905758504487792527250704144810679354190937397073003284962823971120791505994536078645615594528299940400946656173006186377632193895902677069554968264189413196239853351097339546117990062894616717237314821235752972273080611760752834152599204051991260706637936818311615973100728950284550142910772679478011439229917273722079874306906599822587058777919201295627751073163033549570377843684230308539485679155845555886534059776352666559177042630751684734563389078600766426378983163670498826951423100233210566467698686154957114891067693001974440638768647676190527071861787476798108962047876689462030292799418336130288789480166858071677371179701343040188534578002281384228252955682747885433751352210693658588370682366105318268648559919756370815739921363058926562779596147750659302409609283992873413815119371407873231479204947031939344011170684989402799863400548817804163110657113247945077384328635937872247529473512326284383044243934660355574204352043863389529267362851774803672565481869102951690476752835894223857941611954393989916610944992984361600535887308601114226764115196797385059455186913900162146156770671782945614956424002316972922279708724004732108592871235954695028986286889002730270199464522970736287253734979721320402401036787916671178352131804088024667022096259072335003173511567916223955566161611877686770441836635471224883307620327477831262319601957232523666820931480493165810254503596134710872909479600190654907613207578234066532281664404960062578855796022550356992747823551758758249419992099488978070195524361289984186787442889350038430142221424424464709834135238987438990857600937595044894529415322544408799732222443850485120906023195755109625982546050902495111018571983408126739174651522213690580464765935351581137071302958803931793847246451054825167617598694475102767348110426818347903931006037792518776334483506301348352465617405554080294558449311446924539190818721261109874185103720441211197039596553522300911293800426202280213003364161336319701304784784435425894458410193967148393649215254337310769604911153871550867738293866235372707380408390421511466354066896311926014200758452031599132610428140396761749151390008182241127069300181126736141362385900085231721814659837990404980799942587753430803921186232314875640870177692398027085448199003635092333816455627485235027403629081465155760566216546908660843966280780577617926758237439630720337624293688695110544560277050037471743618339570124151275322035857347353024819155602212896444077367395541457377803571286652163131521638694036663319224958765986192705088636428129586362662498156281549060231399677916888805545198254753396651027711586145299959973505273941441763163234778824300170346184794580023407427376370777892646076688053058707935939992559912894628110433098988521259196452076308299245889166201598990432975835395964300313925650877207320671882152508394711952783807072327881486433447970864452106770580643853179710862698470980959809240163535671265768192009443515337167261097893207329719047824253603050732569437053796455011961951579010465748557059290574175262033463194843601567845825238405852696142467602811797593156484306868041027327616443828740760248570942200689742544613494894707223676802380900222496072127730893651212735946457650526164013357948743710977564148604781682426168002042491630442663069547083764179941834274367173397334514576940029171205104391538869305496374965621386757881314623070158506923352945803703567134892762806497504130467026129864746380101535628404488237154283118809995825631288202861561484354575280090942431595692368260848875510330331337095623724922178208163217741732716414477663671072860412198893514687333006229636808814249179768994111273914206550783874387882896804064724685530590978181689825569700983348414663269654599998781552879540717929932687214834847217411771624826573459047271712188829959043561490758409719872471410729277828050689970066958201658785924281581094207253054038936482939683390765583817141767214800937889320082502422742226455830231989475570907527020485779205935436352016491007413315414280878425007784795409502558568177241823667560518258542289816282078822168754731310165807963310741510467386541721481828808299463963873490425558132849100074618360408262762113566709971500377192502398937331867428253378836872006536273536718266745155126701672996509280270420239722123289300879178401622010337229012588720142356919524455234627219129192592611806312060533577934561989271945709110294862026453728426130401751574617926354999989433944499470398886319214095165136931173826553247557090426814117073268063768138208994225471113104185135529291754625771072288356386176795120643005549858366494941480142548152757875220949671337251048784257119759020591734295481035466265090168106841644728731001676097209825313079464292696299624963557763039099335088798997663796955796076288415142019336646994400148929670735539920186252286583855826454512922476503438984316543246029730631562618949373367575333635929620903500778773931502564579086857357734874452501262154286038455467408831928044070014760337465844949883767316630145112845806410494954583706197321027181670698536013609826566139127297807238624049545567687796751146909949817697231494843725653281921609629684388968091295056428316708875473282220292203934497918539788560590513981061185305079799675363568518572911779122617717821647609124808632249463760826581553769469719423701937323751996592402523606258122977916898696492635078565514398506031828552827799985239857014685887810214957087515761931435996187072570556392458593802807174549649241738541196489922217816561163111379052225153927006823398349782697937382441203749996062119737319443076543342597129615208270999021073015489257402696305141873272410264637777776954670545714273924786467929320880074430094798930174790669914325832079571529560523729501054249345234243745112881818914891793392793927020946274632446241709002761795222555459292323562344050054478235268335700666973877890590069840049963990797479909540254617576525919196807718723847095527417750876921580809041043834061123743056920646786985256659865254989611509696699447724907605015953911466306205604376298684550360121445155807011848371296646022706041929653142591613415930302844326628591429978344229115892796883203842300949031228933406261707456119780680114192292448863957936009262170190471040565659783684882805567676413662500847190107024002670033205094933923573004180175642548148242066893160515380813395532159203369660757114180771222411207013600608605130502701362143153151372267068231798189959306934344528445462543052859667661678992040448078697089390107513694118944604573219284128327872562019772899930701747468278478372699624935504010898740872417170105888247083182950136098348938120492478058056436275120426209189717841299794120353382886388939896512881828939340750580127513312803678829326270065064172505988347500752158557788497435354272583412912344827836185189767381957666238339535860709067693600504238916857527962210309848828734392768844178120594266976539095066695873659250467288451508772212719517529702733552195534066207773106372551593953138097761979161596007341543089658787008535869967071803729275915337516310732413764369076640485976205644572173694677997087764798678895312259559525335257055378866530536767373578112181546126278749910423989915807323016658622224492118484735977550192513937282574162702451056536008388315004243793132731176072952297334265354626720649965727753329804838159746296225784047566397252081763529436689776681695185719362899086779313777282868976658617748351564480739475749831367726575194289592873712008787505945448964800828759814913945254661822020452288824193458038226704321072549487301269240912739742955502286330610306686083283666196282351346204280376495761438944421087503965498186214345790728268379009718446810272647921677965061391950731273951101067305954707068770708969616862960121605388277858318422558214214162728832122215468911193838253496438354071669382412708371714650004920179199929902672097398829306872389757773722791412906099485017281158622873048243583856384982663516305963632915466756733191969699873706539294235299251026895133590884564826968286704773981454652976869287988338719950305914375776746051244709314686561179197525081651406485515500949191974234006510813574777161116103126892835552315006524844266900152632846131048364648608713592707092312944327930491607225793611147810687770258198261916504032960580676007269240342920899825432061172195895196677051585805340383125263903412623666834066809480106612793160409429203551271733054760784154808927500906429130699386041111421456084161627559891946065112558553729286545846721571482015676806108236695775787785573306715407995002251087336613885343306030757972155989410001487888330675647991160231819101279695268905377075962518232316477881212688363504258911423302749338479749356208849513897382856439191153695915259662963027821853896953017658684844497394861094473300617468849834564864819792102795167873629442037063849875455190612184110934956874081148803317247583578422354576550859713476984132850942772225409714442225098064591439839921498628452178464735496478830320403297970494942548519366264707424750964722272290165649539563816001813187016926744262064736182143328853931784465673512475353052600575407219347256559881101620183061594997956921610540163552606057477214935751127856419321114751389299213196684662600312860362926365760358800982640669861371050498883156108006645834386050588159640424548140016211181373327514073153093044328289132305084934977969861231213500995131152633377876186028050021846010149890271616564213515346854353639319761783749611822016232170930961471945022296417791895349195232865974720018618605624312651538955914920086848918182923752334679857545971079805524148091890084167397273452340138225367334892448787061828279331866220391717165912754769840233334010275819778604609621054603882543680066602939729466902676990045299326301638599961324184966055631398170709700907519797029536792067297707792923415207403375824891397721108659996702657167717803081396667309342158457483531568308768598989499293925572894415997024042119709979673969967053481229631962022924204619608139138233881259259477893653629691687751735945819704379592172239788946736523683841156986680409946190500581941019974021128480127212540045875539360093308467114502525905369730818876664601744295969728494904278977972236451329352390764153857797144596716398396683498371316689963983543282746097240108612622196338147705877518625550984418276612574837109712206873546250856392903995336446811596380586711361738677425782371795495346979193171330285747753170078788865285196119920957321086844903351469469517962977076755425599309067857163129342705248805421520768818124529260601163914871976571691413830317216866699751883463722502775518581673540268468254268314934600814969742333425756661300040846920883438142978200151140038738515688792565734158204158173267558094486429147583279302402678544211881374487399524596863188011139981211428134987249537766080416798437762192395670871870172719726218613969910287187533011452893545966245680391134610268713196028558185604496063785226575315323229913608587781968998433350171036573071856950217824279248908310119978583980544989180280513752691087425273364826066529900230803075986271955354449674589915838923885551750303140007939111560238127893123124852343262924607691608419343185022755870562201301939633981482328103711911826263664189332713031441068065857333187128488056941704683579341024455955899623154521287931135162921479009836959224755737448118816315576424713020584099184556367647975805325276919024842365372910206295508677491797767043718427502302974230826788120239596726450170351434591795999703269530557442464082432901634794881421366097494440867470922798706198761299811735594552614376888365557716432368352142717817419023558460580027623495491053510820820957286095629478825159259499120555320480936918476125413946347876502233135569870824625705347042143465714002101878704844423498121361645130055730524943674395922610014104055712819197285903347168832825695735363013394541483522079957418513303628195117408161075499668367151131880953113509414644219320497232064470930986778912126466787903879582273622204157767728243588521687117544150387189067070070022307889445120285248716650695046787390752069033952075191950501841113324433034742181362144600575778729149531645935155193985074646873628512049479162677324086903065488911024614720451352964936238923267683295712375237724283627363246181031581014213038730354405682356389494319896618556258311034508794409164972493147534321241053792034246178614203362865974159482518033237119524363492410537012478074515925216284785439697470291202393185788961719727717207080657026295929703151553667366386302537544652201535533971478952138139441108088078341851067741193784277999631275771055919994924542298965487291021816005826197418025036453254104776902052522249514886252764086279184358574037954600908282816881291733945292212207804175205625821198857977601698753369082132301204087464585028941607233944759743221956671698808915301222118847594569596619118850314895131827092298706832168446895611621139746585968263815466378227570903937150930176339085160991589711986888816130663325544764908308701185831744877479754461266742605486178415345261164042223227618187155899626196300779863767359017507469543679419170311958638356896218746977956724095006371287728486536977521988414725038077860035011097900728410679695252575709898856020806631990875097687317298488873492748552016488337668396869723384081310091195953653262824913217815598532532085738667870179181733870424007661421584152980405452682950520532375736322930345565678619611312975565406843348934197283152659210079849173275257331408366069188775933534384407268084453864390261168623374888469171520503453484582293599824854812074809330700157701436079093383491430799273036283812015589733337280841120845310091944301386114625232069053374042477469927852116291737410682986023246602433586549840024653186159716895726806110737066266395428994596152102672613549302471514878875689268872057866196363900390181424927455909881019707425656707515019310108561310343258913994022216914599989293488615735441818458919482343412382799660554606142731974993867833919283832591655229904240672688685640783761643609871380146798674422565477249616058479204562096848070642236612443795177081973437524490746363934270804837225360734857660986280771991915558100127453132308546142972021067627476009248131921034823147431994297117511712285019223141652826488135864242221499586468350613498191745337749734757690785025756736842226009230070335532324662658096477775686709603649009544920925516245980851964090655938249415874498281557786218958119141921905562654833146813409726563100820023288697554962779700585580109492839880161864706689649153579193285515171146817490774224760143515510164372400686834058960743978630507401376630590094461713032493349103300164263256288453795671588686537815340533200560648600924719143713212251843789577641800701889594790594108795343101637017901098436854256453409900460150894643032861488531132642845619562190062729288094277281699156023543157562628973203307318709774331474950283411183118619209544458452328418582164453204856675371445250844898786838024193196570198685493769187626356592585696390272455588100919937223684894427642841551123296341835716598377276089790439776333559348550379565206902152949038765823310216727282865510670203872200526465564478783682883826923798514336775450968018565874259081947542432218796837309142500651604069932166016193334285831350727238674416534187295526697005045990483474615400037778713365841649548708222258703214034421257180345004045859584253864987981796444909813701978475432573968504308687806299104836225288279454376712744486879441746913916318207722612756965466817872212415524135841271663898196318807727064099083489561948356341231028230877365545053765378289904795183297617315082733602794501501210734442641791270392739527757272985766713034094269757214636613227494769028124211606551348597102226298854849387758940061897927602799903028893988933004470704836720302210304655033474653975490062081993653173068877459636094989804153621338077168640058229593996220383245521461528372800551238367125321626959112040705035024816619603149496887222786626231102457275368175472777826151158723775111564249689021297663577004046954402429543273549590828186460839686081986861453230138979034809741201677270404340704948692155636858803892717343427595707363315170326309889704060415659431220585337859953238787474286355397906232059675807758847841832707446547493949041901930774623241215544641560516007596027530252533950429093701284170761257468624897497672087360472768164560942317926389067961312550097816918018243579329288867159194275623787755979081955048501828736796180075927405527799301904941359149075046353983986999913001697710811285532128452163212465823205037669110302509188119467416844962874862007222928371081472301978064043124808804003350797442255720176614530425418676004511660448242140356401033279440219833178326609011211983543155083209365372057262743543391384477144245181166506665447721596596296338059896765690114359416810233686441180706780241338706509311371075403834075528367341410313431030896874684438666126000938224199470488508469389406402387771547315119844315736194091361225841843734528194658626399420980956506695107414272357264182640106379064615354801541652851607119555537528982802046199903675585822096757603166418319594274592863635222533684996007877305563268356582413046127150758035202011791057829545212638852440205574932169015293759112927361564338197768869957794197075634406683587168818686709390994369295879025559993335216165669273704097376963786688408765005545778066252032738875108544292545092392597441406972685410656572696527877227017608586339938850690029629735618469068007036330953934220276010830110881896274702407131108089007272209160513991538399403906681327537460480344453891461013115209749543777941316529325418408510106229516719982373501572773384558219975582834793451878469745282292986154488448861826907563911871777114897414025987763349504725371035053847960327998291689598145270291954381952157001043317454829512352942126521404695786846028600068328977855954125611335023610810039430434777071657245902298471481020586171413354531310661257854116138865345586789850771550892340572029852494747800452626679763436227331378254677540349469513040392452780757921220341689409094433639568816240869474556158369908376911545843967381431806128959276366873303551793642877562195014377426656474004673731101182713771572874956304083640631740116242009328809625683429160309133595725292622121716114375192299291353298257732703273768984045841736484358275116247381556372119148252192956246738408876145409582234843493506358944789879736487366231597269929776006152826546855482031257529559864993090785974746277965269985546550824351426886142339785789835458274219532624810512371494413309507929470949116767460012476280745145505381425721625946196896149632568744834740813749928831443341562398232600035775468829064668796649637478196252913529605330563107860947349507688167768881509835549047390147514137661452188203755948527977061253495157253602488982948078940660705447022196016216134516638519977234576404786120018279205742900282542953247931239287996174200757226223523839157818556093457285912522333121676304615277803209855040175667891731908673052465818303816269976047910671393859085166888963940074998925061251038753838414064420332646972420709245473917590034010717242971118469856951947058998113826601509024346765806813679299130358584633449490113416823235577504830799876846795373277441917656050165990013981003945733256016728927681925849773738177470460566053258871464701063615079842567566917726098825578203770217685410332285334890922267783226661936383713270454033571129495103389453986763969388080415964186883057781529276999548205312920883770732281287548829162284883192746633534724864985607707544575442891705991908523733918942544390545494936834996907652342218184997223878999438615871361269434005080507070089440735306751629213395157582087095044690812520607646142476071871076582270012348250058820206462491038783840359211639064315863163154288051211598609510471197271514859622246226403412372160022297339564140760627959014777645850777148954503423410317498608210155150998991494099617083682794996052410499796128090656508036410211437904118382813935097601748951085183477755698160749140159344177879573977670422669219067169898749974059750833054322572776410524048098167951644807340206992866862779572989531788516992060031867613531078149341907135622583454152172700028280308513443512045293136101021748452722323059176239066446032462677733644372182031553282885421509836691994353271032334872175111407072713145011863025314422557965674046569133140505878181282412890858035570267694288989325182801967782375925610023373670214469989688536451762358001999148551126057211002884941272148853779563608773707363796076428270329691830010294298586640369755722692096346961706601551818811892052557018901504081108735764826080955973976067480451339440806754249589461587943728609198760649210263784157749207258938875699488790038450845294896244418160728053024124736577994844467830283869022390046504710534008648635213818767482998917079405765065844278303397407959387278525313926624481492480274686748110478678585181831598624747307298832331682694285566094502151714624962217443449437231903704352663501779525697094249960785740981471950404551072102515892506491309111299862825164524453637200536045955145304684227220240049882424103124609460756026183663626173438116508595090154788924022602405286098573507026045099870395386594488532476700676358805692673760832438303397095698189950551649533414190230413262677331887213759861751952087853303106155928111878287276262556556350108387014269178519258601278189786978309882096514141753209185774513835661798984177575040081926445293288937110370559230185523811858061950869116982024798945027965176929008239449747060568488800786722910310837318584020174034211768329471734079285609407826120758401641915546144716887240742402614137019731423329629399537100350107977572348239321510750030132409241986434842129676017377892866409777094721019467311497092226389780343999163876375229154703969387341840243478707018483857932087166590726529701769057064667530099999073528123857336577338627851481922230665525261406844141638741126499003776575942482452205439036841285061189135583212266031932752340917709185900504706602178132668697113839810964632189867596950027570859297366485609523672278681135055445027249264224446817552920208134108739972433055644014740525043621302528656842342974410539098688034874614370174572056353705132861770695314064828717141357572804875837836437365787575282074276247474932169568582479983328401202764393209078547632028796046225661057364086545527951403241772949070479925648372172595499852114080514570642427952789366843713257925949871724737486673592978458669125945865967861074073319246209770430515674763241297827846693386110251610690019743675901504885193270221840161838907067763882975499533396842551193857498289427338690920534198391931370641192615452514336707926910771368066001106419406398871661734508049759456416338195806879742887275783365199297575241790417640224167301552686324727119107973188972641560126793762094091764345960087563819762006258731652411631022592867901119350391478107697034273520261509680471088786337533150982824903030409654547262571916424435947669394588165354429741939975985342702530156312946405395871795553276147840032682428205272362091869034682165596865954082053820981221073387906740126882246609655946390957181075240687262285004430041383668173001126781267385470623292499811996523105252569206019143095859850651169213796097759187442620774733535123822744239373075788142102909260444257276285348459967662758548378342648626846214391992221091339337644336950971761192053598353652725895904469055197476224840599632493502231495097596344908544991409786501919432739666769440038383556612822505944318234751285850959654619455686006160777191927936434041242385777751332628160699852253935512993413859813503774878748115165323806238745414029091227499427584251789719998031719096227028559805288675092419684526250578513453656573466855404406808635336231800362585933728732312699150873180647400814068554975478874596259113873856713208124355678054718743283725383570224516807658353328939560330326899197083673832841711813631809795567762129009870211992800821714645169263178831371470090389259929057535654649209948057353524360111358187422587772040547973161539196555267664951145283298852431972662991670112338528903493860752903550439182491095177042962955459731032608094685050399391888380785802871709810281217528011037878684387594356283307827248081368726231394647248279954207427359951965864988670719925907437080606953500288572640778627898646311078258178399595954005999634544552802531691515416890936719309225120423757639910437028890954741597520481356616874040619965007718449229744809640051384069947298005152088309443521558201658368553062198703035929819239288107327567698282955474984552234358419680002343123541215301266414285238857472334773894710030179614458780583579052281895513787035959655391656884662931257528991329695494891033649230083307944690467772253256328176270076149324343413657831368187109793689304743869468952009329143439983469418543508093881432796520283708081172656759450964917121360142776984465778109398765095676853224867156399250473861199230220826007299644130069235208104762237844901825925052519725726659434712816795556170000876672179537537970227803415659517818383091249510376344295700230140779589740565946057778660632294933281382746409267463362591070463140030989220503393965323330798725143469320717194914759411868955419621119684378152380863417513440341659381351962160160687572150978130985964819862175938736915277866530667711964445863579779137588723277861583080347156385483444466818095245539082444645146933341816881034809209357180978347292719068743801284534943874926688512878442727910747559239898759631650694897394754653047195326497513805640258170097913560741884393339421430818307658462124287642095909778520146971696406023995047013864863002840532317084366499435748157514373015755503498372931507900431355622433070078462870529508878858121901938327260851935366101658906385861485422167639319138584396695642426967047312800004187977726640846188854801962348642163382545225540479228224354529525906974174499989773097235050635778637246422356761977014239229544753276922568622666008670406273810522130679824442366603677335880049609630117535956092662140206439200027416772671970027527142105342951526096572582562391336192686258662063664733250363337394315254508635783581142198994259892366187921833925701407952461673431066017939251251481019746011645407252071153410626754880564872712911399827202165115994280336963872786248123667172740071901657685032578310397580597771513324928975555463695089431982643490160857818837509686189864291060289834160675207720504319248655524263159260492299166918955843411497915043047729054553367329872854320356066891925573953571967268454264742696290278317983865197446974278371981131349867899019282746868612884891884090982073471853914683174044795190227399945490183228288588941590925075583092559425564906737588918776202406296334280248063007162506529605807562289773459911807121431394345369375325324263565117099806781531261226583737193016531934629997137488547052468226009537017133596369205680928149303878209786024519823230884630274402175866193188464270474361711475858502607559005758735784484061228028282000673159245359871856049327095708914151236013688190825967725821366730820808741203338211924344713646591274838339881190512624943988143547069702080178382740959425480076662710771609915177328028015810729202891532294357499190693105860721770792732253512462347065753955440214750873496407186724864617332369659318501546373847913536266914906036215607492710054249809092355421335601684556564601608669072742661063326118190334943429311188088676606789027027366164665319097465490569239719195927567965035133927068308514922334975966726865421195608400101835096961240058002358770213102660829091739512839950192871996892702020715898538857168413245271816263261036842529581063376514762569319017277259073304799618106569534020762097067307318926993502732084586250515812544960062164299508247773578657490175262621542319811497995716238915622566111398958924879053844082923441696414867842462591700234112318658922220792519650464006474892913072454881349830262144462638923130324791948567062670075005677877728641853740152793416081360314488689987015161049686089929608517102531538227340426456114963417176971599291983274254473219612473570030536783164094127089010653001559428929337789528618809057675648787828752540622694320493079655809121943881572375404555248302290351111098609051187512189745268319486753816300245871687723542599349342499384162090582743788628851497502598832787176226328074864485718415013358179472089873911200075216656049336467141610731070715290115953459311175025324496312683152438219690519893692091434176945986878568567950003391827160376874682345102965729805706346511555953941608875593396963907518925566678496977407366381030926156388636305991053876712617387731951913495092503272533802058717422946385187256795891440250993427895423559096677183098651936191766137747923630589928593904976456705310389007432374477605062381713538012617053119298271004722220346597621837553771505106090749123214165506832864076930020109479091711112753419619276217474212681927280223159418009822389957735670836560126147983550954825849538982150336860379272468368891669542164641274935458024396318141350039566948983979252819709890015629944569292889914672988563216572394593130882360807736074249520489536988973945716969663655853220977051859857517136806170773914778259246797829498998951216865634978536953708979463698109277471063988521012676447448701760510497798045598134104803146196828528278777669726214755443339605100363599576738343521286408278995505214934631437130478807450867271463529923064840826073734730797708096078716008095248398828050511029906898760835803689524524525246524467412697617562106302732176447570078963089975720830190962734239246647625667177969123955707058260552736632720710262312869919627476671615014733132815100001133509578411382055145960548466225540595096463921392360741991174859783151951706668775501588802384349914495027115300056255375636581967736702504179940703862245296650744197731979023655903204351576239648085226581563711786120411975747895982480980094140205317082456267754516344750978729295225666599227439552252540255885956331859502664830275863070974226410534800005353966245813487417639362253162550172248906575042690282223528172309981852352098885824455020206216383051782902218402797200178971074273768883597897017961611901802819767234056950647997421081646265883434653290103937076481117648825306774210684472712697927953090645123335047912631661619033263474698628471481939239980997593242982019615726071268815467796934551219762837234015889967011573534640844198818722093429239997993889942987734802442824960546536584166928813654695175209635345547170711805870415054428308446131089322451543296017248130148473854354051484721392633945342501822482919622613571204946192615441181766621806917227535635766854694208003976395041375894582752862143578252990868258964007027467973939860608644335641024828594295378380206914882994683556746436865735509493021098406797799369714485221486868948182402663126636678882835866849789413481297278406545882508519581202055817395334171847046131840609850329395060117247487582416318267741470752710120239362910535566755447053818168206902441860523055278861291529463678588410594028585999612140042715934220607813579835609072809020734610354840218390127583615744435166976058217151596020437076901971518561189067564934972834149319601587203153163855093607573463248453580129629315146757911410578811179722182982678706027137018284727551952935034026974298937391903030940154678361826529927917268836815102495198821916397569919566179057606263199085441704759091071944631875510773817875072790489302786130943863776064864193647526555305532232297387657427131590913499513934193743456259271353753933132972017380578401264374339380476172278397318046665494760848820722371758752788443504075281030272404586314745681988819684522880198769094378894727071040514521452497603374502977234781195078058165382627215633946519451303461193194538624443952739299339957916058434170911619511477434018084783031489519751110265407298833587642463471131146573344173048195214066023077393424833849641535981186127109405004579508240640439964036423517547012907272512758372524746875089440405219197865483159403253446692089946054753740221996075021817213462767536587698003293640289693939436159963497839278250088477288724963220877257187942823749233505106006912955034505844784040088959115595776706603495997287737881358884090237950388777870859840358729292150193258772734466354846765821780765756609691459743783798720892098873616640922052025297751953476070424980553227109053610164087499335088628494326783689404498595062881526073543788015492413872251049960842294563886977419077681101007912174565975990024867245661721888571219448206444413678136241936405773751176010957775036471958821161391463382243855943595987431273023252929462768782971519002232870237543756420427923592761941985827257692492502773425444840144481163317731025410563346787778640310086950655712551367075306073270402032427036870601779142729824606469346895898346232459970684125862821326464203341527512388626994609041962332046304277236321482664133736930049301403272960514697952654991110984760306253761051966274758950393417905475353149201855903441371947902001433736370619745197973752257082296332590139543956626891966803787448792774062063184099831053461088876233332289645387345259473616407625432198368522759071701361863553324160339964010459246964286460191733652014937213368619841618205310783845104372478469804173761817660601062856271741743945597383502552552284266204586674618128593086358686828799506400186654580176104064956368011424199324036272255949784435409752943857136100800635086776796574528847758644446338721072313776043658761687061245744162951130746646354477113800326193392619824844441577930107266444922504052832771147884710253358948836674538021017806515900731174112561955945944330136840982918572611564858526795796478951355672141349928982429934605875627949196306071330619506964007996158773131698317327999385674174607856689264178460521178758384220147121529861074839204774695377720675306014822060549362305692249881750586157632977084881361666315996541222711595968420821605634209615908075608224701111145298255183406139228793535063265921846080214763082779369473046830413444393998155906005844361108408733010697144676811004172648757172986789950509367566760771209150501883133211644354921602582095681489541401747331803166220416163551134914057921612122128559753386613335231920221999092121534155128836710549333361943680511416273267135345004187375176558060660478865111912048057419669288056427922636539638695059521108049095645261214179657044187190200353913390565637349522297498330572576778597532029752266501994365711907267347146505768960233335292605066837387012289414138123918331580856155158035289717523978833939216289398795473610951479575720555817334803335147504431459824784236888903818231265458898799727256030975784079131310483446530906173814476201355495341674931475980477574942768654946786061871257712181712780931433215862687622166256644042186493932688168991214145840958090010152536213594687539885835198397875507355514005673772963938427284356759293071571998089898061352683966260504620695626136832124163937372264435072592641139957053307809802379788973866064237514285958177271366747560351350150747254218251356344840612365449068754293004852846669535074810667419062387769668269446260066922529076164450942509958123237812812490081057720248325668104551665826378413524993359619464973108765066198029797537993976770107344573984903112267805666689394649315467309277403317876708975073036886392714856697898498666387390033588620600154601394608010668172420542219883306635479349690618079330295010958719364976181754633504769755849923033618892033771784638992906332531623999850446773084581829370640454976392109445996414133754636600118261004049290424318357126567935773945981103469445325526801713409264318553451025904597709910036168272216121139466883179670471127228151202779308740947956912366516907109542321825150400135440304568845296977821327242257111343980709768292458457529589881271307532416292059370874015426333427279477004614570583880477679307903599089267359095359573631545487588676662446780948806017822414161105214790340207573112536638920877857204935647377349557298248555556429134533236902647172763176527587968759803675830561023314700354119279420692006968175668808745614587708752786558354218617331918701280184290610792373320782183600741705323637792503313523189523146778840599550692001856709382353976276691285582683512188497620390163171929723226456651549531329634632594134829510307899932850443859388290572452420034131528201339192809957693410660508929379354146851795431025738570317842696191045176208176189535215461604209223624146115126811170327030943855084994408008904311973338503827052658261303294994123566767941836475421238677841494547292814615783220187278524832060753399100599954827802441875040120619328358414545779217864078402428317375638798952941922404073332565457728460862879920243113939663867991348324767791883903228359765956176280185368105483483292912545186576470844053847974111121663157585624319224094193292224070362868468613982542321361842740845666800218988056023879363976994982902696929269220172080458735411131750152462386331905421880159560557641570952240307044363633836936087583900653315919027601280555360431825706406836177776717953397549316672563926078024118691932336005074489058319153793910001294194767791213738438363471012354947419807424620151686895724823536860894201271957190089094465288960060972127839197877424289975301767725915307279528404724920942661816962193601064467307584174201073569942653040721930306112539701830326049640278939834972081879075822467138219096812076379015698300519387387422615620681928956456314441116145036450141936756853056474161272640975318372379780071774680714324060217384414335676497327160675587514993333456441331549337902002592533994416506855184851538343409572166836737356547109213381913512908276237650644749172983866983212617164440091850555819896939621792986248636203721552698943018143828828998404518925781757429818905513280091966421762142911745163690464124900293429710355748234515414852003414260065656053015746607833228448693020828097092266188721689219377495463844827266142362732396903009704867999712886867623904710883354047641514205843102019368853667663704935753584231295737868516108869436040155052638712818504851305140599201820215032893262896151880598093271921336397015289426604944945220303242459910120107966405520653986453625345781915939127625162025644211156016012200638850472197235180826870457163829471132305968789591296467351275275463229526295113048175155134448865950496321031301614158790259484577690881223204451746044385751369356221990509454731905092449094817274499771370004645179056859869722754737460831058570430613866788804480322164860993447871012299991916894581497326134234341133957764624073264820238253004482875405317005960518606536611829509417328206609852044456306678743792371568708279487013292650105914983469106935443733289808679854387202604310262071350121398380449940493323101384929059409271493351285039061103737597868950139416353786316109851078999745826487012403646851326903906187306141869920260162351097276023381909260497735147284589868769091084346293054700007662500244156557268750599988313855380824982023008096131974767265206936386863710767427725066966384250156926342693658944274122999571213029988292539148040842818521289022172775730380901069297064292710094948958297376835617523325823758364415980008779154509860745212473998425697253667170015582037175930316498907645272775281459939115692889513338049855960308429602158015361513132891670266907557957651024932157789453663608132130661546927730146446100243928450441615918005008666581907730956485991291603766102547715207109268503773542142639270824003003839004802884837540891800203894616865799943222965541133918550254459773094969543021519071750295714827385970349347404692206084894563838089520818899515886454275301297891090887888511533536871367073555053653160465007899758752254719765515594435043992133630592658482940363009001986920998803815077554218491417812454020432092142492978970498024146524584559035518477011210807752888145633534181866819549038980220726386533896651325874054586035622545231080890906960267868423778566696794031804883597212038626043777296723796858961942552022246318936507308765391172950293922362350765590152630413179967643271855734276092973995048827890093512466524453867258538172964024173382716581120218402234169855442535329342203267946242320140027056919996259820723452852481895337859143232346299105263351602874287921240055669072163982124761148885124204725872553923883106468432440549029105448307250175286613774880194307666316929537935265330348559892285879023219937857764269477854414514021466723742979151054443604796054018819433411550075022660566993259266078179002313343181343954148936291045158787372868542774372694447379872536008717806170027017820971829849983461032604099719767732085039036198400539258248776136531199002670974390363333303195057715799980266825760666039894896272400112094454867079523865200211129966903886886543689873944027909332641803505632586605766777124831373709808391142176942262435373387417112064004874475390081565961331274457039157113092044689657889975755901748519589550909258641806042843344522523098775318033066342134383835598353860452774870820385225395436675364891846335768746209864265839419776546786837434086481842806146576940395936407483019434504562989778008917356931880070210912079112932396289347158779650584928228024988314292642151308504913544305756131774984786840630209650076337732777765041268383655841629308183555509045951159568920697848640491923260714469784797114056040868279450847901941608146175951114845741816826017316826275936823288331026389229841783321407953005198858727493453650737986921726124061844602526359877754435779324994755782566610009165994549050822716134786533255855115777939377904276198195838098186441047590840907780567002459202066218025409587334716847748616962429290925271565005865658902774264568087299133867973368704291590689411988730770239154245438369636438064182803610741767854175455371252667454109334037952886148144391182364333606752209999123990652326167619173815098820596575217659039516377962585371598369943158105136790542244576923273205546493624974515596824729541236107869880733729766150615231402488220503501468707651785547944927581653907719625704595948995767884019690426608076852511125646240001992223331993867410100774904429435138544099593966299219823440947910564135338959299626396748075553415413935314561775916842325069451191469950881042976128261932101178412959469393455767417613169910562464514903460501344495956924263696289014093673530995283584147488524950031518362243619250681990988226563061088826789448948046360145509516206984408506174098594347515181508216874741495860850474029467164724982424335372961844607642481807792283475600314121714292170396416733820106121722003079502749748860702030515025525933583637768799050360225464156196096551459495341686680876706308625162987675992840458487258274288282738634825626847770250545490538042215094762146317526983640179198521434333448595001665291883485116989758594790571029070574276303050752703246068118295241756031880012481353984853857306785294030935412612321538669634403256514380136109344043571857461395211237079796200269866727920853014979206216626679317439955829984176742390979266156654187435513497774081320894223441435340847637481371724008146395696446651764189340458611486485563136094183497871541052291447519842348623672230243491624742098010086121362171095376276330764007852877311920197430335670806654062336449485692987352020666965688651303146426853654631935148671129860148677098978677801702629373793250196618866348948274914823924271424430555626219690090885082268589550412596441623752559442354018059805451238293198584919343612628723334427737421550814439882097571606235850237742010187242910249851926651202138685063540859569500569199529140513290854274778528199141058631260718656842902334945346268320268691763165845422322357939393285003360602457753819958784108357286823247630839177070736778370900633179443076906801747862411177553822384836937232331232531310791110472900129370944316060443751482466808111149672668771092930600729407382732377750659469452955767803561050743525405491830033294522926912583284831133225842134406219773441385449393896990207217311254788340379613928197545956145217647472635965085174627234281307715461880503152842339023108997566598384438834423024529219585651967846562949117682232235332693258510378878947965135951362331096409413724444708171527024480427604822296922216598780770823741059273029824921545330386922564156245261268065352891618562520520899901577605858036105471893814466310742538116086872073904821502882934723320461138060594547968096044411675561702061388532450376679102115720610533774130023754745356022366336371876212661215577446164927661344399086010697592703210705509552634244363611009145944642688572954390086976206442939960279319122257150739216736749600286705780331363019204221481758687175858964176017454996477894368460631257867152389126989939389214750966998059131361361165383268425695725748524259935436969537161187100263333734039480485053641091946049100365292332496317905860418783330959416337490930541643589401121535984222322718956878730865669713281848015816135796724747289801329914963146616856878547272075525460885798577797079333129889130632303331347077854735714136920716544228041548320531276133209073514205741194410341406031999642109600668981155918077206233637507457366677836241216322990181873369674978497180496027860453819209758935525658907734470456711334401861351039255940084940866121938249468759603888459008194367702066771916879464948824514050717606268798479557472982520456913270526302986720985706210868303944772708361698522561459479054696010160996817648159055746080356592713317301091786803581023902481841963573534812799004207206703177132924334835147867035289848843829948748915376717615004661045330047556747479315157594114193169684685567411333225624500202917442416184683292466869990023897048829297248147471659508892462210347320311695687009721393140099798145653497445277923496617729709431260067167709362657599888780651525329815583510861280201215774548322498443932165235976799954611116712966071249542391357725115405269469309065757850677828711264156545204476238471431293291367191848667125239900200529060611359298767100464947956969013742519979439305316956061127469605272019963466304471019243521400081737895770482331849177764182993091900128176896984329210028320263435259173858609236777939376543759554708870476079076957726490580877149360481173152228488086330893963612276730638928675849404459166043542972166049739045277579903054850624312227250538074212937525472649581115095289773750066382006903587231175298651979063799565730844671427896999593888375376690979277639336434303375800112745868144311361582269291312402445250102666961137805485519009341025242480554098148193852629264882595855010923974182819143178735333090874815368469432710746523158192362868574702521752761584258545706969229363318637969382738728825071549176265333872166778675360504760510510314267317002337756257184119903963792397288932407930799737702989870660278992752605976817660204436236321600637140202745222642791766087899199435927336160733012459660303478561925910175068331304016152191656636878232388208152876140771135832783313170487624621866502379555188478916739856479653407410841126080808115530084895846202282890280572774912030232914436102156304719947342196898758291334455797736805070632989076745453320369333732042662965414457159804721893102316093476965387191366339608476612410894613942757944471565075587292198450017933791559222220216787077707435934369787716763393132060714581701309795207155430033832549699661570877484244891393522535789777420389073015022336873593473061278580840500960774379212140056795400018897296237210082109916606344143384255685580752053765579665065218541705169190613820019947371329245678172659909039217398880500076511082292942472090634641505037488170402133355070453122279764688506703370323318886665402409971032353607445828630208229059879662176881257012253247888677715387696148827016531493419619156054491187750312392353441980987867672408480443462983450572001785007132960986771739717503972342925062886559392768788914665063238108715152251834559173878419947456900539318927535618550264316479008584810812129523842176668451877916200601688120632854170431128609330325657480795069426922278944391331233684606633454905438336393804267000549029041973442052056783894270393250701924250548805199205230454909670570397504257056983657101047476754714043711390593339452519290334872364860104843941252365495222557381478279209887117262434547921105923790673278520062327883687920054901671753897589336160704832472314341993244980452440409334641274592450414849192833990727268792743238563862468428561701022967862157154299767979142373695578028612725591454327174929808508018073025320723579601676722492296395273859474558693469756601760818362812445587474533325297417644424443266247460870736354630499920966116326403615791212955399516270670581650160062636069135184336677469568879132995775812140653121943555533752735544102382433955476678124128442841186382193648357649681034861535120261287836613232846258829823355196980148716563982919036441881147627756339133759517625497898627317251188533978027287883678553631139367112759150276330046290780312440325162974369333302548202968356174380047592897105820104828958865072041517469777149777289789294060381663673290597175483689562897266286779933356381152494025224346801454966334552559051634829591896526659369433975799559395886764170660637806377702612907155899185527058288770255218011675805005994699605701540386380673430522434264455759663461532981802638272163066069060295954154950770028427056983092699908884954335027956837559610299671725271655721338031379341186142380428947855101492812850931315787798845620245303784096199511069885483120339578987973238107781188544289262099190478104986915819291089732264752773885492439792476093567627843701319832214042238836206614401610352566377292751549094976749609918103995534458377176243174934869898060253851900491777947137562955698775789017583014563038147444702973965051220727371466521719097044530047262005916442254783958883391692518933196379621839400526797679569533543958406035854461995466945370528821496647107265383420028235109629474366797272959122123567509002889633794014841063928404401457514731799043144109786769118212001689273992540769734932557930985721900750978526757758292238837813138310675242026002884723257055011360710342848813053355984078282919039589762745850707848530163903203338782101377504146359326679940643349596048933072989353858210599143141196254503352425168369654207271958587592251365728615552038892155989229379474934220489641561278875803508554882206651984649236098177179481736337155189106665665061156712569165855295559597132309551246169950769373645805983342439532833735718756695582576340943829528072520179623182660241321146206605201213471220551850937121265987085367172014732869688875169050369250893703411916402494066510126225334408466946255620223675190919097443415434318521421674913880701540698182471588485213561883401844933446323008051155729156045970252172547276388121113902526934887639618947146400289896121569671732777872833632544072497932991183565928601174547614229282956905288874311563170022939485029247266848857748270566302948333080623770090057849489326549046326570959237926905936375786403000491952953183981296209339192383076260571566843956188335942573141868968359267463605752369170282008337570032814374170824422617551423286810737533138207204195941658044646369363690917032455742990590584996979656010354096606435423157366376180999821433725476626944816583730367822120482345031904003890397649900746963121129237529746594435931701590398573397758659744655268576247446509130275888974263365413657388702815297880676881250886414034002711762664570677550785837751681107208960624848359654092085967625669483875510699692099678716310231076352607374753530446204656772977393668173686300779823721874437847120567708536821423567598709717054750179417053844919297008691098284966197982451207943894324504615409775557013954599100737239716015953282628896580289294833440384177236585946358586923546660156796716077841254472917575256231420877253800221552322403676939231168506491963138876535171013940098700744252413580225807311411222137558059082579044147572453198117696690976512955718896240990523960637199058391467153402133915999493796759756958398336023591868797875526059888555514408297389187476269918800665893297061703897883696590237121711889190663696853579696090569130701240907171525356779611280888082144671539728464565561174922565549752351114539183901838666869480868237731284960236840350936843287836131293997454858301683164763237671204414966485032339305494859660023448199089888485012164977945100256647767897256755383742776130436473409692444228193848985119610368601777286273641513662496011874854247915471298549607745340754128708039189718178947260852601697045171538680103174785857879763560351092201263997854415116111398979542337375710317774227440177872908330950459860160961754982579975965888673443656999184493902235791319630625281213048946071341723155886020001792662903421292883309783389904049175699749500054952676691445098743149617554859334986978278139795441634889641700779247561612769720524318245340167409975666859788753629924202844876702624868790232371419168653845970775129579628323457104333693605813301910394440089726287501541019222354961452028425293950529882987060119678644880748447878184335713611275927417283071013540999877777943040795006999213007245770155480364189100799099909107546094808362890392670276751097210083431966739193357896479214590392369948308679466037972004274081835940615251285022558134352110806495832260036240065377159396111879713825645346795339594147376961577174541050552942530879084910451937228997005036122175667117654840828727152392520387513515104322016243749058495790995651724833508552140394155722153085564014284835957667999603434934365854091592881378262511689136081298556323258568415114915393540548028178939940594055791113769503131672874050493447820138860405057575659346943785230326472989559785655840050332643601354464334028003914753642310446336209347172932228532153628617288819261988385532867122359786621094503895421226970708858126176117281258726482567474834437467765449349421662791427929700940970152360020847337317735470006246722632703639587163528392638278961299121839804191986636976568111904567681473708753973425369306967770541086741349780745635739387864420952126422100434029594306993470537895008602564211969856055908945110551645602107518393050840813608027014836851823295540423743071845923367594632384953682271153663784318674907035090611954010390549333909795684485313894472710658258221630234676779788550254601481114684362785292051488753693293447156504369572222608673431651543285727284119774918879379890576354587114144918080554385716753377059986803145941053812571248725689624833288204507787077513932357762241080430702186859402850440904007204479670564908963891040379206478624693978378109735120012628714785808396188220668634334689939073103872489351344205660057413722002035468126115237532622681231886283960625928449831968584160024089485011705968295024096505225549986717645680703676004277218478213045079089323041481266844832279589149183369705730829454047807771786205135843483346070754543122583744780430518659940817193692762414879949078776521366240752208613716753190849228402258489247934097354561561590408903984423099375985940052008428785409890136991217122745463498041383674234951669667832728887505593521715963427902450989211281418217213019334790434113083234858205561921820748634905139832196778873299083184676564552950478130368948422253162308921333006560292077322613599109872101983292634383674130995753398469349772726578064482942837874986921983472773330908323430695881696490524046326766314763228223499858567502210784425773604700667286919508615602649227896879406355999237050160515054564617523305278166286568224611631365190474589302432720245064978505476655834753300504124313419528929503662545536164613606560356209722773966219176921939815134685397502782149357787854139810924513298618086055003231905157985325656918981685644926931474244933666589493151432900561070217736404283809727909987697186433561417511924494642142390574360776853142398727587443359455186832686554720084221064877575162007455468905730767587045021817013640477334219554409079047920811298208379455441239727689260462061492227744389613777707474552042281642025164946710606071991808002703289043821881801152978053557013997394557898176492590545515264686700340168735812799697138598188611912525273550213200115985568709937893140687874311485239969786051191743903533925858912815191109197549043492927135540257836592611548314130056159542681476391510012770810074929806121007560861006275319670026066547040211135188926216364741080852963618898646533707915564657040714763113793460576538872183265427260076601551685025527681151385120597873696321413789549140393583540483995065022840578624932479563467112259671807918116772230265638204905890501276559951563547889474413824581636371204454995761716709724792907000004073966078635979618359895942023949888007543560118524430265034691344934233913237880623608445898713876056624661585739186925237252646406706834193969708836165905108605309697263074879164723668848013180701194534409119872348394397840619203288220193004786032116527090131627141511601896202617553772384065053446228762704383047253643874787128184237145118740126164641013016331845037132719017842014420741974428188447777484860202222992691119153046954435051308096861368082621302653387499267724739391687776892645652679296246757910306870368698429322581542301463485695950418254941682731005784233554313372531803348476173988039525745487904856104417414906072223992027334899949381821228018688099897973294279349293175499229419695014577471179243834532811716655791856088669926335082326994845556828388597693520089830969477120608073236186763718108904015562747630474113074426124439075533369890846742653447784994142932028847034209828078563328609137319636742751438953461830755419510723202180031548174122479448557030493587588928161740516849362524425552718143138284920216186808837442393063989567732081814618579558071116593844334433628064644057179595718948162680508530035202807864514403092269292665511400379345389273828698608350957584120435261365898017155823858640919661168808057770339257718797025164990612957292761734511660005032327608230709930898152269292490933858558025268596964635521055562204346576051776191764037987466809502266539864405396692779886110121380799036318874640337715512252596130038220188862899057394963238325626147036216919172516392057564036673683702280604913019929732425277625206881834960315590802702892448106097254797421746525736637420180066944692219755503780178554294099698584477203068342750758231447012253537774347493955874792241191743250307157063200372178838814925467558305498815677008247516918985705083573285619893164377471196742897466232747411445866377487119767815827311902865690267871306726167867325774500565605507254970553299961111879255093328939158481971752467022135110301516306706409036143258535100877041902848780457966743055154308429613475193856305466928072281554858543295004592213046374381948961676040139828339160344003974149149729351401294215583364480200653143083232761257410117023303728427742099292784399274655146174269594904228408705188670033931784333197604332134064692232077937001329738132144449822544188226876413819960796558075867068055435750691734171445748858749266862328574623277531505163496914724535359381053327951628376699916731700655017179735154451399685991496152253087292664156295022576862889450916820074619435550253745501575499149042814324484181087292056403995277622912118319789579531069479321339735185772045922273491366684802056173915252930452570419025208162871109609947403900009328982676825625794581430912569244064351200155612509935526239380561208227248681182719082009580058732205600477755183976620164786259867956794856886339154812864902317236355799111486445840331412129124382554941699556775314036725796992127339543180699497289931555743504225860838216682815922759113974604498760263503020984098282158587345730138372635793398602063100500534505796946136566003994716609739945375465843350381484208200188919719096559537503824119409761183205810994894154419329535484938643941541238770727057009302179210339615185380502845634037813475674869936879829249342722199609029342327490517708046601695099847595245406152558076447982663305754316636428194136359443117869165900607131623526830131577306866187127250054281670386880441857638260588237653682484389559956058637448261669618448506547150060422550432792904895159725812287444419615116089132539556136002214218179608652976108695049464346257698911592470657869326060645767793273586499881451157521824611584752575674493647728704644132306664205433023238501286736944454975343029808314846963838725653909476239769995652626013604934826823938215886184438179526889398765741962607285524547910042476831123146470231694542917620320936779248901221033486056261231526217553075393809638851957161816631798214423167479814954085991860483507102025744392133171973125559881106384045576316113782876966965946507386919354791630538281299966716754567887670105954836123778148147144063650230869374415474662887987105970056693858651798307334906049299799228929909400463806877563694959437688435774621408396432515875934336672681627934250456022910749629714284102569015449832857508031009636716401953340141899197121875887766314841836293176620524326644392415569803240289004863582720583451811422556806881824636841923617805208126219172695855436085106621516618592664567347609836601812411127979930168927327311474135812460196615373408537291523019935271319103626497734936720118599163732783142297224623178296703918831205308716484229676503263113569093462448257688160405402313510964920801102778864006455508832335641942130347496776083157061881114506639069987590181395035324672408044395982868433817483880264723966121772346372873992543290675321224613986403810856162151102228064884669298849005846345771636338640679809978672890667031927437344042926323766832686744150561966773050744935292705667681323457219572167164240578723084622097628853414594064916996442986628721988171206359651976224058935148332234877583501859409596251729663339273757702322275869503088683621524288721592780834079394769856868277353288945123250873032800583987840823757374891051070654436414444118639319992228083367594548847545820338557992850470191741250406850046535795333673542953390599596942727412826453418492048503996886022260580588316277492679121730750054052736909047898556103282341109510175858604994909305537564477715306659084584804913326638964771576068660068337449165618956488947305022551932520384354005041448822127268611934694457615813671303821076369265442971493949385694713770603011291009301869711967901365147812554084074753703415497624160390843978246442283725046343062709807909667851571289182692026257578744475981711992497218810805768823637121229553458722610511950123920794577084644388301272943649728427938547283273420273978310099368778357616709560013684417547867100598984378826978591495518403505755901075776713258662155868454030952276131911531122953328805066761175224455153950429815647079798746996577125715009800441018662191638750775003343393079590019697820149307925373081747423877830704418374184836206479289235590500049959622697984523136039036791529093353155314645934609168484817878627457009340976006235733920535294456400716018224538761109307276309486734904669102605706709757270639629483301066832764098199673606166223037103308538570004243716246570111431498422418006633062015868992013835006695271989922244851212190362790833357520219791058071347394814526735401212434419823963457677450469515574487284374668489235247725474867009244747110848543456407699858560189159342127163985287159613223848467090706431607176676710671062260677493866235154106811344591191101959143626294614450164602280686170550904665250573747538014635415716939676504340511272560301030195959806094576774323902792295294364205149913896102994479878333116791884784540626077002915455828656922865931170064670617139825046587122092615015624616949622929071786930536622615824147789379107272217020760211008607098058232808129497042377766590400736975729323915537268525177144478898291224338393130953339731495936522934870439611048535842563312271151479488550948678757569692333383742553031664327381544928371999842689820012088241138576064723186896959605768739444233217978191891390250742438485963750929188461920810352538863891092906745036438401235139135997060728156535097606197753538896023053419899210472282166594117821031103327329460995828429945845823058591785822925646762864243285122864932076145879117715980063114556974165688010312926416744408127099721834414540144674742225840470417810667470143223550871554729754768178613131340318237768026246308287542401529965515692087613188737983267616297935210094386274745802065918969015578148936056093948316501513294388526860064840255171433354806486143172309482099696588031288450445732137045330912420635246052042600164000575416337621570094111700439885771686634465625689238879184027462540036624125062759018866062180881374703127250202594757319948634152946700130765484996449319807694487099448856756317755733116555800745659008498558642572241998197707357030859814116732019256960559881760329597032936864612586012839484345817824496982376154619103095576853317687851995690766332808204814705044227936239655934588502835057565132858658112287034275174630602046498656083668313550745065021103356702796804565711574217091829824001179694463753326453401290308228298943091955469481860448073897588962638035918299228731579301562350713457334191220167717914767326464974726712772332120921266732455188392532668208578563534589140643150268865871141075659882038487792479945118890724931962162589768898160736037607383410070115691836556472643538477203828789233275821788850886368532712246978129474622199121291792094324646011808290913686000673459350793303049264138128599982095705592799417595842965402754209812076541940128465355904821000136816594258441909706639367629690773199537826079870973954243662539925750429565150821322935656822050007827781255212717775622504380056532876516708767035898622128248826763123625850734022927720974132013389203515457953880117897455083038986162274768272219423185467889276222815599452375591654382461401923609439721384460196090035262795183656301395791150609924056060436771771119038761472132966943588866059040932837650838552609344289751360430108359998691905524134470336767799964849953158537464373734850974805177270997730697473615544031089658563672825319384300789549943485670140147782478698037069680777602456590894280297473638512482975312538266082527831006604029835230783326307910566824780204569745268492888329734087331587030278516026071535095137601077721697255661804199349959794605406741494448423972413303952006454486460622947307246784261402150022739244319946344819576426674324600567331873493052224826413485503340614904811132366100494062721246896144501783987912499484967995868712324517455614945653080111813920742239516377897109182263984005060779796918065942797435133523030695713338443625514796748227754896997558692683710278121448797719140093361675642722340198565307239145966534783810150472729272068372984649341329995819073221609552995135762455277131580049595459528902785557714221942035985632212868387443872396976190550220510609784814208824173804194202791954685057852838780627936626611990986570847562251177304690451564954593427765863581573293083158388380710236197250101554319498683312837264000165274405272357720305444326938406786625538059919790273996966077828084391041122420332188139555250092483866253870845747450771338709876545338366313087765810998702438768997911827940032356320000846092466902602081708581141846236605199155970917080185543500798918980188763175093036821192038329557339382943583746804462242021517384037036165908471089420864826722545304093496978316121029539135331325777152832522231341225496681405956562555557880778874332122229771706995355521157034232100585168466049740129576550887919184008132598005481503061771793835240528980779714387100644995301566826325024573575639520767700176201805051553198233181375990478101256082108347475346658967114985937843596215526511852300666099652617414586691327698445353856184988584223148400849521480559828381615341610021916856564533240403602447093551145471278014207405901073369217375875307254257976268271337185876590051570807696467686778841412311578579309998813054907486997846792993777809054868191072908817027326758324842870466073867415672149863073921223871859249981249540135053680153475826448918151917689919334313452712946157383328464559729291261981467125375967469555592649844277203247844604536686886246338260416620223360554452744567524012505591407734316969154005298524478520221008660746533689130274426211146858300925909666164119997714972069844214783064965244018940209798851531390903707954976509747930357710227914315481461933274122585909685493284761371669826607689631517032233478505883587612224835117496534302207935908488579959172058834902602610667380872462443490794213389223260288504862556290141012124959268292685381291939195447474568310613134168094203772915297636085055887945839081395331284644830181890113356951591103579933957133621956600320764488268128864039519595450359195275112367498457784123726847947500212219510114549230609306803752916997074157701554119360982909641390521464230378984293614858502592758589288717736606752642197617383632430792157819530208845590466255535211011187717696407002888100769646688176072992418249087730271566704813347597309129116545814045086529064294923341331737765505031926206872673743653419055951952358018200587630606022820024157931810227003055240441354145065200312096975975759004781443448579688826787343222023830485879425324996342456369185891115160276028516416540258973825951585205921226058510095433308157461377233531395795269478344435138295421002737076286583458640926202396914382819569258003848405271275095231585194851550342691477844832414362908993485362171655296498202732886542715516515454854517336866934286229396940661780839142275930155116601180401759073783172498306244822718135041830563129244037590322995848299720625275853544525683750787834654332305465075149587155477042763460102045952074989130147143964373294169451361133534894088539287519960136557430018111336078723205381114394635310361814322927285165954194280700576328576422408318605973488940579831979170037113271460193493718748105596881686300788171437803275364105195505585477092841873676401506704539146421005987254250001803890769735278597906747170859888756491374599189667404019011042635966883202676399634761973379777791414668508543357165268171131379548015596818566054870264449071574834099995545473145947973187441715439352924412785370585490764170541457245719401191031892054406346872802180409216444477158862237782662152590218152847748441275135147668184989551548743681205878065114099244315283443976639143193241189646663575053038365471150281092076599086045161580297370681967768739137407733474863945080427380789989364719577490838887214646476596983444420392033923540779109437141627229993885829367874050679423704536287428702115274400764069114754288615984622615892739095581555672857030437515988916551513830227971521288427665782479559473386456033801663968623340249971657084120915712353640670970865263025545197747355257614375598862957710715025277595763845196463140704845900130603389379891712244856355959245575948483478883954306627059571534627949945538622531950545323054505239668918337818782038039492929296358207148253980893344572738710720758272161067846638160871185786126013976879054354973382920448932726034681798303242278792357682185081925304694135970997260191601608068139407329773031995764436822316950200047963791257336380889580562693681050401736695885862324537766121864074721325165102822491527493642474407092406069365341288441199577940547938500874447300711021992123931813232873464702756583976537476684658003949457064048200152882754638089067981909971320318570576107683318576247332600955792858233723203624041582324480250847541429927359169234188008134823746453767894666869281492030632089191499699380378576678776773550154197413569204749264567241839066317952211590729209682228052166845288694461305807700440481219493119639267884678901478128243816455424776884286538139261066554728716095931762030204652578478740576886200701519367125609764352664543409541504487714601724001548128324604074547857066450851355681209817880296707732637011196773812087551003105884604849574093766770226682891104564800338249275856822394319344560423545222406697303297203197782018710357705184502343686161715639838564430814765003092543784357458278452557254094067070563096709620062210954845644914468894167461031139124205520691677981275945041416397526196976884330423887540403354724170043661996002757938776101590908684670558238020142975034598989825146020348677097354620873881771708134888096760939771387409118800964004964886046761322354414454103034530026225248789552712253457310758118536365994161902753536490311889204729989897919213025128505928922815808108405628712397029321927813759237908840515298170432968595490413407485711108166418528070984235149843360588759805141580012602431420309461443629542926554470694650370786377564650172081408229034938653631917864293692520617497793003350409103315779988989325417625282648295107622908653199451071385340223353383524642821814317093926931272799235694733288352343362330453107819993286036881526503804338970329772218136717356401277777638960032337962943955908270880435194857473491396910371394670383342510649840055987344101937064751266980729616907159697381781135379800199280958082177808092893473529246253710781307229327688002440452507388799210800069734413445863708887386300819026095009126293474175032734429592436461092627215077177002545150157714957929039503625409240965067980051638543020419125335212417652312447772198247892944917465304033625271507216863810946600440594590377390010767375940438820678984562731459360418818824662044279902360174050736657482729336121792547966827553425747072293047991463309445720400874761616098799954386802785004101338740005275481574260275309026080125296001656831312528980919055550262663240924539660463782815168575012567480864097818210438905234435357979506815678702485823430094864261266611669416330889877373326029675712285397088044360452645441802717901514736803950692688808125507519006154177165093281441466290629854519124560322101484763392515868052460366789884797780396608906837507057488769629703454098154835222011320322826839908287450017816898334091922755550202562978229230417296104401093839540338561822390613253605088383931224305074204418067939600587435095690745795334636560147241331465969095027770393669441699449918529587961852376094284297220431675341084076364508925684628473615997441659660312598352697488486293386563361685975301833723631258812330406815110630965689025413034252797913198900790732805921332516295267526440525719940884393107186517208373395261966898203139289933906873114057516963720185815554217635954644733517121648361202603478237602122280726431718706351576574489865900349941776432003430528330555166629940155422287139762910472356062567936545917222714425630469334678752926508787211359081857494265102502670433156336504488375578718376675085311008175073189464177605116963871472915775482424844245831557018937962246361835740224370358454446215177803916721955202805674066403184323159871229430022869320477419074404943235886359250432587720844599324200461721994376388442173059199821234920930560427730174828402498789062490560712935523748490598244206093603330166581109535369839183487984459330920601543123132920482203995423032257654192931199288676915087688858226844510056753752108484692235843865779740188308874800287733235876622119718888827951441669647663988375522498555017788640082656300145277819444824687089200159625905762699489193622601074237966815043861050119735573575807357941563197463337909460424941278598673470644462676131205615116609197802735628904349619176675604751511488159589818163062743293818736607881781397806987342220897952703034362530830803092232087637755131687352405279601671936445392909351296127520151366147856458674643822484155822819891307665995555332619895535133349094064480397976524864594291499633189997845862628996106190754251138579363054055472470813931481857303793935560332474649089687716333437765173224287737465469725095298050364088263666193208703417172931805501346754830290778579571644112841559830050138980871167714332685540250821347829569603319906931018300887852753534558804275483851498448978600761951380585034715631536987053553995694213758659569530854700543642133562048157994542600503130134829020870954001409039886821417646699798743015353232418489256377563998969394974379964340300086327658755291334295177161360161170397483090153078234189709730107417331828301614175455565563249181467328707100176272463161058466562788106630727709942788359684614599332872379429694336327009758444101004690752440592070733855177377172722797441683318710873506557637645448125859613851883246157824008939627686932730989924406859623283032696060138140445689135610430040375071371689642132986247190144247984012074000737605142208943664794818531980090905250008193809733720307058581346250768751397702055888430698181906591509290507313108088959495542453830371141728754959658646639612211230134354643661308795083005372163445426626095158495162246814823044004731585423245046056914547129906540337262392390318470284932000434123208608309165358852755369154814962967383203072146758831686138325694949989006838769529356898516036173134776892964122665248086999067469126483515136056360013566749303313100934420618206518622314721213454371003886809446100154910897800221491748102782244593161391369935480931324020620271918549277837758264809103259891878012802996533751999360963065431774325208994739359232286886610958317529721437988553875354992080887296474275658259669939452150749979375025763336096640959532809944397032799658695028355811867931762115624029869824299747759264291251795909335247744424884123222237024401255664370270061621733678732121223147283098279354405073185094845016408405381985572606300992330893507577428834263605719463589759655995768453956707307586486027170747895120595955107750902472261179681970852899648212499610143364410141520297042434739486991628601280626600872031822526842661292914026949283084151668710312253048570659095972624601284905872572293589050373024269188420261852843367255456288618981364910321869713543655406027246804912398523333270818109636516556775915739960381413572393933075925198410214495424876995621126521075641719008777714932590656441329108530562298496423265052067396278309505107483938290049856717770764332229578092406762690031585449229969575045864918818591163121361718901880918104081472986855775760735051106610266065627068717009221806979357095447826507498970348238103223954303192574973972769096304474084726893773718631937356345466532768953531736221293916008665024559641457557440246009695810528876512655664869762835964328663159183163364694334690566531208845555633809467107876260791881639400753076921538652600740814734008112133624976625614143011632786312618731131057538171306241799724768659779413757352726873706904550000534445897230247602133986853646375793164830445590128641764920068390951700452651055237339718825423748323209335702398256691896338222421828920928489614410133453238459568558769827822128483853242932663890506783915693979025188745888687748496181824154620466269473447228263237946970534750196015500101742758867106302888913586954680291835867437924750506140800917286386643440246789065399767042783201812161504279691400381467128001513277435751830480913370077033971021837535596513500645879492916963821947573606865524823505884552217029882942836422103578088042580407372664077746271885233552570029473797541199481726408009371310948324100812910601897106788589842378433086383260437297167905626991116704612939396541855578209613014730092341424303264486569074724691028964640964822550725835073605338400410526123998285621954304262617139636253080144867474401717065061078158191702414697452144103108412140417873364696140150531007878495065413113079878703641052327981150398919427897740859224912077787277299825263827999125927309187427572347332943136171832097734207508886035656360124376991976714318554323312320368209769492890830825701671444846456039953291785231522286970110028612634686245029030864567774976735984098749566787471322127461901917469470209661291057148258077959105535810203996155160896595198877891773927716936320188067033361025887079662502110126574083626430262239494285499446907940503202549702322584303654411286962070705639300476417874713641256866385141045536554729812780933971825120138858914845423358096709035967069927921786527264965450912939883595719574303197822401474918847201599608602061396920856372853994504693776981762310183383687511381225949228754295192937356949634515640646911458646446778078175996368929749162452516321590625276044323295586878778707098048727318184314342971064183322004346306687313560540607776655299005344433965803233682721451413408428550814946553735528972922230581653693990927575654551934226311095596046450625221520148420735465213693683648744392140562875775284096507393857515232136140792053603296558767157855993370219791835524051491916325790204009323417505373608171043333674057739370836980657853648795070168102728827055042879294076265778273621394285704644623616899067783704613730037123031568055478652891864495380906377543094368862486034540355820630763504311210368310158314736639536127195332517023580984915729612196886336093466529960831479706706083354260135057463261759070008489148403714681649846238762971342906257824821709165951995780296840780395372859202277350531967895759690138512489783985074270678561306265089971511453474663723161235591374473885232644582531257376908165916854949466360303634664144527732468621917469075082149495763338950814130407156123244502669093468242245236444053472860897377269755530631221020878372255142116725785736003393992655878955115777154542682054836978629021009229197786273633825713389716490093340061900591889999598950247104944758353317162352066269633057708426512014927029166439492923464010078719286386312816732307224438987451008739097054169802612375460437920483101803148836143552626901098345331421976940646593679864344536091719999375933493135309942739842979089511272852741230623307315847342172682827490243136368082465262681408950296622908119818476684301426825547060416285247200042994988862807560617836509422798878027320800782712810829422037959728554116313684816106715260623629424820851818669634212246588402785382195597290091017348936120405660070256550263458079737604343756775986709456791275207920287146587678650574811241397576808792369341621388625133278066305894610002618209453747636070171133923847375997001936762866945107326136484307903746676789312951109033151470326700702626732332065985160242726233249679908343565812695568178404787055752225990316130983313038291880168652495205461167839809683069479568001325781994587290901895317543027315376600158324780853831953705502856597770229869675419833106153478165338472137315953084599228570132147045592981718078278440234677145341679362686377962062759693211636695008669372363350339327058602307930337547328707533729080697045489247094731153077277645473792312286992398332556815583266834691142367241583972461571080218413037293167914482965370194743699445789035647482385198623886886398020478916616442111000264421138154326777421422481831790234104597418383759228133628610289279196296499130630779014737234181411031043718411129261920970126626599230792119618763245977419963932229020305658805879950449769367092544778102869966385080023145006934846023429945493385318242083841419766779026410521134914090547825682194301151447337437867747180554882702669060964323309870683813248609954967275624688265732394214027671076814580453898862715019418195161972539264683276472540995376946856728438257110104563746420896639222971224181279376033550860869462899099725474187302480628226246208175953935914967966918220338004986474499824803347818122740290858319454912972508456470237271355579556164385323450253862878346036789254605648000962250789257199223483403718068592523568531415911593212040571039294357588755837883525201954589344628499983497071192083615111891596510446863086810870530389877343435969626762593768726520585004298736198135786115459169619219092905358597601824631631105056585335701501201793760367296561741271928859138784836642117608947163703049175605128540790605742286081202874903475233377466769140082786641775027428146120896908055879495526327201991411634010751376555812058421961420955223612384461016648781908996377305079907453478168565485607974614855924087098862838627376146120068108548399869032596285955317270778303015411393281428357095061022892349225611741095872183451733841538944232721752425730752221869394969594007933206859395411546459328672324282583824441111101847700497654730506203438346821482903024599186525776182316674592473621975452027770437039930760897482338443843017301790455300446701033513411662325477247097276033008936025971326510361159412488622947443499279282758717337938011965932446701954078611083326873396539659138105421723534422347251706631343239581936477423077840983289560686193228447442774132792025280884376203681824946129936278932938215670980754407835545675540082800345997708671054223833253096767693156773381187612611548827851315078038095361547352973838151142356180685410441345787891102067181389790414333987761471776727859348537082860607935764468619572826851922342982170764291706026190123819346173949726888507858925359748025214335302556287422591563888147100407040351925034498718575073738222107673825204267460145691275719072661304704597456716687942101344475019969148583643380398486594619358700196723057158133883808893114992859478240474387267909225139899408912319867106600513099396836240434738468769608592714749133292421576529699030872588061386915130104487224838179397974940611685874856926965424952411775837124646418314271478717111915960363664245645529588233967315366178361290549361260515403398923985075644089929733544382718681571521830002061911254189997546555626086231211909229741256251778990944175307241773763985651507124242255525396240621718829734344441134610396903964956444535949924375785459347539199591207954352105700234165944692433430134758204431451037907262006439512954784940880894882315655568271910522629239132092203504611975973835619649533424489134393467254183907693463911006501138096982196874549783265972993008331837494635769071637198683849863704599833973379905772421840540093907543416771382922938715590616010346361503971369229579364559385846769624766522310942188451573745464343044868815937316040229345524352572464940988121393162348411059751545241277736734614960390090852571438962678978784006201807479468946749129580591590645601563363322729741716288439869425132165195563082193995348291385600207839444228297594822426494871752201135047826108180749487267417857985405411436489170132176852384586378579720022835245598824941234003063699017733908856165078942828919894460834249190004517170192263585529652729057562059216906127874559651920074901214676820362674149107647048105214474181153807206344233994642876125998336872045848886238130059222636124726405086158274913555087164683514585843995779194896879013022598855108721105584763939487039972633793078835922010720770109569966915244588214730179883458334148717276312499304795841369073974899064230709844243965153230332192539265092254308970787452992211801053015906600359505580040301701413654926289826600632189614573736833423246958093859403170662431549001828112965930885893188600575454175499746339623353079032862881084774176514490403527640225211554472003099434127548904942605941902590370798175534389454431953683108329337759997164433577856690107037443962565096398928857697387637333566625484745165729524815904771070804414786104199594923178238513699335823999124007203593522840900030034979357285404185171680463728575704366742207089345739579076737385502909380016861500045127076922165207606305811236743082027551730613371300797879325265821870145872370465715233211718401783823110996166659521508519489029151571018197742386361343969547878465268508600277687317351939815433599622161797406126494724062239117863077982715145901490877190475592533200781766848629986355247732893502316031208669546153974994164351693632548964599211175750998982477175408340315971379404476838064471846122759861584715263814657193119759479389682463783506677179479913669324830477049370524523337894120335695252178869584030327154176891335665547716405487873625932215024468389204866159281554488422413386871102370195851774416238959142884110443612835353491344262461353247903915352999525000174333858566320384469317632298000458910091246541672197038710761792681224563189807952696533633698393008155958496486902920394575423195890182022606728163677909058025382846103187798674546565702748750197512634918635997504351282214426784284418750476100872861262742226778621982541564994473372871994110252629191711082049200850780252236555054900424736209612858975603805102904393770028914513774791523178125876317623387736465521770237673495044526623642513070275046130746346425313063480415895154272033697841745195693480810571869363276509609637172751673276295395379753239818676264431525940656412864958715787273033586087894349475819428043637530557517891310964956218140658937657440719280744052998435335050924190142477770052834497326610443264601659845706476230611778909044750190960938129386199961631660053944916867012038197168520458907109291559783877671954316190580383972963071304169331300270828812289769921140607264054202515640623184515492365647381413260930689334880174850217737474669057334754348139129455459936638167337560142094074706895661394334823927585649236423485779788850216222463688312296715038102253929913427694929266842411394900652678077442425996906834728114373538197015714541971294717937929886724047303132369255780858929833158584683159650636429306278780706449377245647523830361781179448808336140691016733288614073112024995891391478837882450279472176145503349741161509668062537901792680366935726803134486820441509213369552676963901860241448265757000340867765878279319114023949565864984870248025395967939417939257091760510244194323935479900945744910767038587935588248443520065344730199766189570265482545056478803949580825976139540122658411520036551594929379027932839063744111365371588364075145684283701752588386974189507431087587111640447600764359347547942115475133684239634554211102234020435321881495292631489265705247603053602783557745304857810027131454465981163228574023730578121054332549540412941922880052174878927504761008379787942493940220706184252516192341375554127734940781756144941338480789059779388722048715465526493517590799932540681472460619138642737330721312659442934536267106585691054016654656990324321430764672484203485425074847261508690409037251698355571941453671551777438623838331645544490498285413924040566728120704024185016367136446932349704409339190720191417848578628281586675315723423011692525729334193624177010410110321534298002043857961047408945144570596018801736634825222885716004451255490924768005858107111946266617306785320871415788101255533321430096993665192751062216756731274207043616529621466060021001122061201231797033589536327773823790009112453509240332086300790144583281419387861126537377874391357125675860220314497804581889560372733391730782516052086628201256775857407414811340155171985937996098951605732325681223855078616488033637479519908435919449492556190207371981187059750992729009758921486196997209280957074665186708373285732580416952766966988104561161645435814613532052110462469808374866744586506523505886782234726576645084804411598824791095765692444533400342170756505219642954472631917658937450385506878415259851662290259707104050560709243080692793517515305983302211970909489971218977911642027174162900856953993188451227332449770150808108429079854628292267874736229794364031848333771727835317898207901937021887374869507329023383737789582181668142567571607587988701727830280907163645432081293775459842016731797359653807823476945958050271105855665782838204929285125933037021478618100408316073839112369622361292777706274819963447536249398932725098671796294900764157286839374861012355247769323407404998162636365389413899271102931643384916007234843404965136437336952150811228390519764608842566981733466960490868390150340128922622974618052586001526106493984411631984736537296696750539723234277645607322984685930238796953874781743528793733680235298722381419470858700996210071760050182741675639127085823421804754857845986608777608903280531556287035422559600075225999407975731552283196037227362472503261967020568365465589550790020824012808124210541306621429609965765281815097598271718492203690431513292558121633228317763213645848925149388304501921614129659908043811968395018421541940593555093725923163095431243987543656994073091834501746696816885476113875565484307277833560504294516857068038288030833853177037892754889693607940763578735797401126801319731763707542820616902214806309969854906997447265205496423734712452186691648053188508139796080131922002137656160482780083128269383968654155800903972927549175123687967640760192158692384133247016336299375228113182360701827753120997679875486226520929992685867257342319864518481489559831189505487074184862993501778404970360442501609568021533945746951484164712141805225131163688560728155717639443212188161282629743466509971246524137472998156707004793318173440887889523292586441411126271535881261209701570143606479117468741013526803016234804278648844610014326013372835444895862222913895175029725322550894895205811690622387272570570139767827024357430337501161505468904639419501602594727426382524956751729802589084401459060296159882496135648758243566701304579410706254594750553403836932426046885308314696866338845601081373557134640831142354374722416659702669742948285098966219449704285608604017657504939853855375865113677228897334051911125096353155558729213366990166914496525903509413475635679179101532586787333359769880894119810972524749265509703265011182532883464820497452740971488823235045688885621156741995366405408043165319701351641025850794306348235875210846904504561301347163519089488422610437366941526957994668711897030030750504328222350537418119146889077054866494708151505490794478057039135469399952321519281729271588422583221787509801512479479076902183186138487773326871272202821846713168099793176786583025445043327528552097888565014431423892151191902398327017209754673495716329158447191425650141225064993385722329292772396765042925106148575563197519084230056179849329679737685114308666792394621012104840537017334750150032551489132870199198463968289455271306870824423717480785405935731320010242032117967102688838503995984020966987847203008158397616051664006987383200968204031475206637902612437350137502469907048196557192000310609347000628005211479215795269336647929801380744015451790181769367474360077791472498529870952743410086506224079871573150228255655210707431947858854925970248247541982489937192525608135152995648861360109787140202157835093362894676021779729584596716795839392613486870515443975927126854762658176875971691556059041657989319026213906411887774710364653167309059095136775978577952548242855934884483387605955191781688356006876855328426371816244542072578397055999878650060300285427116874226725501155438212222144450246982995120995861175428953156704294416309100732225576116032083898864934209702272705996533894746059902531161922561016055768700363877185752114084052799796388683273478731751246071096795149094694662459110535247523372095200000417613701127175296971290348200891970564066064974891259440341467346722747515457364734762821016158984921050217429972550883197037432903249221022373952447971143679449689736966416256356289651226457368421440031062188567502468358788827495980788987657280849936204488233918078456971976836170295162870178382303252255642931321186053871769728306985377524206128755357341877261754684336480877158223210155880932603007940571665466800094160118614061287582175683192797638104385083771734292222095749693037989694853317839080949624755882559000528978312983719971178858972118582583715502023868898289175495662898866202840032605908598258545474055022556894394919729329540141357291954661442420874083847033607929060147652225286927330598942257663185685623940396177113902589473209887814774908119870311771768435432232115481771597363546556514165022721392960380959615384602891905989221011364970491061397562039243500334490737394552841410623329373609396051642705468343880618736609316544956887363294037831650234309733000146467751121605534986566552296092146195392831680775206432570036675331279644197737146212711542657260056652533497936651363600878421114824288940380554385540106431689800790217859649509754057716510062354178294190517684177356889078903465159605860061194616220042926004641478387022114084673046017567198231946906305396337430221175924554699010922988613862135957810923611493168563135261947920861483932411477870858470712364620139006375032903127930159219807831088043950182840068864735645508652847452292012707642819243728321227466287031446090962487012837525743644549862336273373421936919927885080113740818755609115887310468079838660383877222566694819020041450173894884781427689536771978651408174560143615796494867267799013361363754859800311355472438841228584881225981129039202522069217699237735883735252673891118311599493330574650062106367843268937635639369148412087747103335739843942170689649715449868217403385994008628934978558261703211308354904209824394257508463478860966333433858217490383090723462538882194237565882376915402617273517180963629401561184948014149593977022751445131406902504851717818863527114370167328676033161915393111446634858846179893856734640738379899020239238789784874005014924815144242133344886427264352841919152455078563763098563931659642051860533654990440394095605629915024846934920247617378477988195453371782774294306979787328377978023646399287675157180140243967860328606252513297408115195342339108171413111870734075643541730829665483813444837591184663123507624116208903062733003580824047322617577656220845105383500837383023913197172047643154935038301693880603708595421379460170061856023644784274387600406505958860784761702114464934147032226341366736591995120618812405358850558300198984927397463363668173820461177428527573557027402454017234793715960079061015284095617986910823159486867132597716546872352977771884961399118950083130944821345040142014394526147132609740493242124292463050948557904251313556236624463468913218976860373689241034704607351750994441529731942227036574876856979867757544680813078126982976228180596180670964618461848708803552502914407554158315890738322510802402256136127738591290215249047558321758991585699556037632993028209481837766191970111352689083477526063136058666660375094523906196267821950731047478418612017221906663620511177461495465630936164939375289651654706675992435531127249743235468435764465667142782058243222574539849282426689506782854134766200644709071708652433727095838853950777778598396010983836234791570237452135243206442423121075689742394166652651895604331258793332999220962417990024420998569668930917968021703129969810394545930451464994399813825313779020894243096247610091804189025711711662536206754550674209031008811179693231158137142909018090006528128686718751820098448160539802335767457975693281800644329786445965315606103933663205482622113051688473360100832755425463592530860808054706334160808268607887506223881194197870944843221177891969882834120927818119073100120619536463113633029058029444048818571247308899789412409578615235117532909495867563190945168163630748525070478341569394795630381859777465900138314842551586238663380943137685914998622142943758040364695390301183752566713303544385706106818980378426980217366676148532484577082035396911359649894102694770545857832042219890176203696156550047697184378336426867162596401731433181030003726855572124653319462925712869820750166674748322625716535854613427384612739011188411865405995202666004365699603896334057645931675255566400496464712999869306146096927432592604608262360823320912803713446790537027335689911080065715522934249823464150139796480579188022099030992459082568449969230214582605705223647151425565576059860816324713225159183487327518303347982054384124357893733048610968118942023365327377389428048791173430104644810971458864741117692591994096271730298866624974265915457921537918221824343797794804774238981639063313235849778930119576009059169733394016426874252932455419218617927499943959503835103931991255194033850979988905344089263145371724114031977180230747710284110059019972797736896684872843085915139841675140673946312690150516227494997241931452928462471608623980183209094159742813396637252862452743488881785951871688689635974378204990415000227282788211091208282910661651080569657409230914936397910131088720793771027589848121982680804371758764889348948474328917668503736495099557189684938848586181159311727601359479204743694688720904988651707141105818996274312042292599886363063458198372901590433706222454393175134983174989716730619929714673560529129417768402359219727589215206780920047488930311557820137805021273714409425641309347399999137960345622843729885583059860739180095088428811115110241657149022012005907750987613647518312608507140740265761511810849221358266130930540982658510807566976742713105022051813006390345662100543179815162652742266204425630654075810450440603292512164003613387834148021615826802968585693267294229769386767712564781951562278680436932757093608874083531280408536574330074060771644348893469692570982174553794259391549314008137197127493645993244169859239468364633915496554780131496644804870739529702145593461546114935897602558773263886695749324078911254007705125608967406516705344234359548643402331813102031796554395258058094455021285278211720509323557154425954092204985110355929268050412543190024433696853488010943414135756062264589972361699721651927044131379120143791266693751142555202616595909022821309949671864912013702152143880161317466197578435929472587221834766103058199032391457128079445933873603804302112225883651045995455727945887948863962248606138362556489925817756761065239910609684478238733269890043304095258666182849526171921916715832369803045135484518091309046586738078454403478654525293029953683068932830993575706919094879732874411585648345106294370563142643294023694649557875912432628080542798068369434148619931130053142045253561212061050876514098048040593691929205441053432197403189232502773109191384954947645396269097720349389270145776328925416184297516694520759365930186724152212654907756802646354182161979702280930248008799048990505887038905891841749591506492699143629608862638468564445765872775390097674620612300132979975370377798332530469852350808640405568983146163970895403635879312869434483814587981022274004009419065409689297330734229172057866105797660753870462865484230242346788808932152132672037634025865981468625787668329233210340262398758301921034142235700526579130582163437086583731152344257746108840142382743996064296174815791863425969274847516610952400131823390077700771037452416178806351791131258422642166725572246757988295602240695790823652149792369306032777187143054166850275199800986392103742259844222355412709987500621934442135357835674428184456786716552722634995238742481953690162846204778982246734897806456341625078969692286842848722062569735882468086302784207856688385325434511997515134948375547736816344464793809858358888901208003805000158172586418110468999379002460380445693622098165161870335673855629213751930853925654918678908236796651773693827799301350969818889330187512595851284271519815621531079004288971652121261893089814651101773871358192059640316527367508147191781198203007959009569533514192466576841079159710849582387934901309498642688852341347945871711223349119630816155939699168082886958081255358595563742622785844205498709762134730921188553481403047454135586898679753871716629144127914002618332946699423312774833212424773625871194328016311189979118637547454808150206255056271527240074798206002919324104058786835078862951735252978143401003156613679645796521851516872204394312107038922597731359388022309419906505647399277427072456739994258830921806708406386434414459971664651335726164566823798939045172957455580952285217155935388632426407455340031448941174678361879744405467476923463473312300609897203726238857709801291627077517537087139408135353355777950023208814487015682836859746704121019222841439042524599204847441819147044908017089502588832518509548406504056469069775362081398113986460178608897308658274328205224523640702024319979310092009692491042003814217092868892945906042670923751780395492855123436847382157737170776512844054483929608057735086453301547639030181282461230476189418329376125034744778439281235796148464846555870470095604176866599530073430938530804526609987859341284504169181241669243077475208425548330388233906116085890846369838198347419704549532704848428185278420667592616582979594646967710502454259444146209100302685949952814884037028725946524048925391199550831326426466659408027407679377914159351138660300462346062609157236113042587940620574692778184659478235650562597405206659954963465276413676896140834227916288879945364134173970767735569051611098462522814485212123370855128750310530601123611309860348012182619739558115102219949521463142930253874772865473381772228159316638410671897541664725558127469719624403249449645370442555591153600398280098146362168118109563803500443857345086559383786069768791084495233352645197900029431319944555060199580330673083052576871521820937416316549757683506508938640342341622852629363075820090877828312177285750689962598210945368491824893867799678486270874240240912873143131295573500923195542054659569260896671251920870491356653654922641327150307905326205313247163276953224640253761745774334419026463706908023145358406977752122808676973416156301011392461777311356900134248433134132450328208133435428931426724925416776072791070002430983261485387150790900530459968375411698897345566094883100621965126942632882133306329073363699866129165341101136376712578951869402588468550739457546123479067807460993349710036460021452316420122209161829006998711663609573530199504191109354916375685485374628597187874502216334783749479974721416925083370698686157464974534573308552133643718710694585190548140442408139230580617034456744197911449757650420163035009957541532374846199238837053522657787949373802733704741358092918988517698891947949333826626014360743757741679729791745068022917037470342262529227929541884799151297564835546641606330787665591679575110166667991574399755738803040887599995939622326330785478380552396324920743626217191698875505194794896041746851479636287402556100896584544353549414798261316514139234674359953328891011987418360059816993739673305998413002607316214529472776313107089267728135757803762911348603412949309268927030108062897379361756024015861504643470373298460420031222845215024681534295488755912895012395046922161028640301541699774246707380753940103222087132899086977336760082506670714340974464807156737402826525038379242624580115853968071398968859577627954007536351919284661070512291212448576243577648686019482396135471622704298701230984108820784822528011970480284979972963585803385563812907374927118203415604113472665828105084703667959450859120427324034132322025893310958270650575709525672947628937392915343047672208666707550017591577543656855871232738723953001014160689831143107959982710955612049790144486756297881681834913338283610946587057267004556888395260024048596007554400475088179293032521908405895459780439680723134519495545115286726040477051034459294423462672301223170055561795124006621265692533485847820549865947031161962350416195946343320631559827777835089649138568866488635921841723037097118815858381006132079420465247027805769100112800785886649726396487754264436118302994217102801698814421304235728868868884709175765202146032435820243041394864682597056917254923699418315936785133110214891371517842443911799673598783612066154073755369303436284032005458938187099192202746173694075407453932860683702790987662650358246263758999238332649472081048560288355985061636273771552861988485122707198946916955263078574747587842398290114389448295849078970305465964130009082199591993050419185209482925359179408261122067858914501204179229822935794963914193432253998784508468435115966484304504420297124020404659568328442790341408322237904639560793978587042835270085327505473860230856302429348091143659909934101861212195683013877303674230381904926797490456313574785619709513735265566913551088062401179813045772747834928532543583590574990376409103452151742743833262295107046911674252877791442566269428013580197627934956822422063572992399798207196477411761537651700193436925508270069658991407970041813419614187490586280977945998174754867075673196225030165143989182293584292647145028101397277366940132841404957119202809466039375228072032025427289209062357007853595786698920255739994444946062626253031239162945775211198907158142540349257449846703362026172470294720209125861672764571902643029741544263208277240195110139626402917437260410218339062726023517029748453585046612238700361240676050021147488852476408764203470135118643514328538720897585674530592400805329720909298516522047492670234076549894978676618423837353668864899796609160001873684055941141933014853869659309262567209274928767779371374195788883601260620604870475501236508501719039881390435697017746455375998236746471924926711821199863388329406939650744722195177560555646397666021459614503742793217036817617165144471203965990737543201160889524353103345688780916015191256932297065836009856788125186134993271305632103904177834417682416870826333048620964832989149328681155096500676133556088471173008723993757819325419969008662319908324987170076169551673098057419457216837909809201084708289401120148630533840005659630811011667504747530447664217940375840247092388031832323816586157328919065753169301621585807487733174042537278193761517627419390484944673798094594354484196278550630482354633784594860783072616228856893554355837246632361878606698131419066498437974950146897388615489782885527482813242424247844846099375436135328158173377413212518433105633099573619891131003132755456187334582200781946497909397670861305481127504907254609096110151636946596859039858971332363697775120221178196792697935610115634963442052592724202585772432269735053185596479377903302868112947910485342749154969394252724271181512845594633395468362939265213044849044643754695111573838468607169299218129480124382900529460391574109390337981598093274558650097703731336928009983976040151659092092653912748583589013811185663272256524947206912955292298624812430356505860776100703850821605093768425535078233915579435438094089519292474377610712413571011074337656534340375329098259615686607749068583203502371600292072918021307407307211578109273840454944647512838301557574585222795961016518744146019617142018470646922479119692143516206990501068032290377342285549214022513384104276016767112020721453170929670299319498776631260291732905730953301718101182732346114906515764617341959877450176973367356679833482927542508995601925201326868198291610669809801006087539152250372994602351899189550360647571739456087229995279011195938934469091191527957490783103720098786295533176389293337727228990737683167763382672665327297517850386059140605841063253955950490647923025410305821524139450264464918331857702429573361395225895696022363413246939183758507413107215052549469567950783828157979825871690577492428709094562153843146111414856254113912195758024863084715038446468330453328902206037144444135219866186631660513181163442379947260785378224501609567963886289560562243206230671509093153908304318904796666900575317996648870512860279982250521739577991838219562907334253869807747008670335986331696919586672247416378765803385402197358060099830975466942103053907910274575230616947880344791677246971486011412991127702866065965252593251805814776508792385660319657823065652844169048011457789069749532138738423723286068859500497794365226719179586854568194818520878514196048473608146530161677892059407945413797165269662857985828198903694261835006680144817174437068403985625697989585301055573111804049201034574224677111023838074215958651269499985861768984944358599733319393741770119662224491604695582957681342897188045823974864959464113405911528402719192982040419214848054589012326380631271570420153880749842714153768776895576492830357490183443972075095028765725980854596188871753708170983038853352809370767725543634173165673129829621153128208216590287990866153537536955968880126007092677447628495050441525748927353940044846563084808645195418789817886700242756706880949044139847159231658744352734571691185793208553992349815350607364065478853467015713144286188914426914796591026068323966799184559109668478173913967630841524145796223080300394579457254678134130730902456000568504080403357680522301241257062497365560924904485569636883450151916719046473934421742813262231533999362837035579960209620786480449673462411136444123135625143236993515867608715220184171499513884138758686669639438855447202356291241983216772125381215578906726650999483224471380660135850579804643986089061102000171739220095629375915122727263909359416733863307011650094597220746492721939526380225658757535130278302732310085859489282045259635548775940284403777054656057278749081300798332476176795513064981177743424911858161307186953865294469101719076024645393114908651886429983014629338264092478825980461370862147665986050056465474787120681335529964999331960851618183897012867938527568938356019804878103268857053069201084202928601790746056020090852442118050626932648021866325940802187442245236990308114094157191176033396882727052455543005887377953575254466252731254911252867278136587563829104205668052588024116654223517225495719928987548371372718438457062662729457966140970866350197465386133773706411090583370128494735320350853917869993253802580228887476980880062647568542467818071288412423953653148737788149318064326030478637244224841067298165004128619934421519942140666560359825527012508754049786624746377395924276386694675007740906615581941056483671068014419160298158361570706585693779775047924605359529517780298037390862525051768342757994820157310143039107874122081680810918074612595014872318133318495796795231880842464888721076442402529268370469014128634324799878193415630872711797577023344257464250452363134446857364113873347680788770626802710193442929990141018938473988321176398700461277541613951870345681930665633861983091787453063849959432922832732307161480850606273208169150168528710983055620882401134473812078374037910635245114248036302528530108608449779766824833604194226430276453065389557064782508092795292167656994370357202057104727062723474060289260268162306249044106856478676385108224449379325080089021063266330388673156612807984207338343849024424015985046797862561654498747388142040046117886482952832341420638406478910575023409968629166928784761846378826230838976251439983243000823696760762933293025352024810044565547938117865527746826816609028478958211267129783077179775822731936129759740922054876757118616800054563025021240981033309085037240766677225796624964354777121078870107111596314288318384572151744148836643130111393484715547613553457989710827525986988666465516669084538272040681727024837637890575280105665061090598572453428542288350337306471619062811176045030401266930225207957252726638489271074077304342155503769025695693900534314115502989894093513857481883068419354669961332698389162540220108202305639457683252618267239912536784359942064830512601511451525446371886695422654077621006831867068295674884077741987116060806649301208362785457860662827079164569982377183542714170793866826471967865726659855253529540298829845642410573273835665311948557733820974725702228086802912965881154915545196265965176916371935308743965715106365217781143537777368168243199753797794520361246474770080091362097285831805209254410053921901005270790731861664150153986476679998732409318614202036305563276158544411897105154644905524040220610658443266706399707322186782554614889076502770673073442971597699108700742835306454345594407646912423063201250953773096502283181104764075600321476955022108987049040095166916976767615956798119636962905643961869292072578925917151440029865555897779695200164357267298611969425923411549961081857206407837505977213887605228674924831740635719470738824656232095048975824823146433501579178978349664929485278056966409546166621094828045272550946559096235626339917760580355392437751347605929746430198945662405807493536889887640328088061523912683830219712294058995130153947923804271288484222803415169331948623779584262468371813489157507117466795581171914016530923918010796282490367892776374037446708700505461539035760086212360191073402075933277863707014974887288127521579421486354479134421423533351996593604117750930496734299899530244849214106165860956893257028402989404272962798937602581634094773350585794321922838334168241240779679969319235662877545624066696564095373934882941058123912239368497688096272183820381895598537948274481775881013796235945820931401344724305442205688956841559628436948083993448840372501794502560247318722673827740304484113702407028423673209178623468784758276944228984186412673075552467671509016917880469314008474783023598946323384786350624324754317121330228784681333815983108618186606137511279218296340544436497597443939932214164548685364167341699096031680476702798401833863198468452481122047032205084173195392159841355668604109479564071372756727780974442025301666877801714883952171428479714909517717897724220185683900690624624494953138345002063779156863728118207018683792583589070025387976575848157282406933211555489469478486668318828121914772949511826040870270972443178564417478834366741263791251171455563245529370188334365064970883887451560504902912814937178583481537620817609289414330656797977215421112170269495547733821267932056905237643843914037818619640321532411479911882907627218466967786012886002541984604603446509656296777765334776633067066732249051679076325190398611885934043876917472899804056399205410116243046169757987233894468441432642847449726788931024535140673537678519011553280253596468045703432907347060685027936897526315353838480698244868599849590569863530264597544257689058515626016378965002105120388347750066725954869338151495186770975146243981411809975113303630916060276149523609480965025937597372314941334067397523040690197328386799990688055180428517212263497380153161947954893885271911143810927041784906334542254685012916633189884636080103917282201085924054563989745332774831798921256157693654351837517513035886181496839166769529495464710488839854263617753670389107319314357453539261203802110809960549544782241057247092335534359432050163886126601381901178092293755616209888614137062925485093963614395531890271929198125726337699741500112181653216649390240498380522853513078824937735898946837379646808787729866133750122729515979851403051820020540966645001421981624506509035398019684217014372681877792404674287056873067935775148602977100791522067914814143675492092181668734024090804536558009292983070061104569296830889936958467392231523318950062755721666884606533882593682046822936341394030462613256041726310944470749969611793475032207034734919176091368686337722952374175571482042269910497959117764684952954939828075012084697305700498684360594337314463598934182235779527185715243447360012948030572161720389450987113873985183660555949108689415236921782408290895309350680297420374004413060721654292764597805096211828539150237606229436955354374901934406225310330137740637332063416539935595648771889490196713831067099066307406129740576816418828778234910585755589606549571628180497771972524908140233385927907807662905587526304317463703344558593127943883179812916859095078356192301120029340253446231893642127245823179907963630206909309687441658046233065728106883188464603032519981465650924607152806261577184724066595825205824670653982649444382745786139744604610686068259265320754622618054059816209822808242639761457335775736696630767828451250581178444759665869760872053407497081175664232183099141027024171703667826317776355287430392257631757980902983244973299549420826942334826629336623949507620918034414475614465679932801407405732671414390712407440253264662107398624684173496526596860625842365122243393446767027931248839540213976196232592009945708708702738125272197512150090069802763511271112468198153549115273224030129878756834364603746262376263851886028519037541558323981427944039797332034304309899050572869985364947696476124243548261798408198285099001279086203436946153653729330497708466527151678209729876843257005850225045993786315504430979466677615576707800148301209844970891729591401656337734316093836917353353961454668326943742460335754867969561604158578216494316779550074768999686061494461241357637798554819314080776151124228647825575357118455851240885875136923757679648410854685160533351261663371147211553988065175929529941925706599030057723991202711204912743128819937998811821054221623859768550626073422879917450609058922114806898363794906020706871079018308346258999329682500745265853766095882284279634204768153797272539029675019000063491876871289626704043373247344612777599328999019803169514446232805708228400435401727084578415108265580640506403707331701461177426578480531724790306702736820376836257091532127347168526698865695702521100356340562532365541354499852891644282035085940824873267363200607769617016001874858725484821877290444809110232533153677373360477770764621978239949901400551264630462913140158854272496186415378422654663956030288497474029898485803115473168080460300098272756974535885599479023852179188864583127480300005275165244591437107619336622400889583760762156858755370703952590762897832350958049383508941878802999772254467177128404334607332108346912195313747815473873757309838516972756828032115361453998889199632010817366609582954092032311339898020278972143244002558601825863379821304121602087147120905600693951677801868880016121392328380668243273101162200637343271534498453318698392008992152578864056359915997776875201844865605875034394010406979337390893574024213660003556605146460577857413442100857871188600892667910130316833955741605437739222812103374326988224476061657609169773536640534319160746983607722347989413477565185236608549512978327068920263135845282613056496878112112561996887698954207603891488237136314688633242855230491852537372088179870537539105575954374595806137748415811047290206176475248355467547993117097461786519378270235734906279851254382482457434451938895904382643550792022604735746361364281898382235458415647989354780186053842899719074834451495386957031544976778352157184649156124260168423426575004063546772167137185714424308274722286775315664149056111595349890964393898794647166073495172531371463601467891562643478600622496745231698773659364796016066718336494651831257090159060482891239038320532738237748721860255447597557600963841112398263327406599109710215536145970240766175734159110093742904314859712418122344609395003573375776661836615211560932079577542171012789369731822005253562509418899175845377472037935598272220743187586805307253239097891259237138125807464171468891319168324895039182413220414897696947481074987805168058726072598547566794180072591819323149082528670956251265080072784274761768135774147712713843920179936647612212386463316480671958553814809279785956001318596116195025238813683055835154010024775980924834513373736178967317794813259104196064149908958570686922083695876143005225854444241610718920919189467193529673731532158224202946359294695804384309348719396362204696295944197636624397550427043976499368258646080221973963854955958437828018945824795444133018694127269442119775185986878341875798034185967333596384307936126571103733671172952156449139448201330232248739015128370370928781088028933252386698234191995669641053374619110213579018695597080439507722689214047566221830526145588160950893050988881842506089218510507593955019850088658122047151313015218791163777655377822206787838725192375472876956067177046274654615157235802551994711337944710166159133823343768791587560669130296772071249692146590315404461316707771799864609468397280902868122194757677690893557464241446741959977136318050783158522788755580477089721538430995612080969483944400628874718419823165529923101547873986490118390209772583956405343253364324379163586432123117777488806902682942906505825333486017235526914172664928075914024291190731302335235849792013346294419887107792145036101811608479314514635389792492952118191691803894357694198281462798967756755445817873812100852166947300603675282243947667494484077438118950576156025744512367784259512689888034068759985695759447591057367803221271015184983548843815737263995741951191717030959859661569961273533109997677824924461422515270353991673278049002823313753500945993726656708814562320591978066310530252849792320532687426829493779528201834423939922672948912231121837990478408970010372544053237460759314482085470876282635695551471283542811416597124660848973119177620055329592876569281286543652224172232848081321089246761616309898879376445439210616525474644449534210221247830322021742906075619167376721697541021743301941311002850078477463707324088876668497430319398519679003022181619647122502109626120962817238458259596031794389175962312107777653727273877069411300238752508671922454152213072096857178285183269901370706746640375848108470954945936599359720294197540362348179662581760433445944588574821195417419123913362958254239841852163235897912656499581790158432041468723104594479846314828821475085403060579046662572149026565595380682428453696482739101351845990571040572240227338119024837466737889198720057952803526206507223220152724429658651696300206099571058433312280331288660221939867901474229366141235017249643710200881286117859626546671447037697016365559094611850160771900549165523605477400804199320916507458146178220806266908509449686310585556152420760397259808623894012761700231912122434230309495705970350496725084042076406410000903112023216219340935262792018458831360389219265542418113122519889818532407197111314920268573801818444485976156610554942777734911481071352870634760328936296239850309581789475176281005743886313313407473718722301950801282301917793548291010050793820169172740699829889194801138345786511324719727330920056112654937727380625091776018434420064843479121832487243994913600073460445297724651308314376889514073654194171430131141892383575326662310095355519100732555231717593629403085355421938072178207982072747987011248555145797884987840059769850433548526672018915795076066355500209549419459978970936126880298223393360331828385008558373702047135701556221153220493912913382866603391962718676050023687973405611184977552279788637831106851937921166766824122869910335958486242458810983139326662665160899977075638136307028083117420951619860755439641141708451011210612730750296154482843033242111295845250191490032331320961258745280080470340056958378660100238956513655498508795649853382905716460683059756852660621085799667337271608162860075397849998826125838228133762191805572402168113198485719556698974306415116547347481738677809520931411205767925417397673240582093798802435029108974929767944371625486423913000163644777276474565340945728116758086464059562385256883610779418760371295964369816348728761794395294470197870285174110471924597785343126893022988600855973389513317899850417005059089463802614205675896541199823992195141779755440936178407581427399094713347224596996417595999915526688339526073022188910711309300535461480799936347209654068241604945649142974043973710138654188877196587784488855972211413970555364468911120201157863430177786678470862127355559858160120745723911529167977126729790087242774538633836323867482351309849551875569496094947946947638061188251669454966223953850641466201517737329310481796946895524350025295349356669318578255092531400948761263956968332790030543417249914712245497087770659302297447338001065178091286595766115635410932481988525631826303085685946482359475646645476726149828910814449203572098280420453657543362412099020519698077141622978871599438502910230585261140506738089901026458377394093076235516669269030599964757522782024348154939535712178500973484776994051805092573869411058912854740707855133010364739337681539850479527239811572627393773831141092407855654559323864467952819209504725517083235755353328225137273212882832691732238947091638486101785047339542264192694997364442204595266594396228159992546420523921904427578976521761955652811071030981815228215030856997248311836438666770178373096962146592333351785525272417467654799472029375900458467033974212760763695163731114959922902366869082559605212429410046520720892254329180766697580934863849693959865706673052117510883252411371223010497624113189254120671906929968562034331145930159204995469381337528737679593276278778929414133041963787532790375414492906423849148769231135132252709618753874123396409255989022653009947345877682453737009984424401322473592675241533713197688659657696811588504933085362562165501131269691352588707474966601843966609175280687013883758420755425971781144719746287626276754710281154517582663509082086628986511916269403882522223804665978628502357221211719154037760534405390701824110180711288159153412981612076151817905265221509774602982320385559689449244144134896256086255749190209694991182607431115415994946556895097088771237903051562008524436327480426791106535124579087952414178736513902201088882739239072935219101138212893074952097019080066001710583751346483716240555735329102336351402674196948119865439539904476499441354473524369809219224112574279095566141435328888212864077622944862445044079721542662050719678488169219320647816496244947054645156556808909245168894997856886176717249280035785243056760759167647715974651425397785502290021104972718668412830909072167730515300438240059172158398513668828711433268142151781800571291925928971219061156435172937535698644089873729517231982245638146430414890095432962878838860478108052361011114474282701203003407178889484247872822050818375124947370140162306719609426913836812915577995037280800464104089114231700195775279213910566484458755327758524712115042720019468501407078210225830592474757352810480414434229526609249214129182941385699456221730543815740998151591365391054912536292263967088056625247014500667668070651147862423204688835274129825412886342571621675893015589244079988496756713483107183761861855872809891077748281626357363709025857971764168090344191259418595756547703560240527380824222959899916872851402196005407832152336780785594100419570860642969362080786880207418932414950758536348373333261070598894039285885697655833361658348635341260618488686459521451666768129948049739804739330303595010130209472745999973684540938444499292531044049312992834833064664834051900255852820199704358779927806597917518964124431161359004586121340944973582682679666608468863975716062864740589594884596062720751964986727432058134907536609314651635014618690201402204504180406659571551398516152272286491865303574854155848265814633840059055917376773340902735276396410593433671943867144433342307118462006562435112253062877819292765259906171695798394034127323410238955422939140570981631312723770546631009082572651323412381695697690413415961457528467776308039868305686291894688430272377734821287410726202957885538919106153055166431563489797262890283710930338910054719701032280515896213565831379983075554493399897013345265206205670495190832823373395994355490426716097112787569412784873090006898360324901825934384153984649659174494657957292810465782229994444757074417669667502607769347421065600560001414401432935277329714438319619751873081924864397293336603594293480546199539406190272738166148667431919972906001507012571916134170389167646570571216368871688902496130523524732079600279507652136448294515707761763946008782409187108434208184180391318710478837144509390859383607078832454984964655062326553935264593128155918851211067961945241752418472979131147585621232465863660149298689914265572332198439645522839175359907521218868984128482106093337820141766451396418702470661658220605886990631654262311344273832291049332734441294796621046848117376854360537430426405740960140243660039027728667280138114324649952052132598524014199897537406815431686046026020226284316273502990870596574328037453320345572463509359406147554094637333439623752122856132199108534462013847912910313126209756017888937474461065655998306228632667823262268692892368290714536132874184765736827643762419810689090056888845420248613560162982622004835507560206572231092689961173626135078916989955005211949369919438955305168698457302595876342791974015797986812567377054755477320371064573679582403856142572430645974713211152664979462031441912703096385447991714887228457451364854811822350821729543957560750000445351633272077988811238319321866097810639063656499041373533756364432362859595779114695376614092223345498970546260333656585813600509688630896210310092826963563138574391510163975068453425067215815910386011482151315539276043753832275838648451325857473944881661294833453901861279128073197855211407647806085969951994047902323683851121825258100530454056115685707572963197064309876020985980327397142460111192502381513930204980006552115553648886306702018017459742253947923819528465010852564698454786716942031137616604891970082249222165715245141689426943802025463137198443899271983116202832122246127098532907353000407162364332412801436571685494245484069331338815369640123025921187659468649806893075032902529280692047637895073080492676638650579933498707155528677245570764801249502734375713864935440324324586917931425971766522986842381414910971607639443095304267705861967666962964276830291073584451146719195044269278454701297475488578815242224513394159635550090970307910821327361670647325504565825081089584053535959721203788632361030770594110690602248663023637911631145218283043607981879080534889149392285584367189602110450085951544192394479022268278126209510598867960904994787659496378792395723996670666387935339589120152489835142442164951803179868488018872198504698495135724480884460643101003721538344903325411668854400672402566340281944223053264021783506169846582156978256208596509799848690558992938318085245331623271521281201329972431516476834885727700188970830977416344213215688254098850755211580821133274947380201342292211460409068378263495091436426347635633972178117065022367818915085808434301815833033280050808799659642142719116514706511141476114915920240400353940262556007979300096864938364376029244774487589666110898512449778943385240140872182249808693714108517413429947139493348530907589986371053536802403835840889386317952523639737123435718666664964645296254393038517408657867422669067560778387429492723078588675923936010636043365547590147776188172111070088492781032395341455407747696394112111524807975731558511345389564625096746271574078639498540112380605408866778423999606830205586389308169969222682479145257205224902366722871361565880019883082316749951520615923357672776872889203400105166191252662360695273440476801952733622826726119010675957339975255516411225715150960336965887553487288154620805582951845707144280111247441345141542961194701704347780478562798982267431500213999750909773539069630866595682822809839498331021913559346889598062772976314785718258454705477008920111898338569270031223325089186728468916732877797810409867437896937204675409463316547442084027339091127882527370115154605053046809559305595474447906709165780741639718407842142396210102030441372241097304146491965916250240824228579094923799865681287168364293569121869343162603069880089233244838531657142674860175611752456970792656573861470489838174416299325001664455229144493295203620836255318938556745351191896999542530384051527185965720962111632049751256224776998365129693237557496220570487431262986685228954778908019341185580195642219656637705987100300617434631868212044838376840525090105545849983599466979328554480265048504087025704734179916176019612739425853986030858953073374650717815703749230790001549930914962223574539287686566639213514322146297571113719002839426186050246448571206115410017965079152026153957622602481120480291367308161120732152231835135856143486749213935138589045224097157355553634626716054703554634000582810618708675288958523167594107330837189503467217725398496393563949825931018507399232082820057316088305226600594300520113776618985888511948825202189413154704626092060359220293656180909660155712837469818573953032366857513962720013101369139526910689946217538847341246718112578216653419361768774996978468094532761415870787907458638094131705890452884250304987997922805257885924099252928931907466748728723109426427639787020635829599811723321734735784082580517211981399387685131059249867304576290246176779219965767263608164313806232733557495071870005302524850447411623856028842012832425495954816198330096577452901583657511789562992702436386129693060594306209960018599486815536762814784648834264031256998007146475992291658359497850888232631114247004682338463968388630982222923050060460447712266601564491892726023642078969595223473349751943368890926367796918396862311593251485733755939542107442409720654302712824533268242762592524237983820221671819227994549974143180514522506470291551660530700895379997804238813215917756529137724550036571245899216757222588064766940119895011251519384540900467599822950523586522808609100688026563693861711763479955575449161204221449886673783771714114451592463418834017356876426735082240884821824744827652470547827352681677765882340136974439682247545503933063942733200634754180483899390597789424585935807593048239943244812816416158554580438699480514780677483628742953347224315929139489506278525396197498285742845378902577327172618739901908612770828159439210913075625194754362724064566968579979146392996104096967098568005989882348033625145509115000336939440697463393712809186446558455565127335968264879954384522110464607791634379412187055886773125313443236433232382152563148372618133434317351469494490858121778219397705767170456805493759259012352215753211105947569334299936836280208708837367889780826110147379040438925452268071877003116513464723339114574378148057876806468210874545932207807650368130612909477984319074707049934334387036829320632117564047273553043244839571665188137221703312729034460653443538461077382893808714810138696411710299888483504638552888243480240796355304313306838214641049590631492901371667899382744135191101624703423166392383620974114503016654393548443167516817232166106299536279316897505935292936771154050481832892957519799305055605799004531291511535859398847175140865806757588756746165564584246043539843280230606572361348085703472790386485074811420653009937068346577469607223451419661105677171085728916984759011549183950904436248215872551950469662748618595039479065643536346484742354053410897231861892092156012458317035710754577279683441692587770732052247214623149526461616787851702258111618534492246321560927509201944309203839298606517479784945313410609101969758546977210547280596299466018210789865429994656485160963247466904088000942577898462021088717484933188262605120554213020056555211209106660783989531791771811780581571986652821325958276519416582578924108227969436640108791928514024855482470473494737559343347521940382125465428240341514580993060347659663734584128782406947313086047789453681140760997852228215051654566177075061680214981307396158281941383185072034551530671911173116249328026350358965626254760161239213715156075370946195054668450002828817957811696394874888861563236747209194734962117616688819054761368804369214859023153503422089028031321692491289933732661233655606613786144904245573856630095813260022191910742214489599317953148204557188937388618868646279323112673507341970580709414150457232705854101742763698311981375651423327373918016099746557009162094570012688372351185775142162998184196807203331145037396310150403609730999679654971670261499559014796701521275328990014167011134452591397982034659151370194170554260712798615321578064243435163248803068996851288319062253433508515310210629669025916534844123271973415879996609818227184679776385910529755188464205644569258308786770847922897412612889931917378556876366322600816419208347940923205865878929189617725961691832843156018594868845960311227156440591718645522144565243147368010698893888189711058408911930628221564332115995889837368022636402233377841048595347437723897723826292132701647621875334094068778459523898923977686960687659349889655950208904577651489888745939910845211066991646942744119553707195678787217038981441365372248260329586987346057850764608417329065083472574097670377860047410259582956845027302900868024983989722362906414515922462654893704195100204113183715642960619568208648497092610008519837299726436131441595780394940681362925994399971205102887012873012847835276873792804962681640301893692125446710810887385177140951381391002351791649113435534676155508336219120509511822312342467637114254449034222167384160505011364783048607200059783458838534802193254160430722796339964868576900033176537094104749293809347558802676633245864536453347231328430869299418570464854781228326920841454423961200613827991059789563283655455621557123498608773600726046630824096276597889241769913475352841092480369065821893854444541239182880616489586381694321494296911578534394271717368023080864615972061823158016534046044605530439572663310290500213768006362346064199929144498258708599351203070673635874414012383996475746617016261759515387544608005119598512551905520146613942360238132240830528026853865186362064658985333542039350674758500030590814018499804175989982120438397718743840899391406112656757870915169762083828535109064181340566584929427313640518336694946888932232202414384065975902598743727720453550959508948033501401283351592838733992647807558086528349218956378213200586281913104368860129358959598719288004694121917300598198886893992577668670803283079196552808893715299489242596087385150261087591398236168488268975467298491856017473523973975276295701993412933298404900122290628985288333049785188216256928582190298128279283645402571193531240345515397081574582216985632013849403715655107242312059524661755966593970473129715835344624090361220268602253820149334644965054476210544165291817931659542640335898292552338133190502839737821705126445014562945909933460518714042685361351014959395137856684142481208972978226852804482847334057139796195734738799792747373982829587684706923228513473661386759051068224231720865495832003167222405116901538254389083551889914020143749177326677330857557976526965539369933531924177096420691085423567061669297811116386301289142009658568994325583970055274405404506209939223269280665807278910263019336727891857282641548445816469579381774879158176071129146913978028950229147817462590102061509870224382702135865963400750016591912803496154658354358239877010907574420382843546414702153258222672994065199700021862585641225976152667794483730164896204196691392526678399313570711195717900013895778619204153505293035941062063902961711930476161515057253032022445820632270008111611523506327283966651238477353339650854661337883050384329881957470658011097815969633826000445976783755323758674784654803266423729226509137770395118572637361880586247819301284625638655928191973757963952680789109366309130418811263424903596296091975921319828420984411329507820908261180875636387714281193637187778476123706095615363900574106212912315359992888170693186929605611043541862886378682908956012216036432336402430141979920583776091135782990726026009976526120735848576679856134197721029743427344747764949474168396103256226088052157427914344756516111651500850671041881021764381600516569786608811604626947038312183492849281862877660197976483128527152135812373333391011311325923517165336851986782630409518981736663113728358624405406235803774803743865235753191165207877251733708038820014892457285028400040587104951517615781417163962081319591234210713588557693154050037330830685962957858792156344918220468770260942947263635951080503848327293697516949809250300901662700215564794409895134897318955541799601741972305791068291490157497645718307158568530321812023782858253999444133255966190906307784481698578789589359653820600944052399967721008506344703912679500350268220820108267867339600076714663367273814418529785449213929748009278817408938143735617253425988838986809801403369179892910305672270674614927593268031305716302432692043900891571458330201026903173767123804470348291923827897299389656906762431238220231854853848237770700661716834541643433097052716380103885603899877146682418067159360619818167574856170989218040649546655586178199898188271153472677221359561894986269647809939304917552286225275046185238661400033006021444520299115619538009106425818450098504185904573367924571125967472628363251446657662979063070662397464977075390952461839521778594111814853002260760047953349118821668028983346511714104482220875265368318006988580209009086180068166467753163988034417598088851988865277074979365175333132421650807003323573315306886469443472768454293818722766802302674018788711571766815978602677809219010189573879453825832718232213775584246087236375881082069734094066183469585922541974527005105402098051250221242960637455309932753078319200655131704804509204199393948861730152240865741882411273204566633742033954610988293984502918746347659308868235978464067149558070759648449681360676812243528752157082222944863952031004076146889843434448122163162527596795077442551651960801403375136768324055109408754514312002974627548724833402846174828279211859459679868501750691419058505121186575093191374836610561401022529244125709792061770849367528518033339531834255274512061243655093729145538841032404569862998892457341982972660796474064703593764153334919424290482430908926474493555870750454165938758483260537615024684976739278529617477903024261225773137166785502851643956399321829456276839744902879635473906342214441046871506018851670705664064924112294123645163565204087385726361886313691791502354670145391285988691748138276308159524631440839003477611977995607818764878887278960023616836398478941774648265886063743744213572127432664033085538458227396931412490807853224449622881877489840623784042608001107131147102663222418239791607676056574233548844389621931990027879043210671256968609212079021515500214844798508605918105217831411786891642133713095884598624408701231756993127690517279567963520792029038016015427567189261903057981218753413397799979055795205259986971199553995103106413897398859532462989287540466333262040349823981817607495409461240243610588230302291400867335016145903199697960498780413239323859587246275351602574923176594018530816972441194843682260763806813888489559314321892528651277024492468931403495995469673869116564323202339492618772914081753667314259901729081849476409490504938937661156574441828964898206232604942868402002602168930504688073664753968713372861054816121696261548805408812969802529057235353212491822158431805734314813630195375350253392499294003980633210097875463404551714763600778368334320711100363146555090830933067047146072347739382171490356076320318905999869178842302650078244672051765876869667044923770882206745355269164191722262685351346856070787730956236976415180138129690451442019449268918822412878963789148074303830079056450182882373333704356409738666885817860093493249689246909870040004162380729360744787481572801758451586854596238689360064218428673323991819045743075501942668477250453962039232618742448901076038777801409763750864831050975257041793313945878500096091170608218758437329914474775593225954422100305377765737836329212147578417590195360654949985236598743928256866058498909977246111806386277228195073367001731070769945439414309838541276255569734537437751059366370420042882864611761981883537955858205255509310892991330828420499028904860682548392632656660439589218222531468627482467866967433102695794341795960718213133678485084252909395957701384630464917947759437006503033351066758204142701934856048098793030883361513065018764002309473345810784083766346502463622650617425280062730809480332766919303809205345284209577355055037284528605402217437562493318998837576338386897836427158218610388337314225221157217795560891074909225383385485534735363260800428169659936574685609486071547320355650871992826878488478950255754031112559988951602072932500383301980944582891667567391367187625624312322225007479929194364914596388472096759050122830720699966606756408174224390178669886392990902096172026822863130314693611011870156084695809370177899397153559435071763835768955533220140151653122742334585457303286935913878805476500471027589684216070510189568937650823851403665464154706672603398632053545914713294246141157583927330802676735565135712245083495196388269357563132734204920065111814004876515396286292476816222834893270812099950285584886770993022583537133937206713851240418688252129396871840967818198279239370894173799610545295103780201009305555109194873724374289255515351878589893319377584964730999743970841625172252497716564724486990860542666920635214393604479100398886339150496985557792607691444521447964966393701283097293483732930574956333989880519410809168399619219345714564246293069545698189054571281357981716731151399002149148744645552130318596639441632011666782234825665284930435405490625693532239599868875995666126203724574225569015615109723318094663422302760165314623442946333919369492154477393691365768351203010380686514271409177042360703127623864546006245668750310327485883417160738987541866715033847886572953518868173998464225701286187884269892722796103920198960465956615089727993142076803989173648527432564882145067868147972733473006954138960153111417937965217551556654098052193346866733471719130971359268603729607841173207175707280361920110987774278606894743071252812922966821666393835698820947677098434986313701409125190116008120375286828421680892845769259752654259849591348089220702391186852313111223629618207128804881695749884892235257436433875671236650733540813232386642659412700195499354278615425684513468650252811947187070334595797042629197713877488552981888481681549439449285301750851005629146846249200989873867723173154950027592035912711067582166274991133552948483706946675582048436626297287324838345797514207918976292653251012876777034756604967048074077858161726321481107293961303407721991946449658990943358314996066329459274793619815919033251469677424219251588060468595513172809831487612775320462057700882876546291624274476593810693405170328732232491638595540074372191124372903454425909709772513888517255055438731886084597870375452974815405335800861170097663516137202231701463776022633925053738343553748268347360779289096955372515118049917486689448045857959429328696480243113884474901284241619125584157031593310967900814335612604164600174002406409530609785607421278271623871501123490216778275631719716349843224158995946532292073862155015519609667622616137024800080975787043691349652334536192219657531647406230873152282807243866634604302650781508748645699662587317776995374740454423810637997997151877382374498555288653929337542116113566360541477942427570948487529472016333590582966069445112024513932771468601436980153141213266834025432245895005674780835075878491308626678614731514282928807834189689352548901933204874180422828406040449435800567352193611127962303513721973099841773053567081712512351826183425064369989626782658092852819183955760299988894976592466159370363808231744583273391142289620460267436613928914838548816793412952970166622458059975371988018308182808150183244300723101305718022087560889825856846484240063489536473831258668124978009200294152236290682370137834765226705148082008307662807888440411872198330449985419361294330012360820010337349752947726209333549374653578111026685506119853193027693210846202191003928370273549706540402993506162043114648922536256310840351340371674435146946642224118901913609724259707074751505308031205924285284472233386045105191206564969337736459097691333692166724523073882480105784312967133261272139388631813177892192515053375108599954352132229916127484018271367186893224922915969144365213798329683112217388331504902692132952847073232774807212516193897425185465213475258466978047581101290961055139280954067725694769390372360376921634073431989225967138043960117137028299768605224361586229102152470604701377185776879682767825342742370866327791891589996324203423258402150420887186973253789587833051152255139460042165135687229135457324240699242541909059161736664261737313485637587962378312432703360747526199771466058759710140290087536120883093984652532810309841359979621814502479871292707944653102369433836127960863671517087481915796660304972680273381186082297412992878018499212688581284512924030128603421466488389632192021213106515797593448620816615796044072595500009599870180100490035386601599028622037726682449949602340095552116322243831436044388504150272866757280528673601440181956107455093089506282680954613644961630779284482813539493148155446579618296859347904575344476608390111820685086309288594679869895312048843295907988196426080901459088982285221959447563043676418503801997072608336839297333284383728327279872407656451882945006270707846022557004930065912243403279482161963609009425858378414294199167768656509212695251145711064511526293403742937808662540323480675984938610494160142757359590027884521312455677523104643207410646116150653156389060154285463052644807485918235101544143523615692754864641274307100898999272933232871520109821052899713878875352459341826104828198565778722072032254141395845939061373403951494146851288793056304558889656856283781778915506626412283692006094804589652666738426374153198934872272945678559305720882604713572606296919457018737690672529287603265024581137680304734750889727440417498589503472386255629581643570403638355967066310459360950218999139081192541008195260257486354295009878420259470656208706233266815541728322915541700763802584067046764205776044204931027758495565698996515332168443702010432876526477805576965827243589138262548416723935164955023516142664834169121742793320094584548694467847908239628005111849248733139724522549017648976555342291712186503237129922367325304686813661186655858743212809911957465542390148934888984455611546466247298414148115110003530521445132412406704938714921268403146458061102795391987541104422123003714745614354262795278619888426390748923786839524323346197059493959377680482922594657911194639963564327325930431379077618525046570347694026417508550978752550851184188398916609189169007888272218768289737762235372135470449574511631128018014247729904548496011181359085815886229526297058817084734653697119452805184137239123530318909193941454387865657650173074014687675269035076470946529334198196014181244185010534452493962428411895628935891697521512316247056141768940589547230976556074213217326644242473920938342416127993581790378161604790030307876364366906641680910925682169978011651037202664610731620376028088498711772156652996139643163389299751860188022925962762494461054193683477776618251231903354737318456689041039514176117674589026349682486546330066359021390372306044364916764631544920520082213733014470933913953498206509023329170431625517903272490838615776805689267182477660766976910538058579695755692403498365357971160761603432577811092635122431329586685152220897088272427137720685153285256408526232365740650424639132176923479270665390551463385019564297841362909978175061710043068822988738098436113412305782894500810757828958232944291731111113074118326219911294688525194862565038476551194053247530838814462311416678358893676020955479392837257172997109785647251853057806387448563303702781409809024356055467648651581471528647349714546134258693540798444328875624422871447835203771598292776535319128966217128214914088406781678209511820414831291761800941858448135774935761542691125979981017426231763202668969800213980222124014880882427914653990108211610476932618746026615233035705721551081954462791213384628436730823120077972078284453558878662608438285457700894382163377937359591259139476488521596713347962227312997611977162432088541504805657414850857594294084853715008002539973129608699437256906303956511398004050516801742057920037048763670951774054806164701668251221941105662866156348022400017811070843434733856517277136482933739663817727139639794490040149523864537617261880705634321865285704287836957120141560567461322282614173236694579001705639819784423668314436832260947608271234574658928131429338971687198263347036360446728356853466999136297195879527448537243080528158911470025980245375747750999111658800239940867997484362573777095306302824842824357337056435016633531104830377262770602591178472621622706249304223897706808974190235666916461717678634172603686150205192409083729662006767434001573663547032932322060209221021503962186062305087713863390518972524286056616753470043425852116552221333777080651948533008495167431846756124105771928063124265677833636799187480687647399462377201286656389045396063225687179754065112645851840473805984096655930828723586029848648807830448882178892190842869486895567168426358028199122352812027297738356451596083451719141789285493463589753108846435200126072960249405041971808570252961925039497216371968149024505040006288151981545200352144433093125639212787914886452867569339374034771471568929469885865739542230251059298821638684163899599528470644682170256337140753996681626163773610538763208088047410494247349660255291117031945876562995204349270819434822542051767010956354154218410125885415802941894133770604726807044167850322424747835204765706245798700280829567684835936249426693958111905428894674840745526702623081013659609190901125752096594790618523359453312762876638736612414387470284107681392661923272027648056724090729865363566251629607902755128530666199016924964623708226982706204668821944789026508404035486712851560866736582756375333816664372799943308101719973122026309740764116930648477466184902668211381640729780339696149647700552980155377020999267040114269620683986382453496307781421975052273566055352068794907288021850747331189037758021244880335322062888896007936114291292507398060352005926339745469202019315541594955933271137716055298391298048274941929681647714209330049848375586955734444196699366835217246906929310543662794203010467129785729133944040930275851373538482174016326381301848578919192582623224131834311091768604015596192181759327842621781626128071744604317718530652783162901485063737534956286815031590765656992845890128521481210561735203693985223701092020075959994834858501551976366561552110499884876394699763388644341499964596354284140144148391116424478170203352497454338595702041215902697353075546076329730910807950663412088376291524701882123955370775316464543103269711653987888878733103950309146524431409579922693341267295325093195069461632789414676970051782069420415528056636766706801159410496300316361368414261486065579553838067971855232346468808213862332308196441987554069814174811395907350122556566528531067646892404050234413367864414067979052927498217392389020736515338108858754812669638837938921528923357904296060648515869200600704117213311221060261826007474236141390506628195657615769995496380089705066271961695103441386590272702723657991960430928430813903269701528234761608593300871610360494747693176881485985531515006345180607591632091856163976560931337858245923628302029610249386732316055856724757864295986827618430416710615976127055632102152592510131675228992386688156119225894931073601319247148323969735969388447208061360166262303201593726640189487709840103269119187604415726478066930047824196273617082143467664173159003482595018158432427653370031337240123734031887634117123379925298572220426985917348265977219359777814829444565738896503436262128842839754344927780295596861805435920655996130276678544138281642785546301365581039899874511553181055578757820252492111376475302112680666706436157743568107679007237704518173057630764727674738461260046559511685014875762641967915813230879296052701799586009332481733670496442058563020568303860955716610841198250173650318262689760990165665436168344426084480052254874439409525584613695845033386651493864949395537137253756434738880308635651197851838686598471772391982007122411888755369913275883336638060333762701818371003315999208041717129541476398611875780797445572601757601863432389227779369628107974008381699510298584757435545617098804530613292574316294155394665260711799811777160206747534828288274920390137609873381259249264484085048365106991348703107128005336390786563499761126472502462646849217462833718180410567125440302154771864131449793648548554228038183901549430907964302223592375902620281977255873771200005684348181646967392962094030077708652100699532785588925682558406497812313050413266901216438841642456895424864733233782842277538771262338294427705594729054043014355538692863857812528960394430788061450938305606960466629398707848468551487121352152701796592116706750844300930601724461923885843529963919490951968159233620321828634513272091641352056986491033898904020920776906393070507179029349359085660382358757958868143627423934554960013930012613929813966522381371647483946086025585756079046534814688465061962859233775545564537114188760355332503376477228718315969200359609114035069660852395770460009236535653305414826890319828433001436357654380329236188180333917070580523128900305793412496055559535594747884324121999506462878817208610234334231244896364018071671589456991689324077923061674372464764971766598994027014493599410580116088873760668336967286058824951838408861189121106761425518576051793708670129479590454208567526390095719745249669855920488229035404939172162871463022876479727562419303926957987991093406497842958947222703422740257730469197548081605430944147374772002218639191643468681286090017244506436232041648453283905867558252318402538010173311632861260306544370572481998539686769232360781343414494753523100063234795042885209840860025971140100577454332281043895468972702063814028587891953803128167006379852780976136020492773412442635627240444773837867952853764824417833399673021462049690605434754279111685380069615151484788254173864471140319028725982578694716180495755877053561173825654656215739731385114380886532975494142592649760269195458636630155171196705316625948645839979036478059929158173192948381229799541038166728249314893705423053607911842583512439612466962490020133252222125256675395729103981220846305416360933147396209224784320439147643287218052911179169847318958290296338363434173847652731075161213972997653066177891161461361015044003646259161939201757735255793968168734264490223021425374845280407558356253618632124828574512031677094665865648278751358714239785219323547310388732195812612082776642398089379912161913965774996248250746123767999126245128935858260963491909971628002752197893738623321447634552090995521269390766523091827405728920235248885397233543090221285205920090931603396547540538879488292041739403667537786054453057418662309607486641759141226341605772550943788828259158119597784738052153563804587960503931010992833623737082913218217984907557070501611823320285602775595420432914519086180675348946501333459938451384810060743833293978932146869196948763715566903307309459627572165505812340209601182321012407143581059807001649876723095025343233585777643243376529025788879575496901103767221743812007685374619188066231976612728466972467345685693339493179796527308016234294848295162245274284399911386414042548627406727821032727778922576484728690702610301142711316288552863981039541646268050253289232197956911493180855632855030193366292882656492195194293868305642951259043785266786750276617703793489002901093368863425786248844813443267434260839388232711716198363523798638778949633600441920979287702271713819643140833071811859518999408642383864108874934587215748237194207755816032842737996019138779247022552416042619020464910097276047876159748671805071993212513420222142680334436734294876899918997044576740812352353652854404163298467484974570762340443871166228176750390679054725649216741266716169360482156644108781912922031054633389154273221946208916286716256374621326757376069807788953887452957686289203950439978534773338430716292862215873637638718159885448857939038747260654242817435063281850253578007010192731491488794281121314336606304541946373794503837902591629765635656207179999030246952108569576614601699702533220387429304044884899503900501105304797949675113723916651350415311086612012235344344039464198712964329804682477045142267112986804474085741539417792066849762460081123786801809728175252583482794279869115377453413815491347606090126914667613505204857981643738439817845752432851491158360057802408662713675221305890664435371197862327663273142844382399363949463243579865282422271275078675577920703836229946078707197830189153658063159785424502907332589828229736062142810525154154774894563695542748520205051051789734298480257997264445397343349842829140065577666603462603193133530904111981109618769404735730635356991101574223575930222321991033722285395977362894684969167862296863912477093318191311642463445943658699735205336046948597676362978077256992274352864710918955853311477769445668355256825858211360874613590365176896934293294927684913680588656756110316671952782898038792600440711665585447743198216018412798967678684310717309589936927323528909720191108344636739550759413116177082655622704926915219000251428759530606931391189206345986481703200842167178231088080359821083995537766145184820597661714887856098731000641480828246357490816321325166672321857354844588080956673981840114573432599159640149960085034762491039909252540070223015812308585790552836293914025467751085673876776521608835470423937719761234752744542468101412445193606450749493060410855434770285333124846900478044608148751392476765434117576770742331946801329039874926885111954683844033043172080200763521335920851175285321381318154710254458824879466769551594375269215588422318980807731382896811014141689040699670493680894598784715859181919252467691353793545933233348760675445552391197535165935190471192220325717067829270418871201635673922068962290736711094736501072728434545865710106415757906250477279144784685788306433655804869322022571895699566854293376501619191020680586173690740450032520006488421612586055615407813668010571451435444476258019149557689333925555295979425667682579193611914617678505093760087174488495108789850366065124926042402310213482160157449743343895642183132674866040281435505464986494266083069769227279168370535607730318807739176503108893567672992936566965513235919479336994009914653910105897736554338138874013159492884138643098736105531013728592948489625448004924249375846911055956834114563064004001932659453692411990032197492263054735030812236300712604863168824734387005764405567831842194535300134639233785885528509992008429545139258765895514706470520021234189055303096591269717899882212402782912351293752953642592488332789726816114908846856381357389762732328079016480988354376374333929086108630358495664161802763105027378328407304041795397496463446355565217242403332659547071998198067007813971391011414466575807734682822229142984582242815509099958641261311309571004699493936402887613986159905364269180330596813347890256376684511856921372687225418634026608129544331894551634611604995208866408525344876544199842130938187686921075628622373967278495857437290768562323895178395955536794120319464287916282523671500942829396265699192440376742541512513106802818721720795394256819785908673734121877534321802860964141139764880300891648321044389612682542802761900453191163769917271706624632524614757010241689985138794187820887925797912528924330372753000120740937680260811116923239558834206645414308183519419645486051605853367268669861538276304767490022868942027444547463279985541018268091683563300938586609177323919449481714595197737140829433418607808535851159136886161899134645216858657666915361154227984140550930078605535161737671869584600942155055847190150608286782137352878127699028459834167935112497964048243155440265972353621832502264624093227059388534894612987029721720719909653642056714142547368899729203498767773296851085904902538829217260598637905474687785017113377157822566933368391760361968143353838268988443944988631029448935021761679294663761398315927670839012432153465040996807921631865078353972709583022885141804287424315130071149997225774875887225784362499820342300187994490195038964058758684134512346548039413511579332932167533568836996956737142872312816211249314252293735527322048576870274023761396808365556290509356610741005165239345901682859069926186544552384710416893445488171628204805088810222502171790167823955874705470497439073235184634204205784661946088029506005228759464901039083276078146586928906364391869893656284179312106056974116791683384870222484601265533588836224046985244030296998806064721616608487296807360408920374407099365227832479521376938170254514751577105395107130939352423783513873551233962423824874232939866052407251097161256568162024601747354658901461254367589313356200971212050281304763358987020035891444562247075531188955852924661582141571793413498044083848157870735731440517947016254518005737555677264620728226729422622833620568633671713743072318407314288823654061394166415477385610519654207085445176146417069691442484741278469452479901216776299294959779144885443091338716548167767736255365582400537153133959528070696144864940648548569715862220360848738111780012614352741175610669323108153826915487718272393089310223482123598407127022644458207551596539152736512616596240780024092965327542718685393438178395355318302895430984121171176094225052575686512598763715759391125311420677968111435833723088540465197269727868715328314738608967990253194516187233306443871074883942356736515188725638841639593833098919698956033342424687867135447532974520471188140495141310774425116374138619539405796340224630933073417496417665924012556472124235984289617753430263178447523055510850601784840464027150545013036240113648051605821757456884075463089947831509131183986078924080590300513103962912390373036801793702646024837457711677751603424624195421038449652152480704716503022524108512948799366210960110980196213061467924707927018509336073282345653516415038180783690748793223900659048897981955344040414091444376231764521539163885476033255480835220707526631040449808675261530105363616105207320370730446125541670496853849051736941266530658956785049329756234168287108821316258888792344599996346436578355638851311395249841406882338047746818887358808734864461663663711160415076839045255425815915225405007293880491799405036278151684296311701785327951667617702641880699801476597184317688128845694914790314591548282345649603679382999566383434286592861130724339010700879952595137974463307184608272046731460076626501969057619851959460293783022523144065175918800556709373798010155307389074267904004782765567462401521106428868552093218602808417413532048823553672745595417906746256853115452415529697782061860823889841478272061743871980663262868727130246304826212740438409169786710874784496254894314499447698583998984092884882356634221541533713667874195176442617261792575304563683266858279449085411493048438088794956839875491808614859269751060677368113939422208113573828327184601438317921846903137591433569524171746529282960874569188990770176106548361526278046787405783501494910105361519689940978357892440763376979279097355102017351010433755283880000018078138949236166209731588444276319610390526471874930908296489283629554983118891682971456611540557442229858908576696238552102238646697767268464032514715351318142750656199866822409936793626533779446741577054135611895924090099869097705207282304647359986055933108807064320559103845815652123264134533760017320762424719375033218447818188410549144422784481408865546863440691227771587572429981355431986549081601933798317406958674244893608049206271418024930598980989047067403343446046752224850409169656813005670129170405253952087967894849223586909631446903607875904361653251957021749996872079621926818153661598684124987957713239940355223795922383439494436140906058989616054836870026608819835497371993450827395869130532160027535228210824582576731163426140775593765985734068637222257512967873217615446513608055932805179886772397810411886287417897531856870906080779783706450284153281667309188581188794468078882638856145694261649618496941236524219954185896948186387670767219942352980501935830966026571036780840052003457861231328709699262765481425218474452238748890231068394969111148838369881659718167355004159503943964045879924988219125995898522532582695304042864149969200386738205687296961382497639567993218120426931141754446031185442275318208520856579385008886243259442445323153171591537766181464471533528408873592524885401626601516474444617458772608378551571007002042751072368987217275204798900687430287385025383747195842402573606854109224361230663919810830070311836686738291577885787591771307189665751161137611708415717846468910226480394094684524397307422960661021008690675297097587161233778927035465808381107435904642765425365445209010212685045024645331489179749523280935807078653934754573300661289716667326535176848979710970750419588626285510419290391906849705925459928231447861142178916102585746670627996454928848563475878469312774283195366074779902827931794214528473131729020177505664423047378344014339083976479016075768915818341149935662597703645352367581654864408116497367100255401955056683712341766531113238527761349565623779447462059284750412326181105102878749289775742410576880948030032591120150202696783825424922296990764476895159123023550341335784097399976650586215708653733313783577389188018577392063585529436373096549406059705248178100615713189976453443954972058213773282003870683648841613411384032229772299230788797577615322997920023696168878663611016697389653643910223161285850898631946556702617102594971602021149869854151849414752717517212846220917402275375599586495104860211666832125062914193396015229062704033252473869476972698596963810024035932804939719204090681005650662833157071897295946131329150111022577786641655168834346675897361581970587123547846753161884049546873701955730118759704317856918094975588187504918761794944242238951768714801796627530017691785587281499758572835296681835432246190277083427196845498330567580288958138686946631838830146953488065685183181069219040849958661238616996673396348239503676387096252942951459953351640421737778069543964713372379875777158348165024097081478803834066448234804305174900156065732429540637423998598209213192501038542311754301191910629629601460457944594001752597498742415654983044521319301127211705952166441993412486875716461874955058346206669443249398580297066318786988966721016230968418135019717725192405966595183319926907587725454696435144193271513912778241089860377578387954063248285938945272980923536760039617314655852692171857271651307865744765262974713374544928887466840655987724243745340356061143548752178192023061851578875694452849838377187086660103361936345284925533952507840958036225986301465727276244572006497983212263039012714490437355329239838782213864292269785156205983860914721175800786544321434455558354476222076083796442604707915882335693031820265924826379780665706084711323320534506756372690377025209699720249176657131526445743250860271883882256585166940897721997806112559432380126585425349517348515416241561014304700934620358354109302538844334916240643750807335274168149519200952087389986592237414483033883674845012044835829905036426971487761714630828876773270572371144124308072039399943801860393015044270373904207205848271633308943147398233484309272819061893597036222161875801233947010866761024775333469485308320130447869519889228402183237450413366086956639903106198774476860906499080174405878975239639581336637177410496540734158521437896995611072012068148890210904775038467817835838518868495584192087434754031475220376423419815797930073595888718220304120897614810472909381245994348140722722969077497533134246158338342975947232689540113060248889530843218889282463837364015252538834887978420039475793078555204878129920135081983473823484852104468418202503374852358888159620814183667736921554742961062952286313168786684419538675783875564967049088502042711224358758301366147506512039807404206203117110949364386811259760407642958154657120195009569871843858440960561826999709561325662323031915656354470732738374062428575310173218074461451136343907097622108184177426314617602224942469470926238740348950627376822013539464610558570455317773803459902072180751550292595578843693175274402058032935632217191968369047254848921077601724085962529675695077489789828834244515002532238112771748234251359190399379595811732545164956928840434842496741254596855379923185454505649269224149377320158578191709942071453967578331199800263904745465332612993498865696142798789394484844388511305531338378692501469792768960984365117863798832667821503668017425078631606233116822899488322074704555671348184473603091564016711064164028062465258258012569931766065476231773077970512739519235393903263918099085529888722448669695099045768523470713239530588798269669073875415602587390072591241385892428677436784770426719787052054854447646124628460963899337803850532188529257036423771210206660575054130866459103866123410982200107102666852206697473777192157753994851675333077143381009593870478993322508499571958438766787644631550451869326660231481543421961870239576371513466954709996840800990247715839031355151200448739350486915570041287289437604586145432175689369761720170906136023371385370491579461764748722302331201388358605843257868588419858024456577055551188929228141363115843018599887282392793526150655195273037074125717188584891141933932693197250509836865118332773019394057630733167744204305391771893214676265089580178506920464914174879630602053244295764484692820785977744193895161665178791231417263450508820071505181426210620070042021239511324454288497262307131550428034339978604923326309580131273810246800666426299054786607301325690813075037906911242733092547517779640688299002140893109857165900169297023680045367003362133722383433331417795251601543276791014142279139560266582720817442709944981307099765207637389328685963816647754012454498858878452419333434470552933091161755363740300593719248396735179589091280220403372209820925704656312728295572281755413136241394551721754366802330169253798858414132686208311306935521277733449394498799203003147519875574583449366113396089154506553778878849960258180054179882618018737769097423729689184502356173212346311334152611809441800547175665010876351767700433113751718657914417689655481582483512456870157640263421065260504571989760720463470096118187002613549567350815102151761292518852986791499955374684992871521330094218150146227258266734527125667860008403874041841586087672633492746921843305332918466914617486075063496696208991186579809662167082881691800099809410764624987016996909008685946538672363490000068716645479606514511699300777536828946339802760038969735524116959757000678135672994127339675374046094577588745324206969421730116287722191253650132902271946071380898997845776912705210169639002266769643662227035881222321397827594141290042415075961735438760315438606624773384000463755439227968801422119009836544454059033417389823760662140703260830359916383061752507481009857055200173524937328361485275896884440439255824235801267126787280805132114251376615514906861975409966880082439953981578724113895738398296559880094277563022721804371396360028884835950515719441091015512179068970197100776099033465750253314323971582655874477073177558502997242066306136617330528811227888120025678800756308984142124847528020438610237983342677823691539559580152467934698515700923158647488412018232811654975933917539127457712987626686061210909712368982957402349980759510004593700075814422898994807414662021869683280061592474328633330079543793722970574149243288422126095122936436610446184635755071779490400146196359556532761956736961131581548872261072485339664857414921392120211514866174061140266066658202272587469595785675766228652447013697361620505415529168688088605811018462308312855474842896654636079466405417568992867059169988992862050624567743496687920009691471242303818653361842099533804515853940751212873152557494639451887378766615202595328959859009651799414728073145443725582111526288479059795746347905875662554443853108453049940389686032042786075673670297807346865873964992355357200976576223870296908781769440329988030335038165244249163976668218173674289945336986378505830965727118122563339840906530043036493418384552500243396445362777471112022998429627709641146939717798463379068078348347996717033621874857900514012364207594636166562567601231447413077053198579898783813708193668527018521524004598823066926573879891299519728137835817808737449107918372068364875838500653544958152372017366850721577912336801339848060333682063769567247847573879363540876347654974988617339038841890987221024582131706184379723002495547956040732161493066290208742059727583627460737863786272264605338146250584259442087117513389864493726453115348825366166568638058824418000992259034970784212064686207713154709055403037268420306416377637076448052001689767434087408535174807528189533315612754326010568501632102381445850042421740457666033315767606572943139178275496552171634114600165175808153462912898451462210786553924320064120925764230010672009903016679345665742909334815103698831032594496273840009362305325022447098700230107726631917862586549604165627866181937134148658918742812868422489017805363217513955872348360106083241737724952356598582699637839648227805351007657094764287614913978859546319700320229336845305097278986919808893890994347330428562626805980843581549448942831415831483902134037038993416437775373107167139034408778497982913532471526963980635854496814251126386754725557106138466503851754628308850772956441296213824638288284970103880159944375906707219363682409640215489296320250968895550043181205120249927025935995457515870737700908432594201956591087096855874084889151346751120950672314148551190911678500162452676615512393561458118416023920632258603991731936092403463172084166541000672194458787914149545371212584229747720363198851392443935805542888112577988762696744038518623001564047693232462573761900602779419515635438004451255465655014996332635456856089449147488756470321228316689932825255460841390968721345825401320958697242391522151160583226979464063684258950537442046464639988815680286179713497794228986737653389577053162398558265668450086096384535198306506204343834042064850453139086122774477344186463908104042398769811781943096241335498055149907589231211730793709064915514834080079039035932891716284528366564633785901675450320757518218986629505242442252383677592940882584281597569443195179230423017384467990701372116758315568384181493196939157940551376259007275504746610611389612532037316808401082227840865851412876826786892343779156655661528789513112288765180629169586171054261597945596921685401786525059061749149995670433845777212472209130281065221472686268592406065850663274723273721360202527514903626276042748813472843784206878023168847615467815459225497656691343312325835902602973075606021049938860498921327502633513214906069629966398706069330217057970964434136232458334756483318465670448282675048104368508032096125954611146480370380999119644360410465586023392186020386528419510527679712513112020639351182331723392164643955510982020699087559336588442422118546601180646633040994802251803469963820668932806920177675647181141758726837008270099963768820086452549134857438449391260948672294137312539342071026465876565331261572011739866598297303954518113607219504745375577634249308149701228167466726535609277593290516620351202245591250439209971995651925501759038272335891872223477830749200816109527480520390869011406347449833392262786533786015412100886888024826144739288698690151784961287067404475744169737956135188476816082261282345152461719679249149301587680117028025569457374715161246745691125176649721185246970696980038588753401396189012230595348335903433620810252877077662655684682869484609704572913786068593775262091677727832359138958070495108126847392617503737256036630061739269839595545238261868263674723481751337674642977171074279661517337796699390924500090907040102682820480135756375163881878833285784429576499187534190417427628353859853681865279653367199051130633685892880287039102206250747952526483418549681904043905872801363165260533468777827989172773973499498257940519883545275783685432845447777844289735726546729937363634199095619523343647583764398795267945363807304796336120648014189573717335566316812640451352282066200473135850679959178047276382209018987849709540748167653375408730775501170752686050729253511158954891402333308976259599133342812214884653345814568177865867586652508538237674208297850776692179621306574126694820259268811032415761106894606712577594866178576210753830017969035586111186429204515094508739587633220633249021477689784478646286317287779634689691460818953425543367640292695771812064730186080065099051225284881602008808963746529389450176140628110142347127597760900827407560826947787590058432728086420407501377349398912396994990497284340131151282987466861645666453254000188349606961060624892837058559198556291669376196288752091672801200259369877985698864994154188201672242841632552108573900890417866889768762826194431503360170068158340373340958730681724939757886367349347806337532236574992639375353392588811400748487421589636783270679324822004587035788325451631136967542338212394975483885029109424441346752913604533839998874346269051879713733283513088616034125875558686121638820087917319940095500357826213327561621345730248702793569698856208481625153378357182758587928861956896811773635990381194202042042510779817567792406442675683436125854374982547196895856743534018384568457465872605200250082805658821934633858368487034346183888066883061546742645704903905155474709891529973850932617874882471629345200547263775095683469424967268251510584179839183689388890680435823111603651857562945135154457376848731971164323265953544726704958498702804282931402628718225868935215938993358136440328386462141260813984822621240876050227234845069373728772916456364119017895914298409027415688087899418567139526776400149401311915948154001743562465685894318916581224681494124536213524225843466806853856422817311968579376644231199993360202839447870108910831078019566690089793648706044589211803385749926993155275216253195017817599996942372996165923289645808442366925754383231176708150164038754168631134006806115700450495098394333881616293316985408177615488782213555722707461511931267985429980825478519377384492943657303927417709159998923632466658379337284858375627444816798074182901769978012230714450612899909091025018372854268027818712742200328806038560440529553963571996041867731487981813840569203036023740274076837603767377401849829633504298707791754030579240099127935694597624902100934068141728030823978307588263291892656267832268593849426099226293737426156455199312012511946390753287874744513674639534243175414328544067565468837270056342901001564165997257035672592558758084103060495099520206804492390670648276330642815059247838939409142402459450658149464910063405555949294765037212242286881624186573464426907350185860608721390063476473829022692269813055539032010310910085023272649197522581599929514581017681604689218170950487557514591794378878740925405190352692858370988767836184010376650680988239960190369261586252578951051507892067028119061417042614497141731189678033739403102789179860401288035373741208871695494277343104182274899050942980449903078079820545346066104313477333061986951713375895174355209714963869434836671923081881454973111733230669109025569127308699280365058856170211477343178094468686007412908758524097451384022678749106919811113543643973657851581231482476517033083027025346666344531339681294660601192590646842882651054912514575359960390187622935599737310151700454767326006597891410085953074043869866239601778652723469229536577962487483754854882207946379269116327264005541903599290097524419868751998086413083706801416715458753929681464955753661593222077668046169292053654384183899202393793006909166948798336761011299448293549183108300427924405086481031710305941792374526601321102479880866788697018059909419914057330425659272599996531547573765538545879152341033577316679778423808389188270558195822457600116552310775948416722335971736238821211611942427344402728398127039334017191642493538325857766657668364440392163844892266572456375454685764675675824909709162260890984460313942713361312795823225660636789327582711360074855435321202892873738755635741301273558667731426661388761322926960159079231624153620611361021544176535632376122059390486527996794106275165415574854107801452322369686826287476379932145167126077948937518797910013635799947378455392130566072714674562156904687738962819573201508439555086622627324084889054308566295429807039615358420560056329098791243918315206359356188813495128473046092400806356877648461565810710591986020217482440089252525910792958334531384074523309742220079417394716590601350494757118497434787031328235067267109763800407847637920140096806661137923591817476295492727311153707998092702841717169812567590602307568287931053663638055480986937006865476978290645391160506365722332195490171006803754447603631065105860822889858341924065722377290227801806029361646279460855822400723352790156780300974082977213831410439711732780461740037952822170058893570040783861945242710333213102396058144481794042453521502792285972873518133867062575149144527314650316030759105892557885143292797685482659156621504608080504142063005381934512106651345990413379237003372215641208657319783387595737301952081458763600946443936337797839496506725728239250474082214670457282325742338495620203209523626250783772850461313648244599628191977486456563517871388792446971308664997088070308983840191221920973250495326703954050778949309509905913338137979010525481505406075825431935533652957031855996240384562963139096269048202111332419403796744232098370553128170872172818704563422605305735962482375924230195788637274097315451419292912492932067606327562171314087228220932702930905798749534147329153565451595679886152469069112243255675094698290990957936972561342466990677366426723221090434060719084818895792386717332594001275372695878906564391421085938564570102919215229818986892191540620496437817570827287006614994286572992097441181025325241849950142766505530068052392889324006181812313370227610228917126969118389201233512006127552297660411225369393542660746479102534776692741134328799741349767699046607531395821288415276779296421152285680479763792756361832397869954941777015742101588855743939906943640011670402996284373313032188270175537238469038202723551521695413167605144116984697068499773056999708767926629871264601213664586954025104391223179369098354210192730222268045278759058915827741482581832136574834107567441400133170169105252670384116511348134059222641924587073148789659284391145401341136616459338172794105974490146138686968225374614099936291030092277909346646634695726168707244475781447379030879098838389355975067262037753231341985692742059057609371115584316674567305370736593567511363834706947085281680747646789075185176115683746271403252782044959846961201382189195111386428631552915505211133287655189846855838808174841884413578400074525060964125595090768412750397985128827811653431121583344006993942872161716345199865311780584392804035136570671741524402847127727961113655964859944600308665776387489907187567964004780736695834418434104215254895682255679856699830293855569694191067414289087232478389761537728390701798639534703441897214043356476069123989065348524557872382901023526407232927456597823687896459207496028407244880633041940523757579145789801099584121494491491549292230689451021549329379718892236921044341752383475328287035040013342870455198943149645045118315476618182538847205599011890790200900086553661691507877285546802421689207616942401584620523669670126940478589348878347550297444490156451295470572534545265305793101912225226311566479716083070974017116605039134146011916083723869637508834344030710978317106732972661566829561704066285817353207493723986398076596360901068896765992085771267478967129068000097803263592945311675528506924370188226081112235996697744085483763414514163058050649161583596290729358605532998098206623678101041398150952708783224156597304636008332317485796225740056111526225535313920305406027325070345680436101760298913803369798729423201647112195817941959292279426022433315487920779675396416531223855324021775123908702785779116508157710981543131323038648010486821293842732037709100385514362694954748977756922166549593400236942138547123950027663506450575921820928181910795141418484957968318604313978085188704388739711731111939443783046759245053970356154054662082512033044996071840771580205939593728048983189437366643334544096624721679029100626219207680607105804065730133241286592303797209540402709605944175005345863541601036541622748524645039687709064686262505259767818989298093425959319274694551920027422189297532872388332875043297999934855965969151982761312646525085380945109101110607708176873260806891738822171073602521356342545161942926597783588862086298337477172178215140457206052813463087907528280687696918191485385633037813899619282837019821444848422003443835663621550676368634702750602024733107824653250592673705477230170902720834739492538733872173548807495437792531317640839788560996402477601300698079664658486686925891030609208705182392077731078821661032238998659299557679038552809373770889565544173923076961506486891096456662171307855563091815188524279588303373506606778033050546561430028950984025438209723934990845855946616376120856494848138128711124096190493833064342279364966130398414775744418917584321463325611545701314058724050097227920054358380807338480171722734492677357656960538645619973816883505784372398317274186724630194205029455566200443770995436620101675408799269342647926828374143471712261083794839594994712227471895490069233634013680977704253356531157037777675259432607327807953803927100505540596349287238901609121530098986171372479159263051123310782740905013084856486275178888725080806723347473066635352895464961957835924668279931392903215941187531613332861897908088581863671221662872479800514776184510841088256492119974485178299949503770573628730863481098848389128725561245665443609174700157151494241818679529252541600909592512289668490618850256095158152498759695143674585464874322272849180569561931390125104873833217081253043141113545371813754694380401814477934127652738309216885213921178914673819720758654468757110530463650311251046340249995349225915272878984745053045698179187219046085298661006313493560555743272641376633325843806989785727962647751265551966697848827490934992648235181026974046968605376387099500915475873277854775200099151021715517364945484397900066425154856513225271680600731577826299302309528474688245266782989300714193262949343173654998154431100904959259815461529966263141215256011087849115150069555339101923736635058810173875708165516829860687632618052510672281998112519083452714919272239123149389904673649629911512338037154815730664305749263315409387664044051428940203524340686489028350708110636359686877622106980185401163926857926786797963988489592074711132514903041520036453671819462836682457261371851790605971518493770768732346241539375992552121543000610827350563841975264484002286079524030707180977037974852720297201358636858455932424475486357145590647571371727301624048579040413083202957548864816020355905498960773969243670797439412327427576954197707260947917774784398150835216185694646601217282031899088767903235790186818972186455176947865697687128536787477612633489235729969565546849137185740137158952160442638770711563464990104969541495954573229860468893321666041590441285487419735887358192028670780087621152282558621332837474864472791645141529129183471778200705008107568588355893719328950240216800509959850929000901105453352175886847945950412447271418298175125910139904993176539064330326401116527895855708558430170179558792502159463254973772877414312736443765211342067436888496683351745391932873068219716386509994459671088016160922656707202573195576396171613664716564771541005811193556204887499234642020519840894518623633658059233365462150902418290292701582172867606212269376886973014850586451588955757399775586925455598890551861388862238742856068176243404403075208770729272071793931657477911373459691973074879394744461505336747264545559580945144838196054817753283516662592723408025488864580529653867771946455310510691398861529592363543422598074092505067457154728688599935724310502347542507175933023570502376507373122176186760851399290862394973622617079763622894832113559829780474954104802120279802882904874461637757544886650793143133128287736243197835899414004871074311549490931845291085208649857575837737958922406064520518135718674325296086626222386168153113541376706973907243105546400558601057566063049265771131192329234298562347260442914282499755409538036152992256598235067691324654778640722277873878145592533173523128469186254698827723525317057715154037250939391083824841137301916072097164371072639087313128970836059994137958884013857434108808106838759908957139545241748290699739778872654738213758915156483600387226182427955150183910658690692916886213770979729767748417901790202903489326185187305960304531713272309140150844792757623122866527931023832787837507062965910452551774698909853751516412866391850647888211122104821096119039933403642347533466952073131249041308923858695671539249854830978802329928901597614981029761586068403532460967933433476156954176704373297185042453766073207862719100095532824465843328480651522288399312592509214330119674142652464390198951822138840656228097159217754922359379447554541626912896917499573294281871560612638237646468141692336292494868805040875248690638977473526880131734150804046402274702727567523368278909426753230423085192267620244984651607538587958639455115535376886020384883686268879631541657316034040431677185296163579469388002545555624292404754735890575813964410822516124268446657837944689136439235639025039247147529478483998780428835927072756039714046913622653408801430917843468374983053961283699482198465816793139752312704626656778344299136114579021772632085480352204828216249231879779206592444524527964509758878847161023260785532523710971151691875800223677240382920373747336279336699571543436421990843154575469874966759189025138782602155291164612996495592908557018742323108136996363918112492056275382119496465057150379189971665146554425297239274571666064157060122517084158662352053966256491418559311327340984801862594826609718510241926959939166256425281335771679681032041192163768922686843961041806534956167860738003769416690188161789743438980890762085251946452883489933588348838590029208837852917526644706188555908012442035943734771906353203258513043490496085922974842489498975835548076626733889240282722441851688847723283591318280154279067910804704750816564145363308637652830185073828488179348320649306149819726135083607204917522968367640042439590872536134973040879341784790509656683281451481246066938857607536689719974755525371024991956570385858400935989223955521086523981283945517797789098369186361399298537752599262183237434125118127516887019135303738701665360692147939434439280346862393076347760918455712698920334024839266650193543453262416874931538604448019494215118137639915398079675297186872842955632536820680339463813964980600245560200841966579014445637941139954689333624793362500741264676630566956155440695227438300047852184712745652324585881191404122701487021967808954228241237686382556770028299834257559084503667410552327047134482416447968427407316248577436798359578160976237795620646914377815287851263742888005707134143491761435140905151238190608154481109509642179183919620656710103714102275871858333649299149635127635627346053566314154528472980110301787350824874086440757300594291240530059478045080078104854069667942957018183656033771767734411596397201231095394363206980388427799528284998310404253153133696702056640397104307073586260328941600886120627403894938666921011745443611475068804246477627510654149845415164820068001444371686469624680739918975073211177671801025444612262553225970487853136468988159990656186126759423358702074595150604861569679804565586290405243547056563780377589746145102744344285343683531481411586924037849364298309798744783139281893357189731391873800886359456340517310764739244801256404013863472439093762081366097955369669741800869133235808187753621453696963841920594182742731878506069507055635658328300828941467681514773842095510575359515076062467832470651867722719424774689274396788229197768096863501844906862855254357297377867249969713978093812736134179745623401776421128920034010474299414881397902570967567565883194906734782316471139588009776343819398924893219972804177572092375192665298986940583138881565977027037049247113864112980109009016618758341278996486568214751404350221625758916594395636025988668879273851296910696975350117141076617498420208468156909072648621801714986340728439232571222875068075732694270016713275057618492576787668724177171402344229035757898074571173626561493289897775108233351059256941262594997481092453503425407364005694901963443116380007042168528925362196898237970998472148450756161186469244699859395283575052094091805426032410788864560945689945185575503900250887276217245911445534724775903166063334629012784852948927139927664137720720718277103869111156751334056110599340551274694989297643920804232692374044097229879809595464019956711108752010647495339355007923262267007782163633418864387171483205965455378321614071623122152513781877703767888087297491149613373379619968154856893748868138050629953349810390869245722955304722969118328418454072962096772692379769879897502553301355174963621137183970784997337765247706658220860008205608087550665505225701426782911728607267352073813672136701984726609263167870282624404596498456884853930064348884680359598229549078092521336966053945637034521268942863355288578966147892786925981794781873977015408474212975028145276529493409354591745514127237976830537825339253168110750859262740785140855835969305952724566148386829003785873428306672051476182166066904924184035399261567025920307041657864984718503675641455577864442022919751448867886334728961840357065599113866608560194117370044010006689266937966909612263984581530142704711373811440838803124600090983225775063196378448860819540571619649169023874894077234009687496857080914557375661747945700152175652737851820484422114668514219836665667926055580977270790745331778567989070148121574058000365898697668451397457263598435016440970091088631818495694045508070806573905652448373005091555836593597265579121915684375792488042749360518336517548335438947702659588668095019152524769450361393374310084221407379349354597383604346789110355009904626732463216837409531941095245097483521875802878861912435397271400233994290852129400085978024766134620736337139309798038576906003826336542101185868563222132882369635642506275931916908929309331482617937806122297501940190484150746384831746361118602404649295656833392049468072965306762088515323214526424476031029730282384794144581801682798611901690544718434012264757366977616117638315733130639712962836701770109644098490284716573270911318021411057411364728647785882670128835160791689937192027615242851356207208654735226342553335258470573318301572489294745177561158445514253484175164290587943714884969376168288507405766738834441847732692061711811347878463733579748915689811018869021062283174727038265955186489364832452687419693192787438486927022460228623395798999672608634674143748578761159069731854063110315101572499737046246066114185880446471121211772295551551218776888424843154015544776980071667158926898865839859480494652386065355143869094569550527820481883217378676950320013934105951379315919779559407039624306936238937191086827197347723985306690357901238336147303042427295520835583272626007794911532757091127919093185555996116861093217861136278876715121572601075920125374227201871685397953646331333045142662922361773736246785026647687612408344377094855380121783256418535790797267454911072451198797095994040764562746618064535252413097712291178946870317320133670016921950572136460627907201202753555879283835898882070915575366663462487914948149169001412247763009563600670990233967849231745531279811200469162805926123330099744869975409438175398965017826550036511137956317103476914612952248249358615055315347782878305876260972574073136105959577748819845132793444208396844428942923322011140272398295615741509387643463864780974389298096406855830976579475243689984175935087546422309808489590530343460070963796084576852162046817185467102158029879418243957836690612639046540971471887887249834555883796942653056359547850009697715533186447179515360522485943202097132131565221501628575501125361654170484326782491286412743833908938515460646726836698396595740066175898787289988572411601384328807085042645879616969591651665664128033244264721995707534608322987774582040392060127601050444731281650471889480171463464260513314881502117029204964747991477872475980016209369575143290689031682718685155531866105472734860212220631746419703084843937417453720338595646075101812104472748492114080871025304271838568588115894819967201573508376309251560598288496272735915770812859999922896714034617433193559157525493082984837472669958921956879587335722569060039112176578750323082405470448381381857167454237636331742182460694021511862143313572290557564492745283619047500369391703202878147331807907094027373215788489985390974244506283509847877324455979356684281548646122219445141724826075253004670054284602623123312341854102266690713590965360016064713539354033505252759606195881100063849392879959582869033270663600107871657071143019015637062955253454653608782369924887496681595031470677131088020437047769020306622116095558976547085221131698908488306961138521171090554644931751496920789267548679295023766694257254891109663575556797569253708243566635949289632033825599003629579052028512257276731922995658481249210810356964808964416409900182661288643671451071941186260436137447425355406099899419503478826076998536172690949960665988931858036118184257767288173820008172857416825542090544139018691124312428603835799839450294931038052185497326991224560853037094652223388667953523758396505888918652229835679042515642158369825948231084436208093924347648442843810259123455800973678728886309085998395285019608603587548304147007167131030198807028101756613529798868003168273586693324426111267304351859135871404096984432355775503730405438772677976048714613807427011401527734269121280326836700807670590479937648410406784548867145853310299230556005562779397266905925156028737158471058489363048585940068024225922988538058838729295584767484828806018548504500550150227094788494622105095317079310946415097407166960185575221799424040920960636193404602512497570035284638239802390685311101191704427806492548885157489958729895563166556761571886709384558973385271460063570695422827156802675915273873617495602834293349963874887325522061836557418651168149991366600719435688355987818956524333850837566886432559825241340857516668313219060044200982167122051498638066544902069489680735503970205113546932580322400533364548426404373934773958085116256233951685458067215269792405228956324068376215561716563188291017702189615293803258333448015962509019977841526548695945729588473665057011726875492545576838881508951479825447313426209775766646180433927014078630722321365293015103660736924068544132882029274889541488630780057887747313366457014989733077264202719561426782110543587051067691065819027507192334225571186345730104634708758603370873066022241757605353257398777194742644760637668306446672121597611509474060655313348982900077945791983595392665342823353837579955536329593858678841329640869008544410066386709476167169982045351216132907488533605843437739203254994357961823939338835832068923370052111443828905274498409269878445892127309535327821038324131409104183142858070049710173409207832145750457309318943610337289087151756070696087129114608042819101114720509415545846441349839138754255926294971397752134478978781391115850624213834429712125136181576043822485937522084427869910120310915719751999918702196377403928223021389275943598986295533025532106817668920832861231411184932495985876999082989066321699413997871625814414725182805645557578147712737313191251370492655324863984645941375270454466023969455010804591483681160288847927580198690360125451895298858272155667085801756087911868156329846159996218501891931824343418283909615936802444899906646954457442345061710561502054556394829446262500450985068997764307139582898540955467064415867579003276904627641937932126233607663468157175849694668466226082091863854108759667321273535544380251511042424356941658847621628268467209791901248526088926638896782704757920207324764383945110698551537813659189367931884042985053010345633066499284894983619110494111555028636494384594901311202714511338886526547992308123676361434962308160780713721615760403697786502210413670473597161111767238279637495203420999264644675092478016895353144395529170012246835908208665296765353344798156078926154183570538029762395586975770994861462821046788881353767815461543724688546499034448460034203617537270364901994103614106734335525603063288639480383564188446721098029721807390217068612970632752549376181895643185859377342786279041987456075591000701068743137971146568095558286388117680420971371549508269021439349221299144011369119405843112162045072138931229507304755008687659962637778292991000572473974411168695198823258586141464959732234077270566543077913956663966260062877533915924931325903594325721576427428816134554929278473531081650234569994582578575975389365975695574022123008720431791621002701491341624274674669331358113694527844735519845406632254890901864530746511937651012611045522340534487816681558159950392772550733265790308594326151318954156536437917747347399778119253515353423579653042969651396312021885214536902069854472264999238533490359967254040872686216038366861147114278666718506053487519954013797068517382075162718571550010557618206263734568886012439655566235953756697876250499502016023482725984363785846584034546414926776918026607235199481974895062705286079141502094457217834079682131700520608218094925119559064195368321872214361403126174435680574957893883751010693441285255653889473894733005424242258997986554703957486180327367430072477846158471993259166528921981404756200209218715012632752258910405270331877474355895880274062681469932450707359084671820102215637003384279269410017411467906237955240358558835338593371385618292644814066584467951064807138277478218138340064075753396465982244408990032182834223855474793224565603262704067645127147864907162319122412350973170914789142473425621394870592002527688989333331986521401678126141538442860856527219612256486706015197321243183945753300577615916294390212942648460470582889187716745967937913358451031815818964593268940792386645383736055640607219800904769506242936601023973821377834877249084372696110124477767545360607482545927514173617309673484162349217467107168295506145883907698527305374350149542386507162481547113641899575578103046245488276854378064378672491978953603448551560095324708431415460709197551142632947276926454095465644538482648841149579164827438903264619542134776871049736237712410228797345918949102437770638391588465846715974223046216992265793682530590041346557481939205364370315813642254354442390353888110679360935215057885361853009026937363786727750927306246207486463390824979562188706758782360794153983164770769978203577782975667666658339409745985012330785574880571769174415140964097691531981557413716750441797859424700958386349153589768541347499970236272379991224260027739123818166090065756443018022863037375902350541599785175325023386194424477838198077868966817705035755904189515642156443205451982645042230306535706391854186856753029301576300605290735764293180763223351492951495587484157101085598756696490527141262986727601298455422403124138318438735362260797123248346062370789669784083932880056869890295577087290042915823252548511737665791833306582074237880050990047942358833409190520017164081463200492608929599505944669796495860300246048510682422895846574307228799246044038279654576742392159334336173071770578866729029755990825946334776185311846013536918637378854826487837638249505697795023188199677762806317603649341903962291016046049438172067877877146282798065381225621434724940436237610721537694289796267665141636459139307929312888666121412896445973931151750215144239752880770250696322018841604429898130358129754519862329367522745499367138106905756294158776102023819067986873539535371413496253175321066331683869571417118678871678796930505496841239250344699473197424216797677233418497731729748053268350337018723879505915815145887086036460347058893876275147478827610992929800451348579602615233078554047927644114541412499199029827601102509473132924541435471306984042329386450496167160378403408665938283628879347124746279208919684624767485239800982707173845413351471175085667343351952410661152234941467823576538153178549195983313561504398119650037392006036606200882665517805263161927854796016215643373607364672899421946253962834179029922575106720445313741797252820619385602463876148159234035309459918688180188839221928727191525146090688834953662085722323392854620202630561435134208490230744235937106371592103303983162607083897013768614009652962302719569642384811806251528990618992045557033624431501903603882710481993566005959285734440661822024672058880875045347182022119684435025826886307749660899638154381836200915316001378932077023078464339786429931087494577567231874239490955711685392486395771916418707197920975766243682109116268299368165722420348348032682153031720100378421392618057148754125902580439349615810925229183961089923591651682987748274284055732040361452742001023107266631228851905639969109794395341650790928094469629600811667729695260234814815520424266770642222937261884343736123142593858692951019335344687055958048308626512347915851123113796751058055245266760865545653809366503469202026805732875593967695326756240636818164243772664217035945202607564780831827025627593607799615870357252744897283751165642560200133330360281336120052762254093492709270055101946896889888038501229136565710515781996054159112853160145661643283969524796848692362245794381429440049328580984404279429303430312325947568503843211893574859526030710148755674482196987771418408532730402934881299772848099543963883349625679683143183720608493534846041176390044620595564108959527435707580441615715672514377650520290752243631997159649956095957435770024000789117386100496689838543341907905721798248744804455148016596948863393598388685922395441240256924530068411717794140951076700096672700505641317209042255031972193964929980592913155013245992719241757324464949670168126135480776772747931353939581189332862730591082990416749313880059572810894142208116097679950720193693093887338070954243490346148647818652323129447309693244799746369103843645397258839738403955177148469743742672664495464872442020046833515285769885181398105568559671434986586722698446725120705004475793620581094632753477569716634221068422460648069928240454958888070021085095152007531773604007834500627215847693744412684338899271920191774517501015913963006151442692132759830451366462964691011185374740872404345574824630789817616790156613672247560912338557492239631353378051956484880256225798926387909320647470814586145863330430871408035330149878802469831524674744522934707034683025789261076816620933380834370203629941210753220829703547922933913495569898453881645669296281855819516625340683954217533088457391922079768246871417696628713241715154851292766787268390964040829828517203689628540546665070122635601825102111373421761090632020303885583699801666655725904211142286891232772873877719323816897592141251053253120186382891665358793722135773418688677874251732923889980263314652643870557193800431787185847891413215322750466617699330452037383312652595548260041083331938142445204884850710871581040977762432060822887276867748231723907409786612575470215516616463236299842206297649722446972882873236192259577394683789061130316128352597168937435150216908754793737956124748167267374978654985260685892909187879951077772355558062278579662880079962765995085019239495114846414085621743315188820981220921818758270422168958360372391167847173486743686851867442014749849579066585636353906609396796483102509889292170878981023860355921171716704743075949378431366417054490325365587628258250813136093002209300956569205144012645331871383773722630531863369162890031140510505246176050678091066735884003622714404299888211039785201670277196374740600325799452720454940571822245259604814464493866067036628542889967480775382187604753560771952896341108780259308111458358637006966043801984518289817064706646969899040614824323487994552142883792155499285475873678899492589919362246531136278047697856654045333622326343550937688295292805859508319173278991367240842494967641308462319068746307912209378905245784117773106516226100617766614976521297719793507701282530022700230612687466868984400691674177671422974729277232760744421829672750047993925856238997348768071661007197722996651640715566043283023523332594491355769630592573263677693500545606052448922106951256761077721403008597570662454175316409609177676612387771752193662360624564942764921739635861725630490547946589855347631871582640710763256374574762259375116542191844376959004867679952530564103404087637289059054314490637466897179463408065044718783803846726898634398239285854973074176477462745276622194773769713204057557351623953297432929898274353256525066117549626198039540653535511439532607256711973231483260753991523305556866014065044884246458467305269937453871281094100944763263405458965360753413454519389574991093903811236666677600548463561083677783534538607690303878652435211651811133549052112149381444789111331898819028931872683584555079145067354955156223929736803107696398416113455465230916980074830460857807576683425338108867084550547933537146565410777848499827060710048358404444689594240212971823046449848031635210163044600465717897295698609635410920367822392745742258244916630691726740894445347554112810038153578798124605633554183243320728009825506562724258381759301151833342049268487590041978452138178019928318010866669683153974026415868852077836059632809350107927353354466216822971196654075740289229112857264438831996359175821123348171120606225763068976768615850744512345208023167234820489720569595494056842082542516819475158009888255127366547390622185834203517614639275472780744523405477943564424640406510320106988770453775772230346132412273900607926447944052953622391899407453100007577375662719626128625886440776163914449159654063892761399815222094790044985294221597576941306323669745551298497859290672778812620675789176105404717998125204815734565615915782657808001564468140376937375122822243851789835507647244532370029177253971925523802898118627831585027183386212119654963822520865791461993661590176623671674197247558790966465208652829294551140573818771106193391868600096787630668097223018703546378663384904188925352259790182655296934389957154054830640127639844046099672273395127963015174585214559180488855124691914891891718652691411688524716233704007007762521108504487021347438215395901131577255140542194089621796164457656991397445746937967880655586054234913840805151700001021185476717787826366213555979310121831219099532458170333621783965199407869005360774146830449192142689354838820854420264845289362703933660402310125058277612826319325564616658694432601487295587393416153452917807073834041421825745491759730362609371292744537554613559522809339662718810637868493986809960788003636756848138004638983665362307381054727734838640179081371314681390001621507808815116872817128545475048847775633350016679377670651158627310648410886993959997571456465749202776382157753824755461748696846683979205823221058768110965524426072276145584624362847256379172507374342712328361585859654152608736988863656400991930152073561428110928561276554534453267837254704647628461877615925777930455881518229388096514442019077469302114826119384224183329300197772463596135056359388963273030308448185622151533976715631389248653680428373896082562286562430395234653365405666800342117589476839562321589047042889872244265916775882169228533343128540015666859409740241873137023390272466159106315812422318669199419652228242183858500136533304670014919608707377950800278228375976765514679731297197740040837864190474367363076543005193090533414186113306591740876993555655361146865447118982761857887854459934646647880053622726860014407955054039341513002111985796158883221351861479796329691385635538583063063997519626163956511332060465835713784755522310206525465381159340038337877375539299780576832220694229518695699945252300622875668230481631262694444495805979735329893003076145959450837119803264022614029314006898545785833617248825901337620343720027181492469801002678213109985259952471324790407806555436109074386248752349060319371709201344601012791905558609219712546253399460983868984279679191851581552281497795038411566918145649788237678235567886349701891916729680765926637708079765586014004359326640924295378746788933470167443606303316867805053990899535003603091611010119718462635498095311688884694270553587619180143308169802031903175398116207179264342787088566143626728048401160020669720457524683417350582658962379088010760073481299170484877834677384793622542042803585437183624654824317829089253635262715167731496209460293308417317577312243101831896096627244135042033121562487285164104240894821831678866945904209027469206070931713632252655703439826540587488666074446164187557664470535640801141185289112552626431754004512737025584367677294770971030965096681594439867165254055500464026162971749801094011785184723193943202719026837327125332145588057023011418695881830177712268974254898275467768527808042202409357736899140917318860552680847271532708747372506311373224519742725740535845779738496011498987254547382364523601029996904586990190266699622830873863004515147606155816064157538158148746974778745920034078526788878365721371767930116760830405074890633031976565427025998880295411473703153537241353230289442677468287247488838645589804515069291181110002111534468318194868421878092230059747749413710389588679174324073764826201593743311369034368346193732343140545001204223026756332998753491723866000968613871108365163596477839945305913823403272677873300607676714068195071978579303094230778543543037507569315023087842117622629880330895178262705885618411459590197141908975801894218500253235614912701452655006702722009207051867009479110678256013185107078602507482714873094943092726841818124125945457723118900130874164873551855232686346866989588007654925446289953186359695375974238489339847823743157940050762716692815399391167994162188754973976710589912526321269481808649314277296082960483391767326791894513152127971410341481196900253012249667690834119817540517883663828658014198205860017794100047812233424150325764328390531690552938642157284356720575307235228361560597336478233538316009253210348539086240639664052052318500178006514576327418081009688306032360179352870531863423080399629044635600806485506484685572048053552470007642690525470326399996459384450255331818007773639238667749864833653811737213586384578262879856903739506877465633911244374120092834054285536310374291697301924853348868053772377890206333488369753293373619275166960846665695757538380722177670707240324673427018149286049174367751549317513171190051478853721625613218475559090374104426595187929322494432010965715998482683488284387290528094773972646246924170814263477280343653432309111359615908580100354696841392536129886513155946946393756316947899685494184688457432634731011415250199856447874250841552933654183884389793075682728040818455025302455142918072830096636396463586974517156336921271926214588353482492731771337408364789118658328267968990218065824686821523374284530616561720274158377709815736469036625931983975327706793129351738822332780218257411979497223741974119432403886028983565570122572400643815806861592193353161258140334049438799659239917464943636823061856640778070978316127848678747323792578470885537615674289799556449319325643947001918768660399482860055584945805041452218015676947020718870212625260425798021918858709602669230524332075351041372320744250348398111009341404019226712485472929186149637850440177031423252069167301183240988515885739020618099771145596500305097679455564095999194559473377962439758084900077828078231008301030418486678144659645294478354532040862052416510151616656855208492047337624805133165337738514872809625779916270786068216806086840550975677465384925899864712296980696811432194543409314808156596918479599881969490147376587669824172775010862928584811185363564728013932255894131258340887213232783984154570302294119237523759901332215681195303459974852506296814746192996382318831451953345389044527198986136158398421588996752297879965844703256193402274865849304375030084419357709123958490368150723676466553774760103455556889483466459696144439567412429867407652842313148655731652877175650671136703548694511177433111129515542641588731785463781914951569708141816426799065479002862295088799727548892628149112709801480762946836563833279584769253032313103594056345649198937375813794602653013493192265551642097534097403373120158604848099161908321483812115350433986077324308009891727524942819404717983016920198531251225133451795975625508238872033633110604090524883971455581094190110942332702806875333093092160495190066554799884270332509545176277704602730924332060888717561506831616448356023416266809793197828568866439054778947267570625767013570825586599221678613843893520299311838094418513230796953355560024884391548620758192324600717929724934931703055178333192166601130140597709722393184186873877847646018065166715639380694546927280396386890234773940737825438106647785166598246105178131369197090681105455305687714847127390122959030492783246890180978049382933333999533471574001259992752784957109995842043821360920802635012605505009520966834005664281508524890846053768906313241797124733056779750644277932724139439780821379301534418267287216581244919119737667805082007745549975695025390312208234584391936172806261530395995107766203671665189631086634097614528623274676801540858724780668122822591982004140820534423209258585792940177058146068873954215326651039394486998550530444593712455699057883648787680572562567008109306737769657632552688856399726926626486968011246888336445994227851677347951150179476841755762102954424653160405707959557713040595122263729761319202741285229746468776765532319229758401295435763692126105029851554709444064173145062710717072599797584306066078175965193583296461023616315786887272487116591867199794883991141494373311095885701789930278204913689684131622160694058350192861890781071773808854862796533105807851992170159509078071585765810006215254201073498476732527946424920590714140092119737291967335299690830417150575660737412749158951019327491864566815985991844773683536216377983813013439122846789720281371638149459383761035065643831997410737178894581225055963473784573293855617403597768252784616084737950873251441755929866092604566011452619857940100698527762158925528218811180149782414176929869813958771905324676831335378061559059854915701298232758900604268671184880733809307364836703548068781596394582137725998626903564592851249471213492527607050534640167864250120234408540094040560572313227696888166662346632399752819113150469405816476600547492167606226415142794696104050907647247883630736808734928146007936167689607950678158716642685555990537063391768892922698490907059205402951842982506328184321898456998537202327566575731852261712868902238800802640842818868783067939749509666949754622380051957922949163701210227408685888144233869487598079703807435979004876909498816431357996711895780071490374176516472249519485951919366148376828017813516614348789202822558818360874278749112396481881646030099623497511037514255216490565352477715173437683117409165798549329720850826873955477109788567627299530610428856229348394820798651616507783056555451817463028507973021578167651239187899608635091074181394220691493461103960336597553395226635508593152731547680404081187796820816971327395447148344353909950099591089060495403988309653471159722076058710896862352864600891798293344343301450823062152704035139945018049049381974091279165183156990364426742613710121164159056957257214340429358703517075363649317903248649119514942126307386749502634785735198659196989245351823383613613130054312419362720731511376887260840310581163366979513674273924190963428431117352333759478867514611917016787225538218183792142313564130400088312424083562085615889857534324345717312070636734539292934814502647133961133509538948700357817254586138312488703073572228008203263089863663208060107036182458773682928462101899247893386858068935748995229320006428526942996958973996841895292640510877427527974231297517159709125354233708245552653286126355183533018099082986103220317435288761958652205633191753622167556039197849924244706703981759471090846467450947718371254175015302016205473643982278994948843676853416175421075875541406790744297897439340999152086274101674131104286436581175814439836212852475020054897411456915960584763238209867154012644455947402945530311677375143884329150253013220650005134240557423965067186057182855978082892686960287296299626965766599314478563627352049016656497459955899337062123848295322185068828347794834004153005924003368870608776745783580996139043131296774085593471871072840793872180773737096137248606020305608386424835590552157836898077763734501179530608546973033070535027990807821195353717953900635384316095301022833410979652877652568658729059038380301497496625758528092492640808509248033568131036577632153135372935337385927819591362525049979475577123670297677097442587710330563791821701036206765060717507969447425040752481270232855076995752712852696974489382954909160324173183091434499898959934089026370044500841910534322103758797293012222062004090147883429375249911019816663252491080253798752092001240995437366143185868406486027870195868874066638299309813150523215821711583459622894879122928925175766399935074881671900503836155073427741128404253277079495794300184054531815827537371759435604616293397634122818948565476235989250778868121391735568085976295755721749479409296616916700078425229747265954363500034719327117167637401612125177441627332631257739352554947637669748426749543353174799443321533974368710147065029279946220399742795200327081292737812122079127025384111452865948548183195097761435948190074754519008742809367631326930098985047406125346314214722163722624794498490032821676274568946895838539057719828961275705879924692445543098474137314652298800140617699803823543188772653920625954925914385614014728961864092163469861747784188682676692357386569208785286168464025417632380789310500256527026769184447702037469477577941477681982785116405940780565357870288915482724988259367031696358194876305614479754698614848416706632659916860637376335542841680449552268609296368312191969128791625335800543920500376690540639861009613293700025422517094758529996561946930567764759482203310738487258719574511906305668022336573031957928371011897214621502329040285204278365893806022495170801202627905451681282888473495607079392161037440952943804492965381380538415706120395202397813498552109495814429393753435603406211393196649956821091836248086712383891656556659355704244282288566558822405936086731511171436394758672730892293747446914522470750742605396325997963783152529537709080226622594116341314940576519529681477412926855110555178809596158039982504152610234339178320082188353357110458983881035938038899570908937289050278487948649182385072394493854931729739959478712511196311294709610505818168320528166625450569761088947778579210384472022783682181411143399702833479568907595029862542034535492900932364170512967145582187672357007580896502114320061007878184872093310081503156895867760788423336692659592575409939413419621167902076066588979338904460546940893717800493867895666919965549363142680780722331329704368212425383987077875964264907809425306597651582250611852803295803248556544667211118043339952825257500271184545922272674121656048561600255496471756776180542221855998151188865283488227453582582662171916202783811507531334568751792216964293410381316822515941546011532777451321604712381474161010557967515952821336141355252697187582867904830525937121116470934048936552691205382203281094870050718071484118165476684504729382785668029763400467668943400071316339184442346760744705089676264164009317476621971698007076653969307784129850786092178665347855065576096859452418301425050240271083360315520884878051434974318280925323477383137753025011710781620552124335571991196920538377801728143285367062417788261767833173148862193691776749465019614880348248538157993125265073711156572885847147442437312339899672646374056728662422399564423205563157266442319300857318590259626693412298775845898780995648240875365540434266444547276072647127770246552265443749937839646290356096298089783808917252191092509158626965596238193167211868528505715802385691067678999891520071372741175404457939446218702299546984089769469958395527494227135786952090279520902817132062954660194863918582856983819220741856428637792723971302286131251473413500644851149193763457360126631352608779938900780341353766924627438205462637984664897552734990455102063916021485279559862130044601865217383538659676201073884735519202970324594099617579423625671361355271331636532101393153941418142140553408265256479589205337036973497049630899324663686608366064645414543663556124798564502013694245403228926230862800639834844069440728277074768977304818263928288378166161899959991584035919061991494702443657913961114814633003503917284008540914611055435570721718275369082635067397616359284046469166217909410323692048095882893534733064776446676449726868787255697659483818558089331653482292132110583799143381503793183565034111377178086289374659204237711159150506058970052662236073613854817236235410360210520957844785472865929419614934021502215046427202929075394131322019358005738536616753034237845888162443404817480032736572361180918218974742150212588914965344666702843786728174111065721921665604474617508541701856070162161610903364645343645530782404960827994696255685787643504739061204101509446579149590776904258182887791733433732946455802481149977783967083191904030874415312503493636598704305185106777791325625312657397973882212680603157942640489573584862681831971510766064108208692073993987347614353201189536682662432511692486327413225185777877815831838297510676921201280785227716856153040098430973103960792380107313673936271377321615962324077970249920365357159687249710845884615829672580887607596376836696824769045441985332576779235847927824216564363820397274359709505696838081416128529258597395526745777334336629790650695717289736194499302159374439345851502512153237907906061779246892818670129973039036750473116920698187041140129896682189221077762783612837870694784233278553958018726942040067864829086857507722858855943668060581415847685435732230620163215154382108145352449044544732122358940886466606459956142698344872826350945200227144200817971923079032640722235723711840567261913711268761782305781535623956011771856679141085983976673013632143641801176626202877351231821118737097126536373528531236952974530174910137158686935837713734780483933370266885369118304220271864745226554001619084474397280641458168310898508487613567646238370963262776697521243001336911122074735819974805210872939959242320540927790014853655542047184054259679029969850397865093015413696963956902076683376441016512531593267270288219890884298200948750081793464880876070708649012513976299790756911868191276635374394207564187077194317249828187774331981819903439148408674697381315668538496806795840387247416034785140084815659444550168509655340499696319413363014431640152349999052538088701084936020466150213402328354709945955102386750401675297092030378110436404981726324356500400608955334420399690670702868892440972669096760747723865135626836803513045126663803759065875106314459149897671158919878948154719339712483265885114964426175799690704382394893787270252541857774321588222712135598537893681051780855596798069710535710584042639646563569529803802349825602056899682840919804641295279198186590348201838408946841026807266750696034132594517271851740152861665953850678950540187333419986694369779255582779350486683453182890445315892106339252238134312342590160880430610807685590306970090612759034983740966016884965839629331020716099398362682624803845405349053807414810799001284694593038879910877878597195787181930365726645445385306404673280467948687506488174300165680080563996967951631109726366319332809808634537783934394598000488467517310802769644365221845472329010887648195148671579610445908789953121895918566594892245745682051453678085142328416098099061136719896791992682500245700181275327466260614262867596255626710892540325513616251708251499869130749524457096819378569190440433941994556127005377792945789283873110158589456019212920276283853484796556529425786506101638915649430458845688713922891060835925249453626170398837850349758849588584241371592719273099634551953167243981179702090163298546292375336771397812082368340806670719216878656379212655969877605553625195871300796809951300366518360004697103098487919811780298349435463317446676894434990799749686173779709851571039997986530423867325147331763423810759980503864250091559456880293803128895533429449444340224898270519711581918968070059273939842342824128278879245985440122646092295486791611238744833948817283953292284403984974736761051682012084750238084716197877344571443834409733902706756099614598083415726024468447365420342498918965376269090154338477272631273119960072827897076554168935988145885063106690167838123518495638187332066119812518581302279210810362645571120402936033569513467860725565736234080617710976979531094344226510186182577381451695650773454362333697221841581216819273001390854282600930371092374610568890098802283676066286063815003280238992722414538084041880371471884741464230178076639698956314502948328149659566668744488866746510903392181710099712253839139733468476420502645513500285930957822770225535052495892102681763843470033375665787178490253605084781986851601676674011737441313725294000461919804385764641876340524528139610728678712108557309650162540689479350037175853109650868623972332159725912823488539190435005361761388958629540872530203801880166215767056044759977092355917941030115417223378746737420214754468982476399411694429277111033646679877532909557708978022564232699610166202254807809447855694276421458379409476411964303017449477647794847223622597574695362283226456477872470077094181064867797768802239107921841932956261962444874392257515619535454077196474124735650878964735754293570240408429426099763538295323420551869692095654726031726497100658836874556143450768177789679631690785340356365108976869490672331904665053888765455630121033350922726386901965123040835886034574654574464906439582261793520589639763235520763770518138828272624213654555581929970796104472792392914912676562028208462446523775200218941840102149291028509134810035616602166479614404423708206940365764806119624345651753564259037730892159615379821930065332095237096857748728464946847020475451709758995164807853434064256559492900291238851707861991092537834467390202813814082859436748621903387677278328611367993359480511094985409404645041758259326810539383760513643911790864852557478693079976855869711074430057189702497036859549323605379692862309852267124890491364092981410831285336297190142954928134977715705866283738717587335227964138441463806373468885602535807339308895775549270849906049797047881538442140126316232961494399225100411323234714924311205740112159734108983498146343944134220936886784363392564452848690024928142613990667461691516907175211270966212201280305028663613845922634851430165688923984477623937297911318275871952193633798481422839379736197190831543176660849765304567213502330061562887592363401914932690398415855802322751324900006827829425712480129215883888245062039510464258830746584965619152411603700254778728859136310604640696322046216290697912624829090403431425916981719423313524477233789391027752073507546177688339649787823996122064831992745120889777385134667376796542375633903711281529072184916832123860328865976334794133088019674089036984454812993304910535473869414777676205199472251946804285867418479558808443012321540017896446479504069588604527212949134522786648686934908289197247542205793515506702351093830836844147808458031818649457492978183787955490453416992753723227362920353462010990511847655186930898445880215040549650999456540795325229624648744667748897034880469203983833118024529983883787127988577446845712504589150642274293692874056098759011095645155175487177594969295938886620219586660628706461458568630497215874484160704114062504122600807809456488119958225772000071070691117205073722444274306635060998032653770285693475524235472690143977732350806271103487541008433695054129175747015966796336831820518082696090178420233987366847117597116577942237830949803286505932223624228639738097441731850966762221576305196328331614792490430733610145307107822877015373215162152522843309907537719914002969724257679288461738434146918248045712550327666693186876547719962752688951027066758418118315155814347021543196521158710731306917353091219313244703294002795658311411262562587332208358277083459385393621115588684199589268214096906299060256148036561996327774009165727794796300579470404349145408237022767033956710336120986884176505897354926567114624445049772790669962775591348474133002030144057624862680202211872747052654406126785892565442126535409302061147760607299415505356730350965798393363517284942600037811631666929810857338977984281636445170920100680377627008520572518380912474626989344531418457993774837123169973046600274858574230735084796987593297348516071683400285399219087789455587746722935389796671350760916536860925111448144883544746796994404319360665085430894716938939844788085368856259835814438916026781037805614122635505094092451496901594679067675094424255616303822967592462026719276378687102918062460147042019353864307890349563543514927051445014226510211920499272821600990748281038591474273641779611617019459127526309807335329616582563205814876822316854906411249633179093740417879272410570708518475034082727137688870996995482599471300530781811279458366630271861927505774768283694223080339244002919708641973799355218562942283803908872125584803247467011001298468304661772578812553294273629216485453450845255459064800831727254265171222076182167487389354313762713162835039373835193556845786305567070023590064013626582169046180611570651836621029817311616974930391593194879208602641972943811538749048933422027294900307232501876977188469050385841873530144391820779811631564119839950664002690495314569383732186301928371843099929528875174506032876985259402723138164153268800486942219074852159288316709081354625634012967068970755149776274943586383944639374820129236461563055173496793125393614068095217793500752385003468803401704563562404190790501651563357192177935429017569427988231160628402832463818109503116748121841796405039065418974492004485893196952087455876986085356518341650661084213311546003022440992748676783473398853820551592851848733968750379042087106518864715348789499633195086837804940752979622496974783406181880135658414921086470298141844258225149506161178524934351950262291513246292779756701868911410710366079948959044771457453318559136807924367620353339494643530944679386437831435543528109202960471887843200534098510862700334523254968678325634610571873291734550270073462942423884710295411111628325486815352471088626237483283215244871817641581349898353110009696413496799669591541522307482067192631883459273203258225699029082845410556527752571536788328710599951562097900127096899060323381564749286385689725476363008183295176087339884247565667923692655175019054482659541335277889127293756169531045650474715370714228986243705487209547250632523463489295293108833789734514154232334104848635761067274639380015034304282861553513974048409716002207010057063270788858182997085278242569827505226169189220521774008738047771466562778706645079406782712177279975759810371917782534292845319951863007686366143109128713766532937668491743615357575523880301522180317523941514014412636083540570251856510855401626262813910231495848932300644937167399836775311473900815835642875148015719424070525175455589710294751833925592051420963851437435710364864164907268540729905738023071135905776615497755812251165264554756906349038139575971338008447112030335027852348272517552442423477525564425441665720535425841065665627125467753553527989619280625477000869461105532825465759236582973713229562613580659750400176773646499531450496547733911932985760730287693579464969766216428494832585549454681721458429137727257285045273769062336219554987684449971247562760215966987455132732080855858479277367635307819325552290272303680686805196580597957050373765865192662963672763971496029165192096357530269702209109056123597600170435412365258954849050689638213282865248751272008102092603527252955260474801115966214461517569697210142326529593017646400277872451310021320123570369637584585217600201564549868335804770772530934530850912581043545979670727139285030486428964387824399898510634609127227201958157985379116398063814403063244134007920330892070237561899983176631127572494738624385197245473739111723002164386034299832711144461183002324697180258680897378291441356497574614512085644980821250249038592081719630776056086340052207175237905014257542253379763979173436040689810401837514902091243503956778387806196759555298929717747308822071642504272010648469603648042671160404307545211251092037418837768138455909435593351415168458522300862579949164803264190878715139291770374650641111195734281307382376087831857518543955212028743421444692977689514352747442153919102011324486545457191019763515786940392492092694396817273888134853463216872287429185155387662479065919515606855949402493135631498863508351416908330669579828623559929614366882707944181378237678404824358848567313410453223015904315132650461060932968892801970105257917720446019137470308113794286060503723014408780563933904335879615477088816991901673107618137290395785339385630828290513901272952600373864886223237492830810353615985909602947453265592993970243412085245179704295078068260878180581925685899923053683063232591714654337374566818272105977586357458630171061940705784710859546681587020158322004903014476550749626834948061800668110209860808884222439047917525950064483534637653925139571591976195083879451590987600045684354046848580265688431326076444587849820265116784060351706936224184292495745498304698410154703685326105070175924272616433428679196713540761334623867069649601361787622827819482567549323955142410820243768247213881779425722607820034342692280549549933176097876330120877494748419484106824274721788325559343828070323330829704215033267626820458367739637421406980587273689742911739380217593392054504567981064934504704122477344834811354532429530941269125037361519042429903250289027964611998304747353736937642186541255184469114174870462076697273613135584495252888435874429391947357205087824657263754790517214949798534843119931716880674304198830630059537871748624849698285467521841323692411726902855819409033331997952294786779480727225817288089879221127827199876014269190240187042052367354270052489474197323558272598469936194927269174995638946192797557023851722899156933366682698472889627878324159214798074144264915088638755072038471777278522937837485575495493936065549891946777143997879146168045732277716029799881384128624854534705183856299529769101649550759351400709393344126220951939874665477612335305817222553856552689710680602964469303647583824975595504548926787160262284553301362612767927288584861723899418764553820698956617540881373428835315099187045435591222991524060855340214385539366546018209438642350198128406218134707764146208426710308031960698024635205973408456007485146843559542956687497000750224518040745958107064647855129386512491372894796065072022241923890856459222484885814569526887781193648276440826450791303675671579794687384593376089851189560389524090549136321422302954522258590751417836783415368103893988766469708604701602524882815463387837564736301117657959337416891107419545253512773090220852921761117973914246680770459251642451310791751723592422567431878298917613263578721152561897769886963958087742426592183706703034551624279849929896005870554302121271899830972521494244432782076971629270127517342941779098230380396447586682862784499672363170790075648089341071821169331862930170292704446784102838963283522177891277219209725797927643054546980031203946191008663214829629278515032898040622260991976780085048590037800854371653687513632418042561358356370421698364713769478584064928257760167338079501838483125817698943212300283112107962329990478714436176970087318345013038499053350356118548740315587653717110990509130729328815526499137375045366238749524670348734794195613190641641300741916508196308400771279146637054000287303150456103396690042318117477402978104232298780635286284188489244793609521152204655489737018875671100049564875739665023765547194624435040501423347702767149724176789702440627935773369664617740149055760839487682063870106044452332632251251681728679022712464218283346405445035220869556432697343455124882827909461130776592179288821355383000787646819279769148171331113489040965855150482974997500526019082969437243695979093625487519417440049730089842460441649986436167508259226367465659499700135456372872229609574380900128024286429961300400829083036634660886223370429885806235572417112095394892222744427770094255390279235419008688220309916062238283070962774393091077555582902684323371014190036673246696108382302028064158722925227010236636981818997518048602123953653235378994363301737554163394744914808515192779472586352108274641217659130923111825617523032751447121395489842244274938257292335192336148709022004512873580020374523647402609713325855046836397239597525971861817089894516977457598883885335874860934241535606258715717967354921041175199619931225326389446859445475202392162922068154066436367252728221182634407730422497239529157172179129887053541054011224536350174403473698429412974705124430662560377605480459411096041799477764830830754476718595174879615591524283002370482428696338535743001678329610649234085803348059228924476243427048199414725733876432447942232940773082655207769101593249599278875701711798686915302692206946419391315762804832930896764939798131843819079425071757779033874798373586688766239883554615370541749807613880201951609046925657548415567293363432526297855660505034296366073322454841606500642037906681957757220241534332178443416047574110332355062275813314687463931927633444687452825655490326667663267521145879368739941898680643206605242274723040965621573696241348047299666406905912613821318961991809627940561254836894241958407794689268354087355707955946175810584407551750143391888171924651004235856365487792920664519658650797879760730882274922253916660287075016857781934031161291956479600033532598410318626114347912766546668114053187360162044847170175754020363079850287479652014167653638491117243102681541944387623163061030222561138055636899575275908100538595821025509901507438446051886659167332991961601256647754367378630553554796920332589818599015751607728127780178916750514286326389032458698611987520831481844703790523452051234232345025278185145332113808305573839195946268332345638340506952682091134250756137660175287065128208210917425228443272325566345792275529125736523116060840551966905862124235492219209154113516002530156129449310352347209326409989926390042747817661538929814795573330687148944386354425342524515129865677729032944540514974104478244931184951961230484600292792280725820881424347072416671761401439118019566577199401932980721768965881425262741392131198214635992137872543040488336159519151261370073104328799027149468216633538620899802237830136262404525407395719413666745784196628129400496434948925391160391959401775622284024014614139970902159484652040704942076959620279490278384058658534691907134581949372225189360632545221645602122373486375503394685350080771904289463473335891831821172158502612324700622744383553362447244771019586308059794572510952478446024866960678932572057811791016474573677205339070738362640272623970930971095432351535779273330136117394463578184682513615776405680626836023256376434812191655934459996318907865983265516772811984161979636840460136391720023360959223255558514385502756857285198357346173311892801942819489554783104602632596078266310637534259708853269025387653442353227208517208129838101160081792370173204786611420678116336789759758298198963771628063818200946580900435442957766526055084774451007346806030878943594720722683375198773526711744080694756380666192334576986053935609512314688825124159719506558819840719185832800837303433224624069766675576397529719859486487250754049336137290615249678071001853718133520900396123470375295949708519746617459685725293015087055809381513881896824513549008429499506188101525084624737698252005621165921933506214873221468398119428362540195491064375184479623108985886965488342204891618076997041168252043786259249051706591868567901111667628118962008745989931090235148766437076943732088326460512846120139496064247943137315520860305649441571446241468965230714081483978002722010467347794658572497972907808251831703862605333071120334609360151406658190885225147091730892185510571831219615662116120680912270738370826743786123439181981212584764112731061836783633027320566171232222208439262242358112118335052523803911259634496151877920341010583360333616078985954328936837854700341820143819190430354837785059647308588439726942718131578156046966572724304695838502403417886803123872815666871840816037586987482605760226086389688684731989890193938108427309168868415378742138542499243490178989003708902793923217800905939490584618396484239425464862943009757842743843650199345515746553533909383883451393506413443688071350048740131071405271239504686660078094923366188310329610575314983004915921782326429988112478810011565945193131057226098158929184603621103881294420767477609647073138172598043541389170582072684429803808718807624241705861263662486763469009791922163918113478234596371588636585122452275604630408271218284788225379565451249817320591415840054972994582362462448480608268700597134475908120213004304402950761843628147458442662516517408400523462001928951420396068030877947376070724575032268536457124673336355856389185886316551424954970484993203721897625912362540087262220101538397205020605955821447907775678091760096564237049998583700852230205680599060887958115258537503208294830234118087933716194475560129876655826218986149538172059664450707030098192817266077716339748775435489723693037980049173812700723639439758445763917582295793932483229238833585625039583733493370685998057644764075578365525854470704347817568189590593889056546595366135810079516238959343489643822228716512703243522461942088748850753951914097762353021000246399951562737407060699090682919756776004440046259822361456901335567830026136700247425805208488091098588980703434750133317076892793787454469311098362763598201699673602374015649051361630474015126334492050851440691649533103170003644800167774622830635607406877773990844938761995143833929247392087472006271418818119774686251818417154156529543714136710369058074384428352299466756720690032939425078762336614458847913638335995163011976193270959706160316365966896199871970216391337474572734754815790704316499038073484143564430584846328302899735856896010022037699681089323766074761944841201856382430331706136989551344596145475733450611745634169048173735453007692551599392650881941252310367717379577925671231805762989976051101304033335786860400624600463679122137547187800146553648301826218332159232616611730547589415279469068277491599774662043599163977025149192518519205022815185279244890938644001533918376061686188558608444878605463842668137589319984971340965974559692294091737149155632611811489810540468495581284211246374447577589971371723228359491828187490262541083737492928380965550034808532325630077309018146739511241183999153440280063006741422747330474005830078423594457268930843646370188478005975088366024783296016814562593667020612031493201479401911758578117405743602523509174574313760179615365427318183135659128549744239788489826486507478955547786689756183955044282342770161175866014327966825078420003869525904884288841806509454704669511976363093787395746378666938853848924018292290943922644424359208970984924795862155886570026142093111235805861617965806507289010016420544966132291265410639392102189148754886590883144899072785471616624974367031546850195521051772036599172933788734847216327182657389426854882060186429001358092067191870461699932464006260363473960087152879994316695259996560323166070592132000928267800469350370608831850673358090889899430379000531214742384633783595205039612743296931457795627799232395187222934686533844448523164758684503549779005326005121689226609706067360599559883740995259762097906707985551902930689595011852367795635095589624047139743014967097310067983258734385282744143957688082421000851477229264404070503661062286506505268124550365914131304305374063773693693993365904198892406696508479238242914435351667974785154110664720773079609051287670684840626638017200640721620395659164818345860546470809915290718713219176459928995461790916130697874838895847673557203391065507856496795925685092882984027409782447701145645788143466913830516160963308146465127580163711400336591524020977685040911251577937928511619042002885855413597667954709553599693457253617351082578235935952029661152168686197147896642934435481209512968019750110925239390687464573004297012308045822098397822835747280867207043137924414419126870871476034436251261530378978695221078764078584932781372375074663034881705397573378488432634692755741383481175007130523393597010646653763592359716339966421761187251420708420116313171363154306194801564601038011307625720030953125605658743407486750436495635663467878352773018862751309577093408042040326004117313716684342223963707604269798524886507420274576585663104668848425298695865863306678003000624391105084354087436985154047304810261403177900033782110615515613621443302044374902855150174935015313585214874617553308745381687007605775074338135841245801442488323603894111499044251174428593485530773907941134948142581390687766454062834987089206699067613703831768943010041124278082186830323504743275092846527395327413564710154647406474792805896251259833320016026715379486395144893507398277674348275622146365738496627963171852407583778066806599297266080992917764290000519122144990401651475434935502371669784979103787206662355083253826983092013658959765834148882037264047593349743233210975858611021660751055851653869744313633875773945586672395327638471993966078337854863489703030346233731913843487001746159620730058805217456789042652309362001122234024637450135429669078721649147870136254841308651300556818948064108237395998562800568385572758834972389721852093908864684539336270052113899612162510746023130873400757528909895693563071815491434664367553522386041421386659397125973647091135641361158668489595366622090210238753863802937783861227994623805878673814033527758730771960936726412828734631909957268308004034432916711987636115645707450928090732292967344574947283738449196404167125110544308075696209113578519700289489485833987719570361950276297213504037192851568798761416689512168640589520883357341495617962211361727200021786752711615168461216028812406314026863297276251645676861054441209897275664418227302161926489791507267926678868994766267620329649916094703356125428741516876610763821990491663530041295944921672347042639472126230848206074031097675058727981319322114708847059696956006229440979939740908488968726824911142610813512694758434945259465295066954859081772716244805627621605874018267346353626383315091245096465097571601899094230903304411234256412367069546010967214679924787870480797626346148079530506311829562190824057055973085291446642628272346234009432062994539627487373341973095836329317431997778674815427398456836778721149004661693184745164800142976567419149968884321346713032413149791676607853917749103560661577410210152615141919594417515636817963794818320484228086591967513717460534265337519284541806214283315549915528749505016750873033268002056291889895653148622453149320575776370415057998338343104430341921476247454021899053575155720418595072437295904481071972296596909439383542085925826557402485498756735351092131129567606994193101114386209878760508883821119763833550699985926046167234341159795990092599909890993085908153879152131660635112782445748776108919138142965748195293268281531496532870504755399707465221481683710892821071240605946179148738172342734324226058808414987963776913288527631794313463347069483121025731626405985765620066237572329148511959165010994124860118834135861538492590006955447477128077457149240574440692492679365145821885888323356244023247167977679955156142718153513920664973486033867499165813637796182911963317961173770065126110935255123126537038932473928885475916138358634092975389121219888332019388933289030919165232592370729588759761456872498418736723815473570175343246826993014071746107851738937063556220755455402875713582734089895014119019830286815523458174089688469929335127664156429659014618582466764528509018942634935929626833124420427500009740666214530217421010580956182471572693921731067717837094806808642001169648613370897408159148225143142248651483280102328511829294928931054010913630175515774515264899248109339784181234540818280458551451870577545888234626400939814897549096214995961079832398757012630483080816936333628588328911038874226092558753013478794041130463979578806165199183933537228782395279147122191382800796185028763662354690382690150210276971229386748353837212369028074199418079609194944561102398675767968779457349602695088714280830199267426933584542495397229382853416084517607464885219706566693388846123837492492439237173459288982633557419099590482524603006571872823821258371200902285163432762622330479298369220565311506743234505055293174869836105478962416019488152878376045623143133281821901423247427041724467144472200338887024350337233536610814204414797557417929160469292094454700082286153304486697080775201614106767443223521095056557003671984922171613813931917430255059025261002616722114681838107154435360237539085629276998833763527991929644423806135148553386801848669698853378393807561070662900768028796709071367254489568349858000275336414094645706483338522066729502373111613212889338461128301931392816948576118014878269132288644990625636448656853340480402796394854747138896975057371046575110827226759132885411217260684739353718907788031378724689935287416912248657240960496069505498023837648936159683350875931992609693771101912633101865333885026825586014337917016051685293696123750612151318082700049857917886669005829740479680474821254250790990023476682182170994724570115272294761954144455740591270494620931430932666718450710406557969946217519090182308082988711358601706640981613291495139149378052044926184518329907581884740309200077755285567397985146163965981070537998749594156792716105525373194463915233849467249684351556279061028809543262435380011486307863998205893055747926550800208017550033190600855402427917416939969859201874512839158494623611220238885025561342443582882219660059355935707193385323347806401308951007013366939279864097649327788070624179813423796632162897422058923141591351445370760471986245977524328056643374398537388852846547982113254731138941311985755846278621373413662931344846870705197330139662783896396165275992109926192577859057696082016881169356503676125190096797399761121035713956191625028176442597136313477128673541785586072634811136975440746879504493307922280331631357968304674604747350625732525664201112269584056589955531332665848030769582224674294867350234885937374397334436468654482960891338577552179340192086398759317999867198617794894640088303663399805087675946019563440635475227328493388866468021254747475105886531173541977691850493084117323631740416030627834696708141841393158169286581962283618788003431767908528056964448514424473365674137756858185727642089671007964317554276646254986234540819910318942861282932540121974799010849176727476996865319934789441699935100539415597672272053417044981375092385570245658811981148417505972060097073483798109617808628056058684555801613518361440721209572665420647670340147825406898269508297079777211944698853423347977996915997244757880545396409027600290235843490393686261427806269424257445018031278870412566769310158466797573971697060002880753207776575112586665191457203411016696427607572960045417248043976790535132780491483819406995640989302640315282777688778711787254931227477254337025909073911471107433437456771253662589938045403112572930640495001083300660661022083906490204100576387482264158470847601221078018730457009765576819825664430503050491653062098916915603841421539042078939894482917706125874968374734060819961099151331747234386823457078971267836960019575896326960775287901570457400349330533421198809622998562169701602177500321437174762911506914576434072052940537966299711135303454857601850910876456069319810519190928736925564764764589041936052208626066494080594212763646304843825995865570782986669373551274445155913078243819799317951036483886560103427505859294028979287077720781053750357327769852159301843191930504090521366369119060167424213268129922704087497187599698012656978791942911309890772300881044922430797917085135193191604958488141421458778110883489950439985037090564084488344885778899650655217809148264557739048631708467145307941386761408542184603226276244231487746972629709591830466011381493509596203873645174834294300062602257009964816705314537254307443849322541053410487571783201652756244892187325428016808916278460181693189759039088348538006274340365861183567288111487136360030808975293503344736145886878107041503576253040548735730708707582714172701744240931249502956826638975999490188798651692887507196843165860706689658578384253305084793820879427428422833478134473094833747058768896244314286813930664974366286621695538509581570500940613394081092565244492544497995123745881684738071817208212103395828175061233477189531836468307418684415232503623012145698973789752861183572139477905994958690106377397643385067062665356209487542414240449506762632589689869918532552031131885126449588303045627789831795391434794593958844089047743874954084524688226005270026856438993994237812686527278044265166040970221650290468454791642939467500049143306767314822011643039897406671647836268378399541014613908406907088513070268877818631719158908825553386625291469964440884535834419062771257845168881623252158755802851485795243928110837688197035106233785113569280601192928277299883550175576936523449898382584930331228979734720118835164954347521928493094186321777193951859122671637415705872289191438844534357276946057610097722374476591449317015134217914764809802330127967710361578132704630864774222933382405937446524392125620035806441895814046518858426540318009762651079694446308764706748973859234032453372129535898282138785068180847747754316499949812693459421752359506163676763568923069107802147057887687351438125216091988972060726691038171180797891190539084338899166547896764089841061464847558856827111763608981145490393911514894070629095438322144489850251970257197431151074415817996570310468029562981517094456514652767000672755268953159826689597886098720899623087193654593716483084133492936707716802819387735977495886678740560608350793301165509717285801120658313999407282326504572197948347175619772591483602504220788003060411841773926290097525664199443126617706495958424581334277806673304675630615865971139023058225364785207482809880154967121597799807930245672124243854592743048883973919930593651789796542820345801642487294597207622778816298853653547465660378349361060496391267445454773703368966003167306006568914162049177355959728019707184366229614944441291196849779554734892197652989841065185754627593147455967927278169185124844368889365744110935057340611906071037391734762647290974276793807136751935193060846396665897244157868439009678056545279495107069999828614982656292716333884699926471198763625814599018551034246826332010000152468217262380483336222865211002656824301890461153738769545903299225274561788158447589034669107626886530766364252025699470717650373196656356637576414010715133076214187116079308829611076837160140212128343405558518960475748724516480637753224841569939299561233716627973964818567617437287046243216564783343119876415754524340786299438164585217433562051311031105984857130924859430788420978868395785619463251744182812244500619249530672832668325507553131706265148702362890341172950170307430023955371690188271083901906157172136774268283028382788676905152422623154952664430712119741123355420669399428672922645554575152082283141145927610560362944405951485662269013847068288026806630911866201238307601463047307915513059187151221332983213639656532246529032709733923313084439065291592764473348860851564409142342699174858275014307476616928917270632333329354555067288503447320297551353610419457788192619859357576891133212105015456437511714469235904831140851960653772558715398818405372833576482152069852591191873149286935162690914275862343635319886478309945818510666505384431531656742713221919142067108498286457910051988053441505021489176748461335090909159067553658431440057777598959613650070343997992011168814623331726518558178398317724742792578384437832387320878379075018862852360700986171101945552688311271384127371606713555358518397427822637689326027447670095676625374760940943919613170471629486887457738179550507337551617707374489759485049514084247331288634617470842931391341635585197305796381517117007388864564245544260418504266390657769860821935244948890899011080525522200654835646248958473345232509098899236275313157869754634259750887810800943756332488040704528737771543707760082774107200133213896403081857337651235427180570162087013181405931201151499135167447574971815552695244463020743881953316833849166249458515564915987642194234531013331485872272978966984121032549976129778253995225832265751666281646996128407943471618848355814295727273384867392154288428536650638535278382168812648180028162034501364170380268991745054128471822147385255922722232080270129091827701117819433487001185920780307118675940629864240495979503872359581998931115811439875174536468689080428974626946097315676893835484291798415065227836137581439065482011707127534537102581687410507033775451438949922189495703669306578282934525347232841416439734835940496523718449948924070778614282165148880999683196512612288482434586245270521707332203332305495700984186289273619905382934918385917726945487560368534244404413404828760727376710272333884369831287810316086917272511390309662255194229426088227786217367764913434168566729413596076326487576671350734239861827625089036746857740020097873073439096495404737930625010666253519022516143541150582327929024208064560970419795273903096542790390312519293067312591415628680024216472721119049844730721006275906895680401873675772922372385572179206505118880939684972148895038782869282944551442920114858684013635185990592134445249801787284305701998635529140711703327785942733910372808601918011174568983467384659376483427523761902654558465583544662090017542767598699647580135396692916328594640386426317419320344843549567133317169665496975452250161938835277337611294142217777658766171894582027690623478016099334909789313078360819062660819950600364045944561671927141935121202225797325937348132174130470776965833286106958642503874122224149434625368851324925519213137670018795779917009314171100724197553041940480811923307699556905035112688053914560665675078628789500165852010235298397940249223495808711182954718411415614804693563490989415118514385465358932565603186884523867619929477356355547768329128534653529976001803094520942873865104728425750077556206225845828571841584340481488397290752694113640669254951912084302557713744339307611524386192819230037732826310398441154390340646197453124347506568493198930168305055077852749943612184442142743088765396834081986222860789829194394461023500593813873076466049802311355351979346339848288236629339215698589010221766284895629411760873315341425327338690606737859710526000818273467281594316770554928351514899093252896926930435865399621351129005553537409784230619418079496919040010171493782197052913450281698301177495757191252999774717791890047195476143437056452969835548661744008827137832091085832769853382590113022151316227188844889275189752214689667441426914248232506713303206829713201462808057602238624836059616452861492800377474917882063329380959682448386264973330424311045448276431348779240662839874849218585870615202502991819713714402255434886119334230222541232666671208824510089807625520748925190785075203980467658182180780952529867561419802888523408336337111666808717530938864601234766523476703783221637382136970711402635518333860671717046308748205748345152632195125414203180703274575529665024989051696123126766482206891185840673117489798473721199696579413534047325902225062975773245045648000993718550998757587090046122639760247609602322021386148027361906647006618798156754667742781065920353727276280628624249681889580646842985837919960449568855271846088612091934761958424450160730959406201732079041191659197609137257692206199065217236600933412132681536414179684787592154594713232416394533518178264676347052053268588968970307137319113383061390648812533849421127668393785264219556569198152244367856358898340749400957876737434769222415640826956505115736101699615977858752778906847469107840254741095564673493591031914687149045849130986924764622858333106435227136918708414379626053377881930045465483820195805079636535414740015538462194106387845445735959340217424770466091011790596483313454160160469629764028664705223943714802027079050065348355533374091417496957038489698092591778967533880678573119472097373218126776200884041527682653283260775578103449110537432937300692466862852843672980280330524519810198752782461946202947173358622037581683439211997402801289214281268363229965146732785271947736808108644224858481375579739150647757092971018062649928570515674151798022746548701236225071373497211541279731918447470761493663452545908517031856183776487046533705991558295868715077679493456540506267667683081810724089525442849928437570887608586999477349167015351293115582391884511544322039795588148040270346928312762028763735342539769797776072696964737813393531893890493848000194237412148583224773459146075825895651161173387784712211756464889716910970972940840080409779793447350279918403941466886162300895782914427184345361769700280950718572629075741486802345779109529367152632860380714157692428702252443220936652245677537504305797804417999377317915539532652677338864101675002107557379097176157940254571753876239025365266981828906304081608177241782874351966051153103453562809504009977545609702703185402981389209929239863452482170199055438736429662882586324022874337000878538796334589308819097114519482992067263312601087670456444620137665968173840845750646994645659497871570524278732903888754446470893443908287845944403646861266575086397948098424219626539642375264371668985784314491518686632035697612923385456284403827004972453245354073046897115164960412482275295499223940455300466826529738116452204620726809424298122146410893833764214934244137892902021316142301133514833520014430390726116956641209603512140151529098672475904468997860083661165093059456038570715511144223211861597566033867504262790757063785818039897766088400917537680115334852732853322920138165662653276175159742271383592847985748608611849659300111283282449110299374919697873040873678461083140631019281804026747062926839762165416984144333952248763299835081855730081621121906126399814430988599736069251068217509149806906869558864861743223676266124456611054514892670617708699485067760240869704070264552178054494163234432637036636774798122868357206435930197205135513855818153857665821759766448920292546501426973786616329750586355183840628203004597825300467078293472208005448028981602002442529919259017284760394033786437682437112934746953202278337202770353976096731682071649491114507546899433480091258915129340516009890006764191008088377384190774050980333132142472207435239672455191648886010252098200426157324774757512243264710326987575606492637822083776671797499275634664012559830264542900619040845321346557320374693377926740926121519537212852035633308053564263705011695842318822526901086306062830835911393189569861241027052098742385425910135226023715055954117739994005104871817607984937357399551323295084110369730769880637556344685014759572340504160517032565509202629183260848286415482219357318011498200931235269129242055308451053659668937352266800878168712814550396681392917856461979428935561374990020960795109802241779498963342362448707634739882560171972878320077704658375686519826077898599404907828974890529244294137339148540727267105416912797970886279131651630924970108529902361153421379438939160077285021352522983506974407949687454416688001546061995549742597097451207965347370684417234582643706299470490980456395393182044306856002991869198450291979310386473229630116576360957690721599696968288609196833423930983651404088536948194638844590641795047115418830199505590409577737036099354133848619093988458915785180336110190706518461400521492639908727142268829102094434018720669302448844937392373185922707016475085847599188814237485488235263431152364109430074479704493331564880351949931856293024509772998425120183964978795518963598935757409039685397798326299235575539210708415177811742909712603621055582819963420837610216535706372076381009324257117599652807985216643320614301441742966776295432577315539071791083353505431720274234589436753436653634822231541297739149295397065146866127823214279267104805636933481387395443223194397591900669783646624974707338211269490670617081622285501937671289808821471800348225257550921835086797001455120330508117745081826071517550481990984383516595106114166287870112074831325939209665294253804310075307095572026892276360628602580926154797252257892200698128704323049930031310224674887601584515263008518735401965604062269477014293575731846924871932970212034704514192308959770023708321492439096008241405707917983310996711996586932979097389307785439492642517668606398655371694608265365077998834140605430037342865559528788318555361013689852842834178057234191149266346066483087867232201162052032905880051154236456722805129841039962884033625297512762018042257635565837937022387365898519632835078183712261063335983596774291383112715850731791471224466067544585461801020147440417389044171245855388270490052588434706615247842622361062011146096862832470716535494043487559326141593029029312342145442948164685926027588011691283896145166985503637019548740530855716762172204458748129437438137098140649594438228695104273953683541204854556995663966103070587285728741641705144071256007439086935058471244085117681454516615862933316085578066465060573148441612219526843132640484218891498367868120787079578739706874517841817207572948021333867654524247622311060348274928648058092467871417804411020113974481283642346642905215224538023500782572625550807966961368801185087243724628264866205462818753364692189939374608062211037630676775879038667658224903376103292833366421934139156654337545854577478294283389197302550242520991264669876000106676087793005569109535458506275084710061840309915149769911629279915695935108236690435076418368123403809525906892499896394129040798440679669316589336496985158950050456465351760681828702103579681311635532305264810246549617578532768160593405618505104560489303796668992565690348315943631785905074315757447958022748939348298321260038801516678220643939134831200274456743904514616251438347142502217760220907797012196536152686740760028784137377084161130068105354887909867238253328040879347404280490029379694818688400862938337490766242034703294463805626247542662126440378416917800954557366954582500497294083056511511833902940548172739068411589544248931073273818317109844806620998106585340994431796987514575112103456101457346285928536825511042814938379585576944480896868319910642111106732858093708511664168556831920452873905841522822421467483042301537669057191063137344370210632629528342638456735291990601106429163854668165685960948170113870333913237988622629042679035983727862462229784060493711368217081221917810198922240951096881968669255469361673244277823213716021790326458662911238988320248135080016248405955848008139094868026098361326180557848863053163583353636042217668028415909783660403399739815716718392335783574878238964130331397869337471417890184585705895757952525112465489128709597091823736745737113517346858693194184935015988577139927594304835723246040759048037636908289852333991172550284435688553705595972756125050735022819374364423295569633243670108407655149523857333608496650827241452283061294506709162972889694880197917693082867720769981061011393754856611337269548555270679609811823745319490432031593761873510624989923142386273273808450846629633545393613336113423922202099789723944380551543207106243736324022016280445935877189187449877428466999586011069276883735384641944813484086346640505004318143798703414593102107333897863600551496082949168482750160902557391387468820020114721223746509711790970414768765090958717984640625246414933083738535705604781135893261507651947486590668243772613910049567656598389385620765398433951585581876356507372166559620911915189491666467831288744876501084466417905237096733315382032052377105096323032980816436908256261180586618737943082882008089751390551127496741457852838936277586501933396757597072339465525472611851386740509193774305206517802769581267203929390726307799431196747977988680342251269505193552897690511016884894334089369710095566068506655688252456353951592467030758035296594341841392727947280551307128197110042113167797250307712007658223973173849431216967576374285394626556883225524077683201593231031601104392815738871215165972418006478953056931440742890235987957841472817622300901653849370341039448899897141229996070195899373552214364217764657233586584811432586885697807158395773443757251730656346229285617113629889866729843093350762358964161922842360594766614293133245387187094987213719277197217680825065872553148459054415974884562481763952950328432260854133848915646495095163079545247045999767657848580047136163609733193832252655898586905575613661990781945787208070783826198860929665528322092955945185980171884768894699244728686805416199089590857328830271110366507628866096208648644435176864510564251988589820689319898473806729437147625467893104595863914128724379578179876309931870546518157201337154467396201259057251865375640353172254197303063205705272441947243709439210076650735236499661454962455979771886901518086996787232902395179015446998114238158095144497239835753733282758160931885179465193125064471913621567473829547784819362916229846329394586842152346273406935501151879061243553563625622893689484729833761381975105517381022156983083309213416969754721991113183912196069983145691832226824785042252781942376205691466375875698506433997395054875781063732729225532509160148349916828284025085813344090110921457741899626123959450971071427795973326286839207833796284752388899853206779764354395578419086069630413721365798816776053068229060179617427310109082968979425955646884990232704588442325949928341830216362477137785015858558210662264053092459604861081907369541143050001583647152427421917235894151345243729216445354010520731780326918944986126772203285142490552702008926283557586866853383458746882534910225946582717291080560472800721861449796053964486759247047146151183183653223878100768152109915821813500152439659797883062227258538756031366135116787245901083649674575773270864811859806309386258065861691308266313677110479117966744148112093638486389438310964511985862570589218657745537851283490935950473912856849885537040061818220957237812396944049128840179975487851167090878461246326879616402282260915523709913067438753651813498591432223018525860435400778603480426643940285362800474763332391829782990271659891707188659888758778789421119030481255715406967764899133367893180405561460900194977986323216666636408531817247319759467653439210350314585257748062192975327217369203044371458386442898095576633039644170402382701077349572372480414907838344652318786480662023411693920251545139507707988816115434114691145834127459269618945011530222514860708176716335962499100054492673543750363939342723753721478835930100265277604647372411925839034431794259262671359443584434964983372796947048605927859348634120738172346175636999197605478462832258590226560537650833050265768321497589763849998231638953168597164454161188091245884813688550252253065283582364986668686490749162739803818644924243061007305350789494166611007486424845462036196143673951268995847724651345868046691202309378062571683372670015002992636259838769213856424399773209415462755653532458618045651309658981343947511431007955095756639661810327177773801771800090148034241451766159627951700838412458213864945609187367306926751846495716813480277060956879326457456901164283580895084820028233786526379945325900033277522731085946042961167727776953008334734203147082011084867873879405462284034430974514693204931149705499251179482055044644071186588997180360726973487167783860192677782336149881482748274642833349412975567136111920265742307227479044714225054410000491840414879983428171943194059123883618479159150667210457837668586857709088295957004539090851961602995653121397624053131397809805823218076332118048161927124626718499479786424410890811281929638702048266724509578116996068467229899827432880094078350941800499444509873272009689237376669356795667209087141110015680318564004807094978119366141642805283588237887459722158304506762753966106732484916149656550442874093796926571740537954826854161646382926903181435580912833397419535277481275683545469825267044046809137355205599049763645836124112500944500551758123896521612085423667045043173931920413888484646880668150558697970741915814101187672380164894099825325255079015192406314765266780629877505119461093463576211538382579041934066520424403200786452141077864785834067290268398606762287506286088315996408852978947515745444234978931251289105034550886270584348019915075214641397088157031613371471761546234461023932102521081438843222133464935567445716686625120116032617458946026792503773443620038112946171960800910514394320613041665380976174207385083271714993446336395579724638479522071515461507427684686391279397980988407109556345207905211590216104751986487338973035908149974527678239089816504858982278171250944165060741339809236092682784960428743075663003492940742785296999732022128700223891549807375550039159971048054620348770090536563655552124914054721165160601785680787166856925044691452953698255061430812190058445985375523641989602635607937560166872982831852287858211816198785597228896785466211323289970840194282057106128228837475381854968318853510237643483743605098671796120070365963292284543265217304332417311672930077252988313243463345716863047494653496031439039947980935013144442928203249272554682458112807899607695062404216974513572525616112969951316956314860366010311148564763339643208294344608073226597492458102553677326972356660995649831327384882271138799285226465855618675906471204004139447238774949463396987937749318942205482754421652077489237441028519014516385224622379033798409499918359688189298157484796407104854723862894805621753429822312740108753127999221861014872222586151598390732787208111168650300992943284447680693039962159898562963449981391704337598001397491888183696463329099148653648121353340106522131142149182826822826708476146696902633156612925121746893131676281135909771098294419510730052232124577726653494771001429769181235761008621790151085649387595968613351430012808711145449952070917301765708051985578296189841544265638673201168370969080157881084682611272264030162466959246845633589606616649043931698073792919243152993365064229702134405065347498864565186163235708604911640596856069377569317751319223924271956122023185684392723958487751096877099375930889079611860209579219703727096684519428796949764074553312182496838238801428181233699591866340763019529391670739049524496147492070537253552191936310149598467362733354522476185144613897140553091357119162736535864627466103507895728428250342654518276147720221125317246058085226651852723471111156818494526256380982334850064650647271844030051021114309978872109026442002210845676891045896857608350802362675079677310938945551577252892225972601844553723068045996994408801118658554947348243548885723962431979903773689911277696856896927655694963660490122501959959550393539368638131949120965046288535147621422319089700314620692378972887819705084934907589097557826882284912239553717605796499302535276327064436878626431297850859985099654868473354544745006439443713928840325103219076463599512070538659652001572493301944585799344423529560721820926549363404868940989632106933932978631845921321995852113523706814605157021953463052779135724615908309307175868518720607109375109325637154023504905051776491950335330338979902136185522318308693901921907810301664710154771548977163449708011162443151493337215319568217754509717667017663851198245487024945169995865845634156485028941293036593951338854376659982416754728079543114616419267036317675027175163534237215324077745077764137432868561567804179095565071490283561195367701050958332563747499422851976298263569533166314962886689937111768882980575039806807776514605428430445846597806030643033370958204813738041813269995798685007176822496143896531594058445316231165322634910657582321942723387069471621932957025260742153534985855707393480775700325084761618813763952388620527870118216345803195481159345407455507374907304433599598146328233282288780013591343494423290160439020925657690930985555655985949476675087042827037109640200927100626159708860685170476449235548346570984725503153605855534497407101592401153439817987534312575371397268824308564767331790799669276601108729752795453210111144415884117586124342922961757867362984838597166859907268257837788421735779330029777094947584303138969097973970992736602629388814625095874629028077200678106514717687676978878088769589449819218762196605514321607679765537781601641489353717241033008336436013821285206951214213568648776303049560459855773249435731803792497477763071689151929254299778702402518633021300347497778521665177301717439373433672085355167453434632587648365026702514782840857111094937270638513768142620468408007511174016857646853737073466039970313940428939583110942858262802397011900895499347188124138612796794554380000283614916145320271546842730695844863071393236228048628800349040422883570108493843234852796662741946368694648289658155046427509753690649824605538793677291511366798059730257537466649766080344223616483195958831332740971757319741715465068706058756884782953862360145202991008484329956935006554500887473355389500499478262977489441414509357395876015994963011888797819527713005023200844112340530313233189808446314681554180606084469682916438736530788841596402939093735006968387551164812983535981559476503921383865217439241306917954066888455835859859035315959396506427467975871757471684349069776554817924258302435549710954643446008420565415814844914646134986085878419294371237998238390582893493465169550105569873716232563370010703417072991220270999895265942682750625900039310164602197842134892303158398489809888479600441767178302469400817636283429684175141622442157117405263611173439846615879263137813475214289316672372164001993931693286187844705822181315038232607133334465207308803408153218309652313211112237550402097798203568801806044180334573820603453402904543238872212856190240867202518817764383110863667226002362301655714755022727113202935095160339381397425421067125418230111548617607581759986766645189195629872164790207716908990982832022064910878040737809734792210708356765006038220290261703057077486384362969250031988595389690810603288644690269844400582786151782284142061975409698457255243454813835569003567013561232841907877808216611189573759044254913603232258299472107835201003905915804195913392936803430552736518621902442155314040438280501489757853243471862935023739855585696432442992358449236705406303809504535571771246401361993110644037581622671909941441949730808733893769008652858649597214637230186734449218184910343241582666323195270119069578866990213419524945571135182848097887525385317195823410675446114134095504027290053987158035282375592850460800887205563039127483037505171556371786744083558759860654486486227511162950881339884463707305993388368794971822559250065100806619853623267477325617906257904165624385426676623368289281185906977005936267287087843958424566450198661277241523463756416075466161510287601839705337830767434943622660110981030329667836256232784588567770175926670482756475467293447853808769810326572606273965420365515033937550906583840294648690986764425527770700825361727003112855522789783255246772601042462087885581384147907047232833150005025833916345498743628604135624116867452689059403518651097654292611385892235797831772331379892786931791006880584986547839993802713937491339441866165103160633558968699831411665641572804763602416260510738360630134699219827400313531647805933015481510443805692200963007250927031219142327109520067265482143951388701021865651797632441601208257159830672009542503915984041960850803238294113342105805429050077606517510254796549103720817837385464475837903708170553052212566882213885712833700198433787988746800097479346017766658401911729199013845635528983893251475772855214475132028850820851874574267052869364598230670381740934598455819059431959296480131576881237721566547966071345996842729419859953264001730836412076101083675912214149774397096012739179147639637063852734841281467188715332619719074042517726904708058379947959961141670810601547677712305709835976053862371986488402699503910567938000883007755103262862633400690168775594353230444564493216289415356051520970672904042177612078371133453147825377398939520418445043132051081999278716381930833735867093501917813745409131989127113930999888032900624759139046138317112931931506515784808740040977310558767959172959073937602092228340963087057683514767622914195835112654976768688517498350483442121733035256518974491612808747344394644050339177629992886832527968751654013297872141677135601383237801483156710576561783555395866872064129108735367354503690041920495259101819849024973370554246577429866772311310448514889771783880776562508195513599215301302922538216689019281138266611515745845624306110169862610168482910231167135364823881179719170505034014903337971610201918861146285344652210063504565280525724944619862619918766417341340207151281462971486491055246106998457249065338135968116848982317390320549189771904963868428902630251784469926729347694264227006089170472430798754896744332285579681167134118817475203191682711425359980278806275924898345333397137284382807728342910830477748239592190308295383195313833666415308081793484518909133260671677573966193303462537493936161257096258369191358260749703828385445725924517623039662620447459833064790803358490885907134045917286173827240265862639344511297952776431436365512017854307654288281983256713125221884711159230096658343180144863032444952714187171043038558952156415774854569979371318343573481581847556430154056422903566614119817933185308684815468456177806891247188720550394087386974621598105819493364074371509827061778075534335128959433870056289501234446331881940290559398642563292645122685219815402893241860138477574986676333071322202053160867136736487607013899871553716559510475328940193384377479796479913150198808689905388168359177143544249343617490135714346605434445055216798808213877836261319602541847473439666808636608531773040181411464544523269016244293736420497903727023159330653536320500503819960142882861028469763477506622029991378457569228809291459250974242022692189912182113643704355266039888830745749501768111540344028825999291355082602893312984810416164181296506834730579759578491674771472717823531227166415717031198432953236995362536750501699982229485481498321534979157965095493192057737930194569048494414825219537727767608815644935707901055781111963898176118855365394917080289597513963999072137776187870935026454682631260313556123916304020468691023438824699553600741650427411382180229471158557245586669890405354691162482562487000201964275435272616918187254485954176148003930793623466779960607438165057327262193765326753921223210342989139293262614782591166802347004924265722069200835003951508668432705809041204433484361307247735284677565045709360519498461940279399626325322146717322655303964966138571206328866203144859819071507063854558404691521676956223577183584672581622594193589275268486154688950251333241606297494965301594885167004813114598199657135105812610219253764778269817881055954577059768042755221404425800369985582890092323493143036998161199905905988670049283004765590208168489743020987341635588080949999240120008882045043840936505296374319877049930648870933250036847339181919036322291523791490306052230131473132580858299306445391747945898550029686086768649769061766918807283655705553176568970061952454701736976827419480552157047351346365413111358620752142697220082766202448256706179560991941869345831939492642280057657971937198613514611371805941212045081472418344556221291947537513686550702290078892380509635416811344347481876229621349944225945221884046138707757114073109028125871870280509704630320032734387705211283298037339990398897267212850812385555715473914522509483945784601854690391549381525355501062587831249690446826899383396296406257361145506749733623936854269827353578758224465205982054728113059968565717656789013591103247777454948733130500142385732636398831917350581169885738079747081301285976044614656374362063066255632812876525055337723158687816316711181675666159101850307781905296855383753540172002558532754685155187106956282511878178359305757571386354603064881646402402359586377471152418545080980695445299323229619652211702579665562766726874391771291042726486255252765758198862279038340138792065914259018987906873061506387481570662828900092953115487901477524666631446774617278244579919547802834964396732929448654075144325363962793023331094960239280204631330905746574370229100835210150475616969723564130352272506092605417264787567950361988732365076517880264096583416325805414913910353927546742194184405531968565935738906631499417329325536628106087237344337919572527370569101660021008882968178231860435243157248403667772891242558981737676744044318183241523210768558522517319806400776498505858890439516378994810639886169150073905069925083877253219617382538790052771175730610381411068819831738852923803679781999868538922511190505902739913767422864900413804659833868019627988673597477987387974446381356471775321081112299463029594297693948631840754911282258889349055092713359140015965228872906463725729505878146448020525627857751532668928808767132709675165580604703566414428361725741280988921884320717621637833632226766874299639463824140866919866267165565362385990812249616564609527935472257438045587437647365416422650605395717037485324628638293757414262471616049071765437434693828500829622561832244821016751559572531948218493580434044404395484640933873925889994150718169378897206366900231464028255482475125780908200020935398425733597257755069612439492326965378054510840834247258834854944143337546741489492370169914624118237686693525262246176738079196331331299713965228586084114946094082327968643190718145405119929050895716956229562448831171443718687381301611372801205605688395621594306656981500091121119075064604746095132265299509949605052306162389203890006745262075740172829201466518823600649027628066040180846787801542979913017468638930858460276372329655872855356639435901854650949276581284617862672191171014272700035850268798893131352967678891932300771758666737092245604867302986161168150209977356002724507447555063059184829207273260095764037186782958946747841399813289788463086629613877719273947953808283404123011872570346902142063351541113929320576507961624888169532028234904104982799037944714929509193308426120572542750700085891042394285773204046881694971222797527629780482577036442241078292794505254731058120354008367205459302321102770536361100473649320285415035158261285224136504852197489943183418636694325346353019377848302105013814323748010745085069118387446517011461131254194809977733914696363861050019024519222176713030955748378424515206973320458129486927505713607698468081574986429406300857329799456702717227849120441069566631977814533454113534959085579737379343036983197244418670749123893605349393894370942512219319247404415791946575468297684531910288595093433298222544016263616844153119709537279241175430777925897012879638657980638754836508668875598202654514839527894007633689722702972049605587283453547708793507137101320414093030447570354937271907248409273342596602022458463692112804902166977985041938253581841349253650344755405655609352909819825659061776403790569780980979925621030224858285700615658062107642633329011800281339341960168488602639941776149431886021070655993109033533253723953382953229039225073656768171883152199476648266649142770350781714820164347596842113628802562533895582494019524499109070882450243197269223590567881805383679240901445811868309995865327337179538101819800657940147237988229670333855461346898541736775949027387260143418830432286976795303716214937694365296414408118339347016038021977599942104917737996009498111612255089610162860739782082454398427892229523508461799156113785674036718934785689077212011788995047563189699197014726248079194306825656216710824020344019222405153304759453944422784409538540059236680397643538942476793352203587165852163101240920036500512404581164958037817172491423471768473041380383721390921432750482117720472065604344322790274655031785258701088674159959268052284553020197104667605712868882265138410240519516432271568081092868801653158468924808533960657747914121935942151572883150127719581251352554797696708419316980684076013369330765326072890889238397375854099419389879692215195616022579223841965970736619054531951529334584533248010552870257254616242270263519516702916533609534837978826710575870707174554667145726200342147204373955594050766396664526596828316888169717738931278281380772041943308712628084769245274705257701225761461450209753416643313059979820498678609503409212105570991050106409979369160172034193206772020214647908095180257377179355053617777899556772536744118567350275697028497730869129825138820689130645473325109321734130309039909262355941259492453418737027376643404671513121313672336478739980766707172593254299940697917890029662910566459105805891059497516839020291276556916165497018729212678970496638174347139504260216973538331679952284676253359665988662554264110642480685993880423874914165813694388785084496691071460108380738206466029287910152686129337616033505629325958117328176621185740120387377429649319238541553400686154000340871847951558497383888362318273498469029344274265804391916965547864551681374420594704447200914994012313346784037160644183094396246152288727751682798259534342081099199334471445891579986236813013685194457684927219584055889584884156158862458087080683744081488772109005425868825026568557635687228194774979360394680994256359813970912877348580597866995131045307542423926969354997754643307036290086849937377307248945456409976421694826337190061486965122334167579900699075794400579085024712799132085635757858881293211585985975165173592563533417856713387446026163070630733902851679334300975588604916374518608658775441128956058855873933771619675535815966175534178102839510443386899669409139475113576116397585580198750709647544745935789331659873003567453852551613948432596655532721794329759478499074141349405138444244018150604786909126356480903496909998779462003429703991618861015755986777362263323946813385960984835495629342342906934263360937385729459407211231387123747805067700349975115232433620241537978127465393818684129614228961168765677469908230638908710053175237753510969387271632177713874289202323779833490525000273367154871524072893031457422239699942047932282107000124164511789291603209457712374899591304922770357659249448520984639422084127749761694769236414636171309163160226131136321589169849347698783289843231654429547496893992913884837484485181209435065743573049598560993251405353017111860508678091966093860287470168586288806295290433027102525323361838879110420843246446052399195210953104639779527928378338390129374527072295620154720561120493986386710691624149063335819671321240770626354880918218526884954467067152522855324903590494998300461591780575685842211684737034895582149406672305774259988235032654156799084737543095810194882027680420405792210718470514771924722345331321796878618920520639333526878732601779789482554751284990816501752606225240967320983489717474650510024793430030493422550954807445172061367999568032592236836732514028894628555624371020031256346265620129167718340772138328043463722870259847435921227367978743843860639084964529375174788855707469198344896464219456058782016599653928471295433035442596521121234563370724383946551120931115705254408899525442648824401039063231064797059266997621174702186946796633487120706378863365455142625402727129766758947086331796710461652304980632724499477795391480054183651682562800684178433503094049041075870736972184711255982985811949185396013116912556852800516889924535498645294311734448488756036335817527672277408765082547172230732160643102008036510484469062664806248349347249888499913499913560732491841868468485222022088547028206002370897841480412963735550475587495774192830130501997235172135031835931938782410418038143856786248608694350353785050408613777938717650156586515006115852212545893085880265083507145187722297110210814952184687814076785585761687395520047981789918088612116118192897842854488600805645495012474012953888231508507312888102444670724270075283275712157056451572961868943532386268565986786677584879159419930324524649586118200836210425049308312832432153154736575886471789669887664455456852701604624069741314246262945980504067794674320950408225027048427472027077354711024642932494786947629503607641054876627039179648016630108769962572409499416807631720642933933811749033933890468218578473279617743373962801014277852788501449428641555731383250373513059709985594076950690792613663206812051748222226485362451809835905404749833317102794740036202877270139922107149680599150194837174475277153420243389062104623739539216901830341445119504313177583487784200716888123034863669863322944456282063939193834575468756162163067488367049126684047823745473207797749211918066138857091952377782798675405829739058757661643017846444933204652876417527731604818228218589743955537405803318674603664071927130974756876931808966780929799797176769379977405097009093153717559807242895039730162318952865741071902680018231242065425926133799044019423743657587559847423851155716367623297608242577927752455255866853422149662343245230861812328264639389213892871956108110345613847444732496126507359528704354342631203566145430706723435253177041675760579599204663196306911759623618826604719473295003356674159841335474887593889011323708447406886853918042097875797751008474934672950188397631537727043794228756662729047596582280189935292563881959442550398415283945216066892349744797826766998330386927933250290221488873221133525965641805675615928251307433002073243663392797743506922074417091499696212121998869364029202503446074350289481053372195188028714027082764223374648414577879609913443103605043905806489971591693079670045650153867804372569353147728675487100760637359116971442743390103749619505326882100621505880607946640824822569379342582347452825893804374132560359114219213656833486386931488927556335022648090701632449647660355400344428283567748402823019972881163013058568911821870523454511909753881405286047826084357404843431682443252290341879915029992621219576052935362960167831469525524543502731149160031564051675014900134365054558926384424179126861384628485914922002168421056797228739811992805848248506795627902998751473724335101140786603893680405278366089227711782193058020482563267949938022954886057323201768657147989378501748221780453327710207646361353886850392502058322003380663366614505863604662652418489909533581786673866698533908130330518764530633454520625104403628431104724625968310751094321562922164158419792634042104962793192205233291316140220759447782929418481555904821705249576039862024249927964920443941966607819570382804177974784418823584970184024381690814952240390811082871624884126109473200812533545985081635028718167372259327998843100657682303665116034296227914830424840470805501816431601063713767206272578846797783525401910089042848559624863821848018686371191215249174068435822934434629391571104238943934730656602450681518444651314552498121535766430010502992396009633088999070224638026172789574940025363734291884851718794688262909782499900056048760711400223712803118529066391204509623807039019967816320796024734891281566682639163980228966212824353007879612256926016043562544046262346711096979282025622890942481629107656946815862896980662374681548057255308755840205333122146386364277656730922796703462424774043224771238790901425201908300360946589075975773049097656164914126189488309984216349936092264974531460585611721164533647192143954007893934931576132802189118019916891016251028028630225864073818193411150381486003953484741045084504576121711488885913485012874834815341514506739997974433832713620874651983634127395496443175556966381856166368066665323658636383853431559964945885052427881606592907497978859915834001326595331874460540176567690933471273265591418025389252400037587343225813279969591354603091183064629705536230838690281319445070823108631696287041776989187642589537580652150877602025633197122791422123934842629969202907499604463285491055905658422946204325212450710012495475497392531225415754731634994771018431715173074665656553819890438174503832921832528667508832065135891928767964677357505074289716383833063215718578820426510661758357971536935597339755819219412857970752107177168164633627936317620014572385090175670786054926651195126228109091440008318167835019422823205134543136102816955638620124895461235007462352251102374720448179953941117403755009681919726151694162617527936882351688554237204663536231014988355137713343127400629921680554721969353969584969767702153205531090968062121553656363508742835161975626649258462502895386928566927318121899340487691838808229972534500020573558947962309144281120540774327337523877685695222852414032539980294872978273401437988621636257974767707641142382172877735949557343497257792885970524838058549759142663515866081689926444806891784844019141658706523771724558770450195292649409893866524320836055252058222803218872773066975839097608985629732747036061723835025812937005777705896468350761367530641618578150565564480159008319491428721310107747563494971782351750008895945427434978980125938488227256851889395172496800563397753044340832953448578991287567227264389779978457862120239110173120001202685544853758344358006711201056384769659938320668406973387061853126967149189150433927221990184029543440399103790946482598282003817814823479147297058618223685343835880410005438299472977462495009724889301276280781371036167469664549799342963193064393011203894255801689285525050245270099463061516320182776805093777835507224515868067811776240261521887310746537085796784856238325143317113992965139482881780601690330323644346464839809554497560351525873169109887972563611411190458572828170101893604476682919571099295960887734639454348310040115395922975124912118478591802792313908724539424413860401298208665611192676260403651629724508770318039289793943357756645310172851388494116373696593381364870464994248854321579791429325521756315326851911400848234912107822616122613290854696819169454965953744496840933329676046001865456268505110868678972522681712300979375599135860004502389983133496159167389819412297372021081502167582049449101319530666734393186561875789322178351883943138502173170670645425493410861656344269933012820474240689085800416615670172260496954935646834109043400089898051562362574141270451758316613332888285682856134065287501883926783879835254527661633319183263092338079318423041830585244614271698118453857204090371857889770867433740254253233381504740211789902302484903443399720668377735214984817431429463079773442186882185997148246588548012723102708780543899128460950381380231191994684863901264492318987735404606013962643552621038457495118195754300863321578016436600849551248146631581102185681420070732708894869363411139134819984020710517905416250867513522841237896518573327661625490533526332579935739501498219864612702135173370492025485691842590244635881049111903670516434918257073644032854524295287774921707975330411175544455111003881066669660984655750694700248351733785745354501328576010086555184089710166446236513608373910982071818391456832649855525845313328029084008609733345746841025249491077501134817406559225963383727272067253374389948381864895188739407242877739120023039601107814064842196505032893815926693796827931373006014860342348274312090219751816118109490879844129308745412845340705631847606363706995427501065948856177483834713223553977048218756258947532067454940078405130537959530004399801634792420775393749262944664470209486851704380813852943393395873461144037478169415928418868821177588920538354222684526643064886438185858845155589570743248896971242919386204920339111958786814514277488219782244636730791019871977942194029344228252280854400768680454466823412147725539666245947875247010871192298568452732837059111825386426585188461957704465481266154243875122118735413462163982924725250539358354882400902796664324812888585886693951329779176558724065336917129738271839396995111331139662777697685174059189031315617993034640048044175148377015676923980829560392703085166872144480770619120691159436796821869396136372613454192686337421292543504290416384798673648425389176645314731742676248838414365715222673063684168107690041311783116487354190069654010535180868768141541444537694641578347870178028633367768725907588483669598317619945179875469310513140359294277082073225346500277609762696471370259334942480004204532667927990207525610054677708098412750639781664601368644431637232994199193006201024564998606581987820711043993131273036138292648348821379609973160420049740543730442085307847977622493838424002556504085728740501982426313859095348687253097592347021557003538481964245106899981599325366207801413347277272240678508344442675214462025656092532610609630816132685974747601564452468692196133701435139071743838781341943417085369423763886470769976650788887443351155385227383859950758200505127104157111328687873356932860320258454261408929855430187307448280259879710432997010324868927082181680332575071389020601845665279333010951810163462854326439960638049290246885762174601128152579017409974189645410449426259091316704184101036889545607658651894062233241270307034228298119611619403464600999592377916665147146050277912264644148688121480427659910726546990623575602732247198986103468544042811431243758314610823638097725747864274273010296999405549225952778975155939974093350633311776154042986709357766209583915937110760325806152540446858399658133921805033169973559671071553395881760238205703751284457644946600988814760792086738543240344973538865336691193749050021820671615559731302852982204517203923987937561246098703733887021757254797683111153788295729342862929370642643903354603915922128322986656710214578277856331478177758591165242881469863675431282159323168284669323947943443071293169419979638372861285021650075740814564083763786972314530934949780006917061095546756249744279450746202222478101036952702642909853488624329987781772686164798041282773184454090393467341067509282473884335266617871268102317796430238082779249117128428276369905257617784185345863329647755481310871550864406682825423288408243467290802112511961156837740648870758686040650861126694672921104178007648288056887841946015338655115022740286411590024730210183439579477407063209047127269231016583490146870827676379267730894029584330424275376762669201821004012055527578750944727525407154791795255066507784429805663092085971458962169779361667471861409853012432254702019984805930308947778522507713728478741163927315946425734046918647894219976719644671002430543178205170999726048987215863354418462654890669157484220179672492222558575241424553014287321339205300828456229693770615157017378966721776614663365649877860029961405212177439236740431233233051748621909609690115494164669833394416578998182443095215201025774726913653502251528579248465833958402086066858486734362695453085184869640655228241827568820785686196183621196729084076186177997249878117921884245617938713263783770491996703980742272380127874485530237805245283308630982113378690878710146799310011386967865724808805188544409048251136240418164286447916750162891453678890199758292577579543388781436816791835306998816913816149684080284875500485554818485864596232470163209918516873110085520089384755036899238158129309477858884778374637362006573385082420280101308082123991857914751304981392877032011592398600334347837717527750951560211721410295223492335360091896222929000132593856051342275157117718538544614150676118478882318024608586435269214171393435062402593959660701660796998014122957589414407666067604013497197299727792929764028124372866635833002577571108080734377676471381269693111411577151875753946679472174533016273942454673898416020469796389335782788697258838731390874854135841534805530390415570063026425670725784219826957253649375879559282046872376485045184358879282889183116567983694211226548378887546357972265314409943543613300774374998824852523741898026493376211880167396123731253193560440915694099574490261607029986270571055403761843546983121769884110293406846421564700084462243247158468319380804459540067763308511955188374005361253756590389135515153173049639995153985314870579057556954817107498788339102342739556781130498871397630522599424551512934804631153897913801354595278881431835787260769305444262486137476386936101304830290030871460518471567741698411660710789209553978901739620589018256162216972836508599387188230687703343895824451490871555546741315223474121684233768960455805968729007358267240942842956360582175284995362359520826492667715088854466467597527625674278369533294603482130610884183918502935289190655504293221840483281049350538438300165698219258044078868444509067354644294257129764894323691823570009587603667326821064607688540431761367941340510590498920588918977020387710139014067055866353670882369689240532048946996171526661347495895508176449799198115579800035680958528628725154722418674867432211000311526530386365447032807805007789690212388339392634079006985355619422319568311649309687468080619494697277096280284201888357337058465235892938759342190931639762189118200364783884719489023033331656362549245274541142659672841298509116631990923045038585057521292787850262304603332508508022024065968195408515592710095084445119813276902438297303528154636158881955595141369679123486184009104326239553634756153195999853152098612665095660607109258684247262119496852372561874733759652059624448789305711836173163310783272086016431428180932096136548408426221895556927953667666872904594792689486433266460058553309064629763182581393313468914215226384327574524837008051128917735490760888225204495689645007254967335436360407740879200525693923658737646727091176176020967947525974889143665473973292316704115668411885515360763852067964452525507880169970557391351413633522752910369656663455555327284611291035467622319969808528484933157637031903559289014148390725104192635367021006947763353834103039883826270635090997568046448478132467161512311953601826895174821567905025799232800529420925016011598463284777014547444720039781102561707039553385804811691566273423120742795867829317045509143197063867948773630456528364199820176798243449557535263165585467435831247087905747691679006884042815595579940063531016581254580297026304745184183545994060558825647994563004572111460280726215676839579960288581606451005113825779902078272763052655506620412268517668371020053687814916785515096515128568996125092448109270936479095130770695943912697409661036123803549417671429251814955180196002034245135207437614292770306684250475823735883117224046998677197917195791782674409540286763185657377027263092926361780301673359377044577309669935833052418441544349193356386302356660638338733165431313704897936604778510282351959522365348119718116567935264250618092845971640091104046484129519077691853143886980583182368188940745859121711695254262730792856442542790949057312028520207725758192020753589114683447999472004190546844351888361057889522800043690972761993039508804921575126233533879813627815646273878937179650540131177278801585765912309435665342120755855934964164306290434358817715412003833335383135437226776221097623425361915735260810494930434932650042106593589520004581795529755865212622795750343656529222489434277712647517650377988011444508999958399539384656124692743793047932090456739524654819220333134204012390508114555241500362757266108028630170076355842068033749430253766696366772993249509044152510174055103820099924868200527270667742224458398086817833994611610754463248752376776928529483786215383031653728326851892381687026003683963094313789494867903497831737872857955213298704304346012825209505583531063291817111873484480728438846126247136960617680731426836869341513669858997103144314671298957677021006492178462799279508305666458344266790489385154016775586401203116454739442061098181266265754922527270090710079899601486297099009798753808152808484224299562949217968625279586313492955373320840809304494129828804055003547130291125881753248196103556825233109697154071786896127899087073779549495830443240712493274425828527460846045137605634580031488662149486805483232199427210745881517280248570740370808419058498552113634421968035832564760211663355406209142388809572952112392856134863600580844536081677925624514631412839002802905779563318541206779029879443456619322465756922893044897051679149832378137690876507300099541516048338896986724081273353865947739929316760993253694646341647002143129408401090646684793187353370778043695549139167404290609745204574331694562390131437111918796463721090057167424008099404225203064713995214843469263157873812763141765792822799160722129970375304413250873610486802894415685947040488546910244173027813116156988971830389766745575884523575601950565845630012902509513868881792748033832170735882061286819235157628844113960845701057348399748636453884701644663603510259162878799395323296310581733293140117549063188294691007059968979661960502857002773534139030842080213197277310067276481341360736521824362886102210145447937770536459608774300010196248894495355976882970215365454800122987861711084311293972982420369413331459829464476594230616434874708511927529466540712838545455964254254360232679997371989802339107141277133550242868400595117737842053117070485507207493762715186347297702720408462796625150936898620867732152570675597751688855794759026950999787264992708954898683133224755437118555332098246051271703490794626548074191568021573828454743814459756938790014451866209063844020586664607340895794577506797839937604460735967964901740009998772352464826971586452873785063457426541350339482501025152306393353948239673146209718778664688614560700131895402830970068396336675361693798931601986558295258308285752716378143912793698173502901799301038257777156348535785124866111857517751310491107811700649111310158609555402905157499222807473807303821585476126777247807270292379935761329068509127356709784688471880590691886785956627477017648300698194201276085137583261321851050712909893137408436731215491996521478742096365336373681429155525730427327196756835367861001322130351162363198440803161076538638630030757651702344801783639212675108121496731763274626443112922794324851210780404734309102343487796173078942259973655701025115218715765763114366668032414823549060607012803885379945818006566126632095669495225220820776782743135642621210441037114795057482957649121097534576603491687155605279462053507888218145375860666855392034448381406823361870211679397886436384345519945626153493775053530470315448867145915442931675575567670363327099693997337811770707461993662538255726536913215415680176892793848760974366262404597712897868855849071134725366648350537664932003057570811442341605761495172233068680025546270287162729551706631472220831173210397163497859845944702870644527981709114924338903744585492371964916655908193423801036664240062399171918630010610191660224736063933795865979610010799249004562253937554690916897125405431951823732251623624205678847169268147330426033230704386919101267972850511696324112129723166251522051960843807664213332469555160255052288296183263033329880110489493294511106443605520486810659524441585910848824528777688217857445137509508690591381751799510066652179953482992590755520953219178024481335603112240802142725761554963873627649681913246495007513244277637995585906682208465097396399758728361828368862534310781479266431575002165102810017878049123846217422010391626320306239505160813237589748014874376583720406653695351224464543165350511840082727544874619613424251238905157316112424068644177961366086820078104663131968274311699787458520410086375062234566165977271657082062819387096652906036698521976461089050178035389152777764623274358857392646651419719128850682509301367011798315912605413676905597859235234994396936499854057245683168287312109001579633537733001787044663150342064296073359301392018082806800167892550762891073065583737771398632980097337571915734866758277032088392375066044022820024940203255320364641022788042065561756763062987238872680592684598887003980504488498197082087034207167751648510151393501663295310524553539814099285403293624551051824029766863432306091280048730635525485527226330811464287162415631905106337157787634230825441183258439781580812626445093259595456767695809792553741306754381135233773616624311262843823686268297015103831933241257705221712475678864516475700772044920670998097722519329958650900029549950764281756286817564871634320968460107817927870652911756969048766922679362239711308865400391398830577327341999660685938305699720954877999902797096120704459355860931434984880397452961878005131164839826550051701990682203238100162602973745495678571555094983848884959585995553267983490526186564726314490516259626851709377721585373690737583862808125517059602460243837500623307763551915003866348446943314190330966407477498366570542996338893614328036011321764703527928439021283719278637226298646360738592659038254560900382374458737663602068517921909018380919214622575953657944658222645555224753711323810424266299593266203170504181666910984201933559324305003596947374282274988819148811745236723163506494685198919704046590988605424788467464010561136986304075119353084738150891007157265551742505255134117256769634863803435515119249974811042033462225726054910822294288049195181505427851760445947126107124571844862966892016289903821148179175330120395476414930460303812133435939601933125804986121563422100393557545745980459450244626335307290755178350607901498681516130895154207018119128921532356720050118850022092131614925261621252010786042084441645298906390540694548492976604595565589543464095781421376865441456580672049524205987631477457092091789233733513928962218519046688190705933951439407638456598005515415117375009543239924448783410898423692034249225618994826133573107104458451393867056559614253714526554091000172531202397360591428153439066643045314406748696732915627916269820383418484934536351503210250210952140835697995231786163810504246505722622826108705153449587344981212852611487992336840684645585965614024588061163682256289310572974184193148588433000002024040751927937668939075336337225229927528851352709301245264518228765491199274230102669375484560050472584060588450201643523590046741152699373523715355849482286671775155961003514678126976515171647268184761280108557271172837566980215401419953935889763968202734553240355486270612424919152474962309745429364084713331629720000743463068651062332040753563769631423925954222018959426918387348507215321735292927186141876759957060764754116193693554737572516906965077421079390470806379345899628866373895040920233488109531586209232440600817437635986600619614647371533626744384518477765645873322314521494697803013683841465341939075186398429955010470288542398928367177804303741068067653251047559957076941460388191070701231024386642357106901866790161799295517862685798648796031873631827265245156315911417753185323535907909873469411596949942583259396522664653233873302986982974017204714114141883177577955144463278741403005138258779873582487682140780226056891898101020612827935768869379119165848354259961316583465405130886125943956740533480015554925177197974606312827860871467304093183410518068436889358465174436002448561269760438453714122467961735619506974522100272294705742293530961523313948290909157760996141124754349992044373396967291451243672325172141658638980393771157095838650060028893394984180356435045887171258850587214464835637925421870566276936787320829665846474738719124847898799464014659734381445898880854866240294354596574534183535713330304403423346645435313223700841558690101180636388836893111190546666461333110187846803438637401481821984336293830850614221813714273078990188026344451181483215308977899296474850307545701717355164117036749311441472635725685204297392581124305785771173048155807257424972183365049602355350899920443375878025804432167508435369671618002182299913279071173547426352850220491615521574679157803194956453248278631973698077675907095917534746994341660968867432208330083844010001043773201073041323484164495660294854495146006872066881965996211783540651919847778706858668808027836043032456221481332366546752678660387566093223909070225357084230226899160957961764154094451038198069200001188660611623324148394155489076927846470818119397766040930718864496380624958942925339990679901184097274436021187978622666217478810787864039851075906449507111706557466988745150322813589522040058583033242399539804024448704586206706328164268362730325024104539812504365051502316434281413028973681796232687756766663360356589388121347018389453483328871709553651529085003543380972882628204692677898972090772780475014559752283593452346317639532911704857213136553596278027881212793716258329162415703612104625001364819988198167170767019401994080732256709921774839329464712540741373794734704990199573545390330868352071939627544404794217667173574222852358285586747374710376874257302881641714271534140280250527856353199866649394984797010451435371386659891730778513666126844601551221099443337513709813662877943216512714809841533958697985268472029984168112081830832237369501489251569286368398479653424660934229228651265261259335357380696555179165840994970243711250636682293856534162488302788804912776935055513786915550783622404559431694577377966470974976476561239514822815534313262605709923645709451636226077664833766314952527740319424952287240400936075407665657879785447852096807844330274312985486807109681995542541057555053690985047316178164041555348394410616982338678445247560290402335137511049428921740208168329957807289710278904002824664795420201560452433762769333300831586240542809692110426201015945850511786517976065321706060004506077233844261395304456250553311644104513501012846294910713320764963204254050593196307407341624865212332460959540966786425585080285328715635473800403218898906384793085350190381357060920280075128951081535929716761649142969020750191446606126047296971422914079477502269316492843034530500531713219090327945757646687896472844388737783750989352814671261711205371076768061746470588218246857791789241680753057006802615188152565903644566270302489624255283727095805496264462295825865359476748287438727572277821970612720652076358063393635243822670698005177569655358525035981665627158741171457511868459700979670452227483060560018343269438658923313818927429877898862774079136211667333626501887171772513251762730503426967103411573298629301409106844607157353112088851838243522262600708702067271949128129150166717623803725067725407456658836759035112865906261608114048664754642461195904687847367282398621046703057323069103859052797988924974566329409221085494719807418928281172025824800637373707497489416561329793137174677483869564676582707364786565786149778692022323648367867771654745649489602543579501623069723659645041382825872467074371245744273081256260181111258889911896153645180624572206711165041821144095360177870865676648022096191425502458571699894372127871428507509058098407495020908975853546034372596113964882184610207939559402885136940066098857149627223972090443591051621490842713157446079300886898586371159253362860305417756308234383562385629408619504367786555067355847663118100794879306499793164632699438062077247873187615418713245406000370839253899628909844702958452580316109566512768446485452890196709583815039536287737758163838158332408989305347319667086671071169342217809200066475631352407284715161194553200013197986102167247467652251358758695342721995833464150725473016407397671080858088533567254845540936964105485921343587462637868054145905323075178552518717629145568748422301195841525699664143198151468387763321362783866285203493749264951794428696347554042021046590329155415724815415915584815730676867890094330397477825022857419976449280942528296252385376399154585248864064724547012647298344932304705287005773193407896420058864574907431921295402921568440958799082050100217256885803629082771479965269966615520915442837776478976752777736087298326452026386587467001244978077258352745105675569906176605069482949706502266436913108677284998863793674449165686005571061786713177424537416561237309011246579787060654747989161311022671557824331216288227551178892860172191148104357957060499858016137576029837994538456948965110389474259213392181279899848165549194297018445236161365022138417892942871188688092972145474479177105843883251525583832966334724026835018749463532178768994054774381259141871366683943088700608289992282937309569589464017508011036300226573682468956400487232227943928466038206361134952993026638971207417826516448110466052555075334758679969463696666060513804173358201209256961509723822666330485191930535867882111694764955526627356003810522607438732078477146297521962394388928291419551929598213926960510049044905943771690257349671095096928655523733704653376140409449149397059268190220138798818790683364589333294641844084364644003464809812655919397536699115156893313919076030866830466191242403983403758075609442770454939245869090397804747757592920802436118989888457876269849896379781046660499752316592166213786530715520607522483745083152144725249982429435611960232862456555737808834542793883711268049797320868040016846202294320206101882569072895189269821179602475911876110279907222279961448326879614324824756487382265480337363764038000059434848669497167559992593597670653992552237608017997604928120609886953230725342427985804258187117696100398276352820609242877183062558553358793319405948041904129137376682132366666783315568959920570355358657349922007010532455721077479423984736064717200427103528525956513884239009960389773665514569895128766193405747137037295951206135143274494110743950912771867944488381764787925330335205080021433386648335967863526627666849072787950131786056534308595661613964995459609245504226331051997100631621266256423137108873351781196134379885962353036986847591373332566251055422157345667522298633754602345895339139928842459193817562561523697642624529725495182646120211604920283204474786076165592184240705968421593875544010112985381387786783584202974282177082399779289243108014434642543105424318245647910407415662042629092547926093959664608342906646400837180626146396775801739611986345557508413364327998882138530208242812913329694606309966229172111461079254233878883330172381212019303747169706944282759599629755654980518849255752007866673390116838041010926903607423765782155438201998227897476509806758911878419700119243007127673021488224934022238224941954894486686296259257086622683963391196839574621490921065945397262617999870782434215809311039449412520172832865737280752588755970247329505809929833788695796579074644028150636069333878478502664982182667654637070153265522545138113364124750188117327469986523508544073456862587881801322784701094285355769702554877721468820651028384422485883950418430588486793219672159416203041861362118863986108239382818374451673350387573818424302173886075628579250748035685060339321173809756823567224474058076935811082094861417702653293384687084381257143921157122799371354786849915565410891921594293272579870465407354693567625098435716118517315030542577919721275017774222459370988921174649279079283025070376397663149022470412540544871565950432200732066759126565705052252112461773664120722046041925626727687265393114752767636585923835326574292435715740904290535919995986699020097247104650747354921944091092354253572606963267397947058852033426193141005938520785270375200132274290417233229583766767350149228686091600150984714368710364057685751211512376164391040054822106659476610535328416234030375254633575891592365400537268411778310156103516358488995130709358189873869687802373884378333665141921535599741281293063932123041145533099472943684805590693495788976109476511547783361341514542727690480269037399440645633163780817253004995037331189755156880097771607593315194901851385737562082595603429914386027583823764403862059944487768139321330187165450603139431112162434663898908427467993540729607871472607132520589476041169445814098461647345129226382294369278774101479047275137154529588117473480190292456783201851914884585894189392553004654467957529500408326866480118836932811804022988682887401805684469725505059147167862306836728800054323799042533786270655385420109623418474975227799622282829737732469031108497093287091187387164658040546123576473041277000819142729310979594627995615041281005741660612062043499102478826023392016719266322359680887279941505245851771844596142292946609305555219975955042930635192499944654444837467811649375406800428052948434223751979485628523651610493828744458497046007470596301093773622957667329040384809291578133685203473641445229447032742979852263611390129092278562346088733280641839136833256817833360351969780209545580757225843744274950706443497875685428599114075883055805984025872785467958955277817098830125689030143122705793302846846772488918451088603375323024393371491734192345718040825281762383068875835374681302839271579119580188924191429003079979694731628046954547760916421976929893470951379051409883638430350911056688095946843793767397894289229707343499497267282342472029148426199440392286073136300347163815135826315877700312291589426969804324972531736922870657116365529572398170785064690937694023538052704802897526579273677294753807828492280374654596709212620833938254821008746348705687912300567648744647422462736396903615835098142680506457477567912599796625002173560073960752958990396202875873618313989603983535680695007855641430801448977438104746403447259733484313942698788220844051339530156894737251903111658412887750795424477335049799566018179496169528729753776818333926175328368139106236869275244798617528539253896310684019948690517506696084173878820540431710813816110057049872998293249144006322553894294582330223066742849048326425612801946747865752938044278973365596709606256030968336677827458163543369081366388028314360289946344802253275229810983321939302598136525472935279142044892964705503218544886501387453526841276637433991683797642171270952016437322725798699588234504306640910927970664073224484379776104673908262644127223604958963461497820801542704483846819778450154041278386729839404654275623954670266753340046460299858716131830792912683000298422995631049208373066843028646852178853022909791275909382104302418104464694831326926776817328190757311509048134676655957041495067593273029848950115290371969199300862631256085935296665060829662988624325438522537766991932109404337956746440110605283477306250810198385695046065335439348534702893630081385640097317041107287661938122780502392806491568164068710681801287331864510873341315928570418784608897822984639946078285759594792406682040803043328363220785704517917847107879571030627321114504037056475348249814208058312847897521765107474141977953729287492121343617764989955709506551414772593627536037164744140978059230409517582364715216033177782210452694641935881140722371263488329494986502073438981958855347695161457495731562708562462080031840821503292482844813649552110411761904468639555343768415883743701417727648032987548516690921989125452882056382267966676156445329198961680707067462644798812988078532051282946502491903202723422340622428037579677252303300307117337779742079381271006858464730826718294004255889638816972154599623672456620554608953676604174376899469903517741369815103681292987130798537914225226439356620181443046788064270242493986705404007707023774248184701224979595897119432434913646213945760318028039176177938165218278629595850562526153193399175949737812218375441945073548739101429339940987644292548267190564179525016563990305499276590037717654537165679627188809897597354089736628439798551236883060613635992181576087693597102344840090526390631248501872129409860553646525173818430887210464384630182231576969628429956928615526660034314460965537115731526137590765340191361413898430885599060658108176377628867049440604172564518177036883678986075367421739432518212116651777187175031571639209070816745935670356840874412438499362419242035225009188753754965315128065065902222272134384935353300124098838539483560045760545027121587881136545377791225274793719774072812482320153327939596932325531380117197313940318614526628250020195638782286652342555034649016901940869961978255380208492849780175732223110872051958454161490996101693376060033956194499557720884163293455814732545290627438132477809941114348908664823578043433816049095432679122870965125989335242449772615638256194118753821204892576937032097495146000473331669732272297417895824368550532696792634823599458981521829236046983061733972384804665359642963599292936686652603480024532339781518622107727617226888367401743320549676637843969047875490535052174447010209339698970701844602000307095796839635244533575401196889918250842813779541799783005569271266498361748159971972870715698449296826311276980119334236533231230380619551776055771681614989115490670260570787532725573769258150603679690565787206849987118796789602323016967459551014412264722612508412576436408468520234794366837965925681130663865273868992939302163673015902899241109767368141029925912938348821446858864053737057321724132492486959371969222269762292170442661835680988211405978573960153225055632733397299381001586728218018879863279080375313156359282144834264891520790397235533164236152860405209055437063406516907340822177080432553689826461646836242192771372041763555217246887346398342601228907769119743943814882358103285386671531500044408639867953771380359839856152982443058645883967101758021721055755733142533173166517665786978863658240186448851074823605773574499109201832612193703287587112799601175236317027808216517807818218728798611250302543447425600755785038798048879190247575052452460360551879254856818807604054105076296590323805069699605428254781406705290334937809217369896983865290879592525754831162747052540778727406503290723045045412015046381047777458164366552903241828162399407192102582378151614242727875339352969952923875928412308640984451544071962888938139367202639468987383274976592822639608725979207620516231612936112557619585556669281530334667309480068443130118052641182114680641984117783573801580068189182178135460989312591479999313862190982259582273667475318896978435942836192801827368164446701604531187700577968185000451993425988781976573831703500216550138660518819901405539935226231963552408566707674350449814555352288149735190632084415830269678499608231545322858484220784738074206955734286607650323400549428806626054021055762749847983306903211918515959756534820699621766605498118331508736387012081914357645975270043900663384662206067037625991254456414733852760795808204350281763779941082760391117398307827141100854759162552557750639142375104669159903675204270515153092973748988198867702583422907100416383265219974223476999179016044452975552428390518659072385725330721369726820981699721270865290736882424141773675577828371098915933042075402814861440132985126954704808390593744572149970266242627669737299630914817014261266693630644515149966125081347857285047584871277339676462143750749743012358516352964772498094058350255105931394463290205341273105102126706228660248044468757330818964932693111383894105182848891461191361163727202522809578095712455819015689554757419962944250848145903591222543147619824855579254621198285063002478319786945841678687850766134657161549042946172499351290750281929128016197142610693886883665630919200154511973156717666106300749083973766367537095949795223107516998689039050782248312695373051288460609100722140758781777159801793854590542215768333124867858630333673613286121874203362485144624749530963545128756670811513460231218577255826291128579660099048760176509545868038231540375859202146087696705912126132988670042157464726642751891683729426535328755831205005968793888234008579158421473988718782308080422944582896714797733108569403923478415567913552396702356285467788540173274379548458027385112047654645670731567099627429432947070016682320354574959940556850303708951544813335711433866461346413325095953518968987468802479598930371145251063405378776958576567643442524619421271581305640141119156434469929294820811488985836755691378307784082875101621734369590664814716186264341399387357734823820152530829670484488518805141335354612523005433647901669196018672721586060168093295629886428856767723421835914912977093054349208284020324960066092591244149922577131872226948228429776228577546249320902748999139360489405601550642002105426885909420930445050224954392712620861205708797788880946187598535012036919360420994352163116854100027100346453994697468926651128672318946608020907635244841794902271700915802052155561310819370607946295474643566265224483481338793656936485267848608497914665670047663890695061186052880441921104378825103370848194731371072724706801421481995430633248514067851929592864869644297218279238115956935468794445887660454639214371240897875840630177785400358518616123020118728255488467161527170831456900420704900267098815177435834499138813241983891648089993835570945697523582565008503015210583113923250024167765578545329620468367447267308529163670675764903870233603213636730926453778331147133215071502756913399597851636360873714837304416569932517884725731576874922728758446318472527191267301360585458285909440669791469934390994573323852658573305719896013023492861554441456376046949268190913740429675020139863874849911966942507858031572780162367009712404055047793129001060748962613192421999935247899699028970023150520446174056965367782233303903300694409793995324395175373772175355564661347270172523144147528236332379501363036068589199727830560442313496213046659875770239922693507391815917767298047450512527125063516397146448862805791914535201065853970352801230640100530765874177947064137989440232101635749665541941983154505716612168155071209529483064737033733308922173909793948237545688106657498722593941877379616708244208165401309708031354547510109874264866759173818158598837275940038000598106588733558198375747376776483875601469428691206078427427172183741200510674490855342416788276124307852015313390399973450847692686605180238676487926898708992486303731960084409163464345184373733612011144682247757452923069179790194548296369106423129761617655734136207073681488034055260310448629815795441828393222309832471053046187657157343815665968702280392249569708745811706402296387138389509058860712923522047145181327969296529373724353135790530268744327485515722767390857105404900537572926277338764632487978791965909313324220347733809057929393138060769103698094419597240854488508783107886730463591560629981832034372054257814959708906846848137201132780083508993773956512962789187716561580486494425512350555607453640300439821089635335686540681548095824329604440025015550751603295006675472651460172340103713185372473981749803028968220387670648150855538539574514232944980380041573189418114480454351134785293653779003460704695100653795276369474707737119761651582211714858378687699815081913441533356803493250770453995847323602605998753598401364056854108230781821407313643027263021553604505214848487277325721426011020782306864422906315456427430945221993732677868746036937818287116607898362406908030275726462586123635084793219029213676076962133766598169505808191566330057563818462527071859952839570286652068548515714166944531242801390490643177213775783898035151684528847513606681284736951499344980215304675339266096203813304664502715127522448016823064462620189576013474361315776078067502612125461952379142699031463020770531216027510776829136181426951071321814797942555090146391408404130253522880910685351943028266611852673334968655815356781223523476318907276449065738132833379472010886766588064987644363933333394289254602490818670555267492004800745910412428656193607324009161501585380830598436160769929730271646313376999181977710612237426916475799860066035114356206135733260520210426189676443161274881053329920783036962411404016798028565645522154971758761530642742515361648645039011021413462113813453568626871942266027836064288738776014822412229489754520733688150400425543629556355821217302572462909979057464150867227240483205810236990062406124661765512386977442692625618672675800995177988725336882555030769879986286093507904491434796938264675232662226018289640910270914964972074566362959952810105197248698610380476813708630441970640687034375493029004061557056683329702019721236216301070782846621765894348799362600771918883548532634967922578806490412480074560436841810721134460586892907991294006666486655384279948414887227304765605241884887410884181292529307557102653621802777348283578947463406222503921091721629525480696713433501313382734468740479037553824873047821990278117112265900402715368825043907546221659028163613396384322952455768618769422697307352239014632664938175217515790942508528194460037187138469092508006669745364104151733125643983627188000769005158856077979433738432666051041950595328547527738777203956067325376052512068047695973815530943065890897657356292413468990122379901584069312011489653446205124888873914515010090108557496505670729038410280569492647804571423025916578352100820124707051142134229195131033525793220853227051271179009830129212643892409055261191726763109353066936050149839228131477985639205238287814222755961760526232956210420195116355059915074059363676392637096365798160599575014807784858703903333361033809457165441124647008578149546768850571271719400776909436735802529973482200408491860516653460224097835369847205332290478043016084157039265369989483156344181279559485332393051223794624365987235542614406018060650983252068374381289672396145711068931716772169941182474472927713624777750618970311553516366222822117322058082113178417534102150915456760721048168406036292396085651004846313923205532546958703130161836423998685946688156108545944737772712718510946430923651269683151960360081861506719226543218068108017850421610345111080165824413360756369124540296244903708689887187586962388859698326117249655686857431293084140426519983749767940439400981274752399542607021959060210219291281445167637864041471211762908263351164790129192487727784408242504806873528296189125761597200465902097456373428332829428696514268403041725332392897771647406036882641490498444633486174396566144845597454220553264183892500570786477209145075832243995848874987765585917019067391178847265611798942029524095236677667251349061660164417806698363496977922003781224735645738912384340798572656082135048038417953767051847317841800606283968484697194074637912866930809399365363053490388739690221045910103168442046931249994014327256520672273404680111395756318248137819495542815388044766036356133507101613003274973360953635547598475554071341920871901110312149535095571040863006860073565298111820870528683892188788107160526606391530016777371507257860873381710700702544773128746455216278506151039176156600156823027879128393591637999074240631525090130942616940813601775493818605472260533545360492037520056151995441846448520413512690624308885228338468508263367236938222391029969458018340721864097019658728011695303145199182391484007037236636884927058355767209605024417394722473523430552741203456174803468399339965092683147702222847654542019337253384592520528717992674446213113473990619760373696225703065905880417835216524185498236686089196711295955079668637162289147182497429991728467688127740203918222207063820850413941465815000723207003678227475718766335637518531369101654688473831999536442905851963725473834540416698641154121961865944861650864335435008753440796997423339082226733183257251318946361616915374931257505888509727380369567491825329925445411659338573278742519667753539442224429901198752385590231379100672318408213917935503110351257900329593792917045090761214157849080375646991662097233774406197967494538718521047144625737702463561000628595475036525636134939185992674278443955103562515615873475828913311340912255145609233900020904206520821484278689214823384315106769383777700023436863180197008769665951947056476779561202578718601631492649715385403949595127236201511912073719065363602941136251860291356679085217788930800703459225563133793613705152566004112846233054484508804943866289891760901035346126021262389848697576994167633624944066808943741584958993626356568555664920675302550317846669212806862690018342673099557560467044765079396384504207350117872925436417811183140069817585490749548895849481099216923053218751236136430734593940252479554057418414754128803066511974423824444920302815139458066260600822543207266495335872139074696970897763082615717690124995622637041781576465516141547838172997511222067544987120557043498116909155609693543185607837530661526595654140914143201574340694627726479766037752262991220014077458801182257444121319191860252846018635065926030155137464461951223055069312539372198683338180947439013844446191361399012189844331815968963901663203469121138564155873360315334416205421697770583853480947063121514105118277190341585910853076641016158960465492719147440185168978919695328183081306544849797953943014022222378960161217169712755674464646002406126971501059235145068603283268223689983553772976735703817946823862378915497769578067091181472184681706479359020026309443677327326689872019243789644114873818533900025634518503454751694581645872301431313067651502706697562908229565907326251027804264316042017003443460245856692053299742601471836160200513958435987060546804531365079669457712829104899777553813624981434584906121898344238969603069410975099191967218760366574096201821466735330794318780750800216790339486195498683814715827403923189927420447961508370257075319937085717890098011358055405118938928729898365252364127008484904173963105240702367394279989279212362180560238597555387903124276450534468769747691510910489337686634843422011960473956284839803950479123206396154928820193671314319159679878636081593953951914089225116145396189119156499988227923531834869155675678121136219316767017418817142882553927775846761462239022671114976777838527160911247278594329534811859598704121118867482196074846912156908044648057597057803383225672287394788219495850933161424570508909909180813657184425668908608664617877635317831904137239978485330338875040783032742866306867324514013908580647459481348899419461811521443200089188176647636340709291856408550446266792280474310811792974971514689101242188161658656011737834996147127690126776678399110077634724748073873928184976980328627980186470653950735385949831986681222948044817017485960592404058165974965505386024880346643600810564924683623791253097105420448329293541634739942305604069380174560397384706957551236695381009947002373312627007128337344134391566846452847302484676542981935425635030665670169432612883696562123871226561640761933540547696839112576120766723268445757946360770469389573422366685437867469709412289046708134698853468107666238826884189508812040075806641018590191053701344524279439487229742694164134410346480062624246405873636847580893142133141468408901680074358916664915398841249764481112402969111229777869093637530494668885976998008839385533332472502556294843888294756335325763232090600190694543804101021986475093174920172648870311682889507363222488224486861419302223783096095889046106725897145225491224446521592993333799671159882720985910269925773758813209689438344489607664383868633732676249022602997426671629960802835475671210416610097734965799433047371259399757558622657748032282685684798279247662204607294203081119048128604987317276055135503473297681874618993332588097679399417099522533494640824509976279683761866571862784753127190343819329470190091256135760207232513720309937439010060830682530105680967325902629961710701101937869223881559647223050098602512808250410551199145900532903830347028878654275122789878198358903911513437754176587346082782533442690207302410000290251364142519433740527180807090230995216980798905786373232147211380383296357605826839332575789152992118857451378792319462035761002918597173830400355927790633114132629681247541980356952000026776345611650395690847790259893661239786241434370434267190876063333987193068545610648864053069731848594691870171813145352833498216041587075386018369266068137472550699444307695799229828691685383705889917102587503783741094345503739391353441671826099042366892792047796519932234076280861127857438236041922574638038182823034242308695466774872731124385087661213566828653298389394128848014616421722434517552159413604737543413715922873290436450641392895600525011658114106018788995574066668962488952001815490621961170669785323097701911487523304901916909526297408495024347336955120757052047343700963160305114067093573430868915487339376466735222800123537890449220622435042675991934565606480253765528035573394052121431963738805471324294821973004937498427560375082170189821647449513222811434813137126138997678448918230995141579592426554730041562015067918974537696145381586275010369175060244468625884731052874689062079742242726370095001350939530764270515312048156670716955658290259908491642722705501305015581958802601591310599299734185322248540585288200190905000320087598822644458199197907460181037498169925755828101919912858568676672259400469096418708437843663991379561066104109288866479894671222571202802871447206406309937917627486686579466952613699714263299522090963667622670742941243497071976651916505791937826994733413200122819921815542824352476157809506998229483265311992204590162887240544485384304640310802804727579375231707314163455169127102524470872153594397449967917379879025988765426517949068142016179626955241466871534165408443522056574734108106669952370845628719241631034766332487443709458162319947917381769597662690947776646670253498480445510206967650181610249281093355722529952714866084707008738228064066963208351377338734933244774957376303921135288060500399957269304395046146095942246979535564139571645656173031171040509677322888705161170690039738268069215897372522649399661180885527705978532166776530988703217306174650306770813816717980624908977295613780347343678548882565310536319746431780161063772132710859003532104032409607541300343574027365715651226233572134385409009267033682385798131243355396075212780730305258135269096521914097844028247570650948158521679770974729010744338645577638396510059851888988082234646479948525812476820939272605906651648919016290429916311231147415234142157583133481894278481549582916633547544534415351576458033669099750240619037712141159942384606252926725709839329637535631940128650702616192937023629078424839627765102347364528026691247000665252963639006139995098884068497861727325066086347555694912755537491873120364406842782264646838575473513618444901556528250564171636087047743553190761621073517745759129693139181004480255198103857611508374707423454133817279528710083908410576581383851312101310677466046009812124840225704835571711674518848042432417609721116563276612971149663753644700259883746995728680141307333105087748784561928279797644146874380839832072024538825139066907531535882659762255281991259287393495792600179371554441968057119235630913320053038922252439599999669191352439418502087635269334314052749505707351965103451584551093137110016870011617115862180575752499625949380783314672113263570369726845189721067492170354026891051783844725344703972485503979799494812805512577141454639512767833169432537442306064058537620793185548298235877287608386747530392901129294242175685707926465626695218389146778119730354904468595814912919192739770547766977225042868493268960326279776552669077126343161090389476927956708600703238268246641317568763633666337183097184201622572021688805160262486085232816063686052156942782472866318674850936971667345513366994371451241789033627892877518151388307954957099823651133193827296529585672920406859631864060225030532479289349602244140194144536335876762593260846873581938503706855438288712361901521166976708164508913768721063373145339629753804372501403327900807525098730878563096190063981979118186697413655770867993131112478670674473518222119994620495045736682129906866308808885484283175593057666297787443975201475370345295679786060928385567983713462579039171516615066283357453713603077116278334228529793911294610666985270545560910661302851679897555341337819932172251163434750298793257370424529028893041827104742921403540185445400804649570348674424743903882841377914411335003103776728579099899532707135338660856645082545268340863012100365740433897837082067895261812566585958065564530043050551826876477013377635791415501032051992599526927994080685373563084448293134959688014778952850476783049113041190530383330757351045947691282632877583215807535669365445860237675335331840393886097444112556387873325245154428653894132881593176428599403877139280925009877014625558932137408633890909312491134771818876927276263404343154367468051697605104730063620495040401762153914230813010145340010599671141499863324810827703914372560714937034320801366359405869045232249850313264918400961932498639588864418945706679686250962105539602052201695017676031260076797920098265873183868653409206214082053386097596812295271555293677718113021617932048983883516117575540127609339259965681278387276528475075042344391428143216342832244642089995689682439645014666523371583839749738296808298343363467246115464969354305637251000355993981190927562400158874596233923975018841260581287175498759843606177761152000171566132905680915253599682742965559123843019647907836343992134706589998227280288304953663191914302437105169014576303540030536039681465300469570477829899038853499878956042108815771849483592086293497808942917888466980240414489326083323077684484284587127821316575476816293006370076520143886562191380951969844924871845036057593841550959669224626567181024810504475101468338881979322329311306151217955075202599288119481530711317564141034188730054649710878200001618000009164407266063149222682777262115548594813694410045915260046378432047175633649534412726608547885998075494176999331837496186341717703303343671002758542776074083083994414117696268521745238673267244132836893800673516014037363673577254426355653497278371292670242094912325080561829892703346783931608080746454104377826243165663575703835163204660778453968165365390284670152357960422362334216919340237153965231748275777253235614096967072194372397940448493656767432107308700923011929271236369396409766010895251491913863085449752328915424842651673325721408370990434221650148565776529427343925158528605986794786521375769105047936855504204333570150020957838300354487469373115972773388012869303955033514127144723630979558261344508215171049333071589713774504227921655581627293243320542006532091718345328790651554064718908028924021227077956121592148986254291279112219542916760147804389841712914232305832641844639474463766772971264419303453432487542297950661718997159420636928422942115946095564666335735170029843208855569641123176524428137319407383298669482753918613772987137837343016999737685224622513923612224744803353946465525147890626763130644705320324845318387364847473599645944005599086453107185279255128068229432743905710329714461211265081548112045741745223605675888658890843101042708717157327418212692342867381762302919487187904491363711784286812024616605002310837232265070615905876672891114402101643472039119877119498205519905353576779416192053784997889146423641141896449617845209701320014208592777267765666934408953586022817818879765246991795366068648524882841832615298784996640064496770896328883620030940007659089443088989591434368638754071638913285903976711713275346830707197239169290797286167481265186293973785658962125022267777847888547468520336888067385470255915431883186676472912058177256286612416725167052920436490183466320281769107311709859071880270582502679690177851574180020190028828627372191058380556518716512712429237844460745090789852484902312924802994093349699012475341454747010760472765910576165294377145319665043365950803794893221922965738320127811170056511718773109343816595395390791776082367510300454181396904270125435389801171251988055377062702077370359616487359477398969969787194231098486624295676793598310855958227050013278017415970607538713858179126535582883829910049659495411056055634704045422294908085817695239568370870925412435800004531170126099139593415385531754991259679424292799542452352038668348868362950054887127111933401574166480247997535581474069405425527785787925266060169325126984703136450742295234109349134829352257731257476730173255590657387513883567251148532694398168006832983420044831148464067296211068858086402358452197132004262164871264588449487225538576494925691794110801951357001032317074607032796778060400742196790649083923953773888278544860630157524200869372383109639161033129146282078671468865455693112130198808049889881788127843358435217551679132964709627570858959032462714927583753946504272169479556422300290046444827828636860771565371583320180270377685492997829880716431182703859961945688803076842728207493221882800161488799707566525634805167461295856920217929695008176286197519379780265393307350204898758461334533675767356499481006163338437213406561800663129563084907451673682446386018190431443026118515048188096210465458420015138993510836964168975741813180069819449160064832757188441377372149927141617121671935005036074233255734051888172309340970136978117705115189364804139824941899067699546981331117430900092805149440573945584696979749061034234846588202805050348664707601633241417556208726102250253106311591864213284587447586926117010756276952338341286459205890863832564014530120815493285635766779482989237489090203781016598155774183764052234736566462887479429444550269737162974669439541796273294047556627961211025384350448465205170322252045758029514811771486724119356889369211904483538057595690277554578508232499521738043393058243313254117019254638111895630934506861412724259545375801840890161647757090345100862800555435021817298395362531979080712874716563833085357843413662052213122365879616298974058529460801407634480767815109693384330255377082843013156137131167064929749364173205976902010471101757913470262040243646465991847796570726802962051140064062014414411521939105980106116732039725622914661290415488697976893912973933256241488289481822263955226393163697474318030682030137367583798725165590300421484446649285671309269063166606003005306836625825031715067975957298446311559553873002712296322161944727932567603072120125562730356569685859981853002524292769739477598255999305928827149410638442263774635376592498441269095742716722926873565068077521554485795081612934381093058942531241935859790604592623137873441222954296495280469102823380711228240602584576349872377649943225942942741933666912909245456200208995027202734357689620234139652630926710584228842594356799323981284812921038690615892366787021491136083603361507813613849176544473096756727426638101897409866112399687230821492637654481268668997066058632478125477334755480323616441596866305492917120288235715455804030567699089649391110513176055454058930381825994293066046460584865689362356839883956180963714059507351405595259779526920287439969385192203839513309524732379096028867204288373716639271408336632560787433784148912633259889194460278699106677769215585130029148078619325262797411971423534312199560633547648959690283028130513441986647234714863210053665139273729128152174667614268499024437409276974960066298544744824481873912080311475795889696204156435904626952371486515370280300188801915251339761025882174697419760494113607762851134806404969574224757574479061256354060086061403812207890176966910314095262890038852566618070069232925012605011740325390473073458107784439869386409362913763968167710079551250635888345351064885502896630548755092616959480399214389366808906816540700002080465432515352709301237658040808065802331618437018221675632795068080187685841035095085738723513385503665151431075206700288549985771868192235360334578287041574202424667967642816278266868416297939060408783942346147096098065229129876692830742932700324619519572774200953511058190345762416880254257637915482736359177478363978451919248306554889790309115331820510621736347773008467121237243185172478922919679119832374487926335338309303609875360514951573469177432962627373341281267605662390439991323240802011814802920919109371668513159119486902764482682255921545153612301729511442848808132529865737360733421349477239222881718287242681596305204030099864921189434121643740903799744310779858892396351873470040442547229191867436050668129102325181172428183672924223455828211080215174570071479799987362644153094721449804625052462104340653118712708893003394512215392697157393597895484983066063281974326361417213428603916004570693938949769803150361775047884407631733696065880026506225660072555390806281593770574187764110911090438321505454291713414843796970112417117791402678403072023970450256491184482829014194932196921724590205273271520054942713906981517549301423469103708807598488218459904576391793495684700768349418885913684944919690791324588064100079185010409213944904060389428801139709685871219004060416737843380329143737499539354281240165608134872055002652172163532027058845610907516729262550208153776972909812666861030651756796108794195192553217063983303945060719411794652731777300888355404638190461496494502769535982608929506959638906051818619433067330911943736892167682811698827931377108083987495911020597441977189918156361333897471667333856428177350250324433825215676237285815589064038266743678473525950827360355739889651127713365116703181498154467795950353128045146025614960458102551606002033817707734030703645105977644086811395991816518030617190144998045696420722938204509903096862963801096251070655270243631782181936363393928709905801131287882717984177801262873172838241384968987737083688519729933642483786472869403769425793532088368411847310473321987604949932074496295712913503709698836422293742427153686193285278150253677859455303903328003420116964411699275618388816604165933950992115956953932345084841484885455201077854960633990502930532384227660418556288784517715080114830288360141427551291518743552652645261171339674238429118124823247756193294328956514723935685105837276499715492824697864070697043023095879294943887480396915375620816038942879950078436670472099055808936145206190683093327876468962719875645029280131201672306444545630242205696060580162927096919314376949230383761530076650505590330580442475258160688927094866562446865244466632868989556543820371823735281700911405731361224917973773043338894542173526896658238193194409941445387070142163287352533853881016255617688645204138861478763326979871931369287445154782852256049311579377355690089545120670834030897370248025451488741460675003690866033956904976398106279408346909563423801721976027283385195712378913228111291300493146212000983720398553041382021782674466178315760713078924371676197452329169137811090907729617280982583943153159598950901492542404248773701079815954527633920929276952951708696419756820469411891407948121198481625455484380710624518502372009740280888765819472002471243446234662171678162222819957066187574578191003618582443217517110452436403396266940817684988350607951221296690727915019345280033378997183047511307871763695493682777805023462251238217447672242261074767070905732096581671035959443814701512298132316040734325662929381873142629196164883553796909804341737904678964188547039358367947182638981607129559760046906576648292208872400138004630277129154836699486485803043035409994438590934073416127168034461402537880618988725965588011448411293252732635927536461916800630201312192200912562809994935677232445976683214681051338340765055410491926198674144666400813445113688991862321149629013394708635285591589595477087207780490771485511349419235683348344030692491028616375422689466141876418999776950687739109859675282436847975130864601355200452948606511323868312391425374497487122117789042400518678390181706367368127464851570205113245746739649798970519131428428789747099086027307331688455512998427319805239757706524625232002811848286266529637467407615332658111451613808735628926515977931494525632548409312390616137331099482840044846091844990719140659549561483397771429669372460651529508999485126734982432006717081028563420052140421950306850193984498573808944163947254572891971697178804040080953569765269708298924444107390935639075602951574690753943953384152996669896054004365237690190366523472805185211769776038079672894245807826631283633974992428191768305260883029224696020853345433664955954324293643447971694590439517321241969790430119092559274739740694774840511647453201343737513497727676224632856848691181308059027261602645257140094065986407554347383876819085690344247280355176622721168779318396666607049029645747820183375760378717318178015884861569347229768183503857763778947723400828174353562668990723569986688991996357941580242033856334716921685119583527291136609617836939787769929654377734716426655133432008569409921916235754377363276761620372540223995873507795453769965287297495937493820521365782191162121903682124719375203355026427495118368719742639311451925534916626634267316444428171752158735834663263172798077970107716755927918496500358600133802934218558154006744149951004247439747650325563005544544342871127123692442687734294574900421873517923099482586605618539380392936952617076061813718140336828348153425969783929614033653957299903932525564498726479765649073201935749337621194916593367092576156021576963307206821797526075460133863887764669868398623298149907605537569456834486168527374998715343272515946721223323320569593266994529299081665848372745987980396333426853827023193014357232327831905367948746344510663206676022468339181496797185938084167520295274352319629237442188181813617020145786912924422882227026585816608458570464983474691711316552514534215329382153597894337543108761011317059642644984993211183884352952246177068828840504485327247023131094666006186019381711021184835443323747893415304024676336088771916696649051327275053813551313386851015161390244190767516801977318635318660023134397381562793781450185003055155155562604964348329791771317694557140392426824998906816178920118743500706474714721422016107369630686715963644042285827508672543281541536692489930414992685685256214380084832615634241136816425440963521664129320838836732167248206303585122424896467064818890013821603414635077611712249464998350235217425361407816417714874345679261456512677152717108437890882875883699026117354857380837461535055092102267595489996929243341770606689141865803843515782777845424553781682311940535860981009510022534884145727431717344507816054730267774543246592362307680249439970607185660685357946335838008728508496790909811484746223883618243373858927867925856944016551554565977312531497563660286189441293564771110080098269167998512795355764486026429646408127352414375193878269572122780054382173589349239575305717404028812190974738753956452284984498478472227020286357095500966644655279088372905127999699631082863275643347129692405582612974949360291698077848578062661240382195395858985898813087576049566845812247716700561116321445015877810373244220099002330572417363558161921039950221018592691325994980226247963882222485816100035935161404717381094051231728652029797442639351207123411279128339157297949410745875384162967859275363891206546611810257485484351879438517072828503564640729380694566449896593921590035070638153892158072011296040232513011975970190304937315576377348463996729820584483455858515934383011350537405498924583452838395320494793283722284726478022461850947819609165496107119784941504745309084259296813136159875839785999695729974073912700976822077148675164918278607231061833846209062431581160628463341595376956121110222692884557292985572129828667420573050603781233292719234311359233986325939075770177403402440761525375980514717944067370731023582790370052425238657863473637544760234877281590764793374830449817291106002459866090212242990255215690758813897469708684832155422302674065375953263477988623317635012085983329900465629849384601330475629355679216084758152394915859256507643132082012711813628550113123253670759518926077573441125669086961600551125863041212696946455530141799042753991185091237174900818532112265834342511361896540048281855551825742555087224857799809492993055172258950311902575686848400409049292762301918953669278267672500098166775832727783915973100446753041588384137348216242008161722885969811504500294410571147485205765917960786598513190729136476001751723171984979445315318622828888752887940184965080558925999276752603125075210359844248757263439761563155817148980338918392913541754830631399006519582901694641537856761695904658390317162727110077857321427974469047060875564631831507418381184290576548057948338523638632685027086799800795179890084655222699199158357313939340045551966181451624933242305222316741560235938996042589138462206542630321933347742563041466881662825134029380351328834851660068996313339400388333312884853632968621827782523357394207978605602576988507712157325848454859046478473145677835026631492187636676665507907348020281878245226518675333518595831957688933251662171633661113654308370536969394792815131731904881726985884241237930275863619745587568244735331328810607617595116035011530304957149711495731901645866681502372154301394069779604613555526347498268525381132522035116822510406278182612833769312170675145742695042803244735032217306653960993612856615164261030078912423338433765885596385174244226004538973642398233533985691070795707737778222417912079254578978746143244459982561962063824932007329163053913408326592322570522278104664186278588931665491009984536416268538717434204929891224978009894164300177893594309651603642646858465032152992102259367265100890803923340545117843490702041394546016586499182482521578121335713312131605867867863730859395406056175299263366782802340741900975293143699005689720587573502149957256885317076380825436126123822188816556124813370473649271307183290524682441302944583610447461223456422297933156419269455218876452673325721112395855165225866272178875154936080533205403270081910171211233375865565626316658088324455521563542602107403812226317712550221189321055302768107053804268583253088973199575461996750500168096082976195815359521755187878111934131129603916776840639711431206313603109154368360867535284719042219259588057582335430745378428272688554167793441255180253929995214807060439664596454266781947315115265518360533550847481097340851208078902579712948503512715290624813476862386869723254026571233935264721596942897897712024544138603983769080966841029561244272519120206537935670314037668827754725678855347656894403192231110045513565167777488620430106287864361544433470375536688176419020546344301530812095588317952510212397555703782130069625319451462862449528804721651636251284675639112410080492449367729056466647981154296019100217059491922490139879971733207857872175498239130919455720038548139610463625446393481450871102281644577181562735209656063457562397662856587791073975065114335533650311768196910984042439196285784605683822871117486681399258562333219310489066742771732701704039093270004962292794711424622023611442339979538385959323884550881362042281753898756490853025927887798358756194559490002365238152514028068098394363491103166433406259244697302262496719710059836636023537792581713883162072588061145906301827429840474639592636999511425740645249587670049911125695395944849695436619303269034156906656214045934582685370552333951615366547324288437458165365967696334667427587745691617664873432372675876296404953469519505642932495766462656883486299866188529298347080108607513631953347709685640142380130785419240204366894538869668079630805510446244002729056556998538519155518861697000072204184819811697879484749248571234196199048758494995892781313987898107210218925982239262072910566810542776140554378676601996297740882819059504177024071576747738914563664058568848171564547802766125341177237161112041636424454759571344973674642603019179111308788837977707604793175128524322042844517493508587167926067405635519929308719715705861421681572517497653737770267188214275431731512544784863939965603213707551645302359865151259075184988958998132414370354536392326911292335177245739335518758161866263174993480126645577222987008142035460440410698948589181699099797022539241812953595833417012443377285524826103515821759540997624547502043848315116038156731968980128388098158532375255224927895127556241033155863054864600082090072773527835931899795637650864569323677052525823528997588106305433354189833801446663112631474371935967867748150826593300421765321509783708843371871234575017352173858274559063519218711498799571765089092299468708906359413831614386578888815180840552058727040952987537302510138426687493488185726420476204644835287666481652320705353083046586603374314782548694966308440388340207624457543539560328288364111398224948176875255515829141714876792263397534603666750137661814858028327147145900850759194640455450723096759804399174025519991834803455425949787119571901007247615462753139537888264067404001452426010701979985228958061269746651775256030326284255174152507336468150509786951548508155064564215420630663975600945771133622739602234987562644311241959200563252184493384301791089501116270104363295477452150004580341254618455635163719454730892867237517309152067242451465616015630913700257082808252777376791171864441993278504429822531700263374641278849261511340941168599347380180909435063956235940614152284610270388458950263591541913072452948352243938919664389035332944522691643640407127454843858540989495580096359934703587514061115450345097347334416413171683488600213624184708792438557521186626703852918571432888363684903623731214694843043607834628176413498966661003798360916463229949927886989447712934279179261049990421292986534427984734788624146935109005292563869240103690620448026007934894016340810994672064548290986625830545491687648950368561109261914687722155626931285419639358346047263057825903333761293924600354412639007730119335332953581783419797551547825512575294375017350411911222546286481109900678957651348948819112557429222459124691136343664643183302495853510281351682374745868611143845919499298118032256432799951038316471427472879082655431387465701106457357169210449343205202545409124189568174513188666935231123518594467733632507638565066906377329746890987569796557182735451209677649796579154752541010300889420692957496370917881229665130894469014537742537530183927442657737222990112777471938437656331018835575704258221690256859667812015752241562729569942307185272984798464101811929946594816980160926523486914764720674095005096004340729645272602338444568266415031270053479933969280329213561967543891576447930428275964913698770390183549617332345192250959224687029620646049757767155586447197007340813544811129615747000859561292184838589619871624515866084170430858557985408212164656638250634589086915610547307678567199599318723574833654457674733379081148052611233553933915062932510648571410712844344895878227813586842941890772111761856986672184019149690277016536560768041252167242623316914372659471255602372225980314842555248857442460986398421549297231424636805992614175915323981901125375123635087004162478756838077993815628099102451048643735517291277838028687820968483996381687213449698682435557216301959074208360892345199226810301776252888818133604457415174983963812257263005092403674104473812686351740324700714187461910873564919231221572822436719868597787759112900865297450512928844079589857645601883358701553509121914116816383097887717373854530841434878743097331190098704351942326172037503403922421275110361027482230102725513008250105349439701818837960617588973056294075798011794270812089323987385767432069503499132972575544630501555677511798352931647122877862675113848611102912022691861718807381476193481076268222860789227520441579432623324044255825491457718521195372570221666858563241136832431241452027041692696349231695686503858233816894960112456520280202530083333714989590297765764238630087432930052630858185938825895585779889405820266300057727142777663731928194488398665050745357794355773753595548661642812123098230009667095315325967160142759803176180170941312878287051392769508857216844844885111301059891386338779117539214719090321379492627110371961333662479507966465842347712758857636993092277908203543783125774616833907032230902843742712886955162020869199852810897958588586800566498377926684845550314702271590109468759390506121062752416782824959396723154841982322392951080489005801454376861723535085881290401562079320344690690450808433424634803435837172765909636916357002851831728281469610415202483676487978233988694638516392903795613665731772998709429525357493744962725526601244183852677180290801476126631110134385957924444716718492569226222970234225646766155800672684288015600406251247540095862281002388153335285561146670226793173750903476326868442755614521378322651781387742263602592708671264429844887801629096150897843470239823871054089221137981167985672030939009832477964452076976233463394202201663892193268103190747112040677990099932753424280228627791690604783742553641190748630324580603763927629865190382817827908150247434641813022972039259483808690552289681472154876030168624748743035821752892527440043743360021697099995462844678694495385284063588497453466866316691954242816288378685523226091737212028098814853442384699724652002041848361975338847132529439624918626382033321729909804160734348959285978042582119915359089892970903019987110307920670664445316485938092343673477450211884741378973299305925231747295744703020483336497213093509254526079286390622009570044311100334601885993214911797553223021385911475571754558133428792181972637019990147371828464356603450861478258921464661258465631607263729281233629028572569171507286670199547036429755109794236630818860089277664706219211877042719877589811099326600499938490994457430342160993644625045574088783481702101454507732925023142135719662138562353410072994852981067181475847380581906007691908540542253212118649691239835854613903777888982590209075830260584992591229225441807541812599857645950357334339079317180748500344448040288577361396205622760017468419773025474798933453463226046303738835006306986537033617438818383360410993755715645559477883507274677328447161544408116692853048440917418644705167351626475382506218869683831833181484154508105187856800601870523055478310991940728338888430017941747661995534501780747636553790636229673922608738410107737799040907954173642416942567247963015836264979147069848917874072255737985543864181488262230538544189520486569861207911682710358615978419824875415837330878205537295871355204937721189932946778869777210555742970982462078972379115419778658726577628105283066792553931696506012917856796597489406714114927737458052747831016475391488142040060278234133454528107934797745910078222330883712044322455794015750053986229383199315730123171557984702901966149616882394057877741392816071080907109371191318291324371045380612257203419589311944598272500875120550755452732054309304462948128230297520217316415043564195811326115487874496283736017897231553212956017244788461457719565747573571281904063301616540240206297143517924705140658822651505733275827891260895154412784172190067466007267431577427860196861540811385114063162664285887311962998899309542682147214041944965889208692480286201918227773149252694762475925216042302909934768147325848094529941230503778635005807819069313134761259278439833277975701775536817812351347383468633464342489593295475974131950963142702791463829017636228456341498274174453715720054993705986677128666193608348543899023787612846442730249401919370032969738401583905985980812325614385170891766795319235625631538545723218538185449886370064096323038984070278397490522494532690164891568633799541440824150835599303577117339625411266888865850435124337156488502961242787907883343742427108960985274470278849507067534175025205355309250184128348273714320727385202062264730157590302998367722247000145396914726060553047899776557579745353786464922332903541914902805661967004789793757070368823934582840705903451692414097082384304039801017847931677269737178312161559317684590670532741395010343421737650662979544182035640143526988618543466311668037154903538862349995437286618790185189333571337610012110154188534808734628440426915390865202454190759420920249627148712414335399745363144111986662895116180145774618416002654155457058518100985566851541972440622158573279429991610934345775501316780088922323178003267829361776708304140631034205241901157462832622376432364880181143731924907393166159476420255666003129409080012479310157263659073129020761432762181567737209237610483228968471257002578464881420943777543705089079418124977453346453172128071414926917336190848143852142483169928722832811383385359848684773237010143000764340446944080154411237798530544934642143517014641109552130696620136902908780983508389238459895808333862444014294560112475345701708190891778295774170397417173812231270605226519925417866875835837748873177173368071212360267813262146006867738648860487532577293809944108087518475480177351207550197013948607086119604044048953334845625233253242840786624577258776545076983158173346758672567640536985482571254658202779818462991679549495699644832852065558813608026180205905840186447553732893915805519914815330461755397629266741425674111701495466449313100984262125687519082252906100226206583174723956112111903388842940881848530281751221480897804265235700878460417149125694550879609999222775744140906604636117458764807337630679619261905141769569978170636390269860549291510946784759814986575100737466047122973811967127425271466719536222388102245849563533282934229134211027785033694927252089209919138767756986869712945199941953113246171251326732417834493974601212893687804878728665737516904177624620489015493064640141919790778124978893397437443766923917041499900364855697718677443090542350029482200387996734223232252775710446296431884414716241695110745422134498239162266817822904157526089138927641343271094953584791996902208966727389220226997299269163509035031871123787424095474997579395904704197125349049188512265606511602787197971841062114231994491965758021631776841200931423068246969019745007625330181098958887904217685589415007560065663883733776658823929603047862375979191152491222368301128678434670092471067193286233396210397975850403205509782960474920722716405379507395920172117317539065458724716136445186574917046732489406264618996307778875507040102528887521983959365481736307000189252539908423339776837166066508165314910741313550679410717626965992896484544999324623297584922603270414985883779047122528350954479728542311172092826788047201003059666798091293333181031614856624458546000979862231257269311171253698383767766115808599636839167288300182334952034608664781408510385720457301140180072285938316064176484022659733996033868354108541795728169978562305160696892591982119645930379552590030171356881766720449585839053728506074664503778575064112323271657046020658372762468717008427599437941669483202011776810452870684323211911705159880220468972251831558367369858179509114330737810204914955014568908388247403131245659364102599662011715513585519079358162921450638950378274369740243056588792097472169519395461042132345205927196169528089050849728718762405757671477628560110727322504546139090028099708362860413679038638062107589419395142126038640053979798413400588650587867681821055671132200999567959650605996179729436138872761716103616333774867179409196787967360834929931027715750759323256738255767455589378209307011739592075231385500785578577764986471470562584690798284926115067664022486598110898835161104887263815131469424497554597557010363479094180107406866447013302796014746889533125568041099020598820777939748192842176769161381330353266055207049900785945345515538310659050680178629076844578227745975166555855106579312104531290382609005746848835558750811717517944776829551681547944055556528106706136378045717097750728285653574131157773943911739139654865255605221813401970818255718674041236873539486257545894628112429098021687966363080573342277374058951641927408477509436752085346604903059935430364094038289606876471015148566660205357082229124979435446183561590460607981409658658607834598957183450641282757262536213760028097802914315358392710437517154532575137454456982090938676667264259662639065539947237037861595219302231986358145724300468806049787042832305641027349754065797268313928789661474705433733061816766840418274952049510298991409908462846285901854810708008826731282459816749154405148818887100278134528195485440466997693194020670790483617100504145136184782683549476041523259017347454398169286009052874208040782242087914664293399949757995437791345134274865569388863825150294965044027828155724661000125010973313004031737559855903522332183510060966765955617401368117737632254677539946147112409948923301970850135229826891810006246688300671997158182428946008177720449384478030318788503807200362619208072524653893134132020904698117744686013577183600761270747513830668038190154481421840344017068694320801939856118344987370659870355077863530393787473079497355727634913507806678681566476842339382267209821112309898686491613026274017213928596512873440027495685821888960099831758771071677677676100221931007832759646629602782738878238031576921275596399659962198758730924026040605486732113446849651849966469769289784101791006942201590008468299629259956386177678911024305650684302570457833502515694665928826682705628069684779694307161394359851076064001534873142737978682413101126691481787592159402815730723296180386144249495765928041444604003061107441971376613182067463336409743217109564660939234163999195876585852040716656247415190785743130352298689719152586451049096568099204828917747702286026323100039912076022821300140468658492653485797262942010500135898939451734444707262458292551578269671334997843871929769984061216082717863305913785910854073000720462353923095235182466671362072604200982904327433402215326704279263627469895487835428925255035482746889200664774530088228727822077586919626161161323234917171490220504352212671178400347994927067389927375135908947513410446893207605941440016924627198578666601108359308655960361934317128803939852807366218542015479070554465856015896200706064777287274055680250069130258430636545002468661962830151005267559195613197652614878141900727086961153482876335638697208748656979345215903041901742164434613584250089915352000417408751212483077698115219832764012094548682500404348912839422005051138210169227140049369019449418049274004652727802538475889836524450894770819830712603472581777123416589573440235425293927566450443051128825757654397462856798611469322666197744921292918600978379533845929986631662110207211053392268417999388337790115633103755978499713986762766906594966153568827654929211724223448417185485997778191330629170396501885080400946288471273646054154414313851552223056375392370848549602427362476457790626269423722835326177439058999941612300155551099951777088602453945718471834887823435191625614114035019198809386089369841323908347346437411115202335887129635011291728717307734300234934771750249136256618716964421109952871914741344113723775349729474554755390354027927061680450008223580368150710018801289014209246087151161641203866069338339179010007502128869122011889001462960967082378937795861788605565656786583528358651579763875566487521791115650069644354685395037685509293472807790178059472284931445333573722400800117109822318020305227597606016323269177780183852762464216069220786861055340501653622246689825627588779982421607008891035351856225921723603489463556588207220716445327922078153878373732299262460128900874394613622319746765993499680672765282963489517581886763223552602050997760094966065509998941277205606493920372645998704361865937008497660965814629322009281380018408513910064842265347819569958695087004343819669423764976679101492629160407621592176984892176878466467444359181573606682752152421118210504335210267545880686766745570365440578944731116023273891455804615340482740546415734194645068680704180478047580614704871432706198968959011585980983860286017831815765205563539617058011180077732118700124201191640772084645101833908595576937507270214905199912171585306232171552997286935392999961995559135297176924795673225105326897633061794522049089790891105177258842776964571008101980623834781297519427571234591669226366549928199927607740375438850483719435908418969753260138558222603656187718103011486185153483963879694097675050417533902837870665266394029327502390344478086453241895992775681948682482880385266555578633339713122924754012405428907217900642100119101289272015195341704780381390380374201162071730504765872107279670834847027268245771872950092553386971071047958505469703122751810063266516890713065892246628750501665479837073884349989370864134963503488156835579586075486866125971733072893687633302672623420666207242114376061598892793335954035446759780957301852436956538590638700311115666267378222893572777911907751995116444003795499612995114371795638442652215901188784673440284279639441060558481234821460297846621699229283188116175058450529539839688839593508502972434178810187335491131555923490807136676671607615974074734937843568518374359516469888427483094525822038445421079594010680846371811516211452031022687883328034353566713809857974584100934355820751496829339319176865120880620617251021525612297126872139322521437318753836436086766766456791969126845787018017125853031999822511209859535515986220414991792221204774113052104557027981782365341416313161158068759597515774999269309259565098748223352524582671823090782235618657565870487868336287878246786072165697605666922836568184325752475607832519685389480361767079208615001345075839787788481794154815789214684822679983545057419005505649660993337711596048437285579984326738868842869960190120333163968297745129575287279312997645294128329868770304571373641566651888237907127873741272129929284092113866888506028295794861850970846594421763213975702795548916092690868471311305768863752682622775366202320276722043368446801475255872949681417813897982839770481431733179189093289984637581295414675115449447110873758651757099394457095252889894124240175278919466398938624350363861140489321729806623579150740569789001035668153909086556038929048432782478467465083773393186562023024840484449540475878399308431508582747316660347415666393181538936324025927012503733269768691443167417774761641741299034207503144690019022754632826926070775680101425424517039474202240311671703800123965457511491974591932212699689712375149373071466306232614466452112707543408316789576724077124071273085264301895588131639236819293549090173544714197407277596299219651944376255155986002391907826629119491407585282841078190282916331676665700991554679068958041198205803657578652953922462745309173638125101698805893128762364371785134232644776477942137199150755047102348545264641859502340434790284953855600001149757422927409231837410856612810110556598374763075951214610824979729947031896028839461587254557475219195857105440646036059584462324825912899468886147220604149113972762373205929235041835179623088248052986986035613480019361654679605133114219474496843953156663272733143234100792382885704855005221906766281552436563816171015624459807763319792321822938074076246512713280525431313569560839052580985298795908707093876420162589597724986663006629474004066392308212853590839329248871403759174130932419120153202428656177942976979341854325926826985440425078830563380946691773924851356500056721956378411137171937305503873118746833507976176212279115552574754747164417275528300829037905580187419461229469325484880905661935930613420924387246684096822850003337308408806743422894780889710375584897010259048140198070409599027328899595569724080185185106587044363299854591373319274587659666808050878009959243632065775440994188587471182987959743891793284560282103219242546322002520478573635372807364833481589304034302439023604321153736474945180658006776819004286393207472456899116570491243718975988116594564045143091060818080576455456659590745805294481902888024629619456013749903047318867973857015620545711634529282161446163429428754611525335646263708485643985246177155617913403561670801201937785600576075973242574839549795830255495707482786445974091731980450840301606902436792176678602768661983958359285169670381751933474391471180923527824766877967694347910029166778849223582284137957772637431054269469307384406710608579161870819933850824521599541601977671683907442082893679148900965211778995608236966524914367486948744276399100872913323132398310506031541826193239038611919918891438373266495125879833005701454670389054281088398200963894417831834172967309755054273771907934111038641788078442811109641709583215379328003411553816448236026103431609263236291643982806313695376047700552397283770172600582871395174425382225690307419910625915394560096093728476289473485916788979677970890702670686179745530977777654218184912317905462593857292239560225010916103416816524509674641657815625598140422668541170975208056531152999174377377410326420890572776303145278838647463174246411270744255895283344609045748928542483613368563245954593678836419895978281757187152139128473481605021485132151153203786060333646246409661335357607188611791408982851786232653951144217711985223592141267894688738858806480485204723792245422198107023519807824292901790910822890008921226907701890823469588084009300723459475145896534714684727426367598489167985654160957582981240873130658585737316965352643860284701301608450155514339935584503840714267901520826142739859136543013564825100367238153193717667187993412217056719005018883789946018091481304349649456360358413974600367299639364646171574992461388954739400539204847553305467068769050050695503140668405327800446399300164648480591501233354632885011605158978345367451403558476318842947105143753160696082082440143027337945519293445773261340924816117471254008093321528947155069136722339338530466025696106489934401396861786843128310459009831052951374737880895909483894588920876340381217034499373988969342849558071771316324736247678731021768315302034563687392274997965662368499486464293434952590400360898077469975948566542711454225566837133213844814934069551639291194042219393322436209620065795987405574205072779310221311804432369345441410280721892434014421835541867672825868535354037085398526134859716449552815001426847511487788867621096552184578488999366999703032681937950087733683429677762377293630259695816620378535034109430916318497555019236792429433762165373570466038440460336532993741346776278720607476791893153156281643723188248296639566563717333046405172224900337555277296710778882363651831358186089974193241235847485796263864427064667351312947698814411159659444538064750331290714252260869205467038937438266885587785113981403927015780197567033935916366436007598958403071997017850944109632048346537742099918618091179203727028883562594484846766890962413337890585903050203522323733948018466219053102278901820180483604898160669248701071816687093207659046449143842979930857612437061475858572245040026410047786412459701918819677641380074672520686051792817374880927030685546753732902726561348842063656422574855429733121430720804330138997909114519146485232016688803601388066288852311311051337306617251504837215528559154002599511920084955995744163044308993113083657269332248579797388079696270707176805523060030520238697223144506753500524573471759021556785328334314382254781979301842028735584121131323756151908460159171560233559261432350842504294068301758718850070756559375061874740563433748334195321870903817658218579472429440129639585343986445617400033542570119546466752514663328879123894203203071884487906105549771350288495521005331854770488377205690042727307427033502690402194019146741302860722629536924615377296369708069641212565570945193782022432376410111722070787339257229573641298577712316644249014837090403503193838782718042049607432684337453206812580157005955434037011665793526739775037617622499825223676793752641630648426614506243429220286998668875510767301878865246693988537892742103030445799009989520644071667426162721613800044361410817642358461152038642244670989169040256872810235833572356184492681108959344719724718286347277447474899294043215027098519844178311725589706402683901476872246710606770475961924608960350152418273540585756036999520027893828930959358460434467992890791143167271197270056635450957453732635189740031214282210690176912132297203977059532799985458899556275755017486517884042852340009708925128254168674859604261090768997237783711220978949424528657727149256572357266037813228675083696716746934164526236021449922418885119440566423485540619340431351017048984467407448398821989321125121587091579014693605030107385670403173791310879343472790829985264169313712840059949310631205566620266586953398877043142666830282921522913199320912016333031348932541621867802250712598001997974076799070326905962613737249332364652614972309546691969795118081422194280044097858389205472356188436207992020984578855216483909832861255064360798744277536952417312582379051607441255858587479214643843439728999662153567860577146476084666835100388725657920473316608640849074070772498586719837844344350131174718814927377161713116081002140186882120217819131820936212019804678864435837249267042833220570688480779146749549772988436817422036637698405978439951008385160850895815403860888784389436800843142335288111480465476868735864660166393714425461218154708343720084006927201152937830317396495693551961788994194431193202611215803094397659594159796104053214568921893124162211251728351739421452664844062498445938870859364658018210287926737204155804757601378016112377863562948306637948405390446314290371848280880756263752639089127663270248347662444718990800693460621804072252587059227435191093521469322280422838827653510725746746079909853572408378857985015353997593953894735853272896009552435294142823198733386761427188026287299973989709712501503418295964569414791478925150311627233516454120885534137219586259848870569649872904340114151281810119682108412697159399386311588797822111883764517775979879139535223203000082691318786155028373010132245694355436346580257139436439438280668270587925800149525046894367943802893940761513935173187227840565615609251871466167314818573256378140209332713504971602344339882437775685613133585631646599667522432981054614136599102668175835430904434720862899544494798712078438546555063748832409369603130195425501798876454001214326893563512491644137908075985477803708427649406246930944189334794473781446990656504344730364678668928022224583277563975380135180054808438869184302596308109462011350553924068530979318444090267179435354017676847762455864875106422250696032132921263641497290919703971201711946261756441786869912879108603589666573732140913714581272756154831855118222031227506907441872780057057562756296273421142991495957841976192700339214375892099202524267371291457217931287233677336534133480630357959554089370272646222755927609979749436606342734473622388770317816704924922588054771946376672789775531527506810300951829743740445695870443175075429071865320177045585965864295400457265794665670131774274054641527559226004278862159077515161852452948233788081019511695046911411245616594682122817634219280235515623350068156703408124338756656845140250581100525907853089942544894664972970271937072372296845168174707337046210935850754064717199475714400798765054631900694019840211318155872822372420286831574791571119369575286762481016297624980635009843309125739580465491948989349764891372790499582458030843184633626247184994011563398886332549544545773982656321886824979277492530610859204419231262086484805072660513238669811408243186829229470802516313926458812664688419682244106129681252529906161010793675691517898550212482964252351380346714786472142463355818375546346527565207480791731039023836497754470376524880742899456040850461897919137044599005881477007005198720938125721241900108372691530677409291210909373634277217975358310282108773338247909306102819944759926454961120175042576776186404698159099195973903103011147151683560587285895300384532854320117905543591248431494711341191103293499585446370402309870519558437643387074493664929310812486337916262264569437828077057365282484729046575339741432797887630384683684550172106789257973419871910795431356471076908284984235500712737039117975129864262614955702081469643568859476221384515771083908100935142978838881237084142424220064510410153393649343503109901041639288282153590090853064080528655187845259888741922237469576153239188595456186147922129823726431719539968951237979815039885267672461318357979285570688755486158697521701107577095206164687762221432916687674617923673664087410221320459563604433517227544808455962252381881261295818821055308624768479868245801037672791311345566118361104058608335819882117361917958137101948201414969623940482608776400737392841257915644333339146399076097335595728909478900629110224528529678813358274521653003465018633910249411345048083585551042030957297098992659089138027965054397930649248858963132482864092034601721944584138785835951918498399020844348102817990631642411005691996222124724997183174498409307426516005382227980229593791254894389486132951969268961856076789178356263411823591862823421554888778643144895173130722597860338398649974350744156037294899264217354910401552584484481139308314966101753299133529961283148251057608527121699323890030982619544967278345416785334335874888464690226294189318886960006986485339110657138729597198117149428945899231481476950253021941484014922223653567267042325862101415406639621986603510804087815973996635285151720799618073742879836633319785609142353283802400796829626176158955986190276552339570079955431627947422520400997080829245910225205334573990408704910522556237096672544934690285804987582568503301725021287402115774532667549455787512649179554289409173469659487005946756652662076816183494929921080372739827798667545553035287088361558925340388109205825610616319692791425312202418584981129186477611010884381388716289985004608242101701323162366611693091508325732454995865400377337686301447974786310275451082959431775056397994863241026704722363396248621019076015411887541369033123424055695099973296144174439573785617568829726016206728490276018914887692802491964499007509287532936946233760826803109586299453050323122327156776753872742328333539835828462479987066124248499452308254002387511328452614020135149407219039584496398902097903617599312067186789568109703861238298103161467606080607351250946877988648807913722886638335564496355440145347947764688801992349017238592437420717857332962216516261594696670706161937271528860949760940827198611413234685679110809415897726419774992263865443380478403408720866392458311432984098145752579588541777972967785646285873775937201143967620678435269756659376405120693647346700239413237017128950884667332459632390684330347014552896655537867705695352422984617512878341311281394930530324461561491432344505000216334576795769873064171856719863600012928896041763788326907480758657130258155519133198800603615743451259157858379264951016963450948089722071796299308327210972700593167296223619188960690004995681505659448748268930559790779624466861066241760458069762171002563380616877931644662124681782518344264478560769286728208644765869216597347186719956769021843354305966325360760503936726227076847279332615483715536199844020004664054345700298829016905748763071188049111928022104855412373473100632652967376524390062309834796960527913409984429353183920635005957175428905876272931618500953006095442765319706701585898199061128467225188413868215670386521846495532697127935375281445272033902369120033784846836489262387638233251274250664054780649802475856278542201855071144932617242459088436738907527043745634475337309269082706169835646947360544408031975540909554232561132306564042473519543254969769662334555806249597618588421807404446428779377405335858515308135354762475248402524890202492190501317285146909733555169605044219661336903053003609608151098730183557421815848136059621077873347739718538559417715245746663974780450017429555019805549466478647949691854527323663667444306112088833950379091533971929441581198844299079856309980836345919482314243236462599034115997491848097918292207386206331320636596789193642184807353681625200701549945495096003733073326602801082559138600992307045482105224364544494551580507981790270244927285476888251627323351842819715198930697874958855894882532357772300935378705860003984470415964205691358291503069376186523763516860625257317229665136883236755647224212483904922657702739541564361294640124338049611559635244669538032858868015925192048961989628817598605475816185146872107830520374811665680993187334665267638071437236272383736968905999754887604232810065071902277037763365488355994257047478853974701646499388691162529600968423250186752594029176225188907745184526961210654062619606186287434136949728486263463220207048751384372925127012480887270935660053315504949286151615698042121970749388288901887924932373184190451522496014436661650204930954357086752468530510208489157881840476267377295289197719052600233003818811297238998395058134825023165205836145879980687195825944826288363911816276759311422166983997924071211765705798140497043666927180420604678253599737989815297369686441293398167679234674281275428180774431175519678753566692510135337728605002877471489907061999574213969490565769447929711139876249972353185490358894690206927749158521142694744364261027158278311083834407602542939638004431379314953532448340800582900684975607511225640742238857717664266832012438601773096311570236823250583310969107424774065606575255973708740963462706508562713002346541337899836650802849350231210638443445803428485999874885957647392972674618461582815298099061951837753969267472057327034288598576138229546768377104071383858039349948097349045076654384319209864510975421348671898676929948748893385519789148694951072865347435681050033078746011745761461532364964399046226318035438170320330733246388742094674987000673535775107449426092812123268953864833024371303486461699227723450603765021912300688409697733891388542613629170953012079741177654141675319461474448496149575835929255769911496213070267440899648891941106137101876461537691768976350983017610837812784394889802396335388291140476587195625372238704859344283318317450134370910827028333229967504083122815776961864772434027470082316156493232214213273079995578201985530787126195353329760605460495880133608343639315922039156636054687719862792421261122173339340498105720297041420265092285129011734331666826507937547738474571765465611217617393124178839310252931097033535297380776330782835124489568816887816987981016502957434722001462542774691455940182566986150710851417244113234809306020529539140687900677355043727663788643368836545954734216174272247556702122850810813242146999067458451420865494887760075033666791912704216948723001972835908836090166227845910321397643601105132990126946400946779712548220680483932933694901227370599414246518621179484348843373382016996116962950391491737587687457728151601876054043630112443808442605296811859039811519981193592520201888337177063254200228617785939670971500686023968309725373817325950966400302700952598168842284832267741702162278314474549607827298239956001180626454078292151429609951680197537161120194614235908519335724216261897002579637159167489678843538471581429938669860596341330992510822680063273625184551468785578394095549236108205430702305529826592455855407162093219298552655024161912232169512291646158706842644061854811600679925286861287370770071959906808201533772351378006490931476695601027169277544824023015286946808127331636412559970188456651640899876464323301913816858690964296488748760007085336664439872107903995385350595095003436696387877055337531903276546600825733950051740616881788325720898867417332162112456243164012272564687195767957085825879959250060573855410110650087260971357042672370622130237040987347856126052626398098742313595191261658990810467940135948892228977209828531455854214600019480336424553177108831469106962937194351391919644500489512618717966721099827574383191975065308757133859385756486392826948869986771227396630267049868346026519900055378022345593998079090274405817955840599206136140452284858781771560268039026348621458739729653052941121434709108045722483087088447346312909601054346302952248569999064698169295459602147891625311201409604062441249728279605629970333869551142748889898499379988392449502208352000255370612288910583838957493098150289233140221486038097318313949490362690923533608587484350760055690426954520148115039955573530282981248613232778268165850156113692822380675101190538449694500806089468256080177570571758340963666590748677837061805351331013980206745835341407404286986472282556067590249986141211719145389697518540174121173166292695627087735249543676620860261401887255757621879973700606823890731681541264845972668035697812193833124435281482791849106589981064271816643767113674854884342335964879010294466465718598102192578506436841632327843375511016255379261919153753639172791028847314702527317239073841368434946206991838957598527310978654284851017749892493036404115450237831949952956727980675851518434445225561321459116280929307267323844025060899974665779699104169921816816189315373540402123036558354622039279993418230390161474428589631761168294021601536986968382591366585889812298000405031388936562491507116713076637014728286781899157161830384810322013222436696377066083591693952471907738974402604332840236192538226040713797644093394487650470396579021433608401915056753148001070808310831289660884429873976125776948168917613958657498669486627513930571424549497597978249138335892931695008368936455503567211415554594926782938682418555183417702914002775402824421667465795704530132604990382560148543371641518898144028119474547792990787111246630452650110521888471941057721186944301984450789180755950848976158102723221211688180201571261574576186223821059912093622183400254547060755331683392046769264179091500406317113759056525098448353795458879961309450349249335839674837336688889858755958989415967396533207223946966549303142529904224662947554087019178556683849964308048932616303680217240794712186944139265417903507229657437994839582963141352828566299098026012970516724952663067627981616914493269916920478193766170411553969291100127099457795711779404461220923134991568280370861226535491056923985568257413816408676909821941859320359399358820730071191502156588660042364305682889917204638326341598915652738203340126424722277980568755518993687171375385605310371914226058612215273300036978258918867088833838905820039430898904287557815516807329407037491625441826688943016432901908682857724510186084501148384121825532958200542866871509898275413047460924390238388790002399081419964222572681703219832385159590318356053429829073056220749090109749977371295242986973739570856331518613431856830289671513303564482016517162397194232611068492638849083277424562546557642558351963689682040399540919474327800267763806572183238532052339176357169945526053585829582029440908653876682289994830344118685747646400195984840484866518164005134128472762212103948368267342598004505994939678744798263340824394159720015173914765577103802146885291638556741480346948497961564687315138974614332509425332087057733911793390006689579288644036948232120842659929535142147722122574510807185423173522531178600151683790341579043016129868663914321925035684683227646590155135129034409216936598685777285162719067755523715014721695502094993738894740240789217799278770449917305266414485935901310189455823099061537647765910850038507966568976618356553920129502431692836114568837984136066165438569652162640559599830086231263209164040578553178711683908554174406464000700467513195630851009675215512944352252474234429580775172014207654391358733791130097024934155562782888916578535333784907726187475362866101726402931994788295675647065130601304465271556459232062117761725012364755493094675777109176938502826690125855872953763062019329570856505486462269358675366646533621293199547447130824900036457686711277567082784388682243935807630849297667832349918466121960838245239973102566998600662002209632094613289060643087070656725876209738545789149889110272848737031351944018493055045204235161618722051973060564020365292001232838525889071087882224935088977611825312688729457147968898708721409178583253302993962442694695412149238436870763748105908324748748444831100201829611678748940196086789754420566281126588964273461538282337622257261400294788817594557725622124850887199768982846204801370034791095076037229822812305667016238858804668352877205670961402856617701320019142046936393370634382330485713863887290917606593103369762132893968253852483039786577227193486648960713184926657814657545082998481541828951675951120262423948484183897609430712201427509638175554427938994796109319834596333029595667372770833334399011327799928343560027480299093603117612301247807197303303012714743373662725532751967717796400521452223625434066579169574313002869222351101494239703697927492545565798854172141999772100997523217434003714129953859615915829709843202931012386957124519941395528681382339738322511165891525356346688347296812071776535690428458683721541971634314338019054636960009125728882864930460591466661156952966706355627807789803544479241142908360124108995600068433184460703535427043979036442368448034428949259296060737129470167494382993592748936552272688596555673553840258368737650854563515532311322054321107486452290917074321693689203144659903355190212134986223988547448604294475605975817343732468879438620808212622820708124720865501547574078623842837356982546592182354111441841042825485702263330433695373629800664207720331522663422959156910893518982173301921775863008783662130397321849285532704129947695332969125376728308351098006421708273388898376599620067493462573570883397434268958385379662233827972754749601791279013771370918952906359210300422609313250522376090090699535291847047157725924945578196917918717238147895473938875108676594847343455849303708254838917384290540699579552624534501738934814247226527184335124139286862597003222903191031184193604651121877746750570968985435501274411295532538189368215642808118003660567579513516796749587061564613058855889901079391805406172520995638821659953342761234932809790994614960253942372168385935809317313507985771546352745871842369488240124030967044789624795615685143534428254897140015307544747367649669491958375227669254667156393022957169777269590447110763408333129026394327426779197966592679311954007699574701411872571369632202450745323195735420400362114010250466290710943456440428194643196961554189545052393968319838323518176581917459140038033492157521207351493154596374586257652967508876098711356922291750364630336228847187587730392470336181727812662686811138359140747842271063961911482440236489094374497912605597059280736820161269600613944727758948367628834980504493671567548452649999701668026138607652710216526639886992177091707457993206614209856491954760350724403556486320662568176696058892351890209579735944901165046415420212866115112692573894098589829892849276871082850963641770756531164061234966519310951604454988755236944106242529274249215017883953085569360194151519147452480423472414023997097247513819133581191497668669643377095205108038195376789810054801267829977461857725874795722749795200682787147573133702728887218759544162320332109128066672738762780632402953495685093338185065841853587780299074061480960221747991682221384138268480308500915918859482838814081500789956292945286522082300159422589015288136573261884710614457746780738519125152983272830905063913193111540464725285572932014768196286080311452250692614395649428458462549752387049153091903939800292265375279019323420976188690149200641115037427457552399285627310642903634024068361449775775030303236840320321289025023472399604308634996985944615115446117199607509615577549241775303437602890674894635991159210207474611866375878458991575942050532241306617422242523404845159059976493289997055569932907543018873044258239980097683830092989067122695523929943685976494024592758615267247233813591380005631995573981368053984490997443764476522655728675433835541559581150929803402743226557101881813776849210018567436514197346751929422285084997553612099783803951698649847328861072582367551921284324309699432890860624956972440340486727572307358591043613688061665061994701083344445409920624717328417216343384605467452899002854125126436297127944267935705379426361698074230532333189235337750377734423979675611525039768875987434021826761588654728815160793043377470029096298561963072244054308601233250771048703349262569263044946332718619759222746116308181730725853481979432701040698111580475281055766203694049747667254529755617829387667358572764372954708877907118820096532648351155422698174997214665764592574294056937381810815625348223641400825215323966063414198993896297686419895521694195968510894265919285144277260047010617701309037934867789907596508891712060487329574134215295646227220985977147925677288993641403793548358159072924707549349328677126311901294098695788231161438871212591780378444400045506759836415631034797289361125160320661481364659303270570834394051351284145862355422404046705603537787012881076220926508038864912409106662837673488253807318715116407438271004730590165610562487483079125288583471454003907312838144624793783536904086540737954287372423968499721453307376094322581441516270917652514414965850556159824119807300412376859899916088225826705639275836650635000153776170574315001849050420691149390211713792500707858921760233789257931436589311530936238743184362970804853207371183108999227145928475873647550896951731868902807566899156990620210035596360618108062609008699451012243445376838160543032428454853462566576412083829311433966731649914934799356877355105124394573464281134545763422760354759070943015281492317794510333060981810529956966734037379705290123764669474458870096864521050456981067342003923609805954120222175309000772897813830015351006010138890463404556030752502716078915088262037201722013502091953672297489405539178682007487524588035944228405802410587436002751875360901480685627466269271428129673469051597636512754893343674554130301124509662152003821733991190383960918912791035219117824811731484233797899834900499261403212982202487629291061176737013765845276440361702220629419039462052430287156420675014076414454552204643373231817017267900077660956953160683933111401131514893093656874864635999263135241988610017956768260337663638436109499316454407077286865825770202995504459200722684144936705540762028951636383067852349735768209328666036595243256588249506127178508326719687435575849330869062637275756667316104451768487919227936907589563141438089157871281345294567114134419787973679987465634791998734650878209352940058330189709994342676967525220700163094239460328140850831796304458364582780911796980973884862292156011577464466664339668183705677004910331058125509456444507487579091839290221394440318402215089771940559820042734806349317716618159497230301426725647573149388180421240602072629477137483307840232299176396319637756425693223603084708493663514150692217832351488697282068921061396654530829532268601280377218908379785541366533331944485494412491040594228140158241499185406436358557121283120371517945720284655853309385175104173528478250762687007894464685567128720689799976990219074235259333578761335890110578304858132135024945248008591475337648919725530526672635401383091396623086796325361305908133004470439112167534021865318023403923494326066920585996175407431398919077474095074968106818507226472619222113208876978098212945398082696179288133301734223750866722150976503373244153690693175178410518756255680212535254445660969949740954686746496089259026469201217626624845486514715116663223438410475406359781014025915263051864185445688420911951673925946507344128668948936851335679049916943596391995750129606154779387792555550564078400173698761477898332357097415568236624776222231383677341739813190484289386030205118218603470110198740976309694766765058239497828537800818679141558960392926919824701306287151889508250505484164005500958682047930663576800588859604767219377859854940471393229386694183998950889642373297373620904897671020951439568968296221407631921877369229631329584358482751813785780209092598521274153251603667022698825298352424370615664090262959011669288043901741683466842875094537187450853573788750622461420669918948734359962153039995426434503695359259439765474684772096369933008965920257596932288018715754585097539187055567156825040930743602884676304929238855169144728218383271224338586573636973288871992645311356393717752139123532047242785928003941814420772803529290088712769959818070392428913080658908182111897778116816806193680014284371136422463453032657245130705466169241315386377005758915962830441668404741276680949879270327983209522497312107617686904592808085092612141627356670557894114532490770655346188523699933502117624647089695486317711529960790298054042476188834207867586557852685431150440916075159396679916642579427077223367106783155175194672726172368826975592080704187996518689503883428307493230964254019322552156674762379158133680986377873075476572964931019957369189745928829248196435346319696806890793918996018672175074407468011191650556128169465460492446318109059380096643559313851023933535677219221478877684402912360694694544702531491956151859079280094496476899016793963271959154518903915539345712242504934164314083803212814455577717048297775740692251603351881587464662532621141970767228947275499872640073738022583306774345594447685281976993796786810389623937772887765862334300140604637942469254415289309536788612172291464740501212826398288464880417647574841087393159664530733627582052389006047194999740610384865437088594350830730999782989169486692403083182689651529885350035342985677504600961062681814662847245780543319698371353982385668579059069717728444212210280825690076611995804734715473719697197887119605099419320611102988569233092627400371828625527374259732552091926831354365724108687357331740675063638334268800128197602597840013363386220696421762396407720369223574799290913940699450495551071125536380955974336319293541235952216242414447091550168556112002832201747907446696357634687857657857635681065161573291387950314617224562705133254350325790015056721423304581481872188724460866139349955526573279838149007598571114457902374928642091424042667639939366522957245053603253948727317875315406176205242542529001628500169649850469746032063430586552876100725626500727533516643914894921029866060244214954905391707158046270144917292370279844999690330342044152517375949798055354689280696714998318312570287434155305921604040736367502966733363201888609302768212225617664414044232188729344815618492966387902866793596566895045668210966207690785071739151064078399767937906678728315589452512608718174306978403585047313825409450787678437502070672893598852974413791589427542103644441434591882937143160414312210285141374431900778371261927898255546923371874656440073981287249082863429306672746357992997850569485169368290006281816090784887078280109431801610318972660435918030478031108280700742893407584136635642504681108861962094809343865249664676575146396995038236539535114026043600601653347343330140847670564879841219132786312894463536729191711981905890106049870824836492777066205253167286121417062427911278949622463939958713255781521164039036625071357779074822884289918736620399957136869132814710561819896006845451067994412182444231671046114890650759400138577432415327779812159987346075073945370473686304732739334955643329200686941274077417076067033966469038395672874630140127046405374437799852467997864174009867119648588594203038505039653633069620576287826724151894551961051741648246907372799636266407268103983030247068571053745854319209847551051904811893159348971989735952386208548341822728562770241989253779642886825194603558631166077034225738777751049810235108787172864514260662295715024304083510113277048186840296202640330316988648082409445246913620086008942292678498122847599358848323620053147039770276698045952553659662915899004152026216186878058528696978078195230936277519413942588814757019678178575668692648318846064422868191435690735873658017996292343025081751272303231653606207344357788318974412090102545554413519023815908332875572395825900574072964201172826916055039977000082524821257778023375561089290019072821258670308128188907966535236803642784026415009101944329700950710599573539264479019829968453972382467887257388722777071172301064160993073107067960717303445140232944656534344551173441413331227247261645773344661647299734609275093420384789586910255430127874015742760473423526315940692570814533955602777587297218394051950019548820694300590991348855467823412904700008919738017162034671415773988070272667978048694714986452510498894166129143064315992589976957932743339468801470036766501297464489423372111476705248549429489568295000225058650596184540661683927134020694215297760898988873647982971299292878210207272695147429885056179146708142028783465342265939461020612168670846240288774723858273885652502444342702829319899009695512137365622051949557287368652037837509358645206479062378502435600860210030513541800302140045343029297788942091524267906207662293424686756489488156538704876575256218291700102214561828050950802710346793562837325470917764045970041798842254170334997440184743413250269989570167461487144603906474771779521848933738426353954375757694746565592649970677820876420686596459835949765212660004908400679233086565285701127193096251608063885569359197387935554811861392217087078356071134633880712716594147849429241252163876005126550268146613279731940634404300417666293216231534431903400366401736728425817663631676873150533803393204682784762253069107772675797272809660763080965259841340897845736201138163970871453176662735833322325725781402236066618072080529105277223551301873013465706401618002873596218031225399845227843904829649780001615178103453674219951818043713171361326481703809031631232792365643537620207341122521992633414688267951456183849253255293803856855254629194480114072373554730659572754187508393262961339745736781316977185462358348700904265613304171660632345201694029465052623489747241791381762964073237994587548342152540876507801794147202690593524832822927761778771429584941950710339413591156186491524304811175703263522621682833371727794383788663178983511352474788336858086890709561866433291965057299349313376600073872945055761214892627576185771688507753510950529027300907409759078686161006685609141811999520545780860047754380454482833659211585255200115526680821376216219384008055105770307732386279598613521932297507032254796892747160676762242650533507016932599244168037963931169014139099619559616102061007340183536651029560942095261938344716737279807623490371915244452617558870638984819115880527338941371727711559796135934312014989490943239682895005965577915121794436815626279681730850593266879082914499418843665316572970704925641475494145941173529587786517071840636457093464334347490654410899469688992527078056874376764834953777954432099716219832741272288661531065333102919130955641660743246097280547164870346873290827434164015996639371876774983256785150329255347441742918709516757447254378140235371240253069675644967487245262812896430289384498283086110552117498555125890248048160933777178085459715542997609848900134963465621375187080019723100596974860450521177514860622984102074636785503345969686854684120578797128909244307132467037371623014974849434392225820757608160117308585604541226293207027336644184017115560625363024280915034058007600155841662145354331263661069283930559426185233228597682498468269175845534923375952153173673707678865846235826531959929264230108257240118025836602394470973140871107804994197585478017834035602051060565550911038758668797593801402475036557550391203414263236279585126604804260821607439400924999571301969184234439767680040291554014975093263955088698090136631617822805110327665486197611321322508060952152092966227091337553647581262753958718690654185304709527255578989533666682686548667669821385979108825757863671245101529893931860496932914878456056391169511962769777715750812166510646384716630720334772070403273242755443877283434687061473202793537792758201072925862236968542774177976937499438210542069723306331999701052804947299080647756634442756644211701488806300615093665289835621057307678485148360397134329815126577108438538414206640119177430149875431485461954880476270506186426997532608583359801157909588216141943225296803550919990895141797919930129131373003362293608507502494421562137564225334871671659669478504808742565362060023726468456378659955468900603886350636802586610877644960154903317263649578283818659022977594456069493806441954687647020771137839315377794345940219142965360214763980177562533861828380819865831556687029507137326653854858623924220914858208308465742273872971633763907808114579598575667603593702129126004356733853556167631063536071872262947461217912362196310370046022668261357682149617205010958046810397797471002721588992572817507978254934569318213506113872936952362708165419195433337913474230395727864517162241598482117999857926762020119354512995448790011735470116047876148995623938536499125778281709944192312824962563114056515618406080221561671157877894981071609340474553807350239581686302973289911715398235536846142022669957662541544215071700764317635161435508799280030313381030934988885997521072681594342128174539457218849679556400349488127488114134974936633418425273732261884069185905635568474120306146771750019425562506190237204680374090822431527754384185785281836223618376942917171793619166715275939015722645810235798830647451435011556718486297053215764293601522617027371304416158648709389898212143189422284113434884315923312151846127233113808446281567296232618410236747811887830462994918500710747745951643536735201033126071481972298791406499307117502123389497875363988763554016035438073437612385786833134682617035214127532552013882660819429353865714806365471878478106114460503457675898623127231259742568416615115133469832385557315141943931192056543103191715434530268612336281249394342052659291541463557184044529328910739867388243574208297602706397819319152286220710650896974046513290540286940899349701088936315685589466042664393537735534177972093736516275440912236220142734549382199421983825063576944903177659621586583768168682204874307048512220152484497940873345288839093968559449572151193506211263543175036124360674958485926365038727684087790967113507774100052590351489674084722564712467672486277132366977743419553662578432339857411058131171097614797747934597232327433275699974487630949008613422605913995632351782901803176711755527646781756153863214267618197818428134700370958563385133582917402181733178013280914441228100326132953398769626623337146382325116262741658047822516478887171769173938380684636255490056277849409334891286021014147661243285711510296992129245286035759083440721019953060772026737017505726686999173137181184909195747250649790813881785333536155070303410483404871756750690641802682538421216414088268613433263761876226383565425302306914524760103385927999893994014927877119352835331045687240430176958370054031847442203896982543519788655062221370872514535384288461350255174470009741102181552419892976608883104873896576006418404805221928319775385534672102598673090578050914740607742367390266266211023593203080471970732765089067864063126853397141365430575109729046022078648220193057360658883819953944327406005240499716492444655583725886505372458325931600238472970946335409276956872994914105179479722506026047809535362923839544859322180733789068444758176304311508196181015942956180758102641362341041334697558136432443366268608052057475989426122110398383765319469607688106202534160667498675460971506126116741600107524364900629578420523743087808022241716414162641482143650040698246892483333610969035436031537254490287228663122454245113000485981589445108072734620655580316974420254618043336538030328750382672220953057219988384344086520479001207027069376863964349794105510219060888470257947896673558461095001363357966846335285510645207352469460749478007721662694220032107632019585910172733095207575282988229058609252134156324249394818519590031981949709480504750895215939849477726371151183557399282593924485941840608933704787080826926430757198046577427900100951596385176741245897245046198168578501312433769789991507467864501204671536622891667389812056763274044650430101695284635954068856919864902229160796918607372344293316053353753501439961311944032410550865158869733932507136305969498062217513892046484785189284691402652795113177417949459461270148463351010964745624940371694915912294299670073617609600258931921276506401388344049086936915463932103296981872302230586819607227962211379913672827768042398404324396121127062811486518302839432550351373604176155458041220052975768988684360066499262831600592151424469567296940385287203143518898271920356190293873944203638599820875910896705944460146856316916062999287322121920953906543661037924825267952716090803024177191618095927285569697450242190820768117550469891756395000925641707172788634869509282037323147091286354298139492618617283106070859829488719772422462960771521462609343755667347297535228215452159139535150832801797859591174753341393070114922368669616599956220573992022546519487525933528509591314840890203332859272540018113652455926839764863717902988349190115483125551313547804996650628021836114084384290556319374401040180070221343245760477889741039126187057948963509769429598290782023247109568730518249975376094339846315399869867545485683511151066371685834640511334770403985480033191588970845247278549116700539885260777789973041341675213666571500983275192366873253524298576519548424201855196980398152035656215931372614914042001250339072346976184699148151435601134168817117437454461935984948208873002393594574519902538318153648870320748241386307224347515081648261493106190070847144407762750563284002031451041803461815713437244331275387255312785533717111184442887197100578610785493267478679464568364097918679936722741901314276929158650363665695800679097838960560407359138865690613081830341119838774138626058852062113385338526330708535155053653527770387980675884255549466935595281200680481972496187172463602066652223275318797041172429307250098751149919844121974228077339476413439598139221823974987166368844540302666610427504919090496194022156759602647590006758466785918013034515409024175896614550658572910274589691313145053843742386038930161387816568471273985094432688184616954441515622231085126569778724219438932411635370920336631086257205413000255607684400436280317465233543504937645598645530071495354566872618186010981719674271480433746705010412517069812864563939666170224774323647173632967922886326848096294341973794514241342671409929532630988852898813814398530931709881099825083854641950154931470024521342344596348614891715233456083246785994015646239496143002962556519118270070109014788519820117362779822640779261657977891327092363210604489963313865093456490937993127308048095419235738982869692143677700778393015486983035405651310618374653235785460989204556314690556949346339246563656057828139382532728655235967055418012722434811739932743365071457461967514581230396891625928018901158188280850422459322405488416292636475547951375187358706527335824645703078804338339580729713113678929269825637321211236890890766347593358230457458054773234850259842446794051524159215989488568973561300221235190743063891712794146679528253682951996669632224717647924192572768723481636446054339649008998934415103980838814397412740408777248242745830286497881824197208792099370532781264229036111310989249699939764462631621070708829291593507762796751443248825693527887981480470757005362065178925678371591545118500152735287923046576510568060912402157778781702486522212816731316456055787988456089473672250755001186720912736789550103219855124831935304533592257598755817787248145013147901695149076298887866878347676195818952767417306056481396974422045876672096816077200732694820834073804549705438456048420910216250091322401055259046761964418612637986875455304752693959926567442636129796044652796577459846126903071625044804727145946598110737908232163694241555150106841736925697666855397065271363116388027403134277247800805873581734053764845536292337339504070811957853508709078826394650631634496361455604166026801369057585144003719175378996772139765516684807287871191770570347448174379235776207415278615062970350662976268278172054092576957082413151997878375244752082716169095659137624238291638611278469599927512410696275363882975641712311738189503056718594425465763108559593953243889052119852889696601046189360639748987942985645547845584760463560858780781943384579595011810890213920093124455962948710514962806133958919213641668477041327337820520668184558236147459381671363193246479386032907315115551139987661749013795394263597450022528179834701644966508638528986759323820424605999161549525761744131450732614600051442410216949925707344507246377156650430437938011892078569131203061860441320710922327963009336428598014657349776272349586122442913360808804459249716147576719808430497654631654580665411185087831382487509897409155105252968621444549183838066999767960638712273806498050324375565446562237468370056532316805472516645443078249167868660712432852053146973331359761749633029152449543685447360132209045963504319551649892826653648653685422370996082642839778316627251450860526613292454824754215961947822464813611007531037095557487936028860742804358266879661683696295843828716111351129028191559582255444589985604960550464562161013394183854697252069036177044934840712646361669474827845462929849937893524033591913104566129172879015763111090893913816190365986260010449483399983656606764014990927802972701535555672924128830190099178962941664488173622818307118285512492109200461783011619671381636463188265988326794851260958928074317434341605538265749856605580216971403814268451729045640523331177794570218503377897181283047017083310124490746127751788231250564322611820959247109136074075610348983584765836546993862868232424199082515093318058524320358276266696835675316197756099237071577633217700684261591368234328204767456458164182597208087873237165272107041503249675178864121089133409506209896462517763976120055527726777127103502751845141068787416023608693543900612154010070848942415553836311610460393562386984362828926429758363946692662164415446714649484519994724429882035908768515994243331502404782480902891699585767704359000346685163386023427762471885480666869624033613084083965638018635977129019692084235662282650754346152895062599029189651890144941028568530344269137332606217287621009765371603353111589611942130414910269948232264544444698532309774330839038560949623399455447481031310038472528907628222862246447785595242331593465088292406027506076851617521649676370877077023080811678553338823761086580303611889861577833995563541185500203796694571139735977863350809869626392484321472313908673722858180522255957728591919189870104993666462168240455047352828122271704324073893010007349268492175659899101632925269277211777551604747830554739118851575654112441044303447110113192541427871835773804263641115640259285869369517274287178854153453454607911224108921803562948479528279180496719529061422560702195789520059251977492631303614288130985701953894187678919294257232248170904120146184963327805919406692799791165723259515332727896735715963790784753900398018708519419044678415847967006720724200275742931946494842378708806534730074224816452185353704894872036772262803257032132547373649610161631015828088915059327214345854017087158119514142918599683252724942098504560491686473666115486500155509709920217553677122653690497661268090446916930606024647586840101029646041598015359080350251897234625204802681875226097983826052851356552793939421826164299613866658424297569354884279854180463045414244710993426554054686729774098126710743322675351212482113957392560598326269664990739557934777558054135521804237956884782548369858577404531891923927600407419574980563445716220389325882725803022675250130995139183434136449956238045884927661196601088284986340538917760943570447814875433835436849433692679088912080750087344428535288319523062409369574251639271518548470074871191138114012092484365836795663870185254360001857740226696910889380034093448130383950549976695002199100957520200667548710296911877327903490080507951498513137756346021553902692725943552725684029057428851951871801078268072101444968551746222096126346697084535725582299586814498808832491512854374602437528351917507305723328065513727965073606418510988912943582460838293001542770240535984881605458993647027680277077590021776844687339313929426585931169799468762583784353771955946795629756866933474520343892477674053210016588856663253608007882898770471522671869597424673999401797888553073881408603600971601589581286880690633559556291140749410726929348537503259272441843948212019766963800806053020891931313173560657889833207890165461707273396779912829828760014327908768358358125561769523251330740420659636556553415515510998434231823717333762071441082512541288551388159565817092920468798625382811300059791503555956908469597379459895575464989557426299326621202845563424369991569682855501281613463412797172681782780046360281100244131532507801737939707807940412521686239473371893708499941921480416256897317458955182835977408920504378993062342391700066488540626671102991519360850541236715488513941907564609531193881538170221038848440866544411432973503307958807967980424141461242478753705105382960542029283703450716744633766646450353468501205515942796036828899733964082575719199435562163200164737124591011805476976059779987129203178986500090071904877423474565349393948758209474106669411200267442425808890559217712750034949651415437102996670109565288068881557933252281350067068690242309536823788470860864567909702394893478175324409031935988439960953302320928416653174265862847893039246690543234984447464541829757632205425331220463921025323570382276637209860324310670782150126751690257466883115875413565623108437436752988920051808285507990321067872296269713317230606072875807983353962841019749098977366208241249072772570650500858008618002779866266435751201401064585298691037579090352887183308733890019925687525036222084389258904036431131831391496901973907762148583009253297169284455767225583999493472157480304816847250258466309078781133478986587108652457508566077193040889138381778181458172801953181752239592096913978887019741625605278616740129320697079212858229147583257908069197831976865462445337099576239340992743484046656962338449575585564885326374550331831812724893255361129211351674902060112542749071130282585711577485210003792844092782274269183424999019170308234919595945384568870780309021021353792696678695107685305046908717866647443723501533816460658443846910170798424242565504418769258602793402094259148760415718377542195383199015969718467681916881643642871725919652597767710128482621201465661126905435146897324507012033856248205050704454485441735780865964441310564047155240443443843754075672134578658110891603682273656111752606548916579936651034677322314974339241655237673052164000458369720350633084635037785983299798013482087427055948033560117968222121339565512047838084280415113619387936683602219466216102759712101968728260572471706743598107382560079602707867392547887379425951205821178352549355723739740544358285273581939197567490705500815956653382839997116606840990778881927630746459687303968841938750309571219637702858804075989411548594917980663013024268415740805704009995627315883059378161718223149969464199417113559561272626294119189247685158634731563853901942014364357121189334464130954107174832779923594678074406474111933779644870065984716301117650275536064684247596994866943960893381827942034971635784566224053543445526223913331504320265473883136065653145084525509430845871159014725848324992279844300020584597029321107262313045909191158018350155187649062511423459142122551008234512391976797978053852784586956124633079145971557432032728582367412808616335452029082393943479671468736709257474075781889451918450476044019775113874453937386909827742695006177994561691546228428709323790035909609011526249392461213066781469713410987134836835592741969063666243608303598436819889803744225386162220289145794642366527340462547361731777004102946128570456782725253565695510704957066887291308718248762636568341603490342679616441501244905966137466902288688376600095337363714018898439416884769076252673517079839713643422117738684150975793200122242099619637147420466139711029603417788982736828218828092594502698759034350431416193452347979242172982763513544385832227484025665569520587196819507271496140422852241910905294627250061850657567372636290410734670152234648784044869090048617591390738575380814352798881508298992724131880018944085531866745553098714165064343067471877593166419881054557023543867916178248443637865594394131827613906100442797246119080601895366485537446754249294556985740886302052461973049548919279628017779984471138730723212401314764953558993164032365750924627301433514941633492135101410414069958285580663214620273075416136176341859158318230773067549825604110120592880322473103498008296967107345102860378483612902714813141018442563116746511898444874877816871436680735861321835997171151336411399760767281616932962860798075492549116179861049060019313589160750396260934175433150533010758706721068016074427848327911671392607721845431602370609428351750222812075852483858391858569564691819228127025039104426323793123666423963210498895874098131516044596444218189738613348617407069896448202267632973757245240209804844735367659125054987509953768981060623286400537282495190566061400776540406979797057185106971004681296411489846226271374425029231063177005869148234662613071037845379344462368848033552830134363442526564146076650078859550077089467691736273400379045211946027978267722842856279536599505790459181408363743434343259367865330682557401231235825379962956354451772773780560203306689252516779834423420495485802028087768286823094008843696362765759567101623180880795388654238398271994917006089943870253091325824510462221910014934566442878153581071540003996179976356281278400314797934140109908008332044538527126352634718999272040233076297935880717752539445103394381590176467411696215521444554885972196793045267060248545445262062528092672172485083163386037912942899663760562335712531304212887873256226329065545850761102794881923192857997349546679209280281277683542626157405270825461870266152836858431175514077574796566154318555996520276740770023446392462880460580331547268786617998548443734907896342228897790172333968814084364055427774666056654069323355265690591101771282591278668019587806318328173844567661789640886439358080136638423001343570112424799394095400460982499891550108856062187080133740440182977906467024886152584809853463954819164892209669578640966151597882907340316078533519729909798386585419916494653981380451552918152248036121301829964537086075939613211555003022090183115281797010223195854218436456914299662603140576408055467267486905244678142726839980191928569377467543311173841384950898199545736157059803610024308378007202246158470809904302719116284818038581534846032795246089567827002382300809072967037849714726973483646754997907710514755242386107025296381311658669987358707898998439992158674486322238988427694977018380964925227447169442242309461570708772590129590896407594519402172911167635936651567424345150232872977849373829383017666349875587368058063445024280594914870172012776909735181296908749741410247751904125352553131649107516241989086220681620505170850080407219503569008145745478250399061598942035606006607730307306390725826878245913956353614267589403586957998045963922164259626982586155871383953027033403380705680771269351177252042937262131755200134392374245629968729836547324781755103517872807525691446743050977330530917331949939859665368864014727851729145442765786308211742925215948004611648538587316520990252517964274174432927082129781917823367523386518976399389222986972464909570266862409774911831810539245505332021772718020267497151142771594926932725171531304588414231678416338174428002154540506809234511342532528337006283035550544219109450820176854392494307161194733927016807434215946908955138117345715859324388975050921790153234224658261943046178078896462421654864667073943116590625106629205396747195715366628838543687441372806958920579951089873734296025126857207436387116275900256053240120005838831253698912207014315775394959529689250154562516993131899132535578074514734647288920572687255261005417769052824153273927608157383708312505436784260380987971734293856641966668913985757744033558987403458240099752796839100921034907221664923685522003551433522295563974450677606497226576286498927541792791549781286069463802575443854257359159371703305191403417546406573288871887164863631644424618534930249747181125929155083062989841979646768848613968435543410319360616981307260499129401972335954487273202944727009182922746928046615863502409837303323553144899243764610370852234666903192068024154296245212765891295825906437690981558707383574124522476434733498052654290230639585719092153834003552931512473865364780851733962523550351716692724961061306124247800720547941852117793909013320119920856801435776663845009183958054205940643649055326980705173594769089771537658199964408149312421047972470728127531904726796375974498472537820898763748821707500252808822976783434463669743586084360687921827570059103821165519924346009786533960557285709429915283886513861650239944286114373036459195100419101915980140270439856311869760268908400195650662395828583943617741671426038812186831844098282882407514371026851691176202457726370968032870879724324800213202211432231549380953452206632311067010924242708526399274960032429932817135945916263020951318001849363815044928430351758635785432804341123979810602369685502910549630921548489461626026837561428653188272125586543223130162970731161048313777909936262352963178654859618454539746022647914926602488028848498178610344419088020871321506612141134742903221889954522713153504465946410398324637527829398079269007718659585178628999411325235533700936787910808651869402837796091330888484322011559665090674688144899738868148764292470023915014419113621715533437323346675935152452018524526461555722503662771792531213692820362633520950877362240911361138103227458206824008656027556179685085108130982631476604210165966193026077053182830237223812116321775861481274748224649418182409792723690541753457507348143264388569506444342923161428445455942725457212632746613247365913361784647957571332274686161736254684307286655778121160263086026744360155854252730473747053571238288986138157466564493704791719520653246578470008706263339904748472749833769047878279126435893805364370163576102452779908036286209763162750351444431572341100576863535045111969700310749788927277635506069777487276055302772350844303975624144127728614806784426792660045570377983204898113775737152662784435258615718493845047708621941415236139563679557530900450484681722022726949892697872905098357131662792801564335066918649289267250823621843800362025290836268476487403406388482499424404548905200435536897693190497271101931597983483102011073044527103145239847857545194616963022334549067854833239772016135662558095204956666741570766926080607943586983081347399303253029225414227113054251171594510886898516925307572671716551217130000840555400427955253279952438090652557680720398875385650971382313783329394599160493692431260883497995787125778934110539012708095636717355294623614120957658887528050513383818731535298734572514701625572206655220516625912188881855996839483089994145356511675029287166662464969804796246975277099085666495227465254123954989266622081893830893743085827398910421252145577719863878277586823690455337694923928236997894116584241262705885982394532196841758175041928384645023688861759840812538886152212182988421354412562701456009973378920610933887597608509294697989952655149244141468131223909752468174979589658696835759017910888166804350759255033035440053531310563486540126900831604368242858677905417234778357181771212363559840775861881567158941297275205539812113729920078679442788130220501239475819195503840845249815065785541526035670648994546275764906120276126166407176950308687028872674151078822250151726488719961328751738076287651911687843802518314756950008334577204212680889060917814957015504926347541788300065326045440493924358769993227221371007228866424208049754636590342933533410922014489235033331152354633837272821801993987664999775907248262543696763080342473450808965666627893495889195354779398053490093324947717682548779543625439434505300254594920093712460382107012680078730357426129684574160045440402059139825502021677562501878692423376148867961966109082955848879762650792676023293149516132707131524677727413936670849293881178302576655741154743093873224669515040196496554770876384158329989689509332638048715016909598263670004271630661446087514121246198605147748265545633888815914755398653108845623805831113618785168818139319931058459262110384368450105222128192162220104070614626964092899850103228708201015867425806453552531823076715416149730986438311531891775454163515951212082576774771273335173816865230086721322878076585119114945429852489060209622346290750569362670968144003714135253272786102595505457197789276286719276180937116127470164634332925560642388304603831889829550287875056774006277994399831733578612352680451053509441568136657515860140534813577490775640171092969605008337348076592936349602709329654717244420281866620705093694921663374781102687420182489015596743620107745671643056177345603934987527310180343683348743552785667737917205735526351921424864436056699814725859270327821724720770702592642202353153940517644186535977502780383598939537349914103362334953371390470924131036729158789097756194421055726957857315554702445392355998744766186366684595498234624264068218375313453650498179020024337382455356985356580339433164739582138055261211617565546622767422332211715786784270955301957997733450100993042486295582770994904417418202406053492799853553570387154157761898836600472695822558527057810318605417094612572947169438041865466198712801956043931663657892510346717411698781677905358630007470612418158110289899987911014562069150158139791005676537411504086841695372155895837358839964009285186302716994377476533194401376879144341185133095278737543789938909612966585564279749527020798889946865936797724235422789940161186877799210604805348220276180312368702049600069216968745800585648409603490176063191387193997656119008478927832936182672155805663827729962136193641100585955730195103230288943240673330476977699376993922568153953046176133525457026651349688939777452571668482240656933703816312653509080237204062212503443268700393286924787509063239285046918787279713009948025702136269943018799577702644275199791264785993731971352853751810997737547828317184243769035453879146055132902958321306444700878191219079020676817035009400682318600909056643934030369013964020030628657160222283863513774650201155424413419163408991348569565191812218008439260578165652352804068494147441404735447006479988455047511914397986607205503828465657192271255669029034827918569159488716571041971176307667828532447949078334352152956885984992980440970792569041077447941730354150268680418905182599402841920917425213270857649858344850242029070104534057338863264732250972150906040656758104440801222390434358667989216688412135606554288395050229734745297214834109775881920746009006799225588478530423501400829869152494615124858561727437552097658145849795085383875508117212305964892960953260475094529649808479679418636332276682468966632920664044568652743575862876028854316093024349734157437403249225087735720758398548015791504073064726796121840244128977037378117735820577334416510771342335133951313133786108966493287850885779008913855893065369237980462599698477454727878490762190242386994433373105001050367506118586661984020771544087309677270821455895514993212434848458648320735670148729040714456229389909900517950621609818955555566464290795983493821711308483994731288081569774193573881138393872694233605233569824561224171558892406728490493740430520688585309589956666411514118323340418488869415460623244575118920104136288073605676236205841801125687506432610758946267642603511935376571882617213628621874209238595238055327201384866739545074955877584571404899307121335113100155009304652574974152935069966622651127214554860131002532396308276435055475212117278800199404500512102561136321168413952567351999789605446208128596278818285375073271043490303163739935409243259086685716920972496585813081337369068807568508109877978060562400325641707956577912302157780792966197960934541553315726529953653811709618767438699615773153512310318817126955154921354257060436273361019367188760978692634927558127569538751959846968023531074637718611153095326676052068866375405406402436023644472737005861911628839427249954961157025940916555993869900788211717850836247794598996887677687078249289292421645857247056372779899711334989674903655625515804408949044320076985088149638057355174757960428232111532758365171424332298570018537459505789614275056642275036403964840349196797321632969728265549891388238244080512446408770553079569127930854615519390607840918422325447925242527637124323105009623758597460947186835845822174112164750222950312389456306478493180046068815429116589425658992280676452656399154771465114019563048572336792749751958612790210662648950307096303621580147964239925782330464258383471927064553845950984854232712778336220291240897720020738366380896269718168032125081491481657583432110817549178630422335481111458405457328099853736345376256530784637703640509558568348992005447518682871120805333704933478047409171235667912850345585822817950846859195963518438707442020668502476950646624623331290835496538095145570447129778520023951408343661298042308579404276371937212720554936616358036480352223168625270634938197580514763174550593287427605394748633788892055984263639677361441651433580946555505248581661841780708522035803456313085464931977548882465290321893413506029682033269008724721919900162853790593209356817488207502180320403191196250047109636753353006079993137445322974286239380657032700586432803031540961895694015202997903507829656751500975752286581078386154102513258062645043219092705163850623630844858673961679783017036546259930265338056180035189790490591059749197810712817432137121680001841903978819573238967372586738748650763089412442731269667709246307559122786754267151212569934873607877464406744779999318392070201890425842603780130137247453764139892099082175332150090918931366810632035493016276022919384690104213154240002247308729654260074719218025526936813135559622798373702836766574942881348979955345915604257174600791951316884788800805602759062248114070489218818943407127912113677687409346120552302270504735544043292096391248584920976264114874292503995773536006335554206233902698743142496921699578731795810856829992547845671634401434267712480140485070948511276414509630856061636768676168820453823999465407844980401338670272411978177446376163017003109596882093696456666262220025429786599774573568493756595093057967720902027938824157527460312723159241711642080116877189189112131786208002395073113648811551945564107392203254672949383468891621710383876803077442461117597950783053814464139821924700157279591900282513576648190350731909442238931541750981927072256341069588312603188679575380909958558593036218588440198920884857032620586763896196398731422271092309257378136694782787633557621531675695141516937659326622000872984388279232924256529500314404691223902333668217156635400611235926718053404197374022828060228126961921928922679377197069612789340913780034625937179601108889590204424010765705881454669708237800606728151474327594666480715637442509122990054894904082685228643106393831110093288110849050973928672230550097996031613321367868790532583677490928650501957274567186266189872925655484392681443779975147797585072650223534830342901143744225135983707536605098144437964731846553473874117104105703704444201645299062792112387577109084205580642017729165605181942839052023519958442291786173952171564105684912461212535858950857147309705010355559669660707023541701613832975032347990116642172965951742226843596243131757004336068134083941548825548306876791181838622760216582636824532164246249698423302023345112752711181636768872524471399652455784559157840373029939187892589848672338108937380708082316921911868882237876069610404122117138338545726136086374181953915976659542528173660245341212272703675900945357077521659188459583047344736483091781011648086497890463806779863383468737455015274380578351661596185897894334406951785736337691631586221674790604562378071658058833791115614522030918852306436916101090243441567463700638426183254577489158439643771872489692896533719442639018358817640770541964063223342388206021403854013259979298968841405549116860175843435474353133817318362024319557898804878567563075624116936797218684917081518446619863576531938991758458323395163799136175721662819376101213697869107095356142410611431137906203084501668434052688682753696128090772176895983367651907406296245011225129165868671536157484171094888133545353733080183415274783504763225065483693088525351676154426749682950213456566314582301632758386103218854073438442975866483078461144090641894668049592128535163778121011509209449037042950930365646275355039797555253273214928601853842059794991690453639664702898814245110849744249636735923927192820307204316579455070760396497766538018623776205036638856287142100052045809455032283901258783767810336308571687876330353057219219730100055338634065274032438741828982255076331815925205497684867934815720501413850082856577125497849558400212538512232160078488439302772627321342022189946067568255857234680552043388849367741935298601899514599918185297077673011095473425592859001521463858033424727946417910829278330913665804127096398248447573251038161150860309901606694263544999500687166817388543935250922923794875407007291374511228367297189582876658666995986618158271012647584404169118829933462562701983850797625830758059506963565386562202235552368132711979870081828894723088538176650251448878906719296736275206190576223003445260271152763205883677329543362828917923753932846143184802306771058417932727971836828160356227940403806511883618443346697615030764141747627805072325245079507715301990690410351632798069143773235007514502156980180979921420394613662851156480600950186360222607911337140058843451728191062099045308336385906179873402264924488617483803277194606614803853682945985756599411551409675272719965862891766079249054412867056378936651475981100735524350560852527161289961078471511623518257867414752462587054782292916128512717324956064189357635640275206446514923216540704172541657053269302759510135018916820475125639019206418631885622739033580523148613339479837082731463663208007942299515001444601159536202651422055828048573605729012431453550535005296102151916244342458669901514237066031208278972550744205126851186462326427418199968198539216646871628543330356000232344783513773846542544704687349812299975425424255386091331356665132691296503894548617325089293713247875531537671154856626327937111951719782392958148378462811619551902281029118880717130653007516929581047471948466495503705673592189348657733985252462349027369989355154434066988286186497443407558757004826618819622567040487771689105922783930759655326870290297125754110354885976226599973928691217620719084007443090811785063209004222481683015131689704996887286522360720921928642195325732846290358271743627749593469044349868117121931573682073602034262410799033593600311070074137605943759262498236345610653751281657345738890652248660953213798580982914433995762261368718577661942034465023145998524968976129232547034146611944468624490876170129661246107229209933651748614164379080954816147819341509239669929126836469923828774447487655506281935072622994747912357117088764626120775784670068178513503544670237156437266686065157662234800838705223375465196727992845042709680859103510057052634800548495210789484475378955957142369879011176166609822452422645287269374375694636401848340605549732256051149370837498561108638901833061893929947675534756444376456734245432299831904959745388122200223084800285897182861955620229539513466685840105014888981253212874802436082199875371457681239690730869739721463136144351337902862700656232640696046019782851941181200676243210960974834027963198270914283506052389138602212139404773807884418308003417609257024800489846236342696949907057577240490806084723838598870684943899387896102360195759709736621380463528642129558215855569645845052871499432403696571079136692215718261798574199939211016612270406679512014585897767546925244618114076667919310492808578907062615193325696322675870511872365753130210419666915525691327193230460506461420807200968036102382272252500259061378220477845792070197963426813435322362408223623100668887391369657271175958793386236534737381033508995672895462749115477142171542761157873686883700635394515442429184076377421432342936590613094184056958199956782745252979805884880952407202468195151951197043852588659227696800384789745707256821877236544910377195921435469050157331116855781539264475995075849440385248858702968252130320869341576498602790466132237086240416616002482718575826936146995326154804148046252534113323599440968225952589860546327477426976618836411530547109521493394693390379108076070126638400517200500806576490677968643371235690814059922358214106619116264171847096465907424780177705042286800881212990948854336702397170418319825897260336215823547632720630830123957446313191907737367822996052877204964010444409812672471156136721584037663401658022605812151849960746690146283732135600296371041146156764107392867979113466283006775231514476262762415290144966779445274973054374484129433244668211253319084356137053430122127565350196569603958254193968896508635579513298184757790325671129656648991353983082662335630306199225820501380582205177357188266030943043279968937861843971334200514543919410641844406161388194800436857588558411412451757254762516104727988012510269407732627708228068360546043640379522452101358007037056345521148204461504645595745650916799843850740281711115571142998170747410103783809617835714279963119701173422999745040609150987019639355509721558778033876381752620598748034644745716018424048997055547744923947409433582228660195541528284954041091829328398097419237580685756219187936609371242877203589520131451835520707010093142383929558302677286131592017422495308638875149875220577907125421152178600442510199666791331739212818135896421053166852865171955102537677684278020357994732385057254189136447349780679292864474101393995921035478568663937490900812671670287875736816132426359989633224552514815059618562664105847939386495337106360725488818822948787226814035516110624594981509147303782132747715885156779028818418936513783438875616727703948520625407222205254018894390634149198557941707410949193814806089145363089133859080528359599828797186631689303400180137726575194282781086985135877463366999894418614834300130894381154125961567624490017518711917352720927798905943357869162476515384494258958246626925330863842120505559856837086152816608979950427174353618933819341275662834190247101572531328234226647952831521291763651092097046529936794843843886995204885733659250514050057240117325900622982335878572470288959254205894510730326001954686583636404194614326999893122157031662634802325812944007422022155026202947599112426881946278083076500049169869744277653466227160016750709691290732388287497138167710783310288240668798089989409672584311883336155356910462936836753844570578393522042609177677472251316091368312335198889845526788121549383998363317037767516108083881675095429362871172215776024891783766011786364647803269202253187474714824035774646832694263867346810843458260824686790772698720950306549322552669554537531802771527148572172311068979459903068481833200888529170133054415366452570246071063264149302355478322046095144903390817643241162717541084701122335754144682159741068532007091798411883690142061601388897720192124867884741314538931152879300559829998194255901800451552570983851283336239382719073780615904797937973526216289384286268785765516644831054740595402963502873120682563220148821650329706330231831764568224276948854341081301795642377051677107074907850829955362642325915580525488521561556921738544640089904646936135697053626838731593744789952963381424120932047710562820065290482616353029891739398381277137145065545556841026087977646801886965067033766991728819600750504020861120006639914197114345675408587911790381960995123907797102581228339200671924697729991192043091201776061787630978592639563491588725341988266881511214053163321355465626199492317063008795753509905539770262506700347149058896573656377762686936685444931419082166383976901691578349408578012814080241866250542083017512623305368820885205207419196275001491809021633400360386053438710449607324278932069179033388363860295853310077200890354698397190503774102251900193271629413932982867442006099919757291233173096509949263450067785124380341892992853152754848222796386120976171545016279770183789931174381233135591896584902079393237825526853532180524207379476915753652534764257222284369375499808890591457343060933031313570494121931888376926710445302173937343010307996038931988902580183811840372598251460329313936951000888897951997169812067365465457924326311192846927655294130242471585581290664515602385120527038891191493557064168633594768431020561159112657766900589776637268162378880429194804601284032851037756135954285309656207326405823644270257238429515167811629824072194431335629028052455290720473925441122821377132073527230958450730087435146388393200937465603419572790373600457523822266283569625620764196166271670451415526546645102854316088459575558283925922423877659672099868637409170115893353953213014541155953113561402266502309921847122002990673552969565209966944504668983285943212169166519980617015811052862153946047103535194977275403434854882582560398754379542190654189318524960794508174935871636092260301734087625917906555551024757205965426558724605861525936612961239683333429287609338598648858138297697205969558366033421122578069173753096596221641226975024097598838999595308332734125647183486787909126683288366725794117660852074377652433594350115427160646030727324944885607623966395599021707422313728900160424398263134562050383676858793015413903484404116045022550120189303346045964763495475037951632151795149065825592739892222410187419386312873292714096425065087243673892554648014164280573805506550531912706415802638379056730482133681226748004249888538019316809394905887215841081681598639069837722922630826601806382479545734360476812657371139879489582106460868015933370738540990126026929600909827881460286227046998336104195279646475731655698490528597741272236650721284777475518407345599456462199492271040846816582955018602539216458988643428643058348216361363295846893812461863727961083409463894809415526848773225986650029262772655671309821130545658429338755869754554229847642807661993773063213831584436596283841188063543017596109998299495786117357245392603747005607298634060525787063053271468746333327559803517249993958224710514999648552643804611140314512289262063714124953073781652677451621272032187286978557414176737149597141816241061179839018845265392435015021513521580851355549478477733550489341153932689325756455884284184755382185809380096693109087127146445347724739924568427151150272108552593735457121547931266638119251044214827944356323503652456581804643671369892650891075247243439578616139720487218995154010913931676906156848993784978269830596009853356814798884729383213247018194909681005555218997658461455925070895063819682106381396698939455486778990315726618828044035525945139309075718540891569426919368141178613828788855292403494347706962561427704057747481353377159428232005486821903132850340145610250033657551442768888724676379520593717483467900098333534024498094611686822058794574833088866482330976687841550263427783027232932855325798996816410775896838205382308520532874170686572773611715814328012893731078960534631638854629575223896608498193739220575713080464422580960074647006297292790255212222764788314647228849586709258342055825131546037287125915928115626758701999382736759305609286766994945160405509368024877917560475951464402264036061391260825223899541036699300203883978743170722825500216537368808868593938290709623410016467558153722605800954324224892636282626987673909311301761057587863934993069955380037594426208097744150950618828572356439897294124434948621094990753627320981988130183046942636323176508792697797199307406536038617487696776962060601121184651807129338878761354745816353103379798390544066006809205233862040843818022528492785105599610215268005367765759284356517805858503292983839492760709341578838771434133799655609918561150140747997445579152680742360453307681531526442015426456451622818225214001722253276895097961979775646091036380393055883749925668274708086130855628432205913666315630955526772618299222726955324557717839014530509174493418002282439888676482083636768659996787497106489748806888506209929197326477093478708978877433209931218107152268053628680367732859074308818498389960976047367405210192926995689751912336961050464666793058210389137565151895340526743743029586928692764365051427522313243734048175349912459394686282845011381488833566414158021513073536118443422273892778169570758963194104584382779165456609499942707468799533490674324770019901086840309981297864518394489401413153911778701409420811687245813587041452914375972571093793377227215855363801710505666146463333096010564578503542153715362584206674121232521000165574600687677128876398141895065425952627721699842577007773744136235142599583905620641276750307061479710490658746538504531477700679983530928444702398455387695675484700343734483870753666944520249522195602685023563064831930484289424277369563562195116470049792321844542304592892057033891773895692284419197617200088179348167174496734459279201263279147566077064394866123790236063480129247436689822556384861843965476876565770165803250354687130043950825107291182320610761140867539861224619607334241631729797126991660915255507583333442693148856927369823878651822670614187836015307622014326972491815621543359433303135046948876339229267664595944203535017349448702758111804951428692444069907704209362562227994706007822608391301395321715880190145325769488887491370842114183126201559780054283297671727941144815757131127704385673567325217693014539271341774401611402757015814743429746448956622003034530801182425646080163732665471283059673858927021600710740087620540997301267893983703484280122817742390429210034941097444558149601587809278636235207330347218756315759856323169095141924853832413561326555479404296950343606123578849967021132289722281595685522039879000152972568391048417237154086157493291193238531135472939479846310430533409958057525130976773772080394490032408964209663301678560946695085759602297860586218119610642356099932602624798060046207933856886360329923611552844161046637533520882693194829250127128341639395828537800764042075578710755115227128968905855148080320580024687652714382595445951844897353664007694150570750546826539053023346619190475408670187337007013373107481813428215498256117559909175261757030682255608688112636470588082280699995336544369801645189610173157888248778265943223127968803878952011950157195548195238919693636219056683323846498958991408045437839563301885752557130586952669693653284194024849512682946865499918428527727614117188341129011005969641975984624299174453497418701081258053468376360211761095156491110162390467944635614455248935919866785213762378317542754860624751553738519635148079116876406534858588646623464236703368827796258753069119869625651216526831054495572639410970115679108717401522313726966964309457505838756798569264190326101603971141469443346566373917881379158744314926630743723677442411779015063329739563124636927631368486538404427392761831931030679663348261767710756438101990608935055889580956468635271154469065830325758040871634898688774929554404531776921364954095598338231965257447608287851573601410492022693882653032008034672661780384773643191800048330601711600836110474415858318255691213757991856152187787766920539795278684746495677239943085630823452271670469833770713661680580927676496497886255357840979346740119200434607488393410162994569980711939627876140421410848865780628537931440734163595389340251080942721203806097099057645355614676652331166200450291562232214537896196047707583559017306674339950524701910620786771772045168230283427722358158394024536448680319520480387080529946834705494718234449877372174627520351341068076644778864900194996260953076525663098821088878011674920603951777932035549424953927565037380319182709364614769254613986574288770527490790564567927131252036320276437114099409263138439752043604842477223238454314881152136647849434029836463391279937512588211879713803028903008191602137278500843032260496051194604678423933928745601325203372633525085731302394260680151669532454650438486201552564735797232324415620036564787642741605739275536257690330930921767120076579891278779740519439439739551586991378534062683585055217217864668691373100422738776333868671481415196510981274941493810567036171178171184618760898117987422307948330062146693194504203243909851523077022154521335282348950657957799671125172427272330152094008722436986726748018128709687283437653724579308413886098274209519832428932893085743158228456810097285294523214679087514123824834603406442836401405669810503678346819347186033833427437186328696874825773598797001017777632943329695796628502783273203525317084522373188528932820435425615012867732189674338005337681222998714932878790877733672986116906505135477074368037553440974303786843828590221176213278469229468389016015666064161474116443339057877272822905471465866380997413103129379675603333955233907662807570979950682393838676972047848450758216859458326047992862876412774466999321681961881559299049030196054187242596720274164135539141940904686965695973684422567600060634369701502972217074735350601787575941986548467409849645113553169062191357089937139219640014186976378031326048872777604484026900038121115431314080275473766581331073687318432021719713815164908836418758892804881946144660752620805855157578833384700128153247870830886877479810352101631351529191794929297636618646549694094220001125621602464606146442754468070235981688938034255279706756348912726106195346612621067785527899561944458247184276858502962546955556155147475736621566636689106797669909209155680828825403101130663276100345187395042496130412793746286935911557318277740994224197450202493760196654575409058778826413803512207577971320459598413840340443542890227826463999980225837046149410825629792760469539172567336808111412403684818289172011938540692096706469548977797471309237713534180890391104822539180180498358291035624661685091408935079352395648529442501342922413197833510722571147601142260662703481348266925734259295848906542928878044134166910201679404749562491629942100753393024872442118737070844700502970364788000440344952160004861454810675327926844768969277355295498082974295224828250456634719372138104831416544914631804368679948223585094286915120653471799893241294629587649364505398698598088418174161036207432130848447386976784181802476887224562379297649255485853569725691251157592175909267821548432194212177429220452733540593153643876548469008017280716106283644047328069647592481351371357246501980591010908201526099968200934721656196364092316577858755288509910795579485646702516922746872906588819534582601525830519007460134878492612220341897857576754743256621311961337996195474636303258868286119572519781756041121700051414026611223918574838413481259795624367697388092096160947704328114199368450102577400325603138385933588636965091100881692118542697300948953331484248529298695363104855944370272282017671869159605215135866451547041186715895361130950785225858438961974623216167174982751954422944910937033446710731706736507994306425273368517019826045115606802234823359980813093778329949357384363028182530150290594278499329876719855842090482993380320596911188054048910168570426638986282682421393438780597980072342877942600178122817609912780894033331054801434842388840891696576698698991648444816308907878060368368558085587664538091731604719236760733163179132211729233504422585110612569171292419892649934113277321708903547787196767450416204864230153684534364457140721573048789653459902471988334552535295825522848851472029796149843555558576381314360518736603649872789490450827771770564251689042817218846043498312951628855552523114691452670867333520396366497225171464965172738210359067788197854829657168805068642533218176129901003112692706132146628970004359156993273987237390236061367460470424192207957106659714539313771453605199815236640428401442695529052525895045370782258186575190467721701422272279519128119192089361931399711497438380170108910266034056240185903052384463679851358878648869755921261307527778943121270389162598332574697054897527193086997623026437233968607924390341661584287111195820013703964312483648990877352029413800337045857328898978951398965720896699557049341031248455672790307025955883999495551161703340799642791196228934626687031464611036254828631708879445727396041831245816730203118544589877670889830758357811086225878493438363809330812482973556144517465931947829909662149263992291192104279893017241911367210963621525478532856451602890320459185445132948622445059695415825117310181854522774251932418894440551984782667492197115515855201791733172860584888235634398451645225844035287340802978105558190652398174173151102154203980075331022408198000752468866115009345427948088509579146494255085537294840502534432075590921356540842397179877418643077214776175442211642593770460511055321184898269716844644535286222982295209340843188934970376222171279739720143432831469828509938980626186849059205952590976140664155451465438011151893277238035761192549207091481695384823666331403396350228848199958659764259747271282425769571653005513939466525487538563067084357063329677384256831017136012903379454139992602084844702022248762472787696371663821220366975859972728702220793388202552800505248317101726939819784567937085363445303729107847665372325165681777817658297607020954493792515544755784109835582701015794833161305533552684075193082049367511523800556288566156717630116399189062053365083728360016486339181285991577027535424442688873062333683405505366620787065380019945359207388283495397884510485874456588341670871308501222917973415392918376905602598795426100395457796745161677151586977622871873005781851790358222387897046372866960471395395266609635925832407734538772954674185817121062666108346682087732204838639139490397824241569453229798214253605680751291106194553344219888141827212702482884692439010715151598679864060925550441580734707975172070436118384912169170810017909531713921269700915713588783411502153556080373535108664917655868937461175373389118283081788555939739201867772135023719257798558664534150081291330246181991937698125374101227855224356532011769574666777834889687146344873173056598282167675313035494214971867553872714943534968816422802217820136347550657044590219498875348771065282762337796742909196941080625181489976108552647853015663332516353179142807150498484470733882067679988633576144686567249069064258082774996877420818848611663215786323107449878233807004631690327644061260869053863959332138377609349379905063173063931340602419034869193185961582345743001546583243645260567889281821303615680709331214911198436302914695966454764933631431646303403091849570006509606765874436797352558003614386459692127365216675479860497249328881896118894353734227314494700061986813734528004586731130311557161814056154678727402773042892068244974986369350349016506195620587687234379067876401703983783345537117207495498271776520362940962953438095507258183075271675788104628661584706574183452724184665920968980802678596404636328372243012849091545070552052970578101387034030701838214595698092536847398718080127316290169547088146872120283063105760046342561368440305056790764606637042812972698408110739431238813928862950745629200057144766729846972296136670798334408852060640726496933060021723755472084383006020712520664292763252337445932013547954798668399292405812202952155523623267789102585824517423407905024060730053962495534048485043453216323387449469214383001385989144678963078023779867413308199308373459135356999396655617591000016126763783461447990426010975150240411426913420983328944241106038383486964511340494113362802841750314960649391990820312907444616125926630425003881062251364322223591554105290974407720854645723180590265782408927538708888128809402968428086088503666718026598355819791307397962778609158250012578507610103292160975044200450291137344519340164750136574862133522356551053972269858488974423132033576140989924576917575004448659973596395064246907856516768304875460837183461040319753209236248613434276106697002829215672690705624773064277951001567757708662676513406714903178355611174897534719190492605635559549179508620954044889572758998479617587332740961110769502019235708454611421450063053431852140949643348429284551692391544268582889050679305759234231388855281233000168307242585419818478793788894130243828740260140231537196475119981303459346781204212670607479550825772787469724126122216541257879565975827836752281856944315185433152000279865651409694834638920793262723327297435410523141615504534753713637363957015572421921333284928279074896956042871812934803341805160868936416141420621121183141898596399575893447518521001139595033268428267052032375117718036469334380963079744786161987254844450318744996374739664419471363895079502127546531983215469836369497699750953199630650100743197636707763585242705431664082792732291928382450035454104137421510570676093683496001938433509076701301146838824996338365862870634793462749099415702605932551957385480818304571617401266255183132736382842872396559287611478769451219279460170701847172387622370254456755959952161555201797300636040902506730551965777017930043405748009664729968599593728934278633949813611851746153006500615230988708546773753398810398615161798371209580157532176208273592329609202208530438634262263227501314221838749858711243961781243694743921692109946314485575234994102525867975924159638392816532663082728665979979516212827392273777380489713750608481573552361282753895936007482202374736450770549002043732903483848836790536500599823476911107336815484084404803807236475745297951267579090739965711925918781515336752817574680589968847162806734394024439163650743841897143745743552302405780094192263851836727167057882653721955665006855271839289312706496269362795113436509568286707081726529049320457240832287099755288845129779220210545511967226636645834762696434034723435548122055031580836321091205320152065268779199902913200978736835909366829652124905008088864687903084554920978827973818687594845710420962789507302467448424414154647981569139752518634482264544061001270986974581563172469434977012777714442941261929023134882870244484968723571272694834869196484452790723598147026407957727318633070270862222278164680146584875508057094128525039862592553129285128527432055456677410228067103639119939941039641440084415534554930387830442827626756848234949720159438701546868491129288274095684255559393035412823716532406651395082574837117285836881186241242312984269316675432272190873654751159474724653327416707311500868862279265415748830678153625722508030978289486987508612958793513574642125294917608264738038558793309380545404650171383540300200021043126861546924552479254794668698753249751109012696048583792225774961143977761009161341303614852364830012354241653497894757052815371575821499579301129371975043029538025940907542013045407702981552762380323102565585453509683954596161529781734150865785734888189351785597381941952895993509105105609747309929329133441158044611187168852328000480420509318842435348458319680890975364460043132926411750846884411671465485389033814933723658312743079765120825965235105799965919253824827191264123047443720077581354822190213675943462203317162970905509733275441366059807628456210321016048403037858223717928297046004952053545816041919317419623669577518476146263929644764321571685483326265700145844206459048507944251665029684104162116234195849022485906538441881298809116856908958233567652948343749768170645869018561623854599130566389653816134153697655707053252407555510652427484681340994214339384939471564086939123116189701108824658317337910074449039097255893705633596240270735247671753935042508475233555682839392341539466768040462026710379736238615897198714777699074010036343075346807549307785214541646440524264987482549109615552157310218015818970518233196430119085526977886615224377633027917819634769967738432783938404162093574457638655375192007789377125776914133079997404110645662212862690716700775184332513722156566896953380946885929593489460939890946540957581811062555206748203288936633644196261330032295362704990539890024005714050651580469980850813863597478578258936366695426007216141313999843054583753351987209045476915275776936088393687031937962022799419577640734797512090887749213921712170130453732371111173103652800086507534727537430229204939588949316796056850311481602575704407968958109046191605683558808399841024840660235173066872350005696789214689947092473903995560847312299425541868336989273744210239253935572025525494049289500426729533236850012342674443853898040721849232701240491162000662272523065737493513258015788667065243742646755396632214492761379118873173833064343253046430472977000579871933628603561138567591500181121680146459215861185968205970515479235308161596414844435375899755996038195654995920389087039759464996516343512577948537569103334332615242225353379732008238431422347774127147979483164878133097207245849643456053445949115294201165589237332745890852724360207494351015217413520789518039643651462481186785135879339898835791673982223536379409128155178464721901652997079193798047958365298045371289977462776346230104847416115020101083393092063870187662981918924756754539438160391638982146658989791729728288179788392119117460617890389347892610457721895156694044574473543270514499994003488149570289868836876164157716354153812975988869752131449472951566723341977466316625751029359718401410160973345922637346025410088845539613528312191808650273607700807103512262328314970196405885349048894797652060364355535814828497902078357231219486330751758134300362152369795002846884809464929193006561167326997534826829534630445012833304860317332416417082382178215668317741633680292963698948614681861676362586266081308412090393481920297549613431147709194878518061891377275986142615089365581918885195918076584824889866654703684266088096856738761981051955914401592182988037618431062725840239960913448545528600225097870090044865619391533007142525439467169813855842843288684208185079389748340969120165951026731428096172234164958021079997072921531853722184325686439662249122595211686089250356384970405471886311870238071417681433916258859191460865445810352851992533487040649688164915543920424077620032080865951555529285922128298402216672045897264292502621602820552395728603088769063115884883892904308646103263425922482057677680313851136224486315369175989356798693911889147456164311123866142797526208632671603726651345130767640325285188833744442159294296480688489070471617070750363307319346412070313994993456258663278513618196682995433651008580968023528985075590752827625331675457544531881176521603741422808499573590120001162613645889011973522935744207344742413861001372281603564887405088823196735398201804445918649481271568381304249988589972284690539593052056126828095552854347719744697362688537311048610631788540247702724434345965896029292010863342264362297673244629652971991228250339199649884624255652348902830774462540997439176566479622219347994759250035774731337789702943072329412949754852569631436294525514143176622302862948216143861281776475378493223290570525882497214851732660401931487428100218620307770384905111807524964443891152926643595184216720391532974124203227867238663505130471294137811688526006528322500502572631027380995456830885147919458347761393570977256132759123271250567957693813861917434070644670888016951080399055255466158878032772297912271045366472685863331201602214126743199113508595677495248295900588272242424731393854075999708580569902033283312175784533625158304175181480601842939758850855285142843117636409599685913268725342905814691775579237982294365797402979039151152744566737045244621041313491986497969161590713106633992281686335143441030602450955069582856346913352658705918432951728361429941572752087026635206457300150213542513736124128042188973804730159205106878944416564627994103145771108440473306142758946996235793121297742191597172700553063144649443732686076334983001289067725447217258043359707449996559254531021819196261537986430792319795991702505945353745409682088192183504231864552722167388780606523527804991297488912309867931394612998804645048471592295191864494082128573522827037166267469143958536938102018824050056044251622343079319387376808866664454395276964689076233863016704934798210220773367133722087052894592207229239758973467164731551223292614158982259322996996115835246017978018278435339647490289534345525757729725135703055770730725577722651891486343577441692972264473728274070480957254142002601490710694052239743508265011890098751727448899923268904768948370517946625847557599160447529175670962563299120395854666995424363583025782169176642737148298312338906925885305049780603452147557316000904073753095402323204675592773766500677698444014557708177852298699971930583442025871585342325197057242989342005476463783474131005539927447738219869642860812487264145508896417146157132369284881806558962516397214313651267483449361070291112568590469683656531696210217080789273647257541910833319357371551172831412593159979664459394094365175834435363476378186239933148261286300435435723486541492860048464368472003229348332199024664123665452536159731584184379299590926629344328028928680259318542190236004046497782784268352892299879671181576754642702144395473000989695321030974705812913870832519626124112045822868635617750429311643754078691152720633079057987034376141204529988768695041893135001481760092760693422737764008246110311171430162415767626526425897347358348995740851207118162573606672551162326708945843869804180911919344813818930705279274278105173260459772130245324728784596359587244171947744294581186785307609269344239766408727064998950049221674307443359955705844063130767090348463887676055747617016833609840145633904346437991717724632424306343459119835714567324494595856547169909969460781807146218732979937081154328168927928288669158431532378231781428652693238072504628341391487239901177818652957130752710177519156646995166394422683525815874967787633639953227514203939887292055182856801610789984916183479218658073111018848301469661232534367522869137934181156114400369173075559542339610700808796291560821848177927895259249275722311755480513137932516777128608165140334886243682574760504069121579233880606213837543680575338734729739851228132606482147263526533690018791573020434239168432639581268679923277004189242943576297897355564182973892642109217568380088336241180611215392731241750768172655756622376127820297330444932172458796861084402008181978268699854334219103322938116046590647841567625233741660829732444827742191470770641601821955343107442095338080115657335354033113570427101196851712882169370698913460522005788115268529854318147363356552018681189077622748222311519887970931861502934713511302418809407247773537833044924450053547521411432154873560917593000548292902009850946110617712619270636058255153663766385688064723884472715313135314406873873964208745943549290117304200038349275390501608612760415801681431467998936102094020863933058274027770522519618751200221857332292909209051239581409377549628321947663648854879691104702709831891907592493194761272976035951548677499954644856198032046405566066425433516343511731071687189952540302694440719988811820352373322362382621916592734645508450103595427165346834278250327517420827701767245026085539101151309180825420874894401523089510845104123176178845328077386740412185614073941500400448617793559525447319153466265868947369908089004146962246923141342909066011977176818750979070503594092666919054990457818347960101329269092222345836347413384436324641785908705875656525650455937424632322179948872681822699830113884348443837779007100559255930269199564715006436885691740978619075666252253308387281818235404049326216185966879104425599782020309777488712927491677610244919044814679272838622226299330300271904290478647304141159132974754215140421021504552950063983878410252475239987385396982762974351522620853074319655805605274173636197682898712089070870728122560695579727099040893221293707505621621611750927530895330468523988447890993065512206252876489381222040670808924498742354467482176201237237018674228822909736453298952526536684609577854497654777856698225955663257155086263538825922978555277026964319479419102235061504843518659664732257506383155141956526969389539339912398744817791951605096014009160123532797647064339514367199089029881985686529411792997548345890615070156394117794258426324792400986307631524787631230741024532221534071437820184469542908079939900652279131989318934980364219973976495230645976536632373542895888595361347140110433330672125698864546590439818833226202574380480686303863456833273017722478874188771935959542233681406772762925906600728849036454717171132443420028930352389865450585863457237184247462963089385581541292335819656067101705105934023993719280164073400419902477204484359137306866800741874588926375646629957124240753877621535457720914298124656876109768136442478879736981752775355365801950418692051191404211926814228496623260470155200938636215487439635050563964322745425885890626285221355031365460194444338927355444464968486376362179375046366930856641645075820264121811548047693311806797113424422412642029224675233192938327115361649107619620719390864739869696355783660332132225676070911424413465400180231987939122326517710292109537154772674917351436720561946903378805204525413591467477900835187759151315481997134620456614518105646528086990142048939558030161403155092076404119957804690449821412659973107705613986066527548129514095675861012539305268109142134652345507669394101518457407242102380224573009580158438113557446363120762411954050933529812901764153369425206134754896347134951871328964071488429336801848128962142914340441696848972613806148844277731073994487570448701980587674503392825368328925549988911319877967963820581572225093643285506161900275441834547046538791847241690603666009829012027726283325026984234385327085621566548363721657456449727108732475375716637814641773002477317931329405537437146059785485403468867140930003500949099512697623059499066098321625192886105628658824995527598139789365435150205256140207375834518049324438484059593698499354162586223651260970619429292926397145772513282976750642279679678507344669995826278541910063744719957343060846400060733151080429652085350938396817674398590372784290784123296542923334141966530195881135061047026393282762054686082918346394531437312562751613479520650765123252721937144440684271140209885365118097834770086774662177099570496385945276439961655785538093057093335444935848918557398021624242202129559938355313984759723396418781221814816054865916399839829648703406600059549166570806908948259409693195498758767360282177860234621369269282220524729764566543418760312020699655998470181930526423772874124694828085362502492723757924332835674830910403799962103656624278849560649800878921427413307261140179625280066366763657118265003271193655604625975478125876940079240004258014273632703951938173880299105596047776244720326813376761946541750204714688368014024996423608893875222780333441046779403359763264117306560474195378811274131278807071177893266381458730896780733787845091662113568603553837044468385338631313716624269041938819384985712881023679772515097035132713424524810739493504211216480360775816413853578043330598631773081258006173361266794532115530751577998583420573442698919436661397488618070116982697123922089526578593869485493588893938333307941009046459678511005170798903242892572352336593316965081323184978898184547636534932813688491798808130895612412900456978506871507114753856058253849826816154615505964477870863821497432521796987107754513012360651052464031422694382875321055855525523753598135579892105777421335312233949054247006244168065615516523617382012492552833047723026597781149277854096783326022754461369684434757862643401732880942286833383786392233681642944743827974580741046428083095374549094309016279433166487431301859732710592960112589198485997406658890414008241033219115047149029989861402805692794674126431755447950471750145751236179217658589828196201170857984101717130814591415227770630304542402025787997077023312559145078989025478529641744999908717772485494027903236882653652281961247619193941165880273942712502341811753326154506930469566285072455890634145290689593533859749791978310587352204801594462006825274052239368472947808613797294936999737334434108662024086131510738073705810777208527741283190679040713866825091811492519430709793879412988450085577128007933397225336618837159765557793615466219504993981036779520681429769263944368744124541068318526058264657994335315095406784899618550173171552429294914277327660960869858300805909117111304579368694068660211125746873439379201000975733667370169967786154572220607805667832332349912008984571401819754282491240646365817521605683327633331280111887335739826434916967592293779269602617919354493685163759991379784259792922306759669000197072600937470036205114171751321708331653863473271902172644854303810082140695652707330858920237432784223569683450998058190513332081127092439122022861060768833267726343790569777673468218436614861240563564879681991340325945553115568762161218211717593188436162112420710104044729514735957477044190688825365370881555030855837944105763650010071719979801820658533360704073129195820307716356764869482819395374339084741848684719584683849618062184934533169406232691098497131865401273995191790557308648974051375291158950295654590035212162988558121178511986452335976129259062910634704868394602166506150736386449299445007356080334456082069213518047157911543421280606612950178553718255230155513599178161994613932550369751109280970154429248724010983139517375131058227736174810538153186319010628036145412609190998180464953361879815371270634537065771136286715755173080960491979429504199887713913252861857079815742432786135901072228228534170811445425636594965531235734926699354013009459495010828681392229287421898092841095575336265363106265524849789140391725944981203747664106271730030527971759933701350383396739160791075669745388399945554080599037693812434242410904222880138247362995105700963141526309985927965520688757769501329157309007885997199890543232526394482184186854133151317040791693866201575396967916570900104640720867816576092071400608557380455734288191678793261731987808190681921607599441412453302649970020937338644971511437759125153200159543698360050187655538195078553322376521062812793925578697097796963245777224649353239384859480782973167714367540561152923102163828911934995298030191498051407141601848662001738893896047741575080896202300280341017002184738768278107945508263827121281474690507625783754697713301466400184093416768263753726865932642828992887682682047756341450628693477278761153822387790621771554739169312931717236875315609564347973400060750135032359869077755359764453116082939004852281977902081656005646645764814199412034088302173070257944748467119874021763819341581044608578900891418855314835008305886641127049181215217954322211784195889764924194108027205196100134780538210538951658871517170887809807266199702176055360798558761925894974117847129528419331861376169476840962659577604350917679512365811339648471817588813830876336496663774383618270666338581831571915727085058289852896579005283783114366619368955594455633048044060969724966208673569161307674528559777276784157452514555812643872108431036323731925072245240753345485902569767707209293320463525996777429766903937383917513913834215617723074824554753201804847276792398682378177541235670909794197299356729000396865875910903554816632227550834172799027090382986269533974573058967435695315135271470911078110848868031656309985655701456070718077846336347815031788426136795281715414629647526408152167135247057983071902644046204566283311932992148043776059854393069144072108658513828216605754199762938253812679842155681990646904737395887402695188520555869935795641719794058010595304149128374575789641235800323868305460109553752640620694449577254347333234953007943313937448223473419475751138872205961529315218328167438937401679576068986657931638213350886125043971308076574122623649073114423150817251756254324600048347952007893801372491941318163286918302242787463466893041064106280392900354375749557237639076015828755116113511770113153702693913609003008862376253202039548341370539183498491029715952552017650379172764306136339856926116717464980775895175874177362475540016272820155425707717141487880343192820234308176707773745649943598482729858116361746529471529426518019225597998154445556291024863061728007491588496500147199613682202705397496883212182895682271247907340524796988261195189487582697376654045598040863698823486863831744162682623526402760727719914706114121666486226802921330656794148292273360662277149303351078451789877325512728120670719072345057790205741510640769113217553551383282359114297183657288230019809419648944972290283602437043250625586689425780310309588958474416662300633292034401261795615907082797159834785288446614843601088536300392100122630211704297954672361982997953395587583696454465324091692841123709298800697803898791203153270061364282238311893279222043271411785872704689529242749931361616428539361066761416495245801616633766267457216722911024809505463001198856311038754783386028101047359128990925587150617292600194796866829394182028706974552532173682250007945210725395770919667915304735130351481338815519449323416017310940448953828137916792017982929973118028830151628329437512837402736320356841048743804791113452295179108708639277499593954741323400554653461051669824498752288880750116993394255049202247363284513037058406977681051120760626532789266642579466501103231045404567177019076735294114616134227151659073469605711057470234477946053315469681432293879638096234499750710516273476901249098306711275103985304675732038199952964357435910460728753387116591900806123661230466522907586709327371334789965591496230606881559948639539326724344698887797823546005583836219560249730476042901258374162865026462471984765106771879592271431083758548711787109979055822734236238018591114819034195397609811827714380664808271561274428971617679162356403624343742981110759176674143782477922309667116496661749307217191225526462414751612996652556115440392620251116662590023198346704929596847732645471620379516796797794319572436006542270673709529427166432261362513236106517227452536037637378451055440614101472471644580784290868326947799455916189968829683088377222377391834424987863269560878131572992838092932573964210248679265495657005685516339477510099802770766087251276933047688850944690428197059370200371512718116935861287717007090992289159587053021084312925425384044686999375134769052599235901303023640619009342251605845916902319523821316783341055309105905764354964672767909116671866686655935748144765814662525533453051768391382176403453173829317763990719302172681621863512205278807441600358681675346375582772035096729812427854503127702929048347220872342905603120303911368381929937185120770088758143160749065510294012833443347148474119900062197007795667586095614044710342570911119983339356450726458667429664453103679515455711266783710653096039754879860696584660203963005260558450217404974505877161377577146348451470244012196841982103206665100465203002537617317919809485194097685516010854002451359872017604899664637237108881352196375724709579044760419142558990281970266008703599226814543906278893766518103780227906137774474152124670922746502281984508039389977615646801792065408111960346240947093589396511595561093125645057148532688568197455616556245116920499506257538260715138277615781378499351229766649925347702591075677888699904702999150088610816660743052809171174929434894416119673653789657946759191953556588997501225464174680762066368361961283276836297462407919102065844944735490579141016179047918471840383030847342055953197361477119365422780671629844261357306700759285935015203253519419344564335757862515498047587992824373508902060490491427034890157882865864980784658686039251257684613381424957308785227744761746087108954454192847324342681585515922911919596670632536380520365006488275949245716468225405238150971481495343311078964060297130843675952628811793782696224550649653243966985646470270536415374168064271416671313656523061401648186827206716412429639115351059345587775147080542695237495027664799696000093424180010945110883144046952002202790366247629677229333848534249092454540551975989165566767130251806982359504335701814183044488576176185300443810226622032926607314606943296536855427246935326920298453336033114380924926040933910603373151444447118007220319789542664304477994895493128748599492215156001632421900022812773896423793242560158892257937828221416478881085210323641083712465625818336853140934609951514509128505898544684747060612205010878853075741144343724536680202324869123797565503820649047892983221800150979515179249460307573721339580517330969048692723405029373035739178136245576279328229461813490480397053843386888812665180899513483324896476535396821747005196416210078530994266280470534825098272012772692017001449271212465718041049500696811812062889370771473216710409416659520939890232833238163505934452416201348233361963562744505166826720344254096610390479790903669549885498249034130614846455069751253062523240104192831343800203967290362372945133105681406729459927450251437508013110219145747752877269361444763265508805966793277846293455024689408362423848361734136078927252906798347061768442268028365238698639998518714677917107402543806373545456484854995756041403131003122161802487951544731515712032399577346029612522570239560785117549905612601868918317040172680104480539997287351315295280817694217460478662997815849651663036253240880811240779267813708756199813590319483809228008751188112256594728049012615299498488643302058180723448017928028437066816765341852974447673584515578473422350195265010156427794371107112405887775972465640768610601982106622252800009471852090143909881378195448173571128145168986786689704646951713473936615650382688315932239119697564161785827070139839584677051953058109647571138278028835326296872216810472663699930191769237027279707880433787038442674162641092796861121250685848760444922121039179161293042052669172009665358320113346641478018629726168993321117332526359881702808686866606646283632865786786928148125864715844434881672312799959769806377372794282266748149690078738794092209398660470683663344014414318869498846530045180130250666969698356425004527629573275017791140698830765913155232506481924371246386881049165764806393460471529619155755781610682081314481066071626300062616658922021844855897878019724611870704860521318473160665772824591644611984361076564719105572644780799728452021736287715109093170777036807908665450389533254790665257886902567999356162752602831548787040148637842595241871337167565525502366528532218348701274292153536575202316474815482183790434749642752946313972775674927455438737599252777328158217007348539563188359745932580621193990518079892506019094412477475451684031226643804176869643511009761853874150888867251006637466196255293164240726281500812855924149480222611841663529231403614094164335877040519961424561175473914302743801900972270837672450766179871549407936153433102300906177760933262539082209514070238315768357403942368389399600725569147333640705907696268694043350606375288237310190641452217596116192495524159538438016127115543803746588926960598541629039601354927110089348280116361351547010251744605889430726724538048329837976334754524876624866828885676932803866319440323860898453712085345413842598603054328885253102249609354918679071382992698473897622383796395418328599866046597195058118123612135005876918414461636296852570797914096263114799846277743721257388918662292178340240834151222183704800314145023531200904069899857576264200033547845927337384340382183563191050875374993397101268703031645537773124738370173440373476902772860413371902082844465326159625231965628864394421351744433724175205724915520682936732456317472390808552966224695451386952899765135679808119987952577615319868320751423516096324835323393640777843257542840250828413902354145680600534636250325096302152033390302256684464180970555532358969915211020776867087593469919982364800347920036923177274733452603005275656617959458368352742110403390779779028983752455372113268585541059963850019893947675881540351930648948843680475602489259564685391035364677560391364836349442860499168759187263074019088670026167981902186448600414129778671804543922868338016816692577769789241637719090853612580924807444574817874010881329782595891657371370912299224970709744364296134635167899746972492881631162760568529295835847240837874667167438355997850015023232172494479721486248667932203354837504928559371743727655025837580818715194499794613369221566604228752457775617182775452437190795253371123244812001409085802245894343015810704470474854578159020325832528761013347787170173985125186293119583515601637483226626839922210974091078984110095112337889984853382323017676567369963055946028905921890580324572904440639797106607797641776765317356692355392977448759349076717879717992898343702894561361251471414694481459725443246363526166377538774488438493649711274610520568790855128343319920366038989337467915534548417256630291707513044666996545579557637133566664850391636770943060759349911303974588297508388531394484375810156809192386118522353034657497042117768428305440358195807357582616598391760661337791027442669658954313347344835758145046435219500450229685826798888121870113489395178601079766198639703375131863219804734397399659871853249910535299770801865427928000134463845098620200142258021625101709578593234993252085194915210551679354598525875230299011446026630078669978003431641704844574959342652890958697137160236205409114839385748401603538602524493462104931849826090698612759106852364777263044862992054740534281453974627428407435202758462739895798380806924439035050209643872418860421437973042533662372648307422958646173438730511781288198640676757145199769349690995357239236234052971267965375405320260963260274002485924901212653220217580758032626866878181365277067085387506678060811745713831580392431840862965678484256547927102759826077695253178656963170872780893165584597969886371256712819274371001280567198167047520249424465888666962346780052801198972205296167295189929991170805282063988049910513610668604452329151595631178087125102460468351532478730855131778629523963165688008141340081694306013204081577233259474813242897997953646352964853508394690415785322774432516436628839983634766561661217579020224691236900035241314521597601996187251239838153305456265149156833585395921648030288141120631199442827058181490904498644106856454891468059479671921899209884448712214626901980153834364772867449120458639919997342133313683748335015288375914066584697740621639309352309001944326181906428093015282270240129520343254344087900832028688762438068185938858941654589295904017214146876121747979208060587965471809055169702311429208875015872460956716789787686821470891371511408958821548200816314567059284946778698885671222895886724439504293256221101091397557147974570105044024779219985034715895882971477575928663637464632702855638003346327707655624078521249808009970827987849366681788648970072154470783502439987817543193699794777020311931260966432288074868652677076925761481445950464132940668885900922462506050770401747043238338357995608735639493691851972984363268718292827042545011533484661750251784291448263407280174896319468813236601606799868367807336155112355743022004700760474261514606868711565440671797115298381622822257718165320652006024947902684446804631488051368358700295496587957894895461429938461865341824851833175146435148890454884861067236899680166887775161546307254591239761811708948043047023725774178853025278440855020325706754592496579280327721815354856554165042334331544563868684242956399926319790324601804840288205166139676402383053581563562664481650133330869621935541109776804978090108844108218221272931883210112280628910784108824101507934887237211350275252498818372090323798023767628463335994557423003009162854731014471016093689329816398374169702285300627221842627493217627194632092554604827918585428145912326935110935629450362967519552342914903291793776980325469121977650476485512046374485643472098562789347376826022140485622908101238381723670315865794365119211466398169586494405740780989763191142032765682823102567748913971136075485563223721795011811426401029768413779588945661107217402528113280390772440265412882731851432191543632287196739339082249435970204381955081806831628768040568400098540287868984655110122988500032790996322142222163037772882260014666844251437749877914704376685383562584559592409715966128733704800483451198031348569094480975697636560036860796394611164996651930244824989485311925379187625750535008773772849278214533827489235670169792802315722172026102720624929911588416578698721991092474615009020685446280859570485553087848643228276553602537548198122397467826568132645267850325910430998503841894476783941396372781389087558544415240175678657415226349597889795817525386589429083101657604734145900066406977913459070358878613616562105102658021969488695412731515854076928813807062031596516693866713219248071836571652481742880249815236162963321190135958653219594430011458893882509336321529766336990614195282215462949408930865143245102597582052698696073216767225738065801316966026743121226713388833008194085848024245414565641557663120758089865213641629131341893903720074878643023172631956854431704738661923351477321901826330848486981197300281654095743693924756263575957152992743959357268649936765679057895242967310802175746873489439673426666912219026148906472699075717321579420720012700510952165035038436947228320533698363029771427866929249710255976509210632822785491216932738802595497952863995251461563205018391424387874195323699400351560944638996881680464381820704688095996767345654808843520192985905726108540863697976532985497209831866478241991033568911780302409751295593013878829875193092003250474582019493323804052208243231154304807996554063270655945178939579352012779280392622020474828818768483327807182075374599945733860861383711738244109509719880308264148336578544574863013298905590627825613628647371361384325078533297276930336296310129789378725598734566797542956454722501922317138786466381600345592184968259354321713936266888338783086088011619443866976762650536549789265512176310025454847632451093705806875931855085481161481539231134315507816945432042627833236966896307241563617470545871776277671711561345904617038117332962021686205315559188979841421488479840236415918047568659759363054290016603029986271373491441024162346257992636388736776007019838953504135193295611361959449406204168362162849476857767942150156652205429226617927648524159566883553387675017863030976299779704311744213132755283309228348130126230788092088130910109685577836707578271387816529302759060168529702968250146643018456698583752103547047705370186763440504678182540777693066294728922306937762837569627803700952731135942565844987798677017568400149098937810568573279413181938466884138825213806951207682454697484678697447653923403881769471892489512479428746096395012010087001519250151748351719361080829690624324674212278893417718667245017826713216154794287511602351728249906941096887949475770469986364568544515925950369306492089657654357177972792807710589743640322348641547931955265333228435722116076891209198983214056896428398088786090441623237198120755154887953967026322419408006003920864989886835057177541730450725268180336746153642162574323784908946910043690366993354090060870472007104972827833464356888731306065923379585151300701321319176927947252206240248011185904905813936966448190142587571006845202075148666378615148311193682807252397579607650186081736497467800933774860808709851394602247431412639419604691583147925704059510494201658139295855668788333093949304145882764605334397282173611063079475447724921266915625681897025209140812852156845609340425962455137648368357829911903398569569676615834960517911074818877886295251286829805964031821862802974398919878887192554971624115501796099060099769341470600152656948565485631291026380387443007669706569132459294325366736353755462497209926219775161463750362220939644099903434548311564485691134770059386552654022440018142272031761039367591172428745128813662479612444151293343388793298207546633141940851477312584051489133057846944823590337419874962697513894293957775595535302880784888098798680969824904335306548526364838095359522710765411889866059511134482711526274444130497870385433080813138822894320155608000430778974595439436266196593087823187274472715571535254647952081155741889373164401160575939571737709771114855847340853839987953734612826086683266175113002079324112452817262782471228777409600094390950953834568506019722483109127389537625998886642437668967207297662279598693268757826751350708520069787365593696698592969725950058695974288706616980388528864880749142778182174121957372590734188046397745688974705089913152943396117719119815682322270303837735729559992509002861073037679919187390089085453104150270649708508098742511768261948838417731223372100904980805792860249015898355784432006411573932914366647826668887079719645607086462890249702730820585149553875793915110735631248138642295947645951481181415794880248041614841059240437020065912522975208235533512340944535731581058347973723674977212968161983617975113700414522580532411366015218461324513639457884014013289411899957274892772299163773185647524013843633825085968370213442201283315000179847336221860947559698923515697552522554954947152764959446880861190098829154007611223902071432386128790625521866836799783619103475386233755353968580138512209442720289230314558968268437067495192548661315361493782432828888972792606490758027263330184232811542420915725186285782782912393688347817617446091852528526972208584134143868538935700078125417796530926394111581608109616433399612763343046458987023247627457568675676189818945022450008119980279606225340847154192744355458698036381723324086095974054731840406890684119231672079415091505479727208669362188177754322247337294634454990483240870175309958262305188889202780511659460164775796168116675334098348352516635270375090181633349363949567764484394035395860474030403798494243888366246738643975669889593004120026158225017742769247882561516102119067377285497189481775791566746042346503501080664834912209580192480085791300735483083898364558836629812143017870119806033127598514388425978291568116907311512852726822664052729695079379204999418583698753288463917581028548779104778715226782722264930898676689831504359866896987783846872686078229709405771947854701914594912108674011464557389392314294946831636389409304802855883989029061358935930620379555333791221009845412452893503839921104358304165758227983329311791305599427639501170295588257482900035799146749036987571430878115468372499536296296330345377245862324289393836619752827651148909841592379687231766033542869180151890627688098143294644586773452224853621737925418831250192938672771945050048293474898150481503968834174219309700199773829338323326550479239072748030444038819284392206267871004764756438262179017595560794664939169022585308048632258858184350361583202766510787745341844976778178087709481929124333251043066138103064887705976075677027284373602612982224273119010654542887987632384533057401743192734419667459514859945768076565371584349679741959247392434215341951262821378650348373933323134280120149845340685843556003279196042372045401684341184676960065561670032922520665507780864017672102006140273647603377198257941125914923503514831174806252888425253708117598451289113281862581449527653025176566224670950833698576168678754755629553324663886429546232763400412768377028242175263553782049828850566804893489454662806286579215823527952570414633291643541712852388145043885027120358102918119260388818212890541841541671545742819499751831982863349236897714123038051634786552326739748404439815485385520698035871288711405912935339199591037160740148283627547427836943636393876010505427008016097853081716819867657251176750462136823790514616153183768504774904924179420746979861230143563847881295821930000729137543835446470992148656270758500643550378087394370767927625801023430713485647391158271906807301580705945264154625709010089149589588885212019123984222373969505612170319878032881355250803049999612119143865791059451417715948079582668079882850719930701130411951332712205734597260707955818916132028929228537960064357679869675485187207267469556744070583911063167941831328986060748465996782933000934258264350204986489673010954761885191897307721149363555301932034322693400617256924195924320213140860349583609288774962065908335637626408743062464495206262302726109136796728230001556596303280419078549736095357496900183402066197834357891740508309408175401634888890008519397556257414839608130657962875294012248750413006727098553632330115337355811772534154165994385613185515370634419537769604261430277831423576920470888008705134076316994224832052396619885720279288187416562129692593967393820970922730962159648910024089738146426628041826998558116788724965973399963745700421404181696040495767651077631658087852060907230902722470038849726631860437394102892681237533136098465810043314023435583793590188201433545505235422192297698318149525901607115746904420760866439610987500622058196911741189420148842650949414343493147889450267541590610780769370028326755868548858033796228497534595004894119318716760695023292977708728448510569899763153575008366153719243603892127963934878551795855673581226372810511401467836222591562351371186095289980803246022537983540758080841746853988730291257938632719149997893396041983607641554347159844838548568875722468877331636668198007043520653230593139934789878474051269589109481995559540080654492192971034801842348670641063965263348181847353330476663753654715433012961358328556521880243442882367379657072914407945787493221561573359140801876438401775680516175215439497621983520850733229679533892074928370015273879086373886754428782582668829510005308732665536162508151860475653778365560797148807809673230289333303901208761356116873665108303280279086638903758465756385792455339452827126162834371250843396688262195778180310763844948636300837200795845465491871750089403326208212704120984801022500647927859051943690546023233844279282275553649074480800194804817903103667417629331148387283131723257334611434866410981112021165230051445032934090578915333912187049073872167124804066529706007448282799890861696580263029780937026571422130255521218231295515809184051256251171425152160243618339444641099977211021525695679093193074741724775513148110539566535888173218370026192078622260915627811043670794672843965060180199405894243646413520754620843580138256228656195627432201874879664696660989565590026438519687458654244164525509458053668347810457679717198096733083354831874197076570519321435724311591230097553728564636957231016196114109805129778812777016366422682571871147895552781717646564247995419635104501575759517630075495217476984425990156309120131095725217720487950277285951937653257676261903899325515724895169342809959482155603124866462123619628241797677685521053097508922095951449832617411584843337806049200571668225368699003037995814137991854887411257070740752154585962112437492968128084967554802392846696570843774022900490360862686913990030046488585010726893872753404731460636671459040986166560743835233567805074187722814752809483787114941056873170571299447941131587120287352913493023504701759758308936909585701301433176324023517640081031725345637762672586823012826081137640220370844383334250476684988688297594366477401187678216400993211186478707472579250016176186825051677181195313636374926353226254289510749226177497169878922208379459932724070045061854298786292884033788607159735547261586472533701963841832744288669453244002884115121954059775823278425114370655063656343076870676523928219172883428031288505150179884617892715989964148764169054632143856531171080864947013332743295717831058195285934344470685894992351961212610363254680422097783663607384458927887658435096319365123347189728737434334493321045332096224022939162942793886309062689666536754650208527550944314680165979531651709693829116840829739758193468947546669969603371334106227105656109469999885246962139889742621434063483197654293066613338941947575316169001908847876863984937647096737142487330428229230575568153721874688886071346510264313882774288059834788476808533721922292901181941456264076508014015536182578446489703550309710420804281845267780936382445655959596719295629415285509576125924051052070599989258261494497729999295634756512838197973758521871150169416474684207913548926801217116939008113067262034666462463676756513542185138007709552138657797681228393013556766482337853909203919982908664504422515581419104596525822555158956303708071101502726668371344760878459761130939541346806461395650626278919296423182290776583032122637631392418905428742078512833174938655533054083858852726080932281085797811132390069876696383798751653875001420162396066173908547316527746917991091924901408399517369066598075364453423458790001895396326710997506125530756217426817460940659998122124785586660766214728637161938521906946579738036797095179030863680026987631852848144138980549429444559579272733714580425369783887217536438598022871370700546031000293053789261244447460034853303602103654400399701105912841164976694520610956068077242721938481887254449217362177736167973884832136441895108607181586638353029381093620654764754201245811829381094868521767648011275940673909151938050912318140116404519806487403505131915683457273210109478885296029584803936743312535398991210223530173951549325305496549575913260698066819842584130857078123835014492510423242166242596075031843154458123199928290469134620293336742498480884747428614908270695173996481170396234305722174956929419102750210128201339250908866026193014949840495631542866494902158130470094040836967069431397647181471301565602124768588526382556570238389358622831246577597723918324297027157611373880978573744601784604408461741574816067502734096768491345762001684977627200348298184372263815178073161188680573725313060613267481939308978165699448101400226756666661969756834447520781448329025765382493216981983871956915419711932059175123969199450831994383355799155108595990259236942877317812560234788301473663375480121757629812276123949342037605613637051646905201568988089184475255234592788208671296994430604508503035333381296485599402588006328415685935880373498755620002574936447863703652057745419812167502913983776504650493832908243269206371974199066723219280462682662296641177771860506056576087733377968335937469285568057762079389788228791349631937463978718862776326975701322250530389102098804665766058560113821883785092586347712563080948265838128667190341390316655184598876164300130758462638658160497599246461872800192426527375655936645288056940468447254941985230401577619259932406311154045748279089053066381998434382545635994242293732669805403216836555977804599584306292809561955417202868662619552704537811832023299844561249521347470373919185026311776881272608388653600695749884682955470131430956602482538362232663377930728461391868626093429867850868805626402557341060373791157563445271620878878589973098039069662666085717382688903582038922094618929230889278528567549033812678086327262295247787663505051349953961964605895282045528235145366711891623872543860070111090804121511106815894414853707243633243985901451055597629306894700901035778601011848469824378578356540613166507027530902068605545312615148725995068263526637460861738647466736691518999961083520168034249292758035857579306911003440938807793005391717445031906104733581648780288277590713492715627705931050465494625374056331468044696010526663101165528292208210662143547606510649185618335229344625218813017076531506143436192079760647836354784539990241067374238172790324671406447157668703691964669782905157889264864519773440524035600662967483282876413976855906806381619522682566865606565674789819990008511819190901647564624191803397558903890252790795939489230079610362532034008351497347764288954150127340471615405379525759101711178040104809003883191706489419279809123712507524841406128980982825340479376492870793969121011989717040017482421424300914816624413013627788210844046488334984622148232511266640368573408686862483359623071731062163243513463979688035714702426210572477905391630668078010479496596732390905903436536423499876613565997059457015356258228779249772600243920584016237205769904560460813936186791442270851260741880937136341168796461602943718769996679684343754972006418691172072542701668181181161207140530448896433160668660273028415929793395929022229456084725581638822414811867561642995559635776818840887245385669022778056814968906287670365381751972366802031993339711378820408506431225259218108144100078756012091110496597873987552418451975954621484933938325507597812463874421232918796395764074620887582277948852395907588947603311331045586835376922085851146534297305803093076978162574527916223430018142403923719816812085796916412188226341370731194161491803305682515067383250709502398552416771519079420911097112629380140368087991198643603150776067540202462221638157145173333291340299442554387668190054335671508564939346069107760153916870417719997798567564427916303225280142010264623543167176318469214216033624669517598911042957725415699211733203478531424453487260032743357826726988790587418256513840959188403373886313286769849163672956529950213070266030332810249636044627445792919676639645442155415387088779167078801283850848676392631995653964380995749076268460298331150714925719691324318747507139343213042322001040527267055006473077317882480152058156103360008276133072275802733922295367784816444656378346430097943502565008775542463894960230795778522730814982538717183908067857719953553302155501260701414912958411084001140013094902096257211606771942565403827939983520971463422890481689528759514122270565426172083374237079696224535843911268607665307605235622245013791323695900583048473280092337825546741539134187128009497067480613864757996712163875381814180923223013280031114465361685019117412448543260650555848886944142066439388518354382667328557088125674734204474840661834585720247155773123470015564479302622127629522087238384564000657446236481818193149002064791466718465753534769726758865529346067594980817065926609024300059873243713257352830675025526937258966803375463227766829887064747139457535541393224826374914542154171506909062155158434900473154152847816710554766403370869566907218443116129285546507864831866125033421981153549657342922677212297187741658936088846311183963603979080045930427898396469165252072766882675010566220770529940855634062833788308484718599839105574536065864645991812114893367170811690706426503812569574187604322853670259931667381447641264480011521047447296858441789062775028579340956868194882997275190741826829901577609161241321952773243896357832857502545911322902604378810541183478151949764128784068813777133381695034248146373391990340877320704365775599069029343914168011420656705478148729601962957966601906403231405455843213865490367300172300171510918081199828591447381318271252593029709809286530786125142713221388507799270798637008628793719627474109180811788973952007774092762364274637367991471619714138656037841687749693542401248836673874861094631049504138378781803415230859801914607935130301584594852525952376198618116858072199041602109914747494448217246998426766023324098433121673049658973796705694680666835414334082886227872363045791521797881833221641054125599029151089252826128902480274677126595666502825586070576890248094699589937554269516006767689393649265670256640898675077384738958917250846457942736766571385230600881026821039180535240049339072993287490625737182566969755004672151959255994471487064362706074018808304377656642358088438222963852948988373799293651224055620814121351881248435336766427333599128487998749484777415389626800713546283565239075809863610011475222578613777139489263305813309502087720846328194513633153099823395014053275474192545394742238247275631153779503825734297774049770386558480566303224793076574556245808807558476260696510709644766442934889496331283857784449140844478068187435643991791302854984749279252599206877052374436632719354613435096707120206285591963627368881302634186214439518117368746986272498350751718142383776010882764798591865826229035329626127158114123786612053570543113893455851181762784851595263564662462685513217768163586507048374708064233001708901467222455498972591681745748652735501033418081265307972053379631814305023992072296581677378671026366316293158020972925082483906392619371658048764901291026185940815396839750350199017365802563916146544102563768214677169808929719236197776639608515179988002516231807041470109699569804996748398892651124847556439627261057548260285608216856467937288623030906454842268876794327472942616649957342977173113961516260154227965787284102264679975860953758961217527360776228510326859825306282771319391357111343815407821052566385454422633519325291335119522364702536345369338189111133960630987416265412598893730787326053078239384491856169103522120773649115816760495511486126031401639327266430362381504234803763800006541640809352309739222114301685987082598348333897853349282772569675569028130294198494865656656175516341797945806453749857838868656465738828815637518807285811845561178178065057605324074011799210351008724749264577625915909436791421056960028386761661577795967019508907138419261614375047419900420778129782526759577137275579460573572868544443239268361321051502818646995518862296907228022526811575783478947196789225754399715497360016753194212092259252993667943048564008189001040357803046955738343513698983922630771065384394348853106087585170074524658837039556024311531254357742700538394669796222709655084867260089006612563473594857418605503271382384541262187405233942214395422664796590314771781041670093687376725780298590972480455489009648902295240679417854168143137511499271121028123100206026041759835777445227267549991855876382545349612489313164692598355729219141261061634719607142222372075186204898397747829953157516465408069309171992840330704587024587802971382256884491347260093667590864881495064660164312586542721684245320397568262914936986242327830584345847117172017376851314789390344461907373612986417334096940954161199603019386325451358404416322587039962715793569412643887550678474916546182789122804435707163379315337819865270180791634706323160505457041427783674392666088007607722653956266868824272821230056413346966125407365996097454627303326599275905948790471563113585886161809541134532168156174814946338949205503945047677473002322180888628994546602851822963898287931046207568967213736069204293211916036362429101795555464279155072297092536121185655154405887987268502474686898914929642830012352232196054928055277566876933719024498790317432949465826649506253265521974380856544935745703019507182418056936998754874082051628117731130535493774578814329618389100892489995110231629106251318744953516387416556668761375965908903519724721303135940918824125746497602060414313425730039159901699651528273256046470667752216246914404791851232325036095532551218142739643885026229473961043890292907571240304522731634058780670670744513726079506585583373064025523387903299277760663228920597954752245088626515034664674220556000303341606888493062995622000041486582713428653865467200852984546179298786836938593467131691331019505939527659283283081338846866346534073324838378558703937489073728267930850662585935134814286796944340480002958043191435341928071202165392825998347709256179631148237253690950184964705982148275650863333102106941772000102145328743157328188957153067546436724948704906860903985581165065602007685606098552570934207515712676295593883340761417856159196333101789425500688946539338741627520605289287188208007051447548441444615416990355803668344606229985746387802477909994685898875857405734752141112808793105427423247956158014211742732903411554292565543548637895164170066126454943550244617394492313547405371326039216273560838049592346580198108026027574376962167384572094273193882746813108380463098441477947045409733561980533280212503541369037363618754709260169218251174484255907133694944071737524337289138082108780292977021309455121446794790217506408420052311330733386021251367876108218882052931802464008461710564299406629188674535189987781796234053006545383456532986278221661350240940313737961253931388744939369884154941810031328280364888531675105077294222028964490424988015385601561443440666861703480861945650905866900073102919280126997096127388458985344401942659762906336470040792889619346458196663538574875681594476936146152143971218576148715834954321483558374103978287092492755874486933157720485724365712963835262905172189592256493407805822863909416277071078767648142174360275463982546983425319890473058162933056672874198068516523557182179602075560170430584720490041615246989291734916047004953811702440789284413764884888484439994331323765684341674275847254619828041728116630995079820672335672924460037896583943472878757699024796764048831437919861483194654748828317696127987352072519532056310953097859767266130991709490983909275416989334578878705164280360079488409075450312485248274399485558119011538579914796303521553638150017149873648288942131500646646940372412949722298706710360020055485354950836514790991247249217590600456518699227054953496718780991420966844368386267171510331942441175946260549364005256466095315407102539335311606630622098021858845243779722970043862909393014499539838238379270389026930394231793414097455164003154475699407577123767431541178110472190193096328236168214727750776678221758587571937272745319142815628720624293045519231763633651958997665801906361038164355880968975655042538918945288826967873646919657204193569293049752803457702578610435984798950834083650408730514620972060335877896038237813700185934789700322143274499597707943586244613241857886757835462705122236233336756046388571063089771073912452819694365634722396951852744110115922946657015755775325938096727272930246252097914438052605142262811616827288378037091532675621528714820357913026684065545526185277942181655729565349678460651374107085901523616340287417817813267611365158381455992843638469298457016112593710317085676184716531271973053028227582298185050741803453010418995991631583079479445889651566226309290567490461230296002014131055214292253788455842256735505329108371781655219008784409766250454044566360911634982775000316610672433843295091727533934967330083499290553755818179118785768698921234752168026677451734748115758142262642235717099126712689090444857736678130701181527322882783860811035845089224174694087207442139243723235780951726672817204362631492288530775241900215155651329784314458776199670403979327016346756641731650161742620719920151673633324342100781595157526594426331314766209204300711369988845781640442530998941876072476485768088847515304965989028927841465214273431161731642253413537665671807945678374865773131270797541782138656252706651008552870648662526478787053227773297374877982760794232951467253331685047135017487618157158841727180684541461632232861091989896550772182240054506660201722798128335495269169893936461935024207192685561088100031794169018971524259053084694936032116600562228370159948156742074097537642331446090880324266461954020226240624157989921886161783725554786009502123506213779984360654263348736839784913681504710446165572164101265910423190385468951696722888091911852492958393935760169444509736028684807801842141394358127265195623938851676831902523365900735995654589777990073501228579108417243410605459129616144094913156710854090998287542688349990796238135389824618733279358949428420671455006879120059269912400347990239729677830518446059619703789175291988728810042221521034463642656361558458268177374816446542879556075283871876750135178863178569780088752927536526244640349178906495707114523599494731872501469167703968006679507377258434411328871618426288542345607774072657366042783279682538812265265587078058197133352700953666578098853879388543103747106185193989592364269225462676732487512474656065864659144065651906572161802488005904190603451656483139072434867742493052188219418656287326806449914440417423576117146078766484637302962500140629057449395172118892049531862108140590091199740994172600554226331617609629672448952322388796012544348716550942233995344541111374721172486306374571789514870313689765798620900138867670221247089282822770895433498715266347495668714942409235238644071426374550357491698758886669428239282860039544105232603332158608738655445294302136789362044368719130487201668261940769156616486329372068954847247711563853829404436624299352758157070416707005917407470056200826217880273390022660647191685290242561502701735957897183863976012868256376792809915616796134752954021636002155345051041463601209280483867520872359830634746152668233613458856457402557031068949241090957889762563188013453529843745682370111337488055323153891720959425525320383574732494874503512347470096887317051421374430767638976618847128470808383726681401606968334247640676415379071954516778406656588046133947112320728172285836148757586987014092785502774996053918809019306179271232983704890822401163228879751499082652677465530712716222357428199283378231824402086921556345258206076095095366940355437366003808737864198412117030726208643425122131570152691078848631738731565280114638420689069740046136254054968595753924556580687264034861829834747680529118142189632630129150146516428797769911418709613361359262129426041124171422020059471803404686428326490646037610854644363990230510577869789091176835618670493064671205821834633208886082923096108546738851494906192852966106430690080918807938146757747484188600830001339071117708250401382181186544764672037899435094065630222970771334433781244788583432308442186098418968561781626766907310561200776961274640692011443079227339865743701660050597764806465504622789799974397003434378147215774547179100282287307282402491600233755562417228984248219668648919168628485762678256836458756017727609343680754353926835301145868779689650722940279064653319630726330499802917591407136083373437359828544675659177404541597419631389717853934565221803084155443610025114589064727519281562853449637528892559937335432968731349697673776511373396059373244335927956148841014354117225677327269958239742694231690911620420965664675507594721968194956147937521682197193247721145867503596753199157763827845706787247802916491699597745234229735483920214316738125315125024348854794119911502485841006299091403917599193647821813142296664252107668497131870568998567065085987410825270780500391040733309169373974706267946929085645977198007424139001258107356422609254627985645192821251538197182977142586751506444953810276997082031474600019298768336185486808701911645199406013233250409692849099558147003590494390677509698022996330744585374198602909077014286301700641747105084539257205104843362217612376439401482245434554592655680808073889070485972756944887183334614065009573307449674408790900318265216618319040973146935702107756565139788191310089099078115993895285128716198587969406537388593437844433741018823451530942002158222480580289387746729317321884944742369287713374236497124894440137134434735624640629335005965629782460459537793723452655419860382126437481788162842180682385723011987256665192224085858204040229989185329065476860471979825072616300032063750481069747584728434879078263926268062135314976514238999981980561985193044429467814054399681775370295526153699086598476433866476985968387582801101298939952013915496991442170148178426385634906960911555601910725356647430216879617844609387770582730009189115157706275119184950815399142469269484968363854581796575074086287450236362616345978362503609888688743819071321852976695696587594931352022261307387817795945093758519700054476116570756683285585794234771625125466795116061810221312125411597381865519789644928472304306773035453289776050659811250047322104666404215897342064764713909319500981936870689785220956204457412084950323277728090725897440692609804309109979321229161624065655171800720438904731885143028854114402510864272920722945831262086475457380175360353479594284338857393728110576652144514593198623223567864807497633083887485701790895272101999686772881670175334502701057402662647744085204389970610472606885312820996614545967212360180356697096162577829924105111435000912702529837612468305198879332876678979908291663205222939263824945085122984385999187969466697455409854791973869002023218633133928509562982299562823274989550138563973357741399072223508602178385344434907639183870517324307650481693809073778041233553563770596073524649747605375547817290057184070431951966632708830707108797079865556138890346919767492089520983947226235868716306864441636833507624795455914505250143139929961745807554856895367857293179662971427234020803223122134742694532977361165678781814558732956145490096531961423094213316103481444971231143872690077041753957133879212952223671955750604807987965925699817497132775010449784282499475422910488948118338451965674159939400635662264842249333533332948138682519250186045335391603254459312892506176560072414690676185671525512007368234113507851962653587007107677409451403719040891110941579502057187434959084004534411760346058552838426777756481010462727257197194693873037532465203409267406984492497129000368776979476756242396393338570598069208601851207166386760424176568548026533195081520000620980165125511947333105977038581890141166013619853963203918701980786706825054637559846468182612443370294817128374364729237359642674845686595971601482104625928127963547314699101816029546018205685400458613227286747065561873805829084958573002263854686248662373449829329076705013952898165354373799113973780953485124076678214423506991861606448541926377050038086337134291882645691416791341927389974661178498829597050702994344099461241026234889589643360227050487331058709283483387661500571784865694244568070504898556197140539783773799009569538225288788756599198033351846738038917017907997710905132977970857086511530137483104120605882435010045812894144311241731445906184637094459440693016190308281852652800562232858801396840551160809328360456727394815238709668845727223287487958751074890619377008318751583684393043319923922748505132102248794801790411305522702439549653710386901124990678572403429473171975555564914390483294573670395862985835677021901273944264627499597785831005471264449829702183111688001284699169095091350872543051350201741972405143364107510590845770302531009841809146697372902133951276489122898185449556961967277454782404035394646101217285946740307853455809266401703951808779752366787887750830484400356344158560441265364310812382293238823482975746930283944873285984621744600939686759939330520101457343188821180150397487628581974086541271703159064639185760466317142482223639339261056297842708897778134235435948247382981396101656832522306699098140265955658218204093476901233154377879135989962080592063039122209048899264888468230827557046091303829226392683956489356912660311794466649922489307176975447242013289107148995755285032508421286503250818792051387628233875625002788497363714551013845460372104145190404581124208549232417066787704719496417184150859605759403637911973302215077539606530073250262532887815566629212853028158820952091252640796457710507660220088030805137336715959652998467181704539252788975271521939808088743782680981275907836739717125685114161492824249279482102010248608330345817768231174447218695075967003847326223196209686128092624765228737207108036123265724069859094178627978191373458164900072964805158627774991029072966004055771181253290113681433996021194364432133870910972425356620260741708988850133986437795177688606401384607309140657723954648259289628475888579802881654974850537085752236299584220350781239041352550701361766990063207198112359276433635244897865433691018557460239107106343828239597056686727948544654892969881534948812244601658547206665714405089566850458763866363605631269850950578379964335753427241256203779143065349950332340270518283419128291419913676229688275283643791746277834879448359241751279429005713393981282239690296126514969464686702606739073206478182470286288504370710030581248412955402937996383057133171293821108170088476033745368871842516605956218738394595076708395891751287658106383723410076934714136798571820897276231935270595148533064536570464773577293462752731652078189547001100572342928683248647558064079876000602030847876780140092014730077602734995524283614123228279981023206391909101182538685023149878456026698844050974691590582410769120329548936736786876721303685449396767398939666476737472175372205441358151851985880666366005632861553842682395308835940089758824474442359674663425408189873129802849985119425957424541190750555074111673783195505105671496863361918816214997677200731224409420172202186744653904110749769646284221130711737001445443214820238953967497586969723708310121061220185235205174462829958152948778897755038618915824049036555700154761706855613096474544238560278619421256466217338301270168407973810733035656875424687268889527876688846207300826596431146884120059124970338244273372812788817094910697499125078657653737170235182744611953599002346073217551610365874837947441250326956266974792723698784203404304756932564699404102025112343961928952502061826316164683569620286280115414398923249216724865083151291400453206842415816348912245663767006354161545974772751480223789095457897130464909307706834573645664693435195124842195805229162181902329695743737313350273447644949498560105519959303609997968094484154037621987036165796898215789990127031379735233225763768871902068138909436370652829370512557620533932039101233300432382071057718592127148295752015569454859083719559980376876966727155414130050887893734863916344605844637370714669863463553480038206777742186623914116597180883564705756178140226095364330282493951740107414416675040363328413728564199121148669766199758151218470236894669800833587879442186460728236643618674893432424109183451397199307935982249501145887793155667518240699749360666466321677277484907295327380617684588134679685092946437276885567045435626753152247602501364204332293556969381235389142476406540532450095060677965691777775798322118426182203324798246458279685826749083851385184753940951459281166514542771048114399923971519983193497273176370389006499459244147960045335885662298049240029885148480743983366695621144650028132541242158698676311043278766295807971398981186625824589167034512807309357322217512859889092292697851983724264894822188907541376388708645851350164252216476442995418466616624296668151429861233036749069567274196304830790880522087886699271487720359930987668558058937472037401337797399254984451700166560135168237651841030823527358558385199481821339112538143102801683541629634375479712306201244381776141991327200383108696087414318335591201612882340530112653207333077250644861251892990958094682232655549771269003044933031626838765566588090730232175130413445867197996535297371062126737640165921234175908602206202565432016524848677647218794852347047532345624764538554940865300131131724078065406804593349367672276429756320581167206788659140612961424172845971086748646547342879684961557389751318156970479493068567205507405968658801320189018010716946105973190634341869391767843574856918517549145967966250278757422594279890429133113158143527546618553881042875240819311044802206605875661422727398788744485145164913139546779105772360569212378698477946671377664650980214908979326162434748496912603851592297393630985082572152532301678236118255679675666162325410871392168122949504193935148389462787630727134173460894659332224993629309974037974180154864819997180858110528523866736346108073825134511614764528430415815827962298486832683948036212757074120458138455741746056436924755097863147031007145281539321467375771690503203043750175379831558238039288907157564454085502737948810715219950122816423121502751604450292051344501818069970074977721820702336449478014320413198910936787567677966374252058300942372688117542000744599064523677927540426512914905139869089661764288639316341916867603536649579168108777592838622187935124122668135197604782645540896383574633287100393477222659038290852298429060905285697432848225667014376508362193546594089175679373642687191712508840919456781283130052871404175400260114325759991523432513449010986273063988591303658885957874171057671719099507868287142478772505942872818719532595111234304771293901521984995556727294940043892287278129273166049089480241356567286575419926286852647857720268123711005845837203729765354991532486457255736029280326091178578576995749429472525881567414684819306600164243814750190489601890604534366129444196616962856351880813984089128530536161326596466946864990014060400286327524931637790495124543091062847819992397422632226072186174107753244488863299638769898595468731955103861399443518524848561245851174212538874375109115182576159251595669451031365239034721462046230522124059081385831262748561483572630729024107264145629232212586783611717061292171723482464733418821984096672047280893025831334264589688650990869195393605275732892205934642128845861976437397948020940186411800582472940359509606592466926053118574448458216637877893575910687715096851237945925312401819712506385313054792362347348096282095373573600508762042991042091298328937597110332118308956894739687184503606769044546191290884869253970062312803240070807422640802669491917743531120651065526331865294676643107539500087500227890770316191652299422939102400321309590908509339486911738289524671054385111197174819561421410560571854492806435367470648772300499991641819223695554121953866402357717079486689823211590587070609782978379198233965628705143138373085464498349550299593539793637866207246071157050959571158162251143917977615077476776536779564962606101921208989409554891732745111185446560517196543920054952259407270733575603878880658677698964268147453044064736315981345377523433536713974133926304834574402901815513008741465742347913668487072977064498280173456643279248752592418732382795787915951235383928951703319599844167918306831956811563835496001540639795841935746063814625636455216052523515365619510057147299827038249878649767123584203429256986042088041848188561638190992467048826117301918280616040782349191524137089810811476049336306168649194763342765462940840350637595822214347009215359919569915684042844404056975205743323417251962437164763531071180760942670533365283866647362986902253349352635565129173536683450466407449622730935108139484408581223131308820216332989913093044459452602691370657161480324795515214929445360610699377652030656720087096133079989631238109495248181081534677456371053956100143722060677926372833241906953736589394190601808055112138003120850993797475787822969658453084962876446644354928171148730479137422776323777201300333937541483409262501683697771180522368119185073853126113705361316467486198679352146463383576411642079425433661069815505134329008292124653086104410535180567817700141373760447820742677454349944245011181657801055473517133932102592494992183670524706572838284388875363151918023311734479792182748324806510837744713358630043284001530170506149120095246956110681066490661404792545264477418025609224726997389294920479162912674639692009556471941651616114440596477661980427497049049146442443875614613063884055575994644053442862631777102604946050496523312848369121065086219227492091416207143955298960761621722571062131567579039499618205301079361455537639351543464138314247096370605991863227235371434529846382099353032312384962628328504580461938014011677346382897834489487325346601848027334449475629791961904010215822065959594670533799874601048984646357658388457696696157379450037856682456770850630515125513506954419294809837478867301066938071616734853589750835501625982663195213841845140331215428407055714996559115099371297237146024067351716809764293588668361688236159320684584285226281874252460701411257514899569138687532774236661516890700862170018538115378530491976735328667951961880891382875409392991668781547694001435129626750859340810931711036238657226862158298043021348744806379368961264885538650319690704599787392921885638046862107843273125774498559409144773302911344200868029386609283368989497126213285217392996693223774230292092398011185552833174404762435320129476098126732604061116131603279770543579360472110257092977180140847327531580484846903857560237584031662867449139602408510844943494809169034244468464747353584139139265226860701870447747019528266238615226913471917405879231786975457277386160922654818275351889284257542835829673951671331101468554464635394263856897958552809634849230306604243863169380045302825893883893343188509030565890060681093759224153892466313711732605491774896792321935740770077723013487710907823115234181227599514863816700284140815838374012821363187908232537798098888210427521168504660928971513328278619317499774448603737145435358976694287236221307702226035039949903160534845720339102182954223964940595278832019562018300954985999715050171486683779467553116466332097519696711248195396826523569996472737334042293317011650605290997037586596821901458250308367241888151167481748298091888324007550197775231710069238279825399628026175880612143422058816679828504585695364812291016798999415218082132591192901745655782366642461099733697417694001961659809925492968090053581540938854891213379174001818865817150548094214061770699688182917527010462724942331908302479048328346010022442664771902793854177323970631155231465563224058672454922566512824196927500926760106080765552258178999680362413281695294177501913263880041326902227932779661773671848406755403413991546487539660656463772251374706911804416601160317305382908189565312263732546059207034726046130705467025936070903912982710374990529424812481737951309296557068110236923584763330824316960940311147443571227762596560076978471614396047381906728631810973656354394731710119571066864557638857938702456750659082728757250374438373311392616275662109382459308523076659671052870124588928643705639710674428992760343670026541423864973894848001074879648952035561593249880885491095065502512286091211911152488204217224397892931258668130717128885257881440679761109555521228136140381610355148201255357757790828692102934236251215237535301330033181477062043743970923262660349887900135410295073199200471343737148385844593736722574124166435330284671125501611328820140265368881779439531603781793892851976082915281168307756119185955848758300239985505450628270359451020825817325198903273789556919049740985819166862184200455867574500569426029644147503658347449709787810661351934690070670741606912937150251951258345514793803020502963603028571534236647837274123809247610466837806941082053837566641646334942034793057503673345968958365620654266863792434609539740181545748622437851923431405768587553802044062841653790333591717571160634481340034075000324050231811538448351423084920765939371235955908163817069013376279219397771047680739551579997807768580964034183550637276336007271077321658256509399179059849654371645220970333445330153162280205081514345603453112608435701446755902134883219515384591837664999207218397841012207950746127650601044387123408547054188916054725101590575209000685098750267965080240562327320671935986390245558485845088597345010077847924031307076228640573425268374282082787115514614200821536419496919547804427763526710199705869133419104821122375182160057613604461152851927836020979513818661310632768241431314636900414798872170295753424063301756397013215302711555155290391249158562942946574121271041699843682628237328771658049278126077228389861488672009363672884962584091645100412694628039693689498868489493644867488066461889165505839819796975917636973695018473321939683142751391771862353530344291656970571365295821241930654832310392500999970791594607908199013972811949820191491712512416895479920952759038684116429962969126332928208289397298551788078448982672743820123065207101199843198507237622085087387407978145728353860146868094917769742446829861542739015857966596077503755287258584394854283165626909513526676924662302967247087323201482905493389542580568946330184321158793319678839871890428997737333331891085933067036882754950733427541382300592109638117788157546139131585761029054135693877417739232052790857906332658662865877065035021540350644762176629252862956482663783493687086192102700852622048845314583647486760430571522886819051365583364596802174161328137101466629355315309602034669203183767848770842954953250005045582318042161967971559529976347668665358372366095284271048232915396513294914830903119289169566006962510807575807912373209664034326387006342305287685565504772770824440693993116257467471145083488118954204097183085579577804887557672055499203541342201827288520154018607065748170401538869617974981454785442381356068126371468284563184584962569328494279855129634838215369406309003835919790503748035608157097071261612258903928833309521214802688593838191310367085866116907080725074819860443258976211781524368420803048124637110739710892920680859253793939711845413335831149463152825157515237116966846151789365944082022592626113507023336302550449416278207585408037121559661370776631815656227698670245334627708302359558373748706560055004084617992524652723446373513148000258993382767199946391038715188029911105270582399793003570899223263165753746479011950604227587190481434317606212004128759301323107607433008385303168039132298856992616824362614380916716937740496726523822691128151792288438872525861479635118440206700583945360608655089761002641784804772387491647439577029889945340605185854394792718667838797740797263332597413728196690384186028480006438718055136522197063561675483294069384343001637318822004804777225874134854201747589257010088854513463772930371002183968091349953123414704110046885246741508954994269475254895693803439910578835256742599233896458559233201262396893839008282592088103876773974110845468943817339357476860875872712589556130140257015901260686450719735184629453878885475273810353345581866085967406767965254499364481642007723854130781377172174812367672088376013255079844864229402348826765339484590869052824702862463134035099099840264985071744544366880774743407253959613429411711332585546394903224944357473088982285315987098573191345230123963296215129583175381927267075593371904364342472619324361114369109028865015697237858701845174029129482879535980748067208943400995071755689055777542090068672893127567581771004973033143525681747336012307989366021199297555717676631126597001972023664882846811826280413570721290602345387153944036140599622270028902570050931250233314727947395303393855876255689866212941046977556794997829788838854190054275961553987901197866783367571009773276571338740479269586901481753256708454095676550402904030448438918034039611584926597890287067266134946197934779935538927307447437624267428775124241851869289941326983138989087544760677090577367112066146846415990836633377012095305564669138020965463615878013172758693854009986060690153048591984492072745464470397788476305949744223551447887732281126988887950764720422617778070003125584870989447854689863408179213044572091121243643522421554058922561442411889528025390060951789494258559168558395116444471428213515079940033216766191944595479119362444923414358744376641083544670666088741376263815553934104257564701115195189794544375475364889401191707225446027040521349484516450783020156241715604000360874934704402313284961687282707826279714814964316443444376723027850297413736458529126700857046876097489514031217863965824907435206825105579669545892136641488144462163315649336522531509031085399247243691290782810423139852801030794728676705881219442195483790371083611315580284304104523459796498583668317597213791177005553740342951064766572513503018807682608081508740828064910595758642060063301028817448752636397459064614113477469998408231603647581447559397002732511108263335984545791744120040118709294984109817637691023310582408948632551497007823085564445884824627090640763340377739801704611960927498970940448783370250241832711757282031677387131215899254913500831892920837606761982212793311504758198981835028929452650877294417527974305988199443784717427139347402950319419724512209090024538052011812926108666565250218850515255823210007829223541889085694731765141542917589271909194464380228439865357170313048139628749800531528111167881128807944365263763003376842299191310971211848447160148354874742705697749849933777529350711397313486688599461034247520746506152811688467952546086709273834637781858196742397822239536872277222681847678269948462184187070009132583145332526567777733376167083257613944869299902279973067542827166901725663400967499150623314510803672542212493304427153300296633433894952706829975698071166643667186489390064628437989279034136011636222797493154494002442086000314803230479709619822765188592798525763029105502432791717731228947886508215227713358117263175417421906774794629255552648188491967661711896842796311074190181330248494780861001628491535766983940505534446915929711609108609376725346726215954025710559495623416109465688916171674968677371890771685953035989666723057403091751085392573191776251474097425860190221945684732621317276177489910434431878798043117652730714311429852335790008550293201421545848931232694778381424880196449733444729460513359702261504688005968833326185831512590549229195771728179907749759457703584118227010185196975284075663070362901183988216060825150376564261152848541472032539187275709088760725010879919080011560258793492751471117667987580196724834264595991769367022865868687830578861743323052942603014308072788569558125734087277602654534371315437469572020321676057612713616885398092302266851658509153223154622185128655638179765301332816529105394982587326630779467598921434585743102369960149007356229416619710701636405693437205409416346166525059454261106440837284718327796243227515437970276613924379127839165646397369462776508401318684067428642591681001045003019503519980461117016836184150512493868803851193616224808864477132250543642393394274378740964451998221704047902859938376496287365536822037373564394978374494683871062315973438733972198070301916907823000686888965121885127122652622727871611469979327854062427359961016040503968871231030489649372178153562440879443795879515180285276679657200439920880887472554745609254840079462737285918576178810110939305004013165058879391520509820207287136953917403716939435953896037132341966657530053035739489972262226261696800608945306053306294730900240521046256142559385230718847752365287771180122990744601883293987364997190909669415621949901049179262590869848634255231838387316741241828029546958191878012372139515452619718059583521195587773508217143919693843251163915252670735130003321709973155282102972660580025194982285048742878805297382012023363191517010157331794075561884016314432448448757744146059991245519361132820442642773727285109629600275780109126349254151993968983765327683666077936105665270067137663424395803386123329265714694870159789794216035800875196024975920289164241529389787760580433977843658632471734022176843182738836023195819444586190779550566690694079247433404706367063835896831460347571914960536358259768629396354695095147537549921847299039210085598682270840599466395851635857942772086052438719154820415790358468156889345693270903366823553998664303029296212446543315985313136638213696599423898935152978068320490939430576366164566561357964095578036542731407476607330884905091374777202885379859594538218782022469241744395954043809300529035532791501532335305663994465273810711046568416490618746919997998596024928781062259100475864171215437527540032994048444209394155127363322009504859791177073309219032493054773085142088591549369039379532625845074470899735654278403845293435398956249431607174880279836644875464281617034693223413035408540463596561863929148355343440908624641086833012588255879873988075441950823279535134806717624756220382691129207097101503489213448281748858062638000259250030286418215727964971394990613709286628376072266106718651865882201429696295524307444151232405202932633636331628697753803298071601786797293748790165664534144772740622626143710645313075968218518182192273289366579193014398049621015220189170469305151975168519752980527391231536355717440733382311822071129733094462357717430988893831219161728265164881826097744468449463851421745138451283915314246055543108053938686242893895247345874835360068060862919175759423801593422532319201943363688715052194358997894755167041177658602940350372168728596604071746947598446162515898045918368672402430692500049836804193946011470417975809717033628915796679599177637566102954068847727414921186007223099346593649658612973525544966428092539971131490066048704901654959997896674474908226917160733040587996589323919435704575347347106393553237089944538339963542470692716546544904624424709737420517267805844274433904510338244294432725562081887908110463879254064446903909280608482540064242686705645059830120244449870726735383715207700458038552513589654513030368908985739974682895134129724406093584205367291656199876240101516527515092677379901224596840926005973097252560009313784188226149352759860444904835266324008739059620964045196331335216358675063394946144069624792853133489313914977396451537301347086119610847117332228416342949292133232607329411943123135097586086971026842583716294431449001152265104745303467900879946944203459942066789881623748914446306265482201814140820377134982622712541192131241528430356340545809845023924416339258779216411175897552754376227013719880948702680495502962650311714336494771669426873541301894875374815756992192200110065345327101167714036618648229142525503426436441948123331469161789221854839450477909089534320734768279617666473544358443573258591511292726555293643108112755514651329837972132555894552281245553527325224109143172753742438843034947802324705191581737925301018867867369398070633549386231667429003445278529172983244961496706763500417705135950675953401662369152688483144574028223269396788608900901904831210211037597296296811597982465417400310642876523827242481690732421735399316285723790900137214831782922641348081012028181573229385704732312720000287616565271739197740609344638360805531331459815515919195519625517260346662030268015425978032024961427464185076783798556784421856342806735404574041559010304816250427514418079674992958765064194629864779400816641549623262789980070187405379571072034047781917115389607139297263173941077207654201957466787826308401083852419143195211656735378364449258913039610415727633820536209644865560704829871022512711115333172596641208835137194361717432143865802637105848950498906528383923631121907356758087900185244534206804733160742587549762502386997568194056117672036549943685546965516273130366074212993786759529877207230177936718810808830459847017957582865536298048166110418871986241622064444764496851692314563230260889151477867386332881874089475977202946659154469191170897511256888957168486160668447650959473846287390473743992550446007398463140668846529768374320805094763076527660258167353483748697406672509806244282999300892261892896559067144207964542235311088236333991621551977549028616638234937558012575812260182952657147366307348696969379558476555732374427759655391143502531488085545021320640623911270205126024997126058096163596754316610612389718143605973198643219022693141904157717729300055907842489101848447822059201873982549320118364660860934413761602081933117120280145428794339968859709090262003069267535817611744786479082723559913293076097184023339591869884936945691662176858419801742334354265311521229585955393754940617781732140996244151234413581252770983351518751987203216656388021876331289969066960396773374832132127383512209729987621454716754440498411323856441530293074538516932438815834450146648612088312671005061973083589298057856540318668710217005951853803236873402645150827023333909759526609206331843699334213865861687788314908023345131083159075621215010466529256333109058758141998369256745082673646477001429314104591121792410268970267743077253897616262855596742954476902783577128674953822134384564835617450754792748698860501386833883332747353521737095795319410863200610185797314326005502054790050051714290073260839434147619359121039405579902224627405839519016398622778744132585266964018377980862578120588802623261874689271265241261418052784980146742399535641485431752824966383085752321172002958307047537352699106697416181134151286671548719122181703864001772525558502723560206826493133156437092152926856451050313753685496781269852522452871335911923659635367089648478651264924182166280977374115459933501638145128783470275942769515821760108142885199951783201494912175410253453008946223961098216468481505892125912677182576850000222659322584418576504258604937605830558216048286446147748147777458986733630255071570496742558567794829079868513069679466932521112459165364969246945575849912149875809746300551983562168751198218853228253344895752996750610217873453425280189129643979161321981267932746960218977823537510357749950260730818025325510790458519049550218349448817106657106733875632641260664343389370938409152865568247130510031231147442644301725675692376021862550373326272448792347634661662255620738193621019979656026287545414220545380720525453739416993249244922521135812590874999370969156113720317307474223421953931140909975939646303774393579155182899450010875127686879270583673788662495506591169553988739816792132580640940479377116633642050198130367256382676850381606393869770061121778044443116126558627374554685737794897453248922722910095427211512868225274403525655213969088062158782556230864701523564303772700919410281363186084982182213074518559842777629583262598393672500569181385846625293022343811436330560596356043068686094912401747214724284791461854062671460683847726962320069605894467920518318592354307855695011428843824725920946746991087211699229610116583015647812402467008285136267632967121438869331970342476401254375479389376443932106420466493715960559118355446617548095019004220002576854965507787710908878937609194137877173992354966212267823857218389795756874563637736783716872548511503887369494915183794858596847526314042209027422863650850685994304862212063036598053388272992514262933963890704645737768106267785789518632479617198864749013108200953012135686178138611437872874429006401641165213879460037954024743170781215799480986912847541622477453840249336012280318125001526545587543102049733864529158895367464430316138032037213257642041955462459882191938891814299351940668888709326452963352456695315781587341154498828745076107729995093224144149495815048584053275510863718018563914970226695906233691800479652995397700258776835825113212173309101798994378942487797043467708395719772482179965515991143245088879473058025891458248091377008427064786862205092338731902956285507117779209368782199398399162204891363450599291569916100101163902133684303119467129219926190462544789769891175304549226975996860177174339765569564115278880438383912210729572102112832827711680516185874532095713367529610001484175417638827796629665732092480146361503043744610191537221742495165888224828631461998994517010315032473998454565204787839126140307709666679998041389847619605383899867696690222042306223639883818072396471489270964021724862928154414420795383893465712322253505396326661309468077740531371051470177929291497123610370358226803719434910968415175405102319318606104510737088322105386468260770738426857305310526605526922187771392873271880998938053159588374360208364891075005119743110794115136545149883174756713708985997350190536059165985672888726717738100396206850532854056345634726563854874160513564086372482347911540267543486104004649685206407769093260639815406716969521878544316506296224577187574412772875454529327627125485608971490841076343915074204760930802016222689866987264122031937192066840193191941603306088697042904099398064524449691746643359290566732002742951289411552487603261195660704114626322525494933626688463442016277711658695312750208668419793262010276199380120510699627002514682119314814897291129728065548365569779685553511339029047621766143175472501705855242264472421946168678224445577307436743659550913247480210711277754947093272258693883894927044042672385440822224059710261579162339389590614424485004312270697614444664037507499317589786899149387622498927370138118550890323761485647013446293267194322922928719936630070153198289665770930654838636083574954263878119614065154799546410943465016252247738661476056971535828084577898633838194619529424635890814348869370751638296586758092761371318875530170194161581516512768012276422009300986130823519688322872061209028069069171467413450125986400874323651180143265906970496709525365121651633939010200086525911862272246429439906401909493378810445465303302830974905404157120469575704864576858303762858151741104680173693263384190682162380068145726510260249045861816934496719587241755894387974775825284546760979066484748162825118795081911150616641882626699929537245049964287443072515881649212574285640852598412177178145282186793098643119523733848839766077513083317294487726636003992768531582220757691719023070936246078869164709553136199409384628841364394245819248748404564187563084510896973228473003865166811362871241861335724165429795609919693597657145538269892375932290396263589164871990827424440921208526424785288702836155762435789007272794303334501575341251999821299358242420217881604832702287167956314942392103383690096863047211790805965864802437334657399348912256186635682513096535186576791400826715642755572179989155064306468599143338282038902292291593359062098986578130371405473742883233153312836951644872182379827886043899432153840182199208180420643213749386975363040459118581722398590394890989397517511424399127380858762404280066929163893287644904307477508150007898730093454854842379608328132021098047333154028004810672927054540871977434398490293671138461799476198833820426738385549402382023737551663370832754491351809443438212133028819365477890770241931632616146129242453259434917805894493413005446293839446667436383046539216476189394834649280784557231839999660248747306968423546769306690581139879976299933901887216664728397406713380219454752481642661704050396481511427867454361703521133694156879197212756703496156307918270309897089243587247819854164416175616728321087842630805641011069368854448981797976299191532874188629072919101870122104527245104496436151400397064100107335312987671504180432192464518111030605828227927150498496383365557268621577737035522228738105173150795552726081597112654930827435322261274929804997178259162148138524409345512441937122567244653024769616651000963393134090868418211934131468859779791261521537423348605219014791749723415181545024717510411859006183897006950602662678090975184929125343144917598323810853229402979146901440745760753732671410221246747519853160891173626131196820741598493731248875484122693194455956965677720867320656374769098763889173860851675037430101958822603459520090563046419047971245913277635304743539783276875886846467856078825382174671370245559823868434652576466410267432328984669803993691086193225943640057012465920079175675713299952672007430897028832093933550345122062092653240131476830585595927100287693241086376414033756554871290706704587157003039882329024631718672194064823862083311738425053388764962808490416402243400509705597103255232128894166187297234445358645853103775209606341970939270451134593054201715841897512616585371896969025265027988324094827588722994981849489041854024302533185614494681072402631379291214764079224614225910639996436894323760588003935205746953235409993574451486789874227838397192394166020724750453635103193661039003872544978736657617141186772489447559347515411979630154877897261560749327699579363021109105698369637217615519946548931950336896280363472808980559460280552369032000897628812345277151977313009690562433656633812116433828491272953429081395019491570073098365530906285570880192866672702429344760325653360896046079508921440504393591350380612520340250160123319080709768303081865062308558878529223129482610820062335219754773449817218061437978197779373657693412094824145667918079920711289834522960124212695300929840568865525293286752104236270324985518863769828167748693793685300948759003350901758653118756117623103986042398666946407180852510453710697007538373651405623592510995640550588254143287916639831698093590815553095747887187052726810389621589051108601583276928725288379097602737133461795892996524881862943317419612574082370786305752591955610698308673222175246127300688765429301797365659642308121722407666559905477499348569763028169484448737817194204380150990438932654724723515672365267830582671983786531380801574144363721872105540824852856235254546240410284381643476550097183711777058311678022082379610740381241663926398653008381474034080966527097577338365343795170746848661961896655748841375068491642497919338538077793257870602979109329520631569318307257199734203787468077193231465625812597857356917975867561946850729613659608223903954568365656443041916557197609382953663411235553538146499604065873638138789730491806610650353407459413445809397972167220489248935754123005204078806481196673520395267886310615675482974066920015999230430422267015922906149711835465968137276288446968745346591201501659644872726697979369171782676773271604308686800914647366316337895277641381127208369284857741985329165728306932337229149493387421213347947881330290178685890076206938193757640248398681697654050677809617339888360782338400417442661398770759181124432910480891386108453791808179951919199347125709164958102015957114601348303605109986489511771959490275466665037857609684217619186705081450645411242377362129703403624716633332097253324185618789391336205559451141412777490853799195537895066942595535927186478004899365737590641180077206003467496971633549623961984813279008099264141128808646299934865642925251960948901481043245845741470415677789439507368067259658433487841267238535594416078669568590808528300303322454167852425933687250403949813386821190744945167269790325073208979123711614014744205230736513373235143015645119072258687086838951766660837086146053180117881201678046028165274279075947385256744860411917769113700226433604027073228504565999654042051083221105896927587343933434573336768791461651060161509150816772817774522237929453827436070246503865020142056551850386918639095198896118287111694181570152197995460147431299691600689199105627801013929181483141337738166462527918527052295596300114222079992613699520564223104497860227885122465110532809154809553503618368600460160765969855048791376167429811047905171828545801466371924078184475315510315239616216666343700770615323334931007045321292712516327399868845663088078886690343257154785800271186199308706004233902085487869902585049716606690008331686327622110215648292775009235517116145098567512943467438135883913187393418269876369890227421161936704424642998074108991916230102337215493924619886761344835217054491168255464921509319710944333018043123803522705142732922538487780053807240339635585815078285195103191695890583733584918243242912278168510559073200045067018150849390713238495392531146877015416428864524413383725773568497050554465346128635736170963695596287634444682124004230415012439072935383431191293862990628416650974341718421424293057456484341352897071150605996574720459216094024766664155448680247055776603917206493491326205648665045064321992106576060705436929442385336570310293378065492812500181215784580143748413837747951171063386234273144198107907728328093074914308107635424791014675350026035922178551037787233351445480615713985374489717808967045108611272989984323987902182184939090041837525007644302852955411883259679663860888838353765188883203858237110789298985240429612475731574902433684601239385373767872808176724906955552839001852777924413756242321984209508628396729349872854567060168542153387041277044307694403694625517790664017618982649895446375486061792324314388621531972389960093027991654052241012952137098220299618862721033230530121208409186007814987048468369511687707673725976948233377024654643073569007960880651974913478367566857565056674877731655686327573185297244314834180263425128297067259561495390917087777522207516295153789040623906288677027669915847872986428655669915340403778025233549417011758505175577999875676657795311299858641878495503903659080267074890422834585549997355363998209262073169555372918547399100959041750698902899342831408628359102103773351471566712917255378435174011654145951027404712927156957833725784308592381911671451972136949498152458715655863036408247227035231431338578810718677195312795107919626952855569674919016844185082668015570735188652382900678814209998027021244599145683548319281952384453971492989016785088878946234092872937272250837772630167664482321628906710617344696271096245980253718555144517058065336983069359838905287887175934473982316621709917922094157244204050245709816279331627502473322701645025398111466327754116705449626565593998351506152954501903631242249427673666304170873046097934810321853124754091521920388776369367652583096899698829647091898794067846906809184204660045003802885785421272515741443503815172045591388658846518100806581576483006698868192559691428009532965398389458730630353471266852606352064419867587847059738705328667970347036161067281589307837684058512791214028639903320668535026990738211327887955570633104633722201166792981744646880100889711969056601325511415330760636021963789582192850355865944287514664775292672345671186967942292450700050466401176912260497227412885314290675400354575319704033165739432532704108756237427394122753077110313203129912258355138006400346061553865704253705598794151695059840210477243848108041114698549372327315509336421359673127192423703439421122797645971929675144508010983008072141037443774128712097480416514837052067584154552716614756116946665761234115659689180161836970171318915830972408696962741975604065036014528209316741769666830675016254892824547385350683416113613314563372823502889501219752020795119463850351491726638469218852487327463695881145592682752952453594872376203047176860133935857193524721464107016882338851467234167161021257694053686540700812520561821892145839809449360919785164288004375406433544067273333236036808024736941284284975090175923916181571777305663275088050779295933155869094068020923504155955876285323070474174160782147098318025063439787130892348807694450569677857067204081451061284261385251591640658000500443284105783955380385760266919879089090157151696786546949677644645667892437022859171915453957036959441186170860174007606230631839331858928316582536730168753492330884759985655276300069446628235902020195354587746150319443719085726862417163073276446499859122434577064307382640728368060903952874987743785906482573142264490526760743425698412282350552274046779119189852430420012618810305820007174197512389337701081993368644340573724282608936665446911568435808930905676755426797755301102974154653026714384466246527528558885352137896577449470540897059661734355477003882800116934443115390986290169132565547310174301673809645690770401207387372079801235485813967469280754965092476554042194905168534177998799823582683917921829815420801352437015838633990079350865510101771622511626248583161635267499804547283163048059834082546392172972348126672323501718868777699866623961483904597114029733991818258239483757542163367971457455774775384721387292765804090541374990970134244938740103588443127020928061256685144296253542401260932646516759371954426106399848785573265456987339061066638089568587571812507148108557120319585935703670693715677439109474209151396517566109910778866419633522357799369494865031282377389435026884651708631269008838795368315387680717332990304329717588463721905135593001996544764137050471389746300886103315645789340392142581949887056146452335480175214780879573942596802446549094076429839256273396292169997658285901972786192312932966142637628809500954106462153962004971361086825055502148626324080456739657447878165672907425320379886135988691928970069817966884309233469042113836998251486275738742049387203670823334729990998629057116832681135267585921403741231394355425582845609784750196872880526951357975828472718896421206171023156702662637049267237174070150407742456332288600168827943965407474854109157344400026710544393898882715102146423781957493556882305400341974231340681269373367042604767697594345819363755197405169572033881916932685022162242177220771626475319342782969423656905572561882310394298523057326362063013332084608152050578853111465909439337951374279812716153633534254955807450870121551998494031410229162318097883211693917879068801970521915369393537429940720202651686701746379909831290821779272990675396392244003820518506520210385352390402853237416975835749177989790416536250317501886167014691717019077347538380632811851350423519957567576731978371055633407379084185465775992161215074007175750713834874626422268209451666885227998111836215771782465429496898869972420302100815161081382411831948404276271224016572226643017664689515803240911614743158234803358358051020962153622782989902752202721527752436236580273575982475919443189740017377836425600692431530718477404201807654514408092779581345034198889749593919809974836311913926142890742746814961520082357323974307774825513347719216863024473491979254635480186236346149646556483072091620197833686868717784641128661450041826277952018155137821541616587140679656898059492487052814332020762626569123758710046800249833104232545009836885406547546597932839242751953630781199906018812936125672220375343530729905387938046660022127842717672497198148920496101028937365820588975038336004075044777481824458146440589470217417254342775628264819748780099283345853732764948113816061717637465985967365196019957693138236043426520121851146513038307297123305740177420922766896206800882736203566529774685704483179396712355924283097460901357036446558897015145077108718701513902200079450742403806373217854212832929041811373276975867879878177305167809684159635248808352085619084228048545133264922907929407384455495394338778494111939829314035181793321575961826202091000060865606580757371508893174137333384099144032190769111432670807005789385312874159865838433385022992451322869605299764438446865343598864785646243935736702185489662945310652559582685455769551841081047016724786718113106242871036076844211186025206954606949826414312251918337578214249643463871099335237682987883579997467444778785003014601483835406258743407029497656119034098825325000459864304125656212529987374523401920867825396126792717998183076036566920811632545176581193819040864689122455433369431977440749240247424122840706134136774626986769058846328378589365822655655218342183432977100896411994679464020437596628199746881862020917965804027335815307585345799812386996291963927500244279026690182607316245776668808904261554033608724054575958946997578967673714374026904238784752212724542393998554794266367633024666776549549311845304481798552055190732212647634347139915969609748558236965872580848142704746018630324895188955140587763880750619656507248107468714016914020516932320684082588165692679275466581560863065897009846209529787065763254823033744547346671798474180252240854424410991615177854830795633703093074940861774862354278887401369116352757302431344583947959637987696358971298242875400582800592811638960880389639862359562040946673582102237401613946762441258186681447451847318880478604230256183038636042981398394377217962050032204710769660873735890067937739484208263054917387042048509127735218525483641812416087940746043427510175348228211471793284021823915239844772938372446236602882160449001742903693630833480562786668537451400974236667446170547456215158693010166771174035675524586528307385871701467383517583212487888693312528966904178643070361477528567697047151744549679167003194269060242138920286414759997280346720009337975745327991274193235376488515057765183540094312370071044621287333361583164123938647649634592635623731068987409623459867253223136202599313271346428337809104038132444629980703772874337300538919478012694210340400225548466888231178899502226431413306174139444766527862358852038703126582668095526343920591818064877221080932712216592431526771403152757649864552359666015558852646192146714097510652531284820708914481909382906232509031734121975195569504619975893204951039923062476673690064504192736089697721792968455523513081841278053855499648515891295894676494400032516780128408668046563236885183918396947721456107870194708562345791232471756529350573304068143207127889865511676841768111822971211499951928898819053431813652677324706961689054452620824174543970787566347367782539984480269961605739404484108074984157638246804378546127699823106534266999166149370195763453454218657643503804112789668666043401771671573085806205286393867807689738182223237455219223288912218603174020506076711330767560901135618367719870351212569692691127889040765651202820025971287699270650041322015819122958280598720015425411871757134102378132542905204853800751298444954424748508440252132118022688249633912535542061643120001353632085463460120612044379434783838254166361538344219190050531203903979832561419280994251531367091290501132894307067826707539720549617673462969723129201407312379366966000389600196336814136611035436020247027184937210544574313720713530680770356370147127972253208584743354245648599824248443790842337582299135268354372605835071059074060267816685793129184627203400753777760045640537879344546787633180548319149222676378027017083744573441585389786011765218207863027280140225889354846383637392602230890564474365614792009477839610701619682012457851378597659124931683899576315035006734699336884366395514660155298015048512232113803729791126804942562416455074412246947242500967535120403353239684589027714370278256666405770532423713851939245030179568917312076630824862223715589023257607817985554337360392519324286820512818818690204932833351060525352070167634400308615857761683017367745412353664560435017041935150323667534020984134035841721409786821908621176674457346973754803996009002799503057566808908963463339503226820535400530612643992334213468793794677778701192700704455748685286481450205463636963921018750209678341640335703748268933311506457737136579860980232212485428495439983591867132072929970513756152966678027050225671190601266943769684837815995331926752853076454390326114551971387108414561710550940663949324022545979349223053046260485347745398490441250474629696633577398268588629213389818033064372875793956026067833144049729855110145051980172985339122635090308234502840181391810690954608092649103146680822863916790951420815053531033237041361441039427481818208484066777656451580815281833384401265477548636615146567282044174128497060279129004737748462170114081599673184150658832131255779667567048267401771618862107300521089546334146873565380205159036282725560252908560412842591484024389745836451451072607327800950321248123418900961229499438061582310259296206243957110650947254496164534306920718930134665557116788159295414306842261609819820613170994317491496140654748661755700045340867400372072257306107816572770410906212494539813655536004785388131079647041389031642961261169220126622950299017749719949031681506767725860859658009858192594072348838109900250392520522935009055864958286514181111453351599393475623303821764066564090327830119727327502009097435981772075416679416816216987971111393658959711565643649982057685256944491171130693275553522068327380779397392149958875970018871065892375593690341886052486684769190827012309761901441325845634182173092312203877857979348649606777660659261003247615904300316412465617240893195370120124837150680631208067405955245491761276650032233581869758068568276194391126890534792590613989257178002146894385418608688309191038162839884074959026069312464308853863686719592625751434507799144283501591184825039620965220766149763053833554332665767985070659072757029146280830760472508012447562026520550614252962293208205093527919569961715692826060785803902167101456309271424076397220596324265931040729511479204471202167134802824035427153048313802081541548147028516005753764651537439132979636894423437514187801015472363817384233977430713554728602506391207915830106987295646044584654138510900031290508361636449933841962608032086710561761661910007510406654599873138195297500984301769510724737098501267857865644515433693895357754897431664432441005113730164194362511172172900235345447331290002644376302906381046308565539655901192203614184120302192048810758821867244493944301079594632569711192922854118877041852594039422587854976670563416067608383511617362364994101190383164296997742532071549416940093683647648346993897029060812054747437543606569220488647105976314020988805901983924944915642407637111540894214500663648811130623665214847369816296748855716135799770074005351146106561222639109737399209271921796657723305803695730642477646246632775948747516838077811614130951174638800079901450140392177505561051953965318366543391321904652763109048268968745193932036837647682735333296266663147069990461018885378588885006071991769670050173845556958396794350571734650592944179121069166505112953852232890578573119914746585961472693664375069346831773014306444415528203342298292192709288079833368485576419699924166580218508628348090955069941777282601803078578112022815517613400263976612702837069691662149877772477419588249069355595730341932711361513102128635766332118481863958070175514281630719609623811802236635641416938598857724889810374063745220498319452572424139244519171209041563769182857172531171170713982851863605425789580651925360806332899050923465059334037146915753023960266442146620506531381088510964300136760645624749212344192963018566897505490769918848817538597386815428724729582909395044645968771668455844656704261745054611853838438139172043178645586590501661393478719319259402006637170590033474750567839657859214163509334728440857573924080180184797044032264179497657775300846791703600968333862954151913695857166206008498665304551209124764549366830165222823872229101147466826325658216972197509723655924324140139564411642460085262542620634005647911067987782347835547006285010768043765565032179067216668314706120301673632785796521325151601996065074367233060745872828789282798677049444343213354186652513760541145375924207632255488867493924721036876894820005012584622959481639979402962106491646446713444883532051310861065318336566277910760642435306749532274948716028559289750767636601818538168973669139160723842771563086791940657670270774289196121315608471352801590872615947216848751768957563238819950234296670372239299032234864487745608225950780861129835524138381181566399010337086356049324737951421399878722141175086680327372011418248591316580333340744668531066078938041600623334195135923867236727215806263888379507347101747099232156312990153807487162906978017782935776144702550502722572073753720599155504359180854093099625771359803421891929949852110278060433750583200868381049640638440033469256671250430221951600738172480919951795107579946205598559128696146184093309876686248246104688601728573718906015114422482993701540647303940677388435723507318292755903179902754699061646768302645627586142868023787850535380539673378403934353729426091454448125074036521001226386170886422652002821054021251122241881625502275358668070614899754688319496337024399728471387472721099089794163008953653572380136161975828843481293748820500946845528631695678985932369278883085124547712833167979278269035826263845333048705050231563791149348187171084062540621267283866875008451468561385793720796402450547973570513507983265614427590641443714808932784666104499078680127632426073400341113613914837546260523291498893994466729307188651089787242662133125870808404892470478790864205465550032252097057518599019444194896716244607809502048775489710179941227563147847881647401958737374324697225724648250297792587085042762913280216500370824398594302914932777790577272966217201512084433003374891056406005669232067186296787943635225356913905054428917575074173273747095632562308311678191158318935865274333935567498839672094008797732965794901622541659302237982871781849449303609820150477637880452516002608497836910917771577095150000761886201405577699731936433701968048220870941594952696677826909949172880789744262801201606419579876350113972858814193535285905891578059875109137811272783365449184934090499476753455025801576687505968870127641174043926476740249663251964900651625397560829329616887061759928738174146893704870177665601286784612706942414436600339473618740056787486362997643285004391388449776645875098716352154131469137274496590426790827484843839785833055677451822755958373464084052484508539529306811026601946124925362616922393072725619671571792922118569439292761949607856166114048040666137412602531184072578908290616429486802488237402689804177514058870252396767837982171835758473670146880599895016543445310794582036538764394915817600913135290935175542166559555243688063615000086654808682478912217921088572669605577869547103654663170789436303222981944927843483876047564427841327498749945640783341041065090208726315265164892139707394744562580450591938012687414813676959357731004121247384355192363659265955810537376274076478287682878951805065771807292977803526219013275541885716542390196283077051641765981111445735759477505111664990783362194628488925725712887436737578707460328068936109940955453190163231359886980522467234815887969368091454802437544039903049155540412559215165316414319918804163111186631056896274501676909803640043264044700756676968208265966376993590424390326143260572522840875235453979358594658367935962722788341566451109146038624201883393157955979269689680715168028028178438449393909423895433043545702491790777735792374235389988976700909358379095315550378162782601386637909403184621275759441051334194145766317653169390547650091128939967211727844547583489379483816300931101604531544161513260110533757456659567506464029670952006147657397314490469826034759065175476473104151141034759277109510469450050794467715395546064410173701884096647875728590111836674725338988677955369317646666942958014651365613793595962834993333538754198469172744725941357619347902186526642135247398345059199354734590469536470644673770510495176464747374581923308788852185935955288723671024066077687610555094225002930266453467778031118429340190724342965253886088828398519174350500959565251736722026010497626977311264284730146391387721812305474341552567886838040683843685669640545548834093916657802215638356242038409386339174170252787871456076857810230946642972505622523473652343743016329361260578764355490215895262093876776462559282561935408070454475054670567802144556613775229922149216858716820002891997975069074465446777208836050539633000013659052111063543083940829835147166263174547522172884732496652727885252269947671208396208413378283384487091189321839555045547846783606520406278468888366740985440912832843472627386589505357118951581092058211926376222843749124846564905087579301061079371325329469496524787724528211028430478616888498729270224737652207758332606392311672263618115064625069836383765489519021966623399834689542180925222825884064945358396438810836777463090519787300765250191079372489875380634184967398572027069112796439103500022365969327393270611345777546609968349547394852772941426448323584462791095148775165942847379636076638281606987402363076889666278743650102799059349102509690255359064001531454296686173449940882274916707987683188681555879073741899186962292917865944904543808138295356484267148347771733281868100737502530651404125514037635410790636738698425427593109639835152505577480714795270436132730819004777190117716128750062504181816776642417654126354305156896332370973390569227971920757164296451861868066124758271090498779609240900891444452278166957556952415731749427365787268454490383201283139387323155036659325709203315118275849269173386688746694165408879669505684352394493996161219187980601078055209351891312741804989892845307280421125456209327567168637653595283964596689624923049457410175054796473584973427745968868814784875708595593005134712426187462320424383513454329854004963096048743151454594038053678977210207702188654485466283690678081866953609668634033449421955734548222810662284324857365160217431779344292798882777548345703728468391229912235637682201893204513930422575008261641760928100824521179262225538944736287951878027653196963128382259526881488955439922441890288998445194782851157727767905864525310709923543962585000028299093126364748352959029422229150054375203082903775387427871315546264705946838545193602697109909064329142216994943292950824630090714595884061712255558891032575420358091117802406130718347240899709562740831378714342249093812141507674062350662799223960736388782629304146935321032086940486052194848682381684758539255479142360703936340413319414520991713433200014608653339547392324896531381153011683072887817162291645678441693304731456376737085250197558237891201697514924374465877033807934522307042953103401061951650324832948054547024984693821047303995992955483345198813263621412552738218543328834641657541303801499300015088787932690112429131711219981545446207293040224386471903315378178209345207826835240612369956442757309981649634665177926838595625462366562580566886801802274962134581361629669520092317686035021089781383081607840842959698029245563851531551898884827815239959821853038414591991488121076178846228427545128228020093013781992974839402184361866026557265379135332575686199769813931070215271659736399583410911238940252437605645760037225650786166922059383430027738471755155304075424396178981371492170837445298221980950368421642886245841830785238175989511819560538087334096535729814052505637695765089095545039096918695754410739682003084326038473009775309835685324461525113894563965751126820060760231441645894710334048486762766552879796069916654486097656938365998340021331406632361625123526007722182988557910716177292322850307363609554755321190936572101478707668319688739068792177957027856617507325648731965079399418602326862397166162046013011113804684664564106481769473180325372112666359957660731239881597986563556508647235548546181511403736958628381676737303799906116529049585194589340244751751174618121504352378427513659655686280317976425384457889255354670704150698543083806528014937111880139558134221367876362713560079405536398009982590437161924696128236843814421439588093136958982059712634107819279612452259017421712880244509501984753690957496146259961864917061782437331779155167122529802812617295008354059041452577254028244391791744770375753800494280139126280904911120075586201465479224844359032221254194132809920071492924350428445102790346735699961411978416634708986358510949339568256220673407525865283553980330548070785719026417371345825527191112732611856411755826497292310144618594794639176773728586970031112103883957279829288734416115072267888069429518596266286369855889082815942732770623018823762922258270031717899439592480612041174511821682530981165282015303488286177395584139876840541390292728608533458512924003258212260116623569391738983401995460642820069366889306788104321771400147988733016951911588969687586102667440514821311120968890195386114334847735025998529262286033132563900414282481807914033037467672126989586854374553198850895482633163312001082780230065244142083753899024773503596380790655142172082064676388140860525426141995076391389765555960244214175932965947175184127255758650998642922997145570466189417076225301457731517208398574156168687281842092405020125230449266501468496717851003125486684166884415335058023009845748134669962926695551628794114993916357519701824413562795755006640454189450279620667252846729289207080850803807427275168246027060663804690992214705041264005748295133877169784547272207324997738012894304474252799361667173063514872191893025884831566304380876652868231271532397045424792571065888580249733978209630766969764681208462284063044808388137169267246767598923612721688622603532997926962828528014993732628651426964846866985669667974562654427527749303008968014594972987161436070399020200176274451269498212120184709001096572821572930113865343091419506738700328078782592592574105701581055177005309248169465955504155924144757632934319019536299416561726700678300304589707559231368686096141385888954814336421332072625559306418211323692729904770127797794856896292533029791699870351282426611281408982561462524354603721368548252220136551053192836934492335279125619145907745098288694284727761241586277179008405187112211475537956417952425995580555370246715211706472323625529467195356573228262761569280314131604280125812477119918583080040211769871278785419252572451147078145856533457199716668243251797046736138443531561020817678987177331490403199911543472299803687933478430390972762624584399323829172235430402364895369729291849576911853326786130533208925842829826837723517457409773939434789064557275918846749878320408204469780897874743130847224410853727170915655374342583586611976752753189004078769061397808241330522908651714735187490404896489428032403283270165091150619628577896991375003482222080823108694571490782008209159161626626587570357953047921271790656875455943778594527817999238092517534524893903688164439473914898989827702778945628200988488905728716359225287647073120863010033112223032735998300171385091520185394144973432420970303503997695931937550401316718157657419135910751255209790251941237052270214029593440716625714925502107764794289621785032266811389222620338956055026649758834160715641468441862554636216131806877684957988053691568029667575897183042566856892472303724742853195324819776361792877416396020193305222214270483411214062091476627116406422297004979880316309287472790989982148312791687054249183299585227553602086807192452491724366745102941776391706649856581243603109815945975483794719319901247705689656989552183217518263786881856133275622922414952159554123731306908923549304979139391056111683133855239734428802018263428849393780673652277638003351454055330442516513959242968327554367749193150189832074098421689250053372332844366350217236001885480246230515954672450999375393671509098525611809725465959866846107936041917887589880726374602024734724686910661551818931251473076167142529823282236290539895852112739472705260807810892585248010119011928632705334545290721970723428487139216211509793959325083023640282798403770371092116089445352728605109838483805414982905401243734250247572758543986093687304730813931062420392924482210574122774431508399516428027802490714590361342244437882248541390069257879146767346758897058629909341341351237028598519060724428143946280577272485751333037162606586193369607656940356272510567915897724830084679521234987932705700185355914182409892770209083314377479714601061763594424281908316468082644108621264691950274345177803506346495598877811732644112051661594637609275959733773433555620288660932671327132732515252515188050589068938318087029723492919202669316668475885330096121117534814407029781509707448721637299018390198629457579615729336074831278247786885527523710384871137837934781529164358416087620022700143936878796052695952119974313266637574069739481289532309084027217152686561012289498161003627373339826141524312029600536384902269934707966461263139094017866867388480903380382853120631435830228295609630667220850955545575406607218805366552948668336232012003866944970898115380084303760211496722041156531136694882149527494833905592355583336029015073305931728924097185901959196930379276167697808630860161643831022959360727729622531056780153875052104532429996271346186864672978300195747363102890450888497636689350839470954492626583473396645794892016242029337917835684287604700990282723308256173967306683930448093514708776466817572086582787562068850515074319370160938741843969559737972045104604272132636254475377369816503750537996964444014337474627484740122718383116692034246443555434868175566676541331411289645540172052196442053516273358376997750724661415483387521718106414694943473746336632392242406651107251242582675578744293391914799231141527616671633139264286265743625550911344047979526830797599205659618825754672344767463373314723300891457609637296782065727245856438032378307360378217487059812595546219170013896519227019086628983351368372562330542503361801715834634227603816608998738957349325399734024748210962779343143813204732804901357389310130923890455528043261730566309421839179057508735733135968338528810610097218096704536225797827576121941238709373872448548431947266701661222540377342901975259110055974468801689207865099961126394994348813622086389769657428378723167557974303159629743036049857172602355968502211123807885468559201067090178295128744830128450651571007189785291449787057563781585791487513235811720935808733506222052576609216238548612593779697626221425260114960815903708541464209443991633872338680522170392750162113461340082808032432785243620113892126889326418698842354948897713910831023313310531896288708778624761803487567691422025292679438409600987900520953340751782375738182012534794631685820305144991365838650999862562581352949490983810743799384143319363639403753730289094280417646465839341999676468817124458987155671554093268655207435350512600750537815716151603049449366046990229554058882930712206622387935771195219375567534456301842338219976468863455378165456668142718818038627136567170423280159387227285938681040168627636628543796770989837347598199031641066465066871446129778823022697388999658394488968563804889867903621857277680446778074276465767559292437025607594629264496310201548605746465047920986155465868420101694371947234193595335494508216144061471957099834125420741103258392218358681229169143462614736131933502808451629903779321900553869645140695925461446246036765362083611498754257710529810549979842979399304990447160067793793472472379445428115893517356583439940367198141180577345319361197648417860027915248074224054366481482018019940717194915010372379869456421753403787135363220701430145215691118987124133136575069000662337873747320208031754934214278447998770687419632544505950009707193605335866178401719909736980920095446385619438772887074697500314206230163680654951460232655720123819350420626765231179718834612223878317529484487223277909131802417277353314039024941041002991649750531699940014738450500448579128424082653380183972558935724223529408034486307604409163160546668965312595875420350375235702467740242315635942392453953991178983275412570454342786702427257567989068127366583082230150035081512390120496289923551464893680201439369552846097565982321998203068395057573985592852380852134531903655705239835350280066334019152215945739063398392452362402875907088444785553949104839848262438529117644124477393523901846435999345879721489559666382548057655328838364132088269777410875430858635265240041667377775484974346695231638851129492044805592475752579373772729501636304028771068301923900795084608779514106502222398416333218112073677307667945969754865494911679727689229732317747886200752723110338441340397673465269981368792423408872002661064102538914442728358713169098738565932762131412068174395771751023074576711609324671227346998168453040850264862912808102857943382730748132451263466882025887450958210774699644283525541660807179585910494194956644862322892023308035568195651044130556008154456466595399197508937265822632313679944362108414887523391701347981279816739538665487570919918434980526911349663675156628781859313761998888661060610800291725188673883350721440568010377653947062218281852140610637935165198601774199068344813246764681779838121572647229256290090431631013476869599352005144021850894015003030574241248795528288252359047940664034531236276160575796546511446393115294499609922265421391366635216062170161140431202808408851974699235482616892628387147617831326485505489684099517874503223472737055527841816371434906902618346989730146889251502526169466153018911126668217558057447078156524574824246936907743293880642123635871219612059043557562194367782182995396854196383562628976914201406996731297477329836781727761240658091017578957071012899230565265867911207447240696699212643968718772487346696252412642382109240406008677012845450769138451802242067924570870717990459548897945352240288812470412746716891285536053915802548452537017966999972442458869882691406199220927280212983494217669878863319355221976745456477786312771514104220491236798424599538489686802698596818252541705432473151294184851466539590678514042867144642044343842124375181740799324365220411667950709181910368547118446233148563015390270375424007835936052095131342773386103406111841492146526167224705044554530124543640309511608464107416721288404667245294228321641275615250185559524755844159214095200781124680700103271275262734768937622711490429322607264259762814364198904828267680977529564690464274107657245081364475893759096703212846019413063810072349753104355992414461580664756781475219501506789033821963551842391817600461788648319791934715911210751005842336154410635497409226115563785467476455117942877860075643460661489773156229427551561254750820220834211267584225264185052912640131455691974830605504286224928073185294817986537919021584204584770185267527450712485070283164544785519204790734183094972330669857335167898052777760979558934490201215348889576864920449472728071902989370156343067862651940911613226206731909654952219296176576916517049292126598377222323477182075853839740341692903650103124198724884151672219287508623804494797625160573812184110148595079461027627748510803794810297688684218644314780407664379613643845660259996640957814769512483194599683999582782285509755208815448413229150406934888561109453099831118309439739553617666120640754893422558690521139442365948656094973044327389442140954408903540945748658731527198477685970540360655940501103655202279878656178475358424174851506046319492577004535156462969172835909373524848586383347640437647246641668901075147574620455171769481215946145400913934558646880061517597461165327302315487814864221504923531489557868323221397456883136984138500275161363980758255225195835370752655327593723267355499785120508792567697976414805754285594892653486643945650415886989448622490766043010974292615952966500464804688273787322219385793633177906327491051143278867191581341386808492072900789128596948672621258207350237710146562147463399088443684871292567093883009306819464200936758348024363375232635079703845663063359714774180974837244667666936841606280608337053605819260415579401899052401305637018826065237065579718089772243645805982109368690659226181021668642997359680686017109777121035787233458064776497420810614173646822232779017981165551793570589296088045860096176807171612049390784350471407208483809818357926652010803708085662348965076845500213697419665496818549568995143484768714756563943467244249752382490880234859464386621623621767932633602660396465389519477611725407498694503520209354786120863555199576727414344773548489982846052281392251995186235298431272360477889905571639708232295165190582621958538297635937237978340851756703120371977672033318033282742775396940293277211550485814067194416681015881870935940479506975494157924004936222224558606772340694148473367334072011920038673839686076381597016716155275661019841551413791550915162939048495352818829618989018833445140605528443467680805255578106253209830660773888994394801512347346184977390765242524252773687217854187854736967003352204841162578206847293024286011049874753295629528830373439726032251700078695331842432566424219179845799115675431426102024265144309458340604341889407409169334769291699703698976675620515235799394124413441303625242680930245903011500357195681546545050319725370566860855301247330705331564033452393067089100272484201604037350645944070168470394537012346101262611976941116515960662472144624167936458345100527720107128361036720666215777144798508686855172234343152636163976293674232123251302516608676635586857039176211763129887079858839094776680639633158317510831906198226871729661145151808994253648603613034000286560186087598373026343901482392926285577884774218616603425461868881310012678054642472633819924822049185870344012929768786885674235624600957157960142980164565334115152723090056111395432598283588195066905580894913115018751155937446653691361801162264395587001408621390162280247388983777545788952282069507161233938353939779422145042278555059100285431343898822098607805356172705905900031864819064635501977998572304433829125678493906570222147914462807440200511763096063344768230087178307640478238707135328892125666628733071743245823163490058998822281397715859929286495527401547403669890847779440294659344951848803507193491366993674913426465838904426914249698863568528315645583177269473271904468736512571064339008631592560687828022668475879374398188484153305581575553332797740839602447616236959468713006572476768934893554371085170492015506778171811413295913489665963354006284578657660872479133704727673381042609629389010168578480258071250719957309165416634803930799820869381057735585748745693879818445625728879540654458023740908345321922342919931952209597724729296561913637672880036733436818302401117184978048992116676872543913211337349775191908997199971916897210901556122414365613950221878359252962051366430908039107444145734058835364493060544770144613560334942079360773920450713348285416251362932986937376547168938523886926761528757411877184923013062629605543104060807918766840252358470389849445878476751677873951576748439328409160178654994273642763137700961243462206697716391460666808973453002074918676869344532222167580868213407012148807107847388942911930185060796722859571845833958595616780407448851166581235112057572003234164060048506184196252351730304535055953586820270364597208597884486120802135419460545238009012478641083855893903871956296579907031176274050113565955557200670278563753536346288097761338079670608101935539832977651739080123650433959445070018634235084726203649219713201452254775588041092895718630787440718392543281721216057731819658826095286677285210886888303985682716889944601151786789166495960732999086329597069355265760831427142685024181548625520660446555878199132977943114965654840882724402042564632623117517395961291115580079119494053279779586390046523067691384488269304448366937146810740231582611843231471741540588145246268788417190804381739116179740777167053137377282880660608397538451827061468828785381343803020632068489029921358196400110399772881670797617889852752928615495836994253452999158660296109689862200986902133778337377076637888531063290567069167255178832435871380366116126130829919744584895251785298248207517117293109094704891805930972539590214496249196165918340725541878468533789577183196423675668682838117105543447739880767732029798796674199180273464409527765671155585639878724258139272156182658106523595258588181590758319857709163828186158882688218341159349451306969861841454481245098395040058200401882072791337080008475072715570710404708302047977369445766402773843178702360972963215059609408102224745730705104970857190046935636283186496133668540893419156098517975013491278412856105815667620210722191882689516349508641987161079525094380486371504376091924260909099223997027333201329477440295645203612822886222791981614822150397849873216789065886219851545200200420634908468811862665130375541340947755845937654798452846228314106763058122076816676007652276994881438210025696666747113217547859407196195215382386320217866865456206821018448399644041908051015995497887699063290424333095953556104965146232620652251808699018539965447371134430904510162882862834885671802428550595786908362435677495089521003235160999209055697527285629746810162508515695339660412237202232513789373848053533096531533661349282013395273749718293433803708837435821113875958961049495197190222063040188967115091155326282235413270653984747907287699724589919705389411875913503740631875689343002223241952549342260900978628688454098284977762423808792011154529339411990725066149140562621521299970477918130849407702185087658301373256932493449694716733986826964717336884635707685875690404363135584430066541603247829383932361970757091449166435298957299585922499809847476448165442888892720173534323456871800707303740935610588643922635960949346745626548255767724312788939757617899665899639344078125046010852919291007518555135546718918907281490145394330324852906953803990350970450359535994531601875585210418788342401397221656018359245597344354184833414885339394774487435294011161789548281805563962110800590664155780066061506436247481588380489237154921397797189986950575296043759351631314898607925694263531618711285923107259048323272695003410591276253440473169735593742206350465399023061629511781510777411832825419404178597202461012586486023468032011768552469084616275733245399867112493329645530510819796452606192407473106823752454384671104136971360735646206576083377903377497433132455986029587168391618878192801392206191058873087198892250824117523494893074872238015124193212328421460830181184107635474071930244955425018314521502071254832416872605901777968414087675597276329311099640132363630641366357918924891298181459619853082081191312704715220649027310350992724923564598570537944379744509670645809275119909070050448236794639313339838222463119357529513188023567872969588852335433881284254141620989554174812696543474455756982342043836199438432194156618470648283810230378603664612413758801880679970423782720727161254440819004367889423607972449713040444491917101531664438911329418920532054434794106365003956465496404579323503425866059995517052822275993664294824713485227000278759905165069361552831441699756437850075297942004265167750233493336713099664401539589530513361501678637326025562297784430116200596428602767338400771739686699278157711687842431430465738434198087798659350487146189995214401581015722115749434437479892762950334587334881272417313133733889005474880627272551521986050564201153058335600891717575525553676904787890476813664085757226620752002831754772548018914853897050629167102238733327342498996910894102040965285687272847983011514751018632996187449546246423396397582390426107432930973506092236197454432162007969136679697125836411905996089560285745535627226866594174932878734776299629807078045604095898920909018956219312834963029840613679152740974656803210883239745664251432756734727935575542239947826477260075809343769214735052486975059235636448688950277169824658233828509610427702590701929816793234827408527328730800828662944291662869082865564156083588006900991198414312210192629878680516393581386865338574993853962995925644301046449338962499320063024212158872896376691775969268927757364596111469819842527477730179614786130372000210526357231379308142623205935135866850712516616217363085980074838892612081388881649773448240530780855597509034408930748699468378690242600924638157935885890586564977918021423380149986800811368802201126521958368448838766721570546420640756791764076091953657261822544618825880864506083706829701730788827947796338665326835284640092429231922693756446439709505916435367851929782097514729516698220350207781466295693123509428072947219825847246642955723871222551041389555037470211693060586282155087691486859587497351499494632888690051661688532041235231835037811082552751277495950442781104237825932988496183036402454704803038305398311111520264482256656367795330765223530158936393176499794310165044652592298118821048613263323469462599527219012660680927571201926608381835518248646706773808845716290775067049885786289324355885710581479308906153163555772754996272849105303558574140754006911185891767096323272450946077366740078192020609765041960168905800625423822260124460909910088658143575678961876665504139773919371089615324197295067668702512805017754159594717231909106963768846742477120481159980047991256750895045918512208073810937730632968953527609667719586482921394719633523519655419871107814261076659325222597682088294750220831395719823394432150908856386991074405737288899077011971742122821833698216890585037473940222083621138154709734415773861875108840385419566637664420262494625997598515895709772128637926039660820498051390595622558368238123126862640356408265919610858344815891115538229434681686025475159407553460589035679313095943672689604881579784129016754211827221789306822166496399054767650210671263687238512271498500591726437523299883983891296552899166701936162621434630658617754221234308933216093156653500678996332788361129918470442969813082056370820096133789817088580642322418091399672105663444338164779178613455868196808117603991656824178630373064468514182309602436861366008281782967523127497115442949858062964710304468244623258494845889257295921938567680469485480846850346717523003160101560664071507557835771102404775008873271100626570083472518014016715592318943251144074358230346459505307761981747194670398291517366626614121292045169560779101084487870561876395404170432694270791216914309879506001203695183139519507587005576647254575097785474901736097640937575479922044279620916232320711865837250470754679585835929885459518005622097869382995702236260447704094206707514095859218246331195180260678518541358687175332309108837791582591225221996852308395454536218285107399390221869122760291724727860963781575988436858431307500671943675579981062006042887611549326326198897877378118986553048139917454524772094289662270512301360562920272823318630844291098432163702987887368251054950625996247618178460124046690570977217106055272607157204119755181791320839077450354742702938276074011786684956468753782273251491910270556454033705244436408890099266320050451841739682959904164613412448410478813444145576724525898948495105488622332014690318829895791879537056831033233127912066654451307232667570609275729989504287324618820349093723325401156926974796445654376729908000640554872763864988833708557457101216886528207028280116952108755842608917119890757308715528491418421045075273036279672551066352247242800378905830215282962339415219742918631062720465224086827063330705654747270661986569049803822560353181762452831183120657200441477081110132960335545178094178582886495356822633651052097826829714952135259644136942623036823303592989716477805926494341523504278682179892749679014455730176917789920298540028380729201769396979333325334844175935882991529125387441690454927086904192695860127170094067213133840682805829462103705232681113838627916147811741383603328958428135702718189752424658782489013588348626496955263243605919742326542820081586127317371929120976854431760831285041033731982895128904944179589316305417818127269312978518723392351760123164629090371394828984651605374026378624216817133724828705208999628460058307072445844474818712779265913139368168189615612103032256120130097597719152717417917493397640070378613640583743379730290513162595275133400803805163161133491045098989414139408681025260207133997561883679988423031815172027650771986298244542522092967644361757464021638128020000215072833589045817810552979744525998187395750556599661024532272896134958043298191049184429192225366881805957702811657857916433579413801437246348876394618041272560716817927385341837151355461091118898127763122974878259914649306711852719773148724195358919569286536157725081545243539728146906272063114728350782297627385953992546048523943485490234404297668536756246743597012600037154607758213786376581364136774709484877660022916607810090511704720393195570908984785742500131114424367228521859339811562776624642793212365755940264973325636988708262924225053665541088995286079840515010361251585605120771391477515274699490953367342873216610561948470148633881167451247181005392837938197491890158188282194648527189920969722753966370206219544400427454106693490034720782206335556374625497139151135795443942075402943952319142735084255400754634341160870272536774155085337239986039348925477460645985937216566416259935955278340630777691021420434868926112874936910829488392184670647987973601717773312069319932849103633746816657473996382245939012705814844005803098239142288910302233708401762370688838139470513317569660815603833446041765137601899043224337682083181372689927423624281598547408539524951496057798534971695389543368625654346250316255883636189456085236509513763655966897303067570776441723826938237450555599703434025276410154319945171526219820686103395515833102916414962534837312734661471168533229565778516566426474760211358512064868861321574675053836762639996996534643017700202045658271505984930098416174221000620018370368514921473585965239694243272702743734610702474986621965940994652816804544495187505892051446946958489566871402626069456804976043523517161900138376687365121424074473797122947084371724863659485847969186668465860715989639920214951088874093518459257192481692928741864762639395304665817961583240674520127605713495983999703103948412218063894830814548617201222244041529732635706764480065749468604471951176649172678928757588226653815023054945161235337840497744434775764844518528998565104684618681318669269586117825918830161269620617657019922175838367890180580009977531975991886796674486914093988718084078223080552824386837190078015615946979015649819363718924851383162428594879040351467711390604366119768833780240220520796371331517338834207359508756013974129305855238083666324452177449848357096304706711071572174614326655168347703018684335568485195948700698175912826126523644320918139473885639021730213873800772436938137251984470523851213538301039568202305016984142813383018154054971510385315445695308334161461718128397712384288546491961557221950379685128717122717309708085292562592187800957331378898841584777596760260722632742095906517373597578184987143351002665211715932218541295085109918405471307923418046150576013035805009033428617653144067762047776960241946668501794211595836135775695991650293922644161390213373011620799135419452040860791574513728100212957451643122153586713244481045287306858843564966545720251512882501385994800564299320807938711301317956107710083846255540467898275691380799036369107927798709777422706758996666660220874670833562148682126086401054632550296190706291849632960256640233920148016428632991542588769096049601249188769832746723216176814679883628776496900521463922750880264474826764403259731442961126777840099748090952300905452519637122700641555481335937278227648787103727166202818281403202398866161955950528014431928510396159848073961113694388887214054786593945994259153304167217712966546556613209536860200722560033065075183136376533271105466814265400355737289874862738672338402623805208162131110976795883101399090264074676956574215007189561516118389878864023415918572012976192929920882867635257377024224916684572974146363998312555848985388054403101454781079255936309054205865116006041075154659649193307932289876600237117611377060158719637538943657467258223623004544952194266551245507937644416573663379497887263790808627803928486399949712677051351114525031410517653791659934645563719285539961737538845332535956569434648345738238149861198085801143231497085187434051425449843409235504508449260998855994786280088798615140615707335715053101277419830877672706359941847721077403868193673533469845550463083273383554255957721141824075066420409396553514298605608359733604563372362406189142412490019384013019343133597614393592189491501016792359048511662309946858452574237869556069829392790788995240224173757470494883751541200285889760778062609371933248874099657983373472438221574487565777193568654644489455159108909628573753848291386093627651815173090630289328551007260739838390198893163227021077531879533853191403205255914942795330844654760185463589739611224757670229389346115223168592670595632561090747217645310487296644428784259462224177079752909131444319120868348742786314418391799152738391470349579209066909399736623639219666778370119136213589533757472723101885373611541178848453160133311276279354324659188258299954289782805197837237116570564163145148815773457619376401717249823303245182470512524150613092966871992354831189971650975500609860844074259439393037338262908999411358755757793061955512377617475538992959809774856690827288432424329308122067051275467616114097210520611568226339139378485753154393360010170999785485905432343170037643815204216633691910917025878724044508420707959485461732193167265260137218699565948062159845752746662257210285521587320018480073647493891837994721747383975711616223852131557399154678740302601236196192275643594675573501580017845855537770941292360119995727899875891661634972390022285935736820080224292959808947039855447641243435037539956908362439256182446334421930840662081598824878642744984192436794748311882192491448809119352463839699897621224682224410271655640188225085915720937481646871624054441642848128837665572217796078287117041813474327354228381239707925459221361504764192756115238962873158360603966719991740762088237562189373340979381999890168965665871815188681655808975578122821725000574798912822557489135307852561247451188569057409573880972730947209018209205395817595041889195067861927267897408651462455898193158322376021466816238063892074090189851999257784986684651145256661680718182019088243748249865262951335416960730079035649989037800104019408695285808778595804370939873088050657086146090086457333088785962620376801092695691963980023133987628610303990620306906858914944133572068832870223205227186702142188364332704859773309169436162280874111769464711672268144539805472118726996749162088104777059029104387860412081564261873602566198956866797686725476739385128258783382509125906838525274514790110325120718772108924323317045716552955087532589261703110950647231029356518846344013712757371624903737022639702315389159406309280545372930802353452334812640127272085140766573349600959194339155853376931600170060315214117714585705732328143355614590392637735982082826865661077289584369409114891856669805824219826751326967941817208980103714570837101895046022687680534955452220437479795942528482773786722481251026259575317324690814470215790743645985896122272968070308854371929604104588645922538989499146762087583850036039125902615929396577887659065304400524473788019029082725034290563683194002785847757700606870710315398250035158911344700847947195833626585508219223167634501455565718357212591706707095827528045746467349230253025483860701371630657970054923855682314329959565513870884707836364919693044424917556432160760660826015034198018529561111572263172441211596314780262037098928315517179098104547131852607078588441446706662900453556258788420397333520732871805731085082781289095095035577275052248505021247905785522314832451652198685389457788381264543227174729913853858572530560384698257228617536156850152343595589978362668812191625475810230611200504593651585367578371729544427309633215625924889503261574060344034495433860704589719470763860536893644529537793849974172932136865066228470979982834720133235475919073285481917649228790166101498972422573232549788122810414459952776232365092796901951512162099879432342406765436580261864253672901406846190185501091604333496748614020161326590763190656155793873085826468795380911228628499669033548300785692295442797884601769835949949293545109246548247961182248415019233887884479535310352709826044625140673332208542688939980328728622307066533669813658640558850849252543190346528743186963423274034518164548847359346371430759837869131461038864542923440966188064485890745658029410021723860888061073670119595684068299868359673675820730683770092373379505206207895695531234351811221009074386088296716504729798457349357951289574993672686595789264374883707576576388053104344235803713484519083841228800843037609468625801619739111162177857354708215175309307916946328010044251033517267745118369199433546902456201043402614161966651389987055970963630001335127085980456245660645858225375986118653513177981269419355781008456637742596941802642585016456042124814626530954864069002603571088707121838380246190415971857565084849506926854986028264600550281520750562930804688714308005397178110089079497893911587975845169644138976276271717124643073055527311843576055447157407542020554514807074204801015733237624415365420357154710590286312503956084185527874174857421726831655383767846370409934672064741784946307668704751718060762420510951087378781193276828865386540215599697473332843744150858934268803129446830066647410115498316258399937720988832442679403474916569010311187400512342459666465661885529716685187978289197163304251904170311660057084077661850533866851168348650971033564489280721162406758264553518440292251876144383403580123656746851993576568746843273738339372811868276069258018241189064009486729159986840347189144483845540378652090664100653200220997932443979685697707385698847814358986384976912474313153966119769430128710653199606220145303185751758090057275537669129465445249155031362879155623099516432969822234223914514951926399713708200063318809988191897082182612321625225967827866918896949789468556463305045585274528925076835094337268151519356490184386515571692774772253051549431998846398553086271143201440960405169714573185146775659287443162099373313011729060194360861667763286138028805728844601033482218745414651952721865322628406154215334030247769155475955889723457781370654917953135215593134253169558693171708335518455944325670481753274131201001545482842744609237422853989910608880371248809124761330274001933297916565406420844201137253813567543304285751629633792902196601786205165901872756623396573276128187659567041197802788202189831006547549868224807856938750560824345254201279593528008086875518268381395117985119526475881724472068503565818208252797050509542773330690493070719595401464435520274915537671678240621175919256109170125940127420068971722543483428604244820019568328029512495187049312112031734937247211491305566166071150207340386236389132129875420844347066904822956439935829778972844172268113702966533529135759519688525347422022908101609331090110728755287918233803696092573213876796868600814735980053561616949187822695483866037552588149953205884984940959451590389410833540157089248009948668705495782222486953234891517491529265778795316513598612207302251382091374965372859660580583856276928824611399052706814465741696054168423043976639919099329221824858437438248522834946382080442450181943489949196806495694501729848535473359141893336867584784466222240442613378236774933931201936378236241192636922456159398971936586010145956110096889218284880884961518213695393206592382547848926628155832875606895490811940726312209756114174695319546071808084603007902709631271630847966355756271604821268248062004052000066779330756341291931229106747989843257405251161219361759868858872385983737429547237865318361340664608681462604329329143364362479364049533835878881036022209968831202390625120002586913968482385863918284468031832051289483565474026564261979201100806232562856871366086031196842519476581030825607585464849969705091995398257836710640171219707583651386392123075667525448456436091351352086032760665568827720597636695519556079281323832266374361025835443384015481504813986414670796957930754923802116304386039329441909227884193143884591925291249625023840015839510521783412766527070986561159687806224285038531755263128703575977996861053280035923552288677832835992512210577504307895964989781025411516239362445359708455529172206264222253755001297390232098168383159133472614927782924128986136658483604336360636750437561541860531897471497927192692955315993129369744434864224936179937044051388305001461594511295203981010359643411271480341262512953339095291137116240760245599040413515277613522783453669769580960116488606110008810824528547589451892739954176456088409948070399419365624922797863151404504618709577135012402023352822696653868604598762294688284190942914271373354933842032221749512495086307166477526221462229306440983926224765507342043378158898166760747179349193543959537614895712676632174440003862329378131663650618847630214879385677398980816597840017810281875600148011209964621166796683135512468933744265275412046824888989578530807550255705067418351174133803382571818045737847047783375846159593427223943623105201847446795766407684008595311108682075798928836101493725552176066135900025314473493912047154995443967961040609679534647838297758093710497814568584820874714813239431525069514910136150783509095569301099559655615477198335773594500656395506023586438341713443588114679944040770561732668354016274434217955323011650043551152369271441039621303736937819968974646379552134435930253725602734434917520834918776180642265011253457508167684030361905316924430253020421705004927599945758352476839621293242540876465527632158937030940343549168374476697028075340507216084585944444625036518816032796199219823297803317245578914469374645406723618021450637621564800457470306233745427090293061745880946553049162672316648965063383603499305580957361897577600187880568616146615107220853784934915826142581041072761830038361059127053883370588258334750846549135627437850324086004517951705873632756497470065415635332482334047078886157319442123572929699414773425581831665938636398327259294004072400223288538188599171247401538370337917887020154965807932366833369753365516290810597491052033001780801820339695999287987305389832220936809253735571550827431534801816635307838555343355026617493140972573899354576832662970418046644085216899924002060512853459440257944173367545944190771225236377263359018349445480457528646161085548265673180219492168054904529507359874191720424185913214253667817737376443940492440012392995689336392520058527982607279718188795748234835302405857936074790984187680359890788937131385811524166961937232168292868072227461050517770259327533814451508150011124718798375983068990887605431539031180997343442955162529902883452169146682455331516481009088176724137545847300133499731378462805913569626435453711200570837947482035366936605493914656602072508057753547471560813376352109708616032947827585601222412357974744891637636159784399835891591146103803571487001092606948003729941967507423886520738299169689901040097398675984754550702225276411861137095141035338520545573299299836670378295067833971428242522482284155397815936083786415871638709813489242628103854420677219466736760225006833553150369217194496179466484906770610827023274601098028241642276582223787214949646780137141915304959904803218937464649899540912158186966415886163104022056256064563183221165495184410198276514936210389342397328802800642817753614574053980788350485003836488828091925534009817200124470937785197064855543049264303961674164543401979740269567642037787857982807381073040904975327924267981499275759912308178002268945223212877595436713800780643940446836861197952996076045963882206706784112383034640272570395965877121439497764674287748766769797799846214075276598231770372956897043956751185526046691604311468594891395602171042208589937268472433634203804044644006399980098347738806711945969404350700609486251443336737571990140022933969664773701781223296428178582683323473239342291310696136323669843508308455347536315926181591708338033462452257886184605063783915069546589748964390240678231656833639112315404175586366845156136228859567286861461200266697653181366198343856215502582443660187921914831875707198585430851729028680914620527521182992838860215911573137175430136650099083035902247827132728152584881019966707752142204667429661980961444504498738081580751151744090254706190184498072353946692100557100691981197535734848892382875673244664230636520316298762212997648464416725038921617230565400570490442230260401879939689515880474325844670144041905415766156061313896484318758610649509386248561870305898458048821953466997581297448246927190384868486736079638833896439987950198114823497818595935482796258170334871351424076961786134316162163089449602288001253294048750683438171390974872693799132586443494022308654343760389149369327580152333024842105305642438136111375048945188118987689037720478752689715634476902799367882544785118189226737355767421262465192290506930684790133538470369563825650074770676400851486573903605852273970318482090401275732483348821244215656214574700850241399236432780000106497950744880725255075872039196114823113733249996218555880761561555267724345509017506346098260188754063038521949962553920831406598461847934005795832726128122064083462299952880223565263518764437249400662881283301944501021969980450127385982032394013937466746012930944917837815177247798949948574802837196510788040403818778231927528336496431248731482587926827370340815240528079404825307926292478666967541966736024675090774657870539053975759727352766024375191560789439195784083228247472749996833179539731057428131526009193386596595907702808610275696939462200017135041287309118330970257311515964095888162230358484574191992892939548362180415068376564588984830641449846705715955847734724371474135610866867306297645959337978268778202150875734018750209175225128653102461097652445821103548342110264953239956993579216637022783318948174624646793153519275611197737403872898806891310881501315805604137151521445658341048262856900776513171442975722114662846905116544113242481216430118151385631797923110455351489816001868956916669272369337133704975416247292366569073527918212294176755206281731185864292205523253253105290290790805452680865673348647971792692035266271230207819788075820212678726274332133007537497571729845656912041991360319014283631843113756212034224792655723123241977722074602536101233135768832012617843553926488553569137765048281060019044913185743204028272853547054121405073945423545392927745154258727156120054787919666502331376079634512322241680030005415196777439474915373212742603414842826718821848559055427716786103309662925202100261465278245855300148638968561900213990518637151346308317211737121683725355905604954798025274610104765816219662310110426084268389492901132389873799757317427406597581242576330821065601999618883576424327730621962878271922509426830224225757152569100955282996079489858215539583624887888806014032171350528880703485861713997114876336749332692452442373738539043514237875215067897086533424428877037887130840912774726016320146222375154380559611527907817444937058787779639950955544675402228671769588842669956545203179948175574615815082301425332248081602568978977181253331424773455990111757932857361473672086018427365731690742932223281887971188174549798976891846872003674316940364413505884130887984746549224795277614608471786802515709344245656527474863040143790576180523091851793023817492065466538888264513892162714651110177467469809030894589824944727843494958287960733666703934913185232187551423239328655544653269126107910706446016623119257175334533461801716967735259965575810887444596332374706471609279034653907599248336580936405821832017191821049817837477612947372262990431458956232550922568008966381402825166886721427964282703242512618569844526707672273499654467264432726706738478979854072009777383556889992717227545267276932280770831048753298606160745953790055810822836912305012462396916748592240144436953870171275377016844937778745803405442043322549270735830584195740027418846776482587269234088352923728658519650342620700302242498694852951316485605620978500619364597143600552366624321667079445003893117600534627879892789225318738089205383795107039388725721927836100945617621322746462821931656569554231294307126440014883741950690594813085322000028183249216356535075823564575449664305324199242167192462837811686817545446364876741476688346999708501361379151562700694212143940133340060500055409474669259692098264254403177438404696643565782251066419756321687371855247912081970840927321562392528616526131080359254569510913337652852889927896008725499513036644550330682176888255524024576869541579416428187867112227063073436745861116442428200287644538312045174067699592014399945697072648090813332810450327472280516498951549278870522359817999977237647406410664976006948893039343371357591235742282699276470409206657515030884710317940296517740753957341226132508521880329362581816035707026649795371766777558648510506094373445771570860211943567448606582581673413217274481975044638436257368931336136896784526155866416880339379409383270769007508974388768414406143518633782956889547952115565227548627247261701393390987136099703741945858819188611275722107182530260584924359059070935275956296657047104806501200150277271641761684933781984597383208815334870471951713353378243236527251407648381771502979908338552894661428882760827637358463354346959768037511364410015371007891038592271520354664396605646516032016240820530553292584673745278754388610458104179761560714137929605454107764171491920277899806966310606611374929465918235777882258444062880343338501781583074368124005523224107380975954917356589417707708631110614178176617008649524049565182877017219699269772194058149158124503864726246975871387622616848343587601829696653669293451023596825562088805903130495160565790621177530121546608886430933977388408031054003077824759886499555074349442255859465515661252428724113172437433366834522443428302217512588398491608700064685364871586398357879489181301856598283237342794726221649912329355303283327179853201716222592089221314797661954630192633476933846028820857836847473062018901587001683624210574872969522827002413265228438244635049758973941007272809849140560173155150203276141851276482601769179695276153785601304033558013948527135765378741333744948446985345088472057893269493866510775229750834977869794085522691764816463384429552218598985392428911736287783196019949948189959782296525937931548778018562923523032873196612176070233664243063834344154838880886563587513281319838775607007390588153079341428233695170319742792640716027772715809303930866871980551843243862733017116238794521473511263481310873648527946353790832262888451980062749359015287636649672728133902455223631877544249698159480996491649726248342739575456163022582527544090969670561100002989823706274043266993955709423827060031310998014487193774744790640980009414115524290111267709752628099821455996611809034613384608711920762385137923468793259733260188127139123221364431366300121867121446131131816616636026510937116137898707249859378975471329658866819582061361041591872958807516818679061605484230415474609110330305838257946209200552508065529581285535073077635161074295371585966170343611200011524303358982684730635405030052067532719146211030503351482256964034401456332665182015494830110474447361552052804473317257893812930999694494722008736746921846304792544748628407787605672886769708404183255211018742692710160009373732707672934812403858305677549885259527144118347160933044090001463465957592275654732931482849279489601539541646401187451870946916451707481708734539120059670751191404424390379521924442820864067735172540934523896016444685344275730468531980838137600926595323285238987556560367886027076555260724424010503688108614698712830635376038582159197323678832553363610669912520165468505021713565619474557234464166964102267310174948151470139779289103162334387227358003211373057537827736716530399805585270689165617653681251833634993333522562927791625073137133047035407804785638052161312299002059026080810042118360683034977855425840255492584068204998791115248134345379293801247527282466513890009373208896791794028208450866248578268888703810232200537678045913348174846401660776905497608631448477653905816484789810419549456233737742467148448171483608566247725800266574916951272556470144861374551906568693617238164519992223359847420039457177101801833103310034407997620088638541211102132185417104841255012940605743512488173924752971265449489157974840536583844451771449625896175242809793840582573233583649583507671477811541521465122882112008767796362696189126851456385491306800504958808201619381896158722264710741682661184880190553985134127615574143089859624075254381953023318481953277756866379467802282009211134142303429201022171135534647198038478530669682720874685507088977426787611736753588376180094883736258322899857194633096746155770848644790833760112693212913567604268108014757925834787606533566179300711670963922991688193597067307026740161203696466433734783555005516020705448016534756914825027631713024882716629337252908686669530825399333701075298252413862551349182146137655867730861810205342936920466989191443876926271347589386903497669727659333194017309614326577391405852808422199092893959457977531174286689616674654663181764566167685825215176689717918029689315398424481260010041569146169587196181453335485634288419569922549682790589113316466341922762593703718377876765130307741542638272826464360398996828855671592013928316119585756617221215816796000928161554282601618886506826559606229665269776587526100115691271344863520652066304008985280217538883263060003763188222774460874130972018800157798005342446966094468752971010929711394360367943265926285096059952103800480929911202150052262899525422796817762822121160417098785078110949894279458925701936775528385465118804874443669562204729929306523316848150550047017208863105208693497310874969407202812279570592052972205869155759702160355326846857908497665535259149986738048512189988540835637636078798215126532569429605154289191597884623028887602709143527655496756490724349782108401259530647974593268128593146528171689271720688734740313703744302157973869962480865570586305600443421634652622992963668804831887220225041680219288697569062574926483872517336710074193240130984681995318720399911182167793421860425930067619089506757588774396899116977243245622180385409175522975004131164722662569393443730048643746504947149985614998400123803516599204723720104009605393413911627737866221944352145023221500508468182667487145839509963982410459734976738893678009312461416320225889173002638104954858338467054953638911328882655466331145570735884452783144319001356158806860986937013595927002530108743135941769620042900182547543049282145587382332281637356872201509418642370881727808290042754102821725128813244292025999747270374109618998182955621221489916600196297478709108874916899960424926798894759591403755436273267318604457833222798546461988843612955526987530696269857662620852250030768042567791955088986109520439861462672175717205184572830306745816452750513144693006950498195689738542427647435632493018940144926152067646302542346706241530217751265551145172621186370848397624708312582345157426177419121991840909072978277081639007084851369407620874812560374559762783934960557757074418534228733900392908591062507213722362686914743210810917491766263851000646170302794485131222004693027417174470667556666340898706989977539318584528956350876793253881621107384048939376516520249085512548996944983173399722117416984929733092824100528654357316471762263649853125169661415290665002822778666724225754181819101127006814254471100944309697228015938766581652946414354252205571156440570133238519631769489529958843111005714244294737183559118634511342690427980413435946758271694605362340881542585792402330268805089107232734072216413489290697285501876950429348298681543757711572190724901615935581998153147382247030134028060005728014677246336470472235378397178527680965080275051423456496445866587087414202325321735905833436178493905962476319580060472350978872544296269112867973013869053229866547395837475722762118922857776120302149656069761731309802809761907372616586573026689642354346677425560946253431259176410264889777941561070077543950625120408357579369876342523516334288450470538440325615034648844214212053554409832950789534926361573882729490131441107585688253890274282187206942892163468494934940418147857049439566984196026129343193105829321126293441255084897277645700253441800215985686161137965722688294707704529369530691395144574541430906645676621367055611380573366332148450773869065105116394786272496515765518557717438278805665309773980123519571656606446978172608272257981107401139487252017968710851606088919598090122787054404075206384864995912346889994787997347828025052663282905336101345981491069997879614916479423169220213443954561162128447684016970484448272919859847530438742730788034658281730398985047631718775990641794673693582501004593502763230038704610383691938699553386689367712979296000423674368389380621148200928005782398495983918891766278290083999092581770713829802399245860222822622109609142697835231291916864662984886544199199036520818578380376398302321503675699946937456046125590793805305239384822414805294876808774269740180044191993674987239906736534183897539344149093397564231727118209457596569593365331377642930980883581179722801964374227012069386855494989910932922549253863527545837446040793198610659800339747280040421776014840640369815005245109322192829068680556403849841587521713958801876580115846889788155246233453550546581676695063100532591071342038158066720791969353545333165414518962409843647268109353531848525317565567846381501510925810034819935744205905546672196278561563825182092887304713816307105879617887539797400376162554547951784925124752309248217814836093047518251745104662910541955382491038448810680300836068464011041750291169271369567784453100204093885508874788876611838714658336079713087074065929255399816888818109377371432092457097241760644369112380295369795141282733428422329326148008389672532332940572285465525452190773392453635314734684525059476987755420809420930474516907293864868939040356912495216445739895697076406919694381233230253092323836296486289847235162105048309257499380528327124188061734096444936994567890021960506019843707903168701229778228234213619521951535783080171107912220655020939250233411849540650054862817226185256888777094409174962855741067091268669410057264155062096469525422827597795938846828320839098210284393732711968977670487964536623499042513511383311997882520543903035201586910863406966848455426017760521621845388869210812710710782344422892224763856104486705354874816239541428792302511520740034202993704636858350657998307111861870326543676517624815578744158448401030981460908950948559698993524669133413673091321253751203044761105761320470262464261432712270918685501807878814784115689528260186528040078059736066058761833009562040613851469667180509771894660903104654194599240915958529466680779155830297041309234032126130038533220538888435703459115247899784715064179667133566988043226507022661647652668152307795757683953607688053669217221438298276663309819530395998214481866526194024652476649373163616798809510929658619728490146339212174555919374984313211538560964102732210251118119779504619340655230720951268418451457297978451919729421238295509126018811825448888580815936445183218739972024475363117942117309005232322024656974224041413223734076829126494255425966627847266169323193730213284100054248507001122551404007467391645632746396097688553740007118826817182573170817415030034140117522706817634563083294984319053436832136919580082087723157849388811598636088453059694224420838391997555535328505157454089485761189684013813589401414842255729283307758091637830184326858658863820929158885869881693957788564046070177414626827163644608763146552645075684013482706701788904323639376948930841326473671955766153887765307094373903337722176633463881291094410258405236487194583659351069448787568502156808182171448996155221989496466581609853101765552196774855960978915723306726979899012251270257621039933045102042558329146900515183102887670829007881647225983539583749650688934803978209061015479244376705818578107851116446917687061352766698537765622029769122544362753599239056244520298341226883945452446238096639330794661853762875464707118766821781849208326100682371084765898452364294592804304607710543763096521073786154651262268379044675481071688773837225094063999502162287417492241044080016581007087749717119275743652776803703706496282466049087274592762891932664800924500002756542061248840897670343493856044260865798616077463474685744515884004637970764129797291277229666634353119654870577663845315634166135608674563021256186828845765733209220449894252785506296240314385026566187356475563848847286161225223557507897431261278847915292800356622222430233332069537114186918701757573264781730427130342581203794355304645540106329688073059888762286306901161401575358032566046526334787747266165932942599107993942723360628697921943071917601852875434934810704874389914230886327050657142860233127916032418367477312922498727408170779476349997541928824926322955110030090978097784574751424759523325469388856742104929126720529667959300802771992015868920079749186420882175877366044493135340993521984819781311643044198339949214892722606501970668342380728650887669697364284147914189789632221036679695952458495025316976304040928626714189579595325121913222427710279999744767858479800353115725128649342006251784959418600960141926143925222055622161199541686969685378277316333080625751824581056924638830756249877779942500698882312774912957219962404205891331707084347368814675031745584215316216693881426115495953929542056826130636278757343678591574060410367133759189290753187068227087673886738805789890557197694123935556213801185576274765524862148328129496432520082467068580179887053384648033214828534939380519823208324626864898521446690078621171959519679947475563711314399525536744722132571325516362699750474709913272351366113650156643970525558253913304956239648883016516330351217585671868272583141733067181374337322345571962675926792362153114943644015498156946653255789897345673366851961001625787992358577718976505931958227539828716724142721073856855013295862425443493654895576782514871107443898555016680240423749037520015799790660712528266096934254266525821665797188768105579782817742060009717818939404663583885943443984251171098254691852601622589268389010354428324202317987269827724267318029379063487973152237389568787241911637507770794721963692034919552191052805945063795999652242167564659818639782320009145460678617827311980932172263948173910098783728714413289689273169027312866249224339600994320231757283044519286531168568315508409541152659753050015216219142635511252531135757604929959137650490992536667023182315459365429913505288805515241883113194290072076327598983864835890905345104218434445189767745866858027450966975690105866951703543619834187990489891266076126768448273531685121779107221555417750713165345413763195195334845013966978976482161976712916820577365123784709167291518963955388026714979537555102224780665594291242049198716419337471776818519671248645551354072595886691637049772228661682748550067870658548708257248616509395061186522222504658771464067714375800302223943115924602933793897716912636971767272939256700193748844840622274907276790768739242161504217854197197453815977465542821538261679360849441305688628529147907302689567468758245691390923939011485039072888690947929741103419845245589646434070414283592071716239849549829844868329023285676678863334429703484148246578177499404455774412110429253746709014533774314479100395790081814682870749074324817469835354538618600996677182512434310686527187928549741651074418040905973250601579656394487347293082901481129738732431967772883065504840562785947475710422288394072979079436225742767774406814967277279139641772094723397489257032110056766849820638865531327926834896379292631080635236362985140746646538780568941943805105340002229630111768567345672209698611504043056956572442573782339029660247925940444694205049253539085705404834346259102195597626648557725256051677580218690662909637523336499975709759790327717769442238762080475161368566275193127077470917711403320101116484632756808083348674596239027959665269481472363749823440791085381854939362332541870529277633671000652641397809338221832899567527429526013164254733996916511111066563455434063549246066807780968376705539804059983885469972221793227691174688556657506778806373890614529560190182697906474814518845947612454623093271906722562420399974633065725321477821158174102523376597223560319940392680370702129514213448741392273298168970239566660883138071293410044824098810139964446075792485255320279373007278791504290534936906697274214117948160286045657464279791525756301251390222320258961409188370779810444666140225484928053947773637648450069095338080742790884588937595918691310096573884876859720690974437192827051810924366338657931701390102187245336182676090129617369211415069262068351498084252648380031111300230064985973356562471031187121712946937042911657890065478987155163113152119705364946037492637150249985535522304747200508727196567384289761231913002760265967597857840224169065726177521663109472403054722631535349967963691706850981301594158644771343571253479182106284712455779195928910940206601832276666799097963099992675388108900643046134396251615810344979749390761078099573729415175745152231137128625682228529099503172744098697902074379974612658339206775543120596641114835104010969360068146234495460685801628735522570477807874802926207798029735018662532510145432527073371606066187378141530456462722856115958750867375405159637941319911086559946834128482202788409280120030206852509496258165830381645296151525113639704705710509407756047455106883744903307406796137571847517600603882902297972916751665468991579086550711468079701556643948533859683990968561899985786063885565485090391486163005518784470069652480128064757434855058192299007757112997222522388815944963696843712626014280610099580529619405861579842656197046640591901224876341906212744810474450875888782762104034777857932226504115108704115724246570475473547952099206123552578782459924832322311281139352765816240916738064449478929647556843298878347113377338030393806048582452303673789297669096965300605308983408576229749187710818093632560282947520976490274609580287401456421462812145315244833582826157477082718222919075468045884211467059580364879670370316480862938157931807922549879395879780065372875620787271009428342153433210010565857694923989973758446516587497043835481300996120459812366061787616724365173459789063193300430770711601433748710929649930889268616007923036153793792084723064882391112292006855306902916044137246560227694948811522168702398955856184343598348431509536952899271802544017064027462069800106123394330632549863430038110443688649395253097525850006250460785532449166499696062371476768193547769572206082060973988717685987817200980950823699492098939777135892748237125267091478709386170867968959032861551748275254683246731116399892243116767085677766082629249331533233135849350343260918192463521115034666368583103379387964271710716090730663739472534786570916496422763750726151217877568854604597742545821641296307064626673776932859747141839523335292044714604837525590110698777990426044187987401746347708082622411411668909999893209767449437527549433645913082299248323700892515171206494365234728634182656355482958726889581208500591401533754153001030894194376572275205959913577467938955313015163554427166854825086403282647744315465295954196978077146800394390478014219940634767419157532190682526376624017730106968852421903514712710429456504027778880389641007365511437803373764710312798468172722267585416804019434653564908070329979955025226449367654863170982840124162528315473291184355361285564819044624452783047622736548840102937556536811198612685565507353585656254969585091704338414185088206118435737266516417971972204760503850400604217953320775836210716376532180505417149070120658999923224854952258884028069600795483741416623013494413535726237895728954646070851891737071465672432991623361544490522296236439825351837569558852829523049915463485472708762241522844976402436300396157174137159213885512445938843161197387245775055757993169444178246972101348876598408911905550120789497247824799523880921175505096974991357860114356890981615276686120328800149846371873872752505614475699693492821913803478702367147206178074214569260319783617432815252025991858269022943412031712533469754664652498649511174257665471606109643083595721303660446383503974968866071797513822340915650440744293409845117951427021889170377030651600208538466495792531361256239856245548444721968139527491500682235192268944359612809825052370420204466688316684021007152200535474604705809619692196901210823204795788122898900682532462498099885733864405971264425188601701835938363411039295077910931483223734475077929213646459833110924285874447827765840126131691099684041730262846424316406534078349168186913950224083246496433645255900847103832488379051965678732751218137538300426106203941809585153560931741397614275742916995351270181072468806656467910766115376025463996282144027703122288722618511613710401050807395357420738694739969674348713329202964043715746767636434863692935429923396769971776943383473610603459533153852224267371271819243850916729698772095657644749915852260708954454771899524933070482600506537764712466662491573561169631929989340321641711914065621747866049622031312672529214622248485994704419872779873792989900245126117191573341093591460493345398598814482025515945798516507706594263370641990212757046052313209321464190027521989621001922937650650968223171809664503475017639896778051658325306733005411871046222012874205405701908534165973615116651178318779920245054201530874803068645318711800249378796586610543064702459622441725472927014573925581749258978265713146058470290639980244786998246980374730095466495146628723379198803938813144440501332772946926480780435674605394790031493618500433973593295806768411135569965123060534232095495449862872136939707144484838391912833704382844475768691578996743985901917826754281581950412304315517074221018946833665357215124038816447023360899864872067711560623248999692277169144255580317550251558796918563709552577857220908093522810603530418772955246596735848580495423573732830069816278842665854560926205802241757708725858063799882074225734776919026689403015465713997895032711382567461650996549136370841200546992360298390901437871041572813453579405071453864544963913357120653934826175851959077750458122380392633466903106120672929476848982411206016609156436054391293458907231345617988644923785545765520252239016596793812492967424637565070365450301677545631908758002506562145422479057107498562065088883404494579330001984684729443824160093498713435527284542732064198935635303721710292838916010575756019647309825499951828742541512164143511985711310810234878847373174780676546007139173833971629516966988849065953243292620793713465956477012560459489585661176792194990068362361274895672245514159547557691595909315105938218621898062547366450139526148046086735147345538333518358626225999571609867266668333017776858060262734894342036877490130098788300154182597910446304988716124247572018220352235667973656169201662489949850932618811588373334336809245328783908928672569643926347632279369169131599992203971946395516776849314076267610456353459832455480635852671870267693875293580764881110589436798599776232932492236194311825951471580852058584474732098340789567090495919468104601536357570818551988691975450920899217623405361352638464363305796315297927217510023887303258225797045532414547727887927060470809941084897793687318078548160296782124672724942897619226622749797551966330508254666425981790851091163821279202506085568569326880094216186843595770554235162657444845109223714733312096318174007518390826815540176801607021488836534441219871687741663110767276936483092833718450235749997060196588171580133610901507436445496189569457528751709550905259490142977371797719539955541416158849846845568436954800671379226663440108901620263488114230587466980179776664061992100938577215149043990799752882458960696260756214290113828854970484515982783410247073179018560798312239130184153945343092870079810587737165081168397622747252262085177430507942018256860412299117671547017518504944671317958257199812278184052032048673572396130511419260363686925912607248732658653574930743342897728908901705826399652200949023773865335925144164868007871967908008929291020235431581253921351473836854751433655709297816075123672785448860705200342249186323062070181344114773725142982620552756479702698317232979010836361889686748790748004815397704941926455295071226981530666237040459209106269567062466592596949046454611397739717099873738672359164663513711054785054459854232480819824763357119700184070805699982505381197385773638786825294248952851973066091736719398977891298016720156321317276626381205083026387828968387410281211436477770230519661495863177069195572423456273148325334484814400780675959603526538254994562105156392133080480617627223278515991737095508962647384815903698099965248370660412735728432120817293980338841467624049015910957773153308335828846031390453305177265459684307829263122540388618524012489600295567657495806428391524572060423120855650232092773569114559891493114341118090671360560234310569995005064604234404676704417015271917816698001545519271011696216321360526019562863566092310280430090592800760693070394642196310119477862955128555851480541258840349956686478229169246314971771926541460114655129753317872540049132111877397093968587477661516041332662670767886382503188329849284903976741476390386332721239150544760178578215380648440873572737064100665773826123379819998855942859053257316659054418760682816429985882267040037266613371627965812227583956983326852058899064090590905981545128266625028793007553363602954811627057626637293883888354239527933352038807350893988143950687669054879376225479212768361738008242535672766865818168545246548173854216797788140050250015339217017118867383190790929340534982031561658327572401217610424659789391787365030645942051884688692918155286890018128759623142058823465080491264677085557033682988366867975932444100118291111860646569548867906274302847501329685211108274913697206999696243269832664472670188694157779120344310768499142783958482479466702664983209086472292336449049521084237157465367401365702104232993115953372472776773850394937606081747264785448044886694753568811815996936490552586549236647996218296599926193796980525614683610864880352541933268110162751748384499040821223044453434913943213237259059329582798329479384554775401854797462775718962215083169277401984796982995914040333686069154905055226700521743896780597487815319264082680929226323814749447262551090925457395320365971525007208860119566234358273953517016028229703639456150631852530074531453618210963287494521302221385404618892990071442656714261420347570341351201221661974210349796873225324359068254123083963764220687772949516543851009928329646728825466323988213444468808632603932629341761446975456981938989729490012714819705999309439040736404518692041570923680511741402759973277905175438712553784715490960564185925226925919850440747924180041323911724497268584743746671445817127071592880366585819517600221018192603119243414940363174691033670224224073946069972658147938294208530342432359334156726508678416554768523081256583944272210140720894423996303637704180965864651145186092998379465255101041804259106111074590539491756860495301461141373289208878264990429106731349717136209077176223422808576066340519362358483580129322858873482662628626267265783132000170140528550615728015224414898943472632541273360774803935593271316026658208851646392078877477016295692006579396173192596893387875068952360900728996185524909711675716409643546452409600503652726125370648492650807512190645647776051588508788120969212480474454001120300572903944188516155020611958978728711629204596284202867599899807632478523151484730866874811060315328574295458626715380736070567892346485130930866861547158035208007568865820833280296232799363489379649487425040940880470202612320991901206604482011575193839393266066283948714998446306298766436337105280586106522386997013784498367883422816946558655522803290408173061718978389336184594543849922842390599903693449367127295451743203189089856374122188800757886779721345754180937091852660842173908410837396957954312309650952789186917223904511251209110568801906886151224095097262114426541948677219370831295289382419080877558426314173804870599104164882739404678745172033875265311941281578432437239411217019865480730296459655646271108731695238083519727962994845575905669010854351697067895256283724732813048032655839412686199373558710657941846672793077822915466222894661230588440302857701369127429522572984786629168221622764379647321528068589921433494703321485064921315993024532301882415904623506357108593862949685929160210334893422374132345651561642060492527062682378061287663739215263610580522010113271896296121674862878669218930553158475154701926872788163474898909855055493879064961609148512155965611150107282498060164571158081548950005065222761608981220583300287890748281714595694207033316010459130136726796850153260901596758484656901135074264799467985170731790449081103165070233915399595090895706010312894543178860992759188908009064031961016354913270374874626027746651629955156480692049417110866842108039579656008922644819968336296955791057689955010976922880723447023516931916043094904831274672788235411456070554994740953203889090355760868852852214123796159137094850678296202072667403605684372222944202302211930702535584284718041945567465554216262472304627220268814852669408299771885801384714492119070246770569233165035334784245570331337183997439092354595018782297151896332425859308015889699097320190837063787155128695993646809607637746780479751613169220286143709307903438437312950061232986513672197962585134438492668840334756062188201100322686513661569422200933170223761834154831939359035654690068065291804485435236119721252357921463301509752244476997391211429450333329508552142407912138099476583537399265416013317783572397039293630150439629662524539352556367444749649306349697276399581959873647328697736251520747137526317245832205158139490511159715938837665008947387026905234851791876262358940770333632367818659008330594203007901288139968799789023943857801407583945916008947538685139082486381588308451014858267175537932842412769488531391439122581506833115112381786227832942398737024558497988186417599928459595021706522411408487074965691097454545822972297593628048926991392330335510803924235269439895380034355743934214401623132663571061991255937919126542999170051110893088253382894728401598832290845150693422049941408896329983768050480901260365808264469701084919638136151241491946582834317460461625153439715399741401776705965850121595974247592995829424847821450030524239925553228659362783954970180783944545846397510557520567674280557231865141758473578239578395019251174096142964324144747973675723350752187440832356025971018774298663248459701436883746730708714191533979527738089412831943482600483184103954261382949686691904208953762681817921286432550634235842834946109574105090587143497301072345146219135413448494455632155010177308920753764839465919609202096937956234447236464463518090977156492158501625859651119266667044948596572709472965546294961448902462137260432908999552521680018385529435863599730268959410378843802820552254692401637426304757230119706756494674870293295744350507607000123679936857015060406070972317966723291960785929147220296873968454917314929208823237267092539253857026199778350517302763008278657648881519308378008466277583737647442743795815358294081837124287183794821872524224089427574345619291873301216162162834132730974905851049263820436957102462126292370084549623040697544183998983127556758287896435634844656515645955729159844510915772827397689846271076115724160180255524027446818623772987464676521925392042898541205975208121190411396766449529084374364324795636296514518320528372424207495206128837960262873580017845792345875046942072115609900007372178786668586632103173987143010540509556786444373187169076910126956040919823039456213590090719720229969237721825713699587462433345693656275986007143631508710849898372018695310761277541763391729893205963774706255014419563425831881160829446472916927613195953100135337763777731102442360542600328877742003897246635887809611733243426572888569849142822371618222447333229238533760761006152452881504077382703246636313102321936327062743966135208406940940575224243527923436410371711593276305462499199351883501838540287048414975532861601386851021999539743161419917269685846832061279081220585213499260928584827805025182448774581811161699836780309968989129169354807006771791957288603166991686120515182742137793197580159983796583543189852112281823336528256284639961798021755598059256420174713375840742614535903950943824559639788653886682581127417043712015296192053552444281525711721345584956262745496642340810236616709114131708393503466599406082803602724416306420897418509563559548041450809121396463045421218647236199103545243830045499983407320156357849033015884676044192409921279071041739076143449735776749586806422813808692442918076087873325960178832246300946444967671645935394967728159536724273513025445521046454525965342805739902729308077170198929912461953090420348084208172254153794319346335692949124159785723392270846689640699264364420764664615511146171380353337308658538649045733089066086358218592866063382678759794061331605289699487004567543125785858727251439641293129720776863329789149821163295391937940382612470021181348180773418575150068068763893068897726636893135449709840055122598590761915516405211699764661859724834382093654925176744474859930248466661037959538546579601691069939010818565307823935471356635272982470839219204570128888575289877672030072003449877782973311062575407463217734371028817300074392712119027789087796284401482717651996679573617483679784162740391977636457089114081129160977971007358162556643960644832026513366294045301486937135999675936576965428552435318906723711183509306220731268562539477484011178888994876173147752835004555702512683693420046345083347449324730911763200654466256967772683914659776963884228311686238449944857705528656717188803377332686278178763499852940704454587492830504019129383712411676944404981020254163584851861976754285686751690507650022120739377304157475019065763093095058434212603547101547764646745333257534101024336404414364553938312585859951248451655582842874703023290627428459396553096397768386288623487507572402565901454042112531766865894557658600449640552085847015381125584238280415198987443227144826256386062117886075314025178354533810378783741861784875318885657326945789280088193978884502551293447400954604694635395719268169755501267061941501444605283584627235776350736580801467709272926736295785904151354861920462149365338347323000925398084126074611532354723346088059958037500695610717283922997929668094948979216795660307680617036248938508046710090679122088963112793220268136519338317002498067549102229056810890192998809848983591010720306502643986315799507459210716065159058040527609947168765484086057087898617903572863837418414520122825282884906177356758548890606043827111130990386738423429023549184847034885795164480610519459312121353445119553092933927300261803977412187254456157390663076040283226970049096989532253475705847856723345450465015172807323696149026730446813786106801837176043815087378827023279009231203208615059956849651825503426172386800795562278299321837101628420734478959122804348862698966825600300637907178480971074492271109932635849597751914235395542595110173683438389266299513448386402745793988442578440557662735905850557612150358862584531698251912614680308277111655934629539682299886511989054977087696756429299743671536487535426386908188330090992131432263072580716827031572570038660519237123512757749400457798948346224880717680518848541745237865319837323854587938887718291160007519343925664536649120112118472466237459901049220665002676575212357005677787163015551456466326454601227601390777827836859652702217934947693125429526843945272841346317523605329643746703427238786388926924391163995818773142048896235118749249699364396480272834097642225608548531498492194538546956295439577277062529815794063461916235004220852390279175641410385500713881369028426978862423377263388270206112267397554737400629548293976163360520906630671897332125237286779844500846379338499900849956731191944398169956913056283052497508444343479013713771402243428206340088681043631354315123716890985951964113428295191490071240340182752793469817597233574319230481810601399506198757449468333926765462431925996143155888909501955118310252147819974858860901584849077703614810607633514695043280333479476874813002199170840393273760983013642778371941782923594595920625121098292825643947763724775082571497258294272602748739933531755533641461686750669016023347018000323224398723326223840493447683502204453282168644062767537680765303901943092947146837824910784537131047537655615184786931658998103887279654095696273378576618457394531802170769270937315156301070088199579508126232759511721632534259218040948082128260577194838184648237487785634156487366366723699548766302745093411679238610540783980950388122409191739330841783752329176962617657161740120526826887500339093340184540374997844678434210738477514769436215773080355923685684799526662913904482776673083612692039621234364129381904282706881850940989113502277142945591510859338616795326379548706362084144401231741507303164967809560124090135810772943378703416731534860462748954792971095908179366424760319982952754933500646682297028137263536665336790983461348185649896129379896271268094398863465815595741879294087104397411590895807930897087459856470053942789888495892187754564871758182438691828240741763520429725613917655882110169371831007477747458951151518188336512222528899520165382904661678513261237678227002326414912316053530587075696204568406587683086393753951548954140435778563417323974727440788471057614932378728730858502395573875116270462537872190621231380723383969724819006255371782366895572621132438573019699175286782557412548833983154212271181312208320358619357033670241925299492837306673914966955330090113982082809881622051162073451421496650625562006349585650676799331132455266941272069351932142228829618846429768949218697741894483994607757082666594328836620388736567898329859911130691996291419394741182447655404386913867000950892008353643416873913123645216923544476057770115527977908620755493496552102237137675719897554454230976608606464147179792159812290046333393990953462362331173362075535858679600814905970404766450206183613481034734487434280450817170127021170048172786352628727532488154470973838579317061209069630538683433046100167436701075427531427244148397816641885237472551991911396815017093609315209157173300716587880515539241965359634373489774594101645004325321252132230815911987107594232770161105204994692895134033651508443783071220514718561894710978932581503860855256418964827672620287719907753683691089869018461189509735256184443140728634181228207811152249395900915189806179253374651453994136485037808617250520074312589158262727550017328129791989534863599147260904946476742761228783293302053073611788745414596202128245406055111450950630215228337387977977105855509303343360640074539810720902113185492373935971676337369767080268023149760287876639216020958907409288245727181980726996392970986438168398008437276969467264442434739977434594421386680579666696172375219008864403832733857339019787497650947884944370668458131938715041777463845511709665911594443121750944588358624122439581177900248509911322951019368816395010796893328705368346671810132807447356222285401733861848416327351769884771588848315768194231132967094364227597659569252697509318087053755001006697117585960696850920155215902862293791293600335797776186698149511666307041999159941265768889879645490351860177210844186443907001690464374372344810352399645170611406038683668278067967505061187926242558096692748587939220672149763185924501056018961718698515859104920648590812020240381289838996693460337582969251973966672190488777663260185872058965677981622530584079156805923290283432939639125951227112263200546991347583098258872898129140234556503880776459899928327395909496405184379882790461644564512723687704495338017844038673554284964716906143095029636054298225733987082300675028880760977259631448865908824259977889261671150327229009668283983412773929520017255703420407504783354432906584290658174894194489632175040303080112859253223637229633623440794019262842897748491842469453689424701125647149263932178379991013739287241390494277184721091034582117223729624586309744700092019798906572062445390913805043595988453431316266243089678126582586089080943191643624607228770895279919060526212232925042078415275842148803631888627299712934908164584929681938034508448827629376340856568130317566975588915126176177069798810395968000581693722674059469886296529053530253267058407223279654005846643868898560564214531334295051027308947573601146829700958402983502624942917770967889571387396150551408586900579044331608673957806480958733746088306790011381377314544801584164712596953190829700781607438043004994407264195411024801233561908918357472817739559707735805544529970073735502183882416880506469211133170179149191748546676515431797417550690046574653008086225586980208818771662027525304722121870795567896876618344432796521349655043173331320453547902187434197518571842042864811032564832399589563235899543575983570804583998056615140128091431281182697206013356185345727573431337044966476911251100044998956325276313596075081034621374623392164894355625357451201739969097322706497048655467552128286521316199558934963091448735414013442167513445050478402606639207348364121186344919988666466963108915101498469715589588141150857419047125693378972399964480021022300151564905192571644946602535954433469661190781783716021490606183995078213880139827882713658956378885900239716372341287145650039666257565635733013106828309997208748699925954046913454124048362513710185158445725712351518452637287601846247816323463941692706646456399390835663800739582050527166358206651897480479586146393528154139915609922380569557567349455185588747787717670408994444700062245215371355695924568848102159401367650817049714876449953016669029303332515997385604759584907926085123546223675789962044587359182689946847993458548182326201697261712584250560198017021858341943574164800463578361149527487037353078982176856588723615404421208068643346245059028113205068047725033796821346992750010070192831489392538813870804754916295804087113873445122132276187962615604212173381693393726577058213840628283299536531985455195948953460185811926548591605596857847636764986433490373382217089535983210638048320759835333440100681115335022192937231702256660019538437156247579486486987578921233668525546197806473412562100826956434935580687843422957545309543079300518633665616014633974591682967186904448327381779175458678797162186354108536436483749285999382174560415107059013369722907879870995529356138224003206122305233039405050680463491724592100147315829333102940472406146575136170167780810533770710758856631119652868591275872195634200954911818452823636577514510364045112647277717190434252271635163294734782491436576604169073110753709149580823010176695866308235374229367139532550829748572330340394299913049306400128489150479184933744619845670194819807236087977733513923875407454031546936971095998056427613164105054865000261316937155564939557780907431139160014636455601559369563218073389676389065376506081276832832451737147256982529751907271971161217563101563542212099732875471750347044303914120686841818870927169602524994175367868651642212120899476807275520208901529494056246295391457266050568385188196140068156299569333859927268282287069753409486851440569293919355476779729000691195714040553746971836931940135782395298850576348911299759924220172249300380470909274456285243773057726714520004733473853547447531444940732032175314470113960378548408658260986073927906537915944546280506135086446434110853592406799472788491845661502802372660124858317434761702978675966582518824074763609893496375600018144103929527271022729512798592329882383587383433006550963315820856532880513061173563057047847417025413141522656638372769862263715297095899316835195717118420626496702962251523896694696432855293257280164305521790245127149328155048516171068398562580660122204000910216653285090708001351467497698361979282587107709592314927457305731721426316832350325838780674991246176683442744979797090765625847341454470622246526336160834465116739622274522614072516455683283816896817876918290653158750418118322887584139267850971273961203298502862213505022495528256738246172967283589207385823477810443721330224826783210231547459874169595418869722302748236685886509405989493586664544357647044309809957539021884810653095303529014929970877438094166961223724681687412990422537120827307612212247995232330957210718993824339259978524855621626233625182211513506622331597458310088948643383791265516491811906698969195924342702943543236071090332363800963127934558935594153867671131507946131177756698421237641439102532951469549095165254100850891388459450247499965694310978165570137605035956634316411602454065956730953213356502517452015944429324045022925918993961036503034930232051980735628294556474585044586689889574702841719907587164938651833691308179094814289629529981802891680401453737019369749975689106994005597726549360539425424749156914298306626941725627381642930937545545680644487613553570435051002893180212313430180889073208178445331824125942062237068832309659484488606737772661061925551025447881357992214555886324794233155134861229034414869700789981699610675708540971237056868493438543291938025290528621735801346687415555600802752847509676520640844138227890065242540890933539618367154852890599338277493917033278497093483968926440548672881227477369516139462889968119991309208761851335434490850034715314166579148568479719962189156426704364939618491808055559200745988524815483879581669410681485099781950276222041629789465924080643984215336747271760329139614967341333224252603249916886267308972768091204574617778957301859489925588428714677770778822180532924798878727367278178372388403158657442224847433839985102998271665244554354389334112039289326425560324928983076493791430957698711692536554019720349533534815432372721604801963528395848138064568331016866514459697690411439302729462984075695900762658231481980003342748736743869310114763249643629550549872477490019820190493808340682658425547614494854208334673241210738547979473828120090633708556510093734590435596721137312513878372110789761153384483676291267605591618779623172704110191240912344637727193237565546774108797465910458529450760682146636394065678188138253640522674140571491628866883826786824690251039645537227446895427549525538521528028699350690605878898047034268428719715346738308469642472102079376411676765187121083227232787751897344646415959372874215443432384857081343011197494108875262363583887626100057042287429215381662551263057169533094961291289213568172002410622275182341026196755603406296947164871830060583873254581173630342895106427070517963893437622195072496393788373334097767001452111681363814861492429398289353443477962128828167992612415400255763777105607923378727539217895484910571235588296445480038301613876219898811525457679237142115845858635651997828141239237119318990043280640384630807229139557384987873013359967759471174306315629437554565449408865224170640472512500973582726182369794810214794454379609389924007133965979831231501654829968528791188127354444683765324832046802474947965709240621268347388025401018354789021481831648814900696420393520670573230938419146409148290375561355145444870097865043710825086701835685727514348912667370809380376983565633516886996447864047721783426926476516968793987899253004159813085638176218329615460806636031528853491347710819020381941908015322273032250475441637243475158811175446262590344589475614836382146503272119829510376498980495279707166724866020006088947600621062456844156587656565852174349739145969908186655406121520683503884395670724319802145603431824144449761405730452232886910506279573567211635664228242399431819489160953506056339858082270630967108530432371587000538418635498999365397676149051143735089147431642202348380669942357577041709410905387937247141391404787873078673506833609360532070334203034249275975752403548292944649811243852435686924643821320454327092514801821103568685618302611164313727074741315492406218449989942772798952900703752809006050009375906440512627996427013038321977471952717547839326692299575144496013647646993478303213577329323030874244991186522400483312649760917287426965125249964646349446778194202793626043924293032054827934835851934808140729330306911449947505051197509692329266436927955265591367951014739105865148634115656344980873774841529893487366199429186271151535261029469078175035124486234027638774071089452249685294311790760699845296167581608227429466613047620882244020107728305516502149068215547435079114109194434712618527005396511124085735551451985251197221427813260788666828263111996993061931096041565423648080084434601046698672955031778159926173931804344385326217525598123555484363235156870368840215271381578508811221507639839578667677967258351643968501273715282184063817700286662919355195562322324975130913028848532116447494998492734110041494513685670250683981893468747430831575289237601045347348582222200967776135015100179959854847132255341595164198924585743705447445872959664470703650469569790430569407845965076183222732939757633473790324475282639484389854533215151255592402170641589537730766625006227961616206240459588721789843841196711023712062707095775945515038690210851204024086527443356124586677474986961953883816825599208258688064618099899010347239690545903136004725918095404454686631236625440370036232452859928174285256403653311674825953585298885142734064875141188774715938941687633242626884067318563118190301655740084126359864713759507473130160623124341765657225273935380614580956318877423997748739793874684364121154688980138895976304419573774212160132318880137854420210619957891342115793996771098220571728827986500623274154072994045717275231565338871286123308004256402545776790189805074766298657221363942057869043811244190972248798434493523769547202435494273206244394969889684905286406396773465025841058537790284140814832578615738347709370274337769020125668649200030349375299227716682111045832838264452508839876384198555549503403452096673012150268523573823252074030749865613151363049723512021722868967980178173199840732710763457324956068472523431414494209271848897091233063501464416993300107286016127122815436455731592938233586352774638607852647567761726856413962142278729526336137982867810110032346012413118402739679791698316713414792070576301684926952663373365379777553778555441672753402193153107742931395382544711563893331716191489480821660454484215755727071970015118608357154297147167957047125041783691705864928495561835312349558400978924127469656774457651675763271791007871745680260465964142662788259673268084427430244514533588886219189620083834549667331524257426492925489566085192843243988921328699953260589138520157033479129940081173479081708097684514973362153320940155978321306301619660154910215078985834465179266342455616251863454361208870801847659041251076821120064554661106426066494701881397415666953597464606143224610906705242748303200251285280754359157317196478346311589946665633849679213020603778483841875522663311961249637895120474332811131791989693972531333198326909742514149538464793284648137397484323163113545612817886601389598372187470182693677320118946424120931482814193527610914280444459743688326790229288840913639932708391679965073877816644986401399944838854292145683462981662978243905495885041250026075137428077402626914402593414137136718266951683134841633451251894299648685869309664293546292101487336122775624822928751469244368230637071229125272459820807235201319293895324793049888480760082341883271998158005710690896547326027885021140256224243736149591240939414284178148152163488886941081953427400378942800190176178915086703243218710938768079330287159521156453115418851119288090395097061975672834260155602160614347991830278032034882613511613515496115893849124860585912305249520552737200772113247889760115503253334618507851644426753243462760339939783365727174031264994640021775400186377609754531023794020540849295743232225035234960731289926511714489999286080910119024527331896431405029477211894276870380266945900177662064731320402501903821922438086837353320360939744359797256976568989476425697281530330082385593527275991953057006581492507915365968986801394590166297788566140200747744079298018757943322421654241807883707306740218758917258138447831543152435188632722330358286408814203881370706483504696484931965101078636151633143429911124991171673536784892288888438744294612181691016806293738052939932777951549251458207065091251898490721605692407333451241420669176859637861374317485792009683556653958253681030466103141155925707280403515603231204985017662016334010371420813341871118164315259472062457975414273201981166486314746261042705922812362140347243969307725922136189587370201942524486164365522719887159009117174515430543428003398553733166155337850966846310397639034767223199740040677539306908228843058036622347534447357057534054523788885649169472393592535712298399712908007169074548960309356689171802382625788564998139284621934411837469548774189767605449256691162142498343185937282883463365462779179070707976440564228477459760155779738047713643881251311320652926557931460138991734841725242836537330345371600617435629481792833419069501502575682282648363146206155521277643834976698854103811022647216568578136361642540863949356842445727249340183605988986271235876271881908082356429419142090065591181828376138435070075621979318196289728032056198257883951057735830681072657962040863947247284321470550453064081224730094921701413124250578118673665479900742772293227435559392099319968414364461035755058144861415213350584843599670842012408908212129951974191479385357962282453223736799546779654025394388579212664385215019360026369610007402332084911091475651664341988624186019852504066413426963334174864464329527108680328209689934855357078909308948957954298747705329707736372974619741158196826639980690367428364866402253765069791269123643954822264812953025993931326536503902672263823057117472055813325914817344722593404529415251950918713072683775052712878558492221035534500945359234118877728870221357176885392210678578446421794895549990922397384920749658334290287227530105644066351663355235751797374373865361626121069449464521568174013820039624902353233019840874579982144252857049323277393536743846642814434924581331875504094671784384868799493435840103555275805630084264436859446819906484030889250276905876751549585310621441909849304346994359964568426478419294433305273354513027510611622742491759828007241988737353069498322801678966477709893666325441074542514266275095522848277822612182129988572105874361956997035515107773968644483573633987708401217053181595740793772659365501292798727904474783455535526599960125932242277930647611442807331790038276930258517265548464358689936494164844641936723927268874662604129391445085834640509646557996771231510996593117307641818099065236095046557917840452824052809508484903487419973937124245129213155850528970330393084610586498873066033687130878046802302175451083512410992837583334469291328859550034872655548305942024450780930870960177435623675028654681868044965207349222973987227407379531553335011066811856299227304027264619530443380495782750677491635586635520547186460024698686579498975877060521842447167649253843613316035770299117311454014886820899423813552419477203381113195160630132486530637646901179275073105284234815619057080453661498987133567191814372684039833376416819376302304228617068458711954650627485228447587262867314705479290131794430392150900743024148610614212991553777029107247586460346612238317068612909220995013681385079476623801302159376913967674187907737437070270847217057615348074506313485675329901933471405898485655326453971968131750633825188376879019507081819322731667642130855151658193932898035197729117437471408069680605998878180112445550339134355235046602461676890399518173688173433663589076343302181470445585487999242779810598193945495468153738333097990036836868639350515535095438698159805258336943630913311376433817836585216711433361304310838308500057535916786554877828272009274433201419241526938067361740891398265643499712919099823316895035891604969176375820746812346750734184223241712001434695134958258248096378351080130686030483195450109570316002921473522083260438364394501406042051155521847163914145819819108142286645883901596180188570113817234235969756838846343955097635440476867691589129961040146958479610219303235108585720439775415802880759865209260245864090839188357212938377391282725339195182039023270817291172781478699560823576963445500983792664362361600509551902357541786614050462669615091673738219113479615236629699863287396369859814451284099130863037174630535674524459081436150584698584933049077866219826772794634728462305408045969476197287361751469101593804812825556596224384483156561887564336991503628507620083315245378366491685644866443983699735283518501652663798620575904210086555861980480305131330197691553182258816652992617769469009467750623895165445760523739047830947601626738409474657422885882272359801080389052466825970861895869456541514671553159738268273236774844411597464195822517980728194335952796945750797983825037635661752515642720159908672129704288474535297799002111786576381414337021587695496357248239905209159299129268894324826848181158102564173617809693369376484053857352000367003632662554627605972367134576516495689048313968258627378443716962669053886472159322280379755244530605830084585883299795131120860527826785515552039352210652383902080353229236963605440924663854882966194532965304692378516512029713908233357171933133465683942825404199481265699084342512804716829748231126999456825452439397542555874615944193432697947240249945432425418857084484616059631499404523693406012074749083743229669046906346513779578977243378923390900286288426958596229589937610862768687435683838911950621626566032234292098221385572632864529338012400430969421292583144279672188065949561675223691449370612143509100690341514963512240443289814303213227454815512826255750189575028553218023789618943341640874068336283875984852798654583618742154588347520989018949174466329613843383809391074443950619703462316652759392052597424627780915153078524013722320321735473308058507388997876988823923944486534759010612833438166404327063896124144813934679693408428061465558242377797666459534609025265445037356724129343883812688052767047075357722710603295506888420620319775353454568437571098206106930250998279941420859493460130809132960774894277456054609019433496206838633517010173377564561568132107726952582553133949084234214809957427996139761721864313710098301290312664758449222126489268994096675708444648999584058642986476426903251938630054853841313457057013184138257299134166615927166376270148686300902744762409111789306240123930563740553884423314212208922046840837394962548643127543820706175107655453342985049716454881308202502174555499604707593313243840607137099933599504789454446061302424124604379330871916225804787845711218182523145012079872476813231957299099094118484709679981695624726690068107800464611881050799597572329752724469564533636397944215382873186773504936597317052599562883263569949993486557898517176421858015061369713432507691679596140526844761325075861059092517950033330997119589619697151096687101192535082888803347720158046534238817873760583528809831071005834910077729854496861592721706774137887488051977954621304845491743000615115467347409606927086287275571759251338247784281218552936396119308551646358077927851959755397292639640961715778565020408094267401342461948900521432465700336409969427086941568621442835609992587034099476229316622023319080388526538956820757218567376467973033429948456239421374750207294489636835553915225343348652337333083783972293166394551775126567313312826063264899875432259095706472335925824558418000839560561770324760191651592192785304054527544262164070555861147221780549217410400295540538954695284531894815228217024699527693578434725380046606881315620255068286270110202283341601518876305696012854607333746397630909339116582734506233279930741287858750181166805732522144870429824113631159370735856262087332782013057764659449926856867868573781192561445052997866706514081705246216077997659529160409249925270488728078389678844946576239182281549812872333607714982877054847883976003804807558786597215787689301983891997382934690776146672914299819128217731529745463421790402558623164608996256811986294565795642926717492482777091955975737882344949749014922292712340923832660428407956553952502301003574801774424198937583956346969917951259039233252288544585059964795876927276513190241121552368148087852409616865376734166847350359907161523922260613735291334830760916742144361023732687671578600949619777002959811155173528181879099943414243016796370481779646959272375316087983684710113125311640995981772977758671719832344496391784332462695213054749787966375366663633958379887494770849296110944135633008550143964686274636404831043993746771552698540421836667030246929367835281345491783278387867222124303212377629454264780587203585124303246165845152400418462278773198015443363258645089716493536229033644545323634682331310089634959640849763700056333551094140399378180339350115451465946472385440865384803030202687314433545398075532608950679090350836518743707101075453952880222212931116078925033291607589920030337287605261917587944400775675062135177043403669141199603307882430080815675570179324436593519674493248007413551093759765282274924018245198381496230703928537596885889250428697330529915140391858303196821681997085489283277992103509363608957182254235144709394366393340874715892441592810447223495188471200220525007510779969690486727754384614711609240597711996026287078524559318100201531237519273676959598770137829562305930279531543377936652011249421361039085868058646947871818876808972799749053776644916921385626058602062761059729757199774054125172206308527555260733274249464213280455129109364534863803752332592057576027738399421705739361094230556005403066411819672792101894439989757513207331107710656093074110197582558166802073411207404450720136080266071530503749880532864602671954600954599776844187491603542799222117284254480378476468536182901435191144357042516416776692743228317747331920040713309454313210287952185877798904869313099565482852087819194603059938901033847684764006316601321989493385667714524307996152984791427564458958962130753219579314528329205286833041630940574144822636959917239367213578083918067423075252905995304755033485093882985951089451528846541862702865818149317287662767919708479575869762057953814284287917618299656993375452139362130485057982384689026303746949386450051586497708080331122781353371923446501896685979782065437622737377853708159900975096202784840822873380569999739301507693872136657611250540030192492559161712088662298731635994202409330840462030196612115640336168734880810605098177275679448357936858176072171820830228305263549591627406524066013231506425803220576857322136849486861775514353768836014521216347567325898569652127600786817452249039303894927766765999845754794837092690153052739517849893275550660133167549529438985652607545100313384869915544133356216610108132910691940836441775081143743378845755692828819480155619942491169147647278886437269203709698251689048857621794326517462961965809527192812063234881270837965098504595467652055045912138171344673619516552997208530640493827478647874789351358201796185135713142472504406376625570714653813845604550874925266347155834809404431193309667042490986270801814770439837804634566209377390289416269790708847151138220099566599538008968931103052354965505980286839887436252642301948035636261683516622365587581127861058534130220120364104667297389251360211517697287406767747107344071316591563405829544018775422325543997548296516128466708227445822327592799909424990957868930615375309491036162879218528195374293676957780917515530775266479496188565303387635667075268102865862386705936289001658021465581555841778246089347489758428186618994369803121635314007298471623329923545760290063237998415310182433122755313124516772681109734005036248359388484581870138159172280745758697562327687386108578414798001357272961499869177714314287799035580789715859453253574642509826836764554041264931265088604565971814974033817124937440231121244568156503722211033783393034543813789573326233790957518017773636159484869551864465481705961578709212970035364147650504125078248403041612418261330340153330293742506337505273835251424724425989360983566480211930081387542201339049654628793740600762051129003320147333370435345649142320659825252435615743209387919958797283493272828031932363173899152336359595762829739214385637634831120506076314897578379379935135850481982976169273292342309490685336582388086060971996768582178703086285857129830711325881830036383856559419534676634232410049600962154862334868802973825304405173747683439366866361222067944363952594345176030336861952744356518426606583462720696287247841837958100586496131374126120082141110314791109315499203170874814449107855556785425047456947693060120272265994456323673575549683888690547047307974955309718624534231643935437625363424426649428007707310469194718271021970491714983527466730916346893711091125196405045162166436526583529625095465304203685117414850105507924465482314620284098788338549344177705982376026689392622819694292922248490082490843691662876246530184570433176646199055936753408357218651007749895024717224553353705859078421083510179972989372226325943121831260086671244508959918426908993215713146096943563349963863880489579384782488617675657476203296892002235675021854762105265188842545202200098529184670107160673223629275548272801252006259006249014367736517487167252242770392831578132704668720078968626347719089717659924344320665394330503102995138289353027343415789398888489996468262443887366157601314216014364426834015413246343010041575486558695145330843238266246907517871869900961787811619574161434357329095279349799269979903690925825738102101755286830074583644864251123679455156420988897660851924550401895891066459351396878497348114080616875502837736585477078011680785192067373266970923426086637984329969512743843879963192978400725175042326832449384710437710685725956099353346079419627379565744053932553762962096847821035489506861609411997816646587590706858056357510367955348792723720831632439488754193279963782220023228734888516259861162933277507040217800316879070186666736202904233396535740798378206145635323160320963354473616458191703078225216424540385361450206067515353331911705500978212309590478217338674516970112634039833320339911943871181834155616236320682665728807970583725007791591783631682448099764145088064014458114973712626537093679110819119681456968553310507302856962425385096500789113503599353947577003901159150983731889885088331889004802560146661322918370603829193483540802404925180832833035256599228684981834730136343562764301030314585482224961185444251170930735714355354425738066860710230612180631173318680985033680784241179133243296991549458546299447648280531311638323954725396462284931519422484475669323584660060243899666522031852940548932345699039269708955456499461077033094094966629106141811736349265361306229998837746582560440213641653963224875387085320457799475814150271928069695331787833495550809865854517141588981584140656972285932433731997717453706969499286330043324784615846182803136707653172156137792539343087309484490227635354299476604105626315620368798276165455335578954282735729247940373140669024748710477098761664872078348861558815203135124910270238219040961381211187343401310988423673561403032945812422818150493470087860531527768011635766280758164823429203900362490897361077679751379112535227309265858676071816034878287704015659420306481309098375840037581013920706399502943890247665466962242360944234389394015641570424475663586154619882200076213613146856228784986793607232224217251296834433915053650743217749163921902324888047568119537334988705653301334216336388622459621449135891368716357649160940793279400953152501429343041147596296841360715634413487455025674930209237918279502780849522716029999832198087081404058751733709773227462269103868263836213061371242038629976093295560397163579557431609471547722847587363955590514526014104527727059009844578933118207411635509561997175194263413160380878125396830101035341739078704122312688686876153959787963809111558550568865470765343527316745500786191555855110029805210386494957600777428319744787492575704748308626909407145685051488378510962120757910640109787233187006829485809787923981843461434555267464635120738989336271058300997035600835838019518371848409974281985100025564921548810702117830136212998642003434415289487641450876797717283091988395243561992432722098593277523440616995899180433807396433129812590661026630913098804767548473533904564322935059901312915534751744790231672136939244014779504662656347995085802778761773864400536319200629786020931284601878572418887274476533141334538043608598791192416478775340311007553570254289478983714642817609750928377586201280648260432946615945184781599177897044501442115946098701863056116205036880477691933568010728207373023757704684345688868356216659438781761359957131574601272098343945011598139144264671954620362099402455507541677250344259875417682918883992665129005721630700744941784801299906542452722434985439243646429489038185700139551803662258469810461498564138974373855278001673051060678473418663704484037027422597386798649485676599912456902482612823106696339728940264681587331642855426733687991436429273947167499641213532604096881392319445388557237686696471400024152030734522354560787512953802859534356783587056011363688388230179965903743220749901377241402511831173216224362917420724685497370942318971628081249864447579593089201677524036485467392517455039201056853239963033008729190978940633828456567938243895065712990751505863876917241930577146863699724954926907965967085112000312175432479380585879713432535965872016354971556193140357583904955219812767352304114351482142796260320365700465850625340214699217857753220547517666122749853282009209095774047121126932388692927090936700724516624655990044261102908520250325567539748644557395297679162836879459262282112859817746115384091471806605941427319344879847125130558370236253255611574894147855113482394954249843099187465816453196148320286180732767130757082599884069738932115722732199004979842184950663735531165641942592196062734301013015537627604229456207908830538303566871227687014970278342464117126667858328138661366507746493802182210459151220503218530990002809393257288659422874438227876146188928342344712654062407095063953839395682358185199763753014108912471803801995060976958450219490914669513304364037452386107354734407075328632603548876675084788964019996795865569258108000059851972014192357870798839008272793614445017292199631831004866512177228732628026458347958634798353333128800249051862158124594403230542446595728513852520520254888974473238666438171407066743087321431369083304741643436093010819708690959295555169717523979147190597096133038691148587302629432530427329457902661095879176118402319213351686339039302905617817951031609349084486079006123052029787680187844124737666839878848818167094167665069774522239749877291297134486400553594021783451231278586215234659433703360977693389764206955718580544645491827044084498178353208362319496858303239069691375420519879622584054948144143480323294678386706119678887249739803218637898906160201747388985090733973133589021815164324733760738013014006909788552024665023965162844651785576389684280491937123213097535338151068983879605021979325677907579467562509556953997676600920321988259838790533152587034689959403444603277870416999062899063528353307988444693782778615408842617325926636767971689289418799919732107056155532551473627892493425731307912048363951252478875604131604606551497087126305536299551216220554022745854859032624088957446912661925080135344078314955540182955908736240861501966782878155517063691767573559672725044391606296536768246909834496961235705043601047643222930922428386959305996392597505729593296861725243082239128425394567424753716060555839008331360400574183596798474584550831775328253163010587985835100559549765776164975544941830027067039796751107198541311558350404727599043573405301278345493372788257780674936533409132683939265988977421394229874000120488162445031052526704913089495661355119231937814313376984398850423570589270913355692445081187812225682505472677655452362790195417462280566416471692047712034316879845700610453338809125813050711198399340513347081041425972106836256754088289968401466400631154897892062761585277255875734228096803667332540221151464084812145518693428326089757057992067071292286517990584084236047643979859372868166093104842679044753828259407469508100423833382368839126168589571551464798287919134331111432810285613000621277904798255583969925189377514060847157203458256580017732069084097892768282182366271135817399544560190641382027273085508342024634198309007793544043291601781597235472891481699057093677349334422013270572216500316197737709053003890322860810958744721292013749957191688295131193252412721473681328754916378133951542435300528729346073568403369423945164450783232327302681348959444512555479677421078750500655987275358973100151863765216276436131367981044995090765131332942320967030754775299351342065550382109967901708615006345366260707260578888235403126742155180274241033528354473695444172355755141204693252588384039355048180236738251927099029497097993981211523464028310452980553368488214837903093296430149687171767113974300630814292195042687152411409271437412742493401931456382863942003419393358207278111375998424919031679835289406197281342024076548780889134673546664954922279429571767099113195655700539058228348409666726346197270238060880329793051573183478846401128727655415974792355278777373857691360814345776140836399906084451073765558918643911403766351082649772500726618439688563692036633548072902413001663494805752856939357359505252212849171321776800090814374879380814171367933009667124435677415999881013571164478503423060297241721557202073767118756089947560460431929419616526602583677750996655411875043149098373775393474973291348947892239757432222622876797332190635818072590183199138817657926957135781951914992862571201986926785918790064086040966039675971257000976691607271504236514504285803031003188944757581900545116357201200937895361883233458531771688075072186719616638234507162319809758434548325559800178202612337090348528575248794654617145862941809883557127306760092881504950128549100564864610455288906683825129495434347291979964254777185570121297126687896234662324477132968606008537193244331883577178468210213868256642094388489860275887272213483711964572130490804400097437657520188203875001803096573299808304484088750764238635015542044833454967206892292169664036240331946253329431106550475134104804722984701038018961535008411219551416824372110597730228722960173263306563663972971334532063897301714498589843752314562476255430563364894796845992402323417202660402985379572220833834754192185006647064409443651478454502465802434002992281207398173322954380368056189190798150921852145063756350685155283365762793012160379787588526831546466429087032065435549497452824847216407430299256456540125181181685486699318890609276668334532702907848039200702504932047901487617067093425448427103643882947175913588086170841027253968481086021976777575572492525607913078486630554249713044677378443128344438197934202741397534007510598354316276749387587552350571882604910341987484052666805488111367093883128428467572140790198174643310154806650569521834410075117530724901866990787975074076643489916200364954551720481974789194376625412804078801948293188446646959691737052252229447335584980107177264804149487206354188789849868510769875456309936405919026690911101567461446296422231534135115113803759531149273745162804192850778481569747401079827526643917690068705532870236319211489928198310035054539208398541657689694586523289545774130487684300053691177637813078277034379991596392210502609831023696982485318627215944853528712824828170051174857373144056630919778119993719226906023861031005562373867772499674759416117225890201780974550299525544853467512460542175389981447089362323724960930325791283906160984223970150746977039694795640078927666687321720885840350157348363916253080984308182388698606816575295481174449133914191141199691795722855040936508909822563071399114202743746058018403207187666936897358683150940440831229692735535536137855250377690572814829241585692530584933009563486359888122615109606714044658842396543255874057886430714857968146356298232273586352590120586400273131449559291003871240722977074783587154122724672000942378589111796118261469406401573094271181546428100318295904337021594941371174560187890167897545674586515715187811426694063694588285566789063885256718537101396365485702083404077613155870857923507257556622028899587535670877553083181281094395337958250591966613040745281633033091868240884373805281584120398125980485159246807889842551975696850004849359885688783077216406054853505955992496695526260054478638761069000681022093295254189827789372111978782205339450671228726405033802963425704054957871450487377010350542024867015736317797583883928026677425479770218530629337082121495709233292444935114587818402101690930449325751191728791517872572228477870325981149349526592248367173777474828674122499773578442842307855200122288921794183488300630060864559827430845041347953530592924094133411198737060494906073240300631543025462062195978727989983918548889813940516963195475103027801987483584313529349269013808714092673689923910565623517035591520542546876201447918051734578172606781577822844303409945614151365969560544911469073751109721802042549209108445953389225825927656367602843184171047619974195297559322499165030380081880445728019887240497387693052895842632777515599286249655179722110173110585988546966750048327278720559782808203401496796054323821412822487743326764656856832393084169303856945661853489961599717855183690374045862623567681495337368213414016847150251073916770045156898037644047049620732208464157558115053745866302979851804113309097647369588587896017548769383206007904515941832329249223142336124199460158357557633463186711736374233629200124433309762340738014991980954605049251289304202403267641541284975174114681340584925953453273493710715396339963180977334684824389410019210370582155218064541144591139796699308656146828721832404125134623004601487645440863199718503661879571277210957083888803994805205939784632632393570400895436994326061212139560864590688394778997358933961865727586942357848258165784163724682336269673907319730693732061457146018380333042255258716989606419773257690484521113308171090314517620852693282432544560200295311735995854982976801413479714308446108788407976998277895646463126100577805067003843098570656946742467622558546397733071006756048560662124893348826920599163954314703266980330556666012988738751801910198069635510759594841382950407279161411727968835018839088495890279974535647357749043020692703625265084248933151576766704717053739999195254653218176515664439667475562709096235735763411107997541029646234313481886735337282701528607486743117045725038159558714596798050061733880481091496291306900141064910347390508387807366833417647062718946276016095302898348618257303044963329412820925317229845910257974877175952550451159598505008347447340381154893283736446673106239161396160784843141693763329877544286574007389623424724034820344045516817308370723498265150862903159734798495597519127867809974732346040128379995781338812126133727793602915175627250683927342763442243616788179329358437862790358618022066996237037301932692372465847429359625349753539270480303951935219382659002807199086143387395058532563573569461155524397924437260564794195688054690690958458511222461485742454190052190463713807079788338941322699778001081713065607015504008451258201051580379871852653933246996792587298201414980324198313438050252709855098653219288323655233726634775097234128639365914954916791594505501251818533840621850685360493122683442231189113685805581858008372560767026198322636142210410893232866386269713940174059866478268794066245224742064599582809201435684443465717050345961855930193147727364171874537315130877708688138380978360140823779714253533422018577133265432106130306525165710638521062375697644697185741179111681606433920885346272361267425823201502424914434642439970398415344195168823038857881508468236857969406461024719112709851675139383217438832995732342462555824926787591042688320979740123926946989820869036980704602701625539156922319264476964153598920887519341462340989706981067215718958614766734860000909965967868073826184210744636537196947865033696526143179658543847983118060709640260965726568358402739017601697278153354251903903068841718353762494583419051853880261593288631282708930816881535952323655800389443988462233386750832566606036971520728580095018898698768774025842920336062364448531857197093248251860305142643972864486259218351145813551905463374633522924101543599749948168121851049031806408678481737875912132682250345606625562752576286423402082702901932633314254434414878464882527989055987692634186711419839058294580752605138413710760352283349449132510158090298510752353026113571090911964258639594096240825036491737212803244453222519683522818750054398843941485644060193770254062071235207766625625126426822960994061877225009715234386900145288533015833150190904243899405370003933469545573388611664539376142031250905936128355561163715098545321656217635682969674136405626249698339239660182015352856302714692497376394306286313940686364411106528623028116282498402129495848260859041215215042379061134196601864484991462589656224720868885433018696315916180422597919492790775720096373326777149375192118885444349901309571135376974027612208006030824860114214195008142278983097058744303510983718121921607240391457935813130244440999594437162838608771292494089450400525076732420048873863581631148668822808245399502604872263852099643492582738546889261664018758905504190119358705556514744753557107104014983169731319313734787681973668863948166302106266235526626496086629571950837061337512086460041548816684029302872649983103211777608499637501801975186823165004675726465204249009636978014135459511493473936408690494522119808221111637428319771784343502610005618487647674697466031750478677666055388100426414044168910587840884152007529310522171332220233987811779156361430678497115465336483733816519807865747482187348523292122533018610241062629126431336912998436298865536728561687438277595793801088979385308961567317048723356255064493755195124459602168038174602431420974510958288926760273561667704278263593316807854290447078371393182970261942566421488632924187821002389518607740966983587020328969671190046717666329438813841697789498551766500664319275783346080540892285854699875700213343524590049350942199638614680199312224438594935364639691139087603175296506709402639072527472967129365427904715258693331670313254165260014251135403503109756620106152555066186087036334927128246403197339344353684695715863987326525107815171987458457574948657583667287113692446019081866911972875790533465139523063807305118709888738220373895986264959936170419111646715443991866305837813286150710743420018674285637685883890203451955608007807337549145680287152133979604167484862897325540391933085006608852978424253681129805056692065204634767507831172033625634046005152971352334707381564738629063628716578465656707963937306546467849910672200669479655415813301067416670323168311216969188285196716686674056246437635334469670891372049825839401527532262780465031824080770066532758361135904492846406162427554481956670199095864772003080045994124554856684222000962777914357614803879548415205514792379138683796031688603338999913460093926998808127883712277904845262886475945323294279924464138812086349324944402816044199580519982197703620534110316134690065015075375007963995050864602002843369811392759630101601011057382465290359738607292720670356418073293974441806231934517978031362055293064985038785538245054145805212019562038470563429397565493615644561650000291843197767048722402720185981621638453979285962368582145012490749968768320538262084165028802934142140414657482658096374114840595263579550750085079630922966713605275142389397314786575739685817319701685314512247077638346751293128473459874160782626233765695466635334071828780264643644691678308385772929243135025592364253496726396816328933871889523628618600963934139760374861352928743949589330870536933912168239536567108944004924170335246539164702629917993517947938250686928442306607203931415765019485889370393069237192767546284835758859250465949253889839565086046708857840981952952637700729364241205643388349754956130168325709492205226972511248851561909700988175842863203467736168105059081381580190025430394511078087416009513606412523205959246741236362815882335701616565819039956081167869724870660902691809160900690168506185610212295839901215355871063255545061183394142343666549775877808724455532763384911637961866883051933608674804784673152265749191188441064305383132989660217793318365592185589891399004406620140101115954835692600082678263462859189906080468735306094962020904028963589754322432668125280576632764136314325647880227070330212803539846318847366031189744353578089007208542054087988886827964703051347510193945856138701739306080217751499121778030927135461392304592013060483334302515546800530244567175205357044653243483402241108269249846034250951743417060593722849723377978210788179954911763503600246874027648294747918090260824970276711281656121288994487924633197852873611099019424320845201813297447829662163916945090079374022080544706026164637639562187969460487064829349147909499180763875171564708599467756922287793421700571498375874379133554069650851579825812418068195969993570942646037679585912484747336356475491081324662256797104589240398519350707035800695202465603779279058046671067051857440341002124518294464857015567559798406097668242576672714677571683980477033000631127586478768536648018070023893365398828627131033523434786079205665119289203401084911011429002603001480559241555201408311175124971836543833008164077848188542305019820091439597026323563337934609429003566793256713564907388748199680182241017849950239697462346214910537676836532952426495476139852183271303986550891134267489940326748992419469486352614971505342197057250093578412718690379284807323553853409645620286487898489499105555314605090599258525459008821976775138436984566135818825793146548130668701646054058536381519358154471050643521273918759317679605404330761187548794481795972361118788101622980292464818632371039446591910184929485413678706786324017125624389358814342480751716192465091620924548565835627186814585787562197223772825656420917990604145412665121047141105718238962253620730538186325731013174505002737708058180768309200517025873054786121984116313485935407276153834989934423626091055734885701782547727013585624707989712637411356825723495966760107000373386137405222814733226518809826808621989606531518382244398576088715243361935756855804750841491197787586040139121630217934609275427562987040154403132590052402309162143807968043117719764258391285085163131815872711460834018709048083662186450105746335696576671141876351571733656931641483476473331910251479990732231662427990971446331059428156280840162968821350981696270038640768235271692956288452782111330325380768346961019756701925388034208980116052549232146811105070431075975009319695827815110928207978449877027272944164489086730976082632062210450437303334187699574255224946734820317396583247495704669279445460746081671251833093091598022744619496276665102430686275599549906201927185135977904915227078924951403438268910060045670414281141511158005936749849252549210252077998471457020571764921891493560330164895473068666770196106537279794802276724699376064149258890565297917627591142457610830700925366385400125566077059408418977160142795644387366024086367233086057356838965808077690330060037654495895950064712397658811724599155084630659487140778600357680778659677325152479055882419630789153478253699330842928630682882458986750235338721977453496195971161743483661807940504677095080928040128700222857886104574613082901276687631280020673236984023899504320922745299156680604262608269535579110060040848857412290688031573677701288410154294090782573201880979936492912114308174303296052428793151160567389926411591133974473012218904370140568196921047166754747347684847119239876028274930674214437618151562835392185880831255628682854925591602682830986327110258422986735287584982095593324516017088124181215378588995891141920568885945982494727336092203663288326495564911573837951894706456317174970834594606901122704466835328170050670815258575273170883718366257063955851600760579770361311043363900022916570536753532031672680299529014840085250764629747996025387342661301312377172286656963645755664280671036331587218683515627790710357603024814874323472960190651393310734144945615115843801927892631052129865338688347948682501869589414590704670680649130766936370144422643315510891797536973206712592897439957577519129395335947959059998269077037009208901985213250432663957986813482016929942217167523679301333470070144230705193427802563575420079618828675898436223463196435754686091776331995804158037344485598096436938319237589968664805332002673491209754467191558960763772493726577677480378716023078469539857124994114454346430650558721657397407508740616693598309931527436039296474828417540122029014177340635075004843321151728020903693225285692290075203390181518510739852305829343715936978072086353688326298089894792098997209482905514793193671160014926088714058815516086884716010447399595372085489530327400654825395383655067819443781987257815747393587223742398834427039549202520097041656266285554649500041453784840648177526681554487825842440196807799861090572819455000501177896210037066802899011639992163621805700963263646764497491537172094079116788421576270515093191882362604635102457579007414648887332178278308373220517628611660497848441235363040110715386710104707830472222710285751965661658802123956391898762287847167966454870310041742490259176464183379226095738479998085634162283989871708592585105215305517527997628786260642349862495414640642127432544730911281017001415515696394863085286562958308861621463652566411520681913264761999911065010872970273428484426983183610807558017446588508560601153486090082936830746583332414320795623174256366163352522353767961599641866618058341666951329507467767383338664840789343014531217023311531375399420927935543078443088537545761679035923205912281040186468873093367982032014700353059412744455159207265067512749485696960856181031712956820854777302349191991306971329919386809804020846344396800410968167521585276431910339104871254550381003735487827137011671323814074664919406741984747776467299663743905025374719950674214973705062175198693107744534637258292698607756601357101085080427118438994433505564162444201857207678300870506139728276625952185224885061048641971847398559117288852857641411479226367430621949658866749055157535497788300056932840285753916497823204423066659926760168464176940121596528520158962426679422890365181766857647211762287009894720656992286344501533360980537646406122360484256663913305103048572156672302197904372922223139187508691132540350117002519371847030967633410544938339406925194269574765420909206423850311603021160454819421397469598123504063271271182199246485269388667312921770717702650607285949818804885804272795797258263831475258197445991700961177673845904540782292803859645635141773927861119212470346978748350241720235494614927998343195129033769450258911428408827511772324924469500646665969538124612204902232012979929633913067700669501583959025052064406215491491263574351687962610857927080226475993765844711769426635895082842612447587214043459500084449737983515571084819190812953631923916437720906040439213827582820030625723922455100552594439551017013577607400293927512767543477376245268118501186155511356209448703600601694696204376739042502554167966663645564738315907239131384460837636728373659702028878732882376669935563956471152901805189065008837183545334209416243616197370891867466998573337721602701350840758174333915062180725047224731778131695831115422821352399154092407017450332875743435567741026774979520549001286597101739372704025412465471936406416621462625869709943265689650543698793587027349530874199167774996356001220103843266995147041254344452965026863794475406725353135392299366283892012467257899047792277666990123087892052399063717467969410773325405910243168562379067746058303698280933232493149794165835671800573290562163650920727253122339937896111939502560818056565642997156494918776991703172756690900600258128474441303832971134815531673354537192183166933446500151382674310190184603143725180703774045275144079580232850464497371723466888311331212262958456791572314319783708833235281704360368710168191442435036633229870443267992572975217745902688877408112247802531677964228814771947284134261597152847362202044162398557236644993928909731315802787422391209373232339542656542951244307692133614439792827027205907650126136849479334267102185452724556022996757350221062463688661563319180895712243093994211970306567545679726580805133464871509488750722392181695555906876432732130843496508954172193496099498198509983452566401153816934973109947506902459203603507314605621439054674903155049468096673677812338102699941687348777410650293791160179269786284986215623030967262301091279241403563406480708660319590895705489773297375588411752113112427164460219944103270866716623716340837055025918563461240696317992653442003454951805391196682007542488152426205404383250940006674595746345731509842669347304483300311326586654695599223443614165266232803961429737886322842830299415409689184548491408484924938765304695015447765991553088391222924907581969510276512568689536683396521390051528708643535844960736331625715286534676071390192373648150815856813795721050744354993505538928401771895014754717550173923548323749240233003089420251766758225965841458404001338653000167052241298225632714968448776662043255816046898011458706925578155196640294786034312488707313669598417931304344447930613658477537068861521290946868944664105010416429976892948692242895322475956404790450057092296220172313658785009616154911816117174900787533261388554823450075334640079443241723825079389113624282622305594493393818715798502553964451476397032193903970520544326941451293661707435025502768903598726663333367112965481807196109114002849082817165871745059963919791490255619600720405803952394495778786943402666081771188514335837820159933366353743584547103081694164584825190951710465047412040884319975610028024707204067480868335576070364042963378894321352581020845829852873986397207449387320172810283371698538677413367348564996780475339146854883325788910041943283144203617864356304468722580303553823595975770272553308269767039769314699360521500764029419974522135439063369688414945696184491708248716110174107223240868997520561325587093219264798988237597451279712690629032578916231319736983976030872073761935674643328585266768672547896925730674127221581777019748924055729596686074582025553581747186582859399862852185837215530393285224572142715956810916418314806485980183019527869739566621404616465631216000843971592326108635923818442748582484920282635017745923626384155684463023832060500238496223996644842874632693416203326814452221366542128163992686175355629781612615796496341383116929123754204398460455603543956561560015376151032468151546266145275912465907878973458621712066126373069716654787553066178318022301221412576153048618210989213286377112061984577891709467748515504539268662462078894595622721816378491335623778915773609581741251885954239362833315833742614323026301527190032338323506470354907130263813451873192151215082876422346716767929851071415385015601967894018948245098103060536335905287316318574696730478798448109182321780842417720055276352094822765561928451276425098268698812761862496582887075632708704608858001237016411676574613770225198676177728855154406168580450400693049936259119402010822400515606574136507200365479927697309708923425268700578795400661939979199440416463520830091581636029090964207598028275464088041899519314701433337636419249817432449784853971438846078319446417255177730516132003513940658104847145788253437729945864246207688983058666813248826870894091800793530844561776803873417231303038005579763774253062571723813764690821517067674274937621875657872615037774981115834249951083062380307885608886599014748463630988477511311403524106939966088314319488887710955732735345567980465918943263912893014974643462936956203640616493300687875427047671863732127280099333143874974755880241165107791049560216862656059028436996821032146610327090300210205724707285551545424397807320460686749496566568613970819811914744587415263922347016275047212252882977980773778061982152269001617101776801344067116786659784036616379257873255186279411152276011691961029269271009641129708826497649396695550863826842461973236467838425762931916252093191816055796284325410942100373835724088725210613226847270578371271116360613377887338790376883989847139445142868609776914960856120838423428952613254777211007231097051912842608258507211959683754198335246665299671758833473344845221738669935811042867982199156936560199997833502226130851405106190815916569296476012872530181182838542431822029283835885253567818240330513151856939611230828623184071277966590389330496487322191619925835372581192397060335646005125376928388719483842363111915989343817487204044285561270576082025173269969286396030881825543365858040827542701524525543763517579182088365158873804345000781662772606183428703741929282482328968500346946496518256213490690194903498272888380364275702287288560590352504855172817874045991613159386467924310171721206622257488206464667579865786804475474200624472024154665513692683681977383587107580836237816656634166044557131491514335943215523183448172321582923148121582695690124156708958047207952278317680716463939458568244658431599920434354064509962190390131383579558987683900356342141424745059750036364112204025598370555008769304544417810387814703053386257818420556746847334918431103885011088875798651860010756244318072152101260213492506072439458078471917050044066400829649565011125744430967395522588319973216244700464791284397336932004499679666102644711162007808901758791209787696899324787799390596783760418253739448419706203630389972024659908904956842972758444886770749490350435059038333754324736980590604500089009672217724934073823787924228227085309915205860500266463478425022606905968187541839315051729654792878047819523918907638578948885594071062848113376674118268411481007124593571479807969818176396043658740490419183944897253362006155922900418455753629031709491735933995771059664034812290129709779500244536131015497622846717310345214756514456717736837351035247942189209229216370153841659447320801773105115353105249419963218733439727006111338300888198500733183260021007570106579582117832989375417214531816810939958622519884212895202328742023344876045471351502536835184926368038276275257962056811593431612891523081766911974621917351261774302889648131534304246921374232994287850928142393745003427066802098108867516398878421530331987394708961028130955250625370665410870423483930395521244913652236450404829100991541189998901406760759611680597308599756979996010449613028737412869980056402753470213860940207454600090563346120176245811085048821931024132147063002883162649971342545782382396407964061005901329186352746452672382069555416984170901951778799114347075656238996590066921952141039074039904663914977620167589963797013832930015494201879631595066073798846477472358635045157508999534085527197243125203174092671099585350447316470098666870695702947450394003932375405585970738203795140845335149057886830311457289202369905683017906366031534631934049235686332117493197385984098952410961533952812894220665132973533406033000295146773775247958533571579733352699086354583905896008114721068799111781134744455121815448924024233557070970299779157270217045665207888452318416511338182147721533084079764921082761754521681410002145020763655209262363683575884805281479238537884161195777097143374051587623509188478923988071879521201262566641670612560703956374606299989803176633097814075422012002801857790076806908668880875193675098487492488006062927173256318397497050147238146649271504927975748275482165302498799257299082934438595207300682647911072440092049358202040980433093342654867395991621454730737332233474151825655611365557140791745127886448769873341101825302081424923869793629217349712413966987826595506319714899944607151545734959235157958765286036326926491975348269656014714884357674186281302592703002452993780983731451749896121079856264575778876876408586286829039661072493791926121983425783269463663661396511789395783804436281597421735982817753077700757833957210323687559553334795508411593123391794064464555303665287504546204554295434318920432446829965292145060074065071829513797652505314179955655877507569334755360539835478032909229191561027368360214457671417788326266572966370661288064220917911799704204620068408700487109835469239840849418297287940002019341642121357643036778175829527752170640282747600572522455056238382799548564168980910352936168061688419436536256531762200812407844869124987489811110940703921892364007238345398258011967110627163891323769705298935826246362762069888006842434900808051216832878614839433552686640585888883664872790187662612865364547927316699205758135918428854492006597386451588436379822641219651670141755378711371243947596087346293396832225464109413841998380950370711860972956217875956572572231191862246917765161715525250204118200842894913609842370177817138541185622049754708497528303102869552667759844231167982648517328488388497250369210391730889184172058056487263913745678499529523636160814685385588315992025745246538878630193867144412266010099502895786085727898447815008733141916065706350651277706911236961888996408108251021969159345321309291312427288641030410762725324058921540298856126422736818922420499887688540160239759503390233306723596116140184095158229421474107797108739752035970845337511868470217989906544631320281396637291494860519813235434961501055592032534810803860163652891993157144587538100437716845778636401504240185833183735108519355086330824148613389786029967815017089647119793172775835136765488196689750840744713658596552636059126225300757577155688320523423856644564491753880512247322453044640919335772717436808824553390415794044733351363313133424129503381404446208420021844886230720271489573269754615651654219505079516329706698169559431554435257167199700760357326334803456722152311019301868233788457149941958385757193781332376880575611822439439281029674014092543957802947214000631404029396539416129481428138852558182591747861830961898019173132863204536188124729918676063362488929428847763332267992116114186053822190222576468995880281665597067560001831028040331411543076001001045181990909211532829110256406373645510346447613161014169091933541220095729203541823621128247913011241211448305254371200958375496288811634295808139676752921228965809001678665246814695441314695674816265522835710180465079168542286162256410902575374101998174629645412367767033828579538587537120185303927743284114324274278316936476728879934451222796277168711383719326247034661809615910360286392405601104760718272928447997928589023216465272643403791218337803994734086918115999429427695924864932485080076158036764169742519844734654639057245757246634633899721927274302817400321642647474263914180664094313435881996544404086412522551777753427172927804295557170278775507290473738917853654280272193879608890312858097334358373250422760636430152236855118375909202181735976424046864030003620931476174080513205797996295979170897430848604377420235298488287591231078949984122927348779306944096294864733018700515758731694502955276705209596960352023651540614904828276194409617315033604340756631558841165594646397065122697631655456184693051976250273910158372304651094054256627430540703937345119693653389535462668038230545473526991585856721096027149779855367897115410000243453237870227685432228847010665658633545333152276986383121665763474728110364670540829156098052015047362622205752527485557292289373279831329700876459318164749871483226152356064504526062071207071375399191965774546924741918846980866104592447064926964060084533574976987359130591686691686345869211447606143512354992034522274352553491029235943080396747691935156118026313294661881951994208137142610669100967935629673545598807818008824156409577366293181367311585303929223355437104070494170258619796509777713446474457969160395859815429192210742324177661011463566720065344540642057023703578743516419003149366584074569805655781018141998905685734179218110958604610813177228190696185648798803437379418199407274704817422699676317102091311136723745097485858086291404162171717803372907313130981404099796379104159825506560393493924539584617715710839837909582790479297557595817989398969798835244642547781211545804432839660324889552610253523057320279602753766273854479588682346137938112797298335061738985823350719943359616576396507560392513159025859737969096969464601385770302689938058082944257785053709890108068673387751227000030868927190127381108201363570234135195325068147185924301335209776224836229174535322886822597802725265149226964850484089007843576326070847129919194775817836302887096485241013729217548354340655304629894667290858203148735106055275204413080851485549260551643811223038755981103769994047262324668426479844902085325722586058254825457057025723807935936920995429810790243813363019353771681592066539404716908599100937811548297074877935963575294660174957831432689839708963834556376280478945400018455030085839857177098109691012243377399588021039823913821160413640769785920200572494413150352284247699272412944703785960553958529672295431948812856284870620260440807925456613804357766251981070964873214745859542593865898621723186210429773065376007571503060480145649112032689991277470554915605372962233732080740274035285539223260427158095405341566553018300110315824671874949445408252000429647181653074018852965204899780402429766016153086744427737039053187443494379909635956880358716074004488031142445064037048837393223224609884018298577605400565369241510907532200044039366520121254808172750502966926956573206509971727183159506234637924743791151152527458344006168567607111608010080194978167647915405760747231607409238731574635116390908965139617397375398656662040336170320023767749995219652364218048725708152913471310185493922123077533489532497933127448822995098841156142036082432685273941922662312134401026896518203238628519917519345889251233423599326647739470135427029427576849968618549574860190121861753111946982351387082737985903415343305333946152175272748332983308732400903780525266841655077265805727906554805273745265943341697043992597683179445237859985813986339236763566117293620878204191623257256364331485352463443490192103929548052718909666991792118407048331094411369548275892367822933790905017059293667318982946194022895924825970698025712321413271120328240094362831013864741538263670306668959437643393860159235597117149038689480474147678061311784036198653125405478159809368135390512265510909591349991761789672863756572865307279537071849663021025325128678474388437809092723603584512944812167900745514529957168024435497324059745912960488799315932467312955517515392921067080930294191191185212936378636993065533222255964689654675616046539991079924491337597034179829689402669962579552492398809029110360837796938606413509560694265523723220914319101366575140323514904060997321269482163939684959278465544144909379981497625780471055904048450487741588122511344033785975903887165918441194602358514004839543037923687380572598896404973390505156411243362855379944391469987935308955831339530804952862762347820246196695468851874601685605608775200450375488204560776688534402781062774186577820425954345868571499750031276783480151529327883987319774568218577453251493087866881050213559846759710688588620997647610029891964399260176875706433968432422324005852824213664440472482222616393606617826717865523790877424715161020304172864742785039740598362408789758982689041964519290111292552465846374019040409980611439094258334711186609850414376149040853855634284751090597797283007219864894274884469529812345423835919606039662211781441645357418235394898900875524528600615820132326007964992177298561753030125193525421841656921066762043201569001261227408951993953523508223918034990941434494223121224515328741241745655793081958718851342710562928656151337157772724593394086332893335164559480406150002317105641664064314825969917688889938223528657448347600556043599134641903953066629365825525453453649097010635562573416992856146222198696741705554026610461765231382783155392800301418376495991777637808636890567392999605868695336450148557222191725596164236701053803371603316773568807287003288753790691365430300986920685564619569431488499082874308453496170285063336658105305816177512683380269839649228628023156523803020449130927449171004295439125143170574440011554303625335869957748860777643459833056225000612086811900723970595931522837859687586383404913422065294301014666152704120822294823349199899098850023043960483754423800895988742852855759208812972716377319913444189163851655959025156897658968527887328715706224094723120721099458656947443245837270429083351748994717755420363986920970995544964815504575245912463797554345278108568425897087932539620714578278215360709315738397669394810056685175141061153419829657663997497327175309069801051993740952809263361035959356414644487214836278447580081060596662879293235695927279156800224775415024035508922529399640043796488285503934327681663621474805143516172257109501668753358875006828191737404315717935477795721425824965391073148014701113642909387368967528248741454331206228218800723352084490733524129372322133110517059904346981864452499775055834505227708805837072172371981789555168873765213385883125412357314517566398861465103266151888797551320904757815288432667551287417330520124627435918115648711348047123922184256753227479358538186383733925573868089309534788428642879440914952735974715291316637548945197872883470037044395966259679621365893155195902692682606610872536420309337699953478926635663989693257987998959554763108505780208834080975232259333843966899790584082171353157265784298957227581521217445471220681947382305088091044732696513453840636027073624416625432078929532413864050363321278664816710449788632982981887458527058482913366689716369034523214618301206428792806482396127498578067347306973432101512194310523600553493494848230194474130521061115065619210381852691993174882998430991684943209069189276967990425191166251445165692397972213624313329027620572241585955863306115918920478175766699602959386733040799869319889088630678679028870734905177836653603040888113739928409776503016187449102300099067033350156004232283484749628005053484133787230259298173675591396302757033193975809365575832884068159687539801864781208293976892346564816269720053749439235673828044085152113582440260527920321152577849697538350648595165639632550174206126746200281660706568457749545436946047304793388962594204472534625170611494189956068820729499601769750670729234211251004875323997670398205996833418567663424990531353745792116337369439013870410919643476678036528004275273190021926031424427255683841214115865780024199443264152436229874565345120986031560617166796185806111736356266162602131617244622862421143956900887401133423557801105412831931418358808251644649612170654096605623929489066083161336200901131202640771046783015287532325444106947507870681531045335981534678266206979426524274153219935419649168781945401448811718493604711447972310692914318623848147205575113693120600741610904922616255866362360436090367228779362058654276625340047559292929809502731940880429083279622549095164556491288308347978355463611977566285500438552591456554595401851255116330316785183580459268892947985803453269019130220500924598558448056074634874987681504566761825301488822952870620712974301186543397930199120666497175354211850220727159420587670581180993901207638393245448720202830885074168692786507839365876404782507840355499735404732576119485198634308479661395437337901536253915534292797550551449815478031808830281938850284265800067510390131548178670868902964290411255320141944728454248341183432897104294775966434290448323139250619958365026577504645005978858367637219439400515332378072020687833501758965963164459391087050437092853828991701000580193314550774648942262013908920582510576766186821904769278727938598216382305048597801480355673512455115163809539451829678819309326946849657837945111524202598847630733818540614471497339476930881363308058763580770714995058480666034844517773618466009018780270889600125768668850131429924056147607825612846958335832753272647911736259226945133122403231302557611645957128416141327437281799239827199502393333166593510390184070780418621460544404936178250744351447209241895329152842616061282121025871527424134120035739557820144338530061092655104163282889956619784430904247882616014667705166696584848012922994837076032141486323769814811720473951777608359402998541645995944116894748254480135627613287235735627542666076498658712868886323439651370649415465181996866433524597563255548348336254799024982619839009447766223735615519608253402076767453589288295759737649583431057917529373552149045927624908901286340563796159849760149580178305879656855286845331002472869379871774723245114142027792126471707550132094228713971593144908713846903700535791596475127404794455459675950226648522553832083258890282560822056326861867955162734339016959441361187702316206760277575370693461294428573258387533073235348504938743591397816695293372004892634261898250576584708668823376723669442024568684847758079973403121549723997274728489854714079398399662525752508911153711878609894685269123119921215856997830018138711387052576876972950430575794748219071476950526770754077347501244419699639008193351449350005947678910961419657468712782295321014350134415414388963665471851030639104838150576632148362345329813332679673712069295123620028253195351528094030338598116450953309843220247237015987392215373740997726519270367594671540236803405464943750930001979687366248256908685925314265288184277104550467851153836369921599850652836188267895518493679938624905657421597770307372311545745138959843820725642387433895850438075163166791840100047831238829562697330594383206389123149150339546897785927614989849358791721003760567402135623707826947290757185929800192265658250340157141408345349073435862303237620846928173359236182631477314796561771455331148173755129568504695293678211120063059405182265086550284834889189254631622251999799838245272585102355533597804028826613607039141568258217857145679999918701632295301969713250866423629237414357193573120848722990354132916960630265491256044688202352680647503000245152578825287306910479227939489586168224766788323261372050788537894953371456585180500120716569874539230864973716813824191923793930552354501805086740163233255368373756739047708264143115804036915374986669887288860915017998709848457022422618594069897887533203178741826235516660933013774191846954334255285618443068635990259877362421881236984247072698975511559737298587594191685584405247708436075725942533837896686822313731208214119237543379125170169680735138166287705177596396391861169806153965499817054879383816298917978942214006441803234857578295706109059611748010297668608310419796428531134385874080545458806466738950368321691643533744461490369034690498157566111740429032537184825860316532601863306337022391769003092079367808343997284150121036557671841489324053159679465008264062684797093839318233417425574212501855037496174953780357751146057419182484826043467869431577027202613683560125360564414795547218566886428903428612857316032592482769244034054422082343966119018957746649187108208044271646924565232904143064517588087997935304635740519361617834304701131571329955712288621813656217886065329704637339943467071289729297577791973110894290558374265461562896488879078698844106812317367008312607426342397787742759208425973773395218739590235328940094427517519111619293042434013921350084649718509313488731946151345404469166587451298981520133046388218705468848744470565576121426573181742944544854719359093539114878237394198733086563201912752834674646620914362743772728815647904664521084181702095974166812423968202091406133747589313607368455064222774930728342733583253119505070335646771720197835254582110396126349136511318413087253146175650219213945350334234375920072020546268601825358525461251772094988406601431704756927744170448376365199598429221873537888671638798520645462929290489592402748227396449883693033787885084535382935582306862889606827769181645592160665228046083768537062259763409421072024731040019873598741151057306285657126328586662278670926879600502934777221059438958388759241082106840932001206010643822122181000714270697940248013511977359008294298127549442232705620601226362180988114029370478467243446770118495120762733717849712517663548217743797312342541734139817407667535123651245764068955241091941199811666704119298875268736142238451546455536831495383679487813341551287678326097703690898361189348538606739071882672987157604334038787681291710374272486914530883034573565781865392688977383444376183604912783875619159810775596974839528389510818138312566293844100563441439711305914000632920083983381652235108401776015994035239377773496488317446509241180734073775270323816960757204561170476684810022822839839761110609640671649742434821911570481628821683942121636199995061863229544453141234009070968750842528435810683676156306048355258196603929860758444337034030482333679081706301203121416998613120777192825425672995114665604557400136604733049893892608750151251322460822803912311958505605679982354502547516868215391456941143192881008559997096762006986240501329149824464478473744691321845405988179338201539565888437677344618492377850711924709193334893936496279826093234802597547225155788906951350713389465432926147165164113482257305244367892821083951950998322852940212524513530639572745590831043112639149690922501864068582282942262293227034228076773069245953264672643817361250447587257141380126257156666568422998889726059408356578880706397388098306149957060451686470371654710475412710707784571774125364667734847583583233974273573052722671113275569804045470324284536708674976003851020689164182048973617141778569598446666348943774278224308551273040524754473174943790090579095475780935508680690675430489430391260554158198751639329392465237418991192503312543273335421818029516232356574055674327898339428080041123856667923766467566968376495797111752736591362419231830734115192454578777102479758215586398404060473888627410005357832198811618754665895367184034790858340174909044735452654681573369260758682314566339015131002957856121464104624329415014910544331040856504260894997108625994889403413997237751313800892015260523945507638957400665728077317137592564049512296994987815594171252257114895806750660640520800276384206121763775117122795218540722618208114146208559970022777040278217351269720425891777838505210172110053072942550309656092407756823605216776240859358703525014148741334635130472489245176937309962404478023509317209628074282172851682854697971473545606399584148148589177542403158473241987662379112165515786203189544761401453113052413058626942613311058606544084444818656139051529143163068555554422573716682752889772891688597090090281274080898833534075877798051028932863430248328237792057045230860084372711139865523151809968415803888443182508510051382774070938597512486847368210641291690096030426516863562734601500596132499520396433374337659754333697418742285343810619432514584124795792592994854724285426523061243821446843792255921669877358108038400893275298269180539950164484467125996719402485521346797390719124276865546211355242630248891158028574442429309435463823952071126870613274014482655963492611674716517536371067619906119834174392950539372804458538585973067967908871665212076235177136993073861067324848809088504834323072714467793570451418615752065942376821944840957434729297583192680931865629172908894841472979606200275210934366499063186438804235027546930965310500636321715766104949440885181798535003135795456982882882626525242166570555440534839211933533390841319016240846614070174608888558812921993884491541420190505773472990519791932392951986141972031594058419242271181461363746151561693407406821114118531527571148107534977181968138158593876651700084542236947846716348450260874601843768118247962404344648251138668333276353048783304935591508687082359308737190651321918867560941364030189538633887681474000478580853639820381364779251981314909694391381748767456482469347023522293787397528936569798744876243531498882786832090051344307342969220991784529410447734206226686744922758921478134247953334988502257416005150705336645883995517415986758584780778568989032234608521981016798682010871629904687915230166977460496160743224391833146633973451750878183121602255920395257472067621230516695961178482439628131901969953095681023341758268800848898961309529926043032424401295303136594283656074054305132412482785376189670756999268407814806720144606269196652868627259969316442867281829293830905812756142785618115064520333349673937960414233485820604353144744149234825844819210272226848516294139363450876463916327338488039648407089680882884834084296313204563083826173142136582173608165879686052201673250364185402130952996396437846652420778210441793564032860327464845937942934480944063925308290014101088062976862891864308125166336788455970141683191175959593630867441337889462379770053183107404555851169905887348664179559386162265918015576082945419621529372598564304070799232384031582887046095461357632283466306104504062197469682166549048497064723186082945660000648482460025014878003346494715868652726957372251795838315449902706151870108631495208037695761434149210649481907470159054353624593878420996739387800082336756312607590912424708742943305010666766342057417264741419571513401503744301561863596184943264747381664690860839081487113707545341241893605064881564202678881712044528401680410008735593719733148778024218643056271992822462419102146281518005241608427306182853683682237492344512121164941360661300612483455471368539035993641527486153426221057430422774066220768614626089712906530715687653063305665308070258272925869201448553596234427272087437055285181795125852865525983645133650272903209256680958134461720381208023848305928622961857275667162174246935959860456551943325996301586250542868027356373009207735837994367754428369382651358982041641067108917884888864153145174088327401106687771771225638103372045586693804060278699583281334364584770311559297258012638551625597023334725870929338592598944302363440782073343137765633450052196392810487835276729200707471375686894490549931258046802321972747457043603823788188957441391878671272530952621789228675858038564671980184809490078203828879684850821010949865064803772682570675574411654109582377127820825112396147441998091801723486710459029857654853653012673432299117439918593593968551215170141785479114891709130723188590463150362491092697628020629171515626670992547891633866451290533890079732347531626299295100359429470393159937389801039418554551509516630916654128633713267595785796021557074899200398753306284047820678404263421525674106691076227022522932743335104882290863772991409634683428798119647441027042337149251181572362862501137617141228593436839136879211873440638169942523004179733721139611931693302064979592464629690709076068111831503766042655977334049846195443183930555520849736805380725638407504120345812790191946583071793774212079274156258073833756469773205524228175562253499656844209201425529677912928541800405637407466949168786355388951606835819422235974207056392561290831760047572031339627000011640932390125366632498497395516428657203344479426074876538059551163558841924753067134755012490669037553395509389075575095680478497549349051413195870995952016570386170457034936597021588766432859392625406166342185442576404787714404375670777598163330817678640656029648770103341180484361002067287977528502381106330200176731774253391775616852939674890876735816775657302931526464801706318370151724938780103259901799851553735542080932161659876561820797627455010651256643715896691410703104765294577948117601622788156678312676244391087777024841742121310519509079704811899956766711688234449821777789431151491106888319004770893224345996731131105427209852543230806653023590674214110272585171431051661127534959816429392534011290663244076431170823565875725724261822873395465962927414426566134166557647036101951528712458139681183545602447835056085118536178698069882506377183332946630821821234822474527937667172217538995227924541925184676687452012753225975704393466279288197430267901735675740924788739691979820928767075587977813085290521829892297972445417043212259072440105563884538439990332259408015587046994823778024672820007169936376556541759617991207233756687328959952761562198001191675916114999953589925153548039073377412561654934944575727766716644126923815339549297815479206176001354058293918242298964828518421572239781335158606090423384287188705795886669843047797453950974646543208021666209677900001385222728275729610912563154913071862717479282637583929888708119068291794186631645036433151548071905074521046239274759244019326674323644139877309594554403247633855040352519264036240618730277875197090718918806344163988628903213560133941400743466169426564616040162044439162122520528511655430096054858343975950900833643369377106671032389188406649203165849518491485862326433788301279144532455079244199562244429442543495875461138787754046770590543951305041584994238266693822981052078574550709703666481791116896868418127945322729599941220300444553766703720022734574900279416123473390810221797839825947137000834922893788313193033248051952740722783022725686283771189647700467942838729995803317349915079275855519749513006103709472794364440774092959521775492782873024328012174331284480964828947884065470642700578513024424142503656460118480919270089716715902434620472277670543861494211773197995366815477188722988269008137509711538791989942987597569690486306059386508672330447112679504031833650068433999423163733162288985078605781070176796600487667311624241543518777935889349886680684286193940466226862013332493634725240492594276187154356044178803952531224855099047053228802500926262709419887544213028633748494296424666424419038901943131321605232378880433764151121765533178917589475210240790442432848795245201420534433788298833876553307540136860632001632580964500298784918432555218226438326781575391297917365764471366273866267528201861837868214094953649101092454563958624310692864952975094090285016174035100463408677833339442439027132466253202664734096220499773717134517044604452982407455809838572164416082508522374406296235253380901528062023993599327390474986470481057024031116428452958509016536283891566383880867702568883895333957427692153436786899500837619475813605684091993949797395538663754192837545056941416505145525025898948384364587557486860457426018927877677179693031652404298470362187986791686717671040775644759939614946669226535000764880527697544387804458488681784924875899714966762065072030807314461095417782632457378638716321126730859801325370643494864807801824382394893458477093607755332057943274147812028748807839367863902613631365699284118767228068627966624001200334257939593444861950239879807913784622485941456980970707992042540835027458737231909437658223750998094675312217229880513674879068504618138475468617226161453276117521197156383821122450360809227006858397587773729610692555295768279245142877777665107069303033689849943126021657941244638349816910679200057815412602652182684450021284268926704148206313355686134606937177880636680371003708116198414889577533566207292985253019986577037188458203425426071739451037136649169227993507557929251028583253602320124304871353829960218823463293858016660674248291867188007436095513741719972082278802217661454925526622745758968136054624135978962838571530417543296048219671107734572300593559447693651587366970988270517427991921406323899698475401925512927697172552985250253821714789094582461513338088066716359341099904812315210141516777463443459547004537303263548157153064913093123296026394075304799406918420892010184568588457280229271296756751799554085426096608423226282635421318587416510154785329813352381028660381985397413048508017250879615007021399605120735522786560017886523995674664589190227120722167395171778016241525468341983173499331590407193044557242776746962333389789500128203033632058995405658476782113616822699255910503608621133222893447639612462878587126463627347773653464602623189315972525955513228205092959326400745626770866506283521030758142085591438829505293015124640745744517560626352789572119988138713022508827471208420923630467591219820320380970647849274089036723997345395716148809380891271165168853101646415092204177810253998603816217676945927184761148733514678510518122858085959125078293631470300079970608283243223202197850765087978038449367294328633671932272913319019278869677290017883552595673648590606387110685050870699970647169394523646675052372708022051157107129178148457357124424919159139111145238884314356562050573554005629046316331712380259358708483203264077276969956803669741932788691907188595834024980004608905264349646233556024779013211191081718353733522735728155581659135361325107039243592350878241382269650818324601216894979866920617925157954366617887114074963549516167649043171193772293504874841614903080452488199276868645424053821481102918076644336190200587733799798400359677263201641171300868373032521076220128075277719773905412287378195363228007677521420157094927987579667810800891861931875135527896493684490534160881871225418932503756537520950391943588210711787194256423166832710514814931312194949093855625301870736836697630943311222743197757618037668787511507625721693409920080752838086385715834115418506392966014959725230718198879951873812384847900921182035108222056567397629821449854656099622303452071181919814059087012357379438250619423619114390314129116669354085567499506484640680000302585176163590874113861494486755378228643069853558720348223576011775943834657900300566506883257831654571685348711594103000069646544841495368366221484551164492058933720979401583055541182792455302508306149794890845369289362377672215105819699009480666738258902231113450295916289630690774720919958900493291995725170182135239037022017753765778497421104127458541995052329521558085606883954307166153297010098084084145442757871709325397215389204849574176371122097780757703207955304309941083296836721259166962046399270238919121692566280813034626132891473833565669349638732803194107607020639805571284664195914201262586324982577453052039964582519130001155441644516258025900586028686344967486663529152996824912404601977048984247428150761795571271442571996402976250521833388647886214210001988745776107525675337020218145630595692953838202176259131668424703017447661562286569091139399209809205319838022197918589774230332503159652078266688919517449398284506801178545400547149118203644803083645526865960504570006296203906935997422705109187621949470426829898502273762518536740066966084618504723754469580892058241873583283838492572151825983762901214064865411296166003380554504961544144285657072677383172530052136254399222577544139844118795819870830350973638757876986969182961688571974497927701225833540720038265821808782272068883997073951239734682510191842792064981607935229207972183297085439915737415974996690926850007613807682785866566242917580715976387544013704396588946975668570177069698634850397647503671104989738097461757651430468238936121679774748596614499307098684172963643888499158101386624930192537684366781068762178256474156142389920967539234040658099214493937107949008329552012920987545518629106235499109821574460626364453361334557431000477465414374392347825685279480408766750646055206818718137378428923427308153279768452403156874939110970367886271971862878728798967317787686496477088500946091944410631641147404618505631836559308041047675045257609800738901618069548432850693698044725236038555194674581220665257858031900533279889142388424917603276654162949260348728898486928065542143378999900178740713492616184568109110449379561646425852323527558493135608150919208549279466209443085975371581650079730479951274101057140819460280468897651885083823650198063912162209499610048933184319459851730140451243877247343801734981876766759546394127026117741653622468888488930171639770530662891812806763567993977532836023271182774197257534083213782455891489370327294337715269718013341610643354361963832324276021817675867406696075611221334982691266732422091445673150472669547006214633022349614894084765018056289091037254604457209409680932923151276080348304866188652891032020087663218694916176630251067096525577276302456074970982764299167646695359199055024690517999405670701524592236321983466383158455652736348073455096388306623415483889329480354581303014734018002551833727520025978337158296916862310611754056514642987812657065352057607517336603473747444295340489418201605281735846277521881533742367367898177537836780068035378955801860089748383076726506034192543882924017284274322117362481187030018303050344455663580554534318271830237027419416809852367624922459007691496603353485382947771887388060074871518591343205051805435330264544434493354608369447831947579045800440734893455664111785700314151945656471021794863334233925016267509530810336162984593910584271934616152943393078415977542549100951027263637827715531246415035928861826932277737775570226129686387762913328982076255769171307949140407239896374205792917010573906943116022595788471475629741113572734650261184469628868295892967038118270857947711215554882820527375834832490037792928114320021903872564543706334614999280434116611334563575308354155034271314922738502771682768979272725778042323926089869560046177042833132349394953518659837676705136612896931515224096672070276235057839372340938280097112358234976850296592750825717115484675773790146338402306699959954119371603605698468330094358810890197957337153177741694776608406879872906806511370759818119324295277986457622187404303213345816046388374396875960447918928148736227447107327914917620777953618760448817064724077509585667222096064204195768184538835466090076059743901252239036133129518128943898660730910219646035082800134150327602159540323561624720311203475474230136813975624610456616892093768580341011103457646523145715548186627267405720584511074184126215627068265400455450977999766733981983145226679472431223657576829282278972651936188415054508338185913095907679955512099945860900874196212354524516669927949101591501370783231519040569559450165967913234903231025943464282507382760445812119068866936157079130060869400092831250143864742922270889919385358391488662942270269915020945040724196311637153847557944757503633655404931583372035414987522408091256806561429840910982884361137688556737976404918623559610817457844741044647520223323688499031218289349396845542522241078217228718129119263023429637901214577963601885139901442163333529718080203195752726387108712217372733030952434584154522146783272292802385538951534246039892984037917708903502218615531104139229389463919475920783879771959710247902915639861463093145793772865970835531601397401792177388408163230049547831499630779337434259706046084420528867241627164627148399178169080967273510592320630299039406665968821093707482306543194812785492330764772737603167695302817838204660793016775781016600552478670956082788680632272418205634984671726692354456756221901831399870887620138345424057214007265098486072822858693774849199996958697872617940041062278038714450902514410251362834421700588237751385080496424527180080981804727644100878825219743967039636117499762822880703506989573060352533545489279330013850759414101679745262649913369014136263476060623439772688945777768872520715726295798923948983038278122007525795972349536838864172161903875835783057489895982213522579093863999495866147392070330806135064682484656201117722306371114915410272611638918394108287909180634926217937632682942747757239318732607402074129670351351537703185653443758638211944300832097599679677892447417587926005074109064747822400944367039938142262026971931123199893742730963808431373772358275923890017220995589165901212160125925388467560625572336796991667941746237891727499698667442184348024898163253466810445272769585719420844911894740483382797284023955795807696268113083231082334153194299859015553842667957562822192550991599561723734271476352398060548737581484901531092920377115933143795525474851912792002372077864085534261161194558403885623109029765152892087216409501653263254206282866886415498205411794380716020384027933079571373101043038044568247731138630400673464943382963633437601338646678571963512936183110320544966606638258838608752154222896029386864518597483590206756844992329988016488146434170498492855462193421605933344154667066182228904223921088179390545364837181373875691023788048754944374271464362065570363359778282494360870664113622284760421067551900189009624108888425566892418947705541265690976836672406102582893439379031392053389363303417528080513756460696034065314165564690320866431683076027675235113278789302656999627088118743337945113126153516232181019323685576398930938756513455422406100028127166355605161124214360376922589610443319125802413575330191441338826941624237182542710730900840047315837556664468719145621276413328731501539490927708072993810483146800095919067606459809567372656903214896524223377521186001176185150963063488031910626940270692209551505451060916752457052193264620918137483301290580145023566755163913381384547905300092427548156669199710650405961468033885315342358828310419362409741952269123657251923743162608126987136395926096498400452156500018891817158394917417047625231309344917870230213854131596556989757068413295522272117316837699801115487069048433021805753208701389369147356745792595604840819165610333136354777131546285687623476646009986726865523540230105704505404372071369548505880504310652407936308382796854183212578236567350643180713801120464961368892936952170196490925413189451667056803866391274956543136605884023736275709448598357251792328759526183473644938722712096432728344894048724240330047784814266072870778769543520500526462383782090224807249674331899665240222147418127970441755667041007371489191349795499794258951497303367607633042359746007495653283708719443422541228154186993427189123164244650995292488679246560421285671317615580442026290419706618973296623702872985129795540854600270611402068809834512361077235088678127761199507878410639182032858485232082681940822778376601574332010372384656777437741757472595537240685450362518203855853925005009223886407628373964625825564082738418972191345386001528957825026671354551691077388623547169731950383671977295146246856394300547063912342761698011111795793362671072716246784851299778628770371616645999855681790695957591221529703269075678255168838303760188014978250896313897843115862323096236285812156050905918958457101181264947769167103734517362927079700555976366540161673575207180981419408249670921012455759280001437181979667241427492919641155756778939252093473875982239262594806188835950883387773645874102382934552105949618298148343208060286858699760005793555474776512773833052946733944281605613644819921004536401524070710912054840103429521951669772682857460719881339206262842393157214161739647071695003119720620532136671213265520741748045300776140688483380681442604316914669934542834043637545196421567312682742685209840031777330760649853681920617285098157369661535983645921546342004181024480569751132124851450590810864378972184564479739253350225508531035482805601193857114377892029730593005025529909381402568067467123890154707110207789290632147211195457517388184208485656680516887318162653007501133839125856635170917386008795179115050535512887009125536198049940786390072853203270417814302617664372348418210872560231727463168064591676469143620726441152230579602834785739839829814002836469685642053449968325307774846822291790359524891394100710798541167147807567688118789150379589040393088243179960779501121878126299462131433559314030260704747075849998645568877693534232548064209645370178202855117852104534535329170189970792087637900746256790983716049978633781372022268383849666064484095458137299606275916648728125740924393714737227532000669868901523873356441521979627584969880937511723541174809377661836309125725337532535921813165582557243990852344358644217432288687827612109844258446139823449733902419123353324957468005720145775088634075668651967406346063623702635056998905532685797801568671831133824421962627062924656032885789148181952267059427396762237470292617216525481787058587165740152743668957511605460307021941241378903848417765822270489510328080310538868429102528528704957719690608634511451771896133591706163729737652121042368225440514938433921220628056500931737660597916548284049743455196031360572751466629849531721582194174951034186060848615892546421093603261548196303396133567845952459196670622369240984345896060510709202173203649608861385028059061219771727132757181633488175227101132752911641994954307444936820232141687145239535634401241725513321886747662739476826848996079898325795822109091252176879180469943706489425485794361474220247461164400374426043034610084121368562421890447785765577961636378210383145566837482153044065132189272089637106727713867595715334267739771332853452292681022956660038370326407553416034826342058933665481502417221710841334720277845878172214893408741918542379798235922589708429834528141772921906993809331913071236284976496899906038519774160372555506626197359619604659528943200920918459744200301757070250593059088814824297789290686357367401093375301466936045968796068981733731983960380009487903975320026904527414974993600690923640455978287627426168842818982192595195138385284856815381077571984116868864721413037146448102449393745495817734368313929819658326534014564413366584226488653286105554079279807639562723743861932171137136676793019758005477454555509117552370839347093407515119889708779334355134132714030387314896862290458740728559249584339985342377267006656968745292453644496516197173506315682477798035262850639783891559317301301405672878110264506926979759750353338728130131802326025092887400350210057284982231820794069154303632051389935667863518267794146093184242921672460462522908934458362976413215337087358194185957348486552690292698577032709394230426279230628631314908298833242776157045364325682687377114029126914539917057461835452500704508449925180085986070088961001909880621238003103053333856350080835987200648580717083594675544877713980343713482492170152590182224321869608255164055765524416178031097661057647243987979327887661163550706173377885080139903287632662997744137153911482410841415553472214863883329756507640558513970301936371788954870644823545320792815588123339344086692170377571832661568019520919360444089240778117040487256351870780154106755605238504263424993328895359388091005373613915222201549129615204712357203191413639162353878863252080596290809220404685671165378313309204354741882154701114778047057063820042950331386233844476127928893988194181021970687461254387944145101981426938437270470608171715635604170402516768762812657793688055706165746280695939812528790369119059167007638374684364365009990418139355479634745224756090589546767199790915082364485725569783690735855780113711479201346438987732322996013826634907213533983095338807306559147942807967311914949560346944834650399788070498853066261000386420920892686836482342239606395605695624340797776417029176714103914529431036185458880877456830651708758776219245992586143014572939545346234220403679804442049166550129458739361208429526808248338621901853836953218388142763161683603613737883991511039508347323187101704782627038163952807417654088395329915010489373823513144348329235961067679189150439369622168370935499971075081838117199727791481977861775961248304708758212338854761826740563218220771649344089075657081803587772781518268935768845964396330725493960646192224435518150683145071483907881756290722168388957627917942139235989588975985811010062382126573461768187498082803396636719506254204715160000965352180809460049242508866377334627182721661892626245031004522508864960905559370228970661438261320568094123856218942013781966548769721218925290113020854181593301804376921306847140338443612012801579137949390864804335910968498543656341181008715138803810113742882868964629701318469927835107081614747621120157676181189488564750961387135256547437590227579678583818671178395090249783841793947866502807316015675502275692957779973851078007605472324248623230102592713825696347022560662899594088261319360257437948125161773403295942349214988814274862461383784447256567854166979378970586613504576425674152506437629061755678107145326507734608779365361597890924444520802059347932404369474396450462830573500698702032442085073743919340506542580818385065151758986817615473798550516065303073416683203090723927991253913691959379691912300466091726360618255630991904095871860264048122166022681840176108333670083500058282212918947044022815374756916810681349863933772333633669892656230452358452571156921547804801604477581275988145051232361470840604167764774726221849673374661411802507128723136309153859826879022817485352257032238333791464074368852498959821710700209301115480050838881556766130498822969134147951482363797936161321829978285134766250619488927161526806318296711824058729553714729156351327453463970837241855693237350052208858076786465994067821105252695481383728866206841461448526629052871983488944032360518058872076119011282207539179095481047211678555545219101762361146685460068255958372966199425023602895359275241146644785513016073335455670403837126466972135668826756384175256758596054251718470915502058362500872842798905939204554935432095549734728572317333225912541257502666828909638711489562351155722434526786563747276809234365518853155554536454729289115889549067768533850088374706501161247374253869947741873536275106864072351958515166661886105329328039519857499941427352814233363391354343659798116322790066365874159623931084254539079004989369843700600878763506589222774914130331603365000672408613901152184327120233784061783676530322189536090504456188968213951666988376575724972853977504624377235628933615033008470574011998790602636273512368130104157501934955972223994351201176971562341480246307536019761795774976739119599731312009155939799949534367511759275914891736424783242213781599485636306636400215620977954425120710665448795376747636893631305841466823200021129274042014018320597400658186398427629506683970971310807284327747513129912780246404623271819534238755329022614671116860616444086489569240077792339415640101356696741857917945854806640407095564328755166479552874510393394288159458997283301716188050199240206554888819927211052366786678383983352915280029520237457465319830038812172114855566955635340246017811007646513304222217944757837938048058628128972064231651922006330928123892615343500503058998502547521983397755638648611081817020773641830777228441921939672104192002636782349060276506174933209878671936431843951084988579031832648754613252036938240475550704456344557354998379835328479637393148154596507196786685765790226425000342803089509446722750032563191525925381002664846882419682556959765357433871805147190404987182591363758130750609791059838806958988932339805800826474901547113090602824546076460397403780882953279760500909051739986135104851974238730900172535359486309693175055377413807107843100216818138471194357217896547458460396999625117106940997935152096870575128690969141404843943914156785942599349969731832176735067763186979120469303242800804248641935326106286207802537822484328962433758136562721612039742974705543209892442166388759869114570565232647398532495189362541681823014335600224877375272222443993007347335789698777797515383128796107976272675481605656692307807445044313029206620384074113404669485728847027368301648742189291400780085917651710935805601920168370484205065428627388216603728923172076318008413232785154162663302129745725825266482988606522965008832108595411523819287150591021193371029314412685193615067780307615029283562613961888480993082351437535907178382908536739192608693580843662174934068729137850250408185848777907554409095382344505007224761208498988135072563523419201714640943154470540393287370700025840627699901037020710835535910556490262648514928850426414751507402188833928122668282158305453908316357318948666385159242533513596543046047400565812662064713816443476591322998167841046781192330301536923715013498957652472173658942647401426868805989547768267935518074702794722782492118556624126099429110139104376431406072969585808613661659750178714785673394742672047485543891748651322911733446403105000398743449599385239690661780372739481901690680485117396010904098730535689419577872411650270791453581421798734105096842767909559298921915318770983996398268888582924539613742433729934999599954954312472195731048198648144888977021359050862203710039631363295802462689770086834108866643491527332367957607049889729989992708387534221055828468382769374475226516352842093075418276585305068710361464765479323689766103997377591699986875284325608343234470343909076268251878165541874265253177115985959856704590479782061499236215548603938392672680953411506089407573231864803568888498345062885641859889951120307188790272769137073689075580688256574403518803414727424267397396021864169063746090172241500229777547854742414818951976652260458202084637448800899846201714426864544377240091363469856218526307511884803969324657303515362068179792213623827223812897563083444244446371433450424660597640481331585898804872408706399823739892822145748856224419046576595326467309371797889935980811664768959060560509601403115102073145481013702369764972055723164872355296168502494925461984320697289255587201444398282275249726214331147266662006164481237720672094132259699568606765549401546591087694951546809499985482339034873762733518108800910135871553869889792122659787450946075337416764178701809162002864228775034422574301536096096246706029379859892781313273821574850090361179998694375253066119816566790989487469024152420690781676409874978166410938097663010625970406295851838971887970018344970245762039032487705570354916042069353879301927183644952707656970974390461830696948407026091955116961690185490004673643990295040539500299467285721693197769603644760297416542339564333695293928333518854264724712973381581037694094651660972661467145324909234232837204245591273080658773091439194288740392691672600861408924134089020921315335306963345844499404433880317953904538146624125095791240366990938956925236446546211746033497508431287416222484907947854932422150062088923565710891911405709843242655752340118654710955975319285115681339414019907363122626700300712320339756704336322576807686030496730491691661921523589171397989566729422558320918514961613075926213343577787491026118050834973212166816906069587937976145266804441565807156561540929376903185414583483933692172807422012925833224148756404197549641554442107825216228584074842992038092362819235223105948858792859616606653269724730880336645497294477980154818308654862273395048158580714884993842361019348931496984663492335299109968157294914690751914049607125437638061772166936314985104904807301618161984949101988982697477698598342733703726020557731724634461625316123305616694598094770141802041312949241870623940219113684842710611180152063840382292571885345829302107684943146156662717109086042970274130035701886033529103989940865685714477575354353269089960089419634312324160824815828347926477314991261347518515565501085665379136361686906719012817250554495693803740656466758060230210952067404016631712263267655931094476885970075479949386515019932870740579213611312626433440499196202299488881136653092272036589608650452791292865063942460111352138612921810551302980295818710832397637095231775647264917689140467263931673054941955662897819871785943436165520408948885829859479670969509047473002513845425604750033809870394443628809077873553624921210831046981939450241436930180643080626128352011427020930387388799034843949798531238983125077241023206953678678592770010597049125348950425109165159829983880421501345716759169620596054571475564378056405276833595309663132442881962551768138055198820128642645077495690113948449534083034013856344305034406496545491027479142633954919972144813542877607941217480849997282171611125657880511293751203520729544508096817104199387084539479617485363657120186612092428899092390716929658786437432292361766963401103368295412588532738170635740445397495262637784550801050162680384231408313345002330824472145685484789581623994050292082213399080618442717487307262303586420515838603180365710053008400684878041479131278406420509008956036858150186029879941271944055690074016748023376581977237951392571013804127494450371240654766532605425165316781835672518465944331598537746425651719590482792994314795092422467673862121822923960980004232271090327265688559226675034946911885805812091809026630782801412274476966969897475378766866541594065517525538148722757343689200719819970225046225142148386013128001586755548302918256996683891710205065577755707351109968705804364628057810951631709071328839207785902676348940374234305471361177267080107452100292945745284030131734787106629005889152543413089773772526404601110373058026223767789224100067400854542976978972070417505389521141354874670346702985715393356907574403643780014343877310745178201901849271997770277060629883187411083422134391742884354443999447334432907156272296700864501269313362463712262518660397933159988534311223267836668546743723006592814970173940626178939707365358212539613256350825967852300659759958221275417622265663266272177177922762622106780275924426505862140421952065801409756514596891478896107336305312683484213837558509571003452414223006695166782968076017981989999096025451052162804075933656812116919356513172718457440706026336165581289049473451808485579271969919399691237305891205575366896106539150227240109498127621961923087677071110018859593039362851606686274766135507942394989125395825336547695280191826380753337381717377023235017163103533764919131971928940922285823454839044598870676096302421152681726616076230661616408634266174167153223236113575031621276552525202746177335707421507837495928229230297131327041029043286297267698853190669854257152313719658295092574464498099650576150162871220036874784858361377489035940116226297850612194709660271758174887942768344432369537727399201892217034461478621329309023097794199993484333304865456049890587810140585139396856355147129001900420680524781518337932107544439576555162760254562658556269072229556354437708520580493953747579999667322445471075394523099202821204485192085357900995173751607213565468072709276659696831860376012937686127751047062352884948397578829867242872593948310176824681558447749331625744360924916302851726471773647867829512478390675020886370750953585499303669230243825130100657751316363429386179291214991158742884717929668160178193913618203834920329192520231077645042564263539955015621684290568686101240594939391446328016479743722427214589400419770485704727704433882722280508489679978802938011795423350572794063539012029143110698544973665727830522229249668695949453006822792140447360131463953239000211003418095987265321258652363357619600235785549684696800971726766461439678622141783596940291676580566072138201554228450718659208070438925918522015406460724018181928231053129842693570701719016485711942485607511505167365382161396840724534558607526962950248258689115484180460632260139663281933089780517161988992645327828368000317243141140938012836556802989446001529899631997760425868582626486968162883882863534496545064402303924938041226125596721225907396096698142618027362770058592648705462515953837725968150104191377074014112521146874294297674160973987693570300794924067345951722290015576156241467972888520181692536227690127436927227936310837401410377131702647626638831005125442183582590986119760171223435597768283538331055220318580238187769179584665182271422447536168991427899289432850964805803234804599287551438265090281197785350554851937350636598417953399439455612767783350059715271737416935327987171705231445032810261851837399313635917802994537828002071689095759475190386708270476579691153824165636188134982562368655546668014516377098416407934342473535092555533931193019340550899444452853563491047819567582620242776274456330262532424444212359469151477801465997124979731637920470048219204779304521960555203093293906226876539902174651939856497648968760393648333839387949036101334036599411154683514015845245082003176378972744869068325341971464581693814672031264573776998001814212357277467392023908161704759755348084259620194159815825756018531321970989571228330006043722886845633699294143764405216327192131153212609090869433232838283173761998054135967960109325851876856772575114957623831277296188244449253794100135773938409370000202959900202898426915968821323656367046345883059585818038899650380275353075905122944200639049367859257168194513635013791135933045246597960753736846056170278784482559949086006697576456214051242407142970931006032537289338280123963683877117673444719535585586134207780696863268771402456462932354257943904482643743296494812976256680595128024839171485686427172861988745700709606710671699066769479760852484254670096337311952537744338451921962629338533507866812843437224350611148468758355484067991604158796643552573085864810768384836953976331009879481619247590383528410769556687781653506877388510191924274287494429887296910932554312077712376065863493153088360620539828334377798602503151984358392688210001112846710579925101559418586323134858377481087850229801637327395701530411738145710685710927431315195380231544207506893274786792192581281377191874933232671751068525325018583036697239354846392381871674381087647457382505277562583471226320170494429471912963518994044394785382288140561024167943003814032114346116587004326296817881104805558971147880027293098863230721991418077653957351956481012750294682048791348600203050232434355773938063589828212128455764377974504112133771087955470131016077419594304170517687251703384662418320612939881076200077155621851649163968859760425187181433651477643242623887767200634397719070385527611519189286755536512688263519937123218096658893215764754433392409026482078469945530344303468445869193084322347077447675996243611236495667468078095475214769330381182963554657579852732674187486753697960347101380793460607674147075585864231054396683511740433410416872546642148632871477434099838323512544558747122590833428473627999479740235087400726308547126230253655529436638335499372851968713921427495414183399067369596261016183092805102787188676245318803298921328370336142846984861866587164932318185301823696295612448749555520573162093984057732824693043223351787449289887583741773250095756109747933091822617247192075074836273318157023844702252003292088010723345844305406167820163852052692149677216725534350205381028270902433679689274957813296826006966617401561503956237173831212691031238789982951578263475309483500133795372009875705510186604033737328910128114499687330502032873196297743992206656264926824304633696387501283411158318720149726042333697368424199918374740820188394214533115508103692979057425041234273230909192543096654720284514653680308974156520922086737709021528543541638959887167624240872087983401141727769975354474223523562773711499326961712259363558399244474590457965706725909304330636804490163525476439321076964367223156991559481376705340557227745705683240401784290600668168239093234976500793108313734881415848349944696153696485596279879471095532238912702637936550533680999206948367738798219707312479228247281478067470024818324764397412800031308824318223997282776034830521378131522910204367373580869709572831301341288184929070542352656817159328081363770423486294728066607671058731428452889906489165780896521718799270096965957765558252452811251760795523722063560226494326741708230158757207955877120499876676548458135637842735123288568117371836323545609301906126978490419987906114774535850735516128405052143833519540089509202007365412641833997479721794015195634775691688513320663256019679745254713247226899394385456467242526937506927544391226101612833349811632243639994690865044748861434749376544682678111580920979636099416064238163464522701885549061197961712020569259611362860503120672257802270511308150184270833437617814508603440416358892635400211896297839000336371032806743661720870714183101778155950913984179889725316852079820224333171186248400743861727306836821007289287452616128106870557963368300339649554578075309247046867930493875155456175521069305670404448071374368433350299757393274686746250331594648870912872832305840991704604892507363471076542974972714052369912535715853580694008794758434777428949367806497319249074660909196718535422479893932184711828681213090754635835071229826696906890540144604199243502098894825583934315404321961594473726953004204116956571976898561946625429669976918488789580170006180649059543486392840919229344790076009232613961034640550058818795183003666001522629760068328157420865897913733932220649933493725488918861241201401591158021561075463832600677025666113383037642570796367238901154824279993026741908938478466244079921127832445199985785087827391254191447071985212459625330246561378007048528379692892166660518373257233995776881047351580459727380067126164216176255905292005818053246761524351924095030020504874654913732421606943745437014489100260484584969409212645847594820109074696238542119341128104697018244654527956068801291889639893599644474068806223439123254738533501891829243000227583930288915106070540119348000642689468440215309137910439553536694499138087280712723032562237607001324531752253158236137926649878616475092002130069318301195218217458044077835697987419148950308027002216763284744419243351648844494441851048628487401412068218615510936685071387556958809059943621945269615555972244958757766170649424999486496956877772447310830720585423773462068454822487870315518593003725660168046814749045864846341028345059897608345515358412653492595415526960265866300749569868299957015972919543564657550678749286323944295379724695273433437907122908854457776583685698175481442071461420281653520639912699968671701913785555346097965503466334083067955230173529839586195041236582898787615174914382285781045866309765228198788275933964474770126273010497016161140417499776205218348668824393202591802038639241405642787518876205780827528897201276936335748253301600891286041195197353277785670429134794873471012656740493939877552047105691294252114675508622723337170696724911791647280062952824519581674056934971364771926827802380112902128689257668691809465872248046611943587533977468761775503337543801461105605781924128063986576537921892904507442214862806620339004539817361759071583232759046941860281928633519285691023096111658450306653831459241675059134548883967112891802565365449990883042633428069457579399098499803307936199207550811497124070172352895498215202932396080629202880186467772003594177764311342178782367189592656660149778992409427299186724383855075507731839049897275252668361735554035185037836739323308873744477899599664511786240475589891498009855047606871538226838579161131519479804768898112872180902070749287547526321922786569942198380811848741502855152056856598852067742408912597436388865120256627608927748451330747817298718193717623292412563835816711808460557522787397975228976641831678786171264792951934799026360240265199549558038700844963666282242296493475543338173642733956754906743176958482404442843002373253923207405143021639543540776890393192198306892979500274738410119117527033903964910744798900426957123118926534252150405188017668638557578024193678851980267812595870601081718734094683906473733450485022838349805507103312662705375163720531057705142765481149176550832924409025856461520075777696992364131557544455580690715484956736696560789133355158769302214196930082945279142626634743098295493588211768972638053921867409608312196847387767425169187249414555828678111168450390322862572396671508068715343089454047020073880111423555924028122957487529861089191627745178292085807578570885373212505657957443889040110297160685898603629111441636964657193112961495102367238420629621993351878981099070718645085858429791476297404392821085987408557252919916182294243429389509707744715319037163893028383241455008764150180818713672804179205496219187427170710708220756941801614298683093102938585042046169620774806391521724464796169754999884598367590824714575977531237854150068919657395100078896520891303426671506935447807080587792504675135891518851444620683675480881944279746350598755443265023604386072253465842166074456267722834938318131276550903701649242730336851614769312707437780349400639381656201685003676728004776014097255832323438051273357001826013058729074352673182194152846859459406794115832782532866547257286077308325930038416381348293847912223525369411122957717799609914698351187519508145548212761551969298533738887113855563289884807556190597725205159432579193732583384418425028486477187492614062514015413549997300607072719650725794460068343272939326642391710338760003930219908336504546038064138927180829269366832253640966894679746916907490128656820034040220540110985440872840379297113305374797073227957685623734729607800769578257235904310081161366082976136428913036761103864466441222866949973092057667500041448887653323457235830243590148352422705402273832535218146080097256946373730174149201712987541156111180889310546542479800801549759096049943251689810686541997060676642458824823102502514418225390201020244210810522153892327128953424535142868538172260396117879094542623530042506076859037649504983419662255368787504493692592904349795881262496144148415138105155595797478392130038962231364836437658977850578363667410611469097237998166969403856949153236694549921731784779335353304151879527953446932023194318897649483359600726150579458617969240942595933389948885837823192721406664227360434772348211204454774528305135916050236636214542407552228567956497903252459187463127870899351057080296394933900874861552741829286219306527465989628591992761260169047842242615123917426243077216983127929223167211373917910194324391674773563182516345940420936857345805929785030227162201266792403076033465568961894258085586185065462484636629870519359320051418033728210313819205496448011367549125782592380409895510163695126992089287192225677280796505813883779772479991494324473108699446470346155195554460509283166149298110981622301251557997587910681014767182218222844740297317377606516762687169645653562887594187593672296611254774503723378807949231550784516033091465368553843551350929713251181374485749170288355490575815781859955025126802492869880192188724911253809169092635868646267556011407172539069186332036669841710243578209562640500815526107567737778370511296181701526778595440456110245911944334913592977525266616697978627299207250383511231634019072036359163021771707855240256404700729304899203171131736026602484286875048810251982757948997510363275087440851403239438963280231900693834068922101432403305176039300418777797869951304687345993877224192724466342722774567641112086687473434458613781021492129265833985580431537344819765220789385874860220152017330232048527598134617091417761688955314719734860775380206692921511767336062427383971776038191383491640873424633101147510408767626546703366077807648877446483611995834756776669167952089519187993530329908374542658897183014653614358833546991152803496226754822027263804135463834952176004107086991530630760816883949096815821401772155361929938450112733319246042993285455829844559357873932822170186207554617751491928083409017761271698974869218371505439562702882429134233218724103374662501709616446295675628250671573372102618162121698446608793258700267176807023230753704391713787899779567076692654828604824898836947329112699437134639525847963280721094899689330800601121567532120676475320429762840012151272598259327472335988324044381728110589405740416649154058210276535697649939958753769015695634759271677599723384645773707136009898071047096885462313994180023682476046749354702024433977061296858789692382482919125020237397248091053809783855053834806469216078669887588441170300744987294017458245491076791827852055037016455804240066418293963050372704499507804850222843105294377101670037520848350375180344751267816936770095322113404530965996688231512597540532719119563176316022233243020587359308710438341006200457591724999607023202116731242337462451873694135229950630720917541755296645979451782803297554875086547134387258672245665281885996136901752184268440228490004593826644490865530520225603056729325559260871069353111684259321494415169451485183783254806891167354039506583265991088009212769304536159725248931431369184045781214718647118928938784562118146486350892881777366883454570172411773584518883232352900138772594027143737009162142800973437349865378319078000623928436849056094173180043774740057206065512415691292639585141361892588103664164367742331173317549697499747853482278633407437924145366465889253285104794941316354390656677380017811337946298755080536131208414629512177443524864377994063003059181062660652422253786646308980506961979231266724626440256339581242552099165892337851455094609356350415546877918470654083734441050008667738426810021142899941227507456214457088437388546460977144241125901363298897177285560733583558992737593200175523617020541825752283644589526258895134018923222264265382183232890869656523603632077809406813947113539209002934907343834153411378549782022069851810535438893230502962179005794383364078313302854247419430357422687875748966140017017954489316011817680380711893387202605470279663027040353473556529739518828038533214969335145617584408219497913700897871471485071142996581277426551061582434686462729114019900191049889046644976022557222324413643299485208469598976738356822612621650056883046202719686652637164698260184700887627143831334909561396636444735514347871739289274597637240560553880297146358342002013913785642077463485704292253146806022374757571922057663620786129873325294573522797019929402630421173812170682686773633352876747164445727663725768231883558420888950782252421893410199434075513734513772140854576143993832537881310284460042067389014271561696495327738850404918308403946422375241520969488588291891816265167386512323308593858394041169908203062028900068506071614212669168184589560124838759302915816191177424311578754966312789900070654910391917711742846730612034435663182418244736425579623485603471964638277434098799029147430704417902926070717043184955015459647132444733252536516461559764638137252600511016714196310229070320447018896228043362316999156799614865587960024295783773636894615516268391354253118142129551774683623218461340578832006842965979627626895732779164338377472920651979898104948536086386481331347585053758999599672723833099346128827974558821442089915091659820427568120984728940281279332974451984110203701199663232665185576587689953471585372009844409037003693792480722041000660936016691959461522458717141825894689835885551475945136369841623018985849040869862147954203089418537805269218762023400517813036756036592619090447184675710969677245620960318787910212070763334453727875321867137237946061810052884540860718983497205231852120681566601440848493821996739783623597472506136213386059526079928257289228268851666964986834537100160391298878034980166715749550384265633752225536863570102529403276662098404246334540631433368217586459436746641044455747221510202716548153206177680150022939490748517160831829001718777169842463803078968256255925452749199948057868227779876402752677399309305722226621820448544008581478435417710659468872668337774047867624510448121869162455399199636916139692647268301511787331319755154237400709217501032670567249617791142763913649437457769219888194733158818082376031964244962713530695524229996300370215480813100656046512195502289251653842896340518900865197070251887650267684045884839028226384630859666285303777154793257459621947104246163240409160986485410612512629923732719207427734197429303611801004858924234546623912464225909207846164372533371695625424499677110934192159943393158126960495126938752142493802384628323887678332094017230841154236446169038766457279221453275473005817263698957235788785990070086232894953310399601709370825509002488777988263857022277014797496614509898558196543393485179498674572157467549738433597352889629938163117539840807037587799360610254600369378258495510759192280166739406189859923389215846799297353118099475759712036604307754341110959576048483601578886708792194884820369295731104837347565823370410904118491282610339688454621262182492027651217239260412344334464695123328235205155880255545277912325529063791279370258693513870757605805833243248092132627368341993436768316382492152258426388997367180252602583633951203568487737926514513685998792718537978663185491311971944617735513946163862509980205497157132070596187495210032928428364612438661916215825009946329182391671268331635003061176558274154054033913560150820065109172995291171828851653475030507466041630258313771501304501695197228649731963063670752235026818010475940071784599150173084542931689245389993060578092360600044844434174501840875263167031833509767728670688748101081124244157346992150478245441119333220580535595298514212794109414002632058215984725795474691568109666353725445911159970555396405584281050440425869398262384169382730002410944488195634557689115696724628786621926045961263520086999072563201115465269303501306395246335357409945813959238190105721093234317663256734812509953048909634890786080330412628696421742662623921830368743320113100572321625936895672627112735987770312029029999842366292122142729878825081003227289744055865617812825168359393995323797770102420655797304404033256573746952624512434997217352200089913323259141678555274599059171621967821443360919421801720985511540033855113070288550262389601472030156637988598453717597778633838911091653826751380026004174076634814058011555980098382192447754020844132560559482922532937315001872074399316185773623573388886979446971444201196256959065570726861708373753055759615716462144154405485392437723482633374488343199939406166711459621596446840143787569052297989284511997530235491886499221519245233944019400890248083234715987857575749078037664060985604310869008770317544935245457259050487476070081342096980074709470229113309580566575792071764066945565807430484553313618974952134874823636430002194884572655667752348207405062004105292951547480044839799231358580380977185117441931637942432520633546210182587648050474229705410450910411881426321891915078396732386215613968716923900772939959924783968533750471761801064655651668881627042040005661208924304872114935248982692914888949954720742343188615859907400707248649565545037042273744527096120075204193051264325135001601115928049590286061762337115840501331094237653014392789421525143306073213483115269800658255962450659400259005039019276359499899026041726817254206263990908932510813708683544907678660908252115250465938592992003788704377058571246276498221415690604166180718882802158859975713274835871112062587725689203896197570527068812518075825061733070562961745812802581613376112402865485325022075273526637391953396558553882486039556044485410464703343097696584893480842473455686862780557126484107669830913746229073627082068942846718877988749305585756940780275237609358227121399915269320625317518512091745922050261922863376469158216921657001120268300493036153680517427848000574110677500106506156238319025323570305931002401502977818426875493483060850455138902189978008603354007267585261975522730438678707710820279676552958159021639150655144202923132433894659635276790234247971750302953079718339532890542637752032041422874602621105340141818740359964088915699922468196995972601279477994781794987602994143733144186769225187644708918287135775103846091233971314041170313477709503244680217328782207799139554308435004831875257344475383437867576339204424518373889915351861648171348003270356339864466027264720815328241712100195565993105164457347302855517950764719021920498790195367767498717946034185153198457328880298113399060796174095384193607224281448477281275388124790678159984691280925829061562253102288595391685538418162302210902608526438746204914018424205903685237423237520094404291377191558513314335781926234679779012863629442018846596308444992065455307287197234693827995879614178295984907079133084337519434702825440514678306644290149124994584534108517593545395796946193968118748500073860722616395499282825181002135259851099504105348422377419023448885593434971510974515110254395135666510432696995145894194700533810900105139301119355323390336663817115612797418413313334351938627761592719616033155014739931573709920363195575572427550443311600449526001490968638113668248060478859948910568050475552252348732418524918218530896860480506841279809074759739682269462815665753251991124083492498921258924861765557823294499859778775229298166555642381214360029724076217482990189701331695233400467425883613474691346861724032139499323839144610332561744929100289813123730235839323344593429093244049609588727660275756264466848996228652093727736603747978438039024341743823469234913373447891836113537207580338136312137088840550840165247746095400908893294136049465404608181382789911495936733918326641624384213553181960517914814620473389670915693581837875667363968740037633055364462508845248501883249385684566814905208478042289459199502850684574474874709379124067145992531939409583403114922605868744816281946420922840194847933370182648408423400655440002642209486639311193308297943943111824578569788719282828467547391491218134845983395043337602425979564711418577273008050695554718644963581355082795298255266878694007300748337124233839539813470687428285790787322850392008497859913619798724341917897534913402251961442093512107813763367493351882659565047892655648019142287065381536522438021830557530700725822671897270221967127564560268103453373535556115791302086401646677535896851148637269009216896961656332215902448839520948680923195252408326532398378978849476141695271792459917846914770411493404256125751472249965777877017339797497592551195853955681240566852135474780502147800883536146614769722477326030571622882341659185394398073792664128522958058807933495884130839396908948365994659386269425934026887138493357624263192604343941369065574684837959086922131278369191520777310714403304553808061075828086403464111374920439428303749012126671518458336767474313948573167804195132991786441297831699861679456192712990333329449241636219937770070263354374784177562902655880241978428096892284339249082662583097232793244723895137163412210063422401792409486706594824853761341725513266100213399117673586916857676941082772724886205383298659307056529007011185342906078739681772063991941248766989371479574586006962368926470328152326818373579720610336861698875472541864524811414456029923040930586416590149548923596514571891709364362853649837379285561466278863922739139628544387365171344764321719281019022740278173228369686152148547927716876558356868575124498587338339769800787085637302372370690123320282627887359237047951722731202089803237188324055721908613614623966399980726431508667742430745957527057652297482343905495524495602623653902110915869494714594581729320296796294989863486235436990868054940125033894598440073005148151976540533982801706488211231661595861873513805100149925992688968253309590309678238230050984015305687967960966166806654185536228324928689880233525655894462150720333816696472900328817361894958200739942806725297891904076147493233425720392381084794554441412764695133490300981901490610925567511074492328422692966097546123851436235942635816039258456964095252167598817310801289474891545017463004038258001378392011236702978998165372511406556900438125278864986771788168208183870847146030542714382476358197874287868625055906228598136253622208566717942434510184445747348201859228215659420624302108502262305957415216831252901074672740533449723019220253224585751798744626442940223526548653643133866561900787086431099471075347132898758264697085398383167107406160607697654475701824293690225709090260930055153981832962340720748754418322286087254477569953453594372710695752962057475886659177433926233465980376919048835724036050941212485536283801584453437437092559861211596732960847288604501014440105475241319684138106569750543454069756135650378108110866791778867026464862318254215888974476533504247544426194470610045571559449142375286987428909447334590477285830538053950361688909090920566701647648588971537307518371813158203219220196079422758832567058775752134390840679972381332625315452805260236546129667430041155331880216163886676570229782770889666111020236315714861151949308768310046071196044417719429496212420086488587414689424386058704448457443414002673672917172260924256079377488459683741932297457321406367669247127679132788571296596267080229535511960999665410946714406920245804412613112338817080546218791419157296968413761378444307586040881125997981979743093715077066491697427293045704276253767739016988155773386706879694996049087499839373551069376158241515026215898591291941067812594568639422963145800545071281483466632255009128806813281966960910127849467318659042948553767606566883863964008122895300701768639826961792045885710235478192092685781417293331360588338522988129932456889325034427234323343739324060028896862232003863112685379157133759903498535093518420598806161954782324565834727905412736145105189355257385207889961775457495137097529190956381124436683672285437774286361274458527328915934269066676249253809865404194769523331258908608762133629229858371311793114011749826616826859875117584047371540271328075047081043316391592789646046916049165449954498828728824405051873548067204707699605482303992403859845362426160976609444723184995652310789762545073937269944880818446130954909155485110873720396663293056651102652704149229463466462908808378098088978813947022191552946537001246260886975938059265582489863870045762194774250793938687121488281960255222737858934141821694663846318013700564437704636189722450813554030614815527151971293132112090098501604377217889231267236606127731656962715969468116863374666114582202548410920596356155530818776135490266656578164011814958094791421392207709218144037621718003085714073986901510035563775610626367856044827398586483616980148267426215285545182786466772232320739467582304843211042479888580722518828442709263689966672749951438118048555499621296708574935674090710606625258640749002019300692664479233552985629536506214089048227981490182588922838764720428768163109414900144477982722402713089573613849315313273889224657521606972572736678426816722456853926654144666016077073893597079367759367996909174810839272799695273698600192544321198466909408755696897421391048036303072550235057481753454311682110035690475825466588897576688697859827199059795470341772227304069374265349528092118567924470385386847677179055884735638930604735910477581545053855388116849474510587594030587245075781542107241034953285785422786373614951391770297236529324534613237527311072496244951592230738716224953206234559548161875705166268967674242700431818303119830870414397845070238615585021538942564905165231272278884723842908679146437942679542817747313253668927586977301339756872186839278913759980484464135600126749096746332947362914382748234523942093271963999951751417963717138229447127916257559119416682903449749815115643827259202467602500474755614705274463851297877878040970677873814033094442209321492053920617051732487843208982843438077490334193055003929326075029195090335356704154851897816147279237854727511605769593423174181602638593725143045578945593030777472086124963841555104317468792640488613912402808387939303287043478583095346165550294053007375169066356466743677027326937401415292865861727808476599621161102521841901001013529817731364019793947801117655199360969403811141001981325949471017817798325192492265000850524421295896980918777329886464596285200173480314325672026352639102392947433789171928546856671622159385736804783007488161365358922079513141524559591191372155732703219759431460450092564352974407258588176199559463213237967128953459487556289313559398446736407652065243811371698881709998557306819174952082468448974422447072796105772882433246904231160838631213016734816202378451304676249766209755000250544098550759489154963023687274113390926567204598227224397505032979369109036025924659854851941854579093441497402370475271945786285136071975053936846304308256873755220425002694236733718871763116455460331698369284088042300899763591654159340968667245726772170742151153639576414588289581902376945950127881288385530558618893500582552159308627536044881938651648859604639038747252703343981554166268034958372136335560250725158129431978439926053296492605178224044233751842398909109613376731189746346633360801248337897021688096692708367666337545320931233422631911721374837255911950046372596390886840536152141697995576249032175354241733162265391427398662646274973380640187523268507356393127048956174816686629634169259147847881014386186765169917018174160406340790884220784572260321121132715253912455349078842526456371459488579060193966511626238455463129726713219765590468619698798462835508048655911870303686887527787024194309348138569417594115831717663221753286382709994126451101937591080035372262594795390108932011163478782814543676411294028200194278728805279796237891135904124994102149053841845246644157189843285564142142208621881298078336751005322403191432584798629461343118235654039340175983980821128388090850981724137523350858122339618745471058801956664973944768363981347805410301640651782523246904183487692086482719450684674981063560839591799843345637670238942060958659583443543213416901993590450971872805545671040363323820202929801445979134815073485740391418096883987734104892802138078483398425349451377633137952386706298583436445660516594840645047769627195876239596603540979385380127183401539617388605953247480486087307732079353088521151987168581290654673357429369255557938101617293045955337947970851895828855083478777509676215925818573513620950608773109871878280095069951125128100355003595912204454862943736928816229379182722791002042790966086568598321822891844000779729114855483175629085204254515111223128496117223871481952950503247239111118354255106096856068174553830008646468704379928320502482241498792024206744931318391552315704303341179677328277158069497021899297689383830116093917703201372859105205646003239164248062144418156182685271876209858644608860034752752691612662244437670626377844565234882457196474484172024705900636555565685335117579699357203405552639739635665125330708786579895085076100055316653531250534894577702453854264814388418552763417990789832733452421361197822750941115895078287513389534907805140913710460920208430942075924708457176909683106336001936187362911409681773917004877705552322316559937197822278538262005512444059277000629719584559147358907813658287719758333268338064856712929063417391995723229839728960876770863737353873518093412277283618883124701274789113226540888261700992555357794955307261708851566301999982184283053340164116001973485038958990761571315842176171398267325293480892039201189861126155537276353423360971514517266918375192901132095895580766153641376622764163107751898465972127565723607118522463053365151165627551284186220543820139946950889321978298551067381326687643183915505245720806019684955473056894820471873080725152965615068851931135085890673142315930228095148803850906606511776524075686037971167610408021539140145867437473257646971004945505385844752512647337059563524268118183898372388985324089505792042417685571357038039932743618145324567374837105709081575636392725051510822649069225490947112290922856890815849698512689520576986034537320394244338777633512459231548762708719326111967571932627752917942226741321539363875349333207061961998332935255480322423540611081419743803279071728666165711665519808890152898576646361458633007645379008781667549668041844755222667307150067646466538923237502953055466167201008337126394310669294496849413348778075056496430947143373549928008204966852585173479674906037762589104219640450870236765713749434161768688771934834157137576311078928288026472377881296731139539869680474020056430592451510642309679035141765358973916302350907177270266118012566993810190199686996088105430716589730065805711372102365617691454143183196801728766124697171768752949246623406936554755526210129003530543576349583782221285247013910110188329424491797360493771647989329132451212860677932553939614908768401312519498325642829367808649314909911351064422006755183498504200844367405961333553212130799532157205688950226681310684848918558776725858686091206667799706610439465419917694802294822225991414250553829137724082617823440174222911478511735092829871272523496804150819493887024903424935893772293316810434882773906585006695393571546121840810700071578116684894570830702896833799113953240861385630696398728047934039642500476076706728661555689393359832873828936653236823209299573076903754976167577883392082652916613824870848255570386855578257666918086800461785723404064358779687517640583973550658239163780701404054477850540353835897200790577930711944614184495130435667741526975508802110000839343647346793371972957475008639568110278852795296301753092769117162036135836874449040326331339162940529956537694031082901023234034381849854452178815523821370629761228490477270468866591542374399355610910607749844571599021017887600033207330250020156348928447347501537734383126471648651120663231296171616443160979699856204523843659613119275921431559188097019668766749126944938598718701361454160260973580244223909438215430352471181029789946250293347195837722028969182930126333812139301490490768210527697200628186343934650601090109454522437771410690598961694882714026678422880333228854966405931620582906770423666791874274130648577720499865179924253765897621883813459267303019493425834101619045416289571737403701895600127495821577229525723540378388894921338369591083612719913830617100933953190345701537863271842934556769702918941333584867633578394091393432062458065740715933015455940639922572462568955744217494720551680237541297366867510613999274495452016833783393847845548345938376614874209266681968248431787261153876996430797363127865448832219217930135029813595374383347713074278921460936071466997507591581957852973464922549566887194485351836537762688652197738970480077547583797191561600103411127658953000224919468571339995569219742683949134116753909327123365419389883135465752375995014518434454830386784120748544250494554685897392851207627267262624982101569067070928358235805134597354350142567312125357899101700559788873247839142985823510974836999637257504325575529083462714716477016485405631003387342143947388264242129121491700786126435822028151011878101327589536616622196469441769046364727694132242849414639092224952709910578341613567729338936671279949642579432852858650595837747861479235678824150433847065964300303627007257898479194705785712718558297940156171943066889423640878710772115560551429885246953301177942525812805328176184222543085693890711751985467908932237163921425426037348889971117059785138604239285621658643356959122732709081530863150756125795772933363906257268226096653645136537384948960310737209470623328623519053717580870379129460167310382622059069808801502507166054636745265264390951816045826279515364087665602367965162792714508825979785599468852041852750047002817257086163051515840246929430499350977716127551198189285387639539256757821516962593955876534693553597005826110541573332425235513938840907590854591439802553425118394186813505141950321541580532099721877955920914042154456165592622814143959679904199060875762957358174517818576140431978863328519246880000051405643323380341863335925623422137697401464616876998431988439607651823187704170314621743732030797824818329680331527845576926404421658858894892158250896903236258849763393301616983370903055712679103607837286564921146229821902949761597660923624655925587197536797265283066226176954219842036580535436322760636713797394969993374289478465137968102491300724094601504572631487000985436848973368787750407035931561781454016822021074190835454207633457372109425445073618541573837375739498402643764492991517808501660412164791223792993411049126602373460745570637443638678228953860891529814073764368426475014415277996863108250574372450704921090788062026731033173780717849994615539425290353619566675967537485367094858737191488729650612380865286944809524111510953465253143351286984559635715615424835429751641385494919709780925174591051463155472447628981430145054494029702458882310251808417355611953881868871741325014701611951876755647951930102909891569900546737180126647587099953038319983501441149687964907889654761827121750740545943775197794755329042679061151581532079929463097382124705774761311784318222247591392632634578480506505623835855396163669034297198175980397221101156084339437727926703184141834719156343727624894111368940215312451799173998295728794003553225872347327484624938304001131447441607623449056792487492659098380036191353667038027871540858572001400686952216447904305570897810430373814091870736066716787478242281326102237828514401407086968419324033437862520982842247127905757955298289590764730490518096948769063208794104496585052908856931159150847153647851753963371829446578098806642688576028985048087958634086592877413818093817830842898864473162386940794804540184943639263893271431419877241062965360717913999917264743432368715753878179502698723232323670085576064791579450712630087532516836872291438818817840248742542589210508692168858188991139381165127794638319601867518214808471664767945809338011383367636652736213103902162843357189956971453927976141341514658999841103234563961219184256790870490264697691297976644857496844709018336665957679560659925301624395187885350916261437053822335942022283949133874832492229796816468679468783699561157756153053380401646861828562258234227314975798936915570682526351196667368492101390483837905521932997468270370934885724609090625247341593462885527161922339622957390789947865268703427084742495805172267308149538131174030885794248309014366906675332048519242254727132045150969600270799128110794213204653541555314306602600991483466696379105906748603915714260095363743449095561594723362946985896131964015515704768404308302950556146736294811950008790887076086499689906273917163487952833043912943860090669933288625097444373266712396956618833981060153606507729761778551662600506000569910883572707733259568249623265137362776315638729883750166786640753347418885231352386104976295699435990927782310755481568585336529493942103629112595197381057467212048893823211534150557970498395570688806856423379253088979775738745939332446353720796598768080169676314839868899518105484264815998180551316380431639977322414723111242455005083722857519498472648519003120074198546448436778465326938908189928097336869663374505566393718898345699320301712644122953569183259541823134414871817778062827919858344569089832327713021265565523772825342496742303240445913537900356615755101876634440177463901269149777034117722603033908142286319262549497210819996646172292069515094650832458940020054837051011562060243171109661060166479362351229533720183147156643037854480974146859175171259535310746081187874947032260954572714445932888511660225122488211275382819014570659234877427711515695825794874163599845629030075792675928244343586983794614719941324096477749113634357284841175446208187412424583300361731403733237938491028893993696656092051084695503439388187215360669365973128687158599946843690897650429772426498972479785705911898838404654001976633436962664767027456213886034598433658269921439599131994898232313487665715035486663771428953223966205367603861774076580795239677638807199675206666795274244056549633660838428543417449370264798699227988357544001846777309921639894472136188413256558454888703281974008864754986379488466196431642654083892631743715474807483229853135562307933115023799110972316436992957652635449345017828487142791940847471282993631222196451039162121648033923551926695116582452459569707542370596364753859077524718544306728736810699801386793421696784217992304564480102141948261325309472240820129264433923495677294691965727615996782311828490100481127988576452122055877498631365664605076255802818539400819217719126906902990439917130279395927662682663613647004385430363822927430535309706954781735089171659113919095811761827183837774160551275849796680868522049155657419896530212916672885484993543226535542262907738779660909212588902775201716358735030275305751664737064582755647484771118830786932644224714578571092267415655673835548909987384120727199060795634331628109613928384941248405458335779225324988771822928489959042735461022924847762293714055799944456893328289845455719995156400682726204809395881262372539288296886038932565639292120271926610633851977343683482533473121585986331696492353269152244135088725256263583586900990116602626288629878294750089515462355221722183689184457295077155489098060812291209880145633235601486716609315892491040807820654122484137333727724609772899237756651236957318610570460931671879309600796397343761608422145037398953765709107278955304984782902807419496943625542559223648186724734771470727576963392053889000127044421968588175401160872726087355877100418162489282072590210848326541015943478244174623387908564590016755036306149465480538519952948527337353421593868578413891208512943970846461369226767694047723130220336026778847043198035778316822165671657078769525726489034182673709910735416461792151585734970619472368413894240049964381176204690814494703703793974426951093797081146872521786471903713258523884404723064154466332258837698691068028958799104097972562231288077473064279404783474387849982585910211999618376973275878712356309805285070304577129239341887195058449826671352037508915335469938555387949495452490273925924472427013463297616899821937025977391947515260841126430552434261267010452599363880545863083700273778334824741385916251893293127255624668532533651744539898371355483919334964799741522885420925156160815193423153510295567881458078432975467559680013498988082621891020993332002351963389457843109024160505598345265046873916582480308928697750067235697891325738605005263886689825120935544189531636608992904836106583761069968929988477365094405841397919693574264401552420909312203740536394668417779675459436947252302153413391691215770470166582433697532714062887077285533917889116198724544098787595795282916684078300872844859118362952878555651535704976989597215706613630748690867237963427945766756718188848582835955549406533532436996703838071061122550066681324028371029223757264978752821610732383317229402007250553185797606237568083703333568771473080047142483958500488911583599899704165598190029406928622657952323374090143311042549993088514150889207785884869793994310412649695396086516713517403112522369937585116547083208684828786496915921993503213544881460101592333660955033430960560423498517119039643793982691665512674388796124613769939720450397886939953076926176963666563967316466698008891824561398809352811115153806075392230572870769208213201272270882543382700041091572154055751430608583661967209568405418334251998422118569887814096190985931921249554482049448564946973344503422597396752092719935235212397984289344541744557526271920843983000989047434344486608209755651626823727286498847146479806162849557050034836570631245948869955811683267700004595715497868847077489001189551012931310052138536706597480494033167233104009523749638120285560576310280986587911629191081109955090686157174240486231453323402105442722833292674328802216787198068238495404546393247947017302731834922759332590578953138496732859890619726760202429265302552406478738480539295530230897838797242303372567696171051241025110386200999581880438892596460665384365184814981981614664506393265658323405414794701479154826911967566640123835219821416918110617344329285246415245400981566489497917336562341128783468679237342204775142045874567636737624794100979232842578645370951686526315286904484024137087868584615940465549431524420778287310583086867521727707781206563145983229588498912291580454936934200720497661248483986907451247187917812503467784239811007206058787962890840977840219210443360495993556357429832812002402211146245833098150211633397463532279442703063334541827849839346367157800484855614176050583055276197720242498949716637503008033269888311173520921884569026866748675113054148787605229873341861439346436086149850947614367525679721452424453367229002812828258257664930666406635088096568273450015159482287488262322059048847449400005176506181239289470913619109293667827554160368438421411962186921299083628631814380411566562303317882971578591299868849330026717012305087884250426720459858493941235258841412810562722180833010213465750783842858919020030896874499986495321280543794830292877070209388574063897653847001940084856495266949401298053882395025067112918473945889928117226388133533956407599164980362454404901597891579120025676089981246996193418213480748056360584908730574389858882862213408442941264805926747424969358572614350605448285325775276009760290006932613938621257853225022070279044414869268800771591656360177215568623972637405472667110516419450236715475860416446824041346351848864661450474796075425072853566322335020797871551900208691434574134243824452433417388057172476803118422967352927002080328369619786066673965415382774525506642718606111286413681025186921349791470462131892637014833052084458469238783084508027324191231008505952254488616645284477658808691573163698560284167790172204753365797118102685211366739265805574412421145584379521108489571949194606124813991363458576799516767239110415982053286936184541381541618557438071057426688397220575474335336622288925332491983432244550550729367596813394234892059209451053495592303832991415582708314516757725739130513498062670855753980574853621952880900840688554095938187635713446247062061034745294102497614790935472015814283292195707093377571144418035536943441472396902056727138945166416639611564149114786953410632066196743485674786966554991784957017418542601428520272774681289887907732192588191315191215098183806136435702241946821838112474225365089761826538105106638254339175365001758271723172268086970461482314851808062072111572651489316704565369813721343685600622891202476031202192298643593413661210924317280598559480897702814093571559920707003247103316342958055558526975399440773477280121088960668633390150942067286695861543670798866739329179451052879220848503644905520042817401314228504172399928010632413285032650017776570882254689584062022041621368566387407737051245384066783435466412973073150386969763081365672122925991278539463457112352843188675887218897702027944559876734518110150668139018370234794061252428165207007556156649057000058428845764096077752215421795593241624287094370914695419894149058841149803456719061052452367255781866796220042546614709279058459221706583129519017112676641713230482483086131642727083591664497268918109398711440826707539359974751217078473168710361954651743092755294010127288468101335091214378608511627336586236225639651020367455958537961326513317433501734459909352677362397773383369792882619863185015955799208919887212004221064269114233736539639080584762311648661010838033942705018118153072427187201827519627630614388831970329059749888588493799330648995342713537699668376603359178004223632173383786735601310203968277011930466007903389614442096929087281180820625609551408379553891140243167655194404551824892610756913573860927613380792040945181585569942966368986513259742840698235324833345362910097361739717587171356123172241258500811476922288541893483823421252814135168562457981356003700120167227136960631294675633275410601344543046322522786818124969719476816279128752334347598135487352800091005907075469915119085965443287127659899415148918905798924025093351166874354279901882001686573461400327432445696380208267227642667932876284612514354639829162400892331398340845846328010736118175843434209223747513482149879908078401596993273150488919454315840480901065363121031300824971478558864062379394412192083945135307401293618732268994247673780796504835452802770434011904554985142050065069504158186537710321867045656293181777577044132615646475674942761629380942432240952202121561478454068127816254919782656843249518362645589608465384643315767884048509834704173477744125063758870399900747378662553987391003979781600440816562011285667701305599601684744033129445272315043671720269158457968396617183757125188543671020540326517741938688604465709133257114244800464504059575043988158941498039579087694610302407260993323036574535869611340259414466707793906693816567337075850636363764116114192297667452601247257256405014730185777236886847142984637212475341386982044933164977111775854725671137650132708845385771089531257579783067561441260291227654891474215004310848871590472994638067608530235855805268062615932264830298241985020429861098201452095512887537427168912726025960800879887504122052087120554895155242799546493372575316296766601856471522896863154842644300625532087551560921147365159812168375351169951529924147301721235626252077577859299485489224319967581421128400912427407216347880258372860529289609913133662889829824093978580057966939797422438657494724982807471133613241035561442436900088692345896779921420601973318237566279407759912479588574758330463899926001619550783309814306947487788213353027555111566873935989383684042892673530681129040262626220585006516579236125896932187041762613616839776869070705614432462607471465448246436668997942870834427077159650524902957183651827105709385728411753417008781911419278118679552217444794212954173962294999858361879651043950834439412799233217324628804976176230727816763088086960443131668455912316044621388299768491176215665948897073428107749331937057274381776116802258578576415974536240065968938693114937840102844543804378974795289361815775616433361125669190324756800161982276954015335968243638654374227777397527296810999225898272491155115396122704185112928162622847468622441109737582247268306933557044849281956692525334840186493211689021709133039153267530952781699980341877856645559957686514554009078414333564311833964363489950523975231873116393008304335092457815772328879100086904676711874659232163977273721972312431272151691185433347075599274904250499006562530424720481635228798338508233589453444218532165810866641224195311719191662841877045434058613711566926515724888710110031491164552910978118315842467823882081537439807864935921384383674807250279339490867175161486455096011602215551740044069030203266788391348146152715120823745235004399097574779213467700600961887256114913723297085625290046475443649538205674636962194829217746212685269306628666151023629314673813890739043178912913556917739337006548254868103507383439750061577330181203492181884019488277401177567728033026445385673979420087106673782941907160603841506808674089860572844357722194938179963525139076920548712175340836606887465633357013006340670485098567705471201490072233943705139113296450883201242050589531760734848719868338438249140464140069470732023393749342509791667651433057757512920487422520555239929084800833931084362864053275425553492477632060366979858251032914629105454189144149793536339389745912900730387589281350815152925048399655755805336503718669085872454032052820971690757467038542737199144112493041112233927306633956741891449418397785526133004021374004006263441756802850751841571803866063471668450127197875973150987894351324245420412953861966232459112271961801167734975084216258625883579839482894003290504469445478202689133083792396163809402313445530833987672799795657622121965678130042826389825617249339288839475102523439729619054861695209808812958873569928089753834429502838250074525913558551989886855356531245811537696484401158117567153684890935312810964948599508684936690403571395031373418693593782945381158129539292806506342907331645574719851858158493739565911891043122878317932091402138594554095700698192065366940671777519554769863049820360992969964174008342158574204382845786270615688807140008553273151577362091301584493386649592523960363239761871884745211394573736676348728658010772351258108621061601600076666035416576462505649093375486365179861218441723299461905335787808758976350737388547916893991158589793089126229514611030630854615110557415567817754984053351303243466825389840088566000988447150687500470273524390930053574489326446249660616249362178282524187479788661884030442589255860883782153191245801630987497515439541093131520241267564767320128023166821441118099541383333969224952691261619397656130068818045186284481611219669326383444380967297337879746979880959020816912561949673573204976237178674336244612771013374344184731443414792102706299068573892150729051558338642492601425356339033854602630858939120790462955705987982665523238984601462384408824187892648109226520630666947351308941265302394741539373464044289313506916634611459077806222033717343218068567436381243713369281783423393149380216494476242322116930796239940618355658047492298750000618849367084896711760244424026705018538958489533198128244663104009119132625797057991124064238430931665056162039761979903847769952413308354343372121584681154618983263208616429069349549081149611828599864865973100838272927969334278991076142523951856646682011101110490509013783178298444967270287312241054378032392312769801685205340622567590050012427321587925487466968094112022862564999454112020902702153049033634057278928052633930474577951827667612633043464406439133257647783834321801602097993250109458270704923319616593581024739607546725537991363597894371155895170480870757759063898065550602377639708646498516305172702611390954377309037372833439589296314715953160646544579918006233573195827007849339510150191730464492046876401575052374648619243599794923535815997402728516435511833210926790614094849530234404586546491135720435021457890197592859022390366500241228762507879858079373779327784735612540537517068975740715763350993378890824609455901083094549031711563886053010515428652275335318609475587828132954390111359980092599362509799374371928811496805631978016595916218883697746928634431886142439913562190626849964463564881978304204662080097155513268678273510798362259704634117333696843582939820676126491510814094021037713801822760665569529651019727562317782642339195775037635314293612361062071326708898124060232429323522770768309475137680430715539779401713723614778443247857400099340671380247164242478341286269107076363888738695108945243523449792710285819148630246226955464971840887594391745629538467569858999120321190111669862212480170736676528603607305610640695364379042739125847134530015516003043960426876423651754274505113776502325864265705928872542177820799456200066490199837564084624424006942656383110823577931998154690563485227800595288595175955876914020711796607122892706058982819502345562476315297839733252998067428121862500446780054904132173122608743818824783714888465380090191338181702033297370996047123890351355194918565257950225522436216401702375473966328703912828191720390977980475280942295760098334448672632388537634274085511665514400350545607346754814921869579198182501757115990430045343992597453502687077974266535321012062499419489016118208851125402014975471709543145217094102690079117253594579406106909881867258383099940434966901173223273190099087680509995210206017826895470347079527512782616266348401796086681430955613684796770561321923947720492238969088866915398697536605127538354319630908695242085444228160104791518761352524439066489633246476182079259028697947531338615021454416898333384730189300538999936669666419054034244413403730604823544137440874814313148131541448295049971801062283642445064903863869831835498914934338969797152427833062383674453255849918353773935258748501357899554988735645636512953165219787083729463133142200244629890021506518420946483570604400492387285178216361238101040013122534874935348935014668836541824472594866215859514534635061526933495292508954744711395152646833655379370533543780259450007271605998918096920711707496386707715468737783845601180371650829574512564096982224068752354581434788826053759222148583957896103396418899015017373303586570614505324676317904580621150423917755866775237271290502976828253450385338417767430053454293227669026674158463264164304899748237893185462555524411613147274956936025650010730359620616647705398423109914155715246563682339507222603388523097172952504551758319711273821899508719746593891337670665745834277388847955235203568870873804297747315291401738345277244416528809881474400546321605781621743181187367884872825942445833992478936836799330454351803300537836367269364340545122711186970921483966599555300192639744241113005483021750090864595485977394757870619025980922851220536923306273663222808038317384138927645828997597746778822275017780130440949456701808020180151869605113685760975159714949976605804545421813975604268622246342164646592527815909309709802884803696863246872479476047530051646187246255286540266364447272419363088529907011759505052411730084741870771186366580017212805242728248117940920601419749100740126977361868795243836465913182060625848024503690069991883037616208984416086638189261162181050177622833371918345700287352503592444527065217837383316159769100656124741809019906014360919466632022935572970838980852050368671065188834469331855510219627146335171089000463722244221832918619928413080849011910832138672979906969059462366249910007291810813391818894601157276529417014015561931228745154253701981882094571315606962039359582994775581844724561636051240343619698695433068163446078996720678827269813758998915579697976990233635101430844460992682288210868558049759422787245848552910843361736162959983024056067241997016782408016706750353580343231295090015919606893463306311754985814948415665666367308186713645304045951641928101444330422426421811522517342862995224304358486175380834020384763627883951520884471814470301465219822646419655260572405293869832982491886306670393719270192201341901022815855109504673338040593564580909848646513668473173980235280014179847106431880676241557660292679381635939309059601221223568224153327001395997744747626640229173363960970683709882999969436760552327712995785710236746091089369013794572865251954238427641094886351321393981121240829405073526371036391265076489257201361216660350973429899443638508775623331086590966118921898811299064846555421124724822476519059965626646184753987854219904736183374380573590514749312552066998582058288840122887006283135897142858584382870287867421753702000249125480660667202816588148090456290204203599056616238712311691108921830271261643753351503911920378450861145377877307263910816498393499158938745590753679594016470327139620822953109090213136966515059316759470961070771304824242406936901785148902196315333609466329957078950897133253034329000152384751432215039517869324690688843199661078030800421926547056860816176609116692813492044079815613803284015152683102388139647518286176364761682742735590819797048275591878692622036151082152165040298193960109620340267761551144674647731563880923258132006391853447835553240990972591602134654038359251755024966451058682799025439470272056503041429879512491032527269603924065190366611674576969802079235815475561184310545469323758944151593422271957854596541190098997109856187848232189790271337264762488038900449559569992703598847179399682110663781926783311798361493998086594598026859829384775128508915624933681128888234569619933665545703900577828573829363176978947144262171949438079700442502800274046528375489708130899146703636491000399733210219624638307301906980269452925012845596074893716383284138778825158732169612447815022191098977591399673749045683172476713493058773613961649723949176969913175814394615452720935022656919231377173182029746478108033452205880648345009083009884519123686372030094234511672846438291923186976628458171047813288699234822208490701031524473948248848038755621386887127845054900234952235471306732136334169555514372922813133182032851799994564289204645113775616677714296892202880925340080509316001690082828365054895592650486511704672791851307926038903640476683033907256408308006201897593050409801155216589521091679464924425215547721961012816511248048215436377452485034630989253538350848759967472652740788466182389299048080529628421364747347738841368632043622923128782220427021777781119800312085112994808100174561579405200030075788254534217966584706935926449784412785881106903307884923739524737446764526622277870220762283295135181319723782978923035690360748823235707878166210196003972012784400563655321343368948762502499205982282094237048351020705554180346668796927942459758518862504985230946340237264225931731361071041685218349273390820251683442579952682947195039707846031270618009466544716738804425671230214931520704510072789340359171019138030975771461981253014786563857981002488856597830406621475186454987223801432148861348886977476388407562613302911820743150476820246741650673557744466204784422883572960901252074684223955479065107982684929997234784343847534162948534729739368533444824577400352944834697338256407915885322170083337979608758576917766504632375937987012852603431647516615901427125230934687031737322781163803289332188979379775284010415063712136219748143566316569257262151852907021402702708368518968640815317449829683118553448086643268233209388224564631481199966415732958075519153184060085523206662062824743085561316576051302006763387107059289623128939133692347087872432946819795487435431867669791533303006483676384779397542837632035721411116272487730461135134382056073883247972668972855283163631610989760968347108175663458021027816066052364017144513707031799159675951950517848830499814160469507604370465382616160444298703010595448607440103722506345563624174524820702832162709761280568677136781806173352316545117262638293064572041908617907584899153512031302390428779232314021300127474024444991769307066905816164195191447929824362990440713487173294194807886936256192559001339787435245490364700339532660461326011266709566473690712103205118002307761847538084208192018188539525905239224137493873145403117382735446660491738658539828276071808178621193224511401941857879662769149027770334876993743351114688705171061006814204943243466607468463420978891604109843938443253806407176176205284660299305922830819400933996351561274012903287023991435883076409733340521716220672544732839581794196441622533613189163123254953816998635865953383996290991688701809445442491008168412967331640764695145276597223875164290869649460658014334407313770435968101587945074781585151213921100486689891510820914362892550916480661707072889368376033333095133670226443573794717592113620276787957836683510961603029703990439081421517824155155666410639813566772031845123931722432179904503388166066522947471210334961151589689905855476613864470111047546078277761921245400076824623146972963457216333509910775554456771719522881225189978679593181732336477331493037036396012426699155839021911211401461406687557180512150384665917786170204901466670873976668436751563487973410252822191649305712776374643931245072255456166341485355518405598917722791765195609064534879354896923643273530204818384874142874247890678682355809057048698484418709591964087125430899923609487690796262763339546095342089241366649636705856599578674186855362430652051943696748942352335827783513359062407236994720401890558408709008074484442869219876967290786809183081433555026176205048878995014984163655804886254487994307981748601629233374267507832615094698218669858986865205466803330628410041245721238670845211913228813086488193782836991876408932912361726747749451565816908791870121756911626218855665012342336447365832212630162150052419090511898721219988366640255915775871769452431145735696876980869345439266836081684902185324253397234855670357114788104155470075176432998101298856264488003166410887323549973349296098212486607163888698185836427524009790338531039484171649503083902652021203293628130164061150773379382400705024490756830261330266434196374088389003270427536965117967340844442812034446492080534624453235300873653121912219362486866586842680519007909786214287270576207391893146354284547088888628271768255089882700610165900735136813756584111068291609202723228031457447325146361521040919759701786113115121199767217153943265918329704484874857432885551025582093007537066151039912353469946856917513556677855038694953043147347646760158380097357050562127188695528737098067483042473846173142398736708908256516887184418822944328271905007455950534427349738523145159408746622979876607442280828178916034698981262786006086841154371550657501864232955706587002733146547747503061650025641035267000430109571423241844254163214598414045366656457408595210766806080566516370381292203702505777136452121657814192799504650663323983632422238690125966577899831105632195970873118992194138627169093406210067247021557118001045510572079575876801645143719503542178454768317795734053058519679247530009224679955637521623037270070819337568737206985172897845953626892070565106260815666002459442866249525983359062583342896352015437728201237031725594212747423930816363953729116392167175071410592070965218122980237929389769949640943539870468834559094015826946821892819129815989131500819835992962702071771857153401730437622712876059472172778456959602037844389805956957996889805770947906301827048757506014948100864568254852129460973336680767268018253943367800082851393719522809023427204494506464143429998513708007182679035411160426179743765259001302233503414156007372003515179653020652454700977204785157316545972708710301633859617457283078380686996058059884672791245297396734065793212650950793405724302783802755152393362569694427368772760923033868451752487189514981702376608106446003662290204242006784954828208025086584573192868684494382362266935247838204579643704759660563123897287238296852131780423531342511642755448911448349281421327179688475215520932692114558723895097869048743254166245594846139906019110900910019801490550817793024175050360657820761584787938924342461101255487227287730323887051433233048042638269822321560578871731375352282950606421118181473067237888553200613214511175826798812444446038473682133232409589141363782835793694998696517579223285183928088543265495510075432483148813218747333487345810125755204128991514562227293950165987868032117632885491390300024934322082373502936586303173303754090892439004015383230959124062779398988171961664184975365603634312200714069015502032264427561345302637730159304749832274504481591072930790841305918299075277263674242927701488685610453172094525906972260150417028493773641727430169182421487159607841940666447296636404862922459613866354705370333318395295702543912409840703905046280340177757604765591270813183374756996250041059848142638122746188190636493717418584468420848722251711091543189381857297248577888866765485719471859029723528758814806122757319923736665560613532617623986478940051144592365907087355017876460741148547508905103441165082347313017036997654784880234520364267984254099689150597880773165275872204622221627399263098555954506673119857403869203916853452805762052204390201934388308349232872834907259706063228520037932206761287325586533359191828590083883912629545802793475399920225539626486035571588246823611383330508361553713766690711490905193741852251991355957590229223291045702773823078248259055171699877054887539133047789274452395477339274124737326750372715529858380625616708565441694480127911291185678102730359639009147922798375198403149051833784192691989278731875855199048080291780405067208562834351697342229931466909009585625093548943974314986435345164960155516420388607219182174085041422349150185410955094947394908830462088498483165132563387036820783085349746203871454519115269689484959868573440076578221093493468319347672040593271160048052198671544879660626253341720830724649063627165171316122324444675335682440514110959012459779909580274365405627068043306549984191312619920419692215043066833892568136158708508548416953708116286708749038705307089565020548847867549707911364656279483939252549672143914804165194006511361129838536069051855284266798125142000727206704011256450672228670784997949756000018256771762631933473430172185184768017179386443743421902437516025001309327464834522999903577385000613323227399398573764077892265193858341857399622822770963290257379087587045574295290515577409364839872313637772010654975844110399136295720738720287318719160966672155011365576154353035144118677349295295806589192338976917715177152990538592572816080199196698510518112063995747194013227745530321530383352694541570947779024642788380295542837691720036916699776169796817935577918904489489919980222072071599636567420277218222789744713142375715266936763399052406109778242433128748517948802669023638362348434356266702709156741109814981139388295839376263587516614328317851481220253042315528976849208086886438923996266984507038783326686249954870575488252699102263845931631963704242647081874043590568277814553761811468826982097119586027550647601414519304493818719333149870960376271551099584210777335136468512340614734606537688726781203536783939190500968832026926054827765502959943433797558471561265705118463064983391885145105452472394321972384469722924274735488544367508281884548317022071326997810491159456071308488551673999895792173155170675731894486681173649424998559945481331015692476505111660489418924784401489716959416211846278920383760693907201946585056507261960638957210255077028756061127933110256567786749918422139406834235427249081293831610915524463855222477007880519445147988011122886536438788159396331836157535715206092077326064741172374533211119296803954357524380052370308011531022865125880185715586167603694703487198863924357806394981579421163583978129923547402345312442441418563535027985248625712704925893659970657186003814063982810396408237752142742003525412383303114228039796666614635267112705153443369249794842432682446029381994119555515597607267535875094479043264692007085114094813589359635429881015664548028031506701323569692264470046660017924733231773935978757034298546276336585274534045011891973748087801279992797135944538047081495215017667537860136679251841394823310304218792395943956752095277729027203578654622273239656466974240493410905216443471365834141383360435584119504333309436423588230513906297607848431589230389270148933278887737121458202377994464575487533499488869960740539433071485052522435335534709112481220986949365169329380806287518316214940954764299414794624785797984352044745808325485327853953189953382187653898946172551017500492249010494111343716676470010110558168318164187429355309521986653162228567221131549709649278998706617631700352547141683872406575574081975509759984383681854752201137066864321803228949731753650110654150796153936937071706293421391546225014276854214792562521895430532020660897777998066416316165747827261382004790460699853992647732480327016130574672575406504156857527735175816104142846237220128756065429166624669996607938551702011343767992377955871237527315736051730442145685769408402284810227828755864471210363898585753516552563745221936447739794073388758686682798291757450860912741518453203976307484779136060722391678173426379820577710037953324974909415587370821338107438562862115239639702352105315295243787349548401336761910240509678447375841738629484997369467785754376580763085613616719072778495533338814507485718806707630369436660459496421144361386623278274288811984188005286712973431209676762086952956774535217603438021382867227090415626583550577266413762930056357645330823790213045602385650177004353868340627307523590925278938651668445130343860853632531825433820999303665657435998175197409863526729110515874598714800212995671584497257791456805304473390961184696214188296477296229094660338548816376530136513084956639842775099732355926863582424664324487874479124061136177401975599317968188672769722491823957232544735506987850467240655030739520529227353227256037562858528849536745345689814236886597065002485924803381143035300363352035243505408718225107546600589619840215195692380541385857867271062746489480212835864634090423240368394476848520508331971735452949166235030875374179590076400539348716464040120503397845164228905839261347288945651415339971972663574280523911519709245755194896884790928734633338696791812285317103629263091225494470554783338413346280377351321318085947962184395816754391026445541605599440826985908714623109144367797039831695357936112740219039639600977306550783111414896469055562876217119624321995627669515861915404347119187361957109241116104685509014844488719774315812558325771415192833839216689517290138630390906252492010173674121907085292056738220294349444054315505478930641972788441200894074974329078282226565896471337752438201027094947833965577809658269912456623917491210103678238169327164492985937503065526293492666481436785213869230119038578528572190253693274746142805789701185287265311623623540511386907815446823287261886200945762033193280237869590071571670015566238282355145333769345090295601561928870068162528715013040926863184927210818490017160172570715173807866410745555742725914531638119457443419687506218428801706430084249036997112649565178420445721662522173353793256969262716570440919697972317506269662323421081245835706010869854792181524422196644473256456495853879317285449852652740424422733554963970384808092904307102356312403515468385434622756924860936521723138405483289387995653853649327999113162613584836172225612839580258677093955773770067250818683118600783896587010743865669373971700393395857841311596390436180293674958424376894423954555923559440047656777122397466505962087682674022770589255935502225766520731303945324458901642066582200238918472332828168863596119786446768853618404306461717841238534062984858748086709885719178607580593503196038833279365336922312435369310823567116098405391417499495684649272435248651479077688645084366575025847313921086432557411228991116863801149889312421327803088351048722930893254017704436651800596756054048991637713269748606980098297586943477309469633264248420174802031572803574927113903616918494131116540691321041673792196276961857445508290608703362317902830948164465342894519934709534835964018433625104223423789363924257775956492122819808774096978352304140244765067469605532999488095967846297540041798209038576419784795758558108579453644893112037498357814286562838680174486821510632105005623551256190943570533791141757345581665810412455658533862701811060830410356253873545876698120117973732395119592025704260968945810180611853779480633277689211275759384435806671929111882500406700819595369131565236056145691818662321639889296147303416345066844399490286612548637411706271456212535155640754633511675369352338960379859494297990465586056200660143149704009990243992311976277977993487201500009238607571607136590908601659692500694318443090940705808356112909233482221989820260529351031933529647045809697461761654882780418797711423844921461219368637932112331588424726822088568240002464248973623852466038386239247556226011118884040545172633906132111924382190889924026402515267378481252948631024228648040917469877183454684465402752948321350711740238997382862944554514431528657594446840758325541665976929736898814596424909215882557225852681840027913449130303100865259628939610902290425346561360308874460573778583390351006343116335640935367030033478572418789091546276011064897670999687769411896700330824579571500713076157258700585047796486604357008934201052470944182334847958738771054858823774385117151531788486955646197115733140933515588157082564230036264963077942021450700022242481537858703462364809747200957738664755530158879270772898348621642013361043985071197627437617184418076101989097906351249043254032700646362307008804717789236777485355842320554793630047397625265529122868007768739399422802517121204622828816764734011714236238619751665088130501733400054309720280605816705806130242329789088783031353851312258456789787012584230530802088411771771856957437022827373221903465663388029119918457629397207870439392759421921886614679680796882464450553534984837887982442274029287561629635050579043634996263302998193835469133749705441652815412217435078661579473409723262837744286580767306900994892057522436871670916010823802178151013649138864574804014310973166154088668377403885187123916472814759400453982737903406609848073843243444738529090574480281714026273502880422831295658110283991498747611797355824813838049168271026961826784024288222398921505345798933112686005787073413486245089730034946570214784095813556009292058315167455102236273643477558690934189583785730461409347450297946267809749315983170434119797842406834792277330789050445250127969455636550877298937682304008827085143835996593986822552834475806983961516218390327695897180251920747840760348989291330779365906327424113809074592643257385332459136389798397857106144009235039066419994899031341626514044235202070048291242806394464555290737878254468570694612316963348914648048212466161034344994228888429162826186820198402863299459858282353667719928624439497817368942379757514356043749289783563115748231268703172130581594328409340691732632815130220997211224778188401707447684315861911846045736303973577095674631195199570042498796618110170945627511460029652356791860163603601621434309014783684708963125198813977551281703525235886553691869471265435829247628082549753125442194474753409558017093905923601017695860100015811268057693730009094609023581877119019261150129881836972486999914588290092153721252767223742537097181743248050579333969629912783276396058255934314345202602851319090199121671740851985626081263866934735782012728346026567245278637720008889326326172379802129880713627863600731322022916803565861322313455076788095388170173080151649035475595027768300508211501044675580475418093919686548341753249110555974295353662351958401204572593967299782236251200388902419552715265011724773671632896281919275443340789408325359864465172265534625505930772618093812045590230736405041187993669197967439888985906210081673384509234069510594984343770026924557963924170404649135341506190295658861662836086952889497551762789844064664463099360894866052623324826721879940560820523173232803674218937028951070106781814526944471206539546177600332419837019956977748860921958238731938945857085953064168649538570539801677802861148538573111648369156149408230253343248471581597408153860716820528950168924109137995864988989274493569387769467261281855012451458013009503305437258336953734374078284858432665615376782179319206765292772141438248751996130264617051637911741982414011315114671743508331478749461584837270138252598142065935213407568883531263154627892866705410777624468270961832652757012057974598788198593179189279510699400137024291910058202326204559222031408674121507845688327474481916837948360423254167437599736374657917912263310739201630992434273491821209538100747261753570671107852265065128881731689772139298035377085140600037512687924450060871747448231421553535509991687438619344530600724813967671509305099508982959021696686221466236366283470669490647535742505957385892551294414126814076835280424796834646892702501155735346864515818640014503074832019111815143305783312739102763664786449112884682900681622503677602366461990226910993388881069600673703782027335799136176672986238241702374591427267576499868143112927926237639725960960778149439978118784730130095376871610512308550799983707440476076458958892200698347680950251808490654720787021307227281670424531983468484522162111303573674383050920272575776502680006800545377556537869974131876473827366522830061211951244644816922727324399328896033508370808041508638687858591719043329900229238500951918807927247642029236607491584119568391611864354698234872470492833422437887297489340042104124953177517653722943040365944602791304883764597740872356748772046612261191591900115321573274332534465738934890719655811529317143225904400103038095692220031746622761925968656987762220254309474966231695568697518513789039011107823933429859430828982725980503857195737071273762078972194370626435050877856376482649076183691977662778372291944348788111868887114138517075105362317387529108444584716509442706220001207408479748464338707259101113602187009418058322398264953210372808803709644748500953583753280278559802848695365691500189367045274890736932081401257225584109615920218349909980775464391928917646833033215190847296679069812590869055052899464003073285998077825595902776179709720859708708015254985161135660098734012565791992621070923556963030897402331406660526907387658000783454384373170811279858213426690347025172340722727710811268776389486196557242485456265465758069330899109493109298440747126576585582353236440972470860249407500880446097955549468251475203614002134543552748173239397244287585714878483842379115085154400138881576709688878068382571686358807818427045064813122686737395397323328739261103410405997960273819121460015778646747220673444957165241794248073972937504303938968005721603211502380835543191914819938651118399389046492229569095699696029820892741466930066208016544469755857033457056443679542732913596535196133102544296066021495349135037825296313261398321666578045271737927467704687534477878472025809603526850574163930151621831189093302526664665423528898459651796049060534202492175418504979842286570884753181306098156332271548934783107229235944173806190538146207462129809978402217878344497120888117653090559590197613794852782947588954775767666123415068646338182104117340562873570799697532327606990284843340264109921475780141625092174705161058112894394110486260976583762052841939079266992785008493750249755446729098606611599936257097460177261224264026340376222383524832573359232009745232570675764381670491725014192508224826590738921972119539088822348565441866246208696503004288649916047577694679732955958996324102620442143681828517108551607460514709155985684956172246458689465934063588888923434711057768848782771639649136534668547386670608796360067865027286840914181579540182179871507255650845906021862654040012631818250833640970565063357013483497722457850269299589914694579484229416549237610717986567009978905289756138799726821895352866447500149760429558781410548268562702369951443767907354495175539330937825451695636461616855091889926495088207984598632218430502642504429998098233195182668541136906101437650428173271262377499141164698146540858883965501225343899363159000436363250301550445867465472383672562169584838632054988993784816055409505365556370349794877520406493629519953782279844521737954918595977246224499126522360614092070456793423609911435645090408491599264576299129135622772748199749456766435339274884423926295902473991527863841088027040031464149773127734076395888741231459727289580471526097732893675266532804153347604158265456668179772616850726929377353580355557938739733167779112547788506227414938008946375402320736396870173805423151210697952876234644365643506393079307719250058264033767702478135933303381164870719227939153156831901514156163210551964795104586648507352920098162798378062790524108060189351047967999257596142265137884478420565180792437802305552727618423769439036111365986647388110994011766248087288962302135079888686671064925327601724199409791653976052633204278336988109762787230236741485592940164486448026789378714508917216152051267521377515647162978377440226258720791635474793287235875193087899332163063878413107248928588660401006198658339906883199114124058420507493373706584245360088143079096128901245856637742526014216834176528949855022335002959238991892683788073285045127805795943065247559936843589064563282020611106479619858609631248231263697545472146902334006215733572996760453315552689481833979514388083380064919977085932062182843327623054727550871923332938897469755333856030066566804645318622488713709449508732510325772786522469738768604535083272744588660009835598092360547553977847817051875941740153197952251157636400212123068686181502932626204323685843478690166385939602631938901444534116153426837061544438918784827503713012726309066387145544464644015546750894296957623453418370370732370613143923813637550034377505147155901917176217795893734157152009297335802598793156819599039620816452110441842745438475995109053438878299333006813934572310086558800992759660330520211817436847978150274604645705649804557494504302517622967747330427720892375083279917629691508367518439830097419333336880365907306483781004718553901532468120334568804169223901295666418616700128302917615326254402460274162574659117189307991961484307990222153019053037397791099427048840292645190583101242456062325845883658697616994694448896523056363937241283718769065370590482133366387477243941352953334502283551104922069052148142712993117177335039575434389074708590565405960478425634916864611184333901636452040117315580535935810449650081872240004586593653767893461155235364329705131973876836650573420430740715899603344935000164940133295117990013706883332840978890767183879098000282908123070470176040818534489335298816753748276532678425371580630788948882369406126436368329677178646049607819156628511008845362989286491719811497983979051221544915994660516095484936687917842268565296879881011704610339449909332073033082269483923863799632487225052161608611567337774431237134831127784368328684593378929279912615418850516572541618818179380634586864786985785270779706425294310805118073983606905977382293405108827402990447397572610164389993543484184555986478772870016409821664059568593361127256941346172789640656782035099061090711699118144850049772995163153501208973156070522479640565173203707741120400354785211790408960018106263309721540629923680224995937841404579350107382796075026754406631720519062214870166874673478459684901212505977641169764355818647273532346097672958026445616044298458852454123848746224004171124899093093149408731235702243087261114355303795340138835440309260128899888329258112569470359278203445468986626748546339133287433712899235552932346749296218061869798838542461273423181284357078716340262865909221473068086189112237720365018981675609170670425255166209886921926813400527342350751536932930527771719396217290047691445768659305818499690734326794246031848711072461086347483832265012999579530674412047200823975578673176413069800983390613929371930603338748885349268229309835461969476638108428178971885852417804008855635266932604923168483716469252359170319647139644443307927191372052656830027182061548829103696168935463796917815127334357994965237647931246934857030993993617526088891357708721802117718441908587517504614678011804864970453237841343667310920088124217165831512781465798474866036018582199451245100837660558285673804680558607483123089576812617891803245419896640465512762359936322941285604871576276995817420957675013397448059320364046525573696681839698818616473297389302271996550709721935789141267839206921667167611870373194865774691696948511551695347692690755653836701706615922404855346591009236313466335946413772445971059374207185778444298282822431563577632183035956431466241816715383461763991958376075327423637237535140737622658995704825451625258778548559451841935440427080334016615149583600672717173575428480410678559174223185576853015133232734940940794091524457275797381170477473331798685155707454715427581984317880875417921912474161769992642894135480464828858022877113868742850677826014980730227399586638973883265422203839599353424694943373595062067085598441723168742606497054974228169080374264049615782722027152204358322631571813849913940339314142326670032899511120659375439254266881360632574698620265532681534560416216596757266091961994474386329851592989506010670974610769021234249266941389288762520163696869336182438244938360502046950632595974455759596247830072790277006280292566933070671596050012237828566751101932652930476318552192098439411397341064640013469568455269145525071377814266685779373036295099047324038007135464782265577464785513862514006306869148976072147514912309298251478248429856326046088219792180666576166681753450617516442619183074780953238064091257071661595568201592709962337235386825562091640044555063796401419853094303992221701891581648704509769518506218873198673532474049986579353101605218889349628152883927007125685407609007711267303007945308352230981993133008644055694908219961654176242589397388621572999224062131940636127645891374452790120096951628474872398916219821970627111974008152520502886389388070769465081811744296872796765392498255818867231672237551016347747574456165452493268229000607905919860364820383159928586745824573297635529916058580597296078470239899233728399422509671746697211457301790803098522670931771783085884633590017984114394705862994208995787705192766774296104526041559430348532930439134029396691542286183821400784975253874240339026122402355720972679389208110437894816748467685374615085876312013713243009499577469209880044657311332896275078692822303681068805894807450583921751024364610970095668680085084043118528780307320613839019480239888061243236567686088941149880844550932157350780226972713517777749853307386789586533918311079038610878218280473759897539118285408710208835272587798324743203824715682894929824685588220463130183374151280837220971210282904380456347877060075387687023733073226894953070223045522017595187600865711398962325618403562496741014174132170079569316831649684154687325455674139652086633857509108170816078429636612210205082049080986749892840540421280661885877677761447785536373556256294147004908365763884271685409553234131906332489508696369199044260920033438367915799546357617261503172358767585231962718105119820155681566398639727643450504108395418495812853791025871256245141987585913006313563674646429190495379846810372288963962622307548500974844143840280002182105136746806267532077722927948945687291063001311797904946888436811321832310650345322930605735562132852412291456338069698081584624431880873266035200427115579774172292550782527521057271948389435167534744666077567076010241891832780339139516006072119885085614482409028937332568547815479657013375711687241097943140945860897067074260130920240612637672999199032796117873767976208484521692052664418369745073230215422573827096998584620377836461911606302320360950532424896544385182793467131811093410089053373386881413318400762489407492367066230177224418102441572879179603785259455707264920663869730908239894137529432202018726934321649707635239007583462528370193871080557398571924660871808168449202260501842348669445274537741430056414829207150155951937634701773160708258968971961666903985875971673616706514122048430280240356049663471702895269400237830922806630169713291488349406285719643447922157934585985742820869922516658478103925813767949777309380849257252243170351135570078669428306935783938806873366756537564358532801370485884933728304602244771010102245628972923722775384814073210836296644607854715522518627944803490608708648175465803531768703061192373739533213411470056641862976946478967949765184669530905098953249050813092712416252620397809144149577019229352439674503646984429722795868988845675366520791460998217230709086187235442049590380775350906745460307823580202609738650401120592685693192632661785330112915175735903509481614974881080620819204827029903115079965345395620906767956951184526643489078454954784788034830171139336616692057486294091086892533428661527461838602568166267746759428704638992894991299940197912532459753324354525703524859853520823640984311676301995915956717375022025475193791043973526597968967373033354272668709299091723472812475028240267895366397001019188681186308744105110179260002934208783376623128417023725421765045250089715593185141949911369007422202288860798510846463188871155076589584883267244827235813564311987556519823751813353297305046190323433328486074745908108374753217396490968791897614625761418422171125749029740542695503540211482596339180289747267041479445265549476112618272973703206076821589377275414179699619229501907076087029075970844995233469461853601092209567852782397099877417563961288848754983831913876840114037049576843759269344966776323775874366751859967755170856472712988892115432329514726763247631144679258067980257566426883970615976211647085489089387571701298747944465273802414202132076201712919419219924928871486218372519602482311776972037651186297461797166664201743858392366979002497054163063686428171417575588237054707144517050159799599466820555268756221010148150926971715623475850305812417177867742635841998491946124141965192438490694853024680175332460349889005642683086713468235330609238509415186937379606314864135125786223709660789181458906907391355773476896870685783451640782538843946489708269247987930599559078593134048776755808064358515073016963875253895723761041148889368095154672492215914521448261082438460604451942173805236257171946154394099254628602947666921484210979842489808603517894192538904713708614430296249761097936851680657438936771932053566070398344183064360590991794754564223445596664929338281219304794072759195280699699601756664008902061499929653556645583356467309336486928703636643752561908581240855491443688510934403898889335560443703693008264193580628903112526443827823227956683120306885089229731536647546392705906210502971937111263206497083036329262480448862959765853090765677795518886788270147976729906857050588224468349790159641593385892683215257735481799288170733924389623567500363891034122712667692133500799586470602395528661964714406560485437870718220287890782420961739317985399860967064417717355407172000410699381109273650376816036287040056723091089777017674343224409639054336317757324486514531744177651663026903954010820783609003699506731782169887093945106430065121193169017770943505728625253341451997476618343695297460552972783243435798978090345763813519274549626447372216534507437505624261027218163544606866002873037342723691935962297596101423141854917930930907760461679646312475807057431730039179047629362075983128168716878808499173148894362190392481769553008489831025200049853695678890631411383265509658392476171470677152100518970162831213180364287929676963629040833782195001244210387192334034839400155843668309183842906729544422364017052328448096302497978571959627771825339553681442256820558190089231977871842815499236903715534870102643077211487085521843735799419164558040398017615737087380265814170211339825703071366947757621003759689836747552599568166188255737821016275934375425174695825890828688307185975239549575023103454332317299919363505763547268641024500075224255223900283629983489326680085490825527378544291931276848348896536982643641032165761518479858170286389022471258811345472908241434124997094049771894859832459531504465289989758795864944085883050419886667787378693365875888802667029434609798328524618648717633745727681389285132334817073410926478920330409492887927600360178772631049273037742163096398996646003389722141718604092807578956693627304810004767708728876663039826676569218916688487551085745731620910700139913189053747453670639785780503495742938939914846890304923435181874909410897771394920026637451964586983582428506861039240519971427359432680076220276456436526578760098823111731194706219961340070603761254852601067639993749404335964970108828765774373647324049163375710777962643665303341840170760900464914182863465900244356171636565334535387123480242738933716192129282230868327496378025885206141181639164583719325929377953854302052833181825036018773771611926226382607275217543497443014452718952626579427397895501147722120139279458064617974396346136296266606031734105500817872131688938278920443865161554574242441802025471500033227023298225331101519785886227129704080983022306046488541408453429283349879156923816241573859035191909873953531199720119081013636069355880051785566836390053593137280317044527554354552708110602952106052694711085946673191626880590553192634628767867180761763162503551810261338303724145575288798205915796548623432240026937752379962773631338759359988777547229654413887865144261487821317436128073979825237758081259256839501687301851684245249365108296036016785541206906594725441308377478223882031695883217439512548208738797325560916715907786022437268230868072327527199291371607183070997512011647846563345045054932578663788995187668930815484735047936408689676305571637433337826560938619814930450552125226614472771630010678795592180210370588405793965383244909118430554402251242347353882518944058944340161236751982130262195424909483368623575552814374460624179355026024546560147378636795936892781814474387124922136256217969598502351533604742453319860169433052822042229192618303442836063099755625344839974376825866206989148994475946940778475404832620729424519696022632747561925938119031250089249899542142678461516151466914873796131776400960507553809505610909523351762622180116503789066455381166228734854590673205509486253613562030479470898365289211192266006214027150365759671220457255147630129886553128195300149375067713751534429314170491198273596909999052516907003918129959038520914945159124751350505366601710664283866000637329523149501055154461170620676077866422571541427059393758812140895214942990911982043509777320746906513053134862558204743518786414944853005437939971981977927910491739155774877878106958480720807544491489339125839767495473827027871325420981543087671646050259999669949876138160954377115338157933134600495315313570463467849751916878788606193857829142728592814728261689300684957952659292955419326246489528509785363589169419105421078238030927542285155111251828192829730479381012196975444527143060859167918166912550277824344206058639142411716430999294458591021601066546355823910527465806131317098518088182646914689575793296555710379535805306613636238887290033784839831420195982392063348521249125966305702557505678752860991429949188502860403247707368805891116292984467221660397389063204867149805937346821192966543254206297991286477853513129344368600257856395765639565687164239344359839821584259765167646442400168107187918031097841643750563153866789494362270751636193032508416997124359626056638908539845373505660425067511432129337807527815004598746504813898851276505263310643411628306231936712926967379115871555798166837382365278021348112851707469389872119880984267803062855373846152577255586473076532962585891548002731605069438947013100372099626520472282111585987484633735729854520290695853681149680411537421056872542833022688479224906438443055179655992166944513004160654109577974619682273190248132437479538139581268414323844364429485478155290644087859200261891249203989008333340799421985813512627035782370189299816230310746818431187075213055042604441144895745717070050819789842176415672589821276469035642845604422957785541560728094953991365945474076215609406135551219272172597028122026686962963433385077288477470774380604375759355031776391525680333997353823245499978141639766599131845824596488963378357757463570555586730695886196679805912908014279818823010349251049990202132049310858970568823579642860769622035427930339208789077903756629436298421994786093776160982572229862878259397951174204067456807024568544167068295510828931509819872828162741646615903780830592061089640899934890845149273391879160896165625349818214769583403379528241122897106249056654970967289814739816162791635184285569903361988048774816941697491202011708360384950320172952000362629403352629094734567410766946981017807508737538577622819688002487802838936000543300891433027479349756292233754436470127356846827236231328336503738886582428768329892915302350294109484880885272959586403746249707159344617659352235823648406611140044795862791955042092422529664903687792595697868777191081432161905698158887605788155364245874499697119141837795869832798926201044944290585558045823143359515764607888143613151170630044270254066812579314253998333655220904373989811300881356713141624909943747048871055690599008512012939690371107326947074952468483316517281322530845814628745991182543906038272473774705018447377955025569590339463169550278769595273958510809968894075931740637412839084173014510335653927074644138611879691816209396453046325092040554249626485571898224932935452363737660055604641808279467184717506505543296170537155963417790072478768168649141040696853032466410730409142181962120174855125016862861896571335691215375428453132457984429249389689696718960604016547039681643552402415649424759281210238976867375193430881956591137067769859900051097119067791358032398799974565213629975955036595548750221404052644533592096492548245575501796873966460272157312596281777740859065135103895436561825666350811831509157463118633593203536229050570251017623763269905816598843172132262187653693526080093489659749156439134456797462458783169006089101993954322117382292477447084021091661135064364037987655359655491284124040550743289356330502602829836387266066910888432070848150104191130566641530339279322152890500879390634575450480812715658585129179997369864225574038478313288429552013395555157083215661541959503796949964700157251345193965203963565723030474421282993566589333098387361265117248878637629234814548612649815766416981973987525074008648610470955628421400442371434831582102420179408085513892248477590375235970433780405520727188262201986580087068862040191842970778953495718392027615801417107682363886969364322245563932860644264577957243447891933945292739685640499832661654818924050943344137343407013274849118177448767108267663920553157828328222506023372571854452450729612555537120534867248960740788883117546378447648440551057368685504350263123653026346215285887098835012162969682691274874745851188622197013035338802677833323099392503063243908536162356219635658916003936008328381701398252368561725525694793569069700972764419687164849260492943025521755602681683036094616070677605052707632869459568646647581716656315690674395891685022421594583085844029230585823453331725073988727865611281696668146473633017912785744496639071298306887718661976631379760396065351626488726042785172752399543052776596020666686050467588807227971765914589787506447698163643604065395452698631300583793976351221285506019343609205973387945033881674459874177638199541763134766293952696489294023460351250175469333670571497586336025460650338678768770638282055625978272888050275624649106615642794704624622291355720631828660100905769606588135982997406766467766800677468962462735991756498428632165923832532742569233872081390154370341205983099699856426396870607012258070145219304042694464511365263359862681056845711309545844949115256280989935217103499488801405753897503024456324701730800304931961270516314840634986647025161614496608022181860793196679331244040217185449098791615669929828911128535768400107976961015336573118544822826938405356777612849904978599126068755925086093944736657995488076992092757360305697516009587841672663041566325464876926053364188475238871057525165705954717776073279096819610616420616055518950333471538761854666439223767118688632724263247360557318696793595828869121499687483767218638301735531847178433191082216963019580985379972338366572216106685091555206238012692408871953020977036074613157231744722252826608453878231546247310169725231114118617896394938406264259198329416675503962397876852373561842182853216110355051914761079207594809126039746295427937857542309246243538954760125858303187255805675227446627454988674460404555545378304306208726990104487447667289804055144449895471523767135003991176645713931065631206865950981592410125437817081657021402635546262670658362095806347303025276960626332088552412067147242493787907136353472371528643367953729274124684682666365090465004287944181369702419742294721549160194629176261901249142501816695457416388753048389157733816749254868854817801878557552125838111735203112859496692966566731076333460640939892822303415006931264681994910403402202454828595690608769006644589128665569588987575470994477047650399369826537606624949835609608613196550808845498436148845807128045946897190673912211475868201296072615456246968348665283506858742107023545441353769601031452098404612144078254181269487638229174957728363286142368893463577816757660075990917997676662467349377999942530208311932942138933750392132116246647667018124399003946896154825680492493069512120272559646645479808879359547421577764151158070853152448938928561014619873181592578379244888866816180870924486373868207195181498864735950036663213249977404758013972383342630780336479642505445326942857815650886589554061615200482653713793431458337122848894852343515549131643375167577520440030708604378086197276897655309005244196253296721133130947696928852894760874610342215726183735602872580071930061282732730581100747274870932347582096925038633465698615312899782837259581414366876190322713226089929109342123321500747132538877497965050800283065215605474484916127206899282126299523821269823374541590320797973858241207135460483716374402498073031455609693384839673584527532086187141202293502178968539599173645858150650451900969252206038769751515709385887828970574220690512170315994265058786115299055472432136283984986676363210154115956616728795924979357573301930331708919571314278033234420211616462681656033908586840615365166211578106420692371376742069444001480583389369174066447905220139372071260784352954424020697995560128262060653016340951034079095038782792018981691280397177135476955939727703462413789838667279150461135450331207499614036641417499978614705716760173757305986698483585318942302941097440863584880364403201321946779648317864612687927202848425177717647398605532734816018121233286658738780180630193658426708761392484332537126048629041357223822444766881497995973896968326988621898629292468890225010772765009808872660774738290833617239115887183049017769602227693768890525514791932026543878904180377502053830785320299282406487968207489602137634622593900105184777898630832944198640737899063546799993145318407537095627304443298220394033284284132605810154767052080184345660026983921268750474300442964424484717058703967656177841930588980043761725981098117358412250259231129889963377403067089746680635852462874199442272503796654127534339493966101426568493453959242287298345814276523852578902129172107382835384027246260760627934266735800839255484148535369168422258029713705638653128610170828240614178571538478348217751515957882645378502757634288892533762025657934980323283327174783782377507719770806681581118291150851183040472692108434994279686018273647422403893985272786800870242892163552814373086795375801114675277617421784535930197109186426871641101316541670806068510110437803884647441375652491756533136507269189353081959561286219994317103096451546683329987739857000086243721228645328066970181127468374710243786877728880889881561267024744449325452614737538872664256808876643224343630601813971358998271064363212280108166837607156077794479255305588619662866279579667406578648038913631502928832384833324002772197272626688935785129141748530011416334541816982890826633696685577419016715032512767839312528548981308633339923682635621231805986911844173292698437171804353747864000609367118568009243110591476164755292764966162402002702321297020817706022067183705991588470126545878507749922144207240124922578312103534031480890062217975492708491240431905697023991534885750372600277300293993245442228902264375413522313431456386929256680828742479056496576461826550611495653596150495478261115142139921683030475033729921185011580480584176101009351224701376215974975140316904109791842135132420333176389981796026435866381184942095536333203956447567912479987107291841289522188663657844299780784253035606260016875357940307861377592572722448853694597296685387489320425141513269203798611959596902541919541180608530498201637946900958356050424097265582352524152299470506052509337628797592538331855120281788285600827106365047737095762549225818734223413174171606884134363991197868561841785377393071972074373898303951177288726273939023789610834755425325812555132771112569663217535532731084523005710878069851698644654668495519124365459169388657653757225771657630048479773236902830698462466720031646140714749322980434054485049822009962472931075492875131091876392150364757662653137495540481037849209496632062365470382606996476754131494853246935024361045679275741208284352015307529679469131980713766653499223518751106695246698985889876480274423686818879451406031330772187095501663319269001348970444245671403555691342834112431267468609207808925548065929674670621566344192168138016159015035291277947018344144204358293341045264106950274486284628580798797323436493886225603361638330630542787869799723265502624086750122330779246854987685721748517657217961860395958651466879489258367780571851216000382986699002183297813461795790912947536821777734838921655552480999431799144484823022956689869262073647875935934214107948854714387244604839432375540321991406124704865205266448680692880032084318258412210898175485510516290391807657028491034595956149130263055151528358291369683074645126666177340178644675822195701767353949736402853391531554619200919810007826864923638171547799430504679806316885957476489763972826596181355082683128601614555373369657914743553886985880081037986803548341198644203927983943055294847236088139230857448471091110788902010948383797080135820926970747256296872037818026479649326409478947643727213634674687935787947371061426701673899361157375961335459569426478898642371289225198453320861840920836630872133419383073812288591428835794601471621373921382170251505975273360620875160979607090407824054755113148289190125147298557372700108358969257672858287992574934331103750071999079412213112464924723597334746501898618001770927186013046054324657870003748970315226066146841673232948340196960590991019295825519540217729889789934947524521739186911705573049240709541030938215216464849249958583799757233924086623156521800221030353970877564949121557746927013784107783820765020493013814658525437845847082943815565243302445648975577989828095116011190530098570649645356523626361485157343947025154268029540721225614901841479794907255101342479669609668368647305570207552471370775792495568603960468626327397664357220988780541980171934026001831456079563087058934007575974210222593192324415685572344698888993137933919106056949079956033100736542884102533267746136469525200072388875018310326573921885280857454823587776199548189587874924548680733827443601120051061869533256226369705935695375693937645007255685893687373037016243685696518634163441791119409833141140796942327810732979025497301684070772244500360498173184069378392978241908114149807617670030183234248434415152906730081931788439843101909100078534159960098188813314101171624927981172599907916920939306622798714089002432818015775306056291215110305662731542757142652659428757607040638192631998365388067865925765317197229522485355871996911889021132424452835240423039921157932803026807531100068014952844170999871475384103889921149133570198083580121980149036952710364544955475791182596178065369528116349912267134926550623787821063766734034877867001498332316492432272374917562146447890699058832650935806241166490058039839767604620963695565916650319958426880552577343193744860992504126123545929778406842976424673204011895395240452142324182788202906824429225287514447006872258464630483760619517790067569454039863706424971346170148099792084594873430475616391342408585394442916203034973098006506641739215853950619910343828054534863832366320655386051577831243795973822006159889488669771400275866780742178395766315700604520761925066401297762348341507259264819793034040762885253313528565887395587358597287848274257034886590711228404213641451149877860451892803425404025150649435186723343336305961686072360277548044460115303592172601126048966452745196411457149938188612028452226177871437324629130045047591901288900893147764680639329911004914533722388241977884336740127122577567907538841309344620943544581384875545366371782230810140964199346222230596885405772249621437101027817008012394242341258614521804457421326634097922677058316318463855687209427911265885858441759466129464768059403689706836660667870631810955534535322640643458468944340013971235184858849102881304388585158504276148181899631810847287922471066485014892070372803889835585080691792621007399624626054250247039726720658161245498795023881931026643337163985613042088139011500994993115982112476472256686783483501439986239342977310104603107157684886257368084166214037497046421457506675335355542405409043536248257904214421651039107449004751383112757181996049427762220563381357450511173518044240738016677335503868905737503126462216791859726581646626277288936155782805419370081712362416600338174328508517229264147929364273524647840133573482462969447185961172037813525006376244465432574994511206618745202116367967236632472803262195789081112916615370155276431472449423794843256121274315033035184458691444324020196641060386971725935856911720265644915106218161386108595774257737798812319004827864132515174818415206351062145040965880394991393668416583885043075906749660898757967015231120664289992083486323875943058477463987210493528516794631698297285229120370379177961963563348572015070440449663449269623242656125393444898524080451331198404984740804037740731269293751428564162547853940888462135669607997467591445684509836234292035749788493965128487093204186097186923566160895855566754380321369276130790559919065659915752112364951199560403703475897688102272510956952175585786985413695334622153628000067596519295641363766871766475773750612949977087464467019111629119131918849271274561884427623035698486470177075552146456452314266806455903678596314442182615597756089293050996015002891476279010131842314762516121338765000964955013209971297660987212669384321956242759914711703822064525039024923623264356893778114503345789700428672027147559775386754515376019755589721637510987564511617628912090646877619171103236266551379510438769793021510677365397137216506460286207659379739967083579978288602350914011520437271513317182878765612192921005105174799424502726641358311569139760886049347640325875120522596443800338023779681103589300590409537781794564689623500862040130587491442124877647443712737040614330332609153787663636107705998979069849161716901354349482451968016967912027882976140186201927957882698432565011214664576261222304973875854055809394866783686583508621144043434029006882229708277312274582669648524968648280513380113186064120736818558812125579915835315893111584039453042909741752778461990471197158645234500379821723567745658163980979402367122217056225128443268190197420004734308050963108842103375517948507379778199413275208038790973512961169982405533057894091164226331690010043338903329876111235744532750199684904507366675110256467461376134697136905416434667364631135964420177185941768809647590821836160327520143036973038996529522029647875854715533963305125409056749397045772530387288898935212471819131430627719012876122459664559693802805541630246932719558601448532091599544571659910016329725528173319357625969888555437651681907436684442649611705759855311285759393668387974294053934045629742056352996868645089996473997085427514111600033497485742738628916641053483267618166286930424800072239819516859873592570398766701742271465338129448933587595202926020463099140075966678231731672025339539664212604929392225555724659107595340276610506110765751432961953067250615226834550186641296187057661308190420474719986192059186415012142783438640193002369713552196686544553104345347681052153813398975714356004991699790258743690225245945438144467040179467720261710952819783138714784485146825244225273229810849862767499880140293789215610178962732960756696777742120121327917065406469081417081999744215474854533871381575522477999614146285672788153597513624013752182957939747937227620298699587639523370903041051620332368400900656930467648322927667360564422599964958857317160931735322973571209275255661504576008897368399971021116941307579011552501081498515403927568241831905566871471924924482921395125154036710930000452313600343002213895329583721481022611988303150081458821447889805652396462061703407440397685091088435559500269060015380908100816262088818115525761338220429409882787527572446224507845029165458611341421156078277933102334604688144670175965765922373817715552201181045836258642371295058473612285361343405715781701514486052340959355610870799039698248709128011946667602275469349591712995535826457414541362674909919502048849918047670205240270299399745983453321389892665164728931177431623618245043080193289517862667294990872694881004113090458126711349692566249611131938417053507911040640479801681413074584115034417028931780549765027089035417974355785292819554338086216075199818539500464127671514147872185991778369892145967440127384442698707343382755014485782778351760216791335233205542302711561076663789793004900585286095536270162032597621738070393280275779183746242236072841339470130017491690012211939862373931918116654412850954171944447151443575847731029268864497881062578119283470400756404849853292941040325882268478885222742288814406410268510915710978423566735458209668290565906078176598322415867586601897225212810585558765869820575314643204446551492187903498898702303601883512578223117944916392084254382184667075287934854322394149451716679734172839979022943931058490182908044389521834135218838774188633917945312258591672914036649956707199195721653343085273987741759010085368829936027701845256399989653012572898528420973658224451382694710823250321511895150047248646909213089586289517339330533947740546772017491273878765559073485295480348778167136318002727280016501252665330339553876898588431727534425640903633864373019343940929859518598280311259288366391926281105308671297709726300884463435346435557695255385645131014780473036041194317820627859867511663476044506751591627731406988141293669933170435806913726131700137943545656020676719429722946560049552595820690439912763515429650294568224918820042187348816705261166773095633896170742394461110742883712702187709018263527097756314061986558045231433306599229324219401796335003953075266726311254171097069457406895669038835951521276060870754295734477441007621955815935715305437047474073809563531813292999151136865585894246527760804501522094168303137421596335971064727436442157155336281492725439275529689638633736513318085703134887628287498981500206429098181893493856807756780259365787492346264881761814403792955672908025250208018303243500323164934758557107132717635612856700016011496463339121721298757498610065566008138879677241559522957718318942313331753556737046285624107245071580904152345880663250855784923476881176688787579558657645855097230884439411015404550222497389122964697740316570659510457369095870232516682651583932802509279353336802576947637060498246646424920113976003187389157382438175739397337037953923120007375093143724768435430367147452891306923951654486146108094651430456514703440926386683577920676316751323575513108532395427982259888084717426433205089167568123990620764808042191876147094540793108948095206957736772774663200569029300979268209680264506931595425792429724718555829355707707356112331413914557266832359288636589113024452434904047599270158069931177214816042109301961819861407107005884006753378770427141394570755700459121802922392012028086973741705511774392418933498923115027828282287342038787130152716061110203616339879657265388531869000922737963185318626627961487266581143892328859684088429987648320403055380341376751858871767045953282366685595378302556773694948445950121555194179084585237818933472778569824939695060420439663004598704455991561257092264442810778164886963809698186757008773579468031180155764407722030290178830025617951497497141612725216023221679138990114538258935461387217937919358536277565086977385778350456201052421920961968388503802871093818270854857490870691058593740881127333839231997414802347525674019809012172966056878944278385847788795315503012458555275177429205901407987526626135209698654329512322506574576653461438673001452468596625414953078944726894285894601373888222718191603363900028256506659515215190606806994690226565434863162309457987437241806664458460572792833989147079730034682868249794978509602780281477661265576454035753610494357321617318290780914299186930877932825784686500896540810059538781605761345648699388851942707798859076737104319492784986483402765639181975925264242215319451829436204761518195068033408875674620697500513654915825593113374408830606803650623791946765823009766113692777997586645068574080808659527624752110689519327419726173841864787639732659620692711424314624996209738293172404596230984230530801186594580941648587070434995526886848219741128296628362201597178845236837018797162256049329580028586930393111700322811222713415690946760892554446462893305453813081217224826087062657810824914983329555538742543547385784133523105984695804982908200947566412552788038860157989130863576455755564717764178949459244330292830694576248842351559640211182127848906654205786043458724430826576940441750803334845330097150844032699928179972753174109746745859883055063142446270797901881854355272940093891783811213789282696368825382752656556510376946421405095250111230309863914292505886027989159140068907437573557746150742536231972228835423365303459739373317894755154018577629315750087187017284630977254823137506962898679269576514611722733208717069250373166498202824410732064803978973053743551452288138744018065730516245781066302113359147564316023310594902611348312009421028461855544586435715082170641146667955798905416155586690932558506660442124972237101042086159197782496278443270586190253286402404664291643334150794861590000733175099777313315809646327989436874636098086500446984920493147514067021162390815839192675115544866745194811642826384612218154758337715137897881539085875509853594195017221035612103074345115593012542945878684170995990103135604607245666851220773000692825091027420847253501498950965460721596065865176970269434333952114085674695541349347545509841110066951284445282919375850845027893225455963582241635426022688824090530127308412085001813813723547801344153658939510867787026869302842028870764076310251851861189422156954294021215087556439014825926855068961231948115998920333721530691523569554940187686462188465373271865022692679356465755129276486692330810944342955162268067047626630862816495037038201088996514490065941809812816611158531265666335727167846663525500220784519314968604371457220130783517650982644195312908938110448751282776222805974519150639829441198241961712945285389410212522628437795666259093215405967185561214323812612591480162344727036131408864562014771732573349677233813171203854743046107271495168238227298841556682507851312219060100203589705760044074271130362775169754354321400237983395654227018886174404292545981412034199111554282224114789178440960058186313422197175777683549829287203675729190426873172942278489211767646388699891150519708040289982774848645762979194691686063718265934448820957523765204301739445731666230096023620421799107786237584227222437839564603994654810813081220147987228160526205546669384933069456685552825132674248551588632910499127859906122771897424994068672758321946949453945437299000431063342917812445624836068394418395594415589932572066644821044415656232466238765697983402145048720071258567205466719522814199259458631232138747423308880149564184639752947402554831762707718423710352547223073579168231321448284163404084932420362826919831004173469075520149066930599065787826381376672227017755363883863052936391532936856426810635503496375243450382028629130105086333544093575271334517517735718221145427921113743691313258208738115780078157113130726688048834504203883792522536501388968458506956302735849396014149451479263029827339876512896745639434837492750585062838207773876621159867117318487470292948630239087482526404235218851199588102646138786282349709346977301267997742825771363189876796655775921581526011407047251002373603825475185586024284112145358918962576782223510454282703609477068117007285020090699890214948815157971900830535715506711412866929185488909512071142508278044527802311301565204012816462035032080134330512905582666896869729228186153894829635846863242147550986848817996270539011033319072713664991039263342537031248810114326802108950659441773579398921267940857368872708553440921927708904729732158666242614527198016659220674960657788008909784414240554027442525272668631248444952620269987316739747200042191508079235585999739068072221613739576350262788350618088520296502667336602099378533560238742404511323631251544087687007902453770834448625505438860367396895363158251501167113293441135350956430748701369552273792852056495560977846242884808161639709854637483042740938137348862311230042277155135078390524177387610899040863955310387646225732107702538013949114910559579725852797465387166415508410641121581274709376786382039548692194807250159602160601072568675885642600894680042273812244350190798301049278350502977968773633656210715228778699297312366546221003139292389994001240623841019838325725063277039748043849573240502831084921568533583728275744357591213994938505831446963837313951850651050620288933723825822784630690322198346147694058129863397076888568839730943846708002585585444353711107552200031230357173767499091375262419056284653650186160652197506299694585694688349816732752830077883152661794323446157380293167549301429617972319114088178090829401014038326597731108917419029115661249528962380894945293281451934470394852231086150663183143724078624382783450945140005735122322581874554403541294959446102488976491172584659903520499659634665707810713705220903152675363150850094841010872686490377980123474573911361396060531469156750793221578522963369428819725350697523165023134449162877005818419921358022018332477849938277070242830441660227370923513460343915869677911307297255414903723216835955184975340220889021968917215008135018265546068608220006007889476730486794681847129434681186421995312416794742066199950310103184508552698679522037201436810440403279143327690077367352838732906107546850673910102811261424141975710536757663647273812923763000403325471775548007279251431840345329131269718512974787040624215692027242326927167142251950320468929648461711430825155519490883067697895308838039494419197226567560467990795112432748170422173831060298736099532836532449299782196878418343942933022273407738416051735202596824358401436974287904633622924346226771756933788583449200703435802534375532682757055400824506311697238680007761215632135937731750608998106577039358062611971939986504018961453710901763421478596596398044223401931625513362661131008092315535434791735042161930483622532970237199914223929885967452370784373931574521663303647222994540497219268697611101330346351530993198955669411276132578664522707662963916085828498594332544568338047757110306426685076864113252804445065838437546848206319107803047038483459833043783675691018019485435878455064054159211954083643240337496812926432797850993467705437718073868983559674840940283393374894420447017344424482586814575530518107194936628127416425156908924340078596397063372711881180841570290620784125959893519293916502330978281698058713430259330799920859173071692056968990967472370249908037362840751008179628870432219039485754759942837775193656452885240378868511976411634899144469752239278311656283106456064318051650672461003314437975691227324938475993239009537311757710875990841432828678146983743270005316570189755383241238813165016886644796021518328236034029941989500262274571082308144250965945758149877798337848538162077360278436967161882525511912740576762398208574384967346508320574746897104010323458148203006123350302894529958156636055410813669252652064259575606390140073255652511859411095405483143009747631054787964007871521148989069345501369127835738896976528891216265793188136605422204502829563989943939811574162699864047574586535969373936559004294971032537732496021974997876660139741696101999233544797032877865155087169054425500209889230626419633286593116645141018358077072189255360058769864207188161342816867551566189556760121506255963499101008035301128186613845677082555893770726168920404920484503682267054631437041832515706097743573810958257688842274470182190848839541099868911343146001006667765653627951482305734897410629581178926122129218820642981005241839485285234803511339138377261114716955893787952887861539793098170423030825300278678598172573880688885434029762696727992636322329686859754186702462779792711374921130892029570873718851760858254559807709324750670112944203196222830624581229600903435939941892252856325710959821939970272676486783465053394054770048733614505920131461616228356820539214670236667545218562202101384095374983220996557942746211670937143071081265467461839708199950779608478308946803233408274118797543634402713484464428680935838217634710733343181253447286667505725986901857326747406078198708244401881252579736800996466856329254232703348782211228061426081050261844155661554569263388202072893902107489810575640750149082145274743492753560644667360581807151167198332455118913119616786753293105864908334096107477192836038825408472877194385074591360662997641422365450239615175832972498329071314318691389717817087645528061215570243427916453608343522531287679294129403625511187902510608248221612474726785172582050733732545704073123095432251654561455345633178045210653261770030987007040205790697365354430820123126144429260853592398284793507970207715356369660391536820833419805297301995318523079335788995324107395289226250518999845289239598001823015672705742201749584895243484019408844826471460284025162168154429263702702123688982881407735406122250682948169109857655401404338620602704979115049056478767408657884785228293853154112836914210866901590823340394311421907366956754309113389069639307401713542464278326916464659319637027750112229318239490352419086972872515620788419894613980094194904516126245645676293251234138786307350168883119520000906647918886479659251844085603678781916830961201761913526597859075881827054731043100584103492956375829154214740609871541544865829174971395107720432903971839604069267622161838694214879059965295743956517985488825614952443072559737874104908040686545090807351750698571455065490622459574797467726290730020623773796390998952939077492763038475176094038870714647652225998516833101602973758849807706865868859791811657232166796298657516455521316425961091257117988467583112207489230829805005521885372030625169600968401771256926665966507675908141737808593581739516966527429233136528604012388642549781930456627004071807023262445772063287124077415494016093034922527739952115159739981771718510348650340580756301376661448566883301373765838127453303706511070705457656795796835379148657363066555630911688383945566030633350041551745847998154563457623616635614697723158928625769300401524965499050805672420057138452450097798004735727477909666025534982859790707994274784121314486721822252822493352969932205139505164418507872471634319432452581885796163212961740022167901874705273554837232675539519947748755905540892203745845945696942025712063092362976825580995609170165292876415399624137027219159082496750681620425405175594120783631015416149254257621394880741904704660203945561167239387047896817656921341963202404193042870027324750981660484881073874843338776119330638715196976024432567539569831883689408375847831285102235403908847589612124214137745646457092690551616192273924729714650607432052688058426414400702522326486291184202699443367978026256708430774226477064007068577568420290569360843643385995231241587793276939475539436160244204056841680832171481704110773919212911038927699724471452509094063943260699894976797650141979474190601205946387984038864081988474870763876982694223286452612295447368978807898069090106561074473154378903145055851412045835399464260236286135024620191572997219707601861350950349961949834199906111203538563399143371350479866863409579524592029223191101179723415535223707351568167229755987522869742542297588331490842175759985099258302944973572772904003757443485820376968456226296152833939092852998898261756088852788286648487798988708350839253562984537304461563728571582931502999904406559809764862790103713746315480195729877515656659832029043100539370837729124100136809810314883086840886549446095574389149773395798135791791900315577781997607172332419269439365878788629557772618115879921912268861240445474758623483826647971518486549219528314523643909734446814376274795664842938688346725809501020411209613538109334220913617927307749295873692629312121347226533463823291346095674574071953745305393543996064691777583953077853364552111740787276174303867172125487633807964378034033692542296006747536527632509633309981760902378422696642188607366390436494018813853541956964632972121389078421750351768045443905325442187272484289536841431141658113867005649641534846887816644325141221220856497727434060787630740496365236062872602854497987869322942964711188762511086877453665200048221098083615360192390649797975152763796985168100975183103441453581432986954806257942361908906229817180439450535439069615224770131303782017776455149463825415093700221299694268211471636661065441969522505432687525988361712442702721856300520601506098730741542790649182657871933869943324146137515892114208211558080619028321470194956426884598457921068398038415339732031673932955634911439175756612752341837644866338366215881906176836308704097442057359652310270545266417857622986133823159316180095281927460716967206169900090615246068195031207291354830448870788587955320434321652322715564122662822102462816064569352134122102349700476114830955426115829940464981851011693799550683571301405635936916518268869489147223681143491062947318674377754378812316477472203851919456837641734719228445687091515764690007945516182220744292479060966004378397471540010586823515931962983447977502898428860427817215689276621519496856381678609463392071805919164093977051999254962078374211412905798600890248349251022598508939910017690176218466604204399500685853465132054429056500170215951409520900827169252279526122341151331912770604033178166531195110172625576349061389400840202189009537737019323259232509447230562760120814344609262381348933912125864692725018423530149774565755437550483866577629065841262702487007844603883047982567098429842983384154301492273980722363454353403457643266559332635912801422358953392844924600449643389117769933216700435972064223932642173874432754669563880465244865504483175836704844967180346037383715668798444408238732057176186862360791164583189921488665150563599886445011486656593510878753405123354992576852941102075636438925915150306230335164242996955748350835386336373003405029547202585188779693489672182477961736184964327385480400502533623292431000624331241689941144519095792705011665091089101836182579952379457683354642280565611735576451541789777449716812798833386727381748612866128039200549164387941986768909601832092563236637017821541302591086253635652546575021167297067205698652014643768534306393853713525414108483952152928008039260327348649098787494846632328796543490441979261018938293430947661399735859759399784478207811957836516973564472342816658479928342327607404641344377549882674530458311132928268641080496733615628354034403299598151519003799120428597042576557375932126407794876201050071824112766723042640352695924183800840908703228227273648952001061977195567915586020740296731514512038701272152400859767690998975702864344226227712770953425161397127257380954165804946929718526564009607095484249870777122636235134538961412313747090763897597456330116890789138074275460213515094344465835481515249504466814833044171367499213945212811612317769788594288301485075078083954879167625114676090867409734958822540359886224256504642743043323565296450784483724525606814177980156904224974464253527195692937962062314492186562370832138358176222708436731919758260777572573653220206105003810654385165759114716501819570236049809024448732884911355263003898826060547837250359624569908553245635789682403820500265415464407059597293521202114984345441119992310113094129099994603844903054773523512537609164998949170853682215154485012610306658331579434747911309693448385467157020757926616877822220234704364378207077373965010431926060069119627113747560576668041204696044077664646432345228612805849029760674976472293190729495164580421733695285820802662964893971246616710078049975214846241138590036364689082193608435538116927279697946006804678822572121350660665532921144619652045610862853910936598984901209001908390858363475129326299219311583803384534877288412720377341572614559619850456909920447401247751844551339996751957527185176889496863290787572445436414075387418534183321891850054089494027985295912483755013085098603446740630043008629508165416174291263628855062032230831691766305472231446167041400862090045041063031578754513739071776396117961570798167914993292218083008739068548072272087443603179491928099674507128760617616417086162893766589285973646051848604794159373781103782151927224581898365555494068030877720780820254555921643991574904217392403982094437198499818200646908222113434884202186529325043429856451324924781471242918703632952900257321970621636841154562428327554235797314941544534153072851539969089610774991144131227674535880573840461427867925979148292670044471142165005494618799978385599911387238974930578389569734411976831841403354185546145926543992081820271972138265374247531733279554262646676254805447741676375561725022183525900883599446043709576506594524591991242318945369336622174330670573358153358101162335167191991402573703229716331851280806064428249430372646709848665175856059925103177983753068450484695697373517739150868626888968647021500208921404154572129845900400195796520206715751535426652743758788288912542564426598480360221716721947357574218774134119909441011874149241810873575237460173711053462616190032257054979716480611871951884594887596990851710874053333636139258486287015260510818413188369086025237298784373430704336784886200639654139632167122415091369759163926451581849043542974863509342570022103282900847829953708188307114645216365964476331240273702886161167652555375281928179432989435117544866484527703805456896796127816435912937573655714065483199892398329798524947736999331876108522964950238121108936326162070767610958426438458283257770687623646166548671421488085575343229231161684994456887318256029536753946784416311566617759061966861043262696365412940010753370487534932235344340663928841387166662189690805842880727836970748208199334874062895193856951666611927007254520973012522794223267479189445885730523095178393382437102934634017668079658726614563682062597378713524291569425700065708892855919258496558324196009837699872199249894844543349994387707638747481362735942577275242135385109366828263123573801535079529005742186700264362212176481749254475510173278751514187345595843979010599653294655742781575033344610652805939598542054534292792531250232417811453856487768122587704308260963378697082840209110609143593465478503395894017839734678565396248080810523160891623375933545777393693270311542493784041167235252954362285837012660061954896809282016960194356307826338704588496795873630015061760791488559568007101326151292076378149611338292168368845593166020124058213073127606987925497523728748563614739106068247234015170037649423333075013499296009058574534745631408792230330973916204125511297771863614178054237566728441199743494775348956614552482739320268578581662222871384047595377152050727528640102885193092658961451101240082603075549434044122138629825064257428496636091028932545444616660645821602235902847261822893455831986690181570556568596566117400057190323049181858047045790706637941704859198907518005551816863187212283111204808372633510026837223745000658359547627810636424243545884802920129338076512992920667879435255983037173903859115344176585426462676031814331224427465657009223497662517140016270494041420198999812247302283412920036574716235713300224971963402704790643559119436240810397034918299363720392303880960072771509606813762778048830975435136376102240891864730902687502272119666472217414952967202098462623664479308968626356839177112435381484126050403703531066470135472712306129995578723291552588420060872278923752591228905904594707617815807739773540101442045940089714027090915437628478598342193628019555269957699773173648895289847938541597541887196626137510388484515213402506224887525999663932552607805846498008492121833849894365536363401161972352805241008781065291080643484288696351929831165385216846602489530077486899496416060736561947956014079377951423620342858372270360563119735548038117506455880742715721764652399782231450874112545050234297536022961777218310329043729139559326316665567853680009622624406534522598496427522029187168235906128439574434561705736196075969355359713573679710121192531099359892541524048128027941579636404603873622948738089449352493329438852270968641025384450152570217345510456515619580080212432441844006777774531438593712381748915161499362319097631387238960664403928414464309220216030691032705710931977430814609757652183932090560444667852564155333098715139838313275671580404998582109856764304937181291595552340554357117645464325626453646054900109377023787873577478947767898992532980729104731427480275545391966152004755645441142522711469024835967388917170937453336773606969150934044309464734413114803044555179453801880609053311898354859268522669706660548165259763508626971625853634450357857419753224725504820081708164127697087648580965390546304277948684620578822017074398180783940065661140806155272875147070847075287805637741228853507568009011673568515150186984526816754913784368857075808398697121707240203428752111075120018970022248147627380243603817156856427320595375051985424907102029644417998931442088599552739394576408484014748041949281581385488469030038127091852408084235783095044781543149892801088836971916148621657095818001402459667197684422614014683262100895123756256339942976737398220451266704868197250987901483707854594248220522910386320987828907880608029313516861873291132007198737095973784831061226057080969981716549999964527007787931302128094661231437600858283089144811942878617848611557848007683484352760966068067371546889185709037001983180458567297999088621871737774300458902037464463112886596394197059001809474582150985078833077067812172099314858651300677736847285713493229495605133606375889319278368104777612184160383871613993997760814216773390578238400342989775068719968860054747266939614239192245737486612511670217395020895222037422163725397527618835410972653871445613938738090626418354589368209430990600535295365752626069528906553187723652158000981391770155997597611893769063586617535334591628286522996586384175484164716746294134160427512851620513036538007051277497757696786338303040340293061602585715710847891006080046753315485341562150604726732114111382996752427730429541195145643646837994086610519032136301733861288802737747199508369097161240969349723013054374502779346023674657245521757472833841342480592960096670354778118859046828704427586435421965502541896688474751165070668703718678414282091025815280400039080091693724969675207296452059509778008114793135572961598294857733723293711149057333337408696340622813317366538876400558231744527393380007865917666987611205817309322363356268513868942985600942243054847877323227786410874136326156048718890008890343640463883724286815952137429929048652252030951977950978765129861622103284428796067022276580809137417964440829803426814898415664899420406705205213395507760252375622334054294157287899030426737424519441678216858003033695013548667573124493145907544278782346387366067711086408690502086928959298243554261877515297948768924353215025231080300747719402446554874431683113642823468070780067030826833714493563662815675207252125087999568616435360241803037884515285021993340488265173780425435595064352770877589067719410572296322893828086653407793216780230007988631291798803635621802712201265289977956281514642194207925666302642612585994078280170699814886514120373737263043021071886394732371329183984675869915472463647973806022366267885539547360221997772085444823898252575704524065848051804788710880059383641940600389988577105711316124079457477184713251646741584843628084935704626730734427566839999016502753124378881824783729636544256771577126732432841004742773744737429373234153402171010121173158053587139111947556610818857343857556541958164337447189917976681315406917680548288342067441215683806395100040665649297507676946421068532086808063766599384965884138373941638202960390783909176909188470906113640367891864583309555979936733025552320383761448737845249268796281840171715133696977131208226263100700313065406191975810042202170124835229448121203377571063766809700092272173768244927526018659352855509026523417305166466953073168582527963098457478474421435022547833415939437237302662624790328774598717674271054729746112577537475633119333842398064988479303684129962366951869588107328613845381233497115561038844118734322973090044316744109022883498570445682464145189865470846342780829716303704414793821065634133253956005143148269307944468671833818822402462322775654350243169872621956725309854762658437491822032231105387749839936991497844095832221016949085518964121910517065923107773328223151622321006907064073580437393764398106582587181539849130468175574025701206323158418050675179771391272152359108937826573081337744581083398777801069389916128176898788055818752686625281575044946666657242640013515868927163814213295855610092857951724764294495256299346347096440511883418449105883615451654536291426518411845103258873593723477668513045694940642937374878746012609622080966512286593573336592143555584574949440744936772595909223386484666922671516882976013712210456940041800386072991875330596055905673556058854798156297186402088084062508452361614066972138882356746090375282206549493310789447827722420003661544082896912301150780595268331064339431002942949511272397958268370568656379617805048108978478103631631256381386252228419666031319631686102133956567347539172652865102709421397808274929332832953384277745328451015681478404797174106900627714035277516023338385025564198854024893764171476006455148551640873999307366050379816043734148148693075895872728903006819368683938343219570812598908783091313228793916438111848028778434148517138825394397770719288208808836727796840154318130789908661487672223016926116121240934875982211171012834085966589913393579027126218794142007685485605278665334500812168872275954926677043045225181129077446196922998017877910327067527391305024426652999456644414995815894291503104793757122150257034419784553582890648652871686227685791397262360591087244318362603865853680387795691011506370900538510453602655358191071341444746831763696691446424098446935842633357913614606967894428605504245606924773412839897217256800235764328111892081743257994848273250603938962613772015045637453268315451068264834349598953342454548973438606759969958972090522902593571198479587740396297963496873543214803239337142990346858466279525145028436890379301274175223260080382250282432765794195899095733638284927152750207700015082134878716040474623598710924222376676448258291550670317223263482717679991907047259280689374592703477571818783223243464921909781214785115172745360624839971759965747966478539800399237716352975967574998329699515319715206026700050710620315042440912909741467968559751774555981070383048187849119422976214930496126472288296960986283962103587390414789591650065720885108917155006794712501150527336901257389603013214608370366675698612086205815794429027063517105675182885418554200821042914770491778134243975580269641339951167423305658040203007045078744259316603169483100875598708346936451251372483223779485823853224746818934284527319045979208263413696099524224504896009489094425795700489577061258344151482007147534209769428483123635475109011349361826333421870738764513828019379564156564747954201065878210744735353503700998255256513937024206231299259807960622930532992505825145286837174093394514558006494157480647474405747700632998945991293308645961426610456615393229644353662594328472491824954010435011681776013328325910390979215530169514294155669871229523777037104778626849805625943041849773451386637490586104915389089784414586867287508658904869925344279307149585600345873737823511327323510183776415883535404598222789577791826560023925072136751970443157858148788370028780077804493941532889468439341211762456405569499154705115781847158125355254190803269490166461652655097129894658031253757279876747682707182780131354239188089525880887976241923714797897654700502061221611294246410324211785608258289119428561453797194804934878870997418383799118545105411659524709749764388174878878490822509615707086057153686564051983966376212237005844639104116499899178701802454352139217924557984172047527101808447370135949768335475388803784984098732149933780947769441085046196945171809838398114501325419589527796903248656539612611487475784297601780347296081152285474957342014853435454084119082440152924184455870448733119192953845804481988931833859915486918566634304951555814498509128160449434973978473042976466699133918384427853560419609395016854012975729587335081426186025623357239438416899525163606226595733349291537566599897761264868112022889142541983493100761978927478760643505817335647227579688921851007293829549645183862299746353805572756021014480878438126666752705935811809184742990486741239382077127207394094406537497621232451116587035316159575775823014084078628551198992349906424665102127869250919576674442307838676707728732734563703511087178523287344514499478406073956224812027333500291348434931383248942133138278712132624309246307243355176206282680653546808204800477533162378591164859467925797484064674769403907488777063033796201020164310696565397333320654269079675895325053023923661180658141145126844299992784063987401847784586733272295354830447142019762505687412604678172860488365188856269488995977946522034489412900746312967741535526971009506963060477257777738898408939929798556499170281327589629533046104160576462234066533538018888593215448957088563039805775237527330949500952038444141195294940946523377030267857166414425917406887322815955476468761140284699230267030964988733766751859576360275058073577188348854298593849693879432641149513876465690248820234342097083218489267465246788391751091736758276871342093736100944108247068128257786143478733568915723678959888860411039820306674747605282722739089429073511404076132437701086601211996743502624947311734025011895859098504520616656934768279720829126178264937469956485694456274058514894249892391596451536104316439703036994386479037024491948214317394795869763730925210423883171750780159015314855927348958002102558593095873352020135808076023607736967105548633090113173885651661289519823033597886176197661977319698386735812181691729842130377669567084240788533091884907800508909518851366339309501669550190968270265259703348890212177100016799659745119139761131300976670741083873627723818921559110046869283242005967470668233435765432269736324915220332072729325919962222619953152561641280759475150430876778311386092457037326532439720610871689889134788804443664954091934437030510617735437491211590594651183263275527120650600743181319371404164460936774819269538406605676715828078816344397493473894854573079539003519230039101159736984092245752433608220849358196113585601622992842648999541527220177658440022958047867637845692787763456267341127659809413238996624779172270214918603997709645689875441404409692435626448849052789675378217762513201605972009746890070413815114142841693596191905842125788779994036305946630636031294785361687585188894217545689075556335333583135493015429040026419178989822531118715448013427156726248549188789880513559441872934483284227925755943731226152496507589702960095039185044170357221259685200817437341813705004212585916519299921108417643172092894360090702197387278720480620183689928394499361557013817430617635440949115407247628981590919064301564759260794616854985328039908516269317391279626594555794712809696695647798204744011103857266350845057149042861147776022644340603519007831159961839994915430615100857041916193766143987096909018771793417056561623060057234627516091936336205404152359707814656818511235999633463744358464050542372050488881889245460191421293178302657270107846179295781959312480937902772078900249628691668242312886503186689673821589763304263695434300950586143797413216758446568440216678251064745789033457107370296421267215112482849685528091873902133579778194466851919316223053274103232044302922355253779832599765764423123602436784813583150186317228457871998737286442677535889595531212240308587609007866505272010290148090358347255982728270517035343300456783391617794352379298923739990755284259742479342643938035589202558977557194103753203727990132172454706920459517603442548673097724761894289952446957451388347399067890537636320608036486374797378698313746633900953316853814130383717626716367691464670800773821202349367380863247506336240836388032274708770236086602723520619545793804251349001040325171916716159606473358399067851776243814426200467255438568251708455869910399620446799888114159552308677991713588317842321410719905923634898995885449302252322421783787308233484036016357732714950977025131776891243501191913977822005189484540471048005817593372198314395935257554176999643802058887871079452368111090991818306134873578663520315232949231589130455908833897917826437992209918906611505907636963432889641053827140008634477735853898547223022210520919606065497409752491490140934722850254248299634016772126366227624061850423787130014969485469821751167399730104244551117623856700937238102171853630942762583405504375194324567882304918679741685406008094703746453720659171302473728263227362828983992784910491790615301798160212864642910321096254519208674565908095699110108291780710858680568991798096021729025072679219554224493721795297170591861506195210014300766139955504464458020098755907884630426418851142316612354994776413005819454499954289068762110694706307778407406007905447619908557922726843794828040953394163230126112679605848515358974295606530449837976784671217166930529483316423504623499218099757265669714996337464369509082605379614097239288445803255606483330487789846492194077561328644829073009002818409906177661177576122824206584246187970198515601701842065842988928870928548745174489013016418694506580500023346924615657751370610703734530825937097002488381167567848119070633473648079565773856230375350213373263480210475637085802508164824538649439381872178511317681186010715782444137651075846267906328272076853796697941330787861162869284368385074716415588056330091430248222227266751870819092249686915347153659489992205340734993611477957993054089856617837728010805944571087474790461423669635663113612410557318448956210072098967126950603414871999948555698992004566250895324616705924697483641864278508482134210120360894953176260848923738714365860636491622657253875350420773247568653458803449592797718437175426044131684741531936885631064696696771942822111812564117324115534072089347232190122417512538680467621920284701130908636034458802983155428580725328996859815931611504942341783939733981692324794733652975005445100168826230493992814209053153629737284531209172791271767002902259422402902155533492681264727953129701005550518798660726108772547441114737909588086113204520400963024227009538106462871762192065825201853035518976475143979539067431147699263108420746635198604661754013439341261124008701371762831928997279448765582904236460313480258944630426095106542363223900286508464989715264345112386366578135372543111734021283876089797925799635953350819143637458072295380463454893101879740034385792830671993492518619860097081977847309903683128459991342272892216468138141996826535429841793685664857588468267363872051781979873277583498037477876284960080476472595176962859129208529897576869057354348465536518928211295889089319187953815387588644803408454060767198749493382035104248246041297428243174911862164951993036655921009747434829397905300606458030307642608554849831579158309321981942610303241404764466956247810341322150138859324888727072960837054652912165279404398072015500428488678104340074847270489226568705070383570970990294450076939108483247838675053570127344555145280610268163388677176596224933715984383409030788345059073030541623774468371370680814535202109119075669429237595253728808168189394459198504515856073222803478453152723639494508790287299864405449555203992384596872415906881301986093321019180638342652251515923455863141964108954494599095929819223773157806419128170844019822641142577309735603390706830623679008370174398210566746938112288220030943333779373873769767753023501578136558695083740166731708515243957335366483905201591070630323951007225736791593252411357252820401702061025672645632240241727114776431354619282110072872340334512001063461716025147241755505780895047956601316349757623636648899007073473100077221159390537042341546803392973857888283109140421009729435862384030829661465532124075663684577538114115375029526922059112815002651742617522600895764134567361898713594236919936510591467885750436572598969085269689286017132486040721143511499786885294072700889039430302437833266148260770342026661720084048556828570173046974058041853257745024451492777502383647580500964465972054735183770302404087186544849340521512519179242639065869375542136432493152883936770338425638892308228324760148703773892596981986414623889779216518795976589274166389690484643540124203431807452984099618923199893925427839820168756848566184343774152801745085804304882345053983705074703232465229123073810458585045665436186159892133090873998338354450928555336058743305801335904568101777593067765451470976683566272363064250583608643314902098113822401568216480969635521086348864775118440855462281493750784499651581186978631684243498998674816729916887901869293526581957401047265710684560072756493694884761726180085116284374823473233347062898584773411713684727788574174746252752883868538468432925026873824748312819420359537181679938690193408711079260529772540635423522107941738367273800814590169576867223481415230336052999427576196237208978249439948047441199189302512770703210997864820715591795099748472959685041749452781675811992025896010798188232533553382716997425832336086459202348474926074647850103042740205030368582906418890965001953177398518724795120847255263862895717010545989833066595791306693398538362878027420307823661744090024275763411513358150617458864415527185589411879497093382906869999040789756560169927421636661836517304859244995806709300002882007674936657405111562839573574504015974254964222703643811462816985977857037683000620557447746284631537921705942695344481193220278524887169535457766414254669295079288790145907364567947903074715603461690819054260112879190346600890253045077067556630395887765834189898786059856522678245059780017484643687964704236228084576131774486654613367387557756457748645013594078731563962581191657523764838336041962892123474719962172471142271661299150907688099916957343316829506761071158020245880387100851729546988955368246192108654687474978426709202158773851593123877754129454377481628096060752210651630524134199965562177922884527318961236468548972204728893767032178080828923234085672410888329241857631740847508357083888411127366882131464281077902890228635217709303687149128172017704625882119022302679957834373303952702184326577490073897481962827317570922173312254650342243849134879884291542886503244934677962956634780770791696173572034981721279496131333323436269296990375223201400528605649202068316773699975676190951856077936855422184327270696104781092350595875959325780363773909840145627404337462853867129880161216486987778899188282768019544407247541714684137269590777138576223472733785953779952366092489231750337084257788272714873761868747659295049588675103290708249451194364069475177086913952151315363506684172807128167306794833407039504759246857180460925530783753815714166777950857872223537184049976541881549388166525682372869877545255322051647480321680179756482607088058373030778392900615723145486896785516837230928097391466205793193230742747146589700153916432896443366626631023227909849358944733981679134128172969465888672334165486835202551370883626416866354974044556226349823899418534008030182408511437248759454505347099185837761793637122937452714530810168803825410039018849832551383238167291866931344104341568411852478282374435040048578938245034068484715025935027867290371254112838582405374251420822904507947475887805476012835425072748352745031508107159697875320427538216234384144041705283811447640389544146734978043291446901085304359965114305300750951800112333700396736540085186792198157874203699165747587166528881765669741476848803428350921799600989102918590542398560364585027179227370594755299190675835689735761135644875231930392120748204765862313329369504818735820670600472662486170071424188537547949116328172059716413210878891910420910838252202054450128795527118211085396156698306110131510431738985870311136709010503777635940666208256649865322887447630158190266954069826001891045096336000257876499779790514153869496180142602043505650382440864160730103558037762919482346903844757517872574102605019097299878695574892432308017778197630141222844951174621316740045877782218808705040081785170041781054934711474926654455266884243103413744747459598024485868287467443454829984027949763797028613625723060216252167401553958143248431855097445176220571624514374775821239052657731483060177833499743081766080025882231287725811315814798398201337866730620315043307951574512547473022365714514725080128612055245163932711323870732761154924198895672357473349315520710764278976887601364733062170582070606475769325121243155979101257214064646304034810765270924317684824239556999410639834459900877005587659948497458640352347984828951995154831267192492715262558689159590206770734486961970008496322622187665439581995145027763712139421561718631325477921035246411331551202385318178103694713634440033512354476105291631170774718576622405196325086578378261629072792847260519179793018248146564518712854536014289127731772680904877264581424920946980396229979108859299562633213657741200145870236023997276557787169159490556526868478758616164530242635326078142986839701332144212398819156208373087719373294077949955387949274190936035577456544401194377503916552612574840889400098593545030197905238028068396614815220129176243234935499395160110985927254284500363836011129739605305728496300061451225278936334578746922575640113177171952249462445305555714811943936560885473718019037852457611276453483766764703982988666009663991504547220951949336666107510666071316527592516571752341553172020310986105444212499554749257639910386144777839941472155311815183222948426034220256498504492970785901818822299034236881819634856703070472665385999849347433726567735332417465835702317540748698064061792903754271121381749551245308756517634907250779907321469371708478356097381559236587046294332233111768406792409107650257886330446784074135544095481007166414828545048263664178908388255893825599548905949501710879781087909344786104279147164272234442989741435270933385448920803344732621591158311358288940932788962498102674906217641690017595167978069982481857735823238129377446149171411446025410640185863220011850974514898571599195111607435081519304955922249554796911355698689526971605026735407703537752322223014044444904894319933317062115564320351973162132330815631014216576841013191249384966029501267570321432001564227380550874712429380724981954061562114570129078449832042593933534401290087590190487111727894154913468878173755691764803808250537205317608881229507236154540007318074592915643325142044928014785961129329358956459038199762037658250814104563405817259528040246003273773086176788312708251546582673750713423701287838773004077276973414228614887098027210630463169121604495674471396035210862262544767839369245415401833407215988626179881247445145729208369088453413700381787785171891384833959724870916552074857587312655893136049883071614308117446326406943046698344312854258577155043849566764196620967844716268044033370566480232326343070081851539826527554681349362934907925835162431105324043747449483077180378846697468748165329615485297155890677017693559601134309025960717632294500970424903115788287619945063053424979102376556930127851249713145798490588365699505918653717485466060446103224579340256987783675849873555715480187342887946235150647953955582035327340760232408579158011195861224524681168801200022487111439182844072823458712918681907963646298414487240107534448816997810604342328006579804503915375963302922759484938312683950066557859622179313121392103741218285686104519883041018516022727692115790493411437984908019409158985475136670846717313293978558106727222653302915628597583961775274355224382584097963746218397082679642339637539533387036904776029056178116451514344237253025864469430233903789818666195632844559234111054890976181344789054192021560352452867731073477626211073393280266168158893146751993116040880474843018712175158607174347193763493598703331752770702467590278466536917179136436413123511416596464460640798375928815770213516869993281454948015774595734132611111439069413352398816084278191964313727514881721424963192505576030117663566365667767775009116323521049752215856172065208702294626671439708629322239014209980356779008542655276646753538907463781425232783708619680454221842864491385071508218784569657684156741843473170102420104619638026104522111769206015294998058414977164708716946065275901019290697583036547848521010562461818606770541492406700899984230369396517388195195934629714329396945393060829436780722403594390904016124342287644376739770181098077395178140474138256153911805230188473383047055026494074953398181872967190152080672097552382456020966742961759002135653155046324119618293049147448966925092626877268200835023912626320720975585480030794086269213714616957284181223581106665888323788892894590788295181983911661931868945804226954769432372192562994294839729743560303683845125884054689158368864454876862887614448813320668033792560153870991249629682755396950138472446750036412673702744918551496087124564438731096282098816747840847580976951132292367588732148578765031649836130898776773287308203233274940285412837656472959782343100594985289634436500317331475627042996552227006867264359033292391857949312046747091751975257073807901179283938166801355254515615065062813176261083466721831904836354549977941963361133743167380129671829419737835952420025591896912113564109683320610445996152232528448579514043682502379546818313585160969534940463080864900935023679581911932419808295948889631753950110033996729919803814380479104124476954960760101915547685792870284516386157394601695344666560494265826836724051943418369118827077870030629379725060883436228278065705546082146285944292704624417861853064652879101408109087420155533582693605838662352029632521832424718103191531765348526392056551376987840742914997997412248787264068178227356148725591946407761692889427791264325356101077279328984699300422107943589895204324113614921240631965788220306197906563526175422517513712126189342470155727269894499180508960532959224214085966251612667392399942192119027835575224564748937378984976697478782611153232954245963319645412493827027485434227387338407835202378574141253576100044692070922536515473614008222545221978871317485407189508624540883647085344054686243362471956004024248568292175693157236665207982557375078932171628458327205925114761038662618349240139335536332172532686435147790449562517583923974896335715960678899629433414341528883792357382770921442799784425176022903621018100522593620112270469451077925270348384431103440231983562445443570465974804619789208406022791101517707949146920084954349484288601504523917607732770375796135741751023575953565165375911829884745352255657197207582946480792628409130136538979584441478033306337986004450369053648543335941640162927471544364403516129729034544794133379121929487596941278897495721078613080342525780911619214253697971538016291140597695995472594367689003106180031972460379237456263553005577905535159373605454881866038731566969615948000028179310365812848975445362954781352706372104999739588717020926696139687998353785457236532503354638065779577047591005919703435601551105263548444828288947014733089174489642607429831864287678950245493859530589023279063640807291021289113718608736425227758905205331564460243500918775688489487042766342586060795387029412368533345148958916853319553190060150739573521192743321701484229525736459359692672412614369093049312510452490871644068454323487413142207866704719046042699538767479020728734330940179648839905490140325519693835090147241412208207718385447868963298036722601328031496870556814806108121592583321422978038744710482342569219821216947309320706968741798571838087835710988240350907159612737768637319894166727168982390928886317270579226470210483147359411146919661400814618724686314790657267824992365401111039829087615525519577662482411158216631860682904795042300565384228920496744022756349638767947242761406001242719206878253115571021833993210852664078921290427507382249375493688968390293025148228401923428570879460225663212539884047838531855724155213942511773733427807825680064240795180167749306858540884063482735952822470911057610490834352226182604243960582516544856200884612408541761461507161957337848100998428410806234724480383600422126744699965610804564505239026736232025786321906757244296772546391896454816499462405617251578012223321849773647229581075245240155071482602072310432164469386862641442074595919038281340717955103967752250564725841108605171782551676813151580957005318920979856565790364885001668568590843065227713834114977591630656417543452273403491823833624139130045265215426327288569617029154034727365116071161777117880821056946660415642276196145889108612395528523216159882873481378097776753182952146829791207039836593110567706358934706516834750763532155535377734564636918204067587072271360466196275439021483086233367161548272895328454751509577283585333312096421285047294871350137631951520087642163040086073421831286328885905825607825978239188255214950671031163625486367581967390043982176574134859631290745584296184597149256647328629826595653018059975495040857776927784261154651256080619698852882011050357308966840871934383166996844105179795749880104569807063209930859277887204665749404566722666578746600895111415568052218055280924204652101264809862526473427665802412607872087275189317519764176605659252077906533168857906177263372053365738238644649383013879339379114484851867619107827187107039085553451128612261302626189625042800946722357572051814655255639218626803361157209304285141991043379724105885909234111163859505574386266546205302666579159700024219275102250834006201439746339566909754319512931169982207184595942190454082004919403457994998684805725877355396920362665329117213623270590759339480665385633404364556462276066699262054949055298724681266681256690555863776555445812628256982666142308288008915465546980293423506723559305804093878984290329835142408512011540997900749812310271551141599066883841669141667103854835550236407194197076138699762212994330030994309997516766544486340024212681409676767296954769464324442238790952471989754047446141805903709338887489000079973525103701863250614699837899081967727198530380092832748585964964830965228599880835452202059247596160621550965895311175211208248375684134658475963086497378532217394327407577476392965747042185153230058312049227926724606273872397969329851968083983351505770111946853492966681118806828116772476573097601032202378124658577299980693162315949320926308148138861914319967690427639302443437254735250819155906650034297716607821751705423138818332279252059387964619579658563059346635996475708134775986182422487976905277939170063519050263062092275203296530534534720981532317167441634277550657438446906118932840641440265240399831395367512129274251114783956788599805482953755670100727599931606967231682750780485908118516973105325009992142660845243920932862096055218270595659649436993556810626252342765746017612247236821081717468538487785190730036853859470802080542263491922024177889964541217647432767771442673293255827898384423228630493733561265020955094052473215187623699469222389157342574921256022925548625190352534207016925844957359909309824143394486921835761588610726097679141058302557739214430932014374992839612155423524473102143368651564504028298650851571194765757178709437972746848789135186221324163309311898506707746051309774611648352961605389695777706911276955596205659088521164960482051199395597940128494428801686904159598434322827223033421023253783240211365007158501486508272992151459705481624895531725047639830665526244442324170960702020615260325069140446934818242916278514482192108256911934095069351465937276318533313221049171512375975818897188872330626078349901882275591575640856590521480841459015108738094610431947638849600958650661555975917465977144058631809348467057797585050340604964841197302433806247254319511684342897075207281480701942615436813460600780370636517715803394443412857054413483198161061123416961533774811319670342354713122954172323833067152988212670258176388848263997426272544726417694209762083536120821905784835476740837619010519540199495508907334033314363251176797295810122355290854095502183315670245332669911395190734875036227142440463384383522127001114044200384421770677344120790692207582889594662641613980753127470255704658694715519960907693055697845025194899220462837420432101883542910719823877346015337368569583039204130490306961379530057993204218861393368134365338400368525583408389845237585663933332672211161113343792441958898524986721819433632889618147943040509502598132329240218758308803669397559688952587742792505241529880941859738698104978167257613212108966590922864235713367200153926176580359820493989585818516055777191691589376367067177121817289663442715934577307304694149916984594075718998792604240743218284171988759503163064523290451471899558321454026570643542708624219017394050783055677757510240774281675889066580061941466516491666098754366638345197195003529052497556162334401729064460676059901704958201448879194351071008131115933132644957836466083436960870057371160220440882964754946681727614519187833292691406085134284048406323403575347844145860387405777781110647995091790041684983520861695913507579065108167073591992151068471305513151724125201125697968525938873647327396842385454248492885962403591774612976325463858027586404115967106310595734485941626900310620014477838405395275830756619547859212891973191196867884477417425018576316659559409880374715632668222886946801709530633109614369721424473466097201020994508019488579371043906951202637382093430922322359719032281584889790667469804515013702633888326573675753934672030863501406007806813987221945096365374108636964437571403571415528553556602328885652955345921131803723269353768627656256602543421026054024165218288877587917364067640976480790037656306710872577518372220723108154128665956146578230818559276761464020212809282376856381166668363478924126257318745852633563799941753715558587651086072040673619419187053521545525533278094534985154448966653968775383667692458700783678346606287179474038793162734576076989990650723303109411236160348825574471247801720305634460405876285324370256236064572292523747937078144315963768897246921522931160404956390644235250229806877164538967250043526682500588180844331262432157683589358654550231712397181501344431613987069869776651343418443933090675437428498811443333962308963521997149891002635634475782377510795346247607892668957902862654959249252679714707384966274019117132332500891406605899088239324940110548673819860385597209506262047425628103875843565508848513772844691500713965646603163966220376807180470062388749701555451227660990803652228982872329669429870744139837725782075422615655316542507151892014092709025506360143838321524935222241511323752980980072606224609315046930682828995413922955965590280461028159094777335241122912209060912343959594002011021467916595691730076270314139718991168822309909951993484038933055494781904232603584198535636915168315574921367529700942867123439632733263168920785629111188895689233462375961734195645132739740838215236109189552015319694677150757257004766279269757328310625237048800130397999573282462241510483973462367099601926155691192473959828049418232828253526370505215869928289419658301222748645486649761472697444496453641786310205192275081097825918636354500929678566203631740780577704467357722790250553082085842617423204194562645873017687876674827302768038939008714280347015904890956430346430179376271282170564155002592496860137311901789953655092158158401890734172651747300749424314097068418044317557795050186025728391931573948180263990390526222242580500061942382317321946702436209117193050425719346510294259499291410572902700223659166098596854176776207892784404839491069293011499204412389464968126213764932660154880297219483703848742070701765022251550279689226731760090168378833365680954831967714003197281757040814812982260675561165735599891059931317229166361586157203175207876434674519808245617068512623767632190737774575385292534355523841836747426712334272879927745907434933221856797179251311943102336194595055383519702308198855827499236752868986229666217608694161770213947464604646620294165991320468269272061758006641606983867115925425945111395912784750781045812557663865287538518240799167412476429033804942234052701743476830697360640411389214488182543839973720035547253137335815355753372340662673274136922100448175600319972384961042800151654510817022863173568321573346037830592369971166568088257550698266605395776924649050862432228262434751931909614809671965090191365415409565640887674758664028777645293239132426399724656089966702590721675114077029764474512615152446950627218783920950690997859818777748099214558664247875180063940593340829413621509950219020475220330484270394102048699465772601657918383220545779191520766866686559634036406901905806802375891784483869649231047308462996901175114265636142359879671549790436249169861614377694776391477991629957441201834379867066445172375457225650192132168168049244684626111307521042794184062654871967920884928460209943474896376657430101641979415020056045475504822020708176025375859106339778685069336700580175890468945474692730831453497680128651046458459520392448936043483213991755047980866658910731568953168871892121717361536580848439244820339073892581639332604466526137481002766882719957826814760011260991607429061341125915306063213632349463085983748618976315488988675302727198657603355805752963630331178448939438959134555081814012198732158830628590556592723198247391878751088017025201051961460868549396923743493568925532453920419284387774591288617331457912335951843033256547513157375550904502509039348181529540197308476278958745811429838462886890065954721730095152533986790284381271783714233768917944674128031432279304840050678436159185023756824477415363201234856925959970252935805141490396943635359937760598061026972231844076284960451268789495619963575514131503734339423320138968955783667016380204008495315849288373934006816109854030596186297232896670501203135416440612823717398357704927334649800926082240300769378382086850157546884995094934278637328926058176772612584970510390561951050213683566452801424756088856197890810684722373257107846047143990648235954565505580049727292515288462644001758324826096078133546739010204325017564985455463161884443220985448944705844862913257096885983192934717880645043824348895812151220259037339184183245785851996328780428908185926776069542234661141584509607736675396388788761150070914991025402908364775489196987710887096288782830609452785885165541622605191015370072311521985488758302121900906629756822019936829501183859067896650941170507244117294559949385227447521923024181541709138672010752713634094043167188634139554850386702626607756508713603525550043106896252498676589824185077326581751688568083794460604184519388441749752655384942856987093738454057340982489557699518564389910907812329100262598922640885730149714946963781401861251800899828840991323024463086955609639948191797530525236035332660453107686981376069982433481532830488426956995858070397958785417571746341591327388174210628570580882009730231596588281078738672410240691016921681963816185860649794391938394230755015421437555787725130546802511015452066315464531806227690401012119219199446654719401774646383437177940664165468670150864072858666999851882058976552872531184805745725721835487647927089471965091000262152607329715802205979819272965555198256381961500686822543584733175276645929032161392622892223662013225077743775907957018958611575231679702817253420102070643151266116016885709929466203096381093212210827086874027943056058379990951471377672780614464900399454819585743585312911984658507419179803872898494641165386203756470489946232337951359569229474960904448902466592139746030238247266339620157789813365686725742176720758708147682312780754212694806781784366781229930335329903603105631469352322385796719365857949902048506934351176135248988474263480292817530505598890888227282758425767691121343043447477269684051099787079785079900565145130787267656667754827767721406637363928491283572161583012430452976820298886636248004819846309234062759562383629134979993923231458106665710816697949984614009700251278039064353192502071858679007710852306949983547765559003319645330654622897839920301386225130600038873622520081793103040329313689586290397051383265429213675663501984092226357249580824979646879603424967472779827182201500745928711714337915201813715122703899921428001499241593652211989598186390802163927809583232326952434905213063969938909344928679553191949032282631213171373199309795045722967534813006926777420846499533756398206713008089424689868587325853522548269914460032005595588753832572395207451545784866613578328190011350925492633635694577325665201319116550388107795874417355280872154702579544652304140906205017239574392051832442426638123346686841932316666218560905476451489766954406514851959671849583515951015052148357723321012683323567458490355482583376868535534175694287577966487216467469673439667720091506087316744749921809305202996104788244629797352362592968009522652102463943081007447028803535968470436871586165459110994232952672473875035110771069767776098989581378727321188721927398320992959584748458349185090657701572643081515465178776349941604582393394897211798170517960440381662158102373030045534947755510311335281279842182399480981197865107848347140250935173358078698712163527459129372951260131236097213873182170964111307642949433787802034823530938475847330084056699372758719001106611972625144604855018887674187675847980108408022736919133526880537260359886761824223403948088450235260014398863155884621632725133433360735049421620192586725062607170231429949928309863274730598427642473326070153683664103100120994143083225924665491576427943948761713864131773766362305640482303816590685284723349283299659830305990182089839195860014682683851450172748238040062308963661055976191800271334999579679004431272159055053609240481249504924016468189423402815482043631088724096670111075732723241751386225172374111713191364972253962708071411151978442800696719096205043621196217471164081932910259389049492022430869857033006050270194733047187491645616125768327139162943262832899269492675445500572057554346710749307140057914821391557089095165365821184192258318492640781808842011370995179848053404576389610485361229839305464773051522905468876304698284049597860104527514591997030897240170428569059491103354847837690770661301938932572138953083894496091152252841427394653285130925164363492136618912289637417499331420612114795900280671199256448975793835063836731681462334400109434670922963902415941516140218491691676558049888659920958923485147176452566363418147225872968716366274777192950392477831594777425915277112773808133967316465472302005264497464847835647237686970394806836763690544417598361239350749503549948192170045660877345528136347413647148839154867275230272988086127560387975163654616376412833805088000206161656720335742836994610977926325845752580889780322282386827382283739563100941856260025462596938514009779664755778193600591231173117347299881569387224077337070919658108728906084932182867526563742557202692100652552836408704238015270328948491409951147121102364365343437549311302896975058466263168990847039242374444250223148160732438262138458835432372712863434838919377860989256795018925807778486579792613692119340233048372777296504844446253119875894754638853079158978108305537681062029077156412071224645155124005724203175414345615519793594532474960419614756628673103073328494263582881056411872437165280236852660180837988890203908473218906307612445661697874578327502789645886179381847355263007953912601476190443682082617305986979824794422407164626701375384765610590577988640071058174602645257372108083687751149587837178836419355200299508332575213337289080633990722227088049886840408741945159841589891474437559619590117706226084157723551023204289686030007799052819087738095866886085794578821507675911532782151067804335205431579876376789469394817258066868404540187496762341061164116685136264904431531182569800241249734164931914389493429604148044014600896397384573782256844854342790105662230004527562980583645349333459909220748182255581845841941690165160623307162550236844285792778866559949896252532354638256919527379856038585513489005586716133496612040769156188043263228993978480196600356588387420140472550035880346311526468541349985427695067916622005368176417051628875261280247053436507654123687737808261253162446279428556536410369333223406419921598702603554453709297289663336654788706952015769717958966191986126315456574248865156003354009999048854678934372200444570594694251887705911443035806755083539687697664032210939435166496329330724897290186091473197255407698852446951688011264210367793053367225847695343773453104129793248689801185774231189842485074477716561233926791087755556969307723621222152827000117513482840790625017956498337724581360073344532681586197311982732370649853061427316451348311294022364770934844027048544687860116257504625058388481515093683547403059303428358527219327265390524707295579590169044582474465714849117541039693366918872770155063511976310458552751784134531843649075565941426634022307619439188615843511501507011290457105015575067629807768369970494431264023947890526803200781285863477903254289252764274464151881675383089714742926881473397135981302799857616641572617319742754121528682064768792786054363945122983118322454543999985360330989071499484997945022632140773449054221950769745227646055252886849688971162814249034452688152144152540219309104313532241604901286764810216596344392547106176120996040560479379906405656152991981484367768998201444157397634681969573260698942422183204168777073248207573118949531643752901528399725918288054008771254369858789381545066828633477408860761464524577126955564455178956918270248023926341282069241506490090852309633061807541322908383463850720381067117445410210494571947507419847110974008389671606761978353487291030013640229768521468102823347138703587839568025619218261428181751533756234375566808814366690928246256155840150396761932771186667534509803081025866972387393860371989289924951852646415696166931682634691585028011523937366352417514204740990142001367833949428799772397607650888729668694371172017139260438780086759585076409248819882416481074898424721158571439060915961811706447244106732549637125430256858873147716834893144279341298960699428797506882249643646758221899637432952891722488580381963654550782148916401687560132754686006914822947521876907367685014478818910921765182141635218988976086371781933814922629334992762693728369236899808599761040568258983473433952825604737206087452370297378721055879113061368803528484046971121679225132401145906579047297156569101339591890707150813237928382738530440458123277165198261374683101560249018855091888843344935562810887377444256253176826306017609879407959075717459071051741773406144843741347421365549706669621667284513035051156426670135794555460777245523195051650714890033219660126162897357238005054880437705404304868656573928334961818775770453072507003260481847681696888740548004054146912367611873828180083988615959334939835428177034892676809400766971369697923270324187269679489731395787428553595523358227613923556294407409982456235617836283819813111751452667062981940368001151790212788454507428979055298377842957709816963130714572106655860059425192295831204550159806027459729050790563472066887327659529651364513937429819310375736333406328863983962786655919846207561077697591917216528435816644486458064231508974214128290919166073781190720350773287804791415393354618432351830553466505607762094157777861312149428749766788244434412357981476801225269867344645823731632705418735276273070105193218527866762345876259012021386279558466756824076834666819953834091683489367995233038479207843265500246936060807462244609282096094509397796534969427944642813801009788483920259850197079957731944118176996980436432317068011540435032648190682943893734531392424231516352455260807770450393365065826987029817390151791530778145310074485011499186834830518348047975005504668689639704071507307849424267593921610405012954134157957862937554771144824395171232700221981681504314390881314215008903158541809070082214626873451227522149826847948904589362948920685425340884124407648724745114255278428470741143528947919563654208527516492624928412960878209532111483966215036603924477631801918870848027582730129993645548984677762483186892616894566408529985534476978934641382533605092109885692425867558498236604309949792771051009546959540541122414557774526193311310415612090180011916770002873252488774280720432180659395880671382910930631809563866102849339433841529331181727732102290467147551635025428614762798991573944249046937084754600680450236695600616706507183303480016326463917466540509380526946676274401527768175840868083441727509214326500872744629147470497729511667063873661438690343641128211580801447517946660095224900740486850696155175001185043616432366881489521709013987815902117964190837673552600948862812067902017466843814979581887553083193114457106151146599257341870199709773359747784697143060229159111053496156897011876823309794994100613391501236754274679993539287092760844180166547339537933853224825492198009838148664544182587468192543975472964026483586617876894401282280854101313386049975298371315431030565902211777072167402256718107698982445894675831268661315672820100351159875249942763917186953294313426966862930157260475919458558015360835634780545885084174074822330163291995805876418285595996863459588290485491260525465406086534052482697104325696913048121996295858664041735525978358757071946954305026386692750056080593787278094503036334174971454009326670727225138619997359126418244462525804997222755510656576450010808093552858338092054211596962035651185509948348608983976713478917673405164912569448698454699443942889601464317233490219292966129426586737067966830629116125231692115006627605562473620186578930905533969435372266321182326772012098265923464728057477578673492526408603309752490148231283560905860369594362077384520528125974496325884193096077309402521459684585060622041829332242719093697797460038347521198059681289852643261229987077106476361249222539551677012237068969144769584437547424612489568423957977894499448428804280400774590635487566847200079800940394766219504121772870367978403713929007769150516809790389002729637237676338288652372591839816391932334802794184224358519193466983441440565369001414932769139634942846380330362766728239633507326691110372958197427572464610820310640698275910321475545866618753626889017646651094927583601628888042558221753711530526918071147538766592445942098261612346549849233824263896171813155487162562044434606257011517643855619311400410874511346392379526183123108132885356042174167750577993389079200214367907182990673684359949857410889643930097115926036925772330279159704125815469440611219890438438287067062115192718151284474145076820923528634700806815919077236485515454640531633934767492031183093470143564537445649710983719859349125012771332429203337863575554250778622716797550558411253532693765427012827399702408781860999475290683212791369946210152671706027016841085880327528208164771287228710185832780594807803911030223518287377319155562264369648744814075920318784379883736638479576321714284011647175473671216974068324853613148844018525298927697905902235555429917527197690018596736684133638343185223681664918401657103709978281477364875953589371720562921284845790777814155371236311115078241555622193795464573548420345575640901986540228690830728751544272271973251074219865624036110055421505290717289913293491111248333781458390850421738542170332253583709962864883300104626419724611167065566325216246842348819784889308238963200342540980115616972969387366234027595296111429136579868657885767793162401658436322226853448195441057589333442916062892217938515441359388683923858181351718914742504859912703882348123466225950361341732636920232667629318421232551205246872419364296614938054453315790766131441307929409467418487870435109791162236179998389745338531836119883983463801482567944632935923125387532524076937119658374045113595352800664944616405602036206945397754698892380530134405055788202732551871111749977610375127476805628773511712638350419769083491139934196977649116495186004405839167321481225044481518698262783717256142051017927854851505057269376256074615840254380979836761645728595402025260758541517805075082723637209193322537677689992413756739971193396198585899667354161043018967130855508518760816285767397869952168227498168558244697902089015605939292669831943527373087828713957519892479149466352311944903654397721366828774839316066570470032610497303920569784129510844748193174920429136326672816437970423198973507454236120544755238443078336600346432779932796441821111155354605214363734141936606770074757245081863104392826147289051492276719532097729308641610328922034691541105216466962206133464758170713904562040800714148921766662626163602053188839020245355545239288159149825568600984313608727123770248940892530270986212727986249452350752098751934413958695718778432731811517519807275191446871058021565558231188400436809466002901542883771547499211876553956394487970267451459156486726939556905510636290495703030964704255533993410464242096319119503995175425855461838026764281327697975517406992448448513101298335592672726665012301567764418809400974874317070546274022605655703895240892832195371899604668693774018288355853763650059226817452508720165199942283568796904242374684692628160828733419654678780800696426972905766938140921400914308393688149500316517291645554313044133578850720283084309158201615308279427758145424577238779718892773855391771427277067206129816920405630590598606873026580823940958945808075160611898549302897139350728020821942236292088267163759397450710678944110543323629786232779754847136463789576070148425862937770506372929843123986914225691237379703808337643569897143831344456394036033538767254297763661368675195059292170929553817191296022395561535826853150944520276731155952728592360098607699420608586187532593929735249290200511088589129273240903066916819045677335649453713206663074705533901046352218240822350291719543175264010262053764296949331890976277042024378531374034538433463511361717873786945154717213916472516733457648004095332954834693908819711446609680089118783046185746885573534638939244623315271824714009977335474763045312189103954801647084374572406212117118790419762466423711230978979610731951045080098970383565871880473655388225016140331096218444844256209612596519580340956210089849139461258517687971850652217465191306903415698857935512641297265478937345626793119818228712524953137306792073788188450761870599710273890523491752997322822026977031373463535502705496401634224346015734519506827816098698798187610672713631564539272949596542665304031146200372386845221773324826600489729506461386136843590910856446043043220884676267131057376692883093497380583849413282841309757498055696697512755740888412897189796648215820633007130901805814443620573492887308339192388671532117874134158087641070009209507022738397340504636478580389314776842548966969658390401070870001544928245959039086468657499963715919450186711933855162050433965027698076566669332092585183886608094726386610872383270164278707413848346016833502722923580219651472832718803095351228460077642894781012401787450572795894834213663387014948575971116544708854634881084849765838042652434582984573118154391899480439840602359844906037657142552966810708558172182586835522943947963820869489425954891059781894725498922188498331065538379222356730527554095395822634221395490866645498987641359814013645949716652869957792929090708061971319674737737789803021628563869986130109867412119081028469133001063361636637619612338705388875622411831355293942287196928050448254510899619846229691248512022876075008975814387001301502886352750065004515590834552449317928298149638051943559971708899151155919849469084050542688590713873518736624652818167083931917321598888744074490320738221200593230483775911376254788477433660866855664519044791372203704581387223500330064433507750846977872326882722907547600158570069613908661579587509154256517986779646802659770217235034849359835152148370022255143593179866804707965252920665089657745300227908127624426879699601850729266533718730502968447603768648720466256071464876212309566944767071487636502042461233531279989260251525726597827455706764657057653952963301467723269127479570234343615286320839642942149050097670687040720365094702471489066527539484310998920437497171979417048666507954291048531942210016715282234340901632510332299199703421119341671842788220492398932103010312007783010793130182325456641617804769077894692970120442900376581884173685180221664867425256289932662363251222634471636739331719235119730201229990622484974064620388190897459374338513315703428463665417982812979212804970378182340809436185348118412918610585318287304949139518951906458065711181902836079607993310227862278834295430509437245640311771615754540392266919782921485521313024600162770502853897444246789928202441391247970500678101756763862333234240317958970013349117510889901521744034663472371286672538435210511558742214114249542386230570555182405581813135804057976808212051380553780517856028503088533292701049069188501949228828732328873935280618039701329007145977443734294107247971462264459804016800818702754814023923351916567297178327648128153073738367252634994424846351125443531978052566057048450921422987324023881955802351660862582546242505893996860593010297335346759270250434309081262434437993199744853180496181992141256327696845123391529230183539704015019005101654692752875173788230457206222238492141872050666199442402891574964058122033195346200245068655666393671314762772586847536683699213108796378857627657102637510807296042810971520902854349601900702209071308864744148733011143488439410523528341270070287690282857309331859962300655937788538131179554970270648997667456196301703256356828487224080549630153815052486915161829780707873839382096394375975125238934538479633734267890659907778368226046264753928709220994437192866949724492541423769457883038440846523622895422118727547680973959169585471743956555426543730805387142951093126171690219478454270902726474261593119406839722799346515981275976228566234095321804652533951434099260346316212136456127866490944199692556467226091450598952054655761047127745312182087127628191224858229460309605279005614313646378132840742444729565614214731299720049448599978494443107178950637706779671071775017864574706537891841863565126970028832162901661058924863773492377871539196413701364903556388967950529222208383418232560661257733351177841967924148623941258864283717195949243519636153538090581382942151438834634858555764033400958373883185865261323230791347967756397483948420385480921763300174920718766096782805998803978588637063482035234197143325849692170361500848496352180466748936491958310549990937866721754942386902222997829232669501116120452937095672317404725206741948799115242101701864352378413983607521347314360039368773047766781855031784502398613067457741881392835331083484116373415534805149208865215260508240740040325318714295256370114752261636991549678815451035528324439461994613738586338604819252606973193620487958818375293316515829454929896978682811879842748967885041642494418953902829759714886720484631151548305066335243212792632182712862638381411918354866787995386820033954309146831305723731749193039972160059538387172107682124665583720773073657546336409448440085890494223957406111394880645181470661689830523314408552025485932852106049770474367518027733279473249831215851964717365782707842612377745947325104923422758373020537616720329288939462096357909213873443065084268387946916239922123400749626623830194203923462116158172157267047233496888992099607807483765651909722916002743302999976088903006705904903293878931076898861623442721486886889039064945523792319834072045772681517601077639158059505467674841974748588353988862888385969423260302817383048940006375621492449161436747566359236704234770805961528785355312394384985401286179561045996576876947563821083758236581590000264245815970900599505091850838715568308964997712576318107142948064390147195353357982867119751388304374115913593858340888504689468130579574945100170518181208059326869615180088864036357293082603137355391815076415917948772505081767398817962936829014032649154549283291140117700234501053881521071445345354103708619712518854947335773032435784091517690036904460740290097938403123604885806866428074124590491524716967817501232667596716068825259405099709470415449825070034932837881754019834118866766826597012918159356833687047603913724405785065336761676571896204489017640650006090272486461236018358895998990956385163407704999021965236831102478093175828512290611154872213368415401724222730521809316697357156510573539423867846327587137445073218992034097476637827960967569971134648487527877640193492692908170542312057120223845553722416018783106406844870475595311291899176484604514332052587207503448067609715361723394318758939745270905287511970178984379579498887859085796067752078672405234367777102661652259699234368319035967741375982970991863816110223288770644196781091314985252999428342450916523092639050262489085869215764920153796307620377415666276654968963561686140947884427057941501523933671535513754458948046591675134841595032123405659577925043010331235893443661621660832404513553318421641378885219526726807206074921509754191365686187625954654731894580191295151192625634888453220492857609867747363684936258631638641074248232058766892545219471417537813425723356424483490982076461532496734447420963723423506970345213899699220764406523365538141074502094322459906668876942258189545133069189191954849630607990161388102770616799057921492777772199364340206288482392370614752483002802889852681465092125039201272463508339820299947752766473479200973804407959409283591015653804080134769093932344424098105774557604848980660033731541327707771877350823151897800231048585670503684836967811810669655856067546857956941614110300761659932836680189464551963420050228925539625504719981667548662163219408287698763499676914199498973358001883278833576787238010344661166266012327201043939951844561274587101467199783953282676409925711707916663322203885969001617675163276120194277698437007603290186016894333848684868363114453102493409827727730151545743301026828928229117312116159039343424936315305393219863741434654671088533761374361648658873663658105073681072646138801543201840083375722065769579874118819014408996225904510568926545571816562395890355170890153837231214962286924157872169252681677798562988708232777482096666832375624926745465796082330741257477555294104078913837208604762639512675213220956276729517251736894581871683092722525150603679933921552902693846074669612520339868608022646697235159921797220193196466846498281538517610493183076907310616908967587464395830334649031596721995418427876421331060249194222952716279724547414028162892650249978941349331441924175870865428643829698074153237596380351937886155726950310345805237886463099324372116030471611426509789760278127079034719826815466729324526665207050777702458270026100884780446192072384256574280909194428054298593159767536788166882076858918867844877096212531963896860433060019277255600071435692098113768969690745598651385057074253172678363897173741099946961507849723833238286625736909455160715743432750891657436987603141669559903576504582599598308800902917418917014187123453739718440027616993053930292893464776828743136421537093005468702600176060957789834469353470018556927143232951885683119094500810456325509254929486003245437079599727460295038349919136642890639921646035637165193373697605639178235211144414357698635642750675117792236436091523705280851556212876002328085527749094198156330728355446776697486314689842779481623700305538336373746470279251281603496324612343169774868071520059440492722194221491143244916189613899751353510328618859240182868927338832745980508809766778489491905455296975108979845532910757776436317736063178000959876090354867378595309664790258764322815984957393083654244106582853523191727825040400808857314831704625285054723962882284027305824712330161052162545542300149655921958438190048880834018030443853278593248983836052462833731366757241824246941598757966198833378777499736712572603741021341576139775986144838910034070707850874710787012507761629840054493660532983019108306336603899501944043372476872887189589586058858787993153453239747247412153300251197723413751349259914451822241151156437747662153967108198894580047473131953725038333300260238846190821160615470583167232763454918918406761423270547430473636924200877179204198910518891815101118210570128671345680987098632989564410465862385349787326357574952402684027055668946156905559808579069939422897322719599841288671123353450249273464073634075259302952060317535689525853623927437358958951193124782499310218909857788351706952514913115658430599944285088228816161048882800290316727540983181547546625436397267558246821716318552897682454989803970823127301926052528221042708185432093456600742998636238203199182489980351729655281955558902411919857351607137557665568357451102523656762018478384447760403057610525495994596667797587151583401989781639015740918584728722230733477257769449304042450081082459209053139632670292940455973337516071046690869817857919161382714728103717544190388815849209319864272967464207338575834047955189350893800884866732987510897702748121656138283781143512709994718293419960023625232073311037660529282363725710193800811024160430332959224286395390549127990479389832911693079214690960495506826773914761243732515297237508485064412540624150974091261647106277436174624101819720585924906654853651320542486388210748382331090893695307161844074798033798854727713755520971874820153419990592626445527544398743687370309511903012278847104273186855781164598355515726644216203500338378969442489903750654514432998653473241429684533161143412760436763177165820469115337909659727923810960059455821465164661960034212068123364428140162411989415556544859164292868852861387458763060148738257779403774565462133254128799423725243649118520232872677661952611972604539629340237764145807219149770604326782715839289284742746849673982368420496010600039593001890147823586838195929333792572075442686674270322823744853502742681062795782483407144158989729123172273757875516036201689269880181354994528403318934963378866014737623890376602029922705715820741454404941663781269750869380021751611915794735932378410150265188162416551737033348172113969417717948896058673138982747522036020112282127215171147417229333648631187758640194753603740068150937765840282550136348999277843585343809036552385123491534593054983400119847885758561074074252396587018226993839749960433893276579064929526035556591913015152164620670118482960413372916173018211451791169494137946085200885414009692610654880843727564479110008418764067666310750635324013235278552245454369068920242745259823053719033913902480113273231310502185220599362828914191082709397380686006413462025349042481948657142560050055081126825988676873840484815958026356314354993628525055314565501280298556299586264094418183119190059316370913499166286251258944824679476714203833328152551763997961442103443213073364576709319403089457702984035805836612041601280024533965671788084703350601065134957112070394487897787691374721149071944045587022390176128120420683362447087725921536458434249895172525347648192093783725310529484192222516256063952869948301435518647723603878854437963511819974237292990407086026736938572266382201350976388176886868554055898020027468193391238378384674642337266827594723992645441482065724945906435235722442454977056677666548169924069588291537053654787606881618075259894080770299198859601512478491608571321146207432653946081113452782489110149841531720723863866789526330962922439347467640718641169516511345653110486548999559139213119358719209530438091018768294837795502720082246295610936557109092879023294767998538034890424965530947701254146233300795261023364176911917654012079567438411889773093983421385165038691492548395355150767900486261329246813778048469556279434064278244236786812296439867198384496831390795066673102949885084975553037093618487904310958496114536424154347431826080391661954554907039849970721705820378137879049811792444843946879112035894783470616485095580056572697291033900609267408686315220494870771409763095691430798455965748891851285027793835397646330839288125514288516687010954727302275898537679886422006925293746343277263887151153685998426165006495057940478933334487891324402507435173144806797854686823649096414154806711466355169880649371494689709227533554521373425804822588753000307550806329909691441965237713564736582823304687497755650551040872368071088357545394841198913281278295010783252791249400588991330340304046131921928863138521838476905230293753220499145512486474242499783375205279409598080640679695879490062509059274118139722531140116108939263879916276973912869248745086946576754613175038105099416817160868260026718600516610654761241698437199307259922292134215963197295339214578751088322956961214495339878115109783564351141041145977015805299206128968448711584311986330240070985984755918856880434936229209185768809142825911476968442980125563877206613849716828474141831938239712255392942321039983964591282552179249676318913428794616056349480798181565612299649529719451238801395123764336989424530580343786328259677513675427659066271370313844815903095544380798691369155677295658058436294881864727153854533808472333854328532112759635934535226340737222889936066535068941010686422270460484032651061574816979723985857267859622395722561468762733865948177004515118744316371003875786540891864098031918950623364412501726366483155282419540126819218431356494831728079232734967591294766680521953946970751956269625291615693337828769027471480224400490368930979076975598922734561488466935353737750123614169865268369662085605932509738072712301434656808530958300106667986645298581558483623461291826465325091141795120147258409185401576885087476376613249956038343085638529317235647879555837761061239522567576796721528517330589247001880470876489033832667373318584665970045103706021208509865528554608388952206579168027752550968561379000395916753436447966212488129333864602060304729241418936278768113915718340758991734056482816887141329157189971918865326853490009282570084810066245449805420515243248724622771707870126976704832703077455803630125912762682427556296993954021050404066468502467739030928130087557009238914149922459045150145898866825301011054388625925516293781995814524663438685477487176950939547335726894582368145934189067544991253744654100581837359855453104624606332490503402740668605139451649440504815233513409236745899476374873448797674811222271068216905919426604730223471137654224833967153854775040755919595279030230680375730023705408228676568062028823144312986983827604107259482395559197544805261194994110447997246848138270346851563218267283927375848298380839147395728662866742677225094172021193234826491551822938869948761404663909141220983004422903661460244855684777392677920665652325400280574025054799663961768317545153202293202632459167537932985983525768514115521812855356254732065992766748992526183207087867692623556046711239369994368795959867835212452742662955008333311493164630948668152272679636370584534898124501576292991148969923406890665273990029898516444734803139458596357696855162155585798016946726531419194448231457040193196162699535269683970668531693324749286713557247626337439486765517150673657524073395186472412529980944754085570256450726979429561533371536152176642281639531589915627861200253884537715678273008578970272477661408717681634511753383865164576352057484244904031649789142100671066604471648682349620977457858265480535967703554733591000961624158176248176867655440417964584736336962801678144814289157540804226078520889579116858952567133626205069077872089193348800389022282022430602151676840370582173265738664349095046463468354511256107521712542863752883195692282453902722471763684766560362667039533523816677384024150981469190573929122667137448847703378306038969845540752554157673339953510686172711577164289345875848322362911070237933735754390385870194592076516062823819209881565608830072270071826401244246489206081841212330983380240285951673945664293868159887449490921748052732923373878247136367898310828013255512309040299621704105108352458556450474087829764769660988710439370398677714984576946885322804120932472908684935256541691358467900051924997857025727316463846898066088250685342536226765695145780366122756689774590259492711639375657775756874103625102723267535625001051241228747222275686670938348902660284056990907280817736129581896770579399249810268542634422834953211943108777386129188560262205433782302886542826747242109686116246563233407097271354904507332972021445855921669197262684915959792628418674642038318173659479780003990925192708864487289984484061618410792049651725993066287353758348692861654106675908499756011696371280008604479513385889028530275275410371846502669882054989490380396176457915257885390517416665974755151176790653121999715370404735582185772904260788952827068316364759198427580967459014854058380047927534341169677426649116420289550560571178391328910036733861703464976806609865417433852136402465161775754373917231848208886915974981836561177164299550724092274195610225149173182699391409828487504988076593416248114646763842184381129361226701874222317661251425756686486380096361338625154375969784581654694049299402888504275491573414288238331333205396661888539221032306209481141291372353856707880163247859803860548598412826238525389480156267765783383510981480881827252286005827654862803611106191992233054250366998230312157627986902832274495334801633637973634194026141734682471186411470392438409610187622717150102313291971876014038865774380531083761879018285522706820307365368216745102158331334681079362197881634907004172784665053807191295224301612502280979798604423172090115896423246869065878395882879899603742648368518013876099994944755534498767956817800200795088573631096144589152801749887838873244301863468077731115949052212527685559904217559326096642034065165141253145347481353042163927713725224812510148325909144565353454850906580449738885672977348691502051724582806325694934901002865480125380375862333900095764458619872562506997631040273690631671218604724639387837505211897673679911550668149015886843933850867258182645589207631259582051385356465802333685401049481327247909820754192429131696739098736873644368859025233076714544397597311610520582508812874360685388079303490012531167486254704663882957000735091905442643812109103402416149569150575461495903979637529791203366078012441231804513607759659938268672452387696317495891043470060354869758047692628192975215919336746105911138282973256849879449985486599757157194693095366799084272955461260182378416014455056706443192464649668153524981279546910694444954977249278913738120381341554413514380530146196702852321962801225334115582302885036099986171361351681313501372256895685698530650051898293619508159171220762073167682253236724080409906032328007112161340204097328321263508585584213367059385898955973761763561194690820634101735840004238294442931552058279286264495848359805850509255538368740867746576595628056121349760400606984574836464863350722742111619784714149703823919607982806061048851910447993414521560811332601471367650008702695810930416259767106405989978342443535232946324958029102608986113556484473899244055391928764877478474473840390932067457532816730999096256757124770101097201095926285146685136070617876700727796565092470365045790753470639242061397295881319568342345008427989831062090995361930775174918419015919443900937320947122020334092050352934099093200185368327553782831534957964624646969759141897708007660034782632579415668737002315949073688549498307438785403079082989546642293595902545780934006729933960057316885038343422019749959173311929401896363053817432254221443048365027511666872222748194663969715855779144172428967391938430449161631014799436233257536149107975501031587932516453803840453742055036300084035637879830635813900462920462181945148709703608098403814446583835640573838334032089945221826010541864371971864585672164266743164052813646928278197645380679783601601002667629627441583696956549422533450462021911470614215300436169757720422957736745136090860939238100135915245729466461751350863689150535954059936233899578145688360844148182953957830398102039819944548583342962375829471708826332896591156717405255348927368092041632680353391218235476183575861611300189728790581327097767259235919602387688552184691668515235303673772457260982316548918653429223558221920603801417626537224056682318924315446664650736336053060858562553446872541717931588968844713834042219157469762540488745037338540203215535437888240780924829826431836377428688431025928267785199738696956437456250751042802806064456546466480627985995831675378114760435690061575507336111308535062278716511316385791959923410826871019700184704499212325465597329329948673347364963904329409142066716447416228067521363376345192174596775057015139351014918851086805100723854657675563583101150861399362211256458577272393814880756343868085416205667719890783208939727425847588543893478244369844935944154161451035515773893209065459754622385246598380576703096264716890179076557015870263067823998924679550105841130189533598127712378086538722321229888224122292982231926967017323597896847426097900559856611341955977410876436839073596970412957541708543957827236458462139359290259906338446904335178608671588065345523047211907030163682347940773261016104644294499212580521414878988930955395967099896215712771523222716666872159055229933449496620303309856256997478987939675137255176249120066843112185080158150090091821065752481243478662726133231410938609731633035958390499364840869834977794822875779447892913030504822314308504735305738630433268902488229194770229827551141612031119530857482700137684800329185738991104534873681328465945772496238140691869048310747994939727033241922855909080486996601765812025447559804905487358956957507151955737731155332616351531940954245915642194025237194175668045618532068483615913773129158504968926089322321153403329565425768083937133277124674054820369456033829871730889892669586243849810997812774790849419199697338223752859751186819895247781747031323587986137289458277020630628988793571445030478249063028044225514742300465000668879379773991102566682073997421913233652584940728789964207753313931044131582108447891404206923889057594927888072465269449622587929981226727509359202016375357761989884772827088102871088741587736629124663289569282395622368545224429932934932018221971871139222534370426988230428051425165400362894308424658508719274858917613680792719337845001412219767373706790332293345428342252382963899846268235670694032359574415670976681924387104317499927314892101383574113494561334734022179912635023723598573163517994998518891454972143428926484958809408705902582307176773243492204364878277105144496416737342245189284539909076335095719518458895192119603431227088855059699887814580215162667492686329751884805276299646668371528107577886021760264913580370835974229665137127375075471021581448779729543536644538120395818796143962267103701005893253803061723474207645577234969087415860338106232954925727571682112152596324573377804224804567064883686016292140329826196063252148884057998534747459288082089532654997194571495927689745188312083188955407395119429088145928260663799401004488079044198995038595138779741302792658306375389315275420733407449696717308081072243615924242958832341285160398975262011657834630807641253628047398621219305658177618358838294230898632576296650871850124793744614376230724120493303754625947478837762509192265689935239177868361462825114787057318714548737728879726315030744298813955847420894430565057220107211771883282036748135257782251253840174827626516365557725595467326868697135551289745122170618731708590000526405816731399805628955221716950655336066967314631972981630658127214208876708475566496686491250281266824346396600358228672532805501491823958772142056646273775737567170532140283965956182089000796663684087084623569823346608624634904328223629338879997241131392569881385562671959101547220628322355464691932525519564580513137606805296665436965481891959784891689125959320407436399679787099500388631001056060693784639008129115566028672332546303808487806860609360962613259707230589069072177276247493311979501592906266220794734880193347484474646555279442681433321410938311313041912191627045114640001466389044483015324623574005762094854200556317530251190586608700254048917674204614364420440294861766806174722594138826061945411686033741804222723603220132588733573239100472156807627017695901757076469692325181467110925124750650551940878336887345962249676154261855351397634788259949016949252443504853100526459985177480265571335595876548050762815956273906055885980439355988312758192586984509000671018959563742045111803154096278048197696797005585495410707440402955497794508731820977669307495945257593150829799498145286931531848655948514911644501293495843452634626986770068419771150221508334343307432198264773114423818162352720229949661402393388321153822944098114278997835415173570000709000827478906194132951817511423899527761308150915034404105562564676815982462798930018755878885884523528775298754712751727026746768777167206614851373162607416886929751106030949340812835259831145533713922022717487391570078259986751054157541090878340746007508711154991551374380004001270440194665317309973484177235110107236144621570260341766787523652460530136077097856582898739781212085267626169312332871373103957281985552076147894165267950275620377233995298605536649440721154809993716405539209248304046965478777579733638206149910818741347682317981925966304923947496064542291791010846618759768871111172423709757215792761495634415646721554495682861695171598593384501023365429205559027074649296011017591141060246161538148590014097431481541737986331339148332441395765674041977972621250825490332790403122036661590963774036357090879260809420671325026416351884609524763975578076244203023500440544470959957238836206761154090187240405679658835413460930715556988801934237814504145876490306323545904651252156773854437774034541690782694273262726563117764972163150229063295415275569880830441982197284354434402603781790290380938134108529273826292025532441349283349612002111752661270699451200196469237771666720364157811846256479411981966117752234518983123172108213268725769408671643999919602639024819622456057403032186323657159603601286323489549963959843794459228226542143018249798321326824945241924265078426023745034066946158380939363232290101649853269605942873613603910172408636012850084881228113334565995868426105136697430233591606727185759568049638257907617450783616677045629479802783314424877014790384261535727082706792606126457886173677259751513099740826584279299124952045719659025327204347975063172348706282967900495407102073645980238908892380851181607467772613516069164752795664003786731032379219407105488324283754401096690603712318701290302466879622758157129740913283930245077284714138321582116199262383973467585760287672223003684326741211304587773086579074748394818302872154044506155818347747730715480178939648438667145512794917388803293023691575840163732460630313942689629742587484705827187170006875914005194965034156764034824428940168026419084041642329474722890399025598618210200134588809306349561526804889215265653700545930409317048907685234529034095307785197599044359257025676718066115126425241501001560635337641114017278886079358021097748986800972295820565649021593188391053554779854141554372146221925762598987481623561120247998153577281268903927401439649215845522236997673295141138953059911016997525796191582450780936581216525550697082906567985267311361574037905836375529738251077513110766635107662814980781392175242682914319971411860551717605285847294332170170033264240831717635665538455574677713159711358806110593548432868845459321985136020226501045913560384516404703713355680261323607218595307643225395668227418139250720725034326503653177252170140280326525416247605202638008858878720492391876788789825634632928900410526473054274778179166024754038256382894731329462294479474683080497231272195462785025161905288602400218526846480258402425655375944240140070601170911577263670338525334483032324402897655279317482657461177558434109301426437827147149216381657959626361357018319885403426781891948184137734603581897694412818813810605284292218357872371170722360979097415000033397898985352380992435911550865020101036210563359254489179057772151086723917522875439793578918506827586724389733232803427752686702540856184683975126615272647544250766379549416961888608638353788447348237888270172963649363395073984442376561786081507810219299281930354439996053880385534153155943931672732517128623928723075408586032470826855998310741495997197022701381432625321950896526379561587416315030217648055383164233432031333721509794543304967022527143115366657977782399738741706937898670478735789511293889912377245354442057598612029360566954720285022547432370980874118496165331639730972634335501938035018305976395101254407459054470445631768570008276580776898054974522849936271781094918824179807304916171674214049303538654241868833616909972959372127554108368036413447272755750006367585285299455576193755810113314722680658579696700368666786569606650293209173551045282707216018479625769902807057540466639678885611602368581652174169080235550923793427086526896337691116175381304872295265126043268951727686299903584419707971581629516296133300846508935721149358767489137137405406714238179108741472254080770799090727511443899949835216485569350073211916057748231271494366951072412170914328444311976809813982201365571129983148105314805880598142943188903835929106953569522211675888513005890940079541375699030093013734159813290773309121968101934534834566605128280793661298840684903031272679699961358518841668774315029252323301628072652819632199923531567396697098448605375879040381583772492323377629310306602273644714262336136221279516155565840856617622450209182468419306603831244942987140198295765680437806741314284379207404499055520528862813466099680965117515003080726754119814794738440666386991573022841595032167476871114962852003348793273777761393289404541709179021929758023161167196353030234722493617441459456093833385149246457963162616658482814457786252136660546321158604978810811481324953556846445078161690046612120636202576314039588451994764627424216875645880304784286310878027959655402892979733736186621302133038183639064403365899258992658673102187362782197790735916642443270625997835727046372974694379760139973774867577047499055314101158715840542826632613902552145970584471746659435852216470082807876678515596723833814288264934276100171071247318353367761036126104943559256800287584502057015258640349917276068351578688808196366614591148549217550513772884614780551107344680371916406021237656085969432241877403668511279016412498165967980999479539135115813599012728128430068614606145911751254542505607271684129510166643955526786886458259318656059220288003479203873490184733377771257509163930732244178020559764284362284400741354426176535679424356993325063663574419805050176277021006244459367775032199630491880802790294663890258450125205840260492539009630012128387748049584741268909189699763648872199324569549534551723557462031878696325181457303420958813537557095450316038594526046777475768134738059625404597060766232726158225272253001349651378886219718863758585946464021088524324937703439726557324285926265052350867197476642574704065205247449108533868501968176260775977601543624103645540835471468366390431530461489895546749929508356365093909092557756832504221409705660687822277357844461390885866940694912746064125963303623675361614489270811678370613663801196090350534899694105556024729318379724703331670522879844536456925542748453111017484569014263005421014840919316567518024792838311643664849439429211776446667529083787499843092234167690870966732865309342083869148975555018362992536181426221457447973370149608945367499462905255060237506260468963602215212129991191061138174966699594279069091429328541281756871406443618615545760634284468689534498251341873031827494350367270810018148126878134582275592951924411952259029235467799201495702196909481418155306846010340847610412601027702720453298349874595721047783638765966949639283977266934353412239437818230337794617883618603565985776277460237159619217472816937913482118338966179678019312279128887781063352635327202129775602557691221403202916240113931274591575275121227609509784719350506663786306242041487260756523359838878276752649568933789745815075853776109114558622280930474900363918470099741655485110258417952999928416030824582838262101877018024424910124985296564286808237554228320929241643689677731924311685829191023698921390202670572660060755431943492379442622272998059322853528732435330236668841408420770065122547711759850761350542671331871210484450084094254141272299603802904230014002205846773753002728705724699873458118078451073921137182169065980154741968648104944430881440912185994069866564054632622736776181844147402400636423735773995845231557334898971305429684697900015738335143601145222249139013294870320898417296619718849098102419690719095849439650393479298353112512601355291530005807998699752110655220107530244546906826178843916190325181217001445778091767770222519240097972354917141912325520635582504835539228367854607466164170880853153593179976095851359474290960082178727463789335798014322249845759288843563915858950647971593225176474282593687762228787654546475636917016390389003345930422905037526074873103630019457866088065095662184211530284990727781659676725099197861240154984364388180458256518393566092647969908475171975495544656233281003405999076281615837386486480115124581116931677154150351800127824966193190920901944858145737586169283236556827073421848534945916251885535652017497919127442564859420717127054581244182715390310572706173003991531016001741809722208318863509027805776350705462528773250992166255135271719723380201110531365231211092324664954512882020231514891964880305003365170129667503299327598702464828774907753141798113684911678735038600794622370393344908122226129809078377328768334631191023937106012659106609758740855502941937554303315908597369760951617061407651293768970894082744594120131216159373622335081085466446996204903976135668709126354258815242094759910187482934205406194791298588055744802190701283883772755415427720051767497000732649667554566412680831417700940825951505193575792539656763197186333002112502623884454161966664917429089532795940457910823024537339852029122901141844940869871628855203998125525961025272051968207733381210390565036892686882788446565424495239840708035697573883072191080741334138207890505191055911728152413856086586357889618672423137478925200666288021629647254082631229788905161240589388255839457990542753638796517706342196151203080223610577857439751477489109964881610399501491585711630445265932627110525212907901632797112933608973465206545084376179189542150274596963953164658864728021601189001549349613593383627482375367261593793231700646238931943053704265856357479617694554320277317915575585631673789288041708088560438765221950124854416763182776581402605515279666008405486823665115357304074051020307541216399199058875011435828047898055891845709974934501513076797532542539555533359942106899256124895919353913432428544657402066481598373571766568143029166791587245921308487755186459015965665905732111015356269569162864952490688022119191346121983755980982798517280648898243246607925970551379876933484669641836755146979990779356089540737007217093436742028710040136772078175364947787209897236557349317435796573263895274692082665117571102061886845100990174951163504735057238229222219033389401520069917222802861924184159122987304872819031074602545201494171197404551428961390344795132537385356414182492200494197668058946307253878567101288546523116710436575075405199037868847133501289166928530463478117163266818101604714537901743176566915488743634123755498548282988985981924064438924379860392725193012728500341552151350495930227055786535384262682928965738392058133719518172441866012635299951077510051053306458048788511502188266715651987548255088635358754142709911933216517552744987230128830781616824663079105545052209286756874609260454095357086606953224951574593896484762661232783169496859655223327844929357559464734114727410237775897416659904890581510001252896871696530316495984555804655752077760550970121663360461839070716484297769141258438603527387993977517304051307221236428660358199778341136632941636159608049684365371994452976417656818608860467427436818129222256437196951904155030156438325734786925625305693452426678459982828752934756772978144460092005366840010018066216015012940781640947534555213612626088711089901494165131502690979656514616735610310639133570696864567330488143233884533308306987475446596282167521714802645593872333548730310087870990662132797020088348477834207669849715504261776774351503999399885466880210154814262654401209567812166618502581816206306562036174417034680675557635534467102973270764672072160366540503421226259102031243203725836523166380964627599912267462445487437981676353887350840108667729386719141771860220552545463969424946179660943359151884950768365635430958771149377839746172098874866118155999348586311800621830363270159780400055507220500179465781924016874321881610386461195653586428025577548094960820055448662775307416884579814440214869371535135084803734971298843911308016958993699837919340777329731320074975514520940424202995555951668566541253539372213845645907680627833653317468758325164933767226529086006855834675970002587567344769231492982301440032227411410304985747952985703434989105150577405623959555504948096937581676445828774890050847619303661930269254491638088334501207875265109326474693979160574189081906822036520061329457437647097520658763744509993862693920442752028176049461589136814618885629054587018333998241749046206643693352517194789776481044881053001772157244043696746081877657899881912914910778285463047818142397251696649522709748108687136051614609240813831348064554615195535626225644009608820343340771839055717555187289628112154237294415574945860775631434951111986931436868998641653669950535236523779547376675868103632823399354554075729435098689944912139472266310850141504582795886226635149685817436427943210303990229310056714048334804277519417675106633722205836408181960522476058908299718445922847367072073159981176437279831287803355525338472276040189557673295609302473209158641362916801986409015600539054538240774572475065051189608164613344199660334465467763799135116069727007311097836123370798187062190169958450019635652879661683341063806300174710571963424530246557240957689941653296686736471360822722566329909390004121466571448874662008047421673347327849686402101164493002284567316474936368532537820679286759296094689526646233001863716247648635843261177696787737376142709604667443740235517662456502545797291790140213369382925586226459023928796114801826610277981280431034871235537376284026813766922450714248857779191245845620822247206992569959511326123742467649657696346459714380145502121624448579547647527315999540402223648375162660204155243125580073681203308510404083225560232411922021023945796126562394234159932379241614087505773139136420653128780785576138994480094169284164261122909689433945340986268414912305785259710893666037570605312825926186514320316513199871115902334064563997341716847768864651551933387061535511741915311195389045051505939996443199732940780298035042086820247412799224454781557150254610613641130070304032590722489570754776020968770059403927269100913251900918995671104781741472832150393573495405441109673758781067855582253582153294781903158815044731421995774669186906812329666426108463541388274121594058115674174034288171386693290855153187179310904815430517867987791614180080556536875110861463882207599366058930065051366485261940414222530095474356962795652200249192338666226830533283426917938147205355914208331458148070936097730080065230263347113402882396950188213907515152418024001895502074858052435023503442611730727075049931620418531404811745748289444327855422742356400939539370535736763084868847810519055316975228611638560145808124010722779426820408774267158839064169465832118274558017033654253247400057636598915509184623722253770261056622836238630485937362459223025122892179899402443450428268810879631516509405163985944764507790508229348623785755901703384469025672806885087396114270690771897029650028916783493837852537271021521176228378629621923246253421433391531365660707437022075345355497017914102173105740390213799902053540797071946151356940174424516199114372513711285821021629211304296410253961644527031662751721804122910360222735062521977953985396429487988405628123901083465238773888911089757313562465489783355767349291038142532832610900615697459723126591805398221854370625200916890186049591077081170099897916381584735977050871435260784879813681524673154065906530271161989490073251919730764652369787907977586922376409233580116404856241633359116653785341646914135247378409522336911111186805763029072901095048806618206032589219680027838414957104136404856348539542848914451317072869850864675715025231414714762527421148077916834863895200514202607074086349726523125659726305419096800725628976442699407631938749459206913720617625041308528469976442110776448898053610500047738741594146890896069075165012470543037700247772126884034431365451478040789484460055247785425005724542319904444787057761995693838129411965056975313309831533702271073208255776828150974352114927250380777288222597520532993995538382271932735650169287502292584778943121707067486366678185726955673330045622559046626630060042800166393234452492264648095300962353314543734587901243267502301891790787804194859432797385777692807254066181814704049546298809925185820197642968203608393213153960436237523414312273483136495203506266564022264224420883234421899523839625610300908597943120085719113414714294843406779832498711806710000002417186902524036375782302349771274988719523943838791456998003433172119734540818247882419940694958436837001526968068000765782476419481829436956625082128669921977472396946409446610820493212932189178605471940820316379172892054725568237800994207654238956938675269687434497800694888042393306559084813964138010552194172443726941506573637703993856735105508977615556881369705518795765146802365089192719378924629079308621570036144055612022434495296853279751230399854444339044349245459171363551877173794553003377976823217721007127834174849378962587303029923108072339405345161715728855340575550523987091271042172176067284401874503669850128914949925925000476206744463102020975956876696242706958281102123509845904049166360953592241632518614228689613979970644891529257431291184940944655116402208782874301623666899030006428905902965776993806755250921514627383279658340750933115169956513840022658720586827958161759226632748917373832363880833683504410684176569426932512587194952392630710489070763858851729681311835449670239992076300337997708123326510603791648339567685260546775594476353756622926575805445988603951730927518159088223013876305671827651432089860269695829737283344821341792968033326031222524158232426490794852635696411120480598590594963648787657149020851260907194046138495544982895547888716028953402258037612751710835016773961358017285008623482299908263613913270355175946211217002442910633636479802987903324906776298580403946638954270521080538518863957362093450107717181220581243153978366473767744812518521005252842957524084557180029287590090017432282703061328056063300304957823977777765956036477624054979049709376745280327501224271026713079198681736951416795439657714889979865123798963096214210297141038849752191946134123315215983803979243623577719927906061553043030397833982199470588577794976347530306473306570335837705433500924772355871365128680772844706593126996465295016535021587327983646628172555851847845582283845360536324267595914176074656350918081937315335063885491946546685459577127107775894344590758335936338980956057286822449722632978848504669985923845693669368967810839047640618773909915822076228825524280734170670845430623793080456454919325160762837759812118345523804683391200081899914187283445479588642493096552209227292839372744224804737257059905162557718243046096053974528580022451436977974481548316904285764942632895560033001044899877580795844563484987768602997100232962714175146266959054263262991985694356949991389197992647755433183375506828038077113917486007022853835630323780622218434980071190091932518689722938008762959177466012308404954269713347828887659462844614398020899944503160349214981993677063459212228229856085480250727069943269805192350520537897723373739670512729307398445159234667307152289369436107463858505610752854676484144504325660010720073923286902252508542588953704681249720148155314030673451176826936493306730339229382291874004387811047688008911205726421048507205522468816291272941154121717623103752590542979459195350330205470923085545159500006979550550329220481787678227026898529040685767701690055302945149356885104610153912853383977279766402737724208404505679702243110260046714211192625412269021080852302928454151040714079470143216476904465471575729754133422460931123843358518000550400012330318853275070978121377512425412889027840464065656073200633887661316621669913205290431856636666157792468109158603899403525962300983724950385253229254545497084372065435122324782694097820861000359252267505958368058698515443765380954777861192291152898313911001380000705957677988598208111863372731565032455176365461917370612264339202454862304343234412542595056685099647207677280425383699145541642511470940718042411720703487293264512050261650956360362003319696296137675629298155578591275760691817320523368740351088956909802123081119653946592775417776475332184848311562867512605811995069465269896291956399467718945263708233726389538598380946697326005666971777516582288520115774495063493301976320252931893272573980956551253149514533097500428455287827623596207304697582442074372313830030890968141966947856328665603513888403104858653228794131287211207828446539982576086013446400702270723315914161175252761750307540419029962305083361948675911228826156121018622236572001992257656778700946020987838327736169200169807763997465324816975163139945162242738941804300172329263311989854193028623291338569255646440255420222070885305493004079702650794067315408094557933642668762055368705536629324908413822280446819425453112197178080169083921619454247693031524954150546923853205077129359396349193545518038360330458548674583173592263489884733700339958719958400550337486860528034465177116761676354396489647482414974369532948747946951089629473925239423000093085010244964936527804207551434369477435893913212244580554330848380811168510487119071935331847685102017254586455307684619911042044018270445410808314447973668734202926453959289257873394012184391632339599931757574304751858937681242985637589231580964744229768645914581553538707924071017309046272421639354042709798425226542704945449697939032288160694981133973970929880829033633867033501722703101004805015261898282251155884361959156541565893007852048240244228575445449595756778968045075420879629016058139604973593723231675671897128062407678037288541396417342252712720660067948049556967200500178445815239428013254039480669556473254092507753542179848204387447945597199834606221146256259536699321305286977181620366324256696198310865398985563480223855048830299439919439524644326107518524649397697255507334569570536153454359424667616277741563776961353053812729440209500421213631482561902300312717630961406266828663582964751115456566800797454986012624314341818895478307876846320354307190785859754659867183045647255083784254001769668572733573403080884848102678128087597754124020282068305888534261585103500713865430015018024111723342071755142832303836302853923051434703913342436560652868945408520534416210204418627077314328151763649176165664807285740458844023245400196174105999633943846607907481211089711142528208228849335268178909081267167135676141208697432556011418734559269787019354895880542756902841817871253787706758439611561322824627073135210989808241745187621827940431486444139787049750604849948012975124953575284124165495985905366269728514195564386334383282378424885361281899311465131094165224327386671866022507785950564741555174831838066477891062723671740770498137767094124078715521827095021817150408870804344335966423034844898608823426792356323629548042536066029499707801913809889290338283212188447643573663706189250881380021532100172525926714490891922715347706213913970547833639079080206788421038933457078303605466613511977578941214362663848030047913070560418410272413861799583321572485285240124974746991988897275991150248067114692406894210672848708378293192619631547969900219648321028434815812798522478172295843897511125632941111572216462632531218450559036819766570568010985088680449514703920951034965524284378428598059830926065417180481637807657083111326863858152944755850234281303397431144647501625114505277531103921584251273511963335812644398797130016826122880282541576509842586399392269448214952585032481204068767331279033531478134988634421460282264799269572806562220378055532679325770103537687849076663633144799826979804214475943995771290267675208108934795712339176584829512754369355900206659125230841613001171170957990876856327563339135674740937609077039937135965050803068522674126498573932030404795821351647647785572523155145532626030872780514456687644296707272160466313622934577763869587477822300093080794129691277982196392991213537904530087854658406070544117731212755258535417788392611800009057312169780643854556748461995901299652512095556589712199960026643064036469507004402458702542363361495019165414659917237670345506041147819899365095029000101761287867012667637756039013515789892407622498244974789379475391096920677710116847110597476152413337849178075462102308222347045773970793081452510020462733137224654453022486987972099300045747942617859160864320705827558763733129715992631884126585833026430791229777588676628552810722339626680865543841392107872752414203670777303938846119171875156556427138651895856252711816136356585902459239159888671540829217634448797720442128186660189694503897561128232623284454476508831798812641287404878983832204837964192022442201751085598751586152901304658437396211986194974555563906015587183350848777105502015224512149313735293834816866524596721145484856599058594416823775477775027014275068109055457008473706748061629493879805191156417111280018147522230047631021758962121536808642321505685581228322674286090608975156621603325382981914967234640064684189719007426145804287696227770425046561431943925346254236228107261957290931429330194418435258127433124065527847352757332902563901174061037298912518005605798514948885286909021168935644925821127562016699076826872659920137831223091774994644756817052977687620012681543075868620220336467245150004170982551805449903754394474072146222153762759698877587581482702326157203631062160115928889486398444387544097891304797348064018653213923569234850115971127219054048079045918497528278007424518283876504222063222276206881279890091206007450928355406164269430567085192140027537909756832935654552171411038421860635585896507624852171548278533496601441818423375656853100896023510414284809616721910099661311508094756437640635414146504986307248718117595666012177891523166823908361508456718407516831761843314973511923642973884177049129195493777758601196197334407956693309085449129758846816009255368712150459437181496086717734436051099443826546394064104219384359272207813383214019820163732912704951051802854307430063785791516133676346015256743642692882891173273078779171773808325231928601132154514527756351365916013502417923336163262376728886543800081342775987163174660182669944401942625246919805406723521392977317713011833620368361353326573642100096676328238839447354275094565506852585890606925475485318722834924208940284659081909703200051732971377714555593224635651958200650774962513649893766759225582639470964213818931026831304652533620140875471322555737167645303387060564110694603534056491600895262111605692145473925694340329280669553237092025603621456331273039367252728421602462170068287353540635781419811208156013780223646857906409925270045959677421241725209926568309742735659121504919045090709208945126504889743300165088483566743636712717623705099063747333467305768014042527461629164298574022949655055362858595097255958904247563697017855200670870726893936068811963325059151027647477342738263116235706133177907753274761686655954842903534448856467925107820475931170141920889514903260345294723556421184369898967711078698642394450980271138261786474880384615906566635467292670150729282646203224317065329869326793230568950188488678349972639476544845472759637931111000335301143564624715157003642317747993102951391527628184254847857927751100832290323681679944010088245140846917919840814477228082997431116257492047427609086148919317545870975776529358660372696679610544132735232258952326534130097963873527855680014348605601623710648842364270871781167771439974899883807903054547147801307468099997028192064605578709763066892002116177980155540672363155804834375177350786269649251570045707716583488972900261729437823249808690845209791824493900418767311209049089579104008266352105238471109418177988928476894301834799431845217933656949895104590688789509045399848550539172396381573943907961125371076241012021679678122565639265352064479258795097280017566669540557314729779991519458794595076414792429635866366698474103857923792170220297058614530336613385000465930800430752012270874334442400121327516285397192768912859300392467105889373774565174499466004098543962061817284374133946743735791763971300378317533464225273313820528351506132863695230512809517456843817701768259130606990266644520496101321246327490908156422357647226922654838207898238394272139534482527047967737059290122199436792927624069479756135641542875859479924420751819411463867064206290206508096739366722494656693116159630278785699550785564957754656884596562550425003172852429961364906921754590284628721760602666857822646278021065512828606698288104317794252105862657798335563552302094359396631905036068297317565764610780078832492504399578916441626745620839240463503502040014113632739338995688484614747822314874060263032898766955351183508937113095853138638782255882614703479513575570145022054459407164996281609101815275902626878507803078718351342717056084441824684632909406286394446714288930462160322160780095120026553614241870096914343288960564740881069710927506910591362445368299869602641314950140775789230117111971077269134538726829387639081444447236673217811056262146293186081665134257813898231932480483144727016436391465084164550315696440588237844223863785264388432096459785478722256639728349924925687807475443820716027166862073707324095871079007942229497182751354010798425081813113070788651862128493885264535697149375736836940992213644836791705983008011927468737435077112308673043753254125737390005175426579256069520136531425591047977782471419130361673993287404423165091243917049475204360171827309595299901627307315598187419691939237423590812562042529680671642552977895283329545542788648306508191789305324895833265390952231749602470466895486567458754043207370171114503095560836172560631294124339037029411249392419014618334931287808348246391147387906318547978751522072144863720698418420874017863978340730648807103006152175557218798357950184648725815210263087103304432145187700042709362166715709089014230587911225121547849685867597132489117231938801151736724823395131563804527927797066836530445214112983415974182139170607882205099151186767604954789198356535929944912832346420110740656108356356739107475602733995933982961042255180169143340030416574298221311229168241917724866194675926495016840974355100908490693496569548786832122886309969281353433603996964382510621546850724458889822899129311340173608247352527574854783157866607863589787591750976866920007284440955161634440186119359974529129747470049514981310301515102212620215887342176752126549841350825490653588439412551912904022206852667228379920616738296562414253535460509206311403479507043394384799280073796343075612343337222549984008974422858275012663981945106342715426466389477170052082905350718287466312553276049237397999758628460430419410606221378796667662448473118014856055032344888134918599321195573375900672410641877054321502949286031095981935032056077858211068900260665765368548607278209029128239774745827225322146884149440013522131343020761480943062774396429149696439664449357616867915259704398202039264800944360758409573466789458082532188682856993008915841340070975231457021108337232638990533227093797296144437923719613981022140759224023537534496236449316743083429824551067143469014435942060579237025631115481301155215442478095147103902419377068500547148525822141332834088072305606717562520087842607689299414047791370258471623445703982227256762530535545671505320817018023471439550499646435721274728368127928605471467850937063240563886492575565162801670346993084169985164416211776361666351817405259966983636297688103624886529908245391929636188938722056132431283186585739481991733115038629422297882415403122396543524535586906594982277035430469399196643916816678319805379246407168299990050069317898513549016523758457039106740706188058770932940469894555697169294677433584750915894293822952459344177685934822160208323010629671667221001589815880415327552073949850083609247481644502300087422779261964755991169465340691834264951283225471908573108413358064918830859091101036773081416089053017848425162123829811009289663483342833253516105021770180491074081813435759418948945585748915819684620363928624942943611843725326616365789905770749949651034265811738020422962719343184823695330271040482247452708505111380107586557227687950698872215027821426538915374053247265141961402748498927478227848142754346990542836508428281763407624992620130880650887579467736982619013138897874909483871692341003692238047300867374493901791392033743599881715974893771543217223669714528041885971348147345206922546714819770551091552590779005311523389736148823293340349869845583053031673591128584735069556785148245155300766003604547631756225322423461922747855765078916300240401046118643876646594256506306386141949803094907437216793980241196862819360251619436541821206811504534469791421520910739887833296255083854994789536092517130863924666870122853860638353770804433188780259732346135026236808960013339338490942973451421158121349056869916009158592934665084831000146148625162086014163231102482713523521034019607942129307541837479437031459558323065309752954158487878462297562963135219430672137149092599893364018898456993506097563870677099495071188894287235862430028746013241620371237031749766369846446619582615016193695629587710048225356029812877639976173106950419380463464837799080980072607167908261579574955405980098202834221218873734319394402053430269672621242622499332414218680536865365895793887568272855982236926104496340639350177964340143185574097385629877392883360140779437493975603921702723497927701351840169827739762497928308340337205448555501959139829753191694438069933350983143404702149973452888342098773161680721885646040373868585675736501526077542677894389337884347864241821268507714278845958382935721664994299049398723511277604912197256778893342749081839900400208746416594520381712727216900372617517862903590494470798321723123269778981864171462072176193735059320534794616860388006198846137809966488379179610852956896989030285889283902876725679117711229662611717564173610973818762473358047957967562441071593352966437902626412561450925098766741839785039025203323116584939366336751945681428575264936431176683282039524268429830027288751343939428421265598694257223095807649769293313248814379164430968546118551265278859293053177084816426586735848615940565202329523632495592485534175708000015776660709971688601671194030507259192992953307949672347917638775927160546523935224023476833216364832093068333569538171061071050710164115389328729645894562210366176948936336549478020537799022476825295943843122127867176010205286969166493738295418091060538351896564407195379373754874220879324184803212450307192583556519431237619745299761974890338145661649059762795331267020352992528978849392299277132721462100692211894114421878202932467719509114484163226712097055263854120939476539616204358372373388628998273623066504086545052579287389032000811939443112764201711040805637316530713780153362910175497438249605019211486442767115681150960634688042663230269035894070581434678573875841114162653215417754582287876769025923099097853905320799747351194826118834172561622578913413545384779405650791526717887250509150433484022218387408630337249360068099090420268840155057508775142962951141132766648016261922063604586072353887400322251817669245687418620554494391778327925138359616394895393866689133190194895604969917565518070470427376711758407940392809833221227508192819452529509857036438922660555348814982476511954318103200840743408546950318359876606157856307189302448750748221580362388019666568822318220193881425645765908817680046545847472858767049676881479174769921348459109019901995477381076851582357350901449951707671998353602826530909863585170422903410985319070816368854113860584564155071516504674676453422126066129303868287266253632083331298834870448323002532574490990386715018668538807674821610404739914189395508768251209417692479027151163012805304384061032769730318955491489758639117712534549309763719062819007575316249784374907221100390070783814479711633746173024185020266594382773265954544816416493001837252199515447544929638665219525334499970768612975395502117054259233014419145331372009998796436766169429638524286115813223514748341062309838799478521698067995605021544752375726774723265442366863837005449098675671180448149256305259772621485640997830733818404850096586102210472599823377489128111021104787358969417642538773613605381715952742103368896366583757915217126000089129375134211160423449126978555422409176755872948240394544318894807443584755644926687867696948195987428155732443510781970796692471633044385228699947294602012539707870852614119990341080266633547126225643711849117690810682754512201078736758204370900918755121072968909736739428386701374653329335621184142549199229953918190061672948077685084757746409413826296101569049578917328285169581445683383925045946525444357855362512797775261692700446303796099615125128990208176830567558867993152901141808961741036708829767853550523823105470365904657075332779652290968173138775319320235536450227886729139450882798039456921083506405608993061528642971127647809495933497341292205206504560777249338427691969122894099995188278290087086171619963945985846155584307157322114208410544722013516353209993747781444859923918315432358388709860846660364165897383823530013383438035406934162609514893077636911032837501371519121457578609507028537731727046333131087552800456281860753656295390002733144917070195219208104159775758379132886105961662015997152776195601972304204323694588867425600189518485532953853774036832753559806648796775520160113604616132465076756830747303327380002588886749245301784738339304351548418742029370301795245120131639841909197665079106219313211034365629319022173549329255112244267638691421154267791788419002113652458675924923187900018393258278371494134917557357332608717016783900864676714753632176573542056541040685318942460076700760506970662569382851926983939715833685126950000792824484461373707062655362343297769099933393491300909255567930098297377284716315888202852536210025727764011427648156721761947144746512287426388484561076950323837649477045824308226426390673442956226466959887409612036343432244457601385292829950975243237291275163189331280709582122485828484244889516413584052800872032133746923847492801598761014377250972778901020288740132044274149452345045506520644613407883511632520447607417994608549727666359672372503995862737884902204138565669918631894731790053361442422068772310060228865163005417508455047993646549607459512194012208480202778224156343169957665203168843372143374683371773749730193330752473805035869074333599612077318224038194707480261082415883864403126026881857900712369603897488100522134095194489520113639180155344370868219377461098843735664354378675661906472433662768672703474101769915819848948755422073700063018104265018789907237212287068986848370363814480884074143739372835301413670452574097704407620107488486241925073213583045273117834960979709675306028669392639455272994765307295070455679646832270039004105223569700773605944859549267923547433620669267231278327976805985279164443901225467413740263178749650246388188512291607768329417767649372135961063505572216427604964350685755453308107739464932194200954579165695208168033514502171047422678782303294255386668708211913742950968687620689277366081140843139633799482666605491462388209328686514446730124201276809570374466317038122766473759594195108654965615718225535854624897934345285028025703554929441309138405704705637002593458721850960888311278830385953758116059866345056238512401273183399736169490622384054771046890931534099659656589740184458395769547723110850123459232044629745704933151587667238403835500339279747194832880173294584777909932328672231775372135173878269095586528230062816150825099466279522537693434376798923640531451396946876345555136661277046555839187197531045997409690311334007559347591722265049196916924352172635049643707667145733647642777309756067087676664337557170324944071634003791294365218791117709693076521838914585880295263666736043678019961276922888910408646305480308307888623084563378184820339068471926790548243159373577896704793819689621757025163317496490511812953291780060949917668546366844079207607706687765986342200984983624742506221153807337678648901258607916378528905859166069550255382827805881471542410391451648001828377811974308643253536447935576932181153841062560064445107716918011511099720589401152576159263604138907908183278763160081606536351234922178783499595254550369523404320081257771610100069291226247534464314221084600221710778092297044461945895202135008458810784818536183834232158079133997252535399960590437618608613899052537632117413821742404161026070573570385328917803582790125117543391411660445079260603353075036621214182029501753172670267491651615200545981881607564574055304608431696147632870116122575457012772259339931416188206577922417117441171406794315938755487130605412222451388459901094480675000920066868776229071458207537236425154696913354625016666225059572357142225744134210283779984089165257448638171158396605151759579261542907979279652760887277520711612331565405294751908868112774362744221486228914360893777938087963275094827327948231806895963222774984796469101553337622022649032727512313499821065176430546623934410490062887468728141079316411244731479836166500848869232723725435693018128464291276042879186064354728176789361853119187887864160025847635541155370928020140972923474826380837547247875210897017613482629502298186361497314818926471464379954295694983178685022879105606372613276102871479475199432223564934072941492286330729713204876682396607704649128916083730316798830686901218372136395515106120769600327602534181112959012033831531737952940382098805068117816165515390866972985518281015450664953930809579100001723846674425544164239704498694222643620907332466447765192555168428498792939895898585309998529260703382319196664321375961773646685069237473658679076465874544326408273656873364223440242285990251649876198292692741975780555020093767225578632878509858230131031998606469378944155577086921462992195875564858900481457056528858637227325716930397785615317621229171932041648991788724333343564280199221559706548094863572158126211088972114701992845242305123982690414871545542306284544573574891740857779835209500857413935005961538156142970425032443468637817704871773340935529249466299196902116756598746798513418798078797572838012953238775923986950215977113118959308005168842139947137617234380155707113233353364181824781445659848246244221219204782695438327768121064124880278949258050461826497490316329209792215111256821489255035040337133674767341124844972385578525140819004366276305374770653927994911826383937883467705603659927962051040257305578649488006610006797387705018642533539747876478500346909797765147910709647658625455827795697578386179713706063240177073267753553912328208592632021692693155370382070918891278420637668766550904249671103919879313948379070861113272499648161397529310090685121973393462105175182061050860384872688576162563269011934180971449447235466181225246327334663035649466443889406540058790113495936059429847107224990908160305120603326947995172092670110333449927116948024016059521200813552615721312552164611658799761829270065564820935620102420286002546433488460529704362331789393685755354272296150797133591609883208505386180770019899324422613067650143952658875672912392888801700250193903647913018328042581043557369013496144657853600976625550407769680917646211412432379147087805076393050727875450882050660833813060823023142579566763373179695288358205037787990939567537698294354178145411926155980171006838931203290269363703991090371818582442708894461978639490020559671852681975982860068197630675643757247136711505689170063219228571916824655801705448531976080374203782893963379916343464070792050771620578218530298795791941566822991629617327125842409892295934324406009070649740839173829763142778929729319279719610198712753646489181357265746429391596610676505716581037300193967152453261763734066002262112741760172368281441400789711772501777978092703256332440217752167120033665389054675095507724973341080142465276900247953801828045615828153288589256393817333910682913484112772825266499326878073847954678228750131550692717077302504788875785022335808344934636870272146466742653716316837085470747122335094602706568495694140715893062111264471306086990564631291542935128115409749117154229642669503903172821231836475008041064104312567989918712421681714360526283354066478088995239260721863582138441239950525111189695869037671271854302021440806138589209727145305667975015155243679162772506780822625067356372779355780216893938324343212186215157083497005103852114436626900040822401246729001280049668817975357586095590746999616448153244210185108854798853187481967738236656065310741183581356116266083218585671638080384003607359911376198353317560265377732229276449142351604114035958811760086026084100154693344915799557200012027805437061740040303142684816455440769826042120004840455617127471712977509083362457149331992086534953829614570462076286620099818940806161520219002244891439548839762858291985330289879737276431702388933965592613065082874236883074691786195928207242356707040087486149254618434494317190773952253288474744276220019281252478713494055587281506767290460536594377839635931654830166881071937005262516734605984741975005705006864369434392359124487776501377931150609534977298799261146803472892068897857072817126060316292880561792959654034511648832774949773156672560708124759255786113928803251878939878422212957569331259015765421141119557384920786452616650013287621220168887417358534432962793090978416725643121428132970144602683909393619153087037309070186234369137614708751048709611504272848506265883148167172377187158742606485712104913866638170330312510096863234155401632090824230755565132986208981773163586482482177757849627914732472719451931366506872013465590587326721783066849852715830333510244148946858911204595326478499408845152731462432648951837623544496894700329871685229921872412308126268282887824687894685492273570681537121770129088324918861706078251586397902025440267504642072254279408724726170713366931177730454025504459519281117690050814604374729878106946637117913415422908260146304678284630738797558622129400256579128045210967659352150295034322118073572807791769095043827785724850791907946281266520572721515764826377101991140635391098638892808690348969860471672679064798650397112303248089263704093730249746597961382634551898417692450821044829389911732570122260139042145985689970576155227535304336667716614326673842792646908642840123536629889109446594811535045148810736201892833004541972653314274613109063187137156295521351080242739111465147105029541735004339644130161879348372651455878528695297550392118317459119685567785678079066113526968852924796758107791656058428602263455470141620843559164244280693706982645757395245254675194227599478057211030387248157343472014374033971774474364665547267885949824932678058169012205888779280399327693519139252640510824433498700092607378600737168734123385234652842977589182753054179228312211535696561475210967385983015804764551696597136871853772901664920474349420298124524250966372224065265078981123182001612133979417997924089300773258613664509274768425818160201326613676108870439508116020234628323017922656515130739957095457687306000942588322887697235038514016352030987935924992715872895044266840281739897732620689418487092075135099319008592784318919917477290107689076384444031249503793032001834154440193644374723917652808458851306756603301602183316404400938524725767512442133824970653938831739506303848563983280577350694684205497886638009471483842542181079077134641909590195906508900101206857436827046620361245832157546865891327609666509319165588261781049809371430219792867567257949071558289006847387582234770861143869101432719463164096186790338138902608865800796981112609176138617591285090062353645907314812171886056899628760356972122035976110505765132032518480646362388564402686769891322322349926903813961356711912059241617811588060279018195246590487660246829517009800687126208576220896172982263035598103735685169112810673434048850538821621558994274495344403011152074257531872209439943171240928448164812794172268922314836702566463139712474192241412902882870482201085703363342835063625813066913568220269120518795027141407153265381718150104974426435787562058562010285516471701575806316569113339522087308150103111429122396681224154033615923680815119991354138726927362587626322682772554689551284681752808817661375438140813881050261664484572008278573779148915033466154208417457461453291878731266032345839915970586526454811849277055279966472283802529560442959847397715253624208796719238835020568255543759357152455886839632195338393782586738784925533691156601165874484201725121795488098418033791474849612561005085987708369086082307421447617173763068428518953820138786121161189975423869645343166915248550852562895836832129243536728828254618673526168590420952883717181251690984762850018385665068363680984258331941015253453070054138685494399721259529019434754491686688046676146242780159486286900751419581190599416128191974386009760278640021803174705896660686594592163096766516851483865715985742413263125066801411797564823402034319591601359139905950846405471682623269807000717537304003352530526843204282194686550271496812006740799902711052119790112389942781650367652014810712131194273891770044793209308995043150588913238181593927463409187602417901470802237205687629147577867779664767595123724777046469851304476680751935297248485010524506809742290177369563280879685161379929618025685616266115302874782718387957796987973716330486314039621289215282406963934292837999425748278187962753032525630755162460514316751071386256466388911831704400289629081335390339719957085062628952356049565500416757544495237303698866818560037450678671038410084725185176369794498111614301441155211122258363043572035451503018898195773245975774165861756503970686113660507600593970557911348929093752864237411759877654245235356013711527790328670900344811787945030601241053708159830082293465978044627398005078901086013842626043709233676788085047149948342297789340154497494534942635868468219647310258832006238376650568583425326093553477496231701154781288898126000706192701816601616902141467973685121683002084962252776701398234588695670499237773373457271833874307049687141315749445593301803718940725753318488092450177386810724650362636824158527815394539117543300884874531990149338397069934395339302641832853505951581566537089993862879564436804019617074610517652689465239988370545496203204106721719306073466251850753492721486663589989319439436885045268436284009674727759367323151843654420313927137223092229092546572696396249810769018907083304961971746142334461433252200824237064034822597974972558327951206121251814406479961387955449530163535191402525058590481281362244426363712766285663175177280526270678188094549208659153057118059909376896413440944978271992391239854600745682709955408574052419367263414526981025768946001666359691054431372385599338793816052703991177872718859839604684072258222568549603624838498750443827213865246689832483416267287523807336026884342261945613099448161905629517885263088658527680437300354224209093805026256153850552591483475634921282790176422583062219048405448360528177885428966936763288993380678913472161616435917359358559739830631906932683462821373777483348194737952609391642606061998974792008710427682720930159419379829014195861517251936171159015898853736983291928353930307947498431022096461495533394422225459177147478958956353917591997893164229205576660812959835929252573976558418318220345641203839872563875072324644609961649401352889121180071976642452002067416578192814531820815804784985489166343459753940218165589216031829853659458062813654668325381506841919419565732863722245650883254804719340413747453457071859238081811297674469578254279550305185948085211161760434558883795750844575795995472402746926643573098117064244589195624593751500052562223140929194167072280627380714773430928316472583105027701991565065545751891811657101472976494962620135343267800077694443946839776257633469854056757508323888665603892972834891298474611763099687518763446248813794685004624694627243624117400775010325483190486785456885518874064589985151958001696553278043230512182904231053540392094894357617961715794778105782394651932895318832672898666637670552591097977579089684756810813609459534250466784447967880621184760855165609089772000599223166771894371391875531376689714854451252159009663382682916477267685588725136495658924332249195547453587171285936392483109567193290190232722393006639916625487086373135388896723911207972857685861528598968651260208199352296308963796485847898853927313394998270444920922199057565535733099526349500438039135429029458090334601226055191734854643636752051700320034694225333468674686461452787205812212482830483859115930315948343151235102051207635647832303519591588023494219603820514861835602903493325605052536810263578392236376968978893220216487716428720068277725176596765790369121900004302464696978102711107044727674435718186475498747002959242588508465640828897273508984515689561290568500577239817597126907061224758687487668679017817230480515902651218801958522235462135878572695394851810861276090633846472986007645393954664784915791689468138540336130150511890055424362709534160603957297804671565961714856277510147715698177147995697956996046626897766168939452430554793760384392462338772331545575842464643656004585490585091372348075737103924310528141826023039422971900018169904651366219297714763198524949951669358516865893013574640488548560326607047171228591761934255973194251097367720938184134251271648148349548521471653863096915043019510398592678301111580468022097330548469402672660284911653813575602660897044651103574217513625868635043215417248748169547722731440868678857752823050559818893200010899882865933581632624453356221635658418082634677423631005816121175602972771754494943077395307570983378171249396935880464141578363104556866832098659653076181147905833081201950784609252257625698516009659506949426570851682880019800611114990404820787922094548754352368515589221512881724493866831162808458096337911247468957495580089986499645562496406270258956632665728698228296358456607060838578455472156563810473257598790846079584096291502461535317605341534292857870198853428592265438812373995957989958365064238877280637743625382839677652504620599383643776276117641829204480965639403512427306740582459484065977350454312356939010280782605925621765478245423822800954905045291906489095477372500487675645015399567530995757912091367341104041761325999151092488619639037243145436560032394460338886282529257042513849342736405729042181061042398613067667438014691599888634796373695087593023835147779282284037578116458056178904632585187064937680983697908276634415909939890565200495744701819885829099894800089131052885034846644655575039614043069737015748477537178399280668843061242235959997233667841311310630901181566273506848405945535625980280332101958411125324676400921257960325512803036537286837742255288147723291308246727444549957008313913881006990661810027546729265211741256029834968850120425278877195171933953116434122122594221776536031836293084329954637990086199679339216333118197889328542751912704689838988471301407554388974218583326144207595928970107050885467210475426672527436067292864938833322683514955128765317650377483924302064642537206314821904940523437200093321808996420025793960205896502536930580918180616194101480922213559389682150847686017041768566728668841639237266536926707160498530555184986606823348375237990528246535913947770690944833962194440194206755664602628225496110926001763569919854613116005799048999180384511419280870327278157101338874584287506249492110466807535110373055708315476165571502764222058059118543840964455447983845950291357304819400121475881677565180149642474872301897004185191814629767574960660258100912701641769264218142948396137617371615238111750948922311608931866650679240825716934473556279734972863397873644751370780847328765241000627863748984513021696558655820835204238842219944068837960236272819283224340791583921560837128606156870180874143633846768804363320098288085176237222712280362562679851848431804896424375923007411079565301335933698347607525389194091010802646690015413778104104694068396478740262708614554890453920246824597736386536052876474775993568347292285318453729897118178202414717211792923705604030075506367636969608208026743855714497980340019017838254442545303219825786372097170352682988375658650501745158805444945599319826300383285992621139576485469854731966475765974556134442454137548850287852006702925038181708958468059560929493846299525467688044790958077388246187350158191450417216940897251483354088084836634899442964624827389826004772259436830874979719108989399985128381516539271591665308884470066489318171999990376404975593474413549495890914477946603260735584262062105920974262115936847183687237448807995410645457219795042568264651559615875719653694553722529065200534036842788577471267383791221150235657209966993414345787362855487964312741965667735472005242413211405681453429473824234097125881031493970838799993143528855948908833482851566829889094212517185480041204487296646479473390740195387638669825221425148733835090714993691558152983211626406176398202798952575720390621236204111875711137888243327069958385978512643971929344003784549783318585206842762777637188769482182521906454338380791346260441404118867113807406372521565415834284055507604787689652056216454644440118664084903366338340420319411322590425561227732385013520570353783843327363285795620546530926331680940816635172920728975323102277671496182210372721404658414075751872071008819822742713690903875722736299061511186237756745558201707251387931747051446246262026097488388324839483375584224866591015658042993096379363423417048451903355168308552261213418075457380814358725428771664565140629959390780447753910328319752466872616707089456085986361599777515986762917077937616463125040749771973050241673982684303492052306286099328656533072695822678420939760723779575808299960549007545911894477438976862371951560855072253509952988241455205858983865995266747016369108489678570120228985639873756621347943832751679830663524649634969729924570230333351054392419321959287168459163358519228119296457746772190240121653982827591969989870506356965407426452604255178191595872447473727766465028935693479272465158220507079939114328264631989104176411053069663183978030168308742402725086663097815058272417682076532590596620958690547416902644780750804374874001548202376962436503406658691842223487253775561376820978755645248732135493263163380360582792800803985387666761652668857205785856791123033232043801839621236364579115367724165076126641539761901684343266113436200465840251184001752710964576476642850434525997838173800357208359508996645055254604688151621969262004843046049853715688143269918860995535819312598856137619065082468599677455487785576845125938471088761905465121723554944493830710608883448982448890174214602677783658622245841795519438279026967209192645167732830209152344558813734990612512401737917450615363976150378462641982076691886040886997117647603690081491689571627977778623303798683572565854526956582170511942910430876784159096995117230037211377745321170565404695515373980014881010758028631773531128599845287735063199136559986314110052838336446826095192127218638074188967538433963708839403849929360728558169095332926269666134406171480813692531857845080320459659054585955193515784025557436755061088469949493398320649716771938951229602209660915213270065832474097587275920466693522504016960374660399919192065515054411471758630335935466781577029789493325399888485649763699870333083796578634241005335596254958890841280358261605782954278503560725918050597657041037072111154561719865845698521651999375994407706071784275881897030444722654175902120001061726028794983623117919007581045160935719119559637119595915951718769329060129087145563161744896195573309854019885301489309719527789614950090241724584957276195703077419983500590784654716204284926340408768459634504772829342429474729049350261369299786173380708460985204656345125868216559113803934466786739905682800098588994438072627144163151743625870037642703623531870844698055032312553456153790900319901558636588870673135799670171932450451773665947456552504784972151799775215225988109731078578873479169825910615963896247582749321700640898511319514122243481821192294969773165247357189752658133854238087923615704626354569842492255216489368596983193547671109592334796804658182593377360184171906213400030111919041811939356334783100179363799213300128148824774954272243583696304676844131898140925489116269152247263121892065997010574457873607182330115231124587630687831804402358199054507058236717819768297561037275248603697182967580274189608922831380447258915061059875214141483200215086684644314422572199834478611278244105875082466381248098948467728528230642685259027938324122109610024125325828595379710781116763794794898002129330411378380097507209170595585345672864295328392528944557553087954265620376918445910726191384594843295215708016912061711610191047845925081032753997043370695968578235693425753612987807429336219813278166738691596821384578495936787702392021054431704048741440858161733497449565918163390043233438940150349841841941432714462991567391704505771215007762354796950484346381758794697942433486544620633823995705808673907642251012004237767477110614691894696413550237509610550327591931816053397117910500852976986177138466367291643618878443790323118254190224560805960438686402434111743806668739215119245171712946877561234971283863461731267342409904883925908734514432729258393360226025661930298001556778580497446483506584707030966574735192875671847013664544629938475290324211169872265033748449053718652238356489629888622191916524666737554321963127004536499125003300499347530391187800891648987281363074029520084739327389643720769700192889550931666155948228320510432897318960395352559390322453891777307051863487827614307712331723957670847547358762981352523992575131632243949881499414846460572052439044165689112652199938050146949542506602812168689848458916048035224084965182624781262094887700391687175352570854050488168246168858170482559674529716753435298839565609637071278021734684283425083189802251051453854342861487687417908348835839406932065897151944622709205579226649708272725131641825557556608679888595814068817826422817856023100830352126727195234598606831574229536888215905620843239577193008631224292126199004126301928087690132725210785615202640934925666989048353424245079574868565387893302972876477027570090799230406595838682380824884990142256366141130635989785315421408347927255016890525607791626857025121763028834321074153012551028729147247158456500317100726247499860509917160748305335294732072953344609150708493190651692268667563541863410079410186975386998174026176448803225709177571094718703749488432453258003967559509664659398584187962561110079846314844413912963864903850501188160097835160061607119242637823815786986774792712451247159405031925808823056748583332063021638870012113466612840998484857092412432768248401559409459271074468373434373030555509742909346658209479043160642508011647145581327868433803580029296928667467691012081244544858389381735902663563491427893709961467675064586536376497987557118153364384362065036179889752377668484525286865480593446761429792797900192281247634063514135250566440477602930085337651984858872138129825697313526659135758734352218934190416698057974321866051376851632253634457835624222980176524924809685973613303921331590730705085897185988844277790581854304513212602959925145204881773523676261834059560691053512929070375822646527417006485430966598436283175831953333353415763431685132034768259974872888864735540497903748778193549334665386232995825617852653113576470220404564099289694006612782616243153604464241717816036673736800728273281629824327831859806520123060126645677346520735952018525463889310848868827960404460056110488336493616739220002905437648598472705132840617950860937428172357538188900681903002253460411906375025940222924015957851804483339077155818599063187504292097241272098785353528099486528678084930509318856981385955596155520524867108206019032251866492063562585062111186530857218327115900710663644451728994254262248435560513195410441660682395074087505297933674796066561089938068835664578980584444523701443034108707760956517817986863729420576449986676945529412036632821687980849607130309233602415961713016913011653800931461319055428075932415159984311149452470989598077306575597804434496275616160053326696634653280007327959838405085668957660962591868507822637342999149245330497385780971618947025494986752176408245580484415502856531463602626223464270001703303121546323992639179814000234203953466358859894529896425944748294969239421650753868288965631558606635197254862900993775896212160151643726757960237483842045765238627184883014157087429555177459209512903037893847091944472933269078040319558679121470535099323928768303542779691084497888683494724035881757166527758044234601687654214785643062120790699235962321325773015350834137788354597478896978676645808957288582494585448684541779311166970003391496567109880714286049389130822668262992790342042322441012190109118402500452974039557661233770694020085267970923449922914264875292250741517478082878677695209321552839681089739170904636178187341232118768932484420393707828951269888505236930831698661812048256944090418125763677542645116699811999612665893135766487052893829740335569880501556300219148130539114549683484281567082104302743334815798775060640505140520067240802460786317308538857555304932400896681855365743166057746412434709347836538935299672803887229873177123817163990402330866160279541771947160618737371242844336082986365719442915784163828406906926976353482881579940578943945245093234955476928947859380181268169571396787053820222924769023747212980861289221569411165241698575241016650561481890736622974333176830008087762222798785781718473775846119068694331896174362953050564598500983118202587640439689725876883250133282806655943174577341088769734803053229735775684041003184792628096019273784485682204416138566825484404000593564135169023798270148650186371263429971233852579481981620858772335109320184180210584790176451378091488589594916347681502845829374403488601509967400719891968492646514221204904479303189600614422910521510505729302898940317845155242591750265856130071717652466792819689266806794777357709669209743391858571137666302954742234821731655420338467384391722380688459103879335636847297740058784667336039708196753405949432932718462205108223851430289154102347380006977752859563001381398237447505268711261274293516045624792187852347924531663429932913156360552634552783427751462048619031962964654611201967370391006475074414826839951762740511539767363300615642120707908495969994150115621303292206913133141397859909678375507030926975978203344820589969294562412651278364034548563148609722198790128399594299992018272521312993450911492332580297791630102033552161457575246894304718674170110051558097519621492263003604748679171184462765553054862819354074290131574001831752833177060139779963254315182993136520873031752846694390270834653935079735673211006924582314052764777619888419043996478488791198539739567295401696836595734913538638376391221786992050538608279770885910658936162778192244670382796674596520826182907378471653196746847539119458805645055104315155795115604547401590298960786895677964761059759280216189508499033404407320834614318910780509296583503354226726153979456670399805129606276014034500861371457605107746908405329534231707571885544412494214108214951704271005563514585944848732160286344960598076707581743484479610965295298903119306568868546604336795948193465214326776643427077918047471945678359294177681906110208446777444819199490741660252235028133938590642595119978227869478607825672665887905407322188002984992845695957953353464080037618846100863176937163755193669532621257620356309559100034661939740168667170738568720643820996056565606644617642879439102910868399685028562349843829396982605258325770731810984957190839768208459564249791857250024465837322427193598716981326366833703697831710343992736865706877894946135851363961677078031100632601821914360664754388829219895935635083391872067305186427260027091821566028621199657618724378669010092380478910455045490903976090518881166724907474871907841876069117072889791625619677894646988142027446807430961066292231604463341397578288466756987984300905486198944429973760909041811308121415663545740897350990083815877904596227536606062981028623240189330355924356529198724673015634215796342631061113071618963277874671849277493314059894996717084410138447835181353810611698892140350776842500032598650800199417561579892438412209014823361130638647942107481747525754811435651907180146222083686160379105787860043746600179212852455778434268635808810258729078335583237697520621668725769503326317635983942516865937493677254040729522328680791757348833690160766462966105342646670940687796605998584087391552103127550626850996766714761836362573319846962027723258426065322125342408015194328749069979391055494079392689378518987933539554821601740976470416965962404688884072586250012689484300228766992340273219868600850102956488538013570643184471408477098043553494426266442268145213020614133591416976409046202318725754917910647773717307774223898488931412609484332112491851978370450926413213496641326013387017105881375226040326734373366209316248609512871715934467944191420699416175355508848145456669381787902672533897338189528571973958928601102920933587964642322049511300689401953229820478882966746938193148915427685366408816514023457582162145642230083806416058159842946429341682132062286538955315959659505119219650856876456264130889415858961520001538210925479334215623415822219001628970184703681654060714510135397192935487447152118542143168185622221760569125525397533629599577118489899872711695533491439785248270311818703038473869707423195636828923152300139706250643166778813519216746546207006509315028568158395819776185091181043458719554445768668748000096602612051653144874598857519644517114606997085070860814740199654790041406500165020178138434130387319251195863308038799579779211313671305201454963139252488942211989125878386947467562813478545168891175876948933180600359232438238608247544714453234080252585283237165575529103490807936690112429779537590814119751975626989472574559325245938383639281650564441254557282632955862735337854633227843412780861364515681060618326684664874411868777539356503440276743384910227887056095460053987555896232747954392968220476498863732380162737503020628729969740114556526803503261699083452743649888049384636167761114267805639807000741652279002230042901756537977574800063108023296609370542111736862519950547863576928221550241470435196838444844519404905291745963756543592059231347468924207032693669493918503048598553611989650839626151410300856763113315904675251168274854253070387227565825873890457132425227778494820161693728283540044776128032632280768191562290097554312246098187741422398533322301035675336587938187061923925982323691092164250566363763070579126910568848174035932993016542749624607409576342321582411044908319555418027959792994197473247173324812008925047617114944897973543739462423201276422979357498192954104345813258068725401683270380965649866622139280565758000940906141336086124796934547532345068980651683601323201455299087737820326924475207364069185596616155384223980655540522163151267559632733852213683802969211761645775522776333461366428192771930616019336388449017779211160078632370459990843268958092801495146476732864487873693581902668942664079953099445162171800592030149899782321914305261315998216968247766020583520541144486151589166677316042282115556200525738428577268400105455247619432902366599545026787935799539673625507843855785209821885916144567699280691313945112640988885400760541283306557298299985432790494077280615822800176095523545725089534299316421311252543034407171452840703554435806293578345054384107298576808141147760649219337315988064676917205520712299868078409302323435899170131022542056268863638270450247805186522507831634997478957958489924441983977269073948902036192904146145876022720124665208670551008309187821789909721286554167307221347955397385944722738609573529109785948237015822329208050384908654330008780378930854702307188853854806712414919722829106212150149015499065808566965850818164843788877653033778221699330895191136629959120326313379348669536015398855243338896400932397382073579107352948334570924942956940376773691340071403268486407609899487533288883748636225778478864784199621046779316166983936071428721880917334915277421280292857177827641166736109426436634837821653923245726146188475993016645346428583911477236280130231047198117500568169165079378821432778781931506269551283604464027098184766510790312809441167112046671819809213819828071819929631946311631890742474045164140630060886741931130387816485994066272191875515818216033471255193064408685518444964400878034507917974720812025845041784385431455653804957230171626260225079252330489719344250452503478316365487114643012969947080425602703811503918135618424665272073200628342894739990698958002895914619860066715063076643792238926886552605494083374494731129408329925557001452872615826975813311162034467853320550879143322438318045355953595712242232999539019740937464804812547320287053356375699165430505442587919984629204139330748005441352254965884612060056488266919817182316864001469470254601168112782830614966326837029227864729999664096942581882595376952761362063506463486862850143078685391760731597971797126550610346100825870157855384581129238112469222822353024189482916258795136055689261176287218128881493537413147026049964363446895475470237103836709360077995584397849607598710359770632151006204064971435977907006349693893824004387292487882090998857622851238858808906174296826809037689534080550364606696270376326792340298644413166940773526985115633617928910622858116502284965526556869769782062326812389773906454197065025093872742136989454981841840833511527629269155483550702787357798896349504282970338231424074524158113441115021437725128596109661192094618028227291102310358865764989262150050716960105960833787375847169342562222383585355215331767244482048906879395834889287022729979108669793572617783658440291771301568272165627726926977737794163521685431408022788195836172893198725868581917630361665023179242235682683760006325524025689903983403258716100267327739131667997297294908228370510008043595490014649916101057706120506400508728733362151093314345721771578385976700270746868074429157483581957894371000514824289706510549965452512908874433998010215016396432250412539858313386162163095323304819705329462079997093604607905414780867107195607036400861346364723052483922923077354638809322477474883672411593308725029444683858205831528687879209778028237735127899391237475389063522190300943500667487716439379691370349527705870122161357969054858664245568610308865949269182724322534926626024123864072382521985188832313935803187904359845468569444570347626113059281519160712459427683065824759337000769856751048556023791487667622957778536471358449243510768257229026737122563587393957373374741125404161378573855452218139229514770596575639922035874949919063838877710256318896694189438555995201747805721091486413231387676257653237468238437760991966531755261502065657030408326153354138770961610885139507316798420007125757403982717331375635093176382120770804331301480000518526928045089902018506077474873156488108382035663855437903876738774165346670042014480627071063624251342000729490015776837705838507105229292874008867294219164896435407258747489226025334662359525225653710299859748529377223485137483079335951516430060480024326559348745246113953279343591668690216614245365214990835011849372363219328677050462101248059900198776738202727347319174568480821655182579272992394587109031980445244669184988048936988036594725079223491953576549656749856858301004162768649436208892977935039211281103916917063187250955999562871176292326513460343496986125896855409494549612482969689860652888037310341709260128258218625162752933699227875991538976818266773511958415119968695494850864507436835887911697932264152096384051047643357599928462528351720793991805201854969502322103611199120820322163980656340806309594107610551252187299022400387788457271130765808311841719727039414006824814340215222967378118091921702489104268581166480823314289096779362225429222757609204102079771496957692530542631263713602692611484336845370285414851219983315906367306097692368304072473292282304832869198431388341011400852781164250423621155682861777340518164211996664880862279498494847576504341964763410865651179265575966651797911971331028470598811175646169672014837337077953862272408207735145674572532533081959811874206301363414670202521613647655940458934783814639183356117350368819171113186003695386716638045284963535760970050020573514903846269755429445919214140492985304764789675607361772396624329040096599197680186678643402095487904389087912562083412596151225212135198598496998396651287106331194670507127997952180722003571245850099005331529672566481804816190327905009903056468456969498669590560008697650282953800728018102352392832674005074378601329989242717252392776235259144441050582910269437073068653644051550708048438835744973009079002050559740765711605181655917188805172335731990386744273941985533437334178635503325149041862489734022080461115248047554553302320326957639577270647389581670989335670192308438588529282782961886555343177324086898495343898742169097710017293557436753778728315101390569660425324537049346225798828378682804611941044258318450331436393641580542159887548960947537710607998637037396478435681871099814984013678781363075595902110038486403505395974518991494740674176895865813225107880231107685500862650199825207930017753378476651472374219334201418180172187076189166270623626191302065003411701609925466867469169403877607705181241767891283465671514657621903264384615404025139705566720497662270608939751041541098674560747238233380575353369816735614056573831636420493503129462239959567160388454961113066129300541229301908955329772074702872021367848946112895396573648686347195500127366171172919243367754740670645200977939541461165280571181128547923795998330854268998512122106909023961335932347707506289635396306622399599798430318779639008107242771253870124529619580385687389351038706595948556489000039304740747640255608820043681467440584018114121378290153211208866705290199135192884377289952438314102889676411852892251734367388667345548678784635491568059342179763752278001060799064330496527851732630212869510435197021668190537332362211612411692145276147865498006330597465479688983714972761890314295974957298398220070387857749686360460667603774530174185377302290701765101226486281662797841615209912703372570607417696727214231046838485774272174958803081251166450676954072479663934430819304790104319510988606323891066384371437723033194561256366387674843527641572977254094981178951448221819218372082454689377071654321397122154277562877423475006052288492581738978151251888464717026372292889037975623554821124798554013776775810750087638525541492853319178820113973030270454674665810697438720440187274721114044857856566129212734616830518239049917107976834952048482751973655832665574929671472144717726717795708951252029822258029549720861810314009793458499372695039816302386033525105226546713282863152616802334647401032348001513671983850261985133956708739209902663693416036014223156880291286098402000450926359005595792195601161314847905942115065524356931637368910453733338241843995561248960332950462054688645524225700045414672374971823639936160864619686419429187297187520972252591147782277585588498207340582678489158959073416571737838285961673007137259944484559305488612771043221653700792119138239700439941481999357619577465875161458603729871149915948894090269880953822403973280004239562040631170178277887202782865063509902360758575612952361763987185234335037695663382969057880275777732741459903421182726790928085777855623860634700904394961370595688288895462579039763402053702629311552598917926288449954262898196630485806773736700160551955825885838427143801071724462717436182151024603680942860160171824220916933409244128863944220420480594380800299380454134645721809733860179953552690121389353534671501014708326604152151073192627825427502212631221127318510711075256472793846628782210013433743745060975267633365420359221071509952722610611425685356640705894900549997491412486434546316120260550860659123973640781098733166808897693682135878819337059772004274565404913958063547310141108541454049188441492325664703910805829271524583630478137876582346885772990944590323671796365054658916966478297817186339716563058132317238077830826653132516841966856635785498492788553416713573110383318673320409329592169902537597027374425075878621312364345726159824784926859695867203779925503135500169764308695084845363559199325135417036373228269401177855570974080004467114162917268681298564409008115595291238993950182195629695834359523608276225506134432667931740129943182462714233097274792156764795154603825034088291907210632566769582602654911922903480578206345438345584702722908573017347378029415715369766086379017576094547298166809912741577300299327681105117166497245541738941818879984864623908717692160964481792272304447574490637559462447631024749704113061469590976538594281993072709499819470876152938093504150907461038798706984468666674620515642346432200714583897852751193939748331837076403909483170062569526521318116958175537855425236715607406432408402983286568081563497465244692396928538856507051128910411940144796822519856370474644072281220135389751791892964167385806767355046248885620104746778651122397464368508127740380687381660782485959760511515690569238521393449179402655468557701579656148797004946389127188829607891663880366842900793531343638461538425505668820751362292400669941705806781526316524313504957816247387255704006119501319209806218092293697258548445686566028353889432330062755984690308747900269095814164403441005754688555918970821502643566609542800856253673938477717197910040934037526101419094437294140466068118409037134715763324664394575487523907703187895498832609468718812931954527961372010037927904934827014315952393872081661580006101499600412366540057795851630611994256817511777855759264354613987920718581029362708904955694123878497714350970845030714586492682129257314347761494597843486774029301028362893355406283430121250838148340940047231020166293332574638987888247911258168925888086095267912298283200930223384524935564243318412513451827134540703082304315477776864210441619145199571074451240084027712326882202039333315518539136721127177644099490255124329062051912718570521450738615555875091598326273792330186701329954789463045829647780365861430258958259447302388099611797231649830294858888832209706643385059403567238096154037180347451109200568049900369784871828615510843097901692320684674460626217989536959168446071424680102698955151459886981194822985777165608095803398848430302000134404476990582824506290562357094348985769139729824192428512035999273789008240412894242996011141748111583162640146271360587939751856448689070123942632798272441192141857542010380439199839803955502275775008438368007265344503622148103822030392265600884296159706561469856857419964350063769529538768239074562745618733797935079649014905350798457752752615764589616612690037014148635486678867927070885038477344960390792897728470452312198266600389479092670969427152976809531556991941397820926731438903629427652854296430461535553693380355569705578460345598560439934791941634779447725903938590006392808854701410999188533477812105148703544367884297352830245214164473059683187999094696410730523876720910679472931720799689969672694108629422814811557931334624977082474093270194847349803462053620795937839462622117645258729136216309979237349997255477739736414626620942453940566837000232286479327925635398388434980877573577748497534914286193157848984211168121741269290604836670474208285326085442624543356409542832679544469188091824275836429164815774416479633207410224104416840475020083101075717523522506011138492681782011538645223802196374472074522464453226471561419900339411459355229822572232647956558786478860817778529513895792808422406809500011414705901434429205143650131175576731366992840853770063058794402647999546848004958959124396858806984225206733426507615063945032506803463109689372829407833543474801355172577458776192481786848261045112184864081665835936427077332451266762386926577529134063584937643215298740802890206266184645720266029628743710497929005972348545838768088403143760830470557775834045700847622603896528231562162449633391296046527116023509792972143669810776099617068451837775078777760464401888748015303797136480008571490972154537703291973111203370929298186800054234819466572202989195743333821673454420543024092758769662129014575608768887896566158329374964255441903360883540201317739441172012718006253620655786705615376295151239715280644824462032300183776312456271695992143441814951442710555802485548659854298204969100104999792859955302860437205029534098994393244666079145834365670942976369927395742911547063057552102731044731958905837769465617419606739776243916463663974664059092328039901762650371694619136190454705766461307389262441497072795048440803070823319430472903093628515812207421087189639329667322445382067914015124234587240693186222036597870625790519849081488802840361012073045484216115573882658582060701585526961209998633596853213271868988116394194949932647939094644278432330853356989788288616206657106996028148363836758843144730241833034742631473396299932337289287206623371239092051478170950112086898121917223755140046405338110431622336773995790779544407721455423236005767829777721714321788768132531254178806100271963151557909888433310729613031511011735466434832778291785421257864350754692882605064814927179450829491412515371098540709620066650512454948911120051491413433445575865295175187384641957935431885623768660350629213542624901246594087486354096804594298298578119819427335789177790649560608701310968843957283521001011658095369632100927301743067502645071870661221260833606936986238934233447494447614607710874283182748173583088900158039018253567386165506683061326160142041741441956418295176935470249282396088355235641535629608028599535986545725876789301907839960274515715960111316101924065743563449502842990471339885416185527667700208771355271837605350870000862759108832516660241607747874885888420032726220267388725653627932533383530890788709382941476632248511178050117320172737613279143357962359170178197879582555832061887599173651759165417933218872367740060701626830726671434487562767676604803698847197717139661445365030032459871000399078129125954192056222550296681619928835276459036107392502166133521430919594068419735840908325287582805301088513666441129131651055607641163935360310491995156590072894162783088828107892046739629318531822645755115543435681272236329589104740380724203914903879416073401478158819697971234309069197263178599036846165327496699061613495634489671574616597799127753566509353424828433118340657185409412667556628485230194461218792894160528725192633801771048148830255041463269063566387316216070732161474290532631626251981046592191674449253066339308079472228782457058308749291520239839853573621738435904211009468169643919324460648136845952188906081294941833078917039449076269894062674468173983915580098677485890276180255632605468649626406125004420631336457038532591882307451883058765350514698142681310052523756822923703046045821953183697728524396324675797331552544890450681303942367350518995896270169377168164670012607087617731145224501057148791626567630475825231121851229829764636939979904806073890136875771065507092859235942630513984075396544770489062188828902694298901741221464889922230109443995391870655181100960158095247129960292708654420991137547421951631338199253643303426845551236712659222529613260374268872074317421197103458438801963986158993888719053793206198608599313081780975757148465064173266547276808637111814842838881588824626136960434930256375344381463207592211737231295934901757506663929174190886601374741977022055786445709876115023748262824963346101873454998437703829499888990357980619072111132536752306045011898611726502697490049304149784172178958734758040797238623616599269076000722863093960937814866590150422923599773118481203011697380709201674925719256534759795690951591254750120548199756059121011354044731228114168119627644361409987498178714462186223189408558943353580334402259030070775320837394206150854145580510599258667660694801353970942604644016606400218927961113655698531796423203632260244500935319231476920467482387678928005654626501198365407010861374674317192712919618921016877091168865719470808216734974422622824792596675361415717890501419002491570760717838088796308101120965939053003366683370817930345283308338163875984700392595490709760622983658226656975628285247938728134509237558538620623132457092281814372980778588361179912657502088237766789531653380602739469080555436053465156558281172440641680475879117364311668351417394378497122510595391778732543131369350632995295857755742171685068734293470049607769486834521256869136927397115624448960934306504242745953561517274799824963068662307242077814324382496113678718080641411994076116286171031430156592871358943423058614642030742377290188854235566910597151682703780835161043490227915332957798763445668727124470048417484385064876206886621610183705553171564384641247945064214061383396287896933596453680745886215494038738584457975160447518093684195161935651673700152931779047194720272918445011451282079013879143904230067952720768962316997531501903511408995001300775006901980682129467668475457089014106997934751955464851189268864794195740986869623977074567194729528858823608115962520624698679372174170789009185846024650473377233803810750824779322259212649932889932348751399879270289909635926196660615329736930951582322268254328462709305577352053876162066824440874424436413230132542277275367033110493963082608653225627986622885583722304441759424005828146185510990971575044112115917623823428102773293824491366614812840379836727908049846028034456946314928114650839557546194070924202122276030432282537977182044642439848310763825595219022091796744327498102146147458173930149168714532726608775525362584286228572668659658831940800949505369755311954763825853826199622597950808516117482175622829082512535757508830761099055703500814205082018687694072263701280192727624131734925360480293246459553952887296476382752936862262217481009017658482616692655610875330312073074754694254596902219271942062994179486224077222026654310450870075077499920234994699102297594924613620565050529846452009271352716557740567543514552982302813780641094811435930341860232117509135932189436385459187199221458464781170735605654594802192206866251405631066554304148604388245548523809323562008166927016572231059654610906771362096404123930761407598016273923541508200894214271117022476834924617114607563096955685763331046751335849581671028837076461000945095686903634453037877463641195094053892233044906333874451730432877483611404402575605155159785544015785544385561251717902502098975441207136844930962237347466145348480207391551884203574997817901112921827137279592361473582334894425926996386392960287987659317231322123065790538686122428878084638950615126321107396424021479073674844580258957594524779154799572401596700153902847579705038311936602679185899821605605835691383248466177713639598820324222017285690292986276809989202286229687261695749679428848869456971606390634582433219824224235115971462159134349211264556780398682191696560459148605047734224052014705743821256150129743680400562305828005381425769850258694925293806573969587658331082104151776312641905042071413328138696711303813338812324627576537729683823881420774471036840335447702078061801521475441185783067935474681714993333663348646162057769823636041918860121421543994863993203609757981720945178878008805883261262994472379141033624142931014196984941912980849772811710785429477944355185760462666391803393552552506512802852541124750392787551378697707586895625487909091735915185917490750918763006107927191943440519599525693252247816356596999516357964654318880539235623423434367897090230976510480746670951230875510980320927857021840391649170776849938399719142795949982127156090733328891441864889733758219941898223170885168382264325843518222302316257571069825967619775175112055691027064315180241777881948099961721510549192139274508871077697223787354124094914356609010583323977591383191907589305024659002676215954542051912394264643036395695941377277364488959102158852299454033179288317170201147493752137630033890333281355109264326829673091566836349731470843246908926202393562459071863952145895424949370835373950513275746292339359125756112464927770576317151558011284665212897235985437689124140012867106549285145866695458029631807019003587208784019210095608688564139815886923523983835397050123142797418839573915069021711040618451513599855638327226548243700799664737440369750339569936770009211537205042390636186088124327945931829081873545610866227400258110635533333981011035392750474806309681916267785561044943648074775547689964444677767008138924218547790423728259837061365338515107122430618903654361037253494226642002499649862306235900505220555992222537225228057001518352919059173690309642055887557218177954338304057808472338382760113563405259451820775364188998065417542706199846448457154988233671529497252049346951093002907402696376105542252169130155507560861912437306111477620224469819073425737251117344169348004295845340754444526421358100662858791369891255886861697190800416561813099046617053515049948769449330107840387197617068926700053931587697456158960368376502032369734040914845773755851443503274108226958202089481708535204630063705022945827178657445984065226222802624245458267003528846352648214827745977839030628868243600309747860111741249465778202933067806861886385365252805691443655627696486531548296035986128666178927304615377661766724462845847952648905203075961820842646132241641582287563279476867103926325206544209816380536392565000230526916407057628324206135936554706352814276878966460971379098575026148069750279111807488332407910162692860787907477860103875582023178344066026387533012977826829499202656398455171031306846613574976622534223756613378938153899285848615966308965307189097760232209571521635153744037890842524553631760124136292635100882514428806094482503410234958808686833414290223307186304474022664751387755599154903587796791076524815125316274026964011851413462946723242030581175396315442391354033508043161369650015933871678239205706681313979486251470468983829224540941439809940689572224172490576643198997325888210190057037725546732068699684086685462178516709129205886956931358955622759923807007688236961485430387977958247528178964337781427580931989991940910786361328413417303043539695366996233877320958516466192151369032505449674921828611222991658583724113400645441801890699208630821876384508900768342496180046681187915557402690795963731533374981519125107485463846893170128491332314352443382678806543054723761650632728309021721114193024535846969517160023079918347911175047915772434054748590326784304275165265897897952461645195577238013665868285213962868795958901954196759319273657474560721751464731349119489907985244045996824870335173078700997848387709974200603024401878684615404762285706217606015321795846108421154851899878677503052690549533402500750719938959597114880770602233994500006143681347651611936679084872046888396551741532583070367051617365227400482868354108182166803515574935305249026022801756182127279657083085051493543145121284535943295676747932652438439385926779374814264663485218413050625575255388853136911151113495930582268979651473301910863375042522413483217259234147225240020334899876706020642896121536953958764180244339315187758241441434186009345505109299470645177640962109013151933622839878889752950227765066715764880505424077824298159693457221044408322748309035958465370859443551186816694227139958050040297297592742064693644403721746927248429404373278763349270480642366135890008153257678802380763244725485350375035095649697118365376361239939508268388012430029382280456580598567661444038344336392052307189892725613648524865102438262557398753588093037589565377172336792307012993509570171665349218565416198161154373524837569994185061755864682893841416232701985557667978926414367044390567588578320516494707351290279030029265699438457640208147595469767237926690713806281015133218974788091343102585888001600313041244267649232585577054266892216275897948024841982735673210682553798470429375391554517840104261246273438615421778413836010513613461896659842877536345692833277307288080369164230555887122318632899745623970040703280136655969872453279084890932905353157742759730389838301697448820348829691035914543284025576844679624652721703012915217166955092635677307662023612487519337189959833899990645746771124256980508834726438558027285705138022542433725451176631974458044947053267647957367737803027065910809800963971752799750120138148417895736266604328390807318160526506764101692597570827109013688224105490452369343734897055695525018247407064146777893434235592290974597251449341961169396783066570527086784510449730444764486767076114392234421404334714589182293613044970977259107385462892650020292220113545049197332630373059551549970511843085872708026368715547828509703359000763627924201545095913568459145802168364271064042893734155445676479840570148508094082388240583647044297663909998025552446606023378861071832926658934380050676351216646786129988705709943652460892324015390753164376616453931417864735890657149634893930550137531233851400990193334467437715800170581261747546222745903777512193280027819931182612218240161385024279458956668923949543413604461176238264881148362721862328202206883625870446723236048278534735148252511093809946172253929057582418179222874707722668880028596495504686515363662501388976277642075129539550472396960020079454053853730848226667120440111977823310062151887888991525280481147460707053352479415584301755496653918950380089152129401944563578225041445819622314893903767668407561770928352480319775383041143066444471552247040665673115881197903970574220256416045242948488947331257720338511609230932166244413243856168963133222957648444684279870275253292712730542749610863446279219962665687805167668211596552200625330841666437525432150537044894952601084254886348682686170629559184184584350328454827387931815340626946740344101808094059086892539801657906314048441694268954836406635664274213920219807351081991697205391833668251647415003170348448034865901314938536475187370455686636119247141343989219106637479506848071512737415985062685304704046749347397328333742676253956150755930454382555346595203887210386171693782205052266154912464365272194652333628871202679688165477460712159871717639993378727681185560385789056320782068928621765335517689547036140850398040142086556351175893182280266184994498452306946984429993516357094478280357997401994899754741837468735541094040716679438547485696471048678735005253250312948477635589105408178054625041766596169605467370814208477911206638884084768959046004607639350392835625141674704052937107742092683341678421810649680645565541973892425773361770500828652734791978179324564151669699988411729370835343564646389236588503358728438046532121256517090303373294070938425953260161197359018009144119087587334745650547534421229368250924587731411579685211812482454053501195962900759425352810853663065895532761022500646277463894681208409842334921717653600712747210583043672132995376749296952073870726923472806670870836044470301996797876726839968919646575580832675312092398288264888703758688960825589499867146197796780242490966682334587928536303196379685101892411199793972072282243585836016629194863564134951032613442851546583637386050702620805727484291281207522622691490573363689463594312495223921936592068957874338037158242014108995190996687921557066191346522528316237302054638773911532006977336830548864958273001491260914765501631008713606298429116736388292460531440715480102561777520638099253551121804556452910221738242225330980354628190410013069161622404679037970352221369100130578307988090674342525856877636976132558221802263789192347885762741689406403077829394690262241270867405146969263998644392448243234284516162360306649832486422258902722686020044814538257920475967388634452501592587860335157333138928182814654448107498723834271592600006919895454318032858327329941944036631402023876796574684948113246523878073294747735790585246084000393106827358271958380724450500513716182200300965776583036496491968772894010617502317761021618829851945143784252008198860584771552944732362682224960157023405132193693231031050623949935557743518717020396244116035221125849079453552944841437998170428581520951955251359129071862738474998383504172307980659608090732083736969787104203452450051026008692231782991141136019918635241669011971806653714714665746517721169261116954815062650473764717685481446438379390355075681269770434783645768315476542663329804465333114431877979379301357352489814458556574897378090164636935615413477785035467294743547042795568893355403200974705552004003584325000135497668831311861337405412321434222840569188596796697176779361052031420148956211215234839251902209996961317141875594547022729344859095789228371640324434097617468677892918835520552789286439110469099983637100419621068108807460835276250366234326053202238863396270091720046343281802930198577841831890276393535905387592673006381430668714162752742605012723700475618884233778723112398249032122374137731854793717931256271176695388197151651244501788923321922419247291953865494191147755411263233803977851392387837102975038192048237192640959301973634485235185495369079317843350142010292758064517660674319060189938896164827939445158863250696487811816118074749927966424654463314082162059078505406452102071465825076138556025369443430875179555734115589772902827503453504920247405757590964836859157833998537451640645436371666446655202706022191803499853337704640357615408671725074598150833599907766457498320244739839568624052747281505250984817439103698576594292760516429281756052481009728350088685528152385822270124856101554411485208749250848845606166089124744613173453339109145969882130844019841322796486194520655021960790332501461529348694883485548642264437385740589443760076468566531899366187530399996636431085766203336508578198291482695226658647715623695979973462828440387820574869006110957963124464403678641510669112719710818229131748184549550824373261533013461547565566832070416418506523662147415935370277854650672089920212506812146599874218887178582345968898775430540322580124739299183620079761170361285186473879238395704663239943148527004803361579152602211457403503312097795184002696672292628390875912732112872433817510827405764069537264902558404915680826980809445507041266536762922540179602730637612999479167621895360636790011824867003491976508465919405313933717703080868581896978489454563925507841230581322275836361485822111772581512997668576232596195505987669427704986967672407461311885573740342976528529032213236619644995567482196636983917992612546481373637812568928095006716043509936146810595368994509690640780507568287982616176215261502735533831422065759013792933151120358943743312969792077050823651996165227469384386852287297322442967603448226158721479724530959178683141669114303038107068517304546405665511450467671434916661490865235162668019539765868405932683869981256790401998733282908053408462387992873886923632128651732746630124587381657758461557313312740196401758564655864580982228207317207534438020121697461132265506249509698846867674623121275597237617201592241983133553151755566753629142989791021573254767273589040482248300482393321729196012541316747152768991704182741468889854538817394771008465048190251618071156936885770601854836745764247999495738712899485562851448790603348262056060306368505447417456651069416348033583752892786375663655214570793231007437553473738433205280489295835462864417507172373508825554400154194288665686089417693314928119403329945526106940992503403106466741057687404009920213017935030027935087150528047224192035719985571398473497009634742389428422099649258437892342433896376291824384440899146579998465595173705613518180045880305769149230226101935904537086863274367732550503910100373650189434555428605213823553220201112258333055786724908007277505862483592696266472268102574036994666622745292736057394094620903709096072293358328027690610199617564500627231560619690953629661980255857179566541847840105547329315860882483477594344382826483903692296717563853789366708416918941179676803827863234070213708553257452395874363236955621683713216871251715341945369849411366312744630512209824477924750374035250573760803262811215908875017240941941401042382289783250316017883180671598974740955411800779820782843545166727659004462833150708105678917252427847632549907506099219341366069428652381559160978568627227423864680887096497539725546375414639017161191352525295667675615315938748889529968251412576760035972206906748281604610607507327864224348119120275337107532894190433355056101504923821210614093570233548357209767523625356322451059175054756937741217486787854003067125778174795587398730119361334528440619706620099047162292639440004299789628534616160077974364685136289402390584541153912360766704819561994478990463847156709854604212089539250705337606892977796581286222608040703372716888748295628969305137587516747225146973403324270935858474048138074167418888782584559940773490924166834645363622411274934292916017296756258178091623264050855301296499434128607311561218872701521347104879376282060308980334511151363144858814427076282330205464917430471351664425579268233778144366781829458489483836205035043291632781786509868759712102454979711790435321661649105045593931677783135301227941463351560966184380459987894506243701123406565839487721825232824680186208799711868211568947285459763588618107435085451950641117448305235722264812586417721192456696838191215113536275766305040472587703046255453499257804709195247787600845242368539586136504964579536842310944480123886594687219392502221492013863312176447708500172381692969109953561338775518443919569407738642701902211219015180929394730429175957753387175102698927109850836425792320046384687445947019243673168996493485399012941530846300178692464767747183230203343542067240567155944155626088385431113195800446874761737748718536910777869753254740701199488270821633664914146962428285589239179150229594606407340167916687709226587415670656834115268602189008008402419339395600975002476174814203745409108069100994597663901188924155086632914912641718035224056589296420681337724898882388507701541242554819424555526496706173379165878159780613969988565158228426852267945535764653770854416024894003326364763338968216211031847355477214474276246117255504282738754808473731302574555264262878302075553948725340543138799506313244156655133981450102336368154079565520586804519984317510915157061659171822755036474876605637481563665275840529089428554620268536135833741694749207310667972211135112349283597568154468854536592132828479676134374667137214014411430099318457655713029895874983661517959735460346664339401744761847747949103127324524069147981475186142611704042870154476418000026333937477158295696051583348332470300002240364549380096655404091841844339568998254567505239739903461383508968093208552443671848485874596315062955041836510493256040255864763617821846712003669847820569002383089190149933748174165666995754452578546461563803518602717187227959013017829631325797809531151216960032750501921290243716056530533843743543080621075354498385482811775372963496006756317210897501031651809338499569683411291644187717120141732319970452726412842694737452560909896086032975401057563538062602716641409807099330613952402938132989764216500556783244502504447294790727603505164962889091329854762381868944298779683324017268980780374957158707060646076810525174653707831143707848858636968116028380664087817654204283226987215424140879547304689605086089163477391955823371215231711429793699421540927677304835470842827724155260332795913800690425536752504925728065651570001250062152959667612975534985762846051264253391142883436290053232597338616297289816545908943858241252129389125596213896192974743568822843393351146425224057232297854806232239888260696645073885687678222946876879145005688270847026462596691144695867880254905823858211282365098279696506980652522677967847120899813605334516994938150861461116016569577872859762730794564924177041911252199614563998810898642893955154940217353534777619816404862796489193001950303504312821139641512357155250972358207803904776266810615159186781484013437851014617014842715856995162310116847224549518876966056509138454579094684095527675089256374439620829751538562849242249146250382407422876994996168269702641004738547586845474256482908461127103693057778902510188186579202153369621912482481659673646772298447149817918299058411723071495739188294239704126187621295757193777989373144358941207140311745950331286009279127658804370774669000937608689606321356823275021549132866850165930341861269073067453676315268965110832588013280259554762818260873634161987536353905966939693163582497086271118512018666213450050520926085331350366597768350767191441441277084563464155656932077564674578393255016145544015952398686602497492560605095313215235662129103939485759372476077265450830766662943165274961043746892760841741493534457634715180242919891486257388045607219884394699324165792536638658784145631565850404479697001908007046469951036314615223140103458733778518381081623131370426298613167127628965949453318941714822384231570311400865637324895281090210797995082253824422647770817873035132254169141697849733210789981006679887782083533179751733104560666128140734240864864290977252337085839013220905926163277646318388920240453058520497285356849982133275849884289414064346573923881804457619186023979492362583460297652188553158936608031513089653466106906295607320985514494597897422235392055286005603244696246259113475765554758418736997810062945028513959725662461147523666675863966394500143441140596912055822911422291499595408157226556393281708169328924762490513366348284560371619814898063896051859745880655693164913218673661860572112767677673205941028727614696764671879166326303238622662901382024495093467152069089361167346461210115922716748721501336863788199873615516792203145866189816865073139234229527982813908816131540013541788763433657011976608464281934463359941092633785844758480150265997438031729588343942953506533873037465837292460442484171890454641838333956999914219527856583799001059095887625455110501492182635522216088072178163335833739022410434776725864953403616863231704937950300981765676773465875538978146294979104832887755311230628507378676739810809031592296367339591367401636623361425362366310002534946280355317689129655223172878179866823342148555869846055004244046074194693747697339743986684810046838643652794919288279726325365132572440891264060363224607903314309929607520354531453831775120391612426543331770285993055588443814621931792416259381854431463234616061938681660293329205844849638033023389452939663644355770598307162476928915818103024247640245924571170994847814865932021356892819840497212024651416780232669440323796088901663219983074740765838270092078766455574442223545668636845889570102511387663883203140498847201644638868880925079689086051903604594238839407459998174523437131074984588363376634983082063863539702308889470960600236243153317794114127828373699441174232456344977990986947959414192637100766077855476312519659333830654746009309168928649642347373946220362367512061861457765417483991629538569077102728862121177037373012177301275592354799834021770571050402799598827497426176241629199370922730514175380478505738668758430828505607697178683963492579838425131361640034404384207354774240696502274873246702077317246571474314867059414733286971590517824131114679554631651250254975132381742349554042373020353235752683306718991151260130370995058318896777007908678267608584411824869711553315333610844465705278520658540746535455629947144830751275516035047806899157804819746526180984496494155572667923315643820465496164094856005759549543005170619629637877072787948114599649839129521901867889030080046732591269417424472958652383987583829024293644491764302446434347312435915106547890432292989197306000649384021199394968110493924311755257502753622621989144237258092546701175636261234481988210397802424652733662643610715815643585659951724445242417084380077110674088974049446953883901281573411041191922669559191236032694661075594048749783056551310151699647940298801067481446983771468363424208165789015572948147503730591842440096703555440992934207026878263133427813234008576937725405466045871659909278703276603595017546728699364299548433420375397562686909420267830350546584997583690433351638983448554352701283097526593803860902939703376280360087956479427093416618761089475473341039324817426770178242230855231480108956523989001247058086066018263923873647706744564093544427409078749289192211075614471248715904008386785180282524331359034498908694038095726458909997086297533621454815650593694625804565699915247832724709204857970280346700762117876362959347670697367162099473973302128286107954677748537770319501815072221450539322613683894143457953224768795345578295746686003195597448690914045279194376813174761812323835554738568331873987260730571513912521607507631051970431567554577987921798802999021984342322784888292618059070631464652321668423998326781065308297723355634540478485200613219415092019496268872651238985008478867176589002584796259556715090906274152870526610472214683300464437131600992926346067511000581205333422442353521098177724794709851406251102695703542731157618335616568711737545203627057323863860163982714582952609985777145878711681184860564260205744338433538813752255387955677947075963626932339288336609276416540123861430984294700308980861131273627575258254558065572037857373779449600390896739292806319749453157278300304090622789053142078853012961021704773338887986617400548102529172502516062035440005936859264512280849204568498764634590092061580568957759633729077447348644131517981904551701036079634680901161187837504241293675377774925970644471951083084974172952419569145844113597591978981114360174886366188840484109169984943221609648580049780461990948083881127704366534330997037661714423224594204188720175535166433960903982269114280175915200861760349781193277140401425020099986685424091235647004911298717848574840004996818769790739077264503777377430946542723777833245316433432240885363765796519384245059535679789582713727258166315732624386724754278360737766719152627464216161492699022487647633319173534640586690482985439636022669064810357708341866781869347700682534181519876498630230551228990509202546986148836817933479247470867233470652407992688679683675906227320907211679240476266196083297957041584915472785156330728077628477299813358286778447457427767200082539454806281623506216280419130870718462154680118161621786131376444683800851423474807510267916646366972806808198596986254770271107565741765758360518317471151120128411790524512545424997345622942937985186123305613402293228041341876239248954767324394233537352456206580621975864516824019919342964140532774204475354836406448080528790472530001898583763632343279069907453177548116371789675196285798753969397711033998700925580903484320052787644481271886394837828202016653960361022821153456560332769759927348658636230240764241835844126918828777479166819690869276297560068713291321638250544041236097883476961668775234609986989988533589628359734582930179252659700212376010078683670238089255253045137372497640496767434420457298028250794203444914059277611188071101078634329082078051555973159927826488203950003561092697233784317343645064130138892747963343799200292289425307902145885223305640434212552640390223985910600038796147607141519805105848293328906640876633074484799362663167003182110612522857395858163859329233641062166846208696055297951648955076024047347076157207183367402525587558999704137010135088049474882262085461097589708359390468405481785832829820199583666189908104587992336457286839769718899035527252908610730225400592729887521087205932166901178352603686220651790346268885437155317646312192382927201153374077042061746876305792160250854022064620370430045623648169983093522353323863170610514221888884370037357544122622758011757015347048597751170545353142386508234076634628804089292503370550326465554094611109400660174276493992797917668045528573088987104140429363539071968368338542325205897381335563421623099429974866744399879915798365264056438271554397525845582730531957120172324767119781112061196491127795727575701401734568277456623074739813684991879860399923787312840823185683822838876577365192459305363847229607307398872237581790802298477189366972136283947555712530885892806066529911556773085731393909325214484632718147860583117100050218290632725479539310458134869811177290066483967032738196068528636582927583942299791838691913170871524407418488656028247156869666018570423526051590709916420852002155433470864446133426628921346515627430035207870129375657667175087277089589062492070812696751407744034440517317396860914671662574566098657519291692265739215350639761436163391014848213143786986067416703345253727301290686384538343892790982446754342436930937721826204487119307569344147088144304703189345666291540101804921852578478798829161631983402309410153546642916690443300078474001234248279275115909797160491652593275518846344126890547777004329119051312571512174244322369128027630994934594390818678603663049584651423316113591212507097763242564933967408503348024204478838337681428375897605041496660287966852649878707412352658788586787441518406544536049211862088055651832598754328880661327890640871059047612051959666668989737549697558731932575530509993415533221498113350257776549109389446903156496682403715593367103689320275772859387431211192701953352844542186620767448779166731833287460847103835643555637180271586280279932195657268152241594409187116148574101023154443731815454604757763722064633445462627958242609229607190428917351336523581732457010733053652839543828104164320967671454268048785202205190467037453413799583626189340399149342959102273073081228376155636846683904776773159438222898056322650715575922564476412356080429008935964062039208861483131407192256558689342873008967777488557650041537163259816983042141489660202940621288641888488903902702562993077295849854924702930972462557278474612871322619143200556245558577831905815810144191008085239684651174606126943271167814969581191014529896282005669664956987215066576600615812672950869775095058607684151292564864048964815922113620009984998076311055450905390011806043332281787575510784086130451632979746293165551146842544394580446946864012606315301870715915550673375214952389010465435969753820599922367821918196676421706225863789066601598902750650793570666132924763630413686169620383204349071654223303942889964868236833680104958137099911797340616277328517316006834387196736477999965152142399557841357244423052555376747906001428182518558871229908164806774156562868863088761339810377634976095944038914503896746260255428708914538828282242829014405667273431027113184040960300589490805528150122152950227284852222902189250100861903380803401043310404031873288326494881835469100725417031101758573226953515679716645035051775477465782084859150877042999835550997197258117599778311546776293023035146935231639846779066600595042141738668291924243955124553581883183605965725071201577325948064761700950465636358924314051692112665774858153609201897132923786510120567297811739311125601035157080530142574017280793821881028049293080617581251707953016909586120371962565208252800209299564116801514378525778713646079633818290439024568904571788474630633691022345075566530852986982929524977877367425932679194249299751173825402171569464986588062669254132290668493844892349677313070009564821853163483989803242383045967170858601645213855047473021080279576229677940565958097230579666839841913372496788948052434056117481159600459166593107265441085123516705363508902146292515269553974269420959422002523545810075012923098393768523736426363001763854830175012496321048317668145009967254657703523253634903547371271545627048643922452559848474208282027631505597488198138441879630814018045712780576930688051609328780563081845988522391462710806331547675129230207047154914311901187836017135421784244843443038530925724223923720573500736827239585559601159281766639115227413228489080227528113171590918335072811259096607063376424644684647286164892163822486654242379021908823538288006355709213709033099342105698291636586041072031273438182030287363084156107398394148006080454728710251184956263940615364854081690486697336880662238041916790367741396840759710480794754212445946715476738049927451672557131079068304285002297251890674037418474614490178829775189725144524663922454864520461955081409611906851076772908684252670602891506752544367228565571133629476853362571788912936525018452256040175103534735682860761408963134226457483889475038703930487578314990111218374563349502355272871982142403551881020734348682819569850595839394333966781404370668209700244558992350172659535352287376111669924925337214076209440258282463842510557374465352599526551788779374290826656304501752188338877080855160737397510540049554564695235542046268452526970532824146775722086687743107516937235279800499178927251363433830946178054791656382602013569597379838649964537659525993692292809039981575732062864424389176199037801542029257346304519742357028457485216803131910951914756062012301151869553250584431995917356496989072380683159128004939273647417435906351986096186183961191447751183283648325426901827934365370097054523341489617290166345311113474038479628234615856682659212331370544634441462465023023299921884191905374060960148775061552170545593389101582921102609661395150956523365584505118480875701636224773355475562553174789181173586909927447197800898044624961479802405616427352853994594804737191552049715772575034309891477429577346778815234369548976666755949779840573828692728257701687598872491630886156633342784058831938190378603107657137098889659038020038455982289380772272003770808563121149541753199753973681527683155377213209699750930647613969891142862420451860161902879273897078111289322488450487033097300690968404167015562470809273526010167237021431873081720852029061606270495779889112302725453139172964522765545689809652567844555817030295372359830432020824041149943855580375657048426889919591922922703539911248822336479904695036037012013431487117746847331947715601553120860355201078411751728723355904403731609116004591356397829135995831711671885525323233270579335020265110656949161618827987302225190500734645879845708572388875123780380758798751682256905361723791975601766211846669995586918690366941035931232281643399489444832309825046037064676211754871985704115154348173251429540319154524767809487322067678496391067909877726459288885872213401425148281348046466443005292841485768647093317198870823355316880808280646876629313077479825659360076906303007547713164494053149685663291924873303410427294205708557033556520384999409234400609273125150420625852572094220768137230313143861874701115075688898561217607947995997561344669536824773588738902039341067744129609802638985975337419740291109774125188237624247125478301916053041132337996825696264092785007642506806311536733652921082619565321661153015082089201244756732490985327241205018019042843214382952737857371756859401945858863513584210504276612484929363286285195694136172114640818415771992787251390131523931784215563016024466593345751690700119400017934058977563958290382875205471327018120761473656830216631061250785747202053127063005168671436410650970757777208282721071391239510768937433871064358596730168662134008287776958193385096139176822573958627146810614530941859998042881648132564151110794482520428122781359388323110789536247400148035729229444742990747779421105214139003971609012109685042575284750114619709863349338125230117044524369686394522705238293600074032488861000492881129930882688707692924602550640003270226006325842404605961123399497427807442588979428320215437933686570000757554156028129861750182166229196772613746679323619299864882410850448781034831530404401834071311758733435126439582719024864088368162892329922053349061352671965594217205937802814223521128282280716804601949437367420486965328867855034192687554482915881789375565152675252189765832776804828080545048676013832045201707893607346718167998573856564372161554892605841696717062362607456740488715295943155314197723070245079623630407014772778186107408186084428665339190465464762380964463016850054310325761190604356448429209501888811809941398834804585946937087996144894951916110863211472602578383960908767744411242720518650557259176013285592681012917073742719352420765857478002421323738216776857537410946416239325937718055451515778725061532925094250812081654215735606362035085450934061502478986548629039095640606810574307119116648196385758691100808347668955057938642908303262932704524887439293148325412324113917862771768241034653286946783889850585649710402337350420650621498939989463835769174443892662483826379443283282563316131071530048354029453751902730213396088098835940844896729222020451182428928089478728775161987497992686678201760057995901004534135521968947301552107441193791400655899987984206061708475535241536171995337812281311483238336401750170233897615174457284244500072164503794887144556000753725176028580892366030873828580269490253607801121132096174230416261941179764546585127519936903320649097849773293018394383126312936524431174782252048668641110094828742023133888262843659104150443927797817206254356419794657569873428839259907174981087521863775805749623101309129554031949442880576784412017099368610045701310657309103088215257567596579223383538236504187078265924126404141945005440018564894829624569461981356559660914093238888089496723098152805835626005352640363367328921878142654748984692867231811245997918723059502974586369181469231449416571660862748090366112486918681028047365780243104178229403579126502441483983619401015333274010459608776026608157520104639871281878707566542112338752333165250002113038155214720311420600177605315337475266682107726649728693343197915782737443787122453299870895780523611170971238543800502807406560136855998968703104778111909254588676159383135494380588197624541071400236366004157497730635268525680806447045953534022118712151856909173683837139372908420152880895436761337936483207985420818416026511578457090263492405856788736325151593742824072843272507477634529995880346502578933908803147116565603009366239109232024486972375072987443445691683738502411745810789907268354236514503904192117215247066472084392849039112718111827979461326322653990287184489832887281089878823038733677062899084307280433928414436024214611070475186811747120692245634151674151665700052073239168170436575673824274000415597720741566895415947022558640092512329622199384495675960287524799663236476682066620468823506676150418363768247351209443136642833572689719584835827530020707040065707766276843851733226567821826634908823023546872258408407392423512716963643030225460295927126434730649704169024942701847631965067821836075286351945103874567100852512754388773753013109703546601164586279953383064452633533140918251817353165839281172567178845863380380519559359418052984186642037618173192466055339553602874829928294125859469233500232276562356849637236354927479396173232546507702187078026565235888209777176222676739509917846583288513644316757989724090414840636251496342331531790804507282333625256145893007821269336979424030561991988868042932808182264580883443853987349206656004690641069171263209948496830125902259825079683862092056136650702495356844157149091374853720575809602584701276133295216228026116866950351022196484813055707107885826697574037867443160295276618378063898666416942530312211221400453977942917779314704222855984833853215789687049230296402147076890332476496360433523887846478396956388539849893064232267048811302133989920553069516312820428601052283155397527246257288178476292954274844960024513418716191013717516783381477693367408286666926511995347980462877058821873540636484494803456375964281157254375929327060685975762555612993849132249307934514425127525730336998496459327425757609962234076805161607950278360650015913711692687236470396912825865563972565657165157049263392393606692061350173550865723473459704771381827412451698151906441104965395356630430150152169326235376570950340822675224500659964450519180135388569206189473259054535556989191201904497057663360148317732120163789942898120047819763329839772206085295357577540364734194506784069224164486104219889257296533039891086645831548289659370264770076637447609906907297658225263003788092874055553309601417349165497014389207353547518455664444487365407544611308757615863991215768671605317688006239116440552976941181563595231672660701897906205881222381716138086363433477032563748701698095287471528120281162900084920881569800568800216986126357095014251320931966514772412556918998637617690909467059353302712012455304070432684226542057020241997301823193854395177240869913721832758065241228985490488796993378403490730065109149990519544084216513547974008333633669763099057890130384516267479890747226876221939409566451292103346211905760664927707612964234103429647397195519689931042036325269678452337234556361910015602011069247817383225589645642520331144709732497582565075606091762941699105853858818185103191921944099101176455285583475955109934107507954993102508167012632317478394394262806909695458011148812190315471269879669905919355163114183280563323786231488054147564530382793298193171362950874074185726130046084843398358698985591948736210728222477972332829366294844288900363489546642313581728119712597423280626203238878620445930084121107395938011484174121013271565048493851104690571315153522065702430621452848800430102570143664453084420105963694326188364194924884635129362602203177016348930015351833655560377028777292769491562077239007971850986442416830570427840166745836732765205936375369893198163798289522713979403879662141184049835003676174668451130002739508267122753277597351656539402972068995812070680070753384790689430984125498736764099546644967831213580040330179453826310759683239331728961513673797781046530911591706980004510593767447841331142239246933010782896519337873673631579212706311443090406354297053589658776846395146126097327861100569201493306007527891119055984106844561016964730503564501273613467120318217063140943988276854489095133029398425653038098678820697573702154117293906712534855715055761975642028267984692161054995601110655036586083053303824580110239131334800059535563424525709263605776299034061917567005477530232336932812938380635163545630150896884511932739820530839363577548647214598909005996873806020232195695691519222643014469091118885664978305780593207304607286166265640347103295108696453922430950775635925673350892825640413235287412893113185239811464169914661971938203562053918102852890086998102898388099160236420782500729404011084161827655271833137561497651998950107708042235085455343699696115108100355269509030817806619855223481941188188344672825791391544902229548790229796930861893742637486383143890857453956442819345754943929420899568715534951273191150015619825641043450025285732314593039011794673743369486480682219952832196628499156909642235997029782228205812589407070983117519940580484759170657920011434837428382940026388493611897250325194692023349616728912269156483440017781838803934397340604191372771779898919913356753078597839032097302044372653064364454359854711264959263200648721415752921094466898517641545340531441534721697525678697857999826569683552969450977985433649200463596191857284542717861429154241130459678208362089086338719485361430040654543661358683926781214264193080892952451496823595133629697145791713253272899153316640209740485529103626019771912559208602788879711425919071524140448612075626239478883251795520357111182951100190844650603428434607572414746402858456974231536041500532278094713664518138472824055585514078502540382009739442141439469761101447182826855746014617798612318078611586918198986308665841435440884827775751296119287781448219155623061338150788452326342830496269570061983109924445597642406446577020504208117338196023082424677283182626558125863254078622231739657146249415060563075890245947576353803252644884121564814986780808216115580752014088110561338869794561550189758081525822713873048723214275910753977535918151194481215220181205224582957800373454116511424114262406772841786397705445159493326251086209311493371098538844898488047534736441522628195611704122682170117686984841443386815143579778134658037137199835201705363391554517067435199505557108717479596819398855764088808487101962759403106171147402279637055098429306563009108992081253811005918185520890892078845972104049275315845271222299198360274746645794460920816136387049260136983274248878363964775795674959654422815818230162351609717158909327778203484037501273300538903977890464676007626555936690617122749656844832471237521317275982621862588927691647060793855000526744203577897405673781547228706954530414358339682333728839421437547769932557024873957457961182825281820290688878013818586417267382011125561455545456519113189190480492536533419531675384229336881349462286689524336914671883199996411635855130126933902480516198744040828763327563785505857537324796486066841072094779933766166964799736243333898259037224072822396948687838926961625392150697839281914806849045244379943970949684636093220642998340524780221849370735471102479499972731007125624561299756126292511782424608550987799386177900825274087963115405538108813569268586560111452359397386434990728373971726018463050774670197812151451256202505526949830682512945801095335930337503653934415990964541618564271692530464916433964101523031161311708923061621669621696082227193273516775466010572309860728417977282117572946424591274452533390073101818711885814394039167779177227135626865441064321567915927890285359966466189577081027595924598618585244425182395548822503292046444730228678673652654955924352445180131753647957369036567239990240339497944150441854147927427609472656120852703055808366138599666951156139957121056370852047079099409354032877946756416783795312657678666913861428430014473371622436116627504527639492922410542772291101394456435772427389972399559435675062722969587357945780362728288915308706814577113467404774815273787631018530859967761357129791043810432481524124429288903990832039946238567105211125951110403023608949457041793244894038362466660954591436379857770782354918581408865302848815810964848303277477754617189160539551178581828685865446005050939287165808134487473173938143132135081763820662554675129865619814949715445548445290725995959802519811962360334923999026613029569483873873570712676672881614478862749351338865234676278255552973881202516489323512253604164103689251219112665670071614146114728461049620956755400191074356854113617671853824845113801273676347529456310389993638029786155797222071747022277117851353895075207634929039371398948416569040054061833913429980306039964982597461693395143253926496452116003763523796272751708207374624007612077793736508442421289398203934545170566009507432810454809438887630073466567366358502781570700602620805215202809764321396401431287181541470108334211699721414531202947932460512084130789171652574294677700296029116157793229379787367294981985478006282197917680954998093851080283226599202986737629880936403297573289256916606216544732144172294942301991811553072624331460327828482427341407295884076208958615376048025140740833331344647324694487035066847403315866542488379244116147015238274856621992044125533734436571334133002244633503991174062956326074580791354075263550716461637670458014865274076109013750044857324594459376867134598947393276909761778724663652484648926250645146434872580142821833766078461314177683447017979199623244144469051521999105998351663145931950093394119577650749701993389453572295840217126054067808048940168698181476707071333894968400344610617287878369710060614927388159877473445031752623654753839550495037196678564426128412375765221007364343311288542649430975212964864274240902038086196259498897925865770847830954979054443437741927738857900682525751484323614938761136847305525591862981623507443093564009925853533814444029052093997194422102769480445523136558309423555512641840203893409229565435594370831928744301525781670317498023816745091588234792508681889673206487209760608714789500117131693763470618030253665074191729115072048714209556198717044605355906266526695648084559714570227652721564301183401415391650530416878111330830353297407966864621818148495140936964677394358088853771136232712901086968283022488719969407743634857625209714370576945035052866145314838041141557862365735525040887948021905367978200063747630103615078326175988679913773165343883484855333169926256393223176672703266625794702483099313742765970100871310158492612826146661737856095535466807544344429713138852874292929829923480643212654234479121157277817159979913626510205976532096157847176779949531354997987401330858324723709055025628907149009561839930176611815201230441365286167263614223356947066294511515551258434922456213085294046975723568648767364266895620579050918039961799210305885268852278811654660235563171251458137880252120709556201239641669868910341197671694104535380056994259783679261421944446951352401630468925381444326044272025762885857588592889700747839052029153510141628492963188560175175650868129604527050640628708886798538598150514316586960780195614945715241736036032247485609052653456234395845630993179396673307700920162026992561903056637247214881977715115027818407936472449378292005933702671765436279782043036541912323411163882940258511675699592698583583487923620875137306981470840967679265577924085961167733869264135600341563708346521696991529084952024597983202011236141042928866786449052595183674348060730343352377466696018081621940253885134093987195603517280512928459364328677927072495975764082811094189709957628815419808984304266539066186445995301675350783056943306654841567549427806151099048858795301658797615855373471218270050347030996482145510907597666205331706681535021114224372815578586300144515553332335318754237044778610960421947690373214379305512690936546020771344463671452668005452138692602327488333563902768455165266863364127116084696907507560115556109757560039816581854176785210740630495019214955322964398437453705689950562781978645971066905919411829945425263774903456986221004107305636450662167847492027902796906562826758749072924398466548175589897860772342458575012493454613601297515597059288214915471519202543643605560928110044376923661769576998769103657818454640517376315561787586843064458121704235324421993528182700680769421442956481414779318835333062055983647146769776573593890261673946495627446913072059410659093147061340140870345310647521459230508603329878014398794858284193956315261234724794221124078781583563699975108445881764579812726841898004890280776306972040866754792696578801274318036674595083021172137854122028851733446173484137245847712908696699322162186991195849044034168831494006794335526821271809129977353038727562017545347740521356039051477489992475251510664980904159655915295578456796342096772096102523953126236382849484740264465187625471509425903344307191783953057381348154067378714767090952933641657014031799558873122987888626856347336390240430937029711789356577569262985217294342641980633579095997236350704443824225159199774812710566714012596622315264709126912641309498257063431347626088694618242818441940019081816832699524426006555023487597672938331057990252718704244342986481370711965043936263545138868694124697233981763008317276304724035150023586793311090485948724371874973547664388673026031254332438118822287747557493326190649296517824481295335659826365061092936267200298954197339885109529875948862331375450758187730650439956068191016347928869274763608466321122541606415636276720592250882822005158576985318636582268157599639227244164859166732290743255443499347630003525333711526072809278866268939324888961982838624245360576953441325305597129259465943412574695981990601495236978506694788518430537686382234321881867190783126485477460571271446152197195190972305061390925634069889097037476609142365698178254458593912220478579235787368803068797116531057176974492611405312283207519330015787187449928744882155525346807500875142709535085979380588261173302195284001465715790816602054290727548154861522786980109177600206033128971389336210405259862472987057416851014944217958799242431940249580447105149702328490270537384731987496908634078241097492871643573884209155122082371242188531456454532520729220507225024636250167536856990045573980344197518452948593341691383651304304724904356691987860221665048454244624164437729495962992457167451862047083232173153072275901587744901953971084952159591986801965825565670071915475057842347074305908910609463467792697841280849521165970724348565973009249716434943649426398405397972416079751606207236286779177008189037727353482165350608263046971420028629762040661719827625748267530834582776186367025876955051684615233738693248130110240769568187892227430219916686033438907499231614108564123447763504235375178599435035142358928338156975935220740336139723957211716660526388419881560907819430178897003885339506316963967223399654058308185379513697706477652368827878205069129340555382995042561354804052178486277420954949354244269200624746495000158694103213755345715969281002240592804631215654211412518964114712224916387249158018336690687379757332187414379210446624994403027515721168979338371900177893180178754139950434108588920815732441937577049529480103337598797261015519667604759567991492678001890470117678199190812302166046629455930231696987282947592228887649695168379048894249672422992422986523915492514034433906107520546568388583110805167033943202908707998479992224776951997058306838486338811678249162826385170242692055243448739693731360814282141995074847295384654885069871490214807038400282878928879800710660442326416037546390224729150856458560530009863859137146028629190219681774148845568377571028483417245309558161411467584244562524323262779039765564072517485508579778720162674064751844975846640939858106544800558275285378901811174703825437557276777129610116148701596819644203785104983112586625115624935260075805626343005911616372478345654139874186170363584491684267582316475391919702996144179878092412784184443379253695748565134260663470262007464742345086628380886482239553518219158175901811359731726633979073677159637460833373062085314491740002863002356663339323429761258713576847918251007047867788062234438802210394561861792420685300786234685045134312898857611093558016622968937588367393827166697980327827657186790433189088113795483426011139539059832500782134514634013840828315981086788307661678525346213960225954804272209737021148190128437745895192093715204083534462306858765127725635274675260673924867226881857013863574944786817311313528199994475372009517751418555381726085018666514577784135891810910036432708176030907536220927294340197973755134495809262328675182656180295901239479216849930258284684202269224122953552005086542504434852163291149888023554349271961633059009839238537135669710205516090958020918389979043934692662674726285239525524380192270780070230745082758543127681437205562205526261319079938742734497982752092154559580280470676621584121432877219614458952023385116150354129359189314350968302705021094703597845150014507187825513645800031803096280753922472522067430946315160628977907836955698482384640757970099265827456151019771085726153023750506210615889801961778699401714175388876635572799901441354988055439825371670008477733469193577968048191588667851756216838580267089536899114283050917769313807735022906806426384998102894283523833635287138413813459579923671950597914980405077203045907276994709327677698091650051715866932923161420183933951717079592603280543560145451831479214596639814739998609512091135612985394041140116716148657231467828764522444545094978439179353634793194662030529653693400707801479405157839964682234066538608223835884274591542887171735891282530055743920684582512426257162185901692153323826609068121795734306249168766588744627613725274583248005001062741859235736768186620809634012524167691206559004542936709604669035825177138865340047942648324097790850163885938741043613880564775532505316008134161331470652795060258739122607929610707771800214787723843765683592867151334190595604023159622966272730801884414518499594077247494911216712854289327170181910527388223006757343979855319150300881903661484310075602453821261113775483212999990667230267917979278320898173638700132651519293225420143814707449863033843651450046524301787361954166426867707828835275091080674303240764036320198727601683448071481822773328446830238793772095320400516846389615104453271515034681251915546522649574203698308206657146436192383130443054953922913396091164513986329962359417688814825402973950571372691957831350643323150711809508579092981930842758446438888873048489296817981225956978002792961707315708377232045353320445060457652473993220132232865952531851931547708899859110217892742733962407570378865338524708080375216550690785897323398127292061633930033471542289388945050424815196932694039646123160175326803144834058789361372833982168511693275911804405251567892632629085634293954641943881618704158067270261535597869651616807736624783638798398662272178849658227263139718330105838341663644332436207138949437901467335672486477978141057683997875020321132389626155116430312540728958823164031643520686583524336746048641742195103331037577773997503695848607616657373447187622036880315338186079890917697487367876190230253042039868706276338372695253216218406421467313508846026090572238478419629017370051386011048140639270382667577999302225305778978981485966906580770054431656934828834665892118352363659216953667968782195781370747879974493651033082267200641225677530835595084826327240772807082030294911694673671004779742560397263822035399245760653685645130590386014035737661992493031923865817760540195331237347723647774290303938102306530489953500297229885609541002706484621393435258029473065136743234366374411946438004898992852584612978793955094030080386068454264528161673101396187100618570480397334013996844642799703341460516884761228035928829255619387484895040136375040282512613934407388280780480571402618021532435170200215917859074908037686027390502885553610787716111706245771095061958937107385509174151081370408360857120668893104095093598188943335419403232865983218999054839758511846729557328261555763493529730872075063258620092873947908409651668316558532711523890881979506036328376285787965559235100923188449233956650684451505885232245921040431489093747347275442019270389813124620153790547636788589753192846667749023568412315326582164253986886055562060296152511009447781624675278032858910083477170833427446623240173203186809307642929951392488117181047671025026698205770681891208467354359568917780635838651188901203554251478380586218285549827321430482447738221465669457508743794544176557099337548395095656947944647683362306881694658804893979874577204915706158252686319874056754857509868287271618956756793475999651821330012963075233222738861101258874758686177452602174296282168713170276176995559285985654778120604550586894323457509482290135203901425721985976182587795050717680498793322786780082879432295048616564668977024185627309631149021040960053010989225591701855003608678269247433009908968749010110921512005282099059500945883208613555859985131039204151534642939198998644573379783972926237797714513984157845388244667868350393534596847212183776427383761966413681694292274955951543340547194737690674235631869908180788107013680591581847012880980873977744885390876639619951615853947711408573063964107458492195480922142753362300151130896786486549545269327906569449663516560487801293733455114066595502598273949360400204599488233192773607024670416907301293831337066194075181316437281219077044270833850640739338691213894336447163666915078420552628510684665075746931459384727928724733029214626559480204180878635037605002810931740195386365038923064356335731632249569241948870741501372283817019139019529705699556307191539837360536592858500734526990493465488200498001275693556800595630556315427625184954000987003405489933674343714167990286442491254064452379907054201313616750904361835313683994604521157373411622104255125805585306879611268558557854367888045922211843809807025611316494716399848010758094953523373636998691926950895088014336766122320710959496795592243575018854416204020255525428263830381202064617662722863460157140430529229735411976195321739369144822260373944505231882770017351157477524151831472983466348783060445533172768290536214997314958124660752473939160999630726993367126391149120261657366029657649051606378881081230975634513344279945958389508069737236440729365157006479268767248813614831701054201194245192619727330960336083810990553345500273303668545076228351874405389514406656602786288214668633261619885672598839683973341046938490663300963285602416145237079301444181520455516164582467083030942036152145939987608120822185587822374689826849237067341397161449090771219990767130759757412738393021774825106191823777749618465335227112220358190607118862322128226007256812596643290413336030383349050903572124312964535713004698699190007208575566624476001928196609742346132458243759752818453510943465562843679405308625602834312174110319943584520797327509489083598777934321030492808338878524146965934559209996669796386560501655831720719907650565394011706132967315581199108075462366552626379183095853049285559354751413165368064427875481162219730881288845746629805730127810712304407529999905391005393648535220447993779709522766092278991342581378334126757597815615597030676805115638394075998818428887214897577622920682704769808078033591428764004733590573936264321923279006640340497131435187237230551954262800775930978887731973541409874512277521124037950754749311463154127294051837419485041158421503218587740680364835365441248525415890139701024331503385990241731536042188356515281080566991506810011456566316604338510107241253871904140403898260561951374600612288591807773964407047791371988645004883484861771782554480478819900969173471996060375822969478859043043240138875787412380633479058785411011288349028682226709291592976937775626229826293517377528126631458052223173529016409358198603725066736147128882978919611485708657730722900348762494872063685508038456652738606670907143609999958067061993151673967187855915191324606194683758873718717297187926577691441752940698818599194810004469014066924823459092974465750884075382738138749797914510566743489798349989438153076903704993843398840859414466538408778788203456402589074486687098950053628699798514850102458386503434116574102576292531444588627088808374998647921646773478349671732646778826869855059457852510318784464515529580950423609185434334490505161168460073916081229240947782610520104561728148109487051272471487520073673050203152798512786015992344978472209379178187586799341616075742349024825321441785628247533984809334757876256697550893683554300955540339019241248467358688373643158305727881226520782364988493181878110994191237818858504744832025097696216360344434453139768072460969615859878716547185866308732136964247013324360299815450913644531837852543126005587304269731134991064465210758433824807882108987140560905104371544416424986726271642664084815434725918948960616843344110002591510218203554680783286643619867575580079591071147823820928066529204463453067079420187175590820222319508840068966359048222300218827309236235716883704738278808018518566719744815161234486078729177929685706252069145071118095866642387267687534795972049702518777909002809874545314278743451661139784353442800461178420164209085505704833584084790451786781823826618831111305468281156462373207043365468680811652627021790473113492230648797770334783045095916609386249122550955081245035885826531664683264784063484032743999467511639869973494991126710704358466506946927095694056870503457643354365619022219224457917097479881282437406080829097643612475011475490012130446847553283191612906934785117472272961806605845979782071673164301547408130832052409785197868745288915391105591168058269739862257343822336012193263062291203357958207033135454041108498007380970927156779967043959024331048388474512577801882029563561673208809225263687071900557669650757846404904928491322401364189953897486450960404558090293180302760836299524829059327723525798499066587683860863792213212407701923559031372913308914984999264761710336048662057772236497548789275290127937141955175468696877066032481654777866826685604878530561902547982203854107068359977576946132388753726427032663120468934466723073640096541223758989990488735274795523298949421456206895371608372588547374539526923599128731718948160531117389358773905484813118656932967488673530568609879214604168411861577877541766110181234599905175451807618825408056874497354505094049676423268721179594487162532238349205315116618676846855252436793807709977397845269024489872210726341036950994363985956411799453965685505120165724598627975076489317811429683637096963610683855479477259745269708896543795512326794701872341967854351358210737715935307719794025183485858377380235905245743235215150335821581016777138568609687083262253493358291218733483243666787094066776858488163552229747021123474996263855344072288060869131003869842940544446597218595810042510448171334958720636652086413765079405244665208160107118818426926104225463885842742588719906748360208143788295155656951993104287388280682984044971684581055283967958540683038124866884201756793070019126221172170372525686948050177624988040648308283352066896195580588550237609238968379064664031474018289890354936912621156057007604544352975656564576497438208747519189982005675554222308869762658735597060339670231121435442603517079464727739027843876838908169262774779430813162442623184610700200596289805786712442176097823758814042727591301089820092139513101935112775397339816989411560368315518690414190535835679806262131272853252958756232380124256866612641936480245323318391258725159847842188443694560000995171620768310286107154093154613246299649603339350799737573332715261591863523099085986136012716697627850927880449128356921375844545875356024259915806567464933755741075233380794368016922719544791088066724253569608697473155708692657159472698356107079436058351268863874415193053433633924664104883297994928409430078490122598531059593332064754252605893088354646887332902972261028321303490362191727853011185692475272025108336502997510966345575789219591604038629733692047919974464102197875784168550644731042754098516660008794860208947448145085317861626539742933263692316365119406669830097441825927150272976982823946283216727181797967702210719144435677815940372955284513811039901203686422145576738743244907721834220477211371218904728287313292242701985131339035308965594274730113402577060286017124003824511685864057193830555080602315871395393593123495035286001043275248234499437835449450901847240301153772293986181247586196401344726222792088461483359409240130070149179217806366764873345213145397591916262408205201514248900533932265112799908656451327827872107763049415840994254536010797951607455378736273590632757193453568660759396489266391711539011510545554128366213088655322938126220145579128319170482963364785723748136632955907604244114984886715083503667477642872980661236654606101671802383414045488008819588807426875070494433285849665522336689367558630518986556277789994470827627800692716126930500696427561446082910517781557709876661622718714326728056990956288644560154242945358773650606528697573680951338320459696274796495224902529870636926362202688668042631587547386996110197222112501257359589532669339984717906848288646950036781130283268380124222765438826609756740253888507688671266796009620271801860165497416903732537774495695200738515755743176682900017390964155432228657010782246084442336019717861721180475734622273301564875056287547836254208139935734051340861752755390856075674039545760663166547762595163316337149206879330032145342572799963610745273645946869051459582068724753190852197351556602750484905162587670200732811266387063717823164955534868592604044777075371019954042578549914048848419268915365990996818328737190859465475934208327485785651452226710438725011156168107243852215930562741882190763933458467484394042941165214825869306380323244307133170624168053206342341594964132409417993917112465089770808729369951988738877258055786145323038649779965109418851224649789738699961057744042072524666651132094128777200394313098348209181228363057308106895477596060219381238299337975238934342192479197018111926000798410682420942353864774422944368562237382784193338711959351554058553383951113917122213627549211805691686077516193550553448209251295839058512844030676031627827383586251091637557393905272421671295743409242791478294214111847739606081414237529651117822453159048347688283799381248275101726109438704879558742629255492759214421959555238803504336533301509485772744246916816567844773845399934090529417993287302354682488510888781924934814939405747365239685987168721955982119979183538416433428787973533940769739755829219132195726494253144471171081331858886613817754898917713682387900767242674730311780488631178448634243938755782193311448666976966460816626682896957028355270767409088103033023835681995330518166824447356681549770421197107767811450758533155516906995522351625755066604813801647580392787984314788260332917819778811135700766467379392428178591288237365957554181915857573277310740749158487786977110506397785562315101523823739815061083206722683163440486233439712162547293992020651707645359890998738046584069099984732848415058367293874471759706128669713580306451644730441795049064032046343724336171640234630808024976426909644688000230481511712098539686530862069354718966813231967289347260074015606057909014722460040936886606429592564254447118629685205939740822260124439847217295465950701673313085899888373028154721881441131238921667100311058737236532743331466189491063870216637519972264289844260394777726940833437326635415155999979454117561058280575533385062938804124172915363447676043110464734755742714528953960659515531697943490887918753553779494787607245916595465197832012429806269085633072767129258654835527556558524059227538756357658229416214089490120717588053243199988753106276811987334678402068310740271218506254532131286522875631324062051267875147778936288894499923577068826635720364708226332507611537603118608942485384306195933453147318029784455079628769432129360157284141383077512357893163706109726287700707282357176174402360428314712080760112822200189794788779055828103474226453636706875485080932168883119459565405767067315840692690175429827532417369043329101073280300977841210572370615515313984589484954336813310738757825415760316054164356629370350316797026175848556311334258713413114663650664796885617139701111633012561111279720221418369626847029802754011459120238647062515210751558461252248898491667859740634259222808860252532579326912316498435876934285749647096421334873045079100267010074736217959923869380558565226433075967268134709768909928255129844729445005022927938101847210836352938812382508430905402169791687691364896639978484051733777712092347981962789707185055107108902349606077574734159784932157556462062029710692935750214485249617717186493362424198717801469152618103195608455646919349181240088451869964915693418292915117166461219938305223503276154369960133187017928088307501635992737955376871355361671785632728655658027906220792818489758930645952330469891870637237072000365393573877134480560016175124812888325606353960247620691331179064488393808595595867840308602753637241165814733094460898806508179803069059774969602987838615256213937817035200420646788997170527254760802648566338040960148355688966356929025359488932759024196786511385663141998252160571114142092286074057247589177950987681670327372827001400595595856504312609808216663906570594767438652300953914792289978482563222278436833471600843873312792841035790671895873172710584100956187872530380060495506885060998654108025133866367568267535587234849090177596256313101172735272483294756801044059153120448092571946811939399047621178780521486037906569067482758725143918316285739857224759766126901969603433913294994050414613307270009406807890100283253306491347671230877285405927680702597033326653785588024187957369942519498416055433784799589482111131590101861143579564064201884743954819755803133543621077307855546931241096142505205847581137145710301883107946587165152539585315319384782661302872307315655359081786335321530282008521846570593699128153428626631356560754438643622205594257990631353477505739166682992901169286797878648250749569182056096745177752502725525743050694745832687132656841430110002761721500997620308145548236377689011298969465491418081254750488126112824637404365409796464197551383923213263398031581721565900897781507637240805310880536027570626215762584860815598608345445448846212809586389874883822319247149128879485077717183814584780940679708902958538552502861700287100751599866675588830272762505589025167911963589414200434861446988971499766878842195928321225975125375085820331751797206144000987854396889348074391068654521660714286488013931221201303341368786979738038883036133385042105590105364042815793824254484054484352316226387567255476066802794241239116123628269523931641482622702137638116377184183109637301539696041866959694299799906933963253131311750115740312466931479971361558014566558209259072820422180662229092267932308078136402339050548627013591965022075659104156207781555261865511294583697663060746897382380949441863563498738694840994828686812768839953690689781153997426891684377267212047226141909692093198201630539577209242536494450536399077788290984052516968510971606283948846730597231407495077135669476103034334996410000062042569017903490497207276028146495129469936461876992008521838514743127005486710933850126935430477834946480985211228193447603272416759570751874063503705715423503825875490947647887394866534301687982055213613870553573038318302520301784559473113766207530420155750374106953027476124481742254857102388465317893294078162333672049824451296256980814000787493721143456577414696720962539175970639668229751965984649450509637282522750417894547535683188592614231311248627720413062247314909368229119054465639806174709278756048734099670829760154132458016106784713167447776169507381551020920081084113974981154131291781646955695164758941040054899579922125605220964006983225233281654173118349277837667891920240326642039484509027702195554786029230312714774564541465608705308587128951183879741344810844092373673720330815117243520425021778749694011367406771279342343703161066272286691764837001360496496881360345376029797217742593093847178195637876124785015403117724239462723526823628080697445840344789280802783349446799098612805296490832011887877993463961681603697739312517149571798416052362680032843273894096083701825981745282875336989169069482180258121168990984512387588082995308296348109008221538957929116570038983443790481291832844923196452483060974397965740099916178022834285368082242414507158694749080614593470427300568554305158452764776342403897954777747566372688487919748394711786988203243412446543841981602823425184953479037873487139754549400176786560363032177884776812240309189642824411354895547552790203400987228035485981759443148260202179503662486297814504395434132181723283662556706441883468756856586456479423612524901742440038933931271863951547061078722559647097250507059702666096317114605304509840899521023951235428221957115915466627851365803913934012368788114606776118916067394594725633858391776922000808176351829392922030570307935690523460561613257220795301568663215166983416793003148561581399823264533590059517068282089174514286739421146443890750400558448331143255347636799240605652089941351870656994208769932875217783947559523738423888138647588693822462494681154539252869233366960382101628042142241817905876925970133486975304996664328117842799959796159847856132000328360712269078997747527589382474576881034822193242603854833573680019009981918051098385427447176653601271673000395154847909338488563943281999663650301433697465032633982912881047230929667790341278828673267997872570552766609668498630828461385474189953272137592637742596792466742912232287607622082641804317014523165922648450086043869927864204838707585115287050032438815588331223485709553431618326181449882179850391917771083025942291972767888476451595916020380010867221572148404295408672003449254355783368203122796641313487350029659107984116811413731808411394999671248521458278832412847572789353274563134615227855248519628932900279380191667747868700143107610557592542235634249751903469229790164021928134816544672928757435443688342185729962709746649423877796446606228813555980524260786596166574596684700054686827723688164975516012049510163849267849440597557216200248455487699499834908611264374448658254391901986582453569080503419131939295318537433884218235778877622810804663544465494885460489546345694468693909831524940314508359673677987674791266917146468059371464195100177232821738666074578936300438118847929984537147981707536098000326800241747117948150598569832202853805487177574061415588384092568713723287187804600068107432154236951974897841981305922315547780084625249676053663779285678802993306329368423138139752644692656107895916808350006329935717968029517882957185642147568884767927505184059169948112176940026706136073589104863742786358340600088340055369571150790727606791000962782088702110214496550755274246943070499434062951021414066185570363654357824608890722931518758715376719997119821503021778673042268802279467934212935694019837649603694330809127562526821368249093017873369891847634765187579121869671588178790904930888680091566730612503683964305754707974709692190934758086569491227300811787834274488574566930918726890086100469281575059346659468383471388553388661526447244940181225000452022590149794610770703812418689828672778924730186706897806148541727503631731227710925852943805402307941387087139290986989719568570051134046697832737577452636828494137976625379339675091615740223163641943685215979709440121726267479274012108900392781652556420449682317440195828705791607573739156391750875890048671954063634649022235249127028471001062485632077281644964814105300617661500393315144629222884432569890749315480183921933993471567270511739876822358188310251843479461245127784198705818086412034369517485432590974849537743299667499326406645957350928943067611111083467066803713719769771263223873456707589450245791602837474867444239947053094726705358781434161699014121900788257040637608924002979853488087104515909898767228227732607649688245299749740368293658609509832114486355093694780709368621096013807824724080179712877660025442205866227757844335309053249779982621452328589013697210820827444120465126402762598091334226588500206158081960588887557930135408449613934593158098818625699155876451105342169731989589699473326057968674170551368054592014026280335640410735945145444035789873273765521417946294226150285914898368631726028135987966364646309825238679750954204524986338313830281138641940077497413791829198894995931126289194352704967712939379208720155492546438642965427368324862126002563204161520018201245066606235510376733467528011424550226122201249699624074216413322329691183514259496371271785524553351682353251251678457777781083472250123997834468362098324631388142798618140443078432674267802287954543870739769062660345359756493110045590959485536947766796680894739824875898326867933635651488576262036712974338082903765611094866133652281523344504928435739432754407588457963234644406179756306667165482648130068655497620952384173834139935862595843620330262887186574574607883446013394613687755889816742935792033029557268764358740625251708362664807150570182326766769475528709003265166992413371280051796420281247249300648964927804015330298656813235605741692808329330481445206400243217236654983191998841510492515396012483237886039586734450377882738696894429761977969691465618096739192909241597035809070469201904217227647125810611172081251818403498670067537870408048911927198949171268556482673241601077517462997941071370833164839596265904789197348530521925453071970940292701012310101570864229693634878182798182291310384431998051478082216737236934361091094603858436280101229248062718483837828203182563482842283499265012410243198138569126076044681486569234032247105983690545576925059300123169242582113669662912577359580920509607532864884412757359039398623588498093517115306434971461118204078866418519198895769852490267582325201106161726017601221646571014207664847771135078231947083049377577512104737106520398973173210466991656319685757018312030713253859387782683535416246454405369167376686540254754816306962622066244564394833758050879619042189157912556613561044274885615813265650816103008568892749968240731737524708290504625359034332340894729705391713155238427002585889369591017592214291386674209354475933231637856359947502698554145696863814220359194504275326312568008005100881633848184050620570291186322818842796208384116979373010391065433696389698676392219989167296935107869562696659981275787868420462147118373353715268397418704035541416178490679242432449074486808208257242619233542327972758576537711889961424144604531253993271856206115210747595218800013263764752323144515552458899068938730091556283424255220367766451136434442322171101070783447133937051606772297537227300640892146947191357043183740025048029211109305102533713064482802156452702720039678618078496314978580710745877390037795042457951335069437600470341380816884291002400727593956599884210287371215749986220591403364218218892478179293766586873173363755385137249292873275115367478722811215215668438021726620554253915828232394356201086166600445625694979385461294470568707610203403784906272065460843715613525895618026747966102770429198634061698831336854419761732298510632452012473582754350392404412222974201722724091964986134601980484646664411265050809085417086932568716030086394017505846002692422145902914573715895906908042441630079522459417290095927131789340254235586575474077606828345382307635814361899856326305664948179989629005496240732830916145719821525349994738105601666061996980331477639912129216839118880889808034600219261867225326217968670508993151019797383509353215887461264666056232899457750479035402958180917409524499014580716675950090946159917759440972728348259788896583516476776164894113160189706610440940752100913451736541799037881734781204513389933244160375113802981664531902086402816357389851372413719620820645383276092697187477304365299041170655870890666290156570551471360895873205579218859326190222280735075448329621683872413329786327522464136757952238343899016040496177893747806497013288925578452220970792442857301872370058223396481740850654492704057918133656454549752173335212843751173115352982099642762115388233677248794927702987018726762558455049410368782531826082057930997714916167417893222686362946846193889272346974292805612300040084053463973674830756626164444271501211526836965501050691434803433401183872530715678412620227025820993108058300266659457413966328110952983059010149624719400014324674861280786861140681361974591149368070391739906129034673718240541206957049889961660356275643259635767302212265629776064274212926436694666800687407901668757762432635986518296243244409899796378196169611253395439354640095412560618664383169119835840695753550777866356348181909556369453316536878999462186348366980333813590334476189049553030012530235826176566499116967084284144083217056061869137479494849537221868778177003238798477329636595436654320727401108764620569510199517249995384301421137810064420939138516951517078246512733401785381826256208392331998708235369275139041984594926389649665696502485227959719677552122462254118298467704960267271287092954938271971497189434322732049200947472960358061984340690474527692643604850701567236437456529328100834755709565131469154498675143609096660304003196126321827269375158608581653514582133693422616974449885209414006578868957789654694050235166713860717227453660298943014991939862344824409531798815018620445162615966351748715176158204684349547096444752547066496167401537621379819875116909478937643755292055808326978193386673326021233607466920968151436984805525090241109409131193761008683195700374798418364619565048722847231452091963132507394424930627719242109158515198881067390047080010898924431588687830523088679982165831916637936751411219490010943398729077979700321205434699864270921973749143997270628637074478200014964502415505013963857800843641056699036753485842529896978601345060759957340211398048773622259105865247679224111545730735098130493520242240269342273749171376941975584420173682679110035386005426523687979399544170595228894642760147776234993097655499692292376391867825361263718533455988639658884839160404526307869075041917419529017853363819100128000648419412900757054787947622214390263768417290897587798386624600623889303647997796436603654111355695945101180853149325736214142497381086236579506913072952178052263330372040961461700249511256807728912688648091460931575503643070797118983183881773301846035901613196467640282466200967456145613723609118518299336329988304037113917259501547621805890801702790987090425973426751864153756497190804785529774817420665392275866235890000839527416406956988407610461206995675281957889407447904511091122051666733314946056257228591777036082432667405527787096490941523938021738807361563820810607984127292728491729640103090382838201747779679932159562826850649123875732431814321879612432042224550499593291317750697846908482255070510755904247213819692699095865730737564545077168289777608081040935544271759428311321863003838232828725407958489127525291653100954564047391364452680457279617970704695035535701113477776240948667699707663487792013153837830389715141960007077309062092801960711054017638701635894065011571395045007810290470214325494634925786813407468110907294426311339885616179370252981094633695313290351820773215488358048741870084410245186446352797695719940285850112621195964413830290292348982230849170935242160512181452886267839717916072010440704770966254587102960964936393982052591555211381047494305470925605786100381215966739139918236563297380530001569815711146257736871165370218860137797800640269309265684067379776543138975384505782806087748360791553983079295275079130110708338381184060026873295341882375234792523020282894263029210116832161080541105978570888307943888689566757602225929733731994222317882091152549423239414436586770894865606133037506410357985293460346427045932836041991092617268631309445208718077556579352902483316975866468960757795348654285806512711766058502831825428771773412228019214290613408563478831094445639717387650465525459807415612714755274510045252232425983765385272568504167072303937464503558238604533400779670800192087773396870616353670107186291166148324711426240484193545492142439944918868822544134929772840792861254166047597905381363657775140859449287090213171956821041539070227039369710782364492399233231079513031823581385906244716770638279497801362550636719327887238176578562837946992673870694311753161584779358500379681601315788757979445172594187775023192676399523492923195705715560585612272583942909831444210436017423439118099937718186278797232173697187300107881349285000835892232827558298197464232983948160879580495963666294563997805045524265244830905759403900271031215384669742393611600878949005295795582967006383695354472736866066376227482425691556679729913387588930769183063669366381395603443089832109064184381218298092036664607930688022053853609402758025037437744098157942221430692640724708331274767326706138549645615575499698554886878590821990933278299636200329002507021534077076649534416276232776991715962716105701751768180832133658558072434974197353407233292762806998756516091328058984044375465638029596437059486311776555067031498947939275743288372028076665635139414692085635738693604255598328474289510585972345073872044144392389400357076950727004666424006674149406140011482737382925016990560278477578258147973866253116894835611300296569559113139360460737771869131145076638761531743181314693131900626317130281737492857388852464959080824314779747609452569132834497635116372103659195402363383645868754270785590548213702381902372089355167775302817099143524803462032304803883188028051975492049390579399903662159515392098782573791283621843629767455539510700274968042140263948888553230810899652895134109033012799233947497116013327336275557813904108214024732595263969487749790904839505697649034642094508106378061801564664079606430970627420324711970713349878699689712006207760346280131688665932790172781747027325579503736836390698898122641573091618194698124799689824747493791799952732906172380730664754198932163015592871635848111350555715292991603867301365831617450485396414298548776323014173619544548238046210371763560531647281593944600157298212966169091832923936666638523969312464277986966552470679703565586480539323121787455534415107602708172227873095056216811934409987352252798129177588323039808914639635466519370003903142388191075546452733978033751671454379412331619776283543071419379918953086354863985604260960974219976667998181120443762644850799638494933478532860704031249863350696393377477343555361230766295361168798035764325615330521095082756986888409864276935820908615940376009089983065492086238755037390931756129311772297207416650669292105665791647398544183172319906073387904266139265763378006993475562756593276685737611566325929137627212322138484035702873236793891899865461418268757712814406014617264500766231335601522257637090166852702728651068965434551147429737992819037943738647004295428566629344426742307116008857887313107180271311229632283715094547746379194715052213358289848164374194252161545260124441958163672046770226177185436496603895189991445143446518345996071190797576717008781623644745631478416261440168888331065005919427536982001851350737328581079977591723756689981474546989136223602115082106714815626294469546858595897754037070495122698576593461222804045119411746720152709585526222182865057937037904842339861226637133961114423768394483117444726315719510741278638501685126478272702095745087942776512901023201537886657789665520589868718300966316401743820435236788258994742736868535386428747639696533613017374884270203140814015066900791095105841887431126707360509524942182786319051108831821131097298975132011947525269669309507260532754708495432274179074288844899799806913362374093192394292069255018563949538565568788328332647958343562210801948132609128945713588430483291782334748910899899602650425971560650490655053602408648421299777497221949656308649840991434890372471778299499824043800150622635487397816379236326508083480692573990927768893343056112613006424288523373734903937993260000911566074945781921440965772866816844316796647762804988105947231919039587326112659538307193891098651388346844692238977048688167088071877751239403720609608037534648703135008432542065693386372074355693363288481174163299816740850184331950398655555340306138469637120651418410734426599920560346496474005555149795273215213471014656535159939226999688441571831188359511243445697299005131120609196427081709762115386968210131570683005918611315174720329379986889701201111911055604497086687214002533862225691830706122466660263598294194627587066450741264931146300134674089640450758707491804621146290901861701020956880139988283320618789273085070055646714132957419617519898304432876816461339127646931094993695872923287077102117020531525335779439368147199015828778215494386974649808012486030200689859930969790738895702144158439642428478199235715344876593124946543023259581896481108948439336997904881712766165345614806939836235840106949674379889319252046099935806804766902346096793990472456223536930796731971036670629592466746987214103480069695468141809230594861056552907402667539795743189196433613119881636900808353005075297712951035153976882406254440872729601374665046657060301584914658356324892331125652986522216762121457337186231000700947710655864392432120432579358858942546060229537202718443970922903002876463431837492517923692857680764277278226626269105410777757579012199415582976113116336532131579451863928733952801933476611776124448934325792389168228512892529951698067867943167833156664707911999749626958635153564976968369323229473640050161526413490908265446738458202071665729408235562595312802994280478635280577578066367761017608117266166667594972825418701897050517017602229723142652278342789165448583788324981918487983067496377445202918628449506327954520055265949562895495904983709570652744739903617853494680181994648020907712040129247399699976021496951354518604186254272610148278094760474101897688313856078395615146094396531357280089708495693883052117306333114448532422816739303248533857275647510210390003651560273208424560999280888498095488233044826344150826551750271221346622367999237774706898200574530749993538680325731657348574120180363239497916803205993073977499727701890396952295334073697090385139810063673021527239230886250194297362735297563690103103114208378909348743038271146945979249203339626285476048947813698141859335877688853425788062052799146819910669964153108444120137172260502617240654259023153710100262262983613743361928769980945196861550391764590401204400397009012028687985031869021702814799829646460947771565539277490253868364290105716702475597967410788290059135130392514357501885251793927846597361522746639228001200998829158569641144436082965438376504196282399882814491231828916494019194459578099951421953122048325458286299344777024505784291178397795861654102160857103344965174271334290992902806169259590432512377026039598875643914220841337680607939954057236164025186260448420441692234181252634110836997494784385821572211827276808785984834441186518091195776250621218188434103349636866356251340292969888421475958591776540803256194778625540164258883386472926030978019467413055995663728031603045487835057893429783529613022208590608292113768539979310370549801867911496836587762222444507367384305276749933358228078430231150906601797590488372865480144029634189436581307424657225803225030733485193289871163198550915236290444075542060082884678126123690300543046600160567053847495499899318189204999058662520503953877275287058381280508020058797997874507236276069292124939068407425072924025114979561711901646504776501790873916901671723665540794495085640886018708058219581922162351392965512124237844774687479426840356103631208506775516743961595340874515173220483809777343140880571666371842063946588805525647364168532269047811517326888758066196869111275979388451840301083382336442850701932402873662110260048685466535233999762379345323776866891469090588655381138989319779164740349783878629895515366817590312263476133389368183316173461416938915405518601710735798155545594240121457400774600845027362145318327950889847930652922617477266826876157791626544957597778311826512366853169541728578205996896798573594603214877191316982334776038832688662455328203764002297591346648894125367468885421586931965076521320444044417059626311563753967260647711865827996855138780476380477520263284224056854124036261620927092396753752447851376411243739541216158934655014469866825487107326933847960409985627446784985560214233357838061012062382301695209630094621801651098557916869096210002329748185534793917913637334412441825662314982338438002739887452032266099325406006563790571055514062660070405439610362426023235750040696033163155142552623655132043489669956415114417031726611915402470705373673437148598538040193113656003775521890921202451372015993521255040545147126999529646223188522873827061591561210204023121780914657891900857449984627926318734138989973041398674531707776688857045702722442000584425770687675362473039181264585364600959097227931346556278511464104421445281213756846725629044998899651328161615107878212569076637025786789241150365045915074274160309992284889422985379201108417946005875797956810291704838103252442895663339783748985692097366659998271220439929477997507648724778569529104370037258309737569175689594931177054168630362551620265266162775798600164390692513638715643724912187821662601460774828578413546501317023065017499113342153906728049689200102687460447908709733481918453844620723203034344824712437539777574653396886051946632913538130326771915431334517623635375241423243452085713490030960436634559139552504517205923131088650686090647075538767075785199482231813595330259015393859974230356999656873827141518427276961186029081588348976019903274600278843399768738149501560186022586883205823180695105485419022816472227312196507998226411181978556792269936641586652126637166189767274548361802118567701181909760949911774592060358532329407008432730492819462716793951005456207434264677581968955605331124076782853066533483650033879819154028105005179928846689166143882607709713871005469846890941947175373372758521885550886690265350617194540127710911800314691519319477002723683475101632314006759897871629685328591438751933438094973459360147897233633323213441108167779552890090526390732328577738373106705392737711887753678990174054100881022516003362320361136809960994157110211175571078690553139392029573248813987171137601183877642318015352916099267895004910516043579923524596270620071026030868644867898980121816324723689862460372408548027520403305755706142890051469406694455062219800032329943826464466483764385997517595694424472226884273567583659419108937047305734013645622468829955705533527604292025025072556383735035344239521224678120889898942743019551090759397509718851218845404386588964816131605040085038576811101007507910428605853782624987192702589987515287580879712936209528968344703993508055324598339826014398355421444091926250987406675505201142970276402676282035910410316954646909045972825057186027745670007480730945021015733924877407239478730910627245012972495362289141996585616290526258362700581762716834580031021416842267204584189498111434863912825571342464966601478050766408603601212543226082011996893903918741197077776511127574912101078864415988375431880875223544155044480078712788083495924861011787298190715415825789978409331507074282265526830416596761837191416815548084701155987066061446271334364519389887631740953624508983064964057800746360151356817490469405722268555209935389080522925116350526115979393842422755249304064585138126944758075908535968024681463005311313449932204434811884786464592120563382928581996863864132101738804667032788617665703007374078323362004072846896770815240721590668512857794391598145127653650549348667429022744718718350229769021177346006848789583052547915285028005175762424836473733002761393695366567836706069538750318959372783854757767923757439611982188894139371923519112957474174824706154179811454336586308481474325665356143755125461082905239569469351223986953108679704981787247130961829516383841740572006051587658229980478404326098169583067440861613517299835244037672587666790531878682960547115170954084811817455298693756521727712885655607474440952072038037380532670385692392017886153597202739674906196427800879546426016880169122145412457650406921082399167762717822745302205985745635255497522244101035257715726550514760290031796447557190356298619309576388446511383978071399244037539460885235921745686072716664702862399554139654717108061112301109316276052281679176382057523616138605751463683112614192702054443672068836220443735043396068931582916520178455108198135167972059088569711885788427439973918509018278205480386215821799621349352228759853313256041238328539872001100940063665562762799938751423448518814676303226005785643663828379231387858254731449138522888150913858293195006527338845114679216988884142208821916009042876823196422260740467568566090882421329335846858792395394515651950882436793445347978631396799363581601934846743521948638947641263975893622097674353514185005838210213757589819960880025752974679408099721002070476340187373832662132437071503436012707957280634151860416542161779427694140357206289068774560392407144339485072154523138688646851638528357755457869986642434644947025368049187861187721775503995859896726520445297965129747262021252667279729654804834217834942768998278157346476346693543358832769906598138500208178264699761361831121140236646809739228042908671147082799262892840341452448475751920472565747721389066277796990118778007746383119701877285888464319268024525561033693454659253651347861115832292507053500548835702226018505661255714327774316577001876732906496093004391746351922779411846530029842852269237852393460879390084389419521356284956415914292432598332889736873386509788337942382915404752753292888276086823175586486162880019640005617656825462019169027579763904390068580256725399731583401076786597719089818416629374771235340470335493691722203266226769080766213342470430521948907379713969924725495007442981093798544616293207120854300183423530075466520947417867813710736879986441122462191876632728818245017843405232648771977157253632851835068496139391634029474812886792685586424127401211549159126188018849525115547657758626656017085607418990938418808074363938107380788946804813917469368505629499262224943450048200985803049788003442635736793758547786369281276932135635292471546570363141988899927488367170510518525773463708168008066532343926550552649550362464059623711639289572517363698111681700669451850977307788562689413344972798656317141032735940835515063665189713130984921638472411653907779088672408244257570370378241726710425512973978801460248391372921706455003579962489120684612050271931343982088640403845541453431208680292021346293779579146486091955079317797377215319660586556081299836988276683085863865231708454330710405055566524054944884775496335989566350232367252899892433346680360122232253307693084962430129700537240990213276198027339031406016722251404639015357702132101732692171772006086234558091207815856050634092870085967686426346229308725441921535792496050721951814882259626095553307196249160431050004469574492187186517372913058787573828022379949661708736800814720480950684921051949108652014757295364927204119410681888412954835435727265028645557448931339048299401376568705953202424078621777605288271816216479380136621893781520949134758841177414999588647922744478204086985180954607372720809083910105954978831526479818921895387284225371104893129023790680870999735087254215558504982625829425178869659352583147338690845109051234502627311409512259006563868175556937853276897204378811888675490924387239595688295046202526235721252056524054692407532941084118596463681270565608975548904491340920137378735814646355371467403818560648022201352056026373703696618295146681052106130080510908165311199121762180952820626613751940214086815893396401595237412897164602547405282613262832431963204577845089816891877193882416139977804756921027769881489246163764523974294889202845714571056375433619107135297641799632990233016422577553271342286459217614377753991534435112901505080003666630011877774239448807631821446191994891794794732471875269114114216376525438195366160322119367971851410439922704347182973661902409794127933969920286077907176798829922629414716959856899796850867349448157083245172261747413234368370236684735157925471666999486015609822399093733059935322271670882282520433401450441193458728670075627488328817139342774536363147165582675548526167028874564405404471872894591629640943783566201141485207756259459992252278240512911691553008433760668711916158741256628878102153836236665513581561418123400202546453780852549840317957649016602639623414719279306709792804805643995658045165913059164553249388024196092858540727231582888171658776743859379857805069722226155480991903304167247924849528145625755405530642742384695382683295185064270233972813343942561579433091606064498661808413673784326415404392247680392374498235438041251151008984451257312978709031831077402801456435693995060169104201736091559703508608498234836083724123032221310903748419091976529577904720620822247800839631738586340662645419700786758585413009078669601965370612837691439042937230225600742361885061339475445643665312180717577316020136017530627191625025706728013766859277675313342944454294533530168722701966555457684299444110407924426140709243825099222438334996318876470208688411209613694008533867482290855612984992017791046084006449997670887553940803207075260030531268532273138102874981847104714982354426469851208960202181434137879765626943682906674117149959638433372677228223109959667801895368973761357301465595503422211043996996191040494608683378497576743895266522896409255216002911716630078440376488644583300682773513159018405325603877121158581400398866080752268843423402501735390300657840120135156128842680223979310154199202615129281263502697009366267204307626953125620417846884939591513434938846576391376063001989764269209236256944605510358620464790997084632561306699288063037698535420168485607300499267689113529641381734048193998319800933743585281764601678138150750773462556582659438907185886357860456312269598200853213129275247975155389356788600723888766862239246735845851033417404418277329827077128742921277658739287371098619203162370122222172424701716609712732677982582354214016860494091632760809966440240036976558714642848175580285806670596860392098257887491460058673181038944744679479270845758512011070842445923781018699599193936865575059209754864326024880083182608600966916931530817592904825925157208059763544304509709552996031032538970311355776013405409962689137385173560959571028828478125662093089616187326543271797659908774216774393013313798835747024507983675815142080524031729508696011042196172169499271077388233911258159978133729210470257430840162855560664843636503498804764540933981440970946792097779944895554642266852866772746822551674060179577937229948385079287010527098753267563612734180621922990038250795627555440011122459924122774470530335355999760754279358861729163126577976978786566602106416724387543965579442016077654642946570545162933534141973531077919910189510497042090088694762207316493006036415490705363156045191651464799911469099896892374539156868362085506462830318788566766656274415831683761681247069255269739933640897329356298108043700874807789468299402953118401011759237385246823737690625963882238510723077985918286955841043770161955533370355935696554440515601238633209516137218505980554527283505622483480018549505747236506556207198884207818491671428070629612055737589376783355234095509745388881781098748831274841907415912705638116372974936366654016410669407910124455324779803344763178765789417451236708150045822662442426894243432791186804559815290588756451210679036344086181080706450015420601439508426539282833214718403013819708509638554233737921947208028237414093212986330819024010462827843643193504050859689802056316415664399398479789408162530281020350992439723417481950182005261404515012312310345907256238025757732003001872172977873522895601468465730211502064491363937486032962733250891933280109308499878387085507724183456523716958153557686921823895051954683500043011648663427876670653578818223290121544815491877417760981454449237549014871899439149394905800589698291163166466406953130283680076685335577391694249511761264261948668069919172962224750741799141510131834787320157616064550372624811150117881182673329692784828343678236442625231019114657019350418083276292356909018289895895464447079256789975155770518458988535315787935281884388067998133764821218778451083866333903576420447343605004640501620799375640627102169882444087140271157545184346532858943567324115986388365661787134337243961677637473374013440023676264976070222850971455657627120448674743968864724210639411145749742420313645084441781286325161106269777169049298333523618150594675928699552233770365719887838482293315840896638900503675787510694208395393688986335504998183194519330705566779309270888738598582892411942307304469657625330090658464016237823690558649916833102829693204447587419010334949143881667365873504057274012216107608907273087951548293649657328629560237170449345051658284012205335130898164586646667301010528570528507393682846684846195383586277077964096402475932629511766805516489671938583957879108147432456596437894312584160845246096113582814089462173776769512679761230536072263314155950490703398780594502842246098318302418339272371524392934579718486848385383761708304362731307360641244757525394375137610100991954518651182617842919667490058300352037658359299640412769860835057188915462428526766300799315099868856489224233166360562620104127275111013454995001871469384879743921304868947511066299319572024730444215725123038880353084090631804854485259722268651896707093038543033234754456753797479834630921427554213340075743814430223220921662288348684359529157418817955500504599173531215971088981924522349916626887581126384141858851863660492983818418566776224358066809894792095193429415546119698599199188481665905633379479740456635131866340902123153165217780501246915757580874899119733084597223020685813265750118506947434157478875039809375802232926901955630839823096975300385605637973769465034761884834757272557946037363494578796464968081121481434456466330538900655698008722125114529137321317285975780514620759752361207857934291695641305516608884192701262202181308578997183801788832690824547635587186605421964740099128322700760220132211042398774483244492254347447124225518540161189837685019370270188048113300301710287514879197477944178830420521149146952700382734105609327862486865533080760886023821318873234426685521954158406777196653566640962022180277647283136774666307756919332468721880996707087515641303627442852949880789832958382935178622381164643839632444784403357585551166454186327988298754886377652938005419385885616645474565482041646376953341759251030848332195304165572034065944844139865606612600684214657553188679012931128857068957204264387848766825149037204534435879610322535150420914986596952207510353287468752640979642788860951720857686221050143089003232460859218463128706604122393080381450472352688815275851603163663723051203196014325002786260403798693807758290713169248418669922515506945447550438207989634604910847701821218738170332478973701689824860666264680905340330863648069049438540910737313895265298976806901905505892004027367634710449174838725237086458743915046573365029533272129013644740591437693886067085157355875810861457959540891635801326425047844460291622487454106783311930444893525230896648810357407125486574387851027198350059869859023327162209347454367958777343691024044811402427470943715898116101837160291690330891518569075354262988818747818605860970150042338819757924489975083596637130567090299215613211869015870306488395534874065725131740374251295460256510515904010813345024970734335556324726301607824949994173419175373816566419986106529951411934026608338203405377441279259308940856092757823858915839419785980947768711742590031463501971471927574406569581221367087013761355246538461595619464898592685752610275228825591262315052575689003001184602999628242405509801619737480746590578477691674654194537258287581573229899821983662706893694840690718080205852104443645415232133885823226200604721334361079763799906641809185760845370163383697586321835506401182413671124877303493669392676050818923761379581934717944525048089614922483338745001787711558108904938107856527021509361948514531801025041587481432855710098671762876791789779779413993076439951184222244277202328848978432738524671420934160600533377718668209636834671360661229141148331761322287072531465085425880067861355370645321852002420836724417665147271015465428008168450222522318687982711233191079240118004549920962216544380791260610831684270450753598810144527119634239499353610521209920614181199504490570765528979803136186001267271142763736819889436943866658167016880591219264418742137102353068083967421845270827515590667923178148666821881781215092758809305481506048631162540848600359626938622886391399716107038524181334957959824843169596183418334574684764242495014909560274808793916017620996933124666549385681943418614759396071159257675751934894576626875152002789412215841370840730287508834378032469961644742602057113185368117154969470814889085553859631381253728378828912874292948857774137318154726557556032680918240327242504446080097235545922291260718463226718826799222138047478955294188434552684179705330277768915807947772524182429371414998887447782644070035294587032184301878199114568201916146063355491213471884183210214915902487887524120225854314204539475534658974357215735552612415872981034047692268460493688278203027399375764475029317683106432412856909887766959736461322149665781360873416766188723975903872397554169859814792523136125849150036737148749709211579450199172850638895958023790431494853120820598209229661865548649858155771277670806453919883341444515176035120657463481335929465648522208528857569072978895241584431294749269499696218190701979298324349036428697716717882936917103444327407805474188571833818563045737455931857871148659380911478255285365743787082073920240326644171991157512040373031291757396291300508221225797097506121735682693824080096056199821146762199017504027292928499754298530571727134583208107002593971275600401164279907009997641070339010696778300683911999950808214789880212567507357661147253273007752459090418475902936565310200297174840337854554202159847201540985009663418881471134648112176823644693583241873476180023296149492928780592217574824233477459929422321405839281354058120180601106065625532920956931815816912844492580393983994691679941325788804245812559027258046941093174817422382954623510216823461414129808973730909133448492701839903407979396448809282216590238153495048359422910295418039463058188271726611258912367529896321775409932373004665275856887157291622411019015687881225600456783959390128357627982997335735516513944794451285190472783788823581101822965979409327358145755827046507846183198309710103985567020845602671100296933699016040738686170393626299036708494587875801435510046169971200699388077178861949211463256694721771177158152895958272889891339920846546624738012954035891749616335221434942259819259681214692238558931643715075927532335384846568205163708650721890743479101696123592669389230384284860099761940452841495404326201186642321894822158288787551657754110124798813788916477572146256574714887646470490982993082041050974972137840622548362073495691231933980030439909863092991409006816976027729289417783358543395679432607988655011130297160965228914989915572079820056125259087827117806085009322394993685133236601708698868238959921301089354221337240663197672892777050407283036226129011176009168884302912725328917300345074301589573715813339796859697348258522152794448785397688725361851542615312843509984920531722009777158693883444245862484234250186010517707315067652692821875378317949952502239024069958288905182111883696861483906776206540133547820486079980023390014022371256067651093237738742884242323390058826752935947450799337155151823132910689754675645487144278876779110210345827663035972843381997681404674185365914860501169055707071823863112254186418202186643012450667210968424738758732730873519226359388215548272860212072177400730806719514425713464369393444541394139795104706977017663213224660003472062576694816444008946136652602270332850969309864576014725772563644927944716521240959854374476888996608584500197250303800321780525876903551639153600846237275551080021736653920093788773764845639663111837070208804147389704026221171709113665953843259240870875607068609122720856521916785983423588595619130397716272454892174224232597680318578237402234511144696614168555052247426216543927781985062816874167360418598569458499617665735656670004895597250451278916046151679361821951410644822016578479018709512394317435976379808235367113157230554996210596052374661847638503462337213332285054754950192756552834414781022832120704724987108474273541849320622380774505424256515600606738333819299126905610681613797951304377068865584636341002878734350205135427716677464866220724233282553846853417297876399794804075949376783954377965276136434169504618373000971689992384090822337463427357981882103735756636601748455411659081058291149114098715893228108654095793032753696202763940241767458963395239583737322120435959877617986055020307466310670158810416286559747867507918576708973511109631165634553751885567940223314522318739464671525558504303163494031539555694358648125327428318449578819296678464110910627884587059232038993826366659691071046828308494400794575112912028304158791386590529650642232150787880334098832370380726066058994313720758507658559961415634649519333590978410826283664407395647574586109525906826507524724226921358165639158788448942124423625143948925922803284455432485818062314379316057742453107802683059218582310293206954357479615422293513564624402641708894572269276186013026091209722616656458249325114142752100624128296412218437737382603851325812019091767580032997100920841895486462167458440361093851352677793901887538729659160549522023856835955188146007293732129532574373368554338539671324555488530967187242981887559433334994593055526181354552637638311709000862604044506479284971939174796253229945118985108482829288149411526115671626300668761867834275796467073788670710939502726735911382453428663430655818956887878599996656032343776280884758407063899912806478691346582909375074857768975364592740776383315985446927617083819295134200374052776806666253994482922786462314101476647102012351214715094455369338167779019844182077128302632155979308268589391579654800509074924346150885657909341617268122122769632937027449033099329573154312117502950968549806899557836652161313371444615658353449551186821417960290528833252487047632676254190686644390769554057433521076689955753996349681563649238134875878221868675487279934072473750791061760888623996071784791317442559185079332162986507241020528428278722663910218518017026399188944365120041976067134849095759130252472184569239045442694460821049175970815422940404241421882563908074074026160703466469355481246546793766497505616255482033700036598317371747191055671752882393116111864118754097659933557818139332573367236250722270745455719301636734905095583382456977606502298854895722473792720472709692139961899521810265025238206301072360785693095132264265815530338071257311744181064128714884875594946739221014008238006387162979490302777231017077086270551560895690211190309581516445714711324818967411690808359698265943517845371345031102511447920143465652475467234768423825649911011790435977139307870406751364858829513228699003286998147806606538789473396062865867577400649805494672862693652037886081220802995417919017202081009756277359725315357957142023766587549048423866367560851391721169731221148791693669092742261908245076045763823927460090953701690874320153802847245387606176504859657148339526663559950455932109529613580044546105300933690305224300341562294542531332944461599051577928255194274021190865797845193765519560180549290470673731974541375908278766094315364025198882326017024077399039996662865501519725602111907931330514690714398815010799976965803087612957254692639273990729621975953017035298452803215431285656969801547948911798223800256721484824026387899604039537768033439002998543468136910881536283636360800535288624587939580876709780363791758753017341945476917717461459042841367312104605385444308015199397606769694141602764228015556507678809177977320359162680136054265890279835471747845029375864426625254401182748289614538063108410389123854213338133818695139979782544576427853692750283657368097693338230343708279505247548248418541261450183891749212849237883473607717764361314389708553840659110803086921281103234858227576896583340957070523084652405270158727623945712970666611512882012204602236315504586390138267565044666390618266930051758781499303594403801086471038161189474218031534762604721521149969985599450580824444573750392317734853519178387330050310914012057532560612645256514341194955345595233270975754890606778450340558991941295132146192092899019907361390111335116009117465784537715752592399584808714419007332676348548942341101030132973400250275713035169256299067278910596240634633851803644407658250192682767984604139269057957952757635958163446519574988801242634040109907645445313849638077926424421254218742431415263887624672091127823999351148908820561711763428927680449667778507499371126914552669759093284561679047198054638726340648145168378785618426766656190631288048550031727875104226938441713066680301564059217035931300942128868514004400145202430209156787218049380567801547628319005986326291618514966018930571519146160535956422152976989888104423074685473385224012593751617523815625635638383280374187121426271507874656486569738213279287960558698394414267659407113475706173369144530345074604227940832870300795413822489462988495132538514227698423511310518220479817576044508251262987681769518744976060685270377294508995567985395939824756680981149772263747900352065061082852916635377377339979388195903683379070699552428960991688123512622452017878883537142957553386732615974455854051569915348117817161455875384051090965481068846822282997358183620029561137490036572614239845634719478913582835198310728704594632834782057533453925450804291715264378382612966564575820440261051594005058822600060003657567515514680918467097163761583681346287593960827286705821961506690843279699304023213643125315820125767023124400320573855602048762430708134651235432821948854756617888539496253703400791690165124545552673777494636261998679104841396364550589281366978610852507086907315991058497075966553860338272653247295839687499404489783132995469500139391318284093142996251604568564481177510397411816192537214917848803309189458412323041257398936249779192816911092653654672555536250334679167687768785826874564042091830465987710567864272920774391900093122909563086452435175071211987188539765315443359227872612540081986068864611348165975608813542470188898303733757668387459539470692386315573181559534899166327815285333842509693665550436752388596720437958564818712394653317318536333020523967591246950697421301557285629044243429657787949043142756966938703445144461301879025601121037244812585517780331270624642934955968962095671915525979191512324956459963327197241470240591100525973342999294374203524796211048956454202847613718956573436556768425449663977023140661640328618263486943907931140369313824628563765477016806765344466508085406494478885515531181747580039474037372200707353464542998869729398665920517878909331487439863388246113040706513491609205366987152877794766568718686965779074559528739631575019429159728895576730727812782002219897252958102889266267904467002969707967875302117414691392712988727811269843437847459402654557721618173751315933606878922724090884019632484303711692767181345465693209521413929073663494945224759929973465815925004336336493723911977948166629728118973002229043545642191784932579070633013978173155360172770645967944850905229154630363353075927387475304313310716678062761958101697106031991890084611734279288939674797410727532988920072866962419380915992902412674961606108934951744917164237794829454254650812477577527391752398759431894387695479081786816695825298768876361945173089588766218686058662316107469081554224103522229118168319259437558267691314105549221707411969064507988296299131004899338803204649450565114934067554762931538439898089095606658202447921943308794765315975224580954320816442780101590610749734492656855463446895415526351657984387870778007558455917214611954512203701358384834106342466890966651598018330979870259973516253755362715681852466561199738813734541866678314546747677157709572239631212299962389308826874286194708165528121929767049462689075054401378383922421569278276758007898278847401942498408522332288318414931625886405381973572578295652739284086819457476569032216045938773773477197631780599637211399589333038946956132533051613812587114550585409757716036380636695047005312239152466109287492342747396016518215228836082432701624549258325316379022400067231516557123626169456803952271353958438502915242096213516758888323861897910115188159337590153425552347238398666229400860842369325215768939032814257907213460332846820506356282017966880519722162512932640609461017137055917574126323002606888882335718811483973166147097617795143469918940306533259330662813581998694308619793391439172486331539975528447805775568525270038572650658691640874860503194984631377882753270540220228918546021288643409224610948056826295594392724862282891612597314563569353508618400729371644957627787390615486333218119444734412600154638278509347923570072338260518869576319352071361117422621553455430120944117217737530647548751735820096363864813921181105308751050995060555453725676266761542090425190244664124731645441269157363331241016203327424062531377999386190561483824945037525184005302394077777058442617175441645935162598427673253237662850200028210565471611158167540851763396406977898379502125502523905337211020619474890204347742245827116907338520043380817991951394379358578514946670885986198380421762332666312613421281942663869560879743685982235830244270547161041611973970754203027550813856361922417942610558386794777365678948770810477100270103162553263692879341656571922771880561255957704639944864254979600647643419022681112115140141536270069288112056063107223281231078938620972162976000742281922642603376668000579696247249007559477623890120963187853996200204707943323455539592600822183103253615188572933435954970475137546776902243294724908709063377182128912592996530434777797723620114766768012731419564009380454346737821595491331021071012105634188647450143299876682477654550768922829964227187310264473024388392759161835220657373010741063949349937686146767851341650762893298948194526160115575195963906834449055217968290732039165663150197757106969879276757195618151194313192853399754241336557944778212540367158753148238250503675830000350934783398669294030990265207078819885013273216202132137754947108742499968247196931761110251631501724763445712674105106511466711898680111303792727888029202305545635075697007979019426651516697372995250972333945492081947977781986590680385178560465386229981244592754779150867894909134947060905775941345991498853055796229378610628529579269424452422056587494222817634182606540904043576437309782381458665754958059804103115742612906355281863415612578284019406462371182646421744606051315375268109136837533939542578456961607208399185534469455096416662496049682521417580460896891328712063821704570779951457329292483708551709080496739319515215003974003054350883968794831647194963681628739036243367678607646502076144113189335428957630611818807250213841662075825930440033717337430240565126630841595265833814838661515958129882921827648924768184710005114738442558807711306334486533862625847606468198606641239502948340849315440993356114367493256587698163000745228805262643152334684646302714779792093272709241369428150241101079280735530712514547824239712189343628716811695932351153615557831496605030381029688357441201063067059657666538158240157330593486209317175212468006795766025179079617565446191237979306808296560543600091214706703703560924667069081933211349218262930360885093369509102388866536080312347096634975455419047942546203371692971944455345984323067703200968342312944259133480984179180340307614309873332273504141606004630732741376138079035968196963687117480721617870727477779605184517004712297997580188295268956671195309586042681495880667342617505247556943229112642815155177443673908311722790157355519535226191167802051879492684892843748531854674672242786051159178212865448447918446441767055408955087113785186474799976441714183388213288867629790951600040228379270196258541456854707016789879887629366860183098108268189030476341701294632408775875895402218142139042863066029695210373688368085708494663813525212900165996859833126301281073705858098677318043592260024146141027568831726482912721461574608081212145519101713101362768598666611771427663081526178208556152794779529887661935076732540372990375638478087400054660101839971906965705881789391452427117046486184388400986428962737184328704052943746287992022491432327478903156975772114438765916428502873254398955646630990636061320196841949649662367610970838736023282103690724448396486926939680366347540553891880826527790115295874878944152111433906621706624194984882398030923013427846073499484987997738731494812012063883270479757949257132013844619138610247076526312282217593227007603355659779083480078392606569572079019320695833000586113729467804258293971295207606514826626725703620640917180236952077999308260724230720014343330945348427840481606238491361837673116369653936229225222982363271984545891857620840937691855882238555060593237182164560549976159072969640246720407532792543385033570626980693362076825879172404140748678720615839457478918942005045931741854191794978129205285681254659844894126711703359083217166288669701471219106024450112299698766009009919549192091665019049902563030317057522820573411692342630511467560774651334688892483981230850538495248925214057429625758909673060596558795315927502293435154706178009023128761863626331780742274537824045978749811350345650639812617014208668989577643592391908630153348717764700767925003892117929447886872546256493790664702991354577169006134335579164318268773922344532081445480423504400611930276700637405432086031803937802520799926881979045749401448733199431559814955084766741963851306315690335124317917859679748160505433513902276178817565008825103076049700387925501315007343533897108373976765396816396809060076698075252725256405135199866073158484589306422653692474292105428394921116275056569566288855478215894827476213079989655235171810325651250373016803154599589034312437836554950328517519211483976922598578076668081678009601903505016557042077311532227642508109372904392059074352511723588389667524977189220149646525231408018550002698318124194106103287609499094143290165513898015136356798615207748237839108395648227465760874045160399802651904925376530884479006410517896165078292177631051693453632140467460331505152413840475941595441863449353924843443085110974943110143464225606379053915502847285154570653345158135149455106435174754868321860361399986023047410024607732870883617076705670378405682089351234650909268931917209787259968841061713548584407560610603454680546141992961255271648071456821874940426801843233881286045766587959810557056301917943434442272098160021752665801945955311683592365818731315842666038646898215757277570232578994359894173389616159990558269881918214738452543778580469253448505828383972421298840394377424034030417121904233579997585751083256806790068740669026310746274962238384219999838612211499487784532731867077726340454778202443812676019567744718764707538628269851677726885582459308306947422016614231229094418458985451487468809485341291808812111124607769112961825844871169158023348725433125312590194962538122695305846396081116834650132219182423604107247514783444338477009603610587517560592804301282843704791553141481836789331656406693003276748608928943343065157953229896494794920157332170119868365470285310966595262659754474698772084885325214838319177634800700099486802388500451896184021963312130907324656856997558609170487527203962604991285313609209686406151494044936634188529716618018860664815068500387810974418240484555672814812672614623847668076871161190402002052517135931565080983920855462932043571083150539200871795413730571283506291999873642367874019710418711364474571993945338690284661416284839312510720446738396098925032525071187776736139668684555696027769618561835037095695303488214939211266324063312332909624644448862146937580065626529616476879210023865061049421773475636318922892170778397792098358363666909091905854857999669958288915509546764062052277741017350494955715905592026022215085909704746150311554005383338607487069053446001956967231899617120393896573982802377832423041530041588193438860670725139145809818156776299913987375382987212719955509255040949262513622665745385493831229035381083524277931101507061901184623877267686862346061438095026734133121307112016538838367322613727220506597999669824413117602637801652879702378141116961279761567499417889820714087030514768554009499047130512474256136483032668199447141227308141410671733501848814307603505060654739939289242192662250444303239765098702942610533365118667167433955398759889502011979270799263973776795933364772910606449637808814672361522840638642303334970606805690792284732146090403028773899856369144789677349861923835635360002523943772634642190732880425942468422048156442738771581624515647378432255581016479954049683521456259153718257945034049790613564656171077938365113400030863638172475561460814063369537980718218832635136202466550959011938942461579774790903949430322242473461456724723940436073149493872694989022516017889687750812761891000030098796864796393739067854478730746274571750170894969880677974395160577789595419109989127412355846339965523200755104129710209543049363179519356300386505398701948573755903396698040490938447977299566715300540166015166622843194787809849995304643711379332282591883793099120844649554601935562457418431607398249038137840785309122885253218656541424246320795296372908987517027119248539637272199476168012225253204173171498902009145602500511220508262568332845190308083804545223840017310016888512751670244127052225206609705827073490939520008760415747443062269424781560638825086908057864258949074888828146202955879221299161289349756843310383458920286241025042888608858338285686206954812993733246003788327931575202839664356020826488993798752292473066834332566615807746121818548915020947527220330934597679396945954791020168624552393195576945837297860937611765536471594005781089489529928022255053542595785937652680605682993972012803673310568625653173772662155015537798636915310921695054411644107434297882047085646291182498731793453578070368361331560216012906798360224385243076251906927982654943244355364345397506004000775693911102661024589686154888299277688352461572553811725930013933177530559020693326489562218847660391553408054291611660429877599266788340805177276152593248862323593182725452564965303835424124358280537723551251117862797851964040432325932527010775279484443266975775529782788428136021651569436516566639899823944039157076714506424508400135119033337271369215670116844350490361634226200290027080039696408151880310762920931026972476266117750507885099595325071979289784387316738776520839375912969533958691787265550515421891161764584665128947054001527177643961376869130671687196795843504443264197322832131239138956012692782462333015174238068234945934727144389646532622291709640421899975456911789925446831673682676432945007019940639485783525085537749044671280855641895191414739911889112477651010310492509737310724945827183684349374509994350678394601589120922807712932349240729587795948740066187763150332017161043671383144127006043984832813703793512601329619181284161093706833504487172419953347997750850431532421327663289851654284776971082898403600522677572593773317066445417235261343294079509277836707825489918645299568519303845997837789919042370123149984693978817255660997906896216180833067546342072464434691046323989900443371122408544537164861288017241574900501751515393702138793023977707183606378037796276309551672383349411483779642222093883267500854043158170348712790103038956588276418738365668679928539066463773288723671511286468205209221000540174027350203876279211031381255345599707082522129735142763159126356772124019644289455250023883191769759405374507600321555091715577726061695428857046403467751806786692980603057816600437905994216477626957121691511514513193231092513611886097476544912113090281136025184749982545748228102356213996815793624675342102745543865546663367628897476948000335619779485458061580349570127354876396637116975440769495414220091452707347884482580054371634025285616032953130794174339987872472357101982793454910986987153634243847824091303076708217046456069223177415327386583982110678222158826111376615566975888062149424395176204368094856784696583866672860444737359850604753437805959518951532039118945171514722509592963993626329894272878191399951982946331499586471837808940332057615464034122555932413733990545883053603871469958080380214989559451703676252680400118710695037374232154504116574845936502582581479720147408932944044536522260430275701545526780980193675755678328523295921332340784424020441104096520533942213279286329524567809246963330851504257638002835716577066263557828380360420771421994008192889558499135651211356623916870239233133238675191903783795626121682717204167148210368687041928008259957491220343664816776881448712219132846682979651840337129317502858850383539415740292718074253594171338442963241040473192558525976133935270453052776604254141261095973990586301988755987436007287776024717530996188482950611985900331385932247647743539087988757514315594655761194062329908131554002961197853216443941133093609972434669075010804891602411479755326437055812311603223710402667737458425460900685722814997765431455669832515127333684508439374766586011176393354859392922272991211276718775410568620177067099794442049074309283304851598432740075363247398175892907581647902917360497006997198060909507328436958011479827778157046318584725606454932001759199332961107946449448860159445148688098235804150131188468006484271190847417958929806947158925046102395402199301297342149102745732592324991412811175138575547156273234054964096954438428524160758881596535411783150945570090228745365342210202804024888017604138938993430646924606318112354235596909341342753673703814504199928921071475711305335285606506387542385666023955067110851578297489676772052107712092994863175451325115058002574732636374386181387991498556171482317241815248060780527330329326660982588754021619776264537709767088469030230490271381528090591642801321103706653631776488364407171274234836231898185763468609871442442054748647709846401611047041183879493654785622616915472930333045369604550114107705619559911261158456013628942581738008626556033008071721994027086539279080103190532308544835396892449722516033361157501954327310273819335630002206021638944594999529039914611703991212003203288191646191555115578176772914336286186530326163569909825694622148104195152262195312733350141291349462720033577771945389166902511512491816840914904447071932349522972950004110620632928362576751566001627606084407950571837934200984810796667987671479487116415412957096856576556547114406816904814327284139493178915440639814255265587159685941745938011405974973427665431047163346596197187654923606722799711776183545739912389910003960687265419587301186293472627498296379934790479579816505127855754795496386899376541205069061589905421746447904536138651766501009629974143314613845278259843342821237734308422486978392586570845592894400220557029698364068249273047398857415869696500668830138585868203530791548901387792075187691611412535318337779040358370420857289922083645540966767797087538595332272383279756234045726634031692283697844239516956006694937795031426300226005463670815805362824405314873094492166714421653918571442280405156729556151107174069849781011055240626916835449683876975369496566724257495043934978275702579655956766634727033458787853756474941101419047200417330783505218757741946539608850447328594456474820212475878845843281145620984681480419678186363548354273783384156649274141820525025770272023506580760894060138044743609954418257735027922753636259170259861022938086592643462673204392483372378242071546948576481913987229866983683812941273605569977165348792802416937672324523899157401567552385974675716120557528891892881409810056581049056673937224123278241907165248392628903979643385985887527571119986899765794045073826013385486864562558831682392258414042736703874765583964197263453559854168991461416613611726163485622965383919961758618322675811600907190420511673629070369091189566131686890614503021659208818702534455431330633990177339970921890674951227189422670007207053304733507436241712787835990289081093281974889624068362547555869100895947667092204439180552978841795787940631089219517407440395140090384547343716185005335372649420484427531672120720930896351708273153434014591733320189737470874270021543380295696902067354098670483022972247295752701627740525242602213127861044465993273249466051784077382270728042985651885367312679190394740899765915145550287596574190620254126401392350534092179313456693739731300490094363934879774491568536530774993467599707970157523705186484324846547320913214147737970894629294474730600565641676232736586012057926950881980871127538519706346007950256758125576172286776835366681308201018222008425231292032538522293955107519774377175269961902463763873151912919140232564430106849196211958093952311169486151743576275719655555334329085989490828559080586446881873951581343178711227079211074600210663600305834341670367695971045784935180861633314772526436295714950201221120583758936729413597482743091961963740366960553483743428603809843767879812986941722452400901581434389370410097042776573301055055120760803461808428565593612246756352609977961105363116853858861303165670956431034593750850918247734531710632709268311341630349341675097864485709571706647555430009975880759204552818900193226499069945344519778481853145368206253334716100738227925692745383018950067779497214481236857024990724128068425225675046084433333968756098736354314945967023369272326511017520536880365388166662354517587350264350906242508034184016571914370061557938298635927156838715061064204620618224932178677305665296123315257583391821602277123948391296162498594481591121468378207510982593916940249181458749422451889610575705822047271099724172712343135842389648457356024402709435975776800567929605920123502949352315116818052344063204803853203424711512307265597855490165804305945579121644153772568681516583551141314338695613707754419607627886207455136148989032344410327056805037106341329932924239184821697436717285875650181215532952646427786070378433410518845507872186537665133289765908549219509801196887156203335939031505983607841160793733416326661059442139630159708940833981859619254023475859012914333448837650752251197482447635476912920206808087522148815161228772147715821625109335265976490207100062104498725163127943736012936365657069159077959757693444399732763429427219914909649473339904610020455731418436603430318203911181512368704540928794340708117744407080033059983065491697134656465751008246159312289630746577853585359302850430396765905207014406930172768730781023586245643430713714183461904117620958479347981543122823957253583532424930042055023911659382462821785750929045124947955675095518301951186440442734119378958022552413778532586734887743564030018770331958480751278591084105908631016965842048080917161053226281852839156950791806256682571316858130349020621779501614306871562500182842427225111450120801553293449771130498429540024105036713957804982969134581338724939015399746152135890930727539161906472350651320250268488052256919085936023830243540608980525560812906184730902910872736081201785072467387258560290643569059604281072438042435409711593664806361034528263321377238847114217234218863992584702987984889121413397860042825570759054023253324695019940762421941305033251998555002249265475253991225817541049305667641214585990698838474885639297224060715665529664329398785234740502555400854539725704415276416368972871878043763852498306218293514529846544268854705513653987306137798724397754439885753702768562315483829671285916225001924523859564996501756273918593843466135706912103241199296250704370837017718187992297052685245066609989987555725965412878018277517783461247545774058323065727589143423973566558161438009498933728676263963197197140407983698383077187792387295558683313824455774882754373718412117252031687651121652052898785391008511408488102124864796605422293036006732354189759800794877925247108706915158084001124257648684236592134787662996866161621850291196298692509144121832010112809482770650848687649146974121420771796052726214296125878484776315205591856689574354498459095321972587251394284234131033390576720328040346666882586577345529885357591960822260703774465634328456882587233371523962631134675082797961445156664091492855440837464336387394395269630244507752460772246797351334603194522690197162241246427085077706085089335447013952681429393368145661587377914881844588210293881316163284100112305895405588376736494540463245415899289323540664293809470747743795015544207194222378958324023125041948452647132764728380547375686668462846883936058995557660388368839132921205269709039631001654405500397423733048236720610276364474898193103262268394750737858296408533760346913905573920806886888011667360739072764043637404780035859129040198844351877888788995319208741240366007776654487169134630333795705706232236733691119721674088972488771018673346656595223235038141388270944476465089335058063662310710664203956531245715394725883426852002541130646931446263984666555888496288757250921433043426669574442888466820133516444088603264725135847244262335145794436456353564596393191762829881135701137861044818745212906291552205841222523375225812609936342681551503581178220414863961307127195609251548748663375369442947771773506032743594205657167526345150225934050132406812911532263390382534471143576819511405787922550593647227229687553432447911386260823886095069503227391467124462437437854768405984943799276546982565929611596518971626672035979469821820034668887650629238441614776308842520501004854992353336165299590353682936243042649562651556147467769598446927954908025005997545946132508769323393607351463258932374103063336622189628010853935738862371958049809095699715011698593971094585479706748749192259178004624653994567144067706010596276548642630009992852482828751210901500321668311475796306214163352854348984567927264392927550210362278535170509202142257729273078644046485423414189999843513202805348150817694001864039185919195330367119722789172532165707004697205125245278067840643122569440893508893494641260622697674368949466612116594090241365512156935383982649498766352062651052722095958484721285472729432137731964495571304647742996358729490521570475141831171669750788015052357893071017607839108597374336020991312756392022429284459677742837944280162542349223523033750914718395121273799888551771975273516896777516183131306393805011170927259130848272396192478361813040477341614580659437939743103979505364656861530001232636947123167347757252699498464424505781444720449468133297110679479021560071503884365337700176717716042072723976311316298068090845069699842445054424917249877589976390816764228641827362692239992369070018137403219423859082963269778164002796401730759510907604935386251319655691126852846596782560549428925847418283295451743437938607747796653422133751929600117993129646041740443743782830083090343871184323356112029634049138363892207225188056163025311311451280568932295261325719037421443251356466163222412360877102885798967967394030948175203532637320800268778473939282384734719274126388735351281865645124227797250477500739617545933661647911236386891905095592510207840291992396387400094174389341441167676150052420956381239968033696394438003374402961424722358263361384637204078333158880666549245858265212933474412174566716187932994354790233550071399518273798315486717946144952235643054464650856405336301872627412569300820905853729844105360091528906478261973231400222982058986040437681773255022317067673338248408392612604182809673296807024741117050947734243713121135324327322658194085542233366316075550295510078325554808524370898024991177952976342364756437283426097929705267319167499699943220799437896112863523239154764235984570201902038469336350619504852742772828341422735599595418126791371827071948166532458898352609965490871852433978044366648762837190146394079131455369329729837635450986616818780328731168359919647164731225162179782814421274305594683252685309903426340446415038502818868343045468948994780289002509791535657364655486215874649163533905544028983754891770256516253345443562965448177976376374111725652949102544595912899946019190700035084918313934652804790441594081956450520296845784822591050511896643117978897369497666124754766949390254923161926159206984216312267132809504495311684964756605164212364950712160267547001401964781864898332283002944022914385040831810936063393829886566391715851123437445827949303827694418301631110881638207302455899798574585402123933473473304912734378803173328271103923227704363138958469285833825559902094375036823404900885818802769692169389327004991992973411431344077898298419357170271512729163472039810972879370340993078868595813049953980139026234181818376999277786822795153831310243454607823315802193533649785829503519178254317663960268887831059989404364243582885123038513321186443929102607947696453424640398096677022152911708755348509616641515868718121210259662865247465318371582439676231924746241316413999981717518403309852396861106304271026901574895506064419165785502768988891713963188332269482355681110788315755085502898611028516473204231112277633224526187667985303450678282717004703268293252572084113606521797789656698468550384297973346717597091096834462795530601557681210231560945232362187826773222094956974754306704844312934270934482653125193751796660618256730579209762106717489157381909522474466695827146951006709401211420872786698611027883115661013827597626865018492749387511585901533268480643140573788115235897914965109400655863529025266578269183544824035489516398761074919953481861320488960467532663539987235502058835416256459574488686478770630409831325192371182471133191091192796764184344696671310026737866147689422410724225446732798910851911010430891690515310626082950043675961739990812411955420336934837661605139057911141978455767415769198720865037192537146487699329682964924975394672013050594969693966824434547706426124450175321537598481801625735359505611352640752749863887788471370366623931050804257974945122749752894730026568101535383061682257895066860529897378856797513140472825833127761439862465794153828352300871091660864593301333420090631899618910480979782870474254763791644954667716500353903662033720281064880799714464185949689765706930241709816208553131454572550294722598903938645059827695634332142323947658992970965371547625444781885813584456348349611195255200969756768585658060653414459853023052660934706745241623715224242747723588610513717008037489641714250354507284151824626971002874324721904879344934366350290759441917128879841718420038642455195337795203165924776292846223580266084110863098994874443689327784933814931458719855484632171037605660563066244011417822965590998430103769766397558188067431860278579602426357633710779971356194524075994720477689931282354049349461743658537726355722330679724226095367393163435701213011934803543690066071423764609824355056021405636913155859376787514939825180579558625424333743144196024332405971396294334771169171353199712178137249967151841533639014871948400413587727854820255256204452167865998890624054270586563740111784646503343793313061588379265393837347609678283119652998318492295066842073628848489807897507131239366497606863898182150246205043631779381993989148903697511683318452886641706548385309886569042562693302586316049800921154274385467527550701064063742878023940349362299739736096734966418616012203701367469286006173277359921805844987269323089830614735933285985745017238105055900568338991449585577336725898915437395816312303034002495608830708802867817441262287411983312423831464405400500318221542148741798648514347649358390756016557946582279760117985521235582356465574076118494916177058746385455044334766338928634479483758280578220749759374157765609214188937018164220808995497520643542186534936349966910283326870067314877536557905074238763881511674364343352641045446153704792364586344713330386904030457772110806530775591763639679766746059495577804045964087050564004601508219799536404536397888888205457324298355394983964479487146573810380092793977767846909330570811681358876182359277989320480331201065584789095227224444341694392831138298332748487137729780626814450498928897274601125471649423424865877683768896769792796594666058362959263193405368845761143549238109353340689520731018334536434068374493316731900260801987888909778680419925940471058124260434020638266654652443421971677057551748890950279761213908702922697866935927515172484019253997881510315750011844348362147751663619697191261886215245868417184261338153662411532627578280689692494712429214250718913561610636104541627731463446724515961541130264661849278077638463188777966806454396526115252132521620140550776128394127330131114445227645628404498946646796322055059425506723921085740643198383014093068767905811461950644243403646532344815409078210010675248764996517645786284569627059032968306754224808211043080390285565617051452350822356419258771812646228103032573719254636713779502667223014684319085593973850842581319358529823453420435166474249353515907986347633076291886370750887383717199574246630584895581017142338108582588492215022729394960294586681581263423635598411428533224747663940780178329430561629728472163770382344117616556658643126463213937422907779364405763917938589836307877859568404399713555897469679065116587819608664819386971898552561576045650350166671295508039086140304497549397704002592230996372353194111743467115488040236562210179056019212032300965299403485040388036856338303448713596442107160383083068775107906880428726812807495802174912786576614663629512239989723449528337668329398292277511174563547372679279667721011158705491028468111076326700609698347079115682172958121077356216902997132710834329048067486940919921108971907619838850954227437632538935840121241934713338878478092264777734186377925579599791540885917728193867493923065094296416080173698357180834016504189408724616960467355385142813994260000704652601216759537793277311260406162373832918487969345249860857558514053829972286671603555945870684562255573178289331535671061844936850133824552660449506672321778735122116266591594749202397460690571878742753267698019502664932669205841625985632887861780858453156282702818638795484489232938902090584299146996727960564386048344498616433827224055531781250333363213833982006736396083283436464713444561106314541255511317463026061353547372189365816932019779931440418548186104512989031965376922111022413839587712276541616001338809663518238390097497688858218020933839568794325953886553480791018687385204654753459256529647857547736194038529552040965273765560287043632973459461771157093375573183226029368668104961599336990332360285241361518631789640316742959120304421228841649754837821467369535366036218863949637016563185311986852484016501679631299357956730499273403817572675640592866431498084070915125331770500350913903368021803259593147580236978183540055361764023286820725183037454874941558882829473137733347502637762299506778551093276428549968792626226382108697395050014177272648378677368288687301585810880994727240097891205336570390845299628147250425842646265715967137674960660514671286645550364646222033144466490479343112767210199622962421954327297266272654186245153676903047645279280056153388325423347219545250630583289668639347884753513850818776796359255368540722921689451218160718402604713918319676687086502637515053053184932987416143033341266706012354173960184707396670974834563327031269659630475793221788607034685265158805850571309366829531407737202510984041379774772454565414678025777090639338268304505303999284717917955486854674382327490736263375317411765348492892905462860705692761507132840475290424137598418308036468368442508875807627637574960884279644490557241738137991030258531142835417202922010066584206260008226583057458509215976761766432559698048786565221260909998263542823172117362808985829577644219765727596459442994624990217566412086269559061839221421251364181838359783925123309151040964366294490222069837523123970927614609098600599999295126914561317563016939962506238391261190701324559121679725241537816401171535292576467452140441598204648052433411356500791108654744497940618856074784203579190674301729797304596036938320737873302797866740048758296872487767306876338585369061354386504566512908437112825859732314094390636025451258499078096711834038902516490472414609544321623741874281164133127572890207375547553527850805756813331047284572291343045222574986157064767014652543922812991117653681464036737341956582121522337157670057028777675471800810931567500623876968083063574323605563788270630433563336130495201614284015472795249622316299928319153074024070806500075657267828792909788423405711613556765621078795796479322151628920287830514752761451466098402213505331988765857607851104212121028188657960856866618032252887508995222525272896560950015282685295851972770400722136969617703092733089748836944504341493534702543248148836438514160427789750724169935047201840368781292681968557908542388379135685058881309637261746843734489388218376516637393148477207041372183016370444947734740611372972002552084541133818849897988065144083163345486197623907589503938464009781154740560773698973836641186784525122085052372359037773086247347402172231639859987805454257496143699053765251904522856771275232696701426716139898016243701386361789434303202633179892128240187036414972068418149743790707889499800412798825334155522829380228929214027101427737481435587670752041315175516159032618308277475914552608306551747137265078024807102020240268338813641392101479121568245092927053980658270132181828351491460487672277107179445144542730037115865403966238161947697114789438081992180008040320282496818661931344427599853751690430349803414155360513272538063507740540799408984613060080549298058108034684462476949601375341877515536392057108686429214769510674158953542885592289439092392373576613248999434911987321534257605935741315798747167090760884895935566734272770673044891583138663770504195781309023657245880305932673780864449028978875884247793496213937501339922253512425282310589065064164551848222072433084258014143433838815874546419053778588361173075573429215803855977302849340022251579668638645806871369881370587474503928470094531983037130911685052603455797109376428201978076778117240988219731752534850403999584825916752465417372622001430572805484868385973119513671199056504296467142274926130764506000282359266197578644630141476167042808287548709402350206400864454087541061096028545751084280193460474029758248034000847924399716293850539929573890429635081650553359224611847351522440679172184332134689536704148394996271874895896740302484889608453020234491935110931395406641104741404692682443875664884686031852172943067887203792314194857229255083702613967029760418089778141494195068264981586132256359970632336253758852237118896765913393800905577653726731166550154432873868494434938301187977996489261618124578781710303468011747311105596867142489742753014052592311474148106802974145986377314826835598769267941505904475621593175125049654864572016196157241543422109310961354378721489554869923271610608677139096541094012161387515732304912247707906492527330209488870861754713446300851726747305894796776054382592652433066170250475448626309263049684021302434403235179849253768562063312709109127467628205692719828576974390365946758312071113050542177398137474201719966612995599171324409760722526080494801818768534016975225610568049101641752363827417823066807973731903524536661259111640465786307701161929803197102871189142858661749486002547936860877201317219004345781956270869586736906095877882480000314100886626692133750155136826655896890633790393351241904899904515101848654189761609168103019315188371187793187716265219640253060045083567160271074568755884816431725063234497049595565604592547489196203213090009745383840244606641897131284845692036959589648698197611551984064166205691372866351395771667077389328953049854619433306525356570023618043059398240373162117242347845743494194147560885476123127675929011579136224913545721000287524316988766736661910110881554085063414271763014744112383815578559921987663246780640991260569184000417249545097733705082292974994752920466984904224471561648808683868912024837772393466345030586544979752288772369590539900649499467052577767942244898552194111660380118606302445419903540780412049939383825439568321693999947065706592550804241115219841661678757123751693028815804625561438295705798124197488508882519889883990724077291831525425571834583849430262397784923889312735377907228707257842924697586155203775856696814742263957621570862081489044196235438951469762746139046144697456924466854425496592151027972067152815614816478612459233877872896736712536105253938504593634902111523835965768305642901286284307743813009608872019974300366319626323858497838745510160857537913458008766446281331155003523328212812755446952207698142990956721666596649162278885297520422667251139534748274829364731134288086866325931774754267298863342846859523116156528543042316497771378415274593569127971226742729967033456698533403314502778949135560786170100009016757662696691005286622534160208211616707252579822289294430346745617199927065848087747052243351657814764411786454447165979495206268579139618604219213742512176005947595390554220152853622302296642011927860940188690245139480869296287690102136322747288813721746118199449046252028520176730034097221839549879724095484915719482570222162237081160531676745648247081964010984559699687543687432374031031782400487641185230438866042682433614300392051441362403052023485482070035187353778501255090894784521708464762363119744964192151524125097896971596414727923606559287007238752592558981375908028993272436581528419759928605036191039177784703239742849678748242279153484035549952176778482669533210981130546179949947900194692739958248962976985696032586739915275813082014033236901435686896193857618512216148404486239084031334289627143617375537539161371542769737366341502526442918313598665525823566626324024558096780171748305027650122854434313361435636746966561509414623298095446247295045329450042510141494313105384710112394057150091431010197040266625286218496479760040459938656367719804828411990724626458589263687817850839091213344095385990369393608785362487498035600573648252239619099839148149671048439324090871052167834798418045698096946824283126618291659121797503946720754063235090087893901650595708326545862792405910756962542482885627152297958838754898082622769424102671765899135712816086599801823202863495224966741888092077634137280470728199916518040301597181788633849348309439791051491139084802288818862659753422625560815635664562648449343663085498971017943259440182991838522928162072704770901977476725925516397990896286793181928771687026338656372362252426192172833554607089955638254528156308734670076016488218307760348515590611441152972091253374850027484679539260545525676713043784046193559036885159044917142107663842614671393581259989503706081739122771415455889039794218434533313226921627219315683091498834864599978214434806986962645935595374099773329654877521600007711701545968725928285038592347070358762444696710161386141176945206964331847554012574867124804669264385977839398190994508941295790949868920981489685214929924018589642540487397930588993287647297091188695156670390615509451768979309194076894608536999241515319095221714646451291091337832770224357608787764961542734134367784069054238001113550831413897703145909126335521229844279904418233824674603848311401836024659696246658944973740912396489307458473224745580339863158569166792167110803717146290040781860489431826709821884739843587119359080767023669986086584731043584343966606957774543750857281761379430249615788359871621315883309701835824175063061377166361691556336192494028414487355171129379190105361260172445264872854957761409347910793340141374367864295593420723761827166209442111074472748369859879682356017431256902236693828596356784362439744103593056547387501144245899665047970849907336413731706484430030628406147696760065711043322155720687450502753958367641076832333545918495121400757085350079851141870614797092359421270099808000564803436701445972156110039540978766066015681516240160670078493734059998453903037223899019281680135859900088918914126969617339230738022722367956021666987879292347122584085805083365224119370235190741299600939340641677804408554320073416316453716485480966168307243847724011049556688624018332195205479667057372096707318214210221718715677862498682945849163624270457648504795871311886233648539617523622001896119459962740195434195342049192760747722223184682201517573795282621036246636052716432881271281349125903128937000536632763588081320112551225978459415753486696197782538187535434227391512508024448436485498656546966598343460412277955743853505778786071963320424242738549343467917602715447661953152735118707013206516257622146658503937003781871050221595454304833801520999772866069394165205000201424969367285439430292375668884584958624233858745029878198045311855736001791943289759080408426374010086712319939260180639314520977799543648650919941369118441422772876474940193082319573411208090170458760358259288095187522446746274333866422198442275178639793684383854559932040675526469570755775210869565927539281248572024830206593525076899181550805130968166321474140978398564040606426363304026950772052849460345566612696021808985651007248535924867922427885076668352601750497552682324254166782056088424094912521279711359086198541577192269853553554718178884716753600842805637741290925681061090245497359417883317287067823872584716268666994140337530206244959554751034390109940993325858294527908537472451331399851170668168790887154046780535015618635366902113741256916550743148690130101030843071846145545341668797116151672668870230377923734817962941587219802027465435121854846265121044756556796562439214314373927535505341453374409188775924556346887630331035366306689038395909919332602396374035771155980926615091933236818683784065288331833012934206659356323942131280437829459633370416335091326994924271786898511869112150432877656111864637956813237856624540641619314884121450552923873265642999397287066852077750525680691407998400509822814888023432175031610264932395852608723330883596136008891656416434651758105376110858050757972225213144982364816639622594700699376636503535933157717019577875900413528150740017958493010308734899360605987542891660520818568477788859035455492555973324390802316966172681947038653451886437053563062079053785705503574905882480007641352071072159189005786266674755792682022499102915645801927943995682018105473081249239165406844240109851878528103628165266806189505137835089002775214178929103560871206712341561227457195097041482310201242269945940280200171339566236621178488369904499942682983287492623462125031233222487090138930991929739100059875815618123173569144729771849604379041017954311555974899043055603818550523841665783031899304573490882884338338639937689735808224316661264552052729673704724265811373088689814207171870273581663211783440403293150150692748960805373745209141475053097876386013561079743023859039903071354474703505416517160384774008114810098140509320792953134782500069501946653089545398446257185977968940840696790814703767691168326932716190543783813770057719196188552803264822378746894790115992487219581983390720201548780773934177637464908248088780201788098279838192009201055404347131091976830529425428261873759825402826816178355946804195679208219037469926092751391816029765476434055749091464213470780244485027419430556723044527463087177565532779095643759702359145704571500422341668711529034799853636228077722131857541653936962163524370522696157662751042183879898601691715425150824759277586455990545579090847637260084340967905215392759146969592221862671375423715751954911434671349598203534123982753126560278157590697747295770902035083250647572236935877401506126269933219424083129930470321707449782103682065347093852758672756492942110642168451570018073645991102987948037935505520742556534162407546891784747921195156741732010841557192482375707008134812677475714357256879669420187898867097538218473331412569421903627137249367022950058294856307716245935644457898152157430634491447462212323280561222772965641721261549305512140001093031143266106738964816590622326264269299260891046679954999316567188207844511150900000664618576845359077405822313792806483989944970033349060930935903582463867295220968364602522407908040748134808719127218862812921037059609339540179202219539874173385698981577929194969442529084310869298559859664468107639628502082841248259815570574225243442554229644616836729772392386998867795140216318174287634204021674901573158315690190751058880748514543992705641127081697144422263837935410752585280549005811851389369856930593515009791351043089763705812956119049201889931258446985962834543553098165087957109301772404011226610467352714053564865187611619315393673170419234897619034229210017721844917138265473505347021748616283997507319068792242777056170613660035937145937167689600580501882985673400140887419363145676406886395277739466234527423214558256776779336158318825494898255933910223784646742261848305079633260246357319013518729196292058146104319712686352434246080127247582534298757223148095599831467017429931315018650941896920725114590921039319181236809103734769934401389470059286111311321277015937362736043167075804574675205999725011978152223037560279204595802454827962843825427924031856305739482711786644871235378515476710965735294552051632494085853438132142088714331851686717146282501058463586044921353813141546493740295652167248067649718078441053858262704336163388926506841305440731826159903794360737488841988303303916475619122828428417250806809374426520451969243710738087275472307423247284796312047017522469055963965195186137169553708770809307541478140202020059822475798892744603827437478521954396587894898048740497997379176512751778804979488998706320371812129694359476534573437544134805817320590814085435752547210388442793060360092074394768989870331942699381302334628258475101323085988341144010857694202178446438106383420549343925113654698251945316955955668139133750911831669331572367525091890738166823017945247710423426606011488947232261987386879333952410542197706186269262898799986545061310208615634866486254712081078782082455906902848713027545768214297375569753443553403329579271924769440743552317259389056269543925459236573041202672664359580933552038677417877118455926617354477479342938607505474367762635058403294830672731720792521633667436974266630309500458642450751026344422748775390634231426919248384805931782344099411129872241447331795142609507478096039504336809371822296914313442110903857990564682988479301690866694113876053143934255281151175786975576280049671614820819831395143865576164420538985018938614585572669048637444550979647406073942334305841883560075143671942038202539668432938514860450458487785607643918220123558933623629625955821854240689053164706887915194637894815680963532271114306723448569525792791093053270380490919676407076742477013660441060515980261165066880916729924775179879426406804196378709039577808269667826594890637510177830538025121304300323353918970384942870149990581869199658140506751044128395992862915259979614816182143515906382772445385868112240068759805218514788181647434491857356647153876643559951405550486233509216681136172551359512403276772870673719096164315790827608616657456559861329804007638995620025505937300922821113919439311572393860874764878710881649677869183651705962700314973431208305678050236216285345209260876017815400153536230743132757256553899843338909748359686332157251681095752926710495270826692816082286279493775682443186223614631196480702021706210227080999811829392608751897571068404889159791819892373567390732739601552916537398867663341411397076041912255509427498908857090710803567177538577014407474499517855708994727547051524559693722038318504598773658873780844612691538548217568380000256125999162584599361208682525553910068102921924246829084159840605934729460187022763883364561956761354998658346894137249595230805229235105963667492491598658066047592131740377578060059760098808528103784949609673981536351459130067338281430081176311330816765759272921680488765823715815489288433054844307248638673636436876550134074321611392630427277083816280222841682313812381876932415374742612180301395461585318182213589488258880399766845915483327870059184834591984433023941160629857942553507142752198845023293096577134419416153226200043548387940542062512500012753280119449663418481369152623717699156684758291781184285377624407733093326938006577412536965432009412512299997134817928972673054285982894102926783651505763567243200390421024533906388683858470594858377670789021529469625981257695841450287555498731062986753293652554696503698758884339402798626410193666314750781051402948904621060155877692654890238600227808636463509697287638479352789037593307190401686335382881155824138995195655625385170801140981742302210156509766796292733077228305940629988801242147862181341800911668241208363111189089290663349767125223037431741867000955319204449984994253377670984641220903516647631822919193081788215655012755454492868859727210794644770769556229532842766420723872243965317983727247034844909343450196226139262260614140587667528416684490055468861205789324327579788704586555926211270863201976389010647630642126752869285858359328248318990821314920354147064060243703918079523574435749777665118300400718013704883827755041785681722327025450084556513334486346824377596969815457518071359089789011350324642193215423813989870157632523641878799266183444824560307366384071075595230892482184963458516672836256658316716382810208133896155654676376663800934975978855717915285518966481145040722899686249412559278423162394387658511415815357516432314809422453998538877469892355624175214244058787602302397120599579464160562586748036306839865360290650792676450813710106076173729882754690822931172291588793630427812742003056767880671390021492056136927184154393326104308790245809986391614015566992834421944691106836269558552233036010419020929723201183036796183902249556041074797403320641915247202369620495418077764451971351993429731185139946875230076193117735729039246281380848634857652232257182299573954196970547902467140394410655364102011939979142833327213818048045889713631137133914939673109827689530392988103171955072731975385035821212425893988068827646288657595299395380509799182064327613306910995278635694295854799355011888938268713936069672381389809418621242914456701012599898175084363125213361562305263002180783789870363998900114186063088989010457677509105305182343754752591543454326886034934203617023286229239349136887683212269888439714163222381334462071553532878057354229392820421382764838623827049939483703999344705265359928304634248325603335781294219410307149012066270772860288278047861110000528036465987489576090513120806629443694543415975932636400569347173392380580643381110115346902531953012847283279116450671536013206266959957987207208077268498030426467014900069839926250414236959177640026092618045086842002857639454501858753504510344254838807949515373283461521998659320253492107405380819347583282007355752668120251874313372234828899331727760586428457163414807487910226292276267232525968815915361691467754005546296600674442160176394073871617924191394225485616257609056485729505420918888447643190799576001491999289549539525714180228916015496705335699098437814687071104742404112934655160115049343817435049066237124764636461367154599584694843374604112941055200973197120174544750206456910017491116273841958914995319730410521031026787272138961197413627555692707055422821749031173441177317216399476058000333936688516012114828471084861587868937766401012666312908590526433710938174981773004282014342222938255406441682330003139651708202974520476385864172999119070003533510815986807507737157176752519828026792603905373173690346714285263676365244544291999506786929017532490337878719206467560851981026640123206966548137284676625949444284354180753284221431077726412322019264107024947017074804959352374226680422057769665213778605186368467293973763626192692357808213850055526162913216846838259994945061159444658282289577425472491468358219936370516251261829618282688653460978670157162266274895526113678615764529685327759194790889481623798906611612874109298325785467759037459521126225767323508149261804360900019487547421564659504748957241610661922983576672548548352569888934453884714002454226044211096702048135043325690645358668177102679119877466240725983396957932409681143489571935635110855203041180256579117728311370306659904266076337098116845076225797521658187962244147536119998663909014442438968627295531834681990013556790422473654034140193332296639090026624124501495900495748990913619024158179635070071991811588478589115100170657472452180317112011572351836029066826499068320380485193977206200542849108608802977987477940490814268303446400186833616944856691282115165782629483232713797963172280227647409304617831911987168368274645869906975253736049381399415943068421230828001341932520773011338584908175334279435452589550696192490263445707891180126771495932634753089357872688910784624345196906815626651425459510556898802773069142608272166092101521639792075644453071605603257284486491223142073096810844766711660407859448601809244764094540983252145502624529846250319887046104197390041529987139576763439980244410150996460330307437049384355298214336526793979606522814341668894878748267910605050373688031552263968118611011235225480396844272840448320838872511734735035487528261942250636639363976794869275438997198965504675079673970590649259741532857076490062875137746050416509225420117472520064092125305478396447244161812475183462799303065517406308270770494400325568991932143073294829057726301551981202846088295893698154148416016032961628638754159215876863275961059150433181104362465151384898765581003212171723050983663853294694077965657760915645280352940648404373598391578625611168707587118672933791916189658209293267039327430618550381328529156588452577896163777700105529990696844898325263034114915545805302692285792521353241506222770486932170629332949394457998936331741723945072075102649701051887333792516231548627863823050346662799886784327077885452984526509047240569218409330471280258903122594649841114087685643503531164112595730548162456185058208363039633528462263435382900541329327778092020080089008586834448851853839070027443270403942487197773903898700850525943974573596211252869582510910233467064487892990677901702736988679323999277059774855179186985927632753838297270730590642091551668697972568978835991850878364605383973775430066387002936819297745629596676588032570152064827189217092484287408895977645610678576410774809151942527899425328850674681549669307820547796415439719384125676898799443001376514348015896842684094256076402395445685446855019572846300402714698802142426534349693283119818458682803564836821801394133363494539890504536422525774058526549762882146991367908882888698276693248924580006041518838993286233293234012743737608584244993579852502608238189044529448776711445401489625407857247805573216110454946779316047754004351250691565967189578340839073548340936771881049591693118965711192172562026273283601670840974255413918842429432247953153739856493719319329196399242187456812059767703010362967114797813482888415586597835842454800044990671156956661723133772442934989847126758243955455302343469099600858876109443697367991105591169273685192168216817284840627734490530681099504074499262403684181280298604167382666527545968085424105904834104493990022417163008880472772151621357459946148378254619054939632878614331186996090614830476203070522036880884527969951806761605616130902322654744419037690896822102575992031387155664639178571203620531990336914676051562067529204720309521659719148894063986348842902583471575333183839626898678185880800888139846902124436995184933044037545444903337222815134498851121840214309311031522597923822925396573472421875135847684851216359708121646046950001586310824932375356171083476427710375243430305715878793441212029498023439409142133839663938295068655245897279791736791015077019262146115276255221508783214164289042501016543799590877667722149863094168489790364019316899425689405125720882840617430084698895758703664131850071079586899201149128015155193511686127446467806049978559270492029994774122584407014885991929649248706132605547634596077458296497166168475067047367382092524501758754547776393201159193093806623268106193818396486709978301132496807363838367918716218212885226779299483099779925243309532156376447529641243604449265234332594626461378335796186170060875657400258307722799743228043795971571107824285729135071451734430673470190613839092094029066417776709538488823493069764544658600001008081422503110059986115211520755328807530354933003141462653123049413574659578735476981967578219760077835093558439391655188096490928973953047864115050908006472193034143146582250927022422663801270945719460654341876516224837912211895768215648280597379984225218578329716371199603782820704456871468898047911172403647825200020329031364334800847417789026824805229906171547906852291200659617766812884292479370521672218039036212089680901852407046665156043361281207847796104770443390047779776797433892299342119844804258558300232049731959587126496910457451608327517750343896219069588526093592248653836434521572521188876518456535456230776344613291347043273367286261752504480358034339140671300628985079751932157705015957950993164136422792388511549362056295250992028213119235926528697019734451934471971062372649777094409914112390636348233395606274829840168569267114635431799505760788989372720308525065497882132113462283248909710104335364491943476359113337565988429509654531979359277977140015043683487425317626851804399204715313106151685496311542287762258466768642933506024944775992671764617255435032670514561005572783718278909799392361832942557603598713847697858597921738052136202066722854053233507352771498600849116533746916424701913489047470523428860903757780512685859544848863132683593000508024801495264198783036196562632847695188919828643587264478674112670822152453771742415050205637425756751079214232447902611307191971170305020393186670822560223533695317931382586318525335929520187113754342221225092883989180899660981269626048180717764913445136538173922315937709024333022778484400299025409499708921117882233709111114184724747664909191451329744196872585072866956515207572855032936281084132356696310552147977029367564973713790098207848721974722513421949496140728603886164863484373082655835174243887321564048511556781323786839624910993317395081312974251044882223711385526601505245988100637877544779874586619060759163753346743868191523111329897437396158479434767102550432771595977054943911653495083565027012133345251286555919567309481194113008821672463891598997811452827002976042742933194160414948432778196276978628948798661687342811039740714688904277269792721285013576582794644776653992683654462837362659310463746247499241124920316986324973762227078134186681219035875223647899550633155884939010046899976045369036757610010810672442035372224292762549822627058815877419971877010498596332514197464624431868560412120271685545861273130656930655037788299044333134452503463065223159265009171791512768712676955923992714539674086139218452833656850053216424276371317719558091185143019568604741756361269384574674809023192031047150179216462223713243642021474556998877509459625012539697371910694076571126058251440313170373088786433688033044849563260308834572292146732415036419944937541052628552768612112395720246901521566946574606452312492919542091512932331130519119183309095156360868205562353466417913509859898872274574965886277672212682089912759353226403128110406272184736558659202111822535525972355054137315738159231625723628985661019319243803980438757508311552258556663566354476264340237351540471497049312246032368728201198980951044626020730131464982641998063187690611348803388052293069285447708717474320679264541407745296044069870643858228582186909809393653981783490349174238070239468260300261312968274339609436953767052490463666772242338597731758050071798640071747523469762777882379019989232243521538727905498296550163005462137649047104409040549754446885114530415906075970632462908379441672382276813364652884183555528961978588069796044585284749279049312921309812806733615031607395769355959540308186630593092237985363968848992484228775937054729916720467570218238275122113493142591080754657695266270295159287978394264304488025859526270413462758248332491189253049545671203642486558591381467272624089222959935984160479116550719294270132292806649978031652281145074663168068754629520568187943921197910766849175632602866869742817968946932224390134331639331303907865911001622990078234069050056699640771175341002548849944899458660156139712327684529958139323615115150144126035177531936766935227690901040316585403075805192310654386111463791811454467493557897541323499382284621428400286171459934056876913008599413965229058055513172332802206682707489131438869816576922795459961594834143058862401433772985985656942565470058055224172966358107773133025383583417068931918864556554351412436186953553094004531852303421927439122013659577215030609971549220091396975289196917836231978879040006768490065855665537691848918754388592325786425818873779009768502077026556701671952805167201272384435042040426938966265603921746173904290016359761075005256548364057825151353842541625931018528500439121506837018832752581448944885563373419928210488705023059922057453140018784589598384982745311302675409472848641847541001833328406452947082080098910516044971349862488462045886473928323899015473150339434672477780072216410729241890939076220641261860597328608442442111638129754545775570662356641760775720436601371923579835057135439638743483641530244510177813571948433376573107553207110733327696205361627471843380068975065103641016671078250462131274370985285419866068405860191473901837487032947206331424551255517145691064676942700625123856228376933713940210742524297692286722942823286080088693607621059714148323011903408273491026172845479595820813748078353802808183968951569139331458270690693903232905036623146900361257956222070424016280557785294146813876226417734244974979825941111122489131787458047216248419917244028554694359207164919204342800263475417258745342331052419238452409183104033539303535198038954232698061823174800477398048796777103652572915793017782158225549009036102552987219670264602581831338153248774797770057011519307638106376394362743913080107946174540187910145532461704531865229802931151248114338441777425821555736375153824068438954441995675806855111198772229769440168894320527152000973246470833322251470987694547201756932086056010128400349099206601096418707340799667128809361404536150849096369489209149750635594668839879633786368536999356022987558064269334337316220208773656588627203858146029072075942674295019501116938889804866110231333068959165598026242709414247554273581201150281377079351089529152609251907080328423169251315668121689877589948083295315106004303601770916098594833203301701505463999965270180388593329755690705882160420855470354488589086375392580104026860868434089322939891947064893341059871268512034212669270393187746022295835866804906861198648638616949235889344939633048410194642908398688467747019582075793614309720877272857818673882928413421862424169980585396832299567510657039750233409736047799006687188723642160605439643016178500419797116840051436654826898756455341469917882188504724102451292342095003529042570380917848363747781544702509934001599286669385664805004751722254285633555772394176609252767806926355374958977134026609644842818326046313366064261302604621728305840251872233501378791784271890529923177594007013375044324518979612909886632690891669641633835710017382789488503425533397110928783544959673498446938202523101531129987968766741282486822796397434281287971826205688559291998799776128007979098432048447196783303871057914475805702851687532823727650335866874502953721807162045543694661763200655238596815687269155157028744933922801189607189198023697446766848419791147367317998613291363930476765974413869011776739123845328620747169267164046647512345299983144517751880805775053355874798414286675006954194070671436276794640251303063515240088907235640423028163699724778496004823321435797268939932435110242451595943879128104042932543355857414674254099251653996115257339572483351206448891395217934274449927177916534657501546626076254574831569666022204027956102526124818946444599596482160131559210202736892632481934427766474452963798566897919040039369513566221693214725047942530284874233384503978229576855961913248691655783835787577189820783513391299818456609647121768044550298536181271113991524923547791955311969237907185751160337041231664375819146573952178392645252759806570892316221567385283025534643608319123290971366836488805782634726425045738800612231781603723326762811028292127479673774257298158317730521796464382604153113164249022521892356886518484043887511375876845984163092642660856166383455088676063634976391036734361605058907543457841658423027106463009242751263425381334690246369139756346991774602425837091959201953253207371535124088507363593586850574017245871224095552459134361013888913071124170535864285875502550467869395759622513469941573748107482271344399546686104907399886163058913192361675621160066164795512866546908070182719581262816849858836505486554774941735637741180599626196660037603338975145172182603661349936315666692078895863285838713532402850789947684355577924214809975726877464390883746121358051018895749473327012001546207057743658087590422530504133008298277577883499039682935465491398086226808127721512141829970122718293054115987548068465252509876622728068195918274448983756790411222619762550506484579497805442570204970507535295347176548739717693028416308259145344927118640089071510252610633808183686915234530300716685016114734030638663803685995588738381177818601611074245274186493998047945983939383051223108188021135671980625001615393098443630327262642588240121547875615485980771930767980740005981861046360473911265169979500338103663475759035394382226382158819384079046482826325283049583113432458274314140605660901977522123590613369443295374193982046975354816125320050269354444567751767131093623439229437127468506621663501017296345615080787515227466474913684679567065266242050147155494902316874725890266355630725989695929580224060691346252035467138767489361817383914319654409033521772554687161156252083266658361657114792985802812779881567651132073255557767428955450923880502274938351829078774848345120470608641931305013298277690153966741146447155737780976792342909614431432498752836274933310613921528357210425838344088800466662915020273778998267865429084621629454581894542238046052553182437817126337514856778594049075208250476913673909536793009179645384702155779868352959546921971991845302656192217386534558189303797984898282176602968116325661288457601405424590878622463707600323397811603293964655053278608188081146057703298237044091272440551987740308453837062283395710125335294100162348077045681942718607971385451589256239867570167450178979759424119512972668740485201133912711789711827706214715846123024733127923439672949552820270440965305030035185616197917666906915801491263105809288210329097681923165418025771322491985833551488434108129672353171794193970013803540320904903575700382703831114876200275160155073562025105891049524665004654809605376301861306224674371152527409409500800195385147112792926908152781478061907144031038379926181161719146503208878414166778497625780818827619316804706826287669785106330986803855651981608812438040078607430519515676748201584953244059917312618917432694708963081910220592213168959934370275815815068511044915785360893150443438231492849281723706376466418156741557351013458351761643965486939764407497202040228146911637472541442226692854642517985967697691369308970815457950105099804534137597125787059589646217425360796829259711373549924347706691610972122664631733081890117617615576163247863902126961551606476024191898729109697753448942084086435426915923077465862422491858251490556391491143093490863448012666040857849594529502863011865969548832991793143695881108884273109073842685276493064615821609414726376148020913945948986802664971606812222210064414103503307054619383218028305962645077198188112706744051737512494758111481060343880112276540451325759040339218301818907447986140121903309776925747575012063118238672767236274273841905180615995879871789496955142901307967259312550997312292278507192707251377990183994473907704904865110805879232974262533026342069847912981267144016108638032725472241322017604062123436658954983572332490241342409600071074017322646171435766675110991423459648456440432321832135033468560689717048624560343050451479069346661434307697804463285941972681162036744548147708472957533848562527961540542482199918406140770211486620535519541700848237357187214438113250685300838270224529342647869602787013171692070517824061576193497978385516622930489256069845239818937775167134740933735047783973283802093536495289118063287641522894388902113937052148996101072894068195973416457606768534029623815236046846115767719146281123045751506907381332051251373768674946224614730028752169500027262135186969443748076865690750206164882857347991890756199119533259159242936108089291281339764532395466441306367941682193275867702988392535869957553136634334173658499502461604088605728506008567235058171310996780060530416801780768951163269158933166010416683263995920185130612570745379563656339963655456225803187721607365280888072213369842805102700597328213557366152021114059475123617045105267871179723038588681906844671415108077512194181752738424710051815449449843631730293044551524775764342049506826663533059780022930142976889274445977526925076764491243871441323439590491514286324619777546767312153370492116075325770073801143131905430090530513053077263583451092042243006709828339840330226125107943350581243052804486616059016065332126443006136958543946411527509815196353668891747773037213324400513405033739340353336283001737260604703493573925306874941781306512294413593282016561626038620847457573426091141680538889269191609513416941167492526540019256652911975578756784271215145073447465930192625943636295680225726196338769009624867365122688865946856868929217145512338129515985650579827945300153327946550192386250492485659843277338162120487422372525742966106031197372009258108433126737372882699849884825066622634800997104096384028575110100603971117523490148050453628284491580440142029509744549283347391191769733884619316002297567505709564891078731895116915236278568507541074708962442412643269465773796895813561780416882383579474339581913451079006360635266263869986771691485565182633544760798360720963364577374835263390854219074443313921978305640240904919170111747781732276167295086309238938806412052437951512753471222142010420116790612212520714881919592903796770308219684351364535883333914542533353142216134921200239066745117303571700866695475010212813499797344096786077563177852479501212451913109435303382444828441719128030731603279654649627092950623188366095345485240823506026394690808398453770411338049457482665556823373042234695318980661939360069336446452174064000122745021909453308933690227225298691432987407822621330768573482315130725615422462137748617219934592423699419142952114573526262408055282005731056134678004458304116763684235432545849468312235207979895700034782842992137313660493950021453139666435344292753770957087917760181462133808066439856876223274223549425475137495711001097288393104709372705053012644526524964864367793188651891684706481432204859622895818329150382307171675511300691778284853717951576169437410284377736978598345474760059167655051093500080574169135859931165017614038783350851267453550845848612570722335433084173122204457593887352261450692482760936253812921229953080042420741964271606555536556380645203868537501532264510435208607357302991529757540308917008354725716360366596538073196231902704781676406526633432184708395683423921478269292279825473754592952963979186603948110028421390127028519488279444627551247240316100807003276192077046535867870566397949561607010718603518796501987775744897591668833967860936601506470030986251213363698724101573852683378987963053816187164859438653819810018348555328029047470865529456333435274864814361453848352185085233341800783012387330457297352820539469093586348048087348531674090453530113678214036122850014835929049059827049865523303443309462857110892295413247690912444619662392350906854494149581117744453057856445026880879511000609552487510829373852458020179551710157082884760265535111708283129087458675999452753639852685081923797143597335283740037539473632626989812811460566652413754210339740418108538991781398999970590260006638295000028803890207436296726696329534790112029803570928174866401864609263301458697169279645345749842084891692549490166529286417335950631725435751657865452230055411714923371891578422303894803248619132363152493901334863427775202520315530326525280685907083918884949126131594912503873830016983239098238271961070241081084453099406581051821338235083977452989434998632727945076690113905408471299530872002541645727783157711561820317294767751214743774639344466742480486851177962183092557873289147722185716861161389152504003553818785680210490608822071383250587927684984832547622792972587615372252805654115362432991042496740808397019785106049911465003133645527328556896893269830686659678951801795663262222062850427692331770850456410280977940217971831543167204937386542462920695670738345843016090024758803934910590113393328343753935049168202189331867426083028091519209631885639643397323209454630599568527459231389047506701317607839039070217650328193162948730796869965464468923807217157200786677218096318039535232145886633859148043402575067662598331589696631089992732402042867442027207892759334499671389457414685070443432012646627335404925477309667561938887341806731105840083099169062542082769997283858781975387568053746041725719793967094255593821248316737853544335503119542163533046129440413102659074437105519960027701455821166501942437872786742875685166807480407283300241982851601461119316356541274115577986093093698823960717271719735273270569495659764052585583537667030197253333376809227815340253720649049545637013148196827814974990432068190296775751714695364968663339098701414783793511676788118155942455935794230743393093967016682042064227522350312873246148320260892516923333422395836031564610420616130000382152471439331461800886767294682519044205747017741824598834873463304331675172715804287628756221913713868846245844546682703398066313487821864528188448475329596797998702864636678668376840568695681629815115864641176918448461636797907634673384491124209116764471590488416811637958588905009851548141733909159627880557109706332926290904471921297948796678728200086623866048622633195592223462470356279324801208752090740493751736916649008445961908083788126427920365057447628766326165819536896381189354341716121097394555551036329531142288481725109278905042574099404873539510728965163708756619896433455457317981676037705653020739987408213410203428115753077961761876908440899858787629046005150862856245435521968570036531129989252158378758858817071086969024273579198752351803942077272846226996619091510420472735570336694416127071491562493800159370989578794178560046555783092745566944345673254764349059503343794923095586518325494434593177514460271635326547954694933395890527725034371954437546053479518121821554945320588745402275669826636233009206496417802574054785388836896897467390660041621930787412138281912432132861604605994905564246001381443559484888583770896485377305172107344024294848848648581426495818524502861104877960682410372135313445487676745667931881947002265150961401401830657836105938715424801102597294855320956239472887285284793455508064913306012935868969131340961807259468962717171380785006483770387015159489895258077997076444351088312515992030028320335175513439322802946607944157397121140404237293627205088981249633696197340871227021450408251766894544698742930369403446683977630349319707250941197791823111155266002734753634842816000753826394396971082991425052075279473342554743512496410722609400479425550926997346153743844513507539148090352960995230397432217593611541767814528106118577814036924508460599973404857187172546515563814438211844189139398897067286882197537413774868580243429890969955658014169974816797252135548302784931296252617836528421702815209086500551776142758479634813679179627660695006824449005262169953040330264978174403569712382571052555501458937789020189306617303785223683113488075899608699213584298040517088384113042186606114546508398816938403672812986622779781466335552253921615454364824466883576069068445109144420544911155996162001724068587477449363832005545193018473447555182886196539064530239890209415073466833865371686211032144521578797840123312497556908868770973044268085149461066267648929616842319757174031982150273272379711641321985978274424452836952542334790227528243351196161191001744123424417597016605333728834774002068006870910975040309169944734791173738882295715828562960604033196815128607741104381456437686404538765802034882449883026781769526495851132896631348464593975063516396938557098654119041144290701187309899055030034321302029679266518892126257973915831256614212294159993139749438880097290484034272079514243426725529042967158107260952756461853307984014347390050633433652478751149332665097366711623604818253304376178856936129749834285953949274573867178297596358592553632082832953521946244168167103387852299278804883405438175972253704795226471904964095909915165654279316948683399991130624875192245018307459966849715828255771724032614195224281747175243203325582659461573205022988702838349392311404199824598344006063975688525267616091252326515177112592239933181546958391105887716475643396725796828349779062004508361948297410023271850549946700326827056398774457460545569378044339795985907588380237447939705287316893411729252424692045557583558872084528231317295049233749351034669041034632943700477210068089095071877548954396818290383418946178533065415078196500702182178447117201394046229644743053448547117673283209936834652727294971000989528663720310324958608588104870338728274172224129386500163671328818449108384563481085389173622407653066735212409526069414726247812803914482900775319076965779836446770756713037910016023330868366629530622901933425359765871264937592042079682648088442404424953083794694647573128646582358545245307157219584582961785701898966894279028673288331900902522261480920909276905714249261583884500018589889383416130946243871192455653230997970037452516941491629029041431706967903147879017002270777528871238113699306145596069405376362018544634163721910361474576309105448909091520679000026480368205519327362398705784482406695049462287115817727948744600095268752637148275318394621297999710667995526082922816144613713112443012806869740055956692074067116128083795061330105119968471264716339174058927515941304880765531244792806679253544117032811718584943485711315229228435957138064530659765804017956113600686561017276837779956977124506504890908846911610238917793882931906813762481173987129992681002691877295015450248731161552946082285268494926620679211083047411168471015973729898320493886983514081787683666896288686707207851015247715437884107443526547956601086217397804906983301180140585832200968316694939358358816707876867022606754375020072151388844518781037122836420215623805158664355017123865031629574093848128841333784482720905772918059087282128092521647879913400063859035137308480293822157893656315177548847600784922653593835962536228996641021024433107334904781869914592721438413889259570747602291393638844422240492261649256468141588796365205717306918538160106062276961605219710737829816087973097719612697770104863196991012690027114918711613396716173798430770987118045657874022631309157614786442729546796164536459162708488357845105409908843790651307546799231844970720324443393506262747223541647218536108064683707424397260822015205412585359864715269017453571509545637812226273121174227124268282219712260412796876428973516227445797937828417307742416804393380983915659533429953853668341484322565714530120886308649121317985940208949045657115839058215543739939706560425028096447802463251254439639856764355036639902709472405892123489919757789750756925868632784984566549988601138651973434662826229684788946267868500024748101444649122976396149654333066277067252304903061235658744920376694551734818581611167060691845116441925397110799927591104512587960236019556722665618258305654280397840041207194048800552490075495294872710301590701141466526423096652023466902145893568071344513030319627760947688140353172495084886268384148425757640973154425057502481970464834062691441062494224302902017347170371622663702613160741820293327762333279647114754260222311550947139410234760046387655525070360274501344592082677859246006921328710956678370009516758302251657817562003328980387669264604286324337149922760684301385849832786082526220338771884723193314210049629085730996940449299604680700654807395551965050288892868812330001334049041158991975529313184058342814927257751429062766512390430301947245513706946996116010059066225233201160484039563428882690690661963665949533059689971376746440465804768175478388849286323531873544191850347955022071243222327116092007419338155121335844798388683258951649473358260049275961866695088179767457616998758541877206642247284407086789649151338508220572926764834161028202965072805608239071856649307594447992315410791110268351975870508415569757247687286645088579347160254523105192624400509869767545888143773135711901333784231343514986398834774700451853510681682271422749353849749738822208035899094791247386522907212879702656899048886530017924289443893838693399187034959069651293784429524439854674756201671878106071300511309011907340479788315076243481068485643813940899705163928140411787328274394578876290630878958977608791766716251357510232047529042537008794165014830247707200477630890625116704804678738057690014817036913668551651943927693135616687828491683044789269861664790457425033709788766413323721992204263091602982568661004308624646770238096664007752862079464084804784764579395651243382983119826860636685145369224505866638530830461593737449341842504538438980826093505667703882878734288989145581036170219059663105403153869526614871458133430244604678230283125324224962279119889995707957517656466180418215609239851131038534764836807218542403518534060062194438480188470770245370243620680759893513503613076765428385901194921485347003757944321797533825134922542043593652190018372387858288073624041313128002748588619927308299834001390972977457089070243790880114577230104027301609419873818335364915237734838120734433916931232614818433950854326662240825571983961542461862649648290638428069265331658547600715335500203683589162064492417415406413225133787893995155661160648935413610088326018604860348618807544919872474107681230368774492834263335702132108067388217016849967234224078863137127647941004476490911378455929232276703099782664031607835559318309207921137656889620628771866770583101100824411949623345861402364771257254496753282495610871066448606268233685452219888126602137847449169519462656236215722515784761304654289393470562312228526140955568154493821982173755475408188979728780897313213466315487794061716180150268162670875558564657483553159307380809898960633044089098567054852040207822413161443501485328805416843783675400872639541518761932429971182991910445146387178290341838901914425352836524034103415948629474288219944933466934654713189234562821289532035727537529378969033574610304344208281600770063652056257140724200816164981997638751840316442672087701337501759521912131580057152070074273274745415252592713831162346444986462594256967370578704295211685203927730585330956750659805259741036276809512674829546394591286415458100364927077924703205639602148981783209292515560217870122630457477653692624884446829195474721439314908524561454519164460527274277061155618762521488559896809286059303815359532525643531357986530813947567809776278202621470432746809336287610275923865681989463056427045766713564929307334040232192620596998081736385483087029286847125951348940838119423751048550818453103262901926304475649245290396121859771326545763793656163088165247011811922559201491315622650829963190292413790426652144908781117619013546180957531112948755020632139879635655681733140426403014602764197420610804872513335129249160456681527883357142862983919406986153395384068043509870186349103240343054391527394500170624048260404050214380960586578490030241079184130588506288570763614016049351048017540061624848175742960405039460228040216311627637804120464834426802160609199364574461780467414071097355557803614706586052995649671500247793168508333894441641361966713657465883270059695707328797287953634522950847985468407784787576278297052830558334048942943859522760243366639419245402027154212783851982352836225798569424131829113253106332131070491307006021469107061513492576141324018976254108241655003431695210941087632148000580173911580813348169760641694890682380484992053263117979538734960167458504957525101956163437345936579544706947717663428905124849852025215308577361583586614202252483222789988245314473576293537517777161284770947815570820902709096080182055933044340470367240633318365215537569400215910070204455780128989753337254700030700930583649030266067950956691461456062484322052230261576101542623913956593441996673040154540211347198466206052404043020848372792610223861517754540633105647669424515190923476352164909119898041616188604370583238191815362254508647315405820439200392330051782512480055256624418569900369252123101752929701875664105946829531495803707567039878969448391962884533756999349840521689041390515793544229746228312290726918679637295837232684514781518067116558401014206123491984770862777761541842988313183512443420370810284720915887059263362437364797588181878552451068923591998242426252528667795251689517033343429966825502579530579415445474409757850624173950349803979837924317510475878201139408948221523912823035514068183838923671043995365817982497993037369951380379380764028588543918065193918277830309057131456440738796129426684253250431417920541369845489560390060016296116970281039066104360775655206649896876015520153211374159540955720563201707575317197662827310399103845872511389135591616592126221419055153739690211071160994292409066268703175046044394044865090171292882814421530608464502708252006705517031060156264401161391350026494923135886555462027918144523319304240210497244068683136969968528924375995773759493452950423924538085486736691018859491228361562011739480211855180558136145203662595009298130213347857047968454889377379451219892819077721540033184191761874771193167404348855855456548322164484107736848668040754837014947313462703573913917447631677192493574681073661564311338567271408241667513343735350474123991583862073185674747390892199793548754757393896003875646305743020430241130482152177008451837225902037193761154962413208368937592127814796218405706308479518368382906318324395086468247060215312281547318499687926318601269281313452024603149322061308860157186310896724204193596611753858121685325967926163028794973333484673506097682991246414368221019552748279983472024693714206609522944737104088709030821223923401076039339081552576229832945509539190489262940936134032421101744122800535361616731599806071267008329913969556517822764226033692772416920940173690290340989030268981515963400007114309681958049828722674503363336229740020697450139544665908408137178304118612733486807975161148573267219456700643421767809270308423956243868666423379787224205992679406674781131854567475760045702091948369928543069569917462002891802762067545605830315847227263810730708980450897413448879105435653980561480304662966476958335221726263106813828866463634620501007922319928900781948168347642000010021945325623779566396107694667918497483417969409814218545345610724037428490117278035233098850994897581676660613294026961530948033053512868175827350160068555756720633068180572820547168370652418888876464247042362355065111716237976504850664270776844902380570407685108271303360851109044089817728590886041753719861176339545605784728279798473030662906865881330194173584886364595882765193926616140180966879763462526443678925963074183925316607891767226835995078096585765385068967537140407402947981156343541113472986587524363346572226214297449550425018457889557072607355913488686184259287951032550381858574539919535813708930668604976586360409628993047450995529855867921810167686271924089348721152445563754322234482870254458471054529304254952677721283503851474943543381600114103452849762689084647647311714807801656742393460119063772551953584617858700613357195330829083911736467303986823664753093793385122360677381552656831144960743950414277012221458731519976492787194147258830135302071259365919342354310683980875650261510473297528397034075992030596043626916103628854073523484731864010814122114520628294869024851577355570673864504575176886547549544023093327899539838805900213725140214650357666816315453939562927871924413750891658506583101277249101454743636356614225810177546450172562121939627293088465212773417904058410324851982113017467521673075649637234056852735428762084157852721697053169624039372114609464617908130721801203045507267955036566859100176906678832548784845524050244548148884831444123568853906485859269228206732480813884185443012630208558896447854239667145053373627472029766354678647489507937607282721607882920773561998043104799060204870154938138425513234667548599620974936500941043128806237127364730911528616831638055997954968397838127882837528548137931934365861686104168975922520389382780129581562383312693680912341785185574687755826468805611897521614661170865356618883066860193441121935532132996414962563868796433907941932053966370098881967837778410691281270403273423221258219651060421833224661148818774673695494214280251094989958111498418448877188516771787700534594781789890248465637145807590035068979054304085891322046963804582485521352993146067329066004068307581195154666905112893258731677087086664445208426396706603153330489090488081275559681505796140816945661673160626995730530035519592044217491226582038330644024253107813718419558917099196589876119933062752475330897202864461942212319437641128253659827150110649600168653734781582480939936577796165944452867499159301939194267758404276455849142616331472672103671744402316926200586908256594500424552228403118341220306447280485844626118574528856354701838469376885993664887655546327834601473713787603714042571337228941578952953462831431395876910735606278018514965283091847921986962691409440337607039599291592167108358032156300657782982449928358833364329525624064827940347817239865957689733333596796474019712731154333815741100399608807157862207811607066436594438210083828482335944098617031993089200409577499181949917408380674110150270917902723910999754192211612774694103445892202358509231568091731786492022393956808828247147589008431478952960171257970355089956535494194025894119422645936965206850918919591910002972454234239994801106455945062048516674241569424102436027434281840546057318778894848042426384541298411325718679465430458921143779133361101410297782162534420423031658367805115878655907592057276640646567958021520576793667292685131597500782967895569116670464998037018038537473146091359392522434855018955993146293726837865684788408508885970327005880542369456436540783323478390018840815479398412399167175289740312504321949320048962845068919836627819002076638162002418120471375331956478391454092603649571266632469465136303449645833789300315417255991051002270088854871625227680338603530753882844487877070852130881825076948707452292170871425369187425973821366988629936263898183529114428991765406102288260066053582300440411592834523761054949415725605158115131136307914339313827628562182859782102540523365586253974432982162336009874767182413904670624515688424811734091058171878878029579633439514598672402339961694484343209543583483202644747399489946491261924648373438902820087132675303061662090224238638332174854158210065454167854178839787382398214321193528513691079148924620527711636207852955631400355893247326545664652996285467509574321577422871540089614900828232177776885317208250245853359983694778571533724897307003797803916772143330341278557944434032871595056980889678418145216342506026049471012767100225121385259376300569349429638513310719154362696531475456599028879275638278832648183945252232244912556637639340806661576973265359752836565467218820560018854174480432264778627102587836923774420064959343586666412712871228111215725610991425925354244159172164061619996699841120653644745388383568745202286714546531862075239429828023378778183783136494249307113646564505355837409147352662655814549694524380472002289290574727793769364501545537012997702137016134853477134364328007795187762618414962045897581065732655950318206689344101395075476963050057172629522924886532465345867549123956547008198127195408580429496692405009216936765092824580412964013345342325497376402518698489750565107054775639088330972422813597767929592785392046067331921272173229945291890722169299409981462590675198032281445128656459537121330197399223406706657362535593025329061737336104732269365731674369099432741811370102782267319467581262432224272927592662569614607687535717554234678557918208139314025439545461505996541367641980802279379662827242148402253380829492367159422736474471675479718331975299298785455851259411943487462274284306863873557413147654761566437841447641097823786587752581648806300242922716485047830463071319169386028891464162469191917041229619118004489669474896645785997193149665770415107438546189962817355657746055395767983899034347611598820117720620509242191565410944236867284264266239176787798323619288074914230595678105306402169107050876677295822481080809264229787085254048721008908776889272039696369135289003338826849286384264608360169494653947628947932182471249543493085535725542064380329890961058522002310346956409624605991760362854949852525562772470749022967276565966757419752140673967839802859661742054796161176069992030889675405819506603527560967823713785024108782518181587782033410123991794421875893797820647011847141592520834239975709293529938667828229005639557508265040291884857897151619036217001869201964641056501081405324158369898334497673066312789308623490576824867191739857005575522616742042601109866967799349564467848342888687641574596101599788683254003081874265951658933520899079771550564530092411287424759074189153915780782309768928092769350100004480150814435833523344798966573611435540947888551676985518760141449024633652750122257137019066474050635018840794858057105437420955624234568807349258024304619784238861236263568963422626155752561268649972151824018493207444410171332421043442762232291009680896819300159391073254733913789303898867475549992965230262918837677857168293496712293217631120085631741633034383984559198198703557286993556440144546532941559221834770191818549654936416048934890180323765315869565164086952640904358644776008122478160411800802995618456334281924327375008410660271688895797001072562516224439619244309547506759409935101140697565616343675273448498430991364960896406942410927365020544896075457793538593515587410753356160046832021830005993266239867833534381919641851940516465986603056715071731619563293411162152786396573246885763347588799782305980658175033623232275343351815379555468528970728349671223869564125707294119144620464931298324357118119898850984278541316277482698519503864233332505517407303864909399142039761810014424007580017358602557994412699665611348733554720094572879401736781998196449258044587040185440518494366316441711227312887071649336052478476046639616019989698569190166904878808449737089905424122818600758426218552241350167646679717812008842295947398721425926015711370833210892690777936239453978107248220797287337603688971626155730262920027244471591071574265671202293085366855568155274745810022803918394126845099454213428248515640432971731653809609657587367250879148621308251762458443470863136861596763753814119101093041577613342619810962005946701037610052015020894005514460951491485545899832075353408961428774206127705393596207325828780370255061457053367360208327650714379655897281690677838970319045790607623218175709698326368840523612187304465700543365708932238210798720412398591624165135776051944635917141215642249967826702156449065428528031620635766380967835891697690045755377338239532364782127281406871762607368877755984018628173188841342103271491694098232808812773123902098974499228407725308534004555782951301997077257970167045313961674510206574871293240167936587394833313880508289947890627351621075109591802447396304534712801057905297148775953257446818482696835761545698476054877801108668960336843855872409456452929009001858516766979498335586950440925406692563989585532236531233866271672735105891971691380966343930157634764298161773368270588704142689788283097151594414606574227439628243459133786254388307800601403398642959469173011307052837217090871444776282653645637457772725753723916135115765386294058398506778184960393952637752773901733326739549639659835267452021464823518687815695467742597146037032697735814794861298697496083941661949766281864135023085133551612677436366592134185309700324553648828648789318891082307885840383285154682092084500816567156273032589329721570866119492228735332128748789087289715831436105102591956144945729349306151705392347859693882735981172094430888799616461914130261528629361071953447950455336437068624619228582836571978065147776938138211801759996741754369786176423626899077459986954358811010127181922699484381649200171579885711823191574702691787433720976485267565109067002241784760486921660908722511150965319202617351321697657172732016122250743592983045278673488988575370433212780271262612966016145182231584983123472251067083814130073633537797283489103705750524944083036795577129838409032499464774768998453487769040727942819817362186396731162002716280259359742065055047511216919713070206144625218535332637105891733959697335316777534808940284955774777638011387045035460244955114033287565842666051744978733549451625214535613035015797812445353365199131291475765932824367260432985941960941865335020994264759256514796141529889284863394781443912578545874169168062736523549863056828969258010428018489063527054280736907468661300021884817099705305861728519538171321950358649196308812309715631133159278983910982099485389138638828006637977577741558300205901409885427502219859287304964457069154574025891591342733479657775557638961192464617945344311897362025531159729399157624189737640517765906202663541798291653054760025699544638141327453462019210614497144954349632799812340009945203534344094267739331133486371692965745307858797007793563592449537587376517161403543230473080620762708810272939629606276111199433506640590139179567094994411163745367170383678408713995190647585998456784554766234307912076663273888589762600239999070330688619920930859619270170907472689271653546381909492620381859829736452925009434759093059901280613148481008183559484598954201899187986034425015140609334049985265786765758775126343756660256835587432013425870350947319190125627992185357724196670553154954347253340820946550149998678608527073293917951270576205512387539128816399949293927442381013747491860458124741369202377861371519871402146946454667925846687538547029420478667590068677446049508309657485493530721223699022307676450488507490287614401208882092100655026244872329488898760852305439597832484741988553963772129978817481823787482675196354236199395212968504338576725256659300562916567004314562978679175726382622830326954584489947164446747574488669502715621427492771186682575850019961216813381008750145186602949056348183077503974121163049683101738612719866013727529719820557719895848133051913973136922570774331077648676398262258314884029602780656838066571947865543938931051904337106276524492997609462117594596118776248977500046445471101265531450132530297348416452180486042957294432871760530702716236802615717612131478936440544519448818051858776553310684344112697497712011985770583391474874596514471085595661352434685100437585939169498766265059391339990280550176844109313736578638508709022558100161421000819135141651755685376860601163272515543657862009883620855747289727459447027962571924122670579642677583769566651422440437228879608219401175247307925916282414618771834248294214853054955221810431948023789125103398224482246402476150624788004674375583245336069787070468809709279837666824454102039804251572664759158863429277512058489624448214967071784185418501138368373825494649034451065051987601236342346496581986489784664478177632692361714381680722450171485063654986672775294444992599615044319097002936006184760472475245977890751671799027597745099227758531853562780685706510427008115005593098803045859777091439429200815007367745456842193333755062395376544455373337883170154192753780005568783595094274383432021773107683233783049256268648443793174625790142276848466092792268373920137532011110828122576139041835958333834427134622206571420573414323737859918931953892220989410198469173079370279648029907140203554619428003814873742442439746885411582727092267024606229214993043733998806659507209277416572442810101813011008748276107821518539642072233544916058854559060263390895407080373470219792751305153926718282885482228091974643450332955563746488048826344312886100439102899970161943155843326110254581880517488958663740806819851335661196263254957407455156412424552248787627880915507860391702040773237311398975111267334346237915226357640996442223970127631621171887410892548324026571286018810277158977498724070637881103009026092213790906310427025362902865480548984317905207437583285197040975857909831118282595587728181980599857642149263502445308896730867203512608985107738305699899761051308042431095229470708567698705508280427348360843526566313783019072310001676023846255538707175685026109816003779068727972716512682994983552971639302342660100988574531837949812587643238988087256335649575502816968648028274362620706778100453537627048115549350863106891452877930522825429107319350742632058843991354129115343727357394055994476328112946516178040494834500065812763848392734093627186357204728144301765952396810316141224744869088759346714217269255172040097370510791227648921488711756409782461582731784569940440276007655001972349640449835857779259218664328560489380212770657318039180923938227834102810551738172113131467093251344886245091850197048564148978914659871692463164344919067560019225223176970754186139272321726545158675172866251751967922513111165758416799044194461410292707649582539482837143870701498196721172072674947494847308225175481784074112470499327280575828563524418053468058903881365420758880907280793831685259032594529372213581678522399078610012862796754956341369209024332462538436719099571161794121689043855625841157854956050814373914151926149874104047417270789277290849856558726645851823184425004132245407144522978116500677201729110397283599112955277055997894244831521881714743140477126149934391531153306733362118028067615648301723104092077380002596996515484925809555728840400147048527886502870736272993434241744024197304091438614918516147253371471417293070963126411895128538509340912075760762594027650505697192828542458018795808701648380758308405291585424467644038079287012872848802132099630078871467715647511164038169904493526922054810678372041125674249113523022168733669290368174009082054509977325984107996323513815294711832117607150605192568029197150338926228061971464960582355986393363592700460158001820039003678746240472710354704327995194948751932099194217509844110254482295404880307141098134079359917433451467008453283729626848186783041249863447975375003741872719166865122681063945007159607712699310419891648218766789543387099348872440962625882107254118114655559009799620534813231414330473840095493317589514037597165037855781910956468744364038088433158686506019211206445699189929962187078886083370993486775684067754803064782303178742803075760430134558789251864512890922024691857729305930287818843449153696988923486695322326174487894482014886322507845553608589175326419270942886359118145128806190003482849664508053877616822270705033113772090157688962643517503690098229960777145489176446638175750091416412963817536161997592242984888534884664446730280837621524401782791813054688031990539935801792058734163879681279893795189864632132117742262433119449832412215951923629686581813566474084392750516976858214643980654826357211152592680241176967976528272491199751217139259242077919879047763174950181845600708845996830475385521787489421404820525277282569328875508557104261921026446025498241608490865253038205979252504483593847229802520636941957861555648323530800499066068937743311546831644373038331071810545424714319582459766732145825821111275209096892448576693336101509049496155472357128850148388014181508730954743209397657518911824944452916634075220017658925943010074889075127560315963357668300948501068857441048051172095106023551702569782490722330248515325122322086366051426039321538475119521147628586378258573094337475044828813651823487444071915776301083924324979939240682646878769085434779029849149147281967458586173233466920424566604980772853680505774927719827885239229092775552807146493441943726044136838328829798366138827863218391510119089630081010673708834887944555304428679675437822622410348330022473824027975254606503143525901335523757889756327556354158711397490347291874282804873825242139284703546960900188767145315605381121721417470563306115608640368542214388632273854308462886462807133487672233567309798206725289181970581435624836546810815470663319371101901742795246411357552195435286963397702014254097955914676491602714436591811658261612769683849073681683731165162205051626027348250468164823866348093970852179918582867348716100994655286373708348145835247948689379958821801587982377097605558087724449681090158501785064470325439446859616605187390630718250272299361839821567703437619752756601791060079989289511349607758932826347314375422713379911763610660129539442905374186646335025600912490096305936721325489574962507638389947042702910631596051182318262955340784595364857316851922733149258371014291530984343169079978347499651024858100642789617774972128513541966126418928733299223971937735334447288187092219897142052258160974106310579997990393121697870197449213728832937048987167349177395912953719836273650376944613601400107468051686641935170545756086102871783939012913360784561436019704530282855493106269940279810081810391549538446031978611816434353780548605400010795558017654104964493101329102309637505430560120986973768784761737766427590778602784576731574789154545817745988991336770758577458392479190238378340893581477077197127186769515702943754274040492330319345243976892413133189877699382400308902281903556095424006112004803697460580616861227127199461398963909214431319475719657081418762736901678417682773104960187530426922984861617331493324331835151412912002747234730125710335548561259074121502609274190600416417826270400837769829501848012900652323218562312137501611490715144790378197601658010545473232196363322712691750276229341330439483209161966389121389795262059228283910020356815359345564755852721964249400995832854751259271293329194101971363686579565521532412100887037036390614717677225258711541690742364281587620549036324470681473302835905641858041838060823172332955755588954715127166844518625271069633881451825421335476234422487879814802034173493895065152662410522495943022711053122395818366761490394205683810118881312549763490340351768749607164682026626492329368942928863356066089639111140724091643645050050929081141686882751311947525443829323764310434936555032286667565618865752540317006943654567744426215436240702324648923725733862433088730746592171224162771070306797343350711794830369044459823249552040694492997326842477226907415985491352245233650688098270062529360553799150530663674998354391787867029492647102550599206951977923686567753114151480109784086340894288660713062336096283648755671825786924982842557216685278065202407811533303820903394746048681983624978972214505338998382774065062063563572927878854545268692087374049188489528687437057811109747682460647675082238361072661732632904315224591204441135249786336523085525722611231387614363413684136165522434389920452333480413164842494905419869520223219896959254492008099540705845808706619717886511769334261932958433663761822651099771134802122952816804671160101887555947734547983407066730377868620134818182313008448970500288211523679721848807063894085803412340528390781516766406995423027029552787078466687894563209547557052324921389050280443903742303264153863084772371511632446000461249853632464698828951694941055384668177923863883931608478012167657644604583997723710104460732116399696870685600811726687601663508809355671725920050302478940674112780154217487711602736453369256381840249441492345448291588107932889648101574200569533392749844194341474598145432580026439639408090115470315090792260146862620944667505977755010332449360017107194652914757509496129977301609363733709040891936138838029497651774624875961402548566830167479406077328675668373502611851109249951531312562417725701193173640113229978367906032755346870582644974773322622459940208904754650167873870640049650609199934534446597694035434216470571360234503538482562524542136066548179043451103731317750962264597341587206224784379734241845731834606336268493343372510695121934001284775996994618616579717173590214111693232810740929924619635801556989930948776122698726767085354189349617063686593512010932142373873770553678287721075104400507208996318423342130830365719121939362484942876674787300570566360090096868024511044733809768881983636502215871416501004137236262061391519790916297653314996165619899324463284792700792528983748926573778987538250283298676618338644007861782080562586716003526049404143279577004174777582452980138166487230703350936867634328139682591212084408415974969531762614575362957639101240913581515926478073021010807975477527908285713157633334538811960133563807385231470056926449359949809806688154170610947000433967883538681135635573627034951383522304826239649030245402232948756111968683769272379703974128178434851547574579219571903630499498854430268411397730326868919844538657464612237852710818264355640001520157511450079852687907975639308724401771879006118894396490260707563834386202087691612339313346717091123891090923529916251870605660052570075257804302044604531919739241634683147483664156082606328404285408821439134911719800538423600878776330171695202960811496899603046125542776340446143031039188215757684145225185618150983207786575952597451416463952770907595437645564220445113610578234437941198627458038222414631557551773563514033524919071782488020092436230712182673526846184317979284219921137700070744613164089655753634341027866867742770187314691622348035593336320995337058039749791035025748830705642636593552686477686447580444279291297385774711002036584579673739324886447394399346026588103044322213874291191599311827324886806475673783698159608572825204449356647988651038376539570136521996511240140335679093753518834307174317982454622558041065894175947618368069641220170898615741708674382052626946369617866940752725901996112050237634606280344472684303375280342453222053325650697380467021261683406882496556689884077642217107133357085680133470306518476556974409974655415551971781851311488154421313797937891704720833128120108812122223861217355029397732306030908560478468564290647234087257986437211332823698689517736768797218085694161704050277386035435033221896674427832913834735827667921379957823956026887327686409631962651963909513077031815250283775174374481721085059833048923384134139363302340260274132861068517120529281161144207270038930148322386318443850036734615151949220693783371638383002129627684626842554907006316579639468557104865915494118375378409471545496985995510607697907140871335619688040316671074741910437374133120076681886362870877964297107979890643435400312189729375343349026893572903406615539538920206787102498279541147364041242984626988099624011529934176933150989134396023870691627012273607727171751271633159931149686980570055987974686939647957187869751778892176759598646559321212350088577492339900886615889580181166588460650814402673580342992458665406809800752367530760347100428182706679842045012461783866561493928608785037888124295227758743765066273318158735108106021663432952395430346422789046347641497218929795412966973521058366717626362784777683489772269414754738267170186737903308283375642333657251928695435210983260962168651160282643256310521335905474827198287136873639908635316167986711626260279846373364136774712320636518782293506229035391565025929359633622872826821369356358147201166599430309996876847822911725821584503884399988536763976576061465623138857613223732112066854856358099950763912904332630848467545357656177283728616374478449085343276247852940024114431025729320642036639748736725876259533326411175285914021684112666620500079600164014493973312283180998670470022642960860196778453761496369773415176397255141584991661854052804244364101797779072501652057152542217160666455436840469138533121127027908859840364460208996516859596040473650813707670353420172743739313076731494469374448240341237552419832428972155714746777660975481301481931513073201745713470253414106479726412776096917815252189999177723956499475635247296466523402130966042035267876833721423594478618966652927359383024882034597368722134588612100610949613443881905376274071090498445662885784277674879840204265179534196228606802606958105069351523528250148492781975627450466729319227487985136491700547545453658798353596661288897340824637747079834187733900779653648231051968608233198963825004406037861489239032094792169017841473812465100609045086579267455229285749829238952770879863175467585737857202205678321346676640323426976799040515472737320677137077414295235012529356446229138757825094923977210825733828613076194873713656362582172534525066873438404311875198046389236511736052798544181430919345671778868862877285573161555969531813440505395695912799516524747764704285749622792269217410524649543770739486958681509732321193002600117485222149097562743423286346969492484188923509731040635780740096810918966602040074066339803762088352465859262349654482912004368535597115404731897697489716377017704335392920100792877048770811158644825243496490825007315476680729504004417414849541372658111184452766980370939933648193852820393086556248690745369549230665798381190980571456846639189279917522928550834841477003259546899021531121528960144196340390295465680626713188732498356046275146189809278691558678738021451113765601707341893623019853220787178168324099370477684382636880675041924227927652705514033998373321594866026324944284269658782492013803202875694932209350600390609286836750800786212238371469334651251580371961617441204947043594913399883983421959553637491279357023337355273692023797289958780746485811879152844150746625389985936056639138942914080752664692259602290054622643918479887415261070459278986278562693212856356626028538374579360919170536530082483969028089577843631807325703832254078280609701121971548985672617007934126339301867408175701270381737684298279611386947341597931323297033580808854474158739458433884536433943252937507534816248515999747843154921945088681197900964573235651255465627222489699624004697775569507039455253641293205248137753085160157648550072624453003828770063543101910689317531482155683166547278321718418278402983955392735423149595612223277761305384717708878237005004914789440481895590564754561933873290909733288115023658118750540787776058118682449014384953539049290631799896894396646607896532059062492036069062223349207769726153939461594339838034422385437318028843555369191301049833896607758166394634032398919857144157458998634854132664220835811698496762697984078533590238962460564088622454521023346931548855565751478813751772867222086856794209099606617715118726296038719111101551024321427199718111173514350519249268024875807184416254698215473916164952051147922199406843630275596448208796150551977538930495632062301264824002462690337811612430318478077650061474260442190255808085497911888451844774625448169214330495460464638750575149936963298516392707739479079804890570560301803386015848228610004399348237679756442895829593847576495951658520480100547728275710481813316464326305305218860131209261621197593773511788359285224219275194464363532758120737934995498119783803151676411120696219926425425622558926040057668845065378764632317620991802231933437573066347145856207653619883552102954379369811120878067311111995346771035825771032111102177782283375296656846089753136933250586186913638579471837253558599894476304143955858916407561150237906818731975864143456132704966226134848360742172052982500032510790249640718507494309856250912417111003549621838766959335180286063615584337017711998300873347150322731314200577965145049658029412792975470761408270942146918054138255945446531825052837536742469102526735599117527872618230665712909407102309718467289428544668401383949761580996450533624124653193434853530761500421915273726933016956631671877609973710704940057750612772976866093538546605552141445116101487818937273914173486880351811786597681502706645488663956679205606555712547677280980135325013669825453788926172813597687846411855457157760335545484919028304862988837056089627138598356739879321563590641348239968091509915226750292753238144071478733853652987004221519834942334786160981181550531092532449294708495132766867346122360063236958714751054792964548307590261141243041356417425048909830376124576784941978545888657255935544883244432090449853999399088597937900964002133428332611934505900281482850967206657202993227181354725742731188675350756639632445067540038002260649425718936569742012671926359902153808498000176450679022034107448615230884814672521158547233542308520303718768756762804538573233736761129673525349653067038698627660548097783890593906977888243866273109650578460282922626566240606748041834403005615226136753576017333671175642779649166075741105017022126230447267501469663315600609500369209087456825019829176774193894185674828853108374080861132005859820001263897540712807186750431093724302204313117426695949707635636970344145509784321236200884169669539068385175570585710226533616941865235738900142058087245155580942244287815572227979400820317878388627388508785894231347194731742426429417997435486072634490918443037218139558311279936999042626066857622254073599784501706535442595817107384224198387970901136620692320699262736706406616446410559053901827305250896680284241350523489725635479173348480978666955973575201852765551428440845541435963433960776775741608291745032578030635663246762325063604811257874460400556524143604293726486826690875627274242623318514082784415933331530093496925238427755554024426208203972034105721663855192004639151459584913071357272928931576952720627086474546989676322027890814351822827812382988238372312871391224784130280325557538852465879009801322696463920513378011970628161127897184839372024641810696237629775005285610866371201376562893159151168547546433645654439645382671331030167231847707676216878444902393116488076965498536016554202127659123565138807779674417816506941301092785055484109977329812632811108965231982204438610952044313949780561530551700216552838905901101820039716561622307871161304889191485187301021753288965408656762873642760651784686844653094781841169980630935769491085522314005619102273694936621316437314240582361201959725769596906505984371993448172071843253544985907859089053401796595355385234516375496018627901104196954981140609824430365650552541882685718727303213062546698923374714643336103608261598816759864672303665496100683416311066157068747382344972485916691506057260125360686861930772103696100356994536767242265086840667025988799336478332297901335925404950920602959629201578089708289395070219705694926970580511372055271147871844372996109042517426605461270896574971376971990265732342819674108312557709829287966560035903199859709671436673638815958300312058308304528712026930975656384429490075700657512591136218363122753365417218612871286012401923351050599573710869825146363576482530398702340850507837638902349839590235361461998590478055139148476553200657829394286282432037482736185465157746858844610364333574758832850530129951380038041558283851833877492256562669894848336554989767397694503522244380660205153570580391542531566517503237958497424807850772748637220291570427619312412398328961198627400595288806037980126242589909923777595435306133393147562286962706683698289714031224312165437339070554671568911836147932243000182791533387229731921503130611347789535800135813974792823709605738072095741432678770606976850172883627713646989398787282653375482016588478200943475571126276214071129679565682948419959144955070739986783292956217311413108783161958317357445632717079377823704141516579393439407994152962054161923265534138968473546907667839297171324040333405012832629454325378123465414494278220932966092232632158431844304792878982195155144082440990169445025644556088433882999274323176815497614375840933723093796593932768558660216352024061378381939393675467412990923580321165946937958993555959402749574321323977223487927528143360794666116983998422736808113643837105911910434279468834893869235595464249224018598320244365770957693128169561000219983652353674434918203443463488511299328052723212209107687683408122566188647730030028068994644435215424569446100596519558726215277604909292895059723482465294594635398679419611656371041835943604860212448065151725707221713880177639376788979308382171892964479847014795224969457021784949093986687006423135490282412686754097249964077413291530166039015153448156549796441297896085516883474654742642089267772324739032501847792152167938949442462383637749605502488735254459044816778494077463798229355046228827375831808694048154462714918274639823948699021855947569080053566503472174337223033001646448496701661440394391849770188318481222485975060467044663824374738936330985550957997273317977654204421252534075469402948200959734825061415673515656689235414360099387689321436365648859959842228171653560436408205646607325998944147647695846338905466435715637275065441025933479889389866126539735134672346431108551071061484573570104187144374648567632564806187597496173012136620676422178654129401024665075003174601431133285204970324410614253714900746409289720474673083903517199255844748421245237249467566931450282083965861751126498771150284300286691620456647158306986735440021881622081778701685662934349103467562183610615288696261348150509184303218759566294967737660788846075232361200900164043636805407400796865713767953979176074613646131802404124270206767328541245136206751799053354355220182918589519805121048528390391678546701793903413927527200424403098096178769536956157690800540540571831626432089149627396387783809567707203150022681215084236404003137743244668982370010751464660164454163791702401070543718130538962416839735679511953070119151414962654303979067418405778943029147752376806824311150737221765052400133703545435860623156346277743023784335778130341150672731955561974139696907906985819051510597497535310478040214246306639814132415457111674211063669768297102826510496120024028497071588774852956537032058315502268872495970278792092429015038257127176171217534200551017231695564384360315254878350474212999406867103486401601167761780947095962211399894449700625823609454057086822673789256079841656246508690145913790919896159383566086199074420083298169659589193919101461129539777239519570559023642086832910215534586386757615241352826570937444319898088374397219788249090990007424464911534809367707233283701043108693306379681316179321503907472917048621974047909153244358040252385146695055715514928391267265772572458120336086986382099069831658309405669170415491460220491976985702702992298609677117561017629142653191714590514425995257373925551040927158274036397827501731107553563379612945104735686494664787265519260837030280850791254525602237626595661831619623296710685122351639228369718323863037707608058288323209901114228653079509086177159212878914334166639707994056711998418400758111975190175127277627747196773521388081447157907752268320996453200126968309446527346687856318417155472287343546612448868207344481375989049382647934111883368344963191027623007499275844759174970511075814217352845140024817389060259010353940443179216008462567458376919119066205042308353302094974183673989671015847503275412895754296962977739299962716166199018238566070762536831622124481911632428301779596303335588583429204995623791275315101995088721968237708048592901913005523831109386264357866057352176772888345252005661305498472706081015242162589804004484667652619324661663382500461062644829543346175641035400243111715131829953793317883019831577499935746543400630739840795599612138669095768954476775888295239363917776124333158607155185716472271519361604910155151478782055835391327095765281704976708521156672328600582057807965643171384786958624194383808035788436498498610851100789139451993379042181021928982458436749101932065531118425676376212277942883386698682189757513594609577762511999583141049331243164222660379769594248372368389549085701469111411476602231452551242710191206053980920613135443672460552523222158296437701412865730051650801174760999834768913830729529478918081624472467483958516596822521387083434820573095655346471275845329676362025879240728173901423613069703861469826027552510031472434336305706241172133364020077665745652676657783233626179165380338130989865800526970585643742582478346384366470703068173121270421052234807400874084067033548702226766676884664796432752332171991837717420197037435530969717333103831833749728150125903133545346861243361011870505759352144304326852999887974228802197019122943124628278427774331203926234123905635423869796609594747355946025380366080297556443910453347529368233003115205926295008520748917518804939094180957006964257678706082883196493355802713534736061933098074370858930779638899799967566941961433535090611189732796616417117863498882909324447843641966834981202905260095211665603097780550594251907848735666045451208505502793434200797857468814280295905244347696669714231111148284324536053124395079140665922110251186276009814245556441881525721260817758284996375973184223834327635165553607442956901739219584629335836062766343004323856333107933094150120978852419314787982493659936640264793746629047339976076330618702645388346499974921119898776376730563793958319505616040008467802787836990958260159322410524689943505438286569660442861562848374200309948168846712547018217514238727134059726028773409023294437704048326852122742856440229148674329138832729174265349713907910308843058765192722110894510967808432587051489167794533116130159174618453984115149743957926693720728688498388799293268268245979482585246691359830292908510446924988252581221364157786148139968745371301289996886329114023302321931379642112836948189989021390904804687857271970817526302970096491407299440510902178988023465597705814085036157546673156364032615626899138157143504038184869953388718287217203361415951807654580045940909014872084690641901127234223416010667130926744130395218858345854085494583356708774785623690558645847455620976651212170485477230396645058220766897230147201837432005043309056181066586048631304529851671884262776286067279492252162297111448855753858292754993711542309781206663529158272083541877053351722878668284328786595365410636582902350940328698328514061358250188432416162805457911853338204963412852046215400311930666876563127358049579948302654948193101478428562168666981180410756790437270419860309575835361770722537353049424150523181732111386019292365126792994010831250612574760785063753413765176384664351114395671721941777059616481149702536413928436511358382460444813786912131471742386705223791216723025178685241338709475939464442060076062840760533533392101269308104179661919062422603710534728496627153741518569985376254782129670410322221555606450892293218178812321506070201694007517125018625656534428860645597437274495413627909781650939145441896070372269890574733942595346950026700639931388184359221587639104187452464218819951415229468970159205778990979182397482401756003018781375121426384412380479738750624584300455282174894415922461366150250239451416329859899465473671965029120282719232665608425756455348039829529160796159488011326755541406079697453634300643134788850783479866057915726892814026244754611439428578373640888627807987745624130573307547117582524458441470278129537590081424167757355577669821931867364673858881510336977885380687893598600995907858394014589610362128820208470346013216052448834452438006738417839001868431393864432163836647256874977513107345816872687721158417452581936908309598913821213839782349336790442461480023003026671769248923954915987111333780691515229695352496153561475248790211762561401098640208065766240984887386521203338203355873916106195296533363835191128366267130864821728567747721710583340151832362868467519338697322074677209174439190400129750274910149627660159261482309674574665048851367992816186138593878196171701236115654524394541334681327556817274818030651655622848264386052139384754328089613314916527703556695163848198186750931421374649123134048329553897588999663544991171623123960105528878776424958317291268569474595775408709924671390652648102058175196462896290484843781420844102477469137953766888528414511321364360051176569833853052380433263143094318064040725765870063211542650367331847414676380757356072730238071481150607430935238671986869103537882985484377612077178076699718165220067603834208513281928867631674604230721954298799329938196065196870846484455126295672646831567656639814232277624888964340327661281505910824104276499030783624442705929495243968369068063564585772960990888585612547128546435548701027308602379508181865473474263423004645690121430311244485848907589786539059259130985276397688219215204765308079729169449684013020724747699054566093535294357038110935743546086936158387927262840668218328379754545839118317602861672249003959934966475811378285221436156998614409340475874710465353669599510421794929895154843854940904352903260488195891346844687744272830256143917286234877633769641420454454391137913686203390576689537124873564323210712158985872233076787707873610796467491330769579838561629309591547405591446086024780989235676493845409638322102065305130698731606075693177973502639084934593779515160611731328324126279374827293596588070968817828440446298979981232860103541697401484150514551603663554891819872586402771845530905699639838186349067028572265010529963329517989057504605385172222453481264289903987946977332052726468880560919582969548237852700895234310546465228439257988299411162564921808442771195246815983748442294318097911658088238459250624031318347638961965920829123601722218064778216381100294450832441052268402361894730778640155335872008327733616166533680501278108013801932403257797265234555107175214378468496103946998935639969415611441324318041104887067134163676299638622411137355564494078670600530274853612697903291457516242442662417571374077546985130238377802864312286127718645795965343583625514959880710510542818694078392410383567097594030362468509700267968443102294512152111113953038233231972803619408151349557826480526186508734749638561928149230758233623517141381853254814379265415891967677778239165267030948496710174504580841076010424386586140506320731125962646502083959380476742511130285501715996745734929936397006241814408423638244796157458720245372874088635416477090853427343839664680047378919823096875892507839792373118603379310167545887613161550028802904799153690035638744531359624098472905410169085657456281336395391704891669477743492725184319804043297240568197705673698173870373079778992448844680602485259258037253825768506576580045992371740692642635847817859681289899714642619489119157600634045166675728281179275553524680122933554551832876093736686732728407548734750393724834251369873016251846936117341717793399811847990945915556273007024557986194527999994102029358073000129918067990782913220281938071753924956142469397258110394230993932030828732515737241154865741437415662232866131487827353230752836364883047788275349409490846707484252662974934472185256130361760344775539690414655039842555369351371067643313517131988614199629134787148708650846061296358414712147374745966670490058383833799613687971970113828261977998587957440199304012717451223931795476676573661190236640432703532107576524373579520054021071964143736098294614988969025990698242191012863754558050266765018505079239397922287602090112330762009028449531107164331089769125240142164426405818776084362254347860502088756593570186462008132723223433628507797478895284609220338343631033168606945499128045234294626463018083429498103254549848778592254699317072415721199910096618850615370813517903623508954027068024504822566266998995289510885221264083786819150775927551584351904946001541884455790050956136558792223959294905587544217329740209555103351001297270688104245304128696996410178509137931263224848648367740957499329260226085293015752657531478995405217882060850224113454955567731939974787386459208561502868731443579158732086990989055931935463100248353980182010397369476129586904055100644851175719900402258569822134781326747638676954326152272597659546873447031118082268672534308000185800727692355218642042150281570852644469176194118968154365165508270376913359025272625216873458191222666921602676960741958306384946121616997992412069936772095235459470860943283166990641576437021908480234212940599517611903105724125223780660227815029138725990225518860735036153361060672289509896617874876313549960502928004802341922579524670157887370051891939257299504297069406291378395542539144072836214600882147627594056785288969587624472376272666998160971973093234051401326129199915228612806796526703904203052970187213075160777833653742859188379603361596569847747810223937398935679593938756155483886246235599303555881594454324120909621722878927210175367243795089314886879839235208183061875966401025934703399526027884368583778739967924533393717136463501493287968056732801139105764239975085792771174104771681565097172723196906518117910680676649688211365429154571224162639402415143236346337830883486873843629402251990889056739642781611823598074314254628039282857034289444828012853094307901154496238937831530730082136983705064731905779755637748770938030492180127982478015944886321172624527838343656244599067383680105134819858882261229491027816821604220295396284106889219213502943657208502641632255985024768726960459116899244513556558714903466625228276204459422987568461203473254507263378216524630806745252914410389255134491947805875414624996380394646799640512447677640240074628434704887131559109346588833913297235976846896896334537699126350854388427123106368313629702731970703228175780557708768666351273968180956612849049282015417738089446549927528140712753275160981686986630936929683179725023596299785553401098759947940529341366711095894168128893250649254088877842192730081685417782797181020019929529890559799925280857637521767586185112933385590316624906866360302098655479123183647915113608810791692982474709924738995695031492611038722739510754349115834205189633480207816514170588965131879521083207211855607214126452145434720131731475177832030169369892934376696959752271823221432300824078091273683414143874037877527183645247609818551630816133433951208955762410565237553940363136112381877408146664437987958689961982683080166135485067094328230411432865116017414457672995337570338199188036440291912000112836799148385405644039737262108778869848576173443452187114164778855264388379321836763106372292752586099177717864042108270984620660433824534087518478389097244641035239585820399540420318915821845737700637317990217967991356808709702091568313690758390192029561400623449742241823054331781048921341372371263410508016430188574938166912824349207807967664954686793115804848749425958230938991416251543666633392588069794557104599477759151904509710089286817567751570828617154714911672827196839473777934454008407565790273114135967191958912502634175826090477510564910751085504085669755647727499975286507455110768739461163079709071560845435757178588640138642938266780541029198871873074492717653350871399729222256670420306488161254719293461578918640041459747962302477865906139349108126042003121605239919522866395073558039505554903738391013334377494384007680705437795732468568939054755177730712994624596644760438483643541367932597896664239304223955186279825398006748683915937199009943881349617481696224883426998475171983913014351420430882653302539149341852714062755742632183870010847794402287278601933885219386101512830034843631358905081753679686514084709886107326593284123670366073800147502109280373618623114830865163817048516203461278705272983848498638056014954232876577994290962134809105937786131985279445238505558188833199456597418014221829941716286093819420685236804065060219963564932268616257253422778945691881804337839845452163109062139554942991442578963931249988975702951783109276861529569838456542619940217083885759060122999972143247446849187599209237401119732112639801877473575628822180648678900034005764384255616532742050863941212631878625356784091827872357109058769463824381460185809139378341946261618754252049279459910723870840233613685765689305082276261288421399688964372390195801605335743030521244144730663620186293681510068921506542759516429544612044439157082705285941342700681491399168508705701153998401557738582216586365511897378885668809210014846256384760099063461553191498939819266469547859073153793230922027466337128499916306442485599789266372894341881837110132598847979044381207073459407730368486517079184715680619928865644339713200539339644316490453579890394050343368816894243377755426375043974949034185497046665544116234184895810526174177242451468192131026427009302301895537984353752229544223103172764915002997837370842126004311079199477062015959810172134409542209388179844155644887021892017292590210164956109113858677229070078226771540432962565641632183858033672135573293297240830815753210073554604112235445274340377844844141784970525072889888498570026637632942706706515366858299890015875549021453892414977883551076363569998081053809013154216389829697200586403596971356796629872228977488044836361142465724101690113248413346970774419000302423226787909425119517977048403098575376105305630983974581216832741245841321328485476625636444471796661317509259186639166190062674472095975089448842545373481610427953595521641808158110364222881910131802601763030556327684099709592245214870407558892937484615264469630076480437522335564903035695624787939848156398859374128722738949880835103012670801724691581332806108037861238976666219870467108458573089029811823967131287483285379214863025978481261050366072097218951355744873719786813116812115208045502369485976725200022730726785701437100137179431011953025212287249919675688277022333790323898154344428898610796340081752571782206544980970262079317429815700240539032104536394113927802453259890481667371092757863440612431390340778135574885581982929267264465993457548951843329375934336650227803580764629118372944668236802491096283400373459728486235280109280611595208405896379022957634610352439911757607584139996419283877809769535576679233795656932989944872471902022104639146103990277444500115851949354861479402014402304232057575537874149387085978818841062206912406985622635817577256091266631348633319343799295481093664672877544873608043421944975821795057730304498397781842536346992062881423024618168308247203754157658269478128473145603639145145638300442145337988246785355189902035198111946508570875317685257446237968613786088539455323433699809835133030458072735545069733432792339620666668633532372671356147147983733640451123420627663279133808310779573402958549273302165425464188237582263724461190871832699933546110051898204179718669333839045671389758983633361226262431025872140793015199015301968266813844280270081347031117664646512756119666913350671533374508363619290060524613172281867808409643237357956647780477592934369994534400927431866804859954697654031344631110473411535154580004414127162515137093254577869612145655853687825139320738549032962723680633802484753471482673229478352350719416586840611133341388953092582503702154438381477651183055883271653128477408300725954114315829938983124889358397847802184447688100543795977679172093608089951652940957594775635233543287509245321449267057341762017729665643362131831349529824869891236030526701561644685008793237635536600000484388930477683256838735870685283076282384215291633176923467369185467026073264157109759799966598494955190041110929978815692068949312580169501352715490734988946416427139997279373040790722348657985484777811270764408911235041093075644334175613237747402736874161157856246752654198308799204565580319053266573642504779711692145227045730828882152830091210341080069289611081410513208054445705355205406283856120172721707568366504850502498834515518420090911606708773921577969027828248690696599622462952811228367068300454231815769343092515554476788847757868254759422515653888356323448129624969727633149559964196788882443228039542076850156729412427036835415119608340079992736318326021040103442494322598516714815762101402855719570573277876559273335326770976669558278371315356339372369223459818346431647530311941202885277712202493933035116354506108666596365700126457051330871234527940628258061606356906520556204037358537643096014719180169675378155446619444930599106149714322286597138740826248549378118290889757962300679400849814930532012466059877255374095572646150729774200270893126455633141801086196585152911790403550648970816201814059557929518323831991056817989896597976887504415959935402140596589279471376896634695007390256207905998810064605015197868234846491188696359235267388135299895140130533270786679481988241736335827486952574906451597936644107820408697136107525664387111828713313781186628394331980672869427556569795855500220568139600044190909818357081952413406893971912784566722863056122525039815595263679133204192923191395977558876990355832155711893919359858845179860827459876696838378357265234929248826610766457601004959119903809343449616646939519813738721952910371326861098952642901343051264935792664874830848256745092722367886475951994277412591489191713409924856677641149745578800634088903520564302525079270737497157183226466205037515207505416091160683774646122923961374034172456727637249277814183986228763873212867991723688599512577803688287621721598098895965690619949751144713441826555123641449092691146797936226117076783640346232105879161420248074130425009698096348009732415898254746488310495626369179447140229491510308025190458761595908921628421445208736769777072327404785376882813079296751250891669377907223014463259401165793766375002694322558391581864392888122452682745169348720108037783816460141734373511922134503647650552203483236700052102122735809583300370074405011057431953107605250103427656899259237620060564567173531750861667001083209602683338045104192485696422614234881623345125160860887905089319986893149819467285313094054929453658122213126509247632750712587443219967511799068934607480649509277628462744693228997478480205002502358149761148931284573563307444708876098592115669847106143610480145927166842974652499753209386116364521306383080464077957956779417482352173641868564071763917860515747895774966057034526855718675863507625340016382993627157930982384282855726845192569088167343479068275345718109460178387207560784147683629666665789905321590980083957569120193622926346688623944571604785801509628695070729072334832264520247196423068846472431372069732881751387786338444315834055031224777600936439930854691093328504849770685489247104975146197966776058215019007078480816764370144881593118773938470741875841300020151779572371498452013577169651135848223522415189986225639646435465721631864688230673660374519715984312904354233407762987213474968420054201896345969041115516679220255637550706496000865382709869892732051801056914889279090269207444890519118002130596826938056880916866630301731762583715080322695097674262571506537318064182356722766495735101568817270862289079481673794046986823280960380746260048962100835074176723028849037858163221063373319704532070746040274280502839626737053595250859823301502308137129461832997953688676907978406421271588790430356907359053090813408594927389053987939727080763803927175359911368917681104552626592129961856335290140089221202150340631782252144494466760179878592777037820094820970272153954863512674643064872193804916861176302088086056441789139146495098241737351239588772755074989115693290444018168973111127491370510338567038144951294313674692331043491988939087311295444763001950545510011666334816630575292286563081913847415171448742151537208158315531150546206633977084437936181935897153028918972755295206084271705589462080472308416261992324267075936896726387886224969270335115610988206989269257968359376085532433318472969802822939696759883655387941538058086178397450983965699644606253117721582543334888527543286419676594814477856270901232254695148847887737199724663309702758898732138489244170254529217019416724465094223497085472817176483500782352361917366353411962441491124587388819128625776276463535850416324626594236018402277296010115300188082938841387966451805453928196293266810969358608695602669503092621662815126140909590101758831050346174302018104378283990804737343554991413077641984736507038972471448653518482300665835733373899460258553173020769376892156842359582914039898687281247888605470016904778528921051644046291827304336672182541800172179565299859732597225549629860557815431002186518136618193724107551306205447246305144264785273649358403340672472254807830224600732120168273598816353501435851683145533172754279722893954105490198785204303308859970189942445877832236791556421279627061016731950892341554429752643978630213830783764898578614839304046056469378868573717798370744636125617959380534542176072593673487375813406807644532978515191690612463511381434426630022945589700287404279628736052484494666516809211176494427176758984341182250868530579841633275354550690962453300286847679775043302128081108280474958240374465451975319613959304149614443078448491028909682655616028344512288775550251532212437042522940221521949852456588087715144170411155422466508300535623111383322383582364908931319578150311428800772621924376168367774254775376935306615884534559646296421416493199853654624846400919888309819086422095652486833854836124961935298918443681799272533099444048285156168846344803370298679970794001898897451098179194238452275147086390851829232807174478898670147822727142998070547958723740529366132367315329968818133267847590786134739320813123489575043434348085156803561401442661681628330332867826001882189912135962276733789509800211450391463675246850629737267469438911088134418463332208250851931407466742853489996465973699949615926706158908890795730071461182594044001669776608993340762028315759559097680029391239732930334132905169786116306243967659165292385517556883792339446670219252515339363794390621921670252496988039067963828032992383925079923206131236821832398916712166927683623382481731205797262575769668175244974391554468058412702939717009095858312887381264442898213247472884164397310538522785356011117711844053357121315833126748868775707213038328684886752884887965819338787198689616258138261093949202169007978296371537995062433056719705357173278820951768895932408391943318711322678003241994192008864535077901818057884793044777659003395922958856265129283114270498511118249254653559518031993292234998476092219791178689783102311788859435317354786526196603695744463933885176210234416302801634659439982329774844089507362479543368379389434938857436655373401766228458418729473879377716164547276607555478297569739420173981891718693373709355565736739282558636300747427591800969222008474284947373453946284564111494128025479076268811439461534065366204520281561531581368657244732827714843426330011340439974902774359211982504130952373045431029281398858187404607933198925919328759123702484831266445790248064798086242294605522380949084107714357627120700964907061251277190822685127267976918223338386992833583974382548560728724118517761425926402885724028010824995288841134436414804127931348623854993283857660797833687574940703455173507047555507949519404433510152989010167396467763301205999866340267548263189213256469161900170069863504039968567406176185253513663093794630242886105277178977186837344315621924664718196018976696380878702804465994511985616814371959748177102902935995104510053919818773724818868888156493350976256593538163363608839149429573810975533774126425807913863884154686389352772270857068671083558020219016232089649562062442623390201429457400216535869476368731447226914120366176057901321605000527229810825738654264673334547863782453113797263752963065351559387500758179997641409475828064967043379692272708745376039973548623774421012277340035093905413793894512242483681844424255946273273364552769724107182235144834580549156875659570453560777787369014163980410725855647479933690900158104030749305411294936453574079736889443301713079235836467978191557819571935117262888078397033822321489831137455900589064197697833979244425130003277288567206736550195766646462705038805061063930113512129349218284567455478497550581205646311205141729783134667812955310066015148941336130612609787502268523457526113646581035533796683893372968523227558286271914815418388035683629963869459668171336754390880035458711397206079457696005939161197024478311269819320974424148370325294113439283680826593692415221764841424631936760762357288209289752217992111192229028530483979754013796421627182859575117237507382482038833088753720845865834956837614191994494272735884780838214043894890743436925004335013193351509055215528723431515517781360504235444570165434384660947238983027082236530859618955816025343189330305191327838112959800171944925130300851065269116559917116710456868158738601894214071766372442371861411657081971689839954239493101662270983242096047072484785072112911422685624078434321424334719131576657731733801313718326752478122479552420185458306286944911009608732028528429430065579106335018985850107937517201193275829828722593080121139647947862886100965880839195063440301573190304866426227607255569587831746409556154191022438573111460833868995771546894150390915026722563826447044746212451839954460059063275305917992799347985805701688510477587998718318585350979987323257821606129115792644360976260172759680225825688715888152574670775026705833557766832893817324560522426967349558015215560444547292730832895283398319447612960970406115242389476992814020641868143236370510904930394982139913709579224978908755945917510349085587532208920926925726110657659144676970197097947514304867674050483812026593535407553031426633486021332246744193587951812967380599782852933485776186596359100588002413522542873360488419864022190172069070991137665265298423827869804126045622154853607250110721276254218329679460734969603642951456173204464218023073950751763413727569441082830469247388696968357632260681919605691622265506748791524274860744678457954206075285144597013680075141762704665328087203749589888239018256171588530702422336309466676652973336163598915874594576640235214960787573744854980607752052783972560011089948556514320498731274216726261405519250565183823251334173926527454980206649022578519140195995287719275912126493245215681138189870369645710349163182542702880768331761301790793517235706263633984678904874386776979754780899815475912494018600088523840587107464642290648701590620574195669320912036214885919802341857079216823676063008658438325774867040060896125138611581842988972041433022254395686377711847404113059353434010961061827630871890446327880851547545569389994328590064171920271731588543155718900140983901865489448734089761679787425168825675714987431700617875003885155911096835040328545834966824179976379874748299742893694054380230213852206552790262420801902557854605855231252943408488326536771359545479026548065255092779681232909324823806136379510312236262981142341346557510392506875586974634397086379205296438362435428158185179860957903996399192070011935564921360783019772736945374545387131158627067579455838640038235833616581057811245684145355196183864018880968268022863313624527691439306132587239774984342819022983892567111525051143349977546707436679296651579916855919681878958124773143019669308817047561246516970821145003505719849030257235267915837821565925974944199526834102498583933928147458180690707962975782631190896178495996871788401341985513535165495928318681404670532155726041392718884387515074438206126145751029295630948976810049582164000066301453498834092351426420196335238757576796252904675034163393771410051724368428665758968302733052894900281005596195225466121493885511656833465088585674898319509729309407517569978617471298038716606248322841583915629617454017033010615147624996518912664692498852068015659013219854460501353234875083218170804650283017268576053496147022038023502139496932645085497158477029975414313644925220206625524972777831888745675725838827809492408640737085502195224968910995830714301913750085615498053498711783034642097394951231572008839824930513454041217685610941706457201542703478067715080003944316201366466042596020258786060931851532530390653491447554775178218506361936258470525646167507065195084381272604947782541673776728484763192567485919214712997148338100577632908235496765236716412109027983690339847566082261518410575208304593771492759209690770077205390019443516002622920803971186000306716725666934897906395750302510150555555040687727399945559959037508966688913818970664788295450913853613954850782947231958694582424082190789864570403815078713937217308347108047432929170469976178534418462276014537267214949537168386535396719579969844310880586686515374720526989282811880116327276081887778257600449740529007671697552293592525371115562848607867196376748560877576077916875874207334246682573484951162597696637614878880278425062356599217372774022730592328961150857991632167687608789509090023765817699704999333164396847172728363398879332402249313725301506184957703556484391816008203748484113699385901196827682441853463979386049292248565225111024395758384195191522234510306049202366053555725840016031824792404471917649460845403444809526786288027939412179267632752225347844669331369660551815136144305127094489244653674302464026633252434680838305000405325565546390462243565976757386721845501813472092993874339459246186275959004594773118432766147192345941495832424304361670869032869116442088432296762407399780994379123593278021505846165436959551863752898855006970477381203819156517261397785844963999753839499315065965150281169904384697146630153157662192431124289235280515200676482568536247336889054977703780760698063673685644250134966576873328096705002814783036152286095573247087196107402581305818111081381257573720923798601228400631991053000107907726715452067275953784087952976073387765249027198692219059917927932994223492580534293683772462081925402274043657446436595557994404657471153651727649034276719491993702211926906442702073019821141000219515581803375027206797465256183711568060960363577305160908918752557562284335100096048857417073539584917150957753207179838455565533774364902396273915747946824598823625158509695527460985920629806476233587956046283212704867857926134204872243876002758995509210971838364360023559791173636528877223267087438331311560464574143250298788730497248677724745234217370663457849802457471970826417355526950768249023222046666768550414714270941414903187983728702502183588663476932618751895924066083187573346959192727224803653854619479305421327395525589975259910591893335280338908726799390208077976105243694642970463918243504601579671481761253179740839237598703453794453972082625071393186203140600894813485351610146598374001067337487000131540853578249444085036130697491735516353772382197522542704188659391724644839893008288515150832593429444721419782082476722937910246774129586929641969377512236008336323759785216015696566196659997066317681514389992387355137199004852230808139283129201618086437961104613833499416185539494092883130795997667741393378378147616795068708781805550723811489026121998798975802814021042453369858611198564303407194592780119411197352824507743623889038617853866558276195277162360365119484193913038082274130659177644009694612038856891996215094953859778843983541594339325764273979029377875400419642032747705881061437105471980226541157008395649891424882711801428948898913928774162207899894173158937244293549116866272769288790806040560783787347995333684591171365840924933730837067692064380598438680212529662352248000094328214903673450849595007252775772990177931429492841145800258549412927572733324099125635217117930353036360082057544464910941330471050273526076389724643838347480694343887527425118792303195115632550835719668470296168845806719977106921443037629534271201806416523698282924359515289727376768833902281453095561232550912049584191730184713372626160121309088449218284681087591100758552432254578305253668010068945239651606100371138457829562464685296709184921056116742745980202294352357997432891642620068740378753363979352551932464136203341151461721639733469585113918148268470798961476128267521337439257482702410039806585368002612955678731722867088752689786286374449051817106629801872871841990003146819595617549845951592713686370535191352230415634805632186925858354734220242897046343123803226503431552594486946679759617553779363744839148321672227601511964261564197031441712671104453105642572956689778421929032522289423690253189047440371269105884229031516689364095890564656658801770108888656445613205358142529286587231557968331034628117407816809583880911454378833656585879567007095866438103898231345919994776723957498647803105134822337094224227904400724833193340541596276822061271337747985726557016607688341721904515570340409744401395958298576298505213510686804188231491839440981943176194188814217350247557655819491214601629997813135644540667903943717769580624502198365899310834903489733612588921899082240665278450644130281779176153601521333132779450868868532101224512119249621401940428088177644358395965723899752791959396340105633109568744002288036266358258996056310708899214003062408825949781973170318684805463942196056929245246165891111080683642567789007627047677189315987891971137772220926358351170464557657355236472865533633253627084004400639094436678874950468121376713230610155334171214914781866305381294761585637678198034732519706814730300064853361267772423560227222825886616206547548670655499957454623280593503388895552216115166404623779616125207347634924500241986066435274813916776063028492861296437197216953893126212446478831616770083213689301502967538936203737953341103464040332462022452873388581382373959037332304854946290851009213563912723625833904158162447396520981677904040965424341366269499391791707728656677521334579559931284900759764349049673512800237952820670625880121171347229950560684002572092632156510447906547812765101012672156867398915251115414005362482775607896983659497982416516272964093574848276118083478434616957514270262878717168678266517547656119666347824144223293084532960110838889170505950782833567775037679493271576368113800352000894913194851893904212714429919835102161648494673552118644874220912246684374901819898970906713709132092532262901781697696757502392954629676765659203545674370582368276083537461155516678981918146902249722144070147712743963520616210648643568502576425683973523006018089146760197911104833603983097182681630798306423377656387697681166051193877754338642296731295923858266742832712319636279326509354459072485483407148233550443192402071413435349923245795927541840086663230540848936242052495545557724847606644427773536143339137959825847240719647981355264828337780671929565674050115950856428645863570702302781469913560177402267250173992715178440294576681657417660643459955795817760457505871939416372013197457137492033554662105734876314093603356957431313010303557852382890814475209147827514934726056825567784217830639840655617857245291968362544454883354954917328745537066920611406552759625794945815636679626254890872067294051010891999337737342344279353859174644870493528598279496872026595524309057138110306113876231420929393672498688416461209729742553126653711004228435136047793762940715149705687651443153187267311508821686843749976175838921175035601467866130683020547683779211840203560524639375560372267268308013833864475092576955862852443688376444016968558203513894378689816473232593884780145430011818586628353188356770302071257631352000238950578502814010579023705479541764071606942005027497459205797723148825365500460852254434803944110858612786063614485837229839072097627924869341737982976414239502109002702513907789936224604141030949445981373886699547601862339027495186729053463879273644577507434600380090237163099493939799905796403791056928599922265867506412249400370572777758417181610041979464218691188876279270423300724507244936756485610572223481646140660397891541688373524774155893797359704512565120401038012574505207804979694463866656523279222684359305854725242645311828076534161125164189775255172186433096358997088274269066729556985378228756084627775761272124527262033312870823377000145078799420292975537731013430892841930997154402877549150045585039403408132120814092570278864956237443390224019922257515241046082171388161693565713044360051872215552184246024166396574980788492338177783258260830143993598419418468230809697736312707084198745385994357768102206468814666228810168653997287689703041346251178763638375569688972030354331543262581258039248251877432770186577799706402966478356783776397579064952506632114049314225183900984712072532075641610701476660060563217699596822810644311774155773958971596895267135154573262751230676533673474044924547329967596268083750449978541207234663380648886115995556563441590257396211727162461095059901769965647011189298652273821831328377102073769752024203082103780348606458200247420157171481224253480725984024864024544340804167561229826081913200168039120376896577053551710911385779475013535366189970869325642274542704918064081881043137982133269369716308975931321403475282561200664510454177202226475064362562597872698867359531875339756602449514203438092581998094428454085087689814813303199328471528055441715597932247508739595171020483998679293926938090245246812489421389520342247065918335993318171287889710735502430319513990420837741246362227717524571041613331167829241460362447658582649757417326530905626725947803555550000017690074345451996307015559295447823136862752371812512393020685936356959206886038909162366812163958287219371165290553494540323473450799377256545326335276514865255707972097429144494907854566039420649879472164074709515394276010322247625027840510884888535901075871293397982130331330801540474341177543138209716061240016500548213943360549977349857496466697934705891218769831224503233839794446280679224285582088838374923400044086903277750295108535365869859029058092062242033712291899154234809350576589060281945742432072072942166542540429591793906537927643894965005688093851496958441709425749313331526632246783514548383594633561451517824332777170518729220854560971553988951226434781298845894871055811787805229787183945892594919418080582261631674648960905979638002834587978844498431176728699913563063731239046605342011022191977710498250089797019677999766553544749586596904233821884667624815402104350156955944207647549565831421175761159166670853737834939376652393665578960256117278939204186517760217191790090670325433239153975836609730204601975994351517319185300464569945021454622909852361435404296676535883253613240849844014389466946111033131053517321484650925778717394387548341924627800465992493487668218190332565200251716185392584952694549563217630215736616617679379628782694609533848126878700048472772183250530812489310376019091925564909144852593793418146710379264437848119261160710225077037677861546891928492850899827832059227150405726123601014751844772480715891423477965293980275893639523758858531758949353560176000075977028730162634421424187987893368315716621591346322258459692217903072286334980205165599103792771184674167577290929632849600357314282309570158250137235968729332816601164554029196835977226931012571460643358112660895324839480808972026474549972371795189076007010353743863616119563310580775005093958250387364905611183001561865648281267487282967966184834610688399556325880008946046266788118108602014649549007418715154571263081015697865443854892463088871640454978212332892912677028409709233606951289203229957620231909864455929465478968582204600900791055300922654514696206290594812366468671179243092832557744866249210906618157218142045907787355815591733701117955249600160039836209316599275582394156338874159608943713311241808198177541695279025742828402496677133115210299093333711229002518531133216955097408754320643496747534966066698283028041512350846675473918789454372311932971551777765158518919917910446727912276927653432744105046851329066241947846702048272236511423218357436982855997357097721685261218315565474453209168376454324515168014859508508003633515564402234292603124492618559730712058578868680613152784214907915715912346375364115986036890491370194202923442250403209361974960207896848232044316088474659237479294454966523789195055647234688450306986706722915943659156595345481151561577596445472113554810644074305292518561504339240313839464643540240567819172453261903457839644468369525758558296115581481194608166267946011870505645022394952808062623205617208379415547763282547287583496696785439160372854702112776665430833309596216284163779844774254764906154124543724958823312567021383738011023758766648704359822793729970451221085300927830547459890676529174189254955549218300762631241727218260314181013488424839703550659886500560720838252534482889200122023745807801588030871538918563563891833584089009628952045787339809073698917208926408466543923320311359539638833569377307287879098892641208625457818709528348176102703762137291859940784433328489119969211051761966440794595679829974347624077808290638442713389524419863359595475443452013765797390312188326391759797166985005871476350710327764354049381813051689878828976788838573832211121958096179605078123450651701796264501670868109276337516866242926698033446570868924525479054551288877668762182775372517187944821723361047570744631186494793744826944909067010676735287462113577964228856265249661546880553896331445471409844448180505159243771635334978448412519914381227912648907878605900375898560476709096766159609456710847359730842715186091721673776140004333820479828073298586433739898543737696219316403537302944883068746028303721093863561402543364928352110136559674343864204712431283157087497001624922523909082624848580657722856238797521184173931201303784040925129769290764403739853538643973252109200057068017137131619916751576156503336199010750700907253133509595751606839995119845544628348901157745760152640365617650763690203701854596973400220693402503814006326661768585213649456481275005174475607857187716542530945818750046638339920358102090841920860655339905846254858176639525356465081000732307721170046688562319750243599650625544300995799095814991779550184713882697835239684222769042788208560280177767563306059087768083182300441558837247168188814255837681429584570954405559215685330076362241158644820660097325537067617449816142455519330739241814693824641092013884808606324921107387857073069606057845761923470028197700860643823510267659921301483885836607107545700653432609397784549154902659217604488649428523959821502030654533118313137798954908316372032387228754154991000247595120653435636139931855203629823254646451101323436173517362266351316317619903305289729184665388416017169612072083749305880778547599898881681578274478680075228528881922589707768637902651872398885073338817800962688146765310910027335302309948852452911405540862441036104367825767179120599031771713525170597717794294848554390326764257955157184778862031336940319041203391410043140585645122738392175160332466580933037435537076527996632278286133054345335365671928411408433412223936224379659822568914876387021727384015883687865252004621925661037719139069868348978502492722318345733100931554583422082550590984726542269239541857486804428896773838752890173493766671718593064113179779930596730446604506846483629313365591964388030447853129339088310382970149214243017358587878614752095507180469907093432989940316210650515545255678030070000843586695024847122349646569849807310625294485088256798443917590122262360376130359091956013879973356200138367470037561262179579605380645131367152882204432294526479092068102260973255780223763654927019884172080984788510970607588879274415886233840427872943833743258017935879036586181290403037462719759518086231644499793196988217020081945423328560218298164582886156130244468568884772318258457198071539734984146507982297839715971625308381689168665254425016403294006798584479442363782550321550489914456245126951539709677485286385033075033205038016783761897404167055016205743832689863059634905686988721174464025958185493375341201751345983599709313952871683526054771053870564141833544681288108994897406980375679466434198761744614920909280865452826090489844850235113793808337448785013171878427679349874861066026091815962536966149958488029457185578001494341618820993695812502467276910247360017687874184617113487426561648273862934116030366972577459636948675893662383441573201671210596276102836079154992521428737045578042739672616512594439268209273664973763149683927435649910830912035006987580227712226717003038740651396782220167461105845857833519030348225333319005881114533638053701694679707027837714191724831313323417434949089275933570783239460563346383416733387442153363125241876033494506528678890846132289492637827305350580945029257237554715359326875706488485727825782473344737470044644954879995368567332727571819010963085898517163066023176862622248597251289162903110877507428044912727365777698870051164698435936280541747822673565443635720938090046279851921029988576567058472576505400775941025127837936351603674899414722438521351255519150004017759841274539100642061274945757831974686459753567202034723656634338310184946620599252908530593507064152214903903123755375577885445063952031398243565462978595228879200983309676474942173934083440674038277412748180344428026386064593106432336517045116825242417883260130435354187558393146788068429734636050401968148412981515358871200144315422641407843578442054580229201686637266372252733701434521689292576536792503349834743152513469909771648012059913554861814048742628090875232896702553217447647958190273297207246703061976935313737111852214879055614162260096670128988976654419976517300961517113676961453317506942365977121474804988218387107375470907488680680145622828240906469368281496895312302971083295948194724595255866366071094362956101761139258097239764007690694561965171704585083782871443931091981662798146712526094230446877197755288744821981323956152112200375323397691658138795546833610732357091210170364646966657660294850447158001870438916111047363375542239741096484139869379953252983153931865232910395809870162615431607939175514537756939718258268700325425678402007448481997447828087558267171490820214680274793917323761222354845911932507690924387245339223024585097168671721063554433807079517727777567222736706835502409468309438002921403320563905366223988817331111063689531382578324376504976037783086211416324435357252744901202041449196498065569447921016100864699594307918074604451357853725742937112172751711793811116172816221260126737089597444756163711053137855705738714235688102219536381654150319890364783921711473085111872491714197490758843939267529767020209411039411932197547847518717632242149618552090676469057003112723917723186260771406937526978563127201150163778127028046428419153826262748274270527183887495267666622117758146405371478336495010678674152376689634209972870445255281668240476567117172307221815126412900099758353724147420391731309915412888889555226681162768223386384417554547942972854935476841299396167164199197126256040572483661238037200492537894544438337519565898367125170265204780558244343753467756045000946496524575875085530192785818005343456948874714985300945553035215217050299730957205580872477557020119536542304086595191332476407059818585362608609247297340161642352027981053726409213293819870825860052914249638399973424361226275696960050662642322726061878136948964707283623402925634600679882852902317003335514067691056975130504203862454226108828158557768924653228793246799207807048838951462129868512692404415826450986088753626791303195092337669057544479042500867903202395053645437867178823403375145342495975388985485852451644638454668139898654337746986608580100725012176681784340892440313304132505132108394245182626239673230773809237889824614064819355093604465991119569011893484937334910629155546724774249538170604202408723189159281085774707287692769779379025786355493659382721760076540757634158871627618373691063991515237491855390688915761946781145460334286855593063615649671183243721261010779592950613597926254744417031546824042048258694321894842838311688876585001466977925900739767422488084001257911090967347726946016647777351938177699772969367767263897588611711677406916946783857145357407330260040984787656391416133052205151011672744156996484725430660231752063786972893560955787493256784093314321388283476769912490217254310174177172637108100235403804201258052114059060380287057786735003554811315914971570453843199808419127406226447482114136399047039171011200461433041632384918679413493348135492388330715954407721316264608391854448995411536403678564544473720579151540486789102334423116176718003649333496210964942479254248951194930501580537864477144847965102784872332218205891541003473673927643735888940767566865085905642101658764305575938381449188710296448575593484185649945679496748871958723250166349934629349149591638379940527378916407199183112926675564890038043453094205768694477646756578218657674803574711649225718000140375161755057344483267142914779851440273738438840443844142164481377864470819342828214890519369345893751410720512657610994159082850820836073305521166452391266805863445521651750631871735421310219223111955250128979727670669997264995246844989686980160611702541200577393709420219712540046925520934852620251088666332173725594235815803519661759414011192817718443327794551593407837421944043188847022593849519651272239521614449739435896628523223310987730074201731163883963402064671547520972195460237830837179102140890692377730357068050922223134284189304096434561359648191655142551851048015704574792300736173672667584093987516567026770433909497131997464358914618940645289367904903429257105475391193326272008124574113429243925520277693550469703023481198361754365205761842005289456396303831535451024003490299032809915646877743128061369540416591750384429095760586822196151130417506949089264510486992508412708793740750863947416009150670856970680872048710454881372224792593990983570814254599799505860942231861185575985832449527700788544001349229720609109840052194396335932409865051498064638356630387177767285039289629183718242542517315740800895961339352148668129217679049495791503786114113248876616203890386197250980976020293538703503404349273938444820127156484931554281881705219282699151677328850549975061057635190154618234547953655421560810715774132846927201784566172592021856508453998925471977983725865737267727936686360879245158559003128289546456399628770074254099154323501469621587156044083420839228888793664752304627238641898822701500850582752940815305387361217309023162348684393804590758660911170989235393101195711544234328253704766735439470679031183840104824794966293953404400291190779324731267785244527935003557782267801635503499477036920565330057033469795592731455653429111385312470244897154869989612236705117406655695541673249889775617983949330696997712531113548944010002794474841962077784962481643235447981612367316328850444704431400610288949288154386224197491586436205791247092739603670818759110295128093977064132036868640905674305234163989486754817251657416019239421981999570068993991608890437205694950763225931405248385709319346149478240584067420848277663300877614068309062209206105900725028096159731224858937632735391066667169718284744148864871277612729015392482987474363038394758101810922927158352103425307436696074411869938522388834774660101392069190479484757823835896138689914733942751816984348786234146441986706355757746987019172588529032283955226453063868719319544784064870914511271710825825773397282426812591654021258022917177619069221917842191550519953829025360313833544847800845531802290412361029147646638985399396781731037380239647693755498922616055569018414329506259843537893726378498821270702135702596777436808001060292606259886275626223364869743525106987392516151535018970293803374349221349577125174951158044891574414582044234148127266275238483419827769610698426578111974260424062446596187690463060794130030955391924769008905760044962134253611770494034957188572135076469090403105316759072536359384220498238935860192481395222439560153571112374127824109746307379340126015525217440370393540567750557517702221053993005464001616574508938549908790007978205919120180353741341075502316999468742175304933732959571322248361536777797798408712378241937396600595470284665206409554776272035290196928137932287604383715908925694402989756390576511023353689227333109245694189272269830394242453744005899224396930901005716104481686956661975466616285858258501935312031287540562996582207816233561401319615819404331635040224302997360111598853583884370074530019471498934845073690284370863955194161127456378115155429289184872618580887494840253444948947457062998349792851953842613627731549204251948085623244028962566886150357260698203670201838212492430162942129941044292406370042713169454153054807314287359486419505585500590786551564321192209618394233421982950021031557438582601228931183702903181753295431365514953135011027205287907060302050476119000865029241582701136199865615345395815386614624492085707502745548991780021853633556110328453425890257132231666114937238479708217602018577801411617763786450648725926191038342755212079689467459150980861780712102675139871916959201246141514587513945329645923587522130589738606529782771525766989803534659065291573501774521203217711619559698546312187868494048271906972544486869795456386436069778141636200784572728033657650752620203753060480483309704810186543936438020551965873418189020311131195004547260312545976126651248111824454682689579429554841177623856145674142369986121862104442356709398353050316659022680264589154874708128545571937772079740112792368743877791687803026115376589427496923081271963404094095976447231134805863273834377865792862490364277445852715184103804862101807259202713910246860868349058415419492885979398225075420720570842097859125416967584922956413742985592602468039221305676310733608020344502359824419711822718504238448716666804375513486155105732388974956175449071894697397228318830121372704703775141436930155964540537396212565301591155596247866394628342622691537862174544273868904825799352647955937722772617763974707044586719452536589706202372145621483242106023116559026330304305718544198552453489164308920912889729308396506182311774056456476511799758919670648842514812492665250216361105459921652993142156925461893741434382148904890472815063438937612332636886700021954915551802469051597932610842701390031006895713916048271894705729615773995397733334497843162193031295601843939617940538724972862304481543113336417541516784161248801428385271862717897497581487502420313921966435187838759039123480145974907740313828167608616956632225540531266435197025477632693067983667967540124470804525615532083670757866391790362042666993157508910595258070701475339229832361055831333079576648458438509817620464814634820433062609005910282818428490015608864555470130546603988596002224366507473629197290021299630581284373719015465892332530820618906700436589366699061720896442722051273457129310801432116091589142232411111551525905395379406279013421614687878636658773122802259417927277412797610213312443405113967782671494859049907477677902580308332996588082437721037369154232300057022073345001909410341327874695569752552097657157880675243399956377057752931308829931762094569149776733125185339112466759455124970227450678052030534443601921650210330413112033097927181738480552839686452482434196368327110427870595403106150355329348818985964970375561877557532856662007051491756541922474932427728713385061182615151298688233760345579114930612711780562762048804749684405531960233367061069909617099851891704634123937893121644290733543246483840540991968193740110373486219037103417376731879092468613563948961545941388499023817117676729835227521419168654952274212823251085628492014486146116361059437887075481079674866467372953207816283158845769842200010026094579062404823853124905152166114705315753971055052907282209503918696802319064129953774711432903129832193710853273196519950492805444538819239989637481446740762999704549714491121109818829522963915990648526066155533392552861520357487237122303948298295440824190944574701137625847615714653216388472792448513063244424729146801518424843542287410771326272992799822678588773918444460057158984689967516130523426838685809297843185213867523544537641867883061546125900287647577959726434649811610255321644938205533247359321791558758015255807179359045618760038846222136641352550925595950892698909297166703406678643930039510975445186937878965819785176828989768922552480238834488690235251985637055046464655494926612914529013295309394236272676145484426052908130626578538058176314685838463909714857204791928996693995373257171919071709531653546039554866767503525868037128987602398324647301986904243661707512953856591980889066697708250438814267442662983980286576743332036417083606083651606518715198570831990109902511548485981114943902577845005643195525974516360544911511960125665116982475762101780990742959354706788902168869621575713980192255384260895530075140584600864419840851058499952117632760558746415307526175730910563247568737704889615249093576232533670322868297166477134064346492795117737214024254153943092969328640781606300279908953631496881400343737802519183547164992459925896194913316638547680807828714691702000123487970983153461676263858999238116072612188050693883139786794044734718783227657346387235466269419194065697903312346417286558149948477111298827797670218281328005579584957699849029144673286575849690831198690354875404683830792256761787036682496423238657976739648357204080987104276524859052050124341612528162635067689897716469574744601933296069516435318774066170526142012808888358477624982004676723325207384620481530135644777162642552991326833813717680532886855992789141813747794542628769199414616380133526471105952096079385288392127496565817501066872134746129118432604058000293537038600024913854724797046907288974941257346144543767846138654081463230927273109714049173823411878956308690713355748637217021789777953704741072903277768213977527770871682169841078648983629975012400821263134405220807888189237747906508015874188668020871023300038168822352269263866290454949910785205833841965493783419381312152540237340906069539815718420693950094260300398999127549644147566515601257092903063215207218228345444173570142356531066719957496890207174279221818483283386960199257786600363032063303275090866869547243747510731905345930400753900686583205383460018152489164643190695487477338716143896420362689630703182098064645312782827133137652185081716904174090368138593983006507045778774947441900414266114250857366737076387169759469590790004011446892930555631366732095695538131289447046996555691105052759601068624399906747632600224988861995298872450927124310859102140080257492408217262938652646123103996855379518445913035274384118694354431866545057915637038200035688380574962067603424784231997091782164263270411607818543584306852884295108637134044671012880960480269909747556780185502908387116869783047215621620648029135136549776199862700500569673324351678171431020466557390897361418047096686521380546509368628696181168972947929683929949463614210367545379199342206617642655634805047485453216698160068850513206544839984329295360385894740563214293218595913048650610273578697715574690803578158282893634263271481346544820793209776098355951759327479403849853828224771120859229921510273472548764963395062040043897740950094253111961371727209687250965843238441761156591559355140621069306521140406557535741256875824487253352887186521109829850610097678870919593153064095752272472137435343034323911953570600988170404132710195237905544124416268612995773006006507444000111741477636883824730313120921188783191482762805535452756869784041246144886924676844863109826818624447130015383345001468404815513661615432895108661922888863011386203774286859097016821628866648150791950582307704004513108622210684154161775165206882674590417122311709596089603319398624114660743931155195935049417637034121561097069382328867052924967483487069981896748735003208444348014263229698422780170033695758319651020603584460776500612162859494685275638536484380636203581441449127304957848112806525016509684608776783565963509853474712652417313012707307546021257235414984938628684460340422618581244181927552583608062676528242580143020683122971186997877493265140821105528364270249653786716951037112425664829368410585654498111748363670741366801919268181865037774282450998419524703821266099490605648495046903141169261183414964716182354195718839181914287822296408719179996008441121336282408425326571448718535444260566641937124038850170691368607472419730829349993543489340619833168223934327216191770907721607123747745067096609616955877556370472389713987677034328753542162901894708047430937257035681209166085407791302606406952539182447242108539146858518390864640311739597919075217451669278655693354756240948954061745433786462833135098406508066319688294898918893130967189706828049793968265619125087794623147193292350606123317901329683467208804721003953579102035922341378508849866232882270420450700798490415218261410812613264815852097082915534066546575914739278076874924332865297640507577924875906057186329046598776548693031492059894221848770902071971931846711505924242975748019129245010208085556015167000815102240357625381718649203286265546558829149455127112123398104276514635907660857100511966729644364599167928501296408456456370241259181721623047186205144271155185381969138117143074732636536332444097794027348720254636803092326562637361650283451290356249520215129574726241139838512250772359583241298129372031928923485322023559444012095466653719828217318020415806681309104869601606479458201128802152822058727075087429364915872671637945407984953780457801392225948565571422327996075188963678189146956026117264267831869889948440271984438914701071898228707310026405797767511684076114142446247417798908838438490585235697626979388253433640640606101183312444512561002102309287818000314860072244034593808477196469217304509324658063388260965240956595816487381159977357251296746526132470615165325479217597738748397684786466496904704288776628705165903905572435307010077475658254864371007643821087549298969366284783066141941925217096607378873010093429436246916894071792554416500377461631731571391901391629345689317386063002284013895042130913226432373344244481569550776660941913984944796015329117758066692311490650838465163339667362638742521781699317133298053865872695602929592854166598370013079561001323240268683233990293817170601007343912369427053199524170555509967643552854846424352315791500207320879347675452646595856174990141292289702570969677669117809771965117416071565520175312378602168762349739616991305688843874194840942723700531592555237122518062901704179729301453728682735093826049936140753473444593338313538239176399350951162243551137817617430785629832659227765781231028486871482753323927461039877470491975579140373298254695403430803362201860946327348513965934531228263485669283981004666472052907036871942399484246864296496699348435759664513352913211193512504633794408331576658701023703315450165376857865192527649495325722429160280240039064562437168756748348481578501877407325019647348223264474718721277615671102617749850325175029306226551105671177595719207230706577739446304780925271255674866350578326337187928312563296725973036308871200253377085511083071451169113000024894207554518824651079922531582431619423499485410664779113451450187784117038851945956605156691528695482924819818105091924561028279388760507613745543401989241585768875974488962936130052735471624379183538619080939966793848246631594044799271724806638163525437527095719879278823551696785032101760744527087435701695516054874246086153973909804947205939568075615539206239998933765195961243228723147586250790779221090087911116496392227228954487663972277586531296253931424871080789868322493898232841703592173416617295257137457240395836691668710467321763713777100393304960958493428337161511798500711468565623937355045544190725080452119067066926965802847487960525143525492457687001291908971704416211003424484962113816899057252749888082409790627866002936095192370024620611968400227007365776297087906200662887728416504898980640698788957275515813715763669025306689610591492185084195414055877696349374986509821470024781519023878077587030828962191064851838579476683622777794879210426002111879973955651132154066188589078196834967740328578987844707730572717663899707242425946980694747860075401801274451984609672505160813554298018262875154740694061918367461153612282145316574326758475028937299748260542707002703152593132037387642649270947646573905592215697552560878815979453761562844904862389102383407191668490651374863874484125868213457894290726654687818459187289691531927956041392499609853596234631502007842832221416553582214092007712020659400474140072583551058355629010718931695269591061615174106406957451661970573594086308146775344975801493479068569493965947358785847455275210104720460826219179911206804859285076664890635612799165787172112689910558035571057228741060601919538513360459898196247690707329775656239118061415588890418710017085800871024766670529302844459847541737534720791157678130817855000831528178921029329061303619331400603766073696477850620086784702386044792395581215424461160689238041508307477814352537456373731110143217543185070022976134574708823937311453790022645471641171152266489985190171289620716969414628931526296321066593643155444793171174160550428536352377580575149072761313973216979967524202475995070602690472390454976312553409015247858265847968545206037993986527960816507947297181772839928859866262033517464824774321251254109081081287607220934028815260280350592684475854039258646150741564238885780580096515687528861713010679248639696258030230765050539118232654735095392481795744143731972125438967943116372100399618501105777830655579213867696817172675117886405912786839267461985536021342010459811498096329959857884293605807197567675109386476371412045207317245579567181582082418200162456292220304325204687442972690144912635278676928288141350400449430231240982480498251982670676020319090576744249838849867408034266125995314899022202290424295454331859988655772767554474016833988736399734121868728045541715606653754796267425846102548631674343305056163133158208342979014041469658018795351483142910519778997990348785062924141117475474700339526619573508971835801672019512160896609137928724633093008004047515180314145832416050395106744850982410791785808594754591916711782235264307648437100563637885341081581891795167480275094407149376378126914693355295565523539065522435739779740045152609428900075957222838006411980889120286931270601112976275798757072607779630774004128409574230816764696276062510348251101632970502868421057097307437607967902088440508049291481784895849711834105549438913970485327891035966425337922743171487046031124256837163666454477828409011484914714508443411793677164209253491127632045274828865547377360012725948167667896184697356275619164121415049788694239731766822031141638921179962597702676388405838804159396528922212218030243304727783472029123478966505889823783745662134935924559140572785015015457700457122772581002794311555976611306313661504711788254060981352633384244924153784914846170750120309274093030538846115031920436136949056924286045577319999955338704891604321115116431944083346742146980699992946482363990211037029726686990395380269207092597925312180542119043923107869191227641783384057399451221462548826410205785119211840633429047821791389892316536133924496086816503797415538076412677242729016175870642817328177638102181517347237219841995224674824880884329417370163103918745529992872420059022413155831829191826754078544827112726922101600189562691283382332844693263055043553655159732172724097529147589507930706391577942614953945356078884193682539047372634982527487648741813339383352762724311867607304941425016606674161771151143835345530482277668651132974780616243695878150404134631448043007296056168854473328022612158723660711951512017332239229883991138450445596293261178071582554952165134402993093636349441429585754275344947155319862980154413958149100355010119121765470547253878626489205908005578987810921455423064772937896899050704373965252513774109078281192925560244533847602879985319474361720680478461891374540466464096856338443296497293326204602350496243880055350307562506713240467314750599356760497106240852571111717634488750331346079264283408522335704265435040470401289272489110609409148598602023980552000842484766679476300898468570398233813475113893667502898245318067343856978681669977107771237046433757739453465266221611459540797622662005369403911095068747587273170864072093165137961507176892067403174926381130886317569528252061187074405077318517364006626819142660855435152027723746022524557451133394768735906600090335505548169091087455319938054489398068178846083709351701005386331593985948629289186574175737668792513455368360273838937213211525257958532888635333640234818651579764328124596775824548639279036181081869491291127091050147667075817419099145452345728492028528651887260853288813688728817845586082309316059075643591950462709335491230443490036499838161465835876662136373372539894840734148829477701783224749418322093644628358030876724266531332066578961241548065576712254890752609109832774623420314851808435109307450369728803721716466494412690723733397114787400942730257206482864528406733283443474777310054379954081275942335618332547314930945004743729800563208813021502580637084642442327551982125364073927028360585609793022908885556964601439595173206886272625033174888650719680516695643663497885286851943394757928393564850377553057201795070749034526903062632692794221118055609543043120077867517770057204005845558064017797892262573287750531423311386878648886810464739127989191744905329238993674108197900173477558178936981851774340484479123918763183193587126416198895615031347475909569795943283443352211211060604291905199344399345888773005299528025937440092772771278029551729903724658425937101955945864024587089043752452069911856294792384334732669017213110873739793351910668656752318318524527283483971524997382116129178298501771864176225628125374374356053893120178954314082108303295490082385479886880909314929934192777567964147960656751984482865212117178470133850576263934056771820825533321510505242975777507129962344884407730528850305754296010577673307359310123944890794817126926525673086839263800362440611164127534183312273965046866592969506640778915782025142723302218583958664748653348757071004048502504974242781892916847199985969620619137014681116865149830990035847217547348264994271412166107731333190748542962821934208819110456830525516881279826081535311672737558117593325925560989403554358902229593119446473127505178686677527284271524494125649350441504041462284344924538828084507672978558680159511716605933827271304053419765540450606982116637899045382292204667214858156974077510307881891801774551891112672201637213591263329157374092106387373889879541155978342285669242757191012674512549283173303030942686194680496595891383218854359590247110958963571160424623424426432918551914560430711769639039211432078008492196374646828460938530376398815647462805054414802832368200990795567715714463199652089577466122270213281240548780377374430726131368846222289016548718108458095477161096173972876849646802038462479873668260493845754975115885515334410092473716107620331819738294952078984638180011904480278074576828956145887101757936268845404318960487333229037961071824728573099713015120495272925446361136856846501308222181268022267232842540360747869434724202378788449798677019786806646276922246918639783973530192787756909995151452941844322980775560961138658622479888305430328343514472025639592500938729625197131964135745477500130394464040222130035492204373217426137670098822187610053228456413786630739094700724522786092424779336980792375266476491346626596937910946933286553302666659358428107225940186435119808382685439933480286435575805429913807845780501796039618843901328362125569004264159968753134261748388051663212696261971773556797037606383863589422447605283671730546263506734695468042250888822298605634666353543102286850817276165907158852473170904684143732051074002713133666760790015380900195428710630776826620181772069931631268924426724361356695037241037381238745997736137467708501889680302249646185399729421510053775599656922520059949870976991504807096546245550020067040504619681441168266672813574467065312854971267046266415423169701337688980062876573335104002240530259957891115400794819289347609860079406203830047625129356844952399470359688906388046974667361424326084473134894183238911959965977086991526587953918009416179400277364927901746619146889313073746739260318888464268384829524979187252166575619150039337308841776572848729406540487613742276502684718395462972943182477358345507501546088425469685136613236137381114390954521764044220566771710826775954729908034983872442430367941890067437292473516385479540605581553956576702037208408619000269217250976994228929691120357402930725076970988916164049058018261681193697465169071705122967077040179199260720415673754468858005705630600572784776043649189035970213304196901054177088669753943024543235897655000081450315868347966811015629856989371521409231397366537889417776173573454962650961704229296086702308341808765779396649444495330749036947021964344561328862070337694847944741930954972154841153052450106774324655373228567427429196393978782619512054598623365937090422454846675545896557966097635902069366690810946503543046522186636756826472005791299667488209843056057639712581670316155306891017800103301329544033875761806367114623828598881017106487074411708565292855465029106504012173959196082902535077456295307492543308111104068311662267374738140524164402135035000662326813809581613258777772728879176640197444796564437548644974328813598512699274663585550905081140508277742886258925218312270466997903731570244739965399914123800854217523564399543278215390431777238008939329150218731439330928392649488815740923358048544639830208027671924890176087169119284258856072942107688022316472823566695185196964207809660321182600473934641541128513338463756876423012150405827027799455098211319504657883913242392362459855778997979636500448927406940175021711724861816757321993081546292096649481927056329422328216404571078797124198773369469099723053499644617138895767962851021744152165671971458898238833490164282602426594047448294530711386542848780790556754330149055771365146525469604526877132666519785659051558255900426536093515032705893330431657411739408405329975603897988036300638548600736343769012642253549565787528902827364186191966157509156763164251972814582181027652056757386169648896935418093843510059911258618450650766565746080939544506598638483235568070713650448280944650038792005745105777090425272733105717153205807303878870632517492555769870479476190380735913080455189978395016565057113441569509458497705273526192540636099300103254214473385131193800147007970985808002098719147615580087185668089293073672810632514044428073812295616184247226871481364737591933416066854458307071773218458442988303242634849417934394527645177739288990690039360776465987024004009228736059164172788436694605200393837580049845111931880284211246755019253307520009592037236419286501705144297602759883085219185718831641932521261066281037630683135642490989633294663061910419537270611627183349798756881007720180593471922654003721174469047278385693890337657786468713811526667572761034462418177173756196817332868919553120990059523870084093969131640349304294650334339333590268858619278582618370114461595529128592657383208181845557391428842717791576044267761997926510937173413261017635843913324647944648847007520601078832388027652144381392807958143909089051234359772038689729696836103039420168407893562965813102285458483621971428224385427395838897259015687125439949093458099177003991948789573666131155986127824773262542069763680862181553440104270654618735268579793762853868601201786838338378637034453319809748761963763223515144540731991838385186308168918320526780225051433775638540467473347175270551141729033765693067481255420211189919552567730930787010486591934874936135661364786577236086779746211610374873767301627236113993969285904735577528243162856618259408900335105002706045633906196453489252964487202495332345906173514302928754228590613193152542427305976373647024923734045814187841406756629021741309426900053552358780026789965032169400678719822080756515174806773596596611239502907417839154604505680295964513402882512418285450788328574804348664617179871212902919539258926215336108780602372832020074296075101222510135024156134666560203400838502696587294618670148128244660521753238362545939718259870220406229348435716638848980181397363111592503309739986018789171768148051214687021268198233210852312067343689980560894933802435988731378454587075979524041982502567590904549836173871971439194460979234178080127468222975325862874402317028049467871161782327452279823316381581672283645324237084899489115564202981397241813275160230081865816111462513792933109419408394172280789383339376214835870866454237003666400848822065755457826837352133034411085085016242202202959326695416477844395632291180344536528165718777647997073757833406715915379955991481496594995077326638461408668841551049575008068361890414527273987506949362794079785816858390663810858630910997898868177512902957409245942739362072334357242030375308001870771415143805039106321224303400205204694326988377059764979284479714879250632892437478621907501275094293371393864807851614812586733317120248822734030581395705787952473673149553715618800707881900242356904773405813847536133705943318704972758139049207084022482351723323090928659217593073725507965691067210123937644288433006126402147791282919124950686276180925960750107665229440133736603851020483259686582200418442535543111934004169200001951647081853164798398745363494413649875899342297740496965047707356089402000209230544508493668449264726790293572824028975558576774092654053888314858187228826031543003993078500163582509762288410352698586746594036284561868051522986397432092106617732210278616945167982207485149408498861645865019010678012731874043682645412052943616007844455328804223718352217322163667404275438806896657030138701784057623894709782857623607679685222293709608784748859062002478594168666065854844932950450802724973159639541432503712948304033571521148443765145109991627542276478696844674990225370054555914885030557868409385310473013929022512590241632041721682983909605995396324442179252241291194293921123460267579122652064642984156934352492469181573376865871263319456555715032900185518956921217697040927862357876348261572481688265420216856859255836232743203564612981706637984314661290500762377308444800566277384086577593782230232935551533062630781990286782079301566271465787036079209342687790770589729747102954871601433404041530754939231617054133726530247547893591021267444576504665080560292732958503532057784647811696784027433364732045563107511673814251839637877093045309806765981752462054241307220987023234100058452882026237461089206755724225344037190697030580338446586159845821098875041334050603541920326643430271423665242896154012840706303483966455369353600917454173484544456626567001188632552194817839256225294108398249738385469479226884332560955292206780993189067372383682203224610269184955973688460869198210806630460332582407774130386730695496919079450046221181904210289754537293356355210346461674832917070824110889214810352696899494302181045476685495041103271287181944729308163938547820224503734370860210976798789541875046577612784584414962407883498591893191121164378115585338020834318337441652809703700097468986688126577433081143756636399699039161210945716527534669287605171610161400536031295776741086301653285095686671057696292113304405887835458293657126082692918443264224447398672039422321876040798259781605697047098242510766764360908046281935695189742014622085061439953355310496330677378820593450170974179656237199192514879653461119045665034808766397323978426994832108502093779006965502272966848882595504895902106751448928217194122060491744233423637999163374376074885425962023390656958830615307785014222292926282856917516321354444520470036583666421844912665226397721271807016042009788574374419606393252400745601890740768387660030254706980301215686872089061079863636356834496655533482317748528143647143886655468269959176494762099375493886995185396429132252458218596939355556706429855373160210879121500565968436506351241929134663655970470896298053387532131909012813327659154953331020601567692963604315299948661411271182099221510520759123932712711764243139383472990106355121366811433146794019151171729335860237921789717393215109423848904166704935610348449512704502038104605870500342900202967577613510615792931976329898737012573237678386389766586932108745352956257538777462521683162286358742979655449597737720995653271042928590141739099534443219589451033033799003025926410967931105638498004047101557179009795316070475461516534604929153749365520869831205328352525156129365229390547535306009220135688718160078871328491788093964981949436811541688417256987070579563207815791805945336631870955607697553447595662662661110694708076398354434205931858510591405707025678902325727283304025903739349158737965580113593749218228149605769248819848099576824114011172246252620981352734751769685554601198241246428827174844064918103742134768652988847130658991609210715800641255335408161864506281566906513891883337870429714876105653831703547063255117196177350243012154273813975506397622979782575257537791849112140885964181960043548679249094109435205107953444051271588526256630041875807303126512416445363631094728499941303534481887607452084838305443151971264733293686370008407669286139496600330167436730352084266172593535824269364917371665959833792322121821429317591536680492908559754043565299906393211445078616158615696168000621860709429489718101947311417426742158092190117694800303320078141278649082237997979744434378852558772069707894148698849487619419301676797843454466750941339188216067972686851911060288320898831364768895609940858343556649503973545468995967694861060512354679204483790149776660067720062383723071282476952491208632764454728657188986586492250902396867654285316706915325375682221966386398182877846266678942385713935727509016938748486080978567534802030351420166962775613713246118467493611897072785043169474953458682035318149538819592006523050885805385501924074756331176592206608106346037171368725435724907154774533817361859964110396813028745975928419737605129005685935621585951438541131124340660383575306339283486813260036700102496072385304026558566360075987333013524582513014296902099506638315371045625374495766890414620729012411972804927030576279097247721829938531062012910130645937716124992906962134024050671985269781782768512777256687356810714159840585460678226009586667950585704578781374440370407895084604623395735133706940691458611399120834276427721896139649834417023791308168255198832499439627010123363167850748503877593884281179844411151881433736494180584707943605322714400154792690405951619726231962187659864351814152302213709292136607298912825465381254362211806061906683275860876382788147366763963749488886922697870722287874877976934604520607038143351448829787022278497671550564383797525636999124671127728703076974673595399452296557996586619231899718590733502899799988882873330938764351430180193810528623867905812079209055882529438118836478219754995694033236276873846488268335424004207327248116652113648758460483674365934362241874817118724852392368544276227712048424554724620322645739144522109467259230440916174100097510582860839288617637295572879392800169256950712886021898059012558702987139637089443438771564284176225795791678930008438127418642509801981478260595272986773806258336307987584147659785326097225808243297469648249486781731811306039152623003758388101699858911926515043647998084726210744164375984694203415791187040311027555593817110160338644517622970413301586206652226241099831332740591152139234122909375633658943140014095268771986356881107694651130577168860696405324186721794127870192620119404227757815857819700202258508724530013249356346654582088136885721588216062029174496221676698645892061566939507078556695303857969624405673453716887288031217305083403811550406052274877685804080036129562786894656117327619549415577336154312528864450356298931171299954948129457418698219715283518070401412607281664519911245582871587381661945380985542922080666666993900290688581510473189328895065960808897868484749198258462861105461438462339869245767788725600338518329181839300851951559715625365054861574353279186965751378853837861026810190597590821428861617975603007751140551366367595437388012022702953557480418860085825398530169338527413468304404910407684076283579010396594424582038986276830766551332697623731214712191207062373747802192460728412742716009831185676777677338728222951977967092716758647448782455172682877160129424578628839681803578173391635142242819780920849717712441494454744196926888977316445261340123157004970696631943019150461627355064829196436390265333090201214409307591440282751932361850448636257563507020950871352050496581002731731580616632627259274595749190714414581984456581763855768151192500249555212165164884501473007067679935476307398193422543192376457162519910589852259881860599402268321952614268383559510551442887923753687800845143660319144507194764425159311701387990892432779773843874634214938243822941173608215931061119146498069173597244691389748828900195305039943238072683311681358504640962780405942504001658261841729927308885613723953086199126147291448742109899182539749547154527498329050606619341848599530625520523958545217678703898115940519912341475404164986103352295357305536235370568927511885338360986887932706263220431857270337233525446655761253226183506055850770254456596378904554266207988490409561510692587038633056453335645874641462306339150888206967221691636213118223758053116483797069890405743792696432991512878755326138158513629297321941675638877176426915995660031243279386483875393195220831992835449702856697832258143735271728746549928088223854966898558781240394448261841347948146064369501893427586188724303392462569290907305674456488282197665084793870543108948729013277384659668458809803088256567313605560973615736816695618538977143290513216159457838001393826731420325941661862530215833472570620786144517954200397873949975591150933546524871996093839458755293175491749723824257399999624619294012023203057951620382041852130998330572359082693352453344070155958931552079921358336105934117611935598599991844937970842379490038238918092557973626651051503792320103997177364069173675810077421925275928979594247511323586272332375834030117395571784404153767185864043707754642162726927720356393147939574258716985720656749972945097032502109849558701851693179617928685209990321771264811579001667058306605473214601366366835823289511150353224914812190385648844347150765174587361463728770756944753318556589638295171152766684113151874011567036908231432965542413669024263313551823709435771887361533282923930441703747877786747680949498457327375370947761273167733600877654438133530638596484235746861560844654917923554073671976941150039227154509420789789798531132254760031699069074232778726284393201619381746221144729864224412975228015374307043750511648143420047452392179848478989003285876836463595812296374722236113804137769998974078624715995330034276864264045477910684249190150513312801168494478057075193192705295056474566767743437969146456520403365651860438468840324317725259920359109995282166584631835943711727006105995122394355113580517508997155563413199405022800781024847977318979521661189019746614499516829287167412397345121903662354928583945360251278215641150936853474360775602653264052562091694077551571775765458151351341032191166926621243380091603821223550007422462294754340800355152569414300354426408779009601234440671751525611098062489571273541084592407982769179566674896636990438464448696089869824578068756932642223945094726164973753176068828662510770274723828812361487473968378139743796859525501498850043734020877137608992436763942288403365632644809940648480908943648969595965880461611027253750170881263506964233270105466060978536528087463046554240732986966192853906869247054436513851234943810529568741835100852247844730705680846797738227716493441743331775952377878581880569318260825340315361364173575672344280100843851901697932788871440253633832740130840425166954494260844557946795654193254932587135360453413464847930721114163773951209320952697149148515160059609869941890983689074518521724995547574673375429138524176047920610519871903148558668428978647251427108540123111816998779016460869198130893136029349220979018416155318745163703836040743420473400348914169451109396024078909102099543464088089824380553103461961307367271421392281523194514421838134445314002764010065606930397931730479983582313464712545038493690344335255099389728523753173657356759701821993881940922337777312420797494823405033205908090481486305391902297272835998799347910721927663387030605480435426227160414834599220520320968488059237289243536602719261963108580253213911189671803638168457915178101596281482504868838005791767154993771713658017125158971127105252127341688939016753792504448755047905282636386969074988023863593317179349177128167837697993768690622569006272377063588913347859822128638854896123580274950476002632627868769319645137441442045599889015552767279240411730864093546473268663360851364242466247706744819428965526278137871450035406079646582731751116724403776206827810693902399481972771250678809123683383810072354416690313607055184889063131183578425970381481837283899255388141510192613916105693269996982325815730041874585031066666368462921391702913647901223852887244125299920340386364168028628986149855244121806387412058203337525789943218856516510154556425241698918791661028079872563511664937382385272644700003779555464060730099434177225229941796596947479699524367498622806311905074470881315745357898891157554748587914853464339769594053369382949290316016375212963307870689053533233923412565822623753398878332535062859126094501472638667217585360380939208572709381897807257196243992066556214791791491460510105930487568235639498128707566675184931493846549588181227851293743512649746689620949735140198492235499300062350491592898534707391181806136652743683430863843250154485781353019305917282021380636735546435419022463211513639889550827832743270231723018819598309197753993231300200353430258837913515169892493277834915772219056186358083356424421264223448446013694667835578368056876865488557116140473960805961412584189594407776078192066745493639254786152942635999247486422675865156823532480473153598699592103516495484893207435263972124727923217789691242460037827387721509539430313139671603439882598055617262877856191478171608901673083321130966565797912180962771815706387321874136646598776846106141133587049208054971324038223761170333118325256590466987276121366196805081238725169273208652999637104954802072358159394779120684701318129293924341586196776098648650519152215572000602381649834804961243485640690921469862042667775456548946515852260093162749136256486478363566213130354763328116350509824915926319470089179391203875745484158877535908385062079643785880690440690523785328752150644368349244583987739816787726559998411356944908178698411201818656509007686420794603722242264422502592598820347733429623207192180644969771480148215898975720254706132895798141434306592398613650486755739119576015076392845960258173533396773821657438285500800700359806397222770897432012806822802690744952958634162775602984896962524196832858541235667779585355678188069370338456717306589314722607664835120035041263057946683311383931792817440201633832272211599997853116715093575684324372661151214821275272371021149981075476340390507501889330800991518372678382794189014920634779605265330872290492080664876213824369858809629368890727219349558991857095421200428385586010501023594360983781014129763983775797507834106967047778787412193948642250742294465919342099589913653069252213565528347905174453938363250041352992384865974062682641074667821973790290372982851085885810839924449111373037467009706251229684785131923433793700587910981857353767409527455096141694161559331890901902653926431992359814461121522578141716651820316293303820357889151962798903245353447942656109712187993385548159953597628940815808708343072115935475631539889702772603982998996813524329870190472660271349394140676635500619562470933113976756206913774962250644439268685781826674046707794774766241487738030185743196322601633905365648701539299359211413955939163858110184903672623311999284747215886429920572877712781692164569397226477292066459189689901355331110247691491149466658651041357792884130916424862396523756587679674545494903574528368254927866405108167553485884817962677803617910299609456060350506743994950786521891223156865411815226738505578924212431237473562987986487480657876894076901349858636635557375023750152976477243933717097304620853091293202970029775115328973614632896911967366163426937712174367491914099513886728587054793804784014933803054502356834281919001031474919375652375911310038733220701879920236346288568314480207665639192943387382209157880707332886064484640913325730560110107533364159642755828764216784592520536625584158920892623840709507349040439785736918047440035092614347563355685046540934017090117711674201012394704007586473146723522057101295269024232337236871150398002162793043228426753299577187726087594227319977903039817277345878332695987360006089519008817496632462507490066735919991132213371015267036058978510588257523051370964023941465815167525051895313669236882047191223226961212602184319076271781624453312397334960671713572466091394310290354515085231276886857245708081913529901211623880990290071082155729409432762847453041981642050963207348875922841451224518119796373963834189870127941929026545419018520280698922784522782038399464930440693326963797918672754513472319872566812862253362607342979372344015930233562077761864976505878484234691681816934817950704454382272063416308158935912553346968111612923347909217287150720583374430265431084107339971454633915674830375415677919301824413000981618381219981181095366751702940187876915141255208701937729748077209488087152488165717010177912202576432374740955100648020198082704772083318347278159777096980168326408635751631017017324453583016757279805338167134341330083239494617225701591582006877918545236384298749887505523030326670495599584846376880263119206038772147155571362509685175996787048005617946583213551786037126821774836780240321587192080970985371181935652388093243837848547124394649946907192860957583708540962885420525031238552765929562069392153898712035314004457557650801432545123094257690003182001491518504695897608685004812787922362886723039581711311894903919127260644243986433661628911529636325987657655900407704086523758487028649842331037665618660753355524978200680252216153717875215096043115722119422739538702618157880155477916473657404941539325193067863939711680898697193540745402611557191735755742171130453295618309776072010765631279705334825153905254875500175850639337637071150772098870139441751936557190734732329431966668805536213431343576941243221880824435035099535364807305893223094587512506005308023001011739029540299026119920415324479580174786365110455357913538948356809498431246541413014468580898472486291831136774879656488363258290939470889834413381204285436390304277504538034811468430768906764594752167729121303614917791920259274109994832948726918419546067059923779127658883939919376377521952778018170239705385379713182181756900252008766470593696985135947018567327746306274596079767105750712249916065898152571490204560261610779229046728641415495192851989835809079718209352758268696787591507040765363130035535931040386733825927678740505758948147074040812732625228870706067481643917413842021871076272282948923916636024763411779576905605282122189796881168230299308700901457936196341057303510003240011472033710360882102344076818889185763300946155171551542439733978456763730306671348514329101468192346117466841181518174946438098459897061649084597155904448986808170576848138784791851520262441424512292950225901444793487783858495202767872623189378038540167235312555541159395995590455239545255600008132751023548215678556869764843442813291042655643579892488035826374574027344115748798387344594591993332640203183388469223482152368062441570609577549523851876616137632935622669740473701055303995172219890190083156394883574782458580377588296769518040372373244676803267563702871729638899605982790626119933346406309031734789303434705444555819094323278171047645350936798359484873511761993525459938617911797335778804933372585828256526310054118280149019123321582042307812355042787039184121874521209248655997992640887956953669369723863772724092739573611347618228280559975396225103967413340675132452981797257374132161803840175624252342945978949798795117339830127033700884309093239605998545976624790350285362106448889132020224192986985081253509627721453186237132221490281195656087448465825094292994729982574947084060941314237155664069570138150040592397315561888861177166633097691430307001604608580106519157287991488832870372493300856777781949752537865937783832616002683511460774083655344434242173570405475805256889604968858363380181951804244781139354438302516033235552895365182400533867693555382537474773120717406051388820437263734962433779131690557906195675798084749740377103154962749306007857841595942546772471436875152331402103631867838981322515232141796013911636188030766280590781097301529715800193871240357198275717467369712066376830669444065101820576037236615662609832577309093561685811018166368134660823768688671179858149908692403852374773802096068246583545220556433443644281987134247128270013606501646519841982318706399248909726767738393491423531957398661933607382122394570701959096885487813728897726008398953486496308475375197454343978980487618070586446269053344127821380041499652516692514594930772282890302663327551095336637008020540558192844315622682969581081140744285963386779380262187684373877509499443663944123153045358337483340803291546653407582393756771310106290616049396048182614627558594698545370900292103089111181811784951144162238155392583469652695340343104165451490610389080344361618867459937057553396440607220660171363489778563468615707587844472305880044387773743024513650500625320704183489645398322182882933099691429577602660990218078516362040835528535651333768777402300157046882586961548221988845156279274476857258743720038840378165331461177499275250825171237699182689321379412433198176437864365958800920839869737702065543523851843355321327109971405467503620091553838807168338621833169755879634372192042052996153176135527715114043714279562100685741977591190715008331325896227822456251267067185952380339711053366260343982986831810943145279707862482043239485131461083767925961648173432363252862716142682388668929376355462106225656335779902483230198961548120893764169491567394801411646497217228062349361118794169175998177793755666253336833103857527111635613767784917864975006668149838031774078986519287869095131753220033881686043642572410353326922753675112605515802735579746746819412314173674544046150205107003015535739515040137481129617820079735952103950457319844661452438631309236140368319562451566119957496198762164716017207233933578203166384264157818480312967489588346169205814653009059019757898961600040018711175542584844188564316226535486876466019957502663183150641641237113606345422533267013110961812844009689670217386922661838892888953366256217458383370692388721939207420571464441473673050167332984684521423784434416078617152958484212974900375926815082274590301894946743157096539851565147295468746433878800897141062185388136475588624292413918933735016133402941134505952045446429965181766774525920623937065325880748158650658855422812474334761348415397130473949103409910334417768627504509472910204800377951697734004718454028946320404295678755677265762603280860792154068685776150824626633610884167370894125399528837047593290635538564543500573393805085996393653437429630038468835706675511530903213648861907070281100298668325185521940874765978525302372999533873104075768381603005259808214243259920586389541773511395041452410988486461783150387671564749940702901067967428279863302596672002551264921224779888855670694105093254865693728943226549183258101010084609661060981789558324427639344665076229432249302081215637349985109431389554362259871795051672808135914252381341775145582490288278826779523996539998978454186149957863114010257531552423025183937050570754808487724250305795486835073421185730006783446378486116951991870763268868570906206885538407296043482141989725736616981238791682364117827706900407699130466161644073161803417469184709381627629753313253399676532286581131102746169415640460969917003223024681262681536291568470271818264500493017884229254675249213671255956786192783649976869338261238850172840951965666725022507618508318379726149750329329503974598256608283739420859787854453986523851601332409158980544782777695380024689895310510429932030734346421359952822601621891653762614047717215405188769677561248016777965274077900742429731257286293231066154144338083747575128413940656445373415940868173547779880683077911670032281609367272527958324008221940479610210083918253562376571828347746334377547600773644593683355597144134635623899448876816648193881652069929601922943271311012881559787856812962544620727385467234846286207859619737565510715235070890880048391747912850379171779400615549874628781083038723272514200145841207637539147754622181460347302895419708601111258704430484857570226632777232279061934135835517402117386376586114510081081104437646355533981891247697496518565277256003743990292282881681830400341488315565668239761729729334174386543598037612290400615160802926925386139688117208883800356977241747452842000811679729549049462110794777388495864438762518235005188426678820009658942960553704497257834092901445791798907735274472347983375279373880561728812804878351275937620923674080784526895712330041554704765631994132280592103705271999007525357402150730927148041323880638280401356642724053905540384525367285870534626130885146027391978977545528631599318961259100838515576403086875482762754840653768756564907044332359868112309334033388891353304100950568479243525399203667246520300751518104197989937684105700704747644203445573446482182554086988356516379644148634751875443479409643634488551328101133383847180315430523868684635434672320582298332024116104195938341424405038167400383576409428623805337238514409598893194127511301634571408004880314990898972237472684626121554675245256272370928223272078007942738425930666922561521729508708100157484088397999425759666702958603051618821342780227362997211296918996471450490820182054022311196490429960831104647798997166324357670875514180622612353623989038668663682435478934423015622128263135074119376758116557246553526375402196186839560457063228314866440427480983682113511715024841389283503940044468522635834080412134290986394728184451183979286979142557086158092942438201256671008879700165912616123877632454783684163082386846424133409439613699259524534300475627735488275111255276735786960615750674477780738979194560473879116151459974854604632950576714864703630185406782042321206702275715940485570007602718441948612010497556437758120190153388350850889647946586014697743849212532210044746805100249198275038014627980412060362000275469340426484015910944743413598803216032060604893706782667699870341580648657740082237310834002936396299094959821889992290867950056147515823709362328946294923148788834896742561015343121399535695944592222232962067573820952647558628096756728591095279219419987853528167023841331551037823482844366778566485404056052059605197280713728771278430470347450537129966452991749025520148834752768600905326332169719246114931392582177659280525549314594430184851946827666979044959274280558683222172261829618562491284565608020355164672063004297915407518553794052928812036783118247009021504673125144635123535902992483812128975079723416137231789094948264601383360548546383598969454382589850948168373508918093874800023066619342104450144147753972185247432471242542848368945093484567265590809280321061673255360988506874360317345357969348321429260437402873403404523578009596436781329687624969383343271507246827110111039004216078566212451996547328269451479547946365010113693017962427491595486315233283713998983567135628331611618248407408329600239572311228540655118457355811337329057500077082739942540106540280613376122882892003197529824297782008136679623656969512062887410280917161733384049900433057136575707449638085772689714464672687808763228707725747130277196279531044418894699548250336415441196844336610977581516089641296914359626715343334495560265753155861535081227088498317531469100337859662321323632663476149859318093651218953335127687151450399905204286644621476090370312889962950416143575549817680523275141505066616517831690925416551854974065701601757112905173382839034450523691374568715794006146261864917976758836674453622139479316198106453525418667421740614759286331846734853945659265126473401540776372439895941617066549804711183798113041575271823069414879143774396066975619347403315378516249925063453846692402243093888778371050592778135024106871124423316914019191225687895818505964022841241769672083753667282495812622837434597393123570790637825801178931533169105285555947554702694766948020771390192747264149997194531090359130335669998834817204599682910943032246003547747555237601990229540061101600432583364231019275006301964496602633022564640681722229871609911977959832381571038716937213432803023581954624171095141272042684703513965241084375292891206258623284238568094057830523672179072066246979512191704356918371541152627767326977938252706986564897169729414328847841761717926823216179296896672546029653842716595571166688904668550499466836999637782425380418187386860028549717446228035275867210007489679555678734189037267777192389713183308008197442631697741979363338706775134112495469358056253877501064785752568806756667753805561294278739136237857928643835115185971483131611754087927955572843379723585257233591598151531252027826019738710832169846659557810149089412410640837192018124072571546010074130765991033841379906812311111670133983556341426044934866167681071652562624980787812937507274774684763858819430651171001196446014215281218915127579153055840797077607814073492499925131030331471935681615870848927086881984123338784139896278159706425463687984090204337242314217547607974144612357621209057521467104557867738861681731414721801089198330058418459442671053173212189806804848650583684004223261070968223204883567643350634350960580586754127149978089494559608244033921055690953094971809953365271735133544979279105549441768942802134264394940875013406532344546747389107442788209395636367664143237288030568165093008491019779126943209753799940803642797441277367344607846457002313368959570122888509186076669344951640302698806419424383231814678401191005004670203471797257068976339987153406473432575200706211286442018536779319650211590313236075354868528602510142765816300689447690448123161833883304658536566249076350468309948110619784820662370905935943932125472763153263640820335796730864642547552934152800442964889354695551394432639220574648265968565437357689997267194225463383918192101843192036340200145561756782724393451409366313143597396809133130617175982802047399202809748829397352414368894717503559254331118514728025326630163438003856344917580281487226323272456651800361446892387129523320001090313914461865267459630039878066962594334856206373269260550539668384340923150899909336690812419055101974425650343305627853548906845174572931018308022199975241503842470596190874583500192309403707217310088463791989158845414091094028722800127448819153756726912353849049470642682988473144383926797359968424595778964434826927006921430310028241729330985900892818658756989349668650725350048917989024713787722465039909664452324041566538166285949502866881251660674894953981238692320694089087482144881069611209351380511288955458115047741778487513964801194819522993467913860241863954656895429267669086521697652076319728130051065837325760659368973411344244348632593476489191329822230700887626738572258790425177345826908424323276760702403360971526972717893051592532040705783917198249465053822288232950854169352421202412408850462074716309396016125041416632818322365384265721119313023046381560309019905787247945054797948893205921302891102615055352667590579199292437934433928978155945271307001769323573066063283630567697669553419224484096573146976191338476096199909098265611105596664928584713165551386881725119928806969252030981837977588542920189314164424807031492572141006972413617858772867574026892703900162628199058549500676642564352216261457619081610753855016489948248375752301024706254076487593283625010689288147215440689794519250676437093248940011123350050856716218374483487043208571620679077502831893860582190448604389672408613320659213079624322839162514728210584948865896631585021606703141059025324243588392822192621740457221811667523498575487716557113012860196179794432268831647596615457397116806549913917376172339257273432778728415153466260637297545737892186926830346192932325950050859522444321564199091243241106800716772764692900730653611083270188317186724532955718722240922504921365437048761173139427171620417794356390306687782567924111790331272075393779292287423686998495106841436381987309823746812044047397701641340896105902679264599213108575470107513759557787751399867739404867644510791153318398355847485168755436250361347879514966766707433979497879217805142802258595327803340043841117015266535211176840429101719345769009083155518182262852220070214523929848578034368033877231356800389901264727772755963348250359664265227658089668473947443643715705441769000092474852358927765350079041051210523000700758307629160192833155979085985953950585134437401328435726389195248024969157347176268493399136969914637516371634534515849480360613238459614649471390299642652813374243723131791250821629809353937840987271924229316051832819046440879304709329855729022081993671009486304737833425833471636062965391257744152846255003280347154355637678768885870138427199217350312706309277698084190885870263186400514039450760191102667123472390706632800348609155270445814779603815476229235997131833620288890884038957525369750655561214958980742132254266551230592275244485231888335365362619102163218243123127972340841923064445569156570831956646271589614015940652313984436917898709025819698301729431783237455598956668560095995581712610357303982081084044020059612249583088090377998533658562006464813659829774348571702096651003911256953816588604724906568884388644806482208121036201852431143780395595487698569274376669770152929326848533357284421204620921385693546146288292257465529389132430554615132931267653346815052731567591793529778805598262024357416158635388648611029355237731747793846789641561262442587421851257273656781679190575798117918799728709202680224601227996601749604752594462600084454619715572042360925483184919700113229836499001359724720747418974137986372875812689665852452358307811890654903947438631965953440651220231622524745898411586780341318263398509986524062366167774702758532953372139589049271785262422154625274222880941115151293961494137493957720734091726587899514237451765666144244241092940088927272058120462255343783954452398918264484411075424989411184561292840719773419996984673306106936998424464807962441677849021545815548741007569581505018159944513250262546918618951095274964059464586656454732213619565358999615941047747492698843173093393815751510987450294361951361440972156262910843745300729943855390847510407787901743491276327303624859868001460621607431564262727575812642962410843217403213133604852098919848948931636244686039344507255936406619541697800966554178170031815689015583990399292477305938054561465775597781828209367937314095688856036834304414366938155918436607013269738022611779342281530390296553010576277813954923578253610656209294585704590129814498334623677966526328319741006984686957199117103134748377849732551451008931728686602486739559935595318837713826651951031262078555065431341533770732872564335721180524802938428104021283697645241548751623709117417596773388307328093634303862212436403182301339366174030082117184902343493947981939599970310553265573096182351667954013518143896753449462561491881804608062295256645569810771415503448463127060552190498016546963431029554285783479940369644728958773521806429852117951046180475792148203429587586948650290173392588235996510173602719823750247054656175377476597772732801312165288255700796066529727508001486998694186609256798672233585794914988809917164865642112027212014931491922047039474625575153671252741521160748924839043989157172944090490073347572450776119335980122543798753544836022102777234848404619102679467480824685571007632101618212932503820575612400147720663384462344985711713808803479508404622583798672660564285817636120856187149018511383042335117222455657965720324710728335086743599065122933476296397990530487318549228476722339538133337287020576499559867198931744038079751526399663283186842406539080368265080694681304241287721581176907154878213647496460869430788595542717641508590597779417259682320563637544739376757999834538660432550965789639205849838750141108704226222127349248045243264283527922156544552167708201031952633363454075414199726122890842092571748904467606986064608108442315049838782068940746367980455240926460552346976165180304581152756882102507894663415586268174027708374912058439899111893212674375510121675708851859780245080755206304687966815112426184652373856414975966633967364258537864680401274129197067902581552749215551023202834716306744371531934051230946542806335664414751048230257246418081517371550998648842090765078981283930857668064812785331799013313437128186095829100136507207546523075877604010631029973666026112798971828091131687560967665245300688671060588609496805209957560217378964960825855232317312254095814707491050650312197921573744236408421974408996641444760713287911368423068494245321664533992488417296900327803403333308415402010347205083674021513493948212718727859480353429421496164099657037930691963501789884765679629202329948061353294559205456312243513686738435706419912281824803584279883929853801684929581762244618179788391992836275400125289562699221811034781609239136226494421221669147305850988830436874645023665614722594180508708241531378599916566801770141188683633252968982481634945804244231616679556246731241393771673306992987019543993806939250150021352988222525667766974734804358499319981846328985849338522108885224461832537328394082126259547871886217431521471657024273699568792859428838546362367945248633499083508454830069008460825307770843755513724446166215309250783589767546647663279738492014381389245340297504537619930339996340055279677165525883195326819543480039811790497885975645703362415041561137706634716164214193888367822394943124313796436403713001621930505947187453405032175594750768374543182131194303507064083482634788132252760029478589645302670268306837495236419977385740976427977728796227283687331466946541055905118823292288457521333491813614072554885508855485450506291528461454253863493004320978991716328226782916126299835968989701701694735214263101178337992802284106547359110238927504033299731441208492698376944230158870537360846921116044428005975130033139175762968273019140718127764892881052051437129779429831190251742371849428977367720768982914080156342974309112825203595399706526030134540566422574360211680457736737947261349032771891908308621506863381625939894211964072394684378958658460004368000923807864816457363251966446477284022025307020744226601467813837391192237298272475502192441574783156467638157027076097082710413865874539329226664994334397703703255068569014600757137619762278577539416209650556547903501777167534782761983941962260479397167976318128841055576061036964059549288553767625188582915140541519630688844493537697924271802840919366773090027460574512612804901167744894364985167512476281209176320852501024094293199531452492543948790682159197429387669962635576664099505064917295738497457274387042589025272742702966821442220625107763126694005678451990047815742144955104147956508129093419650682625085468248450757760824708432851740156221473320829215134442914432918357300881216868858607019000856898986570542779580948108159274246211544083526372995598993395199262055673327986668972583387860796188002844923782621384192264190540088884392947653556935034039957770834085976310931143316667228903805451039026971646980668520326448183952287545771605084488616814486750000966226037762094595249745419275294753684938464826840023234496313872802723413681748525886920660620728576028569655305491205419745662644646373083824684697948662026873596096924793117443003220073381059233762326282475117768347075871191587152602274747181255511574681491059827652904722715278862788845626414223907951592919711207112543517655730871548697377811696854437165610496222095521606141041576660278057050254686408050977430686604662034722508796799458721247045211514583405928950771618486803510459851845325231797057270322379890071994714146183065444476789269757818119458751143065684543516350879760096181481469740271985664877384734676066557866595947815892101208131504791941656559813869013934722777729169570108954909056048902852598550489749822744906739960064909401162292980910110731977121043643359549842457370944575481825432981563489300486182758396928982258727908278169017029042248037025805339834590844303251980868724100247414494646630256700313216212172187963100339827430419750979516534803033758129792628630757061233638112585194495657372879006621936703061730730113820475503237304759840422127693373985651998487611133426209147472134327153543080010885909991444381772083608877973453300813141848682467922770284166982926427422588914143677354201135595838735531344518434327656361384990995733936753327319710555088550800957750864280909777905091893915002517214439642124634103022189835593039102022753373226900632261335753787212603593865821499120592000315817460038508436217812381777249669908961705169033194853618250892225012609841090417208343710144664470006111348722788831869222658405688915183402953734697698982330318960969425471620444029862879220962635541787307383073598926267277212691794721199344901503061428624276013162275741581064369518633945604632158720635546535876156648321710881022295039938069954887379768908703408032967448725503866466016186471407963530560374047091665912564840734092418838383939082749044922437324087967621186944700573703652545280096842879100582420533987737812673870934745181963989102535902542956526098195188374821562982343112132030699817497610148042446732752429190510061348516254872324326610025048478237609656119479142354743390375566013132550748787817936004719592481909082222757262451210575031840824696111842228797270419917233994531693905345117831732727531524023920686024557183288416155178122326270529358075049730168100844646889866722360199181394703541164729568995927072141766079853526131238951431089334022223540286928028752026700208535664761104803229937655911928571998784724022145170099510131245042217981611054334637018462366290961693790033793711567727618585894271077638242224714629929483093654653906211635084421101755543395972091910275104606790201534720558667276099539817692097064022059843297320828422948869361624894604134251486261852621164398915405547462577779063257230822572721966708184752851521403552804360506252672737763939400187822165979625451010995676857008526852002051562299147487779210536602539510608730163015852623896592793385086530701642527422404481380656269265643716209189268139205064582800413758162380631185613030386379525480198133051874877638702182536152215777858303078579199552013577794320654378146432773820306142636140520016781979779917205624880202687722078861411025416326965717479691904374240235290068356360582088641033500036153704018583665089812861008608265409648582449811861909148595370176454293173020497281369514873900567624913065474383625681581127750828205347126180741891508717416289413725003403654016490246403608050253158856875662794631128887484697767306765543928805044580285963069842728811614054807059250692843393213846260258377617498022495152398082845370918093657439174860970005389243291493890917329847464034304139527424979684060329037500502581761761873823775441387686300182407949830637521350470444241772319032685972128372420322109233422173061816851980840018923650075331779491778809180341884268068987286984374808520629985983029500378250041772258049364162523326340288108159865771147307320799514962846096721949777202823790114779468296527057076278091956498977333561554915221084957476675270115636944243967309022792905621147533793017591445542487526030486165004349407727065143725838633053201219335441846040057373721475694608244031795442383331518743227200437148064164749456208477621254956963533246549907525792233142919999999619303440526938931820111807059954479262747071906800009163208340579202906791002294659415546142179294461516730665696965650271136203633240180187629849440018811139937105645385171558200373461278619683229681435441345082948627715579770769158659390212498571550898725996155733843703562681056201933259671276692254379945502532580156962270365732814537724617994357774656087386191916257392181992739349307069961790260226359457331335995783766690610484069132536154714986802693454798974669883657002167056906173493315379999641152612732332618835595043306272748645764525851171050092021460165526264456903110010720243710120189868400742621724730438112852095055174331298395502499908648343071992031922581818862905186547639602282059050802804299482897670691248700321867034758649499122170703413101216252985762381649685357610811177511207161816669312080202380911423500411175554819289971379491211419841609755591441897244717707419391661042805751784077230677688045774051081728636376627696562371026398547913645816763862201662156036552590357757091636130987593597172202300062930712851677323273076130633744249740852610065311138351527595000873287757196380901664304781270200116246735070709743727730229241923836773524993793545007872250920910605185036106376788049076153614528490789108612581047554204027358847670949761546261758403317741068286850647804203156741784611100965837124365441771580092827161328497070521386843521420294602336893877457785544597456172637539593061454884699917705616932397859242938047374145052676301208160511812314090473830887369695946868396759859755098988512348882159782169130772265835425268253248360328205627731064520179009050060307491087785561519507230562367823482274381718876353259854606717043553482766539413450896594443919845217995938523320149277256418090025459310178587469484569871835390321933883756687181920641056986983158618176421456927994395413404026250748693828173821489666056374281799753727278728796611163508897142424291443695750734596464301291046006511137196680120139279200191780761082571085966977799055138859337705451890773263233868969259852353272959157737212333673349341374429154727033175195438634251751401551136101493486389064045633756769273226842285651033053867692009864219469924372963132940318168573497344967626159033086723118828071909234779647913579013123183677933181355998627118550069530924492725497140374758117971544011159591799801829215645315891434886029273335314816424254942349226547647638006764158582842819767726822603474615959645248807316319158739674154526523503785532108737634111686523738347555534245444819767806010947389799322710512737728663501327362937701369736937593193329034250852576163543046972255094468934530936258639741514472671366158785609706373090272206328103320105006448114351463071866930812302258235362120632435372513460691739370888857482517003201282221251947512463775071632816834831956604477830155160958452577437163284611999496982772778054833896316260809167767132348451773661049968068401739608390489090987475303355667501623415574788928112563191910629274318342794058597806270087654200975357886632805812347644995373204857615640009046390183066141760331596154752619248486674297834026779821608551702999236883264684509995290613926318669522942048201491616423148576765942886387099535588428860822122864520364814547995366944746478882295175814644637194537900671522651200842016649172140238923614265858868563208985062073255687128475656922961137587429717975576647198195725211430613701481396416055517979761464025667607766055883133258301427136244708170629566455220673755427257290108827463033785987005332761577652955741597779409723175797176296540813023738501782905009052638229683857150589346181622345812086672141804796438349846169571360049264434997437891838652690085738948042457698352061834414427381894914276196712218892042215565512994562701242394862768695435561577319360761491401148669493341249194154633702274903159359074942428181253591702553273654696006999559912310055419582986813450264934272425134929605184302932401947531942482397326044181779621699383797125539884454158613705395243532914058921180760526789950760440283751729397551403844791668724971944977236439277744414724842578558806378058659621661720982252048649932512322615607511106890343667624441898046115993235690243807047101668715849004394510166199424593340020741558740827011758632054094875123429381620987331243560827682437235818959697092400581854008346499122297892093778895104700466196602496421946471052463579848125480621793427877036754852655233013569025622159220800121216864146305119649339270849088802773052712208744633230070444225797867596302543315217539258137333412300352676701760627345606808393091954635744132200056564377880986331205268526390981024716681786876336211953162936146406373895944024634539007395105835368469374971756288204980967465389878495911622647461040582534268236997987977100060105972768658040014754236604730659736228407797625234605154742331205998367654773330948505999902439609076143655519901838943426398779272495051319401111537819405830809939929569212342703338693387302858575766716260267477100753498942576621607232296875890371995407045088976686060318601752570464003133957884858736945302375314863149864769452656619359136288565214284555825563869111063474462206178843344075854544308313430649823438207028671346625500549566650980695522034076013158569070921169664189925415564188129061534656113964516600753867501602603542731404063925357050697607216933958820150311524236667505740368361618792476076526474465949677165235541676000490051873957074093451290961067228042448790603544927369022861920920061940354625023810718364455531454881802106478667054336217670486243453648263147236995892437604077083269758454874795094498318032711896943543499615316671440863081030963787431963871175578623194830770216434980944863480475019854920003880815187091530245792568959645625048549613191647011060120074797832730829860458585849432155073254813024964900738025357126268116924989582258596922082595942333479442747979664716254645425823316308254643695943320611814436674875563352732788387695336455631639494729744931583584375287370197299575945714096755582642614327147444273870322349923330306010555687746115749338129899442387504590116674348514047925499150099542230009102719524628846171052038566476856872002473310897227228666384349688554582824283853310778993488347499603951984062107717752751382984449303514744164621376046912285934804467981274889357987915367356049182997224826265658770186421737238114444607824479485392382183234255105846860233722091593914611369765908820075028762951856819393598706309921648064003267630971029236226854002178521064563159405428899220481569234410310540146692516177656930219792154120143593997547966728712004869330442904265702682251399730946364242251276618289693102374564306733707605099198331536788004323270440486830705472261222165920260471459037542159313444655356251388539561577274221512832464390873677282969785031155576391946054588066734937114979357303076682412860015929761395101766107664730322448160499428731839042236842397024014516297456171921683101544375581916492705547486387891321873134907103948783571325403895672145310751372030635752166143154395589282976042654708076451868539540738576104260552135003553390777607659376818617730263777168589663626245382048536609412080717069769144741615388002829768879285928381461634510147808843309060834081013497318378288920416975268218463132933589886308647728855214690485010271493266236555423797691569926494227435381701999931795151236249041758956479094541395687405761477830512636580008997670626841039374112774452084424650471831242278765649149708509577401492139026369526590846692005939345497448803183676876006381213353012215986326068488534874731340046236740264989769636249753261283660252275422221735201064731953907913729971843760739899307118459956216220538511125246743095233715622482667023917751457592437806366527804255285374607844336653110870158403458805023278566754055282061748008287393973641862547352300030874565541234792148446801934643760383188083816539667930270784150480166060471037857779568578490383983163645642511502442499392885877015471027101207279371718038377067795437266261735276092410877599382008637663499234192582018464964505387517225913296343212529234439169357865190042938880380296302682629121565875842129532020262956926084572696765777275469992116412635108454397962601237236013072936253499581469090787948501697372089565861650266621031677046167575530157586045494849215012328931115892080375147672079196502987106465054132047812785889861997986508579987338029875344968337938952037898084918796116146073639490669621356727529267581465195650044757222000071722386992444535161459346352510628479070916206574877615898400675270495810143805612309630910165869828575418307430253830709596039503747447258698944161133849399590354110989144172390581541811242379000641002839459731590541389368503626344728681358061168901140829693018427496013983491341246786863181107996508629180793528815350537578765572859509835272583112091279475344200691293379877411329056322960367491025790153379068188008989880014888064797833046490869610010310359829257172081671775806598241179266259922009623040834960643860745861125099022373115517784352103798945336157602365450492414527802733012281227531849881720484326766643834983913463984600771909757292861251301744071532543132705025324374844503589673934322967506966950588857622669119805362141023846275714891519765671951595672543086661937051956304349981228190303401917083755069518540532296177404840922172465963666909808735154632318770685430260101717798427335099183520730802236969825881104710978539113580855458447540029845854778799983679810225403879200338434279186367140189804679909261090952814577117909593993596141189718451730544220927033265636341566483524121014433957614119114181854387599768389870804879094008125630262777684772012087786551864252053061231868915602737915814905926237740584374420384391561330078066956962913452964748464651697926210756645133284031925431381899444783529832705768873418241630127722201835455550755860732521716926090654072603140404355262215270653101515740946823977682475183818706398140698260470592019895731837861022872591262168440811099571342543467032025400053387083256376020148011027463651322144810183367967489915350869785000177067726907169665094795648545763992507361703792072151962886888018053522938825909572595413185423665600286704446478078066943181694033703883020392415361539390618180226063141382803526476359374299710192036213440215374366821567173054414210787216062846388998027060002268674716501387285027187209293412031518046777434203196081372183480756506241450068509312606009226676651929750034792376476461594313473745285920739507109599312390289683332490015605185606719313424644086018411420936390228326444992908305934128793358191270229505615990673639904354956765259889298370832050950519215987783210692193778199691027231770659515963054965086908282645591299687438900395821991169178560652661924082418925011441920665639397965615389885104363728059647798415626445270080067359857055482825495651446676166958538551168824822379686088255916115522470868818501056464592288373869279756833827523174300721679945528923011985890719326998038033219910409067623337345652062200680964525803253512904410697980676216532408003812369151684235686554409859472775867482803856505116548259119091362198728075620126314873811618321748919409196295537357215500380597454321618468996872398979472464393669592509006396009469986808531162764200041281684610548551033885671425254821488363675420627322157060513050733459604893343293287930983540288903767196176532552520775616067474823750334077997844922033002919326666873494116067107329074004307473170992148275917112410567235982195930734722769264757143347492685517781505957806338042601467808341960686645943095600899055778381051605330482966664556087591264529185954244923729334378474981647178056992549718527183133219202955136796905860599863986960947644039641710938881561275451270510770033703087210937062263608091290615536995795063377800732775983221074950935898497718739103017969684129321797437185445072761011401460014652018031981045281667175144696572702600251501013617983621381538129221264999534750830401655899379457473686282090770150926957731753126698744422512233556125874193039800468924858520161904432609987174384586262157777084246195656348600661332605177758269302649209271022990948152588770285565535640257315813511089893098730730141961634122869417294055895441137972205399224482856561192531894727480214716897287795040511414659055886271855891710398240439916780421362591633309036191523199252705032232965735770057071233312203166160202166699361253499648303715016334869932795584965180642101633573489887519670143587330446747701671796958129564304369708935170481855158143667684878351379998307411970038279796862249410809967266607066835101839418303246969702433352826301991703079993000232551067143130950491749069327432804229878181313873897860110027812727033054890028404532037470084098096611064569570824967472605316783856276247281277425192153546427382095850739709706081746269578327819441865312074045183515144150784664563107621100209101036884002873275485265603760625245576019729413188230551736623124651519415100390848077600702417681565001750268267721040981929587527979064738573810076021269505977067918197206562994875464528797075992513606286292290677058669808512954131303946265093181793083568464287944477952165328562000117058779968901485453084866555102544819464139249912147505970442543836528607922219927709662449571856649169479132337933524832744398721735293226652294007042914740892624226021659361498231554935585476353345634179200904573304465032970196447663133997636250798738356625442109114081254873223539118290245218059503738753089999016795113950055830903325184353666345188203107556582667065881145360422869636079743770804990389494012082188438381398349258480246664728683967666137585869197120785003779827220646950739491013920829563854173987511956639823234705696879115849206448744508985802417966273754404773708557759853640479595718014573109146702947005518818715893668285234785316363652140726165001462733038731608471303539104964935054797080491326799082571817909926294511482786596744922320061186508320027963423121064363808910522622004683460583471384882499016951180571569060857099671337329873461097326714264335813179753669321011480263257446408876933065506407311014528953463543493429454695579360574218925191708085100157610439553937390427460469243486148583396897844705595136597285878936277073294410157667456078458541717893045317708897036889457370110580969567147339196512039946609898531046182235818036040299166776662864733420597747226159629892557617356470593631211616850985461327672750755224873511556046416116746261152811362798983495852206622355316639906109389240521126981526864952414067012110131063274458350954187943580691958239995434088987393868614598511802665239865627673985470204423943097869779092056291435547768207285623321541504843731738889933749091552427648093477145150226794795489117977019751527300738545276625467508594113286029548137538909814080168573480187369010255214986779408512443425071277060888993571383725259627810949766369825374143840636913346690487661261426542395717997998843552871754229159264183663408288290816965534816657876911718566642441975208466156463136928435859608622634882222588023182614537990783544830006403907742250163993406631394064371585685382866173827419359952285047551207241584186944308514198101816828001399454674151775788841964799788241925472262327734719402334641000903063023367034924485984771408825606068882042926795762444932515186109885984500236046089839985980785957941747221270215233286945838640500442372765139314963638841671885905307887218782607869436876047599376913915273250410740314742454206055118534419609638586690279982996337557548600261620087623246260640275902608770992894179932764725332031440091501362235164615458367254412205563031954495258468417227198474591801857136969571360465733472144244774678664727075227033284515358497988529180903070362965951533088923586675140327706293386217098971871835990305034843025177143002537257659203537578914397745548437979702838524901051214533250469262531153342871527237664637706914274975193785795231180054617162181509255026602621387092759643128106797120061869046819334877723507989399613869334169920813971214028797939344981980971967587293402959784556536154368018372518431793456308398458622814825065933128751415400060239903128183793784270409154324872926116633657572236056265606065081186179305142578312687383352222236610272815135348657097796968695274144487671251309002780502464506867547996980976643445309167152794773880493813436352074087223256189699395695451686267313162437544444555108274827020964070934510134431049620000582708189441309124089160671794311664856799421131987751244539520663737156012690695671597406432876116606173212009422409790967680024955507237093644549679436488185453949134429841116471914680763494128170041218317116734563870781531582973540784872025923644946896000522653668927246155539447483332393580483448073350544301603039657155583085220440943505124455963756047788331680983743450365413098216356772643146670956507983004004993250430214267118293952935301047533124790890352588679773713583723211967998097297487065160766315982505437950030220157312618768205023876027742339080232978346335349714839032916869027316307887332416357788209833763491619882859092514684340073485843073922793559498324457405050671985027114665315077005847548439856397123342711688259420940914373681417616228322157902650834293162431799532215271390767366191439851113604131728179938962103376218401589033718890235051045874602059981765523842927034397686561884266755941339352232955163702691682648215280825138457307966815564952698183686771292214153607903928451283170301411927778752615088149075798362279305284557919445587842999456473236290446308110631875308686600227095857643848287986723548466530372678297402708741809902449238023843832346851579704047590375121346676549545637045512652797232435948526080763300548945596746222819556308988166167593327260895227794604810936947162028058126741061619554875987409073515130829297430391470011120939136797513937136397093627847692104241482667278150182312000756554879542631361644862390720893049002661118121322081467453204306084828663058620329529757275140369326738457616839039572895269619799989497233835064366423101280213893627542764816472547749651490265678898591902890761083928927731477452751678431828705656221545563688268330958534823291454073635203845318089421271510965545705692693534155456334567255066887159959714975835936094859870850119895274327759808237770925906218438823047503502937094961872122800296382304551976427152898070967938918754097244841477397574045984790541349148646078910527187755862487596204593733404898565137145538954015076915895123824723911751300372335294013163348534447392790790445268398715441008768263202445885891520660092649270949155278431536780452432933479471711458656777611052452533256978906432480330937437740250472056866236397818261441767832094754989881464091915465709323651658666778054409987100343231097468648622035928161977974054279202135277046475523722954690959531298918977721326431068756220232421525147854948575931273718245584827178861142084997772099946509301406065333167847889674860471894270275915734812849114310210747503244596214749350976028733933826390814243406429576854298764893786209826310799363723333265652607699512952309875356776431211235815695643120195611187524555529862375835989184230805086507384779834003210935786462128028284383406087990463724844701475848715416477863171146107085787235434589309442870639634026377458079623677598716146611627243944652738815143346088823336020152530390621373250809318318688072342194622025283291537270317241758129596605427962367501654231535402591925896456214590673998103955362081808210507116563996532776798125389544644566483890947898222076356964416074835926662695076859123247602499190408987290586964750340274454226282622233460115223620245348630059386524399836324888555556786375785101045504172613297022902248711077846293103841679896164761278073816179189177597828690686787650003789296155700076779671111275165145075472918017257337703452624162204004026778984469691722573734869575421076203886004984963162419264775641268839068034611654112131675849990898096024680939044421545626272343381918106820925437797177444535629116971896806394134679721518213541036278477953170335040156312279607709092449113478946217842335044680851031382992068887801867411470613773854591578933701651485627569380023163507154455184791158763680456675883896553983091127390444716120905434926203961643347103417562292044971813063044122059790225621627869901059308154676526733581882987889034361021109243977112508182514067079181117724192791770724720808737461464927633307634617341665250289620806307415584927521002516941899898409482519596497381911930394050681581057197860400698313593244087442243255147570304149355901553469459068075942360980368824572894272832379262666892758787733696841791262809081933769187460985663920022175123279270256080480257758295750327799691467569986531781675786505476327330673084128426080690705636077452367535485369166103904966427990438891167820651860036231980966457993778132003032480711899179644324363834190342608931908992239025333448222488995138813042664318228526677275782532748286271150305519084145087228341343187788025494537413866784433045885381061192898853463554923496931674253952267182483754695900320758326284779164821006689892672150885625119731246136153041927977175791647703852090355509508000908650022907581036037246581909659573963398651611306956915127252760063340997535620685591330436172602600407564787327071803913367566457167395708636009600793496221486126610375037502504707701453830549076621487740456814534874521124056722361732376911503516484483787500350975886983113019198698380977910890149467275229551666809299082579816514598787861418701302677253560315312101908880127731047368474494389912197526211087261267705353611177371340905978161533698821444782012146798799863940194375291396664962297876642542608714452074087306416175613171405217720825208604681876394233860563847525057951315141579794360348112117313414512478259692424912634000542416614777567715902106972548576201900435972766159869754883973939417501244002344449402846753899152235451929529160062808493313516009984356189491406130576879620733121758782871566617840556193205802029595187447061162027902787893285402547593347116522125517195038974147803565874031300661782759083838961917614773706284335454103202317029839886375368816151766013232734540321177962114660137828349096964297927798127485820353612944031257099808852433473463071850798417964109482819194219830305076770927176373832091486034313662250766244862899021120287940962069848855854056979587021948940593060554313209902418117497620325806175761227801618152598154677447951369342750312557080588542272318058509430669935243466648196192818704966952947543925057014573637938082371751629218646710462500308234932118902647062150606229197705923356979688465996283944932784017551084245498815641242388155494055603471727449375553736500809509837678393171772369574273576378831264727045823606127629067722827937329214111164351717762325680697030149699681329229738522771029530031898683741438890346888496826372445983893121798870761663406096873080708620285363588187884694880745893092513876947041503721964424172964961953482240565539206584129752761492019393321410330061822826658252714425408264269502960056291485932844132656212915077105449775089058123074964252490638185425016914585665046944964936622202905617991109707741824669110465791499375225892584771473402334945993636531165199576947346892971290646602342880551738723336727291726278094794932984281292172492802767043967252418923267278429564128617958742115687442548943813373353393108464002711149434555265768924931765931423543959732793167051403190779363767793730525770808960250604077068438348820995186078740175588013551663457999532040816109223853307180560166559533864824055263159087992665079881410661407153143960022344997834079881913801988500248432532209381246991087745764688376361571122018800800726414220424309465481285794647679146831333673534718604004107547341312740941999097951764026104108538424216240791232942140849206463081753575544795679515885165165588725372898413772340652714558834208479117621719789372468342132632365962455371622505928266109092466275002175613470395041092496655484321983488127458716101485612985812645166228490809788317250087350644601289584349441166170029263624093461361202432887114650905502148451788093022304225458386977606000043663500986259061628131355056140002988092459609373845307711154599150070545674909071940149371591343044170334238749224891126232962360168293360400057100908644406351787198111522066197900582529131875434993803120074208268119945966744003031641248905096672506022617808433900898722081853035218287239209059063109227321367692049319179874446670873193750655942626511634574845362091992195416017993478973761953553844448535111764458323864114648766902211431149886411484308451378157903083650243135168002172387861670172353109339766235751917137727281465908691031478126643201759212829565908728945007980639303002125669551573597916439735472588938792623467645175832783628201805112381336771905484404521221215252550702249319358810436523544560838463128539351784492618601082626192282402207215062865742337826577128810805069086780046234954479326755889063189757776112085288740547843627435608205988900248342887254664319949307415586572851659421015698124860523450004454372076019194108798335014248046161683037854506087700582281758811161270802846734594368430497364929157834320283134471320304083663855151023469700450848248455113289123242447450553499573927289424271754742115634309145259694087234572526895957783085105032969095185819540026651786562810130537251266597774346777989983471688176259669966650418735753672985888689221295346300513705570486269179690760761557658815189835116922041768792128884147052901048423811326924645260501110203654360245501717114734068142416737643992527906875355848273543491510615945725076492369343445994572864055967597545693010369623008865332233451532993654734575601089104288473837401826508502451953759169992495442654681782810068566039788368506744297640880695654815934191250182178123472666150453433592601317472847020812803165689008819039376907688491316063410594334474703669779002700406290731258920413060770347245716872415844137530738905386330220016773748908041830120788569284224995000694065688203913151563361770588282226366675090404021380037281092343451117697657701584180372745310636189751803784809750580967538332541372545584238626669035113767590953973538570654897781706188630263389780004928299247634924679608093446223637840392703425053457561142080437084998980731190628439772587962752403962156600079788838525199432060049219738775384283826636798758243663942039668503049826686802706177619529052604820846535603820098527507536808396443716989365695106993115665363678524788371141346192333492338143704796340076936952098214933162167303983790642617218114831184607447116495565603341898474127705594128425324940057201572625769088392027162033504834955136802993832677152984538748663823196531079806067723789212660074099540489460237557104747030163505318852594122396457704689709466852920424002887205761757643250827054248709610872209540286170398328412722698556996132662140200935603972996565608388086195543333814494580322919375259865094656247093894866786413405821974311723113544140627583269302361613553875519445111193968116358697195322882641184697206905566404304777267004939727525208622811370293290748167450763109187111144792147636437841380278248609932783829214891687999530381634517810950184313156291855201271591196290443627353048907022178426936304864137781571108574058564660528933168421420449567050429167279523657376081297955017468923481713116496456837078462541317738863230916581068051626811867743883341622894127469879492639741418203419073062881307092661252995164501454231906039660128800353845112509608113516628540233658716278551364250636173715565713243567899739878152224644088677588084566157331204164023205519334544145645459890663242057818217186798613173419179136587159469221955998685461330508705648286748828431923111787133960263039721277711843476992656764589750479369120273611204457767217611236243696004985985507634214281970182720105055527131584370402671013391237325155965211900022440339411860283115077046932923443410645465743102620122981611215479284579723652039329229469091912777219621726227057043102292054971156494729213186390908827931000713644349803899938886726932253240163643562829389474366860222878765289784272579786733409386250973230390031848537308435108811564608608558397125349604992030507541605924032342043850886311461692460010568420444642311689758055917378394174182772759797416110877599868442452449674075292891849110010343608771615394072027732598110397933502204471077754054862234766947863100966170665327818071433011166487888665732510844250111882736844245739505150188888613366936114676041081881948209315646451592383560973852083806997778549626052772028966998479666933831079132916218908166994450074288885847457675286830090938436739227939393819454535273655128200363332164288689343172183564336161806644767251923611691039090657686022682854823897757820481704348230941548653093687053937348774346008058600074340291362367502073889706056999278090657145776398705475829421838175586331378102105219837740587459047020680399576669545296614377461999540007324385810470855207114807745219782431048165458004181310125447985514444992609989807041350900948063184768743240321367954175780338461501867899285551543968797031079110957813073703184226802621232091605823310311017731430718398748811782592049401297189288452701477677105498127886593975602498680614598005838242533836983560353583918706216206342118559287338565250388745059934644440639623401461711804274494407706240054950232330162655815880399736069376964683587208462054818064838310581197874701293485204485028675320853552236800574615629187970217135131047416342684529532385309807989300949554171739988444477831101043439050971123155778895725172222865150310296754218118747779016734420624953873382987853876501273977228458812482236742060120334595905447331472809039631850915984266008703648333685880642064020626576251840217137026944727551983504392331974977981733681146246352847689524927942390233732062437445095039746109868222819545867356117656270011165041259484637958560075905984723053201504410192109500281700834648284298628443585909838031660545311631724508808683258336767292065249385323141055405047498101329235613581445818532881702447954876370200477002550213795237614147169211538778560583864985970263178296483242922132879596269323880742674049010250680798580694250198291559503359891540922255207349177218237769752347758491219152245752057285037511920459517550489025943306196608244178238106826815492691007437254581440666228381885213103771949691106921228166637574322196586708535985847262903283945860366714694204222944793569111909521742599748898064379972167274373239806781218256121303898720634161336953394517318235338087387499503823477513514118629337863113939544240258935993671635922653876163795924052349885028439142493132170835356806942186812180325429499776114025191263872342630043292946585568374880573910597213877885785306111799830487860578822452101426142295210060731741276663988323562889799237692829573984532078607117995791625992996585090608119602414659079503994422181934748976706433741339204061596017306890481932142841601046470348789422272737337203913160799829474646492758251838264576243183863113332165576949737419329567393242950566508276726674498651913501892221379830892937924276621764900805859381392010980373903676526543698324927951834411656694433434146478439136125500854047271070831137632522263368345799606266651325862226744905229670003727831866910661453027421791972823573897195919286657752222176189240564379591552524748906869016204110326580346959135704142313536851266351710261808427673367117016224034923030977350308991107952794744486562992116861860012902050895305656440136085553882564459663772060925437570696629833836619991248935435525856524373342510631923159254616623045856971309656336450098344533799079277672999186258146461384648945878620818621983313591001027891641425501961516674602015754969146865403121795984360140242255153772298085775668435843282883190950855816659398781259412937265908167303068778206977928575072598486209503816310661268530524108555722571875153775863871844993551928945948906961116719226681811343446159799914323693161846151429850440489688934683218146919652183541231058796504148509296337438342409703249536376710138166508310713300329406143990974109066674927136496396531869631738476520046744929056635768586123752658821825676410085616146029488137207071065900458715508115204010939812512339781090133949428574374033585513346477911529784270629627795006785213888956793210571419642056544424008976265452488898977373348963075317509535970312173793471841728961046990008035269929643437681596390048357659755099991497546446502873705195811798609436368028198081858239508110348072294227329144245954021574841063746407733541752418388995597169185864981999005774523038163556281177856254679308627499223773157624504414725082961021828427339471459240680988991153994269029692302907647797506799655276288246667486542752571044040031924456301958019839054734135020906376597899480197570737412830848545352225376771788040990236810811367398214811410261583009354682504951928457089366780058424534587078743174404460813713636308804347007510714165719846561540554669766116737692160027116343226930429405724129557262134830937777439824590695390201217352890953261943350446144207458673261792831268873113131724063955555342354634290274201298789190891827584646874583662953891922482419320194263933591668454065702933608337858556199017893374050761039299056127810164381825733937301370681415641574202038392891800948962557526045777861413916295734960597286449462047188851727452247278115526844779046758915917125257120957371531911611686776760769816262904452073721448811799237444457060172912962680621334700518151310858281773975781740366569246651632722736187113729097758332086196354704213146589763196083326559795000951222913218860075398620481736310388526388541087865630848538171861600636337724609285999422387396465607350135665203055562180538095226174815754822068611634828820564185738733760999461465053965179071137075314689015632624877591708005949037083627991276156789887077070863994984248697471309633700020568887645467086647390370101324245380387658472962103367428401530881243554010612743554281991700111661622297042033728818973966799301476587285373981532493874712420695068981801950156206360460091933034849724552510109094457705952097186083863011533092620501799915023657163471933496473944169602563801405748258741853415170276013856085377821762184099257399132508024494243103817787401445653422380242460824808980874554114694138860806572976453673891445496056537249150704427984133909813516669891494359306869704878731829554971153522215159880320646102960157738753687399497416130897376314167704865985010807542383385536527656555206521172220365351857139307614175207400411888888548172333152918540441273253222926389254135001417433672089287136147932919192941425154975341249879166208209190699290137609418482458876060265010652292476315384300459055930090888526972876167968129226804477227264111285782674291351637404067076747388338118093801403888388704307457192059475920410257397829938202656459221820606603501584253983196617657280661176540650339686565755803135751519919651301385670685959663454002178494500133919414299592472198977938026778548963792952679166147423493062414683172283150792263807719343439137659914757563249075856866784084226559929244596156335586194537906016351037446006834870942311677994828034648479210210913822510643069610643042468856746134903170736226083961993463974257592036799795997895763174320023550528778030167258796017135884586173335011960696511592520022837028825989081347732938966036090749294553998318558369704450984128142485864749429640127058724395604635927969365390690611658735187456120093634682583180260456143200129787037622019484410464735519164128364263553577594006971533918645690287907419379454107360677565409520476049436552405841675806032540522629624893190423621684675061780780192403839834640885857776882828801527205098073985048327355641169160412433526253891783299450161625726560412718987378415547472354036172449225361288917487249445642091616229582310319360392139984835383351738897140259981952180386441441881562894486550706200488722792730264145273012267565674213960523991617776954652156392076790725946864851737162280349376264287976570595562818228611579841257743532897425117448217658681319469275293304462462841703691828078433984737494679986617507609410814606145083159802883972303954933983797898156207989781909906943406537145568990470022282399987050104392642273286822066950008297647429703559309557232932493911140104202669248386387715313461811503894591490638747909728400913484299305797323155297830188361207398452147684739014755089264337848835950978501715760211616295057929069077814377480780446359644888093602473393716718101084180977077224199665909478234257366220691425757537100052039362084055302586800258810969560186972044849553116893895544406106665918320868041184095078397507265576801085638809965091516599070001620796796278480076894845694252110261805510567820048055462377049643401857339705308278295290019634080991519569887541149656829859366122491769561976995287606604870694734770372843798135645399536309569397056552248744067002305576169908168760891416749973604370750047162066139923905340306301108263525816097254820644771314728712553592924914606369719576446005552608684647599932618787545426354648655014929199774202131987060989254320168582785593792324467494696568142865741777976535752583528681397306292118441926790584877885765990645032160248694143344466642277138801910440626215929227011337324855840894013314389642974483075984211910023900154483078228681632148710586174330087657024275171610824188791977905325841859868740479374416740755978019625097848411738279219830747169039377213331444607402077817577334338855494469467763765766618863240747392160310965792560305154647465595020658757426605148968521896530168014379813580896485750641825619239436158544253027567921813713947751635209265136372845891675004294335630712774774767162228066347361450783540336545089682883873933954141867638591213924459350779024304252461646726636847270988045450372853761011915014393497170364718548349646463983724054930860429792726632735112965959842899990883077267920990953580217625947002894542952561010514752707256349860469596705573495702876630625805292023375799304089424130397235912588870624289963046081979720308254975260096569108909460465055468824367417563011798036051075442247901716551492293130965916958387033060915750906451334725460810266810773565856266607948675820703192367102760052605116936403112734447416674615317456368505521499781473142972742369439250223578199093031606409045583824883465820197488012045159946212563718613800537859699396089524864219571555899492689027886058374099770977480726665490395255322145115297612600480719941997865991733281177381252726619959829234960528443963171467847686991366098457674844810660542843415078166323829233628791651547699502881597198425126207650279963258182836461396813435782625453198193181894188916837102289297188031443035919167282541800435356673890312760283898855104140387044662680555989925125706322810865775494112056723342857311313989802896878764985254947146163749335987000656922483188389051950183448497328567522796456234203335047604068424692501142302426938482097518416973742879021598410474923114482575866386225601408993409423351823172884381253827445254544500653259806222614672611247470777156259825377290741352253878169428383302835898123159363065715158603899401193269224172556748943903724594470770947387121185178767911629726716108294794883007636682395394664347027657649932892569263705928445421329651887010700683122662954098882780497069871064729437427261895716888418862075841691692924170683872296110740504768973366652562185574047885864547280311228076929869232348964353118161203712191790219705362272517457972520734647644792401538145004025727729621150101630369175266476303365825410300026434630702852141927088414902290937510739734634122189428125360401201370434825078841777280715452934762973088152867483173111226038660703773096320699597928521185167193394568595929337100566982769594460854030996340074674917266365322010024248195121724527032780829127022012478118516105342327158962359442536344852790405376789144369700423842999736528771062392843230538451935159908964069996478153839689671387459846755933490048017239372720975273351032791058379282152344094401882696466727138845305511521470872290908679111654177529067065558305119511893173698383118456928287162887983578885069337057927533581687182068745769562510583357969844814975450077744112160269948271369957144278060216397059143783746131167774195448652848353310479883246942624651477959171735831031669895502423831521067209229456007231999889081684355913294975572154751824236368935287052630826956894171033573602116674030875176504933361834174321547928618431661910482360522511219120809988295359117889869603947671430486240687656188691356611150399422732872768588971163835466737277606478491155915066470262922454252842130679369991232179835261619025939307430947034371651776839652406734809838998112912251524169247638388185915280735089211127389392128778842318190353560324224167002093469174743474323242616875316141747357828666197111635617059940049267740688380960951948288362778071826804179113737056469267206319302495899868322099848579072239716025680676486617958683094244701834572194627550584742996242387651072509530837726626123504715548049793237308729538127926789573739723815114460049603234030870902054841463153896522147124768722801713502539725150779845226948431090933118923737365960432153454026777164950850721896229792420235017852213788841273633085024764295664925308280007849882438946822973419612874688217055025068666122448418325452580540046346479788858832205718484049452684580174994135834213714061667443265599607879965560262547177025589745317814235502495075464075969643086551552329620669413375729762811585254446825592025660723427610255444370787589830086929546782415079360309548647154658444923787491710995595297013796824642523553753016368587992785115173044975869074976719246075388886195735908018453549624762165232815805389099678341105958007315711675470443992457511062717793042290360713243206025667226795243078242590143047606427498727040737584126882599227222739175638529741447407089419129558061461597284576808186528801089417863792491304147802506917321684351437616931464056359593957739250644326289289730088600208926139014204617334871162480526850621852757779601568705069636685203975283058020679160896562986773484883822348121605672337086448881512668134157996304449192353428103499729444535810370721371672180754466169161841396128010567850342550235599763306755657339586701691487434087001918507502083368001047883402346206362838536858494708089549200652633510002285737587384197979876326946316611055741858347005171696841000050542782066962411977538181459604698412326017579398578403773327291569885788494254858816768454407835767611822155984803485528710726557895142336172088534769061091553663502592221736407744521448125671534445630362661371429369581106286062239400127663082229348320314873248905336958819478848150100146510599685393335547272720301714136384551353523171037747013998412139051093444950519080827062077681798214565005705944313227275708265844413175736753607081245464324745212945541996500153680270512336826209879724691594572570551846149069046918767551207021335291895854003102322641314060223697801210836921876008859903189397421059635692025276610093790997987056447436350945961555170250204464967459196524780232451830559556503883394326279700973295604865221663624680089831093571320534035239902804099870738684929111906316180464617093104409479609891053575911354611535997801900507442037002399499591547327289354053826694662491197220910876902792425011044347615772438747343652449549367885455306362204384598911418280875530895706842311073018633114072633334342097858021845779278895987576249247200985691199349826675498220392358691494833930612987653374113520127403556626831986451085035720752916208077264546095830156127835429137931020395556729458379892151237755991714503641823626534790438082732552956221137612119536562138949242537889978147805395864894868315893219851813475548120770840499080764253119111565002695633196770898265636382740321446755741549572081355073771164798611384026044067591101589035538358707492071350128267864307167529483553190354686731024021733542152498460748954191005967499830632860188379379146111725390678193605257576270181844909722428168532308703616022806677289581299310664351969799829987199340944105480894146060876792773127360233582479454774722231090983988200609923191747572252317445987273069787412292020440539438578241589449350246915092173682014995983225647517320563047916054963076359386619825661541366856984530513091861342530634099998364331282115005082923728464880472152030943675373657093467013599445070172381981318570050942100232239493347675822564757434895563699733654872040828069804062965937343795294342606067943833733018602485101777170408345103889257086483276105428369583511891253941926841988097899656934190630104419185644363447245811489432152925495805152786820859276632693832755559492199829335513618244323313178666499615038909804615570900764412510046142681255503136103712023874163351039773225542346349508346016360795150802693859500213130606948391402968731174002291648841502898618798754600513942539640401490183407776907356147708333324201058583372956255357186033479003827650929170749921222489102380223620942594093141870321356596966493393416383885368339760803885930114247868148556590347773183913369004675204804614014419521725121349216916536621082340471219168591969007465351929488692746964447330489961857636408773407062307927283693910015793260308155179426351250066252551693653869650882137222156418623595423459656586599187120910452364404728970743260339264321069375489543037847814973835490298420681435074165300783810703269949860681011313239747178097105162775984816716720125706069613808410329270345189741386155250254120729665355766559284655603214271343242442923065767511983447687804511815889726541443668422393128264144370067010317386773455165079667209014663438084670711924292346796909575343863978835550979424051784639978875778978691366258832797311111526816465325874877895925677487516898025661264672477134830938275783742889727838073702301419912814604921649017068653681435906703423792957307151263699859280188065036123979845682445199996655682783693676068982575303990397175173312345258350921279578494619551682743009427329812427484972411521195878271450584732071002864102515258909869915930940244903461818585488595966406711884044215127088318714698922166469163425306819035532548654278311199058372842444802917483732804182076330329754655407824190214709059340009080979645823598777409241562820020003557466612975726567424950592818136376669656030090858945618414771389566842108559137636789458271484098704013643646183711997048860107415867236617096895651286420609550351053896865148002708391758410695085208659562253947937744649984669253278161805674879781599355122872256386005172255782530236539847459652678825518097508903539841794753382357235923749275989344672714405251443056951251752476438261704020584628766076604073056522098838928798872731747891254834647921375492893660840064900779454409894282883085234884108835130491530590058997183671846383248296278644979942547253029066129384538629842463010679834149282639659992068013029531895367018592094129848192839154283756296651202237861867773911597385381678836546135314850984856245153567946836113891846029220954192537417949840450100096506601686264266506759061903261499613117101454083339433606223822924176599895079301259044474971012836337173985876719425600888557475175846432851135982456406526896008794542882523658853132152444899313406099443139572393617864932674020881248755816950484435375674117971909048588430748309686577829727180172122819281587371900142882713985516091398707155051574163038314317395749239726468722621237591294370024807274331629994543958162501602250779625884272064618860739754866678202654233100719321525534088728757759258637495203490793378547180660042261961752016327887478071774399938996970574607575513842245739649769113686461064177749656472334235860888034714585675270501755444569287805637294088558757283148596946577691578079057324922080666542271600302599243691939909836320567215571607029404171296593720791574197412405406023813189189421080461719902629783716101600790832860201237421598838232427614719328360600200807433552508771148606872892785853295042962904492699230055736765724327957054674936672220044757525307141130707680252871746994176981410985470214458020485320455286173550574677744520724750813164440354231554426950620127683911201700460388323243190411863243998514919142446635989583656179483975058996371721793200454840636911896219391108994153965502960092317316714799144372083525596626881798122130424906157899560916181345727455082245843874534824890274771637155924718895559761262693143489763691259745628475144683745687643171883439518236261148669058017568489877226036505891911140489777525162494146109956255729221850126665827910402088686060611701029074857139054343781657618630851903061626338175265932837519826407704274561258392308036609559144966512484587013954358154543554617095559196318952223958743450272144492348939010440790563051284709702380066607122027883424360119284493050153699778978954671843186609350475261952677632628811667308830678967160926679333900178161451492957371766688831799045817524143956892814861568333268849240399913298209794926448743214726962026359575209599698452602491227052501821907638230491909592607957630140306422200833958730171017714068758699880156051453987481884167007738877946685034545262989940545492821472294043188471888117768764816929725896113304822499528086851181396256711359984244138628383634754999242400482217138446084762964760962166208590137265128967475689852701694298487361382373934868626362014677467919575601328304444738076026284059422349755025467076376316368311076654162464259683301828305860963797279681017463586744774479769250350093743566756912647033636012378789973664014830246129984736564305293336097681399301210370680927887942663932214073587310976695768800126176608378921649115111955903876306342745559431620856984334199051979499749443502822655235678130066053981616122363259490436947068993521360236094308632577898339162633489246858670171865369737855430507333180408260235086412176481192480909052985390633659665864392873721975595547793883018973686308135054170384852682006017976700630500313330333413111996324932936316228248042171520891197779585907979817469061006463244153681292141502984649552408463966581429809941201893414865777445620588932219238355528715042697423713843325087188890413623072137043438684575670208894584524904477583344428364817930903301439964672396694563118949223429054043304307630107666350701471943075521046464968099478236438233029445719685627125591043069469232492162805662600097454167254534060244475180433610153038164325379304780398483649848971452291522474972533906999789578997512775677119248594195502388563356626422891915940086349336546176637843271516197724599339730485703142753447640731669027636887299694724702172927956364266390400931560968984719025807023267199655060249825236781772056502868717775757576584277335091757218400162766041806825007843586240130573503839166474706237727387061274069030851191075769060426933996857854043096694783091547596224924394379100920049339687068698681726392157736868620134684516235737545166241996575148286868143840067383025259483557424991242560478391816230497263290847608706181037735301030714385884796412158178576167190097011409548981792418988281439288942061120597595543389182316733481119681868603825871144882545609124009843687017576595813763887628262900387234821896274560119643325059934173106978140218698755150410504421744779006036789653584171025028982201263563314487162183932829884798430638842079873091872016017534027246587847737328657306791650354600175660621292215996967642443938305245605138920655038955569999646925530738666508371205503488838003525969696808999092534039778865314435902573109651230469096421999874934751878128210074733462760012171632141986821554132913452207615772803514539818986964250966499365228275825683873390497715587963490554016575658231760846263490635996873358604079142126016815895670695920653945698078276189264621240977428410594431999777037604371261050058330960453279392925108738506133573273861260112733227490801258588827820361578704844907809342106401987479427136761249908311160012184712177341756007143404781804014194040302429973715614261696973863030850087655965228031362353243094870182316851870075936903802310371518249813549981210852061916922574096825907427457852166291815006009930790523657267856599114869456257646318940913608658413457699800654157479961940309262576151230884266908716878100629604787056665478213632108082035558011014441986502502957590563906893986625532389839409553261168395336924077783603609165256819950308242464431506057684539134370919874333692203226726869410843531120029978689294518379022036712956049659152127658388112248584435963861048995117424426961488755449004545591535001260789716196222064059639180924059357985900914328206656088308015393220122011934665320398218732959100546840938162867981359298211541665420271059880659849963661036967488876252335121833146236932585476400070130264254201966695891617603334921552175475296785018503930349948826902097245952714071538486878692181601541437794778857703804750840858963703101013007835087443022270433454230380955780981617130008442950644888180355662874907427421614186557533429374497992487711338784205991538710802555234559962098141070910780527409285932507046621795730092245847619942995838074186023186740538766059359825040506063439744670971991723093931035841275440394897111690785151619774592140228181819114988192199541778663016968708637607767315279926593664786058547817506808988348382243867580976264514005966395362204828592586529001743521873796705612088765656826953852216078726059374488672851836430012364012807866609517620005062270183488489952027875661387031609840030130116261100428261748562549895629444362405516983324563100111623978586746556764925923903561166401216156862771134730394392020717459981277275003930623229299599941048952563421036017278551009840664214782849508592619918020202462586812009821114246092534798466114906809357043527582252149576413222829634780819606177772465288904700399531658308912854228038606468041657779673226151186079439760937977841235361118522886573032638337607132722789970738944540398031585481135627661332443839539525894630425110034988697020639066557163695307256972655894535195414985596371035442751216290906349292889425497624687245082439625397235194858233782051856396958965941027587634016015515010479960553220554545682225558370243568758270636715986745265364532318882114599861023948709229730291482840561322140448533467796197142588695089829338236933688754543719883231027824034841783199558039196484442166909846381953614889607288032604540368010075457282241203403976766032266218495843860832342125953775181973251391378111350979040292566397404432668591083899104017962379102687524597986238026596823245545238727569193700012203309656131871205457691644316473743724905236642677905316540795513500470318880162677427716272022011690428317642178420957178031932117249836834946882799859861593244394015951601066005719731921834269552572483124209482215752769396195367184463523356081249292175336161694205222378409498100432766423263448864193868352683679334418825913470786440377646322731976403488069749480233981208556889071782145189981719332877873838513720932619863164409000372402884761729498326691583862084828396092619972496483605582891739167420505792841559835236008567740045230437267133214554345546936782532076992306742338251149195754286384976808445644109466672326622728529342653224851419893815151549198360840338557163169960868435756955825516939154968753713322506588025028855738913793281704147473181817327428702440915072105643012144024011426590101615383613945494519252863684635932834606587855148348395820836784094403957649818236887832078435043417399553637522808232246269250092936807998472336787746750862814420181580227825667850004877129444336344167496424547718879768543736329765306216051884215666445694606052713518477635292812409456376979243342393700066701738520603165781071829189613441460175605963487564480962093519133182132593341246137647142150772646023203364396965029744668453306807964893601332631424074515133633529050433866816138039522915559676875442032762194934194152417735745609672723701662523350543579589184288803399554373596441100096372799181325448776591235367559708518930673586837264128703533163657034690410963506251197033625342479934511370366974093864595820945863194695936321265905441900406733498514923652913878306565539287813607158892338838979858318189348677685972523616588819155257359463407790776946150614314726170651439299977691627844223766274609185260639851796822001304664044838186399066375130724548882998897058338853306540958479217292790578299882255157604978236250971232452275563120240215787625996225370946318064977025024458179201187765135445650359614188263187471639541942450243761195200687279323255588956574230129178905946879089819587032502446291444871545122801165140682861781159714126158670881323077589572263156812503031749650271016584443405884166802934938230956506894305758235806414885509386294492906341964508739535497224878703741384153206875729066940748195996894817613123565349073386315772838397380468608306353362981774044043431411525077241896899914309155759335808480858255725701848960666764030883052811336604584454067237109594042717779139358390102915602816748861775018372348464788859450511776978772916744024347620671903746891675516595828064408591147839928663290713823241830513486419225417077185746812688892999778873710638163913538517961091857649947015942904265034164168393696532984061812652224565245808329992009121601651225202056108968821426494915500355079662048747459752637913378184795934472630047054042812846829760971533815353978883347239417343720091823536049807851868868042041712470264427808247457795920195642273034073425528100472106080651299220174295202719722535601720627961799220158035365822453871050261669179574875014810491352049580256419168361101052224286754097947863159255488446187861002440433544854881412599550473623182581713396207067645522312026683785689565510290948847030600069991464397152108072064037507533338446575209282608429846089123078851968442594998071592270091205689052889694051820128667066577160418608626084154640927208500778122886884967452979113098819064188175148160415157371735742846726462994964133754721227295674285324442146371096441490814903979958222416402865173285380596766843198004263295385117994876439609547431917243355893459103246305081368747699782912203637935435630974980531116833453013333502944096871500427916802930054176451816072388437011079765743896725516288866072353260453129306629700486760459665452109914475813783849386097881230841649145853081479477852346929342002144831176880060082438707690312340160215253961792973480040162809538423144047866313725035838523038290725612447397396392707383633505577890968107126085460811553564169443569146679718222826512043658704310486427481980929168570091529721549461202414832634641915634973691420504867465942295617837545327713552156101081871249115077408883024461827669886435323516682473573420114826129139422383181534180640319914260717901652037577295997417240573891093344645842144395131368535491391639176079008812684213914556870928983310035349101767676378223477653031038660753374669728045121871855973661761878974826498839590571380586592487404854868421817814339324780156636540326109567989646087940970354416514082425703842898650914188027334799762723827047882571966064565294355665645891127244959243890102833273099413413995685491719276534793425786723443607424472402020496675155943150121845091976732883370660827484468496724046451484470531325187788246911948317675733220957227115988042821322658746450108270870215793595162231208090353405646851354106542906294980376040801978937770854831775026930188753748098631793551747483704106164499989466243932751007193719075045772679963325388450489017208290480579495001395805556101388718259671339324424961200702461478119821565240799619867654477288899047986849653152923106467721313006844506376341781810485720831678564170239042684045961651742679448363349244631607602854244671255422235645020218311753166095701953648868401135617031342775690801107548196166780535853723427800215813707487134783497904038885629008182097253319101455855179349193066262352250902805752631535097464782696249324858757250646713982060578428176123227421050465405593396106815896233108708777350636556594139887911858178453314459261701464263001822830106081995609002701938797846848144358714720489507487086596166355930122494359862184508580984507305245609965886690008946301997966191017803980444849914134053849687237293243358572508476565851181050931898887703646838286723387600135505899593870849961979180943721336645613335574799422728016610573168140857857546633633203021532841350740636743572577806646951225375611468761029279111506038205747146118111726952515567383805321584903953515851945281733670305618497540111216108322846632974026886140692211843466164195504277758071074456551057554682338705387003373667602294249954148210576907143046967366806882570225604988273364412649616758456595068885183994787584961537839454674024043905849366722699851716977184733945162791714714360742248489914386575219591026980529978286460881016646716343918867970639060026315053956546230449555105621155848198783102262156963029942764100320391054722741493136454510597996965329003165028550050310985854949329997256594587260152317241282736672306566679216770094928783481828279716865688441414245422940020346021149188299510629581171127413500582906160496486049321847963710816922747828218148784580625174360051186741028207028871726845603549957578646327441704005021364925970641100917800542674854703554909043963496308086771546943324381159368235942497721101398098094810883786556532302512822483391992831073937464622844833161768976761828745523660547549119207418484369783904974997206069888077468639214705797014181965368533796884119828421187188591125111475174543988058486060003503526246351501389708215596032749130646504567562550060365517404652751911555377489772582361332259444286466234197210130302418718384909172984033104549454503952056728715398672535816677652881693378393954168391015257931062691392652650410309956400265777599917697126305394573306969973258800057770767771671818524979865864352890690010029652410990944188670615481820596347670931347487836735621780711210142835444835979765017238946478665594135085364955293292371370517348663092872958750520968082353556553096001990918895156188178680191608595599847490224346922416970005893966147559573827652898727263600456421084896406071820111434056541062946104408918092306020498629170137005138082205869608081913536276085652531072672960484652850307175033698699742600141739509364970180444036410872877486573784284628488529007574719558884654618322532917123172045091340297135859282185007436461164191505037420467482354104770227483427400199605743835861906534367415995535017040425785729783916401277152488021363011374533809249866937973167768450106285382122850370678218887527739098750185535653808264508172298310618341536812577139594463109625356173056862572700608689363697537374517838852898705924787184139985826884415164327240975534351204639983920055713929272306657176637099057089880637967112549549304752050296753243136148184986952117781667525913398443413144552956584768041649868570578206436665168218069831807942428913321659651159745807510659405041521270079866514726139762412181966251280158978150775663948252968433928768088517277122762406574660061468378000999991693974888098241232129184417629523383155652955456034604011000305666490763614827869198611778068419422253217196759217686335434584727814128720650463843087696244863990584150558349585981441767260051566637884758648083119362548190146510405263919988127123962059469884805132530350857504946924916488261174339842717066555404850445657899421137158511746708814408088234518955440510524020126736995481248031157118123892807112142813313140532726768391918110237969657705781340663036585881518707910913420587777299791691535766429218446218959886556869533455966485058873640514985348779289605714559198850220168024967912391458554682739514882405162546011977962687418201498000456626639814312632805954757929325756187773224919861130611313685997062046136584637928596006974299369708969564682580572668630518470302160736138780844339067736438129391528534049749555960151652885362676534055455154104443998339270863773098087107865687926577562048918576836797615045302307989325580283094825544500441024792741289871023995615711820255502146910148147924728154937815341970969676406305601176098389860340838722085436121069289953494867147100072237363204467991687358010144157839209497225412474267301267869379171086540381357130906941453604286219372584783604286855767334461558127351699426766304567546499035695205696650195422681561369688609099247513546812044264279535919089362663929791110159220329914847655269100123641206272344125571121048256948135025927863111861469742445233243230181277004568031037004791523309686876290566180771592117721118887575616695793145621130504288999969248083737049907903982347783568985155431890432950554452681214092114254957384459543922596350787248233081529373847274232728626810383414719633669762863781658293660624662757994186145801742531243416835391201998884077083622770781190529645017366706461668335048182583920465620956895536437413922169699590134129910974959904131971294017329461768122359730830510359484749921366141873625569043902907958198391203946309010918058968790062791381948614211314075152882477009653389320269433317837393328463851337433456696617500451955123881068741353050919071957173839141834781138683110236320646212350173508207862304546170834008782015527956698298268124583462223905972638506518558432334783465022920556893896297389519847089724744295659809247840122225571505003238774453697675970740386308000426454541177769269233723653398471746393506696678705635335260516548349556916507441953240871329343168647540118191098812791273060082958579205949494560813227021113159715403476326053747010565330584948426820640472707982153887352821228179999613840857975471304212880463292236412354819963518876069746408109821109398636240663042766527634034477442471468755661007567323155117068049252086301977185810415863699578181974959954709262045394595152830963024708463243417237308647771952198822495543191109810536168167606579840454842202272611333273914360869187594751581326641126769088953597369719559144721723119905749312332771644253337687993352143998451471863811578444554332473383526427685073144058299966686249259196466350395991757781325352209400431368834829741837266013710740486018166863609293119456053456558000858366160417997555383257603913089117216799238544421678776320492461283853579891147753970756585775328881093836211148950896764326841391824506935367975578074915489116107096475312906486347643167719306926596568506286980633347881080821016338016531849379143639206266698986240571447783927197944541299158186502321991653093294169996900329302541536581211380569989010692579700068409589987094533754018702258364763893926568957670155939716019205534207365812635602220803266814763848082105059945545440383606408449943806860360814391535674972136695749056321166873837294703410994168651687251220718950595640792677673786275733424630053646071970338207805133585517202894491740043155465284651371317258561493321967368445350459601324226553397926818708872485117104999429003535504608121981739436372829771279984577767952772072320686660905828755254175032200915327180111768628304847213516997148144488867965632785990596732385716768013717991660540658481354558670991899836980274033487094352093473575951104566807177099630480604796893940736803750684911683501616663773802630317796649912677341364404854925199058434721910950405538289193767536848693776104160130295382338456243398351551640839476246285541023796013347939064156789598566898693618607303618635689357475510638340327737453505101596407278531333412303896516230124205119195362707963785471153139616783252081715811208681523339962061582407041957150702840598876307941821175599935104558759352940382902981925788057016159648932204986927679884488970920650043877503613632421249670024538703056577039534146981989332416889453969073485439977300818900518585810101839035037855153097113257337525652590345065294174321605149356400215319985780034812181380806670269088491931854017508404737980721781462017511002857693259379421713623659398297602916347200399933751738796761427263596772352423609397664207694889714062334831249149608456805775633624802405763350797712093954442906465058945510214186277312897941686632789472766873318754484968852848533900584835521449559456870287636802013611653343255606981989708553143275177030646095076572026199034997616667227813875231978663553558272846608491550261090966273778690348831588221751520376495425888826100533163368699291132436561544275771861578195391953486475867977422692475034916466342813780443741065480977725258957680806742369284885069155227756634648256848052253024058380594730620726231825773840062664253497619785802413101013643619409937562820940886694389735680820581770639265934662107601617534265059955778249524226510049084847558907583467661394454861900250109558609949306174433303514887257697558891189969160737922770885436177572916171242497053987787074832621478880860365754782901346455972514202889126533188573640909381423743260698508303371938688733539522429182116839820749964520530074589513362784162872465433661478658130683613561686672915951882544321092410031827257040716207748114755061535904328823655512111019011956524483484713431790588575369564196740797473264019625412843628739016760182797406519313419659273728585044802786343141365418294925118790960433870414312169786418788176117540658383835490406239761385202324082030465641413355343742856834198556310654654991252622411240855292635777050773019747367677832518526286693253155364402927653178662647506735570389388240336023653496565907285788234480444782437686731566293171832153363470757699279800220470814824963139152631524398162363827782120602666673300306230950111091467109589020267521566173422225448321614256309473366911744922961516665928037024764513337243846598934629735374038299900511170957883561519186925120131777661313081377729331200785544246782024058046277938843645487886022052404982169130387551488865938608998754895288192423669052087344267337395972134178659810886749564932478307219942842003795081459261716638288532060793713291306527772732411501360235343396485662235221779846900151860147972699525493399811243571762923952407581128556750114162815478685930030134292499452989502553824300676112619994508212929641190082176520492270004802431772989136683325099256564893893792974612269863229150435890781806884967033667585813804983170098949989500019760411698459543656722762864271799698799175711730201167899170324905591471413481235928005790180917135081048385743820879223101068176223956020764465989423523248817913897989347193500779961567108691685285789004407213743253388372894021576507935896226312686236787426907153035458249496808317499311602325906197633892629826720725668658439327679864811038786670740426537794709080704749745927182560267605144722991672487563380410622686077369620775420306383429743649229089197375034993847743772590149010791818169309746435176943294386302243560321641729114884425217207541620454564259916084232583150525239804744361864880859791486221856467126926602649332102873557416013503296950423172771229636096307519396561459849862678974832560418102792933595952142030551061016966687362847794810271845786078941768048261605720113910490214095330874132985113967762000389662473196511421972509248173897847809549292062713858031222135223935463071149738200585366328101894530579042234400540549574910947554677230146632543972505081737476981399693435874639909999690493769404488534316468803957596591354411376172937511199356177913872432687337848911485634426133710553277691123743731315296575535164830260847898118606524533280338487083132337303163667063882013112854223437361852618913339204456186359364414475134417789422267491347712830915827310974231750096070122514865466673875353528684399544037843872113971257977320657856910881047333601441139271618147376506933556427934264971882267115573147346624214056427080203989515346552348220016481366474936399262070868647864346304857306099311818943927586580803607236758813453621891323580100220941983629818249544168766138724002090878388991538103955066330820367388300148559899321959196208564995852805364436616955013853279561445917577411879180210273019048298482618750761632395692925115538613673759689541624893296831281572280554309823300543396026623558640343892621361446877847133168441677452889752218579795832199905081757395569023851944864964722602158189009815291709383309591329595937264878662880740188752285451808672684331734617581216524900137129444870491706849213971374731954334519298431549669264272674121285913992437486415290659403562810165078712948452903427164894320076777315141399647522331352011502254003594855575953744791701773547606249797627854179867761639186824770934144115147094256626598392453398488772205379774247045118075063429724094669067690002725566677763605969230636176146567027977953311756964059295409176797315546782484845091243098339909564719076690610918217234465205134238141279530891573174723360864687057963512826532643292742017436736045805672301780623926726626886622794785043830142292224196714192499331915636903857262479796592837861041492495260145774963817449131613941007319208541301082921047996181334159260537964828837122791437150071954842228965252114878418629030268039366149048255004060392152664677411516197653903834645282928370021132122979156303732724451657277644676349836938893245537597651051737352010117757604368856812674509284329182252338218299280755481980011229424907778984075746684849612444482909198632682666808588184714575865288328122904744798211113304902218950601556819589262800821977080352844972225255209382123748740326022171244358635400724576743933854095963011594275101117876516782673779263716049706012104117436215360576707675617629260262575795630801997777551041262090813131774969841597367512512092154487672596395710580444974390224499339366705210879204764376484999110629235545576381457614096267066936482195918730576743202019348825885949252560664570266645896524022169183533704370295465520542502905804490881261453682324295489317990416164193911271981499679770332400982481327936864588322897525800972437881402707626258980774616782262346560579646159467456729561448271189480258669607302112125371989380582128555251387576038844922677159746250782819909980830916199347640463500931092334509501240057828908180115657905070219138373408074383595265908014611153376036191602574491674111889656036826893718787623808399525894667364561405364534914999057382266707139225996979264673046174569996867757317449974589856328551443164831285403260342095815421785057058893143495447585808657954229081997500742240059091132775391931711908517585249292684166889389597249016058223778536860945965309897102778598132298576177216468732572562999638695319730148648085635014081767270839485724234692741193578276663692769863541029908866850885459212197040770444585427538250943206377406234400831376024827785870650640869283496195210949490877080126322075188169715418579110946047235396481051914671025633052595381039652644616222436168454093731440797816207830296243243158868703671033374177157151050080268342136720526471846236493432684262247837448160097693345889398865802327547197097017822247339004546706271865702921325562542345669317499514402962323164833435175109262303754137648150879000488603653935010844812546313338491191960044499088106880656090293185943535800223523975987916093485262431047630661682044767217411936759670893333961561764334978007672612644388504706297530801705514022244670157713351478808098225951021776345301185622457685414456961746392505312791450197204830311672401631091314379013743249777346539261339568528187651590331164580474168269000258453553734514476403917746801811955311394544669446944066602239918992346985331052617123313843027033218421087810340050758064605911063730640535407673547141017016259044072903712535996117184248617384139339308352258185281539123450736195586324129972566124123948367155670409686052255799633799940661985861395798859643888337348983147611886805204935650922120277130521117252833980541608318119322886097936457899742913823590424285608968480210699880867393057712147959561200058701531453758626480333505768940248321853495463797824312354856850528525525391772882494212336888056050785772773485789390077047708116281375689039579685193415175423825286906514168932125927112761827061357724169866384057710324089157840908796071675375655300081053733599083210451810497596977167536933674386776588479118123746255275451684711754195327898029222750803277493554446681210296303052790134233888620091599441873204094347225623087732772681256473450622525094965283451199356322332364870532881191533511033636060524821723585989539587794292559432331570830007958988320874344847133244468234010194648353990502034685300270022578089644095049674016062326268817834590563112592408427217608044902265200992308717269817993561343431603642630278763697940612035957909432425214055645002784938105001709940583943927631605556167156643811475628362023214706688358807661614169472485264870216085694817698070090793181622437287830004391935217689895255665852043287090027654994627543727490437241402117292604439461858001884872011308258549632114561736614911910391374908731046917198914157141108270481864297855782465289729414281633408620698982319696148278967449358226899541892341088540063063973069031563298920254908438680464715161433923224499345368845963012369653960258168818525254137545982646363878226733438777524868865786463368558723310770634723463368960326732568616504136939964227555266275394630533390287996883798744693210544862703582467614724831752420254208774134328323418768398695461298140075812154747536100452000087041137413374136341014599305910418398317201270506218534260544119452854489006472690259521573934938351164377715001766161648361885660374628328109337205563883815248347046280536611705158126258220178249566398933553010054355197664395154403116675272394079264721153654176248396884070285721508929747730692709832005674831228258773923374252246236395334366745107890582222347744072957214236856658400034101997594752975328410659597756940779444612630328407566491848760701829013958338400230166217784753727836639405944159933295878802818660166707252198905852992225306412246453424100216496137563631374305456111996256140401431478049863270207078438349979677076365705118299049344857150431259198955075662293876359599125310690908762235573473399449127477496787079692087157881800603118931056908621465538111343151418974958994986580343648375017228359235006186808835178297441418902718449416195751370367726413495027924725457243873072076361676137535562753331528923773104826204677115415796841337222115617545773564454180190780286298124162297084464161422461650797992683604481901037821686244670685559848146906301830445588671240454961706590218679140336303678876941780019444819352718999249216351601739863920105681056026439833281625620797502378698330954688872556473482602825691126904835296583854466845152120588449922989086879091999616771982756330460680387408067046999409772248116607420654646645985382878174372771757309670495388092894350959595281551215127241899574445629728635601487037923266700351472976416832023608558422222040146587020230120390331777321000734800152748548825856392648732509826739826774740283709290756931879443714224608581730510823863659977532211106642485867748403843428707124711871195705907475602051254848518859235501680502357965778424049180972147906167379814801731613303729421445629948082622816328144074238904346821526644157919455078809903843272994560460229976840467694606049678098867083434919451785033072044389305575682718031929912496731584966854868947372890360339001849545134234808508752146658597499964802263939747245446115114985300286829164609750217056821015631575452050871468478035193724757096770813112054364263602885740003039071616979897622599164764683059169639383717844569764645118897350479904302364107015042620345028527800525802589799500856254170071314533023995266093378340464976112032296424452783611177195946775473296365393712000766201055827942912496654680157130655982476618522625284286342373635774956186463092865673925232197509698738995302053358728190071500486221266307491740664584693335539165031624944004758676671932607127715802127577521924964629352267185268105062762682883134353339188081088246441110445192531016198845915162993126081829248018146962099001285949778531459233537347353059342734612855989362754789990331295117789136717052954764812661193658213781871177853579289078941464995501303061121487340544788825611872159144668990970071786845005593596265706663750534498123305670302212555664252298860198022346695555935498491026005794236031873340237469771880676013335680871278778722160273825082457307650134214571726322053362305283142235589481230708870946297609593999746115889505906407306366776830471563718385886094543664626782706973402269697865592919431187216375030244957614156771509030935069749343080322841215823435803710548351600342886041828922970430016089435015872608114942579853849340656290102893567387848235132355275019424961244674867205721399043163565253871492116016016475790216456405839776078384517636666640736875037860231439311331132878075260644236463462601759158650452049625512737422360568779220354059235111565347427979605564805585766207240428141158886655547686077309605451235960781326747279570765327666153657079756780718250866441407796245004024719255990334103970052521245699896239496415851911908315744281473815601102842836264224655026797585097328061175487865466852663944406018945898384286322555479523678769128140944038359502187304718554764461089859358935296196723805171155216018007783304695908798341034394824794223645300882317279865652461538223931857816593513242514265278120869085268051402299830427201355459774059617778540608426603836853692941432022928125703522566235700882529222177684376531574160251012874347094152312083176544151581949683586835700480769914714937252883730889247673879438837225680426861696135037230687325197896002561972814431486250846280927522150220004100994788808968701959915155995984503374059736621642123932003478896842650964327188409265384334877129358298337347741212595922588723676412893321293100153237201194853687738198203533186978545797116895444193898221303772804714777585190003292497466111037197538934674445012266378538117322799105765719525035886160207880046373375996793432146062072050832681631839148497468741124284768634819712445189449506301944530478146052043638919830535796850604649429503299499038946316545829266666555443783198621024551718033918387868809965077918506067568757212178752475446185042305736051686056779116501596877621929564687343105390759795711210103836698584797411544927090159813509592618745247093761725033232012803941394255291492244245899730958930254782358723229868068811716677439251651455763828132837852203586578797076811120699549580421923164608632358669665193459843541238751753018812181707673255140653465907297791052734607940094165613136037482442413071526021775982309284933196571194902001984707962960971703371318886441012862627768396652958780472096117162710129890471000096416581273515134818391320486536394551792905463688960720382476971219319479912361038238503423577549054717593167939336280339661318544237601239145429764303057481865502740666054106309418785105519394258588015150670357041430095439813957992487026519455601459072699015737396059762191931988236465492403587607192202015676749965180730412582537857914855967196616654654585339141957064147438147329689237003471831113416709468712574150467541574395060694096867534981293084855424947517187914581521261793682186226480380649300210446166939812349183887235029002342523545524991801496417426978453691567456692196384972975180045510642741922416256823462196854234485055641407838431018662624282397209929441669762642125996083003351080336874826668653691873367132135924399848087299678899184543111293172731368472103718803150919101646600536573736777588285513120312137139098227466781931149229050706422637138802607128774155833068370641784824681329584920696743714015853940431160358873791504145213110480753352340659621845533197633865807441530124380213960403344545288293713887228957710226476074133866100844352142746312762459857340174861712731670382420622492163771855913139527826986227437720463391277134951265440545255664261024745387141803286047067837682156405010025050839793921798685828335565352942655969630385267879727234551794091017655768933927403539890077080463519163054696710320307110848854013062897255831206322173452795626232441083583129021352215813911555206856446411853629868411619605842235357473158193851734362269486175635177394014591493738889973298596303566189765829500020015397678512484913012587619851789026341651496471344333727839192532320810335774269520331026235764690872324311794224315651069133409560389828767289448832555491798061200811563457000852319873412759457267083182454253755799204756871774883852343658812491194446097628219116465865613424170852085497228061128565146137985676007128851227553051864780619252200847674340113577690869616586791465704351402648915050973384373448854436062839770445125888903372601183015042222011566244170688039150912596967375646603539216058571459486261374795251064888474254768723768401111595201373358105078485090061808623251448893088465891699476008017114704527752420012446181898859757638675329325396132565316499052171709221005459338207953288166065480525595463952197618809677232800779958611062839175885628601810923888445937188766155001006170091545860002329953334570420720880159693700328069131207011534383183631649417017334499016867658343892492601520552913803098459357511683201551374279819681246846751900290664994497689746284514661728765796222481896781722385398879772103164647665818054299897439721071177507064030296972457669650649162843627989701184010880193747484861817107870368545798277019591168446033691747215715378180681755715123248828105467523038371649758402847732324673680774382862666859778047863964566974047760422230264765395068423519862054008006870943158607594421504309934471859114069754279145315423318299150472120023728610615792289778122854327834632930770146647648528788814444439960411258265047380791117173741446354480825179916178363691991363361388242620128227591760542033869888997818812064394355346362818329148320483325522697198790937354986482878422209659499842559868530571831774611836331586177366701253743626983429002745157537028231013913838942337736806575979620169863225787006799570608325846616184010634010331957860868642792069624456844575376228781322742729221083463962227037261355642528070017563511360428909686345832895290592968462704684536314031146971997159702760577161697253314361386242249683391405578707173431521402775955354497390428856949499387314439933549122765657758132384236389662453797980908705732796080080354397379646182800486549835384898671972516489372859107286870464276530522095667295057389204573763473203361526840203799489544855561174549459077622209911806194487253869171324397296639021778283419779275435509218742017989553786372590158356561748390161923230352150422623260271168285945537562991769768114422372633009931613351705894338686497655796075674921211985568096411082888090576963528059066698047421947579139038113918728865452709274624788091414723141778336483999481427530818710597235675324772742721228100857133681566086454278259065808316790454905341269735695519764742732776894321193262827747635038076920884609093047955837381037866019968042719565320942013211525419851818264878039677466407414946687160682552427023739151053694228795827044657869752119383732531939852897076060811246901840398813474685964883843174596273289896991199903165967990460761734519216685469187590374693344558533381161850228918218724002536430906390839256249529662985406763096272040507398655996669504550548389477522189864765381881679399035936885816109819973770066468778277611010381012659308821745954671896210804657394254877328291871477688279513511053614499425841175922950998554178915955750404529586889188358170677150961547910458158086532297587402614124191931601540900044894076137179780293968552608332170577177981410861282923217445644371515163502691669353031901555956280545638233678622522339908992912649016355073692263081355385811475303663266563160907990308728267762861047173222828744911234900121699770338676561078757934328334725476026300609018647062599304541060332539277537670109082381886664274253729166166115491512554212097117695923091007210137190088450771086468121564814682993803515574341843984225091458804878033868140315419372941006236015903184272461535682162502229317440664218553567466029766520807762755263506817657571292846834366497776785476580349730123408563899128892426186863136868713791857783632239745863309726146034557635355258767351308698242577946235661616053197459385015262030281943033219350157928751654166418133087123328243831737299516636788698222853126054404945249111316753083142117997627566858811747660142169413517173707802865587521284077321687227009225129582306362089805560540014956734519154156221403588930396197194421882654909538658008782718440907609368299892742023920489134527022713214180456766905843437971923727876053531514306815601056405015013584330907671420316609341153062765768996924184319529726849832307150508349916934990891148205893630668149386061644391823649831535317542135465553185241568928853543182825785766961085148134129976948254380750281865907079581673882952894488475132812189879716425713825895957195544517285361603631017731843632125777512389000819966761249690890846009107047466656395192223616539609008486510822051844080700834927409359661255732317665233926236016210775967683179776571237324991491631956988535037434835651813200123017068579193705312325611282511012819751108640171158433475881932405924954054706670445731767959399211278041538615690991677453671948948811299182599858105769489073867671122341025489149364683541704210256062134182012924675798424239406855264718877883869861356443400704870061271331768381646652922068343715510038859928297130853775709862089765833575176278760967487928971084931860121392901026778198524133054827197931617638404628631404611935694322115766325742283419822021033855410526801512441839172779796843851763506037643338484058848305178995340284623594950447003379810480803301599312825819683472192616094088508016094941340790734967711933893969067732165101807076251589424574634499809479659216643061842330214559505042573725212024812882524878522561787223853734691270785669717668258371320599872657844600140046493883386028233969777299768676915433533908087351627780870587494927685902528018407047742513399817350379876721865198409481576865720846461696594668547501953515075605632489983738359106135895100818257630274794533692709689890981743927835582951005623526120090440411365533601440326736730984347302736894268453728635264183610461685132384147791723088003656898942845498416007067034250169808644091086360065829478678954410543594602864506270650985525427608378874358684076920412426724661204574182631800335001256499371698976603021997870531923206179986348126075037173616351984749380678982493269435859387464856054116148581041013204026992329309040899068335986245979069752772660345349851265524868835102029073711744260856081351226424522927663921800152900325415343963347420233242554398752613560239127697290266496600860922495805046600956897522664763058599405421821818256405979107659155695742387689267074685627488195210344589114169200654196340555597654789188004539634975052950962578981288710941791630996570444207451297949924035837067591762339057332565588335864588121486643112050722035456924931917952706205867382033499114785296022403467903222328138339010532200474104020303532280871270230478850645694289267604133882273474155071231653567947633159987955488402071119121720360582208659717706955384427974243267100422298937542698158728242313036301333187626486409099761918613529093579671953705448999885334578414593683356215083828134902798319905776200679285550704251408759373745505876381621978778742854355640416221888963139866236777682251537149253162680243169206131377191446519332415659114963537615648263509539867310411934180655990355190158700740898563662118580693438185730313344246821093986878930649278382372786802917836024060015489755493366341746471660036586473091983824067714844923270951318969761069347913619995849074564389000016904960291317394823658024079485036979445908227260936907579428735917114713049148570150861643508343889355180401433566638253291851934471564089593689901166279779191855701500339139266157605818448043425634202181567889364825165774914105126192541019551123759602560904324515593417624200694252728377847656658164594401736474050547382348697467983102059581139423921003825150099565643469327486008436345003805103129342405166100477440738334642101334637708080793809860303919863168905493933611418629790347006993389937710792248962922624108600692551419519667740864807372065020610671675896032710528973303668683403946426502377780909121397459354923447635849706238906846449852945682374635115919867441307850442230277283968387901809257965071375428782028455883287013526451341894767244101589674891661979843274712157400986358537276007744418560711500828279793688313876245446784216433519932270527498968347321830773674989082179201489996914092229008575283897761049666434365000964143596956974175026989864543842454137639364843919414261581171071098167246908383781013803147638086013107956211758905633393116045734957126044278747974983797891578716156413512325728706262001636239011671445912394017812943919863326190748118954611706027871369451467091044718690449482457314779802419737519273675593923089059880896532019854502510630606273923476527366275128334997154457349504683839469743458360569709715226872253499019128047535486353726840961624896366421936568173073382945311181597314742802107224010322921163574585238850190013529659219962047242618474719221463183009102208301594960792001109656818041452163289224004026472937761560655659392991421101246287983053695336441542175547021526584619199897621881971575581213557330368867211829466964111971795626621911305586315393458616556340953292890954240585669910750017724784795644143556929397767315396318851236286237088647261980930857336612619636757334153873905162598521557621208702103466744973935065538874228776229135806019905729195388943926932822388923420939230953757039300133036394418178946666799630593599498690058278314358187923985433759230348999381201605579318492026927892494162860685892504004872285219691730063872285863669287292122183051712092614307665910456559095118636481133116748660736767198339705123870945319793746751490190976373153622383927648157162298804941735603623798057697303960602721447166572118185217811806197222774436167690515099000053010942810244132505433467235517223646509390982045838878795832799565733270856860521626901498583351191318941462701817482129236686582511107290476282527874140180389168612569760110505498375376184046444950058487766635806161642224818939147502499359982942998185299986479056532149054130767676919887708178702197914608632372032172887602562784560277087219668117702874920603208927847309139444951868131131223389314981129021447230234097944327181156276284443752779109414586021195535282196870128414288006323431217108034346014249743143659074752204744837198816111987844637352999832506390997891279600704684721515369226649263630337372091427763766661634533238529877165444357711491134541714185228016243536909914757065096098409001830382441176712744674609967644586574937804639362275100594910511586460980862896742170575554386061858239569984592844527073306289596607652085135650301284452350701068141234709011882353761924815831425744312693231606292767004946597165019889771033570633869635755755594016945635844933526378759552071471340658556361492123029912276053217259646585489610803629269006772969654695615341492389260038141342297002052121945140836499219360647708141946239430241711196363121255267475034872384493865334566158611572375997158926980490281695605652320136433967249693881582507394359523176552898205121601501348386046487824128249326122622025756326186989108386067566336958429026235921726589577181511314824663627894801909110837070989244424975547881865233277719784360220343689646821852747288714333347292083090679423801393424146214480111852076470987400209543687822375240280991668840762470839352791045154170082330673082027621760384883610202950745146317503331766761328370952278176662927553953679909610945043482605456199802745443355067217990282078947717719120772222010514363666735467318077380615192526945619133725795471521671777985467399623897904813042687491332381615181016735770766272884327155318493851924490780155834994606613685883261888010744366259238361885639836842584895021760789098272826088851069344280723848793863288328191859318637595708010973095215760233259725400936356021885215947884011636019531629577024729504264722201396210932860745931925112187390516745846092417947150681565955089435841329405755815597677539608220042004256367158328839266541896055280127609195179357206495353560381321110927001308453711182804099959088233582538405711351135516229675219200438623040628422415421385290960028315953411997829567536288784037421952039342367314667607176518590808699094839623085560529150017063334021399501566847164046303493762121614981453135336601767083784642108977730436355674590426769823149884800412960553378867181513615301786831735104600128752315305708978014208229263362377211185013017178804744032536618488701983312760638306514321757284482151705713239761388991393812562412669333524103440267986473186254308635746244841942486353957407769855679245332527780751887877968804439995556789984221557906729422227532294236235704743089191336886664848024063546193992655323831290108908543141076161711497922842144144688063760409206896765759873231717931064759974769875476779672831112191890071904225276093436203396649179809941552292934534254872048637693799994616876659759463810708320389388463740060503356494536786687887539571361282595960798077292904946867001800007819455283658579362157228526399883577833842180108450057895928882949544333055616018869997949794182937102638125783526446920904201898978063870047633074933644369957569885752624659779280437740495807243194203987680479854270357219634740117583689247426963061854428012909353924119143485415534231581861566733666474965254578823832803909408332199311732739917662699549346919352427772337716367258463512434930462931648682461846095966558537566260991358605122937148492275965289102926851766517102112145389082104236810336688040448338044377442252275328167145922642888769308746619305080700681909520161630761290844182355893688418471097025998110460505895003029229573497386146190607481394923134219145912311053029887937214893376236350384279337126863221827563090434241585431966979887641379730124949140045971168129011637115558057232238708575843022160232447721457305811110628183162532593224149235426375005493315312875241575720532722040346753176788741633368442418927659501067578685714262234955754495229832318965958190735057963310334771210698217563932316615112573630970546805811951084660046230613941299292656388996484165208396492246423829479445083155564915254965563358808356055960779111610514762539901311506401103865360285303755069885299359125369149284372298116084418118370754052731961250466857703912934196188143552408222953601300206130159024205597230699202940671706365103847905126038743373140926985751591484181861802068130557088556008530524632673603400858400379042015948955421973800736960896222997650940548525244865548619422269353774292007362650160120511513886291666666754927404790814607068851639511635529020587832929341838844816780795654697787279190713981586852134752111127867676606266217338895668554118967565706601556567696415627087997129298124952471423536040052699092931231367528283173899848343752618122834833406203810477014332690002617408942602752227554834780776559986131404388617669630810182469503887452131347979954381057811767350904805000787350057481589316638556421615752497878949952980204095450798564941911272676751482456775357641610000593458066255209710650561587459760209476164340019866566374970590286900375401506353004027797452594349371308962101537237432190973317594074358336782567726527999933022499430776193440100920783411483760202286497131222199194315977265606649198216047310885907910441731694531440031354118777307962763571003333450512633573407733515662796822194307934632632913950666172149948662903698499852470836947035598092722926684825618228522784904572693549398878320492145411664160073034978169175449409093496013166343027965680567051259683287092742764778334273956035594595716079440256346953363576561626278888273521896987062865646986276451933496911082066661580754723839993116689453539359393735035783686987780108498657516408370492757249327146345160012046651955155142605853215282597862427386197132046988818909810850335544647079630030399046439468749057571009724081600262939520282805019923303528991077831633152077745165414583072199720353066295625945668762699012321133916106143814715224079024970507795559791931961707255796353836686379723476407504260782352658705900568134948346304365263675746562830148316871369769643736710700315300651317543936474366840549482528804060173889534049026189135534933149733190824152709844598117800885815860907907594973716933515119382112379654023799971962934095531201128718278375177888910333520130855932007608168331043169893642856809043572891909891620719724639264044603524686366770505105496634221283392398842561544138885142563829119073803526441296337552660397204908860837820543839066481928808158588307593685525777521493258152819437703085033066183728323356693911057668947327553605267033871650831828514559635177828093010282121812917751777608796937488224987398113262941618748031245483444883421124049332564025835674028015798664125878672531703383372489498540185515842750921147817905715040995048959631802358602551693479804026698428049016235707055693746265164149784473086651075922163745173001622552688507462996954291489187770910977965349480782929236936469899908859149097880719048162869798245450159509050102755237011064289660798539939589514354599787388788430528968283023693578657806059207240855517714965605347955345026046022839566178624611582411804942840279308080014127867896486936451413201777353843571964927310454853310221604101453590243988370124915390526088980642866233912756807613698562876843171969823452431781148301020031164104548691040254231332822970084182148433660433088076047046186317474996208419487546201942936273324610775739045534026795243130968915104296453061911137711541410992851291076774163655449355296327095193144128938705524197958441041080755938881336154846852499399186869887762269077948641977191512757871434462288523967881878906435013694597048169151592600179562663487017809813711390857358699361723023834190635743129316713084850325462442591060735883599178225454538820949249051134269526968060041186140358522564668648392923193396938120701615932782138788024703070823450593303068775086213558630108660335785262561487837393543148703534812802638581700723588903481171393751131746699718196745372565571302466910726949623443570877750489412704287752295187585212954233528505282204324862602985937009678895844738577996267693701396216726478644119342535275134931811527405828849338448446474225312913816725774538781170058034617120991324941730327769962409206973612003691217753509825779521926812131234445068895128917934536637819406348669509671580363738108039147109542004339819334657402741626416951590551567161202728926662784180535118773670970099781738463848430450584279558056300839461890179011268171423853636012653635770816121260100312082231061221034493039764194525782169484199474963911970829567186432144754490516036750918881178299721874801761487495635304047766855805734268078819220510958551594894940021115576991312548274032918777004601253720602360701212031266773818654110371457345743120912947672541129078409776309963872595583853962473193411002705406338931238413025131546605715461112518794177585765463959345455309226031631694870138808257685108018807180468910357554460575453164408192014648498440631759923214042060015053841445320602425415644940646478246313871568789922420674572516442440172044706011160135278173306129493039211338915216693033904237947685770249851199763223513038499221574525193068343852663114089927465701221888623280894121479365536455335594184411767497062878795916100140349069587422128588119508155603315911591876182447806016331235566295659381680281046515098693437331179921918768568010136643866315682654043172719676546268929281550646172138608429659469370532845536252690219344750010355673226357071422628650015298974438535095749210923216813669732095126974299557341191657349929120626119930192317008189142476121218351720117617628415762857191517632951151289949202093451338610489941044345453840178414678047966792677615588120095106428705981631408718649791351054482516083159033677726134302082507238905457591340993541809284768270594371842350611474393527897483851926900521724200931240425135852260864165206521967718349905027865848639981370693580111704666923443386134575452798270768932401443664546882132775441356343695069541858086048018493745038329852713036528587444033559770080604870698232540548502437863191888946544537701613269027152284452444105227495355597532050652766769236077604089244224330722902994227064667625527879980186215572397057076416876914976134256844733730966045989425490089031753633455126888192972277770014996116539658885935389647356630101179034665971610092668425582967474189557983801379677732754542020975638629352455487247300406903327458349047169053702771252891774134198062600208374471399336432782909152513537922403614238202030970497252306359489482576862650064681059295121321442818759348510045539732633714315139981509715074022169849772489943815647319957097410543824326923163251439976659768125702410725511074525808204898694741979069802398205132428777129101780058483022920968658223868653408118005490805327943823461779930126102723092354565017903675303993848658305322795583636520096079231740260353556976339143640531471764619924870653607051726781368742677059753553661604119107329366968623263844926649406559088987712779580035852665371955727059770287643224954041784462958948290538232202220551949542865118593843229066839948096854089368381818008836531619136772808117557821863482189995510476886090513010476705067820185172282561306395000126215784031732688000160386780201152245090404894123474531377234859682679773065289652818855273422225474833333952454396871007408578732310045226996487708767914291776751259712713567287234220539695082241430015720518509039361618473918467183933602085759795113363531978489597403860962487998710982423267960701419983054761706978603060338158419833094496048696533603618600085037169424170355472608601388100287350764884431263850904166037196139578394718777881426089164465088303101548862609086155094923078448498563751268264989907298538970621428085409204360095601523838911979607345827489118669843361141386386996946094945988878936738852836675147583338184499493100997140053807997509422842837151633874462725381419871010959999605799118906898895713783073648020875213199298982868983282184732732493146067047813489430972704758413343638055920734077378877605554287896832302082609691650785478406189273857962399859256966411763460932990551733568387333121801814420002950613476736148365259676194685751724251661821340365108712317845300969423062602604730067690015535460732190062284666208625007084879994918283384395963240363915187636174994307886001489349416645098574278780319552758952837424465708574535008944100181060988492769844690875689896523466941718048665190078476302936193289554338304767509011413916911579303277722901499836987691831067911260439121070617747166908907104180415603544827996060104226925401306712436734250703808377442658472136709380898093946218326973854073383385309073415022822086955843572948521391486086772913834015823446093571063772720036511772115626089458630377482097742511360379430585123240635455143439232578617112890078229054783832978988306333813817055341278152044146406604775587068180688701866418914929894193286811228043998574110085440702562315315092222102717691684763966483962868410554080494756122051922612616799182519167853291693290007866575747338015245966626613570240475959189865160652228304251107424894978224741818112906554278912560562950651845416517253204399683139444562316581270052989513254731123018956798845501181552418921129023867793946867062484160694480634479086650518357945220074658458368077903714808232166709764009029909223368814512625499440507292677868863640639848975725979708994094883128926106755735545064906298540079505511865859069325653207987950304377971857670684905785599226776061110946402460271608681002763648974120079986323174045962589153919598489399093876089242598115646483240191671872155985542823050025157895540874969528595127177779874954608922233513141093279533805469247154607314817624368439142525075670646642565600018498016383910151651265547214395063657215196312067008458738808196733248672207357499553654801425707838056267275100496364015599107492492305274714088174178585946400062428490745402379892793543095387285273491228844131943632264427225415739390066399298356913353853305034963448578539359245056883221248507264982319827025133567187048149059936746488902647776732697005663158427561100081828131330401780538614774897359018973386957867072472192220014960574386778247715677226323043240315758295154228055879459432304835683295248240709953466313277258858018644667354192188079377319628441967457991447457697624363348978441346366366829506099667553110338115551602508015787423779979408767290502693836208006490932126878589203023401105269499665572364609255073909186844243642406927700138050982963706758269928763159655953726503851660968451776335030996194423607375860338704770962490525534576364658746139880722830462892243521160265678684105988870548382022056207742393561655220151135163456927089254888720755400366663703973158791536739249177934049167143347899972359169719567536593474197000186769696064127510199621368826479933490429217504643232169268268197661822764875515172586364576175058615855359996450760552404575610408696081975113469149595362364194911600568911452613397018531580351996286421328727556171157151462653128078222570842001586105250196433123987761905986453773129323737872280847950260800700226807976461339920240848144889301376096045548166705826139959232317626510896484602909596607966981008305786641556175305740170379217954183702849492335294301476522863054491727689696323989142757833936886295237325025021325414490777617151462525785797114245401439600060906622751507456635764701840103571335241699780897759202362358771883184508609606673661428984340017833997360279563887938000683239703101993987463846337642237621719118959363740955548234199005725119463464363967386693207421161609127545340927770647683960603804322842212993477668905909985669733294366507096168190722808345565536947658711837356786342844775651191204131915815912053896782011933933588366945646644690144492949543632870805770440542125668323004233479727303064777463273636521128650925395143285726068717057047132664567147750984672198421145372860177833389452432151992159546070344900138124569819712353472916011700033137290610778528002623670542033569608423968562390906034440169313677540178018228039187969933716273422661020829538381670553358689709333388253675335168656757852259971140383525898173194958651595887960817453020823770639978087283274053797474393295322586044120037385656308363913614404965502985510831561431869081285822098917323225789971540591272181197834357858005462277499438278313490074270732643694308507659647653699413007867681129663036120415314645838866128601822409051767694674633176660315512110710677153910375902558277693561385182983362079485024486577411010118758894225099806278043096573616982738878639035208455722512651245300680888891438723602074001867898506663150399356682184646945255182945345622683920649969146247755611536112719897584183604768314990665687595389330653712402694532528002259594498349786828568224138332841237692801890241205270180939944738827242539363992575331234168262840239482868361303101137151960836596162721036209895307169327956583265462818053373458528583181960300385157134610842544348377207528881086086127001361795437134272867077555601658468581774850710525529829647117280524102598453093121602208150641730925318625904608472431760480722055418284116025448383240127561024518820283659585136457142020814914360060927166119528828822383113517802522175124087862028127315053786378293982943197745163651355412408007564608106364273854178574454830490552026971847356052121937914368242310397904173597863909808393066168029068012002014032697150247005062627764092394197710658574404445643051818134352666210607247775761192810403519298131738555070657097958986523471457028000707125866399940314971295173364991333448643109056730638898938245198007731352815722982073165653937186802802450903587008703615731410593793799572358003464369885199582387262540694427464595092641359131755213799610734745737354741224073991186182146320355600537181673156431489038278601859457299315270842178318710103002802116378190874923629930616057619480467067279783564490669450413728967145186785839989278271639430063294108903733039027169157888128828855587355992667367950220684370425123172454857688213742080188637534233153018301000923750831546807182000614070933214118667158798993030283146132323951607161892716208337548339459363798687937348395113760649859760822385021793578095255273637955735593584749176987643982318892496029827076154468702798278062068289226329119822086785065980811179438098938570908278899131032888992445425923678669360232496147661393194772964736051732440297665696618538616484899750000002184224540602966377748336163367685812157016225803732762487468134793324452390728851619799207341576079330193079985637186773863930537326036713767940925096247491905409597540394410089228840075824470905279780787016598504772721701102387547630624082185367103361742538588246032803850997807424035964741427752479898970265993414617824676377461952106625773507472791044707237622409617158529739124103411098504190037635658190559160511440908617834585605616115600747940570150142559932898722336672202943481400840166808103047097736746553756662920560724858147224942747571519679235223850088476000499574645706554572878832636831375447187731635019607741589503916600874130473952138325368932465846017185842162829596957690757577159385322471212807314894131166433817145018636969227927915642578568545423623629647095810235872826767198899249497517885237152116200543907918422350366407140268461759821908367918372161633144217986583147107578844121655740321138364984127907768757746692797085230406274606885379577249639336038653786963900150200734806872503062957347596980330736565780521070629669640157574179347557325964475660689668510253422077264876271865133132395633099302334908367752520547435716781656899458138307546840992820593557887173675063082780875297640949969305789836343929451347517628059337897523294381218601201217204612424540842970429309105371418537042310654152982587327323648514417282758452735984437938958662809639386990748340077871546743981809517371796797377923161594901917712261141835334140334977987643675363870877023224669803653825521371147749204494549979255499661795458054572112842932099871326058489940204139733312189928802511993630927821719103898426569696579889349216292254127082351663965796813159450484224223282139177428690085203223278170447001569100864673089366020097595221919010666542733977597565410513122661158126128122760555297293165383671552882887517855194136752682252869314776699963112626000726851187187896582655600237195867915860009408268361310906598908739578332274842581782860647332569994413814667663046214254479777980068426666949396616433478436119129938195558697448333164012884994201575614167926155463404943053688744753036837377572116791532148679655170691847215919645145233367371785402686438343218536887820945666608536115978846274568782721355816694343499723849729010452646449314841557982952104101115089797757644012811910331067763833766890186930926985007624447533230955346118254528910350551961592861644113460304925469678285346969301606633573390450460683798175456672004727961280732399366041494564410232647194108648178077046379854345743318145357919412537561146464812488466493035607384376010582571704022396728448035230668564601869172111731099736175421967918055736614309201605629233096021429563271330582294889584601147101485899826679559612519582933869021577736885004292389481061622688460684973855868416146335904717250601368370102328802474613108361488829207197843437157661845056476714956792351190595529629128456149867391617238338390572562021371832985156182027880223563610776953538377447187220076664404639472110393524648519538316854649424064921568014502860365216765594349516958673825034329472104103561494746311880925921698074682740064452221467164189529742208209349477656648583758586200700301391967043706702098889840254099217035337681420598888416197159657602414595364502923785113050762255270095426673642114352980979409258973006059981798120403932350738296586682309933533101089848978076824352071865991984184990482385398524225064857933120095883215855407704102764448375849530329076684158040661682827749443499620386193280357507956469319370224190795329760503087902103103184557701487313371066909564495523296891586735735647893091640907262975771358499680893560341540947411853827267081218402998193798330929242356964699769327247542308729920553916097493844807180237419005564199279836983923866543252605855745922447454949019260747416785958113018352558810472941804651754686026571418709443754669422518259131901173441891222679451385466919189230398619506455103652665636811821811187197347316637513588433594480673831221659701530389728411937201872579194129642494085475251948079705755540323524032339131612124495737456672966557337969877719050881461088431046289648673087005616189730325728938739789317160698628307271426619474317380674394577656229796047439141764163439766793450452594244329819541532921697684607855626088905926093491066461675485809883330898147192607580455309857211282390619273994091100369269411163742887926913846985333335632278998084782234666681150484438607602010849546437663180277787710107979325818297438289533177415836168754535086793465282716926282373186176791000184450734035849334900042849430611748346848521033059123366771414569158231709988223815407021258787957537234023623998671063511553714628087847176093465716899412346925155272705559412398163923063937433421161591511626977745750143576117936520455549017900585707289271381032650626406596998384707893039049218667957267293114780374131975369332971625641957172490337439119877502490899536315672378908082722912609657526591506921209080397118124279343775800883967271318938104560574313758971485365126529606206691666918557919015140473502600254365339940552440356866675709377902252615439064667843117331438193246146189243575103245077654624144742269311029993438417242223152262115649280615552674377182180687787742082552799351979649671485901518643742412075601017455941114350051211839786623886770322135796211378878935762633155197052040054968082714953011381591043710083374308778323176759922244689067851498254213151715434839513838095435006041509881040752054723324471843027277202862850744035174552655313233435336946309897608855210679558778249266395252967007634878735589698489434675344835833908284245942660917731633948421180668180405922664828760686092048569789106177971190278218546529481929942208282229660017508132466460406916781299534690931882380459486508846561057691288452493923955470955810533548335180749188966965306439017142244984449664169700711800615047590538029053695840678930703342696265836336149561128743492807572927258715381358177884672475293052318933889779179480419575691713264874197020415285220297578932939208851691874768432565383244331773516463692395436907944978421561808841775370695981125709318377659748120109111010487062883285517464401463499180247804514259809807559578188957202595130775722620258475354688982636311557101521461872910055809362447442657006065710850515624456178699929450468080010343924799464020004528040636203093861360057097148228842351887743604704009588206879698571909016142638665316616657471694350188040985021685331641601018912780211833358370435656915719643665625306384979508865368669671886504144046507583997707901729236391639146112688517202255024920513984788973417433130550702988606227874489425879590739119691197042536730738937627040214532572140081820081185981569800991498366695583090437698073292101204847634540437810828415813854860267774230165980414043324367107927845626465335765770909783306342721994123841442998606747865719891077992406677693905447841570161652183594243227576157319701622710693127825950737069374919526805794343471369130607247845212719827940260409072742807547965657870495788485059516242063091809433745594087718439428343062146023895508810406237839742761719813682236786877226338185140584383278421469378449579895640920521233078160189325526670841045681290267441154097336006417220111652207818237117528037288909646003803990051306739169473458437881902484862807728546275277104247420103475588930408520167317352626556275571222367307838933238295645679835219534601267901937727397224207192720029419396553571143832600307826463124804995696965611231466538460830095289558328346225914039974906656859884924778073471790119821174113211911986793782980832585568224415935948731962666220088309907314199523195128656197394289467236129493355849488600623056234852839742093043709262793969604972882401206381448290663092909766703684015751762582300591742969024952916376124765403070903154359032830223808420235787111740128757140136532445525216718707780743211358882189049926709515264722198581027920492450679449684054931922585735875355301193595143377737029629209355882729588031347756822792514516986103575891006750744629578039433914591134495035418628486778697840871827239750162617418459401922742559404334189143132871314605825272158429403949134041308267677818402720085334411941934821439475203618085248366608231601664304404941968805173986994212605187235554526778534622522205937675121788746054759483590776094725385865667515139508531706773129826991106097563383782670865461222596631077708600303750487246727242586308569636142949823250385122954875613264370623131452760688466333338741914950425956365752101576519351403581453582651063122837013690350398897106477125510268420360503254928446438876105140628196613734182692188362333977292749621277645947391801965832853828905799678437696478233490240488575708584510774037370113565561132627846693738039321485221617527060694213385297472439805798699181297498749277864508272248685863938661011507895453793991329179997754144736646790277089654163442209845144410010426034030006893234602997920223788131721681381284500217533548110590807816182895356884895315752797533186669968336633201112454602502324894714086864276272913308090667121293241124150657131371746526796490316066805698463114979296064762224015816167870598311321115814717199304446673557543617024376752951512868358652471722011838366299448275772685010988138562965107025521981908039328731290421063487158595080592176138995519448660494000569521618062328460335099512238606607394052783880763209394104459399864595534110818410517495024550853615028121830549442758100963629283442152471778878730627171654283865976834363015116407923754009769658186089755017816125109811672127308772063141137013463191271185117583069751305668065426352887094144478843691713760729902107187647662105510048006976704338927980093937025101435415594810416398292877719287797330554147104553264045136335289215740623952581265871433411787323232026967447881199934843563926624658161845625558411339572195539129637479360081012884254984982730010405741300591676989006799942463663935014903389770677897794479283459597138587031508614341451079137532945440871601823621654469975890382040862183570748412338869763536916417278024983167101506206896304024811051829565567276186971923463980168005439910152875699585255763324333716661801111313221195738423363878916225013464570606110252768060409002804654481983340881127349336815583233810655455504078965040758756433046947354831730465799922333772378119538689451443218249633535289447360701773224892521285910704868235514223851135728206224963694979017173860930525783752896606737886721466514466553495297489848121320321998941884197822291370852995508806214144993185499262895001376192337547759302806922987893792634914593398880755062510612051733227397104363195526354645783140435974818440393209450492029316207890304514610624833083880726810826302043592048786563183823036327450586654357620813016999027445968822442028696347706254651226306451350256496675761056467318950272574017488528064853471060785842075169613031214775607123841616334088439977281632499554183381013050629012140845868936136022954722043014909016217439287987593785214833965663835061806119791394126464773249944157814491333936178784795338143528484485601519155995966979419501689491909421199118865079852022595123495241868595450494600703374822037682117166543549594719413420767012734125896525228605899561571674554287542136342825503847941775992439205041173368719934269887801325099775080266788616497456361812534563030996621280893445650745853901731476138937813653429578045549635582074116424272553267950273501652816758442501782583439811688368841781401440133764613726161181604292340360582088187998701234205633327830240409512117857576346223714962614793589984304171796383135883426750628521296098923188331539669228572684301890076521044363007752632524494048297525080921577687098950456151345304105689205800183464915759266469475067001289035755451586135259785922582817502963410633612666109024461808430580253826585617638558530997109126786601715222597912564029563760423616126471633299892671885752106407210874799203204109207882309974526185508869264247976240795570452980030670925571706599369261503996972071245821079729240222535467079539452769869095561544389898583931974131999663564469524150613958435457388106299408379980963332116237061154445204274544637978500349036121641831755170955057558104909602363766533707437291183911993823936476803275384095762723642421934466402448821106056453403820289574188076091292360415462804386894907820194070607606357527530843735767386139249799990111720513833281863614364700444100759562195748483322230817708853674889091185578777984291925471830661275654146999997449616163355868069156240120025256358659272364450046400143088677359496777675575979809641520530368251656063581446012080789726745561171821543137055200004012035924665194938197614558114756312122606731634720241830388954471847790409020992355157181803384162681702676599145031457698213682121842574384309909186790460503531447251425497097455060057838878700184668185058654613733239868607931906789182961478758320886720686213128618000533109400232523572450640873513662512786532662016916639297046868636507715289154191451351977961219435768084069259473127078911862041616850475168175906963271319574869981149827561053325832427099601622461331053840431588895297769868988242631202746400663489709165981906517072115291126839000885819433522504942034907027851902427518338257239917734853640805441102760161140024694155020912692258375919015236736000212891675831024102406172127961665569807890577397324585575830209293527332304864493986902871937027914893673346296273875200162521354211432499554235612671700545017899162879739684797767194624830702758563217196040867839765150985851917072030236952809802549885072274864560129635582529889155714226183387402248536123431659503987299744276164846207912353719306956478898814679134032136675281974167704234292710064344662503344542076498778990269757561606773408492904288073431974140054886287872961967143964742502839135800646712574907868218003350304493233120568546756914133891246006382134428704666250803526094099672541574607714566431361110985000123929453164711391907440593127189774308402118913205342372587027400966275851814240646567189677812467906352150343589777129874120760094020828929617170668140617007554705189623982746284204052938371447271196417778719953106258097771053211484954616001061793343716474768342695692184952265634248324941120500180831027808362134342261740642695177899966904083466774044995787115011719012239490659733182426399943219644426747474109324526595136380126019102844126728367035219497846227087986307691511013659673193357492701070003962420670301446661252672898912688313187708019487483958518341519192867878558107508602863085031356797955083520130889906665807833848301782288393640263029392995841156835557326519594010939487408359319263152458376052107388480586516297960181634024532677230169813994115851914544920711255113400435180371862000064848332238379986770666384974583807135655078731602029870212250037894973831478527045869066668065168140995790933250576939775330056706134631566443587136594026726843605240680425402867022126534630703708256325227029845386215769577929469672488101576326445402933236505484531258115888014295013094185710594694330634468407437615284066002686036827826174195459955575336195335107257907697746864984849788559102130410820908404836522891525030511699437154253368350240821388672361690226052176787579288601100130688219197666851117707165094880760241415793264726492916575421318355705773142001618619380918549515087818634949539651768694117746502523869148796368822893579572037855883372962597157112489571690366782217704919785472066275576725185638243777605287766699237140784313097358658863435385052542942226073296358329496737496043827120639140869683622295002745002822893854452599141094433553715580344435088539775105046135729736197615288049467726992196641206377153546480823173330513515890139207189564447236359662917298767844122704769394601127764025055532879305173301082001151766091602255894416141224102190029379095907140849265014269354366037483638133536894804596740263124826242724557449349538029932232229843864885630028157226705658636841917875892978612867574229814493919253628522239410369277838084505361892478205408681084745620685792355566314259676919479547150045232984577191560676400745006432647584638242602363355790113582076041234082797902062081905217530384121338186452726467428016272253345418704281563834447801969458529427670172990792324038014055124731156507301951053516558400036733250916412013051342768349990680208550763750464802565723245710218029730445841338954978796177975392245148079979768949045595561828292274930097714834962512865795037923290629771870678491129173196581724594124923195306488675314615575246197254618159306745996669380451194995996721290177004001585359668134421138224386226461274903799318192892078679710835924998378462147740777187215439025378507080278190781716428774005759408315849440362488254284007754934832421813796865865328183263193171906986221173489130411961150339949898504425064184243255277781656904047871487769005850496687420560339339542361337875395208030169748432590829305590654600227451495296141625069907008636474067828195032621381062098243112078397669127699661081008789790848367573633780785032875591505427606509625301727446404426478079371142827839324181320821674740551125909136440946547936603084428147944871295464880155807217674859037867591834480994697845195789186103159799742851388998438780349847158238747764951377592945721357104326777507519156560361699554351709200726852385145453725534174065796909397399031499374050598311284544493697379917675069152578461412071557459441581576421636576764260042417762070295109142928886518433039284638963936567850592627989022079279624688831806236985185291476594593253375628412604496466931260505475241022851655440784068246725159968424804180070480883858431060276826578956234244488565908460639795742739277422054746251255072934899471177091048478015906776281216965191334634017940006464036174712210319890799787940435258994045712994367169069953684789567209954168794809209331006461673607846590678464834906161100980304488917053564313058151143374363239460080058885003637896837627754311239701724605476162728060409023374562016445366063533220159828783110492614986022471869581136117699231537380234112823614407461515376444866432422244201029522793478541533159273109751134989853727883798881742560316609909896191993922109747092898508986479898540412535842705544556240218174524580024090401736259582232411028169088045629387981271438431968224738239940692423784775119268719201290267283809272309476861348271102697546590563793135073724647815803376222061745744028224081833606180542271334063339246729496917424369782373596264278888707886558133958741779007222712262335451664886236078632105334839099799835100494638962797204349130417393224473538229601811969536071729548458580840637081977202827448706683653056589133961913746026873335590038148263477364319421789829003472153425099077165088076792068681704874882628305540434572094609153719643764196078809058622532212411155330173777645292526448948847560514080586516204571236466770525514238340903866350640286486947985672241493820037827420459811600119616785023703939185700178243453679041766105644560069257488431810590536315533708408971643195682314783568827828682288502350930904277826747880054351403809225466206740053769836805413465181308128004064962928173104113423668527384214008907525056469809185001132013918380810247683478992237123528124932349473191526995687539702351516007021919866927406765973041150363988773123802866226007149647161485081072727591115506175789597065216758559256339832692412759191055399104803437049207898919113550181538177201423312858178765958806367181658483733786896689917417013578200679778693407638406779561517910962174808510707137270123352626668909054589799625644885203565514266433269612721036678097513136257831684825408410964289589008493827120761372326017910827253579141446770371714106410702657586660404822025870838790590711508926866173037676705454605272166348393641189389012813423398002461025705516268494878934541009380416436400702988384136938884307068081886928946455308853177398410691120760783371526287023417175143664564720079848277405572479062481018974300085865535597862582216886690019122045351411169528314204115605744551727643683348915946561900739871675144593318116222325349677129734203875651779282493940284936189998937320112207853459171668562787128387630260274592363689680382533180890472362000773782549809134905708959930759038824734749135000623623234730272401689857018757227044521869137301677848291422056179077785364293711811837736587230236335201152601999356706842742207478859694068001051165007501936907128512718127981837660522959270536961890373476690321472207568200921072523509132624136138591561488161609879376511387836858490642194257081119628080031612042639183384160266325643645540143559900968221482897442769595357080157419879512494364014790483733694679535500725958280543807061001198693635636388663318889509873009338251906420838160913584380341372173436684129304214275976886460857629046868141984340590359388408298952555602635799841394533546297729260298479052354328650284198530538025821742670914468409383256672578725606329726339649908777207409578063443239990610869658022239074315181266002748802999355511911181143935355189622681753061397490564230391330480135949555750382448189679132053996123165342986150223958566202620055283706622986329461650092083916555196996734325413661703274070243388866494561703201452673263908926244818980477097291480168557064690171530981190457875425513550892527944550453568190223633032978643873751862723878428796255595474906510641262738811604648663372722436051408184817111667093207841785578849198389083711297962809623397452942322165155466115027821729711073322885168139427173464339675972943660409233492313019588105976165809981039826040063994170711787252356506551642075554849492375347246983499027251150947004900075144977066909138774081700620025999945760059655000373742095961656795548453962602584297811499704730753968773762160680141849456110967737279237578091998978407531420570046474375837095180743122399908924532864090184544387807970835666103689948953140399187055547769894898931905514182731381826123749884278619620451482055882295504315696075085995595739540491365285790023532117458497047259032072075546230684943547758283428638813902834467449527207001983219296720176116071440402371633004513840566339099504191366564416862113096730541818606774990414286146260267672646152255465869100539798799181366088099106496636451523652552665013394796986614598260222650130928863190739283742934079534895524642648482610096561509311786888322593209722888846366368487980220056173524455646045954481072961628412403171585201851858889328954512436113163695511617116339495597343014646149465062155272474616565078051769809502724272500919979263253534859476044067002150625157373779976370220147900024751591546167722282279756049867248999215623936455123314967631947004176028516140058797222118324978141246838908371033435633301684973068628267505223023865523811598020440546526930344894141629714882934472634258595272992132387231877718253040406719231462464238909141139842009588193081009404223132164986246842488729473221186604728307194638909547872110394378806665086421457811672866753454810416795103756968052695901265364992488471867700493989392086846339969265785850708539849011598850119435558290743465548518754250824366599814712604507145183870681536935374837442670827925187329629505104543078972681760071832176546754904005790327372821283135992675586119881715543006289684357568917469785287536458879940794848860794480646120165575176964473832085578192358967034179934811032712264334079516703861331696947366875629625140595007921130308214649456589161638088217409550598345890846203961015924475616792072782951521269690520064605660343181360132515560179757314265810249478634443709465197049990641947750327676868308114358823078197107398861972576942004798202130789083995592611642278569364535878275308627766090050791971540111952466078254581626369236920308830710495949567355758620356250265155184088284262438759814073515513518084712216714454513341675543929930017107995026092738343452184245745638960370699587875585638749963308739606478539369895320355612813431722977557516599734648670039732861194083132716838814976837181505571671856701584266005011719499567088978941037075533401629407746219444118351465660958755114474654392679259354721377234853316568706749699855677960986253351687514050717705747956437247846620890167023456275393130933195604464190808879599475837076467002144720584986243832499103964197170574363686065666942502414342212289071690795322062036791342792292009668029750577382503959722391893503224481513971515159465356911794150252642370146626950008700818135545366960351178347921776911639374508753685493917730976064095529142381880127474106896759250561235818769206761887773324309956509858696213025038697618499107561605429976835241281978317264762737737312085178879076320037469605033593369449626086944880957234664825100814108688138689305510348297941181826299744862638075164882999463827132488268790381009467749321247357600479972158096552455315723009311954621802264606867901649172989572618026636405186159081702329136342499147025984289191546266249915348124028119191843533041571866168303258251822692834943512620413928129594911218907655862247136515943851484770875838582695623389491605353014762961680886471183215512567534236276284357286187525515056849734983842062557994832940770248625988736710737553038116489989835613022849956143808840542054698328080480443082047965233498772799826744279072397608631999831989352339461417412981467013711527572156858754710306648039906054604682237097823231331058451662523999178123923814002275044107758867123311063882525274817961024748911641958338907815406994137750497828692185662703341157968098805514143749777539722981539755218140134952753344288607902239470867202575569712656285622870219138204102634601626415887479888263735352772644337574893720455039901359987025762785507780816080272218559348699503061991619935429514830669196503176508305784083903380782969115806269797893720289150679976681799514362756750576519665738518265389347193742138570449318591209671962387807079227722205539555185251641902857076551484188239294798843779895364846965331230357171183828390186405667971536976498133357706652424243265345457824936072978180919679438520507909109179846649220188064123352070564930906702128405299964904745742756286293064876728239448439611663719455785306243686828711879416037093153958033520885513683449808177901618050205295124546528694220907817836660157144372362323256140124149486780508189878502392560236701643085558884854045785931888642271438002972336903554916578038115233310155445260503885700009260962289642623752044446246788437468849878862180143879406957912836147871190004443893776235525719660232598466632503275505813261172957651153382768907825451601670224058673828449077176363833497167685558527470929409000574263583847958507687161492340750883605487693441228548079240334220227147561068811211951525043763942518224472736390342162425230250098425410914556870838686178693817647469768094195868219132453157485840432692125574920241218967091062432643733595059229362841384156049209136824585783114735697537566517257655312054921010290672683941786345836967493167219578208217129579976836180943294806747772930363532195625057811093799130148033050380513163420677512487267565413844711083877870140795314699265536758579974686279774806171825872199548188385636623225597277564515467877061106141196572030205654423025365829732081999839765114322083240735914393260403501419189564373056083284761693509736521855853867408772586466981866729835473500473681565198100859611334229424964352064994153965695486454904547268251999960752831899484063643376378495152375304420623629476651427474377326987299880900571604361646296036654599085529797626669251916733425167707465122951510218538080350657173535954415431847360761200956973228497588793132843929663125328955454071785382388166369111417399387512124589255453598172585406884008801594912749010691519777861610961494729427029264265485662145172382220369546355777731043488545168802451316817992287996121535084957821922945121664605197756449952420579556126973056003899023818571423185639574888076779070323230857686608403424802478221832173917728810122730247602720354803058881773574190627521729625543765363146521901358310913244003616270720386374215622436944717542633854595949415000041969523617846354547371030163415202488311110141902704145049486826862149753098031475700785116542950681402710814455766806024624715859172165942066264356280555207147474838528007375696235361756547737796467489636655243402967007122252367508289257902540903690597753308391637616028367229220617933093594337072718086802712720964691890300895957847817039616769332215414495900796311744770573779956800816107393557643432672233901499704020028445617860964434875902179364579501477972172507055908995773359683188408502497648849497047595732683953805687041621509275781426810403984890458393053723457687460495722806676658782864339160360255228609269430569654014605985590871411544980168777819247693607845904617869642093305683052026498852975696523357651376952863047057159320362018034138849442023828437673206554155180336031333980886653894580097668224561401608967823545254076520416518099081872710346652668251282645464082609422299868507310915781020789865984148938718538781867004672714745516574772416079026969341766760480730470193158696734861690000252990749070731203760249611914459528200651221979143620288486233945127197690997102108680876736945000245721406913419531821368901632537666366152867989099548656140670994388757345735480344011807795899958086725743354848354153016884506356511526823988819074598065588247913040072353807613709177014232173664499527481968716244190904703645191491114403205629871396304496691996440761126949546845632601232198979491021739924595976091988163567054765685610286243795859442973480608927060799030009065684034817370836826545200802619307290187613661364889113325915412592557146305781742555855806766313510649842080167555848656777379008178636430105788931692281750693338001705644776242690179131060337403513492235715790428735442789313561700136439124809799248750755619737375090557907065230520708023181164931024040366166068280150730800495464242252042084049304952060001363407582410687173671104512604488568469607134277300596081182603170758793645086303041774771736367285361211118203096878521895055986862072449312948469866905642775528456352232399690505421501200008720648290655121031036151745609270355529747970262891007207502849449756515560310183833783132053186553766774530213396142553096218416480751795358319679943387023560357335550246692280214385851238146553050196012290040351874756545734308166710510008197377558767339397745843694631227996196753202125504623634614853321305427467664657683780885433797148410018776546562925777949358210296255680786356558578654781092684904468611853262136623022089847243917762459591236565512333075896924214215760313967104441766491546614547417460507345886998667162528273760606948582533558306061169037821695706362588964226853656599200187687832120516583165483490304452728901156318175098534879424527128490792294388484687836868403692270759191199428659828942657567240620561979474125423317523576954483611693324928850934158204595546218049704881683434855748235023322235936868149941466925354247386918722432818093538056418112473821945952960324493970973177431479495750739966902101558495624314232866642952229431426376530302833461332294900245812922062988980421647620486688938918578604090559029443245109961132931040782817985242253053374751057845161330090868389818487397901016915205712493687123129196617203035118823109685297430281555770088272725356121122790715453107338860024840399306057916283230406043179233679222708464804860228545154869940397484066293637810481249483303220962293726882880827045381484553043314662553384042413137056768144391462625790872638351875028870756624517026667695082821684488987844446985511254642993781123844759685252102468049417909022224622923004334785988677932114882583130385462299015055256605274932953710341729588652792310159969494890405004981708090761530192317824268471972546417637287944629303053791044297068496203497051933553068659749668473733210434285699581742882792085755364865749796498844884788691344655161868631913104440548132551486041510616544649556425172113421302148097141360721279840123732395179372901715137638991342536259817479502302154691244546837473162447217940423989079259268972035488642860953590579439257105893956262991346719909171915417966413974489504118719796704472102989632375767077411469372614193271861459832935915199323114117189782223087040058401960916190021050814023484380944386639198441294079364914777535301083744947888291221297619724951315139128678231021810889716002029817047954896180694284035128943248122128248810995213775334576219030701808755806331663513452127275946210211220691042929036885912911818738274613713426228324053756690652021032973489671702975283716654614054567458369091119429750877490385041502594346111677285870379312840330937141394537835943459226962252687389184105783496418904078140285718197363102922749197934374762778066285548802886331492599958331795374460725289108659576818323981898522658841333089600914126675155647311903930548950812142415877468883687052235766837257943955299946656544116152864580513390835658622541024682521565883712002866708594048410721673524135078317828110007880666119462848985107621081790696086550576137050817534967738074900383616155961477945742283466879300014805806251615906185966809654568008927121914748986021674216768817314919705067528864550671977074280963473656022339270554304154403584457163873335702002030967936152647162033437962791372878679551687445002171041232794915231790132935420206291133645700115764496854029473548869081933724838798344147157279100797625311411161419296431241527583360711058040214862699690902073902697392596093754770132352099184885955297430765937109797145195556684978859301655862919028266211331874921528567176231803670201932492927999036558431408670469464076448163458962746282974068731349226056718228189248414803044843342046242028374030742165588617310831560116910158880997715580511317007399025297329371763660098140293668064303987219449667247384512804319981787570498747485085783299423053617004479187284698920219833742501036982412884186873897031734397729933836223105997341072920806651872878770578781236521166191882139655020623781878324491375289680984507387423928543286822639253670887856723075407268474193981591300508456969626533217773037718073420022643453026814758474569668844224580346055637281640030899700956872178013713625843244919968851783801953267640196162596320532964170707455575866419431281073978944971709550392621952918964564169975950293981489028253690541756827418070821505427587674935387385639102423002417157652617687547673084207951591076271476036773097898701342232448543813662982330306004995030244219466714468885317280472094280164906820748202177985914518201802287273287051553051947532992227847721245931593625637117120455936186916311696723615601731352380888698336858942670158292471057929366922699508243524705250455982338636152704989464679896108084078874593698049999302850794028780397430417915160756663118811294998929084302120303325366387369365227547305659871763356097346133898135597845150375383999763746884003987362761110113785047804086083233612598515615946435515938063645634936162586435800248838790741657734074543893907365463704081344337982521516564771614946112812105288846527886576435579694315409550614098746877743220764764888514325743000837536524350122527131139780422561166272141164809056460381883766658680963914978534089555926546241006467227840787960305227065752478506628598304316678170865997636952802426436105251182676956051643401005060199903022201986696028579686552886121160116873769726894565502492293261590797635782251828514874307765672812330965517900814570053085824672515064234362818362465164120440423432741059217010901152026843774506912063669304710964099743435610231230074585097028849898315542638330158713910532454452445474824544580207888323349785101973332195010079957532583848228056991212199375804825683263050944023512267717745841632645240515306692950667746218222987166909916734193115114001012068464136290851147124448308895983803886593042249715328847643862306363316978220510919311613256976742277790710001333768313007351291447408614304846845898870277583154790224764215627141912769545959902614679327870608513510776431112450380605857111076204160096386701256679879567758422657255109515944452526801076581349971765968944681599373776334266316452874676712251633382342410184841056100136059945861573946234421025830301709579500867265237966991024677948740761267374320763020189436264094759079432283620486879755120801440248580013262765665804139539275518429505090561246718434333955589474526273081196696272067855778613618608488844312451378764101769440297514761484353208557858573891858878153812088609053974707990803343158539212693530939737050115526215877622672595393021321421692256001189432897861757912029634170605245569648853441482964594023600190299273626331067998718482700111622849612602245508943064282566815003969769744041898525810830517911102574367925663269711768976974581386722306033950483015900268273931536990690275208464229898903291012990217112926040814177674137650788420884923220008052851592020009510771315978398538017939754102567705447562113303752245704822105011090122662574186717990470177721369416843101797121574791905398344609567428334497229339508771960426056199582953990872663833592102757974397158174152502039640240338158673783101477702652117743388389577203789032608865492890929009262090899072680254256365998122606441628242927300938326779621600734253175726605871839996326007071752430733491011188388196498188455692565380177191675869936777387486618756046785067955836698619277965301844617403901176869025104700833757368523006553843392649807867310991775981874278232311777670018548085924681794604891565306192697484443445839718142158671133771160184676524208873830805085266215470509011000575049727406393067037058512239134812148565708417292556283577690087705095973520955137858511507329984675502546056031822852839526748636495140144740748291267230781677911578884589400434215524481332816271547383751028306213538418595012158641956781648163235752537199866766996178328157931497622803695718170213109457784606498824423090610975046848463007575861361514992826590518429891847141235124912053761955606229429770291926309416717845547493155959676847681275729506361118907322321544306479113873888692077312659779111332861175888350607667804123215425907789622850645050376577702861251578101861975868484359637943954936363380042990936968156094691054685266814202992313020776047918422371839446885900801555018509886280014768309133766367740911128553317501145021899280661498247455622482362679091389001935810992937631441166810744125974615970226820064220007142559974757990369138937320594029318496782149869445048961649427541128886613835513973323713517009641477348041188518499028548579172434529262661803277354692972416303976348224764938886823581517387437870538020584722915689312266433303989188371924002290043549032726887197507985788382426545546247251008047905806647322723300079382022756802980104962383933947304846868289449588542064780164549318723243313084820643160034482908806929808402765087474436245634354497178481023396028302940319089668427300089236602713119169931985777075790512829365621751919294385887064700970900217434419456613198721931387136320067978714362450303674773133318722943599032624360633340574703390629622967367642847947109847379238129598468341066478675808491731543090358536223047750331460853508747791061920664172521676096539016396701376660282827930180780832803458240884924443002411349369534366380509169898504262611205231850722925172415993380169706020638052570082801595493573632231433947448432290430305672075919795513540353119424957416583352447215319886007876301639338181430296942115122244771600511542514048500140887071597740406879269777900603906525069022442724369940546286290137143706399057274467387089682086906244641462846948586050025426259129887829527243776205107856818212498214806727327841637316026147663765831759164948484903606322793642283000716154381990555418606239775607462871589677157564598238751354828909031216751290962715747096861282866989295323883784440450118312389990753036153556217339533283902679907038237838052081638185110930079517705465253150206658787422562056109685693502384634880230858181324587731627667104072312474875570496861786540724699956321264159885107979671531721026115301790519716508749902698734036526521395767369715381985862531206206403255412528685153151409371594721835961844372026422078235352326894923194217978785911123534478179773364254705297152749914117802573269779903467423083284962228718248963635163100211087549453393803988814773032284698507085310036869782107533845753513262318368366033704139463841292361823276875423322385547558307179169392475518799630498303077011464304226149281852378846814519206413809528225819396879761256800771992373076747447660887934669120968407482985270541348105417602296993141177260100176130866953402671280002237503892671201812678521767216989867252085318058055026930758500156388914873877903696950277844788915971446581198265549587435447589875666012132264050364862681065957652124859798583194842305632488100831017220029077560696283719954780633758270270008556845268910146838922431899908097048126988784143596314013100497694871637312999249424014984329869411560341411791371314485387484842512871599647960050982304848854804621392421046466985355532194100385440240418729107712755646255251823922394679106106022349983688948406318656631508618220051545646174104249144228059972482336300882042903397087870526823122022597504934644528309718431756995896245807962097979870553496383656309913394374391104164999513992206999132290880291966177899245933899548023061978812495435099466796702510512187030111988703816720843722411427386861847040757761829357156574326199664868143385553327915247224890123040278189637804761585216118118564158072291480963690714766244426691480610683409775788461965357838176532575191202355445760593152002304407836841556274958673895545908775620525123042684681412223188404034354321626626435099403138835370588722397867076363678969917017902370810105442789131536483857162656936212909145619482165999456436569282072613628750035780676838835307733278558147441936093109327980581880325944618508674876643767341977733778687235274086590079467175119150331802267110044841936153830444019014917285475297634727925795908913400999196586199057334928608028817086491934153441501871165074094818569517517636345458348218770614316390134463400818071600878730610078152694288590789094075714422687505634498942331992855649474380722196855371381847705972351223690475823714662607363848391134676465070693644289578232853188260395460810026098797815406876067529280698511666013822764305151194212556073080135252077420363785708413144033037285000974864627376253313608131123339925939654926084636553862385770385558138512032137158675549953020550664261296695585690765357410178480155467776311979319578489662832151377907499826020417977525569384947312147483012055333642278055184550211249788987913008706161511841112131419835834215205058591392722204145468120297387984015935112366995470534387035045847625891556172500208181649466461377658851370232791416626891659721001014250821390129079255431354946930429610383348691605634297676343972047939313912913618419706305589169786136269764135741434035962613351409933011513504474678809634492872438860411190818991349606112268591445799878807468620506946698171747576971351939653837379931341180490601746359550327079924843272169738123505141561784326123447860594167740223026815121719433355403501044449072957507984510778170006097325726889387566127728644238848403933414607081316385139807942493160315037674051654520650847138321428468382737462994324475815506893871632477150055276796062653358618666193472941295053965655891239573968959779654530398632802224935318070281682910483561493149407935753238402758835140847399526558766937859840196575946284381611371383083777937301753756038796250515914127883553572232674896716982331954511128150878230117069671334322937349796040264044150516809866891126039324918504902756099231219897631316593543892364381877311769611548166161435260242190847660558924033133873311241644091757581780441296054139451246331319442562895478174000740107812830685149831246410672382122492726515314162311656738854380270020096420761411572341799449025002285436454481687169500790809425963869336326885110711353454215551274223129561910859743817049177689916525016714911252591880420135601558965186338605758140048777215621439142387215248401225494900721894938135997652387544473409245885506540162155709394386833998714190241974959965606630270246544687724255639949458608495384584343855114680398801194832898658602384177143539059612372641837600214432711829608569868388072942227383842894790382752262408042736213333492176031401964984991743744707100359600356154499500871072985344436022091550627067991997082909193858233725938688610477173965772782477409487265841347183789480020628816623210649977245031450256519570554316141545625880674096634649352416023040228989592324181699575156352927645567142304558369816072436283848017991530344863304624193758096319034837142144812701367470954512735365807129291225385123709612200361875052014374877613435589581260400313586795806641836064440249625550699822391429709960249720578934029312764589408852478961722232415139357830136129160165843171640254698347809610572510245616631105110420634296977956770258261490903597130140671443705920060189513278647884964925527087790765045300928271074841132277351245348102505730579131669508825324928823086398973432980748217036088584643154206838504637073559492963327889822304994414264391757990348779260219344466223206154572525323054090277091561480148349167998201624686960722728274577594377569108272571441636212136867887800378453692305881090015576159254388358640671120302188949633620877029442188530458359963871897954168717536470230511919622271870241616519169876678489397253853650271901182522688207575198813560976074699489678926508887505263584175693326291631386065602475366820153704884805284692434029026110999352903193791752945017925046757411441600261789344901386008427039724836098901906784210057763280625074278763157570503695286103993823750869885601474140967767200672040802641001133973996437703247075319419167662921627096657364707899273220927566876584569368463888018060450560052591008460115166793867158018665569533440954405517313404110447927630314869383445845405799015223518864680399208118122298372338862728754543228812972723925016151495741440343245286713193431188236084812836193688778696157320781099841254910945875602253087369617632786103627782670938235705543598464527191064997863096547732942311484767766188956269949692707778773753361719843970668379270096028288634105560475706202340603860957256581312706981827700752510459196740229260940542953744637057897413305068238700919910444765749294405782237570751247868650328507062995928379661877024725176515697789367273400129932663970556084581606599389365236454303221733043588864524383037721702708455467564446739371753794364101181280902081263610380380647619182446717053416671296124775524849921808375558471001435381763647549080445894080709201262072414618279742525599319297951350061468766518955607902750058083377980469276457486050643368512202522477332464927854915836002086898352458719337509823337874300307929098898200434987915367862461308050143787577234501426579064649051892614100763011375227856368096802597120239537021640653899907303455249941357285279446313071322907471023203519709291391145272768239511916905695215392265540317187335699455346639380312265869749491294033854771339356363545988165197435161662435898637723903044629864103378527145849248548072253960174914096309430364012569070477561986421276983780429891033373678931567544336511390284607989699523547008089202810375036214269019587989255667517549321980812112532879910357850112479665013798667019168529132453305295854139186359747791307181717687454251366083530692491419887963722874738305508496929399004192195536439424532331719146331430668115682818874675791889324938458412711782263789821198842169420461013943771786475736580820704839618451333881727323449254475298611401303014738540339211406563287385193419738980978104067772975503823857184332942168057480946324841375523447592761696762359049847009364654624067962993261343756515302880185363005378326295692546282424987895090029696837171168747669070649299692588288773225721665962536591677627060170389917814666468195172069867867732404220738432501364632016883940216184884663028797803722871649377418211771685591229778344981736258430808908392560330504694750864556689245273142150167555194823262768740002430655286880609603213952601350897141952353086780575933882195430801147857522787892111338570389924756931935102908550931657386977812230472462607735009675666069972724119643762499416908289997630845133987065407034286374778518917532662088572743143692743598745773957306329793389924193195436835771143686803398807627644466128577976976170391903819054384341182604135894201616098873866213290557223001866437412736345349383246034594369381141063896191893751809833062360338047756655552501756139884132677365801030949765006640911590800749751111781563970038276880681683336715734493103061857237866192921058891672694511301144034146364542532978542772465663091965805116853848827835917948030945049359279696464705681291649303698895639137908825385571611689980883433946500346870051355131980058478052973090987168890966068283055449210627367385895351443717291687114692345459287748648064212740469707240061177236066210496496521256735309360038992845400718499531796397524098958997924997801756126917759541140895565698910661001484943566679958891752426447816981069333777045185087207975697676935333108800462774206673756706709365956445548180652917941992633225515078955602473782198229677841291231062960453479875307316138896817077141859083752432735801353112254016487237211629648194519950990004731330799591060345912329684943350819871784575574447269562098181852390422377747387106791193146213603279048467191666572424060623374610831878038623244326968718751952964957311482528032331799622059084557643393588820172191715225777147248974512668296295981868544846295219045364912503083356350986674664060698444998233719971132502351133714275502933689125629011870833316964593873802222828692374447066459214362156077280333038989640784862514276023950926287258002713737034919184699037809051647306902175044963334823151688065920639189016285310743815552130497556822238899895677127767565799773846476717393670877771249497739737543274997489205926694411081112558471643041175887927303309817095445978282255658591844916750510751478988051200267710570756807338063841118450490667840029871760921041764314753486991040549424165505341685117026703023510235741247686554382684892813362649548316356259532066004111055488023697133916305908939989442767589052059798306481336064638086418860373612868344203189110571279239932033274572574933724941344681439568062289457219807312010538038204594269806803667423158467822162226103928205942283358790175181184456889468257301612844573466464240027426670074167641902110242975994125093179498865984643525233331218110332735681770404818133918574567680956824575774501287714878290034567041140671932012881553050895107316548491172784782576919576095114612088619035123344650969924769176968296057274571120248755313820838330930170029390725276119512835975448486329906343493443828289476527886421347786695121447016234211309007467931466338236793542975121615289392754074702286072530106803828734796423239464704283665139904263021000942418138614625841317230527981090678020593653847195732274760501843869805978678720368288371952797441450968720418911133849124358495976414326530721146429188536048435328777391374052475955259066678070213408422913512201683587902538423603721052125446243692605157444451468658039754133138221797902730249424661806814591349747573481492388795895174661102525075151828551268999806866965933392959348037353955489779782911353996807236250035292052755524935018768333808206171404424148605610141886072143362726640746083422106060988322960935352822280614706430369732017133542285837181675811026908072758478530957692151619368392643329982994014496143600605717725878130268534898584225738569919580180546224517298923261771639522321930055184450702927517105371591247458801749883076662242442891784417843232426986754800879883859030418361676516728778725229689203121426928103575843126474276878099668671903663432216430821816289829078100569670156349541932316396520033136952017631225934399251281716903924171728018012889867938699197088541794527591778963058507501801743692139736749082919210330175299629570803481589571580973290575689827215306814958052564791895885150029416486611933178801399705155454310930454363365617777399907544354425546465426274259548090517035106863189094497593821286827350286492485627938190791276700821321240769509754768542483972647781991745147477193722080838025471877257445603387475242461394566755533816515690166825614010205992669056718008985758357993929123694101396385957431189476173527199455373591637400560323469267754382727157237776224454500375326250009886886795476680819437785924030496783233397583234513379434517417567830385756856916884960690675624460118848238034656456084617213584412751659407729104135615603333817443696485530813154464091190793447361203823664839428664178599298187600848772685606470093285535130526933408398360340483237034809731088743308173301022121480398868162498182085471223266208508391413588686211701812503901001788527645552079898571104852614371085307038469850134334717672933354978804544544267874451385069575090824602184888203101198062672058298535514599524251252686458427522036006711516785358278166993132285010815105916288518627577346517656518852151011116816656348665926012214924838944704965690212367330452043793504216824823660085033896587932217306426144354743073928531864456196943601411270747962445520950393233180298613722351106738018653328158743801069675271770880089380898448173846030348386889404926370677706331447055653727521427712848316438004499661496599926619082610647614243930168814601783134767286958720624353417296826306768548131741816325882735288771167064372371602639541254248295339889584135511826255913239569523429228540174592310790764078070979066380350031574542106042430461829517541263841295361361857573586595174671958541688159492076683807988382336505685375733348724826561078621780480522829109352897222739195350166420511921193576054490864783776969250124244481706700101881852416785492148188954662145849440371107672515010625589244630747766170692507019280938671951252421172885316518503582212485534878604945881856140198012296706654872335868793756272574735669308347478784958379408352046364781364784639195211106705815013984071134695438531052226494964188127603071981449819850211405315790562777191673376250724382173836713029664220604248256362766381960402068483178809213091551815200052121077478662534824615771623961847945143811003456169346117321147859104225269788118688119088480333077813719614744299850167326341511693514011025258424965643043039392508131830593992899675753806803746088457092922561781024425667653388367373144790169001784785265744223496772441749327667869078866091213252760339538479742607983282515138000039802270734758306585236546790498266733483778882225118258479256269035639267976394698903676506636744954969314992207560646927312528365055230826347892888861277406605119335718445810093330329505633616050021172198173119485978780391162522401046510795902210598147561288034729726267574682241754507313635197516560842408485122422468025572306125049920108946894460113483044369389992828162629090491009351338829272466740680566064361972452004772013918054484640557737582019899801464642118767871418641207030538741841782188871992559602551674283017933369813167340303788930123572530281107156380458906072892027795261108915444979911382293290284155422037888783461755959033618055381052395092814374740984878134799474854629025738183019110767590827074265392808462235419728889745667342167456829388314496779685217355988216685580303325638560005427756397410834586512422897042838800096191124088392981691890615507981146619220976961869187701890608844463219759202439447214386303925379527057190474643053833084135915416098665919999800822584034692743246982444143427768454916057480893818162346016294660884794547684889377530204725891189659843093201099370981350096972958511978869770378547232313365632225855864151751038766413182278299153653293537816773817930424121260896185593779652050808668516653410776369812032696571833347519596530863565564112251143052674577365017789481848226037991462198939936825401542574111377734358129854251482652834295129006570590790710988288928006724521033718143757352763832746102157542928187904154669378978272394967974326752392179224070646106969664782346546708094976561013595060983615516256977041614890183730266428658823805880692042305179197735234691850232131455214279352638330719954612822801660238649888930423969307914562999115387126409075476419472929735916307204962724117002293126384085343866736275434494551795168697019281525359960074481398405865070631500379851420115473284595643619579013193440487892404937347976841726328176203625620176629894043593707365729895098405032141002533704955164630388811565947351332317626808520062326795740430225303492113491095373787754469931163720005835793710422667379494955077608025829692250056978462104956994265298450626873246009011562042469613013777134788807178652926353532007927354132562991627562488944451116470790777219935667220962621931470680563508011629315598916822845572847093160215242009468455201777823331947830414709832596089326689006110073074843371359418976613831705818499578505859666258760884824087391405971566662208208905017164922218119382723291150396404655352561442805767241557899926617662125276552069965648414556728508369540158064902303780315712678294278697743710966625482218643482275165646664302703071522285689307172403756040096280552064746949202537330657420879308321323270364112157589453113719570721345413283548471030937330484252657996245973263722875606675903384253325752822047078299946733904179106732123395812160144126744238563486361576955173809790835372276589442482671860039925263803125170873978196140427754089398727775218592513426203199510433014182420508157281702623460392245545701605372885878061843116078688208829764530917030051590966305956209162528905015772431978033043735572138226672380990412769942926251294497991092565474005728507890434050610800854676088522317599676060760115908598057701885686291086696059714259233750233018886638415578186345083000837465385642754479614733763782220796878974963345645566496101944267507629249206566020287591539198609910603614109927227398983021744815826554814626403715852160936960490045807068795606299568686656001060597519702752021688142342032982187781663779855378998063560627397370542606344976341049354975767265895093588445402942851917928404346769409850601714007596761279597553311410260907861141252733511055641046605726505361654189047910337931180372857527669095022604361706457783913472361587559531583067597951941382156107899728546810216736184994654778152842791124077770160322499171734272114877500194964516143781062345627604221456675754604461682884514868915608968226229779561521029796245178423000786208960306107128014830169521456093344295664815853131443165678708658274955360953635398354962443019274559120457385266611431053625210206000839003272862467454232148659024165739345297663262563255126530429304836437576105486865060872243089024778363156970102523741761489660586891096201771205092652093233180002339255653482633918222918187922225387224146181701759671112157650372459889045461309840312325156963424655093905339004597328346981500817100264800428213968848955240847501905397730599796920969616208509541914772329311551272862029598862515226842680677965217441738290848015245921535734546223690376030237678595694429368389040867669160555525067982379831363910240325076969988590896692626865422762671502169278398508694541267907140050024287608540734465661814544793823650171298125513766528973233205283405180458846920450666862738221938439246883435655209219272216302695266075961638520851488293945906625882083990518330360277018577132922455715211005389782378454207294619409411753190169414696928565321054311465405634318024624917739944097642243519088897343343529989233230012734843416842220259494562408835776282670420808247000254868679571790043260419561052725507771201168096970881720136925409568860483576979694221620336145233398725044889438685651264317467720921947120341482887069943474301131348258007391021063625390106403558125784733141633824944462857391301677004983847390475570298845930229774340766038045539028415626622354843766633399891096109903608153995887533740221838774549026701344757257958893893338455714703151978411853753558813485278643484200755393049825824881346919666468287147127385387943379030150645462749486882679086286843679450137241138574409206808233799593275985289069151564821958807866799467340057332936794345524847866124660212000684836099422820226426685863018156111532070242029935500894556565264061673844372686338507620591167716406782810575053690644579506523628577683866198402700311217083853632721699795835317361304620776174943542283414213744275657608797719793671109589542718992092563650100605437832859839776854658616439231610909767079902654831724473233516042124170892469680515344131570636953182489473484489495491243877106457181608934395548486536142582538609230695935791493836391802705126567994779132821984896661048090272938236489208987976959401313075846838111033350980286128453253051249705104261138382346978807337185967533027109043025754550613647199136154029178638753131380504740595235245937137560486831216475081737754519057242362778120698147239831010298503039639456683953036211276999996475959972297605001595187796286418021433667063978324342763835233945382085605904430643674237515688788675898104522620820088296937515558204508855877466127894732130624783155986823364508455582669571451695093850435942154877498948042339569252953116139750284867238169966886097337369469833847831391473831567131620178786619126355348113277789348306086625711745204847376444007320241139380506274711248618734582534220484962845551469880169031048400757616482289529173325607370330781976472876889402238703620204006053334183645465783998852257865573775650870420651817064447905244019645698119438466861891532728820499151373402912824005816269868333553834916233140011427136405816123710232134331540238783973993506015335279200535710007671749374038524934183632679930735241881306752779070005500011194775953514306554681268854259914912988856126083512514338908755134352764132406751993915995192948797718756901294783403577196600259300641960323609871047802181938338515877005979470514206602605621732978359566000376821545429714967012921170568535445805618142302776761565494706204493331166063452264789253673340769328523082253805791656567189439007236937736110284787758063487081443379817554434279168054046416585324605772971782378836605911558710121784525097554457576563640384215837232964370561938134119492939095423027806255879488292143278194193778959624287069175765437640060203515653537766536200184504923325756310411436891903964616081568739977998101000585204273023202592467663969448192655765386291039910581316557206230977739009695896687817926635274000283864932889120308455994531389532649476995842093765150199712153169628317115097723238032325849639456699478942800892735742674784482166094394526820795195479741756651747606085880994553449660123541370019087909557527567319343475082010415982592529031174612269751144916765004877142670791539120196642187972077459923992436953687118961801483259063649445227349286112436001551234657681959949246854294383883355067337024301809226646185184543547342450483742011729876373214194103570964860101158703357430639429327099474654299310507464392771901325310856983723377937529460691918785945793098463284915172529787550108525842121302162928150288341489576648251097717248254470066515814043004924553267338872051752914986091321086256539153972798234002685222312713192040603601802027077878479818537201419015111642408633075901195008223841583023008525643054826563277684269288208759169034345308665277729819970879240025187546980454323541125331075599335690268443250581509045929418017666491207260264184199627132914734114142559329523741266980313163463706252827095265372229191352219235172573070094758635519905891906217213191727620828442845766674555494459490152829386842409822257634616267954692251396444565565489999428515761763756816670999113590086488579124490082781765311212893743661205115036473363659667233599265237132061940082815781543465539737392604392489417153041469593209259123453683646077556178310996325073361197396928211661997445516187317294105661066645807012885923513634891547045060157169408890790824642481657952216684976117745159338695864390400092402350935234118796614549530117835984805655757835004940904975415574511794953372449293747446321116776465541369701265520139671050625081265326197809748377635148550267203932086804298308384508274295734918762665249032527822217879109439322471222647962718721937229172906823063706522852545648022276784655741048412271465988779980441643948230987280353937309013492796355421902819361279184290308307643757356451525074795876484479355612616549077845334341952030934145857058346264763794710466884207820712606002583927360724531800290412913013130368282518664787906657519076818421244246010740938870951455376022953348598762635358387062905111995734866285090266813624941064618323395071194383337637046356708376028689127623274624344974394896482145913465113208982111520605670403563911182092327472242842942223863174323710097967204461603186845927639652350145527451125101065213217593764622855066839414741717508420590529016563250199989806355135347306844021678999143534285268198348113686981004558774504040181672850367827489580222990722197705564841476281932785864781350574254913401492159973301218521905222113986747043813570108445612392016992767903852280071834386080333297023748736751073999852962919975907969477040908946813689991172654315757813482928555475342153892891479454174730654614042170845587080873699412394163348799483318076590017163325143349332385789624213449669527513350812860528622911045010374479069746430518046177850993257859627229718858032961562773747905817641574376438810161205531307102356993023301772944646242434386148010529818894718976827000825145180884695356405605782887170410785940088309316799024924668304284747978468428521326013051156559959982719494398030691678125685018393468632267513902134967063506000810977021651461270839677383452511100921531147538242277330673606183998494989271173236364619193552489047750231799172317494461002040369835631070553932875875260723176088132683832080103514690327443627597104632498654428572240006084862205673280619316475368200932713019326868798273050406833080644374413473770535569054523232189402365908941584576411093466566018377251593901030962306461044057767037381027353695952762839967026647778738158250010339043464908565040818592947518415229870088348269888856601122666638437000075359815760761295524121364479499554513672907015947849418660580998599495676953570993758279534211564120317338914368978096952009765153686957336708475236873602790365876140460229021912253257849703784889326200723318559655790675028462182519724203993155528251899652348156555299096857607606160904873694351546964637446992129762119070749681973885126577879851536449960465322617534020478564606756581809450734255252732958125124656808950154878028359543073610179899485263747897865900952487907754104821125332862809104396908225672095341685596279425638374481766215004328562853185264558952629191486451310267668259965769372053308079619236279058768200327909510399340369294226920042239360984617940694602720740313416768635762168434268624397869315978534604292284817257864118862481808120495730091157130145168953366533775255980760206422899081209878458001317980209179436495363547371982355722177550407892746863302177619374722619311964028541541699131403991583498217921567697597145374220441078082456341192518280277091346607746716489532101939823051898261681558445068042335450731566191495001521284091654863432110253965622547578338488023424456531306209287889594647183956832783963731832230152817402108935219373045505728371358734360069735315639686093371686934156610812859615819555885798627799307977579389122868982384688557520702199213657061873774364985102473826291068720928137069861700351116685504016444541261602340302026946982893633704367445248872777199250249158532962729068352738186420435289353092151215243216646860379108123775772796805273855660328694890142355651571799145852440502697349823647712690681238761518970980708435752298500456764560356381545630270935579050585088907277112134740846340458018603167995371338562317109751957093078308382217338631300583913488671153621295431134744536190032145308607911114225198563152852937945315181342055573244803124974809306945425088022749059853253936469473633888384940071417177726465271763021157447803482676742786061070926459701992310054670633618430020341483965250702068253040760356009346656444766868755463508024271227084461551855642124568875723960870601174444579905813221616032813038897834817871552945587633069297965010020448332373007075587500956337318671810742861217200339486109251591447436695612728069634838344828190230123535833490122433342333221669146715231940890547409158648626613649308050559681543415187976227257622988160055423800544133205524150237816864746860789582631757248947286689687412514511074439642577197029245555874629967542586070995938752537659972316328446006141615314219328358477163407514317869312775901775241125765921734037298190696756788466995968373367510781582127066632021460581332614277965514712977344316556528489543356273130577735957745378869519210317284126616494907657189903857405865822063337299932832549840319379261126041591262775457766352944885321748427392349350329052610057769579192752732384425205218809498537588694250727796457075042521108125216926773387098431746040929597675590708834986604915543842722102450877650693163024895201919226768804966536785901301320066266862411543938310155022004972290035127531124485917653386347357749041926176209732153587873807407941126129490059486721557511322955774389995139040984071392095462882790013856130373464753609199912739126099840661565382822378303957141834135354508970483114670172333472857262296899312529883911394853621410823825590045595714623039492327505218112996684264311692699047453318848855779739827600386854521256915022718528324510354070235770633654751935842207637936196828824364721113124463179628167532441930371440899377189720586477215596318721825425631925963997078049563557168104656191574217922038582486378607596423204324083786003499381967397640844833258573624243451583997874350746947052976879169466109787590836990040707475017414613392336882115136560503650524596663389879544675435340226298461499659966288965038891558668995481230674791824146150026079739184253416376455058958613962999708864292774219566163815128977439251179339292803129744344628126666812544665180842437382169160071027712788553209924319054577208874171116376910332826085273758205145560812567753383070015487585264246941739329350427118837633319878342833402269202735683145834424653135047121912061902492332050778105576900765443213470223651223509902938112687262057678001854777650370294005250461339184330054942769515679151075330109313979143734982268933648332400771341283568211985496837841660881540027427198804859788717940624998277341407091620694040368176338562195619203632654987676889380732138132044899000316120924448255671545886524243910471400138974960709502978163679019592509775192163123644805487276272882005527773083095944027070001059458398806879618523188503149293145627624509611016608587899354404332505657040235598167292880308685752860731155669509817629227342994649943114564983605318269364427275131492929491594432596966943682411861323626347389270973658575835400581971695076946523976465418524167934651458573797968676434056457886036784050263372239997881295437660632955087941253525371303627817224989758241506500477394079514516893452897308847537873256555195977208682194695440825849283627251126518405045019448675562884948487678231304293823142624881265478281795940746750767369916030062079303171075443707178888329119676650790126838830020378865302461792701724162436539894984822483956066109645154528079250861961224830808038271228829162502740816483019519726827280932577685395682460452662435126010565011631343229694421255559182613144293431331565200874681864955932806032605733999065885277072764557594430893357038176525208284161980872227463792021230255050911627466905437964367352027840111169927818095055196569729924836949030001187210585813974708180550792751362921876090834288454687204862922413636518366411534171012515684148748697499033358597764196248241401187063072821715852714487353485980617681984785739601179657860309237990351431449127294639061305082859455250155942887081583091123249686549833448689939354131192010848407914195587735124838821097507839605002677445892373977609611064256305065981457547987838081027985328520701853285185495744727304176277717614343392505022833112136880547141556539484531357826111014222504339465447208369623068138076375738354933635902355319495412328713369739629166956149334548616009473449863979592086726583026066913446759241181148422948339607241964464541727677690951483591358561601654668528303440347373803609664873468378005411997281744770898069707814393384293113116318431701633273778063245116247982233644841235954002630408455848180261771794837418212469375902431207249851837090179860845400431173585625727784929484451892579661497565117172550229178104589800162755013882065798236810748939800784744166395035686139748793172300467796279191989844098895362860054405430208604284775806242746578011246878882930404420668453018192718785503027523719085867099542547140168077618355205672524886799458590343369765477607760858446540339616766797401857327132391789460896149973136880951340007749652484876652210641570498828576933824725338624912581997572136597184305334345957254924824825036610044591488357702232579036950850964537010219822482497523480303885987484331310626119894220516454776348027269716622804915527910241639684071734165214316717369360195013589396631762281468087947820384650255203485344433305248174491613637889151390365978273738225242036650227230166619115271040462774552175742446077745676715486754573805395976645158863829946238134370123725516786295139651119528562166191435497001869449427494177294399209749016219588537515575848727667969270010075059079259432876460877005562148225894522959127908831877471545710277213337140267960809678390377171634097181294098796740398849898792843461144284367528252420386699781606296663405665039588456268750892996112610177168964455261927592956081808031959424247325550840537614176499805390129083117706844383516332529999348649077137376811038613264062348053715111112617408125748246378793000233432936802048289093088042815993495534196663263710819925334496866053435829455406071543096548663641260689010210586086319376640272913969276060155793092800985176662264555127483790407823275643327701089385981118668547913933589380152954899447881167677568040010921462100094923602901119789545655102817240605081284376925423857273732209270947631835744181874702978669687813850236039108948498786547702698094165389966705705162253445515960293410029121106665599210307318607830609737773091645121077218672323725107229910880229080072839452104070798902135601084714347655163011400118715749000109884779925582412813065424304161686546621154012666973484236784300410089325563363514338266188150204613798337650209869402873584447853037055764559803004833668435233685628037495939833705482516278117512689875092006747627618655084338971645665115226096508231838070658243387278339211474617803868292616743976592397140157399091160103191178690307233024701114706118162857842806590077917601880259364193827221590824785096594019486783011764133923737933595510684936720650908043490634429005301233930153166719630712250388912473872956552691109626296097519080975795717487754257120850175261621275083424255253216744474533060047059253486560139969229917435315155150645485207087502198201918502656948317324207609970656635268163681740881546039854612844803674088338939993158727104018152142731341746180146247230581288020367252855655154773089652618821335811095583352067106148535180706176144786601306786123057409376906285385737634798651185519647199093932632599217591268222821157314927844803579044340098254892310473429124050602903495261759642149596659956879934836786529178701104059766616626511737088691085334017746029313046352449501494153950678946941197533129767985512133287565201376422955139866938173724416761616576854806346614293900999907254301482489501037620542215522491845008517339470497301157680034745195543557731365580193236446663532766708000072188255403578568459061155925199039679252599533187531380213813047311537927634548387745700847880339870868855346330935458607987033544031535483415862592332164457406514496106578554110248439549539860448702582802655169742192726272309110657475668563554913307780853644720158255803382468558390396039009265347197465109381288605434726062076373521063300478914133272567447590228238195999849676286509483312655795813844318156826400096004152209288700760970455583759076550209226621683681433881795422808299076160781596685086857496120167132884522066820642115976449781647140562991688084266092528066386944274558587492824308593253902451410274248281749389691701592746996037156883375655557453709242306971103974015034265584825134763428088851758059970846359666164005363615660269930066148617281203740366433289873782448974897387701856067474983861113277081255856373898985889449500997259188463434521468896386277035861853535845387425023805730137233646815333794717689069461193217056411575272937949766475392266193242924399166841827851683757508208121985711867228545245582282755925474239937799515709917199381245955122197582608751314143036788297918485345423739837834565729506988923066871746543624544536730180243783072783312688477887206777288907100928101935519301258358945018477649769869196273559947738153331946679229401153945997699145290328348840944317774682727660307010014008770465631174806683049159017563780216722978008643739073536456368321761941380503498745751243629696953375762190625356488938490663463360036157860645094579594190012694256118638522606794919873082318893035668015358529826383072824551713177370858118774186399493293919067056659135077385321304671502087333159373517842518596177658948813176948549624099800996498964969454993066855335040295022549225670175824078619635608046040177504349529620110051496120880932776304940365641144916471908544881153724084660214186397487261918594425573676555465788799234908436809356702611956483558095144306530394719428355927021708289447730080707478350784408795728567041381879597464238572743070727927048362552120924835487418470511487995746330287143390622572660963339208998581989879608179369812623647056393843139488175417889437823083590492167393957543144232867661186913797146300901952905206961842586098138168607505453293695959789668469028661987377833480351719347980044686944424814103875448150778581937597592957369334674937422582915444393745637256064808538584187198391157081053811742007094239988540098473896655468593001574469012632945653027170372465219538212913636478387623623178788547318551302011695150237858370637889184378933369808378469358463867977169320687161964213445713001233592790696804245366489424658313152673821029765559684999882227837279588627851196720797985927439168293343958445206631248737353331034250495997530184493652313248829655770045319260002438246095367412903933236382218408157855576641017835753765160607650566946555708984885569916035701496754263516911343187728713542197154742032586605746634400669933554553656257604832992501064580211149636676088412684143903188741425029740844454217313921819409488948372287769805618169003386380445676843149459527345481658247732132846397497132007558723012804548278506408974060725500674151692375918950277908112575153688746684228005033834716502731118526567023043888930212409434241834707398370422961358738895889599264470774408932494361678744130503508963607891153488271408227596279626236757306586285281269161393068983410256573344274192018577977293139213264407921549795572072004102176535209771860866064759093708358130703611343749017247974236257609628500717960697888795882415948655079890064016809473056988795080562585257770152282586944101675862644671589874951823330789479958445040898876108811779044255683929501862944638957999857011381391799216889468032750945303066400714431663189854109761955113491063008680653729427570120116697412983677742260949987398967673405192928177465474649532260518307743739069098274749531804459250481330302714959608391397636548035279799040926918048850021443470500285572288188232548658306671083491319238441495100010573537234154709795889704073204423223140445359227032512460035069091476547982171201010614129825710744082264495040821663310586268806332011283836923657275849600319595398813624362766554825610821088692503390399861221761766297185188104770861755300248123982624007458527735850259982606952036254500535702187909575325361703743100810262249736621827331702662457473120150570442234978210104398424253588241979557806698280253247999417942152049104886260419273729198733458637562341537180145778912839523629831794462750299143041197168890909378759963521664133578954148854187585785325062817838832591770023946273881056229326510694564154401114132456848438946451537783441295750762205567285784705839973484612024973002124812185042873696382021339999217965331853237962203166812401127909641027297083135324142204327818778256290226484214233759797618199146078806296393352449123961735063373510018861472222266716199352745061744917197010248955521051128425745611562699983365536217405453876799953588104470196769803022807184723043194368808471649681953218194386105961693726608928285150230409748427693265753971714433959185287276771578131098077595407216581615885921678868091722169350319374419796764693960918196792480752164692289418978767994295488441797763859528627380737336307593290778882244055930901857916204530808227287827284085170793407623317507846186774187912617909497455525084513497906932212205896603896109920966216121386574999408271855498239848852027223153563457162301614515521238647932628839395070439338523887828797899910999391497012759741253383863433697532735081093885447905115815211930017245120422771511423282943514368807911048264874913864874943676459572544949002738770592157813860537633028588690343379486892249170753234324307296252547796306682688015260025849875788419083676797631185926862389555008565428450915840180308442533439691911832785350399279685611386252942729013873122418873816239532304885281929163370901492918714322604426321176003141656113478043064440811629687990165645407168022327012481502167385471744979990912456217491719809394199790274726785826385103706647175975383911017504785626189881302450307567971024137052144916807360914435879675736902841405932153513538065683480274957038155070040922940966521792354864967677312177373935877287154108692059378422094752855573258208301299752621868317756497804295821668961072520632783523364935657571495997127609896355924491803505877778477466453832389234041718000064797564241437091462126340180605277507257290331103575247226681353373004669164701322834392308740934535566262141206875930543819274380148173051576621094558470290877859341187776925011346978863397025731438503660338535929710416120662841794704280005342803466423982543719921733334193406763735922759431693943814279677335307330044197606397529538990276219614895542385305559159683455445557215535852934423483532789112583450003333974365055539212992480895238495839337281746337535969959813771597633883287559414330069492735696343708921667900255173217403161087493032499561075092595762385761623960635574825345435459318586159841211522110589399106854786878367994354225933618706499058580950957989935799403602528277612883844936978353847822365182033602867619649295433687074596776121517383651841727312084362356070066330024149813459918837362892530228808846822843917965782385710413541390157390613995339817208216619088501864653478933673828626690245906159472835035809323416314942298556379042125357558655112875323912487286094158644288577416159415146769716822782419611958242589484147264166429663059483605702984924041516948991120629970025796615199604425889702379689378129189648562476440862832571594541514344797205564327601898592422458337806204773539904981233843665224045768964210162325931520125117645544951842857823501359999966110438229099776222026591927290454429600939933186132551724941202896596575100717781320673214001093719697269608378183997050188974971261742569967064126690771957665085291621395482788412819525910738513390808253664720029637708993664987118582996677227383766984419867001402733665161574699538772807200229506808708171992511699871962108883693411948902090691474610290439308955560591123565121482437011367787312240435728314414424322275142464324150045027799446970214091156361060007615463325276565661637048164525290987787307576733902136094997044315378356009637576050082596540127035884063720918777607110742524341598283005330717274196340017325745296964580950345583812788362583427631269205218694826423312257692571748998095732134901394153286011930144590383335806582664174974102534991096437941030710356225399261073582612070805519336424330514386457971628665862390424580773711111090750572689994871148333588988858967583065860084658810857935740229505544765869897698093453317283555576234787843433658659057699641746278713256956203980686925038572305049696818652540161308523294621348069079966100336015420983668742811024546009281499901779293178557383212434153193677666657474060277328348817274829971371957297334857549722394985955240089389365731878618622021495469429541699782734630227474081976202393219733139366144874535642501881038990851300604614057016821370287165398453776772649016853125016891290177289266643133033362962064402334958710049513404326043692733289400265463880000486182331958132420031766607785621946828928003100142660111455387903527833984260620485759984151933715705862180665128986880183328848878888864293159738700448554528521427261203587795846495060042675280084488703056560718708473540846665782108028114521683813937174344977406127742872951083139106636544157267220599063178430183046923343525460293614893801982718477629753905144163834919604958013906392159014667269051413353432153078521302029997850294944807947524401252607468597519138524741574329176053231079167715685124335537620105736600821335743851965331981789835307795547803454946900760570417520441997973001127985707487511861409261478689208722138259972260346269630536185732447455467731699801434783970083042577748196708618985037295903970481010297201916919064150313371462098600123378455157736860769428428784892396286646811233970761706430393895944748299867199458733799238460676416868310151681426465612367216061575648764747435082516239000624952932889274500752207526301856244252890337536791974656437434247753525269287349987249213618786135231466130076995704228296382110960327422220951694211871912706227961734438212573398139133751899399695356231655103889969914040606540603144671720276906047719005719802580252699694241261534431341905615354083655418333033025816720333010030684033923082503533468361159517932512941699185736353714944777122314622258495692567877678370374554721235846404640903833859024785878370734894710977069362972847909119478719523259248683745176828017135156521071030723354241481479349224230758277473520946954146076184165813055016580851137709833260265899999993160845428734817661140971558348234027945905334084173851978636110977879494849123263226465036875537232472992703926541271642035532514712237456665796102856473621477276339757761630175349813457258845769262378305103144154630540644262495136507209657963763370760606695515101940940565728648716311675862474309389434227165627115224137855046147160205696295711513040933813316302245473183464362107793701552391014329233971961696839699507388415790732046458760685036310324024721886890764643776800261813347984735541080209905941428810040964017021065003450345133871368812321136654817351549850479972049435954211219412579969823611718347701908713145970033043437327127671732202842606081104750496976203425079273639327824148949657364673088360989133477410417786251554750138764099914574031204057968734530613670781503648604108855025983179217359897001635166570005084288705200751791619048923333447273111371008035731771184327812634887921138143793748249602523170716596837004897703583180778594692636052718027038773509781571170207993762221887826394779345590331953616761426625293171418806594028557050243284007981499051333454135837064074509733655375190670258581100685395557859434740235777418133289008935206750085378723099223373724032867867381791360067239182468544630441871881392052363555072571871344265831812353367873964276243002114250205848405972554866698286571010455051922488567775871447540515483148554800064287692732548449884922734703866235123707516257246115316881272923733457866410897071248919959508887201008659531211142506734498879188296594604108616222221189062894723455338133842823207897240141324585283561554318608163204289581053303251288091029460451675564613409517664755757694804929293627528206924271398009586272071986383372546217208282332461521090088151572235257933367119740214767796433335040704929176111809946752175213119773836937392635565410076909349215014814935662204683896862922833581332340526527037111712222728431659871538769334612624618129132305981826100726038841306989722433513372695641329817891071150292923462523264496782707988996312164590378752070040192404658526290985544414548985434302882624003705982275958507387970988090186774517701329058381904098602597075463211988769493408293289274442326863184844176674638885230017395947942425376856045711258317198138869567098535666583073315521748772420383721101059516052114435860500339325484411511906518981024603774977871004018250348177044890469266554091051054414089022229782644152400467595578398398834454888997014519403156810052682714771685988640158098922491871006249170004930724450116669147616730093166891738304629999073704597086260903108685781498161661862428866802788484143092780869096218952813065465836470991869279773772306752943509786179413608100887627017467996994091428725454943618799966184452686529008075891680143869309720974310754729030322774970594625914323484658485060426918506508650324785223700958067204372247924330618151660673499340815638430463464172723204805107523520772113375674604588483909719250572214509722218504681343613009182764783893950948793594875469099128219916140093716663760412533157693307417564109784900568600818132510489465360000995489747798467437779913534611993759707976268374611341715124031053252659946862344829371974859762429292908599837588014233537791427667435397060496585785825754967822351456700621422099418808874622602410566897046157938764463294776652130152220042190401885672665313676515011495040246467013658309122985050966609285269231673640397597756662278041725114301894250484183836178473682380644115400569399733740441464006108763566250243888007349932758913173032701094957059345305593643028179145831024667863602744533215575985882480940638544831096050686356132862849445279601946456948673922644343034330342287086621720069042848640158875361706621708164187254475392037433041183309275118983192789274245726198236113453207085704765812844701727781749569533460391417519707562538509672601026121913515245639047333538993154733048058612924978403537059753418090666782448636029581978246279891894410995998218363595372558231990787325242832314307224435633269842425297426401783950459981020219649909251779887303506163549729433748080694531528485098254444373167717749573520220184679969619288619404315892124712977658797704578623247389026891792518648036946933074594529562973098646974989099587553017016295296770055717665560338001898317901975352909904859023056144904702093769380565967053108968859209068042738305840252099374742487267705902731571228314793889277880704428292544196994076622479418504456296968843945942634247498485595832461932114767294375144292806429550767202140578422117021808806199872750052050982473607045197234577449996956473631242290167211034303600421231670845244840213861153091278100115168488154300047423022030081470941562480767988935796004689825942358573814325209997750444896774454341185813312708788578962560097294874945650980864152656413142709520023192149906245198058693357383905324551387526231971582088621378174150342198708133910437841942972080551035904766371259699237429360226693896990798537603363922736312330497082840365733503343816121099765739446948344630652727586200992651361785470178327029250312196698390140651319054507351979807040217807881980013550322931775371698250309321598603818000250153513045631613331757358996364130706256317306589358371071903094984590816384618670062617205178131722406467204460855225182348890175767684130191292606365825633465002259476990079179415050434553956096825427530880240366395016447182828592548127764742501063855318535030033929969096137523434891465611544867355428408146338303121416923699191208936855877526849048777502336514805173124767959767304119813266320925708810496574739403386925368975153679805115619091354415498371464203927710164435324706027790839541954316574984332180370545071967824925126141951082763084966371793074744515571123326078628370402027828609202779912840706288007746052443325453278801404505753004821295468522123802315100181273045197371879734406599343198547266545009733179384920745740044210307144431851041944256432936849090211071476009479919634396143429071788859349006045412123607053687979386026314065417150204093459532328348948124624515488528932584715358676829038169743579517559541589516709313084125525402026020231652381566121622458455079420975684756175170292282937900945437780677804763703865348835877503342280836944256271049018035375158118399079628054846622666091928316928841670551413966499006228867661703585988995037257203191969861228743932113120780567427377506741029830158712329122460788084722841549165488351416159118952493310279311226393926298973316632813723870637710636034440107634636567260094097076983324512254568618438410505301518666338707654628787916686925164463409384188216211856586473469049890635092799625346209346555619218496681651654577582904683959738687737777251126259652048093666504203899978488255904792553515785498970688700761951983057973933394896104083028678208695522113984993657432811351556053885221823837363423760435360679342752523104259746003584583093061406200362695374969557921299474173896061612393035865533160838059948508469191003934551443995718027501737309680908555049852888409513456755855348400301141793349080878602110218020496613040028448796999337842151911940063627718681826983617044933237847797129177935847470324374062283922542975589694550100379936904496983387950312247977803156483175534206586200430555226325642031614132066590579446785828888105462677116308298816282103228435334232432429429009645183320789797853399118561485945116766934411105644136746207022743464782601344372390198705951025193336924246054563964812713007573279374488893529572929926525815812653340737563459534291235986752681714051191829906660793254744486335585158888343414807459331516562936580308097259168866097020939013718467573256894861421017540729326649046334369330621619353899008579611996065049316509742608726842992702557334333436021565334960838172892042411875494542983607477835205983860040564570381951639189496890072872777266788761540514070015506995812931815151509171440795188648609156627064684865385924870767540675053852821875329018946322260700032303902094994886724119816014422225877817551206287602826839297562740367648126364924904896657398868630676765137695598868282044618527530161495816297971553058436282081530762963414651085756850408244378004228445741563600968216663905014410095026217059739697409780012085859773663420645249217279794200261960294218940259459628895749375451404715646018117678320565386200096595213739984451395096630058042492115395665776653793560787608987902425033050150023538852292123665679567042904705141379141630525660450544494817991405907637680637091961233362424018062866286032591787632102737441014791587844420754086143794012184123835115852469620345297859412373497690965770061698021172834785334757596310091740947226551638856148994293695958613645841434467900770405533846801412385322398840355276291622909680793412133756892166612118512436775698741244429900099506417776752844569683964508297660134955342920116340741956203772941648659364145829532018173927215982663016873308923523237769289034927383477098139161837535444169321404372248581791730432398350447442735157350884889570651474252881297492736876185152129003263906978665462184987078810072247363786973555428276944725280702688881122128263655455892114436874864444268092015315664057346229002070103465418778021381040233366310551138116854896060610743060551990941543764706091941840236628996426365685895918941101199833059835005316999934553611457499961700851866436247246026931649434184778198949493349424464116403819750117723277762877821471505466650306357195929946054020960651838834251258603430249738492870021287890442600809361287525543541885389146589187750594014036775494139132898814597050034440339399621507328383508370226738164100489585308256235460517764815914583273787450994568273237503290784153248025748450934942767669120127614492179332989513464860501109471387372199110173447660583665095191643588368102299135792214468383731279093642167878382345649952838160699532749531266464069132081279510484851429605496297178618178802939107025161809861841772797038732605019055588827468531224018920289357189474236517371712436400929676895962805183647856956523604639507595065335482203766419431589839902167475755345069173573316636325060481220867558029461070058002888775617800050601466307719397048876984053322075416606255479359841233418468266169215726020217322032167546115704785835388377710975691773709500347339383540712796608762514776034071454908337943174988778799334417442701668701739386941205112795042819369910571989401312531602566438736119384995029884824753218690681435529593270355741044528760039073466828784426507829551342736622806400956908563443019813361974059513604048850129712992891279715665824055649234237723869036127654038762104872316812533926048763553115263941953820395649873656710807918823721993715463610581846526773552981815977642425376728778657120141098683441964692688576574169793347816302523953612919596368356564109936364819575202810589047441159697899302518784825546156394793347342378532974996987796948670661805083451548998614931421314978427795638669975928789379287115547855662882163236999844509827031188987289685968021892775520797887661350942811494735927826119406217081460828452934687059082083741453944979517218962137962318675752971150205768348129582262412554283556373958137618118132719408801839491399061744475924368712814563091350318255200692356060421778808957388311870649806267488919348770178874764981091177610766366407857618785060135844090873572826845867901306183946497201458043990664790131716007900839350404518220030744432211323078631769841610017754227966590121453056608562959100007087515615784520041286426217491724926568944906158803355779537688050608436310379147777317127204808798211086819513950907530128080901784603842597224858369040410937707552983943781665131351644478947462242256976663630923018695199119541339827033531938828059869307754237070848891648963381524476406137298379170711999934735954397990451195823784195923204086948274610295777749732190319859602441089781593785249583312994060616102045323366763677808132140335485880542597759488798646863268937419947715451362372100449718273321590667162540147526961254984874417775568911811827449196516468090362295385735311954278819519680297435416362611885892359734777029087229177019415513968448140116490278227212774357088972975319970905420511163871468405924769795071155988242059040553372768174235135343653170555268733623316212597380353871995048656047162135526191798712720680150242080792535602248981880693397713741009616511485023807875526189102831337985482624210051723466140427276780682275014221955557536396874585768839010308680068676402171698582743701344127793115981516948477942643021053365465905298704631771490928201759864263181004481475004168871503714031886548907505642917248032780311078849079071770268202718713379699220266211727539252154552543045088587173690975780905159327263022962731459340465762864829208730077144183719326813059817715437657655724217823741763655534752233362914266768561638694319212385175409745128068601853271417187233217151299108852260430182906715171335396830471540000338354247206573018823651239362106979916443310122387240105916163541475269197428117032165931401798699572568818345147736686820355798620034379785692197952358099230244561243863563080757945279650620376945084184696660201445183443064672303904675077574205750145195941304764363744168301210835509218697009026468143340978106523118043141391104065072178885504810603866756644023634269068301820217030198821446863275648839503092658131612027613533013884343456392653273850958167924868756600020546043962595214527027651367134175672401983062894131971488694481998910430617402899748154242300778048781805934196001623330469845287876120370131643957727765257370003712993490533331844390394847705669191564857299786144349734105177376150523565106381288205978902248333164427099226260176820400244447146204996795879996141193714929996400150420943752610160451730841720297504366608069049376351313234154509607228877780535916183745580076146592898712024284969630136774100726052887623875949662988386339111241127200336267880634673601416724166203888123246877388536111025788135927459051614774094294936863301782707700502820500346455313524231566144393160436983703417261037094761386280010875642603190576225557844578664476354547455995725732308942601893782693502420908858859115798365147948634615229359751126139569494883492473189561725734105795567803714538976360347458137153144808678075243042984250288708162684325294663664489845776509117675795053664094456970551715090755148942510808915515806298231523700676906428586740373607918636239187439409274697466468313406808550848347577859528046513551254026649671058880504503129484295502997987084056325550953785341324672150200833921183012761661282527387259605066746622527462717670277534175848556185048968778320353356433056530911709032278504724216125124684358278491312332208514143097816720661570875418949091952860382464472394544391400906173234632145123743146267833420480791646723840898773138800955166976473401589479172469423104994518263512197919848469987245548289926672084015243387555710797743447374144349107865303380669568162249988634543959107366216440391035195753718598942634262044315850571436470733791351737725142353765001508437069704710447186720005795530966429977434202270374609156003676395268668008643556908357747324000069955895406104282732406689630632521514537454655909997358068998891353708563724071096931393765541824572510194460470237064005083003588724566280182101728522811835877599080054733649266100029928298915007479491728524545810920985453406041934368466102104370896563222767562801227135723940105207509733109568018721279170048835229489551315662637757505535395713756224334225341137953894101298831025593710761367141186863676043226969736412318896672355961974584035318187974757253038746492843245626344229363228937688746154110840312536759701801056410858457577841847326272769402353997150369932048867310600322107517353123558089884224494831871258724695762168756018057245477998841283427058932054209120869104433955459385615049293176050664259779572985022881212630164547657595441924662878342354802947677004889254983346315379799750040539363335375298232237950454545738106513424568165778877392650680253341930470632242957841427630747650710979586872557292634696057108551730970666637358558199878114878547707506351545000159415685331590275709643477786260588523650034328452589547807704082552811098341183351623077892695777157989015658743142565247591476549021283661115831980178766716015125686131090875166509664098704184509577931768708712566947882036706467428890037178767871601359214053632677885948542185525287671654437908070920059318404641193917361358070805647394602206541435034018003558495851344041404122751634756949765840567382478360935843641909860190492281444026482031128946651035185041713654831512320217086191147085264647958035105765114416920416858745793166998378061857566727134449101720152745879771150071640310997391627610347056657460521502974515869245247045338197297246760546724777349176013390154670825417874692289765758857976181195983785933275165503621993487356418487553140410081453019618744879547830627957897868943653853568856198824736827412475278014724437891986470601030172490042525210556516975043343251209238700090241159057262115895091897920757596645713313573938607258905355740669684858020008539339823145052425053726683323325206336598011434345023384762950002426476231707979329993000354770729881402989650011566208591316128433368729584124109904055438714189218126037949784844411877146349062897362928801347888692099436190338612662490807407729677907426309623235726499791797906620101661675467694145768605129655258221414870633778338650009214203790671246610508148535085164918542803455236596060355720432012675110177837172255554152446310207158623308877433187183246950172491989939032800230463569054285796004447205697748151961994569834453897448985847511406605719654387637308697400809291320241025282036180437623338034391261245671910563806982076226183745938032498342675317029503999110383974781626954088424587411162348757859041363255665356380475518827439515691251397153098406154802981977072709192845000691243516487921703696857125501965048803086765519357188261458860148701421462958867329562944955631886613635327312095808772703251591786744762454385872182278796428983717147710548573143371753484421147221261993769217557206486874064670113369412116554387516661352169082389383483018831821643981336682006169693617746201537373397781156067805978645413897962603610705830713179889364831359747802451725599439772766523930750616504186690024688815957520209855306695585316500078584935233157813239307883891924889156535438963456912468173232783287749045058467136738872102706167526762401161585571925339956119617452212147124781743913729475313242157463444764311936785354034073407409361480166573085163836802013671845810186707083511083897219646195876708107746343484716129590205926864542493394520425747690083728480528632543822713394174456367919551262036293708342634360817286313856484160817473411139734225562265565213717522807956757798705333289885533559456621702799574393690212792836882829943828610900779400951065285088069079777271824773436223634701829554535325768858290976525708617739368678171519075205487260344684813524939452321728292434534039431614943827174655276217770112730139059752104772779308808797152593105151955398111146601566546098593409995556409151994755247721081337786782413760549401835199746171168993368247404356816560353620302212638644125414292733840636945084935194715671261258753268096995432350036233374947796854532597369801493073652110174351802965199804294762976513315941256013797207638229329543455985696180289028421114418419372799125452845085251247624622728184579167415575260137747672740709839100052495748301207764117115772503424020737847969574500435040891957758067727315260154908997152996627821900816738352355811437713396344341463700992674401552699461544435033235344381177598906260875851004458129436888018812904650060698175084181124665324033765652713754472277482376442660889143215506489001534882197525984480683395190443136394267244944798692517084086745305240210125822888938263075311057841577103736038240310013037741639733345696299564928716357603720370374620513569798417152712920242811645481136192344510773868617052539783250211734692622557611230568456330996994507480605929781245399069126038773866453076584002149108175015059015055052213321174503327800660010544385866800246609442780827628509899081820970184924057676548960501809675847396272224901469219923296923467133607266561081331106783851783878241279027389639155687301318141487762896615520043841049130450553920797956899413871466091874323033989381299219897884289547514312809118877685317400336178945693316362993774839963145498561725868570130312942919867069355829733361680298104709644184192379319751173337630666020747456906583928481980956891139345091612115502161614196819503837923941437165949144971707103625358660021992721041823841610951342817163507907657799960799533520085418252504064071988978826456815054656658642635574295770439666149814243671324602943569959736117566935144593005075313341256015455724410271412794026364052651817903477319296275259048939601747624382812482766544075413429791096267406660379933163460433422902738837761745400336916070367832360601661100375099967788885241642040544894381387025445757634792615764174370985079788529696650459338320291929959138579133724671309705940852147433804543754561698454919958679332360627247043199842874951872070104624096908081459278753319932779427425406138900976212530520624097195086825486403900713942431708113003797565480243395566873833918592049862657128161561629521826457567921902187298152107742692219262375909207847375057609711591909465144195884004523652536390595671203095455177609777836040995265115666094518304603504988097031221561943384467462309962597618973326000954913863587982425932323093368265237173731788760256654798654169531108918311690274289845001026416362512528506983334729452609374282633527614495131371103328283948855126707746502023264896984852715949382325538025638008296794675850818328499425177014305384030408600131971704390092407025632352696583068857177717125037309630436530280525889961191345650463291970688126220200249634866398009303173650094465033939848093793571700530230202767861849889314976293909662438713197133874287751170511345954097335379142651367478246472639899528538551465820606314216401663313049013707918825000026123889258811155190052725805858900136497449735954846363473169844904123984583850335955902237788211377445308289579908330662520519016447171562312175622550053643654350928197579461642797427894535199226607074763212493308779200210197717111891101743451927214008155128722067840000812473772875459913221386261136382647235265167155914231503446783353258810526690985069536866787638882214674105118490397503364644990686185279076049571452039639478976976758947452926915419587568620095630253745064092230270993407244922526440613389729092781350240251277356623165146258414742618500815744681136676357224720234909886412198863142232361604429136028954915178460206604486447284367644267480248960218699666825833724020609830559094332414196938043767715412952029634370257320885164393793791517458419261006744126424076370982625130295318523121998788244210804570849752128948696503999460355247727610484997623664412105869717007639255980633392552827995774319757613393931783791245173925233331822123733733213746332736552380083833024791391443842114981102925821472811047624846380083802068281801260438885495500197853601880018797603367006924251909210720139177872008467261950517641624961759258210471555034235243764748882533114942610336188027913300950772890279736157830805375055265155073671643329626288637321903103529600553746358144836613215996013829644192988999766909601822833594444609858250086302488296916395402212535512733151826617933406506378875721696897072768551822496180996324859965240602563671928955627891328374882631477493753611096192786286740583342242998459800488319890554221644566483568669957846883250241111287209615275387016456590974073338588753614850014843303410029883051725432485088320897446887040381539273807726123962427839653268650733257572377249276850298476771475720628601811880017367805080241972340928852295663533118715775294799455168035450044723507261572236236081760413544447396427989263793426256096467870168552678158638293393595748948098970290186678800733712331484622502016490867995026656421086785979787517757614916801877726322269512443985126513117597185902908013161074347829901412511441790918150082652483159807481462124497002395669989923541271644479868723550419942029299074272501170351288060961615761707053230665235401859301656707910867287061451279194842958108421784734517250474599438288765426032786362327287595662764403944188761097203416976499166023353517954507389603443566830737801331675278409347422099705702031621224782805480274903816659628382543176916945293082816311294450641931943240932100174146776684974195215534300878020139359240911491104916238514202638703433493115382784451519291472396524509251738392428832828034268016977937360052432226217879099673071045093258994643594139318456307938392751418897819299187002267128692969611183467465868967819738075579296401902002644863420101841111059481697943372128650189416626883971160115318716548286817309355042967052858251702833200763303066564319527124472701211596157350659845082563104840043154363361141611988186856960843836492771858559923652430885711649895926633080789042511631258901338596260150604148900432612506149630772242833725920909527825444558200933808934567514719596498168098783136015782214851744095543860395410337506609166271424619705192292988204947836150312502620668763926968242919436783877897131628701557246762867660407779239861658938639005624468706691583538561493651209090507341408770870848635224439189216751653262083593574158841994344754941971579967923559735969621943890322032072079237502899881051839006995140479737639171119919294082983855833036409532706887675928927298765312564330564153304848064726224456480278548858708628574218057011341950479411852319769229948351128576621893860352796088089739587612488621847403496193087402598723686359623218823361720996933181030456963507066904991486078189299812005767520744221199145699750008198445232878014152078353239788951058406786462576027300039277018501541330711493739386680063000600578568632841246304375637465602012654069763479084882602864152158853619155075904835808931744235319364161309777618803309416758740616745043566210919310662217058302027026392027900173646714479584344043102481933602954080798827312499958405159565388275999091586093221030554502273241803263304958674601221158942654355793870782285902971231645566196949581489165529845663439711659852424360374813585411245329545698597754514710106854358155325044830018423879205755459973226246516370209322083006543456485749653160592582694612498540425129472579944433321104464074060205530307615678115693089214885901789013154889101152693791980147881028543352328941438433241275642221359438451385562106668415106548300059514106674677793656085451193879211123300953981906918446951138303834311980594105152171539575278206478438386186378396740877721284593978342523277561124317750306466034931532622244818879199773445251269361327606279135706156044487191203949982490384725592135651576251865788170739138023476586642717748403810133317740138745343272839484253125306198126159659139585716712093414238121145734752968441535105386660519300721339961555095540324678118885655708096362279796881246804933417456275174133901043762694052160376773777130009218215349792780693726438732515023310976710781547014868047177457503468870877338934993090014107772222275253813826182864061921658302267887790971918973288244198494123232689346709986159505235307283160434815973638599097342470999831464243050953450909695018385426230104108702271960708946470520395094158556687933064403409129222994367980923881104024697589135563813041663556977021872885088166894909752113291481916829900384062485586804636239717535479649848767303084521039840053535691782829172043550003983579459115195271273771978764917613312721561516193648699406322552450448181817359601485868961058941952582994226461331262915214611201291870795189279551298964916152626078646220054903382374312928789174069788781520053543503582832516946349811537232864286283587697272519950740095357593415422190920394968824516746739348577564095618172696216820703138198233500093143304586112345771017071824496984360392484068663537024813124806291969834294424288242368571748540498352957798442696396002346899998226122455862461536908476989474369847823166136777096012590649794959709491616123865074492825974100410023420676802952735429025583870002773623983956639374177572309167232222175352247527022571382382325211673320263929286218867725199737582002746192049624511992248707587763643220307117846466864833796641112575173234783997775772854366892957106421339915884468152234234155546696758641764005606073399063656308519571973931100739830534459560256226473100149704569555082367790426764235700803138891552195557792894786419270012543583513379469206703223146072130399107949836106325861985023086105766001761537044574365611064844227448258284628807403677851648527268994920411195758522618098080973653264016040938733844534729625082446433980522501407212691989859823887798701315022546771488715809789288285589989795979782306872783071895041733941468669401912471366531368708233719718238652868362597392399005511294701659711253351243432592444296224074760634511179112638797443170315912251269937399573944579953513181175149989046371796602918031831672121451168238446517874406539533940736261096719492489236743560835492031879223171779292697169905905910946882460961912563996523112602746952653676921367516893572153565139004911688898831424254872126846169100125446562945756576649704031052911895166498721884900378390507001073584079584634940208820879125748772965518269583999243743387628726972291757084348682468203144986075496058363929858268487434873372215605385992161547477074778755854160296559213698045535239367274182368006945809306534246687651765239398929992873090081659235731155347357138176806102467568461852679620923552709249231274308689908442482955895076946468438088877442863980978314760503291980721109145265585976209930495946682114511041871989196223086666054509555407959383198297651347042946244974383974090517143516654241577766890662939310538793525587397168821585429293933487442913361898239739084311475900540044420905535168728343324073412411518812032763574749019919533895373256039899826808590334748696216156891519394178112916311041435143987264400374131580418723051542866047798856966120943339092608849017065519859784780189901259329034080656519190272187127783948479468177955709382389810204600997563840102161761668856375352543708592601267802126687390076227549828336941505748262569507463508681319374671147493975308931106832990420792925539162155645874533619262483747907868984513049258054397130386131330423762621764100281615433477112845618868981925446498885191311382960584810050463947926185203428153262926375370115786373670097454205921247686523641258395982182105759757005070046037245187752490589906959035837544507109796060376321087935217025718054852318895482936309039508389100999181126347819525309780090252358857365084381632643750916402939040385948318912027523612106688891943125517699897570254557500307862811063790056186333938053236508748279031033162664234660862968222580304713047845764104361169427693925219688184888981429834683136462069262378033175646386424003071109036929460979624264075653333042340052059256855363151756756697932838769898916137151303876785765256550992916820458893212561281446493724066566585703435311588673396350496984591132216771491731596792362955916975316259033294667732173905620925045776688234851598999912975497140963180220827133567860140886801355011490596061464995152233607547316269270515926140534471493627848331454999732688727327627616797306757317047674985471239159922189033304386730391945704868062567795760879534523059244600496757891162063910962978442116521375423129070806357400852674347399378397123838820814528906403338527932092300181920216915731965416239924334333367773183136787895006696493359799416358673431320856535221062832138243502925202041792047932628003465794463852995358319911625348202858670629872165341394162049284653917147332655140611057053026061450071971287906608523634206050587722076365816950186529723520759681220608879233003139011219163039179574322324291647022691217806775047217357104504840898947976933707682046283048958235699804798988414578228419860390912130562442606847089510918359610399624205650311255076084737219240744866313258780720718187457287479267771882350110140865388033317102015794189616784219354057597424859319959628912994549660227258771653377937347823429731207844168116666874650903732802521520466483588928766557530058590326748029634816908916561247401401388209040271074678666851334630336846731491301551434210063867526218545420336267748796314253500770872989571682725496648448004165928481908195840163120750135501034004051038809403528866285341969329909045231571317982450876633667796180992417146453247261296058890391674274586198337002363061434431589728487138037553725668962228780244159588893279123087019951848083043135067210696060446478030851102259212087116350897840283577602411413152709396845542089506787122078571790431735663725760670320281779574892983145271459365657622613093186806069402173607626851406814566681629390650864202630532389637214145102798127081744584696592643828918045647426001924017909748042519408781906321371848812416221949259317957619753963692638815293919385873489021229063186944622293354852789508106483397813920322100523528185284620544845775259309442294728760668464899488618705191653498454856292206044289174993719999211551495063072396059153705509888364491971055237215425787079585860855453457702164435538756806706586419651574264287013122170168836925031111305612999738230130317795799455671758798837899425134098819471035646653419168388827365775930223002893678122990614404995987562684465060306534604804851172807332591998044761213167587720573834423525004339230239669764097277751609892963849330762251689253484740114161604258518870161942342457046496392736158100247152979757262645821989359653221342502940170987466956598466020799778743000033457265512739731253189023505088384187310744283711513357749983978298450290396903220509679127203345970565453749905910144836277720333091981879309949569169680641244101122130352746152446742321011001788125977506069948962157074330837762222743922588134055630589712904289961765611818156182004540852417695771746986714548868907888315906338254146997362656586453635248531669662204417347547896518044958911882412379085468078916367347826227157655796952518444725873852969606578619353031222071573395521253981206616126666319980040107786726178597312616061944337254451645544482536373038962096143454503354972260737871764866642626930245835422126081335813282253292499168003883371087904413136256094662017552829832230461824454787222466383293421015626059488118362559507436530283202950470493051007171924948416180593637308864698630455939206589648313189456725834770114294325677662480960078362446034445191601311279364238529542128020209988453805349747253105970624866673398038463789807520847319875100029343193211721776135914501769668589689048170445097866406411230836684755724011786955829525810682180288914484294577324206880982970306813774456980263997919236968160968826180286328124738062447115742710772608010226424265104110761850729772581633953281697067155794069314390747468947377678356635219219948180066158976524449930253908202894920335786692423060708438802926908497474499899560134533506212894621639589039647158095977904977407574681933713174529520157407411026049128419426989448476613908357167319305829644509240223100052937001805438911424112499120927056647134599967458098212434600356817769500556326867214279421960544874882493940749443309018303999943543940656244733238020085135577641462277891985407899594695609978526306308344170981268147115278639289706125766815374957353060238009300183185612683668152521884627568634398413413043913345066082246709827203025934459700416408121253325479902500910648859824943181301787641116981573018147533050747854191674194450506649191530091533704836676711568694547013704353831819513716868407070496746650163793504033833280742549505613906946554820771993633411772215105561382477464447887997149041895685348950797732061905816935104291977175624209930252548638553354152278016216909953995473665356291694905194467126745607203835433098407729819916998934717868399677408937574622715151776070798013793731979053367698434538550031261273135101817537495844394575057117826389491877041686700381645339450827821813453775346313076705767948720023448011066625724956811476001030632736453170763174876617628134178760379551789817369530261659974573813578431863772707110184441446950566414584586691172858985147732534597896285667577740857535223375515695112597495337354026221077904111613149161310287722606830134329253997240076689530744447840686223378290434338187987910637221542032568407580327032943178958884772430009019801418089426215945794066346140977318674758594104647402797401963224025590694451824056626967269622016762618240152398023681954055480598950272440436020383950577883040314250705393032150368230495951765414000994716053973505857357050084949807025660686215046388812838672165340196947275638825601591535881091901071369588301427422484789560554927891206163232026630850270264621076053683600428323587714162491814691089021809217020284601952735881531656264531007043481046631041579430679627792038856857901275467960354754051070199488076664036277340598638941168397960739781281035310542897742683579366072947960235925764628451790873714869311177016978711301627999116541134397198657179293911537666692199859405702088043672475702352229007347138685696666458090507678368288046086019895191813830683169251234723159075068442410165099960054505079744801677308332789405242266381994938398782283377405110547263340872677384299083639596423775361828739877146189487086887110577571303477735089954925812206960853962069141782933714165764975978023679510160876113655918796310305624405554464990334062928059013906831045297426100469821990174206228128174617418179297210893943024841552958694227045779025272800865818247357219872825720934092285262266664116134928294631119269531548796377390372827014514010414582595365007922084394950575018716970420497140916203853177628590723871789870831904254628121704116043077561871863958894922453762783740014813320298717599684700863334349178835611465088617993327219811932419566282221108024663925907472512413937295654568166391818971130338591188969269719875470191332351181380129405245260362565370023817242925320153957525739888530905359540901015671336193932142608411926842038832508993459130576118881086986215641270068734007565436463521324285100982132606184036663582008452444574294930133827673765181392847655381137946425287922914466657311884689059754127131629022791797884715524764924242313237805189532900631181462251827548435804667773787631870627180427303956488990985191928082056277711524410354035286421465161214599726240249477018690613207792295242594014889176705165644997063293650829647839881509541536501602333315991618556650477395881722929445491106063813879505469402277638212686018860147659927327117218935098588748746193152741153429122896027047079862600429691529826784062437299651080446831618236948289067498317032672117646427986820901712100631369854906987756983459371925346578714219557752834200251269911684340774434274186176592690020653354829189063995339075898146322275592423250320174592543977492034542110507289037151391650742909105827301552025606399778583681929162009398937246697172995650653822686784485950776446389036123081712455802378497921664158433184648612371615436974192610283141081535483183573883087835268705824771114959247667129893060313029692518856175064493589314000452372778828334467084617352138383683418574774004506201741375713664413941830048301675759793556430697598645534701554667243841866840239006517458425395274239518788396884200826982814476165531507312686884566758339517807570534786044339220967727632064648872117835045635458953253887194741505727539757589942738765919470213069961918816985826984375529967365280800876652619237592559462123136995611429972386397695843790551234975235012691914355847949085779785506367709974250009523445180101650169031260554452271134103480850804892910818167573064511674344564119999536140903439169935181643846552049789533659747353015500125592346444956741429540351114650788723279658366739898196485303814477165831558038455551021803113639054978170803118278519781379418386677781382091619858137814345831989684340521331201651641869860287473113098380157764538763805233117387632549981137680445762695676789812844279627668776467120318502367030393793772310830993613884665768238390199435451116736291694432084405244253127016443901370386412336615998821912794543055229044524192008565358186018027490991863174534671264176825998254862022071188686497010910676749840843208632656076096908271230736069306903806099019208667282633793355573185917670606750295896250260440796182547345197770931422405151617485428035899447734218695224604321296614400520369140346699916893533736523568477494332809194092998831372339717229487139766273925033665616199860793127773684356858812942779636149744933469268434483805435763922709361476514162462334305553111196767707708247468736627192543824334544923363596840482371214463321729888565710020140313482395161004763344049361830741199813151996847288059752489578719919675033684380675710964116771059298152983044623389035347725847092783138169158726255220692914439354041089230658542403991707337691487373958248459064296505497443072338516866260445802648126157153507557280454318212632243309666634905718000665133004404048235676152253387266997269849485839399304883168679825327984972587061258001432902116000850458444439591934012874399225390176100306860898777834127929235218333390718554380034955151997015183122367284688508027507751246121715454319354851298711691753082063853084560981094208429509785644501091174525010625972429000097892533220505657611671914750985601591918481659311406527530732896188830951617405626463640309087194004359641804683721220624970229189728837753657847397460140931099948469557372582438553972030846251067634883801045297374829602036020844256849390116109583845274614526250093170663545523349637742285938031942025657946583941122500437912921023601121407304502963941980957222664151170657936528698102695223568856063185466480635631212215336032666297893160614508599097839843517056030019781611913466009574710252745548261205498033483044774944721812595950805339446199868276946744075208723833903990992688666628763045326593500930855296681948247900264812593584901949366864826119665929449166631501784740845074460886946504586385369361133808210460953902989546736128937179737060440565865477663681484594529764065742409191749396180384768923734277989134180127501208184835684420438450588819702963088903974626063463271475149316135822294762581270343332388496367213340691602998465860965926442527043090422457023161345363640587705938706479732937782740881095888247188782375845783457740202975840437579172363939662316519084668974560178502771936416820867968255977355344059421232762153372538399557216647161892295530516329003506842033963473262569066822340886854565383030217502470040054909841055315437884290498977940233609012832062966492775739066670524469395506961810315483044614374311161888811392795988605638580689771191586864955583935801441380560735768491267170900249121584210201181179716057921095816257287683728374576814881601051656587948126079228635430037914851522416492933043785114905962941673808109881707757877714206524130160503127896958538697240303920754177718244387227346328511550861903506508395794086716991065343144872804943814609761648020701432474471866605554484130293006176179790244772118254837809383604261041505431790877411010645092857310338083656950289390424679063309331706735794523743404036709946213972869547463751852824330153634501853263797073955699120926336877776272571093625262067709835058260008277350453723481006918871355005164381472165722421009131285376236330647863245747520841474144249588091042886531159372653752768600861369848474941572007007499808209008894745793648729576612791963762572330808628927900851040133166084464256852196402950653668342326360844162156086394357892523508146900162345009828711737810717795240250840461333721203148638733350052763744123604954915735635338935165731656984201026593219635160432602471879581508427576841827285262014013312111804491828473782592059474947857910198837854466586045149166761557081374995006365764858759758840607999669186116940355823166364899258773394105533536727371870370147470062152200360960593839227646292330025918428264583213207171644612630502735820928938425533399092650403026438503208913952816354007225591779585823791827076559430820893686921025318843804098557507876359542646995162736014192750088047566385277610951355006135040956655425863428075784929171373870133915219448672332672220353936268207568222073112079019773291663907747316148269804668542778377569507193301995031567744721002161064580546332132168253483507410162553348710120680801737845136215156801963339391189430114007628602842799450587931647184642029717324161099530159625844241089212864286154239827521588632779113577660277487265675565158818484143532909246684593923083112087795757556000882638726400021946251953414621650848105227356144081274380777697863126655501513285581467265791287251940411664766942187129318092589062072761492181838814215233012663241889393695897030154969333673079484558583238845584481469937190738868279049037251995784588655420010577260971277287808057957220605289720623925188464718037556086470828993436661800171129997848826316770069038929732208911741212623622969409185508621165919714849555264623225917273890543814072775213384687907726804362698164094250482448758293299934439819889214737844305675333069823063510857364814902978972804686547877891977363714800552439178649269923261544414240965258801633049506779506512479950333490333189757453549626130499046315431912254571638330676929071272405112756481304248840061100232683839525275017119494164363945497935178099456245952740729402107643549476384196477263556485690176038604905950187809773400802366888844564009929645579995766341760753054089282327271522228853428687399017735154345920839048338502246468081166038021956711591828214127191976858802512212776976266411577420740011889075128624173808237284300685549466672510408279635817114949316345607534374374939166781065963992305914346981155214670013798695291219075020980277480790712426707108637949097114394249990632940229226040364723505971939237319914109785000884471938623181021333322146237570778207690518233524541541510302563311257032873949237783379823597519677526678999802583899619182726143087731127444144421543706707831787004839653815202745394815611583328429509749189043552438312729033276322732689977897701164866106328847133155182010759235294574874025109882727226022053212426568179546200271129052551527097845600152394168912848280036320307804962586820962400661270974583407384290377487549356634411895085417428653888904637025587935347557606139302064477139424198121463685709314652922196612895041510339261768008173767112990939111472936691420071097178997756831347243117976125834094335405643964497109153399952244815773850757199562420503040621520580242385026895853418276238106711753424483977157804607297554240206207937585947951981910427894678202982324886681327998812963251856782533137120501722782077386121458419307846935175425776311235512743680490930856871694449476323045966587336542968502790462480806844398189562996749379166101154912712227112582294150574911718703847249806674745146396839079648226206287290202832366317442716006697433515623653880031874145605523548927651210530999669890757954511158742459024092955523011022330239200468874658703186976201411696037218738989289564997671216993898791455622185351640364458809177845127504048633224998447807477640649654330910663152343827972009846613153887832466221044399893052100873594509489603675282629807265739088554859392757450466157928124811449277449333301540421203132080197508878869049484235876052000896501172961248528277281852169699995832660367814391081720691617669610951872367963878215281593770432993929180953317359578134249537482558842413760744763011867471412969370840275554751202683595254034611816049745054576776975101483247546664028983309399160970148948820616577762322617859754825891785483903525067282619465280036137944101280426782287712770317243377104714463617372698061943464628039479444691466692662419719475591964042408134923720606595059895059933768253548693378476590486735641078917543554386900444472532132954865581242397255246571302366270401824807585399226917721657700688122207638540595158678667895447277946126922666118306594902877327636647527393857675254611968484053814904485310854060866197104516889157108522239500774904772194673137640288333894797534548249147896034119111905107327129706721040516377885430398433119286361018056913749878464007455336735461872183476158376531589431247089725058086776605930704117442320051465889660396275693716907740874345492760180531756546685432391835364705623203996252302442918697866354051683647169347274314876338474273583169472338672190300580395515720902554117834311357561450420943790945124170380126930802919261464184897285825564389794043276736852725845908080005767958574037449303826496676587437304500650734274045117842369655345748861749161193132290916219180680901329882317153233345507065647656006256948068896424882100749394080378943756300097487509095008061263637337386764993548892206153835864088019825290496553824283271240182807251718364576187145106743152348201290793521920735229261421253617371854974185291040570920068309439852874475276713456956821319556681221775961411281643285163880418071957991507850489616530172914613308588428028365138056725147793010825713108294349092684890508990776208481434345998843860380239573342224687306991109133752653783517980670649931435001131678066704358180103043988169909395416689331234422377600671663065588427360168456165905010139546729445128739159989187965396981729430118923603139766253794462377274627633097196387427185522787927417850695090068096681949059192091828286389773004043651945139847467643303248406539474171037368404049030083753541964930390028020439323216415539780593372650160893104071379023597672832623996150280397940185887598897488016414250911374208358640216997541936169498252290848027511474540304024895944271806466657769952400243422691902766742556636950811871427915023868566727359229744496155175359693958320179332595808628316665161954121605106356385296535015160309951825993050519770704221778974159817950170398228711499139282928986287575155604357555954454597321929479695026124178487466802392952817992212585082797765743423657191242533952402779118890254643651751369853463449603673837775297864721291280032133166765329302308058994920673828460660151667459408789415930706985108049273390021573884533492437617135790502746770162597854410124654504399990927805635385242689727334863491519052864417330901503973918528095667022220444862415417677040879400776791342377361998683931990240270301844701906825819551063813418127711225499392344113978557831901949700405146071712783467828105881318124780896988673470008345621493961393223896276575152696337056697526477289004147237998495957407554956109206871082326935783670447194868879288502933723571254102402552492385046134293030101041291211348073131358179913897636485867611392961826316095656150740714076701071574238282156544904688360244562544483557918020316442424950492567530097455833049923338509396153241536567663027717538304511496048960699655423330024884400148729640072752853414317579404481642035181405808409270346096976623170400573433399788681682484236902823433318162296433371837996796792827832377054034726238851110093911425940470891343858369395530283227048188427689564167184114085753728171822445648503693606767813861359163825946776544499155638631463659788763156957521595807658448367938899663995742898719631659502954930479837379338550784805533676796132578092352379067764292486503657613421277340396552656193171260353480774065787106164654462002583491006966796976064682476468690114778026490521948158821746912175010222366826290104527383003142015288208935903445270265119615552685348277281960664615405702696367524490351034800760602666841149790100736198419590580447576770326607913833431535222026963402992261931568226460949915358689718805519273932534556779493553544643176268088933583362915332026806905240008194498307524284868973564159106411167320525265988230205814699315230420599946000707841084134075835730032594854873016724591137716644661821034951585054186693816452056449748904946897121685279610889010462538882045385610767667832938193290470611299966848187881821321635646526496529112003650268061014437746715003738611216728762823268248406569453727330901128143998095742457673641578747865486521898151952495134780255724309242777117361384108150003150572458052078757426511729467094632378804154057639580884346896694455033798587141135143342596162190906296592825175180881783691786504218849330443777554468533941016711163839634807680025994249009517730675541253301292603875106719479062509610429579280074885946173769620832064514152405770618120182585305221897248754149173179219609373426112883590751247526370019966590746411936900007043298479957698900243870020599953404573294562851318298316010696053912092996580163893841537953747200285446571247937565467967566357148000284465083034798706739863708696426673326292436573979163860740399419214247114358770574055234019602793878541349875216510393276712382479691697059451464620296133982471076064617802994227936029152039308088427051109139746492559735658041410963521036309398313461547224235706425756229760587727177297279238142973619910758700908074611174083103301475509103371702043689805512440382464901634991563851023120457928694833876176062371387009136994122963095267180553352816999652654582084744519364007042276543918179891156969745395080335387599292601934786142959926028890309625909859623796466101850554170897297838421243538037815666646356351538899977912578158004310483903498724192039952832574163168202268928883718340315724638817951819234831342589753043938606017324603015031660827723142294062889383583197606594050402191946296065692523341393204095858327171696624884853076517347553605095257311095546636278999176591975432092267128404579787159418072264508162990791815115240042333298710734344898109664130020129221601572016344449734546263830062684184226574008804908967838920068384008589255406067012032759794624296774544424961168135696162247074957698775104880228674876116959959051685703817444340984882250282765906607138441532583629745783112123459448114318312272565064989705812111081383624907571833560432606765285936577583228267429493544144522041057280717402080870565870528176398430928994239633917429456401294076483967793685969924557335057467683931313318065368386232468453334690876501785844415584849587961876377688267648407476608003129058332374950482794931821627211897682146890299059996142212661623167496518949442431601178158599710532025918204269717240905156902209854461763587620737750539055577873131025931882694396033810469923528089939123413752652404871560073790860741727974383571151428503403468210886524425690605595698864602739412804419146975205023522556402256481978348458224511849019960785469846594244607767780289073712382251669561993363457045842381563463347811804804883918547611712823137995934564715876915017535530416937493984192334685905739863366411103444936939413982352819009552239587194522318400457387274198997723878612455966976252039137233052690262128313698016663763554389931887038634807162277357996162528475115765818230145839675263210797252430119332519650859856552862506414601587454355418456315170384942358728259028313180567732159800611742553963223071796164279623542642605401193457533371647553006938942811388814782041386604878417910155482377522321125169848268128240269293534558331378825837451692655406745648912312035386146195469089367950076915595701529515716128830198574464136914609402586235011640784692774051578127588239689955814789029497432289916937873338990595057781712406727758972267766151847657673037096333983554438269787740890712259366913073554657764925270745690661020284068669625470903560724701401051144511349842128160098532607814199156180302397604828321705941552035906486355949675407647281641857404876723686959901624421258098281989304626842192256048348524083270197617639440862001838884536811410640193508338713997286147260299183380866290684804218417100011269805666050581640358869377033413416004942578271389861253430058965512073120448351422311964042287598509894321506126521457322451940425217362505471461550536533550833595469968981370531546121414544488208296661976865686046213161625118861530304479561785703171305155565923545827168225747192005029502524573354427405448035718300560543274906729773173347651596727623452242284290069832316188726781406969241827078155990271980960747830155005322230569165495951496971789752956695938302392583458328351479497055386834275160301363421458633866909302038514968495020945746738589313567680046657989351440761654912385694599428398253504498454330760541560952183383556691699837382548796839043168373654166023941041267616397081319411010296770213521446715707516648412263690830316825832833798675849888788226542816514719228036470545846651233583629832138156588783079653505841630585432058977352080199357964098830487498746756613968929699902451106867856657172615670649970602862758474936458152067348055859165007390852869892678451996742104499526170678935991786168949934581468639741088746605288547275203198021078150194672705878221744064813697284876546659036546146815565659939142081868938053601422924737958498658421839622885749482334054654224471101790796036349649816289539213546532138246578163612078204059905499158600316632358422361471784338272363897956357461001426676147103799744699836631204903692466289952009899797131133809279078361628151063574957202873599052947015389642146294110906545099270670410106911628813565339712403777681539322532304576103198631828761850645686444286762250779749949566976847553003633811745783714800565010035426996114653548679492954822080069456266963532611588316253013145307481932381958028365649256489385428088448216890077685372295393160707735268548906160824867833625752756995028658119135867592363960290186121786633304242971729430199249037217809412408840552949148713303589502691608411870798477763258714489209134447160896506291344164074054102330068519874708353043066097652842454601799931515793603809943107996714645860374134455294638011099234117316415167505876979001817967045178101989344244040830964689707418987465115374272379822332690476044450975307947681597093849748242689511131191761538240688264651447101277157104397561369850411164623465952813020557555321318028520547627290437501317325145380690428325521914822288366540571050558084651770101678543460881129606468864810713328630740569915229641302465728488965175630585814206278202368771674637506197919078010481848587641490573304735622056855027242127461309907155576240107396522665507843913391619025508832034876135596528459585086807888041866831125547859163609953284752022377259517419985479831940670320427077470724107967566298868831458880073111247371866581320267149134181920398748013990870476982788915486727778445649377977358948372569691762451793971949449009337734123857866066988237584792181790123274357105897522787947561927503349592562984987947907938892865796206425636933143024581943439462943010071862963487109023966218713095913099893388103278692985273429394850098305670016700835010634912715816259697097768275972261052576202049840272230758957927981941252229061149982389594243750709538387043281890543130846995951835640681502467335065326946360310723270206953264799468167724768177380322592226900178473896065714352742371799787363365559101526735257627467594186553857561199837305219530579967388102472405964721359265860925775888707049597505005925533690754113332236818679695344781541423272351936913395887839653275643767639050749016272584809525522757713490206769168146289713074339253352227618753324241675575105538452555372755030491823280090330930295586007471274039422114285290338348112538225432352234401230846884451724450622354108892223141881612192044856345722700612609982428351966063119178235239681680197885173947965796547641622321985780450715572530548201571306760290142892773482611312649566219271942900452506973294876597468524579616468475606481351460881582366125827103327347508783913994116100831192563972343904469265386958872802524408333818237639987291361647373893216152605695073685784501297610063184605283650708787560201224491208322763458610417392524587887269866384486664107776265577065099607482981966664162145443000258916173029009211877750672669999767475016274829343968215706710847722358917668368099984237056499687383406167872617800024632042723993963313056250734829146840422874393493483767709158880060705173283424137021002882926936690116513139835150755128661780731828510170184085508530993566423669432610306661486585220902479298017504643362009354403992250659590480345161741276326209914711386593804922547838663143240637617391316757171371862838729774423421759817076092567368651268231521900689825343800716984111031598661483219137954394725111471048335559576184052572652188780196781899431874426071440680363770886377731426472430479578038604214560078321810263558087030094741953237962849075759801306278484427968515867413945122628771583817024836199943819491346262340325811067553348656088732213395938106522302026245317897964926998797146478819928812658151259467470830612076840336488919222863022144778735080237677979595230883063810710177300655515076709257279685510028176763358168734881518848113044802554402494082416563718256874855983367537913184643829005609134576635372664815495326227478320243611659521018791114873956479764488785025361614124162952001627896438441075241152352811020552431905631212579809815324322968323886964948219765756771761380612497890147519671048948062753273564498817288364709935943128791510786241479895019142767327271246941509772524685160826242559489930326538187308449574687046022702691919197016681912304739223358472608919190616134129363780108191284464260626955307175407734999885356954813861847008953785819025534281163012230379709843775479812511468841728148202592553494320594414196119906650292100045038851962434359252735086386631185651879460785075532876665626312631680991209159068921645424437413919046290910021624498086625971601319257007588080910840898786502178032982379130101010211028058412595750753219231228701528104374295963423816158223483115192883169838717631984637305863934524875072216472610759626703442516966775122375104369136555803594720290957299354891751928838472524157858094387433695672312904331517395627401892206160340224080622993984764262724525642177634036786253478614522834333028288243150848917075470977195776768272963991023015395554087091773628489873711359104305404188488893139172783155968628645942253179605174416986139068437006323637012065009932367517158210002829887012905726564371469810711735542821415395491836437620156473932000700378937584196796457300031192695644083146281404252693821650423160289066213072849184113423946610540405073691029807823886779064618542803803439962923757642280787780132081043986089300532525005263875269312693287832710510025813833297255609246668638788311577150438052527616501618437350132214895332739995905571341254508529968367946699294064678479015605939608580565690627679320340090226752061864335204627425526588074748265104033784614929247662544322304422497944040322884181195295540531195451712634129682703764088899596845793569070779408077257771202995566683884481733113931077141391082691093233436529098852279271558536168756376541367519421371586802906490791891972639610333159447801822832089669751431030711189896221408704494030899523310496329221289628657136346851430064382685410551459041604497542977477830477047999857253634926521208286913943583356781872202653833708471480360165934121919038019161953521577885430829826156945329066193652986246617820583300317835073592652170634385186582257972226557058470288858420565851750165393467037064007223050749905417530993966804699275947668984662600962603666987699656405452085983696698752019690154261393242231322388124832204313033049527882474164474928424020370061320284826197625871205859613726492519867163136204446497891837539462389795786607831631676317709092363369693849715659492426894141996955137192462423908354043546476012414287361634072328131978590015775723711707989592816307706904465063630547453320076461787202489308671668670915516610308963787038258758277580586273556615484823590676967695585222793840982666912345339427561771798255224474423066898487809346162757578701654889834765526991899207295235197437102084726007726111766100256920993237029336832742054824745088894260767273205848838273065207055704028726753342222189418763420722953752662107101922871930083664994865575725595348863324802906006319872402839235948502855272088030632604066146533715608140236568947882450954059076692855337967391078698446471219057874877892564116656242712056584195230180730993728751532701727042561642785913038033803598800308414466795450313544225996223958509054620643310860775626838348355880459596672860710043360306095650908764115036775102794860061107937060598490744084457525542839689891497915272998767861721950612437447467296928876162519082948964171991101169464912038768042610691523119093056814071581567761485364425548651920353314333279882718630817904804392842397066803941828397703122366690765517465060121556587298169327174921157018203008126424751261060016762999032845815831045952904148783582485157858924519661543162369019136401740153191623569698921309462901794754860257026108028017969952475830735761516189069218219816139373965266892716420952173878757541760029237499775471820303804160582178152997909535693966370425096612630813194248403410301474870272357679580578790945911626392329629783987469861744766455749565651759947003235838719849032227552719403280087914195485669431812199815734177272436760135228721601035280614306211608858750100820054384217003969837643081659346111435587731823715347848150075321972474113204860145713756077695309974248742760945010688392867406849058402713889163321870881318854020113350394968292082812178308684192043683085814536866258066101648885019305027460041983414116661549945510736114827327041795392281650941598186006142893123019551269820470777174184146650822051149126037284953299881330558095549182449685755595959599049071605920322136594872639093438877091757821963686163017793368815976747291874911873318369654277892689836686060513724366119655476157947553531213989319717441259492503490561379546713142906609472701138850909716324018075441517822346746697573925948348973074786160138034534130420620359129056964146163823888469967856701588205653399647092906846056859104629521694744933034808346998803944437365816720759130833737404680842280109038483936186156365614432647345976166592397643830495027726761397371121419235734250151694043033077078338917357354691871574925978420015798861975181278359860337449165013347356715741994187162234961320700538378466078363667748294242608743028982575541719885809756214590901701782084461804266877444586293380246778402935070065144484488542118223559726867520171933875442210729121601974402262877598821201321358686707488747285631396332800741325519760511311376511472228675908266268036290169402453316361286911008391441707346898901013596636441019354351670712041796565649573239811816017749282652150123985788165944444239527310827989738392130086168435109691896546304641922071511156272985648919323596668740966787618586886436133029179931141970503282258864757702213058055467509669717430802434978346804669052465141328169131084947553129254039117742582515181752736597792158837282676931142173311146192850618683912435134615286744647293560989773197254473811799675963382368270386858575891591771480832648887697663201517258529757046083373334177864010529490798353182845119933487944052624115103253608903429533769042447330520014348363286700393199576819764072536856602206123773019377335695630104661609136382878947349857285832263668610212790122022713881692907682158828363381902375280113992158980437783077375201026478973155230544663079959155852273112001351552913319874766606963708156672502750044453741610989241831847529945535717406478255342093294822842427225371111696991327198281334793721496036976780655097857916212588395881544583880015903549683165295289159731652772903132256019891001038467500542000679092284106765817170748126205782503368081424693362133130178785961840644898388241835495468610843143033029827287452974232214598379027862819158133289721669251970301933775524703532232575460913074645554897356394931939659304149588168147647816915801896364612344609130315938254622461167232781225191802551261042311546301309117839027402053578463174835843314488906142339607202630287434501235394711169808794224681883392172932230069311110823494278187048457029917213268947078884138046214947697408108280798441118902678122811277559080191673823877803775776876778215156297810960981704759954517255731196867830599649446107832490373320450626938481294472094186687283377180393635272148873535847421442227723347517642601644364486919918043294033340609602952400494240964077211702336159710926791638883283089746019690763430420312130008093921489368624616712095681752954850980026561913026160491053559295629177511919851619307852434935496281230471096549672264485393284053894560409319446248130587198808595495273056577050553840686630679717564052474588643404858017886795229866392775134214462965932411777564676941386053367714709580390954669307510479877430395517691907261627725855633776635664128943311096662245987405626996733189660840049195987975933323680231759268580236892204113793236546748188835415891349849076725840055340971835659268862281911902626203313010280187452490496010794630267020861345107366094407344947279125914870431754282332441335217574715055201246076863925710494274521567250694183553074543170572517458946701871205526764764511957679447718569996255951226678721861707548306382920947413823701619328412575305798942799073542879603947145956301067879387172858318432564719904918266990336241279413774336045172915532132459110308553427504771385005378567412759121831817991708284939719408683213697846784505047711418930533767240602183974111291831277939533459031717657217980742330086810319837866047601659087680041064364177462737430122605257131805839097871917809411202300940977035525711761764730253597459284181468538505452177055531138944152853312399481192150326208711207948641603977112062699200977375859227164383644129656717094559838518169314418672505499553597450913783061566916288773669733671209223435314906257971262813147457955610935322803527760064862305411344598575113321435847670739795611711530762704273877841877276802342748771262859593730635735579949938613481822635879191781863007278135677149454458164880977516087795451125654801888148997228804979788212037298903038984496751243682098399060167708373278514218951973155285949457511817768117095111171711794543563211882667569484657719896579070396568901513897137266394489471710505184366125044317937572316839369020357192278940081276437446295453285119193468625295164337125877748451076282871064530759477402728398557585525862975847203308520998335076494142964663505046729172064762440987682795526328150911953139592097551568009016168140307433733532436597884079014538156642434088182324208654122780945179992525650264443446913910623885228453427709580658062465206913755158450919115642711779279810299049349828656002989591284260417764254948954656603813606045028327973892755151872030450066678963708209457915266544107150395171235714115229043044766723318672680206595468245275350474092293286071637928276442136734936670661020100025533645803423413677271569404467856274447709367569587005325025390320586578433907651995628125229198208416824394111479300443914441842596340479462855716019589375954825938449616927237329436283476912298320729999019747664600521462668629709655183686326561234220652964349742588333536448985796379682688017137029964639197059998716971423528593121769879816280978539242987846443522127747927885443558844305187520300151288267609782364154743119415777390446415652028962154948073892232248746706014138377751396593778017496128573936174857081730059987045660656474255754978535421214777391563070573535903636538505811231364575463650265651810846304686901073347331486105696414772748080591945819891076779922813611455215265224323312994361744637697232173229997209855689892132637355684984329291702242279748393033410027584204727510911535657311174699446523199211864043454204569953173133821319761858185094479154196321149583372341125896057739523851887722475419390202143276264556145052534490966543512044370191818018412254062042684852760566474163425934447765136346814842662555828014873172198659805598793029000559002358203389835142039499498817922589171872883653703259855072087652471261530091689751813824640971838107318080509592109204887048481068467868571510019981762817150635218627539105695503785789520691453325398972474754186485227561578592668441547040923896352611207123616300612507297693098745587916314077185423700261249529365808210134552631445045487472149015200284336201895749021245051056792895189603850872544158928937601484785379517528000275719961669469015490834505312793010248258127942502274597093794595349113276802186452862242311475444365427967198803040678796693364389152135724650976338849315162671324536730858939658210736185868427672098465024347321859568153018301886031632469761969212738904901852488582767297480071295360777651649395898169798861300145784169198534936862235217406453462657912706615560674340287566725785633428882447094078363315662204300841227371479321078336721069202711096079763936105766511156100354936797917608619707837322125066789224620037898349735522967733916633277345709656735200069630283915895861030046007113366576449128459682824915115244371732707802051343563838306480054370938487326693460343120646461940848414128985607925746003471828466524562736899025195816219340136034004213895142419654351240527350244768005945621521660501656996072862301187439427219453847160050754115332764807837361244598835129543129139262687079624732801309410373048714859183530028994007995553357730951327300726559351653364547855285307443031026004906286600459696187954581543274809915589553858265526540049870498251475692721249064391838513057181766874828566286756294869452297915198092244407063914002362696364937513218951178673344712188321139342395174967093156753596554737816111107907300200661384120893064335042196329140410058865191983684928170520423167398363903772743130746598906765171684361363767891100481537793030461337654960995706329126573015936377040128214277784520394357504808391408655854242914420209163098475447454888143589217072497760807103599005432938285170946897887078840003073101369316894439650212733046329090393379408760941217370943453830031455597307568324987798057207047629271733250738757689901761400835867809728832477842846894532830365972848372934523874476498389642869262070118846796612800353421962053920960739408460755334401696050331303086672588626341225368440165035157338944175591615220594214055331663000329543162409346829606510706513602405311920362744123979232804810656303321420453915101985636618705141746965174983475632439522968845116780887513828562546066982521480662857782291850681016898088388201387348782500403502375981374231861244981257751077144677452775003597837324900929150201305375984254187873901105860626396236466927148922330515587353644024431173421744691069990994008062770960029128978858340161558013489070933317345056505580470479876496246593690272206445423204004973310111489772818596205679461505340227596653619140701262861410625764585926002157516137119816498889356466553388012824143153016183635516029297899602444900842971594970650824805049130524135211082669533419588064614069318343219769415233621415224251693327958165919833237255194354044145911313438949512759234974625783818566932417452185164518045819363274814934143748974310401589338244550945382646713532599969529590430000451331152000903162780763825181233861412036273581791817044042406761091361436351729078836173425403352768422927140005656116410485275122956159557914853029913981862624904794988265032007255985042833477591822635063938804371404882402297198523640916237759420352526242260289213289181504740423677273621806266168989661035916408569855026031112752018308001301643930786534091310371394293906367104156979085295731012558201205769873908469022192997571954698574366399886515778218220656042949969334205267551500140809036428825876707088636531727770447294625263551832393561693525969400524349199551969356323355544617670478387480796022595007225656789427337002255842998400647992335241792172765621052604798516419536192548767593265984839249947939612628944601949173439317110447509318664268784726371449850737209089796262286902087761593767836433356511958522067006416623273445127006299033839608074302638680262456031877956653281101286663313510971910642141929971818539822623456144481516841303044209368895903187682372403010681528004148148669649860621485718624733621181136467441238382587946599283441081596104839568263696856145173403926121340392539111608678251220147411578549962810811423741631888171316588394497317658835159311326738690349672509121516648574712502592196902969616900436943334879916079832822984458687210055415318225914704364227636962293829645265627557255156498015233979621676070251889388989856251385845822902645690303739256465820374738471220923749126012461938608467438977173548008113446621307039086313839826809659091089439679247728931409376187339371695141378065258526782631458711737297004248912232617523613474143591961931042348623562941181664273669017985390682198241333289709372097913829211449010691795844842802137604566619014486412485023262380517748382024092797926070064635616532172256624488595562836044935341206359096875752296202147251950799860960700745390736507727736132717061939051529245123863615076862655060844413565118792200444721354199065385365880612576796074892266083906761276717663031629079686323125574333480126664291495539492045370328727901757209712128810733119348971092452509739714837082232152435780567136720677410208113100507395218136896392091435388475254979591952372299450954786913839350289613873251833014704718471238405451408456922719590499714461819085516503873985501292545672112005540052135725903928576567512952237904047390601414440837921835666682899412586763760812206468293537587455458875489655883728581913859448715414146149201618306216399275202798284976607496700629682645624891882608908668592251338279954744352163583031783126928573283509393756416070975534142191350543594908603994487150704907553450929787901254085635338443444566385574099446905284267203326149443054840379174929652953197891297455542397046679088393888706457780100111894792192231915456152915721354885299503987154368627690660366544465891670930001313516922460832526229357511234779609336273694788734769307729826387209796780600440787249958736723812475891020906493708402812385162308921054745853799544168131228113722253562842446514304651616134713468456064486640812178092915346406414142570704807319349920909057579899540033549763817326567352943673484232816750574577657409461155786722045047495953094022824525782450156121301288898036155662461359229906055732804048759992592052011341839281735578684474516115812052158352382008165903998569003905717178085960956986774817841551587074861614105015293141115661371217395731821778747291402760699723781190504383186530824627339105008985633510310884106182792207564891974909402875915553683434543858792600263238335390700271637967085811335019821851049030204815836531329254636720202718113471985558743197128288036168514167772689704843339974140962782859681969068032898185192045519091569365886191084328860559113596319403062957320895619583934452983598119885082790167704984440624797757086441574072800109920396059550297047830355136420172559904626624842096956801439009309339799497859686736322749001959714960543327627368068942357320835969836146421894650665374063147421844373602341934131490999457876703861920235857271455030723426998559398710507480552835359415068759313146813717044746443008510129042878065890489192716469833672514076011970278021231818550351679001569459083546012905254275306000255872817468740021216776733622196870890202498162318958577229166178685550075132810371725863085209764969297682594349851657048170121367093323531830189209677207151855031035396171638195192987380885706151348286977597402589472392243130488513360777605637837830468612896817309577729293430524120070640728071273156372082017359630574349261381623580822835580955999738642686526929196368569288891974362493488150481502346668101587919686864172116069204946161749086650762169592394886348826898055329067428185810972931720057199114214800656538587393617317637035692322936814550932965110065711122857250620885866575283803768853757687096641638725762908117170310378225207827621315356459986298707667836097975242359744940180286300697596079647295939353383007893281799509871593347294081820009801821064359514008274727189276126739700072230854971370885737143881091966997965011376825031952815397016866053510710131117709900257465854616443916604943213466146335996965517708676792546171789891469471017785601492728515426366704903823339468379169359337164666374752256946914691229988860353941712913955699351699807838884791934606199340809463146501604971654644373646945358082521311799013920837938534809475986798742456226354942905289916909904012598132171149250707325159871943611852923205691796734767281079462547708470294470084600964957448556977427266718084855503998083973442043767486096154935860792578116064801623059846662411446335690753849313072137553561888434703060857176925040002798817520982517905757089051853786603802255840014727282308750118889404166381715678911891704927321217695321434900091390629226444762138154723383685478162847454622735930317665568881996264227020872593249624525312212384398235167176131036266504889388904864754079963096922507932376138666693094396309154284212903826297673666913986160593771099429003367262638396444106494709984388704167268387838317190948680645339217229766912944741064914108227302374149252353957393188156848991341749721436419534754184943676472652959641121823379228847588638667498634871664420759404111285645867301584082581410635507742774105085361394722150032311854370752289096108748124639652716602722518515634588942651292229833441322517286115802984051115599749909158343538753616420862277704058466275566335626930222218107290246946622123157337999584237659934097230224425811785561866931122624656403282179743457553238808876007697928635728739824037873080948478883831832072159451406509993038066721453556099006720351573090956953552519047967981740600688604206232070381354071588935297002784817694106857050812352009078403181549146666032850367546430336275590744697074548536129600300591133795619071852360667890556822612019385725108352924773606998500291701801298250570241188794104699966894433176865140181178950251908342964462144144672560217053865036456511709471040617643050575408009903417140277589889611257155833978594996455737939356954414028892282473387792502876338048878705251580968011749703840160513819269429015475600177466103063443377008736009316167237870479728384874820398556462710875348772571129331174589490472051735264340634680519701772381677597008469932751524610237933191521365787688700974824306652824733752944726277465882302388167909087935892227084478179374729664916292644179962707153578833147862924511044220480329346101090391787528167720100091819898989873342518970894350848817097370035391821971586511410940114043982398219501963521215947147465587675660923872729051279334559047844081863819034114479492670726750515410726720770575344407895597087803817802236779636097907380031075955219491764212076159273838654141947497331046091513663350619455358534654672664509161901124248319846964805004440130533818815316479860096641201151375247040926040688771957591878306763291361327194947586120182830989161324625917977723161034993466203868733469763286954898814325560971934037341246665719165835160795038032041053512911215459324473386335436753150168841192049546142370653358645555923007683434375908716899532546420232170071706842449751221281416450683188408828819385200461735990773581047855888211948787946630421288066212566621463892332764168907341854456512180654547001221072097808758751096016054306794884324231586536199990600026391133263249483086075610776191260718818138295638407146743865711819525241362237020164978118194288631398274736799258907814577755810342608173048835975036209268832970170939324311104114430379702044825680798908940786318446744897035919515168920951939250022841124592910715251752022751374680925840951813178410201642478038347135024013351474869077253069714076745249512723582212609951335220139853012667032240064631820551010160611538607120944852939766430071249193459943246455665838406099258810406833133747746278786463478140971272877664602463752662503258780277380591182647979762051044135851193720549142513747149047558614687450567881649810762109500166769234766622480412424235273932917841577092277740315404332905544044318077690963513788999089820310812732885318814940579494480784050531576605718923956805334966560283385951848918605289357138744093937645653271000926255192860845044936075431402965764058276997873197401792812365719017773291929830014072175666177141506313687896850233046662502720101976104891542322123217920851117187825108203792409283776712469117591611767235269403099969561193031003373275120337281766269943068941880430054014937094714573995673937462654297033130937823439126911011260123186259109779290880600592900125082929731135376859938964616447525289866871443710559312721227381082942034417779209818022113356052557889728260430970540678579023228367532326878209598225326058849079192524271253804688704425909529680418514804549947627612892840614807043975461827074578503688954225124890929538318583116479545965552477271758507550061909121971868329570150517909772620829281652590187653115050577360655970555440497077001186443193878415261341645017625453871269478562354715767331747906028241774929215558157395670891801140886355071813155189307888265011973943856710613872248651051570627846197356732548255592186513832853585311839608372669736673732342869624352680635287560921137454476614020925941510220038193769580107920356844214302917136775987929977773789589316550577590640094919702145696150668936879258665993517234807089168653077895597030148648465291198245046134802438703346982928232304499694060145612409956952522577988519466797952626330190062303133834363841659236165083434458559575744406817695311876392004293311378015833768712658637916911751881144887245452551392133403966374927758043952285136030357202482366809161662595805030670829226075328851768765787290236667772757440728905566528000557796669935266303012793846493651734535122444875387957806911286336882693720181972770597445460940696270594552572403046679432814805861345429542814701513691819533980758506057600898136796976371805925062390763250187278508694930592113138199310231621353766798250892450142395710524695284752409653298718518717566743869034685262466264074022776572592426293284923346333296451821264844478939018872377083750462006909477664722137881746204431463757186430211514262142615736533281375328862061809336479878984504991980681691945988416808204279766057212724666686455012405566799330842863409794736738880412317990822709752727023820599866710890827435316410194232542308452391898908878463541627139191057303258645573995852796730524511367925701885488871280237128597014816940838078215704223322338632756467434701546506459615160625396603852793358290884610955565284703845502412282747735348447123724716267535653794898612782268362759957390166077886058068371342969124154532694871955051928512061914362445390014931633192342965256628207735252049864731582627770938135916665026298601515309623140838170286383756808305577679388480668162951992820795730400525797742646412524838384715753894388229021269484602339517387559670579037416498156446803041809147194365289890335982054854946178273130116613887803016263312392134355745361082387202549379069857122793371375678374810208467899187548998922620069311962145415256284334673170239336924336149612262729826860862756703160762658815602226774959129991109507820067673093745502064909264655609991816355066736723574847520936487732673821842943117019321513945327219791779215297714739412207187578060920462731576359970955701682495377172653337553383874808116559255006000560873505420545261551399909425203950037720161944162147269183879336243886413536454889074024154949711579678127844211450651614037870213287180869209728507367013097317722591179684728756761593391256839421503694545769908965104014240689478998031250903038436432481846624888545781130628525187231614215617053667796802355086562295650287881574878693765886388101720009286692227715145164368762659657974662509005294663820382625738677850790286427550743420537759286394831457728606197495230861614518674253844339872778136311844658372510888640299423900187330087134220306742436579523701521871303874448500811354695387657692413756376290613616464488739234252711801445981689766124368404550001143990552963750333870980848911408702259796454301025761948446712088334775390372658386339670846544003527415814733423264970247037517146461555881742377276310681249399583726089629025417882363786264783893348119251663186205974706374396883104838636563155624631080764589147954160190633966007723983650271920243832737754374488893591751498250754246590800645175266687685767621022217913850062101534388470020013377824120623303764299842821020987014936495753094485700485070598645319657144064509931371242837855850737914278837960421822137361885853162559621891834140973632336262336597359165039352557757017601753447496017881072223461835813786401663989677421014855255342126167755181927391796107264507092197940308014523611863678213650035609104048256557073322805995833711173974310143910515445967516113954994051064916595073340229033190317464356373868887528924081590805534868691474677181313970037555724505081290882236512548548170262639372217254473328279636974439416486006967189543594635807246066869133194721999775283189417302115631690554622156505541709512526570443766169784153830777794483824070079021315195032957086554784829968803700499095588951991761390064632815848751644298868608041258236714989006910154080023754230629616955191175914232129757760058821468707045189971783639605808481929819178632971906699296563565267329884685304613945429777289853695326109705598076023099530594213811473960694015866598283236378598631701787465749868113953853884972150101708431306297994429566022728343231260627352207451398526505704369414011942698193758100464349156298908464728356872768579268687083272795538003857118689490942235549706814285560125334619752395640522612267331861613471670843920425508858323655745859340980760779005232120945341548044786350445009749492854864819480255198492478321085059837805297606026438337701281954591738870812571729952429295697322871889647251616417514139214175739779179022105164233243281473245323435279938572698705922294145177479366278296627746685872214919792460218218893166306825257890507134219483036431981726535881540871507004683788347264521292682036479731295122165038801231295365963942867105540813256705840469867132369169411169184311426058807364583341253354239087445016146849786468416293166563583785208793305565944902359148308982519909067003792481706737753336387475215806383048244790925377866815326049836566101178855381438208924094330683175009182096760721115146964602275918214253309311427017976390803463821463770648764217585899491438727060684602159342810781159881799981347894102672971140522276332931628193268183246554660817466909414990055828365465195709160177659795964888680345218129803229235822546732032221143473639436538194925230544360153489343194629889348075015807326409055938048295325174573337376851373690699885369562528452595974444332165742514690920120546119011094658865316501687457440074479348676796406567250269189213265283269597240363891013495209649958079378052293348751077403225537410309821396186496859537689822262649811665196267628032677524808459620787663964898449501511200435770728514008865032188683885931289403002508147676628567995128367864084807825846583560370037117013376047617043024261730812084563705334554128060433989520241611282831307051891984160994753888295726237573797938572848431945026742258778207348023776699946266910203014387503924778162059452091506220068359133414190937508660762986061039895090669408452831588490875880672938668216624270714737029266610817989216190752956758688254070359687161426884238802794021017372268979402142433350955762731047412351296170716012264326751585974525654204517100200067861579994834406034798079471825379840131554520176752304422621235080229648695627326003172108912933867818056200004096007155859571305484591135829635235433038951443187422759783411418954577062903726999978946673870880820345101884157242429024872004479058354990556250519641163967302574545966013518046280123199901528229568810462146683940130376995496137552385701649852986950736156942414511690441666068737655513172496141078039949906359266330540433065727067004891086894551946386324486621894768594895027965729810143378261109524943649230745499734518924294193680365567780577425010489712704953594069646863082467761178840438192497478964387881448853290729470422075826271318781414512076396641167861644674533421687445368608827019730835967644669946556072078778999811321387284329873274129137310880286846193494829417637750821862513803120355764767315953105670024074557759473973288102571964401423204538756935344550549700329054485899176625973940667852530353750133848806172745241197014446562117409639426029087862837562957939003846351468878994851014594397096822783535873860027677797852367957957972092718104580168876746029430342435643556710340241125473686771763040359246593833231961658495116470433056957116719643455350495524157715332675440084383601398175590137835974881212150061457109852753593357917345637335498606809584026528958993252181622672055780739543787952013069750184999420122611480112958103566691086663138952125436313787657845941170245362611879208933777475825145335358160956110437851309110558121549295250435868626092282103256901198844736766944786574057631596093050136440652101800467249846520966628448240901862237553232153462540965101576676209670026165836531351893944855143592693203685399660981593955194546834771182770314514357767167762554353603578844999603183911057011441471989866577462157882452607344750883337092844513450943389670258351412854465706189388139839925816383324468253846935037474280508851202260504098158296124038774372891490797809975768554734354094172292028781048937362419468078022637452820523641110074400400681722174309729476584568906352616238024369619423556482713180150257456910651488418065265072178281417544787483018056438546514646122656763130248941024189854633404103669656226012567265449648953609886478117031706985604658301776685476649305319059046598975445142822559896840801746887590503161161125323788970256286782723789609680818938427640152122883880041848747816201414033127123208465138728266296308684830426825715123925249838461880583594856480899379984649456236808155024845764228932600235522359756627436913314040696130401281063953341007435981636100194495050827612137126306863461301379358528409080590480758327189139826894770126692356334365498321555757777343276584553160845426406759037879723867543402667063475093327074162876365012882460183128092233223182085252704529542248921196254270580092088081499861792434876671833195907285454300664263933256006092078784628609934548674945718002234189205059281600143006652704579751761681220577774740467092210029343478733264049160976348960351114162533624319500362915185951736313047461666153131687096526868635269381254608799765884676749277012833900960933866303741090851340662754331345613250081176459071071185280653187896622741794018773697991577078460530530513231377601030461775846242888845412981184753719161102110889666024724825745770262461778919513386175704799336669607120143008936225283519650164701662464355109115182056314281744329626316101369345156150717148100978733694002578228489990123006863191548559976185723892793665801925830299219441762228007494748803042509017666154439964327724243713301864202805132753327690201952981161283587376898388976711610350825046223449087704048460855709918806319826032361200479198657063832212674361632625063632220001993620545554578462933019365732543511796425642086508180675747963667441633818142018660567555244475070694138949455818221504723767959390734853013776914839716627973069073924667008161380271977272659352180459840612110681146830969865486635290357370050312543436159262654003368120971915705021569147172265504877600397200532978047110870269018524098383029199522760885795479475745542930539699999808495279191805513409756924725535887897667150676659307545959535033624773653104043935643214150539804334859870820878981441624922022882753882071816299243290541051614122037427941824584012587617500804625279872800470501782211423714850939334422923397803223695906138822831273057112600646916226043712910838314743769897362774449971993738316456609279310384205669339092010083662633759758756268380089093505373205898337269110565898125929401967479828268510133458673193878375277307406487621210478985812650641219355512103006603577098311054742455136363690302618597512307839431329236037118375113153799391923702027769369039821350811289923602933969244426316279889627648359371913999140804931933169080980666137765507961630809943604540682574769669186798581838316191041376596478253728449633744111096780733155201140819806115080958372601054570062921186694067082904803793391467955885223515197141895000609359472340790538871976436728451210219053980362057478498760902831103796870552701182248740533903934046524115952893763809716215791372498332347175003290010981147107072210008362491683696761193922481789106095574206928879943649238344873579444728052706727124856126355019756947933871827204465578950153801654731698906425893301784412110433650752150283682997326610011248595079405457898755812317393415578361384719426510203703831302973810855834114107666713033939099622225338544388873375668932873037614786801512871620722594304022022817743035633470809092709276138749412851054327369908063425730562893198863145226640692394370696998934919421826208558984358802118239701406372621884249218384610584449217031290369158494554696972784053738793053368392894459270412452154407077991797789568136973169728644294496852010923587471083685347988182831853502882330788169805247239494451905882207835224392823262502422752324820203910020989356508459552238486879898864188674892909531248454293760268365491193084487657812736934759364570589443547859686998778460453276445184572338687554463877308086444675734687477012227866258281591704840194146848470698484837571580764163388274449083968923128109203240323080553210222791321418958187632982332201686120646005456977000040991754653916297662442577142509320216389243910621706758171135267611255249222356344426197494165313457415895578222796941883139668920537092369139143742997441873713297857778400167570552439856629905531916003615449748039117846007459771239009887753222665877418817250612909928082576382675074282527104383236987801102896630251040029771231821950809311734709714920769528449731465330661660029549194300763689887028508321829306613374857788340143020328048132506870291989193426266367771228695889153097280189395156747301044712978590994811536250023422366255027859390676292774054473334789763873043318022701468137781513183960061401864031355925941566178635139754554674172893572492289896375881674426570290174514280490779417347941396888013683363626658264358745466584122256099285360897977914136385586878435463975590687056419522728862174565992412268820125806124226260590345492532927147260964444695343121099103248296910221992193093470342671538069158019785026880504130919584943754563336459281554709702374004193536173359118329603473209852223039440201315046896858041125735655111084804427298494322433851477134015265536153459444760234703160746505704255948853124673289763364662390942050632516010158848626726089928291231409948939961801552842836469507509630504306465729270859762613546580347949564433957827897461438284240337257547302806840614277521153914775658260753667593665983969232781868403500238654610960494354536842884052320364160750475248142388711072160939060738660531090716660304998734620813984994335759054732373199248017306736855013901960777758812885729601201066573364608318891451128492176393259179315325917872845096721226679317089135920129551897152923294514597767419613688397666249038982028098082699272801999610229980523681229279888924941934260484256563868183090420629157909974997864847204670382000972185925640242131972745502798964796683031589802639064865487161169079030430520180842106891683857322562195288218719049574455234970670448659526140822510455584292827866663538188670017859867121217085121872379576948472302058139035015135954406687972648521994613771055894186919055146368766827302596911581555057843554303504945907842241255815955878578156717145614930447890450263667680686072345016698227641627893331978783160526249008277302707565811183268570737078810232935090841480762254712789139242281449233818858426750724650948571627223267651072722285050830921076433051833624175076978955007819549768183857346492593811027278059753191568138541559561363717519521531973827280656993609834235202220426581654639401696114905284029763553610477592692037186828521077829915332386908100190263768381247489289432295556344479385003217079939838266189189810924736667256104979524961944031344662150227042701093234308272938483682372041150359443029374931874621820555336976415019417102908867514876347264466679935611837959733628730070457791596465122387847959936156342658278428825989357186243241920924449423262846642216314286289328716834122161075375246443279749043296933927316136703153852568081114525003001013389919474944921312522016358470076430645426593285324825013982623258721894429034131410169134510062152992973792197839623584094055047648925119086698458331468791027294255213979144665364362982837600753793678963739998570803500657974371302266955763574367379439109823750825321887749752299565446786517895749885931807155871353861027708512369416840473763474103480501563424835526590241937197624643055756335028295497883724458774435420283370543933249131626965168563517869254722974571965133859569160914551569021187258978780467940052922627339398400573316855843090801947618912707932970600166797845296530591920492226464988771335139263431033340009235674994509541265178833689444262634318177782521575338659222621405689454779371950586116588291183528551794362125082756757214874664847861342039091241735051707183388441051743213164608664804946636927993446883329529528385819048120059048497808781959803837202224848965444615814583867492511661966077285235456915636731961482975662523070369150072454785356077725949075092123428119295534709895823823525649304497809078379854341643100222887092933162976440915840236990880030369812004772717917638596171660695545605613019006826662168657042129120419425438595511952778862534079722780364349335617216261532049396561444785044181435635409260564096249610780880127640919125993626208498231822019408027023604538755482930589987618220980605526841777798810164787840325142668038906189956676336193143700574425590707353875361003105676508951426333879915727263309452900545267744274035394573184916947919816223562624706477563929866026196822807427292146711775136623956065980228941214508764762199464729926842792920608465220436117254712014573315603832310152724946379997212242723047028805680994634502302141880217887724687671123579059172487825434689962578697046022356739337448675987561409385575318147938511861397486383636377352935696105196923699134775035384539769133535141615373803542730877614655329377534701542280618329971851103364410967278995377995793473663387240689114295915484332014767057149057623290842491503295510545918584097800639952623064120833515556561562560716009299393300530707167284174909459325311925041614439640554938148500257468789883958311052027943408014035434994752709066003969494594588612965722794275524051760980967237702674927470069781789852865747335451507022714450755707917592617569440960808089446271307194291121815475198071302682097828458261030635394492910424130101977795270053645094999037910421528662619456633226389244371509713192217981501988164721128242268976346779063161703120611393469060280512199860110940860006695693603395778391036912126781902344285634116975884328943468529456695602189259806526940054170880140138467493848453116192668298098419672094992346933576953101945408453078815068233131550364613433674478394416483091393649863054783079892922360631394984857133200344405259855516617270342415558389381365543253957198640916672636930119501164759635899858886774218058766534656425427930246766159648112452194172937853276584516639402013577118547517811605350987377078716735864209741573352091790623030393537416444737950075470945431054109635049434592519526375660835354817682002612839905977506361098600926801234467608328939844270839966858794891158692109094132459209404668000003824133167356828593792777440140875383906197076100047609030080286735883212676960064146100159155190348576161712288829963038430137290835239348558032576441022139940641329255260554802217243978106117110998369613178304065517230996206206508393698980132596461483168062449830258358007367579184560721181049037401215861688242937744402260401827398704730544008958585807357044837742614711765285436650371284801491030584856095887525589040794716040431082547202662334614956427572373885220907468837632812967171691729729327517725594859616869448669576521811811190896151877535018104932945611241152053165605357549621474723152253215708749330547781812497276573811721537651392921846476525159788536942789889976821180999050791499953948018208520258664019404147352819370802766328153897851750489604629246493966819079803533567922341134994675874876696524570932018775360487938960995556451119767675857884822315098254445904227791971046360028465428686352130986979160689946328889629979858511358488281062229091006588466348010754761209872828209370098075648348541212489183010079441937149707012385004402476453382679354471760436231135828175162319697475627313106133871954173638114798332133832537640621473441763019288253212218033637825416032387794724584747616322710766182514597033130591350564445659968604565618162296065076137561658464077409103138279719618458324600609894987207024893705986190590619663005180854700720885754185057600431372712791749313510742654041016105560807888782438195948434283922240547400949337267373995847281452826304846906747430803611833794580130643368288400019083753484104325990619562512087256707290465733271885481454389898975888376367155805808189726481364521707294714952375522510656358180959787309621663229011221908870841179213303387426594863010448630908062258058919118010488110239664531513629341144372078982910849161852068356131361658092914919962886580280817676970450194135414970157246681703536901048204608375742825077046882790994592149789843515734002334229200317515102935479287958085951333328963420785396565141615576610038817529574351519557204758244520511688274060652787048217941649889054377828341336197843781529142461237979767446147217971201921598114770600069704810614297531472040219054238361476451840367541032880186555508260939021917361611574367816932620832887915638381781989223081301773068956821424431731007740657995280155793056915233743469055011891189328569127259539787108827360375474632132177345314111269448940134514254921598212362574210566416419000936009209307833037198066063594076209157562425793056375456645944321913494144034105352305087602686845300429575057035669709793428401612575132229428391626914515950611322333652734518613096807276697674971833128347756080953854406454670816964327033978054019649434405766006383787750461429435409586361129065126886175949191936227033613686030771483658949300364510118446826767239316018982381634385561382627017500478258993567071077955757502285314963667395918307659880582444747862932374806238469980857983220813141615340102032191063957511517268036495143660170530384148500994052711005862791744149934165653817925710009501769403061670949136557610682737764702892190508919322847919463750366687190892594217986552234808272251787910687716092032270037958505184007866880857869838934120587544033217610682761193964060373064822629943928869288776377631750587838074173596151093298484843515997644722902372877270975817271681972876742051340811864432048598865995454914155622036191452348614027380776283066019455511688316879630067350907147351297855276224460616657052983992444707152017369773138739817486611463559927712771367698277574096949780095517054038864337087309853561613864314493998121486194303671004641910372609134094639831677482277279669642025850154177927132634808631000404986791588060712670974961186221670381397283236566145869224049067768905169076063650309384713183795081672620002777043784287821484880649454786671388821659783022174910777819313773233658888486079086585581808807026129718314171130002100938428192838630638247561176627566126565327692651142963181451918016633446584845342683280515153052003300487450000229987331159113815114452567279471572448760690801875670612753449420288970022529232157151938255857126158537065923028458133155004006979549708870450333241718739284516224439208686438446025297846549470003545532167105226524327114169402639546228742166978265306083537457357663392014091694054434671267258687100480752080766038895459380199878542577701825209475145763827054735141528847191274018566775573119965289248064887311483461996603448244363080592772690031614699492938620896259910310021346434074205922129733083145019614449524085755538179133648236956698375614860590033526771710117773436779278242536456701199737114341319909001947021233083316650248003312403208733203284910592933285479036064635860743523579800138887421048803152937305229269520638117067455601057300423889806360174996950724669121906880175638790436998634712113261890979300664044958104241768927682335171854070587268726764026592348625773781483774324798601160768298861434144416342403450277404404652943959304499377711600473326607871290700164895325193022731544595492868281014240992543463066288667183935359300497278335543861286962788678941891212934740440224768178806446375521395086193116222178513977398350114372767641570535858213337040536931167534424355276102515067019063824214937935828405075905016602576735583568435776019738096313697886993283871269830476557822014666822639051792080578924437618735054266338627782593758405036524119348784839092490687454314057585700559009692627349495498743821804673371381806163433252397724381443690431595200390104900414749367375128791156804121080579622664912401817313889100388347959124805449199618819432348268157109160786623455557988900801129311807970258432634868029309619477157331006569488003777348047032344738355440323542412424932348897506386525401766636686860588821716586633618224566472941431638728566747320598895071829535670059650384801210435812097332321285991249376073831835580802806529899672245347083282242540308333921903470514509622128564448545578937077548109978473146823486550171190725167793324601386351172208416375427800658730483756459633594362212283904141668339369506980525649390043356012063132122937652815005804509898094590970505785682501533372603599906681977167435776881584513271570087805038368708985458233054301016737834646932398745036700929350735927446776226242591832514695271317893655171896255234105350131510119943203786694010345032543947532143909992459942381714819600326924723754482180915616170107657553950270900244727118529329542674982326226770170556430427504584866779674701301327852986179696366743321853878297237840146260454967950886128023164275232093717373013033111852536760149624514030172950600335017566432799540165169859954986600073455544102597632480761627991949944088745781444590715512270113660232878942498572495134594280846558851528600471600213757883855574695541828076392241047586922865669813282477245680122490531081174782519107195532697123213659973941047364260414431047610843122037521071469056501871911880126324707428487770012591956393833239795986805073885914231904355621176052107518770622891367537258028520387293565823071482107916517530504749671375727210177232393936414834643576915369298188735418544689624576166043812535222985933000325506167280026588425094759896866459051001560315382664727020076718684291756260332968872598094527170501806083327670805998548556473904664380945007773426068695347570270250015993342692383153122390719770059191335330073383673606046882776024812474582959911527420741856447836404292042952386938178452054134476749084467046524966256890623016928869698984971952401996120573502127119106058970551835962988693076625668194838814296342731535975693947549546815955669833219676992350789882886260951898572587469554938313363999569344593845227973820295283705368685799910431383584706927497326977765261172533087992177406082913249636759693154369334727378894030872732394276621162155856607619673073117235963421719812860325640834556710816962838448484083445843515928814949692810590850985684330971465022243778750413594269834296242282377504763770739081878300532530479439578370488343217227441678237833888776707634320687045994330745468374885296391699032582049990760671154304237535620066694698215859019708100707686858576149833154148715105485030798425682879550171959446503976177148703101425563983860427365956081696992701541768745316295533165373362347502999380250101771284010411172430376951264876330751994587833389508874707686455011321141364204620044228115315738399091847709551183208760837254185963737153925779682523642614851535152763091626674227374251667071834355656819380539720155745953894281758695085046707324735874476534519550402901663649993063856812606712430218188751792239284362493665039675175638082789536209769713119581322123395136951838486854650243629661050285050207390994726912998008212512734674283845468510715003469169013742368215589500429505870277917310013669218893215201447522818274172691513293403576418027752626995326009823681826350078459457252160312807610513510668992480260886210029016417806682462309434874228404846104993833113880888287803234370428746557748375498232300281828625822619943143167560570746289683215864070274718659918756802860814160681121159267187846899602649584836047401338653691043263719204766386413228957988310530640059195305214609910281681760057080520821481219596760197030857592917814866914589469318106002047757175647581259167385668201201880934737857890842854936810942836649342829105496838065866850445901151528545711069026712733341598468265198184792602416939778033190447461685626927574362239110376987920625079401979460823199226980738984308007573118946778177504682544111398269621787870203809331070909739425012808848809141520773975434142971322031032284216679330905318280722801594372475959477534060543996348933710253909110192028893544550571961602537301748376999408804339310445351979444915716736661051455553801365506426044199327794083157241936654487640218484096988058777178609827225230699461420015069554214765559647279493871390578216068414812800915548022673274091241947917795538396268391347709352964117080783676166354925122386043683667783478423374954218216348623681223362928087169730262998911922552863232412436821041892997924101231827034029919369122241840179808247803622426543380969807484647482233810903313921831090683102115952523705292684208611718202861478388611261435902134332169240719819411080179325536859535537512253719403621840409392646396865444148793695723762817453404522645335327541369028396730605030738576226362066498697429602484769021096373252917902836729038638463856940874723088938462844336702531375173881695492789629494148409464797949856985547216093854191126163718418687135025256791133629618806131902991675499099163135231966181305223105824737735992045659657344279140031189910746921701095312011175942873926399641302750481405120397300682595481855629189781398916795307204102103034462083534445559980685423732976116352927749156116718601403170019773940535826122012752383429806675706614023922989149069083583743474444036620867464009492766973092671492855881792292861597358751283535049752589621584605692467902979165911522586511288711010156576695555806816813935571028456242774062301973800823753621327621554094548685316286003413405277327459710124498149095680583747452447445781328746874699916807367197632878090084965572265596439605582430308600191495283627658824112627046045233237443166749332021932455697362464214085252334262134913047223381012756512749535999732222209086359980635966486012569700014136121049223001506630056743866674455186359495162216915744549982235361472105738598589779307852182671340383249149683923959767705828412788606131385121474731226880416456161990250645971239616825251324910692941612678120976097943727050803009612562013302894601138354358955152149853476233337952545290242627098367796496774588792418501556302396128262091279041386206830014973376963304731544408824571607849758982677456906498828753602383206496452471058788585280418865685692117253479224042170194297875565194845061234213445963328285050399405405822347568414544816869560692179517427338486777115854393834047914995853578823256158047150640718348945077876896459668158015676880496993693431109759348719332680341329587986006818026371159932776030985767960133645190093404850354213735429643846881119752730788295473319732399224726784286045991454382414662218353609626897695240680023342095312439955503434012941748270231787448247710972331230708566939138071627312165439543498952752649293519744917112218019400612829910555933654228428165997910880592521324834745927829862479247357809150682280075421337030626203323264554382355451473796736990036043590551530127456200169016421556234101104262565308331694788142162095794940798408611067029022020768250444637579171828652184587613556721895273221839684078603234316614273164127696027188926128597943517783091484141079241933348252231392549796902552675911721000122436636385060984445663034363741621140718217013354693736026683558735385585532816310760925198069382009993452961560801625615661221098995171650122054827810119710796983376616549864204057140066433475334045358610748987249039185608825463481389919026827877981838947691576370651431441944076597410958677242651037999901571058411906898937761253152081905612071692292056114736583862675862586037020481880064588862558120641661712908483913843492519079174265092135572038834258421175573375908486662758515276194195433038796252365226001558911272707019395856603890207294937398587856445189456274579289926857410734370586258580038060085725632443235731952175213492327188165120101490030854729265861749282061357429073442093815443758879229119135202643871299741682545846697043812680012969706578531180108194669288427194341413258787404240390026447125441843899949561615316051925441589366714792608699872343506821026577011852726309976851864289442291767924749385176672030936971257816340548411815915828662342757929058679282838154693889398617475906499124708494410599158550381733382681833188580127589324797595419577930643729216710227953080425640567952548552249474694340373135811999576553288588265617434912048822437699199394516943111283072959479866686151157449284614731625847203964567806058077954736425813596688517384065896837879239211365581512139715378687123562362789949048757513895163704624992858028899703331405798537826326075529020019901703705970152050213779525935020353039762687208434658120169450646028059125618220011144330987722593644353349283687531881730839891407185192676743201422097087491292549332011261362817251639433688438628157937085152707947238243251599426950221549628047289971060169476082857605959652808301680904673441220670169967628682820531262997769596199246901290092443939029436194267923286482027525126140585973418751775853232794175716812653817279445808848628288118195076032026738755545574095449036731342647592517142377913675904590204888720240708880189154397328431796997739365844127158038184517595486527247083234234471027524106520524434447040926432298503401502364287797561172222168658258002497625946576166866474982132930973437532803021114236787146826054316622196025028113544814018603255307914035784927011181651092822170352301231038188319171144713714379328399166320973056096489175094264240148264233707889629536016121148120723430994339844622988172852287987532570453800232616487098789368265945996094659018150499207225300703205614336087387468615049662418376696759823254255043753499388006512013551304950084566011591702189989855833250846902427102992605755628105495783884572508047868152139479104941880601408950129376933205262670491779176478754346272843345014760553193642250044822939632280250307336071012207262711155586452177446901326707895306008530725229703157724237281437115919509972487217844128071412015691571755742711560854434779056759618946497613371542668645874695486263062343006010546762561776862228425862021627237410182550146921219477592884051427150276439380976112414896650506579689015292045739311244007586166611716804708051835473896531528052953094722314694900107597073697510317190437754979296644459715900953286623229339688311432902355596120916927310332990275790167316452725276075796259037192843161145757042462876318033121143767360790759839116096971098872962700543608966376484691990796582083610947163527450695737141991332207096653093415957197158400338794388943634968238178496151066790730883716577839562022109099261978265337870227874031895074162221365742664769733216432368558715047161233008928699947594491380547478721562912768237520250466226764641350453059296573224035981059677189881579764423967668232681874749298379885917303671264136716569351184800875001720715891565977761263176500982835997118695883297801678962098019225769824117459547700236905986715732514881786090138995372732764121149520211138349956084381527673245132298709222948775685940679740836240399336762355866961010836780065274201049715882870108205277341030457425658413645361579844407510062123192031581869443929268809776706114099778362553353876062472282618021445359418179350815869294000930202632455072798485017412646063327832236952648456446978592852915662333821199073446792230930234461245952128507618812979778161645388310340104209667348725983949705645469550005985052976146757311002777961574889123655918783703753238353210655371805624794109577739212816934726903827271075957906959174469577243974810474787875056450045714123637416413146497971067919718577469166081843067977755644912825066993161131189841147849546774730839007151933830213469381308704230447686738177736888736611346247052628347453374175653927312873649891692369089515964657925437689533597888389634055000724139330238284161538611807346855671768479867200017603710924408080404442675114802701147210843904543426589710572580868468286778908917380843062594759551220680960640536148535412708826088545673798151213060876790853243655960331633455303621243464015789537946972220529475735297789208361070351759162002077299555072723675279699024398919970632118546509303999218204584757574938280922423369390713497014549426508830105126138683095153369574994691974677079947035400319259311280077900969571731798336482644371232875635707318548919325736312743101937888570571553768039259745572603141596590779055409147756417408275556821878402733119964514447422374609998069460632773524890634904226347212459294797115093591487597568474154393262657304083444789813372555092253778566707733357257040929115820047775446371472100805110070991919552060048272000077253134683658334169838443461044977031557522403536692394160666593518406693670675366145349784255971637041730378284295332477208165444044103057678280346478018854626947582031759928376860111976466276308236954894382467025461745813449234216175191703051571491426377014943825663436922759405111887828138711439634374871069215924544773293755918842160728762153043489464558897779396645613185542119765593495738259674181298596332354734575444781513396346579705413183392658870742741410181533943502512562723883259531621020029123531141975322685687791313202072700015788973300749877308092618647663761313496253059386816504502327177458685158883377057047273593381260235420259125989363286632312275955798307197136692933165249809694740927562292748933414756121385477151139067391183130192406274062565482517011752435691717455734970152476938336985217037300631310039377777474030691742136642563943696155603321134957937795255637570378226628643183110179189745928389325644025774897083331920784145491402504232347255105866541117697340879893655226948409162640663801129293988081545736465205149700036069893765583637546174401811843498735047513202931354593315600565184892578903394783121444149837688119973964727387788404780535776555537235038312400617108348869078505944246334386086472316140243014498314726074079113507908799977000276154601481632173327641228377987926899701475718245416592748095783316242461079423096396504441765943343693033883562883453541980193717375818547475364748968504763286813406668619862357525688383774090969351259562318092424051684568739981200381896088983638068851676243572010682656248491501360730737426423570314769183958905698045329424067624763754043149511836629171370141925759013612191931661244084700361855567343513475622307261328175201977188719299792640881102084169414041479762765441078547941281319524127667792873369651367760169084043159300163089763890108082029049127292070220806245440519424834119912243461140301865734113359569504392754926460358075053339306465635871597064839067012382723074701200770635940469660202817019296309859840304880242422910411719886854919059890986905180997575782703603137541563445584106056206409737122836784559309951750187456288950226592337843978559797953282813906327642326035982173813202246712443803280361627021892189346645091430802713150957607878271212767300642118676023963103443590110786718004273518845979362269414135788311190959134951009322736257860972664938118664735734047963028984617595933862202760070394448272939671040070854555892725939071619969509444622272424957957300111044928266881173376843653542811877819902991404389638534617994375014880409937374931628855641569970970994348910283343464349981121216623298113393721762257996600243711518633355007622567959724571043450255588132163174245850561344970972559854049528415681543245525422517853919882460348291739355985231106294545761774448380996815459657455351918416648104316396817501892888884751406624456841694883121782760324013150165235277725445412383657669122317149490093472424034429144406629743583102422147027286604851011132418228806734209241325698263617183585021454952957270036601555475801051079076738255547368710294955193696097938008040441686435494688643415868693247429344646034560404846571946260720179107551780519209909943526017096972406755351480670345101745697673010985831167291100235707200720534197514862669608958675687117659700886058124699168738528319977376032618598209223799909162311694988666383580233133456638912139812205780330696285876749497072191662635663858585294918392531733984423343345022024051246872215366570976106647493399349045128152246813012230089870345022893767234493627125267950275393608117265701446960336922022322156146801011519789617884064122503700319087730654671449486184297530545417492557834981063888927897923941189817318661709176250734593777201148479490878993996565372040692165232683158274108957017841270756740214908296018533750555200264134564671166140055336934423461274436553152406305539164761657187420997340311026330642062810586179060053688679325907425404136486488226929758221042960951946278742137771726076377050680721194126827028952043520067290766934704207833378340923692860183568144923744689062580732192806568573202930187245723183041926007416178908001486606020291980315666003344503561153294818673358566703030937949597412898267629715458523557054596614552455088779200419244804640393628324713714383148241536290351651506700791839850210504352931645104994349452973341698847760005887516965224326320385842740261470984587095743980378543402368096207306132055999857519332727403179701746151331035270690028065586075918403935553588531159472552385299216511316291304884270526329639594700173731190373114840230776772146964878627883377503945547550521620909384766713204386886334019338208471375344290664041481658517986414201902383664652913422774458985245209716460300499117965250560322791405830792384711255290888272382682304355480630762173054285581252402957896744071508998245741350887979022842965381997764870916178280543400645934588164915799422882321662447884836088384454592828280539485365097267761010369574977274959684845875414032008542568966937821892470533858088532199316541976505658458502559505958424086019980401853924521849294570167951838090670972755736373874899955705029952954987665800539780854692076569599335585833721047326655770264200395526842736981222737889648959375711499038008359384507415945572141620626108625378949369298004785141974698652257835819991296080825944567648072258706928710791285046679714949335896095363884934994803203273743142886079132550867943122752640417720788642720228313014986680117761709282323374346949798369554948288810037044465897104153075136052193781442294261237899378610365790435035352890210453365365153187397939879066149972025686796146327197786220920974348261985012237731829299306431073895954185131772100251346986082709807032328542103149304754352552046299377707151907199718436391495041022253373653374818568291886370475716142339335074494099356293229943978097732545719605433933556521963213307034114521510123313003923960066110138957292069503062976706516789871713124565363597186129640086418526638644115528817758129613782110969252380387216136625001369761969816789023786861855299333801088413030357338279147315167324285773474384176540837590419718479165707730533763091409022662102482375979531624310942244313470014057103652829031676038618859215378631989738203058981598080625465909856489669983548961715205789909024154143265610293016652010712007125009076373668886801515997183717089384804228079763270896220971763492017971959988153585907499538551267122904116712171650647533875997421010937924912302499814786439016064839304740026557903794986846029916502813443611517307442463947819747522384063341005304006006601958587828782843731880595945473668007491503718731787826142646456044394428869586483344016367176252179950217153102496451822929792053596568864527555674419622476019361421962700672729124655572362270655475402677142799173284944497789186521548654408216116952901637287520053210313939009961783390837495696416881092400106637506017128447054256448855519641968608584151136959004036194842778420017860039995142376418666533715917164725598226626272174814847267293385257327396019074161721606463077071587957971335860163942760890124730477419752247346733769570345692760424421516799350447129789181701257930653295006667561907734958076326634778248011555476098387637625312171689713709157860083921016025648321847209941737525068703974755153473358312270251331640537563273616387583238681923221730062834577378958136778339189979364354612957985410717405092157848027232302867407045668863918910257163521617582520742633005610000426619879201448248720952321687407735872437364836599840455946152156895304212194501214036193195526882625876611379546131546922042484616863702767031614691242524346954725656234521213693652834232878251850305945497307249062315520043517174939363965471602903234765629229350064325962072505995885756579225550134030777298767463406262486108977319376426678424703019533784080543557833385637556785384397963829138184471954406545248851088926947637476391019235396779674459645810840184471738195348147999068884964006563072277954424434905706224584884028702532205826631377057397171591769253473829405822081619809802907551231487069415134160329708879366893690924819393353606504980850379487201535456227144740691895896961596991982550645886908008705989262385546146877673464441233379584550199128590040043131131749493935584368926249239750209018600581523382581014889689379289908557744847224726992478294231173154163718413647088953721075397084226953458488092040957176153656250250995972529517978504749950653096855714704643606743841180589267480193072726612952485246938002357412983297287285504455495153147458766645365620527850784890350700557862852363626094595285968901309062768511546791806942552961432721911231307052999535262995023074736488082623049723948816895549597539874101400623317157968694957399415927155761536193913007142546332382472170926084616216046067709390425094403943895922869073934111698417185845901222554492302357191303501665357027887382389209430857915604687781501644057239689761492108704550915590692522797173821975446001260454977482639587558931829083855746921048028317276849134108811252462133762733619130461521995145791338948791324122738886511593468640143331485525300968455100409408509536233003208391679120709195851205042235072788103272539810439029770479367113834970322058226084593421940769260402276331340027440677155349116514012579809113991023105767805740300563552937541503383742221815677546156053697822557157692615282775251350531382674017084974707934091093490646240975380025606775210046543243182295917639611997947244612037821565257294745689333004322054705621174414747091416866354141700599264925630409817416944844407334442261034279313664469949998827367853973259975231396259449941765058857045316506534323959807028418712413931497620619278770893040495109430237225536785597156927873059912184051626245192218521752550350121166990670534783821031934260421374844194030386953570550970200649938728892311800874044330495057031283695620579544278415771662279312397246510147447993540999708294883085679072303283857794443081868256135616726135772631735696978613158752347283094921328817056881654498559774457723656457741488496654016075130861708945385891796917642542626286709695678518162648240774435917054151415369450565992503840564391088381896733557065209984529532547274429995632394073256443300027436781330073630239755997975454275302857466667815052887053992519396239353175589963304711107981616614860785049088218153420410853589939574497503987016631719189195566640867962323681871501726829383943110502245117984552414971491518977038500647734653340663002632618013602035865043974222078714333071236559686961710356196141144507551952404208070402625818853660725202282940545789197272084306518255370017155422635385140996239091192030947575427551790400678533836618403128771263006730523353563486507963292488691851424086718018297029682445331089529208255991039878301988710533253189036079129122893638297554183619679211539797992208390549924300731737109197562515254249977662479187248164008290659994357807011096539451484831792062227404848535166830297447461978996028024459865093176158123137454628932696144065910050965363054864616516588510969642612757519289336644012934040762400693133339254931771737849721602931325542923063001717209781509143374239078126557918145436847546259674795004285978370296122814871896448448137256149976124086819794940589931157287000442081685351953182915720484572158309304403500743030594813683523044434359510814969498101543919719503568166959329285422814524899074802937107449670391860790516363902538136820812836714048994317734175748123234251393625617733648593301404021732482895728347700946167264888533466661691301795145430243858128673646082930760153818711596071966328174314969832029220433909943525186511165956559603567432863457098428155060272053829753602366868522231973537973891874987557796491874087652960550300930672818492266159161028238021042249083388970215693273923594864213738877822542438313923443725590463691394585358844361260424654152087035134676481561232305184541888176261916946936399056553189921707916064466737077082017198850485778600317776248094680814871911938906717801501314158913005501579064707795199840125605487197586793786720541229594876168760966323206571975679319126749125382089473829566317213704732108798343444135706194522228061029850062246864517941248129234863886040075299899344722255733586719049839059077606919387685773278405225749406535721330990509656382733196007479500592235567502661798060014700075966260391406295289117626424839042711179932844215649211100365534904688271515556226419131651145932292214357322775712846974521441604365271759776953101179973767427557025302421167412314463687449941375118543153388425776760321439148610079585436261901855008678642314019901832291500830141746784596176225040561168915797566459186658516880528922833018694594684377726126019267277369485080264565954747711424657677482141307886103475714430706653113198512233019559057124747850840273839404991552728653168771976868095989714109765196397307150301324682408463788086093445417810526133799607578416692030393568786455174273797681792028148999363785783032319498275581631067062903145075357269432349662430515070992882916207312637799985743698205908863678438770349576126588208056675592534992639102609922891902737152397315435066029591091323329524851457559633454772071265558930202229150647705132910739386976901311084103629352410847320078796788631074051114819699803697611429886975485472677551865542125638217928457487914296568756469735702999205390270859538428287013144534831785739721775731679334898252425146590879410761596387656884843621184550524008763349556102311529604303821143497686425414126675473022116839686321475473402894166990617567337256429978109749706712730997937841035518467271223025225237870451539183008902202050751672893052187735812869835502576974737382432076779254708033511450657279809887613670966792575646013908324938975539366132882383055578532133121089293190146381103007980775690567260638929745312162092719950790703187921138793773341909691641576705213180085880950507321697642088596552326977676481885814771534590189071739331930031619166279781123669883452231799237560873750069753970008696673348012044636838099981589553508064551113677561342915590129254602717068945951582384944327916559874662546352441127798395147743340204011492824996933532131111042378629604915187391352629596836929799026986499188445143597023896791878712477978951189897100865802399371625564298891867327425047877487892137680554764175300848393978185445145701975889700444517772220342958688927252607631998958195667701658373344778530005683058907945418556599229010437784392758931607378103854643902275208666244830467368212741109185695859285462660395345628008851850922186993135935167155065330195112202693619028817814598424971184571318451511114110900252028074203387734842204752207797949593409388788851078507681740100595847772065980388351468207924576116192106305450387527035827659776727954861538627184222133775551955562596171478411884968760757571681321944852637085598528242609252761724429378124690158557265382207821797115402875336983877124757672250147348605709764041875691166487194704117762476706519223337554214367418360746980869280673904334299203021668087922491632220785485516450037334094980992729469492996691349172398491907982926399709622074946949947004537156814672696221580290686298784666134223709766211461117505915604804271677465997403158932659958632527882825647864889531877181310509290926481337292738036125774379606723346930367819639225289613399660859509948956252862073665832749106843827445814708511814788952656796404109767356934258772062364082808790146390797730634376501418899829326314882799973529248008476992242045792725714023614306838049479106742478070069382816493648646055365530552752236925047996888162790229243695078467752766011579294467552857393676025235422534823464314986252638571951661693780673758654545022327050510658962987176330198772022757011986345986814779880956346425579532165402954296955092084728284587281611327638874693099215416609143277273407519757576427435905652221228104417288735337273573350050948758670011864856993233044404250638651833636130235673362384970590119022024930593721634207952311559677059812269475733312884295685645019507341526494555092069452485059213495654083249231732015436550174051836246385864937108899800897751503920440796974387738705470701500279087526170738863586618754881634146185793328903982021371500769357197134546215351909034241625055402113231362025810555119291880655786411928104740695206373255251201814876467221547156647317734266517574900469386933278835930954723454099027184003926150262143607152821641618628316528570684710699379391207565482024495599143032657741041303540864491414455669222512308509503515637015371914834042923229419411137087969952917098074478133398485420536661605737997766680164400367762478528119144895322820439993201210526155476455815260181435135075518260906636829878896544490005148492348896087707547409540825709220880821897896749250964910517609298125366600254037664192575167444022118356021530649298682528184242700464244712628935625884719676150392663252705028054606801456875087034615726373192161545521564471324846571111241132493363500839710339357209633506291356543099282751667619819634407135645518098123121784471703119375226293364918856353951952332765499979930791762563232239686128081922800557463444236126512794242892122354658321197498126912657526222538390161325681901612151004934226013800547466919096087789318980348277692713983720562463290576984278416919032508789375961683496691241579839500221253823140772269086151166225933322831348459429660547717252297040883681943493872568894531212339073619961225293032353280790403275987848527040277646314752883427755321065990749744631129791972457753278278078890077236262774323236556146955945812142497286223104009632149345554387027416720817155997366513197825759573343567447723738080313154523493921011572101676223760851057539071874114183951950820182328262909368115648646260622936344442188216657027917341452027804231741805537825506674438729435649785336507244038301303297079013275707449597713844479074801253959477076725260065360038773766032286723399872664908196716824376991570813000397629783431800513561107376952638557087393804116017361127140767386421258946737815234083583761457824028640626836409196077305622002163508531225182946189085959432131431054472128054333564693136650329911233260049724285606204251242763584941531069040234166924098052864145881864454069264968023725643615249066583741378374564985219891016380917276461388744690127630504694620355715016937350806504945976462271466396589531257030641779888111294684672736882587105777281639804355747530023073435493889788551498933383052115463503849251138516380889509345499531881730737680681615243224456001703440205145965816205032708695179068947876197837817032373586231486654923496210252097243483228578564066944285856047176619033259713227085037341402297543569977463571434493910766437473288451575702497065898084665060764776899644331715772195391947317281558930461707499732687805076122894220390612870997608727173781301378869632756066836588493223817688558800722396877946546343691674917131810159040009054207390653218920222022218332553127862844372584959754765002184972306076442506150937286353653331796593961976440856413479718729305793247383430809596496990641547011185555547193172844848349861668411776739367699189238879829835843521454376215010363729343028073705396410782062185316733645666499149710038889648940803465765156690334280898374792175577475262360602760970883177047648549556108749414645068478380629981717612448810696236904523482189375494206311233344305687923391253419062844198233050073055302993084402539721562167994917848162652269788216419758506063639995305377369451770029977734688110089197397382162808052436010759527322386063339501477674782913446460884171079415456053926273887253157320852310265245049405138521970308849731188102240685540592141376894299371692952421794286177375373755822337858662296666179081178280640605572664185848437892005950241174952184891773687754209005563141706708031136525233879890697738537090016364661002378113057060359965747669936750194250438664820064435076388640032723613191241913386629629955716816991508668089731445349956485477558410356957907256514997741359014358591705853996575681275375376585703900395040808617245640930855967354592023803432703610585631421752575344176847154584509401750020138325793439401154887816003459077774066544989214043090138342724565196768884709993900958279495174269877196182045588706168812586175926396652265063919710748297150994885325602573711308764001778494824972155048743763627674287974864474249669526422912053295281479838986568860099131530571705748635116975591973506086566427470694900408912324588734237732045646061385382395595736480545240649289083337122527870469384251749816436598405815949141071671519078712076199257104753476060845923570892785438972127385740962113614839099483532958475353064125793468725795006624152865473824219362008202680399855804872391711235363354827362558701101961283907730657865185872698941390129668022999983673044113263242962255689667350865539104488376266090346985276318659576744149949617592133429537536525556245791846156936571785497262790210475970794550207439492705844513123804669030428566900595137433453264338989913898389381090396725862778754086424311765705047304229840759448778683719855824246907371646420933923222163404835187669730743737922707217880556457746373293553597119384274916259059623091668526294566592903085416124492343101452703977655804311024045243431604549096543939971816475643594435526321615163881581269091296979362054751779533517518507095151106089397933472261205365182858211204460635600575061712192165278667542047251210073457806764352097903563177286842667773776178453012507320661455950657308169449958369898505594226130211882328768131819405036253565404460570956852341099656337777068160973524218863397722653676600575730067405697004121250475745018101270715865794384588145260939175458536283361191885978574673406972356503828868603328528861627339526485014335497315838682142232629857903702393542277045057353139750576419606495979810734535680288558547916849549479705962715380245520562800340404909499279431999758247400425668373916822887221049510974686114099011879572463063200587509105837913949003271792789990185776533233619910415576122985418237059316325429457418853859868630375114545498629319530338049685016219005489829090091303147806992410349405831102189325674118521254754897913635418087526311568122550716676622635256109243562015431111651982844417379195463912034927179029513026842370992426417527983782208224845422862785499218664830702244963089327282696234929223006409570629256944150999146817186027946346122262573799908916786887639858376994393164757887863689989498495458298279272969093106314800075581058211879328748756485480124402328814693934703470052209287910437837098610406761762960624839152446457466302198547780569870772543712365370911270375486267979392636646060659283200620645675471352933436077809628925030249804894707589164996308481430231206752072750075693992600990343274030991913135274511288905881264340347552049712472465198255827550644729750246051580281222407686375629332351358338414413696864130562907831111586700639256911242556762698233462720240022722357833022670071732460105564571452990819263473303161443721395036729279982857815070731938196266226415958201912709642281959926014467378829457046866979134789248464319756366135025595432654277127383014685532921506159711694872497837743517974458640484960337461494533903424111642409507348986635083296086721695032948741989639466381389307200789978722293157944923836725049689432805838951892241731718302564868671543029048647519080543476919209957911206022725003176368493764686427946680617304536761122513763775032425351147576507704205805929723235219084214414697269962539774331210918827598989992482036703131406095761389500399304113244305248190758146471856974843221411921991316385854160473795245455155874704137844576695936205878034757907312590940992944926610658823089435428195973043141908871550522105321411788241093931075710016276542383370351537987274032819721809697595053245836984739227297837212629896097578037619117604160093307785284320799787304917624445826925840610200457999478753678901876176414972658455729365346619349658652889793406016701925244875956969722303124096166362944160959480897785237321903289133518766188511238641117866443935161985625661027348195805980631694459409840246538105831390054316586715342983722533087843386005201062570507992529894918657728894323064365459041582191035814362437980930451102600549408341968326331823853117067883696572902356453278625167840825180551917061174086793521976003752024939452825882656651059508703920199251286519630907720224703651802586464573924547238724089663370732813663424732913862243335663920054156738649760133174119966850773373515851015518926873168487011252438721927780117473677593331452328108339523236363011604396486450646480605251016828235498085067226443998184457867769417968075179474544233912535185336357655757765766359329902425128235690997028243241550944771208842506538570924633669637152310298322722687448504324734954663151602971768718843835030759862742656745517141410403510055455707085228611124217017655672355348035715893967796258984139679424517057689460992709133669624457646423931806512873939071409919646250284493691534241727208389509406823427324748307919712814858014796731393601607871307010114526377550893626838819169143129265791814567090914055639428374426309775445007151351381407622663106724407461914789601761773581199521732051249658935995737369596134077242916310617223220269435166625447205998027782039292639064242921505792421575825029977831468640985307990404422618480215798568840723739920817006991790071988047665431732560513436005149339837455263947495870762625882527537517619920885096719744989817200616830303823588231460272082723982794276349395701655349867660629626419099222924558475934476786221513377919316253282254443424038221129112971316523014755954259821996389152754614875354521706579377125643154225868708106028659337208356253392306599017793340915003355075024360057981067172696311832749006947059687303053361462174979871623121715458408989534118248877043246260088744301425755382672769158923934324189075655105332552224688227952005326765568519735990054983789764120711834455742734689528365898428889863266397788346849663427261614304302063117891491092534106695584142355449055236083034393377483935490699357350623034163195594083282606120894233435753952714011013649947916223449523451279170487823926988746754851841329921458561247006913984229225402309923662090058557277743877406037714486898733994894789477401626583418643664522461717058107733992240467071984199056929855996620897550371475683354545080566652894876650068995227176264243790301437951490440634885087038721782247794273008294135024499667269404704530855031455549601515947361211363614617728820214451724309504643750404208736799611364094084380079338262907517203285897013881841285273987685512488731417943869684159295922154920436592146836334052164506311440114877305547405419326926496469767336061955831784151069553854274209621311443610430607262075527555723218451161542769574466550778938144082390823834788394501329831630127994153517399593274535826476228220872779317467847057508338674564688697836105168536519097137731824208152898312039670837569652931191768642826241728509453534940206112004184568274377309067890317509960977140252172811892047980891406068915490084449689676497292923009495850331731540049293078566338284731229498838802881746568655229972635068089729477644866091907388382308319772157333267215887120817275230633516670779785685940898188594327701117366066460440153994233918761080162140143828587903092645248128938358534034416624433147078233928624870401939980454301198857956209242021300390069543554517192749889825239186907556704204367546481394030689972113892384978598599759815864863713340399473553238363063391857054236380855320509735033155057744730930216870023878186820986044256544947495644370016996540898010533123383664617085860258056033951609748079438233112138658064221993009677850631345678805412164599908226106347171194930635341237364631716322646648450224275609106075391991338451155172491336824358886215280282540014600884530873749307780865755792126685925827146819462605429683224618763467762332476686225884182074916202315473587910838769477295637460421539499564707832820609878495552566290761818336451160402830754692020404968847477002616693077742314483812581083192225895111577854960900223594416716887626841529504985709793910126425704078332217233582094805953569855172874911936037103433581794041337647647420564383429047502873384424510571381068656463002992557213470700020407576729140698623564425315291116969881056271659142922161393499499498538452362006228358907672070695485016573355937759468512511637114069778430948732487717260171459896596369560019057456055836097388544947813195534573671998129851932231626354826765790115348259977075801397034258580507867411166605288740086469449117368361544285656088201511635664396185793501626658580555396725910260928110595121330278480128402801154772990689028578445868558748451017107524717091708302069346315184441304322589024616805025382742042637770835727876461484937510707698454622183930707010969654183000019288413981950057530651358335152926239367084887586933861605690562042973465174776647193188951270843510335673046579208696209471556522213762849937784645632192460662437718943565612681222494197994890815603445233073189557199027451162830640275388627296090479250816858114910749084259136400137373096476943756142922341846504382774757307801750347029587061932725095119612524286639203685531346873519110562243830429488149164961699038650055373471517166655638570644626274510079924646138194060858453786259959759331218299316411206687206303774138583710439467836702645618385010256574397343532307053332547132153978003919797021036401330311068861002098215331440541289306057092610892957572704205685658768927133384718171508192508216684108348927574664408191956494242531123477999734480512174165638795635947745425169755394720052726218928593983545220952669070011606960243720789999942747243642460575184605088537709262561557735632327399506178109499110674948207996325910203061554201255847283413350971683769425914587281137115026812354996304747137806154711191645831783341418040479075108282114592049554477394229137744525518238536168987217792177551748507149605972780745985662733583547125802413519416235571793155636699227131830988450347029945329570673373201979145330164659105351211899177257474052934852923611833946958627267691575268368108753388151058642377051469028790974291057561097017469737448896921960519909475387678282567392342584817895644537436013025039258611159168385107015531186096082482585046891174155022645702586850396655151113865073631002918007095833026715704017390832416747336449163225834972181929981638619877552146082424182584978860776826420540451508142928610501356759417718752749509278426028980040413746282065451871022343853234350368701241557552308147162770551035122904421102186876626470782352202773295168752547939639089547293053735256276706136183803638672377426595782874445281016267327165903934933755204170013857519158089338922143148944938666325964625634969185660949883788578589265749501805577542820363077065194279294617740472157512187108177472278913025732880451883020523207373825988449738675407547777534981891923178337100787950937799732123147632179126866476345648299994939283198724720282649379275957113462102146717187477560681760827375897172437350742399723735470958786353640969207601718885378208058272088542897809375949295146131476030716537665468694561737428040152941772446560774011197861501420380625618734150686078962260690700918625966402656309944824373479704413813948340592970455829346259319053150136474430490344135584186570635188350643357304580523735549292904072638063785693625117544220430005293471245361768118827125653320328909360437216361796518453621293632862356376808858866108844068055441874027273215211043073424292631355812345138653444800442199134300465540748274168560284676273066091810927843950224031043300170508467817886635584963615433924367521067912886261144540926116817328772355117960512637319656129191272253341965248959799099700968821781313296269592893118324787043016515647886086261414763782700637945521372648024388238794866108812653523961104513164197579641838084884336561339517414975277663424512000066001181697813391697558698287432474180068786719233430698226696495918501042783619138533398839505493553843604729184441098726567454242131479199208798970347382454321685628276697402888185899729616611038958156080848857457534645176156870125553943403857645458782027781316050580715263498231702327070235600837583937223644290825749722690486925685954335150886002745925639626293922047799452855497418895477080403639812091349663927833398260744461054506544072417359053513811421965505799775440610995854645027668144077344041547157722418074947378347167826230197010918694320987082618256320655680519731448569153437342204716662816424841148453742429591444806344061697404440034707718381323997235048466317457203660701905884128833161574937642510757757692888260102455924821432916135446217316550841590130549113259306914637699349821712727937524057529639216139482140062479407384259102522891383549312873826682270527838818697077762365101666683982826986157946535947372063205208481259709924763911937377980794139650010321035950029824527839831596248568663548992350561591725694589932850997674454470809052189865473034952959833197819511120077308608539135630445053580422407759925376969546620413801156624745545654801824291878818172212520451623430287732449155063301751805794697124863136887683001719492526395199940237354938267195349015539117972019000693588475658438882435205879073321115715274773666848654681656746614606918692884456558399778935029001361604873371729140075771090638961872874034335987683122241316865808870298215135102643781752160862938538488163128378701194540379386251412529944408432278168330595219381702651426883675598144351812633555794889622511406541242033021997706534416191637414854753156595360609531011857050576169701063123281918396625931831071078643121807434134923030202473315307405779528905440799363925720151634589051750490660120917045562960200788160440423579528626709473381391453522156004727306913092974300856762533707466755548846858227225229631956847943702306725544832316504648550259309886142917307679966144715295640317082713836983355458869271019340612346454870785643586373723718210428391221289759935666945162217803987693216867379925986498191697595148138182171307965958055400028778487369698432341259564503353732990829527408041397932852727672926690039380489543409783119534475035559751161302462714764052726250904091785278928872399311980111110861291324729556682144642034850837097885625236512877308710488585723339986614749592163244237216961757244981890583641829228042900326493071769348082378135285543879595374858554637289286005604183269526190476299673567326080985646904872557204890458022600128645879465092707280512909167316069410080739378684615187908158685222867788466095136593450322023164850289025062534763936093567681391036490214655172889417340258532361570255996906862008636421584947326438702212235358995375352201131078194437200573840707310021600255452586350966665985076509341411949957488082103086140037836729782725771463013481165708915142782155068534703292074982998422301055622290889422132125760088968147989614237801369450026105078787323674566451607060352552129345581245982554345648125778779101891684229290088981814813048732721972856288348572795012402982308342872856223591822650353420500920006087196832070186861619665455438818856368294770991075539571184525016274190443274718489073120626227997592320365379711230104873969796686416974736287926935742549971511886652530058277660880319774923029441327121083228857048564900061599131208721115663148807394095088593817526994177073067483746165188738063984225737810226763236911629968919314037181206763240365443880599637545661261586995773130917466545165140724086034364777664746196261020087425180401780867670147283702224540947040412944666631261943785506150173530734923743542098124429074360542021328404199881748357007775897470550306998585164468791921787481695291311342328110383894221887022358565379842700047051459315727940809560344185055956043857793786452879783624718521581798148013424535653926213923129493732022431098609640752150190544490789633504341158308524868594000368482146889233262462894131198910801996968073233099567395144557515957490911463929579866815287837454859321112231675007489984458768224890145528223144348021727685727285639450350724547310353685174709827247211443517294432613847799874210774243662794901057361236933671827728966074743862763556142320241060981090376001330815753410755002794078109394724089392927326400257670473654885680259392313806184181837781839090881933226974315137438923841579156119215427546169580805537572247859139258786250389327634926481191229772366744328077737937295297500977337367424153010314818364238530505187124029415013621765643041027842533300931254436195546423769701801812661672546074060495554192568312871539569694730584545895602458069898804951726858595558034480444223601600940102371619172129151070197139838654773602190387450409752358255077952981156269015310654994365371170380430231719066510201156527043980644010976564622484837320393024726313768758765037705309593649153706924524984763738488445002003702635882000315891208843118464886128147235103549106449051660033164804450940704056623667406139021906075808608010403491045359449010647391518196518711503206408155300248849658806145724180828612853782265475616959437252048098941051980068899121917395700186908656551324647684906398433202610770310918016841607630070783095785143942668874515418351597234682828739503420014483834553432419300510592830219944123346314443903227559715591485357755310604657114769551615810932370984959440359342033492252211440102261937260219494888099791416674126231472006809918214058049743699035025892329216339563396289665402698799510259263390661319592133996513950067500327533647280516911446970492724818200127165358236942130930789336848597922653976802801453395999897557043118781385716037449142081103265184143466118065355374890695998605675273047849334107348662104151267247733858990184189432982469806781004554343244348760242083147768540802872520939666086949611788841919960330734826469176902759597167853118638186980091425478741501279283189247512882303449560021628463993495179908606891666426136297674563249012841778925894543056414614111670415782898661253690758957536149426086394125269212533884140173548559490557745703983176832957464424436316304428545041138560311427988059648935306937710097173532967632993229465195723244777260622887343606854514134952428867235022213443048952537961370972017980883778078341027619960070129709559212490400621773750173436375704578165703774222961869445696249255433101639253820765112248564114590246245077312558285595932669810811661235801426122996609730456767681973623142413833619141695157697112900898175233546358487473100725929804365676008423639839947221349917076721406693810563909997539039775688689972926957587651328007666770802308177136494843105578272786263911589829517375226062782732630464221858191308585810938388677757727584278698292270642664273006201866550569485891793772594721398792401185292508574792030145266172396623175097717598778846635053239311738169339066580400996211957698103684723214221683579587566073054710646979424517723812952881204949731878910801956566066961381249339217039169560980802684460901213152274311337034486429896974973938550184037411320831749695269744240037546833801686970105551952867430064400833279221890038446410904012229448767866591206346627019163197826558711557435050675117744012369500104292231878968634227173482005103208364075382582163926124006627431234538089528262646589283761572464217459431654659672724095573065485142649975047370358916868950775766675746324519553635016308335439465652657050387701943122212710581051763125404721720211497639925369024346898692191310136832949723592636410384777147172393336214325089757304940765547341184115485627461127837473538163681330910124443300471775830815121592158296252229454128207422311594833526754288025747580355178734829433807198549731474011063747815800158116993591105044135857886399871514477946084002008330664345005595194565931597941087855730251697394276225005080033479821573259873121554331009477295282084884547811998681348150777757949715713885725438870092207712361443741792521433850317723640853026073591194074442595079371671932213369674889188977403427400367937910349284762919133824935440304868296409022142652763695009305662287137533143380781670176444578773685136849783757541192301515501950495016021045977545700215598295461392997876756256794193901690715657254907364331996222248019815074823971548982068690000683846057870005250599924435970658831956101262651190424114347099597682616924330575856811667122118037840036358760728759843535577472507550061694261184132426114097339340411979568866220798253183937675673447256948434305445140487031421893345010288111186855135756830993619718513601681273504425982197435821308997959224241804116273015723256355161159713443788400751382676646304147595753289480782525889174108520864407926503003961814060467038328418373963349890842001683987331430479681337758589072087726151434641403130530565022020675971448796058367027351823693028957178032991839632887984860082174722080207144442873682754971184355000158930036667492494363524038171458355440538127548265283632311245019912731239701360626560196450177425647906690776475914317136640087375586902790498326231220798973591235187323427772177868713796568017127043297779339894734214560019333923159327604563495294090310377966152050313150511682853759741717120485323541019561155924078164110972958095340298562872032557126676154825429276850703004606871380223154588901628114252394177246486784631726454411768470127109752217917975189538404958952426574490472407032660993746335979127029497044067294929702762332951370493291279322627756247701193265724560809413268644471005797031643143340478408928749212895380424359232513031388875338898947931274752165658250555956524610566437275105788933192982131224183666756895302147282936696814152876053770533616360558269980851809937076228870218298159209673234766282568140399453936024008830761124028749917596846138604872991596307115078031625805876908011122397562880862157720869651487461683426370972737344625439744723188799399817551249777692367277247565319691726116451622978651185607878069705610756195833633447417919330698749524341321142209816617257829330230469846952533080648561058022789843562930850908837252217686705358129895780743437625598964482234321856536320920206908243278045497851562005595245845146559408661138341344134867951634458911410310881408816984167567623081792050659717010403500857295708185893836765575422148584835751040207540291680725329968319193020763336427574808932909089432257303205802077581837921331981334898060015990710627240442104964842612339315798604702479585920373767953458652038346760461173254270865020870318513332968351221339753239528432764719365540674353604992524630092992681457130304914470614988236639922418938032599166817137901902548041244639150721947590821750404298140531349719166185474096995026551622357444181996102939650099643978635345528537108455114373669104553144262848898468490073917780693443126720237561411879513743588716261942101594285885712057633867366131653332721780607305084847247723067848064804745103286147181956768903502461493346296581562244908637319975165446622002690341757618237064918831818163334507947864964906979559017849687995664942730336595628453207199490770359102952008813446338840636631113650746756428435047679828785897589965944671625837549760565253888257763919759292864329677562042605191639997125744705869026596577293968222669276338005251899253465574706072382541706242917149494825476735328830839877944958574540623403815978857861266061550995574382910475348472750780360640128994306534568085323006845891753425949718557021256400781965035641047638849169644175656805682149237661134574299923430910315960901386401869630396719627845006333178065346850946532963447186126055287895987320685724125541314481976920850071007410339376274928746002056729234670664926273143405627583646333135075086824338871562249967981409731585438183138859812631032265305051493748702154668059792285561139636323332404897749826188045629245964554081316912395776969069482384443637409330190012167626626658382720073869738613544165883987002096164116546928406247841908363783899513814064550766585948094657238820366134056188031999589133087241558682159328862958925805260562277055027500057078821655140171986126314635418969566988462040344030646727379392470570808797216940046499634635055076363855027895641403019068817563498346868657642358233931630408805752465971705064487269839234569103022854746797442105141730548297862785460984874825087255140895399693449222409751633133906014479665265828099425251874656133595793650676631784042039720032992708492386016049400838859104779122913065471700892934349947002719219914651580039624467407199848574845753935239061300788024287068597446157321801641451356285651862470070430544347662974994502279509748133296114895633875492255270001045009058851852013346233443729128141575006842097494643275573373673885899217760010936661800570277187608195692132754775858399820423572806754756141898116405541430566939733043094995512476063662403358890705856792135085943325918638708330421524733172400034507237180875704613071170573879578401029310549369672541058485820762831837350454993340089636725919569375074815794977579447743692514808416007714794729167247825962227775295659123487651090865484881999759810293717619560501609528949030251115569663798453676965469288863351569667709992735386695732492599842338610594696076264045434780257737335270629358975229589990162687762672167206479956155598821468868712311932455601198267465584402732676574534656084478196591087703987953418295923447903017830884246224886232122663610699006935764989468567999913464665846280070816388942304945891492879625940867237724940883418867408153611211612561938502584309769902928271194816898228790502632692391947296650373446066724155039536486422184238728959324759437292467421717668911873220841527732191139190554529396160150352530439512720879599324918505361165978114483813706373598183949943723055399086421712106743072064589687226475188329513779686465217985147128661050952364998337070623863242377945099429877771634450882097479023762187794971719512209354051236091203007646097179460069116122720210491242588725231518028012727679905676471320636140069316450562798592626863691514737805666099802731962932223449971237769871282723869625951649836095384455053159520643670168741983611355823099233585339455593758049036075024096080226792944414319467062287947716444674747840542128583207008862342828355708974675284652844041047612981547798592668762999821209725257309287846793165126525313144670261938945324349275068056040022814640139693648403417396337390327241737324005854642202272806170486025276027204831884343725841290806749873785040008905008065253832604449575502739901304453827939271705691431122086185671584740169989805054338193058645389289358333024437999058279601296419884548876399284329538381175937181478736085512376725413502527920538547416563220445240770449891266077137238812238158508695368864885821078754944666357166869507620284739565560024395272220661860245728571204701127656213889842170581855537352423034501752004898933240029856160892990760830250575995844298972722978899779618674819300993772206720576165241044983131682844349769300321784727143380145729762271515205213854712883186820209468706134800402712361475394509444887247050534471755908840015874224417895104824163256601982322819310019415800611584468997422377938314255898269401599264461759240545624444394307877816357987952338138740852190997087833710140809522870482787410174033702902517225391068778421010703758402749584648153873015307162863824788291747698314792516545933137037031855667342072080790172514173320037912460409191770997124307124921835858427226135513368930053357892566612095432582141845626277289588795821213258821905113699001767049126155243205890048819433405176485106491100657114945134592362810037163352003455238233754311995155788064377246807927674419948921549234484470141734215774720002845698129922181169902363071051358774805020063866290030274901648779244708579616469031355682497963669989341765253504237949395936367582845056889513929631240887163961808803817761080492876612793558276428444825257823788656330352420775260983316455246178903089569602229662633508896245908888249114064807925223650296233432423101898827747135550298929516432654896734724135542694635827259152845122877013145481686145358684973744607159510970733268563073360981852673360357125911996434222433796114414431416912481825357964441886427782327398380603681678530298916473281258671002805393625508131981277594855472030952048691165009272110273948947771013611689007352919496621981423077367726909368451932901366858946658781042508899410512378860982108394622102626596949313022794050230540804187201721840348011192189100699664911908416026227661314082197877501620374492605836417143634673829992547659303862227700934130516597479708083046713817105830043484419731582780868274651269059889700722199428176101935951424058340209906658924316163485469617742326698163069805147422166374580541833437692653093846021855059109776138398093466241563310705806806050743083965593676679958540569602947233636909049414283077740912468116309617388588602436505803331379029906698903214427317283792273875175116977139638606083519739622657858437890078215664622377563463033787601611540251390331101141011732814066828471371132512605598782080440206114060448182762865441822845472666345415904847070346156251357925106155055760879822134767293170412281883863506554236606417781512983886914068808932817505711772309236773494333703257469934642484126126404346949194108574535198225349033268697521135385624728179938730906282434823130181811827664918359525084834889591840572814194013975552091362969736647510867075788878751717051967255255380518388169823140281849347768627084844079468762199696416612498176921845872244828983220978056735645568971879856079282471352811654701721826568976965618232398187841738810620000476017245428275201338544092254012375643310444480255673726029196532089681379788648172568111962406589090185082753472487888912515189671207412592219340368830482857592824393667277907280683672415896532845824199130265520320804644762316971743011428235102170241831120924249236288978931327418100447841791678282934332336210866537626714086861722723829683921037332152048960544565634078465775550949663575317639015726505319229634562481868506926575770506948244437098215134003095007738341378585675637216923865588712981490737019509442191593525873400278987169044649954073549059532353109138214995405752890471853486171360800661715768995319408354471543962827986016363217194386581250678369768431816707121166954707131503487888244875831709718859116182573490238377875145342235118163860562161452554652535131398846301905195441583699186083123986995448074962059829581690479524052314543966969048910500118330453343246706765735842477463820971285598755265616066585333169049293336970658924488645672000515262750172920252780984208727348389870003102149538552607732332005058344516653012405287064596523264227500190389036235231679841840990336052052062274085687228787702436137160485901848455660295604859659386359851158064487940400777447729678020284566100930499573893889252784911481052775347569678622690397365530452957668649581813649346714459569920959858900849675221793411081605097993693993879652239996739510238201713242522394805682235170225027354599107243966555650505493875092592861242271762973863524336953488753337028798579238310749320170836244490727078956007444985505170271213922127021651631143695893975429327455246236499232017897368591860121023340680004323507228477514643810404342659556834768943875654105959304687337749042486345754634316661630540815803435502382724715068148135771091621221336159868185621387832680398979132521307214812815401582824897139820394668019401030472036253929509343011205565741116337878600348255359259181194645764095264501664869363522573471628185172966781361725872016198510698354103577792797102715389828704519774840160709026207791307283708315315631581851984793967289440368423050606316824764057851285895582664618422535764517542309309799333608344280925786433885770798933910631396240320157877656072052524559804425081533894635805788344608713352235575963078281217566705278074968172542011988536532546138727779616088398768982094196481237861143592226665436659305064163904113234140907008076005072107383654865190718068154957213573641253068442024630319412035799708900791598470345776537354439063833241972351557875228897597495712497810580924942270886480230787398941770881254349402271731868127150162050671612913205519127884858803326464615190481365212041908190778168711775969360911498573993636145460699179749462859171901439477786831765573061054278827894144608495368094154500409738877986213213757173053184702017012013295451167556799246236833462415266762551211931819707919826280897652911167236170893530073557431542277572100872713737726240423659126354246363900464812862735919698331875176369985447279319424640639530993710709791134209076055154981282484528283987234875565295915131422928228072154549871079743493837812909537612783047645479897409009347667066755076799475640275428575445527213247583273344248729257686769522138727364599173639175595092804874407311802222186287122882667698375108736278184341980081382659109307767718522090006636375770161107549847709202032295675698706311850841025902160632625878306088179938069207233885612694649732347282117749458146845330504067814138195081090708589029797068916030356917786274784158436212711324059394905716629541765927001354953403868471823608936537077891241612860973872328058074758776302263551379517107010552611055525708122014598806584515769598616837712725472027448017393733093697368605417682213934808567446366563639625231706645490761329821504490416500548404794514572116777691875400237922168982551334420058599129827445346118119451509424535776402350176476577865285034661468412084666816300150324475221822311906873709135487576444012270622157341871512367819796338102624800647034195834177146695544051193289998683798175083037560956356720644446376619678085156473574836396642297423698098405962920624090931307740237350427831646626165229263053083047517583314986761735449954856219362610352554475604572751052209145215853822339717029818353147443571514033254621491287551620923153300539841693164304806753208220119981769693468816383770639113198895708597312851482783605447883291104264164207495329290193448080767292127244393298529575016710886042696090084156872177349031424518813431570600603605994911538191762822203976115450625015344055433928117654834199978811474164574685092508591557418567370971363295155328302651104053433109835263787568000987006326330371718092022809184937814392011240428096399730966595158724472897634333181884035636321715493658333430279237275210929916204915954370042432426705102339808518590727483547707755384574979202757357342592201687944858179362506882364359670275296196586480397676280957883958321041814012197012806437376199623880675260446888350506709219856622655461758036544446754004623111934882048448921009864282088452179898932739465973022679221501474267506830670727414900911232438438479384402228783231656435420093520311364335466733402016641927724840864990861753208814055655703793575369716505437223831916892935075299531304618145899022082618810063743585870247390764618156553885662084575153737194646770057471510208368381271854134833952761608290151399254633471571999303987272641468885892210643558996928157699574128521760506007410164429768509454649419951577123227835668327350957832967801195001750377918733148488047355043363763628028295703200999104081021980656457958373060126235386497817503749356458903455886344547836442605882058154928779529140603379735524277235263748276871698628581874355554402943294676026925489009191998358322411565910988453421205319184313347042712268176699541061622154534360361875398555645411305329806265358049291806623440287961431391015538438667702982677524156863888648743527281568826240587760597064605042495179797154704734817538149043006900862798580348114157312925201912689742526896732929191087153413888109113989519690015857205230527905648626116783788248491895076395331649622795002055189021680447050073730971065771984048173602953677107317427384188693955528906673757070788003382527368136187252543176787957158885651009109477292147064109580056623074077957686658214420671160959106741743922917949717950333918626354502299725296667632689586555944195670736792202204564277340723499213653618202205944029760153142285363628334248453818979883898168803338449521470379935315124933930675939988770770395873961548495840878972178133618516351444134952088834124664543107917665370939176551110955505154568371701886833262608507885897956335440478075867554755225079867927133605318277281734323737816892858951382906786274319569996470280693271432784513890987386698895653875685797744221697857590781374915071828954459281417120598155219072386112896290010273599878083652733557300837084584443048007435337508651796292544250086353035578499385111346185286071464168968003650180726262909646425667712870529940366765790680360619395042808952457850932584610408801972828744351760366789146308929340176012667648882275309848381817228148314323358170794465569219438788157625180231618272622145263915860881424698129739542740415255605445886062187197839399484148855388157574409724751316182451126520028308182095980920035117905705778310786971550014596202011403560681758918932223392158767235674169888491667280893571684075356754494717800464182682789168048990585390686846203190046694174595258112094790920463819977560031917418061934179259592227515018164962454291621209506695640408081278230796565198128005137470190162457752262204844651070514431746221201398888626909174304143258388023449034170490103342018168378092602776647789642719574812477269999580555749891364431473080974014784859866654927560662034639564258613210137767810635639029172764514218646933155230601273300363471296624703423228271841466700819465651795556057095495326798674703378122116435906936810640180319630164179443714837202063742181995443243392238412538295447947960591377360323826776921592388494794884169241128671390829389967686187718719311420406780276996849570626585333018732370801684708033245739079061497236072111801343439481512512887818396022888630287449338831138848852759779653720224615819464288978050395965570494769944252955381267197855551440774972541907800052878641986617635710123453876849785694808009769050914081360962497300067099315712277391881855454182257325049575466959711141106891831821211906591076980867965451111165326115644266268180236536979316450696679201148787453622861382356370666508598625727732394663407338216357171870371647023713107513234562889804229288604413841007409431025393317368673988796082606928075467447292799450372861602684137894841019768103271822384321600574711754693592869228167123670655562938685028542924765217886878136537316055781466076015837452749084755112383211182107773358510226813922381615301584100100840734040147442777184066931263620374563264819095165831850417694041481114224842967679045723253756537472948370164976569150866187612159286774724532427502935940370611123055265946743536461937003263947078018073348953554529538048943777690108109054628554157025291949096872404740963137440010029247667315885928497894202720478674090336854908043873164729952122695311362326769649431575523511217106202388973025370188096795403409656837353566169932162230574253198910113914255931574300292733145919431303553870809042071066810941033611104295681661400496530109519328986017013967157448902703071839290921510537264445979080753546905806666464099997324685759508969419110480096750227256047276181321478395992802830970724188844280364310808324171484237969532774850732660089276708674639556902640688147995687110704465577648336078333577804457554628365768294674570835279905272866112813634664795236944375844627406758869889444131052544324644334025540013695632297901348274732460847477590475787602268458968081321332182069176671574184040478734048447210072293407006647853846950181185139506159591198284379408483702116608348013738846687771714678957799308253543597526581828894862969584907704148509625272035568631923527783709656970545074917060107783016880670217694344481550043778795036990469955459889683698565019528993060681717025316107406356508630684168680098279412532368098901525287170487843701498580793473269502218651713893610450214904808936498994125889918175306379261104629512086614067109743812771858286967050156023753007205393579890451653332246819780953845890596473781186107405840960023758876109934829304449494803051859731609501225095146328457388755939781349814064695131405401585158706283229732392975388884918731328721780904040575948819956428350060902073579592653201036623532206242380490310693335737812739482609990362740816171739161556280988055232215814907294611660196342155234929817782678649048575634035552411581375724908717335000643909781063022299170916769772442502493377083939976188384415374976114200501361362694271357663447958010312322324655965417641547857164562165178929482074238847014705992948976789202928018804411467769291768425166462716281773173249911743254867969509367477314599839307202072332357898953279852528832114122296832276800904077817683219329450968127956288506158624043596102458071001015800208593574904238794595709169890673736994868906364288661357318997568349738394122300411932367005230192198168370249963074353461551357863026498448457299358274034281789391179284470669547278837485129174858511886910683086919160282791621465055947585412483337058345128562737412717714500241578001055399545762876616726348334723141010517331971590286849623954991424359958044163930642514999352386137127416171747240787555721154755286848743657069000132837989414669601542140773757133609688832537736832332695574220599355824279677327721570774911061248487204176223017071088369084532601610132014608426177920070554056231101960336975168391280145666190516372663550928487922690239115777692825107978110153719803059115529555906208676992630933615795169067159158614195046166634693908349200385245071333927969131903215086708444798374059059362742069401338590949528743265473600667053021398249283384915564633249207568454715424787265304958331980419742121912815043633536010015087715086281906098916117028153369364828394029666851477559601969829486192830988630192647069606632990347418587753708668749404403871764874199473363023993159411453214683302894030854427017394811116383682595158207642030649885637348274987413347584621049839661725101416430213925293713688570967547403731837183759911424363179398992852809160813306056807320433937726177934568052804516654499659749826457765150193030536807436276249133482430785507809882829100648778848655051106452659656643799158937077131988243233076669572087186583532660570341511637125201128922430125614689405950125933783643072953382658056931805577368608261394748853251093421494778248370860600306364826234952356966046186702543361192105306178116547825811733330114993376115079392842681729409187202318923764111257878407708062239552776540154857627845103837917375617683826969190859841252903364971156721034984256846742737867576991020824830306491469172663536052175319879132543563518731354182243131561878391524432894222511330677023897119544514220814358921792600279918126908355519561855966416197082864111884184091523711694244896463559495361390096693521651204806113146561324727558952142323406387348347163458065489045052507303970233715362384862529200202629135495924665309483732273384737585375692749561620804593257588891978146568133939117956949664803575443428430329407990087021899936175364497949863747450314325809700132109339329904532660782972315502043413954772026967437889091275678571897439186821445123466973733574792288664105656395126717650100518880645283868241501314385598647583438689811138082411876486814800911021859419310563452650665124283844379663515192872393916057858338855939325802153545591069328839673120114373979605119883201723664400809840613909344405773336181593716790552867015503606364732396669796948126633489102779125791205214307988377858638124811207777614223530975344435243119726025677484599397430518406281803474092922095262353945443636450243960507172685877125889260276767836215617837018660795914755157233949342595329368254600502063917671660282043778865758357870976189761661814728305828120088152755164445961495529817486751390373195795078048986580555299143928877672337313464743637371932584605250291511187093706864966524981604391602005862967051324130326521581115570425825591618391529379965550592288711109648898038744121676846940825623164418362008476953824460653703353780341144878236453292051164616786842255609057147620246477678382637058178328224438393580592958312728175248931481829219010863223911299594800188184964943406522643176500554443853597352300425583073774681469185973003707466040296517984677444947824342476499596847400513275571636588012798175150160416148894609431602338896139277273890648319493383587389743650390896258991080149960507997869407475335921829444554788377215996184003264544280287129517428541304873502871230986127735788257419080250185429443042279728653378365644701015389259466623758896804877988518428504938046567025506337226180296879079965298095993749888749526782706386644174984372772221234733529998067416573502394027618655680182504609857600027061559369809053966190177464035617941715387288219821839768155755337032486665536805445800197234816758094752943990072749456073153212953138152345858028975825356681011224464888050573163414449606568166194370560553976943623598929281120652684707608570972292903193770289205256772963442482119809828080382537142607734269058817024366745210686835965366147280899406731267926070445195436995514028061433745335438644161198800679533523080936029035098601426573918785354439359366511137005282304378853697467270989743754657791918114803985273510260214523473108243754202524071962457156967629371353177393476774774625257062345608735994424490233390348292517906789611179860381153083028071369693968933702579199296716433326932510024711778684286626601321365107451408792225413562795306683626333691572891850220011069204497752666884717265413253124946670758753368267812324968975126981064450004159906974869177807920901497282222974793011255817170924100766766053675692121242955306583314259220153616932446607283668318865313510148485389734585399716714432116143332892966555456579476763697786884924036010939418137814148975603382889940509114982195308911174037907298066475706753007387241575484694477503975668582024676721997099141672972558966918799477356738244821102922042372476447080242253299618894541761710821747275208360158120832223600485225589771133942454189093940155764746087136487536039542832546004300618161637157380616832444037495605666880544371858304576831368761047549743345366997498681185558443539195516048990359767236812800456265935909793782343316524055663297882450860855833225088579391149360116524973798658485914903232426367158144112884260879325299903640714054791714427884718729775006661899421579331921892916522862488551140560887554511845132214334823905956413337043528586786519363319875031382097235920094125659353491832051222856042121613620073530019843401318524006168134266276238320558835740086335489647719728177581354964635194599011358569656036025460776406171025150861475367050823260322679052581140644700701510239980891106888255442456128653494353151926966539910026544191100632788597860846996579536077069460502906624222940404359218385930194422329520170919346985549731270603416488712169779527771056698079677938710164675869797121810471323392386404530794489970397338754479749509000668220026401813561569081389467450053694078729238446658150335765757577837633933072221026687632055031079830635761999283799839801919146698025087072130872708980274788628374945232923540535691043360496846223242050759838289363924890475764603246589963535884569423102585574520659994002672663040789374272168095609330005404926996262205758189042967456743799703761017210796160216710169773243831578937929709082018821190769178183617936861443788545227710043554631101615247451545139621266073173114614284186933759260321703488552519452421363973542238638797643656996176036893422414191328174510993915372044574736420438757321247882769297323381412172216601182063853013892082223939350976895368960342078511284102535771435947356495574630335409554106126649645779718633549509387508617841095662060551170188350142128427677893887457872859837654381253914513899063679230109588121920310546396809365886619555700524054761506087391627102635012938288676328428836794224207972049380471920915211201627400712787904045159944397939066927441311754996691927762442561021923952607369459575118300821035729290482317347315731265816030119664831718562659016090064342152307160577783238660332787212125505910310307527140357929660112462544687552073695360333617772753685548519073651102923488247891066240644821691742261569148989332774232213871765119897430908367430407101271292268179465371805839673632343615233838838157810346876259744865632341565476235178748792835383007192371488054392835583992948982777977934693879589219698190120744078343750170290506271272196912873058084321444605085103238542462890369432792470742007630566856424092525281142543996240072785154669454155932350342271647363000830403365717072148517861273070430768527155184783466379013820401829631884355644623585559195064305511822394252591337665796658700394459618862712265125242340900180778517654649117506286636051343678810165545099726032086899124419758005071257399307145487462079681074582751786289091492266511412989414210141724426686072049722676516683101776856427731129152908909704133557366825891139616896223024324737519829406111481237627548993031046367961107262860907259418559114474780233113282137474543335453892211610054028708360517532478935602108746129828073106997232353024486289245120485239149969349488083054092107177894493226065790585264415746546779324969514496020904047644983057351682469853387026392647904158341579021574163280110564576131356351907758943152905640287192453632204904055681752294624605546581686750985444576511572276262936893994272016705487526013681376786288925204099168231976433701229313407538018167995321972022291292305995989255915637795208936865404702546123320187393586738841703197746136027238907762344426151654148899992241317326007810574184356573133627208893105008134037175957473550010589587658086748552582461269778819268661712813174202704543933877302396938986288701983272938685570685221854918863228066893406181762989161213456380650682784718118548028032960726289033101535549508121175535093165782860755345301530450796810349197984684215465110800252817093397024174381654756495433153061251891959105991076752646631634942434951469720493242085407124848172430987806812959730399815534132855449859874422123102538980855799526609837151568740667299044298645214711244560805973612399564154976012429532048340546297202335747617383896673331303982840477299623503879158332147851604020953302005655452793121778009422192685568015397224094965658253900552443787863264326080152681348485546994860643386324143694655223298636090952708628414878707805225956639859802868347366739248922364016074725815588339550500591013720767931962968280137546846875728528064990685176661222407749760280693458139376905259633468462733189724168044516640419830431281721814228037033013896902102695177499937928598009139256835208507304731076291671627342985062270921764186557448276719615245205420113003564091064347391574993139890757034051606302393566513578882681237583607130449381782647472957161477622031775329972372261937577082643255933029022477961501902648238256301601689832915978994818709140699773764722079407437578074932085597268394174975478121301833715941719821348657654228191407962332217870898422764692527403522771532891665524780706718631818941836138232037441833545927110183081529295840359045139306468660801976457633992715855763017045058818150075756087478463064081338293486315713806960380250321338271512088248299426979040246237046638676915143981885374799148495098390948707998256360770029618305118079403016005167266954053650414054675452079924388650543119716173636541371407594452446632830716445525782525217964016311356157599398261569632190333553846910651352832180311013255130907944380656354908989565327906366904762264461140708032506343069095257823629997484309122727059382215078193322844311938378456329825894354494653669164632218585959441012522019830271499552872329690783563321016003515375640959321332296232285978072059645755067234118874601033396117303950473590622479864454038565314417132739362745755872770804004152598176975773875208942566080809071424096925289429787311668039277992589819667009592743018734369569786185105780560636144099268654746805975014114921993287402993235432730722288150125778691767209835996053132194321721677145596072479190471230611222350173308873608120709371646568923814894004737477927389398071413358320707548394242905502032159054478423923892879038351880239105632938814994668018354392750742374913803411674474220372882521813368327377924411521523241268073577667861280523956491840916707510849435655653066135474328929311238405619078046131764845488149296940936251535037110595877169750373241722579882513541796635075245186867509514044354623418224458311169044815740185154327167374987208307981389768813875620566090819447589837297975449167369895206459969949383986517604545009690679181512939087350971442832350659520575919551533729297699777708457713944827867920318828392951807016583716297955476558329544164079921898122707918303901873507442272453821141279140184183140056408628312659070929586324986435929260738482238942650687861759926628176499659405812422411682581947509394432003108895398181333458769056594888934186756897267596990119784603222138446895935418583243834465729324117890480906974911275262875505753138290887926010314189264297751707802768256337314852046293903275121545659335934048237508343678648957930747577641065771460379294716537271156337235082173325875066672644166866624631477931325871380822249218072995350800461810674726479162142986118861454825647124206132817448047469857874027637245130491128296737839834285868713134042904894774913255457083061777964767492054956450050652779950273313419704554279210474163881232855634176136399508509500463833470430316373427766708187391563554551344249029494978543074210213180236734365642190031762918011613914254320148180381931504516117817666481113399277615644368613921625555830674344133123298984139225234493067006133574459829699376362194022359541144666400149299781490984203566010989730306875567971994047408551873297018339638706435164377356040054543853803509167062429660613253594653811426624007902003108487133496205974818507299749750984654992606426777964012466602330460463510279370418034393066182216469515903509549542585884521967227135576360863984856958621391311878196990279775857941658308171117715911149520208417560357701722022339900287950944055584097645737082814137761841048514458002339539989557731044503222438322455921794732911053083782493179613329018567780052455135807549530906387471998720549990701402828554094313777988286946839053262025656203446697421798700896611290972252615785865545243767516802479235180558958815044076970608553784489324877834669031156003145331509682687020751601494561552352632859541607391897909488429246366750747242980737546119955934839907042991433641956208782870185434245232614015097914568206263434821997178345181174829749360626253798688362238361358752180365093421576012513883210656406929529020131553900570167013045609448632682304366971562099318374174874968403111181338868955351247615904903838825703643747055036918110681031923137603660484156202181363084346996249431003564986430447144180616412733320508912237523979697568904090082049048518983663972954560392515392273460571744123958851598411034618432687648563597446827118223778549849947861970996642524331129527357740561515277047048847958303607820309898120224071210624538035189824997826544173703564487178375706079286023668911006777216281467984545157983119039522371078878102749565953082450265397021648451277846568586257974358419644955448304269971357270550981132163667885170769661046133162077247644152425924191764478029170758599925956823409625079215708863157956957921322372212528697504543393481378257393378734050246534150886085268680042203943329942760543145956911666382493467847118004377095174198437880126199638568628448520161641610289120433284304058188866331234015105697392045702095228462074258444186011310551426110789572907032584531618834429105197530937759625392373200442889559055726459201672998812280663114224184208549985941998468431099493072135339527333657707712601611594014431459351077719564882574195977502619414038033681047051110682807080618461920053026561886053009331801728771268267736606917095846366690202428086318560923217640369314905983299519981940651676352564693593521027234620684748826276486473484883604827079441439275867227647365303979612175233521705449114165575082051884290513394610622197760506979540101218846778372030937307935350733061352546921815626340919569555557345611347651384615414695319116764833408112921571617949845517361931290270356537483978122416765485157998924789880873946125653145320009256725308876232518886419779068816057426486404626449707933113721464616340234119998468889076492784999879110466520428117845101111369450465360411476822480288894858918182647171165856598004668742934525376553463804195241766619086232432399064986323871795832246800383625710038045432915857176006322044689304950987707908862255951674238247559507208423276811808749191432790991831568002496669267690699112634930939887927568494520476968384973321226590972121487162045479941138444539915042707396114153284603509421185116812478772414610345786872481609653119565196669969718106101572984315787899688267474577192774208669974381146573566524635491082149646072216430466108037665939177268402617718396515874234313242578459276782890067735680287821954086210332268906803235556930734485146801649193868375877118102588875890370965907344756489023261506789948180028499644935965452979549704846064479277232655559259276547232177158101410057734652653989225608546912292823094529800969981580668076442090758758730455187429552380000339909210203266711581677311003024956297454790784541986908458414659670925083872424342873414289178734634112991148290175072920342603364370995514437860615226821642587717420371867985394527268364193235555161940000339125387889688206007584073119621018467881364961372232841581763358712920005504173936659864901746373962041609231759223785043603637713873476848861674033521055071696537730775811464443776187278167422401480685854168503166807901067302034502854746599785227273993431666461524720081216604046910827807723676230168458845157172023573139417293565795193476501051582354778607275763803441752423071122509396454038237025962050036612807481032440132881454704856473967994746833485993396180731009110234249841983954613973160601869755623425059222368051935812708299480246669217164084575658345745753147555402458322104815333301022639533198800470155978717940929409866066705869115649261200585571953575555271924208549692662725891619194729752892723581067238681678670770294170747254969825588331412090124483873228919637604939959044917331646602437956689028388815436006584842517826293399285965824199265289892435544012771948752249135909653650276814269100522041710133350332175481070223218692505979242753834579095663849868933367332571511267683353640857461439156910538901986078213343096876676723275327572621806646698231687751476898663666781402535665082002482128733901534980263309824309394975280186935884572364904843390790796183941412823396257869163073696866116668024522095888391382881458876220935939134299834506623375420846830200126943169387203847106072276815236251046327532200812379186677732096377760600859878255762090874028413387397842363917901230570832335462636323908816409223160569830847233449428339570655444827612407855168877472075991684310475939739098111820394999113488637773512745021455002247565940889548378570697919350227752309591453698727504280717630548612786153605413585471697279685131952548524572839959252328363948204301336366546842886716023016685224353885115932858512153599383013330674565906798009656422527162647021890798567353863172380596749443782092948894474575980743347041098208178932443858789140788861620994601725428398559445013720307095071186265355766177936545734140120130216864673831230549320405366389331270233652422336912664055010433103063928645626207835547233119419497393706981195306846925693922278301805290149061953084364134982708567428365232030622600745615882271379008127465150229450948657558670046232465511323995244202769053584268404143402710050835603498336898254680060808033112942068820629668074464342505107327358351008073778852619111619615958092065749818417612750953108964699384002295923872422898107909329803616076528174959092328431388561394582811431467044634282818912380536168379912144275250871485249384183030492665219543158124945893325649897726308197482019476007477410258409647736288814996638120000714347168179388639088309582282154901602959509420485142093000278948995549418925956865609843557176556350192481030515516340930960423311363238524809016864900596840246677591330726183675773144772233123397854008620678117309035060395993436616801314147744726100584845599325243945527840356770371917592180067726813207777046724708766243105741510361565103945052565434235136756050656409131620579547574180488834205713016673175779309825352819370269243050303814843101220350755958710560548748714436855519164779986151909489694748217516080495098859650721831178119363720386109427799914817748815168628086168140870583011654165677566928917107192275165286180895645441141119097755162944007328055151320002570231648745201830955486695714833856654478252012192255245127590785312167087523786175081764474722925572987691625302814037347396831570958877022943944254452521629886062304236414838736423835117096511087076686802678822571642118052557288690724272442813882752746956663043006453681267759678445436568605835569093224264689210655045718609095383629685062050998770006460999892808141875458376216653469761412795453178722120679522570553888092541469921941233324822510554231694139510847230627784271686819927456454123401106874320373912682231353331940857772341135456076385591621654890740901731946794043906806791883128474431395728768402518380065855617620711090408452726031697511547382032119024466656267952795323156726501379309901317266024443806266560625689585646525392157558383828417957426855397547535412492656398532858085040515065184364341783386900065245240036505785853161665094449404170492381761877524891737885825397981280507617383857401334532191095891537541650108922862383297934095300810433279516745021790890338602933892848573593907566290127446772619255019835662362288422686771740683000005909561036394159545591325976393285635580236273713002382061620620050312455861551755298514726156203706211920625628669507864608578606202028711264200761820065540834265357279265738364842206281475490378497605915447018523015022312459504076710193468506295135788937483873007378807545504321421518829490728888680407496255227032204440702054946313765296150949383323972459641837375271973361692573935905951220975667382712066239528315174391648047008321015034444150158064924593509008809939712019799212446493343619553256246734816272959767198211661114691504743715884713802443836617049399541686573051031246889018727770108510268707826167996825098979307567063412892152626179094260465309009671745240094795219502155659215705081343659896435798448559444364526164937441760668411826933277114233511976043071087403328900420906778454690088217127956229354408850507240438777833677553784719421758191668030739874229268736589802270641641161422221531061886993485634497312944835976509105052269708818520007845893541566274909868784501737059828333402932863622295261293948015768676639123802434563459853129365777326767422150816756405801827359544918434762179680760202827735975763225197587175807646610604213726978143112963116857523194130477428511840149458571621112348302290245036235354023672091191407645588399285816275475377668127375728134139388899132738673397386972215136617671086527984100371155757923755909392344631780860900877028596042864222735986920823986489471568532745004262570104150217573901341842214918505467422299310701063825574822426874308725081949120015860709331396509690138269066141996804903894990983560018832147365506254799486980444631835405188509777727628891860846127095198940542299458066749005015654626892532353081420087620601880536690582721842544638765121190179855182574641080393452035436845454523172125642922650649545194500570942711728183435801114296072186031664201208602223441735660596882818307503338260705663746047373649736958473565564069982658723808121914019002245384963701559052312301922667360375308769742552435026473751358959522950019985719865472494385715423668246956638811530280830812138563458776652100719392866768030566446817736611251988278505940630444899117268008822738260667314954198503977258991023229634617495084083071576367323747562845804046085093539911330966816418172573437695498667895953417456623191244151040899062779127330276290995340984761864318450205569787615291807027243065003581511362224715582966596967475529549882680019869303749642817490797522259012595210434461730339600270976983800073569190417427508508911775032366077379744798786838364960214844412675495380618896173946435350624045881249525509556275375804175670336345161077226014693030672768124464073918045812830043734406875613376736048114012802116436854343195392152013383213489654527858982423301459810979287481107010400950664187867046494404719344965552099074576307352373572489310442417559883125039439520967012248663114655719543230141975017798000376767582489288303181132529059256816707182001720850733917346986685919789907850685026626826444786472896852926674251699843236995974547383018777015942555419760441919991233165244687743256542006880823782205931559534315438203119106110116922680026230548310971538990384288740007969536428177072604291239019213788495133562046209532152280693785876347127036126142379966379974372784763280123225785664395933309453776743890241205932931297561939919319332849357798054378805098062350512918535901880489220465760574624180565197575742876649414717617572655536767919602114873306827799605386062419890023537263808017496418696977310307132874542357709463514664077421024564223357316466424255257507517155772732400201072029404602942483444928982460996200039669822504980361031075096345403917086961756269838127191271435394829412089954853213840654695547571460427559910449588237861011299807797190710035324015972868162420326147114964865059652497495944339885221341465174782016547392022622641306732326765135239943780235139761985698403647335727929922224835035384009043443255298872476516858479839974233341463308318460360560901335252722221457775539546276554803654321056099167402144156832692244874999542096714957653814273893804143315002835878684437309797798172997734746072052340484712538482314193463701594153666008633593041885639260402770546096425109952319760692334363848365798100024319082569491929450230021311331074840227291469624807580964455457590846981446543018074857051500767053316318286284359158374307968873250083011816500239653862978810431292487917589814675183568055612510742016931165054816100617566780707764091735515793877094065938265886291055633374547230638127347991424520820090098024799808015035732951967433594465079161229161080825187189825460606173406297217289595562769236686030535586469189677745882565014129172087850870658065015234450808371523666280101546063589442022962561362526608513617115518278931252591653822555779000012706326600884288085454066201631124583064473777421053165469974408291514333863353130554261639893441800382798006416614501408441758095598776711617026185810074734163299848884681000208304575382838701891970469356357102126662773471621048248576096367454664462725056253387499960525098422595756399443135328174420801570087149016768259918499727051166424013394512059505574841323019169425626278261737950487725241773846462032619645593626540031830766315982241401500774515440166846012659889595702808536972963525765222415236992629351247058891216789481148964071404741311255710506494234568425625716227812046162952115270012755410784090804422469086241305538918823374014023436910985379060012949895644614638910407920500455809033494664840614993053213856285562467226593618301328495923386818261713485505784038246311599492550278955661912734446114471975769089050723694429712728509165612265476240047660083700620363776696317442888314323364145650239162108993473251708598566989861743791108559528250695527142218053889807687988697809840223070436003760346387151559892270273426876834105127325546682864354413141965791948217085018751095017523697594040359351866845935568131939965529641090793846415947940939340708997164017997451092186103478932107689036042835032404649897202997875825932346006994720900442934114822742440043034253079938229660316562526825139786884853975078753912932313165610783524693441823624534499071525234889968109879736474747494887884727731172910550389573737848332119342520478292370020902738084761889970668763437787842389062902578656595242718760564486776721256740564617556034290941720581254594682852674436769104660432261936930112305642498790699744288571135896575419569221993662270802847588538575137789901560500597018945673853286506853900739448437546242557464650891443941175104987500311949857014808226376497620602802483972647990072123662262614933996745499671189675120371078950496698679166642782296573661816223463479497993160855792871082565656752685034723718650192132502118576854256459056057109585418420630409712162698899579472244729740092762868466383587333911360999906817696686499717453313361012363183504465566310015461625531206085709956236976530161890427997043028263193116282535618261880445440823799683076589509352088789748817217960588251516740424581038812783571816846777992974646594507653920826173005158973870577242345157291849794581767456381318332119996217604884093119785682954544516409715067264962931132905307606620788310101782817704095151139344923862625169726396561866776570908549984438120308304499680831990473432085442450227722524889390852997937863586326662813204788322144473795751209010679848797321678873335939324343730934728398706925591890781793090712068347228368911683851789839017834411954942548933249451704863535440326213200987782928721295205187382922780881434020868179553618277296240869286985985085753416904539376683418155737439988148498745508595986849971612896539926612586667722969218085318644616112665680648233637879726845108119761332525365966249256952759608858105325476579457081741575356980679864930584798738289102358561527076982346593555517162238476493551192858111201414215775196972281024072928619554837424990078180981930246161974173706898557231344035043222382745818644542434869985151733352130604343106498825869623912507304185854121599188187707801048551440311775762575088244324631278232282666256504711265314073514596903505097945199144892876270508823875165112795144472093494170157620151203286833613269854233314727233937383943047067638953999192221360245515666227264670516792851952884290282384802394771582550265181906759514840883889463417039875467932091028705072082012926697838574213109869269774822182530566221076713481754536768862833918888363278175385755158606400021051656325036886332741140770902423013332147222918348729135619084050993442484059465432973197020889345485182804891506656971806282459916163041570787501108340624943194545391145021324340001163681597956126274960837597506609238207469380155737169675119565586197187082021172889349183866898301037191378569120929445222129651952387985534824987046247235823385795001552287693327108106615877449855197919639596354032263906580102014668345844136051414203876288806458547587827258446907574863792890338074624101488779108783411626784985617054792859802807570552527436159329958061964243004761552844937394406455297794116313574315052897578623374092943254381556530061189573021986557270509917810072098135375429530394843268724409772425248407598525293447135502969597716966725521103534912972732663393302300073895656065730847522408178445602342617091615808513958833728071437003986456203931612794796142088900483677999726745091335626152226320633314158978447432412759033352830817639122324450000415324988077687652140911689517883878999559765560295890768147279601170929329359268255183487654565996975587203631042159680881023231646314454507016559846000839971590238175665518166436341790467869151731102242087900195334360408402086488043597886422639913823334019531095949611748139334787693897030701478148675914030419920942263364831612957430722372576528207940848377851286955859147757033340098558481439116588747076226508272946102185157333921650283344016384474109245937664264691274825396892007975079965001872708973463519516112167925802222740435663743679136475224584711255589082487051487355396382346975219666582637781443407619551290889321657698624315325393169453104727061822922300793623651250499276054926542775028727572202130276458300732027703765905527186958094074849949147703988763463726539524808279143524754618181666722828238515026547552633618802312572999273674160128828400416486377902087218293513471779060121571993713761306921867123890423900728206853459118016273032100346229296302818835260511694788085302825551572141592685778611750032342429066758167416415270719111477084188776963687233632493558958529490597208056561975581001243005669995852258604275308037859064159329121576071740557547806127239749949841155175758063642417218320759356395162645796867505706382403003076955379710864697663660937311220153028988940171538320488165221046607972041019155824399740556991775347356007403078087653467381905013024039965377182010536469452495343866908411033141025516631800499140971949815289274040404936444087743375124043640382362240102949166472916298806095458948193229041783044558955068132004676597593639602162818053608069563811657308257390549858563425902553470973424083228027421008684151662545360124611526084030190979370878369388468786795323419277617082121255403577734255043613250283235034895279689398866233212894195033973060936065665545621654644733444046844177409021017862199591034525198102358341641026263072055128673907886814606856377587357301590200662278353191454515907310077666131053325566128141136766395261236122213450523502842532308797729277507417645031048609576832054875449081230613467310583869069189754682171434336216466206071565125162096418403437461516147579790432582594772589463603869111787785187386509011438106162898219178356766353146752999030463500794714463408914176578937145130512026313220195300396053969075778785541717218763023480012053447334131270947525422759140803263209228522995638153198338898654367997435591179013408593722980285293484711243150156984356547822658841845314701638750567578522734697116638261906483755063701663787214763986562421737000142091433954555506955847172266989509917053792085675980483150629155962553559754867551905868809355150539193909631960681726758575314998511225876500531647046371228601357419471361347292507447225319345343176770719390926789024729167903113046047007150784114667352790728866047004974521482198794336431655326149099791427861130754660793058065040646642422612630537747647108565416250904739766991451595505827980453386535997973974402590493067024474655982749849385397834031972651964415820095362796835558897784810285193790375371516087273416009820142807517528758636707920715595688912470557984721310780884331303962992531789164366433207960417380760300438019779225548842699494999498814738050042726855152574394763234042370758856495147231960914297458429404102690523160910554734075839816173429140113345371839704194636106413365924424684343498666260926721914644536342494644579941214281512883102590046863188149725235777684642558766058333733756204124991733631280085795081627224270341970804698496893399388766931676108742497160016827050992896072444732748702865813839123177685007862653704911273880981956860704679709327461743488942283141582120024665510430660462937991099740106202572723982594220102856428444655102777214255586483254216934021181117097260664031974901153310542754800222353706575560571449184230920970300052634238443784316049253707266456187208442946360599330984446141644376939171597675465375339650222094838491841430919434190215452794650645073479303563446890976507114478566576856756158657226033420387152001591409663255120552434099132043783931565655369302004376419035909226119192497461104931306364288710615442580602838441437009150049282130416945003838335129628595305518887860401504464081401470549260972198619790476179664646251987206587018562496631677112627750259653382411591225829639568635806370889592915498274731951908257250046955448280363123566468376860414818231032734680495111095375826255743617087466133648487386297186051036279156782141350498047639926770488846523741230210385021161497831446620979636846970701294339962852410287001816322109852481680801611891336649476267539771408667345604274120518325934005466548505329684532658721821534782582096012021719245310777236359102157628032725202840092875779225708370989029151252526493778328295405435758818756012250178043794583594256594771716645913868821928818750729476677512184838920903665677620101795302967139023782307513890802794654378419990148275254082421683234962062537224131667727145749436956647853594474899343473983698429063768130741683371840096100029478254180052899619374182107196257950312610691964182016311824855478862807623468172249062837834331058648978507344631911401365851197308834859112161519400113107496621552644493951724985382022123267678410148842163262648432298370573500777927643230226613426330633672337785311934949631753663451699592707633828446052023325066589655576837321790222110529950109433580695199934416532816014675121684495132752647171117555435997456867872157409740815808106691029390842005967918592435690729005563702985861098124203163996829176578724928856102781832530164838611150442897677629408668926413100753065868686930326993579493777361285254785621048174667706283194588487376379725692068170597473194262189248099641527390152965856507391835308447093641094404209130981308278509102189061396115512402508743340499191002403599837064929454774571520845542510103888492910196094039350766266807353252566663774070249174847771534409671466923830945677574262119711393457493759421415018896097265188404299494543094413860062042857100814895918875718353015303806763101635492240098106863579553689807195689617222222108587619113109302457975816044257457002738963800572540061279400791903698426288228200713605666423645412991419757021703655828815596300408172006570005241326750985715323582512948266360674124715741396081987056920918121560263244779476312548241796116332583189621912876352398684365615661287691900835529295544794723331220031341877334769876199559868497510703178631283592592673124103879129566723027317190492802658622520063381619829175220532677686696001228984732056936817839853107573945225962469789567263076973429102123299301260743733195768690021794235559359265124402169973390699111511924948316190849754147978345255906479993449626660550025300587915318046069340758926752267434824953514407524501893037270197354612847644275932061181069942130525127649838605948705057610883293894350412081600419205634641559599207860964084610938947928610580355148447259532637074841199989136517145591852747350435384058387813715943436244887298287731662975711464151768681088492583044617159069521073598454367621814447740926081062641934879660228248147339409808265678844212685354476498512618043294434921364677278937556131311072721191699409315622099177893836816406997668997081922757756482687225845272413153501380358226363511282037855914210367261238848053704951577973600027973486902495620618169775072741108634145838918575475667439871233675411425227143042026485601138954756545282933041586998658460772381018917224326370030532550594001549190423746172494258908594051816060846954973840728651790760095271025187433536109109557690580613827986074472543122875094840407860847934651085815740648383862198079666566397916880418055366982670673891562631142571834156042430437602389144411027951598942934655748253639369044196897007204783331680695083160901457532473779230714082524972450176837446698275051944910648402788280144458377829287026498562019864103636503360453688607344115598593703890462272611723409525201133993956380279260714732212414784764023054133716086646081180870822348894456226857096681367169505776653887297309499600822350589623647776500389893009007828066693197339374356941392025018562418977907860312105347180194696361643168981965952620223923911576103513613753551455055408394322674924354563970130450548791782482305311129689612405755733029283783183844628308828543544068468674794068466724216531982161012011990101133719042822769436819451595601008884448936389427566491175155843566378310374646145311012243903567221307411317911966562751620434147702563214295325572463123386023898911588565151031272100218767227984434317631454877683718650695258366857930802094663947911979286267412292290223667749207134879517486989714798701381228237150289627129549490544857393406230724827135403785774443190185818832667318284246544611160339992218604414560504542879335910380222477622461498696522326953270679496359290191324477293334277208212009902581039602453494510834595554920878076751096944894916547338757857986496765365641536478147371298198933131986822587490800533597426592539126438516298141741063582137845183265949388926196941161314190632021151122977845648008844980514197527873841357402272898788007525364294114628926574764560378565798593246628981634759682716784882189523049220460121497925830650036243082999040793564267879441185382936164321187873971154009305513032502056473609164244631344374810103730351246956785575723189728155125316571599954868303941197425821545004777330757140522443346287024586129332895753842980156041715536644971766663798671702249883363445483872270232390792914792427137060384677026968226717542334703045756852156392813805990053463372183822424410928095833235307274794257551008633300270432040923152801851651296666511614659561881402601023311162906518968692529736792902129882734705051040644652329538102119845264509220546304506589459824313084969171736996496365805664896132348693149026124617456287169765943061214170764887266195092680963150295168705212391726712109527500431676053719571984098573989354395290399632985648630508317358699700679341087159394029217794213748410040081425699658626305871443363118344219670661201305578842654796169804057114274846663024974703449250526704608791046302677439703282378343714205365639188261513353168155074538192641327848011032458605171061683519383550101981215667192700999322013693271004139010364775092923757310541909810520131936627301704334668871170700175211453415020538773638624015247139237907862657086800750665504280811364076273122452533664829749005839046784623962892251488250898298883051613597580651019841702319471761176954553635508491144691053569414829042612815612950723729187804968108837384819852048130510629661310602757496788551784377328454055923039925311141777536913053476763310867766842093337975856944699376989251861591619142418972548681190524918665222152294590841411623420925334683406984478207087017553278567679733178206868868770018103352224176673923508172181641687701833579960611183465458956032594289134052034493932663859488843122873438821061157768324593522982611822561780406516003284396498825977195680025850431227098395519071749621695129122596181613760900650891277707412177373152362866643821662870920053103536439632137025814794172268027540983173083086876679723015074296933366699026928980198924743082077724064984321828464071318028763035265908424050646693503090170414666535056147026068797758571543695514408308913104075180663205278119175650679254333091279520137705066448515610458966421473680350858200776668562612785648405034980787505959003893019321238802229567389954297765727667900534141599033787754007780253243576553116010044340620558557947276667328197101330471646319665623600516220783828473231048739368230271853462583021308651118811700785420735539548886963574703163732536479817051993544470420600446268306603104146995261175957067019282824324961480533017688174860808721069671858887768724853254537981072156529750348436983078411750317233594452975363069211105728950732167206367254968207904857165392315852917693761380070057073743045452218538724598377611553100665259971782360390993679625765443901479285093804348617323855487873411755450606779917574695611765436272036480841952597872673531119095356486517523615615849402384648994364574554899199222331843347333739199180503565084838825187134043443531572774775922374018787833475340229144942785057336225003736459567834355068199225502053975277568911544722213635867399130059144594709452525030363329738134011951160432437727785325193478386520359254622728961827615797165482427005412452306430549365303976505710586323317238896739941750645046663709954138360176595287952378694095769680756159282034983212537260248584577491082582968685573440555716819452552968701686116514163261707969928520024335648214161156483065694920753891880708136135942525966542246661201603389566776009299436075303809656068563996170114758712559898431755193744250825877557320222408581446948665811121252433917888064354585966658010640767855195518289710543735274853438212942956639223554554536817417258580890092140324724388067587465810908055195134833217563183974896681822956827790293346659620234444281042215270357217417884981430350396392416362258993366452331298907052300510707364118208730672481520132607303792916418941787511022517701374417009591026778069216074407060771102971554029074446949068895832164374168415410274554342491453130388951026140243665396658588244716925374551710313912734301364046729331528398776998394152411161239024020527936266189468127357861931609264612446990340828921345960611868218708858902021180045775090863833330125062549327634255497828445908593376285119385477894197454790191465593576883538422717979583995899607857659875512234789204795953925018607801729784957559194162750268877278413637663717389800911854371174885882717490515377407557998790679713322544788467236401882024984716514643220954395424633711574675081182725571912790873209398220752509114331130486094454887442574489292142878510122646842862243057400326719467797752042925770688177981535503823506907387270618172473591585002126262785502151590072258947584263850249276874273963483741309126629359018361714692254735728520755899148569012660761158305104727549012652241140704955144334850240794519365589306904793971884100439174605265972439608665187917918348361442197975999008861592034551685266496616610295719087362451209204737837613619824312467895786826122659566076431728095555667600090251395729291378600756814895118113119385846946032918047470100777175032201157052517137373467745993544972074625069695693158067338238911860241046333129567842259591885935748545785980032269863682132128007460149979349854684695780997503678631218227346426474555188826331371106553230311301526466653498984337118650825621875836788799173147985125700585061469686465449376104113440825515861988243017271782439032533470690318108532934473274136676663465906508935242448499219816966725092261593196652057305791849553652310690107336119421224633524792898248937033002781338564383487205852018794304127190209272540103971438923274714350304494018247821196850026739578189520190885879035068729044011914441413662440840181475576319863350317157023653612437031787998130614074109895566575993937189443028100741999894001517511877914695113068130991612191290431908289987711242944238291757328817021158583102876269929688572102032260268902451836660427643099393194136839935267695495949958159149315252804049257890503993005751532655051225920311999721082871571440458302884495827466843345344167578782192117676459900592180818799151714230408617034582077296505578233108187215252644270394302988818006395556507457140186031841154133301561931960060577008382418307179904090660351962082766528068916452888212341457920272093391655251278490339150817108562189404995173354845188544334478472471462116205462823387514629946749136291929997401507415866287355549569977608883541327606281481550198287142786412709048744115098618364643361793605157889545195607037816362907586335391286609767181877876553561130665786259702725667442447146019899703892617520069903571067215240250302464841589432305494465782717673429733777048875590214204211549158433552528942252181126841574745955271223020227289781322943896498573546451628032420970966397535943260163484274731272651126945953758628086474945911675644984849804837252041304000782406504095730952144312388929734250758866615024215782210782387438209461788530035003408444716315673313735367117651814960675139485328937016700590662941099249624000799474615629580034923919333602932878472161087733376162934508605143677595702390599772034051486336352900884238493952279143449027890901407305448142504529114717483999043681121457047573654930832144642836525782621327064599900679860437167551893349273306502132404340681754613771301434091997530928962829832729704431752330197517808043165842053141916812335448361276332986185756046832199393085708598883448020264883069042955183963497215603902379903862030019939034620958291279472073172385445354430616503673657018917266610655375708267155561197089419489611690861580854835099428285720990470763260298668496341806521863725906666708494341359123912828074269008479136481105457993192496281161484950535725765451932754168815170890576070133056758738634744098062319627193735489455227160913023802241460050668225108678433093197415163893274653673430142285826888395526804330597045369499147683645265646199231570229709398354354804838771432578144761586522353057998532617926190268069044798679575376214010302138005412281519632671712909196240410826287988251669765498014336929882743064023966550941442864464745684645895112560084235257574865763431053674898376291299659968903712740772842188222039287131622540930086129806344642552766234268866645068026464119658963236069516440994840971633085552154830740484050655518857126397634719096625168462985968617737425377214245920854104923692111639282276461558432332553634422391190681468761239788687953084040719024620929701925692128816848807585926941242478806802823387839094661594365685685594778911110386450659508854095298716066033534787704908660514254042217699688035405292513269191166587584358631192010470404897453473385414133969002047001376366580449943218542727199231844636242228741833895810634366860339119562607627768349841140470047563420109061301961517802005264950570279592149947439816281130216622744242707362873290489875294462097486559617068952591015909155235727440676019316117416791568959221547157218164566479768850319392187103972723145623235716682584707643934485568550613225210553385836676704916649010656023231718346340877608415354613953916020562977511793385165879012567200414617030831888775516182551120244554356071047438134316621264848692471954312926629311269719555070457633415091188581674466350337717332948626594279916940741949088142152377525574831669970086778236239034216752056783900244101337127856009995315133211424074715004642288009374486754061245082743971073042050534430528111362150631771420788840970946664743741593765608194173522298339736047175137430354189222033045500118937655006470865016059207563641350360476035599496477890167342208778688914955853874171061251200724663579163747164850906453127218804174943647914074755719986895339891240196771625328389152653726101100907955760813984625738261186563880033078070040091188241977827206515830255875701364999161730430845257642111515484248024886599854527157329515519615520396425790683167938168024069826373442380672024375815197964132507755029564182891741670622957438046951360645104326878746973501967936170250909450667240001551390457180295681370794640086635983105392777526994785473306513347316404335707241130284390368135777370427621383815989316046498893271862331103030309106703457833474947974097142881979852452898464214517094728122917713715996215307372032314391934620817536587124288132102141112389544532933639393427280804924690643317387571551068143445957538491731009028083794488037335553700119707893842608632061329848025411992594085425865624171817479948586973677861876146298093977487580604212508718419580944165321001970033807269044781062793068885616614873415220034151073168474802986466736791035797755596536954589519545477686624996398657372474532915837607227766270021881895420676100015684357957552975548600901496626351105837998863162584246283277533618914907444359881059342330578378440477698627977711619137908689267016101976600942736548706846180023239399822570635475918666650991402164733756893288659928022467310242393775811300875761309555190599002570181042460370314572954891018765842170906322457204666886496346123096773279821385596880504577665873302965019090634697243936973093675024437894087061221738973859959230134425755633291112489226257696457016924797251207340682508207509718891368687158889181971158429210990534205913908686542018168415659873308120894376537297820552864996604923294873757247463438813286532902558292538833017788027196315558837001153103428576933035271804652901697027406465534985288599296943245062512208448520245590719518981288176206501107380952957262540711066114844356357554539751550754448258667350271734710806134545138512574910506669903945952922659529605188381576158402703783062411115802125040383227662758544467539718489930455306328360566664480071719287474799221259541467495635857251474535129434181247301715720083139303081207315701038534869646627126504994124423858735945546455258401761816214428657793850596275549326739456398565355741375781059533763167887044105036595882756664905579068912169825998553752255470997542805149848433162654255019719325502467556986512913126448114484704857842350390663490442064332603448043995910654740742669694469777641755111944009503772013467136069724817860198281192236200535796280377385297591835052342418197096071105126511194187604314947022372551045597816804790497840519253029037890993511305112803245650307537446278736621642205643874061759444648156810552018203953968118953318142623943814215311909163184344172920654551146112479221418405636099373512874440261531005516384145988385704645603701393691642523736129779976020080594596285335694737541982973544056992038921443282956598910100083260441714441804042166014496374113246321106907899743658580578965165484229621616021616150554599206492658034865147937054366457777696093707881294655899543814156385283939693421293116644046655223965698100377874657285831652958526548648521602930288528026791317033726705966186096192066588348286014351320819768117505994761630808344949980153275916891421852475510286003043754779874304473407130069887553763943182680987421831874846645927165723210684067169249951325796218737005459074148611032735467400735889845857910765439386175846933947564537532658190321629703408878333484927715622358291159531829877876671874237198756609383666505573747761420261973636711095145701862436637530074380028222879524585960173996787680654563628797659944994130445035646241164957971106426033274619104855774282424434286472191654446559939325284178800513215887481276438480280620594762598482900767397297509222808742775376436046557112463611158695973364642932792146869702804546288584289053796897632248729470497674242712512858099558476112575516584570665619162387215049220554598775575996619612505312396825738022880163993723873705716235679589497241625631292182985000573669069023744453611022212928223066021212349340643539272110773480298458675863915066275309943894928986475267617385430875329933760223689907129942548942744976108697631335124556778572598041027864701344947263146428031375206918332072315795714076988782449101704520405483428289634440488892495069753669607081308288787681514094970048990826738242778955146938683995010537679211580043270544037649783976430935429619472300848277580112050348653270833539062915375145281492176482846116118517341098719553623350521240442045889101099085188390543164590823580530123904567114458150403830144553204329931403016343615360892352545904184426563928659168131665408359500695995334768511308412970945623332615434850428339279352205254140670682583762104587436567900958974674536785996325608964980121302167372363999515785681982340431050895378836984781573874761455056451079934274473891409941643660404409546990542788666438672564246054178902283502261282624286341228413704118717925499699248240625073971183642695578709559517707874462813043828329622137012798418570822739354430450225702412425693312179956496229517964051921758440281899827974527197834452423841699700306531843033157450654034754338112390796142983361806476809749321680901015446386984618351288586571125829206557193095837869953503481352124096692744224063286083766308139875623545121251600619832221284635987487380150800759107951815866486919494924657671450132151942614997719877939521494914968008902750304989085437274640359464881781727635992983651487978122821061668130809796745656162921091112521694871379841930131134412971832797379923681731018218284097030051479597226907491734257215353022895344048692807205806292922603873733210502778777430945387025151898429207190061003284740955350076833967484202027413697810672853962149376831298771267643788239936362840139256303494814339458080946105742301907654482808938692100902136737000558662269818472535010823285977436216989698651540872981857114647363055295785880810168422219394694177921398976167136185527064673171698686867522478445229488956105538883768226680161451329736538916631595332170384047521961567427154190344231929519502058612133109480390870641792359441491502906745909500816153323074730491445838712441078174513203586428136888468796993679397752377681592015647527327749725303794172913276160310625799988095708501858152341771196701203338715861510003575003341378815160736525088349494982029266730364797461693450508538814648782182626524459067464574978577434680586094009173732687239986199746637767023964436547633086408445898232079111223046727640504679071882293475116269533166911831044442008377423690814368081822554258502467330942977325859657227659764437060876372620796898572075595929405918438206728402735131700347543457629490548573490771324055658711308343797116370471509565065490670899444854213108213373491423691449462889536141827373997048664983993139649119580292133746787894883024669720206300261164070889318286790064189606432757081706091594128220959012862556589565499516443066517310810429078512196132487600095700035267755235702477822867654201868344249237165157759313688756060758095370135906064544250408787068574098537196573496211643208340638180380415296076581070627257985623410844724286860628065982201142759203461191079829078423859719972370157433684531490684955210333407391482683719417237138684234840336906676244291934027162417855986703932411577422542032611548840959321485080265249635234792280765753882970528160221585996716463280872531095344280206493596593268865002476382388153868425264522603769493878676815410325181027248885161833436136791275943691779478065459692016031431499933833351686179912019645326760417382559435401826264791943397483728948241792830136389822484643853474215603693289498085586625947301584541722843591162391225079803382890078108530706401042351360395663207064236750839862590283749980350615498752142869433473277137000567303460634642750649959644995723976192072769166406156913805575126050745532859348276918205426941159613050763987160579402544182618355781382250498908746578818731109239139196709550007425499045842013526406571352046147947910063060695971967604937731049634569431282649065733810012548435788396575186481322662039391659990084391478040252661586394439213802517616285001910017961634151809912585792657261213792853563605837812868525807313332742317579339539699280094355891015975535899081964144334793603297018103082684904728159178867156220681995924801459402753632363411148638486625832593565781478888361344845414499765414858739497639576160637380493862676767336261810375962760026512753489312734308134968616427303931168718380503648706272108541620381466176187300974565134980327236399539762936845693359500873285581858511232359232411617544140403955104845621593636133270329978695252604077725138859515379013422665595299962113020049828463504518337479361735243539948358561336963568419776023254010808412930700744421090037690924675406906494512324223522053918582005267199314498191003593739697823763158461760177792769335051789106496205888706625713209648112552789015264287284000465825731030955852662833974857151595146290657594537478772301937358123336316463003423884016676503826602934204906155688478221354121723467153435855558144483443430539707227849418626715104357234705724662792497981469227833906977796852764768305549239247182711192555187961369004804579745110815451240259948009758310329120765981688422091255309353244076267353576799929990157363234603697721704603033108826436387597902378049977277698495705435506110931276394047888423684663618537313493763734959610695750120376338943740006372846214501211308937823698306637399822179386900113133011579479689948752951982608235602589761950720207222095208514990357697676982331285283559348832411599008370460474489616034758941168292512066162467399243499994012274964684488745386058797374930138099853386527766437252567955066165778340527149155263975624520378527313399557115537826320061665869700173793274636193852505624755521057427308540125795962577932148291698437303442730185727294645851956423422470521977972909860811825637275731173011984960711730162757578758382678244543072385333590621444099048736860658840496674739997668852950338853997919799662118724434034093861744038031197578918785689322946467248570038861421191907915131317197888829894247478296405285629675289007712946252276274266180555646556205767031776465921756176791812398240778374702966785645435238476877814513272352654435215549738997026539256153696921370138091090560059368466308620209396421039405823870002306789703844961852585937566186941880723338016351230420880400059253095208914877001276821159339932612133757720199913833360846491478123037278436437943607436551455008855422858466915051440512468442431860132452659313571759110598943746685840469543495683207583346642280588422611894637883160506257962398918754876999070424058977765027075035244303286163942497443964215598903292981892604250489246764760063326417910491256088252001601419832800576117883347370694214811875459079931100190644476399257022562875930590233361655283770821995151777357855050860611217828803322303134422798265189095286219274539460970670636747748590260940991537572234637961681509033692596712168821562800673071477236773216814846237950508373840444650583126899359822070253537714980810463884526676043143515634191745859465201397005055727094921258660167858400015429870561331600307799399382492273765299100081915636142344074668362024653967758599905740288352988105781935257574504547097191565660137396339286776202544615263491719094264902766264916906688057095080909515683368434093329959177654272138221524235621600969654526503900690387786969873643929358408589635403397511798407305974770893226728941140189996183330727765014215663768803193789214323172160253894311289321984420947976262641719538915744087288050359880387020897974280949733041463017528081851271969163465369931545613760588616840783197431799285530512155274279025119294657609212053632648274559194413635724967055343981164729177973464577128629491986961425376349660473972437623231894178987602691418724465611302388402106103439612030223783056589905276491431179984299837032206873081412067620697655446996436557789754562691678979009532571845835916209378379730576203066839400375104818288105019387200130642977133423385065785367771858012050183953170177438878655722843070117087757359410987234116061039847596566809196665641734996880528706574220372327011022034812720779947528975252019086647319689681044335556907834110107260450670395095909884776397141236968139921632372694244266380025066979848246900489743676900799386107858512619683949554873703774665066788458310430619073757151378277022443120301783838984134499271727030738034538886370773776792631862857189274652206114085754731362701457554161894835393290578826743854740817196766901666902566926863277937502135673331524906731009089606589114403583323571294078344093816419331070295394208195150488590969810578467205359885245104221285707821881965505011222168668552909375375294565796407941648361596234382148773911419120025910767325441825606619249655827868623559447607176845827075827638542669170366610007548893827564342162045902933900724626278066278486736325457173998541382273091738346612271210685382412981377129353519095342022490655356818631146275682321100889079641621799323833195747243767159918956933931562015320730501148164931011125490106055564448731836240351398550332278399648058068775623689677136446002618358018801412530207272389293267421702190469056974602964623564471682054369126056570850164426494823333274336324153959141633820244173530060995254399337236160640726634846995179898597011438879935474388607740119824444558232908874822327623621384908443445882191322575021353518643656998094153479639810822840365276847255789706914687534783969903901538341190415836827338019820469654632675363571890315286370942072741819473694078176964537187022484515136692035058378961049197200055247905518367273941505936531282303133837364703513255594320465735085719530279917456074146551902738954052071480629271292782145659551271925045450515829712521651812594526163330839286965387143221482984594137210120565092861655849446835469916281506295449673967137372454374106796597263750731997487489261024727342151397294985642975109572350040599740622272746716820874815890090865449448027675073722361318715152462545312323165561719281709572895787446693863539017461404105250179292839142199133328047808785356037647266150941457329793354637522162605748303773839714893946558937684026736730109558432730862816930500312056250225147337284556389477067400732713338819605862972451997580779496792003007992835387116532166482391494306112523478103311511160292168631947025043738058787308669111955197279654047994694092550111593446924010853630791313587416587452805462740290791621533518882705773825766019037171091714483241459375379848649402067690588907519697058509192885657688405031062778196243807772278227247703928551524340136736411586989940246640009948740972449441218363926025565407898875975912573031253832671664334227583848992912428037379285959419434438474981916206913834651435354633026888014735401581359682297544934529064416001832660496480719382138216558468247376600805193958875234295063515855590328463455624235046671163767689873377332063813775815390037315419076888086858263703142024194767594340970868805676667272570320611799193395929239388976604391433973958334766758921955071037531832402376789181852222405723566992563057570941749264968985330149216295235690679122776715013101773680049755062209073569423911995838667495206113268604833027355483273552205593010518624723545503312728619642725422418853352973386989702772799475980815829069576445063364594133084560653291819602971034018690353443122719125956813653961546005206270449647782014624734131241545445867221600357672363585565714565594758341108034019997188448903992377288916212756703979443318504617638240883224643996841958006246986472172955673839510751864554769545912778746615078395437826057395971314968981637357215505645801163891528471598719190158239802595064507262099525526971473979291666613675009073827670579335738930938898456485086477165443467110867032494920024346709713734401822669102247951412196943913783335650222338105967260680911019686185065431442330847285785608438758998811656350999585470917754121622935447059715090719962992126216045000371252451731174020941496541333139710365765929726924430851666173985656962731298494624828314156172248385244656347150216166662419287401702715439375219980603869595182951339891625667688882704141187629257834878411245702449793093586362216846762484581970000198875025334789099681494290059655999411498476775986388293263973064188067988446653841089994104688021419725214370693827967364066382133519789342542516997923430703070507312540972488184474585489917218236514198244105028487484351211150815838470848551343290339691513226651088026911284773612599302213125022167213583645096968437844565507407218910001152700459096129772271791409983285836156845535144304286442785295030470276360633170182499393031291763911086506602863677060795065995598656390606312506971019176595014121689097486968887423058727462252458474053535820840340632891478282027349194566883377184412201645239452859932828791966184312806322711995816028688098179590738244168593320160663766878279814485106676416653694932873873436293199567259176817938584727256276588663666920496646823576630048556309963871873119196145250191999690611355826178581284904319535927352757175653276735629376100244957896087662146884936571368198476956181329406651833497817669370289858520475351990677768845749805272446100139991513281617054724847495923043203257751843486288205693281322875417058217551978186288246142690433238256198469085579604738684137445918851165110337723427872775139623017549503832360047190852571425586051288906317806935979688909062672033625696820291182492252370039254795850728546886550189878900464546664269707952930391394466759256159162595305777060026163933477491880663175000962233671537091053883957496437383469483560287036259041076370667630233095814318062713769600653658490621182114837828440455795941778667398713262759740487119424735012225804528716380144876747077388036268500159872405314910767987778101726441676691790143407939570583132327521125508301385272290854378395484542633812383727576947534244574765518072557316990823905943090760081451913017219548390151435176002633502108935921827349450536415435674781168905390270411365866166557601192202054877573075092884169516918329102981799230081683574207104249997861032310429048956796752710149720457335582531161861938479569507244159767792326577893394294232003992941273859579040147835022993004830272090559600956308711148767430522578840124368027520733529050017843097981982151776877915506917249987744586805586356534845910646264186753924847143988613837088424323994585192222686746922901576309705863053882614181266816076359735558156265425340593165753440964804060477279616635382533975846137763587457931288593749170218775016521284070250265781784231135553003959439327781317459206087612977151908815578482077001680180460425662465046447359259960851744475384467022093513194707633255966605137412732153482956334048502846753883630391209720065309134137972733873195738450815153377612484225185710102189825211766457807696802863577136460216405458455220481035990430892378953850863192647830984119847980921221466823266902618303109959115029327363944069234383472258979503280497582254369539443536736696899353140743754736418432818447158832061978404898334226379754157727243190305261540369948457031451492994788338169133771629566185144462211679936331163709087991253297328318076049677763198938406793510071560172123907434686299814032110375724337536729813057319214171247093722106539617389803907495321817873827114876056169505079322294448369369485165703636665008329982750302907353550764875398457070583562549349898109002261491194331019225887367343603639819887527204140636446504944126940812513841170341842690280125813664382241098632385843265573183452460877747340422152444446516490081698095099819232032604986944075623322416557389133390946745185304079140877882152759354176838731215839135774582068693384797693691222848684149203013954374211846597544407797465280190378691834994404622714558288649252011139710171266624536191761437108185560071457195154566739396675312164857039766460451552787957501264926008586193100505017319799373011790819184832622547251947540883839553475146097685577830988613310696960428197485867840434293351386811810071112856344687336294763821764131175935665436050993582681714951844394290960938476477306952792362020094338433800764074473190641344023958275716393488922939462792863210714469330774861173470548457333757679940521202961612205011961934570103958759150670114197913800133200125394883720113972405534666333995493954379418930999538027971646830491885408420709531922148405374078197160609274413874092226018958654364575116671192683266551970642175891485456981416663606599435544840919443516723772313463183460714704496538688293414052080677100006626483911685105547873724648444102138246445021104400862370101129927497363276828521390455694113585620950557600381275615019890826586352496482815916669979343979117217206296248026740200382585949432217198785665093631329874476167834010330607626344522450285321950611757882064943247216929461365012984698380412712269690815977876797653623985017076291157306024824517772201850693494608955427011205753761817601209624667663560993386855208510986401889628120841083246029828293573263543153317395877262025097574870348156220753410958160135103031092564419671270262647171730383685171710687120480482048352149154071007600302402750268538604852692479466021991305352886587196875920705469021702960325537863277721641703088264170366668098926569782786598535290979253478797911316509990257555914770940291442978634595677716226692098804072094282486770122639134478262643135901769521196154746945070825014098375719365931995544844818346592454744241540117702245657540998021329273977084675159466829917131254113968871092363552590248855850785590988140186557032242810960693467335622370608053418358368471978355755499055331539540092436797154869482143908408115611064053307254026157766219276613403007638224450329712972517111770990742985219249260612313660411453800116695728355058270219011906629119126059272747544497592902373262647484051650702075251993149996743515906188129841555145409335607345660599477184947942770630179411806702142997333197527851950850111128031687902799548478447341561740768755648274276952829488265640538334243566873188004926252149142717316271405471686435084105718505581172516778986256745797516285819390976695634740934592754830716628293212438412920020503355398184665882019923458829535970735941035903622183804418213022346727224052042778286126537681379264554656572996930300189817281872397469503192998259931394166063307154910385113608760343781401375828917326156160860098740827057591654314862395521501544175184047422665866416408337882987166535072938193457389564902954364717086124150869465862388447667653815209604634710274736661065494299496239087041234962397537862893482566092104950796072772233660283545938727080115361136257029852062949228674973229149792541683346804095859843830599582260035230923021444713654416114259614694247156987174461917967477658993499229714519091251619447418937564838917513098218449838962102093435089353362635215876321365623929348466074858388262774427970325756884810696956694850661549193611047364850009618401791029679660965184572549660921133406203439329833288761776714733609012200926766753587012273667619089105451706979137289952156463854066833643577419436659251581884558337787989846987160257948193637861072109548007338212184784555575173444813486064974219604870078179031669627906289543181269182551336265616754157770364889754643700317275134010112542811853825258895631160480414772051400678834850578988186315651296367898721234385135611435994198905097781778459031723583231687267174152915935183237669852202767717799094831140496828967861458500122950929026652682644721719537161007245168654781390799134473056215406547497260018041766346667538903197648496387727750943457711118717223967987992126986548460976285293151357786597613590836965311543062848122722822206065566217657689109156317269505011184892291734118946680218635711986994145976134547821038592287345696900637204327902928006896106316316939673108894764773057738433641809635490757064195580271737105379805538059257047100315752040781341997183150037160914628943377311443989052995814737459586654601722934182214870558315488026700831597388502552702761394526710790272612185269044393172261915242496121021844927182600609264068237327157270321091474292760344812938992780769045248810520653652729215795370629931992855076935713172309404982009619401254569123901239344526364340357901227768406938282701485639623016448197082609982183497211704210455379502537159256419515011395534131146287680241893548213634149081630487718568866788229176394425178513817000126319822383282510090117822592718153939247556796311999485809437732089509333163095890285634243533377531423193447429848206754852564474945057629580821431849278841610166350254585420689870093579264892083162346274180814785606763157989972226999097597647581375142061260722777276517321956957985737166746815861597282773758480077287438479126366868135402161541882240413276678545949222763450426279289822194002098640857963534289364946525210509993247313711511598812183240788515715220202541475707914911798621334371770121477489684227550366108095162333194652956754467248000011880295078685771965313422452433291810808290265520525349130706345459591039408390011430278146391245818126439800937011835663760202069018964641964765992216869824881554586574134244027370841049565005725008305791857612398209688325930775011267944664039640959648723036593483690158607125439506263954897922880318401141089411916078270168044492342191190098182192561558105043528131510115715552608599376874793208868397320259024157869883480863047307040841538783715095818391889745127507635528886877182413281229020612536433125777113363628971269764621050182147258051586817379564777431667934556907684072142121096117658048367610384755857503995914859109066862800165270447010681769409442180348878309248538072308053514709419140910291881032840664706232583164201116728314327845808422488146686462870047641120543979746864794399941009029792881375554314027847181728348244245926259469367962035496704283091310998860070770292799266387776431724716878374817747837573933052571819634003853026073701090932323210033512303902050936468447570009271602430946253451178045496643755633022705874067515738051148925705586280141978103041884795425013029780599875736690577917465242643383084559703963038884718278798284962806818655481615078040913696232549537903870362065832709250403062727782513763528686757764156180317310841607916489312554092897869573792973955580946034336290409401193154719723232503739127163717107310337770642433193390041031097891211791209123684904721052594369509597858970791533356606030130648158477623563203523427242516398039684436294038329545298298519978852041795245536356238075795478620120003564466278142599902674216687193393502527821240176500689221605753146967641098592546271996119014539850015498787425926208496644862610470271873457918797717807825606574697351321441614622703169371432929009074265600409065863162605799136393089303554054650912893060926182542619237954610744838408122411960679829383513494938845716038455892368859549640976723312041874870519657316025849844336065999023539745740673066271366195641387569267985752700322538059719676641069494487504135981979707711128875481327186473038295025396378539359890974301890577361547975145165824192669980679327363854663750428833296015532974287738772819974685369208725075669747557431367069855359091976799979924656567173279262042340738763999843474370961449037884331710577863460292182361559315902799935479373482271677039518094341570908252068371131460621421289603305618739713621333556803947559380686026198660764363809823596066454237834699233513134663878366554212599512505327070645920000135189666565377670737540019269835163414676734516222827701880330652523465758158626873912949821351275164016018947064078615577402034309303697210418146855980124903623764647065790399725475835393746532959832365510318505804319412291049784233567425115216851509208185754286568722309414079629985682518106506205288023117568484489014294300200173522987847757588476173464217361818157824007486808516431502390042552715327088825984058980894265109013929754137301815789600819925450335665569864160386717419020229631291929494469090010527702863426027635347917897431623553809099206597306908218737572962681269062761545306143190740501271073766095839678133768591289447126299474715451903440422967648395217586541858774061242252117237219446488185883351649625930591964573375137200877216429510546416409672943668137006305399339233476100324319777505559089244383863054451532313013741243718447847638461151996272972285768135609122392868434494428730816282594106003803026593076067428519108847578832351769623664045652743272240490131750568561974923904980298915476472391088560711365402895031155336014205522211632640889829458394481835096267257201101833789392758288941074678498880416525330429780510549218733509319571147033397991343164853475417679059331959100550810381767266692167420843087837133292967183469184601344154317225355781187845493278364889022718702432704418633308909266485434689080300040077989906226703004872888823274070149248338268771286831421700641782839593284838000292666150256440046522542899533923685317847777350731048936314168888542624522893897374190191891791864989861255396189190089133003050198154932939674369474989965704597912944422875079125270785651550177724200504962107053509789565441311173446404993350232464238547567316776648874829639750838472501513733103579058154511743048429124157317096197821607577259885196014185131984991686354482269208677845171107632078989853871222328222591257472141159698083460416774628383054248420220080040984009248192567663809552856325610344081019120164112439596481477535564764398686107682683425138459865303748247033849722043016258869394421972043713728929118964988860987247649597215593427596932493664236100120113851715390876490522633884780242333436319894778316021515558923109208245176890477693217280366627916063556652219592581144727688710527745533004163876836803395826106279938277425259120025567991039090170414231436746665683850961392534974308774330547975438431636679077785544377850337182529231174573685756020293351364307114244384991186555441721320116601086754177800664963051214350102975853015832788523360796618197675627292897365417497444807787496293697534602145260163077317162649769304423784325621791150816316700329727301895113763205334389206597413074812701373480934332729561984756948488477267851839649245353822092533283525154461637615155929823525235406418585340095315157405650220183075018491386460273662372447049305577267159687393293827225629435308058864498338931640139408469766142426915920928067413565764178720038898671011760124058251865815830620174128769271850214603187950959440619688419402245736876922021577366925592230586495918859240162231751762972453453768973368117651799343202743108041619373257949691620496090849182665937039644075254229968063170775978582076980759110488012624151030427700048839435077509093746322311592846682475995466145494989113166853854621891039246162572306373411730570946850550345279684573964350698639955944684966473541540815986109687587783402037346153478637133145671873199239637519186044454313244560556836846132842241831711737335008635362101472435477176647380343398935466740053830984801201816025247887920811105592447215188248053383559956395496244866521285824740750553789453358254360741404336157002723911686870167880546039883378439061629435943574996597540857537547037111316190493304490248698346228075040683399537733088464510647495333554530536963159629724462462746634344426310838853971789745233918913897352820882842815103048221417204512971400691174602171026784389166940148773025817895165037738931717923758583794997738419494928783704163611183110105342728636888481067544488145006887694270078012621348991799415073810520735724486240766823191753447550732536387768191385533563319312226558534901187909716035219371296750188993330859075866303588616279139530934261626699961476874452179257247639012204964312208348795372148866619150121924084884170707248956936613728695507849009839072412003572191365977149266890384539564414091021824029397429717261526756050624552330612685831722342605649590009431533780842696950281263673651169362224071107729045780804000652345780293746712487916882985426574033790950060367884847123687957252221179263366213856830829504064422190180727305792228698638133005103612963962996458825811489839002399370440988435781421567518472726661436120556790665880376673138778029391223291012510055713332292101948293726571084004347774808626649545080462532591726488804356845490669940029615117303082300226589217077431092287125182115251116507315568580247705781480001430625022761856846846191668950710258146950406837448018075871774999528899108151735436972492133162362877492165281476105661706364336993558312685382889408803869066713346349319651569533485721588555917087045233399391315584778358220414667680873695530390203556212985127291311577670372214671909513186216224026879690964306265860278379937196600866845353009693039192979453354235779611626158919800509077002377850449911458378703736324764642792302759951996607353212094080454560897715441205721496647021946136292833509115322549786726766059978466392963435545630790709717415379709563498565189732994743828202211081941657062793280416154911854691940825617981665201683659730516463765017698271450293868572233271856160822659895304642095443470940689792922317700216992513271478573003881423290322110375082035365799756037088116679033431408160724858317735917374702903172989558645741502584156631115997119195120417836960288369058682520009956020909729553006402162666109117037359831089972170169073415954521203253885461005075423465958124430484716469389388316454767142803073924545067347795735851918940259787383971982964396738365715128516455016814643453818996883828856487881294626271353657205595909099770040260798394228971266223891097254604301797877146781872184682753224360766890709656340925733002505831181813479917272258087594560891996559004478155979009605775577932078391524225298306616509136255092228413512041517110318074941706861601707023704792659171132721512007755073050466394147280637904953217044433255016809111307885479670360043669639156595784189250906202097841812837670066007154555806351439500241304285017025853581347246397945124769474693127367743494931541732630236720976451523386642774402926391385476479282277582003119494045084802667059910954578196237374294268746732525364899914374332042126226067496878493882835980091717609111136317102930583341876056130574358820839042836570392369567641717584517287866251535933625728799011361474796362714638331738825996013034725221881545196788360387141137594705014836627157482396452439801994883232675343443839684075791794190113079166143266788868997231854904549742999022109276471590995964692775934024069515892065870868651059252225053043027699949423502056110855794190068356108016355741928048883724534980402922966144803138725236251788627332633246817676132246048696402107675475289865407280271020899315804983078293737603181441675031168404396181383274884241321944365708171065248426786760920562458186262742659625089556758987806317057031184942559214594180900867529870697531998071031531249954498449682254766821779381738464642952505630133510943931611831484271977324755239982148005362077895433133671757946017947607064948737426041739598975738907808490576551304099114399227969769568985471439134391559104521340546747114832950957526455115279447346594971165650142620766553474851106439617883585244925152073189040655089449567046462294465027867914279369858213299666652364728232320741209322310867934696800137600502434967364419885916788644592511881005391017787343908003135454751624436470461759262738130066697245726083812773994443450823340237307407123520814859131832251881945953740652085484027793059536314056651838795695401252104111954836284682914185338754115325518965045901740973944063963649653924145932302168045946358882988815754202159881180998254825497318022389475928708142581411663442500301627969792686966983344385229616314450006207387276058128344016401540126182935448634638154998168067585564713771879122645737775681110770224663836899726736558703424270012037826454411940829785562467671791006830860810021953240601383014272496450111041227396219984200174531358253542417759185547240985323024585008291744743951701789041960768195796413763718122227599365426106355671981462676311626977618915873288360633859949798928918104809468672297411809697400105639547862662905314635176949777970433733471249380303219061122358630670872773896532931198511853320432334334766575564903331540851686266661788622989163678224255167569261615937145618699719622831238102019432848119309218780460170607504808843831844558367533708271321428384852170735721464021667576893487760607933284583951825859823484635763880631069127239691620845018312830663211122851650080271294462168618567034834098840233470602090860227328453826996551090191277545271426268279818281105788217864894865580288856543633723511228752322910590414537115017933745500432874436189269166075983316936083017438566327313604397791700030512075703126983272037680620944480199138892651733120280178188910952136442448196435660883189107826028834214981704325582889181725048489653452621314569639616610156866021898554215655130925669909517798786061277917403437684547360897354174175363152193759818733147285893580387410622810475946079433294460696283544788135477001124637923951682402553594586933834242810093641308060281475227279615740305711488653468154334057982962345852848763967723340099471181995084618095083131009960843856548122592857367408263722492128828015290736711809691790983841891105166341441844781745337742529132386011981213765860321177414190437485814210742737064305944313428892809154661709489664932993852595287801515563417068640716320626038807961379370270088446198465470722914186261654358293293569251307748808263823380421272610176466498877290886602352351879851079943561375354484728206670576266789679290366696938172694044081613496350057133758244012997325171442472236427573892554819278193247218640903575808033844694411487464135822394261840128254991616034758623867469032749495389170525883258226878495006025135977386508569981907055196719133533722043255646606441245789234382890197471119892631411860479858870388552665752353286565712093294397269661801848206066180863097471017597177406905896425219285955153100019650355811411325363160913009153460671688658643017149215240038405879552187034850437219657642918873033526014624915808182729418983432858750001369547849950247633976967572337388869020518468410823945931779395215700127990620525452744914758639557051580613312538117384718799527315922719229639195948633980332238602779320117034417637690673529963796573515466902930628317398852257949629934825331989707620736506961810641824179790237074117863441294534607621638065656314754822516029081765845629904686114868774366630505480066387009735783359119273421427748345019774795236635442981439910792042621372458188055366127359674117769383599328237359167748392681319269849239466436096697616881922317020480972863186443565505923233094012125714753570996032546502163639781344814051167649515320649600798851806280275034273781735600086298094851825457205882121906609893689736386124451452702266146124294531114484016629579988088027383335582889734025817022968342828142672368115358125450807113082180174376531576891356595488712903458893811529612159296148966517197293210056530276896069834695897418374109123350423259934403635471976437905422325738395108137267029742689037388511658517583428174997102289765746221647429780532876690894338986635956913689472264280987221124018878056153568679031058214330989535197074344689004300829894934855231833911064523008328295528290545325751013037546828302916065072556087682529809426541843192661554590849500391194177000736059476359904155454503878568185747916252871842339408611565453024585908192722040817459461804666953256062357769013354034638345423569167906129106329330982900438802657959382269454638079776720067080301426589266786217495884611014346917444387804041795684944943411796613109654982205185162477360093333977095695550163922522377562351502448481988469261951258271386270763371857013097896715759533238964780472472499175377939112647096289926446575684367248885977426556101610122938327044410290971250031299828014825881790166106108063517696932677396609230757806940523403907259829911051982176938592621937123019121241058700683540036657570131607521933609471279052948461475295042640634595940413350841138330839003146336144117946632797499120139642452177566666306863359451042118399988446733552899551873953785227246492050856432679560150704040157844150349658672923386551972812621362077011226479793359999183927918416874823036647323406380221171098256288145752283846430969004235497553241220858466281151085139769577150474967275531845483514837454229811620651077504788297843118588411141852337196052818065965103082487099758024428167618615979489242375671951885527871338112510355306992884683708254140969912903188326493295141136544061937991349680793490812153866242214244901059685543320638423295291869863538707694938235896899114442117469200337444946795943594607647335896667947696108551786673924831620861259085102894807699220074857818105385111986561617946364337068983724218970747468115924749709972700499153592076114737923498014641620091668642760364392210787709127838706972306091454613330939823869188830110102760412247657905029520856976415099641002793392960128036947884830899584671749560299783252562564136532434084365923834912523305000030351970277835230373754399716449235103905128721718805990932209004796152795716197048207682408156287249307356705018230659658771802592562046033913080646994477812344739651495653755772257667944152386491251447772868245156821415714985385020210087195395250534750723836986395536246055888610567819048663496910630610878388561703412680997868596826309691557286234513912918911774873727543135613778192970224511411669136079395250375071534651891924616496912858884442908851473943217201557624749755967855408789037924947398016774787861315337674330795130921223111316723373316390383194619362629554681587855234045041789436386594995967800161602246483821746022715602818357266144106577848721043788801239850231848908883334158708947698405224325666472008404568046194575155714751492208298968101729449976613353977636563912830749580067474176364181510897192996547070941245092151278029530540127336231837971135880035106741536371608489430172277595353601406641431773678304736972048192466741540332546191807667933812162540672825814596335333868218518829457365197404137835478689985031339779139400868851344848990916185383785948519932661075378538142953607736206896359653959116405069108959614743429630291996863840988992004781617738250071758319751829394638840770375234815843290650397246343474720872864173266638358996498204245095915573446151697879953192426076545842053238172967587631985252388108211865202822924109029791637307757664893090787184737494135377765074117497206833267300252680763625001944063540832032073278561931204830783539204715941586208043934997549773521194496709483317191741119740558180231476725147645119039935459958296031011424721060420322775757691201553106996342960854934323699848328303623252918376821798101182410771156300019235948946124814291086906674328901831569552142499238509461996805126748602060304553493900803698127661768584491156691145631406456877934242422468822073612928265929533314589262027405837758407534836621412037331251585860037876875213685882743534285034330601230621355685051208842477214147505952838417055432307339618170722445307852242770733067111488212421832019719901655792319804456736546872933980623095579356565015167318748850017364207100903977594776229276875395141319655095352835976975468975906317986095238158070609008440805818211938353691478830050758728972442524180908257228146929766784233367770086257622996694471717479971586806467768811553457183884151320079291724359502620133035092365961180090577738671123093747522050335464632135993205604069072766643164719590734834960444623513207572110110942792567201752310384762488100563298685964893327497410087836258094527310684822383049334889253842105305219058568165531678078658274206494946025181862279137640569140308090335823966864323468959666806392922762185617431675007994892183588044031910301957517367036228774221591390257874683096636918030552022610977023957785890163606474323920983810011839521290577006332102307030169433347463776221721003322172243589746641694321651861665068593908547271627183261760064409575164014737768299458407723245454042658433955584707564656560698166098116989502992075537643795202926419361525330961240962340520509370754126967623599530374261808556527050175505575544978344150786256548518819069291985486669152593440073230716078206510232777185156968670812822950223622054344326460188882379188436513724909879095685010463754269320467439439342507454250800100568772285923001470855318381617925178793013845700845252469518239727059222208876552104055442974639099133245486671087158063598188463008069930143487874045015734600531289494691563694899047656935309774668730618485270643355530553145576031653508032813869322374997815183522557309815537036810850871187479799623592060213495710257223821461285128767707056582574051919001040085418149872649845419263305116061931132597693079784772567866120903487402512062712848178644396528320300557105537488746842540144548564800188077950131316081573500428160392037577385717422474191826411645840339691875519562155758748120311842956307142303193236089166056391999453143208160907685355270087228081177901949425881475175543069825323189797400341939397612929472972708470287968173188642786921651451167856692996053990609236557568158820307605859683485625859334894718849185121890262295572162335585172066828942654420838247693774759299792939617220574107041046563573217058134822391402398259478350405779665388344007575927321343242132221199187315245872773624448799925354793881373482703960047808182253709464827440947197908173662143983958652461009157880974995899472120594909819322434895079470838848459816607397090489751648638676815493551616219215927346295668593686998589666692759847214046338845321950781439698694891699050258852000589897888644253547361192184970267397101107421559868308265112621131722278864820831745529483516028735844860248612387828796353180125404914288784025985516121527455152548203559370208938018870620261051069046344485751306808362597512664190759348266321312420472148916885788344742687129716616758231139316855960365911163764122831908281157447233708004660996974396971058796239086682359784250963622327396488310177918791757533333389472251895134229140567749357287170376421999974173861862371668341959548663032918488517465590197060849985904481527132149220631021820032055737239705246040651638227007714573781652472914115282056147776480994105546550385578378360949789708464563829809986532508695985171755765645650344758161149327618197318653646334873782175895381463548114833430484017496617028924470237120418777604936152755688961892728368711053212018064103090240896753379839588031071961692629299225483905379609437471306745668575498206928999879919334403432803405704742913986704665774524834421595957604034561823516354776886714662852523971349793680760548597406646430431039058170368119117185339033647297558069608457166116292651616465825402826781255378495842745483420326116924515704065909971724083436841348503622521256271264870740983872131934142191029154677815999640901579013756368241538183925019151301398041919097666566620767738446481113096208863995119898771532605592543440976393493944540090219821924919448458353340057303244431197393340088388320762492205481833067621660594944494947305114695854792810583190425593476981229737622102393036739814147097156314271413319432471528427912821652430172895000525338414191386726037672207700505160271700356399693762372221830590212213811900332350354838203146625373385923228242558110365923738896138059692086794535643580749483029911858314715011129534494050685167056015947828942712561862317132734168182847265908460390794593503028819731124901419635583166240703519541428770233864810753945046416318661689871527543754887023078847285400365078959169296289169599108467378381614248918201044725117565541324813177158965472154420605819775197196553637908343815859229008511197713884290832127337438591153547302403241136986459367270120390240457709920206565818971658940079786460640487822399090277981034063050351884958343271048229980252492390487252731257033505883205168130455972688625892584582453312886894463620486292270849738655166467896399724487451257767556391740566021084873216110181182024969170515395744927735007310481439627981876881574160847124472735818995018893262277733432715390588812118466996534405167045007846334865548657657044899490430560511296888794281829849122693462641962703219543423684688101730977001741566563993920587103788831029807643644280552090210002404877817591284615035190505317055818637790661105160479913836896063106958206306077763082798735408575224167843143032386879473471282131069593498272666155433024428325657078443398061008170906928357648954968103524140218192796524999860041048968220544181506968442759617442513803349677634534077794542482775216810419170670601888461096976236032009924382384742536379290903749550860265307482107007419024794539121084461996614805268212911780688772893566379728186874023029873198896562268680046188286558113700975491055532841551942135366448724712529930921536142012272183009942768590142275852612702484694179040283497102491541354544950852259523588528176131452139244169675977077852627566607370666673489873965499177957070063078937734503615410878650595657235264496568466570236089824320278253091055528603109645240091180537402691704217658312954532442172099986632474522379504240895373617035474855519651673729178234242830087613893641518752173821098067243312170749083576837106437190671416312913961466281345791262874666096935164431118270676047133960640260361617583866750111509100239292376744617061194842839344131532955176390526495244951526830481680375761384909359691209841759348658737966013746650254097769684209969572784618756801072486753688633447479493718583749570310245458245485766414693061408614885948862573396810002089251927074754376554244761715677997686965652813111876181666354554482986885013063415557657413892403698292175047450901382456434694827861853731216072133679897566325770742264787691222575627190628828606635296062589922834134042047812148095522114006720491467916666762207671993109780995534890837532563144056218693330362873299591358420540134455820922388196413017724880937639532879407027579821277102129493940688179032062035358479497939471980259274604242131979046629892683307249797257147782211531508996080878316867925302440471533571916776014624151028712068965030613218797790555595241567539508162618099858811897199338528499243368353560674473266131389909623487846915610582762805245541621497844699159188732350989560212489929030257062503061613375190118267862179499352495542913971484304333667075333184407485907311149159465064256449854486688120055108106506029951813956140976881483181797845689690766420049524274642522830881360032444226740803184032466698421492170812916922026118027206505458906675675207557355116114047112543755559177005507498457954084060274458457397628158844101018938085151154907675373905800327050623264798946513418639575522137973952989912700931186574684790538816271844138881407183054756452501031689050053528330350010686643127843324812980539191203916728248417828843876611822324987413442875744201612972252003934467237354608591818676816745765855582259927968853891994146432593009371340065686179946936140006149745637209447825992933508241085087181229939276561845913194111809814951525493129010959991579408422213785451692212877899052563803642693542037101771333052428020560808445267601390857509511290478588204752668341059736430594036498212532664500743549289526019046604760384332371127650791515803178824572309481509334270124993468232185601882604101558949524391975066325786948685214855426155971388246922007382408130474082991658496183150761288344207977002325022467581596586035071348273177988601319050965688332870032937898642703646936786324771306732568735164089071479082428748090488283986431004781606623821989634204995419518790438893835309838649286717399213557773596638050021035474011027697444822478237475758118229907941257544496993168467180869039847447519482600207112060683015927996936097441184526894409217527217488242116978361981829144610897061442984833129407522226226085056399767825495668222898708159771758788791832207070088093923425215376456625340183718291787367723922006573177285613837414757787759534228302885556304373609922305587620547945754495082783823545077158027677764151508341853767998809100511559832842794896030429939266897901629709920261056789037551475166485252372886738332324143260672493356325610869337171967271390729919591088933301062851201818172880095526912939750438226079717437600620218500919264427190815201314601569631668341238446157001601941186062406486544799790145518593054361641225193245295891202258032240418062405930796897031846050849886136076369828142369423545554479201915665217400990095293253381477916785919777373803628313731248996948872956269764976643476671559432723467448141008214805097338676262367855274972357589128565796160524865529901319629059361467289605035300874217820806145476862155692720842750415373648686137453692451776026307702053043309366009184259236451417043529707844646991257469208074175520173501243948404163488229864792648918776780370062771990319747948011084091214303878910269971090746699504728770420066077946021871921226119152307408410236613217412342939920300453066507091843935372881098477093977283768734000250088716129436284176839495947526801504547392332928396285816194955951741206933080229837872676795187029980328357173810695038615877322453905903297359750799543318454341285968446474315394652460925181918618718784270858106516048289669912242285120576265862336126132431743255863697213695566397372810006278861095867797571950640629865213100008435580336753697515271348630301528095507816740088082094608322124476937824600757660941392978235081876494944103394855880499564546690117210079893427587498103008951408727676425627902227416373653773505654391997635215375955601672193631569712015061207692425213438373193880486906290692886417687683681804756691309143161435012934220452317472922881822289974126226485266085688098996316837114176158291112703733667593950737595285374139355099397772591466809675566881489048115132043835504724508726388965213917159777044719084453303361272878539257098949191725015707284562995557499476991677423525000961524777554478994423250849665250940587421674089506553520470681975871728321908688652903085114241617721100411818614199381544116647127276021723307548793784155252921622536346277638035955119880676175108174086509086333537541923157996924089219709077434868412331216680992592336091549398168287594981537810726536625440906220948074244723986926748474112227783814338901888282381847907830533970662083348189746232489718385628255960584119194879624894116604104432617769322528159319930342146441516595328223897197020313138823329258726258347144231463319274308326146710043763691747224884552920789682007736871984206261896480358408935761995420443096364141102327671168164982277098974642610562268051451739177127768546912724958471094691707686935109769476898506457503309387565555700782520260806800444050897047649420762466298014921246868932198237846983197670778381011020536441849818968898887509624615124775057055749607732337125942856529158538435751320389463343281372784331497396289906507023366677126561155452417198725894970453477525878690976424152671277617784449873363767066134549096493787350497786769876386105425780647900428140901578820430599310867815502793126470789098494365026063464426659312237465410113112703780554442632293211013894701642907824616181158630961949435926211409525762872582197845806644543317522417134769619214523187273433154585710492921264751110993465344183229259457911247283943135010284067284429914751780875703187294469188233317609389982354041336064777663764570559351826791764564441028405874633486346492512032404385460711088546728994327904355853997821929852057990309566665065359952340053604405663198848053397301887242105453512950269998379708388064475716001921671803815226894344684211014824754067677633632668019075180243341661686994168962671264373429001141440747439754382886383701965509215431190843674556665393117678748993882603132041811592040611195026953327872126865004794446790405254865422294029754611643900470961070128208302729606202578915040247707572101590614639156468946511355754430417340162027811303175263814614904252359689639919432802475018001565202374581629974742034940029454218426918552079518891045603164575109559565884844035235093342133145843390216699673834048493860344774807992234422180299984341109412030464870833615683518089951456484047180208938827369583845396462116005057775004108595974118826303384702986892088096306989366063890005951088892255757682156178250753233861831316958624665854832341866919765629077976695203764119290908318911947584135757234512253258914895068988385383144912084988587001200916970594228795686457062192558481224225216215000919818777506842623805623077602723861141331231843827058686764923619434066360545391578152138144080600967165422281909002142684654531180169404387564300520560228733417945082495369581482351329391089467012656124097370701360995737095886738976649494997294304101658871541050996852680291066625362124489281400326836415984514117397903762629040117031755003011926741037542480291812404747451151158171958011803778362315271009281376484477379974058296179052421041428430907934563408394187371574573898762871718238310303025156046091139145722430821396198562008104229418079330454549932625639538541076993578387983693521101900148980672941318094017749474469680925801512414925517060552347780327753633539812928996591096092942302926661966387797216665438978296727110936500927994976638929616898241240555208886177960826326152630320073381891161499292060708123712344082855343249866768879065006561949416989176579481078003607647745559804646898560197483317353125956598367603325982747647857559746973551063235996511853547292384511205827366840152720105864741615116876603282106453380685022050567861159706311179112463041250437514890609083112479275328213857714387133770938080427586461062994061605509508708891901161926981226063540127445525379758198784553983931217059094510048255888066182650925785327236511636366576487937033814679612752650107205559182289917644008566118838646970585503250690356276875377506081796473883089512162196679927489550943965519687641229358616455436429329657268084110364936349663006799339126430209571737581656116122579314300013993133069777759115691773041141038571599182565309316783126823630381620959841491334161947174109100439925534746441142397218395409630249426987075900573034470589017546050781195109218465741576999886544358071213116578602243969992894649878020624457313309033734585098896294628028832922696156367482642056495931588847757695096041227324337858960671402473148290474026858265232990740580137309523084847608955982485839883803502245444414832044215843366715156604236732732890100262846252489200639548940663981243270507122214787098517141715241971106558763423499472563855589917784521917031772822761802711005311113294019761852306649084281041384849193006546900666203702142865723977450657624318535823589793338481474985976785093453495156964325281030415652049067416720784658997649990200523364802417666470980010239108777877798410585310401009435878778595445366940164409249481471747703461003039502097200405963822988469849182294516954224167178613394290093673964700807093056041834161990586510961951616030042667259698666813400080101684039624812808872181105338822418644149551638768209033195524547439547612741344404349100048771917755959489319346520017564430384193902786381902371505801908179717551795821398762981595173037121427050030205251072967249794607436649612353799096900959515193104743971243399949627474678675922541691758758394437383398696320583695755099103172553729348056788376765664144455101172129793400636988197794558943830978153654847472017591484006054706117226852063541052447501415650938754706470028100216069569771906262824918869273042083030782257474096720386275834391831747537740164505259845378217578999606311927896377434094863132078913447559887468959924428424070910453922417659518276406246186037654632397761124706570408463488103003427995149080246031889525480400034283720688590334787240494709098863983806415551334886795907544790924543065964520726867809081851834730916014369068771349918565170043859299421488971114375089012632181364637056872156265086895345871046089199943050827489682242795387619580256474581553066609413088749783039545162449939490242578706946064461063720086011862602237222435595861291733310552772819885732935602380401892289288735643495472185254989238445080344007471081337584875717120977152650542746869553959123371855322336516237987560527284507260451567885608264431940682955678309169442891720903934267134576117516384376247165230592394558356537941766912492876088085493745050486660875171215607448537743770072920078374195032765127287822204410289368518877502689606138813222392658093696671631485397210215897837007466055868424699862241489033213458496290997650215550329929587898905633669132458104170942211393117379002156650954165835597064344947920150550131363342523556072596462727316634173655732148494830602273892179174127440697203820149025619961069290178750948043180914871175045385704112126483242867604163168427812640027900332176530469918138726301579051706451309397474732624569407322791199012612317108957152352347147104955352041202103553877174533716490259534098850883288966088686129558788325675739764633693362691452687092881246101844696564553490128179451575667146424225406284240569995104484586576534126960180527231581626734938780855668896706360010151712107046911703719103141178470501699426254518808048990050730091500104502471546559453053062598644777606426677028220696368994202275655130551606414910805451629704729627589995025572979815676197849610149613632976130314634790322725282483684565103465269988951043251663036072470082343420593529732382862705032711297073678291765982427011380401618115995689848828869631331006674922222879199173134449774313574661825807926854534319230106839686118552829656478220638233584643655942620131742701651648987478796227139947911675250565482772538754643884832765027582779810400154819072546201868439322363956319754224382497538915727890307021219454690207090948991517582482527788155569533700115968529743708266148095410096041080419195556395305476470866501023380650432636375434006112153601610141518044522574475735120325803947878523471900472473800325107089125340750147733215933716212821995711754874890874854597937823437877949696230593021791157546286060736287423688282916419232508730462000038675240748718968504592595605498840602449574719092527207509447349387400794458304365468693964778788052092421238537288240337036990759195344772179473779522134732066790139287116027801277678718807156981289771842338196420284804570623905275094202412591982831230389007305893310625033764549858508446088811140453420624448767097038052258577577687851319533377031038409866861460682175005697010567446096803563822087375924449462087357546729079862146190885587605537844156018694123679790520949648132506546775323075524136349267692209488420747205211331336064163757483493630031865684173670440883143999964198851455933431749336483712206424333121738289878674794270632055500211401588983959763503297792891501635763166644600273869942811734960199326915570932523832921169820323189346118949225314449355207129278472796526951730532251833616698385366989089869853743536361386025414831309618691743532637895314620990023566474379232088934145136268588246025978939714298868163775095186703537952217445346827770382928659089787389934408633796891694547644708929934280488779715352635863367223002995611627670758196310993343102764245125321199232211365143913707961458872972551002101951809505523606932189624105280046239974293968811504078480833285401854467329405755882070161081378562779473107794992010874983756070696761741085137187020754124945521719682450997361841378684792055395325377876971337741307026691927458215770091075684267964770719281446271087450069590794638462006935784088563342437976143242715959735788197172003172437069944397153219106825122523493684279088873172717010000670721585991909996068628581586788328467256154547539756182752453057921771417031906616274085057267593135006121498427169875196044186541908754134245057195598676733180099746526115795892500197241664747669275735492616504783352284625447293962874736783284912483775765533261893127306280416996544204815449615909069470793466857460439477894275765228899899594844035600752197698078515965750788774437804715989117874665714004969125430289580665735357454206698154981261832336381398899698171837259327558970106298987973690989873021832744445508299525358689575899651514127359063464143209029481683875965173218617968647336845511155343370104286041075618083898109476832196909504356494701920861323376950857918413585727765079506625618439945412171262756298294601917975168542883076311957853932397123488586223141974082159802307816088110386720810009498166503930917964951969859292789099808974046978435499677441447604433307319248349923945409437919696321315909061320616782891646492440712402892138721371610040435372456384231855440181483663692706141104519711776471957781985356530930044143115057511211262766682614278124838455360709729792214813835211643774154294470420395989260139747062089602832112217572771121852254753335166457229743899113128616546373757489179078598253833003039490545576179562133312808594204019647150846669148834032938964768838040106977907995290922951635590962515238380841754355729293917589682341205241801052372679028840345239681595378712712377850801747442994382817322443621648749595417432464880185701385826720238763505693554870869497310445758209523429443309079580969975890520286892461370211243729176476624044909292563335429922014789396988006226810096416511635711106210095106658496005392804310048393499579450813155213824326307918539318643554081823483442568046120203697809169787962626612489193683989079131633448102966390098267065819692035153220871105028539549409308556113850318443308222569918980738013346573953247935118811976935034832030501328240996008631100167774535523960848212357887943955928855422919402139609388241948397025695111837844329408896219509094393275509157310792259669216235673141080195620469355441355766040465004693390976770512174560252805750912354490458391514940817951305637271818614664140147290201982983842378441936756342297706935355249478338343000860623079845739138621865474366412669046075376365472401299505502130738416672618275767043220079162006341662302583467667309648476432012267375844343157892650496126733920598006414205779115878915195749122458727042480272640866755904643581786316611282528002999588308254548079264796183136975126059280998775672784092676975759895435616678115539280954971746313304264258778916047181452782308378517396954793123427609486668415778773693720063597843751204407002544009548146533397368776226048270438270649198862045835635619964085589036770250301829167560858416475553660063597019029930261390707681135384643905597726571298075607587892143057470452947725536107357271760300243379624339532938105386785602441476107097588033086906462011825641490408997279146374615147171017937707917862250034028464905340440733596940794352278771848790865204827516199904713067167345965077308926922922603868779812613746206271343283219614416820231353629738910949654998381321331116135369344528440860786320151512825836689341633155504167684213268312043820672995489961292046038997498476467110893908465492688030585124938825570981344387667690319282653788373032689007803431987485241176214769774692547973466417070287090574777402000341778116590738297823525254343848191937628256117644360378246061800585561127479539152940069313724488682717311347670302901754840414781406663250551782803476914886817877910606090282817095475441143572450810059765522802171230547952641703802032894873058558488065913172289826037281579281893522429420714260782827359528212290289410961092932092094543342540264539425299023431561479313316866335836012337679987402695717374457385968948000291825975849735161487602716938603741606530630361716898358276763773562732008471121893670397703916314568182862939464171214073335957150486609682670999539762063329618287404950723114489397098176450636243100190824542496747717407884563247592573772662040421452663939129982434194978826758336182262268727141147487105508396598143169031704409308513218012076591153698709260261582752554761586197111662717533258601768026905271031500508052075988408841297633706061857616880000860158836356700652178069563149161082877193797213193514499097192769436041051131079547057084179016188048153175510221562027979011430528313608617603674526365551613552376519945002396979968224857273266202484885746017581888066560436177022396869187539333478079320882030942101900014545465690676539623642518810636122212497370711670051463884819221120823979281714298114391115091070745881902631834668951855157523426949070614274069920664952540395461973181087962057600833602777042138880582045354353171510776777807011675160109393341098731844337515500722964210945224123096734110560475577636521513597525510058359707907724441026573628427196140855611227736598174527320297415193516317703585308558082524250435639673626661658108414907071184975030449069641375096441477382159888045384708890319713937301624032655814016447469985072066484698516685642930818539245252290515989114127402255654581429592538682626596696915353484239665560479129028781337816047155513515676541848692283922084246747142859015544949184516565911422808663730454341722955713441530976825462892916570069662865023993783551616547962700797164205589684467239668290580256981526178900884865539063392727435012418478909337935786190402945509601622616729880474571549738514126696395490846321134369679477355511669074648835634642624305065573486854783445314551618058287938553278347510847395227482972436229341746060978412176398653718494680631583897386310766800651104403470198526747145786792732481836379750928298555294704481301193653990580710812169820398278066002350246221468522042062924208619914650801437740147066239215876683373299897455336277096117752037686994254150322803121207238066168025667585996480763299295666545195662634537006856109582736810668386191218396100241361503172933344801159438663702599043535653629216276233091757911495412710055431774192048883202545009434524540976462815527834376588065551403936121383241281612667984365234902988222019103986552710616689412187253446883107622480195061342106946759633078927309039464082493030269582305638924029558218047436475335439030622101340487024686116668341783808634172352266267505741879899133325959307985606047477327674773319772219381973550734339236378111324500838822872183539425764504203175749512573012651098077845187809649592153916868965647624477869706442836139888852136775763925256322803835705204977134827997758946584240769150274720369809661132717528962424630074027120135644630661867973990422633769981657150490170850623205406698539496535256279236634623487065063042053665570283886346820647459737829190698040586566233024888941063121770943274242320528906653921841064555208651052073692174706765113700503148575391412952291280300308208143891551022588493544614086741310959369727335112508286308473282592401944906971608962760518940648502175266626882532321706429526252570254328580244930769573592547982503959831243691380276260277035155681715249134141722577574715646617774872609006849009049926884763259114413585622378278838007666974971803961120104945637744394253168106449022007286890278427734352362168437125401934688860605923918580100535147728439245472033860347912344231280695954290919122679992781855188787494820927699279910278619041158671027762048081713378047623450324567457109467163463173353922465654017466948225597849974062654081663765543273562574316948728883956734522691388900474590428964503032173578108339535131002351554274562238467659621423593472569985884397772587874177244943492981719282113883769918454386779273068313119113074510243295266501437612443023919511835315698028812747296532932114554483511814364606816716528163443111097551035087415362987353122349313969380842129904855894836055483539322060572950829110533294331261060725744540001781399460832023813348129594804549624352644305949063339385139538490543891002058021798271638283874593274928570564183556464648565222179145122483189256907742282359129377101748944944565815053886731516780181679039241296509799430038473088233090413971929219318319344429918164342743498277038640433106264056915381040731539295708761442353976991119928639218696760750740091426158253324441146182556081270839866879922538525163348252055410017571039037208486589574100315391155942018944084810721868278907904538625365212157345445880942072316881633347061592110358533342767559426593324556886978886502897998515796016768978341534645720630485690999717640641552484189452133579506200494836974058856639703840470586021664813151571375810098033899555803354328587706147749258266867866539496063753781992801603273727182846167475426012430176112676932583466171661685161591165093631032539317224524010139268524991548393250938740174733453451007242773877433512533521650210592983163474149734196303017553812158284813448286719930410103868342742186680718471173213688641124202088356258969356287058829696464200996630401353419616985586378816448514330561698529066704538226981989194302049351929714348030066586056205061645795252337161608684130913383905370528707829123622594914609019237924112003903169838370249049677834175325219379070863213730326629377376345742669777627699715151765024181489832943338279371779741199707603015795023230635716270711611289788661962907974920134474887997614426752753959540455535491320949489746818470213999307386789564661917214074510175624892341053858770032298988511963998686416972163796153614276167152303649154034962692082979977064583627436774542540562787781224978289565941732486722391793996776000052556556794586007082987274914423480840580454053419860374089547689290885734878873229746244804765257290475115039987595934134244369728947993329916316171727225008263524053316390206076015544118597972579154872990464870522487630655117829918914517605926786522341357148223100869860302254475194440182676446670186861567548604644722891356503855107141061202294169170661915775601340623149070848666278184587124844413041999229780673946011590922976911976300489625765788324316470238913206767211799038115168147644036917464112739828793928358401796846396616617885782406326785539635572486446947390582215813611705722013269981795742033447412008688561045056447205649027925703078207421127615858678370625526988576946405479088348784271835299920605499139773175960960781642936233144819722493743590228006668675795755314107602079964098043778991123955839450876534079514222271582193645281303459733771412096834235265015769618703899224942123139819286871326408182549469932104261123479100654988089920342372658310814828657567723548382847484705581494032116920392253788969554962754770938753103263670973038688139126717296637067430384478835395187804598346745944519991547901840731984149202074323901712433152785841801786557978511386393930390189873902103269397492199483760592416107339363875228035912309317941719388705730075669430544691327654036763415131787079488714355414731342090697300219616358435059398109979439616929332988105874483140443873267544449851069323044603524138288705601758038539393114254853302929629145960168860590454563121167731086741008086014660989959557128635102200187885255641086311658440889018321249884814952269340982134131514166061615687380854595403860191638849116746762829442869641063395937846186712777146609594341653184912240459248488016121836755031311666471430197557734799290932877541880453179624052421317726821415062793706406806391580206639592591143253825738033636121464484443465851102879904361275392412211726144151167933156584041820571163730404421648890673664201930677530619837410767516774965945127303778489559981409929165366586119072342780352615314545908173214069568826773705026319324110548825709589966914790668763804448594222578287266033264878470098739383465133091107853086089667747522605797618098935807922899654326135921909844469392327951679798706042350037807986182936970296204928038422020191068632023354016131953683049630300266772635727099726383281410724628572092334446264631640105907202030311547228370368293409823486494287124156413994942558889366306668952617460759981596323191219796297356052978645520792843779800281765191729900394710788617428044141015442492939836641790006046167066640491785121391349732187367286067098371075050805970995638574644755903440541607050393860040717167223948788370574986149444071798326661019851845459347445203395007136480886360292295102690924660428040420401235152516452154314213366222821261050452727052321526528373332930312295025090056310570699233837699420347234636576208696876684802745473860794338846922170956678120544476249561961161800596803797411124174843031460016489934166959239267172159861096788817349093304165853360969575956968557739862277915054405406774703922465964633847827197948100492363821519754344675115268759720151004172064128009679832242804816021757593972096740741398147192188489351302753076761517436484411997756945699871851416143611728730600192567746877242637452716760969938024473952990411519155915313443182668300629028705102206735855067559885302975013451409006990376743607390220701286636472051603386781702837286405889570272957199620231560544241014340711666812105494101491093596073474011579638974631309292915678159948417266832749035757930978546970512398667234648352207917894361049926006924358811344640352783759809285238862656213326257521461542908442318564485852010536500544577051098817143371030576708098692121850561608439914712134528058609575387739845372945375712391611120166297623375513052959159205880538835273935715611925686424909510004071213646072240896364055921534682316293906233837452774675864379697070937637542761721506714323234076659417897800130587451097300078906255879616776237008579205182531391790086609913290180950620386882250034183163826561251600440231893108320736698587546259504812093887613895062727881886581510914030891353872695419272527851973762760321830938015577942645609717833743068808260022522863753865659618550142477302599895531416074659760117513349643793536493179798957607963562124253461541734852279361285823150001011617800620381474610805396879098155608665508345711144513318351797194587443777666037061747944928946453538847715812213333789598291455063188478739408942256509743230859480673648909309988567907155729173958733185337448905557881860364466310039077080925548994119800032941923961039417056109499676436637833485090636066416442205821885492071653362524183006004365169247397830345045787357245175251279887592649751521605394787765218636313721114401374574905221129852091395366338133735380285628065338376477618260236696536268336715339730133970074075168607869781474668503181264636771511465140722107098540360033240869315402570520415408888902599715173440245292206196450905073435415727165810327852607664754111503198560026882821309472494227481566772990580156740069594002118326947730160432839916217617026353756595841415290323009401110927233042805850001965456093256423121691653853412894048917316143277490226480438405653746849097225645102222497119165923650883891588929759908343831605732118798642677663257783424823036182851494790395210854922341948187059510187167763915240631643805609608186392751717371000741927481730990779252531130726002503701109483506721308334728354755654875932110872369674311097900094250442429524569201495530133233365905835451251774249340216233362780674746517879494028882199444754955691740039664167968444928225015325199779178576407789285238785333637225320434307063098422506552668372956934385795441107136992399052112856577238820808815737218322666069917800357234851090024303673381120195061028110364009231239351645275181108983653907524791605132921889980727450771053503330238677697374000636003166337173482613739991469724855989071046930723926909407551143808352046770435481430253515456774670499609567147153169116719806575829141528282522982163824146695057754765253681269960998623870572855427814541958394611159404564475254461329063658685862925282629834248206324173740223015942793546600555978080501328963867935705108030246022502503606670805730988647072812115120607321267974115613645986203868465734722798188304757828053395156965781493557264766644158447312974837670694482589893120377499217184200782715882377558720537861072250003445297126749427162463508841265137059349896976768348078496514826064410183212242859824814459105919379767802272804726187369433527691238506685391319803540899185022100991835166423583772852574471857252848969174518986046156964400783980000679177688146700340834547095989988881065400962516339661839571244870943432809693168975222093075752300936264590047462969891765435287649599627408654599165303499831020609439581872698537180212106528154443957382989284218751880882975033371256561423273998194010859196639091600398249128829141488703253594110455102458780386024673901910179152183713552045487330185505860296796370615544730267224775702850535590809827206895825749079512760338698855482560887605252623336952631246911436079542115367210651068514850222831133760068270704848170964393252568235000939898331597255347503366988810200368760335111142320690148887999260794184473851821962215932397375437488952397268582751767684504205866684528050677045797176890242780080134850311524849732523017860232352411545970237993635056654695224080066621849077042562478250311462778748859480821823741931031232394729006266528628289419844395268029175574348521781574539696434919024370799109971245766941359245805757544275007014443588795313134256564234444302731224646513927941026187252200885817301275222947950489367748403631700853621312462085122760443515838930880448217042221733245693427703994869353875424705394247277005496412603979713478185660375680268465544850600117780499952123048869712233498083932547756847368893432187457977580960403773352522764142957046889498238922285909062288989788420808327660692288090400172679840697515165334683066401038582808579782043568438010310579509889192947502733190247296356700909994263399890808008213779617758819382784516300049654472724317612555680226483608890987718042536837814406528125245306499230347562713128375869373649728770733233477884987633799998245004119311113032411168774790762473181645274163211220286263271387675291800157093675948848130345881679071970711443945292614907879933444849908159348563579090642703470199307267977349640894133111898720576826991975879375276349929998314517198288704164829521083983704529531338894598972051365884549676102804953891775034446125187650103323537199710176798793861375126507393513396657362487575808899230302207626262321322072406452712637830156888525231996315332454268746988333469014904169386032070054842132255116282498919067951099609469780746174812006246038756390393870279830007878109821556975556399549761681292159524513714419931128694424166599680132259821474838700173920438411872638564007094150092110291795033295617814964218374308200929347256058629466370958601967632571478070252454100804446985383612404450912538458972388607164468689129659824854536652607271693390292916707087023162233532050827609692491789099653938301532997071682582757451485570659636257755995063588054941923546339297696489731838133998459845310940651638937579583858264418746128343195341760545297883897733044118765055005621383224244865692343525946859562531912872615912501405449363432526525598496026249023606075808332653964966678688420776271896191164563830223360041991268325168998634122903082429958798136733169399211164588151598314982576468113311483628675902114614872840893234505666334383741241268717839615510958744367900845011277237350223342189658757776983297286314998971645734385164103520224157037929998272795636904449890982371420621922696674104040384110701434543357941244228287743993029356308096759875772982896399454326294483416416485531002509030845761504587712689464218705069761561204783862675764270303205377182375165445980290168561984600645329329873731836650440915505305191549697249806261747075753110660509715243790095474371912491389192226753812565631439251962742698495293585486284375288679809239476527141295117782868731848764323187648190251199146711250813462999374515664417803139346668393823973734694961432354111288989659181097198744726901592602125515093564165456511909646073806764800118150838158136998588440845024697688660217068318474131304731585201114551610713926712391279880781067244179711182963581724557868824690108427556667139600743446919332403606855843211682136770965428516745559049851936490263207873585489968094774222306106341407332026130773817901213927671800302478081288690965407028189047954058762548711500140309551287791305241187340588503646256093151158308054206710494005574277847561412220286593853417356576703975160340867720259690827907555433130812229413760591907175506305095250379517851490683280424937975350373090192017318249621378326468394757747241361470931460307813037592956587710012504497930167730167166543290541256338245185062273929940867266561962480368688074301500291424687096383350600345140495001891248898707955444146987927829962642562563477834402983777807950443720744128017283268093783126981874882344544422724200471120697395608427314397191640190774303619542072853703458800838694487941571121673396973055397587784335004257092937813024493804869994178649611948945911721463105767668366546989596733048540318989385061108343540751610804840446626253637472320875742283291396847106319607281207197394728814515694562876201316133801080089496277022475867642539363809936109649641538402024433702118969173711651938558256801876593927590814805936153806341030450224369401318198018212009385675387308581238936697513388195472325733285116451727189659920605179797445295002412722284421658557604768408952732301948076415004628324975345698835258856258754552556316367466835910745060788351710047103759577990285570434599702939277014147886684082636697839971321415122385689003002686611844017600864160726643845288327404164420531405935898743513929698042382213423644817397390084329592008856069558349121117340747520871092527582098625403952543894496166445285583188036232246301436517329440941701076216395604849854476772041787354811898144709453490385708991056618235355826448546526547807676228413217555112394298051225149867771176145447188419068524232366495706292645329407876801187866010877112325114418036876481776081102182558739373765086908887703027621054639431523442551017857365417479068490922578928797152104134963819288422745080364587914515700989494906777202957560515298013143405688835106537377962211610832646627521540431087925855434803857234260776480138672240288596831097122709532617537265456233868106408402848232669698390459872788519960919311300217679369506708210455285096556937200175041246225266812953948037240626494503674980690544798158673202310299556282843541172823935198547640970376698665972983941366530403541231327568478625203981113836986303035448522088682531482718222811082854746860462126092141969116593282077913720467253369015760339266070764152567639647792007336744183385086378142938750104813484786138528844421627565507530707249687343207081990078572969693134740391228602767649998456694906294259392459524586534056045674663259906188938728684431085843026213772641695798959948617098019053838044715281880670774100504154238744854634749545424854887073418248019018191112740742203679194261945867640734252543950281194400638771523877976747409769663409433370869224604439995195283303863609734148571789106494097311545967567946944864758293650204861248370858003176222427723191440653087879400271323128305243928928802351210860884217486071358965825218897984632280280496310994125896954633262704267973630082359126056869506908353699078845397971834974409673050473371384872659817736911666497248976329092912674441923502098401552364106071891400285919346075038512145942369036180533996298278055970796549167384362388824274882821589852908790211138549456978911236614470337970373711326899071607367477421092080987440462811571897630599335229304249030105447096780370583891209059803387253375096984359663474263086401668414459613135143125824976660093858412676540945932997728428166711728194476164085572705779474686166632775866911262592776851104992907219865532624337104892496230289320894998480422914284191354342759014624983327915406252102218569439635233104172791854192838534015617184244254981496842415393840735928866100076473979142916053890430154528796147218809992239538701895184947234800819251878605812077566880542541680368345155893046483987868105654609665767109897105546292961132854614424590444076674387360292079365883082814732056793717972291127660046881916074202195338995728188835698003285856939764578998919029050549596725320633888941717607556644212852657923248722317852002791990692567633673473914345020451762349192867283481190501809226637474578362191560444599025437026151077914711554710749690632508415287723133938708647424235252222399216984601690872711564987773283244958818476488197447154904848204477383793767523354192895025701701183432964809433018136406815654704898570933407408783318833451822946805681296839235399712114781970241254734756098414651772227843476484798439049662968650947168673763287796668244723381917168825922181739537222929447634721099169125354748620677622509208929001603282902989966004303320417056333722911608754491771416696285774316529074406215445307213743851993262584360879881565209523264915143598578938652935314462800012732954754763256114517026912653207743976982143595878728941931216150182688560328557326130669721348815501449771946184803848754084019552999670041165345887832703744258040423476208605712605270577811988170413317740362566427522886664927863921181064611852863886655994367229194199212575784119705989475994761114993238738005856386841314294994863228609442082619923643998644034374609133336751118207939650683195070577603962079839943061225973699514786762105059242833887986843102244863563507564557999815752991507259811691164910349893723289076322424268674577738013440759418044420815363679861811652384270351036133276698936890137279724622436121485799359679101596219220727305549877971650292573584809482460472590518559563678858167904067630176007296387173269690845759616727749223725167824600630371667620933385301226496128548305777260448693431757337200937161739719161111400151676670451257920549094165511461169313823388067535450930699522358656078742598627319742206986547838185523679060398222665493053446776025453948889688442414946554351945805939037064039913229154517220543346784227815781599522588713275716352349188919254682983734198642935133223689287732977735210626640696192974156839741687363944921333022106975308516787307396975312850096390186984007120884566071539007678397218745589007487404775620566327857472900805828456064743423979282041598237753348787454106846686728430848248005974938080449981998280884267806110858519620964861005394178974486012596429876860750012582375598663392847064577018737971133826908135020915044748760482775379859641467338528614265376837155868568596198409643913708906416279312783954590949519048934753730666351613418614793854593366072356299148499977806460573705429772300668416237891941987226945303080296347040214468373237467133737531301352005471943710467632178389578437794727183235817004659385827046097603299342846949021994711251903616639302215766425551771585710570292853250338915255801177423452105987779843739301851338219211930540793414520675465025242279291273964263230336564395318405989335887010169783064427315359621293696298334561287669099772757344492407573918273017874290978709179699452297457368678848058850248500939215393007435918680869073266682414465243965943494147625795770534192271448036964442711627970969592868040203897773756727878448252407252723492251915451979692119451216697254446509942670915390073995441618601417283451323291397477229686714939526845918887316254331320608171775577698990754145373352837705941131055473859536576785768452560929826683660572859045555045924715027643305540425569517259143717406576013783908654348481988758865568249133092227390676734826663733413557701720625069363701522040140026895586086052148477187657283052948597884455596877233665963556804624109201981033818047957553935508961485225806272359194920845693559864439948104471981211206065319107036188532161444120124941129512593080970569024993980763666675159194949612484518345497335655331762162869490932790398019453035503333177369655101298406083091935693260539671463011547387929440406295391189593894746681010535571073185313209909625496656924303984307724419350877060684855557367754706196239912898646181571458212120320866877725928655311028712310646022660649312598443490621169514171394807869547128268036119877573949653440177796851702730013032398895239447310421306582928135642620982049812332545483616281479392318267916439108302065504942237449778194441312650924599737650625438488922238742095093338114147956138582120620302817513594376744329902607015644887172984720657209014831741851217880394697756974873358055478050937872996460952566213168920492233367542307961769790176233381996651705560046268405896054668397567594619974218408174808822493346490957023391298999786757257144629997653474117461614297794156777066879770326964640530982828636950288672494099826300545390792025590086853379795109486786383142052255882221649359460909287209907573553185197077268457232065193182225883056216115584721942721883781300924251954770932615390669373445996986635049496277570363678307562944629144246195355479403779993092664434423861012926480536801789725325682003877337972305358979265759485071292092585925905467846786381244426314908546502964150085500273570975006518900598467334030605182647508026750784384170350336098243479129565902949190623294471872499497881941282827587547615793481310819667133863709653095915747840139094891464322709214637056921780522089006168755119848880715141323322105452781640251432232142455427121329799883036446428279392325498542529374278507152200312091600348795458806703048831585234023623297207851935771654552105957531680214249005294046010803041428544636218471896874938062305651504957705672540659862521547534370497222577244375989843426177057226325392311039015700512307146683893441950299383721991100744795950368471601626768666029182299085654634395435605403330211699206969542014304544732653075421724146704767092879049799517915108455960636837834915185326254150087835389620610097149207357237006724649410963888817677667950545540199665903601027312893194320817528750363591711480150703793544716012085344225421220374467527524456323175307644659702450834671802001646446128478909999736815853504691142554858323498176579218940593205352371921836249880394872710135842779197166868146808070243881173593520206191211350557860324631668256665637859333897576076326029063658470501011591065605825087233136351655443358507545593952779500800970060869390162595480825812956400125869082574273869511694454745748706616555755060093382497686683855827979000417569914395199357996055076128099675112660468198721038847069003308099585881502853534060107870049638550662082209262687214141251954169059471552677509539656675940574246696450488071928396174456994985404027313935441095369427663883396202926776682959199521446299182795660308232882594551286066307956625854824591585206074552987948406976309325456233181084029714504975476085546361423671333532361797837512894718678890604875156405027969658662056906204730920416518366852993506192145257270720110745872852123372972121014969299446622295707541585358490703384749676554863558750726465181003669308818465998197300198126296712021113769547595763232832653844887937501523595440760042337364442757975030970305329860008048001679377363808935924033204997796224642651675191170586913754033323390212137154010657185548962207537448282936990910230001824882803193700839241479445545102263199316727085342444733804291132036145456625473149161914447900596748985853922824312882864511425399215579741777738787050974806325510447087025523514431957617632558295105145125239963040046260313027727540349558563879513169261592036191058949110439537172635359575318921539451032274595964094754934999649666624397671555107161909579875247798225777369990044417105890445798374337064625829912776265940887850802553781955552396420090417545405790927433902816602675673002314634205193980927048622302324927911429606932040316853934254523808034150139611810183922188624346636225699472574877419865214547283962019677662424881925925918295925383970053669872184127578399580923419453158411987678830732064466825459894501302689952442396402156451371938904679588050083601867624748598127248715081218917057586340003794866133412753883325732698734345248391387159554337939874016547686832139898320109245686643054962852316104491042515412305960339223021159763416154876186202346520366309653465817545930357949749034179886065992791402903908803095909967865816126016353668809637089637850610304472024536651801461969714710417359599682223887987184751389292219417548798177450802017311010458131798876233033169155791178208818911217130565249566693977785245796687160848312687198289879195755896615113101088150241866463240567952755297980665776755034240181743181477075948956846699857996435485087462584705366099616003566826297989452695128819514832648722230873753200481548011150245524943644796489180103693342731359482407079520171042258190581530494958116674229951276562017991585828346099529261195277075838787992866447446703928730436559307718499948226847334259369875492233467351202269884376215991977373395119353028511192614095368112725491368828585022428843647893964413824851688777231375443449703401409689872886112189757601659722662610880792999490838074203880542274648706610825340128523458350659640120089827035091451487113409315959817803206621599145748601044206343952477991631783158007158237071694264073275748290555914790609214468172086950271894246297335555240478749940116672089150110162357003495631736524409021016183589628177162894623330233545958442785216971764269321382120386252534942980304760568129296663793057129253045700598554625322101392470837297942759114898192348917869161917151895217154070709769767605538946593446536290605352293491372197039968613918554824698768105090923504313243272288296141932634315063472756171859186556246783891714272667976978094527039351290652273788715921009948762057773189211361670658804975543437200428842555531711913294570859521272310386540729927306333099310726736023544128153915109132940979733528779952423133914234885748592712621015664845694102890272839310860363054640881541997670969058902468012587320933166389038874957482105466376891348421441268564672891042445845426741607118464992021486159784005210278827433940570526300081558489274873855469514374565093164964540728799544121613397014031907628139653988459516388367355049148129350497186498115171512974344057243525824158213110906315384981941645991228771213915861243747410668698540930478556045247847381829830468937599960287477292348770346453802280591021218277889051638905406079972162062853993232843499581255165186444413641005873334467245420292227518435357253140273640530917507295487234359006757563677305701285008562584966653996312948909279257362423653390644201344086863351109508328847438308572070939490152298106020420963469185592040495216021166160035266039583959933141465585535783765568764651732723185549036498391476981444829628057368409914184216930340383575018207155185142067448090511387558355806759885580588810128112042803501088772493285304883623485631850280753738406734628169492682215033343859447927717251550182274649738522778295410687209848738631165271095296225277909481185471131413224105319820783258445892003922682540906239413689269262395185821618626146678836664228489970473943113117832381628209476563628927525420285287038335720293276610018324438040901459734819386299316063066182723264408459891324510337609294682256330870160841940698936356211066331105791357244368636957757193276447805960333299584013943714898785872226553367311988620042911979657669622073995098850127909051028034953617275241094914269236083406078682678626388357285858744354941652407943272031751957862672255625512508323983469137119219588464082903073846735205091778609506306745570451067594881703351591402609939280814822475845068342505679813007768051441580346597760448403694279428594729850783166576232631429717117656288855546825276098404912665343398504816090320104589943224597483652308186010441970043810173770301283588240746681907689730509338453306620921558652471653206085805108372059862369266504510218187144726353279712684996845649196528875346915342116498474626636478429653135609916755614228144577531094234180191853768102678855371922750033371979168920062557534726644472524261461351771441917170587140675065686351602903083951808917467472193064262942625939382269027467181180078290399309645227158082526521292376922990092176572022407974035768562739641019937078732455015707878287533994070674178997918637176331612698212355854053899266302775147335694308854884852983885863357893721133518159081317283434087003538691688000854712744998479430224806526595020385235380615102437093609082333390082050216005358358238069865813868765227623173246527697541973296706815510997181858644487977208874800162660515767166975184319182247946863880455050006224282764461568514683591270266548489871472062211891814678302538015160324081732659773077960809665986225648660411464407997583184219491935462343914128843834621184519252278498654426261463137094775660891996450153877735335506165613859236315147405618592441075152741368001945070365495590077923839228318091140917185227128481522667589897233116447133740364990813659397100733948932937873208726202013498747577551549492381732251500941901353568930874940097803051904662856863141168381255674615684742732250615131220603435666162641970642834925892201226331024249720803470166419482865897199457687837078683649845785329835139897376876664834097206935733422159995800217694521271665060569447613089132239161653660958043097199796799579582302833021840178605333049494309722164081983644212069126616615772995024067647254386009022459580838179418822540029347552523485356070803691446797327646552992680809018976626823622331018958421745928992056982375089435392400687608121016819195025095561018354406191892483156647450311106723227685283073139879491019281061954986911869683988662964942683904433523884558548395351098402883489757859264605358051233566155973247552884566657760977671600312450463755393633443773181094469607611399710280568119856278798735470745371638593294435931481567430072565359293401589725467348336183530979982034432518494662954821768914848920875157346377702393879590123292770906586325369655942453830028059780961732049221918500177739349682894055000163366223212891414294242930668156772019339126739656375416416936039310475099063813226859595546838279098805010374059067902985930218660078513948246210574748279745582928998150137252467263680258905478927443757711743818396582382868625026252157084435616837388291131841288218437993258507522267612505969494615019912419945414707007334535986077637081384372318602040899295920227611924017079517959836768264578508216239870175122710241378558162932740396300591280555614753545753032322139376619848912492322966982050078527981124709413103011599555241748263975124739764333960993730485536843134571045221892937338500123854710335051682811537127394931091390401430656289417935484007048866689046580633020320057067655067453066677941891032910874931022244573570608903078702663982790961571945093718567635454098162354932001920444448910414657560945182272962575920704991999633500244872726319030610406421541747397417269588484077982868028546551217411323713420640165064251447123725386450315143605777456383966677831528032934672216243582353047095676586244444984904722444299387772454781040344220022822291227778420192943620434968135574087896066229540324726263403609209284135082427389563274722254938709324319357364538404230471404044860718693529150025040383253082346429171049691687297887482397941004978622319871654745698615162021498170268391045026294832938415674407674911951887287364261302806878472406849797414843425743369102030601617214499027987889660742606662702667068129912581157942511113979692334312765850890313548867325858733346082473934883406262172299565012395076322325096565877659554730525524968376921615015856627151980561438504890203402821605878112030465341771933564803247756512173052534375283811249997198665352068526900574051410068417708952828597596777923352655333078022655285797282029431766033109689212211145057868370296491123355341492817443653373504204780978163811133662745831404129854598604202058456822167959714366708594697362405572738776895648390906453711715804423812537641434829294234061486499586031532982952862133264754959735140527559084921662562481131500108911957290180152078570311565558414911156799007509367525698093306539882311597491255760388894329075756059131132208054179897801347018840388211834578950302634544074287811442484502152951985009376571694616711458638344479344016208888334586139847837613684766615069106672211302507495818849908579687126322031117794597078027727067079135785168464408164789534573105399723756496160236509696816729534195642370392619415408573824716322238252933415649330697960142901365174621805174400248240503717305142219265000544106898246289685334986187119114795965877919014941563071820563923934344583069734171346635718323070968266681586070021892951026096794799474184938016904315092980104089701146617436946668896381182211940019207671902500626440638933970270908664017862189690384501882121712347110036833313516214205648403113387349534752615620749408404045231490431500261792409650890531960675937818078406412705534000808383399373089829190632536052235062506159391747696195327287852704931185844952473491050889624330321228250474840842566061268263750197271689182863408938961350453276987914837293308132786320291220295697526848942970787740677766437441062531974527046539870012292604399045985564369772408592919048100268407324055749736639564858734110508629139002260183365358078549289531341365198201435736753751496486682092286769138058497295292743681797393434487868011267645473646413185112800119968826878659378395194342820288621300814721864404111372300599524452454525147308724833201064573931109150150570207636854279585160141818449555018127573329023543451156343509709157697070165741641001734818065357053873750895102338784446822429044783666868297339563336436408301877090587032437585246163943025845693592410336290081875528168920537483588041071240589680740036952362195786441600914400939719691346119246601943858620969977420403261855316850808083435432980275067030650614349193392814677620217549084467744205066400162534182203471202859724801799213518431908103690198012105766862146728992046147407091845663560389513484666733423744641594769104728401135537485117471465490609893813429552379326214376996987046744583929772090985256901580669499320101590946393661799110739554143083804808495835691400706952949312523593972239477614659579261832686281648840752410476132221198666000696445597549302231996072024101135847259664051565685208152954078833602970161461330886832204114211298955915087627189916611062846812105100079671498133005717725917320081500127970184463578305531635136635021547922749785311902902815972614174735221148273028502400670325671920033213706561903137985863104394894178856808764275291745553147734985529445705908925179731976944560782147922645733754605344748141745668721873202918639487241857020803050967298359193549342182283881673119456028741034427493816717004469442150460672086826684624711180553786764457621812673888033775885951613073754224143072397997818256147531320004064859154620807703945102843708036035480877221029245745166337696026666331057676298615302406811226370716529480803985997527588437598230402975301012559748050395275963237901254457334627632933685513603803482197807319526499686341244195547363288319653002966045224289351168353273344614504799328528016760654858045539414447012135811303987428184169157207011864773403131415536327964483676151271206669040198931904525663442966004870168107354838980324316319031610297006766539218777195138120315105142394316894245485473401938101914866379666968314428782203389114420045224068449539116082031421868337076655789263767574663982151442722897235178797626112664291922601854994511866896682252758374420155556807090760298319438171497988682630195295568738443623227395634831614262501793019673685942397574645775264644744251361972023831086686371876995266435176486517790473210532018813931322482078902166041298654204334419317394147768402444994228067000398704353417168656390599588407768380644684728256386433162469640298485386672616406479772106164408725021687866147271997282387172277826196510335880040559768478948310318896320055920468089923412759988800423207390408251703390565132048729763823017181954366758022484259106185096284051829468676547152582815191250206105509507838584787291557843188500843937222625709128247352078784996253300843700114150276142339482058573204754633474488630405344585532737807511504186209924343194289632734413124962553427420266625660319009511036433200174662482124224436911431180198266357933788819053689415816538675730293518629063411034168555261299740548003976173376794138169638212964959747471901964042178803195186422375782194653934114956771961000850460535649877229849533135651694721015939457615921978450774211047671200809796847994811778005311611051206091415331035872051203803604680813748022623855439975759462976625998089518482892736869845713948692716769726913001669290111840655207653908323408091205941205159753424791405134532052735250572898087778105300139797219068701398857950282969398764994377264953560203544213889627443321309886681157324420572100516434466483801140905257564275745124398457849460699603110452078725975849697023635023748634294582591456618242028911428094240946549570485903026439612192530849191523824151057135388876665121381582499249465068802955089086142867873809079056936791867631781104699377381321297768393281921673012058256985759639344260092676071107845248633081094568716760331375111467782213181535977501563882456811699818762909563857367261980612547697892165464142236297558883263738463663631025318643185381737536213013582832029143007843876971082217566002337357886645632707924103618019891300539051240967213887502134002266932750046682961396213497162272881353169359499698748071842597072599822787897384335017283462582133251158516828389003085517811516902030728024663680331816199068060262796445346678095887266938812385489716976124132362993284865578745717792384334281264747929037542544654524579715636610562991151339032464403149934063502774285275925329927868822536727874269340329725509190612852187968586580437351312667428108362835355054364252479311145492058077325843253863841593869908447004417767513905909581915646133048412234824640970908475526423432325040637758258658401805486169070783748264172128674958251383589750462260956228134869802298651096220247905278581254259608795106995329511541523346071842903128193016483560453509180708181970274882598314613505739181955301497185533857168273469421086756713388925471872438387152811101094747669727019787557467283113123351122448045572070208860583346142485119502323806135118021608808370074405957891704131238630255118126659746091614437835508672147800238211912505587246504109002304337492324246131957250141137972599863067489402006163895361423648515675749473628275462711361765414484575978391624202921631438709981124348680707158567630076975113646425484782298519727020376032720595350159527808186897596746526078278252229285806244971288273924805123742486074896632584342288723508546944273521640276653634350068813236280873179807225712527365601368324270038346621784422350028948297476545942409291573838165459047867468379292710221405965707533031861572840243866267132081313806864203153357934438678578170329827028749326160250977050498966230773722692918957956135484629929447239364741116455556672541062358197634292595827211798213520880992314452514019825263852033490103276766523013283938981305565317886350787376114085265335772816658549552945432661578698710168571840760094588299893276211756866264277598199789772232752546265817128668638883105290222947945045666433340754744295970215043837006540288049638597749155982782623636029169929461452304936110543184430651124802530271008577623014124019208968133754802365688231390782246562635222274334636537829525202726377732202671795321759687269287168219172534822192550592220868285515892804510070252096043656465898727652514806591149553211998895258231349315769153452420077566442011169423322719631972600707422338709170829394185300989276637097026781643780207697959657101015304219717204468066294495380392037969593930142791431367981134565234581017413351874889829112118882261999296185667900631644207315229714506700376704386572207333579485829264771858990790659096284465614019562596413782910882226909726327905079902344424961828805828158768103569812559936978931410868136359382322701716047254981790818567000957385832245186013969228998679411713649877878878107690637018452730814179084084658085981497432825198500440194325087074426838243397418016305452830510201573353639309526118922938794163490008457054684264708889559653703833172101544506248105796654867183113540727825176425940967593980444501786094279876437783216829278803753820653366051133996876390878932460786240965989522338435549619133384933880482751342960735691657798510031918680250099865425484954686858795935147417676716512472748710773728199599220343195664253206435897350579422897117023449772760896305265302937961529989000660106455705147412238115095086196548220774460864129939427155590116499376855006307136652590748921991218498748873056022355311887484845235891318623083885096590943654615712930610421423729430579998343754085216954082401863949990862321419625742290644431248152369547891294023505233558284093389978328613974768223112385674131585269236273123073989499566493788508627956688692708785476675242160458179269611977765236259662133600625024397043923359272623521473650559850028732692783729456816848058531190410349733226446047906623096586149899514721183974480471708611073575283724338899707809307398734230528754041271571585319830473163349128960988511951668264152081503569035587275996617144040514497157815270077011803798244011012647108759573685417930821398482834391363494644756721460625868681305832315671244329528756169798171148603410103505890858241190035761396499358036487751694339581632073968361086923675065097671947838658756785311172093209645800309024348956723784981053891212249746385186919243413043085639556183308579802584239212831836027994691126503223972112203398386509048592155033255400348122875264715824660702758756619905613745704738094723464250690928588256349831497722502117454415577570678020363566176543660959994414865646008558606615768920474915587046689710750722372748184350600017594513661507096831871395455898524944738293312091544871176507652941900990846549833054517542661251461731960522514478246184555787066054881603133989567670647453979908460807988732922357381423589855914832004688838386480319329378682222949267634052527114742172499920874270071665528350858285983270464905210936099714820513845590357710219987776598089757118930175770156637024417850618471106968244053066458125615497321462503296779427918633521859104168723120370356808082690413057416481017791180538382946622298859907126185769403910862789861389494507916768892800674601227948820852723746146635226196916335569935863511953613571303009783688252555436486612344474982950181815072851213001648137021142453333005953559303334109151337265266440723498384237771354495419119534379303964163368195007539828984474575888115875819608765416369711606191984552711125763079789943398313506424446464951598838406951825806355939003044754281105701617839271416833074180907838900948127531924630615787954938947211278931505671562129562736451390273312300943226492410836546275180416652642037646021927947848907910132079104108532249124910061696174922757462749848443818581670623818862528964061774582999951802101976570679701098025698790200652502241209235921931451480535718405042932684442978774079419284934784886801813897869253729966660812980837276154531484535939018910300889787482173495890077788352039498445125732767194844223444353871536262749308305619500845660046081338869817508668952358827831093686577170303303351568184868946072479214747092420446930677933658037606643325411772638622359972030244454443380781562164215012492549760662053887023495983074296008006340758781156871132410124031456426063976011346159772216363661696316592665882843247205683529589927855290829322459687834912498181758077187891515635685169945362759946087522989218254641565583134471518198249789548059447996938328044664801950811895442779311952781371943556166481945304651035328346593793545661202757370849872770078677658246080156888878620530707538802270291926314558540074051669605964597473194492148893162029973087900020030913116146115133745894847224822065526862688129455395750607990555921355881599298247338303746546406092119209288570517234803470913397478933492094978215793726821538287510012936503659118277705920810522497103670442839290322636552681180400260851043535483005486075156261811556560602280757158311715989424999879206346414910313269431495389743143263554801945393105903845567400729203691530568134452886448233980568586492668457188040316977533450424791525668542647577639611303274835773789354394500267291899397866288871069915358707767434330143333735613929929594514497648645130298116104504185518650056014487858917011711478492476893310162727472996807343928912534587075081649001978948955347886285741067915591500857151300871025382615041640463721606419572746758787103157330007225271245815432166105319681529695618595233091709827703885523046984450242945613790936421662310082367961395012345836639749970511767394612560269128939530233650392300707887548049101968975696235831481492884292155899756573030272463518860166950844717036249404296859532348015160530781362111752536944321596498312020726115330673329551024949955392300725337906158709923999727674316671896310084284738248785781493645011361880397543977527807394502533108730741700387849380120356847299364376279333790408999285631621703209113765662861231584767896557091229532791431910816539449167875063578832929890245912941675440863559829368977562025682842165054190336432307040204478617537187057683666448838012905020153410615831168430848305241902275626673683122261221743460625673302872987752630797908812114390676857287761226800016039146789273451745303090946369109919246959612841093491453909093782036154048571699592161048532241573730635359842205617487428462099064671777290833182646464288368802354497938621141893554820782024797097446318271260830251350673898219566319327052416601979929253500752224189871086826634151650693984851819766129857335687054458733640699331804932852491879622081557183873873769551109379681555784956300244594887755779596037308477791547166085505984664491030324992296485871203015727139544809021840265493154074462908926761286088092798293540797322276581677537937480699584387055325447371843637209449958454148259335282040666288338656927870224490177412297809687759867676392567239475581822270363890711596052214323289720682511115513149874418911336497041956801486808055556583391634623471846725571661499611928966499423507842767599635897318971723298283127084772354486483953666525595482299784766886028574614782551584242573671395693392071806804057284723580062583829531677977366525453549200071204026503060541776641587772862339343886730667692738718738828508603385623599441006276427266743414864359467338569390728801202965479080532355921339301208496975434542721762276041207158666996997624808471204665690937732057340740169378247917850895127672905446980734764208206338670257292775433851148941411140096556682737691770682074123383571052788570813224480865252301891278278104121184871968289265136748831244645463155974057273036636908156892850778404179928024750884998419182774439435995411365685005956147057164859866321052472498168452205166670942497473409090818942701212133187700955530103429737430850807147170774003736203032395305371475878658550123204837983166513202406088581751850054190818914070567563604771726384560624390258283366900740062846769691235513614368785543862161261813382042399904826222881546760169248494950531262934091629866081698786848369969835872056171785233011079273598971242390442978245823643866332730524073712120582523672341266448045429934231843091495333760548539248364432753901608809640022264452114215608123056391395440820397122590764415727766263655852987078791838066149666027160105037961170449823893216236552095215420508528169132016499193709593145174068789842707991168175322669718021756376760878861835910346633051282948707064725751993648777733045713904646279512312885678349061910514670852394433585241978459466853336366682090130561133902573424826355712315862846434103601911630630911601764181107447970931964505390593366207648931487849482186838765055739378964220210184080380721672181619936564367331965662595668869552000237507358724028115271197894016261858736675720898898775538525865281703819576386761477616647079624454772173756438550957571636531693530506932140643369478839481769593534972615403585486942113309870687733077793265762043191428659058085631016305771512307405791721607211536205708135359569849835855758177448479155080306963173312109265277147698293291908150231941007124492999432588551310845761423887367872897522303571575920256921246409425090083008289993126039153028604777542351513320240114682475098839825533704379841939212717988288189644067789750160221498151262229077358002182516143598290601850448473526242882783019999384222808490319302187760042400707840389283382990786099110757784268343206213085222712201544943372947182656191563452155461151990012224454714688771648680854381304380423059918225666272159194986825499655484578053729585425571697139343377072012099978022751009254753548370093655550846934630516114542638733684858655278873348339912124815550878777092465908963880471677896726179001639777149298403483663166745490912496212478905154711954086021691999262756048001575552856245087449919168859579925370966814581580385940987969526793328917412040554665075236959022553476927760541860211960778671634838470751394246997915800673154396027351580828261681230980029479443952136764812949436911081514598366946828146678580641890592171700326916212964896320117673036084838589653797324751843745898996264515509272384932494884554310005291617950216107507131128310708140134919216078706553578513332032277909875256461933631877891206546179791144274100113873138538437200633457844074520256130361197190309175774069385517721506276461361371496748587187808088580271617905740106319553761912050055191426751207657246063677170950685075606653127890282993371158450626606527168477946403110846388589285515218862881416986870008637744885434959246327646574312353588008746351945037845995731876939396086979615626635740297759951259706420424814261650787438482013489082088615401942129782067347149694697639759905548956368352625385429658388141656340072208616904755925763304691360313244858081568390348443111524750553526706186006071861525713976549958537640609545088578020948036353488605530627810097994747786650873224111837256649874293188821412488051383369223112628582284285373712616160014571972900618653447935856099340360793019958545485300809220653047405597291288181220977165535203884263265723058166832065377889638177182660945123644253791229248727325063694908494327599649544211212022312431766938363697321727384357113004978857356311856266803164424950725245673470977672121150165595861906242248936327032959802711829542634201771461708991654221834655665221823093549986684090738164840632608001592173650274255748194719409946326822598593655477785659853689225649864954665099195685617034261655442392524973263299029200188379009364556826844727041689892119781395048277027738377631339483258885448400853501727923155265568043010077274018520169379096869440335804260652051320478316075726605768121783416525704771788106331070615867316674839159742250597616548001243539985851014624047849930999264473849885248188508990215775839332746538317623052277242541429601575288196701877095115114688475500664575326003283712325434658942969329557382264901081972728859330053535089976139971039439660115768022405251747952895347626213886845124805862579846136400757223397978033965106591791293015852825711438884395007854504815544332224914061094033968837046239997879941855717740643875408714144714710844380759907474725160300364280363057043057504037808578812442713203202487059208014851627920307477069926937701564247141396999970654777681860392330698139129258718972276769030873782324469767587895533621235046836436479955210463831684922753433004276803695454095313965293394585938798852498665791707235410903007110358686861787520950187062107096149148424407152406141959731492208494824267303018704903233012094201006204029625589747438310685779514041029237774450994439179553210772290314220409441365104522310462754023029746803938699169884839141907733828859762479070501451604985141621758849643281217988338939850449214084832894732509405085077230714849406840090926364476009801975258168033185144902396922938130546749289503259552317691595629292297185453786883818200737880202713863619033719403533659963856049556959531539883735740138444095008531099179659473251537171543639332014533032496273455083349291664546773530200797580517024704312870467534231215736363306910219513157677674303441633082232013476927946778449316755429442302933354190987482630474805676688158501075825466685886937088975071498733914398691070869155774440058928137764342343873013726572419394387519934659486610383743615313327045317894038983811438060956832263071293347838351264269944217495129241508394545345584189589322847600102551552162233615806076610831840070676771117451749698037658303017066076441775390223536028287563662648283057055544582935405204153449685120620327242679003276423502016230675106912793827553632838143569326558015728017841597959571955993234347910481867666085767072325005785424656735493173167136861487316990516491940831662521319214139744746000297478088078790797185366967122756874443436732201029578805613464425066169524306271518570750547554615906486555407525352398141777282764398540521042953618462054573780779074797274317193353378699484944598958896535432529705793030996123486165599701091214365804992423679690360822908583684010819241615678522557262400639855003963787214326348202860476579902349408526413191954887713303182101194114388388707271048710557631524239370684617329356854441901754122917583168425172420680690964584293232929460808418856231438416225449717027706563313049031583343740294992731589469839103551534020678205283932204859420985077745954413415908496372233352399949115886745412821335733474565061131217945894396361807725911606058914038982687678283072499959251450233312887706227942683729158133307595077046945058602507017161005659982968253552734539541957503647746538836144455787869206384238477137209232240963253841182314438480452644809706410394326290132213911709309598848844662638357731765613661106631018496959901137110411342200871182889204200626091845045770563759805603351639625733811162327298702412218954193894434216717749051614717142443151764332322891491491895770073783999563719038709049479253970244819110628433276549123360499480037793710513692335836519938805902199009923551812139681607451855050272168604766044223589283921640115954531782286153245326512221527101852907939990332211388750416516146136197200504613080656555521278637699315166830998856816689992749142140244795978805364762835414893758545657770905478557774827225368017710800810924363541442292167868738302232149013238435960990071208763312748189157380835932616947376016455564075820738791105457581178870948267705645818879110859447022467182082894080289660291095473715194637241118002031384317098640163498812507442661707362054361871635377672104085579157895496755445391419651087334429545318564693004897615573862021694516770734260214142935034963596045142983006931492667946467042402116550913377840205111763442569996302881773357697703540720787624593437122322361995036908167476806144602655992550326343834192037279364003407342433352481796019401186971346449580226209497986577965784399638154971831954098714362277451019398321479270797020066211339257116467612576676801539504485096280926211305013386708172480100607341980693512013521262453868378545460919222927490263198567793203480872007259196051519179630780302280709856619082557699552840660657693102355309737337648577246696247874970122594369662877349283779295600706962906234570061922568643466213807197848041420056825561539863459748112467029594685411466470970056532375011694355490938575116425263899191948217810107777355359266407314573669608138388066099384411756604545964334471569609933898024663034926006978600480979489523502048962658758809644957048044076119390299894057982208195096179051334442067821611914272017482908951818681507472141843001066836774610065539267870630102668455650531570620459529727132389770657550785127369409775980910052665989518227499027994809696459599300747887049686125673851573174237709777553442873686117109408506376252203594480089417476911316595357934173647208343403746951016931005841824396609613972647918058705217125389690968166632180905881708344152425994650580944902456472966804758436314361831421806283729897695733894683618022513629190282204153408388763993140250286982712524486681680843534413664805130057771668110686591985397171525814919427077538957963834318467748589298685130558432205585850231315832959167397586502803424248855144861999867494254607250397501777169092964392905917453511167155031006707434853350476775406999230533584478126062204961441461511089754934042843789433196696268017254400203197443717342712029252526821249756737888265415506974264229574855384350980625972702892667296801518630662317447669487420784309496569956748300013773870226664982884258165892141127244994508928147725773084058117470313621479745323799375655158290684281470998047535895255045328508362802803015733735367138506546671085884710520700006126021367747818403523982839955685973271382604186676650760019665788292762627827433274555503749038360622008742994276141788186386339640322328267375061487890945517357302294888218181914307543031092660546359667101061534121132102547587415499082666626641004081513990439758871142230399165025040529705583403368576482129106895228063306494871795728701259283036391525944638714476775380428031303559612976931842232451791392574673529502417866090161557628708362240543047329220257599292674195409699376143265943538392688877798674541625315073860390063110669618181604949374720682913858331122662154475651315806761420273134033945921165385923871901331249482724025729045492117697876883719205449733052535146673859214290434455488439484636067766075376836409097349112421342950509377351372877835642142348976571331659470415625170511363061102749964830800778918887518683801909319663358201715023061897634920167144772233398853377523679794736344566408125903631192093306464946337261422963582953762062835319171734522450108979645206559890551143260722805557935670559852926628606803548415735926899446711277407576594369066611979160830874786685550939699200895542492938507728967402102934714900864043108485841537695108395672257007714394696020307197547175400269565764084701281568066265140833889010325763830718076071416368988936548761658217441111559615805780358703187628381346852084585261663997576552414103057082264367007253773534771439499750064145656913278730550347186677522337452735424958402580997442437547719699083616334339654406781624727718785022355328966100363438669168581156777167821183347160794477801329569392850265108102255076635453998822081842026270398655560850912233442541227564426216236573820176981267187223073862003097171215290469086737044165402303023859090571560563437390202549638881297623700431098579516656821194757525808906606823611154580489502758030844707420627172424483515988951016628451207523213528000169133784900472604793535284324153396226789899014918983850477255055352202136525068124836230839997879901711085020763564850818680686032520903172875375698199431955295451429603041706951104553880170020793757532735462203911274522023026574311185055282834763683826074679897954326714123105340432767476699962214048963522203691473419801497901402929774936015781953620616877990002822843269772550344394864023434463714642415140895385457297088106492361079278523879313202514160324923456662442265124471291709565479778446678744104920958970223363888981241427463967847602269044006921171080835511805078635893673054495506361406038035837142940018871057827821182841485166005651028874072574512231783021252001313974784519778750962218846140893622482782643354310191184165345404570673783784254231313276255014271597451900147830730701023597470362985067509410171976234728469628711697856455975386358183168830546790746393555549957575267096884029212871430255898050897677998158485151131360126868838777445690929446434322130182096847460574501936482263765592372330104975729263659927634949912676406668736150546735001427441554967146253332951249421080737541395173215470713627875386108064520952146513148605221350330204347721319123620512312100519400432919086269836655848504526737332567196079746464699715410799003391081231238638564560287973144713617739600156926753302242253033516487111749243186700285706683086105469003645999632890705000928860985447306865251635338361219199634307616714069209565949138021075474706210956136218626186684172591099570748248661729435927780422702879459327061802778223701014034726874100571745315401063802851936015818009492968213256402882018401022056075780883016445952456829118685541837135137354796295054015204527587430939391281039887747119615658326208742983817757268902131818204811352166090229176615944984649875631796228737935300236132141430516284251738753144877668406562643732664690632090389684779038831740974102564462019694968285126824381755235631918123002232137989660542021323635248389556640027087976407911660028833737700111420085779061503527633730986599594986805422995257876256209262641914952392087366610533759418366567856833235726216760517916440136426586161785937708514590614516889135446775666976687822015541203898564756447332121306707356555188739225729033393278358834334002838915131788839701707238447736685642116619966428146307842396819815727707006974896060361282320101288716282700550697759342038891507439456882335835988597305457873933767221580061395499995888721974364130329636734801413782546896341822891980059893987053182075415776563523841757117127282033184839792164368105899622984111819954165705782891205185009449947126860763467837189877080591921610213105696156100372245136963752712349176403299642820499339952002290220133679791367092629991523248897374012975016084965851136516867594444745243052092178903212661202695112144201673061121815965793053091471489862243868553161588121646466016459525392485164816246083733584164825261840150143691383506431233172092225776050189143543943523951938143317820444986979170375776543567046257874933021834946890680116205667968475747585123971216435199068241994526324333955443606618020418201744118851685562182436796422678266739510880892880142666057328958138245579243932669934849960324509878589807468507800075112090881399594513677774569610781186153674517633417976695908973199539723281227931945378912475464941029320389364719662344056046457125250899997171295364392415629780381208982759414777518183602078309600128172511426406548718447153860566783061782994562808855255744528672513322542006521168672029906176434370309324123602641446888577963264193584993067430988961634154770880712590549197677442131739958143163203232159062869844023034874467004437127051858377751442751454809389465846038085908854920794881587001124352060573046357258925625926128305800955325602805349126007031266295553178825117851657613219980126515865778174565669790997572875341985396094316046950914265401855915058626314424095868266727343931332789010196647741095065236782845960366039394899335832825223405338028806797005002347763595353176537372227551094291391182007151851901679838528958609615792551242634981495097532778914275576693207184612172510114788274034463309598086332752501719702404292768907249630166176083708901707814137616307443129163215685114882660189929642149514408788433579296464280659839221960622290921748456002196999865525238902773258362722942736788475206448607355042806001228858982892418912274360824734044842656030033664329146391168097133713162669319244525069199722467810900055342377286061983508017335712135946311633886625161277911367812535047782454954607294466851694911373831949154299031590799332899668576155881011877164771467012459200448246856777982652639786860231600966619029064811938699983713958976590961553611575084254772113300751067055346011922271420374544255678956971093549597772792609126392852494507419097954148411642119172833353301208591036154157862818987707923655735991587264985675198990392092670415770470477516215311378875886554407345397504855677906129122574403079334127101242880602919293380479149118928898762607526893162010354102010928964129647365320481633907286141203479521243990318741295113721674676490690291958968284624097551551563427729179253945611064219399640396148029563933767966946339239451345569309728439646188865585017127752205344891141449768755537997245859400658519908091634362556267262573394602920611682232406640551219044935556934453467356789070458672440767069509145541787282065376001222986010862072454246911080017513787137500994927762401248133485404633776917304665596076722157211218859727274640784246914599781183621773367569165695496588259529535164248113604750987370537296097263980721673998670046906147044948037065976487345134327383081579423646582937107917780048496362727095900275236869721429058415386849964815421306687701166148560170337931035614970935048638816049023244293596769109208336088552759684550324280554630896639147951437335164909370672127065673986610993574583591775685772246322083924639443253243491810499710108244127858313358316232400317238894202827972139038367164729981487940138082558693216647396095523283030156015718882313647487592855047234014610890066278064938708034201380488899191166726848705689490673296725847696457336649372138619173187311879697333536855902393726863787852757770822034111773897707009748745208033077985395030100541457677586363118343764534271536136463622262326468596432533139941992020098293970550535880820528124760603333036370867170392064501811081926315528650328161047110186243446441710976450631928657897429701495760403703726126867811708999159103945091401012462063442003594642077020114221557656780256304567628886870678161515729626199184090943827966368620283393968968591015764183572960322997406919467260288166158624555839512265001978117512893597198940951807211150219360777315083958089945593674075354232008481793328918395469071253279036375631231687837481124164997421381201691382094540696182618984906624316581877407643970552555194755715882872990312697259586250306355205489592112588048214685999823591720637615876560698248487877909202234254218280305918829998943369978868085444177990427145496378879209382946877391597711403780617760887303820933937470260414850623494314367918868821074947842280237076411696576061206913076628608135283203430565864019929464392410884981022089234284384686807200126667107094500459522098972661444503373273741410894290778857391481331397352120834102430323535141286528675631591046813828605088719927224611301377777064217135097007407941459445443809171312081568115411419295211307057691322783712046384780315593024427663733653072697345143701893202181641748293998452492239989724918431705689247331249617482745566290903510577192520682956558100779361368148205507624863284050755634703906135422047561489276612489006580910764161698310827741445564483100077921393047745046627973399859728407070336198199082861763885870229268065428266285719851283090262581531816357243249816690244599127918846454710995189324340478918304053725500664816221956957623313027040138704638075028053266771382755511368614481436462829632893893113440232493294241014572673167014831579116306233588937108089466632606578454416897512907646660052458780339142544632532555101602941328509432814624435567577671096573366375516333813991021762308765124443806654614879968008606245965083911164648862073339163145026137347984620482845715261532219407608829047505181268325301410491495106194904089658114792567783230420719835998467656370469440360918810342969118070762474355416086243808988719617221963231202349027659999026374632877226989605425956631339983687326695968260842607022746654773941229546110077675361749158552500895094649942001943086874841181387056799780374245236525461852564765366626404552955811505476372110455457036486824559948241465894428462994944158977831956247345604616124274256999537061266209462025226071941483319899359195924705679079961245940925914881002250851641084524254100896207014299574199151240561857123290543863924321725457724277399507441386667060613773103833337056703250934256065198394653296416376870050803379216842751725767232816146170746071611911080175895904743563963633301391771722752135754937072032163849006228032858025169783354757456419969452118624158088408036621037183012260800545438493153610013531132917013097044718938983256554636526762274770985955187049488141599585090368859467618091164305115602750630690268317581914776245246902792441424669536230460926750954720909764102526955437136597693563832849480981045763771724865160475055259353849715247047176104785232809324253757429054938215187905146794501936839961820062036564848589523004987210318075022976954083305968421554906560606342539895480406616954335053526845082346877970386672658916651782110200492526518198295029850485456921693471401456835513447439701668214828348016565656263434975911408506950755242158944183503606608565394534762726422386156204097279227988530279723184285365971193056840709666124141233836556381187470123067558103783239518231578671317772340227850862298081211939338523772322345371176323861358719049568913673334577831669492142340758339531215420852431016317973167515105329247328277505845426505140090713788886685256048466410303659331111442335819336245021391442244707633342056957897654117469128411330559560791944511152843584805406180024200721003047113694370102429501330528114041204968425456540319057463222435275458772319917441565620314003516404990297493380787857015044842373655078972371674163610287100759485495312826948002961952687341205822470363228733591407532281710867153955167456256665238839654755442396316907241740897473134396946418347202501095392245984449377411674619070944618655772355366860071596044808061915669582653788752581028195664808870193897804356997068490707955452340487530516367139076835311602619150400393321962770637016895250339807335996953147143170351724865914982398821394671594381081462517113078855259966856239331397658026123721914968583801727534948238139980149072743142530301520737927694812095331979742676277113991884935076695992549971619504391262525521914600970999243092932259494665203090932552524068936799566861485263055970456696804196922338664563489988844339977861473735602713506971896244657929820865621969393075241103330914100686422581180523074641693363886558530159457943558170623925285614943437395547163144706400713682409319941673614778401346033620963937420069032525078061701842779674914301672993706340161288219301999438392658105694750883278488146347278486073557040257814389483581948354919876607250208882811212287434450977234769172079226008447767353035231531656660877933390638962486481054145111063502473507318192407147343962528694186796048825044595856754291632245248479217309988446644931266253958257299552475678778397639760810153106170344914992122352189767352999879125045114601664264639542745012761137531630153145721327262208678321988021577310723180310605660877784594134821147230919747891754055307993128100228582024514965378643604135542268304749699824818584271707422422970720387810955492275290439070677099430747011529870607272800686453387391621806934420752802544820144295390049471547429428522373475745162327425665420313256729615103175330298851305657261855737901555224141818292599771027845823868686587527874715969925999153718283685293779537541008071236002954144801325469541111535035370480386563708469991575867570564324012168728547625086254148903514847581871040762550186791767125977316010599006942428236094769734741509515262313851936850510457683021593193633793072594345379661428087260987155593219207514553787655704715241028732037237182929924058696686596088656734058317589392633944777752895617123492368130539716987979166035795353086466501830151972203801557149118125726048771489271107424118900787990706687955236362775726814501258079747866558824957736109479939117680037843480072281086748153563276274526567971656186649611958878953106392462197163777974511795663615644402146348274069232439670318830243674025622496743440884728588731576991918090895658459157008454764463775816663344613321453381559357911548923944910031911064345386917601322931724044866036186249045377746654462083616054057042861753696802993290510952452590445927336518485724055384974959951119777996741939042428256911383279051183096188492518917751087792458894895160373792346757507271922358561703879858156774001076149185256456528535087304154630211372371301597804107888822553326819122604696226554764428848572322985708079248452809154082429245405168602099807693214557038484185843221594395045925381784716460948825210334012791724401332879259342884630932530387933928245661841931246431674147909532279495440988354989943956445952592877581751308590792229009048788334076679174117967392083105474459657976724680870957208781653843176209943406946832580645581794494302068772391589678013843156789696951749091198677083140476399710166997009780183843881829493467335672983971794978287662127160716699328136354656445566137479676261098018939053695051411679020849614923056402787198982182587598275387197949260670864022768775112322174476758890100292460835250272178151858952269282455971074155227925512430779360563560923992505692100646136070571488236319816959174142753692265891028033554946355461671487748604307100707804065874355602021681334907960806016680324223307835320009271505143424139997925526209956547574920566221655841596885485831662939266407669111776600934202013731723556204169811111584569572045356876451861428786986266932748205039349735552165819760410137287887075730675749447444104410095426541526105658916076143461268077983967980729738031049168446555101705886518291525481715822862616554971218456062437114017343502711988594600089548836985463822682846610357795647495960554911555285860199810534294898532935798398224903246261747260009621321245583083916036673739386913404327676203526407142852815834181963579424507644957984056531691336798988678791631716216458838462276349905507578673351252536514203931188978274358177110224897019296247190255548252932087725396359118449613167119521317435402339846173309315095928075300189040403051192363354283839065710604673135331581776109013155825975827251665718697458448285513383680342061497051615836640815868882749843110486740370291564263076895197449994555024767085220458966081320375183503570019006472362424450313803400463533349171236003112630374963000415348958366960637629854016127877645048740313104049248245134679433953618240167964557196500169080911450439643008450930040486824640522131954065148291794978164034437282530266600553620198751451541876935661189415557469739622047140676851457875269713337229144825339942753163546863423882186627009893529806470578017704382553751104014262280418442213361708281158296248349966695356764246056822452328906336365789860590557785482608238191872143035635381217271324488164235358665753305542386471925470324883628221804665150175431161843372112201899600055836561705895070067399093755334378977285984737858302641132610535802812774185280972975335402373736501487914284899178074390682923627941853849042831995408218142566688121014830186695202257277290671881965925405001781242628460542060573530049434830241733697967246404556928050625487480505138739454031343753592206649794235710313689463525712792131611151171558238490881454548335075734002087046564331137230544001125939462746015028604117094231134510132411588818094561205236001005338594524717670885665784762028308498716580570462722236516773369475513568864418459197243589292108696946394613348778075048898565825749722058876918237334729150978150144180665281335711399589603311960126898895986278141558974534342851390224935728722153298622476687470071926694590622082195282212758043089937026282471313052780603249090650237128178034793229422934689732598671665013822035084045681432594135849543039147433162956103794363657375111294449565067411800242458515458634747527242658964381357740570965938585416690214339962815054357640567885434081514499759244240284204371716679171238525087125157399587090972276904702578415901782980408359450233539627240563318648552355416965759377322134286041893435150194155625146092645455367296718830575422660740546737851131325335548699596422315206133209857281681439937605264549942772807282495871775389758044616035032489290962670393796689763702148736339690211433431837740560169805050744748957972073591383502556870931869628817413487825005867455465408884550920371234625544042434393418873950641476366619250880840414823970339320500300937582469585908044377653747267984915004924850646378516561571477605694547205975019450086367833440571053155237153850135617946317598329795619076443298107281121894274806794041440594116527509747885098922254192830959626432063886866335659083628006294449256616845551209884298152946400748370549008044151940550753428761970633944618726049119034749037743037852065947061034426382069446933771410295842057923390362491183492276031801845089724677832688257428500534298147464767922006201123229142044898584119841903193294454625006565842314644003530407794036800730452721501405934671157476794977203059911110097993605271691295466106071366917094858760780057664803619395105975311536328699910803801849584790833550587754507577594463226007417404665854624406077392129428475838382254090062124818893388049690758911978991721179858842669335698953121053151350270759477418715385245529187203685940092258654925186284319861478935845472410614062153080938356906586691535629231846306574037995084007918875573639703338593102417773395722870561905938422637556579157769815243919135373777947542917897825409194114862832128477842331050438738953122559988293696750847107133715189600541095240457863272628697348975002495151842268926595911632900201239413812180364863188948458777281143778025541648763163612768073522016385290433809424766377521588770121255414078178461070277391381479317280163050552114008164188770999266209514755494773999362360690350488093151440987940104411783953964038094769262858880269611023419358927081246456727815430079264039919131996148592140499742036185296140068423926822669640203872690985928068979685182156038331859596172551689324746506729166342832932511742550189923606071167714340207281162562633843396204126349569555547171078158672614147852875204593238839270585277682916252881558877587819840195637396205180368975816656475748542146980299373307767937188127317852376290417089429977727563221428522271470704891539475462803660646664771577929430332808542795672024934267589378754652843045997095821630709122857731209978552419832993291921842015493372283223664869600353208121911438430805065693807845382898180808168196400399411565229108242155504633585074671723378847641028933684370243963187780619116339126683151127138787607443127753785304755339024434490703342007902251547373724707158461946061133361008344265147943795767545293377421675687238226232909690387734687100701511635270506673355873662438327223411567563036195890589038829187912632716320983485316494339138017586866578567933648445523588431523791248859051858438275390543167983389349147881464685034246655091166779827146008255631040904572728557748600600179046304602251353965554047635848370907865394066903789450722663168530573182575085064676027915407614882774138333801629466961103701430041755278506185955672279718048526790945758152857133184855796853670759979704537377787998628299050884970554362740049504233990499249560833495364554546407643683258916595466492719563130216849880219239963832976415542203051370226569155937540689799456483909142260716918001290908623345340009464279653973628105606560486671617434846652302016795233493565459804459772439435952844017413827021084646040980615715303224378365597831948178491811465000695463904993133394012084394635397946459706996403903541609531295000785272558795695586244176460442264753847286984041529678790116039054098036702214900089140863087551462966813754607948527567283860526386674455531988155927260764982177423682543332549747973188311138574633525149402432187596893911710133655672720383178048922194278756568911958084342827258437735564672211119179797599489199929824812831099932037326378143383175604606344095763421273469120505819756447256775951771465191679910165142138160827619236288903843645863720844562308456949199563101914301342013252552096616674219997387645022465382353466273025573997024784282539997966279457673687217649951306422348630147760515694377390929142621919735383725023949939479869373544154522614440304356778690446090826875065569154306709852438044840232191865908092062135755358620520624483252120608311675014333694191336072997150122615813908891236878797516422373383988380066424381325508661019665836310585066710528676038989801951609360141747021537220147313264195059231220458601220885125270171152574771813253522767164720557563817282449616322321667174036399131943427942213391260725325855399558871205457532624914032263211055515619801561986842646688235304873369785995626490904556850577457600486687592228664846476559475813871198927569699131609720928973440223694819966791050171592209349047840575553038682026312490159781468560457080806024619694177006914622435186401431797127369599029963759994795631006184914036357738516275064107752156462044463984761573810010176767873787868969919182572810908907673701486149725654273007964752958210776750586290196501949946800166720878826510998088295045852399390921578679331439237452182572539980882744007406215802178575647719495336388452444738191468664750166240270250184378798666739981910310146104021990556266777972688549724499419700367549641668833729609891658507359091059151922705518197562500118057842984881897367475741149373403946999284378775504740641322759313130936095794791963896440762202271348667710647762378378927165111104102368100072266589485325568938092015469446033038954333865219765646980362559415053799794916846764064846383250665419960759289980072941135905740441905945104264712788260572358960343523852233433477941802158180939150105583364370157418901243212417646950644070424822632920164688014378479861883793379482803661160338042317272700629130550640267435595468676042430325098711632503939639526301344743873080315345670106787105918624488365584783125070681964991923852791010469647852322726801899303393022739806226902064184585765513377107758915740042873121926899316170641942761972398507337272337451896584136842247639137885825613642985171833403150205149302663592680895593800107107732756076767005870277926952606647462670960823990307322728883108709735821025501849012257648651947380960789460418017422506995175782964929234669153727224258250860459565802005863436498347579575558888669698946898063255956724972020669110977413913791131778826224594718602953963047703104943608552171813492717959798095806764586509056784733476640433692912531944442879865754694109197666205986349949148611762900159109939123297095194750721367517798038574511345856006399935960664432226306992417012984946916456765798700373505812069424511429380528312839593927318180332372043133115014443439131608291917609994988201973096301990239664752996841574069684319877583014147353394408141352799609878130341772846795862171895553143976291650775616788546148485514226206558282059403085644899977202171405238456608053069114169362447748391792368473506935138442544426532858270813803677327941055993905352594264408064570294985605442201961824513041529575256850370829599205664410145902008418944976808968626776151564335055137865147469341492828410753260030740937980121428234217475012249582795063263056804380561029990620517038827151322543517040904303171457179387976108658710654959481291657589432855811264714654024208862817502391909518060733029915072428629612205250875803798715272253067104773945670936163955709036819408407393663247264661724076738871002696584876464569837026700439105737949047873250637770622018258923150121557805286611586381942675321741580254225817314973511966421638848387007001596842751157937586663727025289324507988343402648367534903100211952108165406984128076418249564685116289241922329621573969376713951748070141145380827615555107310226570207279369099765191121555625251986781607173330283080546826619686106496295719835401232273565670061359487129138383610851783887067539169567967278486330656095950878773374434238732515088823861397173574086561872084688605207858721844434368554293788044450311521835932900703173368775177266846488931050085580811529080136911944025348488173889001702854065255723237405264181215766070623940160267505389233494436556266302149961340852589795131704960908965650285127248603887281023733203534770328912210030040456742467370125828621844979286479351540622010894052977896930870185272975339228532057071132795105117620890839197773096680651448673100769687965093332856917401345003751312523023118164036757245065892155649701910919660417195477616706889395473535153293991980587904192737404596994042865046415319166799460483186000441140037040473849444063397719930855261303490310517907492385912393375751233497211915229766684688091516416644124999840360835263730122073106237342788728478641175646006116005404562645498077119361458725683552465168149722255964361967472429250874509296722683220540016810000142193497930631935816437677318956982906489319645267624222570027617643875925075100148850077718223298422084716708303538459721566107930528102886491160610666388256354324043241798977830553810938839541439437418542512879512022753553697846577677255304578233994882914958011901229447532332752935804764227679659724551520727999939540133096465818384633703256485217739150146395281882288029339060431656429131413334807131947184525032435351644266572978123239359529585997949352231954429789478142502149387875790719676421589270922382737411156751732757356162285561714633056842958904167042811103471235421581896688022744205518661420646506636018532093673086547108974338388394082221152045012559384703444008278749343875702442085050675048244945732232439761803963914808427281512061017447101116262627090840326065744442590038662015329404058810190360477972761743981628184897845203846507001476451428093620034048428014091365154560714286341550228478260394708605537174507648774299071307485134616441421906160878390625661677807428615284909357878478644203171290316151380682552755898891329347997503515608805125143682010703208020980616603571556303275703119643249579231955021437412501974022625811912224209947607444150929939982244264652479827977187190415335684885255626059246903140322843391823064055808802865821668915010915003862104278047950218785320100211241625041636729153332675611716214262060038769136913377669104143948333898771449247664654055047072547566606811019576783648651036271882432566170015682253181237401484736696101569128435779594505700077216307739488955895515919691261959933401109638891053787051050134866798963440959105590643940308210584297744615549229508389835686351117300405392080346843882193631290651787386233537808802515010940888173514355513090881247225992579886633144936534043766375722369121953856939922634522852980868879324206305827789516750961620923377526688530908294498626296026124294236418374766719849641273938399591041825219520016037392005745215706656949464177991721914994597573184862970032620903480088118958160885098358827925419557482097886083782200299747941325218744939532260447316346590877131498120077737388319817318330492275897430421469770459899776942720043858361419451049654015865298281549914399559816178622989151405045818243936308869258219687200371448022091283933877897964178636995001091709565363720448469032685511843798962953887561048418583408923262499556080872083405032589633949717414871622746393440109267324862879042314796179851770793336901062345137736672353092340130559318348703177766808809625890084211882622298532508881939209226929027031808726967720255155103940692672953680434364726204703982568856716850274085434234857691861192814067832736563484705493238843177925781997527088960507820918210517554042215060831374382204714040531325995558022752077806534058082074912339426437828822866274282533193977548778232773562662313137795721632993859825132888097293923181715164820306923616024541505160397539276009159905132656008593271535562533618487613561060183055348345422036979312035743041894778241028242203063626528603355903447602941946247520311432030994502721990687456370977570527028426949860642306777883507465827849070220713208856914262961118134751690618100571192691233118433512059715604346183641907043669447566437476138523720142274981470643166105530293704342150669763926154291860211772049746137451228709459217229205946649346964633458066046809112504257956978972551717750347041119831921990084747870155743235120557213372618955471144531434270033260324700179300698493161301923706734478359670282237846348325042545815054217542373398965246075823083981972452440545557227676362393989952491524820813226104142236791411987267323726878000587902345409975102156636480541522681379005985982941318139740205066219784593693649035795334610021997277990311391662779905486253990954262254124477797760506514472829321768444998072095543460145255800773669662697198928482431435261412332476769804578737758126515887595127130857280024562783271886706070399347004897047721897195479071174482922221558174652386576965595578061123086178318114334596896733808827323730334064769186355273835829202404202385328851846502460740753209566778399342556684640485120684532164154729097839543879307755057880926199072722893207165052581910702882164669545471657361128328737705548501450959847981684786988542622978199039948240889368836608816320124332584778479515127376727329278078645998336350661964716489144169465138262080765910376923083678476144155899652898717985302219697124987551496276797044256842133029120276460062492127387666606523703803202580090929427753241517507822818330086233024545750129972508568961175524212555483663092822154449315186773667145349969712249440487401889649263087062391266714880581166391671237989613557130872026847711707513279904774902357911462352073410667053410554651015596022162435945156376491716560337191606171526298717078690280874922687751207325363278949477721034961708354914787547962665113109610405998309372275512697025182524488838981723035968372076705379807020305149092994316891718473854885578326722951498467515400259085990918018126426328542222985434796662476993581255737536102291726880154872030936269593494515813593640809144269364158104011823528404236736231871433028703456554979163081862602599028060655320514099787426717743520022744966567010179484139415384888157034885517294937137622985068208212571567732595239277189824902570708933154037302956810671086786844090660434687132792839819905462746995082622060875030567593283613808843808559613975245870831086106220843860545486546532892144167011735468012137627076289449234675890034127445240265504025100300740937402468541007873842930050061355945945332181296556859978706363241567440043421767460057070746890122045065464740139611679767183610744423930805218654661031346546798393867875917786148142930566364728995109305950127159168238906469068272403764676179535235289427795728826927887693478870720171507127770144962667942724803411888833735500063788617670305111397035558516182346208853338793281473737686698622392212026172914677552616971562028637126177877131766536818720933098889622492116538104244667956555741141374413870725260365259871215538727344949504991775598716314975366993387588026197696368692051357115940366185504230809393746892881864460885021430700991571612037285394976704931472547627617665352848456048414099183497284162668524829501065861082517799832539616913041747704399370416830500576005517964913274766506780728271520729474103036504626230185316228750447672539881522808866608205477092294835429344801553390028268390312331743330344350042980752637336823170586782220627963769312077629339886347037797350221478936086930838321873913288279474901916668649603196175826214012731358050854997656551135362078225174306564290706094297637305576398957858945386281743166401047647720520372487145901691225582187270674984104604927314432494016902240620159102633744852558517023546911337782909194320743935141047242182667019144795110783186210372495945855139686855214771730380844650957581014256487635092063121547822112850403677606138541071533173474805176923137742731992763390952702889999014531026612883484377715295508718344374111819293926982289577981761843460327497878690683646795491445424577089618557296241014830821066076440628515538387408784337088044294385349310848069991208698727620875660966953529427979012169801845126398051018838732623094009237414579479924840033762281338572219413132248802517282717707846341991483200868855866216774536524866347244537824511969635664780330699589780181691306077429655225523490151927602926674893129089164297419469131995290779392617241781055889336204367154771185074751752433459379564166962710895979307840885404172479035132615260285660368024249245575716380128711052582266425954623270342365927872335560632626089616318442417230009759452035977267405037037333128927344801840317157262090434322486615391877879966764322214300862409563524681907720999502630560136015780403181590136792267702245315124167876649444741999577792972150616470536597799832095582469956195752470584987831464872232977656184304843452305811237659518860151964448659433505577087102351416251211228452935712381381374517132428098284240935039347937332571050318838675783409991876691606355685895100285484275444900018502654346369985075214174088784319527195583211333561273872199160049891166888678910123752556337374163196774183690989242540686603068570237154381931373282901009990231642151109479164758982915596309893515440849015151779597804424840639892599496704028116926059786032947809022145617830003937739352214888196998455850692097179904585045552043158947920670696667777826732081257729176611432754657270704853000433956981653341765251569412888765231723813322521188964012418450403665947782233366373120986505519242970286538685147297677351514875222216985729010910721865443842831055108642769916589190763583138134257288185672695693341078135888828645813444568560661288744986234826662546324000780663753960572335701413186918420728019151962840540522737301343154845387728025618823144091545827434950095094268642419088592513278760532955086567733657819295236428842214124447272427175763420748392780780053910648636359691348571724489721401584565790262764867848113586815213989801144852376845452258488853097791760792307727741578895448609909007529442609704924162810418550686356566891686159721916717389908402942721458374149615375621817833827180533617045445555729201680767642649821109278259223958663602367943398160339866014044148116990820815039736325919000667647357848741118751322391541315188840049388234373039469224494917970679223194639908620467378157599029254041461380393724275031143283672012066425895142216991026111980152495301771721990545635001228114829519609416797163585929580619907286283995886271103591907016452220570862924423565977091539655886652477409307004893181552364004330265700871084784348377019933841666593124512871113119060628244956241478476772867989161892913500351050180203668048542518586741604582944383920647100043567171335795258694425490368220227663540534403509801238741498002431206708042093221059920393843683151852252021751851992887245510067371115010343596154512485924642757014269842712807370492898385139993317149772271932876404502818842722984168433408607492086155114717660816706596104609282710517551792726744902786182027936648166919360530336507370830479669564299438636614535954991867566031525550933865470340024518560486685234510436371842018146636617943968388770801890329356736389626077672287046195990030366476948757302884483348310098197797343377283493396284420781836161493449687944587213390417614103048225205199013631362357789919442863045366071991797916283018190241295255295265863895876833508721414917025202646964903318650839418764938009683140533165182577192381715991905426470553721068637354265149786792259677876402112017088601230327853523507832187876553876987450794109078162958871831160808790404595580057017578072636096750918787930031710417469511418514789107953518794673947383526344189665551316150682214344239953763595205816870085884958277264436223755521681882799057690976449425829258040274974989117879168177444351866870674716773852817404596884346286742920226413953277446748501474385176886855673261817735441954548113836493622964843905739107263203584337582164542232899229784273546479437774057410776270813118799131674486557202357815688533998394148190165939737413355886816550149947532075342567438564655712120252454554698087092274660462389804553569078744605395963951145074474026933226510417165500981482957730203697847929967395277244643038883384150500692472872557076316940253276731563273153617710810207801000315807367800254573218014273124116153266493057758078551363976530263786746017720799773963561438503214776432274124281844916296201950271805372447102049368468993296792621858598275360498500839900785186197640365267108654170713958701342648417774723627890309912677706122792494871903569027866205176941711432729197144986098769881291917487968950550225765482366008434034689961096646487809617050944880397447862023063672890883042616035887937666603517424212236747713371633362444632458153998151698967883856680148164637074980861721340718773701859275747276251512719702199890627320968355731688456503563731152887360159856273158442463610476578726821001763358964747918515088898075032778467960610108982050799527235554386351614909311921942384520645485473944361283298679113187368969968002957177312255769088911567890463052656969275873633030883514095442368387671246357702827597008335908717094340195375993101853307859586731895093154180230011896951445866807108802024492420288234371119439199354398189216979730180061615963988145153356302738221564304999030119377612209455922314140728985584016809120987510116350089473387775581762674232946476569460240402611573444029028019719378769603529024917137106045824533586404614218815216772525140599574100129643263503414603291164144252882452788057219434509235293653563665818834271820158851148448849622582508201449316509971561287638073920500119754967980532872800948967509295723346488266918424452435266643131426634721834785613336960768564584654644499668811886201332607867781014505555701070183609862646965890682773744249485402171410754149265045901946131303466223104580851352431792412338768694081509932617917786090544800952442675743686711820269202607490922530907584533294805830611620917776886943175740944795327600280150582785047664844182238284787340757693884732376579184879830948669858422763589473688433329033717786544754765712042370173555106545268104446334047292481226622943985589425070355907367861944542109948524554899497877923630896412055093132392732050306183805690798916164697126186288237894459467057392541060735754913334874658774370743647291400036272019765053748542124790752328311098538606987032535219133507947257711862662754113700048330997295730397930198953407373696393943693173218299509173391242752901082478013415036877602599398011630097453914887374815761972681328356941872440861313138893914991775479269144448513945370166216771692039826724663317193316383433247856070546594326827056654653591529453608734975305449989518097386355623653338434800202528408930608115684350088989495438520657357085382724530835949350335663700695809242117707862067381775660048847588100305370740751112252557464688749421910640633243164778339484614959912145387657409746085630379753792410574664094891673519558703463251915581459030135811456810494637856168123777556977090271028741546117895326291316820388494538763559175349257826653614029230124723878538571064017385597365006181567809763126452710756944999247791803383350197455566299740070297185637694069741616962910413022800840919198469457461169561167780393969043304302714255679116530099435458553660963323340917221374261533732121984726159888446893458273450826119803111473011681198271030826315596535891893018104128139520522394520574894893340066698062770740403961336107859285374058081118690505982078115829964996519312575652770038458378383656320278030460120047624205139400972644623691786241402486188763420549677697912310569224060517777616095674258260113977229433238004422866668758926936787132317003963455358470138093254342441267465175937627568445543652830007559054904784841535698621030901858386905940394471029054847053844712164604665173526848362507626290234127753388272940870330514090936186743009595939683549902694764436304906740528468761249970009167814956041669185809458178138680878265521515291765954698465162161034826857979236280698675053097501539212141539795528900667671469884834406400407329127264642512937921705843338314002612536707997971104649365916609938464664447854111758623206865451518501841441337065008767604690552638897353239707283424687564232350406968762300836716317894320817940186235432699538670483418128272290222286193639578466430652528463767936828925566878375911966050918356095241401919937632306901122847610507974151285898110687774314410972827955758356224697618129226750561428588433360849896922667524351888973289271130549594095700090161829263734713784594915454472521152659029738537747141783458707245046450168585211493332473807780364504689243958042133551121451387700906682944593853135514927102725766310924176140604649996029502958210437452537094835396922377847786090489783155638326399062352428867608940452994036915292664051239530553218178647132348038674449083846054369004470620901022311323545397123688515521459398216249707992680589029753656229476152888943703038620990501592753176155826665117339075076208207519474438729864911608649558962138635879867454446823684045624687217946799379633145058640803115942021648955767528161515212426843958522985118213660130113468102204495458458544756032276438705475787970428515308950873902037645846951296127269772988117436750159681886271749396348420473003585512161050238405855473385664916616071445831370857189729675233106926282141533659235504611374127306600368690696468503558957760028256647007538527901652355400382639202178855378831757702403653668920446926990601660717735104958888249047052308556861467041390541580549513228422922114503525614957222259351944605242028275520604414735168317305967542794909665591381370709603018809956385646738874783416071610274301472690160161439855667245961293723036622871850712609215050226860759906390839232161974641793877907665921931892975109784701939206079428037227563166581639536687988415146252506289942294019136991545354857884497366481433732731037540943377051859444189498859443568766755622243750654277070247025881136294054959180542282855559858960711869221669052915943743981820201968861334772375922620087646040975465433646412698604448040610928809439844415903072540430530783927570710761277166701071229074301195330681057956104159899604624044016641657599335385313804729166537371183738174767235481835729166781806425868140988999629136429664238065068420604490229768874161396413165003468047852641941325784761077134809720413816503061229655142879294730944065740195507588161121610862791050890012040337926052229451317752591321714690091996076965662307889369242368637758095001876641476585169472427464634083012637953165102854819934422875123247692853681326840618132468485207559740475019211941914148535934220721038957553562576478920728925963934548416776374250123680733255456625505380036284034705166804261550151554868353707852965381993527012853597467910001679519277022340130739106776274882090269405829588179435583897842605868554232151280391831020336383497541561202464682983903653015115392455907062733615164099483232442638172972297599361911183947481700117152473270497924110336908562640124937267434996723898786019275817258600811742726008454289811823387081674304008054902824711297733237511714146127896829468316856856273279270370338716655014484564379469560369469999322225286593904920340800389684530342120352445893115398539272988948887901041362461211373600086535756875278776690298857175994748885463381105101142157404486926569146526924617619175455272621000870055145724842595894787925790817640675069796382236469973178089429260459323936605141209686926625476493844383883439503542532604781581081817959596965741274355665373088074898441671916944894153363680422205911319651351215488441114504724608206646992978096182403162722781952223513557978468296859235547431537328587899824289190480785818285731953469584275948159311291160028030157519135743427196768992941880620234009589439171083650173326549914156893019235824601926184469999968714337508124875446156860608972721581617750285410869312232114628252438766301620841132784851453896301751032779640210392633598337781879072404871822548727150221968162450270106462271853016096924848680350951243386061340020399178189620388178177934387062518309290545430194862872234922966916530335929506294403804668230795522364954090717224031004135631988308537733376537501885894516013422962189523123454616278030366171611214923182998053468675086129944264142298301476428361446722697055245139466568957358837343691842844813919775799087686293542983977024759059095295142253762572303369912269304898181278159030325590660610789188303589942741690065034782168342427811874678441753811548087379560049333281660158192414431586161415618823506459155938464489765194322474498691939141639484431063577773128213016272510380872787643142311898050002022674893663025236583926021994555485057971651267171531841453928079339330326949848072905205113492211208084807424390727777469114036556901827716597895042252507291347185506675792126929505726653661086895510213761913261066865659481374791341776078302280000524161228276038801322796232525156175597204921622373627651617817342541670680113629034487096829757439704284878913253693320100664888467896433921081153775523018944346631563358497220225513827900591511965577601186748462640672489353553480465119884592757027707218135416705636471529915642399168040917898992300379863794446820155131860879026567177503148335653649651744627385167816003378906757876778662797047522954167671100391347047181319549792751611037889161675161944374118117233576601508354504941528830061336085403214323796642327367731806379698676049570386430415915537570352139459744074794944365679766835352975193014929475114008676000650849811174780925940358235415989781387952844028821840561010288009883868066493454535461094562710529591201033205282439046014290289652225888978447075259001976994011532686162596510606741567469700003293880448669931790778057695876564938400731585916611119486337137712563060973914308432022721546385074151412221159016973578266610621203610697461000079357163815947549544088983925800771691898989100746849906993391074973627229405644835349621218458272763834014782854322434714894636794349203474493212673234665083893768514640986034299522134827835222480696552640121322798492479083229857096281450229358982157447165854155454803316157033538615325365070677097475039477922153607441864749828033002320535766986515397574638253625196025922459040784312069942694221671087624324082257855546536485861001367917048239680609221641243910432048935485045197944898207435909157505780048717972872800002446233783460604572760279059057374706796038261217277512036633922130512354581090540596603116527107442051704515476811782036291281924524166545296182695046579545819831047337573033468057118207103861711365294689735340777315362233887918603024454211902510325138408734879624198688282513227120915505486794511652996055412696675918505869646822912140492122472820510366241321924059082569019161504509976210706022682654822764929414598973771358573647467964113177137224690923059868873858097538201843929165692676556886507776538203880362312781809750056183427066021760362927353335735628984756944979317510423745290661750470865596868103705923181286762490947392569256174315958311486953935481843634742154110727613179504008233869656159042866460740241271212411157767241331954060518227250766761085421454090231140228352168374888256065358471330029065212791746876127254136758339286140061746706510001020745270494123896937369428544709845412317532889896218135007283289646356717878753753489532221239220431259176747803377929125293250237035279755590593646013969502111878196416705254898883153676425195781894902510329482470677319670264433495774801235313447764381262965372475263442699628607163681204749322685677972752858678573661879808919011650673249954377479698911435587744020666909732794813128060036092987590880692384915854061249998163060794130755791720050309649394152674416994339107632158956403358416266755368759726086263337248273150327963986400161146482688149891933117401962432349119351635585648973845514009463929376328736071884575035549329883146133363923644235237390086040668861232475914018915586447464680337968350662781954914277189223938714993385457127854565281891764150461431247213389055922386273000073129757437210429684639580259617352747695355614984759739548832696636433239661486846531851821286069253334938995957015305640053206185954213819645653565929818709844690922231981728598870692172303852163671311319861143445845683989644863234450127391105707112585162972062821816807671492689942964926745421066228142806633263723437992085858946493153548392298338661736050656727784077059881470916751241473202614297120699889976184692569703301131421115965748491671502765086979029280637880751859996903137244820041555865764504051890579523506367516937706492387023516277428147796348187450968898758482217022677215821682151892599676275329107271830741252374231735373576021498164309619817794781529030334708167381552030126771162550688011609032973203676068321979598658922149543390159313474405783160703475493646697644150163228360210736807661796752864843690511788118913675812508609524701699501573216168611085623183695726599355542470143297751324452810939431409208988937275914973590403755174033017080905756386505151388579540436150179732127682580813894910870660169865299843430891213358794668452549644013678499600597305753559527388424951482782648795745933492780893067905200684140486816130279315209269168161151779915617761918776369240873079297282784361207629434495593200234556629821926994921228070919407532089994241827341106414521022432986115959292224944899226376559670635524570170256545632704921262703805955840116822674647914927139350986206171356445794792590485727770509853385059127089352733699789220990389828093947225805429204694883451086289543347866193762243536827766479696353481883980197911881637229861090060031670166912586020297397127985981059813449081352076524165386693210811190754876694757030066373844617663249079082911621030932017895573405760663341232501883841082582160853752672900089297170334961591537933806753240607912322101885481904018005025522183524231778620478214676143944811497287676311122125651280739976510476621629060066152431621083569615650142110185669748700515812731434913438997575825073630414289955902248419056428127957040072843286176499409946500985382522207801666015193342654273885307172596678430442432598877552163914893081364480413898891059391449928751164413996647266797568858174284845842571384104985731490244945979873492283388000381584968594096928748051016763122301776763945001636139154763890903702875900572827189606854203502225566758140511713174285366739688780859011510573641525187709093298342569047205380742664127630037199686122394738333649948601882664362766435450294346192163629898009090905066272785660264724477913739790233384870425606615982072222753006378477904868584272939199189048553569900495157442459112407274806708551391066038877498916863011480679079647210147391533105043742687606184397976482424583349482715150070296181431047438661429129029537766878757974366140507227081329930535817697391878518975685421276156842764766897297143534204241188871114746069519295247280984256055064567006670922401532531755728667340185223095215130531699357615639522909647936833435864093943167676711267259151771696714675257480719271544413503838950180466215678844490625934314126937726189482059379678188920719757204540570944472635707978696455600129737812713334784234829983020205988714376118054929536548597244359441640026349367883446384762647510630585414084359591656623940971235394806222650447274196222144033933440477435346927879147312922494084035153764714898093751555458219476998022809348586045065399518325170563225601258078965984456510636583293806382542426404836940897637971536407784774431685504756652302128787588698865801102025889461469557875030990478246537735203145771911658898244798347707787488742878063439489006765535326613547774940927582151946907259599618202911277368246861572256426432363907184140041366888788703823012406645237853846361475057121462782543322520576792996682800411167039628511205344742326556738933312846650694270035158246302568537972379565195178973449279674856582207365955788067666095920445073233153958371916578153119028580363572317451811693103455173892195935218335560793604044013534195497263499320166251775747917863141680012335926889590480804890302863351992171034665252258266862573159332173135877144695120803969732620089054721219078679915534186348349936495906108415894533273692163545203319490724475847123160566729582429159966809861407088925426907323748609305131043406626927275567151270412399927761609460407233396826210358417766747611298008118281784843275808845504232412263536061282148417538464728151175072313752815406295473693801808914917888775436845961987793526407812353193024412702412606859033625155183311207183666490459938596073122353133043698960808134229148584617992441092679095856116168691949394764997912816961457445450518054980947223172035066183269933467736999008383538225054645050190868957807778306293300856446831134333625633541498570013951510696126654363148690960902649374460407291823623918544267154111789584093661997574820645746001165480976906248913241102904949474675201663304920558438884572162462791910474280591829071038813376642270503945401706898574933579736581402030677230517736777911905811800153157095807961420747494172717310539568448006727224753322929671307728779432528568359933651068565965954018078287676221942976660555741555404193211662297808950534882099652916494131636370648041302144910140191802262992203287456183783959607301208049101975543235544098446146773020680798527097904957830698741838053119830275495115715802694513429976180182721692020142780734528635521198774657485329874964705357903074486455032580342182747580578825393403318210654013079869639945206708822579315098830341726638549316126147395217766978130724956605428147454465794332986813931345849481535032938421557179847493062436789402104704714837193060257444034912692974478005801739211064486283921929876420940632437461846780198496657624062986641968253852802183934304700711774502081554190315395925202614362465073857946490312612918188665843184526844272475484376114199220950867794602002457392968403152486045286338896809531828186603974021241047612334950575377897114102805480627461998965877868231182172035917662876675206080741865305169890602861273751599473819615778235788729751921622083266758924698424093000386199631502172213828055437475127790712911488887918742036960802149206358756188901396754582505607089981338864233028502137168383889614953687570150470319992343330307640399425099529457737872022184693667432392310824266831125051364350044627055001704522913243923050434323556339991854693227485849948763930978705142151085963855391890354090613948523924491650478904657248346537070898664347323899564319326225562095743508882171958769454914155299656396956575505871213928555591423789512325484837914849172942193160970662522636653867723844805325824662302987889375876302639298751411523351997001099660145957507773031419841125868413054211997547059451311877464742763879171196486888635731903790232365731269281281416703646062323565019906472547509908547741715656026725101865686586147226363833632392395182149044126832252277100928604447357478155506820378331708720637264484411967730259387828296330141205852172174016898697094805940797783777924607279680378683872382565693370615340151634508133010334042242859466086390848247623239733559985810681161593025404982777983048385780640355947159057538647475103122082005789264433420817106630588508560788720426318671930083917875216700945894593202928354256341476618818975143968665805531514477991777465572745993085996250131724897726210555834364386456315680098981828907286815382731400304784728837707825255900870012545120722126918196800931068796408072793025218143602698622748749059224547704395901642231146142880081179756113396097834395677430848932886401692550584802162932750322552186431161449454497027889505819071356413300277142445084644541635090401786448305092484053526648650250587865923319595980997862545526790752722322659698568549102880723140953216214679975471840642051075305336280737813913021900126322148593305607450259701446363603603215898702248240059475231943749171187902598448604819294107440267868021180529130201960638441567252457128042536390114322208900511698994718862468412690905813285214252289605142935193461505321176987076278732630708015988306194830992915184769917466395623954758612601869676872503264710597345552148058143423042979693868349347836759197259783578353157535064628163934551304719237578492399025941575086686124925623574678540174415309284597389936028203127327203708999006615145755944976723343892564858051408236411919542712463525438068809476569215989701475892927192173243750419191454396054577836634791744287544133944122334637673392578472589698355534007307463768141005317930993356043475410131015779973983512909427645850561625440521392825253624118092376325494239345408352409780892619785640678948432045925806925664206351357116212363788715099684286209164290126813185440490840582437325856643412205817603433042656755932724759905419964897334097122749793393779853861548299951221337308646116210506210278886433316459548292664988658643199700759423894067358743634061804295502947646673700488207338362718072365919888656625372613206999049217745788658770148371643949458235939084363755647962037074747795694844784521180834940423493835498624309905967306994628211384098191470940348007074284087902634907186590006975098946542073916772477322380939264344467207788962635240176584577496648516993332766647247429422731505902978367349512431492088355414829858529695589644548982166895982329593034478058029955192420632018119068472936038968948558603853747826397549358886859768147653841220131885778487485965648683786144678484525144994505144006908681242697293047383559773450905737571925665148058331818424950049432512839205096372278787193760695043870911510574019257317760463008015739767143855976417763785282629051352902436622083339564077190382612763352472649472829378133771434566553000417285109939628774490627182903889032055181626656724450464155391043946496129005488199441125404117560971473819375447846922430711438380622098358859086964291115618342172481065546545993104682092055284082127142409613610669232064051360510932180359810448744321830791829951111882658194599075352006365248801115092034350979525842385787908855432547731055126094734856735143711915455953087309481713098495635661467902474682164675885181498206651315866309907058510619655646077463338475841477872348301474211453785992186154324170030024580244545892902928336223914462216834262523492195782068424224207891013737663481281902621876634575315806068314639778923955684861864447351508041690411663526700153089501499203397643086239638823368349652102862114033301451208325568050297315196782275388185792137852224641812579511590868886086641375139217529422511140895216829161196436873208608063915581574665483842022636638761972177072166283411177195739360363507423632076185052672873792030834379276478618198294742376273411036600891280255350967911038534055810575877999146072479529756317844608681689433179333533213312207818470347660935268303569054024225574859237953445168145259559387562835464545984421197730679399323779047378994324668661490716621291568231865607600256888268858706811676324206731724014915855781700109703463457089172636854172480210297865546657326736534256738885764425885036452175216290377473481502746311712462826197337049845484431965784268991797393139108620497193935241752276249998860182810108032986679865320579095040988481059170421117490749819691019706490267053769706472366199385292550515163420540087262882103061973910829480877430182046348567618152155105988055692597621490999400807111994889461411835484009743400498201937210299864730191377059262661258657597209367331361987001032387331367814125765383612135661270622717967207563953942004255357932206018613155306718616212853750801475677047237163376388961652866276150885584233830141157451424110904691748371435263238008106884026370028694381440461176152377272087860220662661502532511382343149642040128056557781729847390364205003202740994153611690943762753348892595493853784571835724771318324547716968214047523684693340210779271924382714446091234631509172486286406275771506450247203788220489817126015281279791315216162411803037707404829215651505701385371409760887244335700777735845577145617295800276992383789947467260972124174154659479084481739391247312358809282732063527030456055470523476440495106495869399029048385105126233879691793242611109345147621217906813409510535818548756997027742993913297651548102197197985437147270039917069879188413533318582908251558645318789181513165501029404433414783436469765142614386020570790952945398065758091099555518260753213831571212412970869282635997262695083695445525373811055215426378758004020689629952436925288721805065584537035349018278348008773401465292029919444201855680407449889142044598714046172384605107859154838720993072256518472821816748242115595481777061390130846361810464596050246324355284824613201903727727163036053957951022615829364727925527561705542152893904807210669709502979622872987810153975031359980385662342123340437570726429793612260114550686333304734865713312221358399219705587193405554217072698049314379241210925335348924858834880609070611944088043187156797393885972070562512559102207327507770674451263199484332662968543438024077367620131712567334367743888184054008225094372534398124312713787954032881125779702165204627671363026386520493170819991364157660987895932518823268629872694555119903094403799540897729776593917289767513869975673859368689715063794848140086087734247426686434761045777033335947723166238948195435331463200474787765911526528834226977843747189927048304905411932349335152909105541234120990245602111330445372511224528955672824354832727629032069439788718182191481787297946118682648804232121780674397836899869093175967340069271047488457680763487589186808990788476767693347980318297585857281838916619513733155485566997421046298673698776286493117771343846568823424741221059132181842421469490434767205449029383135105692650532523383139678733251251725035397547898290576308053649207074891203494723833444812174999466141907520307946151682104787883995301766617512906759015340906426601488211194497083848501642137848045674979243337814581266259626636080069646138414806406572233255620439959787284705676726637925528406454779504776444578704984057971814377631547801212386035225113766043017865990951175005649592808631604362969298033205990041184455617836586629153271788267448345360477758554304370786561087641690914741441661104826879626797955072411938737689486198167785102285999405586668830912823378405743490709407606669012521505753736372310109764503679080524784062628995199816054793982980719316051905133567873214817936863036788733962970572357262973901917892330807351965070651432069358767608082898636344076111587889216227323578344630138774244839911182110791342526863531160769723467320224463219049386693852989525786767771380252191742307601800726860724466664030395833765232509152134922161105234444635079414323488165940820054931708289424763505602463039264318521305980448024762498255683178811523710458054001540368063822170248645302987365827292610279498772807290454142142288659352866587288501892044524518620015782756965053139620594256897928581683269238627337290945100151568838713950402881603181308767085686112853949255449493858418727293069474694475413926759836896679383800585987960164225245123696218064552041222458189937655646469990123747727407678370299970273879796782790358842910284239121116221301010538918256976717696718024272641426748064117692681869170282037692772399472735331268269902719359296397762944194146242951877178545280224547627941978049945852297077464648642974045716077705145258811410023567517996121884269282734503306020105023089288841712188008401770870464993097235948950187148389469518385574682048413759313314150545910522838875170061984008699030610990637290257276657707930006681608510043130461253051271449306907218913372295932367891971708226578011860901166939721049630754806331380578215438676071449052205840828540758466818605175326606905606309311327481291507799239809173176656331510644599196723546168840803253758403908626348176072582413390959459397733703137835795317132949072698262147856865848991279529673026748078900666582673856833073392794333621977737259949813743346729792403242409181820199476206026907608635374747229778886684120303749788511465906988061810052904980990819042402465927360904119249253353590591390062490686993316521559343866142339504114465026156837329598648269061839874903543257553738648455303395815239379506802396502421141831608420742914614723890991972050179237896262021497244161376844417867047661074276786354005073008131543251620019373315671555313838175915381333525487103306547432613229719210869118429335317200187632577033102998145555868860288902869719478273466742763413702112169081580937552034398666944715550148608359464879279155635153844905338507686310869925369581202627853557039145532889749926105672940927284844444934340803579012928468770603596779369599216418353495551805652222129272151879076302354020942579992863077675429594269123475188279238722530658181663055132789033413573458879658128098554206220096122402876960945149936221441123128171018741721072054548023585756425449159184378387451332048187041487002641086687382843277559891366742721495049546753947215512974922671223994597802587113346924472004098585097552304239019798725115257902060022491459571583247994933249264173847136172811852433160938012432701360247561662071327961640031550347842976331971555061465824059854597561973598040403426201138315359528222362889726275287005752589749110680396828999369473848267980880961429717955231172655875134034202124767933141345256735933528862130806668982885589658202747881589155811202888508901003024719666072298333018433755164021185113927202035039380990991991496731899656552732123218933657866649654343197432473248253630789074749115692081480467024810679246894400247644435843497569140721192358211079151242256929241939990955632346311605009588276081447767056288873975833090610974660242666617006243289278649613086339564763247709768393396298910813395034913869746009155106591722107846413097322578016630628040763398645973317810245742162943136785676527795824377653238520159363470802582299242120105039676449733438280620627222052372015475363365380418904144508162392931316545710082849584214035165877548798929958332025870961127961699876616778876403659329328132865099646627639069001322749295373082770381836953383314661049085562131852939706817712241305994334833269602588924228141877513163568976439343048152691274626839724679148768922257657034150511491167714729094722909715236931834598984298247173083554891732021898022022465386970982010763802658091440626718906047215948745822212685710528820740679862573914088146373017030039255439875510769863309806630652034894576054266881575466406872438831101373364991120237822105098958839910824641785812608379581797963630847056829027938990982301535270569997100291838062946670175015541864315628147221215448383703213873873723341772799658009306365940696111440428503369833877201119058011845186306824009400684622520338753827492178273782997995524929819473916748587932768080390079878098292699323270351813433481675581707089178512790793616284782774038311014889909894309631908787042114855292888879781825440845545902269246053505461022197838502411127755937234287351481750416942978701523283305463415412350864835615897189309623658188625447559847849369002715248813414956673708982546881980784091481441743805812207697171834011827218842238903468577025056628368179508453223002918279679198545698437566369971203454794222434905302939390244531256179259428901903680057880885391318227126250807214913754063220032844358330902949045938212187685519430733471819147689203791061287011324178633038171154526114019440120746297416278110564028313353189576408998782171467236680423708716374837416547317318832608777599542710031463036762966373317111978334599316128704364517821884934614076339767291873015040958144245570940156312840565448850490049936947708421814313989270020577258930534785464629054975005166005478766767123970886266571156636500268234593864321908558658716709005206666256382779908046471269018849395520003548692848207696675724574618338992127522696954640547841773963134590144677854416956326538683805732500450448720955250135304291675867672963289125875680839642026034498606771863722551818574126824130161515861362617427527725783148750626325427095347367491661840297587727643629439603201351202393075970940114171372307620468063536581966796634809049575121543555341758768355519896154233290437983407846291533697625615023506012142505729587491955026265643212006470464543433787872593958562840567528438439695874107738164930628669826668270994223237665299340442911714831877258141370511897086551419614023065026997561321831193732101202470601298394458552884157288116706184546247824049748328635496477233564882405947566770416242611043516678192756478085197631440593182607175261901464387664167578400824826084928416112199408636495899523922238456249950564186960467123585139396987989098209325892944901449857840664824730725599238462935753894315353277308538853093041851055823244297514668490634326166347832379025374334725619036374275281478913831434153252797375765280799579359271865382495835092838239322355615464529416301371214117621380527390629500562986803834633287096444004334866479323878543440778349745964481085503657447147888028320695940098029377025751906652089036689505788434484932809052538944471883030407857245453472688642337385204643617801288109300811979108667870801217486184664039219697028949092937414815506842213241287747734375049383799966010178878794339625899299030669868408536724984559680216602389647045920416697259887427240940810987902513313367577543062853991990163905997281980785292125327700098614810153856355078375824394955763875493723976422192092758286187592067063995165029322590829657160981752006329993393776595684895625887087706807006224644661986248973311251327170206101479766904016471285663754670368549474488435666111839119968139240203414459179730399934453415659365123342787840388895191125831149714140649565422096877692865221968029084589487998716112498230588161753713966551975528065859104097746425385741200429604428096611830015736272527869379057757188255891111971951470898904653140047891001272342910316168606357177429469510665715238139473728302454314478822517874443542971094557638737377734355261920639806932314302907625174337074445350751669796157488065753538919068732955960041445425364799714929835966677306288620946559582316319868027431500227218079300271209420620595183940663733053951584616122907435575533899005832803745990956269632820767674533117564789830264199198519876258372607194400303662778648612066847632015280124644862871248069693985345798679302395315413916696762944011583833862242473968867427137066560143361351736180720265223993424295667629001625728344496742110877894444705887502393757057801332930594477341881630702574279581534335938923503974934020183728983761849371291190048441482283171849834580215020227808468918686036126366126486157322669942053585457925342468276424664691563867049609725013059002119959756142893499847075784163207298929885511479379429403820603729183201595346578328397182759524386637424022996417365466211334137586719792477609163019300970134589297719583521903244148147380878985633264270221778501907075757421597990543796809542736662482224472097308297743975928239638508438022851263463959142849751965854241069512849083275979974539246359337627005320187333349986177927880173547874024663027699500578621450454781482201041349064744183235815634258129668497620171143676440655244410916444504560631413882296317126218302435654094492617958454244092030676634215529468975068987761983812638022309332889055125868550848042056202112302392803995848226702083315758657556963144028763377668799055473132355000489051568180050691105260550328816666084457796656201627646640589357674068692055214536392000914354222620459553390211844516631512390885268051841378190205404444586123195588170600587492117229093146476746657994614300163048818076413895515550978949969877203180450714621608650247272024987636922882790336300483493108338401835870257961219903366360093614043394543496782761471771071719005233703055009434172516651333724512186553134731215197377202069614679238046822111713332205669209074895266000609659043355444929596867386666639055714828661839278131739774819062769775677304544277252449602229678609708028728592213268504223957918145637371506418979610168431902239922039605864326892020463757800916432380010936823396281117592044294569006389818189956575934658897461978569023396986314580933333169986307830922193780694102116041122053272796044543289723622978260984677525150839613315272811747222372745973072142438606128319931073613902186060051079456560737390930605947098830399258259682134578894858990224410067303177856524107459396262195601883366425297599141859024396143236465066947492803834309087820216836189884365126392037901425934356935569589676975910326577238797053178173545297737914542847609342095852991985748682175581207398591418517087181015128745875167134483860087668267345896369330048895853613790781040094371468356456541560726226372067853775005341797927082559982415135945695583939973513019750348301937030300947446978592947684727400353506034989688247764245439943217632535024452674145289430314718087808353775876761810816920260687778389660789169944127187253809852748709803719021555017399109451181525788171717047432099371255965577995305256506448074225890558911254199480106197309719542166732699449896607237412030831271686370907793588977244063993439949994262919120490511253587464093670106251481854489411560918178129406936573847442643499271985421314974268938233553716745961452651740872167169491649500783444828637342867053819177653911836730500450570081274343897721999241442489204867190142544287497516301361037517382593714898432853235458553768241015651487579251925991512124919214592416048413417605784923477760708472260843356158180621689462384246814728418785146673051793844217101995874427780819952547233459279749883962542696988677813530702060025582380916534708489141083524675548594950644799338503562286032409314101791987444017604680055710499763152929271118608869500253706036880946794429321193141655402140323714433264714441632640111095695883192647396239469990195740008369565725547132002420571054943950675305832166995599548239547398496545878816908296808584509874353054067983862310788101617745862308002367215754731907155436394350228792542664838148483524418069786878570330133057812966225284467827659331771384990600093320958519126899742297469981700619439449752488210054624347874286285790701088217203779883513452537182180552051706821867424389818211303660021014858628809514927850799760963429371765146673781037641946843289040784263835263853422156826068375014256160179067954393272129293804230471077484275245613824815297086137923545564688195915886404654524986267214984399500961540355826246319187772627123615167170184667191753685756485530227800510349904966638642965751519220306405672002772126281526824709038032072010045799827989350254917486092872949388688242979286617999619742491698190823829025694267241004305545142023991955361462038334710865674770741985358324105269374247872126076487811405036803604983042581261621585809675988391988951905645895140576473479697322328553003574559559733082351669387902655242069644921114388901129292397783199095467140630317700882264750988070398921614611741631939200257075437042287487920617338358744799512192391588720390082665088506136156985381082238100890606921715787772415063830423922940115113686262611268686889766048166949622716627717280364477033199576590416938269137037707435509254858739114321179200751996514889064320505151910066236249583529840283747215874393104745169469027464123296182342812540358604410103974630245420470380166650799525176103843026610278166723687955488306344359111459173006973856556315394357237449640253694203256224669170170253799959183419911244056212321795203553463950506787699789297129603346131828430335190624853785321411284707192186136580302595818545541839858358205266110482422757739768580080509803977131364530041571887535804323437240079675938579600655561266427008030546478956007312602755639902033433080051990519349012098386992800886766931922231406271628262720650456519967871162036147766439799372560766306713475171044179175771331007195054879205830681128176628995455215622755402072140163863927118236646642417133620422197692286961013351097347435623923615497169367706835729007816628595549230681147584508378461829849908380737709199989784914129882830241789131859051487105889901299490128049766909369592114647377441692945310279342787069807970550707408511426997092124050146799971331841946461970783338204329314602084735368139593858029129468245172512470383887541666027879661733721811158432944483047764694677379594001594065744268823972388408324772589335837754699708018884077175032763915112766858640147034111794767998536848960635533049897425730742946878937623549403469393656805605624674537481387876334853070010857714219268586798863656213909273837633322140028365282715223650501685689919420113880095656433057753927494477058435852749286708762167817691841042216803967353839007496173553881793881494164179890027781547240492848414936194984199881565083021007114431339210901787551462959609021425933138148218295201280733145788220274408591521487383075822771930961793581158081660192541944799954670527559284930863786933140370818137103782374405032716942195064968124480378806258351120635785564624809072343935194296765065389544580273235257809470274813271302213456987854604557152437717617372103896994946741159059959076687309501106569383847531363377868573398546347313754134204098294801330418819628482274861358045642517440256106403730784441371168668101293153659926089520998746349218048215784059313984976599035269167124813485433182787491478537394317374143710954321593901415467488012756355631304455985822749119258589683176697199776588082240725180498144207135260580615948811356771178240168690303433147699918027403713588844230942773421294596593272953950389653062496845185780058411539864813870245226696789276446490055477115229480989872457594014731210815789022386161175374729901667406663451338989173965033824923877771662665975909871066978263277654955424783321658053421412845874807295121685268673389289193426551381522594716394989761226880356990808934598593123105510907070985600371202348405978584259647252916611113022148595457982136297626467176270265359354797902074109688243090308631018564772238345770812374181586104370310722861916175029965064662026863125837438907245892105148484669881681918804652202915096006335211605318248836744883963590339324010730052790912024011684187043760345670087641408809442391677501693851634649019813403305515276650081350876432055541022532482046057725219392729035017783320013792425120045112795212253053785413145536529988158097977958155338210905961249679496240973146254493000353001874243366023941669874472414317011207056857154459834772263181810277378239345628761116451554548027811765225505927476337859616355888664710834554196006332739006889685505920364908501445193675424020695838731635372493900204593465175949781920355368510007850734844617419381907395669366156834313999634414448900387792361072735077138314587030663897571087814589997621714881374518115456507881630551228435788725174590963457612482093853534609512699136440436493076467485822747744277342318167570540381898987418280063575128721429358260723862645379049771402862683867320823532419551126327373711337396698170471700052909014295457701726674098276202701987329563905149963471646778576794188958164967930457000739608862157694156328959268141689961990313514712152731933382547802348127019162192982133186121503677765497508573784223427673867776471988641879183921807274554860467711850023283413272940813009613753129577802954913131331287976503979899000509856683545664657728279745550458426934126435721200687757741702947456778895381310967914442607707418632973565378464705773818310686594827508673819584591543738323506430685197577987076165968817249101718867577466820337363320196552352382231829383969474136630870347705339186809636850698351488120954927131472120963260723809227619365519041413740956791429253455790597483614814051073797098508672921531854194208447237343537493484576941770395625902337468809736643031282623877923938361855343750859046965215837709936012030862930345500696159293377930860023715328825411144790923932804800048928847647537740287909512253776775162275582020307314878798989390919691104062652711524340320874410236423100549101104071666485609382614804361289765962345654071852790877210783970692689124560944424144119869339117150053364061144113639498842821736966343764095115740834449499680006475200711750061662565300571580955988924986366586791745515348721249889192124060990312778385117291288851420872531367121856648575899691469888564197390617064249632655557456794163221579737358258514836995706613274501790206902513388889256679999554332416497776089182345862791468435820183057998019663547462747085254368962682683733612795495185065486952321017918605897894497013428887141953153357273142986423274023825303997579866268802104924920905479026401046504940425595642037860781305860845620472606008144981686258802224556036820061956696485493560525934650334767552372221664903956844539210090904034096734497290199677063551410900843359057227030096552691853677075270491548570780033947306232815262232070505418522730799295028663275232804898871964159970704745883233387373693215036088516882609076619934325174113488071563261363970371620852940624950263462275056616723195792149338229731822702172184321737350515270783267047775767016219692515703033881455375757299555388946255854476884814151502438011566530708319549641841671231947101028624978205496952157462729469611523346544329722705656714169487178708163175125623023026660639959432639056937000951179533943997348790645730773441247228319620109519211498559422394495288976416485869242797229730959317930492944676463035464263185358853649935099340879011341888244410044611866977377375628229504555638319450776125967868046947601621502988176071283288796508352560111340076634627247236969387155725009018852671937135282048537394491132921597340621211377754466200941861751612851624511242509988627599640801490012730484026059131529931367905961015317550346476478108660035211042768867843694358631493355005399249865230531927643806049564682244988010871454747345353207251866799805007345107798959782645943548490217569660149648010827650762307993879133484755208144252285897076621118458945396269597038462673177361148303549695796325725985071811024338101120318116414050694842278757704308944640237861582668324246933518060247642613342137855759302962134169248794895518816236737343371236180016165481617195650386184949401736867432713256682674006805358142996850412362394181815792585165560341106240395661214654197609204401988474200505448880205580643459469736228220670670334218831610970314942823313794031825135996000004679771540007090342438037319539672803251093206889470678156444683199404200980546457405839135880313951537517846209361298951961498449973463780005398232056995741461695957796929945196402827477992873189501178494053953346675850766888899047784137264302064453364449717557450669849054245562117400468054999666396224742504822070800556560699927181533060318505648465365588333509786142033300549839732848640740736359006905865614264574728269167220501102664628700439422379252269833887397866100466043394813337134433889173576799945040426643378455726262384052587953499477610506550031442843277126435166313415804639190542400329775285612623915911819971561847907382354286030003632028020094945085801621337503156943752066581481274232125355355512956400622089477161495320074039153842785374157990365481853739292596730422464576561040227691634617559761542063119532363829285274777207257781144055519424149966219390015521444468391842787417255897591568874992102945198627261785841820151340066804026125053993858047377311926197956779093284019940441602005084480914548299824628824779612631105550650569014973157226991702310291659917972589115220911875936547219410164733318644704780364197794477134109024277385573894252428445699338191410583914756006031981022765820565991822838430337659125303305284123801943696035498170004240300520065597109396746146493809401301572499948441986379776108015510195259792895494250303407989612873691297528731936264328378791885234876153566388844500967844461455697086025602460414412241379615204133322010878414091064927778992089269793138344402768722308157506006158506996798124492022640013721421517774411978100921382923465691974938553918191630274425618238065089549801235385719326032110126090831263496395792188524397787327287856761529796956120219406680048698944316297989501049249776475620879420138598498601642401528351599100275351897715138981179388932247216755516453347099540132554921201854919656682677539236202322456457919405265603748356566374933636590137535056211200452025274210268495254754850559128767908654002949863022160627210021541953657046035864565483569597906082719210771804332046985542135146820231892008905019378653370167952230093331425986104398243750248192199624825864131063758485851856698127114605127114353642108944553090774885868258350943396715971227905542205842835852697799571701917731066749530227855437381451977321966646115563433165775012299591072406148817980108808532352891671975021599249085943780389805819852703930666705128082909867577962510038492300695972338083085111474462413787468326001059563329285625437749228255161455043339459724319999504954184432714895173058641761479719685606822616853674292617285074798387255206870323504276878992516992439177428636385337617426983306683254935732953713394947801908069795428569029605040111309074156339511379664328833007649379756844908152123607766327872523711441787608701471808042550037619021185716269386630694920735112713928830928835122545416691443378495287706658122361725161492018095219380422010825393125240196183672319669446014506157294548605527461549770389169420764672042033129263000863296759906604188445095509397825961918281568553734501750280638539495703964276200666210490541063791050099824790085627411254702414567058884882417236894446742062883430394590928867657849472162659916415821623624475486206504200352855779316222324286886752241436762682117824486008713687151393457535062658949535714768094702067266751571110316519911376848928874666191392600482980458851353098811181433098434994753527383644748941880982306747872341846238377977179934480995980346658666423739161761206314401351755893310866134514152693977327405339673929179847115792282441300222417331298559596958097747689335407379296538251578565594731449576467558089049123579572836020400733436683593482393736996262224861570210107074065529625129154948221802650647491431485433378923379639303393492648768267007583442018721794051651429975205270779163424744690238807983155042240363269951156928967020974935922824865079574246895141857143628121566556425405304207554363445102295700624607909195950844823135777006678918116106166056503392360471521654546613423507157167244183099990039876243094697507491813909520021510013475731690068597479073002227720315005284362484005492537201899318623236557547942761509117972735442154354019385034235888356264673963228604548057695650383910172481441192242980292015234453726759676358806086304175703975170193353610947096242719232956831928117235616187520716550452496895900128453645472021267037613960311109245544721744209270701195048738967101525420906457009767268436883224224981714265727920977269511970219521164824584607142339614558671324508942418340782239454678963024627496755369262626527948863040048264964319065359612452373633888565854015646693560546063959899929871443727709917333896365039946397295067586568561334089613660236127059496849990889710732111562677129135306236894502417004332321292237671005858392034575550671656926519528452095284262543496753311719171072832813744908533789509464145224237811732204182265871329618140246471539767195530471250957773339619471219319775638627760477821163886085330912145742261840065819863883631024432610171257112586574429787876692887332941804958969876199169729844769583552828818939017335183029293711887689027402342434720482257813098756036778194453377934608672125743982849755545298163745377857141584623344917821767744210802558476044025889037302746790601363117083753522585716029196344999448615727035324118962002922910443690143985396065602144383998570068894569531520353694137384699332854003001266519566807201239941588694305040682798754641454260212184432688195428811594424324652424107181989126807415941337601593437162863372121169789781571799425609466373853823434330714288477521866587219827439629733046716295657780414658583337959059086869718916777964169621615604659098755231030577022051918988759340038335109440262109188402815029912966000535734266864107324608290937654114288109810533697384262123872821252673708886049672636599414738887401259860736890290855532222967467163611235225973654259059615114970951653951872621598745262422450943110174161667252895929113972865817059720218261697490993113886712502805007377008211973295013520301326671273221207031616811065890501847709541626527784697925590009972468213993552398508597200128063205322827068630581891132512253108857781325606094507801094719612939452092858640585130273145170490810680248550283890268730534020114003830898378920771161970756563783216379170604924323209841252586570811941812521515982252656500866817406292115161367056561645445163346054885435545917331734797634295400823727184843654665736296196919609678967380890712558168296778749616360806337250247319803024086568651770173304727862500947307192954386538987820668698665281428489720096877346103939123124089344330961263761806842198916551904401700958041780857919003551974177252651302538807201560471734006998314931731664971983804148441539102732718323388562026720418813146173490428145048151816499478229079174856122313519443062919985254826182548760291316777821441848728009189876686839811070877931818955724461772994154899267863096957486818806632108832788956340163301028511677111854905492634988787701335262794331013963006895455910376021777415749072554261617851084119178520010509604342819191369801952467542575535589278401920486020291654487524245860828605236125394756812566600852202820972345347867329956638090660633842254706311166367521969061403582548822905128251897569214564177587875503228305822252991711690362887166837571180830187972412235038509511815129574073759138122740241979928326747633566011875522369319607419456553203338529463634215658564472763515627108354174274301448353503805827003479208539355777735466039413906814392656757586613733637130462861158165993386496140226727875620976885074401098378410484977755668768638172532930559044084133373771109390737406457675404717349862894712501298627978022829040919974563639962679079221449166770609129099716848266100208827932172221898192504983630728767671398153139997357216568696370143858547382048465206145951414936644784482706806746220106250303546807161740903353640731593332252931753074974696550072632594115841047087231612549907707484222827897666632881029882117556297483493800689125711176463079865003015007516477222813402783895542204739141777407072936634648443467483472597385829231772323117391846746211016177629008134503126810508485085501903321444381029131280145584582424504795356378037456372090499228719794032459355477440338327259556200758542624927180679124317947101900258676165847172145557164951772319636320703426608500188209066255165073347336121236162312205293564657220403494354446969443017213233951918792173957413039808073385473957587088893299337685063137680001420938513813892642089924546047453327904188210602615344021828494500551884249955529073664285883816099357742746037848271077768039064039286263383473486746120614186345109836804900283912687395894842262826408121637752905583193783364509196225330317754491944069377988953455259237141772152397095012957854473337085594369873852345103093973463952030076307167214914274322773405937018422786824590361514364481771116562899922398909967260527777032754398260088208957078794403944608993913963156125902265499043660126515100397975178572192599725746256856050512468584519620261583943458402685479429083226063020581785131225833745612252764150945515164102120036826855779688643847691362306765281871646163656628975622639786773293140535059729198915939406106203490488657471263998497058519956467189723213028071951951453303798361196996627853500558419448396053946353271641880610694624451364283254705544497344084031148933464282229775038100020231353581941812718807987308824363015913286915713097267099962571196524718237595995188321443983630163660160986917498682083945139549681007496242660632707470214683843217049211729411528990093627971333579645179899631603739910972741814180243806718128472226595007465969245569906742809155691526989208932532037826917033669475281566427917105050566260720741516960635768915437241587840278651765832413363960374813464853587340924439031766693834976058392332122633570639100052897763017111785834001335346111910159839098855160508643326723133972030858621809422320358201584075100102767777257125136945446146497203714906142750436226375058077215894411438143523570150495712155052095054653159657331061450221844747759372244780510843681996421827764082551595350106107605679916616546728690829789022134657685373387789607768727835712561595116639950793289729669031211626534871117463372807093141736462891673168854022007913574163160274312937464799192756328611173746378594377190118504371784122217287869003133536376279396563339159979729771286556448995973115603741533291902064448229504129992563803854304972867366139307853376809322221924705534466284627071736478528760132063730984411218329968620338684850498641318849427681519635473407373348394806924018489999877180300348432320434461067299555205052162470067017726703800808490904824410385495944818636642931791482059580715016460797234517588109116042388445945720227236263366285496640740573424715564608792410491019434271384595752403156944271471724261996387216110011181763763500623666420900178670448809903200616146595054988824551936888198469339940105780055401456410767227038923696021245577276554967457855702783326901637175075118518113137970942516919614027670762856144508497672039536184622357927279630267251725831324413968869431018076646486498667183680829938991758671333377706798887146306713058725647320699682686710957294710314363351830607992198958965320498311699020828165224101254650627348647654902522577074248614141606665486422242143723609568966924819135197939835371226572856700750629063018378599037220939356147340857970238986242250994771402567190380880303450619600764439071367301744118966374660198963399892410178425284995793362667405751741426894970177209089422415641527173555606236066515439625073376824091895692239232292255204921135390019071144373063256481387006489558186219651726381005922795618212495126388540986256576917816295181744478184950390863959896937144930278138857513065946100740281779716359494671479426772529504262712383090716396207722078997471600170399053171325418953058482630515222426097125751099751194389933414134127120358403571280317061407687040589996430655442345178321867277332749878316378011228191014817836764348720791182692258506218657370833417063716456504308459431811151761572561107098778040112980947232281628591967317625399238458815641258064994508657830679811555606136117582036361315331843434427222420324109056150084789227823571845341004799644489555142710511493958294646382656510983683452697400137269919264736783888756418532131740163699530260892825220193816826595854912731770329596658680409466268543889840942807360207380169967529050417207047871386588673626739333405569185250870593903966076064855132708130457223747323913436879159247109964282331022990909839725587382176170832988619804777405844547528037047537463061733427600544223090735639294740664545924122982364427822189583763853354338973940233500621747838900499500987829634673245363826559156858016684479767101641170749319460530887158031880245366432619728814859314616225591066878389694412145461561319172855180319627902905551279579729624023978299229347017163697326334581255684939886802769870258777880117078947952821982055426585668084967271835177867294347995242568809392578982240573374997389801847592368637598400993012020748328816936298581060676916975284628526472306478337631016450955985532130621676207727783694987799628854898919078550323400197126075376171649500775008210575664134194650430323534243820892120941273157571029437349389634425797466022463301828653359913086343073286408200859150456438671460656095326237779770870094936068237098974652603589904274816046506825031283925648623430695388574349119472419534345980469143228500849480665178540184184221675501834981860352628297347992221311872817550730639924368653236212116493933320963570802583782573519055387075907045811807810778619174034959948921743952863246170529421303609761846898460047884521985059843824561129834959690412519094266838848739813379372185394923246811664251760157907062448817630306226383794427672707671895404718815416593047935301955061458377109413365736307774892561923994999130978599125573892023653808690012209067774846399965522460719762768601876354313602721953700080248901802595635844853411593999487485251210473209275006509362536854821323336546650880413042278343165024814963949089692736832049002738385124019227538808589066377571765152622305962223689484948294022826847782244990551534515995592335777023607726943334582222125527022264214683760164950421261981657111340555921605751315928893882939024308207324766471981937935711591901736950671112381276902570638442528010266154928361032763466577138531793276778559476555119734334193918507489054990139813411577788883595582660137484764253361373581316451044052130931127622602183127269216408261578221241971310653017260671334260292135032237167925157191690070339563323396481892540587436666443416893594042923274698185018518149373228387411460108885912362734859226127133520450907236084437626883233038853641535345586345872402359792908385372697897891245581324231715388126292029179538435278317043912136708315520979197493351574732661195913709395776154113062749973981941034504058357251387063874719837555512569038036230916408241332931085729179808162110834195747245939518197659391717007207950347277325572724616413709973300053531155321625151397256080521238948907343293910847735990539136104529845650210051990218668643558401486837102545812404262804638456055919131065843736749932149161025565927551241735254428955850102594436567664514026535822869039336495131373452632484357917870229529618600242930719560266281333716594148575638662464879989013327380856999361880371869088847750117910428733789358552639256000246247551448840963354207376713918057424131466555951305713526639841016793666534596293578020748074168196087728433179462297279977194184384966827599569704944491394075735553708836658098259812836018016490347719525131631362146978623886986381592664619213207548215675849512815840024402962527140802919283330815042543643601213024095654925215472834261696640703815606635795753550925686380180850208965253995418023788280539708485360306821113225311931826888531200225310204524992606807996239396867744888705112230357576571217554297106724674824824901624496370216630053549614759500123462853816584261603142305169005739803260996619398303979138497643923157532108984051406787347032042630855675866118592615585304041818664968287224482529640310690633096993764864915781682383710318203734892471146258653012770750140258478225419212444249787195409002454695560721346571684344253376072774731773779043739288446124068994548966446900126965394061642914446458061092309593260306578332364850883363113777738732053548714455079201120145217786190138924005469503777422587427746713710416910868412525237220833845487395532001041756653280588570451172132176857897841340759803564883374444132733161911727992263665179630423968776053133129281914612937372263202996004733560532497321970630728719212877071553671587672442227814640652095472168551675587635245489478635903352949870758650659748643307771778676026703066815072192202278329608517880421780810507812301830986956029268889902875784933502886007779536428715142021070966499163848828301646149948502813435876922616035846649907320867098338176567001803369392622113889151335763476030281116537799356826991306180053410589714561600776646806570371414243853008842556587187054710744296198592209553723548519070032749987414449861706331511542438611265123200164221167781846834979584014162559777387346900738554186903019329034448261205282882633396518230083284810978840549822191823918025783013697158852000596769927578013407179982825785024796322725944337975853992360336774577322869999612424142392571902191334029356068845080777844118043357326766952715097474456132716157433827204478124042184570474353927552088873560152448694863156746464313743496940190652983943501930386469229742365275929327469781090511564937764812907916964638983958366327272399933515341317240882014466668503312531075178297261840660426380854783472268847503397888502655552791013273956141638697707584802981755300087030280663667227899150244082993654287350821540864060004881962818146938811369097508650026660754928018128476534235231119474002766327190540335064226045283600817267290276826445925578633038049901233860699919065839205990086625945423722964026121185884257152524607193751708573856992030149244224658015184488813587132536426163863120999273496246806020788094603037344205734483124596358994379609890440627118630005278150763211661318890155428328487899248834173316633809263406785700315769132642505456212851080378319905760521116572890171926965147560409426294599725905044501240846925087890363108315105996863551270247813144919162819774433155331276598755608757459256502078337620619412880352915066362072560922933901984731543176635637822846717903518250421321089579283467383712625408459744325488888641370593054667263843700453634022778972248564925381447083653080790427166469819329469425654240629586633243503409785046256781509149712284394768358660731601592989696042546930426444901179085191511742300558511462033635644251527534410657671283385982978131327224606056259096913924022293207623799818424679939597958048871813536105181222069661647465661202942392626127057439077854534335153091323592753910411322012756587990851534462038852745011928988894213586851643862820241424810819406069180131598550609313427139842917013217812410414632348115088880224836617701749262190436261777501692643824163695060772024685599880608478862832775241621502933903531200528185186747301548898201846562652690277122885368291415505627863408622831324058964286657412822509994833475532735558995487616206087635850441397067232737101564568665345079957968916123232782065209963655520328844362061930451873640689025482761367561341739782865715496427785718284383635080929486946371306953791996467067074384393854040703109755109987040788814550314886620010852262792083342204070808457549946605556531597656096373894529574957725747412235085851912736552280582922866718467987271602457512647754260154190682607381106730893077402478034204632491805085915412882263363257333848547815677207382925347977777339525441450632682634771223392115767486037275785276655224205767956520181955159652677429908054032294504062880138199112841624576757358132205225362957345801918222765921282485157554428404930643479020183116574053943990594064250893720572394368094197501208236986455181301085553084426147965913594435731885971584803051494885987081329497536771458259996232743371219508629917962072242226229602094967964937508444891947365197509972089749697396834309293115089325430010333689948777675568245502906226655976911396062206397205139090537293347728146328235905336841074974753199906073788348636439235444292723278887147108235294303092983303250217645345186337146889633485424539574398674875152749179304833360819801091027001964428291610016313228088941828073076902188549564148820220868884161514201119019305683684410046842746420926546067188093336281955271719023275053582762106895904246729733854014511081579411218584480893007147937229045073905297115686492032720056910776766902080605437891660746362233368814055736617287494686266531242944303064444293489180214759468176135447888566716632717141430176640209213705608068767655113131628120859648489448162455885984949391597731829950258420859448011920065092049003873922768239116834740082221295265834543384011908573346921074592588107806078126248951268525848535715987293736140368236966721520930624991265879488659223324892858730038058270442894253731778887759435876426450238886995110323067806590849079551710505627872985743635659074774547420221624689324872379007734797613530548976443263308401774447224598596868256080801394025872495731367319988483906977157788985655505223079836407129633379199252943505714089551702590003227588353336693088350045260408048551039485370992070755710687063000237331037441054907255348682757374871470677608430323506104277996735706178289745550437027881777645679967987894199129827223576525470654332414135199252493650967635223547815188392300516680219732864532414068982326863065560330534381960998831787417255722183667811345589074764417365629265096334037609658589548629114143354761461315975323346711604519616751164620784038439660086002958370956245694143111950229414381617079961515178427425430014357671630284844624052933784320600733656107447711375041882854469174478994386752183254820935253751168874620507704391847277699107857506365521797245338918005956834459829885277139051300653027478423423843511260456485651064662792975738265454871162137925349619809727270712832607602438950299578186663823404895336518844262331039714464778730003394519311538611554013406071600902645400278071595349490232160299920670101511162051079935816743130616833746312689386959810056720913957628048834078429571088219238036335414765343671300657432104368809586480925627117493447237715150022274051118702433605648713599650588053626131247703377533566333027375257607397459794154329188618468927345740897219069007111340619239450224055352284833267605195865935436102452521165284207712947359193418545010392045002949031535093505355381546811343700411384078080135220773338907508974886745276668366543642126007058357628189533029031610292461724403421694245648848683319627119503964483594623420382666799979735242469214839644233039867619406166207338962399755855924755038439149425656420542134610569490564753224411427408560702438264372724450629813254345719112223847218199896699027854869720194604564123334712145292340849503941256196062709514550880628700261873782197985877473962200111829435694546404793718154472926437073012385109345422687676908277902083801935349998635636045298109541356583100087102978457596372660985291669481607280916903352694065300804954313287996845027868044521915205280999249156403906898639460830764277182022349741660519628533022605900279411330884940569123576169308661478914851187146122528886615076011061643443406602117108841994596209906716140191376601343196529676633824500661141384386248287386330670788474952864899829507579985390951690487128370377001035642823230478159890823584049275028489483815747274031388087369324435556783306766427188704509334049708357949372133286193793604553117638827797659970373805098607343458527695104436527444257346404194227479242345728707956484989210769319981764003142852940546778715369183049111948799112220471208324725390148425441914814300489609932299822429655167830808967281606949015967215194627863487820479846491044807393880583500139553093634787282974909918885095839917143233803670875510897610257244067729466763305250361127261463402448329323007664952110144256198711567567385042335035854194900066413256521525987254879452933289385140093004819905294031306031386510497070897947002486899889294250955856702921897475403115954412850087326846334480814404711965486337184927556382449279752988524625039142980862946756325861972265373995395950933463485965222100979615940329490613908250527796208583816295135656745197757275353570984167888581339840114674652222970405653368670987451670432105783309553384748372310686560940471076245015704602831147022620509052578095978846918211564870935074028191376418209258705492059253718204736539866118303337032969583643437447238220699766809528705261310766413789246859943838525195280518643662122969494695387457322705744979830433345756635552990505168496618570997966577414605326747407327517229667005653708125288878259964022943841432891002172306465087852128332057044198498450877398795353365775188102074296805705864841028507413541483712956860918994965008996591514800067980463374038245869355808931734739980246107428565017513990321144232933082861486773064609099646549194512615159411202786210372863396577169914070930613459978202978094977111181116861565907595840844574639846260185766841979751925707113728421812016213540570117003751174466892467407063108725997945398966609851607477953738791656441260958885688172859183575764991497187990118015210446180186711717003828021001149297735317113020692207304752834737205415753326587125472259309761166176457316861492229538893360046209811410273705935769610233336896350305645143800953399160699999662568688332189264389460118476236904555881342993517931591757558381694343725496056512566996537752397736596763436863021663002763150774720472041937854812939019318023097377825717404472904718695007098792684946506198606012191281427732009770136609528996190573288864793443207760017222620267739295756413104746109903465399202881623191046427285424745319951181426361721214137370016901935843413791070651976033840251393909150716454163160844996592034170182428098235166286237165314377625718947085636092335364372818108335551363242653549406974894199199507647003751918287763868776206737902240784142642271133973415711781693461028144337552715780496263214653874418142092059087524844965680812978634819798313275449033487330867112422225883994179997695647183444003948534749469196914588945278961175858558572294818755394672910815898303784137263871653774497607152365897255081820476362220462075334388578288415559963692094135398509676506049294950687123651221346577462637787777142802191558230847681151185453968778870138066566937744325579436431472874544101727450613551265169268334582693817243894752928032686200878982253366526831278328713106193002517422924538156106971712299113500353140877905210911624910356970539371599868227831619793716751481974802254597731107221840243694393424820787305681047975594061765603545923971311805543419538148837453540740267615954776259035782999437051676469466470632525091274473065217098074521445041470118066744449625090461876890433717468083494501774226081177051471945739934186881491427714679944732889023495256236986968059635945772330607320171408927376161689083867645059065101309403282786365996592148745611224321686352741252176425414591689426320965649682890571904283095415580632120665321161868196669358758570208148647070063727357100462892457024471629797832276747087203063578443542250452104980234160774187013214342878064515581624465051085210506777392701993383703990844208692242803560224423193498075290556209929048125468584858307646153755816250170447214415606282782951534627208623833260910828975337307014037832716392891854348957244769756856752788556311156124961809877297414566125881040547116560074655892968009120041822345616885593057342781296664125958256829809797431931472196121340833230537609301326372110938258029561829649214272780434341875447985876791092757643750805095630115940977045844251272436258930563793101825934622794180967560160963844960145240144260520326278535630263667453227899322922219522251088671674304097768991101864119692971163508708732136651582811948111686343933981372557392149915624922744233430376992438988430302381647152361077298992186551366257832336749753460815954668449479403276693917520273248943184466110955193529316282869399008671689465947974694467419813669397332214494389086074099652082133084482257844899989228226410718462224732992948130253415099788277273780960745860048271567893406568374121767830417110401377386261631232130180830786383220624263602063815121798022379375198460589933808740406403808113580593733696468697455417459864183724233120741187334749184287104108391614034987067534976730892878362362441786452545380997453356996868162232578172215553955988653172408683683803067959286787461869019040284496552031292710210001277959095892774744244378425669853352637695943932295222732101196643192535581446313432045953325534720711243816402133055791637667014213402821887644615029016076050827715741076200939850984528592134108914232377064910655804565180207085810360148284032690558878172289019169401722213539870448862645574271461992066895980774007261242992993448605787932432499282506214773185881987561694106264768872541895742952526727371825693514088486464490752148914165811533342548900191979262760484547826853964813082203751169289169362825472989808349404084192052123779965522810944225236002419209460662066453353251202072112830749289856601615534547154341699733158758834172628017965158827751207426467665460536969429576622432922214561863276717298640761650877073054762034171156773803800171121027507456397867309739044485990604738537092100603953843256206911825924824403710803131428077754209880753696687868087631318616001050715431870713522594990602960525239740862211558727816031759093873892204950793309997644736351445993941171345918569889505035001464171743217005784772748195985041298956967002449361563823294978739192942764547068397697062929164640430863638615091054843397611273727977164289198890557698191101828730565300781249583174405667129228974757814331861386544502596402436906914399162025463584484697339960873272660744779079503624330305284711063756249020780271471567228563071610701631296950239850334646771721931675683650622831474767381506235688561316123682148503884351212431991474208353803701368978859533910037062936905895168431045375409462779496950846725869131916871248208388108034316433574811069686296738990132512451251033240815250192450543156626284392849583705373843135664032534999956879396594586630132662958379200292442628887529791161101421277219448214608613356868481217332168611765879733618017864815548179549611307051902196578049952664470969664003336547507312644315413853560529040184736847130546176327094799605463580699921325511520337753875854660772841848162342721307048297526413073217345330106957279011944981458783817018269312243210796638219356675793017836235132710308538985203041521699089534158522471987114983687632541937538331733727701908667852946837328405780818709542435052701989326049212428669986305306819669209370827437324221749156328135419722192760012867048639081630521899676195480699668143513806038711669421953399013212026226454969848207081614934077924278844465919378280038992781809531157707625058795293707087120472847775773163947609757588946544360771604540146868621954203562263600414659853106031724179917847304060187986090038332054315932354529835002910421327618436519073248499435062511009278624113464582309520393743856969078322471295977272802660615312077587562631630920246591317407132919017321541204254839703791353641093984599578212735348241945099371730380550369796317219895906813107983237007684373715045829778299974058310703286418346781886950217040345055799226279754363970775767106503183339131690865393294015801900886075608299800351194420396559997461498840458013068006079701230265328549834571634635257912138108862631604548206179044620814545382471149630162330729333574748271715654632073448506132273918889876728069715931307630808510985098544864249434474208557175002702193643907978638230344726057390891425639479615577793664928655675285906354741421491764435831749505534926100032121983612692222477094804679361369213633507052136082608119417223403306376178835860840083997480142058121363957535115652948928749913015687184960111973220077699590435906830308112849640342617441388587758358881869025462357143396459358608779131400007851394868035219366030917667814733919076977535846072196634074679824590639372858308980619585697880275312896914180076278383887395371881912337243497187436357530426066535896061723537540581648075197541251740741087891158393283160436373529849574555363494670525180925059858585245666596332092941834766196013424531267948194494356481934549436153227474667158250960041329737553451009817406204294381652468580144871852980875283371657936565587815919658492030401159041766526268059720770719078165701063718802854797459613441624764254865253981173813895214947256569858910642647607851251593589578873862819562246207946022583685708891615759925202338973237828094775440513534213949596604871315571871809231889915555857392601004716842725499193615736815403205181909443105955546276120068907261919032739691687595107903338040243573839806900711782463106398538535743956392784467002464318691812066461350783011862710822415665075884255424767737438854206560930589088062541268104851502759377574419260857074953238276063026301775836881266490611563426422798376235087284609841327670617730670617760447072372412061184716473589499623471187671889307678651289177224048358211166256329084624137581886129491225655275837037354503926292333376146132028224105827832961078120976733673280055863631793800256671384678866685479903971090524506180232399394319618895030158724702344771297775411052485819493642807893846798292348559476983493528704553026095244639771161173508565372998691514499241088179237571497151011002566257501527969644633668650053762993843424287525960371045004629267106109456561449175715913388067647615916470697703170428863436715817461959891742154918800297376873770897490671322348881575742702107489650277590713869465476598693689694609083294493047503964555568090750389197778444743797991245090625361716305531337246598722957254374851922654655230665596192627733816060031658433233113432102720327572919349217731917022720831738870369417940702064424693531414910069780162578799977044871921813624724661043843320585065974924001016916368195465311936246826458180918824157683847819490297605040558553443321097167856988412250747023747811478285309878811986922936123166963050461905354983225865998501099153347569049866301156267388901196815567695843361455748283566664723720616515817351113973823487693839321834196282906777567570587733309504011411968501071637918017582976358050829681686697953378260738941388505882495740811016996757577981296951362220176128603539554556215833607892714248947751687056547529457643225018325687039218042103511743072834997584477029332403301337551848953155352106614575812915928496763665693764898073152977088891833225825983745850285236197621461117978585305594283648801933196029844488427950783457111035649403445147632408661499798541871067941996136130750056390259385749963385128785713166526563203244114096004867753413624321456389985315954557105244743779196643697913382283111030183845292045681463201601897086890042089109135790332488654223063746976183944943291518101863177196991572078355344258825369219605721457145895503651385490381032682868157630623065771923622842117752812765316072335241647246726238541415344580032691864373596093589632003772379663461867365943603037467965768527049638871216345277703894245141976141222452905438939874486062314713074978683112767365902585764022931620213447395132234030000663817778630501069564883072706735773321759124965307842100693411601616493886087076736069992287941839063473259774060934938895174859002052997365509647673396165634258704464580533508679525580549578120467646416395338555355018562776556610572604162373180797795507294543002774889194707880876069439265611412683995771034418123698818625325139815131223555165725753099618010564826326619025591674695703760390417567217845012453901038625727935447478618836611791512526286221264245343822142797629216547339377742304475934616645476813718142022834224442350507410709224326539180283706662890377962720977854689024949428355106553010549137866263330568798111968142297211819249385758354905541424724707195865098543685420792027173267669979767750817249535478420410692534426648084139411701206953111053745677163585195108861010107266983552517323348896576436106384457326784707338365427260000375197107845469275519489030822167638230358807988034376195212595567707468061745597925087132971836219497350502889186967469639816011368501900826619675277981800122985963401919920272183202267161074862945294241192626858300687042007675224318775624732428842778894512500598642739012875432086974555193792952268718688939903760904159579971971344010144143648943408116637405351135575662453539568879918957395552822822394124839743997469996619121137237171768209915778605671385267817943228959541069352482919309450549864566503664146719051978204924162897855948454753158995552074384810631285141406383923047835247796159846129137451159172984938758929930220823115950811401467065776907524607553990904361026683077816515214414382788919059754889311217495031145317100717598720440370940945949711648399325583779805716942672294100842938097906690842247024607976796571048836250202047920543840658835800350529952297893564840770452735240055453362776198936748712164060938868323783292288190814837641440500587639348425826470458797968453876457675535399483408930525220847392580483022836550428434572988496586193776777318781565298708355331282081861600950019763729753389966059425003530361569988418617470562876990146187710859687128270373535249598620880509961827764415747932466581128905257228882259314714417531221747270411155753171065778088061285280734904985716673677159443376967445102746432117062868180233749477982109850216201337310551512233191347488816191192578528549887734199891591128235812253682923438768216819550676559644685195619937202360758178325701014167827570705029922774729722865850010780924312519863313415662154924288281928647887227806073115936966566602710236231971476100436328794073372665177694074771059370246840827170433458535900941119109427407961699778840832068057613650791510690400512030964001235984000682032726106117009239035988682033758976840991145181935571255093386512070292632512893358642571033790023184358427533669685246322240168030232204108937788725733222469582004546755082121390459175258398853925036180278695761259127553241151390267557354111288069639996782820457571530210735023145278346060209993286921284601447570323653638420895279243862806859293728855926438754062043002659645219815325370981807322507281258506404783907677712026080032893838570562384713403398766808109744312449424655911319715905987502225322709319624723341281836196364549943197362845768490076536013157210547037597623461763287477743445999618958814500423471078005802126897436647933470588787462520723792183597638192816780679821135027272426596899697470650104235071939501424364384991402937110864443503385330674841162973123564254589109250001462477489094624358297524714710092202743734196215692830689735469187498845234260478143284332448223861072218271565153506489274123183747330731851916918042959439076120575373094142132244188288083705028629650158198875602444457412403364507299013174924264193330669818287724538749228817654931784366498541031961054357222904767689120783951442135719696241723671616363495361292507909635815601392888731982035092489005935048926826084167236962034823077931796903771325715091051912108416010065218848057664311033441923301272115010290594587840464691646796032399526622122036448308985595662105852564468627477090625245855342189402143412687806099501271937090992995924617319104884711549722833956621766074722809400234033939559446739354291972275297927616443380348813774488445430655106576130959104807196007356478877976188382935576489424341787979896647331815524166245579941974792793623550183836597192283483243454964224824380416885581808620923265748740054106419378341215966059039993821523049967970130650883116083368963050728374062166616132642866304365759908663288482131813886097280584135204728746048192544689778107171132340909305961814034367553487412246787359040924999153998904435315746199505892650990572909609450678362117159077961646012414680774288915859758038270169336053942216806256992387549539327046824552786254367927286191753299376539814048082933245857499411588016897561432869592311233356400948628141022281127507775911823993963139432971463823863795352017945049946107875811037649372695247388572078462822846357563789645525117934204257903375416426657331917104528791551301579678978682286888513262017810436134221868232638619406955694456673677296610619645395350195340120363055524744706042375971517399348201453110667942622470604629384552488503721476702283047439864849634741436996548179370515655735728250759365102406731509965257371371831102588564640621214091105693468494122737987311763953310518930501729307425206660443185629262901845247254862406880205084142948230214299245204369699327814165021711012270015806423045276650640615719626458367597837708814064773888921577161089605596553824664652920022827759016745068917340480210327701190161998645510141516561356306325225179642659887757881100283396059976311512977574841176289766346678001680390244602218556111422534092072732117207260427330502466947763189268165187224898349124109753680254786353033445990416766111264166508259091383211604649648628519517820888431557099894776584473543489535571746652147889821262138540448133127915597963597284559797078901947773073369856391702326745132603399632088375863370480383767271797531630209590135085028912557898418068032695427663097677543860359018533246275253677353779053092769128252810208542933711422086600727141810041795730802623932095201566674339191886015370808459778905001827225734740479477996965864940212200009488449353503733591999829644475823673873015381474029335767803890990612025257890657478389885980522989053823394558779851858652142217686441842742252365716554817751461349530897430980638292881554645368939088831417377686979450215335228623954490237008269262234523257459467167404549466269617610810595704882111498913794748343872155191906767598982681060817730564525884340521544751349102594374620208294780816746510254549986632794020447786607574305030835647647272159023124051935015829959679433397338478031154258940501001651071803699205780708710433562889180113600080470980561646551609855105601565275833634049089335943342275143840289431122137827244815011898719388727836755208763722571570381034359367252477890312323111013719785709441662889437031957458334390623561948853174560115188425800386883447781273701637240796352018110713317344209756020860960212784995790137737864093600122167359572014004742296119798054768162219808095506993754477370881767868524951210406233527623652698647701790325976625506674007295557867744725218345261223719965591284472288095732928710420678864413781841116726305712549845887268797636958700773387845222691630517222728955947640238501523166137430171735740954846460324641184838077344993686896792593431965602945181383174507430434631256315583609625012290852388003474367873732598422924535736009174973396574452434098732824590281535785533484954980625127949780168430208664460060324655071430951051159474845527764394903444543961592835415390192826040290642792242267599419871725755984674521868362495489303544122089085863336062074077967773894316764041228404526814267862950873908369497737188860997326816167462632502941311933500077315428554616199476704270969308787403055109046010503558216484342537229509425758158205015947727496921454254739153773522181344799867785207125102570851307599690332883509274316465106673289724787116826002056784172678673141178965708459686828325277263390995783582701261662914952492501961833213497478577921255798422734491564304578967291571164250744793868525936457313351558225102919259138327769008737493497764339043101773396252468767698530642353659517372281905242915996539691536123493972103788028508949127161036294354239208463468268305956304397686576480888627397655174525555493061968614658189885888779863268684352734970665979454963306292056745646871272182934915146338034720022067277729551697100083902598018422402200500379737394403183059324945046906543298867982540567331637364585685573707548801563564504671448176735427616388648314758200085074943702170014530788019532601701015659610409343844035228279009925979768692548182264025387665674690355991699999039389797475148352273348041613939436301227087367347850477196161163035194595918821273925854867712744812005327961146506535422296209484382352879921163497124267448658044160351400637797314060441201419951086333132248554275820944706092364124622686575429695184426669369396405769666834081418769763064189281591929343234135237739700248387748517680697367573337516169067110218051970229101172311906505222809551661699005888357200491675927596259654859540846436226776015214668085102243825283473869432764138505964226262387029761440862626946474208844704319445011356862789283806695233802238800200289475731676812523963567472064194384828012065697071448082191022235816255483642887080021142648641250992142286915374956256046015941797351763477206567970794057947732667586992761709750851407426927820724839894689175787018463251834709720706743354703916288989366062800517390277920107467106307094211599411307405008619902748863571321144612809677222899129171602057495181143167533611895279940284077803799515984225010733070931023525227883806968779259640788716484556996961261492259790963442326631897626560821243901014647966873105959806108406040528473506434625808816982551578172707031758478496171154426117725437223975133276048632119012633766437978776010606027216184892619560254963645878593590251660813737260475970224977359185172123297247720752156232136363557857047404154409829890792335659186643532600773024305033971444317712938740942529316988915799148980587166824693203595318831998200189872760079516771608195315128195689009301541297168385673469363813658404338059756929938850698688787000183458962097104602959091890803920653732309224940910236759723356084028291431364804286383452214387572752135506758412432736702331951814596427104478861418711919535131171358914969754722484358375601880651264377593708990025843452632952626559396221072194774255992876406167408533262179804691555274899659049126220540785713032184076391113838688613853737549715639771757538441305204071531661886798327452453866048867674307560023022354615882949698374196747119078691804277757934431452812005331210327578009030781231127562406782216917516273731994073060203789581692794730768387463202361245525783068942048711446095435363910146699770936127794399786445569972336979117153109686193894231357579440857985253113737614242598620672480878828223908001255584874546967425867047865490562367577191267415409934830817502576862702259174575333791665263733584158140213346469054196194128704233571134649739979311500086523095153753597099707704134657396110036646874346061690824535607357280987705579958141067880617939040528851734560257039147326838482023999466586674250521725835388683799701845315786232419354919074720706634708514913868303153514634713610125103983607616731855865035223280905772832724073963320235114981107728819579603152743975697067886502296022855960389014418543624736196845667313400174306238025270988294300770524026660380876560068888518615525043055322782540709929036309267891749299285421975620611059087601123128556085175535962270588920295800378783378592769977097668621760657098710792745513688398918792450478486683203012238136736294703665140782544730292777041569044842814507731537012610879519307242440036000543409073555849347553141871334665145888880962705046475182816315086457906651644052404033485177759963539658377545001074809622393662857196188895788433253630408254929498362998219367345176398265870539835534476800596221260181871932076759547686852281133322552804280205449064934832838131784548634228352654975162675706684085944854033922633125240635965348206290777179444796439766024288586537282656541912665831856469234888423089260149192300018092570150795466623619941973586970698876112607194579635190735796879088000858737314802301943594111335824337456391387929258745433331288981190349226265994794743669570252595762231797703493768349093619787538376529911237594258114288572308578967766614542286350047581563199259803188457445384308985757824585097263771678952309147005531424787727608228801085558442850338111340360787369270573379693422083839417608023536694608885054141591076282494828041134800932484300129843286497933753766091998731642224811863579823186460997496083694432371229746068876732184542859239857938938459493728251236501829708780382267141463283929863633698149017898248098820730085512040642120789685641318839922867871506536731048248447628193164613159917190944073895269232863033789276338348200228348526405778585094374341867694268282591025982827813576389117672028745992948522510200918168251142295094397339504476975633958538284769966844531950812887540964484301164999984461581064871590151995489437475267449697792589577606154374335733443877648125721301167358378329843147093581638432278182959823703102379025087137798671646104268403996809704103092593735186011733737132866916212546380353213034054643740235155460802659743529373927695032212195718013313975540438575686057427976129072437052739769991312551766015043487523244449704924114841085353430597861799290137537612121910667912644874710150948257450372393359120638775277366779030216407681812353384260041009995815543558083278297303834493169088480480067779891803661449468247518909281956725570663365496335564919163401834524231289076463860271827726018102337398007939750123288677928565424313414656580989779770519995751808401418027602124034167722624138670196158351511297242645173356835023843648099936241882413530188052567696298408658061666718239826441546952221071450753425742899585321465960376996122908745826210071906688525665377111756869831778792142576796269125258446287797730465706759255030984197141015091084932516783137970833756762282858863492708724157978348471452446961851925228576265248684865704731932819470638394043471878576894815660435288314233190034180237750101430915076508042782242821132162165501621823936579746385913482292078414646406074945607872436258977145174987908135803154534860758915305161746262869388148848927152716840011155432942587593896714351338835160214283662950115544228464143120592373381008971876229989503592383873991265515190649227374219433754325450117366083800725764617557610965221107881974478313939274421949711391404474156138075565583734574170329048336301548971285960316933606799772150288105084224935973905161392446813266129363133792125109904703513300568648752083772511519873070715600045180800644377256752298027208212256477508893290778760119274054263128187204438805826431804870539321905409710874710600225416941985848289024213086962065359283810173406616065357850042906128976407598419549557040748949016976595954028719111291540143221588296908520271237592078406071854824374477772559802867616523877874488209249121310151950496948964738148040246527977986530775477121856889862173693046666440102201237862391094148437818091120208871133839057387739370558481706284700658488392050724387475283841930744934627365327920163920140971757401315333264922243747944314407793287806256929110059974332054522226200377805699017244633298127991836648155980117197820001407336710025505036499769251746356355287509080224129119394880606711826839446464556498793707440363191067700050577730915376251879059651478037476070653768927908606791179916642951462516897416105185233086740806862871193502504729174569798729178939474781780978793666401231104084907486760875227881519260930724083176134796171970003726836322431994050200460811683330919386091599445815195644613353429511574098869603622839019082511460612595718101574781587759558630369819688643174889483730639854005245461966351283388628825333677071735169597434946054800306190689793613602882331458887117325912781053754812232089639756589670280420453540994336685970153789253543738840849816997431452669135156179794620878406224974291239055457012208080799697868337485093248161562364961945003363037761284935489923441698844189498707666146987105018107947672372552954278135671002033028277339503952647261588703448502370388665121862380965653201421601960113755060835797522899349918002750200718282238715952897955778143551921353745324819975993738488041342619140483770810962484698264469077130565174959746774461786480608993872908360725634513892904378505765392674836794178408719084401601823881703213883562082093597372648611894865071020403338247013413817511303906870282911228500408335915705056704864089638585749932364256029255432958015776748606656463552130759710084999495323787732875731271449333720498129080993671483389068228619227379566893730175754636119904824876713241532137500465886518972035095662288292185235629567398283895296619411547638753528984011485478626486928327922949020567449877372814234977634438652515965737870832588303152562380827084915895185136831242747757134183671393239419244289947694396979592383626253364890149945729520951158608908177937079062716496920697522905618633605642703887700805490486015900236508509709396543942362654663769933888915815740512794589188829127302364811049759063703742350604192373727910030567799355085487818348675870012893305337232657183735662715183953046088471760391583387519977742109203857014363639646023222652901386675077265004158601094582344182304833724487451392282462876020137632273299707404767280210995813889035468184416679276119008581629186074484163020439642836717935537556759218655999604605122673530845967264833369527222405799711433238441870960358115639169212327221109389080533935164025055732182679237719377078260176850545451034708370551971446945238676955205832032929614276880115810745148559341566350538116895381327549068170649174106782008044351852135373811593629649919894439033264207860014332973963213103298234785274707109181293519381494730185633143499374621060636519610390972538032773061954337160026949292422540937762469398382473094642223888704884061136027794068935963772560985139447089068979357732255586281795997775313189036547627173376526136518535307357096330561065667656374895268220027482466233649479377575678098599196786397198942681722018699707868893121528310273256288155121678979583565163680605834385693824020888531448030881932883409551224799662888566463388415890500254119889705094079814447515460457861252995682689890357749786077847769094772873787919472887211259700632814819712320751830967168053657693671693992721778954096399041539203093328515115691580684909282909706847012994722867589776869489615390252165052223579130415474719630399372062291080859496990750003297221475445626234746704804419990187641503539069368538153972808980338755179816246898194502604531563897646945360279039705830307844672686938574774149349116437749003251804512922386392272380575875844364557193302889449584486717862925506130759484977410154512503996148591622318926384299541862544393462062355734718609162772696378793806486425569931293359960747354436072927394542501288953390971938993421640468195205863804566345353069720929361344905892870522201006351859478986895204275579602402042641067802537469606690680738134503912382583218545051005522765947051123377434256941868944085088839909482772696208858389371447465355652829043298802410068583233629451258266929786457243318154301680478193087488429005886512374909206397862185227867785373569437450661798505007665190729560589023244395687796199131392117396860653575817813855434172903946320123137961219724156720454430659506067660709938814927737121667647189350381846631851485402992720337368551876683611835729931307278576792334774913697015782463308487708789055021183624710048391501650367892430414820376954248649047130414540179267371494544044201067025266129060373902260517169170712100853273257557162588161227582363953403530146557795976753187024986490618068957158995187471250371869823411197730940636287433378290036096151029419441782452112756150820819024058016255092357291099731717642952485156426544311898238483504780435128629329794524962763808874704479723322478518238528497935026041095104155158530911470696504809701085610000224571036195119224373067107731396771517540259486758069141027323024217899579419148328129464861157286478785169625449683297779196283254917233158189867839184641390343134237354933377917836293378607559648227709870027589999510289305340842913738945244077987352907846564416165138939354931808597990157777369917623418878334775499515984447696305084400155943457200323363035645509434965629056414912143543436793008797253112140829440652906874891526737150149589421099012888517378150197193335333767098814626777536472779515030507609580860393974027101502460443884854545802011677396469686995632520904896054496967690657743008488579914345443103626673779312811773462758070258280198976818328784247738481990021620995512556694766732766083224435219205732646190948259772567939464956512422553342492997688023595533056202421263178507776787511684628320530511710194322825055734652516293820382484981866024001254846874639869364090236168906815149030780707035064436408683442571638604027588331248170214794684854018760996793595004448133685336897186422934823790935339698704068286862119751569066183950123653515108423749434902762372216840687244786126533073377806647900000815528317521248278475868671845434385064872471546086601271919750759136454939790902159352565037333704819922140875741995273373912120515051463046980104328058572523480278476400042140049141285490124955998843617800890982554861101705221033913377711328508704334261088971966272058372387898318909308899518166867234727274758890645776333600159474019537877933267504394069652323989962805722076591979024891133290199736963734483228492171027966577021434183584814259412711725789194315163474491828207405328995910674724837482384344900749100212127161080856859279628625380502357445623604989735208576209670464337645580538676129335544015273657853112754480494063428460052901520396232407050043779209247718253119813647231170741206271764903254529034657389663816513679547541051387918054089374803241251167318461870235358639097334782588089947583109232970976261208628460149951606901022327344294353279124211508960813997090070395723593838956259664372066370237802238054797329244586393647401871238427739252786787110861225626531921112135692778870040492496958624747998519312845230489450593650718846372761814341904401092177958999892213671210751760014087223526126179508220720748144405307044639351252569693936008561807812007785666780608398262824738347333688788792300887996732186532246506984630899842874315756052076681626874954403344816243667174398082686922314367393957502574541711696444886066865763070245970508953014073262061816202889165782005600192146655205115985326721146889377844435172472010999544493160250609168667029134311993372149590982324368198179195765527973805342871861995633098207535429457356448095169146411356415935966804757122335320843488952458918908901522008097532769582649274550774106165449350688918948739222672033028142041623316130864275997991301121816356020089563664429503146046789714406689883458337994044034484778515185944531847676053515433512763217482114029912897845212720385377371185748643863259992254855546205557966334137408910011050109851089062540934124510012669300423546524176481838183694304926062422691994256624837299777878942407047239051460943085691029031112438315996990498035556399407536113581646794173232539310973703068732286414988981229617886962807740579659821172282135509037537279598813755833253461495704367177129637365201007058942253120657132927771052197563208919066501762429670351668179893809368799990380220549665353283542994355156222392728683538128754295688522854797024196918188189921633317223296255573191409786501086854296562429528930535216084745973843778820141905639467948377875734263356977301875584304768835455879954197187626268252946299912326810186526552255321844025957823468514676107987896111602165161047102713663256540113414025289180519168581907574049388295244579537275789769175996956187413030833029439024585112430884551910921114603150671276624357221706823078632843558309080359198590413933900974387177762854559726931385154000809852946219140805067856822410826337751812379379257264110272560776028470323403977044833594240611355961028799172235505392373985282268297862756557850505966964961773778653606871182303154159087037502071064267341257204603060063637934512189067130211381385964828959117727929762525767438810625313964382052905747689464552809256128759320025313885451956526435519319860212721073111810975977684210318354315143994604790308394310209193840224927770967612892758121344873929652978397290064067901067361793565733511851648797191602822227476843487933884617460014995857962321896155293880530475478490952640900249757488777947961410523220112825488642614149776199675384747407950644821787093289770862993244180945264647111123701942154238436925602302347729886347313395552658163903607813998116762738280456092037564978297168395416606985727492091643772374990291801150966797829976255858023267489974942515484316859087947461634269794905241047433379210074518001784150465336952747483377822999320834164414051294559785162763401275677864569411473941165526988781193338564850029927478049151303924572597303769468058558446282279222961266578107576372990811392284593666364592024671314083554900831727297884021526603675153578053712859132831406033851403668088086749916252728913530029010929548351369802782441041553948646484174953254173713245522481263202265891528339408802506445874606946571869949337329127844652051285262268942100680487283757962402424742408999642662330412847378998154026014497920725601090176532387630431929872521555216269996370969064063328561650474827465171010407159730962114718136421471399636263646144931452721273038071948274754108808358453193981420082388710935749081708050190773306147974136034607542103877203209267096055360074335236208140598458806092744583864926628507911633033696756322653590979181793125593451382032792268298071074018168442608108807365006606555594900203835739184744517292726933719771552039413801300309388697785074632148539255680357944575996116844241954154931162990275734920544865295173420962688278709219811334022464868056647902380816596250189744602807460270336917671855729604034890756108213937271876131178866567791824630664187000648062155512170792534506113435662579421679888870589770227942102839066190945310980085109197225231054656434491341894943016676190215391424280021626806518455187954438322475426888983544783332079990718711039198776248922489655922510895688720523700261076538698344653634524048213953337022812040627170238913075026758003339165655030800465662485219584605823250597575020701325268137133145637422324784812382494450204388954727476655090091195817180854657716113863923671772115265143690569683742563842211414295101244477133320159805492374832035305103645422987087452561564724502154545821368168165338531615618591895106325590462898700584826372180719072118194965403653310283981473929444849353944899579816853697276051941424582834092163423663293339016029678644170948103437903045769210943645961294293120343994539088191851991707869439059661070376380101050709605757987736405061944786219230928767505048418559478034910682341691032149325232672176309743365871436455352705250817608274879755071012812308011455993898088425398448462173006366587553454900242416420563487599588698937374605839705569963175047637914329911475377702303581390921032351433277453887327581328510542253150727678674680450235543516958583191715382069972903958897414234539976554781910780483632939769892997895438705970726867412380485301108996655067618900226042640556690748202318954797152205819756167660333027292802494703201621893401443688953853013006294389834069967930857448284002906428871473346816107116364178428047112343600156414307854674547479935888617272161283775232875043908646615755428805374234573346206787736587230476668896327153191575784776849278566395861954641530703736076390927438215817293259374444954783511311799015351507964205010967611634307640820516405632090544907428457061513424583825957787365786346808016416000368136364699577484237284045766544112443390912865532059797607131669847846896800770418462651578012417671537342514825332720285886165820121792081258661119273300379017246742370335826491958646625477036277778143906018912561169570278748352780273625340383916298633221246234111067746405073968457331384812670600170454999053526592164750592786567073000327678742984146724970485077628024700312700479255023653689550523438792578521131490528572670281650698609387572213812139241788572120311736623214747167184200906535600126743608411522665848679990980273805659210599680071297873713732649509404232687848160397110219604909446483995700164249516697217200567379384547226613225578009366280207949604308904355899675947397650483315552567101397317560123698100741442053939675316375384729978901249005627376315904634426438442838233018567461836433940876342690120046815231173739111528699914437264419812910604450362811202565379417763948885036646751227132287570989498933543933024158248400407049781955591738664358968095572145402932610471591051500033234474529149929104584434003498146166652089867055666237271398589698739868684734439015260314508268231189600357359991266312504583803957119704652404119192861805559393399991869381736342475187276000346133955670571239228991174372301442981648113889101809732581717526210868369398385194338568844375116419896789955990499474475186097935283347137383916319616512734104234942259713945727942635699583824093491543315244287609011231592287234925870369374309937446047765971044538090990639210629611275312719228169264556533680607131891796518376393089189214643853208048527420163866870281753346509563226121877613437970137793572554027400057098529455253136904615123841292323537743760099419825784101076413613538938984350305374592708832193757352667590699154758561614495615485786794909031900095778900824853695057232321233719314475237031077441637522237847509306083838345433777388432156068871100860157700298952493378005442512196829490913143321593400688741499006305886171456927366304606755633116688283191563925640589680993442698078719317897772017173979399178974023856089526039542844560418400871706215490081470711507231708410567073740322172132017461384711185454371897990967282458489497385494498794608031019368580364611451982052602703842364679877250400077199124657336201197397451323529519048605433645447584974793557712445895870433342513721441002663700174081648272879148934339801070480064761275880079228978518909129034576976882807081175499646092852919264342025017768076283726366144371306073673227313151181255223062631410263134105774590924611624076964171556216283436652251630872283775580242476624936115900143394531375119694316417646090081597599278415611642532011425667809653157640351925785013962206351468286373852982117677086795897158923605928577142859098111456720197122182633584332757049412889794317293623764251185293286784244764408584128477493903976376997380995916022417930034764528891904796650682760083739646419825533273639574907805277347068633802519856468265260538646934737526224203656525333385002087594507570839146696266153241380726407900874846910305427779019645803993291950885513872241167489465438920560862856760080354283547041756525264735845371505283430451434034820221881153058324308960606198838092356212557963736822983313167811439016932941929861914493768388341147290665561048174658370142798523823975688260996999308669929693048108412417688321541469008300497291374272069023228361700499622577530219390115067558785965050587218609393660818558271767036562883276739650522740835715643630599548243452710719878298047582882902882711448118755588639739652419515023765172605886495077198780291393984357914534757325766508669039244460172261659845549381602963044530930503462729909969055819625493436138592119091225182441994522763883261367233316980144222613605117610620839891989147917564692541037490912632485968209769317840505946036978340272272305564642596742627220998509436672353853299380624160895600116878848782978781183406449683817061897160156636139525888449062794681737783115366078285429502129773286701963527618473803279605439829297519160302764805618240930867189413141861056870761896314392513338598207624514889825174498505018269530510688978850694376648511331572936859133023450774318489780406196572999931934389721702883016810797920363638790104909836175458936141919928950177115313597423182864391562564946221087288665584053887637795297691229393903689263427681428715180789419053040070611567483124575633350577736097411204570487174673949773415099671518892172566604835879458967381542630223456257635490069905410946966040318997030093478484550773375238268531589020409234012223136971161060395240046984426845670772143645808520479280469505695235886635039080159502433453203917315099250075377003477474994943311396764455692455866293173291786816858955991843625194844181975585641957236275642591965825513011506135178933970368138684569751351383500135957536028492243023058098430267789673066205613736788918286210027473297036903047727680522088570679393381935744930147116968368015312229335795176662148326004314396945955619649873207373426857113309405723484736877134960453026961945116143825980682120396532962224689421972886916834766348188971615769808202937243387279420077560740058885216342254169807496528456686826777780353382998941854172993625970126028494348645303966170673432380839503924255576919614853376019747354150110994457031314473301369848875172704022062550360353332412865721156844431499857696662411576952626842048734055483929214519133175267230754745844466093719018806397876797211938116897466611314905846050053573145153907476382338817402474819697881593929663069507894859393968817832770964667459760408177268213098641755506595454849687932271684250629998602832883296552075231486005370677823635849941748221424651766347460755525437997563533871040136791176274856223725493012051315270881846396899429845556405180450405435577524741843177815137946221996081258482636434140955908357185465733359642435310610265501867236255485116227569512887973835964216023258832231250991321293122259707187111289605098624764346297878295368848007816335436574443547298467161102308839754003315328180820330186289901807403908776934588603675742096446018581850351118831431191411104908812666501888962317955002744919106777272898825784670014203757230327880430856665808227031680464346614458031093276042465361727241935750032559051859172279742264599463117518256130268282487753149182534223044287744262394018215523383923402267535567758012696442938966843902848123374309800305829218334442033867404066692802428455502352588368520329780768404297984606838713493636900905929864077243296658245995016422180130065671334646956803146943066242906084310697986414444255921202461449562996361736662039957275220721676652741431903873606251531683777357367620580893984761126556197130201426351157586719510981951329382121002062794938096871800901082770742858928821094182244412904666218400727988103779802161001067720909881859888021182879907678798647154798523292479630643694478920433776172596282191554954256222671250236966415696114990266039874105647161561949959955301391582626835984590092899106643152212718052278474809488142737783055853496180868654501524108123608165058158777091946824454721604984325624032001922188588967805113387204899723333467464355973031984624952371556709695090866956506060391650947046320527357460815730916879759828383424952922118201514828540280237590322938838389513320553668894529536419894733837926547924630686640485913801051016949909848261345423780753048302753672560181511365502483809256268633013200560906897809276185914990645378694168274414601288076825320947402621313822979374735804911502786419483742366524599280591139993139032845113373137061671715186140627058133838365577328396658543517705646320355237923730477458314281684431084304439782708152721767974091550568837244172160567186896112967141991746803360806791029566927466583009274229137027760985826261587554680635856693552478943245906650046255564011946092793530698292249564560271353135895616169437006694362841199012009733167438530843810382845545441325174548694098417917801005982443618271217246941927386023324193586091838933224593852231733203977563750527149204107492531668434781158979026287788908007190519841894092386204075400386122558657542124047424141469714892540755901148969051563639634558196451989563486716111004324416369417950114812408464030537224830998109421282023316022106521666592894294566092157200947819258062697484371809811094036125946955440220304152058186892535952902100491362564403929128770893524832567096842499802239061287179735847364231284807139247858899869607364165195641249040429852730463571547002642859743603651922058825260282498823949651537905443312192279549987953113471872442383059033625612636079570997861055072567210385517367377649947096362332421026104199526180282824413369511027695965128665452757847496398638803277221808160094586112714431437273698231968871606819918905947640287924809473545399076443752703714625867653593533678315262338185785386194919512221586184989874542250595340737848923743583904386102222126790512487294056122563097083159323788634888464000219106889236419084215861415692972443970983451289833605345204722055213121648535302851420466967309967624584040559915725023142865237673810754506450343939358589079510382285862588256725819373503587086941095914701220660411537427071041902574977618122268307889729423382646154118129621933653442630387845059853725233802208476238770385718955262537340900672959151654654684047368690502428581932181388330919851995120033790943128723443511524292420857339046100464801177262675155907803828704838950325088992633889713792590818282659077844008705751603860208745485468350868308722976000819146313579862987987167829064648919687400167277096936266406699009959097886132282854725709634198870010930015067960603803187598328438226685853491240562593771115946343106109142512763984769856099198936826147339942062162969531848961901973484032861962351419704271273443988917735271609828362451729720821122202177831710649254661290244057189676691154465920481095741291648850161991948974047287301798498876904115221221021251963319649201774686480863961260695147659757948245292202710396925471254082924271756482642075753822367676059319207857755885725758677446285951193144600590509962804914351886441997006728195661904569498198235104165861683773469725155743489753210312993137373516932943228425061055549911827783639213254963851705268399503377847666209374225701144420615744953829517608841631516121496861885139922548502863938150618555823238574990432787860928318003680737793612562910800613968269733831688742551889130063343386381229451885694787452035349888126647859035245232464992459514321850244090350592842038899975430356520795575722593670953534864434162008340088218160364323195208118651448427677780787401039597522527654204448697000512973378485727009486972582528278616101986661615452680126225661976140294725803196607670858362269537933420437663177000382754597308511607022710536212976615322646675284104259710706829396255973153660847638556185639955481201417845738355527891088772273604683001954875164472731338328410909338484122166277975379934823257694642926761263694778676094920777025986192772006374978073138729549325930450051609985259319943542436695984937628463851475482691301204725090896087048990268215741629117793645021313670294188976583352269253182273496762309081277065624581974564422733519596113239490743266958168602951398448051288689424454534038655204706398641817213886049571488429296364945651388589786276182825034136263634097957024620807726958708823872691511007124849314209974847841145237327101627608774438685162303035316795808005291464557874361288119074010664122299393495942878068615759517275910582839115121091476344940214448219660391082117813780964007232286953273441252345907912290911915372247274149273945825091328200077074092405484859109728475273362119021077377507630095231620166063859637548619563722318092815670318786859687131699443635929447133513358137243228308014153723401586852242500953886438330848156115002733160767341694054496745201599326122449725539415469407024238921900005662877961396124508929502836018241867971535129636753903718116964076637707066221445677823563709340781133442028021189619568891935563452192896854479364449708563801952913744811492659450598975511321025443334968216027643672644973944558102120318603397360597077313835605544847129272227409120901824763194721250778087593461015409500534593078143937711539658112153922697252957236838354087986778657035747032115045882314730269170011806617857199068092571058330002933738307872281925724777763073594130999275879976649418423087469141011611103814967381416961394516085009792650363317458714607177878094597938493108502289024198501750030212528614711146070986418099507870995521214962127327545817341548567527306263718038421523491935062597533880675170685246007770454176586408587425093079644785054653200098041152340952481903838907041164646730576551565352596658635679796212009528236807383628854281895796379063804015895422251191736931796650150389467618435279477354819103257054635442005411411164043760940098889623452732324811532846358446817046839567137689644258470307770131683955440888899497513083788778290377348518345366097491243263724141022553342767467221343258442203991452964340078280809848559900617968104370726829908433493742292773357399668225112406482796244940755365295758188891122921021999629576821787482984531407675621819950641573320525169708657733622446671995990359746094693602456051196316647389130674314240234058739684518543616185181327050952159581351209630644971221620806816351641929531874320272587210205449062187192996672894589402229515961598943672337149526106304913581950269543508164801920908244474004147621969283016428663738309698717221148229095422503512960673909602222956929289736771156482038465849171849234273950507560172105839785440350370796455764414332581484385483955436356173694479919647553515698514129584942812518027412263719194314594151245402043078901368722224984473713648779147772464857314025627283558041626294252995609613616424319916213900128994114017783968939422275669332241045445085736425286019316597207738374925091160766530703944028336574915544684040409283764733200457462600251507088007823482085538779864182228630669806901965852393768716327666996414019814381884294510017978276393613461160462960642085514110675087983909835911565936728340416159019752303958615769814942518712509359469819724927611784438561108276920635399799727317716740817604407338914809585776871671794313152449854650800687855571933026442132045020786838598254323753543773882599110677114159418635844550604889772649039286102097339410313681281945825406618504901494978511235366426712092070945599293136385120065108953557999932595737588656714427111224767925509190611055110132704096911418852744857776261904441961036898961058142781110892518307933853896557045180630237854821049898642957635923262296665640402769126247574146443040102841190544228050374486867162518913675988025640511243287342946603211226361865069520303483722256939157074145067887391188723174408015443731878691305171774253069842210902554629680627248642370010611194636311527616944461279569487729234333348499986763939944780836435369725588142757888867647359157336581250704253651026149488674409471576294355922528666909572721891839709346539143604563481854181701851108350710898217611639808938892951915191529080373459340181540838691302564680382303357612039994693920455377720095828763760274988556269021854542673603192743928598241978747971071382678819489237204960764334599946440596830682328787715686331529145821326887080999380324682007376768146571034805903358081796636318887004226613673591193630870339110788485491940190300824004468401590115914573775308008144122373150088042440377088727899778607743518780624306738058929770920499208434646124064674153316555427523008780576861639222658795545203437532258203670843773872385388717499907292492762737544944836814511710562835312037045437525564690193017947182708601025084000637952162199656963554081581797014682047811732551437616338289364489293557223065486902027688962956961189886681236614575554523303258198132424020571530490678322868449074799466258987816462103407079896274466675156692072674275232691734139200814642943659030272769444005503416209032105431924170129159681630285057378649147938653916792368315953526622919994615541602232564922259862775855822021167353537118829176701342641915905688620189662377953952573358822331233419440816050933235187555834236225218029805247077644697941018735267045749462212281856398629323707877103072003468687972263235327386603036842527875717475265967041093513192995352839276968424952872959131455045850072016418835500420448333738099797960453144847401838302865763232365395396670757653972156328753450514188893039887138208425766749683180077148493416413157564717202596543333825831591593384919193764600778870311338311708159445195953951120169061524939522713871538037045962187321616173902304414777780662381191318810754145777888267055299482228629717553501938236616721377131246501842588133688171475694786013975156269672822049100010869600666583986753805284169247914890226083093364515909309528552723812443611148299723762378411144172488135659737448497100025198998938081768321104057596635833504287229989797179108034737146855435706067379393208076988219565681400085661638285096531271010736974494768171776558027621275557398372686883558027844046705600619780528670658733049366317764895936132199966171795478574836387347493284667230349366826676838026461689248135061499200941080175373548383419961419627374946908913185418597691038618764478833307591595977826237004773502788843947477045635176563690063138449730855015118304227153651521287049462608273247332498171420688198822372230292694375086084094803615268815463623465604670822086031952127090164318495265379676206394850125006863265304547245059982486130397286047255015480330008531080611173206641630373896329977237394073785907917677301999791130569496805916347009274700869048144964111810837138517818611858054397484517340737995819725127131020267941139389711630599766094436942972950229162335273500566251978099783597759861730044953330139348415975112062030189341525575352090533989673548784284215775147902877048495054816081370590510825026837857149155006476080709987453907094068325186960262516478222872681343389782013795787611574877275577275062603546261513557787589866817204029497520781480785070720572004180578299770031455830561078697624509993364564557230214421642816412316829258752874640669736616339708883728893353006118705930105460594717947595041290413671800527560983183548206925875510068828354181461083480479361702941488877969751160276061381750823120151572633080638827688564317768246411260127098947081207410750397558843711688360309825582021034925723935576967591549725612964059371071465231174622379555198238422012364890548547897546112542435695279459640506853720562043390959203321235889971319892306883594472915964525287049668325283651913858342152980005473009024408579538176108855677473003504388494649910602862624056056477389782812450517564135228966951769380119018383245119242544473661448007417299601632532058963749078725577672396922419447131561717115797629862835163222014926549502888876171196902037084141135097576318420138550327009522926117192686577138430511378908660148127897134669735871934521589926069004369141041440055479364861750548399278182366416569655220766949224169236216140275447527658536502103052169662409840312604349416694863304024225449960146287565671620320495883122116077963966366559522296119307315630562496492263909088676983692364316684365459374812174052073352452064360165116095973396072664960223580042439439994946594190028618694741275595183377749768135838192443527082974584152791081398586855566267585501179194929891033127777591793748922132463398697806990962072956467550466591462275845760112438943031898891235213922728385622437789944007986989838260251206196144682643710866347400460752942537737043528428120951536884889745333391095632853303123938063362311293567413371983764299741050978716142688410876439994950649962488467837005044216727998911123481268463445862981839251037005506300793169986552795541317713730373021986429158521069244948650532902505881332736737390512284618204658035918925075137157855184615139328099446385168875937138394481531363212148342664476109262852135139445845286536270078317599808015355757867216153251431673766352053538506243583281521888748286031239075043736525834592212097656332209500043693492077199490125667933394788520188034356703888164747863233803761630721684740922800238726368500996994849359917660174745252909320130252696298571986946248277276401751641799950909587329437671363731490041528090544919691849044968324569685674749874590566649269866133472727370155390314483674535959009939987808858316175493281915682510898974873890773027092791902684018276489723135958303327560337741346055856637048024432387352932722926802843896998994060912664884850703118538554577151179854370016296262120980171373018726182034584283804777718822447200456770665372687971487497769232585309430035210689246868705485319400183629348518174996557783099986044333376321754892111521401359528551331019409854366306152187590564273264750825611782685182961930172605291285067817640090516326230245538683308975168061620761400287664825486385836189090718685107854830608989780436333348660706684915423705452106601024892467474591028854968677082721680100595963052691330818978485008552819779661772351730000994355318844311582357127927730143710399701920828966011587444931823562474628219941129620162489268977872493752701994607734239301102699234824182693977397648187478133446553271784673951957157700109805594848150764119623980339367320458287043394853743876524796468502439010078578151216591083972275933217813888796295407356277501036344858151994930635516623042949623878312764947429676256972059852111366602676356176029520842949700705226321531690933196579815671185444737546106279845685700327055064207811682983713179068513797768095430611300617597622607098131197806405679012337081521233652330756047780112427474900880506465874055089039979113013811686003481092563194878517908255143572142333306455151095170093889603497401341842015734342719318297346566101340593268268757714808103709529479262483875845588144048999382112406625877211757259632752202891093639078757165333440587291384197382719733900689646851859527306399779747242799063753794655676364548070461392038216923602623883539806572398322038404192122340448120624790928504542838199094489918711839082682960873228844023313202584488481685673095288002094870556071486653280711679309977144468850128199562251980145204169507105010494674074353276175500336562069302621004043356332972889444409848523145126624398430149230195025219961075982835797263690576506646520398636307589619023653158147020736833129262533027381157992148855215975689425714896478749756058067340280837628448545819613428377496104418697459225121731391189372709923902432129565473900091170142835196052245152864781829182617884735130674745132672399946920646221324635813149310324638500128620638293597030635571325240490651317883794546341133051662995278489086254324751670749020999607296540103510127852570601245679336678176972597603991204553313865672932252211528410548980416306348954499950783873613714001962688288903183389866993918246679760796982850690432918347257958636338597684843795657662208802127917609308148407516150244509882398958886083240018938471522466273883752116005055031613098995844191581121336256332266268851160425924795074675650873304205129985182039416716435328531898953367288652730808524784100486170401488424096335797549368233217440160503605088268135490367002921491158083447075022496544464947008505570411622690727460126057471284361959931411651784957404642471853228091309221763187178805368509649550720332564250170284138603044814726743241549561078880010612472173961417981838650508932328269112421650782434820423084746848751224867787204606075600891784952080127740177965748925852195786634344610268834814865234772459102696140304986338924643664996638004589293112879513538076342733631553891095231543256481289098663789037962243847863718087926091488766967677419224643545050090703950984145411152958212285464650162066413892530640170398301924059046889333891994958095206164693712170573637746601358498461375444910130378728522764272945016584574716270087342650703804357442284418227123820068652289363353234434966156933411211796488772373511825929359208026011222801719379779499844637658438526949295927333996514479341871584464440171679842898695720606941784118421225275084068891977271665005880820718431098759044951039827097653390705314715163155412087973200289460286996644239554566156072964132988610420305149629295760245227936058238895051170860448985201407575727310503551642716986569683275416706425912307506511759663679401936332381063937443536237125908821074660534137293407501916091972015805520754291101647959147517748087801085017214713599918756976596116512657446771728645345192990129021559507522199688711604013250230836192296917269655073281600245254743444698969068339129516824530712286400213480806113674485167672382635304236081113626607860028681065279825613079334847052279793437852776528438695363192937656793148275367375975870140014021643711657880079383238261958961212281516896162010251077003346183494885653798240146539376423516598255288800194731893797109130923959288735935167196968588491079141217717115213757645859644572994565978330927917192942517144689247771688183244882882373678660938806019037584938841500007149214269068086241210523777462055060614853319566779303963379063336438260327405942120367463410456068200663796698318903339258582786284812246114259300830409427453784112463881907963727835418112660540440133524103713826002750046224378019713176488092076062374358336798161801208883554538029557438519218678170127108339063097894452943864864512327037750256644761554429572916659906777277535194405896673565010748258502351221679640336597772061990771766872954771392842179397353109883123649984575886823241578552564604847695109201426827533087366912731435022721993199031891748132315378357780653294096437177000197665525821230648739925254490103812869599933646181365725325070607161489347783171695712016967126231677984528836538938085291205815038955062583252013996545265051555755276940084070464563505577867646830866062748135273061563946736983669023714721703378670570208181234550511179816530959534050935100509315231937244725324965605591607813176876835531899146640669589286112555871228917033243481720562919605675601184026768852708023166813595054788282314585366135857823678472679232750036784243091171869938956559422728833164336239908990588534210118439202185308903121452979306035231994761015894191990433955387325290093044183124965742327844177251887960798690776078075512031498051537029312292387754207536567897427246272481792517023556367027076328683355548624448678033524057419522154643567746691463083884468333371832554223285159595534383637650299188707872937107794685274233504803515216729377225074753041282775156908236569508062787660625659924555703704954698379481332005716771339683815897756997579197361181288681470708767879834537723670880497218162418265026069589080313774193518161675175143658866615113080003541073253854375905302248315469590197601648067900901917250713397683483835702512564941446916915625601059197677362553046746823126936675381503310678458573666925159673814091125329291177674765532342780348536875792974265861779878006130236135230161256385449475805806284217362241986014874556100202589087656826902520277328223830865976299227477159960120813528586941415876907385472464132292343833099618971500812209538705991629202069465316650072227102313583469346235648669008806185072917185597226245316964334993540421590035962351579200712892051555609242451649309383848111439793068614311625384001016961611731354151221005380169865396828081620912432402311055251413854894407407571994028574362414595554638951338412497263896959363997097771844470918991552527247598697457496791953644977519986277625210501968438374789835158654849173363610304590680543416060138939254652739151051073478337747389968788766204246975612265894608713050120238832984197674767052345503720423698688669246149020217092431792277268891517744778302127848700946198756743827021120214988783834111693760747373016169083196061842032030455180974667960251279264810164936321257864789298502081225671704838553441384812970484737882360701009550478263485842835977729143293447265904131772077617133842193972236688101093571686136946834235400499944179817877537887758522332160369305203418780479690475032265377025012792751316819083263854322507795034542464331191695676802362254942318946743745411368178287638616637579835009137881038791676365730972421349417911368637721312897873590982082311757734359957837760378239193988240762101979828953956484443002430885298757320020022629361166419631528515768589493783772628964719316466304553499756831539501775920751740167032609937901385777287173592778413495753770393300118319976606961865198919588527923089052082447752207508164499991724887947432994262932232194126074810775317006666905167819358274846773133802666445088471772567767090004999241696150368905070762052291755626920907510707474200718553085727841352328583440203025006736234698242479699877452245615677371558530709037731619877746421244454912234375930241724087489615795591214402621015126806420155427429111295840489004453298723365500633163400280347568912670287461643703106629205794507079521975146096120543148559741656064813820940220011185592322947317088441771729066235831059384282603038629222621150238831985777784395104709543803736924936580058526852402573602032203810658758671851946758685724598874492150380170208398866922277066333987351751748123745105898880131715313204033036523427398972621464387465454833030600379892217918079661950488444727093946236560194118197893002355472174270031100082987088773616129867712306975954059070613592181601418805836205784789934095416573376453406496806273682531335932543608809044734169157457662631556050371116458324345229583684304838922474333257828729765986276332662418741128594894586582991087442002387938125970513470183509828491099582522276514689555747107612559798963499853012809341843526125838810960145387223791555774985791393453659823531604892998324263260566842233817285670326541876208127720087215475163805897408695947011636709226617563174441082857277190000871504815384200106483645563068224914041544612363908805798342364993106778185229506268972167611542620006892903991547218914302974673291222563449015918561936744721806205422225016793756034631782081919116827486417633708283674372735948852484847219377754643967739928207117189434810406107804105694514920991619070593554005679093019833769594350138232606220679454963236005822316857967107638292887498213578973045094219636811897056278193471890583379491067078176064075243597746216313457162971233548245334598263547784456648373556872158376207971583050511270868630293803969766608794967754967127477713691886886876297404650218596189725796350448576508650219760151320157195345388128408379573462201347736382443077513673715399995999480946504002533269000712333915330945866686613177543365052522658200953577993216891941232167707022075137439891101763027174171764801380018376555040492095210532187655512172751525855668722026218310852803465336564927302221453348923529815666751595800742178203475965537088765605868667946383012391512462778679589911654993728056410303593264143247672618783210614363561692146880153576607322243776281221662810043835822810104614399898101231413941789350318987884364698461808199562289803854898498090688701628932896684770053963568269357498701635617850681306632886838795258144489274098971281716349333333200782421718357998087494956023756235357707656868129850331942629049198445709495155776753474266596233944467143440831121806440343037007443491057490378236839139281239861551586409257800426932173573977154209041326432269619246081588346456695644625300037713665000952633176250332515810658268634503640174986456862984648264861245288299835187445619465469633659708880997804162426192994423683689971742139793740492570311980300830963940380079456360222450106426700900688154147361394601544971096930494806051403872779187962233539844884408888077103100387994728440296181746123589956884815554613865775286393736247826069753262062350508341104381307681567495226612406628945617831976181571832712818982000015599859707339180982252719911450582662912279185454009020907148261281745354132062330750780241742025608197586251466729597514460200338463264180869119281461464866371691258704991692485969023171205035161651308293370317686678899306493960381847614241831207805075917090789511786707720564516438990833441297019198836842101667075060087817742932329841990425919320178260173412112643888519477921392696915984667160062918187286756210543620690023568062393418822920583696139746706153990814205221003482943493644810421228074783988006731162715246850360232433869375927752594782060768783551857994248362491213175387356242854565221920448858589662094953654518094314891942794990370111640331473674166896410382096645754940871182913221226903143294938677296115746154060334020394478279496749359248571793319156335939853110487096397242361777940499168984920926042230156458737044800068799704155284767858726181831730640709119963471916406947435178148246128812250021808881809790645746894988215090445544791201575926096880151297604029846812782729631350899090427409680784296315018580969040918285142998299038101239612209351156330971883396298911034137223090197881539206538930882249012826421765198513516614879089970332385418877506851178669638229017556565085228101819108507620422429531796822528459463238151598627828319517003631069053798318766446570176114661736438979728943630894772087482357092805179570155592946041184807779134651908549188592167702849228457923790940680712927130532151995048801392317652184446537362405817381804982391162001577171995971277547789770293300768302081803646241020687833786798399581520411710628220007529171896219729196502108689908512961259800669550792126075181924443163261073401163551751729079435435345870194072408007391759459307183817252647119085699902692148752171757794795427357817237947229253996226650480162188366030605788382231540904031976952545427524345404922567546490356003461450738206828176875422181579515018128343598547156309526864212774945885638101944287336002267873999952545858768189067777367876472328639118580501220361280056186234321741206639147168314751189027907319052795140543385121961553197178573957287685853324743895523852322109313938245493228002749680944997384978691726559749957424469293145578918704241516785809838586578656042777719787412422459585066604406899191929118321815728149286238485596207439690355439922313477065405845231404133964744606271637209196463308247864185397140786788013438909910568513039030636832359564350176299853188641789700241896041994075471436853433542564513319400107775249584161546677581074931012936477550719866747687491648774801350784887954193594616903075729356107968893935896345102567673353288101384181703332717336585512933219396295292718208221765267213165924708172080832843450543997419734807940470766854533930554259815904873716159715246144482263877919591335358771905239552126120328896943411043853275705844938976479582992646565152620876913417475622029806375367188737086196329468709554496363154482176731482004511569729553288531800726553316481181559923629739634208016449553627905430748650645576083070150276588826012279541421836251227389108574721873358667843535046935198458809214012742887545879197926943539195343838704781934498856519445674143768156764023376277087917059522793792942086256224284124483536655871461791500836531533381521224406156832882208338711166965754470325677118172153804673126144077136430133298731734537854352132111451681734136820519522387743977723603461286971029925855115976085028060775699983931303574117271439233340478127671195761849901193704101661241553676823803562900323678509853438625664999784024659836478706188795548183361166348021788544843851133413381501173123684418477859742419494144126791127599703647208520766741794428428310176931500729926423364665206455900391492091192930781041789583849822774137414108137798467449590343017397807386621699221260268629589783869932385546900743840888836238833627917095033934794867148817523301255937629823279762648129279918388446206154690347054975953025782273205709697363159299102996135799447867943029535779155971732223488414474779706023716374595055242526555603129870647334340236146123318334842376129559692541418376635410004180463827355693810105046901998615760945600973545050926102093430000265404342224775489409117916123105956113550197747737405298690948264882131691194107229391282413564722273816817352398678584575907822904287532578800486191753530513130452834303718788431979876487322696185189555400471398194679547982177697231716257700624781342895596874775376624123228286520089412947666197641687161143708106779096497062990256052796715502071978285248663005943028966283246297711866708794263756391975967715049144520246396632944450215448938907044845145927787724363950868318151619426908512657680483376844745518016667602047680685069177317263772411094140888591116301552142144982336426155331593890976963167460512653821325549440327065838395167504808131541564711172552598899163948752387143956774942754065570136071672657314939809470414769405905163522768490626330765556967485467290202355381674225089649063923698470341828660213388564184415532108022160515079239564897901309805853238642008232815526311695204051917776279584378107512082933018005071057424148104051441079653275484032862820435437961012970939119085766380709040215965668066182473430088410035046796203490777393506044142487695628819578086630160579262758503511664197715133091121900586066739035100609552659989064465699755102775225196480239189006495528647442787835838116832203492701077649696263400565833037123287282967019300797649496297908715143666352094276326993942934300742693203999525680444304952322811840605986573906143636158245256852230014156139115980867572176954488309750376712011309791620947122383239236710033955553698701847966081805531938919554953726161609545042459451735162844286295053979942056186392490829392784514285977184188611995707110322596827401209820875193219842219713318861363697510078520586613151168955135064559780423713520867952517342901827987109204661273555311910548342334515292545656644732265804049104970385533176143685859064643547924561521868960129255416612913393658622117310670355944991135213096594866163008981580514902052863922475831597868280522171548901283993860556535606200957159308754064607973448322114738672960057620751990802380456999562989542608551405729695000981858150870145018382468501674259216022297308282386776570704195041324900459193712139809936154594287120627258053944479517595841384223911254634438376311955577104624957970396365874451847353855205409242159640606056128950532375592226617904881977118188144699018067434558119211380938470005442903823617634453039279493144869808317902116463670306555687816437383995577922291768734153056213773383040819276502188768669083076601531410696860282176010926340068628852021746933474705704640494831583093954901872370148376207285183417049203019396825505365097535034193854197579097534923329474731692581956276518825871128334150743079286831870981819107004990498233172428436703977602094655148395749235855929603334843007881847700112357872981306574729589512645239922477421384594270952668685383440343890963699424210171165874575879357368140425168656739996201798651628827166185367661699346064139287236821699205678152249187844999364862414206285976073627956690952320391086732632658966929786023955840907351420400009990364687182834340293598256772164682410999671018167571217629581260383604945972502615064697396897040063398563134000216798926146512663830278210093974071455254259108687458068368539932000083436459761123930890979365177198177175536350027466940515020148878088679272662487940704409840923475629091784507922109700692585440733235321099298489337038654007486118726605933577921058939332269851774512657228650196903732375270162940836745414932105881490810892889580321228737770245646263910986883792116349212200646242687732711546744901956696971718447519020792254327661528043658359482554852856528332835519155313560055936976197213741545934091153977310404961046294147376281375776470929940427789411665175828581988663004633747685731675296090303830033885565193983667356047462705322483884537629309510235833879712638751650230449115569798122894225500614662956148362813788856971066719133732450739044539065129576743474203765249442068088901597990516325247050518712365231027600048873052301655185050223618378080675153857957701058576838926585449791671297620721886898431010419954313533538320644689568161005561552943581980474792945780105917601876935587163887816468016328347451189797592622449781778692056410929073548903407269204580113316106690295650703169063951866953319584301032438772885073550488281488118892580397590490803598852909333594548019078807304252725762020530020839516100697494695372142699090951687615075138965606610440215218564620171092925428793825630331637654590380730156186852193010314721265133520197736826648514461616905344624737275034475105490127308019933539458612678567419651671973058360558805650844985261248606629039556867153943928187126692526479968163121783172045458322698130732188821242470163347517567080949298630849289197551044143018410811500654226685012057362767367276373041306409094477419132473429975922209143311288146646853268519066723872026556212965277617757632461599929619086795865599024768710351026900682736762339690063055093497563813422284139057601027035517048258493433562920929349660469796714678425293297743397934494856210866870582828391598739074602588261522492050577994697788910404595318064245354564851048132881519910433578814710993388956568294328719343755285022391249390222032906071532982706610574492639572629740246626163151792828542153552463264077189967633610095130084410477065720961548667787809454577466834775458824664392549209001220034544272735258353675592851068052110485811902564855770591761386043782799005779475239204645836469948631314165951266830128043039405246921727648939267800479286798867678528532618356195779195001129852241979541489679903742400837301167262580989424589478823225107685321163403269737799058638141175889394045119078978574981941146530985049159308331817938622723965966796105648128234751427228777916281383893812890856020377742191411644610704651007522361930275328540059837241485821256835241507202569397614534298384136837486851588518422101233234023922035108319642762101899617167549067600170234282633619297257293005713874627882912632654990003671248747580374563673165772540323731117844860461675745087927738187180452334171702518551790886657508217447465167648118277284178157444248996393091916964452423069746214309641281005451713672514325175090777556051947639850301206245943763613900307210753888339365755732438074707580573389728202302913168513969037125175147341644544434600004489295592268960084055547183323449031276788276201246446867396570265704065720221073461911239872588662824971513506144978098972909492578205284584487642539519139645895393759097631188534808442723857025193417713022584919569586593207269354071006872662211664682173005851961078821797513110043090245040066080545543443388704515716879706401627547260085211989393759854898999544320204166838447829391745747568664127858740026851908300909173984080740112681110951888608610732751828175901758061068739169522482782448924290005454755019718409735152431967945883563096732437545016757902569156403389662584838082100520108186522799373403386724304726046466843932442329092962456397911168071081449330709531378766319390019816966267080327776637238164497334822981156028612292876515232402029231414666058806521466516808498430693561810973929411382583485618718388644770494125449186991167602109417815320077043002833104015615538041671053423483150516452815940676245757086421345332458463671458321123033177101231516012530204457613058877986612522697188418582185861809718337024118392854223465572378706788305942198794712589578801401534026967295783496424725018001223646775005998826165362967873421075716553454258617574529863812179178819488651933411459735556906135495758243371546207587815023139646838024170988831731352008190475639555801136504899247001825866240446571495526739441890828497885306513929482456895639805480494761425476099769312008994302007552482623723200101397658977435654019421640831319355811549677091994745177576052356876817161480531320266544979882421632435706685667235326895266999248169793200404196640243691450579324933556184626407504362207255803268254088015300706274263969838023732648583263149084158650721201843036999473574314728447776710398011037472703903618356235922354989530398846832397189612547306712343890321077590383882397401289103615220837748259108684991760861086089595870802575056987652917741112389628272899637033556746844665119489477228344624891347623204915609353406372550272344581787721023225188930454974062281863346963107445987744136150663951944793936687428801156447786498933172233029858541207846466186984878865799395244789131751174375127236319869973674403784206093303550222816032464753685519471927078331834110036822412354470051047002556789409199101180397369256043299699182803896369741772521646247842466458120488327901592067465400510112389945776600007389026095179535017489009987000369611700793211571822513425306950370133060527549466133474070581573293437577491512992986260737110286010023593331196218389879281469565112510334774550508472340785085844448722164635090669457188010937468353788687544888114272029658410793046832874267648860277950806424263269142479673418464422865580864396729897787804616550148982709664271912809472906016818718064898775901011464915343126819522031100996129805033595542333074121889256044261137692308524007187811294731511476893041812026763987197458720399976843574709962015140007409175624445069872372231966270282041422234842603395502118121849783033476583204301078087531670743083685043121979463506007107072940102294030874355802650727300274981984273782318171202136060714405228694700462398013730368605383481248861098244618925934822594043218238001400681201049288446228856346382046699574142748580945048386672327071002937301954561437443621623111804930714977537249155006431366326010670385342123307725576183154179153883074078348921889662511432259835246869253459680232215720520173576043311205856773981977051518822347286006062217922296728728175855465127750439771597054396681030666983584469524024221409197644325731311594027541009141022296578722742853283980975340801606727496438956249558525323056926385314225640357196077356909918993930457308267424864631454749327899325378011035125487146082887026289199839151458336522808561470930382699811099470952758012409961105965227045956824686819428230093941985302571718902022488482513483626705959146966651441844134458727116434737126220974140842896281081147998653498268290769216097755018636462777043008537564773134790720817531440420042976715997536723985033331945172544129626390989991076054075057989496008366686213769174625348488904787637906060616692658084721139885200267137136590846492741620221226125383526611617860122784181537938981810511969029956609065536571768632921930652231437301068159655676992490640879124384725040891533797373673597087102149705022461179187250639547455473176381679543410320390464051250931954633173391391615154681230565835833506731682183919414466906077737017698690571622111689628528781095466840947038707788079747035785640451039643647313972235722053655136111482086184862344609414930363224874456996716675644182984451727609029548079739374291368058112194405633562421346796771930482788566278241478372350417292424909335343145066592861660550179720021761820493810265053479385359386487102061732013701182928860610514528809253136135497238956668824828732254230391193191290470053758893802064772124422118464960545607387550635051838724367473622896547458410809668316978745739941255994441702454334458779634838610633508437744710416548188256666961468934383486502414244296579504177739715858328320633343082525459597819791236958032799663135295335676881235512639916789278383377383152987364084750111667120918973796703960218784164804656817733459079474534599893353032908969453288213727311587397431883531022806788182995977895658328712034875105182527666027198714904137785273507694534047782922590497072076074924826139306916843540984553445324726912416697322216041730414158125941783257135208186432164989460362544556540458041046920987858813160889099206442906591074732551856882588465805874973598787604292946448935813634254552385037749035499050232464425882061801294889680548203032231142585759474923210560398531112831165982850545241431100206844167179431620938264526040250130424483978036359029097246058131557494830883644854293138258728695518248739203379857290853801299579223331468722893943504156704715373505558789989824220321408635865294645292295902158923039473269844429875085461953189792726107294275858372573326391073689971315360568291033892692386142971854074845937037366759307417617255075660652794673586698773712942857945459122175870930262874240161399342913903694765998202137106946042864205297806302887254712501752159205486383311679522372743819302956807148698090997199104618424813434390244302707624903680526991929026072085989777020979021945989159119832422996609983040503499840486813866513745566205268819447100072790797996696827366698741906659987333436081755918878653467975610645942079670464592815057736796298157728745443785840242773819895304297839603795806417405135798825641068165574376351483195768492731600795436425130411874326985761176782410362626685237936396468925755084118880782156450920284814239332389450217094855692542539415857410028807813525930490294417328262061629703851811443907391870898013019843691627823409547690221381733634027677563402528843101348845893396756559143008019758741242778393912049374291473881046298586244145619161574434437791672960322283605840107702196913377452982133273812821863830873760294404068028622972925792149088838896364764582669347629885282801190135509378765172521324697826406859850916324061140424955776495865225061683023760135119446130757876613549244410585255391731126441996474080375261772246983698051967200825076169338793849034499216386827985651409207377537661216239175949142715040647775259790471725841524697142910193666824029346320485570450362324005727300730400269611716560046342861032072350415467198610404293215939193375657860898336414622498979662572487013272140823094571630142227309850539895777792895715413807194588841969202245443330909118516495648177297172346125070120973320712361276871980847878723966777107880697782293763277859279526556326538967869953343220252357790657049961980857385062340339152609683735082239969860001566291975149979362481000533414204208487005964326605403934512669478901141327927282884076747161030500139708515491573232623458782241011830028111219891322034646178388218652159100473665240834770480664802432644772351638491346733522125164674969612246785416509591380292481984940486656311790942264669754762368022304073480769984415949615630382867555974740630254279232309899873613434515021198870099732043433407100557610728973221596126180436716427841661074331429724807167876462706190104805489310456034367902859081391279534043869478684160328971722886981478445970596424234076212303271394488350213401967525601014040783866987252853031668172404803677117742055370838790106010691365267316095087029906302012237799473094194656607003455807946808437402459798055326588970008925953827715967484879609952223246356934219361889502424369384205268538681808765171373979156580847133473739467000219258606959530749004700085230038100810676187102385112728800498464951230527745991628114222913677353825722754159312813417630307435228132917907003722321384916601500891456390062222933840156749949569825110262908145530781496881606500709865886507931124181718497305720502974216519974461055965410926029970835205796578971122989067374129328735694761425795499049663472491285671321102968791991388545603330565410910111456364082485358035013313612069724190380513705027268958910518650975189442498355214169252305152513859507414467064072416098553141548419357691319797523785148879978879603892901874766415254697672184856598280257167499471437735910459962463865338309503552892387111571711725844850175104432720671264096472516051026557805438931780831560189998766861047661999383820124686013851945077995419073860940039036462110452633886840585457110723936730143575098300810325860360062519318679167280603875441582532668144506610312961765287850203386074793053456775296540143129782278414617230566467191899936398871249243116704933797390345007171834140673371411455839410882222359285228562833923638260900194087445623340129840102047024917419214150182551389621322728270326451677692408821598505903602697465888653597659609223152506554294086492639849227380291024778804484517979730534477792324354344783188822246487279285691773781373045265680894888368865975413287293635043169283172394162349555256595563588515464755741659300964397021562994186574409741951740902048423175742670916832841648757854675362534386989988788251328200500285060345247047127390886975970617004814113060170204393931786586537731368233151836376233250881644472816737698745611782269962245277412326217407428370528473939268561058687352724193253949667519690959551234169965433706503444229273022755662790116319726813273247354531421891191339955959675696767790296629368444169841505010001258930748417996974493559378386414678575441753497807761663917488057304073450574921785075444195704527446680495276083964438659491367885830659558372397583254126625297420958854103378040180571490516653488327221323838822293802836802608264599729459956845471611087655565464315062101794171599282698411264417136448410419942597821865219684548653263494361488691576675134493060034205645628350328593395614685588246759991036353262296011662889063793063481296865191112888520935391320034805226978891744148913773915161500235308311495624300197880238574369991212224719817834838671727187094644517759787780291807691060343031221250558831417048321840476837490189070567291861225966395487422005694804153375835335759555901834636854470107612524755913171459367342910507832102376005483299086910686913885735003237184475676661392238178575903143727797528913684769346809285853788810901267824201244640546219938479246517028012342908260390017803340449743372163971652553078481401344480761742192780752792021396043469994669283004194835387959011388240315612684655383702557055245927323220721826844104947557344975319043246657406482942348963778001508452915518337409807591878158885135060683006452329701572134313997641046851410378848157879056899850176908325099811642679330133664302733194550857794669072413793907411731117134452567229986573787132198955428698889290110627907428146487090966995222247094201851161016029535563897818695318047379315571701332273282896829385592895692406638370282747175707813391143033603562524969836083181774593984405215150474178692142555259388197033236101483254299786862048055207087070068702611920158187467523255793353205556634160000747760647539095049012260866784561193254378788437086810861635455611512538756831330953938035029628256656608437248460589454399753360018690290725762090713869596220387100912033575286579214421120372216306037937581201543236087600920398329734142772720054877488290338437904951111090992442817977672192946423386038747004857343317502199130342363766852988586577154022367607211227419219573533943878549775121426504188607492072627601536867640561560374014547153629006922585510709173628650230387758277636084309499440608607598430831655682867122379524973240919657474284084175679788896040893807796671316028212050911241526596125652770098724071083728321928587514957850832260242627754508292909916565804527433379536220062036637903398698053582213392277754968775782790989978783399034824126506512027032233753536851772987970899510999787873220734826377612497992071051298335567506747249245671612320276472758144359862632012781844289973130213293471173999336611583270135938555124723794681668943114307323486045260228553124842482603215237578955535762538035297527648516802688660681009267279380468174345703657047999068550904031582025661714052998896199685289963287382825520120028763799278288292119933253340106651156730373768739348549112785432362846412592127547434113676650076119798330683898585123584905975856174028516462450402353039524170237194339925799150794861464832703834291121701657158589859934277857064788831598103737565020877640814522943147090353196599330671725965530378408940989311152267705391854567620152440281023455428478730194465464792101541455587076662746556208663291054960902195028340688250650062383719488317696759437002434327307198108103839856370831785728483762708345534211958137965315753564513814707109206358747928324611772161686678931448172759450603669250169213198124972663523168859996792463220613888102175056539627322424483049440533050275425067923077658904435656302418194375705323908571839541517137221943068089671462202405241091489461990177566186658212727228837537837986142860978709726255832273794252225342904585361516475085295918544413075938653720235652841790440625423695654364823897314109456893591883358241820916538641044928349946307606468978812530572929054682236936524344568092305585191713441179829762749335972035671483912792938756040111400894578863672792485711627883742548753711006850417487462938628079492060965481322789516891415837518282073480524180303729427561054617652660638523293607871481240514104498990568576347847368376535549410026527988270893409853179448119529926064048228599601788856062636427220347512500776333057990482487408949844928690538321643824970878827623481123681146998199349319882003715226298286164491001296476161401251246731746452434314811709203069004578462439170704724905349349982732101182640288070960356728939159995251737010890318793520743081643303747767219956057239251875244745553617477846677081697674681087880571373060741242897109132144888709161942179292243303613305275337288868750000546274897131404125357445294521165199466380417055039058467929686193700980066885119719657948837352039194332719205917892085612415625803860856860080209769710790161561716951383947950618822480038043338597574410594218571770155405975798579391740987717618520365458878896968782936205174936490938493935471552184496130157383895831401818864324673172366549469716943209076194841375510660556385295394827135194387983993453596165381199753764465145235214391224237198592670761732410023910118200424512926836776339896638857986851193660725284894681444460049854072409955833275048780310602423802810944436612342486651208068718596754958846773116388962144020760248433848625292753640167886057552717674647021313323301920256020830075489027685333396313590006935018928277276165893142547629469697441347936871520114966629626056411273475992368323553003641712828779532239463115463539778340731646072842275541198179213308468985854980652790097461430469626696759214820740541467496560523140786762650457499499619946716819292640492114715847057543719280702058233317951967067822340730112023702126598779660195403479505823964986991633047368351012195704371876672747369771829236024487997415762007898376219766818918640039880942146557457749196486293449340572267474923986163660905005827208460685678057580181766273133261343565155460717255656075503937341638545831756390011722393624339973358364567682630898754012686215062217818591892825845328809695983083405184379615760443007293599551504893841970517169178627670995840797742913326257798481273557381850862405190698619327591173891192445560992766962184668217063749427160952018221712011405692074982479010129861875487033012266843592232923413156485939452270586379211927662052123182516825628241441884345096444706498928771936757356483321648471186623521069713336547614618368840291342577970974179054155686863564995161833729899190447425434861506342605130770603778601889069495315211136176459286476791537909292042434517717845495985044950165439822702045037270452697331605520552693302108451643037956057879280418722542872355321732543907852836763355611764772668973614601587370726146441362958356676252763777823403617434556764173094303130512841612640099498154487171883719143849944641116449694803051953789714112759075831352989628415715572640684894723118175899531314386790377101632466205500325219760756401962065494321666414939747564452367080819415740156187958915325312670794685265352082684763226092852119304795254770797339935856868677484968990301532528776194454153965354693611700212808928787124897423755097692981995500072579412324735230679679643139942992548320488846961504302876081892303195835532208739401862872948933364685430195675881385633978141793798197029127797757664350837249364134161502620013412023069967432379145055448374293069181143638468245381255378194452098462168191299168369153729625987395915512805193271401102093863944128189237774296807748885548893144513726393042536858306145938757471220452871958964567088113402957462168545760791486625233698182669623309001012282212157123387750096256422669064016372664620266615515440849735438047542033169878200485395107785747188362701003693392143982488122945831711345415932116285784422860668374661532427568318533156469845732617209006867412261619116787547494663265734237029269384559747519861555329770267447227805853709153828809938305363950991196152986248928925680726279580443431186621569500110058177106810674267686584102667348461898196006527484590802238922666338924542744079940409969863512754941820062824476660586201831774637929513257521906364831785404360430552430411173293920089258612172246257373460951665363420967108335739216140658634590522844108918260664376314641498143786277050617012665235323098640242608418466239173914158116924806680600375748207078130528905942102672439370449317168132836878088831696881594829150285578897648149730656544923454534839092589426738605805687964477003747931365000581842962397836452232372111346928785365631063627845086326694198715142104983751542858793928180438127394330980574554531356211479131105120164931151818370675283776378045643662979755753098833193958579451820646922448616693187163373951007271537728896098185790848689521056064860352233208507005496585388333043659098226936865436674714796351324555822714248219317930711785362010758199994982751618507209422158488782112619744349312022340391561967990846637050846796765691924044389223327825345936817354632301205472848447556546446770680465630322296602110632318745071894348814136976351877878940189235475598264252204852347887075792340439484948693929198389439205281079141134176704440611420554106856201705002668330516858925081696217633996260850123012953758344234442268435814648106815514260336691636851975904740338628306575037209667482159768236786774867464919457663389352255312380062429541319072758899079189562844286617795874088073273001126212241728026920315836226673857391213172832498266520632866310468513566616157339674903984784005395398066068752713684593339380251048076362200505388033078262108194562999931055220297655949709180707610902612096388594586619240136759571887108057899629429026210911658917849145463039625904369140511049525244839384710848464831336511732377872413545973378566533451414594732781112041596556057531278679980646405246615180715467168981294644720630515002358542407405912473639575587417790608029526500872669558643526925101644831617943375099287185763708698879734510385246428855458404796261382483583392874699147660463790422167797176538948181458835136007963081183676374066576791027632385104497159771119176177875431689610386266240855881419833840086000724934044836120365644290876294476736486321199414942383689754037899386604926917412299343315169041392860820765021524058480754853853935733801556576492566450519630475401140064204007311587909498037531963278048645544665699148269665932646080510143305279826465172441088856037499170802189803926787716785548015743807384909512698245529101223420105686955248956701740749699780312809944961152066305179140985441848501343436062998085015152949683205819534704942291713679495013243144502559081425798941579914141575383634826179847697510927545419251358317488297849455602793264989450537074910056333027815873625030046478258050716743195843114495079924453579669001575039518151887117576572592404271206053781395775627135171399793072220879755216309085242197606508741850292553824081108973196617967209685100399297863598097260537790322877207784302952030849226869587173622438544313377545634702991625161297886157374024916803920128694958768242837544835072047117590081007042476686544239625844082102480736290855110667557666470024815508998148158827162452752328592267691518085661394507131556935593347142356703530020236003468112615337438708186595739330441451740144009595573982299113585684541583237812991774090943936145769678280742521420209910107693105562476623243121545627231818768307025800786715669672279069692715762589343975740476064240408336063291607586333663363586092700230755335529892867951182506290228228065704594483770921222874873121023624878249754546007165702360408880839218227483350512016538112629090602438498229389924909291297680260407925694462577383240951317741940566672957040690730545547086754455529832732722750432475976388834170510069255548876509012541704007254382616176169879185161171832595507043625824202812842299035035865443851373268427154866309962952731702696168436710171200884461837967362974612575070290756063713165467756525661168783145540456971260488395680246616185586981162752553495334905759433499687372835341946806677530814634189624073113312166252818597048819408746668552353436318222287812899825649036878420623777858212660662356785159474737200976865735916907667973305513056263426066713393124084083061300009214424739522617103578882774376853417193468956706735958930593677289910810714411001841211149169279924648287872545732265414108695254067677189817275239629586314556379854944034345157190315509599079086065125631722881175312198703720676200094021637681359480773745114145740664781998031664039859100092244422148921427707131224364130432188130229182421348830675979866273014009522970061759119342622087590606560767954009369967786463699826707782589880465718118282520185154990462376539099061291717749896587371668624354438998579518956236416839645189420141706864766973836677924325272194252229808633583176691443475575534358315791212454294551359338217193721265901121382067130032232425238231576099190221233209412250365480372777655971269124668637251885767421952368013205862933167278609127760856580341466805673968645216079521894314100406670755259436935706582759954996111525913805037532522051006691883040030703920607358213558244230670886073519928625808619532982298618340292747199152795000011423312725473985102020366980694739455589376734020958481771104209665417279646113100628491930120094493682538185354626700182728608467685383598924629925995812694977377364604164172232499772807277245111191271847160309936091702876916479997363413111521327854434949523883634842558435348932034316144860303828092900854281606951865041286868145289594000248199226156876271237209746079001153975370856585090363947480826332311359276597877762657554812739652255480754512954729490946854847321376403200765727208137391223936353420058047178341908735472523378939629077298025359795182153494375474890047669672909946603566882702479617397313667036227560646338319472165218393716199636906848185511995446009043427608974729488105095310639497467868411289024570368944824190026280459840177985601418992230097806773718559157783190862602473215705633918515976920964476862390060165121218723717900914355831921239014316363826120348164752219031149668309834964909579247264455661893263222081244799348675585150712437368634105756315028957588796240539128158100758703990628632078223967471706028457886888837383573728642432069725823518221330879028613404624348980656742010940010778529252774994153426293846524079377642499351779408711146220572398950082026004047433718049120935135914672610618929338676613881010299758404755008264905954027949249570585130707952170136275562510146013462650517231741416252882001876473483396520570276093542953177936807104433196043866328505587871561402304573946593328434750252453389499804730090212340587280505247888516456152226536254253238358371172242197993540942792806400018619782609562736752771333917199129844903577281692318560941800368565259799880917849755374682969564856137660428007184927468422534043199183745377214062386805573734194877785034709453385130378634009503787909675800267852120153960317670480479094793426749583728899993908695705914216961477645450220475720735558552698989945459391810739095874597104502982161172293759534458842385925151564531347671176098770666368018601957649058040307918923929999442470216765088622262767823230913362585835124802307395440890786053916274554404787208628262854815186335697728940885612417336139396157362656103396156802345476110554416907454004216214458459662532034781945000781225765461741099635028952292029811817969573952312074360115178550491622289786263900017147864425765648603683156163583252893624651853783598308472544004009987325884186601491494544615751562968921940604515434960917244761937771972904461929902019860876469880134037431317523661511131536935863267758870588081396061181846332580045682453765555073828313292906504323790990192244261230803164794917943237830359219480808693868007074022964959632854113655736821561376858233282913528258895419278963663785077581950743936750137599391354462267771093461349579176206882592304877828610206746022659670121503978631889020771868438137764161766757318285523090267455960435366741418339677225409371274025711798828756629593278506525564579195699322082165153439473221258277559685714684287422881657835342355043273686108343762407070389084644693480792387001759404020566556894901893236832296377926263323810463126087979727388820276546099827917595754521793525172767186676002108255514954807012584516423289323492352879577543360659640832847562568132470583675534899256914454779700934322935329373742554435754391225148900386951638755527903746441215400996978359652698544565322152840439782678500846117232496845240265189092649761306338036707728927077554969516936277227136384515798778679548348956065313943022553821942976623323474215261288797506416219047712512144777264170695524318005263422397867545573179166275935745629854949719204820653620961544162197341263616530011086355236962774775034926856737463800618222323367407110800099913577684461603467289091404664473227022017723339513327211471523626073011025965020699233694261575462789701834195513883501009221636256948996034066702830280430420947639336246377469561495901780007879787245404359495675292196783409599725457219988468195859739021428560009186929707311250387471780188309219236441067454088471363338733203278418355088031732904838348228486567608534707122355421711900365798878064749679652774824310190371376755195677743011383350102874407908524694927873559884923482772604975268397908294412883754776987637748925098194017564180731415780870998866230307413805175683285046516750109395709453250039854690445169171996405679594094365840123225648665492071969315869632198105571165693904895446425999910108764745442672496290991191161057017681975594276700395502361596113856252367879642360580741539909218077581749164253401062095522674202048338922361646888412121172851567368492655724071172489836663739787003574170462687600571573211430730250147472036655234840448903441183315827748656086287909024719572924620333544522717268407547447906079435548381703323026115395278008765126661817346735815037291426195852060971685279370788522870384951295454829865456884355752220859818743242517589217330584166426115421940147454329190019134196307626722243268409346551126865993684019774682254775543238542764964443769265701520391250585315425587832695092176050245560288872873081688962298063896867957677670117691103529722236035462009786691275783912656413622458480865775015051417825694856761341747051711196805811859621394288931851983067878208595179840627498047866640944856541160776366311048097991929184674902534586355738439570970201309445349293228098490814647423256620448061897769249927107954949050624723217721627665082437822831454171900734771276826249051520179941760927057754677977248494246192009922167307275532851492163778899730598284769195024908444425133299090082669490229338309644517668349830925608725989947619076119988406721756930311162419120580590094967634497539195579186542705006739140909679750119965590943664148599496438565111971325504596284103042788694467059792812969831469024523938109189868707869364314330041880821656409830534983710173698505024011696882666730694162686651352070531385484918811457990966136226248930539506020369591684455244299426766345771515659746412860770718386237998287038027450185385949081518654708093639872960814241216533853540465842772102221958546412738371899435290804027394374220308009388812465984311743960050128756746667382174942190147722797870977068450738945856966083186834039589564601329295542641943205516259100225478420805366917266436644812719576650810408416373161172586930172113097598606291378776155661344349486051769072718680718663360932771539253018936719744427158221413534230387848166403096270162195084074172751527316874489211356163583497272331769996669519858773636695951960795384020897058027183634275089434974316881644768920389685665365602190324886757639909125604230180807586967560383316050082138699126078694405461296328302756887070726510787885271801542295332705862214990392071832448987557405048072374228244566543262988045875678691240639429650477590767685223658424850662315719671248689404603162177947194243861009904504744895303907365013212452688681018157372488567072268285206382886612781075875090690831733292162648771143761712936801219908807232064839616844775882099084435230894473914801373546526483930996654532696617535369944770231633953723116142471679199103163842956306680858207382791230087715076130817042374766519258870069235670327809956635343264856722289326362420087917070586237036719541586828836290094061201274645705983273238222349300370830462974685339960202359707851631753965818750238061758656608053490391767594633904966637144523130004548872207940865289601672214415899737196376821317401660290481549384139454840397525466370315410956927407107879303957519389847276493938335675055088350657836705819263571549663239355685646750613492184823407766233296799100859733043237024277143789225479193823335829249281385592743190121165195201787620136879776410839966349257240847866137147956874551613927529520065977434755466035876121509682805182912423505128593464466496093220058439815166043819662818502325463424948820231520018159999737699518418308165596198925837676127705056294422042089761480747394476682806450728363014333533352445934454291320225627980921955513584544951657506719796943982596605433899891697256672385647692268863058752936561758340321545667597979397690357583553394142936621596207211709640972607403339378444659184793009432808564113540012750379055762172243457972747687635309458093677205617550746548749143514029040106158917882199727410789204123762135869119888626171860639290332842502260021540265205550804876272591988174490665389154610949502639549474478814675954506275306873315637649675252424441880450407611385914961952227611262805589209298044608516744967267275455135287892653947727450058034103660929174611427977749351581691546411813463774354743833442405320938662651265408292971087466860531588838534597546691386459299092796767553689775917991886819953332976343738047307319091451920625880123641809215575509968064490589021766244741760799872499028419690406470408734085315215341375908376467353186537811962393467423988238306298752826827701005670063383412250823826294280184761394479409953706742465917700440219495722858725615370392412154897760992310156923349076231866639897887418782882241371517089779474950904596573629557004674814978142252990888803489206711627988344835216087538317893526391217409575144470986470504853304279167434596641053100702493696747647310553652570712850371065983945963382249421807943476135777083973014365765693027197016842843453479567712576251304307627870610341987360957844435957275983187940416830015957740523780274987830780019400925489140899039265195019243103622149777028907600513681061387688430814489517227546766519998796736388357477452326206117712871475697992439158848942714018931906124985496708914205902115179805510885793014639084151642531857995557607850678330023708212685821191972779478009473109839997446462029336367300356251132328278729428971942160115985883673299477789636609467790614008038789414418331014426505742268030680784755115343702607882237059123563815774734269267317931705727638336603856219199020328862598747037062244699524561110369686252710658504779442261486482454201634648369163787691856828210663194522700883885781246473059384259096620367674573480965323056919577831887159140367552054093202619492598533381733512987071825685135443981359096415886725184624159572162783673211851853963172105400033627380499817778438847409887483512933134262760690147285040478766675343339163046586938107983002807902783361445214169630074343612100195970936258307541733633214180876321662539761789513066934297749981768541704668192384146441287612433977047683840182736592109055020237022571889818163710393496400135816108268581163125204642647606810073335403344046895232662786935599750148244115075932728078243644124548202714200582742883978116860618380914332271765246798357641314401944476202251685706225524063917416001384739835339623182701753546430556342417433675555140151500179789337628995294825370906640895560629207142351959657718695950032816268038329041400959414246505890173580351581496032757672412493390099325319433368339574464295055982120289274961139996759667156545706359298077452382991489891067428885623775940719788956451859718369044264727034676100904276128999794905891960970076363688401899665199204760327578704609893245820795003126946023583059045375375922882219631009039307994521204318995593619203245498774623574248615563259276465451349361130383282669817546136839186539114396540975679942809888334056313636223394252327453612894190949364080287758689621969368775033815428750233473996487683122858119321735932720283971507165395947597047123958888917489907142521439434115336163424754449940326541458967197327240042832221188809747473751803849738227968864045028486938566527933646021487527743558121638131275742538764382057637087601172977358052087155432115896549929727887050715200242232410110199703279610560560483377665480596706260751749561232389160838755350793455625404677883642310918578078349575717835966559142432591256807721870139842170043708405696137091421114714015677379159549999098790744695365520235520206358100419579392695804991350322425006152503450509759756949348248241102024229966985064779109461028848748437559480361621401408110822394600324899404862888017603991507536708722362496730010927579111866820419708176309314289439529894599517762123246179536148391676803714224290923302654141570145921150964498282823609703511439995279464925162635972345317573500363664123230055818332747805712922052188293762245005542013918012385655881212908031265497572135874301298248278373338370928811833615374556855466416787060267107050015494768459056561122414440860531339979277846453944886184167952239205980759293682614705140616400067832203916976183209694174527607766264123431321773805189285700382234108294078889386877778129479388370050336447454031556419846146395206215137064550716202452513954453962622101811361207938999854590523699595546782413772481824293272624016571489207650411442615615031842549286329523794449125328771976859611728569838149681124576415758396332542026631369614575925123533821223731840072640584201950414022521500559426605012901731545004842505930459890894493135032760317704347433955042000717950563615755174653694690528631730651363843311100699648793460621825983908113045860253867781423066341441317919843934121718030709133073421693218972226131495595308017864563363503511276512142499667589358316282154272307534162524969703810962504048296067141109641075738341775805255293258081746093716752391674410434237427316922269506275689928786845885950558504731897849211617546247795612924856897010391934833501632998780855379236306076076194346722071357312706123999146884503963239076846925807740168630046682296094191253789085814201065626107483606742094809898516496014065173300326720349506861485828207841316727695363142744810587108371028935499267807829582933911289562703551139429878221273473036311064551697960602642791991306140658436314196771518091995047341581278484665961692285794143960914216789565701290135715948263310234662344337166595809681528957165315093588376607580108383669779607516705756973691592432519011965173635589064845990857648772511216589977892695951580186195365039504079904634942727609475431677897532837250131828081421773977142564360477247962839321124131786591903096583225870924019313594282560173387611062625443375887269688956895623871342982953150968122378552658571785790990199350911785958512872493452658152409329040032131102451612705478337005854791812688759427632492174912507339115739530334007662822759009524499520354578698628208733805098086732207884493717932195449884005284138242481338642764437705189479503256323313017226645483114273534923240610930855568192241843003168560204017589591353552552221836849299997556480823006681552579192759551920880383578003928467562690820360841637869587187306522235304615090301654425206500058621078505721415740727688024930388153636386221845733561949281456671010603982875941228345608022314169706250176081455254308143332927907784028267441114363044981317897233433114470722795097594114033507128612467046927549408327373991751902603635649503571512553198444702006482593178122945929302371072571975682860952435281665881517782566385475821962884263947928574595043167075735838912219306375854434231882349073421880000839163849799285922550289650178493888464793893336904503882118336100132160205329850450642299115199224082377824647330065678429899023318840749211887910530297163973353146793290045301792762371286924635593549597036866610510593103336795965535694540357686519377443721157797314940837055063044261783009488651476913382023232742707120705930666049302053739388205925087046445754628057047623404902093903022336083175458294745028687263765752685064383615822738808347585476409565094792287057900109733194184981479552991144628106477497399221763317912931813797736182328557364086567929651185214336903353995717623460040948658262129805266577751740888384276506118055784993216723438917543456773914560657723267477694166674739200371729555798486568436092532622872941501770185080584018992875512670186730326231560634506836807001260532611865905807252861089092881404047805405535289955443195279960495477574976217805588401468604892900116969193766541078923394235075118912963671400394567187650886164041987875859462561916296550705867453601979985617548017052228061327648439798462913335922053436080902245575402866620598616810425178902151567868620099908071709281703808073050082728145502940887646966143891003295745481686834816713196476809853502629086067529558130201849738969148487947998373804091036463966850448395560165629489238194606504429508589323174706845052085437525196978903808000998834619170408639884453378204957237658745028759525415070900611459006514142091509367768980114901229247951856851814275664154658569980595623563062448928790196131998483163190536915229777794867175049480539587017696914746018604009426294805930451631969341985361671765959706597203991782473720290979085510093827578875211962643771867551683624761289185100162626431825208161535776271618772314354276369984695407585233396996288778739729612317493062417199529111436453044852510947589412305882052808907994999575118802026970051196406039481904463475139006257313945874745521251658844857931410220411868667931101523603704417406801014238481106829400106607623023557038383593469653517855017505551714423685189360286866887521194670561302266643258436193116162185932817133791541760587010413726094441734050708059510032534630561339691121362914618995994146657701277656302388309389974896132044707948321989390866379390216613582796789164401914989046992601204609398813292993912435221138353571163102639836736026335640389847657480533635522020659142312825664907420395332567058129646617487914162692052112785555466761509078665490261602323458173530167108717416290677719502906217885976503161522637656103888152382563196345570906928796434039708768529587797219580393722503422883545855792030659623534270970297517683709805470586515422266694501267698091979348025663913790801726345164136595669400436670565154308654586781885891798999393324484947774037435165952712701081984407952345011494429666099762839651941706212470252214857233462520493199375596542414869780439203400699964736372671390554028247023103573421388256147520896524071001072161548350868539762398219058574535554724837498474780199592226914510113367263493430224384769707253153915780795718601184685482710470734730770731231759493324333852699169304475592859809179735325116304888131969927684438205658081567388171037758361085391584069044875448942209228564343801616739686229450081957408402355176941540219048230392063237895763664482147877391547231765713894116155209597809741018308657482552263526415853747699538551025324740769364933237862171733569713630234724407089915328932639440678430810235577903556707878086928175581107432397621843278423491448289135723906920418680030917508818060486334131089510858299107268207890365868844051382607978560650628694983979848679832915179199898269954709978058026585571563973431119427025566234920426129128852932576671858803167184502929007713002443396696023351202031984514257114693923551727451147642599077809677637746802794317998879070021234790177789601565371657172013027749479005760934965542348144583259269934602040989361006579549030214199416391830582893758303670545717046322339870423670966922977547104647417736129208954756148751216241082164652505870425544575356441932731932983630279655186318543846441744604184716880206882950953894273799786797249634353846995337246729493065179797577122565291811961457827006099637102291084509581006791945702130450403381437830613180784173150292521721859284241838376231703150080844929442858867825984834705034784552546385723648869242033227349117158304190652546834879668738528967483932917604239978286362198491817685378153557583818196369622553503667271629961337776814832236951354921268639280592087857967158358000455137660872261981910307529918538622876802231956343400000593495376686173110264359746837482188325986641733200037700007273872504449048528017935850228947623221991186102082536690868030812768904472262243249268594937642158959702517544524069579749208945437680190797558213766650828060422503627479274660486090584038468240756488576495990795989774014150984230092505539019729473714573175835097481487537604659537824004525852984135295323408223920398324161887847594108564134664747955300322281983496873708769278328601474554682883535710927543801650103216972286517494804484896916912074571819642954041905359757716356258791481124074862543460204331855603384961165059235956417426137074495166722588382144135134888359979051038895911712759145476577481073787027366052394072226866884499230475876698644866750468255575327305859998516619939606645248115761901712952374940699831461709371108801843110263549112238008072425778408260150660804933500013791865536169958129804898692787282685851227355049959678601096848666804317301521174342159276951863336373995356511562912526915635438986215842111093475005664697182156614027596296878387841572470492462492129782862013117406518777847103575927135076323092270413532138919012598127624443608233193333001460832630260141218963541689226205584443378976404902556413333227262632827962115233909287665423631632688770590184895097195613782577006921657600287259173369388158130357918672471674574111964261980205185302706158579734131184574899687667686735951966192369282008637642288108890128132920272229045790795559162859523692987463416154569547792192208637404612992004712017169073491292561951117648489893865029404772413293535405214931839606441014961892422691964393514711176089709141271455254431655509687229245990716828418685461817920155791969730377065947314782877371312510655400965654784784256060141482610844813899179258590548460423235518265205624870616403405710209866351898766345183750270394823401409100522305939672452611020205504300745790017685048772278213825907561682553611852843146887656401545458365752665290899266079312756779135231995309341573537415957036531447383065210204186318328966140982688947545188647537488322548286941168930791550165635964108418621037463849155979970893493018736009281198325196915990622950556535322851494552797217152941605330674934876921292069034825479687315549119015955487672197536435575449118034221603216602449394870062131052436314283069318884184408348477837641872328263389435611782765029711341039916812857191553271716529844700721961737983097303860283973308104491052952538691409411685238752560674888431786854036328237663189222933614728346818037873125252989865376707244550042414568256284985656997017887248184712832299337291470855210446393463781604773901585930006026353366157499870323760802488132051070167497124524576360269664234394067638591986844776119862143251867629879448002440615636955614056502730437745397506330265124219647458407363439977649097391428233580070447650208156954518780172967454451478409949570656191185639090791670665304274078212715418886840334309734983001051868704672771533095951014813499628738417151961703427682088778637385769453086408971529064051912057020914399997160701630787874646413684361208719901614954304821657241110191465453462362374715889384819211309923734977820827073076619789884786169698900898689596640803238097613787391501753102519259448629468344457304185188327005537105694689040920744461013030047429254949660283348264263145213727536728571501752665085219733114288143490163316119695564779583062019648358518835247981086488286904009291903111693447721376247530537476371022122890082153345235794313645353535100687525178159548507715487019770531237918424585079481564400600033535462121154751328928824997758037973885394943274418755892610066154496883872586103166942705852219660700291176863421844475947819589987505650794060458032865035803489940228521796695155324812619281446308984313223664958610179078815826659692426989350356359833198722032227734718704002033046873606442673036115018107213715463356424249740893743815786525170321561350619321337903591752093963905055742162514247542193283852985264253761990217500465983361583024643509931614183382830876100247676741540437249051569227642433587430698257053903449963357387557638026925259389191608286167350919056092717303302727468160271704081853790119820060113363914185195418318035435587812964918732593268813251383164142656870244124094781168444108569254734800330640152382426056873307775420492651673502005797115586841873791614407530338883410618261807530427383309412031550471564104683188035144551102270054770559061412451820213307086306929839097668433789305251958332536169360754247018665720367031333583480322985987849168152888903859681175671845803505262440292509252108182275366537041156299268785867046762530057171731472420055134108263870239407077776381673072338439537399408751749625502040670119735909982620382792002489126106050435416115225694325378475254670481881482060816739672188982875149509117720659216794033682302374409727250299226442706654600732327647336581545196394129915071470149312004916988548538942179274652403268322712383154982822849733108501813594602743032981462664874855544806598594785537018035704488849379701844321759906045208727801017215636606695354593352429954491741528081342230693009307417341030829711858018283822004332684748790507390145908887156293783256945000905108579061343989002923773610734631941414557636581979354145181278934201300827648998294264402048927675702866020979765417941235145698038597064438515126953132094112282774494305415657616070519053354145635311987529587663766605668946296475822072902253317933396253547740630622118039640970521612787988614079584197893623112154578144219379787472087974526400351795556295995564898160430521554775539858221122270824496327983227944798349127555145185904977494466267110033947656092063389963660696776077455825203856693413085356511355281912222867483736733886766183631367780860692046047729789990961072896309813814700889705589863221947586309210142329129990344661845929030311138455740514609183044462974230307120509323029829857084050701267156974111207684394365220998636595458242693386514536841775249663955661742580252488474770436355105603632942659375044217209288354042647210959872620644643418352966106081237177911022082218927089195512934768939959308617402847569207187636097658434257488311442626922799445032741203936082334259877977846578597791346631149505350735750936843697488373367187940661690467383668720275680424769023789129381437397806272048262319622699453971385489008219191855987891223908844992585455374945814969189821571647571967106361950867801997697143416900925498565597738818449957398970603022796270161032127423789125484156571847809610440004915691150603970708266878539180050562724931992332101551203207330803674484553706709273818248965358493239830263760477871199460569963248922824071258855094211580219493933015213122281078863719993120769811241467331836887933926862004605863858027426876584191656129343280261024326238026472311870495403332191679131198431085460909169446595497420676182004375870827312030095477616079845697260731080893448307716235623046028903620804306603896867532447021466447324312345997913978329679783979464763347566031953612494591269659203866690603885134693006301879429072602225847752931496774115324828927743658193211839962488999970924552774114621659249804360406042769622507749270976202892280265917898583281564014213165990176026239823770538659498575917930548603379306116481797988597706356352534250777757218794969880499889439608359874230018464743960471371848775783103487434415804950146113400244708617573609581231561672710970153252061397605355961349042586332607605751104837350711931188508996785180954141402050949580527942847770243413104394544427448280141478098118072451279101963846207426742428074436083602917364090870372090852321313931613750082841078570528203230779608485162389380408900017706482224594329193876303814863291862361422882320553101088882672387495778645462877517154699931130975073490685774288509319068803624138795088760883999848451419164816205155908936138658845996223764809859087097562213990047956445312993577317584165962614732443202674402290190405668759295127974140106453786302586408164432928134403203174696611843895109148823162038598495931074054061771863050725375355808450309569928858800854211964233707658995514703460930304032515016023377599425916634746555074861792582078277264528837453099899039835763563972385292434861196403505684767126124020156015765508492328619704111297019743961005641459132667496085815611020842151973273013120403142978539278001800474355927353813293378974881148590892762904821012095351456828493465893032020007806841355839147561168729512932092592351629696800010340579777654125181241139701167153042369236882092050831986656241980845074581835583883420354717124440757913129450608876574871933052397854582203872263951884720310449658166890616661325500709575850093773575534784648700061918794071262873661184234728136224538732057462756757160251408073084125903351123625121262371706784571894469973668027147101537886463339905726309354930753307423375983087446123921468277302552204409258540998018768537539367428936304159864067488291469607771255479123827099208983339368787874082254328428234470491236136692422589517053876780720370869393346430463390180244615361957944611160723984906827735342513804364215541224310262793140293552737937668902896592346948422622646522206085240519815414682174443302847842755473866167861046052574400151083898567956132907888054671896093135347645308603642093332293690274441796359359380281373108826515961052491650543831098951823586092159256274730179047601392537203034594176938905685776938200326255748229278777834594755558729993702196768835327287989313920342262576555712393101753344632361197777504424433631592269529937114328653156649089741236832554159060158827747842211745845294024626704539309081797403923435675799908053632504555507357768989936563722715972238417262468647177822901755749097306733981429138197569282305872006851295019383521316447616135950837657440902748229534180574454258893352221832574714868063377144728906658793899022435067555680140737845088339076873165575344129852411849433361143474617343903261025025675398861530924709805294345960389472108666161671892521540715388228755072239772468102541604468897580143224318434940093741588473629519330645093244065121572015984638798196964925292248376977672124569164621877695044940018329439567566912100606851316658631156574159819824781047025233040823292769894015094730493974788764909790255994068907361963198330272120474415830143207143239471321188388392943997143692341954255191520903289434497226642378724104225692184217504758349249452818573926007388212504540515229626038386623261481409650634613067334656816628140774576445562150452736588882145175834453775991493324995877044760651734574279473986926997760713083358101932116861648676940173219405937488206248627869015607328585337006447650142376787667626875487076345820623095006136033260799292080591455892920178327878005115830543506621141130103803554547033324644067488139960364380832810186716020911737591110923611620025560335697750941640478406447785906787483604522624505620261349731395078527204344111077254875663813784049212191066141705586008158681531579478819538599610988832990959861565249681545964593426100377666384156670816665460593805014533213854530805961438197655626900179738991276628047443451531894121361220007521550248998556161708441579098604941611737228335728074419055938295645107402210180948120412060183287328467051066211964439761058392944464870418088900741951689033506658010789631770523393510064047960499905089007642054975002789799657919452568386400323016320744602262294174882348341042814817256368590745767875503082619572510660905225494582261219290344638079261429983000591178492993495568434777905562563142015665634777227853667175173258031291727891234870144660871140917514275454759969595231605366404612878749320728665119141602396534912169017698194298039755906368248788360486307185253187022116317177874097692712894898084056447209057381492831491374888652346863753357216771925029467851837221063261176525486496842870490290176950622667464811664527708153324823552959725468063709330246590404298957586263249095490529578376853119681646921983288055524192109193742863500232844372440537402544731746427820980679544228453743290768437529353018836609595733177327061786105472739231862543735313277175163716396510315545381505607199003394687427056512478410362183312893860993862151357690617230474591648267851383689253970999173372106025932269529790848964001765030351599458182258466823618722505012132560717386461980198613671297843475730118458415542344407632940331034056127386811683757461141730299890929830251106679438308858983805281208290204835450487575429758989269518243017348340318202536078149747364644599913391390304955898912361602418266151923044616058155020162970076096172851796907245070015939348841136336148023929176471761901887380202898569082202705883968306717804831305077832677404612343407329437921501424960510199519104333549712616778981672937508306919810138650938553907350780264173082443295008496725722400537235337430407764518066385246717901527054861144416873434395570253899900751726466935611337774866661928829824176625047831373092446531670595773749078370620906158996014380617105146631138814998903930985139951888491345083837960619085634531248872399577319793288095929498909719234420017908622617532050340847502352808041015042692243325018196000696370813550909845327857405866065888986238406892135197343486876299484654624166906500387775371651378487517982302974116811143661867395102001700046780514535920291594113179411117009371362914720625836382689821045524037850557335323461651522146347239468936781179546777111259780094336214742197158125818524134985674243860846645943775256370348285500459944255910433168416527584034485281504229874555245411367443060993195047430553642829742489784516007876513395292844862844033501433122799489374657027870943241872541357614182598619914181854019423417868308351495210114729371129294112063008878333977581448445557276087210815683971948594687189223748360134373148941419761345835333087319098642926209472490139759265343643987352362557834342932147494589272747178152262201320052212269761801260570438872228737283193388320892940904838645247143144649961537396716041255440519165142474542040392719142616171322474088722595128844767245035978000780130722478114411552693412008966914204210166026488335150683647443896327147464578949591433525919000012617859559281491687064074763884787510111260664378983063456622102384475001861578637516703108602280837060055844430934106073441733981728313766569002260038131016662791178650984989110665521369037324834060887485485884477806572843672372275554145055586102418979944691299040616668323612344627790687353762502066064878051275112500274571738560789031843006449880259066567533403354475987125652599824286815313191795130218274630605088104173541284994289231291268869069817204127178505204070010913033316653148527450190173212313835494855245665820235179174437201927481422597816996653759594059096579219470058779241846751448346034459600580571590820825152587473263200772332117788419163505223472664481038714743249515441789218795619213949950504905589295004727563481955593670804135590557494080106931046299124944896184171082341488118281786076991924199739609194889671784374060119570123611366599901503458422225225713916019661840008986629310656533762393693229373055479037896861069775753444620337374035090911958057935837097179927124033629527071151033482242269743645843924103330073389672006755500466581376913880525158114455727171446643019555413545061553441083330257560153707484111048744132818959272949824645638378850174047109014837081120292227923904621708116973452525078446355058199387092395680534777203472369002587860864047176495905116254947925233329409909843410026048889357500722588937607253906531650388194246801140187162009179870616430880673008175889742632474475313038117087556328605536834379233667936943996637083047151846111474984242623263015771330957628859959197203297238198029693416735290409478588305576062078724752143565228973818470957176217731120285097468857054196584429772212083987723989830984040862221825601442524291128987859117135432273774939199992955138749229942309964348918507657734954403069733944493728601866326815919884330331179328114536827848932735982853285974349810219943331482089568465605818621477969375509861839081754181473074926272771296377332163461399646663271435968716557321323488283822719406940731749120941816850962588866411900635539813601460884415706493818542575507736139120046730811288318695346412461295380633602187450196921311080496306163093337180446168826040106754585543908710447778950591283942899695531104551131579169584805820445947806039997908051662355943877971799667927208568547242671788942476026330072395443001813676343826786801588009738461384004597334292341435241448913907184511657329981449962630158179738273205074933135506068215936899598445461565264072059960511047747615958625413269825492274624452012605583511847337357528827049055910783204609590130992413788143057983503512237502736191757027323301074709258233200838309916123217715076422498109095867335616337984691547733455321776786780652620216669786381675694358664008945547638084180483415479486974716300547241720248627001766102417451698085391420726883077845200396065429217401830151599356169038596400821175466575882436710640042931707394458716376139681630303446225150803109974997930675078982913651542723652346419278599868545105713110296421810323367054360010355239680653284735069858491501773109080522327526181968703744977503155534607099109240205405023250088615510858787398958263932300654084765381874517322931892492757374226293179643640263186573234751780754604086485933212680408793971966003700664202760392823455960708480336406250681565114357897914316113273642818482600061763315951603256274703622378126192205815354350757563729046992676510095447613242263307614731089129584427640351191529905995820160217453429838256247530600188014885213947073784348771396546089823781290235297605083313878630177830876701599071392556788238198702633408506929068776302659309671600525420376010325623718326506508675478918449877240031202261989693202111069982271399281875148563100131946399324485147458543503942363808516124415050413878464403634032741666401634862597651869276715207952045821445644180208577813046624122177879937465680386629141635518407913675363412916042926972788917706294833787328432196000797872571167819484463600749518119584432265258358099751508526492261970203599406566537090145109227187779481564406444519506825135767967904848250495479431309731829241225721088066860106085955700529195587989522190255700509101053477518915064014024606575055888924289165315550755147073674306462195176120625976516241131274361104763744081251514119756014319028572143698149628799861479100647555889424102787024217072475611433645652616806665287679386243194622507126437875851168686928270514346031551330317246445114601850635872106540455841314974566704219422527449048868386621722822666247019140072904383135226509481795650358148032473710570376968847045678193761074625561000321199751211854286776838725557294050052373277557887480265331895653968205453161497466456604593374705802840504939187628153981337731113252525777676529455069103936672221794037129895976268235883796512605920155733055336342826309077154824840919345033810235812443361896399167241451581601374018777950830368390027077383422961746832193365194731609162256322687831459653815185955394047518636194702470675142399611805251214932123298953150396623582490088055552944338171166818551568187274329868252155797226394183919224399744429658158377237127395978140765038589457413557015043473393506336891391725773127695521118260891635781878407218967204963283057685150059299434909336503199061677217851111642530590678640472893984595874332446006570655551701425001598856471881863675949721413052164432649214622848561725006344941230928532141738110885939066287895654051797254051085481958501034266503956578898126599217559505629890054717542303643103745826239252335525119667818889550133100280763777575003234729596239866800003969124948244201656079448275677373526002204862730751733539291923952604956810589873885064227972105584280771191726809992532788926348636047149336546219005005531216953847952651504806236097901453811995261248177477130444609993935817599018416178859684706623545983944286239229719429206816804969557621923078804835111134037026095151816166326648569104766119745710142045882472719866149656384140375251360665371713939540798253436484488441127859456389370431839876644969818268413826384650372672920406118186013428711790331480587566294947220398353392401416688720901141384809869385148505378717683779839857518063811016474393994922428386959960239717378973458839939744040605238327911789306608979919081874356446744561780120645739584254021821428642174521154709889999767947907868084596266761732525378966753422956115737291360667603297688759942725174185533581223004957116746661441560976962471044386046897936502784435318232846246581137966747037215102970387772462613678091063281048336809205321700667027264998713238339647242044223636609175575804217496029065666944313686640457126254582547449962333902879952642005067469808778658844275033162721514041575435695953416783062318049753429083468991072999128899025765130797026460149067837266371620143464224831259582479757250103374213477341440180917112008446639999852999846839853404217414605326681484286525690007901949555498323920347979661950050036916510070560968028556683624911885324362963495961111165349567579719878125373580716360502123089208602852032019200926152739335270762342594110567023719266183652294657841582398917038908486538313281196852990830782607615441661642076171638074364508412550818265237605493761588897244884117952823863291568791493756820265881606685016639585523188611360166903873402825978365195320427741730464209193488459216563084688672008106987224680940844280730079827080569550383517123241249313581642632856713187483876914082904892067093603953151514922293692531458768166444958559370376081643342187097392072830858423748569836807732996343375380068794452472961217262526752624849144640118540952684463998887677954735030252595589678100370205544210711109934213102822232088114045331054271629456051163090016898617222770604266667360059501911696433132753641525984070328225971458901465175655628880265174841425781780063411094952964279476583403246626463269739253523350375372394670239808443580065821526317065554322469489506113885693412034057046807032188410476625462797142191715217833815516231504123100788814072753757981854659714140011754011974517850711488607481428665289324337832388223854031363099246694771135991128487544125167646856139354606308539285496269433423511936081776768985651621457013457908759071340309500454915345397472914875298296797476640459554807726573062115063880794128329263609530461147221282138320932432195901833905299487117786249811551008621377741930128042242802200040899165575533568123165623036076672633401518122014337011706584800445382565372662393116811551919014055128327010520633053797315988016881200203779172302168548107490617514125424138792655736405662832325730633152259977069230912072648176433041459960057056011028369472890975115999336328726492500305187105249622435077678547458737133066989495813080164008315590027402453482008926990596258329262338490364109419849646621027099548994284083193419672574244114893595587242347480240832574276700962626005561355070825896372865012250469446348795913392232809385564545016490420537212337861382918347659144176253403472676844029569512979402142939042601442296875429574318611706809372832340537254166747145821888126192571376967623501065792906381876829351673280107022850359957117691549927531496285276814229904701572848330425752455912824459279529820694003840914023294824185261825197575200299396983232743881834342982497013964544088877410606838440888184476155183150148125715559059358413561871175207302669006078974889855458692747399000838404314414016052199726563983360977785388756767664796637289655087092408587629156122505588679720727448112422419951681722929221224098243433582578176579665046284452889394763766725556691113737606855011233528566167323757224491628603014352684971398071486354616890289054519450641739051131487514537026238229805369026887861595488705476274781291874498581248411611672334586663485153389915222532199158448600391747909612474562271439194099621496725449011251619588149754400555070566901395394053885103971987511167115064135674610871741453071132303748544222488788177236727925687157375067581236360064733495581907218491000109544670458879390908351840700917637985660961100622906368763621472044130995295841738694155928328694037793767375521595036895221999786184308246833329313915025842715632413152338944221674268589553308135410668075244657774162960059135962240356424893846856423046933999144938509498825717463852895958102031997381948140229809647984110999861649558532814168307572681872067346952692664063838151353233957686069566456887203201300048324547662936921262654101475373271036646977765006144113381382348354195330924961907854768018772677538009739370881264563638937007169830304278168261942269584035437498838413641006364283641067233836275343761271292694369535314471076225404877233955309227322806863369505257898844484838547463149881612552399900088875208874942308905728611586639176025827249867472289339109363195418258530864889509605392192119187284224230176684583910145630554724572750836696476067286024563806944110889015442767842825944482581517423307051557925864927576443877280416011757312760081658321503369918857825978227550653443691244192929457515237187222248694011637130537077910586852582134336734506197357799548737639985802774945807519310898638055433543712280166874947179749786903455979879543457047463000147988123785041809295160712926796176826251441658511289547949847180515583734164486508429948503678078067296799172533083153581490887377685458478051527012017346368520561289913027671762103402383044147652992800978880863817392560120245441518363796545096877488671023257431644098580628001833213392588238732715174124651738279510937892395277942953510360082193293061630049577566113829808860892807982831819240332608134062743121933273477266213361853738472077635398300301051459152360961403917305451289972178467353648188296635708539806599271198750194254430301227608445505894930999790753082422443470974160485542578133355711282317324528656397305891907210455092667479957291358771882644396179332767714513838598571487249269016568934364277978053185704079452495403945433978155221473782598909870624295208448502630669281358687196580963447895522815151198242276924100127019966446480725654698776439154570055937221733752581223392447258582726855604154167943661212276610539916446698380166951435358876275882282797073587529989888514565707729766530814412911239345903357446366214402693337825566452639690641750432384423260284636386171876747717366926302134282779172792717273081339241111428442208501342295035809601654891353758566464003920133342287328421871156828032807038254301448064610610992135099912677116395247726608728319417272992877650907347573562209422096525871888643047122495996550796948081960662536429488616567801072246610585994730749277549995714378462796769652678736818514455491233240375070843886856871449552455179787032175519420425680104402418998227754589601098891842041924501668072532196236711965332994722578596870276749566441336426812413401644251672779923230314177398872699723972298455959141005112641418812915289599988725096155249397514872672199605095791437174840369073345677959567657529283427169527345279029196396602900506735460070876947871978007527192720158093473309356515897188051153708248178507876104984265288310412276425353337235636473376134854216756031420446952266178843968507613156809486109233363037896384174997396486584155982234857017378241785882188820338679407444994478877857491786662443217827543661885649604022652488126315899771523769296238321815443965249829960006707125611061287336757202130442452475332831132330254535018077830787485575127165998239426648673160052522969111425060388543070246030157470451830799468359965897638889821094728741138146983693985265606564373442616300403056485312722322970581404193896306768457234328360093289673774649813748953297074242066323093685956352251991628010640452993247219477518151051287023140462098195929276992062300993289837877646777641964449914817633968376081722164955940108583848297955911993487295179956592672421538099909655924429073746403741660643971494358198356870302656952104505108339922066435910111257903351834697718742301405896145784687412582233502816191004165577902962298392099115064877922638340644196243745582026024904572463846931854839857566970537681245914204864457191658965173548582471183149330254612944460790715995502365561786646202402943987838469051026378304685023018992594862802920831767049763584387492735581890609333575987240380280938504984353938070801957707050051346920973199995609197476822077583575897710538295934124929303998074528135173811149480391907374312456761702743514548308960400961126233161208396673611407783314650230243684968291750382738004836045064203104812248949163955433648429346135009822168645863338755471000184566725364189897793080428590777410936620160490378776030499139291927115361827405945594854769026866225769268786176027622093968954774486385807646457097975654851692651921026129838769927967052520986276188651619491292010411316231077425249368321051460986372323237941696513240254619769771376251291207325082680030006801817137238192930571780615408852388087045151701756252064581353410597968168337884465712922229986680212796592495274501051455867294261207865182404567407436937962756161801455193522382240866862488937824984170909368530719008147043357583714391041554742087744933715082140897926345159134320050398357533215331313255231965304552137756243755681084069622231198366473165426706650762652284537760708484448813170446732372371032216921660331630637805405804357382014083429353732394611764340614061890248059283068994163693549093316260334066427581552387062913036719835420525958894574420877435565433180169188661974694810519766166271594286432226586927053479076127860641451141985671299328519275646064650718845029906130794516980249819767951218964827900974647487116947415869041630152386973613068698173633956442973001610447307007199457139694809575283868107559194493384981225640711893664002008719853247379574543606417928566857890805793767987324990454961269109457404027681562438870291119116832744431405224487357028440376346313388558963748047719868382450591061549433800398719968868295972964268935320419516833124942013129939019473181035358661660522386663357917186889402748979626370927887889690539497699357419722396100421915350732747720708235076955712911570068933295945260071976945131542825727616572174805118098300628861813470911952630816362453272983359732677461710713622965750680705699391896003308076869691237753971771428078707026850407378300157474309244580047934813283515916267856619300312581168019281299600315513620368451962415757363241728396829911410134598979596110155877876470785493677975606470384225989685598060719722122198309579484587719003764628567311312888938314797207523463817075590239522603045115724588805692479977901133544445686300972510827105510057095026289776538236297224859269563236929173077217890726475725276338044608466755737023619800791154813109208939993484733957273114063361610462106217180920546581937764418535893266104246911358980298593539597618708410369549678847504426072308419545587000603461604059421540711160570533602131248966727479205913813480351142302900139722838418310324523763470321101167859991750067884017498171867508517700571621765520636679584070752717152949506825506250397236723246368722818349056834005063040968996209799705045433597449786477503776063591310447728612405297148010504844807853852198917346534690842405920762076025039156880132932425397524586104795976834944601714452120270487412403536278197365622915456967819158782716415220182824370885988018430083946852978408164477874980463210479887563028300515220160690004186412484785496556690146805469988557541891228163918666112946231233438785571402278370200284739999321149272937148722854977979571803882313372982447567478782222331367158221877770004882290191066541374285223629747205263884267026088048794542862484530087512382853650307083660712098885236509831225571279003737011725829662839953788381605800726646976185191219375500022576258825194914553291082689745756624095468051953926365838206335474645609613387882358692340321974236399946124663601109581225254474629896122225900967057462151574866564355729904230375534334984682433020123632534294501230743655706632126920399658178908361624536030533153293751537418160088605133480557601001638556762322204121405234375795892855132225119064561209641817090305091604967849857610085861418505520273690892739006793577389485298893895013254616824467733315120565498413335618228952128725513871191323300058751293837226096970790885275580795014596093601820680602405079836545464867744931410683534695782561631919693744963147827877325872559048806714690134738141986262531053515135392183395877782145330300569027532392236028632337752055596692400228172495432110154966326842992322721238681177166609990694952278557023186808333126284980123987957653523840692493596314189021967874128959934176060338318031468167063803290808475399128840900113361925331587881048797811701628624798233222102133228672655950518366513856825344016193928658327573583354037949504036342185505606464661020094808586475764460853892737314596976071894518494560893966993608759212703596405961599481504082262880747253055728048042903644651649953921744157841966780516027313566448248762589252672373824501774805857305385156538221789174931737118951310555966539239679178463803768486963151939185035201094343373932914174765388902099332192344719266598039734309960892717772770324491336990111571473778872209498936854331408714467720244387344384605411432936259816084192279769508769842121549995476312211565221365484127487383155215896726106765079015298474865089081720857328008797706533877548989459261851391625061991708221000316320270674593485379002580290564725097566756792796466088556144917197431724678150596502255717206462283907537450174478897577010784411922771047175229701572910389199600372058915427773759279007334965002411841820539833496728675993926935401075091204641049278688272416071069727569731118808690198379739373464696869311789951003052004023760579025818450807016018063642611382103717134121791377632913419265349007733617246357516646516184739065923915343967271705231235346111041464228706336866753769403418283995412981269135068614043680996318325644994464260228350124317917311474408548454625735745386170339580899355677715512427334543882277272007449716757341251665354609620761800037790395212718579652911286740248117808647116291575680845348410750287534545726039999353892363998089447952665701561598323808550400284112563146674346559558181006697035126420696046431864962202419012196421450818892672391635442445029564442737237346670763782654985477025630136339731272137932447172253840797141227138479912041979790262807372123596387509635002887665429959078417391480998679414880061261237004797089078026882236330847326108941769709658351725495217408522856574557759608995375699972779513085755368546131041178515662809793039486100758117190691445266092690448809249660413633921755840549392326278802109532843903399428827843230339928261545681806140346541829817397282543926889209360354893273815427996802305217331523407435062386677694032962985451104762053545865940174565973912662962241660100083122404290665356073907998397203917925156316603553981410962335830527892417587812309212830700899964913241132248674464639441221088784831493676814170500077686029989096920994970461469572206519945900276942880895618724188546294412601675263478352868387246587982475341531043882554600409380050028917954965037274976464353867850790239332815233725737955513049767190985590205478245892933314470905655414619374231160598193593591657658386401712135233546712103461372961657957293949302858952649895237253190158664983100959524640380068711374612385940477725610473939277057615262298101397418005248890727506611420119405168781547909762425680287071197932867838538404214638017345427275310350711302158685204482319768471135985467599873208036432332746921003401555501272694273024047321209155642597044473061410904643178411999060147628706498276961969957504206247554438655422283473948712226793607654200145239627733035582086703813060435347680947023728975095654698211960455288228887966019597398404276518894334626849673933158753953042931687916154709827426343897071889919590628367422314990565228105303751743167318335314295543503199711821577727473502334215640988749290260159645775026699379571136527697208447059590369146622872403514169930142596279862675222607399435065754464164309779617391415827604535018419901293546036729667084004017840195868843622451902660368539659379362798888810327825924840647993391673313353628601108793759498223046428041650099294526882190841522912781338335631792675465908858401715418210109596759079630596541028005111495731058261838811981067396730385562410195864151952477268248134620096569214131613807766427423906183884515477415119788916476146331652119554592810393690668306331784213406057997858265711799629376985072969293859617965063925199212159865221927727031655395489523402322806136477842169836940098750718476003846702337469616324789923600746254374468878524470362657263708450870647217065404001495348297207551476619865338350195481449377162890845066466828210683517064257438691716270724476753941155686457825565126414137245674891514231808996447437164900934048655433945469539488889366900594639454167831967377415598258969098633730508403329993823339388883168271743079426684644667853438160800300462691902816434604505160110445838524183904393124287992498372670427968576401343648291795492499384924487239027974669793519792976368133981979000057603818061602858018659128905901268607550218420011239627032079786983274079829599945003204839322773465070705907127286115507311852891118770452952986038370514420428154116655833101320959461152331399251902386826031321727826408877397034816746607407944399592438093343427732428263810805379796796647595975749052329745845002142625853123922846246780849256511303708454356413670410060501058835934952398891141009079183904134230703176726160059062234558171063648570831598452750479154967663040107373611468764848050649275510733461296458137247438537464158108652108171067485318898393797376314739864713449987573220389172356581904692791084883902553687567443568154875054229613935079448362872000816450822930957356424623173184109653484464984826625846769016947381791705223026018494977333926199788675114296028929743081234190236956772464226602039352986720293504933724795314029397432408440052186010262897348637194446289698200798886013911212387900741042532881347096522193659263769292659993568238361982851099362396108321089901693698235833716171389515976237987647397099017899275628777152691016710681235613865833704050616287728255851521266659890391936969900005317022226441824598349343572094355796520174903055470619082754758211117657664193941836761638260900919244192487186067204975439771131391854685230146308147074782613564567718698081415453269253534154493875582199803713712545314275230485255512521800532699805196729364890465942300700395337083232224651789894685812536015532547910592424995625090598939879100939342056276757219557561588419641476639035788884395165061812796353141618873510758467277401063847814355378596214050566791694153623443341548358415393898188155999723177930680708458086578676445642739751199545089897050920511114722900023906169953012356450625117884031927044716013896473747647110776609376368836830613201507183527305099353739574250811449192392255140843128175593789221313343271631308367866595004722869660610114542495639289925905145702568106109872802569868942175656808240854029524822036790432503869003252056178794949783849197825517824729557929125020002304213475069786198547394511519185717266918844007363173594062369066360396323119991128291955949876564039598710035282042964867810748936176093631361676894483748147383646585364878044498153953167302787428434084688013449975368458133136062580591356581956563832622602157701635957568464096923770475743427024838689553573141715111367512143306141291054667233037314657621465685139499092196036221787419892403370071038103410580270507054502681874506983634726170906521793494900074414219162594518479172719866410307832732988185940967641571194860321671714607114751933593301822610834274344775351277924389780133426965044481199959066048398549515866034049288452623746241092647014791790310725870582527881576781003813988440335063405058093653345138844747175177870954277806625221392866119521042889978540244427895169922815499603339565810191567981884118972912018331336699588899916984785029586593441396578260786551092670092589913759664325026690756202222787563769358750562773029789893278822658978932687517467146937039457940096034193545770210368279185341745687350975396573480622442854006241083049083843718869389329767019653032926579746114527159188250838261770878905399238234416001632006442624770384068709390837301166225081219371956971003705652205549480718841696032975492809269100458741741438151479320125340156850383289629770299769747087436610394036910894088691159465037078422404793517309231933028108538574690073597143513794127739689561525165970375664972097780544010396078794415713091771338978653970100395566492440544211850675731098413981389833551947228732478890863083463198665645546892669351857926809262674903275752768425936973693661772979675223515912204970024060478937569202327064377953689867909614833736027729362098695678419414020201741767741759473693395379883395363006116849405959205982354588431494570268472093208225323558444536720279935040702274084592872669677449708430112102160097459596275902424870145961630769167162269452709989882127828573864302373808918989128645949407178916594394376645391300477999958434253110096083660334716207995269813627060786098618216353634213070060662445498670405857483704851873574195938688141831955842509753253696828748411357357187359656533188698844768503014314824831665545773939534237044592980273488586444661629275272480945408103131427277602064498654067274970006473031434925664307410342664820316122975087946961267483804878032160608130750219402185634353140633044752262433587470518107116105517146190013947551658403744733125120842293121276889926716129275692958952420118989578070395196079908640726059430513704435170384332952491753325402973220268394849721606323600055609124015128547932732814868654921385679385949434487845587181961195219996575375752918977213975302945116284230741942332115358022100942722983752606643563284935291468207754095405160889458758528927211536913599628249857602946537183923106749583852421104204624416814432471501053629958669026421208337837319807382432092360279293556703953877367984184684868878652571438933729468618802607675805019354408824300430261202614833043419497792351924716148755055616973487237434174057736027612745953300222031633591761502151760642289494800515093233468067669453873779138405948979262266993091202694844567260661453643596388738192470771059116301226923419734770312816369468240241213716574040339545865377457691708623301822120079550848074475194677495880106980632989732761678672267282592547939884668992830965590035061892622106103270279008752922876036343959001470883717486286256722356115690963408935228199916798461244491756908001486392136091403545631411496284125717445972600970464069649752350287931762986687118574154690039061458115379102695842585120227396104193508269516915170333326609874968223008093121699393283010321475206451845746900099615251929325666252359452697684619817674287186152004644065839098840211598158505442933869848955279655464575921966244626562691003923336274994937661693603493297836114365921605714713894052524169787297111719583465303172193190955031282777903840002326595979943118096046974923631919277071322312516627685969645769355059736357374023339492623606659006506150040759685792704461760786419060544767293233170932605728996747749152764664261681959112294655450274994258528785069791266464498738852374350425602969377773111205219162066920816429533942842345259341786872286663227323237399157131712246205568894737755166785844814647456180340861718498688303017567284676197588651584025123139169823644068062235996619906152111845857262906651114067854153102712532206196983235954886814017112198584224879501838086367847321702408888546024930872636876012401786139246817155292164601873311337670510595467329573092776399647193836599280085824155958783421798660194278589505213142986186902229486566963799156568915992262285936418884949126733334458525497861108793899231053415058978858567976409933717275302719834423552665686403616293452200777569767192297700808474910820189348268958530329363476973031922522385822577873348458628939153116026988683047168761273454800831523999174079884129081694950659917590689053410979542358618502114231862542086819541746052739218444694532334369284573839229148850261208865388794011749644888798785542577781073818554365671832748143578841521959865689150702950122858199907411799553398963088735241425240592484386064502008727688201726426226709303799222837196017517708979679951779741579762672025345947419105430288817615089252267272346521676715455277617456502076019749253143513894462885624057658686347435594684623389169292663949533090849980108284473730920270853095911116432304084239708172556000822996167688484947325697985101331144618817561702585692590807538883826797483936407657665350044449199424147418167402453588343848918237702857168475387206387669310660272544770985888583075034326118618759576366610081443586358199661549074365089250767421713377719689561169752379015979064970643891970808414904401245774558022808498490242857433838952979172705851875461628236865050561564826700114505210331662150100330244488292222706456689078549117303622542989195335961362405520404196341053313555846101310510237750423609317310384328791779808887291484964940406638245933392256565142970021824560804704058355655314467488925629750071186809916846993441804804019412099320617646516566978524032845268517355721009339582632566491060123024443435510697361990631881903141463148228485218957284984070597274016977448433120263918365599713218347608367759181564223585338779344425559464312233925139824259495415878162661740494842142543995971174087103265226457196183852352265787146156517936287572540958318109566680590889218827915204429152741051811027649675914081990957802054428679514891781942039445605582980379916255434149130725127977704371369413557547779768198583473633036957964196500908225692577786036766103049745747937359435726487971924470859811062860004363849942812679445276452612270139088279837736675988898611307522221526213973676952662117600794310835845887085635937941531713146224988314162029935587484095704395022151550449902975966233344362912479425158136116841633606034638164298654998194783074958372479312882955577757069757644604997410708997033279427740773289410618418112354861076391368811008484131287228838100509383192561049742605768056932036068333767760824019241976053130175071913834964223898407091256550527356471830240009717267131171527665313582884499163674039556944455864560596352762742679442159288192862974179603417264102930881143575888738337290607865342876117501378576930310780436044443563705836397136024074370000335480228503322705080086705596283730080688766736219465644236160369969494621610386691746067899247210589410366251113025238260836170257700406966109605319353531517080513711075661780770750538763571184311071962824648851454478327448158318192409276165069774319052894586615630178221891988829988225047065352044794903337206988561182948180919871005765264874989659058293774203985331409144699212062734589864897709727971535830970150760729160285239784415728033918341955124413298718451538797524112527038475803311496639060611285515008423773165997690256908051649160972325673309653674737715004117823080567492849049066757252774148932098331376725826554380491804006851910707536867572311207910294851345159803955231180575018004104318438792724602375242492682954601333118516756006742645122432275562999172081268743660415348639800987815241650075640443952858537839450385550003259981706299155815726049610224241055792822240571308839548398558243133448505862272628258766560349238985358737774570793617747747074029527732949642949897897367826202479912591223168300072190291764873139779845733987486652441017828483510659295070318949639355135479003557536037002020814888150705194006530067645774350678800218170582399965584681175023282393138353891073943762154469059519025658711965261102568101325716611463373200645144302416729588273833550178148928886827630257801265677005017636058900415923133591843371637981272728723478707245483354404377207680166276011976064736604925405950814075330765955226104154162593556281763160949805593325829143157553961597664074685242577109167738292842572806675146630791336760264477151948397059766821202898739225648031606922283268856317857032293855110114897268572587924705594437068281092338336096587311202434853804508022207397475883325128251255722694728233675617146241141174835888588323507950932677824809189399922016034912058982892195970599428568069223668071667446524288286606521430564394547262185379850516864910155052417635627757777628499044239297924402653413761247129027219289870488827071266626873373088667811989822966081294091640933423678442749160978169084652585050672860338950177633279099094748500163482361646540503957446909377701204872649827621597844467714461460983555174102173478909401768583836884691677785435162353372270130980732727690332373537851681658505150520765855618521413883422814851994391385656262952872611997580814466606273695838369121152359240299879194299886857350722320461972631739947758228802609221282883115036485888695273134440956477273142835831428114857697565914428988653164322723914404707627394280128106455681839861591406727647335391624042757671627418152518852982345933879664003124509018086738641017109213445976948902723672688662249996254749699228333873812132836199907575510854757602578368999827674408684140051327613011976315050153983441406364919005958469128840515631248077315000243961173882069945385764693879546831295999077727622026819234857063146169797871555065863001047572402624103330858754852708891626933029030690850330159663982138664378728058128895790763553305915631016988036434937892786000165202048360731529677832801772312439288290120383051877507193592082910123496486097334348479657404668937780448935217994488101520648969292540510992653860669552992716536392917496792595622894717503695419870933950023827082394767182818482281005083020408997918853797850415105338126044744184172302848315620632525153846278553477292682044354661711273246028475463954194567034839482030059574238688014911809812572449950358419311088055173836022013894380761486343118109061526567183674839655789103285281389048083731001908463836166333618876854625877540103770802639900954178613953832731134421817449796930960220597668730035192468978681465599821925541060389355289824949670141589325412031702742586696434045975933345448510483850120216393502944359229412845913270372670944737324889109172441525055201180739184505173116601949376586409766045363986127156621858494196698775298538051528415400398434294789256502089809045286851388863155143934873497110596460956222981565357145441298418250241967295371434571827688967238165414432148452583804011481820357668999113035777356296100532445309104242057421109721442205367100158827481167128024380571826854237243697089619129383059650362727407161468452587499154369862571198476924777412699623096027513189742445323541288999661052920809903535428702830625179395062868596677291673279261249592664534814215219440395706136270820871695077467157449107305748214884021311984003838501117054542384828183394218422122684964105357987480908972785586401106712405933112029842322464147910141239819349271588144756667521854087377164269761279739100496323073349070814703055335212879361781636564442926034306085739859715968319275274199455227703268601883031820971290110864147689692585489616621092266332844016374333146990564834808552385876431799163653629045405640921966928892232055621332778120078692009879756349228836514659656687355283577784345077320855457931084174501149326785628741797765163101046907830042891334732097158224914042677293531950645785818598634795596393856025227719960820475108074370933979188702858759809669866622541967448032883310652056829219487344785623953878950350494902733427441918824281942582278485119643774749573708830890421450461684277173721762181830900299175720154150587655245616668501924290937921695534038605754996400067725764011444265514314768876817679567124552723434735509949400704395393241293865035312002403385168115416448641138937045007345479347600274114175920503138446198462167198883689582442190379586733575197944214086821542598309578598450180674575409848339274758657410825799911798156788799088213925563215897072207623065016492048093222458173569509179624434233451971596917229234484093945775572975800114176463274495754648624185491952690005820741219882320292887621813236266874453883064247591640431984244739042660587202506764125259597673526302690641722548995668979577877186482009831241330149070206948006879448980167161254045625852474686517748272287268752104766012354080931800333249213094253552330838788766836620401681889754142302518562724644104486014628849879860492805083130274762223147879449907510805977326892127124029810898439139678474007235897674564679047469296764005956946398546619556040318489527874299964329382650253243691989141158250230379978991275383109897051472961623922823983476062303710141912598726899027991485414096216933133644877852524181682092274151200434495691403807930529036122041289001114670025371607013587123275265616271549490997735757501052547734589138236827385902245527448872986444401132892559347585201349276833438772392815007307882063574928752070524705920520502898723258031749810458523822403169331384174928519020103407686334372743916662491906288970473502314955956573876854860676518994309047216963738327775752437186716615624364063757176436901282650238285260465486108715385881392594240001154346049023024029369863090786596496003032850633404244947290423595323821844669348900680687795508484077079356072241475049974248403216120755279787886862243198631948512607130277322546853370538995280878550817315614720075743836212775568021737369989561840706463408044118610923988267003742562790352361605351389954153232808687656605121481961459910391364628227855157683573901557620284920360499580745565652700519953187332390353624750951687794178099900622595218417598540614834108579548891009603925342589263082551151841898511129868651951802758146538091006674548379051315833865330496289672788766320436402176021225560549974016479351817522457888663259537205060864418818060103634072251520251284597101632884874204146600314060333759047662995597725502971098514695456712094038034662849351590473799044041460482933643946705809997865440884851556225822238027788674718272205113861145895255986254654179868696543867065081271573125560011484021410478162698740869404825650953434479076366211314889520337384568143390930055562121137108735883595671462003964063951018755559000664244546122737274743681234136132228381259588511759193749061942161600226267811251633600264400662577481331995970537644269361836048926961163096963538917705533331918580022662393907364721867244694074315537119525302046101791092127978902122338756095488784323530376448082472163874017963744086504074032985516497954193059691885625062790387546244111284469037146611981627794315210260439261095773231186242085567133503652572046965877049440008812026419533980854663242256017072963010698187982108904625767433714705495443442142959207884082309697475950906793977303043501801841563757579819606320948569953360388834947314716806877246168401164580847059825590006524002099486187096975196973381241106157229733703371089433542394948286661977908569588375938433826061486621731603742684332963201577472756316586216153355328487378517194687897965856648230072981103047529536378609096371083639924831684333341117794533780676843463022314735565147991333101753106703623885984981657093811501894545193546988710339657070594359319604733174128748161824795186907403107458085486532817361023154317486334326520739497137349618307775495797653632093612891226466922034268587754016635408908947994593874873345191066533642112989252379681019932304897653058510815647811789418726207487001271708937558600507704052685147029467789628279101020085387857779141509755935848008915538701068976205458507508060463576017472268824179704045393947767603198697793360309941081169915631583648948949194053946554343989159258135464911114349996550622044922967019072996071376123458815979324399286169731930012054364274569773240041574259624107448391615773119920552258601093970124052772321944952565377299216143538270892784630356236705961153615881363017628001464411734099370976487196585350245147337862050080027291121811151045863587011312753892530749860840941580508610795109302786910492741823853967554572691548916159897188415305153361530843647719789788411419302913107260176131750960355629303530897444233047881325011352034470423097993939854587195491769828636091707640793804218071647127042482781203389264482420937703787751053773250702418369304409736573138858489044510529288609826176246963914750586508814753587618221519858576891189536149557387639858122936761577195387303972164096174285631162618776591797909977911910231561091157417172989749164323737570807325928755884152074697033531580126955001715961576229926724207756255617066063631672453496126661807213679595122037324027271264954135110887513939275898866257645849375962285958516795237795752032506437027985655682026927995403380736691913871956444148281850364823285801564269975352699183050484812176378291988823035220399354800843430377898051592342815421771802351561774579734626002235848252548711361965128992197470303083004024981708249708676828333744018139210791207765264946440250429873714066861925926019575908311444057779879524499501569834634560416826106701606924795628143398783780570967229793246631157318190715521892418300794070030558103506902418827570421297514951704307995903975428217542023984425323965579526371459643791912243314652937398020462616861410012058936247195560686781350307879891758878279063079884638052517674120223700949613301449463922213218569273590449815568646440862579600280874680611927232599440549065012043748236932337497842783109462088404069796621192476242464680132818581819639886918842350777029143384879354290789569793472548987597411746163457030451396847178253876105447961412161020529132129196158850535977852474373258564572612581115201450403338366035847092062883768991400743576102291859796306260627923389586810167685600656954784060086751164018649700184046224257531354434257612576522231003540323256776681755841525031171767274907019302266846208283897765400912685660370674267703554915522890961467655558746956029869627624847814396539814888972995128107239648151700286746403479151917547467323251534678225283978764481528196056864070201201435053578566097252221847263087123252048389673974475007227543927155477428803076823108166198659207447836103492662997924984826775706626879995631356355252730410650608685696575956222040834102713059971184666231628866305741463938003423002291317121550478242671220936125743456211878676409431924240768251756188506706895555784412408638856085807279247871611702913467036468908605312061503315730147496968637010473873293728296017970560298600156929128460542060597500405097707179519379531245457024126543065625836984320723062529947335826656695905819622787319495007331199968365738899534086235020497160015241324976027478104226548048049604357237859051426166941813761883900903228494876192984171210112661142437056819873657551389401829714992777149330824893966153268974187051400385559562244068353518528818584870191383426168581416865297167882142403293180906327711636580311370077118627700658992459517934035942749786833516364024638585895178354137687483788139583037738316154767908347544403358290169046916097781747480774970717152306788363102818774213460815472526247924862367569364131086327166466843788858458845585704597433260393201853380831540500764479901367696368011400436373945074887501842112934269332304886768389339153677335416043423552723912994946334493191048246221538404235921097567032689203143904627648159352477481498203535286896864113647794732716452849895598688145449069238656182526987887715582786155027425626148485327316351284495136035313884417088774744789833666851494538255238854808113653253400087374403879075543638064872866232748316940075303076225854121886421537710184957589053403105591800366263481126720213072910148527045476020787597300123789042783457271910269533526549609731515154880460864262668360335843463161990120895820477158425975344776895551340143234176386308423247264949025708613519574948853310745222119236771078095011936078277138802918255251932791109304861148809000987494653412384782755899846003715712209759794685928218123260721389798247189775739513340258179258368488903141606469335738893799301116070775196223736320726506450162259992676147310187488686878827686857275250788420659376771491986016347241469388000329276023981202926727340052708633044927521829916729312246970128451505116330059378546516992876074625384390609089039581978826086403366000269107875105933966783427727880135444874388152400084396904357921320194920060727123747313664471981147146079346364107973837518752148469016927020830474712816731272301164198531124132203680662627269422567785375299458804176134956045474316957735918924903743835990570276527463552444286760607284070825016423403748586402425322347494617729990833932596861221011716354936795366194597871706060086938261004208930992199078130623997314925804880211788461727460673921220849527970710309417221380881512017450418373479006313017129254790446751769357643202878285974696040790306083556182831540656915839260830470836309176482630858393797728305978983866605986937778588239027220554472747846336041678783944290753794538603386223232707560271640326176382516406537290827915443616673002159174512078850471578579147875809708130799328769311496658253938432678337901158026556413125795496199802394623802724475736494210127464736372275885319315520645083147854161231003765316700321626104853755470470429239002593742250348888733476031080501797918210904914009262088840215846099317918249945590852867864343711397765683380028857617145070141198619071763527684322391057749146888856963053237022855184287484307474430908699427487859114985646160102130435288057514934206644198905310181666723443092843265900372228364778288816253743202836405663505638530122046626355948587725555950445464589117570007513572507402633895342630802385705382715221626547329351333838019941316493575017355000326269047055653183159646144631322293414921937142984899985257200192523905875173885980994707272426146643710945300580101828977888730050286604414803300311710443140789165359559516492887926221151773108341507390586527438114326588035477516277032345053067446007361376945434587960763722623907246355940720491703854744843816452821071539416379351033781845084006239007327163854035221470821507705344010605898704298227453841879650583552129883260576795788723733167391524278714682382159896808523739514478540530118782995556750611989930240399650966876254598357635826093001639018298010270553386663309090964720853258558853734959996723805512976301691179969518185085822732724809952582451109737587096643585365363172362679755501649380648778397512133245381759877873697993538024170347382946888478040169389073372556019399986000607277787436995761363070081206468516187865001403846305809644592198980124672370059663144275185341559197957820946995059969122020574214828157600814641541982520282049239255045654933059066295973401417990487923340130922277309734064606944271589525924397952783597302566555218282603385492674737577811240213104775419842408255127664276695938781123082363660369486065833496753276995331034356334332527821767738789027292234147436883667122788700767901269036354814605772379574253456097301592900054873604067228548944221810596128842290195280720595197096942605740563286959391178233945912831932738296749812704234825405112682538310400984851264766784552955288030093806182980906002283743127583816748103512215318305533629085154421727913611818516439882101470384716816580305416426064055028934193239915742420539708885187875471862606640452269006584606581898874125519131063875489751426873765558291667276117853661518010309418585113253181926745854833073444585864085905854956657431559437634296353203374275678885698854020304177358097542545291395018479869736840116494847380262672595297727863619918854758607261988404032882029951829144989786431941276431078486789637979786541619915424533324705914447881167759051486785657552812427826232254315117485210999332429819901789545088310051306061514227261505875917927208370404424375387737134123388459470687815129468600385806037751072344360265294549247440670400294223866192049997018272518422444859365342922815451838285049038315861883439263766813838659311337709327017454139389494660279280924364802633754723731939469795572571098623238563514576583417292121303082153037292425565169198507324410522579144904000273297706685398655749924941922672510836253644407435191338913170326137701811963591796770451568334073824765050072553870760095516099556656694633999063273065467980956511355974758773166434040123942303209840681828031872476119807655079775416048897661217130781461141077200817633818615899943898481182424973500337962689202805669669269060718940417092076728209722058631430265143125568630571440859745280515634111704873029013070840400211094229608692089246017444090149902884630127475158845285167182999119941274837366716004436632449647148181229945095667160298930857008907070050210059675920516317537009770140003492727175385322776452632647086768966469592911406036687116573200092067293413974793199998848806612677071055485277860754737244733860721583172628104835831347427347156993593141504531744609869929853711724329024882907273389168494489983460969843084101702120091510263171772153652576873919119139678090664426901815207318317906140549576605385258839356422216141147295517053059938897787797589219804642615218797601140593232334771569892062577067677082205869697147746618540579304403709265048105116077467138346082092196782681206676857763245864834648506783848414361034145863236196409103562360156308397420206685784953491109244002270594422602731937165683169556530638458623115298137976657570850719857994928055951022777055343635346394023913978252024595165313485620048544933164150132238997145365445196354028880318132856152833140132015697918195447032446556688663611101805020545836699541053235191681842603025622327409321532793037387457731074734194240631076535772556490768498211031539452418325511697580799046382311990585642467113338047205573630031443160672641083416361560041972878254401038828216992629609429040692675094441979192466939959245294561661639963468498755205923907910288092157615142619132979359804356827454856805462676475245093060425985294247465988064425260099864075790583798877452564090918498637798102174822376903871168659524106940589833647173770795659354643298488161427267160381905109206977960620234102760086050935503246321998413383855559750021733531036346333048559128659001903438121619653051733914075161776942442120084813708156319901947552975055939166240088751160218507998070636054353229660843740881546215582834351009007976406965704280613766574266576022584340469087137295930519429952868857698619678237381509336779379075807293515025962393331951464583269888214573311221133914583603207049565814969478380061014704655947839708032178290976402355552695258353630558019772815748024495417095354270717673431311471337809423211475940854030127794812363519202938060891753383753148428236018102389970668881743383838529921089304975166169797392709913238772000462846495856042913552870437752364222573616900776110438952121168409596201837932138236259042262223364908077011993869474034331424198313032981738523404588265300029106685719095531050341011700621238502308335322420800349002998283261121135767007343393049769740309739861424322816619991664527822851959029253851425731302596983439341867810106537229189632139879765749386962079643150655317135848590774767294482399092972695865945282386077784679428781693783848217509090725779489387271787798448566224341711414193840950776022183812621392164777442843804669427624250936976753623007457783669052897341912471124369485324720974219960348368490186845105987231598170573582261483146173337790861895123317960629176335794100510247779705270061969853098613835078329989210976840924516535717858444103261454461700666863879478079431136728324362706130020655216482918199858139445954602689036251075518218672301940095648798252191690310120863723991808028141205467304401840259561995266495772177164907132403039599963103979945612436224044247584635658831025455755612190909689768432219339731238686481866067593426579713276381979564902894680447927706618533773740702896357847127581333417052365697759374727646516423027598662480203739447836277389363024239122929508463537330935342422426569728090743347872841501752468834069709044432666698016241629173105387775344480892051541603172617242423396261144367696016304133487224065609810453334521997788089813542695229277573421472568697536403075799975684373503580471856103099150444077688904824527999537178727023139487135404321054970419664764188419143828550275426907714373212751823687782134653267733118965462072488702321587030069912593624808925529057038937349276480949237325098707699082866025993951412633609112902378339185890622154010083197971349675072337402713143973684654772278192601924885622545902116064240104445339514183217443018213028549622671148495751417345720129063614330629887417589906460369215049574522864923768068684193704070179376481223165145344254463499108335396578959284123389439007059415503356210167979236754416816308297320564994863293634655706613478576594901791855448460856452685012903859441984919636278786657761892580463543081950585226727491418610691734544868272155980287145778994302278219282550909993310749912085955628962609196691497640581315951124008281733257921887892454911120130373164302582162615854131945785972766545155911148529819636208777110732917129992315964731860280291773974802420403275373935785451618260425831697961356229329266185267417978654069425874365729129571429148908712908897744034587040412312650426939912008406067041459150918272954004852223213329348214553021623709589450015702260471533079211499267030224795780376764608277129386709008851721153642923683210538145157644277714227186841476636036315120197512072083442181304922755434356733821610781159829241529364780352980565033989373714353818030380567369686850201585809571506907790779657964386278804397850965562033331927917412020644593438053479861578969900935602331810667356344235725146599880957080305144532486392832201836076215344737024255803957702056385701756304307304155212642925017978440551065883656932728010187415299374403494792045816333429275805334776133328318595230734334205615392908278039351754358613349804894510701543318192619284394718238115537793676628109941930809599569197925755984249446347158383137658654150571589253991332042197317182587980760589090853432244678367449805502779017120366183141960810075494260082459405561656243692903993222889400171245351753487381016918549219681936955193636115779532319598517554361827203045210151254698420805366018778596128709004358685033189166703487695224155751374025436306068768212636409959947583408212906631657629612874058327346900068647860190423075300000631754273335812022444261652259225267498849113036085403328874806738142942615302139217672006627779870954204545639545753917463575716042476267546408128693917161434766387977590923078670535718093877141057138682095860882332303031819934843372815612035737718102677220403155147452631339874916762205632648535607871431608883298264122034601116279448102256411730110381294788292309355173354088294879600912260133519718216308638479545496598147977343492987161082560189269546273524559699470956015103278549240540891164246457544510723591422193010925495136316058287454172859257146793389382893077820271155305561928188512976966184510901030868110207724213584132526267624101482420831333679177596718315501109908218396929106632050252278304496711657853502052659162765460817688234132529319347415431074842314755139056315013529745550637765729749623921546723061420183699467996089333787361771636567258512512353956699274359561149385197872828534700190481425773173649043954952807677553268871691681176535198355557593897825745806090006398746520034725147271278323006886290808052218940977024202580270727055195800230456127663845582447377973095368677816032189677872291060414926163646290997076188991052927307908438649468820062438923770843461999354173711590744183467213233411235926331199800681332636707330136776042770499272006855655673147814934722270608889946091195756338739382911341922548965400553794243759119513114332542645216944089023637115479054942218099614559997234551034631041238904071297740960131690123797148919144708396059795011969494869392172211584261809770912876122758039045441501729183630145470723389139880265930423213424404139930941439367752591493653808566461763018549760141793454324475904649381410007952373132434957104530670218801380300638370017223429986323406633327179671226479902257132953044159265240810252945625648878183677630450228038805947281674054653495889880348296487264790511715547142274106901889335795081546004694990400057022224094743511649899959424292072749488321759356935596858312891208954686188437755700157407246854093152779810229393684936309214194396840537712177641145555626320044888769495407608701074159877924742619933490692602611892701463569971394622914941560011258631531927475352514597037919304960344503956706982087792795631521765531736523278065436269735086294484846950797434848055893905149102388534379922591896965285138353232686901268227846484093625114317211160358921887288633919335574192005131407567010853196093255779743837460648326032726243345723192292684896912416512445563004611084399957990411651468475735583401795145597658168909802629046748491010850124120705407600359154399691419118714336316860463783656585614733966352417272903357326302035548132928309499479509895573534290800425541699264141832353308961944493678151954545291799100030447077350685239020693082439636275403013049430073275824141944259211643702047916902899560400208354017093578075618978471119849520201104717168336257959250764264104566332409708671507255746349508597523773895294469343782011508639676209814883864610950453420586006134554772286915099993028555108303069834834178774334504816911068441721223228710461587730207700274751433338605101314812085972532310629986555041022681240101680466042782695229948085265169539254323392244689856918205856566011824174320388631496518008528669589564814631203671472195124462265119601075787684959605132262300963656267139939676609041745537863869768050144020462160800080354944598269437348581608168530986208491591794876392996338624895212211643340117539225439310036941022370327193405080071577968528345027677975207356167795890805551530583727505036710606037966273770153289843964551747280789185529732693744146516957995019607499124511294658745459191435225317479047360041625341237255052564790527869127706552124155491391127391078791139810996033100010055079385648030622510031335653036158660258241098719531552780434691360847929509620268852531552664573046702205780330727090342825264869156504316899762719819869765916027059609413122062619016085313775642371608863617645715899504813786512356258757199803523678590548176715653815532814229746571023179078931042173643862197071556104854948281959529487155349093260916140896520023289178771181205903448505002841896824490070568555969964474255885938040016020070564834557749217912222814178178898699490801900986507830627286063835246541684414146724527752443496995310452375444408942075625146690001474676931301232703184528163850500655150330829684862013461186092669574255371631542550259089209972438532219068871561092838009370546244439135642982350054126539264553464245381927856509952447438240171056794656912848498862268251473003206991393251248593161546917558570432508497612035709496582288551724670852225029919518141782268980868028109821525657576259658404703192487056193372987102226540627763575751295689829123826627873786038391586446702066895366935369102323141879669642024574559461091750609044858541690553268672477599106412310896059500610878811203436124681927414931084462923334349569373298326200401192493860234736211543854865801269237885272448302049434805047964332498865544448792948824537729983311971488543078633892701494361358181222810785137217659658920416646132614730004306671931611811103096465089718989393511992768647176293625401905628492840916661940481217276106430469559337608365421916444538516595459178676266417216914494717347849667125281626696400173727322140100784534031072810918400356585749007362945804868104754364700896980917606967035858978296955230849481720663675994995984086558874102949659181980327399125339909100730604148396069369682876772416762363918856002092392346056282220626312109131087300174040424216220493859513780205061327570941210641571758813176616104127348422089262933469100129580745067118355116125132106227499173574283620163717698887885405061378048667181356888700692475375868489701143904321483530229717889759570616785404844382212709835969063290344788494418058000104825656358477223349519421200819576632764553951207645257739737779583936658248145957779726491404805921350427214587677596673993024888750435364663893728165288209917814009420771929906868359429433200052667423347186312230486775531428262342266458761418188736229872876512407964360033391616369817330255997889141777194844737227007694869326809423392564145212722285247340316244777079542095787194837425435893027054249172537641951580340173727702252788118723049580010713052730210991845464577008413024797812215138965449278957690823552548161995540118235223402632331269025026703524254038588791146099689622399391641744909843178466240609721434476711584082429945463133757411739121143143429489655729742371244245715566453544807581013118635021845995649996471997973736617214292914550964504961013528387834059098654312139318507176118838173845741133858485466490980061802042414768373478835552320283737406011675067170648739571621392571287971538000232926338437492197481386577451926310901825822258009597381314583476284543507252794435582878584191056928435658056499367074132015638945605430906345059885669959805646165193682034960886891923509336366192209821278937506260384221040950438232270860414310622425348513567022601907500852477020477303262882467799733249031499859726676868703717217147178453924768783806961160136677956426536715875941081164330602252138378153710779072276344438283650020463782368032164046275670392004833424758435466800070509479703370559707180477325509587734453447655605114727434888304885487136663284371041147929645481053060782814177403517180630527075996210732214503021119368690236380863975906062703835197960838947626412317873585650864947248941692139157340348472196480209774698412327646271102995732121198588331806591147909658215063899674595954501465926794827538610750278094050113912774273502856908630748424518901768184424118698709399674633508849650766830794473002567219038237003641628594867950627083005003224321647375430950337294981023942282587878003042992793520689558566408225330170893900758886207413160334286802436098390781324838268090931816279580185068199388391822290477702964918390727324512812600832265490889142277122366231562998702327455162574740806982758028858840211804627746077154360809104190483025236566300858756367404933732621374061369164060886190372339526205709793874344563232915521706776744209770940724943162235370126456621563625802670066064189486317284592267521833160858239816396103440716297912832417628154614613724816961112438125851089047606708716476956808778588381447449687105331410317945249937719215632231581283672077475770924998407730144966262889148704646465093502934174829072648420903986781939300419065597224057424008822358034510617513145459074292422940708293903750678926767188154224411443809833009271307373555154044921666279494815259625159443740379637011538147690521290497374481386957077008467646479179562186215559501163536017075992602264118629797596693889268826777317544826173924807706196175649442784803047874201291527874698145834142645155772953823203101382364318329545169087518871045247952372102051167460779395679195698890564208943488053793158620027918636366914205626889059710346224620018689233946996756886705219237313668137221829106538673900016783020597627550510309416770303866076196652306899554266576600716254742851744366898756897424154901404406043402902441751324374528276461927845599388023799620704319125027586717321048145625205567804266877784679546240658170280562739651487370177840548631405858922471601622675529400330011146295570556100225732468326411979720467069279545625193271708546006802516334101769831811322314728904113660980224482428031544039162453141389046413454094631498880745104474834424370966337656882697330208421294666422299879402769262714871001327446427322849922113440300719005490421707337075562597146330778709512509421184120793326302372743464023455491146573005362468825990760684772348281216776101761607247468077803670235911693218367558694392315659306925118433469789694665151178562949948485513762908554598743564754837404732204436682710554379387125855427438155201969420153348498679082463331144774778974617791181019144116938011464329345552965651175181168144468449903628444579070796451728278869293704462875808378475161534017060371433051364651100354586880891361015360935953312703179505315706492640370714035140867583772698821901925944448318694367677687254152979985198346268037848027265290145469823726622045801470540282354423027513400653450148327985407649973850830648685115086184992087893327829489191314124645043081371709059251682084647451389862360449350649695768076875186777200813257396560246671438548641457267839340117412115971324061839205397746986898791405404025529633652285138987197922281212502397854208926910202295388553946174613740324083143134194757307148128272351706419391322839206074731210152330163397372778419717920327074275644167485267614776721793207302036470431609944372394822196101457142381857823349208646529517596484350152030045372720627339776220103671258195616062418646270361314341902182328179996743984286247812752029461290295575136535528749868979826727518079007810273177270225913997774786961663673276822171113176328622145820545967730155142718797100704399637591290521611853355238032746115771092708001588740272439359830580072176916305531164375318232533147756737879787380654062142456257629415750310479888873168491224446796733877222229943647649796537891739380007705915965109763906260866512453159143217319005071273881085089517800091419066508541060374659924509633658000020477546605175571578253959017808210803216665867849360650351236731129255603295808749614072407434816052388270865784157867264204489957712989980755006528142741075557182936478771246108671106176993869982332518089613418438202721836901655618599582459217240544581543116294969858526577839882919865498674344060042476944498321506566547987220279464890800497231736198725625327162348551315931186640655133079154871671563876970050032397994759895933613694984075660451536589266245798866252606285047462086190263545091960298820143651370239292000519862835324394988926486678437347260909798259191572140019459281073109736643569460123830755622074279144585586124167220127521908994395092780476286778472924216939204892956477299012795538756446809810761311613944924789181138060310413116076312665988232201641708267815512354991424558727445849677719441725561717384395524215982184851093380422043005075250932149767905343674197376982421361212270194791269165523160235975611073435189829290673243443690635325673200211249551701112196694864732949336402094705241766193818013895439375714002029027654606444659203945624643389100677054638316390551519319773400990891526575960661307325843334113123933532139401158383022376458505840984111178618550845143817581483831700244804249323952111507762700776112257988721966294675367200662473387057361863624102005626522710500834732299053258540440554497836920624957525397793391406097128353397002351341950332117365397124899018664483386874741358012759538688948204659880045722154807966571333942411496575991525642612533224538956870655664363427060998567490402465253178315509226275181884527162148801626854036118976728336406560702841900394703984291165941380993176261451365770580972240905352074137297367056421931687637338638490942749398771685155798089239124278846590602796193557869211568576647727455823232149865617353374329855850577073420796648024176338733855452302443104763880880177711329994346333983951596669895121731971942673024988527413129446759268195849859860671129547154796620808795439178240262849941055686980976493398247856076558668822091082650431962531090696535470158294780331790703429741407642509029520112550871613260882244141310365205746778935947921858982586329606430329339432369924482465682282167412147983708144182030242354522022420069625914913180556367282605933454346308185143464836336022062658325895329518731812671159981190546159211815473544116023656309664821628665658981444400568368970106581682094832886112417144050375859674890306801934836337205910780873965453842173127353994832501249851169705570665347523907415537216210500071576193580711329359224625769480072785253581457155601677829574737893563534270108505726415319483067316802669162450643246915465273383129858534130156268525671613724198810269064349246887690381707982048471249232425302630858436381209278010438449880679421372984012404894695015192341800475245978425604284389015300556440234199678880135380715501834845194366697137599641497788222806798475370974406022003226370564861091780794243802505327662342939382514902298488569604923063265339473259261466647449929157236563286742434113296104089151347967345919781243685322839066534868517672449131770413923935611022681170924560215539155397267689685022444208313252878593887063020784462043377684677073336917736389397489005176972908642102893838614740346484564325634361586902855346044963189252990722009322060903299937099904951525262723868223922216851554818716678903670709848446069635524902469143253898654028738026610949352387831215736352203321623718165765267270644261470027830691248283210971026790534539914712511235536245834041717733081491450862461341038982423417271552126553190718184327715569031779250597579648726524738596475867943864244682501517833326786315068491016720512872035849517097947603080926714719752500874788892302273849137251402238924496195732778638904473475997174576276078835899144218820055997617037756099738769634208249865723279199744576658717553589322166365185001988096094702333000782900031398635956094570038696355321934682700735286590189492375815495998668014916194594825821577223413135670090151556009271448166875272054598641941782745429005274373913533308059265980341547281061104294930499753602236234794875099590485783328917572315479597487533002571921453461815029856214359402469431133018786076055306821999730344653084241415376064547355814722296917551275876826777372957785545320083055222593724639125877271038245862123183617279820996017040228109372670361829229572245066270798790611146894877365511144683141521541303285501562943508977551281298244701507295103580715952614699526315166896559500971873569008327707452845766019547276548480746365732950827894263440795763472996902279613371761208327506335407483773686690137051826761678454036720830571362236085750747633890619676095069182779906326225094874981493565876139747795836189816300995743409171668314485019307534598659382222694650817538434557249770239060471246299870358979963450507692283501629222001771254606058248013362567737699950479271108537176488052253934310208210607331981347715092587187767165071981840036332556249015402766026273861635079198423779857541977325075049194056640543875166182818878388057089675898192807612977476453409517495732107351406196646075803082998650420032556339740802775109783412735200700783874639073577679566600399357365835154452611957016440287263627700265019777503153385437758049884415322487686756614949111458972531469805429165616007106476309665004592060909662728275105967824606467707748036508169007807728235373008320330223603281701950629001758806144349486064754854655371065226322173029181451340995033840979764678678554257848448514957743543331243508862912380447653258309379191143423661120490159428706508135279049537007795945907254950485071051838856108206195452242590746519875148072566219007006110045703066566352158031533159262975058142920343468192356586775150597985851994619451534096573973007031205809527148665497233450856348131585179784157077201773764997397296778112963422054355731021723120139931936506936419518826023272529461731964515308644051648408716922636030178076068842835015862486901138198360844280955371814491292990251755302341165467013651367383797596942533655247574670606628559342450332502669278110170265504285545859971278238988083504546417383914768197712865542428733717874453902931644003783652957171119168447684151956055878469506353802836439632099193243805531542084802080151834891710112345588408529674628930921048419120053284027199319984727472180183196229870915575093686100769245614686391306969475263463710285178348559747332478791011539495490408870499044028720263609979585687031144046879368926793882570330369367155015861810344443819469815676250360864562496860966554684656112126302600218262597460564936766656784522234220296365664851221783294044102646945045171719383052833860871844752091165260835711320289136931354236217017684215784273487761571987872319077469013926144740706699027768972309037766120504326143394543846957512568239306876908285743002533535811287361885196123970804653075893544256563883036481525791158417740360601995290394096776974481182211020913519273754206517539077075824265389133507845009284076687981470959107253592150855493762208963972974366934748424913286078533006273865622147680638446657714086271492375631539120995595872068440348372706630181389268407505931443901269639138254102683167381340277397770139806292269353166278221983653214857631817175690458167135060877497456109169477495842072449537394983548462765456785139776487130544647879286346293358533245653297605060677011444930493755115695410431864620641310609719260578191462846389222384957163846985583462685969824735221256615810879157719800126005829937370439454030290217882161449329356611535529684512106865678894081808686132028680456179730486786469313583273999234076376057517511744388472947729836777285755648895823400618907643184562432089125885012558719312071187666394511816727833512246934691562999149805826999631448515629269190357383854994734285496645340490120962758241526389480389476086733326028718652210522557212737771817184424406837441916928063020311738499777640095596036571828147307310084977782836546889604229444219599567681011766377072377146719349165389502723849809258693586044284563950197263464652783950040013667498397261145739374081871459264304844995283834911811195920469322041239574464777918156514379740862301264150970878375070165929606832898310465669718717312442505215983035512082814879001323017722995000463783662875363874259891687264380843079609842800073117216858933009107149577640623871330661233927455373988592014852768655029009637095345729107190451438929443512147335889051970717712014341645803757457428026386201998337565026557849119020250640039817957235644743627274298996240401038926087287479528472134870113806181700182770954808423379949581710754314521508386350712110049354918640338336802184956623603694179914155181212991174878614201072622435876204456955206510433579293873736541910676475278993999052226183907421119751776180185590490372562257327141535280981393008115619727843568528470775614010696338153503403095965291365261648995110884684108426290530703779823751646002912505737452971090874583479927107598819652882065107506894560903521942936274894174532066558829199735258333703881204139748131691065727136439327892794394712217445909704844131424993667398906170071648787207786227143512278702203882430410660285596806853440403964490616976768067439520621116706697693659801913962740957351575603159093201796821285137919620578247196800087788130689816190618573314359045303628599202136969703725760139731860544693012182196026071114472585996700126484417172151962669803309296230867511102443041133122241502140433394468815470036647775820628208272818622820205331079814433191534235969532727035993631390142869685719215169928300639937771047012154732186122590858105086832636231278633126007320084890349139818995340983760949083484719292749014501575524920767576954058275848477785949696191253187508106853641931786422373395255412324847344374074252668656365504403137507982846885661580951146609627231915865172536519835358114123832730511908878168445753434121055346702614217904801933374203630739481485404812212665839592920363941645408473453699378496238902812269789546474353269427267744155315449216304899214395024341158555219246968093623380186532172359492615590149021284683102021919937911411272605715838047341878741426768700363484654917297025142263909430801777057091329059118327971629994242245860499101204274468034650206801713605705400548534352980890626233646640557072583116666848092960321913234744249335834311872574645305435388342728881763036480051786787288899217289172017747569856826672715757455420183431616485667424903496159324196445310573382518188897391509784289884369515380942504329432504786640930798842136651226564354894051918777094047817665338080480461064524663312930370013339620039867000465610977882063857152336547587280620887514927839582747780369436050567337713466191912428307831810204671988142384380973000087684734131199923788728246042287548628424763150216809200149115190853689329959788894382772469722975602203736142128643845878310968752599308142526247446255285158303909076632087861529840738649646178529899655819741152870074046068424804609379057879159031224490590095186811078648803559980195675440362906609590516908654963739410386209364688024284641881980039943477014100266673150463927267620887933128239657707733228530898892334671143418171349505697556165245055554619830475373033409292490608087652427562980917670490559307275786558042266258166293873434562109548047297014362391282712866519959391304525164475506127620195292655034548713714225245220603449721138333760879935279539469888744662313767746126394902909966441162339114052166806374377514240651420076828184794559220622393589089958373229885507350813231378536943695537678922049285494264377615663703979487823093937609976399785719254670175344977245666141944301304598624285691788900080201789736089335448054108510232627427124714508969493851203483929425899990320939104730761344809508207901050636786766748976446426791969337757299043366100708224117550172558053160266609658201838471588942910175454252386122753905456727069698278011815699935700496954593874029837226637523781587206410197025837571545500937257688685678398245823491293671401986904989647601490968412861105978806357761937598805828854526344155017278715986847721443018550401511146455164531880791336286057371547666459605778006276012393424762838910667163696346204718971915496380512135455238025302885549114817841081349864992534191929627964548467605338362343756764013694117596659069078176285886522055023016630937412548241462953323558927567860849306707369038497653991358839422499074300526386770167867431161682662925787985826439585499294434177651131103468626073829995972984824344788223160658452564832658895113628532051392114676406860327847998671857982317092520150667400548041912699903346391840518058891452173447288887408690807502743335766201492838111991172368447897867539239351090909969923840634125909381254798158853485744343841322453758446158353612407450367505221506625407811754633224882983259619795068792153839574539841861186246458903232286746125847617774609836113603443754542402106364735852191602451894211285671532006307683508914879749359618465108327622176746035486021016384816418862940307221782199562053095466278171562755978827472877871390137570646937792583216711174675916789140621192885687341954758086978618878768452916389519061655735920983012698113869416606775315369201185140502924757112971793468421455525691667581553724205905719484237784138771765229433247791470553708476458382630944749425121974210350359401368886136905143138631201534239890606558532486271200694359355528490547328887526324291177835465389750137297758551106537970882124657627358680312970127985325212784607655011353685114157107407619282111103716471744913913146156417726942851630660892380743960644275761245806899342403849613458894994796887000613081242352710419542523227289954744515426420496342619388870484074991455048681618514001231012130199074094562498994828355323609282824479845674009342968853787213022273051153725870056311594900893495884252589432710629416571939483705782612261147325604566824726113035714581365597194249078341439179937615849585036268354721838269913042896196419810481812888277135335114811996700200094060724097072000964187808543278537991867778814190057609009760485225734090320534816487308536237442320826556200725983384681758862073876771960398628696303468417120846021489395494218280695897243240887017839511651130863226249211546044111911381932589678353062755862522783691507109470813828835417296516322455754562137720171794093200281336128968829095559269868202443589215647797577720335006601691609996227746006017439621502940474164183406984472576461439930670702749859780568351641536724475388748359092428070301607132948684243479500598427690727216157640780148364228446319522350064083080370864808954694939267087429183885304879767635328046065748912874057066204493527878170782269101318608377252293796463884893352896999900398027586295159197766049923541908971838448161944086782820785470042940016604388563946593318404757508349629702561642708327064676587732760790632780573640763973564447502094015730489457033767049069212699217764986635014552813151072216085154386827391887108593993893751237034783401118366971779681025319214562363075168323932200859622226115154523294074933218398226807086362554283486573978265557018549920788006523378887585625181428196229736050798219608708321442943481564940344894142096069407324365428681447983028993965553146688379893920275252580531709692083723455773937735128506409836906774843010649300419685269364391708074496871299067241673440244533118913504436026583081843935025193372874618983665694433595721285049582495170585603202328690161488537458180085704831058161214278464661910839506480529094829999362513196471234372304824974603668968703842072996934990164111415970575496745658629482957457778791945607739725727829575415338358174016946218133617599866074395900144168184258289470099321950467050905650498346283032116307586822682298305675542949637328755524430508909314977170904550155615385558033183537562489427110693023499344512217949651226869834313467659246060323317863509004233980193137075758379537459977549651930644042376766267340206141265158578777927138614703257760355376725660380953763834148726415093900330356192805792955778007845085739034216450603386949110155494817334912666085405232736160455040948498512959776382783823330620968254832519411808701817735721278357081422872281344355775943999748647660743386718308220261971536858439067344991085658546977774201726995457385210504435235520602965646100445998627703136772406438480414783704397886615948889039641282179688525588025012209117766616852964491865488738891840680262733859570809333903792338750997029744509322217728263231659881372088376069944779942831093731836737888773970925015468809688128979326545634665809846595009332599413924817721804687421344066057254497693796194037314371479315604823880231902553005086790907909336749887714616270404066820168312599167552060049413807283495046902956767205454630010579934080053032760910591747190945794468633838391813441257965918669936050739634706747174207215785383233862324336288233013389168373011539198972495898965200842131277641390964958420989337036633437409530268258071249952678504711650029882521113219877564444129928612957190242565031823288620216376881749244855872746176211180278931988820558118081175181828124501012390354388636300622606573281248898967275552443549297408182709811074936741169426469086769662637718498269730974704805145606593844090673737663833220643122106573367906461344301718993224817839991714768367224100950020715839549775077822516528949888179653430135435210808636839180671432798008354940407736469701866654226388544862810701022344515959073898807113963027829457314732775007014386668143562282853231182610154119571848206108362521713700791811364728081867638649346299091831114235708649496028540285913798704548144334653814258202861356787089170129888621835026497249589828888742971062093915137114187744718026324982771062835349985960846218568854781781219858685887413757093754287172195421500167489110129776604282737068840616827207630177555467237695675057359541414623364839471537814153011243057290380270007481391775634776451566291914499669507093417012014603636443364595665577168127495409046434876167003318355902722086941845404505736005720493509121229959161037895787580966782278736204539322846798702918180638105018807233567769447190267709961039306225998719534098405806467076213997879903353504284790900050631997829877027536043917110924176244403458282801301426146501581942306663804199803210301042478570241621555302939884144089556828595793539578115016986206496991597611622727439554716798430413410921569137505434596379590344741811813600159908561888846499439578920607823863690483327296603217377767636185277566280208006233702114548643793380074175512748008516854565171110146149264942455879091130902361013608356895163888908646267889554146275853415413411413364974757729722649415026203231052678586389576889338018842033672475181728636770534394569952802389797280149999111073968487951959220632297349403647849641221861587673671770471016923841751965595552521525058566748397371389798830083236289568753337139740173517168920522216429258802872686862001347338165629279604232671284189317789142524478832917127971564743298516251893501959686173258824244088242188289363947887794053648725916905303510780526842215681862920505326859285718939797192590436759791718331444753772465168810480280039225637949009920883922632186216054652943400633670708758201489350680142801682005265312208520174666231501751986158942329009768457852431814881789520288784217764399090445554272537896579841430275945904622422219780231868250072839856755325948840675963653787558261347178786074600980834672149523042484778375558612925393571339343783647475513978844028746438942594079091138716203533183541458344880508602124883076461157539963389231399368797624819360299984749571678541343260789852649928529345795464351799430172149113374250690081774951318607722103378968404420390651941592321668757298613229169923872698880545836950068500961066386653393518836275240448615986854500167504982082360849417235986644833511635881751749930356154309028023506253231313808160608310371406708185126608973782240136170809445504558664698119022128143942138906290681243308979939117767398900300813823826312081718019990089011787265558271114389558617676922611550677693932367554613614024290292895748045467296640336723666798913140716144462177006512380695990763356485621055152725783322353751059466587543848560744504644205857568861366830604125711890690258820623196545566968016912626085949017532054159828464856427001331914182628217790767711691322601146201849997873350638036623277600336782986659046356326460457652925033200907696415916167855266724914524479076001046161767939700656908400955897748618691400469976124117032190963844870681279641602515786573817666097418144852257462187523976936136128105688511629422788189432378114055155366513102525642543200140895058296097353126745051600611571985409590522914085740780831364145394192159878930491310431443907418050619433845348154147428336318286308859956962435296572555147327333008096630409540935463222012908327306231070303937166886481992366038783484824884459077376165397837101146369952944420110806900411239155964187492511227156165238829392560296349996422245365771798660932598518200447890896916548330332930583550627126007539877680859653360061522609722453147113609159972702228072057166361044490432449675685641918429466534256185290704442200761176072334404978312307846069383989359011403671336697651241035391463134225272659786474934259105970538312931852263789600480387000881982002250637833643699976430536825883548125060982137560495139261471911130600267773579076807578419672343072555219302995932117872425372220278686312704803857968651724728942518959870342865465968685630435245404431378866892287496758596967651512696460563178113286258285668416825044724391450549419398473793001420421806023548016348704650045476948912412179967669383923258504638948033536114035033798048779662728548348968541912347240019129639734406099818958272750389920977525321118773157649082101292219497967245004077584921586123985994878026574557629315296649445138005282426398611809664321530545173590053554386265026541523654715353167099498654056216500698982882920935647873470918715478725234304192503893385134592640156748042425390244896460381643081871013862680193444095044959575641901573375309648701346629322310924436086049823955340551631979139213695987692654723288703571607135482746250622223390772514730682858503439532766958932004456398182872542056251670159839847774498437728936623131330788289619756691002449467858120931219411555386735615376530235874640123248961290224541277865734695792873656272404891594854771618101970848636455939151746429590035348589708997621940190005918766887879121828928742296957861937757924729302949935677785824388743417206215481298983765097703867372014871456290533685417106162415298419391147009026907099857165130162424408955973495580600744443080772191700825519180727724302212743839159011760375385563541426295831497628897992272654966750194245275272366639541687759205009151498267623588003486780937901767792279763531278646335180782697197731790324862910910358154357154556479048494348039409535962968830267903011334820010558402186209077992822564735247352276213835164538937919924962078088521371540587352073095391638624494945324274629082162138807998328689248609876308678490183785355106227442298686836839998065147671666566215788991050212230445174906368581169905162551477064734064990689511407622485974050027358224780344440009218530165476327750290937832125080980659046156859442416952905905168462324975034425642015524954303933265638230780173938755319849586137960985571085146002561832288380390307298766926885760198498485566679782437035239405414819749895281126645463307415089243809226719861327375089863986467935182519198163199729795292812155081877948548345060311626129186337725251629054954210963862507029332006993501184039299027231171136869436392932358205735496128544168906272133152464706014887896958217482247175972559546092697437988288623327568758533509459361762156932817587577678770330861686402727478272819300162397981233804661179600431283732344417914878184794408125644729898504186235164823226875818742675420592784407025105292984887145708476464234946849753322006983974881691342329311396742400385686975246263308382470336235348201496690444012310949865715320439659759670798381514840356952507475089381941322193056418313201788071953374673063501544899390802827881412131056923680071945062591138769217179529295480136259839405081308121069899781197301076005691217201882181368046218419779222256206574522140243816812337079264363516982100177317708088005536560909503669144558721369478492092054617264456303211768209320849344453434505521173837140052394356425401683184947703194771066337563352778528982618467454701390983128246099993863005310805573621972505747670294547887672515183741339608434690373308322283694970155473987386336600157986414105204986597326201317689384149356705183054776507555888384487498467263104734930136904377826519372454800484563619617011739345763050521935971538793073002179784455003151933821770036425165886830681866187432163638559403773290993195276341292794768985149304148094732264988094196745241135169623529907892914444164314068049602559749305279497076374889549029788399637297362358236658805727372833459295622939434435549201103206831865462332797904059502520131619856764130245108091671269172527583397574792913572070206912017584353819893155255466695559450559114602860762121052278225527023147055943622640771336390212005984365537989549983725699413111865469448589050466560183679997204027426952599917483421092503225283725673971613374751521939150637170247647744144911972861106013589423464921270268061808047320618560335287118626823487984123345019680467814901467801193720896322872297131356846462086738611606096933755315538565530226127163644335184207965696253595464391255007582388351448827219657765599996207274633035730708946636914667524723359567048111654124791843228377445051724677173753635122715929336912296794042902173656173528113917409336154287039479735257536916425443941560505737475909837515180905559225291135951966323692380569384048240368388114292983922795414027011314342896743419984677566553133692762098525247093164378711034358872633855149424225896076901728137784811805708073542031635911109458735590615583615894176972271465778089227555263261376041843047812036040661619665909382683761675980947997512716801092966222708490864663679231364517680873862841184469035589526665944461683976939814599278061771579664156368691249083242410872832946526131021363843538377628908111652879302591046876928708565102717374408571228673284586451888539944375644201022162873579025118290427975196485659913001355363185499700610731220137443368530273452989005001119155417340221061592364931701740195540683205446956192115553124905159992172891167802733348161645007269523705075560363083527199830334857607795867657246080174516544828979621030701760736872634037277360772054760448780219370858782979788666582119908299929547382241343564779473744670307545764683546986077631607654894251513759054884573321748647228668785765652235181448592466007660330404047299943571459296721188438484455217969612649730339063176018537979463243015171913389896380116955342732322910279705000625712916275616200150386885914955734620704969371001307854931771930361077096409090790228526787801956272184126470417325627091716142398621302666473444902535481525008688814663984225191422598614239370904160954647495275035492544075173833547360117264193502404394378855312308069646417470031975197411381784760716077696632641585382073331543952719306546990644584409429154033766777188042839040340300878699417498639969569492943772463951435181401493664169370232934372281990589592370118949101606147867220272880297151346349705781416008665016148205119013261263456095774786384282533803145640559759132520914762475792072006520139860977563187483486280868796553885737162197673899370306172908938791689593919284335418637773260907237733571460865419577406433199911527874419085124981310402401050975682014512581760464307650007145567574196531464513585543625596442031432757237176208826524097986607057324335629982172479328935613857116195527129071309000061061351541870280823166085241838155835003927160921926680270115627017336792772159591162127121437616738298276933837092000965012357315383652288740990275189922777477625117754704496465117575079381236639440089365043652855156349326675204335165632818158179166463094352560588907222833760204818683628289325110942603626012902742882094940377260002275158107160185419537194637887011036096023448287460369109429352261658742509249267734078098968321408201292083741730152390684438907486836284404994330575468841179673292530559201150093932117451301167037422081276352169568804330267426364991854636240989518805852975576739514188713603569777989346802665116834047657328727032705539014400134107077843606034263210347235320662604823002327012390158415858230780718267275714718367481259685967516376266294314774583953549600336853496805871571661646452619752679577200833387159884639114778372773145591839849979549597165199932823819627874954675894200600123858291305391807366769180088622623039636342416075045569330113025564430770042608568755264079437511255645368084583041959074839126816523552432855024484899154016071292494273967731478747636840263603155756315363177423149089751822342612574682787352127611992441717333033079304753351676513189420925310769213841708106572370961913244957952809184089852810416982776453590330401778562420675273833065094448468321732608939153464396573984513093397722558746984041793079315534763609456143621530793837572344129790058150743100274493740133000622179339507637301017782415958568953601431695037392614471486448551301441853651234486305452883061435197781594800481340827272721788283445794561864157399501499793771370287849688314314337478600883797758206276633566622185949322965862546115273737515303948609165225421740885064881364513603772126397315488994956413626091316263442062719034498459862492035158078938921432117740049514245392615261223627984831466902317726456861318692263354596602148988241160124053069284785804021361501689044150858783859140834564385664833601614634374892922361228906736409948534843942693871109806913592212168789543048127074431713135349867331035570655194046866761542893484160969848965659962121390628935108042036748176096981134214109803800877399663832286471295528344227202430907003352902539855437094779832206901158774083637300939944171645484134339564985350351299635492525151119544064838770313836468317702995184749579650000842357914229538788553521853543195596833777301069829056607632801751902383231388909294041045809954951974074713747559383755376624227825450657630042049186249257160052642351963998342973344535089561427553413627384481824251878019229833497956632373948317300392975096591960319668517374530177659568181244975807496912090707951435385228281338339754332977568292681366452096093535394276112604357562679207229865280461574984915502688258671189663569466259157635597309466926632083303370951782589307810319998996412782134769104143424730771741048410767795965535058178530328756457545700909194551039585660501506918455750067935593432528194897068326855220837956737251301517817158487080171276908836282628974230856739201637567242707134082698307632208305863682838030848590433328704211842153135921799587289338201925032629294376422257407187916198497775968283796451173363852982233063498072979636662433523699022552727841229440214237732279887893163166906698519799435510724010628924428471019406272394946870219704792038162890858300446817674302712599537820212956847401042455887887541620494161727192202793245618434006384273808361357349682713268573852523328593112083373326023787758270608450358521805075317975984631497304697312549660970354278891801263836509943116157403587673030688696379044910831810927472650671639403483739561387423202998789886484751927447926579927931573112977132457721088362752019268739649246131768199663009550876887786840511670382274234446696941613313282581067795419809148846413435592887774219382548844059940631156623474575219853754124635222592585452552381644158335462541929205106415700947447166845575123126388715252288711878020632083971539234672102078877820001327413798075674593722393066321512684955574073716798756210791641275151748538296951152266715428548944151834463486000510639219030732613220801758342792718507047852948345700415866878504198286235610644393785208518287897899752853672415243422506601215587850949582351815199684972020171979261749099407152710155614042952863548253161579103384424471150574922017359801394797341422316196800593867774199362851845264716981768718103867251080900865454671717906487914419444718029777621495836706019235458873845291143302477742171483167767247254061979354711904063704924677023450902071217031376395851382904681487245995933391966755812659585566804082347398369229107425626039022239813101068723610246079975652381042741472699446841626540788715955363206116316896744315279248034432355660023922797830599691005547274176277668735597621443405839132920052769204519734279076825573106848184342597831427395617372525428407934029571745902494888699985544532634793080964183423130057556166540997351703557984448412671939438096797039955423462289117610949832279547288113478163028174387380470617605395499041944489194913921616767567558208281563616699664852841289764233059798705073261706981945007661147462006030235439454672523290341543290120627472813997502232486239180067227326078331696269093692651087883145611575758600770581643387006201126698934785676716652289548921497377608637995311140832520735156666645912302380770098690463879777033539368771553067645975386366091697148559768352512907564965692739801469044222225235688157443095174168233894815680237481963714576281954239665570882168345475883072535572431716687977080777219093899432905686399487232403760574200729397854526532898857978142017647186574922854897358221591138820276093543906103543365655226534484215757304901806402603832852951710897702990622912385629499693465875060680333688822184365663582720821658885805083039534148488429814359545417660305412287022386815250038129903767783275323352064971226201805626566918251481727448142814451516468622965337069488958461647617807082603415724386816743083904156133639639783809159171456510990142475558996143744859071537773264693717899294772986548257142137748189070444408556520509180871063041693408578526623513451483829086854511621271909969103435628167871505078032544951031260670296443664736841417450923547744756627027629450209638656638196881460840522960627538160366595423787980648253830546663979416406382507585870328284757469309516698308140746981723543113551752010852269264255649242830081474172202102894622755175793994518808322575267849298539669541966835139529609002359699315194596169260882110856594355636826888823516546947402032016750688637799084200831168062154109005932494428805766478584028225906834847815259635461817456440365657061283124559630162620198460114982817458455167179253011585986587441044388614488043044052790550174531043804631104484671632714878963229726824226870197905704694501593594093922449602068298198135603257838122584933782682019238086167458735239723880692410188304884689001261873307490952839488662724261146317303801055892718908475973808789076642652263260309511992624357298983199550333986667815752575323600218467011966822812743488643148598219020098927427368160703565482098083298509651359492906338526461159470813115016209028618827883475059541608052055346108199907598275666303531578657841332235596730705993181406239210799176211316999466783505630882222138586314466157832276377355784570575880806238646188216485585984259999506554073798594158681778585319835079895224493403257376232307310499173785368133774695599591786755498139094886286270968649587917633622668912630888554898760306464008772548767832695787868142321059298084382827664860636505582971235555683002390087485953777481094739191221094776249266850696424313261772141637519613794451230840791336216620043516102282082538371424072943578425861765197780268794204073535502671955901904971265729676026017044643095601761755323320159449785628260027287469257230302079760521916958532591347656752998156568133758260507118596260207853282452933544947958051262899423543733943791153043041885519395142705012538262066410744967395824776370234580887480957471386471758127589251922256559059196669657088804353836254093126930337282786138519013038076065193718729022089279284562028135429341475475471274140416057618910885645850603544611712454006201497855819474231593721309365762873335191104531616480672663574770732134166184309816710323103134316413297667908336441776995500637950528645272075896343488507197570873741724296963293198890338889010614719608880958208141193668739028357544160604428728251421787132049466812014028351490474709865322064522070902462465048772961313288257078379440239999465373980952041380864183575978754719101702946977958988711466465913846703145147143676956639984388810076334135055783098438648593747166144015501279408565421192657724737498786662872230422419801830920938667314664685208192725781451801776942480583038567354403823043710164686180713740125951886862239112061039849687895210106701173350326214740690451309497472374664134079677645949957749978127853418734845848222207195457053087216324832835670881275486540355551546844797844676494449198493864397424123602314750983772440333759886683907069200193917723902808208950491778807410657227432785331056649844615997441389075026078971983983127058224437028443031019381880225405025371085317407116290648090624993494369712502098770825530487288119562078596782518987268359034278710264555483664857512696670407652788684748470484292868621134336871303791246010604136332074337703636825892505201076957082957634447864345896660483095332413631839113218789378647787464353811060609758977507078472978895808150868816802923782671672626655250295727325621448939791904854050720742945823966494331694776095794390257881515218479374115619611281084297924930846821853394877119137207112355941098321580432465413942418484141488345326904494848384136113283176739138491904120366620947148642505008560549698954189017240158575479307587140388616375472755004066312443857187379608246762558956310445146725354655176150473873119540556310905804043356046122677422530373261616961497017879020606910636943675756275937992261891292461774188045521815592444052874215797367324672975520359421215470370378346974978326512400446685579173994343747483750831513680121234492381557241406436693380038918386520593891903066426742897496629332604485658075147523629467058355428776352450196936146467773902620312657259948883837136526642760595122658488773174268471859296332961430835020049116885269970967445830878993935190805580353038762557800535547273508037914959218536484377523583608574161077838192217128829329687971002483840513869902327815330458215915074480976501243079350037998652915628159875657760978305840260182889663049998060706104647587972745017372432146408348253079458588809515317217929653403924916153555170431315450589035398478195578788006466945039474010796428365400164533247515560792155628692176320134920393693764637608626812533470337261237162643934363993501605372959158796285665798076076702544860945218792200488288724725339209362817349289648739498276764170274592703177966704584382060671170857416299266413736418105680023228612904311482494058153291644795812528602460020461185993671500863228593275727356048154828239946911314018429541309023983398477749206208156573399191193152480793199354276910632104702632883961185461506056019761032149176177228645821879160408814141854455491491197057467255869092259862116634763807569611118036281111555535533753734095182441494102491942837317654977116268896250439976923661137510705838021037462497875022835260586307827438644054116862009085951036404774983468555161527781022096869113430969763390805256768115320949168135122559800332453324347407716155231496811177616271834848965606244630451034211553152071681150143023500033488398950664258190079426358607663868581231122362359902881470075910936784997073878634023879697166532752613832080989241967142050905362647313579704757522922508862153856776384559859153074339652742358308208497696489218195407887398704836587587464947829133370860152707065891665132220198505691227043318821281206942749253821344175710512578980412518189869424394683040495087460056797856393547796488319527297199938513844551513977869435563387481072672309975400870721767843066364565607945259029517028163235401196148161410804672949332518390294195824349226312702130593546624380848115982859954763484897359462505146806789852134954081707084620052337422583202707714159782524543821606802559245018610242803137084592642934093049951243112275887289097392294142253037643158361692670836393759367098744448541652351911869335320818989939689225435760751606678163624489708362090656789873968657756305920424268402648269998644585662544796189302846937834874167621512686165420345129990113865334175186189887870205008913753169573058470669184585268472185508741521731015567083206601726021805461984904712549143210836659274063216052996532654650616005699205783961293243129463061908923601945544613426167768792978488415632825702678229751203715069943040736222241635150585315097853451747574787251511040160059299299478423167611834400239302993812531133750387849386533860557124939548747755274129950569070114278145463425160451309988184412331255733924278301259358500444961149997389261922213304729002499463587091097899475469167352683457704483896864661446836013154316009389283505801964855220599833511233950240092917059418496023872844675373531107920532065510745485015207425634268853233456422029620883191344177808935058078181962390526676070861519492079979010761019386638685986765881102319888089646522820812283743125376757473900393931717032620794120225110879099031834950701028288448098766187044383344193224709991327788715707204656824927067274846009986286009269910708863801803040384329772124937677697782846502445852979805382159998330349262550379211465950188921919508566155138622820081291176749827744626622447749071761456985856529153031097138378498578724773364201503161928161031029206866618715216488879796450980389306879297747116692935395789679492193423489636590380062508319340743875053653885538514599114886930852060633829823090773069759352596511864565465463148124280947629054128834994195576265812295630654812050209899325263787253951103458230437348007496151090750613460877342389478991420932437031370111250133593363207993515253183764236822190565179540510422129404660304913869346029978541607839474830469856814808158369545929032637847287600678394524832547468123020888899838327663012271489347047377109864593251685082733122416780663887300674679307463853051558613118367281335023640581444801695621506112660882950329823314193420719343003227161000781884480292201123742703746420423813170685435565563586837867455922086989759129529263886804597402366382808931811184282084187673626362760863198674936367819244816325538920660766703951782718555567833129874366481931325278370260282193138584254705890631760928441208649945329630913113711156437138340656769439529586993415247475416834292067595777535152833950691228155495488922855738054512527348074947964030558646142502001088415062346249851875994603651015017346038744865820526852687991736078216834498214533039678803058757802928169231250035063958842126718161082114275160905678304295486909144328578677734168047048366352887494777693668896587713255855109593305927179052618296333363754383699322326369790143474004370834558526165210337030982920345926245015142065163211310901416307102200333525849413302548279037916718257942063841851496177661068079674750364678378079559983479176982073069014849087910679605689924757834352166272832018937208962617616462552991968033645158725669355791268650157267574162017880435576380242189230329062359020675261797608335805121055875494032438176495627630085671308020616096387722556100462895516143964564166791745122506919751452923488091743512786587521364315224636926225222879852826870186671503810845429041479420953698340726262060309178941213245138542078762495408833120323197426001179564530653269460548247093920266044534113434080915113141173181611717686778462303367626001768435019638284591169135437739098824149237438250425267438689220743338507738305880940787699943460133453167905418812374211227695524809364645982592054275316107210204857398117624234341486730396338983144171420543582994497331562615499840564339136970638983660807453317400397961292044431117724846716177572787762904005353078862595527585873344564636258593996668471021764414475831421467634579886587485023707785116247576084052228753920393514959947033229562418884932965330684666397275281656265012264880170496895114011459036041997141444897694371731866882358580086408321117590219483880447938386766177165494938825854212684646080837417258671773252558437073628108038238109392608796695637761732294371993994417605576534634428051113367663394641713818841546589547178353997797905293778230146792815748030485875017252758455726579461602699344289726126690546629252185762600841840190845231857214184838897197724932548501607897731646791313078687160406923842212432122081032717207906369514288556037953982158158516644262609350211712853759103688239724690954576219339309131139221356758478764357416940529199278451824596575561707766402109104675985875363720662473627384993850318340258835300916884324566398660162085019513724562912342459594994459900423004294980118443428761001252159202020044463386274589954098402439917836697373447646635271390658490414484578679445517879491796794483727838308445715443115265874826433989593327435864406987928657169192420676258225375582519024312915264154109729921241011213670923810047870054211981517356124835255745143825677301324471330778917357828271225297658813542049921039536397849810490918590248818276104838739809891437597655314194027318414703383060170946316170887095574016585526783761558196057657879291663893808502571417119557205239241452533089521280583933307485860189520211041674104401213702417196443785282826883079502739163025007499123231368007171921922569324983860594637758665116665931495034710885023314361965609805725167900173443417413559341059631798525239877052914350051963600097699458934351594861711966527612934592426872230350433254669809050599113762763294016673647275288521234086412510834233394679664651393602259298721971286229094752581642129116432432215644230971762448908811809734111419974633921478388034266735376759994310160787551573188351092112417992549782181624719337694255587207209475249861091955101942031623220878364473249380742249355751942567069726999792522917197073897027281204203386660956190736571370755884568853209271457104975509568234927189209805893953487589103997079834766652847384098096165836273958667631473051826483723589958844960241634515211943726641665284059181870138597859361189264014951632706147602373495984523285159696216262912171212202195220111218852766045413239960041828840545659609292653907859247642811091063607693167484403218058085853058562972358736801282606943923326832547300661549562520634472028402881147983249273473410164647358688669800215890435640292366745971625850887760990377991122812476750771508173396176621249206575230325297888748135658255000276526902316405499460931244984041054698534113487210093398448826879393684991561653786375874880965231173019809317253137605120472841444857121863879081771975776753351820681460554548188240414149129475616049515088442196468699461316529220659747717701993167904812622796610496095232723072457730811282638940106408741159150577229987760077753218802382192413077838554849050274432150517808866050795147142409905830174299418850784470499656824239521979843867900666129278195491172562878327644435907889432084779509992670565425431980988329517777531524188406169123497602230325132670588889296604783063979280345085105586511177600387704344749923082552340383306323307061739238449190024719944410702955825322785115443343099919586120594362447381838614853111248032510264492726177108967940542106698070984643481611043154503090702315687810685414834288571438612257060491365290852899105293179433829067574869684902950069919871196529419418546176543473973652192594771968214642680700145303187973702512189100964914816478825444787291061951274945609949903606059200090452421362684813026268541388910272759142089956819295888340902121857154214692743670197628329086122155327479208289382746499690409549936943185124169233335120343899458886203520877628641674209050967820161283072949188970411636456203264153201704779083757440338566402799472941820318081670938852747283091857118038406683201003777332952906879758125741983461576239446670520479989519508036464017079967782763340410647771423623056348748621642382213000906919883502796483125661108420717395093185607057178624799548681553650957436534515182792996602558011144689159367507952656627538871422458911423222812571834493923069101893371449416702721127306097658108587468081951231747287011592066355844600209343257710042286994321630604327967443772573120483889306627538293521192067259231975882542620689762668096602548826871756843511888569270674300177259046585823528681956649976198429652560677331861235843905947757055997999014715004898109400369702460172025490475715832930690533606043114459111402602842428652323998696818036539982371886509725348678135969737217985316670819257684583148798462596087620094617793598006908389452447499877943997229506633125574570273165375996345589390396958419316075215367698240576330474024480074733418758235328692598994473602755336624851436359858402126565681404005279400893247386120008372636300978698717625911330881828462438266254955487131014149364918072300733671829586143546493557169789476089858143477737846920421942651872492414561457678242042694345956788089527611356423518116523327420035396527992181706813683583784425337097388078478507961833794553747367710163222625699603638758387361551521560127510380714056108911518381352034140370280941242202151016927749899194047189694551241000862139923487156272544037589244893014185832109491764094240764646915823377840600763474338125501352863746559697959331895563915244727565390746595553027287936907141027107112209414148862949928639498265375449688991690014677896529722419517926469060001367560102309043082989461255589881717171195827554612300293055681641080744402774936227231685882071509189835160778032308768183556292043524981830045822580701393277873807431973555161792756218223005252780015112516837581657605892796283667829762734981116469498398378214146046870655711231603057065640023520251228505537414834008746320656637210512073850906909390207754684924740901057750304229761118806648523359185748965916574505428434459730247655823912912247562834217769026559511417898304075377933895172378627767836432556494027143672850704716029737227949984046386924843059015146112174508109238624370132871210694611982561956649476023674919772880386093218234930830461511691974992947451266585103138616384138231476377937517634402480842200300790848570941391263192696187321118093088636945103326494015102435371203794463260612277193171849908861597958502612771378749052293771226648983051710146264490573148860951657863764733168996147588372948051297282715881061437745320467446459838408453252744742156533331016096618498386897455701210707724094973541958840176301108340055786229793362387011369058937694827931790393516691243681893552764830744662318401253259046491263904604088228934218545774986924837682027883324572693787454163085245773943714244631019411508562786179458435344420072561459524068050467932402304657516442143641026438178242042923991092046211435774766647140692138949401897511544702222381820040268971741002585597372316621705439448252118496115973002928643652189984957849542428901304216694190859427213114866937886022198771154959617562570227370656143400677332671945229708879980568630393729255878421463962341050164510265563547058497976807372443447289943343269981406441295338883641954280576187786038488489207605608705399563356914033476817951869859086186008572975203952990267808252820519598836125658756133742804243916758264979546000948353290163342186032954398244972144662365345533608497443284709133947222722530455842947076612064554170170518272555801236078513304594436747077786865749772448550210023524585178222791488582116609304605915536338045066538467970742907133959128446182104828004613630909224648379496706346506197493068128655325171826982715029732624215323622402212054307698129703524985130985965002169519251421319803421220557328155536560605695662644394461747681600624602971903529544382101572361154631201299496523701635135257529672554950305590616910286308544818080268497280820205579692828844015243449509263591831682731682507760424268512646603808061211926208200330032137721426797929671925016597638318605511737082637319973773149611507716709853955446069765207303420603476474320007264110409783199109570926108584672203883227243730750170753521465260956845071195784435549312067998840660164216581977813895302782947106819273555690321466075281911040892624575507760930282345255209639448423673590198580764437394668033470283501603084639306573349514238842138560371193648262937269936624574034757976523143207624614490153319647863018430352632294832232324529269718059448118896942373460920416039080865658667543701271103562766884768853437227992635280712792138132017003324759210756535770438994226318875554849324970542478734351392123438494668123669719866644173334047957736714936188712750701786345365250249748107501296630690709942772576324111654611000250807608872470299549166415749010573740554552713527703183975459932986679742855610258353134069565405411412144316151176114011678345741466452162293904878403606986535696163652633803687159741281465261841483998062624076397766255158008905015527671097037616280209074350862698806912446741417758475558746068206192732647619018107606432045038978424636944831109507490034319267126096844546088972859632364514735728158709662006373702728148750224537579352898377490193340091217590854153660948707502531141357913144761521717029486535721722607160768247751861681748025085956078093969823277191169012244770130363894569913715377059175987124805625193502387640943426073052739361639960229726159276567466597107686863337888892451284802984502905651622366584905968451615559474142860228257260937982123963629678912860199680690469304121992707444502360830945149956179588170367957225784434595729754408970104893936820281958717205377836544525322500181993200147773751560342993586355738742015178313242518739883407688738618400632681979401020573851785884115489772231246378227157542438507501463158072021737931189913206593127301258657741636998109609894871248067225619966195556250184489787873945424749205497022023928090896227275765666749341084138384560723756738837995546313735576660619996315412770378231987530716354956947104014770650249567613204424460364277672564875151673014830754152916767470186732146160930716773786948492867647903532776549322798663667654119604027356427672304129744295086233151605036904406922049047358935366796932186507407206699344773819738196701609521794554156153396495015754689604683086989330555039705000830641014123277758824538745760646026862430159710835140655624442100368324651574726183666252239682130331433136652581197445347371095877838909555362946344575880189365302629409994712232632271585275715324899375827842934068445224929756316741037982781838437198782199847054546585634527051336230137072090720773820080910390175563670283623970399272535478579075729963872450398545622872624856298237814565096575142570759410718947405628441939610987841289076749582100827815996315523744562852670381637316562957843899390578202992661456334783877455396267961174991269439166529465055398966416626994610870225487624399225815306475967903823497475594065390229469322207365942131185903236764673821363373876863394325480962423873866985253029756665156152050196312587215872880115514848838142564147539791956297590043677191348794912603042437221707764772770014416903670525314300540097320301021001871410336039677054801524675671630585211515269258685843545796543793442121034382517793946409272576953631014901074303470792298405751237192294417430552033220925256075418011898250264851452385347433609586323491825380519106237172481534104095922045665499725432148254624015264974197638299181251832482366420141552001831693477516399247658750094059315016136580484265301466719950095782967126372381939336014983623019670142855607821677134430697836571245371353024819690795417264993235291493840362406320268668273186177396320223936493620818460951364307270943690286625249979472704367719678027076200015438086965800108809082501662617227076377088892872782616310892930151646197505008778154768237293262196476024016568582179206724204613148978512182232543006559120994763936216516833656464145293393129859109959282272772681000552243117618014043375609556757927422605315414983056504722719678522867819073290864089904928584842709642451941850456417592920848814548835925717902586377808793077563918089992283166379292026808603396394121459544834482779893490637852460672874833786078559739180981416489339829482044863195624896911184664710628963638075656039444600782723874125504004820629520131542254745476828180312007213128702927781399475978857120490536949596175945341790437583852960352709035163649845221217113948663581933661467588431100410911723274998116389618860679362046268774345393365565056847656343719260511242481883144308781776928691455604182760722595995131980967013137794991129902390413872940515407202899255991380531032594856597647820483820897096449209855460720356591883018051332181621978437896032780747911328490565280153505801917324443331906975695778761203750740866657909592241907575103318521635156089654906888452876401639009720451880866707430109385468459122475979626547608041203588456001469127192945559210320829556478572158968508587676581311937376102297021678480160007186833411676619887347351341204727669631062092196897962230723132135105935563230899650259779810087805998195054457145557861501299175292517321280187331457096626015309483306921186057816921344952815400588638475312905691818531711986162108937235814500276229047553055442757114009321960341767936445032174727279906407693180083349819709495755145857024078760288597090427065998647433413214276731336997014022591606811809098880338422424766254579754902386728746716691773301092235088493684112860939420493349879189194165218056787273126717761180768355034940091725145616875546719391870174969107974327628834905937245074358407300681915770402965824433864841981051179943002628505031550625170102022073571571887050383187032581644366814927046576783495189512324421357390557994458721361827756186489332986351666331873145826768846406826526913469445274761194737287059702227152759656926997372311603105108085176448752666249695415951026766997158191808123280305604893818146176139593022809884927201404772745050724607199429672039981030216456016096973182885079026208802238838311167383584843368562117105541162918802086062724225849222224671945889457978117403027045507443830856356855528764717283040615898233999941222496898707171133224909432979113143484113994880392124853648409046278308386251048221079060334628190752951316472632208676026359796318114749732314554574122073138209347813059704582232969167648332363673127016519618228904791503599036470906884769813246382489083625060750317271440084718781839984022071706084278754136434951699653403947456714452075988730180168092219355363794925639467724257182799995035401639116102475713861267230570303571758870062721122682931063030538838264835761405124907646532244468603921282292625394163085888133882595500718179386390165087282744841085843376042112185308763380757498708065496011063288249255375327287000359194134305929629506908240779021424032686527681754228567262098974797945425757655315345521458649378134140770724853928121819305857861069993388283585840568951922485441279250084779643231181362401688596415052292529343430120201911489374072397206451395651027432613282535633885732966118716054504174410139035984685963304601799203122579526112488816162065043271702979378429872511530882622446911632700482031916128589746098031590983934574733631576147121623419677598865754398801608275055182594423180180667539862767689995628377073496830214070954790186001478374856463133960331239639537914555554093839473459347628834702099056617299461899531031071182623819255805012930735130179232449169888355116769411456783882557302304337364719231469366802041005311648685462418278269235128558927289716649705962484935624814378918448288185654476691684541583031302320848290856561420549542202174296659992522649766323874088995599745239366688796136944551060797503026646370610896681787814831307331278385881279010764188279277225173775848184583870493335693691596635328778280992362119102155878887863053242300112723948606956068632482130400973449684750220877695286811002174252884134724638492464114844653127300823878824031459957137910418581231980184890650380568968553090746423479758544115359266940004910742618275915822337947389103533207326564028203113444145263461857847519045534530190922772551065361369063032657511703812758733096951542690972391906278790641183059318961548471581045238719596702002176816990556336823565399065256780866775249506464325479124871584089577907283035149879629774191779055434459573236738412511586721479664609427716374833422223416567731683635193777866269220331886629707606383086904827927503469357981079087183384828637581787733966398735245721644868364590616630767154018302905736395634883867979341242728596586468294678121518165483236718084792133392011775690572035114121952180559954943476860266563266366249481778251733651041358133931747536688765727044162139463167844294776882493969921417166597080962236669343872598324952748208907973696717890115352609969093502537150059105612681586763476042563029503478826935666580675662315111278541775746629311964039110469086768116437289715386870800878917059073700470961138281593080060454798689544397004281628713192314420844186778806270935759622045861534117340544880021591258841454481722076455867085541005759486987575595548032053416209671696199651916181712160311979448073987818798664371710799733072328345751084492517404889602871118396111651011542614143821343383721229891330193973534328287889033331134545617593246595711793296468012549051753356553441434049974235498370629086402512893015290073539958550825988673976047162656781420420685289677318307565931314433214359185254076115844540408681611841050071508325315118695920181893532679056734315133140118238944924640756959553503696892543532736427755671759747093064328104991319042483009555192540133430911832210251428195954623002120287544403157625009090414007359251153826104829363810991296800248339692619670747655023597162304665046322492714389938365804254066960883239325831766671212681967089912348850363049853327064292412424413668834835669560278095401045643036872677043305063764223558640141248054016678153139717880624365931765829921816549156095907113062243217820657549420879161882778987465836355507400713805763731652644656122061559890507287848675508361420889448383298281943577846583989764735374790662448061734941980723859369214364854857951628608169006019555719951013447521108749782488314527003119419744236036797761933139178308707624134997939055649218479571313117162392729093594935725693925537413288639231418493029194969187683523551909653077716257753380115304894617076944677551113762527215225480806768424014229958351578174985984665023010764263731648259570707446708062725397848168897751045426027581819566770384779833891788433578160775002007149866106197317604505527512974549762312333229712158858864439346927332385594915585867957685212609243769478399292004267042691577666949564029790084975972819166912429728045805447935443003333891524659797404993188474906215628967086082473242692556881521579242530502762008913702985992738376561260441735174725051551067124585893812892599419213833111921060076905755513578796104139595893856295382326440613685798181484543443813128810953796765942660812153505730807790810335246938642866207742000490348158916129878500896289036141108120198262806355704650561947525855921682419171172398222852337477991892830497773925414510761221169281559819217563980592063209010946405531423647380849208705827221577719074843967055993132443262233979796015235846888335934735844446806913405607287908972752715981982839787096324446395457938791440392014346269340799963695892713187134799671846409317192706925094609207633079849416334416337590483493275097715189649931725381722617118602481213067324148774442596906927549862446948152244217053870859360136009156689293214598130574835927409145125089622814600133933180417891720130475810081892825022429871653250950205937431667761306900571476261582880880758411981128473539380384519626419853378058216527774150356266686785743922297787844211256563967936197377427356446639774884687355797619347302803108006407027523333280604389101773000051343360155425139147142096274941578487331678440053014624470140985360480053437737697303731235175473098333893456651012716063472520439536334209205638969026731839920667248683737047485327404925558262480695323151659544836736195837346949629128085338399088491123242639800987297012219200758196899223828511382990010636324211053517803005427460942928136740122317983730968361806567434249534622540101445167933435128677563395880178081376685114322314129852214720739536404881556447160324070121300207758237868343123142555198671951469698605860305528165098965334303047701926691010917746162494783999945407538547366370921355686388332549670430049540225385496458079957802796010763326491058860901008968317957748895792964823134137715694865106514054582003905062849763162018991647333450732999201276918034616031705904611447881181284973294616454797281398522215832946932260316281500621663191943936087608992312221229202461235301186080465635722700197725981003089481729571390332337861549493936810471927771130852557529155089572104346042722263913376176257273613593816161640726148736952231289749564298729808566013322164904127583463911331606640299839397848525840918654063575535229279297220604921008853281042511541802117702205362316517328228699947192475670403129697145672921361191354100075248162148196246452024479663729465248860805364447589481698720649222533686962361931936961773706401359222930810736048804907507080104506883205301590080925898987471278556611526108093052609971491259526630162673212065760388398181508844831622059805671079170857467885549823899763267165061048852033848452873013673625717594714785521785429059258124107839893012674141050042691854509361228553010444032199178226894865371234753697397314612682075916815268815940226599514954203543816722571128976869784831921163478050596239047095535860633107752936032749076992234245592767720952132663389779894060077238213867616138535500507273309426089173230378373269963928539245850771363939413432817894071397042954426245220589841617308502387953542686746916675416544387042332600830914169901576234818143833643588882017927902584010154525735025970650935210852312385183331214220069462048178138689187453989120931712217562015539783500247414632165716297154433299563592143631545286376626972692341375552357418725427782674337877447123816091541059401900582782777931696142957397141495140908836813579473979427697893266219892065237265299001477325795098682259884543911772117301759869005964589598206503553709987969035249661469618217247022032399929590661277949809701525439544419781511264030720951294193655478244287691687188112134101139547419402342598128556051145618155030894039725939064577140072376995999400544672696847359487428395136837296148401723419296168278327286813940151448854926327628936078564716569304894000371857503990375464962965218734844900170191397303085372718838266868080348058251862583629504244411063377099140244989030287925194372612155351616203927588649639088722399621714516686321719459464677262982180520471907143847665964309084175379723206151894786781715115067321588098602216179347075053873657342486644784666471752487023018197075749260390004636014395761322360741352319975458569900955830659187205243709299082477753962701642322808122627783680750833733497626486506341474288306192471903034449474896192442334402579381358788838999996013663620900620305706140441735615694032357073428319213504408133014921407917042042036512436697729530443439953088387006121682343301330893760005704655461955052874879115254460104606331507116199252451348221027944598267364451691684303969356694904791094271242709658741839023836129356847750717555280858172322777533600124714300752735953286857284921599432798402072061565343514832650452437700686030136650510876581916464565847594043851757713501969699340111232164265029189055452330209816418982196380555198599888623664645045014770736032497555431776194233901846836673057632049968308299483139352954359758769138479409274417911016870342173124362519121474974663779163192848043301418665230020774214755247481116912736291019891610887368535930917915011916282118335699537301036406840480962041405946481201315642182085289251887521188650644912781063277417473892968272330046671074186231145862789635373410155481468707992645411309418229641179865844953010144014668878071914081745639723507525789874101015628529832623964049241489035696770621749884178631439000934733434312197667365916509555233163778753350287852943391687315819908585908171576556461100315263796688722890769853553287722036267533201854865456876673396366457674516701120862974639556606922726588462175057327104532600604501343706422230341002265814600174404881124044382412964055012309271140818662751017811435115839554894563531965734983901073901131136725580282511494607602444779581351929658247759327537704483240260289569704610962163367957954149605376272790681662576958546833307942017521319820007224552068520167463119825420610763896810391862031038830197399754350792461583628184123320471999675042679915522258321790889198030606004339313690563434323109309155819248261026344545724994094657136786128636481823419778968426305595866382971145248738782634538047473460535861258350548322290631339456520550683609164975237263626211798775515865733126357732772938968832027909134872605503889814095503973785397770907319000352601596194131633317944550869636713626869429191406722271073730964496598088801186003183739488668117948795189738040459783663925056490360294347215916419143139313834350979317651944246755261099069513488226954447565086954958195819591353441983031851800788854620470790529711734140553498803429459616677832981968054438590161003525029469078162713650076273559525312952299085910478519813907223494226440707905231642146807735521560605018566985961564261830440103388392749281348348999772063178505723644656478008794007994988470852747310121522345367659699573344687858974186525135342463324180815867139834934343357312664312732500928103285881186464940020300187766540880064295624989614329223492097550711280217222221688681582159881929013410527150281382514136142546295523774965650486228614545483356641855511019428196459966904790570480348098831565283374354247569395103107308823550217830000329543326749703842881328687815597175326648120026420661562414287873230220882607560406069406847259979906730683081566987917199149683276419217163552202365360673060763238058201498473078483337672516410882057678543822514237262189474674627219604688403167942365144024778878235786876313440516610175994268834261570719842416629250499188023223327909488869087346200737579128708313474056110786140911673770919041217002249539084231231546538550023590637120498098675433121043029937895218707590412682533613607659243254819614836409107787780716008450940261407326848375614679884970728765953711814482277122272056497902156754011327449768427684540006535518952705154140259212595235367210951057428541534738561269434351737316601414442201281257075889042024434404080345802712635517016918795751595021137128589568325058155717852584543539364189773877843457916761107659103931815773630892683145224270519019211631768408851580146546734133335216163111865166466126729406663776526346208382839183354766299410733057400021264803062565666721192630940834428624209142347813598762717086074472845375328131444591310943720662791529323003914506569231822615424116068599273400797453952433532612250156336245243532516331242896425580265307861192732202774499387924930769455969423164431506165875483081081370265373566062514308459682888323469234280573633102206819441502467746614851866951986467640856684068387452853846599870772323998273538786000235724896576586539617860451171136908700573845900610517879752143907650154831321405381262186969549360967545795247865307912260538481449679902122106255763308692489390573610345799844954540915473782280725129138252092321496336711214138350676978682236958060979011248279992234372258315406768919935229847238371060653593580113994130992383359988077819337688270913183012619551987817540071936948459006831708904123680477136461621240182681310285314704527617229274744783692312124007765914729194924355977674448494923367873948810276792925979100958232837768106866864750366272184212087466829445061609907499848039615734463509611173546167435679644136428207374751538412566287073882050234127725486394186000825381326399377986364104527935922768061102030808091869908927294425756584751702463032304661022716421884209754067145962367158261809073955318111544123018362291557643593168072667951911614626528007342268261005376818450719166514223155196633303719008062649133376870400809562889805767722625868187346260037064672215884951973539157208322018439820973603242454089543212541384065939503753544085586809092213197098258290585083735597697595065038308871017245622338956838943885708664089152706231624766515051597500442454413733836950475925660700221759466588914404710320076928276357835341823416759292102745537388336392932326685232548644506586613227136504613459103305527451087541400095830217260855967010538487383897066533165098674798977576912097878806734930132689044732990512745136886811553463480299171166473631348934374410287540624762302097839399143964021046425725387249068298630928211799092615813042570278071973631165849321357949204938568211436776049262500067843358886098972804444308768515733849573585774581951207050097475329318010702635257924186094131553204037210335855506031068558582773912685056298469824634654754739090187714570362820925006518243728949616144527017038350872980557380299413017988851136938615354985334556030585433028328460973558260925672312474816227707200681826833698376072107922499318508726582361251101926510413082040171544609417365373634285975724373824879947540441329465845818325352827822721408246375514010233442249482588766024160364386309598430345751327843253538110740468678929559446948638814472171938658049453509647296328265721414730360086324593183516175235728929325027685496830238642252633232114321302991828320815273945576808169787997557788272544589002276549289103239110422748434651753048424837349303232722403045022823591795773612168241548631327322236696765377795337797306665858908640543835022150526279064066158018920683610511753999896983050756444678985132141763582112417656866139848563272727306749978219468309779431347921613850259153084504195251197193500662879660761642370118886321519345625702191422783339540423870112990926975375199608539830875359717446706190812869082985007050441710383844639322852859223166435868976340625310438633377451281981566641068084287626533684039611474403785900323431487356089066356777851769053236902411116477369190837993309540164479693954124166542923759751449519092145648904263955493425929104874288060553726271136998953880621731412655005169062978453455896427803001547886052237199755739082178055142722777105481414299571493760311933553080924721828044815234624689792645937851727572763868556478276214237651131807061683623392677226993267956899694775610306535137308570621590150084126572026062095537006026074318449303653847884940649434342404035136759998398534341706580903094441937659872657460498744951477862659920439266817322653047001520761914389614078612586633726159191821442916444489560742424784351075577576605867452534983790342019608552345878491280510452603479343541854311688511961969682977502438433355008568502745428009981587397701136828931067172535310549564790805088257993555657825099668268990369971880350330293332524230739487669741635155881297315321331758126187825235882652145893852067960953968921748268042128243093283527360823307388500934187609766905398328169418605037271864380022124612806463960674891252169051054932622135807074404830481528250058329764314446560644489607020166591209966332526134689184514962156713888856754856667209208801853118023467834039703516993924413827511285542564703560522412462618131876080936382453614105270025570177999477477165576229881279809879495162827299097003105936058234834480101573340183163731115901226413947279203874205825228229204149103099074130808121664041243484856699547908735202260152639823778801450741985767599898729106783215186899311272263566435291724960576438152323080294381069795512638447757564976285874552500384189636856224556838439672405565125770403531107320750260215568987760726482117708237616116333838110375610642647785027810526243334091493632010429340453840753574260792702521255185961307762629259572043334105663597828800147157652079279246696116306546931125115727031882000266845334619192920395488360898231561419310680471247723362435358124654083798504120198456279271774174120818484915421466645438817810348134306743137463845349314985342729274811615607650510004003228605580409283588261536378839766236559211793301081903333677244797229639648112401931403394126471622814066114202292330805573758046991667107114836065459935223249895073285986170561322052478076990255469907854355226537922276385777579323275628530634181273900416187965399959783399381656181242231672408405191023703960969169249168720387057967513521472572279146362925304708317650764397880553382386018393699937924567025519856080833746127452628482719997541020574556946811644336401813470424515827166849345897490890316103763126093010550372569549161993660306962180240359871804413379794138697593681191087182242581112037923695724607218748840949602143864426455511973071114938189973356084631243122207305339675522142415804451408978621976656969837660221871387460771690836290236898227984090331017514883953072067628236619239901061651306775993901964254853004916668532801638608219734645367775228206268741439985297830159665612467007536761356943452507671168897005278643572258152125978752441851864275835176240577990295505187186027829318832706156563292391281447610868573204599619427148271238049086409993308905017906155876727628926351559422265758868517226453387921365368993944253202980507271806777920340251811041370882187757505885451640540606796335086796737747888002538762450313891625219227026485864236604267483355048869814175731524631357610853697230661938834335571294024874324940442887763526932105867431632623767929173169808542058699850123243701607185127606475551816750593997199891882781377329005000689623563814609999562005844542335638759808149558919681981367406683672590588262229001283033450111258162962421471703381452371228546518681629400862521863969244983141364792594959395937126229136156482840051274104370882444916218193960151550552602715976772892063931302570998695082533072176028896654795342385344362619551863942259509416059257837786361814980481942932849938012106321952468907289754157383662544464970130071851671045876139763144888989803002196645856596972094424923819176419467873815745632362514036647944809991621639739324199289309275832132380982893769335589441149297335530182649110098733896005883886738117328263880840902907592627096824334990607042753868220856026535140233537533847179346292910936830750039493225692663307010400661768802445030173992728624767184407883414053727120434845769786132645687092401836269888891972472826533470229232215877894253298678972523227981510064824294775687072955520785874321026797684331410218473051493310661800727716060050866352850410349627696697027367565185804146542881417862108293922233442824726258954378346563753119563287085492508096852407981381349149232695891458605634337574947978405963996694513329533136176469719069820542595089458757375641214282722115345015397754380166097907311010966588960902703845485864125175728952584397170171214183472344921803659047668353081464312046322560982328441778889911209175371648956560586164065658299513600615633885861376361237324673731975318422555174169238325827694124796738081845320613499057959089376533494430784924240103856236397305798763551906818836059531495712415044106531372177866069748301776216322019478916217876532941857774831193204887507746635082457491272937273004441356087727700244427423772802098902958225996733976242592775234751016501395054709748891717903215811628133918417931827596428788173829980554807256674746866238620329923732427739777161989968441869863634576212409732893697598792716682580575981095085365764762738417368329663632646419947294921035575830782102579416643435447257052027468621338100449319844578664151599936653590338918872952162808724944309844604201586937546936004743995932621722093890999416007274091129186490951440781690330421360686068579942740927224304494647091469086003020712171211421470808505058437787652428478752613260029006927864836245009374624884752723985463293545634588621880789116790883611292279723373094572254849510919759360743548847454994118004747187565304380995503027125997504287732349840440622439911598279330309451363507979483740991214458707948229633794419631171287055910038750938807169036041932787347095916558006284958391208618503856955986326765069552922890610200128103773383106923552886031322165448538946393886807700753761435207505267512438665524330009490538517853474588845898712757859340988843568100764003942853932319011319299893209243939856298246884114171185228437744861582498485511514496705963254464230770029944443015558930974908080577210848738148346238690555154171948305645764899117169546417165051016084255960048383896749436891574171883712265030031264139856268859572214593028228576423746755303155478617702405208043090959605981516558638619697713986856522495138868597444337479652345695080148698151473523728285743587617243821388946780671577754886498833548991600847115804058927624019344523134616677380057407977232725346600458372044614033296427606910106228287584362090599638253772240903226434025838347855753346369148622267545922849151737403418240119272956323453650769541929154239824271401366897846377053912049803418324225869389078632654830157927514325897624661352884766700676444616125822354405341327554136405101059200635011902755813297919051342559451768164848055951113911039464885799863058432312641048703739338595711351719602422431828951726278166333970195661740261414961021674787182883852925829733602384772142435042403794168329515270566060638549581127984198548429615096521580749642744878619866614747286233238702462823191707394637087699231619606306155353309475698339508055572156852656758092180601686308155380031247714093198709586519371353220088746370640809470109115039289319954932695988967101814814579952359043005332159586063115588324055467748751150429679436798007695364817699327632809876347243714034444096147313327954152040442971144704022144955498411847548172352338116452414963962582026478385935984047123766162941413007285857653717408315417032571973821147299369763954724672483970723834918795473822269681383661404364966717741837165457394391145042273632874404365504847204418280990100875088145074412372986982453850260697194747425714213583034406005446498658539052123751381377463887997723080199894402523752237739786678640702910808490014335826168830988977435970379216024015640276553169030014626325511929951139224503021146073756426893875783774026231353705322697652513073465442504001962630027825552801142267434079180421997719991347375652826271733856709053260476550271465517001987755741462394069966617343235243910644624446776515699857578996710106841633045137205959824330454458712478832314639877841141679555428912764763979501421635416557496558213254506563574104143535723781288991877128360204538131869603065693607219827029559565960302957522466899366701414230198608808952704949001804120724233957655583032361643198285106344289248028156801521540972281871752986206729475797871342147532804178903493721783397323687414655074981167464709134253637031925123086263174678548538538427432523836773146076746900844398920216691215235888958407732017598499576755452740814735686036964599891324517824599176616438361247233907035575333448012886117857285340541713094519883657869429464073292512186920451538526473302123012533398372979704582720364632216531485859516242251328216353593865531697213824497327104065693704530726673518968866766275064352903541220151600087402429006169923292644445240944298826110879810474657837470813696877269667730791510792827493635488379117185078482220425060571242862883220493429467653954641663241691552770086067569817741321762642218551435649489763039365432664186541492630085964019210782745897498919045603592210218660591605901833139256780952292250553399271584613259917470862347426562957779232139511207256865579964221682825059710989598033023265019177501841856474108435698209646439522007325313317760666427713613897862291149488088436653170603332814195887653017054140621886676259419622859673280604112034023561459510883237118456754248020779437480368694838725802028858251860397702567386024783305954467992171985524383488865562917956764712945614901894978516569780571333200537748061908572528539763572929229576367543034652279425899310604036357716304125986813332361300418980886942376903992487097086532820932214203826805496417861033095232311098842460964649542345006344492669408412421498029982137993908607198797305423247738982459844332676670077518345666590964570084486814883938878918350013593101215703010091644019180226764558695407281332372701692747081947331538190316351599881183909059281512958466805528209963649992891390509516391182465361075847515397534022984548951689337337326065377537568006154748953843381573509038079677148371903160832573099304322914440332866688929273994505837207794443294316024470288185140716543110733822004084348070551429101413716809897584143532594894412616203438428283636640501320969152961154140726242161307143498636960400303101020196247993373494184427070932354742313714776890902332452644005959556736991405767438096412375110841396261971157592293646617667969115646870008495232229587904175626804848120282370719395844346462486250680556327422679484347383679027159831717288734752093479795519936081412020985098445232907341100880183654371400824917680814043923660232929993107360623767571632867511066375635604281656327763430752349530726798307615033254317702121785850817417305962198137734936268333453377100141107283684694357000116753677450106568826876320667239137094236894523298759251127492608078703558564217534054624041852891256514228807041089316268756367650446183838460556780841933438823748093523365330510347876814056867253830073560150856872316095964605213287793233968961831274097471721771742493101674491912709033710065838783324861103808179053947020273718740808804693744041492161783136224134904324268123285206050465625149288121271893328297169666963045936851294791581372762949181311778381114732494168306589014833453619868447725780874178256668611239384487075675289663553464719034940173827810784918760397991825786034152937986316892569886012209768952938330851571387616468160179622984601522123950695527895358211751711298343325663852740778965501588008681033898336315800852393889363153734537607074542081753385363395987567936718406737501627594890782121655222394330635076373001831414209280824364167836823236625753688387781127544931767829776426737939526407922701082868605531348037247880144324684072101489414173473792609196358546153757775174257127094504724826168634904682806354077796214814798095048271528618889745798020430767418929465777216198606277797375021241079551629826430579318617779443986956840888688936668289514680264118538221040898473163441704275241557424439222042910434635134044684531303928191802217309584562345310421528124899569983265171498151740659861875099014348169327488205244550483050236180548242625978075623840489597075961559762583378711490864974035333234088185668943151541631872282268172352812069572829989075983739239647076264808336456375252863663043996715808263749363491791746641619630079399635654452549056730399628709163586191239074076567944434919719434460327871952637419519835966338176155570287591533110009382996608689140749627147435619179328576174726163806245558955855486874284833056796552240051430328488025090466300880289851460563343691559989428017612643733562701208759403554115459304005605116317126817081448006501429439827973802852072919192818990997977226997329157753258835532194477449451456204528176804407989092207811836256145387222045882218609725565756326788512925519842725572816865841472314519188246641916908757340052750842835523566276368280703352567525241988794841399773124178435747022959388592399711015729066919492190167973463904093894349424622479689316281384057058547909974402028222580730335929293212014707545263950820441346782207921380942577159396334021665010027629002480842232246388571944751124753681788393090544869849108417540374968132221896038645869905987795074382082065235649922264523765037330562018675614823246850773542654198174613453618690288517894163660869866964675859404465025748512389611570157492500322897389871828770254421172916331886786758809827948653734062701624175654087416138182977586994557059882108050069609758173275696516383556153778519366687471626805648349215508233585979914338193529310101286475651418283473941496740561972327921435484940704501602696507527812265021847020171911467792052060713385949361229394701316118030252314861130895870621050946917532925546491923982109906407597451621149080203774067954894786857034323892530689297241703639102422961268404598814521841287179931688470502738058030379953275000882527449476118384652859573587111014391147130110677105146712518050562233749067166837968932214939286534814006580385032088038817972712001647517418399003880444910761622371443616291969124803663104147370164746603428869800050668738335429578572252689555190184200181224056773593751613287042612618600589894449832020175030075186939887343363745512281889140364254723560788434538835795700870482785221190191050840266989771540089277701958313931893814143033924466141257878486118128105708741168193681830853881868044781533863673187396047247055161227718841218200225679259809386212957608691461300697278668867413821279945960779359499669506432515205268003758985203566963951438072827133299420451112568854756422832167305713807041613979666560263708091479536759014319309193402923646725854128714822296097391265833510438674427944763613660187159221016195808780740078632267683499690156013637588737988420447608631840979862693819629800361900615440897580947667651131450103235153481562602611900095750390809765280138839701424020353672464019842134091489013022518523215010427356430501244366914878252630353937040424141517155265062659978228301294281342924501309272674804856134147220076055718068758692733447526871060504852776185795348724937016471045560941039341170100812469539256593824710476930862991092288761706039473326170885635411633663402473014568566706960556060555887438564332142883023255372526213534175778950564233088163321676427563597443230823148070998805189495589344612110542995826527636824262660807096243278625896774640689660492280471706408258725522418086036121306838306337017179691379170030173284108621890060011065405824560364423155693340641929675793674339175148350344784963170023875573677317249324968567695813729247011489317567437459004914346688692943248951857441376102507919085360260633035226629596040667589157083371453886996354216378183305219778658306619866608291431319763738969075161048980266247300688924886961852809544251050006037133962736116926755474519113724862381852489396278677065863141996506441474378582584497205733149982616713116341181009153513536309396988080470038814285307781237063228192871637192698181781136527287339732172267413106267313542611729456465019249445219169708076712144682557996209746549246214058793260366940267740181591678960222718605249043068231380975214360261548251900051751399520560109363346777020770825409975551483222153152177430691473025477652242552794630131322446973213669118534964776680695112316944595341763098732525402449304218096618475617794165268736967425493374197863982623930802531210878570594944934499941688032728466340163010917059832331876049049212756974558871938538964249671433346306672735918749009902485143543310290480940463025680998127145170863983318907035088371990941039946913477431811219378855235823866251646270800017666000596059775269298683508232018163977931114026427445626625195772120674393950931657311177221901626145213861580003993202463613075515418510798963440987700241635502057616219072127666400440802437940320803062100495322833785935714810171337396457970868127099447176677543359959266530766564046084930108681477608754780523556654069280553249262518034298415310891601396173084714111349141804208204951289588375861315111503099426502288464430353368899237714740845893169083088163395568535954622114703480203876453602546638059451769376863924673931879516511634056984687222541511830672206132595080471163928303113157195527663776937049180710390103226713711075913589951992124879227258223268418076738766279713122103675691004879052714029271431168283473690371526123495330367567402437939365918748378005749064711163159516741457513354030803103477110967134171402520009951479276539285073625638596790659912165660874545033759507049360201315670320596599347601488431144534144564269038340787959657216807133855525124037220752457561940053160121131424250218488949794157270751067571649699214869745681379937229256332254300019577159403132308232621583574294503575653043450861397050352502060543290571797486140449620179557052021580077463172588405194236959883056389065848288988284796220522609674575709504875508332414353413551769699260288997428717814891055365786892184966272773180202975755474684079438144909708367063890421922316205939517121045313623541482766435208800794264765154111487796754730463855148817952524784953755427461386432220289978854746921293194097714967111120621083472162981999353309463628134510631363666898873222610015988833294941471202718656121197353161748228559270684484951600590717673012824784198674988279748751815005139403919209363578817528382448081933245492220316394775191445224731748446357817164009711847693345144757372844810183739495443254975836258331947995275780414905071965902778484540149932261864162336854662546573076778519112080467046837918524047158065507673229961295132226598564736428969952436448405940956041724838090522734604717775659774672355895393309820659849705661114926100949464463917404043693715487033954354164658514021857347274859896892215245911558995225532613136818528115631149108470135034002572316029603958584194694268837160769960815831318942790248074357197368694929244991969330651358107521075442007317385788717888067487713465796037317347363994301862485461399661894298619245074569357094288674096082508593176810615110138831084974238279265074492992948355555426429999263112606340320743855635829655773261675800956805392301760803592062567755748435868199761801095961045334448404399011680018558139179331686767743276876055726332198057179508953171562370449127269326889137837418551458335183136829695054888124255658411329499110466664602869571288358961076732276349957615462112317503192987683730427485662075605771514888020996056309882319217557642464472544866409543831263251872018960917381746639251090041662757474461221109363719151993613543525189633633292756036304054142322502242094567354730405338937152721828608896819955234771050829088632769526224003232562489374626425890418110717598880419811874961969948780306938177371247304800637680025878028697865836736547201294880110200390467801270735133158895908991498235702423079984431284373551382781186357949494372570165773269965600639458786708510795666539443095863059128696364551746586598164892262478156930905295348155341310660595570083692015743462031188322924332441556277685451591471800403024113150515753612155272208667043648996211547890611060259830360072471963612832286074311385201767618348745276847133881336049499315569113762996796346152084969018487841955183318441386329035676035902203173180228434981744066391489206715938998397127513168761680496359123628920600399989410616450638930688268737783085837484137694211554711542734978439813570505802828666806685458643783927314753363575897967063321111277786356770727005598489317926542363193634741184232748710018498842049191360606756693105302148770393900946865917534127885972033734169259716572018243301148278125323905080138153410987083819165317364066536891876119621215777909455221918433886049115252464763342928092304656302206380681570813172845548277347699723645499733015500365907645745543122745855064808751051165749682544411051211496975790540764693863209243437770792290505141532637884826428273590374017395849861123764684778708426277400888235741515021173373316004616557554488501183017397258300103924084688774430634812373128039115348657984212610468966044529272065649390249731549620119308764280580630464229942162864850158384156493941794916152066449836391077381941601406280632539479718741182576353095731748273494112795213379712899421188746130096092380930856949972241325552044925372459448043795823182387920479212804774091434674696440112160376794971817982330006339129601757756851759840072993892879651561921333896373488379261299885265017551358783421312345186900399117038682777208570551170983179866571808935043554668554081138197141205053356230927631701418818835236410067107065716716989646052988456824138991856914483596770833377688070707175672467317228936180544738247897009714828244773893182531146573833941467077475658432348207064575198333574177703217345769709754134131610019736725803355315456500798647610117626907103849089724594904350299485051368220682436336014858740514479376439542558838570618225678691376410145538134161149719024940394237323623027698490750914934673493985206677450703462241860346212935229907613010605680485960457935541958195639106408567575924430936200520349146496743606461333340403480103283539484994595302090855715149029241602727836581889367990701718853822882523380901278563244436609717040849644353915557465678268480437119250560336401843169398768199906341382551615321504331522421977388373667442194625180152851850496597867560235360343275104472405413128427183551020901803112408488757017493822084239513523233369382929917889851508899266867949007317654463257347100444089280330602074058886484669747257194684337245078249619170889393333349128670767803497021682531628644185943533539555788251024276322126158853888551975460118512753522780887017731576270605795209853576830586432720985635398371705777798830472343076576293412739520578213894990321666158974814757896953205736650827454769889425443702459148574273425819312512442757505495617415748573432271602294241789272544396876192843904547714806138702127502758875123704109932533876311499518803345381183096693349895886881249859128766030861524175104793128020201391849770952803720581906807477897953203347146470130009509585961995939607733325437090570455706278551537773671912293323040002721564090662216599670185063606268662928735594694506401433055668566761823976497069153201260823272845364861629323330676542373485926706879924591228369654995661851098433740472843278359052985109649898542409587577015307270301387499833634166874465664380010679374291896799754749966879951396850658006714442121584838007307011910957974919515032908296928231796509321439014171962965592274976025332719057051267973556646165484487690211625685939659332364888233161374976315752004489715462996150288442878738653044259122705689355056901749699205559963378530090766511822879284972145048401910254570858697664870590259832908552349626391818457901535399159796917038344050164788414638381598242420005252864912844997744574731537349953843968499093454142511726870234431061713671143080581982141404122360828916328240810478836738934925353789619592678911084124020031033268556566399755075741456281692346276040582606113987000656388874851600675436072822273231184000399623820626965955814315920163345811196689070454142385661372926324168239674550195453513244288412021590464458101614418978826238017661939328158794923414072879875623949739490922160744214994039073826376142024395917571633637468832496117772790229516967315760316103323130329482737771639638079383922233153362687003910144403667468694435981905276639642291671796297991801780661854113913289513906029900300784030576721318678293200658717420920045484291021289085841033306019836919061168836681358990470319869168106677124232592802565224429190495186467020415981915368954395594756466396965398512546638949318905229465978144339663705596088499998807973696496847314991117314054933345236496658489171573627492929378680712445150835536975430273558174365564123479558699850233449219834548528077707054313209589627194477173693461537956755416064444652995641377678497685922655961142787140584733365294554547624272092330876597673541431622459107814175992966433821526807022902126743881611439299265608456012921755533474695388744549337639802975347523312405864162206572038114049782225962694524484088181909958798242599625183679874876331649730729200353157634012260034043613657926797408159735855807951372096788593281774569007575248626913289191514986645852513200868604634971793497375927824197184320065900825008717296282107868557266876139828216039454640128855494679068539635148650897952791489574559973490768427044338297454092618747575914540772846146172440908246594924404601431895435664782908648063864424632533273044192660709158713340802872231507261398288407121337981234235428408140513199245417592367283539218819391228098523673747639304481158115041049139549054233287852732759503910873376424468237748981007420355280738787762142799553656582104937525277247146692853731034682954089650192912526890555187112126669786489390287961104500122186869833295823433042987011867881126888310825165674132006619053040504623614142210250173534290678697473990465782815389845457353781727831431814177035919661399777271155883541596416485729419806970185307019258543921714399582721181593211491326243953824339446357251628950661519847136747112932902981728530623775900656805594592774030550204491815528575136203146506443097613972287476178392794152202999587084875786790920069316398788982642945597875429830893416563169967754508316594693245790439074532861483937048922897506646213448287556595895435267737379123797962743495516803409217460834943247876896634578922165377823460744978157726299145179916722808474559420342101330733794956020735452923778694463212955755614814673421564480064424763071330559014317247927345523136616307216081108900811821804588579827498520948286342066482119102502037047083762987877932726153446534741891956712917807866687012003671129713964284292867323009864406900622434214958053934920168024704036354875010949858378463637264882055812400638976899596448298105990184445526220922294693628315105640523391373271269834749147262022959840057504339799751147520317871982828321504086778009225216996709397102879719664388028987620504586629420537856038308956542521385244933165874801661608263667908828277410741359637120390554954638384328348815835727777471689443826611291782753064509991009024776556918823203240760210581094460574263326718321892600159426967290344466228423014685444587798803529623444170918689740267136134886695388688383958340064484521421322468090173424853135124106347760929570280883043726602322444140867011505966807237943266668875686861987355666035933072983448027306750013991519862672108723468076504328301720120547715356559414860556199399642956630157552265948795866598992702511661062628921835027579348216903121996942582576899211001853341423758932689833321032989080932344076304844350964909643251463191397092541395274968061251305636967723462767671521184300944154602382738419796178601664575529043307453334728570692366552750543845791678216190887082772955816570469781117029698233363131909933692533315557631248248633495898763681999862976454414775090430366696023197292482088125139226510832932837365555806128149294665999338471145120564661331409387413440815729539202122316677703361602776832209786716750847327538719781299516176698984522277318477873958562582157667608649922690402707023190335648564700437790632759345654134597942648403286775620577970005011371582342975995789064107143152336794387094789559109990562502523255228943437435501877996798233448208705493891748493939729655513189605260525917108537468757363539045788838109568800133389284990922783052853875167173210288651452073143109916030917308608290934028657810954166384004865023699397423338352403052238599079196644790209871028707030434220017417484111731901849516558207088320867485870322335057896359460642565047037764927428332325969961104441516098725069047887014122082520406651439125761784152423662604346278236164091439327621913532003916811213431474670927557363454821180688265644745927090580004517681335903177882582502836183768122302002402559763170214845993642829853414625508043649798130362736181177024682882599287847609928588207491555042403837753710658424616122539934851363659506321683612551700101107564605231003431303123019761203222835045544278494031548435136432382567120080582843377509899379107810256671342333363369604028737861662232390345332446001153055787941485212531426477347789017104432296244892938944514806261826689164117800498475307971284889818508351526334609596177819031982443220346897299484078758311349225908700252347785295339578451422654365130629595061513711259460239256650804112216390803348252364084795393975348521416881392017190574429955701028483788815176875640810502685098371201398127421193812395252997762103735738204927515381315931405931953201464250034218560575485877930122619003175863509777074019065067760677913421901616555978662542113665782460343523984129185129551815201148634992692846400193773545350819106848948641107818868716850305685626472632115133778346932673049005519122717610882833586115041201633216264973147110715736956191527860631510311366252564368865664649287399744581427582596610603282512137968633327212969703159563676338003543691937994311927881534781126757445790066728399722112055036139056549974788971539530956899176665881995733125775898588198621539460020129839817639835716725934654607797267996431482836410159767755442745929476499667600542837557145654461440269098137611415904151226886196460483684156790824069611747850525347236964973870723137050879771445266973717870696867034801598893762812465909367140335715072650644986723542388787227961155301152726481925029739649491150121368482599358260261147825172204504584493340863510114216388212815553222741323383355415448091531482567864405664612924082054281603025856819191460389502350063258422289197533904246450831925078048267611090257156167432175509377910752498176837858262842108813971823362964329087936274014210846870625859427910241504872428528922521938305569768965717631420733237151132095818395816589133708385335442540128617126045635970700946986407950288389920170883202702287617089859251677214979665942264608745057453054185133172035446557301589328914874411315997746974831443526107142088390360548898143029321933130506693779790323686399961540676360579696638596205805650010262722190722522545585627478012935414969098992382951622979595358565597347005735989392810817027642392887651420495225105962680007186863802297965944221691051514759496097836482148997883295524801323122361234823160021975769887477502235398483744585115444331829547994721601644502866717607894781248183397335745177453915961199185573609941344065588002935662177767141777243070328029826394909909212520461859465940128165871666550702552062573621336134854640190098081764034471849916084900551387778423182995808201862874991516103740432506055257187772521508587203748388072641934124280841608912056233377271014977182220124390521311309225239692281117889608138744750102995405625432944287399345853047377128731414605071555040438935921385866801298137245411427221733145207130620795196859845415079600297152812780042345477676556379539425105910418299060761147442276302992668760613657825015964132959386304412412994304940370773473700515884571274145643036574992913661249237742371393916195090522013870083203556796138102707601406229508159143065759595937210120060463842622392579610000481004403694274446071985965265089786470112071229336017036426133625363400136785700522570729838826064016835330062072141082374717008345938039354999153829237898612534144392914417562371891891363732214698435214703595032104291405301371223710691019630709515644272868980899927976006446502786611826394225080586375889235410063724282391348102585122642177186178804619946168507762476325571161867444165676047444209376170572776798455828270359697050538633171202652158520993228024287956255475011430155966042416818642336603497422209392080603942757891349861699231526396126365409576722870361521952477567875329765308667578745546302881009868196533900454385984122337956123350487290865717958589570901259171454529819388027437490064544254367108163948513341319779902208590545441848851827986762402224461893780621500635141135649363295569013846953516966783909574895907783302068278894394963684345409112205102649600870065985709758129097501348157371472471000768675187562685349969388225701977926149717953548668926099938161135803245062308120366798254516274396286021061216617694975467714187875297128695671531275109489961131313344361966577350440717074504376051486396653712686739319235465449282307867524878264000604401930153291252814203871214485282058387653120405497765001284307439239841536385776677741566020809476718551517523194829121538722620579538261380349373073249534086145284217120702368437237700937554160975772990283731893419258146514178668335745945935157640723554490360241131076902591436378573198078130401472831854815345489411699167913785221275316078216853508562620596194438510957210488289664030285018649221174480155481526163531111284831600823342040541865040755068987452484167950470566228377745176879197505996356167753826781711643823842240740333096870471093899616530028439802467015850572661764919051636749175656495992409178459542744053304423931066880343820282816484776664125203660725024674273191658157680630263418257628702961864110087365223248974035291821782999084743952634942389857109728224297480213658598615532156464042140381395080731525157359041692557980881341695749271178825805582248187309817394964228568911011067745097540403893291188482804494275438457483696195944111944734014958178640528604898121646383721035077373771150107298789723118974535761439933224044694341823082196900147042860724315532071844283922542123489940416392421855299255085953672187130001637582864871606518181604607553414129267828030485261174662574127499579723572815370666550158894703998384820669131093394308533736516955924007667243766772126109406926400907341950637568251101304433138161149948603308359602413996364687866678825837458166729628401052762796656468795083877621122855352059804863410207066235799367614812433766151476080788686622325480606756979372286294224291024217353997022167511684108557204996128697340473264969724970004391770224274297443163936305949236372854610493419755580934313108607907533531250055063007796000135672497462315565797941037955085392757729649209004615329608053544016508336770093179741405964583970782899378778519521083507259339953144302340016654384309483257595789866855834699459144157197351224164666625443105422332084934388031029088657584463780518347650516990044996547101033354452095652530843953932631232913152153076394305897093089983125513798287807295089050062434672245756805298388725647339357041507715848330094108137145177902419299155940437671643997543150929573841365557592830808997386077556241927139094091936767352765690997282936848844505599592972783390907941866897351644390360563980536555415767841814131292105419048478619456218843457478840638429021641851137145116773680260620582002543570125591583493886521227805582987131637461855222365442702906350916761313976123297947873687165056936937579496448156227930365320340824375008952979684652261651409570748010212156487145790164022245797929804959238377091660424714036759542157766175986411519317635059750328939843089025694484441961335864021645303394324922023786167880920719892230571891395817406213548316869483986025866909559019482080543967891955645851647037027268390916511201910308750345677682702095494980915977740674564020871102708091830699011853869141026099734423486830796655224659837837676289187501089720446007667862766552052308328154026267958704633774560171143877722312193729662887905155243617371521119130488626036125196701218298070753357536506711155358243835900709312359280772687035925036445437181806854909739553951058827564347118420891794069841120542733971872387017951020705673370550408433779160258790165140844359983117021648366787215863352864068817931292707103994100764675141354136855758289796780751868105852216826971554527950333532331406816172934374535242348353050162840448998470206377525776377951813704391688600724685874484887823951111806869910018021362779203433696745692432431810029320822388390810685809647515211684771273572103391874178678548886099896556024236184969109749670482474254324874727334276553664578140842674925638918729899748155306919756759046171838334968504407896800300396789686747746534005418975468361213937334618723559981868843836806005063036560973839337351816179770054723326443492585857488618173535238886111316450027514702068815909096274572185780315272892320287911305434979707150533734723390187304251918191074239178564111580604826814362060030910072628519588365855063460165549865710337447533083091693082975163014882834062342202560647609075192635816597369890979357830452562986469901579759022988637621013735576378181429395003721188628833174240172561593420203357806537311286004135997116510217681993475125650815257389130229656783518714603286898709219616756509264849852175284046056279605757145785024971317495092167696362248897004193738059628389942545703396928104151121066965835832712855331762657856273013665067627019598131007599774590184864888383918117414066053116495997927820833680048488820933711188423004103715418937259709241424349808586464915151424323110574250049814946683927023697377851541027211314084125658585416251706169996391878406279651511291722273237904476996931582755998367983837699680741881468958491452945978752812561488490805117356160094544118327044977384951376942658128084975243305782512117935488952743201561634566218642057605025483145558065357842853659188179984726277932655485864194700722186047039160742678755541999346605804286962937282935094639248683963381371899607625898427175967709517774090974599452302752306603178966579899989218656679218551894802021627340489268145529318609432959164737466996883433478545896136792401688145230581449736681640835959841499433839238462356720508855926980202860231571341227169275022864838372482573666191521220928266305696579635105823359274632043139820072112388732945149597264637506124757629916587478591598705294182480227022814586650662617566090892686510878856876570860930592214320236297753624479316164634020022050552849052346945095430474152481098407836223211819253608500216197051051261166478496689059608193175014848107349390281324181025916608368584985216321040597532348984703716615799889448668156560940057016571914250661223266931362985170607945327574259445743296795220425165241831608098344438920456100157041657370758734487159926443892664626037277217554764201147404939189722376794346010624482462773530738272238731107625711685922063122383331263191164849464659330134748377260184696404623246771543053424526149769847135531698083908939005526684497666856345128061372948919434809306444654573084414466620691841150813710674072218436925584122203255302926854236878746332460621045914013539331083758831928651069028383668261777356535068895088763592998897104771895872408533640621602639457938321645302157486533820629270974717088280588770496527066589191095297213115883712542029697807837918279908534260431859098436623655848358227194275301421724438967429560045125205734887127580495333429317685659278843581009086560871510052053961451011624008557838799473258983563662506621570652509413297762347563619937822021547191300487756760372097797355985344017420211635281102368638543881197976912058032631478450916043587848180877083317907801379507925438097096412288136766029503059686504277531319597252758479334379775315197940331420388704829413075336435428515242241777175864396524466291584338970459109317157293079704214712790546868927563118135546961046023216928494296220106350398774752605828459186049312496225198263118864035565050184833594407654920366696163017409430923438072857872719617405529445350567054533258914235560440468032908750380595214748804928048196738875986282445316110483143538474234373340224001726863956981475214583934596526121077522198047891750146689717114911897000820844987389979148201648905592269941264965766995201270535138805455535046176409072531067153107244785420056171238565155051168582028234548740541363441666740556398863918210698740740296993833156590066441258796034874967551597736687671622055365605625608308064237148785146548759766886221518806743505969447312607279156329426652731049234355886997391588586131894417317363055208553470027994606408889102253332508997876347296715605750160914303635756185905524512450227047476190516330165798605468956999586414615742305212178272828043230000787996181857940518522580972075361538191412500495053897136568908046379274930816913397295488921868063980117096703494529015799263535085833300372987388842291144387857576786969660915294925877141936730620458907365098119227792246064937622622414481545168107827209035682760938317944308242659208468316773753459389758938255419947750015014651282444151345983477325979051701205475339340921373118220115802007550883600374169960938792403560439962309984734370272809696634666000965436106647984695548172238832369317744081768818497667043497922647762599026628477384312417024271381101684182468414414178208978700503260398835587303639734042193043468389655180460024555038479507759405044030820084861100295565879215504891392395318055935493700720237570823242859175232696060144367991499762168695521489384292096749258507976387843076792823870994798280899055695939589843238844843021215167550080422293500392982134468924018078154843210798603004745361849749833198145665146760275835880654209999573404749175243943445207627676296011500673243324077828855671889236363336134002902566131538547581787722890702028230712397638367871713184923480125372175137691337490389026973749847163890205695867138620347014175061672933812228236945300583163564073724505334901005541482346336561545004433390164521307932447543708328093019110208057011903365174092467655348813122776298683056861393104258988316679737306720870429940446210112356436202879294154575623592140890745119989373935877495976186307530954010129964088641720578620886189766080370456533398129235157817297297840860728636115926850766612422901450143862166533633391058955173489147764798630966123969806238845970099022533838267623769476052215181431906037779146630031465648615418912067938903046208812632734709989268824074749998935745202107228987435890883939497738153193545155401077437715010646834256044848772132906516754346462240136433756097953009826164228122260140397267811885761559547385390483442643116652712467172162602451505421165083194943437468178377412376069859692732308110713640631826279176243295212722273316060070702028300747052743834239997524625521319812647247896819846563696876595499156468541287162241821687504383404982066805852440282683877239387139839224987825718869391332986704350230305987702615874752367933089562085459224426893943398353239581660727373188160458879175759440890661323483928843965261907971397305314421548915549234656579513418482882028053641021923321546270080104743985051429509061971650380391417157109814990370607145872753911255359090902245817827596854588441860878217077847299623775419127125840904817982986662187552811489688643515119642398146462287488679337763006659242921847891964996879582901300168156050671829955352954736342566914063914337191762455364024080810777240116032871077880907945946171175490685812130306455079840018092784724085345477862327159438578004671023901020921350727088545995447370929796846243285570530881047074042041169650678140198761693986279267720121366254610627058262016877178267319462919773402574640473980019510047843337632783790939083933294690452654983117560794649417252096295241490405522222206706193766166924898332716622110080370419714396666181883732947566080828765245556610886814211345009846269016621699367457715520065084735960429715289493468262437293078779075361556466252939145796176935793540453530349818312728993060209693081419405727843104811781192884643930152047350438062822228442184866924441634744750709086297086983986571979516248865295750965471329805441760522890914284705200237559070433536635577942451623248087359403927750595642020998698222738170023799054003556272533587733284776904176669694603408633847800771729754399053632795632964781057081799276499947067285094296526710743494332179260347166377355823676320343337407725160251627703971847874260462870559112449301802767455566491517346544756991352198838159262661603406606346058695588325530008210607433606537752947021003245938665475344189148348303669832524391710922638909164699670176335462699286069242602475895957634413885433787925385315753914187685453993517603762847963616051917994460170553807665296849865807583011232571069048969286346612922562274398849456968461176542832030654555233867327546064302070722289791551856844188492870964975087815947154921934455444226348419016791707023739171748836549652745311727474416996187552171782679705679097661637441341350564909395890017273212100751946941487260165457736247995994920065656989001309645629033660419571324041529450527877613664157586677023841532462734507505241916405910406169029874563907799928808407960998144917895974174247198386449459382768292758028225263675694742543879188571069305121375884858962554497615055324299817789427378172758565441510951406278159128001718681614404378268179944665200993132422671408703624711673948492851666611116661804509227695602821723597016627027433408351191613134744080309196250887908877295432818764862539663750424967935395356734218880666954496843488589731027158623819163803847033490062655740803092594160386482574828430951814850222594088659586213859735413948072647401080699506694711254886762600270531807540752850500546267321620367189370619027361924395828528331654691065661322194549898896804523459565034506125633093356060698840172539349260910684704183611065896449051914500728609156232781390919320504279128856347308270722549500979171382786857209898991322790858759257283053915633147883374720224196279902551199976772744929203693289077949540406782205704153384987650318504435355784581171556642838803177440991091905077876423238384727727569301027703002421643375973092654098695692984613399501765482025052704135653652312941417469589233557142264908282347504122558472645768599997033288798074853125567373692176543456339311324133421012690149203120135049218581103126461059720364027915708839148915836261414067901037459565734874614803744789712229174729851277859453859679562703952752429966115419861303804701543529089346014442482984894753494062902015953508525418946304196777080070172031933404309568589562752926657013216401281305738828174598790204174002755978073683714907455220508659228717756456820493588428063485204459190724769641307669458083134294533045630360561091566625749749938998570419225658965488837746836663021621825634267070555118786888456529778767755968870519571643036056908131577505509044566227993699257144270017364125448306455550373990521928225080278214596433694915075262671343455226182666769157797744703990949162978454661344093042826375472020547436737075804720223365753580608692372847090558010017091012007404803263448716577201833181788405795864899642999631093613361894448022422749363584923185143087652828620884862101374676053198800505618672859839839835368473342827784229679976599031691042514751090011251248670499264580315625052472188865254111051187705444282721390534005494366125416712259717582039573389932859598998869302045091792733740061088894441254968902115333583359522477850459655357314514424465683304652486655459613812546842403612014221555940435056468304558224813808027974092665230501773400774637009259329532428241687026784501791101817444106869047310896657049600509293918913075329151823315056310765637414708670009196085865798435769650030699413061209471912866259034603077378366853490184045031102262078877624373165347177076992385929263621666079613202510139538104872094599491799151338568085978524807893088882710596939574660558334778020460676776683263957312238052370491437093459038164139195082145360863913986751474264591852439126895797832365004553268442920164500252177271869919936583680982340625604027286708422028423883553537468979776545390426932911945979224017741146050955167860353661552930820645243589012444468629713511294473620575950859589061948225593701899887929350378255465794690726994312964178613737475492778219961514563850951258954812126594700838566635065356185358706127208807824136705657751431914589054468005456678761537489003421871513490609605398959752289057847299417538066643105741484802153026200135500078580632113078030742459708936182540542913632923446351659729137663141388892201789771893705899673742470563516214932968621225311434471284082220200171939188911486580629007648040883857722731540653596748021336776446581276457759178470442103864891523405505906271653231020668901557339617659760367984324272523843690115788995782707195630072284806187143706561165017599544717551047572371406063848209340539614064501000437894708086201370523121454849793951609540998061470899537559427458431238423794744083828631475430307199946351402273002533773987425735154093863445060913654892608354816480998875634172990806541754200115385432838098980969733322852934618324708057339265901043917609915854146209312867173659251538551735065112550850151507463222577965610863334781566606151175869627366392722986143427523947719936838150348180084958765324309976877209355288101128791428075703300757609565069315301034724842764017978396018559933413129822694379623167951919726975451200406860860439975470140197724469184646403631588052674743989486195081708736790403177280879278938811249110059015426332934397603994147322442143700028347820735318200083597522182973902303069900246119356073091468440241248772849524396865456805723146706221196488761107842231938914055098298158706915260240918880847354289591315670266148897879058828871980818537392009878280351885528118425157054037755062408910111454378168809359119564661788503344810079432933617618678252936621222989760036756661001564122761833272841816841466054711498822933782811060148973142224682499066523861886477307668734588912085379714855876162640600912295606846659743059288300944337744484797379558839124639819093079494030033812503370360982317395347151328974660848415862119595367728238245811972691474183808076726776041127066413004810690259322330762197228752796276968082563632058329098704471613283481191899074184525443917397326454213851724824332661956816448576860149183050509719328722508760478697237988020681125728205801127491128788209736890256992881376557766011747145776364331273065579032894386246949642103548102482293585139939574768759237876625143858081685564171042273980887453356307089667965342294718537206319485404370020747786008133711786490621113336566397999997020669134582609892307917580921806842616809731121447731735387517826812187325364399473685939529310367344668263997094547713134388310604003035117974614959792485091968680709297459243543613231828707768490145857705492531418552741078052196815308437260832003977772145799624417563371296105910968702736935636137333737363402352088404641003222775475329465805984534229390414978313857098159671470237065047604078895900355803633699158762649573654176475020199841082073646748000653645799371830600380066819647347051684873694601268115641367248337603778631235746167559110810410938423754684116731969475097255424003756201915980754707197551571727577784334680675154587194368021093979359201155366421629920918483120455968111879904998404477564909780619476567521266219757499683002209570689003066624722036562174894059529668618579880741205813817999729374479249918162215985827228924644879185560574286071020038286299830525452499354445497501374984568741588926384144425228289307767896052790525849391768190432540647425844500220054022308111528364058130180389619568349126521948695228038770786445377806984746140708989087802134340660220074899040575422458793098135615543602709427848562344761904414603009611637931925457365481300720067714676090684697679813576961326698957882758177347212266910145788908092778341161247394483365398010469919790440795633986885937425315827635719066915842665402486002190462514173848888779758912407253266342968932717628075911656578946211102783405357082560086216031704518638349337493536194072356657330898883022031873386293976168087792202404617941139117041995634015399530713683459223325552958916443735837566388684507009062133034676764073339850147443809095605942815862387201001490458795406201651895658694740688664974620697185611066128827321949777294443341755327030913520457421479560614638847962291440327424598225893817968407244240922839392037075714318181457984149305416562597513326088790295176066329989509499638062844871518635412215295769371056917596111541746797579001847120079021705314597918769790983043015779452083529175248372647875698020793798192633479279700939609906550420727301463772559973433111814338864460658509141213276309946234808732143356814646788385852423809173600635640900351220950132242288822671975038050220186469626243517424706891851248388197067451726427067918974238400500522763280025103671075119308580870226507595083019444593119324234947306837951984747668869000552790054779055522108614511319786625026398317362493265182527241653735088155059353130823937714778376541886078331823245638317290724389189171924859846711054343620585013246165484393095365973385066584599541400788082335479351731157421522451977080151456432567661346333553509024469211208534515324102604798853619587724422522882308311209300604386629415822819032464409182187478987791669724495420726483309095800603311677032230462015086696593471146534051523242974431426968479156942083914357000521629587774201628207232254833297026358058653850718469805858896460131467425029072635725348360909749030829894054493034431035397332226315031540282780788296084011472794822516510561620878163473539718553572300865903017794809001585266993903345075921684118447902963300920246583156306117703922550889915722699716193113587602279777428471383360865194480739255531144006742548764466545587795455242859300812874581362555942169143807334395191084335306978278006751607529604579512288390327044637794545960274956537943448912436513180228751978935012130477197416518331959380686463048162519078303908612781152845680110489612287393828401253904306848273711616647759802865223700674905837620187812169088129300962993667555384961393551236681478117262629997799684551200297355096077303408422916590316332605478994859073022073914771306854737486711594014266576859292321946580773509405303008172365371330375101175683022250707109819646055443355190640170187948466565130147374756268976145020055574978347503948507945509879402369618317069378250563996501783354854492043490593652063253410345385352411162917107214696033116738700598168757350826754717422157557405801804595093434786712074737722293925080168120197228308513298449077140753992774946326068942270927496343108546194754866404591055890451352208757712787964161389285527917654109437941927005911100999033569161573464150098916857475148382157940667952355853138519976166706045790522151233458818664394800022647001523294753990168252226996318324154319329522209267938959337259414489338987711441479306311846090504023337682701098311177370982983711875926208873137684028653427674390741248063332173747790988212505613740935754072031193210985107161147583937391168883824479596550685692967610849670976694243365274774638441955655305238082802716054949427463305368204611314498061582135832727801146483551515309565930110613974625604118127472705871086348574260176841985560175343422493105135003005894970247384832430072936391316942147085814523876718182305354354639097933953506464194799023015010077653143287984773498322373629507634641015293142426138644020934343305912275456874596619727274673674807869210524798464438406199893593895215075296286198541077262052048705098993860386229061594275239557631441110956986531891548076558332529168740120094780777058206049391794216001996062296255150117620873121084669298923967418522205112057937471024985983346789226862518584065141763311028773943640995676071955255771513815875088087583018999252715481779856366852692879583402257469670608555496146305516306167048993796167807821140295351110759630918754908348268757761645815313428581540773811030818213531199724673395290532680315330556947145629795964937198133736379377468301888849434861452693736530335423175598292226788656330671589282124769556144054300794609407828552539936044785736950441512605224367755846220796116791387875584498375062260889742559861783406463710118592959416548088742312869296754157410636048678483025079247014386942999098333974387302219049345482078824934940158033847584824393656641164397159663486125183250985219849638902166166837622705894741049910089915801142114617205900728375817231927609708606687544159344703237568949673341586817811336597906958013577868781358578492232595316524192949451140080942052992220576567254805626676525620615130210674898816989381386529920247780141159403609096183312892701601224016937576585499509811878643947184509652448351217568104109658392334143823355116606722409027169295210569751987839874252464693793734927760137778539961665127441829454189955887133152520051100218355027700639071907787073448524243963937569483527103679990738078794876109109411660297765106380264516211949044157110157060649668716917842696693300390264176466479553603205961941164990668779442223078706687098250195266774874380647122871843969135302045335811228536498536616286929507220873150597369910080631779632401398260707889578188857699003348929571988615240082973452672968140099087848043122016094196262185165247686324486963293035416485344669552674339748469044773992872974562595075042048753265354217101561385223869146154401393177933724805500935508997256849889026486348395492843198624966972386554282987810638846500497928986273912874049908427084160874308299065467305179396690714361530409740330338957299444288160384720177562724905171438046405323310165670073770707943576921224076990161334585717096571977970932470872107408574493105607120427522258837573105044784637298571982646177794892378821940145626975359090424511703697675368265662554652319881321351040907306397685365062882197612565201981281452315529430079079229843791135454313418128141568864066818173653242327724404280960973506949232778937468218654754673850231925557636092943153325281054531949585025988898993821309397039562554433335186765647874760953543253840148348284454234842057126599117971944414623246393345685864240026967825753280192212404184303528272594783213969092749955282238602510092989859903831405354947399845185660452588400767043722198488787614593395177228548196679397112845843189553167664864351557059879370824048942510385170793685436416342541464251221443117605170651199438664709345947613170318083137859101212771001961019219663869870990038184873182919151558910252542892830164336208491528992847090397802344192830498736463602065380003404007953379312292972846242756689588658931769527443075529883321174995123473984856002323184042572548666343460744877509876258315324861453156653691322136315308940927413765882033765052955734352359260080900254883873753730451112066601160444165753366280901042848314778343804488941509091865813653840386352767146775156352603503327584179775805729997746022899107881738186182338729981254204777824930602130866812215106078077173061983663394917496247676401234518347454088068825908326733839038803121161948028393348213746533945785846874420158476342962953743611520707851687567774407376095246817001103745437731868154827507322764824444352821829298543443151335210873449414396754477036711138670176651467732921193775994179744811705371607283974203820980172449432547339026232798880774669055319839350696887241839241859604329371074690068876754211603531549957757640967992088561003105636162362190385199926187832125594116656647167657406979825355800994568768010270261632535224164102301980709417571019994801879544117843915216727321030719001248643798951480496222515747678221287236217517652729974743510618657737859048646170186221580186951015637511831038247990152867920144164983371778569054168756365482915693643227244735105971712900538904159208788784823035288257664503451853993729174458601290303411123765814412932885558598716755666057321733343713117494989261666029213749979081323837944508010546363539169816016724075011535004897059879129369827694957612492533939354300696900465510714167441309364551572643641000092647035389239900502328832289196580449058620700333533149512948097027290691126588104392166778644215839047797261653431015492405414460148792476611400048514966407935738643056634856346455835222631011769757525797284481406354010783230049064135406571177927341399203525886782191639867276107008601908863682841180926209072070953184711854612906406159209032243655647590814867140969303924199174900143146476421538892682995351665786166174689717974887028029858805867669106250476054655252746708062605600714824745163603040311820835842353827421293941060692945183695933585935677773208359749260950375717545041530798082219376549854904618013743385525434970217293662205689802540910543445839121165578148755486282631181213908943759776218205369525995469481908958755295239944447816865781002304939135296176951565837039639517296741800941997866069426385172899234544777407693748805555045131251317583424516233430462031997903247000297909552401566778224091175691197726724767653042038176146664317636954314662371249888891440257392347235435273831345623233618427874664908216275909944834128437325035991816793393772816049955619637683013755705637520061760396165843580967325982319057204219318490901645792948780909683007799514344464548530532913313848540736854884554271495872705783340794664996934001113170657356929642009554232491003942052921525626022534392619355083861014332519727370988644428107043025240354943832696577238604258515340204270972201081160220855931756145378243574052373048070071505288552198959798177849542095734984165353605014586675228909492373655697206452635757759552554083253044792604345427918076101651136207109207395485110549426270521740246784525777647990151163198731611952869220817485518901889285805927390187443470324079408619045293644067601045048036942568675207966310518507385305410320089656610975151691639054821331729442038346335202266889039701169268488894368775500815667900892413667289866581685670072792737531780397878259912459402666188761764688995428599057774753728973120134864574808258598580241081510508352687443498187887411170320436235488643849301864673378317345958867958614186302516473649248808019503559190480724578443963654040558746596043842965826699758307842964756820738086477444194269113867073000110972740802508906271342878166471343470649129034823138049430096328962116538162879195729876852535028818926233810910517766987243974220522901686697051173069457874337610532335889550926048107523823971653035320379379863391324749183400743524365657152697525685131580112579094883416589118049255231549901909246218571816229755663823486239708112670463999764783320639250955797602396001995660455187181782160448894582635623498525288663417437872644049233318333871076611546169829824595653651950244332787937643197995525835572207780407801116138580556113837235185175480046209578065882439121053486246168260772014836345274172246114935577324720957675072487851512803709207099416227082055535692028149393072395500053221378276459206183632006009181725203180846135273728877492366355908889498640207819268306709323453300556991649467165288816031377422013557401397542127865841553016167938749127383583310406542682914100394779167815496744857021313366020421931988372586587484048895992681538837646527941752177218707185106199250613722731134869836785939250683503009856027040974344426413477132673274259334740054003057824240215174971086610679353906626604317416468613415825525082335912675355321049117174873219162095480855874547322353282791888208672738835444791367872780553099129470600339308505942340551896972853657832572166031121829940999241406247934060184340384516561028519249397757339222094215613637449350447716944199223799228858094727130809047732375327488547228851899008402420089452043327298224494289017673079498567000490520274228039394878663354864114074193878620824802237110954328026015932287461379648401241084760097606783254868089529666497139936418166763917303434040696595016426491485806690470860024177630171468144973882198181081931117833493657281664143055583161161632418560040432017624903747590939516404000231334493872640758332899715668263990220905362280793844051737784320696372643268108457851107135333166855824714042389830545727877892633576023821015727437387911120911743112574531675925859139285140438214353608273120108782340134070653438439195833168855739470319497888609797179694221506960075941738464994977002267847445608313368607893298404968541305906118410441442132199436235054901594067984563200458697093093986376117856274391969130638820398703394840018067778015974265193989031965933830335025900982797468851299900570070244411163977040783242383368247484472232292763905952884412736869762801570385415864877731819143275507753051482218372672089142312800732533870895003687990093418957321399940695058371886568494175804409417430840153904954789544754372130404964838526343145343026554512172345475954453668604185582789365410067904471770802578031450891456409293226119036754898243206617045538526131143702487377223402666923789607543158469787129313493150208095308600501869342371299125103474799706691267147586107499845856547089820414944513217423999815183018811547096465508096276241502868189855312373306516082916667362119470637689839465840393454237613868517244919157020583944349936961074754817202736370052157670992744614594063627816704567215554254944494646908617392410267004022009463132378610429888086537764911947026962680442391914294905869624310068394975926640170485521436135496988618729472004201960271188642218682074218461030162326533116765077576690067820742467590189824546923897401564116150387139124494152271199084489792325360989921199100414404743290761747073866498743346043465824960157527109491405097891221668998437992974777538239900649147560940973059023771767864886352959171864055107416287717130531765505246788867839303984578344357043112742978584367723301293940627440537794302971260722733140671465647361048501200426029880469564091292141127312512331584726228510917218019635354730660113594263534072472340186256163905432348233831352461434940542582710957826953570377579342998881089843266652137097852488546658554867386967470987371570302910583233276435534651352132744836771880504387454567229917354707238209251963582774483307209776142473268525629489869043982416251946482114872305939536045796049640931277221944231262787967410817213786243819682370446149828006853956873792649506491112448716994746875659579900240921689861732948365644153131191491101452373345033038650550295892698676808246060291027001215853946663838377915577648944628951685093817591388522994364933407732030850124199637315072144683221522012893763715570492923040969938758023163574224335597315420008918318276473665072981995619850723307081010703799154627713948572262495534249026024835774939376052091212010504148135489578836621287917436743974503013368130194498842084369631817874498293676129912247295531104505954841956336370310108060680215727105769182488391858647202859459035636376737925886230373188830965208050503107476696652609978634562162059527482491911704660831515964082604215731510684201180294266753527487429508841402163649787885023762706319734565399667435228640656112995989436832574608310354447211684479277819740446042510091005990830549714283517736125228039970214925289653542367480264907384914115269995570177997600218129701687685566464927806462910511051519842862582841269427848126849650246147547317266835731337642473236393875895995563792303083880719162877738430370868192977861139436817671588063490350997355297660532406890570343024518720075371626273378144561608272321938572192646104062680088674044096115377339551842367169821897448889276591625894390386476191184873593477787250294611829886804402132740434501903767213050481641395394472378437230095773249397870937770362547576064759892651361345470704553320332144888155338362891559278674082534138727522171707103751315849993420838754436903131447234885605226740745336611743571051736332875779451406876821018953369932116697230224742250332773903986499796409446361856048142807854567762021233130717933211387471607635842856141945085419684053684977334491396731013276990989001045008946698572655594207292454978405286598589757816271124076423522490299778280265339903599461656067775898595507282459825007200639478220572286967406442295531026326125389164546788687522114720201397028912445749063520311545028302688170911143267731514973812674367310475220897291896861429995292402768631982115662869433500750589719563880316395688799619803290584037119369713275173758006207625150529304484397666733874303298455647564128279338182822035713932513478167404077635214781186694234043015676156095362463265902657288697081567386578651841139956377656352253216921145934573434276419305658058475768734927018909946040855893147893514503983777737057548485152480324594745499189998140330540944876321139612297474191216737892297585408004494921269983671615249445249166402898733755352539992431419659776020913266392583037357370264880995647069496540652031073955059731671245847040138719627402244935054852418414147817341828065584049829216358939957811005066173110732003029376914058901288488936382307308588560433890918803793455387964345885067552225417916380170978061351312330838263030408573012022968446931532105141295384082013812557219051130780428459394097590574823219034762729887924046257807060478484955194450773896850914699714238947119379491090031963241594109442823340549147904194600206586124739117071101530527352786103407984002403369644438690347394927252919468859813613363995876271171968113510170183715649310576353986286379313158271492859574222645078553642544134250757894118494397850096647716283017208665145277862441725982205018564371106437368703655063192785731951345081610697097355571117666492422680030029672374553860674290550410247199276177333759774618352414429784841317872954924960616089941691464261868333538810802097698423022453465613842491087574515871027173847394934133895758713974339454550898967109322897986463727540595879644706755400144460579017672925146888561987558240028674563912900004935168881829001730012344754510986848344468498476255792908204560791766804130278783810215893367903609825468677072375367760894629310700230735902460861715749469025186925209867954653590544618236120290113165976384689750228728383495160085690721543032276337828602608752142050302464095907425364746084759679566831433675667723499589842134127538254841177143816924992950102087995104029296170785808448176344614693327325815179181004930223251368725298036732348995998838966314015814845758477650770117921596608550663524757675228502068439061411988026860857361979020834809569859236631373440962832594341667448274598336896383616136634712973453613704438384170388758940661659748614823043825359655763233013802152632248013230005588149437930534634386458492876475850381604903980154352718269634700023941172473663638356966250855194741101087992443186236935693051468725271169255258623378806675266243909338846342143057270590142131754695819425732319536709405412519293898888077873236948410361817906056125062576763295305824427670465822464854358142281073939202387750670599971800337870406071224371842702435568275695754143378100943262823297152370863082174109758618704090125153456717921231678849975928256975474986746690244337451755233873650629519541118042617933514233500347058080379432556635533459219089843291642581194539912064273293118072581078140080221336162951800854075265703925536713054003140520606737600497573684629726361030028088392119001665186120313959188068175150681901456351287671810886691617558920440961254459530695419310692784295596375856548207338067563475431840717643040393145541391618711076283087353027959030170894208088344741938410887193848194442155145742586240779497452552966232357633607112291895518825889492742982304959746585451981387650856393401006651362482956123137297934336173942591623386635952719194822775230590896309576062288730405892054270478312624302764093611754651541507221734570023544108245197574454484003905385472821706603903618796917810561721357733146378952097486755620128678385635463704766265124850254139099148819975871305069314517835132990678112600606064957477604789613885277880752428940829140153456794500501871999076295700432938939448448319436943162543105969569514437762195772609627402751911250738958034852409839639292180072123024605465119923246715596023613802624654633767633745238867355866888150830040022962738741174086139456995163669195175687922978850400917115989899674707736270032652929922084342622234059820096458532926313360721075521576767904027168938804871988667081362168178564765292026322362834463615594489944160067093177070579943311681654341947878883690515011352888216316323860165580660391956635594208207207520689442535655835123566828898923240967492417663828196295170380849033380368478219588546321049548143357620111843993007613579194340428708182366632182321104123086725290485619369430653947622358105242737834431898369143013971279543464504372216500477122577020703639916542691465998231348850225535129935264411876225734443728571655306781545085932013649269832005573807461214182377285379068830458487557507078600269816404011978281045108915595260491071428762424287974420831188198196833702823024675380790582742048856366009436643763299696688495899682209681708729681027250382424611625179113009197652605548945079793501423367414809932036181302456012925080067126226637492432755039306008648113846713715477118939890848164423714439787109587824380118501279083259691024828864820178519381966095372642067965473422948653224576089421058871160079931284992004710174431285932618411788393735027736195615195259117620691191081832007788848130110032870628841853907082534566260900626022185210200441333872945635962627938277644563291068554864878280024047915153659755062270281813053064984048857979288783106988991163322357570016920016156240327244892940074316922504376281955642667390777436146879725499477301112631285454288197646502980948934355643060328310065794199420745865612778342736773473959120447131734197197080587598792029164842196231690938969854273052230103795270291588984656849151274768888762006696971579148579974780477714449365044808499077659457463654296166779644862695234509256606855819925812577376798129252007888734605237514936870332466335226828874601165000429650152040673561406934015891409292935059927558499702314714227448859361550103237166604573361628842663672228197172707911395007972194644503792513744378526418977666226681740746026866789654494430932808571950321413929388297403005134102713685049203530194983676906174799049487061660278583635276119595926108089810785150775992586591495841001190880825016188102207709216041966963742619894723370778481674213230311982314810339185905768180920228855216242395397467869853630554079028511118359786567831136829291747393228186545430346878370384715053600504662920835366415838820727723007238067430519703435988547375833032258212980432421081302717868911142237075007104638118112550021222992166241800706678850268313184232215289809122626419728359227586898550143109774746704926520402805459493436807550361797464896098827398611174918067982008989878046562631690237166334696963766579601976275352282598445274582773136469096791190935009466077518708272305256806283339189288871665002327312325866162238020916770439909402736312820404211103517437528234894887449472136098821139603623101779369120238021085878597946588372320637236530258076524754691711734888085139161168250730637287908542563537277970641860504932732085808127119505833395745885696965219840426302836105423365527776473556219971426278811047943721807938717323259238420555388568930354066566303242901618659809923427594870594474965962433903382711906643762307081940264855295357734300801318075479081076121410584087290160014790090677275865111363643788139368320878649258313108621835304173076629650138878518739266641811057379200322825008712742737570816625228884009497513270644048873265109968222121131945013813938095650183197627989444878386728760805899901996249189599337464468925910060946855845425581427177907792906163602033364597738056541406209433551285995026516440388881660338659647886142767094456570557724794494735171903309263804412185061268428769178596691773420757906999196690781928464711023338182259272630060491092671235619532612925182690182408191993002288341275632853111327682549192119069845382173754722435333345528571909282064820158847422354567983777228153228462295320453206092611866053136394362689714342005403792333636158301082202435381021233632589906420942129028926028605585905138913924408281307498704643774841730672074222970087099255647521312612785955957440609694054480431387994199012227313995798286413427495884689030206189235797843387057548031772292551763206615076013939993645863574580783063899991166923697367646514843651893477908403821340549297676167227260004866400177703054581312739698297166586532961180643736606596668578670486585379167789909643685925234603141030835047876688082871745218975597621221455279118709517915563466385193202942106122531915797140561999806838606147376872220660476511228675537310921840531722129623062066985262651155174116822420517769245786045403649725825575270980290675469022440422182390689890510790854214398478721358571709959016062292847664475856001775356854952661424160701194960786182634841039129222402984516021765156944207291694300634489024045991203534191175882639622790286688865016192610037607687610297306713046316914849151521415877547741752878329645753017132998624914974228248298213139048017319877245531166092110297612782821060301857670376957763532310805545196506840514609734074582927823145644086042879575252007081239514204275912700129261491326330647920194146336735382253885873419031675454110374484126098747150042784888133200458683564978774858749783628616329518533952041348092255394869968188095541604124171266565852451311143425273020216296013646651962439980696144324740099039524741405058430985902822193909984415698140397659699778517279564745775800648394181118006897841378255715504746367404477505594219525552519915384781869473449350889506788783858546420538795473158946137701858981834058138709177061266422301500740968092530968265006116333505228666152121698644089940307468254684683878427493630299492769566809241427454057518967513415073041481573496492679818004475597072854806825640582103520884411762064195253654179017242059483752812665425364281239806099171173672156695432160818957836576358604278715995589233687104244385399331582027358145586625514388918122727567278638870514807498653449121489259746076365401073735575517917912802540887715345410320284626970778738276415880395087890443993238865531289829833468511267823025556804190877467954533766578666873164181849210128315459799221859540414249045832745147567887085606680996722315614695683591948248105143152820663599821939345680584132473488431357458462787618487241858946701338615213192461552246287379428386477468891529244943243184594180334183486961540920776200205635339001950536991397070852759198921130509828064335008318149488347612502031417295015300747441310560529412245341427781046940976911813730727978370286794174540977720669720118662710548911028961690314172810139974062356101634907320981566081257359759275539314148751058074264590714330213453714868909234723484404020759848614765029280887463598344546442402678640292179410561096655876387000087800807695062593964913753499014235287262326566325332649301497725590074415904715940754744968520517259082302510489551596077860015624620228954951052060892570552081611885935707825710658778132054175127379443410861933558952615658145322354901104716113290575523784511760011510969027707486933346105825553148430902404416876777101852801244090143983025609465644498487885470151502249036123381065379952824767712567803490109664332180437996595388370286320968725787096206386568133735719577069446540930106559420390470543510313406897507031384164656312119310827062146173223155896592313759635775462131689530089034492010874692832935570357290452549149644634714935091799498650555540939674369303136180437863276468349714535393984253323948532928001601237915099361526901309555868873117852358194199003764813544493956087179347776168925862347544835665475143411304360962818843286914408991697888696793136211170299911915792821836591265058101910426749291831168683950190890480985828787252034711401377817285758885096299605513685486096581615296221684906210755979860970677808897896943369016445898631120439789443794436844053071699495111061422273427976918572297474330250499586881856504490229491351081453530567887816607967087137615146436912036692288376816172810775865078093442891146128207322048363633359911510779058661406979853924376447567426026280863372454828591444101007450716480581685692981597237321029430581079943707031201629414066207592301015165950985047244553137885374266479910163232672759164934790232489288035134830040081290812727162722500029931848686445888926179485192284544204669124315722064448403917442608900112593513944810838496770922463645735995593299939037026665168284655278470610935829224930529597696357227924484993426692075361983258598968563305023553687506301685618921761059836287037507780367650686101685036675951488668932541533967550402460131310020759547628769488613159416121094042528813144622858210095025256261144039894644889764870058452172627727046113926588664808885398017363069133534324703788835727805538477555236139084783201158147252559300793131336708941917447415800048417583268217438296559833331409980224323290503937933740756030504040855835630865901905635507011677544408541084227328550920781180132181252847503752235295560450697722940068051962732161847656725335030140463233545531954336377998749948653525196337488464919482322381617488382927738404059670976062695349944441915924212216130901272972850391851438210197496185411952274324655677689105037731163146865843478613385891088507868875336122367953321131137628575809321455142249316558143851252364045993128036075179735615617842552711335811150214845537145682595283259687170987971344050806888763438671358418434504554037853268379835368311012002296270947997933519857355276517997811941586750820693509342556155375556293249769692101361459812112489031679479539167332696595101859644301686709422422105813970114301941117674859599157740863749011797105886816321017407465517371787841869435541448836015067753777844840783065816159286851432679776124203937925570131153422468038760367794773010503690739062060431927214921200973951971114906395760710780779508058658088227103046779257750729431868181455752906202133539130233111589386162391784928325072850654367138149342795022107914615894302945677697168051646298189656116324687330907358001356173235608427021369749239672820308560955869122049151452019239490561613887892923790970919861754337997276882096298636151557489732163508446415577437804622942868132088577333151080364523986046158477613360434818715060647689582159104720908465317275430962403477076625361536071353770826791792916184817478796215358952458177541410467776078635820885208103337821953416037429826601539183834012947338462389985477165328281976395893798924110467692327679878320072384357862356659266136963422165911705969147756324086493408887046510132092700422024180478919898867607564019085651762793695066557827207619679555591420388444200090888222746543110500564085601850987206214351089941434547828021980560500633412766815652827515159307300183233676236998734956003451971450062303817250877859534487287680902350862595966346133224577179300725064678919518503300211623030473087442466150521536500282803598216879563079286102628076707510142058900917900972209706978845531972991270223244719557585784374241533634562625197114290680176919253871600142993575255499221402533767299783321360568511794139014339809536282508002940658070680398831176660300186222827527694751077704415580536251423455299912038474822230648049797077104742335199446482933763666773404171594522459270524473660387758770445655906932541887831215103573196523197546961933011261533386368934422749876646622640751078223531414343579404167137776761819748541087283723976189439780898740578912990743600444694384432863802063966478309243892424046699194262596134443221973997567742178894098967894428412906796269953053739759977692605903775226624650201864510232233224176576597660379487195003870775394945721551553233670390161432521579337984082018689680402109541041082511858255885657072058517274626898626963927452470966367803454142859620700052202388045081698173954508036670801998595556025059277186709078566729251222753224748507223541546863359623433976448920344573915761087423906009945798717862509688034202397492951513571768578296109216533721355435693118026746565700200992511088905638994359234624850829894216598020727677606795652734685049485241821063192029749170061624535205412579290249177350942775627993432996166408450382695309146565183856471601335560542934866869532818311565906529998020987437054019937697817414148348352217712111634162980700755999951902044913973715521048947827061036115627829547545860910299163494939682142510680087396194557001835077943438709567381499333614742194087655849871440655457127255553228076110948409392614105247838216752817690358540724313356426591176395223139701246952071695631937871167479665588770575863216284157115025710107077826187139323302787875668604926016041112665668906504983682927301593700101029347817478046730979500443763819645010987220356887261372223390929208953002709263821272071495581168076579340545358169708732341231899495177217256056593512930946559746346520945160419684509041458883068286239838625893515581986153714466733088451005583617636805059738529413496262952935750384384016839425927895698915825423493292419444543731551975920169771860219248023306699688870461046620514361631947876782504583235184441234181174283012960096387788552022831838616580765299458415239760737982166442403390833524150752969595513553119310726036971068673951665119773901305892613023953718753856728584102566800534379172735908606628701679178937051673901053090992867529418200956931524397322275006760525874719614361963675096513862179140180074712011727139098417669263596285904681472434201472329000793531294814767534908658471252807229339407265610855552190413433192928991093733496695477678429543462969350946036067608168551660681967326071823683270454948075620817158449766699212172907184822524641362560162737840865233322361179154335131669365227965502834304713674544649081145843071798575388689420018825595365534369659916191417813852607669597657909729032594332250171809924424082115343285743434211692038986663549320168908611172854663060700065449007105982651942633887710008692174652882221180715819161804442543181728662354514426006400176502077310179966041535046507642605045793792212593469391067356705947520576242971639971896762707804726922723686058221853552553373755007002827200050760069645521544822601497126713585897030329388573294743573483889127810488707608653987378050015403584915336544991514517293699882542355795358513064935620217461492515252732000934063005375951667814539538209462418644452385748764761344611975116434337926991812020978874786819043427731084255516915369946277367463950808674811126944396719139679918691651495409949937025441150740384084186254914473806303114442106562675227994184380831815226683297801587345352222281834315381838294733110861441332252244836374308133899474254401014270099750403092486175427178803452167797959430693339193443186475193825057770417648133171455874579230569188351642468130637476378261047274822836858457836619514832266005537632465815909847645177697993477541688428435388636782116451769743872567102253050820573177715394992407418576894996822391600021451820615983169666975346087244589022604217268561908600148911074662816044440309086012379927100656865707776354575927451692274790841566285610649738268439986400981569861272815973018246001178553999419865377243146709011741226236842327622532188485535790478712367667918466634161748615091474841436634887228923487562585666371753104947924980301044646476718158191254937393780717024501915989564100108349384989101668665568940042635071875626460676350629218621573791417556187247584242352483731400027905623809838089623128784529543449238541302696923842898132375513142628330368446310330313699651215133461893204593761203902620619764938992786160872461105408802937002937159883170031714577877571186940618696489354663844034285842594209812396271845138999111745395516701033169181441319088584117295734731287329160386326331529012454769547699908583515644194797059494078959987081400141129147002446719621100577042000610588462767174395271784660135459972637319139343523864576613251585768355541484656434179764220814422669147925789787470329217455085860780335096521625071663468620111221129920404454461042597550386176462569891153310541336773697700775312431544969602340816075715548263373736841027819885563535681408147634435644977832907736660180438298722528398453158908812766452044280607022829052850244337207045826236632291691724699697604730493923798925793015938704942586141080694671057127899805657730360726115326558131318773027456588003282823397142729834873841507934345462256804588806904397674977388659924243626760873745388459252075136920505472341752906677211706070745319426885164939150017743827562526112935880252966404039948505908407885616164223322343615951794088355037602034853041730356743404918019047593986824049160459375988430650726572267675729374990442223728409683254216324909767136022557017516109975024074122751309931735755022886929542880585646282515601916488177098545945051503620296235981505846738814439885730639071500219047359209281031481140078691654111469233946619027944543218871140624572692514236344344301990580081800457560181094497802549411291060327471557468516571288171892502199757683791902042578411242304116321219984969208841070851982752877202155731213136608060061734674235631260744334915499435694485591114541259210643855734287596260098593114205595128341794690887729606772915469216515163947890204337959983952945678703419669937021950349725320125091233934400383261211842883232267408951102093953367712445140794636446815051595389432854988262290311701991414008658072916791975634495146846367990307536788477794837949814952447904361397138085925596861214433938660075038105386404187160845221181078443125318328111151667736892957026353550085870708053192195685029261797143091771639369304427988995994250077768235356085982218978093530435433580699613459746785732142993718807539283066803159892139776618465349204371702313790668629874412002120487007550615959993359903634906688538109211644792177413764143362849861568027300736351604837675236545550556342473720702301995272529553181209624144655035148299795242753015028586847844524427375976758502503265943167593951557184115926693768490791483377142978122791819016070575972958223448943968679735885082626711362625782240316754589273141180473788754880597702337542856359887678237126466935134290453358837972453276583247025439117914830263293072547858322331827781606701296377864263690744337388741065522882307640168524723204640258716692408127680507871490417904762543388289151836028468990503425141758514648684127796856039939526500897742587730595963801012345718139811853782113476995955267770931923967578433208841204670859033832194002076184937310657201112854808356124935617964105481201392403076529170260894133645338582862321852051835043404345516531008608191563800480152134149693690418343462538515322290043193218967386451766995058591523483225580607783173223001525347296990906491964568067673581636977231167812470851601270422087714360252493380774663901340568813925017427838651425385589027136261362264253288341394691324188063066267682497200048456133738066572763195589451544527530107813715604114625380142623572957312063402049942092426135748114228268501412504734890880441847700285344737480647436078587195894800490749912649472845730120415378921903972238357189515920146392955688895447965285700268738921580716148835299701588292740698591186205429423765279348465570393746530796326122142558311652984549710008276966223816438207434885298164599275238616608739182315625927122915326646778115624042618484226476860048318451546947902140792849204348819702989313384417139199681680983849923763103991064701661564572139150846103631920100040628671511213353637991456255006631418250332728104853086065118107081022992211131795479935826459633156984380586342797151596946703345903179520444245228938675552135398194970318430167857437787215136646349866507064843516677343680311027725885179297211470480025983333763887564036595412755590750075888795862334337278713911611197130663970060477666354737665882099086848962359935678484211362588959124761768359005377879170629816934939164330022387984781073126687398401611919055950855569343159279484541016477342632246270418882043945068102774963582482155254720043862167987656779392630274194451349018907132906758949503106765996445520698188981948426572835082582774444541767829526940014394446268045571165700092354664891115596782926265381970661800496417080454462338742593233546598447569236219580327208921887873993989855502293493335364439447192077830789836791318378939159388715373527918554723297428511260138048884408733455981829350481602405468426217897422124783802645233796651663805586205631778921166791073318490758342568946589580962925626299929222954009520958986661465926425336483795771907410099076845903418042898174340976465078809895978486434751555063523888378706508855404112989969499866335336102560443173843683419424825784768833229535320999809807865945864819794658175674860087315142954664967453496409486767530115725381759242330656635797383916940063589160919335299093124710081130351930356543382806733928303588795737528944699966558422371681101238559869892322813995826919041941039024352991699640190403087616698060434827453667258529927878818201655781336614647267565251999357447918312601910813229774403395249737140575349376293813788137556568555045153189385339261512214813754755220446865169546122932137289077212453864075513862344696459444590251592919324972428072515412141755209328662704873371576025347091719189436554252937893438465316090322755008299284052174705889289075911549448213789380282609239919970018088189494783756325794488109448039394888511189174996419874593738823297576343485276823384632045361563156796146472499144537612097566639706434834145483047085884425891769293260306855629044994928312129724010648414527598162012635152094347682329893244239085202155819283938470977937738019141492705946882902983650248286632907752932339487173918168174621419233248066682138454908607093001787916644820279555162335778619557270141575009619318288978259992556621611667755076527939805906320471614347188185046380482790346310110854348216776559189175009136415886881537582420427052077186911547947636683066180276443018380669782322629436599880968224292811005005624203999009827617054120690190577112745403508341658426051172502726216271840477919578187678310286985812177861754236542581303708847447327413813796185724084781501694125646742509902630568402324051062679804930460105202212629511170808586671790468626252287360285294083841809477580754544843579706401109899084191851532908680776983365536121092497651217469944848005936955104848795689066091222738059718744521889959891346278602986832827746716597693308415892040899063433409795110743767207008637164194113845543951150513769720241441558404725116873127077044564277133786616798896411966285774136368448051717943764224464197532371536344811929973740840359717997031898810986205453206569459930231049649513376307920583114656032885626815460559074778261568498116331164514511072179132011535308376287531397565055291890802029381437197550755061193803872090418063592767435850174898638248399324284406290696071625359995497817210844451094708229914784858578735585594844055635010297476800614430754540804772627969846181535929863760004522766191198210052588656362540386283708203482101943690965225767470204972532870040723890764450542913132797452828835115630850667581262107514147817779089150316568678970204482493605545929944539231596739204142437458182532256736026182761811848709039299878408395571992867395550505238957264322979333218063463685607950443518123885501250060269249813205349404005974166221821382195327045742538384091228264287807637147296761012750148953210041708364343347114433625058493024301748818758561939321658349943203968085252094766986766097117856537671374854689432567669229693255236496823752437852170010563534379124961559431852557466868108940701421480792710816241190598318703936613644807960927663107038481245363213565496712522086696201359156984991800334622965143457530404928738575399669148710115383327732978798762501709303129256214792667487975367645066602353581989701887121899004482699846382211214540595024492273255722897724716900488018275425891519296535667078168970717922092461457643967703682891685682996116578790268999633777430882298192386205238636709313833665924414152136160535613967621747916739578789349824842394462110225804120779291004462485663079565001772615786918451903610846279207974006921971808258395471062487774272282172008685935839425845745850731141252315063248988596214224192214338112470426997880134893119661740752456801081160693607309348578792087819299569119226721378499958761977401033454847749434816262154191442543084143206743097087049947675172029376411877916375529995033235487398477449009961443005764474779464465562096096689293529859499838851702520703934716061950478106432618128028498100333617981857735322691454057022171551866531726885235526747019861634947352632451546006788289340474692359278168439361597603779462089755776091268050448583743694434735679984239121080518594537634524932802985945240383383930370019430120902798493263955836520265255843792935871626704155338725906214701453594601181483556334174085119662871704617174809921547809872883349103620381241407124509542470921822017054672165538175660984711381187494207727258831891835504074621869471329102491772895886957135859461057129860547749057216662246945996757395474349515669862193362950409410446331427425613521293251947580439748957753787717600108715077203918831833974715842748594631003085128352424948713809191411696229917999693769117455882994499504952010433614099597305524405390511537028802401062120584300403613750173872328193775895690754746021289070348925235314417976853114966185516207644636333109007187264343223009065151331841998119764172142061183394202698921386617800208690329568317776959262041772239527858985144771597916116195825350560954130816629336317692568542848716702011784248800159691643231861319107230169376971692604703816354347675585444433010395942677677526062525743499127643867898863476463884221026245927301264081241814123312903938758012601867507931116431706587723636662610379665312715536374562470481217028935053373312502638614799549835759443646860124901948536205718542708871799389875544851607675454449682596301673357436379329052422377400631941812758987444399817322955415076807338267732466787090979465764858017553714312108571131046910992369322385901193428497966824775628583941212736344881291911444671631233273400772555908549877671540176764012260550156161651925894017127137870652214474964658268139169772890081792064215179638149107723508856206030332641617321450260946621803297452638960095790945340367594019143986200438979726229750389596223499220143789421862821110786265828174097825686957540888435720901055763095363441792286680993809045126083370622965688487279148100169126521459481243770939080833902668201849258305533488776497211669459349956572230330535922210958180193878310841275803971506786790761553855413094309506793511866211769446931431556392781908680699355138359768912031522697826288691578784672526583738952834192441101391338874423566103832063841843108527595551674462282044610579714982208219738893726378712643134871602949323287621802636814904496825982083205252825322892875652387550851786437616582780079765815087145376640808154843725788170326827769124356788051339134145084428548443708987445074178907720531401974163456742756334123711404848058133162261153577260822263537702028071518514479164963910490993836165933178380583152066797880598720273128873801282850315308996262701063319488066992211547637006954010295970511474896971302145798882608164685961898976368986851017664052312409916703813789731975190359286275836589753931779430327079900201116549998087163338758059374260586497042198162947016481147003453784528572522047422578391532155623516839577612194057823854921585050644593455763568409198760029643047231166610215212350868355488829375997918817195842807012793417916646810371774840023067495230050665596623405763958365690226561610580995186581243204867577018070207145337550310835856809965071375711210105987536248137758575947271321564243788968080069443717700666133431652468188858471698853035469363257041340130687493116200173009015280131675723125891265112321358779831232152298232232334067420358312741477270004326859757207424815827227836949104297779632590795622456856583495060174482278861818599342755503445781170260274762943071819876732596404697002008026862886182532211492977918735839491072603865715263598301052456399097127169765371068647056608916949794356226470785647572303059202135660309371856480583641714958917194968628879879371134765459672864012259013178389675347206543879926992153768856334912526842952887186910273047296534170812623063412018694008752861851866720991275661695505182856237009885079192197191114819898104439787762494466095643749027747080082774869540928084495364391416751822138042198893843647423589652393327369121631906568419755177891527090699741498454800966595645284086022972099645307755517762522704323037905093320093247059710371925468933313080466760815668096460961547817029574329585567131957218687416229855275942384359287838134186271778633758323199217332633068714545628312457900621585904749598393802977496909246156941822261890771869909860809753712327067488373116376412490169064683114989085835743388168275182922303288532735001049759811234580630646755248432170947595781016030195575958304278221820811148931774530847533396245832446081862760710176519018896122564960692164609872754090298425890266247105468253725660306355207608056187081276121362217407188235708523553735663273344532088790439424209540284214231570954215352492252780280770014147355008604928085928246543861790864769175092384678046045963967275711757584583426288605348512272675949350350432569367011571255680469289423058971266903636095355517023862760761357559342507631069419704575102192091531489436186438935696505094355461521729833366075902309715510764630418743546203311821101521933973285090799000723557766348725121709047034455914366805030110912514327529683069415326551543242323526721907415873283006899702023702851212066685768982450802667664337854855043719004667623393896448819954034091618146792489505246068863287162924918539434872957514072328663031726904711784489892952542165263997340879859340505352415671723842345561093062047539365325664402183884728524212947586925067360107256452642626479459981072365502850254053375168694562212235481998544862100967616711467275967926709392860380442212970204381198526025267279050213682698577487012976102735398664836866289854959728592173136817024314262827626364891277171787713918136312732356837737463899124195728812898304494860939784917642186881792749312053593653014255217555078662828563168240681844658494686369308902243282138386590744021077429631917986230159922306733565044243000226371719901072487831554898209059123385178043468558069340088766995270089812823825831525853760377255333691768641384565729970802843462051084659012456705758509244576050164247037392437243501096605694208965309537129580312735770607921106979785301206475153115275966728034934214342384901924163827636921049358017281352317554846414417408210814857398269969934491681052102237914250629780488853589939150269542866781880613511986721089790457146452815232903347929350337256872430098416944325014347879826282972415408970122719747268910125502562130752710986962807000876589433480704317286652789116492374058795406781117607004872988972473609003250776970916015201845587287019061212486669852889713634290350154812126431534627591437656047161587865452110617308053290027276239930370745606528172550878963027959476730209609380436134466440707452078885104041571027997002089357305138878871770244835972232331592703959751566590641819498493806792942040609879011571024945301175832639739157822731407479085903617734802008047731817618333057189764410975188452322450523832289609089409747205021104248844498681836419850233323339882871573714845849896492109430377669800871351520426123485938610732431409215193384174824610130630502390345350233250448691288918878316840877480742600712033682850399376775572038810234141997498772130388223910133843900054654676728158460626074650901489318126751880744297547446480856531069177240475464693815879241543200933412529777448653249445328727136671381897918906528063633948039235110650236390779916149539443974800229630685259741851051986036246166305830759434383058473890428549980525292995555026894136749694953013396053083761290273651298042947991798275229683068139865878252806348796334470925509269510333277329947586121538218411538855860578927446571057053356463712496938281680259064011582915792440965475747914140505976204233637959255438574731750759849837364461026187598057596756179393635600226322297584330013508224776486312480800672006402649135367321139342305939943166952487350822192755213400968037597202708835191708277421086108070220040141289331025334341148188505122917999218866168638884880671187014698670232144826921054723182452956872887026097591673731447691777073686208895221445198485670047762313349843845593645627845917939129850286607463347995465106678491862904657520503403578859133882877415921877347128266151523044242203922320963553291255251519637288022832108016037278998904543572154013721756388464737471725844330424898224873490216393763700499671709146998241081564063829542522685392933559803314046632665066222847589450450507775661856285740400402274011753243073017273907008262795577124554123640306472640877506980146704205579030044167301098589229977989173242380904947906616002295230069837456002420314534871403097918461709120531409443276192894741427646656357083494252132440084079786467428572399906713259434230117315912223902831416129667540643447896593135940531874887228628300530713922322568904724782462347336475823993521681358191631569100745319592283894465291055763442597644172076698211706805347259246809502757212359266203879532232016798175053693867024139923352527999530406885146232554102445295569933008914933544141162363390142899701552264108609097151909576273045867579668854278069905612080455698263205811602490376332095462375006857600298942887857720968719358847171766004946386765014769605303859140442872299435178246867146794844626116844570665815533052048978930925131996425288001227658206577167628103468304572040333688952524954224886962611358809013820283117914573984307638097022118919614012595204867458213052846750204593027562335966370021900995474190483112926602844117201783117324329619708477928764484337734317790486678474981926694954109974438058225521410743893716897598612644580227611632616959463046015520038422726073777945663389352608214186178860993205362091122371883906610310885102288850170419003394902383360036011463440973643223802556003264983944979019337712155368569525961510566677796501076840362165243467706004409773046036543432118422433196450334927689245462551788124443146055084661536380180264567083927093512052384457695780500852431526857840575746763069155739857661975251462851783619170107427987834768981601339331819657263817083025512132755293390002311650528550705776732348573661538584811695919790530905313242629617701166385513426746361002273019959817409431326380936511695796943586633684364318593630834738215469176991690421989585814395310566126904408235040110007997512516077096874948411613912539833636375881668568956277810544812771059051785819171503545659189820830338377410891056423301378373267897270855892686300986945599732630619813173742472856969772564052143495600122062299326858395420835319441310415190862386209583100134801290507739465079113681677805441894390552030659483204717127900559951300799611974145776967302208195536517623451595385426115745882898671764144815336970477551223489196053423919141759249916163003801100131031639402451677528593038018877152451117378918883400816761304072517207069184765122756021364519067834640705224149869950705303420689277987575021130905833412430541719592086875100261555683110027664757177767760335289259139836825660888303794271815703769479875936718927049246614375809276237410538694765034957956185669135751904754538500257678047259532791549582922574288250609533945178701304785501873285920905853526927994090099748747482545293051914227675288941899766948908251803325520534412658745099953257327291855483775060732914119771879645419891273347047334095472230789146275635042667978844726138602955316865026917307653483061960301180362953555783177110097381770422819809559173726718411283029809064812634034312832517225181949367980145838234156969954314498080747430698996432181562285254528499808003921316551046525177846642835377611481668926877983501192005271774947203438930955641389596414155314532449135732791578477232721620666686798721845770652230192118617986683414302647329263996076697200273225937454368696773984349476393148593222653048776065989714120422070875438580526528495275138427265183157145132794411085845692481914377785107848884612507220527123754751818713104238778886375820055480053129404201115631208442271549512866812248627884312447633976586818390491962890821370730617888753426434450286533222818209324869125961911629705504370772709124806921349688107266303058080573298585468360420275711033312126057766352839419541198700830601099406184274491947133096718624335259258178637477233593338639609507292531349699940881830792942988009239017665965797488328802155127156111609597821438949050256360499040781534796452132735573377860157361857747898283475283648972617185986698507788086765892295011052002086964042304638359056719174425732314146021020103646861249385194041329651756424881806495337024835388086582626717419466039559615855975980776550422012619458796162658172727581387807856613804459982608218439781593625212038693852715215122702196994663455760202775241719467878709413483769758339246679074881536187678878430716528102601377301757514716058631973432797026010635275897068241508705724442216419071217575291164983352190469678657515644005670959638580684425585920251223988060014780190919538472698116483964189241696142711737892574847620247771166400902194175451175240308416413948045200802193462560268364486830416179605179380151221419240654567422557795640662619500926753389429834432613129339735566857905731928140095357100706103936183529708233428942783711571970351398515552914147992954816669614447111596332715747863625315957756752574099712747941748699766485080986135563770963644619171737617901373894646355985488916393535028148960817449401717410052477470394845023310440083106562890151414022841400606435298710715443352023810906550413380460549007054940436246941078344156919245318377564918692854091125657574195058460006581063760029528555210508618080495556409247212479904178056129932543618838816289624147153913843429692133170508283260336284886552249112429764538608133208854925144054529999261370025045018605150825883313158779969210092985870845860384609027392685779420277396228244810115159833235312949423965379355155500775613632726557865243228568164972691369958526664409473835954022397744175524553717052653246060188650947584996929575278240608066701331875488410334942771269801827902244141464072696237008039098150379081303516228697124650259291894292965717128470085324066117884409113777551017530889188399829412748089027593293100754860664740348244871502323125662451868907524848410143940320808774476690942674907944738039929025424315118839079614924507041308960015324349452780787923163384029216572554208581385443579759569147124581040965459866098426254612667708442582260818444062392273722253776595693273277096385199220327041656443061558844649413612355320704014888540248522001926262554101720653154015080175290011511315303926725215054389460387415411620243429265133203220652957975110664962504616380223053639654576416458496003896253925774852618755616865016287206657391672486646346215704683653943914638439024031972930108450626808426531136348887388154205264140017543392810175577431722044301276668506389372034060776111035629661300688162876729865912228995387556093612105909109859438613237836599672268345242281523551258031756423870566878820128843870653090189398623787579873261895273853860549452900950515182084053481258799658286596003733438527972021215461177026595153908710275637306912992374627367772550704209930908980033200546051023563858329166001228704530128530455819173405087984876188596781635697487944587224811446936163182989009257640573979601805412842536114255519448300241788495556458772198220270073433956295674638508189827128262953235131561841859840869489322971181797087068456638916956668069742974388913242925159417246468444090675100046416123834357720994100481780106899394692710309249644196240068682334150795660757094375952275315888826092989526788415575998854693727061594307084508115894713826417218814523308355739090594457691190182136589779342862398444784262203926391712970679885564861211970369158470548206516286481613700833760195696648302971169327296916811904047498967819476025239424676217719389992390353665485545468759366382815886003592867342058170860541250249338472192691079496018820415842132440545620718488642620809221449024603276485208028804452795889696149713351650564802654412064926678844832734764828831841363624565224016540749961160131350261418068481256617700507111789071577205464001033893193884203779923699371546794320317194370166037730048690927826365006173994461778348157770107505011477141874708109207338144074040461537265829949988481771145202503881580491410867973482670206866345277432514512868141310977265429909831612056974560976062176334801697682536706925836446068351191241927583212399604166166592687100347574701863278361272867197416653701776146810660343733840904733643825914486486853433467005218742915448392083665022089440918133424003720135334798727858821036674551728585201365458809874616459704634276965713461483901797799805253903413437856353779329249074802632011260039598215956347124279995269304400613493971962177277454459910833108898759823179130033193807962672827443880282654606558335950557351731354691044101355513826022077253176523694422633927722694091349957474693395682337109141600756487164337494645016723267187687242920468393981558258372048134769111184569334406602584913727161280392649059945832828446439719355317220523261647925659262243639898732116196582987046010611889946630717450162934184710420119501401066876597013471677469064104790233499215217667103523192326028184916018534622036569974434884419443125147433940340728197205134528929273224702581938631576558995554230576052561064046367396864960123154912623006288965940217754431907238520201123311459835689822537621893400443641954827522071135070703729267192374803120823430228588562501629496006802168456666294895005830742657471974174249952546157041409741495853554239215424947851298492894464904326707615456929657792688100395019324671692598571794571266181038942442431637252200813722045822443334653056897281450831057965545447342954008687091648485870250623504059953545091126267909634463379928674730067306290664806128785626984880712635243346228058370810649691269867323027976047644919631309221031539510486871707650944471091970233369395525954634951775200719107960373137070331906523556168913561143275981629114858872599404518524723595075512991530477125051560797349767287995125488070958282129295142379252008411591335885873162438200982581319212003927129092990305077404939026942409295964596920194188374010754844595276899820743264579122989058828033219409852308616150180253544369389757033164829442784973236433953445402010329236226048724101582223123649928380974532406245090940391092402944971596081965222294881316465282455455508476922247756136425238810472102281187011860681230129314798699833574471269151184877612607823768220733765564990413394352050609956792115686583775777069195682574842700354621169036391629944961075036452233763115308499612698389049321215420669027832963388998344970241822564161516268598206894239176885014571326537260159587468670270308474695380024491494833300968579821146087921183595090046269034598060565253758462869886059889081648145168460587967858857160883677369469278809680353044048628596323074649763672113994926971138609040666481974560752736338642809680102661358566929524820059868145469116089447851237872700406885415303751661955536898097381795518746503318534244363592775481641080088693505212194857931066284434601891749245808109796928711308123668830952113413172856398543521797177172843149789714169165173346618248572681756117185213705506356044590584420377437196382806530257242450308187493792843149100419960071505977414523542260661022824254784639431627872034985740748265032713611337690034255816920392365688925572800289037208349516192738527913586479458750279834718231516725214245589344066241766000793740585611687477318634824186062769892252131553811184883574344263719167788512697065217579151790385517914093548093063288825933295238788166706659762745361852456458360649754664302538261593119594146110087900698955519797870601626940336828125883761852453373488199602785331390861838011447442916959362658011898094523497313056023353984623474120133371129420170297557424103431850040398468509414864010651805762961429595470846295803203399248177039833413260537228502163740803048054208853594444024469990388584236194054111697396127217340093918519034190891762265127595846346954992392052276493795421067475211796099628475341628058461373241601052345132334273476677422174384092861695036138217603300503890243126210081652178558935163931134489831595719982486110341478621795812607919160489653160649354211385271261220622942501567055479243099307068959609230343015302919960849573572063973915730240727619716889602941944486294826904019317960804881223050040131985464679070605045732839290351551281149908282627574251528969891725865914980606416993363218632406402282194579479490828222182882329400336506416935521278137486105668951116620955545625521319234319821398193554399443881738026253584611675567465455821064734324596790674500271664204409815383712779206543524520772041653564601638509447547004068664265064654533552319240857076313409596847229157244071443262769440173635657705102215958768741968935047611871581785366644845730857090695025864204414232455311829988890145157112747307880913296903602960853913524818822628752340296716519759146252651883310757194468995149640541890767514488888057077209338966165340763264201453045933585249145099488758931324011139860972831147545845550462072606302500717197591206590817404231019302236189632471478636234632851732191699108494016979351311728707586996955612043867823651221625229851709539693453778405172983475566835261674608994959608839646262309601237786485539755478925448915138709381897026747195794763668903954855288112308033235985785147878964912479640374937444029397457323652639385124131569009982953450122960368046034746106136498307274317302343953134419709123234800581933987117954697883080492256656439840202133210981056739189121368303285918208010335059929176325161625845405275617052759564065409705142223314540107979871298816228627753189105850284806200678720973104250467329118142499461558399838026913542690083383894992054876102412352978282603582079410523920739677460885770115922770220048042264726228849189515591715172522226241310753849985870816455530360093649280406294983300378795330487000013814893729103371521836958419483910993749054592852383197174563552586512184834135248855897263229865787441842757938764024509239347701207034740314082596905807204418704508848323341907835181133624699477520214158667514524746506075807702969412117946774074566424179718199885750845924038670595724525395986097172239921591296764541713003440043000762839479645711613962195324500166606291624021945789808461775313061417819321523540167145640438038922094730375788367786124959256427168352651969130591572477408356130980375289942162356390818451155565014292961618115511918494784691108054743852883168392727145521520053386474365894442465464423195989320676013572339532938237350732522096934268022871882084282393887739934497284726770749640748378476220020800694145174362312729362431489670271437099023681758908902470069961798851444018553096306448786352176290235460173108998599478295439368043024882665916581408065164204557492366981338239542688320768998413455486929797929860881141478225775710006394951321170872626077823768046588684195360228352719119516750875946904023125827059852553605292349681489775553492000418656636712052598894338563137388531747664529308872709470424083018692713622187371961463207556359202623723396447468922276782016461555461783793017608754208471473803216281584915687749908160593111308334093628725630293556518149917791117150212546650624560027305808405933914439533498474004989699320816167026155964688551833139972911223342190975812588987907118286107252095010157796526049487151375264376399658560618377911383221356951128481324131362179694479178643328552531447766519314956277741415670023856743990152413209445738889528973874481985360888690563149611331728546694546705991748552715774074660304599611456226544467778311049103343269077947259301136677109973130493783801480815863635373948236453813884515556747488402105546799089548833483651872085925211252554014861487083382317164013418893934788058285199196918065375135002604143739171789598272513748723619071492909679293278967993617091362371921594903089341408845716455701277095978549518210876341784283256883464432891269979949388352738566876712219888927623762381216340913944942760202764219468721223932075404709618301428240620429216509819357449368641110026067224277890189637688050001937117622962239779326557600847556696130281432408422825649053916442443726679452387707180864387297591863662423101155075551616504824530122149579578059332098178677030141311088891913643457709649037311136650718603393043713188157363344216373444392040357037275561351726783497143112567651560186161285827732037805626556255956920837616122052049488426280174963376158676594167842099153968465809575465383841271755338586708523325192899251692097832587170323466656818960762056715685258081149652705529747958059925837890719908109660896073733660237951931705079105136532301038935324824755906039943703789778799211311676015465561189555176253115398936617579588920288767727107709621687761300642110283905233516015867463410728956478663395202101107799431611763731044504720239226701401335452260758449813330311177195505678652010080926263038307086137584137897295767820842431235080081315368035207992034973648673436691892745111126665719685554959241217333253414476337309068318106957413308215898358765306360838041702565958167360818157069009448509220724229370556348419869524196511025490846338058483903242656214201279171104077130886727618115338591649102920344396182494214800625464749467215327394137199955029690951884206276209175928124071150362928093341820263626276981088722343591672599060956129711946480974855600253219161261985514892220025838740199318594595690299377753582090713696722456750577347771736592960298781445247468643242616013276034759165352767139594689067512827382086972538001978779405894192865772259023735028251305850317773572395394921741763450027786931468738108017345551144929753703785838065491493861883257153613022046452378821478226544855303045453367132018147599854342252450421008651120077175407302884225810711586170796804744561564473328464489478166392511692991360182220306292970386609251471427837785017987363094073469964526902716716458179628854827841831133803743531679761058120238356628463671192862937115491735537260548414320682251680907725142960429231260176851733489526066210981106471140815949276608748658219546481001052062701272137443528585056157100223133646836915695434269852540517699085190207031086771380359563633426036769670972756477293196096467404120414017087919200066389506434494046512457599409049884986625001375866920011891415109734567888283499068394419251693482147865461600981615537337298314543997702444238070189621888569776833070160196700540725028859934821971251715400802873149147156870175317991098017920695192805304661858617531716153102952376904362713869515648546655337183853621400319749507025179373584715710463771310375578976269734193154274930430627557188311152083580092500683132236851701144048980557831954899286835326957795835666337121016637198982072651476826895904295390346308423055542196736050789592178701800941280564322281246793679463720862411465313557062528157239025442142799749568895780063521530211468251406250084706343423407147533134021422656618295805908448215346077152358929320939815297258582407194220321476067357150837026735610791240271027348843889834327785526039949863142153577679766476081804317829561404456894833453864358580457411677885763161538262459052158981100228389651935949718579623502157741979247135558348016168954231688686573649987170032275252350627227024105150795650380015653738389945245097864856433030612663060594528261207478811044254838665847314946787483148774376219017315221411685455543328234081976091316410405518543538204023780298239115458148724258249004664852720174986539970040083246225568566977608431888265508534842539610413144254603704994562972196050760005370638456225113122313666675848376780146236538277624728035044403599274666364948097535041135286032385304823138582392536792871110511848345155175614177695394748113744388850119409033431176764838599178034594224184531012615771318054266529403244463439153914546348706131489391622800845616659378624393454331126924732119331883380924292980001008177437384167838333190510164534945433324101503602682343352218801607126029111308794703497456410623873595416238076343088104060414085189262103756258799230213173776821935039789827660897932525247541514002376140883770506983941311294708382955045734969090634311608642443434706461512932532933829754646681799456611432881812023419849665739490472520702087583862959954571350107627956597046806655373101888865317390306736530296714647281695668191770493814894896981902213314094243238949086695352911367777207342338664652748718929548394467051565015296774831639949453017645724840384352614765895225657517976309240782915219298382794010895817440711275297721786115319148925702000175873195850712347301382903151408151670567022836079368859168487208442683447117365726704010411914289969645064925642733947339677286596304473620428141050434621831245539294766643482043837982826906416451358758625508744051578743159039912997682131425718778717185627389252128935588734990729165349697770241188784314869995516499698091476976434445367537401852661511282386249538309694788912507559794729479436029168884458815864810178178702444518816503524396411341669498772752422044373483204588771809899404466414434769678274709538062207440422160926419838879564798001200426953025730987920965918918819362127315040711825834977098496527518192572986028515415946319826162248801025565608647768383163203167402890659690477858917795496483168817787183686877893473564205404350726701282943134610645934160687416630286555581421113310849994782012615630891676454815615661964068128016525489393625189617764315727508000913272662254917442428122276310984043650902811173801327222307822698414498049777756329025092607920932317974907681934299659180029522190259864747441274144766015827999969263465424363426449233835666531686773157232239207222391200449673620949557683670414039573016322295961888161525806085777760395797546874760578916425529754235735389993831232472757779333627688099330799314013089253294087627866974099657996710658018340429211890705835324977906949639509859644916536292428074762927135168503128709605641817386100675877144642609317531641596759866197292889840800378437820770693983102364957904337983302217342249038866653744420775281122150726069031582117545006600915535204573131277844105888828689563955819450549281822400904921413421981955974183108120742539626078418429453886853807528636503093020927620941962834650498941135047329729811209087740800002683019068761872331575044239140752035300665933650747375134109175437449504508169677035431934495128704998611287617544634296561814982755306560549111983164428407884556206985344726165537081155786039475375032909528454195594226589508766577419618925927455298111110049674649580378861396950633260632293743312540478825704210750024671192825789664633258761860143284961358963901527977252238698354837823304446285471726013463309318653859618210025931667999103106835344624935600041834482964473644389198332389353318920379923910291518082937275990947654725266912140618107135081068810776399228650777364470168189590503724852576331611921255782441062426377127642328061407843210831801699535485938884248339814975547772653288970067602797845240919883926444604958253241605888564806408795586702129123927163278762268415025550591608426476123475183550035698348414928687804819385267906284240513924866184985525645160663004630763438412825662953421142063443035720956039804084737547342617490382771109164676270044770713346857380802080789590233282006190815307182667876527778837721594136745859986947112419229502276429062614601146482990122367693140378459066685327525268718544815983281754177827734453946913937126842830377258366314485450324870713181718441743494753858085718608832178655429389118815518708220368205841743867430570788619401448532901641269930825701520071435612605072958826198715077002036832639550777180885780275794917357051993840764395061361737468227428789740993784075530501003064398247410619818602703626512629446350313384479445625308280763712409719154944041801160343859293581144110404418099019653653331842443776001758380705235653209087340567657881033187276619250439337854446133671765089568581021543585201310850908346773896729025920426936774799853426028609876594545556132153184849039591191729518955018483411655701403818520838769482750202916991738410673842788175755107554049615749119944812095793625397971221402381997404169734483800787911098472297812254541786059209571485247249596337723952486977931562983384745303160997973431732902326305568148026150169426646715044483675624944880710293969611757627656143492902577597337067136013498445019451281171208907073669140968465173572447539933148597311549191086167596501005014574904373448204195167392783332962950825127489177551349174747821568894624494653657989912445762860692766015118389298001165802503911279705336538359037596312093665733408495171129691718208106428720867574614789289622408795391415986105320055479948835331822059651706272188897701628451600539455003733033513548982171086636512161943065216799573750263561477414572083272867970004608333066705541913550856685330852651088954642917647232616332402478831762666802298386943631568128836353683067014501203402602131933992782050118299213889735310341628502777215637930313560510897066721336912879477543616638701449610344160142710941613138989947987893873744069481700757215902643359656141974467886670285091492209594546156034914260488653794296357721599759222309115588726349255600918880084585366448893532739905945425407654137844780561101582560295046961661172790228467810694234051247246653952862351850296279020747600294832121719091426753437882233225957383587530444326187612499448293164158943125433388388764691384686011471884241775779668066186700259404337421002467213306072501951881641066924617590824072587928755549838910769545709287080676883427663654971586284135875222994915112127006692931913175118670566085633228746017968654573519795903069412249499958568238415801972095253896194202040651007216588715786328594348789725178920026082144897122818924381877256396947861499717522205172630625512841330539122080074960588349705486396980693422157922286535545151106162269782714753543239597864097102052006696249194011810646581110771926776607972524578713563334367803365615099451688007619035919589949717201059312467874469427607865442972472060908058236118945378697385083143854174064365361311569060708191486900839120932200099482366734875880800205061842851241708778031708184053234321523847111866749457510363470008598091797542904753823618397503704250933042441162386038641400199028029082926332304476144859496720768798766705695245147861981079592800626923193579950795625368727957334697421183482299441035428194258528164825578571574337574081512940009082740859427539159632205092528949320237526057660936443579925312821396971563980006965719686986082880500996269412337959803723466995171652577003126537301257606251746316638473121883730881002134322781062837808520936680161247292125647684008799195470068099926034976140782717358957521915871093647638426317867635417563387273387699494975859633010144962977077340580186757529313358303827035738353018801205412963293604683645534984445067594446138317643610196278994425525074617949309472222104223835538387658986140592653314739789496243525858218726437137511211711371297031283912116243205139895942446295016014033056975655863105437609271917078853368581654950999377465650187483836852016705436177151876705829072699706319784540485090795307985331517889958360400371748985974239877975368164540919609682609734435126038122082378677854040167834453165454422217661749573136757446175751393680625049871321922015727159170384303061273610807082552701728298547683137037857534734278835493175450559036950143632490512010188471802009735667144833442673234676626099923612527563682614770872372762887834020380472559712937211625674368676022341060425045018695606889041525847537075374985722545850496564738661466350625317350298407946245781952813276237047009899322975304719368294526068754825430535362983066969879538095004210686848596784609991322589425988134718209976234188686850219636764140202579637218299191465520369996517129762897277282345732737622753025436540994333428160692153056943719220684547884219972427621085062970809812120396143495642442859371899122684035687401292405205625750882188996578233557237333792306448101563186258846135570577778141412573410803805263009414499805689988107568014533747119165760661148286167339300700846700678656204761419717913995871643727762401054293383692610174245439574199375955792418821803240160096081153315736803590518401965521237072454534844613092367455724054474137626592661510289738652881209794427050867538377276095046112962390189560560581771724328499249994228581164434475233789281611254282607814901214942890642082119528539497397466272387270865736221804419986396565053004432710234185885131835959951749745395762698855517834239898751828096970663380201438680565221706198075816423143209304815953179079539225001537183743906008713655858632600665786678800390995731133689428711642742091382290501997005074511791640055785696755132655789218904608940382421014378908976739884295489433788770068301324419485147059310272269071384085360569033422390117532969515678526742184260656995662068096073670167060975039814949093637796141332583675841785234660145912711476285785029718563360001372121822999408658887702466808409353200081674861177958226146401721442980064702646165183328734440139132308310587170671390659673241307170653351499610381229890709846589149898194155738889626096211915033666399435975054651532483807419378760743393918486943011580588048516231166379210139221324168418530834566440889681128025079598220741428546313700288739721170143526376761204473230914034696758405306641397900249317164850589999547266276773366542589118055446810701879831470559811752899645858877036675789320435842336324217326494174749903370542738170036252141140304460350424919913939494685303400660795882276511032332077456548693696562322238447544722168295272896571665513142632208377158889152615082052603590526249563181871240775879835420797874589875852744468139031112008481389505583878937295291803210100953568425041451071872054240673218644761607883515272830967449731047245954362585924762776717206123054920991928516141719755759202163897745134933812448313946836259096564704511716925607591593404858972946841803681343993801317548090142791591148800589112568385406468769775346975751917556575785918144694383321426997337555191765631575066709256201446818740449764810359653029796431057215075315093052692892089005115030720398947080932309909657234912851577626710355083486182304835260126951375636871033851149152174949733304967002298222945263005506901231732901338313769453752576081939342238226309720450971654938301011736660909576307244510762137706605607376840541606693798532813862933789819359261900640167879470794531823961695423839590194119032456934155710016127057583217231650794615534204936835320431749649471353117691989960710240688660380056695944383458670463863359753036721624304348567051961439274068673220211034112165814152731682113879528270509994561037558591719484793230768918844740068861189263757871254925467101427766349694966446480169794004427421722649780193925047722111330176198341285341579351578356199047945954158693666517555423256894403224825689165890015914278791586910460885901993138934318149412542325508757945464777566921250153714257821701499358579103726469339717886017857588548540990908205886811342714334386715471840165616016131874040360559734468701943416599742378567666828011812873335429315549430759169568545442830087537426338460334525100526052970359931795876297660226346904326793612853661889542072534378847027367972546370288819610734409912390321517378074650777879601674743861176963309111705442994966226993818085971358235352692558480544825204952681319894874319192197366216566649341465565147196780941448322533258524327333130030451853287959770212960312641498745793304490602107093207401758626336352124828703663733911215960578764492709824194740433673816441332607948410055826394542155674672903138763691442292869897729159934120768084313418221938798534163163458643628058178796859349316556865180650944546482699393184120919718372992235027707749775369656412245994794382484976158257547453824517139886650944349618268385743879196340832185335021921514624046970592671866309018037344005675373609813431457531494604824397992229448714130785115584429547224986754936911728113333623622715783936205126282512356654098188439814332559133713303282345869980587712970797892981454632085288021279359765223729979066494767561105685916022792498074283850626942220738294498565998614634811878637607201576230258090902417622919080604378180664186152058963930858033388709677971014339231053473587713942123628183879934611175917994628726836729102536934216047002681603582443569447138742769540266363376201138421759882468715359092771114798873401666910898872421407075847880079356741907693306042450641677440131282619962375013521713213743479152580128374672240037805494704939555974714535910452480355844584014979676625110562789741357660156447677708237334450828913229023456866864801562561497662616069700414578424135693546733194305033830768465822352354978553009205448896595754838916262044339667978846132471095709808080384704487194683536886877914355422447655552192275138451776658604971979820738640183847583707568252941613772084746084632160560627716989142888944061781074814488781898827709299542842725950998795392673079046085282432231871303762011341524060882385690766075615322863076000144999883698509047039210163396305835963420231195345868097077476796877627144443239048482871444729602433749771619996673891058992593974897415120980599772571497715221944661096135345710348482155370977454828912804570999873546937499178637764814768033740334800976877312155140833736340416720924873597994411329612079223322255354073372374935572491556907718288260708953796108597504813770415578250040516487663748290596635014553407408718437370093860056744256789940312765862062664310637206664879921873595428081852693812724404538542490002154076038752321356011785190755905553439055028203888866015895144304330957520284813158051865761406316051910835686091519835798377313074291349076860231022352524092653017840654302392204545364375309578225351628769841289989821136595971397041352449737303909673534856549539389685427832769455162827231722713625078986128115174575721439407675585601996730996339529910238614722612214654312323685191339190247055657668372638123865804326235631316817718898900161698706078288962158392780961607728480944470525064559415604617976392144887538043302728059062748997768432290331137159103915572355757467834289641214717862528644109298781120984593461936655654833698643430118972831266952741200161485394716871012999612695767019537005281326473642414355489820661346734700985012556223301889060661939387677356861923126748875341625149866772379795552564105884065119338601851558366113452763886901204395960014708544971554227983426007305846668785612416100946346156693697635702204743659002538974562277456187634261662130618629795588727351323797659649931858614801666379334571387735976699300877958764302797680030919083828124680736830314100884224884329585245871434248324129548092111345020826337433301945500901182458907609171007447387594141214951289969172245537521541451139257308807756866366084295712046267904005689015794082231404319105922567118393014408907418722327698782750283035858908946817845578533973856311681527813716516358309882922987487323418059148146111727015617449675322771221959698006370534831987836707814512977784027776293575263943927564950243675806860748124260967243910492686859888097336760987577910669137695347581621545490096502682766908053500712392220054686738253450429281866469072919024756890033381063794052392085851696805391945969242653731182004843389878099703777516043336760270281051515942194836852290177908204709094075016346984182859555284840975463523377775737334592987563993935005947317731859931845984412003384962495540593082732816105441455198977257209108951528901486695488270511219924434463389381443066383926953113504780269407420048380441521278234873808027562782417329824609975687072529860800927311822246795490738987865404159641175832365074944872260390395191872546761836355996217986543664938433418844453487604575986512608442919618759506799275050920795310369458123678404280284483251262096471779401379261180006910537817069652589576795499292596498138571293258971921221386959032649742106364451057442876579173741259866371193410272916279556919195326649270695062028903107148923712763756297720680915835181520716140102663274896372925396599321300159115810362904992366584238552175248036748512017507600130958496369670301880023179211317351012250651408280405984544824101195110172593913297096637153697061406683348712862155506315583595277660251602507868535552470517318792624635040893715106732424557013921142972307805980030525341350672544352617100205611073646496430981237820418926594056141756269561952009425146476468705941402375718676235137725114038732316954758034618768515394721503857795121881444839189856607488594365737134755492449132962515022383272147151670306907624962654719901876431296339107532132441203045695309400867874407912715506116737886560594843778284365496740289157707167886067131140904693084402408960605969112234313120604053953977797006010390120440069063996259593887261856427075585980409739521382412571587326419407048092596688749584593287046999530154257482766109845382582412713190959057172422227629921832374588924999012359580395840357975548099098140786160605146701231130745971277346320745286490018923198985805126010116456636746072534902044097449761110765781606880040526595572641502826730951248899815812204992385959639376754645402572117798628769493848980966802257254605097793604765165167522739989952840972897270826904584557535891840375589149029766347143854000366375009116703696823822957193432844735659797519416267496739993437611966937136781979956430231355364932100721058643449960365338190027804981898092626388467118371629132022903686541523839130346244118037033279846530055014234220417413919070245292760472412009231969314282136731632369085677745809728795492830975300313100378078128855151124719781183178576483843766289652671715464400949554654568746784010804189348916935300187587307126050891392679286705784396005664589102477034548115670581729507194590066273480591100047171282642838918165255933895741729167792155596197316830160618240986255274392441038796025937576507353866484488838673364923025632943419395647253631363998107414830217706187749861014264015675092000098666488003989199271651568049794424744974958764101951746708412808102419077224974692269946719758860621788643523104201302186061972350414012973815852165259594333141132737093176177666585315560782774740182398479819657062877228610966081333190128211779117464558511643393731534942241110931929637698967496015104018874580441754330675282583708007209154301225024584473828300577368390154623585016253255731321094138423258899663736114045710828766543504593426702469959264390814897368713358448780831507668523885060940385696745915942874830926559195848371851456355124673136107176988495283978031900789840943655350117056968368758052125487378724217098049995150328541985433514214486060460209874151621734637292926696883890106931474213341053110506843872046072093304038843566296072621826104003899805496722651805181175772848834902043825599140764699307699428998117425076772244083097273084210617567051139349386962199547089009154734840482692388299320326397512252103078375216703763840868174963420758799480447330842076723976934271160143586130899348203217460605996397122832819437018203109739483500621666451727260474101568228331401600438721893380802853491247430194434742294141156653447735799215197129180271610903509061134601991321367993485854831511623409819077243761819239002358299479164595656329355471509281213112065710483764794815953008370714900201416905799154245462346312790519412248134607341624756815208144295163803201306893438459318724952519046486143113441022880446540241466168722701724487434295690462948413802261886031573009658577924213811935558541983452602210612109570621032713478989662184265753701546817295349080213438545561943647743128237711638353541784403544712946902488359959679575858316157883989986476629168561921344138019954342671471206751617684758654432960046575493621522401675414892174938008222047931740782303059157052701657244183219016301125219828442959672999155787628109404866683007602519530796943629501298161893927928787357191116731159297464818680705361821944137795361597168797611346646785179928292617297298631240474119757885670425050228265453079602249148076823991119159424164430663754295370152547988124265303487860954283936561755912509616695682837827671831413961606456553427352004123102258880060562350914979753503602783055207784760356889463024277719217673849289356106801373120429409664204067233655150091996443922565537406995734053897631270592804366042183088190237880817609150930683326734911581284957104498278367393650138490483914285643392606303397452783990689754405007945579437656908593045678129251750684821650316894639026819331732520052996620809649540322088423816295120081066663842306622627235907517099823428835040799485545265493417246028530899588136457060052842239534957379411873465214021170983198536822432660146678622209788065661455252397368177817041353676392594111486640232067947707558026976597713377849216120155046407670876519190157091985187425315245917720133965390096046195538905609029637358677967373313806845245219507760981840029610779721654923982986073365931804911708523622067056016869428946657192730669969246086260450312482993798568449099399775338177894058820682715777599454897704214410201753153325838074890374708959264748619656260382072604299672711031228586633655741655147017515669736719198742532883495313382762067953526640489311471275278312085853998385157189470504534432534549841990454184430487108099235246245599091784784180999945729204115182436520518461541388849237526040402402678068255533972065797167584303066430046287833357521575227005434058784017354901218931362919867396308781388999582073893661996871680630523366048733072540723800396600013752216767994854800297932644484130607505164472655981444564328340140877613694538200355215961768959761948868344216578641316342312626529543015823722969381612181316384995393951002480670702397080363753495961286117621783935193477049496326781952348993355953457008637018492602104828691521464635484483081202312690747691475922797969002066762714476531780589079769338851497686245902408338557410808358354784134226494707997120018592678444024742181989557322755010820246891168744393684868549510154173597572308234207891152802426910705047463884284081816320887776326583338715616731742658133520040135963332619389879277637930403542203784648727340958103414685660273789949971488480665981978773383906378893993811290874350784600711695660420387692781071845993906170822735871070866108465526219370647972009571542957217609873744866965133929952920728216442546897802055726678019505149254209747851202463723420556070644671744988378295999581042231899499323700421982692287021116599231168648961145358974692576439561377400242385906206184330157175451961678509092391828726125826355456157016586875869978803118931642066291358216122555463876041089206936755014611708045083883611112857982839944420180935600668071320297412861627029823683926338787288303097759971077847204070997702701687679397742231744043928835455586341073902450152410376307628364738373723079457601296822962388321322205043531802393642279434143179918735039938172511904181444086836546428614308261816196333908846138115548339191829393184874957790025585945833221687402003984080903278751495515170274744073217046866376700968671078031520571413732175555164409592277286039316281001424496431048573786083622525894554997980106909900365239523615624588009674168302772856939378997186965105713448298065040878939392158659124008982685016181883703606269361193248061760579760165376209607753829272805015930841700656032570994704766207653403300321331938057546931290198011872699480134629819218886748621524490003785158176650159371626692455325470106691702661772165276142574188862032062879957485153225934381083823430834579251392420056507414099938033600437974348101523403167896584129392373328211373732752079409152944681971933389844501048925432212576646295977564468898064792183958374535799333237434311484157044064849521459258318054194972913979896035460473184668224834775202266766095063119132948609596243921415247200866055514217339557215735856480036361170027315528234452558831172272046129028255197231740123882907510008760935000145907683048996457567021267450977171748619245630374373145199366490283420523511776895615066915331753512705500225776025999467399804651603410425235427096165906792352322933636475578966249775493950131238378879887967851288589554493997094781604016937530888876894219228870577982140376284862298584219053391762438023185854554879500432353718004271613857055742660422837711389611051407228378778135465128212388613855335842460399668107905936150348769267202504927736722000435391386242653826121225708404744936966457427187810103829035867024737035011216198485717965676560854735030343016044383732724821674120721069323829764265277325615964846042227544363758704681407952015083079195471984197433671712208353934487952503772270726755789263979035332323488820990870106232625585108963283364470112870639491716537598049646947738381798941670860367221316069455158280794433491302279408246742347485400901307726344675862873370320699136858781224227212376707568494318530947406180194811032597270618630121714554637068366973147967776807619599436022238804310710687801486177237005060789769862653796568107504142210952212519286289815950301192331543790882071431415999178041933596956003286188175246176458980745306878360716631050830299562249025207319120528744598000551208347861445966086158279725562902841099637551931184942763635474274793921431114122622120970877294569142889796948694905006231871886167624562057325908955290258114222620912253924082466944039504889963889453896353591042161313513968498056277607325275071135652246625177103959422036710457759353450974829489928071707925651303161602594393183301036300541452164344265108105249598718905243897979529253485351475662058673514346549885644047029740030277113179288140590891946351858078717421639804306846065213089859808441135701636508033176338553678687045792249604499230991671494691368973067064341821429121993126129894406276075541068528559425455667968690765577603618981325531824186420156570123785487146810981908463320224707407464486869671121638334795130735138341647467322295891142914278129637381962287065926375012515484807127436363950468020821711161677886789621236785014073227097464210659660245957190423576963913046715864376556627575394321185974690921247587588719195848138373437505431530017102014873754667094536638036972534492334955370144494788078641982989376040557896430533873893886600250433929756311658881865236895583131377014201289616494366844872898203598263275829927563656612615237841088369113899999929441274440387277852860929861983382003333819163712633023526634430455550849208965369447805615282427741940784584895143727311903010439102523050957225558751458019526659499637051133659806985711919476376509012186837230591569813574414259953445287845603067922957781375740540957558983736203998417035042412079668030496475624363806380015198910003069803625451828813043775043292989154039073681267260037552456458176151394270800629468916974707618465111032017646261526576283504374411728505163220849718333698724309969715377451775970239495483771241010138371599588829266797117188157470633310476967855974519315004186200905788872032548729884877177602172985074783405619676288653360369055442542894296829245221738816709171922288283900842909712010538534548691919491313416483085372771312711599286983250960958096107286957151890678983332760564225344634884117077956637515782465885458580755642801370667306030708056702617925756725636958940593373053396338978594659287198888123471112695086875945808597016409469970033072905741688367058811189107548416799036555880609551421633660541751100457345241164400133828554396936180109079950026885366870892980413728496278243251975520369284090470696703855380800555361954819230322269582705779573136684429024927358157291077507947479780916490682165413577562764661661756619815818748223509277836455285012751206959062722913972330663843715156777209600375443742847157088691374671524328788135177483719586592035383098893908248080523866388971317193568070645877990291252202614906271313613312866947232026227573047132641405876268613888662587488872455823059271824030582234958331902780601407886740951614463237446640696506760385347231664448798198251639369219406471335496513568374822812573726106392952150155070819287949397240100903368425877490561814993901376638005284272706826063847597376113421836573146800244477128008806866453393488927754561257953322437220619062737552488061436144364037243295855537853350918861934467177034501948046928867893818918050879720900856566411743051077871376436184314010813180247547325765932788144469982792287533854231052701205173922261262214516286652664456143483656427639018849930883798884442290225668515821317348286616602302972317526300690359579038843919549636767650592029041320905893699834498979475061851419680797017998699592690676621609901397685902957175053339011748224042300419591166617175755510349398542793360812884036364174870785134386005554533342367076075790343342576683615433186859215591209387204408322551144862933796016142915034981211352823451104851079292677481756454052846261711709358255337499481413148030156742946258007550793603393469567883137995028889531616824780611447967359092124101134842350981508661154395682998385618658667372985762601676469653417965917750690014399920050208736544764307748365496454485881875625534453059289330229441203298158525120361439286921735506352395217001451644787433184891996918894581792309374648025920564886181829781647547874399768284536199204342312606076985543611702871019126709022449681929634999413725535546660256329732164694595919642713016042576804173617805743585973439431053263558642072287554318574732364977906510316245774575336895120279141299804262619793113514344026334339727446301249782234122991174235434479224540788881469854434797516469535923110964757574076035371969118736274684066561427639900006788230294012584423003177222162109154983543869204078120314945300421619163214730524944625819879478790807217401760816412861403075587335917660653149157384662086858601240781589208157714477086522241575449366789791152363321368579007757525950856071750409071831501265206016227210478091680055649691370210799092374347203366561476558928753617026417644580000941294843428766061541982035083516992766240657823511335889091130434489278470823646782641158031834089229518762121296308542451602028183824833196484022402102505788109318800187996651067578671844817176642926932092127677969147680453050685186876463067519187795302917532796960208917874068031939196632385966472123392799671137871651834026373815144430642886799425583428989580839884319271267716907593304413496409574393863952850357035618306844433235263546938549182237333743675880080841601693006449051596648047901425389133124626588629590315779194614787967785665477026151396800601681803979983159645835906690910748158121517019401142138444369898806925766305928353494695680535465472644581896305987667531089133834118495968652417289583889260926510265249682804390751985593433486961876235349385957075965423614340926059270883811507025341281116735118155693570606251678894567112081401634867865668824026139907583665636801596390916915965915875860450377014729471328854638257918081489207567754167806357761892601478784763854383358617811234612543682623776248230141658866583686062867297033255535302890753580499529396785280898836114207653848011903722931977357454602583079428076919566672032873247812141173830111791190763090200064730578610312364429045168636446159697914625682116593137815433240763973591669042336236169285365427048103433682033297109293361507072361599328387865412148633268965355149524926451744063536517353272070454301715148247134728937353052637704705149261937663700638677210105161126522855679228042023538024757286952181894118495819898178025785019658227002913656736708561542234686168704205377995925146244552170748207572781934432676840535293625752786421473983294639038295423018950918647261321033486171742115370907967056949636375105476015741207836639626466993705947948770503256249814642114703479485388112734775680997125574104296023606917186726199761522387529429778760185135634733334077914746969270029543310328210019479769333614339129477839539906022413023574659505480145639337324367344704026454335095050812350124953447709781749789101109686071376666920795101189061797607740210936892411512944081761968593109407513872323240038187095486325529589157819456168033979275536196036536017614840241427268795768777016490337917344524292742027075709539655112948716941290285184007137685030978475473552146582995810271768861020431442656516202351732669611497524144392350008776647059043672568476054158765653193400526398008682893135194264885976222351074176520401920144642580059490800967041656990303382602630630225322337266509770389295854206363901396807828364565537946246239474982356608064826151718884620656378148745568651914545666307466380501843670341933883552898072379246153581428834021802130917690997345068336952798386582767542449106587543121885963119626999079529947067499237372138017170115409658781997835888000667076684303079199974789104107871674689357194757708343813220281405308818059836376125971039903218324661688893759762920714592823188541602673560145172387870770210491670914781143568290022422404261293347600447954605412721771801970866479977079339028708976684115515958481248775840992317015626056162212314790722491995501301521952378262473939268621030704607335332552639446625845195496610993947664341021679622742673696486878424263397616760469580056867025117464415415821367308552497676387235361684842698868194036269508112140055866175062161708058025197706443180293299293441320251699885709215810295648920862001899833260146348713474743588774026686257533931332597306167563666280742516479798872970828072083411539526196860972909816382492926907652583341315108608287636410915063108419822082146145053022373042410010092202179134132054620294225978955597596222145098233039514703464754866420075689627453239353751656110193303968139050505643535426544945566007299872597077100210488058326671824529354200033145004690342767354482432958362361913943586581111113401692374616164680006185351744600455992312278265836684402221284923197251486936494625367475981754296103692333626016169546659463978394866088170589432876047593723152701661016502830123671876574571290956624145827893498630852793996452771851626885626092283875003493660313366696403493004549273528780984871500625733132775871675509163252670639007881697805211830596126473348866539603387146813484372980685319502994440127962619608968531965209484219567199247522035006545407477806273229927436577093483678188499492007968301829021299276407270807632091613794781674721904334687006006368055913987998449993507418797194680888293439364502563156766178889011737250639996137400161790340670276848823196885717540999908660743608047868287577121563306184204301535151733069849007006414202791103082528555102990018596766839981624027555109014924769530490169170850028547141349554562400442218921149066739383837386775866631285114458275830600248323437870499648153651044626082414039861743321837767081991236874710299585379658217041680839090519329170552089962188545028293230861734785371668100687499292271080421849302875029698379582978092778075576497789419370116910099347091046307471410492720331196410758817739103625921192763042264197332424552549763260282417171108448623475128147290951602075506242577852170550361492850419924116445044262710096981127182435390023916432330948075382472768818290793015794048697906282663766679730201350275766073402881609961353387340118088221273845318013531256662536440387870706493429119637133859744248248611062008550891965809392435572465486838023053432340756883093356005606883925913443685955606464811653299121697211598160271004522146359074755697629773225944981561955424126638729301420514688442582323868722249277630511943552482571618125630528933288421088684624654740228950616037048783574981808095033945466818898917900167158138636930977635278372724870919355938815297367768061209398512404210058795579973658195394863177305137181063320006635538032387086885155742989414881505113376727262200070150385386710615743413895881978656365180271007630712766987278838013714625926984846545085009103342664605390265467247099719776655906935601324518378581964273946370712622780385573128311379035538787855856223422796012442760340204779149765999610927229103318295936576723766459977464850532514542449736840294805700759529830471221900868980470536690012878449648561975531252056146056153958407362581597687709068367026161618548684034716121401423389247599527236822219252050457674302396873076544475605454223586983965786624635043201842874253056173536630588470183381064887569977641811650399264351364661119147744520546828374029761296112147679865225527620985289828460188457677918121120997498628678139694407190054686632723741362160800611117123802937044236389750521226262580067115770188025715155190496541620794067400623690106464635709243857394233776436747255426780933488838930951720489410595539742764827472143351603722157304757277561388018740744494415176468154416945008378648062637028320500636021727554864069585917391628992016760303974777863643386361700734359071516962032141461752581726407297801597911957927313882732475487758882305825185534616955392120888957997020423767849758316603163288782977805135431898686758081573973874251020750712547137605506723983836708555626859262013441202239424885557275167015663107220599984325660994623404962867194324364540930471697445029667617312183127012843191781478840363862961537721391346804096350746512291789002658157686007766644047638521578583995527332025632788019993362889068052067324362476015541347411725109937481422582747346546437041712040703560836051980252069518684696816790919625110389183496878949935246822057204121452763303596924707907851810086903720064187760597939571634871497549456555149945950297112981155985091471589375067382515925461890696125364128628082501457226835187182839579746377296327246759036925748118990269772403603548209179711048314679433707187622871899994347640227551992575670522236709077297072364864207031088060669663912733976846451103473914938400382921995534781640608914946750793802497275237955957698011887348772128419042133295814280262217090433721997281930021474278224423191777333755492427699320208576414337413323776960139703945023397359666748118797613659935864742925360721275472829113075112453979743975703282231481759371636633348139323714048285931861983694582535224867692872798830150816873093821556334722367774547296528469660032235453625991349366030725155382060597198266447580261335902101851314756309072944371122054936088479876791406592694101574368959423013917819250594911184664102389926090791202497514189159672568727452263954949788865384440887231890370121161601471116397624215574197917161148561565920810812716441338410851724207635785580719532092491009963974240737164955971402626831874109842241414613378075179483531033024750825707462226459290043349711864955295077737725575452618752218037757192479133929306988777131921483337045706641451239133556298525420222182902062906383249325519321203578628233822471063707458785887554020471186839206978673952080666492720972921961841061143144558848666891091901358748935882691855460547577299600825939082870468357633306795040053280818371065992383585565262763080882308573970514037544088622670572897000257847062193088464817454516641394313963523505986747021914862890007557151126313954007959078312858079140358205405059800369181716998530820523990853298404421461885746187670573612524052646012486342743719718156156118913869242603597673832376225362207178616927643662621902964628260566772808521866715507176974610751551901372317145698150130830121095141349324268037371104757321757211300835810381387324854235464853010931411646854611901178764734947056848663954541742519586293614259207152322739077541239498615508134133909041171516984134083266437610212279645244526206529635215461159620914126743873502134866890207022349241735531209595240019151100002662684896762721565396290783741752757985157879637103967733082484552775671966136873890222447287578906489332694726171238309593599908721969613477488105463071098606509261383319905280957952317283087363377336008510710170040890842198968813535299081678800593371813254161076639701373794721007851223646500381808624551898422011385504678535508597151137768960301266477578466162532112273796594207402875364609027793984213514279505558502158532358098909747482196403550974361873731896289853252242611978634064338556557643103362992210086906857016952052084625715699315511766823279161944771263906494280168377705358775198391580613578880067219861009483929945913363456569590827283362573977871891633608158167393862627426381760432608113787112893629732151398046444656792103302929264958606413120980267145465144767243613343364763056860346170465459432284023901154728538460009654340291518866736681769420815766101896034953872351807186471818235949472004321206455452061682799049431254976949267078761003638365817877188946814658296728983064374513767275609008343880180283447898115343033581372956115334695215105048794912182225498194539915338677844529651974497556170663422373631355823978544185387642504590338574246926840909148248141571588276691613295531632290841650835263049492758373484769552857525806020647929826782331887542998299838267749577095378092168801941444653099920651013614079145418290831069943046543636550580939159202760104201290681859155678679613500557568187783577668931879644715689172214193145377438755574537507552154640230494012857472162393237101279545224357021613849932829919545674484546229751203980039763023317681833648266336630773853952514871713725433442556231600479605981181414576539042017714483862842789964865979832562597721245601899663697040616035516018372593220366137382731949115988565758376835157287617219146679452213290116536426939345162004949856051189835682870130731396443524313771761394792612045720140765343180392795997911317984927910011431239608168095424032560619083116851128245455861254555552892858434552442741357032600433234381485527931699363392505968561424371875980303688247277322558027504266644831920399813548979540221296041222863587322983377843001716891192440297019298292605324558804299076543184976957518828035048804409225042152970335224195798285894386692002670266868236171391797340994166890173197400180571245979572990796622372728336929594553755547180214829126339783985164025553158428355669391045524105100257075597240215133699538762466930174767459254437368324707753396012137711059180578670700066108936741409053221299012683255041997373451772983402337984345280044416908931787246217547933520394812419675537242108693900307850412803363772842876338170684430152124682519466337271154225053969341750124177477222557370654363412020544014168804626192299819778974972989363869632071692366481480927048016479473221469844346737138230832276742289670064802638708652624185285304269100761105773978505821413745412204212640170157791778804809890528411974231234133181699265243181015921851322326407555783736061460290853539749149051758617160787738397576755077682929683810239494547275020139055911622452571776469827876401284529029750703592933977343578278036166769651398141286398651118192400472126573270658186651679381310158216322220453067067820231044111203053157284500568991197299031406717377545407760983722452103705927484998456095150925392696626018896158176061422703172549706093528196057833762931046446339442341134670978068963390635384138409019321147812262405781807152072856094947641859179557680365647707351836422386175611691883636930646647946571010421759383409082251659139799349024106391016483797217272835468384760045430456012638760980486160492975760594579997013643708295157706310367390058067599334946818080051633622703252062713299394560038905779067538144545598638103699479374843051295725119738440541290913079109509676668278265796643558265509846419241834276598747758135320436780366086353993574721210136300986501921105617242970488103228891300017962664529994815020564437454399122246635858817458498705372303304625817676421139097292512245251529282358680966078064027189856396629110296906673611367696482348207927365578035107791034406237487031416153179633505440198396734208294331942105241593134579371503153258527253555216106338819537270804649182992176368318082690552630742073091742660953533698715689968178531301225552699067502655486502029411876256997532604544507538645153828719741536857949703429555080820809805834219370793953685882918337429183052463700573052814080015352328361051385434988479205749683089304561488003341550054815142284727607796055105916980970531030249311458077115896106714097170762329487931703038026899022355246922036409628919189367544480940849765694853259534178897678440176802354834112305880233191967831733594994802526532506343744481302323828054639471637239691004929988567826361065470362035098155502325430375709808424744775043080646414441656786881291467538309902495040978743549745289174472195151609635595442612999901829474990233085391927269730376370775547562133214667898826092423903663195525121010129424470231224698936875209733088424813873407939562566572259822140745751271705940474283280893195543895959587250295552912570979022521036083322693006537914094802365183931233670118920259447847499099935894551441796609276373814223527103967836829966855820543905549091972706407421421336020928035414502229989433632292350989493568726738630303182945499167362175803133460047027347322350947941896378177017164754188669949979093555689851769260852736296012526623584476531996482386029298806937212367425184372067903351197616730620658740994517044541446080873857093946950914716513851771199787062203428697301602984753832796585532310147033535241225013770933769349229962374738182259954947984699372633977290402897789528744947810474180055684689021928245283367722528631155760805682247690095685850093967554391886185931975673703264765739962313185136810647236543072317580034105153149468179662292487233492110124285586505530673848197913995001323626966603083222522566414618992519215560345995681781397342042382514773780090309335450771806403214276188427075232801573777573881819112868879448232410064068403978742258358787111550725549890865356320852372562543062458967872514779016178384851467775958237446200994758532831607572402611219158968816178470824782138789357738909243054079043915408788592307100880538724916446667798383991097177589308319878260885062457874025697067590596826242621776975696182008730563418558220019173777311353275578664827051003116231875093795753632805355805060313456053138966758270073936548984993261799823190204596710224266429267668121680709432118603201053437007244976208699899393630743486834416281561838286514388215855949011659851466627517467057857370957361743510154523005959650605681035592843908614535622714298615359266953867979577132653304851447564836299275848591727778450180344754527700683767647621732379645152026349825845858798461896919704385642683242356000932294185823559267087748533826741456086629333567143333353975851874203413333396966623689083887919414524469948320366406550152892561131404074548947151782090749828721948658519294313290652978268248624303830454330907636627564778073001016589870423772221847369437712405154922650612060724679576673526261497386696967074910078621034143361683872866261315146945111501145036302010679559350947750746901018052883763197642760967366194425415467274496334332147894669567179377939138048083820125729188171986968629158833479880718882042751263598959275862068015515314546080375623067686631967085006966820961800300139948034346419721879994853833906232726829550102471747520508010758563767275179050934315995643056533707649858757406847949152556073245647482684750126935405210896167611374552222536347096461233416189213894102383612822288697414478993419988758958007957064576914274061553596221187388859321786256535391379943312458151110464486214070309275365040786773319422627663409160707693581391544926564457879885629784119909843884951168553996329263388401998053494761734666355856590833230818791521807025794721618407867229798394750956964941288112253760599333942380290427092482020415717034159288390831625609571244986972532565646938134131985915795365534812198119993839773263211060491079392103033124843674322233101701196374339461336092363673047579585933190867469584920117103282828054944395321847224918432011167930249870388520465850185248485732480601253717440945721018078433508575554827440435407044742132691571622645444382422127352041808896248229633482545769082977469025205029886108875440938954081355402750263168749826242110044258966405904186459282360976039960020510974883525665615465387309949644486102278371435944316541285932521183972948495771594035982501541537537912130141817395774372191135277600496569575053852579750364163593758629464496451286778555512748817688107410637051073894623564466612337532517026895213699134505017792974035579996097824594095062546809791877089990862016069826598409151761701611734533666661131646073578090921904305223122019585711254386135073863692919349859965929968674969256639298328554092999377202237931790627506478020397523175073245608441245044188736350759368107845956760295476899653090216911847074395457454239436763087321936488189596547762168071651007463060807684407772871241645910044737787417693522805723330881948286035173488395939080792832294462170859421940558782110221558234654786346783320950502422727963071651179039678295761223934014819857739707909581052367088854287025024285932508998795201738220994955018142979972802817930135830756264803331576211586901864985749910039552444512793299187228911558297534151034078745213998841474274482187248073257354566287466299511807103224812233976948426943491834999178336472802807394319180677637643194612054716675179288537494639621848694485263190526676977548486696655003851980108247734221442989643651066042363261679007314355291677213564132639313721267415176633840363957002257496176639576541530007014692008335009222702750808525174798861175245332107107691230817486382160442498541439627376043941126663207074965571512776876587522490318096007097884711766125329591877054948275834961230428147610896322904537116879637205521092749593018160534505078669398460535692545756032389997295187747687594664028372908770407220771220581806088585670314550696725402825418554687359653882772822629611087333570725053822063970356847200273271047498177498451967608765006863151508605514952425541120024731144233591542005532986342197396827365482420098729967752074216316111727518131688681621277168712248563870015338858206616622031705392072342329144333420185175534061835516077472642262038126080748620871273321769347159351801862231465953286152809535885696493782678382181249251140259405221755417850836071084919881439752466280927362469292380351850830592805304185616886659516091190418799477105755144325908150003094362971945228905311882306070878629080336143753589253157102545616941520357931171244681844717847622773422611945211546107528092912196669195111195389708472879805234296952866060466881548126392088970251207841108533140829358675941490953747622678047413855091756820255183822765268939904724379048424981469162738368118752225929931778521418665093352407536419282438646467011115668129296139028044387715992983706682281829880278241371213177612099698025458637081294385725027713556218155059477159156826133288095669752956931795236142296844436921993167444612092081501823084742896312043572246096300330793792230038123109648067480803552233975435004915057689260710852946637135349803046976403963583119334361650168087880985386744456031869931680701210933500531061192805875252676087643635695109027817730879415745336500965302054089846769237759626532878277205642089462940175314716571423021022392038514879910146925832898303802163736045898460897581393565300403407116091948568318213439230579291463873893211493450798847671597523352084349668085591550910246601406848674774943813468645544187702643718353283658048597030159131105055929051530904421396180840404903426297391918842040648675792182614720941870364549070504831402208138229759784621683241885057013996773314225888272292707838318016892473358557934346372242595157659150837500289612792901851699567338682214074836319325220172784463005979946573791970124133454425970454133918169669711052977279402691417308240125100231160162668179774058811118479416977064896182202753295156722901612999844744292597413800431296200125472671274975498572579863301837711795652733842480987527392297109988162659917188393120823622658080316423680672826959113558551452584050325457591766145739142979404549259491161470572864404915020670094522777894356088010212463290480996639090394712406019806781566208809539167116725275245555158798741252557843825497698707383569413037383279966970802917434053736134898517049403602892171443764621408700005053070387483219844823987069807795847651737649641671171306366804261247107942578310438846793639141806771839318712703206803656412617884251291085239849954607595147483021892195990629419755318003388305537263789203094743851892119209049777826430330253107693085019570788812342003419577470762719189291197044038304620546050335291798545713469434124370414530725483889713191545371861595270522488087955798979865120202448134305713036704904784311339673306171783536851962598481983885292727224650838291616350855929900755214126080391975641121818048423809368001654725477510556143611653599057674116077104424069068555649423960063511096698130415150323805248455932775470597110827492942121365961502737290310612393317462009423104732909480610040756294709299641130491463505666765424064600792634079703738324363625032392385840998142858252075849732715262113498852622396451368619711514023504634708550520988724885389334401664724448973807437583706256206704048607973976646380582643188704208726512807498116220982563957122791513223333802200217337526518638514710175394185867417502533203432174939049279764700016873491431564543200681154309192661525911511737986051971611820163763735907344323915318566387707749684955216038210843075349432784082804178362548328183159322615714872527947528173205640946132954086856918040918277056157184411777906646855525409076185317536457573956117856269358817843356427866267141400742443903037245361775898165792737683324172380430391748015270352443728039107850641016542502081315730912893326817301315563418386111189524066309231473969184537003166342338304516374899896462308000716489983985893993074086995321894725617966232271174373859352817187526186152888467402581054085244042798649246617511962403446801000261865558738425097157839126663831361801637110588498731039320997279641950051515810544031360474232251415733674186565163670174975417737174197141525856038885090120526810973831967822395565767003054694580513175560969649041386380113645966928682389383287526979648177150156745229880498567819092118601895118085253182261338987967445920553160058589642256963574849698686700174057993642348627797129274405763957547304649028606319548342757951183144622502600944163322965732789308314178321478052930105095151216140722494443720376591015425654133511953015819455485108993617748118857766295279954343494512437616275761364327679364107058249628896933558458816369408289175096344011817222666349072396808343851484342069402206551651733664252045420161326223266326252733181501711561079059110600020092201844336349382448896314941007918091183049801674973184218361232836804921533351708699706252054492921726274458369118564917514457074853218948541812680123179281356465207700920856498594460151341305245612636345389267817394977690222109101233532846156802649119781414125097330616743807631058539007876283956902132236138861297031875102057081992643159014186632737936638390241687879183978715779941651515977926449565429973561409360150011181882338245961736537567985049657978697975614528162982900702179146612257068383377230079664257591541190061025298159560169167628756065129433932399010501031596097764946424544534446124721938309009386985669723937164785078995266958954235873105541395610688848109843935837786117719876739281559782205194548700820876897178498625492589994073366461824181831198950730302127675893998134342280588888928787433166913671692354241655794743800513469524835071603006302590165600051395784132850201319887416184617613982418229702551216421099846268842692362085803166660963844015919179239186480592945337686032257824725104307447904138042452649985174089197947090864866881754327442173990273868619055468141213632748495806900787212385906271761086731842413406997091939637186280312539685037476796800083152330703855609207795989498671060596310288068403902674423965403662966955617631399362654115533838501293305622291826963358170460404453507595912552335770430219797262688709100318939610543648835481968135236017936148062808819789725630794602164885977237611599208631611537238958552191658312946711079726860774333600285954649587910384389390598469874230616664329806676353635166704875337246628148825981444400278541151288692599964759011349339975710514555477251962211623682280960252676549385623739382193831756411500562899536999544353292131792777297588476840164039901643334778076948192219690926459430699478781050122241072204821835897491731536867215036254145344177867426626097871352633957176399883663600634354646227990138433536872533166000074723771913044741613815336300705477472641342599110372831516849441743315398423193578293282495573488844114834715559727823754866734133052869791387213867078204101559547775959959989590942480742683028784156720649218474662011336096727159639910546214648827912356273143038218315741537653191784712779431974635569871833709715639952832160869978001071475461307703189480675658946218720312524336353694874633899859065262161626814754395974128596484396534478804855958632077591694468704195326486811561710110979724449876191204640894095680767970352402593844524917629477959758355462036859149323607582477734926616419612030739427195711207022530062939124063182468894550679823521611116494296774562219225938517063710550115425750841312261973659137024259663867326135344106584058344875519694833867623463357859566006774047173817989992720379558135751003546991814258987705444906933467525469221331483713008788840051380001422250960476494884631223633241361648034349100300174619620982105622824066545216731401149718524012911327111963865355249642307778769967553604803357965837882518150023344727131892074545643625981687476725694516315938892861045487415149412810770314408661960915675407569160535058091701861581788796065794332404563551721191659148299224034254951012998181841627063793741133153680491404185867507898235416598381933823741944712377845077837829730296546020642445234350223043660084704822633016138206493643273508754482252714477900108018656298347575578320899885174324347100856444561838540065720694365860489813983715267132390845748112562304227484485379766203707336947971817431922546237278001614118838252000737778890639815618089832124074403564247092888843428109532395123862499499563101586854166800394139172645461507076331706533581516737162428990009113306739542610169766373249073696013271489348241876536119624506521290431175642158862269649353850177131902166244931558018782083047137520557824356109596521243518591094147793447006787182055444901290140950111223535761471262693964571076237839334969381081247326814581167349952712328278149054207865496615556175252593129286921234874324118944264220687455129524796626228668297913968345621342242697352996274285492207828783634998273146732433266375918900156008627628456278638570095634611403582951049323900044955334454660223293578697579220362644852733514335883540568750527750324964222887504554648696182137040336406723067925255254805463876593777157577238162503262747995358614359466541380412782024362586707782684028736031141424679597452424606219702942276396171923278021148800169307909104480541538955613803166789642997773854189391150940393342781780835864778487001448494120259068333616697552346694740694651173947172523731610069330654083846143658407589500972797731421720327743663194271403083409425814353194753870790472665437958243480267385902502944424545949206904254561241085846765131614242902528585902162848027717825807112269772608853712619113834343282788996745277768524728660485959138437938549018678963025457525628506236088844521186788971779133922256499363050525370724450436938263582106915974668331238866869738657463657435387578929119093717763661205098993889505951024453041943747810136961365588941317030180456037446031861271224029574709469793689799565373598136945186204022871095234045251826817056183564740738495122161388313603371449699425068150541500372302530967944889053084636813516464817033359596014887516259690354637246713988989133637966142304471804060984634633753880465591300787086505820082984047029056731621064806096468812790635612346100292865226427917302519536769387828617511994898753889492946129507657589452936263929192331179086690827800306333861298884300354445681309942505391350643795659417225529274490099302806135156449247759340498146110178260895973214980187971514120750942947082030629839479435208297188283715784105454981578379222192924157661502520863781833767750119776336007051846982305429180605078692176579512997574719415550022723102784722037908401722993250417885206970274303259819483998269669925521432177072230555245956882330518952740163810391762822618069025665060209030818104484775839903510062763406345266506221593975875927457049772493203035189929547920777802178249938695685728513104987440292117374851257468981497438153947401783072354897120543777995540240115880726175457340573481361980556851194397483533660360280158611596169003100706637157391556689593297964507832105181718166549514176186556027152100155797886046612714543408945703178010371250500207689435585269583841416555817700098234305844050144538294014375883866234594007795312649788035704750925002251746984601801063458117309152998691690344698972847386985048449445438648539284175220246819445001314629429118104834772874779246619363076033698109764663276762886525474049176289293065193020457370412326043188581403298431013182729996917062647019366109672031846584464559630912788720217818599291360695449532152840080589709822131901646477758434567840298842818233775985072077146017699973795711568046772208805881009658656698984099004613710135039997662168881761193763357766570683660221105051784684209945941069098981947291072631505836338355905971172343297441125423453490282507137848584539570352096317462455165287934253334310222443743366534279020774487678770542157033863428756002264761584379042228840648821490164312956475332958266156590835865428881646523482267786356840456697108310432823283374572056046436069904381509135924186076201732645873660717472616662785759411625271698254902771878517010503200956806384860786394212744785803488130731608576714127273017363914978222969111960909178102371504492243380933910296813086157263045269147245724395691630170636041678979256535206788357077437756468414271279327296400993884233690744678319061056774817848227865124008552598812974219516475481670699140698995797693515162283646428048390977701335055864926456962886513649009100693805745691046769497533633763619418596693506954512791285665560630333087514232076825411159005064256410634415426185779947644022808311303871141151346928348425520089707083023548165292776124606458732776932438979236749405644935048236546204318483818899796300077834577360708092297977467820118204953232536353819852207407371509842336047284233814334919237102150205887851621119966234341533278126575672935066217741318745272544102822054913687620668647592635523936526493170812489356932521035320662803328337047009044381513909092369189003810122942312899454925725313282955780382883722825359231101872220159379036586497314953655781944510978091761863465216808168860103381258166015584360026978080654873486293514400052630742766710132246135992098809913020876911833239608752765982094545964401361598380940724345028063156791163404836397521248266385378882775519417521836234297859246255809863797957934256760203372263333013711042835864078453675695454577247602396982703609743988848214003626762402907882343875265252965748482194439354448863963846618467951923998961469996293029845203187964862929510418203755972803463859979278388074658666911910297917846479249422938377150428718279640902077628422780664965211148093583045161438312561971876413286617037064014804121670040686322991557776251248992388122073402432232964611191753418667923587903048143984695781464965999535649290775801711071623767501013785076781051951950733672398611759919198660083089169522434497008859431841899114437015542808824331619739464008411546870883022629170126210738386929270451928800721680354492687788667414765305046601002734958255751177832769730017055752593385864629507530805433249360949593428696268609209542105904451967348131363014962655505570009847705401476910462895874191176970717139573361457093124447303752446625403619033043506717263752454876491897234499786182292712824505085583039095118643389743882599568476683145028635598004040265905083639182111534941026815771535920676438402250603405194072903975113905481891559300685224694962911710777840155354722971957195155219681169778774558172540646105609426814351927681952303878332400143371974585548628932897764753115580100593015103315362624523023186301075609868671422887775234951972107548460132237040761164232296897253994492184173438630278294648071768599553357473184841108883507348779333182928105727509305964513383925296396816514853566560478859296940260228051174314166448053452250844048626228415807286930374908449483097968907942903094118458218534125892843224967123260097007483702463889600233271298971072464163752511971480215637295876261208313608821459476857316748935237234828825323662839595304356431841068040090077574512769201498064920148839647722070654405023844228876062816460998011052332188380904924320170552429820658138832250077216341531470003185757773797982883175781376554992080260641749995709967451491890903352315519159321365523103248180642682436495788787822318256027179785910261825368516433224658059138134204099243123386768255589351078524846136502288823593105125325660781907236796619722141595017372623893371948441319334582120660400882984541615868815103325224392608001339468589500666106897231242918828101121937110550545696204441931503945909149587662810073705019358881064897673895305490271642138595635633868441731365426316659191102926859615781983121103741219196376709175713003200512454050152195218133565550916290241778788067422687932177565378400842928050009258949431894449902891302532880510728576127477585224735312588707741905452742841705677105590275247695322637222096551269488588081796287337901382654100461082229701809323803074902863879978190186754981527429009535304564793350835411701731171246559638938452937456287519399406162838040344081838948091641270908517123907591997178469372828637220083461026192373539152527158341444877154403180652098105705198850230061229790867526867927447682670510367074910000671589182569813615330111382805602456529641141870434741245542981604930321204606445686166145676806487849191800926643640525044036653746281393255564559393135751428143746473780924377977781368225988898866004516771408139673050336431039541483604070716073562860435694847147906255052067821005226393937109238961531910913853810865828847140661410589060135418778844583140636759699951439550294860699735899778140407449883248557989411757811285846968333645983867373809708053953339838067678232679541019553318487956681472971332028724420111955134261282835725107082098561196832622701724423329120126000289901828690178204989000670563501320354813002741691916671240787299563822074156969584341205581111260004189126710971390743793655150239846247988444146020066902592665362172298802841430679368452922674698320360670959068672440272455968118292125649288594720967093728309067786321064477674126786151996498206614606751325897444726392588347360020248583957612831209112890217669184573661382958233851397962293751991437670202508129759089177302570603167452699812530275328480518642988415659628930035623702662953724493704997259526821073767393737811143372502779866000611819105514525612335223489087574515624832557322434777327817552852472384670671189857335723073605736160169443680743340128563305574011290163244945593840163997028355169067306369788931584018804702117394327281421396975228518707150233975797755873834287110438088767541495661734866414370304089715358468661366092466875556787586358859177278792957271969611939142801318642975155744102027354141641516369033360524501799424480965599960107001950536271310541234870518785574277931174594940556529289318308024863221589824447231642050886176410353337331030953103216003744911310790014942689844377776952149364388085574893688392335435969230329223172972344103308028325149332473814793437316432429933143392089742818903185332069079253343109362890527721231147047285682423321738307347141830189732319471491529431412960696678725335771671470105647342358197721643538422573891369698662982134487517885842568994427592212025442139812342506216269968568921965627818847008879482425594409282883359493019316984720435596877841222435011673284598603666546189927872227996008608673417510530369296054223108670928422206807124226786331218074083261278052450346441809153111550394785815450712476434088580589084139323553886293472965680312918287134697059972498704296435101629421845443533824286604654466276305255540044054330623714674548487386719780423016994646734726084251442865817839696305544676945957492987075072741984055623299898180817039352778011611170842517936179970676860408232552710230599777897478197275058194709575112504793817101387762900131795548608068880678905730374170361419783184205250865974421100548745536262711559068965730659749204520722470013297471310843548246879840286182952197526927813883576118335971314166607620007431928099202670483481575090018162170959528695843836321466474496804337750139694920613908876514403156275145282001766589906643296106398902401588643432070257602974740997274273266757310939131909296289377753261749833607511133841332267285864483040854492721647953552418608344634670267671265763596139733054526616079109729290234599693284336647683348876073076429260773596295035819315402387913622713807663073360720010812962511603346808940500619060742716364262084997714494626273566252352082615819272562365105953327687314407021114974138855646414949976825572017044771725755553538266294132066169622988886317269895734321244538442184645679993247961526971453568878550377942312952234970561934951113890437344022943526920271519285572382739410737183851784455190679214734913549084086411832629632402880869785785707931481070110353590738327449334793816604160475224309824487967263203416180844164464603357417753480538213482702402118466502041290967482177921087591348087657859888791631985232966881238022948914640801681610705701136061394672785378537757806337717526354376067462931261389867706786295792645069314796785435651458230344572598781961058369087890236512320330716280115358238427277447655192775010084037171516804973813764721754038068167394303705719151676949493101446960883702567732925820595047166948715729489835781493445239681922793673463525908849763792540907755464766722101525871572705161007223643428028220734620256295190100293788248891283458539603492801033709673135377904341549703228762713550503567738261506994035898771905185430536480055871973464404981635021751340466985046851386395034591912486818516468968742763736528268887433376031344720481982758925134752248947624428316260809521810756972827973214831506266842941161977542127960269054234447399647315214811487819134933607218671039878523332193202783202954952129032786636639740833025618565369169762590268340719844268733034185055566441645214031910208249643294694637660733011380548279414297777793812058779220491460346658949204687039741504851298927518317879276005083452901842724588776591177435786938157945442059784592837145216771782568860738897835507276643176135716304727911511464128049561937896215126552982592352311918456864886205429171934081495841344333948691888813852336896199003190655078246681228185628318320673477258897104851773194493882029370142798560613764742279181157881040302251151871905858288741889447619433536859629153481547221802177509283946973841182987217106998500346922946053062137635098260829407822255570719164610966262944454738518288238224847468923518414403795805061716629575854440999613625759458010897104976332153043331611437017554327875917042127063248004200905887632156148502637871839187378040190852130318566874637502453786819802109823635093593542237728157580576044649802811285600082852411177315914282594466477249726669982690704925095879602518583940361490949330742678479460056440095699537892029812391624996874401421284935077673764494264643613610681054342809024689855168774272368034089265713221735994060416365124878741729200791783855211198474931189773117873059412534962474071380755181943099165593792512408225128763199809820176562502997324434141680473326891786744738274122796523919068243953326759280764700746794991530887997049447860440743769179123731874636813219634235648122036750834500086788820718709936198832901137696318796606752999666373743490098097183094985618957972939657354495142553796470928207228991376623564059231997211418186023416181674120547764354164530757611633988969063692655351326254972955558189737385529663124403548604034974777475106070416270877746632983844162053064436114863053184052577061725787331364580231859235563331291192721756891720352379850926908818510558861660016506268667621086329969460160498248152879998448298980482112184676530640452914117232482744633875547257254722923892223722470393451796324530100823861935313775850308596051736582825949727169537753040489542533096331432742166636863984821998354356403244663702766002704339695183786052762966471507407372363652675429892939142329434542407453384616289897360805161234992817341850070157043746519227651128375984875623598250500100685615372129046010191858650441249740672458181019766576562612430643721967517836693970839834330595175099488205528892762825572556639627338772318958904551094742784160049126823816676396854289294328056730973651413651560852097542001637173672671699539590486715876022422063048121844592176751436756403500098450300687606764725537856672806591119324716965435670214354088567652112031481982313985666649563871045545799575829323485188515974586332470955045687184525693956708910918299258956969240220312261955718373504036004795243560054037270576263373147440011084523264610007454256846777916722633799726690386584674342932320022520997992753137109859043566354100721719935521503920575968647159367587186898296419866445297463885034434832162071844236409178837552983869902109944992104096611380754004224775932405824569818503970535383180303593347889240924324779969240354819782529459159943294114787368055660473505921296703897933820201763595186982359894391212358038598932769816033412245968209861744524351833812734706559142882562058862263824781388132364829152233983932167808430275025314535485089672860935310145116486303078386900023431837006913679743446453213592624530610538009806891094280591625046815478755157438150528353954078269577901488390548808269478209781886832115072614049791304177173588601560039568095999043000860282623841426073184116989432985664609447981874048814176662326244131213479755655611750562229046896367140149756409400188180839761730351246331951384043413676950745052430525618836016121348112188765078730224182636414302353438667267086789310367996444366567122103730972186733859174111014751761391083409147563116374522867999448076723983760401592609233460481453631049226839920311668683077307596148766065616419498780771455823730806170335581550407864005612075330052514215132845042277006583974966993115292666067870859698601517153920039055359756938657103909378872944458610057694273060953376032798373140464332302430064393818955579068660536047331222438421201459193602681672667489475186066596709357704202756203424113221338410216962461440463692074074347270951224905235121311433752055046045994352600801030913613166043560526048295837751878597651350389617913066832002710058550438443846475201289670362526329817479259870887030783164479034875965542926133113427536173222215682917686845798931649463717868186851112573308971331667890722816991429920735286963693953340898778847484280056473760310034151159385396822589034473249698605807595730616110204479411717952125751319144971813997273234589544252121060897423116143973841546689557984103483734945349217347396440107306226121273765207296871872000047818472605342836295977974381108879464583031055235508588691714127603928836549650153162075120492951666663742082059130011628126958291259341568204760764776994337073413074475592037514371939988642463093475963992451154306256981194838633558354790670335651840560847364113012087759772655155963980083367163890288669424933734119671061138647712032911256923054522906196350912092569731479263704321816039949295566263154323462656831993022210237125549698281383498508799544500858032240992789190107410609745571286138641661205922689906693960424113587210276499424926872836460226500402038320456428378694305773046742916130585632010021320905088018287839232452008148747063146811065706885107570174504918144338008720045682871834439172550956911202812875460986588985214895191213038507490826098766093687903846457221344132495464202065537272372495826696032410931852528222533808819659023921614887582742059066877790630276008777291831951158539501554970324404384049886422584524287528485918198494943573450120371632844866226804513525802864632511741741012186029714221785173908323219796157489709258092388158157072348042336313015876577047872893101013180794618346305593527907841548294287852103223984040346083850833858224729236109095497548067576363656174689040250202662601724917681857732411019443720843686098911500891354578640314697429559811326266884320064005627483642506658419877466814081140371810431682033334657335933445302000586134662591416126884255525762821965846114627047287167372601374972504478170501452945905384619553827360952494633268403830411001405688959346464744447489809293739857986095787710945141155840827731656174322539323962153841049997448859979824029998815391307523762257871635106737335638963386684329643189759183225965310300077067813999838102639141338463060097121388211562863948424641656082089656145063587624409219653681396150635832072612004164847639095594533825974198773525943554826080410801171522821694105493179007786493048561921814783198002053812075088511588894095403003934936260926277002193747314593365320991330881852999442062478294405997346413254179178072728653474589238082374379240376722345853036705603063407129423052071773800457957172965548871118175662429070638403683147535695041123305100232479654603110957155166185663362429412714207348966379899181871132271094813344207614900245947869741283876953625828544419039379158880509957160873002375818629923764648117004870029409254656605234430788277259718701428264481416629693828272662951476988211404011082371321637480503365633051924989725232252777197165909133796798237955923935164642064537313911113529679890476469947011414592228848820701742534837791336765049094123939267848314262664977101010061627543824332886830163525500119614727129944175526270523356622556333843474637531390726576330299170793651384391402429105976562404505594083773783381066375863154618920467617749271192877399372699913944218149066519481454923512411364266104038940010243879351862766634007553933728510730692688593473613320597386802299840332359204712248671528394872850917462928921630514634392043059632914191588093571506028623005950439061199948251913206687309734082246922043267021121898421113056498277706302535633379598053569941887209025221243088018305996406955092149198462152707473419490988134478417779622410554297970623357003424704492535239310945052289631594235566060166521391923382045173395116515355453065357787014568799399300768858715436210527194781848054622013074543817755652034516020410119365421768014284744268687533385609841313652793231819386658384295284530425587152167857025459909076932186341466432531616180584137406713350089330669538735637944411902693288256225051423261725233301328415055098463888339678758321958993719953596152887147424336474790487788551807477729537794105167039772618951040384727206058162831598499566977857226785472394724585707993180634392163978428207724514370697008580540730846797034659412500729272689641288561618742611004573010171760214717920693301069654313017384166307340131322489663582330844785455754391784003117945270316116859376051113563766746202414593575753407933661150988837088775289991977483400428402344324085503339903931335611126130808604292684511244377374762745138685663836802720285363540496375119933629619900523901374043465638283078121671888075508643383908142113524574503024419577715303443900041747348277266492682878092655571508636859757190748832143658826449608640299712640538181246588543472032939865837206229297803285137187103359257035341770936230174409341061387575634814923887919255367693008493174550403931497202348085315482592185977588737956903667675111635973257136261340264842688820112208189669766240843171624391186239829886562551243477989552423905241623852071274916941748878389539316965154898322661868637001137066923313698713554612191328387018643788981890062297082795736058229307935099311022460990656964790674407924082092456262466048613330448399608737847964067763246524889167567522556421871238643699563600381902239757236275799674173803461104212732078569616475909022907514871515788040967198402507074700735925865878313995334720234159133975992421576874683447767820870954014845855990738310835973409773279315436261804818266395230629977984801383889105918196224775762450252392282815855788516595131472224734210177465957462237860719186069549514754455900345402340541896508425858419907236980994879149846343682626001706922654124242815697727494640036581476636078120888332598418737742294376562080247624101012449585691464633742500189777086906678693902066339175329728049521485179572411390481003053662020582973380051625690972064935560929049647248439208686434448145081084128114238308316739589235358307287025849427993223167314049456823266762260727683970189344952516339442938520137180742709613211292446910895680242155685417838415600212879796194846546105346215316158772923938765007166888141200514930306169637092637407297660212120534081574705252896950558980525816708459985338286822243359360085509111676536480772180545409838454559145893632484200994757563416803121140846859487912641001222285943503949115100248423100241324204008440823550973602805965078922118853843076822851388493208787496184973653394059518412505633926687631757766853277528253627108197148096836521639497356333021466980842242112982136022535461373991786288408658081584154294266797855907761708329546145682656012648027621592465157159814243758872269487537273021857103773293932100502273259019078055904031004021052814145717407966081118885822903890115989812817325291269608625228328758802940386943868529325652217086889650604337919985153445072342168469128071413190006894159209485939845070162958075911298178615528075747948234625924297209284066018335794585127910165812221341408012351469158986639036520487206491658511520487651297807908779786735680518559692889745852772975739031516290047276348400456896381643489889613903288347328318995881832347627319443733668581675654792238427360123480071726211723273347926764368104834868420669646892572528254466856744456770127827883139529268469439122281436986489436865064304249078361006392077449353042949481367706437744190951160979483257161730475053481757972162424234155365047443543502864936895035994827873673728421949514005553536289660666403549674258546146047981492770737040712182487995192387842859654272650996144779284545519779926399597983605707740127155729688806289044396451944748682992802352289833825635067521245664707763041365211006949616255391308186294103909150791973215705786638721459173020101061678047707054986089828919241375433530561001267701570612590007946368509930604962356245386858190569431825251630793533509052035564336541769684792752855988953409802334387048282695088289465752097709276451895898345636977815557617550417346150609372755544315639038420500237046268814780268775476228011960237621767415362017344992178554295788031861714845727726566103544333691663225993307522824283828023679308130644324459802775317838820705519060815431206299333654068987418613846815297923640558239169788183470246535847626764983345973504914210933088521342454340264796590500036748410207160157665595802894617124987864043445975276217916222881645211840549090799821874957313686399794632887150994427379818172721652883846456660173168089036950149575244126876851098599427482984957619069186465094238534902906688956692840201245091119941137775420131079935157138440788457409157046911774287736589123140972276874779359969611381535438219996616466014688974172062430549071447353164302250695923874487138459580591501261617081539581419247486748840660706630980125046397530403158064657705516631072224404456105816400618012920222779996443626635238671651178371577724993077869288931054430459153373046858872891101057871800134818246372671576590803161886435772344009519144592657634145519125872469722798488259817130505123203378237808766222937162984417910928981774163153747807786364876888354890449336085348611843341003281727662956641386530628479412273737575767920852768992459391781022323636676536926892044134546392917217044907944380834550646255901870131725826929106766024887885714063756618019849205300232566641714918790984172112421291733796261142350401304585318046153040439712573540248807995811538193948440721632509055689318542164317967603710655349955682696661902360177825287839955148743528992003715275488569511102999630008497125719052450164547654866223673999157203246816533731944799059256267201118149737590654713469227945866213914862828497329110955062394751761975531047643069894216472858981084382153133375389554472372775455051371027467742841056332034333548831090493647012734190101626502843147753237699992940327066646446999602031692583035558026759099765799783258381911288660856037989538023669400720548860298439425630605999841344021443955375993474969898902613086894035106681045311618311847032818474197285229416380754640839559211937826883602537630320439928854311005085022356246534241113092172405413294153203325444372521674922792257024762453090485829103110956032762745547990604246289293061725291188530047015174496174621041293853735251239779854623847921430348266681463638069638494135062287811534700710704857970487456526482243327089055073435922844572521358556871005795864628694870196923295233130544085869086841258379524074711983326324370642536718203785194312948677288586612474104038915168163953583257933431055205936931967457382461230881984406997520441083377715938915074141754655796319883837908054933738876262551199439301645004500310390608263455781969353833214119734417508007600688247903396694862510587091176955532670502423872049383919287474878023081061640065584602755712392467327772459921471088708779544747168326351074860882451648247546023035951303465662606105484808836278047087856618178955785695382059855130290772466368876836294538252650733917580976227671244391432249658043863600216825974637719018859116382091748233747857329673002948814186825896642211089630768880463817196413815108699782948420887023832059773843226313901703736463661601919214045372677694594938265712942452912703653809386204054911292437443811123584995162846725213097025706146733876170118541885433332804912109980946155964415299461661851259106997044985812223344645982888418148233776999452362768351830355589992510675337766941553745788367780056787357143693976920373048376974479620937520244599691568253438762194248456080388667507921024486320091710296666093838642116673631309676269116808620892224065849282664331240078175787352510219581972091958263115575932677146941678221878058094906449443919375066740610722304841891003931286524145389052386145524089103312006955968297576971681810393599181100765713134227182298339721098245471797404510377599248008190500519394305156235824686109524117800101939124530461257044284026801938970501632752315601037751901381185488935508573887568200322041238817839701961248561830203373785039109848551622440172441274392393517255974499134355700913110390839432066742357606252825936936665691164771413840649905368204739389261344326101757206958510366762734711489643095837686923006630882743644954270234156823744731568018434646628386249332166842071043833238106988041689252030083954714031374703604935481987954674731096229007427533786855675345559175130992919354795085767220290778964881345434848768718308449301940682292043185938239078674809374800879621335256388862379690118408591011167044644899170926595873770148496064669627109952333641007753278406532202257576064830152586733534104948485763828434251008304388327650556490889016983582276257278058915847809576987996376218175652849248188833673587516718360049608656842110355476022919052889597635478692875678028994022531441909067517327243368283015082389788873812051220936491311098254944365831172059033385456263721109481299224773190572498791325445592933635533183191546613625602170595259394908617845584912678116314750908625919206070385642997518998339082582060105371231564383781057790401210835570451297235060654222741053043795785932452736685174119602216650433961136612036109623095189463283133977147709486424489024616847730973234292516064564151237084144027307528579181858699036696030583093430209128505037153527319979548061825110239344146724036763567530457318396917012755116007422504869693248371656608037251115733402163635036297891881321015988934167500670448991455448301544837641727940593109389830836258343401084897347165606449285949108194123898956452858180838383159984662822778093364266653881968400695001587131850462548555129853169335123755927542753934447184798158549803549547666072230177038650990602553212875043612173141186035407930784529727641534906305027372561118840167863518209563747021757522100371210977341873778800427284028249474646540191780039047065122259630669088403129482336929838196280630999966091567475719815554121749347304065226872137440727896798978385539470836098827874366653578777923112810302339860939558298120648563175305441280452385371849364338912503145496514134656088271666066948724249405801389283791028792189671505295476617767938961854670753344889178236352047290522650408073643649475548207197169419231297010332594182124335219204446964548951944511166100454816031404513677225223396902971554372220753760834841173921056887804425813616581418724792959090349137999130529778793390375996694482066591602408248066084745345972713419497062496401175410884196342477799536097659942485958853799061324711083201266896883048187833067114934227085609547989879223794680307168489078129210707125223204485830203731490988448749743616337429083285722887179672763778688298516173945734108289431014962203433048120734544215755158770921130157571964582315536477237532706698364459161833507330414973061867871727916097241564153293813247892253048464794693427959925818780191868632230478727067797973480555909364989732457226604202461359108205044390316595432924370867976085385412019274010651882931155712339544095345332660537844018197910587790192454857799926550902434792900733731158935150672598084763050312037132689468591590112977983220176030127172109465237904982300089450811796157461649186951375565143437798238735273366531801418202128386342593143880329098393972104939710035431508028812530547671462223874979364216207804427533483271820488550558194411650608434363215873018437110861234294520045303105184706124074391731270602669222260570869348032346851526550205927247336460517709333351023754628178445221614139578524262050981127589990355447551471764934365868494098295350341096794345220424865514805588571453979368966031061195513039815041328176989098046671333260975640444505333192536852451029982146220882791857495854590816085773270802562933581701077447010033963697260618262031261344527416770907978005913490776257463362270198397961037357023347416032157355415489853491854821589927009699439941996431166328995514701728454550988011934010721450917997590330932881276122874395522877574394992359738203791325424764338027617054705065226477026371167697579302366418579315470559642324826159949681658052095111188175547960285292304338672972472423087094898976136236207697141993614380547436414727657033183524549206087506170610411028003038014924865577406863812293866264157395132166779847056051677062977973459337771719067625903009492047025252184742367279563949291412008336715508771008799527917002948478568999581968701913146160354566530686777849226828715689914612219432522422485529052296015009318105422463047246599080973933766815009301074761175983427097888775527633042287129671295977018933282324039841227777774370710939648411059780556899725723694872268492858042538942326930716535128901517522479172349566594146804947115461423977015412377000992014816894708624677613477070745086296168676497807685871955392530844585893969809932681172232141547143918684565667218824904277223832716516751819080012185335920618415972637960219731178927484846254447242913306702236630418575127983546836192961135225274636344500859889141973092067599083124177628843589708463162238650409561116287578364137969388958577135091738696331774191883246802424040360993544084694270679750585617640114563174262252318774836011958761180950988110496544547549624121061976100047819018559162763950032988279970395394386207009215001234060311112225929490108741976972025197316240067225743799172752068789596454701518323880029197673967809623335897998301229976971076825685688202588302381887623226824331264893208921419204545451855646638382023147870702697287480114481832987128836461852136840010239629112089619761760552168678176374220692208113247499868753077144249667539395715293771279307131413186335398714263623851570575858498117009729732426235314671248225493411876312490313488093805674039757226712883771918389665886245839001324445432166742556371973457757138041121883795966522757381948610560568332536087130767959271716457351366733980263892523491191044824882486108341305318799362393559097969829543227979725566664940195076765186804061584367497247246656937429114941337956764569240440393129674854600404291370225624856194217324648389452561742093917725329152926402982114670047194832641057287708695443232704221397157578790384198970259134748163144204833958876187508197407327773649259044955026778761075887625180267485359349264420876156535347341761460999018269376412943485983386209506074142861495111952951301371093018131341963788802628435041207896448926154738159810774863590439212928817039432041313378519544495970685318526735162725108045609361245851304312932342192643045024534827471284272579538774865077239237138962750936924643930325643871060295061699564777705904649123775914209854088937560315512853449131514924824699607875469000194452192578537390283526452892277499333437585909943548193429312993674501289801204369067255414571604114267702149527188450788179653387478965955077021470005070632154251637708926450492487354067813953451339349217573935929467172567348131412849022827050984657234239443163568884232214279538829476337731302944824985079145311987600321507289392832295231074167779029852031157648978923717488562251071856548135583345633760948325400461864207709966883483081956841699720798873862655123799941014870047575913032202486285673062523102439454068427960150222301483949941811976017562888684250905615039787322816814639303447007096380736281290151214241378543242749624065134819940294793041778610651076173297642335848011309794736912168730195001229438537286328044122209683788056146092019400507305725847859682783319318047697650434595350311081065028454987426675364927370101873198692869468427814657986698123339882402853977810588293699654860585143231006591809140404323300937822144809931898047117633349257905300226240863899757479770307316650075949545837895791728175862338340946042932884805297806115956050473394381127898871991952926578898503664718810656937587142586265408668636998828814617159248130763637204269775007926706556225935977984742502715974849682190286545011317106647867651634157764937936373157898779167632525195714995577889485785297398297948413351920927723781466002073628852972503201801383960513729729395064833084021974414895624814609763260461988395383782893112869796489072849493155158827240986697808900271059591474364770784392480250345726351595333965507904505237964520544173713286666512586981820602040165731797312190800244377982071746737219095441783053557410757783356622104398614708855037279037531352585727863645008456079251673528424716294896483141646681164128452704259739642048918261734250205986270328243719364442366885317000878173256000980518387740232418631209129651615984529966901016195542311593128826100107064205444680454603211562912062539348731542910223471042222901489402034187466285788462646341071390378748480004741657100521785133345763600804703600669016200155433873750410886526070836102120117993668514252375257792757422846113925492089898756992901920078602125315019885774644040003236243378305955570944735453358099177764242832941635077996931793698475633484460892052457529563147611902871017197024855429151576695933892219060488826724071968536434016577781217124927642641513539697764944726080073453340025334521769829975570971809622567290299502189863350991944574594733846148871757023720485234015965023939149438700211848325470069784879393490496350850710124641010237625056144437157596760248318165546918145840893206942923710897240366520192709163479574617286514030188252146676451213668933105313190556053340690705025474468966882951443088253774051682339590175024058123545092373258921398006074984620618137966567525798269056163699316713847195259963296538097807178859061027922573533634619113136100111178060175298209867434040895355945314157838472471385070569467943663002391392098276110579569487642196414487248195082103313714146271257900775761070255969846105655391565051887438779157510694145083472764579081675538412552459926479771313408153738942614924489308075244633158067311127060846407344869573977112413653298083622026322179088116581903429231027148623456655608789597237110412778618574755060307415475494083646015769259600341273510894516168369068981942243049416939029969769993130305057187808516497993962909541938086042687889583557713704544307031405806027404820152121058410537973420618675163753200951018998501709714269523018283020504959855834174158076914417037098957555548426474298120463553901173937657654511823067841846189817386575490680018523306626892336245691031751672611584742634914690667293242694194734550224943371237882218689532307766376253816841743069099966253168483851978815268757457650647759907238964280839538739924556151544836565582670666089640918748826842046827840200747682753589233596561953156695851134962379082133076313857084017967155644034200537412137280855716271932788784840910331321411756775138976473707591430477920103562034649824045039784570943467128618548136995986023790558712316947189991135799511537202320979638883371687537723778654831765525206086637076425812869951709616446637782879027532456952551417111569399879851295304014277606277800656504062187131128033638702358087244347811836905126515918251296318922393019737328684148405357476225337968518929881557201388773423621817831739063809364362804189591645155849080263540189116318645274360980104656182590967257449719739053364560162417128726669883302587741520656988321492216406306992408213922809352768758418328508701240346187985886969652254209617019349056815176109055082817593900172607411826520726018613246358799273967732880155932812781385118843733344069138634255545468602149189352805193105350193780840988620444355065328262771516727777815117195557524803328581754191129628983025796723520349393240227209029994691425702582804958799524768207080656565229297893934366631432366433403032685952684739389550495535323248267414834643005092466622983374186955778527056805382626964698854931490622187733174980900202212530600586168596838775157925063840224317129297483901277224992243253207044313675208301804280590825428164062891629813739330454713534019776183822784625927006261889172465704994372475045335899210948994376296310869811214534372200157730021911568490211237194910857467306928446609739535285666513426743554306348937624472751685178656861712422015869306079718059471130236238078429478934722328978056494084882813958084475301068717547702063196929890739449529888731426065860878878699601455680919879271492592481358175021568794600754677410866309929027534901853407871665379072521508374470522695879464238577284506714383827037382031960832132141877414163246197333913590075000446864029691437777740989046170039914770793462841332575252095738029477241793918328890624802050035042864493136834200406249278481139802048817601961136791491914145745666178501469357156289712776437456714446696014412025888441989405658547140653739506675350657342742804314049317598355129111548999633189235567866109664005638940475153295134166346495442121506715362649271874021308743358914183340269336869081286458656977461148895664710225331977037039208626352341349108602998988195245508595207780724920586930382984192678027491810637456493005425082536809052996078276733164411903163676520876846945382445667507400811370287779791946036446009590914395979363798148811637267244737320349690693314019542710042527817518566706081683811194889657380234625658692197137199676944766563174931001301520940787290804533306700237320934360442596007281853102627966774944116683159690044903398479151062180779379393568107681091028054357344525299418906393674557052054760388687930531952902853686104691003977519636821149256459774222043082009648821780139640439038147573380929130277142743046264237216746815281295649800604947768101297830146987430521819848279541115488976019759464595156870059640092701915909541333634207766867313469904200602366053677016781807087284999329509666099043790017221307602934248860839248669083294255824472281436710103216286966924446301820986386483294410396674406242165135287042775869704948500582959493259642164462141054986961088449755608294512105542688236434265204586547687342774488561593314653431179479014792573065007986040653212092349743033510178235762170535835805376851228300059025774057804975675125773870247852989021750193467275304738774784294629799939948986965560262048322044983125304570774480329255500716577854400932942687898640311812449277892223496862647231351964951577650436137913179410933882910187065546357676660297472688802648636122493472795628104376861532312882728437656892729826513720097166334339758698770290576360403034160012838895759579266106216486286773183963022183604243160880441050613091388011641889865721195368272859933918774062254482693985841038034072779202429939885700440426960952492359178468649977748748106413628858658948107494312932586215352160286175336162413392402962727218868684201220338759562469796805976807171932925655672660177236350138420464540005346059011448247069821514384407877686086968900353047069135975177227553043649625677567976927965477810563931018151453698149611059222667268792964879996642115637254748978420134964211990987864804379903370458382368624257727439120774678832211904875633471644852777277976803446828101446027270039204289558112509601127901003963882298783825164863377260645131914222482656258022658612481211298738928796682351405297324687359747848442385047616499643469598842079700586734039414074369229914407554761229414653690833690890394244457458639348747241475845352424268819750108713273404683869013949607622808027718003890067586660813382413596005363896368149929270166902999454637618351618283884910362326379695939041953258648581435066009211648352428921758560726627034215179010954314351877059841766123952005151123324580244451325582840193102028595262219927728698395846127315601577131498260443071152082751165057303733608169560045592487582847218098940432423812907811646415247667299061785568115629617563135126012586117923934109076824265454649488471168345590354975083883837576581686204047782592120642714313612157310584152584456633783790101196260306054091304075065482242290243029217235388544711130387734104289174633821180273395932969167409024558433691355084516099620973615905315885404338101811398321254831802299797593643258782265535929877631165078995967195661678766268431645598325571464223971110168630273328592467534166845641396066143424368816686322901601297801528397917825204752864935168414479263448563054487827228439117873695258918518951085295686472006657630834759859749380892435715523589806920550646633645553663343795244257385934927133529027988980051449179359453283070975500814406566685257053242803262832264888914220244563812032994544992633825822996500834002934356416589938123182053160708292797108012645624857439353905422538039977657605025151233782326868195102629018119014350920065559665496307772282490422501112398350626015448361878804361436370832388492015041692332962061815875126978685183114139048015098110333682313991685057522331195928228503096428678255355568276561990958445492996758782405207244940989479071088623626420792554745142945066769849738414407246647859946177266873037657278848457209825323739286748681400815455437706292014110530796705276752946411553723380479901364521466282752675911272741829829062266139732381190566302051576696762982669814251065232731110877229446538902563907011596884592879701605998597818628691081682577850724379458769906306494583043445038606006206049484835895106676506730689744051226688090333992736658615456034742960819618112576551988699957353081216086278603781721499503074816313021651556326909348299598447354447841209815090320194371377187739095606062266413069099146995578063673245662190535615894826191242905449350949724299372904944420362262940295816759663389794332958473182998873517317948144253181600072819643175620206130628674567494283688389724172069518369851502372992688745294447722131951389206037535612229702314111590867636981589493669967974141025466605480611705004727210686934159811267135954279481690600424802132717043587501466732601219539254445610282268702945874203629226123462800282188130637480559805801864911294017681014119594502152068500268602853674745373740842117201771479840951906745758790234076117113010706622747104515534571079193918235259444115274629235194735147521204290782982407388256784708773144636354753294354667800935908214857978656618910604047378743856712766864654298993873370799909952632747893546544950783227558477991305624226991892454853856459405678149521344804504177208941273572784585805874081112459011534505025624209510898006482528632854385483095146572848037851829167844700499067731041490070518728949379153510546829146948143770797879022222686418453561847174746670621928865270853632969333957163145931533293182907701954274729599116677231219287345696052134975023485133827729607835507828313043374216668850783826724929399046453533644107454587878841959339702222522833213202942012950256000582218716704294404480620354780903603747491179863264771689393433140087049012870924878311095186798823309792241257408979931989569205189856242709685001955355865199445387728225282563416367651578478731578980591335888073312604172810672359915924505969321939716030339547888035833392543272515612186802319168744608040814035308873013795733565939678336143886222679337291885667479403172645217921941058347853928171193653765243285448573213328984252693411909494125902343633617707747342438029441893734147482472804076323092370992955093652249754115757097739506735810152376537424118607517362297655043178785386388649965167179338442687160062294856001465792708729518556744266063458759774257304547684445141700450613452821226131194394966255206573254538125255703919181187636577480067918922172056322131501830460689349622347787067842873116504893891019082966232751905645661620796735991716318543900644297959073986204512717749041667672707221867418786366684821908354767999350365461241243972735550362976241756620977163122676818086961368435165016959615187784152990702551604169688586017135412435910666401406699125586971922618243061546272866377047006320997989045108595021480086310160584133626012521311336434195214322295791575156740683075723312205547405305749630581972640811745285044239811841254242136183449074622605113851765167472244979971323797872764104822851639798237100557416258957812294449067551767378093835044935367506977882575145805358705443094252056710455382907631700436473688532159977964999508751742476953622835749195333981142007982985391562628932311233842854156738071227345946673469885161639743227506185558473504062709900335139725859292920878485538609209709238057426051840463764716237838129302893038166271803229953130930769740191470632287413566274926884587980261658705788414177311025715427557732834511760291801260620380946134479266781370733568748177467596712961611826669848825927969324599250598318323838645830888797430748889407025542035635723643444037346218517526533620171532553136152436432188119481190170739912222101563216140256641086670360600014495385410512803892706086405329847602555493956499742156593394505411744837469204642990172692199045729096675543672632398558816731103085853712649746142319413687395336179262719234723995544030657743718641657493419833064367911030655441575865458098058853689642345946938568551498723608729186758483237722017659062517465804987205578240902821284865407117659466227065610016333713700332257921025551513472157145763402080295928999095088548343581880270249903731699659177493007049261682331007443119680399546973033340658720945461617944828875935961439688978202017220043841692915509393743219959400401608974976932215844289455866514752237459118787653893320929920489560352931798749509968325957423113182163283286901961240193229093002907789131833494051691317342010374870490150061110802614205478095799999777020727425002510887257236471479627227971491291396927813085003297176904851569721104768719167115363856524238687892005245138416972625722148231136208678942536402095662485638885112136962995946768371429877869454795996086814435138412412976419786303435022021782607693106580539807099288590775967879653917565946041656778415361229521093786039949292955499853486365942868514430846818001645365830091070942235492822438125214958356518325221044035907304175038649012951009939244665652616973193808167186920520362930469989638529986634451376148922392296146123823237428511274603333755906089448689114574009075521802479568341379558515425544031688216412279961166623259249218712807262702547580268739716636195712303243838406395165220459169764489918822491949037063456427248490639312334577940962769554136429236636261245999732250236255534576222222599225203393650516383579306828138816150124713193998725865019882663106981740895609385262762677636752915696306316989221964924741906118041547496366199011548590591097324610394008760527052007971668040244849199779391151369077175743357051618386283670644584428524429676706713446852553287519682622170426779292856395889642955008058659051865247845184364361490337811461051211418252764310235826342869022144613867866817403736720842932878117235927362021170655318730364670606108234863881844187278493749425125585720509349257311732866763615608626804213362552515797384069754554075088429961925139251185644715038845445324106884137144721644632044000510897508652203146016546603932046699665719180744315820095459650073404949736524988460136144764655356806757026903451446989794250584980357279431790120900387328984805790158404516880004494957990591555689632657614962218307273919506049954605006122270804212998196787234499363748882936691489705431579393383132986447378113154872824610380322361316040320664699847383247649907280999313460231003044645755039397922894376467898525656374961851871961765365551252792393735102966094085788115313916349961887647246511692915015271405944641422276521601815521622212969902702373974961982985423172767951319777494331758126714231408127742515576269102840779688309646087642256657369553784641117503230313599931050268428052381694934256927990147625656832267951832434822275951825498396718774218277444825070605462824922927152319294335453455101998881479934226707910845796302892232309138545796271310532781835864942644290494034398956695555427691809875462448513430936260308247215917639088531916520485122871203358510673346551178565606414634233821969093655164787210728923391149329371837672315456658899237651163846087103817253766815241258568615726899778564421799304736030648960974340276436011252557055347621819907559291939757603599408251997698039754274054435830194728908297923688719032491216915860251834666806243477147121449632818996299988946274385591960277564044356258486786688024072883175937780517696815196418632189213839937512184853736093514681729257000266775245718726731762940749953080532597435603215276179119457351689743701222313896654062865962428949098745306825904494358441056104712306768428927198513003682072833347523818654550126774317251494763568493735668284289303618011379037007965786399710885333364958173811193356272652289140886224410140022038154439412556485661284559753114422969363603084562328085037339037200466884058001849223465277668147723098270845027103307406398989430748596006666444536756803434136183992878790960898588209676435242938900667956188890803936619817030844544206924158443028119916507601109158542708445268302771082697637846318087528549007980855230793369770694479463728479324099423255163441136837114629580742059252533567214843730413047271436114126547427253866337183453022103993870257698040726309965597301400899958668121728954377996407848812892770206867434536451813029613471446184307046536741892455439991649496630506276128135539995689089709677705472573026515042811960138324270768130117654683760512003640951586944415141175069944918084215249014726707677980460608087928105431674791542157933161867976719285181421886573419330235910720895220454303646242859775649628612416694314404969736808926310831562603887894521669869212529519456643817254298760357237394943239151875042622818232662142950297077345800527365840342571892763161433892787113016850019072572410830563728711162906159327069813276299846848719680947939176431712531394864034306080966535570090204565102741418500690695991698926059665170445096440363588088151946727448936924113026913248913344428657198298715183020816585471682542704853271868189316491676013413221943578449235694360184627533248977544631185557130776325619022559629821152984322922630358850330661743278581846073664354546500727746324526544885143773487069145937871199419435308865066716675426280524831254235842804469728198661669182595781167099048415001907027401043781212191833536968367124413363181321556562742055772359588598269647795614902799650491498265841743281596930557038081567898492731941420591722464215020811981250568286522886950283417763971768619779659174403582162314823014493191841587570941188122970109906951664231109706585208525584000267329925847831359389516098930750963228251501703249803707466083070062298975604067717782857562372758267676939823153646730488028531119199046109628117765559618386147334750938728484996547106453747362614782830191560679032836735723426482264825315005827896707743663458122028803906185169382462672765590497102759354092244994116841587960881059894157888850083255665393471917750578690139772519133297861240299671311089043393715293297039283924875049249346405963631356085456910745254707185609909799601475067254725950777014693891693594140629131044467483776862990880237141328705173156550450227403932156533075681913236107654770296131446973296295678919397127603660383442500410540659811406052973665070481226202665827147282709357894053048983572598483161337573643356434456316181371571070215228857890116986851629539718630180362621437551654124824261631200285848348552470205774538382018322740254967565839243245891173835873608033971236965973221517637961854981203587537802627428424384847714512842045888675467989100986315670498044205272915242260191956267045051477767692968346253481279438523649636861034738244925203153938027146150621643187876456122531064493273775345017075365898576256584027293350022578991488351729094715652715291466557555277653418189528170863499281822076504390154150721628601712389432764808685304255063053833848222801483119389909883869126511497349845481107429773929445629056916072372140167059977140886871931177270452283286911033615434736149986131128214734941481451382406759299553553841512199208699392126997335705839715496059818891714027129513009007276484892782656510047383937146415889397916995455025243407680933017533078672794572789958651035608460485772853473655070698566265814882341476343664072582876114347530365976189550485394976250298989713482491744343274887044050820074177657272550620717007662680839263555927806059139741135950155226834539786889399066811919009964355907446140288304987201015941395072142092691878070079772381034814866322428492504651658868865093930642094970799755007729584345188249933019293834005361725695071392638753624284899484566101246550702646997714091705557542821334990322418187628042404314708665543320891618075617093609472089495468753903454224692656289069068627675343109146614174475381817829873608798726572456768301047097178636521506342648939913629185235347410222315108128628416437358991475230544101690140215802897563198972480842196931249584868581277859755255527166400987418844310482458983686042884981578243911287867248275116796211042045580386270365789836899102494214872120188990071202472353803430016115242073594469532105620427311607993641663431582282290684190570313095520350485431621205643606284020190785250382153050216326539444019836764085360205349272465176131176962786256053138937238540568019089119856378817086987597619492417462179982828088426177477814914855007798819428571959535121042837002922633484140264633160470813764751964353912457592841569766876670488397905318047463047430319138956393017053508194903162741008564815843225965158321733195167427704165873095129243736059217779034290874064875945997765547057185815660143425448578378702340692652381919910701079513237415994047999701138443675488485892163042184720111582806380639322632684991802921783275324641728259130896271165618373329322673973573143979446382003961162284971623523569794204582729838313155792465706434953755834603283831018001470645247755023919731221161031382226343306918135875622047495167637644604808279327311636741830741296331625706689188581846197097107929027677827160533871520637627458896905484381692756783875183805826394567605047809942360646544557684173601521505175013521908797303782557684948555349243398216735101758264495443801707809842461721870869466810857540330304865638028551851947125537751066464789515588689018570365415122586121973567960054507323491606855481611271240833663776054593603120592115605048625931192426379719116230399103422090525022109542873206259903183152673176929281327520525289949846638683390176374393886317235946731977922295889951310948532711295544389759104836664970273711880518900628698793457552345608210478065629656443589980781902922559933113443532815985036719246985382786327815333915150549342222771000651355570960852113828222246997877262913988947210375223321031993156246005394862743661826424522487566431448887052584441257559840478349972403353716918781231055114833132709685210723755244604910913179572578903057828707511852820966685514814452166919271606412189955282882749172236820287302694372041644986666433765022107278427515095159218720222942052641240528191309358591225643130712241092653527188850387952669774771536539277486945978912996047013207703462903037098547490200831517339311165250772708947969969696634646345484910751061230427845855356370216960800037527134293480481509320822664428645683315184633493418638642512316732112480310725503115706706179129341548848780320203489102144654461270612666478155290262328234697702064258274857370292992808808585987725802011578345948614170575418462885260713527552579385537641003801860502561194217609581366182553525864148725487906836188449150806478499952389300828777786513642663148765009117440688410546149015003662068511222342197773240687618733656029955850874123240032387024847753168562663831195402995691143711323495263571184219130595083975524396891435239545888584129215569801204327114504650096248137694865282106860806800863316681971376970333045226756716666016425702348204312526799620604876388068350678473459758000245584358653863559265788774743259826781269709046946627690170761648916473928647353644962184219901657755567518626018824717983386840706781945864685201397500068338988905035523724994264429969664902954049651792664241433905841288986587944048969382235311418641090824878016404844392920542467374119326305688768271001830270007360865252140203718097511440363166980594445118870389115052823011362598790057947103029674398985929559442796197266669819656156492137110875574108114269389365183905439756744400155448984886397220394507053617204112337832368972755627711233335371340823492726205576904353358356145851969950906527625093341873766928923302937216914238733407268549332168044176348213098658820126054003706969637554043153873901409672311820097597823223430250871530372911954657440050348643213688518539270241691020157202255076023573310525863765901624748411336095010541124360821056969897735239872152448038894350501278249947243617121816651057225293489287793308145316007101994895742536678238668027745886813490508399105908121133025557511152153347022269221585110130455201966025531416370801983580088262987622894110251340144277421939239831209549749428936505648922181180387271611811539343849589787250074005591690938319038815826475471424634511114881799319945893396643287737868606876835161718931845420195137917800809602924828201271591567144396191269464351524251049808003748314368123545213052082110428799375966436110886956236424828249748661022357466373683671719029652650485487457333081729593143075062506508914643094989331449964997682255132694145796645893681382484487928287093519944060121685893146521217748406929902475148576654456737181580502042201253115579208009774552890975814687374856962035818310368417021968817273261224423209963625023366495011364902434741768001731613612415456134919039160944421178516980093761037154140687554819990310325711107762280048934556210513743461292690240696417613927753191867949277589685760006984621587031589532656770476321605722516044254598963881637280701949424667441089288471548467408902679345986036188198896178204794412072436971901512202230519979565544623398743553648821678601927747077238486988313257039178211159214808651599269670085916856227571689456277749302547676376403029368799007413595520679998801345483761005909704503042934237937539218558028389713529197654053850110923288136086526407076687505110778401609157245817644002177475997805762767045377134332941409411904227629618550706764262625604493898444814691107933600178117214017194436699599541198495461469961552742216673732093797242048302426115273103107436545963090738034151779777287799488082898203875904738139883244006713908808872268575221465196124851528535919982793445504736481100668854638243765337967286658629926499022035717611969539475255559200193136155224889528322175402698622987430486612544251229408327483131664544210328723581124998273088671392185466562887318184476666039664512661981572510248574926006193123162368117703865479331168920690953068684914507683968358115217468193428603553570677384348034177839656058661695137847355327773107187191325638055382097152476153973924066302498227697580827142461161965482559639803263662652000396017682636696305572348266406628459937816601259082980685777082101521361283875032110326479699704237742594365901908718749795417027897487223915536566433505288853908187110665234152587792695397970160797217980516460815084770797208089355444065369954008152071455901431406697980275701276257112652913578710865528614331514583606269311949322028843984138821222492864302363179203120814635209069262996476520970359164211423286662148166697284128303030759225771004184818623563117129589620361859859541076057504908694511667608065097983309243844797574234799812526382943802925746580226747974757469947722826574043377698514200287746544819429888827291361561846367831336213316557774484964292191178100463391188788518792498688764779484803253768411357579516577518894632303183454710362273868179611528390216610237857912389287026890820691265322412948587697190352690914120515406644820853836332767620433409124372857182523426679993923139745312992783799419620852315621089283941213120810525812949211076278844844556501327892274381543747746459532492870556450780373556949374045719083194465960802838458840711342266272291000947205197600682468697978941186022025524988553949800054385346072066679808926053729572140675980218113248203893036153621595433795252661768482881277577300093870481839452884211565664784998012432074005039756228843485453717903842052327368901337467375292290480438650093651225595952751162146005311632866934752399037416362189146177757603826198602538864869073356108951471758504745063111731181508020619413361358876987393838316209684801073396861628876465391599724755023953344729010739077758759532145844670885805175390784516046723588211525462005702772332055327818223053153640459964619703318654670047105077793718110778517021950439080031137557597389525866988543802247817747068370448810146778267586344173167237251043204469388691416974220815772893895333924491118130361269090342241304876514026716489134912587109670617412333245649410451705026247963757082333756652690885180897857576168553347880474435061945671524432098701092827688533889727194302824664305541784288643826134102567720366563862569707528154875454359331635836245117889388763242963124753801250840064660377574596539071638207978892810582790678806678193032028264008605607175119747045099489589770892459061082251265145095535469580451027843448543368798334311544103567604549518354390172189850579389285263430625828937624851527481411130784085403531369153497351955965824202336874583082957422278084211957460069378300491837393972845044361774682693607207235391851256364228776776163733059093045034998862751415881281528123353407213814421555017019467913800532640413718704085148111133741528104111377547449475854247236379492360440339723892454171969942063281830968006363423923879546793849792989814447593745719168685333629046565604273365626389623326996179224883183715482643353363160460136433679711517489791315194914837205819241114719000781978639995767806354209196672157994631905820043874776133357072005426985134207989618184331293383630667878468171071445599133045199241357311273655617582475848883367040714576177835567401600128692897247822813606155383247808296388190950038283681297679116989631368866795779782070266654470424979966228126010307553653247551002969324639555479782545274043578768267136794074587676660824107928614669202278098100780228734374440817577910261318005459861983518488765959848424698547288175031031821468403343755885268555373596439786832231113419170803750818117459348979514838812006667060509569345395724661002431233267399816204555513530602231403453858317095925170401867411958766002867014238856608614428426513336546659088992430957889306683345713667865416524272462727020117921001346105886029109450822138199315293745003726899639055540518579251180989080050580168403421610386362285865920959689229423520535482314582874241804495324565832704071345878852782338770774341392424797300528381388867608001199265385316451924004929935945249780364572292729619851700835598613530067235586730364035982856475725377626893739374023574304019396235985136594804730728095338252239366251746528055444036423196356380259489609628504279799155564497975614209709868123778051693247944003857552220492686594375547266402802263689417223817942752935209486356397392481035474748682044345449441218791809427682863473316671077072121505309210242948343509896921555131014677430867934812251704380882434351922395508553744961975189761414437222454211215414939447228229207560268409450052410848390590996055958933031730270968308061617886742067716192086521463128405618270186427278491880429248545342506793362378555538597636838816950156686696304625371072756019040846268870466823408656038046862394118681096712549578041574052274921221835986093980093203921904878690924459581994426630560616787867221159777620900937484528275115166425887200307622186229944501738900657319666011560785884673231971024771631857380986676349651943983084053620800349617088275106961797708649485979840786394622765071299320659343135371368406037957540556745033913324678143806412657244699282890250457875660204928778740056715473834841506025812942953710941201006604740410468125607045793938070097700641402994383617684280823792743735548842177846319591189205987205153282821538327603695861671935770482980498681245981550491803910795096714757330037524728760356337595016885973757129370136213883110398509102778086583662584267913559496693071570306570669175618960331356409755162984721005695031405784904112276498119730728566321855341382020802338862415820767479019184850362133917129812779471628690009629807817846655688225272978988873632189304109432140644474064324186936160355258836421569789237034735137771245773940312290098856353149765048405559630023466417261797633900244039855533681404003058975762323186965163110283548357164730490460299710859754561502504577042628743082759773274216308585590148770907751872170615622169070949986956763123071373560764805725121565502457345006479358407932832418351264858804801327755862983662808870289295509796606292593467158562631149558552547754767170407744874095805091166245220853940766689831307963524644973068588721656123626425854707092486409677124809023018997826988024738935457281152692455005115598021862764885649158862961884541949896781194155277401628207746267538024000039017713623385076739983621048101058339688764285387332545314052287032489732701632725027790075656623882836702256828540600215000974393113822389769581999459097534573240237605261710353231394373059557512469458631751351897692641915178595124260591664376624412387604597232841984109505859343302898664160081082493244071793118924665275004365613124822432987553482181234097450499796955345939026982425156272593111502286821204270793563473420245701563163012405653749758485632755366489962418891106487981725916312620888018417018305412710500928297025399390596899720640045594970648154624867600259213080823223505237390733881165666959536451742000812699819854150118519391883976375369944962270273746034200547444345922474518601472341070698074930619816858202270608363239813011289394962603238196265877879274939763717827292185251105224122330762640837873296395066697532337191298743111917598757097201544842640701650908690306675214727941840982611556707181153409520569458300889363517577930623304963622957588421747048698003393515352634988450554606530380199848155576371893757627972038169358231882049585901301313483591400114751681150928988167193148202995480179304692174558538873063294862098956781427803778566782323997411369217804815383607892153660735634514308838727020321701948622459446701648333967649404264354947747980541444072932334086512808101585488740483118684565351221624552831111380903854326781143550008798606528597165748063269971751691879463887997853845830177711840435636896376811208276215437871076175654030629458155803296621097946791877242851280134574367513327824771609813719816083813475209170454721163711665562046635120799132604302764100351931199887099775606419686901464477891859234787480169001569455270348969622640987304938315902195018150016871459532632126962162858605868607729658875091585043805641887516683028966932163607669147571571715026557329239427330119580846831359583035343596718673039645014962322884421130372727415110315758594364815820302431201361863026067520383116179528058420370784746327648132798848952569804887831736036448425192833396077825299939418070805843642342483857371731732382545276375226851432525804915177487559132709024465861430121103856003862978969092190658494147080254270859075332381799189433182989146512485624973486776341530999576565220258738464344741437934218555544084077230913975670170647685532684544649066942436342015659377517376155019046024154217966304439558490001443336976461262724373818681513411339813900481186674580712189191034388876335977264825126436362308651098405000249155437508917721658921844833304368766129709687318270707188497293723054846349818938041132887008933019055544446664246189126965819241769783480419418554256592014835475473505840185381725669110300199912617296918485039897461444118272478695235258775712637758202465696353544832711184387334928416861446213361000214307083224185626513713747883954792127349216236118482859400289264362899730640651855363440612624137509619542239948768056885712995022897239176894418501944637601402857362617529075664891870189625794657829790747317296595707520411464722460856613850058890390205220532375454636239196835565681278194850083617301246382455186851031592596230827044674325961537195662117266618305105007181293849153297320568213574069634295259534093396866836105627744284961660015543763031047647204388011244417353479545967033513454257123581116780180507635980455059699178998484981656310122944576901799722088744054312713876527811082465593472939910126616668975580264809112246164154675176529861310572413469590744338420653161932704179397540477854223165950614907423720311629512311668621125812013791747863473073549712899238106478328961710820091187064576391637855570692651060546783381590339506508439199544849402071299159074555593794631499215224449185268056897684955498194722450233401271314504980030204785482598660000977176657155502008336085160220925315352629487583364069486293844339403115604616719875283086260466376075397335116628056083429058991609112174850506579437189363397370805384350157766203114290438188280290877214782328470950499673294113395441758127707218883384865942074910388347228163695218922116740436164287132801301258412634951436767423821560843928197875768641769905245249669043518307144842211336010477806515781274045858406135961609798026259321085571914709436715587653546671480563339240984764053433603307830614008379784687550881338364610469989175007551202295253083626906131939308239937076221586533842147166338598120109364626403595943477960152627341766794840466121938417356346031918842281572447398429357929353482943375894152541053442718301640709792244117989438053710591905330431481944723911513838926874279381358151834899866822903328427648586822970343712754065287884963676036984905482018477166406024243316144141555691607226760878081665987982875951802866088841699818106696542791714758595067529599982848080498718274674159205884800739389776997531233162898343912150619293310494924069972486013721874573880275042836661171828710614636419458202714260155816572199274225200241106756620326759796747284724358093802756263225233317295445644388597517327362170708312182748786001122315921977653120074566477321340556491401152958511540554322178823993205195853961200281948403570994541120749754394917781266878263368137494116950995466403386223745806460352730148433730806776889788712222284833163122156850309075392593920576217568268224210719407117281238846691573190059542518503632650541538436064681263004510905627187123612758821591752677164124859168361279001602678726412991889747676384621777570553757906792842608572000981111269666241861547450355409277998617201622244019760467635922640651184137234493555163357374480391264374514053112929233769840634629333911764085115866117339865591651072720480251667499828238844223802772806802543723514719122711528813489742880923227225025050336405965385230259902113055784224804728345667224454223873439643029861250941432475265341388478198952800080983887868059848903683468515557019131996907354903558260895348436348352536920904459332899934997360385820225637859504904440578571698703984289809478680780481889305597237135424424648465366927316211985204202646379797429386776246759149472131835610831441672091332493029422114192578413380985900370310742140410889337513781648868105144200231054754648898025925042748326213319895487872856779137734704281522017399514713081648949723141974958020219611094905974355616920076488967996396981262451565591694525777367043686852370846154096897956468863371536050645573871989065344496459918814724531636067894870778762577019205436037964291584116736812687127243008847536552072139321487002357620180313088291915940228309080975836403125032874904508467341150023829604553209365397716569175118339653215522316927593562569209373657002296351401156982836481081960325317603399491358810508936339343496627647528417938425799839600984659740239652791204395554471709763045434998626198382517798553953304328034137602744233962496313955954273919173497585639783086162704841166840332931887090156925104509846326700379262781977384649786127964764505846626592158084757827943797330972855513931898324830337106656958967768403945974477568369327556583366165324214678172280304366694453777623246765512100486890454942299285282668319016157957658591123853531445808793126367889534722552572806078292005992602413597534986768086724101041714906155977307743985584563845925200735636226834396622798309561137130187049609153846322138884016177087447449032717981364821340300633912804672362883629815047301571370345115937576994664809788034989517619115971342374285463507933376400530038469224777126855660849136930114289509630607339564204299347423125213103270232756703072194848493108457636130984001592473768684685239371090043294099214254602526968138598497680032547002304350542918291177804903681455674050377731728658148970365122653642297235663075658082191394243124382783899634019202340691710102699271012309211238050477042288212815090979105321063502377631655595280542555951565008866343332588489772433629411290126120702968173002932767186531692802325668338859631275009960373613011733111810341887975344819398302716429591789833722771738545352450766826354887454561648402089891273490596400645686074128428418193648784556182495576541559285084896992039577489354160516265605122292201442247490188511119679889193947868493547676251491222710949576579003470837514104879884165314830512172185740091056921336942527553316833880476758917719463325195636467712554266184893065871664716277526576795427755761418101155899147867413661294149791879719569310164170005937391179160038882691042426912721989624357478268091981071668109398524414195104337392944622954064789053810556980201004945638568655823318471285184282305994360822743753070677475876223954699460922468889053228296700611305874690238326109473033190521748177028747071714588542250561798854218974901094334798083232000321774130443348353349273755818964366052610250179591528428245284796113137872673190392475826902950808308702338867941434933016718207989257364681863552677271051328327101672019248757956658398531569894387480919812980639241167578630906415343055391251700999071381328767206210318152979864252634144996035314469296278570193904351089845174420977645290696995955335189053553934915387078471777991817486978435980476707443456410351642061581226883644072895725716966814012073449082238846718131470364219256537056481007262803477106056365754041436262580649466432633564794163001987807613930113110817290801364880035910888083419946573798274503753903672789480035036230434506403434122688367078388564137958541224214116666346711716832931697291814791881425496072680275153753844415985731598758479472951477007875289179963834374596134362408943433217904158079235259046220409577430263595644861181382960163090048488464906460073943905206437033489400255259722440543443246018941922151162803923033377709973726857063003618863093055021088045446621800791961125669538924895333846780863365011395848352534720943494533876787959146367865902691052322396565334501351542323595576451454782687735200218712888403428048425632656320090476144614071570382215168026137618485426988739386749961757820101103584409839949371213953712613997553022018213782964418307657028428753403322942193927934251175088731582530828442966629154544983309635174438150024921809812463620641377423004863354820667097878960105771692365568932459426568782423519810974234323874637822634165936921228069440119997316140741731643323491970684508872820668006599125672776648926296336335466273941145964069945539009619103010075072869579243440076951994331910413235471791173596390955408061424856492473180961667584016321424356421381002402658153364802465869116973301716698784815720576833050394661800120024379920290473947823636664772631439237051018615010523321080283711192120123239585832046979030070053800604737964942965584978145766163106081619410379129074116256114888219360821362027159520831280746678799849054837482755374871017852191097675338584907583212443013059166434152325013145451938421143923124553645926779324610584744060254919568300710469551569380062093736957837572144550615363141056476074767483299161430862942473881913094924788897300115418624569352225678084377604647276649773410786316016372188587933514536666816905500837588877888564333567706783078139805522400402881878371865697532508257392822580907243451154588352000419968802477433704992968430561548461169418496801673197557947019840508095493470458549282240340023119253237873791674144527504452380330359328580437416428323006620381890238910489181152435098498488916145453435092097005974474295660306350810263763150206775910210189657507421162821908813764724917328720513288573914826471617828866630795532688388483449967747645550151093997198715153084128982836303859231938634445595352747701768686232731207892064026124585227749011263473476679869259116045504963097895336890988817936100515462391702035432771623785508803294269990459612374387206876127958938415061708642411260760660755839809860666428927579268595906640906433404822582440738130802321247153676847741940948506719053541608150029276928612355546978209833798642527995240067092983291352910682445057373325984781335867896489477912475035506040588347005604632453389615856253876150358125732093872376141373949898995878169998193766180899688142638532671744761134450236918857606488400946846660368202058950605176425421671720919543814974541297897228723888479397700520899160020005178420883283316457610863038303647325162784474342940057667890317686506237770788071992146758530106993147096628606613980734165098294972733270801203796241107478617141006866130513644090532838153936586078185308690557267615517117447580126099508065219032357980063309477687013561942278568212631001794334929475217015226275288278105371230218737266840179764052450596195785852951615085829350906471165006057114485263246803024713305849955320207765850971364501260639977355039363877774582331114826276935080020226271524676511347607135160330263902445371968163674213334801980565103915214377516420110802711402114877790143320590649059465503868533694495322472162732301368732788095522666589547447655223426110401069528306521772141270600768386933369566798036095027299632275825973579365435161342079279132354256081676622782296315383800261368908566602816543942781671827185631090648661843202727446630872586750056201156517979624023047088560911249436881211005518981229008238386518154362683279316121742062176672899019931019699312482304683028257753015615065365079942255850265783642274755286292775482439159406759455121237436175366870884457674750152476941496145112824476062896640527596539725303472254838631237016554399098691241095505770871291978164626172256960523479713704984023725053465856631609681212404415748995233992773751540076721424647361720568563443403193332840936276887170769636110118654495656930817305951697694645997729025046242189021915741951293136701604676676933421907458541511515352822122084947564683778124695609524198908041632452689367284736802452373773689424656441127538143050644894004830409852369003543194546990595483118919572582142511280863520365790449334160645267485894347589619990790666360053443056395854722191330026266525562831757811592180230101899780723156693517907287769848782287306336186703358074752934321746808485315579797527253399448990091321198916077290682410316166947880083240743564664216283328364830105094408500408711297254582744162015105545301596805410112488407396263858401549625700813469918205430959939103500941834401772151486048459560492946379642371886594252077465107820574364008873682565555330267835653168137140053931527236109949830335935763438957025366441160366460679806097402867667727076606479322389523585976513381608642574591134035923851296767778141856728226345316710930081839483246544546035397512607764109787581004436566474433645505780849201212032714422685743764370386295361252423820237374940459687886527760633412550381144844220467723737796118948825264206272518597417934760884575359576590217480899778372144292330528839843964288709008875267243075053217616312107923344731447112789122945571519801499353002796366877054684085120464155419277859187646771819275623881749202514516272185914932120692652704728914983684558585489101147539722019002878078387528870522365786098200225017854851697699906824092173919300946708066301091822426352213383181084143926727746560412135171190575319589502482490177126806587219165074340680740996466122879748168733261416547300573728022438066249782592652085935594665595092790180701947221561697209505508208020263980540190443024990374883049714272354344503340608310674331587911808754552275567802200760708764010329138798625855528095579635522593704956302789088154405751879187258761443581581079892414724861541346180179792898233775748807609900176976947643129214813417301665513277762817664569471338650458854464213797579750695391202417225898133243344390097686572362706482157603786311341761940260162147735784155078963513963833143738602652455578983895393863996148808592494661327150330150163288537850613276821992154461800417473764533767721546811552601837844482540645240803807609815761498105356830580018386533454822505501741548289343230916477397710418425014169114431183640092742136090446369514028403758746700068945601781993005424154668179345719050967213573986954381147418886698431855137150336885390190322565534570210567834830341027248644866225349793262284733093481017764107144943948535190173053934892593907653697301061557156211017357495096751965525943600492949620994136776718906748580638537831713546692357184381918218231429485737565903350995358555699628310671119406605118179598365549002349406349899171719050730323142602856814071746622907844978865993180620269665170556866991743231657102201334354378887410044147984573852596031287254284716033216189761770366733973715734439602892609689540635032854946974775154986384890692921040871086048510385578837596240452241090084739841254914674541692168823236269165719142072407751259887941397675227090363937948878317464349070150058719263933026260591807201257274566906373858250888439894966074854557331490346513868156196877792381648503535052284923451465771296859165114081830653031591431135040393810624567076363869749789160595794451923569116268315240988376617360636909049452058157156485564958276158617336958980470689517440881398585721979400777729480950063126665873272579451838372934005572900734299276058200284812218065085911893422738107785094521552548597725097151370218708662927478920408149781229879010726616278541442341369670695838556772075366529762895567899498831439521850908184254799254258777142348976786720815808238536175235596952519589827783586166778121390645867217102084597378771561720828379491601174652916430280746473699868947930358262311022180206763184509057964757538867058598708953579245069699209494685533061314224969116095071546384239651173631604284384728061361115209892885150296737491332413529939538086219054454988354931014294990311484469082207478826710646020489473751833589733816235328044572790052237056311029736409190005560574820292405843057585501494117745135040664890828664209984367933494909276656692065422070548717934501646618731438438819596437855370283733865566967066067756568847372102714343705135866139727737312100872332925145574046511946004191788311068835103324322698551422137046933461884025396525414573715876540639314725842099866430314997342261156711624506701085855770594860302146725158200508068474576867611631840245386279452658218739234227824403426881232515598703644075107512146252113295864726636103495305851448456284276713905868343748906017752130561146285921709797063072396466783270982704907425054934356349373027934206059384866020865453852100415222590917405459099199809941234490827772484014081870628866220144268525571890226393408191772640845910506771105265494491053464997471779620511256874460559194013820340680403868597982362726238171384502195795114456864437395508944949624083576148786660333045933691458724207027085408641611114464025579965145281567063879494673147267008023240829770679695164167450893879959153453772804035622143437616692414494399539017911152222341563160016649201477090443088712782270157969652949323381727564228725852575173685841880703346570309870050558105847271826148226445150244588507932480241818833378700393813922985187223365084080146091220416367711753398616963750897661056276435141232005519165575734431879202461783772581735748279701762288344006305835252251005837229375709486231553423157131621298887188442494763382936972051911852496625847600508246733924409533050985652074595046367691886533048935790676299341496659983698817695006272931339199425197908092242694315377219907255273690698322310888744775101489362029357354439107315319772908127577615226177219263811212569639287621403248613859524840653965825528192953229687050744350456757388745448772301796894569437518078611420631181772731545598283270482720675419128175713626350223574833340895018254145393389991805991611827643635096038241263507834018034248483605819731905225872261778889317473310208687773111945342447098700617960564978748482468131864488944231976281407741501249654770825589424456506086435512787329401779552001939547041854412573406498333067595384476368101311933560995784301413383426715140917826270401463721627910207519394419021288075700944435068253506424346667773227754211587177828393369413927711114570480062857893692157075737428310380549494828727209495416741305096146663462893447860031797550890764427501672240374708403223235442348823761386849854821116240534441155623441339687771459124460124553526431319597228051206882509592573493329712484418809995511292073086716475492721293361970173602754543756082085647750196678370993036124012259300596818365689007513362190834141860711753883902733918472789016751206926658843917202342355084789422398810671631529711325708693005391483288032896028982266998164331609269963423913506196792634079993502373744268675713161269624209393886840981485923376120744937360601696755437508526441172691489912957420757309127526849246319919177575190054709845363122770539186573563958534603039037771923731709009082826077586846464681601441923201159493764198951551983620878888986481911248553895837646075366176862500021760326334989254065301904810034215663388935945367929095514915749125232752991268944547680513593037140874901755149778656998559280561946126071658510976822796592143743096563487736707546182103355746885450055926134125762499929400880126238595226821043892630370373036415717460795138655038245265827826956335888853430719642546958306788363583669128803205239885878220650409312969894569499164983198715829663260107083394806322688332246434257120140219684463578472003710883844365282298455796085309168089266156088609275926042479978935454201181680556101214106448323741781646626048571034795395049454731228510485879155692574894673676766566040633471041837009927731435625274898505538313703054069781757253996338564685078623351044915505452379319015364513748970521635325363996913810716755743345875164440353507191869451177915558868775550408785809413680569986043454528075523321532774623372176579302787334902269484736753399130703678340233089429079053962211663429435324281922861053924140851594513301074498277828052289082330642385482818161071469798226096893257843654591037668149753080964559238359279216784263420743339946226087253237837224259159176136558670842775226034940969173451385894990956659277052373941111511726504475424849204119254633996268048247870812604487042608659564709308031356369391337498651757293542254642762213376664383030838107667710619670052852699671732582569145877120943808416792729063764827036568596985740550149197472882749553377786891377831321113846259666981761684342428248252850881935934198767438740244157872605472308036893720309874525166004767783993012910767600168831919918707280962200317941664451609778484748333533744525062080231671478129330804867586207217107164476657375055312304749773861687305698882163577697374692431183568604309723621119870670418951887174470781686433172876838595636162688786064269507613146038147415936963994050388078136084058678103983980386854735406695612993821896099300217081497281928744766088600297205703534467192243665720412282176406221068645615970277534101341342902879523795812290100096721408972629415645065650762404647632447708075481818141548411296432911812928616933270782071256666827278076426777855804009171465024466422624603466564258844689018406215149091098410345535840552382407119479071639167014711274512268888739961947462822822837983628446444632236051564903827705874631600730259106684077272603563995445001229240372987510036406823724128116651365261147375499952619635620888211933541779291385158950349314833027989123935155055144340628976399832358949273680475894771189714523629631026636504519183509061116753644857618884588963647012871837759740607240434645696280209762869295608728814546786181855159454216280289923943075051610419667074001081367519654174999017158973767062706803276521597300058158957003001171532665175584542818415363348617860293174293023281289118989370323690316566785352842700794883317820197354825852360423881289515298936614972223704084638398543573910974715177703630563692369750105256499035061490016232637558137215838775757791164968285220969198251542093421512280318284135754938213850507856563155035988464617524953545030765402516285151339358855477051274837841308606515534897600656297523043688911391741528480644202377639744729700574337541859928219999761666446083042235535284994577395943532944976550529405326218249927298545206294437030623707333231681880955787772325650168991724056154110501634010662278264861151313402901100350693022740928893340365637544740849374928704537604405438590395811647603809737071615459576296436217244147957326383523003642382758359559004790954766930131319088894332670601680449425038030025795131916677682929417073404343620705064793710673497125170856870224542861775649343004795987212005332356874237588374099774630665097503057928876963383867705944479301121954513085858352890321827610469363660417905125528287700299658141455645314219725196487142804511275027755298252044603176652390407413457338013731070248403093455613088342750414294704857321849666146251086139844801560215718431424267705767594827318171672945507611105102492164289447020510413996291417615479436578293114613199220522562585973555232447566988104492508144577046543199205991838030282333420875908933816424993139366617189592862687145491983694834722694781283487733709258702573898373095102445858209897071886997866434965567174034526825932137804231102829860812699042113334057424589091917801088930544304819153986633253108037355666977292088634248500367044774113403147833085051082457962467566966014493243499194388299348576034407773693445276004036799548521489309217366749572000634882111514381964332649286427848179959674852194766684422139597362619429018589409737429335339469335989223253777410712238975137447334457060041594307895631252232057011764916656376681346140025322444257145128704415853228882909678174893547490616941964103997647378572585071805473629345052121101120307526605889585580651200498597773248871839479159964339656658066771129679667094490443819421293781247987158906488054947466171704944528321448285769962056028177350036344916833921331765504774675152562107032517113848143525968033509156088525514259313199283596375897653906005954510450949930426301107270133924568850919757200217337620977548849655361615086951262970208016139147808663013835121473081491594947103815853082520576140838785898377714856108073940511806136503980153928064542012869937051576043475510542680694466435642183387385039343386823884597352249201996626103958876628939999081743522650019947355797011528311397893969913918091792667535372942516732376594357777442399181169070831080734564465943221190834878283210352906196269984841933905539216670192232474684251300809564197300721515723073029783198658796324146833198917002241721136264454319995379487942032849411820829035953126730041287992254287098653999132635481755713651543692373982019238963134482314808087275697509401120869687083008117779590973092050269892463181998405351524379504377896133498522210785141644747670660783398582400197498559540471668939299012207012573779158289669634907743463742251997899008405773605878873445859803812994680220311979019279434681156573708338374446377298852143540653161213571088964568523745669890795475188430607152762285857329452126070727063395966399974531328763980172943320061515020289835996080308391383818527240510019282015150926102585127584592757422736362655928999041094778327083990397310680453906683082999676901923422116507516943214743279070514556959128098274400777193127494561260857817730203212338950270179650860996725621300943985860125627383729392664218258950237596062053244243806964068831573590304394188040805708272480509425498924183032358203101950227335901902267874273011965240353806585048006133032270599474590321926364854836410067045591031286028324574618053393182615380580005194743348060845790823563764543522584016158291551265101680666261870490231797372921215635025030347531324698294749052591269341548533231676747942453647359436714916394970028417189592928768542386344864254495198591237508837472136104769872725077522581761320462093161394537097757936391595190491334139111843106441876479343523094001839371265926459196735552106829994232015013310815907648526718213717885231569651048125646913192272125723151774045591877532463783382012082829798990522395645889289441623036241980760409143816592795745239075600054843880984221199866700678587143177814576390031538120680545420677878916266842522188462086668218434385938660302385482638649636003477235084377727973723399671616494293863014038425975721395671987023153046878190772550921647200502803725302599198008448743729862308378885732391245010709723779417883059838344434235747337660868227788865884986016580828209879182630796869573179777650978001291605034224704900679592013487351405460518425831224469611692635901581690052901555405230182445914470987993042058843449078194813399063692677731173945345179818741846245262096998750098766939145470663268408603631094837735639819046778947615070962257094416012196690045547150848317740995176984456276912284689196662153771830458031207569599683021528865438104544210438332210504659138303986038018327981869497761395501025101906694980987340600437940869692882125572815187294665898655191813505108879179784390699556233187857768824633339906453917081468493191098880330787835339445781028615331324097004907645260322138985235846350036107296317248999709384275399396754466628306332190625484116686153086087721587267325021012938727246739286653936727586398125295546651727975677474479706863372092112059105059966695990183610449382860361222451240904643424024984169773887970174424229494543478550888886801235169033234273899868315038683348964406809928388699114402834077746916137664935098029499853831879536590853594525887757165847127679781067076131561537402920561589798701451682528711983596526311179694190135552052150347562358028154857831568917139708752280180216411761433745702521281948846062314777531666724039547811197495121584733998314573975277777862372482767709448794532218346250008024493914648857027312896400759601695806315218342901398957637308687094370792477954328216766999875100879121361936312210704113988488850237922689451920789662375965529324117632992046677720483556358714167921660472454674328901336212840002841357639944247794785444913170930670249590421170088033288935948712833547239029350891876303254875990333696635796749903666118222357237016377296830257153401059736942739163913602082397012805765402434715903471814127692595641970073353114086952099328251145830697243726342475224680297648251929891709290968360097376821905520720492653508326247377595238665577786837445141910940030143150540767924700248319948748707829116122076637388419599721064494930592142183469841050157743248095016150369210382669762861873816508842616353332497158809554310670019897875115914530570903706695292671706383216470588888633917096753461234579497113444071260708919158538358810131127042038513923889688177590058318677851430422586261194851871284433923583919267666520660402403331101405560373979846802155752135231725338762286629571355810569011873255411612868506763032824234939019641660332471036609673371717243627404624490323496569030614852480692700209315003095676079385405179449496838221089171127232411227097753788173028794279272944015960446742198752568568922067066882921896937993664533518581029847549237592005323157626103587430594938998785254566393164164869635901125915148287071703788020284731250929722708616039601765301316400973231850352084027257288599995958980414240292713881661870099522605700871076274820320779632816202201058049721988306477886111240311652526229002514694395010941438855155794494000411082495137309899170063513845554682578045063324642818308398332370430719945517887407092963952602545852788115118973794098909385009217095462918484102883987778984022524431581611297382330668939269540678683885393838247575988279364616587468100815041171683255579045420493655119397340364248266286852414786344175899902280758140521381484381815050647147214464050184421619227654405456219582249536801700618725625674475575931483139148492965848258809131732327879133199125286244511541564868974071011056678138842491817436287819067635008304028719365261966053730987916076735933213212588719276657843963584831910215435935566569891461600137476219970720054752970189026591665294838186492552114069784906433933145406974483146511759967320893446890516598772116465736787848392132281995290186875475626220002246457376342386140964192837059688558533104256175733069311386291587494682272409097393501692447144072517680027921640960822405367569139213675317272968961943158083311841396361030761158578962724495536177598388690041428426045742061286217169651468318252326131565367536649821878009556392880132916454195015551876736441055965181350686579428814539120181346109668486727675211071026382660508910004303604416647462239806028978963558191870997034054189079401459333249255018125763550697981791573539933143260744706791408524485029246920009439042186544121654935020336621606946451806840432880166835416884453264360068718462039596788173500623563249857310973923574178002224645173097290070564700863755322270150069843300590195331332152320177347229089392923793514283770581537907087855598931717104515566077634249540777708689861664362742075315458836418974899746179203892018196099614915452467127978088306241834849146121282964159548208276630329274715243090567262547429486129999558830220780392437062898824720226128897772599123880795071460292092023748118681762542928479406544691536596075555082087353107183572124342898639568979558223327925602525909965103281450375087128984417007320166653189244353078067710848259377103307498695993138096645301489211550450389931454781411632741851550399529547615654161909351009811041510474955832907054785438461588283866234453159858807864724749734979711825280792989623276260934638135189295799630333991322590367317022296404130998085395430683777391316501826952334033151200858770486997061894821174929399597886104226633977684081473094487611514905447281032183164914947021231195571630664256096244733525853100735484327054255748334263889281352868577874833622528827229033292082317811498959975513939680338651788095630317477577106043344127289162927611097641569056336587170803199433992615208753461081860176174461182009232491690496794155216512010980068093011769696695235724642180982963369782766676097512187269180427069091986696150700710363488068382996227691796008729121530195063175251168890497819263284378312546525906335009802421893292475576692874684805307604258516750249292341630029224603018351804764075779175793874692269791431453641547438849088364498740808341166331960312568636733258286236051032813393656638221011753910381509982792646120212793928575878281027823373874333325821166584739658168530007499609120802515148257365127272401648985170719869385975132158881070100961755914939657871630947752202954260867850791102958295310940223562088964622243026994177046013865240779750982939876254013515869866011226939330222606524136808436396101653101076187707109661598206389289561511138046886971154963421645221778443672513985433150834121215300415297730918036777737154503426352608874336250097517864626083572887777364251404802993506121585821027050343512754173017046541989930769690627504807587110595228007340189531874949177429934664395053806081828864084105735636394831585072905730884164135886498219634180656900133016759000021266052348178855269104738174831485318713535458098159151403705437415289985948709921179487510362741552850680471125979551107235139818926205973303741800109916502628850087436069092892129550498525450249084272383216062878276078854984514463972261388160323799320082511924789598725062139533952118678690446831046886681556495634790446959885023332194315626520960964897008073062974819447257736447747840480346364738767933685380354390634992403329568204474232193970374481646657315807607322135342051650224261535803346835415392749688238020529682376948170272016720061333788412696765095806075939342658163891120241252860516950238667143890438655811157771163288160018481500027892687323310550109193260135411987225416146456289601479854960123856718194524215894773154727745502061837388226103660572069788634037470935805196515111176651020185236566790185064425805689233106977373396553352625455379049841833095925975099737822664063646761544091618739473451859808749843665646075577688857000337936577748105014081271069822172817739543482285200327092952405223723629965066481115516095356697203276063954874409944384944716963183038218540514623040104803659428730405687041805913017351900599792738216069797959224360287779924474491354336012395963722871753109915048772275548360005350680793767451286351371209988609430647845727982816055913858976650376385244207909101551706424427432948198251435555446161226363510452409079573164649490356110606847809931942376474930901194020279492632503498851439686426125077293873717043769375066277581470987571816736163445735384587492447609713941276503285658685427210420102381732430439601461076984668036908269683124180257258192852926853001852397493532482567656135893928750901184245375365007073619234094274303448705742455180616025606634784473028155730751278371389069663652799216619427256230636912194466680714241111030002618225513230405053689398978535249515180756285392929057983406004094971646813287488436993393872319125221408453953259952206952141931641893669359521451810922662479182544450981824593222368202508663482623973200602906273931756807073181088556079964789778847381042056733150504917589443136405672760393373118122168685884225698143115620273895160266924408623190236205224976161396406000801521019456284893121601792727708965689624642658825348218444415224765855877382426548801055684641541499052167482331220017431226508600037107153641630017273790104378012297352262905154393839444841610652428371221499898700310623509282361263851724191214596770477695334679660587944837568151130121414562159745201025287322870019593553122716194857429410026601434310230019349562370004776641198927964343020887547863877843660031914795107012621379695147095938810197909169788594880404290923958007839234285497240598524891101999447876639898350650631357723154243106057782173352559275149844702477346178972907399203412704328435841658034227481334312670749389412368997656323837598679668223081861131207662570160360937135390127355652929559844296474578641337452095473590096878020198269287988083748217580733425385487761934623422396749419557486641305096947719385754914956691697478417360506756305353977177356828954962327913375286343507291633293763893109824478401928061836529018566422129327758256366718273001243091729404169013977391274527319016244049460363770394919943030316756436532028336076890550633565550964533440976982356186057696043171398735727496272905902856351254439315840470647641582955869878985561025792456712021597310176775084275116006132754278397211924953769404966443869851443668157286831799893572061465483518242999095451868731835226884503231933507205933891617056889121558902088021551591305237407514518770676072004917022341488486286002012934462797430676749285809988359089199516003827310276807468336303177380420440016699884058202188096686286730888009560482637471724250476787050387779081003978179594810695969730300523758329941811031785262007149402654479395477738739554093987320362713176896060985257855573671984492274057461367402586066498127015930615549443587437941856423674269714568167446310764790559294289116395059454580161051083251419432307756740246549865721734214221955829558555366515537997015870225497663644459598523444938566052753277982779912918594940697227137818205083004107696623460711390504656406237256695852193015240327303368769212150373926553262950584809235282325863501343242450178100338906990290625962814077153431956362405565822999848507124445444654949778465522968809301786141578946320054278494552945969513868738413706925260320545030234058604886641611368624341947667436075029134523772177504710196107606440771481029337698060166378084326087590728409534860021503388282827300204735831314220141674633428677810632844095598647754581496597955166136529896418981596808416990329640969664282053708541344056803416874096187587724454186373048458688938927204893812372480887194737083034329314580867627893470862305733006852316585445063769160601893834166995804805441301673611933759944034305080862381656935446578461357742893036133030050232907173464436827386323631987829351525603858356883208426241125313898116488735073699404941478581821325619902194651604346818154537733982682385376597061619527610902755644451759096571914217306480314570298614747073514165123236860245761382226986750776922039262866118596092192386293684025276795998796822501428168277154722817667072075903324506338991559929711951922763809750480981662535623299576940392075145313507538553392014652393254803274292724790975958096432676461581274861611896849154316556048040587184593744590405402509812141336400797643364326087558355507131419684415515453588806796896585324455106899023524839431032398600783466589788882156307029939045711798687471248108120361090463770495909849750450828679243370873266853879676806122861115759551423967800405465762326466460973957628727010707969752154124768585751354663044071365805739568311630205353133119840886789023379128556786398906297373326786741352306327949082143423758206076743120382689755311085389464063981805585369853641110023538689036043311905316153226373548451261689768329401682633020374642742039864995835923729999493739406605696596828623260708079664516942791495629202360619891449859473351943009375718064814232687675897446828164671538239993490629199643302845188014185067169051610825326964991270028999180695534756410773648602551179140891073795306691251515476496715044814941927689949013515094901207277360491015997266418669586099947383946791995754274459605191509495365431812258404182941360950357416850126210406602857489739367703380526825092294762105520715623309906270576868473527985352891401160255045082283679223276978007454157063119540593029991151990270590124941619015901363894082700821132239703901338175205095881618229548528304312558555135560687519411847160095708159176337201025463715516290266075514167466388232372641536737468465302522225344207880320597292990526646788759888786304008706331445579468081614926405210109396109265273845999349717379926949651502020307414768373295006905778019012949380885937444306543703347396179716224284814541021608365466604600848747883021044218850900762719487163631295708174920744500157148186701187632020351254302052646941998198320730027425271153312324166651422440508474961614963237391639302779138559820780539035559899472734012409489145915034284106593789120734954725394848340614977845425865036536152642019274343651435357770093855640731617943291722805507851700535768236318272762760611771006805548821380376991278968930001526053825336564824429932264717455056987515588659345655889838819295865718936574635262050281213823871692977230554177969039818863759589896742172572117638172571336942871529712750973347319811551330240524737798334126948132518660505059855219034003614439874565746320778634855867622154798988097351081722452228282315708992817229787963954952977645383707074093324872223012871596424298802966349277256407332144258935796270060468102041497769352874576535884946632526657063102533568866274387899480011902124894057400206015829776366817320191697396795656906795786831488991782955164626344223330093086281440421784850265097062022722199110693551227189016923761054613153144382098823668722500565342512852152684547021282790804721017630775204865136388071308162647782703181679075746099610865965445989446094609240503144227816458909507678812101260621614455213283806705081950857223342743192417373760612320095725781435942998446534956169445227332738670609801721983047193128875111776382037676267270774118699099450873973234417913418674376094848224675728610460578856122383135119819198654481819916798588693261963584265604234273173549987047828141661897398432042403993855875549630193231031193004399387751298863811098999684121818842505883443470735545123017317276132330382652116188896339779260669495396990935212729609711894318738018695963290881225975748247960282218386619627562227338993901713847436684488410359955686592433445603209696695298128867460078459543055728640321213979281569935932223917585903645501142565496798302159041452933832496553322112011706530780795877049619662001468070858037104472169604834871790321880496292300931636518611424016222643493967058493265561772587826120523193931400104858524380290620195868002873508249436007558089205717398576067460953969952943838394542061119088741225016095911816632834194943470689243429278997758156791122068499437241940745018569370262215150930328893480637042765427395104358975979061967040505419555763905326345602242320832428145512460204704710106986543734390619026153278323907282179136039336047294874631142815998320116477285533254044870981900509132189967971661247550451322077544560192068308328513298582222490026320609950115330256523046246442727868902090592757143272761656637379116835959800818981169439300074422989611728209219559707020931659959077713381579727950051546514181922368864595817212661390554165625110378925251977021295519040082568103093921006403099379345326583509467566339792282862804165133328921990862621161033930961142739631630659700536521665458435719505328839581486970039043955189437365142723113402206353353878326644096766012379476967178407499753234130582273336624583565420077763366726017321601717818481663774203907786384306594242469218349240083661672353760664377751847074789172669098992987727248900596751841009356342101062511524932812271263228510481659275261783206376224508377280313079247708448675493557833114201547142623893743652340279481485132201759684642097817536929125196287652556961960335714498558290093366111915877333405833569666890776524065967317239233596623698561602387894017486029722924751966806878487502351432212611520736836996549617014459351491109551090338417321227303836535842208146504051733977113999081333589383961431091184819185595899736913879196228360552169912664346773435200794624578034635113947837413788399569238589188798739422233282317413373748509410458155335685068042109768520038207381092391708431583356744757471217272695651410781811034762673223926287113983828326245666139841534595038421858977528214841269491612844934796301825036215690533031496983917718137887882299911841751193306903039646276300883505717121152037365917380232879593957912632007302186467138423302575567212360030219096033271877224027359260335891795742055917076403894880330452576790097296136705131835543072490943544172985910434346037522646182404321756179011150682944629201174262460863158012051574361994468186174181875608742618645900139656546677647694389214514680202313977482763099315564426558393154868612028579198812257950005126194232722672372221701125330955752287947078161666114413834984001855310805328767910537887606310989733225954971983359865374775025117064331027884131351346082230021813307766792990019469677973663314834788634245516402902015029279131565555279386327107172139715939943830029423403386335548029575287405413953904875240870322833927043601269546744806628535976018380816143953992933361708164340570275783918180715083883153881409778673482244572711950800776392774350486153624698119353297271600529582222824359490880682410157345033449726192661617332032865423158312773439219004712573656366555557631376882015034443969211782733027894332787398389889013280568707073761922322242652299515131162097290446644023223282370315521347255471498279564340508477321829372984075263586692694191732758576269238101108278475524873117840656908765457723558332425437842892097531681864519762917975042213926632516950444737862894554233389305233606980627057802633137543322332231140618298540994451160739736023704389376516630460864485891076049214939080712957308483436995735220464723795563585313877262781878950089997306137648210542066498453869958574816443928679584339261305862002764809135314241153809049838287419575332421641338385546679743544861046725317767230969571339374413238921387781951554914253731354007801399281511948439922130929081761234439882982189474162549010583391238582166524830660192590500263201412346182321443637771789517881486245180861490275636192148327054908678030517267004691769095200972532900198929547242705256946918653269487718933175894615232823722133770745224265772575430068807251773842314551598652837907809594021767669254355344008112156704958903123166258781079523952887204169252944733140565568514281178730550824107604622774286322885308660166232380953651825590318631653889229183095490212623958498414273813465140721370058751901157527969025640910459827304341499967228856449068732482757385426604763876311509233749654548449608661083770340778788407548846050740335634405290713963571222519911322913959982435037644771542487619729009472849792314809114061152164276693679228723968750283508700521539357303283297381402720958806924864296547476279034811686346849235685074167101546459313409309019471639424796318007669653171818176056008653412091695688995308163714239325099081193890139810708318276531269000934158292278704510445694352602793634928551674180194997209186763539969657751408182581433295304886081858300423470937605476978575681953672527257164518332203275891894021119939724675625627045399309672669122857346678837302986601755960846815625358115302370330923745549444631550302207875385709319414171401132618598578601986333391830592560877169022924991897080245000230835036877843800863089538043166973925595921860560485743405854272251207159754875519760973153368787904642359000219016359888568396052320329467152716797833448851389496410747209585719864788653191798497749643297544328563631190266863331555749268224082438250811242094415603028283248027780316212599864252774940513575260461532910316226380431959646105310020919311524121686180154659653855344508042854287241296912034276749223884636547132164218256743308378556758996697859047032698155650478918600969642403361949736627979013967411227825701631986469618062926497562170115580164185186537513651594127662560323472226565513466615102046942904186536262478876059208069322764048794643815500574633827582344162938233513253890421090234328027338564439738004562033103145157698103495939643666570269707363301643161349340526129132649225760181542261890703805558868223612354637376988619569892780165930829636700016785291711138716003608165121535977216786005859796387231810308700786413552682258415844750309265331584002005555768374808529703767806607533986405502251514393784896512356758006310571081142693903468518266837819726963894230430530756000966674286541961076973039735496804984586279135053753272087432984790596229269142349953883054815820239663696455170207411799594947945248852938686652106130700966863149348312035682800536806946186093746147141431865209438980116470816924584847091143291321230011698979260149151051050343890473400343359318942338686509460399335746494707362540811210317145176727329192753936511414455951613772012315973950250356076700592260411895484328192686764418614713622914874137584131216626777591602423262841183884182817344581099714841741023499067209293881920637051608192962131537710740430200740192557382835132851205067846448213325288590874909289383666768496318025861882682093738198785542006439460117576232085674759116391449033422909652393169063588385268911529615288380528648643443945886542788411780025532714821913649805046090803054002126086172634458829723948760478599807493618140047434914651837459724746415920003368451207506903239329293654116722167348768067185339378313490670211407682299446673538662065682363715844297544330451139762960643222796735014480940558726327169117737957546398781087176100152544233972628971504156604879718938483784813524428441903951150534236797046630679718703119379356275259090096373388424215100252558429962545886538208712289704068299855965701276392096945243639493090961354802265206256571582004303560679109801530139757213764490234151513147442894332546736308868280878767565859362486868179619426929513385893535300452545987274864473474951903061661302371874424329303998382380087154928855282268443352459418248700978052657056164386319916938331728989205226546578288416868679537463358508313444443803193362212259564607192542040465258734684060660574500755824052236569048524679805512640289467914789275775725734817619565820829071309649617754838762627202929006674474867218097454354786158012099073234831741762105919363843882660854029766409235228567069489190755497030717700794195872818318696113345097003153695768412504233910204644414175900876460829129354635924415142745498967683304301380811927962510859397730143640811876912388928148229072011293913915700336864062225367028770733479864842090188098570023141180285579822202503179255238341070788595383289382530396843685991150749597823086673476011731146550756636224892959113412016776135101506229826298193073911295548833868737406734941919224775114668249436221354691781094929729275607107907176396795533004525059210276629537608794044707317214002390843540541499377519983560253176443817168693013166047608594089272773439444486043965155633858151326386549797726170807954661904174697987778311506082404166529235825162797215358951302194370390976805833234399389822760876513105705656448482659883559011970071531524806935653638963998976071896816769710437812181291616783375775616634765667758837720767094511046051857964505898920687312772393092830061370665151371385142473203549363608137305725106157620161503397453339524342547374326227696015923984770016904805588181603460871382802485611179121381150853463526636524887410491975037181152587003328865118220107946147248814863849720861827180098837363344181173000040680006861363411906256459450881070963702491508140396749067323362860154874048138442799364571543315012686063474427276729496041721992670707398110048877763090544687624932072752846744229270555808987132054432598662800351879777049646398578284364595259058372606158091834186113403145655699215379771985774519055353567782878187993532481850106696738463407821215575509747563377019178375447969297922631748968984907897846080088427521331082457204821560546539675720460875637692641463835952633210139314922066450135584018349340331772848360247529258539437258635007536337639245792581230955885990584499850815000127516348241187412082032767299572272111510444911244218587831341533782503021055108690301946538118680369814006140077351970143997621082898935508960364329885590777721549626788370630253099266528203149023426853257446587305996951528821998350203705327682507970939156413654000461193012397612506335591495492495067092819485388866897375880069368991416675420591301486999990826487630949119294856355149882337383491564742037446547040536773639401987226835280288906219699552480070967778457808937341383554667206968125614105711824154245833700302308401500075546445757284480226082860584387482080431438040759337148481826607222853277350834646235817094532095548166868962600339851153435628718911906426343569984981322153643711018004419058134273626005138771173864703316794435346479306429175765112141988434140314808818906164161205108374221677449117279465204498146171242431118501249939832098116385273677268050474535171679096999760455799761983144135631143059238546641092887609183199635353260898933652157150972583049371940170864813226350252629411822851582979159663868501514913846578391872788550187989409865053084379393629169473122936097611706571441175472945915880288646572727005975983250763614309042104986889046159844947933603553420035593086798975989635610378434287659063226825543619005635494957263471389643667818072272530180491951107025493115196616286975322341656107367652308067891650160507298423048714287625424986265390905465914031441244182881150054413949579592653612898142468598540328559364847632439685315316041032795489563144609593596647713949753373256107551017602658779175158723135749907315665058065336245902262601022323678551656266990245570958495795505256364105377528895636384787608310492674588227894580315972658912006576349951217707781495413225299271274215347021296216144392675171362793268396338996624598189750050829556824831415223776377553676708546141868868823923658195960886000535074832476870128274867498431297359673107143409729236729781209059636124768050650005004115531513715349425758889459667219295751053931164583744400504983710212748859050008162748061652758219973212207215072455251044284268124606651608991257719564949062756080647031559945843175102109233587056448977902796968459416105535393376155939060408020185624210993319051263015911803080038122869238899968964600892552027159110478845834373909333042972571566671222268042631346744620851172320485239342640497997438748076431875608177982718285554595952183530618102585510859062682694349056322261504994980066911510004645187314020526511414601429981891894942419521620746659973370661576653936928242106765502021239914465833393703820592919680391646708522528476055474698913195118050917434153542411388481129367551538402147402293995590241263395008622134636702817682912190395402565939739085641443073034708414299741213897136144490369989527398324929704664215985796854058758566674049856059438330747835593120279703604504653703795624694867412556081912196544821493378922032167048338010504448564116677264410299980084023047726353883331108543777061761236881536213340134684653641659590080888403614183025026971531319525047279722582852721277644459759625070129428093813442366784613146405224782061101011854822550933953899448982232992597768444727040667281509992170676334452927276752161095196065455087410056119765425286266820256480375300576801572576530507489709154400185409975486097865807840047197546433766043136168587035728032711452883632969677401238329048770000535918852617441321117642160273941730945378044234982937279424656606171659861804749415101962478352926943496780134239053286447331077823882624723232032703890183192154730035786931618266487244781122010248245654474922814861066724928018645653977416538505767672179068021895914033179525295921358937688618697842244458934947153346773135655723914324690788158086523501555712265980877083398117741077749700080388102115994707684339530757153490447231789517468668990599014585772270120459882685297321827644552241488973733648770758270619477039775665913703653819970306925002891859213154448793919246507662605237661292487733377016123609809909387961205377802638379219261973776790852260355146348596977223082396146540191063662249359742385196206949367250855853835711989934838463274293720851832288329941269704686989398598993276754601864475246267515861146395584081038494081447892861780754257551292528616376202834044004630542854997575872568950256965301479844675634563330864255933041596635714221451231060150465104223345629894704904512984763359646042484537342078269716583430756201760668426438249857740321377143998100205181584313278045743624039778789822115113007780208895919743819756279552175697919553218127799138494880548324061096479958029834962467920870591123163733104861735015912759801002253563872285941416978825486163688448953684414384145219682438805995914626342559753529655370738115922499015024289724578947283395763221230437539532836702604518408553663252437245837844487338307006717815546805662685112971132626399635788944944626622253667693994125735633690402629772315164214116032713355059528433089029593744297996164505392658458456718948572755446051801269655310379896273446740503446199091938488622316997132775514725427970553878871101050702184277940497713631647791297696671235077962935819955709577656360926898355113010449461427122158816049597028027063981617160788464019446487835959878673356078805530939655149826427147516230625579244774638776395378954941118537088071257719550864925589971339966255241519524311951238567163380168181082850564596390841570046433386007489967954582639667977517233892030288311697740788383307715624823551069048066171676700103071341423685642806620920584372555660157399448187564109864221031776199702183752562637431940724228038477928416433644941053090421855918875283268517295851285065210941589530563086586287716691034619285374716069323070716259742240740677171756589276686860249062929751457699556105891961956403421176488168995428783303898172701228641922353980572535339335163201442331432192958206888488658470175462547840244586958129358574980950275541948790673606294014241610513967729016477560608797945459688516965996668169633499595690534676630266977591560650164647246188001588119708426559669403119522341173733193759844706200148484087927096955213389174773969636718603438179865356130704061217310641147230991645749097718837243511861164019648379575992383550000317329517033344926400004330676274945626185852785973067098859353389338155931216668346274263210520438305501187037354257100811496435156311034921634002978229234768414473466536942391851330736261134842962109230677749011632838635204891034550231101523368248980467209440049570053185520286401350386166783727915902555104333405302467222142796267284809977764287142277909326671449346481406172576141064000302925595737359923571381926090921214159733669792927105142991517422550135883242897814587399974492530764124093876701457469924994173551874522840436414933059042984981998914922916598123547886977420411177922807646153964632939665180839216625416680692984204886324433667914153311654214098346242665180221714191004637461526462897997824696316027847416646987980131373841129368908641548031426298620759131521336163456658545106170812375706846673207116681454052458018060912578548268148817149645628076999615805818289745277095793521985275172294593420813704815034418956481037879562296351244381016957218903859495745116926004947411508925073149168426260300515346435867896448635261997592092735356323037860264190224988477619039518075404365601268840715466396653251128855083703362533261869130076342838747318811509304030674029586709231250191028146778317929673514887298138339254827430042752376751064280712351842036582390920564782827575524424831485226704564367162630747090618213661189111656464541365837491386137206616560917084709541112454271693499037304913671518100404514657294163985494325704670989825631410357673702938300759804835634872733255931098230318382396611325686160703451102181684493128525953999223331251272302453601162339988971206446863900527351708783707858843557879149165746340754580650838869475702046306894200729086325704744342917723196182772258233381203689205291045419152728158319678660830583674951228800848583508068778674185708843600062410979707525327254851404395530509379576380360259740077004369237819259231220108540977269293978586880172542265909521362345503431422346687056543533763173615258272762550752130518675568863394772455239900914451784178468231613571747062273397893644817986352602910778925898955619302521568936688838568414323419276883812479205681796249949850096280934894285152493291115081155087677894451965558489992398819102790299244249862297362153475416471345468743137900001809310056620215751469070533153609147170316012479220868435101218406354530998852569066730825322997474437291644844487438530168875480339643110543551389000059223711605523627891695669880500592398866925798095406897273918682986391912231552622805776237697484114141340482950435716957619997858099461143485282901427255922828305227558554002104779962675371713715239860154169956299956227250950790029058686886994164808634226283897635891259980686883255247257883802805387045125345930645550052259989313084898100845222315649632301886318167804052437896697726755706269226688667019332854816264745617995430102205279985899528257807660573112236107479074423602215661367064205973551546697919895558086920025564393519001557726411436956717886213522339641717268623565021261203934219213256908843836377449487153178509473629591300301315788332132410234772673964874998969053889462828569255499614005969175510906589056665441748851319674708643578252642309259480525275899783325783154962367475939269580112682517373296614673571592972729095593907182805807833916884960974476320788301438071286451484352294150172227734698613024797961438449626321953095423991403998428174528956173954116806400732534229283389612192081636620836899854996508088886604041293030217616065528950749808243719517026172104817687927982057281384389890578587661076497869028550575545482541748473089182252453330648640888715735688971825806928681201313712111999562504010063618110645038209552836067855921758813383783951758217662219816311366563630586546570452486643409542892245380012162343231487390598191066492087237953922069593559697178336812938146522833812613751857836335631963973566022733120344228184832148526145107558511787043523831363301659289762263386174190244816812310305621555593719179027596576137443580831927037452852363653547095259649226118824387618207116003730410849006937077474547157824947034238727190360648426602420517487739200163386198843584506231130841097443660113449924032028910384325361251816363596054873592045175760453120707057428374754287321799548475277753293009734180520280819206220447732985516974705887090892442517550639325275889387121214142085493845248512650732949731373194105842511986487250919857139523065834946228076653547486826653854902262265833331730699430032027518524904363749912740708420769063511711543407010457674021022440102701479234206032222261506172788312554733680975726544621809552434012749923085402018659965193479193514720029218827788664837636539865333762160259233733467506554730265906737133667299518899441840786618442434336821493007199302868830002121840297983625295417972448907509257098894741575477861598447948524905490488211027154132668924642280962010132696683761528729780741851688181175698313706751297107176467823189461431850025908078813602176160186172192847730276202726316322151873403421858408312913241043336927344440942246912923773567702138629073276732846022013736262156003476425028832718653343089051585736939424102029241119851086011548955335438238115745082351748915831668311348913164949085453064051952082273584664314771525003734168678561699855420376462621972030068222681137859050195373067173302324362061928603523799264891194655151108899985598679724137188767743259099861322413419389554076047952955110324502405071910408254878099109339492918010123583628027937124735259116106247875777268126514832046379002154278355084136699591527016119602638001721356474534230242578350077816123910616962322260888997703748261954989820406691179621996540456286799628644620052111365334288333102192521143998319443822569085967448699007139042530402470779349067275324149509973266988464154583928157503624942279789798168449051328991407789794209481623091271366517604484780423455814345285616881472416700481045533075537626101548103754764375827018740117630196939155338008468662080899320051504836052255900878983492140458664031832941034247308693221704079649434914418992959885506839168797503390463198237362044015442010006941915266100109808221738783933602083191311570536606805345547661536941152279623364848376791424641831034794252694950146787664072394937462989855642159262221061870329505829970838969206421215864041876855323160812135455424298662620822314741916375088024842972469170968488137669130880924080729544900653057330290391412094597554411139886521963463658055735376012136335755318637447502349074375797884868881919135832876879511597660561279053664494733883124463008124643544463542801558503915049717564723959054370536276626643226962337268712576227236015899168191807817466459765399912062345487005414092433361316535086235016571047822717088149596551398940195250232452285352699335366209775347330221175794212415669723930569273163034502339432699124802140111873639746053704775978666390798092659748416298282680393188926644190802453958254223332847660081207275143111835214104334066699722653485849095204987524106890541361096943403779794372827507951657376744977467837305446761129211570263967392878018477056757572412606825941311036380147255413415056727274651063495089223062979698295984457643398709125663214419201957202105815395826943077509865820006405755092428822009111174257201400466233384770997506673662506983690339853012429854530916189457250127716169284506612869037913788933861774801664630696059856217332154068970881179590546414201059508532624972281759275425687403002196142439448519905348290704564253050082044904166041700052505318653738332242275618076462563846902920566326877726619193499698320362378648183651290459146737137374440452656045121343381958534030184447600007284306048638183854660604066182169112368904136409261736669142466843424059549669132487122756422352266866255650695891946740266786662783952442813371735207867894036985705035857381453696544000613171328798474842383974638274570298628670954888695396775983821288200618172199069690531781766923618479872369895529769737402598258719662732964993057558688233141484260486065637260517178998311704092806572336881755392598119582770136361373854711403293220823015198513353640273476724454379471200148756596408946115959218565270369153002662567856550416434112328364100094658551624006006062187268739567377836000351012247983300954743126589549871857946344664696855823139181918595226475254017699555114621849990727105482019438996297694453258477473544790453521438379376746855810886598375257552679844533409064682408583330767217223824733373858394583025722588887132979627227343570972383562359263881692010712506068370036224236014750119019115141271896559125774220864561415792829911578804019422386031990030078058554844453819988055111785266813849909978084044253532936601862032776821531012562965720966412016386342705124016062500858715176542856079296618275233672005284323483809300049564407947119286708432645263303904543152822901045529433349305010229293809532401732949205728819270936763215194468298124200672950849479949542056092619363058120263770730641655916334376808646259538747326733233474712979469937247329345404599521997061539849457666282732165421639058016353957299784689640043230695089302554383068175495604614545580855074372517598298229277380188996855664636216706382435705435216978866079849829762815979488249542160034885795599113259613151625758229925830661918649706144137173828760224049161010782342813020103809872751525152007087715303384737499208059047675144619227457143604947425049213597862693002080679390349034171337910940765508863340541643864373181106549911709853985269236140788211505351073252861657276501283200076411194680640849369805062970894745714718967365267722581709174025478029146595136770454232453859461344561623793495953318593719435113272000290145478207635176751229195518554112447460064995558277243089843383219611817512453537976115859075939661383679140522000341392714698476892174079803913813506791401609686486693920820318945168240172640951963183008393412802883397441566476818829911439552702479667625430037096243935175918891008940201527301351358313748110476602357174749696642100092895064308245673573671904762425542374037111992192647256703168357655508405588800114055168710000412487901221664130114297688647733111122837596825560858663357025502130165344564328523556851471085711127218255191727835596410359986229349916226064483572590180548185803633513383157268167085710477545530827631528244024191820402613978700403114935117751114055217776219051994578999236567226905173977980023104767297616231323757715670984660438610126453694475841160168348180471803151467914383302383386258031484855103046096392871785103954123241452919564850437736508146556695300728980075542956048828925033095251127672041068658470427808949296475397815055573731732281799033289215171576453250446813161401864136433047860912667460648997382436926855391382621828431844713601855217233877438834265805384482431493300814432335231005953937301314959484721670341415677113420892818851996094233445888814036529939205500824898243154356282530886760115187588130777901326202275261770874973900785268114038228725046552805273017497673708285569414440550577366419575731619199853520950107514162634699779759546247117193480175307088047522741767838975590478581519808673642965808475065270063120209848188177827878134295102640474364002147794016814541415926836047490148842559875178957891947788230932383581186996556355481116957732998442661946791031605975745129366873914821904658107859863828106478324473002680702214506899058217346115666120065742083378522864313552984340276864900456573726743349164239086781608605200613275389161322959897199241891061371257317317567896857293756141027400915157711982692521530526933987412080863250347717501412581095149703014414521415144033830162944374251159925591904263670308248824941119842021326038017922731363413036223063953883859609352904428746767134028542315507576932992855681567532612210932495898032953596796744649276352963829030518262117086168750746973624369778753031749465757226773047342802097102775497053952042498921279532094114703602094780251760529807492177735542788342818704280563822266212650500376371590877983402915908224624061508781350472908204137054798842545930984751667609870982822462926851399032854572265900936395517177728437287628438205300741491309990205174307212426902229483573874286013635013236607288716572043547979024100848409277626934248516841952041511964015330531155212033436738048852260848664549606459627986426253258645058955621668606142936600254023841774185190222088274184234943676887993321073292881661711673325486819848179379690131820016813634513913814596676073121532817794629292677112843864840735732272421464708421526733033551813073467231062576493460595265021926965930456293063146852251499590560201707156833602515852689218625145614677074572667174555291140600066141663494081786845419588260552420227845411672244461086355408383610833874582980093555687270642203063245661486777195426458706334591252331348929626261986581219749851009259753535929023878331824202060422085673263513362361979034135652870241480632551657767011379670653739778110605287184458854013307470253098077914335599165683851519837869012019135820504801398039699377978940582380815921262509113737050786138307244730159044216772654518313617719201446122533450607475704865817512783460511009517711369117062735360517154772629702878620544321710677565370808756434354894127201419817223025472198924975122490868806916383094891836914096840812539361475198732044138492749589146123678013077745673261652749668410903892682834162851679852769946675894048458369297166998884803311835799484040327644098369367520904799884172151161488467813525437270761322703798863248876642578875638893064710022722453179041895950385616409165842176504404726034187632442031324457105042898121672692983237878586480137687461091787430352106510528421790267489316946389743450335480344412880693809528276098293961818750681093583808829469603177016255505290531376701027355183128248199924415570869988044842879905202705425193155358657112531306879129444819387793009046670563454257845976130723576743954273821817959933410273694712573059149246500739632104155815312571198860078003008414265162499832654603234558574710283451414287825259246334205615441624642459816483301355818393514398058458346476226015753701656023625203119540306323023331650332761772692988936106034553653646416299181793111738465960628077774126172001345692013431219113214230245543691791431718832166317937836968080781776017376069902545309872212913376414606345622287469349362734307977155727909342217091986812375956111834244798374096241594888187094941971794637460468012693823060939353707273121522334177318292741035834746708733215906569516343313042255092151250181722701384122127562571672770471400361711666561794399045910911177514186617291152111064845689030975374777031871326474812177139007490122749884806939244425561179363449265846738478335234801862015194514520831600793858705086881544451264097267347917141137897906207165701063813210666397266659067956310637004323405372475145310482874345397558343247046662140081163448364474158399599595154294436749918264620495641810795113006923243125716191714348857625931543879287941440671896399803248024927070483102194883911397514890485902344339643585089756074322798855486663501084864476913690191067866551340005324794729100317017874843010071910795347205439492290559656842437186858772212234731945795215909879645152754388259222437056146645717467755765240877952793582894353021763976455570676135773514762703096046152452429245468393106127237974590157533658358272146216413450152205197551177742401348047284761935682896816822959574399257295724054998771026566668802923930165138695031379673001550322297408468818652773755337664260622843493613786402609114974105021711383818044556284216872962407691114059949782809524429850061853497779038742210528218325791654382349494889068240778065717458028853655206240006114473327567996598408571413190866004303412954733153372685281614122446810158300593973229983687622323069930195188218219187235845423509714099301092955386810979639609114548896922989425798256851075482046370927604312987059789406062195923295522833008687212747368674569059014238147511859099052144475260649976122991039087773807791468055725109175332015296473861455527995546197612306685999556481319819593084528728075719641880848183872254205182315431600864995124092323430086215482682885381884586211044704979997792479061395068953421331751441699785148254605331899385931931962621731632080492051175056341165493495213507688320415383928292313731587750343785754798171633269469394143498438183501933276015452969234888189275404178039587136761842700142425413732046211278890902648563359108215821270658407172296314453919781295586319901449774091008002480846199362792216832366134427981347372767070754777149069796717488650623763304778397491868330937668491942610304046914672241390609131144798692959708882654235062810181553990442910133040669180409615419372648978062494728316374261252013900160874644813089945382990622686269094372807907384555297539685133513139289081832725881420664648281126250763981189136765195863231828509400950960615481051171005195131156972154523474328073132483704541814520579810839779490100589111680546809179081409299314164212999661671961519526059979253715170859697356202918332193441831808682546328311923419946280375614271084495952545098377633210191370263308370632157807888770518848205864789005185996920581205588887758451972952891102942644362611870764738242159135360026419203162257290953982063876026389575434337533825842557406599788916498677010729974531874697675429546835633107853566214669622904319554474266459113774543635475533882658243617114161098503482365257782181954622968786760735425130970097950122663325191681288321778222321698202960452983701538241234454524097744369793725323397993649358200077248310053946526124338923053632558961982739817357415981379808972100779509847700559549835652617177448053502274398114710746482734651397628247909211556381281388424524906731338444949445260130419407777376681624800589661436399090325844903935535805839780907170782294239423006846882193897136397828841163664058775404148402608792611939415616630477921645741050417624155123105952289307973477578483751763771688134987345693997811780197256641959876212568937043353315181152315050762891210226091859598011747856876674977361515039316249749625286846254514449597981804366059562718978693165692552769595851207439744384682806286430073966548617409301797196900228446864224018770465140109061140294333333212618829489059127183308550969196234516494280725550316085734051867257266970972876656024105179096702794593594742768969608303741664390586408084715232633689131371826908438598499915776717120336464626596912279428974780657834495519853854226533028786111459853835577495425824613547325992687073526782824209587866600576831110215244847368835747258013376554151162562912330107508455215510489901660444931811412947655283621146289795740207216656157068012924757988170414610238240265491510192146836085496720400082079877802999051606145031166330562769634810980003844118517259204687068080413153297374768681457228282881990054818124773088191209790824925958097794039205196356084252972643333893017834116554896949269819094020601633170843222863185197474242063065653874210513678805797911367046491062394786397908483555290069325680717406106870605605536482966114143878063142617515482698307189786728456404386166503092655834982675471563297652085483723952017570971840372296740941675720041603526764676253698595191996438962757393981288823704472335946636890992624763444519472705853243180002291754727314359107232340004412200059500307160564168182908478769050248108906218371518828054873730878180564126629932814375483864523606907482581994250809475647796702655832978298538959340789376583629480350276747311392133653942772164882112844005790783088667742867293732582220745500578126968811642658118129318233730424785501425647591490577653962424599313773015803212469532797166957529872756329287363083942636727869528653554503555170622353825118100086844693867028029992352574267502032897958013282295951310045454407753158243250977342871663966400661169144919788077405368009531075762735032218013637519307773945091323843848511743547708320865828887382502667443398019700924526581281588642059552995764260245193891431403920324740979711386825576918406805056181043116449523485417729865744035043723159859819191895514913377268166140138578086240428131689722028307570333144414160928174450666300826361082094308538123126916478652447477202389935293649247094592339101097976985047923041801984149034198032683576930147211014087366271603670285754646641048361739255794446192624280391254434535819685203103606722912901576843393463349915380790364838875243696868982110310121073838756747227712251477015149844674262072139238037852080855708764955138162731012908538395506657125651665721951626276870299522020296658621814876853467194545519701038979157989500208446845878297083065688234122728805764236516045100834587451308258697375006101421569420095287256510873478187318126321297735634876753410060003838193988867044056493910775110464334445673400416649588317445193400456090505789089663904998274358900752360250304210376058349533454331231806625671307174616259753222900612339105200901605153881491904389086318862968962993172285933493487086710163130505662299401277441123983008398153749580214668592214420024667371288552242801972607617814972498807863413672091003979756628446011538544504439214397087371052214091924751034189390989795637465851032514571311432010233447124396670867227844793370888364118242451164672646385690939262119662695210274474462529603174875409155035405712748437827195625740148933405983884129342212719340864145416013184835166526647785661781342588814347580478679320663007515168333684436723726839245769178218436985660798056465476346676547534812810679517617106127660678707623709851704606176750376664445690851880018317821043024584155141932955338454655995702782740474105903099720070379319464948018386354911748067077540763975151880560820202713412323737730248991949459660137019987474337617416148956543340214545537834648115099920114428568521453697346811424823174383353489096281654755156666067647448712697660058791747223770339797049620339211107246814072673676358062289692373116887771048469885194285659670742470800861458430540632758997127944416352942195944410536573613387091611183284300526529611494559703292528857347608995159915135986990702945620190341157365842528797136691478440541505378030891401670177911262080432971961848687035751890998147490848257349625319502565376103247103473761969993497620502518974885857287703193648170689602278102755161714277923066371129654203774205600084769742623710947414140846592415947102452957767908154996903729248924883568260468163519082819522905107251753020816051642559876621947834896649109170762623369912145603433500841927067190010456264819628927119675928127219558707921949668701666769212042607188733501479389705322415715773218866731555774391641439594479668302732246279458734178256129879867150697628091065549713738142759322107067990514387245993262172751899748158551574453494969431408083035371351872069333152258225759807530986369632120075369426874593115789758224731576618609141735937004412272727233510772466954054559763317752902258679716978836593774574393638936736170602723461035121329489110087554185666994586607425139716579621321142539539836455270338158542465806440970449886414709178555121639044247781404762573926666282495561573747237838655663168469081799935107709652918084693783774421442822401816951620273969516245495445976435411402178734495129258430073961479647258899071638112209960489891539388732452458858595618942691770129848079220007083854947284013622337508214419612469640982178203021308518966676670486078090621916704279903452110603802760732580616598731631030431207126335837057758257065624747654942479186824342617279861808263017288323013259554830576725881791743897567853709392871780077009485646341485506978141561051458065910823440013636644434324929889621942018639345269196998635322430004551145683162901844819975210978713929026880300219134340736039403306930714762008842635980327233073983968331667083526610040478127735995340272874032835182487845190713813501551595839822833560659198001752315818694383538965681715874668110937909649903830994434353621249610371570872951553227036497857273320639992736579185593136274746125216230782719379308595302968392069109764453957577797367146550399170082379285071784038549743874997140655963707492343768149489616347586443069433622106021476988489333777166191556889103963770469013317911358848337177208760130039062054804022184404073041357306468168538816841747075963607917870388777013714321600275344845186980345700763270697751777775289683751239338964274914152536164049393724842386418523707334503134344161303370889435479630896028259214913535142356231942216669448772041408506896352154267726385582894658810419431548121131570505083580314707620363584401683894366051483652533903445087597790018321895966872255362774150747333128984281141032296504121311954523232780711012120002937990352064456520782468331136675078249795681840117548391432279753328450372687755083618510857574182425915352961325194444879781102573415014527403192643377534365738947022563595692530880499718041463931314351029431693798786269433168367254067348133752026239907688108720208064456929594820676219689640586629673301469534312367551364424610453595468528946446457288271143829117761234137592348434500122803335701952948351455171493760040358363858635904803154556658193731983920618059321714007110729526336188493183805082328455948561794516129245966709542805376855843634838652122927216295317939239421168595371571258994740744490822949904527857557082672545381483146328914195088666372038324487448908023365136927121845822634304926692388671446704707077028396602220049837390191568334610674983798188461813976169574243918474863564884142424342643703693780910439390829709911098557369040769347767239151202117510758967375309694316132217101025347913764072590300618455148457208651521919708096906403497551337549527191619282479969344639320245435145484906344670384315216895000303404004139374545877921040301131834893707812260545096859264776128093174225015970939496726362883226668831083720190258758000346041467121781624942700287320163277673267904800242581124351119873658821969147836510487537129970977077225961312350435845232110683802291740334942501418592770762543745323805319963779638788628842759408350528655632085875968109895123298311222579121394172974892100418352949423155944310933042004611221196769928259863674430425332495817629638732771266665183351245693032591521219435889269573204710726009237079689430869174524045421392703683462692633307027936721240332444341614386445268019306045481232068246276597336709342464958385060755431318169053323149008899568895874120155545889080891960435671016529620746343134603715561639846386702688928579139078925048338943742451159908798001679229505513559050500744125090837559601364584662397591315216053711103174489358953636725256460640059467104920220853343476140885480692407604600209679486183610719928548147423581107606861784523233712631346254438077614789444491374345285862404464513848657215563871999565056440542723032952886674069402998122263913029507502782822761526123259342694266896706056517217543420541453922558231295293160605780086008782588664315667646513559580948407789077695670697937740740375411350158043522538784517495587752229339314270669176074358481117228936868436856854849226368719191302255921932156474659071857349495330188039825057867705482834486936679602281841129189332280872710078082570522005708470534129561240552247469724108090660798072208572778058567897140013506653163011360784243467527966853207551454160112926210766387879758776532092652812228876797368193180511384593328956599364029054457620384457362048464120695483639494987972428733115823480869962110247973498029965551630227567396919555209107426064882327629407189421337493488411129826080638686207024801189522489499895719288318355017128562023892843680517419402648846374026208870758918071204230137217276494248891833213926694290058082200032811729358142392363771131652987527409219982661044302183572936752589845967829556556681129149684455846006441330675173402632904361900041944275644607950916138003777886871764523826487005631077836817161998802318396886956348447179133642459372949298812126286991664859193509405802084085499871526711720081153425321545717787880941377156938494017218374749507252310171476530679528810675685612816840533678701304981665235575370077740789799082738917835102323004978864562255570352583976327901519494648651513920197234516624677731650516758339332701475603722789800444767524875368528454793868488938218466466303396287361320069905762412009183853721705787417968585127098966598002114697053571439188193650393131053145726061906492837728055815828384780812013619077607361813723563455100839240972480466017345188968423722372557813663322633760865554986280927744948211653381764955388612212241012619407648657538538732923815524038986240287194801426088003705457398782928715009714939001442201033657504796570903897221300580759584774391531263185421466652998169856926645108928391991957696555476335247469485225415568344143330296768058214610129516497509754864433782434614284080669872085210015579691218450906022282072989426232627434422944989218103673219081327074300538017463338444571658093830567832561332670229015201095770166969573520869203251912050819557844497540530874718474451265085740744139999954548399894497252977274100490845188320061353946292513194507012515532201649582155525882795301155341268350438062006414131644981958165652857027230173302148664681288019883842357997020866679217627084486209850526118379277754857037514461865741561678847516738668120554486158131772645606448667177480160536145068004940137662797629341027636034852631258050514361212061548531518418310390159309519988199835296219345906323376823652746854671900226728192847471021699768071177854211826452035005300867752449151503266670851762749872059237617136140979261420754082451658642520215268588211201464651236736948965234091525460119321175850276342425072282372634883457835545789356610006701176180450223535542609281190693080196014010330743335473655172475040307312915467480001164931714227961063309257114209790669538134891571745675528983078943208231918357608188132185994291981459862664517988046174227042747417952709797821533253858757949845941087249867073381100990453791552426062024560235555000189398576385475816444527234511020646299948121460252882682539351090224150493324377337189293553139276617115637396558400891396533652623914233203690850569194407125174776138971143521381430659098167685641927753406739533578999842387138757259838902388180118609838985281181782144064760460736259894043993265271021407705511636599621935961259340377760713574408688904226889703335939189210788781857377501693933017354471752785015503540448019710061613440364066077571874778999898885735735964180001492210276632369449900072391153522040576569953383318935439970523311482722345411667296795396227252983765913856187493929595160218573557606065983876716547331725205836492716998172079933803602567813343668445841556761378377806974618654832383485906189503856575541713355394527893830806944702753877285410964918730765382770622990478138082034332809015371318046970813124480049304736421027241826082674892827694506622667508309934511105836947591377858213962273814625105896791161104413789374157450009091399651040444025221913074574296042221949860121739558047046152807151748817603959787844877968032805100498512821661890666677769116993144674084733275666835550793561879311716418720807831651651486320359558065311415018371807684294040407636825548928981132508893093863383466107541630579525849906955299263925874432615129102247006381185489030036722963545824394844728434306021973333608141784752226701196664543089773222869933492452080036489991289527871042581879629334235187777177609118615981467098084403308980402434739849500041713194837634583565737716911027264971839495568096975989838164038430995574761165590395449687639671668311339088583896124696199784372182418963575060736033961459961319135454553115289515401806867925043160984835232331162623180827601664362109522599734194032398970977804494874224502327216983946723095280341574220675771768716835739566140715125634744516761032720699357749087488469177133816754655590957985128982730848155935859281186211969538176972108733298128341879108145446455843129314359497453324191155119729711746642674084091429669236406837848647346540140538856940540161029932392711602802671763554373740262276934569094576714741151904568115714215705685133115835076011678765915566118022266362839406748853010554728298243857280943834376266385039115882161676517063943377711902023261874297483288151173107633275996980419715014929195421456566807697383103158790472461727779262250430631965173775745029452191982848091217895954170025149077319374285243094027923820878796192347626818317484148556848722138825484847702338050657965733871441648351220650609779726137197926078844413448043831735781362097190923937558198196719072399375257971517013423029032019876399185356923492129237197396545199452920772650963799501620183765792510649825675622599862068560807304760067671767105193036441147973826964200599052542681811075456054020593650587744403297211716961551475498393125790762461815890650910892437685590505665424131397956336099308459861586925489111420942490570849160847270729703224677959008044216018126950962396540850485546781166326364648623617258991356451170218357364462748576802792899080558581262389966110937612911273272303762199305335814508662515081718726641621846435902328635983727239779881783051305847935798976056122136864987597457004858798112982107741714178679109321600012057145743381106218403894858670899137171132827208579730930934659388816246723145024195584523453129800150071421314153410569469742692245976139791813959055933493332254675974442097538205639362013155597218866575873990423623431243850825791406072300875026563648667668788718085562732752872406274694143572003448728263828086704515041244398579331326878098688331790042283289446293467382533317794439556198622501699793457289625118585896544193759266586427477263217665162596246146482579328697464346651490053349373669582980265995407646057815494295381123633626213842161997192585429503781405102308737175214408831338842648999735137524790102933596812531321076620320924063683156741922722575170439391633372234000296641145381852052605469998839087575092086953903022667279309570502218809978329860068606007531828969125853136088315682877388423252909421904058349633481324664259187257732754966728265699884215887758274419912289280570923644258195487341577610137440618155483578128721271910418005498336857338942790612440465591567329553442753297621200950510325248496347253777897813767767351984696673358817194933122841420084415919614075903431411544098227181537445910634542086059912093338248112648590916769265725609488616713898306226285468783381577869030332608044339299449714767533058398670186951810103132887304644493307862638230258959865790081611439627747748115143839404141509000232034979941327091674837580028882345251456565732096196782768804366661165744223838402109995600137634519173718513050728849849293644123534498316861274835183215631534278739743646347429705130818600569308939020351030379863104475114512134693667951147558151547922517267429105236627402958543195737355453606758641895493362256435502018688650602917185621315992482816702765899479270286677227693518846021713320266774143060925461665654850620293051711761519991527553677577459232227982870919844122697923454050489382267612910703435590826460774741980017099531443847337930363633746806113979291388776656281424154881210309207014274705702836725428359734757517878473934848815466839790847982399317711075222338622905240679389456436273375797987256214361814428092201768882049727083995725379158169980973251300570596946841269393740626304372410673281585775726299684544061082954947443745442715925792373899181620332915407098651473811722983578252348833412064519308917613633704123367065519894564132985453136507742198737237529997932275924245175358171954823451064876236665916710754398494571382416256785694703215919454354321889376125165568652067830549625652055324193614264514901068447051649384942572506060233634039338370544986681227395741966781686879392120988819252986111059116211000260765584153652291734403004600833503738721443549300490666050245257266372400874923582660431355118697507482427217939584094395684710177457379560281437871568378199661116249262599920568416968053186703335326993492489384265041788272749289685154964355582138384497378407247246412260137432837300272816608967214081186073906497344781131565987176460046640652279473710995383394194184193285894455735431813148308933633251214273393268662499180061969762577834051595227082463460735772297848606323426625696950170851169313271101345877823922716418382539436956663303035733055584948684542592887478037173532560517281482308303291200084772332383701841266025530073390075374813802704545914580426165086668752740955155543208957809196475864363353879130184236052972878951049375261017941044176443278795023564328111777236086543482296166822176883163565607845988986480477653009821384917098740524486108668212819733891949522820757524699458356379517535757988547631306878535427369479792509400241141604190275037559336257149998785261262393463672644270503970564807250717981786151683356019180548471424856893534649793333086544959214846527834057636863866465365889664716270102295903986213147219244659692509932091200872426381985505982403239934674877259496120556422402909253894009067529965032222831672073511614938321820436661658507215350290508141344711241794640965827885551498351529741974084041928638521925445371956810939544896236983417261429487324596976286676773250057251873665500894964517749465999456343881511856615353304673397985921773624496039669132208210901942669967308528455595118623085776700901603540046671706488948759687762234160051279836289850616840834055729634993487548657331419655875701562226629020081155085257024435840833484002132078675028905333482942685507500817209154654194511941739502442171252847626861060021084593701986981042954387097496536970063087838799665725845581128663115744483525870732050778512114138694745244857504525972065689526456838353895378566746487398138220430744149037525833712821040456506983692218156727798250360225463939091341986886900497780214523872191738207056434914470034275539406865215024622487917026285786865008829997265259302287420465663052385154661116236070614975013730087210438852614573643578280734195951862792451499002221041077786644692022556746604444450987828870322136823874910571865037033589167111761416782520826217575417268831315576691834561094684674367396885572467934719560290942161668679914984313952767470854305283243212527728616404582241318062297078876391228162400465573510125057850830927956316853973336056897605760822668562738830845999156730353597903435257799388323329855934145293042952834992322908046914626101472089800539485586382131978554184695904368761537900451110680321545992993871127679565658784216825557619246056892252916860638370283410611530887929362053253138538280298252754092492860632647161802237663352179525488144797021314527255234635054254544577568158993525821249800217061148502308021379992819963798905418388619192762410969889572255827436370422507554056217079046645230944038637324695863348787384219181397650765966017131625391878013223987819636314290688035138517079298012354670422231025375654972728643839431407574587995237767364509948968547091244461633356322515971368076141552962941269315089828251819357869581372506344600837673716325059270971178582183882276152082466553736452467694789060099705404294499183656308162538690726757485936905709064597785765494459646467799721998064588899810780453297294676300454191843439458291373486584277427502693494727731984784567156474206683306049178640972504759182455767180196465467481455423530196533681719631254025269910023694625011250466031486942756755600601139708073055270102488139924811482866210551031752843063489275313628158624131259888348747935247297042605310914831078572484403854737585858103695329416550842326057866166779640692681301703566220077739433894257928021740687753563251112913989434476764695980879906783886913430339015083918527574789836856159381135296577266674189504238478588901036904348941884250589219139272733591835323027967808484239232421169010011983765657009832103462423195636437369170083535407706443145087923345193018949119525945227526140447477431777377374430021748460605223644558599657155461746559040696027176987630078949137775076446644566494078950923398197986148785209250786817335132997366393051447916054787862805455949087710245730204257199068544411838193899498152900342439468910930349063568320951431293966558311767195681589647910469655573720959962991198024469155938795787133911113882461198534743137379775115734059471356670376476922483638733913487481704314775368764320617981872856426960073272456925288529447682094088868865892797595113700708890706549403739498095087945717486628505161738332691475453574644283475391389967804577272640728480883970609397035802865663380219436568181006767088019874501728136357321656191935313171477612329630376438116482234931617529802639725112519614247746744461125559719208734823430228859209642184612889366473881639102121408943815976534265366500042311891644688468461390904531169676596736932664160485225599045323335999315998621550866204607062332814029015686191838249883268719838731790779085166788242059679624856342192091559488507853616620737013801997743575183418543729064519656909724990239278999877886751915213589150905524617522147241869505509092938712171582454995707391125151936936538134705437375214902531664724895260595696959882600575803588367720054540937759311183010044820405550061048530855963325438100792917920746125392911050686305130184555940658972698293350416625012157162420711793313433713731419295543917316667104145856092546504455520968953985810280497607502591843385537939870089504915757565486796652469034379186426507201372539426077883913890999761623640792547082209148118354874278663893184541297481620688047217614213940801935527222318753485224133981083554831496641442809871184870620160125881703920464803561089847934350452981873081910214461455177182665389022304669146935185025148734862605932425453947976313051385240455577751742677526331402488839172118968596504159828636942281835484471057452086441819006376754860703889908717453185708796933000020592125971758271065158883445665831738302938360840215208457073956417379925028685635364094507677485981334490396011154751001347475497346393627283855760947577357231296068892263372491340520672614433912205171445119098271179976851640581043643244941116133035139674319823486082471414612002004616287130726436597989838071757709445438952732078340436751517864589842773724746243844935060677212358953908032120951812629784566682140976034016191745874449376924774846797621144834114002137745863160502469322527957560458624807579002419861808158033334915483432781841927167258986827030648613594402828394985964384964288648861200930984870563055287511117558992583939672904527581522429534833953125821304068758645261824486459777098398458186464827633390857335239136405571751576401803906003747584755952197680673838376737979433646213337002419713299016787428442720820109451772281874726033062767877346283584545865387907731494365240953987564029763050044304804594177359310731344839023633940493403988735454084012081633337284955706540520535851449228805902145382730152985676515203493162877255755725126382389006787091643159911195878073956420385135852310406943284766708724405190549932232221399917475823449565995982856085022687280170584054885528750937971822853181934566588077414365852483097575629688299894711862377395947263242199453274600002267937685229881231383520990283409958448069462570536516918417601251292615513176961822483131529609696094483143392096686910368735705551407902369628348244142940015310947834537088776215566914744330595647746472508511660124896112477976972359373376575757831833672905423076551730495870572014755917958918765911793669269841704081876347755631684432503749152001545749537846050081402222028834891394514681140543708913171400793088139752620846591029734454205965852029538397427428133872295529600926884688354288559674314934189797957673774162810420439868163913274565267854097935557688316714473581821431440441160034394010158248455913394755027609819170293817774208187914390416236466315994453014798642832855841573953468022708171108566469318423781534954207030438912772713214840884561618516045069706837201723796366928599906637054534029551572343145376066263805994853733436120735029425806197758180855885440226180371312205273027708477238972242734944214758339086875494895167436558298316643204032080741272412767040788432120932754498283693983436283292843568912247559525409397092981479279997093293254500051137677869627782968120458512143525266341764831669440452619779008270246184120010563786616807654156693093893994418932801011805339958832137130839055284344992128227739852867729652409316790690403616219512639006994734251566443763602061654892323001869591663000272315578892194134137365818966485231795595885938630198186097095807773416737185458027132372524730684430242803400848138232957525980557796949682332931696312387468557126974715100012309409088481490283799972077887450347305543373033014747909306573633090009069741364900511055507879142383247934288592575483552271136955379579366140121201966920030945738367790433569013774734617890610445571004005987178742218667351956786570774672297547193958734442960409503403632985462218470550832222270787717737342256265773420885514586012168845154993431651213186282135247654112743723622412128619278918662014998027603112783245501607337555188349148811799517572371994975580808149291550347629516149392984645411982049855954604066722532222192519812739479383381588730602804389335582423674163148720369543664321632786047229440791375185032033742148419252165607521283663389297239398933330854717412613833680810487913438192043717106701743381157141550009858818488872289953262588380691936683845751876924124793790721882708692819525958098003000460505806944642211623164947690359144536564112981406667110696077627133006995625599295300729666070954073332492729615059268178394861615721777495210837548659126936972028516915527442349350555608122511258358616270748309204433669919523007395502550686535488732829296202342148661149267136850412268932922281893438917691742054486440497262395796222239368491021938507436799095441370370079285306117931888484981811709501011069500959410088452275172436566788184934461918118185581635765068836187967363542520141917044283950665585475123464372293650248500842061415142302293773987794346837545958858959872583423248598344576799925689662334656924858980106829036868104646234721389134975121774150531102276749951844162141595947029470122904025559997231811150596101649950590981888808739908468464219750691068744533335260697725072243221918512354928007453196067983908965907347747960751049053188067949678169511211021369167070387691326945087918843671080513335963119301140542459583219908699539049670114497702250029686357988827907887913550836423031248046527524514653908380681246811821665447444563532477649869650794429676664500563508589910141350253355188999095660256678853658947326578211902547667715246317954192119881773308823336386658475930039883824807695904850536543805717519202042239263048375311025424223453842991510928396350188841874621859453262417508225253369965049479384000328103975449383125168447718488266063761325649681258324529279524191545150071364434509354832787089906158615315005046261809175414598027776412184995425574286894114827706172699462030073973185641590715688042083882649699307535570355863691153648228869082862475706159278539288204420071085023857979531172040876516013676754546566945282793435951085933506588360815841504459310255204453921853642149043194276447026892761988016837250192380439323797846439478685741004367562972818248366637549550619149459169172845111483773521049377406985477529663444969805732061429727517244522484615170719832335214622506893400078512647023307012114003403647814838265852592696135380504223090545794059795449963115199013234469453585141386211732509312984521967018896337078742036131013028935356139293850923935866261281709599648347481348708812117453743054611991764262501018790600945502890300127196336629283493315418163239546962704137179022411260167081842598772370941667341266766985632198339969169998414255529720151326137879294898337055740901046528843063454850661542804698911035383222966032912108890557506928741912591488093800693927848289862526309857372040826422848984610128594001322486931323801694570275372732895228891442757453477068751496431056391880351748643763808807986365964396047135244596814906701583333237461383465453273038005181412621506680761077835782312141693899379918537961332002212523723046507637402200831720389453413818603725221346645215925943341045492935634251368542088390248903043627333404288393365705254528692872939699590011844740366601602288769591356748182429662129709302810773485838571282839236511519776478405472302406762357307507854346569760344837137920016800038420925208840581711255748666215709105188373869313792492111526080974038963969108070914916687535509336218267433557571866136224957672800291396382330109032461645105444370321272127534650199050783029915561859294655098476631888633713917037210209605327656193444861234455243497694920294892055570563079713487257129369507575744875484335049196554764335821498853744209934277945783786137266182558190554012012735401299424523594679385616104510551394249944211201857043730013096693903427373078699847981327588572752572261611052451403564029160461522680746491417184610097022131874225082651947846566552388961528345365082103355960894923609528651926460257503030756745965474093677272747461231665210184214881864953879899825704700912908849887496038452161690842537968996131328998200593323628115385326132662935749473672258108032092323857079152483870200837157325787135166929021947315645012266444389534446516050714854884750256630779914419094290369286411687668011802685758864599032352269735839901594098571208326268343058981259978398530541063068468902107985692609790497015164016727593274899581019474447193463149159599204315820564522840934068470294930912035682509440209492002903001941595205338884919590859354648891298266999433167424578658816221243170957809779328972085572451159416876119647962508776545576766714693351663971705130752546742022766664464818524690312281972538644731625217665217067116991369838648226536892972886319690029482897164639180904915108969238532058101846217221862973216181256515499935391242289112885973752536174367474373684247349835623316639921728343335782882807007156774269139107658489207233576374782271599381995697746224257879396516681946394132779464364042542824378385101933158087579291521899711355680392079147654062234077472445874605158951942435864771450364612009914143489418507021308805418257268067738015656028033422101148286032188161689079038601258816991675895724369247476635993157524624145864294113012033725872887739290974736607125165587250641521925138871865919994072976844331270466067556031863071675946602786628151936558506026811947031419044978058573925719678127701162093281991188090227576206472483696175094218113123419446700871602726763500944234482316495543090939300159763174883059452236991387016529442702715576983145144571796832850748394432484800017162276622602641005834382613010207753751692660849691336923020230588900756347837395976290796699558868242387313491182296753879320741814141283510766925240439574882488815586265570483414575030770239075278026363392584142452069217077730116919222921998913929217255100155286135740062567617201297589741643342863283883312995278536268037311911858020105233178365460070872285547845939033519208585362444068700700408048544747138635980228178240731054304175349330406617167029823862205996436433145885668559344464468503120664432834884180998863915679127171569584176966668777310260825556958304127876496671571472451326735801521618891089251177970888889855214297318225936513676900048098338955810055670691130686960804803105314039889985892062549705402109062593648155578215052709973029875603393052430280093907611929205389861022776773619517570154085903962436551015911427932825413967257299121807169523176630643319349281036626040915449686454611368900125593592803461663524227410916561524382115372509071263539527353305850566582729669969015190872748251510755996870003248850731597645890905162507558794726623587832416674836789353212603473630320395701536906638707886278133106618098285904136229752360602506456700438209985696192819822822111817151744743146915493044875537840220216127020756192912717707995938941210104446283063940951913437777343062951980479769026130386958434020859995868621021561037776678880282667707562194068429853721094049616951547184953456168773958247709871185241450417485919888795196545503103915537990269824736929700510857187267859947259877706171788689382591943272896289583450577182347013034540589130902676780951125676990879409586598345405660233066876229333082512701166694614924926866387467920159423015301455011865291654192105140274150370722332794937807746583598351741661478031503856622939906297898749683267967632576244860632104223492263913390518957962109586725807760261676725556751669423132926886996796062751026052675542489271441735236293841632908197069595359243268950768510574800492578113802444330600425398723179582986351425629240757595794375756020836271718586621408015818769902945607551443513084268773479523504044929532225279164755328331248416937431462043352982898155373549050905946848480278352410681647780370042472878715310369901589460975732969049484858439105017762681917594969846635244329990618671042899801711474803537959294306281198613245168490985259598428913870678881945491826123336708074492699663356105093473177180136185689632332180399039679616286424326776001357787781529612753928278241581964982088428770806715897894489182424480780413121291023801845593516762974237432679010325388109618305158885863874393307435336688697893094092366021468625484684604407723374023165738766553221095426680706818837370096255078367536592917499266185229594420805092537864839670309422792987587138913696003290363418989724200142427173551246462482907191213300680817350831993919111246432927265334606304872241631050561698197092762138388421496618968971833213144412404226349205580310196590730617483978834684468808631233980509730978414749465588143711966665723928834726909019719091581482718055364137355335274573832855946623543138834898421000920727774996592810161413487928134338967092713644128689565920883648186444068253530930718841512092576972015053291591384627137299332870691552612286898937757843201270217577765477721229109788123064708899667632939653150984081486261367391330445120838514970449131993548671410455260863477422321412835500526561272440956587003394201866891471304864021469667432121985738800010185361325047555472052998397112283686869005272781130866879575231660659093343354051803421044888853694388079265642756928212795773902362131103583983998603683624818398209840246873057458844927807692889143611512388996216843736981842754962002817795343672285545894273183559405844727324854078892314978424015599595249530968417276383881988952207076832971177409741724134142042485101620762514607467638323264648231830332946817574472589743254189147124330387762175702304653177913750967677961320075171606600453894829167462521638961116263738889411714641674577986171877764437539470268981630293392262942123141660098324476330839363480085846300192974889577818324214212718570183105611873748408185583904308468044680708382876043670861134507983440178485783223596228393598930917686748992379629672753937136288780891784024797496345322533769749546211800267811841483237296202159582184259498534026176565630731615098246938196037690192335322963988763844508472501414798121082678435479939372656373877192517312868779944885575213276762361388886209027397221050066961467501883759929206614509734988192377817317279247637724977157703869774502122394668213852505673197341482492212761982297949808170559982117904406469554689966917210667682740280563456679831425199309449760134635831642695876745647107713616965545041536813727521579775452846328816490024167030051842924939671343808429393734892782402356185588061826172614784478153830584512502254744378553115217272291978270443802003678727391094572335430220167446035477910293657754710001049812150517895471371709651733410240724071862764867058544035099603238451266140393662248795924435791431295136696536135854051148173849731948320830942306644242736423495534728846495912791083833434616456818495515851271339592051580583988047273997718304851483409661920277632999304145648140342470847561032367033780891311520321072828786212697163806156516042156045058301943217180985643054942463866259837505746562327680934786911721946981631443879224304835708237288621640642166332766422219635997700539274205603915490483308121820381475576080757275943402444586760552168847636506507542622752169920875108971856815104127169673705119539265268371086862022760944315130354437228204298564303199544597354989763346359327172433354121376676081713882388967977973286300893474495148066154473420265958326337053667550859306056738528115599219579871638490765606994689071525683980117741955704432853556242537831717841944294004930766379264992742820878808028089780165058313170619020064192406779553976915069324184989042727984013862445683638807285935355773229352095904940314734662375602392261987086318043311658577836000080711458543255848524769982182647173439471214248565291919072605943863012035327235792892206471232696585063103007265741085808045531381810206858226440218311588227681780181207399231292055513354551934908216049088019658961668189265439396587413453586307674035231271829590126258684960376793011375446187525400154304008236408217860968554570376849933224824414246002440392938131682095868378560909777444052649011486083666594101678231325509942073201304027559768182254916307809279779307388984148175622096347612416080105333913014392671661670509499491795971557617711237149364405781692566053206956018978492666055917625493112048024115112216768029002586877132095519852092493105877615461787308320646518532986093041761394485143245325049411532683702845182816321517721096353411075833656887046346815832774576325958796994921982638581723206367456050116466560726275414821574148109768998907416400684816459876830369887974256165028658030395767388875036500197346404704023428291750734181650506519787517511341099426926374115108561509071469179580883703663531196575393784737027494229367268123368204184777473049571852903044590041052614456624678958896913833415795131497214472858749662158151243675748924585301878443847070096766974727835245843074268942956524834928625160264602644341694849675656900954105474821568855826527341989903806622230011671193002956087479454484581898746540292913173905390570015574892118414306728931327983488696363328047121084369322446900780231040938727549152362166952929499670851168035180380173930590539763024474784770376439860470706149067321733360020079052559841490393287214224147725593679182154289356322094081934812253091461639462414342454137672614065605689522121172223536862802456724516828554046753182413311601142694362149456897260512941159289306162897610939246566234097927873157608208487779029499728971248970993059265758076161280134997333458318037615398806913578388743771062725354781797164937287158620049506938751937113777130744470515026797031733718132122769207324046489970166934945598423954448411967244428346161577008172826199333030741395887805804026101928682315374912451470912251675774198059875460889791062182031288987825715793147108859930190136504094548091697266686712645564525538448993010985528866615880348899567701964550963262364798086301897001692998758649198738137652045133735563707450742639093712716190995636281612976079637146566948594883444149885822305972098317323455854239778895550816003090186686051491452924760831554390131552323850135567057172118565630707599438611192854292384598617196492335728484132158240664076780847114554389594537809508826084043659680340259713224178890311146024754901508207770794104935945834082103779715385918021944822771502801076693651950159445049367967710809046486421986711322389396484828614494678374067503395713134984805328557810608888220670724049203154577820014140394012857752908506742615027768628505074526407774663920646101304091682938723241176235444535770471748068005084996798090641707791583014473109965169752529489520137091488840948483472588512986848709483703014567694540763797752732009504529096923322149417265512943628320021271466735989651241995533996009451369662873764565818329847898431694957986827791868397466619690953309495773259298721058743665619985388958391275590910018548587584760671051734770794276218874812181823250969191853225771273013723141033761847585693173862926386678962678921254664920301958074570874788537560806204079143742276421373273684994405247001670837659679524613339935847822914534269912064675490798724646134198509406194740592670258075216560524154606193652227713360579611975753953355781371014907701581202774349693015813683396026500389797211178586708007795082932762547644054348939802023607219625032408995785332439877341276217985001498178238355316910756500791027776290102411932357662793648744203068939322683491067465462493215826477998248915424514881409185181922596966192313224539566829577465389778466308185596521369290399576907494655580917194087308281368454676577499222903635785533008833537509971550338337742419494208996333538602617446360431883039514966627707513234394201422304528176438742303334772174929964096034927877944008733572731961395339732842348834795098259117303936221902749175843154975421508626472592537447407777707554105403590252515123005423571438354632881436287402453826748037544529742740158823317332287207860073714746748293348765056357496453943041549649288247195988992871193931625903827434687353739153493946002047976723087497201108898018752493740890989806270916736569409018937339573017524582645606431817512548275975235814502198825230669852535741983104672300759871867225575129492706298804369999231734531262590580013992322933541790913821802166293325278592086609689976641568893714811961788291334909663832133010682138919186545539311637856313614421939630644113914326766240627941574177258218561149183571360933969695333231068691355621638310996720338041456385972415231660238457874195473636165115487611478650194688828230361521370718617762238879679076354615895419685810058610270860240338761792709224032982165912160993206145539621910596130473093829340482673285825690093120316364056730730798667040118397115357714498926247508948132713775816156529379916068881389955209275987997882913276535689510394751450290278283364395846637778228151970546069833911091799317638896589512016032789688149561944469478572126325667413237749184500397478576735368407641535178478518864537744953059175527770350171421895080858101866810279089739232740381913907314713698717252876466766919199739537245580932708979962184099622228791217931541994796106260216506751463448672859367593299496891030996615234141459474589304815602249316795119293868361463080163199589352271461896576611964081679823680004673685393310228138598330004605984228206568977397099019781973513302545212297149824895211007339787527763366285925120156979601997940964802274320726722593926717863742232281211907289370070484313495057271293870559895861474828037165812315406266418152296334306928188969935497791641176234846515405665747207271322994299754466524249660604799280277767187325432333964113058471956478978278161164126859852953036504815881763214170131859048785867774854039711171458965599835787431693789987273484918622125918845612561068205813449864602977846030925456315595947942590419584523687869820072141598002237349257564291379848481833776518915360872516084786498800316163001614966259009790533847851813947662934437855096511114629388204492382140898150258185317315182152581722001648169642835608161610317061011710172163268266362430005529768818595395111114658918471091001440435640875552476534084910633875220426590289081047891051425818077584125173840586772835228966306010975894692309663797425894741097615522130297236854257484808008841973851739336542381521974173375474430290043716954123132305631209093896041022449837656917891070443109830774254852475658883584158895744848239504758190704034112153828596305714084735381283070780371799660225104347049113619806293036078126308384790212326442575197599716815608117307800745157011929909993281074209669966521654668668451215097709689876619098515668793173340668690965115987830576810840999395778452202438684178853293700248607912821237425138004572612425226066221417546892575592797220035029351552817670231850820595143203264506853601858761331958816808904535320781284659343463871943690887092732748972650857354495330507308116429440657923226839507525304819031750624193341223816674896003071968194965918019082856371809930657302898228614763884756617875113393803017355218686525119599316858458546474223921367118544650103910110664629511469453804200800248468698617586682469636643163683761555207981534984436141063717582431372165966025420039075570644710028512582823335448526673014373671802357689549651637881574328936801661428857878781303008799946570916148244021115696989635613908328638239860307148217789129426898069786935936869620559539428482488501174594485857119962359128846124765705490722393886443730601613253965350611474118247258588957047531431267588693553075092472524416509831444911449059562453141095812890313537013011840984044441568950117080876595973143763156405408524958040966808877453053186663576276521822689928444821710362024816643781785537800243624783326254302689770087766067950450672700221586121635768049578731330242274770279889041704864298931188511109028381541043417879009632901143283109751983541538298851818045839260644427671918371390402480746889122734782846159457301924626824078373858205230033409773751978407019123785171609970061297973721042709095382065993870099615066799031772392844822973941784460331555819636000164363035743048037303078723553731728247730622517908836986673243894392735471631241596325719034595050234593866246791212393994254726826985778850609108917499654405906239804538281879995847402602814828406173914497211894505378410660764987056912373186440849404904268695364528738910897651236445498049322647325484670971103007999770559729055165350123599104884366904500580081362640494426399508734504398848014996441889747120181382006155177892971784507396872996539973113662500747723179934450229889140985207469703960856716166504331486661013941719554561124172910025140532775709068846456759147133196792936894358451734297349942267543937575906338064377444282259974483779184759016568639119964763310598501107053244965772971385809667909867968728579498194815871064497153872755496933666060119365401233203785640850837564107791092735264542595849032582139260335894697901174387639576837276287463975327872727079785533076005685370040683867079642228160316146599955602067208451557195366920077750796624081837642785323616944675195631819730370063078091775055334984874561757663757897620334610423370404164678023334253932958139718674094280064954649455483482470383754312135859049174522658763676899402692794626487506144651895321807074491730612615608294444478493244425538039979290656614364201767167501131723941950469646806503848706017749391614833287462520042180147909911455523255704298388250661021500616526880555704188839919115353636231374182634158328934773426175132929513943265818810058843584095235759414898753287836154842810830216442057609357676518531481930962516173441645389702404264032288950929538732316286371430710943308749357787715200632627929558729060172956908281749804639667182225179433908820514486321444321924270745667534985050965287060019817494528264227241473005604739127541967090072942847373160623234272786847977039563823456442219588423244346013629391136179259133590970695706129137383352478379952602952789894412487573445701401546102852038282853344898339387333679239258427145590634134707582708379770372565055267978362186422392078015974307455859764869459879905855335464410240535202365883124451716934215938197234570826303158437714821005747573879485598626954961663043120937957997734305406271360088484759090564605310699139360999802698005405497515622332541280132894907757106951156856892857668842095178978449147660459224852189720928866497340507290972047777646914476397515780264704654902346211434342265975969629875246670339305782724687134091228919290433239870568677982259414648666297131076766873699622383804035732817312644448396440438664702854328336284130748514877858105818703082285691995957039507040317948690576439069081059179240171665774455230136804711265717670545631319123164959497737889293185165496189011350768061368158406185241494029364886135403606443445003807958438670003064006992769846471652998751429484216052778879221604733189028210063537331565955468506865793701151944260326573969298911175798039105320250517587255422793711129387823065395743430062838819623371465260309574811797400665554318959424446760942548609791328095738034242952542758271871815067756825608294727747444502781461138063590398129923547837785369826316280883502737785537487690862569511781154070774034512732099343180080943950513324534332313685808262393170203607841565337011033361087657613166809055066680556614061974483797326879344722945140444161321841027541886674053871324314130285390789705920571455759543484473087184153053796736451569703037230754597988262331759252835984009525994826005722314297480667969893229533636144054997993990594475769144098027752188857493829501551737534809282458850183070324137516489527482536525443721654685025324685521944694865281458100138932540953325801963033701280165902068298320557469583830172430930188122544730574981942235837101312649791294504308877346468817295503438291316397686712062667972834420118971384526879138296771317167116817691972942011676588434114448702146855609613017553239249503194857161980447927426258072918905617459557877965505647389360859623609757303117415818029020828270678378541904569335785297539770874916316748014712398725352933817145800431635538455730797366194486738601133583393131300282835846193342304587522519500939177606620897378205654781661474921308046613815949781952063283977721161414230026481030190082241861691833920307324744396911147142570123279898559742512093796499182779946434235153153116180096763617444615272914910710529521920638532798699646896795711844645729336360037325792337117689836528665049851105827012563224989897697416724171596837584892636341980265034320975458465134713310538269785330823620718211127017522557216345808298765250696961173119897278718966705434651682316977793398173551309953639456273447593385260942223805310443973242890643871460683400713640085637696260630350544589361558206453926722181974219329595940751302643267908662132985373072343647156359593783084259852046025376348176871797401561281236293865825086084727629161780825461966850939179833436002354504667085823869437810015918131643885282391716439571606388617065727878601844925234622219543127905585071824996405615729018501678375547385980009445789868177708483755267920266637136058219414142682881001947984895411698048339793593820583284414308524846392660003473928123217376880123207511088724355314910387415898601893948623368819470663016761600110077077188444424572176186205803214405780586578448807924594651240187007411999228643503894376843058253718100653252906681750643584888108773155873329829131839852764342237206575447395340171883149862404896153634300002112896745162831611525753579183142718088937933701733202414965369417491731065625242989559526324173164655578357961792131862812511268572685962276726025767028877683467663548550833096982922678778250364952300624938315896894020280113241303604034770860773838754963927828019376110811448803389279607429984465968192637923315641110365705519654348094478212994100946437640538580262383724396214625070107645922187604251513166538241453789459393340930449057599322055007059063260266220864211732516850923236379074553045580773831063908554325791250894209241049702767882513321352059642009814883585612463642123045975039405416764004694665861021418510701293848253642794018782688921979948274498506292135500188535588627152169716541460642770497726167579488280874192273015896978458919169305266223351596901297273593828596198039135358836425704324709583753345998427286387177792751359030596283032903155128170872446732432390875016762492143827306751010916246284725548330675232983512837906101368227684562460154708712095463343935514096049666710653606123092537270807478986428980677168478468890704377961752605176745954130894916118623551843387166818652545173513666485427069637013612892389540934136349159475126146604461231164981962226440709396825401996279173590269323380747496995279927306635953272210834452168955059762522627020303049733815730216724933617083675145590242799773137175186046881707268084359313072654631817405266747852977468113115331998453529582220470963311718435788956814726633394452107434724098131046342543713101342235549756839184074369892907779471906456587495053930821363979713461444172790684100769080231028543956963702089578764400889201282646889686721083516680202224778852811183498183495401239571327746042775429779113026106843590797820354440621013778331043971578648966801174315483581001888082738304524519318428716146609913856037129117757713873964505452719866495895094891593296110337850840682190664553569475793116333331888577096201250558835619331303811685717881086899723097331781616652558879259844935919220305052730915142940283588989201777101413394252847486571283376482933294353175091129157312478798017862566422494156571002178362779170203675506315249926526730240673175126453322555360054377217721758600097176784667072913217404921029563741574844699233583079678293083434077621960422737012483873319228272666179802126998768429152336548617282400232331798393051566696778697168757475922738322308172339192450137724743490584274703314148309115904788214111017373719674558785651580530698371512016820025960106153133459556058114001475403636467221312224214753809217339149059941832080927225896824315748746326578698745405260421843788617096576879603297044996359688007097191561451001111656567237160297455580588301294695048929124870697548076039273075332800450714455473187824575820039728207852711045082958368987957926061094308341745650828096867130374283528640321109109092984354793376052048966974601906840866583583276796579589287528268702185942422865764169793454926345750541716107977976655351414458328159099402527319541339128228543524020096083243526902192310911588574130772349649412668752652132547842150567795629805347140803414827573437422390181429134339810681664242489878549190307604323283641642952250027509983610414075707592623334676426250262730544916186091055475995831348214150981199299080287365192079898165823333888609306383161192862198680223283023437313304934137562598843945486500308982594571703262086659263055249360210868399560542363381085498346686363026633344948830011415965942280878587653977507801286412955029355284269833167199707509979901057794485027877663966606264352386964617075061060546685023003569332617314962352649498963120457930824072654113172051914233208652040796306908526575153539818016925246562986463938128663239848617490215321307149117004437255330323753128622945545111525732943253465154283538605706655687566393651062601050740055570699652776640540474287016975262748740378374900761045021757496164899502053592750308143789644517222296752334375891746256191328324286240524153824295447408277252532042805194254526047784372436030992885889363913406355967755782109190655629371884882109097613107109818280112318034347210431881520408471184697233624898328705136110350327226021894626956990919245164348368879448420609665743077370536834023107966507994830125470632969563057824000514834026548057725089266010029914385964129281828921202192666196813921861234169725648988429758868383819527944961111942928560665221608620109721389825241910983047837881302878591275033024366746316878930636180499264418128898967932215151188483238221295843351112857427718634228342504380880775452467042422822802704873354652864116538826849522860203448973943275622075527837915765068309484561790572628947059896476044952807667580457121306811607523533599414890980268053040641578666962316032434785299974979984535687582232864030610083498835276362867719326395868241563085329456889749483018999723804839927441373325890598981715477021499191909419928443789629066379931054226073928362479936431850268365227932961150133319985251054890847745922849556604874045687158617166794372234680543151238204663777289452144042884524637873255416862899779691906658929964076929305864185109939674502888932944911813331268318405816858268540162036419971487891819871866466213655166466203894010935406789972724598889689812741107731447923486269312468557328489956635726049988834832717946792179274312212075368500355771989273812776066486827451932587706803739610939257453599998883653792748299624990815600434209388632163642799101498031219549079892743762203747614112328167250313291968148088290062993176746825328737272942648491630982410503034460241603277584773241139575031982850222564219228988428462170895329367694183807897527925497029803987786294962009401785881100867050728575252077939146893042750267622211892894465806439731055490422708909567336135740693470948862601625424894477299915889592123638598982016791566845201485902141653872978111439855345639801674269599921956280750583230379989174426618692152834656416622245750478091518216759445368611858855884310796275220080526336746434484590168410660050201851957058613830952994292614438862551519524769619851476944168146591296582799683306416921870568028934360451788936447510731033613746036707630790941263989558433708302912374203016566697360751224289896826738155179933182305798405672261465948277888117391633337712029803282166615303869665333562546431362574666947239346207793178395090667156113201600441089117526709834181354602730614066826549900677376372687165511708332684828585929398838786125238877085021259234990563605729646424987785803754944595840632870047675185448198591593121865469865728525439160897626718332710588740446197486395766798624808729962270415369824914640380097593335498154479313255645402603612475878195181087782403221266552282206351738548279426640174717217071545788545639171925173854418680297473786310033038336907163022187189365756897930936532755914828527219407754278495397191611197773991107079577761406288142902873633325010089075503754934013801285019623074578258557031093211766443913607455035616474370804198105455245990024897478610133420961938923929423180555573051908826267212918261533508448713128665298927177352056480081283441590221725855838792350154510503793469369484421553026209352659566863759058341014397727107415953055012070638776299695197513312957546538945780372450873928050445697646558118178933961363373460194592353208331355845806520352388809055231135763947155846168958209076265498747611162042714146411699815028608434758293817687536705644063946077573236493557832003894673365060356500772090841864618774797173951683065205677387880240375223840014268368010239762173959600606827794086077081030350249086940115395365937666797261379909762576770040161124627135641782343592146073407308829442456283153659940027987368804093988101120987060929143689480623879208825407352708945571371981430605700065200145237637749321581358215627669567964608694518021581155819405254725918765666349577896464048709913404601148518428341133494579887142357249834379773797551214335631537796356134808806952645883542962459765168787704904040986124479188830044779631175187023422714641555724200179853236565741965541152118002111038277421965707088452381707004901686171488171667805538539516631211838712623368814747985824788473887867344790013573050547970740686241996448964122839623249592088140760540807096057075857558673141435859708762609373039751044544158142337725714808127787202278869265247529219611809539515276204222705211284897300824997658886060926289616601021974310937527361642518013461684053918504841603811041704830459241942256305755029851734202230214244039119504636292180994616989279342523882474127031782553389078378010920703582035463076553516329073799158187750954304344679075809151409520165272628806515722657061637772844658974235848746979023229432990763894061159074883821218749305168889063204848955639959189236360103522232121260176334898451414638852269178674611749371153043105886788905628854746385647361180572022190096022318992504728236368355697106475587303100438868240870506486234319215732235512089088645427768729992053269383574800493140719471952798107114270128422505615683140730851514426691776463053323662846641158519077827819487141044359611156856742757479963007602145639530049671315639133999584968928450536893931117264683726709469880531277560338653443131458152021337899087754344987704790902566841229654854871751168160298820893781456740852162456976814596108946356217342951422109388530261365634774316562438853587828140409831090996558706955350885092942119276400959404638554955727058601032818575574241447565786409733109096005996966501820156060105594877217064119772298618544025819408941164176579170565454043930399753276212212093521094357068984097744483469167430410171294223284174931721581635424485701541804669761621948081028315401320209628414261748616314007922873829198374033867262183972567683534015735496616408301305913571812296018369652484973251246165374649895842936401203877778644433894913342994173696521727991446719575115859362222894359785393310960792171603612183278706480091187145681291331228888287667831736995963326626846065741770468648961872009303106652052992104968469375606756322789531390744924870146581781988244338786009557837084459115376650667478389119121831821771651240768548230820611653667697964975376657587155460385822153960118193650972431952235705191872189736517170540455022334932876957373079238956215328323042460365610923042233847169418295642258729954206997844269512423449917382084158201212197631851336756652972338429787445793104298914881484959544430720375724673655670217346659773911593247110277613638032897984291100067054392019597160979379591941819340258263789703902851753844758688586804041490757069718027478570347260944716282944912440521283435288057043342792329874187045797927351556203202217142945796345939523423555040370094829692471118311369883779561205139024947082813816195351996852849537412208887452247358493032805332859773865258981660516733692031023321751370578026317315091940760803247301936162107849423491783581239313445019348167156176653179071044350163333484044678497973331446049681203744706314580884610554410808671066320668306601475820164312718713396991104677476042283613132949466374003355511655515739770495035508706430464528694448870573580365848311452010225546797015011413019048071650731035274019123859166773930895575519258776209754079751947594933722243471989339825678477715767997300616527249799067001718090856228677743225445073132889526657180021532030978543110712079777984219565624581642174545721164335332151673813490991839271296650634283394506886330879066548269484393670866828327010112659584999048518756422405553184380664054002159266258865926231221775929217852328938427858811225619036607802001118585297878157575072762525650865904847985563225672853223953372799737663780882095725907900049381842665655478477701093814725220814366228296012252664107531883216686165961977694697211333559659914323697141980709934026891207861542647003219285636063522959826633677399657085836899815103479436888948382117654715255396114767737627746536874859235518257758640141116399877746296957701437454626503980085576252558214666135088887168424702848892909216609794176546015690706116715081710732408647368993141238162079300569825302230413738691125670263852256819438438912512057355657716673758832021337980485547316281150368219917772486314925640710194226007393141165423179339398958230106998974471080755472704372866143425019514233023586805723446384650091256964784421605817472844334109169191218532351895658025841510360524039460626701711504071409208270403645952600056329050771773052964074794293573051986274577097671160265929551619628723005421100077449842954669550790882839057733508729094196854706393366717875979273621298675080054444218935914972581585899247312682706283587790463617095716376943331634951521532112951597157172515840590719467403906098690378898591869155249574914220643344907885223830579090767664706829955656554402736176180697543416963092993893460663761494927318524007674933338957539212783006978962338270812143429518630618585295572628252641838010619842100267809918998777596836714913978405510373699583989556820742644902495767980454137888450561102029416152504782556958123988613226438110224780792550215286743395222415142368723802907579756283093850781193738153944455701077830245622581353920470192208089100731745373210036988314139099975579352078764731540052608805145712792431980821192685895767404098783375705522327748563899031402590111829152258201473786887012790198710855902617264115046878248216038102020623789065773965424109344040422209700558511588285024075435312404574696278534481753978287068970983974310112419293942672800158399089771936659059601541276126015465376206983088706400983966236786126404504265151568698724178223794859957920500455200980174274031318457782899195115325770325085544236600308612690198480191005504897920621778521655940298445185822329253994726451430271119624607670458711912721822594090078585379475648055755969828637802230286259892063280261304760209526701248580321857585537682980493804555383755109872275938381788419453311800101846567593034740604405933535288419274558980748480598049357989895034535933183890056994078611152281175298673773229758547797237831059636498796701732200917612440390673625229430692282948069726241725631184728969156365413280931883856486105547268280793484188158518383002766650890438417495628550023229087377574346188672319939683114998596555409026656457634107552628833108286729090797934622227676990668959971806955175668880407780320514912880546060132051365923408817601961184733731037080284340668538679983860923132229548888824011662071035652025432702345897854378819197812968432192402924581457153160426602462152052511410235817837091440098371776277789526940162793587734160449797997454330992827074243295009443616686050262563734255893531438125889833746513924843875211444485778002921052872613001374450062969437801367116360093711063973027368426839824182717545469568229508359428047778107342664267208146731506038276761265980419492828016211609473413175523050521296971919753803182165655804114456265000226931322533372642789984418006873601430295388062476849327844696910493054333706746783903085753174370899524892681278972493520007518743668436732074523275129044677093923059301580011774869542667944319668911739931586702572640287361764026808559294593573759417370478173623731644353352960233555279660486610101633455267681759915404166825274542750057449614896581941787132249571868549204304194960490555574242324148138644517820465542158391963744554111266227649174687637989384724566354348446354521159663749159296614870856978788927357489288939089111565605699899436817871625080346085234225031906328063614351597251080112699628307512381097023012047686982691429366586301966761022492972323489251358545494957634040733857250801734100395187277616631016911490376586040196143933221075319020606667742762945349631303696813186404883793726980882302382525303515736476868787676951926645703965092167802453328985415341152963869920217501463107113669088858055341639011306085894972949671551578476079720590611267753366045141432841569563452123796120602239329043235011390714561095411522716802025466393347548163418624040746133883141054720314319828123803693257487104757621096932923535251227349784291405060003821889051835276089309718668652418867836477231778139631594363106823811782303598856287470918057946237076069609004679199086112573786528834792061202371800998207563891356829149800143211764931197920128062863835447547344273792772464603873634089691879542561197138574844138580590354324626631913782679427185048225968658838241169615813569145456353550854209730618603526069733187848946274667544286893329222374179448237176688031790879699383070090820331861730524981752253681701921974431360205801313657028692253880560528485174298802205535848627850438327002459298706591254437598914631586569271011054187156868868740385439415116674773920207183572664201152404501300059486549994605130251816919779058163530384174725981484270314508364299815157171658968263590763721134531849665789032279425139465162836771508910627782050895559339186168425315615407314042707098829285036711682239076818574856669365782835969705355480255403066269236080547506885298288748745719688178085529620541363502111373809392902214597811304693888715245409213036856446058264989233918461301865628586688941315499126951461287489758156169106898758135318707859962502971952766778976407309829754215491434594303338349972069038131706228479418152055096736400828787873016578149967536659265621175241094727036161868953697986675099556315505079073990934930659215721359839109705707917193531768222683695772847655336526564346270123215060927367468942059027283956884123068718055220772712915218692660949794408679620315625402642972497719475154645282045819118461403303667864805248245797675376546465049560152921221665894801594510712525876221698915491547493333341260641789976316142812190334508169895226410066624964883877638319735975591203755512942847877007895564831461211380750048336695418776637324683752470642907744928412407559756632413609420089517605365610178885130449104251972517803488410064952736507356388330177985865877455719005423582742275278521215173187171127181690617901160049944119932410784232541857713358493452001966680108321166548863637285724319987101188276562144994874425717033106253703596477704869958004358216948592471890328151277543389580036818764962357734678218509160033478326698957920727200010932238289286809468480327340033830444754355365784763883178079432941696304427219226853365898472204557033335482121946489700701270979378780845564317336872201360423197077213434567982384215575991375684657230410819612133873189394995965751959779365463780420098517799434998601818392017411669627331634090993850676788439664929852292650405055723754443411057313653035860741261462138336266645839929419380776800201059186095769873585252587668090689956544324858554356171056632767406818992013011327874655370782021643068979944527604485099330589536790088601352012196167330824065466028524969801503782254458532347310272167804929955209869806055721448118905063197021973081485031856430413308815163351948944278514011699942322082446095030604691774797082377058594306222007971561491994535643865609498857247639144672221824897282338796601154427109569962899624702522948898045156875312650561705440405747208704215614183730124205606711578890676445355537263037560454399163530319658198621093770470133069379703100669377773059153148966183498875373852610995578250099229480245499075330808213928908719948926047692845162672235355740777084834472912985433990151619932124210467641953956289412671378342930439343253027351626723893416826352143123151132475875819219878090284446708236574217292749866907285846647610601355276331302537858267823126015356818545121499110685830316360968103295930020847708291736236174860698432312466772062379279863684773177801753241259747483545539195849500255313972855511868161370275057707122089208446968124854757358016942340096483962445226651566346188298410321795816418295225048397665501429090746946270791202998496150396157787132563396110851256777321278611485380560895871444001843611515088388669058645417838657695474798213774947054813545131800115526441766027865373488740445744524555700910930675116275814667950720139438300385626081919532648342183542526897898562914631695160537880916399252664155042571030594734855374943557279239037086742804820996808593206568949902306283031048262959309755489723170876887720642778605949777139650930012981275857890991504442876407514335252163913345841460582607160171236701345229368494117322679991179984808472735309421613742903947416913738073758113762000186579060588498774852864908104768356824920563011417984871285033499273328138334623434610283133886491402117302566444965477897125770439178381517870531360876312078653899449885936206889459279098734782309279951261013977080277302316979491976415255377250404641052823152762886844869335489487729869793676190795795154964818236936231860114041292704486701196691191330627831757224086879347188372227144014179478583987576025401170545846799275459608720160471473848740049778932199251819115097848649727761195060814582755783609342721190822603544475302100247426963296883082188970488880871668938695714307629965044751275227473548513032931995398770229386499764689626692698121811132360624466869051525277769871497529988946212525466641713790162871227878987280886540882151266223189696111554521035803191341696142443036292625902826564560502926434848060449530200394165202833901932275308227484475612584777926920963050015225065125405746253321880493969422431106580921095476834015515369609427603929133907682842657559993410310581602831201095549939909879870381560442229373104644479954051425660791349835716623260394765012320689033676972391518250140106191367649658659167807318031180840269802869266518835789829940940874930582016568086284473696189119809698924444582228471660076043185238567876561542556131620629536369766605031736956377330980058816909680029296086699688152333400384470432814446399363768313280227327725290081373943853895706269042240858913481887552884541011737317253708991918247857235875041923556580090342820709606127497969086111063065140711817012895184897835201474553965776345034420925117777691267426265343922057032385545941362654798804001751029513457051148837540987499206418897842592685151051152733681230886046537230399005888993784837745161974290446555320852025178706885165867670691080107640798220391364295940367945411043359080561419835263434839694356797669072428978591935598853933392293508488795143965628098793152295677184902558215809004373351900451643157627042687550080349403234969250101943569213024554051438623003070917917869458244817470186034777114969044549798931620606944350896943607535712356840249688727749826952088143919982925576239869003345262163576999912697063242343484049703725420354879273866369127863144898857065577658277729542530055277537030538528800971282594506243728596002160346286002366587169035196237441413199878606493014229243494269096738339915306084932929911703837450686875210022744715307246792623081590399970315145449256768257947490672001125988512513128618490578371940068946785943900381603757574931425636571398511522621463474217537910105740002238926832205505392876681498806616593009278520557753788181787255013110072497457890880117497282296106182902698637326107824630759048688163722916542411289181444585569290830535339808074504217386250938922234243365032385555995056652427191028196931007559997492367151563445652546052346357015367921093747442151694854582289153643152704440502518238969522475892452483824788785483727401275648821919441864165363979184596367452114659533807258231851115832037434133041117560733931043253823220903133602938152779906666378098055412230023018197275960163199052805442922355510796081076791903656375305813169477058405556955189299390188693081982701716856549476761026430967317079018266564173995006320858298692009179989716721997020548014803207738011075860390502134609752727920390575086858735102367999882750148802317738411849216650561619210341583233968326246634109083026822798536138253630323297956837217608510657146019948434027935610366821512609724324438681099318385667932324729171223604952197416926249788381663664022304655187497919929215979846438654940673643935219782447643143996602070327808486581782981790868156821798692765235320138205375692539485092133651706041110406344086893495211152614601753488074681040716173857590274369093521089985735493239706620023326144117339632508521622208975427334575296566496292483079197544564182417091249179253872227809210497134733911239879487596444061249195208699184547207413769404524896344827895376570770797793543505420858627763288483417885915370856015907517973942120428595203967633391975666329848872207143395151466371099604548447578956087934522077574264207127589006016963320001413395795144092989883742045464946745601983786613146724199850506659816241575238424693581186812826964925032768979800663152975505087766441483014058934232612887617595235482043170649310896807303344251115207241776031282280470609030316878174972287488260400908900724563491242537881942417023989060695893082220371156118068164495339736726329922648227172026242072058020873620414784470320959697993775949788657996686471122295837032634516839885072436636247905350782561641059829322533933938098396528629236541655877763073210897660063695385924373575540103219741774127096774415647982232451540672143710235970446763546220173444262580059125890538790266458218441792161029457354909304917356572566670517957308730642371986542612774012203092342398846309584246182310088785977730391118113332335008722030959427554021183520394988520405388936328552645248516604301860644830057028536865479917750509608165027153181248549581500656673546625792053230737765241071934934313057151511986384887644542692278070831357837010857277144591668752596488305299477871364040128688222516902273447070296143046348984524914586335041925737296514051253165699996152409902540865244108313369172001810502796337582039230403858866664816049520046067277502231685154122919045517683953603326992215302439225864009569604774524358519589162334546309405624545038487461219377393315406980168778876942021896222073777562616265741971718268978632780397689762577942290212052604505528485729973931868420727771471173909039124449967648505074988251094426206011953281775960516551376445553379210208789201393721154574482248095714137415761948891973878769788942053755918835110094765484997424849210688215806736255193331092593724056609712431992829776411762693166831677707194500308035334126429560504091174815426708993123293294500365612317570277004502563504904102226636965060111543371965747278979081488457026887068250545893146165720010881149475566360206630432693966676806574326471178123674113471666558702648922283485957581903372303584733377094088956599252216130241435242884051984000435889312488073192024594733326133410339022711736213454166473833325331781277864776243336793472573684601455909281394527289072643961559079155903825251083110945269823374807631329451656529586407012286125204662600239456384051652089327500053974338310839138955084778168015302713856530712304539368284803698060562575768473731486614045414486624490941437645255777211519210806625007820456930525837779699533408680017367941405094885619855253053350420914912813968385542980974203705092026041325990419186596655190265155030030397952859296345870865000115360817849139427875747292190957699188601219461718793299785926258409952345509598901465259012616135316900656304270190609222020341387657241297275587880948704894075539998117664193947147603247151684031193010990949194743849961376527186573083615587573500772387563058127213167990587827535062364004247325371523197177014387902740792163049565438727467905718193574278188127423006538160738089938756780562472520999170207814204304476631897088839029293245032470881348780496075983695959683411171716908215675624376695313491745045963880508710505061443722129573335063590487965161538983161857158396045228316478717287025818562405189871181993115477556429405023497640954014662848972918179940304025019511256586864113372327426805541852846020098742052146405562976145531521805348500753165697622757384891466370385765406433557538034636737989297212694038248287278574446702983196515347619097147268944850756505519704846708560391119963599379152013384487351429605782537004861909286490076982661085291163698070188564595445420022404671286422835309496765232657210142713097284691050074492253364443259600299184843903152205577305571818264919228207266703008283913187285986788301621922649456830661361719888892016513271551510513464576269226330975765729009316124158458973319377723888533999341309043430936448015579596669188924213070833283234365828351868100721716172711116709965905555976048943761891254059269102458695213752999977311539367795326263812990938835862555413501732740423951209257847671911242647385151966426492050295400258014648955952242168525710467276534577352805044037696972190451487294066539971357169046974918114693557699851201824942170775178224078646610822227364807000024283128104078886252288054973006764182500819141128394118378895195332062253982153294006622105824387635614214629575517335464987921016639646655371841222717086323687535005838643418464201175226145179217489448209973694155393119231771468799247819205546414180307700502998161506691227508834091432206128276578273567966822127712603398019353936447524556081202277708849458427629905743834905704420388641478005394508764847072919355821530351452029587810831691196014427085203469211004814608241737242409062071431916943527032241492986994321786122499918700319088761733110963611464455081796991934589587107178835326096152840444591579499169834454219514894453307474441270992667060899480636660710230909735079261248776935119067467934987005393748418143668017257014761525054503999205034177227981503457901151731583723630478589342427559127653139344675077400673876818583631858349539055296954685812334811112592137890910608781871252723539905736495518173113706225685127366661479323311513583173611132348039629154204255095452147241210724134466564300238291958779999406036058815694301366488146399576421046950226585463576814890164297927124046053030522128206708905046499187438442328757410236793668892273120500098289809213199906448704846310624791122964598508701326348511807663361070569394639142144747929139688437672849265985896889893298509163988183436247628463824122462194015617369311583306084505202179094858505955565545791703090233643346297886372160999975878713632578912942336580096117857963714472164669765090309253386940933916629483015222944417227241109113298333328099277492890985980213728301600164405255482281539677321198200039231283472128715475775869022498520027841151807974381327253598661660072568120295827099481291193355372780010458012475124691230201969488936543067578821203963629303937811326059065477582710125411113617919087176120323689985255482274314531548440097140019707251894669816587389462236303865401365381953444989707485692890847334868342001495011859083334975251466958604427146609534880298051583040875058736123305413636123121819969524102282124353752176421725046196998785820898332434601609563147538668169816824006584597583003685877219784158742704389977292020485758192758165173239540993518233827403542134549908978923814399317764375779971555747656357182386991871178138451520786925330843806968276765292914632986576461564953021768183698637124061530078350106271236403852101780983318590145793718050279017634930209570563251394180823592962946109692746928873660138177415256454699594773476457341978571710570388348335169318597086316981940750103429685836393922015245852211304495074605580599468167579109215385095943300398229629823198985194100532796228109686937048384865409602370455867861509866604839264843845511588695985840771286241362771741496811120038266994247113332580818995034473445517600193809316200232394795740975095118449412378375265373459799986514189178117982688070587827046299817366923003391562376460429735207745027660727096374326258774020870866430375940413915860697269466125982705235596718740603259046637304204594954003339899913216503407690142523504019644722437615386641915181324844771131977693394554053150319189457070238205076043928470522440913590950106092566237602253891171794918563276692826268192704134071941286781706869885584550352758637398185514573259444459580675403292009115271440291558257654248951777873056458605312660251911474467581505786285428972626460803508996742228877591281227398847127268476575750884488879616777212893829787778501133685793503583988896532370514397367558235231582804615096517638281619390667545314455377879570278755209543232969084087515318055668991795730576180614632374880858407352103322389984695817259766063648853541206618891602040838219304379445063621105752491205681101069315309413571080401579041360044325644377669962153645098217334602206916008385201483803354758930113173039044067765063849439455950782710557752830380219730515083798075308223106597330407380815721174937589380994815153655296506992046597299426557974898180819950497988341630066495230368051651629660995545389814033412362776136679335655186646356896661850133282886316655723564250381369652030584584990636245117190699954538308567554472425526966791756174331277602036481576962138763487844779453214013695006981485013462389144796688302581528265093588960665863387505590667149703427490279183280175014970299199538238264579322750654674803875711037045088196229225460043781602784848811190801461536446027472770963573229369863446423909654708603985981165272368077548800161088317133007091784164857089562201997644327568245022204338869245525408426430088816647131047012789687600447017044952036120591000601677075772413459533470314516935095216172363018413552336477679840636100252359972677711452166836010986888748621626816030933036120506640053633345436930125015125960636382236731150049496036090985668603225277673797020683106886532335370277671393890329404221395658441337019274773769701108901964936788654949514236984685807804864297295070265476061956790207094363923572249181609652850493948957032623317056274474851965542546428312549092584955807373487671420332082759373205672510308501199031733846660729370004141621808721200102713845355385444720504522551320647549654127695038456626410758746991220548541717042052707535880542172827771553094938233514984846189689373685357115097985338935671361626851517019829172403243302103486917930796956196575697914808377785004759799840800539050231801353759130107360676799807883703046759031769436814409320242348978773610846067901910906688297377378157201621073967301159258742243313547649923612729772777996629045580085358377404647484666287084682001073145640228075200478576857232783806302977330257242607165990038374414138156679557581432916955850771682429494989803001242709311187658512168007477919324619709921893033325954664605635825458482513666864915635226726036028017501323947380082353109290540210448459217503585913448986478646359355288332898684638278390321277345021883666483627717880974162536829184515097009858461244637019672074398462578586768434662901883718834987542801116734249367669674196291685162090248445555618717270868486592531093247941604026459074294507749941804124370820382859158968673546517154839456385703312464971821145398440511169198549678877536542325014764562342674258207110508190747400970529436709413745452635417574996326061713388473361992624543927002347297750173011387867600286639208115925681008902447929229209218611325557618176841649362326254377849903887609118006417247946225870577621458069964643503790386916729704243427629920518916170354298071647725964160594972656177323667308543794534755687394929386850380274131908064964581823617920715236719499319536103726626198012938359259494909429681799147485001296386692566893324024359367897205116021547318837301081799218591317622634794369049167784709019853230799169999333072333058490770659911526776854034304637707321630947999363174489749622753172249800103082777365223692272058526248185639594444486714454586177920119955545123450162982273956818424093947324578316406785994393118548361433594661604134682503028260219319048921368084503019750935183332195454565637048523779120466166900184300396370019961786022353904964856107171688790066858048612468662839290530205848199590085114627018783162039499759381659896362639203541145923512169110424662845027939620675931369942053159458510097937517096236211946156990352792255288924367541986543431009880576940029722198495918048931719485915819446134472570209913558273411539500635884639211084092634285786107793390503293397522445179079678567705463115004357538152413963048659044906417691562227766490928915519173181939166458134307696462160998663064695550264648949256188821964592034293088200054309896781622256857605437323379872295657538741793694345459503060504870304350862194667750204147694413142885975808036728142915850177650152249120094280409699688841050903206408782436647942366599115940299765384666342280253852864702440540563643756331024073779976862835072321160283046370775643490940389009436611122560243572623803822132160247774725053516389401375550111677987645853759513867443370691062237235665199218649652119826977755488946456601598341469962564196719477965784118478943956404470968593563408844027769563055829314402783686031142236459585731670330921621996627960692292868244216152421903505269255453790785827650471025120966165753020555778118742762717387748636221756600269189385188595050123173613607864208357473147478305835065279351333739249732235597800295518382154713625478742762817277336519250379140957377979606462824927819243439079642306932656002616391047967313936987477888307863502213835031707492893376096234732471908876881697640424834296276825282709861899017635186003461425261164147358931387184973563173567346296874389934464353252032306717396700699850932101536760526779671435385055847251753308874218580670531597339621953548790069185511740665665779447301507096521130340788584473061050264586268966212164815758382243101770778146395661249484604196895298192572189362523125433248252692509766405880439541520772225190311583644709069395234362578387331370638990190671158588511207030760883048116649787142805360776642834122856269013471971856142908876889046061076704922349638683579206091472461618372913102141850104660571197374467588171266284320538458756916761426410697255358534706568645453179603647323034713157754110554309103982739745537896921155654894107085155627146490551968596684603102215525702914434152262294672426787703433846307807198442993542407295541523079169861742414858812493500701809907288569342214133659484569023376762253515813826561473143603415913406903943114697597897250312644246495732182918036935011797465855466397457564949720067153451433941101688453447711961190230847335749371819081036313297718697035292854155703768154026160029150119826013155143216829208785720062688577956739378170228348080058444313691551717278777706335352068579020250351500736619774876631635200235220837380172500405469667344815180646500105857197452376125693011445716734874688647419429743296237211016635518758994288527648847261938880008443766473678793148234321018868100049882870252828086489431534960714763647682227096880001768233114787748855912744557665910900273227860854505581793739588547669885229379400798601858500130839464714276359584130002206869098132616949505991906874909753594616706145292213845363054752929645471283394679945682520032744450757218673864067029494347294972196893497824571349270773343415506542440547332462630534002671675288750902208436944066205733367254125049564817637956368160152286854921366605261114715238439030921023571665392658406422651488548272764075027678988805073751645549882710096008395171482322512343023148077349140365535186897114962934156997605194566186487150460054312870512086154995280160738070628203966874760962168680877750411458528963678634603327605673575704004965881346094175706949014704462625609476522802204312539395151365317738926204419878051457626872246659403791240475402967746854172800703331694198015909901999794699674396460468406767380400735307007061065547236090080990005576964464926001319678349742267223103946654439345128744120865796887320590228955771525451995072259294075016153682352450409075432944366438989857386991591145611412526510195890965582148089636344826990648762817575931248840012708353365227748140498667589179380920767854255048225423997064440871916660965993477255137125795038601358317497650908238095261267208143885955325648586559491446693481590985116849102321481463493092269382682536704847271261146641799026201874696769945903986167039456193835211861100845722360218827880852306188787034030571663554874197445528409154217484976636160241422008267974871516572576425645783881751170931749709646902691688637786907334511302973846248341014601463189924715389118960488648102720227426174015029863378229249355065782132515090449342501757681345421672979542507969518414177189726275592864557873646675293318404418164520679955562477414179511356392581410245149767137124696422353483508423537726214743132976123495468184279871911619231840608632489569603895736652182447350583155151408124378116040959842871960723909033313988318384829102874421221844589145249130699709231616749725855456766525190835697004603980363439115719256660999394327817347349109323494397417416116565664147364543906051510218832316920134912298695247010245511120358746746131013622362053976736837694661065173824278064833632287133557219728294221417767094974645280941091797734700708176864370512976030524376305811259599145930851677763204977371961333723894781090621521034751191088386183553493282238511804996139108479812704127572966820743403111803199195678332272915500940197269941026526259274130742018170516364628450409300527465980220650422809953781716540784218867779704367041949267226700809753361562006829483522863693380505374723963486526715621539004917250597865796319448947116168369416426538152980506369206606825095531608123634895479198356606695812378355784796481043529342447731460320436373017221151195673637776733977496556407693321891654641542139095163784444616795756812353759781102420843336440262270232872031159264869959463665834852091640529531124278836859085991533665042709564268198193111899129405922644114234821627817984361548737301315758210598270134082146538013415350259079447752151070090745270874825294654548154884438609623720750231774759659721303883837751750886194409074175902684797410277319961488102321267346671886151420368901932625561632440708818636785993525868194012282372171701296007371077689070723566692076405398249390147965965490404213784087697695167317331086163916100495104392707388831113695994780093049852479686271404103326271396466775447051260061303564104145416444320524424063715644349988173204403609619634241471274173592972480126536184172686666403304278504452690767820125733273524901662406066440619386159479008573717973752426362860002622677007487526837847864845306272661816586211445438026597225597667789698650870123571825515373254390374427067693729538419693868849309066707908521090714937095712068262604776195195174287191576631470469549788392535731962610932352569064398600276993189475605412434320518950603898897946515321495051453592427170201526759736199095569409487719931136923532528960378553598869666278242394719594588359817213776041886604527627495796780552288413528102461039753730544488621066794015513122290334906910197994998689072182021764887812949623696763203058086387284053871309443597609162543393079090782396873131624738289692485766227832327600776134550758544863977027209054558557906992063143795817574024639711452791895991818760226410029772753088568247526100914940360005249536676532620885850658018875693737008928103772051636012273065846316351707845307831036191399380162778535614999261736085258453620085660575054152367250171322952013072071335316712614333509872243553268953027716798648990974480732344624562568184378195267597598556627398425541584039528537060433082539759346965578245772312173071621290733972648146233180720175813943980039793735088324584646141602636497985856587064078254434011640089402582821444194031435437757977098723146206877788557132519263094472614882925538349084017415874515972581775963006301006892031058976124662818862825820223597560771898470761627517123414347227211319105101321028063096531207054912287332671088542990970590769991374075893933849147629103552540786528697030184262007418601614069959046208298433027631231445716672585690687281700212177320912393380167945243621727022554670593697111665939750495969878379377707629477302096584637233842442639458722020870288534479061590861523593531442804489606154412972850104496625312086117133225856382339067134786845222601817776648677258490848102636911190035202186964522853734998866047669736166956914414436416909012139716799844979162580726173655005383373255435467575980510168595761786231857863062238178262059421315025095339491469750013247151122255240912195665664436021169800794532853324083730475129978803543762604134579276530928546956739629063775577724120892078327076672258366767205719284875381510824693822175709660826166960345712159795520294504796114654854431626232649938763708541413561386673248991097929551146976257426267777946713276429632951179384907200613487240821494925858477306889651811799997226877465295977524441814625898054790854465625900875625838921056716071911467941014837346057913564797956297384263137603071418620968494868608838736519883974117186766957715240099614216952112763051992340298534587012306159973261053156165890391841217744462118480949726665554081849046856088700848522214724995517043468728340469753052567954647682967984166175215611167702643918315156510467382805483195158791259731565374264952999974007259013972643585326271741000279551836257213923601497238840934462659842270021990007781897096250669084260763330660219700966972406645540107532442597134991108367759333844988278475405065809015624638999906365587539941839736171029001609498059449095459789464086465640314839784218818689830966082626642796276927294410045698498584340507642799982289352224744544618917484429489666673983938020067333308289374982961768231951084531396614910133082341152212176936277542971364227792602881308346289648883548724686387759682178541049511639395460468373989547424096612021048595793327627810352698398884275592799960546075327605843009338211490908212139122815209024978053085486132430170830389384981126708164265541545323443573972831452864772455039429020311955296807911528302078340034671242001517005178432842845598247995394540330886139048293033268013391550492435074927062514440879461712183367005484092970492741880226119548517318958465208810452541504624706561514918585422972226203125912056844587235710045790007672921415693609597334941616384080714258441365857336765504363382752208618881882468328452042494049717816212586548079796775626277599292957397457489884001402785471069731984413207716068434428973204693432358810269966805487372171374304631087255229456349084112905782152007884657269048272777397950152617117587571438923515372431094459346227376331845718652199698642891070890246415770668532980597340600710701210872181598660091453708028143737567259364456432373062832040231922449991682815517567755840731324008633193693411889324554333219712286758013182621430836675081943128115132229922163265876643820027562364497666422075851614210858941170822233996302760005530791401118509261617725679460938402779079145447056254292267254832889520038338427876705528664283680017413139850519891908746375655118745419971223103547833543992941803275988280368553776303352069845895256006366917481456408811481249719826902859932246433433784141553448354617760142008934809915215510528434837206788943327513819424032990468341558645023242065749864262160192009020305133684173024447984824037851336865350802718802551669947739682494199762329671811888319029470307103113755291619101122173393890791092856169459097548865841322060315536609548877097226888662017640890891493767070030401719316306738477955778066410948711521972473093531915720061143071446499791948995129692889621067958664588861259607517581681988899235546292404181511099720381342375524742077230455916498876119606934041551389069872294862595387077463129258020833871643700106862466976396451036033851690283952816008477885761958809311739695572953810379908332540708668050184854190798612014277255817881547948820291799026533647636769575553122853571335405508286228887055311297559419278493411358800001554187096849166041513565695010660447314666215303070356946768662830653864881287574868763538271675369255974106908803751644191785850085949463666942368724158165874430763040901559655393770778956585736989135312754529159530520562491160520650424554043997273724495789310032965660318606062783258303011567760659478043404882310593660396255807967207920429012527018886894369329510248669101469061135062556122369595553795655012313836426898017764928023638039336673097933105607418144391960633644169368206450932043944881072711179947176534787451443605106671369849891163785568778801706193978628939442161350477987960207609183645241701635374308858383565894285534698777672313576113901662949712340311136818677037563178799205279569708488463721101761177236178304667329411451168323152365276292280660114677452844343801603646660228129720049641380265510993650879784405341866569593470660355836899371225625821250041414122602537744015120431830166648145895072086424715095559689812940165289327202001198556826006039919856186967672391359026986152185837472383744948804245136060514765909437883944819965748643901102048906869994317565988849287110969486773087080145035963907291560938595109974848803386822434534187080763727204610210637987379514692845440503962314850476559743919867501861696785046520592092575516354942613644008146272723658349258918364246425988448004729941242241697095745532372217914778910980909902541565578204854521620656790554777667023080581976120427116886966550671564701933007770031247075816312513336298295141845332760891801330229909222577989279709932264683772823046292804305998761580907800362236552811283298175956283017868108140336496488800484113520175436968937825106941177597196840229890922227524983992174080357941151034406580475470776061160834456293054070517158890149526005965132291344008136805742802959537303041068663478465973714783872336743172675380490498248878740160929495925688496076489295830785745967180531677451145606205012152491369049833560951686670030348610345872824576119762096438958142266570523967710181122408385353912998478130459124206337795346403698960864584868415626173630498040139039280249406840514892153555677245245564113796616982500636236511212760332075036372881445352755979045521306320835448436459767892355475313021211319678450045504134847183915190850653161523871451906038748163388681698545729991854098413805079856738241634434935899468111179153521043022378358981988454310011700515577913661971161765859492484420657714276669611880932844772974400002071418767707764455072712806838211705301835190798195077905666815242332649598016554053828507670545494408844778547359193739307276244195696545796343470666365492272547733273823932902864440855211907211561621056589373696312446780639267088720784777260600759709167950726192161761682809349838118994465983966353320286466981957739952566355324888330144166633559106356353656552638047250216823810329766448116145254459297041630000269979470733273775841865218041422269963279453810301983072794686885559791904308584152157188654479519334063300606308098570438947059094069281707316963906423410665126823881890266803446357795579883900877066754947119311396395266028244236141572853878727027745763459696084959886737114544835543814551462275706054253362554663906722399970816515638110097921603365256818431668626494628234853612444421795085024721933545441751607976318051820839734173221883877170134538633386956663843174882543776762730509083259404653973943213217961918158103221344872713850118344714192284045495849793677503325843128507539258348797591760687084078056944865102866047267583724781621952310682319138979297384698021580556086135769649804428268111505039563327080678879339861113897446727224058474994416765463830635352081856240977822807598314745850822210906720768162249940157411363013364003206232776958518339557656765916829650082462499773327686862004927160451767553461055358827313007690723999406667459655947895074287479406836560413346622205935509590677229448813484483852114518937347528165731563113154843580651510445553693666151794434067609653002669772608924733321122531639998997617776389355058435556155979823088933729448804035826213801283219826300908295086175557223384852957475288703386204145273143439225554019229361338217951700673810871203019787454174663635083017835617495077295403206311655726754838576382647710436393073191128157203100823497022233834293983674859214584567688378590803880973560759065510411330144479169678902243615498363205246580381723954089624650332899422778510116874113465534684471142290554431336268657630914787682118334308806446410251016034629707501922145815234909436387242181780163900111067266405190738850782258385326341816786317178974568486853861238344305097796211382216724739749605095061994438860703537122930590046566627283741648756480933239803225862382786446909833168369834635430431983361766035424416404368283895481316625776738773156353900314777929227064743320238726731879381428571885456656019699553261464561197276403121418891437198638626400985624084718255406711730458497307983932014281091610403387235112821334639328639216500433582473198443163693152755860088623448898625569393622606746781309424171768506975720080564707714648866241772916343424232260185311153151656170260661601904015401277263578531048010831964034885961695398704360362605403618370810108831962383012096928071843601331255056377546414120072450821409132426169231689441307560510836441696541112837405161157736546592328830302944565330118499245405178856833355503187050202175223304437017111647720230153144544783918142344680213858264446760403812910067895572651486258756789400543791478681218788297292789702573739294581337115830015047130775337223257427218483821188601744104771129572748252138858846521132084057118274869488934627586823231031603077552907586056957235209692030691306947249822954069477216000233850448961586903321892453436589162482412146257891207581908509673466554273129037402043471942836721394920020177904854309364119448988976760845343048384649192830156793258329780156126035904829752487989660640797976565355022284150759864059318275557613215532747373556233617253623703488130017826855585742483316184693107557568338382666720875464636300599382191855872805105215933351938716640405434788429676149124426599148499809193252462541728924661699411481662198282979057748075555342137016539105635766862633855153040798309542766112872013676086725644422448630479758632693480409659261737005306676482343588628348135378127244282737157705912843568219787872941952589121751717717935532964054276995010995883406189794424528317457181213167080801791165004196393267283854384900133982523635755058195354045166708258668147837328149174681898081822483647239166386391501329779196049761307468846884156126531347692358138158708867617266714419489982756984007029652067724894882222520378334610769525750734070659970489112742663287010698852046971574355013459925016371795567950562448986868931747633220655106505547616273881996523647934407048657058696694060088689693057648617629177864286463069236404278824734595712333482209518228618411377111721881937525699207591379902054440874544572707367891335837075677731830881776695345714841681540959346548883788825841486770237322810489039221985312853860625356378090756783651175961789909191462899587616916682624134120490953658964492292880215501437930953908685044740893443310081075106574590860943381060653093167250552327097264722579939381509197721054323593009824405008864745331533065564947148547384881169723270594088687797459099393834694946659313001723869736975098786652802431425865967439693322797239488454778478491591562312007649578506558150228302800962062135708469864479207676771101186354244025855883128414820122292558468269057345937000086336148564602128533320223832962746109401581414673070874744775452339625444433166437975140512761106217397931567461659383596253287732172852179215625614896826019994650271983203311881379868709074702494386345061536620186255895555125548949508828915793685686929403260464174827743825480082036743597839692037631617002100134342288997799332320104862992013035961886962715411960418495062764494315945387036649926183492131194754901940816858708908290408125452893273138538307914412731155684474758136836754923483421483250429098947426453317536093478816708902588555561150924687770896992999912325733136575200920493352356786793377856921992010148206249169929452116272796081611376146657958632137703200744814401279425192841510022883254071523772574018812617955056488153943527107088150306404948032278745255657630617470540446748737583164683084207185226892180570452531748408638535781266427055038819673434447074768168174017444101812353203552505297309925891143376111130224035600399487516793843403447558901293247437931553491231528703759548401251970343654912315120220048693722738864455172092402613106296757847485725935597558568623138357057733283384901053034217405402322095204459681633294756382693624717138978149403293318456483326924609474840460674984178465200065150690020725052193306247530964241852994911735528212770065507658477945730719597640804759028221767759413586484169181926833523695473298756262738603163991943417247450800169357255526465553252135924048472486809946425124405013423068403600168267514967219064620356388517401716431773392816802912027541887692345211080340335243622649821386357232743071030895450939658668362421930598322535754134151743467016579411399184826860191384315845969534474298148175984429992710592072827300224891123604447124338519034162227835920672744831144165644283382832163300440930134180785475132225932904761529662636173804241809228609062871861379528798778269840686538795874651775339794532097900345118129330357600769495266721929928069848380479094374336712528664209660842102915796638101939719510352555994434371890043360854152284158177453174163226590301374664907791753526935538272257637218945985557630873281853432217509243464266456857567058390613821650244487237616922793957720928496073899051316690763996478059819839017225559153080849976516743035494503879511355134584332088185155190680834416859580161885135296255838009263639379220066688967453313454228832995452726321050482329053476751043463842481952078271037373849112402901002656864905210198812027726866082249266108174252657362795564364848778438182789384168795961255892068976962090474673727140040877122025650828873343805982044269808761297464362014010378642186047629110825653284385080572164588678167569618669302409794545164796439560371511090481446618359032786683292949515816545453248830308296893802041595220012144575282997725501346521984264100885598860889198614956634844073999526698239016374881311171606973271005129489555460443255779263531041045152387294736948814248320863418468031818434434704596388944279685311759623339965017499315652718371019159332951669514787211983139081334323161883670903088192154468389444044266321627603573300628551839693339503922883841709397071699400866613965386184434958386240915988667364227911040097014512540883917975582022442235354824944784069195001961159271134593427248067980264076157619073226646720337400295450765276956795530938916733890579236102966456641865137924523919747074300094005573403222661803599229244955254435578055131290238149346649026320130494531303422587623802321682533135701720637976340626635475088484963392265620897239988322106047736091742157432881459277331041098414146622171124917290496884576835508393282772184946880607971541602568623179379782664435961029887772014459855355823016649264790019795894507658548094651713027491781279428761957477527001649300753051264536836653324200308242315848342694994935583498129176586314443820736103932002387081257614253096526962020157339967576679625612419210807141243765108680055807638695204715855090370493923396005156456889054472831453541519144527638759103252969688306884502975793024939402564254771735965152052505270409562933827685122781954349766313854023796028116758594736540552334166134683731263272981364177472128849596240935739997534322613090437815137020012584467289641345346857936155061736969296029782365687159458320249753021457592394505537364598184265075775272070928256047852322455592715199582746072887478370953566633275231081019947133906414290911736969436925907991497034842251598557013548881550629807642885141375058698984305562134384655521420453736658204148745897741521046228941478646794066579936023366502001205002378512577955090365328603850476542992223850447371832902336109149126726546515365868640842734247117168972172847733802737668151755126898308154090081426019370700955424034033188591810014854318107658197251913727115014456457048950853780509303522628045284697328404483826224519963944369742199739412664371621014729279254342185092391683860731563371893191810974073442209853011753231777863455951250665932308454423729277562649996917606432905646970696058112426971647665668922100576757621431568871728330491667231087586717792054736400669361916965212680724294931343979180303345483077519543889242300940937680785516472415562823075294871836458721218562680125968760681107880149296159734220594875806273289768001004185585757872308193038946529108824944205221902842310451750400416345767303453505423569095059914746216901652192147545053527083002239063876332406253879096485206766250620083259945533098626307970215557230632185633757075735076428450864644688528081134546744913781699805201384922577830375527961297392283111556038424562963969096027523171145633693952592795660959743557922909979223883786642365231485809541405314854322388563160981422656110029449143230214341776203196075294659925669446335066726109851110615218024875259659463895766111580827936734012934500923890165529048429792823388654652840912147549979264337205471696312564707003535168338587440777323343917851572832904745682181929465070230254669239263363462774588763660901228774828821761973320881176846889539777910381842371151783533227329123963659679627613982557201863178858044985910958950149272103516313387195033984930147959016689823810997940106025069577944302894545358457550858544659975310557313647422170041144733850156171655593389814377447206581105863822231747614900012389424391487791433583839977065996987526414172698012764288334981640753483459632365497035713224349118903459594142295723431161009742034895747903177697684986583373929727016287028791584880437890604713154717799520864242513470169999819200144500873712811440711865348718421217333908949693590334433273232372820859509522792603457063416998764783559722424271518012512233840667538092158042951419690392214866203013538951389699455327491717305841467626418074684029627864217106380370942844377005049732005742210045328477377137350238369630229773460320310621536512789085147901037536159588064022119081544828345800285260643809502469027886689687772216393050305205538235116815729720318437115194678386270155547768294425551295394815482286958647101830659807249320137732104693329801623421161210869913334733557892808283229119328700416907264074011507605677111034653367285720412144781057951628294179717137643993555663812104806904964197749178612978047957730499612108116930445547080349982666646679272543063864696277337858447112551722360417510983893616099468578319402943139619136158193400301270147451684035706883527766402159106682244698008434020145163932304040555189182996228079351133544362917786240319457227889224390921313247447169416914729709023434844203315835851420781234352086453077388574877190252904794010386430017639091500603173785702604063917032125898818956586662954817273789268361045952621758473110835418936313535434311211476981620138616279815756532497832077691123293107025324924479336774723212933878737773062742827322922736029864163965914600839186945497320676636531461896562556603302754302146195206538020665486018138942459607718248118304712851859565797360383006464015196148698944474285436499341966678980366605968806021895361249203646060001748612082736432315160014033721763357342972871501893015161342471772685165649346663660772176526598696152305377044483312841048543644366664928641408737281398236609940972725257348417260706390755995617792367362467755198455053564337900314249912773167904757547765970042304065891885915273403684213999274575680485877918744517617341917074634509437117750915056316310984965778517391148341418217189738365055775287443357509735743628445983457461948671470909159349747866239370205752269946588766426645001187083701387014424292399689739141402822059369636700921110224269677567103159046161024407668703916101039600815308461419890729799346995399496797422746326075711696972388295841270715015779397296007885824433354014455310659796492894996462363227779554768930874374033689678590366580202999299635772130028612114056364928140110448270077937452599704093128718486496484595661519792753869208648015913833618187072407698248529877366306681806813384278714885450169231348423361324868928308729576194287597293325652591594802706768599014667316034372681873260057887447795880693448898318514130642606176943534220372810496899116610416932589838868020373286515463283314959545426501731244690419789861721190869873564481507251483033605950196517701626995893227777977351676477675780695646887703485818996653869200714484654326681397629243224338049385437902373934611530560183459200154748696634472598561222635507911119312474200132890152249246216396349817634798956790080367346236193944006874118290250404406091880581030379679236135411663901322882835361780333886954537504417370743849253976991788971286538934089333275207164920884564051285767004337262781762847650546083788695616618304715770131552844482626781221495724917161979603536707031682932000449250316623075667389759404228902153948559129298527556095093100038675335203449163670834425284384098317264229413279077487340484652881988250985090985269821401994667653050437459402544601102382702224699063744632902008874553037356666555728768254561977296698288144958529642198601857675383471732722453761312251672288835293131812621723659402593979059038043475934789842130711081497883886146385051775941530917321454823030904940473817628342188247700328860840027688439837595733092310640058817927303980837289834199623886472294386593658985185459040883255070479691327965635559209973775360514150850363871826421066530318401971208107854192955344916873406992542632304651122129193577825576847171336594314025613458471945185065280968406746627313737078235038855776122593591972783411257227354287527321134763615630861837142297593092180893444608461348393636800814823344035140653410601079734927379562348892660890207614101815421275490331460003864969828339293762790081487504833225023785626119932360689574834890927161278204750000754939821372359209840468672538781439123690948116405933816204039029522136897711799246771919759429955557373434936095517030219104982366757634539352167363278442810159009927837043344740512472678614965560124412373935068868446190451987324469220880653422588523311623306795332909034645360888848393149771188204717506632941332843294241113091718046982321110397763959378586206924443876469940560866429904907248453278253463979752737014866655211560028107444698923364599423474111556841473903628154422084650439187214765427562874353377050027634543396338589807667816863537117322598187257288795221703650043913230591227717259715452965381951173186763999272133827026378790559629309211463789572946329403713693191542662726102014907087438302352860458404631460529949301981843666213351660467855059041905766173990730816037242117156752385223211124696305829990650904553188270661852983253373098736836650574978594993477057905312473050614131734429867172733999743293189814627507136798158908980309733543031058362926133331892236798947102196578053035464764604633740987041984364929349096744803625792848876877744739745992770490358863146754350610260084323630137867775936683173425106389625527186047140675395930731336743903931934102970731221082133912814834966815200494727776145011910900663060940891504981449315958470528036573836070208017790235254234250191318159150141340106761501137131700449650174645198175704875753853284220245402287374132737080717324320361387247767826499472456481529441981212960001806599677121088433372202186928706672806039172465161512291317150138657179612693822739741512470248761841608200027499226179113854183923930237439923584586308433492262156327325753554010186824451149610587576109740122835668106731827433627779350942581049775835788683377543811335417663292263828994931118739860917534727117182713458756182275061972127478958760755121408337110944062059677659609902060619481525922191254101768238134383116639313463649960813108691777834313121037850801346103188212580965516864176375207215544698154616615900499585305289746175876672170408504411692948099074401570391700130319520200023148304940242104491990341737508941408964697294038523598695775730473221369839336343167390347562285792276880431027721679301759364174053885175321122340440463845877071162494216866109729614402368698720441831209526736286729683819245709321903932021989144530855485203617534200766438476967699727783950682271045623222594911687672546695172959974427706489676656554791012039958940192820362422622549846694967370931078048228961841357894339196024125061694860506288820882466507112751886676069434347906545360339206375410970230596702619407933467863647949805552442248768997607942930370394512997549710988995740101914496346589776630525601418500859473397382764960882377148764207752678473805942807316857231327158267847915641230297011800502418465950436465217787079513885054026641503755130334621352720119660479333391752716203771248255246194820505845440440034625440306077110361148997526040634793302165688196547331144090182226088385175458650071101312595675051319036033962960802908896881637831587317780387923147317954446546632092145200435779679771904180209550980003005066413759733413777519348461702309728535466855950116044713261772038081327534750757786561415544118680487595378098483080130898292600333992150253487644936013375800712352428600727087658269789525801085504427664944430187358429073663440940506394741737529686915586083804754795215795715614075096692066004049738568997951835048235483493028131598114495074312618536542544480755360029735839895166627227251657896211781381259559687556104006571207869940097412552764271428970842641541731670345574823247855546273744002074836386269313447947437415120922146082366691538036670860231643943734915627232799340256634740291874455771520517196602648114521327699178411860309750797174606850867636703768078753474544835042179701017696906556062920120708945819298254757787413552187429511258970696244025335962318793762688682615774891814639143898834051081036755599410551698317404046481046002310573725327256762484997897495111242691984333858046459257721844028242836060385654330137368615066876322329333774655588598257909821468671231717163816937396106420422936394517555863765572096009340289521840996268722706481775379496039923220052346732034604044776921784812292904333196987404514144791189716916869384820490739911052820789067356797270332627778293686483779342916073678216035143220441562573148706805836966829998153670570886656916114602520577237825989722718946046517644252367070521889948185384200168119573122911128669980236354569301175370573940075929498447473740102243908245993001458942467158229612291679648165380121902514247997577170314355615971151636396899420921899733432982131921515881067825810029403548428514695822182651210412840404371542946119414386860169732943050646968494629481043792492575468086182399848795251961635952269027227879546780578220144027762546457239366488843836065725793465386717511094723892271467325835869457168085377748128185996810356245917188057259308375445258669127740834300688231072666875794171748624978645661755101333854949057972675774485267504825445732505587787172467547869508742926214698303255431783060305312277306395324064584515853089057827529805863260182005821742389824762499415899515890123939338469226747282756561841941105120613331602756473117600190464133397119372579702887760069728073876774543871873292186712189250049141926644936757775626946319289617905448814549502510906908659552495203760007691188384586421609614357875401658514481224452183321962408912403116068912619500098201864710241161901984898624740841931210537621589118074878652731737264716850071674673856902851285168534019324139489988498618312020382710871261390632486629979425159698289506447266938917207163869264649546053198312893461252663578706138560223263242442327208795538569096517958242921242280450361038620705675944080139772227890105666813123874272357622663787970665013738913152422367896960511974037695291164949147080917103342634486407313238327727947434872523791309400464992542877500220672234712594324554421840129551655924612577559504868808880032717573393435434562509852954774375288973619745759519479527017198603588718832011235466749328107083150163547388597471017394915347830158828581780997033151322281952795759759931201050871179294221725445469101176210793420478905808228037798790518260115504319931210194406959452389010820283355998175339667338457009279198954674838219817517014628053932858422427045780405976010456206024305724718459631388717513174085343791375671933877463823526479954282702870732375541682564667596786800493728746815361415043629451843414983723502006620753871603933399047375630654837733097819629273902894591408491441904339404899099779846612253140780493602380084522264014268154537797540198767833169745797631452816549066784129601168848369472677617236044487558314103174094965893339957974719533734668637547802941012154407022719946716476594986510064253589290318075857805689298901268134862697714600997143856436105605758722884368733568137802704022337051917724597860246122979701351225293341835998426100736137456540866555365691634472059049195090980379837654765208280316810429075294274717449444089416042669015876857331560770958275883024877218309088013003425768751969085984981475679660889058457352417413363358834961308182894356130875739078929235740668682653999792620083913765350493023666391873009715497692707033464631113854075380220269049272342822479914854864394471720346473671239698036808879842575592142390466242954727867881038811717361279529822196621231516135585677129587504410903516323182360518180983317189709648178469258286309406220409505303812402337301275894371698228433701704249502122314523657781122240692282737358852221352306469558392834331551964256746051523989979440120570636560195508566742540344492471768237576424606313157946563596983676368453193251856908822914660171836884546995153050242792683370514267400140140711519589814704823803103442260799793975879466690907780012286512664903737304878454560637524434272791424065908672691083699982914256718992975707138520923644751671405874941305587889162803496192833699163466685500093825008964303393295812526642673568477373975074344719161562697963389440046829585100054892692418289765872179205217054652668255360396788427018037004345993973399792759580989053653166373170545159595176584336489708721636206119667126956636058915456607459070514836999428759100869152747199678113207021114688406190241995824708732284897939512341188198496561666046102513117692255282773207125939487240201384358893588277240400842408960285784563354142154459794290309830514810302942809412413655660283148001509674381581119949653529092360573901098016181036367758841890124987368853006814076852411454866938846264696804255300771681490222634129169649489043876517963846950839080681735224999493187564567585853952356156448831061348675697807441178014129113732785849897664684025866180668757280287081424615359295403772501858094154258522875433677470771294970389154056885497231634006924687241856998629097974895982329856459763168548613177412314873554706251779978824895804934289373994445394848470861401995821759578195821979431657053442350443523424041898757605489769815506514428813135766848856907311145258573056429173252065550876769454025273831494283293350694108264566360354789888912463883023001059692859577690538988941551892535908247734007972407277845870562446857433630294445628510463676684802491052078794267464184224701727429743561238265123151118825789189939269831864138016559612956189962900733921240827282490783181763973867491536361384360094048309283890181929800579270226681398526051016628095615723562789473303505388571375298131701977013190744023261618869050735243868726407631310756129783200976785506252104286447278031226171745104866118040918836305494869931079690225102652549842941643265704399789895327801400301751595817665080501302029603057484710871558339152351771224848509319684622516468009206222339853012446666142670010619924016344023476857969105161666994894864602451401000351308806352927960372462741941482736542795893651176556134193423944041167998385886473255436243250136224978623184688878456014563162512864033701492249276954287434670445918156654273443168373475670284648593360869266509958588921335672445775983447487602026756696709974064299486144258697065170848605684195585791966794764158266786630551824369985890873240411382194331943465597261624584955078012141167731765585747027266348290924166342898813304325356352593036500575063046777762756259028068150409889651477604284796706957037043706059657566508829388342456029221918884056465609971637999197751611920723427127839953076020934986276809647950622471327208868154582310149669459825133938773950479779193687839428335067648904026294286114783091958949927435307222816294129686356952290854321484329110168949730839381549354895047253389219894417608938940666865726837318558424377367000345217817568597187250294484208098843746162790288799207898479155567353798969304894136721637815884030949060655121515931154597241365817013662174567381747032251720397772970043091317173002502939487786919685627559203856957977006556252210085472163834598211783213937286332810211153834776027011791875256512981429282786790978213871376287118833929860850794272097058627725897882606222897831750973032334997892956056349823692878281150539999010106689931441325942730915274445330563436049386701638268565757327466204844153071705261345181525882800424860196634685296134783152665815505439071680195154556761434151773045279321575155741580850244638586113884233918192159156207341709240641564357185225669190603126224802605089082534078686288864212494988836254424316061363761747322745633945487973167769362357806663190658799493511364208843217151821119448670027202325388961841862452809720050471120068702743420916041183939896244485150674417287325307862959297719080633753693720013691284576592530358505468687194570366797703985336555814834431100960518780312453472397608015124876252299941821126569919996386022595731915511056490523377809047829428667104228132086702987967548718155674796924984479920745690853586149781295527383009741224557360451044927016266929587214412203918765148569714871911363936292623709881369302573293779493524666151863190973054545531115622451854468551774760945652534180596808778535896895052524361605478184342929059187832464907144382340060323643997610400829453564896188202896414767226041759085317286735676261159088093679403930198716910819911217619881044293254791009049826943275577000188844672388661342922262774171780902830682118934911722896556723146700217210538918947447057360693000149266494589483414030239539277297147982501918993721666116267528344366956922073962377114627026362571342269196072085568495725323741988158069855150624667531229495469288875676259972178741744418092648299783243243500244238309369812926164542658799862633923038093684208723758536550066652502569179561575806709461440873166155533823041160908494799337231558928549983938199441947417801348057763492832513870226861369826596176583923307273447476650928343564884706694370020668628064892811299647597957599050240632651152056250704434018526271290781803181284555426325224148452910619989401040465118957903556943558979731749226603529116829522501416138417463459116466817501400441980692359431744443247600455913747505704580489491381889010102313230595561905811214511489794629051551380679106906315231963950310184782355266294946707040009470552699593564063736540419605627033386325029783812570276357758136496190146462762587093705446469343409287797301982955045236783204201538886313783480719129457368740452519543270007592383558396470160020049764913347414458176120403382401568216064480992638957506968946373731476462061238211954162883704445016826936328204605590467834347633669413183461938679616803052778083947315652540398103733605149705284640820666384047949330603045428058588019607454066862072513891657597627521539496203522744977430306524875729093644324374494393821869469864091067433637526228874600424244569360398886026790557716324420230341488220804303337832746496415781101748518207036634442637914621786000280653077722272345293529269739691645744859558863807008333047131025014307117356493658671285707138968268736345122992892815396597225963574726991847636049959131630137144169957804464089922126317094545902274561907354250261949421001005143637250173335993514737753782690001475416651604222356368558822928360351044767707146803999745983844411370307709571782229442891062035819027239922571755590475788912430950309124598077570182882985732496747633762403969766332819360376946148462729784206019267633293619094211196180752354365614257421276630725183811386829167241200779939375967670680896718638845718372413792074064806192776668129075972653521267798809122994493657106943678880427264747941170609893456399506499934626903198144870383201603023436772213096546659134054086119011901227972131994986580665967048293121849115275946651637169376335488321521949830087367741648962178799120678270064344201515257794534266551940006537422367809475882039983082711017248036378224229466538664397323644900150224328338641000228524953133606791487724373348462429349041891766422532055586937054357196216592806988612808017894905427414615285765194271902945491343441215705768771641883961434697116474653455103978320327555964606749986199803638237545124534854879915708148763792568461935630124035515483884690416548535590357915143911597888325780182177105648206586136359179285642072416590093171385770878102261455956188732177475985568098390928501100492896035016693776570252251001755473955932305023173427072180688303323467005433638828353820648003250910247082695379892020340360732424213249819400892545965384299140301953254378752196593445117106477073131153768502692382023000486004260980687347567005545409753897734640361294485163652665221711155271803229023397210322154739097560011132394252542699615599953812490670442419217523632586702173099061785311955167397598405489531698219811343529608326373558603343941443189512410234524477970253391857440975464934822403440796316511217741335792017378192507481312622948947625698246137107584105158378949811098286225671032432333949255199875148380285517675693523636687044289013126419438840809889809666591197259692751718169155568939140363713077038265181520372192297971296565522479467339002248980415272971441987681272059117216260248138079606072527522727818314595055990087028948762975958101611053831565523980772842079921212791853052775611597802782419432983547600325506292772072518288977583665446837576169319182272314300695021294090077581316687325019328887598171524079666043135707577655919476835179697806178651774527119781183307931499221327470459153558602270770502742438547564784283839489679662368208160029047926611182598929145803276434155792065447001067824514601308308378190537812611659370062441165425766462748467379092362699864096286887627362032064502124040610876440939756606920229250904305477671581306935405057360762854258861184937280706505053895006557319193237649998382013409312550456283558646992164107507183901483248919506314958044603041357273470270834216634950597369481438286332942591557198508997515979756059074201061327717166802701957021256634043821900340155412995700141137349251559011298913148283698988839471853433916664296010780347223383505539596343776203311916790939124961913155782476453643219243640328021293707031253867545535103410059201465765341568443026341015553717596164997353296327969497977463871019633782719543662235718893245747750081929773434108365042661743302528466443145707073651207227461013403882241396760690559617046991779012787754896501096891535839227444036378929023473579613919213099955071349752935112974246884158842430135429445441123163801212897370295612968687594373249398598151600976575720765612367530291850185903644919131938523873218120800214741429065402995974896807040201765935772636343641766863936852187193442310152474070873238007435626722677210018767621587815259058541695473216189297163963358561290517899195131055182810916634155349933835733719426866603170643029125732460951882606894288944674462143077848691586207553098368108127812523207887690841355155075146522836743586884999422217464997194297072012960437418766393663813386779085248690831498918607039612038911843611292448454816546287223709149546928979763437836292395804269384568168826652189899250970529161555092406936434764571969018743972700292539310872554470445833564841132154492286428834673319267618408761979249907571398242950741512308756455456457701128147020584905037799883166534127556224196380382864114171208928099600433810985808860539930559880624625783060779702800539693834761179458600587112496728937095341058288651023695175092219013565710241681198392648752424927132616014358618030730312498603939136429947296395267744887377496374026673075362832527406565636425709894550974728206974208305241463934652720412923771552318685777734369776575097716390064172858782315530680745601744425339189706429637208255210163594316041076097719288328324896923086528020950150653756720167937774052176520259536378640734203643487434303305219664403420627228338634450954986883319331997553253712132274176599777148201997730524207077656569927740585899564228899505227689644997768287038820670474621931868314238852317157837038697972888286906443775350211490498777576809890885080312079857748218152423446755999330335928603136267013862217300463007887920128116032377749130428875178139101795896155889628748374228675960965671667024946787013145013811170890121569813187064418273754383783542434098901975720593961491820587347674236857800413299351396926203384471576111119863763853693976274567777700947565021772037772383717894258134208639650382075528860488211404433338192617827881619930171658976966202942657226548880805445934268286076871805247189773050763881091709529524916842193669696234756096894193119125925246860432965775634592548961279510611931877437487908020828127265911055148686707484996527077545272121999070867246739668872122859464476267187876453960075423041766934562419556332316149768726559689381814716253476303572846067922905144914053689468798441267939691888106093222684159460032859106007822242204693081375956092646626273926390119214882501090758616287615473314526746060029973076597799901415769436707613348471654744038489477405829274941196117854498621156953656867393295969868971868933711788300593280918812520806801986518318562597398424385634423411097653795279464550969898154964639621228199878559429083694662501037543344932904080113676484836968677668869872701338620808853249374524782732513094271296098883581341860955308310400764542794417805975214780401024862911007385017818441752101546023686410172950735188309940789724666302184235692478342093724205022371872628238042482808861653223408690065368869102878557036112485201663527238306282829530892352154865291322863214491825139847318740007485228306736459274525676973529189153779734692802428894543140632171840039255197464295890349710407199791045628571505286243016858688617387335632861342899498435174494302978037598233381430883616471993442580826704475663683651241371398954092475006546825936339577467967707301048368936338132559981669019921003585643486251140145052926850454757093998959894005708843854687199054216236048025780247488717476900722176621026356646772303502338232568985777879202291964791489059087853422089736618336347879826909375871733101941782866031546658409340860127026524246636512683074745627121057699089592945591353184238219966876563776837381850773802390960724320176525576985160548075709866081015433465185000961308259212696528073345745536604232774393991442019788924269780004893127852317684188107598900778535898875262788027434338679366656390900544446533847614688618092399404493491512848311869096625625716125222855877707574825053349999365747570613588203835543245144624738864497538700530475067183232868311900602055571268623402769680680630537907151482030788973377880500921264542792373309547644035659650353027658772827439530851849484868271034074183602447696590804054630575153927915294561987334703992873637810107735939173430748925217243906354591932839167135044798753840865818682200602697428447654584916289200241007138997625932584149099353807397386180949515356139769476132937054358567436165671723305742581223835869242390070089801711141149395607326543615469471542715594683610958050653569076633855316697816526608510169993480573608723674792948508417240518083388724958028743167668307097181753665174055626588416851036874765242042259603071505378407702393400523851741172455769215084254164613952872384248556177740997620929301369387705247582756681640091927711318221410609891409736114127933634817778818959503356449910484826227331110713637133497052633173322191753835809780090538517290085486618195699596317804538893191319107871091803402412142587624607978902423503525859715332731241718859069215075011756080749153363255465590586518039158857228795269206658590941765239671072992212596288252266176967777171906869226953692467732636977787769008286712951854543992061129244633949402704355614575198678863303552023706862350189341570786141635372207235260664563503905295459541723488431896098746218143503806548424215149106635878783831359718122388605901532431613714244589339925011539940618841564140951549301730544133413599142971129414594364223215902964543389410697579315220255780763298414842217113388352725144876838894808204518394003674673753693806390089345770987201858572648037447398200982685694696313773477185838285194413527878565923706823127449960135300630211698049251313526346401817728860476501022387512016204751388919071745244428901548305387465183718648381469083300466290782031826210692180343741710965636515002382246418544764246195211842378028895000180916164651106013445036047206164563461072231480940520934519897037305229342700412228383938708707350038057441914872409377649865518914919320287782229615630339523781397607530097576597030200998347345153060116043885669285710796065580389431039210588934062269735608155880870834898798157012580343308503340665358175450118700773698337981937369173995754382747997463584880144052106551619953478317037097221912522489804758655337946565076054853082005149399024088790250725795572503682926150671468600752677600393540648989942020503498747010377183561755926767054451476240204089897846521651951615034448179472070651364285451034059525868252008407753848235458960389873470986347337465790637460437771343588902516369895145767079501325449296239612045150941000109851833948935366724590231971312073816128645188284787315480045007274717986480341371249800751533502491323034110729492270246564329518709569714751113922137132940354311157136720870978606350948808509786696571726387641735142221379439170482115093046756421653749006892462883455343064196070535248916421340420731730678447368679910856018889535747865623617400786171257633452860030246107624977219063955012531614813089721171904753955603817095394919373566518766118963915110631795289651710866220560947305226117198597749911489775003151474411516140171438986342379714254001148778124646802583895772958720711207952955465973496848842872493083641585679646455299862518704390960021571521360571072968652565976949180514504404422934010188199236562658579770034836522032150205181330638924538507488102726544493970914669817918998757259463587172607851383912603621281974519104999931031193498339975768403438808905677938822362575454308226804762981985115926951669902372899923453176282881423041120457493639338101090599843056891253390839924699495834054282766456198555439999612653472340368779650534058831485248903817672137005675672504651207066409106173076630767165443587541945575036974511057440259605443524739430306780890513023299064038482362793832492404752323769548501037848452010178584807329064847916062808923753487054268092371902878153433518314572025806596008001290106996202459078763990915830759839447610759356536484346479278936207522354500376962232743504722169232011590521650141354154063329673338815543357382649348641280777624038428540014788989982657372484208802251751337910334570002269247197636637608923246413074389057280919140654487828315740078832761099695678424610371520384751374012018810910876936323939854269447505050559540514943579784337625785751458742277124302486847991191631676594950966151292453287975004507334538457598195814912073338199784068232699315635003815142269157882277396090017762689093218896022404198419514554803289962924493503569531346316436227278986956358542038271061967168707561560470036284442893284231649864951013747927167626808022850875231941708843877408135566210691053530248147594895206788751601811643321278707658648992416292926212505695500210973003331478542831162927799966143332084389041512847478206559463147545121907249046804617334605415624030596204533746099798298311568282009244556244177784766090549791654767890058058982101891901762344730716908884662076333854283623855264913307802252129581035013294283919896388506523810272911606032008853133815073472365221962502916650385751590984610800069231907531566476121378080165901807759324057344730986837198729265045604461664016161523387143221999483864042262226077925391481322653000044338779255766667140722936945215228895139735306409569937740764633069928897991080705096875193875197412991374031289755118710506677408902598194617003381504559782381042294410500296019009095722819039819263876455729059450885221968089142511599298456754220772696784548087848716189940735671184253748882648790248123030539993049506703911929667961503926324918519203162940170879610228182894924949132840717073612598513654570823898497981663768297257461256392552717344296334720339821872746830595245698819541753781306725210243994286182175352239040677873248724664531084199495144493685071450717739313621843836697843335652765811228725360489547460233236972264151980521407725148598407860116864134820293413647816297905182697876878329947154912380353039265568150062962287254463094474655110856351883385820762298522857001088925553012256047264756363513360816769799412264224846424240225910201898247595764217813671834840669516694064910960775009058256205941569610857001636976256924597532883449573283222198891460491451859152241954794350985832183893802514706064498498838030426489847360220985713665486523747130765739932854259891473673013855936019658176272868088281732941812688863750406094373471253079768548817981536607271077896687657460302965299021537406988326972904370514163027045994171253740970398937650813865672898131378661645718052583788263182397983829602094314079179596585071275664255011456095154286687157317721574864349721414990494987700652988099251567963985047255408010451075708241639086926444396303603148521067332114982097066595161802564051139603325993791934478200859222250487829992588005217157514447096635376658816789008442832754495695634215338012905951632534664190766748782690078987542895654938061913248165614799770136821144880427870580064756466245173009333222441948946035169785638259035208982379864594431169754224955392890602878880049517809309237722414777751232443082705152835312042648183709555497970692612418928998201382906711320969070483207882219415253300487437947782029464670570212269966985346194110833028168956480701460768768264972630207118475916779733109767713821277695917926430807193508428778862295406331588654253533662010191788722457157691868611386372258631335632789152569016691537493616550120189359328242413220142057842954591125430983231165363189528858626585881552989253744427692561880572300559313844775188002242951506272785922883942384049652939712460754794156474034911301251546804159861000052707591538153664865077841247444629822942059626266100034041601812083070112687169366455130565011670712953182260246026611694271148094223241258477304805637479639060455196760938608979650454344606510220102610701077602172185055205380568452860526980673566798708153144099807502115256113810870574543852016449149115019959607862359694802699141118665521808173860677047832714550076483524218607299794669844713686781567896151160454977286067002864269502432609069674045176221984769456562329006882982665366301506621574724418419453218719174209702752762691477361232409067785924619686687402990655361399696975458995272673059375034372643683237501706960208351951316823647893189203653405627192876094518310614495526015595998963622368537755139895262583045614573997635781334489169450771190217284063674071543010201751440645274801994083207900718711926099751130134859088852527308526627563095487612442916006804575380607177433234335325808054877821535710519619045406838107698936301606472521962497910375627950370512150119725039321834760446368227630679951649238150305561416185174780752684903796704112450531719501712630589944833539655163881348803943339866981134617444400147857416943733803354688681771390143847978454503126521363832137186946610903148742149750098452981423228413201666000201275238149042539061771524282707495630018287466574053290959708949109573969266819749307349316790007276713148431315944873752078917501351491388150541186805732229498924594972961659857863051753550075632788847122134626450303245912012510359109977635468004906381160077648174695521751202789873042028147608356489688374376715891124107310427255904577022479623131494412393025009392413900969432095586703297799791359947202375767209219205360628935773900597343638321462327088385935601507064117821577854505787291769539427502428773173785707817780566402222959089356575820557434312035687745284617019078225556365620006770321747978539875432868024444336425359512326113091976072667657493120902038611427147431653752389556153585415884939142704027123026550980440781161524463919673349427820606878522052070420468692222512578365065545950131151946276065215271782196702187005630701987776050538021661941153807860266723708493176845107772590612355275840007600552488911764104773708474390734516855684020272293381904379681677780348078045238776443817243408146469092762511065190567349209129817916077250956328777874836424673725492418451662981483300789087535299985702434251891185026898100007254322381649271656470057128328403423050469916672396008301156114917672779017250092526608078684834386467496509398421382895559986934063162111481458047984259224324175031382348345612594066135913852227096394374504585856183181840060473541489320459646739466643286448353590186014939293748381896154254278317651825076802459988805832990911106243499202314387070901050256447230966487322068410883487045975498480515454375211579035230905843099440079323292580137341636140246144227376260232333290904343098565655481003988909985213034972295546945017519479828091693426796181464436274035057137892720218243270192395038864331088099346889298921969905403212080899075328602057209142119517503739930917708906008246954417554452772482878535264911241036241316096495110349520524159236596674112885119495145274141126543786743506327506194150486788899398697557227954832895040078128372922896085912441963557559301876465703440226898995597504013410628200424961479835251699659771121609500457775714061851222387403859945498955136653596165310379253907119928017780677227399445672396931780788910649620770967933403380296044251379331653651950853007146104887091251939212539426782058617038913231990700684398966057154172992499662049677332662188542934227091459351053916085751141995515395505520885844512440621754106384908414516788527828179010160186974062568192611933413595048036374506587925507618007177458814541101271439972795065412684496971680577823343855702904423603331343182167523889744336292110959608533713176939003418625872126549032272136148174693665821942491874080582181649593908445299859522319457662222799764223450600449580441282295106351179241725814666746651081719763093678870667132274302048082262793909956231445525448711719801200110365016917894789740475767221558125101742551949263859939187218045070627897657683719024034524534179405852453581438695926638961314386126477208909589682660610556023828438585714997988940176565729785198273614433856993255859506321943768672054573301357496543831623924111031429840668857063014454053040010590874104276046670421762785155840082283479221625674374927090592285846687743748098057140561114952499343380501143392520630321450383820497379214413557985618436409402171757565896015776431194471508389139725591011206985279557362447841418560497293238622969614488018973295456270121776572745520145654490387931563420438133547264972338121832973370936490611313192989854873082209053443767142912162555643072176399404219259832705208012827910358594550942053125432528513984766492367466157141882998929626505455925900020923534898781502309949480083330742388388796738351997709587468100539322681110321603921570386596375399948316888407017634729216938955825865238419125929307589854855036683563113799714166800092569136669611876318377528050821571704992361004096883583419760326632483933278835397785471082537843206275981356067524294864907256165314047346793112698805861679065832843909945775049947490998253667477417569177652207373575862316376971454684963616920740037772926469160320748580953761050948147179562327792013165072715679475163001371455110139344127198867975288956989450530157972366182704924703563181068203765516207210103547532549549793329858374353812555639860112915496047288545895604684537569006420712157132104494733280781001856846231014474908533983446091626403678070564052889091910477913172419132375513269242053297937718273334720328659011964628943779270715826507933650943149468880305728510800430911580686331723564570469750586203369698271597781034101098964458778496199125158153941049911828419273154794713510737413879197895280403996107550432985673781159190489053435533866958388182823404099295610745136859060904447017207563251410248077970781528580037660165957115240685505361428959324529894414860215024891058666746216032269703151795817094855528197756274841097370691884226895020959729065348125841007530203471705250006958801282307306038231395114021435316516627133565467147474785757379455958331258448763480440983114403945717745748373276140351811157905113207843010929495214352751448618620616520646598591849831842335653995666963923157742037532899275803843390357977942849754551685425970733334102232726441215636711400456910593145085424378820781086233051153441408131682773080756958368878551656963934484688595368150785597412397675271214642065580535485064696206076261145910838549606504404831106647964507330790002007010918465064002096535614125471482551428952578584677710892405017935090327289097604523105388915004158312667029216933894307382409218453857673404414656737059598928339601707370539990833099648859401669922430675747231137044891456942453966431221658817427808714325858505052445365013083074017084373175466922660350489448966496382334231885543652912167845349685039325609487242229847145140526852619447091504398866562948447441004018226992538194123876394139914796804796272641986513285770698592518528991710274463500090292460674335386590074575914296230566423500800203111326307934775209519970138455320648754723615653939358177021089343708103303511537984414895907247907165975840686106073277588356278645651444109557092213206960509029239527863498604046973216432520203870323353848518752624260170214392066726808266329502635922704656373377577931317589757866248509119914575216077734573273684660321929910459406696229517911735278830754565850827498525282332977365788376201249926545177775476603160764079181288902188334321383112398227753636673214854153065505092314492401933163864780002925855258682342689600159378507069157933520670173892532404420658522165602298721461146661223091569084114777569309413412006570146201346585080231400146190752447309674086912180465867574670133746420912437485472366651006760942267634970928605401885462409459506220909083161108914076142783325600753634490000672542216789796440365802835677538644709117236032572021537904243457526656343048231183122607637208357359186233499518978762164488634063966977385240405759644997163295239326058389125636236030707132468140448809482775488768655797975652567204382713544508595341491167871559078168840513775893779054102807617364297487167712885762255418494412487567402658570807481215301659789710520317763722663010607138718424904588310262441041648485632533420595725186802237721095017255268189888772645782191756015667158958866032439607089860186030704273577020038385662114126409182697982468576853013346712325636277517451147685642462727860173894941304149576814548893212565717081560604688350928248166875338054020031512934704015819682842784300235579758512094275253935214392285230526937450861225011828592967516229319458986871590434422950486815946228770973285332425580778358641029165795516763357451935164514718024614671084913600530870181912893531901182676675727848288668861402627836418963716504951778487438648407055082224718631084500184899559499758842340750586674053502202291471851191722428794724976579335520822746617903042245796687650447379425707086737966157130032539549033476328132001478976410667991997343946951227200693136626899820047802202902437350008431168248189363509114280399914185652475957613133727815487320338856158338010786204020077085188515194956083766154147987817569294128706755731414706687866494741544909025161553988759107127224451248016027987573695671998961801517951448418947540447072083552052601476293339834102484780796452518943990891765975108001770821989571694342946554833186690072224330321621030085772254108532882504885277074940638362871236151076788515488580086449898892835585221369609757271609758540437782045242637042728402372561550835284081557584930846864298724230721524168564082063440688481346893197916000339939865443959855761488944439222033881451453946145399177667818284359436306849086330105627521376386691629395933119822162933527751145140273776423072939593793442276688720912894378530111418012814332497509998570746332231029862453054189529611591836987467697797071579382774230878371814081238786209296545537561207029876170405609525621655769581722546646973899639410260286167796654520074405322224237946235810288990071296059891920318179470095001909396291828590386773703081312348853014741273199740866569143543255606731955966327857359694164145598989610068900135596351414212195771770991208068871586081928977693060791343840563924908045449178323329848478809198168986292628021761333392242091590543812489193442721927691242165178378097317360450334635140604899826811508966774452498088771715351155935126474793338587402270313574622534338070313926022414431659164508529802538453206487068476173950881535921042685029557116060477519065698431040202181286562288466342180716416953094777336767804453416983637100070505915444927394006046856759569942124487210106602302152620305457453615391019387887794390254610920574051322056380309793717072354571649556813469416127975815677735256169007838384553816465487003682592213291702681998476692577167070126200129696203222573167829101081678828109189977768079421039448531642213402532635161641573998754175134728854519896581859043675620341398513138798126643830952716459598596266152683107403767299359323889677711599636822263378251817823127249289820921352367441159044102668953521911107876470307996196138419856446085707636377660531193570237075691669369527998317263582534836869052885892021146707635878643944860705264391217626329898630584180347527184122106349590293258746580905496186137405902294063847831327265378380638634453656110411561934653284394986026894978375039397425349196286676246056987477291404314224200741668907044633620831647879260571131156109812552924488605402930317244073724831264630501716910574993533344452129156281351646988922223452196031552258857283156611521453832246273262524025134740373318005736784302768225386025857240309193295133507789105922107881012460585030768248671988437532824669800013765624924302782055879290711373443260826071706893996524304357968366144980837937455224011617254817228504537474178187873243249528317357074070040942586420744222023316527548439905536507568810752789694745387033919122210266690400934812685179169392252828304611711954780342971418124537238937507938236778752596767299366383384490767166883285854833772493479703032288795730265826801134625561518442935465875048955482490955631694363944595100783365535738282261160490936678398360780576196227859039014068374268585911079379644108436722018818940548046991104084829323438283350724056913288737356185037773955802932721378455283148169780722548642790140341499728898428402265556851052205044630108989728009027341563856321044702317421616835691531918307707296288417681401141209470777425921262780397745719326041544332516891196264081674443462449310072139367612302467308835538039407711148569950220181250618434651092290315154168694928397438546508966158137349760127088427186234118506924387835550270464324845573301874169858194099742688157512966920509531102875136317158725362118159557014849943917896621785912071591478397067735675181060637621663523181046669980856398413303264821762461193304000788358559741426821891998987755839251768783903746535935816165427499732174679160783260637947786162221173019804230704124650007737142316698533429616715073449717309331461378765298071462864580850016107513006110657618101905345571261393486559316107310479749126817891428449958324286093051324906313838974467347731882573829823700336680809681874487073608263082902132762620713352497677709013849384966772013486951585682885072888783408966811062584424094354025917921551657651327241828335231831662422070674951298867437612344596082112837051391825010250399536982934554542373612654218998986860409214378269335654941132212815679464229213730151729336507555105087231944352533368172806693420636804663518700633851660840444337309090376695970740389299959116648003273946011213362998461866147733058391658013365443257793152746724333919695504946346583370185016214339575103676953369309812088277857833707454788522964825173883242115587236539470423379703058335650058124225043012993246004116263599785902414300142599617950796208236518163627345859670205435949431837127173824890469101725957277724079923149873688826948377691550850733748816355799543725067721300934639184960132645959931167417759511709344489921762992667820954088659881815573407762214982896124085151788405476224240951956176435334489269542274755581530400322744612817991932089666127398269649070478030908430547322475330341612668533725653088044716119922899406082297122913468920221133861093004086807271090995711931347752845312155879963368846814841942122634505735459885400545490864147337273110057304222972950495425122014691200461614677094563259601555445648043780105703979930884150694728829271797700377146536116624897647143138606975609001248875807179529946140148829519681423961199432616574587517105128373050904169949637365674734495614743076095783889701101019514253072021598216671651636259716481141315347084152595675352315622047781445981163201728296125303293617321343156330044845594881004881817280615336189664491836648454037681997263887037976573294013031458320229724943768526201138868005627741571238753503742874387394747650051849874989258213762234368920217733379919555202397677267576926457701551558454564502710117231825583962953190922141944840799808531159934405021882805778787281553838368903903000179563018002968499511000700224296660662992302664295085760755841563232845898498968387465199836976776364936962546761526582910153385942797694681455235574314244974585903722740363021185219031022822407831316761744624005061318634379492564774871137722154450265284153545240083749189956536102037395991734636749129255683076533275888232514493232632958625599261184321085704055163040629302342136629823738812136840602895930260875625591068141198006223581094177295604642071815421078103441511643373115789494966793193524472901151223121517241549970992468145597315407692054388568104799355331918986336402019186021604130946507461949564360768836324153747437590084047134774829148128402927224017850759890091565954624302506708547280233526070768434141155021996200962047584754234742089193937780328262040208895921354823689916451569091110122437631023514394798442611574834082639119598479996799250100172514309982420548229720803320141619242516921251208464785414236585618981726591428072550514413641073675734589290996406853352061811070327379008715409738273042705902713814795957650374229097010959723230649807064344391871270417812374314320172103196660457911395436150533630341435124125702377610181053186823072782990219349094087455260044764383702633913288201300655373030563378844891327141520931101327129222214172902659704619735375188215271508065711471791172730701741328882452256520553551859904428018555661495757014484855032820019139346913092895022099551392468445331012691817917056365817495628649254350275534387296571399697093349006242934133114648048986236791910926387888150846464378884880081360419496012165879805138209018347904226441423505567120956696711489150941896947985639859889853795004508788044254340818578921880185633120025555649994970713520992376506758946641611719228960437869432048390343522584839789661424276817243900022390695224898326957848982988194032880304467847621355304687203672928301896225751831646019075173077656561667970235960810218524405408223744162819938915744077747824579389965667120090791329570981585165993794715002223223808724145097126265112921491224105837662392014835595569504978261635085311535350139070376546039447627385266922024925562618873771773039061774736071103309079711979311463766587272537584008319709721640250640864545459757954110789424302292677964208607179656205147758718726098561089553442319839695069936634972058374485732806301498543792276422347705995923748765030645209483370985209642893444020348197749586959944314018741093682010199780082578773215066403144346756380824064566746446206768931469858575040290195056055512018440977217726552441290500803769406954793093396787157204695755874082565740582401307890691206246312271460971143894355300486849525796499177490513954986534370514349042988086666429566714656817159173754816224868904129633594645454231581037714428605862720383855463788045701835353186087266307929142408299052785388540856969075890838332724045998901545186866783348158737728554985811743826951597569165258183031612463848658859417629693268665968600353307596452052814888459026095430481385802893728135511626156843291854883040422471973134601288066778316808548807158482992669162292609171530803629362349233205736027197223500032766873669643252228309779753868651161723397847245963962820508196211146169524153392009458202446064760903038980690446821785050810330390479901716678388737022376415655218089349432718060587333558633463322975905745743231499155511317177382171084635492558858187156886611459291608514941007924942599996654578668060856799328273956772914284049432373012749505893552853687149106356568873225861313932084619009670253008723010624431782881219045964716344790091951013148465036224836058133626928414328370854483464338433625587584585378254092374703129971429624780653719252292532988570068799199997128769980689910217183969007201268161644894193707588613578129052919821049021315006783907959496427854269067659683079727362439567877319729092969001026405454227822614842123645280463420777189912484277538795311982376244498672446969623768665984750407410217511382275161585298509205623112551737082419850115625861005868362625479501187264465563812793338344963670086835616392910291687080062355130575203812929258062010432286760354179248170673852912456024942062635857382850259755694672386456060042390330021976052807013747660446899363632559301352599503717279722976644575317796711013237134594196121960182393831618329491481937201443052249191636660834162646857126094176429136767293450077029323011322991373704862226955314442434598603631466011384559181627452132033413755705743389118208999556126718201117250583274913891563577396942735602833300161379834113989113898157651595701816531527564988957625142305532194009486470205609039137326600415671758570475730406904278900483169011164116198741100768146960736353074865615025558759654124571385501803105060974524593649218220117524310479397414733668304685661100432903387888805561010730115196380611778114132312043073250046423480170862459393437967540625096947200896427113068128817901292611925774831038911839169939405056054413234646991182395368101305910647201931254160181321505343919222937744932489375914955516720726967887393330931167244582332153914586053984201382081285140854646699416386101006429441146758851963201795132282390266111035695374058304685298778267359245746328322372781289239351684020056037963161732855619542982064212700250421855074595123920728488460278161430054997792900815509005006724853249864599400894016034696753557883400123728408027941119130378777905206183156869467775211853657879549507929684280134357626777107697443813041259814720010896801375520586831775392545334231129164688232990123414855893724432133135787814419158726898065425716332884618497585846401118939829890390205559213771317260090140609521437600719499285271300392573735162859211015902608865299318214980910955832428492793493998420857758123538917720011859690743574001606110260425138225504205399800949855427751998637194533327980660625521871330371551193936028548414810182185750964767048595453409909656655775508581526638096822972649466322909669667688174302614966855586928666201352196622233025304788591106020788843280044039387244783427250473817770734023969708338270587838743067812220731088781006619160998487733141390056343315325100475651592847689498221274143884067192094230700094383428020716127693867884574894810785631322632778762174399643117359682585170491671795061035453587597923140678943385664514070646014128839609498764003980731794118557267230461286121498202413045943250496949803627537579099029726416383712138698519525515550015593475803052394628411875935520343072718235547094836287473336694167309676187452098824461863060695099875343640600291096945214242106394499491719538300576902852012417621759308941448089812819348897326086925662411606077565460676863732225116716102867561859339643402435881472981387648018264219940742193777543243542620406874576865050646360381086477447326612881507624624756210018610258890069000861271328171478329314311489083107935214033776960499059537926183015697293527063953322039749512668402148149586518947419576166538560469890088963775550455081695679999800391157586691241864201000967566142050256564501622171234843008346878989474353389983012531895202289814765900534175591514905059340628896404103507675947158725464317149987231996223288943294575860716331069556104989365265535600807974537352976256344229087800058400761956320384873166251789531076444999359253517863813584707406394406608847122380623744531780902792666618952277560608245805093676013721309990643708362907173525924915347644808828460069212168639338926168261849211370538547771469719872930133746880325294459403121267408065386946396961184297034885443701096030173446504433211044351485485548709783750176222953868120560373110952635997793424652268576305608303691016839159779102028632734417518361764252117994683934750559478156777897620119056871664996574637443065177218019420295002567573008184558746572227908447275713261496452773832584958771025711836046241526310638884124519975830068217501341625307157132045600323162773241206501244805922102173116264663954309588858905491957310965292789326927402559468192024817911031234414834170412618534144794918397976949838448031282210805322631420764592982820108344621207778859248010785103883064148178146874422446648468428114681082316314712208984521091577745151861518143795848458750731454999993591362590793914069862894372005582471037484174776630208835146734060374997328411978120334407277907249729181834615899566228354851870560781296590753655245524597241437559214451371404436117789083601645566830987182257694950630362494989099910860180796409781300534105416594632269006486404570322031226451420259891205611400658180367258711609569149357618645851824663700571530556585244241466498893090715881016606811277066028248058771209591566555171315652527253322209240944005143614679136847357438918466230156041673196826942442022763080938365275445463627128242534680768955895644325802175602550935757854338666935724256063699669267030651373816386505906847079833694393044694978176919126790940089653995987015296193872782516841650339855318178148517763257617302515743470889124840035283835920390430027947377233463429620113056887039516590688447096725056700148976281888093347774525454137539906997117147638399775923873824488985153408490987910597189254349572252423291645775557176784269655120904755147324799393400064889071393862856890606522414862721047962800309085024802259464755913684453112093779626795589275024888670408970778452241696509582748561450481036456727441356328389543799874443684679993413122409244102582163965688704185607939471285013925227843965023778472711429373110833820319822950103938811183868888096739156129790528609586412929837874814888194505831462103076021824008463259711763460183719388650756885619199327183602902925132548400162781306154953614688145965252534028928616227673433562131278488325241325359158758703905816322512583120482360418886734570510129823125907049337541207065221611274694690525727972621342543187303379030817262337206463225609027446517755405834694488542015905142800300875331268134528676536423510318676928173571282143814079846165633642890477501313689809373859032906204877613448957202508316177662545179643688765279336142170092152684064239068439264801155788415589216411378341191826764305416969451871312349006828549173065684853317053014918662153782489162478509001854337147765008200673169994070743677786771714670238047289628810429461595187894577424295632887158331335556157870081266277742433769909161805462919811323579525937791502697165134069436930683371421561425079442654465043276071917796065345116425626990087795333161338054037946299795037214721567239310624024069498638573082441360831709762967096520291653830442070843254966260233568931767122185741353440181616336818811868894638905167558198423803000131333678620069164399661208417016734525522253773649325137515164543118636026383765717012658017327020550069044712584093908423385821323078213967996345608716808516469605495802397068581201359545725752003456879428995876918305190245303117002379811966843109865750822939931421793923054739120902969440584084559331876305595934542459454070490079881051168031296755606148201524371580309044748531301246745166614745017643434074735566966650013698890013013973051162564213227173336575550295195182559234897871334265602717397231517120358519950873334596874944305639504985786687245584765637219955239240008236570370615593614246023921740466311384065498924689030367033905064245462273811206303361625587481581249894887787336171817279151106492913785119668977916379201625134574152832327653634518101072698688664447101948790223549809741884134336836870419194834598132696805702436410115177066127409800261201045352099240877970449545981153982171136889956179252836202005709423228518837835122223649398057487524034285273230113275942626615006117463775000302002578715758597857087987388069818198475195610752219194201178486774478309242828695023744545611897929149567813653897207698272971075598818329921516494782479732273115502394973181080062066353576593881735727065972314977408742872966513827246066163484713252455630144751824661270014844217506076667819380208159785789676863307501333426429842133475870446941899824474721414774821137897173518811475275175020926504463248640884303918056823258138013547286503657547850895966375373993763939405433189925314829740817466181064364947112368233412841926082994345313283021320835775237578131030422643530460508462750947170533487738667531792649026128228373961527986180092974406208019847393424296580845986464157697598872278287083224461925393334983177170484404801466842758562094590421194633084317164494900876251462698202647071750792370627664871815792290775190148616226032323690365115854017419664643023007008827675289134367112838684063669824978019815788219750036587242405937843968436347830094087534559338994588373185810048524464344977715222098404171834337230938359227064319899184265689403894416106314500245807773073716847881962598369616892192924167413578004394647303365595788540375972257559312219941127878823642054187101301848472024573388823336435929084805380379201731396616820284087202637253985273748309221089136432072943582613404605898538436444399888478990085008058577003729515943953838883385832250175280170390292606440389424628965392452083959816516393730578070620595525790381340051444514378925976191058126015976456961955004272155559854926724201060654191455992075598799494386940398554405448808872324138482345515464982685014450003911887439296398795652013289045308677347485375763641883386584119354418109089192751736895053975784741586761081860677537667728990041399092056394816165648081438213554732919146916285014077544577459493762713319535432735040132378134375193273579083333629057474301030282304389574554560310901585577549566746572093192124790082778340609432565424993288083934096801866187873810217349158584859325919431741409882659224362353764266024700744273838142154695890907101867879054929729546318818671331601344879878814782254358291467271304439413175449443401983016871300109168947717092419194210247546426548989306701317477739188968205020930899870045004472335911815122803443005118783469160611037167417657137205232384815157007533931590505897689266519296016601305319067219116768588207724298566481995955129459094877389368074964227168706167044757342898571469913222070262639249200530693420212219549547014419022595132535953985469877034926425616678942666336782389393165549045574404334297804136688680887748263161435757479195895678270499758340808517088697276955582979050293164089678227074163792887740198023537761519969059614202064096596542010766949748895760789024899359175064194507395886843378459687894501811446458387386993265746639131861542682046569049985931931115058608219553513326215180479596153564018602046608661453807679269807024147314878775687172066377050335610537694497753380336774629290233863127596865589550836277281448825513903149984357046038384374053413714978260155277794824828392377613452786079398309518731993912166589968647095379924381269648523725318127348724446821587839707069804142522896804778745523374891100697921676325548412287923014544760131136760079223321089925942052508326782177618984747744560520642292589211433638655414261950735080414095833817549188939353091111811304613428002263284358020610772272835027741879147931988677133000930950385807090812647444216930147436753765893215439962982630346567610961641555412245968228770685735221576085761585625094759160251743215140675704013708114686700231169149615391881312316097847390160436172153711385130513343531628498490645746731637373667668230652980491732089843719647951744322028677543319737863658250614695805912489034543342858636199751056095343579623448741393511603968827417371900341958113957843496150807463514294114083174950551109875375018776568491948107393312798975772597559061243065862963936249371788061714162948097220117501176072618171658457559232724533766438051250983436589653752466230886804890798463281567275441906511395683869635205312345696957213704299118784225956067607866765484123103426573290355392451518139350494982465859108908753633993408027203649553430014050449958331904687988111431573722201711340521047956662600581066350799804195571820691907032529547600902627815773176097530807368841508503561786099715751839051240603636832949756750857760838675155455791230382809063286338569814140859798714605510814116637337449577481497631342315377435892568182683917989768496181354958005622352390884057303639351601512757939024212386069943728628810613773317820609392318151214200507346155389993664569526794994127977335996143217006044586520751821488012554177773938577306195468692918722052196404023860617585778301365255899772904585254907871458686233021137723453218470773673993077065302082878333939273904157179729327996000694495409394569310929765159937602748632750681662383417158190195602437860523629547667080882853793082462169380157842124628613113959831220814667062429979778897007277086982846728281585954529686378950897901938117283424003645564883430354693929611740342799303607392629414306041795012961336673140840996635912762086510905507900150038339290098489743198749959380455053422395911944489714810981768785809550757185500513354615862789636582200134815195387898541184339557053646889550599747484543798258551193396863999491322643547020955109103043605490133604934335753285330637246425420435573814382224832320560191825591257640153671563269465049109596559046586559591919683956567655553470807758635386931278981899063118727568677615291199540817116832839495081547587744640737663501469255008399750437739352931745001483306775609933535105464656167272857738879293785847058996903817646522711238027841208538209313515863972920636965610916860968405618056799761471897741527291980059986382956259912086094199456967716474638500537551648350393526673675338068380700356114636742588293249366244470264702632248902482122000265470993448045013184188693801164911528583126562451854475068590498929279814354263747121220037140083426342521306223846206850148849401304813571180738725014046340514585529348922278048681463183747324151140406737522370067757638478160976407601594026915061876309676526961971194579629373965116761341743602486057039142636367987099926482152219055109309200252459496247285374038958671634156528216434147526437400397353788845417537782208546247359344018578900233796396153277326136976550353300235076594629128366742463747440865497302110892070384630172324174655999659975853103163457558328229820795125201705679134444427904759519133540320877657957077795738978644899266985715727956105531886284789569292355277648197916725817345032270810397276183357856225813028181966121188886089683950736317579554578674645722150631980978584252920539860813095495780889448394203420222464857260072881625350061289048272305063759178807958838392450327607850926117103150677073822811327951153779080201262912509085680683075592060706599525257904917201359106572043050185288538395816587274012942182035824378363743745821094830196464979994825060568139910343385285672470444794751843995906896059885319054234532005627879831641573420507680140159110013585549339069537306661208171460871817232552724875248042872513967890526252397146405901368062282106219778277676576898313068421669839711234281322960223947719410993213158788033646367318735600388946375605041905220103198857484026759847015789774486194303049435241246799998052534682556327249706542807556315367063187445355336625344425230534535302456822891722680949221049412406876823386440928694112463523677501994886135395736149759160878226756554797610115902560954684588882621546822828989783935740063501369444050927761108399130776244429054610076130590718036709567365827774700459924842833957212794568434766037056767734155878200662641767619953406100160185343130719614178532972550793379831375545296455506636786036654187550438751637144829996845884687611130310855135738288791125107536288027161341585813187054201681073206973918631277417209935180839944839343192811994912138925135330442989865563284989435388823267560838174519894950472809099256561907021280437506750588431205587139124858467817722539689149090924902630114992001498058387163555903212361187542275808894473456005283225143189596188322151296601440419242192199055050949029713302137865989466102633530389838867330199815436234648194468353598820880716005978803202813952194686072281549048399723618607021210988625063426991975618820022463686371208832518338515151777991990201961889733432732974912285964379104759808023740674227241922516061131556677332574666624566860056858383093280185399050553541610721351167357199533541158778134369668032074479569292706396451511512684345296426417429552880582501847942504602148920351595670844179101790209491259340598574247116854319196744053019084294788263318967626416500483168850674798815276434672702531237906907273309196645778762002567392877251232326010283774052019792768694067287295536508716021019505674407962185363234724389732616264244388078191401035223954254642698406152224963386091631853610276819068118531860779665025859666075295673664264989640659145016310119588433659294310661681613341953257708824448671380642725333524804497990008881381351676897547324770952340847873545164608618022220440269033525960442694306010311540489964363410121971581850290483539685392395865554646766885578443057576877801220954207948122109742895160021387473611680126691044639564870764756666445023922527695018928702521809381322583758376692456381005189013504507409894661637317986116069843908245267369578786649101241301538568070342115101800663946672909959973640249575439310485385155640397684494797943987325381275221605649339748423431203741458427926260773996614699237903333688884591246694869876867747394098783871059447777662001613021201415734351941689048612652255577108988491842020188967580793076677906473346101346442729565194734796441545151772209626618066236389839546055097126989707072456307994624410567042914235570594662733771021938983654944243131421086498383214838776589197020881779011228853144858505364159291565681596820989754227406270603646174083023791622547711012289133637596071358097773215196797503979187737272487940651161857122489456593545906823214920661726204695368930470542389018083198033553278730683603436088297671612629271213325201025506586358883163090054523945714118888085233317058720249826495216141049540229164677533543379149616740609116225134362050740241777395601661661076511726343539370067340332825339582172106629290332041028820346770305101058471312862656659238206957980908445583264036264605859925151711911773140152855412661349177619469326276119462165663201127321755093557417158067990368184553485263001291569684303788626736759843809458622013693978502634439874429649196740413481412530194716501546204472642714603510057729342147353556581490409136115736579207726206755594344587437738763566616380477020284192161185892527697066722070165286602128599095964413337098269351284189733849293959414924877050086577630911727564326465431044073842063788251512779706086470415476685344555249733572705668067108265162091966218455810075912404994697362379612299356084008755441011761052683892297642397654358893336875904167107524613632115148202018972749340981885329684288678165254026811846760100784713985001447908241951362606559468580069784751749477375759698071661609220800957015865931739733920448079649084757123837052108405152593279728984124829313159855895793768132280695236468517162939611268658841027976708082600306815412848136193141776001479562807447876288186803159915084209373742672426527891465211491532912612629439195110448950870949739897076631708566725961222088575186425652751913618572924050735581233957974575369711583980622465358572475794770350708209755361298902386419804871747965527995954022076332733452933090395343480266951847676303913080488109447527446186776296146096849566104932573657694081041407146307764623198834546831363316937665534795071785948963024076072298117880264394175243631377307237886706288991518037343069954858177651705508596421815022284297877406409153877525433472919426021607092326020916507647148429949174034900791747691763038038017248410240431392674495420721700036969790547540764665047871036543774503988267331336971316382244135692251104918573691823207326611315864959856219519102017515042316525483578478461451166532341505209922235137561202290935241234581808970721276350007421369801281861889259787948403813869045366263815154755530793551315070307287212302138469018048438965026674294812321841012214201737790682783225468372645222451352552871061406559455001729972955923374876422905768583249180569699236019328850920937829463636638197573734399051286822024029572423120898049591174213046856177580492673176684201065191729918828561863276082766676719224857704344059722824321963580574324920070529839649531162703493894707664275867052778652274621559742776239324299783349680373117979843613623869664170750603961901173888930139061755939745766833372849914868894616381062742766087330935503584298307116546064116046398673301080644887835262369275567979537004779910826608743469582389478837095162562690126966211264750231733980660273741158597910759092465454282183781291003659581248101386379713200909737875762957091263031803765056107329112639461291423938002398648612087207662065059841209674410763034255460217638191499907255854329945533274202265584202206690061369840692658561791863022533601811939658696887969765413928695130241700025874092008047687929164571353013744784844474626007358736574169032634669247294836809890648213384355973094773116639629764132976291044122572090867432448675247983875901895836886722485858875308126849793644564474481052109286567789035827220941063572740021477132670067260751357848429321579531533996438997337957574909212184066811661396780887240150511765852004298676869810927975668766509376032795461536016866230234891983061290671626358031864728574908801855938761955907716111992120176121808285467456104112929101588459766164419335904792475010348437689820443237173092518897918423985811952546449975850030226381727737332133085692673876446266730507163213125616203664872553351005996789242025819750986613159391205511182539590073542194002876642516746300096884909602771930577099478042351434294825220950530472303201032821276215979165236223130176845066902403885874907231908615709225044804041647091922272665536219431825418990341896802440621163520770563042357173603905980157880795706719049352304738836700739577856853817318760067191910319702753385552344423632319518250408604594409499836485062752930448321605827961847866582679305758054583158455292846678510921417844624702283964092659990827338700263917417435121743106721678835573378100900453866601831711491922292346569119199448859646195702135743904504196509087531909721790919769512692451285811982513857075608735396357224709113837263600508025010650349697692781651299051937936485047301700789701133241289780493779674806180535468804251727269449017316444954013852338177642728247087388180604008615340290211020605099873356717755882435068414707546716248508215753577765539382005066304220241848592048245617384918904219219672926491606201894823950236155412816069598523542328484822472517641189652901745962482589508355382878397570557530912783681239692049978213822810001947542530473261905713140078778409754551443612371032834639254395826240202049746831438743532580988374086858015457500907703549020117918387583322327240352361002717772752745305880180411717623884903684522578724415793892405738376103427588428065203156268711216287151592271113536444077497270437212216649584996469350761356913229064683007263006695966865732697066323662235024348444409289234451936066264715752856436800206451076947844658910788860837041698690221348951434953389442188865767651852288787358436683427855025321088854385193501249181160859909765183840195701503333643396773096479842154985288696629010779862693734935983166245808847841688197226473283714553197283482870887587092598939292163569372857253294883540222964484689818481638768382985380543506420463743014788945497463599097041841208192852909749898189950365973998352210244551907126710939868731289278767709377178882293306800206117437386949830275676133001457810522511578687756655602016115934387193785882659515951601459827711710708440944797423054864471488019832759612478891369727895565041107654000288490039840100040608338589511385435326624845473969344559401861476101308672766487695289516792385726299912541218949702629896519877061314565150527116304235009529689566559467840540212798335842985409225624663173995424660495982055035702399242070440753712577844062206931449633166599658110084422769653711514680863107228168605204481827736002036328021243221078066374956465253297594364202841786204755627305170581537640153505322321079593979173060183641770249744109265866212591069103258394824508601569324987132164973024572903253986943143567086250384422548255649601124243793761695600528875139359636555426451338572715857247908023242141478796618278327187851991271341485898165050231509243526096888580100223378468987726313502073141320358933298474829539091282648514456416434535163055911983303178872245290445870387392841278249107535481608131485953562959984738616892773776203941562079631539061270198206197599804740529213820059043142202823107577230205674049120147789730083794978638848692045472344062780525274963540854753379904875859274692685286422197312211633261308726200298407058309589648408165109042249388110550554925412640787020273093198418558219466682030631086410288147349569948867736054796655198141583296739405446834619787634859321766652639638819122534361259959269491441463262026522161547047470117541155892706874852418697526677944757345366770695962485004489139749312484571998693770440503805490052559666708052000260665480344671835795534933915335674708579769421869226215528608632661689181689963283504185475615836125126612870341334431480956263342023714089976900293814377348534760100505352044596082302411816097954292856029910248417007176698131908294125823423983562311286662973131261704683698588533890562493476053716350716430366924191348450058694248770940996168423763072447450561410101337135506445902675704158325252085719748399047985513059869710153929903228528646520961530307097195447416573646089624769966222344244214991345866615868538841240564835954956270601313343508159918581198265499598934716455026746602612868422612064191964286650705422913202259060778635610299717636301046069273176204734548774484885383587313084593469629991398747225255761959357916432405083464806944353468881393508720652926306403966426420358090038920930502160157104386666451649572551308509408504448767601371839732735904684040693618972410237623889371570999445196780467617158930525386921829436889876722160867730645813866215941109842628600751119809208073485187110031629007114842077804285429563344762671349466091419401178272817504747274414037312187367247983587857614356940126690085619266487384850465651213790867231854269553726813940589176007136734294516877287552802165497650586719930218176643577002565208222545661298187555488411375289532028662916541064877204497199671010463285603956123039210142758716181898195710002925107450945757495948017304818851744079072516412789730995491574588422846232463204533303857205076498443030606919663320066347502721967310407604953292131081199976845327809316466128866180614119389609339443998848460954257963467108176832195144439730086258605153744515755528100355488787458690293812717109562664785153687815468615944719791579198704127364968955866597130538639105674764689303441305015576444961130963075799368504351740095554834125326759497684910375614038561947447933244764481556655295024087021829780581054392138311413532612432975095931019578933716375533899320106079000698447204537715644180507932975381724968312899626786646558518278827505327869526981092493331256514345170682846471317832420209661570779266450359891333781690257915545763868830086785241048317162078949571255539019272306370164826204950949220650996637755381719688999957778357622296819801196858186176197201780571198738955003389630962608342100380149985318798809817171400923327040156559485113824873978326995766043187314286040585827056533633791375042221009725101737567852123963834183504623807944960383466173154763103474067627371387443895089560690261833193624057928491401274228839065730746655511346552909745537116175517574548040871558637546376291568671949625074997038291732533086153298358624749957790188149125072061998209797739072801515276204533640133208388495794628621019051837919360875209532138950517729694082453167144761708977538242281624088092452405452462767954606881343390396255088079888361510438638373286969670763531949657329394856931140290740360959089482593603987388877987421323786151803770426809358008943435246181203095202186088487330660337360628088946569397173608860083565446415331492294379579903189109181145345418505409265292956489226741420022080190832691249084974192341553518692093467957066908277909671117549396450593864538680436420515235539625280120750378320246633188015728355839984624466244467888560559851301893737473274923923500423270325628105152883043266761610425965885968382305894294900641316634001879553443676332131990663348671190285469401564154297508697912944190190153499880277681368910317925271822484679987480806956069078822737383965038118693483439131680496960185933471586769369677423139443496872077996627492621997669590828844501495945140467956316459276352673775746241294703376758854197560634050351062288691762669268965158559019809720284329923630078189559783289431397706335187976554624501995409348388396891867198365105837229841773223689546377445302520025365583663631608133048279239506082956597085396710452040477945149988743302965881828262046286742400694479560454607803817940680591446490237903556973522572900253850952616439185221528354757998903715477008068642119376314976892220025887917099306229761042832594835414733705089995688927580461525515921322529767357371439477774586296128130245009550028690394302029275368492324222155383526577654487645570818627418156065224788664093415070740882866775598594377842521093919712322677189655034620173540381588473487137012742246182730041359464748440826844240728675876834895653111067846174266021859153270503931279539313271133279989532740113761801274928721737428796980071428186575469890806897960174104138240133954670445712989623484359572748697243341112347012883887490495865399299737520714373269923880169333955314312494870149975604731162834526880231437188297254116528143570964946755186509344208924866626987667720578549574896243076060330152149948542639907887596076344356029686383331208813846233116884713122883632241847413902779803466430749666553190795092584999568262162566512856967895088291571855323319939373882987265100447612499689211582543211791308108577511350177491231843283909327277469762825838251396041357486878941759764695171211372319377417835718294711561444020570609637846978993758179164986180678308267974193271292739920664354840883357167495155964471639085435361136067571591886620112048086823695588477121096034374949336120746835825696585084296165222125189485194955644940361012228419959426626288751662230566995734549161108726487873097543979004808091622719329295653338005972622272277812754708263037720224505289972764012802829136447727931228092511555850537972468936068840065360315336714825193431743225923685333722608200881132979702777027636639749085318792847382182477441312625546587049964729229880078701924898221320616496923545758966222161159630098944539163641499406407691019722170458572762402199971585444623069930194021450678405365779197960184479411896029068598028067486694460613346004876885334231994821138120898879756340142167011401336612828355859783485645772358198238858656548270105004638391258862952715464381255214907625879512076000196808490504249289227313298422776308156678864358050622409892187933131171452352775427203146660128998446064200536792273078436580978562475579180925483170314001749051000143320623688570073592496316223486193103566852856414317192474528119979366144070759830976263988755099002019463455648976887598126569433401511239140985312173685115198818575457769477473469573897008568124482690335515776330658821384052081264993542885797728329966153874346132921232464435159453595358173181531466096132171285128651430820131871169894715977633311191386859043574637612671809467898752308436163816099955326199838661920663639858210309618919696310956892361346119627130220957982760642363955015340148851257764230809807292003488907178051173569365620457316166133579637747534353512142212324112301489170576349679617149193264212395792128044948191554716471616463571620265857837677040104514584135002893878627412401643596632859711111171136767556049639730577592947920023819426030625731369201671892467292632600879845109818042069846239846147430472366599302822700600830126797092294294540114156329165602829303724523911397273671911394662336608958094106322846618958614607077789237577441166673467849931508514614093914335150262506045607205407054303126395515711153037909933463592980351831536708254587159728679401125422339853233136284207277962140625203361135075928643625421372451800533314545189575696766141660842444134851784198270502005026771671809139825260336598271098510240623440643022802113910340313431673702106412112976961630108948478359506291493718012451882832835925278151956399502953685652749888026665940434425595802563099967795726653447429393477351910873898252047761727372861231886333339566139134597347221328943480876433144418248769592617287372530966852384855617312824306623076358066883320681375676265312000771615964945217785752136280037759564034140519362596170463943585059388798804659261876132358834565680766643035481594960838318566862493860626659012326891753066158680145183967675500947695848624671912691491847184519802575392283180424188768965788008957321821233566649584414957338001449607833839528521140203252552968363077394239771193320551673515140181434190578484926688420717330374438017877565725841658897377821731672493333911333712849672296516336284997352619671357345940619901775324724377752723859519449559879167637158395455701737516450626712784681456281648213020175879794983929624126585974138087723189419471134437490284017197559749558518884133860210441573586203042436782226471261758263741358794501955119464786140124953150404301045518958319251015281247507271725133499717368834223417226795556087910005308794448596132193389052312564860158359291245313104990387556546495156458443143050155991948100575992425265675386002582674008285063416241825059431085495531770311596952396514200073867801232130308377327473744483828012976041469281630505041552659034761318704045197130315258571837400742940881615772557315974572268013761463238325448487694339480827713876366745547372105846933864455872464735703647543425675066284377347250772778358737980437869532627857656928374957791662130535556932639400478646186231438737502440360407112158080818541843567006477588725370333259883379053006963406879563166551078949930729029764516760740257335206946660373127025085904389796301653882672883782495366365162899555710751134187100548098079591024607885351977683121442065691504406097011718657986904059160437636646465173664904084319122540858150050322594893086516743103881947342032326976313569657378961422729319787801636834561973287811990209320186394911216362856600317317201237946446982789535933482672673444764826506332486173469946055236875538805092381378192967921393537732426503274787256230911450907731860286290704158298535807200056379024032011647367089185155569191554222812677699599421032936914057503431976371481690657869031093210058936301497410384712173736377116458531179488108925979597082942297011569756114779191276791512398551719536995698407954039316404534216087645870502603861636177284393948299066669905887418882650534678994297790462273112954763003995496062348033476292969095606574124065270034780367465826642824613861463455784635028975803995751542511979714222829968298132578879912273559031958161422209659103931683094024769327711288257020524219827711941524910311340396822720110300754523406381315352258081278941736956704845454099660525595747582503827002534915842387474096981780313158540640196306691411464930532475860053757604346469225720693209687419555570776608516674378745055996493719577884408988636241565978146177939693036415908059535289208100821229148820321278468238367689403647946910903939509140536588925722115403532644811263251880293005613862818691146012727482140887285717796226430568398204457692345580019770081353715587950257120534885272266236946302671950790865985187477303815007003369714582534885278564460791605160444051369768225984855599494807268793506165981976813208693288835377496486281447091002205472562816660079017181230727414257102426826835765636568140657938710596627095288086898953821922382361784270205587358396901875668575734924579775370448827263897027342260977721703656591068081538085643793395967750557227008248894129317775426499961750071708234259156224776574157681731555518003848507138469071290641070483154812431187805377238464143931393252735072726844205957955334857412291895244901989486147708105669202494316645714482514870998498525869641089396756302414782869236380910853076751769139512818886946652465296737073936532793508414556894381474634626931085384551598924461340593773233133320254111826500443608452115216289585128238427375276305968067345755840956300304100343255198017866534288721894075146244912299252752081944646054516955050821604303053974065535993596433906561074954695725994203869955035009287539040533432704065296349004759542982355316868920622150685836703887822601650296655248129856613552095067839472844762542558889622861229024844393208703967152986257375321299671833368224884174819051619107475001366612749233113877938416081518383344156397337181175517017806846833274207732570166995732948921019184530591548071825955466069357884033239555780515462132863612893116785398034641016233867975385025669148961902269083192416924229225948987884788200661728106750042058909742117242806913131904015124604654628475922646427653393914882757060165823101792408343775212596494696003775870174596050182678207213199595959975840622962994437510390148667006982673921521081788095018731854089059911726142859258223817228193806958940167472801591846550515559466681634013394459528927494051972276524533477144789821399884420420310538304954937576056919377993228179546822741596364904083541726594833170505393627273813545867430646982214071837477865044943076639742795809571294364790594824046197101745548288290080589120124882573156358447823954706987760839854863911755470665310135657962352534648687821616115290363355132022216645017500328619549406784673745415758652871429472728043023264543724069901210231612395229142042644114691638420926616975407588204964376338537450153784222535885366749543832623311584505772277189199571559346000504612813469983918495848166760208475277321135948137408284608803012996981588292104362012676562193048231975550636650477204145514044596484674162760643244372128771710371465134904219965541169020462061477014287614203189107645580863432926155020544895749226121609245622115944583749537439005547654750805443848484690842262581717934481889756077822453735932750226572797294326389073539094689096572075818774384003540574099048611907706127374076959847931185362725332303967587062906378974978029029234623938648823275207394297278751359241615200166944963506591376417333638537469973116669389054422124239158402094040837802504095321253151391987657116899193533129510527760168568113535281109450788820852770889825932682140167598532741621838066079527654472566529591015658984016590445445275876718971117104850540589602806204232910406756921345632337186768216152521950414172188374185120220092238052909745521664025319479849077079347971319259979874004070702110207556283378533659676071090639214316566255136197621721243194284651945398718373217806807792669427767152050932810294693644656574093554965876901303244368301380076666376663232929201990344168987820892044143510768482882153160847997760538085341157702876872428692538223810823331693372973097697778690720803619867997701719418582129128524898282462924356090591238565525619033251435534104535589525464737113737543249647518883815116086577144465060431083178931448986549585191550015218990105632111745523900947088732078889199329384521169045876532167395489318758315002812289961586304827465783213615632077988797142705718256597440023463474346337034387872948055586043006737011819322259870522968935339868997863694964132115204360500836078617142945122746224628951655877785478074419816180911982395823888708480284184413989610284009128885381436112887478974610177353830304634363331285913749061439292084267656017195858773854124006544720681564958662096484604772638543108056218524409620528575302203917269351824443430260093891981806989532006269847211903432862741317349892396899837130375701101886919085921503852219462021855658362616523366445549597395748189110547212257771899692379225395830738655194188683150101936463774348563534421455225544645747541946489369078561105025851754459977524699146715856469146025432019107403781685397172975420711513744445590664451378647388286384975477471468611962549440700317470370502845386564856290105467801901031144863454407999407893938284667096117300054940801239515627733790035060121735930141404148792746653309558854273354085682801143648548428508816280504467026864214551597392601514220497334165175041708339050913837251483604932345573364294156503521003491256472919277516554562968476552230659758383120025453235741833098893836412821542024136449606255409174820948706855498096580265004509888249147516246875069068425217070079028225830723784305750092144433848056147532295622053790043874413106398565114520815049343408286450841764608747777921931637372944029774375431294043311156782142998195447604328865729614904602328241640236102157237934838487557256720365188789250429126452056212808299531084386793147025660017762690354643774441655149182000688195677752299444060104711373847924308266016530481465053565617222361366646488387148448817315222638837966691181342202408029521287540056596970190343888653795931973272744284957362586929828044175231875283201462364070839322522757100483850098223296298156687453161942101604231019839429379195729444974395888559254015464039680953271676286189183363217807135482755529626982987520707761482491705480773493111115051499175167686098212961546383170659289998456567408250903067352450121575690563317809919329960359146535372423981547868857964379801468122389532870665810349601533293752078626099175777008835541700912669615989593142124630184213797267529709563643360498895609577985917502067260656465138089444849864676815355966291317326049449272914311157696620407777727562688088292635126660403541480463827189425512866457434064151631552897736635475089247179091028332737757007398471202632626610790097335036489446521046632613014311969567434156621201416330447235137447310092713651224526716892418716600528903780566202610425771215835973437526018345558381059091455333814737878647449557140381550226155573582126211224998814966560650753366247376361455619433655789790572588897303687256893581583632589419468074090893119578491630532559861615184077013636904769750212499211708687122807409189885644203245772199182302715970249124460543919599462877622448106168577860950697562429434901354475450803042068452383212695255283704569377793384703866954745725806773165774082883622465169127736773249506989384473535460049092840676565382428955428572937793218823765441258416109256789639657648989548355533666808054569443716140545549789571480253136984064737766280622559959002142886640032500630643009711511457030633787872448330544280709780888847745421876593138485741246101756362541147503532359842932186144948087162052638230940747222187196966550198219201711837279240957196963964245852195330462342777370437044152377047165920348105401902582066076889020258240155634136258803716043693966157614897335147825389419279707358339985430111708908724435912264185356863538932146167492563209283142714386051428846177005652624819116470096449630341104641899034995280121410007212454166996126164320974760480133534943049105298074662261640683685137907262549372452871381648162841793647285855950965340425177600284599888088517518964512593667343446436328112991812147110539373029305994727364576529530418369766923162897205225787290222278758471182459495906401284369786090230876956805322570841139682426670357611269350113549915891099673761718864426131927327074829965069438474229759034548477521750900621071156846057535715035056618433041974322485491475435793591799450839630293155952889603675939832686713208019254001241858518082859240654906521016700260448004009233531831914971487798938331149328472232803509296265741968799621255101256687349027101249890500348860745597042365467082197728998502362125719856024456794570015092881617970276333931717008912702512387868539942954103749599268153668268412265429181231250030563095713823073855724309129337579793586601551238669627619489818664341007718560075593828420512595665348861557666235304707364821152795435876541170228207952215364840195783248840692563082670339544405930204861403333671850768311771760085990455196105694095971866497474213774513345937247689207582723770848668441899253595843167466917758293605516641582762585517861212060595525689551779383937416144211651217728000655342279977984225838129970137361467784327896099856401076125546228287200715663084945594093543679522642481220010059368947850967418820677280185356579198805072194758376092432749968691246318130776760518969315659066868603830896884580985921086317551788794071036691373249823649518994875372599301694918679242797718628303419844271176165118636372622878391474189979925742888848665392829330022129266782387620207175613717253528714630823129746401715453896933445877603227823304021885278378457480127258561202351959446786521711707942967129747767435226201028633832460851962733233653582883546845505876996266923274104305497451241963295495221735234684802725946044730356770072989353807043214051480887823311340634475917927470883199965384846434766514893375278073733935106381623800860140726849174564366692592615459583112247715074675003840890236850624055306828012507693513361077000826635764576601151570898505998699105341606865446854335398952980274554961182048732901745416375649183321515677369802541609605836587758939451488351221044984891090765278252117537729742391655888225409948924519484564479443138873523851669337166893225828388019409445625257839178982778225557229466249626690910779109381002319352246981234028763708687448202298291939732892744506685532079065984828581744326446692378878803371509136540944237887512068852948032115020295675437269358230262650866692601379902881283106391745190039437883415404188888239745350240583356395141568019894763261577825525862589323800344121737934785620779875788547183915631180612074506764240278883108190118169207355162645753037155411789260650569718096364981985329347741572547192221315390732201474765639123842657380470850768825193994219296161306054125701412830704928948064316098745607315737994969128083854289553202311941434978095209661592753430309986330707692563529583185613565705984865720584044488212064824795427962130294938048126401609464790892766016569636323376123348196851754472419560248293214805890006868886294406642062559044375691919732620795562535395014842420118811670521353499163913968151468919075058201344840388215237236226524447886247307273478623539950655819948013879496257389041666437013223807690052680355422678339916072698131537110565720828442801978859851167639094513139019222010352899069444405748904404321904267788751106590317930271136649248298660810825195883133885393458064125921426824961641145936934436746820409190240567598308768645955309509573309143065841917154729883757297653268551854274612358342579763186993941335363883131039336736839900018217383598677800139510461442761832289151363316046847114095710201722864892936657885366892281744030494827792716704044834616935763097666517492373258491038591200545484577860051194941284280859577919232611514767913923271984848912493012142252405195811559915424954488085924575683251105782790401322006780872541737584728429353324570781010326743183138621254482492491464893741377797489756563596039528948732655234887477105706158678727786203500993584967220558958975052091719476873639552855038379180203368980312768371951957475526091340635691354310345351177805213814658049977937166547393181868316830671197710371415570208436532762933195688740235467907024560992021682314979777690144563840657503835602025717891791452267593984620642074114831049853459013477313719634402622678029146359835855344772899669929237122563211116381733662212103247084608036929216458893087486491568880779379517890148821394127633158323722381630865875694273023990807901034855962370600403008268689586601256901513009448247343417961978500655979888408029726174709571579154295309640290434515500538011160841336821926990326015585325618878518019109299625343955224299676852080816981338959986731803225959600186560297907153756014441503236766758980040627309259508096719945509078779034128638324720859842576860423620688954168677870252744481798384234053900856398588351275014333596312914239437209630224927146296061518178923482790692106001830376255015255421345142448605482423774224948431336341703097964878776456994284323990295288489896272263218441566972811621104781643821231095067107229872910711359723558679580077740528928747526888917834131935343035779951607030734430927541241380151579901194209885829408140904822046731923314367262521355277074459245095419621040813824941890082727546528983501814561349534359093029290033188291103976137074722704241794696150495314640962090042858121811675149438584423668126308819558140208026896335275733159448966077192108650980154394652835170466550233847026064138070670619654109037415918529009284254248631173309485610497983077288092004530039058919513679312040177709396445485787168842294610497352636298534258986676571632923690465476041687302251946829029551207998303808486261548939871031765676141219500780619550182075601309670362248513378358540021571864069660125548540186696223000921898731654706149000494537878483650796381570104629133145907589019248747181425099426905980181714123229087849908182134349937936604664988942466937715299507068920929885509752323001852798944980918242195003976146004741898072180596277831542338567425617914559122865472028200321554791984522851604610332968604983976307163715005817404342990994561182476413723133056886598929486083259457797465849943975296567396887329087337194322689589884951371260676543510751751770233155654525045394292017967000464251641579528481352610306060645853033131628115643249175587855193075922181503698576340969883183428220347357298594744816924111588371966352831794207068990283847384475973237449177526075672890682122159686316145201697526209535862245159467285494874777597750518500697535190801205574004739487418616293040098966554964234086413340768804508822882557979315085568694142991941101962728983617287422634714425143726293260492904078717839335134853435336392785848359895990056215238900775470820892193422746840066758218839722989198560418054027779184995656868767926534793991708922364996384221981160443295994571634209609341457267623362835758936097308071350761999580962061980146926584374048365425231873889636364953877825890133397780160639320325031259734293532103374494986657466452150991808785890364868756963552418443168688521902590483513094560029473485183419292249683020786636258957521097989472973426352675331246147456955131430366559359005824372719892820864526317550903594329709908068548984402914390198376575140920619913741858719279016907116963753378316665677494270587117240454221948779508484155608856235239200997996301673131211538744344140860538374931398432375487559930988261958022246304590674861331062752313633414090916298879645464277880584978092346994837994425845462241665582490776966573353143142070244007294292794829741263528362914179452124685718220378226939311105025797687561503028814128681796881500145758696108426613759966941668023281552773305396590894550791243326987017214610264375068313203095585315078133671726895361147118569519244348322883366791763714778177065346398308401832539505866886006962820513478236416944119610209777270797185651254498151053447331842573499369585351922256066625906981529687346680787160032003315058440015031583822576269142317183914378393060212722749278504338495765855448670868976358760382606591342930338690033828313176339448152031766055310493762901445731909540145169090036369666031373857845573349826092228788930107866731100671350456891017491056087755142078249718489531905034013015692965027223289905758746062355321408277315381093032735893049589401139798472050850535991385437001890512233971636800283841808755653464992652312259776198776604283012229180902580815176865716526849488518628728296132984978294600828350693084148398526745132853421191932154723394869336803366836918158710332034100021200543986088627970239781864475544096274308855714879311152612421648567688414695095485562463193625150003007325197736479645101379402765100482552852789085992233014119597767492917751086899227332398788378761556066995597166785624274588973285819239059795277299227701352956507084072702133100616351757001146020855279023050398576486123987303488465418850873388545214671335579879047219146484037621511888217335824996028100838155147501218086334769778826138183671998084046500072811095318080402224827920599476923885831306258649570904855397831052887901461142907104586457822107783005008255696837454885565202983017318644270217139121837850159613177901641992237062730871009385044762021370752300236531203445392659369401137259952725126001259339774028807276211140090072047406357462313810121484201171292348665705810539112278588985111322777342538634522147659143837828497870942160911612770277461056662442130907856695973945667283892818887492103784031829849118015348553883542399842249746304269263062221653261501112414907863434362060486261505674357341492938284145772021026480896590920384780031601127622344942176293590300227594373884229619738312138114120563794476574104970991999807843837032883828285901969275682368573965203557236341709105785136281167810084135585645879711430180733083642253831694963131047113946565912040067818250189086015698838707836243050346839395042808289404092476184827133436270084231151976549827440807847354803596995028981731433524666943279857601425237068538182559410178789149510305921890549002520093445038733803334515359332718721091291609022050168201560962294292205147666819083318877822025989673550571872966863454321695537476708452079038788675597703504686639436487408330790576120574241060105112035478051550311707615601183611911319183545962620291723834616404175110778620115075675485797295290470181846030524470307334982933292688209993049263000036761372961202159180916994093945511765034901013277109579729482459222618740726582414409204859763033609697904871386335060154033199260398711862141988884014081932640600965563971476165921380233028973531679083146705225317922320916982505159236254715906836215510472384973475424190344506451732676308607843727659836149258201312372188280416531931331225839164724947131751045456779161967495867958696059480655819173077295527762568298701357960529785227977689570155626508441029456766694052979184447026338566582085041867203005804556053415443814011519002945024116433774869165171757147328481621095465475930681695461461927818408314491700011035327336513403396773507114575379505522405108544535619656204823509511004614019948325749930286565169822836142853814962685862722395016666398797343753338404705972138439107891363684496370232535122358888774843898493940841272683225962839089783812273894390195831084911759562231784305484215148103376181293918969025400303669975167896997391596412916474609721536802108013568473928791878004383343519180393055472287421991626070370334086390044187532466986276463550267300469815657247138082926245975102743607799171311564986727958752934068657460536010864328078093692220017204064464989273901607754844965313934536966661068497993616662449786497678056682683943006362161017233920133170073074754366996967868228642039614761418080431002026468524209256811544731151113863080304393865288990930651976329723868481724149693234457396605252057818972821314921896998494232835446673334407480414113462152169383091067405672807306245844225088488507024804914575350313250453266537058775132730711329150941496496340003660751290063756362778989012601576908519289584518470952522350214327183833514946441530250372924542823099555878617559640521733280886868339876039535395385820436043067304035003497378316509397206676176012220909690025007685459592627427563765240705836556022291384071308858069410059131517654062035054522363527050589778976612655963065623595349672597230546415638956158503821022176717125022543237457800426812818786350521201852653788114439436851480551841678554925566069286280884633540295661974021701681004126486975566826765436391188509650178854899796825797921011938105443903554113354769450416842196928168917999467151059429135312380516899063005983536418419318905237634905658151047495016742379325228739534353556497172712856428629379308054060899291815075144214889147284737551903243158072066020558478290623489354069843724135545404654060109329599162889002909317999463052239917887783102642716330188910956806230000440779979553792316581927986376853864742320978806943511725428788577243198518896309070913029430493196415202891486934639185969813792075347038650883692793171569976275728348018818600547978363409735170621572402902365281094151094551859894783437497039499295860088261607960873712444354519710299525985369815482740930527607096710882950246056510624509924008486094968558192045947130901560692765511820003388621155851987725626417831952855412158022583710757774084593176095506930083017873049084413118201899699210546869506458933133683275055869407904336079007902496445447348643199713207343489359977839603424833235959122205951717197303235450573531579069113353251498896006549629560931258602966241704102485603370331597300999777993343566179459252569996255709886388965592608597552354182922327912277935605601048265862705487035119854371707335258074744022715019671644572504168517138613225019987939394467405450321680209451441487312633093021348713081729300225231375609542802757484523763751314868736295706239697017130692993697339256237751140389202689951245833662172158529572187064528643180754137826109574474712934884194382168648459317437180674159909873973008461021788917010096690294086736892056797739174837095041631796579040149415367180801949080249039437736281987891049038125906097714838118860398433043041426099325703230903978607879229794049675781130581056794091555928127308780786098128566104155835182247825535373493436779245470520088175764080700595048637758691483428144023079478559064842020176634960213935519162195259097943302711248494695973056024666310917966357742405959434882171156509118416670225499702800773047212446202905971915000114867317807877393101362249170224159998745545935680063786063927203384294817212214517471678733966433836079056569848863070245986280496035763801860989793925965244617561853927881318702260035252718177695342946305154995317567246438004942578023409149322894412447343199383468129542351713658550237859574073493269819423549548080627982335542645164322821733651226687367411847746827602791939040907268422684795013510749193177388835776169966051915828231336314646817517579387881335670639025848605756543096065381323000148464836817616460552637003477675070367725634984048552163761274798185939558631875091421177840328590170313267699774553944109486628905225533546535890752559767136553197847834403169313780831905626690243539115692356638212928718004595064767434610436810709427660473552792945164982829995796613267252523160017767746203403017939558865436681097549828422933300767024475639896993256006458304220522854464401008849959697394762292095378165459030360177797811982279677487084179186253693812378253170396280124685984438125029452897242826909839155967695654010605010540266392278806767260823670151960027805757410816629410779829098070867251292827711048626189424584774408246358859265071808632284323457549760350865192218717877840328193742485413711949458693273410223159028638567034613545858465428331217846560703770951132083880420680415996609305607263517118484156893658038732499353076258582482927818112261729499826501880925388688267046361972525524405806247479198311820453813129025853852035742712777774070183088953065308454989001822090537829044836369174324196949579168802294941789262467156514446349345701603752602745506209316834699499135107780869636822163738555507009236787948334927114041003273376395903361116930873345039365064520315497020557640641067490807987239429943096517655301754490270959396896542036973370744270177464230525799638534302267414759765151442496461976494854965735406637247970220204884865160375008985398508557672265568762548981092818781771169684072306526269822067005133623533741189651510882780867773434435495509810514746301674376752421586950440533437626172364246916336190690981317197829249055142910667613293950570540622425038434656012633336075512821674515722288268493751598080735085111485001990995152182741142089984621036646825585343149513003927500995774876100567569432214325508094990960005648011714382085523689929351333906725067275458650637962404280663942339970467277295637199691218910857574729322632849098198231325289222403124680345453219725080387239508678118877659936148108104598545540607533741954230453732567079058107879808240630349427942970398376184763555004811672556910556496984114253057981581638566081153909802947736383571624077343071995364488286602344250225096288378520094558119991631715680974705624745796607129193200964494764905630714274269218905367932136627416643200589901346459249729218559805685279003146688839634087292876999463027329226469871211075173251578623265999054081608692750910400066045328915217150477402126985196523559025026600606072610845861920896363098376775219071867169322973695206090386221427433273234117481841730589793612221495254880736823178788841882786269528199271174478238363152389001725135044011665650604663393402961646981332830064113616409299071737524639394540152469847263568027913459693007167498061160378451033408680768155412636390580960256683832304554146687003425741071391176496244174334007370732298254969087986661083054868026341064189486366982723927201614511158323257831213994036287885450587116100380393744191554734559219145010999295840842163519066242133353393478549708461403823063516054016949810985796480498483165430904286202303754887579476562430294416646003022207588646881463598162465129569715166132048254311797067931458679697390238405511047361804967829687302179851894248605919669606561894715552309797908420581412692654019041925307731628196979613489617754929956487701672159587206326334593037562854412661514036135856071973910962366575872094585144830794578457050721934669626671006200171657270956679232146468568187912345351405395621705146404489546101309327602544458370485684494359118481036761183496852649803467208981086074951534559302581279790327068695818731408103250813932814860888082218063707005228385457022867330509065478850192605701763627909742704360556098612717680788605806914029340464268457507780287470792695748521466141888456836964471879935979471480815736292138460957493924045212509739364488517443517326787103585999589051844918841966766919043077487987827819500938106099493627408871062589154002299172786721225055596333541751573341821494566405245601708001025710639409313450549874059877487053629478970988353275506994031656691850458587878956613623931678646616391368053605956874914059446816582415189927491095591572587758124035510840043437780097197645957575989994474419573415310745736457179279147852841150752081266670728036809800185202984643954252697914574272332007389493793113971157733546663198823155477224030609187390258948603724247455315322030358284127917441106923760822208244422590223238947827220673278848207594711419763964767317054127286127706394257864828722585814620255270631198183207997238286692334733735597436186890197659835025368306364217935569628330594764308238804057699117707926765881805647449026057399553790405104669763604719701635954770869561613755045112111263042148235367663516635130210207943710038425981386735279907078462503702926849694720408212618761159077585184985301084302220489180273523680043145206576506424547436432666766567408236829807088513284748024107946563819384912335643799246080085003580632165633228009698070354440604944821421269394916704253837267191926531425033632749388962176533619957121362559438177901437163963473159995197841791347341414234642454248115605417160414604614245464037477043663987672923281259467096699491021669013597098761527728054294376601860165961358760806821357578500489847762564935248914752189760064650163114170055043391616165344729424705674586496883117642075520872029363912579438707437706853821682054927480722379912372107830859794380289548625600388095869791894616234958286298145992297338209301388319314288576084832354429707194117609929826316683562369234565811160091706237647541525658531170472036071471291542874502959168711582085330272185214138034264387889331265292083749174885713445721165357144075437852671539258316563851036486360036357140990484850057524351737870854360842317591182974170896964355699363369562750166810089075831634165476732653095811569303447420822036909581420112410254323699306282806844173035276960029328049569820019146315684168903493125591929414983717450924392979288749768123883715909709464538587757953243286948823674789516052451003385923112838732344430623895499068794449878769048850438417402518616883130246498621454007088132347136249157115129132654608807040414802001474531353702653051287925769374668319674120204787526113192938761955319420603474462463757536778716056238869482429298448268983538046951770720720453263570709182951304261748692123289695072403216356546028593749030194205902102062521219712093274331998504411734913887034894133912245102764352998996965529886467395046489238970480406244918999412463072968284804879610024852759695370217867718560619236951997374070439157780985734029122602748599346756395204991153867831492596212014251907725653949490335311212990310258323619287104318728789769436943525851138625629437493387510122455956763336163231014888293263807548086517024137705720761411071425936980843751025410217643005536142946254185820799942470833039293921980975369508040557420328962698825092355422528721773874615567687568293289947646005923670466120587031718397248752312359906970862835915434322320663387087237528820685121015707884188479439465510600182835083878292719187365215908506823643143648638997161274298884718269008216161518837460105521290061291222058064127296050536200235941672236996318764632433722077676183086553813440385777181376025704349194937462574557062350517000940316983473444548060573196520824977949124736437455792228270386725298574058053394099381813379955571058054392522654490453834141399666419783573029140954497883204240350806805509443727595697886527397027440241088826555680881399382382858410178469511643400114516933112396183526709793393145287599877902535627850509962267206057263762818983616587255071055469864313786499979707213209078358238899018944341732287154019933299018229465073101159512261427966420121779295833694457714571618945152818845591819938231054584665392168370834430065102304278042091184487895031466805466983822462017270101946079723777411309733330889852576842501035018273228479646634890542856286251211264728940094055962118655576355968081932363094655208966884850682083677546492459241956585823991570573207253866575143579124420869576386534158683301119462911022341875341507119572258547261750769287399360283601360659744540034137534223977469925565727918458146452477935783036819771705259019132500532762419615018974631610089894471978070859745336177408056833780606066819776731989151573126901776917110446656570359084457236117975783738597646422177128547606281976576262280103521344668919329746209150826536118962156763953381585170957966611745891474196229929353797250716613079741921910631315967521169978850888333376970341077152972847150400659815262437577411313506988150645485536516334892406449836584672913253539944178184926638584369482910631392592930267467901505314092563804143557772595703747721333136353445792637561992938794911494248817486350623441597102787750101796895855750590607858504541553168422922550569848955603890792432896843493747624323591495510841435447718200090200507253707763590586269334021749714528540324316251328220153631285174069548558794307207371918658576192847254953101030696374957266070810868813556130517237581085910149158444621520248617496268088213759460486689728200230334489016865400761442129568608293848011386222884646177541641955058806784404318087540915137767995686909128388530626324567649928150547227734035295431189953448838843339543177297998719916267223167201775086292206877332295711451178627631038549101030686735911782720292050736663703781494742487615601100495115186205743753171611635591444664764746644552556332339892794197899484503348080365090666625429897762730404027215021515972784480877739336895001407682537050947865855623863148951457996894249877779272572680328258438597565966317336312901910493153412911926908980960288779821487248636161628241380516798816324322629260946243375275818611504449801698745817184323043989755763794664559678836117377355030739901747566772774681626493862136507166995881228148530622829534733322845800039687931495379490381826840432327731496947061299258791133634034237493161688791855072713829402859280380942555173921580208220429751753352309882730973751890279973239473822347703939242059285424846545222903610576374589868498369309211293434598287898988536854741831776852205203934035076518653608354491401158908514371197508972614734898944006459191887855301663641823726278209283624445730078052661425310661439830352516189454334887533883055806675972761750005314130192949938456267872018894140604069751466797795098682954116755123452825561294950443538667845001929281382369584533523686038947577603116139391225482634773966223471811402521548611497433175434696103613138774100350469889477148546202940376244198920334833894459496075447518171150179261796099774430033248512360461565453621431306869535131273287158666127633101467537614499806090222288761200251799656918320399658479872335985944062646614452329880971316534879403614531323192955947346690451231756496932957780039900109352373416188968764405361371245474152011158675795326560896105643093749752079196786933884648640059125780979261703792746984704845525935573130540363950224347484561276819323471540713690625762514872202422208509273786605310414929868304558742072644561633185034365872760199187101396602443840917994172446283271736482829792970433588102826211132620948945811503209495825447982978817995615343754625412084177599869864228812162597629729239791651828995915401722942783158820107211995798787896997267911301001282501452665403187987428990319367533930835477143849170005954004703709468348426024449238713140769547381862884720273626218779402590950310733288939729599167701972280421179897941316109991220796357443678428955031800730803654115091063709196698582263860657389369288351029122663370790600192444443214636114059780537772984892610389927235189043760491990412763310286449743949432087175486855958892540184030522099156454848370368875676333598591771881632841873851719526697987602026020643810462297256504403135155209375123319119182778948459825459840457838271930476170880480729860973263643418299843809881344814404710865191557672191862536983105914692906169179322753484531761876468173298657169056349189396738120989960404251925029879518151324659513603703492930289676191042143291841850330070942647059910693666009444050789500930388908090591575314259030840951216745270593701758742676803801072386109071591983019767854145989953495199981803248731931768932659095423572351432687449152744354874437545967819126760259519498905049779368926998800695259144354272190038046815899805912156408106653545329217978954683700834123653545374354411931945289871797525161855882555791677102618685088977533317157540393931028388309349149822701086964585728135164707027909290378047581439952338767238960323148239839078526619404534390305241993640020299755214138634533801891973349437308738057552320803640636734281453552505235440618978499309646014934994820302668995673023927195823939593097692044635611553572696312226435618214894467315624413552414207137238378396901028032895041053420819008662110912945456582336594108550528764302748472468449473192289874165826027515160038886284602086010973955282930641733280452281537311312364002507080014885128742217938298545693905726926564674695057028181442750950010387314733344392094337956358653902583014236659427702302886292922062529539402184472474537552496280400996840825068608830979763208849466345020038906492569768477837349019980692697039054714169180531166748021106084353246568763439230761789815530269639851845606834066430899240830983868016769489321301700177502745369344376509796707826024989334171078467980291496703116604471896657986313535660647886107496036312860532340109602255536139706904070957170463797441513173242102152282146076096051862752788725693313196886619269374555026178166641080549021819765172698708104637565166929113864164057760528103402503705960457519822458085770676929346229153999315623503232459742006595612568458099080913759587210278531609454724450763280135622816075793979741296845598144036038933406243200225562264665067744424917283530928713641086130643629655396673033099963392972373811253698549525497495511403980094075771816864392858217360448485895375467392638758841116216636510884991710790010772273499126453116452156590361327917752387974705281461393351939481259690135418373142768582831796836782400735035407711460748280694184653763710330823182772460438108975927891194530175925935222695125762848152827512778858184699908449481887976238642851134817613838417749077699554796385304905736768652007763803381727470961171734825736710100054409963669485552631154494447430769187478822239801946078965638347844456731282612675153719498663211304939189711537553824785720583925793627316778156347687257250838306747874364346237964749297190397308182114035003050896672103315866525701999859722971501921503431058476164118013078256979876887510171940154599479663257920984152691068448580720962851560893971394806345904326555787293974108778997620771282042142464836976833613326237483936036883313945377871998407856573741283725051402270799258210383809095940121228916694011717266645273829766773550175098603767682440094819197587537419551050064746717422107021241704443018715566176174782686099141666583492376592346837175443595037512202991043993555921740382210720887093395909629606632499094739082123784491221749319190267889518723758851820773173143661367535311341747318141527912957165035913220290265985040179780854637249352579227422448959535556301509329262661478106416297268384703851102551337763958175959201340468535391845523812451864034654228312044197807888799564548955002192355871581390887985603283730024572132501687077121841135773715589930116216196245153788867161645082304911925591468042071087729564893121303215982361264436568181724655093521612145732442803148999327336844173513185064713050450307756767840591904238520546454815435351029874385691239180142532471555714834021793869122366242337835495106963108768170595816087833691339865884606083463286160335190230470630291091821196826694895897144089687057307038011014827051211900647089907896401858402662016187186940697823370096929707752736349798943778083767691761470474805670176280391022733386718666577882389713119609765750243425587991141950595287847775380129493404837052961812200937818014320600780923626460999899113523163688038652440353762456830551420542429885466807893518093940453670985939255901519369996267634701780743317432680737886469736625177853378354480709703367151176616147636785601378654447969545786284274133279847962497459063559829338386083825849996958142637935352611765878140999065641042267721623722438283070235198886643367044683970100489306167140201153828152172059421928944241573519457233579134834197622269165432858718373045173556803698662183786957203266136412144296675240710330335774160252806574552819505611017275338456051153369667556039125363387551540843096081210136149373986435834138680182183697590649380120017698875292569213045173546233145869738366403138697749327188607616392197788575584767014327666723270569109113015609430342036498493901931260683148180296184330053380642494664087775162335569144649358486393546677833381819103408248904785297751132265030725936449232555133949068477996824166563221181851006941273164572952540753633716819125712302383903618261462529580992965825157763219326241964189865209474982559943966654469392914250825198347986254025669408528265653339374051253061791377443128504042982772723850116442594052104544516429925966357820217846211562194500736526376464078258856277575184943435910245794704927106313660427768213398108887960110287510921589683487628335444098285131202562151187444135130513414995077063520746794706564606611472559313896332991000969488036449263154621403399700850713107728169670747268343053504902563711089567824913363090221952613039035042666076123357375297579511272980763151624520920034258543456306278051542546008359719172718252233406803147487347766426878945083833120893660736658980364662499668485706519860249453430679868967886262170745766026974230616315029689971074139250920631334397260976619756469760370529422079780766730171818229894298841305174626334072468759301503927261310310326315038406732894981302706064447222151010671684027735699479668185330404015111950940493387294130000094855584599764103623009074525179516376545912451109210884936756416482526550359553995034777452128286320213024161555916337803627584137179425431486735421344285068581130138070578365195648975177774702428453194348929904732142947068091270404434343718227249207556740941681608055652568982463489871869944664624251316764714353795738932839993276385712264700546076814927090205596134426297373993996977938529808084979845579357110094977646385367551593607871892141367319590351103603857919504984414422800394252085021830401510888082609858339496875989823979458782876749198013053593115071179639348044247340237181632116052974376088392915385346419060246611248503214478478470285185964740778156761459794983742688441395661355459025780429024729834459484125023624963699770299244217489057684892007851361218925231127011046179342634033707773162810122292555130463186608732260241149472888358095104128439282181141854559806899615810915496670538924051755146519052373182595849614243548400256976169017149514315769723441970074929480836043047453643841415196532555581878536546799082119667574011320920384222242060254064884479501336516870101282088181574522896340739397741344583848113703353759133549121640479526244300024933603259284511128283496030079010607104120943187402801824247339112517665092982780543425429431960374634834579277007134321491199142687486341177727081673349426063850484496825003773573869284487111233136129781866350134425676406066939529667574768807885492898085981452471129703965760287457090154263590808402377201192986596986319699588267890781335105628744462319919977884806320562064925976695518877751119334348396188298612306877699731108549323692815097076663432199999802786825579265600730872776842070242293848507320850225184587109750008338006860732613522924375727765391797550821098677681864845606505833059357550479990744546341747934073857036116798223246777037560110344518628039180112949717675812753396432998209760520423047977256528970230666806189872206921712888961853824519525302852992328591929366586773417080935121812154354906709717496969471994448552956640745774319511819968610878355148300168391843976468628207777458870216335998706704068456213716708194149360447723037921704166381661222187892016361767638250758195410239716213254204692216538768230120526213814258119283976528773456783695584470108978739948224033055337640676455803125085463049016442235490998203527666036440462422431554562757672559038653934890902674043628844906781616234513001022415939693832550891176081727020957778112062678538185849568650855944792383088614584611740046988854096265310992303034477071426687826653672146451825107177164718692964290301549296927580572240189663393898785344891455508352726957819803903229072896375037721257054685940238914080848399884091175383379327412839632193993460513673361855191526079071631284241102246671539179390920729537949609155235298748895724601667627368296380279590476326173196776934557066728272559530600045387845401633566084699256008794209177853908190776286782453665889515856605948897624559958151537601763365869883324420409752641201913003265272939810785033796589083034225961265385522791849549235678399252832647197515400828414490125976923088001026873176904607416488461234682594175151137508466827154259049201079953189208869954712463792001026802865859039882995137279440897453585077902908169600562849639543936229306463801257514215336032237478551832251187277686079473055553717621383231525502563049635539571136911225346131698917391880110395503086409620219935065431998237885895013179758988123476904640197175363049073246850299115276019405298682210525961797875758719046861003938519828238839317488380990401559051569335662446684875946675282825023579826128926268444963635780855089313276306590742200345783986024582525993005544953862253353470712655377527147683042194700485543566933171428983266304595391413543393437498497169972972562760902575214726444091146341264097327335562298516399440134679147201617266287093657309277488738850561048006504248625375130355978327913377067101366276738226225248807626545215635536002600523715358048618792404279483233902274995058515893396515225238435214818713509024376001303513869614493217314515877026865706521472149491486733105319344540241853702280358497611601386807317675758483558950649679964080485778630569170537749437424799064261857604980817329439933573952734758090964759135270545406100006476473419324904929661057804372895727034292631123218534083966352615807707944088266522364123576982403378944880886508683772431070638812874555830967609361203410733369764386777263332171875462287769132777639344507282586880442477027242409291292642013401588330019479757884762975628464647846254653397814340324877384970473144208470151023369898409493579775922086617512240815572850801261711987731308941759668162806319103417676213507271705760661695639755375172483544039105115790020785136653374937341659709644480118309106792198898372160298150358247747424749175948373851328031915655984257698753318593478097581774337883132259300324782251356074150845812992600875293291986099306871360339769060492803717439479987325956848663319593713050763416067002677402790145035384975142040150306302057736183196011589090623046706947256707644955483447457264443382363666821229692450259329905358183718799760994966331681806310729772994663476884266076989065206264152358839982328826357426058355684083073764630696193948879238508529267908298187576594384260575861953721866994966330780120489845093083062899081432150559156471554913410153148210798074689483038761649564968412903840332901879561596839335067274090892542747601607512216676155422559455049968508205403590997292002170005914120778479856579433164594659097331151727601582773672689823734969821439508318978060315805474185740878871758395841922799155274648269303576826985370389491644581524486824738331672389842262300962878434287024656758371925638876533840199032126105456178900095379044445965278487418419883329188991043795567449873497817714286483437585019734734227132755801368497462261305058109104228060296379079112541925555676881563553476002785533005338780255288240944308907122206154050854007417350502763692796563620669168268815050084393305395543571959746931387531757727997234762323003659927819003274889384781690851999087284301390007644202604199532306161808047891238146269858202942842918669631545278574777716632816202531379916499667662051090926593497289709237776613067552117546092753841622051560885446381008025201252154027417844037245348453937336791565724838974842457015106764283589105815337691310488679768601448295600085663045298524154063380709357693272119252304978679330585278467136986127926109222343147490444076905221763233893672880683766880831690919059139348348546795138995340333849025563387591060024066063043478350103741785963892967087397789872583163417622743443544689542768977744234087311887541633748540068427660604960649118640967863821173501071684246376709565317416660785109802444348757210937600917300724741210064052331537450741926586409239366268477688021759692834752071906538220467912011271564429506745867197828769445372347806162438578162758855124868349129820617257012391633208680308914395712242153876618489582988702231337561328995348059415811745361089282318879614406760083227838498245631593005868414836933469682161671023897973514724051940414354210899698674906777688844356329827737968473014693821698523590181538037961157918866445895759978880813721337208704814043965750899451552656828809031150811775498222439553705530823565650501261811249049338133776755785964592490338631376230067223640677548164716146078386641384110350127799247692987354063027550990377574081110480184500123953342913758814973175513036087584124922262671037068348725949738852699451492232886453950246428427665057205561173342129900629796051449671787909155434207173985987652389457724363639435903507860165245187045762267330935591553712787162427660213398479322251739102087271209499356607925188446704516774066096679055252551289263479312755458302883945697350880603774108687595991670008286669299963639439715110167573419566460683417666779820725335286654808098124550813105251260040004716230558945071276195963421826296303794254700384540889332308403834841682785362088073448192936881557021767992495313563343504633739882280017480810744755357735105702393864600100038825328158821602726899751752322902203613792955641885405931443284230008607990452641449498455282130975404870087956392644431556861409304577743751727343205640165237929019877011632849786170299752465069077092037751553666558416913807265534615650120616418989747925083528461795818670337501219771185185407112308452742898565999191601772283558400583982361727097710396538255908990275632726668495601113462995852144017599935249058618578377083618337562250966112778056644726140129793651699680461259947138652563437357452053235909687571244415413027392378535441789480032448798276180956423181663576832676186036388406888149800531700074640194115141733746264300952703152406448567054557273855343037339410908103928001571568989149740247694384380719877787048758578794495092793522372798503470382074008171500880704584457754101790028982955214081684057933936019241930069992249779870791968614843198499914685504799493451435781551186654734403113528432910351287421528626841966913132959544126388616720848906826448304309770329060402546726939950388666893063539360658753857964210410896572448161646041923469054796296245885357848280879369224561151696239234751067447043573050828308273402950254714379827803372562978635677947816425320278342252793465509117944028382943804092131257676617623478925121556977684340374511711962575862842323817244870612871346411130245794458086408507057300697909384085907120062774260802463790533480343833388489945161039025655504039069233424289615664771618328047988566610640492502495518633165943204039737269829198804240781627216698251120769819411766560126906038206596155789871822915422619046031753051943785394701667375953002839511667059972984163042212585670049083503907259686917857182504234404048315697329833764754149978801369874184998263814780294634675017022042233692209413465263688563922873820273463962057000337689011365823181589624747302061759552558581894341808703202298183025919952260097010235708500335423553045745241745504399662122217964932626385427550581564416746261041674461554475639832408002546192424552100984147705465338358760249969835105800879727689956615140700948444271974269509285413115700449401845785726602690380603244095164492899302468020886201853901828730921331927885380192487681499902072485288953529450324178930569059924913104958754636575140567498506585114037164331151102241905103651765987686757603390839126787635325429968196195125401753876400225376079406241212638294170274133646680528261572139112150110042547613492496830471983388505946787129607587853542654116763638997429678520497033248814806712337496296882934083705027190634572970771902322124628342026116259840713445109306589122057296615597518826645786910750715715771438788646060267486181649066234375294494132942001860062302685660008798067632804432831457764939992454811451655754699444200550796073199231189456657356655088362821902121537850969339991013250691084172352566632110715298418631556941984911862441125494495381840136503447092044746641649472608470458363847618939059901799115731224037813748496050099348819796370992074462129716889014687953930101248796697897626027249237212959472021555430988855382724091359185013399236680315636509830452620791434966160528206201616797998472185863308356548325961590265718598611729629624443482234872579534467705126478585373294158705710788904195845660210029650437445331291340536691627433481274674476523407538991009938643978332832970177879909294961574029096287240583400252729154894530049210699338308264079247249062036625721010730442760717030220770632348074225867871925177000945909335226744323905443820110743424857332746815724438924439165745016868716720567179775841567721704905314057375213149288352144116267524021197886576291464872754170086125347061780841955633804154378920027503569002366583157312388919751615324809793501971519230313780159444613093536572992282568493132934893496675330408317955916111629908317435730393900281928412766439529438791287566874125593064384202542616995968931667388774271107634303058363812304874594373141779989674542217466985772134567922000042250902591475487444390139305734917487273551257264807865991589136243812540771423741701627374323336636528796146327265328946715836611252152990714819910210142721335723850965913685019486218079782468554887165520354571126567812928867375576918469501614847912104009099552763828958933211901197311072766557097307865819226319543184983444275592695216772227526976638131627724582030774287996933377703974848373548662645634920563158914845962641949298088714043874111149203468278928671175937672246447259136637840175840069480602207736158301181121158623299472299286688983141915447350191741932642306090039354974916999552635173343757936769795468372866735526193382413994397298526338324830961645273900737745493946176849024258661305028527479919760811661043204133566234650505598317210061647194384963324589030636894919651234707996888881785676573574929017595091918577358385140945591742034126696783040055726517278524014904393312480567086621625224810180524907261212307964481730145374487232736532910558383381450421756436354595473513229709298813875811724055007340171266932019014086024524832352602281991309178193539082159065694789605243891571625347580087909737610593441903629273911815442261657316038437229136420583304506129333532856199248527347545819569181173511840905796224335152337111396780944230052668626587400113307735265036438076802004089633885113499767642509390274369105825698166844084803301706170521289915613201893061941301612234274182425582690346125405839471651888555596719997171311206520010818722095884775624653458581609931072046232241580427087347418730334511051386418021214516780738154059349043951504029424605129151715836082954309697411164033482605042801184613607945170991448476925799082120094284925710256625933817429242066792922862767014481893713472727531914292086826843499739485964712253794905731358118631968525975134577169105124154013403648701342536015479796606622200568357947631301576937832472552544654095197286332633079455709940233375242138294368115767947578099936742823218172298144399646684457588228449900994776072901700776909185239580410566884027100890326487846908214381895449852629652626533301860810185628663716938500898735342669130148311419933013835034469681512099080497563892101020758922306369399004730037884189321979607310511245349343277561568965952213031127294716576895745880482439623299959854319301945961973351698478936840095169719165946252750080160340775525591913111970673487441712430422001543857753216524724202929940267622321182179973466299378775877196347561663684141516274574021192236382841751897483167797988736563812561115827233116460126936337412867098800916287090420746679539873197805032009600603026562378597875958740171499681033843616609174862982923201239403021537475016677565036758686455278845856446652260428715319937032890532483864656235020385079793936245535699917691652096088714906324798233332912346649086996767824700379998816596744916236644759051037153037467546790546574381591057779539685707737720872962341777420477307796581644968856114285711040697138722053294410967454553314876056125327632649768446691579064306004183682559982813563988396905201600045762153266973375944555551943087795470388234257659243150760256105426659442324697464143774547324159417008852585145007933659223885741481564954699409755654865502629982899614090679974134045062455418072240405498652675462559602805101355379363304669414031695905712563645842839161924441108119385710463157783929169584097488731783826577439676654125927513178704619937838489936181308633120232869508919131054427355536275395519236975070911873327180370685598567765892161717826985625546988431256507826008340566034678363202668329651359703496878546384574552839878806436887339726734642320667289205927658033130577920570679635330983515508414890527547579128041992456457628071385494593956346763829568602884775717917109191386653003925699918426707911025853280512732919998432295345716067098312373614105582683860178624258267702371898844774049172906008754233338702685272578176457683137955224399133332180441321183718939885680694806970571832401409828080458886863288469295877547360540723290528133222117245589210090849216878387738714933863325713618038363186712414985017297553701877279143190939131656064306687973333383710215476689801956884310632568133922620039376169914519234528800270085612613539472960244506521996150333259383974213778526257068517784099249211524722288348497091744206123983108778566025716097177662922184211403947373867612933392368494110884084629219531341222008057985814287233165595936329891596399758676152208545350748762363635002775831630940837733181772141769840039159176459234298998698116920400775222236707521997221204355995894809438175249548438106555635663128437475155251582123895574958261461862047953859328681296876404349666779494736941327463994620505527822659839171184047576846272717458436192071134521331645173522684913583456168454178432344660675414366448546259104717058055181626237434559226870874751943744623002799943258645033343818338292283096854032511376681352646682824235134124533231543552874086970210003209109477456307212612184458040567799680672830270599971847864852557137710600264757275946420546754461588402819123298938156217322384538575385046411140286013258402756027724936274853192003907165969986675901206115783105410391523220456046704141240982171123458871378178296442255985745960608348358460345179013036580514658325507691255671921892190855555712552018947264202325747274863866021336508441390062134407253722444786471178071915540740125196691360576317668397944511820521997852415920626921661494635665185201441623380331676207886377358999592445445385214552865771954987292265334256361834801714502139508839638986099596177759939475401533644693471407909498963118976884746098917723721201183675748746389206031684402668495737807018446070987602557540191286202996193543742517440260429248382663599844378378968758277911380429308716720360140514217535624128816226584497710479499501548415949775641427733959073038465118475630854315719423875751167182263652270903904467094891162940577591284489987802996182481873348985627143197097811267619214767718676381151731731615433097356174450618197958882359032379861670468771618967692509594479556847239813571655738562125944640436617022945400628706286790067541288106641202113554868128420779744890037709636820735226831724402359954344327057521356523127071315994158765715054010243226490022030291682520875354490750445342459158526769248845827154868283022625665408276065184974538445401662240219393527211525381747339106886809408171658748671057308131283898821249202327723143257406012530047610166679673184544576034467162282822421112527224144274147456882694688188546267158207515687666492121011941324845707914603577126574658228439890012506688955182648099598382295473824462151457295729522490896833595089301657987272383550574434230863083460886681665681696402762889096397229374334260416236173743200261300634835012420708876240960951699540662177601371147512843506051654288777910324396130635510962092577868147640001535256507956079826528106929816560126170596997840596721954021606777440226947652597989807079768081446394799994827488180345881973731957242192880604323213121387252858938453585810610922535491073322376783478612833123158851914266553377771485955044318672743723864471870700524947652119096280526222160101217506468253993430722970637377748582437637827822641299537577365432105678639918793002802310227431724687397512704645204223667887526978242883606292259586280269352321773808114971591148259589492071689886702379167013625218003845020157807750761491253211768727281275798027756674058831199055067993158486145853467317338582544546358937817460841465777909687785165931355681090189656025882314314357756520989963879937012535732440130494955254175754244990673784756467743441327036628335492629428540174580189283823492480533462521578644733443922607510880163125197495239329074769317220293690194717259884916947309510061879404935928830908856707911953938158495768094688165257048313221231168198386178305108654937859775950840850405949718956303434227953955554216342955787396530149069560544027393364450808391990429874953432647608789136142602814769244009990069548260263058475682665116191116282439601691495133641067407836436675194875407821481887659264342680000137951137110675702871936827196624259279721169921533036266357300743401778789246886960226410077304805555069235630639722633222748914549065385424997024734033864831972531362137224396780132887329198462427301877377246520509689618374432850122293372514038809573601126544134358852979864991662265075085547147398229480216099585272722465473284976532784524787088717724795911043872225182521412179169152654725709423624896533716337594231406630180619005195094737807733300522765230015261112877591350755028989815844294940025271941868928572447990116095262128681932266643694620672518672800541919381361884030391197747124375614139469609205626303482768759738398074145709393915431725967454243104764515692901849242022770004949578819730529837949139309860079881881785505427721588182249619296079504705571452797143247071916567913193612400200824100929278753712325334574288586766993448201016672341840233044155137536624254590073919041131881781883021566905636137679381581711473993452168565250633642884724919876298821228318420786479202062989404795120737111273090867770915379367927953163091250734168402120569285595746712815206894640708191880657123521758633424934884315331465715642966220131997734748680450451437841936783607492871984808326697441073410992643777933687178663440291219332671916975187655499400177047416727836233435618116196317368313461545708716488552883453158212045200274575345122661526323781351410754827673646074502066305362561707517509066291718201300838125233040407529739991893727578391310292445957884734822547235469880503501341469927301481392279249355958115394035283174068735426762802318873484858340129991197955043787272664160909687047242605075952350500373469592349644915331969023960654192961365389870761573841133629145805489894225142865327213539220374407463153979163868280368002122916970210895094833695228984649362406135038158145717295089699980849751360429609478964066587744684874227304173926969063892008608115105404450543251034534355231715201184627391551385668596837601979190202209524886779789727696270473957908382334408303872125415196997551232975747863986101168040801497446185919313992787683386877042530829329794077246484177256270615493920941538297451054762320708076547025305085080624658462210496602264286955538377992176096481571624930928913055092397263181837138686682907080878153088858412906770297290574747746427249301879084942690513346402157793592614581051529663243277992431122158345529521979035574858930712263709569037064046762093270723351061622007749665523788220740269975859390543309125213686248682603314867183055355422629171779651431801442356426188172621168523696122455805938915725703141501850299657098478355555285631270202266706972583568856048097148941767757394833947181187302978565597444552028664040228219163607680901356975374939841875859659101047127823132576984421934208000528702742547572447285595392110391992848138112623558009406818323801766876127209538237044301584767998090997391946224343987015880515854061465067048344607294394966869066535132944475605858862250170810887074597184227141261938240505719742666000176699826984001767531306607815144156724385210629963986819920183482642418330152229345994373522093433324210035757162765539943650641223160044755045099062995924057167884604220230522907727653877001237560224802868941615239672726152990386688826988977016408386976370082433440557096956493320012418077291359997878120990868468078521880356697561619211326207811145746479211736156321372042046617918888404673065311538736752170806134535826761399195384766076160548807072868626199005986469850725637157402407987339028626746203973182859604780868292346826016864454630865085132660847667609523977511909698453156173590558106932759290500425472558383391581628341545271491289868698890377554861310484106626563700427207630020999123413347577046358412778441255465761164627394667340063935043597574546476722626881968139481633638271694080346349465057275586980225802396013319206687525162429256975324273786485390530875232354970983801042145105923476916247003410547187444037425102333922591556916362499094633648238161181702350654367520270710776192873777541579790608197535937699380341477425816138577102855601647169549351969304185597338655964906920111090458528713027067392419462649026961807465278303330360270543630992955601431988590300917863973304936640876100288257039955332292658898250095700161507602449000524754067209819245041764811158541860154265220787472012719777055704825074892622311220790442930187631454288328143183551744934894899848281623389879268064950391856534249103415514824823011067890746032598353700458336263899344631946621031076349021860658770060853751980484068438613574966698877951110256197634199380032353751590114551784400391673880552544429065630998737317800347897437504080693420019995035172123196382228122183581036424324916819121730257026291251428423228464433418656671928671014547115402571053625805023703437023816379545929484057448255766611792154576507314029791539795459273171121852708210981071697782592635471627425904622162192614663896844937423624183839947376771486522955498286062048635727550751749283531374917705824846858040022000188252279250583599513146581435950417655144294495156377565963977626191573517103162137460579132044749459213489323530742044445299330677152457524176946554410132284101312020207500052546472496993597652969742514517729825174887089536329761661649061195165863033009788272295605824436556717918962710045734858361841098417787144206836156554525706703517957506430131755346418543349835489387718288005321716495933452650493033103707875349744267915731747860688667580829808272058570180589119196089244771124762648015681169586782253659871177851077648448874616078844260435548224398008069188465583116220881434096687576249146233845452419044067930578138043681499992539562712266024403539000200019043931191380842269546324817564753004102592199544327448845592167416128915865758318243380020086466847657749761912110227576788564451632397307696064173388001336796123672668141061738065726319808457745439225408994731291349081512623267505504132095207199363466720111866616549659059341092568196964800420741146647712391912628095989480353832681584710914854250077537640834121945196191936237700313923022657546986303726066988368980000489582880945762398532672106175398294289421051852066939131654760558199447490464608386351336046036138773424787772250953825802374660520904106062643793155488150013530555964208758610317815239490072307230432141567276443463628675255469797587025592871181419146092799758509812634092180801060260673940460924955945208867340351671482782303842663872448031142826440301976962451190374729655073449975355476175821739485389170821416213124170615040256407182427286300285953466890457764582975810872568494175236629682488770189548009238768744450340752531918674802544263259872442324865150875090835271860775908312393714425297648387945416450650443385376002370836669969814306265748806884013760719710408112349334308263282457758155696065845364814595318756356337515165870045090632874795882471661622123578756338260957324203495502847795317023921625882836778326559277046968535207849839315650638239165989180806361868341986510146603453894960204728695366115805321127271746800454570942855209772774091517719914190655612160861132947888318580552482297453955931176562385357261584340259847045125411822043628491467155554587222337606182021118168139941356716322461223586801662999875169754483346438515234232014145983269430110438663667080891542265381509808760561599535929863397895613906526805668472270725219490537993417970603909748054567967242858159359094914694791615409169592165428684112743797883472329589787025178180779588720398523052641742748967153021757807041161526444904782410812896530536265948766480949774733180139087343529548411792593466164191986732657734746782042929660524481726308366532254873364299759421189577299867476693421527618634766200403945827639465008271029181939733746687412465358530650784529948742878653619288206958249127147926769179709733508648146856639549969424091474823742963615123567301389809477007020117514643077860868842693255281809455053714874882091332712859669007066189985668236711190256578714774995260308543651500929981573739139738275629131522444952713271687032222796486373061966193396170761669857760866586292886835736225664580923830018929390620631030719175256850776514229394268580735432989148154404464901048965576330111373126283538537579664935394166822089602307267493634716908503049382772618798888586285141837608845677203570184831280002294197577975625969264751956032312433568498628388391994992304854008179589245776961332654490234666489676535815058105275212280819684440250364385813466638606905759257116408429707761962569491809645394523611031434949541899273611821523477032730494244493923580404567728162118089965178980974498600376878158330497182969089778841428450929486054373355286499870583945547899381354577975407598557863319380176092196990793346819091809952301759045680995229687798537895489573394580934027349811757030284280630367783417793729635086413241560766580718363526760464999028734863219618219566443657676338011962640711116882947516319670230447807854302475079541299289021199129460818212366876903413405385509752287442767284781177050527408640824597026078594648153300533399561359582399321045708813846892734939741521884054344121154723840477095767802932581446861293070029454745109659249109407947719512532849960277459308380341739700329101761053900346391965044622252975439698810039302559376894784382936272349019315913617716047227233208305051557199639823154677876998009393647919453902777301534111203983671257304893347431539455600702209651191948190381659324520805531054380373175570889384554633270910893697297949039380188702434709487608471265944809205194460979470525123191146402242118575651821221084032879299921557472986443178746031652108817307294022492543222001754454112453981909033525477763987692241270616194735315137685035409019332057434315808064114885457421009533991791563578847902955386687794305446612238736530879744277850168946218307167176991620038269992490084967173737952728820918647400361741905325333262497258607899445753310193292573716441668529540167612849950255027560971912007502024575780433381006330947923479717332022001145535966875044842554214305968631804801954494535795202000260221686266218736246043584409920428165312216903711191689932517570628190161176170947332495448351439416743552712798587379342715569535698718440385105051997161511642176503299759538554087077334424742851743161460092352483003524363104545149695685536463158507118518356049377850307675889899658903799302242642023985534500529093021455355225691249634048683695276069834917330552499738257224719473837509482791113979645109864474213975107309138329969298239853960098037336553918656183427144022905045141821402463577684526319343435741714128787304289138925596818350445796184081060083147917510325762713047772623674876608459561619828534596428547142906928229822882515109515118846828569678263511531708389103228829246055202007162856130538046730931646623476024172560660674672099773245687021708751505213099547994091479018948472173657269075340267439639842990393097599815287459958275750735590643656461889558327782412552280356882075808735619417442221587310407534894622468036782675143947816122416430957773589133694134195598084108627828440202375907657840734174494171622039734491427087871319864305444501362132947993076786579509482343183155805345063208554142063968513347998536087039553044953910208099054158649957758837793513012834100081810187492123011474068290639133228597112966816317236017416448848731695542145882817364052263584820996319870784278056321060297962361036553283839484196882598237140223887558595800043521889580731643891288760607286051620605594555830319861059928262946937967590154493225926285493053342302779625042235463821605631573376620070193186607022036357943494825944423149414897795467502071116340548735242547396590804503592116255724358302622245369211704907979247023452417257291442254306662060575175952085973052313930406372691065606989342886898538158830164741406016509552695613712078145446719369360674349312361117293303122441482431646829641645012668702886696028492791342714656688023051193094387954025200587587545029627349311946059386649275646659512058549635153703787327013869911441804046460016614035657804824946851558378904901998424976013529388558762244326598305911066851330232684449790568225550835815479894145073680671169101533845464715673753756262831116352401517982867979370540842040281905332621922528478231774349620661380099268077706212133178643112955054824709390854400388901360432497247907784913338802231050026110884797019490265433391522983805160215907859522930186113949245147646357213126253406355269608577295967524530224163945920745768216959433779808676580842403206918467902094665565271139247859744259500639219875760226265885683260485837199713776765111228380189029895589886076446919339491885328797552908296170895759921297897977549591928611759948909806272036722343968961528874223119171752543363053042057333351596356260643443623498834891232265316660210147340215811292141747827721110766697296399055069714900395015549249061124175408050779641118776382760530482543754063492134153149389466617670773591738216574694503552651159103566858778953947892127089023432291034428094596416416110917977951672598701782432645666921049404585136809811084592860650971284702981634196133057848171174585683621985753933030896533580997262359801297904367845902323061984380654717058694760742246949029153629873879564612677957232012140509347133289614097217887937515693182290308666845693361286534692201119268243537414919540748448295694096877060747665080846839878621916361443874912378029144922645672931768536352348531644210396705515803062638469466843864953222572293207861472359989440302590549384669563063730487545769434738940213973308729633546419470455264195378953697922642718421923961405313545963059117429637079093165894712567823353129183671481936149310768459307701351849974509070161632313577088939299479289250488430153674838132846221725637266434550792491596699225966513403187778902065648261882833908800012758988719658793633474800577562513785921363918029630158742861093784436279482752108394071108185360324155815189129196036867674296172511471085018636060208929363355926535153712801605354789584435318878670428018633965081219714445029199827612463031335549475837988220208147015313813014481869205620706616535667819096922106473700051891884600922471180064810845709300082567402071873901466108937111490104763042667137809072222463365974541223848105932685816912553327460378858534333212809878332290111344503490750590445359906342581910375828916807401198244978980243063257041310773865557882716688590397560606614790764963163707570775698010581626208650031429119839309713201159886681641567971489188842109802975223681764599924184868509825430105125437127476476595399548240565940988461373967619459507733586497701095863193617494285772807456655949070475313363768265710015110266066184963972458262081601541082954516223425070772865444380132202292453308884725449308571088600731381065284720041987283947646578495786996414432914776567713519589940086464001356126269627311256358183251668596475638007307595023933553581637133063329316179825837862850588710836849105410141348869628286266491295017282731643648864803815602678268925726296335790906379312223110294983512639006422501674767859498575255989183244204286924042298638919927160632353790003509680061148721755861559328157415413664702280179083675823396305567462308130539908183123283982005773840023142195894233951116069404637137171093544528661482334016495816327150940184444317952642299341657908963566047983215966856992241390105793604274606875439999939639204690197785248445855942342152522694293226371171381138485771542905570670448735369180091670284537275948907763972697765680039062021520542298812260415123266993984252990577718045038041537441530691353140949237446467073350288061708219475953815982116544981876149071115461689991614401396122780070632498827090381253137215691944834804385849907173536362869051651093058721539517343624119046647985670023262544809037004605667203422511596681341478575331286844558719171426361474791069243531283328351219662246302881528846913772858114237142809665685852320562818121405895537037252546349328701705081872757582110326461122266251464744845393489223883394502007496940867738895753645798606232876413436498314752098211093992358540971021839096869654067451612729569199382226382574447975928794367111391275153285336937080905093006475154918764214693861916482650189852849309154502042771069815951714324860336727407878447004369373296806702487691043764141131188682593829939864325489161394500330910147699075948748018376382477878076686227214302847285461674193892520845066710434256905051132084751119053930147076503810374072707739471843000166194196410159828593502377701433853936229089603590658187220981888048119584501283521373014260267456079352688071392059789036279161819206863064093062797498271187399974251933576279284057805543265119197389864829775154162915099950728512685122135765399283678716152060915648563535468690907572901829376382739678958108497235269261626075916504993563379241082390148344959685458224917164524578603244950457298023086663508260525196374574303309458456374070771637634832619008348254491638205299191287517247056610646485566784117835032942350567545287084892584594971204711890940577479150433567023724776466701655046718365910769623347452861755318781283574072319617348679796577986833471619242348134389626708370622509040345187824416843918080389967813032143669465136994748189044804795791405798274306989796712754401534975140555870247735308424787530792415605900450262511274448292747599583698283687775678291578317202488432369696093856449347283127320798536054335071518818674279352431294805576147187390261608612551548440575846114942395051156852001357271962070574332273475879290709948444418304383173254026755865904093814186502829848343648485185415763160752254264372211766241117856785282741116460607944196669571383263653796206709223806131450644718407086836271113403820428952008932442629968617266842580877403297321755908030813839865186355647390013893432048894179373295109805889018751992484387542238690457096456299170598186867430430021660819436306575673233344684677129598808056433443089066484248168067805331813373727440992745452756059521286736736932097382336203828545666227183177811901221808911674741468704959119977293449815488252073114205457566849314136498729229876088580776263261772035721054750316243512692624454916040621214329892440662815069565794063457730999393658948708136977540402491847960238179631152201974547139581102698179002620711162426713153408670235318475266783856390381887935066380482904721047570340117110366243885229575792217312725615130640356582008100187901002351213751497722319055626355538583553872103605096519494048496916988196205266718164638689821002586474916365032341147511537308381653598245419716600992080632957719593846719400046792504322224520590096890341080740800038298079538329924505113940105372440363399959356319506230335080998240857333579554662911277931479732143024589039808991201700431020241393430446536743140592462781599137473473156682028640523767356595663700045531604292590009147812933441571411925457527191651970914209354654555378067349678524108315684473136315457450991947816473817851716882183555356140102268131951983380257283068594007660842231281622729178262139161783855198826327447940862808149075295662211279454667598707070925150604864438569956354329969417524176502892673226183337793960036654138142019778168304416387855627314171718372975425727723048333373086743090718629586924605994214026992821402871336348318290463267829671119379163221489643279603269459951325783296302731291397820158802077115773958781109639097711861162757561238840042755746674689682240846058080884707803607977326514485155629981187414548214875084797314115824573577707805192097458247026063892549373057403128342140638405369285903187471664393276717139828975590613898828119730706832995477990316477174058791999356494317641506006480334605898907932284277670073083206916545974244187759275689189612305998043841079776037544898496218959396373249804666275191563510520507136773856260141973392454037742208008264387653827012143120006509572444257991173576168845114599374847753055977468187668503955474622963857159780968470150876746442280642076965469688337849242634282493796414240825850046977448115661633172561354455344798663315983584334060902205931082545446883168130116850140048191486384103402586787279746238606010347418188820170860822166483587738662812993523518991098230127528355434807453663040310655660817541125026046415340596492608142592687266638133835450329821717219571818064867277075857306026725652004443564743720491284284125577671980046898527338472242300641078818946256833636787261105414503790731196398194667219228710164578215519949723079725475594544936787216088109353118114133122236721564157764111947585810970635392680076965030731159630250571140428134011722144184293301604025852750736445885874449041170792505697628981414494356530200359436396821139381433945358989735169374475455155673977686212183552468043430914917340029914953273980144637778921909224385643961818007850637154394721473340104981645923640229088512212504482132417234009120551670939566161212308897433389669740019129526632844859264688000865587492921550643061942538772385922171231383965281727431550583394140351140511589874968127355695731473922676191455427777090268615533071211135707954804165875332322415259354025311402345646908390380614081792196408206452611748416704193503269602162139396950603706140438003888884502784940768370422168469153960226362832420094868571190674495557034441281248489910841234061274784366547689638750774255654178475979287032010562761117789621601327630109413358198422844484551920311656900191410012142539024360620357952903906841003953635905522771116568310192637151728887779048102995778709464197263664005500708745905808253238214256223752079965663364398834757904135662957717641360840718693551128283742058945487933633105190584874822224841996739790985002535938533404683356305990198922552892889707001392169850876570098029042772939981939584973306777523041088848238503812042849647157814254434666080986862049430877126621181444708946823856373741835108362541730801857921161410609069533565517510406941066597236274168177227062524791880193813953183253892073310806357081740053794495555419001608709990436730030254180429623478124888135293353044230892884259013405039091917678388917635117735537862860310614356944652287146811187707907510439797405814026536603414548204067175595711774525297165312452248786948816072648124504527527954040962137966155047624946121104623871917096277742888400729192015825400621055296590308879608303349891209397573743244091674095591951195330643769603947775694688850552118846658280941158376308808934873100408332074521097497458631384336337776742031199906145674509335979620952752462554463738826675279578135421712051422966106694639299192958788642845167352020910657464568271584412998042371963557904278322376739044263397104879153062377738278560276935074613064558875473121752940141698472531478958789284407502174069899386313551765737086137072784836243748714593928836368304633290918387528825294552496511987043696984620369970608887169264889192197653627674367782261905933910338857293386373358464364171529986444505887996227354422734327999968843027947985312200614163048373928130250234631714024450993206140565684647155403061009308254364406794418538943791680538528557654137077825385228846698065214198525312132729503232957210666428989063310758929371061692863060485065311110447310545141280046203317347866148305163422998060938036027281696276295774027973257032503926995572658438513004211506333733403381254589055111566214930636420334702473784637294044492940379461208225710044966111135415581454985398830123502235109415625348190578774575956684166258009269295657056671705945534015924280998359344242485905394394498741911995062609308509498533016389548297100148087590339610703317974726219093457652351044749860523962279215273827897744294920517633781485989355970675142512553584288567491695197265597162198890149005849379994427839939515090047357412017042897397732659646640420604475713213455482815978400983738462240116438061268885839088338244709902224096249494544957820645273101588807337315462077437460200188235887544768840061991331892113245402250354249651632189822316613060991756013456822425236169253688736861201297647284438132803689058801509327661435160395518095200567550048546672450874841001278974832567391040184601925599563173074021073265148314751357778912978632310027457009438719380121644098982900145191479735392908089230963494341543721921215095987738848249725201305370573312593943682624092402144520553636920307705971180103725442949259334197257993660090535638305864384957440980178472971685805177572278324138447659777637398353045909126071886587507008001660982965806266409904304657549693712994506745339381011653664693019563437303414813508208690665399956477478249594730445760813154665344477312550356081259078101235153165746512331209280898889984808253952843912560719096370607898561575658211166722163746065784161185408364393671041775363150514449197921306368210947918064900118888119022304538577285216261075020919835982657907468824929927957375130842870715691178273251121710531977151451835969387547001211759249138103261677502314090306739688991357501163155735411362564688041168671509681247647450162648178890862336584335896333300672543760745192302402439249157142839687685906468338233329330072610024849549049586505740211027009305862397808186201452021823320219078569445637539447866167292902045702641662347530478665573150171337442015041069619247480368760884903451278225720350881507247882348584583062371640254907738676495415099152868198485698557464512036335374545989501189138206872913524736860204200733828920692549598640695653015930544414476118532215097467214879551683581175490032804295053554935712165408652665264817011872740109686487525596981704649470119409196631120085050857593363141290522371801321428322878698833988006345449829633832643415439262953294567825008866722421191207843592753570159047346164434088842519477866716321825177049864227458600719701924564322065805696687966192809088496994708183497996128538778183929936134269819590145742826801515004562319846128920780155679608209061149838472157879757246645848940415208807328482915160161753865191724886789819152645781362922424145638920708163395114360470479567618922275798432593540590857506016247564331550953176591807106510140074330351198680730097431215456693379427066005676618255157884342849159723992156312581594321952336399091519510210876208330350849242297873221721655130908824631949316859232093281565091340280216068951515984777868640750594186266399175378870482556903663741221232959666164404231526443865687480164900901411915334188807458087063670629787470244576709039871275750960247870667553946970772566175126368896303911138385639393569670514830334209198840144964663169372720061667569127676538462135850605193572968523476463428098596088536079928976982541642875316101832778578329351894945613860643062728709039159867444496920400851277807279913473012697578547168116589110774780006650726696773065341038720391505837049226776475552283383672081254415403620051931531001757495531152177177003450431129315426065818670062689090313082548396827052811699724995552956909328986663580624551287413928129528799905422669059131972490323618361151237486352604340537133097752129463426436025028590458008905919047896518610499049904590723734139403012162012255509802518064624795551471478686115938359306190880364850188974999205228712208389239786244933553459703687961747875381233926058442423278052832201764507043127906738065634380925422133095181857193993554673971928202960068742052797846363206021091821974937183365836590766484849241917753334984329713764905679837752712693104655508823463461796364945548233159140913364543577419360816132090258799980446088493425607034945658008408989498219319669862323572601597324206097114674649178822722859022308703013671640141620163053635445366046556131938634286088756314101083518061053247635906606520981470021697882500409638583944746312450182370768900104180259405283072491190193926257637058100020324430980251868187079601447803327615167439865576004845385987930981779772881096699305699663873533843374554886968041168513447369011457690164658833617114469345383182718711743954435492925209990748304083468999421171305250789808768458638613186999313224455725926472457917870619512607903202435843381971239832756227075627130568043324002900569374432502817737563118317325987015892770028035100465237072713857004645171598984384264783668475114162488081004138235327782030710879180702412514739711502212372154044115638855139315666366398358532052913445183908403780023921584252751940892575577979725302911610698520625140603614275534106911566858977412479528745600124251142144308649358679828365905727684959127295229493396035028613162554931484672924049574097510640460967687701498891488599677633812355933973275251339874289591491332647602712448320595566206431196671399915736328957852513640118498157891909081390926419163125503945678763397923544971882659811446625797010602507374605740943986789921908129008719238251817180987752823455274793342738903175006309527444027588202234632917766224639436383385137586341674582806854244144587364767994580730333852415681945687176627272221762619001560883213532515364993437608510229692929872828744709338505445639654990276106543552884883510428288255676873611038930023640504996794706234334180869169942162964855138026214878364320672142671727534703032822616272254377151525352255617862146268685561527142633971330030899853547691299930308195805657833618275115622152021053715679501086047182680874764147964254917912591341115016526629776789821466368004218855198359718927913447492009396773713814060199746661951959180595372340519897006224098320104964140076263384222960993780796830942557438142857640939560089055350536512561508020363361756388939988078265094089534315634375947345047566707477385843889603783687917585711672542234829347452791074344592993875987751035999435371354058133919319777119071930364492264470425757929405693712785472257539957693069537394672045595399915729797201595175951461892122455745722749294975308957686777758872733946301930948008161607698830510317483235105898452221448533539433791688363888106631475734063427158388384040882700368786465407427963607151932802051688853949414944729394180795823488913165459164388856848775399724831915034525279035572382805552029573786249926932524011807763076888338315818466036645304090774917755283479150966013213319518516933781575859756551102762734436591269522429274988537274164833788841945154875264031137293452153313014573999262960087350809383991928594272450729487239926410528221715834602729453366132160673292810585997738089131266092742679070988961919046382872460946046809976935092395410570082011351844525905667342763319385360108766663128215953089358754412209572858312264210788216728161407132323130681433943197463597700509078555608917655874472056297716116462915892150716133320952118922989556982085799277293679867598258604922300650253517279345230383275341910832106430848606634202486896088032555562376163407567075414383549847327942944325243140835921831640956725476926892412775875826378992277432508803170776871834667042739951290850336939850977145187574038395183212899181187409150613736439143273098742464770754892543917924384986988882543936518783966391707668700328701582586108929197727633623021796843622170859469530892773819478907781129140605943661811057845063852143769422685775412265807272958639537424219608135075482070141051448549521070647962329573440674788847345966494609038289986601096512565840011368227350744130264050177994562967244896724132114942899217407678585431513241687324897396229584779708628844326369368679774455687820599600696471094285870719836514056413683126301566059550142689481088329058258777107427835838548975827646685319634560701167300045802748307727723133269375234631187942481978880380549908075089443951467063389173317459789656787287850363750639616885558841204983874472190499006494469399586112936512459332032770328792284444019261638750316830339733339471326530724647923439864492989328719848525953100634865348250998457654856456472350024243883254991887812441260831433073286722779614983163275071925999852090846768240773488075804276395945063720080535144359245775021361232114257568679160191721323612593161081616400847826955168145337108821642899032631698629421348111606251529399189495554400739890537471982927409755643800439814712658317145533781146926998179128907838480020054584320995770623500239352098154623647472341506196887771858530594844020528563016798350076438601502786872780040063044039331630966062644373116534629192917640345576099973868267603833807936365104286083605724152590452048335146081079630248551057572866623327761245586001632423211388769066463673368872660255678787977218099883043087697528305321309886470322833534566772374174378899597650832538651741019474162144972609097607590965057054419535866150779091237917543893726629887001640104132239251678560187441478237592514311283587854752344164109650611253069061205510755680500598778457670701528452843274285946091812480134553370693317506726165424928325516879431489087028820433552104203006633924046565683773047684776437503190535564752629294141511816223837101377691586988344023707058169545416860728720990046231821473552511373872224817851334623946109013844773212282206709537665275891771164269033775476616844569554480422446402076654946599807031007411679658329810345907679539215260241056053798912824536249710810484985278838877115046246230074688635504486701297327503049715407451638871391937371492105049965800302103145273995461781994328199899913182859335014227271030112556340447584355413450408756437115072898055224923802308654563670767369704196219396787312506039109215744230754440919952818086137199832517526102006288378306819296640485956790769062876650440663216187256601760635234681134653237137956543069201792104969033726400699451823091158628862258081159759526950632341596165762376912381935696814865849030001238537773384335875098401619031472768445311952001904045038551501941570416588819598738707388888407586141620195533218729074520081455374312618758716327673164397042663491303779140056413650956754529693491332582402438666488094402795736265080821175948618833126386189909179220166464389065892015335833313428521170913029704303564732097138687873918868867965332412588484344447573333631642214357726528846244066301914148540770215357368837338308896308840319206152323210500154635928915752370972784203367846100373574530951275883459876240981172491468009484086934860534582352268516509161406103920371664384555825802311917509388998047667873413755143725232592460192102760201295171283538081174379418722447811767278884834305550068245051942274565917985094499449031969355805465893812851332364318602589360668312845977622945050025479500869236192037815646193604144947884251213649986550384537263043824184544750809513005980565928552998850107192987178889615883412040880206226506589589690604844224432417892629883133177074295397627721658825083392193044996862818963388287987925102131891455254853098736759302051524066079868075621660513105172993235876202184171341293550176038934084448811940520940415284233946290669087816329833709527642907106644963866534792778119856153029201614570574369305773980319643897165295357080942101920624930982214782479486873842514914666708661600027021184867462669441184436468603747334490729406775405547280360399645829527270022861730636701737633025157959461294023231790031528241981497939307233500351358163910006269058937905778324779896288520337609630869852161632980469103345249162590537588611876825679401814208647860909787336575645870194045693661350560931165810305002279330431127554508790104539628965826322869551618043284515597728532163893071964245254729547210753781082412402164061839780988600309622451015380480523154795818808377414366673597116025270338004858159401644452677670517114772551902435342749587375742778823076234739145554472046716020072920294365733606661172519079151558927907130429031206162358320471010396512595390187035281510454079195076509998852841990562509629081660703713512136969125900818364710198848358210038957827763672503578962890588877548789978716466683399532301654329943379593241571818556734733091205818263977659749573506894884452334477694810317577224269320056391888894157833835326301881486877648464948213123657413369113294579441751561813063323944796351681744203618177360130120635947254771508092042548599071592614875217531668677211340531295693904320695131118388978717788868002886466774102811058262488407707732693195998815145639823977662858665507620239658696001403834490702060386628937115516736201173602349555960302457148523199809848214788439164195218006930431981589807318914936757502099454123225829641254673470599286449728532111269377490710621577456450773511812918859398906698816604605508073006815398021314017889684663834387454966187354783639573179874255241467055140918840334429121581622674701473729534407948453976208703013563257885918837250274868263966595872603977150576768099808738788645370536779444212085482922266268629286167766705271142647949170687153418383872249620955569691941708047518867464938549323918598056282865856462986773647846457884756342451088692149158591769644607535040570530736389556506034051863088340802426584734931052918844652759081943960305315265850297136967606779346366807973299953433530589908296078542558299311116780996101295472927891824262677104444675275231968006340565207217182718905162919121176071503697266540392852285969477542348902528108508644566418322167243809441765743089505515051722980783934228832601021377290007275646436110114176431448412199549098907310165182934282191058820226297170050529436709024314535811894127194116860301199882148149195566210285098516584421165477148929037343305012126522633465375376471986793355927406569678434566909540690867643613897171351645511206097696786957578933443101961846221263369481117233568316859664108349952568397083425520932021725922806229795803881550029376599783293379814795419437881869832782231413099337169812220324149577442513807182877501180440593836128890363656224898732957374723838987544449004084614308681559761861090789447369711967339080461810434347754716074438859262252961327049451023946987105005962529868148533427120562486957103551850930806712132480614108534383115508032570303956123773452023634802090728075584190984460232185744034849672107824386885737400608161334788221730432321188178206285670313673612941724542824239001174687202919671398237787326744771033517540999812556668742961160004492134816274206726924409816571589104961407642556391487335344216061070132194680856445342598603400215713470370670881031558672676707880918622015308899185206416263938101351742136088409882573985234244885452755642800223754378588684364949346530433462992103725276897291289573713273866413430520122297813610720704106732490183745815126700622636492205495467256434420113726772193491711913107856698573293237825736526273280941798710362510149561358473811751655672643223973007023440812709059029316581404403872542467049448007102097357220178296575733167663299906995752263882518629543249489496995323125935397685093444778968069034862478940271425018483677458680292527233849101366644712076963833355106831896013093111035824244416280029420916305539785053957417995794170888365468834199516511455939393209299705384935814121376807155305471037192419511325070902724002373653727470821238741221121966253495937427011170716198671069030542469586533431286471984621375668315113567617240332548627634125829184869857683467811322526426756149570439814934634222807072315308374875553830905346471356956452558312328044507013984300178943150876505825849459037579095144912719504994648905684717381128254948220665844162325076945317980567657789319391149671096714839707259905743064769754196936268445825624578279106286962100477457430190898761676410614652663583975567782529074550336509759122639055576786178660350064013846304619958015561515869081822517394595991612721877671849860700363980662785670715949722155010761550206310367334059721245664915949271680939494497115648551251796934438759169609588366109329306195646066240957637639137956242750070540785336184776959088831382104886119838679297883670945090318336608709316559920310076046482298393107172454068379223691445151169341465571967809095555082769583382963273918547187052111322600744280597999311078270670729586312855824865974541252324118242458686460346311135554399098510483931956708085451673067528299434584169167777021325718120446999076384844450875368258017097035457913116293079846150454190207608545427511962059975669837654825873122700544583058488441989332331413953215245092436902688676612283157822802997571673382004706980235134828341726530293768628101991670622467518611225710154482003851731037105699539492321495745111771052513518584584696417964467891507458425656496342256339654907617064635315496822897495293989484324545327116330575159141434583589451551428542196351063006167972201498392895633357251233399369832368260533423610441037251300540681983796910106608159494028888132922351353680292302696176748657807993140773997580722641652691463093317056845055809217376946661031271266612856107960169225280562603493330877919895775903353129580906535787526312381146009095977047112331399640760075316601517411389878559908534917537855342957469464481590484239600697428191371607673484485312941948902168854563461278043695897424911251522779884212929523120756707169854714608584746610532837498483123723228259229633941193845929895230355957115852408221331299209013269257720032149861114008069910405132422574980250150340418761576002322449786355695535932738344733658069781215199287813945238427670427876347809514978390795966034866622502959736517183489039579398616624528984491522790169635767054437812086543366578095102525085263368927548540328046883243148131389445488185430377662000787371825296353552775836913344893218742692375176323722670298807698169606590380971312868119811102285056193645586263771104417627692062435502412579656589303742030347578503023643031383721059228159376924907822573968702924230232889908495201006673200266103237356023469650978324409887604338922140733197761262115781752092212694328827767754979447273587183523105031486568468819727091477065846583694365357866354804329153275704580692082097842103706822476007458496362300267378835141205134658068522815214082179939212715741212608719121289741188979330033689918832431133356800806427801557708540505190464070904865653994109878026014389281846917922233172903157953296426037502494254912626294191128056949776509366752879373891837489775772122416459936479224712530749271138372393028275059423475837192900712433638777448914739457164676574779442207880645121881963491910721078631614298972447812275966510558159859461646985825308936993387258655536026821278100530828924364401588331594321375362253807438045469416033398935344192164272901136852516581536592750078717041539195126649190802430157629111367750561137645925078363083226753713356199347447998202116624070774170974100264076839197152702031062631049472457099526561407574869576918971173973949748616521061084140339776409281250408192730486747421877030883381250205242276023986536874952486202552262174272460397662853442250469079263772484727803019509840205550840118390635344191738222522131363008335194266621691620329738720117209529416340247341877314349632259619174106947559744072772193430500998494279902888329701126529724302244317743350403031307492191511567668486212315338322806740181051206430996596294685545420732939193717815444730261040496849495856477237047791600136297756762755986481122195653177972092796279784190473143237852277020782907420687953781715721198188056645418836798897000604572699679856573511324480469849843957035939530724690679788418175544799929354718152969857471566091975688199231394731261360445173090470292886749786114227940467969082010581194916274503915353184824488942814124646514021881787200813577590103029556270938762732388585364119365406189486103411051687659527466186964569755829246548684706750587173571336305251043249177319598517852469594761457431954898877014860877585934929128316924628924210112286420053343293236251565816642654255862967254282055267937839532194740484991433395271575896276603761657702152327268298257188940503567142338091178214847959096481068799298213282018495971810438831201960810573198706233447722387726539549801523354349800712563363143632720049395925883072412895274676897104703488932083120507152570172886694243760028644040398768770549470715995807514832410252496615661899723292835924913795341304337557668511124832108404156042910005837475519517138980525732421861180115646549588454191818169165901459806348124289879707560919436607090746740897268983260962529772429200041905217723839906855763978038530111039123332530358252013647045854487387574221008362510329219303974684459000426675200316794222888301370415500860823287856629521269132423491250908648714463420211708294383919439683486552641911630748054601405534152840661373368926414595684206651502366057921639177194672115331828167847759609951059628115293834985184694305374207357479243299321930884284971862173470611552756728659077856908233730223635222699297064626094052821955097459504747197159418082919347778596507995477504419426091597905272171198662322927838244139763192089483710991537990182303542866597877890612426763185649864297331277186379700536010311106611576157779954522380119505312115646970960424256957813088662246828840971447046340941736196634259785170845885981009171566984933039154335492491243608426988609067454878997964667852150273639693851796208488159406679380546123447365744763972960798142217019137286743591364707223105174528842718076574014279955407614112364126725817559043815717785034820747706607850698295282088389709204081720913846827840006535173467930635227034447636070862255141332137603119397750694524440726593803200690639830084694458254546392695612156654992170433086861005467185656546230333722009914205182765665810251623648335029489400898534565274841634210050028112681134315030504299757754825706172666450235872082383136427861626932206991770304719633737770295502801089287288287651309162186158492587367840587312069082925217275312249765495721791434344520358367813204993806012733587873977796496125799459913342716457331879538471483646190238889661143386524728413303628191268633804657607132239411416533514042095211818111739871826093431781804808535111631455453796680211936174855335267118487192160783023162317599132404957857290628608264353230083383773309730773473299230613341711250078046281395171688950578677473284986269094339608976429932761944745531916480052773274956472618985547550113544546286900456400544618748745756800267389222436373141978752772782607726397625689867259099582354541378983983283475320121610615142693427263796600584351853394763361316973486224935775601563691108044008919874011912304994684160439770729216922143621974288351080669683155499203099654836523547282854503764685582940835760688414778196255484878667930796631722809241678136075815500780858518648603294801733156901949243203061680464813899124361547775560028985044529847362629615792944684504900274183989763181037251723834372729410999901265452049035763370636722637589432238861229320189102925307279271709585339795375346565260968424860640155444075890490481705218569153224963401719697799206787145476172047711942450625471481405077359192078040314960740419507160792579849471677929379279425064691115648512623863652991499134328958861792179511715372424344624096916173653257556152410225690160779059224700404336853451979196186879541818083771500389708338927223848032773556768959171148662733415348389322402817998801685301476509059155348084634716961955842291208729738898159975817750380891234031617841235669392146275898833976753952073686978955225232599291962153350437876204510116035053099232101854920709037234413623927188763112344885710419421163038858774395338004923874940822894723185709409417729146309349163565892178037397822470845181329509935788752189258689371006527213340052090404071929705951082639875511788410095486736246465956944205231467967931220365577996297527673154120744450188610583171171298830276306781144802521262893840728865778126774669196780300941000301095222212610664248188916001203768135137446179674244538822676890922511337070805541648647697342984156306458397830555190754698298307726851021600836795397718221027975989071394913713114299009551769756423604488210472004430622887729424255398479776825556752842943923768221426372941441038121668630118894632504647269440298389036501254957563842512955512022045029351687709660157161913698056740022744149834275486686445276985030660537193003132018986823224537161622576600729434710914974493455291305462245403099938702352729173067750735767932501196883514287146676535910692231800478393503792117638761789489064761744502533291533021350908382143435471905530372459909280638962415222959116262932276334429982560752486617195918809075339454727395620765293683474561890268580800006877545923571893456852011785265812022843894197684481061820087797087821011741623470907439506653858785368919428431800225645427656711242712221372268235511317610080778782087341313938029345244087458939530316010343288760352055208375215269156005512152113788864287984003028239978583127168229177669150133200909107642732876689829846477596716881524361368088428288414711355605461736079177881407397167535151973294509828720923575146752927841102138762295445092330558995130695285145118506110718208016866483509094198745752752514352624557159752969914180075035860033964275142632521554908998207069797977368442062838084099781085268774773236387786293800734482094508320026460866104523429468913918921798889764429881220366426871117028870778419988902150056632393142853924528934761749919049112668169770146277677659261438257688347535526704515457966731650498507000558736545252805756551922122871795075739301433635674450573821659961208338239794514591339470461478408091727390649550302983318467935523071852840461109566099056561350475760616230762825758636655579137909609181904930002345227338695956825458366177698010452294671069370699876755486073172522115033516077096183719357375805241656271735914620275132313409422152007490666355044739469451411024453543263112613737290362318460162904903093946394138949656859539173345753669887113784192175507622798400780067874702044988641531660642549935255212862325666053985980918708658600348375079371280903732800035131408462388028495747560271113571783184031148922314226287431700847813276771415675271493964802151668024398011085848737763252691330418977726101937310970960948553188321222774741921774764928260377600894623967015689154605038778549568783084465539142221008741548548264912726621979247646489228275136693256728507438203436601621744571083701482983633278206466185855838481978583268853502523930332873657833071934105152389402606587432368748110506501875099745480513214050084034892452693977872329919004003880974031965023522736415471100137336791683698138014063805556132184297018194752860088775394191206763451264764819202932682629785957997237639609646999333325087620818556114059857955088679936820650061937183943994926971719283917953310928611075301339847772619483304628845379001204097142028045239783843059678033076835542102983319792636044141325579223182590366742505104516969500204433255236191843093180918391240092255569199728696520120713747118320527601984564022019102196509735845873369935406891089753673538590312435915009062246601572733192792528254360292948952606474409291870275423196458620834231773477888700934152486376439941276588390600269862508949774745198032717211088329877918995965128757214699187801187703344109132362858682620803667972064576140320669394797682735799936130343947730902616777465876496548714019237389119730464497869354099021796513133277477924695197612934732144071869392074086667900260207782409980206668055932877976755298808235073297014483057753295958279089638049732103145851435057850143309178616087937908030564948748672779141225607016278292300293169697895543228603499113930933724653720141690871259059082561157486874197137927761280233131402683601005467481046748757399728105167796558011104451421677151542579203465115938502711554082358378099634669965691188179518840027166327756460105274482751608655331302651380193822156746948357147019045260072806511668084233918991249928490767857268607255379692967647891653430403233011871503785438638809092429404800200444230517921054341247562858526107087270660207671582370031915092211691695260621011881000461551802161851100595897758425877823861258583736070957254341581305546402827074266828149535313832761846209359823287698995890775804867590905972483400268903413316859766037782740620689563677450459147737061099451831005356276896505704920701486910365428948671882634462740420139649275259392726916783663390513817837916245156274131134139128430603317870447462852912763148871801625136261876222912036433145814846534554595357674394953416564882440896438378523316723511616341516582590828265326940843571711873274335468568815529473539735456792291124175715313899298302635298650243764307294341137478012388070068171608395683384094131853118714900682945301994996192758891344599929746942689698342289579516110819561933231189079121716455012649804074302848620118175599125942717808110865919932979517399761155603734063058857741771396671693635303045473129676335275873766378861967063485673278661378379618694009138562131488418828024470343672956781685903782042636394720990838668035357587753618784138366751029406535386698461538492355302568939989344597099427891820999766323277599643409550151932557187620927021321140248971717061346808506868654199238322602971171441885280810404376134084495116336238030356606414088912388314853670935215870864556614890967534122005948371708204314730911672109259306371145881926213492736646870840686502194428385718171585230394254614129567132034931694899034242987667833384021343473083166775888990349212132982987415663190775101719437353753070288338899289459164620067698011144521134068685086354520978197171065660127145771169511970054283551163479363087345275445606660142733638694511202094664475376134914249119633562795573532915415471731527855093132575103834178656126380240442255022951029817911174330801533081967438777987265660872312269434753240826858958914795867277884294029036467929632531767180820446116003290279773907626650529930855923319352774024917278847518451687687859971239829417546728330907056839836647518498857438034554813254573475626586957051563039349322620133859831927371099570741620161198653315221824611891350122264997641481869970937997856020468536847307463601103657843119317534024687794180699158589099063292840557835074688893152854178603764906468335714626379319352433579265660261852178826038986488216373989924280182493122756838834027429981194896424344612093071221764758771679997618747907590571601433801292415146237181988106550351512345327471063502069235088594599511226499396515143157694266446992148048287788342721166623722984998134363272773219313074822084612973686543666414708685675904956775957037121598681839257062216853901603568822322165713057335943697476724064629924225682732998502998134549474818643742647981478716654296098758798322072678665295894075457404387542707138585038352108141399998393833487518198178675052611914991560793065460929481871559324098504600853062823764900549628538618968436014477496330261654533904038906845824194089453706680368134768089053221957345654888743490788179900779593653246843125052949889571947641439384092342963556552764559025358227190215214213866020162375366590252811404479981523424792218219567626962008516287418580567667298530150106828160647204258614858216884735165586551415617455086570747693624483350543980971392133884227134697556705891704541646681123347956668330222767251541441386722025045161911203381466144794887767360702705743714631716210965573550637050092533538141094895175139657054892263267187678384448767791847290092188974861841010562076499418160223030272362930988046588691678677985292459159829812398235556763854851193473593941255088677016868447823179508780745929306848647969230060198921480334269418596972868656439187745857578303938621700648777831704404110274247232319526923402559559184637481669582360724384595813294779023024923325145446661909638926625467090980589088926143951809624636366853921886248824577221211958597927474878743420676408330673197011671280222766170240192593786782904249344746404534035610786826756025922036598573044503557548815899872295031574525596842645538745151298666651524041933046705858525964015604981721788538408042902744198484583537325343230510281855353256320206906541231890673815045427998335513570311325449121630214626635504801279788896818654426938565157863721422706195185039520932772628207676433214678041205494345015903061143474222404559237687603227675267652449409148092508175633655326422535525857262597584332536565787665197532087877471652819511473249462952279858494318749935166559098514527968752018084832906343214436440224066561096620982628174016062460899116122980879294798109367616272907800434279965948196460448106571047889327236355794397419281617032987568108265284531278827544084350645667027221836729036172805634825437231346507641666862336841170567562337766882962809891856771093988961550711413215144687489726226918854018698430089429075133566808551354092209169777182595365469701765591025195914060396783392679297913425335460954908348068778803197710326427577778646382247457068490738980157897596468255025991784523985529152114881851932707234953049400353709187975274897921659337463644747850050483650792541242351374502464970114406064815981869493714840058670391516937931865895462821990759334013598112601543506560874262610425258057473895497079352740900259890281394885449309072196363499080173891233574470029235567440457740201925519534850302545313268613172836302786185533478454740458255508567255349578522314071935272932867831351459727121830315734734053278555089954121315239793026876692496476680875804531473051181598495754948788806873572641551524698959282396606158228805818599423154185381752228884447421209300110950136882508612003576133277957728004213354035319035127638032662288928341478812413321301158695626377553580812189106060348807907768667121045607373931848691127193505527779209441513473412838876233291821608670800021638363408898907640369644969620933680087554801259861794195970756631244431645968734811593329112886568599920090240232596476430640265397477859152884031218340635443463448226832760614499828646947407999924553580653132374386576605707952342362410794294366378328035699657408626148379819232959904224445374708333639601979654514500120700812179211624778453130141634147761054267480721565449623953996259922204885384443502959230325022533862655304736368041520393134996012496270536955141774421857206503543935234998442981622239538773520173723921677925949879164423157524605216863255484185607034795911807824186019135572637642927818686308669892678861290682249674161077206469831808616123458584054754454171074971849179133480045672225303867813358930454678026364854982144447504505144255360261500283059510499904318645404222846220288793357257337722600621990266321398773358705852698475839439404774575296319736448755136048188481422910062624178583126208780069235963402715638955204305923135204158906598085752208057378036418099613102198417046306850499731552994588042580575208931464383983936611587001579127531237902642685754488683456051059898008011306776235104490642015992038755201117570925249808892141935500032905900784168533022982049254001310416683522965464433155074529360146456947497096120041680693598359181196640168960251824985145719954709280660572998000445671274953036435736475961797602696048453034999440050452239618079806728729538412615767855833105809186801280051483064310952405258888892370763489829872958659657383795996312871299706395423723168013138269477477642695507081529630525280429298955407460841757970936707631850638581670901821373046871721806020437274383375169241961156994521060421863334504379422639021042548402253550658979822331354191007198913936561469105842342817859091478056331990482876620395845771913013746086256654027098445803838441187816552665195191222317540252056352562665745020184139269205534311083131870978100946481062742210997526274378217550661587633673454404810649010819499877120145267390808083975143995981394626342455342459464686574724030614959317084665696838108319071798601134212252509969416717491097092465680188834961099655757848825037116315996329793290480323111031250693960548085318397097954495024208400563493711778661456087354118607855707537418219671095072784130198956790050416397396818339404248927951821544981326142708621906364042227746156685900981858937358087015298834403557175695105641758954130416851081709309246680043744884044219377315573362307846834079117635303419540674837758546122128317649559954462049956584751073810052250497398669270747353694663890249217338664148484713480524543318378483944073406209303228402693933362314145310012205401691854389400226687734464588412425484520388258204580474733843306166513371118832521501189286314930000358351773204160014155402989770653155483246539193573825184992078821201117038741555844838003419200222645842565841997097609102330541539230684855785847759834806796940631018199533977191250658707051528395234103476146749337139440482108445901758478762582674695728857250125118827207186129899679151418661777079158837504830176972782783546602334517193144342387539366761745033465232685705788290210140361912087173250384088686964221407005791335322186137991590773926262535516617311758269346141534892161221033360115870403608474120459051456795801914369531610353216333984909537186514073232572159503572758278763546880626895430055063637536277818003201926253861625491597941403036368598152256060238530306216367427071971872654669541024690804547518108813740756501740369777061997202579582045542131366398998965149458586636771712480118095896247248426461606754425270170043314395081783930176600144142109111849230235981747176977872069529847132723612770727664593589667326988410275093976298311673347170834163724738323977229742937461681730439683949131276027175901489028996627822079400647170494866340169572348013790290413687496542416393825754797619720860308509289554323010288244271643634558691764555098024101422693907783578338477119611936845806464686678793170416495162264859168477324739833661538480482239731707433414991558283184085038162190903889464949942866198286116536173687572830815189011722788169709735314942180370265378026448763888848135077504892453212267582938372058234492161113774093890439619291195684353034333627691998239475275156852035964847508315152023805834767227328500448073984584783643963313749710671816290689639306930032522766330679821287402545196464809375203142378218306995527200456130943150199317924673473453389790516562095411351863170832782215124087450126421811450487910822225288456364836801659628088244681525613309528685244954988293488716269875081680794476880857142424226302170778939556929736788743433473681670662004195130607647941073758596817405015418437505737494315549496638785561189610142594748689751170920144453348171099107860485010395412895083789413044732678383363784245822547006903519660434284904309795394398766755948718266059148580308551172794940882690102752595903983488544491925807119797137480005646378534545104108231660345065667522542435904222339655011495804229612858183991144282986824608345908297936964540996910823404852352895874831187064541821543930132063107906444907992231186596287959252214675119117350196130910915174994318261410522524093276152154060513270064642015123357742846183316978766745773890513371111947847841492351550946978822692775344600867789103932312972757762381725907792402579091078026987342854387736298671340479435326327754943521452835872883039506385389927177331086137456896918932928943924124812393351946469272359575898062087425684315673690723609894413151592185303204548310334722705397672692293553913701281799141462079453298786201602539105143954488027761824645670502975385153957988906322565939735947206657343212293842217854145793580593120266554639760108923612663275641932172408571907081066493177152271078650280137445253735275245105772671006291658359018107016631610201231374750831446263849844696353427805098436214574996474335464760525879260737192725122773935146357503768661851790923442266369298121072960758314810107509402983871442442032353175253302093674316356423586132067131913888553064674100449612695533767275785898068189783372473861371426860512211104251477500784358948460234901309714356845246953798839697648509526966403194101218694423021186388371775491799140596132814979752394384883905863716876569828737318991914405227401353551783770677150481286522806217615572390127334209802746296476330550235965615679600678023870943230097705628396043609393513678034686529881131782401006286427963797540412742822803110413850120874916801393052677324167728353458584990569657621477332873360281428342807435771642474866198514394078984956435399358476272112130021696710724121078354173993548741315908222090905893919780731143939788052937304719359759129880025016356026327670639206222272764325693470512346034669617124988538768911903561710538064782547237896373028740469054131194463320941511296481726550585354301241070621337064627202254081214713132682740582563523647298201661718640170356420926066158712631551042527451819460455620307644177731998362037025690993761579328493901218306797760022737462505305076560646720600378839603133674825764015497278704368302344132625805743644710212870629150538631045831969236867876140475924907802639390567150325383834298351334215489734018149054418274728548576657308308872589426302510154126919828280374332646986497534334300673514685637946173092701632117718598941788836948239139864473704954408124751940101873673845544412397766132223369082589476303359079756523276059944247176060639467708567114034846651357643723525650554854951059358323769558146510526440358132556447952936507422733826173554127368727344500825817166506305092350374500101551885793654299017277677977942705328671645373891188115501021591603773181950015762722912788866166541608293098409368452773628498445397864281135237331461433573381467904993129324016662107725247266219691797702071264814536740277603106966419735426202411401307206098648663798594558559126482763096545821623440052452101926598864312942630482881793874035308976043553409901432877462086488878144901837368951519074017511392778689987287843450440641364677002156763371574273088127823871207026971422359572554984114509783312778027040229023762163701679138578572839940281675438783307640523463804938444714409330848418135805697594773761407416411306748937815462983459223786735719066294785764067584282582206707110958455545744618703117661497766439751682909828539724198039329121349927641482341345563798948685336762887014562386042148728193180376229738819999983003813490570879162898988051637825202501652735079025388822918995882686102624225829659984289617754764182504361233866164633015426226034072767358504060019658359349488025918027262873794631004194021823306287930404193152819294752938779598067722697294277692365913610654597120709582460455787267826500896943328906595067019821095954290688332138739007258963483662454980224910638493228928436390465784218563899714826651876670845385810258710400193850126098160476587282687293628992654062009466812777356131959038503987583087106717740068964983798742548055159994793928898550130079625741293578024914306007098459594042399000546705973167770199647671113761204133488950609877576068556073219708029961611981420393623544983754134045570468602036447700589524704450656487826902634804347705633241648948856654729773179408981630810343631230557968472380705047522642812030416583362835947820199348867644650668586140055452945254033618831594276542281313029931700763772385547608187328320784232947832847482093936660522987024196382839198786079037319206907428062751443339962706711470564009556734328865113634729604534065868558845054756588930376673276631339206897362704709588918664817252424350557217561153261466507175479067284315276057299167415719123738190367422778818222322216934379621556991312397449529330922855372061021952136963431775894481902133754231277078406663243263888303796005823518503149265872750551514350462014725682811666393816605213179538685139589642017965496510701594586188697610169279112371180976527236989429420702351637406265832146188530926042379314204718973799071645519342043716973196479389267717428056893807785703086064742454431188930658254952089030759297268188604022776318553719086890819814975050756077220384753979932415222014920935766563647639593244492218427226767543779184428209123896504692786899283011142343116399808907358008172751607645477341451257978287488186308488507155729554892816648794131667619523206111952700616264325783727648165245115279869422862342564641332525701240406210239617800100228182885004368501010693663457428987110399125206510659521509838759800491412653839102547003360669369386960173176962291564475982381929627725631007448590804603531996843422371799704055410301851409955434900530866837399646997695903685338021307902537125256858571794844461292023475210269418558651102538007131251769203281291763311923605026441146139162773688722193789036117369820631549574039229631550483388105828741237122570572191557222606852408647885158064073613465611849697050767524461017276239568622730570053945290423673471788300427248613569911844338503672982340062767916083833108147267041136086152614350560285572353435107016564294935981295956138902321444467897115313828413411498675161461953084567403592532393080220548601723562108788762148832540613293809619114207011222482074307098672828720612599391675394590960587835366149983510530341051284369604615728921719303315392088323451640095828359708134463886097240347067156272942869644393136094027948153950234131448146444625728667539965540311280683586953471793122118240431978387875618879525575966622324370854742586537431664326626102924725714823267134072679520512618214485645172510672670904422864614155826935770234945135685344744343893578117964979786433778546833747077646036151410066213595190180774819139902647090747349717125192758831686404883317697459819790680817135884367234198561603987488020219295439840165941465243479865745289054507164219969377287426802792163588044583694210023598728372213743078912015887363053645846804399892762150880743376594017923565591539498722114037193083873864902697887868518276653571059916981340039707035039395655759346405910314706350100779897958051188475166178970642074158381965632222382177523202997236261229928264806704432392661707329770250564333779444767497761395652530409895713094881550007211241923527429558492483476038410128709851051529340436209519418251873588885545665842935405558815676257006736646444719898263153507600610268319139558418474988410166634439357308690102324338108312862128188457045269170931438929025962637230150839501774476179739485642641795187646343969537037011397835061374249608894759684525468100643554007235324462992030427186892113215955164516537679375109215906754289068649417278444052564232375183794604774029218157396172576711087477627946056958702693667205657623305352910194915739339535101917297328756959389400404310338703557857298794933004204541199396980183391778874365957330610800824187012149292702397620720213767552697454357493153417474375501625230253708996211834534533759423210578199815837766441696874401786948935611150487544678485945641276128009480112402987064606576805943382687276346315086552423344764573752973240592653513324973193664830576996547782949171036357035531455644938529760806466189951447223535946953807123092596944407458514251904241791372986549092636200105512137588209653764377272451693773410252559581924889514827188781585960670502144962021708876560660765903333277338614265290193109262301159311091145699620821643664828537206428704839760812716594289400893638672457758380393692755110111716121135144283533740260908817835648333289377243990679759170135666353754689670839552963030936740308901761150094441563698389616220179340920984943120941006865782022573795039190350446964796232150569584011100354018154103616089455056881301310682572320258823979857612010032435801970838856591648792279968266672455154046975056209630173744155885897404283692328490586471551396713737411964240225221771338691469085591814035676803711650968876569140936598010720099123111394879024573000516628889746175101202067174332989279127310435516414646597552226746394725769143141226497146349721668496785665888339248737982497408726250791426375172505247934878658246855080612673587803445100782898497521357386940624621317854400968540124169338305299171903154833409220759240130161522808690240278650108138061701515317089258787438624740696362123733874345263791036124976960714684744638295410786754809514141495337498472615998803184647993710013729631208029111783610453118253707901610405955575655846578578247836585689549109903050032732812877576630940039130356570760333642471071008924183194471934968412540922412812057251931163867439270977637849862288129123073583690626883561384572675955193531457548190930906114030607010417726231311950359966101685319003944458326195038197726210468778451576785207576831382376309566389460919215834774199022936114653287175799537135755914154903388382557252659364929932125817787577811394956398101738896283044204996280388755175493592769215253093854460890545811469388770190683578208473503253570623175785513644184073820425215434440917736309027583265480806461382491419704432486434480654619590273507198414573808798188215117210612606582088058980191170411036797545364429205601771484057629615263619261276222139782389482194198569983328230142791307147553802042970050306513573155885628152732133031802953657956272321656305398860946039222883555221857609511361071989693684552712484285606403745664020467126778499303095256378246070150364489658886829475190475369137721301488571553869047862713819924419543764992192732899161385266526552695729941988394899670128999295569320521848167720668643132149500470427682694997099262003053301859152410875931342907444043963463740133230182126597797562696373733211806610214491097590846505506780085542990661077482211163138855045688528344589724807014957911295647873459820316539883588056941618537973163184675653379249344743064537570035809403843314318030269315459884351174633900530399537610953936943591304741788957194977470096438408585193188405352506746131072983023526497963762453034769253522412258529625723094433714309801764283807426062867933511368049318118614228509460789998062712568904859140645777284387868332789873409479157800012369340333772932432634436675464829522766297082092563259163922683733549875272843195424421206382071473848041835757966855425315168094332046359069842028564475208732072210579017114196819758178014596751794147882373866113299960194330659679444625866569466543254478514537296368203122944763038611802678676933329421648057129639592424869249795060681919555092306660467992916696144412225746667087617267664425403214301886703630851288947088425176456938073708696607178818394136122864936393008764733967510624660590269197399230539128931808279543412838383325019263176554207526417612993277325074916337550558139828859266687187070105077826478417495959879425345866942267371133127375559115477367770343150240807697610708992185676713206479999777952972110149625895779582017862269591568681426358933323622456439246355886183353531830282976272870074368729848122268484157677018920823456378279828444857704090410148836220112668781699349933349093108183320209221366383508004294422418790180820092196001106146975412355847253667290321331451206005745276749808617202252988188298890361422541788405450682291255821528413087575631392263564026946308323068595559565020555324223227110266039259726437325741698228970430889958220096261172816267933583736443826161454534019080896887899623707794484917385450253032238099981265446156403010496450556213175171252453419413282469275997826135967862045877953956801897656487568534218561180879301388545450753711051005290532431357350364954098411553201599919088498716610691784918406517973490200803604726132085550923241332137638655675327175365801179561367700824186189700730958289094417467608145281688545345225192119568293706366332987604303297467381099247017867651187249784243454386582935149588959928123328990442121173830448859045927407815741816266162645391124734764560814803497252777099554830517807328443850263293439635221433111733231811158864972520343449406220856096637630926259435817596072321553569148213559205075401028861687984816439529490735832977719023822542840558601388309995749205058854940548674285519740009723069860983335111033611371741282277501340333495175194782276474508386639965719014627741060064421692346950572485029999256995969208860480694846679615824125047204618329678165798685090204094426106528441186694899573973959113679476944370132285672887945964094929895378288134730178835497338848388205935447676465366231194794377164845962762008046540270709469559284040257999644334853425410222871953966593032815317630326534250890186120525104340522479446540994186421614397205450297757080282967666978121883253778123890847770576559707847581044848886601002161662183180527962405055587625710061767050454393201039302287756704790780095771564246791328812880834270391451659207636319830804527034061079756597389899722509540084285367655309101397034650145695195343238545197093414663172426062130049245660373932461572579691227158244025022846079699256429905279442273919310765160709618187402952989451218847373466594294481837038340478827121662606550846536322344140949536403837117600805444274961162289483217616499106751321866645523182318248663994056210783300104981057304624788627970067622606608760322740199564062096170077551185998374414247313083250949274408097036359009221974743530949266852097863173587685191577792040884222561015893735598299964982373232565188773209288751574081201464169458662415929491205895874734371408045127114114981480698843827295576114775728874894397384450430235707808462742613128836012236462027865289451250249353624979265228825432711322227594903334720067041056537978901805001315602510394490453381166966299231239192380646373449401637041950349436618908092620510600117359570877019432957861757288861954671505893995146997265254495023523082876808201715979845284324333864340432144659283376942076566939027754376331527442619902031125060209560762551701325696899149367826146373513859631866203193361920018354883203447853940326791169782476271237126616505638754917843463002417694687462676313884537278896856456494004996496166525234855370662997009215144586195963847409019144751516501378841169575396495820506660864830506053978693805473138392127705187902294428419694668304794491643330194527792449808457357415351799322162399896992413214402714625401944662643541160383003352398918027165582153175326717874466216456308970053217417268913574035926255563448978267729815218148735692251932099136387757017071214728778952213002493845514591109641431911249055131855285657811322701160693073121281893203043543304934183378617242623440832464513789679168621164596087778829592229353553034035223883589496367515693105553912027774253805819900175096644821542394382979673285652001088509321844606029355562460356618085597358709797166017985268352192312900876138903763404954985857610264457758314946768056601691528811191678163255608575108994524123315519008554041631434933425448191728448200770189077570952042133958914092599511156009039212371361464798810559770964234596262753688457705422062255216009027909542652179708510461490774507523045970682520911698243345004907918598702943081559730720583255754461013584502257555589159297711523040987425122944819207063687699862825022159783209931545234698739089404135588367110478759795222154326110978477281705218402270900969219844296957900485304111410008223599617923729681441402986355022637763795355121393545001221078133601866806509514500435091093844249462656978216337558433799447682000228690613805562799864772838473618471693704552631966307984956294931429633696184791988959469783507209204317965129707296797724628084014005152237368772402113392025464463932207681788335585766015488349090353128337176933083769609695716954961986897985479489309679929861027059855954201142716868756690494968941055022755335541615630324327309932773336160059905569865867251709812187433094580094794318494120641761352937343523362072950458360392563089974504626874349974883850232125221625831744619897172838170103377660978561581463457720903480906541133373959567286330740872782698577472205426778258697946762840688071713002904019812772907408735120272002222867028280240741539423579283357830468002042047312164624519363086987561256913682125970253235865620858347799568144280448001913746692047909199162064095272457516267601941958286848516023475400103305228753396247597493806986886415815778842789097986122523120320731566776197248511528041377127317421233011131162799286160753308711491202959429007383839444444378977434495048225982199163152517679113919468277520144127033425441124855655720831051214444369389915513540894135226986672631865001440444315877456697444478462436703638115384007132147679210508121516362661850010808334595439870792614187858781361822279182499229190498180666475685873757625011126072337143077127689822594782132463055215025123751979542867714965901721184762345076708445199493974946858860796082795222176870639024499456078616045108562356877797062338518889944221025480495972712635316444199437808843129401157736429272601668296274908661629983583120061757223287008318250387669598550444009781972414643690247324463351560295439030086792515768318761437247196787754162096669567157321397546359543964997044866319993486082975683253173257844574894919746092942776193975527498953512733471536788711890829063577428573938556482984712771124533667229312877455644681388824534584771954803817367179916693512051478343119509904627606743587731088140539792864060193891923153406361172232420199026359027807017883038553655867009429280521281718134060431954120194476573427044726370088915089278005765275469556843326198474776070358557571873659543433733268096710435143171389097489672662743425109021150156476214404188361801269247990251410189972165672634610591541135453759396978963446584871133799149100932805353425628700727479455782811770668766692443787972913398434560410723170700756621070690186455588518830044819545969918518748539996413987822114435286768646290933333136948537096919360344034667748797207030032481489758623655365017521058452192992168431928236344131152457851819282598882129324582331954660227567274392182133105688377350552754843850605864025403827408216964576238186781272727688471772218599007605620117990233453526003160915634894223651256151187455165559691709476524313899972938660018917184206280867754790582081234130063195796821585415922748117998692201747716151965962968230485891954769499976477958881017720712681875634932587249268217369682622864052234101741806448250657017981618738682550968478104992936538661409567272858988154743706691058125787378505324513993454065429260381302150075504590627232476032537268322025392228191378302361488158975040330204061169875718781442753111978288758637850301649626538125693328892491754634598014471170354245237453296187837204602158989763277875760868066498909762648972027190218587061432158482798289207979033651855752953493090351566591106441594679563120214920520211728818762917741211657421926772042349435481856456023375833716346475661663544496337041425207772945291842590310018761282065653470078529614116805821446027587635319045180320352524907480769587643112973538928357535609812402814936257799781045837036389275423822473610924063851087163864543606902199589098420770010395118173725595463240373371798859909777444578525441435229053261814588599559344506890503688198110259837261869050556522893728420608729011329538838005382768153976548168662839272620508340848166243570636991480399874017935910860438579440755929406990210046438538951323046113416468504278986872355895031556888488233502211814899795696668232050490923241384844292345250437117121516307687770736231136181898239505282050485909098006830974466068183748206087449870877232937564481138623287828644330876571018168505166052411872862194485950947664593511182373110572249710297636394999541181972288630173442844583825582353865723131846565155077299981677913561721079468799590357831606642810821239432162269488155452638425703088338291520666149809770100569773566407621173763936687265087676994882534658115269895422126038679953982831565574311749056648113228867839747841084218919631102151441618973701160833195248092723685067553031824931727124359707253838626349111098361192835201391013363058308127370659404715119540941081070071448580415909561951606654990813298807355504507655237394037950809021011134975403074424755567393046876759104484322173304609217864948382870474354101166630583809941461927961275331771099346968568121800497413327074941075778205696429516294274056511621775585755625983515436447407310841653670456035309913936625113142162395829746461042352708874510512068579733595493482048441323723875133724824602437196995484611840241543146048031204683629968062376453533743336725558583654748842017122164806797688871173905929823913174096235467867393194683393715834219809178575718544610933115571146566757624276494430283510905777538576677766925582924526111489792240977525357587133765415588126509000193249561324411063509990524226303549117917901865062739025489069586386195607682599803002171496449573480806526180767161762679675271739958536561262559995825047740572813061018388629998327562672616243976568976894262121200734692740154217334092800946193414148926027332277728848755857028630749489202706345689572385597450854294232594663363310066886066101136753266610353933036382918615976893512858245812900641678781878081799084347013730210825048068244201943710440567422844103257329041232610216886912762158218460607723435702004351936734283278253141411576542717321199704885147400378480094966012484101912273475026976181488094460392355111472814059508567662044322859513108410794778767442317321406416293922571631382585463423515259260103451957495159484599333010537343595193915546434910038030694710901744409732864273021692703437952602748145351219100879145598301207475824043609093331634998529027942965138285701883771719051056652268509262922800949744592673353518483163004171242049700707625587044807929514954213188867788766216983705683761699980841478831490286754788227352395624690202350700855559166125459020884068299649359664282995263891559987027742780371524128079007932599403665228606680223483093926900116422018012042340851520793233708444166102562394487658197351910691443424816378949138123317815024385015291827884830296473017018836687113674906127187693143829197715710750140659104045883461847955826347993374394395330449728546125352327747527004321170988274161366036751601768938685681106648688659642875556119290195990114472865780411549933457018836100263021631321460974031211617479781807299882818469628100247897856402208409160218434055928524352118921376964180838868886284280336351812681613138484021458442164208311578619686083657026355609869088476203831226409164610227448800527999125245439271787972336437609497492997340503143046039714362067632036114316806277633891607988404202527604978234724741380242939942304092762383076073903172821940200365118813167626261624587933400133347705231033066916375196388661249634432329049160938616237761881872841419111065631727806401346833541847354854201603120156442769932093994798048002377057810439566898695750283514187791131773404853885136324959592810166315193153386637817934352213373756983067388163670670950633123609066412007356471333066596981220054305480352798031354662971935093857420497744983350721969407487700771303131923982024253937967298068264718427805625861701968808350974600409524995194489485694966565783541334597055079627337605580058683127563879194343187635122291871454970513763340905167419818477906703190530350545098256736409319666060845702475242464604549836033422984851547563506462247619580430571232201350494440666132863333799256758324442758019335036150427025376443538202449030692101587241689799450605558028979646271553460262675158505530687999686699609896621183282577027196394332135042166517565094046487512918862417642988681060498190978651332717147313245504223361068307303408649607063875422255527729739283566729617835448688693841460222057159073187211452723694640084777924911024813527362213821252696877165651261284257218183096719522226398333574113260650126649173566961483133012802484380276026545102970150183344464899149274661055357905299814022173455557733205520974451688957349361636562504951590332967864568824139243894896150811505847609336635352784127167896449735869831028015197747997722104077867766727722285988318609017766800756184270249678998873997325214984232855439805144405317287550737075702215691619664272557009806118581354969393667692465790879636366022543775736838783243101893009681443510337615645714439455094089152513741103856566299704909947097876391669076836249253397804945731033480377009437539152964947831237643414724543552116760819958054681531086225383959538190526755823931964334930232218482727831564428700102536997741045397511298774014725638080871346280579189662339192654958843022068124791246711080406621793273824430801821122348636505647198874247638556130343496262042089810197546038220938898936432971053062293683358243859599891182761244888485711626708042616946006702449387160236992701105241798561991699565422077920224167920337196282685669585682139915255977265269018200728814390892942089419801948803716033633071348308594777381680698275112247532785656612348396998948954513248785167253153582465585885830166216687829216183206391056210556139576319330388186484980744326163135689512616200686642727737004057865962864312976630634282051673199678381321130747152962672049362316690898133564617605908450793878058272445240203540209014728801274846759532710884257129828038050387767939338477744223244128703015358844188613257380775443128706201467387890121545111921169104078706746052841431737731188582999732312098811600385550779259434444497681799104940782421699836912771529028686595462222181491188893466885460528037163687264943490648603533157102877414159151373120358882240267127180042810860629591919958988115564146307582064554276696037670718879638833677549092444517268627074653686430929428238556397955955323605680597779666855874267639686402516551438748772931779226990707370785263748807776737709499497284668385502312633168994766129507061312336662705553651608712011511871763586547856962113285211474591058705017538127761399477060606786731139652396550201416638070277844691533519676663966323169339409108714219127794330826600046940019097050539678426432062217554624597338371325191946161674148754579066065766652822945452736740940342782136138180067894527419729458386656402902598444350055979691061806481234303638822085798754847831085651492537897974495611447617434257472189078678710866758100171126267119782364585734943115742030851556422254444031435697434660008280322176511548250249745154950135653333802257399431820901505587088524432885043550064945714966099598472160921657844631180815643555322286950382010499650435753941459693486295043945507893762424584033274356407119040784198883319542082538016299939700250637937146844612136091583232879937781604396693124812055013846821666677957388764160546046827269856477630609634384036108804689408062956999129620106704077065848622056170405268284651976108349393029284431683102405614425477890718062220614238096546231856631172691746976372974051116752004987640191054087370277391890467500423972817299705163575768839370769638355522083078305529067471451662813247149610120443585532212304588593503578351569977738327971487248949281383524336793890387028948392548572886087960394636673870998161419026212004124639843205411223510382326656395658947589421781636981384051317376074292066543985485441397777683907520984776330946604153450278102007287283217692898525586439316740976973565599122452577945618541905815507318297336088289111151906633120751510732139181523372271232659217508558342511605438802102675882279817206336692787802757384351111238007304935536751097363916119252431067365216671939545580813450677990082114820699045861582337869709063201021902675286412876849841823128243672898726015148333337776140735144459129204011098525910014425779273459724982897199784800170493872240179055296645890802608954406881197413827607738898388156155644272421911856997719945466136766753329156806039412903457902750585986552442001931609135864964833761800683164584850527721692858454294439623981943810175747219065716964896595999053466574698679256511466325864654132335391933716013981196811326936435683970407596076597525339506685525211421279600223100797216150595601560797856678693078610230939577760825196213795418693752349549969984923948634316495272796091242510517961474469862897957964940795690196236301764789314068051488456409112697636580552738338000967866849455453476944570172071212890148852181099511640140362637886670979176760422347255837683209177053211594724130003963361569943643293250348065787396103963251611050988296817915795857794561222300403619316744936348374803566557946953027808504553548364252889635509696412111058180084732742063046366716976835112475542902366685999540424877202320627376075757675222328463035556236860216383698531860190004635227694730887385182248153772557428440574745542345199759363753086433205375220899889837861503880301985140196876679138636811049386800072415047775586155546254407336954777765634828741195664635333972352114929299843033958652759593147909792883907211082075345202254180660605708050963857461223740576167022700614938248854796185046173267495973736936262994441266953178144765791052356732313901489869060289623210038695942874622541013627758227125306829420084524890286196651660689340654803940402326049152509554813799467978633344534317435235989769540941852394423697040734032054296071748046273012762774875688232073091657220172640316717763771247368882104563728690545656532244109163377783097080153377778052841310056008360410777700017105625142030771895119001059417772335452137192268673629853709671768964486602995918954630708650400638958059266805096871428324563082172460258928353042588552624167984819639631511068284193286207539223213145637174989478275443248522694578537441222088610754786544016200724617568680749730665465137416082764566399441002914142552983038577286591824271353680056664202604841093707820165688871071944772521763524845315563698955399208688836416765777291462189631829058366911452980023842750777905733111523217650593701750040879616290654770587228751040791432061559299098741935020860666389930250408599631408527291079612228481343447708290081964708241560377376510006298552783043806711630533530065003705396093779931132029922527160598923701710908360850914120519010036196438437640256418436533014987921074710571797122683392546014617729725557498544489000111797520931594069600009242685759765670408494845591314205573561370622324125247888115977706683032429447883067564674865151397269345741799831292104308333191824534642818442364401330518677173943858383024586161936909099107229769408747963727553491958007698748704180757680074868841175688669330769294032385473231173371961470543627356349301500802061086544542068091001216287328323983185773064079116099436186381222896413705148440433477398082033787326480592664661696334760487199379224609437813610997310876266789821134018953281264380401482703949831036378232978878749291162728272199249501707070855585301462211438239051425635650644277434343963477894570182881311215498043232240404738129042655707324233452073051515298192289208259878576166231941226124300130120991899818444618363156807926621171219200628479349076486593544496502839871051786521741534445092061435781712499589611533987798946386032583451063486873538893737093687618602582418757030787913443783510162798695599561489418609239633328103146644765606930208882928078076043544666674750866883651644669582942190356846587116787050340535500209980861876545207520347698470726070914942468217101245089157668159147871120371027967976565563822802331778017108548257457254327372423415521205750397469436583084829897197559880956482388944858450269682271915104648031505929692895114684093384463746433346238721579116018204325193906692501977825067436822736916944092722234598710649542660452760641542718888335124193605210377523870873784091363802054363031249502707514040775751177157070563304423674815263471504553946376297481829744330388448073607345222085268313561072891803992189319042372444900985485710378911333729754340008425053443794667601160583491180005565147349960546498468552218791272212993442138775829021280449032968890896736800536082146441224680537680366159027388121276279917934601682833008473716602240152456713015220531838257528534012719681303593898609607285934694022336040985004733728969991231959491999657827744433594448989273530434627094455919185222705637464316640762134356860721672083697312318927404862439895066075754125378283096031169424214906277252163207942721035078482459206535638281497766169060768522821865422265339486313920360050418607441784862843429461567180566841066514453487930168870208563188592937120954247666998350280063851161314160846274493231005317443642810551402927396212572554991966056189161011758561681008238129291306308363385508717811148920919937444737532417569895952787728329737222690195940535480777225701655924494989242812971902322602098555146990229414172676860028801797165256799360208152469256069450161981832313542485332333124006801097299761224166661224659503506523300948579247744881654436089085146759219578441688702483842070503834207942855702806326947043506284483901738979049180702786028768360071457663003984475464903504960498887750584304410682690955912807266558128421882945652734898440647792613938509050913090632751020496724417662739147936281875868117804694315043006508134528813483962912553496225332077323795732667168857489521020472111745246423324056666551787481121276295307294789546090850492033250635099743364169605969995147512639208052992443417725993768753882281897356847199628036724125271416845766079540657707782182481010376242593650577961311193862081636722842659711521793436557047651345397271725462194577953124882989208916156595520195711736098524048267757110238729757756992562692768449299879374340985217007620951871805412406006327880195974789506906106862103204708828839356655170856128833491738936107001618326733500548637811351057327277012598631106602746867869899929377345830330117639235560354928304785193670300968753889254899232294149078630826288272065547615928637139943162034884549803536380866748192335607180810998985642881763552540089491350112739921330417623164587502297336795220921237656399182722127016866025452638380612647508718288804194216545490470715691805207994485763649824681044907156257888878659778529447681738640935830400395238596287740284080965870411353472925641370488855898658363941580169939518344909033912372047584912230985880510464814589962739220433617014127297940388923348969185001365341385718168387810516662675187885674503023332022670805472772050028370653819576139131841504431233092983930587954414254477511407535123638534423719025051924050613573804534071722322791825873381016033931892526320621863313681175898698306018658034963455471897697388282855394712292325261108433711089340225509897061778472683864329757734620447355160760729729230452035269074637924850625958495443932323643067328227860073124290658038773414053799368104021478827320498640336215467664590317165276845675601711422056014522917529577262835999490494488056553498237075959876520278873149698483162237420066788301241684432939767457987472805194730270724065465703619170369374351698211837055430936106768338894170127303981417135731628040878527335052327204625643435611272197782044642113944445982958470255030417052012013704580595976651059429395414773774006605503923964174665746270697304544582443126631764121081128636325237558936897051187799051063004606375696599109497439239818484570687999584897795881044343908310497605134147447887675273361535592091390356616471800967786382552789740036293901147524692328976167439419455603203458493099030172509436475543033988145104966014178214253379605599964907845640203109159194734519634312480645958535659785026133220638405790645342153383367371424192345082046583077814491080093967689941891853389019194672140908105040705453730459731981713782165471108430558519199788350410178592185370595689018232076467919274338792363920427016661084779687518070069193755531818060069592643941513440256829018933525134578148387441197141174262527581386835779814342031789434628959629837552289482221145331331693506058576444920790935364205391828472592812711290670815429310995469318769425706961085792757778887894910666279651978080966297022064981371894877516847915627134374399377192717249770406912600128783292212437793597299571749026269207226897990491200260965879760008850188514850402679714831463788696013125242328635628588841459543057376873185710106881901241526020748171544000228214975625599373456550329837218284184756479502605172974930995613543918251273006150934712598730212905430960100371285727233713883065147227930952462575779282606564337773776510037250049804998359463651182466534791651862739570872589704005484036362555164557807855471300870247282883923029914946944268854680003561617221843631233407502521926005805430539057711577447337252494479057241944128573990894147528825878114843256693222083209477051640648352626004363969280707901801865751901059985888296929480096160278298630295681919152524324485644695091047174583864547695583786974636372876191018325166717197334598561306721505989991714570629842961240434616470198646789729787540565966678592785465619360254305132554707192996187286622195236031117886930255106428122820334962689192664527262239060697837565367957660924664893547245677439265148222063710220908145120832717654681529506994649628133509966527437156233568527613890410578666238409423287376462321109202548013301561259385702377652760543757554261065555799684854824065814178784724518150339853033000380040410121034864620000390525791079092058035500781589316547469916794514052082648662780825365343089066392544480203388416486211269248022892313658773420925464000591522674098006810866480063266560848928882828476209312913712111958459448311288431063135702210846323397353374921767025794330093841527416594328288579002590074579365438393947670018699569465764975177585659313467946215819760599352137430989633248552567796203171558090076271414392789941811201987419338097493602248785959321500367369038177697251477151748150197618856981270927658923223569652197297950331181811334716374333411641476945885312612679817074982985779979155954549010914805042640024856678748852503848839814592580203902207154545497602263948231949346948995887356571563313575079155081612148848374351225910934090596650068521239903742581195913789491162788380512308157137058880648532030958151805093306390797913968831753064404968143682386208447567575855106888690247338624260064459573084151023146356681321429966031420807080363722967298431430150378721815371485778567475899428589438145973279022434114787300026773753618347411413947933224611173077371544812931708144262911910011697425648424262688597121132516546966067703043714594327033195647543792527483804220383338638977872753968881690143513581472996052089382861751614628385005584744920942418389349679988466707252151460916840044905470246729407783163513169181580871926953010256464560047525699205381969227275373452365853918031135473935168413869648128932545806755020726332155003293078628479618654888593739536028265955404651697255101574750834894909024514961094707224576023727525624561427918687904954006534456279463976282512957468242128378493349876906492480191483922331912715013437004179487764154253907654232248714702404407552513955949983712200011141097610895314243946496622147054434558383364818303587115757659045808288839618136527678501878057876103885050936255779473577905281879948703594205896707390498724676986395166954204173335720464259968643503383705284169573716240505606072634253872536906507132678011706064111963990000335167322852542193256665264137918141519423957096362595420906213308025364625339561982732680261892594335319147152870991600575337347944810291747113791009566053860181434031392941717900914297631415591119668251769936943160129182002301175939910796716067589759136273704647012814425639536760464016921699801529879834231380588615781252440190979715929752988733650916710350603631103699387932484481802521631822600679924186786223955540817238783676196954894549888678140069147529409738982937048045173780219671146551152132463346574874673675843932521518837248023945371659723944268953382984896110534190464187794249781743727300734029664513160449827969514874088139798903766056857762472588672231934925827233400907663390313639025723122910970512706985126682747586698801645312528725720454172413761092965512916706442758804700503122827670820232703709969580674157437794158113134093894312909739761753309298140757834930021099615735843341995551538095266188665410737865004899999966359556120872700227897714983421280768213911339971651964358146535347251526713468193014441934273206571767381399981948844676770502817633229200948101606149987470471649009617073957880277348965796763906097903945848558053275807589476043408325285475153124163547459935244383036661514325800371966002513007376329547300177507077885004013216892073877092802228017681431859388049507547338808388442369836857650531659378713465896491631981230044411014411298053518462136408275389015083926611434319828618096055814478730301580036855255831639715642912704610468564188052128775917659178894849515564027320132120490486624761286246627982626667266632772564896556811566885559642768476395328134388183627986655419861571897943846936392484559276193051097208339785037374438192473463049651365100503948896910467123470846509369173232666142319443666543054660340196605405222585221014907107980642496941957912040300132138523462640357640650402755877188339117303266023493842134490480530796067741714518050212198539012225526580899430071885706986565437326726641748264371854195677109858668353344896414823775991119490343652244756546578068247161902313728669298318888873888067558826652174098112594028028722564669887636829331153088602924401362874388776462526647631838758862411397829224268963331129233965898103457267247555750112600599221393286693640555143679918075629298243370998983234765586700182118268077642023494492266201231331619134872186312348584848921934969014005306265004531917232416201841471542931933471560727332551708245277316296703403133660890598564290135481623284322331373231550359066852896804442126162738705213981109484185078211299644294440531089678979132093557770003995890457858444149663504573145528031861000348643806388352443996484890439335247668322393942691575096552274128756378012774624726673862021072819070683081045873684509424735968361986389791522308107488422563143023399873746694777341916768008639386007954778744481266755825823620150564673262514972081499749967459156001922830808750797913345016978334750600082872200323237514088607199956775767899876795570208173532120068678867455146133807896362956663549324085209491866954616118404602776278124986444102185254370943055461834493167623921314451237361746155072399811108774188417528781069828076361871190085421868278419633165772590744399594779078829437310794389302577607854167324900250840980475168778586095595421732837029848202845491622976772172763200441453778720979633305672758967494971975654436664453210684025894848796843338934418179663567015005282616415078890532343291177942677182392499584491793831771122152243631052288938078934181238739802849329823209534738507371110439194532426765860271737583888828320311687606068965023651420862927406128894683429700711701112661400948906363725607680600930907860913811759647455719708517808860334763295474176983294458480954919895544602139050093605876893938400716710942160860740198008069699244101105016019395664666414309216727594268821608382453865159863579974736271982774004901250900085955960676981345022944816574825476155170358440066858978183741483211528069550795230245664247503262594551151620761979444172707421153310325823831800317634891011223739009102607679032038564715564133491356740280517465017354433172492066819061485226202107140764178846133577266588481308779663765273453849843579277889013192998605836428886370836401468053315614242939793961049746837284292335561088988453656546514353584789326512335187412444764502353739157783528464567175152437332415297472095748256324923499877610173100128494613610431809779333736919601948793529047620042212298734958326883639828112592733184709704469590902695192846390614204373064411033009369789899583031031388644524300070226860125948092879763755431513336423565164354718493620430912655422250557176988310738887863881837863311661394257679769131719536483750955160413833309730260250695520485860857318135594766979905833215537922541154936103252779495239918320567846219066890181670428004360285780373057025194703638340066165156301952372128549142953993536074740542368295644716730406944042713008407210284940036575173283053035240067540871749973595219396895031318328276179282973245032869890463821393050033268319621133664946884028982365237142849750215330152265180250569209154002470083562015415245834374703836797758596553356259035489219270985902842740363430466708869934711823290901392052753243817299844187293807771306963457666276726518321382082040304962841789108018435373499181024445713184662037647814036897238745232457371640348385708439592748076561045182262664300769688400573659402742196036077953149928409811055196028243211610947288474130854637905212692394765178655833565866278080383365791517925628328967597369460631901941270660568796805133416535013027204577311008881392636522295883236751641419200198777812858366423453921307507992327961219932768795806730322413433326561107836517770142515395574722644530583398634314305746094602141571732225538150839966471312255314737504103016016609876714899904707282854599097079915421143877433289154040257691526923244518068105622875321843113018329888685427569808166292360140467197416230930099666610368503516840841809345096082863129331937192408465627553919118758937886922567988917912682612468038444469711795972750404568223921923685683726917058934689600814632280370929013038781957200528724346132860545222268148033065336744078208401789540177069657859482730382057372549646830557342883873666121889916278503360182550903812069538585865430350226030852924074453593247309980975030878172205646547186019404459933368120512973213714752991123052502610478628989657108177976460128023842151774286152464484730728595821475772432873941306045083588878770219555029370091560669205197291873591629683999364879648502686237976174331145798316151964621586743660210063987337302513092398050351931454730054692149229156158528589298613674065225142741193992023960228431886376708452705631207756854648599458716526569578665861219971808457189704194754537554644118941474919618990272844756864161966890062636825024235754663899924190374016676976167932265041392259341214864054403726931273374431507246499977915666311446034116579238063271007664982106057055280538809257717727928929182016294862269411706663453396592351003875154022148601643172649609042407733712059632477560449800005264551503735473880158388317387685141026079880711529506548114094280974400181661980171223430346677087734734111400242022576974401261389930003168780305549116864337611994585057912763287642685494095897443951549907585808022025694450015707032421930790919551490384105733813584709101500492554611280468297213939642355410886182841607045870765372690855450938283696886621677851225117824779273267137546354551936290864803056749793381192591397555582893465353591673217686689184831780686743293684946475754960282442658799917261744031206388824013016149673423195366557775785765958478111895118067254720243746090032411932468116005717101456256777996873958236785741608986692339979926309732896204550406739489166107400392200596154546795852511614024027842029958947262521128151975295385289060035804442337865412707878565352136162802652629911919149440616655191036817665358867961709809152988376991922869003729362539968360346659750593751819519257615995303339923517775609972769683497275445667463931182482581549929721590918748537423810612291405762417167555251819828386659501533941120443062504514248650211078304392487549025404250969480096819000301612186139377462459516181907133409477154419257272221495629659515604447933317392967918752671816931127546575229307513784385588708158776830975731582347750038032759915214671949084610881702064436895833386524735684330106931808631255263259264433202093162148651827551603958677825633346691797759677331464038063762567946731595605774729709788885628909408443988490231755510035227119786237152137499966289953245398000226734466853407435648158863082462094652778663647265497282601439941299312093497294349237126585913840007178521600503270336555961567121750672863006103647794360151445694421030970562648757951475950665906951087278520483434383205465343397701815600179156674349664030715648127647411828540590991899060858867549698760941805548311602479854159889920051119180662862198045339425530795895323787643646296579066605473696590351820776425998451437421953262477868002196254085175905445782495044254109881574365882917035420544708161522036303133268054936697675029779956781634369425310293284375471967416487523471303004751119665271870496954115074959942733606230285217900171981171371152478666659646587998450663489413300877893417171468791507788451372206607450508388758915552280283311988267039894908338445229897305612933205141989670882585544387011258709137328624759536398923239542006678550550613498964209130592482468395939780569710092090118085136550341325664484089377752470434490555737521613097176071342033959771952376305767921632602437165852076472577680783076616340995862680023965467320375090591751909651410702732387864483951776102257642673207890898415999456873057458280267054628794183857176642211207974226630133993756733457269667023957238751148464408424031247303649044755383616260370086835360055463434475294047010106063022654266791064475147560635881150721369412477284338139378524386978102547571546747228633067219567248337382889117190648186736961924796353468423421600990824404540375866867817464912267998354995150643847848799610470687050716163597620580488351824589326089771720093987456912670945034792387305229355605192562967102327613468976353919665876074690328290817967678768965603357401251073395655810578699150795595506335761375603019517519683548285863253793997609571354018440162586265408722672231391377082694165061786359417787509339062048119583671199773440853494666152109154782838922440550732705884353193850664348933579616255520300989116037229740428249701700846702612053572161584683965681261127059099484782670643156595889127310129145993544917326300770921179458555777233750872831032582145849884727247536328748333227430318334427441800838399271096491494411932112677675264864412173362600188144687527731801783923299048280334031546297647039300081970745980375530308329238527747041550922451361960242156574615526450619206174162988728702617371456314764449250738954393412659339051477189405902630008817790688013897946799256552508170832027284275086772975407616107181177269069351755126500267051091584617757790382931161154275927983990262568652143328159583474047893761133022018505862850870052692215888175627047643505732209268714224167238677420377323721195696743591837032304760459900275078269052596284422421383426112168936907438385095272357758748794746928543117354321058862333507506860606754629495925148982636820215089195962032391266033663193297341814096718643444812743610416832042038040636406412351033568165580269056101836601920124440634017627874039174504420025890967822761908788566848663243802356799284474370650533646264690247134462421090382234202889578222909716992570064894338514088743368517312825296095383497122116808600781041439863758525419311628222892665230988705817550345238474306634753706689118206308255486416027543185597567334979140432690836228822393261585300537305687880544663002659601785338679877636023743958856191970389935993688192234575517045414855037750262477525384351863406802384911216144838835959379808825566794951634449909105165026840011190377491481331240611102087119162061665782053921694873671887159012070022114529579505278093620395697323761491090308629388851749262458466039646856001802759511305293452347743208785843094188253356459990827456643633512696748261174687755400599813169126940841122084077702836732899230118744413469592135191334926917740528319629482031195005953965383200232957189263784186190883734353949121528733520606007017746759305311207640328495953450459737222171582834558011716290229732935766371685652829034125864360765802315994482060915708109016504126486072300280673991404726850069456356564457243630767206746513820962560699869696199487714290502929466177220320564353585401814620299102675679071206411896499456606456732937202781222800108976254195808536855077786297140189570467311029443225228933304840273166274125482267653141173688016901300194814110466617986712683609850547285327547204871383098970006362682730132462463799169889201287667013541509255636470133864593032251457200942528431907576419376911336009429874069089053027100843108547140485818444129611847832868023733205805180170703746323304910818842999592872652692493332654519034873202176471791031546448977196486513589102309252166360326687446175566668888527456389126664772492013319974190508989023662281414883231244965605428462966183043275765111562581253558643259680818804388261402904816973603195293747602365983781295054517131640308133647946209951774952307504033163108467474259279091947928712547815919479156739793375694531529378029510371783816836983883355041202956378235241608284579785491259586365640054292803582454104618449111648094377772198982236188161589142709326454014429950018200198866159941587090583841429483014627372390782106513027634561990590226783256154474070075250770894175383744078318846926800796637577204573724481180515682264804741568326458942330892746133223296535507769611985957358988732836682805810141016502020075761293982528294499939735277626906047462251725509708539520991750943891438375602301373296540700473575937198267749677789690872852955745599750060716032828142843480585748043953068568299410409556561482725513079886108731762699131848110397661239906016592949234647399862096066212977108442236996080802940497187681891545291210517406029551492421413556456995902636139779780751064786909343058362289816645818474429439828159270873480790537446243341018096098121655100711327718324259620961948403248750720934165687015625340667244396941060532511578205343794568744882015389006249368964138333641252306301168958141565279835506841666776606797614941980055614523923074766245511993285367516259005032257631942229346275244587558677576862464488552423362490320194180425844144918432109720981806329051847429858380137778665192800240660677228743356631657315909122620495944171392620439149282770296746814026639528856498153676764704007113526924315575858290904043621458341567628605537696745658282343637298742783676570716530916690822603660535688957986927192104823812260243988873593161144604833261567038632631239913870042869498283395545116500373366418477272821508580191120791731021946309216297434434684126347521219126325399343950607866618958543679077135902326162411054061733800304644588424498833156861961411929470897414366935637820109252798777919194660917708706715767281601975943497395179711087339092821478427626393332955590818667528125983211721408748566207504642746782429453710092215816317813851738236113542457249829612105095348251080379492156348991677520960426579192029401679950415224660085720648564788714279303993020452994419435807420733265554130362099473982910466233244064095841123145065536030055540136419724034677322970754529223617129184112353377752620094063977719131072409751787329092650736033659673058496293459345176195245176719590636515214317051537363619310881659201644369496964475309973742724762938991631449453175646509218173746419827267452638467998949852417080394916392792001699485885708055877605409970681244575420589416885327177227607925562057060027387867480251807307433929602496047562358304847982937123514701012993161123193403886970645793422517577065106831591839456740181213542092702623375598987326256191760407660488541451033962971601557863498435680287626733751471173340961640059721706629258923187010091233914221442464398392633162055151765822405809764026176702274153140690556429189843125781567516508026791271377431360889708743633795937860351831432493685547573583987592905813970557648878718660577777785947937723862410814144503542677727037208721244156038313958972449897180189448770390373459703150968619856457356746647978474336808096607392103334157592769329072005272429063364831618555015338244848719575851332817924524191205804177635065180323427239965071255686470619383679924047104093701649979415297983636795188353512682745654289496645201948996834246661680342440190832728064947666010087271045640587647046964413577773229258753678916902982711057252515162993689312673847813171939876597701533344878324735737492538416015911650691082239236589635632962871867028297118238298636078339016622791466203124020759963873963971033946923929486262277629512959112380730706397706316108576367492276422979735215636336819907937965904131471683826201832938755773686472910752437539185950453605364526849967136122750696771265058568667860030405305629377454948266934231311700479837409906449252987120277239068302266947683892281820071059032207924162690085518621908468922584925346801744448400132658508477202002403461780842694956245590934103580155954891782721215436751538904001475932826545178366208573349897281063345998353721107058688283538187805247072981474421685246148988385447229603758424966665300459207053262877653912803675388559936611029685200817050437303660419539350106595143752076639147042472324706925712104181386857928938120394864486907258756463112932046585446860659598965809988926974639231702359284047714007297384442052338597440115213279561063079962832069709475332823533586824711338844863801470337372830114846167297523152427685355255967765869827763732058637665996272718815415577206398738644034179342587340637150307863472257209091884873558484223944878131279729917618386069869303194177074287848723412389896525304532206251634356769630920797118306228706056920854414746209513345676471804999169297644937460189534484950183677949512085752527160767417262690464707296752294151576323568148505678912164795644195925183181182455078876056580706053889626233336359460493180691021728645922455197056264794790271404762405070235546605647775117195953259118006829709020532305650943422364583198522213551988028880995239282816827187140261771101052929990994125768139900068359799507969243163970785345282230131027613862724589259444611684258520908923332235685825366027532569516711219445079571033138092428583864865719538468032327804507516703355346765497694464017472607050201188824215348575015790007265478933458111794279557054968784160011653461719612460194792063550051782672001890100136521621225722480609992297682198639983549656757199737221551905006366036628623257501786857877423760585749307493899049266280221452864634759455138803164810595639175737074398115897375178821397792098184313363700071451626274785216316245199254581123766743555556924234216833789576261889521268262568899126123379577956058821010588742401559473760628639359350596148076987634688408617735164179036522314192616633938605246929911429726844268578374893012622917951959204731097849941771306508362855712725526176141276426589525817099535910851248369757200820142990615868442958921879999162337634610891393875822925220634548598970905686808458743463691567415903132497229500913752567120706312547022790998956255469503182665866815592283486317438283065595128668127353945919179541838197758096362766654802556253140379451301288881795868654981795541144233265473206383704341136132383098642606479926727740630388217990620070796373286531161582556306372098538955571540560429888724389452180984660436513039202527556384450317888548001214396640075114102000560586210404183364928273683787967764132568163220684854412657484472387408592738738251446677266639899512672031322847656414757041736457827253831158498776027423421869279497580446456918742089118248656398378869894294271408805586073128460381407530772452704366261932932502817034513650682987831485929483457257410030025221891728920934095153151033418445453457723877782591658602581782773311759325820841302698364309028522424381938435968456675922826127100818202880131731785931300637323160893758795060495462358248160526866548113390154556238217207132473387005592357193084118956804284596219199624562471155136400462155062490572989072016260248555824581546981058337344871785323582561762811469399994827792259406016777596838110101282538277109980538436681813010739899049316609945226124667612155268515302961303114043853719389157634730374509290906761137843088564068684107257590298837028591077082459729444947872951003972842337241954709111495593590273181953153871724477754148835456976009791647819934444308870347177340348800881647691443259959260901590396645476546640456044739290044969585207028281909527369345153642338749185576701867167125475408179004868067715091911392524970317347735401169768669548096654697547911677826888383055842659822241224225208539077301444096799885993375006278679443454790074159304961295047725693728723009805920984984436330953732747809092061784857154872446327605337863121794962758241728255651594358128148296608461679094818232019957482498059716055979726888718121829478519192477613348808986704143682467855686120213543450330206081853463327165415833062710190807453569577528301651664213715756073502365236003187112247152323032330868003421870790245471821519078069401816123104317927075167320175575707166290320370755850476848718086358377588253380295454735058387538148730175558030925100044186647839994195792975550375156109838275108966107999691010273023751677477445924229447479379955583903492911970287488710917670243317544802048980851747647240553788130670632288422590262789984450669842163078663543325759997602722415874238825613407109007073310169569649855445397679088854442474016444660532725734993868189770606294497812786800069680128826222347422594092134067580272043741252017220610086861805947182008325045015802988180399111840602623489888057835830043142343029241247219180571126159262378463385097401614185147894707017995202304217724438226193015641467060913249839394504827384878614921311652768204983519726990918922863318247560153594915323961176106164844414617613021648754987157270067549141616924590467103486389455848955877713337161837128848210870402294641114929690842627397311955365355991018679319745125542993658545902111562294300548416799185592417738884681099496565680266759385932810889059585670926967446199978528082726658198325867621040751796176622298018147126830763940074401144607816053384607754155609955694806005479171407824275393481947517775749810676891530129848224071574886163677693897956337723322954002627170427697145505916991337722186478863767205045986420894698727007101674964005326960410971968314576970715095417266520770083042565505042020875031546730696421803581336261506609586284001905153175972921489286323410610977094940009755125954261639063111260212868217842631291449700982910600853262043395238712134890091599546792375437673839197483233321238638815633808864406622058734305432439719855499065074597954466563653514323758142366151378421711042201391758211472683367045278451148997259166181341099208993799357755964396702943685757166310275074527587748689234161119012473037879225187664928887471646747685105834269173479835928544586475798771194000665159668738154148672693452720637297325929501724171624931835718088061471447778254484097128191352195160664874875544544794090647883733133903772510462164680950041254641348213459524537516009916049925908226504601997794297575756381236012288455274994563002023344790896191444386184933583893342001817718485164033976058235634646422755246615665554421295474474225405382012829931774536122269046300925476937068369873264655946259120777133021234141997565253053521456957461467250493310141736474912952449043248212229117013781671492243577316126901164174146550529869435991059957209727287514154190525789835903948042949664570365615436186436574718204474938143535722535326109013951425907013258586938954681886140181396112184659065942571688547239055294431361031084188694646442511239345184822164604198868684774375720430366159430666429093967447861923312849787468940832881865186268898492819519663355669889939559836338487361732383061631880246798041116321633438816414915702840368784168638620285719671592603277329467452831642301639678890539251423361604212368398216346002584942842362677513657863682304555514427776529598155241248403676915168735189260145075874648497695929329167362584998137110672837364696330816236597200285039913345587185605452971612664740340947593216755001265228175478622431244568980184154004049258848056304951054827413080333975127688587517388984990127025696747744552936873938169959932981726664614234976703653841112825326103377689605478541419321847158722834497650155043282073181240992128916742739987276891605157182805063309289447110831857429037734063595380389493062791970267476872496461541111727057795671609808060586524399372626987498918992658159538575934203968195831663997711813698671383839590595533775513356355024489885341239274927607797399424333775362847091494852404225510374147691768840669104287893439888973792483092343736355104014291753494870774005344264906982481010824471691847020776123180362311854639076763321383148093407852478757222863339030842356218409273395296589799809298950312641268027923299822763495260143873451114235141215364129488362903339582778742145011280568369573717706833272628027765441545047667399499553960891715686197723152187031726311328602516967457833609833900599347966598596913782846886421835827851862378526974197299068946701099887926712799610545110717109937474702264030779178029538637082595151059103175267175445316639502951275675820123008270595994400811997169321713952416835452723728716435775855215752101021569565600696701285632311668340804329873263777714866478008293580307997091676276042536613231195796555508564150547971248309356153985917903720311390834325864148493370431264796531270898714050505931660142313025835958493921241429368805990432081969613264225588108526181604245854111987713321469160123849412906732458339404332252479362013725282562365116491390314512434059352937102989554526804747215405206998817811948986745076748305068226487080498342868100370777693134232887701795434427915528848125838677393713678570144397267212372924811699325141230676195788638259578237410522517307159126033793329520837139728218887492084958670707975579265714155443506459902924016007214062082656623503545660285387413045166967487969783334617701982148447881075918622526941284452695553137264168417397960288608090600854576187986486857375012137151096483163071135552277974380628672313661319124643696630769943116819780952932090297579913084470119445201047234159953309320153017089564575263181368429943390681901186051521402300316217481525140944156588673366610221037702536737618159148899853429291737797724956082026793122683018449398543993822867044966663047263259661613341931080949986428667078020255406391467312676779616922978260026643403291851521338552760424191597728698968499754244215715095298246457362355031154738445159254810651445176953640380343159396601750697781938344521815894015244957262710708013613600187498925694783339348173298966030770151261692490196427494252021324365350954509846147112498926888749337600422466378999963349220878173201589167088087969771797799382771223332447069437487795369283831439086578091618683451162620583432353938324750765179998945101260512638767742859291611730542588093713638710058922566468639324069545864028085293957778790179204181919810431862418492415073818849763578974154658174206311519818487134370468149393551522527087545825374310423802613731049910601205401819905078578065176650281229849610710630298073600210867605718142933814655764849156077132641393759576924037746892138223375193411085731466967433832086782260800948327531453783833158829809914199323519151253582320905792166674694428105161269212338653525478459648889897568195327014109769501352294151342674625240294145603292068752464637392223860399471587962963429879100156186621895633484118351168099683823464123212573321361168428505348409332967385647958062993447588509199502968383219085295599638734664046852158181174407553062534359410447828803963554751990603537202295995999938783094673186944924569764665950065576687784210627825556420796756549605195500205126355830506285754559901484018834093033457842944404059627365347170304698488669321057879852046941949936466437338505198355463126473463374329034138742893606510219526776991252296709719711797561273627807255070804783867374431854617048076705899003286379630230461094812865563655142315451641077875713759550612105773290335594121424586013855652685355837279610435032199128276544487214178216562781617222443398760337904736985732104225201160186320866539131113960615559945368198449002342981746037418031559073236616500200823118902600476669811738185617320909837640697944758371059859270063986034176725429552772491909392238205849900990118576148476759189257310487841629306045930577887393127952434515709686288961015310762602683697781905703034228409862059412248961990472591836399911726387632539236904663532624458029345583902788269754892500583936858097074501217644750665640894120374305457537168248639707578600636228460197229374020378325445018408761388344195921539648492596483788330047100388372945871573552537205357224668844467142415557554689444094063150176953917003562710353560594838468656278064475816465388247101898527498629978924480633420729761329103340475126055531211316870664064972238999546654263800334412773180240550505986916729366417333336473567883752392740625375696657894070334469538561951186967254091966098033973068368194798698365385030673725615749067703642585300641164634192821013574421310023799463181297553380723520902548546456295914234297162310447663838816253812938467676660846309723569863503909978688413520749610018354911658669398403322007809877554698691927038375855939413523533635984786217913034008063278811432657124176844404711626782885002594264676773580741265054194807378227429570405262932360359442609286846246685522142169494632364136021268405720300558032244027542350399360929523586501427681213770287538707609829371830958659049301461561085957650756349494618259386384000819145882652823225324384880409860548544213575487229780568427382960895364793291642153684130092725214296187667168409101701050954676090459954193221641576429548040730534835947936824724078801061985482927655521225657498356920043278320966976989555049456857848337232803250062567148382345956452950069711536406617876030676824506377254011856007382684300197924104091972001168408127292364183064073460696885832980065521160166868761072454714116145939640990942569671417169530586505427600700527680967371345982666475226060802044541068866238949862126523237039769236535160822595974692976686683883540764287074930270983032647223982220325866691739112197886810762484318452628822549762711963619309849131588541409480847821979025277875036949442937546088809773510205227883272992906877916042410359454069512092872572626347169773833734008801041643839691556744411579841327474924687389652006440231172823352909569050198790066388218780311536286569565467115844454157674591534164526359723578860459155738717461348239296446592254058267818627434637882667716538840129224534919890173122851082422545335600636760094166882181352852543921930218205503011046941500015891166004508479209412198266731079442745259487695212056092398695869515488973088372090865453238580691568041315014746219510358149271454305568786217071766400948119557021429285360538208036323946763156554206229623436700156679182264292363133684048198717826340977052409569623937174532171565600436247441201258803427550500628544847482978777664982019687228542246101588461085064365204617274166573954488792563382222669536377744798764754882422515641156181596588548427649916560033599245957562141782274871971462071585320125657620578603983677855949797866193926920228137792895819277438945864779479140490595461868236454060516758275388872418815522972738586363470757407761488149926678397179153076407727210556503918035700380918105427661152526875068199357933821612944214422799761766587064383581609831204090765299155910914816490065495507142491315251441992339783448809598441643926382708374895203532758651622210672447563879501224980030473234526140160311638019320643446241560519216252561830852663142850770869628702812879365019573334910312741061256825404437303865636519401428261799444291432198914864779245962483792611720812914813792138847619450286026519589319716569601018607400479123977344089792871994387507547048804917232391840971038658001373641170016337860802325977989960374816213094696850620897832178278075307749099619170337074452600685387138272038817305337759059345343102693645326784885341397708539172166501119079321219273902634311936989736315552426867546654271685604185743609849305897979541167703121973536748740711269024312422107028747264823130228173370303794126613681066434212214610175368623839198385457006278643215594774336769174504120259823082202607975085388670034821353905173732758477524367900158168268704488494098168026022906108797684133531571357657125455463899786164762226867559397522285812178204894709405964338876185157044927256856531679744603211152351870679825932698573687920046601269221727817378882019791055235195569207615003759373864719681638545409319839852244853957763673409101351349596732591013448028006592046153076834774477984104300302040841917006685771748757268791551973086324445270374295119482406246681783735291290665620048823317107868844138339057623230387744315199252030307581697078669047499793263044755638486780527124258469878905518160014854385366635014523197971182778806567617442511454521628261897014878011362988628217636017219765986003854665296853295264778938018627795498356052777356182529676352016835031819100422158617736791110996041876647401737510826293885465955143739784769439893990063786467598241632570794019092404555644911273720698537933575745352087015665727487748584336936646883078195562868632586435770444496711854798880818216259484840481961828412264218973982872849731220912995412838800204566727178332708467624232635574020822547229606099527672416451148685268131751316236814556386766747097071337537763215080326509681618502848353729082756097314688267176164719708570209216599387342155227430676681348527098215888631972077880364493991625337024619951149932192129950224006523179111467100139533188209446192755253756775679026589867875071649763305592783349782188543474879896792880947555244857665677471551150771891108145356239283977065689740697840676782748570909086531516467116584031853178569678170302481195757912863715168195781740615927206658097646306521825887414205013433359342200337837974955144651126500820156223576159396960798411302362131476140981320614269925054632188147575802644092607204289485357157238122444106699702788041479839798103420410864431794721662385542102559861109325267771102465235384780952416634918938190273835211019037833434407844091811526602056968844225011089368069451682461726572850773880021323589903429460355086751266613987261394340542981878092678728555773271836125937749990550287581942572434688719920097521522544265269107445352682759569286715905136214294539141726690927240555410682042252840100759950839267099699768531728794323892955080193479800641275557033390792334132731166449656495698850244468490231943376448414778082327133217983879231479476192627054284560485178534371927622576666596782285895066028987287387876713392088395086132201158319818177015754481304198957616953507604088031555124244095049116488621374654819544366048159716481188687349486137698927858880865136079537312973479706828066525202370957603486308975755380901546990699434704821599173668452025496086591025019399872158532183620109268670044548542593563290344980195930429265407921342628106325997206965680754898934935412376976781795915550674328492070522709500561028237735277807043952018808040055949154010862442128049638431749750667896159245208405089926228726608665177275811234456756813104149404391947429224880792904999921333776878216916605005308122263886387399748857120798019956086926679828549595069881000305961150095746802790817026253674994449673670698942272514827864352988282418434503741853938654558055851066505987384064244537929979270250551594051438252474457478659576130537582840923921828553532804602375594650926516328199100137010581754611873155713255808691162248268230980170920157736788275447084734298273241931602474190455495839966512924336844751700729364914258402162375290265446315970931095000212744938176125198372121223572068968106162399906516163023602564882866399626668937019511772886162129933237399941836040202089579894626434302643944476186632051967161532748797532948585009884040526057695565579787632315531372746491585147781337764504029801954049433432672049452051606501496135219222504272199612700849031574924509120098308560867437954862808075698622177348106943834695585382816949235233736702010633741009549768309884955358861408585967471188849058464155938778186255756093297173357813607335244740448375455202128330819094318573262336120078534788134553013341216567438188752509495184902837505423078447465428473584174474409628847198542341274734551228771382338307350745458776152347169783944418268682222448479445580684037255766511646724490166630602135783151997011409740275780133434940342374753465454158379675461671490263542304292077580204406945875351765774579221129568659467210540208501959077603400036338865551273346141432145412931611717300432726486370706623803858065869646866085691154295047487789583168519406888601009809425401757202070099043078112903921966022069145484596603835624647638956959741925068648327732422777331843148912323429197320317150148173508962654078480886329110422195894445243995754876582702613607848430398192640055751424152980059392763387187926638774244439122107162885015280707662825702986851668095713264545533761844142359352389392913652997974183829718119825300362162691682174295796692499371332095558614187037935890038734588680523980250124756743254777530052051130347939395158154749977948009703574326187349885707797668019602683077088210833376883494022435319890372800802304253554628813308164072176693740041209000177778772662313300185559917006676279690346517563119796281351776674843296122028764413336453580554280888868064248376872998890029663323724780130397797261854236058646987791334356275783303433869377720474690436913174453822215491118499125870897157109941103422518705289825468593811839828362599159154813417122094816165899594154160661652344139134882227229428804133612569407019899398610091166055118165535017651745625347417884724823045780841244798514214267862571421334921692749565141867054771530003910315759732852462272029937407123114757416456048608488532348326827237471495635194747534854565115172375115116925141562065330490349630881186197998970381342519622050453340651558022328220957309634978568833219237489716334837927823341916556559971474341182363746370539752627962026932312241491543629049402119151141996053730807378959510666502560402685252027415040390764026100697772645939330011858625456524197000264995451772745009691704595094231306531142217700632430975395527912403381074040473477342387606579515309540972806060020871905971137072081334270214663102542598775724868595988219389736273887369494186447151839987977021708634417352434036322902466560406623958740994499923187626222730007144530035291733969222737270833240678044005760158181599859501241279366556661428029978892764683502634043442668057678174908594373706896647457848047033785456671682575123915684427489668646340709467726518002858253729317788066950281532652941408562617627839465854925177917152080570930459444688701274114889504406602416989956831806125670563454683180989357567318355985658034310209332882729510343970254435505099714465061882229232994386848993211883949443625993026562731303927581822266405945614583772963486554459960236021862192185034409825427024703391249090589548209507322291204426693808997313140790197644897945606579599721355756491626468795046490315889895405442757687992317985913100008924818016319838203158230690959394965013186037239256616975753907979529798238266018554984609899428013471747675240405470168238054188827359615056151688523940790437852082566944096152922394543943737849685772576600680693131035544090170854864077412118451369795216116505110582841606843243977832595236326879443935466216074603711847860725337197008252073755683400864344688451764746000591258500341526709083944816183815381040393832499996714492480114776745031628322696979109875906738285325479000284823121556679647772517635396855941056624679574296654099930360327267947232249812164822019545891514703547899415084573824423611182463239489300474395698905533139470500640864854456956342634729434922425833475826853062511185962386508389069999941629378482971508188695674545170998485510341707229467703110192683394624545021713183057484357497662349562559274234198735441605086447462842515248829045441216846943122515692808801728422400261777317087478959032824125856343674087087302151411252577433021099227173579686748252479823782277104677638425933789822206715534306552583360738390617072335391604689346127217129346464565539396907048510729597800996130499757926666398646818443249812910117625291054006133657742484970647052193917797930610058840559087570120159145923538054579415219640013808563396407866961673950124996145993038572852891176381930199675008026438426678365268342985007353986604270146257895021691210355620446417077140646744900367635089257473086337993783944907813227553631638953813353594473494146390584996326182106611759267668346363395206534457816057211440980922814211869530037213609959253860181677386886624769259257683376137652633277402085632303477840868665337257171749015473029242829702924086986402890008135634428039093536615737621495488351083842896813531533909424285626211853253365476528707795416534917274068107092512821545296701747140586339440342094063299064415317847725162769266487314935235843645588239889927111206683687323155490164980640018730681694131577540944400862423572870931919350447549506292731029908943167828696966547059160994082193178004298047419012127885813723910125176990901184287298653554292931008264448181204882689757198737434587368178407420072134352444410509899370085658148837476243657773276206179769531715770058111214552664011991198587322985325324367103673746867504541837615447384706091875791666651078694271240669597021755669678744214831142972012426585138301715575094346468002390061081258987761518533204454019805394464617514204900551618645014772562506596421331060760096984388801073844504220190869333542507335746153856019047344463651572835825157504855876605761061957641441951876123217716338268475772939360574071591192203123998164470383846024421063146792793528284010321567736863278913702213503362207528076591261680403527571483769517704252083252382609162958104517954728605700768359917748147793338413414924134761134326670828090948837566380620387641978455093778191046950107966204004846949125164548258128433506505312192493787163635183441962523664714948704373142432321737623078899514074103851184746104002055121453329680315044411347525227392162128941776392171694823713293555860825001192529734400857399427022623311907155605778142385687650052415555947999324858140874937394608166010593672340970044286572117617104521364930448602902851043783807681804377954727620974760662505831300485194467652201177991878827598631383559139012871815968811504963438673824859827452127643416461224448610980320955547972953756022258351337908679044241471458467558476941078590532645595670912316695373268274173554327789531880613631132071526454996650863237212920709445237304783821451603060715570344684203407999843667391717432322459853039758523282904895853738616463227066821401263444348103110703885509085618766275810590486169891671721977469367988073926444700247900079356129763402508166379060005850206999380705008802509322219858315419385949488487667776602968183997106322767508344802459480058446590469384764265610258379322909863985675094678825370569286579751420844171407126280479479923936973094459754600120154103497378444888665212666092678287714760514353170219695206806901712262346411856221404605535291146896503213217313558519115234522728262282492218252112971564729942359669894920297586019683923033579913004489829628194072454960186650717404031626534361510199659812149128312786372458664553904857898653650205356981578516398579801395662414764284471360845037269413706264434105172680761356655796478865373149819202817155347493415577239136283712969117120779987192087389202506774584968163493652723988621846528278592807949775472890385318428730752429654977869991019042836997471664787596848610195537139401913129340702216874194396558629997070195288424320274143505081101122467930780783738996361767240226298220491397443263654223621530828914126360171573817981820712199223154909837469596306688469149088075136288704436692475763890199970648720932054425797828375841790477093758354690680795147937949009465176374573039599627627136129831724496575017503572202304830935769548776782184088996996870522820602087494563384330891244703780659590434735906977757482643118859434659597677650108360038558886383213356770990549225047892673123167830566475825374364969469245318300811184195016135733229520983564151026726466310282407309233379010931364642350614539433401581754581762636525836529116476269192618322283497040098675452528675929810565520920306731495221754869921655572327556628568022081976128513816766957050999632872793499588274301955648335753388989444633372264731069563284241909603994346097151859021185435187359570577536628196959801227643791132187688037505478928933465150217663523265253346044827778037157588617059312053467169198554268083583218391483715712520841820946127450542865026152371561057422747239197714549020406295004186278250586505938695323248529438525870851648969455814590395876995662615630592709369320713184852112896345655141415500556404152453376299419182910997723679277741334757922068531310197195660025123197751187367158452716052827904800169870128625015020490162750668066225463883933079359711961499300019651855353630121600920666471276184281900225761455300056694199886971265068306215379481233051345559071835747451047176373221317324972149434107860176135511949050356024922769524850138091610193663722173242791480373708739023847977486329487491044674049585951421732612697774986813371447770052841892257451063136364640616443901028271059555814024865301025309176580826821747720644921389365906810154762636368300497999418329944043377725074068043863516003365679119703809756126194518851929071500016390750692682092509390167144608315838661521576579991974791662061788663440974458337579004328278830767152350742706470178100925503355963220941402611150101395249840014485821876940755164917308228784664751418300514192075033051872037091415850450209724844072785299816037588908149264540264057111722372694587732411311419732863854826154639148650512585795926266857259361726110533347218271614003915181186871298995979860746292637109371234517223167669774472476041327106391161116508178591917731204936694167570459755731377116697292951124978606477532001681246367766443604770237769424014197529994113195215025401331032940667703927267711714727982609989442979165949941503051473431254253880661343401333876536562376493417573636023072460454363912602779975908646057151361800807174607357198296543059086285797372394550001915406977646972504278091207392084158241979480880130869560428763107441107016146146207766862959747036316212533523016155301579919529322763484691599147459523983919981059603673008054161063822188874112822447359726296137640078818565824286630648455454443470996037491660218631647663874190898012545867663826871842586387345161069221225176213788760237242372037141301217414630025694326283105333806653905205280379340241142700210256359613656792424388054914201743866437781593711818996725363387214706740772881225033109651462436322126796970862923275447942410847995383541901086664723166850198491016692327953384667896350416397118921891585272823849551709904921370050876747389379014195434058801438533758551856572060965334611029991185182658627790405323164228107896758643469433504679132593444538357844917496986351557613875211372635936116587039816951600146782632866581937310712856859318597526381347107099862724649030074592780608904975699572452315863013033916098167720406606384148119652062030457229760898311749834081393541940573011558767375271110279340944304924037708855114119409267829818770343298334248488227829536864394885802007144763841347863427199108570736954661131333817216277897826039255862645536453211676176656761646846062475017717837914329472998837494232222119949517800059230741358333309169931254436567493591719671058996462605768447391343501201039376387207303782051611341728668925595595525844402638645941060407683260854703478336699981245024676441436660984087367877262683860127804389026404141055184937347529368688340632921046836403240192086065613316402199025000179751181162090135805107912057012623699041386878060860427683975365710539064859022703156253925865498403047126202792113751030040330004835988151864800686852139759197711785630227545442266712383346197009141705331332941341439845156830160299338333355408302199930882778470878301744722490501187956077658930104812005497213957186897098972163691532073584528820297480487842055395281412390601154078112282409266997460316123394335444034305435982430360624783869591921495560384033068464693723715838266956746890273186801361316698793045795199983516906447572990633708152743559652001632221720443369496237648608052351938991142057055672365684526595102431054525926148742813160865832271798579977817966044651039802157319684396444846334107034989360505951400521938283654321929358202998630283162875827548881668125137647485322708207731915033815853394896289488022078180024148259437108063098457182768977950344620692540948114192164910216907821045090757161212817979821773117328046076782888488398896861234568208500684027706726393323459610941750038061951140856593766022527882003007582053845018879333004100803298574616441267936673002036423003760893888484567627590051518348821373192677840339160575274526009571120989189775069255281638808111333556533790511128012929168371004425860583974943284132277861041674383299021988347527529910297900075829461585162511764076451525213507828943162188318163026240330156674990095180306912254258696649440871024136606601308827151778067875960091621560139940114210972633663367903333740092637162261543397896012566189099169848579039416668690281435850723275949438964963494854938722146697743334003175680171741631416133557576920996181277029677861800501853427937390205659838849741397243405102191332437930530696031322756522617979724234784322318667230803096167515305069786620216924961275017828948439249368970988630081191800016057635616022422091961125883143163680258364051618689993159577291377645412476973107062984927530409477612959762644400130358255650864095956469286290082819103237702307971840655032167764509920798064988579029787617131964399476695748416101579396336683506783374174519851214688700484788864110984814848389783456296730923948924558260195014297255284428845175810854126946984937476650985232180195025555765573721352168075401661733515578907044203734408172543800438560661537841686444084130627910129181583786760979993697334097570420821497475170177122823030594359977261645908840385277376112529536486325987203270447043799225331406939488105331430824888108142265111069967001866098729359006704440827094873237849966502724624313443795303998191335887408536285279831891018314928852074565264383288535134364505103948747407973021210477966615397413100663542700476278860621545981585099134372117231121942709962338098184662945515347712429499177463869605036278790577107947405389662871904531213720603653648863066067422783439704985566366153475136798897291242780510667973199676478910577196387248401039068702955697734379957809647998440438654011517547656501865042952259112086632042748224286139966500658307568792593110845029030609721391762745821001773370027719718691693217317019714012252086903459598477378794943454851382827771023388725676452374817971197841929546793198742249108025243440858099338591830204316383796912737081310711652862955921981429543214610901151376925498909936131352186850272711534538426557794831248850368432713374661854717979277863815418266699056425977519177399886117532399732161673578962165198710627283992823370715314117555396861815046681226387222915630446417284655304700397083040366543348751954201871827494591675645094065885577031479429255066687879058508079880756637585443435049821652263863579232370165279901555622303663272094141769862621138713977917831210441993375825332837878527034367581547089889154150889059597134451309660018888321033467191372454862672980334920456840745936218342759406904036975500016986329448665094631550593063745094521374427052888854042273013793352248672653954430235642596595146849797204704548632109529047497887963616922824748518676783468918129182039129250963105537112557380077917965595787241702978085231398017505835734050908568450028537240742566514677777360784033233437099839187158429350976112640107165240374733937271932936094843385832136497369798404668684580069862380889339643086592934751785387317527328648679441024364374289006608673132482610234947243130535528376463159696372109961342956443905681903083852914767696636633636494428276322219750858826742613371095031538179387011013217197464618519708198388133471457605634238283375453207805763271253443341152787317891558615177149590067455372054146090602380444535122611384910096462953578974021598257975414330742885189534270801620575058949220511185870341615048019791587822122596745313218276617247987942048088804434757686208373604834636747039185447252843588103738177983525597822142808215467923786921433509397887200879584472154070067646810142051486379103908432255936700831169006907198758735895071954493087952887507816416903993040244520545701004953282891339810372685442619797555125494787677247644504078058780643195625435690092091488610029863121429379049208415601013168181854420417918916548498324908915033979361289532559036300374717294301793228304169933617579830897343443362065874176422668890465316511530458234472066431079624699207271745717655661553020297194099509381444355655236664184240389369823134066149936789548828428460939812327303350487127836880003406368941850012057039560544124405563896069822261842810722439338427125785356134461381209289567991783726902417984406748807133348348390062367343706253593484130315878181570655239766128580127904128836601152008976035370585664169714299261446839597243807671128026378406013468156898507441819325086315274774399654871049733588859953415679008249821618923277542299911434271623040158305915276520805834763201614993925327827549790672733031211676918608561202671847876574829371756170333679017517592771805954204332765370311908763434838444278825932836904774100011114819998654800759719506079615775444927510534444885085112775025094410793250357724425161158758772446893670690745582580187341250341330884667800326115930470934115392799783797880866401604926011911582061757695937596073290418172241756841626889913559745141997352450002614734766057800721223579285817670452898820210733531635398243546840774054475790628265220870630563766166884506569110360283370350472948529534819885111023366308519924411326872837017049063152543521395823207254228570728187020774996451269194483598250144390076702580849677657896259838421772457251475208317227894813373400783119048721926776279489421005498092567127979679830940556648180721000657273933027485692137368522609192216449237676898068104516057708146781485046970470836300694808479743357888495485699086893259694025299890811176158518213122742390836195464786381525679663486159669894349557487176484474270031783480574683196211052726777608519776249169316619787875674511726998182527314593300334185266134130275388533493953298167489106991092188469358868229102022420159991019273533453050801211228294478483533224597636866338613879404794705867642574368629870667893483724587048097192383569411862873624403484394465800336544896381670487068628630619587975212763403574612610009536903157604704462792644304023637998093094371244742553944679393316633528581968764567642657577882230183767824679055283773027628913304814705545006400741480879241842833449626100050569930110826293131729722177993748144074454582365434589561171997933464530861614160111142720756965717493098159678514114108178427148893131445920953507930727150066024009778618484721850468436929031882985713239427189191442241532480044697442937052638642420538360945567709240136388201405897288917860787641912986772234207028402306135213094064071389519151746542851767896625690011829906659896883625704818983858833317106664080180984896836426488890402783951941173605746083371968421218010179382004219587429587468079782588160832173273365933011762272992859376901013268295610561455178442178813951400050816221640843195481642977622409598954948860568435144426418945952235002751071901153444973507550839480902422819311470389520462120621165722211507359258276498883190981572752190289580565094147769656586813755658611918433850805185768195800753666997344502124786982715262029220265789776375366332901533196197576318072299089547945156060972341249291200738536760794924248993712109371425192361788195539107758209282840392768033226389977044228099496107989499487212845592553527708034801641556912021690031316125676646519387850438416701213809002634747050543360861793653520066000902431589496554180062154884833727537127416992496258718947859592481185434819925313677446241059273105230583803350431330097794895549799397243757791548913069084668219696948776702031561543714186421323804653845173804994357382900549185555440553031360385497302121977984326650289001777001799521714026309724854191460815923835569661712260657311943698635967754496034564590681715419237964963089014321025823649497918475290953849829472945683942759685935591769676072841937375819941217313612533133818266327191460770306585477839707877962640991255076178145415981556041115102386174684156938080600394780614178950201329106272610369737278358110368409449292782713926730497761643600388447298310343437775564615751373408124980677174397532787815415976119740399959292401166637997519196864595249910324726009072753183548097535283402164913168411633382295002560552654236218997786685377751517007645476489373344038101890945247001546236048502206119637747715429024911834373436359626988541197383424425503117970320011574555951885956620956130092842846462262874917649768796682333477132655141230662920088720523398447048274206279493710358113723100792738788122599506986955194574799045584706238956992262181772961688823414315295538918813927091653063305405809509379478870045245138429409348866992746238105062265650672828392385895381395510916877174603223108928086252613838916074335603771445841938779159007770690447245742362305975121152104570575696201229517198599851938934759626213827836271262802755339000317249331647938160037027487824529596182504401774410777577004481644331523281414657536338789085774376292005730070329821611791885595613431505549450603279757338062810920210541193084912020665656052044367505369051540117412731510821970056605263094184201652866236910704789534689466684708332298787773159034308213097605325321825917935711500798155875728820599768327741457938453151739930130820272868128523586307431085231705344385120371134478134408422736041482313464654363636953015963031208522754245268216224191291572693809716004529125480508979393758196292117443554454056306637076016210034737236133131306130225269698187847759578321415362085010564111549360979264718028780293120657308147219055709137563913190136808026384927592459390974749239511563409590106820653304959859453912370011874246489466459387213647423319580311481559130631064242416450232742077012853198945902435369932137190470527229899527184778998107348592286041398821147924606331905589422546792973695247879285169904058363495705397515788682166527784232639255962371783158610743603584591919738115115712075036565043152168334452442842308246301452709235231650789521290886047267613275597154930829330563436923036424422871098278453000328764773326106473259889523897942842333031463981506721869060484903398880760012942424186998626793064665154113884121150865808156934392011700884132892270891921034691750285684715828760354661936852832839736638465897059274014405137379642488861045176631511828041597833645192481347106387551492968491540223254437772753335024327774336044803457693148645285600210049836273378835656267022961894400314531238813375355211884456320502399496198258272426198650645492527277640103113693168674313638845133287921734190166027047007405979692319761190172939333867126041527072836594654178685100404786585301880945158209929955352891384688196569332131992803553147985434532659976032865215193555798040758365739919513856732176086878050592737222265002759915521910448517802371218518604134372436106970374966778439779763825168998658413510783376170134571388142988969055394915931090876447487224183161516232697643086519980895259057206264489596884641383742326538874581895276078788401017412641126160870289101310920656786195871063566876053757665890453615508452837523406604796148794561956511294772543524111837854871603463636640303986150401799577081492767457483160973149475469273538423932174475617082593784219193255475463230001503761103820447260173228450355184425059393534385087589461144379378999950226782076853849674562440398876738857883030720116963981922389438968390946505809769884123022512084776494383015726742100912665051574716671327523298808289430308997963283537735317834816693956453400625912623148885053658029444178844844174864352986739279598310695398431729728221712914814361977252664008597319653616080824249470885472324393715580468824178511591136048421705023887900530762433651234889989523485661269872058131081125374416056207240944325660146940447202030688935416257085318301998501174094598738944235243331490156472400387304796014203334559534636975727812319760009414522423231453268409683226806274342800193319477949483997998951845769836138783517893750350147272826692917651042362315181323218564161181621335460466532383975322947066593361348774105348584471017552098582733229835272875752811600846350901711739074350698623615658028270428504478305055301125997604755186794295375561681116872877918071126500270285014053537970736306548347925255641531367516457925126449230344386984537855397756464721871930046948644122119118145439589104798501565946633630109199395975464165682248423782753666129910423736049356218134775125523235272931539115441713019301602602119187896245243722196609788030236292246519355564360639567240589600917349027088924294914648005939261956368777781948910990545563791986342000953864031387376076992483300489930427760704619832473313380381467134948618980244461434620836095609880960386336671575269003111126491676650181194145921494794846483231891438525176828411561287806674450658764948489356828585644899156971030940379118834108297631292652161897178834968693107232137772178358438476325656137133452019924600155834587263465578733283004272058367464371005492093575576829415274211063844297105256869054568354548320252585495812530863478100558418171462234046290234585711103874984959190174489347645605565810815323570150282368991946297686702388836525223003336607859786681306470984111857397681895788334809578358573161814362695438636642413393613799915245148205940740101399398610740932428755936692598623859790856559691381803890790453895957296041000858825792307110153409933391341527915623987625459665812093651697618958764325519109889253728510884030285734936194016413046890558575941444622753055939749500025216892376036311080892258188905654401777546350204567322591469180287830698898931524146276178297111947974721108064913141106110501534567875752722065056501887320650240557382674830534129946009549055018118833991421110713068521664161995706686627067907717861339207778097180512705501357233677862001790843096724867299030508255348785689654625105391786746261145803852763694859164353151019144632859319425872332690006035273695705721673469169442327393569170709147105031286446113055643221049764276863014642654469432143307566789905096949673081765148783068144747861727684182639853075397826084984705367836660031197430534867951404086632147760860027856703865285809373408928359381492791374990690425789123495328988209407714943655428522233332934422340292169676014413008834756833080214341926087394856962522629480437054906072997567212520426522253753893608555749366751179822340409261727825193706760038108079501424647541685315003442124797130289136780578612651794383063553847139751843371532100172824548470149659263864006945738909047712740895940237920859404045234750971653855746321163002279561530389088349437423913183575118787627052043300396108230350547828447562038025799793469718500875245701006674898828010290012353841889801657189990014589103927433364023817657495677036839413532530535844256717326832626721256373927262207348841386635917110736721037640333077607323926232687659849909125741688246903643013074449753731353463196820468780266577401757955804666477424167831326309384168947934922213137654708043512316975254058694059982538695314981982825817028047435136974089760604015892347716155719034743041835746023497706830036765689392172005377481945267589952881079600203367455828698819783882537624701889271874509130970282712823951469133158691433615183458190752750666537650819717673901500332332699237936446085402934835230845575021998844033273567671267354734756304774896067066127083776197801913025116137465412891612432460859747197382015661034426034197886648957173299212256982797823976195591277792459877585958411564028856651848859262030771761706604400840988272240200534713521766801448386577496041560748904188037754170401212235357304363436697115230240651785147044317092480629911558666065379250289854669818425965662214206702336109533971760734662507780017204401584501088176359716937127995460730466961539332625859324973786641047856433128341567697976241405742348965807985276489282167181071086562407655670222411949793431741561413097758606464224829396130726614128978640937944823106930954712895139203991522899031579550751204081847149490274394719736701358009419924386910307992442147602763326701773631680978882208206355797235604881874539312232213033880221791092107229321695264761481800079687252929689876717975337013977762834214918573711573446709143603058284422660537689568579723794712108117231618290408204390797742581598260073277197713223003269989795765645071156815762639274709230686516816475214415407854889131055307099876537963476952630333128653451324887706690905764908846310335212210986573898415154604914248688974342732050520675018536368084737678349577445437479251587163674809296217826686908947885703479768950211827711955104346296620169939213886201872040076827947058272002553351798686997915770476954998261654236455966640367997406470584795696470923290534410005615424845148040306760633259028297709717611881891785598550341846334482446977263351683123286836794361606714474097519321842893999323411466469250312567858494009543755508491837797327490790018060232741670097913471621484509047405294714774494322386300751964706590831832017032224339981670196826105532233668698278617211904676510690696417605831847506148437056419772759373857114881424380841931888124839044287822173031890937323730721491149877206915363545674312981007638265459003588111821764399573141446649857857698188898226249430700060209745000185615764177835636655912992661998782195246666195219209309475274589462120752814369134580815078456570706933175422433852550973681405998968416458767346492861144018001333499288360377093343278489462458708148152189191012665856112245551677680754144900017343699592963649738129287504905974652204130784270537612036986869094032817183812279870985373835571674053848314005267590627224806394836815397160370455477378423184447063953028491626892964373814555661257623681489384139989240832375423142564519848748617763492587905385176405941540693879916287378169049970670614659468299976115625813890122744934692682171800435617558396409589908200832537207371299465480835025682672753033370947100081306191938735041428942372750202053690733301029504473673222317662324323583347473257226358148214028122395000800938966574096730693511487562109728627664655561111879824330692711587931550854979718670588247360185049817725140618459560626406060803533239118259521727913623099007352070390023933538996393538172312949321419382847700569843850076001800149615645129123185274179791303274725986644339749573109434596962246025297559089065373918548191711519412293808242520699144913092614037183959377961879862455661092810860004544099568030509725548175195253954698848222997630469549376017100436078012490137826650126118028521522005359659232559752211477207870401346813322607904757222872061178683084926808456805022393925434754876016498719948329195489265608415359268502461459286536268732186686969431574292417245737633780836249331583036493644263566089873049938842144023208726657214523538197018872317740163617728204585771836779572431400167892651959032735816625803774795426408161852521816248381819602696118910386548989163264471681614190500161216419878864065490198078558892061946980226041484680874281643746923297875927690995078762106150489180569195846370111417018508061194858100708456559743922690117803583621190810017508563722881083345908931492979486200827806946032837562862252657849855930553411637299825110005199735586549553244075662792659679796988026048394048987263219103203049315966026179003804046091635903379751738950832727403543077800584704172177999797718633917686247233217383727641163356609398441042577643848369015202432237506555456874188235346453354202752435300998266248534939277144312186969708901995292901418245802566407104458000409511045462220165330871725070813292302262406848377606774879897322973908603523263082462245453804051343702925085901736123310801439227068168625853528153251074422727377945884223564301099125918380136305349333716280276770736330809221927913355524428703960725802505298800177882054848666316979092758697247463080937935874415280929359710160779253126828796472004051806850127839779713501375137080640998787304970294623635735805385385971541424605598990652314762148994984718087077336784743597345338176116748658287696952125697006604156117380944373213539334793985489965929337152667482416271836693184918166172398268420905753746605350446599133438688212623165667358775711604994429450189487337090076575020630410939057197104909233912869747667088278250721561252412488453614249104316692301851458014452735650938143214099920005767421451815540055683740228431067835662071149413557637696518664563329641694639098803355939252449239700213414145138464315253967720759110830279853564711822791964199870605909023474503708271223930512270567821253532865640694645602614937563620113742992839763697113309174620129737718944127642726882667322559737798477138539723339863677739344020262621164611425824811151380313237057032108968717617922905701279097751000211901731519379633706370852452609455522974885344140789318429678248884652748005984144961585777613776825864677268566543291460856580677486477262259852679773217951302456307981608448161008675203962651879520087103653919202853740791713395443833461761183528473765458133206976427491179453333848472024207395121361083617609808457767004475595021148769470284762815359266194343716521236907023131164890267116693525400449371687164416936549146159894369731351314605494718607254901650991142830783392958416209433312715172589085527526189737548330298902356248542679528457319887067634908995686077728487010901991432638964142372765617760362599367078615521265863921268712315607869774731996487368559409577907819817586668595584288263455367353481728437876657389913643914575956231842026781827550118786382743201845095726757434330137266843080854443852236542343582056721513748819859707791130782945385902023373162100372171517795298301475768747137971824913998740116320586466767375481444815974815904956355082861021678680479815316393047843225878249888193490749978462667263948781420786715423985334328680644972512588611133858037429602115400566601336565567067690384903816633963088571178227323269683934673120003317504054320326003617526569868600904369723191511741206661479481137794917554651208256236270144484542059376721792575844833163724743936803999302868067584330188526540962262365412309114911381746256365949998887876385317461118773431453943615687537955191036868134746103032169987847236318364648861180626729501203840025248299420439239098501717889183464281815080415801593771641466004615033405610625345028902480177965819746793102979736147427925379574536393324559614715741856630137641307099173004320332838560158708728006105674711722207274564849643927917584401960364711773038124610928951737620159891270901324095872861895056109883341778059279777738404830469814892083273606082739672690306390045918038365109077056405955035391240853254051691464009464245398599473603251547339872229074269520445706147097966317196553369721404866256822984842008389579358895697959178557685587605282469591246723072569397895025261506321515899004967680195433061115730317444293909829614342577990668122180643913553661626132068889565720918642804557452465032718533031325066054347307951505491569000476144817508826685467333650247248902965472472987900278863220900693862504102333489229656237052013631138367203683297197455049111967428518685497614475909868738997269000988022574245546957423405253609133661718875100849129467805792200237010939067989884088257735524983659434287745646827012331754238198155430339504402291946373476261088246764172720222352853926667585523654095226230779768145586428165855738006078990203772043107378213944706787847654045988730809293171611233451503283995224735086178578303749282957008683163831745729233106729800269350789162099706873962871396677853951685394132317250125255770131077458913049347198012447786108920560067156157398657526320250018562268743541605013196471299672759447744100571581556312764107201630450673784601427415846249783885296018071600224208541786672527306350524273354704488726114471311120222676381042562532739596279266124195461242634176766094887222386836387806678459169977452136406971473680647566447643607767197051119752095864042920339988494354552810833088458732380077089074051568181216015618087361824124376830374552290726841588173237899814691186793184150466024084202634350032411842693285315669449615431080438487960200607575724277350427913722874361192911927233645949061115874836720022586823941901152049549703927064257755691648377137210018588549850870783675125806479886333916925112417401441457819467210060936693362600936871350169543022356645831802452946887025796073906021941264600341826817999674316608449067272326894889167364155404844158618169935244711496917785750938124057057592954846762890718968681111069744090269739117457521685987090463660625443725298023541035226609990128601400013503860846558357300051863623405899428018287564341220078291901625682674673973996874659623284908492478579613310897229089754411490558286690461661272207314133101917016710839963048982650931692210863711088433228605351653579215039097755410314702999424685281656824906864520730822242356185099585561478181476634474612659217569163440123784065094556336610723066724291775575981739790569557003274129411000820214691023899010930810215336834551107397167536312859583911138280644564128829976993592557902381434723793656564959467284902353129743121051080711554213463624389494996633986296129399130855286315027984091237550715497045057487846478304295666673802831864644533802653068355442715781757308353209435069760481888656040548772525725923083728134335630254741352753677865510270459268280775074238344617880703372258190520946057561646958026296033636292743585905218317617804710843292513281706359646325543826901920826821429410834575876533862203676871067527070101648228600086688257276382253175325147160606350855002080286301233111767623970448128598069219112782748968384825630025630395855409103586382649273333912905420081283238290798439761451339635149578279774274616090268024826901006132564158920070209811324926255870066060977610452217065900207446955102816314151884048021582766106823359703644975097779293366994525882956843452757982174670898927914279244260167892267895924690442049229930428353833345166165080596424095005809864605894038326908938429570601520632064804488544233032971837571615837803457923412013597884491368134201167953196172318900710254670834758151918488992361401441594342077840107945192556301306651501413937388644604717116140525724065968625218579505645265134204109435342975671953424031084219279020823840079621483788801520748373060520784852277817530742061495639508487011649812137384124072043967338030651443890924944771627134199912876013228615068394480847792475691231430229123285375915953372689943303529617267408796871349084532970508452102215102663709404367104433403769958891723427776818976116714484446123904466350428789010643618694694644384312953745610243682430765125398051296849279561314279890062533815055484465817814772849621410932613468121623006743001021641737799822767087610687032554958318797114569848615549567014775202068781610747194803322012599624365710822674570337844294052292082152178162777437557292075658082258471186219838891368785823134993794353875083709583635531439069901060701523524175706838776608955263201471033924471326185325393188112791246207383763954309133691101760629859917086243432005065537743478459690234257173980086094884261388040068415742572469189577806690263865536057345149645006395617346696159918964990398269497051156514154341009189294522292852954052127134084057817983343503133035421071553300824123366540037319773103636861495251206013805967326677511386362085383556408583914534116791324264591315450299663187123842252804864184125033804851014613024050187822135582992500130784120253605578135431966441974676375913864945779106925438988639878484187195617758682389014896269785790759107988671544203693076974819877042701198885170654053902326620725289321560636596138898098541569892490864886573950226627748182353853905950273524268345282673859408309361078065098716404741163013515173667976922163756328361474849619447875274571225994511839857358901960222640082721942485751335364247683786326436591668747301601743769948770433687047749563733944635469890747125194318699671236548895249821572191904473687611831672741603405114532499206132700492758516891638466192696702131951195116436165925693706929865760070715873636266621693381687995834852657353901208712716346443049050112620858219714060361905689565338201858146150484983638166902666466794750916176188314121990357737265916083264546272503324909625390328091514634737220674754626581405006176233323303920303678925616028222358129192568742627981462321994996704771502347874261272140299581711297922431975007932112819244825411882381503982157698252956387746802211394640341554303302711676064289847465383909454938961550180735393625780347957997557991643591270792573293119450978352796132116644123243858087786540126506067805234344492142242382112827367192337980914041150696741225341980108904049910702472833030640954908978951552596045162414233260264257121383637054545983555211365925594950346349762632546587924594806163198274445876305577587448252838874865646923489704697238764141552436599551357280126188917460780845574958085833635210811920595285612968394822927789934427751742874772428173002087224905481356978078752587680823835829417095550077582080662260509446218001663717230438337844314009874504596698870513961346305730903393246359905304853612649152987821613023201068413082519114608872583870421648108975911647602523663456888090573550974775669300354589691509913800953387597192790777987619459712218408301541642314799828297847751813383516081809265551811272308879862407916002705867751073283189479943381926684407844523273768963400937689895757296993560878912255781677366554260351464429167474118928566063947610599761354816008389549976708114844923249263219161489141650278700534988317842131838900560361855794767082438054933200090763134131217622428833434353116477009018521167072093369621513870916765908154825531049093506439382768559746625347010407496358407206146832056802844930779990818487435088221790709997595403329566367275416678319424126039357899601037545341322462467497386197554798556312317325434841319811798683181683310178935614502463504610135203039040279275095527313506398999043690318168804156390473823425928407223180081250831379078234569460569045632005220431197741801548030351644082419303253795232733138041506901625787525880012063363291699600103326355494613890420417849668632515835399093049266144750255797818125569755742179590333934799538253688532896670998665040071187898205088208990521154051726451426522843464772079307246724950395088565677642465813272460193622314514474569616389099243550036458195216285067834058398146510915857356055243458376119146737936549920269344086832155002880168254361448530359898245388523164610476241134752657544435481376780079466835224966164050896439378760214933807821485342539065100811344200801613555774785510799835121093575007670105145780325035308459577105439020142130545642242943585273564288535837896232585258251760287517696578509929244329629040269678133223226817191374563781732892308198063500168503542446619032528058453528002694311507549475140026879968906804386499445259835897801424223042243213121146660929396707882325369813590248678040107917458041798923890205471714573864830953289112519045048661301645095205265011434414795407268133970231118726293892605284689585349059502716800069442401409254175652684477580727092650925890834027974128978901613890217815678762879624523662290700347431409473366276236457926711162903880441621027694209552675633775447725480955621160524667927544558036862557536419717638271552880496545874802039655280897185384442050587540939604711303081089022013132484368423007861166789302611574506267329423273117597430473212316754334153482152666438103539261022334237848074852904906704476610448547524526482876589242745665712624306603083162946919583458931990997426889103477706962726619269231888387142290759375219134071183787389755535048069267905371003549896310930499708873474701204116339924404656612128920488313327336466065443095333487542864078303197773121523704559004479145348251564145950735810620731358969419286489949675234378773239680570538280821531561954535669128352082721549639677833201128594772963123494892592827201956933291749190040359706175066269251192326687098187594088176649308957206457422869153211604714364815829303806697468678372803186469248417165359361444932460134775748138411815505066269008365436542862826856557860978756855290687288824489273622486535698437429134342654355932865879620080961613894895489862709558465992949705950478212725697722649214979678052245083538789210531742271121347579069310058149920218092716138068510579040523777107282682531021328376528568693671276626657173014177538550723116189745297612930546736259543939085061377317763314042892276616121267551449229844675272255994179797315470021045449583874102054981009674367094426514274933894510839608997178710987524328093895009696285938662308752301482135775390431793513515439856183413110442063597214812378770563274032509477365841384728327513979701256832716458655858868987473072983214901916848922538456087804073109303944097186577610924081056725457070122347930261680062270247511550910615720312819471397275496479712554356980516941612182310788407776359214796972485732618708887206611360629067312722341226910187342881285303012703300595702851966305513608359672510036571361111056036422012238766210866500512754374739326356112526879575895256325760321289773976136269209437073268410884727101908797410103759717866377635346414461051659473069681331440616389580920130834105275318402322705924367803597374074469607122334693568583929380596323787463938553013127537171809543414700280276102299589181366538487565034137699740349808583773028055420961688222515405114036729615585001183221503476665794515288649951578495088587116356390667343822866370524946677204462509474595789337008829983037922019718193214813834808474271436846928753903360710014015791605868643979306814851258677839374100124257175803680431449688161663908377657044828249218006275680504765638625003427002331650287953483023379312446707017314912637639804202626575687879098916630349540720261128714333505442779191578937934089559992195881600812851636832692128275933924953653357363867616536243255174349724446684666925582424971219276845704293825372162885845502899985115248121984018689123424707530877768340718089194198038581110854690520690667027614467973577329419372859372849617923257331201435098193495386108455289366218814196116977195407523269559197264789048912206615399134899308220243101182882059985287140464848519284369315175962402151035273778980722598497465827926885653556576984771730263355697438855099269396523738764446199347184658889722947617612614240833840998665104459802978468216200220286941811540209304877840735266278573173998552880088291386426258269907243807415358775765789627951282670057949322633160258543907514908396089773997718434677938124793016404484778008233759227294787137807004073742212467264773171911545437328657058904327976897628485339928154346559189911646211665724785115331116657195922710189262797465986986543090914601198786578370744546456910285365646771356634749935144207548906594923692312310295625480567429473238071399947787883513940794550477840744922529577971608184529899025696757487091198225208507499528447341220587868905416818694165383445113855770043137341084224214247944041372504788494683958027242239739260986451362162739129888511688523937139309591491357836482684280952878153509884112457716577930544733239848825942702939371766203267203367562806827375693415250351694123633471564426546042691384434794694885193538732553522404632616531662697367914375566838386640141007160758681628383409180414135326684609631515854118570813219894926640311156934038100710822134472318561900646109672884993243470197472362180603986169686239693020513872274521005696082977730880829327235606514580115286299473918694653117926687420795310933624583625817542251920532753449189136090988388875989251730620006254951744873145523888474876376825715741817489485515962860832317882569068224396979837791469360259972234035741091071225467051986833920528707237377276727342088896887781282829776637672183835612313833965042741361157845560757329697164777495704329394741865502106450020318594793243500135121605774645200849035250832609822305500306436846425532498966005870000603233863204251265617476592615746115276819477747685491098278481871476825093669429688475993769804986266188974109628049461376038533463868286102467636891871982909998256262511169582096617709400828303882357948582497825186027991718813923457824911100630061467413677523814489626479130231167036758178513570225938470360859151129520598302696699197437554208872736393063002525234966346467436979157495983563510147824422327282851376571586759462111509134281669042853152504445000633047330320754135885431213489480125918493299146734040899327999090954103993222631634488209873253242533983623570762205202760518432235268471534680718137211655779765586449268046503228913424368226402053316408804623860140206878531314814113995126463744553681564587485301373140386443427761957414772223686111732449688676532002407120669100299592900894983973390431220612455418498083681880154736877885847034536420381256875848079629131444736352530416693069944460746302087357402410174410475002806969584765304187676823669194930719690797942175938707117381673008824492816744242950623495391279086291976241886794626429603013839456793846042666495598823072781294414003637196085740310015053746455388957738723538087730663508454355900162396242001491978746973344089654973668036916737591232055319430245609562980148875851067682585136888550907623674225425184580387427173606572877623493917941291456568742196866647308580182874702909478331358493825402903034501337877831206576149391444647164937198123008077187346897625906250708081888929403661812080797243783426523544723780491119893594233803957003006378205720646908761887180568697885245025387896498700678706681406107802144237346299444637916297255601663788259717405852217339349092490149389036162929865391735326604643688119366156338259925147765561815088579327366366324929552855024161262893785455159435421600955947934169127192931741377228316513269694092398947243152168171985878834061284362113780073798984976618240148164594754382209394327712002246193229913599226305100430527705676838995347021036964809132297564563336768824908801817335989733853146405742920610410035396189912716259884592053168253479396975039115493075207640079512012352398436380144215095354720011044927037951826899467750848680052640365191751173458797958978607161173910612102291709456542112561583415441775018077607280818497059370614437765044634014612997381929228175746234886090531269580514436855968750215579651064580233117098289756877364522724239938142562865586110342471772414366565613694697546747933582348035727096545219939800831515230982630826217362697116233238363816137661160544563600135011805450805854771795369054462720075206614239878737730338632499814111111029606013124430507647145695382234627981317615341756207017849486772438893581317795599653183962186917074465150010249371579249665172041666983629302737975431512886368271015651309817915371295661916562432709556780790720876898862434054838365877919340268193324912356001098982878706548447031004917917820788482970013225321982800261624329780620089292216556685203172906620824783240414450312771341748893826776281386515446017786598515570881739035863920190282152445842057628698658536600287791435359025753899361309648043369992455507217974311162369531750205790135474213448237636624196937089460813748155526798690578897703664520595697530776616563587384128984768612109155617254079182189746211682744324459309170428749675980741249576092828043940275055933999527381982731029045550142184826856427905878302557432057330440495813618754236041742011655320715610270489850400499405599321874763346395200694765114395998324891366276689402302054344782019530556167214620289551037482430543920326543657216048240599139023767481686258056104988858775039689996839604799602603544124206099012011725293507976655817620778332436521246355204078957169608095786443715259966258277268720440489926181657256700203360860727592316017383627072221278978937104346969268794667840723877488213323938021212369153992419636560427358999634154291978243465118217791470774226409703308087197264490067538652334153207871471556927607673067091927637477211000415920954602519991853667142551068145763596151403242585064225285397703013080390261901042594955366134782430436073869402825133231638933319010550795926970958811055143918108244620802758074130380579722873886010224934657105356087385082528656322708370294230590121887830265493126904433889987407966451499616921557707444321952189419785455302810716837050481582338997664508031279621180045145131690576344787375856304188164807676542590689884893252891732280260446016447118420715328268952345220952278682783330933968194620103523695209094430743462723290030747460810053248407570892465811807490771678166391680317114155445219898386981454547752393127534327906818986418819020319685114869813055895534250858358964559033532499322381476823091952139023701446502630246018219044187208784853351326253092959266399885354818535080262055343912090420125084223073283321972961123285405276733356500245932814387356412640069141640825514744727193512593112384550127637778550524009273406578617539083084952408221897509085628992815522667554152012857302206898310928229259796844817501243249693290902362595073449288416852726977554760807792595796835178838082044062181622348997200906956640706230461145980261210530896186476803571734106077765470491009866844218498652795770162976819509242900109886844506168656522068407573090786806449897202500374543238804124175886843639269670926580653410723180589046789572699181721282686364144913359419537826317962096127987065401548881054440825831264209211638490046145882696347721648071134764051283618300124997068779394827230967332541722931462938589431317562543811806578954206907106451266137797324364504338431857914682203708027016184651274707225978836376711778642652525445141348382001662376759017226209879345815150188261731987648263513053418853501208403189510611092754215925628136040025540120751308504438372032839182495155399151757713259268116597140452645390526458209263952363926605275903010788813725821858366302550625915097774856383805251584560132945071786574592236189738933189617974194630445019348806252805053444264964791116970884800483143714381552240301244793929921298198443935402397153676987025023013418785596073801301605269337344556070662547376029067633618136255733265204213232277681685836162090283908850032474718809190235670903542726500180973076911731492423149073468994014567562510486873527146342014042675400305364183423678441784867273008451546860802357637194015248992508470503205416838658127480331623344047107660257967012085577386052216266939557885696634881737375888062588597207056514994418363672602932641789083344997700623696194663496490895183463541592437110450049114157984715408326485057030995911521483855692365831355790015015818570998229037522989921267688906667452172592855363853573314852073415829510811467202861873522103946215407002973682125816598072863336955471336049455366743562971198718449270684608015309663973680991358164301940820841023631239285222001030035509493637201820164050344053799224991782673998578246268967183767648413128869725151632641252802804257177092848853773078781087238652972290726364743296484674790164252130017167934116502588111161610883925898303493350007020554072312552395497783421450010118686053757984614073893793462266110248810326160327335313456277855988774594952601174821774014801461018227862250226386958048611533384562384945497650320206426906740255345578206588245601099887611437380024969615641359898610356214572166340270541806020311391770085799316220048613465196938581792085685114379035128672020484726940551080945447219114296463436832101159378107005602678745388038359525608954028668217268643038796225403999008384963247203158021354067523709222119123511063267722169901150599948728175052710591175922987791485495920690623015487628182637635492322856547358483057571995860776117371397945182235992405658770574563139873573099777432533206412619513646081651260408575381192657521610033182607844845921545622904990288159895852405895262773236133273156134705190836309468964960887510334908329621150434011733775656700397089399864905974093340406727520027961775849191350659786589450853794979578911702671970245369830465966641466047711381747437410933002376509364980953533998758022642213895906200006785521854914765179426370489539569402139062845897267108717784883534285871851520451709610370843769725752981602221459590025843505592619230675675963763018895170601414427580869903812800622488897619383757086218107199489722446608218266993720270383364918436725064915419749460435826658458414052558575725185395461621293600260496796708044594500037527048703361073790616895619953692677709837518170079265318037627696814562285630809632073937028604984578297172169415966295958056316107185788619540479684337650170583447479428537984261447848228960973836664195444701295028953333478415942805433043368109905586875727365628377091382638089856568185230421360821434546514953818693784661083390611020917041068971510118275284321790879411130863071548898277442090112320460917299783339568096635719232159007281937170961030760502096641554087062749322762588535829778767202448374875610469784672564027600284395785042335588529868855107461518421254545566690164292054035962065396114117785942365541999488304405595904497801464489551211214148859347287745081693936906602786738982770086262150825286003716275950738657209137856452923006619120009048420212586808041777909172679258289731787968072462334381701731615983578247720281123166683787014891670893951265319078646643226170702159067167582587620897667897287171562222712507460692169241756348880037963289838317473512007574976457450619333259035867826068368610730926288148460765111566777036994787878716303117123722885753890460310790539439032806060654586513620499389662478899431196534509739612648807647078368445754467610423371932835443827526014630305675124941429028314868160922850305550610412148266867694929978533995693053092708543755079744987383505439313357507659693427684740199847641108726806274410444470961187286885044904755395943911883410064394929057965812942487501653374379756778556170330926220754415286101774436439183264475473573004797774933267480490206276238880040895123982314909947121335640317509501544177284768772820468961409678524234981044325575598331072220594207699423612144544972766142245036072008272172574871192163626240229412350332258245782054602712838049154886598964276030784941752196253160650899224797449773177185331107776779236190917460709963825792164365235948938632004330612397156654333246116809809546768244343922414078751142754704364185691948186286982802037121263070453145240171227555191872901258109803318954940063023403834971722567639005251331809380705364642730077751775687409461049114951631745917692659774358566267012364867268804098976623930754048825915801704424309448993345315427695300078340413936828000016784988518614745713596864939331514970935554753687559109072801511199087661567352284712861540690275538594667641537199705607040207161787076052154939688185558512880523184704114970222818764148300549650763454801952185126078298855052646716992746444834210838571236718027050442389158433425053087765949723682390361072214517024679760024905945851895800279500138473544762950446251436503145771116393993315932880664672097445899221463433181446437168267971110198092873499929608534732309412010723105274358689323550096742891223235967975209685281468637186638392377575967102783036979214910591656267334235139048198033155612172774864583596376829645065250335485719820205068524541855635072109479773297902489671241125151024136631064013455787368849807355969190119885291786708649784022640471427196970460323165249906169086333919362140978451290710469668913809816734810604602309923650644691068783949370483727798651861661045931321730800545366700949598644336371999537537392223227971085107707417604134922177122749144906283260290262338705639535082682879778698514972271076553039326744696646683071019448053962600070990039695086755543645973438671722263007939833500604699043659021737959014287917888149578778665765026693516710041478835086886099043065378078445577428069227680045533818452851487873186252331431522638252326921995698525441279577593311182481028773646712743061875428203542866310479841142679903360601894431235776048485522605116612203867452295387989349798779638942693541854634427362283768378470749500397761833518891233301506284205912390101395059837912778131114339799815349086488780963034739150692859846192761311123745892719849972357182559856796188712594435531787359736338143142490323553488282298864142289551514552327613518067950117102653889421532219968653789217732025842212039095416774839500959276226718527156322772171181150890236021083820056928642521033281623538421794108226262601454966957927393173414300100143736603028219147557869556599526011070508044621021931996882326793971556333327567567170024413279859747162583316652747666494758016071141322483868085459398980972969465894990843782790381904290810037780757525209263602986093957145310874416721372671891327313746508061223406221537278981129286169437152455885657472550535020169967431799911543993567473273644336487777105506746830472992665896115277296312427947386983760272490122660595228536853079572382834379630917939627713740697555481332814174134189071429768643723040033370327378305796339513651305661191707235999483765375013567756554782502910068130055832964378269382543256445904592695271988228607659243485862993598187347200079775158897172958841667336029533366618794263349020232913919710521051379654001402487947228164584872452867811819990540540060879616722448502359306000424094479023784500445382970657396357079710368104748670662724304720511547010233765505352277341770654272724628098713031877462147669727974509791680659185602103840274357017871774501925680599421939283383630849289490269927925539066571863216253460250645236498823543737160040271791938290278266296605423848684731468205761931648494773707211666165805780567063325673299519086068909724920781236954281811895071649566897536437960598030779747145739820483321223377009290861051663030151482680524656303434360454431818097390634210209579734509689489328996475974504103280217144136926902691545531331259005940263125724990747547290229175247058626225125681385590445889719607581464011194121075683666594030122641123755489536999068754451951581917693985098929400955956743079087103360694567830075603420889622240782007710549179385379387046661554333937323364094791303456026825551765163062330818849944233650466281853175627813612506820701530598364963910166542725789029909200152644178103080991822346476057878370093350184247541543176663197248781958475601469557112212259616787171572159829943404396150879665580378283848534932293651530689665260038253486229412906606883543554425512726149514843860113049505048249448142609232472909479331208124054674383798072593233975305122178351227937792091449493877906668231035391905397259654888581964319607765785514771474420861725686314748676790663675642106627158034412920614293471053041336014391408176639174798240294195153645652923325169633725706069571992119931887266001395206321828816473367477102542025635055173882609758853555700217609660205981121128761251639673963383706710719520964935530981037924712549191143613087944339318638169396917033583397878376966791526509061833057336307269716408422293591932498023061817998913665518445310062570570301185789739772178144427696529224315402209706511090111593296597003569987786127715942629890425912667809328352858524097720472736208466777729597021305909289478845112352140098275090777888025497874992223558868205163184607999901180813963490762739718254049060471250081858425826273486745878234136953947729568370155991399514065077771705902144386844752858055504279472966481560799625693056857228399314562537204540597248357996620966941696164313161258146717537148767147327122447198832492718908666645144704423812316611110144642740880071563506528272009822447939104616754313048198311082407393048010082254793470908402457505379109602799473557528982269262626636741980324941150346039988219778929970255059997465885467380069488196794620938048226584845718294326154336894202076552132160342767754060144942759818341608572984348725101879316948642464445298758999927419413708263504118066529086271641146058021561737535116706661418023651886618606597322268940500768913046166309252819375206428371941086874663914542219914210984115086453972054014888339751486117210809734953012707520685966981490883349936627874679816906974400001501531182154799812165840891459463730201370763535034602117440087824035175222331975988158305555142542398538330940490774816211058243256719106839324777959850134304257554629903881457705261693387077294498704733964400764141139677046590575708957823476363675565086673365479076287500804143710480805520578333365411140668365933176802154348814109738691561187792230970998348397873087676498551162013283229440411617352658378554485053585783387712274814210619751547229718341000873874436322321180044582034816364371313336780840487002689527698743110027287854898816744913403637469810575030407537560877693075059578330976630179805672794479575925616776803209671834494972992922455801810419981008792106376090967726597275059256380780489264375879454626036181619402970295916892608666393300009598693881746341378327608971332228419981642575359130216397205710561440615274183192289550838138950523441402862005315986429721310990691231615437788041796736891781065457131684028408875555690079919970822160063236313983755096158704536096551632638269861781090846750579202997721535065732303323465390873793336928820221867123754788100917593556997010952263859709611365490573061387542084626755484175431625553409235039010017326679120211788224451152907778425967208876199401175535345355516268887048217949158906299805036098072729916402206649377335849737044251113463968226286531547974544573905990650321857086623633120492913260790364890030931848444980035633684951621828990079600774949774298866321092840757600032295798480290753054557900326169127806463896702627684781097664576578298351894093501656621252815170053765962553083717403757513920403013443564331766034276860797230093691308832106417318190432742324405072440458153383666661869705391798548470708443157748320482070189709404815837569603204872890145166975619016917103169055275247342679313708223606456929185176834180156488683038016713041725149544481023684408805525386291500668161393215402757353329707202652887007515390350318848950700606226294249527357751981117271505896863631833650568220527383162593350768586212399385316716650224923545244775379659413157501677059959269507540098496856833945039774725865792784345771252747461908065598996416328677390503774576512378191458655635211447643875539452879701120893916871832484591106907794152245350317830322242870735018238666638748613853196370138029927645950747711253906297330598062013517504639660585133670903219879498861057580508645945456506330111719047379835022969850951152616468638035449061349938502070926763481291352202187940590364663994987916610545767388333006601649340689414729476071250303595636905551172714227642234288036158518607268875229223895723770272281605581724838447567547978749807767917346038740612209728728275912639757580232883665572489882429020274076329678569475100287135739642285011895543265741934714965437919800680824141005616531571264054618720433515929048341686032752963268802702216479124845851228901936299824176018997656165747894955795623593732691609673629935411652314485053993957833311760938047268021545975614866369778945344505250085729678961727579601565268248931603772230059144151162610267099766717716706430082489715279404440977355500347067732844025025483455163065039959257410616972484575341451221817676286523659799267070507254476392495528494665371941098319074199980118899782588339973869339306227980087614396916179390551887928329036581540485378279900483954943849140311435052708077175180229698368095918460483435683534505315270771131165716705339481260632067521015016589236629380105826087629165678036863345168507507293839015397168243611837487768046301447802742473854794790606416815737461048212422134715451406629700581602559379758158779415263494842075143773857723259977088634115014429807594223356996573341861789383126169652328987822630062850168818563085246957128407405986701165138196837304142804777215206697139269732942634855066426197058584940926860877812897368769603608522746508033227674828565591716615808398558328463904466545019108114949230752165441177219946465682096850737238075436854655803775447152361180183347696362496161240153681871000173385688354160708662504664247104310209163780435723764284921529027250621696802970697826108042624490084852710916804776305148677772982538615161438649927369521940367158765795570095029295824754180880195105941070219939850867025302595563295447092356986934895548525819508041509055188367065993230702404648132732879987622611717157564561955203642918730964769227539736544587805291360188124693413564760966909601435238016227844470684565512826860472516783628782644378909499986196863292961434199052587775969336361521359002740982214692600338198585753254363431060567589081976323642783057386242900670400762948097017637066920444806267737605213293860210505173811147907883579685219172374852649335608209633423194227867614279797358788509791892961450492079211644769690686047240710319982926238863795962412880256094990787758536569871437459798701464219696977380449884967158478492273940015929500603159470679635252563387803518489339606692847055282556929210432964068815324021581899010404792305436754120545498314948608862077187711976363042065730264522651259624343130508535495079645301967697386726011772566400921612709075603683037278442481995769969984061651461332146224161642636119805901528356093024342769554698188804832684251427544947738311134869569397811945797005837741806895133315479249534406681211221469416567557969130248820533146816161436710459635174602791558125392801638368855814371435748330547391047107827576300804288033772444367459427918491035057543781803895539118256882873821671022100220742997529394998892188526989381685013135226447631136504592995571145361531831946142101716372840073976009010491468787683595648923542672776489112450834109615676383111346669630040945875694344529454673629269588020161936413517226651431319413456662791428664424541648795415548582075964946488509848583632481833221684240183472862000490692477123775476661902062348012748756091171043389385455433994645216643616293419369805094628146549605825242139284522790623849545833148183308185575851039747873494210301760717748913064922506311957507175224828990510238933626412802553842935052591932604207084399620507368959350507494358656430818514861634870907811827431498764079391360087352500957944526327727825010443142538501220703562813310325513876304476539504622609342212490886238733664505801125851280436402236052811221094663252012274673849817356982386550197568234589514215356322750052978887885449704372881552410088743243262844004827673066194076886837852178499390145085155400087968792111172526890877391636911905343649251306572771502186488333386008190721346256560766963873156846818737442214028787256871269541147015641021525126373791550034650438726614660632975233608219315236533420062946402866017794051992867566936705796283350941927280203147574195179371690255056019733262556934153027450289094570926436445264389932856732142053801695712872019421310648879426002067511489353195690634012719055889954408933854956547154663495972240874928197746472806091281928097880649438613351265284937149244277797899354272095900376575627553707598260709495352812512019561938465451155178844426585872332456839033682072457572911542417802138044029613125861567317409572153133499768350216514448179617754557359242456061585235723152476917168491207369413219435073459668153532103010050335461192328861559534146662648576545838186420931304101935075012614041978939680513214532132479992873222743468703935248821276613566913858422244827988616629121419167486188128405262444806008969650931727807624321127061443536749440837458770395165316057211977190552872502875122277034188364556956106826893379270349334708249844957688282407922166435258047607292278915883713011717349752876443634421198634164172096739499101496394751072492758264058766605247609806103147601811597793337074802910688400167683496233721805458798214917386127788288969214091501479448209725421348382787960447063839758921117429486429957298684633156487888580987781105905974473991593679562771387477928825996255652305487430870237511276532715845013567509047499932106493979242885353923738483603367094821271321214479652769744396931468473525652038849084730455017747315020619957337924726954426646172490046373015465573568473921787130166402656124810621456221026769645903980120931286794049461238094291249878220361354955588928837683430327228209016550804460369140654164351934248270731019641737266005954149418921665823259090693597656350922504448117785556386110257631639383270646160299414353980198498029615064071521942062458159595209654356377028368502525562484738717180766852629364617908932535545721240018608230455700124856469468419735789418971260861949723402729577454213384688124209757020822790412932536692213610715645404450777812578947591482857809973433454095832406233638677538244713150798769522936824819299438149327749468534699541488929022613525580245394269777975109129491568255922223644821045891678365892287250141978586225780964823592771424982022933896912962892981355635058192463871811761817346622525584807430239905667209568935083561040809018602401585121565900143393565786591251973016930004772924070369172206277670230960412852926960925863620161601227639514483052747631687527348985458395492391346280343427079439725966739316891268270675378006952680150761537061378757090014666665743934986931735814479313715176569841413994861901249885419021973974019925644956296251958066735843729180522770417457542626928800419785539429153630427433787971293236451472982871473463142383453466429449065034858473775694635822494120821341219632702920114988537012500878053592484992939437212849771637494775076925835074069249629186709114519803285658341470199726397467555922796677437043117170914928796918575306329417266610735943314787300114721137164982837961155771660939446324108361361810812168004217143921040712118113774271030514971438991791157494018757077971746025115101395362057313583174347629323556339941856686618267361591718687112620383230922524078158968123930037975829589748645498016392407735870409672985403606729889964234923577778931636168673735952441975628076919088972026626889009235408667116442160429035498522414935556449791553808187452548017672915253283379159328908282682202733058521590962854662503306592153101561665266782552517702551343626283418065160974587797414948057276276263143216605410019067382511978077455316254084546566089532935677594243208731641556846871382281289563671819824717489594381164785324899822689022282334175177447161985552347822083659481010105543160865778934403520615428573409914840241623872945564353900071434640807355741650329950624797260210298936396085821493082276690944918691798903272940749141341186149634462583222579664110224173371499614548301934145147457556967331975455430561275264190068182041879265639764461479471913509306243691972141883011896584670302295472311894137198298630257377410528446032617052834300531367146893595110922385543788383239805946398884376479842039835149767923841038352958124156869034266605145104826853008610825883606418452857287056662729344712371358386291465286056849277674093443539586900400875792505260749526311552949254937031139963139067732937775789932964624681337128156574969873790609307404895325442075212932611006403078420046507248952721795854934704258453733720663968941151603433167440352150294687944265575965321519110409974146996293678768372321739152742594253308558161127308863797168617318606916431995842249671617012155152949130068723863487079882296062830827304032213835415504789005695405575452353332762431574093678316232543127198642476137130931332340323615684788013760102252549401893642048761849548627917764570088307011993374800402031083266825604332782527057289463852137683859361669012307295424008317510733523744328803466415240816051056373702491357092802227580995210924006542772539251296335698643681265151713753269181771328063792682169427311512313295743184218786482081865277502042670686527654878674344316493817484212733000957218652129173591496251505094020970814166980858605698819187969288860796586974045671224737827472613091912839836833675815502125122306113380672267477856526044901751597525409582483528443980185422165953435187541591160111397461751029944945344420122582043568161890630000585843489959970401983384169049752175894456912967599903352055076418999174310651523476218500646679475190468736413307647080806201224399642308728478993169601056368437476209783397101489138774249550804767072304147462893612966843566949639425005485210885090973848318892876072569009080388633478883318142035097846223512430407437370504684201748715275388685345954196981022882578675954799265698614756132888258233052453666736195349522641084022946347446184037923027906696784875623502187976152817109517074611466653833577237823553335687326639352014316645699709898716769184998363631040603150387980046658011578100993485813081367650645627829560431582500865820912216616792767237352555084814840713996718110907348259635640657161282572822762828317514919087657919716920436913900999584286773131090787511019382464688762939554194713283497871985423315026199365152223788279591265788606952256899602691838410539868039018547287419756299893354219949871804306474849107468620431846271408653040283336929513464594728992596056701133217477342793143991018380620312785369832104167532004612008842633813221548719848797420862381375810237174348308562055805394139083970255458306310653953293880304935660641039044847526817240810379348319094004040860003212699670285998738908810921136019790878566990189889238469474642674919502376410933156410926170024356917928091663762352214268747460235293999799179219606814497232129137380068758431602886053068935665540292773572662406226557593453108540820131581566817965028283859035087844419541814557064964410441876211043209073327557999522445463527361384498804792455658921642820418001335809495546081468932125762630309678601440775221761961589680973524745935200748408566105690376081613981860348768625423723580572611699818946807331165910117315312180958350969728590257122007541443070190328065686838174121034831442797623191616028696350218116476512376679022092410728947141478835750741779167067854506037252508581265029657726375682483375033935169766277458510594670302142105235219273366963028472943971602036198821699894438746062660279271074822706065843243996736658623174050579310997399621684981896883267661910738624718090597987936249264728248894590372108806156031969606663687833836270602882613842478941323197842056262917814418585725511890996832998319939917478036526899084129699211500720452126307033267232506557409376419401501827911222949297020936842140265860286626441488290706806488362564607438800901808041010577460532161479253461937208757799941446325287568712305158177654485758353363113412629500223705489032204141584252352856124578926983720368755808008373794555180894834091791325164553507349565637018568522667914400061262135222570401988971517904216931388454618331645439724860730760929175498402385229667830209278997344259890706883547394054691871942837014021947932332716464802423107600038940372893286596364978739788903855423252520848039777881505992515840634419769148875897554869760991821251987501877685950001202936013466273226567586639598295590825120730531474466162940757157861998591701827328120510747866997948891259883364994082013460365525037798369560213742608989524100453849655055480905140312594171294886841686002601541023302035437762167267897874521253520165129286935398268257190193612494090214881356906703855430239924869767699511687418660966276968626778367583019259184702977177047876613431458067408389175094522188419701951198909494797513265596431676648588681828958935168149526329375304015072248961026704513273401768696105149559386834708973158871992699395087498571800826221121577945779849272532084204118032507276311633312797647475239376477567400160587083128562132568508318192115122904584792339272191539271453656798116691633402141797026098037447266814987596613689835676331712292019762742649263376052314002452068243909290884121804841673765817391955930238750887100766320911737905751967194586657997827451898219934641935589529168654558599801190440311284296932976013229382014785082819128355830894756255551049139454825803713396568544017215212029102209729586278978021556226893939628503430660039537700366992366949839058908947592855659435694586667559940439096254868295590267995330486238080821569870065227878633256938140717183865796502839131284856414031620181429679946579358180155349917634723488682639896123912108821556823860634195859896999984101671485509857315496347804640966883197825393091227088553487916578141748435626181592455136374745228017486757307389814986041037036830065780309603370840842719761195320233950993643894155373334483033471156982123629668058085945521746516251228399046172601260775008794029689841983353495196484096677344777526898382451836905925691395361679962033052762241422642962199242108396233303048279076983673453339035596314129470222434780209144422085462742943636882080263715640782929342332359628074532184040901955678781954344404777772048663799786122766936889142935280044469851618717125061508205092149838231079517908211026420926531002799540548129772066126578855174744201738323466638806557191491040002162837341429459481624557894330941942342007110884504624856067586082414430826767229872703188910139206958059674657775328843070102574965524921304700606445146894999510295171327653084937534189375660557671834514707472080495768367276680671589698943987085492685824138913590784190133684879027375794181373555677214122894810990760954684747726783715603849441919913289884230391726001022075724040951303819553735920071188535132888215509654428444949105573975502674390305768116420198991513902436328728523567724749697403678720713264980287531596743618537363252886550365058245990290818004433746805554094188589029154109337360786110037385251941136805667948292798540983945160673969079629043199193361289089722417654949885325371080409785671391308331035790801587821304381543680505932602285399046864881310124397967644611553809993017899988859025239787945862696251148477593515148402422600379800782564543715859828138926319768847768521007266600333320789933720222544334519391210900593166881228519634585267499142179658393696843166067297170367069425573466102413338539531618863977074331341664173276321614220342952673183647917144230498508216286033044655525412583708163948194420346045900838407680588797465041322268503730463891997829157760697226101735441395582986344206526217179233036147176209343997227546952401806390796561987690070787784969121393985281984488444603071027557046505855087664990328525534072239486766008133668694193762182036757145566078865918211242562622324129257828538527378629039882546955888219885033881060650464479719106249057691898351548604158988533672263683365484435818173221633036764404839316454297733307638677921499742868763548513358019205542594720698191651581038753018318487500297754829443518322391692896051565223308105437145377560637040069380662938180541965073081767221902242484235800942800780670679001979916776676607975689784202509803771753145147837743221221385508216866020295571155526144461277321300755669778576031834547044809296724135968887986348161868823347855352727564396376450267827135998903027880896170266264398642293234080111250373969371213288373078636470381773483049596656176192065630624158858040971394431080675148026190313837553045940224375687920409017131038626679580028174394181584600511431043975999274264955725894396849809608610236794491362867602015402655753476443278370433007521798587683243439478574079085675979825686226117990141804681400949170360581544566276040342844302983665221591130697585063427498377261720361519447159999159935292885765928000928090361865654934570972098952313293450966849969058180594758216493505611525624635137079136606185112426302808457424406354531871893313359390564991241689122702166291686972794475873457755428741147176048144869376653787694816562801015157916025764695422750690093720852360121278997515260186427916074606913064912162340001572775890344027010186652944082465464209098890270254258884338671693360702896085865352241059998703231574391472360265948851995856921859678772498459192774868831189857481881624776147632141963489181429701356535223373501880872540165912274266415930392428764292964134874421666847222858583183348687156280465664519614346375295161846243266204782951175142976681303764689799374724474078199622749202405073243716554491004103334081857872029130560673435317957461666666585929263360126641179107511278334395273193885286100989115194667132981461315338619075967457364836696056643305598444202972308418795778975185966745066523181452929379900347686928905281052273857691034903558092047221460035624982554384316077641746143788087710511639067643631189672818963527206561755858971004324371813867158586026150659122474783074950724731372881084053358442417914417681911641022581001936909184033442741994041862520251322173580092093331203008856806377936548424793284919303270802304030122460848246306699467598373236719447029085092041410587061612567975478947053040194737152379726507270643264139099192688543126797116346880378205213278418877255187792393888873085071211166399667724396125304165362213097592131862969339252885584519209629166300299810875897537146070246719728607223263327743431295544242368137221533066515450436616941201173147050010913440532245853914975830320442017388372424301822763495019206515935951911010926574559396704776151927576478372983140192987292157868052637183644992842740471154346048344774302449726870128678014064989466663007948776741465033678257885406739787439756790079148775449300107148896582960143505200220772038081317787408168867336140981725209872266463929989896615071465879326958721578818650991082528977208262720992749420977013639749890824118385994737866221886282661897141988005546258308672412176033889559926248980627002257251057361398768661944321182415215013585534954499139462182595042696200584415827619945714517205014104548287160858668855157185721804950017654805004771504419085349685465660431528938517351249410084071383948028309487758500802944599456211066027031432453583749486508940030043318160462941235413939971572484550554874128249323130168290023489078539298348291300250140294538107436089667630584760765939412534390359593083737661566333248958478280683433000516695795088039954438394644502837073193566237637783701114483001143092187534912910734685138668555902184012017765605222427410970789297539185126183047495469631762019437177167918938519508582865399625836235768355388969121321713024687274605335093678076955567972383721154382987927499381967847703699622950522541250357886100117051598881030241163263164502247238077863285114516282930669986065541902322310084481126764278943910097131290305703358405846311134743348932956313197719237603631358608587546267346152245498851738361926811860227687082432510650519074340852622337350162395022464149397432255003322148047239762933566112075103628580267652970625138554953105928873999846865451772499490150823575833162203943587658078977680131812312791081458741734352085617823847665742354406500578543449156612116471178693842668192719416793351738618964015164428035221831691361733905745215847445168467751464206270538049234594613286258159557479013632568434069303802091072369204403448286167083359004590587504629596106994117233582007108307884048040219960320659074870044606716684169894344072659972463282429069119121488018788958100934811929475668163736998043191387370974137213506945617597045808174622444691763334402036648381056387435394911105551035727641378566054975427620316502409402547989077824740995003445768127857720164750174469961236607647837637042968361438465684570766717593052721569030248791198500859911649565994006563295496489505413429820109194206048294239429745715679417736407664961540353623881509768208003324446706272578126668358270584835353003476565219735565299428709182053483456603766317831631035461534090287705326984153132270489110633170889273843690633643577698085945791165042890124789963267949074226363125193548815447057216762798494105167885550711301892925545844296721402256336986206290150540095643726660462100895495224576494056488396509475364910316726986087795227830599546699227992952459916738920711189774506590865688663942962859039391656347805421326922279814273549815246960523592780415171174060602311063906608571193975484825415560585970041919509925648964275558519391698889079830566547921473741519924710498760477397396279482791604830698487795589615127492011597163048666336261619686788651499236885858661359392472184312030790316035369736174196812803126211448132380055683345436077266456629732592340383169517126643745089971488215358552844377387024763148692991301978104253472232890162020812135921147158419529311893771606789535783120890533571748360839570221563776678882545807003333706489987757762909588325489803259522572996700082086905743498469693454662180523802210242824348439560183283820099466232083783175949617517500625369170316834855426357719602865351814795014804168874747623219931701354768321733482093763071192971191462380877320115517455428899155596684819168711384460079328241497244257243141256820972890040655450086447132437669023586391230955627996799420131058220983342885953243031071631562598605441757257852416651999804146644767140568075078762855183229473857800363592063324494703844544603664167923067193907308281282213209403596392463877404669581824291250869250211307023114126379291902551979322877833033226534140884963697087685484056963609275939989320676782322552941759997813540223297355658880375589862181193127997449941144770880310231163815878534676905398301396888156197158009427212738498841720307406578801442781611504930606319010342554488758345790262413141260999583915147784810909158150226349722596335346891318395760317926391782597252396168021996437125734070991107503232284727538983365991379335751735270417276417710714618809840505689046573484420464524681162704822780165570074298514588726738644525373858367491165876812844779993365730125234101184884054353637777117849243345228970685243788500049902170071228567727449891759146350205062250681028989194837773115326920012465410082381249144312036361230700810182681382700513633079793519091822599808092599132434711004415568131642711749744321490192029657405180674787958391219489276328912937802101634261015510739050742653902218190956262385008750051522030608970520337427665133346164701724613824878447851713835723710411975427422826170137644887940979165531615257748937372793285975515504944051189421990208861248196973026909507964127815752460325183215175162946401826709249076554372014497271947340413786375569951197344284085003261170719805589975890370482134458333743479412637824718739828458866479691669094928057551337086903523353899278272034737062721820661186615760096818609087884939219975215607413925467591721793360592366788080449504362658079923116827140791379015010590816924963198321658177438372462701309973756397304419837459718633603565801527490073408511065129257725139772941868188902690018767232204555137936881375290932050548762886492877398259752010457927857112581419644165597438122956923541865409298204883644337019325057684593174206244187635706159747533258900246745044939433918904755863396872955272072075055941396116948058491249264743943060311764308488091745995761368987287549366511509881542952849798673068121982808368720148660465509038358936558884531746639737706279292337513169094106853497036244625374817214216162534621483608808230906738749392097617368040729409742599363688738076206454145697001181168289373420813024836914385422915134780200284705996032887652022236620283105135613825757285709222279284481896859124682468698302458123276590646687364142150236636917017983916959199616840395892231582448968092606222683901760866741682844088503046680222186591641319492131581969093078810311536411659640721069207451339801284138763346786560837167788342338429027611406329169918013082077769123399257802970309474309146163628103158347555369101693752838129499006072975525960032536611640533358053023249822686735784554025551813413662909653598428146447926041767764490633174811070430420281836020484464247911188981126808159354861677286095967311226755978443639601046055333705032750499725557645635648601116659219853061433574672755146929488426261459632134660655692600853358391560200421542145147353560782464717071478731389148266598145040645244135455709744264312451805366282891951637657136478164385909212533430724327223789366354115533577817247609958656814078706199810189203407529841893736781542474637595621417642535779384564663381901339848183894575389506269600393779326463090675575143813857252169002417920796166861298297400808226017727312512756065502778093437040856216113866961447205192411304179457188087114105473822119648359104148205966201364352458561266488515370821741438895245682862449961492176373581208152117834821504499273658331908596120167265644158293108982459775909382745659612536068462917592041125649304302419202704257652170118227339280471582300106285522051274213316740661471019348701773664274654898628850130150784925182380296763696802933858841828340731706790754452772785991987716786801267494721862524217196878992609470693657633102714405057901527154888876579611519377981067978990735625542148309277473710654968533790420860081270078444295202308908362498154419144324326424581438709674729965697170354382697481969555341647098535638829153240431616268046839842245608748858733655655037983495438644422260148425604644316644089754547244381481039969979722578592657980249266330050491012359136891855064415898197093187787718413607299816328490140119581808207914145987644445419301672330546587684060668957695553790220063284229275398559883646696724869405147102581543069772163101728901460471721863732122458237651260585495406367811677833501273526992186643322572072219499144896806765532358948163987163550154079598667721420908862667719554983873587058482113849510790994896556015934556465689749543412690448672978352867757893234388675598221631849564757284761503220665937270723597225771691053936349537183120229079495448689169316289435512689141876701755920866533308375296248597129520249872395083858006862018462416057252549759570456731242138184718854104571839136139307233389352312138127289087602786446707314177245727080986885170074801022028067771331582845423332288000255325724892724192958699533704669197608234508794567661140098612128394772743757225861143409599326714713880499947833537925563897085474741909544555717554702754945186569139967567180553963471717924492760715422399027881881815608250624430608992162537802411182749825292420028293024265152388440988218043232518268250181758350817516490682631622373302786771970876694365386427216857435891264732737561380311428083066767519235281460036322237161049541434313913813395359094871319007938683822674498703909016286110751113511165027497590664130431692333234646330293747389734643169738284746200158023080313564273601748317216482236306748367753458784296520457666230793269056671409186154489290606653750163556307406382153402624222050411052298657444748556981330785440582743064718173052954041807014376962541918958742557173650650627269759109185951292984686331634116251622683897505952642483443822528640388073799771224124567026370573868334360389592223759778667531001711651164653467743298893747657049444617521177780202926005089785859683415907709544987029673596562229154925501144331231451759158052844324302508623526818593247483761818390280077939148801476435510920520476319258133289777892266310652715929680829144021297162058976532587757465162856433570749585946805874913801886403133083372239670783169997366315404278195048673112987470737773325085153683900547752164067643867138725161629508620188707680745465444712292608318871632078399516870758768965382076805200311221833494914439196353537003434490999128472688260528006406961151227515321786946609829580075750374893767524628498033115761231499968223704255481207379754541466531975841846071968241762086404335701118798597417778440208467503329646016433287853828699243964994964253656149388217337569771511823634755452735214142881371449852250631295188356583866420657352827341337450748837142619365343632943934118647224825516021833068246391176125317643127960856545105545086737729290193924285138063669645462047170072269514671009248917417468112360758166543759398088286245409941321885736145907123223427406550898887234337051411040329729706917730288925281359730606076515134984879053741560828000084819339783178290090887923070832724142718332784198855520377321048883084544235216992115273710593687671829249921808817907179084532991763816228216801396620791385778865339823171096818547380045975992657219696247806045286041184577931750891893156737992409579926117793928148157391370346418343946455195623584998817475003373813475269521997556852778189023634191539883061423246549751594398738776196089874576755645746327238445602545354172536379133021853133929826567795409058762050895779516808891984431520714605946587120529107086783999741559242510855857032588063991544071631534529643411829480028220916596735994279618620003663335119727219719903879851502767561903926030978484629478899873968617670246517227102649544512717251888916209458753260006333568191257060131286378904938405143291402907155460024894907880325895480170558025302837174656325752642021874206685339132033991952144636467381429597416005886337387408379392026200625589324230030428673815090271813396048143404235235730573364461186057541305736313481326643282871564321611848970991378303165017930383373781962720212481330780692600393666203819651744493616367502588388991458402119590795965149255568297871851100576442060058951165105598636791201581417411798471311546005245555484059813389398057069831417423067003396424036526532055922287103613797520558935053795208460329105258509631630295583699154102794320967558168759244435484991747982933720767884048571299054256548705872573205794177173728892762011666869472096885941916384682727593794106221826202558233205997529546030775415201218387987196704335829853230254036864865281928602619255993512856229905329162752856778528719430211606168579936719836069733798030779752882757810392797174529773022926901591924808095926857917005565601905789193047752644061306805885002210808011620687487059968823394373879842892146331996725438055346154305588757965573679122774261984380569715083108081142979816981751001403728147185680632653039519135392998252760147423049230564646483989388637143341759790030569215437047471457925792462309648085309127831479112570920401389207294574300555852441517740588720095275257374105779854791696211079882379545779928055374619961561062984209108334657154420184407705322061067266497145203508191370315611959777839585448141456474080784238637221935366152218310252064888453557973680738343045719501382061264755331881110485152791108704160331176830147890700139162080116621898129002494737985062928425570943852071301640902032068323620268817969426782426060577139044251059019522702154181213299389105714240347251874850811687806268435681027414962136325769700111220893442501482769103372420934171154144414136001522300239751263148188761313306670662803579638022958350393463904992871136856182737194594689331018970018255786567226787803909947636122211026287187551235274443431072453068446256038383182127573293330513137495496141195703265896212582863012835958800306838009742499180960596287097327641146689864522977045451888440771896545369253491746708740479495194247105423190445720487466026572044778172945996445930017940833721271610483402957421227850934600124377544110476639591141702680496156460552600196447929032824449297962950256304254692550027437040422707322046399609700353957841214655822399518640307284191770404038318161038758211786846997268030363344986297979715726977380665656289764101082284778434361530465808359266529478202819193748899186143341441174887162489743901362484694663631662753450688671654185422633750121307467171131613988780960268928697982904245036462239368344941400879954127776641103353305420758677126035670533888544094198751108303985488317210888016532805592962799008480089054351673724887298567646167962311590654448510470487185647255238688900430420957459295882242352837161163326721601487237354889648538447944932880463917536538185710103977700706304724204789800987878145374700017606457763529367945377972096550894262399676054697904264414943866877188020980217261071492683693543767657599373549622393618230629723252575999501538391910602043160245942475515077371469159035927756727988192355319927179694923488108485283649587715019553993923590396257872121176574160448867539751422684607457428728579579159418671410849991086592183540523332814824606882052029517963547685575650904251964965293314366275025020975891489263829332110664268686546756320121557605685513139233409101824197986431886378568201611012675172681107450166029047748276942486908165252497972870127247216645527733777773128222974081358640980958940459732402689064160794735627813313331947871507089716749530491620575707343238593472157477875565254111740577001409660615276583250250589930079220328059589710919031812193583766264652255256788092470341770401674167115691655889354468336395356827147037935531041532570410182038533068779390876904194178863634205733454455668612104119574642225699944670294840485424583321870824050900270059667196518481706089856403585828630036872775258963358486928016928372473461584954331950742174210113514141522653966298428068667007960967824525309469345037949173667678822193892532771307715100925633043844207478814110120863516918505580190339567296486442823626719759847503694305187372812996800607655183765354780281992197822608470643895152167713152109121263992637880943265388452886761004797624632666922812159924727871613515415864583752325246150964186307320604370466353856094133019279321775133940996815380747529990473404371611477778982364085763805932532318110206148708178143228351471069765148888433168127989571748934029877270576709303699454069014977699606215368442996677524847416978706503622924157960179723399601125927484904603485031290110593066937770656318678669541069903941718313723095884336797826384931104962942908605265236561114707920411499768467449065450783473911228920922251214381104243778666684395618188436016791136259793230377316658140057621820750915733135247614374002946481576941781645950447108859258331772806908047429091214414358496133935243009045113837427813815876292364086350699584583121448969066929410049450286868345688059680662265223416990719334005733370969556043081762284640869684707461200594729753481074288392968076912954600729417325695646878336421471433610401944078091418398865583354712404716496394874005977554031535562897302709754410777873646673703018478754602588869631479591899903413027443483879337364108580046855603268960445637164470129578307246788507249393453602692544392828590353387740756315781295275348131206155853953604671337375095747091538415302750770606663735523517244982190033011903408470680900642765412422891293465664513092446989888341583427184641716921987409401177082371868757886023411503296394505416405332753853039060164264733135873986606385437193995403670720934389097941928522399054046601020819602039008575284418124536889771235699490455564570962499696395431312690417855074540527232431890812904475849218680214693302541837939097163807428681269666530368444073327420880663907809262282114145902080366465589702024853476694287933422884301405622329923414868255165282331322094341237156817998794890517804132723949860967154764729230691541694239382106167958045095272211921316243350969794306654245525287015605851064091041390676622536910321064358811603558522075888622539539011930226997865212594570358091134906042923023632458044586668906969825530154341776950189921427682898609361970556946729814408347847999844174097747846571452458422562017228711386956624840158097107383939651163016057331490844017619220155876590128358662559152618732531694787155887884034291681214651470889632137968841301153217656085011185505823519423546005522897070317414248776625779253348918449671797440026686761485976632967991212469688977358441418219428099604483927148012018233916141451847641311940886776249871227908905220765491581207504462324844726855773512357454820412323126236129518302386434739961298502399626052186188055364625302819913859309111012769873750701204790496694815288060843564057615239716520772528626502080540044022892340859877285393581631470427606271814086584524048268015029450295772166401868471318730306939864813271713433278416372012254314909460498414755318570829218376977428445830052203167129036317355220286732025706832639038336260093314701013877687482059260176056000822072499463074543623192671301659089789651145702114407288121568167866471598646808263226029967848320488706794439598806893160668841295555440626930462716093376573484454423049631177625082092023969847930679681793147393001211488486965907476783882591701972773173408615638595820035328798579889752524932585169223143397097637477075487991008972238282492118929765272357413023548125737649961189627169954541078616651875894001385533505873573786831383015172097136919332558475617064142100188608508108704245753658736038059949268254354713538645143402345356775081353120608997257205938784428205223492382960407689263534984093232681013286635505626613208907662384054324248852685544199268861177360702531026301888249693620745755925702389269342597442229221599876416574513674606879490198643016554392578500175521965174705095632400162215475463895838193605088543731209943434357037089345095384677975176994908802005409068602432540461471666439118726520414785628987608042120140072415955018386188962294088088223799224423976344416142446712524631864440147940812616302086971945313377755015885746592513373566602469220279288137620516149985089779080957955105990641010311085894564374391930843594533173734525090798017904443431859827540458696231314326968837858460937299234138632177145940479505940569360743055212330504358279598360478736273917477000502858160081502576700879303162721224966460817676379348499433533366307307482560406130322999931905979492433901899044560929125275496513614597671788905078873362197867585683495755608949603101695019024826916467213298971584976900352320312009008315045801536114280803889397883569722032183951194829226291032702808080795957552847777745824909401017786932802326805282231472935802932162428424548942862720647187708916907938136024296244502358120072055886154697148377508830263401906324145177995799762602763222248431285726899492429342304739853327314199020467830724492642959245638231366973705554144337353936274094229302501022986947210710654187618877926323201391899089698889150698228691921893360965278610499470149109767425644518753784308355756390997376926650153040238651616360124422659545025606168107176655749687005376189639731151475815406300687893168627856962076208212485805008279086854362516001014774133426033686246223730891642056838387717115039942592665631621483865110026978443029785567599454966522022942181346970104941856116872388685590926187462252079066078925069582200757461954571431671265698567518712868113632826695566691403244348114213553790927903701656382159056151869710435536300783013222048698570989711091558071629156938010505188931863890477041258767810692993984869899542789773666592858554065113756758131988816765209778111430100131607654577939076913449450895604953269639316815167119701109297569302222991916497496659410066322935443463774231519989276335568208483737798662628810430384939480842960488448717247039630285372611029559847318309820127491186654385391531575091613123178878962961078876612481694505598793631594473701587673357484264006063168323434084546668431962799654723116726221903656674170082818999191284137075385895417052553036824035225022753608510945670636324200312930486561822828795535623477864098380895676661553854609910012067621603858733193353725564736476775935800592535751818917062878978522857185109610441382059739638475487190242507773163339709448600087937123103660581745537074654447703331792728372213705394337246803076426224086043703885566777155778173988340296448841078245772701100012477712633868960758231680276014255459338002325982240551208135559669779564475724957437193871144598570055944493758014075713690201663959915803254808861447432702205679678180883240111868524276656435475364387353570386038341843724964849263207746119613971403757206944714420842309906321707266500639653936817676836536062829163006120611316142812988361761337966957063248381809784370566764900913892845653747088771248989434529604564357018041846803237550979894446149280222859214305488936852633741243211401224665878694718584662274864221462134926451605118683022254375815853834216577074669042479970175586007330667403097932788798248901124864941490347217930439741104033739489614761765677410872542857509666030680832775617808749112524662435949935623140064284515605738026333062533098898730467464705652349071409821692050144668187863773598817530020345337624415809081276553778203241513574955839862394656182759735388364441904812417166894376539257860614496360707380263485973807060530246330751939698800420772456044438411721427742884736484102166855252786673358103462146877874383119595470585457367577355232057400831381594786056334465927999637351471798136802087963699461548579720450463494531184322105714345528586753647757721975612133559055387597058868438207061974742288481797606105912553367879483227539282077663464621165636042305980958165023181201063868668952763776553759978964768485588456074165615915061850202456656397707199481115520976286656476398764301244526971966537785511796974182037229941112218129828973991567817491275215189688439806311260975198416305098410992166195251569176878165887422686038818217588469149349979730199205206834381959699715990641060003712939342663393439517337775569917823976040921029291470181781025480346006148067186383004493262492799609056419322506502239732972405636064669917382706100376526156723883418609928315346221585626488237118089147663481099643212266010400072279903660896781420026793293916049799946900312706836491303843264967575534480365617150247511665387052553047548184227846717857242794758929202781500115772873021871865088467709183125719501629153582243560552252165285046575872563626818512522108169274057783710059375613403121441976916403102116493952032913744752578193821098069047523105302048732408822225942317714971815861948632460604546893025349165090875725113024009813517228349784557787481743887984040913931520360171942686685954185042258485349865630187941773403038297165770357604959976073256370374531494083329394022274664102325858503690978574540543876579728628468954646105662017285704318624280384158650762545017916694588074207091288687139181370739684219920504263858789623543324199080788191219961174678204071342656554517629769994376215000940494479099228779141222776314148310016259928771563547616908381314534237258470567944467812653542480394899507207107339528044262463202140546831216481239333815782960073818583350151156697301387529358779425488387627508378972863070203081022201920690584326032004757716912978820674151031462155080539109682228520907157342902116627401456121191267450870417274841772796328691589051680682779087816731819667769895859197159053740688165759117167143493561965410690064047913172738704374265597437869548868383490334487749043631481045241691797958557989548159228574746504783123796014644258579965347000165044055505274947636670248613602947654616486482331193643688294349521402909832646264631066124979747257277509134387339276311249720818786831709817357178936075883360988071354129766633568481085272160420506127133839825380331814294197108029983772475555275153702541931454018924922027034393706898766981930993602396677366952237891907347875410838685475905829624693710285340876374186140828322947718330442765694317052325692503233232194979558369111234925713700896493347883573701739567802809727107488285211186582869953380049690867476819312590078133797567179863289822401174571058664286498396382666198322380628479815293925447963982264477418456772687292452145086471930149783584783510086280209175257822951070734623391856384547034951550507068339441312577368579575672666467636442519777404211906457118134414247388134899144742844164567411840483506920736908074841529704586389805374497420469210385674182291927523065077264565748161821028562023527434367495063493767679189704865935314756160587390489329824871172599680071120083886913876211408837969672801364328170988155266876089423940912737556045830618290332711926101124433645984739776918151491107601382245439900368791036745272356010169331285518960049853070984339106637605788551267473520870323854371301333942736893922121592590234007951537277991895670851082337012612459377380338108822370386644077881017444232419176841006754005485759016819545739979699984244621387324613834297742610366863958341110106337245299503059522803786711297760368015964675425213542584826099704839116692394708793799394020148002246086856709610681239162660645236863159155629772098117394582194269590539693466125410544906720698816483148739315474837884261380298533713323636301729089844001739218921102432308522070475321903564699183441790516208904360097436568057398067859465048633529250643890592636264014165540510118538491679911519825406059950809438959315700430282592912653569528113637700317432665861970608304709248995966168091491681471266786438414479733252504506989244748506803749889702640238766505171780247535418039759952790028798795645880872813954867872655354524531399672535906118152359565601932239770442185413468095111205082952075499198606866464363602740219108242354928167597501252591374355737255124387642986033590002093847661611585073368803402467451527037115290888983730547918988567623688007631718590088886566948504166723384959331242802361881287383416916190270420188355310291688810079465320449052607584685503767279429391739343035459123479661490161936076071536891519266434805803477372001337300988463547751753690603529079048070533687304869921119238761718639492835212600378075601158330807671255898514228486033505960541336858144293413383344007442613771498566809241608947650127235889513371824033248947637741172050298314437911274711644471574329630807415868276109207020031918457161174118208083059022268854656396244806612600882142880685810942743772083687012625438979499707453333973834621691761673503630725330621665388979930650623681909694108183705112516213474184351718776540061174994527804564365730985014342065592268474808259738656098020547368617527521683663149036082338474447833269313012024956229260087794114433891436631659127690944999931163054115507443780643174740701328276735934691329107018976417230441671837368807248645761708914127497935204704277789699355985750019204230586222240139461302696801676209263740690014292821242080381161323477667896716282870591896610394232257883524342013443069625491613153241831729350681466432651327506826859911349544617504077282065554486606373736548110349795764962504657588833112917078655862159301527588288057274273606254408363312028492245675010215018434430671188006286211258393970082109679710080431378219032402518006968684930811886100265238195455144004737115046709094949880739272693029365020734066870872932199784118241157487040932060486827003351798044990951590648015214716652803712562215631325651459501992594268156397102093634789246220823757753497086162844318294189938783733658953501715621625396389982242026291984045127364009587797734249229545698744619013482089992612658615346338774085758671685489466389175375632137132455064139629015068373172520008322375532116352915528395527603512643208360854975014622671139410598520459186363985568039955394690629426430935074794582677285908228980264623953379344799649431584125566899463945000905162098492229677891665509799285526267827819133166537661568702261952273214452711335810108395278169873663664953715254343494036238670911028031961401290510078161760391871142508436487307899059128921081949381208281552340599102972715253742077704746359744084971847633331791455689266256304029533826878106273192752930592040101898642466461769238798215986079595238762312214474580782528351824674660505058276445797795959528637858736735451974172551983187792840281115525498358298082301422760228576756042123018714560339926288053370671350534307210834731456325103575778180908481927487767489055812647701679513011639836282614575322628603294539087850101195182252122514590517281472645767656360470068922099296231315893679081182306299776813140480469311711610765499895105537450958731444623601444307174694730152445358049229152811291694067361509601685382283681623627829752129052277460857533675720604827578907417874166404294506567115206749589428499693992293354038946524776839359749801929640347272843986877406230462185159034336909094660495384162468701375059037865806928083484099925683381829079443231667414485391868997476182700413013612223832551251953679564353476908664598777420599233186879349021296770875942698801576903806117623921809333444878975189389338030327731710074547179919817280041934909478043456814788958487637115136411270387407515056199213523663189775537729017438881471927069086618387025407849851090539214931725509681034802242882636651145450644307026844533552878294611196499408370871470356411397290460013338247151151583442543679945267626301566444741661069105275441396673403184929004510912960336975517972261830414422206654928588053274390675950411212201745532043153430861382564004779661476825374162582388476833040621348503473363702644904104096463665112474809005840979285378319195914532164457545102291582864996190653346562778587360070317794313216290012781178009549868191174299273245033850720007034465816119680389110085350374652457729927672655834911423737226541337025330439191909997239396361986424901222730968371775131036198091204407817306606839931333010512008743449949698509787229326017726672383077168847029461681436907174618715047407971654054924221699289392990116184181288666738361118026026097420307565956681228108574148077539802479619694040213142681308637146396157673825049186791813913375480544822126641636438085697403209475125034274214150423679308083380118010607513951256079372165715592874552292152998876107275627709436318429044509802225638321951691980936523017736706286393136542480576837688579425218881457539080280790697694582386580211669833742600686899702147528375040376985551279208103644909524421280928396065453906493863626542247355565620337730312799482044615125058000263984393815252642240415022947557311381382959023401505462609736292294928490430356179351477806765800842023131286888214618177707531256591516111524314234233655725794223722313798100528862122949361236807264733772685524471898293527909639853941873069662309773644693137544417339665081933220776267613803939283788222434536272172446523853966096558058312217315765066910266143296503188843542484398400680083872714721997578460494990531758183196107195933598746621144178551603028074509331776178656162608559259206878366783564193156655267962432947946509083589122078909644365298528827118284098287134140057075039023602292147295741982954055129687683331527337588640136184386003396087528304338236767940888717641359219763681129146544161215370780392971446601341878490544075642088186100506258256568660235364708689959956757786176834449362633358395591823153061759796214892429968445893099756336659772133324182768670289055223081971404782532258474128969277922916204474815847425420643503276155105607187935695379539739159803843854896298852013672951640200624994501505592301659374957926257204621245437195244495272904958541163795078075955359566718070375970331049899052522952139544451017891248187458987172587304930706718882409012086556474541807608309249610713953654015842808261502883493545548446802436687237080098915636039373479542642581483635273025194566835794018498117653675884223045466462548376107708786199759740461761239317986514029649801564204840193892359287267962016219553684703704063441408575285340716417868679521762042516938547281826203008169683377298297588859468047599406115923612420452177357182830604250551802280599822637117280339211029070097820588944039442054629893006952850358156260736532268030715437121481423379038752115018926712705236965837195924198138539908434089785258693124384935232290769506370572833908202857334971998089173285481513780851741969913635735584281356865667519691214126813895805860380861659510605427721175679362243429630995198233802339420034205610405992434695554651505613776143027541341991077631057861967536943044204900307950391270837791062975643164307783854965587002805403892636626834185514263566773894015133342276489112383674851094205526115271263909446625354160688685494213367529434112603027911785027904783297132372656123086806916984693778798666800446545489857437984441783346041023856833224219896412275823537220115227052805633085448215758502520395801065125108683109356615506713978380967478092778120639427171246343646909073428128305858299562632675646275867168622874324721190909551023586166680589625426608947355742383638493052748179675612921943734365126093930950587053960789103182342289111855828790658863666515852383376812989106346136665276966751412838956275630472689311824511531259003482059671579091223156681907973533743816783842052398577157380640822153499875024921769965247530843902845071796241891253881827709911211453289404915665034160500542498861623126365138236204308576189435057226848747881480655570864478364200028264058168967211323666335406194661423771779650735078314674930804294882939272465566783156920433657076607810283917745360968068905706331929364510102339124073634908460903090757096279154805723543665262818658399419492730876257122045577167433905572405370363674918439991222298457136736758332920430181229433773799617269647529372463755176805359846279512187441051069156910039541936247209604071430576944065168222946337015566977053067280294693993542428647854980832033700247853348956562454758400009779729758693862682275784981973071922527545170000577197177818754708897500615935948920758087813063366334548445503374371000451066195143915636678576838543068797911103888481606796041126505863218112581821370080900540112118021653528282955537740012441346157573289467420667167461040705144297238838633396443698525814699688973466604932910537363183821903981164825444419531449715922771165095652323519744262423354684002543268402559901594518848297030672953554404151403521390279697034017264822207015004942017870106633237396757470849457028552817133875529308350477617351270799693590529580412363623687258580459312329118603128938647656495591348284035207050657474076273898401882335743793654873156379452813044312843112785141649109148133913063507964301946660828801349049651530177274981876876366222387526332747886525217476209534196631991338464550460039711084755267629228842089836289333071547284406691110482544268156650295640228205544415908755777485309648906753801732763998610161918252554298801341544194289707538429022315196583675238789661852409003137795905975115860421819524318300356837454810511334857759743735968129942274817654362279917463437824156210389154087011541005983257428256381426207149446478940375451406957819958060155839041183211863552907904159141633392368170349981716069920905895828767484821705197151556497142179601699995518184205679803295898715709008225829527072493101094671866797761293210312159181590492148549796210089458401069580249479981372873965980896417026730241196607206929619532044075824835724068883799283664995699257680944469350995630496419187664656859086315059888186815930639206111855085466880224793066328469838933628215494946114821635994938229404361844088223531034011935693321870756892080040040593292154112565159435017540109216985480120023537051046336884466347259811494533973700630886068432600520239401197150007790533045658984446769080678922997017938572824805936025537771988481035623130350749255180174333255789322636180513290300631825828916549556348958000084124618432136182838871622759748228267871065210682927927956735318540401159791551977767143057436061412438097371377762593697337512487059337526121306240684752113507338712680017941509842414640224045919327535191559039696967148567384652529065462011120166637188407791316723403237937108788688919683560165075905465648077822264703619281027077830331824274484543294828518752453608705514347634769800534156025371284562915222399315894497203693721180714170998829070847120741655967322736174955375238610727451447521232636890996000369991884709942581539237996256866525549267957076176130857973759063237846472272421802233747671491714974240763162708053019424004520219712120146398926550602309152881684146513418160596159779606651482946273215278832690827554722025810943585644094879197894146732600865791407512989553147015697159686728331566627753377993588350322097671812516158771470759962129156704141373355049505771798796140448442874028929921534620948570452933203171826396569227142145535989600703381746993395133449355390477904338898455495991205611701500830035183052706758878094912730127001482398155065112654090348853941981777459547979844148210385975686715716668286322616704390537402345626405855466569118486287852997042939467714547804862136752499879688424288829119697913847728647002746816677267481019971002054166915615940595510870314573506674532973320307517081521122947065743150256191512628029703939709906225934187418829036533472502958944131806823039801130139483864199494841062204553971770819784537739007188602072818558025677758006381716212699926464433435804479789836883134155400849217453513519979718230231118502449858312016814725628734706891437648597996589359750218757911281561748161427506171897477722534326256399408162183879439803417123576006897706816128008269710928357709102638507676447292614707512000658701180993029881351532222469939549516820398143832074790587739687164523099028963342526849643244780255887821790823612579167807913998604372165572851591884262398611161944120712627537078413732556713070483700693443419960517317068738654998528260970872238715763324485861403916183021411739562598974578632329083257970295176349613999881592635239278853248512426861901284593925924001109236937036825375222099704144386638937596831289265938844429526717355676056104828872251804265714094476221043030879116409969455854824796068603008208665576934088309745468456767121447899118583652563849014681677237373823310906072496841293298043437424836768817021764161458038137409350802190787894357433559773037857736853482680238946444086151007675719092544444144951491059938047963581303657146877706175443149553965735902923241796380839871097327403687884418914700003360590176877315457056733565991609926680650710736759880935076363894790928487328136758942149668374837592767659747848688333251980563297981220244450614449113331021811638139839941467377762255910356381403847037688577588678096127277334439481596516924053356465210671121530757786345143926538497721253843776081645055346641631721272444360058940581847082757760604266920468184690988538529367039472981690917037128994354797800908954507945196711644972986010301339971468668442351227768727955047613710016464595483212134523709823216343799988160868742119714051436924445504416687023748908382986380277989115176735527168447605235786590365570914309920643527351028973717184018180170923252692988294514038102696176968381061969857133606663074161672164291655456528526477197871992657730649278153138688100575054861258417970479764963453079326963956771201107998728696385174927401951974950133285814935670883823683460438545169274218074493939043356769153643963569191031828460956336372504278258740526049347921882371748606042898222229648484877048054844314905205357855150243267186220331841859367865591584463330166838083327785366532448062798914080382572649913734049103606240634918215653629942493704218551056885369864833376924249086452157600080214060403051173395299723491039413594420113784780897951216911915322778674178992905153387038852579106601048910971530205939726397480005688697130168626869477058945275442409131125773228316950334197920235858123481167319587355907096622047668061146653542129386374790993827054350739014683951408709426843211763065936389283208149458817201493356668776543480067808099604644904242505675559105882647217542966626103726500668833239119533328414606794770416407771664684763508736405737885824427278631606028925139056731524718009917956386925360283514237528554070477466675570921451745617599116396852321658925216657876100604693458888359961716579506133868788868473945168434999886595718762709785344604228549786678890555549176387906135754300894064358915663929824699122102317344381175220922265548924758432382847289991440901104164330280117260592479553544170507989544502429562677780274296143062973723264962038428145341174765439613109089284641805916834141817008889552817988584108601840861379465082163811032514919666815235992362382033199118034514317912811838598734144536454828046357709102014556809867526727651526984470365366324434896588685458122724536773391121650815520204167991493043037281225833426091721008563218689854270239254668248248963027164258509452539455466927324456510529831599877199033458709140048386108680904361338081013868833490724124439384416260047828058917534629519906121745238536359909379874296945335786520632462566588325045694160706745063901185320633995935327645813580141084676160808640860123613451722699659504567098924495719807032324130641481746550045922796316832568705364897752977570858594956688729057643930855418955472778456646981160622107695315184497592714423719065131103639453324942394129356230629818548362379978661822548745551406975904433836149635450556262884878733661472893286111373260010508843860116207507280739888995605054447527344613700590632343537974024160417376726619277412875115255693867920875475133321395847515161359952484410295816448363004920912021538591380044219053019892723268712491115447807302810113477906209889907113038915169802701873360044656653113877645291895803867829184577007020294985352068483946540499441854048246152150869691944862471638676438210117917018459061174836702479278095799513466827577541954996076301316168880662720463371526839570072789298275819123747961468469264251296507702786082871452412535286369763740508564934935860970322095228514047470163001345188514050931854956172688377565074062744459597085757409544051458409621247370641798554682834652605356621988014351693281288711978953498445690982175501443913364471193148573240989909605463805782273304072972204330421055093783378508454654611371920813780541127978640388388805285118455051797950856387156609758904340897489580808573525433302428308638187310479455439097882747822763979598813422488970012779133830271198391428848571044877674418251921102795927858485432029515976721210802216949994648894242234211620081206618556264442026677176704184164701727614893139912909276457161050405320808830687655317587150466187099900888060227397399848312280495184516619491766710325500101004719438901490271989770082669129007180771259615341199785055667226946452553988262027086758885605053694566988787413449919440499996259602869735604337714389225412881076480102829897079584924440593585377803836671374705001803974638665859294940788461765350488790136699269709294425159977842348755283372456783120924722686549317388441451862481851719243997493200254403876206973777341460616129505911241355874042420315800496886562578230540111046487051415908968601613036005025816465392022983880795226535720075531987975698576477871405770289361762406666255625117210420821934972481580132714429537443589317766172806749855805560616227330455903243550897783374014898420781777253965736107874557242497176157040139642674298827492643853611275905740321790817586480355291379569420125172620237775792920239159820449734618493429192398509161410918321978439161272856243372249510813353708055282455539532256519548030753829802360893582272626780480317583176661306128127697025886050315287435372472080518546159335418542914679277372207075488553874670925414879288038283877080477312791712100291204111799788770995515510773064352157540457974682240104783584928989734936644839424717630417859895766647485934596359158348030928620232946461234793725858306916774460798066238095950722095693834733032746864789980713408160307874648340903313281510913881939351283604881720699618015126344496630560681823472694206396416645448819451565521620473971748397319484528689138797212483485340976898813065924818283080807542682455947799953881571074454850199811256663127295472876902982592246621286336358826558358928645717416400158243490458569913039838363568703776209408975380568292781348357985327442043229699741568879419931253831976983961934463378664225479774939716476471336539706451466318836664714381097701291040459659082772552169571033156144384663345533216990141768108877384569913811697635486909609263944751504200579124576999307630728744303891852910321348141565005751966114138513203083581928080295632979266691166761197298180858082351180452251497901324670531345542994973784572413110339891562807424076967861307053775779393369379922076703505821210980891820988184464074949490051086267636414626144559376067701433536132098944509938635504801615091775632354587159458874077602367361812172981675741124880796674588302790633276829369386785151775710959209719870678509886019322249591601711562248271689643761512402559621000703497501512256279494691857042350356725605920597809769992168419988148626543540329769292965754261338026831081471922277172075706199021728584196686244536982033403740287631498128725391769094546973256237312070754622637932023558320635557464658022725213431489293699897878785948784191789442646054356917566255223927999121394797480157853309711427796003725026566769113705228207568546038077022276100250502913193708786349283498915135060034883134046188681980620895244984186669822638231243289038695083892360834532711158456914397918100480399464121190180132266607164521700119697278047397727596615747105735578975545580118619934607678892660520347296008072760729941750139667411488245662633024431265127817953479374007024588151619438768928592584264796372067310317780575243841678081645439526672402901600909644010382137731350513475578203209946678220610019852325383179338644276593115570137686381231231117450287190768802368770448230382401975993160841875144244065777775980795884246729676177757615117245028725416775045891994710680580443254033395421561226338174811977434147164908718911353564650517673134338039850468804796352475312571604665939197800879161739875151394734005768418104960597172510402185370469563986069073472014082371432983995383221273581114257977778409299514827231252667594025343583663935949155214838709653767127574396860607392057910688392149957717617712799449686491707089150168525381166122959173811289241152600040457438682845521262848604944076873370167245757094639913887601886569004975613853935956353004993361984803146643985177859040583748284682081896577444083387204156770855425532589042476212168360301377750117862317153148525835077142674912432797899949509539845129413213400733351646795098306506766878806682119863783506922822215758827267495022511841221975593015653487978645561554249941446466968067636438708462251739708446207090201157685419192385616462835712654324815685772134306128301910502997827823648936150250210383276998351721700044995182993978848877618587630384570994033695815504886547393814644664565684300887326151532455277602428379963626758893146792063640379370206009685422687177598687482086742844087323576085847971899066364109992518490939268508509348845473118417425321196838171837828759461353178702845838905886592422260785155774077840785312115502919413188478390607511540230681533933086539615712199173791610677549436423459635373653453697805238912850576321421186987298046474391439244992286824334967707161543186185616679508944007004666765595863704360852242371196108189289377565723166791363202466621608592902735542052905105848153344376123739082859848685696628768147321506553215635719549580413585116087675099619195507698062975627090866611907738444510915989714003175316793145902514587028283405185688280430885064648634721835848546381735783684747262895710937069861319065196645802504356075054957705926708515223208996169441250262936786256274187488008618811384250014104797289185745853049585883381458606823591646865719294612331348795097981101024797421446754769802811036752438936572646669418457174289953029955355608870063848324735998665412119932068473009881594816964610447005267256555902055379676956303533851998154661982307246971769439298519496911051617813396601744342467724718071723029294550588809333268963133855033030855572573651153734930742272720626948680963122283364824815480797728799123905730623628723799384814220736527881297304086602465131574875987483740725186446829212323826605742172991159421989474312529445507099082503933997861042700724724114443664301840418224659569447562664210063418832303204795580632377504015573720632891135514390560929135318999742894760824484603750871825730574079816202815697826267975869581587598599850862326387422475378681044496457365316537233796760474263588297368416044539064592007066607058160026138147015163564246820949701964308933211966081289057958208732351139832862376388573463432617022791793270359652824379951760523917792636943976740500935130750973842870314460802402204177503696695398758747895581031801782668762623602888901813687549595772667639955764810622808798896544443626383091092424334402382714326763468583910115734858224141800185830854222595476511278059761910681074428532100570282394401510881642239056045287127361565677275249766745141140125224743011674795747118489218649246507573765464037106814796908616946530763930567028211177415701748186240818653270328925433183376476891308315710785183251655519273374279955748423881844965803242641213707704616307813004981830074980776002267460262846562704803640076809430578508317480175041197444016826165433302346433595067720507446238561831388617741201117157133277624012781725377147953076981861169867453900149560641375225177851156376276997163528997249642164601949889527164600190872850746621598483813669776488432348859890074814709491214276552511453227258156494597185217179871477222058224820175665403598772900610254418991153562166786668805731483784824781050106226338924883206590622133221770184126690403521067838210658406498845441148166101886083606242443004064696653956310431617277729880162581304917085642575796362087808468224710024758381556426358730766264607903455869639392521964344640279829727029547297818692574474313508046137048634067977391746775617011818462169322177282249179769597630421956362556466997713386635486788958506475197292840703920448937513978216452337550178273413104010269947428966496597840758805330783358757533328224374331130245978308194531209805997557350134207256770077734398215481545462503235539952364112664297124713625708799147925934320387063653432758190963114006109653505644939115154763072937665483388851892964604040343272356018337838419122054758381149338297686434304268203867626630889610884969215980212212256977351087750216162762576104527315790852769907773434737123891745344464872963318752449924104836198596958686695297469671651734289153181348949860211283440416583709259310146005521719870613440011608638077662023056443918989295749561363940008609790070052693893467249559685308785364508053064959464239681289097540234077190716497281053976882622735116262578244748562138090936388063629867388117276324898866422433490698527532069635533061627172255798537993581836836117433465671899723885813437302781044284932242895275110488639678358114327286271935644952759468525361354992402476233871981357197402730036427386935023500125745556213938376418832597850330965210442157886577977720340856861219840178188655922195346876669032543888385219641106648222726644140801120239296479217734637389947592342906915206866919338719829414542409844324284159197009605508479797795739394034446657839228304807595315292019904181438931660584301201038625464386478664336115810119502020225460398356807654602112312595245955867768509542408184986615746628909697808847329688219547990796670139196432480724667168281380305269338877233877509097439218369683933511755600191580869988848076917525819932742318657150570698797846614601200232746712736636199979984655501397839686567624823910409248737681134309248887705018055600460924514703585548538072847434284675195502511955185445118865816744367225020802438897217679083005246176767939449835951726378527061882508916046569779044612881961644949665341477887927990117338408606148163580169332635147648858605903227604044210355483280120988745778638581458715383851149037382222263723442134396439204819701088424108885704231490093282178003104414580856913053620150357692762891870105766429152519118087702826786917992673523156641066547968448704736888575060239600898699859633398684838128038668084860482502576608829570957796299360258009957115358822995301462669003784794042395136374378977789215013487997445758353709855405672953328443596692226756833914987701035852280040782661252758938922535482959554773910471405615182046486005504497100003835167496208903354440946885746766729691660939857331443666499921973876127274606286938214320529202529732395909228665871474121456495407438669763171004834384503832957899792745399192633922798139043659062018836857045503932829139389098142805404690962984621341184427017068635276541729287775955086588476515936676485587895398576296435102626652702339952655746639902869864639210574988247095659212091487406554865367197376329698330849470886988330099561331178769751421761525257443787749759923529964171571940604029978567669254659672026516763000667739612244226912120640527697674526243258858054462156092164449432185654992496724723959394596330071627568004904247756511457522511211652979528790351321727100064262918637553490267063717801213697737485527360466435873511150816188957869798192525049344441447121707305408169763198036381936436724149616990915491823049662689186384881202211232589604056521296225189889910066637360014135948385290424024669906099989944500608122388537201133465055734709369068183132597603777528974059289347208382851319089223293789452746164868427309566385922780417246633939740085376834278397202032546084574153035461963326575026409557659829355222756006153184064105342961458342980728427719537343043834322047676940669446148158744019544790513023210197020616881592475606064246451748773853615837386436173808927145025875030750149894720807496057067888525972779217333001790569451704882068018282851856726854976848020718965842947164602081545617564668218054059053423390615851177926600448206716372896647136026812428311347718782296646577538565770156358544185012196856829955480444706451236459010864217391457384971791697311913284906853865973056271181217607860593057780689860456086996476038556424205448280201307285705139324960457590024655082584723452249141777782786633529157962307329119211840458306370127207502564065507542402836896772711376828075931528460205933478570772983129366488309024247095028714675222798530729958403235768114271756575904438325072598533387105947895121322220922738260410149984636492582515603628097165680366510473652335085780859364789812181442962796489836450939972399994898154655769909650033953960700528997170926104404060151190488224893723011303186323451222008433233963310558503416660499718760162654817811279769528777682757460565936116033126204678126187377455422017461071637249398071037946088775484154596273848946666760631812988355552786137819461867446084500212162388185123584772479897917009803046128851937165527914778764249892238903744636599632551109259588485921386641999812104673714600320669838775164587645543512089803758723787736951838526310777671937893317604167578414474943166737850677190410367969286528797792604622929559746846712598291938952562153938586662544356404978515717856496011611458910914193870987873666245865545023886876686896838910749565000220307118973904248275977202414615561929554283466593013390090446493459647711891204671661169609413679510740767046092408117505297057013918267697801174379732139205241199159190768003152200756171502576624990698343735322438783358237231070246629090025812172970394524523671491375742785519382308833426326301824629821501378513417261025331669535754086995772567868704162470775255098175652693151897442945517775708402908390572053402173283168152770226048191950813378233926995131998392838147853854816787226895014290853565081331846029326955628900744769601565082271419195972817612538630460100895528583750221093162967479763492132805800005126747985372110947020507197000158918159498131169014997090209024112320855487367368107380100809763351636025545699699519364068736726778732649157988337984090223572092052506421100381288276590999606680913411616708458866787477509292667942042032240250062592085742458921614152362675857331516215779842016982201396585880428791635045350213670820348360527297052205251755716303460518851312038593987781790440910628302018103010494930754223111352800174941815047941596047656478971824348745934584604829918882555339450639714449449883494317541019880567135363621368418778669995668957584950198759398669802840903738990910182428112491186883079296326477273769761963412433120052130979341476475807331874426620499008924399341897833368659771978612725869918396097134457607711655914575955328996829149843271079633457667690175003182154360809207006948552377834990507324673391392655121122274739269947861733439505703138747431584324860991061784614640275649277380695693097873672755227136570084219843360827529260955669187157065855783437012269269617918221303082863350369161976979727421609036569723038881235263001803265046070219465306356788375894572903696679645257615419551847441149896612932240557067197972451739883798947164793749046848667938330945956272637401131054295163297710599415628606169652202572845446031873656790382991921580486253352910385186381202333816083568403811058006242573263350679050950343804140481546609998639517384373665493133027110410944331606304254201978484453887666105950514242894491275580372174221568568161283397664892880373344873173861077819027729216514237495736237532384249634616127906614735814921625853707945013490729867665802625810009878591592322723280632471948834191294440991550554118149560070136597730596166630502857976765505090755697967798720522384061043849844388172875987563077510845326965117534290896223788077599504195203981782985114110405294806846863777960460911678788145685002308176818205809329755352941477099984864319249326757520612146022418176528212395716318187372577787683833408540376448117096500958608994433657756433953839185046998338913183169427070273208982045848634549079639999577452025193917120723122469344322516006703662552153315603699736821067447479184272290619282987804434918231163719558426865994811641823354778999976275379266508823585701800677420252236608141332407164199941245965084314241272407497391643286126880949081388652168735090281606143433880534621633512155813497680161335719088762353061420192141631953080023737983783394800919405028869164703122980036403420049446033210568934277500854243503173913478131395123059268064752455388621680259027423556617529326840026743669186225082765453788037400642178585013048764285636709200645194095416754545344632888802616656251942335950089673025247162868534680589271702009335847364244189566692802004012998287747470460451011877633097895543228295697278837223362011035748408099663859883796167420617686393931144941928641417259984460381298074735560173859450590498646832214600513306609606774205606026687480444811708942904461387156935871847695852549495020866004129576611580773926848243743073661921493134161792133930244228968731628044904863349377671420396025079700645722925993265246951095105563578274679284230499409507596563547696016934344481783954062529227396486809878617150570328844161945050199109393106925868482340124450556386712018967088881197569243399310307235871491019370805026188952197581272166080874507062901127872434149694866665536442182757287157615449799116905520221318928536166206242689659353402105694328023342678829807238047328175512249726366957978727500830456959041037366074771512385392792279036677073875825306167240738245311912955473383034236333894451992248301545765320465337454830546634311462300631396430452424575046607949696411528792352730568741683887418775176482820885652366921070472912942069481990584532981229146587713434595000812766502107645833132826248202766785455858431674001037675386227821073947308637893302307548929028830881026223063287702262086441233202874480239064534064327654570278171390262264922806886543316810883357606360958653483456020823562298088335665729215839365915533640441116388713181484806288193825584774237358335710237012839056983744902999410270590859980961219219708037823035403373379692808376178594092538767746689812924029086962883299606837145536108391817093500616321735677464355540824088630918624370790547687412815029081434005789358979150105444855109577341703218861811002676355081519905079003913710995202824796483331484998789983777981751265365672435523549349048279429634173067725362267310433538004556864322969608197420087691458679800300778935079714272944512063154731549378627472699345787822843186707427375955173327255196974753213824764402528160908229202586961231374238516854888770323963238059699569505684831307261412533816981709892681449547892636689064758241069084738667558809526809701085314319254357003446481988567562297399108653767722214830546625757349601669173762226860143365654230836633990781030531078781784515717494475333728315900984251508578989968807458700240957723874568833953363613938215022630281159580364733999041666535604748178283237306979125511341440526651265263104926436655887752605949628952901539878355753290848830889826918045877261457700719267859895605706761072919576053716113537832549871855832257165408744968504509004375473862522701401607788402174093586790816290692038527764800120554736094508440600704644753107487486976645131967943977485674299209594690873917696174855542602511013269579326761574387235798906690220278846249570264366536051130927396934111944172810235916766379255038237498112359443257250753909870456953518857354273010951273397455679645179806824127530672714811829440011017448898686758894142908199801454721953761431099904969177831198787379607748442634423848183704713850958135983896136263035427734375470095811033997561605677826525262884411476825003194819727664248065638722084736558323856734468169473497223819913699933252504394154680533038130349059761570213145603422695001850613917412792924804430478023855741786532838471717238011024835414860177598610394281260963935465712930682194454831370831707801645094453987167259119174839979291710655465682781693555311620987655846593820468141406265975017109149468060003767428092234288619821164611375673029401635001562515964648714871575879276642934014348602327503250843680197426663901669209995249396600259074169099697313940256149841938860416796955275082736628751918226574741831151322497784049927433584130319973206085086263964938388169654512724493756271873632417433651864378795405376058919249961917964639243626000133265713794138493422000799729996153380524890521117182029962233473978040968656223585037675349653932770511858626557328659950556219753687095947301086671930957872874419390707735902592168198464910847253059351673049560437378483826949627582379307053867176342186305612854175857606750691978127931749943645569796183460841242661791967930465749747701337063515057397374831156623187918785629555847816153541215879569827969993426295822880399354024049535881476338295863482677488457240865911494131691444003261358680976966179428401533471264788908673945991921473229245954719025716757869776950670722267891668302919018713052084912091650792738699592644231303001837215137337588170744732700343928836207432775453654225422301682354523148696320124101517744860493764322032599839568209622062149301812239784131725214914706809899489016618628373436052629920238121085961085389767499869801265673127841528189176789856037237560435575158706323069877016597502130959014026325953326228895978901092527069507179244465566203411819529526232367989613091941315332556196133536479368089748616777731662347267286404235351768759673639937261241592886463187744095221864385174958646567077781524693842749201717413898808382188169018602153060558602521366670989896720755488430746145662748187866609566747336408891267067927431202253486432447965758484442497987504927325015114216165034165723104092819624934276862530245223436535140561449458938157509231698397022609772894345713053948161028951956119927775848527858767424857819651029425748284072720985323279615268965045454382262064257298674858322234436598894311554023806595361333537140319925483622467738090107728646500644962737628503778365627738409227220503672839411538648204807116858651399451321822457027145623837701021762627522460580245875044949160446401621739188474644448758599734781646083771278319041672192201983410115379256731976869966265461766694026319169368226062315730947811872502186580302446824696249241525212803951527268500277707836744459135941555055510248742649122790795731841391442319238015384752041256729020874062451516790238494037663052126587286917807780881923676953251682224711095600548675788720212369395016186542423558059826717112188404038599758606292481365220797803869112824975290362374727481423188336650292160598512326023344684744701001444918047042773213671899173990457522755326105116199105443163737790433615262006020339796113944829054200524271678245133447280050230150933224945353845618892753543918487535911697986796436043663238579794740081542861450992634137599953573829837952021207273064810058141832490891383984190611332649267840471910352868688726798111094125208011397230535067952791036481594705277669710043626625359878841656652367904714959873984063360500466624133958790653611381472306072707135559417674874185482154553274351501563136611011420999175411246927847140302853676844859902746888208911842074101287312865741550364081439451272612135347874294163204716422606198782720570278305286672209978599368764507339574707500922949123911465223825244880668508519232969768892074247445580508575807087360917697599707154673147948727066288978660773507813301158714981100688661219989473709152279782790611815553896433715132523363229366517138583363398501629053128105188869898133006184990487833552748471689561492178235698811247395201298899180050502225539442659000499117219689333616972621665941761933560015975824434398016556764876033640800085898681390333497140466191328201731399691511280780911470857061731424375104727059656815212023642088245163174331174959299795267862626470050325567696454545238578930715299628450778721886714398596836384509515575484134079245170531598200783156459130491208108092632587695919730406087111316541980895958643740437029428635190199967395436951613492419331225203543875947051305696310497019231641501897245760688369072117415213960838973973327763774671053530687271451134026053152396413026406270393540429879622668764895656476795580252818844995004164244361374954846038526151452943904408518963634955150732806929781068432051022662880354014337102902486671551081186774467378228361794744526721280809502889575044940078891673329814045583841704406982675083954503800294876277942262255082611621112423626801252091455771242469188304129869689014047813562542392160581062827844987147710454908229755487428951539969859729893932898258601710148959919886958372826351975319573977650225578878271651336145025075668049340171371676056003889664152657409270955951575763194018415714827822077813534291242838817114935233677325831367297917297279424285484248071418391201098483119908749605472160790736597481393634664633376668338938502705009596727552416452817625316809635162606827235452445987051822493859628607815738690038742888176770311386074916708149206567364465121226878783382067704168422603533035497101355717582849341427199216723019239598454023240845616774118426256998371768973788462927416959480865896618174178742159148474897598147519162855531404459045512193771562752080217752233832872562239560262530308090280008989990060685539135674567571882596017994645295093048945937581577850446170120274785182830729618173656155918607240224214601416226857171488444449403657683837601157868857684955417959055867565843611124307310827865320743967118504631660172904712734317431321972759230983872980383364173686255062490631204683227840666350080111140695039245127292146313915312774148710270459354883232468029903939534873864396563870692799438143107843951722175873796649443539552999585016095128387666208163498306820024504170123816986989435030170290211124599238263599503311568429240806319144291485246409137780838193392885979634788333877381364514066326238984783032465849548006864747149439259327376498026558851105938647601225062796283328729895196457154856724170517189965709244650899245708743372925255960119181473628587622891494416144382621062659253584574923938173939788023737999926232380904076354945206309207667841001265026187137613745667646176222192580319739576451479374333596583329992408052628121516316330782681155213363580039442956132221300168004275963480702904743811606956647397158489893693523995144406687743744634937848977569789377204916935758117127116877075778045914934225422615069860276308432882912688589750058447242370556483678317079690312187927012883151837802128911234122340827316260670590076500682387091623944638148632191289048630436651168345746773833222089520912609564555479845159615827376579479581633074480839885725070170773731193334170067353213823174139579338357442450111855857976028205128779513648054489201972424077107941002632315538634134618264265356153017952530325013180604659930794606866838974311709777872114297319528714337011818526189212801897966196692317902856959544708571339099432805486694213537628682911940580622695521936871590259356443134522082781440825669481080047777243804689607918545374607525654239892875211256418357385809495144248553618441349671436229545992704613297877019870824807612538115060217459456548299596054738568696730972190771185884348252481670709550141621346998448834398754024994390807293683401944517290043688017031303576763630458301554805222900416258211470047414491149843480511016153801734540776563183997454576847400261821131427839133364636851178380486777292288697079158041169245826783787792563589188048782335700534938672924657457027328825382658650049844181462860310432046884802708796058760420194019396419964721961216982324980611526698750034197485673932848720476125068951554162335689799665976199233849278275706909722277399549070549408479927957982795398198242754539803170185922197457257846536882359319953219022077456687428717684696205346020700562603083365678819384251763789602440316342618042238273436029666076676806424091550222594563094351427123125291289331323931444727777480167157808611770226517541949969839274264976511698104232387283985230771083365734475888731161805239135781767476480298306327657195645405114964451798496399331368906719796770005055338120722137614925977330931047514042204997138101463987609132169087892972325923709989506082460352254477862373867513493773760487132279762788158693132311882509336146844076979539046838935027427802229944110965188832344070541389650233712279185142244886694092585867989201995002990363749831783757888859420250962066697156241247706484567666177383983641469827427699206932591280841657702445957092597095353202422205429993464196429049040517589093712910959862635241944270653165085177602286459088247662332602085207491269910013230116928268942370067175147850575149116073157631324100784503040605173159998072830891624461122191128963851319163818754030271803020266190507384140603726607757890745671090767317535775979490575655364019971867091125222156288916897433757911296368439292981675554313903179859292223940003737853005719453950373683464974583151749475093424469654842752347696712979034218688344539126842493281689538437105982718235227487190332183505561324812943697593615600275800092071294565831308076451722279502733679629245337882794522861113831043964889083836077669036509449760000828717120258326499706456771765239821303227058097040189770137150020836559120491266557732066259698200444853191109036124564635330549845413336525202049394569619792766268034067449969254949146488694583576303312177612731955892442983516119567246673008384422110637092900037091776817116627729556047740433808700379048739730382595735322550761495171233192254744563548769241537322642717077896995100232748043642175754028878856984426131220827409682835455629858643575457356057195083475570077446491649707602589974981856928268504192680751665108494676368764242616184942455951281420750355650897715436986559859207551355780832533539416138519526857749395792427190516268453580166143591420944800141387897668261013900178779444221382030282774464454811123588469972880717534803482384963956964790620268732692341645964622550600602275944661649326854816561664349240905476295049771133467902776878691838443089725485808700828612688899519873243495827844025234433542455531707381906350866036104842388345462137074710544724531175779323258375101277560527425004135534556770555642628254309769950347346635187567792877378274847224091792024061985515221006880752711611118745635506045721198712143997836724461810241469972455893653681473864780690906536956362077738716021377661156012516234086001513331801543141004231966152282952244631285612419985897083101540621228212149389028323954626725267054070875895643435090684033505188971996205911956756876077274321991931137460812328589820708797037522118383365254559047205806113582964138027869182748945364820969589996743698039772930078196285434681869312411705570562298468821161066336624455349298913030209647419468509888505548544374176247339082132322672551977798274618682564474405219335233237973969925326259508579932077450762835884179842932833956456272019730306741077866483567053280278456122844326495173524517000538187044580209623355799754150492550666105898429385572800256562709730624574716710354405548585284058533803959644996821732437395450686610842730068199308861187821891407030465502295966235452475601181533642459170237637093027528851753407479565186943033535437799074222615926447125505262239380498690486120679949352202343065176846573298493482015379003213879871997328208123833626904787769160907231622557886716464489133024157920929993593104895093429436057478592724563495053595894983843880088357183491367452498959044485338343619994857830549581270699259177084408484864580514852274709035306061831847757136340189910286138255338149584394814224136499127290642754872898557378735937842174837339852785809179153083410188661422474277786906940006720126200165386793969799598882287093094114306361410063224988013283133086204675660177909533399529461023971772789173523266045462313870300074302571536751838171488305961315932091265993761375271320446686459578529798343890731736378079661513458378605269088278407355690291734105847974683440013078678140241800087451673665143959312967653246369516313245518064572470206029423370632973092217244766386279052439709621227744502081759780874668409334309939345854989434137668177929913088497741491322111180572924653637699659830767817420905896939811311326075190783755923286401228064938943287911119707401065391267867256027942303813353463294314195249305359616549220331369852477030268537006475872878815199565578692857535267097566498450975417831616548524086611580136178874289697468497316566500877594455193792502168150689608637139652193664649105256288100004759799115818542300786344769982197739178351571601407100484355493806184712151208721738152252150877914892819387656739839910895175995159311803760188260745095909584281815326041468307627364154627657675647672661662699819678779060178331082469679558171499125009192420353012775874911698195516022100622619196850341656661338135628895035421252136294240651831197949161580230392894157424003216608276983423030938002343797687372853654780094329259736198899857007431588737464709153219367379060319956010886459339666521811388396389728714101681300421530659657589367287838945848280674508487259339034263898748550582306716663489617409682217117800019137552969166777030139936434577618319123699545141881441525931060901665939315785669507577063273591742026871907459416724493383886160996303275991077580608209683035394570622492016937862133732071639058283548278010164394319873259285245154082353912358532132071549464067070483296177888313900079177665101084761704869403278990293793010139490779568542685644029429854717619165524031353791461269920058222566768634130237661719852584364652567224662447283812852735090838144320435732957751300704447224682147608597789200026257009421008454899163775665008693086349691849435955726191688935554944128946386353294457832063353199739519520017867507915979496634176688993828236681130895845593915848123124073092235831445101618978661865245404254651069893102775080988336426152539046167283508680718415102395670145048588656084268300512291770689221012020236149817662059813710742320383465085482692802766107485648879381976619261482912600360815426631390888386252054725363068788314722238598267398185436369018369323373483417913039069016034318057463755008173423148610328062444014415996088372242600518047057507271734864425256382626079052423342334377990071813799143102779109630856599642950452358349506981250601344187258194541911286873870601603830686356270839992893165132491866157470033578365242323371387008560639882528430723626640800482616638752468659201226373098541989432471710706764508620392217917150848515011234709367106184377209015567459545360382382164987949815300892129283535987397204886943956129708931763724423323772691081488078125202095122806535785075428256052195773217419643765965811220287446573748876619538040157470755295137661089520558930607894414460798717906085994943872514652646384870374643530626398364670222838748433094716980883314785795555189070115465090275136542871870882719370524752427946865945210000900891932065956362036872699941637334718824622844384982213176537352856647677874630425374234550991173202580188979548962495195544948860692968798771304349340389351391237884488303568300821198861116065055651794990118100250672959912757712048881905510240555950832080128623792935658366736635284392845438129299037851761455675373217289339498238377889163412342870294284318180464421088236370767492660381133345811176084601560292118443091882889602555161639908025598527395490701403152757026462567157071442783642325137983278726615845648255966619861669734554330966435569194362059977025399871434293073068007528272104722163811073042628008293819177699441833539417329011712074322155088879088938211506972797909479224855918477692913088231917598197759268243645958107716195911636338263576945833354251229628746987235485909671682211473623741052716299023717995377380237667977977353079304841410076828341483114239388695513059250959239770871378696887400715540118451958339596353474566877340962692080642024258587686214663029906475414125159372394824614984567254047679700650607447072509433041593194208694492442211443704486674993548850948992326608020870609091937272588423706292479460288020843769871093223081922179371856813116197129942882078186481718969363349135596708477680447904209677111195350940150677823205576575037656005267085874956975680331187192090374485002046326714921206759901079142353703944212120754466820945550257630774749868698192003434386005548883048823823859337025476327547950880688781167709700375676308525219848984995253405656629444581621100823883615469364496620336811407427149387949055224536549152892254755972222268554407232670503789517728621081542709575671675759493506016222618539970821179550884508367506953168162406715241618922060871564483380666249764113354214439255691095713786856536269661213127925456378683301144744520221737218079721393241561843940785121757695172257335339727325316825961023192290015053231429807230237768817235699910298211940911906936629359419440351879239733332249316072774646402892819963682094626038347122328139175341029396725852205013338713116923570747066221882970587352538902033670916332326209969616271634538629115270395394517777226571349929733474514381679735164058066605188487961917231453549038533938814426487634311693948666785986393384623261878687206439706182150420749103613764846764184769766642906889066373224477210091298597438259075397473026476277660710834262729773020943711739580126680513018768466674155853357897850969725895017465404061330981674844649557693066595866686478764017653362034839178314282964059450147578115602238885066260979319055855565037175645743475892359191676504898795202301063879746913712362656694239258890143076051854771891829425094444663665018362412204669434248744108462339464657946307957861316897472030338993929370362177244141947948810524289310909751896067896066923794182699324696366410388751373038101914930310110935190483305342752636160687152784963537749776825769780572292218736890357793855113823007694800661590490400094350643896838455655173378612586241146395170104077644147570136361913829865439293793860191143756740338794307350912124296918781954592036418868459792309338862460718418110710656822629082628370451961557783451750178484108727211509272148801744115057263097069663598120442352402522135340736345745915237307718637229321703131657747609198820977521497061272632179551420292887126526806497029331254100094971074009692481990513222003767549158528290886648351527195518133714139497554684638133254398104041822928155527322255089721605929440487098448094554983783509123578567220672017406933719436349844812467796782320792563367102867440919720782587683253390349858893801190630045820405184217029730909715554504231765150177009723553718401120907601584112536054454547903594744445820682222079972551226539068856762372349164534937261096368606383048449027395796831174585679153174292288874891900505931147363359059245858785556036151666119919713258123794819671230148111996895585274087435863458376745437342677756699532978820256216103694884450728666903092803166141917244649773966817206497668587476655724213037375911522988303270738249968948033690731975888999553762492234526625041685540064042129309353740083529917351142955338936145568654079300165946698613995271403797831336661604781676968565076493589518675352191267341056651669096918123535369576132000612969671496851375520475811927279784568817307495415222483933316934838107110906747339950871090117002408731690076859332128678424598448096123455100426078594664079736284692598186701692343796360189016350116072780734761785104674974160959732597484464038419160329259673453039719442635960791569247275240741582322516387636105577987098965581616456528779588941376010120218176841851397219173217083453899407764440580160697074231820441415864009102116574611142829556336346847727270868874538846853466026409957950443667513377469966847891283033240640382716249220432543002431878574726641056124707455026971114511815896125073199215245819774427350621832165195864877844523973893174913783224634917057913923327610902015554250169221714980953828479496378002170403313391266117683374837494493121807928291338203668792246641340354966122869812812351500374517391829339932171006427809125811582652213746979855952576581868797356912731754395615280916344660964132619767379944167878830752992560926500874644127524624580840571981723569632714626920539257299072009986030082294115272265995155297163587357427003487606323098980836249471769641095650828274137318227727478057265062779458547023807200333028128310985422996196846572481472051024024980022055141381952802734644205048018453861897542147506760591253857595033241238145903600610803348901819938401414709334149885118103285499685147961760231182236980565814863611671682227325118630258942752394972907962517007700622746642107164468185431515462627305065143607261010689523195672823564104727519589251339505065062146264381648907998820252269777412397596027912144643916773268620680741918817756586542392610720135850905191149212956155628090009233184349442579444354014314406520603939598236789953368155901794430110850959878323524312603842297336917937597117571862407213475505234995501359003275710253447534007615168411007755740633724416547006229209018339078651069799504106012434503244283498371978493954015146339159502388773105141017242622707278064357104910048592502633593106019462169936450398335348297599895508744760889791560357746097190289195530053433459372322339316834549750443736680197115924805399315821346042169121235489434219882230064563275767350324008895972723118891139334183216447598255263654012025646562932408392835510588891744971719654002839765889036464285321956833060481974460875397607442114346616641871796107647131905871332477345391216918801032529208008904492317563243715470754034619744713161463704595073236684854177341990042693107821084498551047843176471815501903234868040115626688132053453883670698825074419844486512147600175682510733703461866517023660637952768351617467099456286763137328781570045065482774612417063509857510264013403723960709318963396111479935554092957611032551373994952798396698955255808622388740510764243668354861714435169145188660184207817229239003288638462397041704626966890065191300826930731961231390557406397213988017647550981066225833425178522106290509086706059940135135565710800618340603991476630348421296170257084275885709454951847543590527558326030565186490713878113241619011434742752425043152681109316090001159397721598746160582054235424200572228228142785041944706025010633025034433774195054444282841502150240208111533977582675034756015022526819294850476718122042020364936300896233720868522931127089589464922930129271858341341559032536640476872165978402439017301822775948376289860237666064056961640669700268039530106084508231243257943395059436192105691149592892532768821795222068769482259635780327542075468121795608901463465304223774366202679637377099358805650946672956643886885879028797904862163555781131256482327022980479643205938779453078687738243607191858498765397422921441983042310550721876475970542312535294826270288375948719746995326328005977447013988733815163053536853431616358156417350027140374448449478988717145722039905650229747794542929005670850300828936840231213607632353028405584887133607315569908230180962605600705899529279529631017369264499271626126231120264057370919397526146434661048500707468681356625816351850716966072257147259032169101041264959984527646968935764777696186015246507538487533944748495684221935667689849326309699049926993747529692537492171120056546253440958130584286319555112099675432789400903107322097862504667262202040053029634595535827180610045973669669829421235159616422385630796995296684979741582005401683395943251426520081748995732038186235261752609896139733555804151778109017088452218909793346074021605649554169816026523175639763571510355207017693628039426351416257008543417631272012930164745724389619555211732340506192806847992703747605337183580596815291651100035080623258887790970351418441453821937075939148133744988768263788015717352010856802755210146253339879353310736140165797515944104361206914573165666100140525148294093085660897620930601584204693822603670201644933860919979508433864680949113731506114745549176161849256033351190854698937798678399858653549385058599611731027548317659888197597598421090643303396746402340297776474991882592328973092653834679667096912143345289647010487924054268283694221297419834256632377264238000859957404292004836075694276473676831613809583954433559516540101276465298882851901803584049275860119417887433479444032482343340127849205575704277528543484150817850725051296743529243654135803526091017014280300929220626713812980130740073356828832672003401966754838943377493112295419580160634887980415319639771549578854576137706360196650863898096651381889207803502496497129075977296580415750175761222505641820379572271767129106996448946533808974865380451853119407531394623085010066380987827166632051360278229473722293519254461028135459356555270878887529907166311482561347852403499157713483072867174846591018161032571418489343877080654825010115161196927383793113848785300936905437271865140615113893356410905305438457351991329044831248719069131909544216647727784524810366211493641712491402103838382802511136135329027476010027570480790698612699866395892876040603362205408484696627928739269069417337312131575871691311517418149843329160388432866344610442651098454577774678588305165175867202399930750580408655040364215292829936866552505848753824564736951857852661076099963092037108496640812005253347997319839171101340029932169680876658492504742614426093637549203173383193953639451858697555546043724650076866356329413694913861390675887050370542083770921538707271471552593683171111029007977337729275051715315900129636892263187426615020562183850578781843560439562290224401863459070347774178601240483799064781733317824520284191018761522385193200676611935446392522607839155627400243593687830659999586034500711027156478745741544961953638884320131019640001187296253093420641334909580847594753956563740529420331265066516876558576334239112354028706395773678759214594105156620461153489582126288716913418341193435189608518221936885109459959823981511135942910920532055290321405982622206062929684275305954607105312974235001546213590841669446379041753875464646075143491783605637357604852530604896809414715520736320314079188147682228574245990340673057872623535782833202741722770143992837000304729019042423236487163465152939961443456277441524336491330750461295880558418056852295615466013092334459017194736413424696620381165416172076536013711804352281650449391381619073165115600140213553561903016558280270986537895639118485390559432375390940170356022048496994780597158285743971787483942976291594084496205364466061023563300725134930130408354709213664220550171282839389837552282089047310329638893978807509928969378321244177635065189836501751471535870882029889000863780975093437106896877870116658268308527197876538071275017250992706535613313412404611381164149159867633596529610923181458222989650101712810538435355751848784261910597396311728942841035581105842574867472561925426458749765125172333015595661850938661787744577881283452069876736998892071540606997021641513102417235740156684395380285906354608671474786834442278934666703372277073641892501325040333815317915985184989328061730104637914581513534542858908580148277089747628218619460227048500231599939171188071174237419237631710160773638674344800866476475006702554635814175069554411356800840721611422530568713928701433366615595083166875971036855125614638633684187412202518125807067855337670066834858784334994521088267921784353976764332803407095870416603142962417691360197304609243807488266429273919540758131790116012078086468918654996328929712004288943069878573886878371254688520524433704050738696629250510250964788326011022261924462567672307876452297992991980487221598925951770197938147752773565770251463157964881242033384512884456122033352502769023619485319900424189358536212425024976528969340758131750030579077478082484979239733684616122155713335041940121249377867523561742872712229266578092042417983238431496582292219982289550021457249436284654288480225488390787122011322837734946877248882401028530747189451477496486066397348527188006946986680348844708596748168900637031469439401420595644214183051477441008743029419091001234588844206422140433778519539372847385993968778772333925515960013886364294075914489111663771895939826749819472971351230401961677034867241908917078297879073294923348136044323399652598366826851295291840417240866195401851130976255098703048706543101555490586284148277477677706325421033531279291270135921483474950214938815951526773322980250084451029519373197399637632868558895110318332688587160045692693779173813050028696338669032657066149326921346957332333596046306917030690453919872242345013413977238660222310026040598771964446248104945222393535974779464794861078581475516404308320782825301553643455554796131527867703421155759652600508621979625619662767698093027969253467463508612527897959301917827653425459035470853023132332333630547990623644659813998537355559035869855911802051133334166164314252231100854639968697805961673828136891396417911408117437335488301312669464506800167842216911698506363153610338970533482966591485997166592415441363664407799550808286611543052642455886395346973940970998589386669471140822050998332852234896129879851185664760219262669908807359125283065677911557921316138792726546571811921183439886362160915050813456520006169327777710499113428143911147771782644527417262716532963580219913864539863997987059234402797437471012758050552918788157775066577320135643274813882371471981240544548694921610400406642651367922295189225514060072061978734216922096107601215914704176010303145817615694819909495257844786166257983099590533994550947793521129174259558052086332510321308561783182680759859738970097517050385474175952127449164036565230571154463747156258417369387437491257643706595881373595908959519336307860239811748066649000016328748846732299712121629723039580650426536826538753322477962347452833470371343451121864583628874565207770809320011438711198380102008792157592858484164404736512088387360459023170803463328389315856174337431095700128751180139378002596115614334970158980252456138959620149109155506624000064143111323182506887802453687750763223983765767584463535446351480120035104646704579737755880302518671462002809312169870298197030553842150539147218608142125543692091055312370052259409377745872825001751082004638651439958392949729473260880007480108083686396790721824279822127708126081267647462636974540424220139253480216515609548864191716959632467271803503510662326389479732236373635937728577709189861860256574494616449835387697648775726820918587957270816935681118564816492786510032537510602273908511470687017856789452909258453252742868567641001715278970157602793461959609930035108086486251260464527024487202429364142450013633206382228142201884816217682050957973751972916112119385447244249368133012189545594812849492569419773737230214079708032626488494654254983683758511437553111053408011311942921438259017949480035017983257532951621053779343984496741398749156335203419593040220210477341147460897165425372164604859032773410993716964824878276044608357886448219224004782300013008884307865951753439330661994929138714035179211476145090033380755139160799750023650715159502323425448663967734529713767238465519715784104925830957072315449314550152892513282215903707588228453614160501787123311972685967072508851536343832175342059435465956304544359817145988862036362218618882360796890821746302060747626760398451701830741567563408830161450409001446986607924189874122209478769731030979051097469357315510467514088615627461607686710922712349178023880543132094681172695859332631890935735633063440626609057930939595380331040276248703857427227468747657095413669184208284059265410086680677203009056841200120875218541282288756057420810809103797759212976508501296197063438347307614798734359296002235906378579072956645091587719849506315606387103325030669303259175279238860457391652982148658291042767730008903261006638354593920901774402377875439208290154693223098857392860240957437847092577375998145068541585170615441472829752247213799009995022320501882984122740382755010751257733918782369784846994588738476112531487773580857244295417309705535698312748908673885094473308444800993369326594991847055045655096258027413741354548795367973627901605424766936067810148436995968864137953400992688341829594455892010279420296875347594759871403407407598747624555413746288735411324343189213541064183851839399627985234695631218831889378006133131072332839196251126737311463289092594425533306054212195738985336025047862062634636908762913289498258088136433844692571886138057719211031006659920691623348945692317899778572357034245417638149445974946047540173976625647951680516396698558685995754437668272720409115377307282822465605808692739775989548561576517818999059671941449017260333002533821697753667241414303833205354104715572869499376596897112207376656759482609147567666007991880131845025900426310667970667414548489053890419852043432774539439346356874990556321703592857991791046406633333811591086155109865680915195764192953612988619161357858065685697856085970413579483800753447016446983019547203862987366832398707175332775517854089286320338416430781707131250039269340519319908964030437791603602592449314631297519799741445805850485654064611315798417763038236256849253355978993768660783814753037349875472390533106480426652302416084714101082675451290741061540913910656608187657269198785410802219930381479047337338155146443910384241912437713105524911374193330046469490041170975092853075227983918834145599226181705294206325723302578657235314967171700557228559195638645528907806611505311717835698624215219900162116326337698765063607388530043544777507747403795274583062511026720657468226105806936602409308090395269320479357559089697259080801665501697510752700118799089642445173942070546056604865708178114498385619366834405536712715457516584036353616610649996016792339003111047718240507388705067961752345767617309675684212266622659653405074533471204107739549838862897244497338700466608971832590630428908550473373318736679529773695540065051749526016704847840632087507686096980356560215973022575362829644848219831789644067594508580657028030787646233042598150548062658899291180462405603340022922843050840225364599901673353222888098716683550677722756070121163393595008030831714859476910634267156210178420454580283053871181398281135994500771661340403170020624448043538807101436972730520860462381290958386417233973620638768172451861645145263943117729603671027599055439192915886410140339326244988892751782220669426952556267012475467553063187293703827632324037469715701465863069047904119798612088815955041212367740644173675707355250242179007996020544511362340716548392741857215467810096753284579637843129863351469036579966120205580139624010375340418672201512818329770043071050930724766970657828639894783241982123223737757053705535453459961294136187034209321718584213675726186979754532723453329167929094929098948367671369204488515745135971399212420487114578415414956316699582488181166998004355744538509815797529683315498734863154648377722260201168010964065555622344177418498768063324429894883608271030569299515675508111071987587055476716083328971388760295658665951829356206426644784130885927344771947245834347920371302792590795697713794119949739000518410607421225634541678120536306697177192520166296095096450678842852335043453191383636885218501262956841198771338141723933602596420554983634278984312452005618870210194577354390401855633470211525952356664412960486729622177828809750938618529051494559402169213561221539725734861109136183444665891610102555039343776629453924615004220745908108778849845010983604138365760433433032891480345128987208988407136338870919278117335378176739121870489566961463594535154068377362925741903703808532326878826356128724948875172039094434252216928181875367194922056301947529575194907896188289680643227999225350482552672270750623619948475557963316391127829285353627649669521789355090731874447108917181741422969999189205067999570858022512649101189976934857999338706332901665076866752120599384412794867364012211532062187006427383359075767107238381135334544781419272313682317587600965223655061492428524956788115495187733022590482767196283183348510594939957850482494005137455905832090727658060884819944588505854706943303954621871661342159560949514279865609784478024092682027113686861085370975285709394754307985371363138939982821289635833087216061050047696756285257244473628232719426979705445230820588023035567754291428877488418473988497457342910052480570210944544386198175712396939914897984428613728124879591565014183902812673107179388394304226228207076455468691100729842645155207395096302904217329058506732004389515216667278958319736106345800678009050084167383458786999133499252014033261672491738451544597540077719770314782901734864543937401762318141393190449243748166860881793338602720330259919848996455557228477849480120824584218902891755864015805809112624507192642035483150721565122135471801438438590925395802457370487814199828072414277885341378822652247903494514859044905200702060523234700698293527573565327522324333943498640338127364715955313632276283339639888276208907890334800914564069021851451381470904843804418751403952323606208424958441276743215469526531991276834101550782601262338857818880365164153759157874625839148414464631079195788754180636074274268370019606868506872557848582320680500231503863728640635048910590707913422538294174844744923633473755794648146354963741368222825245677161614453054849783681207225839420437007198326880747991444480946390690513159231087972465092576497941244113014657662811263015777234362164748427088885882118451511838331563600179965485368093611486119169237205314693637091348981998692679502748118743800248332192424077664733378496623175467164360047914368590357903293113032954544703429390807631036053169656676563266465540460165222291523506651440153594764233987099823841689367708426622110789325593907540318680264852020882104117199408186165744437193981087857579055599412954693665826772115039747821112325390881282805294362835725246352848902025559106945128420624501055566786941142204787886625144501195245066839646014937061112885406626095626840775404598521173183288195785094504885208710816123629316955459695081381540815802439121738961511399244204049090840356464299200330626122006991356630550367983146671116410691188876241909943358438652869679732989833561753615003873975087320169988757990211882305323232233194798919535003991866511252307529435270967313692039214304816301918906417377232739801132170319497192996210967985638694481712141436545006358720826207351881346858606615265995948938177849847650846990885391325454524769258249381257050622469472924833799620037040390561878676981586425362978420165134349209410516370957553708490371445745549203092726952842640222170233636069578468726819819716731385810237026262480727313842518603060295499057142132860605173190919685355465919819620722848543317410995298136693665702168691760710286723855792960332728521863261212659399388809574932716039443364818020623302201789300015806795328912890297162728702513109853866305431227612963398862807155545403926802575044513914444294452477030672149094188725579465578584202558557945528710733390973067590278031426911397763193435500932989943556380770015814879816375949296316173328002838207976518043735100857754777210531466527910105623367613711278318897426376827218472500990894310723270563001839086446467055940730665003505420484872972183885279127622121983041573029049203454711053159165855254590574221775566767943161892290044148056934694886169899638500026410399526209532676933691625939453359263149958107175443143124253108473904417260980729939881371547649061247433560963098301924511017183570882838567601176140609322687106135081749493399146828717413130147071086537108421429719585352324397186609853707620072194110973400715779219187780767689603097386557637278239611988269221956008104257949930294542538765678428003838254664193962400897031505865675124479429156708179269299021247174504302369730126232373887805873790855098316883437697185516747385354693379846548850890413856041840667054271187760535347002051199226915134182562712083746143852253638938938761744855476465692971501297198673504892976568845590249965664156357784013216856288336664623964483525573111308127954025332200633148005890432601266810198377385378643460575857401913142897871574934065942541165216867128737615216001248735157169622268315494026665370010800806589732126652046992782660795878977739715448672269791110564457030897054669451086823634868925261644532173509373165646053556728901943525358147691343158894159812929229385283674744762400934508287963913759440085329778659192628863646962965243352658049614489484078763959305299899839454447036552734396868367001009129726509899073218603819600283712395812822158031304067550133246079477575420076226086966487924284758906030000414959658452783344688902438202715506445508484598083738608040764434465405911794613924888190498932368942446731036223579094693079701998807490523089780779538424726154848123494831945037803029253315232965260605583792968519992616642837709496202744049672030258990880773224381522642539928753382330917416411859742776635117686536090306031791594113414333014635238991556024322460981292801432848597650810378957290172408629189308718029010101403608561140973981393884740583450405784948919495341288920629913800313901193486166154586403221640869138092191430698473109098937602552005931294243084750702454814699663750166963599995906585241396289293411386267418375258192105238883062872339457161097756519209665699650020056945987674371577712659770089538911209756835068691724847254970372128234022039451459689817355073843280503891090263526333128126767401304527348782460601643146079598384197469999554655713928470298054490904586991831362370464363973634607990071771993730412299749539279645864086099983921439331130038389231206266653845514196420037300438110162497960165798618705803824003340695760335843657321425231225961705861339605230870297877757338923288352319597936864141277969526312146823413739603508433874575060275147069074384695255123011763579429541355792040240712944852021663903456111302193288709146465400935591143166957207284994070032465278208494107192360083267104402578815612579174134862629149110527010087602782788624211538705587345124838192009313273428429511981658371064187477216797025471942186371453708033201077437344626904170311846647193507594024803845494862405096903658360243914557675111831108314782457381247089676914588792211598701645835152789931749627554058120255714996210737164714304514146338519712645088225648209474361566136265334921489114583685221959287338898713442862155234220910829794078204901052220462943041399326528661338568855726805473448549618199409300635984300429429240856168072561672507488255730282152617359131833393440234436864856504800094507269459513822304965313473390477487171388356532179053610460303061428045493102948964937976421772962378114568763007118598769782582659976719275742744608354889476746939601873593381774325584446790612207514380559362795385482804607412376997236270452500890794734464270140090119634818386367024630167679311959413782395373040745736452328636008960850056616064484985755453791374667504907193186361882993640818090416151412180618543696770218824178386781660529898711708110586726296342521562999254788840205179028988919194669041628281229772118150326181819078141982153344844779656720620258706208874471401914842889980878581556827024869514702101164870934682944457306453556374049663557111638240782736272459547793915722455358014979314689178047284738408015595288782616589186483969248366965824170632022864004549814614162948349226363817059544120485137327792530681982032765533584612236226314537749258248632075597206815490501174850914603057213459889284622177966339981333670018603752901140530371490987100102657640879252008162421572510973429623791328894168958630243214061240816543349268127672985825411660218621008049704407854304817657925091414755810439230859768018385068755905807402674281511804459997385366032278400532536072615089604997622408171427335717482781895655505913182073036313540257950040961139742140826331204398181218345622348597892675388359738157454040658078458597054071156161496616151506236969866899660158439363749645614333412706947221815139901712214335905941322499919403385484017740728370506394958756274269772572625392057217370604866649555235866050812840283751787699232745687266444300957490357652192478997578587055145976417646176037588060113434726490193693640700048587987459795382131685796132964931742297910715678954870553981689429545624801899395895814923553045734348949823427743855202334972876427142106969020097678549438973695884713046474207525784948010947769799241704051917910913273579238686918025208069570316359007789963547940777027258350093783851171513077266315838883446721332370848957503742314457801859240523911372309741660837974439781274204878540873871957105992012976866161102883411746910497675037549044058747534830975243235725157349017515715023479390345416122639394152411578419209695966064635057664956541073993644096851034074729121814256186880316134506773491020263896085721374388898299519028051315986662288931146384335486920865395022673584909838181770457098846337631054974697016432458674441830361240254190390358792803595194606369321381195645512406673095271772200179062655552833581054244700094527522520234260756948510119248071586020312711940373544646575741848247098542776277014526013171864003200243555229826789007183719810460192944526662206408730023045019690666456033458002551388186740567149899138494235142198513704234238690304368565775940204270657253522079216198896262424724465581559215151844825915820114626563042509231310490374454089312119188650579334286648598792118316198503331619631056983468725870410224614412718431434436981990940057941794402770052031159436429885041299253072797015683822085331741630467164276983942358986880099142870229874180244746269246401517291675034929873810030682203100373586372141972338400907678472461379527676676795029911155751479321481791679793919589188195554398420922187361650251097654282490452876026697144471934663954093569316105182661033588190085008235331297429108115272508868257868723843455788718770429395464881649276570613871875490966143407192708904478236332481664513748086825041342034619821523216175684811616450308457876185592773354868640331265730590632198257369331781502156705268298788929788405353606322585197204072873504886615393998009813131561192988029119573031089019961783818373954759501498945663304123600096784476229730982439786286146017595008471889900715532532408754184115734750908467154965473283506500117964794270774320082819314085671620035891832029028334557291015384470351725975187256655257834756751281361379359392536912120895379900972843009846488924704189673449071805760306608694702523007188821407138390204636091423978417521636850840358413347343455366736201398941544204909414377975618831650796512053718161079190873874654150449183188880509233743684881133609005491568043347223278370129548381611031963795526994890826830877742256176550180992779295236277249836764911806252026420225408653926302460294540603767808392669218600816069137981983164250673280790779657879871927396901508338526639567742823814931462681322385207099214388514272309389108846458611693163992771611179028390620878041373414162028007754070329000885297832447385170460923656829618466079990548850055616277510966639539249002500012329657466825460201855441421900197079127040709920447468325246706500658602913858327019958046554408385606534183408008423982757418227461958923079741206596760853300443926151927585039427823831898999513889935151311360231770629351593500680242764477499355556570832490056819424540737560749560307609651928970809211044078646902651358763408065961770316200613617194682430928270945472783061615945318901561776905414723389187347785872201453365150217341504945648448005053039512629523839041274200473471608842187899001248881448791524330644462036720551631511095616616751474969155461467345792955014929315546469653823795220462026458825805282847052882441154749021368605284013674943714596510261301335156831067692394737563342168128294201063057502209720908578982836433382587341608961424940313482791387417482957253781195651454885792649428888457150872062816752094699927671309659117854758022718293693440831903802935180132132477459675664420804769474971618829866113787747093172491868510986362362596638180142889470953365557047878560993254073511526404136619424928892770559749296615587477958388149526151854470613075892009161055777752252892327492082843394634276908481527242563049645843671429166802484029475250804527530979018717177544900693825026699620809721262049725707767607383772279938033964514511052823860823636207822926568897834940588013193571003223955456117701080301081086609157838759590590825919235764580606248855206515508870383803870124275415401824883768131079479588494997964417175302318738386674700114723136491374727539421350769501507943562101332209662975738623802996881668514127640536816214153145867305717047336559257038941926376881714225942710995712991915959454207925926815479492460631815466677175243435145569603855532715835141618451952153637033602300444803761047241222689024267791240073701818066428785605101070568633424660140821344867115627996978327689864084992051723451830393163882534530746754665822925272607419459210062015333188917076645649449269983309544393483258825642137753282151810082640727448233829364732944083267145605235401075188499282616037354777886446921218812538886692475230529445048286497058480407588533779344946323078482834686680555491122257684983081239212951585731554665474062447979299493233975555476139986941433777385196254712565320921126306349192154280687189597552516149484449367944036238081384111656374935069923329575366264137028694102543814866142340966732170834878932104983612880122109007364980794026313992644817918068653084678399652769002810020439918343437120977105578154515050677489432877488680931408117645498883243943955325238733342373583990879795106462727836071121901498243917116139723872472919167208996615899472617799671053402631271701967427102121532659360604042119030531008653907796314736805618981775217861019060986612411198408220492905946091267664146897992930419910243282322526388814897522165065533051450928785177735606234790002511774200762169854502298794988430361497604515078013129457597979399246464819406300654304999359421647592823539500164736161033196524128549989371637824974889424288104344087667604772846863146866313518666627363139223410204385084291737699380933974289016691061510218845046737993514114851684078553761241717327648142760657122636821721071576443861039983499755485641007723552293085584681559891687098900356316562034789561298263094038941420894312241327260711208587908985930633764225959291314025684580462260882567011633927477319780215946053266838634574865050418682211171082011408153649616276519924347973477463811238267112972769966130959204703365692790963390103066448758447384714515046132812596136441079852877127869675232620316576244897653591487644057452553882807380944915352966516421684572168102586284199115229216061611331221022903970608612897807276814953175111035552544255482460602015304185814497062897782190167721859518687971663327802699033194719841579148886372294933792515603168649118668425542863988423031302553173447114146470414779650058994632265389860170733224004393251466447265420567183455585123871061732731587858653263212344172445410883600514475266675261424391896557579662934269408808390176936130531959501606416402181556959501775485872038366834598393920265412298497533754195733651113769319512100618324238322671709506126691934824286820179825619861639102416492837339394334836112577853634511069271356082423433404805206779953003617586594554721990825794909437991215253925154899409104830944805659371986144524145448848502777220572603936332029594153070891148761606637818489328957304557926769733049305112353110322406783426847943347182001846116423640150854381903922098703701725402846432476190140362025761345632378248850097399079707629382350194704509441248367226591083070494065738020096896176190207361601532654323700712763436322882570657034180711794760792704965723342100057676298361255579348976366823913707120512319471858944044156265103058770749483192305952863036563956590075364788067939066911931549742642609779595926903608727106294380834269490668437957550938542445049406121214846813009324058658147444697662247793941824072364959111790525099475456332167470662477253777550798481993310134429232894123658364456007426237401641607278199146617818465810867589569180115549574905640442985209166789876495074933843217627558406631580634746814205662489928504362728070559668991173923064908249071353473331856473944772497522151093946935285441662048495693028596380079785066387914123296908026028499501003674416337167154707795449129492591913855676376512308782861998082868189318784333517501622329299131875100404384518028041794609967162210975772764310836448806003144013074313577361272597532185005425998342161316182665803614134633852786598841732576037312317808528125901415307928466836022010174903359694425481507833084114314944649438650518168144153055658840680520410526785360382854650916166415170027817110853104176161330797677116192400761058239750385887069955517107385854907889936550508749871435569181303578849081042963199046275883536815795466714022639187870459015123781073682136850565976756960595517239555467448277336850460176714788539007874142553680654550330063864257688122159707887004953530195735692693304400422214522246108778749998208691576886754429673443132718439164216473503259309433205486246129083265104793675460555464197537004638008524100943407197019778099821627890783829796218113627658133117282407648531866325205205141688379947657451375567920983828635080988889148915622327958164845646190681943101595248306121717927312920990022468750643092842238633296138879587019795166623153822114830166160223490495519655994060472362912003374372235579616199893655367025028499478558473427133377513458177208585714131522674060179874660973504170746864142884596885718461694315941166723256468276161957788211748845439130374319010552958171140624990163368559070865898503484763489565018114295188132012194119554174114733754191884306524355918589244044616537577817509691840510431080420104542274047492822605881436569011607608247673010032042256950802147560127331261519409303031743681366683681810821373301602032450913055880237698833778531454365774337685589196930148175781765504158230701311040702905223111555192816404135936508395394116305777866889070590627819311773965831408512830759550642331981369129620621667614532470645750652166454770433648231573078928982257474111233506711216963115289632069488128540981698588096008548627617781790853667741632783030865519984261650666878468429456359317971562282097677479506285137057611522976602941442568138418888539994953558878383676989999097418056069603503801885080306099786949349917117553051239447617980324977303393513969941214985089549761005328769835585667068027519979308256049687425153871208372391626221052443545477328999790192801503080427171809061535234437440330586635835771065471800965244451835224143102414793009504004394284153668785337181198521269551477654991667934341403174875578821335207228073284137832762002831927806506229603428085463056851482805161297237694047428936229845070904148320707301349778350025505376886387445169117444626677756308606121867816091425778099481705725877936747895066242047112963531135645853910961335245099136259126288608633067026158471338655721532611989518707671205342635963279847117669304780737176149434178934586518825804604011120762570113218560816246474127711285695040871207058856085619362825254515136678021200247795628449091200879038563657529960217020355959658499728460572350285901454290830075147942049372910648824540335811259239368390385262333260826917276266047737081925681891813399888279124336689072569138229544597824939958056969864521336584536796610592506982323828463819571912694053826873992392264359677529440316274347448305432584657676686979190924411800624858697743918328586900232905071802067733374562136782911451932276113304400383521810110335689647987379656302721044699098580651244565775051231771040109627153699979544327197292015654828525073988360889776013228637282845934419261254976653740657683372151956447881263725549595949138879552230970776952982274413850876395213714610954078181010140799780038574920311232571868429161856806239775289471042788092576304396813318476528175604818042987659814272769735724214512838734631271072640309904949479414944255123444049597187022017860816658583160070269750830219981817131285792148668787512510339984043748828550177105190539711930392742030207451090331489891616019358139408392759599015470671287275099017453566990113799832291524754849285888798280305894461286892494620733179697816646283491647449922316984488311720350494105753255139387526484415969200129825856562871375728946769935798929295833200088142590714033817924442608708225735720943204805323080405644063879131235479340662469412063380201459299013434583141110548250260499496651204724748344644917849555306353154580270205202325722553455429371020202017553107157804229229021894323542502956928209277231077587845258222729962031302815251121202855810982348244829638616916745944142702355261392789091505081994198061361130449148846011372330675780429131271038883801730980865320446596633609308611713172247735541257265473107934406286721092058291741751786230778048918972799727128290887958102993368653860570228316148249856060555094635523592271774971656187771294941698176412683337913063146888194908055992193195623288365934079947059833182262715847504990734771045649595100642624651687141904886580977184571374194678765135718490294808461679078438513577452753562905511877519630740744314958245404252165120805708618009980404660926818944711613886585261320500941500891921806409996459091083590068207119040414444123379157005411310132521873499038024346832477609603915606691652989678892554379367950537726423112967084716056412569755922535243956345630229501337801103316899474886198231551381411590683187345654665075230455922171424190077959420807541583733880784536513999894285044711304438328884211470756400162660849333571433421813473295861900723050543059714225461919151913866702613869050563614733894305894587694128842340019175264125390141583561012621622643241100561845869514134951381535705319772732611398113013539834916709448941505806901325351026639119364725689671112168410462964044494902767302364019950796373551561889280049889820103121162320441283222151822339266501198715028745034371751931350038178775684500598070386238899763343317754312254463432734006559783888059691019082484491689287912622331457763105020702467950667485250114796490167760526081142291437230378709893426725249285785921122591291314198203658224293002539113460902162266264852630390172744279616519992408648208700822593828505971946407444908929195662125553902611243321327714550382066037781689464511252827098487719079516287041440862417301568616722474505289014650542686902266446394651783157199480124057309199735852356621920412736727449134739163891417919210751738780939061791734747573849696367957862735745630722071232824909061160985253168396175488107882884893843493428004765350352146639109160382719785302292356825015099969783144441019328659580996821602148115587699090282366305621777619911461060562238217810438341503930140344577703758046257890821068044130873616299131397221072557798534947656157021247754557189236361854709385483984202065365512825358906934520992187693083824762709596514588663209530131215260545956453749562349066500007422482651004443135846303809833757174036592771963091686796230378451465121070491016689088165386916034839726503572979674081052358007332728813477122151645728184243458775273892293777148073458015648836853366837861839002487339969113407525160152127385858510379463993134072179700777245332296370493180395535541823715199194346482789310175869836230465014656498502014577918509774765212929429320082073916455187029133491779851027045661965768981644390493736238828159709947365612660555223949357833611069535593461465301451039057281944351076530028082970597199572471527194218837685073809901976267745829233688192458007243316189780362515263987383910989572287904577627898483616256089271534002800034591459236373039797612888967399953325498500118392514906466433309140102846827576697368409889008993279686549001971634200246902495704392580229586057239222139518099539499230538999859135591797177198902266593510956188901806146300537457696015663350419839495471547538548386681670836259245288488516604164077254321087756411588004626491059828298514247160123343739968210648804439805378733298314190330807617030944738956364081713361259521792139644315824979674605753949186810276830487901157848722135123094330400800209846849962452255585550595816682325355676194202677547253685863346381454348624390179034065977652754804232303292988863947907450216405408373556115073493479328916209998431548075478375645163268776458514185351501468935081680005915523128525169039808164540558725109885329212337614246201194964069857771455295533431929759439344152898485840157841074287344849491600658982271245370996846777736893464712207761282653978285438313937427469246130582910252568412764637570217687556560407654592845026259086220819196400130802787388895862532545369889129619736670078568259552241915679412925278651489050348840681091005634091359230626110469022877854722036929862724666525479359791429479858840236116406101372362508352038518996964736367104954830164667353623221811312502691993690540510173375980242733115996799458529407222438573090386391216460975271277763299065345226414674857725558044271440431131166864393401339378983511309846383015067194576123025857733798408105268933384894148194626732305281654226392832877616513683464940734123733743733579644430321429732005541704203177084703002873865035713055553376877000302965270254270352703486059864200874112820840400814337468699384279445774576416677030906121958991181460144712748524174191573823006673050825884772733749200432342745271239102570870953437912924623543554194857688763187131041795746531487373464259489015310473152613719033528163028103638712510394634528924094405308068342439640848197925873698120424200031164767371278040397357153460943795920411244948379883894700483053889941708618993865441870857647797616975811495697256027324949311257045811405710759099499769952944856410479169274278309280193792229646710942948433212736718294924894780006797697871319671264838169031221772196727279279033284237375913667335032855604143853947693922265203402654530509650183289879901028312997658104662561928504789879968876054609959868250822325725074432893678027863806435826394475746126661693643429492914945568430471836750135374202271436403595325269522172149591159936808060701697897645515875958277668415381493952631768860937368738746793375965108931385578090661932172705167612372639078939183930064944353543340048587483361969436142473021075643157355293839255190650456831806091076988755558519655350951735170412035017999853728317247050528984446667389912949536316267931843940083445460479433976327330050307411696657207642474505976672255549218488118011838312345115873759347811144495446507915320814787332382028372089261547696326564884462961327050073776512395476576316068799799658131872580093133460454474346311763130766272812655391498074190928832887426467697423760532374782560561637368768962371176355140189915938973418172371042168738846482585856893544162429565530687863967037645714086050203637642725041560714946371978061848263280302194834797806889776114761062589039072470921050414449575857053528116391348902112996007944982162694615045881648040934703205882130223429012129721101554532308141903939311387083985492753729897550852673343181737118612244493063665541186625439985982174996796870433590165550524657969120900867700783632946156777963749026675497924461083466920625814903986407542806114152108475298096717875133379331243965288610284656618180771780958185129684456552315753944678948674922526076045510168497236252109404440110624023076857571096773388662630541008850979454307424544785498617545224512115877634099987518203700345923230121528998653668473061014548635276053936989617214679068120205320019443526656283625914131998130328404049821673154260678853965115763803045307716240745372946060813187305988775140547944334002640201681638806787123567579911984377193574840528371366846169138671884799654359122178678602872436456559075251639819364548276509506640199717510044352367272325027640085740093715740949029629083219792014277375104862457078526096172622621367817390379056470796352587655833283349783190967022889661018462733416663881160979264890121507199128294080905748861619222147274492821856741459217340153352426310634579899992203587653332745489549270761139934116761513964192181233607689189897692878696725746900655928987770497936786685125274590408344654313101997065412540213773871619600290127752223429640762442032380572656916551219986161344065992054444909363469100038993677278472581986433685840097932178832192788987861810366016862612545442336725831574040518232297600995809300731807168083483139437261517019833264666027347683126860705747699046210348127911844598418906147995554410172483757569751452513433548032802635004244251964042433512140273874778594557707395989341973230753935089334905219870531963549046947993338435635869180379284560776129616044518186489815708213517947014733699941801637599823559365416252456272620870570267953577796301774856796321887895378941276312459813294140657750703845449904762838443188235878658946074213909921599783013691475899738737200243513414283796190527661644264134484206939146676262761368239057314820258743004016235392429683620860972546083262400268817525218990159141886342985172743853749298605331839745242829503366227206249994881459453611366877949957250357948311946664042381213422417418717771673911340882450187832115627712465733453205762936397731737215211672935696323948630021450562530254162128543533403050096040780463110536659353019757914033074761874793388958988464784596366919439913495866911417730379806586602417065033222803948513262108738989542973539876787290677731870738428157063957872553798658173168262920118987265138197426023242499773834601147160554115404754963722117500030388608053106723225794676109303337462080551278100218236897802359266912670486101504993802416731137296683552776404207017166417200525586131770480317971992187626166957865410612446883886926539247332016388185829187244851294655933795028655412283284822638944889346183683828938624092733250431831464300273716269454972995300856136115315774791948452043384551569970717495243171420836064585496945968475907765689669394734882033721180721584112391832904237918835360940070536515923378275961250738513229443478989858582890141071048291529082875540179716508730965707518993544837087112067091597500253714762707112788929714242333436654284242882343990126871821333239667500285290248056059037909295679745176513992122929010512478702432454542182429056032335637236222296375530931097959862420113301948438195609783684560442661249311227408721033245746727952423130244856939107407209096800523271450800622893353916588220291746807309611472751686965476095964273465542634466663475581487873984640378426012396753361203232684966606292094118194625593024318310539708459332519232226600534465254389429711328650649914681935632288625988587623380129891756658177894513232869843657277474285228212082202894032042908014895804920172304926522670097659592566602878899805009405675345868015223577848842147399939229684087376336669711911113414524643147582435358945727952353139370524109846244404354337746385079267532954164673781777537853386583385785188537680673691760271956937713397732068573596222388488622376409693300727160654853095663134933345256996675459440082059172731964346887065151973450396126633337306986174174655095554898287142592495996219183904943391741985144518296771920270360117038313850541944451278415079548645076126979325087371821673692818183469476336057611698344332559490871831701739081919977839502428489713728548346360445723079242828118739500074001426090852859427481886416341681431264233249944865105672155627088750120973723307716085953132928147161588728842040563233760613831535601686227914682000268260358762515614792092094915873844762593404245565659508308861915864357652947672984703524497206377581267280347015192115153645451424145053301874837946562399100705843724638576191204080077034772474329003771938235120769524012771522423247418248049043020358720887088328968702850730588016353426730064630684320716002356873281463820791119370735747461511297297230336884122969094456584295127045599614943332133088534814579060030178096507302771605733940316693558756070846390322940742594930193503277385914603580193855500202730441271029452159120280214597502128819598065676510559551440840489103858178838922458744127191594189412632888094875410370553147772522173407618513707202645382663910716775647231588904934851552875188090779684583584555608666872860508555223644302624365041157645720498016769874006146040155097129332143841689604385948011296096554466978196457496131747337743785267092588996140441692957074402579598138245638919513138057432810983475224702914895617594829054732304128097983377552496267455551144510320470794927032594034139973542647659401496501096051414598653174521494374356328140152808487677032969110584826622305849477878365980903658846152725910460374681908639703629863747573845221581265957089721436530950575751668220156098535347992461937039648353023459023909433952722809389068566951533195507895703549855667747606457726498880609527182266788911649751390952088292594571141589662826237037789543209551472954675594210539093968120943222256355431802852433743612133580639817609492809531012027184542536115764986724243341724305382641004462974745271232486802413240553547873475161426392599215498418015317492690956616142095488016798762547142235964387375496867295858823504178388314534113118921040355796855974056691984202826268939849566775374026636206276748155912525291583347900844640829818963545549735386999931370559813839786907590322833454083638192172729378922517229733533300609814324173003805369435204067624085269195400500731889841198700579667298886442807781401030394735397134981070366444303368985159556492367266634696464066985450247295600854537151643242611576169380543401285063111014922129598278533704195072809265329832943799821132115261498872875531928546003755289153942349114089805996727237951037319216037078613379622297259676208725358711931104141952815639322274335325169684176100656211102367688375896240488332335994602020414089610197643060257562026481755187774870436208221195118614532101643023251581556529224620018854868089361198370973670053998111094851962122810024669882327490204061665184519732523620025190787530906671298194675041189630602561423805027793476573933752499482482722676086205299122757638826613879164018242925563202624327557627846730828070319100837386947391051881629280893801635494518941252659563092378212207736597022033010370050980108194038531642906498843492789096132065575151868207558862293831843998062450125441570443567674535277982816475235807740313709020690740077000894520448789405764365117998024999321504635868167506432449926253939647369774404191632768774674699733047147326614730445681440923567474136669255241307783423914813792811070199904840067450661460037165183707560471567893674777965788058044487996454778396444256272713250446254467040357467660052260035880926257830748957257667778331606909931745180737727677676644789898298660903657739429366942681922475296813567947800443600734283966861367059545538525053271643679973814945651097414161416933494883464186610424160662010651237195190782035238148474401064352966846719975176267976738377958978857687178913365531013369566909857822653007591124065703300388438760018116689721461665975978620850639526325478123468868581125799445164260764436942347491499053834623547370115952027750306488390837882033984180181079814182911642600445202275397037853110595187130006148350300436260045425722352001208887828342577463137387516148494007035786951619580558623271021163221952170712013173187822119016610268189999639300182586234198587589660043850982931780528371428712692493739014501576739776931928214615002639475627118719802666582126079114100794303933340207328789034441450912853595106304021744344095143250651820625020540891329077740634244523742808034846519225289141042111264937067009105798699483953571600604120784741946358377709955775852839940853244283172737003430486221124340412905034752912859981469936934879072829417781032894010943216868415085050447563428777212812010662478454733777005432117723744486757964874943444740434665363137709322625339951121248656747774709410914365047021119812319545858314937093884916831363617046502010131306932100122652086261379849855662379100321469296866618895922112412437149546190701474131109793895247660581996542622753370711829286576238202368398898890280602044349685610709888885705799597035290601457348670833820477705776140281713346418852022385692172432876444107674453924800108940282546768919497354475497514083264019327307161759503027326948949984725741544917292208507851620501405564688150447347976469342738680054659197985617583897943834194187330905548057439177177517824121466365531499103385397725378862025336022545982715763621138919322099358295503775233865193654874620718470533932291680387595367457984418377544253853164598417098093781380724208190199986770964627438282837880897706405600531722578963889861793448268431608440021304807561468786410690835628116226342935575355453674143773720313665975136671815928474830596076654665381579169296701350971390290986818600852863363231062672843734966692804961899700549997060857344394902688298840299292812340430241696731289418237696852049348550594538774908427517005894985956087213528385346127260807036278858428393560255491329400854304493038482064916572823403688523763785965510904673861600321242229378859809959908563570380078444787579980654297369566938693357752848445607399584598074853446344137658714796817465255847551561661523456708244947729470169783495351147011513865248844572859146920195631662548685790104740066116030646835306880950981740038044178077983769503509871793905990904925814445215937054433271451139150638361876787735307373414542293953574101019384341730369578828917371677662665772288056839696154507015349093726714559824929785873858398950506801185945292769013733124748676054560544045307329912493145047303781656239091954639532424701691104934024525493606361366438278825640561422571543714330984882239950307464243845014206876748731064994422684249581035242781852556852319405885399654019292845260732515105350579021592403613246338970424227701322176477949705699150987616661381359298995508009633964890414879304004244594911582689017006722100392062131821814789017451954915312965943731111237342067625296906705540768211877821911376648113084233559102353922656836737829299686583913374865868331650906188984541441482011318230220047992717700931105824989311480868094848448459689068628272588790490813292758459452510408024286237766203719459606673457709267806505988041318162289096761382606407489791382549511305730411330218680505112058851342141823002593227836336777261618776009548621270016647199468141382823758630410277928871762194204174649208877563992286613611137001891530185777711779655767306669217959314089697210764616818443792952422857090402896275000224518442957490558718776700978158186946466365075270442695064413711837842863724893738237121124641122452050157925810326820421258112335891011848541144624709125216939398394243221908412769849549843171558450365402414845401694835859205879806948198775962741877272487696460697385509080950887635302147652521377038195040400246640305770276248333029170148949918613221898711845248254296271970364787753206736329520222286591205368921364318878478821816222771670717478167825477691975944736266487510424190631985007112244656079855941288580372638328863296589490185772262041903771034542984284638859365696102670152300282977399632761329664377894894644593654331504484142533092895246343558252232030291671883565998983561085568696160044625659391190198039554587970668022209533756264345052102769706887407055270627323676935115370239825419247745121351487597567288483426122103541719962552189136552073140341498659311267433418176413801757709094549028485542792853352965205553359342971221418187280459656559506087986450064345007656348904287511119955855286831552140208731897724832577109731853436283007973045093142133126462215128731983836593693973075035075509488157207134931369611856979168845891658789245189013066642069134844517093253957835514396563184302548559616634282637728018407932215124747966775218041970165841687596742985293752272569690429299227669387979456538529046474589684119734440238925892991955786773431118085670426236273580114279777498097433011809815590834296790773383742699704960508896506508703475194137954387243517862791326792277290218784264034812412613116028849275260345573325640978068934061855700858703083302133473450398130706394948969193467468358570707068792352488088100675964051409168701068414658449263142277806581837605505160571441320625723770884345438328031999316845876014923491446402507797497276116154741442000538674161093257412272640749258096599535883116849984091141434369631855596378281995822232375038211325414052455292128075213412137611926190178402127365119777781971187050811921489718567348275145030529801620011128576222942560920821595195072246134375434251959236926676961987792050316444186693406711201577481520489054073976849246214607245754035005478149506391043339602913305914925471741491166469586104596217639142579837850572736969009022904479216704719144774933553256599865090023532767695704441847909723692177938988070512207688886373550692588503081419291874076507589581580168039756921568394451890954994150945903117040815732015547158218995260612419038513005257165934998907439614321587134708566924680742627090502422842413878117995394486315428673731360897734008647123602190876205030845112907732666576950157846390706690224162376860113258941659718136960814565770394225619349942596845963902494649446121549228423787640356627415178189506564082752711211951148650054997090226128930319842035071116908002737718455527965010037184469930685260799540222238907009931848570320898142547217310243251090512428038072062343769449139178550991261061102284242182722398031244094030418020828261285513909505745685714413276487833484490015617400140712352283691789058603343998226917797443286225091231204276290413708851311248245492522496495501729907000047292055308007918070709476895266054117941947937267325600989538721717315425837862614566695844914014657536393689907844112727580310272773812485923331811953157268343485705590635392847216157942439098975060627457354782357209948459652319351173605140463592935281521341546498102743031416138525578992038047166772894901943529966244326044961672411991163196928918807270494402240737357996322779651498030733649649699204145963002722216882981509442358465068418637439762570159751251670974354209022038854143876394454524841003364416919678857215160074170265955566560286991914166238050981336196036351761584510760671870855629755368757553230332255018219180094159172317564993289840528075626439190224736256876785126602811932147042646308925344003510998613141639453988346202476747859604036633017816235005135758812227922376445299134133135554993306644938499524307414474443459239807896886144563408758349592863222741232468897301981981375521728018067780976442835661671814221666224332097540025439319503195285405136487137876641418200384289906297944861692787941946086290095681110612191145108239721984549560997532005940521451779312501453797703773131028648716800478133141578785402765661332028590799573808516804535281608450389069796519201158150324339902215443468116788441775173583133633584079674427777941596691506035590424107676961696425237101731066390972354588494327407652904612757291059807297586959421792745030785461496813753975502844347218702258617801027499501316988097523135566626476774668137320114285256066402869194555358155392044736176383898394192383893153111881099111566076565863458108519231947257840378937231302554600073853465711749661608985141487894993081662816956343924873164561117397199768233946567051728229480858062759699572265329423377032307503283911274878189686819583870998133562772562545722223082212248037311909023488609785223870202567298380445672809732363063637668295997029545787630568195004898600757666708876413100023743261200003132397825237634755225620466319180620093381571356812207801498725903770908421178880845869625619904733913877115189607423358163372645082774547644840783029235782152640244186348493900367527408879837228296853393102958252543498733248881110437996822677064335572139722838569854657418172913214022523012035013231057052494462144096460234540617612569579737151310753344222954391997804236265459869391320849994045414097592884588123626876742415146888287163178084963564331096888995046813604025363434843544793343163131254194316027336282988793372637863560566384234969427692046713921994815575247347007038829768208806013800313651578470064941757071307132615209314925175243861983663252040592614288405787230581894934355637072534277424709506962266232503795192896114176537647432302425865170505334499910772003996849589255111322236652143983768667060617112632629110641447379888623348369906512899264516080358725287882472352612924461340445856567505762622582781773833803713135439177449610289268525443263769858931967132340273798574786270469027992533196422732409447537878354479952348570079197330457009963045256754550501400846921983563324055677287466259304573126682308912010753650077021465471096033484422589956205576486852350426459775130104110901995871753998000768448633432326470348900870006460884731129016494486157705691563991797478625228885027682704455678001505972125652132572654824087021276203986241915089292283322186042528775495425285455163176546434682789497435770754921478532978330449070498874516997425798494886697739714671098949662015421124135494208748269269515276775270707523994442435177484336892279513938029514346077126975361372383942267751708969588215622557704778246652622438910893125169968292727425910840205983281603946898799695026512592365917040276263505384317190857141398754497489840337688999126448307214840511179443767377956638105532247077221910979493839784355372349473675136067373596221502172975308438207216282746049779446721272844499074537018089989722317784974941392748467411915773791805482566392184029325234684101505512381436711833110800912063041060683963366945350418713979295158963582254863699918081952445896374097470040847536365148604976398614496037117742262917512997815138229525116311754788758619736422979179130333377446542240257503436292784442130183382915357374096499175235078321491779563932426982746071416683511994800310247057018142797213102932966257933908462451331369563567645859142632051752281147238927346849246947757593919747706316539952142323277374607164493219804596641840471516219975054456691651173265004413802851566046751735747885638920197165786093176113617419641451267099765480897141337882233713110520064805050839441661199413602244426728701282975369517373655024791599991378886989664608449360388672965270671124401905168302278076967821398366783035358161527650193041155398048828811649260134347756931969506482522420934367066742236147564987119868244052368281940143800324967702892044956609619774566152510822802816678734090065160080638641544601411062376703954063547313463871518030103444985506212873733831578706198644536573968756359432332050917347089629202283801841459936023466405549584943763378996513222931221400622449477657137220392788568518076748555468681338192588574007390115736769189098156880159926237029160279809861602112431176048458251754769294937428847542326116133301199790083418135941325756837653451438207084129530499044524648851676733249908282024346230790950944214027332089595695805757299915266120196569312533528251960618341221900512175786768561943063340734769330275294062705316494373808445072739045842514980837827851296691478524770600500306819345633902385375226666281337402350942647813373048971221476644265137600415824779969442287175137721696130084551469387923366966932532291669224275750790055315117351364288094704089833646146472424455300441652494731524187371835663836274532025311961186966630426693158073404682848746355479896972564892834583738418450032929354670808217605194314130554809141953592807312819382725558306921626164011272795930092061575868023739152160252624482503512657454629539662455681645253178722150470643878092194803675568236389805858353983047933567833341686686705891183768887627106533740980607929301236514991350550770616852133254395422488280225912510113795385824132452805086632313922484531042995990223019354743093070023830641041535308917819916504643831520593715172011904190312402514158488033156361091860404922830755407848456141445433936451465797851044929605380678299493990037976882879609666884222544170746013703009695867234760993976199926862806170230628134913649842127013701059187085773249237017821058336223765714390663412460577181171778137270729936951072918308755777430691244015161824253292486289771274533654966147139744875416304629283352871070958836609465723161181544353820425044754235404020039722708208596433966925017043773374484211768466340419757771369671941745975503948838089794920342400521579863242745788754543549520005741863356874091599219768995474077493699625941961890531444797187075212897643880334739459232454672671139090470119513440312497194150308878171620371748049915776615647005122462408066646692068141330351449021259384960991697300790720611775946271121971306260548548682200177285541404030787679412697699136486909182328783822482110724037733462839612751294860449335348151321039012250179743681613298822979320033100220906736063150866185017963606924870516951921667796322735809992582211794321605712817527228768859531611520435594645319197637505445775744390518895970435610565006238346513147841917032972146398166637785363317273547036510209696188767905173440271031720795726492234246044059454998648485136777367516962470625276802881700089255507508630098442677958217466071216380856554754398971222368512553549106318761184774939905696007102047913651696338566119287846456993688834979588169848369118526333770615071410602124970021457303776384457209346500811352961572298047371577091624278532331600998142738978003385813664276120721446917779991772491494580839527773157903714639618045191705208233028345831587468731621133972557752309834045058252789981730100086475114618050666028612231951325959356474975250999738936337656322864972425352627797762563903039954131547223760729344475572530930928187786830112522678299388818174712775690936169674295800368355760254112612924732417986510920847631567023780400669534176742777185651423478976332211450421200082324192014746361921843706588220800619171778312178100420511540120373745823977578014307903483301288360987184766757011155755464091548459402742550089925065194815644727552220390358980819079016559543386023678257158496663336711325235771140081892061875576515036473220443770887968903347749041236289295224742333705623417983352431655983942521593794062132236045319830664115190682124081553341293683838774904992933749068072215882916354385612894722602377612429846307168257742053093352869675158455160085365333974272421481966736613637467758344954177498011636194410559324879898776207196498150942110265037813714967936329959525154320060438673482915972013391015900907050674105818226959142667970740838511547154840787230671603272341797509863883365012399110163212888821729152882142162680241788536213094215202239236940090396615522538432621813844798726892668106293608641385858599018121619936631779416140373474010689930169159751733846226228582410218025191130714471410743488153284980393782988705374547865107278028325510105320586214249564672824730013424127738116279197899438204012118887050655233739674741914257771081060769653317590862614180075443537536465525637507926115169148450244236964720078570075531942044614114196507066472139215703242047723267227430734169093682801522891384343557675949169207648277746486758267208484383378717322212521466327593760931377440718906493772124929311965735258556692891218566739122701737697300006005240477034859747599692298338800034903651473340768264127885918651844648929776760673250429256459698587791202996871766389645129696492525978335087395958639859789643373696749371544840948956638197107967168501154411328743652277971535558456702754681468333510482583600105000358123034395196854766270259472384416307589204030632895885449895849085758446596920613157843049879918458334438170580149706022124708885303977141485140425460944508031213122403014652970875651560057217510679103100094380103741039627735306247929815278697669038936814503615879229459230012904689590242388444400127884850620734730622379498709750065364092562973419062844575277131617549077950443305530471102042536625090530717548049982385706940458787235987211982357620401322977135480772836589911640689928104955808837119826691678000109621580601404051478869501905581557297336111565906167498837382396343868478614582948787855689897085732477873765440108526940120151277717924254693332319843297986373314179257522927776716913984947105670543877391814839978220641999548732461113798290960815446102523714793810384187073454358917617038676010065620687566677178043602952863241438551402639778952040042965672835167857880703419575476312065320284763890730727993003726707772899570081530854998039151943548983785976229253699954455636876568547212629474758995595965413859873917214813457038952389263685549620112499931713611670735935971428149798434066237215681280642261642630688164778074416805888169764891009932469025120490942667786961051246240435873924959935160710833653211945131724551470027203398383584715466597217643300047694819814576193681084232286762722031159075296703238242394276468742497877086035562010058297687958391652232926226924147030169203125229269601460950294380747143057274905524254736960806180343043606616132825507770648945250337763328588685967753073315561632431886594532665397191194951783011012559350530812227157274049404056581658510206002829517789043379429012174724758417225745823603166798180985442177851460042498469515251327484196012425920692686491267862427600715252919953763895373333513394274067727840131803027213211203063165871091248972460367030418911132485293968262946378083733230184758387161152582090779471948960976415030195983401352681138820259458114811376566664724078903660145918678823695653807440141233982951969860882930488213558091040221724055958488283466012336873566981500372093621901348818551202280066188085110730035583386784562311604056652301271669489862691395823591328086983437842639832349793475979022051149219788075326539077338166652268248228400303940482869792596110866389618343978987337280024231913688752471524479829663501857781604568742777239947294862494292648346060440717645524130882657292397565381370113552590808984141417552116960675293070012465166026064009429467357153119429268504075547947838413834217617212721546819031303354521226234626749554388736247601447906263886659620075907596699429170300786104801560556213047440744051289126375461924314042162937292536614775228514723693646839091584087078617040548683098961063949904040403412336730382717992034172291692358358974837332272007352067206571512258702762011737614168310560749267199073394551168435964878543960710494311837546733754744683911476490325011868207374884944877155901625047973054395256908981924494351379248460717795218114848057626286774576527100616493169906334085926697409596942753488163804246999786797306412191310722034100836645867152063134510846182888490741772240528718067217761211175438935754737946959279775719198626118107024398918612466946604099112268790229036176116071904148306552303031560330913285098443776719037134774025796048072049707770304935370308629644573711311684378965391517299826372243393875524277605344816968067296529098804478467990134766875770868784564229695013919203755136382704631516095970111382389738673568898487913460963402003299159077376929212719737796667409844480730627988994304332136087737265599669416869607919567553202125813642274276457971652721264203330120367026915695928579103264428090377163044777810506828407767914097847711194233814707708680127756447860273930461274693329187205869117575190317052956581082221666848664058743856952570431113356736768395310410850374006313796043678664912685688239847539775674834585052783814877974491866559281969440394140698453926901394118824298658255799552911755283265452648046595412315393879360320475863250712290600502475679133518695884881052238074629831770546499687839213430622758585753760961889663827495610230278613845497889611554446971910423606640989446021556834931665049796565012769953819264476982612056021388717412535039487218117383912559339878724119758145369746530400426678711047598395853436117192517018042239698225894394313889542603041107939565031650575504178809085315186074984803783049306935751467367132420400176589627663862088822556794948313770014006177466788349944026504198418891074729911548090861630963007226376415523799646276451848202467222898567928462785707496604438844904407611955530951586550807900207999055783789011838372019831802527129259778370007057553563547232926162819226125233990088387327477045237032381154344177198777735715415345890523582038057950102944943937507132205612331147480966509191533261777616838993601849903181112264998935939227080895083578404878868130954921424866469974120481928792702809290441706331783273046413360753983863111140828487348532707831333243501777102934086875206632130916802682255808639855460110482530629813863378322203841951470654731669846596004542623650882138369095998052191099994817426353542012505538682684475114123227653019705059247192373810803226192669491641298485939167007773521909881921015473849605684552095868521829792670477348205651926489019190043152038465884167552742515117218379277488576719204629180947492886295079834035572224408696643618767693104951929424658957547781811340729557544092463103747905301967489522836592852786802888281124598781921930564515320946981590938383885023496160409838123933086307990604112016357704784916572895685595895391579186005050445420957525444046742697162205569389379908791186570832954270993978219543439461426674536714026614985609540191089770181624102477998176345707128252814724868398935481366043539562861897162891594385890440274459671539028368531702329544355179101116072212475711263338410696936432763418633894064309740147269707326708701429264907105634146462496099348011651226501263995512511984511809631113768448384180550848867072563911546670377607472715461715838678246969536569101171685192882308516364955558853235198496608514765743426864526046864421224967479660086690475584875960181060620995734860724391038430700775189979992536130090111632813769244352080356532736706232700305367911590398955771480039658307258353318601586095109983661479265487522055540022274094006507840956611382067011598417265429626127735525268202973803592794273420839999350839036038791175722520174305358955911113862375326911507613601034552517133660034737448123329942068220176516920622766703103573339255692421787047352439444466584564409882597425751265240369823835069272744803663765057345343241373543572875435871324413285923143264261934886164585463898214834369733566064409536451776231858160868806378057777287722705959734961663121304673175967218770559245969357561525749459080441926884792491565452070888691544966306739087228700557958570222281806485477578454807445969466878851956812201894828600435509268902555607953453314415583213746220118039953218123712905301045061482817671829688759732672761524421792481312525818545824069369008481500575951842298666773943344606747346524923069503165378215432854270266801673462055654921217994428649230185263679037879978110413092293344786777130898454764108943792871981213374008640204523279344809481572829500559084075983688079449910577679727712776303558783652343723827953046460866187521859241258068623494693669092808131845317849375529041793561472140296341223356899280247630497539505489020267785975379255813436082289242935783293151444292946672579542599694043510014381345339507806731575103684355708964771187291189293455592468017970258084293285289847476244057572220931711164935099583126373402971335481383832225054166654213550227757467074532107812566267356898928137336416329644837994626726488237463821307609734033336104110341236230378727643727037024130606746050840304977368527023021984676870368626868219972107007769214823792960210681195465590911134466111357315383383959928208721705622083437179937612953778681297957327443981692325936855441293351602010405781542884790424189917478489006742720550934313561683953144755536646124741627349816867840928997892608004567294139511193593510456458186226093169985264106261310181633780319463533201297426564527694405433784315764816556786033815095861594976131074481270952045932756015535292318334381834550320622630707119942743408494441152879772795260071074621773611738536150197991504982383366489544550062947169882449131739584744417235678143751970832190116160231533456733638137183452398733054874437772227007706360517688174577820483556705542761009372385498404366617498839362439664651982947032542901342763954949891735264498074115955920856190260238237435640597449014157749009701497618957201808036748308410756323214218942571240688972268252183269536860251129211374388742873980550204787632724717149538346073403712044134156310541427407516944646128304786773731020126713989201272267065701034387816883835303455520736092826519551439525319352152843102553080506736370238614558766073210246003085698719387860062862139481343172314296316338422614812693173138406934631247304713021030370955808817161859270914821716852792272365906724746271551804548192347828748215476909682443012797273920886473666409397823288536701966869143666123433083725217131016408094056868514629560601973982629063715542783840598361992548737125788194438390693219118792216053972014995937868923020695041602503895884788109535357642430467770068500782331557578551913861530422766061874533597470940840363997624764473345746186058209085266386052741563747496544108001944663357450848526006857219332031498160874943778842050136844448527560404625183657525851282794854294020605372530066516734580247459540499700411107111016521895310630348438515658072899953334024295556153869331654811260446631440621054571631841040987959822877006655678336803117063551182343548381166400450949588127727924566921266296108521136602820017135641591855756942114266144132488399197054802340059174124552903376441805163881032752694365208668629596948238187830688241269904808743817069314784727897699109488884256530668951935013273602175853649365457741972876245116157143945543850508611889539723856209389699188439080543736798964279817399334998465353345616838941165285731170298134481608305624435877128486514564912419698687087099326963337562397299523961701386628019644292157386906231522371571432379707856838810954530661532845838495409491768028812695451946766451597621079865728037164020171276692753999037226942826130449663195842359099114959441180793479218760664214985386827799181993713446178489942267132717231762174106903836108929054181109098128869003812218471003731306386554200637189125874492007139817679410537408034440802649632177323309613116609276959732293447139845960308849243821745359040421290438973040392997560851181712856710987849062284247769048823111225223180704289900376702334434214608849586378382054907840588378137388560085440887080538440388355366049573026141530429079660856590641961952392305992230201602891152124201648255051255241099205529417314351353894274898703267994517557542594478609880124434480902820856146220196298438591894910222229869166010629599876199772900692052015390655128674209064638997498983574703060739519794162472016878670414275404402054064507124854706844207342995847278427158196832118988861784338833021173312244804577792146076120133621450337225895862488480207986644828334093072804387456265437992620682876710620770005619853159151973852451370048382428694461308427305421493238076648107994858099608933931938699457065281924709428996199893943230998744069588489650484434620118096965635289413606458856059570355074946444393681169962610397568397695450047690284084991079529205053919491371182251813325115049954565025444269040858509687251372001359787891426709409426960820379522414849729851263346335333473828515528118168340714177522855003489102693688675909897418917588668837498544841193911361461050323733096487003849441137665552601104205736217577395610887118889034092724948871994096231565970534091486775515428643540545043675962503665527128268999234030018855947355655633485343454104111370920172459223788139329190038276098548355508616870760104339010061324587731171746281258133972791881194306714770618200378823339765466315992229936971448368138588779804095760909015049939780734171319346433618190086310638483079845362863580747618228500880758475968523017368677443756531667078745729270970550194892559823756466411246547491094467441990844812118383018665445339938656107957960691517430833053506374073001829994598407726022441298127746049509392693688916460160884508528915001856014823501354828591865810535300744505822085099395076043237411273531125626321849707551694850491312919473082680323597804889164140282810127264664798366003126061190038338198287459900898631771143557158576795115750423785490953668106858258291837333335248938120680515388842338432426974970602352627728453455300449777191169881236475647210534808852100420152006959731008213512566565950570547816024072835640867553466519133981180816558689468947781995507997029628118343821011179694636489987315794579084505511318477554260502932121639729032356699211384058595116636113298412519138389433530322926180669946492181799696163059752698613436257967966747440089258307062070633986462861777180983366146326256024418818501701733766806317474286173124934472707002790410004869122840252262229378098442133584583035717784076294688362194563184810385604323308075044124708832906070732100882510905983774727639146547192261415264363674614430602833990387378966652275478367795772984483373951244796136061323861003615153443758073889920420277606502413654573999740500850147605760831577893541010835065625792857708012996755729954635955242133360559327578824511723982140353354622665102877529457027495079351222938435873021314318662943756138198629472975041019198129038436595013716574999768742935909470471448588525955789592696535892663581235369709911898688046530679905555621047812174598824203749913146782554682389984679067199746607309529492662954405494938212339849487247612892930961447263239168091530505443260425510760475291781843265973879373417577298820335326394017320919315678452071417382625748453844568817410961849548805406232605193488891362241858198765323420784943782826255726005667372116299090783109425008725652822682995048474149682005141539323914063219793380546098614886632300416804114301262994351919694919903573644239920187187814703055716964403083377188033179490822014051842945708506121888113423133530441036318947343667391520802164496238992211608529849273343788989060032990140582743006714529775578328994104315195398542558104042231855601726259682561299082712161624066276876239931138322276066306787780901425524962161874048549620333440247019242995472061984999108774466472065337197342429481006823591098891550242358521213253603800879511230116892822562254833218006203232069627744005290339909605873980167697040534883502909141867823984299379162263293707824564814264357178301651970680289239113121101725717350847713670772998524121159399528309752994624226192516783404717321939121815612959175455454200002061257014650858032146826839458444865405626407217623010315607829047545981526324893791621150373337793065181920522050841520022986389302936975412755980817665086408265835535119755524001254268930692140696702536177248083182819522300333074200594294721244853030305734819239746055753274226051182388319388510784739472562297514634130693007461997300274991862759024057272426697235505305765718342417273907415059400275483002060680115213107499863685520846660464656570023858888809454525024931820029295834995464587090499090641952756270566732389652248928281019131488902923634590829644764328109343672594685281026070643834274983457362847254533519315216194477196598429606746964278611525655820363771985747539847580485345125579874092968397581993085844009741782608066049271704939828226730235359953458278633452387167036597059746699721675723956941704398986188360322665044302360356665539496649080533731033902905630490187067929865255209032450761998834634204157767230168856622076224189439390825752306378006160471359404776629448586585713806734909870103957735448047652829753926121421593633928964366795444506619203767620601292489940777132600967221439002344868089017611210186140382671917848942730006436438522708117026920247663014095216060573970343373956857120246552488617242106594680983409341456492030302977718377673870162896764701218609827935045046607299649235485000519855018376610983505652621028031123577399290163213205506176811569909775162850499352712611789697725380816794483401113624860039686275813204373105471046556572614090487124456761554330549279777657629576922078562014993687258409618270884253104103745239522963445774997000954840600194588226349966790679167393324328161652442061370418381298437015963955416212063913160082800570222596048739533517882486411442830096285299028182698849082937265469414831812381090615676958255413042251213240298257613806045838822396732964771015855392651772012894935437066973611958719122572894483920344649662596810459635059240355625225237204202996218364945013304575695447061050261703315969192715008045816337803257056169852792551737622150395141651596807566670887949892344952107812394578220739792319120394448944014696046080807517958555085700263618714506650671993424514414116431314017344501824125108886061801650498368395207926018720308388205612413709137536199762894715290564642986786504991050373556233469695791840280197695454337658279977602274770023767764193442296948005177214027974844168347128927454618653508954108465731160865506077062468153821271098703863597875655674034455863503427079089622911478480214654411346727053017821544497081664491351645980698671265623019234692041646066274547861796148217089912082161963613837755607494151657729671485239198940461953226993011194596328901918941640158242073368747001791755687394536763784168018623054744864240506875386507967583608240154749832093809352336735924668198917511345572683370063567828169160589183166157572753395541048925896411637650773167511134754019917595199589267827092076813140450447456487523177239529947011323858547532753624603056842812674341766514714211235720030870648322516715626527128890865147799457859688408349905035848420628044892054525784360066990755278712017444045574294260880981748078623726148770428108840382814780272181537351059946045690310786269765717937832850114639034101848118043293091776784931150951970821649453864690658626564521399932485143572431654295926357468717524026889151450764317831270148095539127687328371691973826265536993169902219488183971449525821578141441958404057978254425274588379801538064958213385726784397283554327496480809297341520422925441251155099805454681148687702664226512814314459224569901136319841749745799515116634921495765112768030340381847510947539129596205413297376921163396163879259956383554376995975604403433233120398456825934798115057915685242267582434097954216797738030901266508503333154998106116972197347980181187965599592722193288388355466416349508538799174133721429802862869869057763930116948286003543590651456185361715720625128625882643573290466445269390063983232513301559315145769485600335756688111431088675773121746725228912807095820373927572534279875515738382211083278536902138944581543709953897731716740049710652955410796042985972917251265832450894560498920322023337768700632628239502332278597822329352842341597000970035690512409829254811795096454228823357466698283637402796209580885082063887526850922489909422861771164301872869507482846736969598554705994295012007228482504470130503962759466945269874266553798005565551708544164860445511795602445975601195021212379409801410911683100388935339225085829074885890369095505310222392028879200222102872044061781544194857214899836157809487454188227069405544512590503852430952886274577359257530842738279705814154466236758654649383503302135178844852224293628945401028883967563115370144070619705024957238409453063317916807998209167895816257256580185583879005253530236101678667930986263080482134357491423155023280086248037457097517438707131332678732057986706140782512660133696813203203891985999492104575702393347988243141838372463851696105709155801957003884119610210863805207657875465201776596906745665521610790397469685863883572017955811719534196002107936696479083395934370993933972772003628826971866549232549578952174550626422808946575755831523641051614318069270360846467777422985568132766486357660825616747643343237908473065900703741581261935904901069554591522370820925667263651891857806449280425603930053723114420735491809074322489312396576428703884470860819196143262297611598137947343498840444322699186718391199775253362678704175604873504764727776324917349491798907822954873138048161429086421570031938740389850652025218360338711160406475148926857614830723771255211434742264820934991238047848402710965598802592048859926118947845955255517059829330085000616303721225828877752192433124904869455145277467185884786471864120773036359098316773581346664987198393041132348365641480216162152162644769316165053835245478501875402531975014064535768413340975675729871223308960912509483360267095833076704718739998321429203866451727223593733419457088024165211689764432329662458086438781726194915215625655125429598798327938955749667356006064816250435407106330688906085614383609686179113098938695258111772316740497757317382109503945748663126199561076486507279726334484994558020984673834413380472276887571099379864193482713594712825428939745981488358573941933883101925129815113962299383573589003446014339727863135732568637465742016116397006017141731277320909154038927741169519214152119715902798992630898297613380262430446107154734604990677330964277991513144475716392403251874204455781851198552374451452763268496223015865502153209018018693431205327904625680026679631358425757678152206653539796106419136312867191215648375881678368388981309353629737882566563260369968562786818984352016253544842262186663423032430607944258124962725655884212471984510495328848550817946488401046084619449617602445231262953222650130045364248925544137750578394709566879013923254304409470842175744322361477784099801776340155812645484330511342829701605712198697211846278511501521516080299414352026972678174869887646929872939702465223829292832704300993228510548875907763937880692862489275152710125050766736718048353622241958207659210112121466262405093998083269371850383920454248094724699097864344861742169470981341646921473873885046100152602997436522186244991416548298699199114190994725309935392408857148335025511400253712473336863772281953386133112812467425440916509888388684813299149432864897879839133346766623984261350985445231872124670862368434098171949954217286599593394970115679203886944523918514216395181280303207805972730463052374506901020218813408576524079047478505755699621539634324728735270564673248423984752315152999516930037671450139382156118623565106296491158973429684883718176718977257691668956412497250125801896640671432701886129458941336971032102795293758997436011716234750529553253452833646122090414519398461472955365398667932701924886113285945634895769990795017362698209975900995129580841962454178571304306565000746294854055522705710323758804710792971534359957856590218649972247320695149118542206110260781781519042652337463339707755107640042260623832964041163895575832585147751393492523046972074761700088282701620868216243466576622284558644753354682692975426766171012848463695491533897958282221621245089041206247234568385669498201339923862886122015495999750466388388766370955386196575206026575348578594156125083473907614358590439496161566410933041397179817421882656260276961704301392436764542223249258903783748305965107644301908335974131661766924443810279739146355183386023412267079559555435363526823063568001760241606192925978961965913536941580605281269489943084597292447681046444405269585432695565151395393462231922061387764250067640289396806467278013275522315169296790615906031657084511749072177307703651968493526340968204511718447796328930523900833871964324878239730924753816049362585255705441133637996422567541684161350128713823375421477073515806665972900077415933068747285545008897783545499770373912915856234656800935618303787181621550944791432785646059240020099445292611673502710426364237376017497998775323359727544279276209644519747771774727899808742207541180990947204600377550147586524425513074250707706163426154004915984465858412931785146426294217191646837532484551561252917940991179596268887639290185158037071331214735462266660002940456325970158128196140832517723939094148362842535505641625781367932890573385574007501278086218660163641099984639791051694478847542402919162926111906146442660581349130947702212383231145050098247774015240291304284801253860964832421857498836301879287892659218030924053673905901050860466959469948722239399531522044802066734198842472262088327735977461786932620643850973114512804792163039394337002125109147304851515882495922528518087984635182118681225409968095983843162567815491563453923721956749537542080858908489006217439292672226013714630620524853743827113367985456826519527388598105952416399110033144117114032781710095036969627065225861998152182934025093249151752525400073963744935281580756413052631264455531462936442781068230646493879989743977232973590512812591668125994213915228915157451949882182831577983624343940818080434488831040052142950736407653712258615218544893707674727982416843544945496465562914332804997158991804371219223334458901578478103401653735950348382329626851876087873337598997774077067134811286324167130811665903155004888755379468640674288021766342056793829181371612750151804099972829707378700756823981709481359999712916731031987410345323237420197580718464524239099828375914217461488647188627017282968661192623543771955908169708441564415860384815992561298109778610145715930393578680078440115402629460480715838444262451367340321853129045117985466616120269164559393463366293878133658498856191464644939712060425611037836238796554544195543825620260253236063970745722642625824490819364748261241705267092163272071086576208891919060780544731507346999367001737477098395792421732407294766542926882115230796042369195121508995634006416474356884377462680335977976598081262360864914942892402407339287997871958195775061214555044644389700841426306933317139342029421097239416772734056341932766158598617333472083954528799633914749750328901461620304450309489255481750982506107204411054251434981903384074528495292889451626808591543497880968723918159215235372274327507391698354352943265727497986710115715178171957945546476527097752129163434074877457128519657227604323706140132185835779534876231336058900467297427206435819500481331280766583693947356067594061787242478905334200926740010148965060185071324777206378756965415819396852283550575168163338422125789111899174705988650258499371150456706067883317916881237710788755252042208704808238903436383430514752751124532927524121169619616767890695569792644386756489650945015232325213170085490509515040036568592397899653607337189677678093839984016561821444157518706661325391987964249706734346467356978031244179273975110023206049646428422014640905090466902479084881592494200461987511923976435920039891986385936766822964337090276528688975626602668819605743166143367400272263576822658937484433027317470436208751811816545071163620230121584225555862944592284123073674846543194534543171750226470907001834477167822892615633672996512455312046878232464665120052156419720819052442879798670474567358659241377253526113662455721146281731363924375144404773927609488357046637177974407322413998793303820378241636933075806602389403556332159351379223471598564569561258794003686885419042773609471637625407926496328088105652021210968612767052876195567126807512578916249040592842551062706234866170805823546402942062873570861766784585600522937801483216238796778921872421162573438838507712421781037394796620029487562739739054584052949450045480441449185182835163511034536876697414124117320376082396997596753681558982106592229133868060210380738682743336129591722318892768329283994948272194745572526225476518148615791764221726393676519329072253347740756264002502561065346701643079703199413322092928635747466084753812039467154311694026602992156589126646350260056703775079802339000311438256171631346803736977373793106619373138230989747465975327293531986295628560838310507396998270856710403721259272500788261299967066418463538160656776542599902090905210500812590948115431061024492867780690971648486173338188628729543443584486646411166719212055713644763009483064803633986550628936002597506589276582904697818715347608883503471874501710152032775086181638101358781970141506117918449883252595586614167300432049458369875882910180230553197866288983326860075805506350948216474741744265379935156076291654524395201451862105606760899873954893314867940142567017254766602748958372641663687506727057775059969691638376397300267279787181196101493862428074150972947843365924990798508876228716732966868614181379147874768741459057552982635592933115200040603572384761571248592026127084101417105113951778216335593615227386508928862476728630479782322849197589014741839410283954989783564481267418742506385025281191460576144106609109262725477855995308806853562422577954412559091333837652189156922033512568505422790298232774861901902278802454218109348323835708343233560248293459779999473283118851948156513651415586922832479644180451298708351164645026632452001546961902936261921191162293623564820726987551232472120941642034863659181543791216581121244308659876393878548600218300712105367251593413387413946829497897452574743815482118948323467270019602004271902200919225240539836132555571252863797795247799965049618253017150584510864646770109038762448248194741328540943363454312006032605933325758059799427654801940410010355230703816374005102995822057782306670649929687779669259708796575071535684775037227378064571027238611072169325344346471932864654014700422845299558891812296958533229232884485631133602635807457742880013689085365358007371411032738394858834939794267670561997304095838613830579173085054713156978403957337373913666753093052438348366143730021982874866159535902007649932333662605400967887665945809557055157518850165240122289552617043549006624006071081925052621338967422342875097853814254690431234619170702162777194934869253160425335952824542904728874143971306316977812093146576890653529202629773925229903255200326475320782025578894087644340156983175396308321667911427568726111961338912144495993150403081241378717473090571650734534836777255661149395363350497059557053665578215362108197514744183281137742520659332571348334512063373346304453351475891656586841723322550083217149502537425098030935220552295001968321512610675068198088420966460425423807272006853371169117142979004663803334750026048071982046801925314716587377755932419881618349393259418809952087981340975611534193216130372271818992519522897605545034551927631007483315350628616171738353658578024241415942911882345403216623879377747447518265058441054414839883747646838482108720314035731174701291730676267881377280692457579469178217823168189286751267891027852956610619991662995088869330123251339595889720249140227156842118376847306432748350376566317089194565462253413438464833555508151157210996764645582863098931137306472731687499801664967047587591248142999512857682281340307821986609158500185402090717971472017470368311811709349455149714080137623694894045255308953971774520638253562311071651515132848901823590426643752333656716147286637988492439488123062116422362473322431274394391916516212639043203564730310306232551914235029013695306603552346670871132531341459001253909399331080461480042532401501054501485563031040033058980352727226318580490551754620308589475423037311025015219244027172569024393491850637452415586414760455720523260432775582816882222481209700764519276512249220844102056282991553088923962092114049977869211068480922816872932718897814457761683111638052004672560652978531876805415848610404947501834307743131347245209711188737085462496526822101970894446252553522081392190638095384223909425516184531022916462833393306071953655529876257816174958638157574194038876229669382772649565272256784009866426116000100300702793987430331658483692105298349886880819468323812459668570832844972025664873722992781143515755926956669387893484330443106843103935425596538319332176663014181343805744467045489608300828481893620875026279091484365127553588039828915015542930961776332974083250793420184725997172149272856579001651420756761058388294774136850605815450067063867091939756887584967885396428451167070918843285613202682184857668408191263362835985861518498489492289285771518971026387809596861164035470117722276364989192618215957656121595799383182716093680717158791303112537118143306614135392502039287346877813399853598374451665235645596771627526438182168770324027081356654782044772776945409180163663228745801874502146257260437410230681788694406651590957680350364264582309914932182292557208939859307273893528016732671237623451731463291473332766010802469378705472687812127121797028966374242263986878091434175524012551677165088958644022440751763506695558153208223095363530294390913293006520429159768389329694918407163542918606871558027295255887641149165741803390968663180633507553414882001698232942318506163911485372621421321886768765669206925493198240933849948393266984690384105319597067708325132019236377337514623735644366436990881155557157669756951224337319602480481274468823215988010747294350425906595873728248108147062703634509348186322574609236423232761761467968278273995396036395431849279357140126802620133722994451725080738391372021165655902940493454416346110703948266401827097268572471148671676521711377341020394999349494828554213758736996671734183873638877820799778241223444195422486366957145803600410433261384751630587659819161142648102974135339863085713674439020569314494346009418171055063471896553745563899886005957845981791978940634704244297119427374588173938493032232558290690419078741268602323489690790875311858630648925078194717723404143172824738873769683044976160423267556371134607589220163692086263685791464255724319129052350970891049252870714669433335033564743832457556189868712028394940817771178864660647244523757713678405446650368605065732001262382304318941350539522347514962750930459234605781509582208582208096532568817639285185775950310823816141158363243399192739151714179515525718647535134919060991548986328664431741593869794622136437120047660935122633710814907132144986381640754351170874689018564091186069664911398743862722751709591014894374996254139919757594734449521382063665693807658730725391804331571146488002812350228604961940102430821282874450145769245502865196918099223227079448843863649016841649271614839968709587079406503481209785015671227823471742080082052312343175166401260749322222099909068662259660475027378393735738896004585884109362536923685507697887034257416713044938492911398257612500024995357339007867696347388925933326959740150338288691220864947374018262910321265622446301844954255416980545883263013427674750142149845763557432950783428061378332629570640372259065287576728620744449623109338225969134327702838968088194517331676839445202488163960462321834502656209863812330078385911470820961969089856524394459416069697302923540900364113720977839090681164852306252846561651615313876516891544468795003472388496721048737395667245394605698300464906057959624498026951064910768448463882581741545792009708299684978046204357826899451293373625351317405859819576664351999684555950313352848226209929726260691591402782622089415182194792022992955221169982334140460631582905406179431724764200286487193025675307531758822676778435582345922946319696481864686255816286067813987104272989475755896567656957206748125555423175154470532053638944344445226982027672548212477983042588790802695126546225087140262379875248901741673999767651922029003898842388657265107263526322207850812836994428377990535333278646153115863392448509355416433966083336904147908067708074085651425156699174798956975776841991266290829698020271224451083398764170888077177278095472517682979167595115866092176625012396809570570832029498967242831296298003719859513822028850725006550204501425110835232470153092782142701858009360938233141062494878474742552791595610466461737832938987098613155572455937091595759625781124080695142488729934103070546205289671674590896529506620810896933383049768540636652634974749789204561124651320228139214496790270947493249170425384815105811623244372645320148067940835568267163046139535037020494421309554303793994641618380316093817351507071556959716964842228272217347750165690719676935673148486908455323716822158473273055299175327778511697768043081362784921535055614038419475105529048517224589261074620876892191514564476552814392857941082424128516398083862092307552524120071019609257106530430491211142703059940119953917638246774717320587865071953968610409580449199416670438801968162593204004851541706680143341062838680325217656343946104906850018059211353123065625975411745897702249507482600892978986902217716046401853985615787286602101168910059957628285333982994668400411351691774469306449768766174667462817442053499176351738269991563366863250172103312172378074846190425279780652474929296778529504660906763984589022899972883210203351771952419743135326511089355159548949373455440773892120650738727068275391032573878029597596463274397863682939850970432864920184530332316599128946327855322037331142743673351860375728410666760885129967436955987087989164055236682112673465476231278881773790465368500725150292827123730280492568146963168364235950278472363782505792739877226256923346117760348459960250909492505539936469901575948360403918045161112219086888783313577264226505124234479671819682546710351570417073040381117647690127950627063126563122912183861068836614726088313908740392685650947939325602552893666712484251116673648551891573705042550156189834887028598089881240288679267955568567624142681424251988645463568081439162789701538516196295121784948843581502853969631294184315257043442767586411232957843609267080946281363350118539224087617245718616432756682745081730814953920286522982806187564807010451810364752690114789905391186939284634566138602542014387166965251204155583089695104319165393329068989688972903336259380591621368023112768966519614605255574095088972917280213606221208264021108315476720853058407034867103857547336584126735437681141476948332070238952819187572204514908696144932616009898323188426098681683892843162572742177523880428917501317961239434289158384970686863796932414256242101195567650303088216816136538094329359665914464218020738350869102825760420314967936466831113253225035695882880333890664161553891277392132855824798937506101688056092974333143261599482547737108158440765834363549049660020520084299046333081568002567211492034152057103469383773082343599574606361773522600399092571729901387620234674024969277624383075708181749833074686576199465829763557516260642921082870130088080461552108960593593599968320224130382835154009905181391504020516868487986914969572076742076944426183078266145648699225993575794893046493131159094858823139260337830440196499000145440763529521059566408518015133926633546850548961296208944207684515221080222739018023267275360940431129527573138133456932934744077841666160476486471405600112027400301421572772648355591623644617767939663132759344024627728779163699469527172192156162980509482287333239512297363351922778564044182575151626333066394300278225790366215444983895435511072581910040643804388783888593799411807452688128523605875229041562030361515035759359262278078069284905537133627996977519842673270425602982224420354804540146866631981885380340708700447981839721209878541269738458095058937845052765846634991061853086905022905208515825348941581158331061945179901497756167175584423891071911244682648303120153855866898831244501626867495364893245055253928772838968485145308565088806691944847089778783176711322941785728886505835655748722193119415151643372103684961817270135250540069551592936841390689115206016515198136518609413572813596793273559740555612838336331309626772018723786453541358733733002869251258821710028351326988687416729452298515219887637957911076010340177154621364519300065937995914477260718152614045440528097311919048873726632317715242753154128359627669440082677065626141008443352094262303334110961388560835390587673368806930519371736468075515470834863344333982862777225313837274050391709095534110478258824899912788970303998422657457281882787000248791060958671480513213595227000140221923849072535887824360330455547844777806377828628372814538604894531487135271601678755875966267097987564336554052213459955420078664926429098098539429409019814656544233003508278638642830032352783593156391227718612390589277927779912100448478229285683490881700981123601339075194961865082197907634114677839725358210959480492209834867057919681200111595656276101290057611255225313639691042884621749167249978795327712153735025437028116096276537402361300167366487455299758862594914450033912014724425599392032511367631209778216395305026758544075201108419400479258589301370489948213645715789927043722143473512990039431716207228002594966740744842881391719453348373827198918981237027501331476355231788497098671459626624377310109445955852705009203926780502662495838412680104679970170878626231719881494704670225104505882235008053105554449757410683780558767403095793941529935597795399339750472881219338182567661047137708587378131713295934945365863026649121707731747528352552161712231472980310052261647310963789441112362702763150822470851304878673907377052465257657199604778657536869696179786031179977350268652953522618131932624977387294174717557216554620476882197559130434982731174905945866634171065844095987676562032155314852575699014449274046993501075867739422951808815837662117683015403328298822813217137636753739066119329309742566199177121460468443300851325542319985502253565214983835901505595750703169328697803154055213002697044536337403601058338436156191739237335044173506330463190304390623042976525835454185073318351209419732019658108584950771918780087058552231595072917328798464348816295041312176020590690361413318875290085849638066904823542249861396804584430854053640394589870479385983608875173679973958375137841680768670235232677473442415203524059970847613957482735645731760704162655235991879177435811783510193572979954434149327036567799297508449773307944289837168566454083737650560110789402556646347265088626967193097414881490707248136468045204009336823064319281374795461479640504382281897137138245597997997451823700201434550594293974432559615372898965347961565189473332274095047128821831810903008462299134702678193683120633070912702199092777526022514300744128889449445443046946920970443000293002878804704545448182952070811443811068328962604747639010809848732517738224732270389491544958356098184360584130035863905382139797142520000245157304387419399903001395889827200763598879164836928425532023105680301779965717037938089646300446499349262134402764559479847385387770055751761940125799291069306669141370915632737842469667163477189121504031972198706080986835224706569488193263349183280241410403037194694791793277879161928756177510455169525814723887019239223375684486063381756086621281514740620448654789880379892663122301315207780838607470319035599023380947621620441123195553605961987420604990191878752807072010579772171817784020691199862464618952994011826241551716806164833819231703107101516438651195942519651994342185561267917584622419220564513237183083453431448257019268914306023887266644204069304098815845355086673728702937535911066341201376883590281948675677545414437760785634308330251204514005970660053243478867438586765308289332846094085625451322370265056732610691581022014981811611231497719940144015407442652768203803498126205647245708972262042715719693614816847894409417074808557812313188240894831894316903061515198069197479210509223765852678915495847396511131404806120327749525600358166450715833691521376918921487478569842537116814864765447904818153136917389327469273597670832985817651428772296066534267547582763256750590756460333366369738112034764951093228460582874271331205784313074998692150907995230477698465891783304055037965396178618064546827435505645635177509531579615252683359814560960343715724315338088140180451528769499189265721319725261443741895197990411366919487708020671477558219066447633484349801330211504747007107256414018265300589198077269795001586295353140330572609685435746069302356568027993404443888427723077811027536053654957044890111987525474960983134576060345682336952358685037029742648677043348352811183058507298876015244904720856457836929714040246525955618662125723719078233808820024476974800235621283760771413980850947907243290606524389701520650841557291343529116872494044904810257508220705537142917346912942147793603856131037093112717677669165617273191629806827814065542179610786413281955592459879865093770260926263130490824272519115207832493105915578694601816621245144340262094030754836258026673248445361385965835167593743271865832472241937439085996066264808937411789308425733348306333260165449462454628317614277821988293877461726847317230318309860375273614366042260684746244740697604481816097023680173331286059554324572901849713440106128484249999815963693621401463308020579289794939205724002033584503519188668078132852152448716013122841737961240992367446636257310065435612969046335624453793899542815809508866203849155874941405787574989887503009225445117116477098910086267634249572136272402084388334348480939717134988982383933073093193664215016628237495044738822278575634627622064516034707703235288830335983812585061714483034275201980726061679814337381406489530181086110031749915367386841711218199498247798842376610009105342674048208851487709461228895402903315319259085268859292014705629130867777445196562946518186134225546979282010904464929555383523447680850561672189322297146458151735645392810257023628996845066154793965994767256721573704477894219434503749197215667267361470330114284034738752028056611937911124130725805657237876815638033697893604933968488848319344056211784653808657054706021406021700670163426070702351139650423353374559316102436704685365404650736300584189953278131281745239308149315313559871978418113207459809291112132865031478704698834046767213059747006434176185098160654523311019546160543486882527649905938512525070881897863741197265608423787622150880211347197837986934834875560290201900661692227737991963608123982963710048300219079921960952354159871294677553634652337023766264789860311234549210954692429902015853651421450835093570450461238858480413400798794924264679677585928901764827089331348720037198549192891760368745931889566142819974534837085615355830454631993214344327535384920468483045854618262208315358248543947591796335882469798353822241343500608093787388996315404904475921081465842873068113315270921742622390808566254808786553794579890726314945204313828369526680108360617471728510060223639630247905493841665720490169830563383049535761039503615096939729465585122719384495347220029500305567119169921414534877294225719671137122105478552835156635517252633344910418557094978550264031103933124726323336044976535091904514109908370413752528873619802855697180441402190353380681114244520786268147338044736430380896042997555839014565728777587317791794911297843660943475708368829328796908107023262838085179730051291650042705118198764820495637197902226782219240260578248543743933684542234053532627316981494868859653313952439473147344267521512048646461887574731660670841524903030018018793618925029131991946752577798834669931607325193225836072802155152107870149609866047661885287794014504213976930164358216506813650264469221196031551658185127053219738366275634211300341850412814176387155337813038199818072019092513557870660902938158042713959485132621783388076923804964661776037496488561118908574905744115643883517620330995055552137751036126638214527324439892130343042146927490762080872587820105749492758339039467266554982796833735305439004359433882798034601366023580874691637961404638706429034071597947569297063272725049357215134921743706836812965968604853567355505296211230127150413294002136835834764317739592061037090049816636000869907300804691738476509797331266413305049316737109381570009854293564645077770847276145664866785219102947024429713108853962629475656387978413151359508022272745514257459009955166776746318033758361830087550668654677277449095397046726326564993329766802262358428580036324611797741055163496453526552906907431604645836626225216600278527815940401057721567308641801440293527839358442015566563938137681869066793937315648917921562468693260657370013452370505904304796117373792105263702336985935836029901223282084089654905929840893475182736951073779279228636745343612067104834990544202816156320973293447681094221886967640887190077685622207655932968261992924076107217117192941609469232521492250546903173598971763415510301018131548531479672652436894762362285112704935610263920947310317191875669351304140790800223071665348248931434257879170805209865184266617524483989184442084050712409801577858683839968115011850839023298752448739417194756672398609134417588131019055820779042142778368643567876965033749953919502741949547844256689561803747490763002684132138532272920696356140602350475122725199757232086346575374357587009544023627935492437796773970979514956569263496076463360073833717881667770600211185298088922941478774201842584943316242121183425485630283104842934296879586704117343210780617761530203174191871982557137690678124405674405549228808660900319543227860434392285281054510846037429609959584208598865916908252275142982420014697599946869766554952032242264776119152781341871603879268404487517708999891904429438586132996938094445454258122089435122741806241064850463741010098425619718950486240611533197036562991160217012063202812497954452422061357276929602832661431658185345271091911880299624079024195958882083817316438324117320583868111215674090651351315052674534637854733358698277768748686684400414524960059921567387761553532867237143195459495052861580364958302002190098398728094206031091546781931195056960949419448083645752501084828284409377987210397484307109916416534610250729081959836178124851946634742154539797661519323781707699721252060140345574423388087637740632833649564105941575360304344945114372398739536423257922689383237631091965739455913665106784779198259614507263173798153048432563897180293303877336898717918355716993317112673509369354273463891552441433649284611786018462778317421932628682470881351717308625462218947292690762421124453009325333265620801203213449014329604872473744922805939379172554829861553864078273370785905262349935826706540852866130082059699482639672117082600333524295224368460979519351565670344475872468930203520848645976940272187676069832946151134070978311252194724060488467863415247265052008894536007730149339038525699397216041332356972174690293918078640757759704396031608294798127550799313883888477901446614685117954613361410897909533270974776789773968315232612909939633825069776805291486019929971341285314172833963377828097919148025573745480798980051055801064489646572663633947706800725218547993001778129519042257286670042266721927472737499687859043813278249134705232864548319924901922012078147016012439623038444686436394610697072507225559363751435722910697331840950841307997770605537451666969307439306046257956812505780555778023860585091761501647733417124637189914661578643865783834619668433614429468892905631201277451391427716475903286414596078634405769801386386149164709952067986231723719590590374905065994564222159984500328084993220081275982774353030354113226456547450085795072272912987473003075606567590840958940750053043304538955019694696757779295200547475925475296134895573843498065974091657360313962629106596924015275723696405435257770726848182246921252048098383193292171901636776297868727889965523945435010017633834717033398343813239336940696070924256482852558275374404894488878116915740101153363203489467763289610145607347488080531665576680620579240723819607851500685762488748115267473849152876416995028196794017990151298364978667866246531861125999561653478093795387584418354587976407968654197660029978322393833730223121960850355285648483999932004774929511736192801365957804989851322511696102031881509447817557673048883862392536702920162133491991727986381978883306730399419912404687008735126736606538374312007164601278344768379616745221686573947403054605394495229713809758922978753918111567103382887750865209719081130616756210717172846553221491946346084077016606015874606248944851109090547393305417210549635972873792880822053870247755330601786995940296812429634367217961910153926802313186281166123951637832940708510497922516703419709134051369274110645953789332253267689907175030531772030320079839730076686130070639089448883646175234857853685310948667710633382934102054812249514900032748623754448823595924725198888818867753531678916881020367882384696352144200712520408770643067050846813463606355243986612620444444066915046303679275350432626656258210433385368290456040478401696661035050806173488124974537626292489631349380425589130389129957437389288168859537968779334702166168844764989586111978899892767062026866638919968760113590372826011794533509196963635045638369642838843618472411018364315851595588451952012553631227561626593376027398987171721609773786097894379658259829602131674938709149968626881540109988749720937768672533493257232339959703849024221918618667299744803888429911118392930264166641772156285541288472160414929959837510967421499161650491608476346421295084664324789001267518387391627587645649561786248383308428097945235309337994871322111449708281613212052897470379791040190696276119198546118306918676903527658056200318216945548329456471245131956945720925299755058338625606364756810089555996012614696035828954887946650448930376353878757869930355971112669492580666780131402034171606962900125981013788627622881194135489943096051124826278645014494042715503712080748700156383736071717958807832843649002897888774099864317858361014352061000009599510063085801327967085236788498631972398765766059554360280001530383465108334645549482026723918366774319702814297031211824497379992201092141259422130816237767809834108659463597706556606358440396228984760198079327302132844588187102452846937645917868084539660897602016396762750854943200146950585733017584918996158467562541281341827119193861202966688317317764350355507703657213224935716388861773418211464314755906258652786465058855212782208407500153022970307048880170500405390354238199785013566888393880234181749371732230578645854747875028594305263500123132348979544232351060989349945777910239615188088094283859392096951194509363600378621226200959558508704939405995471814317860445361301671263085456891707149132021261893411247310705571825016381494836580454246939716369315631919932847909246731913202887801355741609823353026764713030815925609979682721662293631023569928411433526949656592146080141264687892558437893961381842914980907736381767850082392592396556011552820891235022649170364604142723648845471906978036386155072208968513469618005868283413907775868229441134764180793172096364999990817887748816823945926612270953843621930032602521917606187934367390822999521090984746031595498183897647425816892092411010656809686999326721807232570158791271752696485934201049543091021085561661463520159632916926604769874553739510541106021264842895578049934631755889647926824791747948620743845974645147150043666992150530171354997571027587817188238051827702650900466032340669576556071418378539511667954374973625096710602173128979297946581287554561699124619733251899944908333790610104746433969573839714662212405838431175850997441242546988060042332908529863823211812661832413869593990266432396860281666868556475010649219686615573406231946857290777396290076779339546861826199805812786645384053742770746813638939419872087809337412899644388229129770574136158625742238157218329439553784530850124158716193798445248699405548290607614625686219047168320589675601155451151310439493695302071593060391631161920364563060939562688761169746450456145552301122903705326189924392320046768093755450271726946561760550824048753267046965752918249905128138631473851169884640728100217646609587279295327264219046956609614226751670192087240601873542099189882239195274147366649258650746287751213614847894520803872515125968074471020047350015583757748817175666879792081476450930543540745517366440409455369193926759888848689718541631942923283761575154690704626075760592813869256954390466295253775931982070869731651744844566572151926023225209489408126128736578680242967811784653252511010257492906168271215684980555924180368891491125303706134612771735971031367223336924109768229866911657942285954593375455550674984533626368340641768588706451494721948668883381065874441383987815294245905628769114666817087719074720563702035822432368029195401108496771719743336854327499128288305721230270857516988033144958579492163985937580401931368083695558503705641337824526891061998912724253488672632119682252590154133698403893662717343582261175838575618077077611467823591425189630727640639628213626799717945581323547023764941987522478346587509042374037273382340381718274297944464974225802740303100793768876062858814018554034512621558804068978801153205002851444913492827402556407436104213035012719924291061960154602965748270074552949432032649463525913914007714300924567589352457397832836373979329899431802669942074872649742506987056196867330920712411677806631743724805701344692456758488864169714346212973993421439211765425433588501988027471466610591728536349079878562676909507977161839513535838893142492252327986442305921657671333091374519833932234660767451755032671801737410618853880642382106086122184296298712053792209800218015761183003728482604728530344498755945109080398614406825494742585922974678658685045908202748083275546617443075010453796668892746768609581121282543194847365948939713759311363465326209522332656203560610568683558228952793941709690497069990958406486944063389013868547307678940919557283666253497913410012496241915221375886106386219223211396280476288393506941006553250079558985355259905770318589581612840839067283820150045155805691523121712212026223771369511263310852722624129110979735311367779291711156610271714466353487908510724323415349938746422832530368504736538339074369460367195827630922038767811058530475324775978882952244082590464886633617856288940643396236006270517026159069909245072330353016799016441338508616157669644285284553942915849599904625288173329524644029183123015097064206966655817669541629506707310180131290618163046044013307435642800958602679984202601354885829498030500973599125812890375894837764326875633604404890593282911674677922112227110775101097516871150933075583743299739808916111530719397773627652774419216699104901306765249561672841542660375809858138976048327734542052586282206966822158449271086218029519421636985859841010892964968775444180848911089560907323443918310409083920261650288972672532172350268940004523969384143113846301523143271831148877989719947317917371843820939841417825846212635594121491167151596942871976082033000185788456978269933451102839022711058422270147585799235358905853886580678559625512425751652996874484106610205852875157177890775180235216402885319322579214178271371725280333698268636898589373502842679458348266303078379544544627647791049118433975751737920309088123438841366385091072238859479466904553100206158893206430389706253510337359720783461391801040986530918514214835986552908980131076571761328826325947207310080338561239459251857197273840349830427889298700880080166308409237145511978712967145828173351112112178080350763318583023114516919285490248514777420840674544264843076141956793704153501735040169867070751186979763068170672565710705153884741307883332022524823120623987509822712996473714755657629589730609662875206720572397101169532206042305697594566331201111192316637396368689254938252393208888238097833493852290730428740678890844812618683347321495495061868050655446446759863906089931434671268275692101084205704044083165519025989806513539786799748945984597862760032558765505752221904382034653166084736684018149539951049569941985013058674801493425613681580209428923569614540261693133721479764783219834620682180740909289824093495594390695090426750436681963646671815017436403743692153248493555186999771955751865404375779944097423017986571788411850187727235211051511021646972462772588687816590117657199927049850294620608506886077847426960264834300382024611645551362655636702884235753435095289149404447183766600665217809388798699601411932062024448486226466187962294748550834144395788323853066113166078548098561774934764479148414337117149086574491388274368194291159187217069610771413452806922829265999286325714569852084346544161228630189833113069612442519219816528538040560519678704313499034021294308692188158475845093493023548256117095745187766758663528194143044921963164170314178007595220048397446344076255549608588993584000347346446874869752417017296805523600828895547455402724224804414806253270411945145719264686952007969616515285049119238148785610333553027637888366585102065243330976881484599409718593627756365807337063559810835051194531157041220064710589681900562566967054553144006129234645488593019926021505717640272346633335693286145373818102292160947523568155478340859738332051510179602909431539545656791392089503180099387498142536820919640008639583663899452143811505235361443559568107527571765824844639125100553692024749833732188966295852172963096953856863557276249453051352232995223611705131675038036856606804352370073700974898250069514385289477825447807759555657492622259583105168504847573701639278256761038097920847125058986771019421225873410871195938089170473938619366129299298969147107666697270022455079468969936718431941355910748338283883781476349934935436751145494201090214517234395251090007856670920616775270658048255884311302807301081751199041794250419342541394952459815147671255455418287766207492180542044514094234147828588237658449117738617344317710581029936711480052061196203119144238061509734460453369241790404746643933381096624615145717425118972068299581253691399097971813470359480512252844950929184311210472795967729140219326961706961928271634392493900242181056520857608441576289425296976615447641497258317921146843947051574497357981930287905764430728433373061548738365163370905950370011235752230701876083486733126701416557263172609579377390455228364861507801947587578699819525715178585369244590972905419800405772287965217773428867310341171328161468338302190290696422248724720002999330923661585447893316369729777077896822755021184081314621475707837617444479459778618238355486152200067403114241334687533202421797700953786934138646721703974600409900958111875899220706522063440483184659632843265177701595133005630171492024047084883708900226426118147055659994238278483778407239257420537157012964606217050566854997209748807516421456171479560210305578928865492669184884167730825338922493677006182318538058119875663168954517969074036588187827492143151560304667879093187484702885183144417280447157910544307116364346176641760325467172070582005095259352841723548722568236852110071495643243195259244432477834379618229554309196790944747688707667933443265514510074739247532987773535928027376279207588188448955407929087226580097110102240779061256027900454533969689433298571539865282928832510025783436383571401650551582280422243160150090786220888669823744291980483150097762182228035553549999036742294576961253809294357550883873399627378125144613178631944390434308623912888185302634291114828045260695176872238523454119410095344604360462071147767230373993136412444460055411456395398642093131709345443814253900062264573573878178575024064314046665407266651739234253443246847385992444307238161347965567937079257732784319911773328817609218948253315887246049390875083080366996807621335243383244116568657119362243989110881006417540451836351123012288999635385954885288394084443327948084534688022680097151847140262726854986990705383968442713721611153173247719677156628813904033599502019595444352273712741227274242910303511217661233885174138064627599654569275150082266319398992427223984902707268771627865283859920340573181972541617364241585354171757320608781299596301547113830521079428081293644034423605547579031074739109968534916002399457414779703680288099364392226270387601877828562097642229273242740292458792600620990434392052737379265356572199219188240547190573251455958851126337347580970391212265793337082315626489613519089864116241549526102256509282999630397469381329121471768500781842536021385754892973882710462747325530614250597768798724286689585136071291321781989929999661633360781892632763504228298212891480340800278509895798579001850019012846929543413833290293299580823157666780208255666445850528655534456612605190591347140372509340358610897529465317545446571035120805144275586554216981059947300420816540518642528111801914782811664488899382130523130652062601940787550150179338178522815548246334639705715541453266830723791592871680697474547886945082506617887235944301029028183236804642735473825538433709465079802114424862800665444094441963183194973664556721011571130677768117036765370255797717891414110973620692717933429439556923869911290079085823887528046083666721341771044221697273367972956716247392209906339420116753127028783769446706066868356481002169795186807115916447989474507257574765279489629387971378375547670733935745607990525497794749647288346463772472833097800094002184950703896447272960605663961502729177892642446247134026689917129945013847851278894421770265013023471060083671877056900658730376286427034744916524956050773552748008518029319602213788051793325500884409868839887198553506778638902388069323708513899742514421404490644431426500560801546039959445326845904885658408544980166060190724736261859404966282369646973525552699704996559280431743517994422348345804788212796070758568511524828085776847257785688648620848552675762553772969496465505142277336720354086725762356733359763179879193696911780927447281778114959175092939058031140776292968070542465506590374534168876448880204544595917114308018883725429594495505841701621441478427145710031663253554179554327863811000822413606357285407742941860230780554410611052072548617855347403305293879912022644469960962994874968334686019925337405453225915009183554884809643190568820818752543039178394032306744565154287359143865919179704043375654069286883550125388959005396564761075152627486177925745147019836931411530747299259703878703706163055382616706893308387366274173257002748056193990997475147822744308206302342304811326402301515518082445984557464995592529831330899632166316031727573437888692303896953348266468025172898607250604272560159749362420753925433157722027950008498905145143307943501606031697478217718659583740301598449777547261761164915427546916234958337681873829402743913832119511976645663815191806478457010760234575351887273472449372878208411806192469625692380439953679524932257333036885359635100086856541883099394843110911102956412308057084584342415841561182845541822752784798644268088303911151358265288606209452066871210260329838786094240889618263901540072359936854059000121805949393073789091672814208979345462047751869272638891281319551699023179286298930789515833547514481862975963962182257218503419153003218161797917046948895009796091387137818973572910699737510042409438999167440514140604083447934179657243673509841651883494487263702176085612403386911168313724682261384840461966278836189571552999499826130442510395791803792079640789469389735397918482414304611058376681826340212871211395482641699076829227759610577008615593721369103318512780964315610916737081055732606245026168758980300741309174498011256945024780867704937757786223619868342138420657040161694539269331179778752673532180355603813641468905167530697358240222225651556108669262219254243554313143418422503276983835421207617330564918157380376926225408502274123192477979378755185122297221678477975986585437229227821688157616827511793287457404144128518916590576025753098897166958496673074811516380795802342858349401344338758953099042978434976643117639989644287494689162638083981039621170827479748583030573987532645417101037175899827037133139455843526384959972533641490049202245656329547461073869071724186462172669374624203542391132323073814567280223846362759322915148937299326710127691881357001142861000707275051254948282736707879077226273388140879825771256283175519808157487114904637850787458898631243400782453583732138783847488831587100200099705451404370215798480197757580938047134975636188623568478293872154109479549836466601483245523642166205106273406741728844537780161408153833257871444774077615552532336323794013382873110802062481514138114111286054258456109993920302587821318328698057623012913499574960932765389025864755279086633150794638744769513597471891944314625131224542706951019406363536513385835929721818277514116769110624798933857561170915714476360629110749217712317352477643809134664853363254590910531736543101758567669539675167112256740082614494849791094708293988956380460352684416088338216847395523518225090140426448433729420684873812573325401721141933110275577351140907332130068813404392244772279075156937349702904904649441171022826889535131566498750341494595236406296683581134694813462272384791656734973397119404584422508956151383288449184191888542185835364080243880617824159746228399771305122818760244317454870339961043323516453511966145603182378738381726764875934327926454898030756600010316328227053402826291223736663760065267001678651246189318564436674927347194525927476400516410802624016737713338232022485462826485821194978055819700332543334847417565618526415728222079502627899256287651115474353530721947535846211249332096477890549288442877490808921729888922523804315096182951257063655783271494848216847030515656801029742966688049937103182942007715172500822564837433381565925779523203491167343548210363749633887440957751166061789264302069018236413934796714469134078300590315795112335923565347835755224493682303369875098217579324383900246335886957474691852235815271776216821235974909922195350029031823107683164855778416484364009838294359617217887834571634325053577356892773094122971732629287523212368024848198812765769554762478880344480161495846866647340698051139527005855164281605100418964744632375040584557605614045890695182358184523603361621935658860328737900345973792151626261967048312694436990999848894031943511591860174892286431991953364412320530683398392840127070837136987663921329912527641126324727857025799957939797039114539911234289216383291023440380387709529883349152998809495563561020902850876007918554878748088812994989694395848163132304514355533487158466686073932015187805118159842947694306764483213298451155840448633715703659731914874701966779926583907479536716780114583602045286899044260104778804616268812261527103335261937672760707508180793624709765124555941656573675374807692149434943430561395075583067028707268638890445260265563237368604136684143855756473078818480734875349561919310657347974487149904968165626217994942265200924513050241604484363316360787864798029497946779326003398222906399607354462165683755792215831311925862191458268928716342113184273013164873581285208278558012818800797439175041889950284220185822143988333551959699579556310737226467500375303372605541384670553232274250106793126848575934581687125084716216112454399204777486539459937102728546424547393252738142698393458055200889588149398870246562059090375897974153220555640996620293087071926813744472111871249596492299637788921426881514258399201426236202207784637358280929400129756998953027527490779212615149502587025840826161696927125839706890123852927008644765583287213802060910625789634964508357844079817413117524254620088181962963998886054201633537682597129166416282573325710769918628271876859273767321712593622843156933283002273434095063751487782987443921068603160983411144999585573547580907869332859079308488650672252068944444249136605225529281939184166579502449105551842083662547557184829467921101457057828320263408567558734476901805521309827145894208158711002332831008025573512796603748558506682829185072327412683362286035225091761005005761061380942815650014560390460677868601627393054335563538471895631377162524216988637907120427183769589806650725914548904675460160559033842191947002469689810044558231403623680389935137084181126913176721646288031157677477622215279739436921379509208360272357647814666011078576043349569697921241966823180389068234645489963866420346390561265718611269793556247030268987373555542020666615380646371611000721711737980940341222646410903397460501713951496801917502328686455042930513392636401890451427455597334943340405622287466047495856295125259865465600372942446352218657076101432668056387634338324119988301517682371529144888092867305826092288005044676469581302458392962645676002997520905354742115477433555757459360560354338693393551104816536029126033987920528475463535235055595652663640942633034674215117310203264677330088800416633524783288517645015776655970246282818835184147871033015463163725037701169831511894704159360270279001266802080540970550613666571483832463074121061279349877059981270835849330690574530921089473736670042014546316930788538396632904971628336664314994710497409910302182710643109374608105187120080602771653425733646086931712133096591235808594629493515537140066926075011476956117826922528341652834166315974611374727586696266750310290783916322407577077511240916889055997881269810976950356357694348489066972164329101059833000589766042163844975780680442629390034022582316324434912567857109860084548156507362503804007976746363760166970453816745880326938665532460454702615722717387455334989795512157778532955605033016638236745249316583467103920458291234911433225206475180804224586969585785851476078727094179236876349401844124951586127205508591139731438855289431986852068036421515466989179437287668983584318839803418341214536307236986575987237753484176281265818371309584433426895926245285508360185350053007349501602960801535348447991977832816420361986375293036783211344947506431181040443611251020590027678463975765101678215258059992026421395551935505979656628261847860015232111748453894498224860355796599567085629968046531141530281650423422193910093727566758752416061802321348804963770781244594934104004280581056013317519198322364880079842727818611464397840833668796103010651920506829801033378486881667919298455702697355092175198590661943604435549003580043476380067503090643030109749179313119655090683108342529545306475273110484412114722299141091832775902894830649656483567170337989328268098610399673864111612181167649791938429086513782995042731401737018917539150557202221535651227704469612447346972730232495987147767422887306561783345816862071401070773155322946984517682869823544842314430401285016480123599500399249260365165642541772043896739861019881357217434435982056358088064640111172151056886539711084009909881653379486290852983658385629460359690770636576973683640863284336416409230336574504294554868312725412511954677889592189261690445235867485306477535119236675181472107718102459608066361952975616957183309369739071164105143128230155176292285736100756412191717025536975826035365126871778330053137232003825878600121282301117440623597738472675702844648160738231420945403017207563498132487510629634115232361364744003210858492882951215202301846068070601811927827894257595549721722147328677334746507468654219532581242770753049477947318111543210998346340152299316085342507917477001978902784620135631824170096047245097158464720995936995266472815054368422075943928661469155307278054342788260025889749425904570166423768708942386850911713868564349093174083663192629829122743070201979165302777856831790362222372077435009723145172388798113089507642859849917049208108849954794491315289793021646228859103410698745765953347695659356219345552398739264702388250219068992122581562231813606590688842746984999477055147188783229998880832853059877144738307343560601189954033512155206871970034379305409599630689926885662563322423074880118476117313310758792093790993021984048982102683066699386066517018162502418656166705080790603345984639941355224837095372713381743791388935660227753639754934343607711017969091946242574094402601393262122116343939803594780441180401087666797328649586057423445625678495850847154608586936476078896895978830468844996994661380208374130507048402173710332059442726337203127021186204963974501233316004305232655802745441895905872139713378193187879155808306843312326268213799441268196322453292228556145107943447492681502558252886347510335931111426258004172965070884128089835594589370681964573253050133599567378014383306406960946781017145823768735994500311495910334828028841852609269027663314255060787433713214779918149019156898830669788806904583459671620485443812470028164680379439801108425872084821791824308899634582110101191312757341393100497846041792980138875008394550107045588152893789838758167810718981712672656661296482125558409568258628289055819635383359092359481965194171364227763264327891212928767034307514961742837672110001210984949892007069440197495575700793731131812893012044590026504178595885136846335328028275919728300324745258520568668294535678587102196002264339158008425503051586500093083255128656620223704029003286594600099177260112211386157361356019895414936959963163014043360134507557551785858835915563242827592973628170338607180368024273679671186246363950767178552252565262833992803751352433488068930901190241285260499597220733159343046080469120316201191603592312281158028126126787847383181996483825379941935333071896085048718347084927199499928273833576529082516787202877419862827362842926330518134220176780077117861294846474218725405614505830125248395070995331520367132077334358610402540858697056487031863862141733430472213062894248490111590743875704431584159426761806697056672916408286530122540815445800761193459480310359127360982319326474277544557273278159109974976854693980330488848020085598200716089759680086821231597365541771328213627539959109718118228248674726091835389513098488493688574473952247889068106504057972228229424414663789623414392625726814966689273966976776438018646582286978020613462999737359917529781935584840310269770036874729202759725367306702637058079545284516655043389035779528812919986981466281455288753581243295203954194399096237600520281112143977860996209143416653742610596971309457237196695496418113253886714091990566251301297318252266998830392106126963439416706385922140864920596448467874533204349413311361398336802782294856375332653144224239702668418903829259053291340701015981379590289275618956613977837792992684914950228671493166950922268612163679614148772889150726088086218231749454165635441592988821019108589895241424946433463251145109267179128023828779351762065433741189495397062514135381656754590670188521392825301487769603364012753642225715266881203742574156690939639449512899801196124116462919795550866639915358032336369475997628434989299739789015264863741156259520250496093476056863623317824320702797286102243944963176692569520920423293133122139810060217226389180102549071263612598010699130783993907879573146936659346123900796972959472909239355188589701422429693875466107191525427465914501703501013656525277908240820253644259207387479607932615877102654342442669149768625940021422222955456507394233629514320914468748570402713006707995097652505255464399149520419806075721509598603117259819480636172791940729703414702014479250427122726653309478206768147295516333371170377323235823811223024344974887244772328511150284567548766553840740441686777837517786878179089613328116997296252617881885726927607800819047059659052340222413939771777987144291612993418989229476270529750469383359060767054248688166846827688964814910457547012052528940481559820182741956802388087731239087612810351210091506020610681133877254305561050881701023223056912692861678902640280416736294427171699701182703148331508938537515380692345839748864091320056379681902351915027054297332519120997818975405644096764748372695072694483778647795104538115743640477605553791864668351432208373748300882728881536355077792112683502514618227079515948714129616200104399521943662787583341749704519376808645690879237683375135785092460773713709186626324728352372831752610441588659631035234602899369357877410086278050685021790834583858682299328431403746998282894767119064050244183838717754720728594837812805454202069863827862070608193675944635910576675383888717207593459299388080962955379129954617078825297813553964487647983943085190610696321749613300940752281834089293511250577603894891601379857452410664159871923104173376481368061309261217273935265446867603090390724012318343735903113520572928480518302518840982616164721418842518061148858169321149127505183266238967556419535009979758297075153019834293300403168109267479892294644877787208881699298289045368507920896011842849399076053971995216018149414899011913316853212319454144344923433162519785248347579398811313906545061578730268309712658371957816944596812844065564806646488230372507048091822444526296968298706754623272906273809574226188966935691892815556091810675609985545591502497981591113627172189640993942861176941204924317023802725365554939060049970853236149820207589534049704977916393100550128235312625422982692925637708248507413174987761644359918946466010474527921673840994832020827080062897187395080994242839485467852365970991796131907106501533544172146318624947787884769990982481566138920894237970239350990423152368104406478380137128453456298612029602642394995303087407461101408550507448206111253808549552537084185881333109807453238064389375510057074796292892046111989946304597919668971912011231066083397225533747465570161128526360060914751190753122706195678068601032059146516188780989743792644068941916067166501176860121987894841755033483405263959677487050550782243753044834055358265783490257490058788327520577091757633202677566928879585574782649311927594348743726111671625111157503053407700653745502946421476001008319957538235230103316540786016036873101730550397039208640682641198097408628323058740146450879201995584058899914236700776333533198936483760125333865774623914050263438579185632168863512982008930487379414420842682965798966034617201758169967392438633639860446466232600670006437702270675646609669978263181137022074997487606637041188546789164112715959493977605841329933055959630806938712192972794012961415127992890869064281049309537891869338943213142928094241058301964442139709493076965495861255116734266703604025578523857203122996564222703993574916147659526282395029158950524410972640350882196885324335862571853988202931508236789099643905349021187081329661172692770979985291379027391469313207520052785561578150491390423673992014368944269977510060855440448987136064177302704653356901614930227850720809097156366660411059670165168482560201441432339565828694634500307258576325043885431966801635343302265834518522202901512019716845233195938723183969556831832012035338301874163017990956772847233462604356557213404734032726375683450464171993582456737266755544188927280188153828499624181425993800525816531654864532555513223377358915545682273062201149350702527988030587922152014581995488238465754520682366916191755273194056426122716606150803072924476937167178528416385367219478999340681449112355978997720112990432561719778479083644244187832286014496178050174373113113619320997967693578234790957042325115423645965263407331070523515131509549592339472117869908016736678471088201790418522171600300489384874357500470456060940337824235408854582264210831303775048896580469548884813174800468895844460948702563390774985026077883086338063841456873968776364584261342540187089258106265454455229084393372284268999542572106894749819230144127367377066757449340369798244932835188525580208775230508977536601496864529931500619414054434811261229397933337194748930097525427856941562793630658677327452580086792617731023385649152101722121370412440045407811276121735106603326219196359088325970972069775246022953761495188839663670446253785852063665250609477526279210861783299389628982569384324104278590897555738677369638316762600045687594311601881574302950661610987768042630234067038455083812760457546363257847943566887805190415446965364014263584596856533217650411242479396706721486548430058657730963651472262136613591793430728566146740067619781234860828925903100688590882649454070342057350756784352018938790250567225364143364644612760121734386053199504448519829107146440591490217684299150691708572500876208384173910852838564196006613291893509943708420182037208532757395291537702915384956021575914623071773240206679145728294609862387768197823199051220398628258170653676473507819658956219685353073743881934565531650982489048313519390716071735401083919855382790878795255054330857271186976386342195299090289425377530994497524026776336843833158814345845769378552047253258698001318594088694494586903125889854243422983017933488218272104384425221857130136624401841721203443102985318882266089810651574059320597557128633249824384422014653575300555610611989076866302809733855686743014256531209781349945873238027225363515437929957090025868791287868971226593135987320410573088281943256549670810054123272626413766364550783985862734261007457550291988537320918657814281511316573217535821405534569505700836414255045695364934405824722443729151040901509518837431913068346167726619223700911752900466497599342703628733357529267180606049123895060496319358911073353538579973126443320289222170257761063290727511549466065819271292185923017092951614573228623088501345070611783115763175604431365786987725772648847285350980817981729433426409280070537684357281988676017199949770883452849347670271440564645133357386894280139616262272541989018391467511091214696353486039320687990309517094786890917697538342330731287554841036728043651451551470002442913843983096818455958982837879859314572126110230007163601676319289953427497561210675080338886010390167073373893623539561402368729609137216530433383298658828397215319179744774102472676227778750154565635851596971421192340215479786172492256326828979051684219276045895392063318563610060037675122265894679056673461435889124087810530821903773887415048467891751187541128131513672756021676936959638909194167816889488422768993301194198635223555660966809710361291934731559409281473206058644120500530283536842479837554410269792097716223204291556050643223945428459221871997011738348033992103525603294085212216979582669119493757266925931304223080395394089539159651468533324854966981571743556108153541691963327007354433067876840862638603227895313035055551016126081248855094574328642672175448023630992620198019081150991081707605461035903257527874899088929491915562619163938955278850912090058288687139173666035973080216363704325371358645438190575009548973362935121233792230439187624729368873543668988421025919523147373020373867196706588511215207498333311084846554106250708891042144603764448539363565077839581308236421639777615415007686532189373784501811159328735473544299796260104164423725994891651048385847652576212118617771334558095247460729871644266689389879628683451694518177658293230812812674608194737952508880012657469132152552910634646227989045599841543400346949763296474620458173026568857886083990561803238658720545220649314840554134860636335459528752052478247411585869672922657188306941722563134764371986034568818642313986149733621263948960731082247616116124858226429115783887595323190722951149726847717436924634631366588998137234313591306165422508351723712667433595172019122875391596111685435088492346473093601520186222422439840623109022120404966340727857041959183127900713189489861985294301376283425783118732631546047043444809479815265973393927892889025794817378347214192876774131273946453587345818698251252987041880403123214298007772894993325123883538893390559173239954412168642697285280275706033094452165233225655513382625422456175158861252423958107118259394118145657279133899049526730916101185824380737658683392463899892197717094113302771996872525654931883174241440778353991239512461486773227182122984418440102350997274024488199989631044681550435905960332942160274989190182530463191092598219548881817460870871083298640460021578390623739356126334113352657069922767109756679222906316827513873553847143146972381994127052782130794793688870469563356478105244882329569623408710922567274320957542222426451873846787816158332962378324328901912242527934756762357779268786694063277616346044856207731561078245986853688421132979091785316726554870026743313391504617952931345552251244382550634409559225530297988487267757520572038933742723078699598405522499368843694763243941068642580535555738623679434558302634471733368613550327808721217378788474661982808218083361491996002461422796595299415866675661126707736783766077036083032408831302710720037969930651493923672248363325895234701355799504716427022786644938189387115977609721765845877878269713673974629375903666980306038990827107158968010863347217569747668872333833375194290013706477218961135168468641595697621690172715015185311977797831935724412122874739028539080889642003671399615249317760376639419158366529121171123031334353343618742843887511092039789318960169217806095698510690335688755062442441341324339402700691295296604189819607905049913134358016268413508220626350352913561848253153163402551145890298265700551723733888301219720281766869258829412114787624190631314976840981138353386090091613970443887825136605886689758482756177445825488980666383722400650302060986188345202738503507625192684145138672316545288328127073333916354955056849974774315091651590425125497522516920060904542878545248549560377698339245780308972385978456289413853748847820174697249434044134843238434082922262679130523209089525983348364979162473647525677093708170327462977855490790398505694687675524044281298859056345485545866895531713053956079350428566317506745386220224401161121184106267865766814858815895157532142930465547954207552752082084812145421982389405655032544474927327363130846346062543516566131881793243276791181752755613358060440747689296570806290676717509052933004249660318503902637934926569797660198349696732201778735000754639614932265198615355787624244841900494801386644361226329616043507524936581055318007820944776178958950351228487812029084382998596567252630844906511294790961929543360448728342040453918957134101961640787459692696294921942605788454612288166879196003169046411572782721557126016597956374107562791658647143792415371951025849836451530304293336679048990355633614169311331873566657652647338688372491120067227403312014429332942896499258829915831323394586286741771179904285076063788697007123633253103963961614448582112079490738327274858402120654210782997008782665256090876855692647185183666056672017997461376104514239216004161650308276567797739939548960803756118774674042190607548487703367649166752870836078592973962260314922553915059837154142122152963258408361789829672308534925781208409678136068653001410316974972122000885159310264800747321267940607810732724433426963945196300730045750618777036504862706215011932857831570582253243290273969962907426926812121345891573751164236228930254839821927138572671611945478457188707195548205360180803542965238355223243719554337782051762134340780256056205978546497320168884154561002234967457421435278703574731551541257529961460132039448134423492361194276294560976629670029913273952990386858124681438138124599487678510864221698571194338286021068877769555112835372800312223653713332861792685384990174297563946458308638217852059539070616760260640893746847477719118853057158619200468257951595477881203318852606969154401548942758924566546538939807301393508887053262827388173238716072800840551642114956199157999881652123757662989562170239502932424020114263866663773003185197865056671383097890805822427684572270668456287613738813746315739797144899657467833227054440913044514012565340584683339054822343632263546892808554170338329266413597307486580724226536755775474675951858126067120184366526717712523680510299425648979687864337267871439264470910081249922671844457580317019631676887470525851926051327640523601340481695996772689916008073455412664231426838969492177405987464196097607797812469913942957716517259297493296515415556631754931845888035674578079391089967607620617621985135786336118293271620264202811367117007342358440181300228418475935539514429319095629143937812677758079980624992512649537498249736158466378644348232236221882544399440831090632848705326816902806981785251502983742301620003970545222967962072218950081784898667493905433491056255208831137219434074439682154110842965461522016634205966142579483825968063877247454716821215895701656803399113402455492888476156271878749463666024309306621615879237973733868448263784181341195575656047167763982513427938198210541794551637220103958315058871966507343568163713348372917164083540677231588487392335027913587757412984853586201176021733270484928235714501839311517518119869532956179714769456991685175718498495705642782151472799084906840765082506531442589714721977047320676354016725392229112483037926372052021054754731214095855332913903687695247737178544033154455559047107035421802780034146173305337162907988793913325582639862575037665352996606527013473877944928927397725932321916988499212168007380682968282206112990956321063290840890491408559281399628128776776506237289847900775101926826214842468343816285010157977924646426486248473212767823458498180763359867746620791084874714277900003108914214209922510708358191809981338698390172347942270792334438358710845819969588173081433117125302283779717253000935171749328406095068557815960308817267734291618009849319394097216151723135403083418868804752418246548972844364608349022445209336209304013475077496967271381789456927249446254691596983822942725136234480467772981908228235247759187220617579680001641832124113852647502686405637956099879628278850668929612060615050130346369533524568312189090373452940642978802347278518112556706692096173231776084108916195596386551709984907606515172714568833218674755847589427517861957213605759141803308994416831922690946143634583908438581761272818028319613432158393820058035960635369470281006638359715831408132396792709378894759979843472424975056131758071766036899143551895480502970676462503974605241351064638237562696943892006660182552720257511612673174705680162361658511153755393837751555098004828870844660655165736766320355719304162094412775944116397499900392474918609191570710507156798856009706507096354575102003432102545539053248705721176534864355752295607726695374512834233459061163607050667916093150753277122878088466875862042257837306734977291711377257212898871576339912168866466466038586982875093919797076875591135728873364167428599634668821064730774946183023639261445963028666086538707718432363189516893784076877734813817521589968142074875619099314451921931843889508644874205029544072050373925493060773306464014247663785642170683840902762892059122827169178552866551031491800636664015086774141231871024923438901435573094980881341875928285827057576434791184717534711771895799964388118385962955614892625157578910391858761539873104127355874581396652784456662143245328340135419299462687638793087105778783990217416601210119082527892983778787972495793376003982487805842694663497645431166837950481164110637827304065192431744176668225594540477880054443096748522105453036564550686716229533187174272929500493088012930966451083677956331831173029546680917335811485962466920408370904753226802322181840297454351928938269636524501452666991853735557415219598957331992692980504635782793604710168208379953919175171627275671241194585427962657975620014877233561075278136156416261659780386609747343542181022020338682982083227165999769846000563277252335944589866529260321189107492705626976497676437857483285843339854386227405633808870014310340629935007357665749297829148212794229879117317608945910248809821530278613161480748385437803941041627715586485753992680691588187308061478301373235837073245524265826556288816406648178089284682929146137164114610499996337869192007476294354030938740648153580672386191898469719143739862752686324501838357411627753835455926875817111288089465031784855332287081825155119820900535132692552409155847455509875922147188906243244529100877821723806753282050885335063774357160982405799877518007133536011723743575766316090486584834358106158675958824388264137846486087375797030771083712502012882946566100803074553543876400727243364566616208218334576156801724289494178564350960266146644333593964666048657912723574475248288058514902168830548581297685334602412993167350122281126271982842404007155410519935161020062884375646935741695459457594620348454310225619776607330259325297191256906401043999106107971431280450562995126429241415718805480881368922274447990619714919347917763183569273746706268845213346973175541122206652049995325734208715457655543936250178660929899077626363798521984647366404665970028926999185623691462071833131788350995517318101756969016716480272830727627745332132950195869558352614641987873041997087472546646059229160296603581131803502317794476066422200053118881098535474344405610690561344917182512320342645229957923867739259101783975201171025563700496927757285114551465335360853603347057696578723822514834663668020603722698160320156271824375468461910787707731306670652441349772743612476071782026616373323223959859702620641693822414028530097981588482866302449867958580096211796716651670976348739146366284170151271847437358199537459134350210259923107022929043658363900300175444850946430963152470198622560150126351592740153349032907148585599979037186579157305818126473290957662402630174575707991415467052999095672625793702640622382726188695329029777083912151558254740869617679890473370638615503033301667696059949569293304334085678016312546276034593789789228922902345452275546105231570783075340108847099764471738654477440630934014311582260525437990618588825770354007363534144778936089523001621792295390403044844892584705536763736868516020424319681160747304496097886273191128607997305614642433101162610459903652034456266036370431801068537859165720330543894801983934376272362581897349216296467989576663174695638994663336039119663455499004142594998272186100408331755038031254899593708727109005196923905425464651770675507134228543588684505169604488741314099133370906950569724444434574809550156182652780987260263092740387171443195566229315967501622304155965114945063165951808990159987222288930425104324997868171240897275094086528231862044065527213340358060543800929419767333457268075121809149073201032873130873300763558067140354550241751979396596848315786843812253252467160665621929984967398617781447653113657840745576268988253869869901215456695803160978608138841351542323235756271576827542283050507745454988709807856882690931869094152066109477922072600086460232225520716168116804013904856320251083764550977864938940828127503179143304003896137274118051371677203224638537468838672980678903978824789522626583684958871468980357268333516292946081595876468980972190899016448137915581870374496894615105347640581860625905137794176967555823136932903283555339192841394284432915213292157044561688462602659859227743291024712093254360005553854597010122812046003169862341417017330916438587065371826809885190725185456759634754622139570535636944639399467845475852256988727604105393251555690982126293877751759415656301129664716267277889739456967629370725609607535708750973383835376966971063045064655260143747490861634140537792622171994066868918807781203604434065752324142865892116149115177237909041020748135886532363097598069502233093895168271936476591522221285615306211950993324641738977718332545314355194065193948538706775876130612518344566868996498899488838134901213926792229820036672934752580874141048129458160454234091159470703626939095434922115673415614929649056962689035148261687660056891878948256162527659750023640535227364526401360734432564081612753030377858340420749567258978659192111811193662119569187551469852127793054247823702614507329384266805065751916383458138187242625719721415597332296029061778451557942869077237335825678519411475484322828424742918863666226663804680407240653631186106741259133296799323607717399658832433318639928625129315224470641389959928446876424287583851737596380245422029096224027549898063191993386889600619113172219936132503477727286326349916269406334857876809215424736408749346260992037011494883412089115838234492903663549241493131041818793223195748306592686234768410068414451800928118427154522907415727795821685816740761946060695187009207265170092274853419206173735111540865212769336346308104064672699053268376584226491382354519160493393983457545374311227042236799166188326396984841151595647411464989636092778675627254760619448125410688215294850270397480038421830331048850558337842180445091033889248818836636261437138929017493222366667405822946447439747067983814841679911097963006910544047838719318796027094963608270071332982698266490376910419502090614989522829745823640096063169073700565452201474703737784508513147316996685664456437451109653403005895250662815543080195662314341842994079664241218809507513926604713064551197387351205523833047405108739983495362217518623381620946847224543331936311384067244292545752307809652824855844087665216253326448684848170820852588905607249375313782759191148121173825333580256025223901171375824176218250709413520078424054071966378213847525921088885597103370524920911651947454638800843615840444965057107567868891247886854607642642525235309386725400203216845093419221588223696369157120968149223695226190881478472411246343292303664546411293848262092018083414446676822423566152490670628447468567919672140040241480006498488908015645490842140129460516602044920360846776955257538373671381227018686074060755498623263927082127401649028953914506271352871692856654860612958225106737038300129880713373368256706532786991936844783610791577352471497535305998630651051281643490282710923700285279034660323083159423719857756906778931980125784012931039405704013941017507228269785920726254132134875627628107373269457543382667770649895708856468659298179723794802151959678947897597823778608629166425693711394141951535863814464993643992541487405367636100746971109723119730967106715768090831687642842494359636190525646455001515922437891102179736626419859356791380303443312238152994661793460007918479434086953758259957014143997630933104400815730550397019603658942488285245267323277092173873903861047772052513762848622331211583754031708759369068372215129166893086943302607714584648933310282918659946680188631832474400171301251264783215120321792372236276866006396222822080591343240737587299618315574493446314982678261413299921021080867237822875322957933937726382461108830161550163497894145539993483316183008045479841407842961868358232703909439330566336062244199920011232309728809478623914793689656582297501782407352757671252227881111670386700875758033725042393875618667401842408153751651247349102761813822032183037164949283034186874332202657641051916879656152753329600973580424014388920829652123838137474911476861056619867498631726459056259426852572615295937643237057064211777423843014890353150361756560453716576870248178239194799951517065310382395242909273176656769842190450847106404425615763173546186954950690525249166174500835449480266566139507267247163742759426124768110754308207396843150678208553799112879181658812285616558207201313879573093102258398295618500118482641079869881229971092238064937004995240534272312138546373603344827320543384805666682474696720038372937201473170391367944929318992300025541508301064825475158606147635729567334574150844266343582908702319351248332737110500884129031627055975894223923398060087875309530376062173357728606031555324038917153125863751855772331006525076211895227468914483477295185647127332483109613244124181645992815163358506702576974073447046052281056962085822790225676828976134353751268379374133072111628083654054687464602551262729124552548598595966199093934287993820917740518752588906392329561104072262325680724959083525625368729137012534751554924342052833534451242194162323197081588032398398235281455843179986473623633169814516384400072613954634744959260643811353444248298885614243718725878907623716267283047489522612518104564846383430554793243097163605002828175806589899857897285260966913459488691252879044798873305609906173149110574315013229994668470898168833420259898151456228904956085561758561666466388939867586121703905220735425814103248915624279882539482053411192113807556782298230859456205527027303711361620905534149644159747217381711578227140011655581130304750696550256517676775658195080035054035803977077338885388741294938560878244289103223779231248556586177638559852604455666779129685541626743073639698957404080357180106841641243871247710240307190558960196697664201873486239784434017578578866803918353861817164827121761840287569841372286567394904648614437295606701023650285708444742925613037483160570748078742617103092709304456707492030101062110647277696365714260512818773100006919600837551177321776294369844329935725801046084711788865431390595335050143472913951880383207424504256582297995858619609974101483791666515964056734001215898244278970925948354914614081005439084876034700620686159328640425460719280913656277693539329056816632433462330633958861679772005832030188352210858821907801106529137118776802782181981186129048186215312722515853077377021475899488120212972788369847028172518782314923324793512162115604684071767307277795774399571164779146487655475607552804849696996750221397628734169680861983780704209837174372253128543593278292160181240297145000956588061642824760727911138366377083929224324038497236314951068505640600508338119529389397076502933785664960332844195190578366746324304565275457576409601184044485046192523031642142881252930617281917001308253300499814470634869208343156580333337527925087753621624627097201321450687975707588207363716478204904142796729483358862662036629081235915396820552001874817766810215937171656999775748446764242157476389145132044594517065658125389611815132528880862883071066337698161084078096652034283262740554725102863032437036305351172645382205885697238489051566774849313206841276909308573227861420234361519212493192219488705730111667725299848121969148242760456286012693037491039480479021734283133144898355938705402710910514148210135512710397779011501902797906885126637240571249376250607974347443704618419398824237057166006043715774970878114898682971155098976910822131678648422834252505537255044612985079000214094142752664090325346273377324544755680300759745393554113204130299797276032185344043763203234482609283692311252014257979456983989222633413889641814323408464247497329998557021960945534556997217693858878758693405014155794046746454735531973786999956446241290192259241388952808496003538734433348022489377715217164406862682501269850248472205676835595682289209079146261324085822211197680973129907952177044676352000043580340039299118785506737463411107638510773129862304834486881405513070355623242340641532691646402691705823615803865158085475137879233364512061051001590436104787128658635877022214133553601014879723354516267526761511594270216657143771554598519884350442257794552771230248277560406635770685117630699600554640401749785993634210786778936566729262175367218640234289215089548680430188697809295201199750894289464614600958240141705041733828163924480259857179637931176598504914297226396373935113054680430677726554883215305260169456933767598473178527845950386743253984540782592004194307274054012095652121450072275187527758105596745320574548334801967510213809060180524049586823562555976030420039126000893475512655300222350275116826544830326434905418005767367032709108112404648552189914444717790372147761397592584688608495370815984432199182043568402206050999926464603523537000185199761373574029490908411784309818337524337605670076359356928801162190240119036737377986886078099896943812706116039008869697046601784430974590116480615074204577839642632415481899217476306960070651478481019638709502170548834132055509091654399369800657127799330344208115281282513583524972827750384368814727603764330751707605071421204677654708650331711344032860575652993507017961148068423376035024616021968227727793738706482122521528837646329689045575274540062994443444258535109493694396590686309118193507246319833401719805483762620556259534634656916770483139582501859030685017195767748695716030855231459826241309421551853814611586936981880085908653366563130052811576707428005034698973861635450636386103046771238941801066146929443670811707341827012490496558454112841161349346271737499602041848998251434806777390841001707969139337937779647161702391027388968398284878728536134135780183084156798784066554764325150740967352782872336995520920542782576318353782943766416602404696990149675699739420843627416601180030883828836572831214607755073298203786537422051931784095427907048489511839401273041619011630509238385100911865447472314078226004430428417691158925726471933551595282656729620159942399443391935926696023730378501531696677332528069564412075739182670361320647496024681484700726681208625645705895956357908075826705047393928275942200132949741385751476766641195965373783197253639915228469308736126363545977676884418059825231541570774004396496357504975058271743876020222227191382832183240512013201541886321078758863445155317273867280985796781919293082228255019507560161114013879682238502265972178762439609823682393985151440366945013506842940597721165480260328270350498774731472056506360092235638394724483999789534866981449992707682799665621558661166123682456465154656780662678632250294839338857661904740678990569498321133071406960535062929505746401211758663364589157551775516966490677627391992332996107583181465426938797769259119970879839260053588777706612460361583002303842185702989139057519126907107888608344606655052916466139972519669105106402595647832725318146261804139205577214590688662652237405006470658448486149692789078714123382926198633781777954976874652713674532471450997956797761344375448941247847064122411990034262564407571231696042375464250938848137450174389264711036820702109914747921285587596578993204811160544291830116510449952355323024760728146544618769886722036622852183172530223922533273428599665986811762363595420620695004474068291967700057581800135977108870894535978264519669282472663260672890565774820982544573569601029413115384259196360210631841810795577040107747266968767480281544367271006795456379177465852731701562438638305133273118380707942417858053088994815258376464922741753031014925570864765048605936517304017670367084365164309084496656517507955670038600532901693937027665897345125640900717101914444899030359067247706558323608039333493997305627293713627583842060193418725950086307192407789700997992467127490495084445299964749752661045255289851023978140720417182632296816209026932552564554074445681727693869827721007495028080013802893153212004784834170885271036488059985276603916985818599138478023021030238604635224330271516556679961693808338952303838158678584475346838507485142157792463948804012081415118154884812797414919261243573518359143038026249768154448640436754920730792145442605719177403529210451793486493708876075986060211558376950453698282834525451424953936155690146309047967981143751321003663052053323651919350260332681072686101451257111998476051927372290482098057729458142950160044484182808058818552264078289413150740481756797801296861413951919407758738203620075631820200574016498168507228169270731858907107823874526816549035670639194170104604518991727568871371198474797628508866166158502389839842979717208166489409920567726880570894483635857312437733692357707628392688278046555972870072102006532992915228864188865010714717679657174321343246368909368350254356558782292199456260766854282902287404418604828883051534223862946582868320361447299520276276457735833956437864034650206916716604007094890002767876156567169809546648049092577230801063322984367557871667990580601296033707112710514918830511127990133886133646589359458339682902813446347146129060091266592529785974222374680454799032729418912007455957805822179981653345665758053889934844081556091204214164721176998576992494621437617453093307224806527359848620264083528659583994459877386468803657126401425224620114544108349298364704040007990718037100619204005320035415061546039042581889095808597343362237793061564396619191899925346514924898314012572044357518702025058363234733211572465657030640816464667756533312168130505384392304705451576775948751939638993592982536428792771213646398857583163509889407967013409624009604327958486378008589333676288465457847538016599892753838833165683495221641029302621191988475137416414964505618666555696712939447234617103924048499718836382807479511932359209176900034992696414490677754855946025103906481335952665814728934511923493872559018628757892252980073612043715183164573031252168441584355004447415362313645812670056263565720563228211962136724547755633041843332705155439735347782237018102295725803294441019380738716155405210605999775302981405803816754862089506401777903152848825021330540153707987633928514656220798553091393452310591163520735840812831267203349583568593340834387836181874899073105424356078586433760135925850428550845414134934661161523952200775528129861276553653705602281022997215041885229922625323195884348190182188593952703026893880967969709980883991564648536157888193093420843189049853708390972112001228978834632073123922688909062985763457156710679201259345838822569128341561574521674199099324397492673733251258760817379926595870261837354241201490238737363824166544580456400372327531043665319300625092985654107805415275912809006849775211722680938651901551449934672978509495907617971203118486577489359272820660591944241988926953125976928635173440227737337081009053806445842531758220185939760822360319977470277791408478151730375161680078464426512559893869260040229916976001294997555450245033313320137900716870632128301218976174875779521850553451709832847701210074350929644009815252580705854486234550987626449283294160584118418619645434642441252872537791563447794699153926165110034107717787256831011699254029066775103586848635770450672256205584182808951095509912659343314574100339067570598840651738694759823526959536278817314062183911528465440767334063170857263890464059486746580791016903092246913640873562791908560185486437636506008431974213281240532966512112741762702273540927622258919473506118014322110304601585736846403181387827270723330781646032906633137875659060514560148403669438204063926846294374299313647136301203953652695618131788011507485565856211214661225308460742333680830251406633970606077078712613526793402542132947973058647264906229936789872869755925055142588847667467798000643569635059628679988294421907327699605795307768051395987682848975034224242210886240777833075818464991657043603885566761282009019271632617305839258326394189483939968040181405071041221145280904209406180600802110246670637287246125648818331483692776411050570414389563233754806151827109786331127433767521191565499687638342056882528051608043867173057722565833532942270460908187013381841633709159264083678896316382862163982116449054771870364586442534012422892569440177328149996155448611464183476908618772771890365314844237809067107825822684589635911052554365606501270415241397787630306946636059433270755701239078092792113861542699521018816626892599127564538198617469724948225992605287032638443242514525704837559227174241659247837184286489981075774087803633263593861872503557210375244586231993777375297614886567517483749440913971584893216738140845232328226885257010590559963398460078674713892822542745218728107903688407901325837069400701365105514304431356874836706528946077928330434767478365109418437542089890342463753514588613844936085544286419784480603287740642678973554822626010926640783478046352173655693898988422526408722916234849622242047039010988246843073209066880558262505487594232775600551604388826980626916730535735675473991383243836995145110607200962393480694142484781194792125418957832328131388700753609009922650930326608055560483025355660185803381828414017776213536264754514548329697293492123185556721989584644338475649199275358688255370297425366099660663719449806495399448337558184198133476257119243815430260939652477152940888013489218080312077862951658437820254195253360288227312689748955481350957724641748148698700086208534340165227135369153704419678165403050926381609575590726315197711271441721941652231885658052516482485058900060845015660918817008265078253314027767775478309079990409567492818170500978570334704338255537180426726624683817925298793484424530633170264642867300597776855349226216067386123756857625974831352109111886723012957622517520558689285839273799880526489207693011506669005129836577845100738589690820772518787839683844064298108702317371104649767849797085994645809790777105027358200238075907875441831377123001559751207747939578952155874979548401272853975987121749752346535128885431961530530533656222772044725273459988863716562681362937231403482958306554665254420908127702767860274938728210152538079887852077003229227868784129628416043385982288042013086958917904676496215072132442481380399299908930852059769886687116077455669399769833885279090250433083316811279948875257522518451297887555735843614476950601462533572684909638309770505615286292664511244679437177957375755587429824967282856201814418820205744023432690450640104530284915434816127215291622776451951479207186452647830130451127898417646260423306283842223335993338428297926767177352445027243900814549611402524298728760475988729013543364408695495574440000699745597082126516490377886143880504484699333926061970447631453221825056421214674753275459001094654283467747607485057065234615188657967850620759667681299749424700348397458192944417042404142483881379712910642261399363219977462709991278149615847382092302015790106819747833146956644203786874124641060259558737979077412084589081907987032100233451206436571204889838884977956159446945102300880457588789622527926455464363156501856757049239559192988722570247756907784096619233311369465449463183750305184066685712199735948595386517959287628780935960991175163114234037604240633361363670245187806272667876739319950180713166390688223990127671663819840684339086716891809954189077114950794711235777072241336930743158793376318156439143170454569711988500943778950653298894810363985857160601526215941173619857146324587050204394293692082185256051859472470812588869219674228587474817316967354784883077576016380272232022219898919838832881647271835871988668048070742447288724485667952926333158926357226520175472714064278667755001458290935926393032031057320961117670099563018496529415693053087796422371970721764149810019202726755455244959399326935880006155937341529270746387140340642664464746379902952268237826175445672011359729335849524448569975357519442922088301116503823653541982795191797959537814942837008581877565307935062131583187243094811764606757985521017342773171693352923836820526804556033652551488030194963578903250111690844397452911572942538553220830153644613194020448253437919925856940524076340955714519513435997827875825699970107658312887806134422976367310443864777719931230951034477544517813047454394438806241364809446543554427687054184250694120190135053368086820686156977718553990332464831635667974605880288951757328223324858405955618913526613347628011796407038749489482271848775419586348475756711885460515508455869249783969126745547793230302374198015526078721692411621396645212191504412103383017655527522569191698281381464546627810810529115828200701347516237886844212322464856442622587420823949909909718153434281047759021436049865286746488917965381964773309669305376497322802616988515776586565516321552139453858880423586490999015501873950809739496600704249237685177267650329807697483573290145482526713600865797276365096655162055871225538663307134311368604781067646795324553628361112597793943976167158344794717287615414851617824308371841271130438231447129363861509015295985938001457364348017358092803512618752577367034897960903018486641839540669440592761448359295500360423303360695111987578338703637291747641451025906213781216477831281634589904830469279055113001964936638419718994025063575356795849317394988675301932273770666791574088944004391250773182491410846223040014744874628458734885337674970691598620623187048204231132585108523123676246898829083869374498579558183807837997764666422831054328021054028264344695007879791361856199791424070147481137301491679557708208249728970088816554128224824340423505212891649052458904079523518539016335164961753821084063594885360888505366717032575354551539314357713963672304122842423081956980377188047613590679842774870632304933190403520546611259739027403149299931704048685428023816357739448544469125441956725390769176016147626369457768111738190131819062161425762887704622203223569676257074500753996147937819529990429073129323300566367832390193816206810836114328959088177403360252982405795458188939984614127238066001490392420838943020544543071756131129572465378962176523744302834429329681230889512817661837294871846253406531429900058307803855880830045146613864025167777408401043761798392021970860852550464587066213372140258196633119964108924313566294420310182960453256295737843564874340136678835497792781440346947536966664439737271337915293921022229619794887946534218901684191724356127265259244387371201556419835310860718781836933204194939024499235208906348229518425976402959095508240451243473514748289596756459289269392140987519689176809878568952559817842007089169537193250661847348651780551432988380781558941721372783731780027639949527865076214802366751105444697671251990357394947152246576523308341109232566666558135015057759728848646443318241664766454230485890628737724600163889035686215165798286739598994258090357939968426687407868035882703279181157156964075986400518672502038898355555274487481974480856877194202088211559394963110890673362278410178540709376306452032139698888923593703071204755639449171012016857944927610923732336982266441815446569042084969197672438427708930722450277157190862436727599593724755180757419718871287370411582946409120845634535254479632500629435012548924100378694737861280267274777561203821753763745513060962200474955361282943346663373261251701675570445518064664628038646614665566872978889324232120542233660151156469931836844036218943468033859991071983907751370942254455311535237632448201669808237602664160422381113171011098248439952446737363825660260164926638593140364336705752016133025653018243498365691942218008201027728176044913028685862121792597872023142782541444655544785851978693903056453867062157894020986254177851257727695116831616744302656307059292832946718257971693862139851145209898046017275663394041521950397545507786666985545178873722456980853346916897226681064010616478052061572984161268866568991361624844143251284570229545853111959617593596733706205513194004523232299281032081743130237078344777050952737867022359197596313940435206455156191949997968455824620428170945415104031366442606652805032728614885533092712100758213718159209593053851047671381247999565063306827910284098646273989646331751497998841115722651906029672917583369896178304718445660095041985840291550777211052826483885560798091003611186194041765013771410494875948640855274863753999952025875323310930439725445901710282155020398614428689452710870166078067006616124341862135501324303596330760400810514949237281349547620023434441174229656378220493299292832296461009442913192362706403574849868458043754845936274795853876592162004725157408602206604246812554285563037813563939170872241583739030648830325265453990723332131502372250978194966195019914965334970713612245346541075468565120003712555638854948743714390939859978598388721154780530322469590196000524595831933524460843852731471593324210498045715920228713416404703709126088245725059784242358136532942475506372273117932552894403968839018823288442138334464636129600827698585449418274608530632475215507811858684369929768616241860808207002642657827514420072477568792173522477598660152830132163018435875047026672920528805423378165503979322045897940462695963046720780891185085232904273935840931807900383286473232866344404842056802205382373621785763781265575235632053131028247876184180584830935928252687604671213331518059786000124290495272823021795502066032264092195346841649275769388689724565824698792938505029239720553450040297621821070633929669144871954826476876029985952381584832614105636036618207173214027705027320382689075948585990598804291880465711214537316807618631546149288368340662447382011529295182048148353461717586575029842238910503268323605615447445684843931962760848958946676223140483518142252579751001145780147663942535875463344017978542879350445051654335091683078247314731813068503009875336380638163089163730481083131758866079541873382011903612069223239463888759891496290686133073734831310906752117327679240834910667993670778658864554926123947376124313615081914475152640120960669650478450163963849127246600438963309517609398622116392001110974097093067119099036794014814736054456247179969772423266390183649881577307605251976526561254154337059035838385677201159833604218127168188194864253406961465251452934156519213368081072757889625999016893547864750771156679582123694104678720529865708173880892443542308977103121014277855528043178504862472851093920479855887957408531565924806535257742202968464637159204597168914285146677589389581567702580999743645132526205101820874365369888305123603897678802466817865898831227256139812374083532545824584879117735556757080669431939149826757920214669974670297919047813338337216981961720390178333203371746169381714134683043648748458863359768535269772702373165393396452991805029157808194812184174092867566612099594320241403239045660846084778705235397891097207233080975384012208669000740934627527916342844007659742374821717854335067495055209404641439878264177832879820030589970242139281979846953816528950689869308064920767514846210520764485457809981883827424318937341819816825054709736335353123177974001376754393559284874018085284733639874468031550542408659702405526944264775564685909105893460251788627062376105581117052911829994130717752447189112365580533089511462811710336553568396141341448868385622839754434973281307367552702747823226632548266412799986750868247607305761651659667366237335599066559263761841599927752838965572812510790159101766435806603667828926029453964753433429304265053886786763702169568424524980809126931719811301173733976320591910268121362621508298155386090648141171130841155724397039331658640599640198770268489035603367066875301604004596539900585439933839853589906312469245035616654390686974530106259653442428677828601267545156831686892636977505887888786528223541198684726020899935959808622546002239447975908798825210962636863693497168711973155517140512218549042012189356593645748073193301813603281820103856701988657908299954735992929648065400863222699944395892017883745687716669689028971167251160640059751919124670776393219825852985550824481705047378598193472868012676838239553327762256931265239954725329524886160535538352173074364211632632283755916897993739576963491122324859767525859471666424403652088849992248269343123687771641171100695893716017380215008891492360277956491570171697134140529787600268930977273082311189077586420494316893097375775456934221670023703932272434949079059055756336177246257583683792795702953238011231300509943608105625270436984045383335644179457426078943957164502466533059648670993993497163227283527807401718629934166498814825562514918614238485062005136224796899240988933765853983638785604618569944887829936409212514587445183399698861899063688051151959175214088093769412038334904374813559888731693704069823132156576437730680558145881311350431448447054479607598762163733131119653462640965436760734514050277408599511338036198147501056494421814183986227590757995626361271575001086404546895583682860713728345819309905441883641738180468167489530754406489398488035114008888531892170921083165176630882201590811419784623479661370727980253685909658538132178952704920768877473979292788284564078028520467979041193196327077205699121527573229899439312766874574816938495937729557376319107637975708037068386311532599840657634255061245221972746162585801127977011712800258828793749247470507148799756396863560458636330704087687293239743731140564173952026265256952522026519675667180822845904377148439465383497343198566906623459489543203808088503857934329038419157579226334033134220602075124680347563155795400084457641579516071700104205687503315846956616123199489985052239329265391728811632759935656332032518404788287402530476784805225946882380360527994202367605227327648936214149225698681951174893772567127404898939783250178912857846516513874014195181962726292547417466748936326596428793584991486364045818655545274406722228197539987859592359036033964029645587645550954812682975222836030222079294756371455104911964138665721148555845528729467640802511183260056584470083517827303263228834044942905567772750725377258585457576461037122487319448148189492577038135020322054280196595740619046421547210537373621792003240625658813882818443940774414721281812166796791055941741428433659928485415161334863242110537377112755817065019734516692779274091237109152456022807794927519069246089777421852060551396506631118513099207747605881521311252260283317017124666470379961272242791494538721743986787426334189482767862565115058514978870479666635200126162992624059662271547242457355147333348838150398557704988880569292064040233635881712609651532917746091441116583640131860419629485907148021582023222688304800757599074172315085933065694169993506651456189418686928704079280478279593466079538446468306896086397602603174931512635223972707891801812498697790350703545878744003133158907434395350373843897998269981814455503378903376024756651626447905816492430554640192123131494612686360517945930163014018849395185619138725404914118152888299062481709205962886560734284861934317133625951236969825141858917756896426342234821795969955638218741381422870730288547444923425607460568447338898902113254817032775153650076084245327178771657503978292632680384965384536608103170349691097157642594371681291598256621356032783678099921689645569563115679858361895475541351660277231791855149081052040249615576100112383433691088260005102299648409218734635724454029160527326760778518760358576118271977516919521468890053339229010910940600211658987063669033759168372698593073639810577666443170259676149877306070948173538850478540826466616957975758449315446369339144084614813907265290957646908511997468636525404916081674182998420214158035167126629011073451137067687624705610840188652714649227391864036752073485736135442507589143719431927030791499852352077844126232570256986216471576440132429403086087832722118468343634150712964209059426482658584358210961111267755549159825107216132935899884204906399457689730041367476042317764154499380864934373418958640937093763043394064881377313437724216026875769093088493798336162866511800756565690653999393371540373515938404778790518187857073582558650827782640643055138534672383293775281025724917036090968543992856053604516561802025625517367877381487710704260949906983812965413985808642173425802808742531062915500026277893044566105990387580999301658744183406023191789841622743575557734748168882775564377083992129130980329398413279242519627110573062949499263559771689076937166264653494797172134081833505018417267128403027966389070938100960487169429662894926393520772391165168782497368672948488512283574540561896183423623042128437944002919428209710910723278391242778226169075932041655137387824879200924642541311638945033361975091040126094080984336744170347120438052955841459545064210012982503677169189430353605926497024592659135054971704537705832832243849180308940440761728766189824949585963497889752720100686366579756047543671450981824504591940743726057494062374620845756197893700714050048740619612541339528542698088747594341901558916822089593997905075808971848345828647036721176688712107444102819570294425810030091044092449047277211261691420721356689250029645343212094264106519077504616283314926052091107766787128621895964741684660286131727547039717023910730615294774538903538034541570133032346792275668762553313814513730658079559081484913965975704024834515241824433874917974924732331515698901221332513386090823011639183597173946068177168402754919220019665895131038658377121464662489426091237192859386854008662217170977889634907145802602983435174220914338261698500048594517045469229639646477380691253360483415897514511891704401588139925007780083655477046728791482925728646074028602072365995722134117124882971470435449315524033874104750681079326347350511673898584212335939909142418788500992868914680105968829411077238928347533905215856588792308165141081559763473814976066500517515806537254704200222044826337897260603676112650469049725428615001072368439504975038718613890269348521638155745340336568274648463509777487678832442740822790070881625203336244798848333565816263013442673743453931472397325479469411126887821983386403906376387131674672629996224150108169528697002802340272309626163351346734474106484173854110950561720884096188817403584799863614614474177391629239542821067334545708013894152282008548729581236030249355693119168619515097165532762366570831493637709473744339466964000476910253388072060650970059106841249827277370141755145436143864360558397765019389020375467079100943603731194740545334922188299694977772832750894710525386037257197647240545526801214041794778252622479057494133202045474712269063561476808080774307563015861209615098209474430456838665703995530171248616751775654657094982072306727593167955208644456213139028465973912916780341220124811834153572580891785827319363021212171214324213270560886867069127580473412034111603991270380857690458907912673932608606179989972220093062443370428597257163786026398525516326814164880650210638128605677278921774830419750344719040415700398104552127265992826147046108523118587400071748465945756766609525640651083701380857883391697688946400675877754835555642439856139415490252895650822964343396523854960536883095925856739551132367347828461942532738671360176901315956651430453650580764973483246622686185353296802129193179416203657970601477939662654809631082956123975259342453562196691764857642768149684336820824937573369171780736723031662196231215963106792558715093775361288524541142557274216954469434899955045932993988644344946713756359305385024961554189594085408267358681482278956097826311695387445963965445281964729578927776062924091633925403545777506858159698560390507606604370245151664978833599922898496250356834117910550144874900969451737860005994272747637209432182092623939923354774211325099867561596394102377214687834200783179624411443990870444611398854482155846918100893349364560775235648527033330967737087447957538936264348936762813536099570947384121238268450748862816085932285069244696651739533755715117696855524681255842818734493224549893287288499974438360341522725559239240260879974062249059531346050132221664237388158064362165645436469526277807338808389373007553747441190486201112265521197406113192627898655219441120290675972126324888866660113112742258068854305151157802484390001069618772095160232761597164096351856601360643175287967337457539952713484284165580768481454269839510501284761717292880313683332920201860393060154850919982013901751377178765691702950725087129280019628086566920707572151294934087840098135431701044666943245876216971901577971078719098040815613344457704848780957884586814574723759543673995883829896242683155563987744239286773696983399041455648018195044347772579718574568006556855411677534752931881808310125982620800941257955931651969235006457820635755887342485714071590254845485197267551961271852736308059572242447324274904024585926968553786397725694910306338652018542089275915497337415554681988782467425685777425070737636541660670307073135141742838811443198095672784069853240495184475836815000607210335858019101345502459990652070729992794682108457212511938519927212401296746378216372502929463743974187121796404620322256737259370948619149349512109756197032120549147120640999160240640429062914208679174192573863679736539238063043557676631628616970982311547965684003143590323699433784226959837949521033855346363166310502914626291314148841693064887746578863462192720666723092676892412822802393875410597994379504011600904992492865264352976589113068846389802385060417087598215482320983673822425589028346587777170118850796160810581268590059211208064215544890160468490525414186087439147336380132325006726894331436558360317902041438640040480874230770903840372331545115331468842442666477693322516664053422675074173243616303828121785073655072876333238561996426319822888418911857462656268687578482973702616870750088651725226425297467578171964891226406318216294329381242961846503064985915313908984644208703422116922032870005413518529660773051413207636027713256763008543811169770171216518170598630900517327855110158449533484489036124458937689268565905583943040810995598344818611179895721717792126561089319508237395540305973259530261400161826272671500826162289381283756337468908295762077709594572350675964487770536179691732371220982146831170736153121038012068075172652307097916994685860994787565158631735144257245051868170921268216063761773414855071920631031203194089315753072094255914701795886348568822641383444797575620445081977168340726182854312716530585605414236023580978983840496614349669852636696534262151477682866980782029701427436327570328167233828469537077545248419762531381592136354779900534909873299593325051568379039621510279918210239966911167320241848907273875442688316816044116334337589959508982722999459044445721094353739416712395722875404419182401654387288660606434159552249068295619169179676274507865436840382772620681780395522815882552597343279659153782151011481808637138979127025204515632156119810194746127304028936159014310083232192949695699334450890409984122101778006946489466195487226335994714057731711243109370836772930832819656042494437420712694348325318846619743794562043589946043411220050599101890758897452564098119174386781593468396250695838248730128777887239077885276763689291585968646858500658185693626592274373385601828036788106022938551639681581579336541083025591566041960527292265114280747674411877405024103919380069706485267352830420344188760250022086297758426305557847515900220472568746688351762158696129981998574277694493616708987908568290961948689149824070382054701164752169808461496566510468196858805192021624381681317423101127128879170075516255334449231656998023200447482025097459890344986991960468303306655601122554105279027548494668898100548386756124361732783913486042766334035437420603234107380670395602652651132939399780596697184782980158815212197276315127131552691075536028413113022935564433009147673248688764639712916431080548139956053320338580841602436063107176486360437093152511806297925821566753838508781161885110597016287780139320999065905927094087181700458670165542993212404859513066649233717690176890026107619450047173789943866361039672520426296367586499510281315497435132636027796506007966850330555895296068516377015550443263689189261328495704452337272859309343142669543247989676763833248229856555763531794253161552653814116251926296198769490456753131939029099190528552562042184222875346311660501578254282085744787679133853149164838113745515576453215339003287084939283344198901089507579855695360831033239037063971643500790340838104710756554563772850278351110504945970072226801785260536816720746697443828719595393920285882944465650370320394602960880633447141829489794383127886578239108383253345047712701912310926993537868412695518268241635016585332134295433997899011696409132204638702804337755929649743620223589890160722297172210182752117376522320600787192929382546574988251350782071532693638932211514290852435505706953344025824036586776452614671304133768688665251922682129609664995141629630075457222598520848107549359571728260908503900698680937397119277949596421433240775129063994834604950388588522267445201903041400041924682235224920266037613871840058519021547654015661371324841584739010156922079336997603729208540643623870922481643479184568787988450677720213844502096391666789104577640395605573522760604639081868164535334283664879093602446481849259841828650245394608107425650219034692039645758763373941642402034443146366560285341118035448891857648333321852546918479408862580827574091726579509129012189968832267363429237983523117454646991021787332104238736013409568763308650806032020559790339653661811025418221821065612436752877919049458619907948358531821345574583851106344466635540666378516769774419168061189110478828745480139384228823181052764927926797996876510899389417758294697251746755514478125450402759734649807300318163372297043395719160266915549123939985136660148101474212247992841268307870211402441021697627589161007791080490429760892547684791804465878640182807856934048167428511831629883717897902824729643658328485631079786992797673267624208389547468909846504022397815738749958472578535923908736982207148775662914749074970993265152979241669257459379095288206738372463178632159874583294388555231714251821189584765376177825839214577594752136798223225766910592801717486939567972765061778264177201031178112650728766789703379438071890431239853732016218050950793186542878026337279629341203162181474521960676999794705278237969831657512477626062591101502999963648958408047971412651840403472022532620466614866424213941553776718634344600996996809245684971803291011763694007598300514473942241792689366665606784561020548291136130938579115626205964901653590207060736510293367303984821776378697576551104801563950236202070297811409505356978015364687306566441052608397722637064121707935510644705887036606807726311736214916022371694642355506350304179707070182862252444901752019616492366535083851665931033619772805993379336129058640957418361546476148733689472850415601765628295673073267964255133020053568793262956490005549196723265397037661742364178123405729382675020383048006476466169685622783034870894970371866321802450869256722583000714733803309998072115371561191775821975104425885578567687966328249103990620118681169910801511218167652458921618937899667761045333999746978388528439783348099211986597887893196992233825582250853416660027615881087844814147160875678121899955493839282941560377323670666377836757295675381004086587868687806715876716636384220176463250573136948844650742314674473267111506501529373450610251998803359236690296857896530468188239092814957192707425683060126762908355083085976460410092904212777306368970908351591653686202259587376890230968285539979499954012669664121186468502601927450318017663018077271427844760286456796811442422846850679039201276637206833367258776179580169088433650231528996413653752849547344827802829582971069860023174754850247139807354941476075150339999216841597645039368211562053882847362474382394110709437712417358705579454702647876478843354900853062378218577552347024352399795808060917993149261167582404210987210199234935851800512084274609816149695219272051995710245182676960747119933319035265114864056883321645446106153409053788449159350489059927542357930523564595326806540627126416901559051620978412449777428304857442942517077281727845370897155590455199048303686748525628428219250180615879000295269690793720045663091241366900017416544280599772921102952109505944621659123322881487332019370454064790894647097450431040851416110527431324940501544819913827951943609454370827438986391553626642577687210673041770682011372644306579834548760166383715652672960178873322466747605207960553696937435056577674509779677369641755495493872258142261039263503243476443213905421770898868398270126829449575141068095738961412437143604253228969892477921693815140260284666711408350122034997698343708464893380298306843232116022929187191958453644780565280477121069498608096781494929091042935455596423828179692493673661084816289249865412513794913227570619353925319411898332811218468263646668139948661467210729955346490136134954944279314350142440228821380636126139299941244463611554336991915836295123111824836181024969834498393143266409247396254767677972089184464328658925919273973823627823151260678250676820766993269795929940347693927340355631750689694887278320557419888157100436977335317422085411661649197891933145871249073357972983592878927664875855426841391162628606271600899073296247989984284448160795197270857745399457721559050005556990930148726314228825503610013078851891302736689746399222907335231884113278539739676448027600436908380508983584288186275962949346348756646973972470437023500486389824880061641193985780011652562298780037192992543559969240364367621660379049626769479418493412442037998391782333234264988700881906687277958470108389771589908062236079188203285878443647073964908370586008811324280117650023780611851073914127538281189130080271453470520987024375987367321971649937921008343157926695860615366801268092900152672652982540909602636405052942430979926157487889996469223201353565789533527637267217752051750388271110214062081599662226074008980245289569707506794751620683147943752372759754267132323935931275137820249033471201817462643537569414804031052245610155772674686717412082955814242464128988911567547403713050077293115864763049232454022085447996428903263469707899234982038100734512988314495201953928661189770141309985184207525886622489570967224973851359364925244209061052508850422263995377699199614470448252211479390246826615587440644789571136400545340852815838432301977795431784730555184774326988699070273947978621255620929990081239924296531214168980071628818536555285115025034013240858706986240485125711091906401877014775415221173039369573598784971823413298114210666722524662703762506899419535062950374014022628359474446215002925657735797882519314551869601357784176573793377038792401450963083118693344269059971695984598832907224685015270780067839451473610175860977432961398044529488054441014944123892718404817238759505276749821112600528331170212296047356109561324943756511204545725695235887713018930921679794401246611747337575240684615860252614683772720745550296169808219620179643394910291805752794789166646919699713857494322511901129622279082341394499885734714005733200814947165510303927777494723433546877200344184229215839303589407648699149082700852073585888140604028165144089509218616899975867949865437332072128223922958684873835144326584307062423306234493791472198004464037893188535122642008853400354785335945986412296210727649246898870588778076636077846532837701128065299535981525918128775103472739352788834236146788055709574391176261616989716519583572606737622949313779327790493070312113981328253678179904227323005311148037955626796283359064517221749397947284801453899144705255476617393972048117553770625596012129669480140387443783379043196069623900680657219043981009459399259552190310950531336301565097267119525208173127816556189334425316009813160568972723704901029386876159212868782541033954177349367747015803106981078002670112622630716784520854204889648033416910245854076591981549814261630497588808593757208958583264727662109148639748197134345456362810933721659637086846841329196788200654730005632845960175063638446588717606096753528222711932264254784250292816294220469942229804604913303199487787643181076476723883095079096284058863300969054136991116868194325554361143300402010558802835390956057699556356846689412632100759183958020299709299035385956925526310599962439714834466986076927138323176748307288816425834616660015493807052574715003211525093430542390198875097514523300708107707766835518802919698609383877334262049455205591887570392061875261975351583082395248606845086275537429916445400768649854223868399621224104631988460260599990719781513376192725759819936459333196022081589406457406608616357210085822079404462068855155295580841923206383044170956988410095198074020785239529444181240687757035480937970492712900764553178941366148577883310581106459819846441394064800707081807187602400064776146090356393681657001157602725216503657990887987639357844396882379978154541133276481039167329249252252939871752596595148785525027212640011182363766686345406182473220634307729836598639036973506081425124910192973727286703276891786014332385762422081916144302700110994910355105007940704724263904693879303945281586431078166268745540781314688652859399388956181761117622150153786857099132154872865861655296025776441392785221016968287392252756970903036863254064574404679167072291627000968824237013154983623236859194145569549591101224405914025244556115418907669452192837656827746371859035933288190613733740762873714300380902936949643069190418019406612653171550169793027045094664253716069219037388795341404681555580538951745288233112225763825264857544622058630525078563184448043906071625645530279155928801076771920138431122707660359237326181217680361749740207978388642481376929565142166947873204418038963682889584163172797495352465631961636918162233711089209763272786718629310498167523714181005757944853011985817797332257539391564206812174825524603521429222337516045544664888067523435201427093603888012871078424090093321596987209198197693346338495201314568158106599801318845979599574768281806021004936802867733258940992785668008089028417812048869031174131985595832145354112979010434267794617284583663134286379285985719659610267558781621065437056881019839253304167472827112860073208803551850564185727656786660710361262684626372762952697756536427412230417479847004827678621737930127934883839819022895299488869780929742437156099564512691194995468431106829370694979896782761214068424099369441185289318190815330560248795870199602055421931431797830246821356694670366760573158182667966391056805599677948473813316267900306832139053958338846439044143958371632172591898408225762849442170113485483930676926225170615972922275564540701864045767301155358742754703884607355738897397396684024714515381140149826584442011138323370326981611327940061529102428710069648788296961963588923564643619395700273240647384301618207506865250924172921221717929701535508002187314224464063141289829068465090025232136098266973122170782838902513291131757482226337134274908117559393890837881980601402032275049983466060093292114785679615625304835152713746110529805442101307912984735305264883717752710924812944264759972748500697782078329182835076669755937369356249538400715702710343357055537199833215261335392150196859279979004217432099098270172974395483000073298725631728785336795580476497829730128125422118679427840593211201604807120923971490195934914983275021965462331945571769016019536492872973820914832650668521310119863200995880729968279712520493680614684757075528618398896155139845774852606920663737684785756018500724750255473086259980682177074490768679681859138745992717972602375910044864292984702811574808171510491262230463655524679436607972482423170831160402871225916021693499213747177544833934282698063653270339455707363891522843659808586431421486116632693411001277800729420525753557029819485661281050656098702305413226093515201685345325925350396516711682364353343586289978903074581314123318821343318449845547531847565248737926044553544045383369297548523496176425944643961151539419674440521508865976955009864974979202159588625251616314055254214255197078098961628336095810780822510596723023590941083554972036822280955613979023665083548741779264091281931320911416462242153248714586617920248739287900753949521297979690405822775379239412235718214596407706306819270868045085156166483980938261274285729659149633338276873585698353764017005991680122470041967044733359329202238964868196929378138607468653580540672012310715394425511589570565675225600270843101503852696210066522845468120378403132308871195425187191152603231210687879530597390242698172878124288450726433229416403283871129669235610668092662257459550768851470103298575529646306124768825455707703334168735319439296841153420235874814999254047208759778731282923766588186717780127395006407884469490086393552792365169882686244596618712284104940309966794075985294950424479686932523886061247298943790648240030244420236339942452400167175728127247770103806022694153689281866344503279263096189244574991104701812326759267780612116950791498483909640033552605534305134244222630547809206951931973170547256492163278242667488382665443104587399750705999216504333034374575663690613649376241418787013911555520971924926006032284707442723928820780791935425658242489878983381684248280165480702839639254594767412850515154880025328958284148682853190721431673490868922812662978896834967215324438689943425488072981624911247526612074438660650030118075977844898054292385622225474914925043098845898656686574520242935123871027154141118638845774776707225901060728566965228948081608572924807572087804690674921390361774030183133870407949002405993693297013726426531057496651167311746396655945069772059813000049241455657910034336419762584368161216239686338928531677970844998282770897564395620611407411215342207116284787262126032022448102340593910179941438864510637029772551094947629722240230651003764853044008977111055951824305624722270902190987971215084835405943437549457109497992179004391745986880386711233127626240175052577462813795893154238991826220900686232299939620916924802267505813586692827884383427729949899086456831149771188796208195919200519448783310043060848051534911937086901591285662872764577558142687294412444502471451341812002903140465419854462914447093515140514866218812195478451134878482662398473906949822024992955619364517460890522740375009392680016729377127161950738041274608466553215755526350758272777264128654936720948161581879190496283291294679100167714882076371843773729301648552009259067449081559505166216571971641570776746416372756679288131496753027080205336941384649899124209367147135170597963294236445953611627549937205924840410313712487303021407696289759093711858064366292199790870454621106802354635803885558112280056120520344262370361401660201245180107773103289013032082868711087586442245980815114545478941735266305067496617817228163240725212323782998578720569698705380070359018869675222385011514095700021954603935754627888374225956207347141684900369372194051610615379635662590462476226136926203355571513318985410157616819561478869430523027411759041191274068000085392127297140963768305429962428419611292544322760504509877568127846237948107286496191241561039217068176175927625063346700918816580414607881108044823784290950312027193746102574084972640573018952720829161045088276715185328282390282402762761450793171240034143385054858706954900200667595507107569286581792121272337257767066680592367455521391460008576522767750909335927679915627604971133086280483813032819515311202746186606017304181228273836346954699042453580636807702899599287829207325531296674459400243855293704896646856598916102345389537776464471498853602152913715250389215727892209785203779613678343142906495222162253506201303878245668065769227275025979844846138967866408179197296566283055826605511918589972826274311208121379266884355218449690116549274949342667001905718466017592306651403544356181154096844923192017511424537677326497235024699169576493840908771596698904978000734526706694232765354765249256055831071349943767090056820600844487037120584427014547753197272184280746350871834195975718964053398487914516941714481678502065919884039312869112824877662038548495013040127022451745559203372128692603186064311908992083658479850828118432092713265810147849746964648422386115420024004533119551714694029929144631053654166483381831223894577345545154249245102852532932716294196568723483553559212373323655474345053401133392355565046210803515741468813186324840471722792188071338637016475735530871343887383852615972969182432103728752507800591607510623496958593934904348100844061197418421484467391895360814710801505580856975566035847096134239529935429626317785970023470979942376236397460772787978197942705815045811448294606961007615040851256738576934425238812408664001309784098334440716689399160070515194486982419085579750864603768948507177041689682564638003090204981186482218019046167842885003350542760839897789333289510840505162596945963121588802921443711904927227433068610271623116635468611711143723538798624420351723844649358976444929072754096924642593511051048818132986922823581042735935170178488046275904268540013295470354441135267399418233003524815078870895863899864749860990910773418102716303289880186691544079291190389304813671773085450826345329332574263811498721490494983783058788004565764591930584019741142725457661992205788326242505340505576519314335121203733088445963800751904962814578342948375823586344847757173373235391008720890092425557236059797673643243035560019952846855420540185224017481858032996539761882840119462756835669951979458174534787424944962101270413612096862216197763588367921796952208596454052947261774323235756221319057256308807254861274158489761632455068889139148581332240239772346216685123085670739911070535810636383714097074993816828933588420673257993244350637694553312752506702892753847870450022359333492393989678024054654425391313490889836225161629410482840414594649566281126911063433940564307947452842410575054104860686756647237384562986069807732397909056194070486031269516006323623595440453408687498597694608658178171036218669775507560050913925264018881562927473974054331855015944168143264229959794981999152768643404180907016727498190611861344159657797970726259421534642405888880814300914855797478656879480454425740516907197738405523670691739483235385748466484668177317905121600633520341972621735681474437463821169213250414943364374725678777010410661577581412664148723878515298585173312380408746114848069475018757691127174371675822689069362449520307555261212234855329504274931303708130513958784949066701150800024954852468260023257482580575935966102304988828645794956520977228799474739216626439300522833257352164196706845056916764057950728171499022856899482759124192711437583293868263656759336053621517385166763854198809224782658313501552358778470588767981070290378585891130813464568187140983413590042931704691646041170500251518184991941207849121273353030946048530991410673248935544327843405823579665574739777953211160199719693146796969590698942786819632281002669864919172925406724965923537688610650272326592440372597283791058596358730733474049700386622572848814611356469592314461136539373434834195121969070915772610940017119134643208610010797781606921420688395470367722149379205357966768482578680962820797153050637191757997123956619553351120750823724992400362784745742014890642034937697592173057211546193524504384570234517598569493419524772793056139487315886654504124146796181210686839954348053539346079355361458257632898544600376877570833049931794155226155668754870384824896482933371959965426531073156686565242418492176389715675596195953107510568068499581875123486117269829825256263040170514897874227663119570818763222814887847790545239093958043117191780726511298621492210247160150120388873224631577881861635048187558765802529747690882798221488835885179663262423098691839514446976240324204679427347104254175136407649290588203247358065097643879780703600862463918923441948348525636433851357854986177488504480112710999900344940588536265675465446493350640337044219174440509060950173024449802580432398374301138200468953176180719848183809148739309658433032247758948148343920402393273390203620381472617349312139670169005823641190889262642003303168634621683605470828534363531881149791130764618064979108998692568434723832794791182222462798459807980354527823583936494179361431699623102184501543366373823824781926127273706639123581139647930642071156550069899439017166946924700519567354362133907939627015038056201603868236816287799481209185092148083869062204759535388751602351292791663245233512587108755763272340956027248965731886361050561313899025116583388683181547806384418464573372987921888965454000075896337268831408508441787782058280611099795434342591275969045063218546676182648393181692800407479759319404098251790677448860209555588562181360123713523047933810318553838588923046618071062332012254726095299947282483287661814866818863512869407006238860464872382420160716028747704889621541410479652981680705548462189890818528685906922641490609855762408104179393945535187808658549544915445565943159004086084275791157163606400566752523415255797300899931991550134885545723476704091679458809274352464428839364256275132350679172743935404935175301516322297251768179810540340282368535586934670895103129989204636063784189498720965553864153521126543227642999786920916138320708192964863368476622114455816745808998647291551150585702200206549358578593656604497918614724926975225363279185564649839385143942007091471619742814646620589842760394227743652214395652985590680862720493526467862239217002292496799040106809573226719506586408800614589272247844111789763815867472187882237695318622383265962353283470816756973863456955851484933593925518552196207373409936969403750500222391416035716538321753805333685443433723416511350801526880168799053640913436864181073945297505062848935088277511724524986808983724595418695140068427828135052449866197544974013467364242980208462871791934319363161673318921250890951818251695213598084764284568345360658579724637685087285179094610243782033630950342678641161746213260162144151947350540080806101441064856729517661818670013262192843444084566184525402544122138380092956364837156429767161253055080367626926622089967659659576352618033870226142639849955861052918565840496521781276577139319057300681744744105915474241117229132856943710767727865579859597294128507107602029320087910431448060267282322524467613032976860645305805114648076330677628403985917876121297868464261224692347466915740101293756887394203064063707370488146098711057630465557204688835875455200912527962988207440151746027564088171161075409691825984700637577963002795059772421251261329578748450930885659640979092030700533119485175278529911803187312708355558691206233438591494305111482686225833324336888876403772625241762474133043872977309397658193158176780715443891934792049048937795047388198319972775404561882175272625170353826392255623715732311621629561696458558282251367263404145104236874893967582868953365504402034178946433572181208344062643160756032276967125757416709888728066138887082730935210356948614645229755089901888261405530602754408133878550222200024601339026250381005198038790919110016508663524789865806225014033696467192491842990346965768095404907371835890749989054687998838459209401305669878528560099323654572926916619894448709567724696747562118519206931749840326957592294263722266281322772782620035328545380136635640578423606129548665534240535672661315437397686989447397985445267901839992480433757106790203540090396571739093136023083453417120911536060229850823359712958492705096483894875278420992976417542986599644439081686919552744154456213187835155563162599223178430736670102819053920082327046106872278486810940943504317817390595317822634180578995087144738832149895215005646820143639136621398906309226340304378677054440548648647806382939203368312985648543464968569630918767222960420272400355355366185708034412805885872091159804764246646632880497367738068162916076115481424136314370216969114982068244572998112128943277747839458474071029552359562061340002749764358764503773236919859560281235770088184586972346221940895561532251268755950242654205979488172480511730288012636007615508457230252626040244532641062930966139355374281641914666820147151610990372893577307748078993358472885488542370859983034212569169897738405859902831326241939618337044746713134550822756944834801550758936669658224907375554601012554463360414532277265316693920766752592837103683723580274910465830264974979900821060710644950480165318009989361074601421817600868441704416170957894378163739840858424095089573893891460111760649356135018394064080208793514467121508505200924363816596083883690000202864419008581801510906634515912497458142851024001349199849740598833678042615068356183741141493207745643037782715346014847888255105288011098744376891444667607518027708432031451317633817172657582298489753930923603280680485577436780410491369267725905590910247498927415480885296942827230260266028228046735941297302018701940870702501668647703502731794535685674221727243356752281201577754574935279537730674198984969467280710455592192077517100718287307874752678385320149669429169862318003035815824509705037860659974485093497331795900325940373305535807664285017626235253943356709316457365728157736848694058080166938242782134403322442760185894044354295628361505721120414630777120267679374326230489144182684952158157242754281495829551029995637632979410861359801403658780610676810894932984725362802980907010337989569992197777699850034042998462977112903377622006552617393262732604316915204757065460448132454588333170508826400167395477894593987669639783633080144943833618451181086287427549969413187988974730915328374701311150602951627097380464552113461610793777728722840858430926824309319984341087886533231271244663167064676196428506209038517131444365866457708646867357831182126687555496571893420432343573491762208775724161971961518997683560444510636291333727629281699160395054705097371747010718742749704257740614924657507274817249803417501722586664061942431460151193867990414691447626836876126176656927727620836341282240893375623782966441655140527868118058222965644198994615680168285784849350607041743759897696683472683496102679689498538538276886515305613685879436323001796270154620252201574299323868075765668309120250336802261009596533725780496859252696375937143434040040111143940717514303059579303660742939253971902734074708338972634407918213880558340793790809464527770614717541147943843732776735016854514150037018646673831763527372141578833466155019534410226753776369678326633752890593032337372747190479318354561160944494605490149875889888961825107096120829635693198749024145445075504921988342106936314276610587041193718993685893633638938635494494777959644069679527304101067602584081779064204569772070633443913148157518628050948505802046014328282402631598001386001834468203126205654853080749778188109974576384142852501208508161320740019789754379730972500803603074739483617867500898941164761208057940293201627310063578374225090783783618558556965399843507098231021144623041233216615521922866854615746469202913356008183923923617404095055326104229674382111982119219648097025973937350081990133234432050170875338435071829633986357807443336539056155700597968699484468128903495522844767013560542567685532195452125462512760198232899604005178527854287732482196429415869561757687852873060058899752879324075454403591450450697179683582860528391764036537972829911426535579099163587341127326390410704621760728210293354954064043927750234354776219551168540563700039292998564776072827139614635298504792145138896379014134889696212534168587939115270678871436966965999463007857409169825005016691257390799209539219380055356542983885475162349666977964714894987092277505405729213420706455700224096598683703307619044771668282822442240305467426335518633884888265885409441373045063160759173016647872616858224265753506285620455899749129164154738546488358689079931836820282284785921486153578797069282377250092359872237926057830891339060812961775860374978920785762483059735339731886191996809785562174222483701132239166432580827441501046296585178006155234147887358701038172361259978101487471192002851388218932451977036819984067791319217340823640716633194564504488904397030956964675607350909247628161485485977841949547457340086737504335190766355273796160306815598321655521327000703702736925225675577104800217366621249675672997141251048971323329505087245604048951422311844273023746087463853402995900006055628722486952659559068790627913496220294012976533510222562139372342226873766869292305036456564990196227450882555936633995524036301935082288852040578257815484902320581065883359656523847730680478289513152668339444897602508553267365131680883776583693267049737537056932231511148483306456276072973205816893459958153592058191759537063761674478606981929503922918559585391739541795220392630312516460084166948838152913784938912512461299398158602323709288264630147786691036861718547602483634468506599403085474048935097442849347134884247251750948073900419766135814179513894285254901851619129489517882136214632319903958259175696704002010173357476331235779937435966540083968360394056825680825061185499957990124802479508431906362092499749545271544611175232288713450686834590498453799469152026118638804687172455803265256631441486338573543388471656838047618058668381888059009693118134070262162568333252778320158426044947850315701622043084493876108581486134815254006115841267155547859952873277398977561389096359395926751365738607825856161695351154079860732250331948526620050069898131496743212956880127576135868071468549031981123328287789515086009755174012676715669291370787907370686219837597011373496858085772084195268938809087601767688878160179172667682281246173980496917248189010444020248858139343068603275172626231604654179650396805659039203661802562134774837744376405342986695982236970754144633163282780028823619602540351385731644074556703226918945878498855940932369135499896750664592099929819086615665122804567361376223994916200355660560541512067326034784315027334975511619369941371959491338906944602682058396939632957098290551383462925862928111991611867899063169835050636010637802840969165697208905253488090096131608052218104713855418030301779350107655768069355604240694385518911768065921422609706526827380692329627382320050815300896103913972718709665158342012389765568843336577152874744062010935795432204854329706809781188683839719341780792434031798706469453005417729586931055166361793162861790889591509315595635255321147275123206524012517933237350761454559230098681848814850098704180850046374034326430720306044340643752705350110215721116738794197509802919716828249771756492324984710147591787720231751435122746072999906550318382527470036709919510273576727217622319860435091439647228149292872836937083049760458704166259313741335207394131424805566071600586273793296098827239055687129662845220292797725548890797306909830482558600129039462033553929665323178267472705066282271573613035473018641844904653738597367919143156453193618124419849183194500234453096953453706214048112050075081391048565185149080889645081465858420038183956539175821554127593464548554391056118466031890168794569694257773016349783853849903692466991869496271861186080162981913979323442691038325043164172595463811462173593921765360971076760859105687150604659840123986624055981632318185881247596664409215333561804915148174875450250435822010243988325303904432956298173751324116328088937041323092013248192160785911810496822420356065043321155744288473769627115418814250687583031556908147766121336244141458248801563152868657483675614866410883738778733490979501595365343780123013235508081481467537525668032394296428712772198731517653042163879945033143888623429212546491280579335630841573781056395081961852335299963371312684422332804724802840829130109134785218021139849473907887017755214986075766602457322617919743953875194580483108665379289454466617022363078074821875610865909309603956786802630215596820191338202168146473799611137087240983955172362631653672087538833469718445550376357469068147114668618543859373270352766693864228974452709684178396446135863625896509913617008429717541709662741757254106293523258662479601397452914313004783721227998763330875294018778937543996755456526317353095118392101706600328665066323356516115221837025220431644179308512598331212193774832639611118680230503561656067230703993672602378821793470261647137017996592623835956306938784114823365892101977518211962024222298238955607586924768707044799272911777840188353466033017826690443937327838673713599217180695982445675541934056443250009522194727064019322528022553723891016713141892861180051023882888159336742344312212447122766764927959705186940666233991164491518489354347708075243127416157014109254081901639990245893620625283020695422377951811899823952215799678999794804169898054471434909234457315156005842921189899419809873476074935113449094229144473973806486792681677561480021258894166175977838712442635321790732201721460123506913124277386792379595229556532742162585990601610120200568452593591471220542939798178192401856840424452609362280526949701658596044790341417063750576785580095346118124928210614443934105807007963145174222603680955066422058770422804135430819213094691094969297005621656732850508649016621525233732875457269686397163053393996467152873373686977051312822589667677029540700633656480274787601338609604958459914904796437941571763187830686312772674885574261649555341097683199666608505108625450099452067204226870520290528818908733543192683687750059570560777185538777573811129473733535582527211405234518770907794340465495614322181783138336395492546997194737278151156912816769879793707012171288440300506128480020793570332309098962965432709444182540674614914178719771541678108882876923203789529948271308383340290668444482673184248394003588768916298321900439178085400165695398443508506489340909151903220951852650067733856524064067869461447075643601861395805179754646211550481583163032781499395013202502932889134708028531278492276523047515416901893892287740200320905629596411201138124299102215114941447017114945577954636017584077205631763125707321068315815599296104467633540205139019238963879411276553330577087989520504949299221390446316646296280239815537308318722665650754291260763720910585038792647787369025917849160044606654604680293088257442685058699178312906940240653175321908770727155662257080348499588391359978818532747285601580850689856222271460175627900130957517083418737494336390955669180536977238868190421975486321067209330092686466936919198040876717639706322999949629302451319190613139525609137862973550328141601857551079240631782038207934236353752508302460215256533609536631415951481515722907394809063960694631221171410988698979855722490270944520611168386326941727666385363217181076941001117765779232633228959222899037261212806082240491851951833278843941291205569681133322984844811293742463166612306125252021396547173099498287150774796284490880807284122802392074781990588872279544019255193658042639759754670178954903807136157114259226268632894003465289885597513051576801018533098366577989685370372074145178188996832285140072362063153100503539920338426364841633660766122938304986398604797752418328865477792549915315045721998919945630354356254844388453175279606129149934146534803109440077604833773973287457933445366475145768579354209421547342373379849003367117259087084786236300354690802586978062317347266732751450224850976126721012700632983631597402911112354425948498322919652445390689811031988320968619021482284247250734048831651064296058339747006109370781820452812036279936661166797361195045129427378072129040436514756145326250219142060861740055399826507321956685071997801942958686919229300026294840248185123571250381961973997150090285386233208894188099466825728330141947690103302870069960615953370411634198161858456632733046083291325912606312815655650209479122260175546806301605355167269304750624526898716543583649773168825230952047277990391419401037437049236718985331922037742088098135565553648770110875279316510562052888760976056567374544057557443960795755404886136450181456069042663343900275510967023802543394826605588708842612270755836571499741898384518915727827964136944182338593672560081234292080554885697624002349702607610760558566042304872298342394844739769181375998211429112309061826761737183855230252055929564090766657095884089238299466819761533988310973239897285147009569705793021873564919503875906669557980154197031552511415063190658765690275377205388637026953559585274627844418128523204544889528308868531728860797104254155414798871945041802656150005110205109880711471333302095127051098574656313229816278198479748832723467000174603418375879054677352243488319163648859414673072246825304430792432838090674310626637142874813721660420710327417906682145124863149727817062862517550259964195846375053422406530659893297581022679042773377206417734216224695931072131353333435767187854946151983747610835426421440579595178738023255562892980553237384174433561418711580458103913958603926837061770672699118413233423593416660268141478972170520663672982263620019859618725480264731944389897164436613818722895648708980850747411539394457732701922004085977232595547607806036109748256133464492846419482526104826041599103921677535477789887656518396935564575944681594766285028870427673561819765724858415409915476287034405213071085277049583308081886591899621990814993826839011335290461101376989094303587848577523693939765384594536098235655677628899192091485844157735110840156792253328621818756430243036833382550983158108210771546827603646943209425285344311192969921290039216302724255513773308851851399801834879891369930269322505168159851849865108668592375706978582094061002573738909589999787388509620315311923447746082652929894750663998850327167362970787802082397494278597226136124240946867886517739555301340720948398035853086053469483181774905022696984415675710250943836173907938045107612756268979787373864207202289089121885654084450398213740989737872914444382307102485435571416601219857914550292787904744297736571879212648646965496102490427241680016355725649931997159979759734877116600806368499775044453212432809290823893932227166540014420750239897629993026378505952865476354095018635597970353382651103739716558453645012841433701494539005952787111416643152151151872772976039301649338365102487195435627977819660981563643303157059865520555884113027821967449645872022694340601087601708542206668755059219105528426692814819429619449358432363921363751829563916623384288826907104638286934267963994846339678199986171043255346713620909363032520596921617595908672119004357861531999366702897914190051195471050526102675365291384786546278480376664072703861445257270382996726323551843026169843167886697970316359422384482009455503224986560099576252457931597141469236238448152668518403051843050950924891209817335499421659955309967314876839934185981054809834946149991947616976652465151191670875370392431617377705469587869542405598118613810639356346835253928048522203280032284059530431021860832654649906857694382310236087322190119195831010607497668894965004518521573005221278852939530802434937634425543604290410019159763543427258187023982126828663258649365395447247902827821025859174150034504436051355832345487029331665686839399833886422423443075232025606800034009425240092151814650552024574274547927910654833748760518694950510187351983903614845217807137416240862547948022989044873001964219714585876843423768322792899150145068659547948803580845979383381685155370401743451182000752409564312244333845696609127050340637800659843133876707459157861328769739061764839357478442249572462016213022203809372950324124495487294213556057295510292982729545100737873800643072306148868658339767701664677338844359298570194732876479515029042093643129143445724269591154215714942324524463529953590949160679498333883819042629998299613414017974076899761648685311353675295173642207565452638882361957085351535340309380237058812542935441044799948178858757112432581337420433428654297849969387748269252731832482823070224675142602185421876444793174492784676063716676884750096512051456768667114990806253863722973792994414027843893930142582658964645253827871407318929799354855383718379577303111429864056329011841576367689116091520457016453597478750542317239781093017985781087017125256317894386715742207186065184312649095312078206381238083373924721093609116622820524233596531950660396168161470466270021837189819613911329378564795556863259727161853114887171690740348749557152926807600875602438994474697747508909623420833260323814513116416541588845228736772470599539054064968648692477855317114525926421028151873039426848777639280913212484942248169425157236432508741547660090821287912814168634135822772451688254481784898987612820792427547506049337374913485100133873919778464687911979314901338891053209238210672002808006439566581358329776719428718058063051281724791829528736013692381298560509898631789338938524704029746758456405183430750294569342805967212910607333372823999716390780763856858405694564396524753378489032864864803756236324802286530687069346458523835827113690436106977065833418964794836298236995731353808864421356367210704162687525428347674046967606663641771671254362656076222948774448006761156521561657635109059644312195203857438612610088252865570595895437625153786835509056757835614769241935556399159616314205849725843441388037916686328009580631989362067102435830418241349498840410261895956797495577126463748865835200729194805287245258854231796370563758632561763934438723121610638429399192872426138672942448715200167968396635924018141930697234240507314659396900603531967049546178712428411098860047133290596900496921100024292960664060135348444106502555545834535822378826445007829908077892685952770456450781265841880466510714424467904619572260185104610166413974587069437846145334490173751304331492164148705516269211176149489859135264152521659911578183379031677517749857527364940439692806736494251483412103319853079167891680604610437420743095355132026172315883207206993360668511596818681643390982640060252437524986763328901892023902776762852681715951102068646979495313566816808529858343007484244068359546150411462461698134918668625039767276724557608060775784448729878397352151226916031622006613204865936169227886408519310779596007786380531276529566987255219653356700556737551868543175521399242912397130977351836409072932641788409571661310994684847661119210791998973063127034998337337166607052555650083959629196854345180162583508129138953361193642103456852077057245836124845544109989308747075218349649309455671449703884621571778796412165590162404664229397137847763299972497379027597180372816559272984566408480623840127877418862978328003389541968146842185836952298368796767094769229247197630940988846346623801477170650944088291222716380488663059418582760450043264334431700608503981920681220700037239727111166697364808933726645727570527076425271793382477805699542932244300761734080505571573606870738679698864807370062612394510401659433833229861453703172919418520332299821093239626916821039963430354182120848035369078153802625637971228984589228030343378763424848666707977017698581237840855128433346591677693379295893370632211550965737881438359342291675561897849185456453018306705824550785283179513266461072971084098129672257370861623218182527255697713499076301987318377834347089033762007147096044336890454780238940289787697362790040465050636707377921569057566544353079633581291878035885534403595003375295832282344412873055765957791244500309648605071592415206792812744460215489646546866741167672961495504503101692706801005899087107245662032144404794469211770538323044204152648920737352347993366656715563224370220295365806681440194241359087511624085560210246641907736929968028318593142199259464739173935266780817244389604012132500502331210053511772045256192392079099735662395672897493772920718211741856326750680128279035326868207935047675172242546818852371642339461364099712204631268044388042041370372800068471144122057045578869264171190038748485289078507114790490143952033151195497820361175630122585928464859146274870662054798391707283103807969089937825315769432781643485114177504353140629143288640354784441230615049160362143988731352495767779012184104333049145904956854379898764526345433572221272115539442048697003607794948244736677127566612473666662385705916986265975730887351437845826831513418741983565587530455956443777902331047857953769272217583532563451123961408049042043341253578296859715107974419354869373038654103020815446234251001771292693866246116319692228471344152766297985939926157027308266462731421553243881034643718175546578797398225930475179368752792015325914331138920891085992533313968129491219289526268284295019241593046627313645004705835394477173087513325252695495280283646773900058277995467119746796772705316368768042780924957718155503847794373748743446903807553418842000451807912054314139166802054013261132651569484576347400841782283170141549493218900194921593247030381821869892475419774294383438486630130859873056596075078019322069798742695673941765589241087466712887083989126351993878134125661769904507175587721970097695221479827075733150182665411615229535760322924707522946480820652474013777947044568134580182954512203084163664540562044783392067848639431584201974860091784935964240804836114841560372861061465975178722255206597619447036714870110828459794137861526010948164766302897839875094998677134706365398313762208977111584895972987892704551558651105783999887939524150991127004905429252175080616941851766622646682565285164515385072435307955138971153342077345819032412373773968460593672635965976892443450925474570592294306241349975937001740543306876845176200272767911682134868265562715052942930901652268382663975944601174771276069353614511347513465521344753140772257918189712395576028750936079442266332746555435817331707531259311446019999127287417592311062927388202143824272859765216374396088152279643154119336973111241109446624379664434497773000054976048705700494675618817520403297839179461993078932900067249127928128479515134303195004018969871408659767388153639588108067317309514659184387219459199436908645350897934029122188504956606695253493331642622676035181207619874849842118366535424091777472123535231031308409370030756274475415222878475772861537284591108270290469145737961570780465600804115849141596828089315976130692539378241734563511223906648623950879228312391475302647331093352556170466747812278162767195937839699067882691712836838793670774090725294695605147604143915765402426973181262553155640317293145581337756874282670693478121237911497904946814140305912019151029110812509752986346350042335113450427746731901936263235175278910030172566481953050493252020497098581073528676593672818813889411277593361798481269578441320882293862114664535605286938050315514976356298003397352654006016726326963795009642570957853348797902685583833332719435238565013138898189872797381793198327134340910821362219172030642043161063368523156158691581715719000882569381383458459932636646521890882184225017401942675193081131596997313929756631954022078534497014633385264776060438827076120323758431514220915906270365753849927106179031526724024016221876286405166136337262948825259767066105124448765157189703551423784066514451011680526594242952377860962625548640907640371749229738121523000881263914223292876838806653053343076838683833858315647092758068794170422837568091060156475508107496924741473271969994431549676400987963419329156016199040912092430336418441697546771042385165363430387667472829790038475768138189770120425232227939313438860856852535329424979999863865883161111312006539299133625086127003324827715513589415182371526397937453638274594234229152425763174065749901184196165063112296162148786281439099937061092181482421779257167035899565565047373007314843017716228013163819986307425859572554581835012865324067971736243196768251925093855891780982525243064987874324084721102006321263779805651982308240106859951925874255371544532399101650016994712659827233575965443574066050248959433183406282940118506615304578322508080303060598916806449549042394012152216024596574516655465109827610034406348587201319641633167783038146156992359407333324765004390997203614228165934575277321724550750022357806763331224591168067501215290628956330621576986755284822577768293162240133006135115177820546518273555743152663938476035490940300341074515118729984216049044123662588550903543279528227290136289397690913808513260699608341574835317972238447645053483464982403799170429265370724210278924147469112058722962049366440205635412298458577860381897200489017791251754979814543452504568525568135248126271219168260436550330145032983018322317976764199404405806824589488415206321663172502177573177782176632165046025251914404925486434301244392931089352488527644591188498582950635561040757679264197068446446241490243156445567365089592054450564366459693366455676930170299818678944922618305118436061632152265047263841868501792122820266465607211058976803495591029358810694866649537091339565329379854653001321455878218270893598623845601176364382618252327725665857452956485073420793486303940638156397305618905042715563245257156673346886552019416302686764909485708838959017987813629888856630708112608176824206018268161315133040270481290707785977322336544976586616060532763338503565671875062759298582478299625515966862420180922136102190291313168052931557889260545416488351099353012249024806395652645026223876933555915283775585946132496803115612533006802221388649072146667302088047267144929630728768853629631172059788199411147986534989028102865826306793597748053589874008285534161572421362408434416314954881438142060746575580296484274306437937433282663102200343943036775530949174863488082170012699379934028493850274257705882226575845846604052403237901799891899642370783710617212492079434607676314315158907226667514243286864815045091055078887064527705564228816947729001624074375576955339451413882393201694339975785124383815345488216959681499365493067588789664604382634143542347013315775608377826601004673765474872390649484005776584509945755001229046807398165774530691217006092839063409963891218205756801550850842593445589052343741910551683648229555221925116571509618003712083199342407995944031539745770537198198175181934361970428438353274488966428971815964369276742240793881462815136128436462357520939320866240900379261268777063595118294401682493558492146997827783982727411953712792559058339687785167353395687184892983081469464175227508789487878113561560175245820947627086542107256234729006068884288907118469417311552465696876515945721953543169467630581789708155868488934482967540965792269602470413027641574473530875727648613196552064855659905446843893089494212690164301338093002979889403899408459739330302909633536987752133597760784174199849856174326955654889379061327273133775727759844370819708176421061708255810635192271850972439845625578448002578271312606330175906702087902970671417502070612982543658001895954652060042392070652723033729648521974823606945479691603789711260626833717758882502629268815762747208841466504854846911037443443179036313913820343820729781214672531010995419551509437093487984860672934809459252879804033447497290045288037599468098243708554609539074932651642499038051034165776724283666426918838176871729238964870052417127756763272498202445033175756757635667367585440916427572742601938830159098499305495754872510404556593432915353485248371937193903644298475645957607595174513951037564986281584116113172780723015950890278739618785313333533434308894579730919858516069728338714097279943039801574329334726155496564901478644246588313565624490777754039659930527443478101359908296863056395916239781801570895244276603270829783897716185322328998274554145493216026060996657987803397000621389108791787784669223086538990027116479496357341470747491621184107462056425171792672712063219480724431155670888605649605539013284623953222962723983570248134727380893478214519278915014543698047433884603545283885613013724607637169246901690334012953359953587242661111690568511132325698795142644846341494702434266709900438299990349010583834665904427443942001874249877026829131656583008803053000255533527803146919666909881593380094957846855540623968303394498460527766555356319227761827858425449584027895666312458778354934901745795962128319622069008300764855640005179051505923486621275300001129316706675685064877712053535887661486393713792020656956131607742786874150974224343367741396307658949052081033353550627362308334826104698149345347873085254851592950401911878805346932750311682183657267427834692718201951542502311949110344504037676652260282396885625379811286496265595617803902129142332346735822481662999961232699729848583116809787194833702536969618159602810471969380753652388445485658322660714049909249765286102393511461869063886204672359136459663727475089733470975583533919339899432452740150447834335606252118246109211331619525080344562979474985790550386803397028295867148753100047294036331208379285421060570388939665631996940444617147648208409930983529259885658933670755884094504584196660483285161970903621967450796722748333642369744962676378422184902109242088818876672125124216031358985878815301324947873993414856053422667872212784508020764196285787017195125573082512829279493737932374346568349558686396295175574817141602219793575973588771005066650007409114165191009787529849291139226285855171257787729342172115891965757172515414289275002107762810661290086151862492947177492904759269584416632324489874040335286648337869772495327247438533780661255831539385249449415041303485860636627296799038592736237186558759753625961610225844401874601304458705126091558271328855002782845641908723313544302856945821781361734199072146138203232851682061805602079586865883602823498795552942818773834691701888122752776368955468729634677794275646136791734081710541482911363829550368950785794802739032274048973205336797985361635897175182698671192407136552454978922630079520964089172470865688499133739768093081378228228704990970735588673380850134610570953411415272866899114337427771783924378325660143430823101395062662106367678867511404613224122174176603658151844258184171639891100237976402433239421056583561525405135256094238667157734286887444301356831140609413095790294386047371262316176062675495688515659783702985481639891505100405118116049877688301891721780098252092339522763761239678943555988360756643910519625381816423630633256794390404929138987737158467254965206230059808119399630215824765197376452187452913633133974928334893581466553427974152281328163133499882299037503814620891691767688899250493270799558078912492729005422655363394135648071878304516861482130355985519349483463914648452667512173393649058302022294728744667539369306940561179758468284640001975214844513511546816471944200242154834437203951655592614568370180306143755861840589495733711469654830156813333229153278057324323055112114813508546798679524502888558847261608934631889183575176270733360654269007785675765491930042924889764990426409086540571180272375724110044381939632878192460926087640569613491021197327044995215580787266840991764131536668506420380528183680051780486049274648434755018830680903830810360564946962092003536197970893670391027126289951513823589910428626678763193360797057766488547510000988341964335006197215087461424513429632502164963236036999348798486644723226610952000004920481291195916766314299442194674878368060338222825305138859603787156819342015592325988551717145634355654481284777359570385204564657893831723819585138703754912783108517283483378217408688469700507182940532911852014887186846130904796551463085920924059353316127639778345313368383759220547388580297684263379777362976654280824232713725540013147173020050507225381466628013649073838371341687191963005355954100519671759523304693410546192090442587900699096220294013475099932679406706572039587920701521167698463833635939054297193340331288424240752041319189996554817199945857725418292735325313144505344150243405385450490844548809776729058732914364016121739996513049657951376883449758597292182979867071174946425451500647691932981016653055159575450541362554641927236822142296979452819185909073172916649870534177659263883519912923612213524786639905182815981245599489039495791031258053738620263704490077718449924043662146632848775443545083431911734848203326349159165708738769060005195990894971581322165788042524506456411241440696371302061173925913263965159550101341949691360267795246091915860545558136670383337600582419395058789210310203498305833781911339627217143795042636849965913124078045893002699328563747962986002708549575035653618301197261476523635936299471047781276891373242085650465320301796726102394078313318088412525559139477353620684911611338167740051116634778517168594553038027403801979678256482219362301818757821573417329819305178472769400382221906023447267310760864618724390918676837769568725166034445072034948266705486230688419691213058816163254776029301044613808921483992986969127873478568097359537022280868366972998283848821102631860700354230243452803155917245384470642473571283473496878417546061109801329493437077181209628016242875852726349925781965946522794973567759055872537174071787926115422672908354160458208306712432500822653996581940607055259062528753243224274722311429760747731114442032223833290712178590966578845702929909382831982683109216692993948401509917183403979365199317355584035903766918806688835932573013452543125467570701998812388495830954590300788207206085244917928447697435851018816148008658329691879261696982304314761093315026400377465548444770679305939109567271478519721961772430946626776182083208895699160739777915660903219566163998666320706889130772949622718147308626478013893570636206416146520048798909685193935051137101739751501535644369204507178897714528664014329986628095965303426178578970530970085988622882493697886489891007334546485476588077939540433712767031950819245662154410918629914242063160416649054791754209853087628912442326600970708392539904211036775865855969504371871760295405489928508168109814276249264615388906997509620779669483546832073883078806522329840358839045687865473588575807502284001362811398756879510090218389571598862310416552062212077408261748360154561139447793934199948230184391905764578320583762676732377415518093104052308464678050461618712964892759801241937113898524607173917982947322737872267370332317967837441768049408555930160049826332708673109263024355061033187861849341105471103455954005587155492041204813847478794099485660424581132574293332436552855324155475514836116223130690174798069471899928031055310304121489640936850182248439948773888995476171960389340402892261695581900593662146451483766990064979030412906849718675834667379720979680483140546655395631519869152821961992418305495853345632239386636562498251719232238478589383056800129475348481687626989369115388647968752021898651259623795864526381882599026105941703125991604530857846284736817553753034149179427220775373233711836797276206481582012719343248650962211369297776222388272002859103147548468397038111593831712963528044875996172921723754755961872031012753455999147019439132107066127725683195353877966712257404664932405856127261142555574032619544794641165558879910607588184568440605669746762924066311157320807186098974407933010693324095715267020282877566258953214247052850686141085217112209977704732565353206602109485336683758867557721905149921581368592020664036615518228618920606330899652349242649519733491661840221230327513957246109935166510628291648289553636159295668143816008845978503389788005604097681727496026485434659595908091422487344920356326291544910884570084980553279253145750474460748030924502078705953412989852014480681539784706563520042191108174534698199356641685253002715856799729873887022593952960363061377977812181764380936589051277501447690575415690769910105220843089008180543538765252973879938825044507539187088475261266594846392863080106313907411665509480255226603472336709446543924091181432210340438771581213731763065756709738344952735457026639038389327200825375044465957832579837214035109978889930219751803929264325785681714672487584579771440230408145080426252858438979244993154506867034083373182849691810066895133048210768142937185162902029939162280480807760150307091488506794925707211963821161215435207010163425528527381066003843524519457394198505337627954662224724947121149753064147008412313673960226148719159583464478766361483495889558199130441434534111533839028065762871467828339841119634257384831789255563867093624589543632582814824731581507591774482289244359716095630973605272253686991546362801979516212598319415341094772454713413457789581660214626569857196292243092553088239477003907094777034927853560268529603045523305513618788016898481560322732638825590627482034345869251335974801994262439247842298759138512796276766740212207752582223340447493079412620400476394419199197037133599564054463758700789154657388945270012663993087361187023116720652323572757370929038666656390446290566087326024129235804155930656931394500107918729794091503446317841427234291760815060394588796498660229568979762075964411308516475232984322650144927758083131227510181450046163678430502513107550562723589540342384839776456255242044699022810431608989806791589094795176881329931943713590924420015139768441468247748145657311291554829319814516487768116271140105948218641676963830922781295424535981331015323025864916230624158116321507794991745010545964051223154978411382868337463552322893027751002518487122564271172089944925024011160017708401299763284689968015447050123486052833858871618292289769711068539328000231298521176496094588483922729846826120598076516915131712322831920005197797438971586119509011151822920609881641865096911781790434380258441697186181726466035211982092752128672532148438783441855630707462753071773643190523875570308910967472173315851464846921617533897689513805744339635115340504128363130791097960565480089500230344821988278766794533968011037198378599665932280271911325396302577631669369215787694078652386788510887650979714373042858857704565738985895044603471154988707216784854491973836811313846748008473855513741127338364490033945943143866994952861762088832760405851358437835134174186776771896896600027603953270368029413116061441136573363587128242906266270036478866136532283848411829721071351365660365862721710219776572645941532486012400859792342786678761097352867786625477536460654267155634093390882380838874639777712609580394819691730794826958368391354306467166523947972028321593082277513164884846863918241425381881854635711361467254964954391848194818237351589716964748186490147685899246409105199283186146925460422864886795316550523737959991930112002519408081616163626476169855858774941744901343623216338942719933628069648916157663413572776150693198487548239856052064665384656431194725175915763456537250805077619896488372216997849837944004465822279192099658210020322249397482421501772564570772747681722767553472026985551208719314499171029372849921311753932037457384906717499542271338228631979502067205967256128103283060076148670327126224114496522563158492156618435864293064496364886573310208130407416684186816541438085720241854130109893346981674647334373623213488003627653748715467437146713130555534957194111622484518059639543034455683688481131328147971379484641443447279036173303416591694032556095380371412498075891133531205753612261985245785607039099295957023349171180187142192460261412221393638628497879916523406920505330112988507300338073727836768906508042394205981388742084257074281109380865567832958602416289491376438077565695696506747851128918676183986760347719444227852812591939305103304669613555766416493117864739337672018172739114464280644761353939442623529113658646760681042500982864317063664328457379463784002041440148898158242611812816964157761639017148348903887322807840915398120333802426959866295666198379748928594985321912218105211367101348840446482212816810065890495874104901031720004869889070861268970606645736905208686835619057029817800022206094662280302476152067564673663123400875887099536304333506499093302626389428539352327205437215057935143084960763161062843545121415577527044985991338100943310988357996485497994607549414213641714340834122192516926246744403821358668524163019199854867496647928985983761778712404173000517350165707542111014174274991913786650631624174219752207271940312281578396521150724816637032220473174803659171801505520156154819366711091393753393162392734468195096375639755208268072916068296713179763555158670904504083600757323295576867856410345141512657295816842898776166617412694564498684996969234521507540397360966879969364862566377074459744875513509879052414838908989239303650648855698474350555571163912732812965305812435654395608847222559799108514136840008449049708656346881337047229766497807007557582759197497802056554514638688945985781401396050197825250005040284494659124999109452791795598691356439150221135576284307800515329512974449693080023063168912419995967362570032234962383783908314964506741853914915134196871799033349149137797937920596843404789286235231940754822182641705983394623107296025862578038236298801282773605927882987037950019520350406791806935789974137046838862499550902358755890240929206393499002258209268838479700409201361308187778371631139044063885409120373060456923841443280679152478676319361992506873040118087609578867187924634952363258005799696515328886640575189079779340052246897188409591308681584266797224461714516056821446712505661451808989299627511627158516536704444793636662863450282687675352410433596535840658113661929156084874813574393353937094373049299431041185967926393828517052502486044460647477897254195305026445101059442329004246272241635230653204872064741037757402459479885943899121953787281093069661145704060310222905047242393906728534030969055654036525130694852339801330201009796025938407228217370488659567813819311245041737803994026983574549012280707616216171234157051393820776162345460251464869028500724056493237729158606430543081804583065797838340249503438415715320011890502354377342387319380470606417614010173501991630075780474387347778902435429631108659338863433980982127471459376311538968092709780383739738892671957727859468514725834540225693009878243963488958765225076841347723983621380915260077013996224711818219632131401584246014420228373222352732471086900801492168212265611619164100631727585879277759631808635801377806633550103573982553137426525519744180352144262540865690464763729714562017288732019459645005122264224341034918810307118102740335690173800082554042196509456283840969214178932555459829844505263153551694649928217434196507006495617240159995128440855856758078827809776462604552162803989802860321145451825236462955202755764788787991656154514570035754069348988602606799478284399269586780455561020838619861023704155306469458410161253079315833776823087202463506969849839860926706048668948411472703814772160703038167965632343986602529146603886212559355293511712005301904616574033026158937059069417442117030867693287735502862795358456047382361967818277828043814674139763271785183684852701400677587375364187198431643548403033530633851418820119885394471135163576218062043003795441293824330161443868035397627702344475631817690793968651575471748645720457363651705639531000867002796969633892088620749855205629079667325411816532681622780258374338282195915655270930166536329071965843744651161746304268297105521024378362818393958081989030590876953447647849247758099105829511516864508099060132984137910580601334674030390085559872068079476444966113165391189876858912588248240489950956196275066234157496446902717312400948681628914293454892142504223187355146946702130663461324401283645781470456421343058124734980094607859184129556688060860277225515157618033399610196450278182584862254541085769415779106850611830964038449593764712648888519648119508056357142444467101558083533995834946957598351918115121949172032708627678848899111994646595662585102620710543446579944724770308686843066391262111681439133785672614597787660255293188819057404942841193036905786722561405092490865531031145938065811451835304468267359308353358186646885125755337075221527525755398168088454887944383431240085731824081597696402150076663145525471305460308778858167917085244375846687781657401030539413762754272922523354722232777255131286533694177174519198195487425782940727255486900644974888652888002905592580288521633467574209479500967064153325718790834454046767123843725679889680246014580733645163372370730351267488598011788733131540332068409690751220220466217626774804652084935640013568247178905618580618378341892325065977532734168064609854518126486166822100813943996617770564001057343780786344366121616478810652968280260100806157833243499201708355563445702245611955152072338235344478233288576071457239681486839671307951964439883065871938199371217829533440899851927013112665753792152849884841261256436522068543669745658818295957708480329429198862297264869034031160032099005781311050906338159816079138562888622143206113653477110283168368069922244998331246897562675493498450627649702366860989387397686724587198078839868551246884798011719483000064903564547913287905991189681330124359385661814004330496039128839779289073092761969973886730624307033331556386209923020208623756896834055526954710777971643657859350884056881145228732041519804294504440330494461946079925638795096040758579846142806478592174425300429471082689792358081549996537453115395887160497483011135040132898240996728662715100008813981052278036207973026630934728105633565581913843617604226263323579591789056761552330391005920948734468984845784502953381006488143449615214533777656300064667922021526630240711850651277135688562101076984347015529460988282695634421710141970861725715456867406340161888575158994571719089264321528006632758576188762504133568523313985441257250642334321619288919317717828946740294721640816601371430913252780403664255860184706975448690799785514596987236252447020351730256390115426593701170056533892757677046262189268087438354499751402514869320645767141736685590610714056015528530408438324440511356452606939863085515495328658980293927961000770406042944196631098335120508683078739978705018500243382853966825538501964709289156660005275409512941725461323659820221075026712859034665356402590859065421724226507015862244101128534035869640758559016227729113808397010857017299212945543753998696401186286396633769926913841834182711117665458686756936148266566360423249153735065528996005593113279498113305574700110961357400905992173164844033204687268407744027484166200080993120225677541050641673032367175478002413773449201463941151206148891735741946572992171210716741784061422954560780136340140163959702775306751026941471556652746159205607978328756616553053466489210416396189016444779441932794811280390358352052394806187496328814813326084295108929288672480994191819084096929826812776034108298217885616468101234821137382997010428109221038592395479192784253719780850236557472856555249647106625359312965555330021456459483274156926754652982766636265082668911486270296447938974917888010036310397021187581180623090294507166509037513380267059072399019746415964205125561245377579088318159291630481370233037072306999354731147753799780368534978030328906991437844844485707277936768094123377715033792136034472952716260552565130170572421285523983051949259415356201872220417028404666210687004908590011552477675715086879234339925963755541152113796576480698606839998807541346768246990360904661145201625488853882559022911633393104378040570640403487259212196885298091599239881112940407120156268285634846914387486116118734439007512065802983948082910499987298324545608867648644802195032277187168343411162171718769265828181702407846950159125458756828261594694461388636775113986091253208572234668492595857915074933476244933366676859832364919378715397163818678280745113637253451228161061519956146082074039693098318764183274399774074512340902633868102252763022216421273726672380175097474676358923756541904264587425754883319553396529275415777232282974552998583093082854822745420466920184328483565150181607808340790537188221144509097955464924116618765184902910002135768768037849949125718570408122701169289393633586490409940861016133615240564480721400197114919760760987765956868736929095958059592485220724093536491140535516696863145592365593136761160037733652647155026714515180001900519419851350542548738960999108453142427455033189826451934153787988759536196785503521592454714363304682650376286923319664881949399284874528895223840637024188215994601095300068376741235140019989394428338680774221003761865299445771864342973103147063349014399282383884367819341780645327840321963638272645940822046079343311635867923613145271493417912133921041134942869255159650451088079669006388168377422908139357651014357266435223759872393645586982059851830330837144955711929359910041292322890103289897070969009532554846570116239925757637891336687708598100350037119065194636595085490681092458754328535561949268285538287230721823634966376337065118000106506674223627134199412191087099556507203572919518712564729369555842805328839912635740418304254204516929155715879435039567115313683204546101924998213123732590166228664742171505613239082025333021345879466770467431306373831539579435269434098550623088905192263016009790509538356828141028459797762252538067102976426361952360087892838169341399805702777367908999206655665960962124173358588538652347373648018397693353525092212475385993857860708403854499768638743303459715985452321157538922631140053172255886499131855902420567986400033515866151628147986239007660070413185134880526675458813245685312807258710098683612371430102154209827499564746017955674153469350998465671203429626164097623803216087604337100396826596747127172719527500868261620240390181403595762611266038415462926191849000073749858988346176730323997301415400972746489333405479257290473838554580282718017585863350897761571775823395771332334530452477567018260523330784502045826618751328982542754531985724363142605508801581147460466663296007173915245028167089943004902884099881512105503186097716223567859122911064019799813206939053307148897005150855492833935388197043396951143711945272359196928081370004116871301021055158328591005010262318534432615660028637648719672121983933120909660332466952193254924601027312875526179995530768012195867961730615898208374411923584580610704674018461660623381108240313085525559861614390882953467250624158442391542785926040723416918715563347806137755454728759374794904881423688515296845737975097765681203555637933958113547188478213514031459633391925178123195269517289107331093962383157271106702224206182162932735344691665698560795409329634535526607996294591383971406875198334880365584893813421304802247731173280780104730811909545371677825360922726031637756197832062154843475220913132984522450298963953822704790835459637325545756619017015526251711730081187235234364352867867333996446602214458109044204489304837929187382791115742609444394783233172713042101189087967078508853664493358786554769342382735579144717661583473726119083168892707640464637415829807977634414299861546001426120243891248791961795504651868965776760491010498699095939607544082958621144841656274099518173167044884177930788002768600261836612221680839314091832785951195177945669926551393505621904015421696661810488642600420097099474692204720224967080190417996078834546759613069312788447771295118341062375678249032196575975642501736119702776580565256217971742206647882341439994179719750520370751485973870541099441875411632461828782060612273943670429068449859371897907934371491813071084173250903301014078808391605756691219784809514698981433338929068743066746225225577533608005624521913577187280942002844377419957842854226963806254901414745544077060764331465314869375845472365064385587135226805435222022791927882781179556168406152109374237059743755789626202114886786165041329348965051095903167924637436243499828755215488565834181113750501690794816444279432875410537464392703234685577755990270274740933670991126961273548781777964561420777878978002596132212894176622459704080761519792796550263007015203125482943275332268359681359580060651088310605857661699588024700712208270301340712594311257337083252883622505411886815146579116476764724551512475540119477080807802028777430453619126488341321707823565540050481447062145168188765866929816253813047938557390755680297515568666916127301123896875352712121925417274046545731656579148594109094674093625330089269984690695268388103132436273000233336297731578202192791710497512811421027181558683280544713976357072560179564700523519626765540288687769193360335997815649445815871952160669601798417427251658172332817591703332362980515625991778135065923904215061019740318662418770261100257520894442471537647603724999489974801226734231069108603700800018251213229142754446679291354794564711885602198358106614776141163541667628465420425609984095089964048433724499794736849079887101228101450943362616707269342575432836300821460392575119723092199433915122424937194071579478886340940057350747783118668688855973652809251539517642660066934880751917427425282173921355634548053677483163314993815213363405296764697830754853474807998599669250810194495463269878787753637524048390686168656877728806229486447605695803930283473751172464991086643143024685875923585739457624119009097752290672513043186281912155623078499959142636888972045899136566618200054677729412264035595145918254071186766608828900213550563337679002932616158872569745644340807575655538232042359647426070618515307333482139033902275397560612638440628771243530579234977863317602373887845389100394215265114528918944963382817817431204620879658292029886530403008990418215318278482053436148552244862461929270768314398259042902956826960764594728800377273108156580999564150976325628365341784184641359269174412640431899535317915881941680588398080324371715114512295156544345060667205396926895886794303207430692619897938224917666040515952649207774263382927428977095415919066468597706880150968465090621706787571980473724512068420356176001701893939758527016063345440487007752086846802768543766550648435163814063580002640942188753311455922005694980659334342010936857003837506579611981600335951410826055353078165777320486982819494633666347682176868215472107304552836904440277775414719235478780207578754378182724408778039999572646606951640858943485488826549611096852038482057285603116285644815824858904623845137961623163319961514204650148802749998693581662845051078045057019366631728074258952523895632611804909407910133741124326737177586271270327276695981212514744811172919400305909786516791831112529943207850193457949983797600088941356348123351201087817939560940066339273984914144780870329851348808201126019001717841158899307402680756604274599348923345225984552594285196150711024648495427508658000776372689449806238818749542570077688287431078416473565640800086458631818177657433561540715480866058481205142861569300324821405899689072623471235708545524127026303198981372272029519266343719029350970564606531902390564431956486313750546364177673832962723233390095685411772785265393432924591585908893837729481411401847267528754624157154261114677319110856948600495942771920322816564754738874136262963382524008412919525070211707457491088343207215466390189082640170071175159562526536615757376334567775358916850185267207221893914318930912478708432980566946472236299713043224720937907488107121476931720772455158791392417842396562511318647306902618598079161400925699255524835375569728055069003595493963356355068067065494536164666294187452038494107470588154196822716141131641716297419575104679438886862375448170594748575619679480524346727638000930975561865749094518140054123740554531707528445548965198163914013211538103049607627973579570673920061463807721903847090436536914386254048182017865062346477414249091649728880825922132030769719144233861441204223702695077759576386383563240705602755836923510105463298398800616150070432115563886462320377846715085898412596032604540427786509700176983909209828809308497742332373303284936778903419101475892514594501366189457796864159637603017399427986393549527839207965287108938707167568499796631610046316598407823254470733045445297320702518463446939519525555159802344554537194145051069644224176502559842882998080347257816869532573752402404014775109076097265549167861466885187218538970794833383457839908425317040568516561240664587237963945887758814108065621981267283473829850429441373021924364907890292933475420893144005134584934854540828560736491641886029360467797188884010774677808939017817660665358768994922155483935337526600912738090342239392467196127153820057641692419124710578487035157432740724693320613957933326293546974513953243308767623293728951745473057212971556484988992708973454937756488465686404433455008440179260425539995983461511690263500248565787310902081838725538780626306904769276608641205838698481513751646393326607767713874263355597365919167996086909562758844053126504819846500873141022105173536763533152939904202207522691361205940314552318549301875662402922199958413936083257561414082828226481129670627555121532085523337348211949518868542305051564985946687040694819507975171498467716567943521830519591373151994901108851574340594497049663810428511005506790905031070177261360746991023916484334281750139589263252508891713006147501058731524593604339369968626962050189779492644424389592702772326517480855937540958186241680071799307690907699494327816008324836245144372690594441224391788461612869560953986110801030179560182217748559428025642228212060973195167009257530166652711467241555068653395698867751961368221363922787857912306733814594570389576981214969271139704157165362453852729400178068838869745501350443579489702566827663108866290277197819791578277327401419718734610365635276405204743038379595491393555548423820441284821810510281898819361758761300322264402813733249097864181202109143185974871140215984826990362688230265110207193610630438790724173988113810482330729616844341938024654574374656611369231784572615532206648337413794211323658500402909950482671311757697099409177658314492171490168986402235974856122617935106912481869482884443586890891939776907125794425331190213074324122814978584034759528798775464152339924146697948005397010114655050701178241950505585406277821470484135012116245107224398247130079183892037570287838994359283379013754167640881837505282680031291172716033298708093200207419778024442581056786826839629428800541944564117850588925154567336128396417161930402699217169949960804305585017119833167172251136643608266692486691587005072054963003951693910072632288426647226975477569913572349828841903406282380555436960259446071439523930515157681515124954641646933846360769945316610606236571348709509787237299415831498428684519413416801779099449109444367078204267197457229287038252194625576128632438080828879078823120141622233759489388893236273165723578575720771229100115560381265880691358861931061384851201359266072558606256570668300047192189448464859121694133960497501835733932086463067306160987720417478606288996536959106319790375263723416941172097711025110188095239274679942684848840709513893577822615709434812561788052387428427133922018616719397692868192108210466154933640474662683518355158048598546015685601025037732886313967731794877545437098902588874414425233065842088328246073612838667785684184795260058573389276872839342879631389088115822451760165748787380268731166472021766960362925386494158272879917143554961719254728006137193408123277936904387284392452189861150257116271364962988864419530365535450134282084054690007251778925385893084400849714978877305590177290732173519116644461716235937497689975194912390443293186968478876792285570446961775487052228873466895511115541112296313436719649028609460383356484403366929140316936184566765082131737750146135077978083972141121292242297177732391860293771966326742338779674812511590992021564669835722717844765806925619926100528631631419849196229140912053204297673441728443308887877281542351683776849780284553994827282871702120588184129626295178051155276827950959254912088446726056014974287691170708835515060704199091737969862844858960739052929391774932868775716551523053268609130659493480364627751377455921170169124789070166377373137190270134518037695534913193708150386368245441163550812312565038545121213030924002346150621758101269631605249023041999698096054009034137144099500687674358866409788070062119620166219121400777658623415885090021877378642112672357754526288523350886890155463093833245871750409591909828952612151012635080649905882509607900525477640301609579052125608165196771487566774610167962654072309732203036643711932787397278878998046250364282956290794332874969200134210020334823282254746143443752535462907902147231342818489760236338903016181150007618272389850385452430332434894362047389037952215935565745026438552090834286470451381611811918113322836652920767767903345591703152305295817790724369974490098082576135799842257239769512064248204133636153729124716225223038393672102026326814863577943484606947576500736739643982282613477768436826257006102747740356767055107202974576414040992941961468774624601519825784436581478713373547161679317912649469585001880871558030871744733447963300921479667794615532864418014235976291555594208149075862168727922212789175728875170100469862857812789644290655478711287822323236345223442116836126645029951759182980161506529046905361740275380393649289985210087836814272148271889548517820790038525894389433767037422608144182578447513094286898902487782135241366638547731014939667944739815497942568785454363129862176804724845045971670298080684027790700397193142884736482807706027897449650771500717688780200255052343997946702207603863606175707095352369672385250804324173802437677384566262255318990599224556357113231777395036031181626620986779664031563637636282056678027731042670429906969295241431226818529993945159638982670836151569132588159581340436702718590764475662054335132992008362378764586879532951950732507872145615684638478081419633963208306144404001532382930719475564751371556993149155953501265244361256368157037903339786009059697264846265550298699310590443919277222989287172639491763246920451609666925262025148593408659006325218224254457364794736940182874538015067568522859204164267370360682152257079680439468175653914284487068046682298438628648038070025140987155659613109067826610073941922166447138705758955803769331875438170572080678954292590949179586809096137531228444373959510442988689735682235483215322911292866342734563512817297231405658928805940818660885138566596082346595234543361229176239707502859609938687517301640756909732799796483824487001214687219001756045768750715934961788148113495168163558346449964360405913920377545669050625977812629596588395048901955266758245454276178431737988022308534944838143153040596853004538359438570890524097163099513358617173352576589160501624355393874463705394771224232409198533579933959726656418147975114365105090631719744425361408675822914161946661060192553667808111732258858047101100622590441856619610904914384220567568985016416337107653812715662640099892534180112412325028297329949266798431679259559064518674868374495387441247520588850485531632040271739942646305465563468117758000578243013233383412081054883669342200623964872936471191609978191013507493026039995064693456200508156451931010257976555496426989483176110106551168918376085737744755577963814155469022001329372934590680931854715317530463394225561782967392141822314094805523010114342577686617148490851719706465078808669101087278709441964331555676814495730211930585176281185235975313047910789603971509041117562873385242868871540878847494685231523686117637110241945697486115969334768405928397945955238045287174012499569939542264748030912017941685771711426778726637867065780701792687850394679377088652171009515779407291436403992093323316512587627445429611510492103001406087396273354491902739088843855901161034423212064669735425716803993696099990165790378205934901771649690004503522357376770505452112744538781583707523767559897224549586724470719933822749758478448016059744813116670590226149668170184062952428934103972998533833812243681582336356748338496949060753869776161866047361665397309408261644058403942424367115496254064851057396902266753237303217727508311571442318502936630394286153918265772788295620823173601083464103535421974898215081242067112090186008609639444385528590102064389922483815726590428206245417974150542619028529873113412697227161093689889169333825576151217711975759433242452600494122098174786609908639490381040764306896952594429977828208150718118206283409028764073070977114411476673168094691465881774405134182448230187194683876326528750912239381807008970476870180272301933897403150763969378761749263969410606475232931249692686995981074403114395274416628011444867288437086626273658335392499690698869697492321971088160511868838841793050915244559363816255150871196334456489096876442395499619923534417343898223436043337711153916089379356911460739949834526746318927821880768954192054607938486523387273702997013790425957693885768062057763995692170616150770700690626727931026119477280692178647014774724563818146679235815030186724952324144902725049409340887167686494540410797661917215202395556810103952380172923745048684882756576853148135321794721330278193128558602996542824543531886595460706011608116620009883092006689807224747987127946974336350395827831391464222466893506831225028987051598513172716085426682656166641222776877123101269001534213577992709280066314806027322774505898597818157184604249906649136581095985722493072283877162579046397422802399480838566214210711564767562564826074148989671016993464387744243631847880800743871527247914861694919065318005299336306192333123614667912484596383771409403135234845623903734046356706273142421265030641848931924052326949317744445881556526221606382614583524211977383571654316674381920550727132880849680038465917150668630203840684908041889361990472916723534333074901235459200340538263527591027112871841169360141456975933926637181371804444251045007161992093232627876270399533956087606019071620960304682517712225860054666274683943781453313668964511899849416637954447920771321084831414239203029962281055011169641314537825453073353597834613731687898981481380432921126578460358468459592152550552643925142337266482866413596735855383520969940993508696598834599770342887330912322717495617226449005212979666257795070282028624653658899362933478902326658353732781139419584615757008432339762147451001934164145034512964084727435450634027700107100218423621607836724475199480904367535219673977815943096554324712569057565801871919859092719208591109812139933702189756713477341302171703269734030954608211652463548586613794668997999514145901704801243967797952544018549131973580346512284592139462348213542246233379444777491737355511184115262913422524084492038919365524116158765615209568509740995647988359133220869956500996841946377170209786151693315676945515856383719737947963908996920830590270828186206304724646204843795162992058258457984637351086329052130706045861375189958068291242261102527623129373891167856290124496538599210073182155996998876958032630034511145484396851802256521557992999754740952171196894209740551773351511971858815329562414335889232303899720953433144887391763268887639990875278991156444440026609179464391993577707765926104453480267912310528606024281378837781014500555439053439084968527791986463498314986546083235215499979565755273436153138601122899655519439551517119949717599575370334325671782493775414856094819725822434739098602606591893084581352639643829466861297610102747639118489734964181646561888554299670014451787715325410602236789303739579473512102706804279926819913969394109182118629266962307317615690319705067121333000276874141552144516452001400517291521615232267064442639602082304214549147378714043109336805103052837714695298832990663780645513392428669204877453187798866954577336799106196156605583230349673212293009724856362397890874315991721183067667144467660624203309963399639006672356992483585005799701396221593021234280495686459252796960265500450705124465918328346112906038975955967311580652368465140343043705751124236707005299110435062098406187526279198176718168576928290956609951520937185232262455700850658607433467941450219881307653504144440377472489762496197768681599150259840703624442468689583733236582497539614239993566688511650883765098673671619686090224895504769877806408934560955310246237765348379835885154280511782136127481730025322836033533636246286390018650548088349959561018159667539274783561499538195412259306581213054500746896157174202113984511592404589779894061222688229563315489742113094161898018456215559298394781207659191305897837524314116300243617803015602515132778197222771686730133619123316134219264813521810021995803532658754020664397372295512460245943488455992077950441369765866699711325069888002590276140344791961576406858510161205636975954722130489040160144421742849787793175449702917825363264594814124682956770153850464315796610967124687625017274977351267425945139752677612795041759675241025821852524499698209380202248051320763768738295341015363204208531362513528306707669178701887950329744511681666277185748848636834432943585242746424869304530009641626273047238107629720218937385810498070217120579621797162225067678236782167224654301784350053578811149803283575173798322639389202460000794734329636663580149451527741949934748379124544178439736378348023050647780891363490967542950825137470134086098187478129666399051315286262640169570564711047999182522154449440974843457243050808357359425166807172832804238086592506849634789205014818038339541121189046976565980173018675933034212504544309167668764923716855053295071095310188350504772192335753486848974138730348633615701827308221030758083706274352473553756712093471223659043152229563228355328832271132375154019048252341478062076200941350781945975624608353909997707029998199955673896134445523440570308809226822541249908509468787745680731238458266651603829811759840275426689807658077529920256073324559433279942591689559486413039796634416210257497189692391428005820346192896472104097611626498894750240632340687395466659395525067648151223153534757713708810385294386185538534135238921319448900502755630931201419360209316505217514663102917454669203285176197371012641325733720192033013721488709537308436676195878188654936292322388475281834914893398327767573429471758384126368560903910611049532227633817068059116144690297919782041444521619438657862939930054277349801248145173617272309248198914170991802082848734401867122859701943232806319127628544933812696795718413558051487338473020338823270767889142394416771102382260313468010659330268694221428205747384764270589997990767443046389329549581545445260838614185497794130821834559974242111878699195409492060970966528351386557556063951113328020855630047147988950067398368505374533955678157930984360659108826648971018331905148950333195098072736066091707435805088018837711068680616141320893908136088098832594101623428420313073447932695055447610477561879222051754838202856871015894239341529911613538745219644425951945421984022340308862932621726435644658906150831672056286918220441847387722403416863688660836747695953190397980009604148253986899374658733825049759892138214576478782899109323877856030457878049537949776132542075143742123303438782504078164015578228142116862259765419854689122000523897371444659676432027642544994608618974407255343749099408649614842415722245756462546617571517335880404153210133347799941961317358302570933328524201417684502278558175818152173278082223681107417717932471145419128225345851195314821289829118474615451477635349238383602717176876684448838034179046335476483534767293474606226670291542951990179122384332899148414612255919800684390862293564971398466389488054845862579639356276555564404850764887986402986888003147011939933543660709830781512248522803830286048609881800513203120048210069679641486437884512651853243112687818194428466246335916408739459233854572305662313318281113981685991259250230114696529607994071423186793001884797104095407812087842394818011983828089635116843375998652745210760076856627445483543999262162890350062398165875929172008276924360237560530405999672908640898742470597538000653151853702617249556894045283731059132753192393565456394881505153984088227698254682753910982173653340622367943542751712408602158817375991800393973329523616865221485067657711590870991505613458553230705891644590685386103353260323012895646250495770090793895437212694762848374970643309680980881083351437242227388471961556630005226873002064262611148864524251197345067420090287125293967563863778976955273134520708259625603995460631709948212975022576922412002855007200491169277126540330309462183074969374548015594044492773772029640350692989346570049267388413838875963849783421066983096967215379270991203394564917449732532388127993301950557392188007148070784349330227239990733589206686411159049173194306880987356549086939302504422019691213716419853134416760739181522635976181978791805243788796985681624319742874466868137138536680063162646482410036487938483091507238568828666131896119413992064511759631841755713476075732001091934290696364981718477289740994104794911262261470818500225814556262402700294022629631888782673323478968746173780470758987034315136454869445803468512089474252595623716426802862007260176911701231956539441413794455639530580873923591906054389978661505321773020982948689828105329465665409993309532720130782023966448661296571067557109209528001196970314198924882326439888561140759529708056617663034812090013335502495983546486287682100018399799076482809815246000439748051819730337879639789385747039963434873563505120293378861434701020887271090715988679140222258854163549250522453436461017017769257781212363223849127793138213184006158138528869317937165556524080506510028811101547168405086414759147641895305206525066320366049881159153196139666406664615109564829121107932517459292499889070125684959660787222231661414407761374892872408449163168355777377118433062043986350536532879822845975070390651455307953188914764591020980259368638987999560696169564542058813138430803726250084916709617152370695976050946429200896844534556493927447054103284568179576761099039085725767998877712658395534544297351599321182360710075826203756537964055496321850364401207555989951006180061821437500263446256587438196305498504357340441575183225643073169603646940841720284224800854776454648458189531954998596879495840994627087247730385277059010006110169703871935417013480508761249239487030436735865276211263144198521259574998775528730883767866700732341016510292566795041022562645618659402617223633258132085139144872632574603725129485478360031941045147062147869033260285162614401802478367333258393981992902807616886776832929931918760026493712955670701767908311757523015705434123078555294592002227829759433288420606222842744107064180969536503235249972205695741431624048846478087621782364720318677441421919157809466555959720017983045567558228985474770591633531363181287242573850845527715176470830353300471685337730699627166452599094449814914811247788699193830787444179588771060277390844264217282345542342559869089089152079800572212748266486517404057441513171168468984077228102239365803237523526151419179566352327019518226298799713553522120162664053441879194041534246176580512131470815467915696367890020356100924750815195799322501277358903715765475199963487527069141507583564887708219602842534873639371376920990472811042567825471692502753234442498813817453160550804384348165723536144572529659421945780866532005714490652229148253026407194465846345853022647962728138854587325067407796100729269560384414696734924732798086475125045751727826740961971371882133457760945701566748298676788741207097571420332143940438665273058554579970459044869675004610582851815144546504693017143004218519797886441538572880670932646646543654846781707884672148364479693274626449419830057820936174436350883098293838490640828166476645156574786394841243942064572007093784891334164164624830636433443643723122968426631184420700624350649501544653586694541872393889916731283659560193665185998692304924118423403324188460017780856479796549020286789257724961617058169855866193773100041760492306938854651968653175359959602387686644396384016844783225684610471609867848783789187668598127733409865208055157955214102881761091063280779697041338818067092377442182708609649866384009111653768055724395038191368621027174979423714199778301384074254796098946933925546567175875252005643421144999170540816364306102820003707438113195183714514755394288073094979398817219846055345266469263641135235440936120714529455149718794809075482951854826001551428239676642484299553908359273622187388794636598483247784659958009192545769500259478694941479296302090747722716043272257447754596520165436253800611188047895324460013951484136205639875403670213818093135400919566188051009789732813738496285070431725875908347000052886268420430957272848914477933133964742564745849843925257565003809320000409753670135612516229771219393211278785050034469341057015219579775500854761753095510488634820279556280782697316343187433128978208809710521431182785136056492866626548764136112172242999941862439274830187337941772743013994222140478774099763831076241461375782289185228523414285864581588076498544273306063866123463285126703855315615488047555038726693122640855929010680723949049764179574248548713588663933182299564186463745208371011121325022087755947333261903230651831355956640609000376709403772740073758638252266826695077526683798750662497928378896371012635395841426915464182553063746542480459133199009864996959641820232931179435783609120723423703714065646966438406486805076485787680727886054596823432148749262737989208459877548067331697224755945939957957246303298456594234554892819110491639499305915944703980420101432208811202793079216540847592942984216764298867112151605781240167261509792827475620734459926227137218237569332641882767310807817892665506411170059667291851127620108789439680712271367668498582524121628251340762878094648471024399263371604877808763511596120092203016767934151729298345700960252800818684484760783056977088984125974034101349383685349335566376775251805854368052779881469737494184402567656860649493904494372521987623950410400639152962633970881320933982925309300731994552727560399637572169442376626142030783246949052618008536079964306821077159196979311576301007582064121138238454355541777626721626843611707718759144719979404447967087021844524277882398396087404674484118469225293754142691080092193678271378141998603862428922399372237927498333395097147475887464127234660951655864618431511612700108795625622351246049119065462715659552206084687264354160192012621461993267419232604456970864282362575372041555738772357911565228767379873566993954998654509260223035301393195738752559536084843076905777790329047244919396907718081778622070884103270040005856910513850982653272600860588090326299409491163616351105061604485373803494276883323306268088891123677325650017873371048336050045020781859935075301043813026351633323164849799370815589918293697646573123580616581299194824710729285374683210931121602944544682483437691594169886732749988451328951761861538973854213941087983506991602060633284230471155053943997492417470116303543475502175718496313774535450765691450934071448622386911194033432019902416656023402770116299577681780440926237666502132315383903822696945295374714432810828585762675348024069724884980871416524220276721282981183134997950742365144971854745053293516702615254092643517974636232659725811152943301718418128003924033662338372292612281214045854594367981995481057719737572767125136561072476616324234461854929939351169733106998855681608180081281280996432097984336263036025688015911888940217950927823885549435785444793854206241264688770020164359469966656887477235459763155915877817446250550044383895092171941033576136803733340410739322421656925162002021497757610765484868160837257778213948387736932308738975198547310254618605766623656803176437727680992040220377664196531644117787063005564123244980830404741998916838511843838362535576903216428318671518261516447744829492398056204435904536002156225111262680804278290482736781734231859372700815315131519967010675566655562001573152780263839713225361594066375646416420921661321313887809403851098705407361138568676931104587113742417496383990293425322260948735474141779404300292190265719177596559752551533363851165036054248713423227428983249842551693874656875490068289642574134115785587385198655976105420083182386888602637001212942535654344321738818720987756952374743385470983867562922315867378596845858473718095512324599971016057970469677635029016620623529280556417601451510772569659543526562262050758108892224996885567006288740491778710370313134091165615813674370779963238355185196289855506485843117211576153769770921263021394926202070933177594429207450153874638259349483699261695187774413383072064272341441220503068380348121104027962611477312866374268607777758431424549751344718073727608694883250773170783482591160894311703650789052378802777383919427788713326826997369832081662739133511397115107409630005397087467491675900263156562043863506828805867740296944472907850821073695345519812026469308975109409450248976230221065532827452305712648776784552787571258538407173905039155501706430958586912258403702711293039056710799703414657448332951529834931012140377393021877047128849047787781009979466258754662520897689524607731148906669321987437300337757607699693964035921467068254315709494228782761904443432151053761141550900294518469176090517296270029002233382818753337102609037762011926537133144552892739576920677946488835893096410680437589941776055705026038815534825143389874533727220632295808842420990369514725803735320593341528420001363447839732293267389744888064099619734963168925983065848906859455212895491448630521771338689761110910957878728996440633805529589960799733774079983204223501435326782896116019151818796817080911481736736258610489431560575375767674549560721148883502636371662223784863918710673326168737459750430192438266475150037198145625375251450432639215194862607325050535514048075952635394763389697442324830706978554386449412675062335947378301189001007058478115747209164216690534941735640910948357203258384319590499195881414915367122194943441495161908406461041793531639593769426024301912868784930576701643490220960329603784838160164610821451678613786928643700853993255057205341871904200221455433053469892045220635939254492849961507210847542568051943835007974624470236114844856917260861292311990352051892834579734321745448667762383842550974996808845059514237071971790089797097104115400933989512780384751203949178244454384867409665955956617982117009887616928559709827936460696336609589110204814255932816602474389843727369296922005012501685152906746424477581978747905831398545045617775054328912623379217403212288599768265555608452047498999935795614959121362328772067320619652410761049811590602844278867114697579579158486351135488291288676503069481061811077157184849486136625344163664460276424357882178108853478758059529308405282027034723472642462326884307983785611469248186369819555015730668287143693930715366881840324288981114541276137236093776041743856458274175879227633793934541308794289636992466495028541964963561642014099192432080386625542651228622912554204982084557236157002385181817679109581798935242240388901047092598388351103275653610089195272679034702078849700845071385180694940928882072078869361709247371694101956229697461016255864253899599099917935406740721000172077003305676594264199175233745642734096005558042428847089455945709139038710775776435247247152963632213836382103504659932881365537162456844945720393821300127120380503034620728766902290902498906946650568338179221602571327432842279546361222231759775140514489586964598546787057977408281352469132847866347025289277344675069667747641096067464577621895045692704228844536399489990081640614170411314758085222572931013695071803316493915809517822223216666077408218114312636907974094874344514278979080637184157773183115135070775066580025097887917059332561260320708170239540169647906996861915697984367402083565097573446112135824927145029750107747728503600372501135313036584948346893702153394526052018873382145806898867479747227743032267610946389434226368139222599746245033363828351101925696707057349225725841833056829733063258633386932173940454221184174334174544923792227920575428173410624504473801363273708553359928231309520686155821049950215211771451591713109861897931980702421689003153209862198601866328946908322564479695651930646797997806105309757959487149913944813987503588813342721657339839762204246593964555536532308638628937720755445206889993799801459369264892621267048374762112422301050765434774478787030109946547814920242654653945838543067433588974156481984168007046028150072416514794483338578998631975391054855886300070196859581147742745640811594776501499681164624466660629648631606670556833511039330814576626617411602027980986782355445248959295107860009645557508891739110505819233997455930574187462130792113508510781030342647522595735078129384028490164801567428645493711415544470764055004484853526219738765994723144382165784398587620398927454924500839490011599532229242643612235243787435043472231248326729556644766915331994615882817471449772759021917654793874567781058442680597339523703870960435350893368894738517736509218747228091488608496204189679541421592405372589090726352584156084670846991682242828881764143833565593217361283196664755629933790347914336845862570207123045029823931111011040123644458276880069353788286475187884230587567375158144137926390445653629040171502047277655300073769725702507369632345257229268037103371980150735586371953976750873286514983374782350547683776502733125684293448750521356087819581753580859264359674131132403199202419175109867965732317334002526273426008315422145165417240253901822095392443118897062613275311131489950990636233682194379219005400083840904171233447941444720201938117520547431149828651912443454395213852866675351550220397211102065313026940566667598627016006004079322981916892568829470743924675943982650390850233319177230153582016828633701823189222381337810733588399814052652225187852882205613440439262065652800778360319154326741159155282768200100301974643596590696840841025122478087707447921237140602990314623315475147567953357460723591853565925326813816114548489828545091354034495677097153162390893763186202497850160083278758452911867560546557216498956869159928258151025586568966346117058491272860297046497300709485518792940008001837087323168941708435334113978621028461153584881995765349286208303197107516462470219900079898012135453208106446126820821950886381070538325151526670858668644842670271214992962158544571119914020078095202476839053459811086495647015477454121086130147272725367343124041996674882380994824279819935665342361085116990427039155572318485881438814356327065949719272576332032549213564193832246764526123264480443991118465282517405518633849793180561256527719102557130322509679214745945741478031950615489391001197397003511810964367600491183747046091143562161014238842640772659459158169920996516128657418337728682863980783802038198327955503014301153598781618119234334656299459294469751080395321544264606692667291772322667050663829604325513860616471716555971115122147298882327447666991509110673307751340318909538945751679168273443274154790361460781747931382960456440033751156255535829256091053190792627856177309069919484602955883596186715611742712117698919358445963073054824135806631346267778095414144565455545488600018359564090599553112714093137493190799222424134293386204429968387668794261838562992840973537855657789121203058971895170871058985070094184697255516530069175106469657116151384630433644815051720682312792360878176377710325030539183486983476613521992967314094040784787511129158404799539394794942941481467811758674831492116753822319890396334775487438419615090321202634508313548254436642216329785090758080528736388400366453738231705228197654450257041042464179043181509449603685710713406899422005629596854282130085107671797542109764654504590805468376418388539180380254047773661562646795753563368616329243092911600873180215702930375345509524688914662005592264865437476944929941416387675487215950499557311033467217762541218991877928922352189229398080132203018148426498714441189374781965859605506985483162475066576017721130630074602415614248932446650322783576248502857659122093294330257925434793996390741586306421929320086053777060989975699700390389904130950911670243758149506414079969957591756369399905033539296240412958505948649569068599133465080313142432831033285482922210290568112345932901990422054302645145750403189751161397624677125463340481257407425039485032760306392777660641328640453500843503285458031379922426081684474144799305061391176711423482354520599680517640171571183895398431854322097488755559557462274793562810931987884589728955832599400553162229732393187283972700276665323048480631176074310419687149932239393732269274655982469736411472311989715593544415292138061930047082880476010862370857999742144723361583375028645961659215845160172289097744108376865019148255225047010695456203385855214433613494232630920500394430578690599668201434760840035109306832707463845288561006472686870904016513305586676653099129527822768377433264376325304580321229349465508802795130953939554148912116524698984968794128431511304658621639545689442513537380329853513954471590964505158368639654484940291056081333944996468650971264169613204705754532607337738508704090782060513955082980552850219784343015219420443050870847772997085177289797072118879126940207641426373124620039371674233587197068738798193720268451709049449811214813284517770882020735598497297966846650823108357028715058944879776834107562276599215028814600528656984146925243689642234120380780279936294153439817794195332484772692248148439604246977690754499665869155654333436069891751364957401240429738922493662020692813196769867875896412087143631492468954298105934385616560039095857627847689663132880890319047559459954906221624818818931291435637865654954144362432849731549344859889774361502451287259245365384414238763817409115686984571064127595099867456447873983571319830180966210994011380008705225422586619690662573847486011612831237993608041002282148596576235872322014559616972126553422560602453748926910912397522833088559491535056687220971274072073513533849663290298104503545047183127493563095640922770174065784627876397421920793634332177545242644128087709382105276397724007737229192709344404558900747566075517302156235193448175827188538391830232824878214411835646467056388600860086951391968743836601573684076085851309403545252828906934396126024993014405888589408467457337826740609392687311206870868217416792761221791013125642214536976714488459628988888097252221539103845736070974454535454933712761133294033584988293147550597786576952670667835871564859278175756413970587497681309771921065122518851112140195871359437514679675134863536837026777990273484500650804747589725198329633574062776085904267033846715472419337458808273052653452077895314289134243893395263234156162423162977455331926976754554047385443312580493457960441014364221802563384670624158840466672624107100223109885207411115772800355401272230274724970907051832486953038177402227125727289422320117088643280259090062802864279187412866188316616949279537210743096845492826265987151436098552123157415490204174412390879585690551737066559374075085300300293436201049493023829538086980087041365574274835323248551311223543124182263900123091216084362483078087329286528207023119744651618412099083269867935812684536619606683065560657483172160293695837061946774652903531588919195377305460591293885774232025989618586806651292733761706676756683776099324809819569776926167795493297187530905380073743779879950305106778420233305481191844270592743593618471858908261074403138510748131983762729066596431112524313722213615135227691619530843221671909633647253974347089328473523594291475848403195664772771978408157721616814619900907572967435295748870066785951108293213500378238221700439009364151684311879565728191913840626350908440615550327941226538288147473497398143497311204054332087639395554694309259988272456590773570344699813800078375805820285252619091342268682320913867564679372039046671427299510302535733337881025762980485474422224518785816832943954943797984916317516335023131990072442106127051147286695862686731336445540097905634798363189298174613500594701156933650758828979714367267025570603632314751174493117140456183413705387169432405311861641564772946921575560666434896152916429903847717442660428182184148562321513424289602115846472472928433207711271049191102436048848246231187645309963246586767467904316558434022628917430574216929589029023253994523623939470579767028579766000696424368283459399858121150228282253592842818980055513555931725984420491483738087678886346719459522109628249768880140979514893175697848677361772278955308172232785876112223402145028428351612090459674171536606349634823189667346049347581811196316010021900037639747363007774054670795711543442647145410735591109234323589759073265821552500314827875774166867719009909830362033039358367105682661470023319441733594864654161113835545255538688369970021342949088093234198976530906054676620318524745468217422902234807284724481991720756919502052144379573477394103732800523088706635773704548123540086819913508323859857201590641925049269275952061088421261135109805765866917596431285618217903055448252320559928019079858564323351854058720995047345333406934274067729770770247454937636501898021787882916933162010549057540197914078952256907074445394370528998346482705685354766837990907526479591027904420470698818847793671204766557886566021089367336531254236003646794835024403258488807461547641253376168410392829743319430908320578703073511638657791660569326843644287222759582547183761127104257337794884879425593424009537352542908803292779581472522618313813860626322126487633653741253910939233553006480335313113331159941719354027422001959917718336889177957317563132783172538692634819742656098058787694604863834820460512104596223555293533759280621393425078301724623199650049910826184511263452559457995545122839446872514657604276002138770519448108559871058180137172360584510167385405166109854942032687797941400562506440142665905135801474677285655001249490430127680927065079971268581131853561061308098217864448333329215821174976793529047967977100329401886090326935320638074856654295144281857832793747306528745085991127589675055397453710747870984097956205938923838661544995569570740973139864747686960675898346112001541265633769565322073053850434066208330470353282369957740433688474290144190706865993513166360482062823565013532550164303939573251471840197290879264213884639362681875387116230938716109898700880985146112878635184535131784662565033695326710058308533383432616840254902295756987760528357602203077929288737957538346201160218085954170894172002007875994400530798161121322139710178926704224015769453459095902892883325257711599364536214275864144609333112702153497362335793235843389615257310237748239046482625642652648561057590411707014060329468992461767981526992123291311362232630913377937951768774233948836607911755879213558766604280117032547102168109283703165955168638991262779574682787217704481720720944612962360267310614013685028508828403686133395367262839788213679784352886033029326481531748435439811160313695622482027051166068390137744001327206860664695421425333380724772007652985000161351731451317764280842679883023440802827304894995376268660132000069343272012863220986966352555356516916904263888165450200954576159257785092804583521992116509263177134515183352671190320816327610420997056271014725819740646950910124753769512796276323699423276261252998557576900314689078542711360362914194631873574662213410303738779887623288589356834183843487304223620663429744624375678329493611862834708846391256936650967012446320581903037041441191188816508718877222058245024255847625691610608855468472987622395479416034895707740615198458923318908899471424034758369577058472172590337274662694554375638422759399921244389660566605475020562908086719813789531705593690265963813296243310720737150957826200612813807012503802582322210756783156379166727250430504290396712577011131280034149227517246173153400493419530913449580562325546864911349152625047066100827077747274289366392768931324476864043783984653922759684342964842031983865478368587510527219754585853048763050707348374521388228117218120713144264202479547566521120520941342727714297044950115494965970064728175339053207741257907150120567310170480608327852054299912074850004840931953545411474127353356936407997857883964501129122781184502588660800440113040679597524638247289159535818254854857377025995570267461041777404174943541946863043529022693116088506965943141512159580060172396822426913609989571837141330953954040359831223798856689024768917880617507164012726054762665623970278292543593407178899215505643470765204618924100473995912764343579450589513859239691021390305255233059749503703230768120266527413771791307228532220666214876976106513725625944531467383248605179221076069501667916622495862227986257649167361802857860479927868323654688677192903039772785453066722575896853538375242800224709645064956549784275899232651838818974796070456181444497913922047597738560716170141788587529915247661234958560376121776595157491908282237638700238341205394308605080595129058193271753962697576625585470417523214397517356552256221742070047528202001391096658545243626566255503047116393848761711166382371451730254630519481419790796152267770116245571123553727323487367616049833193481871337539496033815616954635005321094931588368927193029077849962877039329895268147299285371010833474103281039789971359109400110700961885069352592619202144716188498883871454285227169980393595086720906572558474052205001976412352880756163697426815881421610650099585576462739807482917255034487673382429402076521697814992173149042139273186747698835594141411853581263406062243905898520299042674651981483970314654478947927485169757122161682809916565690861681774229101245499685326677339024059455485504902412353046167067575254814106201480644524327740001319024924769244056125843303126899822972051285679307024582632688295581947003010505342569355027049841420475833204339096971739506072447822402022249857573207755016844328519915128292886984543471532268628993815399423397063470100738493400329543400187987682243962460511641844282252988635417875167415798566653329858463925571767510809101276535256400489393875631643681524794757468233014272071122795747071807159204926274936216428935603536181726032666549047959380929004249015999685656795662979347672740690055758550252292231068698932923100414264260491398783875404416197987958122664269272685015974678233633133357709322582789540487569200066027897959723712094013468755594384036909224913566890344321018091158119761320159949272895809237185023614344102068317296169758024958808329780591813126158536257077033057656725861597247445545785493695699888800240302055122877521696903239371095625100753666373301105928216956884907771056985524389089366500461601103460611088289974460857671432657997886829289376724967409883474319538127201322231890826802808388226270905301761316087037834072087426995589644862470641404399617807879831558857908741760458280320805160335069852285966960567154811170447952089100828239583419880203432676972514982668787870410578099749586333345667264480331967044225759140422750367080838119185497888504064271592378184774063031791134306109675174310900821553278370233608118398253368396319079643729426416668620268600895892857186657157534779472334389566885138967558348695884757809869856888296806612307064989613592954186909838946057233016409312699969045704275961973274641333128776793001310320793146823874024789987714125629289312531308138673198844868342997308823874222253967373790381446112539735903488054301617811478305649384339707445442800527541873777121564015583479539566523874523092285749208060591931308712901608772746738868913163418955274161466034458874065592618171285770882103307619129989985796226821819252953205239555090420036290214679801848608417240559145530262692637542595326860819658824484096724949088103541522654551080321560030399886920888726244007983390084296103399971764439684837428257930306927999221041168847009567276954739453621209467368407375513749720970616244440548003520419264735506697192581231673349064263774167068460201473803255868750010579642793398062712615704749797357887936765674667573731760459543970261538763458468409860390043686960947544967469786363564328365007695238083661575558382711390955663217733481979272415906321804793404537394915743201699700778515864637714252710909545646800933456164504371607011867668165525952036615431024924126475221941963681466779056729191570146672400868730549417310970136939796851992629994577160986263080958680934085925056018762707265884760260474332356424314549397364243950952674469059628622310918888802680832998008900319553336905009499721472260067876994672561733411487838232552185729814595818112373254593455933084746783747514542614643131438765308135262340365617921720936145314497111617957587889653679668863926304811432851511079494802915032667795686681217188551617959070630382998014299983297261315775508912717836342159012546264274878349498132210372872382581413069446999470219058764006734152249286955628120398472132206667967880976250617781955345361232717274973365673543958675331997472574583122489358843377797278927121343724155922859273801532627247200189164217025095402078156046974647791831443074608010784409225738977419957300700549336719821155504352569597292156474802667830286235481520406979657230697652777776457309842019986240324768157674010736474958317204019310436278585340896579819067460419444588799752383643730903230205437436885286315554068763627636492042835469288601083084839085602510466480559210742326322156577812251447467561985853729914677840435718315884903484965639956566717708043320830142356315518098545987094528883983596201347004198529400413179300536126405012153322859388314894217417225536560994355960151668783337291513091877053015301486883350814686556554043930674972572913375773933608011022041719684872113398527337801796003530759451984367455623418682322597380831917308785595114523183167583513465138341835328261602531673760518850991778199609576212466166249943549740827242924670292027490458403196064904128926335750563495298666795834919119838109660936379247589811094106992593127543539705408860723482876024553174421732018030729959907268857647718237343750707404985056564127039335323368402000872016536733962447271014654114437113361521543108983883747853137857442129342275478513597857496150691368413213212748942260236667827350358459329129189101928731520902507334182351416309228117231056213810890472518946553848715513667298244981300951353619697704210591477562633714556187823603456720146508753024874128067877082848383734805209307868591618755058418814231479748666450617783712425617776935187975849145775042728762253344914612835300258025781039106441047410959602846936365049000353179138418985943116446257793720042236189667146980057551374361077477405198287070081035179979400398851423727336309806483573317247223384577707919459138559797838291778464309852622802854150968380125878965335743346636475503848395079352471573398502888933977411894938289760453865457541592098460264376262353518529561300135125724507689198436254147144617786778265058800828645421521522299670849064165106123024632950289098362208923065619806009437591145884196379396668694726116604062945571208410838754104757220495557801869667122225762895567355888505564442623362500715772165676363959338305105965000610856354311814789049791858970810092774836816043722014014674136570591193205959781779911639447368182290342941605712988723240137308121521443985241235584212158378475736443418791356151403709090755986284980574446484135505315924493755820374175258081175731274971043799430960225674369096229075792540628289810718803079444277370254283513056249044066746373402933189120522742405145869832207725780005034089194171304364774072360942029826934769661705877385103092168669575181501633816017007479728982188091700480939608979943462956515269223793992300775258488854696094749888918150820898888338050694260068958588925462562192623313079536682524122231823478529010943426687814829768567278186710702696357074122224109294037589002141554674103452050508441218526472471694186139489875561078336339692230578377421268685552909561101338836085348162795290645132938776071172658807255102763166632439467769910828674809404285923143811291452346314433893388076228090871609058207207902362399880992599884878058717932254404515885789354809401822166220060624086689108355087247102054510015044179040517869727428219420809442522410250709688202704970708055731613933876847878685175055270120561271126552897989728863534755881256827725053901948491305396692352993714970395825704263792056875025111627263646580353844982232426799734294919949985317036714634706680642270291676946165045770480755532351574526685514117040437241855201952223792662647802868261249411785349560445167134685398095144636900075725146968927979361724555652726476986808073075908813032430301975191052278529741129069298111902419625082158744557545967877300114591074514106719458732273556259144024903832765696999470665812042758059271856652428922859838028608825516552951910349373554990972208180796647177228117367759504281581603859846215038359647832184304157255186208605932351312825480902476379724922524872207923823012779910369489443391082670138435647703041843642412093425442577635101567904872862575951763687332256635872989469475121093266746789910056621228128887899533652579259895281962436200358161186105765898477294709891530693227236773507445164756684346892439097571779266650031537414263025682091176353993180282907637750821109932117140257954991947716834114042988379399818153584298640336700733547308145399965461614882418945014305792461734249563591302654328561202680032901059465250802631173149262374214941248231437006759614150812776150667008134806481216907164225698199615733510967733384720492701126516451856182456723163754948581551724067351395079285748291402175515995975745524461577060571677124962635772677634886430884630034361479123695899863382618633381178013331483436052091680596937595246127825512989335141550148317073730139405752126438021002500668692550953283754942172501980803376193055689143679240102947578011322450880721072715724406157235757852130641686691983347822306629367245320185033655722529132397429648566000020186808142161286283367958374195383890517410539856495003794526374991763418201284292663405590192424998139174512995561036560899900416499869294178589189175232378212169808005271691602094242463598254626017269697845758404374358127661242933078357897242232651999107917257626018410824148595129212859762746856113381839753399013138860492393431597507029280871211802677810053380201277225269832250762072329120578524790830881130247397591874992339793032242686162344937567756963011879467396594797044852085149961031046989067037701781340679228886477068621212431133589956861312096842545061822375708275627314602364473476681474701697731723946769803588822997194145383623495443738700253430094490057903805538329265150378819237751813842141974400708724339822019674625250088962767406385564265879667354686542343140464123115145270469332853090773502728333611804769073605869310360908195722954637767154244498706124904721987987732641798202666070746076259361353279423093561131338003700975549860144079647975947759242115769257739555367186353148186191533821169703416267875253883148386153641107935899733731172045135872247904977018737406084044849616166651016848789415635303906548067837831376666098418470798226107414397964094452799692423742815180651761820772404214501659863635075126439165688988067420397704876385167398667831640418982597237214171667439140491484853763366273063070930098553593998141078053684354839933609986338296768677510804775512435213537409544246860576222652084348880166320870291584236841218225613265507407377362756580140865911166292377888974008540479653793939428700498606431345860809081486872271958861173577627233390056227130552098076249141976899567047297804183771664903006262144568716190835512184376628059069564064293104363281758667644309655660586338366244234174888888235114391947011487111710416278869313630187621994094349443177144556276527914747039439581116638998109384182728229105478407528802737794395113782184695952241421333561305288248471946111822200510782707537951120527762964792002993455306920267916860692236101518716080645290689557658714004104376068191224357722327247229739299393098518885941213168876976739252741602214269459143218533819745938768924043436265044730880157091126943831304757585029771100742587192393606356887139810168669294962353157238875393613228865390813501874072031216091256434088536073337547345758768712039557020018031343340659270866973892077705674245398324142707677526363993405717313652735959321856989898847594016667126662034547093693243368764884604250449333154762761836820966267153824416407965973862748616098843396719410606243762571438355192021335586689311402454071545322149780458984149955994539859744166270211292468647471330051455536508500742070156791141843383638718419086341253174539612290508018941632482777603406319634996147163112244440621268112572767326963004083168160736431658505697846093425821778297832972953416889867702380443256044946749593969171659965459262133036138694921350621600969718347289708935343528635215365246114168563937597342233271276030782760686523875191912745930019108892096590168816399265619812159637272780130252762481692399740434468641025683866367893477616013335572682184973509650528266163541506814386824488221711906473167645584354119046491987494288841678071614905889261563325259981001010540737983229347051008955310336011820315722068970557231189178458244290060892023301614698305152420516824695399715492435488904047818989985085273659154076256675090992725289964160505332883647319910661345820115366228424728710690068261102528586768543617787598891170486439363983802610470043740295371503075799512516433476098006767528326879187868581577309976446274782434612959257266402859053321932862677742730537555763384700642892046779132664157787667562346297917182322372588777282224793283482438357431695906581580679923108117169296333156967835045085148575335616856472427356280626021751818437601441749746908622241048123300334763032037639902803899044439379438429157946336326996006751465229907481851611880724345021290711020678948194066162825396196960532680772170946919359867928727679768453233878689558827450415292851022407187010654619196821654078702200842401932015933796976465143527566128778746493465196762536787796735876081373021408665144316614814474144687703061009074464197370419249081545282360987003922656749108079355713129535166018576450629787940416576537116261123118101419614979439534939372892518970752676050677165869423650681376643859329770922528779798488076543838711432361543979665148709247306889583466214367793174867477712077957151291522683383883584860145273793722354572709395462542411439734984043587602487331699061590922348964786021879646857168813672324250507981117418457557555698405903127904959702114348489393753039198121045030215509661285029318192117926039463866443376866785677434815241857062141433430694919689649867680815362632545194665546211467796528594023256091424193470232455513478182144196823321895606975836043105106391633147770164589376444048427714341870803445947011762458709571644805605634982314992200026785546541267510551082797325104074467632971658082047451746064164328904020537543155934529819308829313804324069361544969551980477211676820318396126727286259499756398439922178800266796911894236141165501677400415365310144074553192176402153281652970831334147260356266560199402164040328027303116836011442555196633182948902003487437817866036127958807233073625632490401203596531805557574841094912703982289922449845986033811147874323169427832482414354575606810820236047655048440245639857248324039886880404551127564850892134890910867355222034158329614800449512300127396166181681509625651760698994524219017664619150826418836526477616403992701836886495045215347077075682982522174276338785860342333469581915096947217561603105590912454207370936921902219638739764366447162448543522548851147583193572672067904764959481432786757371479097492494448371698708686751475022283538214846635649793474052107863529697995929675289321374436865960272589764359805427960311517483568075819417014852856815824445298937156599806700092646136299669793450416540360502897250748258726531958595074587821877945291205045295678209716557491986921047172524587329204251155815308895163264158589650436807814554326107204719739774409763666205334573889874629388749423740033875514979469388244836890481041021075575675962368241187920255021052335913049725161798443352304617633933330900054536272988620836281900385205226781180172117830126939629294203727615197201277712240919607400830094574966169886439247492014126656826734923848029293843729332096730810837241588699620265320300747632484848511384243702137704848103161359342847701867834423564812615227223162706814599636478347779494495449338617939658484163847973743808557729237372269071879405383107587305611101785421595135395820875798167057259837497272593498949639890028429424486501249827042110321075190966246464139832610386560877952538321227389980647402308985214434511923590936094185547113088492691458203822972825124708366980494473560999185835406498108188904848968929030584406505177035993823975844311912805978669584924862324092386513304225657589802473690937428432062330423571588063200996955425863138460578041189957570895619749307758961051986032703185009542338333915631684221655822084000947797850910215861209476256318412631558692817309356708843247599965431695988990489525742620066921384023529469341339075667350353603149295187429791360946524083089356199094600743760282044082074577352403878169123917672083428459884430649716834045548209230933076283998912954513440796921528068470445513695017758026241364443056427644269319558803733910763364010657392962970629415157919325306555492472998036708264942199815739751929480885514179632511078568331296123166523135026387837279279306727317032230396993257543174236514908133414951258648855158482678021464798751032927325147021270611211778596879402666787175100038549652774427045867162927929236998771100512797089239764474699858736496018873202531734223201656097018958085123887767236200237410567297206322130868601308906653433601347394909893874927999774636511758998347698120449167129375709732014800347045297081594758372127993272706795985431928668244704297315921758344071868658430021869133301143810672014199010544214462478066596053308067491779186828794507011478914929374380920765841417538370750652411132320511347310080790036198049453840095185703026870626613819698161034015993550387821647561342693167220922900619013642126600724113283686486990298476148854222230649075376870979708549312230341051352937864935964592424992663545294959768229415451606940638959190410598508589823814970573752859971260537617172706680239709067357911663333038364978821625514092003558138307087359450288177118467083999679690933375564685191784266785662818253944806699686153167237735864522420779675420356084022799823513026016061838475298410114392746127408211125545608834463311308635404435838826054097913951032958002376919486466105326355337626635326604391512161153368812233667680348790097458659023492306937303201003593056029915811030101716686756556128628390813154922729788439588704878620945299229508144532736697726464932722249085191261917878568340625188646767763811343628784454790202138898202364689638181160030491126252607900927687489313192055082136525746321834764280712793179267757219471112438583655285822769941304403961090463176935933192530689154797994510053975431513057949347073335737267835528712997144475239262616635713544288171859575704354371925063840071925410381403030196363070920240056098147607349772024051906815242054564850419705628480822859469975027915558108827229334740068867636114182239034855832098534044227369795191117863562724520740210335734150988265448246085295767826761386766269051550948138133938217887284700176206710699042583246371428062818840791190863438139022000945112155829520249402237964728614558496967853108133524666328035245909808268481816464638025695280814892237286201010569836650316000427457836603235998513537657019803425114572998548510612174233785078385046501657897531444525428717715402037987457042496433301796022713782631164657406323945051807610648349226863346773550433755518781917121163384018320508954563097686677412368082079455559255033296079804702429961808306097778499954381824317076701246254471808287302726402893805126460268430515709480982729954652273203584436220388112903416015579818428717809758546768894136003692699015732060043529177907732728587725413270269759442797708719143936469787372125883982701374431608364362649738550966452652804525128244451077942485699564095629781627812456353675833199106253822590100544032266492252255098010667058670230856454930035045832778844222440068865161764718713583009107611972485174015514373924641077747564190586786996674929264444248172859844096790404150956002349486344441587187822795615315843112315956613811918826031563270195464094188103249745052666983089581444519293101678425838009662934488890961864257219354815600017054246668678161361637646199817500306151825692428922430353906763924774306911688556962663043459284502942132788852553553564658196518992485750621808965982733809007701507605252362703685740305564778367790041044836551507829910257303145097759365560451776971995019997802740762749612415747476142489626307181973093804549122599997454827904186482128294745607933893484392568652392091040294157311486643710770127773928936860560036003073642162702242673061809478007970707640782516265559340294375764672445346926838899806221806797357822266270545843925583764096707836758948871095553555646476013084717888345374597792161700912109802705484862168436750132550976317296379695255610822449141972436155942235165395632590898057359916454438834981693076237065724681948347320787374234155077586702438174638949212504933183899733923994197319171149713043793655468215602391238654018644051094806355719042489112844785837518021849019168533156147948947450558624401065245798394152873574160440141530874175379046782962796129857210495703675684620607858777164258822554960899425187996381175596663243955535898944460921587759856051925087341320919823120661549925773833259133039931633994365514224892540199178074555742917195730146424529224385302985783816089569574584364173928158307719998503876030990670123907200165254807854290646887766156597278338673739658110838094904869850459041787756147127438378106491493608421437093925083397455291825011413579222618297147820641336983088562249853413401971008606137628767750340170182260007656978933726095749718667271777564776101272291168094671157617334396286799441780448864639034746692939587802502576136441159653938217248159966580545122169526989432053793116571291874691907484937200718764294523954871599524371333925457063858073722054236003605285955179378947405173537084744885589989743574479632711452387911428045782369006146280875014235931264473803641242923250592847486975777314904442465601003685698716977932542660955565292447130700933064004650380374595175912453796324478389492202473563460149909959773159835050458452144263680415602046088727020822864498956308479415485843430898830288081321209130468984207032923895305233324312507534048536117669116955238388344734556674475006224663119743371664148122257539821849515521233264539016759226289104083638924521591279660623423232678956206997286469895586846981975711808224207272478461892784598282001344388292732334469102108115948657101957675575405050100540914564294530476837451380093667731161919450898271140012080402996156473098831615435525290568994524958451932457646475132755244320141772837335365564951915198309972413420787426336362428309535960771738380110956775776442715798459977668648386134168248679607411624170031564188068551000711664631860818920541849434948737241219738612748169775920093932323924497950303800029369624383367305559528172421270547414726312918439697029463347024830516598118475934541526201451097693579115133048819680593500361314320172325651035656508878756186209965061319424193593694891788588861166383147691921156345120798864305039406966307876940137263000450010640453016321777864169782320784283799470682500400042766928802254761851702379138345247635440133279084727763039964539324721406143357392642947284006984954716645015600572931955426836419672151583796682250537810360040529399985923662613062690447679618021920431101942034126383579781368664532931624882964583325660191977372043310764767485429804876371673759240343844445111377789866610277379843065620608591721279124221632803542563106680118535112549963285850608822979948842105647359551171000544883632682922234964823601588564921107550158715634986186563267170601539601692518056568287160795557540965151918356036082181608611044622450602760654195763575100066001894505043069374152566517019201002806207318788485984093729282066577583001572200604451638877266405511533236382362911148679802507765001848323269096492047348945285299168670180528403027627630509904692206910583622525380629627060503663132998609432407380864872976459697246311817479801836985862346134488167528296326021227856413358620597858210148084242038403229335864516316134946926574782178002563522890160677309636807223250896798921165757380764094168823769312330136608375648417079619045887641142090977815259017311899509019978597318054905750809811177506836230940182653168536251959027032198107966540487930371226752463542931521736970820720770709282031301640982851209918179447018097299950058233366867349476855749030323501289881569223340991768504466842615017609027379843305071186359621415362649078011859028582817251645564652665980581695777728001489368886604863037650551616162719994569598652513407211811376970312292164884561276249934315464717169871315070226538969009814041813817834047533681896411216379072226508982349968595775490232862930125829855589785495869777373406555782111958095603343268618765921042130522276911494042922372822655743780492487127337213064842720906263712463851785561059554497653072862791819963860573989332228094499995627884027602491329533051368377559172143937425009197400216910027780702804592369777925708317715669804468751517867098524167614464375003413336886473492386988098911600890424633602806834687764843956151054212755098860743906635130960960595896837283567948567116091435511983249139236721191786209625206646067298546363021965823182342447405028251080579030707275271865032355735837111858424667490410010066175327014559765731989335277667590379383466166406357181747633423423243792750580747047606820829054273273694878180933037203412134601764434720270656916102026325598156640231960063904572374005103781348812971485920139406259546302311678117368423393419291669311578722966989554740760552239706675980702487008161274025763624031323345014591097004629681377929672399596442436866675518368622153755465384014506875333738652514743468961566643251002641354551679570994947125309004984873009801179717951149831042732296886786634600397490196680983494094576699012225943430577025696563824214284501216258343004351050811715680532937460768092164494146402726930388214995354464807151123385868750032542240919574169658687247643262236026616998766812961682320505544208665046771392437626535125743616902794338790156143844442524922813904703542269320411009062045589447021609826149520737752975279063096044909974483477060710798662387229744081070657537544636562899288770450768640958985337223377426321750155257674976801348534428183705097191478065136698523867443325671136313349833913705347713701657289636847468812617138169445810671402581304914520421849244167421700510672042546852043196576358898325075362515802322327767863892322166797928530501838828214556533005376947874095299475107006291106325946796919101450184086378187579419752042348033257068864902093278851103037459815895819472489856126498262673962394775475967990685402193325781912091547330292419093991378120131006832521557383760486823750557539522970443338235726634164020962674055410825011934867453545208846319398178265812937588836291136020969729343985600277920046857701533835360970884594049700681035168424323820053039903887916491082680232732359302179807375983492173734954512248942146735051447640427946449407299096899876434452668935327945685615637774142926446425808515552351010110282835464523099024541996784100571550261483007118505650764300581787326509001158133679521808536873823800951285064028438939968133425344273378755177826687687715915938043010594178496159505487830638848767265258057354380129751699028636093852374113234875537874231871857310139981495913991516368608309258024766199833189599610001402729049244832884532567774044264250351785637702139885514664440045650435086152878643406874915794909063777582303729414965739242629017529819261857805829740237645216490134494905719014349978879238880821468336113621246767201337285641962982280224316828835218322200065577754569034866661326681022965744713151826316627628538977880670483935244706524989777239669167858968054505703312967614245303613864984238063179310659444054835514788627789696513979344412670376757462989422324147705988023410958128991018283742587654482874132621855109160292989661423462052685210186489683472399946771205155905615789191025768640553399861093490892755134970462434440058874978553963564500818120587580431081365687849078173114975389610514321986476967492104554404409048121852549135516278934018102014097663276918438907574800607406833242437048814607758931515045418398727864159206195337507790607942902653786558013827560957946430883348331282969531031429669320647760127353831810607672248825359434280143986054583015759901505509185024045771346330157271091715120034285549189983728242488842461606081033826808770384690379849655580494214262150711584512897256890016891683230718470744989017408969171289539182980170564235396980885251101632156831324709196337242698549292165025981340446403223942596649540900907902322135537196613462134610114749811052295769419479304859694395005412914261150980857419471794355648331806380459167682880067805226986382323695149311545345965468932898922797611562119861331162118377931653889545971578457267858078573154226651934446807914150303526071916919412985869108899226070254890720705151109249802733818184297997302394626944597237079581269564148495761365335964938633558315428954553643479732769908892830048531564242106187528473437441022553669141115753259899015545848294798805378553685638708781980883453020106309702129822501713458563698044048809096929207208903977666041279355168725521860555002104205579988109992983107217585518646077001093070997426961773924988968741633845207844638541485740224147118998938390362853043738959782391296691949103611905367679978819666631294391872786455284162666060327932799342856351164712408716440174281372255514352445917499739081539842614973837628832192929987832357317256313732474994254308974805772308425886889690555138397170188856212414930370900442455164770848920443994336774318445222849972583193318484861213474678826905246418068087212563525657669435888665678759729385339787158536657914847663342037728404403860954425573057070307702182427066161942849426714064936953375615929154537903471204140189110969429397731183364910573768867270522276796240514844076281587598809303698088579135546103255791081714101209934906880926969704528541841242386481140338362016950084313990420825130860027877441607061829141367465078781960149064811197093251515380306155315397191546562226287727989929766766650189776530925492719512695241544690959701674696503734868929859711046853893901054513115949884888780263961985662701093150619868015815286824500923890525912935738993113332613691291776456548632444797645668746871908117202949783300601065532430867066050381780159334417397476290022631555709719012231401124877552674942468523551220065823187499699694762160258879311199911874577097238375203111585667701787470659176718354672364364574636127855983006185196977452580903015650203679505146545237087137098163765888214086480967481014121047719734858947363814173726176721952374645012587039077578872732567050547335671113404687517849302765168405816830610668831269826098984318130563548124957273658628160906743843583189260091152979320856582986142429767630483133779985429404003333769523247360294576961970574002023297604541788089808082275949885128811458264695772733948207091764555435991694724779034477531973494698819783464157319364095645372758978437621129356245085157172859314926251110138904551371752417987780342852462770076428658434258843470757969843269412556700008873699724334850025390177174423674839266812667963942926988553598213770536972795046457074999641217115906897893537899352635316274564949906085823961548884372481995116180406363987907166599371807278748797162738156596067488931505045245680532400659478283452819738521614508415920437760922277857042807670255296913869096403216203394115267883550798040332578449879547747718878886187417613893936996756744323240315705135711610547878271860722800351095312954414308525016789789992748478056661961336653863681449550022954463774052225809669761863313715310964028900123504177287019611239695988523574418442884844261379471283192772911588411140669469941497207734399145864731250444691705799854517913258773681079867938950505150327838116983796915897265632501466646973653900291354455041298023629624688652852398123922811815293018729621077139936754919075493533951272185365436774888750801560251567701612912289152938415186717956055830346669584405334213948672302695618081750557218856061283829358739651906177544544327011642259638757299552526829910560297707797573537064402565322576171953489588609423959430124746467960145391103669261807068181532533211163960150138163589527118969835390300242983718973840031958143902875518807512831041709662117965401008098656877248467865893131621467437447544062359000022828874420081273246975095409253423055010593661594553389925862829501075010667849100572017317319996024219806464096966809220290373475298447616727642989595656973334094827235536171932365341107505518680197844646703418481743311118051904196213191217933853070300707047471472448466379864554728262209165067089910532259390616333815063363282828122819867811989399840124005231150172173472673326592726765123152330996132285057111407094402253958012491723402097235627562187345654023523252317984300176171658695029758284933170746496034983021608107918271949431715590082503051566919635347538346833848626789273739331475993698627646161692089368827915432766411571444237552947423627294697538654402504562176290020945324254871080062296670916821645199328859130842414518242921949646152038251986629830216190090799094586078481061810287061913408782856633298096158067000185896399674890267373971184374430135676674575769483095397891533417757597232013973223547800716184343889713006910048563098337359063581371073931861866715304944701412725671057085801703935479217543371315707530494985597290155762025838196160949069997854198574350937648013756185087211353444648272615735106457829186834529597152670183042483723191499019317272958467547887739835452421491654501490496230676756714172713261577289397420180817938537075184305203898574646097539441294699940021402229668612340239780720749948339394227526662906544380832541876659835623692304093415988090180508830000095772611133948738461817828432623462054677293039648393123969066350993844061754135220484515451737330422468444167528057873464380541043917761770819166060481001642803222397389612450325721701189803053264491720365532532098103003006571640628724770066348347950720357933272225234276730805127425953495444388802824592166420809502164974536592099423409331659023916469666398619559082032719487425069761665881432094501927724783535393129437358979486928715316569196202819168157590716572843616684614844105164551553518404055867232011170489432702797392361492597082129731706292745147509908459975385856065325528634799927404553945282324784587748095378023260336782405080732253445587983208879350614213900513190441219329385397056366956206022381707577862661765321149666832457214755975413575596667563103088810398078052345106859978944574991512344894263963531476212218690681276802738954489523971471498172099418224165062071514275296223375577977883099796985937641867036813060514493214851439682002654241868052844868892698071272200997878967988831777635264174114787349252452063924999249544550519099293086803636136416926332743945387328945845329611441900543370526489160393698812503649144251268766382720197518962643102669736718456206062758164398902651188815609745681896529792591551782559181693796065508824322811745717390283567163525001384353585522747282986172665013349579342870513937232756452465451275244687618453422483255542904068477886040889225987866050169700544855508988666225399216482689455532297839203686382381986540238079129531193651331930863766218410056068205632938524913972233901302344595664394445699699160753465879042750251630514683225976869790107680477546710657517651302565126404024563463370620132243195560102494303178196674270803289760401500594145629768786079084668959361941951588672167135507808332996660319540039903491466026192350982927678243772497732776935688463816962029673470431427846992437711619546917189048463238696425976508435898651685616408615176563918334634584021290260155665736354451839696337288441694415018870668257234212759355976340983213334119080204860932750524748816848516285016816715011634273032257015460971831780714771300068062341686817987939161507620441001649412049704592472858927664848315063276520375253398336761999902403818486090500635705987541075732754228061308865611558707920969443843345162779753604889018371895766150239778541824785435370250293937597918658467404523184180753444014220962580215907175788664753446813334879595245230142163324914108467422946115561125005234754654017167917473279553635290982262673551663322090989384111021379608775855297934588210251155242998433529398432188238023591968662090668611190566850637750466527835143458687538616563154801881660146922512737029298391814992853665395159063056231324568843486590536624017257143467621675649825748248162634295331810759849655123870299224673589212506289158685968784026425580693781929609204008280328763220355419361182294013073132223177918806992231048501187252275411425121223680741660360860418449206040778694484159502699152284178642212369815826569739067197200027127642071661263765193181430290264916695944459738935685254302505651990813334794154697787844011885659447708656017180542549689182391131690722524595122599432477989282736761913751704163449505232962689370808612630975255144492891073020438832225308605061659141766230361188251800754255746873887244864506228642875860314914910768167848179073853118429905329723564925461434298135058430003262749881736425781251344188216549137051843954967345872380456133408680041946130315052075252097267290283868108734793509714467530027338606730845903278116041144567956608182226527347395633957645717383347048749232659970507057114955722476347728664765171192084482050469867649762154464407777068236091964915955556109171333813609361395267774686837744500822873001557130282743929676394877492729782203568245016377715030399099915192804340403956847305221734370006721630399551356760338481915945298736005254583580131516734095182327360903725530439818063770902570033445151653142461896998486185904216525428242620975823127073834113591754596076377075358846395468735297068084737657148786222817300365032992299302607782990248629063048925421803598150147083886007956197661169901343744631333836572659238850596110145215750043927366613789284342393380554487802051630610586650162780382430427801056041676117681614237486700126874576525934864563906929023791085051207576265170083932489143154570785198050295667482754680874576257721454967418462842522910788765901249316062837936928706024599009566194357442958421561760114420852802669390543640458565243200292695673699143290175557157267999833058766252012713666871309804078543973196140912385358261317405893374979180684791119365334197287828830021979939242899276574195595052544267769891098884458821278457660107384368635288146019941907177941902835190575799530413008869291913581938031288215911696379664718959462374397070810264023437724785447890203341250496807661515770851908298449727205283009399646034303136932456232097670029110447027616626399125102824902974158269004385170779915936294111236023353782099652349217040442996887507220437372057187420105972097446257698287665496945717288838068606464773780134967753535429012254878779317766796526319781888191234554846397922003850950762802609774826937336200616365107243391871686485914157240375649833002810283803656874965542196997356716516941684419159179852681327477226644813472135200446228079050070623804500467630954507898435208287197698893504738069864508500252509077642680026823499031857349601265139259683937271652307145270720697550518233903934126914450637201033739117091741938754344968155212398664553939474892495559409005986639278746759224353979877851511744198369195012312435233928577615726838926840152974815440342566013233252653216915233753615142907724726878869908392061166357873691574621589034601435655392060744861781660079882906750439949842974538266044508887550792100468832056948623463880472488122365663008410364325672593141207809335917756081727796918890224946433603112335231330469823653350343604686108903968578561274552535338286097579124990105905422844465226123476669172006892932011803465588058411575107796742877293744313028619681416388870316712289028819316128030834477834260667694253309424369225417650817851737974764746335417620848616743485792297248780088579658730952937863711420722111394192320040090225749819065328214625677423567236710149097359123150283271956039638844212243672613855619293843840082868497930128980430261652331379405079513392262347556274552180024184385572498056490430861821756253040723192920963848105156414355752077211903004611945449465509876068963255377909160836874770813275787763902429066728915247577774603371830474664488997701725484782139339512646607798290899215426533155331657101205919958283622751040881768409945441868847104052589413923708490861364365026200523289353877716352902289855618658624572763873278212024091246525865167138141934964951880147879587870918536527513184149679455154142522336138463799471955624294835942118762949901821411040039603661517039214222349446358227459106319481735894179923130843580181223078971923207165653439329220179294612674433074595239355669849210638380405538343426049890899743981799166820663422489224142124744362088041712201802376399801451479009392215484467219408430634435949782392828138476279306939170072121366625055332387926677865172723199715260050872806148483328841462433829902526968161509106188746584317514372403593893734330644697752299204398352905873262869154884786558059427775911390797769848711392423651429910541888545612306519427627385885950195700465979534824044824047305696403639486939378047337296215916020807240882509567188543137657278743179482738049876621317097609924179566112635763612480471869519064504820615143511994668923079078684547030624111002224809953271569812226651449216505319198951802234199420856010647582443891635432665908740626991443993492746255974563846046450055093765428253042613687825736903596935439364480732092724510373891980198507565749694825177896709057215999170205568266446575686530186166156134305078706027748149724596444165265143639613502216077730783879039022112334650899771266828668136199744619518753304911814009365685312111963736639600177171966824832606130097947607459163988297708847362036710207856771100195958936259103129944192295056178421492555989440860542624420214940281738990657187094209660341057645429420733188315869961417902027195996163292237676792020971269746197298282208436287479390284748879996152995387770937012277050027122749091583104551848860795891771942809752463386485704369559588989264387164829335574935236063933595492122721826523024171287831871248087630280338910084199789601452382100264086241808027599337129199329222087549453292789261449458783211031211486737581863728466247781843360048715870590210467106183048042899414920563180926715074740673297887613376893166074556641166321052268193770540441677999119746222745682753322474712055552495433370044601069708738968742069888770009189808400197156847779207983249705455805213479643421367332623837945950866806331600267172453224241083148652480221251192385899611420381344374898456243654762471508531011608272341452952499218247898409566584405848178664310383255724645090787507675435217801832298885899300102029588003241106697621384719663417076964992380485384813166255153512402155565311432294861267282691060977555488340771906569879609268364381665004052956662747818861592073887159209338760919706046679325611736900750170538744264103472856253768456789686629521747454123999082649124201126375009391409880327741391306967736719838471082344361089399630824011357438076849884798826126568854499400613771283208005758575473706399155990737807135242351997216538315314154481797047180861428846173413673848001310264358314704778347803055252422447359521945446808543608437093628596802741255002796861251231728638928351651512171113951275713646521445277355941722816503686450843409816998335086688151958970048045453555444324201953793553468134482026785352389346388105810692040782353604648507827132801839146592705052504398742678544197244426313176397260572311660716284548292052920194086377181764701261850778705105129565041784296417668782761317839957150266344098363520745486668717910667338343435519345440696444920361855939925300947915711396858442863012670448405852542552461144248858273967927877129399206769436249807588992661190108725131773002210585985686985486677502878077406136246520871708251977804485960203594399137178678312849700156209949679176618875556326157783560841929775239961013142226378369287302322889940404299422071595242691197485581388067481215477786288951558385289554280768550655789424664275504893596009234941966390218244091314746790744851739301335195891581904428858387878091661110535776669732509081508716733591447588037101601723363980653246137411399121027230026831982170027353221574005524127501352103116355543719712059726523910695392485287248178116722329958916588118956139201331255538125545144805758595875079091672396752104378486015894656903782405855757436695582373927400217064795650360098060365181720847454824570143787984774062528361705002898475640476238964687132716725316564473095347377615269871077886383208691144952726958904198373381179873876896812687272886885914619914663378837540390370111565723127932672021293333496185822960161970743677099277393208071621908186629378187571113552279918499619942616864874148664339811722104239405005969048041515811553091540286276959892072262811554686294025844377230202282583970290522793807486866639031449716395682169664042809120529681968353850752943330212448977911673920762481732761072708946892133458970101761338310476874254807166818661537737309766101182230749081549051658297122409388696112674347594427363734281424105599550706412216745472413299264702711929591262925446608448201812249958218981597010730140996992511890070703238860762665071436434802911120872609145878816082288836204278059561029505766317742604857209610170177058809524803010252606165217786495144111260613613539502803991637290508187887937758477880172219444585510941653348217353224769367672772740586036568745884097612629310086539384929199941449992520577982390049044398630482284051902912634165632501613851169343464185336044040789624011671700797046159829038534413348057631205657097493852974632901826742224843142571272273377822009031017651449644912597580039850063904227986650263796008626872564728279756546480271811620313337582385046148516649893314703633859618669457991449745991787895493496645509861005763395740984346837736252656805550838796643674873161585291985517568169064444831596701505381870144594898074735265414310219227309542658725546888690401768917113563402128175780604662945615291423501070799500795934022210122515759701330845413685232967063719259288547986757840610702867940262912611354508709460345055847227419139158799968369079787616229357848213169600978262919515521322304982677628660459581267245164045254444573322484735508570751935523751200663794196085994949603504097188053855541346507022350458175454806960411321310046529773737401478529853584089578598663873410063199051965898330157378473786756233534934547741995374574360040311323127587015216650574129179889650746166578966312229444257823060520669319104426642911000340307285515135563492878998767215473772758413598741439645988365127854907058558376095047169139774719609615244658864302303588571806099230538096087506736980779448676940719996980738944360800187077182588985582592127816088156850285673879184317572806715955409573009693879647782265854976690276851325527215355125759166997710474816124824974733841595615087170408888343991195689997853271021750380891660846533179056746796355308842165159777659313760189800395951843112887736909807160303570170637921748813039050869305377672220483466525152620269336421847107811960705879976501167985579697250087123345966803637944958235850876704132806245273099267216493546537607892286363185366038595973899904387741889238720406487179196496271988726208051550862879573673939830006244319422913077433103164444390087431944909214477430018237063266664386260697694069714436979716954832031129616465800370112717194579755144929273472809323157679650601285322632920332839301259051503721299577682520377779426339657336843592187462378322892088150911826090792024342631838616243251646337353800735382829454571323899130417472590166168542913086363485695294116201691057165970611287843485503133525379548993095173301108240161984864373955888799523968462524896277176075213023540510492586612450748025197731891266517356758108477848308241088985109766342523753277416674337204896637510288282139609274305191222627634842471747031400020136006747991154096092484607145430811316633642278805914041380070260629832554304501624545384538725469808446693719632677580108462484127336868160855332179084144146426248965690067896622090424212102706779808721164964721330490759120586470876384643671049178030291584764508539286866141485787692327863865167227918135149015347067807275574527944150987939855741756474984202005573127728191517750936994562879305001792220817750991429062985777990862746614706079461963231856285351806549132020364373424702210930056268855152985949668828988873545066200481324087718490589940697644795980076300515166256331734180063431030550341322379646355178985714991239855545405432153021584787399374110348441161092834595550283567459093618209518478804811977992474552187272475723260761681269962197202775787980582093295226951711533342074990449817594313132690028036312073190212820297084711836437877014034943107501268044562070565607475270645528495273891324099439884196258658546053080151904894395356406596148605171226330369474626593229922737846201547235155978803778285019324029933956338961019065393945450114823183036164408960532010321735600035832595402294534303277454670773441551284655955871978992554642193353086932543729327843690891738710503809135836304272679060306506883160296930877120312931239125428408350493482329109080551150828020942731680308454117935528983165085840152146797457720212513638246318019163789133784982632159621633869314439391425855025273334143207353571416887152765482273243356061706729387374446071730512563463407605173477621700256709284551911340289729920606877810992919290376672044212697443240306159894887404807427457864333283148123777968392538760586024308411312268117159786866505000801102640047401111738107135772293827096261263046847329821771725006470030210210538608041578605774929946415123535327306586402082946065319860277197672929512474100268493714292525933973277960854813564849607690003633638752393302609493993874191121108505985005221553730724142154766436671237824026576964728712823423575742067938692450076140732718629903225354933331387173782853405028782575556761821542886228215918077282117277594175988049167148955240201699819021552504887612004413911879612396867982925907086613910340477269815729979522571234773988329367080685452120278908853434123892166008616189956866354170236591196544205081169981703022134984137355127899728767870618799116761850436885183778646614700858729018778564832601330050457464098703874118338854229467579164924551668663993379528300929232404589916587470935700103030488756477239428698089487171143195524909177240891543151316198647529179906337322555895162034833790155471668564365854824252337835392377641660446910062625414361556357075601870864684890633322066195744720646986165015847288917031111039366847380091308445943825629120478717713260721187539745933736924285553337858471178470602025309854431209926144448669196947246997990980243203014615726372818891625490748572928263132012919479049251525154217806035376905302265677796172136788304906038406524714266835332033242783700386655457485441278636723850415155974452934116802744251748023505502068623385350309186710435997996160340068261057021328462451015343720233414661729806492443206072403921029995445081747458227664960355043797457924371600021263598310770100260334779981336555086366077157819421468664633671292120332120172098523504958399029402659575677973447511167057867541940292822803947568329486914298606236451480426904550415225957067016644469432533878021205388153668019383598500048527460490290027580792073568123844728355039243206124740401777784080832296570329696441321328134316157801851475582436524848606451136478174864509827392930596660802918311090419874595345428409823075975533361272589470708519416600698705879755238256558522568005836728136403661213143832861289088156492943448681151497642905458015418249634342456660894069711511869842480160035089190256280840598233267069241924398777542211541492710116029974161735757952217449357909143722723596300303706930689030343511371438850009584096550745024307105629789339617788031030714246773431448249472979972952990807176160088814974697780897766582884762818776783900341619205327263229104856373385410778994359705435132743961697797454230808837357118169090077984399977005901026747545191766774435365746039901111785147874663062615505144335611257577422101454430265463452686156897144334401002791486160528917468213007862870597267673846037180892051318063643446222803814085328206590026667393784285469659938777500784065656080934098001843072282897073433801011463239705381945354310806242745819206525609835278886599981786293572667553827467699534799717336107371051981239763049203130002480065166114308487637397161002078727333829484820052385946031616274005363391472707091216931337497121518405343872339350653620684369606258172558684404716306973036185292312831255537740818322715009369282688520154426982283544766854146559707138481562379533189980431407226795121127859397710946796434102928615620629819471138221074113442439002699952637709642579967033799789548149284808243453129406819481952570614898773188446157955251211644136392338555381788198945392731333230564954724304049098194726941829024454638057006500210933350783476566709157302690529502312857270637945980657648568056990940072933292108310583534089134074778278136134390488572566216084588882683955472103508678931641433590537018094799723085841629758091946317336971719945925024005495035367120128771485860391425939661421990617103567836685559790303430133019204301544488513238508444710987373740804519847543313863463185653929663500870516878064496108745193686868851544301075879075226865939805710195475724551951256514141030619879163400150245975471413113745541621918551211114679187897856159263765128641855833756780878261859769884151135968978247938618743984319623455694573131273259157658533223884644753939869649410267889558250491880134152183026288667264368612940757257140910078924480357923247948591626023698361232309765683067881126494040077912478249076293198283930501255949922439886445617311450394534760766465734548095487741438299149072769644098060178111652379659258175474943025547513254880026236510196230861417354411074426247883240887797385608177924486534904093692751987469000637620508854131482822624889011327295587028891613817579024709004484419027068852877261039342721019924679287529176817225458257631020932828274491301668848738939523362371060268433538263917417134944323792904124890436201602225928549646143611823857674637224134355913405771633222005339851070501260229082529418218725287233043422430695581062598582417218229904408947044779434958715441725731012972578285642127204977346276546315607796727331591503764634074529408438275212070268597741097236854642977135997863921705535708804860452044074843131574503215940637877629059941883148072736127885989430674284620093365047980893713253237112693506906545212002336468270099530303169693180182306467716883899279418472647822020069623904631957466507662559978258873003086777303204472562812746959390822628425553777940228044177460010851341472392504666475965232664130191518221155203555777762094744628334343501561668110083495907509747959295648294847185295455350140005271710892208624621003386333425984489289636872942432463609899364244678626971877734636882061738101643838428629864049737553222642401920941974787491588890365091531065095096356663184758641807636727668692651581679667395772979393046098760485082122397157046458006301520483963584736771555007033535808446894488446104802568587776243670578571220195074242195453866812765627467030267125170936206866019787253741826406891563424477662457143637109900146805393392939902342072468602301139302050441483391778225298434534376067241656217519602142280235557554964697788212329209789092600200120225541881036478535972410025957578691364356709470558297806695154166059057938845273280091422635298500649587929907252846864343235181817107366363031282933778654578082553780809993430572202555090987236994325496393922374963958112951413868989159430252811168088624683829938103812724770647111969762234106179004436419281114190445032332286978534476713629214636113704884013702530445806408346924452533567449824698269185724874048785881111048447547877113514969268633556493437952458749658194290118620041520425825209909906572063561876891951178785668272977265206920867373693939943988040963452683558765692573118405155678836158996255681555255511722641978365471222884246873777030702363992244794751951777114228041044017783379314849294138855702431749715851102442035307012795580774856803660202189634043448735217947749628220474110174881569143660988704675493587836512920655442579397258678593063223779250326730927752247326361812674451565086102645309946137300677553801235629099195773154152071413727551378717795094808606444945079316888462040807219835840780311970566988849771380247802726027692300315952294154853591052187999613031395664964573460841469103136851936986945842275256642158523939050807381170085331097988257149028378630686090026968056519139357247232170604199787584302890338763486275714455753453736333399779475311448955212127946728779069384474847482134404384343429407164712289386224040430489327578474977107381648238882515394503168627797216994012666285063871249652854622406789202997665650405754191996944009161577558413712291106003091497787967043554052152372751740797096144408660472330343383828622828426590907219746269704943092126958488041620539884521090018401284438586377129804059433407961781498121130847740519225484794931917089787074268505186229493340133208334621358885736444910466060375567903207540846487936320463785813577999186958315837644560698993419182212911551381263360847790131895874276949461380444802248023528852520282927154718778194433066005264053402750802757858553958664658861825801667385957854038644131160167490642124487182986948639292717329847148569987821054691368079200036227097392332992286509777233527904554302347938827567945504241028719723464846019156870362114748108499570821710876184292670331279134825934408745854511053703933411895696358316537071455327118312716038166961472541786745790639942724317078266873587682881183142697377602380127840505213725283263505617064208078498708722097534041942915800282444625061596176742258855579059041797100567938975262461971010937613608721932022828609034265892278154282890934691668461315938662271724533015499154007299307650232439207702459210145339240744568697875680351585585403309788976586277772934052896491452834496129253084386018753164360184635812040351293112904111290742213773071627551266658874815878458642440417270918264296225706730964920322408206989090463218478580371306097641823921536045224316410731004535959916505469112680012433299858749233074127029767439824485909335872082663860828836774415485431355106312462660356107483034303093435678484006638703857892460605342850541119206874380150702307237249832251712363817839251169589340521595236055120223103297626360259886126973313231924279995554587069835250481500751233365132135860984554230318989550622049949803470981177144076738077745599871473089935228230130083646692959090712898788751898918146567933240965605294673606044848768104931122491084510359585970179881558254819379031003481594319491163982927390784258390231843996209690453614962127790816530186754785103621002787010953850521827718487257782963895729674974593583353504644896055430270905102512098953309734667550631129877733849030470874900794436590187904728761043244893791062194953601174335000723809867853448674036891819152627692128617943469986984761407903384293817668822430221074927222052504201579600582495141956184967481370553623984213870077759153593484002589237603726428040715839742414101050821144417820497802752805238112364264163880986505980326516279962454759967263829543138582976124114789632212809007029975885396708902967737270733915357596858348686806417679340704231488835938739830479015917524183871602587250897957214091690780318862869445297311903955432591560049010118825876806579711494941681564531149041355239668737827343940051986415408773145890569617398386822698653831627083390573008279900815951665247845974386451097094419302290162737840307917411871572771919301470496227675635525545845839932996644736581774639238753663194406258268797563212643340266850892880735141867875404816399281798022653464410941086398292593702587563827751539975454810752952436026715198867404316769688376296779581387813931775465763703097917420789870437965224772963773317305074586085495680616199243892161450374155291734271905348257484672920139530810049601123331454651719501102515212518104489862519569836030282433378446369268836582407921943476836115129627117300422890977857648459900330687791365975040281570410864435720430670933119762088273028216849668017102730332105165321148277892276683785981105327743016934430880697376824854696177777836267838285160555287021380259693566491180995574779669075802986599281686273822086162293833783178925826325005886489793342311096894958479188859809994080207030872419075906097350785139022986526655274457044483436810925052196948076602282012657577014918789164066510763017717213119353539934435685407294909593322137890241431362400015063457734277089083168990731178401245078314859844068726830868062308394381658337193494440309732520534580875918666340237336123104536565903823558424970689602471884614526830960350364557166058476970862612941524037265595493913220937391172348480558979468656959111014060056783558022345791362003215277583015696159483986260424163919834163244310929594634159468088597802712531457178840994533074249788344392729021619289476945134050676963236023725052640109934158994051185161421654329730634403571330378432792333780417678113130141028888344981843091099907398857396023775942095486784209814952140353403565230670087700957601000249431258290418382297064611556257707370681517597251794209629555884651686396019463923955046629996259191532315009460503908563483997197616540501040475641816332018886156010582067727257745469106286047918000649675235033044211128984778793248712800101827965324912767050511220293130516897441224589920934419014381444159153867280412094473213005445023143707221690008736917732044538374716288445194190206977754271077017056716162085669365787923008930786998528218353581389166011260253607571185305898427910364550965510788711898151561729979008596294299473393850200144732982588870247818014705911472232169441791262858481172742179996741883481875489835403494065560276173776059012306588700768912682478891755757277516656023924156841075855731769108752406194611366914950984549437592268453995939628969330288636954055448757550079996655995780265504745010232716321190264979206833402829018298511407148955755061429390841985561076707970313948541761451915995562838030348742182225348534128158202592582138658309866910836019137159177600784794291727415230176987405511268242694529783679355067004906851227406905297998116977779556763778533151930342465121611620949948425755902621900947182646148647185569717326445699592596413060868598643539477521988167402879159144259566325543396600904136300038253078751834838452379175967522918227196816170914985803390162770263417918774438614243845617105383638501780452177175024390559823647878456337976727248988980448332859636544818309913943890846470572016898869237374813627697826111240676251035992143368491296809541602712842364813006259641363833121462122663358630698798920365599162869243290572743995923612219404861398607925563149375227560273141073833044550435293537567730569630115110384496905761224904103499935535509450842524619335271439494690118368878381250716721142675392349445067229227383641817087991447865223377918420131022442673634833265579776738896749331351676485210042301173940002674005257508131288215028219777523608971486519662161349884471488049267272474040950034318393754317514838997731361528306868023970358564410397456119994274608826247921973976725457915024089586174416823366524901500558979946081324135715187200389245250717917860465688123069404586859104860253851523106810173942557931919084828321585532338414825142672925079130649648206035407192767112611583656084193086789265893322829224436380627854760399183742543520748764100522464202334021041068037411198324494478365260389623145450833235714346985709112059405222441393258329239551878876144638515538806089788291731019396357766854215716285758731444097974812510736140475285391092595021179295791555916754265717874095756493215371245578313096601963367509974203626147754872518212855859839368433929604116443358859646597975021395190237326329756594968660885249639372849139607743899866335609898272277698367033393729485831125143041516308048036843400175335213429813715110123810273254371122489122387131923977631658306954368732622515596787328924356044361959324059508295022454590502495630226342959686897662601475304235560844164705007712760478388415549675112283445274956299099770668838457835527895440198606004629521333765719245028812649219130411885332411400575481677574917014059590173506022752682511315064982749478637700242108075367775955519861953611822534018951185870746310138714323269789394395041258615069600392536575778377390923611456010742427416923880728105416942666136492672980109213872724859150213877919381039890281321396437512328198330826404778795780738539001024919168978852043155240442467781422117764572732786419065142136131483334544726823634711596113538993006629652763763354172626189181354572674418255139987281568375796274583290652334352841930990094773036939253397265590600067567451159119970794218494634427754036477087684947125233647013097009021146364107031154530453797648304490992843157456740380504034459344143165876427877954404931334935988383224150141867958571375485023702335489492133346740152376661557183613788877492451879422495518983114654709619206258703044864743831379508060706730791529872973533620713653822644290162436016166567703170610923952436697797147394966162923577015275820827089075490070250921880314061126772009117253916032222527028925908637077670444762095493821238714673585530796312206872113395014110061748755245915632284770258145405281148047679366781577335524557603687090960876360408496133746899675450034955687761656880489052847371556050715492253857347686353148992701342472365543835889942967362568555782683094766290467246107871301687286242639185406272668398472683345068926254742885578266494387053034662985820115614142347371664544849782393129590598821677281766450775523359045697892847709006875718624878579030328660743084938176465791455564044617261016231224325853226594042532703647192680964417453560349095955029947386060565958126517795755489405282643002701477967698438473892472148421733449195940909073414580017712867488656673915631510552457611380674182887405624207486102610045584190500603393387651494329392820677064638087707913973076280074228738247649299802903028415264710861629544032046350538759672984883865567033205957328369879130582980900753036632641458331940199910875892046644871776120037649472989480315947907185051944772903948055012331889768868122353015444709164251468681206657229033605848201811484141775197216713676215900253400338471745208645660561002788922076618217658260806809661811667625107446780351523046993416179545876616815012667236280369974649979266201664036324601502099516852762243208801523108770272721875439417060772002872445069350866826086129682070369173299527427350877078085908436283006756266666625484220748495768237064187907902206804933761564327420346336310938857214221957558108352167446885996675189882223933723756739339973940299287640474208602138306562426098304950126393751459112564273586868116206407698527841359788819982489850945953123269982441167240950471277091395562756983955650623217200520403169407441103290645668813105722003078920437641479608050408673360084795197801843271244201144722436879972715396138474750447751829822362231299229802612039408419733848761545130707604732137393688689154228054751678518613805229873746983731376703489664312634449450658101086435661572698247318366640326390646056193598381801204772331958181289716917453697541813836847061064603357886362067412652124086015269826737080990333786890634090880761129735723357429626041027373832996326164230177735296441249137270762701013659560413803569608522861807224600129429589009568166963006536174242196139644498945724447209066174949634478414445166078280957594876511753297201891600600439226032282423722100918972781565220788607394638742218975943483524027436472151763355604910180796586330392612935581163115959328846369646769441487755373743406743675449640309672193480553923767578078104155591988873399017127023225587338406232173372622904804775431000715104145808872515712677066474551637100422408177288329492063414353469160789500327721482197889666101138365999993314157190654914206149572802911751450969444051084345863696280581812805242375219572890646109195408816196446386504663159168494421099306828957897304195420670902939781271810083805349596860977006834030556939778696149303648863144792733032304282376202991836833665006904672290831932237952742353551567616029578362772867578003829605895189795396472018891767083638138315665324568082138141777919743612091803183700115033349629942705318953907041823493654869197885425576003115664133530515037579672959826466511634233072366406676071239634602417182319312031994712438450942798661785786450686045845092799722149634198404956516861690321759533404043250211309836444330703582915230757718378513950201556242432168291898372622066360051980867040540188679084269829479435818477981983107778517271004508796847660439227442476379578361514147831739881851157768202017836920451076797001125478178867824771077566839199622857139829491289587842267391537542790939405981921988412505372730710782004753704493755156956421199514645417945793525556839234658201695315175232612020983087632064891655486035450808227410924743231590317204803695158060463863461681186082899915559559300207030500545522295584959610110297487381903332021593186170992858355144671155259939305719779560503766502215245156467109468386572529847203569975512988454435525605124318574179695649073876245522297503912187048165906516241622406784354146997329648419462856328742667566451033652740801181470947593502336966211107106993818068443492984228476446895679002940891908095878274836492307036507174111781113085119414586707319426755950093976217543441191064996584134006865885980852714293478671138204055216170765356543814217212677668814566402630938230528224641207449888134891828549507927375908522554612919255051442928752826783300364014457260496884851669031940751339419367289386246359066512111294010296834370812266001370375872085581149832262750624647606881483684554215309208983042720716949564206542236883558942597714682030525916392972203691517684961199860945353913970160223531833724711338089586141597342055824138622731579643726088443455525125819276482417895724145989696854398833910344525020578635314992522196275732485023941822471679976822791337763373636145577304898793097554886912090531013406868935612759735748628279844673255522847111076890359119848565756525581317445108716894621801411652000662054741656441209520524753951936045209047637252747630694981587170307651942620906492128963882853898710368592926124334617958570149643576722563670788506036409675756982018901239811912584978480600805187895118688319936636271650276156240549951293271183319380061468920874098889728962382216421553839813106142574000468830432882108405147629379552397789452034688218141358200568027079060746701254995808878633398180862391533892122025950441529486668296483058746903505171588874268128831608523137583682334839796630739086957065343928474671665112704713698318400439886189686961783997133889799341971303414065529622226761022693529380331174034852385578130325818978404606853686513644564545192017618031426433927208892940363914693869473877687188594951755556603608373538497716281494762003664535194609032901324157234345529403089272533192287646710892687954400969283069595470853380284557992820461696696727189668605532958835432298514906127746955077801871549892448801805572556333199591567657455810428862074671942295319341961266938271841520943798158518086214050271934769223244751625991770811465175547738254162858632664756338202302119435109506129434418006771642822748059668284765111992021745749306553507116718744025397668459685210146382833582326756471947106250498670514639513649447071292311305963690229589564623283148671570759975060172604851266583758697061146045297380515532153905456171005751241827782026464967168257182183862740747841420532469741639985046932689753361323835840200695760751638782504275084819713720577633726464542416571608553941191448688226970458204788078593058095507651054239126499486441504802511717283183423164579276098662398385743567328523091116421839447758351770954109401322093580060290669433935850508423643759563363084700291337439220752814728829448310714335651365627470662231484286216379188622617505647135349136194665897409688997726542491704329708726332614778557873339469325719097776124199645109770605303308977775727021502093689216140453087206443220132205379008177661443669250787222332146988001826703880568708462467408219895382857229042013864746431408447218526057674390382345914091186666781586887505493715825271221762786830508512065947996871666569902751875927826970744139398655014248634137167111080407823069699661563825545614469932663777300180333471812770891392652713173374480785874127967006092852377149874440821148080975353899170899875709122567267322042344157773111034119852141524905760156206548173256249483025090681942696134126174179956555457278164498280242352771982929085959714523567379979741600454638133792332120963484350035633399618337664033004934653380072595004156832331996384011219896571838350868320978226286108575461448284869360628010924202128702435677411997534762310938586120692349412359767388559004405654816171784755804300015009647561754836508647510736598724054629553114869778171517286114891729840238722109719240740901470045827197183692541928412822249704921382773060562739144445322687766005152477846625698770914714702620339411641320094485983594032007566995963343305594775370264785214402814339615333248679120856701464911399066162887949153786492057158119593463037857758314030528209356412203859937020057349479889734009589713761288750776708606730946559089756587191789789856964123333777274847637257563110527366408813511934098828418506884767417680321149727238274165877756263696794096946400296763907357173160176523154231757343373223044977888666781592483176801724472377920964403746877119313120358980520903985652788805375255822811076798373036708472543079410579883115107594672813127515744406835687600057511229372764223905619005305723497155448842507438730928585099425360971920951698752919654871345055119654358351304106447810150928164543524391567639532947283178982385250430873513787401110272931363497207864595871946181411637072633916782199477443330693455334566736599413718439741401570330833721952479689705258740113609637166197506172916954573872163230754911153785745924571877912024431488407327811670118037612756850684578508871966463775106565217298500783308022987114733823567575176123367448656033177203919845638601699392872931862473292435058161944446915023595054514984229980936750272222101461467124138812064161478883578440954055668667464966436143606040045325119995300636073842294415262181635902850872869791922024983647391147251186969007935203219994560318997628072638920535015653478206360490764965035836645652904670062096430940312877094382460249999117045046580786528182405057671621370881478711490019572663428127364972457692000279351792791375171351958612846698179711907775030808756862571133658496518928870988533632639602664493954087164060297374738083577816233085083302492075930192507790061002163785659776425000261821773000825383659833568560374333439496065838512090435549866508917433805534940109956823929627047079618638832500671192936335765888423079884883715990249315735294679444972524293076953357005611424183226684948821058733763856562602278678806457866197482248795788225299207854694257135902976093546672009457670035420897471417043342791973643277282407578755019161689710958723837254860586724725003114968325133708124749661023361217829814355625329374691878130511944380376852367357670302731977056725701746431181687644729555133558557486834097635588321490800347553997914036950738565903953962343158379271096297814839342496710111752820912208503186967364799121276626633345585409300914731704179765101292710877334400671449005416599995649940985558605752179593373256690401397159163257679160220820188378563389275271832670435916375134964687237613018840501675008831901825964176109665749145141625337796134366148073635141979218062274395695241211588843664310873328185655457823952750748884299344430385383752061907733319350491189174052133252712322728544039033573437030162109785608497689600012678949851429198272684452731005667762471450637200279651534995509341887580530112916966846759011312518903162144642103920450755932747216544437255551117292685090727192630860959387111048299220420002565815191416166928343662106873833728275118462603995623780481478895182642877075267723207573416320085736528840955497733020430396650353643539779342494663502701818554638683667216709947232012754960060900465254487979028063231983631867316209861524332756001269307347509322021221805774485412817813353265477034051882454257838166487265437592209147247491789019033886660560417922314060125414736329062023697111647002177764274509565121249748685124854025367887114498231387395007650634751032455561994524174423652076538314215813351616569174711341229725399238448790869079691774709652191009964079279240754689317149636526904766180937140789393636336485055906796513503823620866086493598071428031791732306889787488531700254402751232856435194999210032993178968623862544268496748500635284692777025171801874594640032013231873553589860723017375906906813786925495411237207866599290654843584745366242239360161376200576498317734381093977688001186883295658463982924403032194367323883550553407720372688147423550498054376852811758178447020858744053145940645421792902126248090868557094990586202191613257654442916569397260030373330054251238057819769197318517651312054820507060197404561970856141430202796050397395366434581991414573492913531834413416731460204229921989499115632649933126784769295657052501047814517723641705191646743181756298150185170164709136111513359806002408609676023592117333782499860709986323363227325255104993900547879122803794114953946045437934603772278733078181846549555087854359190253413239230079703710247784432105203321495385527006817857748901084791851983544503916674763749288375547266475341747190361679312972949349532000276066116339818674579723622898450787049632792383149269351631631764909272062538722425697871532985800786343537114362478124276561317287093321601326792643237555524060773331620623736036758180618012830067482818495828342333498552890977566198942884427809144664498637023732836698250202253852661063018636930941694634038571555958970542429407868702129890042934169286854365557595298104754897870422901776604281289530151515025323704358671305905369135005529054040779962985636112757385777274855047391742729949801222872780649320243853136817349364829873725169797890303711820311707734416024439900485511712980032897482293194186752740399105963680252744695045658145270372039295850437070516427530722119546607751565154435854364184831890150106391795045233590776372855476123297374388575249045714344223868111037587207036680174431143599652021530043865565781014743174768835138697934052591624159639684783703075887626933125025191642972258816311230634358836653752095370154739033519835441163372920585572274396641597917676514769340395809660359619882107336059355493153801427480127120341365886060184886409303970833780701125825708271861498033573485005362196947234545583583998552554233660966585147338445666860054751634042757594385231843462555530097862978128708404020084941108109117547535070344226905704025694782278936079939764793417338657732430228576242032014047322677021069077461642069809405835419501053349542558795995973688084676382157485547167740645697227261166790297115824023342165014896962182999610512586960715625371853321506266777785154136129065333235855189748721570252381328945099742289422247081857011353345238262773070280177385240153511108134022211470726002673667910026982875603415114497786138088850921877738342181238058699113810349703762672273299160568119541725391599233115225142478871233482001910833933454686226877425986179455454270995050963218777810144575316625253908583575236003690430294223276335638152367803266848301730144791531931226686624904660954406431621925362960131338863114183115080280098253240254545409589210236624127685838309120654282182903964467059574585815707737937119119244710031333693858170607177409298299106011336519391598006204595491158717268378967790377189642629156878986757639962057056561790171998776697226891105079420828496915190404871201863445008438511999903898737108649529822535510314208562533229582941239074386537988622042434667643750588546026289071588033108345242190283800422043042490988111742065572378460305455714837226591175298124263304718306502006665687036141915353823064790386007383828973401913774787382431110340118023568709800509482609360562272034501082739701315022925904549310639348211615795580440572290682883007551653694920751774791725843108130321035889082955987212464493290798320058972984155016293578122178446164398947804702986130654106603376564774881684966583858415746862743581120932537024430537444160666419586165717139974090303990857891718166435589046284471078515804283602042759790344295434479284004856848527352450287012985441228253238813776651695541218893051024853538322020750056010107136038681148189271128127904950509998079077432759851280351565696550622095257719020099360652009166749540039566139847888866713164701898014393129700118879462912903718553892378398708286722311198422361452284866439265325937393786378095540853273951028299884580025801566438469215341355675087586533845432381226564948726685207435683859106734458378631491427236062897719287805449581668994534188942239636672981809129952822020185990463688863879293117658472719365601232268009930024515462747507660240054436511382106183373901016312545680706075413383576762022597330208118687354289122622343812623484616335830637763860977842967981295743350491200283616179299154683014470393409740136960632215405631486844569888281065427828944573149480935958867815862616752809734113969339104967639905352195590994506012570611846251555931545465035947741573080601217115056970161046703697190086591501574146664525964349907203313710331122977231848629026549177182422131148064007981684798671681431578500090598637571192879753028838911663801647454735066916811058576035109833648299495413561869160544933013632603399311222546006793913596677464645017803279803044331260358286645670013627682813336863888122554622444075431462364893894419827816929548263905403401786068418178147578127019147322615470565553211309234397432666638477712718395250858619501623156509523692798738477747776461244282291870471980974662717317688357995775993779408773104465169214608582097398452606805137720488572856159117972880621402237373620038563367098680504394580449916906720668195394812472661397444607957730680536753894821641988987847537372969136821763512193865699868267145871003494802805553687719858083260665780002849827917136004174066043320187064658204671496902365227227264104443447080627907806341524022165784544641175389941335128679350347929701799875834587616297799620664131604711732567945143248493830070879330119011430232234058736851266963591362528399871928408276345849790895433206399715574594000109259945231816802217092679514429950443069129082583553831362062910588420469349913317393098948892669754001668965202108430538696342347245823089672203585743575040460736844678959342885633415089002021450110850565806868250902623632257958661375942664792338420442102386029000540118613104642985266688695936421329714944562110132550478705759795858769991627980489319971328889811886575784183360081813688620403986933892841641151318167931388001480374205992182000727514323845205751739078048434322837299090744260236344110190028250098224874747930438765697253574062669648761828254306396003038952556384921687031496645094870589723026250025169990893935934459921138464510205981141177602851249541401214803903772445692459799852036508530188271904420541068871704596407048635797342925475765079023667193498730948213337442025260341543290417853067726595534469579580709390742557547950424013020048084824338943905709853681814107902519850730465763293551510185417682206290933037604814256229576855403257851696401423364769587819233247914762232454681092697562516557475576697670223885396802690951735932929651722799607977303797098801376236741128650785142590323813220773985183831940918227533724543205149557208200964566146429707096732903642404615793964227234754146402176769285551291578552507143721488345705187124969733561225082676739097153281930412405613339418413181806705175206132257584415513310579585549825217077554393882312196186159819626677001900477729278170613842476809081338554395917519099442038061953788868496228591192802183588302775984352429880955689345675040115941403478371049565550998550983246925542196443005715214251149897963805320113126199989877228392637856216545737030719750175826335569927945161583184196943468526987260338660619376089438104463530035444679280270461759077813223081793992210010037928017084020293234649767314089756389670722717827884770176373832125894312632198124085894364607332471000869508471492579417823692100493930176833281428818829847397518259162128384921088275293474599505239289156844536783117189903784515038511895051345334914312575592917220488720451111523138561854380115377182474643902580172617069183118258723539695763613779982132366458264366598387697160597220676026739517600020123753148624671659939591702650348986538040408489460892646743883293955818257364950948854760764600417276697048048232272680283697048286821802589665904765433806767597283232273046483960888999632541057501878670195486921400535035909848725214993852468816775802226128790047288360138814120574741932314668541809405309871769085704536497063631619769923842774697296255968671760545226621722574999592570272011904677166608301221125702245999883113251133287751814834104745520546371580283972031421753993898505469785280753155058723822705457286043717654507919818003114163568479168009382438049665809175067334512577946613041101369483401942571145892266979303981636372598560657125362804624540960471307674259057668769242839700460176459988650691748837684593157143260027818577759181697202260796188929861601503930986382795148280251515345643149116091434233666744850388972255881822831880552636739653112128346158403376443352473344570896317451724394679914016103726392248558867351289963463816009709990347350981653617362340412627802147580279968697623421803936000211747851467012854508882663439761905677666216314595761673447189964160363970697259476028878620068873163046030683180551562724282897986234824075161765004705824220768503636759391800293710348126937563662609449102159980729608029871778286812156589493761979216925059599194873537680481420825887042803038262647953196052691441368470842407433934215842994069392830009142613786139157528851988572859383670513137326138785057714686221211398408263903945570560046030893497057395036752342199379589192474972945641047312600814783674311122698984922993187439321147784157441542420061298766672832774859003045312019238170763719122367754758465993934928786197165999502044400554760866378362028964044643061105936518724552893115291495336791295599042238827819471263005055963497964145832968930964723412579553781070417554681935669349334065109736852214540526495898342849687534744063226691480100183969921984095744038615683360965322139744102257920651719824956704936513663069060269026065125284166619451075063646361840696338108322603796227144501006749102790119036343062609993425644963618689509071673566731484171353719141189101840056591803185199725325599180942970106127883056032837720256941270200969598154274970593624116222201037400863952937831542269344953979149634524326622024820322125743377002293821169450340852696788686041842294259412827729516304958625884357607406554088945633399877722836843987751050748236910327192232863200622201364715396891501655023952241192717095192252314508899271800285638034414974582984154878127537716922207360975420928183167350984563426310487259253460085587894325097607695353453470346527271064222200041582943370248225599171959345671842404083379014671473409618573970325873885703086127116268563966391890654455946776361083944502296555311171181062553262663444358125626754559971973444748499859151169799602451872257323642605240148428287818673976866333506640199807509015366891440241773392447640122765166399546990519048654788233162116489852387571505384504008713738351982007982033919452830977756495034614891398457435283823036918046718971462130112446316215843996805354935596745161090932680475059358943310361331431298957510364800760523059520361335568976702351525717936359127041404427120782150920105841312300208071243503535881486001157465179647292680977867090662009670888745376836908243281752173165482694407729596901360854849593340399706720302088772123519051006982754873655326183442114835287368377101042976762564734038109380542612380652357172228851792836369909611425052088677484328728788848230708433759138975266785602126984447040938308839885599747729341828846966736061830550310543379379359370391707326131829594679181970619695335360952163066529452561147269839195213549944146941748423783744331408645628015680391396229366496918219470150678623095832202065372335816859854103143599221831689977764598025275388870841594563487028834367995389974924611200357865114128478548993544320895931792822442254113560309498101921486613943096906341540400862218227079479422945837309293620218002771752031064521407369208496121605937454972000615765060327045733750121173944619276263111938985363079173181718748027272052889553957963333714912844404237384261344930496139300802961252550765633265799772210227792659297981319518300064570838029269959976929009329043955248972803794477082314712473024984505211782376245223329207723300850014181820452327924409970011127334804512419810059690259104700271175781794350733652695283732235812267298637463157945423649367680659285001579041024381751748697688046305640854229313376312714267131782998283604438964171397396612556757372600070045734239852775097242031634632850449529975824986520425249668595925374580001941006679151256432801156456665005692263093473417097898090665553269004950817849500392885439224910543341697557657296202426953169283907082866934868606248765740257454356852034661544988473010470957763200783657157580536119801509392323178285911854427970532348992152826507891689962833659617356653785135383626981333921673161954348762249682126695166142088100663399014905044909253854590700464601145640153014103640507816765686679431877112598139018853816962494059130784542337312051471718171849044602178581099572844390492637157083969511938579556556123989670322917661979785549746702935548666178452950035458084932260182734315857866988532488080421999910445765298176836638800113308098996102171468478270475309729341156677923527969188276380886216039888993423056357137752239595317922001545467640987883152606100349401641080792748998057778174818280237851093287539031523176579025028184635310941699489548769070017342852329763229940632976635345793917027316863482021994027959339739850366837893475946855571071133413708669168511010078304199946003450719017577391239731832068024133123627843933753435734331531456391475665910804249597778580759835287700424974270282874943985521725953152480327057498663019049340865426594212324632413288414659717423605057895855477564004951638232931646978950885797995364123563215127382819737295259560660125855955553282887929617580253247255218936565039274058438847947977021446403671999257499075850329573611225194008313838048072756612479047987946284079953762241055252132269877914506141055320532524324371982364950513650528932962912247113352863918412285819532117860758468282482025087291381789730794376286320914136081212813845258815928317982906008185750689287031032020592807404908442050823297939351941992154094664187316913139677962017941974069085749431945140131845693350881510333897517357925409858307487718963649845436907359750652471452205543895505797069945362960115707713999493946664010620890785344430600005435941779009871402197813333076934522213498371687828608702970702600141957895574701651306118283995818566842693005992997312593755426869686885117896105620319178162606395376227556299011647294800021447386860704765640977695533298497662887069665050135094288603078955588144373480903792239676493114987777174979354147060783821893017359471371621809313311709025476869200828192273002559276827648085786184730902078188718439960201212374776100605735370410380341373799012934476270299462191880322359032595161609698536091327212177702793695480666507083310329490308815131115909183954978149721664269298412774894547802581852222685982679533357168196969274607755333066148897489922386625706901596415284554378921091322638890999444261281387842938203020381176881567348370375231805411919405022840170384290736153882237300066662313494721584153877029317824838635867519497052101055835398496844787190809588886563767777482783505511433869930242487921996656120907808851737522024356047367332500965762802863744800194755075913264816540373990085121922583728941343613917646831957050689065079827256433892312057631023670917635909484311045701118463279352492529926395561582057724330450422304085200706241486923640777175534447946430621155047053414211268576990853003750483839660651103592611115092526164765636483690654175824934053023036108571803865402718743231339802858219603823033522096010721968767512471437134509551296214242567980507833562770859762972808046988884002110773662171376724309817112862912701894984646253435985842583020773581821189608098961908917196793832494780729072703684124478000314373643124226709635378491764867015893846246218603717642930160076785664643248093935657323417626063470543539163411691538081076722671454536364208522494629524346544682097599715581386373608609255849872492522171420145063529281750780972919956515653672396635874140681609548129744700982928451197430513119710780370339439935392136794609293886650205683420944943899808171765250382797789790299034771252086614848484455075647098603925347534010955849722337239285729031445403322888683906157891210865746913944581292290505687774704894498297935031116929578072128968606499293749753699785647611551064153719080125092271631583775332139631580232040099390648511381663072932412100810424448310838029049506598433995099131592949786158070140628783688141087665263793382214699595082998766324909843227187556377406039601199350672856535076948275417886962345813306311407041935922170612010753249505945918082280888857318355495368475098573462152652407283580400207404381997585132623798320220622272423988400811895897759459007136900949814739408860938988321843466613837614891527469422036089686275848132212760856365383313960266211734913171756115774445232065832093512617729743550293911648521314328479734728621558994437703734999841183381919718176717141346078606128140594005633296681615429593730937838721351004052254371314673873084833255526922279593264686920394672869616255029948309363698192624517439971521133427824796857707460858187541160881428975676126356665405974886941424307393894272312199796801310718612589903877219384652558316170428420791872511480398886721875520448379099439916317547695510054077252195062945372423948978974442462278389045114964479449897807042765260492371654475854533801136935454190703856292845944061756922283670897027896714124059934269873792670866483739771801837443376046459221305877840186087693661790306337763534435208991496754487015197559792359765943204958761154480657490552626504992442212143886351761407239258241974227312225707879677048680747132136506431095835855852928096542044892816471907506457605352076553579463945225570408666009760120043686460197112710228658527337283713786294322154668226806428891164023094065564518002463940979499806982115165791812049572424304572608784286098817269908014611277198288868421384353621695128016392615136880009711368270156136138987155373933986548762943373375311836626812335419086747805095082131555460184689289896698357448249457182362812453466165219302881453399938921489741164011174865841678790651900091177743954890155854120532250147447942919489595160363734742841687018956629110993022053543340186567640520784584123244338949498228731402959240793627440221948779024479819626572533853258560317193572668165390486088501024488058358876290758037538488882627253303119716397593758655366788828323612222532988658991055962640053679588852857065797994608599544569267825074842033314063216947792858006857972623578026088169101384943396907832746901061679790284941786587755054111581809097514068749775429302886069290795609560824578517748872567151323932870062529433589320091608910006977337839007280041119035292848148876012856600288441530821073496534132494052071917925861777147678689661491260379670097481916678552453949424845410065925854734797534292352817038285850053981118795360694021051840007486554676536115961920656296802485041997797458320604761734986190903161832212189959970747583303255621628563626616270067088608661130038232727469238356666821617308598427804396012658657686308247195317738143841368849449166366678394316399512163124840664002133268506394251302398962248925802078524888881268094153644424913095181140499311185307755973316058316734332573250942620629626727807451914039175815461746726213695624600147556485046136734433288863754873718618274490922435549199587464999948366485247648104645958173837052393112974400946804391509149003989395548025227250260179876947815218396762362551375555804079545439868176474023049756065375569792165519134675756447492004320513348950745859553798911213530401675234684714697353564115910345425441498608129914944315719608616017503421657998529211163102847513228608465182123584577943122649564262797726525979436199516108071548760578814744452323475048568762348719976803619401938277504601473020233662120456912295009114793760875190573012750980373215069146122504966695927884918378844717595072119124666810962648091149728040411211009348789058718514789973934927151276122550365277771913662844338179847120250749730405712000990426903223158442195555254945236080001771343640059819959853100123973754175760318050594503225948259051654519267704420962376518486450031137194250671794711337536213458616060308865336384927362098104391084453941576801191085619432802917150288858784855010423092850932648554858013893570410898496732898722639459466162882796647320372582535936335971781083068499055351612761630289082289822864279869515043337467249464897614513176898042947941198930341872467200417772297353799603001443402016199296887346408838001691655183525480189783951487727533599726350736837445819063526006871064723251769429199431553814462030169103239434659356578255024317456568312180268075911683527065386904868017907721362715722166409393431803611385352380286816156721040390200525563764533212953798652950414666953044779079167376241797522732752371704817092554109730911628695516844058594731495834297916262344015326996504849973929547310471687036278748358311898751619617236249738746173913549381383376667078198403896749183078929148235028985221886190546117271971928903244985800249000052699842929106277788454168663854726969167331062934363504801755766871666454547935334923308254460864213141926343285089135810624235683274525834288027266996879175238899482037360386541800585088040310351848929350532773473297642166427798069277312232010573975875068115049182393570449480549095809902897794555385265476447687432867478741535764080876654758727867909298945049827551377441840152483423842040390482037582866373038212801030835430634077342523606827481831384380784474462678725665228127422335114283112127179712410674906521530597969702449530026184899300844580908389880047101308981574383886679424925868976643894384142444570956893428651164593128735913294809594233130269898841469715811994178455243000878217500458544548384861304508333407899221795274506863535486324475642040681495429790110445492569199322811076737241749613434151638948566117823161056068885767572949301953884547940557073393371296304981580724015857312912381102934453978834175406328492366395015343359290274127680924609045442391449998256744329143300952823575488235384387555688279024491365828819700579876271959004232579788060185557075763514500586304970102566977713589658784029019236373625216383638287445827403628620216192144647444380868822610942241242048792173865934257114309088014198359485279142699079232695511570470106891537877398874779638639712460080857441512934449636241101079766918877672330517840038485166553361904806854696836899856735730144548299904551545269804423826897114800715069055698588466424357991380701741863452216626378382657033278866653537111041520909312644464993952355485217796145286390697342969181286630307171620878243861801760391658291403375579030050037643825470267591338245366217749987469799783848114878975166690440090232945900952328785668545792554903661788520938092182709278235705538983743706571579451779928883003626938145498528301043638398329140150204232853173873693576166992495662596808288528928646589718031456544465222372583662849974056248661354688947432826547555697606570865781353619287599095214105700924837320902988484443842699506651349377495904342705491130487240293512046534958828518561242915855143012940628839073178607207186142841368584019467278892962843010181216358672333962547549446162215533228452315404432813226463434776074235802947508152551919440226458812958141954241624295121505504627927425980050355728507278414419699087342658506203014668080924087551139622787016228302679393094808558939708511500496958381167492456785362677975227296875301072798726289432960463830083503359045361599552638287416019845821208175371643002959134618641332214911251024126010165905877759943694534486711581688530507709382543317477347473631723448573062360806658633355611370917984147013751122206629575338258531434229653108611587543573113782703648577047841189116671194038324425946499807796272771318749472145290961922554379313194244220867682724752524949451598151955869409602823466804070226973315439346697682256810251672512937431117081320382477262690230356858787184794325715336550421904352406033171235965258268367129629595775414306605369661026162949389778749125563470677800730390924309102850438824005775720245002224441383195901373104512974407637791056124396905328553159059655549062054540101465480261735389100250096718545713256941742733319300275725077840508119484806813214596696597435487863344343881461758211870697524729763766605069205847241318789092770101401713797555944583992903889447171589747861513476710551775059020741335633918406763085854206336702943416963528372403854261703499231637158457335841776579051332317185887404040582405749430307710199138841810593237142214804026383850777507647137086674840846528192589957124645920434939836758818954030487299050557161011657981475757687584350616418875750964741777614644996505766516972617978121349058846152014972663244503506544034254030687160262570790387748047234463187243607506312635517374631306716620889895074291873925650485365345816898693693706132511816613156104012869377309237913454758881461600196656604567588069172979307444373613121790188325959774090629579853169062829505260490907884460044661754391887780658535740243459395743506863197777280601676071348759521826415341414008246236758041564904201579807367881488698372720097139900043348932054371944025628879020156849284848510768770071431427345123644342896152443287193725988493438700743419649650737627845896945959010842280740445085083892621623530117988030637959174591931941856284830860698396807882419325589581692928370107609495210927568299141698548299880745990491672368962437191465861202775511594066517597748637966052902200142875613214758422280739788958083205522084118401917857339623177183368771998755120314868562707568099209871115996969261356275338217769020592087140235168945317914986757484728959450807420362195715017120867840348643903710690888157015464954283455490756007584867140168893970753228171145761734346843272919998600057076947278445969210360076939301787414109444233621393622347398238592067811076332937065862792600276224506785176620348100509252711829783007616997780889726873750924380976341052515918568909905720000456912772289964982943243911676347553622922933122876608437015727097430602345908429627500210299332977705960613742079103501126094289563768347341602025002357042659166881251022971796124091930122444889765709174998740774340826048211778535634548189752101398503665712260057086100717205298673181330715432840348169119306455752694263294980613109482022266242535449241521941935870622408440674804911718724618666351335376445895681097406089219665790273263646621773086749168221432443859003478178262434187941692302613291673557396038038578620109308451178297128173600218951010466502091549984007185676786576604123682987809360459867198984206367071268854962094877696250599468469594570521775888916205709148612510703640939633212806078610529513102576158596911168344521619569488961694077560872628832114355746066654503695539346871801893662747137042767775754288386411621587753194277115666114577699996536457499880531627652423262650291545726451502630444003288855745072232171051965419137211091711354434880496625374301773707107363090879693513128071713419099950050164074403488796526434753752514796990999841476350387898799825722131321844421394839049334892971982113875936743108021597772762440029315495540491768371851927783237940831641610863709008499134293992434780235051853467430846502920391232686767397829728581895764252951852221220905617269597859764666575309703196238770570167332004577345650292974918569511676887230567789276740945289284712994851049514757101968283936342003718285085817375074705808470396925657649628002676479718695700995799539518866303974456061102278060687168570259879319631785159721883913816366572018073065341213950313309217376396634313265842526853186318298228499156891744058861133251992504090366031281190735465584167804091054362826710856421857031809649052702187828610976887232853598270290762774422437767160544975580560107006857956598265948607856684469938435354269837204457513928302096374487547368420747201549150974140944970152310724648027877047792826785094491565766052679020342868425948469301303433012454710410140991128318140328482468550932383786719923948784865355763745844498514151175332754660952592275251594861237385251171904545307929339124273516566023031122986813906583140715806259473956634604589867663890207059988743786130699366507391231012294535316617014256106324123553897293474838655007797536706342357758853246720299907368922199471341334860478001281511820545175158526806452681271381485378824275509222167223921291533677029207374985080546533785806737744130732771736669919948403734524945202289019274933693264781014924486772130255962417313404919142946157927316904674083555696563461619280254138857311039133859075007770044960283431673672460099554153250968432174102418867100450844132598430934729872706459857131479593447522248571580570566849057293388388485691836719163719051453548718828079327952701566106684982677852814372217473640260203097065057309304331835790993659686114191227703504702810091021728743599218524145801720278752943507452053093509222518144303230600074615661040751293552579598893166586964692692666383259201599823405473197364737830714648649641855995212169334480345807406791991353250546459015811256877775680657323626724860823741797891596004065321976654970318806730823236974080794559315966348885378127791423340877312885604319539586676751693934635434678073206868221685330686047586301027613114242528175965644884591969185784595531264796144764226227073577324971928940506556551415750710489726873795185058608045823979402351273640723479018433160224497748801036920610254130340813943374079978344974795757962935000134808876866375057037891964281494020597370087768011512041820470289926994078241535342503678152996545441394960498878838395783421666618008830239454961241817108604994353128607419828887693249758935561407602796228771046995793101327148645438018368470316613803989800092814331722107148139096130238131715505158677749423870659710844325515567439186087431745789338938873665968109302148114861109538609908575610495661655839897056866661213017438266544886274135663237452863344336772408741201382818723465139762993593645268739418274349412255904386392711266652663197340865062183920759543523174819729987881085098362193679159893093530607252681491356625904056182391823295929875193036905774763980252266881928338209018384398796750804050039815548181950564867454437855223384600897204367023339372643566778262571984165853439345756080472126540217891730208435280167752981978408189250050371654137293057420090886725647571663317247272810817546955352442011412913810504907339501425264700916588502730777047575216911963875731540887287666657813172853898719162440260735328321175402426841847905386665976683675764624762526198051711425300872554622163751442634086577767256917185046809160664830731516758011193998405012759251247056928719299682202606924949521161158327665671228761578891734806074901832057669586022030753183861670233647231931090443922610751699300214373728475974594557109914579465054115369273745921542188952388600792241276481198800214984872972745995530842489101257370477039530436515195986120036737284562505009621861901263387293157697110693045301375749027473000898045562105887329009983026180128827695305832045022515939646011370394518841930528132372439453522657318644525285581942826183782517100226278121262015656762392607923067940927625324131775853264367770708770771773603515450932808682146031319268638917570692923130798557239693007560190009700324298097784441690648765661648124185926331164799658193111665248595067619473885844283111066295107774421087230946183432997856131164898156720273790160462895118187412532023605653664029050144354364504413135575819636684241095138706564416233175017860862852252397118269514124929665232973172144069920963960648786623300388990830612469565399967018034589513670670891056440539440638143241043004294770749259939154575925576806251810553165522802681383916819680721732702124616320925411936681401892657652864241660387152928363734522033399512822082531971046990232887856779503170066041512288145498936715322170528180091212039000428269905358346757000639770222555772333647598720760377981546875327361241827419516473771186588889317258216499234111981462864614097681162237328985813517831715158336652974588704956032897385063380833765429310216830981675554913300034789909657506173883508998381570853055042144369012662349036781230021167403390807218506995955765154097589320234691696968262726811671139481196034223310165053539487371747386127645144848685620370853038491486794809762587535806323842784636093177818456807247381209514285954172320715493786516792325679132333549752768227824864892029105681106233777368975566502561233629561427091873780850603579512933422803485610994995176803399894740526595785234535479067776982756982019767416592308000247430287971222110382522281474528589522962642538381346004312192028882024668293151043435404411823836093714100911788824171443418373442201476300288009348607722840582762877830002520987993212320451062083242564431280313099128687009696806595055592112572056623749582913900963803808287719489819010446315814364035399726720393869666753913353162340650444838554826375125830130038268640177125037460602356911223365621596053181702538222094933912532349349121645671534296735234421056793685579487564721241655660539169893831043488422682790447404031370881718357353966013512805953537318246627088686885136634410212894549666900455649756104768299459843851814393287715282286905833823479432232755204877917729018958098326146865096729206811736952930599266170191205149333219584546303663922052911937273995183713775045287245366899582354653592769431124195431672864735962430447812787264173319022512808585044469335091371733996256026397459007661021226538231257815927770127196169092589693736174393289152942509143571029852903399497218658522120434751943380296063946237094356294758909587487266403053747671189374733035956457820643473459189801573277518488245728708527757641451510233537716720640350352770807584953545567768104753984045637820070598846291156348877832997470965857593575191349555013221631273116181477072986341198288316106510840045497177419089705075802989160092855026162628238203251089201928362036304514031509545470871701474780330660455201201098181119944833454804350151737891300335601774375800895020657069531647210183187843437237712524478454374159522105029327091814381082465823902282745588430753119704054163277685101854730327996453056071686546520069487002271029385110658313005771582585497881728185911318534978581373636502707598481144904873013525918941671066401856089019251664522065450637199225275237756545838375275817999591121655928252471960676839033495960089975917545060178639399402035738440849069892627805788869824616526603211592104484422919708349730730125933187874087116364585526928193585859554854296129112200682474891968106266829602050411173957928757136393500633829710923289371462259824928419329014522645309404372550299532020952578033029227162943322901433326505720464740687904519322037855846242629724853064798198732377012549011191908116926100793156704966013749332769544214596387186052766237852143176607282671612224088237825570240778854677015209311794107945903271505823190592422129686639510006886439886715515325624952593627768300407275128410323136011526289457110572589569137551347199285314175225525639776476664427629614089203874594340567994219451977790026306159610193162123276642511798287394981916938343935293679552027128046643634126703188006223112427835129326692154658913295826900050641509503645062341231619252087233861052677717819410628614077978885777942487504622962810148687040738649677607638282525542283399486261987887932879985378520559639608963472676127969228041121522726717549386915812222621566196120170767231628508344809768215737020905910252863453742732139352674544957034971213363468598668959110361542178341165616145975142024850216007828194196530222483036596298649245643056752419875301255106549848367087290029226251274401852189109869965026188006689478730752751994655631203660859482183232202762655286722837829738026157611438185573256260471681831852898843132660182682299749662387530740935805573799819768183027691100088918652294259271448563198163014592732126294995487306660894010075318812352603217079857842873403142887550177460291985154967043193402090657605190767529395862586043185240997815823424415140229348718953519359499900938347916906868713705067030015125280004653519079002982678246425914878956841710017495409019009165110166803737474919411055499183932622018732396120995111042291569075374565931865992991202209663918742537146876143784547729590736873709224507944164018566026363564652160150999608021091934873086141843391666673543096099296457312121844684435171974391664398544396168302230745816197265459169313263559591285700366514393221269578334522267009907318478310183482736303861078005535424597131792437711725536230778917538458772851555144002025835577720666180523278063557753918605611441890821101723945411740023160529604609185866915273370559141263748872766667306170331500563846209820503147636873864971113741225680929981601727498409867631936466353105696527421046695015669764585212498629299737910010774224993688097437036782090192041576867547744749139274377566119279915431721749056287519071456084868909441178877472136557292698353133262480528735553993488874279862801371602191551888130614856590258229204334505278363048491298026823375966422607534944958852321294472934467519524121181906605368723248239401177486213921872184698968665319408319290891687875468325638880142511887765513612951484307550703694814965269652272741813198755544605065357315592352165009216011864718808513732360815809564345892832375536595997211235599462566475470877296307598784183778853568642754935822612540104113580509745443966598367242921202229086113692126413164562199910238104171242563524892483880021673923283802990019015121334659296403354755863788849341414807786320336082020538624941083806586555472196176357393289507421889990691994918808215945375771521638016969350314990668267157954876172721067894879070771740547498727228017397017837040815441429456491160666441602885424628165701457162199994593542551636337885050982067666197405922665327123789162733109385231882560593777711130919956568433313097803286737794036043103759353025614088086004173752283944741294725166470557078210223022372824789509669405411093431539651754325350044229603525431904456151021204911790739374624195340435071952585808495144444627923107490125971889533670312950822155044861855693251287646686947234078794540764701889994945276841920274135919332067460516767273187407555682601589241597864676400760312595978968426426622006430903775156858107415015630954917342991067258590919475900221507142728571689868448313143243106895878392947137590287352923831909805796582921447782873890922232041814801074223476455367398783013501298866590292050989612708838391382602273608383972591379039267843662692121319356332706942501566131870416779384195994005338427880867380298638076880283752536105402492529047017388117729387192695395989272532469041800265109757877107324169679297050260511826580457491898415773501107673717313882521656752561574993246776668306070152899878804523976519250711853372352999497546444396712644228259111887000057877814347872314558579521614995544826211006736826528260126608534850837919354046013696278941071610345627355658508603803573154203258686521908277926150476991904847770593638955075959584149088152753062621064775668476539398176381151763794440408315943687371190210327533803806081076200250214630668643563597071977031018262874598215494110645192353908172213379850571180242415508792827865185413378791278452237961232883257350990736425970527396682051230717274221813467423272002524476670844800787803448041101823762630011060320175011145123497092357211548095944457394524117614635804722066713284361834476426849672608515628439228558974178370292718933348553415605416856470939333589471847598669318721415989496200555197231836771429522829477184896228445649839456707817391148982451193552692998688881694410018269743204908356774309993588804139242870687842700087457004474139506563481220155402313395686367941943943450302994318455396311699342258197086834331243098911680664408574397238993470309509812727106670919210253760464562964121668394404772091858765120531775536418421746335389604020503111415540676656420821932152079945811423834697605461521911026632330888444691330395313960190548850323278695695100937772377402407074957896069636607286099131695343879434939314202396641496811106984282767884525695906439539805770999853241805794676138621283816526769716542351890664092138274359392999818117559089530644176419642514629794907472156870300051447899431394439623544355865377628274354785528431080626891475245172688407042578374452932677062400870794769059991968450330072839172945314071858198587190010826270550385746115894601880001141498078042134287732263420758013899906853526716592829177075106027398076921152543599752737357014567031801417493495242925244494007153003993672912744657288133504629000713487474563299825570055541546776516137865528804119371544136858828225764397349753960844150257339764848065410012253052010503774924188543399916052582864167101612924116223518312270322254747668442515956745645828702621067743319439178249142789813847926661142181079925846795347251004279767880281462109761957900847266704942212492712701849955533570271421140264922186632925884550754803590775113766186017678581647494353346436663131236864120295928183907151510218794237753737459959822079668264032445344002702923674122734067461237523071833730970305373046218582533291435386658773348177278921453743157382107710170494446020326899469292651521003033861367070237308089478263717646012981841817475600531950937684417628035940516944043149670299161969379773136921728411122496343348576130975858666952574562380492059268390181791051155838066909092335310042119373232655114149945567793360057585512404459916168107201766353231084434684438949719631634959460292750685618749234947044754434277018662630043275518698123855424565995282924310443852981362371044728993546377439788220289256904762036690023772239624574655136170002751593091454581065102016389311003876984446010497270978606283537693356618760754910611874910707191895804616383138895453827430478398108054698288832494399260624454846814868669361797435267437006795886181929486484750891890853991071537371134324588911405323062668510908579433988840257484895180920488327303420631431805986613207151927753108144083592811898220026698981269605773968170005754443671212154476530212937648908879963088125088513613099338219683191209385635495834543132831502030511018466403934562725969509826775459057563551569380141557321772174505944297130970976959509090388358470798393229588732063760105761253607985328951231030389056210119828580402174590317467967355536428755686653770032487079925919388940601364569717959868513812419826685354030396541047673763761918871969739995215713565263086415696189084095301995870766058207775844751775816719321791140575045471091391599020103117848881378490271401712668975646838440879312565788918469845225955993267512765492031638946928375193175001637933751339769377429798724631258266116453477915622363820717720877276547259018900708787171556572429227956791325724771868504514378451626046239121380512531024352552413753329633511755090158818304752937812981041885481870282801941416272655268440658997453686974269208444657708219612751339505968386142253734922809119007643575498248056813859565099433318885004829112447484200928295879406138910494172153709461860103144391515132452477410794582475315890279238707271461228897949763216665669130633661846543395520510575450636113815458844748698263789594559088148933758193608196093019214245474283960137033565673367346293944677356454384429735048030327191080873152672555852945140864095584774756348588651018703985850215172225889131689345582627150442087927595404986534501004543163467409184834134723256334193459116794581922952427089384297196671153661444769624249815043185478784379894287852212777000757780134711382820232059018259460110649852328019541145425212565219601651695878034055624163882046520561316705481809286000292992881754844611621546798297699228210159891581649630214752952385643729326924373783026715508784018037742408680846305981385099118716691522107371947208592984045142827154430984808291018014092486860539769087885775966929254312170414938042263778646127914170245248287912775059880954744237779861716216633656720733027325406829464756482439036618111228287694717202634311090299678041609726172063012764767060893077393476445659718802316011165671368998733368967701443671886174906895990026098785465699923261756796358613004068150954875326644249166648733457809019683518190855822963488976988310536747703160759161765050480574347223004823048751775661554451399037691106143744103696108736541799058112547201772065751736091829130125991250902340111003241041846727737688240880407831000805706719932894555068890413848646117386351451417883547325714609381010962256196187446767013297069627544881127904580631686898860238088794382907015120612562734581842796257097139049191307537542612765214164049653765648672479505844051991642238637472543686970927050878657111508932217702610405301649825208248368071763664194551630576975197886547212713505893660759896693601386623409709257621135827293539460898359896640244516556839707986719453522082202424031956094446742562841826806708902407217061770634669979118637506258647817540260683310033326821105722389414307502144838557537362329256791491330610347053391886005634135180427229493165309019045703122497328887550772351624932919174006786241110802149211443751470167177738153942960555980292548138034567424030223249696386928841119316983801977660647017813000701951169657670195320662239668180534438612744015060074364373822811474859667506539601654949017338433689058418795182944935549630151381046662918363136679608740223174933850422351722511183022598396802519019748714801957279578510379798511784061556214837471159208346351166462062865022734660807639558053416715514057284967739072116196945707684278936551909763414140477081254432296829465331277598916682278771611606602996732801039466680583221295430069260590167640445252181158180663191126119770501144691088338595224561825808824132686447250728091611009697064288751875368392517368467206953307812366291866705733995377434447955709262964290665392750043386734378220702588311012096528468062640969244257769665749063463265045741504914320665457706321205294565811040645164550890510463783305555822264632358316293351124359039903454572243520253153424916146780854029431788337819169662257674486192180142612826617743947232952539621800740176782023565354612864337040150335974915158402321329237230400595618388379063278250154456487278633214021282907792160852969254925920901783329700139705000544602949882189976265610083385619856541374533625127857627509965364575394067207703926389708123376468102674680771745136573054959380926441471721360839302223846647144076170925699945210604571131878495374699557284842756078397275653554029694899375695072159522136044408079834412863558877650387428549502858158795462635081772121481866982332619719017122851912051298335809664125391622029217329785305666863875690927841048372869057933377481008443854417661241272693425017429304339285579834730982978523595565738852224109823599198222556223654927310650072264547524354741995560048668679617930532799988682974321483217435635231897763800387966618770327645061876249377013823682694963415136955990851876768666151228714731070075020807191345830395616788609908618455753489140320552842787937146160451103073494452366852427253926690102769817876694646200834041670646389636382309802686721303983308778790650964531242220452521426574825191646488360641636135963124457020452821937843571987478166423307246923201911635163169001248515322608827775765064417990488063663049710311683088154390608967668032036162567802711332973364682351893908024475585933405509105794113530462719846661273047306977460483213445536132897196202640439706247207025577395867825522671903822817693090546112126133304281177954085878474009599965086527299819475560301210063275776036945971056333230222989116269073956585975962689941185181894485792885411158070842295213532406570083081369208322913889417326868608690347562808404021876403534770873644541375068651703011277013534674355565216400099682001262429581910357692591911497327063176010776078077646859180866852495583373894621501225505847314264632801041782975642625533892751061954890969974124285697491419663016191960964663462083726713096058845128663938359037522844210535849071404989919956574013750048911607804004405673816031627957089521263356079568285395209803034483122678711889333055956825567161862588859234605875373923963743714435498061636980155526618696126204589234101766946523904804570099849733487814218735366291393076890627593208570647529191479155038851068346551186863527382316207141774028458131055805032018350993806900491223508957530122192172390420954725184592313717697312585699027012419344125802488158344216117647851067278463289779590591860267976459873270044163142650864476183047114906324296698127708105472380512416146211391821127020649878024906033371212294889278049996159757252777150424105227844421878680479776766985470897538234465653524340096659978329829892139762428309127824926708062700972401504410893769933026456833477033451429742508553040968005770510892452325241442184959693395843604810046714834287863405120426959918298774487926043362660860080222919015059465778072918102540937196704701123506170901192115934724215983142636610081250332955923670059451217599841546113835013505677297427760313273204847157610079507902665569530650833564199259785588864340870750026937941884334468754018092456531964250326938156580505737199731315554311566499251026397272357928777051606741852464427369110762144114536665478345702202402467302810504379701103066311020359067849805691527197561147070619597414280608475718792233698145599478165452656530478771920055158805802554782665440280873048137836585715528758002639796283586974856233052571890182185954690121025177534501191539957725753949729966936100879160207080472623545663150918806792846136975174462242031635727501703409765945933858381487464219510322560980149791426378254084279562858632793514279822094725190994516135926596305573129619718050493485898977326688070368615416674312153966260397105220338821911857927317137067938926776644541097689532174648446590389401417548242218080663382649160316113253514695818808678763431169296868179409972685868794621961273552154305623008164842385688470979255600383169940792369184270257970427144774374573472348797379148063521190811972490575046740864626313285315973985176489240205341753006076840503138818783812904254504063448804783387170946169379393601788486786203497640808784768123852747903095895986020527953793814970708443729891133475750637712712427578248588242470562347958293901158650284155027586002494224200796867459022164214564698380958223310827834953085433005578481687525120233039995551436929099613465858772421451336546681480647896100780049505117814371096550001381629657114382312851096636525950964036661363087018926179166982020054523632893648229081600507372965929551683632706705614290027694031656153839059318831669957403621585056019461964332835024562986767602200312221316269209768475244227136576757254517959666493844347787354952928003073349911166318373318166530978472971338126078504953882639267046641481164562553949223736160290894219140626514596131567478656769811108675816568030690046206171515312712192763318278807713159566802417166591343270372297355807694761067524429355731220758343656030824361247291979944103634105982809203608677651861800878994658866047332635936758172756148180566570683857174008531375901947848642334806818381120192815485054288765325301375703315546131474020239115366990441294688837171269477993828597904976268625626658459566651588216623365291699513832074248378873235458009479626554293874045657157116781213709099243150814429935379330306665342087900147032618517707688801553862800014583229721398446165684057798869378787900202605455062351851848972443105704255443632810374510671978280201875721094743955632153968147131400738927260351027379468436174468794049766540979559808839560871182173756076756216836491581701270045628180860266849528701697482506723351732298904783609952547897609721997170231367918605115259579227387717502186650927506183565115032651610885211341892077911687301646443435457716777367479973585377585802760741074169345467490926830099880214709511144994711287611234618169809355403926695114841191446891008742374248745338120465726713566763558457064715408830741030259338352757809419036683948294260229078755276359646861560743059243793108729936349636976367425693797237607144047795476151817702652465772516923533905768099599185120929483340493817365185099183842152873184840227135037052546271911371341011407099840767118241043777173166394981003349452605181791805398828042652087834362527073841345794821254221552813153099249896048098195772881692298499047494974832901870759616272714091438789585849099718467757853983712250659962614233997083441247464728235204133372030885783235187872798363394951951465712727139394465291759904596882475033292468758051007334805026611392890689064904808005695924569476370903258824191389719542314559273471759012722069972161317020428913976467992072045252688557441903664992000774766561692744957605629320315234435042040128049138965910518411002793491617609298963322067974807832899108369107294064507349358956677634590758569499010252027926323884952258679486734517800690537847952093669052815432670226547963777196629787090822012970951066330906503231928999735565330350574127368850329000163154092393246912655641421525953334001340217054252320667116056118243592298564867315300971478406323278648170931968435300870074432182305683228874463202543445819733791966144328601818994875287164146212590344466926655471549048914208759081150203454337024088116509950477168450285589837726710990029002032832683743744285946575929526233395052072212937396056582278576574183563759307436786710659668668905913518606357599242338216744810226760680000871632606552944547206173687470396903736940423125583088192703746355808340369582686536356915885104155139464116298258253580487514867495108036382466911565909968036612932048719034016680873590434007508351729846155480864966922176270724220688687336794589409466530002781175633103210139796174627910602564717593638714886739224583343850725180842622532256207547848734979579461401133853054189635800477122719660180883857421005890628860166256643083033166880218759947046863850342937863448148287433375318686010292868129432439233916606519074820617150999050312116186120161817630869146183211400721789465404757084880004045857848216844637534074031665001558533273189248523246575261669510700232523085914414737939062495167746165102106974265390591456402971005897236723932121355098242740300780147108826739587532930311677104398656940187714882973940695512984409870580949976352045536042405027268393764554551466356604130947039235793451968468269254266418658024298751132227228837955066063565475045139200239547292416900105744256168116316835649887753817365555564212761071860730209798321778273447251261362311230739054352574113189115931073363725981562070620861298617932020264231074841544273394861377443110866952153045669380985200320693154991950916084314048265522663407423972397184892598133853280480653411246038491297884328824373029698015387771156866727108774735688113552131639278521334773305074691912142298907992428677316184205672473850002568105911172585551969018802136017358642443537537315890702325500427324124965918219973704793966176282070340171143868120491062451446096453223811802538208842118479400897023427534251502383442204310016716702445107780025381078369354776150311261259138250869822432690690428830308315173213946282289087197751007063822236866020662107746648692270792941844967352674770840307730321595252237269311755204409869385247837896100977907345123254142560936144004722627119642735236717888416310319595982135728531019238300772382346688865387955731317584357530493664586234890231415233460351299354200391341595964740641638596578774077957706499626641500347281021274445992524007458640341566472036400466437967376508344918403360424826806017459667028725051670922234141873496429402297354052527286817931609531370061222352081318020296151204721445177238301851071066643945322865155854506348108672062672744611840839567147510546696121078300610131724663604522859854423866735849824073100341920216426950779826263500893521287259171361494821197954438613690842341864693492470216807018708939149244200883110959410024838844527903116085609611999675501834544336594024886012581755388943874134286344565070814019890431226166596439932888742921376745958092414569351866868426003518597036483463641453469856375083935876580449202961984565391068993904736453564230185751294451224672150651925352859122810386118306519186002136219742340992577585477050721593934420717133082808953787442261800274007747810749085088343378732622994401867638356184406759798392571481119752746963693442271581067375633127490778648411314571458146018294827788738207431378104162701219674312793712466683771161696345778980402338983888818874246572017428472590075294086369826643277096573930834055465392603865162833975998884300512892793780162006723896148662852447057620573818588125198771534024620679060742560436899735344386090138867163000831781796074688070845321555488399303400455194182456310586047334156212279946354361908884226802439185506602683845535412482952881083060931221922088344649209673686201489231040637129226131186747152523310355673407845996706401079228155473924670976440227176285529893477122614943455311400628529559562329030494587145414983965912654193237943040473763625789802859673055632708455916504840932780609277262835717065275078297225126659869872489679105728415054607051499014857374013890818996720894955365628053759653032279946371169261747802798524816933324036508244412248371181838003173927383385707909044897595847212975942117149388008176230086048433088136873139305119544669330594003357942012365440634667345887178348282258052138679016816246885931118986713375153687879990529057227169820421253460650277227392823365066387768681016148914530310985179223116885127746601524024533566090146054516305576097255466060884380763315495226370299586054490504583529217564108207357375669173370125129986107716159570927974930513004526116355550997386422459963297826603352166101860173756400915820062947226554225900443622056768245170537557290703094456256286320581865960212620687631251707002539610058544544325308639481356442247436652102464575070289556572635677034741105826573850760693004462617188779607170191295022962082225827884909873996417765322600004861999016856776035536577757858064164996797534403482793771915256895576225069665904021975587223863632045244919253348343099922130243448091813750896672249880173298330043752669286564323838651116858439390924739752767726881104027295843542027229174225345530609010924989303897486516992743973986154076860027177959426864209781495834772479027135442551058506122107832300945851595300275591298770590749162472400039892442330676364691781452057559479907018383030562766023628944437658345178688018291970183613234604599541993215300092308096391020492247453257232664377342239077388288838804185909081444679211733508023814374322770956355013085551055242034797356343543223505326575634033984642946100488977402009677449004902972351350104238914466776302691685908344214595312107078602367700884451960598887238852931675323582897734665773683280617456563706659972503879868732618557455943932547106163699403371610013694067022970141377639744994476235791127253853901673268189884749331129459958866194620412070110027970208333976331132262739618504387955061277803195597210362020681282080581038650062253189905444492499887572850829166818340462768029131935046556973405259158613307634229931492479674920692518221898387590569283763217468724204173269307099380704624799282691339164539828924777690766043582796917324618964445674679018121964950455802216934717438932848383555912292039068106830032957874011435502675076902812343325048486380766285521107517602258804411051276122346688342627874273510941097997056868888448498642340760541869822601057775917948445830550551024819421606146391579967991817675564318432851538457196553599050247390548421950587191720279036542958312353812515354734731549759523522281528244826123320532705407268756017517067218068504727991025419791030293389225804189950222949106063211083409698965962350766070555322331196382494566024689894720506740730484793245552480835831605338502896318846799354945811852062335139891521147492167921076633502977618132603321865833253031998388078929705982477026953633376753865281722281638228556090603935783421786964707693155004123873953525493638100334840153873927445752433066431981437097117938741828964549828776116801479042914536858578241247448521022539218527090635397141824094958811088281735762379152776217816383438133589389683092773857286221226437139753926571909571573973738991796817295410327569540953875956247675637170051528718156233592646170371215382869907304306202351902499292735345162710167702499069471647085715217432737585618476494840199404686304036733526341144258660603940876576655418552603973040118488802694813852702376790368616193687680656874222798884491718053248570920220033141698267140539087231222352116205076725626233194996400517355341570176518587168950842346489636401887262553244512648881439966311969566255623168767226471433642374194996840181161238556754835358942797717562620858435938000335458111784849150976672323718315890119552919867857762391192467278465271477307102165623353821310113176535889042132123988645365877450186061429959503988183571338178242674350313243963822839524246050314218897527780304904607402633788666488093216602533691509444636488670226957477337116752115461813286061585514272922167072159085964633334548189804323179196957039138846899710343967406101124676290666779163713871391374072232229566275178013582840884710565530688108860051990614191897849306242248105303821480995913367570468239293725734666063978251231266146871709659218625276453580281091079471278947948945704500842115105733862117482722969078925092598688421403576130556951513490851359041696817781175225106940078329711914884275835633929169890685118351141406911001317322050297053322711503484260779960780399829201597377490725596549574406103735542296886924024885577683412238261135645370264519801611380856731486489792482899809155814495224078928489120612604136005529248449130185835023215233127754991930294943018847268496325278128987269750360065191571209222450295791955221516951757827302323601090796460165757401375431205816828318781885664434298469637875944251165651978943633183503273936039334442628583956669462031758818509547483665815328214747763522545717133834463326040986329535300236585047611348506933613533674289420028451523118208957521382937088981781544545824237569956537861785989721531339289655817258911808844221086422460197498175248619439109243385059804110688529521158383261935879727001519312155020950467160916158866127783378890388766184862357356019766609397165996427751861842959244552930374742396838834660692187897971122926369309229217453613514098980399425619860826780201998975881868597501813055462148053165251680786186162398090047168276881056568442042951936913285538318965320307248992437571900381067437473375666372393732253861415231669777064388073200931338397012899821613104974304237763412699501512524849636460423619887537817853229860015954855307095010379422617035748592954283903242991597494248536622233481904256640592176626715976852500616189411371033897264900137461579786789365921923029706766414219252101102824295143507493863103636285688174088476220297470346448543246946388980620555790528075212815170806093945014902419909859840711667478056730083683200242522722124868731238397407153531034288387156096563832020270022901848673980435259909085078115399337432894693572596594434498283533113658045815273807240644132105039740447801441713696354116566126954514157277005673997134315020603374989717480958048508496839956434422572818923821512586857690992619236425842576390650621172734037719802104861712176134145341549433669773826839477874973944503086009525159673779874628171365344994460422043281329024188185917087723060532059648853230199049382045257897490402129085647386966175227448350955909345023820599203140993147828015828044962982750309501176812435101179665773659710156486404514703651766968983906384186560672887144436796242389978914790569236742937281652729554253770183350046841593268056152461745292953921407777241319003309227399909020193353662979155047414401474572732447672195172256599510945656882796537537708680633723345820334024337022901647971192210192340211529444334913267922689243710563006355582154661305442913232544644790030217605459653805964493920895065951934341854296102243276299262960569174504549135532928749366441373396508931818299824284244426262504571116071154801074218407556899977631026131933558933486463571215460760817607922277532781518449107468760870048878293147671683987989482220096883809559265783501367484272184973860927456733523719814097624776215037189989230810971986166157236397909532503027052662388720625061681762807505881211608673041634974209383613531442611648659375083491820932709789140231383198477952356001888105573449366634181593874790252543960397189474139024835415711071603864420411628262013934276609637286889500657900028376388669698076888983020782911336600577360978161733300940456380659347675101457246312775768465666133972261174959826900417069409758713441487117128019906702535267625978507027819160545119249802892322211948596964852219258265273283933879063205473623930076035594254580326351552655516253644008048030609915067467547464470615659948877493403626365485845329694177140391593615708336185592551658670792045440933400552081156584448749774218650394171042568455080387001615223238503281510906457126299351726063466387490750129242337783887093374689278904180441869139492681382727581752924065092267045446536971376039023372963774481493867622915871730162180051112203920918197670234245449263846916212790651636156680004517949715221145320193477699511762731190656812708141060575867845174854145163008961275826225959592528472064377199865115187953082742728029664180502464576214051039770276291979197421208811433317402080941668400422927450393045437273157985269305707359032354950046322457998715610337694475468742131974051246654366230537259200874654445786177409540229151504190561152535616906797924977167521666436880139452474982497960987302635314787402573085260706624900243387270980321953701942270869724489618733211207617032831167769904677585586228308410644914868062578869905025957704584734965125840250944543067833450819415868845259720190468740660977936048624509568232555102798593112651566841046980605187514210548797527600138075036762313919601011816183661478988904090309829357715954237918080042243768589466808161882347032762620496845745436208991937634935045693713179822879184980240630965572109738889057154120174194425185171126257001126905890784939735166594535637098783356156639594672303639487812928848514517296094481193850961659995777717662398489164505258379195983215899694310153170887428515924565957696775596401588887182263044345074501874752764194085123027894176439657099996067172955517469019420128058055344245235928325405013029659835539729896669116878818065876150587842703395214478188524162273343803005042836836490160528495688747267336376271064066773181216773817184083058719375341427532721501491241802388493912105316186493061450215065295072270377678328372461813332372956565239647041783361698080933966542894664408303935359052606248928223275664875095091198074254840900419598023899591471594551403628132999886594877558654993793844413134401890152531772616487135660603406046229927283985831122905299804190206705130868463016200609995615048816658594524263770604102911972656739457744651749455470892001330315716564053311425890047890454579055260064742025054197003782846611027836796621049173714718929150177295534474579561244243460058686533987230846157657120034518608247715489948277469708916199189524270770224078310141642429997531414505946868613930110576741541368055450782890512942701030983121045406003925990893053907090413431638059463180130675023347550316178607803052834295807332042449722623915204064398722780614399058479146760490118801720142071790296810434678670982138621860057950421425079556003834048915167525113638421407431240637121388141360425789510611412009521272786442532513090646844613199875132561676658848457686186264646706014690470369964403757258450991847361413243411569213766183244761485157662614522128552059971252134600157890215681413498917114490371285643394128676305709810212578802207777257964505052712460959896184179996672385058054728049665258941526820832381060390434782364161215097671390993702190889581706662538084418560586553780439049368795205639473166317911174508075092026166647133107860918405903843792397730067838400026666547691986503607495057088719117084903083887852809292769033896364204329655463495754719677505000388708967762067547721858964858520655588445449171286987752848122057225430465535766105402486358753881543367176164442891586023941720600066357568628371772464466556940365441519490772187388835598850063193685390419520064012943362023885653760805880931945357695292095623350575228845228411597399690175229771631329486532953096928997680538873136174606126777599518938604322542570756371780262063848357069796350114108090997748759242116550163631842917226979108190099568333679575189108599832755168953093736102978826696201096707378389053001602370673682615005974565364580230275815487691402005375923606643515295750747271233727515293538645652113711027326195017652874589141480603265264492883249105333997389366526704546054498721602805914603474487275244321892373767186506249588655230189658472502899375932427473760389981491973877241445932089513810858701808776912826928797854059396999879588606298661884336675668265976755599985214392798666718882063463846515852471722926547039458744251309338339446719893848424857958463704511876479360090221852373773233446676927421900291160562925429135442486294277930748592253286862921066420483309551979497347929734146153744834685533258755205730144824098467595190128893137007796830395413548249929189671996948670617904879503671187843176886141500092878452765703403368317370843103190752858116913768414650409115666456771097629834706995777475239026518903725541592746784660072813677960516463942799232818314909262158404852361621792335937707089223379420889821743923612845406169981042452536424643988831188746520206849965328764848336259624572154132373785582556663565559181642225879724759272275767162806240419553782486262447511384792976972780151917520146933861944119506342578776648331365353500112906439489609375808353373143010313532756220594454228309968984822279813868369904363290174966798538571952642558154118976797508124036668146835851769801562533324288560460968395880433114287230652740729801541232148840585189424875283877882098777960789894703354129811848821341831960436682223624683966434491486107586705754244259137499537334651724123631376502764054911099479885944885940159910818979575530058017777734202940947595824079416638793838723200886125488209046160215359121749639321651177757466092000231797430430390555831525243475072769319871309665399413057191855549881817483837284041001500407364360796934076369565175109365488115996734938034657269260576459213011328380353830887148939215583782784760186878672394934631097823747150771781379987768084231163817584850950197607263941600168576614986615495284728880220225986256912034983436541969996476983272285419549401783269399622337116981324194109779189858598429016318802356764680706602781126133206839473685111484768208583181136563945549934596082154268775772302137207534841743395498533965807918471882834123100042978374196071856390655906914419275386068075069260298409118619347277906576114782443449758852917455419072256134903822669689053014212694558395392535930931802577558348606725205091884036399542309225070784456467690066364631994384181290323059685181775981002199572193829298386162348443243496673933704436460861766802445793926639887699566865964412305877596402668128781499758074414597461646875145372010153823798257323978552301065443133952877567137084755635696560725687993078237658724586774656177070436777797107463595260753289440860731901597713724783804943069237571454929612733936185346260237703802393393390527727186526301998933537890535411880321193415076047652159477934307909187756717336308065898796079398094066437836865732076088399762593078089441170424234509098583264823309264425211250855389137462839272698785118494539484733814888832007662415327828355610924296718491655826273966789473445465804632656627547637711855047169060745255643959318443425717989980082053695479729380759244890733443218152310314110448882301043841545924045028285089496606220909986179582106873676299683519140112466794375048083550309148953152671888543299854082435587300953937558956983951470735461898594467706807192664162616512000153642282879791738459701186545901156762834194926683130564765028016305938012385808038885517375887003723624785253397470633797361804084232374014301173138239269362205827293991046404321982696559387717934821990957226354939008272002126661450407929685711164404186213363397640478708243189148297566129566832878821154924069148119341686615119873387838504748812326197174776486659081949246449230243938922463324953835845095235631744408729075197304788111041693898935075191124149663039426314698831155926686587258557412205476489999016596226604540348120759556523039528321169707113155961980161465063207339797164814494912848419406853373097878694049026745764077459338548605408533424701911189508541726167445417043787773954646343272903213015457923090689606597897407138082874552821632871175002781935941014794672973349384457709201843943473972461076132349529858632195722910428722537292655017091659211182356075106533503580464700534980591730497173401916261371345346784479613729450514877462673288689732005921504340388206621817798248558676627908735960064106101944209269760307866203157866394773264179235899929809514515594264957826034446569869673251696792254348330341884668330178190163099666530682591825932348042762842414093283352490734780825171089990317675282055293801060541154672934580483469687764781882782560508433824834959528772787270634118800210220068663883736413688882046965887445227655076668755127792247491714188976889364333826861960142195776498995769874797028426140233532187822433586528574763711010838288254747988994037032667672655252054413159343282636365854887088619650152369870096073448278200131737177444692988499841333107672625232547779987436818031821887920342691761524220036976328165023584357514755953215204758754426418894546534976967352954657915148116100777432375255751086464609501516556611549258118190984162386152212586961167376139060666450840735596233756598770993196691618371438210855270229318266193659362028093547289424793747695144435181452506262974141616694869130967560657944955061441683449983423702429465701388536355299824873901766771225999079443872036571985252132862639048456491148465941107670353949765885665660497942850641990377468572308250060827935360414440245274696126454743474600985558635475333363467831293977597576257369271217156200371624112569834115631245186859923320646719742909034313111357221540508318126140427463748987283584251578256010347563420165546932459100287639090163011610235281965558604216819903109628168038080844103386220984660734165901495959374735861945747304348579774037591552748114509460834208066044901073074623659301094034249961608943734168342107286816680075643839999473591275891192037002814497935343625641934156417362252477743359435887325425303278641432297719861611755945798900960719977654876965454642200180494972415005284336352274481759810409628635014893154935070322158138745285409238852512092335439081240686879972778739786680587390690740871289585636125334774685042878295912797814957075926382638955563897757805959302248644753350329417089683384570864602649027684329926885727052079997155147170535106242137156365409967176833937292496512607520577563063192958382446780744474102860932337741423175907277294188552708782852274023730971725523635376142800582441404134383147038333475490546637120575992463176192783018530831533626254669724882404380365576536869758908749242024082459206850718372330526000750340433619408692903907376686822093158164083164506412142842169473447271868357719266588619612779415216947258533675954943759820239543530139943698418024115115484956837347585849336799900201385502850490789042862032825014072471371536865038722511902289210434649561296355346466313872045435212283429244419040714116224225740196341090486038641289529109880788137429135962418833089360323675351205798762361348986345857240243022402537523142175274005811909220542028624142825200374514382779483120096812580303450159840805313914859468956841546153593602397852702530143708820334960417632905889073336314298621195884712550339681704564856120156641717854507586058381253176481524316817094751663351815097350527555070216867765846328338916522406380274419805208306140865807787047408238804876113626533292815764073756791606963327815658051869193463617801811142799057491456299838779562930252732747388568665854625399006428919321387630785442260509082703018861843740472963932513812154385295942352861652431784507333031938172205167179379375259510074212529148255496854118457756376007674761030852493420456247346548143108258115833551822520538770963569050534350884185186555012969099853492923778588757211335028745919273361917138055780870429576974084603831738701270575968737924579758173153945189449229585247706128162600054788826418789884610876620046885280259968787178301499888366712834038613231959893120037386900521176325519819057131108608782909514932305460950180376710003235834049386640391243047639836379662607639650819537471894828320791227311657408059652710759592761808927163833190715591838381988454193772832100738449157622872850005858918385738568652283696506341198848408563792356344991041647893783799948080362311393838491212007604679234906501565231869106356834611164694843437597094970653140353340856095413262593616545597627155380606236215139799010554345855165441094777291257551848264795026546565943516559912881843007799815233484220368403389229491410566919930267804109496251080418350137845286366473689176042800948772051051085396438165862655930929325474445258691788078171399635156586527688445736603616596855137822419966752359773592167187395313651136855872674627121310955076605157578585973007572494324071860722378931206179695216364618574839025662145218054551771107986927870576029462629259797711129819661232150046974980665809424520833415659985890455521027360640744150532549059336981457045048904151056084576484457751319555075262772080546203059573956710818482831808174251037056210740932172288949517576193783172630445711224970342474445094858043718700140110608785205031592279801638488975885548903459750218698538774676386478567668172562991004177759185051765068768655666407378970259850466820413034602091729929106928179409202247604679609569452937427752605656315270170142901748090352483264143243452544772188263363563867066383636028594730865280154290869312773503607820702624924253655113657579116949552098538099779836839008868954782291517601402701432981148164350997117799407166561081895035074461983935639370671964885702898276076920290908711902775254711915204504757613890115398858495080886344077475000800806809672256625918793174368054635152892935504196402220133149135515726826421314081567717536402734657018268763432646263877842866711128634855529425449633379646642234662559192496360350066174422200918819744079287192194764054618058325333629733632501724928480906892100768629442007938511169191910172001841783652298516961055746588212367089228450424639279878666620444101045399377568834193586123243888206944123069381731506452938526234039457897154479945072149882918158078201720045857780311369205903025828177483158773783252883275364903325489735404682073563333665253461132814107183261078937933362932395340023943355712756488828747940281842838956271264460349262133650709525741050423181665263387704887841363011695985385084574532481058173585301521335749638693098844721145300245355501337161596138842216046937371376445822184348151725346241972523996402786661214954184836622444765080186011330607509077641821067182559395720223781336029307532730100970280931102431468336157299456393546072503465624349325359673131485401664398988860123485095619330615655639715930842279023260947860433933461241535251114146544554771930319416836016938233982749811003005143900248182242895165142422586252698556667131011484975256406418332627552244133422394913087833700122752939578229876747359289697326826578758957441436469317691134155010168686822652390620495532316829811361658820321180807389262859337009443246718530709963871761020871627837847037383332530168770064286947558895278491629988252786862106734137173237716002711459321089295791375563714955225707270066848218042102745589489405719942568281279438973866100224770963826038391095972777627632371451390671026225839748835659325379743104027721734663841417519530428762096653492877921851246075793596642024116091223295879922391538499408305717918005776464071294428065760024551033897598159108270691663026854767652718516965463292793599453150793210524082516656969131621277594347952524963349946936931148266868582249069571076082674525277763630254529388903709760938098545526511335133333012811682858478060575713757566318699855161183903607388462148392517252159237351483815500525587870399411676621390656978765693120658731443942303057472648498738889310302464389933203759843489537451818298013289368652222806494189030335605986599250754251895927099541725953003413758185214868957703154004938818747381887670708112194057284201067944584262742059881646392620154536271537843923138275551585060779267943486403814995957507710638810899036064307151818920719764897649136556244134532388624973209208612375084959815011122196445672455667993823502238099603259006169193589038498409918744022900937535896020117021836586260114510324923084370645268657317187188877592508726235668884603408780348009458310955517044276790634036373613595740047049531293167284087209628098585344401503042347944473613597553113823659980429810103454049080610089846638847887437912476876945471987377658582219746448293199313368728354858190596464917999504506076619117399519232293651561059314158762853820616568262358344206015240950660621129415163188535190360028784537598140309295207641653247360436869214380934948651277815901720391228002429916499291486637521271651706019608562221242781065343210436466064494832174596062438450086160279950585149445894289638584268554804599932607515437746260147333921823565457910392351653967316986946375221422861517748520490307757002730994176976378313022909244834894837042413771377307180151661907453710596219929765184450895918200403604585275730225140168047240699071066401307025466643844825095034187184565074253681209423539889996059072629512077026326808727814454056989964876968862614094762913907343757442428097562105669320052560763596633815229087350157504756909573048659282686951960808480809868880815914241079785896266258124816161863732481184438882504660326389848836180810847490396034371306423585738512508559199220108992963346391206967667661150948374639950158081081110431151554298406809776186344234586557341956319636657769566515672183753709938870668147749892615426706417450439569727004040904979875780241547552783270034804139751838671503708090970468968706475746860546678646125293695676789577644907816528582902483110905945695197408255698804682290797535830751320227447182196859822561641231365359861092885467350810986558877683158672452686809333421492945297240896283079877443213885376140552401329459420451840584828024995848812686524868769662956908890934383100200909884877709827833673099741228619969467370771630166074910143762328514267776606215249619435350155213925955677339784131398389461712902885335528373787645994040960705764156678655685365368427846469709486492622545839188237166070499762829917396977263910084236333556073001524074622188361682890100891706629669974343797773598220799368574981432674370806814178403436248391339836283095550861131260861732517771014322707880821399096477003300602922476970740195994570554655109253528041072925130948301044501214569815323577002872809117688982121431284637530130758269482339099387198850978357002869252911547834382162132724792901377203199134010653417973701642744296874106110563071413875798276501464921547803545689192959072100480141069409035991127951173426701680535594851392505167881163807698941961868041473598589653529587134843848384681683996798164337949118493172667298583791843579913988745283587174582713482863896006059775670495189837146276813325578534854736393622032821142885791928056001672329350388368493822985420371246739959452816205735200754043628005409783404913632330255833088097493392424423801470826466354606688996766911441838791226769683652604257440103161898288965714688868609651399302739107180555510110111837049353952099084463208711344233270471720074103616074832841509543596224788288021667844988823651426982917740327946778685146000439510286597754047516829289072841914112542700643157592177167599450634731448684756710609003810188621929286125602564234236585347780321889189494997450828837044955918685593363848770407907550554037506704319269500179537188288787542614363828767278774250462770518853748030804641920829239561758069080373095044746335194648523393295043762071277654840058729746628820945639212082811018092549799215875617893298310431495909948372597049876574583295805175070454328266107909564206322238524496088416581135201551035219566813052911595876633723282672630746175418044862621056764419172636960363155335670376925530814863580007365366728932059997046811733088208182225680832720222184837869044358814873341956937714709574486055327338545857682668301287416084383916352073513543270216325063190818316006456967509284337291620545856062388262651996085964467555736652456406559417333009090412638900227734692682122728681843637008653672405324782894775264711227845405872413246980606896671808378997564347811682813422717486335214512644768604250485202381579267324037355823738652862270015980266128471157428225309004975993421884347731155388658073359974766708088807899822139089742443340105370752653470507862922560305777126511208059447862147459406497380579164537232397267301341156340970369304576954818512850386758324087044075234489975582018038772700740532428422015394148087245102489130827966979003506684733244225742019834549600969252632431993534816588437052061169876336195782111937898042994752256098516610885817436557211142503067418316048148714205524351663512499969548610480711473860073715478309015674190089522946789192738748462365951788439606963169022582062090610514678582476208492018548707883414692722155229719483363061040844131996081363270203457792543300428106653855703840655786592795520471042250951928838760961046220095933538134706734364623588515800584475772226909630543695090051822088666926309746902071423717193002512932942086887957391202490524435500492875590551845176981345011394402596814509307552149299840401541324961308172508756422857298678711568960906821657720938549363618461825669540595207304907353514751821322138144494290966556727411512865478102844231390915315944358915905905258310613267598742730809509431779391681256269328945424107495285855471915833965883994651944730810274070746214942931704090903440231663175871743559326987521019774637193649083551513929346993430141886490022277241256501134451499242386742488330071158554524114632033315192965108780906583523463682301229266986159739744409882118389284125234777136211658357951457415622912778014763372425687678768828885454151709625816325295726011113339672441090746829630437007546295140364605683694537351798375794387066261285133285077790198294840136990849737473549930121566099134171406767793171067427091451014684875144708609624535442583153642099067138218337308171086894186239985162627010917887147065505787813287008279492419661189256936146221673259576017812181693282055187596241738945119385728757031559160515600629462900050828126593012401442192332897733278840052192939858821654559916298875061172589082008260239401353880622706149490331070461208534284443686195917085267736472836405963065738518870055742864062350944887683109258007473207113592693306766448035540940302661619356207136006367955423621563317390240751132744246161906660321729176085606283595794988655314660460759109696903495170984962298743274004697144618029947350944697092638093787921563988900064791682606845708349866570712355301324718230031035277378219732103977745377326627768397964702354461924639294045030142461641929022251491116940361661464617524912873632947286187246032665818501658299871490617687694003620693436829679327788750299697714401066894824199885907929128533320652168553046172877271761288427521659009293888857581983471328108051208670444855305075824668006685498451330600492224144930189213729189438073495274340195811601884058719588005977796822863949412808833734682180245400802199815806144769243779761282725167262196289023273009615326163553148216179406096239861464647673544098142729444650818477311267088180141202041718722760088788171743938566642183489306155071195982986904206408847923509679594764051479383847801697952919917427103492530624565714229303049617600930724868348024194807848857704688681555755139779031738335573190729057645886310409686146934800216284584350084561892344465453110417324254864647306221206806358392233868856266180923119795474341749089096878592849277520509026784943814912340701049320467180706025767737537897492482572547814649933585192031418324578810811214542659335321436455364452348168891779839898164577270146331809331167682884665760363476710936170041595691555260668933303865937610386528940742863630441491097949211701179915176001174638033191846199305602470101035773985737880506449519811662067774247520146316140308193892798061044928160871635115947919976631972692894396440361810011504087878873155414336801746944425235069481613257482188070554470979911101177510253544391632276282737100494378962212639977613211518436786760611672725438003579632703259383979742822165542233868429532974362868368026507836731770805413040164405166459161199138633536857195223936652576123548639798756383369472644135034902337255579820029230586429095680100303279209371808596222339651260299776492870492365502038168284821371833018291020679573985113939635110191699038735081750749902803257549415404587959616722216451134717741559340726391925033315573138499480382671694970164945972533443373173454317148882260891176827385823688629266775521024195468866533778982957889638927919078590361150430934733349880489775565256189929221600273036332146728974353964340992523788358027547638350761864949922188289496212444256351191424766508488699306846535090435017346241987327818154216685674927905609008476491357428062088673684704484974773182017910846039952343653355209132043247978500775503051508954487309159439600182532202800450770247551960373062917962001469488991632270410500025007651987532018152504260282284283319797209696362499875350753350743520586877971250821328067203751057129772239824081626379083346066675294325436012577615767211101895715558184425201506637936298886494767709789709647238247053868861981522973458324439013958337094557854785858002948553345314894621254988983716954260369616712334145714824378050092994010277851578252594136028626439436521416988119126698473580914608262091542394353008899954196516255101860001722712101541059128343401333100381203964345946910787185162483787509494263430530068608064967169011662926504761344503286638376586709273046212780360611143590109433657916602606364519469860538196070224348701766437292465547099672398837910928498622497687179362015921106198007243436562140653893214371637280792573940829351767291828604564626056800017873198364554977212173161048213765488337706835573232135834345359126647555102725258382598269526188441348660173827125100350346359910333756072094099785775963087704739602007556706895400180345221952696131580977541816278753269193039741870011283154085460186178882447925299878117337174743264348911795096130636820764269116697957871285876179323111174183936460582613877061582360160517384234724487569849144887478993709836216106226501528614115388973918559662920587928949521119793165191400029351408202056971529047698794120562198341135455089705396188365993367257182343854876136841673101309176737016240349583125808481530124133286171954751701825898231674833171667172732526251973076056591176637918938164213407145186461488339578485001650525235820556856966491128556088597939734087930023660204100353858941485900927157499106755604287603247733276320877682590647526380725469643893279249958653707546479483382489977891139281414766055317552018303174779065192435264609925187958790197936346903662034781116361379446454423487358321627783574523632534230529258642740778589930534067929930036725768800921760184817838086021568881711067121554702116287851458905210247288655779808280330262587036105717410908597491271340116740286952902518011777880016813992677676625714044572918694716756308280400672960816975809816558832364767948852077275223209183260020291211586461946602017050028357146417719472584432364831430767572644919263362026995542004167748594433815713271213439478714880640185327425772499982047216830114735304634001313312796764919828947881565152348302006656147303572968965751056696219775599704043749206310097900172437955479980312931555477310892885946579393636383349063567987360893770445146632024512137545896596654235128261156490535147276294966678241741571843471081322974101540397863244584821528410682982258796892795718496279569166126399285789694133356115385940325426890852786351819021008295608637402612700125584339970409739568183391346152539331805391665661389838436255172754189150052028510544476326834833294781327197420309038439964637823867541221830397108611076967762702256413398282436401102536158110452188296818358508181348916339986735999089282108367500606644558421071885805497112296811889952715201939036241993445784715702676736734899720797326138546251347548326528777666764438466850950654307139020014423586034313155401266599208396293922245796553563198546235526321678708085504200518601229590280163523684114354641700903817158059311097302179700023108006096461608476729778081626182654071280551247739091096041859347612091462101680928898895351978919546145230235267922319874570456797454831049753029789821968461721573194338893980222095807432369725987434064449940561236578087604219929522438171670185089077484296843765378522698024964359588386323371082124388117581011715594079656957206497287147949818958628172341770017262643957158927892044334440481701782264231375433538776537961768106814966307011181712159195162928963334024753072107127644976062765265950221963863312127663069875266074271758089767199566735688777218026787949998318868919822831339211100758578150669489246695286698188860562612652471523365205806295942897043611495902458018361344990978974881538438843006715947758916974966298075538828227346230669319208016209113037552762873332349541597922896120615883848870779012638831758892049864862513686342056150108253940687262801368612407820923883114068804770196565922611939218306549764234711604827182647450979092780585491877058997813564769679398195293415460231289405581175635632305650061003490623879367264569394155041304150728126338407251500164668579170803667637660732838466093217835374587577437774789570643312810678241614069430238492572333607494332180816453681089853981260000996176763332763554735458791099244591753595223618173364674765576981573032931374304220235015028337436516871999151870826983304441130276073157482087589387857928507844139116662865112285221300840262624664282458436286049361585287588888349990342503456090601672727052516107524138568905882487634120099178072865376451391547615788033259926203821813920808275182450489956253748844230272610273237148695313926349137614221903083423434502915041567851095532378318474395556996300747948405944680015021466891244584096996802352431049640375542694607461929008579410300632535119234009082431045357159841738526541110173116638843508931675184296379041071636442274859369743413608207640042194368772769879342539391070161586022187648309761744544668886726610098947343401645613895613526164286272577508363155196079278983637022091438035835501831198738205409395007442164675150970035112620680870033816846048916552596220736077523214677126487703410461747665216368167992292695421592266460024083271829309192637678803634116529138309847052444888700823843705625344943697590513153411806347906657745797727273281151417173747228313373646126442412787458465886745663863205904379564890849467169535545392878399418527315551007448968606265802924280253468850305920852052765619338644151825379787973488394852265206347633011428335009037655378410812379790052566857725931430990649031962783326604929713386878716245091476863768596084408375560014097842612513474636114493396533899247019339467121328420074266809093650807019568458011358571350908185385381009239822055729063513283652857997822028685037408726153282549484930465481359193221661855307927749244696489254023230300018169480515970956935472085883097187744789857956250819444533038602785854062494153986479872761554073449231917405040852224839073883105890691896132808852326410418327491443602586090334239849930180147010757051029708093586326116009412221240169133656290706853463307398838585100621793731680883260538895073111737642042545829770988290449117357747414036548882488406780509524269716397270960112104986717800278388794583531235898452904912902743898551633899136158726615816353666578424221186452062195678718595636089269149729319342749073910961716401126519729463234052951167723230236405686040037979811500652470468258744821379272735504369751359323694562613996287990266520087181990469384527372716995978689679919744729795068897660815938514322025544036966158958976740865282606484421361021683128219845034600924451273387325942790891825596294698065402606070983499829475134821025468240769812113629251039113949843206213535666965553374259541285952584684735436646221497852331248891762726129625467059577434972065651813845056718810437730226855395456126884262989308447605708904504180451696061288671769791310271406029126915089371266534379241517520045332093049332100025701415650631204075335811931960038974412187873594498944545194871290384163671066713355901730682620333864825467402535069270812069615483280588297809505053584330929680619465846782925963643551755186404953477599687912793858213850539381481110690207265656619825950129125204818489981619878343758319842931257652217861246647101078672231566924398732953327104385107851510192822968779742564074196938634608131025615196870557106658068770245008972111757354173014838526398836102144656927329014374547265907441817491659924322525195307713053832255011499588821018999749826073163575279344293300460656780760189480312006671503342629999964831799472289117467535548961584273831221960371296646868346953251071023604153713375711673890778967545554787303948045539199461911860766734786104680551462664819683902441693153395261500968479383059678632814900949289600373815029891568712552530226980828351024234096099179135459429718921403301245057521702966496053767970378239325204573333364030442423200293668991118102743738178690857108575268271141499242801325005587173622219921029741832384350145776010551433611150529282557097210914584772160416912451965362170238823538920732737488589480584733364962344511497367693800585702905159706319565007773092611598414102225315705532552196130728352660081379243213566203898992142706410646255706104890576334266728838794126766838324310488028786195498026209589299134284812730562203787884366962546168667550966536031675531692062514846603129259400975438263232746426668197621490690997280775183441541400742241465493907640431520835515213356201924841118188276956712989405592511076896232273840636741555282006798841431916613517518627285691661510551186584438163181943402025296263577171586809283945922733029876955517529954908460336326696548826056676236659253080079661313638043066935035453880502104017750682381724031316430791523803893935371983847101397559743909388802637228865624805849161566506216683267570980261020285154672985620614761601707976776315111728305933204918618971972792525395393449822689544782970114986275613274926299063675135385931758061563083698791811973027330653722285692042517054112909152961281582486491924181704858964433531600325618901337395448263405764337373479907268158777681420242462295518879072833075347544349340764536654024742453472215341835623018153370925946182768286539228603796918166588933199448354301777074646567057216394312262683435846482725040221851988317831556189745797621781407008415734905564034864487260952062059066280285892554063218093883234046906829635028525940370452299871353416421582714830311664778342530299299995967057804754636171715614905001852775960551624924006990594504327824429991240377922586843259409438154737696543860598936906083951705074512350458896173341098021403009667174534220892462261995773533326967356389855005486049031712325595825345178477006969166513747403389024295954174987107643470261698536100399162819205896147421363640215857974922831103137122444286605622811037562897320700808853442479979434736816254592937022409995558559145861125091105301623413055883947309228185790504892632753423316266875631255719978694076438136120547094327438940325887510418258910468895492396443760121683141213756190369646369161067365641451642123720673698910958244014514104177966432356394922262611722329070408789109524512255866684207486456349681472651849063724414644643862969925263331208810026406715136197805681906222607080239016566963414566310256883232489990647121483525337219229265416640229848467052896766828830606389943377015022429250420395901907641771734852402243602160485679631150466011584787752591254068646847147831790366601825966829127253751589971132726732896456242581367086868964094841503950053571856431869070779734011669558031440500300656875844547684472829960553008427845095326113551105356523538879538861738570441299876712960353478702468717459599169901522575333649093558577943700548871531978264715659779528208489442451788194996177382443996847563055260381413839266614808572987696504079580043357257739485987149270959126227104309082031450273578673995897211428856709448613324210437256884246378013589803533604826715627524693058718685379812960786843043463184914929990638926579112996563788877106728693114722201893437680040093236071182529791278701790389474729362556963669451614348235341405925706732794608782976887335752669057966907873692415060607342692356983708089654095580575110372969070106267609699353778480323848776179683278278682706635487867326479905971905584508948800631100262331792709381773973234387388911409113070362844938689931888291979647549858354004260368735575360756480791769927768287431434352763617140758230270047140550062210382828402756779297094004727828235102707495909413867550603299669590604604527241140153489047743434849012807126954411497329720179615128835087572497884898975483003925472543828897877758854150290836277918356769843181070954574883141104175485103413523825203219711983148813781352340651654503183143155757962960904585834387157928651736141957270398398167216672902669915588011978195822454275943471490667491924999254721177172682516945978143318827652228717463572768407112595289321343877316139775749136635976851252696955740635089593588755684153627112369777878856206383966210183788332038926774237923836909904200346075853303332226109633260978897290877230684578424228842438805468308004330643995069838209853932987012731398265709543450419462206145932053978241713829810954955908510480334562871666138519193160979952278671762695942460622670698866515472205992532490869746674383686528318873839479382237765159404868160683732545724399936523295748059442314240062447772854076145303437878387099628619250500201976519588713238153356889415458415961630834739780085844259257480743640070158436586356287647136547360746068185522467974496488382703805631848806247383464792026767767273205646672498471404768217035786440474839837435542038216060188702819359869745919453123846376273623901145964259956749404130736042952013557619201629145509359566189236399201087333851936440794073465653777633470087990702457919079558962183462523321105471319770453910320483280714967006706558923015240451006586100449840294895361086611773106952014939220562751028782876000122334558252651750300258024072627746637728533626016181212286810704885190733911651048201205560428746688370320823224518159088757849211196925376425563022191893620679164245951987623274201005155083251860597112477032467877051904121642278095575460328695300723897078942364815659954910299663527885830100099164886925466123853575419098508933358808510929072282695796268767893151058386383663314240733583981219370323112758640118360300989039207930696747452490810470163375113099250735630702432849952191479892219485693696068362680688810287590944721323604731843746425970060438178899694086241769682081716138193393958819672929462070092112971807475366997298302678621493547445723495550060141805968339461890976888859866801584150558085599344197965772054677834574568160170280653529711617724137888982072315054941325865616949186763257960465726299355377647500809839484517893359445685391462138527131122875641911651962192636972177323555406928170252053613193661362151689396043737409299491184495984030905226511212920887534005754354980655419843879485355278910638903281049994580124589792472797033587654255860229534166528119711921386952973432120131959421453559591046162792868361091274041350725973060959441330288111966462132952354485825562643526792188126679734164017191113030002280368647705249635598941241516046449466145545746583044761656276458221699725272424094797063826847682076074096182750723682755230027395618317664030606438952323618192805452465415344867029388320403575582252682579284113744259227731024696675434582360633161961722556199309882511525785715418947042346415400686757272207216425295584332223682006674481341660171835654621917963953121838224829146223495806976670511216820331636423196104537619314756336134799375446945081714009155835702066623258549050040182298076030845470133455836370648051507605456044934942772266917379139836977736562190609592634979156903665176665801716428154276826506248574358733206544439322204167031974253092111055002499934628820758061907022336408548686663861747653011476521374706997086335212816691671756149438752691214588449898094268872945214187095173362500055745069099979688053422231679449598619187844680640931360548855817112695012796596407574692635450633520393263769813439722408059835718742565190975329398839061800624675242921769599386090212473105296899184705244421175933128073907770556092772278632027190988626207257968073820135078739381239493038173930870092727796416038509274518878442260890104225959744970028150632966131658203310114618290645791241405038120067414489782677517462818098572544621913198891246548022714686806259880496723136900362815540244075327358223553236323701920623461994195489237992257978902224847565398981471683393939590851509715354829352847737950125248115563819810462110812110213372582432783539890631442163817117686514278406820519723743666589234058339513646663241856203760204676814394703645402038517785832024121960021955517880253862949067855031682065333997434176539810712656043812876512608228485969349273679329365625965158785357933173663863357737397794208842329790955002381938505909773589634465605983199342179326260137088451738067685202804003343070483486248236702855374300750774989787013792242564162643846430590735856413611432607338779997023789263664286980407809026806795663072678588114350419091930175408998547960835979982297214457672230023947101835362355087708708373210605627304901240582953300855150214829483687422244356922542866058378790532892483990248692229574532685936698973206343340349163080652754208063513567143402228859390406134800002026225324775918618219393385848298601155472580965997172446581108418998917167131265686093073624536978442486388551724497475988838057215373330357832921557605461346762682723997563987016217691080611674635217669535742188184864819893848517611837449621472468658974401669481145710779018523448167595688215415791292466714456679331862306799362380747555639096692382600866959138442963172274458862150265918930366617597187198806068241929252652295863159759978682061892956369103786328566080116621752304601907099736136192936687303360600804668591588662726532008339545966866221034052509375937190101641695304109297254740157120243922965272553984830994076809350105870135177162757182726337283865325702402862439535051365867053383505219391238510782763304398316829502915917892316653899315559635370074979136771249435150826345526579368574474412150072062054494286763538015729469668352713625601301355341106623103829977910386495548533870258065431351669628482033170993203648225027767324326549091250108456145712990915404945792138572246040676396535117580833208533311033952777248953444119115087602839527293019117888111548900791975161274379301244430966466863264499185533730475876854280276091728068565670371813318710856703755943784766407660673895590633570949253681849122816414927858277123394870501028989553510841193199405616664259757750699848596015744794475248891796091532204069890894768562954302660518704287566366011056757633980062919409364791579977475689744029471970585162101442434966698436709760566247547028917739050050313896571411897257354245672288996070724262789915787431245288391712444409761109796940555395276678736569726238857511109053713278948338525909924978703397377466799918725662994524616231590483339346645304725530829547881091847511148199817898739698458764013311401176734974570759643884617891877941742816291981641591460543005146337562034844099880569529198597774346976566044530147599474437488850486023335745436679907915211036178349800192730527053302217306823264355604938866933883328126383833467585365740572397388965706561955203207942358922838176118555092209172211885427021667047447219888890502054330110347844296748304116914732426943411258738145828973612393745772191232117542645808381297057906752582784067108705026862442850254438336655420581203594142395861340312184255879181533530645178636215967827285651448466351698590930483630253169824487649376901045644610782088727939131345111578256400939306158351071901641850553711839795203293656184040581540318756231488519046063245833331265333640286003015311051608547486332956958319852949201285152902428460081121608933439739402445156413950794913161316146568360751420389257033848551860133865898003364465181436810356996140761906714204460654291604415504750465603510205347571951290530501146671947598866099294339483321470421842489087831539149110307336218571914094460015298413280276801868139566339403646528911996604623410665879741667960994225832841543992600854142665824901061180313562769032640745497975389520982485601439278023564573694281731869896648224760048456210403420241575373410147156305865022530404690409656765890119269860522619880273413350840921836206282033174480403911072865480547111480850054896429754597902977987124359863608106501531664721507627353155659343642711747315748195142054456928332979663599694291457676993978721156053939630262261294119861907681076891988087729818123887693073430933435327851630374273137848622949621370492671352358871326670169737943467920648144736492777531690949892212572965095532239463504793085974987475982804405565547465049787496020222304395732148224854473386036254884491487518967830373159343587774894062660747287840397570316876260524485764626855968665486370634783869001163179618862682011507785661575258184177859026218946539335488507915394620709093399331947760817177967220405908374490332978733243330053187284353169996241100199962016533774789926439279380054893375196254748684121531350694099021109045908632869429620713415460719688363942679667133827433028500190133299086821483289356430173867411958717965962146189293629087095751280229028637765695288805086093940730904797143195412289257624228443839071591991682533708513289636893963801213297208994170254200418710986593406074752168862544939696526638865600322073354010997354466808752047595463333227840407744163905245656878779502488251484175201219560587457909041198072553386688554697401549454352557393470033073392216008842881835230175262639872372542429700911209134989258182046402788390014011366038668759934483680229818447415184355952469421865055715855936240246837142629932514624250425549299330819856244151419403305361094177296716559857249754851840444450626125603014479111086270480035365073301855177820093307611737479513648729770187651102125083364928759241829839958217901513807801504764526560393387617514705561295009653756920818209157753712123771882518509088248569992032239820347645645295536947101828831991926958257149655084028000564494480115227664216660161845150916763329449256433508304051609143022209535082844406570423894708842685997556903125045516216926674600924516543788972600674433160399179512254819431258346811786461168435363122858374114179771696793420765891509573670704243135540090117725079221745574570011591441735252162588378804091861391395772607202831025634379444420681116251342590785600134252269180128767254502806670469621588762427153515656366709624742804396085992487900739200557435791658996835003400587622005516824036701219392211896411370276651354856733410149637811197785846105482714289903566257044919861388606881950611794646460053561904983043562437448120785858938141148930550979620181759070813529908513604835044294869812976992752616782153502483481479797500138783939171542373665974781084375814716727937077578676856891321002074563636308249200080889861662132199793850450222511570634670759135754903686343784090333771559354680747189439858039605852368810179346661244975964840666342621997929464316348190511561062047484229182531318413082016353522006211742604870444786139816968796743056879549714835207622992026331365786286774495859383753237311206874823774370298356489685769647940692008535012590914591237497847056954144409939315516633642397327331487623180926495284806438092083938358957087875566889968024784437305476669080442666773428062435122204287274256248779235476150219421411522376924008952770556477900587644777966914849999954542570820680789282700081810795978390905824666848173801396613474781321570642009061865356948261106835669436375021122899566192869578255167732470392765426042446436224641310773718722589007899272412454133799048048215422802068980862556242512741735199272107322610883024859000999546360948189626463082040729205922625372556391214343560243959358006248797218598457181931207832131397688927829903585124826099820267316555686653676173741144021861492014414372538133269993517330241177355823181952080594800391559426008178615716477212673839981627880493062379791472117415413127936361303994485627546336881104943179621231036979993820650057025028311495536133001863575364427596336264453770272625840147246713904770880046639363327411082035135423287407733966466070295843473669261453722322119764219744815280083209724056044829374221170512179855847927463623781295931300606262533590907632658743631440996413574540466935866161114779191705889078333739391668290929956279232233374630428086753612079184128703879434601682919269624236990748662260944749326536202109160536000882485074543683329672754202282088813993753373612273579492004784538159320535402480465900701137537457090106701056225438991043344043340064832016986375374192704401659652275253152847831533841611276689504937752468873984145250501337343009662654291867723879411009923989508449454453612272353320612566134815548123131494344264623405784396934485769806502879124431959419478259027911312270348240377164376445056772798783570373864226666884303370009735269395585387548057031541653205664197728761090356876279441036363947501146296124405388308064566695756309698496555220096661869496734496965455243868701236162171467332511983397413961070432127604572227815861437498173566688757271173566488358096931417426252748123900496926669703754397062603076656320438894121924790701045485229771372101253467676009667808532829660432823299897916444427326989125741851611326583432467847928121716552978139519333152963942722846948627980654403488152656550129001423309031151377961287945100560486909651497903327484824167160304061823367863597235769725905587574481055613074552348995962824426320939678232707727316912839840473258788241421913667504805190887731937335935653819800802727524054790295505186101877764483912018700112403339013227006408076275960481042063314953030940440388123297854783812582459925235086200444081879469473833097388062954042011102802111781725893186400166852422455328756884631045041187241189360512331310171395164169922848187132408511739422843876394062788148499519087083415587641137517315674865861111027100283044874179105835149487365251440900061136850699653518740973693388796063085866371179792992430147438321871691229436301261438547830744864018579471361477368804048490332606269559111985685173886406016198240332460899559237847645684428690265377285017847461293715173579558175817952339375936238519786383637724884144552485908111277624329930457512348949553335424637491784452516703643984341711843760839144626575077168159808257467547024263957163883768158783658710460021394179569056597246227751103774067432167633120644849830722572132645467982108156356537132095775949875484902399005853062574883475410680095101518436969182954549335198969100241615876750141413335461472167375609028939556374358787789202051039343941753502740517638280910521865532221580124868724051288668884348814546518333592645887729768703706742027210214690184022265011202405691505403559150552019007367657811503272539096863818439250310563926555537067946056802848031396114335770253832530306170177052310478562232611961079416007792155365768802908686461239296624310902838221554197848785590179607278257900159002599394830047525959916696832487996856871932754853557890481303451637327797765677357123603127307081075281451747569805757316075632143351393606693728466923894038472914600981290186890823548068516719459398351936944621773766857880894267282679693005664268786971569657327145575185437630755469788828062277927485811134056860648959571668288714850743559878055040476698262770165517778324354370732832237826357783200894438844326091441776708210748700374832927462510470579371007529244508555562775543998289753221561282631371956997916784227317772468994603203206667535628445415200518258721241686817359065209264655827896734331412548586584316661714021126195593025606536736581867591343888939389399997272114788663346472272087280775367703143834606064298352022654311395631523384278148769525974404774917108232404191392097039808202368981531999084708570034653025984889791767968382805311166835711742156785274779430464371475327069073298076684893003316977291739297756181928280128889718793553324724190512285523631864970991762032210578771353836882195504571316394076274191636625451241654668088101757709269449218891603797594097911107531893046630031951045015422270488712516908816924533149423758844197604168867160914234251967446715629491828154901423993402836091280257380337382679216799285679937662587766157243363674674257044531012193417081609070441227110865453466844150891677996205284592875800400015267171527448206218659676278384169068681633661318970099280911823617070727513853188026662383238630517012530351953631604345890034882840104769282350278009638088838637065826662555256873718539467781052316845587288413030116727595646588408585414179612001479604214255910936335352397218761662678991657266904333338807648442083452956055563170068823140512169647238447543527917140515551248468625773259332231099747927455046706356081677519681355569621134258486299935389101421496697480367382328883066416705427038619569021682745271776645479953090311476049205519812225038892399159123212284975430074120173874341660181037715987385925153866816249679041524278149019588998520945492474424570680887357804770311121650434655963594950111713218864743820817655093078027997274123470341931566529323608761214241164675128745274490086387702542241688273005961264249633909660422264590224256218198893569263418208442235642395599973889998863622656244221020682133448676100123278198550012512587939801528397767672042148768158924507870468162211304127419139615923742161154467144676307712605833847146823978066624120990864126069324384735356324549128103605368925014475840859218876634760028856499891428618170906637485945454438211411360280827678008017632954798575921918905009875294694998245790810491555980944549054242082931218483125392256723820376911851590542361972493297861537086233629826257340166467265708847166298931502235631964029257122302847218698631679055817076681323454146138273244150321422251572104558598054625637574170146657144862410521749121484622199523301457378125939568085004877909245932170580093637074072262526518390113558035929029078495955096737097323811386988973681988997530876079842638059975946913025842288657207475682870677546332620220837652085581736727599291213130283020038825666021081311363972811268370218117457599891559632161746359397748545970654650710766074255375778763656545869619661015566009334992934292143653544768989885728883838828883382710321647398417490396914518535259780650774634326397827514613548233537554178175964522422395662722387165797148107054576984810889527698687814724074065388700724143652068416070588595839266948603614456601300749799515465662766725322049927310679806339522264325971149097753430295725093597276636620677596065757475937114838820009134515220525941706213731567186406679276710206010452300437762145767792666028718642192295192516719383915462363222696995405417574003601797253103559996144464944871189233132963738515501509270265401593180542682231228148894106175391912616874097440424460690221029371577733150343648595403082174900338928208273839764107540906532912818535650061435336014193335451582232458605605729754353841556766501255602600487290154074538804527538657265561930017742403174815541655635784424394609837984086666127674558155527826963355350896254444091143315677486727246875811752049795141293092218567438272485100227323977912858293347723560307458388029371689201235870472017187749696423680094969315450478836125033120214032367091006413501542827995155418288646410617503317182228130883313956989836334942818607418938846677363620198476782680192835068824658313403550608110193631846106843798671108318339950820198716005277173321883800015816568761362449429648198318155794762090739601051783188369326107081465907579096906235091215203892855780853438574826894411552516202623232427510604184176681239014878283923117484084230683815186923765616351455379617402114598557295103982964672973449179880306553836929986201518317119854851054592458194095000717235391672662610523523670421077706787747885930785205442675942231166792200172821276968476659810448358517918212514129741713430359207399675498935592875500889908550382128999874063315958462119467732728917469579887353566486254172379962604923457941792166497846139731233682046487980139943060857853960854481932689833754319880475251791590800155644311152471261535593145505616639468666047605569303250556783274724044563307179078845355444543175731639119658429221750854262490176637107789355099528100009117643635795965766292600300029122033634771104259270998343770261515843003135185619093861880061472842349705536200077830555160908269277674597001995276646053022019676504220289141559545925859435794659755603686265073570550731775492466537067765866237334001272271910074722766753983991647148418686381779942994860373686996135103201308298611203676663558266369670552557179426138300235398357824644288729568772368057237039606324131257110173300176841070170866329777167462209514272648470058811973488576204667274924205427064454150761045836862516395949397487499814133190378432992602811681450565343132090520040566312172239362475256859057880479142965044078046205158719294573574916250303194553050741284584951857624189546171566516794756947546826784437117754251131762350402454048970914301127147189376948087996157303744088593017095192963005741470075801584615651159399423469085898417229504110641730015274499393233760572653270320498488733527125912026264449255905157736503296307374200150434227079089379631736487161634428191371431510395083096358383864475175500876647712323576898677663773993145191176146374831550981098206936626612470975466518215101053240224278737283459917780577270868207161444719062621181630929273400587599491758696553417836910670389262298585222706243169929227064143470685687492465421132727811095027885738110569704582972463681030170180827158233981648345984842526820536680430406607470733344925956980177035614175648321766231419895878089320558673621685421854588169707839172780480281901103645469726156890341802300622970166831906479614335605237868885431147787266762720082186940781271704594118922825824484010264582937028062426039626594815945589182814792033290676229799295719060734066418883104146491961769184447953332096612161576565872778490884013798143880311606216338806513909767311746800298738634899381800336481485353317225063139723756473034977133069781136579950828361876730533862096630215087763882783171166205127296749925195868963115149056814853787088251538391828304038736333726402897569020986792651287952841891233551902344069389601742450204753406104790796529769643648503436834988329490872329734060078384325687453070736225120634195579608869982739976051645866905978763275819994977717194555707696930511874382843377507140128481962352181430366598115359766798899869426274219395639382523875407283463141986386087142994411552449842584609264973550313592105897119716553476364363027802332398691588683455897408214089579892780138569594119193000522424676452716586079617680305396833245526007593878008206235485725874281181597859440521366624850811518838842246752257490340856343764714834305282700300575422975593315720758595506699477386391415369291645110531586746922030996920501195958020757702951861578448114641813337700656758430335360690418021079793605537414985832393580073407492309442342176086798761965288617329341266429231971556295896034070901888927451277851101327286201996715518850782374377371622345555939987330191339437783861622957697931711260320906487368173138246143081754034658192037522963151778399368378847773024741513732367103681267339261486016797435012103337424128118218215680161536282389199627256174823645983614016474785254726755078195821633768432831219872439926944529948360738246524022836846789325108648204772633280082695199509375955911406770761801063808461878243116468267027746037866790843459294384334084437901717561028713951480312582799500007524989172735615511065032839407097465171580325382330969483886452536735139557404558199129648099285436056839991586603612658924084550024208876800993795521572974773425904914492181970806589461684565674826017396326443207621399016391426389569713061692778922764181242138488971482654046322605072927593634154305274921459714381083525247697444591654061435918705235028136484014795956121705253621081343052434273036675188780197806908434873670431251983045579280737465952147588957378934729566447525160834877877998976232783270671880371732026820896606359185565942463088093592807525464691188525127477349972834974228483670503591323232560991979247117720376538627551318340569579472975976632712485047861940804199563274910831110457953280512097616424426799027691869816914271516953571219990547163692718075483234620591763796136092134982869290585509873714945495138996849450027784211601079680941279736905986669368122717371780495131315085603958368010940650595254201771754681349439427139419190289981866278349942673592149805075106120102843978841807363545996450891753447437533441803893344867652776245991964257903960100948773234355083730218157639790316202467318099665663210600298096024357176135349859934489122905294096886323241313167993160119310853621975773391740221252535554941270372969760735574342787878060981759126757097268615671989418029767134907408401117489991679767194556244450030716136436835665677494095180795011257648271779517820360111081595039129907285067825148832224943082288551957929295148501136449008223058599512140162291350015040385031938602348398806755524159940696021388697321314617666134768678942946030791606886011481113826655587598070584218436320566974650458823706287751474149835160676396710116015456536010383449058524617334346914974620681847825024219076361487594040748383579508446243071740564219022512875903891203270225565462561820455397953945864731877206677184353574519897116793009860456561168232582953757538679720959621325147423014142324904415127047912681124096179333032577304329631204378590421697642292259673788796461586456457564768278315459052591584395978945103824106135611608831799439551025784788550375943065880898666288743635757528894080785100525697604867022820349711720329023173071803452495984409310062375474467972739189693991914168729259103772082089415854505790775300661816892553367922806844081368242748292892024532255069683255804677484100770844906037349096186340454409354819209387286386212789892540813693460194414740780745389969527535552831782968146260256226853706272755212928517464936265927923242069239241363112487797893085001591022336255441386549496925860615141326552242005705749571219933904438150725660102655806625420029790292958843207347104915209361627262769660205603536853683397428567240210663969010123268120277232343627361494277680253244647393064851975766005657505328654557132186547156464164664139831541011564305940624043743929675517938533595079846459885026602795586962170116009215137800274904645920106020882944117660743944547561928717680175372317007429751066011983215172108783488598930888334843149017398487132375411769985422553355646004591576151084433838124099650277306548656253281117447103698622943683232264742736345557282369195495841112852300492299536213113192395092352281423102192378993344305276172307884891589280530863265982088622517255534144768451726272442040770394071882839006045972209651152746011870064193447350298243049437774357988246378064416805811436100640186292987670892300024169351155707122990929175461384926480952644698257382297024635314740770528574381859937447200060000368186628447324099955744049000204100978629866376801384562308041716679183076213276550002614731240908674027098744725957928868951105586718574468282709206757699102569061020390155563615958972729637567818352124915457302387955848842670239589440218112255209275898981110019527980122320871322654729281035771269224629396277782887878534071946113960787227806845265699759117092267948916815772577495309975376518181142022987037348307416739069040420500043439754196170377340564883865625585900456773701033964807159471014181081377890493082334975660258786669050797711585153760996711461505044543437490276837700991436575805538985174518421214275720587475124969542599192534678032292218508373650787791310104975361447526740243077156742098554274180986630688270443703014498826705990857069536735214259465412688563093888410931044063018761172137103957487126730451314104844228351404312917698810751534022779135382341800408742045933265783455364313815550644004193370908456670372922755948401571449674836662110574484756591056022028628430986531845616688039857669722447874094527107532035210002316459276072215110410449939094078985650282038773405845573423391505739413045533409354568495306527597914644082938461742344280465951125317708923080530128424510300497979246379361730103655483818676226273052193341371657423260911136818975560459491500369938573438008787175624338658508826739640222586176478000045052953816723125092234488701320495657401302000669619183516723758429915186758005798156426590371140945173617139482186901637397026573772199321726774330674876344042460948655751609555029640587144573188106796291014297470330549202096868380262691777082594635865364322136540239614610312307752614253565074275244820983950470026620354309318110836808097933156515047846300418820344284129920559319631922010329291379404480658808102926293113265467530110604875216044956043789494634923292927360803164765769660868361299799514795035859351332060130464598753970570615765085394702352944483224136305453166001758620723313277312748864533257964312399976130566126875842032415390571006824637897744543276080407122480897610408955173805190259450627868181936850107847914329977030888182793457978862386073452604769304751008924068036955724089201872399890514011707272344641101854227128580456425453392323949302819004839745508833764654415980590886339589625798530611857467975554279874626098457368381792151685601152214081132347115240568507966301161081378768533860301767332624221344293175439485037269672874559165486808943223859224919197612943116435820445391035935316798707222050195423813842765259048556177731792845664907135102990458822302827500525516271170729862708228216744587716582538262218591417890848542132927499221011084020657367048782591260294498943019132839790635203547867841733086505973898260627804716461585612560581622650638572449061978020167549085654484510007364533172820605058684911319262165016451086019804635530746311986428451263184628245426249528063410692877749171374788977260597047625416935245698115725908540175141324924864009481322587637438767817258173495168501019464792541598442079625605498502982193736380255464750464117004869486828982744478852686916885876970920894145230478714355957881482169202894979563254093097725996067832566252492347481032826904951923642648393798202875392220829433624700437413804362576986966380039718020202570460694854696538888202921538551352418712469504883956720034186060678780616593138767761765871664150938997290297841219705496615343680946013241899514414817046240739258589945113739088153502041762463093717984944758142635002273123488910446624016231016034884582093837327887507714352115006421792854544846046735334067747079988929328027114191379331026654441576966482963742629932546389060623707888763547938267670675362169792338401732338126173000611227314750488991070325669608574154882802097078168239674476566544439302024573556084328937356432365539513525171294152398048186276655509072204964559093543595875664634667339051390735539265566357847041242117342046785798497614592108447462260023234434577911124178901989430720619715046201073661794334444969266787471980828266201023539335535511355290199219734839036931759964282377378457890074518144637781609001729754372901740780313073195963299484715726119848298487887554113099673921279325016062093536514834671985468677273713079489970388700020750618102748026890212805495669787271304792807916615608501588444951184854912892700705064078214432705313144892525456856194077097224047180850062870149946871696064210199516164726730819042151251947102274433548863143330993118655236349858469714063574481236235879681207721496463041916125124176610410361882892010472682087330550141723315449560966739667775186215720446838805960578411903322990878945466581241589196894108354845135332983079128808181868821564955200671497812734484532910318665134686895659679414524855694163441895854164038235459189840252741135925772241464311440236478915949870343570413184180281560307311374923420610083952336721637720834456450595806404515626227902732616334046599345660813229870007165756073182280362565869138455814935160645934596319222065895289721947484590353214103511724257098888933819432415841138784261631283966735112072824744288053941213192345205226747027695745243206378725622748176689559965633698105604155197520625199267727054102947492880961860838987342561989217298171642674840075216751669420807581632915330289884814822937208565286361690688611991268955076497742602622251724531307258697966222571611692611501238494437358303145454353403594005705691036650598588064777468924142149478179652439818058396332717470201603279045923045522202322179578608513109983850904428384830465887677675313627934113682127092052450955533647398611835484356593063784240251594093380559302260022612788891050698629853339832653178369014482791175275674724725305875393703085628029210737688547463286341478057440159867366333849256360160997516223552931235302458263871450909993943454786528004318776288087891440434487768338386068360323763346731659396929313353123249279708932102429449060670685886345917921006867764232843228755224226049013588570621965252753996754307763171153435446770072499241270670447651572270967515626949365609894350596459390787723685813614889017568924508777114400819782137964258695661552340812546928248435337278162258691126726795436702895608623979258394816016776200620459702205137053690820427479292485524445871621746740874960096792240508342258171646611118280392509918090514693497095321812691636958724437904874389176307313640237342160484738513090242126147964388819995534516239304645593287332783308158911241680544233227994910925273643573043211629923921554715593180506802458459579490240182481303892198002020722600115900709443471841469865291076017462027521138538830829611688243355068749791693703835543054087938188556376997982030550932226747531151241093003633353419191246327386312311746745564715024584251357539011762552376365754135254188650207054143738576094860908818228952526057036006060505396090251825363049807271683517683606831220965407768807272980855666327750722670018711487331071280206219180372097314757863947579191976780715951569686470486514238335336022456410602770986044140271372873419965740397377526044393643580109522992338538535950851019898603268845365795890576591029837996068709962019998258798383482022474286117676979993641853139646203573868140119740823174535293981335055727373770520117891529786066516126387446120604533546823310748171623494153696214653686968447218774531302834455258994850993852914331728585188970057955445504227314872711421022794978286554208216854265436123833752956302941611097760902502311285790606303257597643958225030406194224093461609173554822510900516518804231714535913987533882029927875568350350683804104046277790066195466739981596422293407434364734331226305892136580626721302382964374741918800875274381675222574280009420086415286094680886535919157886861654486202915371586611711020209784216213243361681022867719180847074978671240382193189284387991184757033015919698266342988133850766362071746272430911720249099409714632238853927610311164819367512788493258821451260892804651586485983570681382994911528307281556572556245833520329618978320443091910192447279802794004831601598731072729583605319852514439675678973956603609189329352809516237436108049934815255903823412470004929621080671530650802532452047673343596305459818612558052158955638477453342362939696940181933530128508759109790369346592198359573902417016074865965478255684995792667204990117734111326802393278501041823086025466240975462828092899217587755875617867465033368814735965840056776606827513710651528820879706459491180841263111895484390318676492745850864400037866237051898283828982357250400003781600044494620021731786763008846282369528612135506998008032312445877262521823779207340019065545737604205275447996271746693420002345203173897346497120878136523368535312799182101712858263430154703886294848993583174742729657568575530102960928330398316641957066596502484050649891401952954642698424329272033620050542195389548609826508814717788306768809283761887347515331602281536993902118709124823329976692112083829442946599963409721133033492742377101248326837341135048133911270855176848110561808271534272098061373749389575499822863548504051324206759590152329457143536586950804728560979295168425553908101101703459561101589133677017171016947733025836545907464272681158854228328219911964425192683590845372453124844961587736283238899167495996915321715063447209842857751987806411462153722415393706976781756182676423194684713126962931589758740945507319064443821934135886354044588970714462035141335097070384080009146338070274221306702635566958082973587976237727490334883804403202463776244060269674441930733641514330964039776264020085109446724924360421352162169898974847933168193222405771577867280318153581137041523802290912238013084460074590732615582898740610462834097601432860774048261904236541008020117564764416815718465691343354190182947943638776118041011348762200451412261461055381382749684892307969028524122364137335252875292813922964393634522765787398818965651258868449519025160948952258052250645053449768961674690110412799956215871625969538795995203549115643333979650271562090315235351736017337158295470749935452456161973724342912252773387353827045000583434573562537434663294108793469158475287322853433820388345529051256506179258818713035103292989619477421773424616064541397011132823366624940018257401311314715069599289531313359217211916624674602120579306450878069955068864882543164965043407492437047848590627062044474764921295678828368970025452164555673656400591481894648072886668615295518568240817678835546693489536762734030794187427438011127387553552092964896662135626949817567976581105569401612761043996866848186581089330008655861349801890631555773394104759427093609854819999452984816136969231929062437584583692322387455211444172500657943692134906961777680061790940043541530000606921406944377066536494808781364515221474375218124753522155262431579377494567819955400853333917293595700072015213453981825861443975533858257394490817153525414479926021396127721811455344789005855637251869208746333185976671586502543163078068774484629211377026126872805263175453398174503019241146823455820435936208323322996547099263168827153049290483446531267974763759108807522884436408066102327317997265984469155355123395286667192473357193704155364239820382867108036218554432520168850997119938856477498663768437767315971440866344860962758593360349884731683502660185200644641276884832973249608322585379452174192279539314213416025480941169536238986083789612786000931382764018059260629254250696513547509006705583525187025901519458551841572134847351752109609835412599568693909126932454261200462712027698618945456343608884772915632512875359745108107675540250575540433622423936563165943129086143701812775131907350969988621620293142273737045660065990061582263086019825598434365986070011586283682596254143423022777175495254339397364581578004030874864388291855614585063945602518259641171429896311442738721896658622327589069753837510404516804565884201436296523309899834630497064870642598483682166104437642724092012193288857637907275467518301436479130632806084794974158233749237758303954219960826494448749639891299157841944392011084693734850750967317164716396018716617128080685738997891323892190072616553782851324107360158136826768716229359250881041025104179637730246896963906279082055544968005217409669119819135138940341961923220313397853025111296314186057672223870220646127381612266628211760226822009654780324911553243939630605689988127902804589580829775219921421297634193231254956719241492516694496615680763802845224030199785638288332810467473066497000028577991403546905095126024403898531517855537079428317715302776263167004901896171128267811224312368158656978008940701768069347136170241264280263955826761604391559124547680305733497652848178903392856768993687106650125638286173718995028583459416020847455323586039778903802382392051187330687642831778962918792303550595614163284297190154268939227528439993327120590347210411312562288996311646131388674517146476550617421946601213537029763239659642565987486384643658927692191753221701685927540365110071395629048303216644107825839166080007154703301577216233036069369665540606696641048696343492771203609939932855503472256511866143323809485716759670134122251066838962734647773315536031578804722830678049988155121303687715063832534426460749563860763441570953196951372361681699215241281464195290112103300561536975952169629274893321801336912901604764661606199304458363909549777197685615123525670821243196861747221564001144954505278265033295610256466988233300418740579598406302522280855753709283061835156230019454672341621672371398850969808312939801235366032103525214322495005637360491146422436039307966658785364156097270357840466608871481553884168847627059063560161038240552910529934009384952735128261255667768188516207169670495253999096028196333477727445010623273454364573570580176924250754010529945332532087329613854745881742516512410378532765276860413468892790077282734234343149461780504243354536742687577474213366160735970146978321513219718942059229968433149395625504107567250543888725945757860848542967628806240587008390797204627696603613574414049171687797595721167832081400195764872060361349422377834236040949160820224778438976623354658867571586570945864645335811540715055779931589498702267149053685377361149654761042657998188056848089526792026676808477271454270700084481500530572079138142755988990061183376755485592708902926578144588731725353703924236909605168818623481559655725400043944131581872816418921010323703017911238400581639835993038019196743742567033904773489962892699537498349474208536061385620688457693028890967874023557269852779052929290825258379086449896862552068457768057416190555887514048599964651164325769646275410095647406276992767671132955364633935335918580524288543713896308749016003032110726035446920912029380672777921023812756537287774860971657712509189914082827423270215516253858623274258708174464265333018508243598239323634413816706301866791694537697086765303264975766128950162686444445669550303796060887574182811269242484592637452306227172713602012203565992873843267670987299087830605945444044367512468315552139995458177667386538118395572312755729018811436786091221819987270091394052414926168632787186485575192320474390513065568392796270631684827392089788623476662096659766490392583963391216518510033824915362509620275709021493050875218397855263004809844447290589280912327392437243815181382818688495405110167603235389350443926627964440689755030725478989658229201150136602958081758606773012059529467395469574613318324224657560268450415071969532732300673251548130868700685315723666575931369985982573883512740001532352937389890907663032631653049480983675094982769109480135077086059608742679319922534677629508403816595403218446036685104528670000886958945447810578435341648842093376314626276950159842884280852072628554704464365969444295038687857431979329248468350451055881604632240525005173327600663024103814885399557499295716827022013211730279126104712903319679208202307409805642375402224112563393975995181975077987690387670093778712199936761414926039199423611419242939790469892003984414442191156675712610801991305332639387606193243409315222928020363284121029121159187374154572984290136029388125883046782230280663849805666880513587592726306889051854032724494823741264707760240952982833481236088567773524064256207683162448003298677995744637212173429227543901422176356060872221685447716753165223486970686273447365868821517492188197139076534902268209314449218311533164770560551465973651622304208086934076512224324129413118687628457955044329306534700358434294980154220991275193906416280028625599710815612901720192906155705934225144792222467549050988888357769402627486285581344923228977176141899702088242373687920047474460769090440886370982331418614115048792619774292259984792743173327927495317492889126740096926598728585636080200363063534798322029349352617629019465151999372836300327806136246801775824415554811574788215832853130108141546442834093085181603119583795022155830572835858139997700651423853097696046642616997196569158695786848341948585582881372881099212760688768124979975602679335554777242292721529261850992441386674205410087712219491738595324728191909166366478854583291401787184736486653794467991330840611183261711971829358908398379198801326089072795288467622031748960101860182406848520586642156760917666204669523826040567244257712530914653405167399694070602807473303511592168223563428325381184806747477381459618576509403182232097084914253625320215413769758310870487517659972163540587084138924206746142334855333265533083709601691344612303387519451313178745587033351376183216770168424861622816594386097641590465405674085980809804516911021364561553160255116490270107547608315620173875045620460388180982289180519721201187732904225191977441668650163012802149549717169499816313742727472721026848873262428843586137475636192527070458622442598846106420755080344833560231667313513016213114230631274111455736103021989965187344996993704111110450634245658864159444937681418356095165709210053404988841445234164668768504076117721475567714406326373449556775454851305711144139405517802020518375372231254038839318413612315759675114631006456813370665033782534355516416374114960706163014162707412705680606091634453087330024286723315317784604490334079325077835694669882082721333062915375248959170578683114441114919835900975740918496283151010234868891490701392386390638679787966479715984632427215637884524964615351921549490906991490692900386540852031978458703827357439286765902402514689173967912050642875111537280323491592053294753586453541099000866656451683396663658212049509431402957105640859649010211909665978592379443012719522820536746547662951005285325239059487055487224154934629575037715418006393596609628728697020035036312416533009812223485848470524113425754601988535031486292288624482367987870137532157565322818633935034384820127998007466633810940308994317795963657760931646920336050542960511513923512694304289773686661446032771870363409577479883053940425880687806143691618623218561659727874168435117605010223247799726082714857520446657955221780040875482884473098527728909089133700846543703161739284342004731057016789644927378333112141916685826598349228400449209270440684272906000331148953934112134147692997275263889486783789632731396397428737942534128464947667678617898222071451846627904863578111990032944240892902194454073928838344780694687452760086012145743048172429529676130322025413545926354077959914065353811798462957424971246432645341940445316575121945123918610181462334110026445963222929744561350579624050057420736214470809165815920339652043542788394356682238178643322009946687002482527791425967793092958984831306202753293365111497926242265464750123157709305850678659438874087619998364291986161731636841735441268446924035363847763830652350497863826298899480466245513697846233312870111830251380139915729887665540787242968016423020542524382975979721520792561722324052278203974083623162235531825160793929426514138355582612861686213330179007981277348696708239441019692264856933760267730074320212286529773941755387614169856621776117778306838880463608406640589369844490875697235835051015559489442182097368289304278218489689671791972997016286302299470112938443072257276786861746137957714641492545866874012477352518767521774599812083530530870483030412444516846357241324683715160434389259047046901358640417895378013485328219669189888356247592888842959874783542646794211345700700148156495989182798939506397310680329738070218523382249040680205698130918928165875446817444100313533791319200263603641870446395835714401308506927679889541788568141489265407135144297243307072656663254970615191235970036164127441181737334562338061298168444295507884386295772496847954763075434525285863777157920148812138816104489763675281844825999993531824043206372484987559235773713115872174636617416003430736983257553054306558292372672932840507233332122922629631506501011827682496849625418240264352587101103699464860145685453063416398386748898580189962091567164350969259491603780077321080789019918236091493872141355215949675510939238006090876112502989142131690976280403674147500089067284933077141497853005537838619151562696023464177067233652270694163466532057291842475500821330706073596318674804800217979089788030285480450570799879474024970041296815658063705539915754098547191138484203090399045613561853755493371775063328478983125445407994108449035139296968943727097310709647709448405047162170683950764939588761738834222813424639743981230433758700949725403819345749222829653556254110832740382466410426338848853272731226560733121428408237118375612416728531514722864796741894346041974838606760983433110671971356110194110597508635048017611550204538456394215600754474869848033394320445708272762473671110484118260244083067275266675725263403228525152978022752429478734318369942959480486753403673972275164773374572117725672959064415980956688323348159659217684953249600520947120791245667227039632793037596727483863043094939117976195671944024237576744412488695397627543363882966954148490191598999599900831137346613615892951118801158025196442068331975857828371768952899643213998725298391931826611463170119328381618696595841226032198241088145520139277838399336219342084959672874361371836144310966115615903801504002616804856743069994092997067320837180276751141618102102170985199668913562282837875205587794136925496860828989687988882949324238158096732443266582435035514126191624021027290697584096207800794305485140222799442108497299009895365567464427374879975800655795763233722267636587486600093353226302678862781200090663994887777689776856253230923299752753888233172936744872157455450032762532776872395033568526743193185168078702133908440889372116407133632321070216795244116435252495779641473650513110873685160679478243126453161888467431616965555644033016838485568372273913934587636024192139921295110670011631777145149761908995592097728927461252360938925718233795046366805350389600770109619222020682087965613926211951069364965634454753419198674047710500977182883484051455605212950047221952869354190159683180313193527216681586465558040087176837761421757996261334399009050774474490337406131160608199374429426320005486966798951263127144744960716303739680877412222463372897349697304389026249449159829192859873202967095423071555518333443861279899476027911000633825305547899131964796213257757785403418723354770099246382850283424029179992731830950644098098186934864709589715064237657785526170782487645437579614934436505358626273783195542470182346915886143666757472981252378260254936887642306099834106705985086979981941892898577532520102489161279916560368395095315758725488641235504321102014568030304657236172727974677284638296412742818150913200807550160626369102164533303589245879358800935462299007798120336376165821180056166474819633378338301080541986031516737605801887515374630284808693111227900694359191279605100787732201708448294386589239727910775366979955113233113962895307639221127505141519664929317013816213345795124639579218302091129368158275764336401839549278055834810522571872700068533274601953824557298485287605704617270722127705994390323126678579124059718261569663563481863071350532281538206762100155160982366976866717639938540296954030245220891749577448124429243005678329504439512409519333181560634382241325892241037454237705253437953102643061024837272195205501164994812517468790506282443206856906861695011123466422870745546047062551230385108486279713589671905878818201857363261449845904007086019432779945239433207136195368460586317040893918317261566978397671370115742630765967048629118165128607170115633523001347352721376010464571912063533038532191181841976094355010734378773054779119872408524993795512100010663405876838781890371438927441259893015640084856671700520699958501589285340142579186976667300886924692347596653168053596644567290198578042039581728770267177558557202819626643224313578272733241118005185495995525441501784526585982687765387784770950530510575183340323890389909716323745090461787320607838829929362005125469226365518789940099724290349145491775344109133452681632886575963011359523680195310873131181252983279817125101423279445788943884842834026470883898169912124925754723359587847652407513886827801785563578685507004136570702943524822352395622333542191398551125623103213439381236943828876400564030803182129392255383884877325518004388800369565005731340776449267271844183734941490754194096990724985757786356706574695723972407367590487977215680928007840183352138301223501297141140167872119865485238301565667462129572518704562439678808282539868175487207957065745233833204419953041846232434060625715570352645454651669020018677997693607931542453899860158967691774216671187637495682803169098527943989969573375890767835965440855360918102215314371925003981425010754761248892992659453639210102928026482353930171355572188940196652800201401149728835289364265977962085111878390407153252808908100198649518129969410874457746181664212462785842699600435563971243904533348373188319291952067126669513879940512549195532838842675357304758727532687210642642367086031542418553877779310222404325893052538056211478353648076717516714541978528396160573491786248984520198227851592449124049914883518040073630365901164229165664842750765130471125544279046946366136449662618720708466692191578630404931556367049046633410097999620822043880763720425974463805800822367175358491061762110111027053695399640532753702193394588872311413305018454759115625976116165465294802153784519156585319296194415099937285902706322963536341767038089407756399953642741241477442421397434380536622857511678883297558826689776603626037926376039483686965916865972479234106128841917497758608103647027777905860417614964641323809752836864926183449185737867294764996440060203002832023425174550000072930105718685699738284822883305574685957090727593236676524378860318709436445176679187427193022960747855618497718167915289547329537801779646847570544124892208902461371334755140013175135778302396195825849232329652906373954712089364807377639324807798720827672052184032431763152491016235474398599873369934679497654268930951388673829293778692291165009027330504384271608870596850500896578647383514564935715528011771212438315036635321474416638474074203293468007583713973512770660756679105587637774442898022748850108381094788628162025608664711880409292482915675463613153417520660122791673617410448506911674077656172710444858629947024933774091453587802106121977242646100177002710782999046065400541779271683528349118990543036236791856625587413231920398657481245654524793935404786663839118653095136048677665845382193904422979928116359086200757172602575625326625093736809482135278408235265165382747497322310050283383018726056300820461957570202306308999010828499850551159859494590740707807832988883284182719279134174264090429346047003453915633635482300572749867758748934630960383500610390004563826681621436999032660766246502276319187568216397256808630829893222238394963069106420492502820917354035752227367482282085742006666749949196801857261237941649309341514199317123852685856073634161147440961995795566128559917983858126368996193039980840235180325834261452320094417564408656059097904753575095853577779359986818041529148745259492281043763724503170532166856929728687781182300030352104825048821510755775200871680667180907493139753611184924738177151886896271981231764748900387184325545330086294872272158496586581000488794483785183951201689352145545450735322958372511445847902758459094532471847369685134177558283747323131002532132877223251250403121688158010185560101214566965785880975509875315309565420024120531883123092518937469294825434069493330142116386979841748294899524213310030333593310668099948110984072636581183321508663614378584659073314097291191103821135428032603758674394222236595563008587408418228943127155442514908397740974366138960676255548705228014453159442557793670818100674885557483898528034007283919837289383990524457964334982413083229321836091287617976145940198161996231687316207940045331931711070853940211571706032869620478033702760260090627250042571896811588757246530326242716996762892158942717991025851148921626365861792275592353227409335882577199896837249414996395062701500564657638016388868763590053794091850619196249818684246402268636574951309832638742160093032347726585498867065000707304677847516555266606014200091013575291049050230570682151124380814375190601803521231741036390945467425144825927739360686289239872485505066964626575036632483733924525041636647797208877510446574328478530094151346204160968397220472193263466369407176479937029130488841453508817467803118846227988740743662972174424708514523736525618830311084279473234037557169072198094246839671137856719304273971735593731427412467616592283855434132929417875360218900489933165935684367032275119097381958842357705908065432592447468980778623295326641708276387569561211035038713445680181121143625385510646250022801518002860927354213830149126403294991747137207347816207521705816271367307225183996898003721473515279912201672326167612195187680955809023245517050625609807522506277369427746612837135166778162401486389170340677107581202203190918662300382723191806508447915385613255448737678139290339528115726098106279017971347294226284623234294929779297446513643801347357880384509897259802454784843462019753822251092563000860303730762164056530270546125275594603952752917123267318348837160066320345987975835173068805681197839089123565089055844480226251764858621097509673423324548184110082991010780481682051945092909779956835840239021612494503588190653544889752590872433296194489526438600569156337192102229492319159426122120978038808665281000852800852365353894907784895876966752056697424762471408570488723232248072650336235117980285592003391003607603406177369862357761301502659820243647398030473322214863971108836768210622490656760693436980543095857368346567432101195597388486996133105542486928215889383587435722027545079052797271660910576453610265203610030362963661689466558445114934501405358071692939623610123790908319982393047549981663304956260443635791054145924446236002503470944851248687976990435897924341059442945456684693388773778176245696530327927110153888756145872128073316141908616818382586639758561659258848066490362665326030977236500030417452713287139339121931414585721888532736262954272333210746093672709611031126676604589738498302743222778789253774317450616219844617550861501220720022170001770609965307354817993531293710267637045425561372025899168827268880772493320400535067491300261741539410297238723540765184301903367983975581886633637634564921251915350710444116945344433603675784731306780286497815073070388652137758021724226369806531451246996366868113742166578177801637429954597633569434051100878495107918164144840288715538823966980826538228771633975387799626406608057700030645089756816294851186899150363599614238312970731116828962619393562729558053763666416518275652912885384574211998602521424083427508978058862121709488220933251610835214097434357844351841043297659285482289986326857030383114469616922136322672079952646566543737967909357915575805821304694398383334816046176574203602872495579679646489815098861444354215016159996643503904660984209688678295223978338334956450865758704931348114906306783340412694727817617912920358873220783894188679349612855180883928300970670823132864752151050157695905014215024361203996328659762674733307006431505881149553177114986603267467105340544255807396045242399043695375422492858405602081647566804332221723956051662652019799018707472411403839378982406202209970552856912555829224293651860068380644816292498157079025860220113809887452728039780610755341601751050004758882882984024213874669468019700647087586801222473465309645933007867462127718287667915234380033657314685066218753172902512942706778819180335786719857005900651549322961056388657114710807781209655906482080504129506142244461571451638900192481899836617539358317601401589290992515735649779215042462312287843702301515173205672118466317510878539179108864851870950598101040180798348015055260702819197190779851606068075485373884399756495757490447471972889737600441158161479861078387559415161044884006979780911887002328779568697747770228571378617334919588122012214201231249244973158560908381135470725801489682676538305595026189056313637591850692346094477992612355385150897869729675237932565346552162389665041555484598051982193680493292979980244392580583360572171252498186738089734819216884522736972014961211153021368329971505148895293228812526551593760057043416885477855923162712020679669069093463657865961748687440807400304217269419166649084966107288941750318737870142467011326079802244860607807308646296309160776338940682098981954190194163467930584251568464242028584161826152834259516082674543193673598742207511352212064755209937890807432574298128360554211266324265421795078520274141843968000854352196039493178740875565147595845178061466238891289926371835342948360662433831066302041415758179463772509835673378999880280450056609423517369835147980065673152171840860833615897149034389904559036260717076997139082898209610807138286612654620780370747852165800250345420116214798155376719711294963207677077415100585144731416399899164748374114945972107100464198526699743681362759049696254713857200904249383264221619818472365175342777170006124260212844105361756072700104184535471414978103518910400316363203781578947567393695432620143421107256357418599271615430020816805698139800066958855548755506697240001875524999597397385890341966992174516793676415797273861047603949178640545290755933552013971793339347530069880772726183235928831711655477520375977563336309529348708443788319717410537550392441230549930165151813423357531441533027196701219596398983351973150366036256660159385192514406822893659393896057547484647174399494266018779487416569577878616853678462171316015828658309712811031145988019531883778274868935175583544021514675097229765387850960856325416039638356996922805635060122543277681460243480876169606973468620663106194452700380822591400179691546962115347235551034935913512201812173638378013669298297785862702557060101657658553801252349687552943276463558825624756288550815744295370123820763300073501680358111689392133366050393108307936801318123123334094911815385648534165195814303292232977323618325483930275025013442613412676992384067010890924399400270031554830740576310591531390396001939470445807758951553110169457695973998077703503368978893540280261569402905255069717155517215315731591370599861522700377331331603222646475459879928626850112052020040732790370339756822090310438802378575887283617022130024258098145518745185380632693354777622948230376607015333274455469565433769277345347113618662648193814139479060910442598537051526630290354433081899787112484005968889966305228339764724736143416537967656112848886346985312857857107916406358256274896976430481309643026811767164830901308320002580949474692789015791428174130329224133990800564076599462623602513897128540601513579122757609605561343556287329412069567149741649712684949512070958082775101597976321618560408800329253156789482553252255366856428327353726922011791945823882546005775253343748984376165780864169285785032386250297942579304819447608553422385364437145790645621008753158722251063392185350614297718383252928208990869704459927682422970744199753571135161271781524209806310491972978160642979124740183645099683532254970951587585892696391846111480509959413407962507901237655755992282046741983571914576267814266226429437107378259793963092391983113789240645785312803374449823196150249096966282692186697846989256428971550855695540319508617897578547231573726673500267542318893696334174885365158904842389134764848684685942569784129675460077405812951723440005143094887559890983293852652839119488061086743126303562241214523472010307842945960957290412948102326346137166888784331251892330872131204191304656928846909590398661721387421861683645573562398643632839669288031507623441075658621047609712560897483309508598768889293212540579017426642620012563925271994556271729741408837255339748064835141537285529952232644698971054643823826539571988917410288129814633693761518500203446222814876225612340538358345847234469911798608035776646336895090344236108814811788152458555454349445464177295931742749439800674712030506525788757098251966015356892658640356809829206725020309841277222150546881329082803857633736809514002540526622372782365070442969842145109541448166581944336673381388240983832738670333130696557883394789815121412231544619716332214365127277894968481525046916308694295180838562900486649262797582643849780087904944148235182771559835743108315523777728233368668791465504020643231552994104866761672618726674213111152720748467199295052510673533279470030081704654679900368411083496733759449667629958842400811712821772939388751552849629470860363950582248204242729302873066614279645697280548073483523152781161381735974918459821015607987380517743438709754027355797872304223155968106390650330799582773028583153354086123028720595041365808524214710690479468314609740050833905075346863352704353602570868809445347159824351030022678517001379479124936542294532054979958003981439115358348472297847710386145274397225644242107801568949482995517330538640808597116320342464840003397700307205959644224783912678490511291812196209827857855886206769095193780206830160466598368419598448348936170755637219315528528383970701085779787531081293844727446738729124322590977446328180494205942441976717963116501837966178572640985564946267793447794273269277481715195002257359515743071900048162743231464113129888233363461637161591577815685247134412776191009742604443391506522594155943203619685657619885319445718960120904589353614377957123295179831245921681647759342125025726573329673527894656478061304971791357703329131353173562135756651611590934130237240293667479707082800861001411519662432690704348371862798350686153993601189169563822866037185441617796338860611191802929537912392110871132656450804366343172681408857389160414118599471473178018045683558645725782226724539690184570485712259780294003024700519591097803825577849175402499198177251917823369103608156859204115731523237339662055038092188057011695081681314457903330438389474820272008356396117399441029840598551756068460689884284771889781497732069330561948964710033854852282060262092579526355696667655113925085853278094733991463399596892122114225084263948134985351829476186908066011032366281110295019451181723814349904904629056482780410773564890505528635399892698461582745102632140962803457374682278427342514199209965017530072899181170695792122628050845879325891329634162100718055549430320168930960319418293345772555528093329139954990201945009716331696848374033884129308620668442286122150080612681051168662800626290919703479857485310327160455574799000100411601450948189868321512214454408373363997338794499121921881539508986592415991439138162298303046724137515903990732929041125963140083862959544962721677114061116404020559082559826690605578236198291877169733351041982355047079962551782856277141903471222542394155445812642536467906065475424842982635957277136724980001148032883646349093224812434626586424433901453086196120456972249237955660889534379074210202038310816888878101160300525019350335048352511623769662347074143408954358645048923392625346306948888070990178247496010670902264113348645340678350324688783549715184609818300279920463871197474879947366747636137392084901733535360769260010588994699794445437477738977988644411622381987917846659283583438765757785028805146807498859245114430330026231492153344516823249355305341998053873185204645015348192686090191974251444469886631707850234452525739902043118584826905745848798420140622706947949300021401107437533231239520113401716145121501785350742773104753903643063022280287466093934934435784363135517942760402057070057269821411615579274508295410825862123173348041997217848134443612908255218032463016002798644803854587540891665472104392268982618099555484827726662508506527886790300027602113565380498123636263026013259741605545015534820918141652515051409453104566715961478860178203824849460224353666836815844535443334192200300027250465209273485203014831935266360568685313913296570194923913295034904184931214551677096129580556005709229795387197547304654954907050417880646029032912805974323630084733924732202943157610610979206719606921613684308494225426998342694842582279147198230113324335837943214329310256313842828759162262392953265938013698779058072509980441552072834911745420134123926099617068807262560276034339329424834024175678991501269553866358048536234365737700341749962151957406427046209461959305241602672176005297736805916188357482358024048928478180931253443207012036680075842905852183979580853098676360734742237567976359828798841602400864981191886482526493793795645974828023387791208096260567585206105805947570426609728208686280509401607382251658034657371942280985834703018735092171265854136983241918746297992635807909868176849065686267056287994238441086772080154849795987996298795652449518738812688137234972617816001485981723587688186845692429061477330978334681661116804180716453951098554723242500334438862147084272901563232232276406056169327035232032127189513180542428957603876342256373718332610014925799590788926759360276226653792978802922438435747572340183704248290408165118105739642542743695869546602844223781199734585416155403816591328673162707428479140959940059851243292787841987617277576813323416516126436545327306655237441622406885346551451274924984089952657220111714597642612364304268153558142677457772642322308450941242942606803680791269808020039294009329174633931249281066547430058707619699157104753905504759548823864569188721866137472651392280315082009934871336245692532198712738686505635920110742763261201234188414449943824049976494211846306395104427851592125491736168060906296431973373974102502233894035032322135543355070194474261386903762615488239690731205651926707073431401081313480683079980869317167869578277115297708001018321299194343244685700268533636196040075362399771585620050293256857341989503105707256328785470730398008849125435077411899372812689981814024836911178397339513113139122514181820520411033690051815077442416634042375816478112045825053404225877189093263292267904183287523595215746108131306633034453753526311043154484403734940342086667917902840661723073572288875954561358518224907631179376768421045603191441323662437313914078693598053123932554666546132190884292806040099282891237084465182096670673652600910193544957165125516087643117272027430042444968370743935727286138704416414509043078568125581300418083742567833317339801509073506782559459196580528020042577636378734803542444347102595708272828606381115025567227824659663570857839677781967849487983180116977627000595715490834228260435315543431473023563863225980948197522154619474031012857244677515313725829354409284819567354608299839799243244131932802397867854241597957595777475586554794545823265572799632984613444528858726249422284055871470553181126526999106746388966043385451567502252400311980708803042204830243116285689387559741629500664656032584903495643514377311792394339377760385743075004271349253381180406679905468712119530694664577813541782331376497260215065351603588972720508993899471497210603697049543903803204951480199023620257074955691413985193858894899142989590201429021650276577214735249063445904309926057959897111855415380415885162962411924560225996288173556201426686658435299635154323672134471047546184431894769288391662821312438330153537181079893763104804213951373301323723125609101996543472787382359951123624728331538996244084396444860864765036657926989279155966330337398956160559242991901583360134894554021598247555514356391760868056256636290225756446763262053123906758200460645262068326120160710453642381958692364754531220832862388536730988961847107107799459354373735562176754653395589134585206237058286516537274680606626202216698783317369028827748588879873244119475797150637649639901109927356890800788581988525829986748497933713144978206266658169164623312933635313176143145015020998936894560262211560646909260582180171608904930624779105703345942237787087119240206168131092378405401680602618963662289401068139976662755728103170009814725302305488862382902946030835914315984966091702018268106842646754704842389018234665265495937193973865919452762278494323754849181553726760293960907771395912901404257120903272626474382115518812037386383735775093354532950179632429805507219796253458462132439383125724481756939360447975990235847994099051727905445216371075440744539821081273391215665591881291698737963337656449210514973393643234723850230238439147105598326257730090578824713860842780871574570973892679178891219967412690934670719521326551546342258931502842629439577400952920836700521826161061212629165828086598803136454396920212075722458863265819615409150485207447050674029356940638358045756615862187321159292408443883324708344203901594268708477449116043625196529016942557801643427855529618302907619911684689325814427797015624596314095518069326069069531666269292959597076159126386191878440879129172363331378321020576203697941068437434057557876537956049420136018879203213204822083426903712965078640316075253314964596760563652498544361260083039734384439716096046542850170869138697617866040933306118725680858411348534601210870233671767052024407710317997692702127057268663314158565715727976221767490935058550514952142554073262854549074526611318333032929922607003625804829968806720908039706241834744475516158183526544371443973489047877607577926332681048308220721146787284637837689254485428120514957467036420402739046500384237191349329479868927389311017023414880811250902012703570752489209046942620246558756608543102522675085771520634762172161142963116096272926230165050855688230968005158592185085021966902769204886365459707312611821130642936089334718110520358022961101459434406122362316324904853157046751458711748021950091653925708748441566439924741536720882776615475038916688079496815711141535497871172116247192627688657550271854212733398708064736621490090355316432845033022954123162482655762528468930839356882316381701050600017614559186976548020987788303493827391892025962042462534190610878368142855368851485525609348045174689026747647743424220050332639377082936492620314206487428519466857912824462257278493539518741473251541876176911508758072204828133268722638296998603711073629383323653484619090273950475215812467487467668351438670247940639537655887222638410562093479891944244429096532076534209137616407196339106156635545221362193084828412942012523350897837439316409974357160845574705873352471610558635903213209587029708335983497106048658052524179305555510951027614096384973228240324001270661045491849403730762680415163738026640050306912979947923844404788988801124537153074547585560357302054563887950976743539171404285986974420239920991310878161950656769934331619725661526593130184061820636014994690965987513733552459137125168322378738783030341019537812841105085276030445792782120772388985262620728578673270871714119226564398670758522565695839718260300050179675544671449366302231909503752951338431576902247365032586678926010859855408451291853785562478655787370552104334598039475054497442713117281654629662544718030488719945190530387546565430222717249905728666816078113473835666798272531162109505742829025581188578659631044423334744321841542248034868115462527241319110183923407483624657891678969212082574197153505207309013933763713535106799126854185591064587828207137629092370598515203762112111257095809335039571877757637368229968571701316602354711461997994684451056586271036100150689585046159997759158712625030619930030656723347934693559292067006538446900035957559989454986532915874910315486719303909964010665775199693521459187204867165031284999441467641230353588907056802783402463227422038848010967201283265422162092570535791021495329949696080881298003515384644677877124114842823072928486887898283329935896167348256409247731890650888234636206813538138186665440138251080243101790570122609378837891783963817822717184628494897182930464775657557394205317418724204514499896444210846645842908586228227247257615108516427219518375586016693660587120075703391216824786729294226629166675885766420847589141481311043245211548013080992122730759996750090471971547599623309147140081961952495131457275158705791051103662178269903479889799030582169223543847501486966077263283933941879807090036098754373297755993906263674988341616476225329982576447987458663280215293902232001192891535369888988990469402231628625217973287352600081633220194444067311780900898752159439035195795419296817520327220264701561986152005551647831535426723968032284409337744126508821049472451019175985987445374879320560434295703940113311653362148400841329591296440945680101622133369104349359203581830342284904097582260950098207768222853991931763608006560668171752515971399858547795750468229994449283989728910460995321741437552854472959993706750445619266071432359125367219403115604102309968988637495913740688373738628000537374967232470499032560787556309772901407087916498532148054780359090895789351315502554986993575086629513212723509689703560816458537752885825369597366911833737006257424798555586268244500777746422704852739642022946959435771435238732633878751359564960451625987096517845364543480573898483523086595535624693430019964139217697560372755670408520002289242159715791932236412539589218424191581734344070845322418417230806748369846962587666740274439137801061634792079234561696398741115330553156612914701368221235595475307355140261845541601654561070372341994578351342776585740181469076571114684804563855100587328359799152744162069583467889925752987818157886365000230607992685516264318702937361506971170801346074556395775311205990334428750562914422752066131027661374597967244025829592921267155826378613495817334470424240325725655922665774681059027619733720119455198711155171548564986618708599963820234804771996289580322822254504296539846953062545263568850869417111159300230208934218248922406198969487869023963673842640013256535042950818612517910772655539318071880676661658032723506969964923107997079470500309774214907206735201694765003601066795154962656007447728485993905354914191651756094600729032760931928450930937076394265429183840082566846778034663123031902287550905932901109892961701670508826519532852508475059093436568535088352535527986685131190642411299703642299052802760607643976795574323324063415575631043251517094918306436180878224691752168714927128517693535903594639069380908908422200628079944316660893519041404246362785982031076348142456930824889654108007134652313105586871287736646574878140987342375334865694852125821109339157685933220428015529012275550534951614451598722572041189973060006106921423438144863517858341219761825481811988867527862165426060844730299236243143750950601735638387155536620656336847672722433788213617841741102852599835494699864007302284559710730643167414554676000730763310061913472228111089620813411559510852403031386692699389885305591496620172547864725650981359583873211058135823753807131886460034034353651239509897883587448831393430230434984955135776905737470379414338680744025164601531245807861099538324643265473621632253897298600969240003685319768185287083486606188503171623425079023819379686354123668368175137397744859373626564349713948455959239654503245335414812896276816409722736995204588121043787770088254072484011268718945449357181096196883786004767806354699954307022321157655774904807030399413844942757262971745361083123117314455303449795503884687897873699262503557566358449452913183241969168618990671864225784710133563742887373646470168962060068262145431233408431518438258784810190600327241283431491190176350704922444747643835129063426048118201133918182035994006992214993471714351674243292400302967366771011094705523436448421256343444102578133343562497958110963214986033619303972744740940147523203261009578529934718930784090424571388299786931486059336935501488885528652655073337137888350590700184935576370932743880002969020121715222326259253215633951673017636156793826972321260543662377006326191370878253159876739738142031783773394021488193527667809539672739330479817604385557975830922843035711667500451169246606756921375918777994350974361646320620436630415829666478572637276070288286890648535954896975692275256234821253357154696518922957278658539829279449382373123670863149882932625245926398200490131802180955667707703222814557790141957591354269060374679642750442250194128062870521787439287024825192878373221477245927769312895715771965053691778173168788557150384193355617255465167834092006108119036112596325537286067131082916654467753863144397475695035615026510961127581602751542402346110848781442293638531574571411135526813731811337928875465668555009720503461254377808331690066077051964793326681728011674812067321681221930512536940831596476484694105561530754382403516713910950610791051208931004251412695069194319069354615170141395701855854819684404923646363922261939192427481316939789925375989208335951664045711395649638401891047237624248168306666276795945224984798961385000223810824854397194775982802190089892247085231223000649463035525292958437416364731788994778718267456822843976165718160720893946799789212181917351766333408513505325776389717986718779845844689145149796756427950046577164440739774305383386555426894967686186429121151340408280469240736162361170059576906271558679890344397637360094669756557677231608225757259167786501033275260972601396879268506873874763783315304506979135407704754951829876956279018903401359542096477684420368761545938434394079568966071861954026764226574570282419993764968927657678033141791836691020757378184436349248288369425528665128528987060952652270317089236089941810343704685279998690868907690689593599346177939320429673853689890142534489043656845948211521677894778675688075821602067726203438989662018122126015339853372191199315687583954824986987917639279115110707087473699313319872339656729076093390771502272326484021476366853356684882655658836697221435536949611070745708862393176830381329613584589131630466857930037783322460893051269707926070137540347318073588526274492639370011365153379950960129452173646420092631142772733840641418424971296021209184636697429467569311571254874133930397208727389312945671098122518662159511461611569422538965129704483212588894095756662087178771635256324380428419278367858541303154221589010777203965682303709426809545049587768097770635719744132749375011084354171757262303513881132007866571905908975240380528812558704799307023376276555766247271886386498703905729033493696211191998797789604758012546360627218850376012969229127138450203728537051881337580578903987570993361519048763084484923626887310821839029911928635815863886033606027581761179160467446848800370415255670761352316661547745574884100839597222339693890669287245710415771864929221874425493886131512211082848443598564068646689431211882580914993362729027395604826613587103273746617030983223799382398810414760916492294242357993457795510575038136320513203882267428785917699894556529632281266727093487746196343598941157621887439391338047670453291526291617539590483060548118257591575753855697944097762929490591757035907313340805357573296673134987181149744487433659195823895987489680639606014022528428265986800115168264853541735743777903780848149132049354202067703062224910933438271599601995565715631399391405959538423608623845857885443918640772329599598281650553987691474437199586318254455200685240745656728201614132400545322747081804678090260295730360569653083554505849783676708442454490387379019107074894067703016261361660434025142028350523751124268359828374396503996570601443869572744697361419067275430428306032422851745304043074736896849983544570190508308574612223740006607323620527104511159616015679635079951784623741626204325655123736460506749308659492785290344787185758467246674976699570862326499653484998260072047831833838873629826412765736553179459624804342833441277120776533998651046200719120911678833366348611980968978620980044720237588761297569290197752098622420369227168182075433932031781420148944906237345914495486657346218713081172261689392547660804495441337404439060780178990971332425296123705635434982664989214197454671040782181667403136882334351701635442625751301913000778508116002010103234142810689678233334223204814069055530724725830994680927768114470992524287090708065302344961694607525993135758960212820585019896321643526320721559558336421057481854060017467155830287608243103322686963155067885197298515554177099480237306039066479251627627674587783311262240302642072339742081281796683906528736025792941218630211869297154675551486068585754400105182062365304857778862570538676140714514967361670809481607475774513153880967108566093544995067996803049022564955881410625969937166889731071864545407318038479785361484999842083575331787991667232421951981304288052269483665371351690370691889062111808628546415056904715651278496039280119975031306153345117739191898780683179595638701021869222806127541435327112605226812710367952381077714716419762339963319145176709497118165257850444210711854419026877051349896697806270503863514690166203007298084856950679687848489783424785219586789484091049374417237619697340688749023640511420737465194630347124348773222223586621098450187430388212073608672647334979864417406824358844212056284717058071631550642147872638814705079696217511166268112493548186425758554564457712635836436515880530834724918181647187977692056904404542698366272005835547330905263601996822911718513597568521250471750969552442719458880098458285977645408213123729716998068901543311527711827740307589577611015673589778829858442642702459486205798305791180679609542914483977636085061800833012887405593280128618178798833250135581989013609747310560934486191746888589924673607028409892685144985287644688216551883832599078296811942077506743074341541098365389137769115723546572025351855609143048825004520300637458320808161926994923607486737235069884912260783912755093018118310672814268902724898975984013726774372945147279077452916634373131898277313998121959976482366881772955167961314441257635971118747995946884613334975381260096215043332031789230997272187699044819644861019266272170621362827640320900098262952157325797041454252117790757094937772630709013656595855930652678719473754349273952790308174160609951076945840791923171315071338198179605839984400685415916300894495101667630019627241007322689719488755520214162163599919122820898792527016816576047207160245801979497681911854572907947517842989441923734337027994310002503176216432142744246300187757575417712948331555132637742530106056278927190587574197471161403642944388256562496771784319242524385896425254360387598138783017877508053467815795883611969962376030164675637646227523516001840255916057238342682009627693539191445948572743581345012221119693759607736466705916067519682447709972241558581530501480745074956069352098290502508440453493789855120460584000077406444515688450634111799660905124432751461574935813035331436159115120847572729989990109240857899009612519616407105739373453625612861783553979753947774268453567558576760217779600080818548354521087316235259785919307030785185201944575702628159240689193719223054499007754623397590881453632933755084340485652222072191314446526523001689353527816990844817347991187940856535323980759137543389079029188588672817220451123257997942256195077334653827419601786576694839141586095103828650460403579744699124460359757999711928587357738043719703766841065499547945692983089838838230747031411629359120711391535181618227408760601993853663451609418270551846829225455538559575722268282504674556563758847973386771957372777905952510544695031085455487451225657914977042437316156563225060255108335960954815137052532051574611797880682288942109475051887894978522923463623290198487118430589455080531132218649493667324682809205725851202373057878296149398637231001935156125278953638931291018382168925274133541680062076838564515389290147720873819973086766935293084881607863227947093039843555379876854277621151638979506472964359446519921817286430436350963344516739452332488797341053348156343534414527763555276301562259964391460045233553500388878335622321841413160774475189369577344611411512295068536470727194726089973363857821602572019209682389019215506046107279348277264857165496983848320593499567330561960911013448234536764006245942765649934890381975607981717679166631536374072685256134631185188961520619524588065890137528534851807253230758177989726050676677082071657798682837223169674022119691677806836756402025083485589389458054321273284090330328778205859832040397367681532501728312654625199280936100732073294605339002473122582783052521483265053473570523408663824000621410049364583818174039606542186885057982817852020903140735374506775036206796811567341713309174134815210233560974732102110316775020488906637881499938240579417687574358291413736944876154034265697528636982068496619234676026998494238383271374573010484355030948235757841622642653734408340210384325345691463228619986763864957650488599420373162928723204122077337045488959691874304151550101199534650515361397277222975977473387867745751729495830102434827101103933178529597080819508863880223939722772761209862275956174949543057635506609543442463023869312869037218362646155226276107888758900609462429261716163240955973870626595961715583631414751237760362474642393303156943579626196647959355217844724702852319831227443228318764295305517353563819354810724795304034270136700857756152047916580141524965603778293165595064903731897989948890339750619262857418447638723664444278113014181990788110747896482068387522172283871991761404993777067710699985884532700836258692956488885596374029531983411374732812260129571768997406572381611102614993246349867917322736076403831273094275006361036932462496740789149867286686820535126837127117225804263329178385723548193629198754471741240349642492425060194403395299318121608988394053967995489306352419040269202372753338878052093298711983214340281225563112145145855450986879341023516970858635041639036847520168681578075349453656184158752542659518876710255830372778801085339590780029252357711366920582450481715060805905227103240277482777929879819213107235143233848116687447122615128323310369936576824113692360511935214380182223637618356130612875499837579396336495977119483113337626390945954045256100373108993736985974652030861131081293259997539213191206313745478755276425540462127962163778080473655147553190810721698640423649837692400344522565258787313817594441879618140678467475986961938249106897366100223056425695856504445234447927479424679310116640705389508398596543308828299870619299384529466372501559276843502524481714474358219406324532507386145509620944094533773114854282583957495002458823233213190408810975559274626060047519861822878683244380817363524362591683626842044600036530462512654024842342201820414718090907809775790953281098027933242742515466481002707151849027501371929700158993869643300975133654593624379862607831348628830891620529334519845562674854888974789234422363785579957880730532588659205921198704742459336535415022585983029472223684116176996100978993830915373023342485238312090536685442254484725200276395174742508554995993227984504918582064982765636787830002633839866104758490854576664177316665237011709035485696171519090661370220948765865317318045698097901702882545553404476487507454863230331568606736159760172976462306376547513104742279085261212851724899219524907109061969329576847185318342514123546603875145237701367743961021000717568298709811180845280532441827015004171989083455297205341670613056790071436768361693383037004190547213479163811948379303646413973387671796881475330272256748941501891969257070435200586223107046177844259328064881145538207799787866276404363887566885965083837817118719237078412373783953712405802173753299546730549335970682723600136440884701748213111442675362311958377193146749312017247758717404727955018530681178557962144998067860349576958280367608931801866292136933297972847437832126757954055278605512947719567159347358569584341455035978661114148462908630547613091354730299915515716655420989314207129201062201539073599570350307644366034493292468129427444417898861761633637100904716859636798267386400858296194504208672584114313938518183567486993889028707245690528024946556093679121224267408390061303053340151577460440847955626506314363929766984894834820791347064445141794951388268599557761182420548072787509038272265425686972787559285018249485618189528465189244589435966334520234810974302096817541692164340668924433251212389208602405922530136095486548218827298560945743686726464564895870971926746831278834049421633038873037991060832245358751235972101406291647313211348111853748756449871816475423620720138225531330089058244736126730875135272855674277218476969908163847408777613253714342793567048867205639206278521221171891927913763931880876894262473648911336114787852476716778887200611169480619384160302691109794750763169437996574368575955409744163702020094049934559075758676451080598920919228332062108022532795104272983934008616409594488986166568415030345177985570610693611024801512671326657451081777283965417700055253932664796607594137618674837957505490216108296649651584922592628451145037175176582610619258282602228489198410119878637921281331023260188184671147717572970796587768723053402977518488883055603579221557265721873938018704267050744713372667879743293043686840159652404166506648632678316545170631394267902359639850956059962711930238678721789641423910460549466304501426737726541528014661973236276857593329202682061550570420960892355912346241575141391935961474445205750485076014186771580244372972095791448491321472556582924840489286541330174626563440197354466333140948221860625564315323163229879489465613522516204095427990662593895387501073321538258111785460978820586274790876193454390283101054930674332311539771180526961057487488569320437454550339053970456072813478848676568085244427691660057248076011610270684893818895570173029972744529227703765147754086497527507649012596018268483407179666970596692460939484282528472009036090323139248292233999777253374855677840267440972495184253377750014717846157853488420433347283924046855198472842746829201775708046573950797791945701780219398642516917804987740107798411421624568720744768305779832405662978902984135840811444899689087969848310465464193470465759573854447713053036145808470856932980677309713412361672880324627363561299678632730439528273386275779116398622719399241572233566619565912156351229785466559200375606865248635458581164281052919424714109023041634816346575591526604775677539675714135810194018246622113317921515459388345751271939848825160389868479925591213268981744706646295692844664495551338064897574714025789401041884370996686960406495043327138038244021122125340329259890360423579595156163000332365344849439650873214041074154892287113492039010825360911245196312368407833333901711769288578429260449699584051004023161377703136979384317174369276568061790570528171494929696025508561740211350278461177266996398800722716862472205756601791191658781533506589040861433706123503129818783795193479700309385764520569336455690194686571246817518281567793048012896157278583806795865999951194018426603434918352145486035714745365829048507564623141333421048183538519705768364014255870503416580286325293603050498354855323073870656713237433751913811862457299996435075640646389428956931928442315089478397256863493232533833230717311322652830470303023096525070772925069984771805577361887674652258826152912175403116747684761875211897762691310709879480630655320104007323299087806053030916075092031509163088069898556541946833798446603371523217387766090815140326038127874988284651284021567892255177116236875258774152998240036377654918391965487308064166902685407894857918481317952517539867984806239847406471044229423378512260057418699660905217455313057797340023855009857808980344139403184065295026626628041009590691234862306776662468944443496269591712409428841147439692370450244372352277483139400864293358777979104263657809928837013977382089189708683073656717469501233514928661626263690602604598881830666189781137646774641788156715577495919038110808368954354844080639230210232106788554647626346965617585203573631166195445827145574603150582159982836296877349703148149915944188098541630762085795340424219308604966828430304637320967501842712096737836069613895295226824137230763876793780245165620376168208776036913167143380661035581363368019915599291082677044994778174341648257432451370777269906940628832353884150210268513041433248429444201430326159241951072274996229826136078625297857340157374769405061051113933325787651898840965841316834486381075809125489129950299674331933088189486784875492231286170837952613173776173444958471034608391342199341005935407013281917003182030753163298166011715709497883286606774733019583449217635358113671693614609587442918752059528144125039218815501327978698161285824592493460569722381266342911688875521784124479274468936130422556717641553944060452898976391290876803996344933031965868413839883389834428550139796740111889451510826306708850683147511013291497629510193084830158617035711921942842139839211987549253069746749198956247878518605021429430014699956407357445440455668256336712956904825888068739575806784311068778873296168162056067317265958497449662012953623860537415593616630388158313054577265015487331776235522123194870947294540331954282347031303365344947338365341816849623118865809251239363556254210546802735293861375520039733638323528567938840734729192480750838413322885299699211711637415969129376590152123637452752856751409092011231777221168561111966416137413509470304368334528509265451659788714657671360296663998311981122463963012512756694933487021879020508187823597158646438678482037564921221979919509339267907738937252196460707448287376790702196502469051956827301952686467070159293847442419163210438454917326887498538306002392166168720758517418004302656023255063738671814713561077876093801849734638485618396773054901197070422043746989042962830514968487372092211216965250618739382412410160758412775501107056940145776417958239437337317878759325984016797337872289035068558049782751822284129422424584455228478086698345441310853078910877122284819306126511268154186936975644379581461762942985206585530961315601621022682792353953712510840202294338377607315455410431545190069895510474470426810363656636460275209337365930308548250493729575349491341824338113767100447862964800407081181835081446820520061943932975892197865635183644613563332917136983180953291023380965665928022454528367255118563899894816651578189698152107994900125989579885535485009351266580994259385660805013158375771716098554594727106262195916403232633867507137984645326010167062981542671326928674310030122442385156276258669036908804838128102348657372895014942663821877950023950143517519008560763319595516477056741730161573479814963526945571432026212268738081210669785658798647623181619173342215352704990045484900923576572276249570428159028313489524755634708046211940080000685279727503411694566017796733581603410778872237858652447417385408151014180065053363384080445094678895000840006352762936079166808833963158078976522146651330725375534834505857234932603995951017159653486174091698958977000974242246703495782934433663032807615711640345606215284500790912432544070207660894946625759092737703439467223732514502526335159195059811297514184054961140077492364121232989943820378987180215837468980883022768239685071971996694374824694973603043833204364468260452635018076148934076246299600154919187662853022056619874587691944184265184027547385486597513067076270227208631273112233626819807928228789731076349535261611909508406751253770788507623531021601714484518106231587139559477137797775895767597572432585112324201386952816806599178007420885911592699115336310027910191225289186890695660076561270549755658917233983957726340543333132964171666119924681088694783800863025468751375537452583984860828139460580455066919718574542819646391176509007301942221814660315067236190309088148478196997301446144859234338657522274782588315434066688030271067377730221588126545791883116571897488436517372601071204284020730178528861672217516229883669555161999276762944980982524504964143978521001216538498571335410493583410003379842298554501179886240914037798711740339257212766223945812685806927984919713671986029808542491935392891949645046758484235563844386897324425170788283211170185121060245875010666164575943136191438117012818641371000119491785332429606128298900516781115210629852696498493565269284392840502080247162515961590553104252452644259052116218845440260220757387727098488360977956414446019253474029691340263834248226977116072636897153411964105224091013925950081197195646769478574988094694447943805954471968580009184481906918229615286220859446215290218341810894269136531785379684593642573719650574111199853627283092964065368907326462111164998107825073378026255321763053707697934057586435158345364347668310464110830564665438087896065549243170780900161286156724207855012272081471693769356489641506159604973373422018439700843064860945364555384176968441682704791651070122587221704201405792591371637534524339423539960129420814916272718009820488142589299971419749842167755256377355622550304469029225296846664813864604950601745282588255073779296149086873267706181519229184796757926167681924009494415168758609275877611743193343357098352181150938781905780505160405888004056395430198404673908635936911399794188674456054994231213557029907633702495185926055479984625749587040302152826063387769365428066551150718390810242148424690799252070755756628122718993552969432552251261527348004439773249339281522458453763818469148369294435480580286331086938140692292358188983345824599677752126472913824872672259714463559622714590237298735265703317166483301654373120162250401173384792821196309886488029170116491716346600477936930198193869541151435386534274711042014869725468416823348503678463974883653586855006506186101597725881226609679388492601464601965537809473660276148208976811708328686915952930867238778476036654580640422564446490299535086582581814975083578301699865863792422141122490944058871363886354060961585714889238792661804968215045216572465212463794602161313698376891221896275764484507485807779958653452247841382806828426779527254672239963126110576686419404885202637288963288024081305701980180031421797458660626184646890438750758118826384923446779454724537611815188337070489031570319887887786635628847247744737238040521124021121234980864251257154662177478061088434697729763369798551266405787408969731638859299206035371622327742440382027971432505749047496961797955089540297636339585626773983179014454827252575656180914255551158483242149318518819128552570885292411858959298414736517089100093502189902571366764882520874328616455378898883676571751309414851161131173844621652708670282816465712268104295075357236143882078215512650918387889973333474899584827693134995600002789425748050948290980982394121943782914688988580158708186667898546101145081467966562324149408310280685831950800092989960267932929028889551151418595478413127398092779935883296661139327886859011851404482081369256116341735966746240313401516985960996419499928093279195206725695302922525710636508735245059417016566211153433086392421884148920875169564948440839517681686475199530590355798236045997009614247189214081364094953612915134377314250791416551524810999757579158237019588089830567390263702773099175335588875200250836087569149562879927071833991936299769147569202426403563502588595751858716878847306405581095469312428958220149954301962025596478865422467008639736239555198573709467448239982889597727864501432553126851859868027366248186981205000586177726855342275221070580688985256486011246000635768348264845786577575655335798929087030822305019405368261388258195847415307628169014449823096532646932312553783099876372308262630489029315046798755518104142433061592156738900039752823181683198323886910317208945130091545104962704543900079954575747948573322346194141402628129439730597644711316970913715749207100821722411351605391862996009216899456270213529679388520493368004521251160285204928691536425518270374534608649627487609416348937384776222763965525369241834893329277805325750131384990531070720084205355462921484034417463027903131153373988780661654725066902512245179679942682240295305407084704293980750123701779351568964956505582926154020191659117460649301186872848326419821746975687796749183693248789496553042691835773255541023986279663573238661654424064575543481025431290094260338584236060899646330034291913580674693345207722071475204151639741909017722805005864739221076913983218907205383590705924289540635834442518077439897616106185292563258892316610592384715660353367104146278684027162630561774195339777683273960380016597484842958663548421771813060400400563006375268997743838009633517629590983701995418952897142024890072343051071544777803552150698147909028874309313060882299815029359093733374011141618688419017809029514550986623099493772957193421754783399570508106136171527096256222572082076045794409794218493732257777953319776252006017273084326540042441263116861648006931340894893096660355911146339805227358570816714599173689457153690803680160992978569574045670502630560017567726752333173463229270510728324420586480200024480511311223721097905761692279588965971655446555243625426391287169032622212166565528166804780776655298752237491418135389956692216821082123787130229208697104566954118557221795353944631462010537071463746823397048154847230594665844762623708653428790245214671984576053944916848545632308730997426755674082972254124791918068505508620064830926248171990478587728114453355177477989824904294401102377199285861874736337774008956013434010784532518866296829516660627482900115225112173645298738509370105939389882082569918263501305823376778381231294031061035143999885676238588029345432759699613371029310631690440857747270606702186932140544185200497251313472257010983417537281031982801597668262873849621441202706108314768714134115197336594010356360824897836873756720077102997646731100157382336283172561041937750368999029266377511492815704624609291953289746075310957356923814665530139732592950105944884298634040990332006186906473816492075442338776779881928194105250694792824957312205768869007462703712090478269590290853811325250387841615245285216152716445239238583550134342897927277652737087147171511149582386041572155724672436359120146520306392452144908970908275120587825502813603107895439088527237361372390031570461608694645124482077452808468176169519132764912587796960282423216085655833861689718812032467874602666689477961897022460079086389128454224279161893582038138832564178231021125630159442215201541266666552994947549846108085112950266586519436220238140853305529580353206292972713324699161811939263038601587799146943612640086317341174090874424466057331218627276435308966228259509110774193042818871521857780626498614638434082845327525845379230820034905733962675115846312710776923395954213444936539668349866589834532837222831096320553407960923589003696203621929412643210125571404718901013861968302035575827189243144015364266520070523070108655368772237967508500247582713312216634284361533416949188905143120035195992459312182412092514020420891338981917482819252109529565135957763499817645240080127489902255472085124177270230293048433330062948619713403237109516367557206782317411925774458845634067677327374428420233073625076482285872808719536084461570637794470721114057465329136910132352949054581778136774685020070265148178544186304851675596354147200599376057639712565996153555561203136861536924879656751964565070720973744744082900345697038770011249855964532746026038822744370493950782371744248055731963305125900342573983359656782094994085612628139205699179992381149575158574333945552874885559658986135403068045489989783817394003385185188059092635027682396736204275498103304781566376944456350099154784923902467128754994008031152877377627430137784281435640142917603126692405365202601942596457483615889556937498315131998330135880925013649766951550103783384942755799389474561977831318381614300203472444918499527965109079652155925206179103029566217505966953151721792807957030484665818046407742357759910169125048560486514468132329718693231083285114323263637048840324478318787739151039438705475980337525750096243546747007347432230862983931810779617814336828788424166306569900921572752303527900633100908909781459696101353921516091853243130810587550583067707401295700539958873713494652816676696934960855208813753879860543499799836749539290959509560768207480312226672961323379632570968607715077121692465708398659421305839089598911665048153840741276509326021031403664832053082845422050810289581469578490044837003424013620845423509867772379014482091852496963171125707945550355046411367111339717106446073041516197348807658759354320656963687074692729706078650325308468214615792253898936134115073679946456599882274664780944867423946952079990277074988166325542277250317176619718343155686930491541969845391991916676156686371083749282929690736310264153167899706290909833826094375416694870174999897375311151572400277115993574311537323612615466250884778409845640535655078961010185790488919873258432861855968215510032923713998105914129097445034610727939506522488278922173577998581971463943832193043223318260827285868090453871790655167636765216749640590067301489286667113107690844812378749698080006922334534573908773644666470638175275619285537765566192434879400926842264975516041870654263706320015178994808855785412616755404789124095053353841778998446473448043899967617022741961598578867322059754370083810298159430229707521405199153205602400715455662299787321196813038274364710133850044108715613561245672342136494179353659164141326542162215360849825952993038127756667909899305466909392601200079941335750649381305500399759563492290620491086373161713019561599285067489523425772999171815659224117717751801443944388777615906557302534164298618492123991297935838967178125103932260774269478055970438171354674484070599156916289028252437193634219320909270283133202168739729754087222403506086179696187997603767173074943528559358725277840558159234989806113466059201410222115374827127918793054225696539686495717532266957020564092311940588338132400600733018111117857691512165114067075220962542599804460111032507232459800129769658292362228101070051036400214717196616802330730742624655122265722562511839328119670492440411876129170260972769396996818506678952266278068590776800975627421591783841729569394816791383942169417036190671110727115287091450566405564279307857264044167999266537310289615169014181380299845562471896927983164770725805104633623592131816128442300699926100047554028540081832627132964963319061177766789241919406336989106068567859644997719812281783344615266492537820316690533936673970436099547031998199133825301180481340255165435404915864943589579848121669732459710507331212995989990139443826580864973644662905737030038730102773982712971033786786721832688969956337001591847331714255936477902714241328097537068943389427398402236817779375865353741038262177809707331543852152110773819135781323025254747694216536383823231624845842468428890458943487035735017933638909136258309299796053330750941722260735469823426292027103386341035932505575258348948243151917748189801631307104671526323072651589404900441878135205593311244677155081896498037748671454301002863403334794054755329582335796037567308913275925639122505432829898711366580758021827606723935788675898307706848152143910925905680837647521918381790741570222090326343401867594197031312393667795232341820898046386030811377788988729852329648070759364467329161371870411886285414249701709290923889218273364929089680327419793883559323528855735956755427800506343604426469293006580156649961568349129459695448687826106574428923232690120572207018426364466282985586562621724857051477619541434648918373845427430635365127920356564095831918561871438103243612920247078856548619777401856085325702439043412745346224874170652909558415087691855637960914582308186242307513311173847842015598911141166694361473329578742716951443973373027705322091783535723145315817763628631689928456577010948468540707509289628968718236967235564974454353727719092554258850987504938305779145611727967334105173625689269431355796466866865697342624828425706805528086742115669259559381180476115917607651140685868360120427202046336230639153673378442589932783813818879204707565603981013897469735220236070399380825705757153986480475397405067080082825310000172112312072784659994550058685173357524489020909548507487100970279266429881353792019908635790175747075973431675706418248625776157222394068070919629941107762996967246512190339829788086576984190990741251031377628494258911160838672580897228424969786185858249462209236285520017272479938121135716934861736973180332635010704692261090158181906220418378096950741795755067352395190102668012169798582263662040684727606540623461728064533456602301241050559027303096477152389852879626925679176452076374142093573052633167632720781311241880156126119941342978405883880480601565198225602413133766062972300348038555027352918431672391330351022529162533845888007228923289168250110308569484575071014915060571166243163047109340618955097196599855253736663115532253798368352242926304446371965516516919914820075700552025174865752988684582061120935289562092159174077271209291645998988472725226289672334609051776862638219250376679394538386603822169956022076225208611040186437110235197823073294584386069129790255264879412852673981516044000035453725063477701135222051352752137847799224912010840369776183828234556054783976490510084459346730755791324545764829202845961048463310683415668225653036661831344465425298982150258978975603061549014590664755000947543749004481335641952268879974875901264681347249791666064898819933864896012792690269548597924995312666851057507514308455649603943843758540266756114402508833096034422703097822626066201513374816706231277323173635452659148814818610434514339697211423347119842032329741746093302575960368859812017118132023929188512915279730891497727296314803680301777825591227476951824046390246757866670978039548978361358653953409775753662056901635967097804407403075598204464100510233923704647214584680122578834824471372302855339634872341804732781789357901086032217481810031442820593078694182891947524845141435217438411470360247384415350495529793350494445766504579384656710556275827760321478657514262132353227236454820104265797757096577113437640555674469996074735926715252526670314403143669324681930207370155538751692210225523154621607467345342054988573987708294412396586935425911551857130038033290418270595824713099957913693163580601993103659735646847288693295682636278569767674553489158488437832742718399511390209749042651851968481456383360466571171509139024976463115601884335958276236672828641713872599504674340039313341241514843088176652883332851020053039513179618788032119191497712923712720315985530011779861252310036377635965396202584577572649934961324672453129471002365095259686330223701120538414801566550442822455830422449874706285331550673063539200943726073997683412630990723161346463453110914209396030444155450948772904583315553269838365540660081965092295184300736341950892372640602609667830224327661004253799504163642084607096350453326982845946557186207957045593289073271119419944791380528045624023943979809551174716681137170033758691902256446418640974814285027888702525594815218608803677412262489057209106405620973717235551471989235365465490813857600561932067811442819562417350456062022695917734852297093112704137872020695733032196586245603398823365951027564535910382816819638492385722924850359074530094341439274494794219670742716283006521861649136705033025514265520449996133455777591584981447119316974177499138699841479043745544782969723133288363730204847172252456411669238358276487847048747414269987175089374599698250784159923275683922131106185972924059876201346191582882479022387084258167484579717039370609742778459686404792529510316132131927660573202449783120783247124915886079034188761171555502900717626394121779264821542317673727748383677395488098435935275936645384664448269729892149015801856030729246806665868567999235520553513525778217452066013688865853194901017603127735418887014283901615096988380496763519513461304151781841913044327552675862503197115133780094379197488445672381084186597309319996247575999192742359931586728426678168127050102273949338372124614143058039632463005020121363437526627776289810766729893829810953495585346661255790088355543934447257409955281859672282060938239289596946224907504693077704854844419391694855817550542772429770400674067986933270156632182236893158328110070466192203057875434697265710371223919789547252261512653096289694293504784745962013330235037053122386079947287632510329625201010754813117457050392701463232167890064883768144348342711287981829386792449141535997877855869379860285041618240723558397421999592775119465675133233144233913441414649201306174738743454993415046897215475152743858206553409893232738391926692300536039036358093509774069073279155508816169299340918092603156672280592194944612181722292342776783121001907232038998309537750069426330533631526383367489298836939051755157143729189486164142460267111284829137661804085924100944306478778891606271293323108247015455272486619348511334156503100014866326905051335069204251079683315939798896729683228267972538887098982180774907097923160365306525345736677971915784593507764779024771039283849458482622392156619488862073778476567048947692429379273148530869556728967756871955409844658513278072541204181995458580565320490815258403777534712037336383028017812641124121941949138083933345037885274509380138951887639735988943998192133776810690868482954545951293528419056819013574311206872563292095736940630559939634278389265991090878734510565742298856323518255289753172646300461688095687656412228987562097980049456138154420522832207150324031955994231536868652876544844699263455532124376231794249502179267246696382485346720573597129380526957422132334571875021892176308444324466329466778072468326854903023031196078786911485772505365405624157999737634949316177653781633506629597334730977565448737098485064875596023448874935687970594131814586008666536644111547330567268061312035044524585021270220913325313985035696058304529621561057357464058325006566774271802816626537197945062567881810669855729070858735995943259648399175926771061166489669644286784138121987079244978661904263640013487205752350363743706169869902174169843965958174734174513187732085792106921592207603600815375160319114947115043107156979698206603194885620229284934140737381992503899008429132287389011096130534525718696585476925798835493603820853949172290873177040761483973942667803429956986915492671921457400074627639948122679413018843775789875123405728512504256033845366370196615027196415043594305799279093043626770490469589830537472074839945747059710980493101739941909192852688072669246239531894872870290814175339236624125993885094901808427713696037412595163986893649133852006679369562701070761870921449343884909345639309628881254189279951732747477697610169387867311236940506105816758637944336558904481875175753929580402920893662961634337537120315690457552284966425236618716397068829548082795869485753754010006216104249420062422878431395917547481612583581108822068756026689002846542372178475851522801182272162016273412156866328808359123325707527457109785853877267896121998169309538124515684658855186227989542662806697675148649384003227128162333057603100003627422848676903760490639545005585305706007059557677331481475358680909619364185294225460552388320214575168541807413196076424771868665823966323433203100900430188503475310795741796936420941718743764024116445674930129889289865155623131656770951190826504783793325733854523869062036150114531315669050890135356276898498626295077176501579790362648038273723371204829526561642704438024089494079975950775847150294354514949053020183265894231326741880500566036051420408035031525675145290131556387924114369510002005048277105799770046094136681877785769756964522358997628551494848957587960525478681043845306051720419131162938580453570859517545524806835497438341510716503710872412888767340813462250472186238545987376159196446509859225370226475749617182537764086924820034582565580345243972693311545545678071188696854430173751726057068986485361738473144868501900777583043893126188198300173165604781979042283529089897917414398445702192733848462459161015462010270562738426143853841394021279939657447585158338852109436601214103917962057695334657520836761592511471277682548764734846882925039721141965824907438397801308215493495567960111731821440442626700741004572602328323061961696133361383145604563142560188030956236072769363548421830778237115867158048532668428641375731782720300687033464360801065583638520233411387500981368796439022922203310311337989324182211066605222085000160996466941603570461334023682616060497236423405399982948702582441693607360632169520743363764929812041267911034485561801586098440987424771205435280805468285146634014506910148421704467112384735880864616701391146210997307674533351499478050672299956975132498215256920586572749291587430117521335947774023236590219415744927521664963128617065369916965078318225129129865122868514419872208683951308298812136109788274263969856542737913188804802400810236057907192948759695969042845152456254591064203129617684371174334268555473230757730630354177930420342333450333095091051182290938245753057659482243565486064036690647121691817619264438831192934858436401212627898999389873660127080765144619822729380940339945828551377564123918567270145611186925378389306629788263340579501217334635226780002192877781312985365004005491631903466269024637414615810717311056572258022485985804584723371724236468314582815784467280827845408040706668088096305537028964484907382254758905691978427639628509614160472783559963016561193086825249290919982072563024529073051847082741465272738837117581790125267682580445462691753493523992731877375284138081310711359202956407876998992722169782405197313817764181540100670371335749109680256775268263486595256323897934341300852915666220860257254519732851175899190014770089980338292293089393103052230556037900674107420495819918563100940866753691912599796256688219979975129297197421003352678641737984080553595902308139089495006936202272499904612444437311302959358899826103262883763618266283683280271391578919261370501738769908408095642058513178909452552213326557945047037594448877610724145156234722994085630755065980483169665706565241697958586540264271549428003028213382642851351814482860381987870162469736197693507555891079935656573497418985136278864352369605962450255161052759914070166146259301216510632159258624437374654137224558370006525487847826565906009112094782497833619913588691038377257331283488090657216822582612163260675292500259886685533393010149339205939576408390714854586332173838122072321005500793063519345579712320759845165252898575128119797239582987130552671197311916255462773346253035019254966442668465109311059256088638900576849148472334994506963607620220678833481008405275632516524396587709321767826856906362489073360484749684382068922444847127446555707424212980349826135477136369159441080857760725103438865559747600012451500851449297130211941330996232289564185606924259916391720687832816537943131044051829813734453363388835012946899181592296842373713218216970901203827863737297720103866412821387129734081004991099692983228849591979409210635884134540505460820336358450382472660600517208627052461593358964968239877166299222490145253495786051483760870107237871427969418723691035906194211040096114399049222427455435169691479780181202123039473328089887083643241407338229110353962907139831579147515946145694096228699485784172069470910371109734521376469331188558112714884025229342706896564874379625494408389527255783750083611057663540922645492145878810685769347299669901440739254061411307297801444778500632415936102264647552376637862360525263006921378710075116402006821833437367514992299831031517213623451633481390645631727516396935529607357091651150274629270373869151433062426523497686480827689546192335988785606318529524220954221355985062266726710769320767329099668171309499199626048969834544595288609695283410266602851911333686678954486036139300334050466161927889356491709242410007948445641472915373877788843764475597907721642648545371750869802922510339975791663455189389684567913402425304237190710476539857772494855696577232421900297389187252976704621023508856116139312437051772916644159380394950536676093468997670789381781385202281314793560532440375024553012946795656841553534090506271731700897183190021130104006751003230364083405196441662232336949337089451471948009247358851653027504451371402192427183022219975114601091209719471249532144832078229202579052060717763078004082502006560793126835576825320577256688451850678283614235050297517346091669162133829539913723557673796895087819815641903103183542868022973540374369907509072148870309479558321862703706266327033915787737636357281595098853557440694001222920193388537401206408604334195462667170300878924650530022821576724014159537739537849596867317382689944876286478676666766174554678721779069920267484419275202290881802343220862716637776736918052875310053117914214687387988503540221771363059462666350918314613250620062505486839152958897878705263514021224753729725929687533616648086275896942873086866057219078232264400294734164213765533591137763772836245812783592148508122092912780195241958480226341777457537234916043848073767684907499550860472970865391027242462634158547968888785178822523427515942556347265361794713033653322757466010075366912375839518624877437003970692208353740243351082053685501984187566175925733176853723653868350409170380858774330813869044075332335619356224558820064015903753208877132429102131411395843594727297111910531018443162857602309277863323810424893993566676365759706041181882087955820598441536570706101176215614728028290469456069152862241974778040491417446203570166750158801785372085551108672699872943497513006475762875775107332529489670717853377083271745276930851091901928332606797197360106419381869776840630375389674058097030520948822855654731373209362991993409700362416505334228936781288062688496510675718927821220264589173842130635933224365066781275635072507944608103483069246622065924174644915718450783596187590108280168495272223108971762629476710680495846458636889863731129146634656946073073553005819451337096282483855307323365255240852685873963835609525288349815180059974793820106821530344308082003773504075314595003277108343701820254228237773303107540029690389302795814252080766987451811400405429784209297734004180023634237998179711527050025485394760594600838325918897218472570074505054055665506101690034051048164670305759759965559899202697272587103651229765154316543855973522559734132378818631218594877036042703676661405654265547230654180677252282508542798704351630400096208232219590877434149521999887352275729421325322983499700328011996942699209369061213001705336167850978988990197669687325170115570104532000582606472624022119801770096558442109458736176733135113851525736032550181020289692006686145123253172271436438124049470706372810361704266872939866641252363857850346037401150076870580227075735105292099562700234536213216087632198053753597652763876084571664402003588781615342029378314375720698714736632618188836741081629144976752275006721398049947196269818799264000905036351933229766480199960755628601887411066691692871373971808121619870221689712081001719300967733576319744691628717696840493678584968930321180207954158703850838272990121661956183611248221406031473080373007158302489327612473786028568711570428143880328739325105310310895439513346113087061721694222164043004551451881730882788632171512536930560786897124194774329842988016474570009626447233568739112438909434033675183821697660598990667344783216283378348643850004351025231364646888202483542210569832277399764212905934320824443506900516627867442556101819071450131265599538961613565628096145545790631311132405562817097168404015777147536568245998706566277995432964697755577798224723633757227863519540150118752945790377687939349652088279364197138404398599887231767881040601274542322273096770097135388220287835218588905780061171390516105165708233739504029193878735032512282012095703798298246786216542397410265360081134310935806431802791240833247506725882339873657297392673114451227026248947438025315828219537755490666448392330971858427044799430454409272453229558098168627291487682303465879118061790070575632918853801909726690159568567661167999962907053233312176720953222640763188151337042497017436415609847227772499705251968346919265272996433725572984599065251196607751316691585806244367762738116126879455276225211410899840675334287945085149074604385497521016848958337878878306189777630448076604645878068332295807828152132440415552848762711886089657982560756399714971074022018166325762570919334968233150909412803114065069846476724016690933258035350185971647824958053375743461354171900573939010295171422681873787586402645173716334585325226058490681372422808826183007805207747762462758063529409546621776108284386495157602175340618954596082670767679867954381715642789169688078918509900066415141765812551442147578009874747690575186197134624394517455235641499468614929921461498667179767007835331227522354171023757024707666131378265246501890781293501065285993056960813844934218166325848116652478511163778908306282102274393266270588110185429141982295708178478803873270675071166701315810640965658656879417040543657846161758153553891638945001662669709749917159138438335937059025983317985176720388266558579161083878623748861228147337271840818709490059742666186207002082188845689472728922957411918629637969317955710671258881288108091751771353621687751703994046175618788392515553559747880873090306214803809964769619979640714338515567474010625556502276305650357772564435871959657237328145184325228425608885790787689935516650235831258681769896388168274227562861119316132467101023222946798084864008394526379613700737606322186898938398567651564328559139057748775976712583810951469120229360199272171675748958659179792335091628400648688116205591619042828135440430950556898254795555473953294314093180092100942870922345998446409312597212539062481105026474006801919070335296368478639450688608620556062097720613668863376639766495144347487630865255785948336429888623231854344038716119106249462911651262975766386799893707836066107191384238480228168035744274107744850892533015368708556362190664578087892359756220718403393368297805347582690667833434451108394684160284188825646074596969590935249856701799828424794781663008092675812061899226602765536684681775119676084877434431716617736079824937946423870125501398979573465088676809551718865103142282475467244342641514499430154491499437530012971792451972724468555293748095722045489331541431927524218690894551055617773337976394428061816417735229784467835768428306894486820212230244831338547051004234555500254109085770041262293325578626860767258853166177165493739507842238377335724644130108884935075241849463978413820260965930931882917023419105717325007265072684619525384026765029762101572226132318546261934050406785591244979277258175908741063417325348353786813963203361511877948145212397254906708556752334205042741196352630028899090404430010493411671886150044069261969209601217621586280430401961859352539368908844996872987803531669034040271109190268159233578511892227732065467336094146615835669993914945546943720075056960444591065076808085447309591094854602481618025684823658246371577795959438234063035357346736228637065120153850896185117927721307796294710576110926775765613486912461194321258465982808744307858984111039228456052322227233059856865642006120639568400425378145753323652856875261783076062803930890668878297315254411490176703490060155969266217365729703821690609015640710740034020269419417632151789827515953267662607849035622647035997734268304709929630063846521129899633703078196892316440845158542117792338468278096326695580461573047139477948391926907646108244628183687866460022064896216272929868673995398269973456611263398974749776924642509646441106439918380146294187097384675233284487499460407980838653863747847675301011232093728676396325560638403745268010840519104388157381375582894875844185992528534541422770918694866012792035933767030090338011678108119693547014663049548945237887492409468198282689882754198542153382083558832509142741578358916990642263546310261384729486454492440935341046408558712643819305277794888772191111033330004810224886065408261573908966162746331709966149631155896802338737850966339218450827043015851003134344690222064699754992652181816728863216772499948628987491018630218729342862671237957177514722313333492030078649087811486733266063908555473986191845368876086148212191309875240780166503760663671475891972826487912673127267690480907106951880433241803451694455214472363792824437117319300923961186125422115885069083173620288436180085621338173622848965970723713749008369481584422996266830417933569820466343562925579011836956559214392045585592582684117165243873161660864827538518611825170737673675734448640036888402253060274461809996866616140510978460674371533095963138294404039642662710892991337238813827469785086371372509240239263951101807431237243321590349392135824115410643966258097690585672328199497680058955948498228393863223513355068144468206353229164982665082632956430124409169146711394427824856379670603584466206810050385595470310879349247159733114095376342883406575717751006822981688573833551277309838020709629849877877681654297708910993566390185101902274700576512548204814401260043214910376768872863968693437361519910528023096635357334837886372225241039203429126470835571782742214360054227813782197251906416022796930721656190289270519898364848898272845948924702885185616434738027497932019456639544940881951731304195942407683705661185391641292116762026413077755680024240059418093807645534649915013961224391310153487541130505352040079011512813437625685952270628960006191909868020377548728799846891704181039587264735940059796615364059619786651660625208537494788161756076676770264218725640103673815728773230658551574411478907217517990030195800899926980068234400746748155601619374070160152680565608380321357264786809341125296114285344823444541864631947192226789930360150723106941108967924151580104883922472452443946255458762629104212711691591828431486520771099945318342727238697835259948063250873114692302489278493550360963024633903911623017636516160857577372491164511632283778039173983494574542688873737259482099483302783928431467093565223658255920142421892184090649222426218739069391280753002941637103681135492974321517913182221197100349802248906431778071496135115296405709465104837535768157491109707202259945966512447607752395545442786698776334581442280092518456154904932100092652516602427360230377298717009440896533456385711961581242891883473649787325628263711248985408300092437306112407331594104398534442260850020269271429499524733962852065182653327441787900579157417915487704649658803168061060437795574385277685979996313395933060282927781379429053999075779608032753872721230227170544242267093532394569593471816080127086942164344036672310561852945898972038373126010582772593946398932733244957595203754899061090802915090593872240473180467003739377184843963679251211686506929603934623763010722902260147944689939008777402860038768288241506975941089833741195044140292294712095381429852409524877108979150512789133009928134924393882735980005021793756283985160209608620731381226350838841873487097314264414563765870209258596524396775817247904675033542113137968505173201679368559321490978328652436672178829254993658129175811863161335788072623632650518162948461724676782460680903405831593991318766976971468834317225604769117782355040306377984000317570247362537576671329996308222254766977314368976222717540428020578291469192285150344060600192898482665336621937041261238896367188584628160998975246964145068026057553101127610890132166721977026601632283913480137812952493968054799133609696966497604486356012180489583627191045692116251670938719540734253036109688264815810895129089796625754469133296660526248179762263866637144626484392312711745448738682283967327880632392824561857606922882088646502271153969662892101664299006242203351252979132538169651249273981876081550742734056146902936349784146558047811173077168609588196321348939731941770435968908945629933928319478743156237990673375685890884846171548014524936601732854809441679560543841204375711298742112959445940901228653522043912545243832049901530142216626485335931373307440703600514002473411595200349753676501148042442532499989210607399159386162017136750974784684165248328702612773851815576711447479884495824717312638736693096224113156948586878761565368507318816482839565723055990973915210248314692002812674781752123815289507711975255294905953810145185883566237912819677303189471051288737118923425713771112041675255359232174057481461993752206815688896665503501678606244729771343497539848322675587182165703126533765037906460083773043333986359900086708145994073032227227862147306248475545191196693965194682158115676576094832417233387369248837573641809236998260858143322869903511117170029208007068487893738026650649929694818790728004147658954089568269327845919078941425304929830292843551785362369428920270281909769046466303600286340788593013409399878989871997138104460958048631360557751563081645126264088431130136073288231689025854514815507397404237150393218102841585966827386254013530228241130050260201620852794778391413106892599113992029443469267611604655867494752241177999555224645609879112569643512194283647676831078046341253093624149774263024490384979345877661101391496904498953541183199117436465069465612699006691344765559672348444241074230829673399077808419301068317241515696377862040366859690138693242511772334568605641656453414589241968487174338170330880738127071307520817080240044268026472818124492404902471474132019046079658372903432913495881423688816703219952682322273216694625371031872017114183966536230179585385540749559857885615963349531439843507835032939957698809112544194945556309535320401440673299579850878023759356493303243364633622574906021030429776691618469466952820944272683331877499316183980701644241661470534709966421590892332332804630216842157843530878752827494480794385292205639350632960006308366115386407305683516926094586126358773176451171059528381491487010628045773150908654695744288934064387860028785658314334327844240846269429506216182772188656826401974384623541617315276123095150949893937115527782671123516999351882723703484349463751109542135266100066018759964738256287884998575880727682401622511662438716506701335628296742447752611317215395417636440604453980339795159116235131527192633087736282155082239474458585191970427205463285317680833503491055987886245224725564949073317287514506320691845199209336507896531350568448536493653234873679771576746002059612868419107607157626213870362109787669205234464837938741092078783130233430554497196119301091314534102713352307377502157193630959515075099667043192692888692591704557315889631510334000939635737127349733299076032888652532998389053921347929360853748579123688682574940500242410745799734468449690373792870318594137961926487974070526417869790185997292586945195498921156764550562476908678925476337177822204407838072330549828702506732338259612721193381870129012662977384332500500846768658370289451616762900616393410944230046974965239287311818992975506261153679032943809207976960325853647239827873709437224717754407288815509387872714844466867772181201806807667374535637190509469216584882696399063060589470039234042726865335903961126975067118973970017730330943140611834165835233132942170025609221793075444974120834690888348376927995518785983313226164536421816918290889490932017782279040647802857482861617517970807814637624071602960902595177319975617636790621752576421343111877454889401888581101237837439611796317346930280616233391596046647265152103324454065055893737377384096820583635461417105137553516594612175985140607423298943703537636587482580433052413725031633591713249027362136192354283904678482903411263878452659572792564385403052593839450815055233865560981115503265778349106530799341770361681358136462109794491298915479601245376252051273165463903242477800599375683092864240095929438096634948480466947347751562229221651469307766834961774075994160924916911812248737674280400244312850710307113761457777725663391878037724544235652957669120421055293659875071711814774855111270306991520915382240540892574705230815347174397648282409014994825087821242849262561006364155730480492028328003922062671656516876022136837218433068078049511544374626506731276725045051188720552021323182889229172180380666178549473857112826211837397815039989820234648970028437978240104216758688812802514139149985144417461209665109637945704794104090064916475467737618804298281519974606502636867436052011070977924527800488619209023676462281119153193489734234465278032632600170592642551019844312488435375988475724187927482907356700443243693742009697733190689353378425123837006131828834056548238520629278428645412061541785626014318173054282310246433034616157570813894315163103186162858594513943879490936212618551683845827807801797931560136513622958620953388585013846164350565151246188284386742531152434819590607125252955042346239552218655899810412810635507494721944540840045526895818403815094518565930844886213300284243255154969368020792040869353707044722617008732601020154116414823299770291935536411778195938348876142393163424406681888078434479429129872507891932772839662325803163583318400557664770251327865274986034872251503348806825729556422874151582671164262087152608120859607185850461221275285960031503577067670680659528455513518287239829780230774288839206793550789593735226581211926572745200874470844954795021539467393025038064707941053330608891175898005988019332345213589897490779316947333986931553165176264528090780300423516292800730291688726895443395808587575187280311449549227875954911642985018710427781450376590296118752493596532082429696738589941303094298654572296219757424746630585977589635437609146304630359963503929493139753644384149002280294469956421042568873177138804082805247549030650471048195194761113972519370375291012543591248509843752908415533115717731963153682243985320529890903843538733352810105534312524716616524217960612396406528540558307946226843299518129116679924958192160247982421616901361859657036071380534446273949985904055176051496767334123971741498321511112031493411871835293422393896349912695553059229228324397831739429351633170558255769945784488028855321317712781267766035235968690043295901114625843431563172806323447985902046032608526675641742275705651119020672334630519210720931699274732833432959094909027715707949964487144205441390920448929685734615609511094559938312160887109166402222497431414024453440639632486015703599704366864565894510668475070570081957426200755941751364591723903265341876671753239567232266654057949437987724442746460705443715029457432360871670638204001362324975011746746218772943597817619858317736891442656782740729190868929809081108059792774209161819847236502374039207332151467011405812121162121017021395503914440467963025665546418535954743316980798644711758992637490874156607986605436893717274814150597107464740057654990699748215764260016969868575012369218384753371582614553746293527160442438222919958328402862657896803603679780481085362436853755630037353055895709749610535335994172577762440372492869761059577275873493205462819045943360526124450630463986049985998525030239790692188243361007208344881800797478119156171197558847797589597892406587454667947843459260859030818643239271051890847877802852252012175632813612600248093404646218982006194730611771648165313491151723789832607937470281235625962402569388828482602487267570330530919642763446116961927387883574133748865515259643128174131036647594409406169331087882525074183959121264364991652572990715226951031206894003653050382670093101767313779865905203092641089354790501305556596016896954486725752776582485593190438166587066577456568841315383900277696664584177417194334875859960473883895657415237216898868908192563446897477239775208748209490238950767949278626717282234325523234825165979345621947224836480517300938127914647955329697322503469920914954092131219905493047394173842673705631075779573560051757379382584748893732043151175650860730197375671045673966943002566202555688970017764261459031649051142660465611443337067938429019733100764535349297708707890781733182541563969863268751950936842080798488386277017660841147919859671533421152487566261223684415388632168992532208466186727362827284944473589040907359125480011242131645331857565061247564769767475980718124310420775083226962704223234143229650811538176064800529463510385324855256969703400493271365537125025658867213836407751473506451371111321366775989595853087278475856756866349238341483920806146950684645046680278344930734234775701629871207779707614048108722168343526765038662790879508586333634081000334905319938976115667463870457691895821528189139363886494377580062545289364155680942239373310919362604941773164210549216522109819113908815787241740991527961680151541971879487648078304890891084676851973937093997111852177145354049581135348659615972401096492606809859228651890470269134929945932108301761050296911124283404585604187144168638578788211250005762150462513974907961925617657062927507485619685471257088410274472763384681816416867995424128930722877826943293039798435343178046209209104300266694797299151050419994080642178730720570425378392704870293527445273247318646007019207454359347951649517647445291144675146405591201732997436343347368553781783968170967319829983424650237831231270208565085181566090015581875177670946039926438676413287536744612088834004864525089536261584643566606891426018397856864302001331882321817333835500684742181629825335800573573100351835219447929343446157214356074146601319146610354578218138434503917622047141567126616112504083752901689097655175148043779805190789047396499054468366695924461238636814363200669777512727023028064101354571204392109946157674867699191310590058438707916259263362186555950242046659195586509547301142765322436213163794286871111814537777251262494450928490874711533792187940152084196252492900579222577223705811810857833734364075790760802306210735747588873698583304699976096863019194705734129876351339110748311965191046350351126116615151435003996754308002297523848600433053792924868242795084229765609243670529022331742125826667121622496108546324143280811019148035806155041468673856216482868740545861810727660835008802289064183680164135529791497359371792356209177277818751853651246589488065051795554087726544035740606145732336239608766975240397200503246665122322970571155382050116671215268539660412307725289482702074394593671643509950884899862443045028702479649928211872134840222082446113276259639259539008862237895345800613655749996908649927549800009885774646725676244924740288723840778776058175253077742506874176792630425523192557747939295872747486122196463180966290896156163256933489140048292558406372803719192349886163316476163933516667072878453437652906944949943863095648955674017992267072435605123395335051710590091457204837505291878413113577181480987578300900385116846573023446147974811824633693391128673931788496438265596716348374695250691002524740564549264557235237608486169898466616420573904696819119915524092121336098895781791090107383370693672682109410075576011601848573857650996977381782881448605591605652875851464781474957813310085498002434746169095109206012666278610698682166682328898081201882251589858842922706326142101884290428214874257643810161917970959247719316182304085674490630224165139157729060543267570526773904435273925201517630331113108385636686917560912462670347307286313629574982404618926525953713304522211042764294536242208740524995837104101542199651289373667903873752368733167857465518250022420007573580278711581702587774819744866699990441705919129222637373529055713520487093536101443386593344479229319487280596492083718145051798095286960648926145470575892847025920663496921575339430668521561330212668759883372016050004788732475079331596541741900287588822910167774808056803601778506707200513119315557874333610218394866043822595712872276141090125393018516667762457224867022415396389620483646182851291007100192329500640258086722891846119239254025231232140657397127107439802345088102638931355582002217668018190611341248201367203863215224004657111307071376979196142257122071878440589213884046104418866216951764194695246536534283952616745471788749768242826488516783973788375453403821955833548195850845560072002335456271814417418152365224279905882087405251245482204314554240881776883682548931565282545918480334702208100524799292774466187311274908734924270611635393881327745237063230666474637589794069487277567751237781389709459926346396967732687392886277397070566441655022197390938592461749554010246624128000498020642994065290614606595382672757796227060693905608699893252366040612430159326783691719217554536267205475734508958038731266725871404772892533791825837480305961718445797893084115696607420245496248563748557503237180443876844843855830247805320437307322512999180021856371376537159354783890062241796842151711862502128228469395952938640239310080577647647238407799235270401826299379054747845818504517344089597620114414590366335021096475263753647577413153227794369638444530696853703031822224970320685516210130156593028004008623135551687779638868321516502933730093768984395456600004490743689681517782773494458640703700128964909084436320933929353662022897221179064259456956887135186210139830254036472663625489629116455996093272951876319593753942931020647401996682143946732366482336763211169006857997313461178436891916956267183749479016066768114024335674507792293399453973284952419996310542542896046962994164211124390512572864383609898895292968684779617633322439777095297124783759863479402417638032703196379213788787035911915457376810887074718335143232637750999784241445965510778088234702265959391093370140512680540630286596326860180667971270522115008311632528227630330086980824007893520161840570648322424058667106161948340717809602768520474271183409893024883452996677502178653055559552655076489838926766912997214751689101965103038042506851750184956837784600048286056401945446490648535970237392227717831035656349425224993109531600524782808578894956563167185720067546356315578420997811199347679387262238486555276176358973885758853476830909729512927957896097487069133261003079749472313319660122273896283206572216011014477742919809293558499958016150507828920734994940971118572171870636905027436828378396223256320045388078974393524342108518967022808715024247759927958011948929397948139335103019014357409844261856247304539694891332233814748677927601888903777949171152811658424328570223764776096098160809416576785549490164438118358002138496901050171962338273908832247436073417435070535937348816209303563869351701116634017340134562807146353342824439924698788207305372390947247491903572864675544910816047543249461959154913934120154703126759083962893533841651199501862611884061266175543400212546298957764895284323837002461190615507845749261791625469312659069205061161232311707810785237208792140358978728064711851324027629304716826311810838064448395139452504632618266060539024761087347994662733159012669815840228543913585275017523126314133256224403466767904851655100975737655597605422397397806196878439698590808049682859850471472144697019281690604207973131365327879684704216044839958803633837956122332739406726488062005851674989760194561674427292215936009321526094326130969650538597986938480613078958469256893991675111556029426695141578721280811569393022408081753997075820378681247286715472771775655504742517451221749083840551641845946506118316626091433360426709649432013354699407451934366027334429761013259812372019439196907655809963397752415297376341463257575687334795326001311841670588078906685846850477890181206934850930279330151199022462118714790733698129853767348756236474648530402314398885108279414941053199557631260020199468917593476921212049671290688093176066277965829409302343428188227293635963400394807460352078603416338901155893594784835936212882729957563453856591719116147116386751713552677222804207577800806082130447126729268596044633659380005605955552198922988399920748908075820712728142715966350054002907911580973439827071422561844750104242451073073483794388496708077413919890386648782637075680836667712696237601530163338615278702566799863782341898746383919509963620312328385078191275994394207146912122398574401386731983756276383536742477262304968781178262802315648948494095084562815647692767369282559240408721295104998682487115849396827614262532062648763138946731707773113465018430110576064001894977916974954584627235917886716012052744344252257727927340207383339160442074972808356265972186637505697606410300105226341011882803354519201984404870362750208674055736017757421268626781134575628001658006221437851378973012088541554941836642032787802884217429747146638141393031496091371358777358312306480550374781498963711917544574091705677102296040137624038993227834219091649355668247505786190358042205499157564901247410417118923397540371937044804981429941914449972962987618389988651435394817603486360741193818567132838562738868110539996138847562651749032825504728525309356393925442201037768718918529250503832320236131513475116485385304233656819636406020009676949463051847105351281922791335658081067212726096297886149931622607261299214483635229109479995671005562115395254246463341073576060518937090026308115111270059238208225513953877089086800513922664396026458137117560732023980655724460842494171936627642033387441235154431526534675527373747482208162310430584255049021457030233125867330284681177373547878715164127845401916499428057080253808198924168039752174544107306726478849083104547180681681201239375607504097480416410879088567814428282625863545945578986726540695432260672674769177108085444753570371132914408242645267117613886192251143259456983384958698885674249388333126237674536837877791755439619981780278600919373801734773893509232813182489787202690330226422995238461919759379190694674798048788701479592770008241264375116074973197596694070863490912574303841422865833967888635432323249536550423919375068015861175477050977334707859450383682924767807424340846883124025497202862504750953568975653824144599629691775598369290035519941188114236859614266852373136567081108202260858291087169509410934217759902633710170925290529021665592507389576272022609334534227233958685366179473469310878430314607724909003576337350252548682497200769898187234812288958293036623879150744664934746076861604062706555257015469998907136846823953609137373493668053027925643348087896501915667895930597619951401744344376225181065969734107057040476171106203160613242352432910204181173809931318507243363211974688033618466214990825759520080622426138963642907656759857549919029873829729036856986099413196503125131662448618893190336528523279279812793732646266247198604619310859426916458739295576116351285489114918254790116113243917108314442287542178303681865164474308702103535882990150726821577224867855746136313793776110792688401196880768081011863071093037524612858246949054001733955828237070120613735357140549900450722845522628886440417680701447374150167077920050451054910713779212769938171255892585023107433498465918555130608606215441555158947521213682641962593177452851821087767642878619287700260974383874498770052539776844129193953398637785982128276504800388256131434858410859476281587474464762436026288128775710891856193844434316019657478531442506305566531986180626756325756678715124716779670615592920751598439630051867262336653823503247826900001016267697471456393122173210659674107694545003874332881069941221147516681773108834201802561136920213508901664960626080855455891081012528089923920073736523319779748596217743532529151343188277987945760894531355077916603924173618771673043814805356120042871280231291972865409443003932930164065078635128021993773762878679246744518349788184698903260027471287678621982251241307544102974996143493900058673070095521873608130294884227488869499209303137782529172733026715791021388815537244013403294796567326321773785764196965840711468895059606891760951566026109808742438708349044268841574773804694821266498338550043215897644415819059885877134200360715144302215195489238228684881886282740999121662587783828917015057882091748089768619863081932455732696297032396593760386947547021799822549336914151280811671384790924155821692626764442263771826652667234694459121108826233202332555829776466086552699073337121950809949378456387938893798151215899956262755586534601306521703451164070293432387997467848301164492620487844244009288064433302416031869635382863270217883657883545542210059976365878535060930616571285801790942633255101679674818375492646888322915994453613999367720361049712604892887422981313581304499947094502766826521979009920517175005709468058309262502635161833327383178446816198008265751185713501848680870571760084107114922097250384453687246288336815216048581903823690425761532715568812466297532962026801698202672976969498251145756109320944167445605346213275900190671304796173106240579951174380305922879335063854357633742227840483479237072086195802317373289134238173654188601714356772300045982967511020356498890758965328477056039306526642900606391701625023709243516706151115127723832954575564643143782433075280928097058844568871723962693119099963842241045384803575300400934881101763307450153697170213400095480257689395927421521505580421753675976615765937877168190504861659447081691385531648492537005679187796076851091211093975720920193150875120259613148504172193088442046053126136105908028371297150683391351480453077643519278209265820154970294459590761221229283683843892136524167084209649642201890509523288747665848404882348356519855498242150592798402617957312130396883143723585098045924635891665588587407938836553666444054294127527165187757829723297587560017864265863763880825712029666576521945192193210628566134252453358620441138426199564175368815166370348524316848438885498165826714790973531246191483583011563798060074349172627348612182268144455939822980552339114384071812460665992714709933873776730854513636557353181860400560019565758635483942543151223453362703082737204576973380670239044541610865040130389452582446680467972675044054693895262305507381087350934312259561274433064906682015180217608815249045779203176200106385536609879298740069208087415905317551608695905914726158598404604910600649945570930701086864972036848326087220270994726998589833234892067052325982955001699094775373930656872148843040801396186773371484012663211441262386657575693372831726228155928573087876748715338029357024510999117429107669077582495429899645881265618854426011605913307853678720730997461626044014686642498497718100017182125315332232754395159026374624877588992925890170400261626249264085724028493887420802112061973397226064068511776110813275374277180638252205477733706490732116029110846112464690881488808912112945276144359931362012652437853668826927395195682049991470680315970377315047507759057414565219515778767533119968021822617448766902794076053918362366976922081079725916197037755802051121735688364844309922096845959504494121019925206514428934832880356339998749615388206307305830709275261480055454358705579698088123697514049011371365453113146998969219680963925652462464067250499975687943757108705883764017624591345068775819615819352297591891636579404645411098171766079055025143731114753655489923323610048394705157904002561567362700817500881364738631901336219193895869169271314588650299535800378284128554458137275068331927796116188110276468047768187835276479138738574843688941809455522000473511110762553926999170682178638622072269005407408700576105460159561979269463691008696621674132665133053466240779946068230351738672591022359928444785041231120073674725104493532028228288871944220808386408039344104342535951602273083806099132650216783868275181025878538102479510082076871341293976352854651029015099209774301929280679043068332527347554848659432384280032751033941758681028963850543378968583593532432470883495757265854392864174344935149777517581986678791218094935272112409053838022618866248447228369866457416832917228967807526103790357954432407093553416208482496825305358441927469489011015141661502376567317619904310866367933408118247656455201954108123845352614653196580109443820516208686486363227526047812445900915147193251330267249335814717761118604261512345690658593113568132214451424936010467035991449180507220917317391812931580248393231524959307655526857694690612001052984647949911558482891988762849341750476693706498469454114617870120743379697974815081664835029275806818045366939989445761139492333948363241967969082004161066645893312928408871126029301992928024102092645899921150793566201515851071111123053010254428106722709173733584008038133965804944470411121561423027888190265071146794111639445127130791384632999157469560567503147702795620744153743767819770324295926313937331247943840075794848997976468856830952961903447304897632178496012569049320558099558441826700750019537382200498487366160608396457754455448097194954181729929594585221878145684863381415929836814557109630746794644400220245082640548300543429191041191391383793426883864676934188175738317338809660374335070361540246917688752091435527059735312549482475754941256648521109019379821404869035112096188551373493656476794172776943372793484050452503101576779579519318350937110537875215194938383781830937685823224515166095115477584178190844609533272009241558272566775463389216400593997377572353583663894612017642334613936156783595522345178781932659667650360867322739131436337071465603134195318133427694586423536510695287066262871886815937516323387928749830220986384997549129419542482547084441061398607366036149014305897900064346137666117419256236459536078370261717772390952989591459789916671954826613503015061232661984923482162492033313997684521667795405403135057843390900535592357369299798915859101130161691299472141797899374716967883974315486303151411832283481768058537849851384405360668381745196981816515876376888761945781739310782151191006960307999619198835945863761616615279844227588891492806276319882352029876647370702812191834357358266941183100461904777531841288702653271745428410667174179050722366185268687209253536399433307943194841400601987103967490510831076331747731699561589154236394443811544246372364493183420421768292683919062981488894094889259957394540301058577095601598586082513265098877855769738809707376224224589415281739408732166054712512889668754485987921516083114444527091644006349350099761315242285484580953398970027194838842743553095013576474799962727704383762431197505959947344125379796688729305086560800646903678883853941319449750011247436637140605730475384428368330285710409725132870990902623225937542453386004754252260176044644271056103805172134285134212074429623628812548339577483194410114630406732621405695306763605455918552786859690288933828924610744951091638655212527514858954624870717019807358937671938045804158897084587686664930265817947427283882522144569036586807838533662525090868687447165802566680165088074541487936158069410830247304606279021878844716056590504271559698489098547120104237336256846537686470120082295433606471688577668683790018832746615808835685862523335259805953190356124034697614628914598120399972189709197697439662629035799238336251509986461753972724719351133948449693950858720582891903534188186880850342842810895658035207005474229302749376128117971602286644805453933756680169847646072122841890040834434750566348786015747628160918604662250318472955812912009405400620194236489362959534971209233950885896202456759598137091429166624929037122558047069556760090988351920782057670885271309321548851168628881071824034655439995092588552781668254857310594954262496196737703085440950520783532192429981120858655855982296454843823526984091320852598415275349075414073609429802006068976047799431598578742851890463058014231177074435002951063317087106214053278230793010690671307155546717100921121543166558275192773454550715340784334307514702869318050047540355416863566198878809000267651229984842065296045814559222232317032117247172422704827989083561287368483177986740287223723162405531825638587936223060548075229115916827843772418575222037030825735433776688366425517734202421183052049840330781038082402103843012820016091105263595343176015683717156534937694861505367629997197737368445639996145557640825457516418126504482943320770891386728698811084153447077318614445584013470758713305098915660772796573757206165192134335754760701219982672112724773311576968231435025615256399431120574864645723605313263177325143141843844376336791037317932497195051579666664949064413180999339318368570389988696752439815223500652881468349872634982951627266549559490517303372621687120390523072283590103865156715510849795492246029407087110177830752143733566935370187353771302646275653003287665039717072555652505976417443850711517215580182194741648304418209558656367438961317725345768912091383167459822846204907589216472840723843693187749528232914144795210336120188022280573773650047615321485980223282927779481151332604367061882033481705440329384911603221133074570845683417226677293455485615547037307585645428167812049212488230368624069913552884919351265802390919318997340194817514159312952772713258702331503218415847063198791334661865768238052899887301579515281741847638584500231767975320066021777247432345587555635168980230997386307609760694890046639599253848194195135734510277066893643044608649680586078780347733494263023814984814879053824472576592826760049213595092127879354737935517989482560907414572855488625595917516361405851358460499587144639223520800360889483664971637999195386926824783901776222693876946976586001251409167950804236057863161175804758082857440567851852548675558104277078754397584053403574552575842187063866919670861414971869414854091249018353237773014010919180375712430263919102560434952356057987205573887694021772759184933514389516804317521259568410109471179389956643443480281682609953539455623219488578968073615720040881796797810444946449259115180817543897159992411006623430958424819593241692372412307506228476265056789909476174427082704108855164855157859519430234806036874575058381239735995768798634082892799602203110502383868803412824052465491227948693373708711262670428407791487406019205683615155487922805512253242859242894882288774089826984715011482635401192535953831968894179456367266303930965875733805839416208155131056798767422995286191789135447411404198167552651243571363491294488383420124240638137912866444543562353573085516398381550776966884077908928045890659440359138255395115050353152911796209023411020648786639626168653155236059045713138128817237095758724716712652352568664116145734634975987918024510967058089784481409601141731352184712167277298115552137218906440543742283324500505310121274896809143320665737269700354158805029946971453272112558306142141144491394432501259951913734833724798010474933211742700722008775515687108961272025341586379987664406639703620107294406549800869784977625690745344014657186810781675254978045391569932149697250420866814728059479430371279211783103228812158430910538562251227325628199352374359977900651272628823970762546533569069426847836589189985729438839774298019062348240292852643189107476045691484220889057091950916312180724695661663042645140415870423148853899628583145522705680341816873444926908762524584416240876372185725663536120886551213672983885324306033304479546657786703425986985175690677679648595352396549357502372843783984770057555101593478627078222352527233672823405286532526747587747422614802302214620778174536449961089187020418506464424679899071756668353326498273396395698390028316450436982817266975456985066494855397166905751506130162598715661216404973857595181065432307893029981048905822354853447049054518384313119923111463338335464577076574157765101014478725116020942988889040252273157926816666050725402278167318645557982652189752705300767345581672455253555694975529722434693678120009543430500155244584855367055883354012459345614746436725170673525041356329853697234477994983834094527633072844615169124410067849832038668518740153810047492283772395127343111032851445448619211703463545922124535912425135991009945185634172937013707500734940103786438048328614934539009840824439143582224106594586489854109525904029758868841103321920324013561405218524834712473963670699209737006181032795587793275298614871450114320286101155961318053669378075406988762235714754039249883714560038862504989121226465095739184418465846422476209949685514956901842959343324179098244466398793712648866352646040365453139438448711222370826342651880949158725827645233234152360774416914223517595496100811793642819112051205775679609654610214964800977970861479578039253547664945918750587354952223665902914742299215993196003563782900872982729253828670408984180482755498860221459656044018608481356572204825739165171583830552851760005220791898115872641427906856438587408882646933931810847092782692855698738328053025890194359266835558857131435183390320011421080466490112236435260517333175575865901783946882290260556294134282400721067861474835184764467676038937893182393332036812877370025047423508845949895630027174076543286059179124248827839115932911446861080668339607402984668348720958345987544843620630098990105852706829399129628942049868263535810920626614565119626316625190383032670422734033966020096201558163574528484149020206021179000164554991698690187343835184787645851703542468845955662450618679668318356771833448382191056639813534937599588433867044171221632294909647566042656003259239659650363324916221524721388102546905540487072767142701527268190152141510355187011520522703877816787809024396302114989666117512073909068412197021616948341853528494784402585360847292634619251499736169754609248917820504752869692283462817310600792026383160063016436446452847815057506030726291120231490944980369972934139706627150802802540417079157484616418700326398873186838363633267368082633166821202726451229463296923091237960214546227255162750200722127193196683460917366595158072641909776172762617131102934107617636299963799844806326433542587948314126902481756007764771400778646055740920863349901301260996964740119532674240518555454982428841411255037003675324560142779918176384812901962307834769538505330471647201867545919222474718515559195489788160180377716518076700878600262711370982187094043715412055228623623736152622929578496440502061506978374496716904236809784890623237170230824628666377540501048861983283740257661189322333979663406005284631053543937030223742055915311394056851837454278560625047462278685003918471126925644178734861124334606176065511389666196195176925097504575623203802691999769443769426998931244723135136637366775457114407960128366414914175424508475051042158853413843886533617230282024436744732702654404455658036714205496816672546074226496670563788584140725706860467273049515721718861749127385140699601609097957400468764871787064755719947090512941624546440663245088613974883395539173284304618731405783139632363823476098160714088101259682744472007925893201764788270266405878173754084417863472382941721911069286240222399928906457939065932550771135267105786063359440377585954890850775141518461594891652606907923737218276720600234731702682749579266153911207547419270551153735740701870187909982180905664853861092722297730275144243937419802318550398254209780925144770607959263877387556019236966293850434465740776670344509318583882862808397997536034929509081951412008924340478514564358704998383449975240951696386467328817804064885924500588043706347364892595301755784502620523535878440646631316078418720368023603246123985243489701147435809514618009349703890021425341777614845164938221405267530258391645237833750721369110395364350158865497233225534572240732444474101967738579010316110354602887707686200178703798482411786544141896584185117639322201046374267773111758015766261831586753461290441777726924093821746780344807708584883493933197747104917831007362220580858101762031045276186268637756132455216176385584254379970690380894081252765271606252091782513795250330814855271297904620958353831401767217137265403443408481547317041368511226777998907592695165224864407598107604556282764316737211013021730332707535523456453513689787807905033948787811608261701008547476867169804083558538647591606052668641403430301184222659008946067385550716935942680523412561679766369792973585017563264190623940539511504232219955955271910285393331499335094958246687707358244502645208669583029162666350310832498229872614679536926353637260548396424867918529035246846835499851968130056989628919180648909343330797437065759571587659887480509666796346852131884593271798664181404136774652743114945702168743033032938056337012916702017713429062454720378619524904047522865608914436284749832498558746835927734348234554155111673850115392739163548644289665985638355670778895212261378656269237526111048804889007283013942138940534433823507292444188131421499614827698120248944821588199905479160492653633057888378561593101646436205070337716542597856785720331795398583649775979450510878542639958759140223833431427125407620458534359947749556688225451468365600644898149397275235345325392371524392033726213321757270390663715160549721426962899825934360991978770753570373975243430361759555817074593039446125591948715257712566569730765817476817079842473621674127525536908973864355593760043298978751570042185640852470211015662348220052952873857176513602245019608342746353618241648611407523873874506615685766548699522818703430347661304623671929019367210703119600002492194815843726453595352880905450152019621425849464730148183392824893643619750592402851807708033106875588354034537065922067099680105734909911247318096796760092681396628366750658641138153696982089342120482488191182471203163697816737489108118630433979775532095671972945160901447825719522177752719313074058578630622325032281906564096394979176413518573938983872405559763548206939961626947180049553270573310872576194366556784141639427222386533085010843461124155657503505994498332773018612903212620596153611203843525957187041933851574206624931865506091766977846731731040768569491040998898233206780330243596071058001466892785214689175415745061233847188685331187673332371768538590002926726114745342762005540253541002689894025653795101965270393358924169601327206268739914097836416893037610103215638809382646357764526135108818829959041507767646469099890186761563053903374884884682672269603910913210175774105334751308396776555350044236283880361233203342071578002018431733595920275529503417966356880785657345333253526583787424590612016416559504388836556275760487902087061618440626915758439673677484910529510070935332907564558806703586367596744609329931238239275568319458427107693041889214369239187675687206897696807566067429892921115181655072869729611043251924866023136762056973501470230656684774402520729645573546685568990741835615392403077211845418366194514564056827509209861824270716648144765606985379683215242275699453930784676092811895313433982885184292444431345477129108170648812768583537398717746717694802136215999560172292333542446133781989574232159010740240579647974012325786430252986344176295670692307824332361180542922812910303530316488139728189398433531456911610003599293542130836379813945940097450883387826088953677165627045480912587615169950300426262240334754756986095448339978218531247950984713132102660688729692240634139798684513051301571332453651910615418817064976569786514416773614993002312801346974697987217142903226827209762411685688756137574261314058792880250664679949812209015510276953989130666479905094261421558565457130927343321578001620511844189910751231457213935129663070796168149268772784036291372236745397796769001713969686868594878803783921747683730546113144715316331496147267900045437126115499474788894131995301764490783632411420768036853923458565604881137439284410482435177615350157111649315956337536344093505986648513028414267725733912491424225716665142499373951681216274965262236678523064447219235107373037869870574831851597998365355017777653852481981710725958817766960659338026811395219766925610779866658514447150686574772791675781714531399773124785291484368609607943838045158801294971446135856883551821339853653260641269654718990168058656082052827170367632267751200523370007055236710663924157614779492286325490132207058679481573559983179109237511387228873201839642198577114959581602686697590994977082966592479944094167575996313033418029280370398521312464821398166423715198655193276232984839791195190744783812686121139116356742420619816706015982510523028986115883138822781451483231292455661305150158985362801818706584176255358761454162775950189174925797742549032877111228800669280879110879477596708004450816897275265935938738654854553782312272218549277801487215239871741680186449670206582360070389861138970535944512535032834441074549749216666123083991795554216645303304996805479184393255036943060351011453396394257607224595229149536599363015397817816512014726735823258019982051437857467629748948581428701791073473990093790903786174002780280266240308398008631126409461286531119791000231533400906804802556940190777068661152621964288849267417376101563354142312486546357904191651159624691018933912613075611922658577175184464444824862422801700516172234838605606564367144053171460538063214559964959866255053814978088115430320743185849094579986095479857720728430020843635148229826620648356297039197680779246848816959075897000828785867813996259748055914120695248652226963295740421554713589977978397563281471866351295073742818983951767699118641180122485874142141176299099329753652265592874813207477248343690811391678459203505804990894198480893613295812804533245706156826825979338173095530481896520589124823216900999451822757144309740412392604313142730417195331886534404520488882070527532564117207201676922852628566892997552537827894294211654923515421119804527743086352963785094078901893800235528036419229467432883201632367076765014315257029154892432809492024817708219542078815448383980080509140398438360024171383140711884402074988892816256952655296599082647612702196312747250539886292386897266085549130553648637154096450512176063781204584477475442107586474699602458775329681371537637976124075924196350297886002422032267635977332145915721036354564408701967368185104572017300502393672504994789197637678694193327243952580415577446175971751399089881046021983957481576501853169570595542435750190630836848790628337718011957066096601447086694040009046090905856390935936759938554725824160392598519670549368632638336857082083557505479832314533964659771005000194895549264823401675252896590456003853132288636845104738476747651483970397516857886985258268885110217937424882218576457795543783766889634607235576667426946494937416992509707676783434828254827023330352936995011163861574536878688425302534624659124793803513158892902260570846137908133152369271833187533180950832744974013177447308994853699765712178211566572495443108540276458258948306284174433225043089086225650287096076066335724959579974861541227631539152596661837313616005504275274055196817089133655061866385607101921959379150622458411257048288301958283858273653420596155022213534775813787682764886801747505594780934995245641839770264435006311952771594337325963383569316514338131527638008579047994602810673434326893039501824803927906135587181928078427903176421864640128769817125785186477423601356377845428131146787758259841512931139692169087209580427080244873359094906040749674350509048052150495923361587811837136609746167567473665544393564090750256131602972287263580481999576723619319489780940022049271466117450819984016640906214822439536601081866764043250761434504131928968976255426582364890905167169468346660862144181014653907435840713672086431542557441703541354490996827535573336757376106784877838416451487968689206240217239525759667866125077737645989036392517001695670569480306394293220396065753264276428006617732694423114752199463652747178402853433116152959412371892133425973130318964777501955551293893635672688158207798848812228000959074273903670833591102010397220202953291962615377565503357654960983660683013978560551714833350251948801724701606287542901260638082722681440385175579064222652282115598210954560876596532674738754806073216825807112849277669764856229355247373858709374411796192908038719074926645284796779567726612703459034978411067851339363154425492017530075791435044745300039742373084377921510020574416501802473503180424615843510018435472030978547111851145913502503499239615026853650044363049714864780164111193891906502322835651435042428087163274537466432215097495969120035419826360503763801048837462202353729008737506383218590394513337823483679138649705577351158480906802758562277759376261071837379326168675914966656718637470023687453159462199958292239248353321975045578573603297473789402372218396937055380958076461041455224272911484001531100683386408765197661300156590278483115072259353703765650178276206056325541172624112082894257067770689731815767791783612303960108847730584384565659411654333869906387153521726873404660048649404736930888158689944634797791912292589651604646922501584226777798315165807998848176872653198362511793633084311566150020215479095796179198760744495772613974797524747291511285331820854130451383376048544396544623887574047210799972243086853426843491373426779156060791205421938980144717503925717959858157031931165848142480655827293781205847327509418581519971350611736711617624703381086825289597736654915542282165056806876006693592240483110559572268476286972143725182690201140075597499300832159003388818905854913859430940733398183030777913197442383966863274782003464213137249545163126370723543154231999500976946998912691506902119623163261362879943507306908579293302893540026888529023286251986423389750457024862051335786409674180456647023282709421393688162184571329626386247364126978832712767829387943583653336618245137361960867395729946706801898014583676753189267101951674600033173010813386985983432473189915523704963288026184371521349646858635608742929507336667742859750871219362646903312574257939618607349584816802970981836057579133454291221331229030565178939609572527096840491364599807094723804685219995592911638727786210828363951169158597351787734417246900191955648744039957259343982249166681480479139252919006097474722188973203236298099638497633350006813164836497385048995916367135614531298380324760340056462881178257422179095266592427103944596905642645396665788043811774115618939093889913136008325321123450559185431133257113178600772840501448308313050444301193247469863718295198006816672631106546839056301189433510559864952792928582749458241112033310455636846866683515755284589301690971339694626510959690353291655200445338723775155765849495950159312853778575484708998294936960156378134686210899488807004437208273956818100306538030614996328440759190344071419202098454502593390953448970821754640402171506020534413209969408620647637353396525690924346513206752493847336743289031771927494491860991177977225467046980702914583589028978988125433393815744314675593889183957442121933314060984493000378092477327814125876559631099482575548819811942363206339154181112827814866705142101454045645409225038544440003717735475066503317264039686744053669833709467636091145774075885447860890167576856041332409658106585246899823296414727093488256537814277508171290146291075976062590435768093679448722066289055421446318036130976918619197181987344784296029815393734870371847158825942380038580322167986398185720878176768967948384572558636735355604359199161336245348670465635377469467023860980519352845230692419056998447527980037848320231895532371687549535602686824524415466202073936823470340276343618258321335812759992910693567315937777412431626562938860377458745842564418267139659328511481889851955375797548386217050844843696129379567076534914559012246456496395119015412508900896005121867657051784260303905695861511782775890001611017043710163904916005682676583837553054266857483488971670167328059982985057131758379411102918964382153181089592997472674798766406144060159874174834953567513809791798797784741549178006628209316550499052436060607902154226509909675817338961015516086018809747096002312439111364490476945043650118279538574628286451836398961177540624767355652550337374868668208444646105284974398047637904749410117756020281510809156403565811628189560628043328293386705606885217267570184621556882839862016956098118128300259887417490082384373631553345862819489700293357814677758562496997948050482317679477641484409886480677237081302083058572339205977487649487599394594587739825312113258048521548549004754036452346178861972781600026880940356509301542545107510346547950242202423960239232248135131757090440703308550714235093208006077432122498504914541016562922056260195172995356226291192113327184686110929105597700926857180982945166321964688310040684831732016599001474177742946764088445209882876370324015712286685051620391901267847941116098224740627463688422572161438181021158582427666808962682999295987952735504656928189291661626515556671304384849748583974724220341281953684193304211674091496817093416312208387907792401165683076828208996079990607368767550511133423189566657979665774159647587934585401984693182934627778008378589687027128289207123738058275853673511280726730214678376410569215709091641058341580807456421906676727079210159795674514840151204467402746686757218624834845690748411629991130467593208086901903779135961403077255980126450397994902104531125381715068791978508422496264327051246088182890743226640721146271031961608310279582152233030003391866656514626401532246802112263770345368339636354524628411148248544310179907768030966867290071911091805186566206462943469018307171146404974783912213743456097277670480260382431816038203499459902888122758075608377716352192522418983537333033682294355642106802751851692226394418630114505948027022028126802206670376750266131512409556537519058261845950750558589318193968457998137424343902116184784460728108331079097773185363006396223855873662605576212329831431979167841884213931363127116141928636430764289026764743380644434320850225412781444046142223371059400267750472534177604586382731262699527975182254592926712543532387945879368566545731253479001719205029987883200155309059955270597369537176043824777158058708119662495336228204536085436082761792743564206203926082858677001902292435216620196667786288850943557902051468187937941366636594829853764814446598501099840269617158425848151216156995140807357002083888747294604865056733023628515790339960108491914600929982719929375453737310978643013181584135073307292949904479083219613957629605137132724587296862944706678593949648522388218351567103881698145476472128311009767571976340945494142155780301685658113636543361342728960608018669792067903911400046922481541097119265289736201372482059748724696746895420047527246460210441828050463023180775369872852073699473414126817288658582470466791789891099638377652126691579191279262554853533224829822471706935249594255358688931122322180148133690753662896047743775658069166818577612626906579752322301355779931519519881023056867663739681917655346945230385106938406862285392393999991760656857612465891780416999919379256797017950219138289417852427073441746768704566385026461751891281226377304841269872847807275197746251163022873199982684933925674753670485979602124913760763507773509106224183082126394681933445079966413565082970321875173484661726415741946899809754156828684810577766039634127225904213104881165826012329260357432145969589796693503024159224261020128316700538674577930860763208020414848961844817110515995940834486001853026773105859517364543855229667137619108251572135942500251751739800126124007414284712702071355104381428150347166032938325427460461063050758987629713772627425038468515542805967868227804818683612851313245601497895011727329531669993951332931286236922835497740746093030064865166371871200826495599061276158835023212239997984845212778845395667622034753034222477456962775318648831781652688471257893940817900011621516732392277061211672385112997164102270089426133054499274807997660757084176684038144110280412073699259901577044268782998479705287804806107847525830892220733143158161336494197109227361429150235198465070092572375269692765784383581462424548658486100334353371777689926877999569580276780653142568140917186868652732683663418163103334128216276016742818881047253193398802589127872247158287814518946408876639201118578835519204862208725290059374943441028254068217753956997940712440043650610777316990016274612085192270721898538002480340913057737308142933507057475349996517342483576873967580972002599680259691487135073335054822906924163823786694235420535158341764500152961480541746556871869943679860688740840294629389768926516304873724139344386717025732898614984556617943136733953004272193711939359487317966461552205581635103224250444793550817999095355486669403092539342609997894707962407075133657757312217686649695191612966988173530872680529909239635642029218901257879591699189404796491665542419741134436304492581443796363154888928103553132222571959721706605919687888678603434872823158037385562573764695007847223616158656976000753384977712997175358721657468489537098903174118500258581954470767809540911719492645623283168581478105500348157664921719317106295788701209958086444394656245390639348673048183918187439484697315647030186801376714850952697755291056410027371017495896018369071615829970390386364934553685952137593921167631471317445226863882060275035571525264230630565098944384834632199915669498781075290987964246873186507900567491261056795100552649616506800814716222953824097334446919266313654392516512963442564901807476830717256866849096886215901958218157339963121818546649299513015722655252622315486777574330814602663455440311268543400113182500612135933796331392989976669918182434834438969055340394081452774181617434727820815500557040281688951280251134027971751400612059628286272808278061327180740713181339868048423309901918435295428443043341272654771774918207111489633024863839593664242538599168964848762343073059531459440073718872613250140403785107801838834236177264587433969739104644433492690292761534051045859935660456845993516152345922333643106676485933808843382077370658229781783231497442465135112810601369455562285687359460109604315160722730537754300659957601839164552444859164319809424909530877537194472505109052344274661179006482509070878333782913150121646013085509683606316251286214857294849201083159125169789847392334265678003055080904735238022418696862349276794333390779418157894924095865139020934561474305951468839091817992659604026140548984023840081519213952591048198298765615804815289304242578492572232001748564596046961050416985299937648767762319110739720888108833071308956748507379919340221315861562264109831158670995778302526051597983590798987723251212492117917314224603965111843409898631994524696751108305602477216241525723043035149867637955776816316211097154442816995891660944133871170083350047157422994433562136421358092095952319277795452064843450308992775916483136343367926440723319118460533555521924691408496745165763141000126799573066644043610156682017155354808534661485376627128483589434739375931576900702013718895414688350097627727666001169921062223071760798043077764315668921885833120818669582455423030938891448337285649108104187292378022835204940506209490792590155574812923252398193889971779178987085212773194573472766558312826595923048223945676838982540737406286982345723050987136250049330978610546109222490330098126278645122027554426554039489310936034008290141245978771704965293978659344249106522111644588943499432696573721436786594253127596526191560800960073882433908240833329614833696217273511491951481803948415101871997455903316647255701780283048799647279801940608885916038544923166328555045985423813226471747827842051595883775362159443870960299284607002053136207031698351287548655407208290742527932089820023967581704448454271708248314739997411800372382814084247200699478338756453787937685042070832057938495066157024772399325342343470071416993563183573481364756430656428850997806125931565129347852504328509696915264919803610408559131138962395317963973771059261435109113150275708618093257900872079960717939709200795827487567942087719628777348296985059780137837061816691976616670383640687377916375081843728367137068283359249334153746656372192321791818945553851250461906838686387283380761447677607195323328373030277242391699721935787418672436947921759597510087605069827867180664211183441383760083928835899234205682141786488169120449576406431982390633361582704117588458900481925958692288464667094650484034620331741255270828145299912073086305754363074234025174405292776825321024816851319589865740491397920333117428962488363018900521494859042318562124747701213990361562041895031425925953731480620473333199235343525613326013744849933439793000306453138701037789505322761121984453223664410020714048530591057253729541602057431465617672516604621428476510063179553308660100805689670442294381650218039267077198027950459489392599120835305113412948022909053881762521497981402144938710103550928693260043247714271715985983810203035848638540179719284818423530113017489811783763055521136736168501130818871833514416552251473387829712075796070354155181205014123724705104539670354744717991985046907218446949188260482835273997798077525286138372172382582068852797920806353524953011336206486041691113064743296782027741373741955860864903988499606515956329708815122955311010857638469181224623906172816321983902266528069852143188236656864396249500199992725075998338214500476233249486623579774822555847827494692072689362382396471637324760700016397355141739497187434263924537178775758951752713247634173980136396798445760831836451396491332858364636347089030051835965830555072146064693603156425094034650496317345805930350387001013471038123459652950541319160791947107430630328793094175013848834842056876075935018293567232691599410078421112580857561950841577974468896996162695389740176330012198324575235916954822168863675519631799997475106611669285721772263713163677444734807997515289736710167107623203971483371051824152871209278415529069807307185162704894555726702479571701074728135652807015332546864429151964072341220611925480426024715870789630691070534432223311618803885344723627539040633151227828703776613434501087528865921965857009353307589462909763581239110565706292441161613952348057520172940804022870490417671945622638243314389122058362848796882894640438320918973238132697709041630659250884851040601366285691238075246338059940980175374563506373859241493459883102034646684265958693979641200201404422330920471498100546329378807853054759937064306829943699941485781033207109528981766951963594334671479021361416841029671270305970370399855422699031673196292618447147696615025669138462949207947525900731003852581066577561206298059372205955741301996909747305191951718504306480111621485580203223348169461852603553487853858629626715112252310163656719197605711225651416138313835956690898182773389442943669762290078840178850145521661749119714195241520506901967087668331929809375699289693050247839522954604285769197707150535061235351751334929883060635949626521224789667645474972460731151496872728602037732287154193590013175428987201574489287913190592269969130123105926401148697007288312600388273049931678393880310025169251841659644734768975786859899495440570425894548260709972720429216499141655289254865003895248384082384068380395698733855973910805840621434224311682548362844879988262668634235326834814759510257010923108850194897761372000558071761804305593901274934949887276960981009833688698934452210544018028021529015648742246013462927085620486551186766123001446899140273019031652204051449417744464710833880054594557854988814030706005376790369590280380679172001739519944632783653507119637117607352441118037067404462227060191734761508818291911649761770985344533800583790489956481561483190005466735491395776265626638129578692991893400905266189615569170552445465274499313211579116479517659037873753561447643442159256752026250858573768008999528732737864423756008609487067553277539221484389639038238979877962301422717671031819114396598178929232937023950163685834894087474173204098233134297115224273539739065514337986532759558213305225738306143815963501989464821522579598915947961505683081459576161851827244541512737648699793221428494672441347765285343656330538089743473670903254716178546570173297548973835398172130168063772919065066018450119445193741433654484920572545035373826160702884690226143334841507657066034190251062263021772836699142168627068841277346701982943762609982680940960659176277935064144864267429659566958796831991443236969715344330666822366566314421418181570708032328942663001556864673004228901078958251132568266302103833281212106039072589455243888326477657568986273735863626631589752957826542388286802369253076872078364800224712244758716524427612588867655930392939536291525211157454972322971117755725502405835797298325634767271278148688668080156705975338255760693945950096768214014608427595234945372153931315418407772985098194184694397090277834297856850228301627892135885231100482699039327321465746153661800949213176286908770609467078646440340367933267506168034383593223785072934293246993497497622325414791703546619532713827702444438335768109923575012558977389090079378011033447131434620086746539315025037963681495576613943957138082943188667605778660180717747041090770800983840716479446339454516113363074244618584120524844502370677706494616185017655241550819113022199780399062089806346152746549830179882831581037717658352472435369101912292705035528201031593698518786862740813787021706176849536945621241522465703034043143576462986727975240764384280371121623989778128073407989967277011521913694028000437244804094169125446071625865850134658590483201390860172435963617374440767690941773923718334782495134762726068148145177287997887090348753766697553211781809154738782792330436956445877632870533551464971549345735255637078237497488133460010677018783040151069696830475174617547344559179171570798695483171846225185408082510473688949917085281139176055710672455315586295236337616475470007960563875383340506632270445151906238229679715023892647747009624706333586222148311000456206356263849731277338894482839319248306567698800859716640876090758495485936686185613733775496618809715852930006880415837861971971524822180225285823772373477526574311333096841245414422813234420641212731348807335385114413895245005150845936071378619494591179558245300966938734962856319762410859029747326236570510250501506804728794677290991905661996775167480667910993295034868410251576595302620412103775062582555771945931886974699917399154419822708514047455924154939500650534872900629414497036638590192547718293421854953153061847544173276693671486214468083880229721087677100512370732474145701391740101292249499594258829165723240229507227312203264787340869200555133066417173626350470939644675479244425948306238313668803014140095764331176318917621265877122783467256164182943966824735410783976446161154794462605765488745856772084577303138864727843524051461261450502552112324079699179400383223381344893802432687001027445398705111561629903942519105126802876675820847363721318433206174572131065012410215826060805899882340939267312404206421750357893428119284882980096291367922348879647883435189253546838663472199673063571009461519028099468655160818488907733273997753722009677891948060565270127259280261652740288895103798122575514990920989683077220370882775475620422760524072859199256121916925120906136622702049572116722870918420522057901350096602380062141175907348101855889239818596405723796517054091399544410907400211138715379444752975193998061020702580282986445758243192219463476917185888909462909998219800521153727972041510409980583745476924194294545116178096622294405122679028612781711423921658940653410180686035793755162311393230145664021501330581350907665820985424837006998515220616943536430898608139672851440072591091375525174733247853236419829647897159703904444675160257905930807806961979610404712203852712960171294802896415239870890759803234964394511337140471247230408633416930132977096041039023312614589348000467749253512191110758029493844227910643354168569456807336747973861850523618034320845377601546925414746312703105527628187036032698141627383761700156250167177696271071920239772952688270098341226921611453422938618716425161520167853608298278179275193662435003944690506774461030451953253358916083512884201543976388158220650833843005031732274607045813071319822887394612923045183001303440425674695020947816435842387982634454922213414884391195538255728435225003859686514390567435089529820749015056226665739460713558584631053303172585874114278560117220277084830191037903224417837177118675668906902383100362409592247966963542305103622655873944652673498522948566095429955368382500159187282794877394253387237933366630467779108714673268875668271138952877857036100784272939092497623737712907886156521393260936052582377156954867874027410665485625337414534247167857259079507443402602162171715132323593991227695832502972257419873450001912466661440084219722546821939496464563483821155523512901672671926383923662173883427785736419486669203570607437103833566551213040616280570513254982505376689508363416621774120120712402870342940008694537603426599064959233154072035842586719852725382513870982447624133367842406584082841569578070696014220559787468962701710799478366089177417898958000321527913495083072662859595748841543501327465392989194013576391732717863603931449395244947866891102185765737647964811304453139114662838146969179560056742561733387855296394891324104644871055249018084563559692276428621836546713944174115127597943930103822434585992232944150911480270548396464435614091462437574947093238936912540103609321986938148142910990097114035061465015043390130349994189034798672238277006893752196984075192552177770732823143278302790029887960333367108439580487142117155827366653459934328266093310047489184921891768417747006346977114549878277826232812768859594257282042259432206928008295710335332088752324854779896952401114277615435819713293357102192827931844560532553600212997970041065122359880686421270920420533566806220737017516049131356233149386419297189188537639064242232497808820159433325648962418354400918051372835765391550609609915177159803127440061897792181422369479843671080516859819706554714572859554989705259774785315450421002260032064767765974169961421766678497388912745906970994217658279975798112197410668232316266632403308312731419283322538872771605878874823258995225711768559460469887565199133690771362040935964324185326482669795923797099699229443811320976482760733403881953510574823082020719122114261570441668858456815858544539191046078664918422604172911384480930454345604218397416272188758608835262991622932899331973292700222628433674018425385435045018032296656126431659497080641262131168722794516100846521936033099274243777525250227793880101598313462435533131716701348547835677400140014881595151019606714905662374074880815527181915691028147450732144945576458422129608185460161863805559995666017845418642690207022624203452236097687235089521228155618492327084274077912669805120803215170673665063573879472580630911597180273249385925932640838419779226524936618610393706244712005100208461004495344665914238995882074977597246923553053832268817785231171988281316348777293918193090706913968868999094311976035768989826853768314173557390632629170695265335437235168312543458813180747030027802897157356783145782947684296853289375635393336550027228227872493257344719200527704480448959261239686678003023731243588127205724299930803421361476014795179764472662699618497616160014428026317094516824198051561505935086504853401377882370143138346710458665684289559376987808687521456515038478566354059937984253040976744834419877847961842445555074552640301423020629456468599031822172254318478300081048808365905902563913451225795109557759110094578435758152886696905260691935005002947224771869799656827061631686331909859336768642077122908943410888801061883578407420584296753333239493516920804726720191864693563071851881758738466851911741058464276306009225142681754653197865252905492371495933779351002364173734303998349445569133290642123482727445658284340228746966842355243670890622176055692449097059982058497163035315233829654942822411954334009705593520029742981645010993718793095024276432217444165005319955586744374391992334354390570147105198702939302336909682289964366427034634675196184472278764412499887390882870923825191820517109307842900373950714120972072599060702223091041683971287566434488878315974368101800836443458809403878147301279460934401638876135440129625083614427467883989466171129337923302805854421405772419990803944752346192714727309959825155385687565389808384884401385084134852915535143510042487764355569087655078957198407457211744825874867411774438849181509062711045142887795334318083811258135901250854007070273503083266389702357348477650841732626535617575563163442782228557001241733922872050554725197221396324624727396520953868560822695901733250802261079118185567578112423848486833545971021441121530762368423109440121108441798034863598909257687318963097854756742698388650108251933878570718667592185661006140278516988461992161231954378630405720555348444110590736011537243962675405376080549430232147349561082753676467347156926834610679664536494607154623328160578366783460101958312539446225859920721123727148271695605440307052836333672480464863327816272829528392398251653082242806341893134243944001193485274014167951458875012868711962015088122282709145360258992289302090983429312686739168525317554193766402513030398288748030791054486008154450367449345079917000197737651405990700534815016239492563237122614877451669926869767765697185068343605636420452367023610985139662862881083826212138214906234804682826552707685891067908078970902013249907415795898266523789254341220195288480056176243136584760707196312126716039457510955653954642372808039411588360552912711070310477376713304986773614924295038822891209274925871685003298851370926540151646888759744620218288079295857367158793465385070609406866830287493616724378262727612930120909846339451974435271342222231750017834739644545269614153044873942833241713120055884018870318989391854716143827412974428039231000601324665929064855233462676119830305488242965838712082366459580026174589017243030390987618711659811903505814455564848065154308139199100444159197247232934776689942722194690492762714081954980308756621472605286778615055907379786505804934427440015941910874459762585361995690050478248362161339860335423478614689921794049851753212893469849169824352011601140782323831829693510779812100962171409725070662170427963184342187367164917780973092488820262536981639078151337385485290864399858216934892567584348328629327906512615324957875860869179513155896775719347920044770111629720448431196055124406070326275261552301370315389589602924946630894546220577279446246294528716059011151525526215023946336721319057224005397466262583403583874428221354786581826881878962753029994342683409497996119078051498303685449624390978012362026529069193701391953980888017529183042862619309445680463604471876954914318175793557431629971783712725979435533044015468264872406926782895563076837671001692830788260544441614629252947539558628889126934947507318234253281679435306038346152307378190359013410643511497652101487890791442656081970395165779061661254075353630282455984125111239438228802054922867996369007436636399577297040268342936154544843934021816977031580323830519285503851379842434648369560762562571362945499857560295048551205425821052980322065339878261747676410424210730174426659561073778831594070907689149994004615100269673132733578650571321433814559560481271942517801098373681952208243241927153687631455047653563263268380364748810561062115826351940771499380191308441995305261289279942249445747297138185594069920259918602373853782602007941516313782155316384710500675509116566207064838353358622502490526060158714732301516528509502767214081910280213958856943645385122566266804643655383381094220524082841350671955291188595743631943984393158981630682263595361173335894573102250106993205281977681333661700444061006797654105717845608647109242197158034554515161254536001702896728672026242495800180016562907312716562625060725543519444177784476293417115687722777226604504612964500239511404661359959123219416256640206284627652032082566769064776627143533641145276559317600244425877903023904102259203544218801057167846532816273308441117802793506052809530674635384093807409175170583919304804914038340133665877711403450669321104160252331573941486603831336662919088044676313675229130273526893170092821919821221532496901556227277763377383149307850356114996640653077006851224482886819988502779217502056841601507172503937969189761963453099546317293601488190617147856991518941764346832491701144198650322932414647971376299036157414925590672414498173395159714918532264105262233527956308155797230627974009555759306162237591686127690835327133479271125166562577748113597630543771725408861214396583093961026752937260677297138860158131226424326447842161487638316856483932877989127046842847080462391935905685764073657680748663958144559567938418562330586266778620251915822445148963165266754671469414925943705428026330192943130267465975609341383301222170405813354600226720083818521728901258823459456687952525194827023301382545596998615130924365151421295249633316397738241944389906969310120402616349598476971802183343145406777018808707896728905134973186836815955911872827090744492420362877036028920178862259472382200347906879684627910756784723248685661782537029053388712218691229054386352434827987177678051589493222647111256753366165503773503762255682422307512044464314036606316890674477272390435332908053824455598458987153760243778990722852212950288288431504325757124723687918809756903570253051349361444357134407686876478268712504068746981874800229154465355140938719921864019686723167763801312679985095579823584830396560048697887964278391979263627221936584355367398435420052236955535734134159604279352804478260069774068452451067048270918199935019006530665634414433616435836637391198510151925812750083036884756045741200510918207665401959113573513409125173402120957673361514593398802680255471329758748052583648196471961986741780596933643353322156875333822936257309166545097759845652492227843039471943217667486360510549647048870610713158442198349061249171235596290355007780892886121665541499847737582638430383372112156191661456473774013446972300959515794868633992490208407006998717334460709995688805109274642622596343022946854102367818697884574466274820325844440703615422513077503727413462607915569751339329044123857607518977910744138639807589700078787599224988479852647205992991816247774296422844469334045122717199134331364199470271009175339316569945210401274638215977266073837541038890870609604043930185551595546484808646747454951254668619446111434743654068073596595353705610663743806030116462821169040073549376595634171517478107392760097300640178604334876153641794513505138992879566004302220904886545833532220590144714813010322537136953604371104041992250543991558252926923309543189593099260980946656646695927834383203304365543391512327229202265308264206774805819042262502045247975978577004711280224113268157595140872172914334108616729984896380020497559402513987191989551640353458875743578593358737596577329549179588134579704366971322758334531406485896379660924983264129542691527502122725682444414151924505486518517273618791721622886781423964823995565094158988746135935515978158585279323088862566867626908717135756431590350319913238032976437815127531900336129804773048770322508202057919039244669888931371231746866400157953957881867244779583696131693026553586896544267265453048377261027583591382781865009800819371156653479724314933534950410851352923836753960502154661806169400241384705989205173364648288187051991494842316102584402248723485424171622614040605255804846468751338245415271255471022050904701654547213380312566969674038225749244950383600121979655453936803623174866923511296646969119637696316931807936861288139152913051345470305125750478082228257559601669241598108455602406942829788791904249619568592325212449906912916464068451376938019121859346446891815778061100912156020167461025045882122931762002093860616246410757042451328219738709681288069725493577664502445689292237763061482111655395923092123058239737460885657105275069920312179535268885910006111353167244214207938655449215744740455124866429209872017590280595295905323858250116448178425332058713391454779661785956585458964342501298753296829421609169642385952900670314814388943032075002423503927323995472995151816212124731021100751690197946467610060681614318698531311289378434990291742190928045156256047629821907171129095801391314065961319864030501824961109377141804899886688061283240330737774471877751473566056753175419865866579397997983054810403144574446184089591142171123743243228071758114871883844210208076023340232251152708574595912886805904446743634994558139996752805519652852673203019063001905923861170253566492902628923870505635448754750424368677573048738707411701963654983612648283000089729974799888890937459798416784389406682962937174437808275917668161371984446578500067537600188604618529128310557471298947996860492560695365358322327245402938251463981966856756242036217775904957113114473390411186829320102036880249575941340801265329851896896840631225178810914227417612484269843961882105093742463816625326360633748121788432979632385976215022284042000201161159993947483414622716817335729990459077350125578422553918453279030661593559915067313015045995776719479528677679246906995948644009553526496811880190902907779413994038468734595416456241346520849416603744864061684324177893791358247760724468334112388190639742134129025005601889424385484052390618725865862545369424653849801812096980090805446197562773541237824606378218407013517983068004214096579402154028824809747815336595234293656562656426255686658290906112388026093336625739422388660889075692779241320953373396209719480918759260411133912878365610766053074150866791455998995722583424723392105681002186043331113165526249076580235903110011078503854066197923468668633991769454031146140303373212790758912412619523706012625984764306626137407105793821392373063980816460114163858607188368634318348240416126632647480236401105193254081700643564139141999399739654548538040294295709668221469889668509258976182647660448838167869122565363788487114605896126867228111677651308889264800801295504651960818987669872906949166545615657346108899433096664178717269461754982254798781704711086731754972976423425891953674910601596708081723631617582629265477015341395510443487180950622931398627306255804035011932787944544635094425305624283029132192758492719383707204827710416174665102227545301452929777101930371108126637852740809147051900685010758648233324957948160674782593797963884681573678740577420541835647639542802542651045332039917513541779234177045288071781093076874090836382686149539522457698007801651998837779480333658117995306438117881798610321182227747879175366384978915974147827465397625299286280889264140627576268057655442943098290749487781746417949555624931192867544904353581582388398991607450739085914150860292849510228916797849715940340544867367619088692802760177742493448960740138390613305484052041210902526138761071977411407280908774201574742491321035046402232343042491645320286418083648653942933929112535056312517068644205979289363501365360330214523843024760223998200181971319328918614638447641642269946219664490743519415472214129069713000139621271600023606254836287307275530189593327205317307379535564941722145525231577335463625367310095213121451978773442298061059573392846665066527995532678610707263902636294855342512917698887664660505448302230472282576170267331640814963446620724653670517918956338247880740255859563686076441840175108920498648870681030628962471446441231974301673290977155605257982306162848151324248874854462804372940209458741988380606468514103385624855391412237380646800799156707972835864580180136102906944397858344075777812213345876004097245966240749305393252675447431847499335087108383800864344877640427068913465443060317681667781555267041115713438856817889264582536317976968366276258521086598248242185746383874579928067043851947863566269564957007969227504671187244328493004107585487996415070149643828363420608943574308015398309158546654301549657566886433044192852608554855750405254063909942592646023080302204760243848431480504480296970753540382356873210922913903246140900499458129092740894476070597972599371043251829297927497434719483010672725536357524090979835842618649831287132930791876300557476263321830303923016972830530868189160706643953339025002859163989452987304879939776916045196963069378638235666279078274947526080982221013904174747742244953199558905448366082368549302680855428305742376985029494412218089930892855676232764079255772301888968961650080454358284097691960722232972256969581005402643441386077887613213298177827894534962305688354968579469231778419521747187160387740046531158659377203818728871310241386458049376877115868140598475501569893121559376158832892964671802122069795681659573047894454932784352577128634419598896225118612059888924428801770817393103281658050299644050556565461996455971862060528644319396482681440141642494666053845968261960945538990153700700144780906591448870949207717297588717443575869205207561232394457663283532493985486422464790469492539999806956430435778105932573306931480922257947268892099904440712642370200322210212474556617048127031013481044298364155645278126129373216390576646545053370835081040573294447496178800441233566979453962784502634732442531572513136871726776579070148430510007458867584134610125216448959200286646123663169560319611893351064059245924636741919742019121871095270115679190975953492299781345547415703133020935603509080793960724985263683477156160684980144227301059617568673485822968836803152820529202992588680219663778653195197280496752247199979142016254865258056027716500407121363122101440077079072856219064157485478928193783323424933602359219386046914483250619370920139779127153649717180034386634258668494228307155884681749601090024249808162267930104368909221120876845270796866370586590423009931522945617983157666156283655625123816078373714943903124735441227947895468207543816625162743575270702803238886366491758303744150876839479146154768974843793186938710141604820054570622299303974185177270111944964719030118663588261601106594246538548022524178737227223665675617458975062463083898647376336619517535266601046228220069283195654485137152330017826015106104823644060675516238502066684711402055914517527373127418798066212303246783165834908594548542987346619887105245456546912285051820992760978631417994932671400834780210665816176434651360211418520444597307843051088417917632235111339091891355217011093128525713650530802342701064043478591993761026806449559923716932817737016193359765287684375063164677336392168328994159209526557270520860111543105495704287572551705501848121131223255599138066884298354867947472909189871585939557279017608228098597816444367056448554361361057990122571576685816245617555864579692064815643313345093130038255886651728464440896468881097198076219862332227579976325159132449815232723855459742409538365341405184302157968444113323986043125815760450310746365216528794530587626337508919116243267761032930243254625678979342982443293917244303315586792761817422439002669855180164021962078915554371947497244584051410565661865372235782823213449507369811530246669307172654060390837854401001958212558722058751878050003602542455110414500423962455181783029409384938686974012377136523863115095077232937344336293271894794520331861119929704878494813050513794357346054408142370387016828289753711690140995686160239015821066248083481456182001219720355159541874011077364899821094802842043723267731399771271005315868988747342091573747971925795856050254981345846744140456119124577538206484247979160286511091779385386813928555726025833800900313127259320190802884667358299788299430257277140788163515161573526047149114736306864747153508914258767025481866754285448435883692782892036602524082057906527075517108489836327762487124495863052863010747567866503292271679386250839761609017770416511975087224966532942625945022954597584885368676397097458515933962961341189623058562970052679367011466731774718753242879045844271207695972966465128167829247020982737158670853011672726379138682812596217741663338701723349608938479623337689778708178905579212013840285697507146251871296365999479648998164181191533961306148137964128182421576139972537297521625233965745664746792764954105006993389634783989816066260251869151760721031355856206314221453484693298808331881341648471168020758215236660595662361945134842306658786304502442770779585929291539251963708515832553970512393920403507394590619985743237874484919192249606028358629012188036315140907519588587768137917616688299278226861377046990385175206319446483053954784825892349935431837009496686477196093726978004810747427636127458303377255370469021926583213041730060542359434991018676613555960848022047280655560911767131150005182153250724743695965584907881047408278913659754745883618172382540980948355199344359150542049478048886501471398792694793470145266240758584850352253927099580408753770248397001849183824451221748220641678098291266654990450535141347745022582309608089150410816306816179834084166897731510051194384465992888531632482613827790154581623213956349667087007105219291162673238665047813989866654723447386591978730975728202636684579684738649836045494759134753552996207781984117493494356903876980398824528446284209501879292623086929154004889116565681385762055271182796261387231088409529824199721923795251045075850534340342020728689542463242915213474436074889743294925452843955566260424330274520085248701259707633976921287804485183491302173344932476463589296532398315249157588679768155223405107627176990545869869126646598300980515419234015936095471257451759955963074433495547443969965367058768363354963321334887522455602373572249348491565692433713157790191970068354315236689526427133097003134275999401237606517605122550248582035367796039387335717338756479137435228968695922979592521801727731935982583436968587702039678548541989395287248395264971561747960653767438812478210526487432823177062146046978488077398538926220204800865888256143276884384170023480497362412881258869096272087812027112216205501682588062151271955463111378509500164164561694887864148320030850738329305825507838119150394647858660328870376701907402658841471032662134375784674421729599433939461302335462815291236248718989682780575385142358689152103604735937974916556072329505895315071782615540251138691122616364271696700391576850642104465296966523680328544816944365700256518220465410478852318701465454045259615432639558914729728561128333319893962857429979883345677152238876671867827155194762502245001356607627014523288837621238713795595891903914788590580417621897856863725256074036354079458411168169710070721083660120840276435956583995329512569416803864684889174076500431392547101336092957650556140900501881311277920681194187800386123063841312323530133119309485419828293739436425399503612647762179275760561915556427147848239745847437087276865315456902171857062071323213735944052347821166216175207135585842359653022243248972900770839525589452019676468750700595743136014544307857608118845160401209200241929627544030777941963104467843755406735830231959746106378276458235917656162147208426419069544034485477422306564324050503600247428551037777270299136983828936396466624353340825433785977018868979893641674422012676914069983073581353831409878339271156591886528060633117205812445670022667109143886053661683206435880305333370216238678493231089287421309726043748101264386857782408323703911119632415276317484181493103431412089402286352637771170076337685041774362744054916519213889934126795736750206195190199091201820984762509061475902544407783195579423389980974433619866128102419083854129620165791406526378241437143444842604110579645239154566704753822610193894930552208617139850825653438912504774364792429866231481504295699374133156283059924849369519272635781487083833118336070094844725750363918021262198260418787337796590678119955145000670713061269751891311472732264918404835164527785445099933836674192809189269382892252203578587240701904288333796316962550528852750331701479846742811497094221285803199806922087881769100565485092857414616418126512513430556429099871008865366210800282413200795462683655926928868543267606713333330714403162520274793634359229157310769554652577565469168823984920476720783866807721675996278961999395526280157642160722946648872146642487415399501721651077634880378462581380202498159382219710372755415488427413318378546898705000129101045268093066188348701762021410673416688135316726226681922655476861506826642809688310855290545308722797885554215167645966713168435370716759172111307813619831293654378828469986522548119682754238449259099722624632535338155715764453317641484723889857819820483021109683455127041530742967298206410457057436178420379488998866121066314139702600080709577176144393735331668569001695745988347106690521494255782528970155666706966020707679029761761394661822524655440349616992956914052793394102855445559409958757567188561464658284173883332484122825736717589462674507130963469786764931550191841724892982442034355916071382385148888260024188198658080181327102300353111258861747620291615750637530132892508186949851789666718178280205659721722720475653912086488517031421123108071273009475358804326046301032904064061245526812947155951117498960142107993659192195354787497494019760649035451404351643424742862539736916205924113385320230636540471164290125957064236807610406636623759120982785688233876910624688115433297540004370645977955844080150261292131331773406018944901061108894621249041407077819057772748272889409565526597305120165171362927310495511893336570734767905014572387221164673154036306546769386737233795271656974910451896354631699480322540730996714923539386982793241506508362207825033523404903410594835780276419588262410937292355602282319268605046549172307067162579537233167553786229196455140266710425323229783638273608049408128737799626518696005319412889459773539808426538146908042486641089504133979479823728220764163102042362012658277419958732371105621428284837668632007495327965278856236743754835832999241178400162983623567410195256189565275579432614632157568238010184717334091097696872293882991335415794192206981027604364647627122871394034194508827959539763241091690910531405353743636609898389047489762226056046831551381304915246834728458247642438635701325394973916827416492537201535086285227822428857841252762686258082788372463251029785046605526026721352519821647011547845647464140644888496395004981295926633241210220707435039701427436688158016613452438826814229721588243530794167344360438019420729899266150685551621445091832867695509374114808144668211570242849361103299305543076456458567567736366505158674271764475941935030655186675382568155746310004050269392232006431056884329226658596790820950334918869247948891787983175961959915748705393268328819722719781959456479913248273819598045750921382081742770278372516857771837447882758633042663187850199707503527921456145207405201846327095179994878359796536934534111332041667536557035570772388360076466530094793576183226355635226943306239558638426987005348476535599012333014111505930368464306965909918761154542770642907259586272864935085335295065697844600623337475833994569458522573637726854044067813900627222673630508986696786379950863848509377259977157478141459231783419500017431356082174727134052981236630630039118440223180504667327200491683811875403544429070512368310754542657994764845059905311516113411735745514717347967179715335450837938622611441274023333883475014059463987525878704274520240242115326666721066172685083999429379566142571121300311652755033117706093063151123110022785361590183482138495688693723138347836232912761620137476006051786058784649737866308770266186514720479664213945990731694625334783912411778484742323425676507446628338532503498536104815361948525376939722503486002140589235056706106046511745734493064632565183128565422154408696641906873013083311930988260682278546240584176209703285106414476812644217220337050684998498587115659691857827665827820032220676355210884934984712271122978352161786340765665266408698601479953729484622046931974884741644811514611788345350183082949564181698937280467898723283652950868327606938406190276804053087703286584673240021513517727427848409407023943933338054937581175381211050985945833676307452954857653061876348896505980959047846020082959754215903743791858662751935134297498050934653330348877773523447772800919950573972532257459129871247625048218871468501670673434851981549449004943701980026970164083419855012273288786657914917950249049493843723329111766331680868402746694842183315003722561786870031604682079577379248904391565929789265927244038658467710475164281807850682904626989032296036840497525931792196321313051996184846387756652516902944802177330825528466123770778672676491996074787773701535579110370563904973046299709422142501115390518089189262562249806900560688166674372839041905631144500137456481138734568826357269559785534646898463130876255100218263810174561984791441961600653186883111418163734542124245790217783928047664001377276752167166427806938666836306664819790746942377780041349181430714027902853842805533556472847527363872559246969363968992673553675660945350717229656251580097722158683394933190280661202627829632540244165942494479295761992239921655021924946087681556817880554929611026756892420853968276636879499780768298573420596203515043394535171894127544570984478834648970294704382688034721826315903998400974795942004027457132754818237133092671867908086567890912359570820860590336807893625583495056236046716454770312467883003158986725969194782927361396560366391702772061905165295660706345811235540755265904838006111793750796939728482215930290978014633164478347480392068460787098018777220752822551551488059616179852137309578972203523754063113946862472325982522151943940996510663270381950678458915589236782646343641883562476392023448566435921282863767805698756185318869882602186761502244714526741370341219151419725018686241129835414720622315275424072204041767463156330332746976093481454829091993442597239606551690540902607270533015410498771722456376082949833045309438280225941767062068633175605429201075510092899054478690236357341050321065044565667424154617909453467533075560252478156436688297953945386819704894884949383560873740809998268259607741209161169986838774478591477978852169700273471506346387547028598387468835774805402082213737037732873974731791701437172971066464583199657493229461388718568144164017828759187635523473802882919838235475660201489068310075225065000666019196043698855909213853511700419500043279582211039629182426045839477327100336544455967713310515350093587278306168036465697757608637756260015758696457967455078474486479549579090569531529216607382475503966744354156776522629377442049433225681006949411449937820148692373875000777321093043118674800801690727382553783816011209364198178594730188561485782921876185207540070865145757978378671417206967809464740414668369779246402709541001903218716993238955452044275346559729602166403198666589702739808470374860675427927864775090546129851431831035038869075470831640946443604952057931602778476727912018988611837237926192085340028798159935941492009286593002615117216507161321377489651725433405266842752016811979204825333318656950754859051207181605963545048278242231304953015709523554215094129991278969551433779550038205527114819514895731278957030754125144283760914704316219105203096885961734285331939596363339519528841805411910490951671585284712964746715709926283302666179829036537864442049599312113672418054565837449494065002800760452785864458600908226031947091570857337167880537850478117800339411227004231769901758043672192197534482547326249554647606029022469590109818634338460819977481969603079789250619025549679248208366332171544537495719358862916847836659473615943924859783327592980242410327943628120740115740173593393463363878543118602027831536004739430109368078270849998605867703972969198868715134791199533350165603327302953339840048566125839650094977689726103718904321271516523612296601549583817305941368800360459618487973425492907107056680074627691237103980075146183346643409164411380436033047965878385637633557752889679207344033206701653018856847725675845041653317423875183432525159825178983529953611422730222710987531480969361203257548149442022400342308230564767927906062053010593586174797815406926435880062297136521667245513557621109509008379335628521092187936476771623017233793719810271509591045665454193532457683526244363968747088704755496658702840900809491483249035537138092129410497565340677104256187810228202040653420255027182116145744894137317409309435934628204564011664910171586599515432463960578891807315092288184944893223686930382146312047411907930542789998247331928341744178488273493866717165329215257280604661456870699235229516937692903276842023247089102991726896265419264334742156233008050790156891849358625710931505378678370690199397889258075372068873473929410783121055018041719072642962266204726780516313004891846237304271839633297219571480215972795182739258857108023016847976659535850272659504397601536917774717112913382121412089699156816649198527999286164927964753044063755195798538617606791955299985673880952192300176039126432681977445480818886816054298067335688162953754388615308484918874277917734145104393959069958978207707179438663590636854842044085560588402027863775890727247934058159770288858782984109958832786115839352105074794197292200397159448107338068027885305593643828624717870320489430512069867574995991739767337286894040127373244536159674491101072996852063434739506278370195417593647928120900540788952877662370397004637549393894647450547191124189622533117196810966478973583489654498650991207219670164265971292596678162619164336660450801317950685923136094196740075179587413890233684418741282724442546862481808231281331521073869701477266413142498520503726876401029170558660039218768883150480739518003105800598886968476908993002747359267188495685023080393851602189480411906663105736811430939685377659896545630568167785291074200547152793967984225900471196143742313545836645546493829078555516314597631316138861987041899590454721077183777012666919627131287773323981062554461189219792083589916137627766468278676702485170892257595874234931889861668166271030776651626836714365466274552482481352006706381168219334597259752930811832985821125877893800219375748134416198998159861014966807046064016538909197491813534395544956285596654211983906364531113505678038641977186302885383385941171851616103376253172740681125607138171729071601574818413668350055698251466206664094066602748669357511217945844916071662145187318018842732536641249840030050205444236347144942979974931260411521269314265324359489048320294018760319687086298212068440155669189501479995254312199544021595382237289540097064690411797459055104185040143002342557537670831682731886923927704001341559220205140374061390732991069879786586412793077463313871970959753454521450945543869898593876949761618478667807318520143937324185065784986787491210807091040323030814224628717261772084914448817056363076637912857077120605109196693922887087518249958535113823854159792114452142331817333453602422387759765600370275216953876007287014078674556565077434825637474174245725816144250261311813931775048520923216345381123585495982905422140753983144498596567748658987383089500911550004010492902891389593174663883455221992265190878082377967988039507644541343674353392673809736003665475657231312705994070530499206178443776647682188101415716911190799976047003932026864435424774135601462875736700093080850711022504295601802360301837143194716393754843727291929223928299794302489511198431227037115156592306875608966104945852895085712703749835295114240696064864423953469626457760651183507478254454094986017295689334120910170251703787693182626573816972334501019240407415636491108518999984486811210734258498624319998202231921044635235738433817794279877619477653646076637153957150108715924302981036671770783664512166809461407634842916400158639134062306296065964472737543114442953926070773059500947829237235103804113523591892675298363944102109133687520022085199374166400267486035029896189249435865342027498508440581966697861739824590663540266061526411533976992129103548229950424859979248155947710033318618461546152521697434277539211245660261594066664287932547082981421021955237916811213540620605393638604592621790387261982838911044592990007431192839089263440065551672815557142075326632140278039802425760091091284616367250862262275875160441464081298129172536083750873311450157987781431028464009895000660913075396417952588188976940801636133264557761196499365536370625941637970643873349294353296521508759624339201839159615267045095663508726127742203214737787792906204959561590316473718715150824421855097743174379291854755098231056811481348082865177752585859145229170567272679712486201492715684614308693412306315018676934570651811228793123075688724341771744222359347509506086842213343609251997344183335763581521104496691897488214352353545281803459859114383219263886737133118538656104451544684014988565535878966351644514710394165204866445494927904776406232527803542862430623281178888521273850242185732542441615382296993637671835719864503707647257081774911663215495453541611935197437378188947278705875877602047374829491776555218524579015649311525480630307571875157990648163300066164693974023642063554683724431172947378614739421537574304407277117252775170992125607510552981047251524582709724470798507552721891080351798773165926005037007469008986620604494658088476352543689021089925657461746753218528646271658582450575204692291913711575066408877428247857124504891690495526960289874126879095276925968028390068115994485166375602143770531722193288950014933127239178941481978282083026216224059864507226198451700268109554973182471328046166004141685137746332593105470178818128268651749384902373280139968144909464318196999946065309151825439598941714280064002890217205440624910842010541969573718365729270928303233730780771610089997201496095765302755352564348296585275578654590941826034583734656369520121596013280648787259073454893890844821664989190669659227786679969236070490397517836125638921718917979390333583605317412802102232968057824866818969570995756019747957831155630645628659663589644634277365698853171150926666006611802124843914507257451253430621004676871811924878426438242910500619115711300733841679514628190527865125680219262899057466159880519316543734937289389309928859110375922242107435398850332141753737275687297619734860449355386579969413198927522998430423303146321894498778366046561196482082109139190204471755836526886252179758489183086600957535405922497162774498373717174715389990761525327681464394904293337831619423077153717407264342688733874047475219897515167721352687197791749494387628922148434826607217869418813442158213015648596886851188978819076675223941128008635192939827138252364412971938033218949419659616521025885269233383583958054186232447826118487059395469427169831689693255146745383490708250245675010534583071546266870510447708095472761496541333545489065287817981390370583509423394032620489343883147445136836314620959965114513867096665834004045671301881706374921902441090825651817776106712319295648874134888531104183638985470786079966265269639883982870105121144506848915562748475732463701174726857667403814727213822674942458812266953322316356918481452225284951017191217860272070144376390641551683769769562916015038641040964429636004293384159700210788329875163305404103620148459082377777782499216877660754719313259411771557633673711907240228297012552936883003968104632401275366116106581902388269353632594644713592582033966624645139869933952826898744920086099231786006471807279750241162193564619475614709055759460623685843241600090682956836062933779716051255310049419322551611489919803237210426628946396796526496940485351008444477153301091890276678950856373997997353733681958866242871308069915589750130995572743539812314676876914601004732333678490554983272379978732678378713544143382875849028069996041505761127077472073736205831635351568947765523286876635676478890498340269492539494683326881201836508979284917888188899787110013908613852546377543298735449750568310565331452414446681368694213773625552023209240212699573646855025353830556795496341867512390733945963360786734037703860663943227950542629997868669032010187122837668524211826047300070838478848977306860946031826985230060897958989285551483138391603544184921749211274402299527658765772103672403351373226350400564922674304741600105573926203246969614784311889356910463279891766383848529306077239593844780078037569787183409000815424202518890052438034855248866435313088166797506214615906392557030566606616696807294067710442397382743844635608455281818752419167690286917066301635446736804225850517161896588669036321833894431350866549579744277489054063317785306561842184980414267036794594672451659935408945297244117192879275233290022810319879190673953469114901034868323395968901758473412024828112335354611160992082847004003594268679047738752070442911420461924896592720889027407753760723288136961965406330556575421697757016195565789870346294510159010666340803188020895842407982836390897650789229422680044927230868432236491414789644409020362404118951934057924317931326274292896866737350984825516498074268802066218235433238978684868231752631425928973070808756756667948995315736401687261614114709908070453800110785439931532145021521916326226929336128015439054798436678493607618755087972277030867468817755965592766093637635178304404681810676579721100205723681773987340998041138498014513218694352994881831117347823511955092038957733651961905712343630320704237547740990281444348955588898399421738218235372395823129799429813074099689966508111367097835514881363641569920991074036044328137381208956359030821187396319577763408160624333890129921296266973928350608192958486128627171258574613129805168053806727654015603291169874647073893152100629106435328928618304034573323965543674826617032302277273269087876995371564441846424218862283951370106563181653990363584372316888215519107490151472966078653926964622871628157056232803265107150731704672251304386386402330809119052455770821650052393123853247564283403007476967861217584386684511529072422593877488391715915047382104235689877624225838489419332368937242979800734177953548160646005254280569175987774043280532316309901986564904926960493867271333611459242371432162984574333440910089908108805013640477223822691632129733679458176467569687164961914112587454816664870805630332569485587398656881277873992985499394670582922890209233742306032375555366336494159014698696312108514134780795753215845618882327215787272695177889448940696551477139488866240294067638965229804399523002937332572963198953035742771022292410428778112289701160691138072017716006421498394924198187711192286205101739065488548092386793886659322681602590012704229030660011844182917042726670710415787584291108166129384020964296148958401771968684068156883029051413159579688311361347141517389730297673641256514874874120448854896299105289942122976641071698147240271014691580440031808656760811594012337845776135154137154492214981251598732800567031236274563977724055262661377739220366868021721016569495830834826483910877125934118782751608379697291605042907052819424975435892368389608368791785108241233732304584794533099730902134846763171886819374871348031511729087299517053452184881577348745979031041587201526321803266566230257658076441276609335913369619089045516582363908633236816619140655318197667721056985967364378332902821336302699691276294437641454538723395441488529537136462061429670097522276475542096641241282649788694353321482577952326731660026156998485142605543695767457892272886466443547768035335423328934586726680244713512691560536513041072211400658742483242954115939440371744769660696575606351662130223707729908284241999048842877878265828358047612594894652417783579939848276873575576300176195721110651462882911824619282164131792482483504208022845204066097354098328134259087422957304289322776233736190649190738235690029630716779285201026618828902596613302631669627967608201288778349626263415921287126502063724624281082888009734574460366930480882956384953824664999173849345216813344363012205383109011944247661228153262478373678959626883221872877763173439420376322252033706396527737303098258597886619694147296977170255201674889533177534657788475733790239285182734119182605841190734448455322931681621448110270066529536420004978879052144179449764292293947595729063396378733539875019838918328323415463541868832569883446528409930933643191212825441557123050099260853709456343776687720262085489612407389026506125634948174738187119948690131918570669186302973784474489744137922617625350982452591828795609210905150516216829173370799738391954854019783617843250311607679593200869875743869829932784277539204988905770608852042306306620834337250341978417997871118761076267073386239236976915595942689347227322547992305105645983644450971661088666395022770566227862692737736258183635036124312797721812244907939741310261155989352203155035387650839602191155377266468146862683640577175564421635481812591187247951803417296986527740495592373554059871760186713511272025789703905081983746902882316996003229577845153615392658406732775636840932696394054223026878287673443506954348174614574909544781201070778327196021678250043726569559885838797943537356807832928280595561950374653667950932591166358892003766689197983176376214428527622362348835985248904252378154968448056833622511818842603376187238134504793324288765727282145837433080782580061119971475671284305276765640296795624115888740165371121668098151993696850571304130353907534013666991723225568714968418964233550473049664683882882702737180221034836746434550812829247105330634712026074739047938794672454092449066366341922913922240829316345275093961651139286102066496705281969922372059430389574347134540803974472977394933681313085024410010903045441479783311678456129252784236607544184035684057147249744899692239171114384476279422354606042608171014556015124309438803036079794615010155533153030129248490225405543050418640228286265161279823932172711144357706041748701189449512244253663901840582367483970755151716912618725824776623704903186041232191679386963199720930074313982492235689726404794449453871595234504848565330420713730068600352171673966382977223275133582375421676579054370115825422697620147354692383161820995836395800946485230712901708266797462432721759848078485249519581063751628980358330050061142724471472493939814670507143399576072809270888293703565555135959951339808788035829191711478733255756318699954713030980302500435635826264833208853725264038991449615961442913435941027300477882531974087133454450452994400281354444543779332043102853310644715130464740891503000980930121436514549293997025063707474593219756420353919301598821661129611288383637299540304841872121418040348999390824742642427118363403636397687190179980852874882974884521393658077106040250033511256421250692156457558652166683946342698534631232894974520972656730275686495308617428757806421672739564181382971282386724315647925094312568145290517646800444696108232503118827162467148640228785341840084288845070669798303080302898766437788673033341687473244694396226501108579226776523009341916412912858637051954304698041629378223217707482257471713301846783526765984705131574130271500166682953154829015027588223238815361688265002997135843337891819864939160259819791129305412188903731694605002590767136482692564349834751461310322728351417111058500685519427170065105271812865909432855395267368566336979143417727614533152300365404468327433464055640828295557647477560472047072222060478210664784395022584024145423558019298876362630729108682807162460687410976623393556559581796160040573219671276568429670174239648421975200199356318693991732243898503682148457311332168530412043648233175795259260271891384671963949843394181792529168761403093037423595373961398543172753162569682915384453002940482641923905356990006460489241854834999445907361250877585233561151214200922645657126785989529793807740493586303661010705795048695469817086567686494529508710145883775443553967108964876101652832139244256880921351836735500955835583244085031076107461687764823021695526542090695849645143453052885340822299107634832234653349089094790686989567885086217015462360562842205213190878165806636439797314110479714187423339674096011728578947374903306106134258790825053524655172638856424377428472215949348582063863341880872426380562684720791416867498102848472373848346909581883552023953737993252866787941993593534392210549886204170228528080057015014111222537928555549782326116282634360199129771952251257007933729818311268172355560685526488756705002235208684464748403872378420573034182074132977580734179108806857467858092091191173253826083445500199095677891469929565791021081499834662525108278824635227337753279356610948272456362459318073303453443470688422836521558328549808615107176846421291174142609003237396148504104321089217771557827603795255661864991492478384213164296896121813610412384813393450610971096735344851249662295866336632074053225745252401022659960228077879505927514356445512459832914633367299920464568718786451939900038062852677040797390277582203068601492488862521688081676245386101610378001833457679991652444194088378135399305529609976384490184571293022411739817375429427086027702605563735151558949666157362232167201298055859357812309523470157127002857082069316667881569728788487788183699637923208678518384036845294405152471336082861922607574050980578100419393782880485274901279361687154954526981825971295361496155056339182565921402700246358543536551480745714716672267510363839534509407041190926702603822125180169848902535792218137228317801680025300678322826979919433557108943187900663154945409364640350718396967068564081459103510672823893675200428192269987966990601011475499803431588604646048735696260687602107977485758347208017331175654805295558823463525692918872830516824736254682224911679786378084312573238272052907948915687193093572490806846664800167807922338769777659319130217456946892717190772083742423810452527597261982693554260943733745265164490126664954499693438690198063778294948109065773185413142456026405946492927766221438479605468050308564539181360871898240633932382224067959046233881920595170433697333122888119295934513770924868956557397524039854506063169094538667488348670689082211044351662609696383999862866050417665061634891037089565616874226169280811970925927200548881365650418693665211722304040969608432596346213340405775035924685959708201368191752058773058593205494133974451383858619113892666001183296007696680746495667944458199733934229244699213812521360858276932037986659327518848484159515762437602785817220774151147939202418767402190005419494523799510598146746526492214497232985893452741071775398380967606067864368017021052203604281557712473278435091767399134113717646760930615580369317650622526048228997068864690426254215458597409050797180451369677473047791513549852492989200482623393320639551392680328199770122761813946834745098281518512490033750135001949862955691826391943108103546964796671098515014270656269469112586659008983062070143902071881444195985690022272267956647054489830422106574839963213606815998591445744346056718253125939365059170510701013002469601793181081821344362551872624189295106953631444817079471112548798867337054426640573505374258445476003777629240848832305086680045640114077454916493758314667640957694186310534940864336934278515675278550531966182672513757175347600766887667650886000658155678914215042305803523293530502563659536020774529425884463330596136147262704320645408768829464222440031686520920433001766780747140130777514891899938398559043454745781994199061787316012036024277960945652048516484571811573367139429776418966490837858337344993852281505048203250845210037405274116847245301938566140383186067905413913981942033673200595354329365034111769134389916095044209732641287658738530053425200081030807917197811942878091193769416815596871532997453114939917495513712341957563685283574076062370692581613414481289654114040062908688154526438671167397736811663305370662659612361778411820531232978465980341070088296192344874076532201639466067117938030612177746812123256929967605737212062597620465958232104848009071839765757456987896781434095714044098891168193420901798130663884221094245617227944962935202238009864758684467888651116879722908502661506392321605492061053285462560053229638163278392326272087039163298763409400587191445611943093015501072965600469317468719462785159982588350108621953200261943881575923124428659198919520464420930803278132648414360496028056431899224355914450854731380695899332261544181094192810483928006575998736402457883920600191169887884532137719568647859191343276395147257693563183598816187631005236791351899645213744022808955514417074870854471726618309070152087806531259281743027988068629135494757650799424417099712152152162289353720658900956775123583263822145314357366564327074502630494469068973589165425981165819980373323532153116144349893072943981693728520248219507806355228560711044685765205690685742890434804723737683804702220992058077956596595891338190349300646240549015489619560740916273311109766604473614606725881254309834070402627756674228320012062426761897076179241330530431769948044728289661636632796974155127534688659919142947992966009840281087256843192823398417540532900706231456855662808706585086456783925360125724039557474762899620413798650291344241171358539041470741210047405102966597680277283444578241505852646593962843320168956341543486468889366926844325426196508226590902992060121431508208873939282749193920181917914448513115491647051318577065119854400414119979298916548856854056795505398330916801569558295421002946965701386138305659941512465455779742369595388719895629598562304832684718527683774034249673576692964899342770076047250463295554145751596355945903065146130069927021819163689995160893040690024922654303311204263029268222676632031820889954238546596736595576094758807716685931032631812325065792216014714923144871700707516862604325569461546922172772367147520087286446899718782743958424143581804410460895798079698669865364417828280415482272213078901176792693783972081988256159590421336378354383266939014949395262713799982253631105739348604626422181845368501168198102396914743666420170950826307920722950594380906203622902651732637314255091115013388514723148986461619033472060250826882577141152543791039356468978785463579382043953766499119653330085618403837068261115064459013090371315177141394644603268454281366661221369843332883257697334926977557296661139963493317375381690030085859121393880236052030813273301297495108062969329934667489632950554272398221106761599328073499792465461782105737580733631181280634706753978281777392915046387656557911988330739062489345199949800673707643886685996292006007179566149503293163621325432921437704155247338545281079059641875122942155768052965386636521137737083001067172845736642655047279575239957555374324476663019335474185406026008911217345005578099445762111612319210605516952101461295782711167355436108044653581609630280976211455448099684544419072044160022079776467873301725097898279892521163372263522805224979038486621252773935907292491300714949794706229119565324913656537398102816726021828030330060156159198577752126508171948331708195190767982593578562590574053017101909563694778066915688621057571646524400158721449813730075404114382283266944792192558291063094256112169684001265506121077065341495170081289515303217116607251947614547042441599335677332476097536784793036533926340774702805477461455056065964996928169763007711696517782715014862492918690328152211923519836939866767776548731038379982969347536911884200172574211057473505828960366892936490385323617368322316420496457647356575572391136281977432534394787603973966313734245622971694087055353328263685815741121191789227962071845597454132639543977605657472069354180314237854627131844804542751313247583399772681039719738312445721409155018312051725398915435819394937842810470828357973634165287174968526902011938842465006904345258963843100326895963727161066404586740566154636853968585793250953269727929032225465876073844538367957285364004239342507171824781531444039130173886424701029552909656630165039497119332478087974418801033589555219564325165757166711286591398444575603401713504070313990723292626765568797417473003609774866915540413272533283233973384441242704227826207628779590451348236967761670908838284911955300005184828612648738339641645331063969535440517536798042479121900502468119875021041955931047756299672192722234044933539871407028766619349391823306285531956454643940827321848706033349137916537856595686768527444544899812927062782133183296213835532017107968371447987111591553061053717680992603368074279090439485516750794292398136371934353929523375546388583967485997965071405108760629695374569749356824392487062230319452663710508281424460930609428890316346206470250202538491647271969703529283570862893753454786932538812514027458247668391353389596198376445337143601895233322568452624627247164962555735241707277548359272345244368065018850003093926588660303865165140610962159305275552848054029998463205457907471524118988026773402819531363442896181749107612306858739340073146085161037631568094784701865591545901841816766619542592202531811681583255480706350946834172714986849063758786198147337807311831638517817735079394417292227339062833969186696384858363574923425776306759951195079290463708496516011764365195026315477612341194819066468086102647056876028625681631062965192818768810849533440890867732414971817132205252370814285541057815557818438564205114151325732523367440834577174706833785618288494616661542835477996743191581017850062985090869607501379573303622083521101207915513028650669737017918516571885909360291813003046538972502791598690047415137548731273082477880120466708130283875281810152080063781582816691920434846029171999645821897867094099934087736684755928831537348758191719198804612593158896519137060418746459057402479093052941415125919128943915302082909926699544996842227239017276112773588574047776869646779264206063995524320783044393505464377105580177098259680902660557414517619993211299292945862047524202454974315709492894844271540678054281896480360002297590640071569025822708281756726577318164511209559099362060256431751449591018827626733231677343336233947485565279821658503222542768629487867598962160133355910850495047202936372191125361148267376293300127777177303586863725024814872425726288977509873024380707530617972594316656468974234089437243035085340791123578679942242057744594614753047623365977710050559634413237781339888531079060571260723581515586301417033504645150175620863386380108803729706486975975045764298229561009079046768082504760027434639282208507933588643100342916977359891592363630727491600729113665060400524673855391750082402125973204164652128908056293306219383578988688435450786168376998518054442300362334805954096291806981900508872658360545022149283035230218022544006388132809526075630485495288790958732780591098623811167742185676543664181522004885448256809820504259930509518204969297581411404717189468559273800346444135149607385682301682801106882323421972196982266173399448614576728131475011804018055511401091852957410096533846947892770433481246113099457404674997160508999651582095488060619183601104100201865151827378537069744214623591815894835502861801219659521196288437964680049951499671453797175009331952598914869694036711616542950770551739255116370794273746118094302462357045007714345595535045599628083308695090149275805953321324511758783084161273712806134399101409642101030030800576655950939881931425656063530596319818480841344505802117974549097878931191206022693936519298321351571933725061214553817834354732306600627368573649629132163078140982529137722856204091955111505066559643814827682029756968627582791595956364824295064866729479476221643846568420268529489029712793396643181113847277194023554159377711715820665199598445345379628835492380617167513949519274111393202992366549685113093430862878613322491833662599372067328798474728739802412459339337189680046041724583985020641333410967853403398732864082555495753078431393019546502014038644957288895690007381818964228473658599690737571263788412003474175275948863329053696427000545110676639411207030976050760835996714917839370306394495467373076923827858006781351227760028188819877306341571658186818072323771828476381928985407113196785291774175457208394961993156250496899898683633449302970548416896664429870445187833054635344226621297454601668776757030264867257769784156653842791820604974054614752135219565355517279464839544308967860972217239085063820560261762128638361012266028223354221135764444319362539523560181090832823217908728858792993121089958555642040705965005604945070039756746755095046387036724487243612006278257894497341438262231917587405297802518676135078979769809852268268819691467453744116520004057159459234489552764869744398499724303468181173122625602157009237015351272726087371475001599917854501972663480346998940714943806835222611323360600957843792894257234453772275797819911831531671078140537014487775727641444381484046352676473342158038718281165248516464385301765988332028764499209872999099571616880709587051470846350749234763047332376978367279189915180425819113951163902011471389756771425017624465491690260475549056650184078921272296224435025070415144653334878923940652507047981107201711325607345762589036087039773846105412641470072777286378111041853075057326213883444497972741762835863611321851754182174962138487889331710795123962134059551911891119047070213851255319252534611545322779795928173710985795220392510806618189197258633996434602261962953816062810584691436677468864156015069182830974291877343315181913658049212586690602470656516336403047837016258246843764733212326515782527011203945659259797414789655403465268982881553833840220431043014466587223366028551117401277159987698494939691044299114140257128934518026861519864955277206436777873666738390007445717691553743669442437434328231032396560229773001864695679207887381742075633812873039322156446468513420063871001992176309233531905999236570468334828269740964767327352099024552430589283379109581532341996509460621092749235571894188387429583104476275028187495199349561176526422378119451351194618501649253208605220200415878766317475505349774171566473609539367461309709105165134626919260167925384341907716079155419681182100475198628478928126624112127844569077003973105116551156124117247227309557732955307476967374875976356438736471817095824628237614551074596473915595502401576527109804695985036782884519476998172863764567989476445219728098892314053243547453164114093839495650067480586620914150749566439096919061593236930966309975624564213671207790435023376327331556638944680215516567329538898009192896785411060087565042050080828466213090261302745101513803203371328793001826488785871742617592277666721327530732247122046983464813725189735376952433573603185021716243202108202651717574235043953000182745871201536481124243271400375086824798342954343994466774084817963498430604156339201340925672339295652685301699043965227521113428214921573836157848354962071546778922062037512917338419037880875339487807943000490661784778969375710115067031690810404939404793281425276865531524281797831261477568191328506553654044220367846997079161015567289726561600928753451966873666460441123416013265262902390085682191244048954042690348968653630642026249668998548682840360250503178309977557953229544573127460107475113329011007904255229187835238324729236812588760684192697992721697129301161483723416803868209113422937543833984616430627621052349281057293104304159544717678147352253207005468192049078131934829262153134000425533136885645360636309374290819622855397749256440316455397820564075738533757260051687705965009460710195699023508045503987805259475196352814681227660053597263396152984685085843498338943875632797583186579109097423367693322089776921334419328162381519158964261542199619164636016940753184389271320319096272907973182586252493137910635224597673621993108756373790467235063084901443234572883826289643856022971175033602258256613993761236570774044213408512312782760358128390705411907703066456932505452010518877423641904998500520535925733044106755432759596141383310301560562243206624737525515513818072276915169277353308014639445958067396513632844875506332032507568830934106526016052316507275150725098390013580598260116686481879342113022046125099415304442305024731625969801084165952397401587255638884675623015118780760727446200314000910104922700571253830162474717036531534905549652078196938947526112978720236844820411475450897168264932886668733331509464874129334571659861392397911903214235925634918124841027394216284030062815001472567426045100353387561932185953585263231284843180527774342897214791155240593594913308749311986533554509863431578341091786264087717080500461876610242024592463423414280929810091611533364315396264784809295510582253252466955515707970345504204566574425517767171955029107382408529643022960694065918738921551547315780325680311092909585136129378708396092173202970226530926916091807555577347513312784608683548444524349738114725992089104579335527974036921842654251466083922745502918127143587111450157753825580659387023451033604600445323231970480712817630324741314155959264805412347983277908402941796869889885847205048267542467235894314195175960340998208981703133333065788500643979586719583384629209838080052341656694034003876412315528517138599456088172030765000258102415581713287224151530624981628580930612457666171462201160847669326693289928092939040383347214021489279631409449977358422991626415393373851938670902847416390409585876448520315123319551141719357486346795076117977411669156713602801269824036581161813948512723911567533272750721075209654139521316790071646884975648709292915547375915798625177162260235725403613282779577841350669530716172817929513572117117038288728570720979343390513199753271994483789420389622881123583356021613221053605273092272377266975283280313171018332459039940793310558179075862541505929341662020208844768363484926674281917363455134884721251643478065874094097940519316902669174433633699495033829689114213752386107539061949420341468573439784867435651380224979617691584963511540780621961767935961910235789960477099594676283365520762494981975223505298730318638520675967555162590820888897491794590226443785378889870307936795170193273860781725352892716988175615693478352630992524800041543685987674918062516381319864682230911305598326671355703357713647037873103604819230141784268576720667820788244541210535280583178676112325019947582798452202762915688740320343207580871839098823118950152281370329330677378738764227553624578669394511783183575918405418244472681167324512475840571358550664760096281874346244212534984961742611660768837531630307404990932190348549619589933064670156551519856157498262997501650409793088634181625562044306362571628959484044532120174730056806878341756936036502367211431349625115089939102596716363463216206027992891849786446650636321622491313798456684212925924875584211519982666133086162231376759701405836671483018740614061774541231958820856998106631942980040099034142823406073154866964936835024225365806578193284255411743892089405074447172301851219792588178390510715028740001260356602758818146136426942476602698851582188658612107201244594956226876827079251037651819870420367184724878268274140161548205089824103649435112707131663778942868370496188428409224661008647296081713840957854499304942236256155186702333403336018330555346703897408340241448113845923115977857129406613565154753233256488645190393737989664611487967890492972176455263897732791349072719939380372515252554291757283630589094145263803070328458930348154267003169710936010554111283950317200772755166484179558933852368728587664084554379024180825825552033978342480787364394506062291234295609272250712083920605088366048914538788644179322561208430933656809657172790395805697646222632097362751755580167657890360291629679130003586295155878550324359719714942198969801389148632253203376976373734400277793099873560617797767252280653053834493964566496807402401694382967655893721321611084582174162649676260923947864113709433935080881789585485187245016013217562095715558498462128600980351827062708488291192942235551917355867091253700606272550572333621307155269041723954954995128672015535005499799317580024642855553538283068891981463024845108736473408994135464348380600533332818945685450263669377710334142390806330643245952254113558409838794186612413595822673294745784720435225924206701816371488181195638423288119215312470397892700264577470838002898833688300455207949641075217605989799794248752435138256154625864924612225625848262106481005124689677706841227387311648553155230879331516710656754728322100184544503971201947812528364098122576389805102855973666427392128133054953606126580591898508230653050434687510427546352358282684721564627639323167838911408298866769690064593480804142453763325451030292750719703934966179103844063519751793462145493040135950331174440797401739504557387426696938532474965501137007559191480647607034462695789301784371690009499252469640169957726951150442450301202912684904880611441334451126488880486355902169531619653885383153537551038262549613002423853983146031083909385751321421180764920446962263792141520832689888800765320653857027618696052660539725328796514450898778448558233146757452525031698650245661907601949840465610974439392260944765224115181706792352654586797354829757211500212356791424272597173069984189425188967789251176844477932482795442259820483447259466584272299301687863581454063274155258800617922818952469823326553517073637624387723792926086169720341762364997789805137057907842919441516466097311892800364325026127314843907472438432974941785768757948560465283876475405034581760554993889205277662567355480597141768563156410998965549374058242434805509944792477045725113632994252600393616618141082497688721599101236516320869984557540730112204132155451060222323262727078595061163499734209675993754913047518611193635060209128465430923406099899419054725281161159810311584854302508422273157089394257095330461996716281608422126462087054006766828736033670282067558822093562495181940576485300420434409718817856176526233312559898454127615500461785848307929129883726885849414896842377786918891906814910655971191529932214600026746029372766741947590926354294614079661807665607740075090802596548692138527952697492422876362102801420912330938560336282703608863823939374136810622698467846530528068978729615065836178113725324221543842914555733230607886233805512997217600402873247684981507669701973038014924322470853701030969842689522951735492013673323111365735307101266206670222061090372829877546008072378351484295137400648548452048352892131151076396839883793063540088841750574758813062324189274544301793333735583456275118602489566688908283539105181095229958899084620171093792027932311504047528303988345318358465869836174988433873611855350586528334474275780235245683557254029498632937965359732432561446813138688416166897949996453881694999514321226410966968722933732452322958293393454997499583917892934257652657148515630290934912273657209308410354728259473533257337318525507800933603226471944858187458945560726022121493705034521127975748253083750095973202167545369413010226806337934709581946582779585015271871585750661176948342954785157010961655216278253369799244251684312124571480703198758477799895527517503780087530060752296074208823870361700382957850577795984451079338749537965464622008947304887114422300873408437428855773315140594495628585836522462840679764035615196589992166854766607285255451316902582158786978848530972758516208953634450322406248550628335966054575339798551875287470496873938876949860272373033501913591389018611549951307929552930048909488060789851014557430035963662075881075167681723003613263957982749239333446103954984746768393803504807071688805383371229853747285499952754908357841871024393880408838742704024521079906085078007751342026953641563973589121836176411885958430907483095804712985036149482906131561605637881190741847695620351795396252094995118171246149976494094951934696786106731358222840990789153276586420800408018426264503287559641713293629360810109874455842590726519271414420343669159671732895574226641779616201167804618890755756348528817867638591046640766146939032461056249955640759970798323318784546466781743864593551839532135253937770028506095884812026647560124785517450293752779202066640464910299032319845610642905874273600869091057100982576047968261874841103753462594254800877144285661995620860981503788700311236868705122458021042691126756163520794945266483723425195809503687560014539110516068785814687130573169541569678406176263625448024427561862937825013189965550259393705316111930695953010857272594914559508555254110604062809531799232027659747524053026700513391539077124327621552631225394461344942687439371183658550410461597582445884711942398536243660146935538835772450168443773060135516254322137961356750922627554590051841222974724879002580987829937720348215153369591032576266754317602042606157562297319598599531158842223360921250596388904822810793267818487818877339811541987992951433685774559290843268822085822486678643155814741390400739043186148454756165643733607421116060322467941263571914462364683626163227531237627674301413502532571337780531470734724182966142893925772790585589197998175004881978512135969996729822907428873111595025895871536071744262334474212912338152685835202420396740752617947089087522242565361985566529158638560574054499190658094930086328272787055474811239864334389612747878739193087192978001301993212360355975964926196475086058928011973269006296732929270046435936007135676051989082267701502173314008678451470274163441543379726339200343271827966913867294370234390144356997718411737462367591672114344000209225688686781229394118936730551143316826360431495470982484284141868137814101060379955956650594182866468335035758333982127624879982957702311684884402452481820693505344236762770339008039263986413052926216465676396983538106056189278131223505522409914690637277426263636940912477133529849254563889762319613306720351066703006868900656462816768380373035855270119931786773845736832663059795657510952532958202380418820647663552454390678527070958291215363416442737143925687524500930478860591489556765523456188117977245406146403708235123170023556563363497532635964416915037335654456053318492799822942753790512695664673998329265337504490982413177436954723224739672568556287938393674230957047072305365812521404597561791183991812154334909895489850261613667577138113277093487839990383010191836388996104098224833055828468555074740415136941021261630030039891610435352151927556472543967597092764451378945384470043638596955405097745261126034852898459153261773452444143039910258928288436831500323568518467611092510244433740804017507290722892753632532641014860594999423992896804140960736195932490290422008485329593408481833719345648762924682658168497651833809773717802655095820364708550386640644136072703966403518811686931615143887533095102624147512234780398757347710679211336755839607618910384220643595573616503127496401893081012991483633493256517923703281607578766139866117821146751821906504418484680100758320428763703211046233273789705376226153253125602189922384010264316120965401898140923734872663977582276874415445656853661657337786119905309676309941180504306881584193284544430613576492962687464693685916626976263018387580620504525466539682438927761832106558658034462661666850632772393585604765647327480054111775995861597827753972008572543193127012519950951901516773290561091672097245208496275128972075174821436872526957443143525623303764131097501782082897136139870986793290483758473450830049969655340098121564015004406783015700877117482626450513313196452070924520946795474558126990339723023166254554267941508098167636355603131710959681456022556583311434923585720563026126585753198977713742778779961112557091760384426766583151702858031682535178733998612384341062604882806451589322982781284041488433749950584879048898744923421344888814549893114507600505063920592367451130028547986850416202591577331232308257437905255705201089684001840908091209757732336266977288661232332655727762891203743114985498310929827601183614550717370405655210263375522479268112968637885977869912436826458366570547255637546342981822463020150993407338204215652575105187451176642532228595734330910405194576671892774897709917432613514804740740288297554324292763192577379614040969878698415918394719649634424756154775559626512619148905390947764985025512203313056748502883240814245897976728758470921291358976747918893924018238068158680639242037412149174587201904630062461088074765424101031297582948854212589402832141439286171297177936890987875416818020019133452490277169698874109754893099495849532065666511991872482167379685584888538036124960389693379901733172235337096058455333237642638075642344052140000104035126327705031747790830032658171439614574114534005342968692841941251290521723577731213529400513765407740398088376272830879900884743072821505622570874164629340220300806483212527552010731136970079565798270856309982920856555269871914760846158781273306678253339483146031938179198758847560120948822230264190472891424013164654009680656924281774608790858009045978650546512088107201501881291747943173180750391459358599225837550649852967348337728412917453263711345620724590073833545461419372839570578112063613214821035642000613540967595461074162947007637276318517437365959432846956354108331425075238709941209247649636156429302046252067382487783026581026928828069505446366356170687124459380944482872906718863612930910356614133568034255879136264764203935372515142497024585086818125390188356735086467298715169768487549641709157190968493189392663119528829095099892022688587378477390197873495594105443485418933851453707122813706196745544904851384321906760273017501043570851830421389356217202566449244648255774612085954524396538812441499924569116293013709057733942354771712144150986475919652318057488999615241411003508568965609498637403825434389991119987847565090732692670821924472080371202735794859368134458088631700852050522024230124808095891676875790036251283518306282895844787037424383737580516750260540179451945717664029173880812673264391440523369000819953903174994497413567339139094605777656598305358510453592243351283607826330023244262867052499651612347904032295726131021423705220225935860848509483286913891352448500707074973071989745424989908124165906498886321446804799256790094365612680628434222353583270065110294084117726342916370928008177124963491418989124296124002594441616046402312163381075670151856458732546310231218226995434464058736553828256177161842398891438236428860647703421813213461113356820087853856447586049333228991363719621835456068431392691922806005727546861668061421310056779837394032138820456249049210523213564925240301398272950260549659013976218972917993421694304192424823693228901916463035715586361447772635760590436132708284526088370079829505522884785678261980114507352327064049124756365442970087107192673078074584717331195884127892611580217730427036652181302240318969332067532190659923715160266351982864268762340450765304303445391578005676105467640715765570177421864034073195288570654831304979697744512942623829361153104263263708247162132717711897284180768308569539982781874621748574007880053935273157083689755867733563235390308816274924535382816866658948385917288608659275470448327850086520107469115179200507649980211473692345368714935208540293940772167977262137598224038978361020143545944855265371791457220968163290865588834526225739929262818392508986124583981719514805030743826160007669299293429985738946651923969735484509391749405142794000982684097593823858702054759153039364577055058441620613271551201059881989814519052892428904405514735414621312136305310452547197423286651106250881021889052059451018783727297103225651962184859805239715054613303917200284292241742098755380657877360717297814508487274528849892448301190581497945690362912017426015878608873446271249968165204043963599599217409673387181748804314536379525984475461514228086713000971418572166815794421385495446343135348317162883159687117029865019381005354860780613571117530458938190413723655901976631248865689147509032626949233460321251745694847356617693688911779419093788655932611244436262756463076219273167368002829948944555363859634602312503518797282455516384398678680185286030091409796213044749817258619319254917735167449256423657379081615329758254749367065497902277954315856122257836138276385075150156075440222360111540695472546067981957741928657617684319069483544984882867643275877615003044888544054333102535108189031844390288564844821102705883578959243791496031857431770957757111391070515954226319095647582734590000468724546415395201396194778036021348234149685811652985302210361116091827011245493815473497829603441189081224904238553338261561339451066614052045612164040393257326535505636304368494737087204491108648495554491495883974074341154859400123038669474779972704641843308277476503087009813282030644312115645254214576152370401408833547012862914269071261986749253390028172088995544990598550397879288982624803960816002297110548044225768161374758551540084819962058833419648497635708236686666633203747509381678773724598016476582929364435201309231132119789068331770695823694447709644736230880839309921570132145030197956076592185314258817809342992996741823275062085480997295472824029371670860694838088295540080256071714042040624231906853523930665111814530502086382288255354861426065712534696469575370434584820771997933815834506791026312292432295109318162762070506109350754847800210905520890601222364149837643962545365585862302607034828257463825080680606093210121567241507260276674743433023375730749546216270490483193963217199784398488210885519187519981273145759941539148307319658027312968885358911987408922597316353639882678959481747260551728100289573555800261727351999604939560583962343745616540516173611275307047419165335716405365117015936648484297566520599790393910335338195762816399135916877130854900930213333046264026115870664216974257728380561069105882957678712046316077331814936313285266303330117224405807387566701982888138826491257629987702560485088586443962388193844197486687607463982788802071243449901478697386698419668387520916790883781329671920331934424323446344711263315384101644996196052255269603800191340401620639444064836654592972258866253275440155527712429381161428502153038037609699916112123313396049396906135799946354685973778262488461103505023125428059073803190804846481802351592851238755927584259436499251821854215810905847938113130811897073934890760972922536354492661035540599573805208909629870170260756765777141822000482891479548631991822418938841483640223600932925679633626791626532489500434018225294166804867885649547368370030851616497551215281740375140010117634912129911896200569821770092104795096003614110723029837371816261240658360223901014598362339908373409909504275984798005211811865218298264198929978101995417181699222964431938301161190935029048891387068347825775260917587345251087908523774976652734419458128999868767959028129060095395031779512627820332317754910410261882483413730623555697375959640829447300592821653860927114251023473351984110909123659710630648128838698069555975064471931467675833740933107895837162827665594035225374979826866295489713427687961309649710868931135130654683318039596017297615797373094719239514889235102579150228782932291308518017039127343738466952755634043090909176757236979346567927530239285416323756736640262530372116092961549773947841098868652822251352884345516317119865357560478984148110820995523878681315472872940509848721663408215802400342767915822676448493874339409095128888091235354571866487323791872908790364452694213636629336153379080433449028921711792273980501900030603255973121139704954263184604903737849327860832504107052520026374125489430687991915083917691857144709509371151990488179717665457681969373266418751550206768835819204794734365278815938472944596352845396904748654603911908921158301917958328358652504924834046681424336184439229289348427698908102258635523680749395439260817819822469301783588722114936778921812386127609263099534298829176090015077602734544880108887173219704082659977444784255537273300436491457367729419763843055587894730337082139201601824555462405828275140767609752825165441337687840396130384820435305956150017763318031248736739319805867739803112358581518784841495701672058121670312723726725508574786142954475669378776197281402176436094660410886667033096356936249901221820495642360831655494631008478821134272566459455628053010220908156906837008116786555134563659546074467217430027048626769290056215356562703606117272335044230679914659947379971609478942601726665803349705855687017584665039624416960584177803251581193815814736148083207570287834033746039671781153076148746872629309002586679454476098359510094376583296882297462388389116760034636986110632356033706094344620933080844762759926977993333918148669642217373655507674663305053704776569664409210336130866090948128163657180647957276825785007437228156051267113679801884356619974962166541105268860518952577956880739247966283959960814582145937472100158719609641192624015364417772697126740305129029104572684538136726798221907716701376636992200446343690234501349892618242587441635930624549916610074427785004383404535295816369048483330886968991953110624230775827459015164524684296786335634735011806785412776234431232804754091877576373754161814227409352999191390136658871917065069757460988915968523655935004821817764242377831160711445162107351000385902923496438485755153625409364142525138996401604319788852791686437416779072416297813663517989357155789777018840086325707840873842987203822034662520036625985899372720052083480676748731115994027597794904245860171271913705983645110603512566139368388791776375931923707165286410509234686090663962075614051104150593821522028665244582440706997883037873049760944877939502374654243192914968677248793711542788727978049904811801474909303171467005813604461168091568521477863109527255279964670076996884180126197538267793093633475463568174912783336410660534862375002411408266125689052900899516240361408610236020181924445802220906054382291367326103006822785406995298837105818648717463951815085368988578971093387336741873252471645785684713165419189529623399872270551584318558221349878592394866483930382005918656310316384856010173613652284776684043165778745338038465633721014019703556923513091183851829106154467628466660686946541975446173094320722368550229238064648374084784981722337166522063555430874508362306037740623421327978654144039004698636810928635737642959449846549243924908127862718309710190876696586230932907544478694257077786964358287636655465975955943671813679777305372007883809549198790935749881394615145522696275308572652996740480261353049596332423174621806573691415479815445584474396945885682534985715497012523455339241955085095214719961165663735789200749206206125372166510643704026782300553145998691069115967268359841864284353584551526657640779679474154810655581221521516329278481032507791718833405879166811971329338098651351673249674452969982255194788783405504933933900381170685610703692085865057841332320799978319410336295455031324792448472702608080730419142211377007543377719574372038433080463751232265761688161496099223379162333008279075740141484393913271287085033615351276822209927778555990338761774362779048815573428699189400090354820564740396836807660569166432345333282310787470233200687959358303421645343666382729814683329945920549593905929254520465817888308049495153464725037676365750783067577448277147110286233861044361692442130394876776030637073674779211429516737772931944156180199081054249686023552878626894990773271288578519071198344523550257291606546942928301145059139627255801672265929291341327743051602855223381329855612468016856652982613254671402325493389735556061825617236425280205109210932436584824151792369416575754052805246455476719679663138521749377058623754819033602127291752701145006446915957064096489503560531849614006906776294033573150342913684406069890707112377913800034417050559977657509874023303425654114751585764618095495867596805357593297933387050312184787907049732147623479209659320001247346719805925060983996262880580740235611579936727123123323751594872286260205669501348557218555793244624879660459534263248075129309793567928769339753770517570395295271308483595088473960054341768801211382137174782850234332529688304433318913877198238392169854515672874134734754545384077958055032368194723408659778839754791473651174239254017010515889111408627428607781599523334354121544129108554863029877685523811215226089241942477018190665180212256502087787409670676910220693632241770573368095877837575163420892647521622721004795910156557685257710671175634287116951868905062813761778589785613057537452060295836496792336052811377870220850063140948735421034228977956168847900854110641069105924458418488947263704191347513746917532510352889207044608111750593863008495819958960367195270620142399086718477545398013702229505595264039796039967719131149499607295201746038993031568802021467850354792889008841812057786749857906575209917818277431898956884066384965409535661609532935921608772493629210053820576927916125802173813676854844802556798996654010548681980428925412381801274008753673152465946240723417810571940478939957935296217445757960457653846829358202443020518491563930670234966961792191303017939429492155850815259067345039453413215556760772359208130690643495913466270088602256429731339417941334133129601863733627245663714063351665750976496628615348500769950415625886669545684952315570476376105863813285009229887104856415902339890043629688881758902230098047668450295885585980045033994464642472554352544105787135221723407108159553660330337674443458957486033481331342664284749846724488429012932618319750949081389516284017073688620840712377970321700224042838838632310346275410908406362575636558062621047964490118398309297449052615897128886679738982273023340913139911649876918773024141500572088925856734449265259827208300682650159073085037971466219334057008446401823798888965800058909307383719080547193360245995747181068303521289332043904894630236165824149574553957754942712008515965015449372611704161288813347532590081695596718751076436786932711959578316777199234457059128705239424087199539503704089455177953008532828295049279645415202459456798166770326894753959354089467643341278065564019374428317836179608289882862182977763673018835209893569554238795387900653567554364944095590357832423164690638933811426006163540901517301777801807889315673642834238754280695467679180135987169042566353341085238712519442777310240343485547476014961577457513598300487386036167870824237698393367429671565818843972921246733548300597286196977700207052566917552315338086410232207298734531220911895561552074384043653812445997398932872692719071026283481443770518755986643826782626223967048822236148114460743192321602318073770289853863225914939880275075833707799326553043115342405350530558378722652005880323644256884565109326143878998668894313589453273642362689782979226301615072535884910749901558500849721301522176871630759843331697356200369635771421575155203122707246346439239721315315923008826841890188739011251192767200035948269690189066191906194697418848574725421653517516365399109136736168919997195654565232480374318198362273391518457082689633374401956446750845156377020503267010894115907560336995036409568939084491550008535379055571168798146087999893471127094151655042949061587138841334684813334322735022544354593456226056911655122667580361950655427721778797952318844023042528300073637888261570885364799136110957391365123702908923112254968910750541506754787421219551057724991863547070228447411301310283256015544997688870887175410030667806657693264047701069709372953846387133056451181714036987325426096007877917011961432179762832438157395706207040381373591616824494431760208795842714921875826349709224410635412720196048123989833116980435552301859775681033949404195115045975208228528335265620057992308212028507441589642705040639422737449824811663587745377337845571800869449714685071260781144177861396327400211082005696515010488733765224295664836049703130096713393615611034796621186428263928512005505747766791053110910554175160988481289498159803378489751395329327048453585489013812524153570118156005481070504836054438010550629770568185178804839276901525391357591686166532391186522234009508980065406439827594615768250946189297802391002457906676021254879178762289227603273240857865463087315656094262136854918869085704676779755014708477426588932193197431103072118464630194923101972818629125432834547613311968804742198224656309686064720216576575430316846076864509465614529960616888160516606541023106487375009645845897700139826182134412174552487149519723183290609582589669527333146843028900071606944764424533285764217151388087882311308343003822603792721894893495184516919822696520499555366068461405188818595828370433885332157168532696728553314718402673938706550162091956570651846858416361047230721381584908883435023683108182767480987315049713976201435937398692079508481380969102057685523387607271214917632979121133214451600287272032821801706214011275207154465305527170506394141783634205351512931638504567630365679701911894251048503270375392921695023426629256636828625113909420737389708027912547438515321176766286981980437934537426541829579646015163228615574759228845769948253312229439601460487562689618297484828158701515877562178358220350676028348111508328471186805990666787323405959293908423345073979664834750408809554017298314690296672600875974801506508176798210926836331522834015948335732036325929815779172989850786987281430070320629799897633030935510205047355657731956607139715292956060264590713337119049144102183042234950831623896691467066071076519429709380497620625983102950958665580679993156358186276912269593947687160579013116104371836648588813641230683587659839721201185810857158481820694184324549692384259584973346975057287957755371405828774389696356655180146471492732990113997804680765453461208334464137158329703491346205055256966345429529382643429225287333874312974224637693320615924207783012608623025999577609508953657991942175388044186772015460997200287074849434066077504377464146575471936946220297117218566961195709719682224752633330612172800478969434183921929627714122397252715198806686249466311104551000596189652635436277488005460148972947788197734734428202637425485517865361624360570973066584467672137826031015858730443189335105943492386405049019770989226522718638968313833389987698307028610131557493433296365437688632293104362968794520614136905206092802343681321182694871104635717773106509539404067029520388848181588919901955525983898820693297819278912663936892236057928595830713175208790991112450671505243406595739198155959243965801668125775727312266820672079289512119139448937695475190533899897673279863162762510158000404421118816936727338129490082878023803149765013069520347627128206270548490084819900109469503632842263193610065814524139119569025041887069998812317053332467003907667498421195023271566042905231141384863333473699436378518289265222551221106948676797953581832015115146928092556908188504610483016087948517549969652647571839672716913603320524910848158184241111232321318451857870381624620902904521284854523153996319749287161646416385602877283568834073601134903580628852376116968425511284076902943081862226588495883617011770285536215271373762938659593670792765910869704699290840727726455751406886624645029302386808485671308204094364884848407134091912737555672395869179310174291852837599725620824968147757758676467518494041521018327751099325540246823616828237665287500706095291620585118691651319106800727090092841913292011074068154927578682410730835382384662613797634307666305161920076926071878053843857819587115228902513936155594984631389244657426291813536865336216262643013150975924517569695877136103643280249805999316341801937885923440516678438156173632676549367947596909082215905818449068960513965659243099000985409663696584933651391883770250528145682757375596999517374251369400706600052534511174973679866772575624940339041461776348109131599421928402970394813165227264994356212822950011736818476399726367697586945792854455700174113938002823596971843952726231032616208352125048267348032921727420843365249044441297184741413102561029655749182428367542035756608694331213283057426741443479756542858558006548653881296656494584123791503564352783472754947332421756074471393033219135678728674177274835307771125189253797116840146000661062668218154185665725544147559479544418450818566047044909005354564205373261176698452910105034846770078149857433520553631795335753997522814592074369237436362451203198523532633953185688861277140596113273882307418289806476289132691160547939912501880661675392858236923567443695494230512775820400391815430132536116698085639878415633872895117793186710348220714579562847647999489903521784495166943962533825442019640530653362750159567527495221789833246258222084153536551048449743699304603559299300696193438035268243260321381027582322400675589162166079186592186362140552229182447032125410913735783203493432387583582596245563801734065685100885677181081065202171357573072655740424850726035204753270095208603946984266862627668093861921288635910370601121271353022488348780466438798044331505716101347450552640629094393517440760725952321673307174877191308516859897931640490675964981453461723381112096566041168511895315002315644905317293212119629057242985567894555884677296663666153868980477943467435614006154242342696206840326480653805919536063684886370798732259848195784359212378734077677891518267506362661803268415843123774732915918717128842892107609388519296605277325021359436730069039629309622965020963048326859654889065170355215796734352205013950980946389730777521992033516563512820150081381356745530291658133784793450564028191173902201920063339836782005632970022480123196302238341532869381232625985764660039322060451481222340213695274385601835100478302040095828498528875413490639677690637032005942793601738198152207439325505798370709174265496778421497999616492253269116862796220968513757383653630233956592479641398988220245113527786292149926906096804569516383861374432898814032476469407789877398940548497081613328196738519055812373627501063698689529304376189452949999953366316160998115627836313426584561634097921489015538256368734532021066793044038593371464851237240985038432222764504449934931732156812381737429306072928649179617970917847841656734702006378688874298816509511876356881316908989446890499711717006709326693296681279720619062206456725106324049432915633481218506352548022352037628445734350829244616108561650814081968661381996147750493250047946632332046534361577354848786548608286967902972499384041776790179807918026518025539995681898699130438915461913059201483754969061279066105129886763850458619979595041798077562343009336822984061486796417621173583960500442691084725889174590132732130055155340758912515876483051868525441256546190927370356403474312688598263458235665386455727084785454587998736599668125092633450368901307315738817116266977431136190066672219325587122892082058491563608201052209565401913790516144638994814412611515706064520408077656154603509269441729345082563440731422257512670458060716311815398943867821560562445933262154430255754230290610305260777541104916132625868753575088301269792949497971658268962732085104376962079547987848272516928473083589522608029048863430240441366657039195507204981290742504403570638556236992656602474677503372932292343964066132218648003809378145330498620182912349068384876956789357260091151558452863358973955635571164892601605073746164370299007601411447455363999809015819087294112216499857800934532166317464757783895169841445059918708505852182050475686861915167979020343334515825306351985387433347330720457708915742327913066541095429726514101343511028450066103395719121934931458620683813667129636037968917042188250127273701190981074987959062519148903768228966588901409020960373417279938025117093123446519206373127580377467749939071289106031119176780787208787202994600449158073453696041517489941533407268698372046509221147032494005524278776836608935221280583161238833681616114864599610567383104096024580687706795035174873019664349030868105690607718060587139958235718718973371568827496640969527761290138092475844032884704945709273916553650112794443753981400422429437546169762742495334407768638357632612254088628110040330117510759737788259087474266928767842609494377740258203465150762376200407233914049118118380408739036140534869849226275503384101580483216308332355389711043944058761939634800924521059951122390422734338805263227265396594279615322865564137320701750338829658943152309879769944621670751867813219071120027007578172237169855889912168088276777992089760712848094112264711096599322752381601552198276252112680299378123100653753046096068480385987160802368052590253207267666842499961907920628609220462693407241528233941238539007560032068140469967808487496197477713547940567639177871910749800826360703047915612001079288126519984442874706863286275993540992092861207063178205249375303766355232756309816003273595321744173922924441892020133231923445876816982991604526259837185920346984100165971584093752162238642285068310822732196270529212019447265101399334572356657644194429342408132577891671059401801607947794601327350740999759104661525861468620813309662022233728339991412699279036340437822933380582523749069819306634129278284709011761752742711266453038976290455184754819901667766374436315490313971962769474286416736916120164392769054965979371486746786121753948587689343027452820074098615631711020647673823318345773274737532224386680160005076626554683491524418474607168287909501433378127898934029262720855743890796341955561875525803222494531836556261985396206548343207195756259291040879494880307520316341513703658253756995832335535466209405302155069011402612094936297043107724345441888076660496791319470331015005058855188433984904487781632163738638568268538527668243499893088820377011601280840137041058481119080311879101945928844883790845971016600704293691620832364657500785163274600904379092650766888695340577322744608998397968475936576556125757230949428069181841954868859801124054201091080288577195380671688589161988343149684706703249988889814635327139881662794773962495431730899588769651222115057217718558060307783309340843598965180882869744501622945009599195694543702771067302975671887827497604418664936001824093750978676357462664014488057104951479885250159849446330625335500946842972864620792806811299866108247804660130145945370376096666730405220361492907809945228005798417107626411544626627289934620523169723620646235864670546793893093803070550416680140963822942471031174941537451987084835292101277988443696523972367330975478421809530295067057001263817541865893729961240047350916784361496591078532683155663277777136627092168809058437061722131990257144267178629040051918188051774279347953430052298659024279248134411271484158200518078139533339003282891331418604131558700940591646358397137262218589155814938845206679058689212554690368103775300144617152518800392887842359345509863362006662833481423140938443641054292369013059324251654476459067175003682499451592486140167657893412962788158708703050997405777955336843425931266549912956070207274981210323057423297085594622718214615840083585316338957501192379341074586778741696148835339440948202964286702074952153699186315680092134040630093998451761822970991455796996093461948663359643490047209816081925059920342774478077947681234420723534462807948469095808640878583567838021148332835274391246447467884226033184570382056804481633298328487454324482829374127903224284560926416980784309501652792907979456685797317493122117421553940175694169560422624556181856868029744262956529741208048272627774760087582127359869526481346302854177910477442568431554456387957243950975984959479549036547010825777806246894672386334762666824970016006873238617573852166254245097492853161272183445811735843734801947134674389011411733490398667005814980074789023815435687073101417414370605036636535498109016702177788887716511513842068508480801426717036008047241872226842045894313676542002750187018904560094825793381064395314338930915935465013128436253536109297212714939257353245919716103328087072169137052801623660026666092623168820127949761305539873141283597896777505633596326682593380164552725892241981374625496857499103010012884346726220429218333276488825029029410077814478016836932119850965416113490964678705397013951669667902710054574978283448056277867879343717090074088360795842350156542859410737110366191547980660091457487231848658661557976861429217409698717381563731214378882928448665921020038844424659474516964230656646082151962464763857494341477257582471333470395900157160625475697899993417160256221077997562970579983171872377834125466094246101242596066681059012494596961110076661698633563481499088648817713277968712670787832231743542424172834026017051846983052426843397374768230485802483235268712568714155356317946296948562754279812722905431408694103528614131240913234822183383723594738743215186165927570706816507037839783911595148074167556939747855988974555669907381800244850743472399378603473189672742659723532708479828219817587789835322347468989757114085094013613712285735586144886070804092536963674855826163421247351652010946165778228724590333428476793385413628520661758591569245229037486156505861457431357959271580514491912353193725838897396837775616632348315329331769933639265697292305936508023445944058385525794644196540553906118147607695365156941743115370505396430067846408809922489566937453905089107505202227152782479361778461391485504661476241903005006528792364518105817697454847410674884392222074805489594860069697890372714549742102774196708857026056273263270099810009478131874759358833677722499458250191390941819086842061679910014091106784550971655659211837836990910137372868141188328721143471690418054743439412192551541688049693836878397752361127759635857118807232252886513383527360331898625886383579708491999327231252048548889074720439102976111505617774357537047577969279209348394810680489494046561176662209650115118823849507464858524220993570654009108513438347256427321289623307259770808883044536954235618354206335541213220058944409391410000192483147949481455870408155462696984064970514958294628551240129653406717040757694354534922553453840877890026536193639188214099002985244650817316604108977282626173016365007964565581388338892529391852637637809454733750097384550676702153343905395683749595665438735051537336074790283667340401965439421576680625242753129260287380424096675182047837578229705037325306746510966143099058181969784009503019602318714600323424593654010997945075392745505320285520951857447226575652699526800256402463781696745687671212576434557779619290741478472593157530853464892943188252549794400894137728880670437073237303507703600488233288955850104708239179288938503949736676994059974728444811229389319035028378669955402693007807649916115268212801412757296971044656893976655316782956491082306263474320908006156721716808790038972790071292063862334709694473699622309830809030285456767492198752672800774455662390039212432736149594818807683644541416592157416824693590825360702960896143374529192407078632450852084581202891188739770048106378806710552555857702716826234046098007389001888628116348048999552052930459047256848311590195706956094276077542007328787493343841935920984283681214819670862236167444363420787793105921844894593560821858572553540951376091730333504630031713381926592588740671996773357971784684578201679444780913653224520677641437867844676414349229082359915707077684503565553555951269782347846266573297280484825603960532968570664003114955621262702987134017537983550814770974895675206896101263523486725868848787413715774590777213363858242575010575161039541533065789179551379951255061744726532166683606214044700916664738401449332428986583070511026995616855676000016287505435185410878389835906725694729682757027608446412153013119665886885875384655101227024685876420650435816689725424589910263167095713561813506813692851733443824046769351113041056713843446240694410936704297469800089678299190434800318871719583268144391789353798447420728307140908405072546294857467067672318391779169605381154435459268774031569207540959207602830918227088824872485207036801908686768401306363212492923981202960933435403020773633705508185531037073237778763283666048921014515142311359028598914676327187932198318199955279628877175204872889174723907879089073047845498583461821300396380492885407738865147765933833109807858725737291289154909370165297401784326434218177897408338042833933965205313162980702282540939973991999041316418436331572719014798423196540613473862953471612937576455473168806714134150568155888206483410899593770358525356318147976514950012155980568032114615822768820546146570374530506828045348707599568714402592130344239382101814705582117588332330116333498824943271343727834345058417335385539173837311056069067158872964020049913628514667210494092913192358694543732571847365613037998046642991826224321593122013208591982103032315548847802285364263820349110739078387827161321119203042544162062601052683743880363958705003796222403206808407982612184014956457060018277153665873790302072130975308129973653656730225541109596802580039521465297645714247400312223710685577703948683961820854968667048552138292629254515333466234386344833944863961683678355575001146881206286259475648952242565162746673264445035032665808781007865305625454829231847819507232417679222707616736072774469132695883003173696828975760764352687249869637258504229932622347021406783409320105858139382034136697386307738096311366377795152002422505553697157319350683980550521146365602137987009108605987765910574448598875757161971133617948945641298450378131068040560868580452369203383211883726082468438179488447040500432323249901032996826469010864135757320048825632555896960201981378710790681586034044179331691594635197858436196892002174174038637968422334780042561344788341165336291362369739921719516393374787783712219539079126686711408048263579790316081117611038319524948481302315089103420812777082610784963684562128337435250339192409509045305587275172976768897747999968121706723724122828853450327732381377624118639805914185638838819093250994267204405693953657719225950227222338696488546002566334549526269767026822423204465980425769616026067904974389568295734900161690781058776980853210371617990516628295804079224882773068461953361730046652956440053130801787327601260459944981092481186810113738836667661660774679224843852633812539363406804933045448414855930262939839328045112165796160177950304222083983131643844296814577819202548239512671129303943706805288999122922077424331711350735454681751084323014131084103173640297234268591081707090576273414844922886255664112917437151663422992637821849144151785849534176725885595362880738732334549136297442494242403498705816850813404696116769050773322701596084726211575175153712250178579078515753083971376095009153368233813148644975118833345613019742997754003621764217786017576819755581060156250733144575874107726336446930834187953739070455452050604224395692245661979187589160640305811579201218903990254787615711202849897037365029379472088523717530424274674201500750211397123127133733142824432487522659571512711768100207030299722869858962562173963543554589713809591098762578616154119053551610300526838137063251589466971453009300577995353873708659546679918827804670222841175752379135277172903575086228994688785064029972991846753698315398238190832433350916620763893019425618850882567094809748577297883918881884485424785653660734520875654638181296941458412110641305781616697672442906961131042706150354661713232337086645398112294649376549347671765242147560730168518178475689459503581262342965488140164249184304053929743979855951204310200179024334235634885921685936081425454730733133912117731241307512495479338514499590039593949902341073336439095414070954902182098963072759603566057209764803520919962894790139853464635458369764246328267422170395106870458998551694430639852294581554700420129876383395433751621572282532358720038967960037555828824554949641045828569253381468201267886930592469639801098310148312375231532376660639655863879870797789796577428573011746800612243759082615064690917459927734624012173434172508795145974742144579109393268444328868587568094718977559930492638990884621791473627959693215314771014315994090969826798465493668390470704239391277898142809782381186573629825690672218777893651786997602130851132370614723789169408005802672455258015424459181020560696558815562925817519755158735436762993987637878027314969514725034847141498279892519459110526058346330312522701933516135407988470930416796985360193421949107521765174524241301757149645377840277645961330898800615215723839293539289089607676717763590263280708296327186646128375543266567191188539986950610110834497625629472303920279645458507842711858451168002557675024768598482739476639843511057581873941042869421906403627887893796758406235806117674468341347580472280298312261492383778370799522686158387458104215636563427493585073522351849533747938727069022750475105016052972232213931571681077280078857133424670487081694320573512466689165225393344770387505626051586878480892995164933823682148597389550398305546982805092031034249680200720115672204185272552605840788827793725280693425619069903954826672555737013186469100605068795869235609051502283423981802922937089875281435685678978106796883113176768223084362307831502092649755847520576395879339971418421469047783152496233406043594747826960889713217721544205710565747349368999145580494927025410121158963204188053052643622512822971061927873335552597807730926273548928659695814121918295252300407495626323476765239397568711594882696494174406694850318247773621341504036255905241611279303553397498604668025298387970154610769137203281983670372429718771652092895006595890049876361361520408734886127467416361429010269376163516959944957476658973880892077818159487277923936881832153633084373545399469923188463181878052882630376459212014157342844347544732244482284681505514870039053393290897816112163082364383187537364073215816216611460883405710143699292299161019515266005835877945517471110605471518407249790683872694994399653804826456695832108678710836283601152140947436705372875110812144618946419634457433391426096080753864160555351947159472820390190146239571214251479435080310901039510525938637284933413710056813252669733805615090877397097785959377526464828494885799282149502641865225229311348631692905763900308413999601223853027464707961861341448700279412642619514327315313201611476527021174181944877921045175575942027542283935604765740377596976224863864456217792662835146178452322004956245223415815091159395279808907059985117779786206325791865197893572237353501910780544045791048173698428879509888451221673791424123709309107573103198234097565154515220701494387663464730687766468053884239572694368416514015024100580941820369714247955502243948361536872371462650239157462996718079542505433196295126247489596423565415324697248174934403865122054461380959094393320157159457742623581083361354811358898176218376747654338825976310293167082989793623022447229886785333615578694693110865065489054873372837160090818361651705953582276116530785886628714640385058553753324116310125993684664636452042150114315468258835491265714757373995574853271800137846216562337253910227857510982122198503594266293493914304803159192209095633111986360785206734448767943966753941154539856191001364440781215112145611162447866463831796426663073397417021192763166991391397603504951499318642872494709050849760306568813662329446912047682786901752532318455736236445923558732377921299152087520903685659716400856857085827321910937816622346405011927079018036661658211765668729449503633328515594906668550461410510575327696049158478041962932813972588868328902887285089921250321071696019370854964023445958482590845886252933816176758561807529200763575418506897305889212673648483636230680367582984617115618606240568115615058608048306869660323278632261865390093911581985149196493748374438068959737480251088466188635554234995625726377289129518740585331887220798835094575819711163581609205576838496168882549716714160032552276684891326921336830781973627073131102724124648292828799337349976101148685592514372542238767863838583270112504084101072288197580412653324307027111622356871420811473729776741111079204791493684920904419230049145903266524568144992766524644415081659557354273268976130272680113442761045460755995302100344036055661810789918860547258028496804025537273562341640342513656063831429952925638183480047082395372784738575468739280723175303000628581579243350439241676150683863406034001004441348056610686042106650472657398963676729957941206245475694270471417567286512454298262817996462475763803766243675821449181489652838282182071373250405615400474558264805844093878486221974215616589901335602175615981342832856183447299934057437171389107162612591618603383147538236000315166249995379087585362472144006502106634404596093096357150697754913154398813936953836264452377885259470238629526618132668690102538512044152511631682830488547901607142069860962431469244019230948181874352800109161046966095034217656018550471478534882180766261047018387496447305296974642128428060233951543734043206080978182087050803320986160998840450773598193009270807680472473463888290192770796306699643200377944914324753524871679406704913159376397056965136204064415038979043275325424704763888406938843061791409211798760309636158096757253886233357392776673168767507347122550876042434497579340041792866514638949006328712085153622348375585294356826405695548647441761429786515300135845634925009940064855678072678033619019374566772486620949365776317584697244038236959168079521550101353654163661644239832362742161463237144083246568023722798593604595370187767156338461430533685173831147895531682234393488959737222920620028732194428906508298820066920477857586819023146782737552009528310967598417529627648582271386009974635308847199264709951477781172262281197867144011958870347293541585627821065737195369197992698076637285626263557049504020343676043931772161057384844541485229857065555088864825024247041326114495936887280875296412837911596983260955343290239121826789476148780880167328283995122122961837324653950361035457482071100552365449719039510206587833013911512232945069498885124539901764988490968143669637417498128386466929132792454898232080542672049627335102562326887337724026209294091365125354772938705896714424592445037516248201564867859909564506229961700135631538066646067828439827548126048619470838245344866449741074563743125187840978805999634365935797364548494819770485627243075636569939468484151962608585041107417495298554661066702984792020818442534262886656869793685621912175525220138735195480126473276784975619579999153549278761963659905415967433878988935015484833172637595690578224563141665620520048533229104991641885721009590601749651690543753800229624338724031199587499645110115394050071143412223786383461194397707994749404951701455137721640727655013799819531219192551488575364999468583532106268755601642980947302270633657469800195313542744176306214770596964988058549439650969789293053396378630128736113540272119318014437723170326850594619606888370408468879920848949389195009040684871498776838916064861848514249912793136872135135692644107637999499264750904742234928718121734228060634701679865479137531845784845754730094844630167167000874233805684064082234685234877792139713462433738499278428895842976143987128073688317731021338897390434706879097874046245556411102288432932016129031387668608402149973918466131862741292671601339286024994237896471154122878494674332665297414983391537544336249823337945502652318537535599108335888927988012005913019566025357493437768951410982378961894621881023437948945099170557179296169017318410463320126389312663143752037581825234833253560510940668987223076509929445073938112917660640543497448467116402400508253911073015949177948018832647494681701293798895240204807361758691485193985781808382325098419714721794265774630158377896364642955453076935055708325083510107269820480825263442958429938475192390846849113857645096432817495630484516446513038810610743883047819746253776996515075941385994291283291275542802983712394263827233989473431602899278147035651901380246407290799691278483018644740226947157248597954514408067344022918041560815069556677334238346440400792867040311151326915447025559552817372511811864013166842239239432480859173384158665259508334660609816169501878730809686505858878246715632458453186903292001193059068400823224725597543070402555235164430837202621278060666430964099502542834210821737755463333018870999679606867597312196188330423281678221554183716299080766374810548319777100758369297443151311365615704180191550020858319034318223913858725626900256439424662150526014378048403298048432893910998342358968413033824907180057542620589433739123351892892080228187481289341582163393143985524396811349165753435259243369365506915093924113134416843253311323105654318855161947903253896864452054662262356978307508209602040524848347113704600729530611986199344649330718744854114477945859007028475449683363912072712514389886813733983804056536461456407249511307279355194050904554995024839140733869314555864438707310874211881750062588600853878994770398545190697385987068114757691723454977197819912860283888887177520305693709087821812791064272944028650252333888309552625316688038751986384296915050656251234336559147930943039277435910538857700434488153389323617705502838150679641991765944751536601073565546020345709579315852632618195906501121774121799633449287662070212114095553556627578298194732357598752709174258183502032953931291061471462825484547812819379451719876141394160801737314274297483805083301224487761525137437577517847898813015682462158108765533235517601996069145605534000713914886598114280067968959442588171584219079356325026230361264533545888728165809457964573211704255377073498234989912468958101444017440376493288399776115469242088583879854553080821785818469795434190437589043507291187001477752676655982297367448642071676539513737178034679644254252312061682786195607286075006293493295291373468002635790685033951497226158478142683946276832907752603529652503509804047304125016215814891993631007678197597764761790732683418020608533060760096010069577731718693949721823495980660320375578773757091111694870265375290603758363891066421271179322405592353862112176054467195300870204908547222921572039962851113702956166947938395767576491742121729212730845896038241681693326345695476420165496025774704347809495235962254388332909768962634265360254499404646652007977174193932803903306114690576118485812734330788110161410320105977389949457714346230672329139438113018301450454219705244797409485406070136433674664337570443625070786382534729718421346287884539327487655636982813488947944389094268456827877271943953095979680023877897316743717333180455544266154510569433336836356662022642480714967804420091838017727033947141321688447731202448227728536224357401544878167364417522643154771523854820059291198968251800122506448068976870805692578954581796973075256191173964364990594416740886230305625507803763399520407327260386539656542735242991447849979543749447871115672536502023767645673028586816561270509491199655344545697041973020904529465041145169347731529097137016945897192284711580981749621467521242538007174019311438030025754949805999174389541333634851364102500049214872905131267580549788728414117902202126822475324186368738557711932386977836653419046443375916242551560207084702752561803808523788416604522221234379902969846273613360749144440597664337851995656184081790069094480621557330965259453700388003922108860081408987420872252745934342975998424072578634300672264872443916067196240868214401650541515596380959891089541961917821766306810447509071808970602988063220702021085095969355638407679405501707291576752582344536981168661753423771484738455258466016831538896887089187077203394964377133983676961687354146809714194473876542800479530415987599727668741115492519363519785712380911464589096095417961622152377062801305125517735769750042214880118941974691055118231502154333845657535573881302858694860691021535752741370865098151351437675425664182242082510722796663152572238263512604127934792465392354718417233553440390661033807761432655640617226255603585461739222084771981394689560056269130793061383176092216469123169847879978855815570244583046358608078582402682786839636262925745194883920719674762799156747903448363856790373701591894681740912385415131963061276079640129436908044962890738249887914809627643035816467479748982059976112923949069305888632106387989490298311112847330543859023681445559842984109337282440717827676036630265841240346084848432831040292467117364377406239141128709167496720945389637012395351341705235448038080466616513308584485304626676339051476748062703777732534146381807421993476270811941022483581271610575462860052255833166898673101390930050622796994758495747863528920345483769087384285190727905288855903858160541939613325916260175376182448046127048441678560081398858166978756521760071632466110465202842551729656235833712476513396609675500768936401589399989581461612717982176683157064643406017319029460372848011266245873664855505019895265804402593854069230238511193623925609436438008233043697365508668655425558324752571683037938600506163609385150746562312858182123717113564708564667321872111897110805687353754189483470468331077862585394034070491168327964054860433012290933972571329860051974488543373276386512892191848835086205811739262048470526591022554566544000093003290559034413992653933215651484552360210320358210518337952440455343299133899165934309227113937625514819713222560706370445671412553111741668320668075618620095123280994833074864882292873728499104354852090750692844097399125640620890347043581758040916925966139451380873088128326764701788125808280914493152161159941624590914505389015497407820482655206501581503128158331069652991599513891349586834558578144250046139132891850452252678644526511166107679874591590287437664059708934687664905555417861043855074394066229663308055687957821012092001832419822197201093287609321903229516080661244887283439227883318826512296692514142178736050328216021497445402718297994092859608691012059794753011879558782119475445237354598111161942074486010577550918087285020320401082541307994097646970027505234164439339215657519180230902556664136904258802459072704546992781019631749340621386502744364385373311251978923071995251534563357457803429860852118066507461463946252484612086192578528279410406844024635804417614431685667250242996354014237043602478425977805793488002005523339628775890312028241217177363184495251606203868986554559784769551759340005833618277115514329003675616313033377182877869140573516330689813084337210765890560481077716100196727681214824926037040522053647227625013152213572652342270127639324444606489765577531708515061837719701934639447774272623533578097884622278141703874947452249678711071760856815850759373329530997096632046072582975370945572944734365799540402585287993991747250112245746275238461111357686264348943523212845220963537435628632023461381173363921689508839361026897281626191285653623899973298799174811359487030883061946697959402330353624363160072265118780563037184609086595362997753966157578303326711950161597157969255188207994072154535990126463300872725847954471234595999794818709267800483372364284651450098428692258589790915778531357758592759058525563081425909649521421149962223473818160032937107044399889817772536635671186724568960641709258289816372358529632950542393609640962733776056516726438194096903414593048940447813920127236438835542733437872813154447830593752054089638223508826022779419425998395389061461045015658499033378190410105023481576374328245587086901622916412699246796523528973355078689000944848713029088304927341431281547467024843579442426798183897725549739024020674461167829605334073990222416178884515622861555334003708556364721047338211603254197253063628493386380500708031802356463788681060544632798977719379221563758746904285157783696102163917350002044002740889904630543310709676453605352837421221053254305416061737201129829686480483024916494419982665812605472379840211983530212776599940460574257372570560803495587559807966933325251763438400400329401902688222453945727680800467438608100039897955089039732930114258838933849127914095678024957144561459162079648041754678690153428985372020241151372761290231475879247183954597375673037359655527927229330055103789870667916283583865183514198023907139794634242736835659281696870653693429033594903524552980150691267560100377080536168771219252975495772805930388711292666321092124264857813754562523814380189938215895274992959608950324216780574854670826761658656997707995295243065375749629354831511731575216558038645923734853324696878683532766127753308839619877586431184206138218460617322867625382413779304470443466009552945452833486561821706358484082617492239643291567690699489834815012260646859500164309767843615892846111422216043272128136373194088970161023517791001947258150780918488862224229587270249152446274348953838530821185502028727063658669177264348800814429287317882177539333193577338177404824894692781835130855514958216268921926299627334887158827703728838506926561529439649268867909577577124614160927492619633327833656131864915103312898833457499030615184772609957836649905668780283619649102353562842983999514803495173490294720216441464483300847641941174195029000008359908245818055395998133431139501429852568273919647921583618537854492814578458297221171568525798345087742946848178617382270362238721376992814400261309384437231865487916509347062175967122491579336188674148758536920489252941536974659930063764024208200646009946424389290712339144605373728068997954262677292960569854468877106813652882760489999410392174496800580913340028533897278430301007875548644412984832358048621438906746243394654066402908801405871157840533893297748107031487798180132331740680776881510471315722819418705360866491876728507977427133143044250192344854668090282561816731604240682952590291991383287712595485005925672127093772498201788787537010932011632705088219542248511221655020839548808425370149067856171713289658403535617166974092594401357439871770957241691819834309045716471319519874041179290862850136992045398523173173563122528267602398600932132651887905463857453437954598993037225256962039734354627838219949334732550386212978775543693474490730638638364616783395998373691243281481500837679342114106422573720831372873925264838862452997317910084891534858234604721162483739122263149138207732933703154869930040218728838827197150713822870132965473135060244887516647410447925741411666923044398129840760069705245957173452011331147086363790843795732418308481515081242967002480624196670292935091772740631337756715579363018603608566755788768675713889961185175234361400919110738755472211480131993335758982303099171800495351006314027979130000505001086123590465048036101745978426104603183654631645111036058061200188866568792240069844110972009933769684570698631814747475269712506204387785836563387671758151566374594046447471163643181006120546317536105843512211124560119809541623987921392697344528366741423040165674163393753165766171290008971763994204773000165586433412667264585161747392098509229330594208219024948915466836507089976317621366181352094012856625663643153929922656049550331719308412541615904619871198140193969498133658904048661832544617311670169985347607323153953046039913251528089290782412345394925443054459950332224440400612720394010737233543922255104368606146270946143130560940234953758630771438747884951190399221427582200581977795337383615173934406846367404248410377716573554386207362408108327118835411915026175351109072923219465315016805363911097628891475556242359333378117619529929113211694585371003033853032588305278671326392723328403786072878130460138936154608014630743206316187707913278618976697822505444863780976411750401205706663128977222193555363693226692122108334384259058767677801382333546970014450275216993323627742638383640817621593519151276064989445088451196736666981569330827308478936617607145697470278351127159436433098478573365777533937703016699534107712147547223559764924022999133611541494553489184317500343188011024374721288549320833274697515201343157727204395445515683221499028075365322588343772114855646569510516956804384365161263793495737119302453845794598549477954302047334859005861472544911582040953833442887056699272982339479222884853360232079527204635358571444259556045263552730768022532564555242527605421126067947254641360091899783166320206245818921103314395066676119625740989393372072256973160855189528846829953892566787965475325923253439269072778582782740762084203256786438326867058934240026338598463189683920542911808738405839020905741442754947859003245053722910458058078696615692393125670489845265248630305793246183285143117794988447649114910015997781216405542419382287638940359618726721054742312405911628572337482600398632997429854222332869240500513241621815458096231915889977151317040099918517049900288692120889397448810683122931343391050632048899432084754434594609268900851920891435385309510983703960023823494870645687143611394506185663348916988585641802017454593515170511190758203264728734257286084536587715241828201061387143199151407854238009272840626706398768640710908724038190374986927432546396413490155972534321223552095858386650937491220997130879825010375560994286528119023706636653405634044774534785931533042862005619129799858219465362229813569670964334130932498819250029167520482999917006739512789794769908879440730176794966852491394978241679899477272421259187514256132541326550112248390969932475330993200045631797333464678846547978743385952947606998433136438512890899287976208150519650580428914322661482053969309664155184372681884815361024571427409560879092813443770266940934545799577024724797326646261308577597314573592489223692558372551934189955076174554258583895445789042661691810231084487301236499154345661823289287232238668834766780520395784564437745068241227741774307984413956178083069224823029768065762867972991622326268957486484689534616719224197838293393099340587180292152859922422995283251013361181045013456805333489931294326663196077257503416280756563352295133041205337729642577861459225853207353169762411659491167621729638167243799305653925693149890247428500640464030252847899754404340614774676596698610839933864570390342273244779859194851850766441284740105547836336255237580485780072227460909334179146740255077382675256494493270905257282247364520080718952020300846736697355398577178566144840838414738223668718026168610314662695017026629650688687358373471478533591783285077971426884137613514189789244754585351568991332882252823907161352124666279711988386046788178873730954201469008649966246770847840980979944995933496885182341308907362276474298988479555303330224773689441192951305819000615596905046397950936237941775696020933738220640663133396628361935487324314505734628125379065257977503315361755847762696845048391977217710003985790114022139283110984143061514181901404892100324860520998245278196630027576610589657030488890180531858924066826145698726633135511159891359041609598221698540428024016103613517590185605871801411401036585538007749439007848296771802727536341069672138979474810676405665719181471142418969909384631196463450413928076644273201558269386023961208116329227278268726081092075779230204740139209174441507837739823023579314034781792932779481892116609656049494783775509984275088183740144222220253389858265287258926896456597846879351280893028232471359078076550464769101655419361422154799410229015555170938074972386546749221168136453609957175587398955958620328449097936053557352267564474723348960216164242933000785900667658975810961118442956992861216893210599951405552899545534087958045436495392189990557060988768252347938446974387186313475201850871427567591499179617962671376914168446500103009311987306984419147993219071845647420303700038340349606232842099944296866244380551788405423018779552348234004787341703452037515845709797503553680812263924964393628907916260282713439774857997655503516043609341676726144171478238631702387665475273106011338571455899466933576471063126379374904941485687836453228186605069980019591173774235788181567893736240839868155645501734255418557034193488937349604456185951806405136088541281656683794772841573548129827593602609772913485664167274371527776228237791916694025689564717219028118323019290038544201999828390517933830037316382529721681489551637545253595157382849466105444156229034506340795123847117069664082564330450502076980640328305882258430589509000262309173235450961161514675119182026378376066555924494758472281535664826131879933084932630712069890732734451046842254583703307791664760002772202032652485843025788097377877082555282059386843459634564137274599407711455619687661030453319780978285061043453554772596445015576865238644583770367148719410531788285613558413121642185895464304692519842045992117000890849205540111313888234963215944318374173433416699978397332262828445190543397176929578296204705307348795009019789042405478919176780946047677628238690809187671675352013636852735474572499552653054300134439634359176594330059178610812367836307002557281793721281116527745010206744294068090096296944078416645997645380579303395718203762919349756096542597521952261985812536156557814312148935667088971405594688564140867735451737404814430146489238763757065708879506579174800323825637328823848278923458379324038289684730364881468721030149804554279496820379721974942999894835953444635219451409422453542633269470934189891881614502567755851072399667213352890721445904306717049903199246329418437961236447867681214171557623372729695086886530200859433124520092726005393315978210476624715242624971900097838623986528300477891771899320784281117507300534793600612538026999907445067371140125999646448024240039260412167068529156070206553194804303612458783767574233875871804374575562673736326614748730116426172580292745579234211660127439233941140134396092479249487964854867393820189253050661160900015461170285762023695986762607118708554730458892359864216893677949494128052485271203776641047539161443493985248182568600317656166808838744575478884518758768442375351591284320224355433793872343555279771898460998019884054080211176862503213556309505297186587777936515246656430005145238183899260958595845003558232652543724056840114259350985964736514464968705766426884191649364762204896124659260541343591294189600398021285434047571643220037590823347465488933181143150883553974616473065686986676745629386861562585085011366358964459352060081046116288636871234924753084832894151640867410679252221598621867019380216104398573215963382325942868583989015585124620056217375864317640746405924838131145106312497425577687175884343073457134137264349359919221457071620529272648949819154669146251649916412314608095857479079903395852267133155643148058833273129416448171693063473280705464146755074272002837071097257170142016520611896167445918110025783978028370299374346975746626255738238817121744431140419995323990676566624277857141258891885283114531048253613105801862872301013554807277544838110960166361996339454815292597004527384612623682270873704823949555038217184518463912210272062271758763856570100662660408269358526477824393486844936205474900528459405183547608358220982162760047681900338591705717074193185926278049945701255438193889369316888234916078841475005571541594515079659653972537843204785443043484555949850088266817102413536424742058227277981522963655070490471118612913751302745600764528666274821682288502220433253887939630213737395592356492348337744328483030859427849348678545023221212974916412003672518804579704506762176600605334381940152221385834645899888299227123292268999614668113351472429343479492909511168328149329116726483510332576826968020314703425415942648214471235821516568788748174567245016032761397302340993805616381624278084076319844282893546498953061551926513566879049226366472873713649855936584509622549773472678487756381264945517769224631558748104782649915312093348482996272236456410181640669526992125753334642651523669035748683363799665258962713498279263067813140347419884824991859597735769661167831102959202529239169464300592674022175782536798863348234620550207718045402445199529011947455280577508100304309009175695797093025850496148479377937924899365112477765549414401267632380255305531903793059695121580013635848548655059820236469607099738931467373863512193559280326181222743443843369031097240239722208814983765208496586983148668467134561620270167382544800366897285278569944355835972587898703584591022844490045819045523272500895361290803664405477718794515402456885223070400238910668728950047767930860234429344036221357593695669233732554331113223314504253055888254218692617885478097576326828566734303198967386201150980719085546579541586190738595050799299089732624894260299135656044471738807019182443661505367615990145783030906933356515234510983917412222570796179071240441176554117589277672737667129580344462609497201533345087550889819326017338660491856893994701050824673280176094184674002399643869514881977793411172351492838132443307943737135794983110679485192582785274510214962050887426059003997624110130163015164337752433836932853180081070772685757324642987412255591429228874785755729536946645719905545286727368155115363595860722238009018012405580830936868545747190302050844497495799925866691866881465112417625887626331085342940414379465260908159065838966647457952070325869312895216735159159898398521314465568397025593761224757297288409172419136804708686616200734675782966684846540944574603428948199558762751375576543375354855360514513381039034132325247110945650372026873427477777417433191233061051746069426888861331066668386180461265241599271284003222388674296214395191803664094514508601188709906627897352950438482216474428708140156054321129809297817788456930584681786650276316895296772386292296644778417476606136534399355152692336702366418048637271660509732440914117027661595526259033040363002686139702578443488253610413336934986574383341678285402157070962235630700186902369083473420521821528615209873949571806690360051017601857350605446627258800572663960373555757138254354357620303851463688795058447893578354437724079987183789866218807783221746670535415213246626283428928329529672290458281752953516331407807096711747788470504343367204205689067617489748548929468583518631838016403475589492639336951465940985694317343218412101371173075090169695965378583684946969960559035478044925810464924391194745712905072241096247054448049270450952219052282064216433554040550451858665206321783896525021896119628417163910574105922308798661847421747472934236761865726295814850206548863796784515404443810887469898904508041600369284114603591227565642526848260183030472598284404022246633982040449885467321398404455129431906369148984964624126086498875518344553228634135663901250168380966241465443765288020612503753402508060286349401191175641780668680913502129434334072543582124514776775671440374348113621222724722473248003746696527166306623192052739869757223757566873128506747359532014006263297834863571246279287574880223391889306413035487944401040911612813351681433216584110875680158078820615958112266750124713570704682781487749239533122787450352910105224761722497793879524424313851498845950889157608876715245997848385224624617752248131368972067705715052897401065202884665029901045502400512672665303301013924100850640324438081235697599728659738962685153600538876525359572563461232296260131090708373000432119434926071224559749296358926619717338673004916518569754259959731423145552563881427642410963334858909384947637184355680383066471671100229826144369297290471103498310217088718495914712237725868638767195523618856625453731215525740726752012569129116365891742557741502217854723490267042454424513458861786449993693410561945723802704938387579909255077349363558927042316374700350321514866361499465643270109401662016611919023417362602814098389940248513255998638978515146470299707690855379899670898437951786990260145073954603496695729301475052521918716687740483576553467674682293379986851267355136783142884771926950824264330700782920946023849946675998483822698558235530991635926854045700140383427760381007171735012422056560388514987527410689735774757417075274679601568359646423883437338215132335216994699090499047651205638262198260133539357371492375894413570548795182260475447592090058848222695689957219766613998910414953200597158350208263736174447499240145306025343201433252854515604011301501262549843673475322927662404592811428981704572870508544065881652249109733063567420837353305882892672459189507303757798265049774294543428646291903226239067257833179193501633056352796485972819797365190514777035532676474329177019771944556724785601078423527773437924760011117991797606565543096721051920521895003407459556885645710206699629328737585479472936298730211796833939666232135144146566573348290858539660397012727016253016124841731361769654470127811200347303289781587486052363054365531965667688541965613880228564701830773069564796631876362476922937744944716819123112495103073503418888948151112466484741661409291579895630986145372727056716471555573039327380369163182626151478914866119238876962398582303323034054092805132907822428795005061240337722950944527184419737538274576219086610394969963861699477778035149818590538991494063267933722587783842064478883886741470598357092682047074537741697755681267278765771931969677365516579295587140645806873911939163871884702524579087284946921023855448939139624224516306865941477597733320030775342871707858052981022378770786112699308704806046182672399912505636976691242016419718110739983801713810703284413253809563611371493891701086578447863268553888199391657065300345412924265325510175146762270080151413718863236525652242644227941958932881968461126936802572669171419004906598023521053364392747985093633850217874432263678841984333596007437747630933890863286661846433257597985715322880047156565092826702068687955154837203092911872582729161815159989157512601864829084624396589352191131621710816123640761464225061926319008711414119605872174989762185986109323656652358767552818802205793452692799079691500774574322123308546407317246664224804543238660038555426294510104984394648255551180882251717808517674299676949868238722397122714807108652702771088857631615176210248125760878681374966168682214952272318944108862894487038222082697526196203889761097739648523559510526831723543024128006228531514783629715976605505368500168858727707675081761891749355752230028318873719494935486182471846531217834946959095082723673029441228274208898272398559102764507586346302094099150973311779204169796217702229599747548294970204826871903018846305118281775754355944704681602067499265331811516485999290337668469345812571995042081610948088421960614378882624162037145767084273920847814338872318834287312242876307193046069617639554766718785397471255642143110156322900048289093052421968245817334745103097261490814431293300006079411134486281187601712460860880072742817732260375329067941867978699772299667198425787192566966820977681001986132903750659627793582577675556729041507283852946307819448525081110469240181655800467428261221258450649131734518558873472245520375323172759608945805615086183241793001549971604396995835447539631679637420294051107331505309143970124170605236844716628875576755237215617774967101598400464740600863396316180039515032695382058581383231541932248095247328327354071048157306912575949083869351425155251439307260363537260873682479962908287049840245182513310767708100528719310552649565866199865771242048232732205573241334549592807568101194412016631440084985763466714618244461814455433465299474704794795664711079300995595256712055968959829017237909745186032350842063931589520827994451320022833054030836898667030738713999098031977625377923145909559730166029894064782391712930909549038091104005475639513238552742413201569074037573878937806281513151690896490727375345853499499180879360385234657600592561433057419642036188425465094575439491249298574519872592244885081767482751415227343194228454727034072215188372719202850384455957998994157198646749271935326109428603035872500936737525549405743789771283700097560227823378112578739338746035049895912212717082794274691263614259805410128066327195985841810744769043824770110069852617352765346579093524889541269423385619095152214851697615339416164092626488246867111841096579715582594560994348560078790848591730599852020348568587045058350887380713113830680791787277162486855432517956326259718089363048428106162449882139333276767796534978165489064793025080983874516418286485348967718211568162933694809885768348030948889023888794108228906711331445994747408910910527299068233936537875475060394260088062398170180771173100969984072913052749230937468077673837818106231734650333903659177405109295988310739592962221993070949338194678911607227617346718171098029657906425278888937647297884602894489304154126673668639362674492436127066925920958753096788886798329492400449161928271121534076294269585807261283196745523451290722838698177423673428024409547219296671136394478997532420756966468384049359359380139353220714121425044697360944657406507256123770805261079092098038052394311824968933793596732648197266361842024115537745776534125315965837831335410425234278426833902400081606942555224101232503256606513998027333521003648353092731629177687742267860228943741545703086560526358992803764231492154140496699757317001094358412014909819402103907402161810410362730236787399396244023960103904543540415676974867292446390652322058778457577205034319419578662093944886714036797498178159613702394737168565676169030032480649382138061699471051263979732543481257145556812393824144331000471349020644944923557474817404359139065253700763246242439761862407452402036183149894035975955593683184567942891786788461040695233699001594336570115228005147238244988201640211057952468288815817915716916809504042683921875968148168164970540873054238300470877133219058280453033767411245014888916088139387512074697416097789051700363004508742314270762253624747572711290430875195837069850468732431987152370925229511242898781163469793632464668697375248913842094822778880525702906388823813685399611725762344942390948286224410015503513827001973323166688574335825627510859034958780079376768480243986474297829192940106713924488501558528753702737392996257402497120531756249809261968871790887689199526464875518396781479246487029607748880899025036558567543724878186930926091497366155400791185052047737067430320517765406743928894482788108144520928403305636335796234721339024795707456511576667576030998775267946891472063940836942279963920157280914522056368300257769802205675027697389310243521429697448716545232483042618554032710632900391009838933308132958017253282352091732906946513590637092125722721672549692097056421922758665918944871851235495041926548857054160994704747076695689101726329709836525258434960453204927102763412686854554388599306534648022564729353862426717033176057769347437686377823398921237563370659647492085844688087400915373913404789901799676513389835085776830677595935058529139527409721619134154530253896118267737499642779279174070430428443014234695237569291262938205470360111625089930080068284926270921374884479029140058487107856841290176824930285043919751386616500219077359647850156492492669005475130531710704177546844174372837311345409091420100151405473468263820269877581253420128110900805648367207469203482745675748502034176720557626747983878669725520570948055938983174138304032518732571795476477814225921006097665746442012602375851261001884279722750323907790440173629550975862103300467952903750641541025713638547662225379165604386480033363886901651400023588516687591874860462753732517151650345668321372603299349777323523362622488510947887178885898574027502186937741478490143834070602207609663825472882956132315485870069092605697624183585606697315819282482310152026095117488194220583822446249143650602754614163506319376468604997831927713534121841914504275682661931484666920314473647232076492915107630819805302591056604381327626895739027424597980646181538707183559827246960633366307592653663840172608694187526476471647163907683213668237397654416624562992681671822596255529131073347151014684366278954538315871798482685282849391898470266342266106579152983027123672469614894391374867342702329465055886224279402436973068819164070311964075172504470583931950154190836286693824751720394614043403849402241535613683465239664942367009060235409399342490727970017544506492709338587829288841993359937787457106325713591308376330293902932005190208860012863578710325247482660218122714131287201924780335289941336974492031408456141896853234424382844196029459940071250691819100121891790203756340982629100407497612059260167268047105493307275258947745631576788085953923444685703774630426147605703634439289850224611236893371460487375035362489777549916585775936305163871523630000353786623142589252399044926819690071469375196613741333799311074184927180721994461718380812517631224075640754321226434175555451612219313128446785556587943793465430263303818130994285571295501560790772508811321324681714275827677980262534380401169542130197630889790886961984441438195926634019009470597904255352633542826780838064175169639162818820871512972819683631386722072718392912234839509589917909894919117291718867108488206987609567766477656572434600531561106054610605678750960420993783490238688341240242144788175495163056292610488360976272885169331581220955914176907720852698007296129362082785827768592281627171469204479298120264384569610832132830738474375231955038471552423141946810859560646228567717313389244846194690319267370205538462973645876531033181063744699191863724832493831589822723068634528748169208255168423912728499372231386633992021070327160978019162750786054852000865443232454051035939243688061605262595139883038816966937693233836410149138552552269707155612895054930087051790923610608540671531776982985814591881034970034948557456531451278776837210202951773781075978758330088732388427221899276942478479844679665187265652847535487510264823884446650024516535583041267666853535506842613215840947934397180944637482078890747060143273800663252532724907098095903490647435035729609656103340086477815865026512913972062030028192895514815014527494724469772446625822777559962443719209307286190751421079205811377145684389837189456916366973665818047393417859959146973460408877834504675531102224134343743307606342782570802222201804079944080352019892417176973212422706546821420008157851359560439363186025068812777494245886727564816094574688210186859547978602762425661910115436367105181820916822456482085338036315128702492514227091595325061843584577405727930128488554683096195201593836834907837127380888563531827258068396751268474501684220468219029272104786656317103684307981370051052602633711758370169352225329018097512522503703754356985868481228447253039900176280063967740446819158336727983177453068581224622464806743613384850149928090398114530089504189929383375473380011052663855412290148586609233728665525159813666803265828523486861681827957300197201850963776854724126711145229218014353277602528812019073736630965419648788968353279247851148235680357862784724135656486570806606813127585260403840554770839430820966196701668038312607300292498386722964626897476770560378013102538596065568119371536740006566777362364611027611949622827138409393421708388291195528315373917132058866676204998791002515260530796931226598545674810971949264556468477476072993175954159399494455921586206867494761948251473596091096894838332138709982075080244930901065936014900111738541108733360529247605828717967306056045977899957052870085431311965432915049958317256329730057919987613013379360068354806597818234556428467635226230810214746540703186005907545312612187772245488200390220088668092674815845251886799976343931794237896425819663590847826965438336155552120397015277005401370230780235198292652079497603506930529060224737745041917100309279007808910066375177782708322650998372590314288583273331039390681404951782121058129329022286460518807973688060657122109412098638899864723357107629572051419450709907615900189525258039043012956475033246815108604441799056403669345773657840258185468434879211617293676673221863420777330146127355703068151934809850394722776702198796743871408707929088764580854079548155247915551793243880596288354442612798001411481777989007770472631967197695011404311461869505702479767164201870160388521574837138434637811132710043111000244499618639547214847388385972137264671712991218300038014346426316769855946002962559874655572944576493417845541955998437180183770069130880385464910998114962513030212729015860552276227012365045691754900996085073765792224499193929453199780849957800489790218062755070400708433799535065213367853205043511427626564355157326383373031600107160227123092864043243827341465430144038438130936133816138767170750193451528223697923518627834894056471797048598044344192883717208781138308308798461848900421142481500580911656044267209588912448774170801072427674751131941473162625570973787795418308938734355365962809138276104789944389949571493727991391198761315830737178164405941784309966924181512563241904102449787754633841161094940768341546922823770554869600777769738535912982718876533700359194056683788284321296881158575313959509938978036586374973347262330356413015726435293184563304970477666413253277428105425651904908481442947810080538163222723826866766116874359164049632210330650343647814065272689859490710385003591098322040294049888233618978039160595019472043199641165964787993847450297935761019298598097235605190912436953981973817133335568308038149542761925315437205942261568844786566447454291136112480871811871948784194603048465551970575300898734861655983818681300762526098119662769371186928746697573791133942675801064778513225813270977895001109749029573498880039676140733949535928548959582681722547112417237782775703721397150972035768070478320537365985224793213843920905699420590508454403407255951004204913342712258378443395132275416696565400216023423539589195523830237572862618621714485457993107825912336772657333937612589421365127614204808880950920813968884604082939428292871508095468780273874415338316033743376248291261628397791734959140472120339553532699586561072998085843849915069346521007563827839307544747258227469937404196102966072137746773395942544807532790342082911373654919050872197276922523253416952660363516910175940682202367415573889775879710118442819063607478105701024601273069533183498542681838880268084301919355763486039379866565167477365940430461922380606675659642833055463806706284489098627648691606727245102218913812936205450652020420311687451654996603296444030731990199642419864936826323956429331880851434644503123726919905431761988546845346729127044327551017980843538602385403331940248695405487838957179418226041563436273375890311266229565389396190234514624166979009435883633439693441855218745156728142371434304837257068493036669134295570532057316951337320053799382976148124133855375107708626595252702386567251346205946171551821478814998226175973471331975458869968426211188709468438606139932168533050823391959771063321143153000214374459069062499014693578721237243838568560463576491930086889060279681775439865724782623413967647469946373856996141187693097374972626874413554491500717787185670964012074165398324252027988146411348309888648373040309800940891837594995287338840585418072280898081497319101773049795176924394092573790377993992410599982120609472047854891657565958933801169072707081969195420325318821001052704567723556114672698131776683148120199083912224319768095148358927927945362545529208386069841346375281903863052218400668474720858071396323222772172797016126636926225576534189708867868074049545056679468091889432132919234407730006531648310043067713344295766853595767621522658398761977842730858650110209075834253628377793716951788234472144343672877355504270030383592050532056806857781096052014069770342215710723012637241234604038353946898993102071520917503111937972458376439626999129850794084230334521911605373811303216058362308950614903565998619933729356430292157989330554442751345327441852314924040246895572495763201801103170163022603627637578484644139863487357399863192580205153644398516093941063643025918548255005907108157377708068329919740982814764814555116634341352667021443263378224206357945065791760430006755493450455558439711232766120128742421194819029284253789988126686702135499455269213512442043682312422825825737141556180658946123025049597320083701039004266185411072115619638214616267613313330301051891740979961057451546760307197177024415507807062567833055126866527869740151450240263981636202007503721285072192754410178858660321622582777551817798818284439801904820567823175122345942542062883563476629055186141139237358513209201519136910877408667318059780945183411088578337641063676007597816611565948562059880329712922347726322661021573139851086305520850184102824432217607434072036669372627076724078020641903634079154083861730201343151413981553624953317613923895310809727162263229718901128109127108719480455240099820365708313908684596653219452889995247767505431518941261621257875917331200869102369687448362627613500573315517693573083316216498094845799805413132155324097352847077735866426039403834742393488379058624458687061650872007731617172169328545887560604176104239671209084622703185703401872387048287899267952894773892496116147229520190702135085527122552727049558440783320680827577138696424992418010419364206518790799505114649570724630107087343322443606439338640544397767576686166094485892273518930062386211816784833284817743295038288279717070296322272395105116397775546316372344291671820516650680761539457072095243076323143248628176745289570090436404335008707122007275129848113156534031963438952513966832178028495365806466894407664098576154299716648528043109277485735122059272974716421527866097398617326849875242876263796009730596263963050306054313478467171636612597433623661542003876315507672009389655547942518351128935362554183006677669170723771183726382350558398599366580505280002280959912590233559631876151171095785218418772861437350708973910981355554661404046317373202594196660342648332660587041022160071467797663613396453504058951812627300968757416875467635772922832487430254135119580708242215848095513734681055350546534211064373916015186530759876586777867653636593796532957653606596630967912924408369375484390304215240998555620406881598807363141723336122673893582226792598154710522891594506213617451801421767450962016543238711309565782844797650830492608429894259779233864464025016946874586398112014903146455509919463454879126216039275769518547985180880316814391747758025341761965319872624196185519559743948006945603371747082559022712064215434026561153957406795193097745856050029978324098859792542613145453393644844351184151568380221203259089991553542649656667127120014216752334749797732785902417900962444086753986065914838492799781912284968302490735888239246576641237663671276591672367901456786669889622836327036990870243894728139007643714601332752986117561001716363311565919597466974650305552983926161387654904649079687266620178616144381945846330337533525095235465331168364128637407540120935379608452692894892692672638349040486241916628253063623152282992028617157442506115964235117937177550312599902793627244901894425384693842115383744335655544100668404380477192831948618033659473642089066269305253830340866696835295346353806456517813049671823892158358613067788812339012436749819530641669476211811620499413535646823654318107634208407371380191071431314676282432956673906638738039605502549999153494548733428195852926099595246535212116802044597454257061823118893821203668884953887548386247035032040568719792637998728708066069061912248217563647421805978500654002076667632774287440990338135792282665524009942872361506410635442080951489287268989883239503862535168377327806282672381822768080546053847145643328445492821976196608544692540864847054491183685893428201367501255299438011012390235208063569433617390503223629471013391522107607523382726737140784817997786628742560991784774549728325111082817953030118359635350113695378735369776569986671072905481482072866097709378203396436946524395125020647802796169965458877323937559092956527714368826681546172160204068563115567649893894803733304777866975360118154314598137934641731749034705295034592366864809671923272391833859357292879384987885683659017666028396644391243137605855821316078664312337594673987294925780017065055836020065467914987405207997906249136508935641548765574526949331206995984509777994125123503383330303872674261457098971649012376542146784270416712355450210450149943139664123829176394003564765485111849975570882202315278035415489526358597071705939297207555346724236607676367568436891892601999413467190870532974058693887411147917542607206964515689791473910332747096726114867385645160731126001358891594663643962127381126817414547659564139707040374600753728313890262227429610436095201172388184090233629150189529845434386277395150957418591344702136433375228380669233816960194994666173936533937972985185807227823079597044962518595885048381422570574988799940619825465480108418036861390363280876190638848275993144199312373620130056026673544098824039942137147925925779152392250145420770172116226505264407802215372884384992684336808566611804780761602511256920961389074223400514381722203702589057565296778196174357876833363561998859589688412004064647462277872873845463372586715780701611373716622731568630424854883891789174428008969739834984551042611700126778101882320979597386101476628366672706090373349536185833164368207935934008996304995834717711280665699126695353518202328378524644330415553786877751512445865435908593585253667527855092375872636326953216173959510231161780528840890246526065721511915814476607787727579574296348570564918364648537479604643776251527704656909138583572997996805813033733361402466584188794131374471739247326238587104547780365732883656226218854363691360684132276290070302498150717778854866068799666440479327195183675804117580399501997495810523862704435762929885455440837875025659638533203253075106894959172480954261890422395705532031893947987924049419898074471154804643492214615317280436277799142097189037353367679747148716035729864316780923671406223164361334560863493382872246463285593615649077078779964290541808516172752501140718553734697915284242171553895690575343028875141061230100188378202966965145977957047746715449292890561903591152286432519748660101020809818016103790078884478794178902431066024467873668192497278316971839737893243055876528516993185333546998038544077444078612480010708354995436600216808452576681712327762191961131334011637706316841266086398939912177673097452906320324835917925482638777594936010561171375864689346281111593726624538463767198518392608949731593129956525812319640962713536395983620150281407184463539810315201174627369478885133247449973825139263085434480788407295483162442591355748616768691688599328626942046731291175805264125123916037158079784059452040459307971003441592227448535804829855652775041285351867955005747175312123515743740366150957583992756735932339334128620200295476518396160966271897683960364775848173563132653881419675427759972817018627439352266597105982754947592462764759025872893642514100471046709520462261126320920868517338423566157825687510278157249647728339698696675331780451832552505638200366596889539885153158744193660753776930608869398226597285752805855934541538081377728223846558604408072145426006330981313716267626979213276994748813459126687456375450494417734801998635505580640752403265092353935954150939257988351977350121833447217722773757816168624816440973548177731931711853569857194374793764284277120864862848377141376976215072321346431521417689794218203385552073676734494591440128128261362022353440676516045996404199431342920758245919466956779288807929238088855736255670362226775462105335559221280081848312500292906111068277841239020820517417120347130271985734227057718601864952990976768226071445887128075101646835780298292189091449231171582263980926271406476881013046839305142375138616845791605278337679456181958638122815843861770210389479592378666984873483945210372219621503245366376663611112077243524951129321582956057152124147910704498431722508035197619291152217359623115396892749096549350266092054603151690450713794678163710928030103171629270750787624925905280452585339889916347504558672738583184857266190496987878668644131558917615699906499817602604806587906832090072284377461783342036658050746915494479777551814087388436851712230654218956638013710959916116776732181315252493236424491245404225388566577927624772248212370738201811615003038821758617870220350198064937082018480922688210755031152247165901544339649896330973072993809989453741191333837386047847197962032443342866999958097595725296887986202738179145531550235819001951313505012782629177512342901455953656367240981582305699319905569702899565691083512505689203201627959775840134063114386546250130800773566733211703974020572908210224465209186054307406584386036432750403663046219821585245330688669194433952086697290137037011946397753131866579007564536322390440530603224585033720308159536987909311543258005111070225783233932761304548194871911301985852007958409642001664301504886052208844318366977269269107205390970098674387031782781804498834541810536798033198908473780609711028260627412616083493320807904786158665703592858117554887563981759443583560827536948676789515638081134485059419187599822303225193756844402207543840634722344695457328080122956403185449121983177781042325935096352555271746394196152186602868041355343266632251808204871866798178653225918482745219439996825666473211349538099640446214979198790366620715549339430983362472166309475173286323616616609129720374263484940865161083516375744478905888049273512667117695895796877745890816632853484933733749632095570991745112428647150084018786393102616199463598254579538811533985506855650083801330387156439355915710075798767816452309909865469961383267636087249892647977836760946142978081227964781585388726471892782294712883232815038883227555937492747444342499669332857826668904255351862135878199238801146640415638105324671280157401622269305075037999928629120815112134296061793066329348342477035220574546916931204634902187327163905439542198855218398001199964159235416700419287724516221652900724137739397909721747304242445641461102457271073042544930036861612818021527733831055393123544966028235248889905544636678793623373159370042943368583308147406229330118881684697224206032780485800761614276575695805290328701528921287622700048237714971245524368105068982518187442316749071783900797425851270880397987422500480372989945414532312997701376965528073426928881953319290435043392974211556879447618562155830535878970738647693654651497793689162487693076278331231213300355918264424492696464677711347418533472749980916162774924201641561860546169696265563948614696260321997603957872357749367672554623367046136969184705140747610651883259274803190702061364732791550935711760059342245333371278442094760270542994026604614818171076568463070843801882946989103025558058629905242089387386585739780139214831533744357564156088241365356677975160967056767887640520863518540186235408550883622648417913344425348071167127679334184796745805194567034551986966699694399814303482787336281424166731537072752294587697962009856192963937779104965749967556669105876677005544606862246488288447102893500322030312318812568647615665517014916405994874695821380544944284058957343701024419543762220697671128583620728386828121388618916752475793368764778627312097476724177395342494023794322451646870899256793027173094167986932365692325707347670993711435934133967490433328947517674285029908800069399140984026108828765812959416948460095978113198406161070341567165894556009832885932662793943962892226752379515337602521618278420024370294762779507269302569665416364926051048276358912046077934784424578501245330925645541705050189756021503565292521379131011559240489554742298717752814760574123066105768089319961230111879430063969034353658137869681291867057792799759307811758162689362168693179496389652937576897383822910595177793999457316910127782107133754488310680239797931238187212065699984554737503678275626667581460421308090127972222275356744798857247076512056786456512354111060521608858098949774016470104042787049746022726686847656460230817793592596460908339196547676604178798960333190340069118052447602984738520341999971495334861470382843953630843392854179375064681701521273794608895274035528991336684637597705325661864544217191415512236026925647383931304315372413099375418499564346995323750918451097065506752462330568780659970653484954850829298030177583564472058791826504587807963394921744610293509035135199777154432141435950341521670536931564485789599574330449285925449433666006291442158375892701618203619418444555119031980452140523666504199558358041977077379267079417927716090795510375078608145074313121021837325346867569019223227755721094913337848775223794071118513726570957000543687873239812534974205899219648084084528993589222160656343727647692845448897389825198863992765000767962504981333416492245521503377450399076422362846635152389769531183265756161808018793992736645262331984202211972158446298267246083219139654942997122737599540237250557813179520653819804682975480138216054269355466366413463660993602131954543708426302839376625168826984025915574088925452073999288096457370679749670573716559666335227324835994333511506463599841504468696283436288487674243436485175206615016159542257157002881022936598786602864007670220240922032448180466606121975563496648460541483875763635024576309996448705445363224509671983478060132521568131028899529514355881318241470652432088821070582785172648051698503158711816792659400006829482475003134668529966872992507406535967839258659368518474082742063312109832013661277184187791568944934417659591262994360168711086385993068874890494055269905638436911983556625717666579350871475275554872386046023535327456145334880476672942461551837830346030478406648455240411686852228094476730513918855426766000483763775851471466972803651214324019938729324778909391384230038886084519644974387492330326428164842263360309061750901969471277125207079602991079341954853845610884598774958622893695804713890177936889911920593063345428058498726111576426527881969231490002724018892432270152901123973643266252188409756392312362187231978408577014570313506361007131535640123549281893021425432295871063879530060890924474553999923469831898579158892770519711229796489694341842487406356621126654995931055311354556873600562503705818897245871070132326433759831589432789721989335904914012850773807887874676018605471645268691863548468273169901553844679182663788297282239857045206756459179502724360474109940008253966307387348271874095258051234860370892158514599807061676855092462766549500980699825818972500181378018778526991657497167985514713591858571973676966290795449482205212710149536580078578243717371250409820840514475510477006415137881579337885024963274392636978202440435396348108807929186973458415120158720225551378460974987925880246314739064858885584375021631470355598764324047104118039876273918393370344397996912208830207993975053939973518740388510468507772985617886452095974939062303186007047077114558081993894945158786653916552446301376561655305804714773024345705712244380211328717905460107423829349856212137228346494364654091315393191014174311966197123944976984747815784395188192159793812543560218322991337253708043252849691490730767073836246854162045378327667326630389646676761910129738562828881550198512216866553009711057384414387280220582400241421055856247994275574797676330979367335463566075252474554970273914263795125887823247749477837408101780099195555434013106888202213246612961364386734975143786472355280483903295959863921966467865977268199233426020553493955610881793938646769126422632853985694738108525715794535006413712067607212163495303883382425113044197927349849567462289113432428842469862976227203691688191338268425849655162555576562473729926556742179275759826996459412938413065092493401762238108270202369859696427786578095060836392485448031320518204221130648858802564937332314339811741363534861936757266019080197522306133133452065666426380167688470901631193162418977978287225545282670499168260810853111338088595063094129907087379727211434175192359395573691489893745162427052726237521396478346540562720381140209700878957650558127448830546201689510888331585290855656093905134045288525800877965228587576147493649481282390892735568098201501376946854065033466139641533999372216086379653368554646018302924750909539744060820813509894286942023249374350636957674186354793352228304876286917837385735284252601138082198285820414999203289574744545912474102128085305831470867427818395412353039174192273700944341297148010194657733352110336240811635997854095705720666484748136941012548002437888124134750507671161383006477607515289548522012938917584575555776725892685604677897952532699356150238776256860438317352781810315931761404306750967325531193214644997378995986790875700285770106706733159396799455441468077343220333987401594238442234096905127675899720071771989736095660140860977293350101858305680879703771683083176314890938568050037668705973168799159562650831250374500977083703459172475990114910684999160590209067815556868245540970693822557371226930701642045348187068361751217925097198246711135786460613249698828002734209971285039764095517620572284972573836964025307523145890780068826948993329907603336553862847773301768175472148725808597353074299778017883453993620418092045815269248622583912744419153902283241166015547896031052980035973604373736713430168146733797829143458261406119412202118050013738027173049883159297480179838196856967466259132335898577721033351325361015268013483702922268731791720075091983400501486422058379934697612121613225364231072913408159833411036959175088451161044736505641013478258732468489754176219624862225199512884888667735543726886075963705703179145281107528854678742422211105471478131634978301268788960619244046664702609991781094163724963586812139284393170424416179247834621571654806164095843817337729882391115537372170701176908267809760131494199816700198807139580564991277815555335253667692824202428023840498092375364863495811008212043536211598962535400235484906635754721051087548135317398151262770971112996512786972694258686070889435872564587566470459579338504475285029575322519316287784078336356977616107887361740949473423373580947336055932934200205440992794332904708514415688868633642730195054498133391591333586551746196338981854054903092026036096672308104592431048630728302349604543744300782096201139664461026922714033548805400534308266982930357191017678373037597759428175480582064803274398109779901861748917995802151436223896182680651616626746022430354187024071084413029249724105772105300871482309787626891165278565474553822368172526259478711363058539997360094510540022617040677884328869976577216638891637770080468312068873106577249723455225461018353026312670564772490839859694614974607315892660678024843983072046090988805351187952140454480277804084739445914374896960988951325758225690926259069873352000629742390061650409498433684528906840221880073130423464904851063316382576037484035171843053113214151314041640238714434655404502413365405698662611776259504341333375100132657335821737942861769103875720267603131249664322570460019229392965583831324835446673758403627341315589200849771249203024138346349017652856605674247720045385370817456509296038957484917675069281063491584717769496879800909242298749067737042279636439404693909670963526946811635898297410193816184391710308579414012226941951699415166261977162322191136354817658155439340535399741878940429280653085246697275915923385509642698876317970048728166298540309131417113938181047842059407893249608556370981779897084502634863290592907870733255625437507435544908433967347949362321617143721363538449657480621778785326094492395351467334168277574958328131498537746656058122668272941961892135847319230732896506969337537777673122711823925053498065638982203493072278504670969127017601303970632194584602597847203704672748866878034354207639490480424127585082464079880070177379513437707253722751484737261080106404503927707627196742630644260910012020309473269255039091326026065479140029190675745709963931440372421033776455317099496524942675249254436009260588810445823204348270322579238279230197536903337508545461986182063507232840727940578722487427969457244319933912456491349059256449798556373760431977806160076780313445941314358879412274664345559417223558575808667213121812187651864566158996849054742282826775495865335200551079584701315305762539023727693601936652964003779757111644877302404671373181900913065821237501167783932458139863095217026541910136468978393378232135760905477982136524051284381382120966373308300394638978426145237641459336138806496297432610184040822335271228944467635136160841486626424124822117196139713690462236076526879015753731369125265717957681185762893831636495753874562618327404366165805314075834985714429984778146729311623305326390018169089564253762130578436971180604798458399911020337703761896569901988945724423882428060722546586921442711533901857948648345000124036268990864205827634277060805791887126817808260482866706891997206467612512008545356352296581790149042177847847743141332930607832192886560026573560238884767569937780902978429860948564432810707572292211968962101597462021504372384690946743982381066424531921862496511292356392735932523153088693744842867162792752504791441396950676399217251011506227357676133652821105569240349832130730395625574430448783321156937827462834037210904066251363879422985097142536127827926173523741244546045234897127485736988766452081030961064538447103228002439526785925779763834602357884008071772642427243306844878122346434688226391357050083587006790694384892808039008798613825184815379342860448456824373206905318282113880226911576047785984824041344786917731087583890334303500813251748112363285636018232577968640925528527474721707703217332411532677679262264870969866633497798734930715992849356753134437205557326262470159906779077312971550945461598988458649307560658757899731283055819409898039648046939166611712212935860864633523892346033726665205895691140482956387857547018110984929001188294632028290220419226340275195957974897280932583583630765686188457344307466653231796153075729840472169128574302119232653869497422022618043238981074240213966522553831891013053527684682661919447204626267215908196648465998177083608757313527297425484190045111584710898803619604880629386320608075777604054781175082095661093178963038365526456783423768123169197745830353955440038139600353812078312105216867165600431517371506507729585562503094187442913939165538759663944752686219647724982683216801137885120826483610582847366126960437154817180467083790213429843751537004612200843647679086935417072548387127664842208815512551902136272680683184845980971683048588202856689757330286819759033610954981198978057654857896498103768284086382380831523832745788363303162760221102506747687675057576117161602423964401835488238113820394288923264212187322084666850848241750931886204170289996742510645797915987238679991762987694364256380659729779615210575016709883003352446305962479970875147009474601900477191941574172182784196174058548486181579345652631237056859857234824052710902462750671241087093007099230017539808010439792112642506795728525875683004935858782852553104864411455550379664466000388825713033152003160619148235900845030964537852840048317149408676935529602166128191327618968374277405698748004850920485007258125059535134893808001822520163013096682969369139349575756566984752098368904733224770341649334598300440619885660172699155757557163731384065940364936580441163080890575221489111010463734133298129934487772311274383343860651423569514164257505768357938186455272485941731410781400678783132544477752068739940885045885508891406519730479194038830323666868916617803844015223133268094087894875678350297046898428008124522438951901494471157527574014584853114189999453021190099132653348331437553074428299384573216914609295337794248812864126193003888630195696602372691936387908931230041787580611963077716482195977122640583297747256855759262924104463300014224134749223990841242890194005667299676670758504575364610921327936227179849200276576134770730147258328470055926992359189789681673790263835579422592905528734703892114979735386910067847301590624184649805336715517804827387378837319812613990234285532151883098789293321441026804181025931444135607487976884172317930428356573774317575016571611331682103124983563724607378560733441241466820422122739498323957901436968763658385445702185103256389452305194618468489715278509455372030605003051792475857693877556142749326833187260370993482570092702255341109214226286582151303581086973228205529683250161866704213581197759122610106814548817030484211635197225384898424377032717872577012929687412735409472798051542452970488273938876481234114433041056922500143362135191057638082399679564157537276097904692432688618248898621105476971121141897182426434603602998879548738884777044556554677713593093264842169744947429149553607215225120252510723839965473464881692544973681992771108163618079895133794800120367483464478322176685404304135272109551926965216242569807067073152195039001032539200603377573742029551454657422965267291316955033231896302680394047771028350427514888190341966972518991072572352368204799254334125395993289927949783932822988850483296071701423893325000384606982101764580637368014817069889059454552137594474102693447509054851485259160341375449366998179206579933058609583194234810097184168359852704384248997280936859740731795653873558888515449945470328368273705647471312868381240021197149866917574339003463363470368092325706267079418897069269466654122166103743538444593725529434184810801233576673949279171059738448548313681632372054611090494135624578303698700212959532895627866446606795435510765745878121267581773400751250734268199336789425057522170030394839640014301702161085662018795601507190821918138747012149611546143840790118311744762541205745233797198880502397069567416101470621372208251762059413653515144325615305766414418247358951061763204412128593470651617645339829673717269952943656168870061740970974658491560726780019663264456239620966795040655584039002867337279860297937814371108180869090512463972285566311190950687722154281498030616460832268221411113203338683348957097646692100050593480476100530212798609097079989705945854504905614167661328389260122502522532612519972399837375648712374598128975563938541238636667455040175906532504548101372477695549421186124044641196690819841948781529972150618730444705025276476534223145625056765430756116842217838539820597592387280284860856082439588747187565592623242296269001514001167768501326362499543352227159777486652083019562999705412868696309255084565855057210591329559397654354655881548611850639078982262939737909389493972450607954382815080325442086916305327960148617372078204733309107822189300611696791595457691613924438243313470178070170463259276627533365727735115055880983368431391035977157692602230629053520572365757658460397827008589317161075712995929491968133615197233993530005517993046161188509301458612731658035745055373425776690660178372144350576719844654933767564015051707799808124728333902746263817033638531061403728900984307456065682435975906394243516082483688495593819118856318808128444182210239828586019290642430344602209345181868537967516262158982959114589290518418281180698987969380891868460625115938610819087970864385875785361567948857410425770050019789714947571451012566555425970080245067549237306270722695260636958907894035536634345163427801076875888510817991264363404474933583737783396933294551990175435386204184208933805744332878490090143199987691483165355905821596929722589000077971533451844099777430032212570282564709377880134310679085755736203941629843939142317841049328621307183130631940747428244545897444196269689673561251202472704214870981904888629859303603247683571380338182056032620838807105354522912367476222126887065763983783755856360238395658160149229015236018385166059250039322475072886508584805197742196692920869118453307650132702549983506238164004821352436915375430057516534616224206874388294960856894493744680134900549779227337107876604025262714710376526849435258693763575046062939623825207674709850643001302699999610757862212119349388366806558247320952008206598376245245276604417805698558939244503155835798844917449841043196676683826729100623395426160372641949338675963980025986653969002498723821301415691416054014009031162324525361584407190740992369695098330795124041986723877081343832762480180907683397322842655500555287597505408028480683782642587850040377009665918937514534963280538813972948601034331408847706125499603641890832258479333904427288131809863138592403718949242777609268535484081517149597468646728990839548952586613026912806007078436416235714140378892687422248995185720374165380830803121420219443863893432959682921849520255328470990990654142349165499001125491357287439253096498377176166583537346108184189027658262588357309951094665326243629773498844477832717798011850536116876506849921251058241305275438244379864397639358896931794003200853649332582085847926424063233664854055410004158731510921503392115434158670234764399743405716934297796861786321782770005295262358137647823243311916524531686673365523362695154548034251864461415320341178773811967066397602320970173130754728762885545391478926413029413038547743862539539253948752957269171927865027571654990917984969570135932275199000850981056632028418674063167802025969129959890848374930101023749132457814480188247960540173092773593683234222405969263965685538135784961981737447527430535551851684074148202398210358785802353634195138124153213626958528559624840743537715194456196191281678633936535997761968123417281721336279256022764478499675471993105063643377130140030633601619997948294115699999245414489540763633055280616140552338470252263093498089861762871075669678155980900503491831862353905494999150901796348617700030080983202261860936375266473417137291664241630765398171637383047288303473182618230329196430283599602699475984991342984387876676137518060981019204564870725358506638820903395978316902649319424570828862317565275896784668156743296810520174786082142585800092135557677060119298238551132874683567923545023611921029509346938038890574877105866750856035679930384254404143633313462070424055629056131476413279190199526540690395415370994398732236446499019558768963156459387856082037812565131625046023613876072892947659884361073507160737563591394487403753421776234597926646197303659089911907421622720847770854485714112284925303223091954475834467971644248633239586925005781535276233141016844937119612724311071929104941855021148351284330028215732610949362719006085487089731455426565508007859167701782275111148236886665340012552969504546159231503371090694998500477194094214102362693817874958841071305315413341391676585846940408947092371925803723641936639139591331509752289844845004002247262139901720987791948196283366622911779612941386440349682388550351723168090127139867317548033014929985788315440236674215451742133309658760185776057024436172036790937668974178932036233143542376475646385900661250625694525996553670173818379348544961650280179416060067783637031752258568992882686878911539251869695150167504778316529843926372193341393732756242469732074957816510785921368260244468707125677501942003984859740810039752090358737207622437177797053200593971681808781992852344278297430849800672434200819555163453489150625032677540268589005626471912283656667280881768352448365644190556716704841290927582307285230000316140188859048550734145070862402869281732207854235562725434884128136057962108543181882589201665062734544607720581437639674896322062232137920474153840040678210025857360811989128643886576408698667448047242535714645265471505954894199755272663683120013134581635142211975733131634184974006054054460187895322310583989444090391813971913029982089188977668815329326925575722681909252668345953089459773669650629047727933990954031849300966737176192378143794643558883286498618353623291492008748119881075652072026936128976268592521832229944975082424032588864384040210758800873961467152895018923916319157947105428619621302140868822023849882803288391231325149786102695596077010311905676607572972908974530826114892968784717157263108759122901872412798620337253884533298025937889103839162630388772697345681244970861822881040921795753976121583556537880597163010775156488894475895542533872227054350092241604644118208085523194045098565566147164071124233662463493246112780907215955407069833179188780981566514570504974546406152042475093823966338668470199646810303476214026048426380919884097886700393679130187220154384526974930498648036045133708049178992303118718806683983016519175178966038562480472573314153875489864283317934007655148744747135209591265277777105380429967308957654187015962271963627404390200754600782342187421965845795419718666310116553941400616463977140303308384713697525426554804615376626096244212514045252492317284025725746956056869874250732134685190896735752402179462787314894824636028149924660229249955624065778342375729803980896055951810520837832923617948870195677386481270350799777725519873373679690189212233240523983181453823377506256734051093670046590782878865952427615686834579210849741857129690053804436833121767124315526609736540120107193214782027907158313001495967636022676384078112430627151734401103359171290971106806873362405245186657658557833908137345818021150871877940544621370306104176112605396275641055473547609421008668405379472958450444932327119094234225380741285071395119927949297988261732516063798568461076623030299018296648289200997612143578735122003499512863144406348010273040016266205673934983912183487516331268476497984550074505659352416588552452187543389326186457402086088025637056759935529047998454218862588889301599536092617957673056886597267683728327737745567189466760137750437718695228810116503907566674384587987703814054338778551822794335157168956917215155873055927480089328037974864080614712638116299259328350077108535539499453542468285725978365706969456612822831239544523586216500668974322831593046292033952677982566393485265231874348469031596952329630876271500678174512527773980476431900663077965460031142410038089937462299202290612663286335751565315785991766817072601976489152121757484512730141742872884054544651488295704608460928080285201794717789765604451213115040760454107933769827619103024802358683868418202440109833947297866438863142436063780716656527165670882028531391197414587146914761299266530534159524356912386138929432690461903603204789023944290525369509589029511606670397342126888871265757460296342985328185984897049729171051296907425171372435683112947357848881468246153022470612144708372087486915499734285606473491550082063145172287919533257006845713819228595466589893589386910674831599579374739567825631687755659549659604304537956701213166438694206846319164146192525330300574996920797111794257165685429573652391699915608575977687702248956690150413089861612994029700992091622758839512497470587635981819831467276479575948609370006590164928460722822352089467717952585110571733238742045418166801123224410926101159762394384163826929494781002957429944204362292667180613795260461053401477648398603177375382932929689767182939520684069803023528371870792934449811133090685794296177917561839557016706405641638494536633357427316575540353322375651684474438265606585170218523121836013613296534833043758801036636655625301420191689806093426629214726207678890011616621981244253574829881441431714738667604179584254594727800621322392858655291066013739472740873116418713157734683696783058814031322741261952239347460031386241990470035347245222316577392148349012983583955838118825189634852000093154180312831394020582656119661720464455052127252010574490226542838184934196591536664342226335379409183958819624850312603114100996496201572937542587808894371253505953115011890632357277519772081191300043060003510438582082711521388355629279617184821762700948311720530682222807986471164432549566401676257561134211212865215347449441061474570771157480823662810252104935404200179613582542838619974358874313427143882929708151245626514411250071201130315258437716139937642919721524306299818120368194136411054695543505467235348823051608116666786979768260094343124586030716937425103196580497518515023821117492896502127924372895081208160301360088163315118693895538879534811381272133438690287605547350374147791000430158519688249046662087761615855588915230269018615107420519143116809761864734920358715849474829265431096937658358698130227049548606489946666361110494471853989578065914070024144958902408714328698814457943258473584752256473326882379952435595576122242029534345375757654338062534852453754137882513714617534073778554768638472502075519897356958519685702149551267343873148385000745628949231365271619765458420176202468018935088647029748279878173200807150416032248031878477651574481346751272208398346903556182311905847333407882624946699238135226703420854967509420921613921434305705459699345154194127362506552221012863636393952260460422990406874973695948175587602594037733830592371908974617481235783632995856661165731827441722628647238863119321726140840089906480756393556652089148603812262200745928983154180823845388197771664545408679314871095733298863995872563872415486591536022684485337430410923507928436282349962004778804172319377697635714609428963300012552434177918521021107750163109775758089524656863442008496298474474362469486411620082395495956718579902550287227730213355330813582549535793430375691689339792886815568756427601473856620668446698072951266114039916939038753681427865720161282012277366429911663972712339611219654849008976638029458613986727424989544431997776259531543348662479148990975112150335180436767924709432362357416447019300954592779999320743373808693079543393975202637473267411573459136229960779965755468823454785655851599967679910094595289586314946486640792853532965031246515113463225936220473095975020253781824398540474931714582177551489852576662165153586451998570725503887811396146058770884388636870217393019421705862218503969065808265946648539773524012037737548105937795050307985575988601193737298241910241233142497196766874135490109445158628996100880541773937341880881865475853685332117049759484134728163300338934535201913293631235814437053340210856591022000584679991654132799744153126326167441152437088195338849971998692312068544138348325012202872858264879297580191878710372255345338838165117853093288663942117700573699129979545024178194461355236085883794815039712455037857032298782103585516220908114292768757133118179611240154737291007765716669084653318113963479313187523779043908728772594482454249455310666641245340504493133496370327853988234926629390111042262770232119228689424359245572272578756495309572831630861599090299123694202036282982809791262013592722338730708751220765527582724575417865810230789240719497345639009758114969302446372686032943574113849527996685872540020632929750242884765776673869286526141937228315009126819171793145495440415154585054405432828315228494059961622970382266005279094976537628151641283984626459402615181448415772598630401008993833178366988944097994504582575877857704914458215793924681664342826857974448233097796693925120233414648715027037823193713441189867281875936121011938751771241312167026037980126888803570823386572802682414353542014152140359907309158182693057191169991161739105625780812356390296961519030404144530715474277968669904504526964091247120105354541135885539859086616279312531465090488960676930902188969241432536961727346515411724194265129290800659626563837617743671715593652133784484753445366651591052805550192004580700915158930449689857093833744995370513134780177289273663467599730818811445905830951228677215705132968267142641920064989050117692079129017762454679426874010734785016562114135149992486397535406953255974502432031337614339602914109516970040295629781975709528867713874297793322461178981883560147928104701540290115481501398734906389452699117255389120198996281976698617417590329368452964275895948505838923035265123601995420653355641872646336973232079188137949408928083679242804293276586517240671983588997425275768153585895969575103533977255688112131969609296808070035628742216463438578316495186497657990737189410604412835190738785941349001898517254182445123092427287459477597945249239525069596880380183836557124020020847949402742310357639995428230572216654856050732892543636282650538266948487135015391221028423478609146891970662890568328968527158216887500664375096987802751805629568386860811367379836458521324417381962265152372548147060398433162000671322606782250803114422757431044018921810363547589893326943115343389033422635521337986492326183359750327155244065059719341256391244565831346172041690167423107691712074928087212966396392282199106853102467313448311128030467434792493341521000659805689471892691298067121110010868505933139563363453558336817294843037294722253114254258320667523385602219315251432973169720930594283038947137092372549014503582066888365340680417652134558397596401510854222479118519848520589220299801315045122669074060757339487251963907880993680297611692187107800695470107783151452933157538268894576854335946739860516134870205779809431615260664162050130628651297032875518880741256690523936758862615988345092934985629383880859715902657533091728422138794013993611565785160671749766888517802421082724635633840236286247634398774159285062348980101892323578942182207153876076136495646616920400808029573944340727278112620798297655162520437057601434658301755801696613627704610401444948800199265008223180259826825698320294716756776709275439056138331188176494023302862600743036046610220369150768879610898682969281324020749770301494500423469110913715539064000361899138039628501960226684660551166996999164079907666978310781196639003266001429923322262771474316940469444345289045905667037510693994253863777078132058364326813058977769878259742244567339702846234795502941498539268942622736358261806820418906341864354540558544942683423264993420201252004034174655409493789773510639550409795015537798791756624195275670908450577231159767306761452769584294235840497273944756665776101375964187849625675216753746632651881381898009819071945853331476578539087258573825964045637809397696947288460790744972935683516189222402548651238219321034490497056384613321662847070933433083415564142864196506624103705319826254032427584809494022734693274599076037496853923986874695611207110016505365812009396233724530199249252552343913230554183137431492023698042440757730279636847194262349169574791274485013670227927581365907249006780290812362794605111511995907523578561891984171578611738783615598131395093534753734526805436155103990522257537001227951749536452195156850414514344052479564592140931784409576535461709990499534870400964134469841230418182529117343269713789979585721777162013954494429408369860852088151101102281856351383016192599866131969242930204989540695145447299058984963332099313930210918423650916287976657890732627896296381228639464940788416902438455380782495702764130463177131743336896528403643375694414345629482568663800080885142431615555942505216019133273613954921274860120586269635551206393172428338359092897748196051415164931747004640072994507521201572076489167088164608246726911268355478279388332134352525265426465384987589061651076128246655996215029524390871154707590186446985351353460221528836614495095694267010064233009477088359888202222444480218488823558908323088641176473321223589909549608997957742033418272572273013748253963218363585943586422624622105932898174156244014080339504960601307166358342128826545591533992979397736839464221709621906414099133148357145153277385495336998518287188421985804837339784305194558656516776875510834777143303301997491710771004060905262472462768982203101529237902621098243792608329489099408168454373284477456343717122072910502315508049970664695999358251341312692376851692363075363437323356530818819223420929095441814116524425448537902659608679233703776516552658916655071999294375839603829141209303252886391469536583586042134247832538431500091667505601547125970481707183796368009381340604960088432715408657719477493220275512711483453199656067722561259653854586788334358400097131212850938185198949460325445031212522521230421497367078939131668264433266950102994992222303144111414210835629063315943685726617187512711315114903340264069908292732713243924064857836947935286911802172613157171002003544782430631677392269110646751904301293322938342348784850198045605664001701393565071379733424590771367087336435006355910709023281758563627769237126628857365634150290589957546527764347908559456376797718404830647678567105138027921024437988765789291817022703310789777369597488618462332885174098611688703898381294452873605523632541349411901739017222275692884194577699144954414343687564974878768185005032109166378551017104791147830901984813740462182528306927656016150743855696038299799647979605279733845132123546013397770849813339739579523777434264986447174888958254527410157555476978626825783083394551639077553225746592472059470772139058370898945567502988475057961387275836593245660470187551546545265358056831515258042470567296446859321023610526370522862806502830067292493313798406165852484811454125654739321524767776464824752323550255971511573147455451611760344804431137785784510211562756929996666366072711135064674561692292300200758620977026345585420100658320272712669996754061675481598584883750230867665115578269625499469974699661392454866769579803670393563276077543123307456257553274398557496412446008275522851866809917602346783795511978561561644626577164795611879203509505870264144706878376832641186016175637282624888698649534391771237792083029067535378637962024866173558764066128010093290620160417110100230376778279485672174197245277373765655257018432526031473366336668998000751239008237957919378614473221080945926632765098498479023370711032279539567194367928327998032850230317600779178018824230036297893629336960315211054199408025775041584665166865409236393737454869050715799879976401107684392362621206604504476606528413622343356918144817349781771810623281820729536060831949923473194881546867534835672501169239017872219404666851444583015900173913986381044830002918863875637086312041622868956861766628622974423245698717407757398345964052928713186189175677914550016888079246475973080827427920303554778446193027962641592834514844395856137777908230640007289569495356698629490593661994994323998811079942224558069946275974331169679500960803034260628352177358109318535831418680765239243997870188471834276702313632040887397164655076711058438074027041858221619662508935949991321043128479490308809887296074428331892471690223609019974451311732896746974429151234285441824639654935850048504580565635888403281109303763084925038290416136116583981118235198107795449019433417130180142218458542871744200316559196240193556363133263592346248402052252870080809712968864960273997660295301598844220770589040541449807325364395490273197266619771439370846100402983209594251783460490643797908840888989912100486832702266145134335441027142590280280971250821059969784344980251232630700498187884158286903770801516071755398322190941955136251382063315053965689217305493879153456747485108162303034144322297686312959681695921030303294557921398026772871607790691689085604135283526087296930293634126986681455857679987067003373905391807503941394966957017389089341486815479323267252996694006526345325154442161659784677594781635955562952708772739209377252322726574746597187073891483247058598304618361800919940680879069527252117253338585166003675812330836668506594161048394001401535210979803826880540951907193188209554434329382977659300290373418793164811694781914152131623332141786226736513462984550367638945080290418961398666800780228591648384259913394172541805187813763650974520953984853484391321360562621131486334565272413642848765813217182554327502638440144404267241867727421630919458282082293410211798341989958425096359102766549843796726794034539270857381591403325371089906668255038073030370842267300239592062328027196189168904155665333209937190342961776036668161329661325679148041973553577590648689178330010088680801085294631668377279092603831551838828451769538568985567268625064482013119959918961069649018126464974865774711817719458706459193092560323033758763549283427553669177063109802157723243221139341939099968838538751524748652096773808980721722183517791258983164883944899606393300764804502431889142282240210716577988792724487568692314790072345577589636718303563547980257440389284214737221309257805386939407796786755017749387178855953691786724911657170542245951701039990724205410311081473773543076141467026647995812379053367022347569269858671062600585364208275453221992317997718300040026783490758977959786099441949235239123023685444024217461455255998398124185976855386801353626823292575790422792197644541012002066309862849292884234435925418368884882901992290027691583404973549599722156806482118452035511313556333315859365712560293764987504050907984436403137805915515051836974313887115697910435718946892282618738015609708130691219097235198729149368422793354254837255879475884268959247077252706240704308362214712915662013718082584554737724911461234373539863490986505840958451403168767562752828746588878389983714892188000903251467006800956452872501718928633110610329971992873814935262321222077845313579678345571164351217658634315036549458163265544660242286962192209462607923424290571357167892669473883538433501063207029184797967954455213622773501229341373210165125081726842410404212768686658459911996458709238323970201291876186611991432335424001177628658814908034631500327120979359817957348061185666025016264403150977438573619793382913366290641053638385400482591741239318681356441986406232890624943262909897279504368026972558875771203525371140901011568639959851856804889011893962478567612957228273263566167778691693172877528656174025775176195067446704615122626537567275699097711583519002821559713439038929087151006684565618071051850604263680657082492583195958261141209449837580409764535028753066416127072289583005193042662106680180933950671617818173022679357731091691692097189285192552869945782052486836620479901687981151521877600420897712042292973990687156361484096611350078696870472992048762088431297171821234574893295552470136246270665469452537517618265998252779233378529567371055535585872070793861640545549706659339565404598979267227053855356060581283368095965579466871129884332100124555990761731039012431077619224172902579177727428017419094670567380840640594066739966693482579594419381250541510051523886062597597728889366883860867782232480548648489894639521332008524165146585145162893702964620749628389019302160164663262336963247412110840037165366583817765619887543527435279563340483592525125128907678383702453568461170464057674892217435680783567504971735724994022670927245134429308043243433118646093464090839776080297405467966421397660629362506974453811412873832697189197046884886238553011515424542291014743021551753093234249631154772189811285492236771467019934104983712666323189677089218431140536624008274034226499705420158121517664299759710549856235266262023064884557132036426083012673791463224349808586947432212233624857028145240505739823491858957171538267697697194979068058644769838451196228325392941905345445564908776473079584070751644103017978168478661922259346009842368004528178690280993296589220626829605059424514145458434714578515597242849303437060826578235354406926024755634648033211911852987492429146969702642486636912246330080053359486862930025123038604673442871139054060832284298209864552034566644090784905638759006120687735426515821466999122243262751042201592354329981788837990969258287237331185332388877189086799170645663002705931330601598621479924570896053899223821516041274917722275656853330429951661843414828623364436106581903493393717872640326098591367314874125379568200542338729191111672619502307074310899618026007844598743277684188711712578946631753654902583162671010332401921324600592648892615959388683602980550235618164222162873874884283327382831224061630092464202337020759957056326671147688873278556187060705363350818459600757906041865263178325785812488234862324182618438307435904834099905260764243243450439685938048437234629494476311013692810124406253913712300119450463214605032440935147653944815746668099746727572220460436906998448655319234101592196558811134432998242251949335353876207448083480496701731457786080440842805962942812973347270490758515266529828259829511450894890281791600750728390115681419057984737674509974078101395695136074365918809403309340034086206537238762736231734046461515312411533014633781885075974734442974604407651468247000191538742565684194787346465981906029140932414515956956986996618154897591635264378431428890672506945538086050295479575185366209481154559838335620808249262030882618432810413256513473480290881657471256627106955438625642092730310037319267627468553807202998923195107063979758794129686908448418239394231451858519433731855792970458788396758168894404250393789791040380353383178985413461356543185250639044063536778175872254744809487125006115238841882442808688431709116457925564710754703304748325569646330848174316934927332886614664370461667049449709128855801244683210543183174138545756125789342695378188056815181232910273515482425763941505167181509763796591968356345548097987956260150172311056844688841709610214212303142488789427984123082650640290277112245152863081285695936841495903203986001413574067072270871580850651025205895501603827385695785189450535287218715221410427154723601549186740822207563613042740576829176111715971958566199724178151207228722186333785489448946160913594799474413388911949054182604576492467683444211575602236569057908202602588159858442973458332754820887368625035066956111899488947928853282611671836281080406079841830421019646102269816949049801118421086003305723419973419696519267079395563932262408708911045295040981522851342727664804279232778791754547968537167331265704718874404894525398475934196128818858412654506851385603191980957759987618109914442239490938151746184277903317010804616633186408462665981739915370693037070156742521930244705304119438602015275358934877816773339598280824240548149276165672109094456570872805163256464256673875765346938601714525443108406762994253110329931615597033892157941307210132451485498498958549678473322421968818696875500377296549863612302010578425232984439078338518272719325593174986720675712977909665845711789062422341603717596334179069681719470983034491833516615201370873134523459131873003256321205431257201159944959314951373251393178696251996171033358149424298545968758719340838837423094305385210179513607246238667353064315056534171976046767157525945195039053472332065186368634426511022173370115412057751516586565295109442784812541418012243406835761669856134601309117967889902254485906163054968955166570010609121140801893053676547382458089171957733385579619316890631132326277039441460529363587143901128539449515690211017087660262743656630768228732419375083381154830904302343496750585938779613983293867590607143496679646441590326727740435649125412056057443759528557727467796834884228663337351240279661598788031021954713022584703669496455546729118151858089487260155375537845289560371610832249486806650467250816258275228660119719929347158374198630189047884539400651892252882811599293489822327384644106464942050290665565556978439227146367836415822367502237163478585289357904021097179607213946113096462408596887527856305202772058938861657245466886702534924490512512388926351996348185393252992303210487060489863520959288997580490112367443908147884449671085987249249168895314263861745559102092023674668722098541713777123359534311768636908139765723178285099053353525035512376365546464509792965532935664856909635182573915814148300948227430867589896116479319063977308755469682879322540794032132831197443804864643407277172389934368644730210608694417435339409377247615143736677135722908488246641867969600189491228003051568709574388167436511242867639875891471405489566957190994079457569445242190076266481889348360093754069661431720566374515178729303135718075213541528638866559309816210656456753780462406247021949219423479335392312710760106252968664457471464607611499109745027014635293104263777997238391067478169559391243845167368041494135204333546721808955563693275720342558006711975632027271107931219352333512569408004054125284361372878690543698043419381739940265923258642785337697680586969900329651261081762807670543166289096207269884754351000327659797092762709264698445988908901512815365389888927981551349433169819436145147255602387505443227780138873571730605481117753137103131771772318962916406200686222534155009844245545108223522451739059515149189568026260945641372640195681381382524466988046873695727113913883073939560947593533305822090714725183473332453814115993683873485002448315935306752598560620175366483704852860225117894770233360603590452844506487673072873332292731577267101121585047731100680467879372716808073534055686052213242140675211747581642639840978540129170729553397062801384960524503767809145219951309778058474667521220337120857298138338605124289914404641676894716955160439386255912493062075380890181787633090204895568905230557210267556150237462862936631966489739003979303685220773028772850648784125438480506427410149204364942190328532618161091058988756370543449249867124101363843228934732548770717410412253852043262866219407073708369559000413042596881694615187729261698836654180596090652042848934887924560510363125999933318263322784034973263988502507517510056508691203376089769113147946717909398523795854067789432829687733598723282755337610347674193012583925286627205125339780350306090017440245870395062405787862073784457941337235558706516041863952604503895703248014920188469484795721469749054551404040988160990878487693870572279875254452833310159617204616568249282163114453546115456090975276912493853513153445049277566638016201134573775768160947217745763908072789912401713302149766121995829342852633455936059203630421725857998063391024973334805664431847844922011736877473103027331544151218052309784143527377125948870428424605986622086914340092112594746087532487133574458057639844593697801952733249116921324278773277272443352050501565254846453854379710422558812914200397178997164343974802424836390689487800919767832260708474398055971366889893432776054359122337665559057523596333699267980437753459385490876390319803909131606203078091310247573913620831846262942743919752413883159409751124889205815797932308851227619563785085400661091594602031761351254901029330417886254269628537794674323624632586491009169771036912994592424468910478852819103459393606225435815175147669403205828664831033197666923031502064729262534474609824021029875761924455734984320885407323482579561428011689422408039389203230795561723518367248711324137981257258393135230681315127684027984791322196647834807701238692046177126033657892388731793120884015584570484196229300462729283170994674678787623822591124772454106671689806264676916686224972745393016226416495600995870075572665469264970550933389578279153748649473683694506178181899530825216872044898875146055908732243274863706740965858142712887395158971119986992014466956398064528258385247037201749581730594126664055478116780498870842989604323692084092647325540526741223727058610064690733210336897818867136799572251378516404894388583377475106925624126625169451650203711312634529606502710281982183948247720476319667263280075363572171648124243372673576261861864439786999627862837766095840516617078916921148293940058604615388936010559144325099813500996341185228974413278897119944787852025549235327361148643971568014409500350823590765899225448083288476049119742803430532287819183349332152936592826369129905907776931905523890588969340220471520140269991549641125367961683857647121010640832083505197861274755829416926116897390486768447878538425146709795257233870697893273411451865823101669334055955521529339690318075853602646118568657492502169610802297186708642074105967705455505498161039355828481339689111290689288546562619049766795240411078015725741008479962960939642181907955283484001222434994579581228887938615454363785053370011814295167046379002521816187374071086983108068977392890873255160616867352289270019321622939467994258939959386533808406283293593131763090030142734152626517141867684841213945294121756057043617142728580701966382874003772500593498398788630399268103767457100561411331125818570111714464101969730085287426083673907257459274138086419996175137107646565277380987287780743033152200502799817140924129653174134122154796568493223418613227495223167949767608640682138496243453183322462059613652690523252894313249911610713988933932597227324078677880560494844043578008052061619789499480887675906381535292917638079745921358394501413733278622850245104873934194706685725704341581026730461985126255113222219356754289069991741049999976350776862259242869663404569080371859876001655154868265145744012551497557542100909705691938733183647609781053123665721511931003681570809758257743134964560886470121890013635195463594246741670506187104191284718009449878685013056078404530183609395061486137802307724230528160887225530005531902212291110611101564434218820807572768134798522530894863165510516520074956688100248012901378444973201216822602872613597173357021941837266694319537364443185365612769563727920392390882293299010268364519114167962011751278691258125847212393063777413655415296456969569253627272058743392055963892881870663938316019799718501769979047712574629216123303570857869682409860920553484661717188239525236620788900426973381173093349915214614471304558770671149125008472711183773671766251623248607111692501569281120118522592143258023903096916042336853510108405687719440776194299795465206509406890424266304980542836301404619710645793073626266020510740223221281999300283591288933405552305504449729039642912014354643204767150805849809124795555856006855019646205318115094090088206872646776493390236561912141656974834505880198253851192093504577893975080409797221569912070607633352625223175416552490890277843003027440233503213847517592237099578855468361185778194586007640088259725259960788749074658575551199991352045729395662615863603825207064914925473155596429839486520587350681487428558617318676428042409114381529465890544584870552720867165174542964263614896967567927755357235085220758028744009512833960928299146279455907664262838543756455383108141544015757941454908915409603253878323736744604252277589893635156969086283584134808030351413542670755472642109998487607800318045777675480205391382666440339821758368878365349254419597416799881058451282173617289489100774038419605229883596527184803370725362763985690203641999647099426140875304913818648588584005892878138824739939477527673353216555533603106347478503430175946088605827604788712850431798909878089367519372681812826061654594839346120805961007005104356253075381986542004044254854788724562977276189753628065160486327184291822973391802458584645732545088628877426872553178677989085902163636572535502022923940817098244130913945624516072133874651587675714689865948486592218175451977003565348852312747556974023802713805122165465005633489554930196846719977184716365268031698701858149209852431800221867344342927373328183579527987460199635302589554786352885913749610998140739510341168725274927859840491041326701211564767024864166324368263803822411284982573962178747024462388004987669714254574307881757589901430824363720352718333991655573624501498902267851970070797827838825554500508675399651991691496009540337744597142147574092814059127161986293141043232735911555395704725842748334747420499073584666944229339305837221396929954538575850756757222987974008927625103912072620949429594344838818699087185790132737348356401143824773364042001097248432241659267928952645837959198881580883718793290727248778624900419664190412387242539617159764669156921991113620800537273012351966052035479060173043479563414359652267486188643660503309130539548842982993804379713430808436873781653758986953174632995760108924548952400943980831847509045041583228010785947143849552514358650962430730162050309507570223748585323175722319080021387978477668444057709010989691741637114823678311980836789094224318344830981602655148618924308651650594133391707425754225549283959703813079901671054865645915905531175072935837880719456190262720622864057332472126451609772129336058519491960547984565003805327670202817929412574479140171751796810067227598130217056923539372047814651287628262167915764019181774953188948527055206414373811506076732745581639690956730433688637488944064306795405856082293713140832758047990893825341560958614526412567263792402847325048521557392712767184107579675573183016816781233639037889342998241006980102210469052705786692463299410979973356583895067602852610800983980866188103533875460027170642018315395158723057199032985241459508950097555664905360910787849900912595988929998906493255745193143874741111221587682342235610285529225440234184141564299249105442779822929193202798277632981009016968770009840696961300420664852994823929078803545863068628643624743024973122881744366964480477547328298738558972479127045937481548054250531671922122448585099059770571703642679348634904285677893912917323371229577098510873310690118357056786211316442117856142864090165311305858079589825444806523616413060324879976188204304515668931872684702115818192405006375652522670466165448712018233254620537421831734558440664153688275372792161387812529887357218356972964160123109590305898373878192611360318183649986698958410847011055095051159988645816999422799007716678793117211604479574264851356211439659411883477736257145215440040743022323541446388097088498042465188699148780709554240718645288223866637209156274090170157820213977276064888459570918891964879912477466972310675359352452653725365443219461814467784937385803989829044878466632153142337355288594711180813658234032889337452729207639528837642695924843517515765671664560629763562423772812059231041535584517390006314161419131824685406325183613416365799925485829007360214984947944745745150289720025155454693078253425503384224640562547303285615489844013315138053253277994629439492678538402609942127004800481543826399443622591820392110182386667378747378350582762577320860199211665356092507149398020821642907482741874072778173012692423262824249550927261623151300262123087323441117851698006685025025246631244060523543639513640135287893138217121079931485199052449359725693760352168098889413102796287185863437160946622737965473092424220174626260960370215679022391504035907732821114762945370239322790717793140936729261976529174119699767189111411436972108894171390447106094723390805007797639257122506432010861935381332884967374469342793078557102695365618274741836395947923479057588163087806106314272017043716487733111525128242942484267004818917842074950295582121686005263645936489858498902520053651983208928336702608887743128650285602187513482980104265908818659145337530093454569617003989583740086102116859435455267454644828845220229981315099598225077757401362055858200478627369874681428214852135566356618951308238037845706209145101025773087870620719585883791209599245490889442589328832656376954756742505166359943110648849361982183191690260514652373575245162586623916097885781660790283289991742749653065835005321713232837308854127800321291412518773094846363789411211172415793298204729658709782720915197903257586176836977443589827327340729745882432534037699739886907915786180871784823874522050062555519538192067017096990349357933017327307109115755753331728154961505536451311803438520309099287503853245971248273240091760676928646316540305598272468835786114298074489097242390220367730083520029117376534664907553466096470621579420005450145513975448773570527413225078075664146855349405405226323571677372805381981033221932710424272512704373210442599784260392808880020104884972263027179440353664618609867250464349104440064749420440051021461631135185951397936575797312353022932633543862532946985323970904776016238363764102496525723095331046976688979061093538212127185218604322199864477828497027205549715100179140063777425372942481910103834153643650215863282582378868168437912768341455960991652125685028076764372743341472678524577327625550520921821693592614815164371452506138334066293167018066479068541374640972419518092912050828328451033331976566948893574962973339261806085090508369708275806380205890483187572785385509045436409703517541643455082026753290729335675498342669429993606949217693777625357350477416556202063687651150322979966091681381533771620977313917367720290383696347964318548132498674793057463468056108585130658200803488516507323639446878528735264053765825312190432548115684481041736285150748320359968807378012406354185507691968653252538059486080453026900613557810501517389951291824951920424322181565826730510130269314156401778508768407492522965071499520866868029788045102601063902807013020949367033909069235571203493903281657367389413259081973720066563345492708522370912276099374867714647901592613331588772744827387933794574282001116850734520169044769846710072089315570564178808473726502765531006916789844643577794629927665869260603232456933182214500675570496511443868053741166688895588379809774941009320533809290638450130159325882516976269164316932538965804298663072212894303999862391838181124020821821460395192285984722329471748471888276821302810583998124607161127491283799807851011061423754774558822679464319760550025465551335670390518814066226280778706330953504670098753768092324800393077835652436049829667679923954321005978120469579492623881065911695406721994810554895825015764719065160860928324960859126344723399890854706700950149044426285863740378448419300856738847285761296393324889594645385559761947040411028158429920292193066804902685448933730017390884393893579717157603133501430447634793988505922424702857474837305465046196513563539510186868352762968536199286113518428808950921556314840209750591296823797393252876962035318097828822110257805937621142575893425344716829941779683739455109265438851340476841663228959184679059735737771313768107553423564842441601335346758036426903188113550310464562974938630017319932079437883515276412049047750941344526463559429046170475474729563503666260623302434156658318178469276971315970137219180989420206543522763181328189067874595376919835455525494788540944684342881237995193961936020766185382239203655957586423550929521789502055207019046247566270100810465345360733300716794012171707340685367168631804513187880743934283416439267753707845816235241836238160770674501183178859400903167488080740531020528159582532563920052442979555417309208070124949016986840829538411661479394548353788342691040239828942270068873927391724756145515984133792136129242976919782543823092809325031142926233963275409621403159532593480901692814305988482590540072575275432799356714587172609624055640758538153518026208188977717510432612793945365804307085855712455987789960554084423706643325185737227049250423267521148662702079712859376931813404445046777360881139297978056185865979326475475647533806963591997192428135965310537470400025766257138900233191096794748008286810453688239032266626730933296494129672239112829879467906614418499120010251306548058254161761618123940872916390861963266328626265918049588602378658426557710149700681533119519694252579625137455899229601333753750215220719899749838839944402233757683292417786701897680557367320964927157441686890107296759987439190010100345869429463697009796666494821132915448137004163097917967931318164651619994651797971192120760158239424961079762462190123191525184471937095170778894093327119955799086968770864903151486043482194079340921870348429142360302821120352326651886078294047199390601501551178052597899621616695577649149705200179301211365262186851878782702076380015485489639526275440665873735425737545639656728043312330913369136148432970819084336537533183538821841282558219529134065667846749411613912255961868077985922410292827885693684818093842741458786805556146004123618353123275365069521803771499117164205296275446595029699594074286800476619561237224170992701006727956253611945774527409606745438595952196048374964888202139001474259789385747754728033705961943872596357836175037054036721326658150578554071408064120329242031431950446916459061539398036839794864783009238959461827809608871149565072444370785394028162575818551939076841403862555732752494866628845979102199939630664910100828015521432359615388224175060254125448961645953963660315587748452744150846850686201519024912684379618553623672062677509279701447305177163874167678744940828321390422359135945501202615708459471253306552495339052446452299282720665135182905631915486965878614853569110881645974248098267844052065731015424748499754297062586828374433594143290472679689695736620025366986148906193723752491054692884551197260189898842014931830420975691233375897569671467201416162080607355256846543772024057042546820706766032534591785726992609749101443812864425940316735223350165508238603485974265026677419307885990160551766621411430586684756587696146836969458771253568989420370080781675693226405794784193052431954236417456184684825617502357067187210649049620649893932881226611991914380077773724046811450126343529178098907545447284956022310682377561168678794551928600619835632997972850937357889526979958065277948723115213054450106733013401164658502561516961315929250333055105760668351395865458269636549592175827695603997740665781135839119622845815639795670604377150159245804067664548062680853611372480934099523793716262056415457861788776258781996013800719939216084323533228214809503159565665801984871209648439555503765724476006202080179684200453523926349700902168330904908297653331196713769676542414055900359314017647134736041409307595629962926503899402772318086193003787690929626748603415663230851256620833045314349962813346367299973644044271269903164814851739900219298269865453535980253359453534170318552228134373027195994939192580804324595112594951053180018160403305926178106274655758888109694833912784357683613222506442452760891921694093974329411817597622068545900993600926784772070807252553085005735473072468203870756621876361305148474738578793083522877180641717750302032102646753414462128019796970155482628133926277089625365623283362721736443036478573618889755960891005867091030142469595467963110939022067530942813004773287993967586451260674000225514650619406863218056181488365903646071408957875111601123452259705827443959146030479675654802409295273536735235541174115358092054954532004068470978094992447807500909942411889706056403939972321046828623767465007358512777713208610068951101414671475286360942563736631880242248093906128483616412998735736181913067786286407366087293670075672810209305377962274407511869314012034742270583182834525828969801295286431695048095343727673765665875556072444717284711354830025476720207453151799708382838293600009151608153172203895726507037950331693539956377819769627067738473864004993556656505071073822685883523117902502749720777799641699370129457739375445739417304102017490848464837131851124792696008321317505866813572869009949646641983924190277422212726005023906944844194287194058356674276833279662391229346059846921982883423674418027582920306890774977790921355333866174113866273735678798413599657672709659636631297365810198371626304635583696177521839865960060690501391188294626437072657953841611484971498223147970529337489333238188168452969686591312106781224598494513307354619656182968720622313208023619568353697277989682307172505008420865232914829523266735513404795569019987267734388742633149589691391318214031340339388566094363137364928783931393749929559382485604470511522445657746487752001543027657119887682565999218304209034181051826102497832173885863475031836095601545889885792696801406044751092624840559402399882603004129421306828987383733064618471916400866838957175554152809742598409653561919782756787071686928815283303052891281705548815185409546080700476726418580251836060183897487141943469762218821262472208434951979810012804570485950185104782924493879052484793448096110098095670589795683876662996292217641390572066358283689217360593336331639239878034743731921177315634478398153261338027846473950356907686203914072700668073196958137414314734653825391675859263462571326513005431388046751795449204841193148003151850999575383112688319426342267372167633194577352309525915341840385392261834239291636162923204860376452403139414957013822529235463275166460928808525989441979943309431131998696110010714891223536462335506975295323142407545239904530950424234123528321547425839816195483759462139693644484519183187337093507578805639744600918284052350537548127308699698668279089207031463371384048737462470347359846087301956953954257434310809189195834474165685973118768881337192569720804651751774171347454443696411074811474263423612309496054895375840645782920991800330019564619186788047757696642332439945857503652886044414145404902788078034118071486993424651838174838877815111107665435541900532461186012493088098479497542777303205226350749324579937749704495571252940687600346616198333480739348713190706012176186401495439801175524941679827055974295431591973009135748145065420288416288964928233923253847565581669824191623925574069907292442047970103457085765369174690837948184608801091317484867870047642892978609986112148182282546071265133158936907962705589163377948635492495737373869045619619299180314729343374811047081459095099738315609262995664804191287725402292761145018339203400136812395571103810993166073014520759987113519784023448737683276716273557061549184724430459550600898696259564617643765386657360930417886593488144667801289689147484421300357089247073293017296488525428093037099871301671474132836091437987104741621497517900448980732338070558271331439766068069499687858098617337503268631272671872052100369604724614924566715801900723625742996936813593947939871200170730676390299960857392287752759457755047999292358426291817412904189708194097432037234954320062932154074598419573799402074647503366144293907120949205614909445121135708640941556610844045646389123865997417860915176903137696824862482946570287595895238969684706388146826828616972299322020001241320345811807131371900807741440422398941501403103678035062118129535681817022459977244068536369337191652685301119415772802078923144164400008202541731703668767920456898421058326008272731870794586318321605623451430902015135592757272843607398036717482846004553378918067001790038605609909931864770102480186405599907810111820374078690761841848244077418571718871997711874684301055123557782160506391517746024838712478225512783961874577607233661716419844747992510842815006779414451978757874952568463786013086787434705447521726128505113163177626582977671356693538432186789947957633208306012588172193854601266757860518432863659724326725153826271169837481026854000914385309413109341408529336765842029894282882627900525234572109374301011625210787034892176688181516319978644868001134359619588739046661881389215826502711569465563630181192260094818380000259360080396679357387674242551206361892851325091876227472717584235964473902227077951251380264048150987544459512262085414544308520287951987231489765958901632596247193313795844406899371670187942762222106298697278097416505944863133877805080614509485148650120795102839105343557059472289866519964658308636540486832892841049108234183783223266568433723386447195125729171197535109027437388118844139407208865721364521811897934417641311850757535904788442329090181183415264147661475516774199361921663822888248229446051982428000022602181348943173195525501784021763699383529723590751938789171683484371628230470068155978016078546289146283693698973645641558800871175195354968689750182851079303369217966433462065691091525509954717464660403722147652908442636341224950744434014261400566387001730592668121718583539768863060304322172148350330908895156002560829303573620911913709769150504454506107079285168264789832550737692836132111836617113277331787385172771283819202345237177368019381799983212804305363937394759175779404166445625406400352316453994902955519832461565778159123214860368629120850843541298941827184505557126487670525919462075495788343372115414700072036223114427285489964991007894567578716989688269099530991708168684394774548732932557797932652328206268531569053484698096271501954903462403102910022274201998689070524280652919888986755824430123243153651521646119276271917022231103508346479307390860197781058622391956027860486837360875155016656512229079290174358438207862073828846589130426516932575946297174552303257212215126495967589045119939156923000770952079587401869728601421045372660745518621183442400884578573152968672288917861141197350714729246601210899005149842735091630071750212714100854724171574668068300730189547783124428551470731070360999682770902370957498866995724833917251432954512102765063529514190179669293563809415942488628007853974133927978779907532170992968883862985946395294898559592402719709192160217989353412172167176954113437666220222322589398283800154027123929666199002050899706656552305030132377633434541155485415326462420382499726223082246800431455678279945892123823900755916080462430259038709553818857006694387295225887821498404164699729296288528942836719091687409244031576353358351562723863124079119507234704130380064817562767073921203122530411490192679219923555597637436247595245737368959524601195990186985817688835224623031985315407436880965683054182224630956578446267901373230604593771421836050626870001257783105899649321382747863362297620244597097008044145674841901210261353507119336671610736995560675044606682208815493601028708238233900743399332991550405427862851100098243287515505693715835116435485777249136227242999272326617224259128651466808359782220056364179249684275897973182165038880665352613811314330803634997562165157032197986269125906806209492868240278259733655471496308161606292479348518433058512003067402698109575792722282029465462402673914094673555137889075827592275759815735034398511796936890873534354599579473317960937237035031813912195599182255401292281132248782861723817549290956077091178520823327949449935019566562603174733367713090555089992458259375807641962654488840375908950913078359160482396780923878630171952094735518689537339050399506905626815612733401620966669556989875177340157375883542383796266975855691372740977410372309049896950904613611271961612335011604861723390115018684227410421429931777026076243768974395282817822037371148282478671811222174102814256090420145851768745692597622447873549957297667153905357476812000595428835520408474782555447574023105764810570963883848623471403122670047325514481853985964404434543087082215738234946736909839256711259389474131264281153163503661495494956741997236541745577335102693460276827347466044109188311921400994602547657995530419269091074683192624723489893177443860831073203422574685861640673140975479045664037318836547657955913580160616031996556307943357927401981437904911368109277549513825043437125712082083345788759643960413007415607276638086473078236704671403148855616100493053631301003362026018504521955273641997019678567671809285631923304554325942634991133061227481957421998423941531048606503162708191492616573445265953425265705466749020347704360080021365043943676690733250333102663093747150442532758803772634008913819517545240917730804422410002181132911321662110758287102898710574382142041209834796236854962091337462139704576014590864495444964339140600569247414468594728841613552329292255258563904031559304945325274849777870215954521782749918371940356434438565875601754415311447600123839959012377332084730802337176626566143649698270269651564184837549270090721389630025325884853278995661880810688082110021748256075137903443871398390235893961463481129209401519389833541151191239369801031184006428067432029182922039995558390331090995165100682732760839535281514353435255149826906302403928674874756566362101497058800430177777505856257854430637072820096819461022061033035814876791235080241769256395677761805696738913752753328047471480833026153651717875517034086792786325710817715932425822222879759573412725584857234205825591305562736648954369079075087116537731031636354249154782600517222820400427415122890652418918230430839713730513486789924955089915476603897434610134189795133488846695861754449934728931368834465501562000587505253554921469882254255498639556878320479219630588729454735829931370829464752733638057526107165865736095181629142292849168236426159329779666492698262794260577936504379043470831097570570915986575901039321285453490079484524546929239457082278952228389387013353594125205172304481938583973372971234847005487714356716630832769420896400779332874624072361934722125986132961459037667875131974257013988411392144544319138350024029531223113195798211510262507961530239358315855614806330095569732879743424636277898511377846739159175156894726837976653505857526996767321532210802829044872335155385077646367308131051010606934528302341417407986131754144822415825122000526562609032436806785691695126905628802924050782180412973335247600682562694193497001329413888601675377337271737568207411998818371470349878680135465202535973251693033887122462105846297005317428558299274762700810887544306176132241608498298766053899793078514536654486515269209111223913829229574945338683000248937377640308092340624021969126212353113292921453786405412365481696676393502907240484790573525708333011462300049550680636622092847846324362695492244820857015257184894608494829954528242412551289019743601902044092121395885133412798491892297043383062470496710667092248808228810201180889324728374022804078793107583936986853962608249614546595494974237729732870679730183575165023688222983345849539841095748240288243685019567694709280917982752312008573699202847691742886980978542724739377454108255694211608421294102909454005424387390342329972933275228066973412944811209793868207211644881464451339367787300546711679612597614679596366247666123929887727454927274031710842397328428766556627500769247179394354726940209142736187035301851642189503642215933447920441824513668572313289744230231078109466929897827209856063490722644047033896785989764479916968318775477904944747421932506519512547484713716608303946266834287173101890376040748135206614601321953055064059008303870247164911884851143247705254899813376473969338518760269387958365594410476290091064577834258014137762131886529207483904835988593367957785714316740309801623948042805706582629761216524242435068433146152537641017872003559622529296886095134769615624861542379495291465269014288278968319047317608917213837461341208195524399808206797511365528381511437254027342409674958567708928778975065790105921819538054462503721468241353910794708480319617824605285027685837179349218356585811053127630905824558762536177713116883034813425609305304975838032700813479370197199203734222982458530291545038559401112445904707639182503900242592406764443411627101436582696909873486010959377122779617159653257910451054196586758043145763782891293261611730370939538467606055614478895999619314279528619554955731306087409690003925919937273981496325125296997592235260185268190541017062321952618830171081072512279991746839372252731034026401474306861604815898398310064467387620239744237206920663813539816435714503439142898635515742963032370147567929002473906429685910192797182091348814518201208241853488952683950029291904887162664939549102236253003051862847398491280106122885040516112859245558607651150432624828095168467071035079677060172668097525567798746382201588393419122651626975111316050410559168743909649246646084288646648566934576965305280857803868717258646131725200882313924091665313838534061755880337676508495598625743978505909176327110505892474737691831213385125849380836786007907548274002440378836698538667931245804572601723366797198595913089152860625427056676982425714432488053454482524894664469632223556437214154555674728793117413450248052637772225866233091417998369751477914498922697456580279644884183261483650975723528650674785858757429011859077091341496688856190254051590780478157764816871064971937139444257527014007061491093930609945396484369372983166613853606405176959616367566654620927850618018298169799847495013657094368863496315143616458342450293934964811169119212323409237959082096422512276600684343598510108673851554559397991970172754468923737082782148760019209926325156986652146523287669326283334832110737491270401381428376406771255131942307476471200128326927739674344940453587962206912881561012759263394338892617548229179731730497613462872656692385879804615516601524337629372902759494266962551451375065923207959917178947814416352749370555340641583217858373192401309867371857913541397579317752757584495716389568535408231762240296130517006967421351132999250145596080585919776040055645005558441857206984468972956655334559439788868615088183284413988150945033960147062625566808129966628241789806792196822705135328010906752641670606568065178863858963131923385824680402465716751213901013194987816288506729840519424437467267548865038342599254188190206139636953463522482466371614455885965716364127219692116454478094514254093329097796842707366220167033160397264339400593944847930964650265093544780400443915110857984436940504552411998140399037935249576359723479660164123410394584668646227017219886832730035989162719262878845602202065559026333974972356263121252748143593598671686299375479951937661670137865499968770370414076349602168307033905458724363102879450743930594920578185729175799340383176823625912604275058348737616331165526348861881863092979285595523489548330556157662033579979057359839506837719179697776374362431621936292693746075744144879651320392455864549492741368293127676801504313893979896529425952696402778308191107041859320210899062349828283390837034377186806960750126717050975379767665763396865605382564703613086803477629807801884272739359652857261582839355179319555417174740475368058388814532089915383034986117008919479108641520300430140585235439589356155813226910474405927468956283609798537604487068397606374417065099815048833548271406301240885708194411785463994397555163772901174432722029819755267461127218235109831545549082063084129427550934792462015122545749005494739920251278809857100447322502469493616015438235845485484993583911248286083756828031108136606710046226081344740761094427198398823496331641331292499487929270317575599539091694105143316067135870372646318127080599590136434037542696159589825986483849316104976175004284672789734274246816477021048516396450980087780488210220873000431914407388439837129740543685459432826194774234365725530222621366531815773002510777962704128009897784623141007799459719158710548599613720616531767255603237380384771522488342522776290603657451472299140956219872563975990797638081563719845125301852161915202124323404542734300644946974598230827698607181442939834603385655727579861449903143198123951890920024334498198105020918434793772470195343860876008281413285096665428470579988403069420792333597997663206201660220611007831400794672965889620913305117248908671072704086841406919387924365025465851814558326302060022101414464832889451544295001567434312447399439925767834627281199997373568555923054665947197735167521066728143083145622051147395117515281874451213376187746002705030639192248079950302164880975280639330587630660213355514816574918327363365177433637484092965632897577485576018571085386279311592505149379171506915810084691300248870385313006148338481669578569276098933595902771177295836050073283978599331116590227749771167645482966864358931546349756362174428583532010778088628340910611719371821723281425988516794792945818146641244932968177773695769898241081748246025862028534758405414962827625594381813326117620679125464106536408167133365804805138427003167484164958379704261623200267649188848847464274422992854862178100792699058537511756386611841300609984366945908673508419138834199769232983584826205904296812685622567383460439608556456096575514445769744127323754099949894779072288166370955321182414601553592173696170060711367487559647451576116735445132101186135630449906947481967096554752470441037020071769919204953730909678530453637011765091534849193052449355851478687096650957435509725787934585277328322394215365922616882256769290145226771581743739692174484683274740991374256997725718584586442510799757217748909113326202436454676848613673034439554049409926636390560901740798679083412055812129417156536736609401138894907742005289299265549903989557694362055547410858177566894910387201844906288629784714629478080995971454020455570492486578538189980596180829488639504552255635349350678895176043621585114367285475176279202861669809146882307098597386218933015626094158195403045681219874578562877373151937921192946150099470592195571955995709923773083680650511910211393652484852861766200818944053401617091921591176894285388747718837954983158071757972604067511298430332918171916021314146738613819119273208790610290993234684355575088684135385518530087346307427473376933239753117405203717610549020584718517040830725349886207010845421633581884984240376457921225588342491511434318393973149909895045040909065405295535395149705159875581742657809715879320368338243788718183230708635805075277402909973625362470277621299941895597905985898376007426441913816531533527305360070370401543436228144087626851141182808876731165487817856161841328801224794659751473237348312629760007307537279007235708507614278331983209937437542776683583753979958745778519668764289387208390183655676199865250351424125598272074122029367169592566320006442432699231352650663923181482222602097503526348768665139115363094154453488771486600121274875271874723979195803656144925981919740234180177962393108732681764837953530037932316479105272970007600825904398491025790813464822787146301179624940969986850966807438378795336698878655584460980495636683627526401576409802861106373128097839364868891339618576016072183234862570450801560446842049408116547767289265600858713647363604159952323977225508270249422486318794398311258735072694257503692912696634154859530751963146795520497775458230951627507502781303834983299871582224987119422671908685864008230165159299151083463914257147943186396058426361651426874644642081506293804801967010501557381843388860132183551914380185134500149141457370226249602839993758132446715402418761684079139123335820481352421663639892466910016462819362687232966412885379376054779613479974473737344395358114774152341138266026299699666296884091331555918297612463487711948767594029249071035182503303193656637789238350189459472773684239775733877703159824233854625013619455552985443912372392596783762188600384277993279896684570570264896158330218393521453155282283422437659817032834203309575332242864564417199787708585492629515301447409487688606354964352632165830742302325315550524663442859606540532490472029570968323320488687222076898913090411700183986415417921107777438245287965720488477547131267622905772163645254550903580699976247391856633391774651014907319110424123277093196922573095027423790419679669730124006906882535198282855798203020706617583780408227544944956225653528977418567736554613880559631471951769877527922768389813177457147698552641611414154159946879076922646692960533544753420507862296699689692439645366283884209720027900012865685562235266844539041686442721463140765920386157036541220645227398221984316703977527752188427149707595933925089903844853515315128921860813297623961020253182988669546487669844468196661230125331260872255671912933874591473816375732534858247123148862557010577412734230210285225195967445716358419435251592556071938309762771477107695270625035774210844233330360082990431383457728906185999732269561284459606051657389363437862229070851246879814052851062777657672626981228819077996170867921711136680987744569703016444886744773009033175310797241195268023039259734941681120523697121597771148079881835445793118453266411749248541685387549955101543277494011562438939886525095512322253651095963872407229271961106815457953422945672754471625642496200563620874857163612036243010308404812148221183484961885591727226282061957821259774539903581027828198279484959313510349321680342655494535146653251150497619343234480540179615049696184954279471386224183718892322296637479344076437412725665664331209630234792191330488814174511804098653048734593836462591213283580312769726751450848329886941390616964050825407830763167918433031514991980271584600505027323210403909134716549757431208109286568453389603938578783151267646275390877067377989721354561017738966721694773933554648431770538264406627482596916397119245652790619915717409904720602574928015955381657205945752443030487978471709297212106249687951875456122209041915744807704346900610031590618100754681525569260035842941914604459175120090996823596487198441218206745738844184603875034909411339119153562629623556055598005099856208271950384264126137248470363750338376427385352945170466105723472971069946511371708295791874481773544130618920561666162482431660546433728375636423559482630442414630489758173178019154063707924006962794005060494443444347345724936059103558915478222940283769360865647839062878310266171979304584349210369210279664467091660175200889684446754011763579617575016508140583902536310577079187511999040740089752050647536884917437149485241303259133561739009215213404851568085122327059022580436040973308324842638360036878869457211884120377026760746850474263216963701748027288080759008500248979232665800216409608814514125010445129286507196377326954266870618003174548653378140764281201119106712474748910550405763167130890444434333660320761791712795386968248477885349255693010334985970782471493878972809295575671208402048197029768994701799938701143629961326732244170002328261825489367191350730303199284356787940602771620162776951990995631877182428818068049487985827293322133548137771075940773407437665474039253031558912803877112017580745531332756798550292024832483981885271149918504828188227317816078687379865427003911748760529999819660930274014111879254130011891122140621768583503038396590379890271554342387176132443644424838042438125289006131903189973737923228171676124252198253501869959215410327761314635564694508467678249517440576798734572993286626437201580800280607048194509904612477155742375825557805838784927714480988817785276437012163478249723222411920767444175999423816019218624727301903401645144010672168280655561413273604338496533458885516010346310185812986036934184926755134040955611954172998418516884681873082774743631676262843431239411582438697289821102928992423626192437392703981327783355522147511657590624632473731802241364756359782683178372270290477325789378199881918034800906184103635135299173856842488371780024933935355075091042336309466209203153485651542882263619128149770485739613389765883067363526620772208541360674602296209043122377650942950057721362614332826208352562990671530515764485614402490808492838664765164710273209264059012476993391866709867904725650610510531441370916841006219488558934956784515517604350789149779882858341951747964135036667179268957996892043789278957970795592417807258098119718656414787808669074005086034852634030572123554394687130717281826837400900162446899459349034957114323148891732480325598214796221923130450987988496858985119778002076026216614406001995523246664646013108986602630972846140874300072524159402184950065082329936246885666993937016606971824330193910328054298419820552902826859275848254854696379742191940099525346728157496908545510199397069851338351380295755599770575450359430644488421642170476925444818962364874626763699158957707815052102936612721287522491618827301597545344512953826939907206955527503820365051619163522151830761832907486425617386299542061228274161138249229855975186390572610901472763979917880950243518626494404094665323320272847941823142865827153017172596295710696974548350875849881755445609937740307314944603858586456414626506754938477474648494032104091051445197449844612634273047600668698524423589284559857485893259664933969858340190371456758359777746903949895175001761831845386343816885629138818543780986099613476176772520234972851443893826746110747703004366386614401904104080675675756018114641850169777441649110062997339714931941484476533159857167106039509434304934609954282414726031172941575193464851451940293094416042700400118184596370150997613715049378057374810516453013820349982089905943310095160453969737028686360117732074540851000555817048385565232169786852765590129240269673559646826853205968934145351137046497534047863490304983778492816007411672327127624198520028569044414993197345351280707508520007962206937992655455256546216754706899137179867373489087168320472652296146037953256320102574222701277256039537158243388727932002341275239794873902005070042794148286863550706578754366789028251152633897620156481579173652763432586557990818197612232235504946695939528482237701708794776984230245629798240087812271761156891204809435259893301777274437572560653998434889252610742889863045024343767774415996734723959351441819153438649570344320626173965760363845045415842191304416176449262544541185809303869292880609111603715905241564998111087926687118198805452993563947383556911437806432248934645563371580088182467232020030290977120352598540300244342964858035042690344944570495921024655650363355804987542290366219722926574596570640871930157359263441592497775213548059036931460161369770098381003719573751530792010520571344670939014812451505029238633362364234054254431496467477732821596742726736677770469529832871219773904132851533937831234832781081978041265058073532013051570461303625213500232018822048352471798685002934561186749525622562863439887232554604305315403314715525455847896312209130084431086167745933676348081579158646190819814010693083229434828643645818392555044622913313263546613817068760879923565727952774838433945413998406157237735056207618402469568968778657741558460573932949094836729074789682142749750538699018742325178949226616159023758146678691738806022937843786937026374492797666946533001937593616317656324139971016018977180530564097517092854272252846201187469724446150740849321289449692349951074712384665827818523530170039562211245999762499181292949624591190626910482015174915556227454727803949225853224327300757666346710595537560015391895641019468018859919552638637952627877236137282701640072498254978043902042223830580232223669209910100345325236608483257570493827662485531444095631830584170416318319799948122472559879794951681702894111105712697094887260578364752833925267840914710218984530499054388788690799252464395618618318537397985787171086332066939145369081008660695030987746706414133876025605824794291247683307152261238451486151574295234984773004532685593020018813029066398950000032632116078513187041555683233681315846569796131403729311094608695784960684050942152838237687091576046734039023328141335221687848926005610600115351659634738475519360653166554293773347632474414354344981347549480560479039783212883234408737655104596431084571653200271953157479620880406666457675632228038564551474884001231229219331684022605289870322381996327963397856869074712058071554086000152081476748300750173274657358778814220145000222287880449160987535990976291750187709927439326250932024924005426904038009065285841546827609711141675867484967980401706858477203840900714050860677092556754781426336258245184634628167554951383167431588497120527679824484169104110475325767603463411914314166103627273038334920548057902901034117885579943151688266378276473527165961365148136403026813335518721844758484130705826529152958016909859652223699447546211103610419379457805691440879181565889022351708312266878785504251947561808771245416847423852221915163311497639694121767144338439104429992588760803528898884125726463955659999635893490483725503810480718314674537536585023926193379958149109224528596635716628863397828730457507282403646568993598923267825586539116868051787424716534830690961722992892465626507191523571260441660733434194638766856031067714861513552421242630818891891109624188744506331228783521260208586064053828847172267466313057714115362636538470255221495564569150896622713313525742555149016620235069519717086374659953292385650040169844209347325657805237660043067110673996987142377326797939991126142942584925333828769561705350357623304779582822055511116245475199141051603590423760585942920473899391641006628240573884103412511999887407853476800391082703445202118907187685454826245684402406525585712529034197250307455243142953141154956792778203206894878787191306509752097994334647337341485148323633130438019661154828891955480358070876645051888436825517078650443593069476521163003942923157058318182671193816973518736065053483939050500159078126299447947477120973115017430393680276075207177764477752496638891411094578683151398779327486343442116166643221799862645547968380009093260995611838616562548849161596825608323062088016345630036819412740778507359885543858841546136403006919019380729703355314385295729707682438197974768899652221522147301201569798706616078285189520346873834377203582901002815884212278267959210641734917685987528885712145761543189153646251944566237488045361204385252438180885597459278675154670223984317970888382856083568101111163202271141808438887337886914612961165955781753838383109554285182813215628738273988635319785039982864060359535175934068457740042556412720693571219215970988645928382613384017259431398306016699364161662722069057136793220972848658247949251067203169352124326811689170657113559979494582480589213304089762510870253178149587783860052298140418160707129244183047880371571021488826376731263568504450705260491751906799020251502932654915603570395215498121730692046548166112041930440033888336418291141015018115579243969953820443301199800515499639478379239436531843759070764256071137684689289234726557826534768081938281744791127514968969482452908460325575891880495306899083648597326715043798056808953941365939066364151700807206720700180163876451155871279327874682399049326214628841821071888310177733712310046714943417320110002681630484600846878430661641983225415044300033244784997882449019301033375364298170744131096852988313750389143712844479946205585588895896322548266354238187159036453633379781712563648490494552001388512354489613256144251098783649193522526956845248462740336003100862999909437969015580844374988506227455255891481487910539700999299373544147940644128894686443193201414784869294620952365314723517121778282127299273977257848005623232137589490189345913332623184635715246743437097284865685870492323634511837932163830758048059929921803095949973946909044652864507453974724522457596841156533532661443809097221086890003185617083905606393673897255246478392443083143417741138263919875454845183610320733596652531001560842105701327682560636727980299011782701370559011573066933931625448074008733185135148366201398945156252746765163470133594679270827031067971186568330637684099858622362623488556722125109874645401399396046848178070383183003218544795814746044085561794476325366107006696211353629683436092148528979686081992024602021660058036500695258399173486435572173253181230844497916070792696358542749349882553579507299056180947479809659241716973059636104389533815204013108290354838026434793248093295383983157779687290453499244717850031663250105708929227913434900043606935695296442040821671079125742975711917369939170554394541571304668113094986928666195722476418155229419195642726685682368736532554846594942064652178064251270938626070123355174121115375108267935052688366720459053130409283368349693306607118312585776834664665621854849212638866603976963897970662922530977585903009008541287540593121744903300998299500794958424562870127895811074158615891669048059075218661612917041557700497070221200671971128914842874509644623964514320209286923621205464755321551118410360345898604740699613484362985261303866943618686305655078917842965953851586788717545680871682659566025163078932313691804028330132510352745462881366000137938973113320397718324483820103395442739325516256665583801675515641941438127896792638334067955888218741342677689829175731989047468939805326832978602790448794755674115686747885421436551089224045120874925878902324008907075942947131333475848010264418676949382374842079453966622924183317715732250495629141357095952209664082188948819220706771132511622491091837880674904802864924567476705181130875881390983266412531313201996198300803757137618495782392420987657571001687605183539324420038935895598209930872044150995268236676260095858208798386574028914129408177285439567447628269777115366675597405203512808056073142667701166224411169256667764979052325197902846533940558550237521387204189096533548109003395037145218132371125912164754032943048082544883915594956535296940967945209127467672014755377425252775379061243409104785454210507915907640402018804099474185375155727034086908258685076731707737169875016939375659782748631195802470302158455793492345040121481679545058758779943296905862679481993686089928989604146110691831214643624594288401023128624038577238244452879850378973672232121965777179348375060877210751984301872665569071794283710585693418933007149469646631111417135087697111225861618640200747293007633886164685989786867831973730625997152443721169887017728466900512648540381086516708989733251756885615940596266915069708958500103498292380816631473516017999241170367014854891811724471995066921083986733999788727537754126947401141942166987236449980415047458212424286450949101971460678441373974644912379106741115360596219107750508629727089755832929201564728584051773478278803310736912440245174463284426290138009377773336416998069090029269202981495739244278875911839160317525865522242675098752254359517226097944150066291123746734564864366914787789379034491824464013912001092458967359432621766949100530546375799201034777004747979627773579545524069942265795196664025410793354579707021171133290283661488017474249365605387652060444854458214553206462996681157319396948095521690833641706025826792357187746960139095137236519768365159383584651157001308288466613940095891091212890859435164676934213802453121717289636379274026339807700125940305476244829150610340945146343999350690054438296824685989593878290829813489116364467962968096315142924459093119279839760931437473323769635448943701210602344995745679417577712437854662901237733940846070089152572312692200446859451528664306835024719952079222997653902818102260042940997682389564079584934446590866375282358631474510102852003567119689195027143996672737042723246642682926833886648847933798172034249459742114556313509204139223247920509102019076337763852329441932258004618028763295040129816335416677425675725044096162576108349427290323724833053732261222870529566077949559974808649817519190837226941625168244582993482796563870717215071478241211894553724985714903125132650731650859266287904023108455213730176973160650935195491489671254414698383251447785671247510232702024767132881168086816696963624600075219958810912844652880317779589692436664201073699446215900499270976545519202795876962471625929265556001056977259718593402285654134139269096051670647613231413469508967415700654098717170344462288954328505551016976215371843106453714275637432869829672413961146006894863281337366816786311443198812074567954618818151936029500445266895232411892915004073787273645393027944771289678961017958474997406178297710609326804135018762830363376437998392488339129955333185684256932545880789488828022735472431679408446190852205293935756009304788251125009375260290178312378056848819628162572768368380670089842928802803133632083093289016397225640242833410515137213799441372379330221904410241061127029287605606054816400235784816478370611344787643234490343816412332083286503558310143664797207170157150621193704713330087703209217936424080301883067515177518794727606846334096619846228783567224944143154445324937209991572639322724780672195607805510136672095396153562626924245178508485142847279051178749779193056715008599739331203074384172435976692136256208383339100570921884530135180983682998649250482991758960738834149156275208191759299978279739960137372109653941629256312516011078190688053115489634024099512532734164878276214413928978607192696170409979353219837819265807463074278476287285702873994916183062711949926900193197830677106434991309402705675341447385682802495447313779060649319132674359482198262274022640303438538635175482891463414928151289387889035832217483570056239243652283115837283225467771989776115872085970072562241012178445567906952417679712431897828550553721950105422426854934194521335301812813796438384608943507572290591099016251789812369089185476248569371082667022398264362437650158943437315375865369008773712774250055046340459581883154985654701020919828007001249056403009083035263134570561620626232764734122616096660490853121209897375139490103177948189413229824359790622545613888131253735601433031414228310339317198605835774794026398527523620357690593488267961257585867721034819162600516444651808028471546958343314234193425753984153565824082313000795782478684182057889424782161957890830854296181477272667360533345906042129649009976684223803740513374170985875434230032975217785878852675427885927170653904842335605766856169347027926223560152874752379437981494808257221515771313624472826150718056754343969856543425982829889035971928567130852157109712151196864663763520012664507433522916699694959198414035629258805585809284356286474638598351724459415036091667747987455805070459593851562141407997913892606176334316626275806796413431780597746717189708331781039912367804075271237883592705587264583178168679576080407738106718049613100056553136103596433398888028691381041328787687330736545896006157990143690393661647581229056517722385344508536323428183894866068515382690146534306863674512094006700586591719059531007162961491065776639059968677383884521959871692621435224171468308382089675357995966230389579772424794648970509556272786678164700595782449906780045255294993887702206242211154285133539526913638955009303827673413204977677149909549138235609387729244020076748655359785280870517704482821037212364470860100083214672830443088780788648627941028694550384453236041720307462372870754541401317945587291017201751748955026333004983248288374753478382299609283253898975675404410396040255032773187341531000967183112439806074773930194367614574234992911556180987768687650489364556009958028962215725858268761067633913324635577869410779608905925077421924236156873365935888861711576001243562260433314922446706671139002751090707812692274908468800378773756871665889410141671993233877251836708528536124252013934691408370175265770310165051883694929986189402762421299283641278863356989710917722902910117537479088171599608658697264885615724007156874990923665591974096207272734999540069210795515233215378567269552442731056351162867143107622727201298997591080211224936644631297983769836044424837660111686728429240332316326565581274703170327837939694188246164565951420887864172140524685121029320253387491624773180055372628685458220101670825240190815185223269824599038734756606227343163872432129921382266337637824042723321554975659289822961138385303031187512616872844036014452992521504726636021774585855005752346948129788778157500312240747252348666707700606498586626950710170408596583476270651784422004766111598837258409098861838228000205116251041644288479421652858784877655619825747495763019866446332812330158735545144870682064122947229792194576300224470146485041874282006136635743879068963997404239966274962237258780357949528099514785626855869355293622753964745590531256644149259279804730449837731261844001502801947689308850098035584481203485278598520081350062985292177780372725336275797369923342331096207203702692935892139649342864234559610998656935073676634086672864106401739402439358503170463484512857463906310531877968428770326948848793779275811307937568261895140206767594807412312579376458461795987550523985445617773931650259929999776376989973641039194944133985967499355700382801526565243976106041121999372171735033088471025024819239330114162845353389236021370734287011867671179592314332291583772313214076761899150587353765188493426651921357485923758857855128901739073020879267726577637087139412231256541249337451719501862194937703370261334956859516187349130416671419185217107212460502112234776723456029855772302382092773631980542362331918727507481803979717778088556568504313114746561457129540201921505147363108401725254228846334219180899872710030548381335056017454068435009153219554383651421705218789525505396988594709337974763636907287668622775692852050039143803046009453891536793549207235065422871572589550664037552373826486007332460214486935569420682835224465667749397570575082212370516462305234729514780373927126370849251120843224717685865993054573587239784328881036310350644146031208543081836970875721520638292945656789640604913205199117124604225645867604295750038435395993343345863950544780569186355653609373741040731400088722323760504492573499155913330715413909782027041508379342142864087459897066418273274806266895736998805302644504611081823608139050944405840297689501433105703192155731504009324884487524236145892773197898881979801552016338299136116583652887634176425766496542474588084950699051150765796205243801709080821850277613226212422928964632115617919476959562868005799794802586788971365012320557024045190994508702600860055751851317302773237047325386297576634088115743635261196250751257351068596634202551443946446159760128992517728691886104886777680870336468045036088468824344971674149001672295471630432542753607869880445318771173642987855056847082230875994031144077437544002972190505651558850952729842656558012211751131807810501110365921591840897843216510770313688662166696834482132423756865579166121348563476016169683729969862103085185331443335100825498957696215176570478990330233841311511389644874079164640376249161339736413760889979210668113436003672162982331217973358693276958557581147375060677232824880823757016492063819227350908977239312187097282158735314543534612785137793289842099848338656110128026555074396131268282450463948250563855539095064413199440447898402106852512926789328386398497029671811330808832260158747466009287456212210830902191745170744263664719814897796264285827566479022624839033112768126340747028744091009342080056810430326368819744743254814839765978943497532587596882594290179691998557178454352757512417663680786118605570814839156481947964699796082464826207571787735277080894183572739064256855011314802780707015647425677905386922799419793862447306939476513198745813145862442374813445484515864178381324939368098039554658775656413531107864336097329002445405048392644398760240817531127555364296269843536642817577483958437747673504567209392055330445425789586338602977952006991192565574138667656249443225034290678991272789492129996115712817720246082205361974647270338482276301709971325756837835778934616509388034656112302703416432262937953532843561220330574627603208715098641907366849227929574871318245575488775438852120747593401347502614170190493855787590623480932982402564479308770307889963684179977444714632511987796923062836444385939938223645871993645700690968629910550868368387299032312773695945287218975900444526789114824517774865888715107106867495646800376962879144810916150611901806029410485760792857553852446128725934851218667274268666945783814026658516939628212604139253578783492397418337545196175067935229747961366001399270190599829571259261809432112525935629767159414974194171083118237423272089252049165047109480226021645047787308916822500894253288081419375199095305635112890865679393090365050105613777211765543802932549767651723583735344618784940757621892407159308628192264258450532664823739426743344122528229960269087132592223296144016824368614583380888690856877315878287029345920498563250341478229760043635684079626382500045212715581749642590287757578967760746842934206516593586531779291828556877983173857186723996029588768944358884321839142371483507136409289522939038853715969693740269883757757658133356311457928825410873312604041307549871641159499022175087464139288185252377552415407283883106628183330355711303423388972367735393192006252827867436934483942524157076846623233580596656619792872135690322754749309179774713173933208654493003909898075255949189324976648992948954502519697787791473749956898403664629525926071829295049575268454326969208340270431251884470319179174810239045133100462173711022837001058323250348264928986488449376610239428921701905295612801145096765594320784000409389462625939917998715685468608426790465606649512726960563017113539777311955845064156498807465844205115564483652749252066110740573769063276197848836052792122912538315789482945794269093174253577638272428606669407032344897438686680923755860989112771472698170526524084849382245481636731327378628387147003593691379833142769571296442807965584959119615686936939134519936270915900805646425478328049401584735181899224421858477591853491858380710175276365764111694315498613059504928289330801291527082752369733746420214699626359384190400560110700675475299148766751309933199379223703068744509952244650459101542542626995459319549413472597217057383145996474019898921207391394617313977088678682827598060390353697824103150521122599178339088309257138134816980381134827260649704215918200941001823707738232783829540103689220184164684089269071677190698709828046545853889649086251700884041935266275576269235925429967770331641001808035080680438175109803103491348153165617485268023409544146044251336450869344704716285560732568182439912399151556185972516458623367676958407613026584261944581129771851536058947494566887846360971836398928890300161337378334431723437551921939838581866031149362925631886697641446538897932684104356341366009964366274447336734076371870563448129468159484088076867320148699858387343424775031177718147228389676547511734454385061596715548560482028453350055901824577462117147277390946591679392734285014632100746722459367472395264598467062722574619279194283617235133997525807570743123912235845163695942022109327245046644074303535901925041791059858196698057660684672407466741498335030577142486661504371334321787728576530667747134908250952095843703125371192352309035419950300694562339699369341882858229522989958152276687400171033936843689568338689675187809760791834540975544858952200912885572614173445572713255295218799018135796719808385531465366088839902304818015496709650985284842181549915604468358976145609312192799234165555071757377329123819026795923244836992857961890906186699164303618970993935560667501775524919040239649748141007634049736603236999537567696858983998796784217581229502629743316808437976413076302859524680737944171156851946896195142909453356245116970166913347509456382991184469093287708942168976043492612362989796839195717166341092891998187862338522560843240059875627914326724484678643089069204508190852387467457381178919323595356956293776143186850647367440040298032537934252216163218026304548759743964027790695807114558489764181791450288705678937353209989271970589870759750046791477207451275713651636122600590246098364454282904494096422265241573087486050876747979452208153484119788498487524730498537913749270613706403192832564560436717121328127416062337723967508355554353008998983345006460257004083783650487775250151447445262253389948506463086620320105067966209558181254471043106913552538802787325136770917452470929749144518426098041066910972832588499406016457269404972130596333736917830474547329655518041827171988117145517946864301532559671778030417852866802621371554726350563683634367700347670489376947365825754410082631632281135763932972676325732601470134677465802537505143816110675809459742673225183311423564137320550273459052545656487225560921840587935817770317683914261112413496711676203449055660275453157475211214802194875278192056626572211080308632999302350949134312251197166681634127323404182812634105137977083416815491389321688168580428311226998258040993662556993246192726943972240411279205859568303393083109513980157798160411655373297009731950579023479385804220186595016687329003363651560835921169203773342512207537822810551940512809366333461293456720449610153006138596101193680473968526412599456594177177615142135644808540206932887647972503530868880200065336872540768298366950168332418238787420898420883325095446293397802909827982579662667712630349555400849000021592752304965021111270911711439276645753953001464906259114044957126866977786152561174847591526992510698355766387017422810721823240235856256927914356057692676993883461193703410809030190956442287466543391977968193296378437224902791008794753942002397494087316875861125888860691370878006315982014051210221159596991452332263811730175620784459329338658027163812057244390912396736602906310551426507341740531600994842951204897542117990594939006457195806235650048796370380794233247686316604024270299505651085706924332311153674394558385517152509295479877385474705830690968151400003561469688005366749442618851687431762955206979176658682568876694651055807240122820992428705303604241798720332030870697351281085340167066003878407447054433955196435007270558715739112355231765533868875164236281066033203658726602933310919387731698762561534209904359574474470435549718644136480647062225373191511328769565157514108048866786044225455139623294204391454817363303648935561662501688787182018962768371347863338282454728080279046839374531372562600972246616500924805516245551403902248559481012554411617780657024030073518781958584606804988173034605108819214329349118865523658404526563924883515873091051631978399258346136848584461647405779964406739680269937705471857119951884876213760985329031437173498234509621003550464676605869069434365074534409573573582039055064427481581145216191790870556853168330088872680349419795848431846527782359574743441955115779357226133368226466838385495999492003935268533978052023667924163348810526270909651888603609311035969763034440603700925532049960008363791159024697681221713100525585207990447532378997531111290845038026050671212650921622821611841765467185492947831960669772104291245144099875214875402861992823983072864738150546943323276664059923432167467120743329955388470645265389905717566826355265410186942586704112424390076200037974284171195024379617001483043792518761097927526972207274082638524882458236269632138269311319878177442297450851917869196411601751472117980634925621067010593797208478804231937793896537150791146224885652547890542267306082592473806760563588944139000895333685813299630741809210687402471270388972848863782548012983585465012339562551746022809364448809088691957163926544849874685029527630691226863559186400497301786686055066302305980626286698851385927045323940894303429301884464081398960305294737918606127127327090777867514086087720857779965736913078549354104108916661596378948289522063057948356498087169978809142490571381435604419667369594541656969433740336046234028639751535314665570398585455503429290792201404048183342176903522537589399148055600784576941437229715049692210920358261846244593394562552944351388297195964862505144149818036838927316547941048462384174559461031486865258720822517930767034578731516937394698235102793950664515703332319080028884840269891333331466722560033637699085650455209605064335544578298182583642060094897773580656838354160288407340989172504016747678987189371309752576718546758858536525772730614096290550727013213475459281944180666241185588130281289753715152834760948624999529092216492237070576047609456347507364142039413335535843503561087770276262869085151992913372795143342557763694822122707505471169106410647602093920617168992285116214643429969113062445308962215716433707361128587372762954821978553082728216167414342233228900225252268281222720909961584550238662419604010065236115851103759913196801153500499571833863379223104633043115241905216540170965877978118999453315015494853343318151684740407958766532305476981691623147792050177505067020333522250388699775332078140098783064897430799891543457785468592458337552697804260337362408234419737984021320168339731052164597251387177691437665771462059030369189534142289409612882272151868592195946406874385173483179721135576572277858683297925686579750676165360690455831533673872117251750872785723763593441094251916240387174578734121768672573888411836556747637221333505930640423164502717464579376379190649015635901859164981867458266803985181321257145319031039476821545620934120824471847351046201490808257544126731410755701072212022032750373412749450538732352179072268000422466639749632824642623894087219327911336466736160422962470353344075146418547743263400400976969702903283272155884230315647512312979360480814637286721181200866016099343483995046609734409757650984961777900759089017118760171555982670946162581591974909166882281376936446010502915506824853960080101775063230363451042452816580462410056280157791582325219323121345431289931166844411395376929053193613357043938112267480740192663961334038123269110843706054655167157947116753010352047821380358802691142349082053352958426243180080948435886670148998912671359427758905166478793458767265642612344727058196861093894645240594386268987679656905855561054566277235365401436716445839109385478104938028489096265671112153352358301152449936438072594901430712826125923478935971379719834917384773813734568927723451387462588262197886908699815552798112381442098444461901052055398578049650315812534859259699430137856072066122198808397709405928407198290046059506855068991906844232201510952624205017439383631578345505496239309166566448072357434881968546534749854972832258896461900956092926889784018875921256646189214096353813725529242526830200425044609938877953740536019743801103927430977437225894267114467300596746760804355618788787265058543812673033726248517250980706571149732539444818910571214365222295773174065189443726651714944780085140039042010089097528327684021658349390709463401414873848466176051021267798370509584391363454758092108497421890211523130957187436869869896467711930352843814785159893548638838850939953465706964221409269551387419632474410009039212429943122810444796624150732518865010720118542546629704088967163767720574387728348339480495431031290422324229704598088293288011255958328322707577747182442505026847312777217149013448938197287523064605519307009448996098727043960911772103094110062433218575263868726468176772957819975583550271448135896937556707997597546592456394238767920425389893130366019793159538510767974134984917710628002788756360094480782766432630823373055016396785352459989660424863834011283869830019038893970401280510922735655117121593774501131922615655370896479623453829221199392393910105642578567247405197913028835458832187076799746957638833939695629548170427001944174779872248971162814719479129067237857093179563082010837314681444509417070349034395403281881579714444206331336476416026553001913978936300015539837585145148352162463206550055631560569436200166547665252510051185570858030819869088602648382691093887124180005417821899848096888706987539249527535020696078261827196371960772837513290149457168604870254183301280657238035386632551666087522419663033719838245495569779107620569028234501781256288245293533277214553030588975190190699375739477254194395284541608724021537449213142226393284518867668894881582439935168841395481062956692586207830761981833275785245011730994031078712257219986061269731274871010473113810476027742159674823832703776819358399137220814402701190318086622757946111837743460422307337866955108800616210385527967537081142896775936674136614227865395988440428712456600561224345982468735674652505003397939603872692820263335770487737196085423041772221895450689747453045729997118174559732364027094937233936996962847746196151386736083653291018164386680492657106575594769341947028058720096474259637537061878610150985329935694905024020159804543072218780418647350309165163142386637165804529739074027071185919310084787470985517571874277642938788275274660466843916515761968845995132083510622891411356596456778993608191371469563362578736003411881843997610976954809205557960734344581844736308496775611457420355530321815704715173843130750864563225691752140415073880364894297287323678088112134277104119321959089868312750821316094524026453299159255311471885806413200963502013919701986409428026321183347246218680276472648121448284902895371947038823930203819657608269428272657560787404488534663653741180688672605810930276426009106717106857064600335844975687437261401650070399300632944705065458266906617665099300968019502329405173857672079114696266921020436587530970563595405917025794992558178110520135790661002931747242939834519661796213143815247304408099623760058601584552003690366666428799955652436359125847575158574880373365255264352369876596334532574090067213020033323918961312244625025174952242763800520770632933942925959714955612862361989050257965093788661183525373340212467959446478830169428253355079403417023816535130704908571612664831378763365116917529408411788916128690715576435825768500059010105903155922653928691036112938043472022384997372802277922946583495759743081138430596694849188325529701954981772687537107065311124974654576574669956159357930270687611273252051916916904270230355683702052068392015225021017389810932230427456799412036072574359522797845077461298176514902125391681529630187663602322189101581213633052250984336488752337192779328858997703598128615707985861094835489155919538876540549663055225953501356863631433180825695275459703637571403386356003190459420574881788970643152950102459109815871465729344335782729636314067648812057047268341959942389400498092880256740944679990236266699363279439967369614481991694847393192419214579336161732961598122488085339214711612515416653288532793290874035504090927274382412739248304996736856775677690550192608307467237554140335206706474398731849596487376375604293138947377823790565272085243070601459725480922497988057574790426674403194682858645693342511727864789061850485388116814825856719090439857130561669699359341087573470908245100916287957930486481065378194619216267302826245135213521350204000158066201308447677159488989734577769873966481973987203369762583893766022696940275395494901862691652668772383901523520110595795630561889402921026044596340614950851928467082268445865871876081252702365198110859472445465669923324429330759251404888701757761947923721190171063163633017933621708118629115785616721973049366106740302974199167073310113944523833209298470835761263141948524282493602647805906155191841830181520599128173447225333622403759965463521914510250889783235316138635728216732326138603691656370321400972069026306374546845341691510782631058056883865840520692946265861733831507375499106804470003790800298087389934292010569301239618141552543413792633351626752472077432749026634954648620690912105681808216342485794322418930798292335268705055248804288941023856403515426940726419186384617264912272724681996965343736598974938256768907428532701797135493348498986190497330461933490314932977934397983305806807902315879747689529583678892591146656804183039975428649326976105087226111637599745020782756066967716727097526414775079578016961282041658533127648976720934041837213668786661842077593346236110527552070566604447355407135936600504835832862784286114873814636766346550340608524306214235115847275478718462362340676482434945325120256262243603864318652111549394713583774742518346449273408313580356678645472438389238904328985874111477281896387498533916275419006901157300721545597860287759575034200139845547436105991754565350912147529502734842831597788868009617139044150772497960670837286336390405883727913204601392786050019259680866433575536896537320897752701852947098453879276253924097615878833001945085087983832373107020482805368854610447708212227751102873130670492059761043598144924373955004490880149314999013783495417395923192053810084448449664884584689423067960067168659543790401472442753091596125350666831325084426852742696749951029636140422753075906482070831818518376018820151467331700963619638804201075263046782263795189730691116663370633236745034066735021356533997879047999392758552348713838680718428682975909674630219064188506188547150246678743141732853416709816386798614868360958914222988260994686939838083764679223180255454456635926570115174784813954532069930017014630087117540783670128675860932981231848969200477616705069471230364897852868372044697567124375787267095635998512150128149527372820968095004383275763123291379585337049636774441905046678223231936950317275639339297204350538718883364158214666468262689668974036621272442251242727155182970548044381939268602595728710616737347854744132687458936219566811955984724221905789134349594013445703841601990328967283044720910538655106432349237150642796823045179447890423816264604745200208915986457970273432863653044271900406153912766708759804135761259303036536874977267055548288521440526574250203488508338235217175553386317262472616759399226421932548483984605996128222033423656179844932406469651351472974660587427103211431284186831967262575796135483475117755444309813942956497021741961440138189571840273333802720845329594013137604978009027451210734743303979827873244148516207784458635775701601170136826445854809627818612461871591179198795260822611798458513806915232539614669738429005291640077210687432761818955732157608118051053393846284993840423491017066284629613743815493172944628229491261456740144259663434030988970697322664942445229104163995080587991896776739088180537517701209405232097659341083140319214795675585955147349662852347062337765054562070904767522216226820647602723595153619554752772113955994496565355566918116068500221839127526663140305698361424918316878858421932114036574889897704320386101437204614500313440803432518879916783863203524663772940910953486556201344018416265657876990312601647107794820905161412583958414180355525849738815371284140160377500469737413694252777755871999304718358778515397525448284759854536356714228069168227374371905223231896730940046929929644665483906599856784106229103440995864859072092835471547391944669374171053513838659963704521948107454161426927840303496180542629650313319858627373200188159845694338692497694380692963672927771633026743980573277694617590611110983106416571216721747172957766138577750689135295178902500227268046029983173748384193963217676969247151016928339457880539884814744815763504885692875146608199955322548930163694873221483816636182797510191633947307719639082927000925401038067880160429027994926055857805842845095081380933987427754057505171502955426605118315865877065996646277301680396599253730349524250987978434086060174410302976581562085464122994431517856369196538550504228998921102345197220205775493181147792195559910558382680436849742060268503712820436337695077014247342377814415499939943448481285403146981595698394289003593694725773767804581574925935600836406594894527944039344030550270062664169723125132184408658184351130227448453597033309466657936160270353498276618893661718647997547253460896080461929511585836535785080546925067981021253360379904678505777151143618017895820477109204161031794507162332161674386064318915971240349440825051845875019018431684994465489804404498699208306187684570654962095509212939877894171946617888059928096977041984135155739717934762165948505549777539882884572153187828066942027346654652646581260314192615679607827410759614388105595346182797738347856069613096629766309138469319810953177205250219151307770132600829729035024355683569888169850730711235062563910339670111066285950530531226495457161642806300468261104903144646106160822851463756114929121242742963201688553079287711998194596046323691313339611259644913356903480218813824508625365014443677671029515048330348219100225244696081076604205060484255719850253269867664685458899239099416075637356810735095133733793815821997635829672444813136632625269326641525726048298357694237396818415722739285680481685194604711765116933400967928723416520424342106070665007075850558135187030783474919334251872660704587050462888103635914828614068268121390852959903978796279883916433492236865491959205090840443111162604515711126769045804835675928709779177046380643648664485613595270370781595059543939341872660242564912617532992408359522866688037679503039424041442372887412267905084347278634184601514928094499293460220117962969434375776935188241176135077168482615471862370591787636464310621489348716321658628396611414575743305245084229599039418798623832541495010369064791065235852185120951765227176261473834751052236348254968375501743657338720009205045433469410165324004171786053251512962754720522184316875741465134766433372604953971942089657055629734175813509358100932394786706259876366790870971070108904019504438960842425364216680180507169711726359248626179696283764487498910940827632451336368559075917125308618868634944002503800070310936382750599634178405471995275102467669510650223603721413391789977692460569902586710721149793432939071138511594007671188874481546459854913459026802377641133969111787039839554388114032045727051389760785430589348645231562636089643527719543991040280487689143140988905232864106215327348087196374385762421755201867597900159319142376980445960189319560763887413380875958280496702779579674858949100127778421953365166332752156491623562640563644310057762014352984734018244447801034456750707284528394196588378870224214702021979091417410713321321050724435584411699949347466572097672548039386671416789293583926657212198167821314019873988190271749150878178516224650904207952133993674635931280148139053487694657751735118322547842519527179202154545887313340412873622603336035607467668909772756773665005757467077136123833268590577027099464746358121751416260229538644402000189739612403223001355960918651290028566460256164643459581601206782038387528614209035892357474090426935788712965952428256164239242382742134972169878864380089734393237697941669530078858509774736063763012932630989126611643855934518878600003605084079801619758323707289653703227644874278208779371349694655829954292797703296688187826525070628072630287944446116511498955230352897742228447469286899992863113471571559532421075691891822400857439028551064339177242974672926007647776300374214496712186362931383652180665061530116284920398413148937067271789049355082991039789173988061464718411138735962509579294843834135821026888515008204452589611987852338017933124237510680980986068176858928938998173128599469296080384802733043408632878042131516627512796392381553520734137570394149569637543839504832963225663725568103904330063453542538376045094721589597371709225318476085875488866775901412337664207190670217721055044644782281652371290417053450628363798671849604326441230267166974828013339679721450083821993235420069733971521305750741688903386262537072795024800226064938698555066714040720300706559488998231693864988227674905365151260288730145028474213297140130014668368694819693387955697555433797893065550717742823575562156932180249150531527090661189684699762483469842108368280054203113612708102040744508392032691709433074618829161270466860443939890380993198114886803845937990200708338263674356350016730243693654970102199909699875352211839468650921213097196478514138575961884809209985070327363485768043684499600090168184658557709207499876861592395716234091718939359442395384186274052764463317508933622314273522199577335462550740039581843127735454397188062387681806011011100887821372111494032736564922625903099726256713420726762067917870906725998407295388728601788871771277565507349504979614977148147809734013335620885087208855555459597006484492791056697429031490380133146125460702231508036807325028053852804476899049244996771651300516800806335254963659123579289384309290228285758838965749894989501592873530061081845514096322919125472073089107647135756365621701806750566908985065837032330795795533160135050107174280320569409467666427875948629646603654845685590899721871839633649822634650126385919086043457168551023021407027464987443817194924966669718116034767807159424566541180005350404712145652436472793493469012982815786377487239220696217207903799878600269507119066052746612979163410599973015826011448187377383506122066387484228462106307390699833521698503790500595994863046023615782148498418804726675351624540734536026241360063418858908385087711807910580290582431878150436647650962001165001465833682215542768358032583993966188581597762301767351060034809236671419736876435964615786060864793375252215158134551507159616152356918214434008063103978416988495543305193905887197121876166573320532335181157018702107488805703255513115888667912498329233650649841586408026250055873218760513176634267450473420565240260289172475288247557791228157755235256524606587502566522470281171012996207291625091452066735459980043627917679061933217004762719853627340049900787935930439854146814992922082963570539405722612320820199635243782653990801576042161766497611782589395835868104082080252183601251612316700312726454627282803390007204172609162733199077747743131452087033411414621843102508415116905796641555222177309738971675867990178345110880362546223997858397028847290576360100850614850235764986850033087186894664283069864430489337982828866340750728455947357989103373819797497806048687802132030013176013401342016623524236797630047717854624185530595050636629974884901060203276930974277451836826310081099818139685731394881337865791794846772400284717580615757281418715523210412814484271068868387897942785275363279618043894298651104007415837485752510390937101707813362582450908008757212444812329632639276514141870688563926501636829936437945112123129600286956614696309674408473140122637301270263570094223779406196640269464386849332350398508774092311780711409137662991338500896436353835495198850978814395433852888061906495240381617760591946473418823905612208696496141973888227838034779247139613213062738278480544774660632294052376547418807164083576736445833336071458714971542206301940519505864847699512393642480648865638882163592528708657057357918814603761350328215036419822735755151603597344205152163641276512587847484718989518159933450832365301014960663934781143280201524757063184372039358208928535939470250844225983554600311539920730988040137947579908449527867723021169478333581350031560635037083024034729209331619690515766433961623333823307706240294995806765767404554392321615316906795625945528780545244051769024103320022820094029228067074526412907388424245659364582642094974674988999090919029832860832904228179774052606507826880765310706100682289566714511001307211927698747199622630101451395422723336418197871102493254665158276886106840365723056897386727499436619995405232674473157251851577423906253783105343309161436100207372160978137519061517776772234404615480820607108745983745475040379801634133899750946838972761969642519708090248721513708488019349527075440918663674106182488392765239374560822496515351783618701401606060385557213967687450845747374169966598049142323065219440159545870555959768397999806932777447921261097232901210953867581865647747537402465259679275128384870794468807736844077083330855536219358741805765166505379127856229641089193569504987264773975160404133320528453509510405655519519894456893086145883537877744662185712472941315873549457586139965670284522124120557878391011407407433324663495104860941923245695845134717639940366805150551953790959041629451009529484384220615325544195158475808875079937258246169750259188027107442241845077312359866385751122239982321652428938417284709031521832088730244555328225137157741500635083290817481283137475337856761336701526539543355142646531944650664087973730668133126648148034226361665265025425252968329205478620845768036193940709779064105086892907203386904912626146312325758445284099844482776689299858471978852611521438842973211248412046391092960936779579619889895321182959868563380908393135928347327615392904754283539425742596766339402980195224420078092624504562624899891078717051105847493422282417131141056513872943066329408822314226179714856536159994456429253100231808915296055164312363480431252497045846775117096133141649666221398574743094228572556881403738056931091567960524059651582809195298183417962575671722496001089781388988679477149600917115705165860535846011088878157159310158766806693919447509358386478203629597779699416340767608368750485475574591974375212895027251296586934627025936560563045024409953650318652182995176347078476308510387256857062121250990396653469580858387849052136760110870632574189502691623802831797934653937758655871456607571753832919512775111596185359538803762547469181657644658914979435295473249875734699713572820006478868112540838629449524971999020102679550786717643109884119599019104678927968536138667083383166391223803794900958008267242082031794894944969916344929953171540327624059672023046448083733168895236835013356000268040966566525300490193694581535369743032291682572389757744135686629195326416638654192968485408871311929160376456591442583437059199985647722206615876763829363713360746927664615203918325115614048251984211083514857663590383399238729440408811008897875199973642438237941654805629773450179973830567737224255895974995199373806392531067323985863407561707159120438320421399945725307670436360344750021545386577374546836940853354159789878490895290591555052522084984123234150605690889869869085467411725117452275501226455406602921263940620101186075517464798364708495849343564350761017798869151922135011138466650478825617015249738614061804384269337380336616954080115123945823038364008716776970927943377337608087996469401546245854868493351241626780859663285007916216699197967908404895268618271213519571600728657667973649938903499670063831560760956589179882242772979039227793353185985008730240138243691846189075893819488552012516528725880355415901828313071674858216346644109663750066195240916405157261099591492049803432752394602272682312763775474030874073947370656284454850612821457811299718576752423974369986946307042090407405006199749394270295139528098485026680324816318596524703770461874536078743806024257504363460598788126930247626086382083641401750343788718303481283135306653120737905076660279158845660156054640489639361421722104235559980616052083881091823657652323091137422311505861625283458121161519219111047514622280977139131764109316956175225187227866090774454158328793507789264954726502791402583904543636653925312045391662473528428502539470129865539791043390656751368299195827573274644493289526570800009190630651210147704167814926704314808385050933790688394568546630811352304678954172599363187230226407530111428908444313071861423880033141994128849723096348737602029182495788735208406565787312822901314842251060007058894935614646173728695591287792534849612371022298704961521545030602902922825827900635362518714637332870430713386743097553089004847446565592367904522987636034781195814733166744098633797681716482581993929709410470219869719597887828503983861960454839313266765349003012203952274997296006324760012151986108237511967215536139115171422735734260624480524008457423608699940615777952312770851839646646687458369668152616091925949733786941489864777668564699891478241127412165760097094795162567033970207963713046912226437778085806178668528021387878284141059283578095401578758562971019246164838169734906498873252417486018421977869979982802043589058607327918809033107219040748218195794485040133603509212437013002775184289211748916410500798689393183518715917238464367398519752467779613196258203130565117293006665795077241805690097136152582234557748260808675553881649356779724349923080445172042387408452660150171991523147856345679542103565854677329283219807879508796120535067858842896884260802646242083299138115214318622012542359289343138786217623189451153006301205038393262291015192256667952103862664304293061609870756233740257297184353104400431589669656552419985974626514642790268275227731780221206882064209846157304146408489424206249588673788525328792146119304128314112257214379677681219354384595783621783753827658358422983262468934720009239059400319944567160900879191646015346550516635006181247092895798687967653091467611688968746456103229749733642221547579689218694295676635408774360213374275362272389083629722298011836897364556291235150673535144618907436649246547386096961577575999936625730757951416450868139263686546944456337189831848933835821002288098748854364015708963147575139623941957154163448858307009689154725441958830010126077366011616948619195726762950953439949421353040816768368006800442479570319574807565019366469956143845172720141939915386709086301539354153679247186450764155940390905243246171060537008540601290033979759654843770282688094007456592867085279407452028386587222585079078624243388394048585007778850986043026148921689946469382605226147535370239764094506242472566107421378480292093838063240266740378411824507488890445334691168417078379858697948511574629404089970078441877421193580795526137374090837032252019751635770901580295548450802042227414665256215433048246112742054422291099277614715494169342783046281448384509354520083544034174559766663491498831542112461907534317949790698539909516868710082554856999525050994834979282878128994896550805818707782199813684003497390861193328256340133192096520678920137197722153516034766695362290663409863222590203096928326378691767218201198217009076073549144671007080574290547394811282101711350710168044214462075118512049213196724718990026464504549510941853916804065505863856608888761037627303691901846055632735836860070966885807204397022573320909322831758799428701444163199953726566229289916900460310109563610269870959008208916485852076207320814584355246811490808533400433570085499797914565344480793535570221015198933958278321736691095062272250116220408408826625573989974727256681903396311229843710318082153459010474957599335592550537040900055542020278880578620606704399210648852297952408933283247782825074377335439541533325504985305046930159506011994871598204981327916078927277263642028795449574687111950446632847883906232838462696717014555539787383289235065993402882788288547147773170208189364223780219662926078322774023435441946757853328585215785069266487797034892104219491414803119700345088863295647161450092123847742137175140404462823716945786709138053086362592143148039803368718291091783088644304708809557165045925151377707695072224566369458593414096710072915183548081652014830966109767503912831290884597526993781341342395570947011444489827370719209931160595688398796140973692087723458925957151093316238515214098624978895045471842954572317104817425073255230192854712237169913050921790829336338072977653177631434934807428679861270093641725259794630787597942696616399099674307636094535333059464956307241834273097800093958330621397540255124139332664726458830176529729493630638081917027400482515572484229503364199399300712028755297883069671387144790589139589040929861402329221356713940064619745647688863188405764220408566686043239205780153620195712080967834858040859586846325321164457221264017514834465587532534963953790258494330527500308475671543214072785339494197948378160296530574348636859547146569535705125096093557611686007153367812483688624743470498776321650511156447898088678612710662120515675088857277863905030387524485295833428436871880433025555443988665225515119676498078159752047661312025871256756324571570083060819387313936021259285013244970384623563223991204027045749338055075618877738143083654444599892417222183440945998844324103981482755219043395613731450289951643690167868640994330237921720201749756645320982910662408567836525124541469637884752920472439226021159781199538315455110462628804144436141101545801798017338962026048244558768321303190857861401544171470291158112404258056147908146504401366625847677131173370747086047512657001585000088559730509808284253871924231562102175365182821192076315415052940468573482472989645924009548111334679806652309920883074192284575337449042363173656034854209085715304370320552088858607883003017226417695206907148678168003249856826860275968846238657056199525656324135837457620108121964729574676439172764993449870107745905859179537277723108391334981540098545760499396051209970733617929632968820613227739680261379878738914874403634306200919965169990718547580563859676004740020971721361490175029273949854582384931657375067248478318126700092829486268419165087509778576772756202417837301008045571586029150833788112980960021016969163585528673516039336577767993152179183682560020861386095261481279499307896154134048500450317320664790175668318063033748342054954717549310834858262780250708366958324398554287864018159446101223529564318891680982262293130949400130007043775692942341585058523283200458638510345463096629441435140289409935674720000535070709738183072998675135675298320464278604236380179472752305500463218915288449567112755550527298976396883814478497259676998281738803472195175138687383313584802135436647902463633698148691266872296418899034468412063221315716034157557686587640840948703628947927786317327879768257052108202646801364421753467976643711096569274491771351166631875393368749983113398703653572501983741137202335009273880921649963268008437219302906684184680481079565224202251409388371319023516032804480802237338954478627653570351028944908413909709241097292675338828184050055212456975933480874488293420917842055510828128805442659714552152977180978487089937551257068049845177808446725089130647553670255166148884048124811847625923978218585793325996830320404635651440577599915823653908956839300308685837068490686175467154187295754719611132306424903458642855623831012950888918776714986908049289607191702428976538871960921541446965336990253628128697739358795958059832090988584433277618052954020258793791870851113411027581545985152391244474660181144417388726413532240602543398799244299214598137425334664493001100385741428682621358065044636219022091294368542118349409354216640834573606988493773003167023105538512209924224947595938952279340325468002994530017727276344069101096698702170403778033994256497070136348857504174294613617001861543683636756619185120871814276031301188083120820348687101071625640374893814054954130886863036902800913371396377685083458018284611379829617559985249914300299190753350122419287452080374692458757670347740217925510989863237883551076154264788851475537376463660552111633220705465148248436934340290033925661091145608218264595535897213050619045401681570548146341576678104476782834589711610064379450700826487701645571327760770632987423235521420237157308722609661542558040741844240173318419613085753252792728974759260789750358460491422457442556926033799507774085959889846034100791677630138703996769917909580626240453070728291305576483976459939343402318169598976611041437269936234341480889297994803386164360747623784679592375196486581402065976052783918781387638787977385692727660864721539537254985816431348980781483589867694934613503176075148739615919896227060974627157329556564703685494386951286970914303227589364315376398543609233145624744392950937965879815342490102024635361773177074754369322381253650932215511870943964302172312766041642387908503731286905634226510988478576274786749330649252275474617149551798732986875482314855076740899871861608258131269081161242342620594214280608785745943765968254855734636881662842295340992766037034297051736539127600104485868278001745290441255193006700277610654371794124391002992276285194812595921698124911797120408167936102144842016077003317570429197589097589593970324858804560182839953806419918573019830918451344587847093107193231142836783152273445057043404554659461324611479899068085179916525448500140298658286387046470300832974748458929178050094930558123440489631065465459084163868589162743355481924785156077005455000209884183079808336592396303198603940430259142118156337558435041230374111951462336538017767322291306341995528282076034154794584077314283340416387516873385955316094833714496855323227296733402601669049842199063061597955296510861045210725594497402130946541840221861753759526678787007254051133250893481041663452583812393189046974880634061253706561510524096636498418083531790330101506886564202404851956289125539796308720285271083171281332013602477106231997324824500286164476839768228848794011545066156821413031872722424426783965768184109792020992249181487292422603564982582246952773396630972724996079167438027582253527324841655548264141192742811977841300987707257656425283125456917829796589388907437793654769283665575827404339794576424359393151151401569259396162757714774674554239915770950373231972479708170424273940677088963561611733497855592605615688462331666790000620985328248433117603545039770488212974531525205537459885602092123617484768909430025885631455705467842619947683080288465442874271090524126273766454393502942134221670513899032785253461349121704438894557554904529064231896266770092351470814039561487402482718790028068003987389163363178170092225455463795697979249633968799698504453613151024542526657511756484908512195324054915854889056494521410578915949358334121597511841873398768522432395020804244515347633181178058898654724016746514208240314329444545792984859666648168097396397386646667801393155092936761621972959760080488637113167996835881636903148514198183805240843570572732890576180117499015066882865780493611003346239346172255581969948045988705793085323201725042239050883329858085213893349425250044194365427712878304811641508342834092813409105687264857586074286303269806929397019665746726718682165021875948088547718880076671577083984287798221156476127330969206944309094966247816277530442032799978920698664810052664005037472395359316732318476534865161469047961117492252421526311317068120786266176742032059314513908721275093562960319722060828373677168510586339070613637775968109036304571484155359724033507151335494882076135666828354579542215990319225983067269553031944516071323345443110121589237680532414495761544805354693560226384676625671495966346995590465780827602260556365908774420480197617927148709711151310062222487194028247942458362766979990526098173859271337003562329218641324695483334015279623012415037570196961157671917767499516035407706490498913784716881217993644831576858133199712097581942683082941629029385009162918436285682652121418925714180104832142471326596052054566598859408051259646345536866199152109076958724024706294141699437683818061991037793392982969421485134791735181883438791846849732229226626009218125285755213723962671920562410184237937616000020133779662578983260654126983071640883914274178766190378219424363786333691524244258276421404058510723514580425751426777065821870149450502775325406142225054574477619744644256331591381881844076614937649871965917780713872557579601667220010128520121064403654262344616752473651529676932088210955979359126323495180581935242128554987913594917447803257853613868566021636113936644537308436024529038311666192270240178360069298744997436353697621896850729367371373572731816959956621541788240621636467190394601586945580339359695056281471355230968992656370027142718681493898127544067674686722246627278341236433981644241659822245781839659744323048499753821228148838673948065884197149277474397457131329131621804770089160156282501220653112280897215326338873083422314520746378710754869071350303346602572752767782768471579117894344338115309913915411032009992992107598441516154402132345296065549574764466909287938292801717105172066924100661778310048894427164929721510016685507911313468442491944715446139421348893817265684702483481718556170226733996516412343301135116881973284303270394129703562736929987607147722963858815601238019859744401302684012146176201422035948166966909505110532239522259446349244748624946808965087272202224862492010699961805171600157027100458503603023033996608797589794573981072955866621250170365695089155028747142831659949426401505106411426143395242708542714426198452104376841608924026258720134129267696200391061387330220100286556331617422949828528417443084029165723974146669475518826888136046253319864468896520159764300199481383123845892601454071526519742258676594157768357870908234747120152856056137376475186532457507488053399503675341404783205181601344447634331575830898664784358985620022732292579541764053640163829930935331357068032907674744565747210594765461789573394931656302799925925450241428013159086582572856237292274329700487308738767905816025633354782421811661149433211267163100427145496187797374898986065310822628187976741032070284211071500856244213447266423677409318779652319347419388154860938395190619217719588976781436521377619814313212680068421614523333426477362371668320389194384374671296899302647653578614815716542470681908672944108281452556192699490642075845981066241492259249722721249536773741606051723873257094766330593361083832161885848595981029839642500939605745921445080058890854835413547706634889509587489531430390770451757033357874783889289793305610412279342472011560157979684725694039569598865078707916519676044790169714762832869341757061036414890368759522914536811499501164581797416573891806415538707457819991644100131763234502659007720697424269095779116688246601526803839519614096006054696142634027247979509540379693463232766158039451102757342290921845784141642327578245942563846963938339854255795058339153277307459037884893201266030098567196906051891067229943957881625023642638841268019044222992075318705757777786538849789732124015016218239291935971762921928640744567503012930660024303299312152730438344670001878885034179531627274641995175287382063580890124908955225829020476732467893733777036994554578832439298308849237975506395076469092523796244604643904220305472424028769950133011919420304654776750261981685893616209800625378009697830992778972766541246501096356777207014285187742663652556788389315394519527306173089388677999353186946504525968313605165828468810702649633155999825344943598429897792678892826306386854890543670536769911366645640299748502956577978871849793883387585085375465053089450770605376293620635878727156975828888343605006116332720427811819269315269285422849328737486004413784655208401693069840609047929575331968770623501208622655178130366785589521134463520525783983548515081434577512668442717464098010686332367962154020867978798320685412340944285148403952621770558807232668512227782865704235651822040713496623815738654945397280217461045356391894570503645537735738724157663440597858483637299670912135248063352005873846469596369397447350040741206487029527292894585861932174695511727120456742312060631816269113485693740896313433140917469948469293693354755604418061043013038912519259202343096432555010142813124744164214816327022387817214988383971887573793907892774696252319143513878643574262417418038949700401002610301604807361309118379537031413695176187834930407690504451451178641714553644537280129170395954707729980082267791704205853798688799820495673073428666424081602114782080135124262337233601394647277639285209137734980747792441701391769058116173383025798987248780350618384200285318511059977077353539363224908643157475517610163063995145112385395424459226509654194991037668084448719133823856091052401549399408891661974852014691614227149940330199104750327697872501968810063797453360375649703987647918638714783535831515394991997777711716986946554623650912206342280492083694595278872404674726563547287678399458603102663033359834779234231630227406523413863119624548601984663653124595560907271729210371234499308907794636345079648294336875995175833168757803129653454902154875122784143870112015709146229276494551748245020937420145574337954813158669756282717849660024898441210643764414619766471603609855828982774735721528197961395623396116226211068011889609589261245387364707315268030377031508154269391478074658642326521224188474016643943238940797080562811032336395394714488911361225981015229195051926216801312319115758429660485792445095430717128506284175318637518408401840661220947582816165338371449870181634930046862008733101616254065404623675776180196422181472396645908061970578982440533144703003143557576891563993832809474393284712119314564464506039345828737180753541892292867068988051802134403628364829934239968996819828520502264294277972408730804236744539023233288213680075736781229139792516769056059280848603602773661226625064518336479732429712922004457633302148662102970058430549988220842854669398087387663590661481444104186000636590853894696114665979121064093239646860188836418595258701368550070823411025305264172997483948308390055104591450531160457021355965962480307863671694569995395070516681139586368863852821103137739432688496936102858910186266335796345578638133801855555134068976017794747161451587992702030144815131656408305876429273144568955568225823460884351906633433329023524389861315373515026754146262161811975474476289251674170183988221075473005794096351633198274975229536686866506389660721142327429010119114065087207187963369750080171681446752939532913815214314379939476837080362543403556098412341218591888137061637209793126532864545867719549234334314245703487539162743279106958237524606661294004548698772725018864426496345530203373459463465281316986828910486361378200744695447704224746935497198653053478063400307745441728060683135909067955588060963124902675475944361227187013948459721136568886083975570194737632193274753453433767689450734386098340854860852841038571125346220519207849544972536367855425622559819737296767477276346092173161851713426840024319633571668430598551586158200825692709454273839072392557741420916766521056087488375220539708405053939525494847223222223885474096531774304773243471903448442486038151986575136493276459536307996028815979752887474809240607316376482392105106127799447267209620195541649816432369781277242446976033441585597818641535011104176642271565390992949276145486379495562713538749079981304297616278105317714743993981636604725633516053647661044340199159831038195199693308436057228529536162355966076171690414078520702646082342852507329239298010838358843485905458598677827393961696677619328447641834410887778968663227197760672123988171712384294266921818833712274615173291230287811943588936908192076928759552346552446657431693207469140764352068606024017578759711689921461462573685723535965467753535064613704630525430344468292254263898849766620086783486111805261671595930910084226819678345066287464325784908934204187253481551913795717331889410763907542288434908659987173749436223704740556359274849401854487961122579499959945533080339746351470672175181567948713408028476810475964289666517815862819408571635688480098129844458859497504240755521809261378892561584049242272632087202838618578287338398883569157058628481549157176473103740419785390278271132728939919925806530301587779517911601756609516156145705762679427620460927455702227876975307538574960571672499891660238847874405728223247118223896793696065830355840980712812143550945196523079250610532474868044309629946412486567717494046140886302190153096859695252183365820980402484895112641955036301076658562110731663512184732695862874607906883344125594564640628973027360288019451106365291746133640365077744218084873954390085082700121891984633528483003105452296134302858594797289358906109170661675862472899793826670510521335332203509204549661541209921209602077302153604330381061334031992226600470109552016820927689215231121379885249210079445979564390063931491082323220892276486067838163665499641188354199703915591643209561205565242860381270208875502777578303846388550976274417008286432485605367629888382828338622849887983845230321046296434949473088659291458688583745995424688720231470703082330817493223110146238328747961790319635713054861347651727016219253574461485693208493031424156553228578080630909869030066999673891251227044342859946250594123603382958471062199182136288670897798996685312446530051657607692087968453538408914237217045199128056234478312763857212916379571169092390864740033977335204246191225954588283970406040487731585856176033154628658429430460529970168294154788070202129620711562343106805883323172765698030477017310395556529575910481078092169402226174715297739532220360889028456832459741898616093578435710144897500593567863150186997785724777688315894194540198423052354902116743076796374633152591215048785589980412653963818829433729165811148220806618844850358754235568460782673704429422517091231930839692134735226395634058918596940870204010446694250697931467203793795844864055690182295449038254101170412010989923560104821718467568889698050928257118307947060377263660521398206041939481898391328857079698740085496599433123883331584111763720465974959193175909088819969534889204306183536649103177410546092741006644612426076717464260601628460680921773938334157748839916946691205896732220340967359440157855531231224785801424046337275982230461069420451334162593232283549129542655204283968719085613285615344436562470364765253128832306793393018124580710755330275090923498189083418779617819687307887355107685627994628237391005540380348710551453662210733102891477855065231046912730933737296252606880441247078569304692865711230672222048944558215633399004533182884212552683561763704776445738553666812322040412864023972170776753678258861888588394989532355387766104775686651972358832138397025376273844854359573119312457669703759996579507099088960743856505250224732319606976263573250592908874034506644614844126168483059967189392803877844099417994492339823476185211552159715481226940006265737760513632404492946766254598131943179679124758657000525826489621723343273781445568398565337029839722596029786006441083136688042707831296131687907743528460842786084273532857657796301542120578658297941107953139371759513179557688264955961122516562749790947500951662277145242376749063456228247379077832410119045016644479452026827525788952505092890055867848313196848120492575373667097726854307108707962587628589881369217290670978901297137236340684321194458911450229080437749570684439133949771960908574060282448846357882924901794606170212192773804830362630794300683937560489653151286351229006176957745346830667894837005898507056206089540147961910322656349916514515505787249133939618981008666491571841120282697011979776889960666870090154873010214314015942748236833163797215986607217364298350418009127777059934915426929415450396618219244864141417330343458611517223851935184477467307128774697868015501705010812137093663451930983925487523833243319604408901167749509646082421171780071802420272371261883675052502622859097193447871912057795905156124150459698969411975675005544026296280662416374372123867102957398495550887285181438731492833022631086518207712269917297503205775756430393362029189883229979256676695386945790051337676726828820878479905411396892096470795846881567882813776065172478981459192465278480420846963516169209052147818504094915356076686465799620871727400981086092416552471481317069185772279399525151150907301039844576375496559017259709250740966183549982860942337288137538327101036459740560301710544278374066074996834661869282441976469718639419914140337834215959196226246784236589868687907327318975311780125063918539682930450939490946976832248923237815501991208267247182444922534026576682685946504145970966573184861006736448461610824480105882649987787423894511297505093843984242351798159797219077447743810733412553241272889623193051338239081110741727675599004332427927572579068172335135118879702460613036870591097927131662325092523739902463900623326101906675625416687433520017901219021620387704278006915235950208954359323036296869483733828216535181698490295076628900714937578917205167418493144787619260765841774421450020930933608401967635961553436238007436852624089573120073613079591372394283354042525222335857098493880716533966603840644946161993731032878400583779779443922253482410981957876630414311972188500994058897570230943115090111344440919365219246175793970458820396783071513128576055035251989794292745584222849587658246007033257174480761292508905872390474085629857937340756105906546346783231269078008402300653461737106478299373855950339375399820051155108994200985422363391729139733978364346888240007049785375069028240703395993727524845863594481511946993527060338910291558478818668001910716504883019954497502356461470655230665225556795877756925693472018024600639735973537312309633263135173459097693537637999478631966069166819299293143703026308934134808131456590700973859025971617928672925197835787688879400095930880407680004023262456092562201526595075370827232026483215869020438417868932654914073962913927459211419748424410815845300853798003874796491704118419693448403038927548656506920698926284694677661687258710487100176008063269058133547822140443840120383394957389689236283292624169374993053517787843460876398767864453012893663393653353384303732995604115752444392073871599000383041591182291891254774006915539801648654318074276684719755380452559313192355872853379191400223364607169303592372468825041984723671822908009887773416742354303103729744542159659540638074067148411821885953789641774463375242476601207159609972956144394102200229640948979549292363558754955279461568615757339982590797772108406619450883596346637840158798513073769579267429905650256904075970962886829038690877464246019635557258086056118730750640289603901661119925735014685516878894796324895653897585081219890266426882557511882638914953257937578817721410200939095266801357627042202267684398172156325657981620379783469598248703855121797760414350096498804384584405886784123368637354780494960371842025049120583230232169194078571378009206064217549985992802719620468329989362987134412195459522207393790611574885141990906490086270379308044839547860648150776540583499988512419860661814254028191806065262386289074046332620738894510474442667882705252405837644182944655113358680928346484177082968688389217994782455331820667721334401024095298815029005001017692032168726820101643893076412410089861638253865184756834316262208485291517998481875995666924925994223140959585474792781299024205167129132588128602172970162670792849960585124441715853592980422303512920083469090443010859706532408284301494251619942833219108218270469442110393278179654206390199238508980002891919373131500371548454880913072542213813348874272761214189386075494669082625772943340057486035777203252580294295616405583975585396599084010359750023972954975564504912843326747579593065054849653496316271981541102422353975220212705322835505482721035550116586231864504665486896328144438457974921810516873900616779691072823499133248220637517498003407834323966118653279119062755327984411063410861600693205046059059489976072312873950538367894478857179466202121814306670396147493534356850680575185996904756867835545510063290776562373622217617253515051487085366156197309014370646401467954083634070913545001228978730628576730771388841325598911232077567515789914128765192146868799510774486304798048322337183388492568367358331099362328756222077578487510013692804906548723085076145755293142262816572144029837570031610460824273644502315989612280325583675818293468037486249645423816198861434271116599590472829645671514387204906269951179070509824823631524088653040357822950658402838994280913894194829199523039903632915069456960803482240473090010985723302548542309120698495285254199668670117774918357824861485525348054750840508853002256618368349879358357648168252364254669692014167955280026733996849045330628292447916109926835531169357099008151630923654947974989336699473388143692286041219973471519586011540296517019675351336452594631238503477231305697576293412501882593204821215596886895918332770970409956264160757820610603346998464153629327786200950417894213721061951136018965331484564796076086013876513773376645920469516382442800774524869456936209408443948052664034022160585302121166269141511769866536025681007686455534411551373294537089509878183867613608393312792384938761713008725061870071224548339835738265339117673934602985143434435621543124009408561128848453731430482889106262074044438330961209679352303357848614625451009302686204730648506852431660409419663162890582625714305101808954917303050095406897979299758349593404029536607275279722043944484355291747896915433215695896334471029176957686121146574067772066241829339083985909216007044255227673823260412848132932277243251187025459788350663364460407760713126267701600261989202163578220815222061809418677494823196421461803087838406922429302543390130795769605413983351023863895735715373510763104667282708486545457560636779275102772580468413519311804694496480925029650055776596043135453995226365588382887238642082907209513532509085385696638648810464299829949069843691859974700810128861825354696383783591545594204139188109182521368701644820834018858807365446054086457963805430721711668620227875065942644418087288690085220387152279079113591202990093220442243063015130441386342192711671679862485316290730923169239590117644257334004860975071197010564022325355256449453572001105609831329494429133542272467702358184094501329949539802910721673963039912587134450093599484120420111628141779900403063374736273489753777334536005260281194456972137344667593733233606934883378200107682521685919595896992919679079746478763120440769784689526820333061525763175464004465572956812454080697494145984719072216923489605923231554791206006323226035136572654673648189734139898309208836316018056811984019505643321495044603117882973980602072714686590976348725432897837134950787279949110237685487578075052262298371475467879801191210281896824620447577072897188791864942901506556829215793718967220366825827056204871456769410687897702691564860998250852125518688986783749895503601236688372000707757959247132071387199574990369587731959923131876170210569860257613175107108546082544176341464159137973630035669527492875401035644299195448308706099021289595245774954383733778922991315360139575888515568897347290494911008838885725519538065231106518321139038396550740826529141486065311158445261753946371797486272005993069532032233580189956146080792586219136290457401278382881509456909394566955776866589244506496641820484534583128804200752620890903560228053990041861500697181956020369552519211297411707225518989477141119740747800636567282696180127093055045735463462623780951482341992948712364652996597375473573174144259549460409782393705955391732272253438037052548275508987149929570066434584044652543204724100484188302796216273129341089856186527566689714646489193358168987745194276289062882102441829093865416611394162723646042579012519942901420312517392154477765361270224089397289748382404244897523785043668635825403720434114576231756421422397446372289059664657050534840476769403264369154814543354624984612833594109732433492804993842012459434326067055091517906398253087471173181242383271708918412332769131364778316018652853087532416804582285591826241941706646620123690114925167916514324761903827447686549704889871311146060231610673870651388242018540656269996530485554018028249898372327509052557429177299999991373178124183555649819757216601502439406515617190290925412136498942685668094500580355629663517845775305236022424994264783087700888828074574489930668564313218139916761380534758224645849184284065973245710522868446052868892046738821976520427629221647075642727223727562592762972005261738349133166785796493728694568488256448554349802082432585304016989451129170854621933420508958952959688779271478254557674932821599838689014076387177798136254910452454826510893512292515157148650969791668336807277704153168340847383385482112846559666445652413253899945451662045042258019755661775941196274110987621468752766248532335019444230910174191613763251963985399218558777547563849151130521402321069426081599904356989848917754541182106528721487393737166405767693078592756186111617853982182680045560502582182374477962308776411926632170684755370297088820404890029036124300217583822378743981359732279000316342837574857768631077884956054442679016734461250101371345182610661723023797170061004698985069225835672677681511054034736479060188109561730740244627860787226434352379265820332836177125511770620379726507142104905568728170702829508578837619756268243620036363272387704966674181565404698471055685782110906258229959597522890769787947997964615992092327168510362408010092609214021379849624948411047993836178696421001101443729317248122561455000594242771752696000643245756098128103097992724591911302801467163239853739061898710781940917651323092379511287642805804499770547392602442033686180125343862542769182716798912467789538465752119727570677889652298690697529835933466316581519332157430424719320620648536198868651084401333240849907452056205440452477713654722839051114482963194940864221426503509241898708667755872327954741868465471985080483267205570306864494263681797358422667655182255314032868808527639448324566553289003477632570253063932704859981151090350217514696816658034445692099917393325124441038014265186992226681524745993013227683045945456642384187962104469951290103005472456849708637249091818692886359330234456500148340310034553242636854717931477927203561112583240025529308068504449418851187813142233379479566162091750837147427239173706759821144698895621490995639179812306555429927992845069259729550731731720739432670587490795593955802253363674812048821063495289160462112964338472051856065155970117720415429948655356562357159628632631675201501655331339431077703859106425666400974137243746706460711572899691064906430877311185044850104246060928496031565454078134913891462865487295746125288536278835106820747852445012149277079521219760871421988731419590351299376538246388492498392963590724007850069140740739561979901017024099872513914187049913927641117803149569632612924293821447259482228850059758075644220876245691050454827244438553587748931547692971689247624438433708727803487849026288856066024452928966418788343196726568115853053342675189917897448860968921430942968749865323544658336502097303133758858624963524735241217458056271795760888180328858553424217430136569454736871399157719258651155657957316690998341452806502610244354224395954009616270739561794577035334792958958398804870271827970397910265767793646148184068052298835993107637532348768778984171634093424957654319753058114246735874969305616665813522540274550860959638298634200747637402935747737153759444912048116348084935624393847632300071899647322611717581567964514736752200507121307795360959452472766057557337403304886503260194112396791359444236911653662241462840775079214895966319813946564678767901778605369030383490791288327581492216458937296286966711515447929579722149278242815801128131211343310896322552176634188786977284536516058304469440917032993607850337350393892208705395201591435409468588287444427867407819965276918424966935984794698367534743546534793468419603907723268388027458113638852667409499070877268493906473136615649016348245518389812571777803307796211837702639634676178149600250856126238633427737600832435252094614802146957454699786146719370695899419656737952211057341047893999007311733312545263256070242915498270147575998012988726099732355098425271081903091299695504039038469319928770191960827316160424493877444555205200135179612036850570958084037723374969777074189153392619408902795822035213846521412099997402362623669060498417042157192883115161783257273195472023105087339325464786691013099835094043998186879164647531412072106592511046077430305744197646116383168885001462390731503074192040795939899900005782155552282100285773024781687211001454776488970219552785361683529414830977434619304106017640755220244450705514187013791224178065456496170421714638784013630834427175091442003515360837979230369774296809793198847642343515864880021229585691315462705813016772691173271257452535964998941826700716113208544412882630847286753908319571495085265621982720586336708906794920087652026750472976631625042968985523024930544841512897814460318043811425132251292068029339377423074111663922961215277588568780296927809846117283356420649140024612664959881658158221812783578075289028778535800977044543845240508809187676897337732335551161308396303113187867766357939000539581760344344723156682016447984580165035657586859107263464283605471653515983344691371461901839345578318603098687977380720244033974212670393170364400611451628530693043291736096751487322036819690430846690633852781754753239184450387048722625783792961749449991635260702327029480078126737219144854986637499889996800882835408567385891290413044934302052834450236169174175213240478575501567106705849963306992153458634003768384683745206187084896507185362297080660624694453921894369623887709445851258038713428944817681926081816381451022045599951561932368214019023569606659392038442644555283196300885221744590488301877656685352612477490129480804459379673655643749950893787185601447758706114103286078742577444081586629965817664549669076256671010638811650245876677488188420909090915078099210798688417319715708986780606670744254929276262394456808068839262947986164629588914525472420500337599460417344810709454253955872750903585814812514362111215816642119919142300414686132176713997794679815348312554300897675800567051688732725321250570079546013563945929713072944140009146578975307406703065314936545036351188599675954058788879117618178207741423727626794212958819554217741504406510172846101138825192851765724869073098694951406802310998181213745344518601228394943401716693499635368636316331359678796711222917193929034959976558546445740595695820506661903291863722354967666994308105063041348200773861984679737395445728418758371873317500501296895781179307751860441483789766211143132015192878260021503171164150437807328326469705896795268476702220797962186005987373464495449721513818466467343549456794374183758563823001022310884884337854251616121741340150346532322604664591015925740461121876052499268673426121976064076810978434450945579051588673630567498897595637160100984566900703034870494811257549874800313068208664847582508796752320165891690850737083829669106432980913994117033241100811408111273987332180897884131969305370267297605588595840013582182560237491366957010015927165109369220564267841889381992715495136293496372414071620433413970230841792592832626896708228975208923450604350041420894566545596392855878996509750947250080470633736971297503858910736001285014213257820978857215214295447347794657549074088031046152473739968404354928435527545789522095976242204372736228968813852342959368459960576382256055515445059234292292760697627977021767497302965687778954579159876363872926370937002015546857793464880349414939302255826911065077205249614302835053634146028905284348108529462881679349010936688503455180822721518421061618812813485064253394130312512343357565934054986812366257867350061675197715905743380854061565556788914830629356288651146357010165767196159766739448211831487769387287636850779485542439038440140295765716033070794063779645624441961692289039848650462717830083657158353457096837124408617811285382868178140962792915740279748046355476784813113811949127565790743457596141838843065446802144186265526616496782348452170455174338559644456651873754810215409766706095937538100042377620100390284281976247161450406970728349333324706307323238143668893928418635824788995600784468143543614261270258236460145261833792748146656784703188837489554245967238024678835272722056107708077459410742487206691067638219840594821365593822528299156106234634140741110063490635354346494857827916852826697446926159652666513472764524912320726058773497457676280951123477666058273307294506941557721226210755039110875480160804320372686781768732610855160839752639486965957324873434328945464026913137891102843616340965834231635491963122772991450343323638909873396127677714447026840061603862349372601632549576722657990906791156147717312738744835343861635680864371117839237400824196856612410750140915369911589725719124479492500494076073061157980653644999677307571061897270428851172095248697837208634567066096749669933563416401623214602615951711699258742138722340759293563093992505633957065061456511160695074828630910376473929982225493213050662358710306177192311423414206088680448075192838998142037062268940157655808740874657693943324146583138524798147236329456777905237826442757774972384813679435314035202860194629618234751481101052861352067448740508987664099668019490792273403018227904688833106058714619143475624482941465111251341108245144311716035483735677640573846577156218130194151890355328527236009492403014041521242132733392444438897564106834569050592042450994220846515602553214124847401258413405215026661254270948878015169203608343725181875563485985140186748545106596962403977136773700349889356350145612866409256738184789812098989959233574780552787324222644183861748187612447343244674886081212117179343155615970469847041842652125741876997331527454197821966160364280371650309273961710254083420409769724943464383891202636556234826539594004126362429151366619305454310028172404752077607303430632628290163832798071892799076307246263950157052499439759273229696104538868688847734710255511952755469991269895986020937919266663936023896927084175546787387548860989031014653180327534568543595886512859845976761349524481108780290161387396441239317865220965501996354890968916474651453954815323932564867853190408239923611603839205929422191180294058411782571312915035343334873753863836298048150845418370986867566606307597728606194606525788361188473044589127049553432685302281339305987408888052249146555067767234022401505448328130219088114854115063673030968708031337670402398747453290556516872515574364157212101572402972445031639991329680980945421558391516999441057109307483105458394344687891952040230718181559949550497864705690272337729675722482680538022976371465660390314111917620760612516327475848033487239028791782383974419515780191852052003247430935972485677468069937958849776097753753480054837816463564601380680007132285320629921365922042539683117690176607918773801176782139527676571014408594597706468768316870073753103723252467656890969779353051448760142330967472322957018526089514423524467137488142678413615382235982685445325175355917442776978715003826760754547704205978316371631462771676779622291946514607550635064510536426427377131530069202067276830368527212078125902841472148148832065995153119972169298066833072579747972560579823079037578514176611675305169883518615730057509971657058086656961445536829527979319012275081266669775280013179385448191159107774785248047526704476158563331354996355644183276738920503002991143455972695942850639162307195580128271665379928427342318585322229396515883605023441193444297580476881991249386875283962486937188985065764012154621827093805797298420638314924223713877129198456859436233268406071080412478555957786427033265970491828220317359476332078760066203047998159873193208387153336924279045110895115016300603627231678098189986925125181457097134170243700524844154988648693410617954228421929742772087445395713308985161495596942998146989694401003429845220487265225361521444382244040011325314215654413251392299138724405796933574462987900299881102099442159259080606060104174233899539984481162978773118122267292628775212008692608224802652359145881712651695693223207021920182483781096760256106608761403551668259036635862326295726630625479973253541885365488180641851154801913777713428982505715914255492771241822590303485049183405117066203166282272050271240652192068640925422051647778738619596199212710942752791144743194373330153539032157572582196753755352109923956538917896455645244377208979754969669214226409581867746836549253691324751288459436595208189600260259966973020422027349091553272861785924525681862299492385705396301939294120443972570198060814462458268808556434996178765933107173783254875117169707665221308013433626781083181462384995156495526990026651426058083273947834824273582381890197837839250405222822972465551635110757364167097019045612891226592480758430019893317906166032659892711912416456870037145370205384353577741947935215325934128017864452539176479912111522501214434899559347678191510811999167750367622342829547129338953173024178037785750550662063123634007052762775387004783566466119200252623681069735414253405948031632567838015791726082856420193733048556446741816671527313497466587106745973434428855208693741036484139354296584925372000376957513419699323220941526935973235478523671920718879139208883760568499095411166326597763683422530885008238424568738155059574946192545513210714316758135134281458549298333204764739676595498505865970680833122667301604533777990316062453625924565751898225833142042050765065011779164052903323333625013363864189146894336005812140457266082494343434677846129777878635052724359957193782611311619998248773795148267854078049686831761107695946179687091502661451360858086301259398963138288356692582592968679551901767278797067655739194921809144878971203285548183569117211653474282372956180952164366001126041321876392791274720019007028615251731821527079288909057887125528053300348909020160878895306153507077448548426243757486479387611018648551424208925989150168613679877706933561820763162095631963029985594019985547240512566503011077187779596565156232290560076442399895006376967971014938267493122268020491521323885770925821448109619920436778364410149430490596422553952266728264060574704211017156159697794222258588156121829398684217601926972841564398556154336025552787680202822923507809018290418083376304926761551805613369917036418323382161943895282963424442160755268236125160666776606146306197720608752198488299935025617818871414659564278030139337483440359593868957865990704539041855160512794075780467569524344832520754138066585793764255997609458469711588040217789822469123144506413400911442602882252975095942546606159065162361091222792147088590923379389787655952402945967628615470351949658848321638970212959812483091385268821591709932425943749834540204152949381723431147850879680989700004252290579773601928006829861978906277472505916557652852474115296051342349343515203076152581404412523966713963255164055084810416724608147515725926512465473192483493174338275990303341820018989819569326504339729340249801585782519384979157752616026756643893228665010278691902662924851687186015875097675452943743031527061553760222756754071705414462736446863325381587378010812913609424703607596724374067236859057868487049087301149687655016999623354661248394705718910097181311410498277491600112586228017754327944905729924184307622245777969230316504648960705838013488645438876047549472463209552373809054397744057316595208172639105651594229768344744585379233473041265118873428585750059113017308912137886098451884241815318928578809415212417012739922106783865077309128250364905421264943677826049811881253219963789921906378568940031979887240783235703546516389090258873311289286228534937626477492325477210333317451213907164757347823334729838888419190161284165392223295492252803327600207979929628158544643397565116978270170418429192049257421421781346140488537376425944678638020551479484198130294614030021537779489028531792133976374762876915969541483810103298490303516994687289690118357384955602985343830693107154605935142991548669170885008684646318685125983776402093877838907768702260623632439425282031414881221954958906452025556227490032743195814799169893212668065226590030979114063731283155388893462777450541330735638797885706836899672414470696338211371295896236369266568672374625357421629525024571183729128171507389954112259580704985476077601466310484151835047020926942567047098185279285499228738124467904729749273029304905113890339357373200848990059047116765645512695986228941109797020352727744029128990228102231580368111911942976025072153052613269505174737772650782281744553878025212295178551380331524406518424416692711858401195952290268640873769544299169712778515119782062032901442943742765551812167862277603405507871412684951024391819367583397417820307169170614539750486040612831230762736202881236864518795978101413994217376682598179944650245908110101131453747661472821614636343784113500594532997354561200611868916751749305205728015521754222995746937357089954817397880986808819174881693675269374607557915508515419898674629084428243693472450443270750212785943328435766541602613447105314312579733559512223997439015828993959893585035201132639092855104822121218818151289915152699138066205717039910220261303433734556318219358582235140580692017219574486916318842530198272449161491266381919730449697404606477214228991890565429739928623947468520860582690929930146536875378222863750483951401379624638443999816992479994399087430343409139653204741782221858388106913957886702283488787138586968706161082818408898177380060698811839748959917608744733240833229619265964718182771057912327971018256107747143934971110733331449169925535954548931784839163307601048759640594694737331669294540551668454977056064622027605175165538839895712644225059389117785013291269272126286821161184893560434800169294052437438244469229505185732009477915252093244729777868556050864584633382046360083072520519423796028612227787825249322127897626401753600816063235025096832994957450785883055985296424493523818958914376819321071436422621405662874093220530917929367833097306911508241809392506095865763629029894537452584229688745567017780337869150480539276741932036151112997542980192837042946146338469644713122310316418493861955309314709932380909069861778814511974047215967962503689759369025875869170710160787630391313362949025270594399046608215860721803293808085477979029820404050482442479802144139092699163430203678009981361248751344098734200656625053349406230371559169151701734604443101150090132564123741173751303453698122079229966542944436020269908414719751854805422432854359940604848589801881594040043402105025991933091412020825114406117622419652705625351265103700808984904368071463040180906776995419584870663641468689712527592563337741749755752471736494223763262073606719991156512308129332661134686125761344687137933477439346470981854461913118087414065823022560680746471323232442519250066863961161013074315755657246360965413476835697405011656394412376326017534799006917016406141493720494959690512802441128866908619102995816749691068639890345281138978333375513550487150372312713195347319540074681319783674744775692697732464178751061923329786829784691259533255398913718619895725139031549583832267760773678469411443900564076188339673219524801812228501533360728805297995004156146721405489050204387091037002985806984786854810341715041641818288424822514891930893251946985120923758884820774318080240461232771898904876900687410142090419435571358077842210943658487445353273915852008839855625294557998287162847369916793858106299468026508896115254830085816743790423507883492155255523953604358999188864278974823197170847068482554572562961214911588229634368088098480549706208421793013676042474420129869178609058466401898281028744771269058431665554218956170234030306231227884287159874270502265438353416648836200376401022174539196612704964014405013060744933133076447243152757039427531452345282119816130717039567964754714229972826098106091290075031565151413614861683947266839601762857067619980612775277021225000885307690577252072885162425244750930589827097207845152868496361986816151904680760398934432541577555475314116251440715898460189260742945214825353608229617066906784528505702886746382572031116211347041157949551415758526828661157572590210168598375856415262922329662882384350517538746321181130760604336030322428691382867904515047467348882851952442927983888993825248935794703080550622076396783673803293279628503607848710362385296577915768503605671518685331321830069779434445474480552054292853209058555235854637519907643608618312345991161075290066779760288903198365774161236990959342465359376356329560467587948979551821052011305935994315746128073853583960725892273395102840972706481057233422685426632043948907888353007986331075261128808295657284463941795980483670613120379338546074059244604448540952246825869144690406649510389808866560549227589635007514968116061183869855877577203620692966072481939225001284901614906289362843852476978052267793993116220393944157868060035386913974544722125988712176232501590835844077866245826469886422867106614442806499819309059781429597603212127291394519795982712076690209030991636555632512275774635266640964594207069511205516815246578905895667452165663261749359508226333709115100309440681049152737877042353862071617844477104627796818637579073253760636936105772958908228998094858817662324274007272147889477539138664553432622278400748933737725227684982475802839139703207713268123097065851020809363119821149572417795389002843971700519166103571134959183141087920363236101567573726505262484330875577085731579409500232403283176972451137627473253051351133857909423878176606513120984477415903856764709662078252970691146163058168962575293102457718007205497219355315459371839490879515080793801971046357963565934724556970939468668881143991979969973895737794763809874535402182505579456169179617640338815015226077602996918650427689132760936666282681641626281029638960636115029274949343844875782808018366509836522910274203414308227012080730251650493088175962475491151108576632075200327450527692553286618552348018475436177058432799329902713294480741508989638119397948868947622836364777668166090700232726350876928659988560909124626950141481407146182786035984097044163835451036835863122564425640658428283859620255565560710840181095021884637770785201296728433095920441255552426517612509204661096043893955942223131712397585404896435533852117467503283680712883870613737625842938973240170970544232217803785093053338508113633363477755466614631114646818445473335686264503385360336333154581887716223639789253534625088059749479467793277640481229013308088094945388015652480762427653684987744408316092446687343061974956495410236007116045692411697981387962916644405569485037630387868621908148558842181422111710786897040630117890680371462086792386563111016808930268206109078368370289669547376692174341527692099568840991941002589777923710212501236477248662387784738980447421977035900984223550911674200095334804171347968808080009968192591994453780759202890317696560880753418424411306094163989942752256393082011032369279864831953369291898408740470288432401275085013037047780203893780171433056358521402116865051271501908932815719544212667560328420994344552091599689169015158661712801377610370353767721049211924014905462736423308279445710522620580124291825126622086987442881781518588821736018468053890748731851728247558218877481623999694063850205952264354628607869688738824597750747342082324541463809979261632131598054587592656701276931310212330552486294679491764199994358456775830389057336441762283323331957521214955390800821022903173322901011341886216792146380496043192535040249861712392304522196080296156527332329267127013240569836418009584904768923713107261755945881383491674793701469696060660772253325979596562916670445999193945975125159268422942474061915115047348907061587201299674143129646942872884423715697037239844090706083230560734279954574986381318636095468181893761732974908471783217794325211584765192036293062949992353655386389035385570414244466063972166727643352617583569677343533461290452445626734335127461207495882858046916464681506079795074946667810129631997280321521689893641043773595737233559098382686145186350013293686075884926946384942314499606505568759737270386388405838375987484026708168977918420157703971709296599010008791461524291812253126435483532775727629497465513287291555016664511247805166694224365502953850082313263333318240332941789263529249766067834123803201904818768440381780698728700561188908955342467631722413545044082353890777398156683088767021634934992832303886377519932484762318468933236993384110896424966608371857682761797969364304732859845480166537374154388573929618406296263481701559002738884757279226103169565879956878942116781970837736209894864441494220277930565292490465524730473993501469510103800415637438693563070147176153217046242824514763041224399055500067458773651754180165099021936564472613069747515121087615730350344401083487524175816278065307134741638111607796450974528299784006326594147724147117220651356141534126900392469026109056068537229299106242132938254838869457372421125610932183037757315289234501024105505550991852061283493642101367998534468289675911655128980923314183281866309683823397528292482070858011557655641943764720399696984388588215476253999914396464431579895726114446136754850252361992877087609792313436180702635953464906303559897115383996599835042909581488590956186583127906690723745891327111546849776958979213200615546715115018953933459785034759403708566126542360714424357975458050698624084601551138860504537178859727676006466400193714007124044496739459280872234899599169189735153637624070406718415398670367177667982217357142867541886414878027083824319548685011554685105573333104657971295073333157057130803983805176879617847551342596959171980405150317817015188255561492084948550264062863181468825574070999821644870125092136459390405978942541849574323753905427287259476043163164858442662579989722666691460013406510198547777610265241033490756761594504937487678509972854902199549524903032519410455330437820571816981599511333071038652517920997392825442129252208845397414180920525904201444615306422684559523275811216662715417623174251566761217728547985120145891332819750680565644608513687410731159606899123136527577710799113194976791451199713487021572187920671557716955993620361326506248788637178666321963752634388001808007304185323252989962947694372972783570454154205321940419194510323926163575900679397891702361033666267644418153443209912957448514367871318074358589052328796240919059998328668538643062635164882988447279231193141168346877780709670256331281991141108035061154754536395770529554486797642268463091855442390115021478034499225769939783351334101951207232080120949335202003890518388677869124000542568221687291338840099669581535187406310741087626784384439505154185310602765831891607148653251992214605451973938353626108265501713411619566403337193122019852020616473108590064476490119483228308401164083499049579882542414428241393703713145177754901702179565416983327734764165188327639988822396532462826045519828305688060789003270306678061408993996544612937865907393250437692206616262680426836957599727214187115650887326047079336545057592115600784282292101933255587991850912714286305635960219481028583603432838293257945553907580192209603623086710396292349378304741387889813309844648642711134439888548523455759495848934957902624111370906522017358190693853119040765390554239223903590509913786097304053064962357221709854723667060992478136263189128463824210571265460623693487171210134793329856035135671635150373952334583184214529465368076506026274339047631108349581305592211345800812352442832767915995617976814736337718085019626569685638122769698920117707620164521538345862851805853745847655961239172872326008518015399401009596050272184783541093748668686941535317971113021452434086445812302101505593733311848871217693919359264460383616853450993005353524360679734908237552448455436782127876984182752201001133963704500212051345484683570531836329102859644881891741108735619540749513001191922105858550510517946050989203613363525082331261516438588489927461203437087389141081523272677816229981930416409130170402791664725801101747392023573794481125994550536448942416125392763385954138406807983873272628118233833115514864224983779689201384629866497023404412868740748236035769526148848313239660776748862136383549110831255752827261064164311571282085024783887123967892495228885538101383919959114711548267606009359403269921988646788317856685625027932626652551085114358877432007523390920851143620149983739842078567221641845745734996931577868393188393891883717301823999356389807802602673209050178605718571768377222243321043188335698332425427240249250780688343714285583829833132426116077433336890576421556854985039136785980116328367174020027216121598213693299662758986848265902043511724389327346552622881914653970700488462809174464977804938974450490411075742291503969315355038806967416909064562979065870255960715244598711549600362504466235095761684076616605465575266808243389589271623970641819324988107659839187808347165861393213506917941257761853109340388827347324976327794699217506505800178694261631764334679853395702768154276904960977009854887850082023167293796182912943450653753865970446068665995842746554504689593697310041607805653955595438369560425202298257807785287070756337196223912851782715267314692143162208304069400736245504018124176809646473075904231923106972811178146390659314482593015405934180212665111564737212162897621436201447607674955318481289889948536793831027140248806614465407976344732713235615847634720561304507571821758788249364821882639060900164663971805162668709965066914545174972934073513392085779464874111950197021023617072120871192084036867264737010840029205134941349721472587626770098522856026238663253009527750702787695046040457430783935432703779516248894798589505823858849470293816295721477719435252705340852678938955396435574253530836391192761192724963342014523100215728949597136698320700526756126229431536285881875136018394811191852388278168280515992624070698220721363451350539587197033072056115804395587966023770393746493919800976286596019300148839374196643459453661062453918466294026696341338465306928040116009856895146744591441145759519434761818653278057914879075672461466270104453190747217471355026010927295174559324439972343919703335194654314469651873686648216574407805176129939956449052158124687011577708971426323642750346708162209682516595777857788010306889906595745137146451079813463555210414631925761807377614723482921115034142393268399717405335100262405963498906817238526462609011296046118929325242675055772691784675335763947681773220849114414378922780635661639204449432169132048638703007640855324041138086740283323036122109047496207603606346831742292832208214813902513436227717706065545161000074886193491581423567023157513894307054941613100682869864116210874954958328895277917311254278734188784219886725062528872691972567361532979311037215319686680732153676772077594132455067957985042002347177391010249394093899820562672693133731567091478616097373999803060393077891043499734039600809751101116026277045063386048924370726541720062894810469126977346905864392044394315607455008549277240875272986452545178060113288847138918453266520471271098117160428352009594964095413812708654278895665736195818360471248316412173825731333290305784167454266709793685229414536255598447540715060274197727193755131134860928736033590233737928311131411493920971309901869473323003967299208763634539347194572360433516177093584149366531439611724504441489543361447905572386259497021480470416997278206430852918880367258971551816467604426303171678176161798122242545147714441182953001802979830535920910305014454498270147370891456415057986464292137516538679493998969729394085973375286856205223690308301828611226578241246861471058547476442440881601112616201810842726943554528555662826987680812985005460958657014156482108828157060808875543067904069079634667887991425529348326371801425654990038370206644622426531334449471603166365776505947417718481155258470545947361682422024961117986325656738819124674014390277890062867025586052589393553949852512661273820118346877483812318501823384062580649572188989968487500062557091719213109813268217752441455344792849622351173802539493470482766308437740660206431322837345097985592205460997312598260572003359633092425424307860739977495144142695813471715313968816972926311528597795709837173385338032556122097907547568024808427891883010844883769948628334358167498691162299907202547764608134090435402870371636114612086172089882723937711361317339308711686698703868608547170321675429378117778826039774845957040133553975924222097307316667907880231269011309918985414160536902910938892175799136578318347008055725221434599141944392857203105127721935157939235512409766857042589502647096854718684922123553863014798467517725213738559057787547933638399474348132377367071393734318962281010542616624702070837734805395383999667235968811075361892046890100310625861920948620197696402615156788523688603867193197910852488358729048723269289693276346535170849138470559904835115597752231303387381070093659516575136812543669202609358653413326293511094105793209702273178339094685059418193302579240140485735284828217743587255076696558890934591227214271027269561526637398340811529416390257188434822140465083569005587637175152090391788372367861289723417123711259179464938018165750448276965611678817950064748704918551966677110228316396794783037654133982068112786844243604136555074822729232579891035792916310198021990045959353675784234368138941456287269746632595675546750825378886915712470868442813212067532026610743949742807825475416013071112150529190459466398739289556063374783106569757001350897138240226963815681437518889458099054119973533180384972489308707002912513916750583913428077329175101067093083933353309723397350554341155663355713283716623044869175365509521474854270631577322064002956713002411760407346970838996088502163631855965115045683982962207067916883965755524346124195431223870832684467738999621492050269460337195502025610155973692265897203992150181942815149537838502990629230070582852877985386841302470183708277419411437953614337089282321993903495034554655571423277844827724020712796857981886803539242627298498037537115783736822088532219503985497627795394078485935524578061540007947069672621796711119536871371862005870732988345225956004834137548647879210279920637041263628377087403677794042138259745880636825265471637937009916708514030154691011701496857217992895345067187421136470510946653730831352351026490294586489001787791590709821223693078258976675596295957632745871708525918764941816476447094300119904679208299985291016699595419645014852520667420897749382004908114453160009026175039194284228413890367553293240869770526397270680681364698590266016540770083420030467963819791175473883301526849724299942329584850601508827110373378740908017828131649281835207822048188811056897465908717350984927076750963231163050173551151386499849230359383692409029016161550195935702748840585414600644699921512893939590126810522691352820568233991310402907346782609232226358203314687340102747128558817262808721560972743748254509781592949378920371880264564090095356144555358672964312293840441012693337253247191314154630408199858355751831086082842960667658170215042382409299195312076559625648113392862128681066472844361989265700398305041543920789422581680922563692477410118354556347869435253508321561440131416085321379863911217871741664189061222452637811027698994016093187963795183185766216832585896522561855080320078020945877223803925108863004511341955538992378271314083959087385858892716960098740388432498389103826256120499719324691442645895387967366629534050549669941119102807261977282293617648189398292356613584223615844995819731769425989739185278849452544229834047833329772093470925167918478768835861455481437139358293118094272493973875609067837394980602041565819357504803908016092246321095158228313429590639991112831615503364181325474215302768288800772974111011721751001903515965711068468758272134890965463263702658731542865617706664176469288625003230043610468427229194377881461386102657837560223686195866897480850251822603925867246678740682839141949092294474558952092705598661355223346284767911954876236167326366667741528494913819058830515708464028967535944677490158503325912153801376630254568643996228530090607037781189809015209013663277383490119915682979634592347440230825150258563392839649632431187085300880670206873912505196731943271152719489324345011039095156018230070880651678183984527157094009060766768687193241004131336470782808363742585301840533292352747915626215849380498461421660219606300209591427562916984348241960729086156440215672544656499580920059542475873112781368597984189327221704262950086559722513249278543066192446873450947376227169247736935931913395996306007447528794898562191186469170013036357808265195496653669815385252498863784394725293801378771453520691763197007378822164166197591047381132196928683675017113427433885722592049759321406078139898687550354225052715187822321629838370352900559758697322879971235221130604813268118275701418458952503975070698788002534365498623160924072409640974139949282359090496290296546273988911646119066934733662560516791089653877169133896592371173068091590703713986389726090428390402243501310969715241442615287695568356791650803212128754533293836449472073520904533619859512745918974613715502382343601139229687856712693560333286249684611771511733797505513042718103541404851144227004372456825055678905922786734223312263827576165435042307200189217785905724236156150149094572383912367181433290444466339570059746677518962726823037647120411610873167324967729707680537714577116542739436718688998155319690693455719714893372435565346499140397296925810802011419893738198498307953749310228902955284629167107153154696703082853440925971812008267833008499078772091770837284575551946720985764760050611601348385581872222783949162206307650607010786115878414904863942531913445932353007511656740039865151456367110415956727231057435146289926678131279579130868293281627077510091229060804577215363880868251792878659351785095569597275791825310405246099447300941930827270359162652403931447016482699414125673206089042917446901073949016458543416380967463133603119298031379953365283171019201013119647732782370550112731956544867033465754877803632324318968941817506963648530528751129246930514137022955341853970902660046311054543699978699896023925944319875748497519110773705571382887272854302671895584099400962882259348826910549242097506192121476159146873094267088260478354739696322649478446849748855733616807148850294113020848718417220985622687478556663794354053280965468850525080664608598104650411887833220901895486330173218756170615146449304110864476999350066418508216214990649817452841273999313808541873408035352470470775554517162795764849207726908070290623493184972843631423500637439910247023273583238304341280933612071579502702579378047462619316383760104804981457879003001330633072947544769614134986423731259835141167552245993448024151726295042836078630609020081016790233564895595304523348577164468237339380725095695535312479250100308140714763777083547785591578839128866745617983002721652593194405828550098065156542544440521096267059233120618282851578564260608360688479741964182860368272158946662696725492406961801918017631597786849705198523556399274435276379081465029515833720422037974129158708694721107734024644843781869894432842816346803841656883760756357602615211640212279597134461621152820076967985230172254705069343635141395507928575065563549711927663725770482703994035951535579868256671293473611619125319884576963427689669687658689010594831145554255678428947709584905741116404515122959733561485767849596468720373136633268968589087625471970412540084682427246973168055728048429819878889836501269311841657652553365351024985411735032093791245939072242824215310713947804545837246920238392994858853487419951180124034846031936877592322638097450170788960555756219293974330651115492720463693425332087844242615880418361661766541648153211645738429946432020034728838255292085866282902152644467978524478592331022818252013994730930664627005589732702641278738456149943001050355226370742284983354890564950040039549193070523574339896776510869347675287713030856416956383108663532222947708218708804652233365188564750223369177658261325459736372467200206505521076182726838962205625322419029055289845877848234732139502551734165692718653499086978847828206145027477609630812953099453866446640747864634165878503829389475142800895540888222754759701293672050912758395937573482259718819620154659241564100280186111781622934068676967837684882379437146790693384143203240697131821163632658871935536150667779454958660648471497537148892340419592732444604962760027719288466415290985213724944654394249478369645893314103756787254310048369053976197447153239696903910133579353648051707639233110487536275022652597366021056624573342245803601121706496584858723158281314803280017401901135377494024108404576966671835843328163849715430712717501737278161540255321480019919002276011041278874547784774129233929078730357712753016430951956507500514161831741093632954443075397494386777456988636666035995192123667336250466155175244766697169735012363411326387139208867984380095543302904377544157267613765966450968979173765779964197933018053953033620883222987386660427233665848094746143378928128591020683024155231264402835106323394500191396411008648051242873955974766997189794196129001862834944596221550984469263524491388511654414396475006774617278100309359295228926077369369520913558898587688523203182488870934287035577319626176087362365571001295364415460311262172440083738704287355670330583298499156644403049946844772806459313171400543233258841801773867651261202757153529593986375958250718382752295415165524549826238410853576369811424496330681949183512399414796317276328249716695042719628034092254045634428187248462033492405074167839084763549268915748767204196398564696471572060005053452879028361773167384212848243692720147418863497646048141145234654457310474576694990967988676617451330698804586796517068771839947651956884065855456734273512244376981803549153177337226157851900501206959940144217934058898975937006787029500925145749932386262334016876732645520332542675285477739485580586993452441716304504604998622074273972699059086619537573873720025127263009635657751088168857341733967789402125056238302717958733738488577984993534553202139347971850375485330447128697745781659820788383514751569585575269558426044760398760858533476289918739250286425255708771007270096545935920867937207851842963375954849223799583256279530317189677825737175883980963032581626858412163681943975038091274441900252368788012440791315771269946128485680475451558954765408059631478383560098478399138066204153752164222338707549149774502043254478119345174100228484185761430436882488968797586868987155893818648775948740922450875229250638562836798791380057367674800440670706984466003415193673942414130372114764541711704142583485162336220161603581584338447102114005372691711650655173003506275461058852274803668822094823329898419697519189559370075524543105342364854154777250353029312381873149532278459154827571725173791391094126612787011565854515602868235908090863557130030735596107526434017687307980037352145023594061716436383524765763231982689977428729897926672966826388220221672850920946263294563921463951474355298111234957247488866390611533708045000790852726668304258140012165907684137168763599942797178758446280412736543156003481548885641133141425630318533444200445816184492344092425058420795297286432134908714115726250302524938803167553974442301421773246953917920213686598815440337560375274959424637088757513885608856115187489447052777350909010789889410193724732598405419581262030121392130576357538435229478977145252301592988187854015395845017086228008722681315014696725528261852856750776271204803974254351995617541755636712502753532609770206599795040981499615153586733327717051499476284612717623518895968829348572695304560482040886864933555814402141267575816594199045125401047838660401899676850966737591180732522209578463368283104219810513446438869851667654789238464962312738868368692893154488285827777278801307701180217627867589714354858776941450538555039790100165024165130852689779190991702697308612162883865091769450607044803944392482357976675565546694636753973177102744987523233383854894023290897011366806835773628272770132556548207956462235948835736775221568655994153871933323624099993205770527417182057800591016314748231309319586022489497699325458066708818897641198514168855962116123989865526629180982882725638117843268751273524113423293605414642284033903512886381432965697781779091234891944284795724711731346358340922998339761328798178612552055572414138043990577813635329087122015279388537625599605599015319547988170066288553147275956865928807274116148778115475614053357657077019101048450241420461597157031749218604007146040087360531374227866326708366013683299534013067335247008682943315139670064918669848485074405232658526663801982147201116236736307629814417572905620534496762791096161997993069525525090633993274255805178147380892503388691313718535886907770944545771912097535791948180256410435256770930546618647362124550087770396254663977629693566691884399814349300752322109242788162880039404807340315016187497210779515586410214862624292821010631454424722677444697359022352330333184935666725885263226371113819888335089837528653687639300276972171766464394607754833485755659215658132593989002598678590659353491608832851024794806211121203322051995155315241642165807996684038291543131625114896032861351159274982690852068966219236458252352182268593636217842463063154738148307260594273387796394286260266107959409905660721791144876784676620426221813115749152653949246900195323781565665558219398095244052900333986607500110004824597875120192233936510470226184505033111135821949431925514441607686144394616988240842055670123236405854863570920302295403293240179049449401405108954701669186869451898319711159409034805978823722619063856801618871889344977869275034242630714370759992974177895470212392294494788442474372459099247356873905979813566253034511216303964388037543676897641222233610711514801738567176762152206378411238454618481922508970026836527098172867788857475136530526021575544353272080366406614099259221049219008135967745577988569551791761492615690729515996331348743032726222330553399464442850090386997295332005023620613685970035765376428525059192131979011678422125674506745288969719704393889970533511263000580928650409410544404819277471747543131058249521514353108375626764985466434455224431130038225832077275554387568270108462859342880760079008760040425506223370995765926351284412867030974470310624043198956372260037118378119420185021469362275975043642214576479788886908903832337119788957725391318731173680149525784737292444798163684571026729847288634671205992562331518439605157872882484896243819177977171574171854246617444588607534398781103103138654785790429961353071513322035868265589838455831909161053903641214818804366982333224380345109829901177227476967950534218615775323859583069964700263915957497268188738105933677088286585420005456156930547446216187030351932645914301665935706214199716068558773219578545582278689238296235206023250252895199598148562893027586217248134033845452069811461879586022979170464148086896403333076144889768909592376986308847549016366336396815405728397651657828045449421684162458456885510901021105942837855395785412795900902837930171291431543741946408077495974319408934925610002789201326592822122223422182704957120946762673492672089661234923880471329228094674638905421943126819731299098003325409922866158391210291485499178931237874449553712820312876989481478618739826783199325197001727597618587532100313972436773652168688017051685826123717795265571197681269752231474697659329579854410460771025903996282247586583229036043208739183303536279140615603067269346299830617952586059819605059416525032694941794048976903957676302430092027022337844967968098110640418098341749003287800487188571760513199225085130181021649289927362673509933714139115115184495512899379802221099958941727159496625063755501065328145520665980299849218855239362044230834143651355692575552753102379426721130742843187025128444161463503915604060764992138695789558199015258197752390355478882043002779588471420720759511419334995694625950017665446163351426494735184447962137451077728888372058903994383504668750860678128490048459421073560726051350029345297404768737160809752342017358980071456870817010792660792328553599294672694450404317457196885402481559522054064427431903969664159208561230152073335608492968155782820848206252693522784603653499462074510176818569270624480094182327219291653328321155039079989199104468251180937032583919178195372662939325288304461169093483817539598412119863312708328585389690187742148037066339633925040299141003025592775130460546607894761118608107050182670567632307211420901015644451687490624342780323900002778606294193472639089163051236099611864044676959333727867622049622520072453853045660168199474567504944069392952386439258737234417458469866277304296848575421418620961150212072958326239885973026393708348655321647557481811818451186112246866652801439060327030867735061239287852102073278186358727277971269518859072492654932540944652951593932715213903581300886394532363633281280185341974383914546035266660586305532078960132158862300581618723706120760498294237539229192188039400479018425104498104030583276165432694407705453537932598813631015325852941837074189295170753134927551448735420285779620797560901164978315888377871603906896985329896817560365832092439714388314858681844134165540363145431166270623339099640602971310542918322087725435388591872856466633695909075025695060834253448396580169366615735459594630798516693466505788786093143815460177896082385590181793776222404404760331213137888541875341566793193904578559967743932986849754199915835695229303060540709354572510234815176919742132034952588844035382959893935112529161944628953297527998597726587746246945410385565185947419293483859293196798302603630769919333955077180966953218560099902759957708609617827871659620463599044620971793949728165880589019465760140363110785953662655386965037640342046743038984287140892705292691284453232084628467485919044549010643092300908503419006405403663204718030565207765543783695870121831145843803053700461011654533381628910615970559712449679048972355928703475032913472526597467809569391723027690271202141780146511649893328004404383461415201681662430387703396548874955935942182020688624650814917592988097113541210421842195540557334437001146956790023569926169189742916696269658931564574897513824911623505109786121007984625149000305361844954629066590900065219023446864233949845271758769562309314782305571610579337838862418687290626586989309329856500900073041910332880513399232199169469346636250854864055022829183204632608168456380081854335750162385425489000262094785382315354148351325091738399717711271794268793933341405401965827983569095062762066977393735809093202174732451845650539890482476373452813155772854568238304053756691845244276090241829305574993437852349671812799103575777561461079579809394005645837270746904452719126873767608472579775461338368202837250978164712690331628894797432033948680855371632534407311336182526712937141461827451426430537591222223157814092895637581241689416951794480036959681727733060176338999677274869717768033718452674041107443546953888888760119332700078102208257835058603602479514045318664818940694683196111314697392026102357147391806173609373295682492813816428244081613874295246563788976865368724959556122180718265483420603655304148714126553797188466225950013715860681774833160164487923972848970235554544902717859652572701452242749686924108547604098741301291896049583173837769072225543683043628437438648681720178979063313389244069682197232616740067478341481357390915319394568040492927809658736306701258057493905097743659260619972381129272270608850065192200351092141059773128383735849590648645935793739113935365915401634360682231982227386164896913550006992486827687869435266716755846100332221926287707853144273213174729002628682040705486699038550159839753586912720192463219192488169058141452430437069804611920463628198914487781452042786080342335165935834751053749756286079453076859837133998445459934002822612057439431538464626443301735208736794962004246165521362539222500946580744175070812263933687353024361162526142358391271989297188782948458143333033030509922997824134397836772604478067008203635300854926225079949562822368922265373554502567095787210104460617830542601432396202530822876937982928290152533641748732270211336924248448633002646927307379349320051966597472252753982215829448110584461414404418214818330199280970966193800340345679180125059598688288804127778501221610744814746578521622265124929803039411661055274831777596776502613999084229798209252581932094038932068208790009061488699687371544408944331806520464746379964347662552660615877352534645307349548246527365917409502795726438066259140880988189247388651343925277739590161022833463116286883279697718599449492513642579107251032713934836829056022317155652363471968113004364520274939760485634777944992129616629263421867155640928853689365543917693467272768504075564474555353146179676131863708154380211405985889587944468454102384816915780103659422619382285170054679715820350198406578229542998182531739772351910261082823133233420067867312414111352341183593589833166436247850218949241589918612041306237875079646905348431160932750544044104831433026165426111494536812146001660033326826157153494240723604227705402761849372978365922863281983676783626011133325540062385915122227804923803077579451503968965517010448181228263382821790760021181081142425502882771498873073600675324219953462485634107220079454849612773710734364912448662192788563132107087335024908784308617161134620701252316988101596049273135100786654123616771441721216958741890308473848202598667467851343867051333707961586356129097826053467949054995328845081752052988669048312788555378518589205685657389965573477947828930174050695285797255903933302700368970711895323581649350118302404066643000821401946257144586854134695695876435073503454994329515830264819926647873743628928178704299761296789872922488312350891042459970650628942918647813944259203738873531907934202134242234124742506352651441405018312440598166904441344348177140046088311712278778821406398947692166086665992510628294630109120381147254407847899756436433188906805287268995001230647413118803106571553383872044224238918490649515821092576355885783409161269123953278944677082703690171987390468345527254468955450965266377868094159974893060763577555989561560062250377702778636111895242190857306221839964254897361878322939969872690374412280597021066679608235111953289679399680369510135596436157517396397639078996380171642330878244882785255126741478165458328175534006480018982111380267275442350112573025989681545804140608553781673051287740649655269231031351212114364739638832662941214354646293520396269643112290469885065640224070864973862254543651515254319742314865707281381364549588706122915922364067787907059198301001079651912051055772868586562955696901615957198626832735760168896397305635673944916345511757648210320487483032568256016138764950030002503084841277991411265709406581165042029905183931059012348808875750575653598202429022927340035807501440816333504334939803995688890672645765091152234526157661434507616589386573137142277441380156338406044316378049457783745682319453514833891803064628851188916351069906490675522304920702917064601288374561922323044971908808265287139966434839630910040380652299025072549657867235365378269640454428762413899694131489862339142506372409904550662551922750940065479734805077561728086050190321740651277149430647454111796175546511577360441073754263825352560110333278452374925861267426496342855205028308741867206974909945161453575666930620305377824162370914277713579553515352949218892135062493616985262819877022113238717172946629360538591130777940808257730171964281940627905068683381554680303925045366597245664138233793293166854493136946238381469160843567924354339236226286707625268855381215327517882023539452246568513398870763251460333570122887726398828523018595014548280113271543598901676999348551420465406253623606651800697618824485615497135165642296774581962411002210275035342791760764183761390744705500641840585130133449833603969751894685419392802525374486669089320419307927934120824624377984048751677513584045836245345296988158488984502935960467172543469969591100386654835469404775741455822556666690407118984272105472681825683527535697050986291563866621130121282333103098046527110461002914677220970007088745846517964821906465152629586781984982436154957937874774245861028933687978616491151992579910405486247004956275774734562706314660337108647371383226044356415267492690505666793399105049930584333460996981343913588838696537585438800952018318908150899765145109366519431260509532213049331683289906124600103781661636803958115984552000773750979977972968119995427024655251127546849116503890984923911490226575311989167764110472638755450288745393724230216816436719558720664944883457500994017715237135204445212449087704380784548075126317483173950399603317248625812960117810798066643299473026625535834934584724122844550627062716783884817451833777739304182556600280783713235765328903007332605106661533387987490942595462378091406986365423177913612195256889939709639208674858896485324614885432656535297844506729074613071475545419126372956320959445267402652061106547902841009413338464080327216238290767706089186186645394879817468922599255457826385943844323860700618118422186602921740220039149881497736175422238133963406812032204075014806565449705541435625252921062018917812013205901726899482195994794503720601785234618148113595711389765948027283854310226877511621411733532484806174212545424070357935261688612050721702703525671038498378922884033523263536669932641216403111918921516187372273740612922185040837109947531381858854775842271728616423616049015206053048224755171824843927090394687294579495099321167921067401441652314248208322232883169193365434395162343275549690578781042694076914506163590992948625241095565149075681255915371300928928106062979444767917802555841467796204371392520050173088960083830828082177265533920622364086895549170504061418361473827393997520314073296950627728739352803063586053386164088702944551391090280815312669431089155074030518152799163478110221204854396621794940197360914743634163749789364143675563104671257845029301011321884837227095647545304338312114128779420487841098338337765703054616368404751865064056995251144088603387226696975252679166845347739706182780309690568568331315182653778673709426183082604339278401504847298786473577717807664881461044150216428876011785057467225555781632298809129450746787160738369999703935184069088945539661484180119408845263324319402168683209955992705907685725212103406072959572300206814533341891372618655612159526214911372349658832572847851120562693759201502596618890498061121516343496919518202744090182563925574165875337901279201564736303764012139407131679351549291403617823940759132700423587683715916274700866644109569478550379683550845626583682062311113593329148811294236230715988061700519940862643258354071142252768121908889353247742480632931250051889673758022701894279465551979322825367533528200930991853641531053510925519300588192375587506736704127898129946737740113882383030778420586299134981951252451869879557529475083340824979117888155864804129977194750394357215758513393861202940523343220877128540016577501805152292814449853929891739385145025909500186985477405952964188157603378567220739881972549169285204481763312657900051373564360961589675940278115033791938388775032419595270096869190267071253726535779454367934252705056318610539307384631097007695756147874015709343010130360184389978721543614415691684628344357063613751223728106425681129727420152379925507992862661634282984904410738244486460718502725379519788541696540456454586428035035663654383059792939150185513699686177353600135843481201480563676037760662875531006721275411092624655268741877913262216519765556076367750467423912804928179999071473070912746350187213258974438156283804972005534689269459872146130516279970204275553518737576097702366242059672241417166648152563190272244467779640431977653872365199239058608676856597887485372896420414594746660863025454089379131777165434454762940190403161694659731916422938480483534717646992802651531394045939357884368398304547323265226953374166958668169265104379982767504842474787926607818726080485873691747529661475745785890499095962358596230542868156752023052893540518024081185099742694124585392920110755211563284195850120031711190758409449267119618575357548627958517949245115505853653987199121796659060398312135447703329667774559881257270056556712311025808941489718235997700559336848292244866382673949341739952779573053502547956403249804092198323307825193291189634878454203645697449037751498670764751960363213961480045745612541243917309962781514008918860778629684071756251075757789912818141562401111421649586898145018157952944569978260215196037028278909584290547116015934359164192854209597118657067409588191553440777707177447956113714741767904394942173887590463552025747511928952128648389389151620427141502297078776543567345301907795482390765895228275423892374321413192574059542357598238615647927046626792047008814037621159279567253735420703649040481132173516246240819971284717599296344168734712859038494941550983299102745525313060699802046330530074093937345296062438794953566055460690651454969430904207810958985435477973773928908916712276661334400253248951997608278048138069513269525025409433333462586942691737823034945155844847402408194783934946353512948888632726726668739891370139526043751173040333585834326678529080694972117241538361179802542604152870610529888608609564878062419395523398564853969126302361915571884205872515139394026417761429716134945395550974367183585012743894037466596947502714989685276368029227015858373251993170099401052338699566076089086949940831185041772312145576420451365108359935604025023907795350637167037044841856750974381558565593750961240884397438406048787469946214532849133197968866730813826982188242626744957475480125928933997854575944839295112557759607788259493945911670241823966824065366131847167318893273861034198136659048862369732712241082035159936985925090795748671066382147413745911026522484657473129050961190584101978571193519651171133854525081464897078162853280005151203658789245218839097712044013686288437715465985196199163467248121041584732380333433292269903495033706138260743007149156689354772212204000384323313051869517083709704815618906859666645913303931020587062481176892743346182234658610876606695714155373547622366928328374139272282261787774713117885079276206165884897921787126536658810272563761900217409710442912496261951539680444112773606568506051375384261907474847368421441876604471325521747857322649816286485246124025263620992737389214494654797544273727564282182223671696764444712017677450425338488490837865394271420067515949633916751726632496872422389326289271323658815286154009972063938936999304958646184710480738480541482995507002099505179038479709360080488091649196915426737388656235537437800907516838016280535003841861878510659166222560058567750212135270514950422791076228291342087609764304691203160016266873438877943839728376344395836070175331541443988420102856107503621173610586927401892571586686078605039494378739725278013789700118185211013250914752167189304341923927130284849696518336213564887752738281659867311054205497329062516437639604957135759864734462952077828253909277317706937004507742893582382870339637195407899535840921323023681086392855387918724827046331992004669591994016882133295760149354113020713730262100197460128587886258414380561257779462972848608407261240196496782129784689143059407016673050171795784523321973155255026995693255380823853695266731546297842061309236541717832120507086892954471151609410892214228755313186908948280441449347326631949535123394783027813843916675508644852562791277159353836726285679664959774443237450663323793674861640934171788678890434912008458679676409331668885535705831625505559016877411118318621900411705250480423436343224774029363746030220541728888008010839105794617792845173838227436306043757789138156787871981036217112289266872721338785447754297547413827190067078716725047826335765557769869730560127597220550276145254844495863272999229536922980563046448299371237332227907637001546769040000209920788687854762705792027211477173312738375507516937120267894909370104475810358899870442853861485583676233195705700025031567423219065214807124899876352921497047689719131088452227445400788361770227117761959394338868980929404633086377537359030953046731751833939267243199609814086509959903066397453539804514966775405119024833774541867911352254704337948616691331387374397770849664604349011310031418270588481056911423770483970966172326961538255107791704668911923544109535623134415096392420446253157114556953204314490036288084298898946113841699802370154171653745047806929665056258581157685955622150216519529079407221854283799945509307692371055866062242451280245518694716450930024909282609277180864597080995560824418660178501617401382182446158620965392774976633837449455463975583319698249218773077449918642018080401293048169390324339886300766689409855431245286567459072949539073310371261676075735292495689099747277401376713586850268595313236224011674319101619092812155566410034937122287000026592198248676478694492313971970035937964648765248850724909705091185741123854610404465827657419491415261720519043303898885220682293405840630810216245928184030761404999948777196011465968590244319773203158694552973505931273137429492699148576879272040785630380393139111696427089710723880768253735854882117885007940885215348785889250050814586835710647891789005396231510538360146921304296758548038482060165933897332686867685595391293095000949164741665004350438782671499767538821461689997428605954104070971873204084020758879905831951586111165187481535839397750556073279460057277441062960853664505253570779453632084118298063764649157219172067331169152934481946630674145545832862047085330885030260239072730834774706003672998822287686020605329861953058308207711918791227980429437091853259866464152952243246415534456475593533010117428319844155096739972821805665413070834245733962646269284786227111507709601652955553555170138302238896364253984384449787239334649997475688307502230657944312072130844363483268407957963973511828503265279031734617008239137376958251032323955537911639722349792424806811539650874870664641958735331231754682779433016439406068485791767637909689998741563580997554951148213608296402341344627704366150134885458787642370932179877834746326944179579208428649796937389163428111488021609371294600736548999146466987943737895354353840177528218924209422464168620695079419053388075767957468302540125884324391901841251409610783667076154636691371494108430479582563026861432926753289558425817322386392516406302487402350056812489420207297854059419455190774728472580075124139541691998078834847753629478079911842204120658883406962308678168179932114562959321687443930649738966690402562606951063348694129020037068890460691335829955478110621991019187437472287431092018781688480788599475847095154574511078095377200139276233309628764528130196938041123214687798562280660325458533584588420509137942743145568225272421634579819203114211322869074282079252103850310846614949029196423138639445102948519063411870535477236999726721534144784865935479315853591832812227182583030223033847101384938959173607990284056099839581273380241928177666743601361680730466354141161488155772641520839489523657080752773268328165448838225529810480180361314059573365798074604060398331931064271016086022289913751944900377760062106647957156823527620066167453844634089152438372634423009969561811341119291457719265915443836257522647088014041885322461790050837594534053367007068894899000596703598852823740933362151115958957770897633250712255680808706109748702860971893644066630359321375289051968234309468562703029337981056475703791899110424220411698178760736907840360923098536798293567973800483622748291174525347824581308777264648328302814255458264884279322222859424294032634579088590654356672229365274190789314683036821195383883949979774478412644807760176849151455940545451083255473993160003062461408351682486275856373592836817773282167076021680756273639359608650037897579667754689670830821025058899810892857052469659161027361098732048429413537063607181051994508704608427283844102602966705774904476478939688000227659920503247689371187779790866621381159090956486893060827834199115377014986622389247117385797198084368985759808925749387536991165333427883982755853634486800882131828739343320401108862701509630233092032210843753915584365740637299802448552696924442739657881239618137892893485225501011883582960316309865672711880098227815494987492991292118291915738737820825492575341651424668813051906427986592903437941566555266256801951692976540588879252636593471819579706531570529656763899470355520775589315624926381111334928790992299757561499052660402332762774046617074108001464288611652321128631798382180787359636478666314294835532089956379705283166327219205481513513650556988238469739434479299167106510541813436025539250503089833066419102324918530531739347898949325317630811220811933615134540983269150365839140392513560936516925609113601476025451208615962561472662565420969247124525715766260276952172374412394333023700750223207177191841596321470557413810559602171922793019371242971960821468095846230626407537780111485626181910183062019023646446490054183357806164040908842413683768950303882722233652504025103141412716309862322114001423185085382621597016216782484965025294254654199759829490576928527679331736945696522087990736570829061805964745780587698090796212959350536779917815121790783328744862426282446826770359013807865962955227392828246228012742665735771493178712752655524514776206471739978544014401596617421192478798286361157722942562823171590461738815774950505341512315546434813628379462943941747071257652982208967384219014856963379630518420130818999906383969279814076125499059091076719459651814714834899657767766992092615930270458701731669965184201561235871958566034639340753054121159976507661861903357233308951430695057749070971884965960003660257068067268597205515603833074020091263231405603866352624426757877638519547128395688794637970995598428607037023764603557467066941790197000718284657218504473223760858973411119347440400573655940757807040898493549648801138520842221387519341843744988894737589085179860136339081353435074918890241348284473092127811945651392039728338563471947856105916041348669387731399883236925146533700498112590016521882265983464842482021466335217840243740396573255363641441360013812882556124789568598422104341663816209690833244242396344274428391569790538735137608295884832099453905104210984997358741663226709017422110829238486624093996012617612460761814884005197552404394181877837187211452004412428882403871214930966350518760393697236316127802810171519301556743820461078181920329787796050659309074627100760604880120379878975977718693899477861741669031706779958028375353413721951560985624625935455310205590122399877595456536290843774630823977701427827850640412787111694866843277285580939745124369111863514933438256786327061036200560806085840468379713635042225063142370504347764909862573932884818881243535155464666162636866080145545279333283397517014289163848389187910106476138544293489160089111587966875448164871345100502559345572863960336550717553740750490719677174321916838746396782361918578719087876339261503268014919048604777503659066530556634947180830442880142184556537758308614565997959336705402096516487092897523808187147756214125221621694949008375352464808312347436212593616959281730482739085053396263635273032819580446245205756926217814975802940098033015100879679013013479626799323573690554718465732013598844683993842704403450468437344258642672679181763361666794035365099746485051695667667259676333746078640983197832238076550467799490561579682877216618195450176302018909964481270189930512275267729750149554878151202716161487800709742609581720048781401865813400431280531248958412988750046230221239158972495575740273104968116744367466026633033215185026695250178568306014740995551231049966709027597481625683434362028342575546510084813735206025849697383699736342113454495308869792067248234181036241225097400845644352136335930818956535573545443332605294854800366247734059706937218008330540104769830892850167451178697835213188644609494675878033929888341065218773300782796114597606521298621638052659998506566398822245291169389080830441072726228273379828434957278591926498180823592239803118566597697516798307124335136905652422988776831551424234405668360189843062120123756204923518959481682403771736758790626742663519941293662606383970372064290166432824486576581721718025020845263974557445817719383699274422024257108748111635925652328151873841162158943530222900283482424194288864955711242900420885910362995776827763177120428935780598593176535360777636693509368796889382307882052772844432743773840661026733110540798736595524384120803704073832768754295326896815590107012156449120871924568618091027448927454845755075252906069022160302711637623837576722510398648529401496084320736714611426757699160784015229420150478966429135099958296275022362216336145507867749317450586298712246730490309215308153489919160365948414652199521268694438956058859527587055414471210560986918832259731357093729369681062983613084357951296642488785754649231922586481045379251441121868701895388897469054581144142047326303446228055804846820530474438398128509634917193545172284566632857385998162103233240362556415224033161629075441183639565293356805231869222988738640470717151321884929322120767445036476505763864267587089575434716780800271322484950578410411175903656088523725321363681449229682901442951202840467054232530378458061544383358813515788135621918521459110788977545255654845612105293798359743676718781064761345559884666392138238635975087825245773708492127068335745040193191865888318616076825512133609801190107599852559203940692139911583237418014091684758015489104261944651745174459789795860521165523068812735447500939604696722461252224849248001105662365313410544067706865111353888306624103799940179785258540089364081919302781496426886768828599912004988284231594687588819739276783289978307986945602800343366104953133307984531950239055782376731952355282265966081131087235143854479879241014682227080208472243531783151626598483513507894496811671819903265265600686184585396663419640264773376514869335523753628817341974557006374985725512414017109499413289877123110062058899442023324301410531247673946735868097791333006712521429557453702994256045969524368044260487257523883189244024905707712895672213292834632946462920873444695475974471628316776882846532283768154422208340924880203337431022230308119246900721717011672063143873208083201907308342294718853215182596499613915013663701913315377337522106306667307740593021713217170714079912942000260930286556398561631971091310661645530780796923429403541008993812175619701217595133870911815885921952889885073584968159766511588918406864340357874837745221529517340732923174030158756236036819250622726359229940574488136718788565870756825954723625492032144710334211480965961385482593570474278764560357898352546084885102238232914788084516182530491782641209636688840265078778138233605078888956899568549222112117187874543988595183199600169216573822802852011384762317624387972829086516861375990788144792445377783653975619809975882361560910839225105604607097838503532259604272060821209133922538031035740363790178506454134281610828267488772731733766138861444075097073177075068402907225403757600634393209640267401371760478075289704762104202480411884584424572973136433038213947528055094712487881543677798753423968046351681019955460403734523328809104376902909713669450324580106371879848291348925994720863692494112663241820767691371816208504323700358754622692518581354869095942664225025995038996820122394525654037983059092286918345117429186889743781044427138935874788154364763376493342732064606073892457009323475281068411796175512753093167627477798242975762574566977505844280912933236763259844443128792636839736512655424221339502258480968311703936821859807722325056210965198589715402281152632339784555335064277927818171045517713133446779240807190878608729935549069876108615463815989589602426256136446004313636153669969281809290106869980339612012834947185965952370376445209038873577132281330340383786064999395703404868512781301485829739450372941358559049745122060913386189057641309724896119038016987675642426570751712156312200204075450018516721991011660731736218748251088137002981461994156370636280993416046745683824581209909400695643894162156250790301160122341721515689487626035203670247557997727022345879428162422274209486875318957024973566748359396623678450009297400567381417686477141203400081291917203689759313513099019154444986114797347458103512353550147484760039955555715224755189830372052751765667960224269823630781802858869996824887291430036621184493950421676854267524743514828762060965394271015582267745494265520967669681956420630882955334337031835590284608235060823953713727644682763799010126374568048087200502170756845351901483612984244601908701372987138328383364240891427467192939380051079136683608284324084919719443908101406146054221302007796219945139402836865668713529597821694100271252814977291288498066451598204852801271008478535857337251496753146510946611726180499038663586437246661595308461321548899425601753707499636779461165789853325976371041009829565678422424177955262350976221724561685321344701879416069329841498731493315688342259908978366229729955213100920478596083714285663544701400873926729664261632479356181399316281929903016483620647064154232358716621896039685372379124369732278348979962546462132064231488753459969556184853017275644157380281673348854697068511649138654517091355802705380353282709171452455567437404103022409250235137171700799087763185971527209605159058972556281582368472227829469090065987480409097362250661162150009470395272135046587341440340058040246168186707151533636016315193577243306498244567753984389843990127700076527955203796924991882618407608027614170980468808309696899520046859980777853048427890294508030561681016263967765140923064998092336053781011442177037075183000059110144751400233506423796069306015834133770544973457222160080530504263045228447225568874399791867450655611471591417292436376991502056389039349992732646184375492988311677299452157636489000771097497910883636197990190340728347298108987169154772641828407505383503797851364947466973317140266172440175901430894719146375577121078125795941441154417128865801922238950495554415491975386930584247280604777108975291108686201561222514666092009096989030960843497794657313658450961063198558880703095077201604474009245223210382739150146200512792190361763272852145612490756688551436592120887739364570839302460265705052465792778389069715985398431997097867603735749783747974444365211243707262525770854590933894602021824225092276506167048801642317467375358646322245433811039696673255051659977478922078095105755563942762348411788741016227895002066263371109049894705916584720477202473207007957668753654586322434568199729486783746941380198148528155285747601388204905352285971373954194716314406320418384860288620596191859259884211495819620596698479940495804984031957815559164424391742818293735023060622213061695491802580178109000558520619425593394152103645656904697506196317963158561364708959979563120794412281886391326633440241507357929401237526290106397711086152684661034324202787443919970052891812099604100103127399260559562294957407369720808714092184305194192281589593632261132391227680749099035043974864740983807759297905946211593146275651048440425814338071824729737400867727892533967979443820566557713251604211489473573530643434791028899048614079648332986465069703738286820737306362750622679388577989772830272710465785643044667972286677795572577004281416626504476866380352072880520406792056457259019935093780232252103538891657085539604888213293708148201162810648376499050167214559463891439072660357521645213850941255006141560813363265022236991493108396548257312462561509860995538819214606632735400504546511525374965133972742987555792262591974309446004601123611736588309614476858759396273184244750412686871264041732404239700125130732380674939850804687025766473097659941586841564508897844775323047749335637007391898196790835166534318485090608547509046637327017618967247964092823574415393205801517664509449849713239415201944787212427248154927243857353194858258776841392978648639742089954737872878442700830801372856469521516985494616623379979448028552933260199423425045569673106702276232293744495558970755494325719962419879589180578216123828896884653553364106600631678169139070344806853261215017908381768185152457328948115852386271322713366390670338360649083075955543708623618577010207006160616920026710757868036577783626250964531776128309012620225975087110112537102178614001683053038382923083991852750702820620941823221425498546626898609761644550685958303231556377874233349240895964721931137366519602793899721853821191895113736808203972201408489025370277022738007589273815374899308677528729026548393611649046982585560167423963999036740635672890351896553580647932947639452122031991799439732961381508413396395013871069290889422347779056476208614684316468571220641627142477339189687422737813798928048301062029716171026487544617365616203166026428989031360607036986631718358624159586234363266163064595804489456663111404244900056634817333896324817510514149703410445816199662569336687749008434147918972006969271708539004756869734567183352208593673782579434569642495056745007057219885546958462704278600571745563319418592317531186989860033548655348407723475464983687225095673191457816175422124181952659574480892765073116381311073905581755033873893042350976126033984869926182992101738869944109127763577425762030766289025479334598058224352789981703968372355285611259997825453976533879544120874478731218058055208135482142931825102090997328651434541643319678908691732648137544874492488694001401816527725138298167716945045785623485168983034706541642874795072945416703255399244311123714973328854317503289484641178133159507274249025063443757798219599639184463029290072605761076267666093639509835361519766489090872618753849398293057347224390017779417108847586653510877103617699884993942517343105322617388702315920078743997746860335290058520708128159664499946901035789741161252645282595435732424428257378841630803277686672571248938339529383252238935536302516543307319324793425821951077187794704455801064144509257982191669769742770115489547159105912832839270192250559355977008340642545059635270355765797460192540971456426103995613856350634252161447565015179380278838605189167943507574742466641619896489379875106933740384203993141875525573178417919314610509120643779620182432639686149261095514364282056203195587787734064416124433190938928648773746153311325090748763745273685058874967949046797788686472185796315553257731522331030891724803861468444147221094511266287679948778204375224062514209320595658897231540347751366789087466774573173184969681358849221858785076820433255493394917671745295520080195790156475335373481005175989227905704918037564095874661254904041833830794526094438842608917010599055323002270704290935202755584771771658192562287257635956495798053299470267204606707299282449379081053244961311428140814607717427349194681541957513516319496309646445898393426260144648916939298428779138055802288802392434206408062716922554519888062537725405568389343966708890064245283890757549951862957732238481198881056506943203520648389736982894150023182294031172166020872568660460373045688628420870777162100369067050813946662609895539899024018404697973384597227518408313547297791866072401680676823550678407903352641726787783026826726547679232656553915477304380829950568125561561032716251877239175600655645821022441356728673253701837174610901122311706211065100242402976592239917784063393318514873476436062014675115058735115130357407399938175383474860743701032035626423059769746297454760166621689428107470858414793809466729674832674597489733256841699354146625495353184138165061065389248613613739840490296174843197650538777999234643382861277119770869362584526579143287292554267581273682907149878742102685010421735145866733065926002251206302617643916055744839964905875985420475742589201937513518038846957403338547353444393267660291404160823814558328329005952343192364686080761743188165421038050876433981189355774809272180763076798461828009534334689042724512274684123944513211861274137475250128409715087541716412471064421973781260416910154955121644401630318285988280883658406399426921001602422942504533924483360631172790085768036113714515783965123235509938941514476597502812318511394536581189662952746276862948538493181192412481160670356622651678580763444111257933779270360034077666031212997382486193309831266707766441071583994785255584343397049608713294926647448496387048732292814704247440656565142893785428396635196896509210043357402762077676597724064276486536684925631602136760911877735138240747007404476378150072638280794202131709210541657799381212299589750437589034955133537304025647334309528611064211350014016633538506891225124941370535079077923002748089879442210580618650391464927145984184320430061444650811128380310085770336524875638959087535250779883834001488612599571444406602659520656217434055781136912038726484392479451243519547653544002812544910441887656892569533894941325962942318280662914928267886489000843247015259286157347807765028419966429665496687681956571595476801516931680846866393321487325307095999707141216273533861164829236760903569732451260117489759669624567669906755477153889586149437473387039896871720695853993685154680471178164676382909348445113320851968116853970333549729467407137025366156740413867877776563965526532324265894051607477293163625538672478480900118797971072128515993131942901479494465609391119081879509374725429295302679369883469256488202161606756240700230239676206357732731323539519042049437783146423075676834893135767414695985958967188394127544964100516161676976009890352483655405425214893969811790407300195328710971174395831412103450605359905458991446949703941638806008507737102879422977045814766145290616323328209998619166405654465135691844012592541583847029517829122578533049404339580088282852626944249194662157069678327888791323753047086758330487609328132052083663010407996356076344306158395319151957569057989583223505241633002711310004659122469834482374692035073131108649564876659677255958059289190853966832859318804020086980439758641127893071085983655968243786314814028920641769480179185662268346524201694943532354293189388551126250494855699651359663994037303519865390632684482105346254512168474733376085404570584222486039253348513965927474338468666375944698480446121214850048870747116153719702230052585871439451661319757848601396851801340225907537539413180181267975553660952493652474575625666962391280885423262867776016129543036196147421149846643519570069917691728133309817395198551750337536869070583325183613154721373166034372601241473055980987009058474131215431911873184194066507614980500457051903585871281635602290945189655326487062133831347555939353549014151885855461357901580089710134977326266330551078644739350388881309069395123843090473771616091197207458560988997266578000115587138073146219083568595132667918569497467899343558505095556226139091020177856533811420519667850101769579646959511047470210261378145055604890191416049529910836812205519145328362146718570734481526079034861170540627216339578071261760551766236241539594984577483756053066396441880721438960137523318848447540375824806394491347148457902669832166420084107028244686862094222952169085804330008584057306932398791031146560656166080488496866816705244755630090172603230687410680263387027082341026465084694367265723982331608082733511141904668638608154166681086924715609408019164943424206130577306133154092427010006461531742747917137349041727019072895102885963779502140484428297438380810727533721888797444688006858369202652164121482991867471090859469492230055721990291278011879832316739877803325100360900527001340338645836605948649804942208376038959114658255635895003968826455348169000140974332296422339307966798315109955199393718380151590798048965722806134402882356872368573327655768011424866941984908359371428555141671230560191705252570177199206889397922643758484554669399087422396769377463838132031014667820139569307739301413886789351887161757157484413388538621715168696282893028186532070916518924628957518616307524388897554411311246305382729273595865288948781873296515101367569449960763384828883291945952636485060578371725375817359702769756709528096141931927078063076611225115604829399489101786519873094620274350392690175422818319545426402587933288632493879894711082239398796608297196338649896312232497059174216465433361524235464848674730025046903879363195166675312760912040832971993298571775533690014995268042518210189280178426399519109244079481828330792810939530262081854152890607018349914621348264356823284054091106467795522298430866472296585003796603795269004845828200903924644263335316688944559761743924285132460387647685509362374761007153350431086976108897696173485082173996824374596720302288273639503226728873367516126676167992135889401125943393167725509392127840681906199344836140530026171782103961364891947319599235553425911155509945251953764682886615465584201391861562338968937076169572190445099775005262868616655673244004769381083238738339126738264706331967518705368467043389619692516634909173761744053083707086673930805147759543167726285807981002242689770873279536802289834839630089190666658021864948274293041245115076518211770833245401300474349874092081675355750773670448983840074364650859426977838060387007457387035017452581615420746645969486414921596798323642804726287133907277498237310048457981916819434074340893815851197988518846413659623892678676423695445966059448198065864378265850535996902757767643752905820383613120089306298689215789314345059453546248747411961495857706188479450643206027493048388238827370860106896813159887848243319080124473831808609097509498154269149305073818945274896002800541616207486881020636401274957646271042125298072782493096974760443483632770756644660926896357159789228721988284911784476700234301024703414068222609268728729170383018770002278389828930456193455714706183062611275154787008018615407781159476343854538261945007425274913584839514477595897290284254994407029687920169121470556234197486277806886674528832115577357478893482201783651106373430020537911324693702872004318707393282721990147908238514672318579779157765948421242497096763104505429688987055486287848684773643479016495978296141103411578493414157908521819636095140101212690977068785584763457911211288202043366686056155886761392939288195744338745601355057693406203423146584353105141185266313687691265574472345780811714202790882154446054239396475974657533338192699121857370767518196932785181532119477963774597128342587998667999237900127987161176821446136760115809961970576353263995440834139306943808462528753700591416644448261990063653102825963195791962330951950950449929067485766214489926010032388193610608040742991116687605679686106936610770164810214350247568690152342884099892122754255085138233313394811987347591954242840770741676557883024210891353281539398773218574504782828911775241858060967173739981012307390932749572721076612163186371234491294102040191445113455895615138693515342979046063528166391219311669618635189006662034304389451577343787538702088482438093271652722774253763761107729433520855787713743920776206794505457493298783434762638816807640853999683619269749089656146715217071000648473989266318126047966606737012285963671344662634737180527485891018300760138395225963256724256577333723080796174356099978866956824551251935927179803172380300769208263561133847914200476696953506608265288864685391996517548885935796030451496843033811581123973379349419320343073037983111263738183602341976516499819720301704488188401075048393667000111932135536055626144578496366097182717426975214235275352488788955455559097746805320127388613134475163276669100689212710966371132563362929506686820491863948874594346485286759839773903257714976790104313599381913179200979651195313607141863347621413719079317253637147213972934431101979106606981246269301085369276665313730939271876106409231703639627362650850069330080429818896731730799379505465787641121319106221973605925080173162039187969813995444964074683688936339916820102893203076620064909897272909442705077372750361777952903849674037638477693535414045657251869712379731112829687738495871106646728306173322870920154245356774462766411155142227183393662474619404378548285887855992760790040840835658030234242530878853101236483358924144750562995443871048092884184016319656260552885945933443939855304397897508782598252091664928796217162190254955174413278744872270554081068391502298412203294949746247761827161970730823524012292517775465749732277915174046356875588431039567720385748996921670594231920338506494290137383101953569816254084364646534329547585894859137665100517819475746647680119733290774351948426676494199316455336682329665763600075440568835068861715669998535732732276739073776231016632802086756808921634825873742044005850540391601514682136669067158389953136281617043983585637071834301427786874226644635125674851109716754938325704484743573528976873174135705478321056552498493816030233251254661481028011977960463362724639400185791573890339541545538228973064383548774367132233959767236013241786005474757200899614702202063072676379314573560565215905832454554886303717119809313986670934962523205623998934327150324711059985594733132250964866912366956385435222070830908607984616787904765715142659214520996065459682599316785323579262404600093731769169099295715642849252888680682654314476100440151175370713460328633387842374576302789551676612091059160948219745549936160471018657629205760422611775675839649682231585648313138920544958065232313737320876365240145111806987158487477327165746025440158410323769876003710595880156791447993944778032388295754381455321303555021850168470589891119990282033875825431073338540164930866458247645876410096322949454424225318771001312202658297295966295777640872872066519260493177648370401926404028995138091464022756731251442618929602686173029685054883257032866089173984412814490919031575159136240737812433402305256210756531791932608363624600350979666339999923490781723661678818099716326185833508865477766346379815978400948642737220913227014435115225318345377835599412633373488564251444122637488353518796517118889904948759862839076159543910081704887239668774067591509041923175933156848679495682384799860911316090185995822634529471521559500429688669899624864098052008496227942042852920566866214080511411473413252055994861635256752036861589449360438385065073354704948409897095514289461100374611078199431102226548727750262624705118152502015738430726890697036142898213287081707312367703865850514805766255818494665196313816197108008301806432290180878285266652996459383397984346794442825453116241450885867163351193941074203615038819469451025876980957937359195541756002116111721365852715709928150870990669796123733769887722805320658143808238131583296665969269211018647339509992701926813552871108875285770535398940359474644230217440149791258756355698525863346724775211324963548293136180244967683063103039420528905390270807224254009260433499514997221095803101507355349595819235971534082601736383913364518086946383432599042571866806822098035757144561544003617331358312165902455982460972630384306768698360728790663045931248112547988195640596566392946632312097100202025875896726865189812890925167755383289149382382274984674758350013661560440301730673013342950971139735773800502902742535273849055365322553530240423636280971980316406553571537769476219363608286828013712486276713542505026965635790716400186809676039400133217187759386245013403599980179128190144246254652943457630082929570016885615495838210115482806129550741018751988607372506780713836027681832665646482851587960942816565258384190033176687069161132960964704649335252214458059403372110938362747038861923074077182107377025359742275911261805647041897672910363814400703587455363249854946364430195685962708404413652516678601434557616537766686837678383452088433238585586151448437955715043593926511164887200960915565685856729508290473542541511838946949108282870857362840100744412146019034416478286503258445209211291328349320173068688930429040183696692837214638705511439670320992893722498490345284576460541901304399430736620947068945408713856582251596121199217621367468702196925908882342768199980788944639724936352207843187986754803225363846453044443788624700718590857629910572681508775029257230591090894759533579652801591677220211082901811338682832462307504160166794540641224909618575145358910643627908667067851744646492914983045429195203172461269989972369700666828020248622096979415804847288568517323833389594714709388531800684197391837325441025265867678846081352816597656980120661485401494725306227799319114691890947592822669781887617206296404930335152624032599455544136090370996200543110368800162123629809178447550716866658034540605848627073753343181416657104630015987376422095571740965246785543096440059990886030756371766985487938094849354373078805931481007384222659224384165273563171522375248216095412906321060285096201602149084161687951881326256386234092843133017939373344774602589331369691007291454000778218971195836178078243037166373811873630245105128289521976939055336620208048629537759487611010892953119446430058117680722598183224633996092372856464874886003219783639434450561058502154073642258743803262050574918789705688422758966226227284290219363490801578601449816953899899204157054739881293308167065310919063166856575964097311481056984310094127165181545468340704354236432214707684726535923141756466152393455575729311950290955012385025634399841159713552308590308339630018739812267060463533258048313415462015191249147210157221174171803546627510177492717236800966004158414239313635904383552463574228091127458321997362820008900565644911274913029300145155858828516851520033568823488407931698285082959061232841503454521250968336456508128900636929473473761017780794751293687281605352263518443063849488725415614705648681301436648319775046700611298295334763682356669999034162066661762045530189305272319789932320850134206468221669037799498576963897431618524503467373796883515614163150434570082966496972666782936757089124418288359077060441745638785926183233820855367353746458348664054808247100523455077291351689015360624403469141953411983014242592397792095678815938933329383763296144911521224240481272766221367757706177120439968247576553592244120909907577573039097461508103254488236260241047810363955545604682360672644237977137504271841873889046727821056662131834607761223188287874690017512071026949351810117247401870496499653762940605573864165412074880171146453212084360466530382133469757937125260462583629257332479827354779951529514229527909766004340668869272178986112298558772540787585509255883378850285028654074446960350390099575852246563432533645853237946122191982311263391373660500598851125042887657590782861980415411899163625617030479095856397730131069764559017031142332852507097875575788202736491214141567251860661704498961125631259615148816977547340852213327876162413016948486549301867730244261265283284008189819185072788988655051401843690860449705136863526335955625194392186026284389267618186740498642181680378320109036422280133307634317571943283857065954765161896256887704097814440205472714780622497614915016746405218505673388887747568785080806799265071319122787714093317661992552802530305541461475624037263258369920230884339815296621656666922443911069990040080005626813824768652742940331012324816106483385473416962134678142781226419230477551045222236777290127570754634041268835899942495387218980062375547235321296947732031845898914356593901303729614289608302455877133784213894185396665324016322089346678063634047129113064877591232016264625874323547103792792666737896813213872807263348203520168041680685394848788098445626011932922264881023025483890072954393831814182188519814601557360846367201747375653006067472354194598202534814046490345857079995314715567795790753794669803986062940193568036046367448069654626774012194356937329800393127837676119240887099414712831177874253498919126380788272905835922805825139960991701748819477951723714366568274097438548025681122351569051171327128180649229582368586804004063981970123987732843850945823905804192706543927490499225738636267988238527485427347062477000746541001033408264410758505087415773406691973037472632022466103146657113331218038672979351952908376450482588841875645547566666791892170170348481257850645516727022149772701749607244072264215833480657825353411056033801737353737040759181201620873535960433144429193803406349394021426262253310335196921058807520435708153322205424670504481819407462405404094137734765687576141660974605777979039936371208838062776479856043396593702856526106346346114661713723677109068399090328869335258560446656011055429773189072145400392834370430939313296456184228577418851777152834021095057407071100839852983748146588525722600616339102592526925410542687340133489223516203182954749451850875391653061678541031438193073851299571542275804858662798306406077052361429383943894837054543408162777804653501892170001255936519328380692135276238196676346883836573597993273014704358429936104050101761757353600194737694235504376674105690951749129939030224150490588895489629638189332558144666720729739214218605516339316190730648671787342231818679966267726172831742359932767178795024759683632952370916057449400975181957997509340436356821272591214602568281912386592454756708050400159225865521778403229647498682518558177584942718762465728967657499636557625640560287090499356432449199655543945191875190517100294666958446183458468715130821737118514719788360627059938098903307259529969319846829803575990517845320238781494835909813028548870530495272426576447197667106697763458881685180820567556886584739188302872938705050218740998793292915272867798732971853091042921291968217669524295524259911747581468934900256874663639031729387117971812919934069914035644070684138359448033540046842345645721098689529443844614347940637567994121585569101922079579547805569538783454713683952476955325573819520054816445182150361551136674382786670862031178348807321788137913009046655076300430470371403893765223541129781630814500671411980343390192283769728821644421979470604312621349649938378035698501572153335005786380199041909746582283261149780596855249857393522346990693227423856772399464739548874317130741572255118883731490372764270032752238433691218243138362839322934852047514729632458314234585408847289444173328931399085135511315548224706889456686421078785972482599184573284777662255540916328444498448793508469864434927520324902533617451750573197304846986544884647282860610894552907847019711974679500596240702158156258922995511313529817393125116485365066115305461194323056251112136410322027203122946328717295610421267074483784020451635354201624119684692678216344269077001670740656943486868547110536102863752474786054675695510152636897751418746800379499639064957050671405528972742536923576391736102114834864389790477466256345383274301351625630770425813973352127654280199817079902076311542388271294105305309685327054156118065753506192123125396694090239275987300361000078704212646377467510316069363833545779089057952194527501585688591918221778989721466752197311927026482293040165164553627722794218168933479562883219558067185860732925251500408576856730932311215415744686639881094062073568878143503623723400554880190998977202270880394150645201705080766347396039444925485690026039562973057707057757692532900044788869374342291167223653912195981054792154495194877769347818043440960258461267851100324959150793627564605528014757121828457972532994158151064943849005483486496975149052400301641678207055983714316799334003220249450823343112612848771682545451050078229776555035778307619105374580161914489867530290145314845957970141707410437216701356445597384961275972451163467589480685930532680965753752654286801117580008786783009370447979161998437000446612890561280121600654962418202188266418628859512448369977904664215689173119603964480208140882050479029413461834747613654729431307229849765680014013106364107130179222633904013071091166749693420402564847536303353648876757558952499410648474112820583704356714341170970933459951342806057582411812572338403325831778799146274743282179592064120324490856413730366283565008135548401145233839113305803927537347539117487531169877345145988090670782689628753185858359872993778476253714135471292061615020084355509032450710311962473570903076072502323299556415558231470595836709406216514597569865059791953223057090357252382012306685788041455742534901609006339092309377307245448758622301747846313295810949375806622133299293621466592437418317308730560320264777033280264608657786088284437824842197093843280865376845735570535944029538734947045338299195362802190306731991526109300219326553251647046966366081294524140000439668959886201910796442154770286128464975672272317860778234562802365106884438911508305160869919361710729586956910331307147272211571256089699558247785816451616245964169040392851678359039825478623536571400544694315236202406342671080629837680239807016586742588746842814820461435250054133242244042465200577655053856978792806669068203479677942955850783135180191043300141756636367407355858578024605384826278428652325662061590375124525790248850601632068206684820920013910622479616555423425573625019454512987501916411140459924065455907678016976012784886905109695432088845569005422035686709072988344512272082539290305851921373696551474762985080324049122148582808906504872596641228285369194666088153902983267858872414171581293666518786682012980154170825316236020426360794999423802068531731032080849069645440029771308963264863477367628436927401794485205505694240692708046713859844191920357439608086464530132253889717726474560838921125863697864022039337659911498524349395142643648047206778500413971969763758559135315158062990805124835840561581876284154653859730796330365126450329713323212505572260175510736640748782174210047332255774444614253012858286313052021703720165714521742630184200297327706184739673232340673841859326511337721656138721520593454225806740290876876852558300907282679444840332088878814881383608137412102045122755059623343250991140470461502776282566524898134305102013825200154187221766262414250688435488416413522787146519907586086193151274345970320738698859712716835400008464598056283060397829410571560734465254394865208690238677289314513670470787725538407350425873600211723023844152846932226993237721509129001291547954622110963524122050799539770953777472246914852375034596637539859485961337140044488623320355124586852292681908977588746584251060113377257886838237502692250604397067899208957013526675827582750166718830155366933520298458789193125524312986192052219033812615987084349136945787843753194101134012399520943948104965003023018654038292789822449827473262237124073057479460596676534944404327370198487908933555177027467755423961269643671559986064447705355946544607714838702986035400321348741197446984359005098166411411815217548214723840725804312635067083014602782702617544502446118671999527711229657474713965626946864145230440673499601705185472901673431005643676948582133973598553013826441746241726515361823030295070842806166726727832228999871699877210238756764454209839637202398475988536558347642011573050215208603124538892463634852072040121080751972679229334228068534829482744287697474125733416508761163283595494172869335434214987062301867508816595104198844084588992756809863729124912005964725724417723819114524015014052129647187879885921437162956165844461221475150225966825050550730363166963799691265397384569315422977406132896628046221951193895530738559819336829987555034769703850056414086545556868818428540322506127355440765690453044368171313462879507458367585948291871535486118484224834176435149811778058389335863911054553274472304590502405744586368462464389448897815961978764718563053080606320480388349431077833271332707966151636085959053225668519012664047706085944044554848594101125042184995477063017101282753647923725297409934492153213526440597285278271099298194038614205737278678443128545314642908168203146925924398945210895996005808068467776855928041041988853301918575597102849955944980557938944188889455768200135969450324722651711603640819233962817623185647816371890936021996896288148811747313911858131476828070113634420759504299926701680277550893127291723095958082090652064397533919386949180035845225340633815638593973371701348615595215983875256877313276231966469193859706688625063407278136437540923199046524130000111083666733891794814633500365673774358065507921388562201735179900303999964127449802663431128719919827968343088599464705563277851829273391908391048227078412996262699028560450982564420575945605168021854233163561593840440174090040859902787958338701965410236811193302622661733697791449677522253603319651326735820751780963967553547595091921814651048273882952535602617316264412036929232712769301269283477092863135678206294151160749823584544587980028957257077099086498252234639253721536609963193807932005623880134477330136584520806013101166141154404029457757784333848697247480955027079502479079737874333425995830663581938869477420441798097778902689194326633348230649158515256729040525263984376547467521740976062154267012580904937363678013825498387189720095488969398990883026485381215267010877450851633321460102128487051501333777324995274839739275311211830983167607043114907465939565094295515388428332853073969449086150275302484011619636424055617411833478376173140342534277671825386582231885601340709330694251022367620780907507066728725217761756542847136324880992313615288054184851661524765538878101985456060967277694854642940417727433404533424449988956040577278048866015748689832584584935705280292764303886576148905290426024251452456657325073615969350651538512619495151907914341254540770653538483605283707068985741110735072849162757459033893242292880796071584663830013480169956613187056436098906934933743490950533747410806739319640030903417386601265401728012642038017396829120765856973033096582281630415219547313910099573983739032843920977611245110872272354105157929395998937721992952464337707553183595721524919085227169666304526432230077555376799322446034538688698117051735993921709077306439166078712617751152618798631872678390025472982629577948120101038212367364060929371403511077845080919296445810024414198393360154721885050263639425285654043778682690125160533154158421609988493532360910209005611697955790811931369492591361087469721909046268083963064388353050162650533055567019356867362955873891138286390517118144335579918830665651853330381899181070980479949049499957019371876968085258617796888985110027349533332498909856323754939006492817776169738931421767264656524341674037134778953146769140034352044354014849054818898236167180618338905684979700154367386155574557892063124740891923880237911836133002026569914405416945733825445717482618591219088374283868189222164165837172677280394356671361730698850855787774626205016153309617415387966480871535506967804647963200127978983285043932043767726329633386016344471146273135330768228243615138435168651876644098443064508644150631337662747962344357143232586558822540457343690530966121927398117814495514775564576214668477294434040846579494099473468676962759937741436771299575524392449288459396465587219319373182026280571721886006969965990748617210355648315031597216400541837881816807610809650737961034781611406234305644427195414126572010735852448793751172525803471084650156489497324330628050517617518827572600807433923599546357383574742442127643999202018862044114562128976092948614511729877161229296343757383212108155916813357224509766138109438529623226304437649595542873326607866741674289515083362182139946491810902130424024047408334156649826786497191974605761896143398974981972499652595972825767404338588123145688225452361106562458969300230396352577125907396420003331853883686800703711001191212560563398809208208333374086582046187718621738263274302873251750182315797499669537977218070320263062145709544302716364411664327320232911339915659359638773574063886856308273279642591945615817871700215094681896556496400632481326943403179685407779798397794509430023795988438809915293409123772866201444928720113647304604951874309490045472019238227689526019732338642025166829847855015266144036798775863063712544637734097770777469237614787896499299826423334711563621889121743025086551532231579838688488326072777752510775935893414417953236235465984908532666405183020475152218288808284576821936408775843224954059523372522559166663522131300739493142401268765479376055336860224676804660200553232837764155743058601762610153904985055737666534432860785427420500775483738209101740627891335714210749965424080506121247570705310284388247333193872721402082499585664720918503238830589452166607981551665993945636786727977156739979375956763688061626294465687443860042509695338117892191828995282170074270427591745699903116549288708415710687282092206053573452160750156975300445161519135275184192543963030462436765022118034443782806895737379650240928724261646985720436204348372184200922418351017039261398911198156409476154998521260104429578410736103457438791396835684813649494567013657447849240460866121295238992454031156138785875028935258564280556321351856341620382972538487476557024670817243495222345128167115042780627416068092833385109987221831657998758344566431456491849828903348657791078781404186344889684138232790940548775200278868590083725682794170838080742607530645884696681915269392393036218017903499131136044167862256659878896973562291550708362696476645782040748821906762242689614836207145534352728962497649760123533374233528012637165785393281921154858256663351453123080099045572425225403173289034200695679236631560392486264970071954693253563021857590234070165097570343521200723460743295645217933815764611417277577962759535572127882660847252139828112170421255727921834474434424723206773178879585318366043027597988279819022195252356353083708902135281483289684455308472825821017196813678197477148026679235087814106849724800118389424541507314264627512024054754530073473329704134379154082372147766117984290295228912442478394932055232397406936637697925636790244300519480430044028814316595187861549195961201913726293756026738324451923921635593325231518270761378917193806223888376968411886830472954233033199176984462521282682091868944027162669305414448691075052645013511406637526650846181197808816846000116472686042131225575276537853958444405074864498110589210378490847761095354141489341981332730571513374792297482032397676893367002776838987229834707858456574378559929947122917618343929594425957023240992901019302819375224324329796782736962414835510175614882602017316745341800790829444170068846248246174468718187933491406324570554317095224752227780476703673474457494751846168918765888376609980321357617129534963525961229700702547284176601117066463470153644214402297873796119421641169645641877364749395405793767941953814873845325489251478614811353838686365080833127389679484786929773911935556926227702954076594649382214149268519548280770417450508639827119698954268214847786407719962473038888839241054517003198942729911725651918722122584332836347377472589741867753223495178684535688518506624117025263279697205770341283959990160161457006335524392069684134917961461935772775223952768170600967476942633983386724685801296990348400902974467415114225617005649581105508752258164343517394764179999248617655818711002963711229070886763220490193238104312333161656374696255912882928801323626242957848008760349150515262090981389835570321813704570560275934726696135214742515324768187183069773605232095936309612022143850891935179010484992720071579718946091504800539690078080176163211910875448637590830780003849389199901411760142980653708441528219816419686008928334429845452261605214403793928068126369432779395035788136011164045014845721029470509950445947067231525574138718028269422430332830594847196045776094526075689654622129838628189192570731503475189245576190688748937768845014600685385129947929969006241424419915228831275664140392084382056922725124349080527892104844661101445319420857250281148535932743713090254516582530545290467129581591605527504393234684115665002143782639223576528400850878073961077489049172570494594236774777058477501065290383290886180671072087005070958365275694452805188141228536656440994584543161553679670242269310441026455434894426000339719578491638864860363378054220056095563440267644276923865753513033222313065385465146600476611354781321683655238625636876372595148922895325160363054346717106683242418565748106977936132894655463713564238190208318543798736625049223752074490319236318597579289998394702975340877292411096594892362468827661968908073335503477341289062760600598334291009413877439859885036329200440761829221598077508976305059289042448596087819624079334588949481387136938535599352571960552772347239127479906047973189747928863349470649855882210660801847355769684638258098379809419632162915194293194883338560007702101915454565643436678852666792856771673497858886772070615185585380948933910391786330540392553873089357292978094902774966032344859507323384623879467978842107396453642883086081903522087320242732676462822489332351620752480022356907228103704368623633474325778535103348054959185340941139266998888065808954768517669131475086337008252816539358984209474874794186990381292511599622443828172264363892313620268306182112716601233818580427671203272003730586993144298107641159470220369764228143742405724935023476483262957984011639327097541639860730729862252741216007004316856778269737033464322537154727391039586474894870112663241227532868920313118622379454238567094746645580750303393141426630257821583439916525867566676517539728724361007317636643801594824528122043152413565591573653300982002310644755212636035217896408103908128714227139921192586476832625988358618517691001880441701522440609188306429922575007944978813601962852930603875615068492859693190308858695586817882692829862989792094215818589032331973083546335563737868610824309828511708372690128616022692544926969449850018974695979980426072809590247502506859090441297779043292561580696825770177728141815617314422191537744601368831810588308456982069319685953601786816166195575385435383208923755734405634520696632814803286383940199478277430142181168096973786368602581997948557681429418644122583557704712245291050979027588638147957584798127423837457883565666165492970850992527643422651609265377931782550619611124007231974184698860622183860026481721932812601476113342756505393494081003046229189992478286990500630374378171676305095364267935471526132709795430133928541267060183374854219762885813850020925252786399218744554996309603626441913305665709368405179577877602816842600630670212487677292551962070249494813577370985718854711609577946926097440322184412258513728657931440889473211418030793775599702112470832228444960977751424396172888806872498190947553817446830952958082818598150291083660101648628300308536570191538814412335603754506708975934634110834612224152563091438826970950004435403120265931890497056878577306052314121200913940049157973940886052325147723752023191492811664093319889731474254545111452944171632551967295359788413291408644452446760734428757118579798101713706360698735138140086159542191042562736186475601252029582498884460765190485928180023681892678627937727196438223588036255799700310769939520886364325306058630717193367693493525769029882504324550196787990027610094499383863591977553082315633904550585786653434915298058849994416558360286590292683634417145916199508108119249940553575505807487493119910638732576223973388052802091334924769862051568668982673359437414534438229296740157878932080106952392971416366034601083222804588639171288839275188667949185751663268887028149676573226087978503482052421696321049082562070734164221682654252589657914624171154529615171336820917423857972098103738657032748448583233262840088390709099216253190566855605126024618435074821978085075125495143754324250686667924090757520916548146293542875450947093129009928934913845374577266801564156901852404475105056783837495983141915681667372970698832167961676429308339243447135636843040761981688629252358031836498430397191171615145664754574026456512502737622603121836074770689307329132030629420842873205451590215397101413751889669576250802217430289210069489791005741732263285998059988306222610933204417087850927466373150316778020667225845274429738656208043736188872594983379696456056803592525378740448091690160537633856679645339452210446764182860239356269602248585135913548053649749389259925616697911452048894906732493968446326404505159106189416627903221757871422479600545369710143264204382719591573171152827936712508435455677805436730766024979181997767425579776502506264320922506954792337120752816741241149998355532494710536889698387766288481722164604464689750964093123503413964920704353746556161647742710361823499488301378880578097283712909463377601255791929564565408257259179402237349394258246988268075923626668675751053679361554257790278429608354730095263409624849286251491044981547989742132010137824034242640999452579523465191260643705758134281046784761292035966545037232633868840099181148721448009281356378891451932637793509119991893380285600455626199580142662276398378983291284425792386202742429727440640753784819956744146202382495424756695172151390230531609409587521771728795850051792847295853435181289378436895530259615482882578018079215014869067970614689834486256148830623335322096321825195257842553679331539832498582468114936984990616737341087444044550514482575735594269756566590216220951723756773730702376508817834351682848228086410349418974315312047227630774327366809243152231527311487520296124977124107877055992275547003677680704988010369239134528600040814759205753398523701501475088009478341988339998294123179426741631101224099023418625192162364901458905816989085181716762188609019700720316418681229967549004909102453670806999532666467738974606536345958428110482610886687453945695654252469284579402291007117629998189238452918284842879130812612721670739958053143714124125051896490525072673529419891428688517239143032638490314070180404534061471947860813099325046391884282037962323845234598752095084455312225233362001528016533219170538765698392301904785597127912933500695352468474883157627737917998803513816791552546798120336360227297591854820126420693310713645287135159482104489542411124074597271607415333566225894648998034171517853238408833113484897032537429858896656151152541276347326304158890558092597119972846323627531665732249215994126706592216294604461099008804017779036326172046318975708434082524402922811496683093267879695719919484778253199256246003000924300333923223977405298337036753650006006217172801260233824349143497277627787479081787960612952865798935711097978150030582051708122061587444980011863291800684652009445048025344409844404069695401447190152204434110248409233109338274677269263412471015168779101168097923087016813101234242197169203556706894705934380394285575453524776145744786575165311046174654799374242544363395106578299155182674520379464477283724377634040844604540015715733952843076768176231597931944372875085327501804902171529563366345372055143670529368050245861375018179223402580251379940977873343967985115129857011640794440841580592165005070734366151887255317756872740931508294774834878496558365026315082495772392472387184014079252631122489125553427533082994781542698062599659146528434226739347991976297958636207370647882888095269547618257632804175370306663363120356947355462919936211313769346015046118578654772352355461195064226326721942180748322242579561324365457460576085944410671474283558617516414921212299587142627138935628300619112081106661963626718146136212932936480690287248229389186529914599257514104644268175510594920100629595091645723306394618375004253003984610691046225011574465296992097450102586800828744406721278876069807086569393611310411938362622602535983699304327497318264342502468473054608727247193485729620174971431035080892073269675950620973714357924848501243713525792025946026779736160733560045888025037706659893206352893582247822959061574637570359358489769954198108732110037682422136026776115277771139631590303728603727440972373681086674829522032415589215821028022414582807643315510312305675852088365236181896415778971523232850734318164770455288756254830081927217608509839912658529867185572978058230521881310429004964647699857204746619268581287306480765667311050303892691346400425367516017990297619610278872141637487520500465044729481094014391102056143189223723464560057185628052088744799651942272028617681769570430844491724425865622328254064346434336245155072549210371438198335918921404054559421002768277658944218653381047897935512343137453634815470044599265062490303888178204421352580101408153378813959220346964244189070257596471450430219084986447190580149205184195340651911297814521808823328454150248113081601711863091411551792928635371549542265869624400615538701363036922768250881381708872012544025904692539115347045452164958499460223279414246336972258892514594671097016573100998744488828669601474675299825949763006290388491158446290533936296951619729318885331768970915725423381041248077293511780484417734800783658500210896537833588488245658046188385655868157156813996309659186189395423675627208314807931389891811922115679322298262098683980985229357160290193626266976895203212818191019544040896819329464328023870560007786205756645596222250196591793824732999458126194821870256578741592384762780728281943595502211142505032264739747418310848355556832476018100015026782795971577880441436162795891178527852360437759562839147381873658581718254852869022956596572669451811721858655755601180938421289279101133819453629112156560464642957629301190197878901224538362716619142598987625742682922549170961860019456462613548432396013743047465395535218065836231835076745111563018440412558650216552215673647288754840602435134418810003334851473914107864637016714941638130306490036864732006552246789353368762667675155605592681031322600566885597981423526567890995139259215473122206564329656105959338798789267435201511515568895571448867571419672715226031502198455095409102782360296898318405782988711203231724714899277111383888907268595167195737433238903802382649115895930083481000958306593243371365860883818008158912622801893614927314071340209674121007731084336152913752482851175605241828206435790613990593574289925107289372092219720269343487537674434832533291672910413594427845411516888862583496621554811191436381728729701443855987946851936138200078843550459852435198353163879439251588800276905704232417300114012319074729346324530964993148770269520568070807663007540995560246995295207918627456227900564317120685786826756326147944155123831234389820310415675283804554186487687130709951797660337170942414300043548445667976817660995445363562040356113711074290271305143193643081304358226717247671924447437395388946132013211441644506882486479658649991463119527070019381017806407577032774510021519133291034284616274884444569372726159151109031917977195854219060181340249723222316448638944790187411594352990012272022851969929493900961094979069050101775965835298889810063386572272310764598206996525545423424891106536182127092741021155543334613086603728469638608477508188834936794715538097889185767087680074666770070359625188913226932798322532191854357536041282353714688669683160949560787242688718534891751302608911430166600400335196936126412125129754066522336612167066378093536939175435587329720835713577054648582579559134654551701526494227090078266376099874155783338713590210286573959049004710604289979378614635693208897964236580033919826387551479220188545545786991649885865360958327213546811736832817028537810026714517222075866365314493356026839597707742533458906197891934843488176563288978398887275875895973954775988606192297472823087142880989437418420430894778582450159485188011549654326427379176455643696879430804355752177696982346657343914947477637100016588093040238042351957079745079183682542973342310344984342298783553549581087977416025043917173480441434171911270546676949864589902372787724568902241408915840489685431457031156838042120191051536292499705615455426835792463166039786242693981317320031399194338063505003660824448283617508826835060606802967660337777327069993773011386756953232080083081545177367298128890767837580469518226922844425016382933609959916171720199345365302390708093405520602916465016450393035304582622064093542638500823006116860975831391794677601772924096097705839555689601190048655152375961070587370335432656993528131128302885242192843486234035821649985082769035849195195257536949053013200734804155750084643302851138202925794168762027659802972062335170181636129553989611077499605179262693616718893872220389009060240537451501804272203168371562760968110154243491874144079323780092078069329416150068938328919930934436649351843769245130435316611087135395241274250630204142029076328847125664921444298502589252945890235834719210828120680579754318610217595772605478154634426446391716228365090241437122576010356156728122905367894872444375149780796144583792497523578213646550275778368254438722657618297793219932121301140698783714557707919636919884001463052060301238986025319730032370121305885595926568565494330740647296765148212395665634139930193384386206131593091757069142499775731883862835339742442910343813662010464800577670823843057137822737432914762398173116165119274303705897568956170987964430983632371611311737253458256004680877178079560164137698114874863596143413835354689469365344902350837528632155588095319491748753097815749823484479128788949780619194996410333804788043846902905024021853498871583046485866119442565243245914443311655062351197819000723712397135120047090111307596465474361522890872171650284749383817996788091143106476762907004439396845922161786187691479776510064658857001838000552292019496679262118775953525378069753758064386186037537300898825792353631738295903617083220675056557072089663507826727731337237102129001037069774765134768389720154545146106999262472294222824492996188312342377315490060948562636362297131533688158490958284843247347339277159794794910074188799933018030481258955056401836898146563287301394327203115120736136670759076104949760167631894429722258434547571269389134321152548057757394520456055412410820639134683309960403523783734140121660728419132792954142129682678206539207946842428602479446503759149531429492373439366980278599913702389326271841227630403441108904413935980330016375202513375790781970840926356186401484862243742911359379063872563040947356438523444958168635524317736908326264056742110496618986536753246221785325587691416828134536675892492766294001235518111233935325245099220707318071670723130117109805492527414589818616245010303669295102206186505883096997141811024058551676808959266137223962345370033088092575139594046308155558243284171411554410448579506623551880279371576517910430512300123064331370395297629176029317165049628993169176385405031753404271962233068828342210669092186173860899090003506067606511267749715480184640470884739343344174094720598544605975656318725230600345676943966379171935679517259462575687336599896937937566700144984533950003191346988281801067800244366086082347338497220300036508048534450968695116971720284277249099212571008944639172019798899902051435903542086236956162912161970814157300348490952694846189407468301496855422319416610333765284969144847954513378845781943608381981832898624829468163306029679036575003388317432198309601725931753947102776456859272562972773041404145052768183811856283398569981414348895350105524400815264206697898594752030099233195817919342025738119822044358403417329778091131812837264290946477566889870626921661724144737558710370973281763970074912924186549446102808136384171302576822100403401513733277673494920715821919775221034645442882361470175054553479648790192009297119167055626505335052659901872416534618616552294634183535530389825851004207571233679321052284185751545502586170361155025710227475649148656616706830238454780437140460369894793983959872911155447799811562124797771866028761565029544808184630289073112778606130711504129924151781961378815160896534110967480586909674247114559173368478936813338265481746288425684486824166487891452731355946416802414932578779727080120572289025009622081783444469423309234420674393961647977554459095086764930133781414434259918653868776826827622924037914407676738320325139902959880966238182984846742669314408171794018272722330224541303673459113980925485673591378797348407885807091106342513620917685924684734119938849753716538142092222049921559028008999644500934259872880053767162358014571200437792526292767659484011928722718424791530932530604727974275106151729722703408117375628309998649054995670350484552043828451211816181474191776505002705994448988756063009649884940352476861088381556396087453203365997232485978124001744106993253915763533875187117511397861980208857392626134141360909594321455028201196439716287378634484124029733915921932354562440465309937629316045597674194767350002964795844679861105733059299289472773747988104012801080962830386588852021038111228478943193760558209879253656460963365485289235080991454738021278853823301650156352670311540596443298765374847619311823357612066112161045651159923248117522975789168565271276057427791456752343310904720608766913434143820074660725651204900606440707588749729891857413082479519907696851428322414626297368595819449651064207381615658178425377403361446342566309883235655046528644209121124529568946387574324530960234157202056573437192182002841335365091814594774429221549965036997170945133010023909779806493415452670424548866332268887100184996187515938174726870455195768347436460414072483229803710915129720036393734558677877645364912752040308385522318515795995895992519455533504285247765984956013365955424305863509222825666226324016243241825496798035019624306007614822489242753961199439154478587627480889648526843012179807316808169488448640682773581358121645359153797307696207388752366687974043701767484712689713093130888650361573686635541403283814229790961329330097981731006943246225657254957891002773675652203621335519936699673460863663393980017882189756434041378505794204885849070752707380314009666673635835680528751600906619296625958313879937683677637905807270915364255062903930854042588312541728774664240303183273951711298177992351799402446440085666803320339916277894223220859905231970262768181886396985807394033226593702473229027881344945533510869412729871701462129880907678803809419635596549116240835510034306770879290290770458268898879840747665069360858485690457719627381709849806831805370641735204300677996984805710223725770312130494899635533827720175887116143681364422226733981663976994474936110669843078971582024146870256640384730966169003312187790171516188377202817814135099406875515253596427033823393332601454691954889666774017513783497184327649801496730325877177026688767574699049609025267204767029849637686033449796869016382284655286583404986644457404164327086835841046061784760161307876241020567003230888797698350381244867170753535507464129071671405914397434151411379717746841528020220969576050387236672733463730048973745068879378664361868428349377595360034235250654714728509246308175998933720552101654751984791875788058353207211433896838125720806951820426636773856973959961922634922838019484073973014074631590682789396428072075859014731747897324978969116499147008771498630354278462830577700354787171407761988602052462652676753408967982648297256510584770504642338183851639937312565633976963278670957826365188402002402510850519344798451651034723275986104000466130086658804801324191641218805438557165002833077985333493504204014534839162625796693942836751461101630725579693208745420498923912999123497617357854042831722817139399209556824855840337563087774655374821042322906359077009786164946182276637888811988655880799631630659302079688627116093329835449611403069799661869147436603489973782008506476571321227835192940329684265137412626868758629143713433216853173846560212965809668995266142466798495846378337622840844042913848795928325914814846650755320901188272116111423744130628078352585903965240390840399489399957041942055890161234005367647728954690185319303888235450829453176447419258985096154899003455033452769494367958868868180341803963941362479096528313636589343136854947778425745238169434557337361154393891902591485671925386268964554684332586158696900332214370081563518389351177200954462594052866972905842370865636513944034756781884700984101185374320951913772218375402149264702379394627912450154489869243499472958916258119957213069033272865655275970952453811489446588831499293534686258571616738827328200420693971009336324556837913487372969981162939266893296737481280633738397717671261609790913418549077285223692518537459409910041366058325538108031900185562662446810808365691087456460630234142957239326468452288138665984463847048840721422897349932664447879037858881486804592656255693846718923312123051888004201924347270361915861361025540126921769708261841856152683005322594849704121020774401257251510736992038103254903498508512614768919049551098293934482110685615370612828864771314873688435980980675478498679698201947544440120475697500305453914284996123412163070891777828645934107332612550262091963960556385217645203816792995847696214858565537287671833179760100782516600546395358953865276464066858156676869631973982466261144948206395035273989025369473223196195167317453178377510905711596297688275535231407840065502013839833569607943242898064064151117685370370636081176929081186466730297114309764266640934451434244733687107609181759298053146909235226126468570117308740403741156126458812780955413321161323823317064724435716673423785845440152855280412109522294642031772884378553183856534557934540704155507329030478056586862188699242269235384017473856779039691109149160043489476584077352990383242002895060138224622669441781997515973473181120162609849592529237636951839376046550675059089563183066810684492649210088474862849957039254532557975401807917030921359444027178448725550736814883907969654689829844948066536067551119010525478899296589277676571669189115021412830601058836031748873224922338364702023618838150867200003134849797102360774187243060329923671191708720880095113704143426908215335003649502248079182267532591664309915054017429691372637188388970459805361706073952704766557561513049096764897506491849343880313954282780584949654478561039223105938229541710174852512232456799332808913287484000200658450485967782280067315860861691154628514079576584610772373697576325073032288168244173317982757145021375855184697491953878674478736672234449321093332720783888944451226515726738038081343530858539334021030023144401417367838281055967665838196129647483722773783686506445031871684539048394530404929897098469630740834971822958488638295199983654676655476634105996086884479557190848505140281230572057421668589419804750168163020781439934598239759439450121056000365428178522502492417973066523266944160937461916230209967235464057301709706666643325064880495447916006975165781860504106278057338401311298337728249369648530846683357619497264316635152421290437555395864187798225757090261227450511271777534571525751152824937126466443925278719373783343621913672477916797430993723878789881155664292811735469620327309177510826875561366251740913067894627646393618531048503114157193156330395517628473375437729228825648815690311428258577115471090787841977440011591031580007625047279741244658414089345308418688616348060466205609010562354327553679849593758339276404155816383016372124326058815377994526622655542788406889894230534483496132724945196377965522281802228885088327445953242491383016425755620503089059081836862428892526147222897759995135017722103527251846893220940758674348968753491749580063260240107798102915216863535087324410547489946441372070532304035045893578689707436912773762235358088319893895119970170429204354738955049418135458665841644429311565626866284910785125784726356387530793424295434244586665090478512209573187774216523736721932813987347221684240505580262053647298964522986316720079015181875273051225139906941449417945258603138963109882309040013183139749863970021890280761417395053515437146797358123938152648085448652112758156820386061318304133094538354564499632998009670171628135615671970680658671147044961357036118370045617425538352352099305506560643947961493345916906315174179961209246163985132406340186189561103934921349635093932111489545402052467043412238016672820788327041058865743694194578397170928598805473350989672052143237647039815672380306298613719607270246542733515893277687156959479860992572313466110537821049215071275733393811255784525357934750934949748140630357138343165331104716496022774357154999188882816649931109473132844548029142660804771853433136961626327019541430724438766306477814950106586842743613492582394430002624312111318962305154508554153003251886389298414021816709675717975400904356204325097381431815287767947815052399363169691366665635013179812290533357743278332157612089456090269571705237828201028452219320582805917975025207842145594579402437402987709024058143731057729060315023707258696834166998037764659949195245294481584452032748035695636859834506444496882151697065549430433584628954098162822821063220876106406163076919135293841342168342891771129169340839969766252198566366115653350094795818100472350521961208841732985804924978317230535693596034717941221496680616709944792881731906046293307273838915302889920587625261121307581220043018126377810933076708319893228697967219207908602872785157944407404736422332236417417218777153821514345215065372382615380384336723320134276094291789802897215045209103097604452651101352149238751459557892625646603117233338088060654517115470413607314663240117867810417346513153623603459068604420756980032329989188123956016278787416967554865484946190872840106225123582946136751877751974244911765425699667513403796194127857169811722375461548239169142498185126688621661361225975719324546694025856644022204363034795891608937013148232068520578045056447016967146352819521464072110623591296414903615582301251331772086866189687787699090581545223934820961615770970651868065577086487412744393585895822737403537601521524237325262188680400438546379976197902564446573327545560431244841932773138742643877369245298693518004849074557002124560497843384944099004069243413077315630675328472395855269597826519626503353927552333417413497369716852852330087312791040444645847021233301142846821940718885675453369691252359503164615047158939832266961168972237914579499066022408336718526156777038548678736481649477822035793744314166669544294610079354582053894784684757220714119550477331990287947407558480793743203708297663452561046186991560089734250795675536352759663475291533372016046196575279113854430985532772290524220906366418960154439704036949081609297072657049681493463102423757698064927986520049566651062976115232519306348033999699155933695991160883537741412127641797705872564014782937445863422639382968108607027541246976984144750524603855295285316995245098751395563250079450352987830226235032960233547171300028466734960354975644274890012729055380176002815763319048388190492724933783255223193849298060310711736550940502293427579398476416993498967445428650865340678759099919560608454155839376183924761868217315950324791855747058411476332645580403280528893432221147419372862729392126845628529711501739087753475985442075643400395572541099696395769037981537611055116803145296412457731498762405800731430467274529909356633447549410056825390403505570488261845495272239555607816228488723411205634776562610592904295956128938567712573141225587498978993891378531184895658356861732623162413093760480912402293895104290973853730012693823467892887318453852334890302134102775113596261805702816012931028345601303464145229287917132147155293569935981582747760811592708315830574566474726102390484003632338978602456183258506091215199507252918794727684720151666206559732374957888388581968338434371413477715308492721373697868028366722404227095170741000271189853312150900886727007473372328932132829061420668600542889555612426670327508738411832127127480067421547399773645234284117672696575171011107445483037654434573261403537817284408998562345466613035932373550951481673923668490463324637609152863594863682711985589628131713313730337370166398950082016855547839942637659852857641622354827663247081245068091433788811951759699319453699659948126348242612210497911935861391804787966882882491207406626847562970198134547053427639831119397882561857694289036394316086852590034903288290605808915835777801604456066273986460974888249022994005183903017549855626835656534900703511239855706709638031308712587081271280678949224333607277946306883948431674344167661979021673243768761644465789318999455499988998763179043376144654720098140425658029484471106373061488727477839267108191677636310955662918414539742899925110186682994662365328723422572140460443108114139872997618549764392078233072153038609138642234158617353123807528832292357060883464223828027180768012298539760515600410167221578451662035327374411757928949179862717591475306961770775602218719517125320536550007578214432643357249107287943804963896322565907490914092096875309710151922337273122594850455283326522338315674059990618161918162032504042276277013085085299324598082072040509348714035504848351077655794805587259167944854038787947260341905577603797024551016905525892962962328849152700955985949326254255111731451000416263452185063805484422329811009296789367010663954656383860026842324612859322394731063891048224087646725842032017355064635858702988742128323887812651249969200702500304263416579183321859566101425616029076672959811998611140891425836143468559091191065514731893747626568571363479855022504482808627221615318184494824302213717227907411747871945302806272161423629945251916239163634843845565774049469993064706381108547156648487136655274221972308898627170731995602895273649348725914100050083843364295983749707616151406425150961381916150672929070552674617751315582071800566916627098529645457407510169961235821975716292056839959428351316462259604351377740808245749639426154286182272964665621392049327709939530421884008509362765612197474173061516403777137410496846364395883012484563909733074519117760923496678826524629363630765090292281951587820751407675111192851008520568816356577043650450860263929675842115667697758430453119907166987766888707738084068164009145156365636443320037884810887285896258428704104999932055209717548937944653256815660867237208261592816267642307979887573427871282866237491316145155683732051580805310894323228503142583974754634568278385131596196676022539797744004890710694620313073042495244301704267153724948692906902162620846439153443956235405436683782270634631054964182503239884128281277069963362240944103500223128601130651806236503638018161460395105785173067613033935971522365991457980349971102721518456357615768784554744481950348819472029688649769008194993306748608144426964816949673582304149919770319277450984839483126527605078440168062825138137253116828530992383969339367882689125301033304991834715951637513995485525967489947296873575194723668320808800278670593738255770193517155663979489907362957542705162048164145245445867266922408907807033464853980489366988412237329286531832763182590231218670470586211462378361881658319556318922828181899905288364468140627955739848379028812059657455083829938717986525039770186256708691596737055854207571306135589778233677289145500135149820049550837239468994376679711903201050318598461603236240581716289238230409662614792845162194534312524819053030276949199167181813111028940586406828982134293465833633702758119010934676241813548945565574636762088004066662902531814020353016436491097488053613183804303608740383057929291331219465128866639621792078250315163354741947859434146754133261691099567991929900353093896108425645218184041370912454167534975218390520032428456793719194791368501511108639513763851519118630215945796013614739719145286661396580785151734759883489618984535934954800787181851219739645754369398868964572063757254494339159524849335737723580680767049279150799128646316222619743668747746382781705536458628388747447619343154755768405558348877653220656199625902699123366689719873437660306993302763303251879122977503625324020806042835875253068066374197762288232091609994606137057531104355785276653184016480566364593751766249123012917911138262849707611920948152839682314964033111076308932664926375576580630983137353062081308469191153406737711085968198986235499651190843600535827789253148682934234427588512684849373842459189720619395972837796954689828454338488906785321750241665732626245523999197927592945881846573257789858014061412267140956952342865167937871731609638266770538855590370691695704444093622672273550540690517168688897811491181399826469222866993984059534642978904995141201498747281621645729044302890679953348081525897791614905408913893676277714053121323968262240256888901760381815259251931010315908138006365712740796370684006207472640100320142195716093497689368690172006643996540574919122727378510959233343926430803996069577667286857097410201046192497819990966987435709047006626517878992997282593584139551100233247510488594348159624944837155478548256724136293228687201955391160748704437644272298511098683572039713643027266506236301710782614874445948423413599038559550733478266642305674965438072766540496908826360977299746766297701166191160076536128709530815875714978326761091107212632601681399082789242031008778346693649360323188697551200165981028788442695153606162401441608921120615228890548392989286399437281990750211786403250207875226620471107694988617240123736041793959934466774486844119653719270447567343484934349526020445389285000646345827791273758763228285042825813212618548534800341045693311152667301133079661270848716037131615839788708781744387993183285507128963123454495804634744231600342579787175954011953899322520712155894818405082142627377375305848267341734985473376821249609442711700828463147858992505776225053269511439236713418276656724765751204585267813671203859875551674187912163527487190113524719974913154337359476754655426455266470743692831279157304725686987439438606481211907025433071111314320981181692520392632630997323786747594159638870261859034142502572445527952720249159339088458326454787615231457940290971016165833019586590791850244130134384110170105869489739564764481795573240911084583958438743437503175397361214852402651973291281791002966831435353620018959284526500190084754248068065920152715213444210794971893761372796873863489304243694442707149061823439473604722957644973516073770455036726920907921710741397158789366811885499760441016908494942370448299016210582046073342739592526400080423768494653998906274796992133654017079566810069431523068974789762018926826456993235018956976767028242075101056117949199607628061154559856968624001645433237427239924625353318671014889792342553677573478985583415555514867155578155473502724348055926564627225951421524220851586130847635684035861309566673553391152752232869393866415916148132543091518123995127518505264312820775174060317349119439768790991984687302236409199297523258270161649370287739607579422157208228429246016053380401547402518053342860833808456755489463607489414615721374573791502403297531329778189562753846245372045085284680294557148795889893423689152033377322541886512669637750617169220020890372786733841660097072235290394706444619332335643010489016798389656770673771283746931126995374263774926067063434899768304788268631287237996144455588131049236893528231079413497214560946863129795738651810595014814304422202822633698561070947468018668801468037915010065658018958354206366005030023536922326047881799399375618888840840216120053528350777883496700850300477742670976970797990673091744762164868753185233623891009208688076680160110022136523658031714774716755419302479902948397905328031157576194673625735718026730909385314878608795306420679247329290020317675926597944838860958700560092646905413153281879245263267871162258751888521381002025883727743389993254464497536129283351753119157221118543278595995574963358776918636348038098109229247635427668495770620037589425534500043376216499654020548906258917303161775733031391420946476381282421054990545415056579348394870490764657869272395224109042113880364933732646936324476604571339307689150049705076655771747020859849779037365230121544164795226053794735178715481781686405075621398462557058422599481602077548476865735419248437195937139812951312157334360069532958912877639746919748869862374405519173868217230481498274160913556824297211211441293551497689474304821605885456333962804470915635574291420545689522643508884999851639030959432026207820995881253842125496305952596064027280360972344539293714071775077448522921948620026408339833065291122424681214353948754373678838230669243226383506346999815968844952597504601863863802768223057458884754680776406449144065157249120647250501005246072569827685940483904409140366502159835428074759361751445992778247907449525422262883848432680001152003140525699179677764395691617839520226267749796892511478197603558265167126576922692541547098910666842269210181593306059548863230158253177754413144534920012494075821503182443061579249395624907793272775121010938292839107839191418396911699270577359447473392139738632382017042237294669061199648482285315067930649622158131576000366030847661651735429422276692293417723518411122868793472583577427475126562346657136353395622596629284408675118347384515779567467619997345081556963234711231325772954057945981086657585198637862804646918039214135640935718916569802830433233977742354466874029335408997433167314887868181557859820184759988563192552154810715352788564489453848637220709958726885472228872201666977368818316847572603499240038812839652448853642394037095059568281603535661165660569690427683345851510558918310866955800543580353286724310919652924984043164016465741634138812921325183851577074581368015906904903468886306700884584770574186652075937242697328240364588978793037920225400240439678190859576641538024079306936127895840758102041909360830186547489257422618853490230019712004722840303949817894186164499583084227374870878231373955870314196520831688996463605055079370793621457871818436769689861211677804819548486887120281421117862591496179996463830258443189323791313746010292921078886164185581507500869979097597026312681218909304240536764716342939230296774015928968654515549791099475135147057313573511586250160979535321468059626427369712380400019814842912024819144157393712761938929060773225692807875710297865407724167192111768135623945830941157810421469254852641660537394674915142719925375486407368585085449208514185562850915248274229927143954849828597265084835905504702215652745071308608716956026051648492117198922502317743108607282664813914439924866584060020266779851054731249645289780091601401397381201653014653709239180482652759048632056413180643930233567544716757258125647423069085514916444354567484202615748140726749916489997224767013529374447570709091152341423661112365239785258848022931628762713103589809955352197625208553261498040737287421796003190803314984571053665839541936093811151289904127428014337020817950891015220397493854795079703204292800298753799763314265994780645718051501367460475693508862149760945681855697302490967264162861941605554065202003759427189005567421761865331927131697678522389409492790233770039777623222248035851840673238674426644019401871311193883342855076497361987367404477805435987663138701693499954214361159318799549543223875624994343768768676238411657448302175563227780645453972478303856182629578753098907271082940122798703967723591120406785661473498135218246326328211175130981554472843780720236534787064955711441794945322531258221994874967941008102014954326935735961985460195783696286612370423300376720970625916754494621922163370981391115938938580232882433658923537443234939054909127772848896171018342866976391649910840158858166208842753265702491272039010134018890817798971814986333669498704838353206423638296040627200525821532078888834492794174835023712562854930555554500908846802652503843873133524240792170557568180046794221931008700719557024558910147942150117834650756075144043090052443414258563340397821974676719216919026496742477822153137944550143910917782975518211123898948439350507482585602683898660232575662817153274106028639640956277524472325588132769375260647126415946617642364551757297942665725136266481690827340491879865878305009510400037776508340527617534368192974361434821090045342428645024421355676097005969856033942273150684898466638568014278011368969825870131813429403746121711707037197725016416578385445720713055270825277648705509976379265661161342404668074480441707484581938976568677879971256408295101362010059835026417254576112403287301058484220167952825831059317124305228897049066374877239260527095609673998176698353918912855152218185891040987634257532686024698305838048061129630281718447138991396703418224071737059462835209719207030334623267975775227225956252461400706531440020847912736074121648961438097540295530795968157919801373768834001307009531665036433896703640318780903251462924193162037336588673146426262812060766308678927020852134706166548737400460997966317126414444677461378481898203705676197637245214149001677923080777260945314611260584354259015633857143137257940424814558219255316777202353457183771328311988177481102356888181691346591467401817964581750842501300856223856487738291342628469621610657081104248771169310771732815970555970524566562090308117503395541255575812415135078913484137750777695422964974439400887800099978845603436658080888705109955333700682442437482471686559115773019713090804684848691306358431533490468455926739024212259533101947990153119275639431815793258120713474135889054340525118448508010800485287541610776938203736271890536811823535709435841626909614111863261176908165894445706493115365598498934911843882597184598486691436825116827357054806984354417684337299356659669706987610475334680851931077521887145571937088447013371068465853503390094588924678394580507311150013719200188269324383480582219682932112297466267556256840095024811393218513982294191524828396038842359883755084583845022210044890507689396065831134483940575633072211022003141206121618990872747810439463428748632838659756623872162856501518494523298759732639486173711556427504410450374610009918360747468529753676094953350448647782139488175880249564113797322269901975764608622483588034651874821694872522147346894450332943289843409055036145989991607144616288659925678385265933490454588192331131296911091636630053225289802904374416509640004797112967999865265115872836750071648957360405193318738657077455080514371460890764281345419752499556026447938675200309188310770808500440830538722644478316908347501362459352690158889811244937769996960669270959769407033398361568322140638201370805257900839583715709286877809191266473643628372582084340548926191625704310553410258063558951003377882432033666997300513939243285711314039531073332727145286033944510571988677762800862948100832202574180099624778008030371862478400586862068118376399074125446014002186806690791958716306449637785506576090743949254250730550611683535293546958852311167892589925913391269029336670567214743405511349627414535322603192158327007341297225164121473263671287553681438554041032909291076872501565262630451535761650876229054457834850837545180503033016857470646974495837587092172137965244945490646949688933038634222716734035120529489936517121704181970840559950944124636088550748948224754032159803683221194761799036005393748443918520343106814946061574708959689714472517004640836790294106386394569115871235938838437786477672779102272813388543048193292140315212193918157761297756742555428729507603229211340529879353258795262870842274758628904283804766656850984275427557822464756090801782669337988452084313065955195542325997241321845505850778406629157147081381367576944731470513041700053656936104693085665006832694251459096109557789741750757801668088183005388650159925655239429348241539736285896906257429186223360990690540899310368738142074265383086705056502921231789944679720236117622069562321050612858418854416222404278123296728316793327073037569113819352705356239864162079423495427774438037770847292195348134226540966966169862467529164336455310203409405945269882394482972738876497674119228586900211736978251931139990877678613844629434640444632600098819490818593492948971632022815903980393836680772530473685181035485661766706432112857948112910944800731067744588813165114244059864767106381353582976573476031949182481812685448109129316709851698061714727627483101578448475665595513883252980389570159051003859276587567364540454406422034110860610176910725020706154933061201120831335727936050480274054045087810915245125716967040565413264193825618171820721387792186950864834711176683923158512011582525190817939001816922876706507135166091555291128150635087127852013330126161335763122849369767583659163083700355103680747737997121320337787910689225616049194478003244439651093329013534065320364881968207993032443777673675190019107068567071439546515414025589985645000215847967199173172177866981700645317542390966781814361523059604878293068131627652009286099552273589478750012276925959578834155226548162684968112493848888707650659954240461597781967711752209410006628118601529979215900898721710533032327790917331076122624042722169164217403544760440317121729960750300135896573718699048451489441206553974115435485827068041679603127137122470509547309005470811637029836410227982287808608522904793113230080178280533230109509122173637551567679079538664258621636705345455388823192587769362256430645143888572611543500177599096611561651742001608682877818063684066050254616511511637928608184168714964328646588124842086450153775058601961728445491826526157510503594305143564191287939753809806789048858928596374251663233014313462996534896961483041392273708537337534104511436879678987399000783479499012560923246237332566331654502641015484151903754543232487308111291138374510952389545305901437802039189983727770362223413814534399212018875199234904717551589409297277245123380527216075003908326955157715735107046837216200973656436589957836560987256216742701428179587544416751065159844527976516779824744554724098867908433395486030591815828186514058067658379730706819546634414984452695161535187854891263836737174967110340505716447598181390852214621814951693305400615687060420308884075888222738184501841933668201507784658871257716761481780913565596174805068993084454998248587481749459978157518998379587366454428242467788469593826095211240997151740408145270750707261282202747980045308265012710302001176887478297901203011701922400171691721069441000640255589472125572797413609984450007300479186847160521621360381303781118989511532967209511213616881577618177402034918409872546188035178626176703392825584288200730906682735789098012924534302412698418062101346125087874251252443710555710860404477670532012158174188088781730909546692603247579573226456028527157081379394705852076763410393674078825264592236761211510496778065461977261903786278758518687892059016385133368483084825873922163404792251865307280727403940423973955158718585631970216759616094136891413491460090448093851617884949483576517652462978096057105545452783228331485317379096717927591319843147186065232526239131488166082102726707226554547230452781482672281174442020102642217457164201685876387833465871193813307576595519504896577796119518523071579275661318922039857549099366431618386496357262813618553584207369553011545128263389556503950015512408862654082856605473970731243174893864884055406816194835389624953759318413734901432328730387322253638388769423103838968569727599566259522604629179202347487907363552138708045363057462716945251181397618907427105155220351406430111180412001625410674734783410735594883001849795113946462873522050460156578486420367182736494404513413111282384020841516167916727923980721036335572020906212205655701189245098785165612906677245381078306301019539955103264984840998711200856897292161710988175532197651440124821907674284072036685581262827395361843265073468591594085988164714665473934762001651487371895098652995111279303774387710042512785032739242532888052863599276771809533691963736589640128054889986736365804204932422879514192211236539543556493310282813491476327019867425088969364992012543997978338852871717158887463600629391211885162869913312506267068056216826617567260674416305255232633644654822516678446051198137683815799223951063789858146470994759723464693504567607018323123896800792407874886746873283310330097862673019767876137867293397013343093569382909155926975927724301707123826724320035985529852944201142933033452330314402030719364972463343288074135375261312400439332762588772950526413497531590810497502070710077053075397309441881881542157026413858979239093654248366134575736239521448722884052659195957466595747278164599185326851982827522322358859216627346819418729048277894089049578328377946431796545425563422892435242061977664474954778329423183992094911730984921657317467627627375579788586732981035637713663572444484732696395474792672140080689555012384180734437263481319750483774323363455469304668392929685408102710554374205030672012591435673819578345797778114889662919354396108469145051797409974616757855672047139203782554028643853412852355965695919445511427355845657651670520088190952060296160283171906138619681266653365094437000583048723347256744976016304285784115318088331714553945789513149619805248290840049567567759970285327624457762439970688575497661335542192929429710246345516731700785479767548471078383250446192863873351199954094303910157593518672118174944808351818895843154840580813839028690725526363858674475799290463478311379043921323436958587065144256091998713388052936593358794766539216425871163197471402015671399397408453175056583721480836848927809748869428642089974073006609275996564820715917817684587836492267959516451364582826066899020310140460684770323155062403681609186566837285855193435008161233033114949776899522451442597825111942694096932886753999019256069029358047993125466778597604838684602013584030997801759249338558452978266113652852280991868547826180173463479843429466611223370746773090661003181582651029642284944803499181146510126850269385549098291195821289191095343221317127670110907587830046971649521673542490084981322621596792813619917138891288087908199079007205535846639881002825355890289112289709364977478112637638272740579226524069280631252470162732758550805428131171510270586026801099702722188786910611792965964120085440738569027327615347535553170747691870630224883677391649750810728112810681050082076025674455569338870373548117055325928691510718939128906269187110781086830023433200793441960113965972139419334733598334342619077373077785150889651028564542927481640801522812387911287773397048367070208929436617553148628453402209062599137485862663051671843990343116253552903315515897066818154322633769598895405295718606182739001749815911559593054837365824987557223539761389384430028550332275653658418517304453840665342867595304260451507891572495882637335542519293552484789155465471368621585596261131439613157734357742765147383942449468956561000105738809174959573111439899921293522582872288419888715005246292306175102328476802639281736497821525844525546934370438485592329603780252699538197258890929801979878628728483445286499724501329380081237153439591616752932264071122614312426763738681135435317293785298663328172168985235295221806822994773781319574467096801696782084302842940085355643547389646781391417165478522089172595070281618885527819944553685417895270736318660804279656617560572526930591740102460187593215106648476231383337186779572583119423849921408240486688931521083431448421438630702501342114592953916504838406334580558138405565168809237514025911748764807170406769890287578803590397428863821860763729039606756604984313322114482524731252105925470327348799057738140598778094393773290150015535585043210033989085893262433908127578150485296068510186088567128885343941378909800862931706277164156240858764552808542007152615324408203520015138220578145682850807278894356565834709609787832439448506278908285493491555190609692616518933713723014537472033633292984311694358515851792418708868649763018317428199696425786514986066118217865992498808798438998210903808087559639732070524959334474231399911033066250211775876768063212535632861514284992892446999253699395794734621819094959949441847535405877057158511817050373705471439979018172666980957902721680461470392830356592543593232981775051394854302325501158180532192581305604531623317085733370867212550917267756000338876054908662504292591319734709753014940138152536400693302972473979683641170906125827551262558467773779411406401219543594089805519359819109869655380066657478087668584486768303443909127666756585863951054052619679700252362870745698316502995201584316249516471486813128213499366712151638500781550235486187523848074808778269599685607599075136111864856949175125827476879298248969159966137973559735590074306041114668048687863237336739235699338602532431030572693707894255707749161439680905550837157259605898847812230487575449229717720427795766852612237022939042740070530875099989995555822674554465429622249359989898052762004644345794723613781271403432751929338133989928833323006385675721568339783534133087210018790532142790000238245087756153249771594691923622899517085887632130552612924176423867462481225011348549238467161106588657578282911465044938889245738105616750090558040667936480726789096022620456553589817431045815311767973349366821483252706799970541669442751832495172071322339877970716766696644688231896128529702547221164649937516400400398881303485435098703926195122147441571715681665420873641221460453195441579275530427693440107031173217816255737684441946045283095597388322059521234052829537468687818092154934616774219518291172954843425821396133300807270510008658397323132225286665220879504261891735813881789830272399987080977672545578131011221066359286687777560751710352938809552073273648121636048298468474979648685722362262756199823608901876504268937393897185412101873846721402800358680529868718099488593483578708840645627432870205547921148482986646828022651208025285877137291367411401828431808633622893619551164615775816977728650703555341385002042150527037208491114235173815772719953382165324498400757010484227100978443751931935480059506431224889487909887526600152523053031808605102996320733828845171512219700885529313580293866631837427941347870333044090310270752634776358338721404385660292751747225658377683386291345128496397895112073490397376586566110861643161629423816373573432684048167605430640074621779306051515159633039813839601579080931814544040910283845020218626669593114589654681869183643155091585504894103809313707001793464715277043462596534177957647492068771996039953856247929443289484627446705135559499864938122278644940241250719498850934685485081444585071366695588722591697326210484530265421915386117816857926760618068597288524566405449915295701093834671625889496524990823591770153129952503259457943018263189025432836586763813214800543341894070432891651091898096603534170967898682967186303236359797906649472466104544724360883386803024209268413414027567999611964849430703740293893617439001962860972985444710647446226223186449188981956435950742841823813721200682266343893082556003594180662061763733479233582514019384416568132942201002346984053899207597336088802367384856503225199953209485154834531326163013286544855814022236220873536554875710101142860918692895086268610575523198034580543453356391689549114388895984701631676701529984547840658381840855346744238312489394119554630821851887393454263630956423761918056869808113841262804799918261771066644657991020953026476696673171215970795024129705739972585520556744594866164995709398239964788224080759867174150161298474586567310372526217909892130476463386123593674591102234608941481628987417042514156799768603450856878896597310780037114470434115070555398860148006898180428468078507245333754312430957500943846974802804495083828940207523416408732277419455290551517690827662680389296437485760919476295809765818298397989430467856636126339578409932648736051072855953700707773194931590220304920240384269795209301966889938984720947001900753740143489957308967918990796340528034730862435881306028005912643118648824287649816776484151937937725841157290877152211219717238941214491340649914489942071051895855110867361181019018765087830223875859135472493735302692432349213462147918625681244438476464198272518404529196864488133844981904964001529999801350889972582750434941329146498731960872676872983196417887328173602593035514627055332514841033365752598964313405383046992297926741827294379773638283181754795429337970782940059063511524184819805931051664380801978682737507069743080398069469846930435990531869977566625328876341656980409451587569393179405157499607186399629348326637872997795426145509123346413286518410419201703980031308581325423418121036439397067031498595795254554646309000776142393490765429561329989127278238006079200990569219484093465705570381358414831080220294939943215073295064321654082826799944370788336361303490751751442315905674869255699218769139401889472058593530978560047400714316603399969264895273792517321680282871785853488674490153433475690912832176820308953369556506731634640312484302833713794410256100007858701966688739360401243697413491904852696568873945764158532129315854414210298428461040012247770641926210401658313933963929303675351666132672148679271406661251545989130277896922168615342566064874250581124607030030751207347011343217434172255764596987472277545054341227719744240831009640434726885437322926702599738820293221524974763984218242300774000329530882985230530604446787543978226248866115670028044377462833787701227147883535715734947666014953937514742904413850192002004383819315667456351360063716718344157785750524990411585483793824042860047641375148066216239882264911645728036161199400773143910143036163287219871196515898722711992595075799809688984779206484325175988544492612863212464953509506359626580874356864981022608937669199596409229366174539758108197347210402359644019392554792954536662296382506746708647906959033772299183453980566112852851336731635909418408216376173102831231989031058222620022520911426301192359533781458349689301401594318010318855837659852036774844654415456876601474278941339123302784565412854130165334494010622103402458251982002228792496374940685784899216549124227137663974490164128824069019779816536067577655175367728114465920852381664359754863856456956194491823009827056005997784164030954472050315028335469883184767057574004661577951152749739543208302853024418256635557240223346975269570945049385600219841891960908981325435706646558021052479497227833981720534963539964309539893154438462879282634896837257434445885004845755891485738371822325561364390138271579851094045340062574370450065416594387479347915839864522380886112431931897852215932263529029584815307315160170419176654426568479122233054320559011438740870998450900698139268103309567885280266065420325850279603396037328377434423831675634875347574461983143292717410621351536885704089508935129176707466093024135344876285321093905417834628056896083429223105200138624682661036882993950149483428623574771353896973095324922929010841549965601622859226846066333443028147007425912732512204135619633786672525556496723831210649001899978694138064866845624296873202418872178407637937488315961129119718705405178918856719268617475468859054890856552180033248957396220358708300044439058761869259661133371240202543713993639845785631752058163965246384649818718313401671335057963039703834670462418765124227517816917044077712834649857081278516132960545070126893002040164951026987906196317265600798648244156741946384904467258187572962331834049141181885329264105587683262595252872970495112844507750399748232554850385978813903910215490804456274344498085588341425729236836703081415605791813335224534710506608129625566623930408988811492166046321119416259509835201805939864555661049108387722692922935358307666119977224505086108369780586540558968134959578824796711563919245586986891284389301471482380862617257519196580001306280627267298650097364413698682031537696026306550363056672544865550008240706834916820030821692905396636102164608046627641897095544635671391284673487278706364806045226443921259381646501747269262085124320962650743374258574000704176933408521862838270139712724925361530853142023465635176489016974998689726202875600829812338079948486134006277690683912366937113680429056901153368891383135624339726741252534654363004950550272825663324450083940744148626567440360527658437098937146420347968650422960315105508815335951645808049183169699100222555086292284981836265703818838642894858085755578523451422457131548424586496658349091618449186971648805743246353643681150739063660012604881275679514553134230112994994941619453476914170315639858584257771541718104778744541776344803368513043812844914299540168898070221449142296689521468284588128510347551527690438628652599905091709108521507069712741424295000382686592017735483952317030963618967647511963323425383851674328204204237947290909485574959222741776418236683391669833962806054405740398199940088792929399501923729959837612037622403543231359168831865349982541713905517539757667579536192020466977098164939211958137327716215061908786680710394219375385270708181325373342504721405846163474054760847202604256068807192472621400797189386748350761709085065694425788227390061744697655670345816870112446977406147498122567019301851880706738568860417796098663124399370554298867265661707206934529778238843109823008291835182731531144584724931549453038079818294290250556389297174261168537493252806964688663998434097530377023333185765857436869895879558375596005728121021219941198476443528033721982618445449990231498244904318169466923152815436462655217597656851557094353968983642941579288800221939389130662230223505751934212082081940335991105559926736822513525180075064323777270079264221078137465094479399519853925347036851302281513627795210379161956687247260921488669510078682463041234059360575212718415722562113354127617455419219475824629280999303079969953513560912680254308081664540777947504710672938070686024602479207932918546114067646568153597558082838385054805644063375057723790745776733300046261855132983817441605786535460651339880598190118768281591034375037992748909960375070852672376522060052126676151030998044560884028186271799883325993418796320142157124074917173568300477143674281495957385087780011517140090491968773150147365291875806003502152156300476967385113944193409984870355970839034784364620637881875493726662397850845861865682365498884794654954053372513746996985517409009890223124185458180723924704559912449843547784069020914153372312601749404119118577326820733841688500765752355247825752383426209716851517813794024113053289927555108072522934102237724295999552787158097811004755854736317726566761131764191067295954923161925950418024533176716311144594190492386199959391823957306970204970306606772034469514848094882677287609744661428109771634889671848333010763153967386017406565569223411366116377019519242970846448640341189632865371701118271468050997674085032655895733285922335433791391246350999405700668070602074359457805213632107976636255642051792506773386260545098068713237803892333637990957246111488514648920964495392956334352596925702711657492393887537386831700672641134392860408027047542784086671400013265928913540160802860676256833896435786942846655049606585215446316584361669911217680037853119490137572213547768626790023540635780212320944919935757545729323235926791265048932402737747785298543326328446747976090389041442370778003887972818009479369183542682435534982604534613972886852214974866142650842113799443122887621410667355911420780588430544074404616943329053320296140314693328621976353626850631480090938402550074371026160725220505309573008638454942859953866649597623428958858026160223589514697187725163178154875890980575561879496270168689600556974579508818860291956125765781231690352032969658637743670565986063576620858726675811913384287401037665922681485467961886620789914439137038764558751544787333002874858503393119931053817850838104716722928263198094711598080206765518853853260229048184648154118692693881991886103911577910328907154250495312553596722305636019754058865310500901787933569550486703176913065124423983748663818354954876742857423352249679965610028908066456688364040590944452822617647934890528324314599724012244961269258527845486093536701669028887582216063410892138709345385575471663411506114209956069675160680314579298855797429462286103955761625744778263528830985221240753390433522539921380919639961354395307457642784463875186660679111658436809369817562915566347514643136095995904628973545366799689388732811250230131391027881025094280718401596653236183967324519757866904375081733373358532461370410844701448388796262265674746070139892425373002125740746291206144378081851535311937046637361554423668974497788469523101608923552988195271193833709117668584968478627243342723170302023284769808431090735101591424617770712957998840515296782459081224385854573121049675396216671114351335393417957339890645475051198427304881118695150914893923959662480850502509191968876595051664375234928138989268860942745624400910330134900538081383769725343157643997435931497886582619094901540600761697460586563322835930923726075189242176555169852287402893927654166498577626697399600161108942660687510160180155821897012011417502364496731685185726969922536878264268149034883938702259482311043848269563726903714126750295325334439966027660528045924610416651677286284687171080277143039307906556389690531330922183135084027192216520790483000293305581943348784242157614320814664200778364230063159339148272427370252423265602134018549143355893099777564034697978405556262766848758916473560847189758279363034016047807554380317586252472344146650144299793095094357471140904370667516204989166216112563975748410078216867200902823520604343491788844959121265355859247485410094402880030849163410988325856294941859807958699675950519258068479698474090587167682323157596597009032126517459451145634995305099517683878731619050396372198651548764559763861215519073140219226321476778652365403939788936134249562889798893910515978807940700648403552684401905435513615365296919554858700570623574789048164880109689577905893632420060394988347806318934258165875315626676687968844189587757113354009694251165516473134172002030213705004583592696726023090529121425606550210511634622368096551389075215619511434199446364752215072330329913431156318776233682287484674348488181304831169096236031838466035955988058393459821207493993418220085561956973899226125274875713665733455875960620508946912637504692569974635329041577259675747947542936381543746669174401520097445841277971261989096100808824479508819001997827922844491079693119271659831090728626610100182470962420890636570408041318126682057858753800513325967380778853997639239855344308204578493409457977652606606743444225311983793089028860902370055453222320779615736131648688606236826378318838483708237123249446158887191010038364713079631985290328869547524338032238451300860195750105353295030866184406755436978198652273478019255955994929948047884576273063526893112417657378377312547027899009378357038699806796883928068449201601858483864739117835582106935681737675404960306301652196399296528407203221557099526126002031419750359566649589974782831666770279915866508115891890462778840633958191092569469824960709773152268641560323528938934829733245073290748894951958688053151732595179307698268486272282232850938859575076932632527723325729873903709569619861912332058086486067293569253000215782054722089817021722344970700116697003969986228151884881793727166975757804472948299293729303858854814148829244455766241256731054951570380214484036495317222340259568921293657460323942771897872246688526654883729903597589464832559199666724829620543878187861313790770506383944006737284888333842969174605576716239164639949647309051257123638289910583258757014407890760180152195514855253968700968021269465656915238669938930750469034921911428084773675374902697975091096202971659818342686416716604170345281069274357943355318933435033810402258839504849520457040077403410887733809838757430044349226552598085251501110635744348845437196139274306516834314758519955260684664405129583452311784052198942005343535676799716817574197293101154005126089384375026775537520063378567335715699266910024196577802057627283651903852883876601052954059874057967590314746287826536168822907761578689755576401136468484715637484349036543723920837886568388784095587376797067621474356091217492230198161100067574817368796808507976522229579845319559656113715615137458885648757992456136807197219940618238566060337385009771217370530268583011140205653844548450298287583734088458228611151915761056522081384464503781242350697763793281128083686554822228607626977910630371927252249904996088216293522238291400851855653513353551053899952050832162445835360824590858707753406787648543537248517344793953196356558994974907751220969162373050588318565979917155409593393620119723124474846869865705179454295576228021123088887697841710364754942641758696453473660226056726225715336715477640383201940072692599501389654313846428550677549990849433932914290413028177725356115091959008916958068824461011374003048883420507689453044884984261201305026305522523242631828452217365786735070914822085912360679257026703310606870835592423363644798393191202105890312430814306566307934298794559652279000272516187888664599272253780585258132946912674305579900066782997527849763852223577270183552929023044290554824019105131605665190041703663554143929286939121375508573376709771160662596487067058162248600088754067344169910735775664353766285886313521194248669326245464481103699558491175110486156567401925046074889132138938897820013700958865672778659092852507810062469235012379042901715117588020298315485474436699879775153034237744994381613937944327334963084106584732242749558363131872654436708165439110019849085920012648299541749248191407281658570111230862427845206274302251260523815966723020038023886428273148851197233192592041599742665434471285470465608199293920506249310123120191900797323377904687960997725930907740047543906445160838892661664640919659529069021293566314370562109157824423583570166340494879942757184866576224297752154483969633680818488525926421167968341333754286291592271975045164460315005428526745379303829262585450691923663572573908971059025834902781846419934693133639608022604843461877453293428885893013334426366555015918194322187950086601392187077874046077224924796566974111476578734145307797627692226023258318947872605737047655679802828724486110131671809565001732213915635695993407695817524971669609805842670518182881906252009261865277051005015800077828225899358991418740457331986530499752002325635198821738459143055029582796441001009223797108268546012493743944245752140125549747761564207525780122629456895896417922417527014034986493750227563376569576669120628387110609852366239261608423231486390636605815781274150169539866947925752772315176070601513770246896396435137298620821616298804885471071964216744293274982518882326331476067197263158004066611756697546238096733719805048935314220721470320024572177555227673536098779259223846013540621530651030584393428825898798582931012960343480604851203478485601433486812383276077470107033171982771512823601980122110713951852323078200489681593968122827652935687657576408856061504173593408908311309941352218838940117151724946311104949778332678478281831915377622782617635453589809783682248084307727476367992310012814454410522931942506388468709985479794560918447188390050894301792723349714518682678347584972516487404014638414219363689641450950093847930111388519251340678373771892592932468344662985064202762163666010490913212467670503070011570763946172616618277153820159818382424774282253174922314508686102106014923816710940380928101134603523148089397927313088374379268305490080617188390757786929956111774757003546535589072783253457526343604549440981513527199793912822821768734269309953319931557901621759028329781638057942117949067863392309673062616317905592372856441993269408714508948758870112414291911301220968341318875567427423950472932292881411555786386652012907400839867706986317984893643115715568725382679723382038901362852524177661466803926712858602901796752683723304592385572264656365006693631810733634479537283173459273033602079532299461237930972941992401766291377859517922229231961140104401254212633071643808416501442383388745857383682575051313907597320648786428848533679302675099617375267232886189823641607626245364756724695041401555334276824067267734483219518537104937655195377500730899668141793829692907803865100461415387633976710542584930836230443971177627750929843031174125826313558135958892925096881148655050019025488358835439996013534646975001982223158468245183658179217817117850896914530943428201900535169332806830409815736824970762586838106745675194639370974413651062001915676828142377869232093801950630063042788934488381335529134741984622993563025344358408639188777353415826125180000700288801847873958331208827446211090697453507112585985853172844342958326954438039164060356602656994467893202224802458182219487703863672488223934290776292037493016690610137161220971184698908128406828002589505867884630108620640103230387357004029249231515465104747141436705045843555255913709237292422712903412177627559142070910224200123053829585857284058943014225937522344089024519511463873882410569264484703121549498895085998773957546278657707624667615272538153391743408698359190229442143586882171448707279203476861849897404515534886725179287739249825279483707805747902178722535743125974679902913162567939187583658884570827153032591670985665702211529461458564593606335324525849600138982381873615250355257461567300627801027606913144256037742932905826296390279166708360309208057399433548502220456145248128379529789661928694923780608491501769455948627179924057356120872225616616752019517332297359195452822833372271549779239483888158267221084470997428334859621905581914969972340126304409401817549686346765112940019489189825745449762593547485683931408400466678511951006357808282929743740156133435924146902816312850610244920834464092384452430766838261287948274207870764202782939449672174411725221017219046676398356543826598219691577764491421441333229096023464828713710860884215202273032347124479484807481826350246586212252665356448853243925414408728343007203400628631055176799003045262923513688423441937134873710621927050396469603574764134773900945931099173027449882454742281132663394524105018129995173213173712252812841780472776281117215458768485815871013037484532286475065462294119092790713805579838590480939887020939262226852424949658152166120747797339564894530718789573724811715131110902799690752702435318645489498986443200254183181804470941847427750958835163368418825169918031221249457260615580279639479183694969248147851531761814361103358001101745195106766735773251741769125787214773260085471681080405167651370269681981363465250427651805400214440495411517955339211310809281597317767116650470505691261821193250168918178119149359442088702467636979642126144606630689233710992411133546687048835163110248021965481444379967183937133245025284558676132904297469023566250151431276855419339139571562483321570323557864578027212244862901751562736002506833821169067462264698262106872170169102180051231934949457066743413293789454162572962362376434046071307827712530311812805173214275665788500553120075758024755118243235460006559252664740011584110691678780828951548808025139825856757660284036625166374493604933806490046058925658860082796536421366656324707206138600668647087649403112294441171957163119139985465321282116218378349877101488294974807334493361930110806712429857561206338830894170339198704304632300510052951217789664582849217523283210469013699377938520325636741230668874155190323818668163875352638592142678886049590475665689013292838482766372247673321117475410650901191984019708932437211949034616872920103505777946964296456793828762029192758464902577170061545475164919918608714582069963000638627943187718536486631347388988487583505282634749523088740777765003499330557900190534779460005878397694213501025407460866256448260098175418146556300689997927065793170092303763214273890786212387347727365509597672185274564375464767646334680356767344974367644469898461359871499845294512286616004197615489814725648457655458681770205206977410946520502546598240930540335242875028907894538410797487996091341071978196868434741596770607995677678029714002851374477788640962426827914928420524415803209694430949535135908396874755787720687283111913059791219543936792682831989536477460973369585687406196485143900739094113748631402024665239383272183169261214571138821716101538284802733550921722177746481311614614221384887396363429648949360374268939616871556592266209549103090230744463600113311483843440197704045764856662215272258124071118894759347551998303656738450585241866085440356043602551145512752506288904699588014461631090151095640856573180544227064980436119523513424077194634164126860005637281337645602795234885538824302270025685571474229631479534441181486486983051468530673807253625646945221225549790498510947939205094259017992375220019616971058904960828657341875240640340931731202526072802278842982558510161422832742813197820670614966410990393494562623906215567290285187579171698929784025518837847313855896474929902595654539669912421741516923383676531532873181910855729984677231958470176622093837263127633990113776897925295119966512844489960619111907872833886514510812871232353170659745359158555110720682753732747308848436736793614776959032816479929966559160232103400540968178915133069609392375516567523717425218071869998341337946426852953289891746653440604322365265015988917618371568288174693269566990902200545732211975370635310119354072832867898034449699140606750638834268906925928278869605920585460916443477379748530524200479340423680277832880082741363759447665354835277183219340414151401455827276231431059408894973271765192391718846696330410600962657035685852460964063706515519881117011859853367518836717329739177636145742901970946503723581028350022674735760767598132328320775931223265801605982975661206352812021975245768174920383916088198481664955540837910819300713396788950982659098805208989147879484290543987901814322610999604708237523814519245559656882392029047960663104594149907062036084472952293109234395818832025632498578133303636770638080893328253664395505595662046073241675459741345429185177399373371322036907939787940100326945662539702158181013016071351930279820532094941774569331754477441675946744758876926014646394962312626991518172293182079757682519890169155054818144123400772697273135362028080426425470711051408064797210679888955283568673872967746155532382372884578535746139332910615328356419209451778345907291548469405520675162235384157768648167531711979049513193787988734062249493478302110605356444222157394644011274003670146325998588509130498188821515388900942831058269528453855316609807306755595712332518659995507117410334147721449445068348740542959587045937136942980616251393164668342041850864037253027865999295969383692596699260144037902910560733898248526442622933922638004146886028495663640535097292174134637223876888387747250128241904095604278220120679980051181965041102716297669894965361525115608780570734966823433672090630250994364698154506525111181837650540696382360625198399692695318611982207705797298579790573000222499204070311888985236929359533095416241578049480970272036059755959468790005995142490507959196692285377309707142761192534308626133176593025222061867122255514905680037456280400020343871224681050806488097393240180518927408370177033786826151680569510592112600725894806463124402317604173421023386899780615224458910340927171508076548282246668857948612780380098066628719473318121657056986724383590168967036581185792305473669222733320339152761892622041596045115521095999800098060498327809757325399286266055775120373516322650149772257589065973927022482148386354927866547229939300424797653819492527408691870017944731802585193576706395885993655515079269099005524072814964500575583134929488224583127521541131002636193372250779017963479042701604320721022112254850760994810279348587178878638931262020283325122811943654568432343096755338250190999800775201634562504835047724158391450946112569283287197279163431519197836151363122226386130421466891762310726648241340888236929963904015157484860223443378953320750146112024159791678169063064202711730248327467179425893622884469771837640471325497203822875357552257870262803257776730879874323748762488587273699236455100673233904112147348318267134238555484598031947760772803528168095262078720135571756848113178268664099687088335596855751625653523805544111154883934910185320403961188441242333600688808591770208135367265850961140088163224038596840750131865443611992056288012467517282756815922264478250176917212749011891108316049828073633864592252873237543943298417384574238337898607912810723294082575249885343066405150979625496729258556744725729839510444677308233357877582680973644165048220305405133241741389794885836042169970961034943543369605100460488650821207260868887960676523674081574454293445758060459711547192011308672605577589497736084087932212845218086058002771727876347071116995942006515841865938842271768840117992541673914736797324420531071697894611383003332273567134232149126552000529822098585283138721057104343047654176419801073126653716298621049806746128381803142751847782215504100628867007361033135895180215055056540309055372962664918869440913118541797478995484536024991859060751411187165878966946884951461063276660375132759233477208412777598584623425884816874087046889543795092951924864537264107854357035765636510401540510632465166228407566288073183565379197835201985854845133808569352714197796582372973311235425078598073619641973221888532527735881390357488592116873839304456574998322022275351708006282701234018003161555259368114125662397537474103678155976769464401628335258662061149782784245068820959048386745866036470967580131858400426867277919091722547826935686560414758379429485894553085544586780332251662557874259038760381960844318217048830651989053532093831713170492272376696617336170873041470395031128248114963332048788912493349291804449832902979210785292562412927328222810845392777650855863488574195613420786181116646301228184713120983656405093220680924755673875717917496062269229408215567420999987018209949650788234528265013493936920212020560194693978897770822222979519889187731735187338763075532017982354147935613842550348508406274112719451739787978616381645648350764745555399042739785624623745778466368915753512765002248809142183353179518069376588075073942965542519972392471715640139487975010900569988289645606616255630885644191288868689698655571098622281134614663349284326534904944341283549057621618519156253148557741892928099718775792055786638382742343335377656950939896361391521609582537746246107541801489896846754351111061905275858917476834775710652707531714933796477586776562864152894248617225831797511097423230762243510964172028591242212287234059280149209055756060453261965619577720165351672452138929134592974547117148662962340388394100704594047591454461085995292954688616769273307506177221379127418931788202672955399636022539345531021878448363808545126347659536678128041366011623312133014154257984340133808648717355853296262121465587353647448371884783071263989902064669910784455902402144849107302652633268849857420559090093682977858202995358548827001715767794489846069423290225102399002223507345922957692715026194225680209444243443633406613154448464302290551985481301577305689768840207046648596618500231144464496840377706979839987845831946601086914168071783079993467824653908722710053901401784211062718607120790254458365672345712138127237582531367860069728719580862517875422576479918903937407612743687116715093690307272957398462925725171160558409793610830680464097631527179559656313839512349426781157589578759077648548690084489550148545779059472345832874737667572915703650652508147417936023673095640049169278328583676273337331959130853127562719224376677779799639987758131186084770832286310394332991437999902596156120669199473741920974460777207248562334593947902938784495698270721952758580092650078887920136447260371252294296903359635244389433810867330973485852150701336697281929513685525452870384414235634006602360848572690639452187167578356968293424536429424409833037511124563262619473541910539132768104842566591372740340080845250870791998347125680093801261322736171904871603274786742423676512428787444440726461585854006280985192269195240088633217156115751670029621159823719423165324521830430025014189316737760747457990992225469564615033594872271046477561594165455694959108261924945067512057192476409206763978554424065112929958984847998632266870788128163316191865757299733843015893624754667646572386424026768847065465774506922047829576356978125146922229879103229062337667620167454924950005719446550704773792224688923061237272672987024291994808826665186314608287573809179911893362924312709707394274912299623700762847766160146466656075047440972994938551737770386972726539411557532982625127633534507287971290048575982201833435029633868509502156042149493687784850663464066694471726317579074651388691483313220560921343480956199878409100314864335724878232179881093244487731997505702274105984574863661095231637328137014482040849966941888938259098230092983291105105148481979483081700477612957547841485710861725644722470842532154585225058084106618461272940661417296895602122606386772236853807204223676658671719944802140299579785463571454052395349314929669787190624509676161859309306139334774158481486454313330242623132487666984377447393011528412318294617457367664610381951324544705311470395369661474250356636993674624833718611194516767740464564662389948154331003163818503152321187161387873309951518576784793968491918803475918758094851209814088550325473480474746238244289209579571235980771064368834187866366989340278700140743560280885650020287848422624134156630681980376842286011301487327816557755866808154197395761316648470802005222548948890541822277508212886359559353401848174319708133878158160213229246686645749474081058298604899913152518670661016885825407463324720334891221693718901601435078148768826308322208254929962624314135248939496924318903525536358043631488471190171869445768310792272461270952773795239165138878151432021522893922969229168512749620573721537261090092731375562463881368138559160619041013109579355523452355789119217474221868017526091144269388839006919657535101917665486728383549357920822474340190231135827387249374390675936943998387617415339521873062377757043826418226906876565913407906871183921873051688076270773023657018677279740948740982304925671852049143441708546976046019925454503239062172758943357262807085012046337895020920540280501470456330788771817543033183077295683821659841381732485312856462930615796687511630616413434867392655224448893893394459537529119869000740572811544937673514828557576482292434180175512095261756856881994771606183275642174685105492995140687711867502641300796381899474574579148181900026920323365790185382258808717868690222525118942482586824086300133589552102419317537986137824525124894296570197785788736863233960961449306966823375379053011636871006040920817154030030344044538821942605082221000661320684446638956751946109394760218351573969221708929496556502658317128509674108908619945318352635533369896856344701087024307572084770396003664418077644660820670629182922090071522841087773826689834480405338541122908361214369890850654906939796908285688588761493451070061860826644807082309714005769654058443625608237577609856049182881298694252644856619179230440258706756225241900015180220870916999862909185374127222183103558115566510646963346028603781956035343669142158967251947478289840178751321366893707046471223122952347604014952572804082969220290039996643234247789081901169665242719278431409653662074007085384433662213993371564604178801159224589802005680469595217455842139123137823509368275132342415596186047725258237943683888758229040256566677255534968256512735267674729219954661324538676429086955786832025767193342496715174464418521163412496524259726951788106196795040076547502275940214453351417764142557170035779872719022009183203671015269594934880660239796258825515544282704889602396276943798235587553752712822998768656302906171174070379558451699448873870005502861097409824667657634107251557697817841783419593939649113530580727359710321277663348276797420359168559436477916122230771233800002701451933905767108758527540355333333562564242243523701726695466009663853079043226203137926530491267617982866867504331241018114196728898169632367935171637636478408085896226606763190979670847975972882579960450203091367623025294125090677175600214338354294208439480451477064005669328141609102663933774579030881818789351669021943127592606562508939683204529688443009415678373402543350829075712090346172439748054393286372458449963460342720173309544774627560472796449450502290827845450153774512217012761969643660767412623040723771820790841943690726411052616235527518390401722897510221654563380992455549300181978738505286301081211889973291402169592408508745057557622816166353903940341735845090656631756999774077038166454098136210939677042913256565576530206392942992980432230914556933062084217739482812737371131326287305733193415204759673487556250006483270645375984379453938648945505386969620103398329809837804262428597833100225307190891361464889071375136103738254252595499108199888507442444089259138301075669821274754998245100295215822839330446730448396265729701096064112461431435791636735868133340766056728168713949367129989176357527911789402197795540289934063838757478833992948311628692478962372073099105519624458399521268004139396379363458726993173797467695990467671731495839412015589276062675127489544076671220543802742711836642064312788581589721560915209437949394228853837824982323064290483887860743189480399080852047716964796438934773402121161061600591613436859264048332263549643124064864005550972506562309151221582346219405716971990311013967670440608902906379165550515422754449660903762725638728281878069957933053113531950942705400628901548809755403171462072231951534275656907311336291542112479379191024580367086679924556611687487543143141591284764249903741492650080267915288985849037118604186110230245199561592683863287603567532235454592476992232050903830043567228997332858503968171881112562013378519230626722960297298090756613709407379851896958027740338211937857376066369513555817008463332903431531754046169112635765434918301795181842490891424242242720836205696502920081757838037550411471817968663843655552323894280850774998442539402580216256545255337306986553932339005316419514564616509345132867670520756301893694554033622252545726714604382952748920642006221567846933317649157920839111844195470018770592588928283185078115244851098359271280184093470601874872107427848827809647071528940547612846677710747788066765752316498738386323234119559713566001054347985578634501246229164701191685681732463060536886639973250244286083518098630708812746925058551572593601582567208984811467397938146541321407505218152374464215924617945491200230300545829950407255172839788938710192320258964094153580961195048846034786157912606334400871860595735061407172069790935046098129969165088611862302371573645093369509157382188399648720716656922697489375754846104345784762705888227013264785776669143711212876788977780515923669901342784039250001734695705765500678979963971848658721142331217510148711417019316221158898419223666750848102148548842698519905211625576475327016374158044014452456838303055565195323071759943831664465736023690600932053581676768248846955470740103629968062428099223058336756161230531310771292511406651383744332901460837332571262110610337246056883635106983236466336981629333274287836092652749037384878585006923844471336615841282657918378196571038234505916289835190445479216290686635517782463961177962026239930891700332200176096808889154258575254740500055609927560465217860727773578811406134697528927731025955585269855627784005403567368188963807898820502294659701210511551886989585872708646644119314725663556860504572860473161908452666936086424960565781108305799656217498944870671420838738147997453861872158527359762119680439058086618438939274838996771732320621917131999913501645112274253401881633930162862779908629598868427125703815369942771302120036719427483722068401324051418193547380206821855232422532522097174315338550466066328929570501739475778507791546581455835271125366264911806859636639003992446022494634847125427887934966988415640943336894917869760770835776020999504465555173927022858706424330232279554993930655322907397632462662671822570639065182965587904090262351095035762243988596814148303750606653279790780669432452703003519031286728353560805927846677612071082527219609764721230310608209459410679808319339143197649581974080861046360783575461316934433835315024659332068359306802443936525368440400654562361358984963187722094835016793351840815659542314856617660435346773252163151501650730977565305783083842922830402687184968524259536101995323923645309043076047196629266336091580442050702909703514253902491477031563335553055245012626269618161407710505036242237295526345768251882811044052866418019770181215847818114440037593495583638658281440287898601554570084559489483351272548720872271682128126632673133041595989908917414509611756494140562318893124386685511869367085970983883145489368488680904452799559515298589591624618939774826332672755549378887184926659152397558299919672835954821059335753304769885314097303570367894421636555543547158672564246631124243024979608285830467235586719099552952840365496295678629030806694493015965356105104694721359035677239041365429498078494214867157675844455741575492675133269352300657795191050930322087527389087126786295239204869938399277638831032187220253294281295090302783109337742617413624062786693075961363212806116072356942513625545168891267117714125650313124589918651223634056291279869648306099878537639417426241082481850415871049912963608371974061044011462204345942998302048960236782138811234389280446437406802231671530036698714760925994519473309963307936618239718578909811101717823339796196337208646072393632599192215273418147257997657740569581022583873885008531114084590570028604632102267951819461671156658573403703631907075383407740170492334465976412613516590204530412251010451279723835505848551105129000132537809655481350692510604481778746761519194958755605208249926521606826562418361813293870928523242951812588666546000428718439718846639480052401741066874479614222369600966303375559537408777178540339753875035606072792878685904262931920353608200070766506104940945931727655376867850463400504739269060935925022341730455124244400468801070343577225488523786609925038385551993385395546399028455203535870245783623813478878320614093581006896894121378663579279771610427447423907723202038849645590177295846569858995146733140656467669455990349320941040169925701407341348071955987129281251176512208235595947192286010325503172895884108565506200419539560609636923941450913154387767617152523743172525300424075992653798192065087972227485816446665534533168527448583097052403602579503228453631122437069222370606442034318776609930977831704889929649876452131078111172033602579578774460830951693986128027275327111256492375762752767517366809462231231823253821098635684167898673206167757468580753668401887253241098319111125778883666641886787661235203768196434998862551978385504135558721654900033927860412750741692902767117871772757952098337650906805995510339259515806406962141038433172837314323860098564056393371561010006029322815308977181873248483842921043606751038346703572702067939585919342896406186307059447744843857777303655723233787598478735091606318477494711891364996370613154932569908156845039727534796515257736624435505107976054389551165355406213282240621649750368609666607286837936456118050126434231901921029714285064241723747176235190480716460504103557795372782332052452434099173136402318603612419411870477613587089907116905938160208942613090023977378327509765586989592054084438536764101710800826212791805419518093726191078417328329818099388266514580725805182049227326751832410894792155214686798667706624276563405414903549589461729865562054184375913866475522200310658948735891673001456233838995112361118250461998727354756539903456314291215894394705784717889167311984485251031625653997590449708649313161699432744510898567818662820092752835250028108733988320115139926044887147825911377522252168868341603402917713993935447806972487309797451615693468122957302004258924933025157391062365388788496842653849912609033290916524966854156564543662854693192179515996246044862017569288447261449265384764236669858489478855089839758479486768144684830088154368837887366237820059901644398106915223753552500249974641596529692986694063550729176395223501662993366602999674481481455377133449434912041414889502720425744155075250081480406654985062611694915234051483183981947106665982028566572045999871070300894838436845909333004359076774075392008141617231396332158478460504009298348858027608363742521753149078224634956251556489000506517255037751005313709450079884187590510356718598975467092996455024505620313786855755789596704512292018257975744333179938495316389182878922737357805859880413731011401195337623989015983425305848928116623561805121854506173500069204877476972867484246754416096180589656799035847488611134921720261954013803750239826316679761082786502934770924802015636385469570707613834771144842141918318200028818624815661140313064168588073158904436604433995307354367040009166027971396893314382970511157517278161264767528742523904392742525592040869924343082002595600606960399252914537130426045527082928642200938185072372726492617873431189342203883065267057987026669174351260434319438382013596833232301393914448963600579181890863311017610262765995638946095460193214293129358995529037411333418104063396646194216404317727341019572460554383934448275953635161241599038042499881154551623468796087379741179374859008920333096247370458415052821218179374836705771568680733404792478148910015186175853682014378428155668330881656229574718964085910748825298389790625945221302326449300525992676301411368057218158794892548294620130245158228615610284514599284316265699018146971462814278274610436333050001433372250736258505867500406908528296651635895502089397268373704969194355265686663842557225967796961676565879458711929688507176005114970922062617620502673502475231251049196958596713530963698202576094896985529013809377013423078086564854145967707067162980355221781294020327936188127915925718043131270596059457666718328932706976098840437445961914166774879856840998316849618070382490205083621802199251736711818816009067243656736217395798122610888006587568389026544761015762506902464288243750082173949807909307915144501446516765484093811513052526147551309740272561571854912937432793899544583372271572594372342849411182937416553931796889896339981392932875854151484167893547945119337665849785647894503583227353402489353833798651442995277918440872393360300935570926653837360942767629754345306069707341058843735852622765751188363095051139828072634415798075866376287923977641488047676901497916749118596388598767828309283980060453030563341639112863646575705119480285171143552669812685343489210972136682318143144083950281655374896851187123526595491294565213839770231847421541150104093116458496401476824554758953998278454365508518155910301613954453129919292755199820004915118671406743037716622981041601481053718976181371223782188865660298233709279601097322030326879140503311714912535841502989007332969753861602312138663133163262535587858083973694248937120948805862616012047354399980133935139304627632424436695958654425364537396959439064572767799658549166825112250901024355183185610490437414195477334663535432333775683868725661431625074458136805858194030011548594898283598139774135806616720506241434951503537892292897466227411165661967449228745228648523402392633509102678670595135592926351457094701681167941765319184498671743647856366467812036563133151961245339339420494460611409759822320454906208791552538679329912226077866375619053477794762912214173914419736283329936406548505547493320999371057175956255717658740329744666946611089862147340181599203734228488610734789230003735919572963845711378102838710800280498302068438117230972818560118318860226064970380990065892514459064942398114611659576623632825005162517157631626688419929390416246466688155829557991956270134623251449886011557456706416555463901074319787163862804612281722682129582458786923530230223449098834021355419281043966938872532218846931951304037084166153060680791510142966653428624265475246266515546565750775818064865247345177983577847316687893591170237105673936264240587549831258813511970415452396288972292712597142608556591410023115186304030652159475257525591084552671197864129514042870176819726933712085798408153791299519777256375987334835980616931260561542408591746607034021518092575871262636195260959260428380302272039291525400021994860819135174021767502247506926074259211274673464577267358494219244622676694142728799040485945856000336515403865052671627337240509337293994816062789312694795486762303393188503577976811590210641198389105468470997953706292476830859836608060826552699754994495822345477951233850152057866084790737264687811697358585486709602052716316419821632808111419463328125507465937430956824529335592517062746775716573206936556495824325165948001395412346357752383772828734082372171430384302378389902801887162200185093336138860205772560622830859181465114797768981160569308605082188634503983158759033276278271476812787739999295659221318954087319722826659077862946016005963075762419623792312787667881666942861030820091669613032975179895031938456249129248887161459054377830114118670996615554930842133794516611905498354291952812837419273586054286217712126196695268154422720630629232254164903638279122887209707070437440982050010691523447077247651908190004216366917271219928163857247226855971231738827486835819357474709020793215300379587317905609342293897525086888510312725910050605644345667574939273864558858869941639891445816782915950900347797158004277698322403835877491791023715972022924339360481192240477200195928738218159773869923845799945938113313500531792971501063754189525706665886984704286849129381513334668393677915851218796855727850008307113699200305874505794420241966991360826169350593748759079901364659434564787054096282329568900850663356900084691902738100112303936370823244572049799807069694610796485116710673033440488850231027777943465134946571301999813200207036011824465429320450739261254426038526093143793381144250139503898451508539179846514938977775944570770494129835322962786266951516568570867923952222187506067030063489306252441514286204571135402941631839099128337559776735956485039880060874584875672369131178734652527044160348993615286070273210048438323052077772238793355804857542611121742049974692173009374638114265586453306614706541802054593293544133190646428439155316118242424399497578102103930370499534695402968244797459051737346530231167135010437356681486344615022716823400395992955584348007392062102644164976644496124759490067324691328859137689787619073572931519588502985936974606175410954955767567373195608766959238781675340104006344490043298001807877658729146186676434124144344855124634232449456521855574130286647265475709531998551222125110123028404292527515537258703672726712737323512437365442743347622801074460763067752150070715679901969953144121074039669973453178425164511157439567085485111317096659688381795066699770772796724712970426472164226876305887740981793615031749773631544316073974926773513532592254365536468708484003253384708816571831859029463728415450910090075284883304750783343634191575237451502068224928643003800600453677061018906765612475737042164358496947423213597330787917404800697441187093589678320286395992386931553475963405506169346450171365973722976047772695432060067911668962215998818542973522751164249250396848333014062669967416086015129235435497030856348029643521525135444446666466112507510782353909447669682917807289113768576809483431266796333750437702341297222268042747025088293870360607632021907705094888917537271285671249067978093672131858844978452255785314513958649479051206104434269638716849564642902333375301160723996519585287030823899706871445868489598874289403483969427076642220094953174286109433454877351734753761125173408521091555937516017623361692244558131545611850679737136021925973200790777201554886125207527490507710066117724792765568331295264085381292064485727216252621070760362619027184345390722282321547245526297935736538976338378263283151785772971934590401133760690787864307562868986831647049851214178993987514002411169475880800288110752077369180846144489373725064839154718960396981680483447777886421459098978582042786795228038116662534963413536936058516541624324804722886017802677157436070390440327508703984840772169435786744805904155117133309618103354636380468259015025427683001568814198082128900803171696207754542880432340429835461732604855359072581354450758685928251091731238241705318495566463448445233018010038176455857370117259792971423584004373409849081917090063044446098527857174525576900309529310184482696368296130881437527057744536062238186810021568120969051883633944120164593006633181721190005737945616281772889621632927391849085488038930319002018067278618306102408626351879060476234841223833390385556579596020615328191703887742434403757349234939386521507809076277003843483478759586788408600245596776122712359756385741778879509788835475714708638966167762476574122271409338556394813282565747228176317937345344254002341288775533173475988245604398794507875247553167649927853946204285054118403468195127404649617956643818603143068066462934837867521984818273548221564158841793568610839162557947667026427452962009021243429273192689874144601766844632201788898691311572788772180206638487101847267503070065373050200795356927453358628080232470972504339750941164016395069545022839593467873405354845139440969612540052449223780524794505827939625965846519728425759821744076929828664358752427597602928286237521288768807214526828099652375641859313149343265802594530772645423760492964816612762191705966469917345466519940586326596106555443725314841598022366178528531642128983829020058788751930005517079939936495678885108564667723371594851145757025076908649946763835986020767246726844386469806192624142316978781536367052400315977417720698174936856210721430288650796292800436226102862107913750263248455822767078779026113829873581899614355859171589245919471882207186886578624512232233489814681216099371726494211868652015982358978631953220156590429961932564624238530725066505910972314857586704050121278741371121776455795122357214146573103214758974084633363658559439946860606031871710658930739174562997752097236555602283229117401347415307707501812021226333810685072357190636210502579492394759110853419717058346001858164550959642616117247606218906905933353415081302520255029870136029145020965913193202904982838477098004019302030450247729876267717657511740935271364696074782061811282325342001930213279844694634286656508725119780263735953749496846735106303702273127811742024698844648156650533601033020002413745906116251581991472288177723300072341894023876416052065801654504879860455157912926545376823879132578474998813861312088207505926756292782662288705344330898929750301619716078869103771931798508344013385765910643933353807285857441943954795914598839685702929042783439521622503301602325932128650648816166366784698557732119498698147267459345825341636013217942225859788451586144206797168890148814493840602881032001252206209252081496601915242432701346425953878087682010073730532939640653963892206748389778702921642986856608069576293083966675440270668177866164672771026078444342449115015961583804357396338505566358935727535010983195410671717397204262368039059973230052420015805037291117972419764540396383912306485018644749880856877924053363857121086240873123347511306892398098226826531287272786766967017146342728289499488030441389283386264828112120332316297493668603766301007406501844465832450155550575879168187537733881450184533152713209472700157237163403873580658764352200442748560943086164407738962138382616851768595136609581783643793416766759962819632354377809971090871904907804563519607594808709322643760556615212930954353476623636854815946445195968771140739391671718955198365497766440555775795730098586390558774211988120942796885421306960015056903260343713837605123979303516384902743369788989367193544699166410816288039468953223292578199528639570199172113501359242004897354670892308577468294833967920547009455593403206371702443591476664445942374812147841545726285516749797698079458616241003900660447457695343382172808619804287420435843926344194832521887943656821229275059033559299387807599958850684225218804489460521394591834730970748926639124074669576476511732689332525824613425483896034911069337010124366615019943548466863656937872772199786496789438235217141377750821121733068795511049187525611120525621456243432728965501225237728368591253137645925792702924492824003263240142488200559108406825516062275530268593298694121314109311837907994123895669730084317028979543411222104897476123621756843924992576143719057799991974198703282857397742598210076812713668057407778002718953458430341574180809058442708947207210288401007458186451303567179855107819860907630945342654330427278651551580919766432621402550671892895155541230477222914494074352140052348903016077738189428405246589493040629012089936419906945821617356593287952885833613957378720708693624166987816128546160556740700665095326051024051042797547097160984280678275193002554912658331767666170135494367330556736439590592129357709787294740641658736944840376930123636338615375261301932151345837050511612894725014640780188338710361239775588373619128293885563719165708250118357175121523359352696795525637055475293485493026763793509579366595996153679995421717837406642508684106201382479270468217233834896685727946692576966745550759397778578187586321909376978348130074749631065538391184184435224562830512696141478447898729910448612014092257483286738173714049313842323839917618089409395026006668228987623280368488079543488428480572833796604030737959348545870159404316678070609451480160400310479086922102695073082664049349307012735118329067174588794405391159691064429738403295678118072699709505629929545950432396560209043411603002557166964444549035636722476251723642125007034761282267680757732055608424782712787122266869892618903593970196074892661165786416508310148503083686280340811361189231161161114537555281510675954046722079442459194414502923603084294239404469650428273011616121343748862662483052235498518302806172947618939409309391607850150321001828723317974077097699221761949991108099260785005993781485908361884892461592271219598124938250646323271412113004821094342250739129064076818384109079553989887635889397408272541036743770401285473228359267965185612472103790596115247200272498504318595375200407096564305522385072602375455173262416057131595020579019210260185204656360945855932629007942117502884135490209846813898410514241796482145113649753517766958847650078988685139029123787378706136755735219541385328337142344375682574055384465538575013496591943366592357988717654230828395303118132508482804633220585091665100505947813308655560088122729360029556884883133480840979587195851328234748031134925237347381422286282950632345485944125046643896320641379268393615153451628884663831148425124329458919995791287897842717239171727922153001649534270363599520537112177412090660896803337976921087432788957754943737422636692273109214350014188828357681926670843320076796345141919267015858270194073896715198528359884542192763545105134648588032603689633236049546274781465841182304989224478497412144965607981173620997182632999912463284118216637050114669570903565480830161848495694945357691774949658603762159090877893757366626042255719365753477534271776386678474392137162264392556902625138270675242584537543977827873194849210079639992197145806310005375522763405682613943130255299791208895500453614059301178378765341558543331983306492915026359277957022537351420880955892857542212772757428378098037948263734583983375572388542067654887954521070527683215105480307467230669525667663725887226105338199509094242352073635378114394624678662136273397526854480931469125395922477745938914489949443985803857378481728950452980792799780251303936455055783001134601758343819975781243017277832079875326685189177516294944773610008323463447432249750500848470337612753379219839943617213592536378458076396262568330217500637959240286753905123774074926088120759294766348449287329914638598239473186514608296995963627673560870037751838869477917484762398937156029375779441138823156129380501516464153124515975847074563500266355946426907871004906849020061665898952724986952646688770314878105492487502628628890353595116271624433890308313445383977204092220581752346029696627413465078970145138041856713522516828858266295505683446145103332313738326892334870313774983266063359115006027094511927017919341442672061721967657116823054952820169041064173802767174657208523044587887549415366131761558627417315928785218186123501546833036406480215017957242075664450056147168695851983274030521229153592466179482293705417659302438022592267012481049333251948211000070489764247360027574443561864132744887230417796091792465147240425587385494265784204032562503754157798939434794298193244038836020702334322551490220963766988573988732857469842392658583246875573317681805878894237323697616893123209931935028794614502356692888588351405068767910951971734703689892228022612321943397495440101652901264921523557183388942997788950673925932468066977528491658658158411496789409561076322264152607983868552540677749526077718554591446256489979848084670441469586233655246156171709514461954237194303774702187454730223458906048862991571753140974475184158791384551573089419994647217761061005779359457187498995386405575678770485186439125770635299542831043846513288333073587027105817052184057682912857605494617309279164522111959713264270041363410805318644662752708572300332804340601559554367916930191831063022595682541422129971066722488149894544889270270108077937389008168346662294065860148356485168978706454048742411923075879403996464319991446645278731572299485468816018049132760791221334993238000460671084077179736450705972414385661402716792900105818400136928303987277210180173016989559250962164500529069423098026730446377742482310298065068724395187002724159418990191449525999414022826998906902932914716559643466727615917039253947609339668052127490725565761437560403080238623930311091227503398765755835631306089040170514113283304044546329464547608718221980661220316999932380830001238591251065368674466467702611721157774927174489204973001488619350168479173319442870460963290711536622869505153101495778653519932476335135860722590948328214340699427415203371325244313598980808427973245401237961515633325557411890722711431500022549492200947622937027022402419716024060240965845105798204784076708195449646649430068836195150963632949857878146328991224073497942906835850499241568860412585111131508675305068334311405632988327096294832335356299264770780169193321852824914012180608542350056991969066137378792984067708120141388655578711323062451070972420889257373389546948598773494932673419304974778457667012129905112006018781297714646920508641129819868444805582982392678450730161317105935041767578537644524959834363378808298024948369774943127205630750075846061854587520400963045415194263023316552174082118672034863454400288673677959824291858587246209592576024570348907127884920398934951211733442510326531908132365382120907778815083219105830555325495423907296160435347009603843811785396149006818877004242671961831397474768253714750366296867586948520654983531729985357569304847010090154164519379662398876433233582726854199193233579330065519142266796460168109257943275956610050368573442105524419965900469368575166841147894340289955503266013885277740747953440382523682968043737528002702524010856801712807363238847414376825070586717588166680355655472657739142495208221337105747780779238563658251946034879001753274452851726810416449146837372388329923522208942805231977133352288116611567870728979013471945161096019201769200501105046373509569177013549929586198507749497679398011230089865435235872868052467402968737742154862668261144754227342050240117339909977191397680956144270516254794961943321182783234072632089859263529977070354652551528471545319092917247941906577990926397533821606691202442462597575157446257066710188514661945201748995346782811477816535488029741021167416660639075191870196611815190699822493539143114959366738932608874586879625013431513164346453432830900999288569467202267528200608196626119863233693266017121731551778189992264864672781321461012486192192662899515079479332636794047441670981118629312286282090567937855425394074211013284647815226937261512171962985657212293316575838632011776944209041214413183873001101183889405745606925374104704462404667219044628184484634131733772494228684434650322342912104235528219440845704487016763536828315433695891024050335106816686635378491843980165666442148924773328924092933723312489625964176168416292041259768088488479683001468914748576056016358920100316841915635529995200186064497937515093305322606771269227892246628892061581693558585496023614595918370724298943989388857504724033904274596120378458794276520757503995436470099837159679264312686205190776480740995576214463005354985763587505887741556740821116576742760489619868711937910253885685621092738011391308807364573014217814657344804069417296474800492075246436404045784916600353439930317823834863944456414619540107062492904229422732854359158941165302973553179010690107667520601515400495356570993891462686895130509679889418706510770854255172924939820926208940893722333261922483542123288709201690489393491926254646623841398807164603182601822541418476625894608300341403013666272456365633816502342856676388292243682246036881071231566705492756545923791077527619324390094291817555322089228564164441530831199508505236691312145882588407956484650151682199206570637234888463884319933332450916867984848792815768588474101822727897705437003793695688856237821219941595954522664609330934653795776717280773799972050154692475942133359103932002854102861294215667591095142695186869902160393967414769848112338827768931368729895447489659031679007518160285598695079134147474665581038191766208037960644510348406961036238128474936134406850576570265812632554343875597483203104609859836771583860405565561655016385166074070474676311910942839778718716851764040197738236574677166597321792658860181857324593538463413060695647599300639790332341630412177957467785664306701633915023574749907658510200697931228567540703058865510330114404445787512171890002622463254516029950801852242388629383326731150028250023932900041144725396894279218625928606068732417539059422504270893592063913800371408631339425445566601716398178641987657962554327448396076034207741749773940302674783437654384482780945264657531705261369748560580177586176235494211722023718462898523576527201676817160673491412589221002134522369507669129327210036618608451356786063127267751118162843886046865386371143443082776513184866901460704121090261045721671931639403130159855641893481855476438420449278452695501800458594623233734425607489687644330025932707474350317484025430107279403376417878608274344101108222003721994831270186795350504638001198183252809783505741617449796913990026148775800628337521426120782323432543619400494142018894938386995543737253372714428429487328712129063431902989283741572384574926747840263138806130257177755078003338379374752686582269914035453825232833494277537973445988929861331044641156174228886837938444425999317899403279047322451062582484859713048182242174587132460359044825706511423201231510021359932694705637432845623675837687433916897447850570762617725725405141494036178501593508419877444293191488581539923413746446546063924618177368104091209572758724461962248835435383305579169800169034345000851280444249596075526147309440400778458183321589497028484924909851874493996905776287143789224072641551082414238554028698148390295426628126477563929193348521707300217240351592605732946114678318062942947675351751730734494409248611198033455097024347685726530176323496831874835834097903225305725646055068768106150855472540632627232796098585559291308240184596280087566980175987715905895792252716352060005541157260522456470450047122431839035611518851237392350938182625390711819928089243562905846448525692552576475082546138650242593090703734553160630050913737971194085320785196814293353219648956821780621445039913378391472187374512775592231674170122874197299435408140282985062284384068139869650779224878637458121363918538383037406247031475692688381586492902259840970567895702678139564026908248600732064992496070748001690665981835535802384649732712273534825670591124783299520966426558582058164153207685581023958001165971418821559979460327438657772256518638090667221158716427081044405621792453733739119097184069663102573218043423952272596503310712867214599781317215805976330957272568316662459430437610146045640529735344204061633596203186008336268813149797879102159564537442333027585063167403280553940561343053368612448672429795904773067955941677597355394839916117559888177349476034055647270549605006985566238886026608158632113702763821542127100187050188721048573185349260075791101655239533442341320439494785496251226125436141321469479772639104192461567870059487128292246501531355566224119803794586428785678855706824289273658630270897837271989019958768193106194181700081240809715816580367991887478231715187081218008775800149271152728829948883700558308127675106158915646622622478489909448617624659902007771136725033223160748738894434953857705610665699295518032055559166329162449936899086559295418765424694456827024397935386442328151040089422087937746018219116363887973537573007727762481281195607705915869915264877427458401848369172184305023182451676015637927039768419896377685810403754751460113367412613588008510977534002399199163183114380537690750720913517555464736128315395272647839866134231677867372372202863340177143671825643207827822336395111453009160440025854844571728176150846592528660919511119218847446582133448555026680076209309556714614057146270452114870396586028237658084490055064876405568288519190024255712241353295769514297033513519011994891613135058495981433061776334856626643739622863341249217181584983164490646257085052259678728512142117103754054962050029497602998391274391489559686156606370066197007987977358330289498471730796125338700131020788183321506870080436079057005946340770412388730488879328316080960878362219243787273095950346210880474185844597519498957845028569930771513253963555171512617945650613063867680753773562048904141935168012538065766622614654168466225931845620674390818585290031428981126998393527117289429814539695895252002551514888146968729823464728314496556600609365389259463837347213073303904339706315687562713397852667017777678188459893925352075825825650317612351442276934605135429124220748771107268831730072106695194030817673126974502465392764524265164267737508106382007790729876240322127763598697059162835197565273393801823708206991752855464739433397935405461246095437339418049137672963278933936960992572034566825472994436134004899185588752266617172958861463267365145273966795784116755427028004699466825109379227213700962424055908343428522060612155983685776476339832429131182732913336570322953951721728617839074629885820434437391303541003429373178637793411427492951129404664692921602993465628478892302992770144734826567687822347639768821980976759985915919566605956022882262491720755560688549323072211488546758618029845084671398348816725649257614839766844913634459084389916920099609560223158886712482264081588950421613121714665447019625955735402797372832600854996746286093531092812678997183564588813534233322752758199866318297707284325102559688935248974777739720565560655209312108865485770669310109998467613898031699299262604669935047220872312332496000377664493813296742094301425225563497598591289398172194800270359860924711041122107629196211275985458955367095031499931441166511412970054304296189696795297025137265142518989980522944225973424770900890879469123347488970252652732120914832993585598040639953534985297244873439202496940586015642307178965701184630209936552744393150189461141824627816051569578887849123072454242505186231090252222151634689105837302382869765038538394911475398004095343471162892637236212258003360687119203725068146654738592378726429685448356871904257895515268828920333204322401322517563213163036467882875271128211120858409869700875288211849364269907154970774222232993323539906902030078092523130530876076274772588203470681884222788731601997759910561959923072673919126881156832041705246379923847355799813856643325545593543861579652308290158142018588306706281970341172332649198741691740600924588602308494886732993916606676832653098676417040602707349276250793420873185821784163206900617116073515443039792740734155656277601524887103109489232786130290349742291995326817464529333424909706667109510816658418651133393260693323773739136200762759732682333797802653441051784268914597237794815010907652429022122463349988371808844086819584222269915165941079639783194714252938077025780059579121542328632598106578527923522698278111534649823275895349403455705026649220357276435109857272034570884197352661883382430294041698732341589767321764449083751564083255906484270349252731458164314238350108778863459216873217241066403895600930522496623815943356554125121411144041415048653760237218169035366268203022058427853426027475766385219807321556383936630160395827752996471944838024206070418913668483426121665749438228136444951108096090132948172765005506061607671886593480478798774870158681670658527008779579593046556971166109635070869052131153722624974037844309451066712889299301588458480246130249577189985800330300420748274137120037297483248528369982543503444513206252358761724585888552454536388227898289651063070520419169846491195653709741382870237653757137355945261542967983801041793450070419073947969473073695801879765756720314589449106823448072468962551911144498738726594705453357933933143475478055077996723604735448713435612584875108545224282371477810337003558058022728039796650640557658998124089516881918670682779935793911244900201179286867856190106255903718957037782620853824237063212000077994248440637830999655093857531283205419382924393524151423672391259327019848137833406563495817226785290631054596882859948460068657357426613914557338635556561617393870026876277548523938328438092678433127920493735073942840673695251571636648711241631720492197631735718070216785858084830907865217328078271477425014419234195652000295213985227432058472762657687058534677341956007273776677991633197257448927987326084972725020144084490372670269670870108266586779431119353332749724257527234018681456673318249483015538132797974585233517130647021244171008847573117510746602078680808325648930247584606751164231917541993033381924853660253986683611853265570312166166763869411184813968937605015275040078905467163398769311599706513197834567690741462464698375618334016693567606413230247017998465183897976775406362461261290083797055473437198551454531612805997053541410533892057090109727705145271064863436205095911915714043225556656100877198766952226034481598508731119660612001803331856323361611878402363731371597993448582960862079691091222476350433776173317666573274365580885249543355748032484488882464278880393463127473634533268276566851306569865015295633436968697428460090822165865251624210971635366434396219805964840232337761438088507960905270705167219817478787066809651503726943636105372320309133937831324386503702662980990852293366547458633794726293919343329469589338053127953771131593441852841646794552591718485966646257578685662864977498337706781762562661030337686985900372370944519052100545198045060515433097856382796187553855598982036791725151111234518262645044268183053329241041785628727046612515192413886067006545011927642236588318585491754239877408713065554112757945309535146826396893900214725068995931265594150707315798397582454312665781966485758296234338125889867362782022607448010373324953862360679544899100397865770550297599263452558329061017623967740889693350969214919026408919276663445288390442120888528835974014173528047565783712442340592595404464120305615186859093768396611442318596293095204561692107698094492126444310365669300048518941560705524431305347483639533177076116098846564932482514748774036141373396968669775502606862071625617188142018839940576397845376980261223855960824428753799951387670610507320852519078287447168048858484765453111010602933407484460711261162509101886774542690841691442149032833068106549697607544311892674279243111474282082689672182250184944748253734615119199764811276007268468742644064092051273948627624342995982075325544382424734869274565677126007567617524017585268903575583556655929568021655877741911423369479733487622679572171582430664941930666867820156315304039424006065687322924600812135676900584084588944439784874772507606006762066199583222594042195633099968179990370137226720891100505055716188461879999349704966592964487746991771291994734155799913268921726401891138193638527725195523500717622903278338543416382500418794920295131230788088287627517104172637199062551419234517023828571312214229938279592569278944401091266133779091514088844528254881200259899473358568479820446690548966584760197639960395966470544357302339581935422052872638768877863735918139230534070541808505558830701129692691348889627450124879519277119191778858072855658252934703413783859816272839607664191108015261078205451996522349723356182289453002089359196226800269816570079355780994449215048885524663221771253458773439509801639906912876738602683656307137391962182416119854724279618613710506777301259832927737301587048202831395432834923832175985071805294373224696076699776287909212541696458160437820303534943091598252822087335248793004940733743019868670684183131141161528843557224873606517517504378138752871035850231326378963214058566532846006062580360649057788135068622994286180458527017507302708280657144133204635794571262676041329705384485840367963833080149658431978674967569326835084704381071542388974428249829192375961801237643990906559792532661777022901375889839044546309512791956888826160136945538977207180444539450958788864197622164927116828525407764588385238290170304322293762142813680783406883494151564341375246798383038211789640861605425952205553069836319180578415111418293802668246442156254587475750766615526878204978598120507900009475942351026534298236620589161743744208823295354606025813523037254096709708463283560882484498510392442461792215574855549876469433088407042892694936628495337189762149089027366407404679264181160933550340468784447034219356951189066343199725050261584764360419135253955424828887871635342998257814958879983983160212337183673093135104409341187365730117784088804756933788255303401292538343515950626568098174478093003193644712779276914577777174919152526024989285011608713014835939890004571227913057617494205770654010860272443147754823596744136980639613422243621557358539787020674935726618503271789133182355943960559009962792935854279187755426645582565119888134919319610951974188818437982673856123752021061753452484386804296493890760545620690259184980383615847871347880039537938454016651397330005082557876418101675485469395868403283021176080769117080715360536299034228322143909146823293704778682359950058687706643993808047036938210503520583794262806969749444491265588943419895829878382519241843638101737515942984116204359939401991394564611470789753560100725884891975624294536667954606392123065539614492997669292148985554258231064515403741270471370253865130071009962681302893196389705318222914412682307630981156405288629857428263385559461144362715851132027424173282855313619280180955396015188459436990126817482094784330381828199438823750337771282516338646954285968044203628810137668716702889154496296797446667137851725207600554159756907928491259733216219596078059385012158125680478114441154596310733337530474326331385014887203290155655151969654598932580255188135479322994328628773366712235747953450578386180481965542902880640143430884168775329852694039906926112864255798234163765409794317409247456247095165114989200026681716605388972637170546220460583741962059588549961771033687621220131696703784135051991247424918413901284957955781833296202319811177497769480251816050215706221123062110663765032414343424893742924816274666462084359778050730015691314939756158852730127569141369042321988031911282387324859562619800513932747252875236133905453995627455927889950685745552821121484100375269826885562743567757922285949341989104093566287210240796452236353395617120774208194590291076263104552022136168287592236309616219391768113951618995897974288380676325227347489151785303101802712822293584055562595972671665173136188233022920532172138419097904970882306177243193623667414868855965978171887757520727373745555144874501911075141982426564656354024878129659519730578559226920746672960488316918822803719737652477610155571443886566685604070370884542491884189278492549128751329169578889360063419987315572516940382171211683927877198577872108586445366175394045482206415093968932468676878865543288180910551173863828640095013476200280177444219581563290106870310328893398483945120574768139527845172466436797318535416772733860154055105161006353332900852419822110151182890531090951134243820726807598552800261759636562624713358278773671317361354295984164944793258739192971154904245056546893077001054024770257391807328190808412209347580037713369896300718753270798314232532925924717404084680404587645376600109129959420156517209372128257798741940246040129252708068084354802451711279683306666493563578271000993695490113952077584784262956386623128978484462241139161487324677778244037821687404696306652055728637738832962693048607632122313650918337652035782200928711868807950454221768901632812499743132287199989717728215563281390156992212163843228031905960315185894613619589011856354524762902545305222724916821607981159427539505592633735267770385449129725728707306407059158244113991263334819695493694611800906127218628611733173523024546196163409888559857486161486039848213470672096714367097087933811171786736612434564872994217986240795027565834153711830513405643753219598629262092142056886112567658240375971812345183340242517356542706397091573794460126091455635783901022816754300279138137795006123182159370707476812440636660046990280807279174549090971533780454123255204646791985124522611058664961013109327167976247203729751042454110427620117533820860197183237103076241338653263045700821070297597449520454541197149697743468627937579042570643124068206247755201172179668060178558291921316794728962874749299976158648923706652120480317066529689689529657405828522528626803063133253814207130663198469059884602598532020466710714213907729642976996704766385580924399291684562199240544904563946608602088327166631664239068699493561416620729788872228127565359270230082958261699194633431404976129744514227203608101636938200497646882494315610530922610823150697826396613442514687611421523925638285542556584239146060509608391928609545250766538706348396046850459836839374150694120085874494709197320597066875641414215217483339606042608176520012612395883258127703446032615039275766484682847742322480667418679737969539103659637935132602432817769886179118871014970765004578370168406719837427287325135369825410589543502472812658261848395055194557696675598938343997314725612451084076957104779757966350910006495414923799872114581325031171328907187712017552763329623943884481708270597902804807434254733764432264549708829971231792999192659733222925741174587104182565342742599501396681154008913352455985762571695205919689915893014821145891695770284487106579140346020117606106415042989536125811959696069880633888695626531746224780601184157550894518421684051176501520552954098881410830276294940061175584442849548428058445906872426242500749809687340693725055102776224560607183692127596970294119108515060144122843251316521039586566767084357348905809216775310893654670408294054082396672122898276705229197375960018428902946831688900129383019459857396343977002410229440112238955662825347230516025039187109114205027340427806919116636547867316489022322788397123718686343300618912587660581899496786054232370651459575188270805925540404996384923900847454162603422404681743209774931902892703129893562293074272292351388545571545749662248255022175139389303168459270051515768352125274496899919981987756148216881807305578981647003810045146734031384241764093718644739698920362210721315991383529052161808759281656265248884762196170135942065064027265798263456473957788098487326331223752323872770769446589472119095549897726848845923249424240296339768890673450859327830599647782999274853457567739763852248485047150170076562102144206315717831596938616366620507540513711722022705190636255630747933867016563596326620863461758477450271133543771387121400732961706358536339365630987191302928540935202748018548064111203171570467126090050267376914524334460122703201361067479881563439258352532559094976156915416726553944751946928690696280512656437296082786592000799590789442235694147495471992300130353789138152274756946005800812590380600047918478801823489827080512507194265035896911647571950867903211553738912435420570399237907900837294345328248363369932079718129408534420585691520444305973139208247176554891562490320557225467424424520964844861059319843380991921494515576494591375357629274475971857824514044472234587119122353609742394355639584945963347218775670147017118678874090369886138659376800940452829612419110069707286564482132544981037685029584792850661001498083037113048343564949246010255510974765846034387626207789111759154036913739515844400517507392248955183432472014505155237938844388356244289705327155045797571779035111791772517623073777258786682228322799344360137255325583663301607751459102761280809337238837940884640592863954195570573905256686632618081750196294250281011507575288173534493732172847582541009017724091624724578760935144570964887107753709733249784184820750473767514775722141751479098418617161599407132577950525240463092608375303530641240355647989952828920306616046932698861480547374895198822986029098676969931637036833301958841952091454826512886029933777263634825455577431197397160849586230429160729326257664603178714854086771763247003864776944826505597029056650013437920847327260746215320770420336231428801829226002625208145868504034905085916887175172392829620812028279496475415148245609332571019908770588638805587031753897205547648639713315972910169708725740520035821354747720111382005235878962764266798878977606452305358403400346166522306426027544971579263325898619248661028950100593599973509260879506953164246996034107680729523633994361140220258834360850709433581068608572198659163631991138499659096899499221063077225933099824744678133160353252929266047247741819879783261291934060411632660848308524116629559148634365249610768926348782016544098130650158258872507941224510525089834707871588239295210291966280672486791724184845533184018701906608736418527762743608867370650026917010733065969520408406934624784708680471766648068469481658206535019660145792435523823821548695360888290360840501996553405234086945394259878683389790529611618393634963106022508216573114531617237622989020416696541977766706796434845923380702537027624666133292130137730786578925120024848656475989410360334647064169525830949183704024791144284632627270067287142769490085598491420485493656906820231104855126143356005926166983752571938964532844397274300537452335322929773521084242137059502742809944052686444265618832324920152164457122479318787231413005058259534420124238621641428678577448870372563118879351286279600900276281418946652250384902354427861426564574874522786336388655664308188262009267722452388785109028043562733132795893033541085004617301950320401045052723085979725789263810866690363629308447660470910899681824253331531187703865003809737927481825818003718951109386342589681666184918147643536032518512192155520147288057611271197186003426564532407182306348314214078499794346864536715329362250465763382053071203285259954679954037287418143640675270490692182620455485231479139389084502078870477151791874180192394555584020004068491350391968651797727248170831233873987473006670050401452455043972669496920902228050145069660266342714648058939764318068075264367972220076529997181223515026270121934635469082256701702586715488209137058749239552625327356305355110894719516427526784191771752384103917828379167643490786403618386511993126007668098679988740649515583054510632349525535025415595675764373798663844474418381170145217066958774321147601110160032740263162221247147195886690044134845315412451998739952382998719833461798050913457082977659978225941461717580892471673265440510383308792285688217865742499037450408456589405125822021582000118142037078005622695954757748643517384265229608818146220368288726420056711218600039003174219160377911375165684806320439375914065315918843012029360500072386609025331834748677342778034808250394451923205858190426625041624840277603797782733942224771258782469206543309478159295450755510128320874752045241120399452686733246227100852675361629950761926078545351118914061571331884053594673363065667477804652715614219689552985158392844248074067588836404975184551719527349168884913282820766190257752469450233558654000113836396491710350533942849763933787432610126627173382499032925967714146588457887417640098758999469959157721277520768690208091600665636226930048464004396748186637285431144062901123647370139655564633486878683087611874512278626868171212162375158689194769573857043831198652822595473458678570875310722249027351305125404917049380348990624258514675237519899565067751222493233078676527271214762568387648583449168946338041196974866441013883953173041470476593924445385135858077376933443140741981300550885925649278420739797035266625916113719187080614589102828821529686177883867352560977120126436755110521327826835835937090174779563937840123071886978405667033703948863279044313033248187926750454562401526911388008416682956092394110831230860419914665694162383019657275434425808683958287756068520012672564308929038318724731923866388567790426458871362723090734962657065835217223350624795163624065873350807615646511637498634205799398342047836204043043126695282585664261533102469218116647708242469800942410466305592163798099381346822345170901532998554126447474529785836098953061709740683962222119334860807890393346496004853101270227669676186681638840916282468176786016518452200464709605119008029533719111682230159286930161875707448711464347400289034562306795814788543821436429979012635795935161006661758080651911558663112124029552480634652521501090108991285246579937524271546304470514964221420360035136506499170717965457436085014589049811654345709547777328585042719153995466914166192201856317897098607425096267551163429909688485082705399433452958195893288314007478575944744506736052642664755979849205868931382040044422101048104115313604407103406047624666684010820049363857434766060929448661488036721145836857977830361120703487792848951878964833404979458479389774788219693051172781185119950024302280393297130102074738616730894893162054901260058680036204384966526581394160434429137465385206168934010425269013530936439881056986811290884260006983863688189248264380183032910509025356293894365581289536800286298018715092379845558702472955018668082492503293173222961197807029600219098824714635733406379245793790168506778420936990848927903004609488001269630081671792856749783300388246796948702658708155599349033362398028902318348929608884293753289485040111392441185319071059343560493739255363954003357225883819427714839118995493481657172884258174765315436614848035655800282142591557679924558902498121090820886598822041742405097275744226998089655795412790843622450069992883270051893647801961492946461838352413883120447845093858251101771423230274629630273898725334050988677665833174157516922528271268560040870967142487049285785638177343624408648773145126129452911194135383519065273121515023336298136702594889679741830747541257319349020852274071319531358010003475124708914909940208856966241976542926935659182170206155038442917002812387547465674604028553257423064311104106936473764457966417587708467475072249400099984624905579225989742136461691323937144439185169288776542235627441993670020755640749037604174653769438554261781667930381683249583007035673808147579150767803030417657268532844534759104063205004999322768783751759480209233302844261403337524635022330080658290316985876630509322301542185030446593558393617554844743905607034772737568908638835660581968865461840725515742687998395357895893778235052248168094760635731121072442138197717565762840222977401045766223004471651643608732024600272240508224113570860165659298105103924025625712061383296123504179509542274091634142489344537056871879881234914892567380767984335217931375341018865030138266826252327403986026186565184089573295528770811565206297506621792306741681800580468541207801041108743671160948638413867680576881798354314836828832226478394728684815538740537873759278668655198432274691760396808272490132699005948899224292050930101018396429857908906550178917448191642861718648082139883652212694082232817494792327121250388160407855676341354463609505578094735678324395865047847943939916402970797183603040536655650036741174034548495776817220512053638012106733949997636380813058724511767841919564848578964663083042111388209077769979118533416241073311353452405168071275050748748639290856950364125711618094045548157264935678643904138630051533521513763200297280166421553997042327007869964940104496107278620526339524323310124110996917212840656635356551726502085785537210268641995027062224661322423951196767584725942923665415630899586285086656226298149612388430964517645358144112617121564254381688153544184342042979707975413080612382925236922620124958422326939482165100856040019968096066658967399992648098439576213219099979416360174815520892550903269933581075708119832757944609214793542187840427553995384368271007137304111681087208727966763165847437699872358342537935627776098169119490703979004525380858966754508020340244551272103573408273017976189923402364413848250997939839170644120940440362346930859187135208124019747576045216329711054609190811994282133400719992995007499260318505043622988311226814364060483032966680443851122916047025477419771482516070289702085018191119974066299890777828448439862121527455750788998456019823709776796854258835100282760998176811594269837186957676583027806251326726487037245020181137305657487038634288885905332310663264029087344430642817007572628511079221104887832529964311322258050330912102599927422900232469391974078088997611693693677821047504399314928995559840439836618881924041422804838155847586806434325579196086926345900540147440681732672507597355446221089536960265013644416074605781693239822289309573920971157263476751088301898667483505724023544531112598162271956208033907266623409798589781692737463460018215858364617500310025831005482866395877268484480315037633663236605565086173209635910915953685489569020524544488308372209764363335701970895664333357706552422662562349780720211355825571365519542513715217935971568580005124931432219221442341372207639384721980109299918545560587868056167962924623990731712376368289104087621953451791999644815985801014135505002757472561486024657101116644498387046942612913965859308615460451702259576959270675701317117119993152586381210360805903203672960200630105628059371051005963756279521680129297491197817318777433473906452756280293203834369610332509106753812174516930854057658789345820356940755602601963412146578314433702091695904404016215146270258782705040547839374664319397036199702669210036632370618513619498775675542802149566259683024837406289474699345198253793804821630475272496909980818354729831685116553725003053999479286673997228962993585336545876474373631819611324915660457628191427849950138253692708632655292917470012841568108284193841529123873009850959064092400484120649560248998298380839024419646395552376651363690785599111159580358682291136364807352859506752970112404529023776059284553545122415847656101718942922285142088819705929614855753734434749622229201799135276390036146880069776782394081882895595035076338082165278910619552910115714484029057818395767437329137546318456417448005609663979520644040042724785750595666798442181374684505948029478525792220557816753922530599501802356087531777188123743851093739863832872321818418095448138317637644510343726188323931427720687601132495890887563895768282056511404008330534681011280441069460083803353999274182036458496298620665144290969299988413060707161449343950633795066660198964692056158835890095062086760115681268996823842486619723131286397936939949514825555699600490118669935660767594990629509805586219168516123162356265035852475226630467269882995670606922379722872078335280605703890225330200746670808801873142490370179413619257675310534427555451935055505096767167910255531875188607509581257262174667603890305376269237097291989396521714746715810435535885751710102420968874496378991760861726461498548835817056803736521845980593549605728980248326360611966096773082399615172050684875466967963811297353689037720837787301460219429849261997545098305436809564746708407993759548172082167581621693925620749182661504711378709774404923094905647305663054169018494554349740409582021251624040536898135224475029368835104051669088755633541322873722904999796286504152535718828040487333905849720360254807116528586738807314379266810301925334439534417193853971502040887552595334883642189993538346203921389991416088726752287837229351349346087819186151869814716968063366455059284773573961881947872726104850003215065655388170862966432204001046042925071969754973578423832808838552224808609523440949316410578452342809487357180425162727330387047005533098600888762751000558836687884728193317187708586247311290375780156281238361607115907257164596200451009984314819348384005442653217340685633242812353748496633962445206842432592059315227496823749778049118489888529934158396798879576439340958240948482241883768423732426791959618657832245800014977268626019552722510142618728114303312413908398439422995624895891300400789007840353975018814419964444852521778696784521532247853198634917120380132540891267162984021331465973886624231028866097199335350494478056131566038058354597342789360595375494681358541512445902835612134733293538739313893633246942178469112035492609723943960965254383208959646484289112580548084882705465571024967843411741413828440505451097652838902286844905241712963687357411840283251430346797196956561375789073177832982494843188284959924368346604162259959791226507488447477114708631695104454720245882711801988599133273775367240163325382780935843875111798461751202389145766023613394358847043838026752030573296293810886590681698651527952860227181282322805097557316219983744311265049672000256979751155958140308571594656198234643522505522547727083666053567290314009528024225851403972565635490491978112873750976777797966143783340249449343735514233498141620059799342824401766881978014170872951752995733069574929138356929269194534480295770852962143664075827082557668326449605139850897869133451598369737982302715101897389032524494457745328749963074524566542803950651862096380587089059917082434430632713471849177743661959927706685814454676067188044858671704809188558235480514470767325143435302210764580828076260572668158680264320306789348392509292447812141305108541910841779947759857506927349205466104718579859368498421371436995366432854832228673353764816085752841950766934405272376788867332311202668978371404748276412392628890207359847940179457860102481104605877273274441653645553892022979404380483658569107818512672663254192654107360086470297716543282313402540691834996292988895442225089288291231823492839401732515942599767667043745943763206265335472019605828637587296969650628006058251693914212007521029288871191442192080927335890610627458976815367308027762867185544070767164239672611542950721332234219209682900402577978401520488454017107412245065128436976549363092488938396163767589521902984544811812537271714421937919184700758245638871731303781375208104157822159154159161562525031055319587511894423831430941998717601919643339368566241658574643897150256674543514909091837892240425715279660221195615587681090263917198158315048805118623099117062043359276174140895450043642558363963376276127903348417306958493651531184537046323770929539372639751099448712915311473840404174962560072172349269425222084971807971441155227029415017350144577288776555618332306225724688435538209746169760434011393719683658022081370398620901538319682919088484627710134592098077520180967475961846100285558046804959995045539878030697242169063231634385040549046104229662329088444045720712783598606244570215487154471344506783588921336088910120291127171681773761189861352360403054960323547013987834009015778048500688832916228058578123804845484924698562296699706091716581923236284932898602396742945690377222535259602748664293051724338439796410285137408512229051415664421132491774990877863995106067847597875056422074561830688798382375599072915086124718645126088570664866238177442817037011275578403634434523593069402473265765134561763893549171562213386535834257628299354076829611062350342855936415749487565268360586799114359472742355256438907849003791031092336976966793470474688444322559767554157796240091471322708044730850098049982999282796047922984393156621802284299151513449900581768685418584953928241215950007672916459593950730876912386312656024688315215574013995740713631967582108067665541420543303248047311408779609485923007061681077241811231480634160301829601606878291720899381324476959850614029899591895277681311947892333491146927761785919153094139503380274559777945175617001812223271513026373744875761557253028879764926507543917923144838914857157022175301214982083921578120122514848186625866382195368316308902232328787680257150696171060249543540973967367980851538589808415391339359387856624023334222348589139756516564242171190190079546156321919552705948084110854910934825955976125228879000863622547456716097058806803861359348736540004144158148000199531128843263637100868838987627837500792509794238896834814610380613981140715702509974165887511513962318082643747053335176095016845625485390793030319182988139507992053352463239724531836119932217756662979546772688032548808011227005990630521100667136604753553373350010483082390669211484572477845410082892295255588761394871233348201460629798541721249804100016979118906986910385596774995405568599869946859551653710792716993489950707771062191188031864830180645141724138265410137702734707798571431978297275396741707946176426825331696865823379258643642371644162048259790436636820568637239130751455098813404516774995940935416886265773998069769738395176095796674450692827776356728029345308252855915638245645794099483021893194164702245944394605954104885671397723438205926831081592645490726904993131521189607635181156315601871882029814757236693192113529939558623730459509348024597460796148954197693698013870354752023373952820145245706725861601340817470203838987561119446699345786527949853528643403791525373357284477583477068819534541711044900594749444520445926841397891668487788200227457775875358125779959074904816549722324854562133097621544837467925573803596242313856396195560412344168539436214933578047548625624033313050542851777070065141566875449642731706921692555391809057808688970536615271874733841579478507542085627964144156340785447220928552930714149841880752184917721889009171088889456084235615854551127011865618730947613876437555261756844876564660147002884555894036425928944450468167483127800780407855945220779863354421917660770454973119607753142374921281091231185429543972180500668834402768314978931291911539512853671987555654407921495629453446430414959956585294267869544824347150223748124461961442004647580120422910454962801506532849895779912928992871736320191812872651265929812019361274650036964166876986426226092377725027491520478657186016161748941050082275191378390140082194805383788343439253343147378980916683181855356770881338423773169687298296211050717193730201591885494154678818494960655035641022025980493114674559365522888635099181341570126680632741776248621759784650166061490289199998211235708473630553899842246774348848278377437809869350779101088203473464989278660501858720265467093492905889495712766935541893906491841414798288466974834534278488103196509520746718149151573796048534629493849319916423435654673176939512287761996650192313487906772993040901385396494484342666499841506576017312930358285562836084425386560060350636502355156883062257233588769013112684951034551883991829102446674526047738228077857574298149612299854227594086556873878367664781105489918315891447205207139697581598535916188926378606373233562847685924754694161645507042385089456633536414298599758593266371436892134586081880082440780317533268901068818970801842842269474741780981381947913587909788483260221172039651355651872435825923370527436791448291526921741065720352698051493457622710473845814759016706228704040191851858150470974917396782421930261822821339729637373061063327746750604685850056604085499616493541211406298633249333483086280317394225600662401112613301777396999545848838006998170643703057994594002503123187422107150059087276757762288829037756436873454969684283837189702043003346973734148047416979522249583915221494306914649225719716516260695427189774650900821399724258000670531600943866514428172377460783130983473419511449533493369083092383253403253970330260278532472200368740432358903379991581650279732794233123551853096737349484328763717742993228028979738617132536051090976014789872951067634609746338670179766370462134702741717603430116550311197800590878609403993522943651776744644597644877489426500799616397293674413509004040885954045237375161566835025958512843119964218278707523970588121375584427243151509016359986977581054981138183073296583252467681888683826624710330626766716721181232406157967505029586216397373665411948792993180123024549919358806881216333789608386551618957789147019257923140008331800807339510199256888575626744325678653451471649204444579994064873147649237450729992952157895081783172545653906744318437905451124652337142639188005092909677343383998082386833222071323599379570832940133382609989882734988456809127796155574612919578444912368358500247421615990791274053005758318163169108597019242713893235691479425090443619949948136696442029666136035265612966554408857176703942757698124618386057776433098396335333439925628492516762810916830770363637551953101361888958458341906672211480164118875380278512335715117267643711300312960267153840791781630757082529301482388844593874749728469127789158517161220840712214792485317023690780670691643789522240956588951556738165401733422417331948742185368846761919005718556138119658052250568220933527935302607869212988517662356792829351444611200782822288549880981399978536006751455836011424075058917990346071612924555673020842435184360881292624379843663532414151816520819602696934077708976998991458808290738192029575248895854991179661293791834920372341708517011863400968057336066331990538760956122119325798662288803968418268001561754860620928475180763967787548909064653232099978407202206225251342066468239712561050524956483704761436128558049224866934303089972774095310196634090245281132284313822752668501254314153626286127293268149487459261137385202464527614985358611880671063119075939321586586093702660372255714195315649969856360011249508743726194363769169429184727042406452384438398217601142896973716333943023437557752952547686440942417339084988302956658125200999260943255969395541804750140381918578751127971265371204357824289264114902341794501072172069917072960623977360521818545888826007914294176090549382038515759194769223191349918833566022605106871549257159009291641308218111570214293532871873342928170090812306230275736789442807704370386260305271030221210976856229929897896248982420030825766236304604980069525865824386182516140919549738571771301540855562431009163418567629953860171848493936434065979446611772369786935182818358430484868717028608206372979435581676357496727523595709236990068698756121107568077188683105660039473890593307818578456046156617240076018512514390049949588112501825486577909079999711916975227249291303664696089576418141085611371517497270295634136102045875914722191152106170024509312588907251283842544584421180557898474766033274265253364777527544069893732895096421503070944383245557766671616168825643246397512946800500830722902267710590148061167110877528983201003164287832570893427266734422643220012615600135021590723596646565529419846047776153737376264225556079740885070205514870731092877161318780338927485455053074549054826048116907836300748273089105572166736270743459829377827195293804251094163408036709893255656389691129125125044288897697498802365440050198219983047915194538679142397357947329461021078213607195700218587999057012891912736429220966490632883317279306181222682627922678984175117244317262389271590844697687392970068891944848949060434887087225770943997648998179785205893479872536336788997585816856213316269044606236423160660049290668149260926137091747299276315257482234443551177196944409188954222569978986160417017359615948454901903263842535189925016095030458735612074333921976319567886307629552139120134787227773555443488947584915087710746996587452118792870285661144654109191322919886620052249475734350030674897306929810867212913362202175061774883689418124048856242761566836692994045556254816196076441929025080759426967956049230233917003505109582552751233420867486839245094932915529513534682641321117901908280350561862503578683715844259840850214187458445692255186050589873506415608760892177849725360447810280837848963449124482737030288711239778038472150946781709485240880654631433160946137880177543975831879625856710126443947130975156895784981084825803718394801052115625589892263794752690590875247343102273550266923135092388243275690052140141969482400148935137768374859348302670571810857786911656516341303500026049767159164103713161633206772970980971175522511080832791105268674598732213147864203273840573791370492187508499999344125080855208534535142190434460197293551574795218924836285659223472822874336814722121110633110398913960339835347693410932389193738186973386345886519568908711442298400461379688872986151366285004135591038723235387458600872255893938284762243036683734687366358656353644520884477664978009317527201836636557003859165810606786413026425195851526494144023308989937805832897958091609049668779921485048660040699445155966412484536409919230605789005399561677596011134600094404390033756740336477737834975656338578586819102751171330378878717891412553254223450679474064759995387482570410222450555024740117769139931478443125305324315649349216231877634073222978046585176225657657111174278928083725779373749157578174449122010245579828435814783725934808102484785540511282575128990045851984505023684953599961664696789169958088871068494562622988253050274836672037396484388463166189447996480242565774338541144876508083800477147799107639133308277653714933636278329673087475757370994390092419205894706079719488560469811299523399803033885468297445017663501746856266221807825337562103904131918309132510980207394642996228928208299628382198635465131367451376798706644674641756833908376609799692795542520508235762336290121669577246975621236145385243172978288251697599189213124702841534412776026677922553426828798375765776124848357739231919236297833502517315470155478267470781526542229525333752161171471929202277016597987403808730559083967994127315393701057401696128353898477996808713222513053878419832961908572494179292135153573296722213748726852706522230994459325624297688541989059002127722259350006805199434675557725333544957081869891094912008975347692480752990794611582935043713517255566714761760564275267207677327588188515942802539036475538154385358635033888861053567770372433625246709800243089503460262764943166537788764350496986955341501392968559414637812502932001567376004831568498461218501702158185614444843161475498945053762855616246274148031085300813298289806629050144301551505333640260106856156288988200688314455968596588921589460729435311656442703692708647389343254536489930564280291517718762059876408869261379778493612785153066876384810183194359919823434047534201327001664907178801064431775853746039256933320943051071800649691926438971168171495928037414788531521541830524822111101454514556110169678904448079923450285335305507076781187443572835084659884988590141522797067543498390844362731846082641652955143270547161658277515919090215383798654867136130903220717900936634451711784065018064200576917361817492630587606192813211834393797515493438447472297903963743690864841994987861069953461616003337611097116574937733283257296198064909138902467310177698487859567025876839192482443874890801647821547716539960105774756944947467066607662149969016406937814848626691210100103342924766738515882705649726156367838299671770085188691327710845495833196676032703627279665107034105416889084836689772057206194050400754723765461308386321271761754417792351444776005033151507564694946465983838687742036476522104783715634996193013712205349646064471474595066277116269714243816332148843675808673264556871841423107875509281920800276454663898036282085897678856945403113139893845022922448717592560212403854273717670377437565211102622329263416751573522632396958464224246510977128175733995016350935182004698743056809985384710186166243551848771304347220249436917225697534132434206968778850963152177472038845747393627098042421305465826942767948285663524624937179400893742910895863871446088824840782841006578927834769552942581891467017400904014645842035826429494203672626939033917674813396922167082393451432637431839481439714495133304806863405039578696776323498553183084157011244813614610748212183900102089636436870948604757304599357410427700632265796602245018911160702433944252390014439701949194373977693775330516428589111049338600989394014572605053483026224318187851944564060201307056512739118798706700896947388580581505517132951186133050195004299096827119501801023967843149285558175120291272517609667750020115153886852238596264096453541601562002222035690744556897760776102922534951820854401781228345575229241628644464718261765710554019963850935475916519448198191716555855051007742028231193423385574606238246542443054654818375517471702997511614790071449231205930619140901375159053845439086254219589203759157712204140527015551152140405424939349750346733822418907206263959887187247732220686931850480985706759528434836402145862773175393261602139019784006030537057505057921053363044874187163223179419221789076055893726184759308445039568399839802193194649838971333821028719714421047845333561932049311141868894311962157643362225634292647325624091934969097309136210096818589780774068333265897297444221564061890327158389481697146997679170827714246443429412963075450697173774832107893557573648173404614048816776482699643522705603034284531028719083278481255008327955343764690789751185937605772594811787891056235822831882328572759131685251580708754864181040451689969187360263156152033582816303722310098263298620369588873962581347329600214554316848524090085485015845371954386058458133477483628142621779053250524564665176866870387933235246171087194534284258224374501445823370869697847144726746279781596871649633563827522694762946533362901439967833177773341989459813734273962431050426069140592296215431186695389279095989216872144773575206720030633482966093710251712562789083019859503535379901932624189400318536539111727308864209172418109525458959551007426054355425838726471867316297345099992065425829816691975533415555269633981340958936864975821963374909279953850696743346952633561876366672037004458874866971403747917550076765730463890969559582451211547229846729530475181486211571031815224036501437043218827045716561486741802639478322161737831577688359272701946111891264305697950393836694187193548808148612253958336029905006212697674305688307580972198734093616826806586151640944139432298642717786864117550231431542059118147510832260491505029074292288458425337195924852022686321044890859384189313391613009266556301219661727555344487453680632178317616147168320603072575542079319621096291238405077357099366772483491293125900204347981408791821610540421855017283970027569979142129671301160193379005432732024223319533786678635265227833632656761628819363209124313794864007056135495617951385411774866417557157447234088566579726674388974664651547791585499391277070993241726441173369641571828973854577191372398668845998003701365172581152395540867220687811799430621349455945297191202392192177156806748727516211042594456027229101223301277623116425890126720634839797879482181626648890203746303478882482560143680357332751674255717808161124878640627374351626872792179142290612690336497610698745331535646978729210172949248691288615189677736642113486892711385199670865799319424596767098109419410499009440788680216038004000888683210696034439107656639627254107169887584996716594781908581877563885619041185874169005707538868172831069618060363142994976855274764545341781350453948301245532725114807943092326901472155458765957451047421394376639749789478411271603438609898421111161614765320208123501483471068967449212898601410952734527290878879611398701634790465161872118907881646546853738158573247567730615687803374561911398209170237318131545044057632799136583902354558309368621988318714753398213210703133588395722536931681029041130416403438325985156639099095956425828947192391889357752626836846366426920429420471303218572973833380693150645316707012112665636932948819960613555740854259520109059143382376975154953454083983758909525428140601513147959642386050175437470646646949890935883149963498586330460258286983221196353689042320505017200871550107144279538276353472738435319267569417971664354494253209959389673609704038661720949289846337255670778583711299479130686588776657648540757330552243523478686759870037557409901430708236225910346636109401126251509400340027728330293025753020993490823685430259879613614868234612273907040206778721955267165030588528580743164012134860865530981982873779052388356001323960812459335830129173836610987571018361344354517852628691028366745517554559630585755861791745614882773020622457744623857941620566247246806997085182178301672728676275540602615928906419274820167348943225872039210200299310117440680755439856480642799304706544891087497045243865347231767033457704671163391333822958357191502252659985538667329042523310842813741547090230700865764554201274650550535958048502463226292578474782127947396876033414313763351838464575709793060289065788295822567330315710071621328782566731982485446072651773507430088769200761912964829285675618861504838882524872540210301615242598640766800160917956731744939090829269635900376638508921879134345149386451845872567950572968405434404105160056729160219208849984836410608502949317419812594470783510504063210961663417070115876980089192128498401075601606582916100377419323414573619177005813698468896585254260625849589112382398365438649414189275125779316224882094158908229372046557922438558171408491229391764675908694649850168594157351195245032358386686779471278964150311736379263985632161387026299437140333908412783470657884361322806415167597848512128616134336203842791825901299013899377196696372133590444194288978355010509172780162831168753072974114367907926770222692036595023498844826373819824023449379385348135367940318924444094794515484320267679511017904318081550975393908542819876418478735384245738756716718906497961784563211339234790558692182036189921996313838240029938189049828673981296332411689093734682061399173619062790504078081084249833086894340920535332117914040909399340245816805146176435285195573799723194050626263562473292014790198499653997264785530308999190640016201153576074913302873476879564896388161359223855630924583495943585347482709933540877644399751702685879509045795118034703081002370983104730441212098026738752145050933779147221897418955491077939940978499853298881500006445708658360110182723553859695471413852924980896179502139367093622591827688985325403159694495330561039517785239914305532978627584203261504066233691085358195079472704475833992106197399322177333411756534675336981825699214892551314945692180502736567140165107958432114729585782306798125797638493606557319766542010244363976501869603591201742108399293920100757744350242822988437864098691256856888080906676023778855781563694427576285162327592857900968838963960734166551645507320842681797367275499887936597320568456884924286464625589374845009236523953349342954193861328664065756909802845392508595641732490120627082585690057386963778005240261259004943858941933991451214488979778039263554784858267211896081823579839499258134056867592415614961102564136917437794088535196035886365095839928477674840988016870633668948992802259500053890096800586726277443895882547847288308231405787878144819532276052727523791178635415762243149423793350246198736384391737408068758235627275449360800833060724641852115054041056275203303483249491897496225745881070375043146133875025605234480412893757451922126508263280225806824322994103702411194638356229932784817161062949757618236971473279659786966087327136152863473298450163828893114027046271306325650195567917298913683004146662059524075012541041798727339116471543193228797555611243342790538804747347701055239187867644918861201899437784168498054099288460583634981026019396926614321086782605460368654815374069529789805036136208646251785444690723079330579091576052906813311253635970563938938666939954884042554707445067291306434899324516032576437545236545514840148759648592519675263895547494211465544038001116624570380465499295541929332787216272420800349150240843143352996821527248305199013928339783873641208762260867895957737939799482129927796438677902794013138424310189506979169572044736608414705818049993211863399684090751633294295185141963809316551355237261945030745489193382323872468007165209738412794453374348522437729680299407353845175714860457045792037063423508952884041247798133336151686683920428983302429639863327489267341654061576761333885306640765613972273774387496358466337594758158365095938895590868702670884473409568148708329670761412878005979009250010812955377787800204817533934486427496538519502482320839005307696368182045045239715528724488624857620910517591842811709867956603143484871749147124678938578282764951574215657052356694776417575699851066298214892066047514342418364452176040067218202529813183144805731971505574487979304679874865896288012988649396058454542885794351389719377213835089837996385029839542449160779347622966247978642138280796277003814222212136147487182814959407160295016105486888145041049284170690080918263471157879449033482283315644508931349730609017940043241289394893855702060995963390445792021375091466574978941110891763766342783531589627901042989970530357280678426994505259000266896627997363468556485537833320181817313737754084661746910459031250321999454677202608864305138572788125333789451763292207771754942192666965313045104078080952436929064491129420658837088091824446157999583928605571706046917465420606577436179249788895041624076011315062305300773250063307907537882571242570354269283843935997710454724589699586839604256039705932248791765740523374087447301918232325191728330858633578915243284577517481576434943529269015885138117678377207401228060607930091038133445379887481386026853092799640209480483671557773556812217996743586649258187014267657668622961241704563479401916214974339258574332026021219233027585624592333527805206066836405417274113238091183602934482628411110245655237148875786790001720715378131084718217695653847211486200715425999429172122253805751656647764380317458265985832100418984669420587251977830500627399937577596421155310462339447332790923614971381588108543996469148372643752408046278872317060931654277649127018213688630183933731634900003330133912148956093476665794179305454098688909753256492593028957115197124675235999073325341622931149885416886447163220747048526823086506734874456269650692509038430601304334981654932716578990901860153883360771409732933155505979763732829027121824791629162577886039149745242046656583162730797217247309317778173517337886556450644188986266876901876663909813367819989938267408172093318103911395116289367738755114875855667330762243891603066348126375228951413727670976087644783121505351758061138926798969668934408133735917476814412370645582147620255370163721580606290908584790691018800516866096159159985387314578155260020862814904414494885323052974804269885265146834316508272192035723427904554078802869955033092131179083116565472727681175600873519076979615371919060470083802262303703099742761392276419037773802745235670618911700873979402436368712594110722298274120692034849534615809275572346850247599722810344538042268158796842878828499033742128810232376356230533317352773315760892797134064278254477845930716623480687994936466216158969823379051611666595957492560613551987872171915338774872934116353232576034209150533614848805846378861122130597443136194062381101911294678615048674666920459217923806273094573586292377843933381922181147181251035911884300040761635572376692449083547274542367458112842750261823763030621859554936035384162705167177390339147778845641886299382435965991364151379306829503271637751538011295193285006959862228694353316205896711118191225123101607677499516005938976396661644750303177395596451006617123197108952452149612707700391350359631941962258542271128724969780895438186303485660860699228893785385348192251120463960639747473319108462700028326196124736910812643768972253287381224963733471930378049482882973135359502618104112517834327073577116010166008165005917357377332532938071575004262977762982297177591330025310176870966399436519512831720567555154799998849121039949970930548779044010152019409503015270958516014312395726367465371006891395261879955109058455896116721670092371653992332901720709454734970933105002297067042133502269776318648735262341735998939143322562145433408635892846646777394853550872637174684590048141593605232703610504126336407874141332072425679313014217889318478918186309312574896854924896123461317232590147400061714760170986233361455650898408133851094044795874895858494922807309601930206410195076989519028938385235065148353880291205555290241201772598312354869998393576953874462645416912302415410982327980491262620890698030100582809767158225351865660527880058284124810055158330774612639375416507243396746731401027097513708784130284393592233576057696848908190960155719164519415549677383491502517886503607441287639880885132607645604616920022390734026041269310074929833009092620565416837569695710608842262080539194374848203054834552290645331476992291703427266783039379711496027458642031982354196560233373176315150388480670187139637726924791773607284284971041352442705766399940126048193694537849198611166416415686404333253116568576739816936422483430918505743787994684591219568141885907083986433885716683595671565928920065918367952265675025925142968230756263296823283394583198698236579938051567205854076656836454805092290400949376923064442382980694060036622352573286142864927549283117519144902419910229060681502496050491539640301108502021465124487528386879188330261665786855311640835528155410923651070307807663356983785120280575633015563906612053619109985092528866519905841645408110366083835079715975615348347469298731293471438651935062907016453320063855684644681368456391610174928617860062084045254037901468938336929305477025603173637336456816404765945834087352809410291085104248022442222505812625513090933307302353180584676643850798847077011983266344841996579822651216705095403465006740854202576623654904186135596488166076535269925480093029786163628583450469071206753366811162421815620337806991468696671186470347975935019657937484712221374295628094225869593770301238725694500673382249484749292887023343960375165545291526888207820988148313906066663107952744705959501148499039113632047212830230529862019847202508236997225014204040063183990847012929518716193855608264289640645453948928287469934849140954747467446235082551975098723718537037144564031063723795819503401139385186887773031937904564566430517011767338372292651362880246274168016603522510324533266496548591175880776702195583840590361486107171283963746648811506334123214142662890450940585568757992726144709888620504769355609625126817252841291183063862428326776131725703417179999102866736544661936846277591523837756305880779527267810183958905780284939097407191301506526502194266423969159159695734628592311967602702003515105927432508600141478387328828721402505732959561773544397307007145675755858081985325459088425658334719940565613064530209858691266382229330485602397347672023418415423642536240613413930362225779038428862262093693015760243480472412315140223641098230151300985958505049263612262258032219565704199965300743231700759602473553734706458795942708895347048969307967957562418913979985401490928561239991603870519014473510055378270361931505729287835890408682122905950981239408307517181877412233426038237721415870291070015232347206535101963561421788709074163705757243532750780893497756224893134843586317637526497628091967564107237885090581132692162644616273355610978818580879094480015963209080334814938623694277200005265910559584090955634190430068167395386982116863631679445632476076091500622300127289977504200768641904556487257310023588781914976066423929952838700593707447432567289212478652165720724531346245537083438976625259537362408579334703192789393356482602680263600402784085483798906613691543532027845377076365580298753951838165791684454224056604999734452724517574428213029123654473761753852682559531237648876800240484568507470730122461377060924685875967353648671311295657497418836324530747836977802485402267663748531669275167302709568382422403670164246867880717289867393058141501345190678567068458236652274829805610355650057999713745929392228080123848304359282490217841874373408814238312237140141899563309073078743928457656457664013729444508402552925927631073179646440067075585780191627574306907061451161754087198347433346340316409666627297232981820619733628948087203423060650323054090566580223113332165261741601712275649923350334658000507395791039833758114332704760227996826306485548712449288653354976908292915829617023890916446992868292108907495977985352095115087127941165632879455174324695522848361393237562753123226522586837092147097810190787757925497657364116091307201111402582354068215111392974892468631030896008597035746316276759772967095327453737008447141238943631795588582916491581144764517515841751331342481405829860322553456181278463723728629550123667147947550190629475913714876296707890041600593234635008073694362831255038748678651193462194982744343317111357892843752358910221322047648774818591467248155449902548127821611459184906152100251995282126517683820305872615789151930186399421679675808845350040789580477574620613300147110328166852963908828183906246192877344511624836503216970726769098876351655997945485733864492014695535003507730151675751257390641944664407828164687818179965640441375077936268925643121265696886766172005949510357865317589934488279782348615542855557723899531379730414108367700343340379817711713837081706078055826875944107156052464675777789242420392614488463849837954847567991995239681954877868666472286722283611288326536637535141727044163829726016026583007508842982397957890747973630156175602743180137672435154893765394253317287646511321143882487363384258458156956774954582028210141668175375355700798849887685659814670749701782277517753174228261046277315448510330714142033995868770579188804663927808812149356989753485192489866941673122731408669620497720160345625218007472049660126032916760216706548307449116315060402022731969852681425493481681207002387941458142406420237538548932885782889538098077608905051096048775478837184131679608549702434223969244415503772712074352946751331086695665680951749518450390231538950648504299108084762459313627117025379994219464552353799978373632496813716608390392532514710771136439636397641634052742947745365444176249157362945366452027330431401864893903868150787415439774155511358285208028835005565547976443289855869398100888064578248246812526349266344201532958838150891864275470919859390047232863019419938853991753535268125331624552012621448999113349067703613812975401126238248561643849568016840097142861872049252359425349688090603199795863130672952837962409743710711581708139038375012210642996779734915631137220712406922867905996870254362098124832529549074710167622002013541034008693717073379801185858388445495779374037286443120095457045722554868419811453746038168353420488560209882794025517981079471071689479804409364083929553413537275835242816211102596542984406981728362171688834760383656237880570211023386264474446397524298648514427999895024681262066305680256322257053652482950499855376499299268704666146953472515065482454618884156988534541423726032317071070082396966855302225013452992403183999235374009463076417842237273242450844693947664770266949216494210155131174727666394380963507402068253354614645967537462381836078584378356165089512275065938553572958138616492621418892746290633966529903089245304787973374183297788432248520459076263703727243592399762513277752892187795028195274801930335208361915760582125592505985095366547245279634796366107327923480828154984699068649756206630434429624023157396010449635934002891781281762152487938423752062584626171049914898518799054684032100461787684680565245187352454746459675975072315987327021441305432319874706507803212163538443299908942889325723390463479970079223485933418465993109075152996671990307950345431931240360384433433009963445894374406122660190792104798890207450610620097401371482537693019319660194324852329875956789197903436968919287205122067355364996980645087846956476495563981470839016388349126007286493243272422626789134930733710632400864288801407800870779448515004709202112261797878157344830523347687866617539225569242939074982834225985069885005936394943288672523421652495310117622964994260387131674076047677365547953260629627504632124644529286127456613023735887815343966007707906481405365628617783627696882124730623552946203916939209082703452423835641185807776117691523500844601564064524855349180555291178878440501848134177704133501420949245029562817792996177041727295644715207624028104578217935740479152358001819745619986039376466943574983782324328931036764500252721731197555714983643205895968836711818495665201763003221038365987663703178142632810298719461635666637463466909643407015828242681371830672366782811210424823497998500869021470571394226334316409902241834940023362098840033156734009889391207742087255813798630543723844700235109726282720702603565042361064004663902248902069655743179744469204413946466867263288203896001323055588908934620092062143634345874084424630819143559741656547331904454283412817394512084589810313477062858429800743041495128759406419882576744019451075030620160121488899529789357874944197519708440066732421950870593368751262066702530746374390205384841597277621918744479921405356926270712700215142219077832906368145012437112790147169039283117985844176028914127040377352914860285605234920985311734777279702826940490818267092760284843450370109502235273568927432076367211056195643443339966335365605266111146181107475699464056491073453740621146193289677265340439527561425526408247394338855933849954289060817822539895040212595904111947598466514570446145915602617998477042453073291160490826615490995292897180238894439170783401343561021135279280278351017194046286691498951863300024188162850931435377338456915734532970320081646255533659077935362614055732116642302079724874659575025824819673918018433343212256682649517911678917102046123458253094936227154806488041346107407085405645969005427216113841806265401494903935913455586105136291898757522116507295109169970651269840045657700367913283250422098381795403394408510153140268134892050954337341975266751544133793108524314236505018792945266676410330800265108219940165125201770116455056203911098085644808416917238909044277351623088067170187843339259345682872464749352643278781029922111791620583869862322277635877957405519574806777160076133192876570069360280900589455561356873880963007452012783577004301857476831813366906821226625039123889673181459850583373451595552209954103740917241778158723031501436256007469384441918028156049179367448474437383261740467810419831841374701961218355460699517423363804376787527678593234582111886327309745467485975923587715156715145129885139789898283492021865190948966616936163293655657126718963759376213279976239442071709167593779798842324937361203725235362073141934551108663254614242121509551837573471316603425517933042412112342363710152782451223767072833269650989889030146261529409888187103407437492192927652088056208232919804392489941660743179120032545593917445097341008013349978957591554249067545762228180915518521600089976179519325605264543645186217613889796687689624161380310413811840181925976922096222057186154897710260799585131654692402469107937197725910346002041570394458993259651538990600991931495790691640285277965190268661852319782939859784940831711386098676159865643736739568122092914430888196925835198933515453980766803603717988875419804423721197445674103961306669878388057011337874610246742130243907247361794059872912731539021777263019017916806450074918308111153699510026680156264655901328536063962685216695972012397415339295779318591102303172470616963524482015202279733469451448888860034630085128896810974430189739623201985807217012664776315425806972723416937545133482626832488145971564173948298131026726983729000967421979047202330148285936673939389525142838403242020038158617082949119887989523509053796607257945160699037518042905880840080282274517431614160339108112379350836146473891632481956449661278864340747641176144624804746829446933876564859144132253094850306310583971069541260296282764726547952229548847774758787420866653565757969988984501071966969402122146122508224657527432803056673345079546839681826275155524897244942349210811906702829067305330280436095751841247852007181702658268431268952920950326792199529077093932570214560329864689307153627937851442050933807567273453281641639791931380634164941310576418650946854415054914611219016614926931012296256850668697617038667293572363903615422618505886290489212311880494016700772690168011817391316092401786712361867197029780051267603609207732702622197183087166187021134550389490175239656142256283649722596007310065114879209529741793643784363790850398203105318300200339984471269363627296273982298410153198149062606450442936669109146590841530292350186756378307185774330458642273321046767235785763378461323460525932875429994329245735902079991172896131055325153614368162727947753786255558745143937438360326564640560372795207507829342286180924655035792831668150655456262768100163286287741946311104941207763536040563254291937796035885647681804383923626212681798137971767785254536071608053143698392580456417245616433239230864505253733947249580368001505665197130165601034508595069681129618001633750016718310831456714841501643039470023834719714093490929210392062677997310747169660134353137377662266088678538680008883785551511056996847036040490683569878538522602544918106364194125609436386869855247625057669940148564164818492087291307630841696508987354960851421312743492783989599083670073131133231504603295210487591435575566400959306303181927223697700014831586189338164742325884809886095432860360834966730171741075456246404807566462830137646895906521352414086700659904564272806366239578104600054409649066841748875251064362337282351217280665725380565364650134980162737778434744541308651562751723588472817759376186240805033688212754843614916130603994402901301946403754915266858034913591479735182211142840688188452120731167900939578125777842813789275332305179256050871017019754888285846227582024113339218778284937574544003297861642602002150912413183529429398593019082871117073002182193350792040316847200452550237800719105528095268576336527724062068600621957358906550669995751848685364748596558597310542200051062566633506976521063554047815394543648243676571471333416429356053492803626153965273030687608244738682499733079130515405926514807214647998729329055414852052070189506979138236288751565919253471049993619454141088057562952051608566369278648900988605879407096363533687381879398108775223117949235628458971702165455706709601906636897235201085153152273753455511372959075880214677349563651371748006816998777346416256665387694444144333048286874650012682249355342637730729950210914533660165024096220293709916807246012525434591860916958510355415087240505776693020310265733346964803210339104200608302110638516428310259331797064392130173152221274048254340412721830246053965251481593465116763548072544449603422535414526045732666191873596208437625564195249280641219391229926281414042936719999684968482129412418629438069960421727374999539186226044213484618348155994466378726660766140287314516433541585028496813019413828329379963469333084364068772297046136039408158595391280069440807006935579309128081840278161855508552582646904760625515010211917423949695240058765802527248273509777623999920014807115558032916658616153807976410502026776099532121232777628090872476038398961339354226874539233198905870846204955633917458609670998005809656452380022049810538363423965314836784879702315812311705493665555670319183763149086144344943576051759445548462990220937236165002569052010158127658984748391330318456033869396513510092137492692296866937540767032958592232027336900118626299858833402532184082220104975126828063073367614382074690378890617418742493248454887633802840914859035595802767772396344809668486027551648974072296837376571056626270109447212492381379949232116327966981440069639073407074754652212396488661130363057738504375980780063008151216338406071251442302713611805230649454801738383426278339066344550135122013349486622338346167379224050592069805918033440783882666057817843910200283732273409029180510990376057503451290402605534390097040048573302225008463239617663538478382948271777111271197906806921941517038454152189445847345276716859563154390896535704171513963505673534018349020744611080015752164700248114362733648830852087908305189518912076031820597188668154164308655016117059510246523207900070272932790418408684357377448798004003982121434900832542105239947094183018045404981354180750689247257598268576073147876689060113787245965646923654018295826941272074257303454937358086261673579706193637109281273906895279322079280539489857044293392389352807135454076235588086763009028264915095620594859142802284731648643500214469904617668455730825889121275624710455818719414768751461501416643979297995482873665303318619247214382510397822347894569195790626184713002762126343048427488288069612036042328544719787126715711156306406509967155616720439210874108119883040760425282424512772678040947628741492134307823341774885216724424935078486908867434165173425036145709421292490810094892947148362337010039228110664067776716028072215634601421089820894975662705192974485561834988090348849928867015803537014001985191493785471895020930324812338755355881612353169159466775002271841584934112603652980469447697586278691423337779169365958753824945681321279756082709254533521365906209491931050421664808880682850926485143505545228868102452138874094333618346088095685303973287611035905004294392153128314547423919931138992637077636100281283387077915422392208711118820417915449430952649592506907509848305724676126480498321206700787455941304456711480945869665886647043587997042635773959497272903075458858359540728972103712095212214800256939152408641823349654332722998644007475639830616843346574274684064926891336683365158746960352506621010822693453067963235564466165772045323784901428105664633305619222512006634897444618018757065545275168454214145771705880747206001169326534739144680075882057839461840876810305227435865274237529045235891181144710309002014213370507779340630220602309082396757871471108703185419982953947699170921340616485768282238351861432699775770860528748499252548096519205581497183903043690869766846808087354056758037552157844606536996357566639139056505217457737731482196253531588316409283400716300752588228730681127861987274333615339464732789992701901406859462044805844969736859710321896416524817103418894082190977190413735043935985822276612383029540181574008131409563838630375905849021875628192630515021266322446122969404524800316305594190320389955000107899220797030782695901904715373451693186649953481430324721907515114652996171067173462361353342695797830570281700650458017444995749354021526816415078801401146685170802017599757155716725821902138337284949321290045935410401327196197670464299452022087838451704156062221763325579866633238531366023564200772622928865602295554644325146295476339919790996860492736540731855629473349006151530346224930369368672616226774348177583098396682223265130210245187607761021388726204719195641421385666966783025311789471632235111004461696702789633821406353423658990832469007492345105118560169583890498295487310504459333358489693314483743008119306708158363636025749962938661386022974341089752628943904508714318158400392879711826233879314528882972253662034822968883745532220389718236258095981756770693367985052278357995624555264589102921591428979191702352519236364706281584118900069046665575066599069714115800644802102169017346660366618442471633660610355904683249967550084619394447871078085373489484574862097259011282859391087544028638873009331391599690820727441777362435125794916824612000168957734183184267400879802226853039966287835481020281185444806068349451493453178443067086176622616334751022272099247769542632086307370269197642046567055451178089397171564157963961356557398436796253153541315066745415131232720093135932824451033586325928736882766248790386107226688653163383448371953390431344306390901371291301829315561275540466953980311242214691812315137497639432881283419151478948995179539711068656652693056073890838207685088847144756380527345281019460834585574796849596170465447173187490953536752360445844109689147519893981961666448843285041805698584121814766025376332395058275059773483830322808456766630788380872182417341014460854153280087405534730271650768138241596026719591965822563811273040861521970919202243440877680252995189059354714760881453604757552020266181227399026049449754098421040630017681223470983433849519676549881103964491302288843510629809381262925726570223238560301601256428255814716789797343953076659363896512751707630587668494453964029675475719452288411678212760410054058740166251003284851586272604649923851741663753357128415562545823373516522482315541155291554770685188413001094642796664767872510860362898888330104775701840994814101268862424862389383244466364248637272358111043011425942818535357887613435473584485834421369005020533134289498526426330373521505680571220074190342020422239654417057264810969399501969623716783780878001356354059518357840394668645514983469075632995778107345728353994517750595100983605130750446545849786989459062603978833476144046312636561409688344532375096304748518550886310172529781826022060055860077720636998257629856310784983690556786396289688420977707157872813158983649550291872604640039488753341752349062685466272634940036706185904602656155093591767801150328856692494244487719110927864983385611570307427387064672926520145312432872385979066467356593735560952954796522663973840864081061364173874699598728012547478062148443179858275328711516840090261667512997125653167331438066541299192179693038790683284249855136113891356447668439596080358831388896719278930099789907086267053890204057100835656742819839995087980373430315891855224422601207051346408313974252275632457639167421746392247089625193927563407167558177088300702751232326070883374963916685774865055438020449370828780217445506276477426809562725969277337947656379739281770120398207859770603792261082181533716088715692218348721236235043508387881997831357963076349654564002812682889775208151193965779692699063095309920675514399512173224432459684953242243709509763869836896805578584362629043381856514870413594742187585637843778620295867679468807021982974273646046664103976117332845419641888058979894092890204317985895645303236385276454475137630303905142196816056096779150614242873187700036961030045074410451841081352860459015007478288568044607352630749850644520697889855527932256606570198937572776972785588437492825253709329725936253222938356188806777081600287546460553708718006486219034730066795658500825466466588783346154987511535873271347205956762674625677732148107203312031511781990110011344773293166791151747035659764884810199597182245535770569931515235445920373060267854709485906689040023420624051487174892214115170134840558186632739748066175158475353940723290749619568356966705011655573148461407006237929724157237524815133389976286798040394514761534433909115203799895482912294519766689480389041324268923737075326700143126909951222460131643948034381287748744477291652220348797135249493062916370384259702387755662501980517844159575653490736589446709920724997431925228231567975135252528665844461455042096254168710689572317460265041834343199907871098672189445963106947566406146984206615494283107922123495192746170186800029800919859208973335296195621141467194408625603623504037654629286591074566019956557888202255073833650460201027859383583912917225165460710980983785358425840299147483780348232817099352491116336318647161517102698257042101013626419965973968514271958473134245249282565012234774503637385089771990591517065915291140172303123541846852269771987398868767710830987204074021702791788933346775640639413109044346702298846720353661722643270066656889669422776228454786530951694422775251381009025699553121817005769998693312833404240209418023192488327407536845983244605788238495943284362059696432369699014045321226367628418805895226945225287736875291870361575672968271226437528578362482687591562367504892167991269347290813220231993515400620263136222600613135421565389025387295471814707739139633459284765695494367192957724370024095873289378579363988813524788086094428011605249873654144207525496955985472923890626845493427749345499935148819738034929199954517722150173718539180949578334322927145624452872983125330838685868458945337645682340044756327764716722114518860728564834716601202581265202893057673762925467657815710355851690048387531047862733122937824851483955057815432628412329704380198428027587555850340222955312645055908793475975197094939800321543926999073226906999700362255435626232444501967816410706410644047168909472188529381489889082581196866763178778350891258666298168820845791473257321253406651043329758037889751568356265775698312836725742859688291781034839519165454107985174075320631074469850191096579572615365173921926135881494330209334534242268204682950502898914203000896411191207121427064221962442302745383336695889586286721094965311950557372855513571953889822980828539495601143658697891013719007916507444319932380911300321185161853879325227005094725659310065264639269892447593583387782991866535411530818441846784786917640964631902002106604792578824505975061117257999024260697417012073686677138614435089364475183062984088814338224338469596554247712824078599985898218625346408347186768331661155846040240644066113461811675586752551893763608803008344119141745978081331566259544573220412221761872666664911568469564103964736061647443610235518023401405110963829601132729057809951773507329154054051174875989550995104557472108671630556925392984877716009915283351928807851834128122993148741406280471208354865583915552908079218952098363120777361248511845254042100647348647443867124123279390057647668114000250285015452704352238175706572972832868377409198552686963423207943410378531064522873305197348943386569341753366250335567162918467452481790107100392028835192775204605118536609356715777835689029299027562444790757523136336019112848387196745548738177157638713026209237118147587652384935172247346340809381804339550357682742573299131800110568015928265793115788705209760062401948627972858027320792065657571928087043842617124479358620672457376293399547221186390218045838650630168649963462742528456117042458898790543377282138931857940590062521683954250638043928495539897695249184264386606261207307006884616438788535984361627740219522022138772264917495128306349096548346935638875762566900756803071947017546204509786941769431786553606040009474192468283459148858229318652978744862240456356195122132669666591159828563050340301056010474923081063907197968776675884771238995743946983824140434849047684933196011735267570539225326717770389627709224338892999859936477726287632443757520674187027970108583631203579669780275319931826865082269260565947485024035489486283978346718162888781574631319836630695005356370502571764380443559062384684143846902491069863818828021618368111492446098706302867447974554693778114244557891633165084334594824605623292726574393268596671494891331363739450757803977096489980763613061061901235019997722244034991116626836571878863223546809648582722221875236349824267005691576228581752914705488067427144371228814445198567292592562204798899855490397225334568930164117390473855163221675653441696083976160511225414826075777218527322748854310281054218343330766349972056311707141146645701101132499912526731139296387551377667701524890019398972363589554907779703829510271878130548817742056880566278533443310951067424579019666910348871908821042706002920060987886049574163812137555238640074028443340454438766859018157571032856619059520551347190151795025830111704665070074811002147728776179044362577195690970020319240663156502505205260740227824997261277293293836650325513851117367364828668758126867396551491767054956923668879762790110268025191819438591070033558368888457831684534233729645387516299030356488222986536810455093501642184195650417731886995229354829731096236067384919708985836904255793525225161397453512593627961804847074021747062148435945089143875564113996254768379188226571951965517584445383999878449825131335128980353536099503973505021026976061758805518466222803722450818987511600822450075072349483417829310191117360632464125970483912783629343793255033706226820129689994323675018883780254586902707693504118747095530450641790571252159129916734822534604753393697240725356936105519194104751512068855919984731979511132205464927219728079776802016851309200856073389873328695972726061002502441667075255758011144248991957965975144000027220881965804236807612552238958864631613546324757327799297478846614106002748740160328925682374756218134905168080413916709696541525296933523332478408132501457420622375280742866895851817832409748411452741598327351126854465752642748039016117729206147739225641889226558304986934037509961240301590778262830526023681642291709994240047966693597200976146739295605119065789579733726092245545261896649625968444082166671184066059419623509975840233498872178115268006763427086444077351698510263577640707459309740701673379559504354247427642856659466384694022405289149998661623535119961244535177203488803879574674975956606883391485822256013227725150191761210080248616253959423003513696566458288343904987040506481983122106723050842619942791827602049328701873418017852698639487834859977088289158294724687016452938301733904747776136772247701106578348718023557766656640841158901292536192428506446566938564590891146596125475125463039919512023567158408652102717774104359843030835422938063401765339302973186695530530217187423622970934815803898650933394273135825134457978690406844886756770732846559251126099312085856945718020881354121778098122973624520426674727326516334092426912172174795663758536041077617679500587995621063284670102354679475849954500633691018450808281952490466914360597276855870441704465486445371093102050246537272909027530500424418239689364542749942638773416984843741539104354695535229567523957086443949990645502838396217861981411603331449030516283563495052325890545577895494409779092156119127942335653584924266029919667080199597358514931128524852521614021753635867180426773425898680782322913032632932015333574858861186202154004351671295369451999848967884236499328924398906716716888017652618467061253795764929041728970933624689293524978613799237780317525678698809390940072559997651309988154106161475936469860624053410333921699308768528800226200044028172792706650521839941865498686049129061085736696759990663044895242537470514830035310655753039545182751421426324692400725794126259020465224651358296112018089406359010580057233474386512201950508357205098160842219274907724097192597775150520362269025425728139040815712919529592368332704351017251405844015168108119172995356258019529676708530896028022118796288472729467468184056163161195484666953126372275291168216060597796468813932363359020323438325344101770138959736959453766509544875725625310590686378837503547875089015731008872226233178402562318239353707497254997208376852863842933966621457831799717463280907949658688739603974683787046105894008105213824866990817309241098612315889790218884548537238222004758502420038267376267716010050615179802294914904695727936545132666867369785661827680571494521914526408862305363925958811203350106636871151906054302506320563930958210692888174506215246487928646759187316650482219814408200053891777248097871625594759872348088176668912335202283377140275900878514996970811436579585397528347550707993416148113820951696378191445474347852078945646846368881603451398759106795190454681842807255760786669771509786927004942826562246603614309459507651768373406626514689076211689711105269582807883225571694393376158831223223879476060363895766545459941013137370431053113294262817381558896953523731993335371416466050324526997263289159784657149961369502738428310281784998489024820465152733232223684040499624254145236775586456156107176745188821987470263510636059633053255637639226892005459704223449559093918937303940429322204367877081421097075144402411349352605692331849048295857964348784881565786008103050244970124103269559150831635451580765297462154869680590029594104258027561056267882651971367476135406965991128633801127603143346259064302904352148120180845277415456035025849616246642382930904443439573684415094845474737983410395627153995346941005729512146396806063393240301075211803032393182827878697026639549598858257924308005065783626070129329212528270469024713003919422352827436524491958849269732430170822301325217715253745880582476693760610042886219541812148561478701014067230685808356731362944495626088804852843745564884694035927240385930595867581493229727628473424996942208059225222398829565827480845917723936152046614550574021556045758851850261370150248998078207163421952578162229356605567958651207716276876708519089695340381063237535764522965891685391655507075826889335836359658937352165873512618830207264670495658453208013257338760243953206410482141641494857514482139241118594867613641281601009569453079691857014445189287307662906578995805643686317254864424793176545914231690044370267127603854265267202566356913147706330167518864485865237572045180647908389143613335029603813646777119888426634050715102984784024973101323556212461683144684503144450779508327540143976736814953210730007630176557197122633886738780377835774695986664889911845387929903003822009234061719650102686532277620423409186930458868547835039387627777111060963452618644945165702024707013658663836298416269394160992073087893413545315720300438970331568778103381762488547295865474011867450385578960219918267812545022239429192077508703443945434630526151857281254816276395646110155239687661202081345936653383052692054051054525054323932427757781003577131677708835794331456936166437096765562998163717959525529227781912172423358901532889905310600104780303795933985332571757895329766026243555694877008282015625662696753749530713839030951159849941252869542519161729776692334587740718266251959009781683278798605371158951226045328639985530608758573248699810614094207207601662274873425412642875620119517612707486453823977843915764866276336165842314339581985988165245904664031696116014615618245828555962196141435852502492674486999864755256792103205197473961573879729361279363083965456094469572381460515788655528325713926714504772907235008172779231553872699735357679579329632003384409190365507276361949775240708958765816495034395024802481700716473432588943949499200689102851257175257724515349831619456478054175732249310270916818533069690480239398609557878079371025636973926985734626694471432699682628497678708473735292923290393430048284492414244186240819409982065815516386324924639708840901692422632683188830934712126889252171216965072465452522646532706128648364974275724408799746536072024047952326658385498722414298637960425057372605402159328580006043764116160267024008738126424650155588482058715712673399382844138012406117161414395631711711558299507857784920251561436822845852446190503743628829495765839322438117715092688953439910716913159167463948323137736744996371686518465386375045913102875702552078562253149512749169680217792718985312097066684656419473370571067202431502802077856948228273301136068959406465275933708514633805153712471800549886172451246816710347027607903710031800989772928392175462135031297408495874221546301523912296969065548265425760214813531783985042115291280780304364945992647020957058698731018910602514460776478237345683271317719045920617236290054587444304434120894337825380050286405185734761866986149782879897681691892993251796581517365409333178274078443702185882337674385010322498132136471882355018678129538367872919389594117760281632512115151998347747820675023867828058145694540226002733628147558253044383508378900630078294343672863171876916369775013579280084132979246697295439991996099568659320825871653071756303060900199043380783351802513587960679158581423419845874461630142220502228702045850626742774757674884047356322540768576408167248009525865339924048589795288916805417547946886286363241537705728651735557700562638292134290865127925649956179970547924389718476380181331753626420479889984113920513584298471667207981559184428514574299596441767501630199984913382137614963364486477748621404366297776982470800159699931187262647733823319264734602607785047524240245604237934542895630020327959732172047668961571670672548405568737675804230749341516940458698847539463948409497548011086646776183772595487743098556122096071716052453145510864974633301491957606073941552304354489285221639755656433185067558427731537952088246257818773940005555713982189053889824817636806660616187331021738937726883731106609486668736220357440305018103878387340129602503776585382974353122947046406431416452550661638424323081937951589897289477917117550948313507883916959857844794991042679037850164973483587739973807635907569061753619410933686269147596802902163101878240197598106562794252695789877147054416706265832452177358846573907482311954865119654269903108936330369521615062831975302301464595686798884530034665074521387985090657831210689186703872556980960457068573179613734046373076864139812014212739486139065206318471379426835402834503424968468937266512802909468400831372321829303610782487084231300569727070470581025598499411254915533545627894045198576152886675080885279134311201461243754011434148210237070135089568218163813233863958939564654658212280700842081107413761001503674818364417782025982937266424491727781093236700555774133360354044354700950809290006579809680716514825500658312658687153504759157429977136553205580669527650077294558911002044854295085185524675664591096649566166438536372275973101748351831884038690245689812733362741272040376021126516165194246324149350644161270088800549816883892551751658907316026341589149972839589844818876143416105920066642543686631634022253110038126465290440493745056840016991334700347283229352392119612679912801648657799214724579042798085636671868151572300589167145823118397770487404948174250038212291516092649531854869747766472318410039295182771313358670929341240509194926120275638904405920196451619516973774388517493528415188344769435666071107071285085176347355601827132988252202004736970504502850014704621024042053569570535730537325408524233871399465520911541874176726889689306492839425459788447408879548067463283245256097464195610579015721770654720418143709716688320265072119758885417287569097812396967848099555097672969049665430365722066599678528363578483152133097393557946616546803628338173761610595050041462522888768102387568568935346139806325005763772292942489008506280446809769640668204253043028087243858370767286889095747997092909746415078077400674383765025674960507918068042560812656953656100610155285625602531138846076679565545049988186162957853831343886902657730578962673256376711516673431262761244820771358167342579283589529790045038334558971889283305028871698076170721025896425474388628028825211992009880106294311441456316177010362983198516226003001573188485262724637826866340512015008390729015559184592547660219469685747468723739461344945675501201546983185713095082545262167594173954902690831313254317933475351626116083524564994868497048093422692449673791226462258801976307884137444062326411737249747843379502053305925749379145510500235978631823784367198751182863470912471349028896239820870545577484394456304622000093002440344930675168760468991719018593033597053020350280564195637506251757055815813991925478242518905351209571693176604612421577602023352873959692759910817255190623889167281700363717587699529025529204267809850170464927254624582432983149595410705791333653271856819301833046950573821058019673834583260710297651741020584424226923473270015820042046353183584794823074795629168392318116092257999484257335822076452469138055688120957416227379007869328825637978980279538822100842030528174987994756460104008433610498044659039030821904958966508581194153906462728755173092466905766733595489143894192086799483888909861574365307577796312964854174266306831435784823904402205146588159932617502209019045564993520488730918854396326484418534913043719558423808887801999674197904898224593647096850103917993684844288575139922082825867672624162199350515943281251600909236095709702414554755345097076174865870626835373841587712988716778283110619699557576481581746624230030346952181236518107390009670353664618560104151946130986287837331543571720919100300245804979047601577406629347489069569950326812826301069233357289430503823850235055348644085425205407998165098120843497572186499100849240098267871048402047847536785440852368903954443635926475727900821704343300153593621386152949933099802038067564067289749716195188585731974697294105899199356914872048352646545123722972207569015148480968504473878129730306606899428382452448070837237709760055253868592859111205396759940429671917510541464838754764753810890376486250475618768982716322370165242718679555321509098861313615471037402309040274910135305044195802938489603878452314672761221299613085828238984300283684671155578909960662324820658081743346102196516635752107964152690031773435498658777768698057376850658586952605321070160705847240129749112083353963348649436602705287141136912694040661950683766432814965153142800480611964212948417079781996406344025288774511074706332314929896467692397405602388574988011410621230626783938515983957588227504013099048925394914220264632977192192762974103276302545028340155604246640996376603234836061490030107376038959889757105255839029079720238065838360406326332582404204406616239890080178002342957608843645364838433640397587378269066631802646348945882785710603396165647985964793843032423315229112712933746019692808888267181746125605009051084253499947454614835601006349029001296703747782727475098821407343521429909568627524296783079532573947174832487947341830157941231555324926477091273830966027897265169578612347865239048030122231333128319191037594160219384858479988126468485816511624646498353332901591418994391801606727827281798693593781294174043623222929379496936768332070399409615221147871474986818740545963901371084251515524006254257220262985360893352254046650412596084775733007933937209508580041722097994056832630764328132103105204716289981209475876569154134943544773905281640892701081251561000369907820626559924125577358933289890785833850130833719181063358928671681367202886931655841240802681148543120921118208285136612049601420326219004230095370973017544861380415950591280701548452658814702229722811483787478379634037659474166771287333220013566779447697165744676846691379948516919191148393961254781008838553539168097487414453038331833009881540776556705206400321971808873840209826186065667169392848384013304954493617983291000824948330071049877634349877752669880916633997045433944444739129797336257117269452661797137893109327476310573578070552785648862061058814558313748597582137583953667297992239746609183962134305697384113115954952201861053499592307947001147969631227199311640807920478748504436686685054808270933172581507898712417173979820515447409420752973127896104722238943447268898395396004295734002838182783360862867011171928984845150441299814051912048206948102451027388855595844816048580603079484593073799965846872679410443016386100650533160322440237689434990198557757602307936020792539072809675009264306694784477351188869392170915298107848729608148498441607606417307964082107952395582397254214861090309700455756282635759444476672552451465150858942058033165330939810198757476446624947908072528688090617185990090248953084083354926401718240058709697394743308772674770129167358032398901778675518955054234811740763384464345729589243152011907444646304617842120817743301887147321204777839941638604266299766105366908271715728848586392547685474162480876104294929154607957450724859552627482502994735452557310756660423454145101582830288792987006689706033039435186191834572817313456682664695949884546520734990361598713510435512582744401282980220683961491388879818222043084037044492335714246071260610746131177426221726906677745738710038720848616523529730227256998666061920033332377383728358212933709906881825964801735416515892336629904454561027274599780389658600303447445104429982458958644220159685233500708991550503980139927384455333095760323832079502973560400871751044707114866329216160758681714174252888826695531939707831604923525213445972519002970749580877229707972370880010327997448801381628604447930516196546755361380608220282091457089611673449441936877774333187483468682083778023617738227464239576541916885932916770520930484603891172543820104192512068401921046480885472521839874009004245379179329204529745919371104887963734212679720609134427083261922449462385217762641695740532833856574761077286796776534530626554135976666869400999179861583115775526516674905826706559030037792139102762529521827515868976373590429429348960139511326983643308568565535892147387199254849267302500085943949622644712551628030442419623751331987532085422712955960981782908479956179798330898671551170807491671652154487180824568646168715895486626362400793658861863748028803808666040988139525655717920270169005350925423364487507354283984533989964776630492380433083845584286350899885548835954861792554173332900937920827261469839314489266887176948188846184791733615578253038798551475399420265892472891034254288893144421028105779628431383071183772800983899771986269581433548488744276754754900961763760285675169243545576859545362153515315867296296230162423034436654760490772620002668338661242032503895887077197317747846884236672623786471655941518885704258775143162397648295960634651743117972611722800262805866936400877593844585046683495428395779491362125412732778455908576367926876331998198046503209026075480337081360688722889235006730689327289941700035205679311301161464814384367224028460212908826398760489042916452266793312946316769920957491354975934427970216839881758519161273719702348959582128095278880651298558468124813632068318455910135322440372168971832645093584584792820736635135618998028674420989350417414580719960158373690093522202791676465976248846406443357854946533202056395919806127445643303919843144356519560112080247392853688984607232979019998869466272393076858693070075983496963801472453192799970464973405889089477289153728197424779232902351515851190075900616956620492231613994754953798022118087202649189084969295475096214902616608497411291993981379486573314893952520062041382142643156276741463526970687420379609303630642060264717901424645335020033215902318457117243398238021315408374340109582221284627189018021583714836182390373074125050493278340834062854745144195613325385369172651959279732717587821548851752035794256420485215814925740334653069028515594295589685714390755373566695378629237624212516818353730840167577851712646150781778224290013737751241198404375758671437630983587971615215895762620270935787771447330391270590674292775776173046512407129544102616505963016093452505945734360826818296108611367356641586843838054318616283719154731980791069892705113742146401088707324248185553504414937360066548169689175444547362546730981289923058785815101198905523308361644342220840736096759818611550651404748315310619854574753441908822907220198357063702960289330886457716693803517995464790307781956813682923677582941852879669106768760536452515342929875979188338435818887128836546454201079132162728666150399386093737125636990188047508628141436103271643209193065643863739428516209846078541458107462101876963141524352307358857242168306139593414368092834800877896075643619556746257099638062327071042833226669900305958040271142379264873811923752406118439706926192214821261080353734859459092318411796904521057115350184022471558057423674946901772948825937121105725030655227078391518156315545474460692716966318723823546891041104560146527347464597794652187556989440568883530825116837518459391721849289594942935833230079177167510575538846722322266714101287623463584782084414902170394193310245218381646311377630217056648148048751548018072020068804639659483839839233427113233263316889685848430287873362079073199123382896540465753588877771274141689244762772567920196291190043685683583723390378299847171035500410976420775518469962659361822323030710691315129365439436198105194989195526510456926085419931835823629356726356844287271069103413470152616124754538779454754314116865034051849267110085669134580573576370892936085521767278965189579921087640878894927111035759522627897604280982352606059942210763847596231660720936671058179364969220326999516826141374445360929912768362157070042235577660296922094075509352378513840149511728563052714358515927062754139554402605522389327434111633132371709563839190775754515458447794039804037900267299186242210442685012668395696045774006689673441480760941081637303345214186867625025957717937842614389433007764112202458455630778121453284407165736112268341762348299572059687233897846426886363133443023824348560298778633279671855061403511759523578125737138561047989696287729317941963044032806324279985136387256955585567806254055748410187034948251469076028121465601744607800730473029727897178064203725086196060630430094741185156740009935818959459950892548863863563263035708908178244919193148300637737835349974975488176931668890860371675236320735837293068536358629823947710187031341456736888876380190657186011115732136689904210155265378322953344918326129093875910747840079919765350732386280334962841426604948001862360764578353688462304079768258645224327459522740933464938500904979398642785682994284912034081162752292227040727768707666278556131449474273444246696646017092279035856472766048558123320282183912425494068412854992264724946963751923138620305218959667858508313381124466249275508081546799919938062145540750678277646046710072173103305959464790022906629006388108165839778489752901884291446726140805897773930124368930228554450624568355603879718485824948178872797615362888199019795784709460282018390301679164313960221322955854000468300743423674477659217848601869216706985638765331474557971617215066091284235136616133498006679821160742331263562840124213877505031832005280252888301646549286311213057431101764519517977642173125518691661508065215654058678767905103196194182025835922180002767119221573605228596100863052066098581709081461003765142317410931499684805521210287459647949297680608618496844831864232650294512433723130569488098284665367825819589226297154841612441365222632835203589915734868944651888582069480695467545634876017499995076860037766299544930708464975651914053421181775732676727357469867796473275539155238018878302799172757330479163499922923330142884299349370581575388877086959807481035944194519397952175447148459755318602402285331374328771700276233394041723992624629438197914216675621231014144259352754572777244007591004841880574754099972185228916039406567367985382352268949468104253412864585653350703694380997108658981087316353783938718123405589679389227419138824514100358106505457863325941874433009806717724449483443473156946317852181127615909826469091043065853636040480372229074899819091469027670440446138622518567687252555975607234604484792843762595111930148535513159466404594294629815418402506058391947875031756364992606328061325092765158644022826149892989144562888849649897325298018476107463530458638514980924698899052124658597223865315610072206674415266393238764318620455150031610290948718709661508155197182313838327192435834687619013951329204789271868280500468195696715585669051743056116107004271247365443916919639119814161932138977453662453557782824973072189761616652288793150839609346123969513953753833659286751315696185584472527057299787626144793833750988784431942363324409228818001467862445153138982468161188617372714825692601839107701727559127868387246568261835231537316497880262631869834408155404270796048420581112207699190057947753994002878051373635501371603023019754721322638672729338892788052229519744223240791198383547746371024631512352964655393797310311961798773518623226496611813362210759837816110814456888264992036403666914073363466206172530296462045690910151449780644518875025282988002102406472055413748612297215053080721091922636499022754575411498917493535325510065959419881756323006652063502830694384508164392027628626324488087801380230398946632928682554442149709867155177359605482139674198418999924713939168327756828236293364600792549159443104040428614020171220583795377880657513726461956163791129161073588904355209972105879097628340341594458775574302831882002452456288546726051376036949584615623330915768289734561472744592638004541804942242113865296670045781704567311902837165623172036535377106669324228397140114721779100108119028205982833686389961756939451757288586797700902146750227131633003096026116722979490830433184409020460168627545996223120266070149517209270706080627244121057395632150022399919810301282859494795354038266315702801393542934486939747076817983026613232961227974158860056607354155664371419203077063378488651950704947937950169368176740893419671702634664327299095097350946402334484784122926776179295621753059738549039731202599052511902888331514815794057333567673528201446139822135757731100908899014823566621178535304449609662505760003081008890399195001214981120832496557156053016230461299655990522019023490303292508777760126622992751785355081296834466034741093852469550036502625394119990718915312703177160431802110202376032924002282238455681728608881246549868887319702959960781992656266757736958564077756882286422497617765484926224968983363317282042286560842605252734047382606282102948665640428716842268262838583646443678193133638564456167571157780281832636525564983155374365535836030173260441759572906608728265168325630986061159256752692832847623595212029002603346367828380942490041319107936293714280093485538117960467329008188597145129741167302134858561938542568459337969170681966776959497582135281832221893767970069297561479266141186958441849765459092379989562103934662869305471547186976026068533947104766466755261353551048854222896657350173887960839018547163867375892586620473529725197104101609455506229409586338686499384195381040153286213230653298599729342225504119142492580565063030402286411545039569838382124618883282872196569385860627183716090552987160788433685998916490744838811406561070013418018217413373711420688902404326743514409126381123883323586290670426404177088306789549046578848276803044609759311894018750079147840385946883585664388650274731987957077103637591886786569903508802344119324236781142318389863172422302635646955100273257304146292607153583368962985546737493219302784133297979069303496204841602180166395674551693769680983620459790395896861373096428603574397162929300523838713709264130583748273774777738392094993239456175335754613447842555432038576560038304014372578813470007093328467324343120557583316261223143189719736804174910831574202930389901409181868245627252398871317481508197825031442633312864705681931783123700734987607102616439497521763544540183469093228604099833183079242746570850041135757799423153632924564464745471179322470944412126048176938999082023957603367693206545251317947033920346426981949498412075952534245138791950020489781605341460396119790838330757321044019451805842052351938667300288479036714087847245708156300936045983045126932998979757325683699853702937860848451363815427696208791312680706665386106855542178248332040740690144139895368708351104721103040440112032590662026276449892262668338375221763078932637908547534173436077365791439522509620931865760814546340914895149973280353668486541272834867623630027234748487895956322210233839323716958544792402419884440398524395372474188549066110144543981127624850215102085132985376909762134217228392582800296253820632979517901353498404333952546392071433395013538343304246739219734748987441879921965961200674006136755513071364446132555501640981347362756112325690610673626176973266592445653705883495888424272446514490596122235801654030184617828224041225348626905315350073613715363196101351217889745714859380875356507362679846978480400492477993039793276040464123658700605492744670171349259454892857325836208381608055804910295651614171150399158153686451968793432180444916399946114004577015941446401965836554520043239576317763205877806056810054955961521856921535367397769912360983067141045346475434708352482009931548645153407018786421976481470869089917402448999143527514377714668580994678751221617199781385299185397079386903609101833097451486749022442601119381343289530134736965989009138468923645867824552231085605479114460924140325778805803340440087635442513434405842683948013139242929504469483721060710638264781425866520461383014561615458490800865593534888587137052178386207418887283203930476872999224161112889868636043333538832765093887614090393576438872064884803754212722661005955860705085519675970059766392318799709200185848585332710416070380190806141455606507674727105017841773493796491749346795728599349850345285667828656984288399887307427919813690940757935825665236617312180393604167858198696128306188375338506683077070653364325165175266982503890646225611787948455726683318870206831203678167414633699216077511440894803356673845385927396972262204140329596422850457059130443992458397709952370155348653365824303117871802565535039406675319661018342987442475696890448649852113860731909178846581208232684815736482341012811883618513452367528433933064657734992280190131548686571626058270670989358451670370307075765630371755429457448500844084025468231480161355288125139762985084175776465388426499122326539959128606424188098607373554638944839226522815170833034345688340638756395781066298060905032743153061141944735131209558255779311124649815367176873161396987759340498430196194009795191972219997777843470631157876336611055206287375415299825892809436809195456524710970056244755363698142610863153835704930480488483219280182640534577068602927757513626961031646116482959682982031454574320202782052148399971478710670008910711330015450263000169519911512900482486688336327824362827546397391425944159662821804189238188974394008608048441195280995262909072638062060957851775235855360898207282140031070147480236111839317082169935549908809069002019500848937897710916065770029206372230576302883316369120465753017190491868316903309490420222824099682695675910480358898550710343204252261718925826707695828527370237290602570113270435358836023614689403783181694802029788624837899614640495706774073561100298580393760666681109356669830189272130281732966166805062446386583255357530683809475711793749552726658034052935791106814583082254709618934845185431246706157556308266536087190251626464531662124488000412421421301801523151790906915943596806901316644396919215539989519044130564368895361295637750770426025630482595475975642664474007081133808712514757313341463853261903311478913144992841581736691473209560871447136281572570591676193129360032921859420658125004745903829614340081092422414261378926408653402412866924186130520402521465454790565120292551408105385223898383051066853369898373487462682110889701646716773869038112548522327586697816745605508109342282734304721732627243771888342421228478072997320522686050054961204719673320459981137104111794509163221952121385781483424120981384446699910105213647851795973612917541809031319164510376363542496481128933641789429121751249916201033902250650647808295161252797142160376575888787812795792718376376189097754784780508507601521045525653611104867630749098910499295998471350580006837454972088163997958434012088425806474805778882306835747202340466550837682165697180360203659664952307423637280485355563357327094375752286744045270855363586749703019447519534238563600328460308473089559337785502527676179606030618099396158154153146683952162190766759197743143318423979322621140335901150576610249861173557558419211240100741072777023957695088164725335237404227572931046490448424504016500138969430378881040614904129880291134924267976845740554291823057046993629732980638818453507507966155253214554180186747954703808146169965421506356363752071987760862159517728626351818934790671304840532581805566131828014340416408250729509489727022971889436669708027507347644370481899309575136093067450474847224783497344756623588894460093266043158031635763100053312829794937639785683011984697568349484211350577590878834186277668015309303586841077245019326109357040448404434543612673375734063321177420831545202104365958070475817426766027176739914745147373074409974234741422140314201734546735092034564754287867899344051681535419048911877563942224197124962848364804234547870426711398694796784486141973183297338034868191755730496825365807917542272007475021162475886781261726656405144380521073766275544902326075765168143353203500210141344388142288731481354461170704468301201163708247358006145186173259568566532450522789410236203621488697787987821658514673680884153347869631871703323038420810998278676100347776806275549407869496858776642608233471843848906538356300194438335932619377200065834957039069873702956097434398941596830852090113269325092802567985749128457990954968644582107219457753475860855868270060903693290323180977563395599301922110478939962639051043101252881433428676419801489689156386896100518864389148479876808855237266241227480293962794930152181943990773736591211809984344436140145873066237454942009264308307067633515535847162824821619479504606929181371251287823470597472944366423834479840988888762898665405935377447960938737141876250732516164927152889171117511626936613156365258856050245557634122425726218533348074076986122782345280656776082275968054382749146397141230499247964909074308307173394924792038037868078936670866071213536549238254492465026748469022264309358826909145855300877267919264486309129411154846047781084872992987653192841123966884172010917154745133512253121810917093917824666469101150666467262731115175610163785985045190286176769361437358950528251719730556737746084953714648904591119801895621721741223193025424304950021860730468315139555668023344294173670406976421143677795145971048024945332759040201008055369805927393550441765675010015383355099885379858073268909514532804179079816210719980386808204745624606535801707162133374637007574463831691599284614412291199650820388202543171987151703589762766916030003796986641929639524620182742807305483209508100345580768002211377397399671990166456538699188203572997120466265389559558310646270355297835083269109960578636071300466146840037013095881250398234603798905567747307861977102249031523652448142506127494072836132107643625652705543863164211249285069372582302074618195334805671404620596330112286911203328552346853975084694437706245802033425571758215525597968975461486551032502719689695991181411454833019206352945177303373573121153345706996943891858564334784665173149200557880913821602403454260530910739346613108172267298315263732710194058640322481094102272965155259005880026487968295017255817634007170156013858111317596418187917680310171634990133333077209473732925208150892955420711607357952320258669379080723571742455369991198620209930411948776626950051343234051589073610815899952533475304625961029713879841947696204974422110049666608279312809124167133055665490176883758572741833490301221665839971034119849782029907071473054970466393773211633482302233325055647125669812344986762540176102063245672539364845908219268775696342259382332645358625062825948372869519853478358103659037535839969690756132106704161182543688278374608652367963905160464105610645455746206301341157600297695852442950227456597968861360944516532313788034871799818830578820492735726577885880414066627196955606405786723790161047604914320200470536737394466074539669770359342623607025036150817767669433592668700724738345961182263393386941263745319998494446361034106247619022641778919185371462539649262482005497834494241791408690777870693957724102560081089269428132994204554637929368603245079999791361395154824663157841212601893567881277921264549974551832622207545635271815058164938709119613676691186195207339710291980276917062966129389123067977965083983139333073487947754365273657527871605957204234432760923468236238648511880574729188737491076540803215094561917620561574491713876557301379857787958065284861501609360499986886936766057871155747466563136800605456699330256017562138909675519540974899460951970725341653654731387803960186348685447570194710524570244295873236941874352286036900514600055062080149736637941432681909665937466562599843696400011027761118369208128806579220659334117506802707391096612694281460288670437945011229242109176688594404720832462745093844133042938923105742864230601860974714407166178830030830271167778787233027954063556670539282365581283438524817589865011120545114746465330662409755464549128631228097914480817561575874451021580268738213718333420075393204479568797205955613878337019709774810750078906940488959117010395923424986349687419749142561587270968866579869672238747025110163954586867136351989806794395692875196918845156553048836965608335324486917103414336562348562489116765891799811870855298233651108401120401654049220431414656467718764137461321966818924927229465316867954003772608469441242599584535304438672468969315087557392015090691093890491766581340899278771458823964721953894713160314225528652840247632454524053028082372926617126150739480332409640081875176410433220482830146135546516781671594542801640791923392138228306415904630965674287985741556754024307700759473103580461272596169557858474791080704111457264465033733900204097000489865744962604920755273619730816537243522511183467831179011488340843432126440496446585611208079051645701496147115175137052828182413261153403111541544191169769649981682578763159976548641824255950025413070314183432337252471888743131319926310970597202160846584275395777173362232513996098212254263650408112512258370047362417742260410853075646861803240391325881174563450257149543659199703002426275809715167923364990813726309582668791760755363111584428197416458479061945591540944114407287251138551974253520432989682676641571853993313422109075774322823066285230316769196798424883636895223076979530267819998128379037842975841143581452555337617484683222822684513511160686557235097161993749161478041637476738482811999949932668878708588321089394235375835709606192144521487965699963630169310001105445017644897723804761128527064942423291235639437372025139717963916212816302571879640702770198765266988440046700933578505588340970452072732753089695611435539996029618172050166395238873476261977438096572839129130072510344661386170554303509360808705850050713357576707354878038601182346020683729026556464568659584518491543298879177435474019977953249929721839184151618512316425216849842593257369899689592860027162035675921215962756790709503523750557998644134178848212687877491475823215320717439340231416442223876431712450503687416351776862532487069497598719727538641061865447043830540346391404474771931133628030552575437099379839500973172827941318306747391458395302514129217343334102128762516955876057546188686946216785702767329394632228067720846259537745216771225647289788381875015042916609017002841422561214666773625306904828020815900773094626208197619882790524299001948862310758875613440950246927883922943467150487298216749616010327472614819465856789376275859766979012875666469502192195846341639278875027687853370681571252874977601714345444604248808079808877621839000193526875290756848357897736602070282810971591793129089971592357527988245138034554175285040741794486415272809771166788103409202218696857965177217444278573647204525407648843218125055854062860912562160964515834976698665254468493335719818446697045430645099769712744967695092390256978771180234615626072620276082051039942783652312232947242849816743040315757317796003122206763547103630414176187902629230478053098482410770877682121762737820884467101878124230127384520586839887876670439622801794126477987621088769141431094844573436232740968858766276763192015003377760786664923901009613378505560927277779756050075249004405706316079149934678648163183225406166751392949400202533784463427367614458235623818821003261771958749734812756368571034547753304641296954654566824139493643277209314236909821204303830869724617115399193541039773705643349545998630416204235793317605126450082142199769456569825781168416370226616904939980940461355763066582302525122942507839492955537328848543627358369562069284540921332439683604263838879290794064031995990912351603485780862041676661315070409231450267061595361645669202678069885127323058222721884381963191969428875395494060525881701313632592044582280448902792000135601275679214508187213108940268755098371214317526267702263905529495979265525265997324737187369792010908241329991430399418510830664866325937461944505481940066310145033779928237315311809858902601269334315593133972501275469591506452528426326210701718440201715431140243079483283764991484006860117901103386971067475508878377855909188558687859451243592055222288332897976913612328393997605662500594481642655496518026617643053281891849552286963140743536913022987980522957440103411431019544053734362261741438429179223885430276466376100588008919916503853664002642944764810852538566412004133577242581092878594939012955389174893492998918854444712569652191807289267359948425162249513119753487960581384191934895399833893690991850383104635807619310287673825984214485338525607649994327102588414850684587461142910957265375565923076056191767334924673362975007905214550518815723545708156366784694615543979492141078721487488201208650180666959480741240122465622693141266056794964785784884502437193274554396423016548490923291037953809826970538165687835941260355063657761916675096328456348831751973664719541468302298778059883290522498702568490893922614471576373510132580467564184455267722527298802498057908841054687955346743073685104052339741021575964677871893556127670704349872201323492118446434320304594839565633120796552134613390108869976107603445791831079490724630873585774538966723570751888213954102535770329246436817055258717230812774869695185929822888580855912851280606499321411664092820618749848675380073448804999542086927585155935369313078893575157242992545813116482633103940383829877984963324604221591507560390349227032749765612949952792869571278463285259756653403970379547781969663016210102451160868703019991545384209133454361180370489573109108207199486932002699426062205393799589956772050128760671455524939353476723750212046434786434947417108036556043288564944663720807289003025069171739754085596667299789417243131960935891424771873182325637415706810847515882823563850149177400660300674400022641892265431386517400011318169182118107218942379934083569137185783915713199687472494819919086568632950761600054792655948032563962296449084314762809624624064931109817094813837083557990488584232859265390601383558105896869561883490243989146608593290447760903050857847768403079879256125155186408865718045970392833994082197974101600016469135244606255733091990347312612983151081520144332745919672633235024216040013540803391916551746852810168627685716775498402495879460255719484795960331573067539170487931556410104452542656056950002586886718003874006807380864200124833276455381711585480247271963316219069020176848020729911728243568086686447570387453765068255242641643261590384670778032823671481691440296394238836039276327590042469093410496820714096589059240798377756570568728114364830324703213766418841595453333491641060663379565265298135152310896698969509199309177807182687322212202430408396136389509466342253163047345922955596402602207560752161769364297459674652736961908786374222011145995686246083712072326470833063698942964359414010438496518978649035586423043552487687408822101842076551164949433748499596531908996916065850575271597480306527615744792914902160092124307829337084852204111363938648603463631076335695005717595668280478560708873900001627694572015798698555294244551019138966163723886285785170634678818300972470595051294107348630448955399029178479126840889544825479882975018788036172882767788152338360711470846275000538708338161572922019907456484971703671048581089219519412333553420480861076953634776662287694708726440657761739967323705393913037996492910353636475510356875339760309861726883220579466172008339389809395282642113751177687223317766024447563465182379414736506412812349487294566712717461590883037031474885715371874332731431593386801977992899657128986286495445014981425785248494692256575955492627725564535029948014730098865486372277331542952532969142237202233694350584403525377777800448529439894410390500737820328732258000792124105850503956973791224346163802369321748923775301882152591375912705022880800690428874550099126017531401200739377754355321045880516353964564220091786713769655859884749741109251174598458322622042707362757596040526136720248416020044576232824198776571925269581932101560937383658921580054047850274779815538172529914515546601383524571452591299803627354574004848603079812569294275927044267517990337569087534977482503398560860952781654466100746790144017510180144044592428196669369488930702666025095516140309231758808067882946373651936528697472360363921961552778136671850806609380042684124259929365831853609134240437033084943775364169469644551461323794951342697420035936793131293805270786949310678230837045114836718726521587951594650809373599036390731921681313389621983805459778677677411710488112248451532945705729660367124678386071581176142323863842967854267426468418590812573444380287154263538925347812367247031249241554738469515960208863032239564984894139447633447167545815294935316711073429190554298858759912872615080618600651722010257796066774690364067094876754008528017595235704981860175202917183198583258924163158422875999407939250554232789016642044066347383126394360901536087026736599917836789403078767189248092443766165303902491747066061494348635747160743797162334175914988449389346540614040948386559859583449988070980875241260948074013083778345258306134254211006198780537615041152802536380774446587492614266836948318874434861945496293269245420777832998626426482888317566963854944715029062535892727441653066405656983703226947103147105209910572038620102695061988126645503321369464493731453426257425583108880742472939106311295987217128352885992643063372282785715535478153075448761806554098153980039187331908467722733779185335637377691959778360614607947420518197546768200009948483824284268012734063977692521665276134788153010808031048522014477080561299678914096832919189915280645698314503091658209507923887020231049789292392303243947873227850646342344717606263300905266628393708641948991973757952230811418486106284244216528754137054640135131499290483547410091812089260252510116427195268148214687924991254199223818266710397040627092832179016892174524343791432638643556735886307777361341838493428170000933536871062828722251602401077391562825264951922476391485948182046665503825569130343077838634174899205269815778161058449427017736768705317525223310277265097134535656203651290419861154011856702184841347621741312840493274835439314701611335233452970122688423226626130815375218484224848164211765638114567384375510180863744299446987771533333916501840795889118519909108155052776745087802373424768920432695315628187921588642366307674507898719873590331080198122280746845854214816899382406906742797043234514961878265224094892449125258942863993569288659379518807245490874031307175059901392902335894252587749525012111774830985226288627570566408157481138631809098769693507312355201241448528544814421170497276856848013643304430375278865314298502889531404791530510598283186093022129316731730300414668593942052072993667970456176066724507713089792592399858796356334058228713426223161726142255746209005587004656368214970040627777693847132327370337823927191326294886277046107669657832532761736506861920498093690142437974193115656024785104731040002777989823697370763008060987978654949198842586595651963438995091734244809594367325219500470797364659577224302211579380809231617641813591002731569185675437730887124447686885895628184652815489371951026474502389363118501499303256890027355326279678207462052671191102866769989811831658516370226384262737701953971826887336892766405638391211314780361970389040518435706252163956880169470414054945648417701268262531301375302742357219707027466532227102128369313755349076499113993439305853268018937071113072096292400347307336651009010835095406483713283696482768249695736014437965888586838828264358569957463806172084171218023851695537842401194442121506209222559278534402761339961808531362797436346694395641257876001261112890029472264427797065577593988052050447982969039908799251350631100234018493036615090476458072554020182194638778008860994026606754021745339709783890396863589329748768927636075750324902141017895238905022978865579203218484416553971218312535902856073669084373381240334289610101241958402643304361356241388889104982090173804604670414330346410054734254916136560065499182690325584126931320618176465806856314472355888653799836368930424746368417801864687799781665256970367123639975474057177830843806732487512308000533907017140857239366375371151867507988980813912002062271696199661946836446803987037460877873777659772526808880774921753737710330664626947050608978633242635246465858918174094934678935783343591004163111891844025466627924439454553531738190393351665369059204593046301405232157248257711195404216395685509653908086979211163141955882988511881988772491267341727039059574096992520753437398001533314872374009167741106458475175984607893611234488664533320911595748127104716764739572279143242524712637988942091438034742218612290198658782562102791615525882485051696403692228840547549283340234830194023550064533902489117656658539721921244878117094723430521652189217589553933406920521160239998706872524617879137664063391496952438193899266543035236907901754133851301179027203385520077685414401060335632921309068133506991885524420029229433875784779813905816537041397324458085783699591052148901525360048337204020231195153906145009669022730025765954806128617148558870909666667311963255580770870430925917845312003740152464944673222858705163173848777363231727026479748624723559478215318319300261145308335574181186725267899958867868754619860897124553767045039721057065859272312519916373025754057211154719241353881193552369794988605619621937341916698541435163041331354102215804142266088441992437037206531696505620423419836870630990895654284815639891237952366431137148216091256838602110731359891859359344982788563626559063104175286778763978358446124285092914098423978626418543792953773274247294823569502113406532380258243658903417853851224039991988260627904774410431784657894750123435388846086684339435003784155006882136052563310666629758947397119144487914889674138594614484239109258404513088081841214102276998962826238337977594554791399897391487752283231961336192843643318177878157562670664553319245432104670886614637122874279396812922482661926761475612620780754502520378089106135765456135972090066548453120362227237267496638529985294570480959870614549229571119568234598515193479618869391892566979809091990042838875898757281096832361903225340586018508251425340128908780210209462626908997320408157097773412465082917370795650940060723271774109083870208082322237113322922793085834983039052703672711051855582643395453680378586214562867358306063248472328204421124334981072070406558082146604344907698038436928272101325346734327369627124345917837649523989549923342734002131701909281628457048900591098670329661083985188016823823493823709042702323136410291035755405891342737262783959178881775792923217211576650171766740392037406558387996319169574058589560943043773943078139333243476054158178759557827204558629680901797614181792865685599152319290118504185124859505209936186745637455590259746753371421918314493476193239884484213967254624624731421111736480562443184509411822342858976647457045531871685567921814286136247520362010405246997625189980353187039393983343499798323022222900397186037947413285686661757908582158809654250610297920029600516581457851188045581407023206603152747534532149347287555514710172348617043770807768182439098768118897582460165109229565844296359864660086272490586360486654824986952233235167685364564083576386137047830209991792087654834191764263887384974084279670469150769887870852695786934018670427893355953227799359874483909607140266094832832394057202262728805037571782749177690678586506984779137662646052815346151410180104631549006242735277960207056782525956470550821766987066328012001369720788889695580497226272651614330901622697400561273956340830548159323407886149273473897908002558346870566539092610399162810421217914634772583879118085238396487243609809576973864065115700200266962210659861379480760194510057499573337464477559440496307816334897250744132957124922022651166117920125437130488794149404327236353640311496332662064565249385878494317354715292131397719276904834236271427427881607661304840317628833826203397010344369968877060166194967773986109537807392076682011451856868564772034099241599430522427603112814937523490279785089069351769078234013546805479914850261806650970054446065522216019170170919342713016720649033785318667282248819967351141128521790315882635747363882609790238645393283969727499147519791314065322006026804648307687976814294825580548723704940936530378705226600497777718354666954723149261953448098221055848702952197753172655913071756755240402692740993491258553726498349922174128251523063571306346792553863984984458016457721270174871426172945201031911898276878634465666193103474092626740274841618290546870521567856220657664513097899508547719754236728864044672267272426202564739429326999563921834150176074880636885377813118515552517792764830837560615144825871581417292720000418599834222374166526107705939026992927122474731395242869562408990965024120696106709104306199392257586405384603564803366950504567665339914533444057463855383012908747972349150638086961735488057484860551591973327955599240434036631397570327477560851916159228178000709716328480279605171985021316534167537356463349902678773942488028199324495882785841647875401281797883179958798675724623740384169080111757379084019402559661284697830292623879687136846449006871326577564088502748027595266446573804631536412024443678904090248990866327703101421057707344035198860030360089056929791011614992443713155674154626359239682470760619593027704406298279458861025429058801898256850166105450497667176850968656478585609308251510327249632674932549380342251554805294361001238815593354906279145721339677055451679307127483464971949164987341722626330931963564650620348852170959614709350817653417891709009066228665526899092986216105378842662114081958071518082571437650168559644946897800977918747078622019030940700886594955035768475876502974563826370792407792834891825603682367449718524637431566622575929035139078314364353082604859954023577759588392934150750271602779828350678841984075140714058824050445215743823314416273572225965711187591703981620956498277828689384366998804898637020659057039560220720664351597932607360810941228876644792332898494964381973124943609033715656345430080571784238239353376073442414984762974556835678313453587696786416535086967766593546154730564947063698751051419597672148201859629314518076862383487514487767683404780129281234160859046062449823858745269648993878972356791971888831275090301745439923360692319135855033678428571145911473513953755202995848851908158390824111224818569049710079101478095026774565893835918907982119597885751903792687052429444945493713071597438841335552353499620512234931191601307443330595341094138120177557881268335102098691991281109967848716796158467991014611007928621512018782542544630991075850286692891443758940301761734611973790795560957003336736189164720998845198433181178644184958443920505690458907744561135705573111009823851037308082073587622629748110877452865055198033140583640258849584667251236500091435919080861162372709665159823472669059403787006785299601425947893057475965919337987745032419557764941550780318455170159627185134876988780185477221965316269415870281706792416784143224181033194853290854118082388356120912325549524120965796294530608783793131449124169344843065188000192838376651055812295915443216774198848689414175443537891380289140653515767437458085013575410427364741316391055314680194690358272939986880706313450347012032339053019255082870057619021226666674488745311972448972703252930408012370497393811436618272382083883803876245434412882594080193646680856369693252632069050185892358482281694689561031721245741457852678773551129792321110420608465731318899940811677751118110393950819503725087337777676319198110335972121734742711071599572810294947480180338251229960063198669469403909088787380283295172700836103716897839370254794377219563414541775750128646396478506453595971299045951253347364607321991659586132785096340584013279991984021826432028956410876125584911889568297092647591227243904978291059186312399342462250794582599345267487098587453767682603073895538740692976146440540767523371805389120402714193844775890045357026489328756834225133560478953954298052859595473795101106615726531072088892420410947933813263210574968350861106687677000684494037179682964779797208793745860394677987767324857641055320816600445779519710575579808069609695267850076306016240601729882644868680983550397012906393684831538781628893313128792870389224465370048212710602074007025435959640409702117511987516105289980975742733385003613680164104044930442246598281475588104667896310172275786691142064073199708693261856575480687874953484417927909043393699058878533515612737755369932557314840872375067256659796124524088321580182489955225083077392721596387496232729838474323792624250593827204452247814519019147988241785080652403045123420537725044746152344508842806899488383875118460110094632000176207583188585149546674818086847692706375610250033043510910920818907657841864781139722925463483196283025932500715891014119916865529169245983920180425844702190290624075429781933628929411951724830748164069815760961594141384123960999800245020513775909768059064360799555381806648686992619529703522043630476731757716182314263938397295960625389898898885539368359477049122656060230245429655322171366925441403515734410996017554260330654093918976598441636312547659584914965911806724842278952646818243919510398440760801387873614213949231479383635730066265877905419428855962154136517954638028208282429663870939839322505833291783702284536015570132161227885770056469295414425477437204108080615787054245236909280247571672378332541948953555428634462887446156817736883762513538686373881107478677528225043050773433411561925367436343904259453277633481761180533133760439816077543065866611379772379811506996992318534802026182117958834457834422365180640051702701660011089277955586588748823628317603154131769287249060896294718579012268627787483081838912701454219612932822115765331359151517093425649617493758390888444329935894099952303144363935610179223496971457668679362903369912751250334586128356658813531807927462604485340461399215491063085383692749398763472866618789942864567933814426506205646354121402489383021030195633230770415281864958403969625773943582395242857764867548180201371377063584758722489425791671391971338124129695954345121948917600601153097188538594855621310352992459363556624914800185403938343569848032602505822543260045863813287113833358185040630269118194614271612015939445629150702052132926517701488678923472625605593048729248400154709800793878686741007555668645167280044927678857082973319207317624551582250981152226734933531370096847274061317744041715839117575873297734507003201295835625639996751645764171853378488927062263004905225486272479306300908373700235853387690201958262583955443629022694784085666178818904034539213770182896045133312171486593454775431805620514116223971594528890467504273922992582008105931452831463553515653429567962389378960592594827968989714183302984212162043677197670580844912065411067937702864402113066990794977868919415983717759938168763710109670007367369725981992665815515276192031183903629036189903373935465345724497566782083582513966709414066763377651865918767575088225225868095154369791010951780726359233998446430414616589460025645941078759898993646164840082510934561746832258933125961821146022601339447736341120506105178827596987131784480767186118042623754807877056926139873381145811943114106607272967179478568130780612117707751654854317264528851880281780008250808093199651801484868626169227599567934728252141385948429154396392742132242547630032526603296550303578572984860128788429257719972038984996667378843228636224773413692444308207838262681697871596336519758110796919593026731633642160067201206706314978622364453622468682454763397374692892490493859341368552527537972539483876846681541478015179349082859506869670794661575140954369025276536742775849205192962444744051305947281144057360799740602385372929611475179062495815471403385317073181499838228971486476981360573256073129017516507161225859137787688618445122393786438837526729886352319590068825271518894803718870919477551808637090388965400442618186487425234998362850076691850961069452173131546562387940140613285297458867927787453253333969322422441584618782977602290886358625361593942924531752701175342176771676709309572118509667883326404883786079809102388585047218197777077914365727441447736603530279760107864252273974223554061437767728510128185304923880716299607762757555306979044181161272875728454566965237697264280964698623687348365438021923341715740946292436918928193446273572879102541215959830880984210286065991174664203385014384517541528986347638760969745914250959378057404954490688401985067966326084870927332286014045376106991264893776145751339047343657859729736217690507740617700009043266846286342857636647475467153888750045106191709269802553815579833411864721707815690647621398752651390101924630252566165568615392266134465012298042483474630326403997436061247858107096970848466388006990577107035674942085313104989038260663949016615008577677747970363825072748932716297255494855167327490623867825654009946452519161624342084903112012160941571408371965924723680669766424519878257995297282796092055567371890405291638809090996469020158834203659229905430652116852714108853594733587170818905509558917944567416929065668981255313288606605685016243718863745695064351337634541479147095449882172953572699609355350032671402541401342107304311791223921102022648442222809941068049306772903995979195413842051342462287824648553967979655940131814444256632839523858586028940011113991946893132867698224437877904157079393202958695207914615171424703151183948764227783812395759339414367587936886508558160359802243186925297628063018987213310384150777832372578694713992569497626039880116503715400379578633024655090692670227669328327977826365512272383021008125604108476301239935795464896644112864479021613825396230525327162324594014260419326176592064389931682623629923980053145003918107158762127211684720016582211879884773209545207189983285036120824725835188722352373984740670183711788756572433987550125878981510147785336395732593357780875159774621106298262368695906479725950046219172480715411551823766977611623518561991840473693463489295688049391889043079400646334884238157098199894226280167899919584695199634791238907299644168362364502404246985127694353176656876851333708422014584089550178204649727833371767216423925086203943121500994983071609810831695482428727882082578670363448673949050183729644696857297837597944152001915605087136677631433037604959983775266145838274072386487759813076592946992781859217068666112988975776231105872761414414692224371910024705367893966139492362287976535997313677067929649817466336500785563082521925704263492534696825626956659261223372751892991060850522131589982467450912733939049035195038925060467726145886962779324609897815969830189661715948786314738835088842500230019964167537593497674398702773959627052188110809530650473826245924638722448486100502250529282186628718328929401455915139644788796357723849063237648581648849669203688490328509539006900906181048504477389948585230644137949489488216593762104471992579680924606775444204777675876172018563228486496671963740668393605065502901965049568212840879318777065299475690862431455571462515087033386859484028849257845340932808435508415717579821343875016991376869445007842076131784118061248379982082397175359908497915889926813272848842057260736909856032106990968198769803020134095549026136311233110155131572855745046269650293888795731933310129721225576600053546364829211006574925749700428872454577258287713144308179767960632190562458802525034179134100896568956764904680567792310915121507954188876480619644935424289291495179471878521103486213174031321404051422132976636425862482215076171806920471028084282288308037947728239964154161932260212461097334773539033976687942691752321352473362325876913202948677039555977481455961082965512670210247070507023831745522040569377915353181400168740350645200892083568762808097505802248098117361071714438234352758513236858417520823180559018118030728841860101918243247591783565733620716395282298626687186974007433635370377724534319821370240847924519131522705298659517809276703252939638746918408325827974387818881091689015088848123579827341082153115496666996839041814189879464526550159141314239168291844799238700492261954581980241507811541811308507849591285557800943006549341439921120160099229557073774328549242257172662682744633444060170836577650264763373156464739785690615689241596554919184891229151352507524145407048815013953674690108515753054629154610073220559990681674300762470745656514129049159589850948003518529599275569681126253721612621913988146621786545289824920924649411500513310620562647212077086781618157147231608784526650089644856393212203990215692169610468099325786578817037847964414519824887927595414993848926016974177680857554283324417438951509767076222550355081779973988550014914299419266491657642192118077417529744572983306319313320463618026721597941918751086908871181764202841636686410720050361930556999777551478773111470307001617923840922102287652205943681616085238346114425417193783479316478383111824900500214590291898401961633209857693722142498223830793163175502952261711784111329942813971396364386139245778013506379317933021722890030678340386694168851734229462527811281728495462850727307306233166843920424339607787381815813054255516534472430941952311304873511221920344660482017927647875349125319838251574237960090040255551355988858222301683435653162333149287220277900206006738702462449916133146664777856011392695796353949490665335491430099280262175322801899212756872562104259032615584167016810789223319649320188676900119244782483289523709164031876769209634621064950566704018983693527391209846993284525144660333648708852659150182669408402616077954434347820710290390571433426966992531726394529186230414820489401277282609825802883971987362210562488804766323405431490502816082957075387744216549493700451059804375943330189260068193403168910645351965875407591628566641510403166895565273784359009144560013949780204103833324912656643890824961868935244633985782449770402979843437108950836723892359505061472490554080455913619397705953425976821721051729074478657336862629069574998472456799472162062009307142150215758148431585823800963394374359018534338389689167818138183629180749707824324646862911472653674187555959069610336507304887446258260948157630682482608043057632708571298282333099827263677176232478733812812750993052150196839993597928370536479813917748055775938401895775424986919786914284115219858872134492650799597365468517677349040928752108595495907811565002483634830294073730538102368940094983515255018133109991941013565765073404153217872612837081720060167969202304035766939239251429641486149345866365857855997988908927401882809582244195208264129561902399071495844714069803212270278623029160421302277773763682887227915653467747577459390175168878587364434460952615554176786131882741265923710017710742789354215327479388327453200454024769274058408833176029844371845409719646692281813568869645392937345919354587073346057427234369705220135485290410081984763796273811299716673676259890569983580340871603800725396023354479304752394345243464355107006625478391797893604187846236798182185346092434029640541617573690222747851350984939926236352146194761094153507395099823870009628775658723095231610417985019925014386510451093997921837701383312227015670060432231078372951486431537767139688317073341152138932722655842959606346738162709940651373035662902939515214843162359180737232588054939463954998088147796479058362586859854267095112654997103736114280008315475487378907045865355745762516333862979638384589124406648099103043775646186001191464580917935737181413866009876326875805924352234938785214884663531711353989710368527615388967462312801870211464785208497575505832515708302356673325034460298358483273081226008027217536492159150955442297029921161152108587545032276133124294139188644110292137886592446319214823819194283441850665305465857322396205417191220437885447684093349568694417345747922290944864856438589857953783861316405396324655721106384502185039040769479728507055105186407787142214629465790352089515672153614022578847508286299483487301844183561868602254096270166190933635015486878769575418866688661216852641516613110988397044125679149677912476304826330115175999015952756783529784399302104280985988771873385764124474214796923480238402828147816437398137667739307863770200154205150107515305667419590115183946182122050625472537618262771795054318266704054342451462023970185490489519960768571075805351679116258428802864559846038566520609132540088745751042268083876086744895264115014063227776122369842920692500279562196398538312451535659876471379021733100515147642637837391777147464027589954880406002327854475131579862841658829567303798109233140628706567171308776245171421966003337895286117796165861757363943281315496122984284034654487182047205101788171748699599274628344018697239561466371219878635742485213182841915267665456314742810961696329302192938895226873304346837898418236632026337534769579689252173552616988845481248954307059564606477021721878737052587366676475763648670245779348383847133693893518380370998235324734460695080178890083786797940411478674058631260651216983844183614088421045547650016031170125451379285359177606447487837374021138992733698377850349631827846861640362664360044615601624617720900234418742085108358152229384082556693631298998767858236835235160355152791047708260221458690098468231568996564952123764531036406810403715528444633669970659304284315876084335455662482206931924812918285067440770523934540788518466867785163915506938735356139024198054917356241198581910302810566960329288296133670654934223927703867327478482992948372486690564996629056643536009686218150923647512128223997771842405496323589206605595194918832921960808824764506908003168337216550490086972547276386972765699687153549248208523497431677563704202981984880816172620149903398391740791371471537343951620670401922022499961906933893900493663836694997714238913766702157135554687267650160072267749855928619767682298842648169775939073943756363729382110201297284690080778742565787445747167404764299773156468404351500176504883726918857431291473098743089018026818014706899784921823544123639550715232834642196706923427284049961832813413948343961178900074428870437020197886656312577228677895940424858514677492458776774772848037571810617288408285850632949625625208500809863605112438811762658616874952252386343361739008978317882061661706649925035835390911674295731033233507459615685114862827212774301180855949802001212534842341554897105389787261400799857599887588599277220171764027033768695207089836148921629022048420711100894715003993757459548163669354856483687488665011780145720562019813406284141131650894497991812303429947378520182140537841724772031453905155582802678949954369111695880570210130013578829542150184731538123136941829178974849786448898043679606343692043335982474089611548826322277318088688617299146010719385591726823881698870220545100744193556431852670597829772047131993879069770002421431031589965033436359954523410527645061519907282103835024033560695035449998648884244973575838048975506754008706327566781348872504498408719826851490532351467698871737592515256605662533815983688249019985841632484366742992473246864131920458476851453554164506193598270973479864878277668400356679984583570593336864336051878272637469821288657914667228611065419574486977575082814194777563068882503883175597826888310404864081718704737197786691377412762443650106358059784570700628684078585369860970430150459332164272133698369073171295262606121708739272409963647386688725522513327758707732514905171321316878369249434568505858901359119861049356591356021876201507192114377146511712861082965426092333391785426174705001054324242384376033057645231982679194088667570108144284905760720825369499607619254381915376797075413818701398515063889861795605432564731863493115042607180699447039623390238321096070668445974866828661904749206879059040488208150469794062612533403614849574381643754495541375570482677346433010789792939100833092875614403259370036406095049439155961309623288165867605790960800654265083037169219526672439602137702585863090331304475524105076321118196889498433855334670558837480689292594869435675100014250115899577759198090251924661103415808344850571828064962539076278430577283835034749317730805183342259973566536623491671920264239595053164480633376924819082720393128197427064425227059477553108390551556961481187603223948371655616953957012641595855529005719117714317711745647565501858862245311129308301981521656421187300734999043245600633080255920318646741440366260854676835143585324554705237952214406282475636883013053864214009845392502252779032373508704671491104814234951802266548498100488002653157020935385944178094238017866943553416053440638062153773318893059997969537085036618994229879420708192266704326969175794632143328394197132001846689487300810404561848192801299872608499669606045478993722874608178664493525087695514865756332830434965482993015985173594974551025594337309366867905181244074109363185974108074507086928381577088194644899529355004312349283187930951733358435233174251808083532354670872190724844973574948958208209451034254645107084635604873242949151834568029750049118966562930918479005404476197395948161259142967825831200833035876254624221972028103761540893895208009815430751709850586394936656300485720650100561992808750709165961506746646198624300437093446920032344816173808104960854583318483777812108213332275972767892885213568743087726550160138471118145846135843507972513459145629503006895815763661635876059582092172802084295279105159902690505573507966932074085066476860392259355916602022934166560926646123848519804169316939089928972633553892909242425300341835553961105943214191370462765258890025264079101745951320372131928363391757203400483071012777464924986452443745094935969577639526159363546970786469097709688915367586045412445509536302189401314415190524017342854162713599220822937817575763079661726807546744586870478833989946486678251220726148725140309304884883145043716745928280833470235146408685057729371640728193488260173879583041750511698383686986433229633634857637948689724614771977050707951426806965980909288700754675038950827485347473856049276718883733374946401735322238071217904059202441541125175709606440918082934894377545882974638421062566934137573017379404339913431686271701838665867774107948037126677846228941115790429989196353769859043230266984421377168214097696502715790014403258350601632295345439406786775588003342401220718822853523025128809576035063317045915466848831136524860499317371538596759875633932630301780120257159989371057061714588367342882193157329865159339088159733296601482245003910559296210152853532139914546058936156553198009010577726615265021016234496749086315357391462929185069715088950610347194071025103020128299860891312130465269415382790852797494474823641227348475186082058224759708465449261590999684371175588668016741719755630829899718742667609179848749084802146406339233617450243942855384926944515141951643804715870401946818695463170788275939740522939213680849416809377746048140874537145846789022361086235229845672643646268626751740694523257810373535593232750354890137458410637901938344222123466926157059075499709631535670610815812852224003693773723003990933343552153395430140051949915468877853721953198811350117169081523697225081982207169971298146423608456207686142056844409416889761709702750874139436251490068172355212899329676930789182442805778968040101749925441701681903179727975673039313243139438684501399787955172705714912987214818969512400138326510130533873062695451518937794114341855298814946449663897313998954374570625558371055489765976198057066704719384206807927209738584823094528371654765030960366259448431944702540462410529529225541910108906188332218782522057595270319788237416706340394200703681833506141863235331582724382962090307334163396671564285455111314239031236380435136785430173206321603535294561812848998423970903843676732698464413840743272852883232001934632484132333192780573214123113399632603377808831656834919568857302381210745479815826263460246112325921550718560136325336505932904590607653401870457482396726305207057944117032813628200057556754162557719016524152623521665147977252883372902167778932057918732760054686261217031700063726181244593219031857285044773889515472348645131837164101776996808753116192458333529271576370102204619384328146400023422474409476540388451047321161480224965537879657292018516684977467244766806889039639087619701281909706664091123592168888441411261897035282947644818470389040610965189545251213866798268084642013363976530712220691010791117913785288035424831194120357082726825173701057397271274073629410227973758132660851541282317913181017754878046753562971512094612149132515556975524893192025349614171833564357310328627012492232920609339725058245151841237059958557598326352619943373127249364645052054673703609608161983279068372304026932012208209763844252611927873633854932092028875776654484045235276955095538537689821434492208224062747863681399569759138686950327745540936079759407481520370975582603656290323982497937968176703878038637169185048424486691355556561665447481626586316333467017082760425455409245272929405956560927639308052081535213294263728731395213199416798805352047782732696921292861641331980612341104388145234925195366300278274583038735354077335628879923633136649329011263566959333163107924275647723523308095353767869267560051903869301196037344868509949763240784965724743202329139795994740769777235848681711749309451378920189046126646759909239189850663003201700089104090714688692507403831159443514339301689937392695742953971497128411912722372173076373852766090122719176834910251988678762551370144897880026941646307537360326795060003925424418325307902868510320450122465297367848585725766436052099316810531474707465263485389917546302684891412117902124997714568205154645407365591920470911495266365760805126691180784100993332440764175302488838845516551647026065614947087283821942520757605264037848181614047338907289934874560316916335363173707047405138971169213091526613681091712799218824285208608855536168698878799578977937189472390524202366652470664759635687040970525488573451076852972248389341108844120152070582540542719125212790705244726026817873579862226363270603476051096799345681165966845829400528965889900849503575671571146788893740523848723412781352601573858402219735899062933724884594794583983433143263888187297921621161548773710369874926211985758254143209164060794727948464233737557776176081289757973227468406389395565338175747257485078558019404437077112779032951948569753602768747052166838863926122576856615482136216544849746320114029680405200374176381231314636024141048057865202269004032574561030607645788980067650680105241784760952363292885471877981237688515710797883988756635016494082125036500022685256455772934038508189350065630090462072978516734351371534640021412529057577727358942498213128051142314536814937447265021095726072705668436155468871242937425615949864381778881313072997383787087218898934689623307239481953398015770391213848407104924249046347064277494707019570193467136313077186133478064096103491033635987112860459331063146778151378818503787950889728907466117368171931866693825584720845246870752846005984987067465902090185772470415540821576784317689640300770163187809980978378732066693286881069022544293876213548707853863615195738441378390419940969294330433481596073239976831182849906934594478961277036198159879480937553525415227098093529429960301803967652495295873613451092503721977911609761328130135234982853462383498792513660831479919142337799950854835750616347385030087218104952024003223233812282723090298361325636362142338955955270910004636584864140174181845429807894140027286431561967793798007896458113986369424829544932040916435993052974294394792112747116913593016018706039466565592412784882185300123856762068460064543333231712548742414781421157162965918662973855811709181526899139398517440499158616830451342943745989156994537827307820904907544754096939799309423510719258225884674298435044102399264779520538114881115842993342390475860915732828174790716392255903896544477685497720899857811511501130100872387347331214797499594292468317288050808190393160597262296462737104186895710852338541920677060273989602897950273924444674305087032517190114647711801308523706563996799313197515112008539847782683049081131846055239616715684314228716321968660150531324399015466098420741189406589900421813539531488421140032303359634099500722197152216574451426417673743790923318777863059666859366825213976382699265891541346252127137302195087325232680160779019280104354764428644112727749045947983142128905075894587066026274641446049246114741410117679170681857444274049064110665848130949758040483157581772241513265263463408432134625011854589498251846892780886557243919698684059418700927603930346431670818228077486383976141222990287402782404509620022932400349322271145294254528522468863340204608433803845809293685660204063801977961521225935311336573551484303982590778501968012850401122274189301875446074619499244987234325583827307920165137685346685316116553774645467340232783852761720605576850272527846859386781907392040038098553821717538613705335431702302575439924132095301257653275817393195975909070032481039664117904505135679793019199616222361377100360642236514896662982756805409399144675066393493103576167952172957028781711023498446231485341781074571844690497657451484506854366336234687619699360330858603643891520308523834055873911699173312533408413606380088261181968000930611986101865518098088860943964040337987370145055753815810419048811107985957891473862551117041461222461069694715355463939796972138819153375798319754125418517440715926927774405842679276121446129032613539025335449890455603320605495635848278479473612107079513156795423041557251012082023854585919004429205018065913941640955710487737759135625325964886532780495509916244055365902844436991352764125774552135146256375846601266603212953812324956838328446575733666523956971993267559299771803153204224447917953239434493980712735672430565305327305247407920385438806779839470431334454326112178630523672770288848410313497075149599196364659287971441125535945575032635404099515584137067791244165196602857763880874504794845450185615754258890108115248574223348392132814818792850588193797809276839613045152059913877688285381199908252210873465052339712465593554004953571893156778019137486843818550781030976536656405484358842829975974171864277220613471551703561298009360271615635510587654996371726341652679023714627036080164527908999120760465432312796375296115496767486746838142358213171786451834920797862744796975403318657681932896064016298307419853949624126399896639087888342194713429371478976641195148345481273000221871821161663508937048570506878760845779057867494772984528792950840566834155173232278155235714473665090294091999780628868587780210909785185287681979340542142155801757193598068270920660258803095491080065994246732157133895912054510187181743156227710916706449828966665900602615712452121350741513088234948376890275992455839334745284949788801594673871152717777650910924252386433940821336315193709551601536445488607940536196404452234669441663191953295452831209175314218616553228851057787161587555597527407800908928256017706029400904436178650760877278236603913064717140381846544577118862974043990152899557745442132154131202948072852949662508348986539780940820574584484483548523515267533109930630558108528740240813387642725155316660712964631997587405591518875777746415359522463988229232367472823151748564985332045934573086593637653826422189145415202209830823573534012654917011655384569762758412443081127534797995024736429037561661094143733460711999766092134574625758431313556214834181220291783429531542007945325792582998082882298306979246249598299027603694147934102759795517364078274254761979909498590559189745637938959711134657788866269534683494108517868321496361987853207002869684797341624187108035964800169026176500326177195161794146224397558874073476090529216666674885798118841756365053801838630345595333401421445576059851021517012095829585533940499542774034585162885287879689086468589291853937995033375708100918656137796090104242006581242762782215128293759028582957786580988494974622957344174459199119887312079509318819107713676065913471480001854960097107770988762773766315747239248567087694545967427422459758468869387473407692481412853167981665165986081524535793497614709407205418263467079499587727265294659933329906465547089235482912523104824756263822051500166416978635778699711259633885939593283349802047002427879861066508267748907556056222014580999424645229292116082312092525178776909492246352819904577789055374298924799997643333334485268670227454824078712633068468336861020107102158516791644118322091210467914695297649987860175857415613758598998030399159381282446317525146579201095144878942548841292369302671628544076945879825093115470052088942367937114844556039850905745697809875632808685460306567493481493045224757355979700363146498687069887184504474255127452349671139103948555139322133720336309051811054179120363359197496569792307691143803730635177185894432532779566762638202423885009566856203036865367937659155894379730495066581790150537531116413767949536426903606925737351349264506137199635088670591831409222671485073346840936812937267498868452048429062105732920345156336359834104491848932331258076512878857389492226750126895253755310935111065017346962475192241974393856819346511092170756705043747413221297749513512848867416746999052945099284873063301064961477188657308711414355236277458045612238781412248135742111744192173381048783425622439872876534804031598502772134959844869764398605832332774738095689689170478395593928426733324102238880468671293487906732459794633019666358406702809843183135176625822410872219037470099985002369610894573361886730769277572476279469277784438446163608143546021416415105393457885867467038942539089020553237335320276393814978059642717362138009650104062947736403133114595020908701413328704532663715325544663312763485133158641907121162555237282503369187271376487512188954871459791534771505898565024667635424950159913072248511079251768598175236489750534256427155916696365199531561560399042939163184924355797205172657076609285610969652726970927657037541778490481771321208106791650127890848655077535355435475817449692233334941051395132204225272110112506473284640000625715696665208533605037501494504118945190461073568574468196369651207905671199249123613577733607822235764872725023842081123610755871484163146966627291999755195237548682286891838661175209548517829514245341483782411028383834581527976784965764659479015974926979349740816110348709827299853185540626019742978020227057067635237150362695882131060582835287338592962370955635739595130443631489515708003262632239855049749155784141944635457544965039672573756983298159561740335283255387045120955529933268180330416480510979011288109564920333903766686396322101247334748728276604112898751045674972077752242778436852492083472108517228953633079190336739817485194059286151536319146814574809597920720437682820324822337625730488671324374180930686008663795568547083916706789390133765044077182172844737785700391021696288277253626222112622240292937701826215002123349965734924355136794933356563826514885747908796899572383508855149989372661807525629941662271275120803610414474002286289488559920327525605386681110402850928356296672311369756163245501456484275266918415132830045715027715702511890354657065107536192408228073368607774926036486149836820099489403889336644409484279079071512758344433421945510690032547521884327889473437445989390871183100362423246347696500123460377779645162404385793008267270081430847728297042063214005585356823480400311255451448785552212032632825002163734402031287804920484850927351031218417149933806909142214454410238644914454875778093808181416115568710820555073278864553854481569576400366698937429239350268353755423837117067742439621963965842225718240999244995453396945629590460846931890811569634197620332306929741161860839137698861325945501019090669375442665973316642718820278470751194341660684659505901999495816273364240407631105053907324311095157305191944314883538312291113744636303678509578026283018046352551978732858687934577839917709926884438328283267267744823631817119075999751368523762597723181288089050250698208321195748695192109755582569563755822352371951386760142287174459134401432705862861792446776039509963618764110305868065243109200793031605728699072638000772935361999330235202385233219501073239170702754951712433961813978767334767947138135848426331236446948114541292311622852625349364427097648590287983517364417194208123373668359419624954130244549989978113474413215923910136535314362565063133987422687310882646533799499564389719865235530509358926315643193192053082486973960518165463553136290240375354722419815192478309129044428717178523640746584423088544029308481875009647153292939608463444739207244831254169246342903010169597031009553601903908984136410097913452303041313192382150669664464150069084587187706768072100603222259251691912803629549535898146986251227499373020682145805414056471698783413382673247427823546919457840669502084813489896007586379526507570553648926163266493786478207539526464161316039738312792865656514869289605663440259136938888650023758668241895184015351015017021126878868917278102359536956278778868044586540058483487184614592643656830964197060373245871085963758843118035698335540292080719317537414353558120316151582963569676991693873983821394876942838444537028876738655559830029018789089236449412389728138600160357205541915440932246873394636380584011251529809792725340832652143613818268895538241388188824953639426725787034288764130202081641925659267906695470506965533531639403460520185320104612604893198155325968738412172698594064513074588384927352293339332986243130264789051838726698916885312980370755123788681962423509735535926231308308466165388131000517915675530287897971183273852818479289919878936464142978269717258624407471789588898258397638190320934146513565015567291717282016848999578891523327480322616787365296723872348769476580824581279070863067514848578089696832101448089691754995202546702195590698563002517738520566241838017534711257064465202352830877026750584596161418636465952468374399276266727806210062698753450787179394306750270372647345306892439943361384827486615002289948863978039750774051038792168142151262075554532845006884393155432980754580412180612478878669649456257475082856604008579021160059587005630907442461923360649834806258869296100391280679293862969711300553042156620128497186482068723578668092921601361784944063492445531188018242302529425429682782722990702332687020558176331369277635274348017276999265922710604897991899588760240863042956687435777833924017015378172142358393079109392308135180654045453678819095860207965677135787816774472113586816481304880140373974852341684370883597190926992421841227901374859346409082465951829336420652524675035223187256443889562539871041031202857693434424590599096503966832198623924360870116464965820024506560405770621853642118182804372828049345208771927976486569947825455255110672343604277908167060354459862320161305828587366710897215417801524473875925577471551531333571532495516594024423303991543636202538906411809598670165894509979133732687122955355249776719920215651514197290260997677826542358378200366664667065968276060013906498987426524587422505674294063965279091537563469491450004760993914029746105686417760826905153125670772222484480888353707762330982169293524199058892083960882574340733121169614158689853519289980113774038025933989408434740706916773903782994823820552108110237495494828748109176965533097093598478138869736154498450758624898932699753645421142474417440187185214296515579720616357870581417146080228513540098641463406117745219256583359141492379911016101414180392324685988805085008557352225183110525716129408079371884455905959844179537864007323601982410641761458364417260851239890010494841234475110748045115190101096019634029419347916167058132986689930339563966397083549973263341017993354088415507755752963233706415364386187425476821098214477773463536096302669531329955685063318314690875420512504563274656895403118229314042903930425146050661997281868374237673017979369798200988547226519443253043050350534285878390655272555205901896949710045869275859157075810918972017015949931454385815972097010016908318251145678822270933130416274724193586013543102336050635663719126467711480346026231709822331355192822847167292494396300931365956223912451839108732340614831528749644342739903958642456984762055976044688856500657484546072520510019230273825945611563605705809648192962933922340666697552410140540207651810589654288886207112436208285514616688871380777782315283222930117826076715566127940667658471051932154880544218507071455863026076607848059524195602369948056113742852179037538044737391341302168350034908715219451823603232243613437041138429596393755326255535649953177841554600157039168393706084088611796397229513872716999043989969264544163836392171456469513865159712332299379946674962223867564233662792263896226795358593471654324397190847822610955318664036705870586731022745795179753739459305324195502219040379287994540038689031751512439568410974812563794571456899802091386272454596880206915248170389973834674084236362844833211259508125553388627469562639791317445634524067813548185904219296667395802255780618357798923541555184575638794201738631561720666214959681984080143890624271323503706908171490957235173671420613634518316831823918119278056096617018152645016749224336533399813274098910702014325031368001677715511516386740669794881298060765309054318391250596224326623366055721648609285097719172335979616669230941795217989571513100144389117986144160637441074627341894963254175507341435368571324279173035483487846816741685788290805730078973310803415458401745053864955293199977801432706767076848984506263066329856013657901042119169277787247119558975424463034522148857739332874673634289298520700370109930794698895969237023302855576185907485817407912624886147254217663674779414526187449287709342523431207145843820954137929063335374228738924876683015230089939711908629694667204310756285305225685127572044274020948532774572459986840183414369189027647575917253956108457601910724398507024658685936183159220792233122401221276930337001593435386531970991880249488179828472080780582844156008338082437533336702962339877014758300410198255954024783301118851629311673226404441563616580328800223595315370512273636098594849438553264904538396512815933229866839051637743205627065688160041013226813331418479355782221727059318153727918508137673515761623180269337915545831473159080798633486751320400124660587215293047435435940342831229757771110455438803230313351730691613392472640105106717478688030871605115038763284574593524408522537870296884753414745854554863926705267441675101436904778317973375903443826817964778019310093427434462545518412462003095511564848361397712717617261813244587405009577777421134544836390252325160671302157802858923927700335585172894583252054634232803386563682760789699517033670339632732150418660266163146839727841780655642248003370391455431924136565672632817827277550932601323351591104654017448464175229040752040792782353059104173358843184682956850433174599018565350750482134942666375750046559948648353526517772911756032567719491957930242110249844249536383105593036510584868291540111682740836899906654976542759413434394201708282080168092736616315231108257775988705705988041305467450013502784049782063008433934607047956160306937819963007426437593286715513110741743107242447428900782184639463034273703180632630731022585155321559250629204468235444367950426667094427222954843301392323499623987339671567253937635608710600502398681634307859701286322414306548328675525356670233365474400214821131601667618784931214793734056190579007976467859629470790440820738208274565079406226901483082114671682611151842771060452456258286350157240150218167118502859298171736357671182872681109018147901498947204345414567333918685262819028893618596162218073216154283923320504522248581109611635550387437788510027415558733720701840855679347905988609657887661283217481373791221647465339845807355723417341007754338162113067889095532911215106996891068394903830358889747554541786522589142698635437240896870208518347146757657663463956962647756931220393626161556006030120130837750894733338869745188620267029030151949836528651196751434821748251352999971795726073915221924277636261990551608871097426940070852619174350265936857044268427128142377947860676972588234312047630572514650723413124697325129481368660309796113993097993718620975176165430759913079356121983003993957883043347006923964320588875452907425810274404420834497867253939548295320653388938442899471819875098989061305914008625997336616082901308174344101617369013459347479235482967563331856454962129066431787695320243559218893336304050678553845525047085958646024420005003628586487081762413943348841973972487340101264390762934695816819822697661839782472038617641255376812993101992646635162168397327125885041553838269028419890946400998580954836047227376669767070980040145566631464594485657903684699932831473202297082247819051715723237916527384221060766167896756656521531939835745744356316993607694842788955753935043781834191298502035370002082142716920896865378505202029666790307267676283986972090888788844323950902510688194912205882834368832286273981157821079637524593814250357528577081725737539739644979276837580602828710329500257893793635529269446281573329064297192191539941224324639771538198904739714830446983432190294636193168418263052166339183945995237684141288448894876866347927095271530776345632250727738423903718713909091430457269569995191074022053907738310589219614945603805617216861666362010978949109622770246856120579157649050438343579877078657657313887717296496522545983664656895078682896910879375347353950004947250016894145294317234352631262803511257868046345262581537524089398936241348117869280622296298521877048209873836758094232102358053383366086794491992098813461517191842271904141000958476974798574806325458016517183820832988755973402531127792517833321615222025129606997577085341020675797435094490603292983879106376789262227198827229232105482946208524557961678076787101457549092810607772914545060401471461198184379915588280684067113739789243827146225887439997881358918235315696134450423259321971487117344574444525865736722912370288127682571839552177133120182963154735339726404216929642898425391855678319562554068325104863372927049408354032011822115348183722326433270184786215960006900733226984867780156564847179564385584059727693285325179528505288944135188518356069824491481374550170676607457243396425548139433183832952637022935574750246420494613364219266438209616562013356295428170607724641003629219307161491708610381913746387884493019175568892417538790848094199062585306218348638366439756921221617988123349350524107361956149883936872543187435580703363403333637085523021794765747543967511636083511641766819898581914293314374785262528053435257613785564651972902501350865365258578542597398487491022280490578567925047928392955888862226259686361729155993972029659791660944637333437091589980117861125800122610204967566681429634635158584083573416808747669781978891468362274424407252107725978491194957305580184077285516831596280653001352184316327424113319374369735042051989316521381055618802742641128200905156016710950571790083084573532830819633307201577676539599340786937251356257411939773092031034493150515227856922262221432400899971113171418681478792276264814985297642878496717011098288323668828947618381184825149605930109795007264251273179124633717860805535685241848328252925293795473437857104904196864801770243851152266288690115551827036269358904119290733801422642553853444123660536352315786272037487652114464302465113533783741204994620731996393211286252663442918347268733764099659042079274090568737002610209503705522398115442907870927454940773420939962007100276627625071562131001785251533809313368925817318528923723655579346156027254914803621920799286470040172475986896088628436239000223925089476852975306390201474306346390910760907537732942092197432795005086988903283813205580989523351800383862346337722329841467438960843081880148023780571239945685540103988816569235112485703202838549243240472381930074956016168379121968917800303606145986125203202607590950752199879978254236549358338223229038637127838575642549740601604264976566760013947834924250140011332405255658803804471280599294440861475718070557133716403240785339748225789117677234848148179494869500117050391671893918438073326890680298838806510410102332534793296979099573566993840927423477487861026672617594474942178103544831116977085796208859140480507264245756033194971171336707914638402476062347919209620636960386242198934687202732076235894586671374404207955283807701841127843289059377107869175789985255630950704858949503079689906457477683933305147375904319033958265670313023848972296205679428125265560505329001798184397770771403992445090857359847903738795883950230782722316306712526565747254029393988778800415734555810897418949101304775893008446357908481868304934981975075507564402786958991440859442655766712727915829141775215454128412952539752916271701695134774988846364045282699077215001089449572095401246721910085473504015230520275932217422241014708954014541060913780234850779726085015388181469460876788642536105557510808958115502203611663522317860393426821863120532984930738141047709920030530211543841682977594672560309490069041150484843548679236909035913221130781644778377235569984448784255565610066941747458745257078741190642127325705947364321556611981567386427365314019646884145783342397997400822814975752349798078226631133590232480036878685599689253609667832672854586450061443225838135436171406667789677054420358413273003307009986589220902459104427481912386076403200956658762875167884230417531457964659985624319449992753601112073058859681780167204722770094405494429992536500186061200048218029489582804144671501609750515208602225023770358986287892065556963513216219140802933592829909309673261345479440241146143798747858551358101275472460423026724579190901445712965721135746619912770919824826878418233716495861386779745931451664755465416311831307690315342951534490282196838737441647458307863066203783608393665634390511480433350825225550568757404656092092667520608308312456681281512655076305704754133373546508939540450991105418404337464177772808803558305170543703628160518385974574063431467133302329064212619179937597217484835879576071931308731196503411133533001484258159465647853262323772897580550543093110292348291620892819761036288780582544604220036993075023805909348108992812270537876993499377353925702261110595635788001127763274017924386723447190508657924799731475615541752882237172056006280222536413127677979062837089636689032288509615610696819913831131312204830254117828396086545161661035772103105511132408928687197425860465959145544944793140975655709429818559529402954227124940710133279628326516693981066973433294567329694336350256523287509176817963087542983950947632612637818246582197973328823802213541650634360231419654102844796040401178895748832551059821088740542265838217049759935397484160034140154411611441804998395282552906077766077811418959633119661797634085485963870904135733963964665005614122711709484482608522240746997134590665170114324018377308641007826507724185663528733119970365280987300464447818364017225172861472141946670618592049279798719096035649702070544319578537773823497566278860102348298556636992792212643954146518193439813361161337031896358216444068026660560357630770309708153626866101850456781081727445214827492288129828459846244481961928180047385872789627935045551056711284589440985541796550342676285958556677467101976000267744249722937293485790377881617133761994822223961370447242291743592526094828060607578407664434640608185317054300445469077659745647451870120253549190981354988696152221216253731618901277917750261094447002055155514044420587491390255821541364856384547455346041552471379440782879623903403412336104349680710908379514565952196376288805086548594434451744295485388685085896077990207101451814216228815795921148625858392799126837637002529198606015824481391309516856112585821862155233348311590948912439693209629688378894316728330061034210169125247855633002816395679213460619515551673750722489082660572073250622994233614701771442955945612515843051477239786401196115359871962778324570517370309671230499470321641034267936170283900282030609542675219735051470726495106534446671956978323969117980369841765310470345041378241929805452370168254547235910728997828801637089802993305684160489961018504391413212698997690363178507965486092088810854692183106108623348770285965301883777483502415491464522633685813694530193876508293046635268458095769711074828522530157715002508607615926399458554356424988363315528762188056757284931337399476602464458708284306505322943891945334369068036861228971064247581409485065134834845147146001880324684803867789250785962324310055570503169736498079791587686730314947516626390194601550131372774932627954423683981450935256921315337806220093380292513185322791930311371144148268869725209516265306214562814090698222323919181119033442795918594537557271354724636218211291675114329260192239541376270650302105060637130599030684931271657547524294461344715480364802395521079876121076506183547702227631310488357146605076926525811711583307228641964312172501073715208579194678759869229434835112021981246363415818921709951929707360730381902373906693261910991886731782213115993670132423051719655159620204128106851739953570983523534463861797465427254747116537930866459852661565274937492195954066635677369300490090068402372215204937053333664802109325240936936490664247201966296078690989102377404475939999244636768660925584583620692678012538729469505291827397497283741836189134679612344964004777748962488054130596446654766233564526075545934159813558759515409760694610779901474761342557965185087720327524783254647822868198885299773684247642105686827968886831241794038139503174794600710675743044222397510530157108187117405942995304361973035133707102825318797426563236850420826552698720361377876105623642772416543157203175351224212052968598995621841046378248347460461809196925137127358077533519214971366176332401712015877514331535822497922780139984197512720532236746490134401847369827162076441864674083232823670023911381363129896009495583401913843636675478624131335361946581524913235051177425532457943874160423219748553660242433593208394928895799290756787580763414652538713541356016331038583639090995833278480972452563174600698362102081285297340739999732631124968880989279756201972148276044301201676746077481423796094429097196818184774556720856396035110347912127307741914402713641211388156247464106965975406515173054144777755430990939516447412030955468448472047367948041899510025153572212878816966586267599858668151331275680923607345978430083655356562528584261109127377550326212856786043908364132281310900041180888355030335770672973461655337598885413089024756874495466761379096750800551030408169198716355368625182979267993397558120625707926327231442442356834925992967794314570793090406437971365238407138239786390157635014719527319722940229119294770368519454623463251682612731918064959832853984237571586763875898237392875966307028611048540413036259118647634086183019015239348268281058762177618392419883042606752439303476976455661936306282415305864177813914905906030816791433992857926381245074823647973986188556324942846110335719119188350148602907145121524965607392054105484740176131035095252222267474218903664174961525088816178806316158685042667342776877170363817899122561207745920538128417359458350660716749432108943094728166944047960073331816710862707401344987229844622801837257074736731941735539560201226613657375861252186757703822536707032706144349355135120382499752097212997536356169243641451618673155960355259129626415050150265280351349486641016957992176597099353466564209658142404416388026991442059268644823755360489697479295098388404353206525281495847447868415237232864626154749546559665721259549073023706253536247676620349259965175112442088397984249982158264138986166346512097780327951847990461611212980737139202499330912166427180644999588158048778957316452761281406031326988931011448125084680996669533802923729590841022650062052720649082424342373461179217614943421607647902895684110690756664464395052424840042280042474034081169492574793621831332269472476846948431493095874789288072140764183704472595256811629136358974122501428636452016416633029908227961286775947700959914106691931872987548733579293201663242466801856817916852928519040038740791940689249859003887530375795776456303855289332868910623276129172575642095391990679588497180594956882715891872297638265117415512172315596813942163617033741902634456277690613504936793718545873218688431212045349619228279187129493474673641962267479676442503673854764815783010570352761047176154089517633273960352156210481759463360603701068722338046925874132251935604270154397581985236797014735118208107258291482909114160693606845041231622450871139999110007004736292222979985636581078889785360044875104661403276913825819171257806383761971179020918939887669843184226225136110910762162335491446555746593253435976103707352979264014698357672772848348811278966477858088662277990438998719346759183216118862760134260478725148136393915845851229376683994506895081129095913360205661486331704133128368441228975040309291555412544951585070261406309488981646343519314305668535965794217846530878805426921490890781261274750227164214839423825276924658119570394610888100203168379725011586067500024469678810675725874217731161442233194792178869546436427832323132361981587314953969477645396601137340711042711307438203357982729346486244403176824319186981750409787566381104907797928554722276317654707925093261180290918509300847448401208102555891249215314392499081115521083280915929076813404469366945856136173073845990799167196691952319845245082427171704952765976774477407285748846870576362335701627713221755938825480244434209335711873172328009869291713241775545241267698265276573306309556308506683285279084585389469916853175803119079326632293292195062591684174293233930926914382835357579140592848795340354884965478136553798605988732199642530498569023442936331064561817871086719426492727690933432562157387125471404879186481331924675310428242548656886140539559093799758149093697651085507746837733717456644264297360504786886109395815741594750436452229043196003367588409967197737537113435194555162358789354432415465076980959388990568022073124252444075934323665398440224979919293815759528521708769060250223010376550530170508591395019539588433883089292655695358767581928528775460287606008651499111660929988251945753963999105749352609301370046803349341604883948507741756238412814832022231593175982421624949515623593874310860925662969228692286012991989013200350763341564244242787855540284196399647373827776357786775201127225662445231525864860060119050493167108343217528937954193337871881057466931132236510583465438776577323396144512815760402673205327289042167978642658986951068648165693336894137370705022378680046217177253236912031644238110777569290719023410289875519226810523689179057919589237902650466232674087444105218307229721721316479262563831635043963636860053157989758915064209346756898732764475611136825118781946461609660880757019476241047443071260984535556938795467920420542860744962437213243109523531574816839883657573305383176566277968458998959441308384726822746361982634849157266718792882820243493502915513837875344448628407002262180893020206496409384337707815909479865086432782745081122445089650549635358195326123002234465776764035576167948915455866088038082105202411378335022018958333673935270199333689724723792959541883260526684751557022979670773149939071390154421616588789247726403411174403564450728263926196207633026890660997658357574581605618301355687495925083980083461556356882434631045629286559611383112207172606155616549261308285863722958558481745234469386420437592643601816873928927313950280660758248411380669722095477976495341464804388379411321641760707497442084392734779261264105276969427179865341002142945102914021878239170937913972941945752958895848818369431431990355550263075997070434531179142801534004454511283805689918477729409818268463175442248719081656701036943610390110503836024498605727854045217887036557832875256481968629772687828944008342686678210095436892312576659211602112357397932672227824086744289597101785497266600479528662970839117448870236325278209929395703242131003805127249754192680205703027050093523865009132087175700302422577130633108820313510313635398301872584317748818885355870754769417167450981342890728019513230197802162095038044629677892592137570188321698871497618542506377175678019637368372401522110187128553614584831219758803163768871007400549015509149712983703039659830262790626372103278280888765506024293573885895402201181123068000178428762136876530375311029875148048537885942904034939031884623610289042357557752474350176790752834493027794988528794504774222839771689585417456623450461666382148529925353257067969150711837713669136598730830850569240136025512223459488968619055357177481329521564846797789329900226351982840299856967118092979366640413125710742314656160179156990948595427273495744584221538720347984887632452500702900883566493776744107675124810451445858843783949707869643669477696065757530305997130859989684952413502480394424865858076760650570808076359725723071135650454394473529070564835170710448023274230302423261868363645796554590676301900886617806711868375364632933245641939022558885420991441292891455485028220527416341938944482248891484155230738894174934109105082289874382839922952482603606596521449541114136844684086022747933130697603163484647269810839874512922406683807670232342952065752857248968463845622026939997354466449940838943093554346186642346911555550021292967606412595955063100022582933286153804589178242905098667274345876618997804287301462629476099844159388879401387341601121119365861678815411044621924449438907546036183920045488604696199110870045042246101452585916678470691635623037514166729552718105867336012139174671475847824688292370928447793987144311266286017883149939794299751537315674121110187061837124479868853554615243518594091869695957720744770497589904965656198753100558190616212252501802186258062214239720546903996292651660333454179334972579250115240693338076055326511405385379249049925618525063358776496937837688283093441937619251263798915584416556094528003411309797281763746023548355839106083108628269641932460214239392459365659646154137918134128671902577049501733981369288309444563865706878229203924905039220137645591866596901123917287956459994325897539351288249595069844884255845630639813108888301083835900668636809845973827728392334732736364189895171414910202929525220214765461965587970677207021760053168331398180628948416398246350426091085911687541242267263988220162257481756290715668933120810462779429863204171172782551125987412802854235793246527725306183285373287342723030846581837589300067255604347972456238273574811081543919957924921754649473189580527574052535562324376853127992274157020184094100001852101488177591841129346899142117744775563921879438204899486461822187718378850416724837166828095895294823981640839025520335744154429045507552021678512192612886659180957643230754535788714112500791919879240036749447760533178225265548133705154847623820203158074840063078411142402433601420525922979849202431033243031476376474882058967304311540782195814981493415663847567747951682476846154964013572125729311874113966162044287160805986136621136390525740686518069822252169448152475447050500258234491640146948638823935972924972968116431777682423899684899370959637931593733006168156915409571282079791629796390912560723807634628555775140334115047993386257521476337463059825003232480015763401324129024846464722686287113692766002286551605198500972596982281438536355317608410044667822212666513842136501382635922340889974987167717765085305195236477493326672033680201700132924521447398464648299728108483758740786042226427244620224903192468329248471505727507136993317523244156818848474191144492331348910996422073407156621336438284529246793116657982121511427528418289325389277462825504377950683735614172106009052659824673379571191953835162595363628262170041393738843795309333230177686763674134407180564628321141898387155090593197401702249145841298508589928345473962263627087975993219902059779569623004416380998490853686985881357525793650054557042072249316918303481463622729703725079334487384871535378422201930603991643888946879393536640914091256321589144876393835730472039931797521347303078064090535401736056746259867066408569754637090449679307566901965578521504646300385222637061176239122843543290336301434593418647652056408224120685675828659414532257700696024057507646631467269704701568914474722581544692395715982873559628192162833216240883862800212888496148820560667834269728294775128991075267290813527176687301625958787275281157233556425124852560140769601045894423203273028882278519359315595393815450451019981436919458028545805723961542481247405039194348305424775317686357260669312368064558806826079147431565636169437937093439609149210067465268633773782715933444365723325128659291734011202132731743065774259305807222161891446802616192254874545143211991448421545226498746467822409433415262241147423068845059058027167345280481350097193289233301983827944190619673154704937409097900425073419284778854938894274750938101585467170458818335238272117048640497507777066630043205977922742184273706712119576118807275403979765664529566089167665419936355086849987866543345289217807799207156739288474131902871620810692223753213445322518108453012072116151856149866730758426197241705980080908969834694497363904048937759443443878766304350227001957053671482741744541589980994932153590597881352832660825731677110189682052878242279083317245544446747885749761902345881821488164498253102526024118843536836079962779664281516513219569838413078671679790079635495049774946474787749614889707228402658801748770284068480863490903198514381037824778856118471240664836829747558147593422448652603874884080135750232640817268059527830452675364745766746716967174688505844010468832612189971962354408407288533676164843140131468607212309895542458562184162439851671928996713092293361268394286129725609463439519448029769224262698749771929820989389701434562446372355884421215191710028358589922619297987306140466743293060213115997211705154175816235365286452966802578825541750750541368005897620638569024463345310785863200188071398644805149695696873071636333159490198580489122720088249960591334995349472468097237741352344081597897996938669698389293393226510583265863134230639539453149487862564695070846102895443187098973546175452906275961997527905968841700162677483591331557655590903346559747475589255673013840107069101804839323760227087925888639805655538873882612312165973736998923812904491948042031599906483628850350500119112611299703249119759072007519558881727412416483569305892704386727015937852265316778127498233244384852836934215264373148844359451965463814353326177804665298296606311937549910940416988988675021138644866161817885635327564335743818238250638959798695860251339162765416550422991719086196463486907824090920303669664789509038117898233502073975922770722303363078799397054020061900620703441393586020688717992553855400101331014840673316039274067310354917529947205445138579473062487805487486920769602075704752002647559794193630543015877002740442771126331658515385271052540964039766028082853319673209597260244470269399974368792818504224423712105954737052269747601331249756644851438927389238881219389073846930420733323121879807176891123244870835959034416092816491374498593047338254665322793134591795433295975221483727629253651233834410624111092711471323264183759679220724450759579585484571496328702081217070701885490862701388846597856577339041319283690372490853868750561010950128469818771818686096521014746287160241297603570509086418268356736068938842171939029334406275327512552997594079179796624289837951577017192901514544851980051830325733565687016334266665349766875009264232189354090516019799415911930097560851136155073010159480899835652952678715148440651977266868205955309990075037301047171023219419022930536014254755626469517928281655717331805208612222913827183262021308120274728748343543510941057795014665454387382846204125824302277367068381163335477874963423587616439459305544479960435434585657799596977956940902288325548794269855726738698235748849105005065088539963104949143419652829826145047066580569644183109318749469209272684947981151307851496426362670498951092622490937843839211608027200653800050286106984933793075128530198020050670411970923565102183822863481608957262560373461618948239043757755475684855357760230773311691377781001972184204734953442760066936898852887258431174293119211859982049891817554746298650490301718586558032539786630404099564834336504443204307831837634554249397353439017840355395661390658266363063089221148942378525103937612202032101739888988405612382433615054234758737077411777070814863213839047547250681301365337991461603888581161362247089283581620872731389302187801216737107471906141406369841582749345491718428026703328036218184080416793219026265364870812893237290892866779632998694297133126635683204844681402358202896387362656153894948383886598151211233246585718299333619869039334579761541042484024974793401003401829971795505904245062703648825130974141153646655920666388618261419312027166373778825855180606941425344544846425729453724831726689642741364480480570674301156247934853130670219864455528460713317279170293468314501945984223402815753356732494560746206783315361659159266909541418767554096915136062401305857578673212611595804250983366461215010840008509345165288762669081410188303283917685452558716300786177647480332951760215325421005514522122953433887978515658766147127714720551167418312949637426247884466058607238120187457032938100646777348386729395564947688890551477407914522864454678281463025598491684738489007826018185677819441165557031689256447444762706961419131041992713986875265817135163497079776680772959335197320453354805988065518025701178518111900172778498839960173989946838014597818590127415579626385343362184040664473633402812012716642453969885779719007794028025583455583868650826456422513886812222391586307399063558232410264771481785030148892889620996864752136016295891218569485060696637115650748366109509155767229083950653082111658256847023558856374063492613621736500444318918983582796453519868883142417497265670116517622085983920877315123519330452509439546601361814112272203495786194826581132121667079593015445651589143267004656441919086409249521111760819096851532241127390839400445871570503151588995892095643228268830999605271951444228623116780169347305177214003435029672391155868130926186965952283456518427165015225680903860572590535841546288649603078299412525103991134055458460093911153663551083150767499192509698280544848466786360515014179075211289348142347372051359426466622371768990480462978911556217888574757768589082780536326565497850080693862172533201320240361007007504414687454256541027790241966056206653946153948108400201806939813718624797103581338142991531638689014417597207348573792297124629350659055987683895452721403782997809092119128804495240187361718129859251080737997263314114920051104631962725188042117581619273871491596907287076955581122852136506750216269512574889236454372097008483555841230180595288339246383516873156633543097318705116861626648490113967370971366073681639957071795783345435678267548451406467735287694625081423973418920772749292564015052513243269523212119971373482502187109782954255640971018679557897221237904234158389155564452059759053650155513773452289188123594790456336320898074825443678746521838269870164321813230754956405415524097474017154742709365516788030262855063570650203584137356433715532721022281464535274198515898490092448711687130004210819626373261711544251657261153311292622418175266508179815114589783413441390338304503660107630951486493988392368958214398445540365031589820601273746836766767564321912734824052278186893579633036578119751813293082471647731916252543121560060783810918869557305436937114517722566237506596630005367742395737206384262666100393638034750730594914641616334020676239374457478878197749229507422175923227038637568456005182034420702012581423683087820765829728376382924256601478587599688045162683829553130540293433105558198086802030176064295498248116812338449893358894026422414387919894309261275787759872461528397294991869984596829571438501405110427515788827224219345924121538645655553159986417370708164201732855441605580397864953232037138902444986267301955933758157364904783585827976081538361247201762038980944499327092951634687451875559843481144742280182277184499885433006334486765601373237658508261076282577965265823141875947735041658456589460947820817870638720220779482794827805735260935648892200122031781358069007877316686612073258390757206829802546919189015661672696861149494099005588413280907309559434106471731748073843077393034378303367757777136048939793365992909995852017100783360210396788729451367904866771231770683419609976536629956236005408233555807583836249498140042060245857137479151829383712917878416629513174962783357897015762370944139968416202782850782546722705561971362356918886418249153682869721867086255825919676359995185984871501342621693037614125647980247885478870720061163939625099491721486889649489244657219449099196157962298894474792523906916185138598110546020586025578743930783243239902503748191444045380399529792731419947048680552866989888257109214669868140313186476604829461123987394290622437159887139678756642918905867587755076040346792114644910100293474056500475690264820345492944874083909855250271096620843817608674108686745901048696573131687256162451234081479255579310866969176945765734439692766332463478745179409803571751393767736183562898578442280747082182135081207455172529417808888622540419559116731570158335981622258138531216725923511289586419016808854865746190451875672280644094081422618528375330692520870370372602487875760613382710005271266278560281012657041017504148260317563593123660777763385272917234516237356924757913646395073371025117807320682644304442441131883843139883227702442947866470599701452210840639180059373013897702763141671691013588226632879729896428646083674559610391613598101629188651505984177430443294089316032025568764626596738180082862251364779756745280128890091882263716030142349465910291212074181866631245130942980827849709904179748786742546281915179500630681786980002694101780938531669532432541314489203380003127378478151541521866438272559124207748040467384715661562023982837111758863628287203743661757414042528950757214919450900859836157138529941861511745007861052704955680769874412860146935616637385633557720314093199281937944941731347601199572379082778992139435296207186171550978285991783416452692002726937909503208974080257943168043226171231042285464745191171747432544415066274543406056335581655340443608117744202120248624256888555332128760761733229968301286244775782625868378481398797225114889806985806093006151528551106718579054094828076276765356166466138628970394961110065243374325095907065428248575456296476703668846869185196437099771560999723253760724243867592900373345343142723113883512154135297721775443101374643505048678524819399156490082676170737701234621499504226731813839825724534778439849279382307717770548148886389431094393412865268773551685889232545497826662076739418602497742291980873150088699662772393720543238781820936187574206832512126275255699714204701769649426246385761961967596462023199155879377748365261669997218359000085183255428630814960081020722490327425375487416955461730226923191564436206019083727832212032491244006617338831757966858075037542924926506692578913762188159732669778159003445582891945093070081731790181729771694294075720896610550253925954879026028861249577779454646150696688637447814257065362013430284146053665478374530589577325045808677813088621218867059119048279488540958128593466884465457682641525116121641363564362509897802653081157663869342926857392234632228303320542022666319818267724447284261248224747584554835220996157503232255864783082663928340174679369457176498986093417781837582357414213369861651957360208041387264253769619155875842382367422704825044405734411438329923706438864348735298756586003876536166604746670349597428814740426906333184658986459265467999412390367265349003621246284065478656802703225076369813795658686150138318036061561954870233026165717902641309797716379880052395490156480814122546534122739389469552092693321361914143614072017583283972815667018642344666938725505469179236939186149761637000861600318034598695593224633246589982348897758834372845766299547742201522247747520357833816342626352308816954416214345157723531073126289590283121781339075559875810571727407787322503020217001037677012917381556485468053386625822286005817636422180607753176679539343430474572613824113613025363661999543042948458224659402810030923176985625210034783056927006797704193146252436821764592854347091934565520464249665013649664667326287080561151541378808391649198679796700579400635124938757925242615998456716895491145794062446873284646136268533429569355063331198385094368264700722946005915115079023852995142411735652843114517154476750738581806174107443471151140952116777063534085094427143889912258699151744072460994659595592327867862877053303270699426776964468932470796231299815432408501378790182316223720289645146032369914691600844593820411479923986213485161261358160248696207511819653723792190214293249507300663370812259701298652030488313226226539107076033229914407911219411656847536889569275268664546519109323602315566632883382295894900109228029300629520443184377090473703259410423022738463424049058211230347459571543977763221296804408191285505052829794250857788781147466896627897015983479330423085975305983716518282585432561608298599841926644631308898914413136002330851501513910695726583284260917008349663652228104670722807543515156159282721227570501704102300882134135513774902780921115660099001508012630381074154251066625532444337353162106559806301655291074403440371183331736648984699647173972288570207632623038013906756637939370859024719603872333825855675232760515430399612516534043466037889440174349995997953601955197790651631390640433179850171424713568614111917289793799460188075465053595327971342343014514792561114138966141203604058146225306087637071286785928068953423326033362738072004498112871315078576684795555035781780707293048648169756594976920976477215192416337972500186535526949392243339502569456598081190225524751671648146499851647387644753537030783603490338017225580131154717501102615089466956957635664414634857249888269589227201317408686167742298376040334690102856432480469722501062705638394523071804778416076502366544588473322575864001344716597936635285506630259361322216959319225458555328201297606886911896641909471768441473245728241028633100727606125658314172407803831757577831000573116596071470815153789507717075118627351999159041956003163962215142662441445256306913463365212642151138121732328432157027899259668442331987835876710739663148360942320827216247849861120421966057880256415476691029642960506059516519007057186711084710539968907426576690118880526547807659444051568365166037000867171186688329317901889078988860732614623230935469187315347534418751521939028740379346052953356668526047290838867368662944661142612820576261877997113860654208623868766797056555802301399536659877058972044081695888088533886193234864461064601934333082603096578308520833174803870314119690273023308741960630805949084448177816911380405175637158644524443053894384242600289452162237706055940766121109639534045928455849151572574561196366764694769344949729703405519962630769466817770388364260841129391247449589473301606986377535866000170671892419606848965592801404185500253557743931001795323330462489706915172785806218174572883325372325772962291536341100567952649953871861832373583518487482089206124246161744869679002138909543911815556204705708653165867370737802780438264100367649512592391427395723448261225894210296664885183901231282475732906141100679517235535742053048051985808555506204779968885458171968455886013497175068687575134705632604030544216396678473136688005620918857762048824912103455577292711572286793797454189299174812674846525292351667131653601325510411344080045026607915322382407511282876923765071179358789257152766247837255194393183734412760828343193592218393597098389319427856717123749101234871615071820228577003413616666677945336233506934151577585057224300918266759588356806984118309484554359584535053564229027344797634067925231686999501486787592224001371312706041889691913133369463361087788187394477388818602301113620632566944963191733715230981824555722182885739343990363945189473673189861257315269161022134401680003345670946588849679425834237382853707258311269676920681532974196416726178302201119327528993912979062797639585426061166082180216465058642547107122004896523585347881331387516463092164989321920460265311351402860985064838384296117811068160123494027601539350323619623517004558188241875749780225521532571896377399065768187884840270547530813363222247370002160877224627814466596190034324482635977944558574884804682249078765852018691163430182404833892361520934830089032101290362060839824200619477585042656975566393829839941996821698576310090468073657463648778582580605573573172236229867221253793570323679746915562471607947578429430980850562502050607480987020598335841840307716593224487523414347503227152273368579046188189339675181557590690873325964721975880853252554736744529217156721629320912779304346038693553008836006573748172277843080928687665606444414887200974682707208384283678075116117646379001147405049044807561652841442071529851937255265024714438468062073466786309922787570027136847432568858262304869853555713957531286598176309935479727578009455147886675053304546286040937265489137004311192146139509264281569919809730514324619407112973157145563008416987051949176585152356867318692723628134875869488372473934879352581087302074903615360347297798213247349277397966372024560485262457277716773969714941048312521521371842439877241772515752254511163404159932561724103048662073311394482041348056352435752826709026135719544361005415704361583054212246405012454886670081494050936356115581332251628912185450053295917990687172718176897028976424864562236986811430927604728951821738552678404811090360266733050837925630237717635293645033137847750978814474415974970348559805526739653133680861788039544778726538221129655988648005943137779829556419822336847930659470304981602667923113083392400923054793987264669380093762051283052237104447606339775328158411894743156834847531941180302939163522187832715981727865232171423032061086153156495850401388066390635081896943440571727690218888370124101244824655014467430434557863167607785285610854536623074625858603602702625444756772325049021395363422870633349088114466654739710943995743212698225949962234930418908006601048012423817277062215073877918970659263649931220981988367191480949952755900646614575347948168309286371656386994905506986418611708349803090006137958433163438000120299653473775698274474365064392741905562709382021162176597712113879569567913797354048523106132097743353983052103532310892313963229478501558032204037467581040182075540310852270577419411504570060202942484131352854112445158629264191320887932273168353006132269032531976166903636983107123049155184557385346847424564943429092131464764915131533183033697060834582324302673858523587417586445132077948040320939524166921911901935619045167376112049616892511157229842422092369035400539199230046534717932876879562887620479609718722862786106542506227108367264123725793855290037230986751627998152729156403911957712795710071433226705661646867090679062354111790266981806434005066787178668144336795080153784750516349498858656554921329647554209173919074380251793739623256098056698084461885163217518696693662514206238017604679489332032212143899147108750768463649913823464581787962016516878146038580139438758673254270685743808299736168259526780314867885132186169299364549074585621740480926898732044378428106695165250092752184356426340211421885279980650518514819864002167717055425985080260545941766494523504152480520754596855952022382622161237789546521913746845059693416369280977943494347245952459413446299290294472635374030838541896888978054370333371246336442742793763681287014272310673895602602847752928588316861870061801617573915227597692608508190177764305268737308731419161735405875101907292941116432362600606404169399145004512180099847557531807149411412701365911308999304387115102187965880527109963238889935621464556194008049534964187253286153792817960830050397154043335030138247626677524436867342127706198148748634939084828493293634290789168626685226538873767997957024847988189631344542984219373989692287002675639898465595493769307218869469727621966756715547900230805637634906048379388039909644116856638396625970142250297353716373718343898325932166540923122414396831153279435813732716685636149431457237684939028232265237646682937956837420733785492629265160455517583620661858385784471622525894410119122158712137473381532419471393248276365934608648139279377434879598168002244112728230572981565500906666776518791236973361615090329187553985243790283445160673679861883173277009784151097184394514565026138683934227275663520484558139080648041402794178683386727881222066986697414770472192827946202564664922372730095316026485022640876709012537178135621708951117333016368636052945916141613120937799933379934140635201805658728669844890431714898798966955068914860561784300309202740827967906864473150126974755003116915572618204726741773175640401263483926173546026582746652620485986538386562913978233889994274686937740078176909714519354345810616580088440510651635555470655296438450577284125658753774759107299899940609631102893044005628790017778915791866436655179599911284067703420106290723386266582566379747114136907305807517733512344888102516908754068941026061039617208946701717689876083340873336758377076112002304521480845670864396780519372384833136737930552068744467971281741895921909509679587682864369471651662329436087260052360391662974584917336738807534667062368607662730423340762902521411643460030399991711416136421877768185981917892955463126128986968800607759242330707370558686270165522599143359827099232668780695839615391156287950017804766331837941959681821788495443454960342551076108349082094573879622466082099575488956619484468520478908368255525922549391087344022194213730817449613864450712006987972585106496704630248763791663834005315430280161831387356650409153401192161149381119405576951303605682242439632407464988509219865029782033676219569654536315995902675697788063485374638814832857973358278412829233363713522230043528222280539718113998322844614529964288234219105242853429002171620850562618507134229076060917146137252718486475513823859577729673528319295852956073225710295560064079737427296253451135344312609858233114453578398081944335765202258700251863784995020513668879202488768854951855642208690386564410217126534279668075783384521661936237860420607973466979413137751667409736409701757526792372989461172109213688569189176303748870192324305267618259425411051572337309127270517923926584539865582289914824517317883288509308507142650697405202935290925287438955449612270930835076894548513414280479440450615840737888412097576833398684438622195630361520246191747681253217449284550391309866054849917684052612039229705701537134510043405957957259942031020212017018474105079626667334238323226365063495730057125886579306984934273158143425257256167569302797225398111816986129665402339002540377673485448862997198238900241903553521503490195466155817197692214752099606961023662000946273545136266119116805233737452955711918850554425799994349286198363313751037697092151196762448581682390850381984823958644311077339089276555537515735059393979891976894422680428794591159114490074760384314114149681305919517158744376861629892341887828482498124484254935481239411252591878217058005457630268787905430204518100329184382148242471437394871736516750774275356175490476136994942432429275581173394192783367941965697716962324831189312569966302751063947697249136062896239534801059251885321422255030102565290539793172433827897496845459648517088966817210818417709140995060607994013602213716314411734039576038249550432969320548004414293056279899733613216336439438383810700062910626176878569527403567004014267761191477316631083824300423482673089937478136478432795946564115625543431460675637142874059833073185833240102839933518010992861455561382246923445385907320758593524744836357870945513028510880711089133830652222613582141008398213190906880055786479196724262713731341365490720246562842101624012625001140359042576875614615570172006467098865129686676953757902098707235928621937566950190047087983088148667808017219950897541207564286156226254595514515171077643307876252872073947744420440338275624969892311174670287859211826944938262247081521350857432957009430597928611443952234406462504043891232319671562048651601727611541524551263092673226176791569916047227784134925902835014989900205201465452996274800884765698453006631897820882386762914379703285046178776213412218732879152709018754806370329308992644793693505088372209851240966166381017539881021128253411375811257050795264453206004496389709190172257085879362961075089243320755780453511088833327654425600758965043935906040460061444907793333541424249086387838455668920290085521708342057963555332254019356608054802924816123644691961227090698677533001106420177522818419200500833144848855803799480416940316388971397063616462208325372367714511790103840033289090476695770284645545235555133872883267698931178022276423154190498035214476503069433775543892088641526677884317818624453109691422009140499484879217998307765673471154918484354210939372680651172862386261519871982955627199400019585580156144930627278417115580700575745759825250458199449084663902857283197010719680100905817926262089615377008070602177196028073011904981516632603048305108130378984542935140834610864043540353562695134676239460298529856729970789174022299215797128117784731937154204325312734880637499584209423240877359899310721292237155282273729823904765169615943198972052997134020843172265501828408735919783208305196337910232489613052736363612827214326527494030635579138917264680156265228134748217385964411211793627932863811926390393119365368433502330091080816475186020363034320309527862187582216922363819402652779713750342257672298035023165201384033860720686756762827780118627015014026708244641377290791495620175740676085005433455685275699910772893243191880994216391225286985407313875801006576244332332208687797645868675236312360109954740552673942715852149984912265139782520929414656789597242045823266574572975935433686607927100239395994139137653665859194919494401425997985839801434160391455315301781431749841319735513556191278143850750339305289410480984866785473062167827769865478302799496205073721844863820501205510966436139772080968573825809782468818452690457782574222155499886311179712020244242347358990772741046799290886231180140671840548245213231310963324915652181804473481570000213744996779506838680523512855788076684985284403874347186885718124083044452132811439782106300196524195359142415647221092844149372439012001636339692270072447687220285561602054072312954298820162485176151728851329602055175643558366843293960506481359068226331312743387122082107229723965769006366472098710322650091513593252684964378751743467316692073821355351077507728109049378908972097202879713263488936946455072067490610279114864914332330718050784412863069302398254168978298199912567316163718628246304120206061020080881038314630449688549066424074942116833405696489240369622297476118113331319148561240930598524922208490413164965518270234366606239415992114692658308021906645775993248596794392521649358121964724443725555667741562536142191979426578549179030682991081775201952164338914224190912822917059076559247682121328244193596453641357395480976012973249316130662162670642754381465272009364065396315697712143173415508053463527224102228332780184338342688898829693833465610209627958613695814659211041444724450163368172272481143448219828152265737458891215808827901049730009804906268083693383754927456725889174174303128346113006314649539687542715034814790831516355948269403535234272909370283295531461626212063785797748888596679929601748730367432309028319801255663345355180060796026795195117065299470546129369651241029579300547828848183957939850406860803009931559449555004689145153992627165177665260012619826175642151989965449596988645080642232895301257954091871582331753571520697708710368001723869925551089922860453166988731367960979687427049762790947729465456289120141804147336882531308730426653370384051715182377570380835972691759877252088490296816380571204332023857273901558109360188147311358197942056290496767436000446067195849209124594584449003502807830144609814803317442052534131939869155190966981230790489699550796499051722855193007263004305692807357328977644481859615471957641597786225914194247459559996588301646013600257345923231390043265612807480714819935214191033832975788989235732166455923754859598219947655372744054194878098030891233087243997298766026138999908164820011463052132680149007937955607801467807758323621491434555493203145844895438302597304679480673270590158145782326343110316961440110042474849977600249424485626960704452219169320698924487875154500968746455776245583617947567604681749810675486352414287677218506083072666072517758494915440905169969829192609933252561684956854268823975497874373499149754880860891398038895441472605309282218131922834309861260400393929728527684134509821230559502592418389791964488222808709467814155670149051674211402929415639387967510072823530581827678562408963574245971654996437883427313510753742721512422848835488409614118346257986196695979686321342350475146434640488053627558044653988695776246388975306556521248836907153027920337177252521615055212091270653986533362445502261265652195892237641976749407445368470441465122154108329965511872011401075645569734668929124770684396285212288755118718428310115652799581771059434146791698908106652915524763272474503752833211804206596093024530008588468209548649110991381891084093545339812437764202712473491436309993234186095954986337800314562565561017598361438007787081001538757870802802678705929550307685075716790392135254406344022714674291439486754714981580051260931036225077153132040444434248356828482812015755037147396822761729891849070083731270845648792065980809970183511109532162075265773236123429724279534953307094846076402132008116400920050564905309687394726611612135298012704327326888444532610985582959531698078375272383117075769370183061288457187910179199046251672139620224797677752088167702943418866360482907737056113632423976317383532038131907847584821056033931327158810417932294140552141282544297813125333488272103699196126705511851884989131237348204218646441504231432253417342056540233564052283736577940519715832396243370770541594991648476493681378641373196824266123239054759457306474413142686890581470618030665055663182201757683291495511524473590201260205073505333203977499168975877609810234931208693778665257063665165998789114820938938570887705086022797274702367731981903044221077379397737126128331609358909247200028275623393255693845184850670547999613802038324116627057918811030368346519166131249529062024358237900924667531969068765051937822853448962872995900753731386604093350900372740461257815356842273240998237862744801130069983737804627360144241330026504818380525208234648768697372525420092781587414991633336984371940811145731837001970158818425262076923792708562804103747200631460894218324833212448823564887618508960457051952494306984824681833499894907373555424335234936457845936759707063771653295320886564870466334617647052394461690329306201935996642220861387834947527027259450877128822465962535563108958559432651430643560417611656228825879866939172524770572619092363988764022885064071123229234853831219578564624286368366853896183722656210871987882672510582488003817427801009490014159317880020221858638807920403975326370029745431119732169522969104040536604851035741450007700815811383652883406620178167176570506311471649476921021606651727855683716709053838496238953837027758619806764922909668754626818955497807076262294047718889648166499876722674742041102033204955439424682508020246677376902886737806198275967756249263524724593424032378892409556553595648276698381765034360925498823541444187322848438178470891204362471024781395998596797798165211529945252583557196201662896793255716689181929760828669290249484578987466950814105775036750816025207649520142105574307906870593209982319857578333169234530411369041921488143837696008046038359817887870254085292041363035342049929539687819853945943877050807967271199403632311080158962449593872448644582967625973457589682432642019700115692049231845657995435972133084382075226018804251842771955136804983630955827745779380479442149743948414996904368751534779933302136330385226075195328771233286135465807216206415826801375500155353443172909861117311129236243762879736383973851126866093467866340573060633631301432446547712633990755426102386009897784514510679475469387265107104878451446495444775536442362331945482744927627217011126337702810024778093245347278089327961162932969798116913988820802891259997055293613262800791228166106767886528623802731138381398905644869318732242322951612748667135255188286187039082320319278646337759085940548876515934564048450063557782280472193669996314444845402514369134252382980878278225793367332206582980652029737416286222340064436688006374290711070026769584992154441410217169696908143565315293737743650563452748455905921200865648705250809841941370287727351845806015819538244828364862451699658220252355805446072146588225710255705637940688696258712664602386643010672068822877252743172613311702879116120785386788752335983307377019798105809223745447854921078249155044158544404999724401125119709883402378037110597981975748520402440106847872781965528135680989852450042386321005692223797946324176769182688298204239246751349240342497073838680743746976607190768222233050585262495155539867352719354701982284114202731780072325085230382566949256147338778748664033082577594176033214892671429868480833073498614228706118757622728575932839636741792913434660062963870122748819659214533934400793142175548691228231051530350622814392396204619043845566122215267839282414013417172767117037228510127912329970177546861839026731176394245192820657028537606714527193378063204319653416123913420039481918781657668443498225402745487576002985102406178282184111334630671579883058584602123592279072607760996835133445465353513216075224486076949404320204835500652556530068636760905314883233831292190006815570308569198303569464905279457250038200004284766139830571519580399093426464960449423403102142635749659519324539307826063825464996891915212879933470686426784368837129424579642141575539360703777232952849256749181528164747912225527833931993423813611144730978356611049929366929147377308616644817657589117097916729771443844587158617537281880941036070467833823438596183414912986565154362560601120204051144433582393626039919966421976817489352712363645291745428761515943031700802591321445255922349911063031493757527726060927798041757313812496814568537377706134399928220723037587868803358403533514616474718928585538807532269302363048313625128465471304818913757262571052707883248449793470940478055650507295141413756011907912279106949255544270292978554451164687433673330922751736607990885260758232862128316296752112042475338305394491607037879538241237770005920443585082775821386141505354628895355560017992856133485816974937626815638184268281922872407283252935524658350889088970726555421484604901624741711737320705087304983456933067706423195334748590773801824264305665695165425510878368688079474501833629868180482408456327099616445429424119461779008248355348210709847165977159055845133829227045619565110930428099742775840707632810370811501694092389020335204324190485596353735708010714918331959120019445597560939255911230131505555544263223459045181106814097223455265544902291781060250279438465776319049324252515242275697487134833286872113986387141552151994601528528365710549242846242272432853958965104415413129768671273800093360359361226082094454312410904748932946813878032383569757891032369818478631390518620787281243905855840368099781292674627899324479415452794354069170652915028221980519169893606573724558763363060090363012310984098018096134091900721781790824799415505172775133708225398125253704212141480516425402393765861619160244646996187214351134045765778350642613251032809957232425189529440335641547834126974297687394669860759853050509675710443856472960458211341195278409445558475849259091396338310495657861056639972370275748779805300428682524296167146309813561510794847595109630951048960108770597154448217848240103503300909776730103536083163578937350402176859581177729612507881063263379980555677231520914145050730110971244719851266469352630553645947758839551385504299418886148222540305743511452309303540247282338882268939828499428886910134013584790020832594214661126583460342960913384720961992912174249415139111610875292965716830421172588285610797713065660955384977372306568713305491033723615851790469110903644531301074931225351111295079980636639272650750876033133506908855126142501813988309251370466121081948823379388430375749911499140190511843421522801210183702971228248421164996159321139599262933900882795521445947075323740310990734796614834185387764482128427536993101404443642108942813246474182000471623279427228129620043480787642037743125237180369590876465490638955837412196979343561168187185143886203090357327196440424301683989249638047415997552443136049278835052488741045788252564924058105654680588918537136160535601667060470684244034568037311570184261567865902431917708525456050577865352166405521137962681547002088521217708507829751192385334055989888789338892913837520460410593443567456409888942370623302391890362791822081887348141750129105846013809609995905781581591818825122404291402485322940463696658828851748691046153665872834142085745767160630326785003512244996633776602533663387963934991405282074369150703603616472326461823774258492120542555041530525658128676724766310875924577277575244454220973878049532030628017348026833882045149182411574519288724392669277566258514603733462257165592733920044093323985460857613392092104355582005507406700064654594950460954926945449826945692115562307593769737105218922328503386932559556734525640321054893554055292989182182122993372295135328164873443465476306429020295088981031982967544520624801632017520403463833654935414266831101602885494366499805250594380446070727270318333032916528859879887943820619045891903861242862518396757461490782010415518933137701313975612346125154809498261389316901588574157986258842701883749992370234875466209486000204705836960816248388270967207804438321953289677761980650933219087206632888507700308499248434235083504575519072510513007236371481866048733544455676238868727950098413416678043437512859999867007482798850779501773580956008888203089147339554293395822466370798206058039990009323601795544099228829339312438930740711304479794683611410875173580720449276928844220256227788054999171061935701917207990988833483912849341936085659142519582104090143664357884844638091165468500973435900584372654395798552623747049165145221588139351883192024343421957490589999442194601013790683665625498185608311446241152346404235241360665876859728478288184500923266731548661352955044508982906661764455489186686411696101152540701107672096950420208952647534926185068061550360691303741023637823664203024487889788562821610571775903110393356670232193914838169136810365233400461883346735777356147222882232910598627223114255606221037895821062791186580352360632297630544854605357069205867071689358024706065573314281842822651023132797461205156646904115158518865649810610812571065884461129301954429663137972794134140738898185808740642594149318330554399602278732094538110645302878551942438952128574469984629512675372128087004116272191357732206137249942727929095683546975212639365674509498211932445779554304473333984473431940215014448618775742656425139603192741539262646077199564358457514081213987795239289479914969535757826813845041817577239664840840335554399491024581565178831353296354792536505899266021636734283651542557050072851199975665490096756420454623019088240014949662125429348462466391923490277374158241941795334333547269140811360042726965565683971674686454366800993209596109644188818559184536023370645468250307899364457360023681354672629492652761598208282259162371047208773492226562582731428279104065105869373942314783358963618972593214966174160807720107752307737983582406470498157255973407485074656997141006618925093884611621881320958850978658315453153298461787765678511334987334667209026595644082861975613186608070127551236650237537253707650379906224814780183279277021967472834002707376063043302805792134322947320179401505735569904204113234173161792410511117970306193365268961183190950500507960282087641223889996305999459690408956816329186493320836786457972685546619143799333836236567939298689134634805106152460379459884519772305807280255609509558409654089021602946010707215788452113079004088479794509236673856265377530040169591983119870374962625713888053654751082437076684937986349143844512178305312308049279609824277868502137326060606745780648933885404263949648342923105563153569088566098614604707797165135674669351487989890431624497882657280162712279368380338675777221917628657099680298029304566627003937497366217113873516907744699437033832160559971581272020391407096530722135579049542346653682072337262301394094064868714539481988801964562081577457817993808603515410642844286525037299605478819655042102817786071464611631605525409572287752663799434882348279236753336646605961234430256231823355416113436716699043552817766306330541485784893278810902303504248435010309975608741347002159619695055124499953022835987497431262236751107998664494763446637980467632715927883083333108912051789945618414406787072392604010819215165739439580930484540595602331611633408298647003715150436356394414453963242129931253807041519659792799225256304367679970040692031617247780396162503027224841848409447213376362715739922590551564600900743324532860868098935334203355596375538939229285435664917316138236405624455309366192855820239197959644421006493624145859831199529256648036508539925592157818454993799704060122711134596028330120481245924318880504276280206935330753040038464316962687539484524552718538712301388861047054349910114016829736646097723888161690276542971927930516389184767000979089899983605000693276359784931606572596217264136801465505004607244801054483972888855322179345463135489795080327303104498969422826282310694582809227517713225499212709938401225618736065589218208814115322199103071096840043204500198894593904679301380822052659332048264708818465717597000598807914411388436990122188967569471219509235552323505578328730241203458456913091864576849352988790198126604376768841179062087588516622431702279472530698800408368183199121169335607011712759464658870102526593680249352946790884474958096780547719279805198320599867078395543844528156045640931340628638115436990731515543786968436082879775709788427234614962207121848136823633155223659865644782695536680745787918451455487908185893148754645552307164086115023329075388522817584051761447327033772487847691069507109730016297077376521916281651468150609891819811012167170663005749337452159252414843066629726994065422118927055578943198490269107381923333060314857061376730563331188086548751812132421460402652572920232592032067143701003679460852841344404333356618816415850432190389120823005878552347039219117570104362511561497587482643673509655073120526250776038844477896994057609925133426493286948277488547184335698782315084556392009590128958136529796763654782631275256567014945930241018247676395121007232171029170060586244052433033089953027499272659517455249640475367888124516152206934320904914568846279538955995493134639094820182764806109933309237417039189965177089215144695814026524143649072649482244989652126498876641619640597666132518929795630030196984186496170464125875659987328249291784923303558810295718392708217651460540287336527694752897582393980904883388012491620829146613306172510547193508719823936075531260056654870022058682523951834843287721182261548551142614671327402686299788975916867970085069146197159474471954801460488845493274518687055652593337601581025997775158014659211386380790800140420210112679163106137493541628607117818113511181304480325498824213875057994835722679819455471522823080944927494036727199563598292856740600089554990508851879614350613748410315241779301857413187148985177934399414193324665185102796547532623823039217875549986081764189961184954126577641560561144329594239593867145559299203380176906622385477728887331650251065931425589471518789110228138068284307649919361282600074062238093543724050979642645001836269609491772093967763889961944037068883481825498673364456726864560818382821619696026588527439270923726738396855331025715003755529802554616300690317197582652380850833683050595868240809397629512366081368216734844474841706710361348807812752820012344191257581395150540993916456887453389044867445702326972416007664318118957095083103499564559080138353402049636233463054086998999776942263202328711580402823440526918067817517794106777809204638650623598246652597140033795121108329009591354606069150746914090229373082379877902732395667178424618520402838707413435080776808878326658204198532060739015624568497195667649249314585909924331949407386464070762653682405750609942424061423771594437532869693344220721361686848767373316498369236023195916032313462478205883144580765106687965396025538366699795017948022913358966491836338729596486872153239727935374769852664708464383956704897112842993766029467837751646411222712227029077735469990319657607000415811928706401649233607254580496327445959073232943221031421147539456653304837364874436458685922950522967409341906066401859587838022514381224242678826809947772055857946489367086262688532656945891019993956709224649567745418996403027133567837204692279270356241285051366215748621756700530946507021886128125651800581914365822835695186034621880691769286896791087395963646485507360516649605895855857612206808856637240669253490101942002835444874967318171302078577911012633126556844346738543982176191939607971699826483095750929867323809356232518297895079264609903683102961347150723271481386782739805221186423845956887508585007570649307434029709564862452441175535697283590639387550517736250424624418359898586877630691200324089859438823694382521692854277863193161604204685712643419277138978741689764477518756930395605132632853480248379206753164538842197045149245328461661051715284865635938667423949479317729275964400762038384945283017723933846587851563497819705968982510227488721041718533773999694003247571523931950235228841627716796291510442380803567946182773334010822296272198656469342681908630720996843438853800412480252381894869226611670157226368929422190101035604174050533845860839060746822476674866720104572623420652953873202712282526667860062404989479066152819530586523054812570541089011082003344863925828343326200300205044081061992490670468289139794506378478980142888782678025399543388856878195917749494076599751886312417646424549007213364987842849286549928240790726315552236336880372309028678930365497886797659493735875150436856316264760873252339206056126736140116499657484011660443072950912891170604565500567163398720102715683674612676566124119175754826510856464713931414686606823147137106906149811853600989563177812999093691998230214760375912136888907885278679713304424609420934794341122760426453708841874084552245033602625907132541302742050687783319215189990680152530736798133685076390932698306955441334846956608521698852837097406067313297007988235820178217582843230710670893351269419126601354228677631570736345604872697512737446243756610906855898368931225797382965153866954718319659475914645685435377887138381198227503254696137632182240990171555232539061441533326914373169657987646354845973543830977088623812707744004261940113737180297500522712238610710677672750420363022854399303911807315609736421470260843430575973647461690273260734038077667432028975643957916125621500235991823553233229078469965542555310179696012794558564607067863394770015046241140570580322265306584099943324697469294105823398573398914854835647085629076574407142734568244737407206186125814576924945162921202212364938579581072324573395241592807280851497744499093670681947273312079631957372339560380097841544717008737203257762105999363971409761269180293670186980685318914811524415348741871088066430374206147156517273686786504933897266678612908160756485200345207791489941133739521507985765392424045391363795756545474146817036554011974776416886488238697244873667188328012007036960267367801775769618633717795036634665989846552408445075837869563888343454727665698369483745375405914280462268614404892697371012885700157912659231660197924399427518075272670276125068768947408616790453696559549857367505359887041269451210833262895875840640528192508436435411802725966765821567918974316902346455256941765678675318805309761327541901234627236696190261237985596678324542560768646107501800562981808046779892226376088237596631167864252361040964680795632761976893338260406563953696658443056312552487702577135082015049858607273355832782271214516544047726627742826923389371972051981694948003777908573514487243528794915203701679542208976106690043669666595640296268569344248950792409522914300889438387154385265585516204378640378874868963927761130111441205015184605007771749182877253981973770665256301708663436341706462037591827283415873948020465128114575798294718446752962027158707981670250759719892483187851601052527874401284558429739175372567909654910632680935622771992041380022076077595200200785557920009953583538776910576646574925929105421265782524101787833067704465392483618138267411710806618126400959740014067060753345198718373976668704158395000903936555732042917015713555567179238880844900478858565734730301929621831520429593847876161480904169470373332794636261906120230216125441607639509421773927980012627953927393991404830752192444073978760220379900211576645169897934043012206034414431345377346721706269476905360168515537749051481859179978504787841398006218583922244132064476237297086811398918159670166935750983689586256694160370213626987474998026538736924193357311099546343342162258911840789587887195746810601374493153152224340441826805053645787728768284236137501945501300460212903494998151392006768923015603188950963583960133210786861773576522628898743130510767412505705444073690209718409845604052671185926063825062652374721513714122163509299617564706076646502137994963954859809043447132969633025292982868590116855024711039695955934695772248771241468341455251690551690049320328359220949602366762536236617326901842585174185569256118473438896795183118583821676646575002753232142538916687343810737987404329935277058488272029678716626833763155029293453898661721675677932951914375558788391306482692458584839690399370637750743703066697880175320025021448668763968589072051495424256678106808948830351135571184685943919306267512428769935069663340424374448339192565299645045976746901201241783339109228751939970318004089295012402607928025767357519551997323523578458904560560023364376762125772868897013641315802067681803584782472222433062974574908992789607126944800445035341182036039684490812275957403872112539905268342938748585853957188864168480963075975572655861942484813785961334311858303704276899494087463308215679544635817141213220539703260961834098810900193613647389326442723666448601824078254504258519145982822639574895772914508583269656330882777218502704596824692417972677875155671006172751204984432814795159291746189524535361315053364658809614737352533749988002052871102395515966590510851019703770493586896448629895370436335188374529587474414539868035899399970492881682103203997883173853162283946105646573615826544916186410488257013808159407879739425610102440812196849749640305382930801539559698995179879385391607754004777412293158375698580187956369956714216036667576717107983649286163470459798867097231348214606322295324698434060066541844274509675373644756173052038566554583873332670665378520021570900560453064189332130897083628563417426710687711230082297170419741284539042416087386849730715346906950694801378007525022674768669394837897815290363722390218185592102404876394336688763835969110315889667245163028563710492884801275053429454753509690927712148569853327250722788056598758697217453646946791454063261326354877884785543461824687285792311754536542701727640434050379457174163854718338285382821099615948366462591007334977226202388560833264672644223290624916491694087471081041644835587796412688604994914196387906292724937294528133518579167305500670659182243487022167255206036774319573782950569970506340594403090406424000718043938457648192093107120577948799201531933661722008884797875168730771799352826550444643803995494907668788597833093344432326031494358776803354821403555407231395557274431876023555028233830336660660093198696808691160611070080598664281855513165419524854002477526028055311633810159740759950587189242405506481194350799563855650719934929797184518606484402647115487428660700509810572971139913740930595455760266603621334708028032671402417159755423612442814644627101770680706055543265125516392833435437813678738427588002739127425179839958499796303709896868149795399007139635012389484153541226168530358594419072868170296120349446178282083538333775364098065063002372012778857574849042806694540361529964329321422982933705860219424965787714769100506709453815218926938239961395211353263841669382719639556221963585945526974366765589596737626353662774812452460997752301733696362587879194629144397251850498256113853798465977151018940800539202536975900911905494532474054986481121676304141738483701858016295654102525424203450247154350186376062960746740963450850095459920908910348346375397079979717034707604050825145637196861905712944747433961279084076344221581031171999191902733043114001958275056423110027787374228764201229865584464209400353244175326119876283012832811103581077949982604635797876975064059512417424901949121434279003872170473279848810390235008000577178024911264337662986398703172247409076385386061120467571192728752243354297333811118128355332386229421082985953707258189959209057593183025869184381140558802949279373500459696723992081033334933847893461117773554148000512724002933888628400323647851095959754348905593791875951454875268782175014110579266242915069840259779713217503752414394204991973895020813076937963703077953520489655271580165143423188617864310800244304564194258273377218114135776224006561583404645977162495849846344658976289203777455107782754656672826124415951325620789966363471903157472943576566900564365926711031335895565612630088951854424378515238696097257438124212780879610714469276122538748982455745576513411395438915911840095209788348039329288781663212457766135425920119612625107228371918720756746443342210896559559702835529355233627610169200526542310414147662643371254997732799660903102775556341786492401707480722690018375273994458163075568673158888435823391686305045277469421398490887213800685396798129107818804339036250790933944675637984535289607343373718571262626071838780929555292942325070581620765320931670868047085166381078162375462203678759826462418895833313628921025636053274238270300774860007815654870641519561939844492837099336711517975307636703536735602231901869903724373096995377878249322218383834425809554059822494366629370931612011598493682965705242573837602404157775245496581445918099524400451870018188864494026452364080362721048520416471872724279935425925714956804366969596285721474266167401147313161181571718444929390407514199826233121101734218361225336692240801855876584139912042277022096460178147868736876402090556014649775131712392406461872953900527131630015039626097722054635440050295447199852995011074677552312938131928425634534713569545922410581346113748954535773842620940736762778220203616460607755431556618268391057843896064632507824339139184594519611577905384191159868329898165302610125283763367874567764388349854539865415886312508357689015925965314885307829816307418983727533285517469324126920216377377358696147596067032353448927397275659399739788798326703770704701038285071987073374434054868522405114269238891393186127364603362024295487752728419315004259599572063091289730032691870527917487347622392387040585745833835572816882294162630174412141310919655728561417607047329032272670599515276005761257241973841581502468838016152256689000811594750882444724580935792586264651383699629174940036157875780529091794051609128082903044704354948157731349469797648323726379573502453574206529336191441194716323944770094396091840580184922460401369069556187773058032346533294750556791201885772087638520153313907478089579655591607267055517389939529149643221260185651140159374165939513935954873977314496897228764233659613264156026197936510294106783450786902928199002292856354434482278657475849368230918838526998345077204088125237778514699814974797589443950606286212309237961360047925575090641218292094045677395257628561045470597601742694856804669866117584020103335882177191075160341794993049034645088728876162356851408636902390359400140046443690148236212231531681457713949855295059901870996692144585484508142639192367246023750048688289513798404721078057862033129401826636303133688363353570077014943947207052597215548403938252616961871987464230533104779361580209832765916467550653753739679279530576038244882763643220906546058173892596178722461845957282688466019732180625904994970297818437822254401758582977756832152082903514816866915153032945148254099512011150201845922819131097167184036736228323207843053579425792530142189341228307655199193941500024911791098559909216918809289778817441663296540348316273215831056470217145137357234349317846522139862968741805875284341641310150616611175292333837383322973561252660774143693969291033729988846325017195092427175676172245431046309368336165576315610290082564758325600239550994923165029836732318439728301443946414187653405493742194602980429535866465560626777890947204027040133604047948721712599739070487061520528624755397470830423408297808714592721173164238951105107854210266557585706485423170469119334168104378574248024680509435474781144175765914731802019070526584316412881672294353474368663479436306202922134725994016214714098265241344736940469790404307900363627243901658794104567749096258081728758529281771344714560553083324497563470715124287839284905413648818319873965355576900518897455164905072988939207929202051171992263072148213483778769578767869269866200801499342595732390376190666328274943621719917658684586206122011915355129952982869277745618744270880754197164620362102279403895216105526612462084165201140915644711389297752536537561831480734585696182909987325473925004761287513797951356214466374503226226601362490772038357867982949950288374336118720870232566687973196210339683365206950342788262210926492159255804080477470820133034335120426721581257239270731375002525986338829043484096719116936968387691590642842817367395643918415943600484038398817307558633275240113009052954848816708060503865176432740709340108654591914630694567086499918415915782239086038846208240395140956109440737121130960615140529085956840167138447400267483154633746524488980018136939199566553256583820128464578573651021773094833758204126892758755064264172796387414714921664960610069989400949579016489449786955969784507675049071987943195667170368870194033913583599909782949118555801521075703173159396500700783157453673973239796777019706447566631675617882765355339291160935500983591185392547339365647614448692455588497382386305743682894484442152318929244907836208129215839963663536580357842634222485565498037269305003578798134351204180444428832616335120228568077928387088828210696725779758227491145739959336027833913668579740006809740310938414306131160716558322162453562965471183962569568384398093901560989652323595285285417341275203139160826948954937578997160207147242016889953974758078658674588761266019701133422983412564703331995775635601326581358444755656590641468294044002979321889116684330795425945807552046789634692391907859478287527588069639759889738112040381930140420548797646904217098167584182952413044518960543313249120695406202592799048053021280944494751925525768255485536979201948619236774587988517000624169811133524958179001922187140080641533342542349174738307492357212523453222508894598319376465490541658068676421233774022759412755405140852371124625457562891939414879938918995904614834331906214829755800348482948725614546132016334288638302633666238166295453447005235430146031383648415224536069380041545196764966990160216028050312827056432312137228683253158809523853858151087224890277302464602081728355729206083744490783596125571469439135936102889982858063692670905502385820499179930718785943947079137196453809274745955700664006449965796117884366581370193449112058335712262946294828229532143788003672138163420738281202071066790190025906507728455905573464296998476987983667267922529977574375231133185179908544668768953266657707244932356825497254717278961050582135736269639533202294431687362030122237685658513375969322999684227708816753301302206091953394096007364782532180694364427851791382794506500623458652127150660350646205207729041251819239016281364806113949997441419248047986459385991121428739385029787111810730945503648634218814296422319742508668114074267521318121865589976534660782794196768155456747739704263050697553265158623045016812897917966021259527079669515882938661543242652012342137864291666825730979909478135503919307363491609835300933352378548884360357611475503700426186725123136685496303383457207063128195441765005827613983864231021824600167428735020162820911994379273902068237099272164984445370234131628612303439059598973070429979073822921465244767046371738649634684179391203043681000644690128308003067696121350998165117980799740184703051191188287714495584569816724156630610004576031177554825354027163037075425683635034484622536124932888067710136878298889726759865320240777145295608655879879912584240423210447937214302887057028529272166787952022221456250435204486894026626037406083376056252414928784568989855670610234552817356782232923370003794245123371519412198756409364111877645311853942796888130687208674909339730547041976114068483222561018784042401931322694018797932673296491233842497661969347609982962238878032976247658055587879061158118100868079117330996958563808019553424846084167909577103136886827905827558389458735035364437757218150193096448756991328025810333143477534879700327047922506823331777607901783559396178041566488160232529984527639419773990985909759719929462788481652410524498335023398283365254095991082443053657328762913994501124865095215905450120908974012442599613537531475198020948638242428357167947049469637884098316522753523501861821536802367161461972045273384659531715044263313390500483460682097010315370690525351112460192699513373903563720747840135476732900108597912021604675406876590489675087789723024838904311400991813925584522452071302588979600127940961951165230940968360126144609003703768789818714837043459797452661696446313540209762763231846480760432583857921600845200343891536765559211052149817970934311000760847604265612562334416473915535768634190529618890816956469763744036522928172073244098246396044743894881372867818232279627322345229145514814799859990667776949265997794435129887810361454065899396223776579054132763695802549376770974400817915863804360508450217177345802492744167718557107990703638031842627283371403644124001100441916088700015432976468070136595957948635357163804970870001930931947428621166271783991455917827215316431165993511273279602640953165205955363824408613347136648693359125930420242156224039155973208856947437184209813825459654969422175314159123597191407158350495287470595389690825185089252448276823695222899387162610170985371105689012262628558186588191820609850622058764147362938251514170922315208288350774939948604886765646769896285741012957670669685083837949405606935866216364410258155138961886575958856772435050480252546465662761426718008800026031086241546014036939193169571884098616595763490638376352711336525381314040040218650515480277410202839651642474525591315426995747368501682483694830749185507064037990538862229410612368874405670959944372516588535069023844234122396973097541391529967325494900647837374625280542426833606545036058441095506823165129266402943985399769989021558514294409390587946049740363581689052134564452595860292554074619236082159093850375582587227730739410224654541056267215789445074723642020285894840594200189966707551635370091672862415041877415880864720665969144130678708342349333262680235271781509876272611508837174292013850254566877464709132308335010366202856816889301620810815756523315687792144695391162904134209537575187617157971378588032955802069160875131309356032583530052892173817773195259335790942291861449156878289761942751602019193550882476970005816160557482506071839469795137046405072242698927533648538784305674800117020827617849969409623403318003794265599367625626959664319414501067611022612835799710621034529664549782535994447614019924467368529596309563712476318871420561304125513859209486246349174992802163660459816660274837073685710619545360349498637925569324134634494108848756879941768636079505986274943198693826461124616785457621748843885907419442016408763313517311858931422803479527359159226628616983270279801977312767301869134132978511532089685054686833679847467885068480791204061543993443961540262392926189252504858854872939452580354013415194142410956230787936209568142003114360777660347073751648577964647632998388064388352012960009129924918202863801149717986116008231976332908406100354056037085136910970675504559765640280993975609868054671659136615810373172078937886114418366685098998531418267073180155059342946352318220224088253395435751486141228352072124354931729591830417779915896379596221107350080623918979296548621034547877486766121735385232734900533225973006087089178896181315110121942501991516184265583838157268017252869380511726019284363303561296439544765738758597784117742244932913679412175296815103659204187610376477321404475665696084788079475805704440417307523809253879082909727676049651539594471372990481455329272557821278186662586285973831276805982456745561295952028120135273327482886157263348252601458620130837879142324177412237163176674912053349178751350129091185019233705254243679912826088695144733235715082707453027284013016188240539384338629903694835834815680340067814463689682467575523432387092539369069079425076789447745926073852795623650021907193821429065286557014846393416899046932089899431109703847436755192213657427310667402638943210832363276110403878096982915768547193670922154506308149716101887103108668346680609124652448601089412216521385635045128496209828402049248839956437923507587735067016762416989389679372081145468817018224365705158120622831706401947230771602295494738200385256932630038582853167204971967628660955989133873927373934801435513963501272232506675379295803422368151498131807778754070572050286629442390669598783271535111474980611667651957028251265441594918297104304574670499919807880855548181844679189153806841882046130765280691955075664000733786147499663764549442333144431036751701612134787754146872884398149837673177763248108938439039387212941532384285616990289531109387794617758126753420730218935000444712469334939576746586356561898531466634575290573646700420423876809402272569578952939022999294479771231011097500456000438182962309677007070695673031024824730986670858441246489233931210605906124241602194819140896234608698879202506326061281007035353076952086263726853238088530303023242725125725391130272877047502001251836414075709726098551956666208831919529517567698066650351115253374084029199094046631466302000262036538248086221599645214198702822018124094028008220514792252591748448940590896649632850678878941267046546643993355278974994541107063794918310061259701151913494562578092552809642485404506909824065450064258017064465770559080760725712392320516697577939329322388423315359981075350662866986432219750558223850917278896327820968005869914150057779253901670662182111593537743986926399376107964665275773645086540663796606769285144465853171036791418439461421980377958755021410624113773246406958888361494963245172955873835565771610058490650296613498027192828026427239309195246807845496068104537723811399017794927620651288116691954413961390220905169285949126617718338678455046199064029180233901816347309674458163535442043678969489116011958034122728740333238060692336654777076608655992459149592725748636412363334802967417288809544110967594808168457636029448237809485980871965159711745413687631508499882653529937450792585244863501273390688347907796798971692292044514146686958086036625057015388534718041596851551921819099554098112669166556819161174466705234810221534001527402257734672596377043468333613376630903156698173433611939029508864026362654668190096925287931977455856127362244696036656828632684530067766386508097452412296364828668575895498692263691551871519852597817871263102082148433023494720282010363821940389060998208977968302586051730622836193709100585471432813866876156538666521652577424774002421947265431253896748033888375727703205812881226002102254291802065409227309950441608146726598178397850930535803985256520497929525178742363013907391797990891056636018055081626594343553507821691574956649177854836555332756388629945045556548651911604414345165579739899242929286514468846695936722797413023759874844004282894837305463737404030128620083838024142781735727725263574112090707926329993113536116221258171077523481367175371347035923196791849923416358775230588890991810219320303999549287183148682451017049115382178983039518642379290851022388884549212001081918782520663432426369200815216915203862207496478734791499089001730126938121219441002012312951389799498857163152413856855764820609297056961653359358878358880157271000526016030649230377555299338091192353424858637929727556695787696249482532673094621650477498017415120835090928163001586489595035323030209829572511357667930905468524738404772265610473843022319230917680456374092600881824018493495158440816134119118210747568406713817445071051907310231143570267213789483349590516830705615165272289143533488217776109437661279433249144768386371960226052935692682695328853726196719821177890404097347682584559348829289454165377046436391622376630994596600153481612753820177951348979174418823923224921787453189725636561519666406730821702795931477549293535639024023777023144486677102872535605636180766105614341833143675606323353654238983499788435661611376852584723489074439838619894648619976194384224428806246850447962825005930673463899924138649628092394459521857103503430316138458377564755336072617327912653262792862025031834821812839643559743496570457091251606693422684061444344689726972489248497127725532322315531110292943128426119698498507048129016915828421893272590522050837265225358654868110018537405649925206845614225653561854099782365750929143100505123389291534827564859342598693370101306819492595352094296396017917460178121492414008740099037832057702817898136755008885716195115282138900886207987559243660376679331779107176674931755923799567529987472612665716845441364742657930686381185723210977204464307526842638327074347551329459006201222607508071287156881366146889441188518782436696225454332265875563084048233542959600242908131140658026363646621711188255640793328475170164023302635273202610358855430018735703109581063163801173887330790852327233408141851017413700079146926448243675589531472919167249972662722561413500900210775354390393560321106736365052867864798845850716829706178960446129996023348265088823082141992126490006321956121815899868686979284487391204273516154138016674971235515580001192038941134803794471261115019638362738432130990820812964410093796171242796059801936655512598624963318388842114348591085389199052577312509590867684928509240868534102284097792311298428555576174547954842621541278387689654090658485901348507066227942484560293133211456962206929833717153951872952479108345035313076068217411701341228544259363268864624870997785115309392428999949526377961396635082823377391532224416328582691524146831412935664081030450639932603341200879239592330823871679543417973558664934906947417104393377732451874536331387232215862341307213783039334207995897187087920451903889281951137814603507474119210778494944507456869065825195580809682237778277454675116253877915802491474672755006035203916595113004557087815999990879436909107498941169413192811396886105676571244896270188419185874116645534258941019237527023629757744326547082101941134255952957150537978916346326858914264854637406686832269259271027784036800978993847938882657765307286392035345722883996865929511346363557802701399129301170260442038697893485846349560347003552876960180332489291136949135632287395712753302016338503023949244688191094369159076855964882726906405904574805417433918477426693831695208968129587791445677965754323186354272040570056653840900042996393130591529294484157379259956753191272697274715963636039103300097326840896857956454598543287915929085831461876503384338826189668692194205757167003715405657342485612359932018651398523542865591848675083035180677946738695593236524030975228104324790898883371124954181994435315378928450433492929177014350600437777786840488535845019133560388789400623647284640776214515759176596986527415314403654132783722646184544979436871309342435431423684603646561097845934839447332754484252516929556566393383953586983859788212771950848811903617007623546851856070721608282204772058386829911728005295517438333060062756938789428360075045539837139262380142759059731301121345926492252568665669166378131138501484109505695016940876014557878232606650973092509526828524045969441133865533649686914624099605950783049584677923271804638024940552762821375018430312243477106203302288275170843312493030487737535088225866903496150670943866717915760176171198768537212513699907437052426031018174611829451875693578032033550972350807555565978289568354529649710233724452882575757604370140104305814903129302805610222529386504383465062992891897602662217562049955559756925651191268378224069398581270879732130604179108145264552444026490669697256099747253978844315854504036183362726061414014381507465695762459339187001414465149615799157581797112820235651615921045938034846834711175629849313619970350346330563739177751344023313047025774124368597323440898145051868964021347063248720359961206506771200248534640598642054277256114587547710237581636318398072482986418537007714387383741361197197463038656944447671209877987347736971072869527514709745409915554852289162896391197866930101304390848742410377417408278159752846378326315720551050474115628790564048182450014779234886104035222382903390103913693602188006743686124479525064208880187295164574884449877400799760004409441268546423066861752659005484272722798642550414722341730118458164582894382804059641802574171227757150110809428596358077752067864416330626043963161415859574274671041350257904949770938423124640412718583234800607810612121305547431638402120857920741365715314960443250517161898402983455323353735557273475229938252910959058330361293707106485155667869658561679520020148557880598720321793808071682745185571440771017555803882357649825002910280287102997607790234047117868158474042203803311729309369579007358995666786929731239077497908564734972348087150196950990054086106647487965020032961365498350261806733371503671089611121071611115548191952320731846150217397899803369310457649669304690190310522770365932795166850786697378400359559603530313291584443482942629322010347681500983749151209454908007005967458422772708852952713004088696625785616038201431909069647718115624253443625936834061343530387466480082869183208028273762177899994707491348318763480528357108757102328301547982374178281642022930688962595149889368967885228748800024647171009191891844725209380322758801897281424773194540953436062218748091423224970652424217658084789636088722466535274474032822604673437672144739621519642371139393241445323853793772861812815329499276772262908844250019572542493153238176752161645084964886082793235234686076998256085759960952861323820686825911338885390858124914467817028104176502768775583431598374347305080843315844560456183567816171484208398275725378857712640898195457152249883007582526359532958773253088334469120611851554818732112935967833206080296698316940438165218070911774087085559063461984373649310247346859278566413593324231251026785046037610042509495423119482258405520287013631045886826205398359000846060573174457732311827171573860976860506225260834724446667058156348856083656297355652917678023406604320170909863066057482246175876887296758344437671978157270779309643865532532207009979313505868329161283116087000591229989891651748375631809688577985341440078573322173778695529005489379928506795406935535158853886207064807373678966349095708380562348448016194493600197539605064051775215265000875718278494471606424355011404248635284357055415694896322358686772943035853774632772709126449391279472734696817460198977628231707994157931878025727493877922086613044000021284219006972575440310831625538505703261666720382085005024315747955209428641677694656113632075532625551904556497255515739914955836734680719564669917044241708789760172979633582974935164312384058601489748394234816794314234377666139713436206573745426663840620149713109529284926611859970876652769518428441677453857895418090846109614537383056683050298781048159992612282435689607887724063904625257104259140076947654560218020334126335657540533892324481064015154972913187585449697660142322752488309462343000635801305338495340684353784740463742994110240967673434712193372946907033062693872088794853367247676036777831372956084371329495024972764487306759671943665472022794807266010889823148074862458525514660472561493507421534612144672051451840006617584555300585211305818424801078159988639254654326775897488187673196994211403411327582642575929245511871461474822652253692453087075943096454093095117890764558243199518649244195377309392025777810774060706863625109180515350641369454930533255611755677543744302562405664881720090525760273318942149201794116808441036505116608535897683642251653645189798241947647768606711922479995820253550276291047199540886932828780720609974688816937369229358196031774346154156998004461703111523771442419240702962702183923584068041348118889770641720451330164654312426555635968060722701777530271740576981140568285395419617690732738329264988522215447159778393591202802009667034991121244293531388085258842619660646855553101101908277108513182834722134973872852002143170283768023254083150175334915436272083660932336679898789446096857991397575903009224447394560543632927066206868951488923900357276361489268661547494024226701054527589269166337109262309361999864614825040588776193232801079661523648099589892448604994720695468358626233150386093920639578683491000135768069482681339732989633431315384077806439035043277422917704855874589441218024825578837175119241186834009179562580826031745952497932313291716769845073368196616750081910125852579047265431719714558437895137103776767390659437512924242486772789272945223226399627076052753002998303405704355444120872655804935371721970423706210788712487764637653707862981211120700211185225089608164579291839072405067887101616067506843775979027080179953282133910059633746736587408281132489778155867962754830813260018809441841572688899443266555870968159481157881214344694537914007957408278603067930634603747271503094972264787123290311268005459089953743019887224695772489827617778339661529535713089216658594084946379625553370827004900638051701875593398714626610407929745942029745731377078187319494045543765120996668664568118021369927035922207713050274697974638362433326276759482290927975588898531676387381832635175559369260124931119606455862698698807067344910184329087199041180333326958759062876603345144211898236952521411891960676005016670191894404548674143198146471041423110925153658361830638814947021108608172350125910750642098890984439047421627558110514552970853842416406268801830802023974538835622080339942620937234187282700736375678248600352842473740191530764737246940993076880255343027728071406081686758857834205842371607610489911089624777722772629800449657338422304028940165630618934189253471459591686499013154285960637480028399471712711215882837899405585020465843540082187229806860662687017136865729668251506015757562005420992715473844979847518883066197447382723267818346667550380197759563312782134637415733072655546404735192423146410590660617179908037108398794750912447668963797616299898886448114278529996844064146553951748298323556389101096985921949469323169577080514583310241916669032445930048034331438163359825414927549979125086593023553462172417943794197621065108381898488613405556924499641926789600524159628563673897431077048636236231612451695529292756235691366251366228490834156880942583170288860163439170437415052286451224372454923380778612958774031608607438381949788654948829230784480333287318023826318216628729789375834852679694330800509363738492516692441018122150630450182688104526068097336811275970190490723878451397979043514926748228228496975655114645590694383777446137942997178467024888033994081795284610793079406629636371983123915280846901723015723777696701236691598910146431516371512193877170210527132241641854205951241220932760092577246606023215266320531165839053392779324624509634648427668730603866269743142319814648399837862707262028814302345399569918800802881624509951044080112513315373245460483293412419648468522220533064006412150970331866422319060431514210791792508895747981678104383619605060828717330466813382727468017287404566296307644230246931276916940061963908641260853456959621999489319794435790903286815728102695687292163748057608828854691853182121088019931103705041594368980945722599091018276040988123831242319007603587142879333427740198479235111800176879777526568970664407169128346057218252377724925624719290871144824994492693936249031445125049150696131906038886120500856128322304820536068998273985979214930495104805372552171311871504897718260798370733780669875083779417332868070123823614756929535024347309037536491924556342523199049621975123626032934016148661983235680877499699602872716863301503962885740511135557904817780316625069841572210285971120790450346239339482668930382286260915250606431325416825180896593325275242382109557209448341591619142762147007406387785247651872082433007844547665160046887815909837831807264919297682813585429457266195520901438468478716682185312101061355364363441531171524654237868953693642387567872856239480358654481727415522194272376791701033873236136880817558994244317828498936630544872834910021218843167006663946891720415599178895393967361789052589509729467458702297739807002257314173065845413122460248014677419294368985215835845053450809133384736013647669565104474415301420884673442620476251134934393179580330886326883889633728824430965977271420064849556992353816429651430826026019707928257612738587363057131489815504087914739074739970090648004402011701771315675131612459434927119701665334665525344448496118688832891536749817304003137457025972682209447695653722492422719247172912297354474591117139702568053257936428117226051235494553640039351739706011266635149447048560307556330227940157794125125254205158854706861514105651859364334586965461744884878695050539745978773014810172742043182379362369688785884746226407689988391388290897965233381002325394995950516207572391586974283030909758944307593951841090242992676891077755720333726271983831314659393784979194745401407740647005491572595010928368651073539004841161935180248741128318210588443153189471677215667064996723407130168489501491113631454691173181450029029457998716986172026409568168068911122582450269931082789861533555962957686494844190142843097963700170578167599642601590832535784517898782498392573100286682649251405273333433232994443202347707916574931741617713717862295097580678326760724043625687689548626051745056052590285512884658337969812847873979215596119046850996632364788353660162050108003134189754405229805779398865746240145092358108883838188620111916816633093145816817994678895974684321627355368785472942544918621149020721956646141534394873530625518558698597166174694697932727537270108731986121681134388059511489644336240568961202758718275019441658059187254913719805722293946586779475907253836159945870550842830438029465795987939337903982828453440051827258756904262037243280173691177341191963428466351326112143155668153491238629060192384643304609542092894871258325975598525965793722084965190878294120048211562404117122634303494274224030480571051820878164535471872526296365950061603316234915756801369499321300352847297840068852163238376197322384383422368887086106778742419317238036020753582305763047906156097858569462870713205672697502693691448232381509140538706209477513870108851824847491520093887579311640015339519775628419208135103956735185716527018134756657109669359694553609449067904615800102396360067395308183280610934653999372862915047147670030995334139530711143269182405225543773344017668531626901783353102653835541456358050669356274456944756169011725429822460814511607856833398026598182391054246871806836803843190152108792611269999078908803007550057768710515949371049433289167975009430891326214598449397581630409577778395627536101990441274975676815223952576247857019169501891960662958335945794725997110562397943306713198024010590524253621282484376798877518908888891079806069774757138792649228764430644959799168733801212386664475068905451672902054139160076673812503698347936375601274482063603941730042166019561715050115141531026144986585754391767204343638147712235044158193137345624630978126200305278396847017122683842195371241112757303787234548943288568513444793037304798116316550368028433180612298415376371807542641823108902642021926167599253299765149846195859600247964235552952452232758086979791946991397074033883034903042620564333349667582486927130139883558859250321801256463188787621013969710077431098992244949325975633314544421376810744956932146821406538374618241068932097498444252422914355152769158242152150767599234973417261499592274736721741302539733876594842659267508811079858130791516692913053601157032311904703472848011417154376181048598276818874883269621118004274460149808591436670509180645942498409173516784730277628891812446123268707411733595019723252954281711512790098023001650614015443352145653585199736168497438946685116640592273839228769812851197593507930436259200368718984701410688875338555334096794815673327468717436200932101716563976370334896398339089791472838749867059827770381465522189424660016677123191772816859808250015656865699336023578543009464370084265408191038264370422080703701548546347877034836246443336262659089714629575811339534788615940029627793292604981233451517984957404860355827273360464398303418330927564252637241841158192335646710007288430233807373417833828274690356415539148158463836875627459149560879499836444765859675827158023097377010088483530615056504414390153786057552406573471060175848437500689492862359952202594321618605633131512516187469903700801744050542595371199963236368893741384841431285376041182581201032135269425315717419736225574981403934048010457713108292855174476750517670876580969075153987105701384050696649740134400192274987285731680360248223617465771374895660274579974503256241831598714395952023385357692497064718619187928144142972104347885607776173083784279207585536599155332061041706311200812217647805105731089397134031344853204504941147857146130567820434125249064782751962159930759507840856895113122395877495096536696369776198931759420304512041291280092110775913274316194435018682762596539923647826490411137850742456546546598997513224399579664364230541104672515303336551539077199405621163347788130451409508117685975377756398290554303189309387548485354566067677402019193957863339417972344461881520691299938261950416613067465479825195014232614806029272718505626821384432207375026787836035111602982171107481582117018652414193089722961658593809868714239383925461516595148209449626780926766834466884612894585647512167258875222729219299101101503485410956841604971792419616275662811434029094356845971624089480271000144906776496152439155373876323973322119508460253064780352389509051583745160930085949422473056607466063340663701853398246859134567974516641718125922715492073618550357885144642567308287363504333978410898747060939414067700191762423521434847650749755794056524138579595914517779042899695433392742091455457313813351816830706914134387809469681517952573651629831721922824216507940353031390325245222393924673467681965023629078231580109630267436355078373277598649342652984537553341558970979981963708905965936875229794267655234550791105167556953454401070715057997632309561034668150175395104529761962846218124406014788745585078530466819043309012150329191551062650951472419340160200294498254461044573681017866090964243960137588999307304119883261973183642612268664854129055501080862252411772879285107801031784662400722992735269673742135199505519873936833960465130433628245661383298918835677589894115002454209475663331200506699745271539646243811728845544811955413888044671112661829418824216991013324458879522597474654122134747987171572934675367900698783127949400460143840952638519511297252653876055276833408656984561705647669128729322085722877685412589983207824860189229399161211243710900400974517539537673558536091697353990455319122029524296499654550820421221405051775222773313172929015819232104594324712238790625937833323533940875723527814981543641942033170387822881766232794221606483929242619579663922729287421835098330619555010948526653103365523028430419152637773370018008933400580287682285904852811037806177117786393555332088755407600027235148250133585849829440524681744689908221778023175566539904357893114229787584457881895487291426795335680749532625377141367166839468751608417910409694797958830913197718139006673237004444170834687687858199577879460589333858332215468633159992582544394441458872850078490628858393640418437385428453122503590930063866405883729460103009406589740912513274141468557873766730234126964648889308680747893905085595955925268999275043544073921275066984724544262950596690240652099118163815010064215143133181549844540392718634495449465075550309507322129995115902166902706903571649962045095935263048403417894945262676741814465452101016479499409028926824814574956583768811832521957465953169656008053073163446694577103685958456135145725398109633358554239868591125268551571596636481550358515802336677722203126437263062652673310506693877357597724057378117230273930746805638346511359728882534903618817007926849566481103178150724663227891466298706953597577170662704187804119147773372014610233837197110523297879522265117779513576817802620126108908604610090032999538523850090435540264536709388282465330458776950703697898746738970895329931209575464325969351947524425174558309963361244793518502505277078595185975541230643015179029970908823807576506517445162804245375638195972786889814123143144077229700681838614346663378175984348849663389140173950865379834920101590332942654785176725817632750979017796823801815216743275596039219065029102883866412904748856972255880149336695163627651130950840908542199688539289113270251505443303920421526064144456798912644228694984957433236591686745670157452008537634323730239592584282310864232344963558640596204299598220344194066749474809025453182849570573229679422086185720609066080700323437599241752018373168299897014683152848989689602709822583089654694920780137892084914840475640770324045991053867961043733909697082560315961708689383304308039657988143811233644924058376791211527676252868243758905252323934404458314754816242986058830046486479359991507685089270607327553417073511002704272159569575535567432908760911888415224246764482665916281333611138068262018805016429581700900061543561879404378576610145383347017016769361778012265414774330000166619043302575255486527184541754595147146103289370138753741432400386057390799921663903154281000287169634505695115809826580505302953270788998775522571998324832925622817652203395665407965626473870270628666657348208347696574100112555579867648371200645807851643010960426855598402609263770772748287269372852514192276607333819870463299145680275849991291592314675090474439301159700826266616957043990278590558204181265776261548046902942203597618209044796272860077929154310486756213621046182911007791471982650639642108365825299116312575039966446360895971692979296791720186430166005845688824245632872469066478464305556351001023431942978065616150177523752196095935187575246685607344806423936135236186483082529418052157445301490065524121141476144752491683409405780106052735531899298296531697491559671657768828662581815257855906806170816285676327487971195493961796496207427725588592419535116967879296161437562279347743111865946509977588812842025592171260050082561809902544413577956646792996619204482337932466571122216850803899894974475109006599334885304969428394047368541380850761808699509814224387948165402147361753349655737921437750417629167127107666969207020761573897701262427429600562536370462665490099007647475373729975973486647563484568857974720924168231708055230486146367650989890669432370549777485374681632039654282691342680751090303214514706070212177740408032094413320594617249887020736616874884963281230075152700244363734465221240547985489429098080815559539367077423544748203688641788601676282264566625851601927364828924041278185335562358823530972146791195313580294515520014015629007807813421186184430296933394700529524049591295946516312523734329623361733685773145890824804871506454430319152240674125145156637008967950186900364191014288727471349076331419371305983832494640816052092796990740425304249502809533203464217687823052048898080027559333865157635308629440219156918967067951108565525893170881706573264796751335813521303819372479054381448458416876182260606769106130817299725105270659479218847202240812597420276720002622100147553873220921431933735662645436259561034247100628185961089598255785244352150385794774248969754068876598230350166988558683941941919503197941584299166713748612893136539121365498291023942860400918104219327816806004483398209352802923452320172380286624408110767199777549097120919677648263048118849294893235806260594126167900199215754370957144144015059358892446526599473417086214459143268164000766982185058237628127128553670728037738465430117453210233313000689171384971485658020941582255677386626960322817781738836766022499193380888979948023731660543986567856992651583858933815856167003761558274220278496004938950385455658775649779174391141530096155427753573056886865158219694767666173606581439909601223710092146093437082792290345824783757913470727776202561325153884230210160786287668941133338324862005588538013118326260441181067567847667744676008505908756715600224618288283530824894372727670931531812685806045107328800036278389125861766784471263754377077309143042170678009558846692500615434602551069255567510446356155907396126319987898617470228857433047872573554536501839682685304343310860142424577450470848490162616726483397747095775504261377620459270489953754145717602010539823297339724235537276516277610786191537916184148049688929847382655195015439308349591072796270090019463802023949578383808385917364918465117474915792297953137878968657998958576400316002513348660795302993890730775621701149257031681016800808012007575458387506134953654841162377678365093632246709490984458889683499474320317194082445378965730684094663589376387254627721690133994580867168128377556790009149188269998779054970804677424351075029495873163046291081166683220477856559446982269583844054451599902750088703057453930291821281745163929287901951447103444007269825137191682414843781684172961637471623295120876521932452680336362900939864647204264529625622267670325253642643243191108897916090417819724332083015057172833012046511791407196365163795466769000261561556199501424186227628883767310902764081061788996915761743418512380067030875265138387430232662135869442434306596147945438033560756450426920067254500385504672023590679859870225420214926574223678362056495389527552832299272899196775451968829841332015598785025954343430779940263800138998328493513236648597712637220631790497766703727962428666053968234357200018386381648308774440383886444405219282896300607730243321321153345181422915727543892031638271384741409108206332627540249637393112701250744405170893190797324870770213444907496518260623715600505438240533620861911029299014525558704736912848900421481412508916673161006211033782646554123674012913342829161022016136544772095821090018252268034229307055294842015432668288782152778725321148192474767673391083678482449045520327859162991569325579916664161185941782745105483383264159758705105174372290901310141198804911938600864445593798023697247589868673765160328478803067640687166787684755005059931794256847375674118404020967485669148627239619712839283309982957533331943304501078760685219776392144732642067225453878683677316478907740185893590345499786554039683742855425757671632802241743013918345947318822987967220240116368859274039839238544210957827229777938470973943501207414607397775371207563592156744463980777658646688217579163463598288411694627049253102580148696501721565918002874074513622227375271654994449916701570838479807433640942078770049841272308997515530268861587230364180094174468634607440047465883452133863783271797402450180011040470203410710927850658721182010264859075032699614786552335460845315797493103186289204723667377206586101003032344660350895992374038569895904347618884705085594659071593736662096028417346408745273260472250247354908589505326051314380864323904017900719511584221906079895977259232458950189922205840912290096696957882466982932436514313756357107453804508848402976975513453895095835969446361106394251652354863189727934499004928412420566494550726330970728254897326550460720752783519759185780591711271234663300343426553776542315772213163035046089613953896221022572040773578596720861744060813679820078665204743749784043484466955143616494086512595273560995822152274974181890508970206196961085552053684747224150923926889972257757246892247160700157060016506710827267153354824985734388816387013528944328655934733781414576935583510910559547400982047218945747106728297090972049692168499595017731299785919190255091457615395995401770729216576647741621022772602093642614703738911483488981234754446737941450000234109449150005337720943697944133790561837853927031706513239372071476551698059004958011501134542808794947406319085193083247785230780948873392026690566009039610998567832025961487588294321653172767852908489980000034247195997826789629780409724445835553740133133511824853101749892130687330148770818213566661994474115412488504470801805098486115808316853614767470417389097564532600818158655478822049215173644265682597293321622538682047603562385199044017443617142589648599155563028538282014663327486242777681021967144925111436783572449210702871985213596364937058343567305254394864056745592460242803992734711640572786632817099922259450885732045867941984351808131298627225033672547561089896075793138911734896370036521165678973484759114506381022672851244563399547589731868425672267275287615977947245860404176908316929627523956564427363483501732962611155185004796727436389043781880964798711386945950389777877903159937670812972234353488840960810628058084909253339873001699723012932356359656691251406620959411356731041556232321391381408398341169405115467920269083032601452366031415922449386734367693828300341052081801178455143497359473802006977220277305805833644948115096333113834200441825249509390866658441690863926752485798050993974749455225882074736515284123091318374460044917281700715718692761095893273687427352736047006633461742028602396255600353292513471631562394924052865966903410474524310215656276391596196858260450066456792243949014257118038358060975384006095684625348962303257949448671114881032669801085563403330385438120486412209843851168490851375879473174043184423814768519132172349587215539649639726398964776803975672295741214556792001625937328814067212787154036223816853896953602020717509124681112690840991464850138810607826202381055365699491486220223684147671522674289530973187902291187742987447141442538467382876397462864983659525025364873564293721775284410142970483654676412732911418489604203866277985786279175279472193299997624918913495498051944702567223632965797271636430922156097898719324309129579603707672567495887200814025134019300171127260078946932084426730517481617738373325151925919387645820451654962745024788572006259671203512939827834746879321011098934634993186358785621369088606987306959535520467102130026742468486859135191973992848583748480843638047971664129438984557573373168042040779453458715831195287061246690348386632455298282624316296531968396697070458790387664274033275636655480521069368899892105511153384480058398340795690261112457026027255565646466004026416832891845788890101413119932098135128699974615422811613374798265226360155822020342582791829285535255657297036574414450873915243087718324643786693542782876530642089685477357604076387028409850752366224684403944475807031917087293303188150671155043350932629220460626585247172290303299284295386202567512575638743441664240966232787007250914148068156640908768983456340617866367300508652246072920427642102629337884250116221764266357523193219014791075310269039248218539650380527568896754833533862563913989036820488551638044973252641970637061991772540596680322000570669604254148775306786226069654294325318652699148964683699142326120885633020960907297443536442420771377791816867659831020296992067890766317759220830237119506901438588874584364635717821234616563310570583534781231627517219999203620773179002798190867593417808224711892812511888778859260812257052137712344143891951347455699940331642545193316552291648229264659252532127904487273586074113584841847316933570553940688295156459331449603759585878887206893886868813818004782659740105734924443252267555340534357747528470662293915976416183901413111195249617118244038476664391468915990051121840059528062856023975930955396253775463857326788200479533980677067935589750010237893502565813042448636771287228084599981062270094584840432181522082951416447788228455704605974740355160009388327594827126948130983578474158620597136454595415763108402836070905255875728995972206927234714560523900561826190573580252119948915908738084589247329848556018436541950828041772735852593684193634386933799729108042421047059839410399075443008602935756380611180743800950836894244595121159152722647623430473611894874310139454433445480923919360284098827521469323108060655220053594138464846891285552570227835227232224941097278536458869975085801585943712328576897519102707867241165733907031288005346262968987243332480345627244392325820211750514565122583792170718784171289959714477984014294522342983703835588670032829664625630357522093613809702179100821165608914649876884591757976175854777416944314190234371885396773647772683230026873572706505702536857731411954904787583034528852450495177408647623321193185260324797986523261253691155093561647156261889834363494705077416493892838104866639827106210912638170408553729164407350452168526181323564880636542186065645077413044610467860225327737697416273678345722451678933908796201390259459592345192768068142462720247880208409488001342457399348352234304335935954305328833900000717933544794184588740073455723467807757871976469403835957402006630937009700169545664370814607637579804337365017461758148841108229727244407372540887717116196723669675101967852693140421435362714260712437785663432435719404496184381665574122098405978022014295411805453538190210563352516919667684630399044964308236843622865454635718399124287760135794702423173498892230929819270567902705141945243033157577765687008040795553144681098297496071272794372687643429507143002895685127121872455291082388278442029159565210701957228569768065584731671013474391746848681896573207872568305364527276203382991628175590145329581600031144563359549335409028349884294979952388512794083289479779104275245295407404820644717271523627374701873256667159921831627193464441829729255321738184968003041446207399465504158121722220817773758015428337311567034551203221383208614279069850698563696418880977386704249578164764456344374958920348591840343682468380385348085831833896263812126217916169468624923265488534442527717486744189677955989323188509768732138744958711901232926667487925054964340963582639732285263142086583386154290356967022928208142972374616931197372218866081094133806287407003244797327073602363973172709547369442647679795188813594810263772018842975454741568239400607846905940794978002123527775116034759048767796761833023806016034678774322772687651126181365042616626255445381533873344936224784288365511502081223775804719191144451095627770717449980464553092397807823725921667449005782932136147815016943387842752681682150144834927785605128952387611639547709494122928531748359416193029367672629714675246079402781249581803827565846514614244811262957662859537888818058587089164922200508614182069420118107221131846042279466953292116854623334309431107632614075268715404043740926461872782156542152871576234204024023434698992920920371259864086691865153859710123551259483575228362760721813825691704908319108535683436568005943804575345700289628228097838472293419583923599572301364064944280728249693135006368903183743587938552307635501718099130247558399527852727318543106251203340489005093521638630966225630000328638669777009914897375032938569688130753920533612431447331474905729810614702811663326467903998147209715266178495580458930284297155506076932964451940791788265489218249847436434297121169582820544856661744003865240122627595857899308382223771648063967971041511609073660938135030255955685523790942815298739415103393397473166982791371670654179051957543964416765306078779494913240611074639843945983382538743979387062446765946758424334301495151537497610590627017948610648700878092057175236215524661411829788614320541548553416417001299179364235874450205293743012446139455595176154834482407286875755278344008982995400215169013720567487425007310281437547437409627030936843080539194390147383846418084206682497577818597919780952288333954217817201686585109494136559460688938282701598933435089111506615922130001689532326468079146377266687780517781589197136223417381168351995491424830005883887445030731268293706487024771713133335610306203670584161887610295053232534438958524721761435271642569390028569030857435362239041624678299896765269269438396772835254612870602796810702495106704925501614377075388911585188283296694108981661517803439278195938979879064364693515389219479369209646665829202088971560443874940687826266323522424706718212308480352790161642677865626154591738035802046203210722651236399848979182595299846142830049336911304130832166136348276026185489373757322701439859673552746320636100668915177819262280072627317679571036931622066560720358617666515562685139267208381575074317621972986129013804768085952078546122170015473648366163032894218554396443837173139045704107747028762398540018885115551185901281116029906763332327826902946869143121124210342333654999047454211478028375310345232433210675391326491093921651204517960600287221702477595237749548692674008651197796102579093153434047434554781414078637772130420244338059631397443791521469214929919161417897542611340023911779938692889493243283473629943922341047049051200794557011932671122048025812599331609197761027410229796099016943345669797855676493299706488845429298183452116026859739892494915303926906144094726874590514062932673483515342993656384344168755689897422816087748081852886646287368577902112541994295187333946600530119473165534203315760062026618460787907321586618984931108570709890670191482326503172968187671094354318415020164446830315304857723923006194514046661757860276433196695989170868049210993374182372052134746813014960254745124175293981423587488847637175561134419700578918004850548160107252064893630561018501223808214687635204861143795105996070425586142868863532594247432126767964356889386899016929017199466502898575596260192638341419487455648850141707690482401795856131736585508755803707453296467364689925115383802104864323614563858962547049568728186751272557498954199150190359277554621348149203444941109588458420956404450042486839541626906643659959165044794808123698922040397576465374650568947743609134452627878073563896888426043066407067753870475043945904950205191536319706985707489124118998947632602297497740761448953287711793106349600368087392449984820776415707932657371212947208939282477096529055799257587793575918704060953932384119856989293464192021619230699772022319246896555677906025562585813633459679792623378280173057458263299769475489256417859399340881111719822209584116795535498485500613108982611233991936768103183150782536185353957603544609595245470500994947244080320781108249975744974748209342589971411280286543960473724430142718202376960639695970629242298011883063189645645092220434270637241854469692036315695511043123300848139405422403672675975583900388775097847508614891631748082561823315540842623265356792348475133688713948637009191681177623853443291088441958971017151721526523997965519563596698967562622212716427311070521573380751234966147402590535000876846188434534472742175367287645054557075741914924133670767357758684570547771683415243481956079336843159977436921105807096752188395058435079184647580943837719586807775893894582875310490482114546709491936462996853807965479677914864426376782387223156306577607253964346337431084022444645948157814522883109834279327570469333787438195824357111031526476751745978211461346689514982083971325086723675507063491745291418733273498441789254402017274480530046548564410453719159179071484965100500703884490413359875294625732834706484776945956803170373072190155339500713957997146501152803035379721975405008646211532390055074868262869433407482409864035420557357427684283311635080637200186315925529948382024010245133475005981319568744991390039491442894062607686736160869448548692979292104639122550078375569938210456149540057813988613638558541805580811170425454416410932721101273305643163596883138312340316786156315125664583581871862931669134421679397886037719190758323002027641835512710901407584036067011428893051062063864713744439179061027098141586476441792467362351057947876180454841003171388494503710095286530309611942117045637417299949885310153482040999230091842211675389175844478484542790835757866844808650438810393029705100542993398765663691818335533160716603042696739200877317716523326070153093727751043816689854109732992338088581606030369907945361670888968741913066054237462462138685922147509945694224544269102076656373268443918055492370630439947146407945950356170497634270797031962866256203809566996632885488707834974873081241700242430879475427688778895962515231659229309933359855007313920243840964666450928386760307580075222139070637569812999999498406139817111564109149972590482460052236195262183952201665824061884658221296736630515123073993995141017742455838714566513418732940408504634761839268344189774893280832119964153273020430594746310094070255839543137291825675138042403662034996056030430564992889384269362912965703062397553865285014667484596095612819502880103364794770291533182133619601369060865149966140759420567424497617236733333636285466485089830402496328964721806610314120831109792478749210427629400826922023905372223938704482315737298176551182435544454146618774328785686501858633230934649702600060006722180552002332070005022212907288159563375712119869165756783881879101842216383396921400640023270067906619119065401098024475793469785001026410902982001586282501237072592253630157758915102020736235189163125314014671149878307834579555540318941500449583728627110921803111474303634017742672992323604537406596378963851220365133754596208560442880022606257356949781082926645689417777370123479259753637982672134820929162252017491266068013019666681527908532932163949397529350922563021693000524464105035356789605558688335769313398212687330970862967898752875032071026842902785336853798779694553766729799647236227269417530157145286687951532605081696866867962298145414384532934651216599188341840033523632089429173874280257003773045656845825339270520204963536684380238009321916624890359785519185007986463877508299663755012564520987610238462894232341915794054039809326854623625740495970043932932601373887995188250105153839893968550931613897054547091144256056567840978312559312742384974868725864575188034771144191817287492269288521634069142534099891894861526886628296966878008219283965883150079341163128193244509286662801281640258888855741288161808491420359701394716903874079474000375737280406481287232388537601211268440688400053640536314647626184383524812505553336905688154115753220411099532366910196933700932690472569414303420647427470075544687618157985193879298489213593652889743308842287173376130222995214744982243202112748629022711931490385826555912370710505735856810194924071588899996770173544082678327124518543757203431030714217809173952409668127106145745329331137953013187203142592365545367091959485798471744139654085948173274458838264648340314236192179330966107953381779487734066414884570691505490646921994684238925357208315071302586325915445302055660687845186268016455208312665408796071707536070222096750613532726805304973831662573688777536301746906586446427466475612657099085820624712573771957803149289079727239228483723080785869955069702657759809590185963599691819388049335536872273041079461145130516021586348498440173855484790816427688581945239694167361702137876061353039765198457619492689226645799976247325798556091732590542967294396777691655756663590346987908704929467794561956148554324114707735951463870158504844112238162711118260086371403894933090138908054348364281494773097518950333087046447751305880882442094798226273862409359300688318723183826232068857593084370640263310665429224272004832172865472479619685997157016040107015106242855266346459216617724487139517766729171666655531656838929383904770196674164769743070803374820818573836033481424935302105863226918923473393338856648357677833047996306399608163892342101492174095713656963104202996309878644856237687161331771618194252646240206615414839706786289025450167005368359062703357953562477226044810310968176083897612125211686227875097401315503550795237979980075419336963628589418880128567481712215185195297637441070947817488492695283681265099561566462791179849523535974992158677319490517855215671742368144227416997188312346087195139222786671771772833678771854922558922988780485967020380395777603911290856246180307455163520045136781634639009770954434623173267756885585131692017466252594387279246850341827926215791701404719159836782128210033533443332864281476969673787754880147957306457393822525435812544326622629127024021460400459380511258713301567886826221334305798753032513030504330185231037441503738031219747482603181210744065601023139158428718550270736038211512447763511752940893721503990789950208895440320986018700598329611379015182933517813207097563843117070965639042922073209138814832040591438567142784384562757515282537301547649991287990162617503768392944202223154858807768115576673006157210822801309083961077703179076985099776978952789756270221499047202393322809483206616775151848947888532472882327291023269258041665294464559113601864791403265080271902234836781894359061669962270992504257681439726319174122377303191316663158145622166759000206143256736461677366539527129589854839949944341289091586395492035560825714226909098505844562970363279379810750073076438552674002320659319622064539639149770099198771829482839005954472436349444093671829072230698473219565511153869942061683111810221287087162245825094722860763720267758079817544284024346292186752992914116027916603770816534168180725688986075486730438682862900236492095337867045775906333612954552264571602339831487266187777100106832964220968022405714822733684393461690357271515718877816617547645804534902408530103671365589756441980508864288425865827336658558624998663828590041277611612599422282624240646058484478137716250427450625387020148331287419596732707609033969751098860793748210921805351414297246928753833454402952123105673269126621336352628285853789802240472438162788068071608012304209298559542484668608256549224685530196499507844919136851204561016816038766593830998758104658091867089231945340939800118190842573904494437682741026321319325056252271412824326666445235880150175595808719195942690219174358852883918934256785813515113012576025040976790689206928585075213430030985992703016598527749472124847187067354450501267164442205489009269327583269398792044733661420241494059061341577249765368767459566853390405107366650670700296641791075520755864338186362861405758010602784299852868829940887875158148615325564774126455744435331217846819847968757473523710206681650183420105500328378143346927575589239019697713150247687558417080487237437207887564175677371099876523469468980321846052543031224232993292339672381580386677359709187045063122956892083407844869745662950347916436287299396663687912801813294644334580520075499752949528713842245394242903216703871495108990583095718338031129917628712307133904748921466053935658764042341471759174814260662724714627973209619923390780048750052389848560414655456014766718400443413556942605366983761459724879638722285077988605229084246511831585827241955452167078199148994640987355314072419884914090780400833070686219822502035985244267092890355603010806046893530140218746729361149464865758384751030319249421360874275537927040211083659737349999681535131069347584923969832307923482769877445508499918198158110248336491560600220343498899584980748178123266368224307158896472937279935630942636105728582855901365304540712880970578957809186449694602647485049873302766128192494543359845653818077199581711295767921093329064583791131462668010054465917865468979780499214429089079344908215437713943131749664113979864014129548867154583939773752990050500453501807813182625093689189291503538052977832198443021423062370628735312838327304871700263243864276750301083873706779153387921783860794111874705967304976955092059237916538273677673051153651508446176836079493933025871664154464841273393447404795200409045956132896568455368358465368839091161866722027791836348377821035924448706785393892611685769583176978634810839913413269054961687109826537137394079378692795575586515418729051117023002479036570595895161782807310586296041647689972069649910752194954496436953184891077367656994851614483821601595096725466918521830249698158154876771644488059027629984860053935104164788173174308291404543828175177191315730537428221567108116728243039317725054213426491596474527927824510904148673920593074124473048420753419426662954370229728809541202079352838014498088052879344467968955582014676993024312512568281366972288619079217972924049088492154795544195427632136730793697579233031393304484159788373140884906269948746149819755362854907838641041231099026337614167118807797859641335739863795144208805132567371486728565146163811745932756514995241794723318390183899234155274976390585371361043658710166567447153546438692921489464816232993217916192036615112500759231208277067296336398851942291524071655345894440102937102421261057709666123659680900666210072089910916504641226655522811624984043934252578651376827394201898760515008383965168597076399432783608495254178908208433764635850339883555266235101752858164509248175540633593945643603094847300822096541271208754453719612195502009067620621439758734972367049243201594501817383903432994925019546553969869948965431056726251478685892320926768123340965331381666051058994679571637034514062692273587018004197147040152246048703124760170367495588935731870418213035682736104384214775325421906208210930492356285221355662813695661155899117782996138862448714272025337085269346423540057931159838978297843990725563439479423385967755210085142223122092599515467323040545189610352958185355849975698253611353083502498469950336079208780102072680589939878921332085646538625248612865642204080657018594233937050157136292208798927021836798628150650920775999866330296241786223139092180440558125772973871559212247519422221682364661815382217498095739630516250669841673219466503049094787539274726458498339443255100724910719086394983874282856471712432902576973705121861640270146075624790612909032362883990214477947480629027399798323287339482881266337376942897779999410670532211108266784831758280834042044809611697189587334951116737278743510356570265324507657038204138068864232698628285572756479900850896491506736978646064931863742406862659370327621125873573342062311508399427635221894709989951080958586159148669691822392867478843509051220679100308906055855865256580799261483315073601385756542162924457244397582525789911052732011886175385303117590102379123133573495298773347907200324340429737721141803358776596642875665888904376935039401423260731915571749150222912923743550380693910874840548030895684309490080698557305486674400152306462411735760232128335884638561937199060533915127286411314470480961109493831168860777718399306766478540776374224201580493315064195310471666196403692405940235725388356739129796736035769154330400763585082832781281334649684724436722953930397149540925146074481689413498670083379563942218796581620424955606114057956836097370893023876348849876069408167328643979055120018981262310143816668788133215531667325448632777533354553385234407951186762375670419482870569818779655474403238024488992282210541574382158370587040176207014126469235191910480948111760117276345342398663221963797008501057917508210053429773101293281117967694815550026867114620241612843270514174310313112008958961732562737906442431618721769209621380849515132671958287150998017702925730817447262736176891714781573944406019657509514787399834340646973256864374387337519043086157732890822785040192621934244749197743475390519718863412996446608877092581361417061610744765032161024074137022107524286627814931812266409152216650341162256801235976800250812617726197001323475713773542043728013276426313094363754370531854101301184636077668205856692690543151350837391894395161056850110485037873174763107499426978265700859148917439923412879996549455883880562240155796226913385684034429156919457479963998840839140412778907285710944477841854239730441417381430756316642761432588922172937884046421925193382780930778782243496057537941986848097440717755143391579714505751876244939446501016703332991749513137336201306686957829960622802599873063841808969323311548854668659250451258965503790705375211390794634955121784145286638744339957599023136401428766529162058397917483736363678765447531868640453386734750422609858427388890289386595862863785550755371567985836743315274413038941435984191033314755793195086426659201212618478814427739618551386040475433765478061580784560069014626678830959317410444431437628738920668154084621610425711839826554310926755317459785196558134503072260851325380944947152474421968113881548033107925115054642848362561717070612702566690968368570472455899823897192800878653527500196745443234905727898945757063523007080306443116408780820966208125354226544891961091314487342109541961906156396135294592945393990681824389882623108069462368571664005559769196585328543360117192296793783325187537448192657404449357837745117859941925138589960792981250852007532241233335153315468783306327968189760655706056952055455744437005492598457830626908322228670655369362986357263287448298153150810637194154619482890761344854950724406341829955434534457081255980992926169184584655661102205090846439053051470440463432862420778881584756461556323416608455715567176574072908066371476054096945698761172267296475284000070664836380352475827363050781700139837914159036573634273706345890541658937707733577089007634056211115984347704608230361424671717697327904086762795161404511377950527294754352892631163250899822785445083458605793909653247802948497668464949270824198672736730461075708983227489543324731167733107567833981764980961854536889208701195346826251711266948004129460415601580030052172722314228093497958782125820469582987300271959537103939352640441838970140048858262128366523111272932112483361953142654534433843020855532022517106530051167205729450124523030630904066380521177746007083779985369308026729105221289634228793463984065547786840441347207842033777217466127217850284045397113978152192128426683330984115005532194283179216818864947038636017175476448550070284306107931252080770963316194339266982356327256531698926105033622281923411744067267960774525582641657114073397134980415985416114623566888247580597110445527130517038282797440639342358151067348072266256787124908816342698283338657316328090615046232512865073179504733754324021814409476569131583803989269653030451468831076557894424921679672883370164668767998157004312308853265605025749700006278956493279863491563927794524254256656407421264680722400827810028853154592772219336079209862990729722212724579213686154273565662844016506703285087152631869452190814373726439592327294365849588762610048180617714945215895644889169943240797098080354238664175454547072700922869381374254041867315455549905832649958340364685008774001550271529086146292019145505866037506835547477492107592673807928915784724248989699483556251256649304684969423133190570740089811054000678731549581661124378502614082709203640650610365953373682444705205779692102660755410663727198036214099472065431779037399655368304093509164547015502288027563267060019191911044246831403653188026528036095408080108928358207930656584655574121507074080138463683097392598014473966781045513014620376046489656024909310736176658989336005286875287442840130459294093068803985204816246558070467162228838170428397457907386680411813429012402089580921034479169696220599179213831349166003002570166174833525109979396760523053270780850645014291892095731961864479150336154119146076742616901165731694204876360865996176789895123626923241942781391924447316172984829526249941512845343421333369346017570415723948682846434092743293849743438686912603639422487154348324351800304454290069837127927359846186984646444247487684275084237391490124623353855570701722878626974362726505820371011670884044072367920438514710664050430577132547606399813764168380829457913909857239474320057640460638189145981153645939460865434776803445875108794064720754137791228023566517797293866080559837665147439807902410290763737562047769046435184243220662282333098392108912638502196936581529880286606679640941863694093662928583326696082117949318314576197558875667456699143766077256563544424918290455275760195336337976999337280400441191056533766575103122215609087523213177517218251252671766962428510417601848473321271074924878203783933222573770040298954495683352201562444674076859036758387217680117743648363190781245847202864491977023683925007857371554531077214335988981609826434728591484080005548032338856398469362377329846292985185052833336435964617542094152782170416990166211661056648578394542891410437388660792178251930662499202500588044560358361916756728810492687337245704355959844893106376408958060548796240508214275973180007879157966825976442682540862389606867631861254050392757303804904070590391902472457934592754604909081003815706842594428260886854617699572444018030555612604076000406100868795858739518169006519258022249914085898679691451932104016742673884753635369138110964045406446266113105676132294757971367960210567616636615728617775373099063183690048443145334198416354275829346374534695527097463427905109127162335969157531836260346571448147066288819454029461258055429507623602435234161492515242840689757025473954568981787043738456991654838649858086153693903097586724372552703212980428243515347817975534124749088962968510750659943389251445579520214966925994531957603701130488180757265074034356697113310988697453246209046593152524258960582002824869577632537444958961406548144216457865487965675485655115745081862754078029958003863336680780853638111338699590180015672960337780947005556420590395889025339625230205534576934007299060280595672696006701218530197887900729329999543235386211797874096092909787456657258373258446913341799073241876365456183363764910594920674150975812324532436338049726505862121576736797049651714229441290861686386429039149857750444124193062370657675847073588334618411352966470287215314427240194650374851085806655869404894051898894091113572258725576528054693941434497254167791363528070594645668549677367287291836008800264842419301764762740081713059955664675874067641622767372593310383801048702335283421142772051983835794168006374347254984817844851645483466197545429927941357666204809928881461009120547207512445045129888986186429022660619083592299766301046402265284511145459238736626349921302639818280440507672238755118274561388541869139956942843855176357243028354441399602116447358889267076451605585646239230859126667098238861679939538652646973794453831948766206911246978289102085761897001634773623730054616978394189179170362186839719865303395174539037245105955214787829653461444340420403841823271865083754730339910608553333144965985516122576294259169069663322158909747716394598965457162148142931212781041879106963908853577176597346568568880583546731557558656052036274890631324036323041935615465701801893940859474318370191224840226530671010249637787707333747108776201929231170337894088096983432020653720565416379434395763719728094680981145518610407919439953738731598241960938462123412298269091878525518501139530049012226903603807716793647592851206265832789971192028647977394613760966979835254282425927273778504482614468183975152082736890452113595515600751288072209667685865387661977339946135371936796468534284867318524572823082903422958198082040304441136055256846138398633897867489886885813150239190585331745803613840745608309165747799614540656844041516588620994157889945877105111356439121969604893543132572171461796958475896175800770246278387318206022372048588034109287049315646869355624476497592243632133705462240518648960728557911275390293371621646003798315275728659156737413311098249753218695180707368437094081769660791719454429281525632951214269255745556830943851176449639314090643441871159933922562193668349453430254929839636188465519619205512712908240433934132299354560886953727120679682029919770731838126879588292916395141567167767920114502957089985582707336778761610487832958631998912352901231333764356169140490003479236262241623268098227650543183816166168213843428941851981719606126794765167429954586379886600811825811847307149847848816291434052622204843119137621572373891426385724401121187800877813025358245439662362378174901058992193178758802517507363992524522084220726352104694402590016627703561008932152854041236386082385115524648354483362806076087789555306902310491965255684725277798966974358995442176627725762022296181383473638258268674449423004360743984049015147394072512454939838999802294002664445527379936155427057331753893309341405128752212284154316192370582022054773630168888168119402642163528493110515840443435228561796562421413862864065049070689111242525135245309954287036041402851975255660248022815159568221603271115250949344050065368509521721859603818791219464067202009688942832693309657170455443034044985710436247111727484144863703775116342280856226004393797634633296940148162628066007995578695028895094528603481564320414693232106070112136645352852868482169326520703681892776961056031982537015637955219541223276277228130708577441547930190353226217725240048590700436544568628684084380616868901517812178990747147497193283288288198633084885781390985869564530423515686718587442807766873808917451541878625299627466684591513648523521897932004316166977415017359140246182749134768262122476684413823383820281747356973922953055511880118612681160897838644534548627875079487779281795556881054749596308260131248790694446500709204266179337725889397336700609162653605509043133580037764293304310373164393621903234349928254974346948067710054309431353188554957454905879717265516470642459229434350804533488915394948612841845521668328234600085074932347135208618312470268080198336340876616105266306028270166167322499299856620343788988531543958059701743162255410047658205407989596997156404307644842032465577642426441889572378431786761336420779085076194145783890177629360164174924474950981275697655121169452471838039719806306822741771170191294742781879230686020312142144282260494959651993401145717737799227275974866607466834137997470141255703326471403040456439476311318232243615047111149102150614343925233275112803085166429690294711401680261325521235284570516948526425632848332960816934650753422310992111765708204492684525935259199983155464886767349085765754909378797302099247618034676259475738373957757936713951023252343495606915793979553843845642106885728859423819086852803157362857493571646308809100627926795312147015392368278922991639142404033443768062973740008420571629143188560547976229009949092686833577069569670418903446817812881471992474983023080464260244741542322395840490051267512474676838905396078520056499827829745773576747384241123201258037864742999807393772798265325992175902931954882736327391369260977924567737226021572833179476568714276836202220439261573425882371842967928806922916094794511020822428514037435923224476395757964605373247044475194466086800066084272392262158654868001786285227705937673756314261495640017661292418233349449953591664782915288882145746094182204999101537290996577211953222240790996634024183263218899341716161002786027233906222996561577377825393183671488402124556419090931791034325532277390418828540155734688097367828530606289674983110535005491416418279030553710989262239692329456134768226929353558749117593138291813980523917748307477982887906531303126301226244958585162505502469753003700594868090325406008302239826653895571973786860503194095370704082891108991078386294107522171071176628755462881312210191435456726169155491305896456332472101613440898176880422455966212492331746197543424455537733016902507046348887197933625208315737027693367802553118656104718495561939093651401168624487277343790944005588015663499134001966104646783559912645509135837618064572270054391262010263146845166709832530041377574253455786398379378188054891278877544419161466608309355310618195800200338704799142915409409765482467245497354535075343694359184716824420767464952180778836747331763991092072560173795430162855099529176969201053666845487761542787593091111394611158631431820350252871123268107673064406063025283411888094362306218721195775614568390757914964125744680470216137865399727593020658536961701694132569810351143514233491699808016521529863747794705241502184334654354200558058790411724463741802023770715271321336226840573527058807938811441246685150794650425418988205423391292341920006381422940913055255264598578068403208906468162955393766885381592144234589851734937773630535637273492050037337275200991543816725981462175972103138861142660749362206471046462477398462250023368896286226857723162527272651436358343425896788696029808156227220879319760920753278552849743171295964122818511198677041039873802973831404603330299967059036216478740950887344344837667626576866534581774867749113286212103446993914943164959197444848909511875470288228604006775962403287293546589946212133611712092505098116222248293257081023757835491747971738716166488800884023938800719260783265846857437557924390723421919496286089434960310713144329938189655636337498415806617231687583797438569170525572508343989527357354635959170748315886930241679226062077525225546803132478445853101117975321516112773106690399422659183929986531465918438583417046483283644456935785931950004892555496732852786466882203019675283674626992790453553211220434868905794757849664083716666690588278666401375760621169040258177948753204433211768439474001846636420781269855297739535713770625717186230598837818970095480399676089410433216038598102525811033535231377500531207823616036852651338833920271442766534182183186808261791959315768779914409780813528236374974772870271953520440407554631505808165045626907284204386984683954931974551142112144888132357745651370985045074294008264576052204479056920937115092141664699528878776376503408306266237250021678444535666424173063546602756664914160672374913334618115440283290478577454233299392485975834901833408729516765664391094763816164985645123603112249225826155971106885835746766426534147347045615236612390324748989908707862412842760354974254600008333270043458120326108604572717899635746214228140365569150673012193831677104780908543121064765580874291207872363189883034168896796319416834706771332409362755023095328272296749361991960011702368633325115538535207587854975927618676273906796934207423590182270195293678119425958730656300061199578629691003198603840423433772052242626507817798459612603670039800401327420696656586612561488522849066944442801655353797877948913620086194693788806554374665761606704674427622911189474315255306682611439605120248548524392030362356298405853699577857348585835352683864374263387992034203262350081349656083056075667339551534199114781665396086461389444616099677598160159075302960527746599102892983589352184495999058623812309679233039432156419671517938967818761543529815335643180706718749027721194107826285228343719869691291079600102314623917545191212275439347415359552134112703783532210688532724479087625438109690054982544445666748328213428667864282965552078575396452860670823200023176060600455311006100643769176771396149808519727884541465494070639474570876108455015973943452676858489338839518955429141726518037776433100292461289654625540466191657126561718073985015303542927550383270925551407185442975277936700407451311794733518689363600900027738865679945469281890433372734850375394931747337857491515968308146621832411960135825560980390000494226312271314225962938526602868638702945568971861982700929440961636696165851155290763380587834932283035071080186990732696864006655346290773281899976237634087951203667932965741861679671625067706007142491500601355007913935104404381737175255192230004100528914981579771842109406017848993446666342195510776699343680418488685018886323774324956499399868521237787224855744229869138034811337845136629659546111477239246500791523054324478889444405864453436204722933938717937494009227896897173248991899995252253946048729889875837903002372997831752947576540274429700994993819167756617064175648463184172844641001852077471897194424460547179999115002110161261757906900987474798966100057979697234283833663381192337005693827830396659192630608714900128028023454362656119181243836762140501283013988447607931515933788114839342431942814079892060476641856064177027545353613532679304336085972040336823044351665470149147781100498766544264757045875099679851884145489989077200357299170574455415181924991468906395461888280986936527918475377707584415960322037361074923455690315009898355628305719807538226639715507007153791164017671004767293584027896639411552862522173086866882661844038035813157057144113121833531281128402272846939702860608464264785894565563181110959503014288754766180742205269167426732124301959933056522988109670752585834270643575798688047593982840216599447440996847809630339858232565304757214995154871655566848562723728096173776052839780299643996886679501230270263673502340111144119413243282048076655424109251202535418330882497667048051600873053112444429667336365867256948859968755213375650068169225034506777933018597130773119654945237842653885995252344467229310204478635611895000150913130346563271589059910246968392949524778208092753408418473225423943339391967684323546090567570968083166688683653492155762771582864552010334219950504924526417309674932235962756742419600753557416009630229813286980405512625530413866787914761677094155811171599217376575023661934253602422902504858854701159088059399815410904553149475939098798597256981363426338803647317696939855771678892056350339854756356892395716867006891181633734667662898577980768908959749765866896880887244814722198233226427262318947269828116906126226753124464142257927233171806153852291994741066496867938030065243045082347587001086520720995858982643118678886857464185210871685078360147599490262270927061840995272304204125936349646001198931860210576903666694612549831705022367146983200479940639773746040890078918449676303260742234232017312811399768018341786911332962116952764091832171177278645353693958286021285333221967410320681596318610619485935535969886698066161100832173598457593412289627786794148917806574954639076523412250500333976465463465194611362075267572123335868099782476544625827593051257341794753699756526821282016351232285738919449128936620340018497394223241479201227133965873691296186077307245535008160572750877479910018314498658517739692175565238443917918980491641080746573146196493137180379610518391063182223951114981045387462699961846390381652935884617340316985387104560119132016230552696565545745682578567319272984047411658698654173870248940891898515603966104755155267439302191262869864943654978376659487581723918189747213362956486391930000642313789347778718348120309680303462713421537819304118754722114496073723624813420700660701633069823185029189658025031452960274294275859110436610175463091937261932093697275075143648029470750700140411003134018148147556187304434792354378410501498382083428836086396455851454597936557130716579239774150523240182655561815783779032092365895414907003748392377705649601104287818567418600494229354402049411805997754314313446802809187888225377508085796502072337911620741091916870399246316269240562869060793176239314525845403832859698227364496390756724143600525449934406581874312621093025511545598465011357412431460756996028082235868373929669583880971015421038535645146256352923563917367705173541111387894056854959719695975401841445329212025003034667113191751496324618769802821965658595667826491539989078014032844931835842190045139811342234786325437061458365935925646443029236999763308439988232872926435012752982218403492905636286145245419544490351256280889326202174592629196882655733195988513582562252500266021974105287195045780281558433468997963454516190774839263217323956008827872724877860977188314622825373838855146332084636650408052249702151539838101087279384023723173450166125150160162097088221879355133673861850739604217528716237305311626060340132040853789392076505380881820292118600045864573428452924189361076202973171820795602160698589082632595406440596038105362656854491525885873149903388505010604903104074002717902002052669573319207616479425313813460133615220077708063720142407923594860193256305486616519612417545733354465675725584600503262781062766032628362948057472691944401160295509897408955491197394324233881010051092331998555344969111057160107316033983555027011660380853753308405436992118907114132022606434002814773219189128075757414179219506820823647051579328674678283503477952075310192969170560959171954759563914275843705142730462522363548130652229094251350655685307330236914169514105733682207232964051612406291249897896100039117546214253621969837003371669002905854730267099182425593287284014562970273202887604301185479819722294020873450016611508637645855353876681303208262401514627549854545051257411905095436427890868260222605612489194944279947295179637110695593703313362188592136548982300494581313582962249231627240571654478590334031360461432980274086657878288940752920721818615804383212646537275858138122314730454201631216763297068701883008476140385012291715029817760568179626335491162648807874896675081615367761652573258956925533720329294482083590337932961791639112009265127380995947597885502113510003270009432093096302866641330860611742707123012522121193053679590587516239635423680077209450298428992012266467711101170549680889903152989311687842359279388879420210153962788201457926351290160020067462562656203792613773852929741820492904382354628826824444321794635204430490082788797066636954587521417667260104048250779944181930882950465517512517574901511771973480805718711303957984865707674488362180258488385078951331843458942012834235343465731362384388429287501342593992324928190790084604197527798437109830633631958242495979469376909409800381578525526860491430290363391392145081804464726945703066837703038163749569962769426406583768957574708753185385942802528539492757468072533340148169646528026357186398278781831024806543551285454931105194305894609101152413580728329965909730852382577984109591270065461019144683628937816706303328151692988607412423431041894583784113223483159255649423691931640216927228873041485478814904447551006564620261334667854741358088081142210779872888229310583341088184350022482912649380789363591240869181154053366566370578674208712070077944535933421672994825039590615352673222120220681719950977125052080600017298971585183925840343610772095822839375125108668045982648702448296747856556594538139918474613399402515034129288459127024418420518873126076324249999439002343284862919117490083891069410701627603128440398901584223453161682969954587223362397953487891037472734784295943633060371629096522563544085538795520931910670966294395438585661923743681036977551526699778288917351864254119633443262919673885631001162691389528180401529311769831647603293253607262750873621279299141418757409650091183200536078122829519570501970576248693611031621295198677046867396299500350874432142315652847980714486182952941074957044407621039929535190276840517986235999827707157364508965750365186255693148906863940204718002116916224762121590381312688726216106301683404121382024732382170449394023934698552439180483418239079674677937391381076171820447910407904644784358617583860213196960432209006682790165195865561379765486618324199629191647476577211458653998405033229250372651251479256232081384878490268087517370562419526153331665064496926224289971930281086908225069059560780568161306102874979899020275999583781738020176540084444058002222424960135685804965610555076971009800244754035379184660834064884555316949546339193049930884787294483665555586585685802133792583488688368378209038850391156762237948317086482349028236275356777573538545333093788446656456050056782407129112503879896749733693313332349366293709278840919874406838095241497391007884586092388111763718548843711426972393556343430813178620264659195862493986310970167103584719097812015861642081194961491882903641779735574629017364756839766103982668795639235313307092480590458013336086443217543184422774092407024481973586027101890264107104443432939115597695801095314951944879747779999394824680818043382191198692938715241208561122360357649910578726164531586325062518455687579083168774841388204701563536139036269470752037291245317804538903809108826610646245701045409545413626620320418444046439920584830074377055772210162808186953058530011211610846187658609305017941195111383351798240939217749810188776903779985335533235952069881146248723464525682185577963105817869576558384314118488780816787983931920702037142544608892228135983720468301113319140167042846082226857415542813772784428895002719356821805816610253653828513940112498489949246433375693247507354809477788261812542017731802991980685020558255792808261055070322511165844670855035750622345065051580755980608413339073824640371784372341296516753666496372628804923498733654847384604703369301360701868931144171154546490200699634875616820094676331347466982832252983420572928432233984496363187859898172796666020234031277714167555989441241626511263605113087751018886366263180347283562118028374098868991858355869400145355727123711324774319379403881998552888377976450305538656657027494524312270617493750303063316089600576968694283401996452633074556205479413162929986514414039501241338531438495361973994461384325254538451154409698486555276645769550912854584164954508994929366041509301825502199351787753961010984719453456540282078108759998592180932580264751704565332120308459255638367809430332902570401964197818648459274331465371969992172037921321038735225830730606564520384905356011052892395356779422193911604595501704563375765717795710999964343287556314807146536996153122767831527289727172067493201673136804871788719387370183355919283886965654145507227430773789004839570016126029963510214293227584520837746966686852133614201532755060844042725396100064710500088370694446555121846958064791422209034156668927806942811390957194458821191306682091237424188948558348506463601137317716827581910917149858812188110666713052379610892961233430699344024612234320180533883859925515763115331944381368063370218584421738677810700675299959721151594560009330728269181610949691683049686098328347553236772968407489061294289601907809137253972572312908975958310434385826212590618514063069455000603566524295434857362188873987039777058853083466466783016299096940141967690664173048525424059233548294524134692856220432629606165390086949373989729048915787783921677109771881779937127985464089832392624065288855332555037547185570598642525144731673101623834208745324237877959021392984600657796167971192644577541515188401122629373257460220510203693912283605350707752431530660272298921201677691951983083917277856557617620475655343636292904491548789985510536989317984681865833241023679290421923714521501467239245090027148826864399631051076107032094913392156688219467514945532042372987220016174134153822440795867080461984948480249272876813475103745938353116914851160087480408824840807608036776818171588090250150539898250151645807800032752931469188481386045676118374824092810287791228698980936413265875196259166660324435315963741221854191798128269345598439051070662697832774813621551594701392463234614618168421066717048320840738001549167624446529185799996944807109882163963653034675655001718348737563488103929086310439623214015018342598901826299118883737416343995947789340831079909993151044016495959374016919072010114916759586166470154148886429242555308883985090251817647192014142538436835004960982687501899016785012284612590355956181657557456823258010421046507632663717014134854952003020630217158368024161813961690149302932934742198695022428505390158413579770132681036170786707032137673547416926330812495486993757168530654896405691523351026926617303773567631145529502130418389332067254604630881412054399593178950099834841541417154613740704604596382516623191963028331680150846942610991761943045323150872109670760458227764855829531574480471803911295265476325239558931899395590322302501045505679505263722182422458249329675986176531095145103683671111521861346690696731058021219476496213106084679253284609715932959544025675729828500820321788984894227419722759221721919626320184012859672788701172182047755039964260107845768647173557350612373612301202265603843950264708429289616356661198380605323186392475699929372534763987576787999081631886640033905952056806458758864437124277377087998052220866467412091428571714482715221109101952032546219722971639240981647773473293334467105858861647894969347044613956164750275458487898586807924600564931277931285468207913498687318545156243131525606498537786034870392932507543166775136608004612022957255026030133948650430049009260231478675372190717068964216280798287343719800149941659642174875505925865685194545952036742613986516587903837054434182809199895579313539520770688906542701177411421772930157599350505968332081744806327762604427469979236253941333238276558590519345754287118785071704801633570381308555798297492919391285557748710281307396987151391038939891146749192656379490234134862608720755467959854468591126647519104813999579673129081394419957503562504811538948147363445851662742361038728889137271855663099400640804641091143624291324924115716785733194248264863764995852822072400248326016378472836726144388649172724417091749978562199219401169007693044361281136395137813972200022139054689979058699903942312875527765658395526957193487908621944764450025910321531788169281232256335593262112114887338846826450489956498497418569385191146774289506679428929065053939191398082568953186278800119241855696515070656273202044605749479605131598308518025593315606680757341455521425039068713293072266454756808898710492433994722512827445355655265572090204674402065807779744235064786992837500620266542606026438008990373445643941675121636381131906040440939221193215056432817440704342640352787024219336473903458488774041085271220271061969163837020629072074931600375650725264628773801383831195133703989583990261835937581741165737201333477402314972363025487694298018684136793348403449341826186008984946814001118244890434184927273416673778584433894535652790658158320991746604144872976303683482330404497403715957385074199905152628057856750576155838369381587256179713200628583144123988887587970217315149177557297568047352265594653607704826988703555469725133626559470442892280659041049630782673844916528796792195518218218770465504982478826615401428728783469891488844507393069449096539380335076373857223983818143067779727098679766401462361192309526266198758558504745315120493969685483843739654556190252533661036942828285585104260858082473871533716440111164742284061160464521779893161705319194281932095667797415785208601136190711102679739142617544208121686407571606321650860860674909271642244647955652362891171090880141926962853686839663245226763780982915334688889462597968013692468562016528703099068400175346449216106444282781002066239743936270935780292538860360557848516181581446117353543869332545409897620583959499470451151362543165310586976286671090690388172716149102449990930684392103839555299275571615270288920503765298759344933285588779552792655049216255267331244140404465086123713049902671967689946479954709166911221166129816094165478707479754478867112460803154582551520492681261173158886355992278843528166953133377448864209451042777811219001166095872170693508956245769646306895771589320747270983740173073895337876220476359346634267649200937857324591172081507095281924869344647540002403646731641290499409958557244185037813608809753864888706615419932246328941997849935810531464835500027511997381013860255940060766530061706472587685659038968617397114356420333693721526907718971942940127695685949109760826322394133532612365660729000695060714701577062146682341323601573288571085358692644438701928701477947845538372557106063160987200355452187406850744468125389328938940083989307425336245364025886529989929949485369595789832751533918199275938627451445577501956020041768329452809267903925318345292731262359749569453637870186187072153824027300913215973457854076699720105431247473650458146968861703919607276858766804567141297247040103727884637649498256913841769832116635767377504196215572270722028945746217837066471341801917736984138347652702614146136615449302259639622131361169698214539703320782875246627852660031517880186645445980203557339959020390978045555964340466456479360705218281775244871655769060287528795399058530843049003985153020094034923852405447058575777513637220414020195141895605775331359530011005127715172300914762043904759030341766059459337154662120973765003097474013134472028909776836096641522021944211908749283336906010938708511443935340625575808923069293285851766115165929754534195163919777865246697079215681120937553847777115166570183649503812253485979845907585445174356403638650570683046232007113420768687440149683876785137669152983743744509937090397453920754224167926459976830187173061194559357918326692947767071232206272460609946589130042457112411839123883685224529591359756614955442986215547704887945409799664321678642908476901872027819981561741417812264403638472372252317410639230865956007915066819697625760634305752001447456678059871369567025394829079691975984781674971665293250458968125483226415499728667572985054247974364017589680479288857900217563552289666015600764449625149908778368544204799287951835899595072363448933777271429054553217918910912205907030919121207422294037186335577170089683583258308946084640512165801710647286825990165921973452234035720142045342007462476200392434836175232710024000746693048664812739972980561623570678476203595288101706846265582489173199067837271922101260772539375661742419804399386543188956084886126844898275323897204398083810958340944669364615153813807463918642267997538764624076187954235598844368662583408168147262949807451285961474858520689540810387267020065926538293785586997358805301721826775268200554664599661136448413797775036652594418093614936074411502508190103545631994833612373760320957180081801680623062238407845800750144895949205690927855271925431663701986131890652857058770607979687139701899220757865682616512808801078597268958961394694026827001954420063306670967783470576180963443201029181388428431991553668937071763090152430115090114520341472253320586035700988778183249564135191994688949391669842159983487811429468596184721822414716364994681971625799069444395741263357700516765770684539756469786897448324512254329345823153019454829377457641544599768153769497803208404626159920236711265344717914126226662606158910793252067208796588122409842135342069735234797944450734697709138809329767331875184992371093322921536234192953373834229665788911752091290534178303114367199113450021567433356661822199994335582444412080760553364969913244054889029742397141785737958448267876000196662198645080156731901288413299188778118866233761258128343432413598557357111049868098507733703270884057566399271475609623716993229744985248192554225892656361215780677874519208180928314534885987159616646944604566911547359548849364083226444164710097123093328577657695522777804688531049744140697694581457947885476546537544912875082774425151655615911730066420257319716019331064593122849293137690940786888832971713999704946005668056264934379951486070408092280294483899714596256519494686102769951420092001591726557615502366492449199109427451688250220944757325826381331813664258243216372715376876289682545478934447251411678402985399016469038196608681483252680111770949358268729041960501049232602062688696694699736874283163910805662571082076250960962266293547399231529303716855713275560514737694909949290907594515442885131370270112481007995789079059938892586425873213960753311351730498994231144302585664873134732896069635339925628429825324084093950553176935599804636951093179080844616853552863255827790163828580014642788306780313603791440411798368373063997163530447280538821026440918858597662457685170909580022263256190919950255753428995889983372019989989156135981866532146635687830378330334541094178277909859716746030780015481919377063229269641179359845042992589747974301014224382035711722059606965789007085622295668096804566874269945839756028204074788962161733265335443272822367562765572852057142721892189484823947816869426215223462640179511239149882316536319666794802990672493194103094885472044753956177233229613164970657170760535226451139147944656316621738793985994250110825022738724373640011781459926244883819229211961083897816036035364967208233820906119720759450506606268318561002275994746915806128205661568942498586858593961924537081713896441738595951647261656478276464143756001613483285871487289244323479392828871040870714263311860808211297446803240929134744662067619117794301718200335883715498807410230335598777697335088513032572077240182083014859112543450243774646844425461513380745698764148985323537861311362646871199989745308609968933681154706728402834835297959177210272351460489978312756882060868537557090142002962704851097757028106873683576869095730028077846544542364200065787495010087395184477489759659226597113631278072595589826795368977784452613453866969334987070353063197423133805252920054529634685541026593715534857535657777589299325500014895930368155052428052615673921964065625622214559995437695142987315009363405357988639720739618987011773718226739280570521127498827161589747079609366916965093492491752224295284978829915663201901195597108398600113974990589928469830112996561660294691686647960055143869122037180556031189489068064338244239277956055773463795595441373022782662754870977853428584170451839507005228268279967126117417016409963478321121594743619107439477343283012093306162437282847810891938170527121090032172623077069021127697864865277659216217712797649444826051363005304722654458145405314202124548157517135366052978116083129257707464438600353289025102477678282350969300536402265459481483018107093772692991314396346446521245410948382706673372120879239523532766005914590577967007159008930023517590247128881147608409304298624541852382963967731788459753940927048260230097171537543227607714087106791723730442883761533426986803635183795929318864778805597553194529884171804636194719427405078233771074543915267113396337074298868904170390211782269007212183449363742361006782951792426790244767614547840291091671067266698227586966394355614292932177864045768255583559130136835198876823412024657382936842554971264726903944012992567394460077703481909259984866221365825999629495667685561710297210568429186178922869871543755415026865172844188493944564032711520246732648444211058721830104687104312494201934131979710482239137154243361559202165969458015278843243689553539176438590904474375128939287771025462402956535345197155279620138352378060624698591020565998232990100029223132325889209451416405257980811958674250410459968090374810875930118875254875615883810627309710407454440555005070385686723139961953713036269551396808171342584136163062871394925481604681423589018466447632339498125131495199108484563189288553627706772576476560285020525248077713191552919605872157323678930612561807146249757230481183057674376326886794823338924769813175731956076003764365018795796458684793018344318334674169701773517607409116446035518887194450634659321029314268377969313834980597757734463829970061833227739073311601398581780182233244398452259121719589299009307763455902998020095910775012955168731039933075425994928814858132942281439674818776911725532427061460394805372819330408824327590813045610758295351333801896077733330114388643120585583624071879935486711611638870700985455693227856332229371622193141650919977689308666487947602434143560943150746942213440110104776785028647442638148162112853676141189364265885574079653992371115768087616209094612875941610720409737131188290591587688359368625870746982976502837894676032581343525302942627253523525205949601828010221911128793968999616980214984573283403355365144690883000809173622641622702079920229007680737778681534798449922460078145950856532560380256655386066913078641326344156794309324403361312646940870287027858786832468401533449515889856831727306369302537609024370428268795503385577373566894401537438678687775899760270490715054161374876104216534457459434349608540208748432959524613030725354148336141824786692932160800129467259971843061476281342088847812507144225517187661774741459581211182329448770122681927488860661052365224959259861273947451945031258481223359773601822091000252313177517645617459057108834073138320342740087525232225556961718161707046262720321309349839175330800309435656890107422216739192819383482707580738645091104218870444632375276462608982117682628583925037324373005746748919621829456867056904202450112340435982584745002712395853764410319828937946564305193844348910276936795164981337303498642613281952613235350228008413160034868425267106504811442524984848407174746667634266796823900198744911775608956331840759051246814784160663908611462946629020110674607414329278235891998177062856606479035452770019155375067965816492565502447744447413513025948405801965996670842601430557247174365467871739678234103924956332817968497056214235873009866921946814752312187647396000023697455635095445696383967743789887074141903184484481271499765354899791736533673180449365565178737991839265437565046403797810909062036375107595951819487605868502315283050530164734387327891562231794532605487231813555593571350859214724081554180056313166805112494739950343360070166750968319409585633311184799804215837934074840602777408403010421971672330596107259334906777317084370822741472750843345308944103410510410013306506367203984669648890685283287588105920368025193227194799981131036901921169908054223519776355916602574055063345626489913204463169961463144452288070655528558710182029665582913072393418456943263219604966196601365829438246233634525312707429376465047155196123265985237821409640288226758902439962886681580636546948433918975248041846405838332170655856635282532450159138554467704780043689270890931683312820026999932325622903756702621013518360605932706396174207325572680446593829925717086045122898458771998174297381914927360770250306521979148583042990309166503390726535394078295563045496231389578990042227970846575601739119153951056532524736390857687927334666096460082114787068979229490480825320184193953246217447185037410461648474238632739512621598691967352733163998506974170279798207996890837790758280154780122945499711777775005154008703553082049280078688778052606268045528702792539301609298633734930336136273532399698053126070411418331899978642801989381072007347831365266327950574620912725968727171620138303892357302113055797933817969943643938263385199419474142128643750484421059369998062943699305829264134329884786268125003510892782629457768198487147544974736560208719099657034797392492870408640770352260118678236274390429619850303137308464264340335752810766254513755270375666519192961273919574557034944354543584416446809587645651076628916063151164299412848716551369801111678214139275873371856038843450195015696731249869174879898831817549314282196770912116634386426936041484372430095503625149374768076949971766483313536673109443971114222483931933977646027378826625056585644923387180597447759422063551041954944445983090892752856644343103826315787026796925863054699600750990166719495959583096899764386179690457482550300379260184757244713226884586581857621677543358267626415207086295483496486165745751843928208701327999738182923953145898993129194560944755468627458770549204868220518572527552160960349566594599926901688875649406254951543966479977911580701512768817986393720824864323029069634446848021619080322685663680381247941711553340161632231358910532502531368595048255889025858126462676887669296840852561209652462511068561184602302299118963651229387933931541436038010477196391983378119302875876004401013297125461390727147539951157647788382619073818322061819155484513925707193464636438691239153792104723726765539502301961071634694845470874173493631533995073031803043184945898125549706579206757715817020159425132584647795865253023508717850245552071406160491978020004242281336132234863147645146117358767277457524740021975207800211492925203925844439315341972367379485924743431972220789694527355892825697544545508633622061977401917382414617560118121298450184604396826276140858451919598470833480175506416522317263847623249877168186953861408500517759117536248763083453030148662189347228149287490290337200455597174962189394180184958600566814702969688000189276369622453088444904115244379579406125102428190076216736468825489187538898065835275863899207091557416092329065002387606423346724018567602591689109273605056899842518960478492756020824615145750425351693819005090611750552290877155618326763726530099827366991697357392471474712086471978302428697883511659163059386425353893759405447815089469119632003273207696769566883185012610370398816347092806494658578558342397670790585776180239265394718957432557549409344344257494822339428506005092610003108390137910879236474859805098110550517045614433924756983220227275841730276991113855693151523058186951554756700819147699243846287556600215405617442132175693981633727863228079502867280552887609557697013846152450667155606611880005609425382574439841004363679380100365557251573182898378848552236999715086442294752260237616037958199958646970859485075746726369341486152249696871821326303977843678545846776667097578516123126109353764663243300227560904595331501602567629336252367481831086116208465989733767042165983336934366012362155820825466888272780448653059524395910779680498462112558168810362016646959485416997521003457306201708209369136992516614314937665065159373295136456931010584745175153966816583490330536021403440313087569086831981970348513895870288216163178099136164954806499437393929445839410599484149293257875170443550898210437329195674879793729070767569109342660501993190147671989738616616555301352456752463490712084980398377759243432892018628290878200958934310978178771701973834144713737105933523743717305776279153097469420547536656324958063423113685882796536666258719156561382427618073405840921146716159557483713427767229707874633703725314554783293411337622412917648805976150709917405794890339940697125690150358968809519996701480311657229644869095745364536323673032390027375436607923665481022261824714291542474256121965367350016186356161526686621297931740291704877084369964039524677001856900621183833922495819946331637850179548372432994460992653965851699749330007027174725991900393556963551922852282203922028150693184951668004351530189933328188276172905888099193850119940312027321570183909503344941552067465128300268848529941371366485345115732264585854375199777116622466689808951395091613550846297976440960431495062315346674549190463342074319810379738096493349266617212392714367363361515341821841117446873302504544768547241162900219575841027857502448112695866333602572349308308307071493436356778372478663814428923770024889415550761586497158323127313343423121173518023791622048751579456540926977672043788515163882479307798046285069500327481791867309361299269710405100819930271630019344208434371025987050827726927421736441100353760276246395450303727196537718145679250123819941843420795280832065846133840341903029144543865251834744527542191627468483715627550672349639749596150792889083678832551208054664232306156534735253720122007698453495296652858384498633301876808293177187482731046481515956269645755479821547657318667509464419241620162407898175863368087287185829000433966313157297393926822324234635570664566972927410135564629993110911600349288927685818346855143931859861570663479413988351118687984947985095658723812491504769706088475070431532147618648315662190356164416160106581080121421371141933551575810959678335992541764264460327860533637027727640523776537829232171457893587131120652477537645097019817981029058003906877310894582805136359450681819727839577759245216831507012574016842767196602508459757458922560640010022355279358972440144032592867530432414630882806035701439371050429085172711689332119143904189692007741775266311302801810517354628131853248178202415635655880605250013566844494383320257816380952924906060123022111778108098596341170240333132538229314046808262458535737364116344715535418290570171454139178552089661681651754429440504229449688272662233936592341928370704587242675708682532044388660293525731778116766399100159387937106082880283661670256128382604293309371015465789340410425692385791581758055110986248667664843383354864717528815452621718430698757202055581967537073727951184641423756818080768324037512042086169642746718098203271822294832388341965011963000329857375671430865108438163260751817880164007207563769970422000933823030913353235247570374986428495937097826756725874815775086988851304763733100868015758289148706777565152272016884224337000909322312939082612908658957865688343784726069883673130300147566367626581871127819709041985196054194518198445107183943204367458356929385366681579875883773954762959610922549579328392370316121179282013072885237745197306058641249970797468562512211320812397302158276806317776329639772808313999149164932595466817618947424927927858261086140760565074410851786792131114709409677698801256662015716286929788165379787015735815427442777246556421085139387308758059742414498856383837009694485203336516641340846659051759228214010659001192317307323121862755916006267157385756600669447866999439476318458681864308747266462369374077957965145988334452674035991171215339729442446492353769010232267383259337123413803382595195321852061799299125945464171535034486367752415087044600432601198582563820989470503945900657315359675921200654482910144791040061942742550916167179467280571208895232987444875888696830808176388937345973807433363438159685956262943395313695100966391867825870727163928366876899623785090869041301612467056519205309302000865682839804268272403666723566744771203320136791925908541968138048405580037234777553227333835781597736570640471641228835271245103092761222398104480913836285488261092422892326347803858848600025327277184738432933931165515196887628105004972719264021903129207517106093798318477728669006503156296671315378218112063727706054791507515914666661497662340737506980078373196368984572986363275513439339249420402700603446578520441286085967822794316766129972298720819903645338301982193712678221679249153718681165039460239748991876273291153062830558094772068307523664275863855965371158129897269566120016708397671264191116117276070933334268879826928168511522069884963155779025698844686473972967338950334834889360757620022033625347857781266576072699692773660562490751283960829466918708795490461271603862599509965242034722796767629591014916810361444344620458169163777903986884161708770773085152424058220993076618992542262989993378946779917522261770526501512378255857079803204909039412059959288758251288821005000823793999876192817206155715500861545276353071780225627248789361826587277050218432089590310577148165224591314393722306820274138539745901635111026887402135553758110153500627176428858967339038342588733970202317794160617219143632055346538869425129387852130858364418553539653283705709635042666800157756735969707331195234772284408480072719564362612398488951915054115855099562850099140553438577117761690275898482356131170794489318112166181048591342105455566533322752227461756794709177385514222459557869295835223630063150366429606173683289346308803580067405687636734029516921572458874694016234990933380201994237727082405567528581275184088806635936399309182227911146084084846054064415205174105415271850244947820403190293372657401266199123096029303963225779301289343344243524431698339357184025494760338077127378813677773223949113489913982579517333808010770512501494273124198417400592746080867692582876706189914250008086962398178933494650040995148041871995737468722252547577970773723970966074977724927450301877658227835386240104706604896235429469324329975598188261818537352326072324757947254261320364186332072297679395236529946278094891566652028777454894673204518050517742516739059118960226753903923647278093838134602001028754927450056413681810171274019983798723086847176737319233686859269688685782045888609259639576084545721230935332875635936462064855122062903061237012476355292279297763881490773618045718072723694795364626800088256320399351422353077424213582678713125206663714353715034868735022262058957558706032481370473860300029681902061380917556329383522376149406108094583659951762650818868562746817510226472278053630815415294314172107503324409897813345481295594213950040537684904489054217249416572095582322152190538057725484216278163299216168884289769660401895410982920083868019066433407194756869277129421417911591958013858426614407710881091314631588411300532521111444368172961917745551223390514880013189830595134684726838339111260932896519874215279760726049226340236061308285922905028534661321959364565247153683768162528588314442446788633788722272273862488891458365753422829966708310595326581846802374960425156313859181248892295508277641543737071098817832056354477502801800682739778817820495674128257238692961166495807471898146358244681513106811892888612168936797841618143660813643111529142623674558607914317995540040277108037734762833789016106758816714738614007354219382058335488477154209720003580830455390884855153481533629293547495298565645691371490178472351361304247507294294804035170346644922939803869868230270866156559932672511958706214772072354878984933507953060460913025001628383318890217395508101136732945316641144889910424781874563167808189390457678317996902156818978557358391640047232806566165239709758516551080693321207402469191784702805195884475666886535387077527418793799957530189692976777594127633203555484946188032829250503245997996458736678589919392749871779785265413660778775755810765539695217612850152289781448070533228336072075712346549501255660235721124670636019911213209464809040474976756326726949021010339305249198056999324116912921956921058430111449746318617223529004145176324903552206240034634655935677940749277987214189309365986275327765045314904777628676092394493963212035753785243548194392161652641593993452711019877043639652825082676802704477786415681537083402775208978686231188799779152715293363344113140514781800004715200939936228189215901246609231116056534785392979544342474174209940149685876713172680699553244191169354811554780850182272623095709805596133896587886970326675698866584469629591967446535732259163755970337214533617627385607822389906287532617764664277489828752891854762277287488145216642262704397240583098486431868765729112132776147459425536239065253772453174290993131872665351995409544253701507616803987489031621049282082191458944735983054157064066027358040204172552958833110792748166855694139691081025943562599269372651084225202365157043081729492555267449435142867592713314155552498955007039053905446979000812653010720708195451838279102942615225771661892476219801158800058800698880897201454662354795834204613205552976987552438006782918785304222035950939462765492109945392257496612463782906945145310540586343695464905054532300630567295990399289530943389167941414776985205632874505276371965795156759338904832946657471283121635322335357939504849607878665567179212562040858255209492999840331709639395495975816570190697224287481390163522656303461135630419174956945477121401513768169302843275066400630176250990828449418256952075682429158996476219133143973152784713254702732331528766549859445779104280434037232052713836155084834945675904586870524605488368907466672475261486494122209059017258635279372183262753926977113703518833347031932581461605492062960999168376397751258558040277890070365690833888261070629959744922735842533248946591507885287050307010070331107186643215177306217829306253915909508002869362014955697570089296149770172945778737869399648740560129394713232356042294241189564113097736870534189794491118261329095704744505407749467001990936092104591825346929569391733208553298510007889051079189731408094303129244062301507397876744763705166693975344408436197103496653808971893809982449307555816450854653846110611750864584763534543437044007157496716110028447503483548029028968944907281641063861513919204680331538534191354047281550581827026536719728147088274766089771996205020894061080929229452074847455406632684075842986005988133672300704735643712143731879754186922183144219441736736362586023310744245514678558290191395564487371862359981124325809619698598804260997167922650410270949024298781725004259202444240998858734989134613045011340587306265373567814173161685776333366451789770005699212011022256511666980791806446760649932304661628391791321338718455576591373127315813137386276404667422820201714623503640459272179294913146677901384835640008865043750136466426697489605441397670290617411865466057849725976122891563902670928614073511639950377646419507827607787219924576046492281298805693041699101041677066839875523101260502231731787753155033889789275269680844793985244588708954924363912065287946340715783364756449344179684219491464969169649576218527016914133835491603275057678623697455821272107623937206828858294863002876359894901194031176855606667269534894660301848761195049678499842378021423884853723758815998893661263945562376618229438332510955703493748313869090680792957887029849056530031736922693282487103086397155964288468277615813162847181114501507381932574198842332410290369120388752039873216675205048517687913586287063730280877050152584884154584418200975510910915820615937994547602235968334372307636092184685736258315322773031951951601072603021481728366786210038421944929410058678624218600778576766467622760529847642604245722342866396777482215439052254806873154931477587480565184534316619950478836986139532844799073732237180631131363679314081813754040051332371986848828752286430391043758951125289097107473188467443283932098286608197099604991021049435361379276646723001968046744197436028002975591048831668374395160042493046334531004088616467339364110000509604516660911328960588147009755893991489146883017371290228926061909949399522546205766231485046920704315825408323883485740487190005271263626672816789164020480762718782804612358706568550884908307327857193374503933651346402437834098418018997496707539372933397797075582366664820030565960968772420083583061423982862950739269548564985636755516152635686228871661795148099340073024954049503067296158676049639272413266021385362426092008272644350658481850966616342862590587048530092079277676067740711863461040882190255768662968081361008186338275060293819545513121670949110871909351233791207562396621941103401842575364393324912450275577135644402645153351706128535123525307718176657181680019138471246241415504408619244904707518151121853404578685280947451745688652122882563831482126383014578589064201686296817136845594664335794353586650943240098363777468483924310496501747268031924955453486139575705401359841177006354744088370652375094544579735933662551045180776106065284751502864113400233199438661780771660368316379053905988953175670970728864777542134402059860376043232041743556526721022505958017840765791268866436360429663588202233884845619931054699116784744206514271449358704854386686525277510133006488760474024090947631775432742703366068260163200771543822270669900629944988115461651730546072848748992556270689582048793778557868355473899013246553688705256715689839879164970077927873013069026659207860688553661730363472814840180899645394604648669205266627644802204296173594924293112089434642799056308496346652249064461041827867762697890138436199187860329125475463114538710650513253428989197025317782951868454925128986679454147844454697376599625627784645057306902416550779615172568229103747401114679029984200273882272489035892258582053154566105598072042454575818365706615392939871703564127296579318859423597631716510508964426148718882448732009687726518943296842944559009832004432794745008127602513115845726011750403581814023621926964520369224981850405232476787482708395188212639640351699287856256858297475565447162816960212831580739329140691314511266332009299893784479046257574374849063711152613139130050488288279813063534543036452842830624745565362405512428414584918025280043276831620402327644308298928120143617029128553322323658614412226686487872839691669503753956988302104200667101469551015566796541100920787108189166596729440189387608722449638680134032800963215099992994209666576199397308734389609646046108214581129914300982062296962093134800689066745710835137756953849642352844685902562238432751153086001553843117015951107071226804423876661112339404924802255163375248253975627031571034852133217091993202378904243516204663876075876834859350077298197933102796974343722623625369697243706089673651488289543913717490295327260871966016420537595625518864864255065782133262919557055944034993316023457791646198989872908276224323560804545872597504862692864695430103066659870768614056608942441740338535266684650674201286323164663920217538375615759914795702589167113795969464028400545358822588100735680870251763797051333074605160954882811200378028920277874296035326378891885018065349470464818482258624218587979801999701895455984567452133923395839491455952005731209093645601102855931709078819229547432839750555163000552088047049048706398009456334052607114332828644637852405860914072062307819803689770588520938796408184364459860845038380510256918927878914445355803273959848135695710849421362094291737321226717779234950217399057779286820438867179472779405861936395750086093543880192559901202819259627771174000346784385635759042844217844230801433395517804180355167206374046691640485570163767021005645432544213967850909441887731935728663236476570722884998097608759799520451069379988550535968149738811864339994325967451642422988123133462125166234854383318048503301094442237309240072802815514223456360339892852588903370646674658554838346612158308849845278194678033169181093401601581823384851446488804196779414070888827137174734473594647278610412388376323828606615410757609321080687480021700519606652819597012152015967168373469610006954303871012558724168198633762924373878809515773322014184524749841499150825260388549372619186348142155734713047063027022245891994278505004325171442746777260913502263973952475429466125135568984878161804535916135394559715278504997098988260818657649820843263520733410442313028654836411576617304959879804526457982102601183079919899961223697349709681134038945409518063050919334225717013225602266331034049566116609713082112065206365157461912162351546408031981486768450888053682026960939647200922442671817523616389817950107397684968115429846719771328077642151704406603342126655656508551524251856971082460735369125231630918848923706526739743270569987723340210180137894879027405496287422676580411265863988958770654386697480158756984498769481613227390953291537717553132374383343331799449364031338113924172184023152304484157437992702459296081330915618001176615279555217212263577638676957631631833828711191979775889858588954355886694788065029122043978394419581940723039169824121888976432610319147641923979237492448412805719077442093026957247490997042020788050992932031250995597005253870350135540592974897060843412520794478593674338424784696922467211556037236527799256507225700497197981592712802415619277325556826505260026669214639696495422897296852328101157993394665225713827257860958885038596655959459860271262337160601765669205815303885752209910129972703629371789839545550717587717137849045622786331175827049014870573704408596769679691576971913790340580550758034039528585327483343400586125479802163775920393454443375046048220429289904257472394952835952467515937167182675805472382459316147907125209084894607526455143739656460662695094473171987921256668068795758913083773365810884247736954054835223231809861626889306803993230956838640044712046212380506944028463570603005869570046810164423697354164670895113043542163680730244046567204501141955645682333922695755141457566381479223225621586044129538207124103155937085755030000474418918075196559545357829214740500738339482242977885085719363559244780990992568666144416247473606474731130724892030934292537061887600492747829794902060658200532655028243348373483095352445047671130447576830781595939271853058401234068942624470566838514040607621399011968645017401297822250106697762418979800939732773911453649357392140142035278027214767517494369728617004949039300361068321086003666366937489610530869176183992619598521380883232039922464240658268911670764475438695854201488792669486140872798612493944867800372163283316054196275962581785346951555849318690484217999574942650054250485174573733384920038872719817242075355186820140016586088088381934740349759093403648874159612081744229855168474062831197594974993219121041733250783506533471954857455947922972225409221376245604926308623775182127798868611033093029774097344682144994761829704779541556585979092438654982066866207447905604853172778506916712385394129539501657868058785341913451914961615350818244460060524278265914863535729696699242921852009983552572820408975174446248442117696147971182268951325787882314318200746640880143799884300795554499216196721494658515918796546943768562942269472795415596024857774664828518625647501956356252284217069398141314080110425435384639931698443371759990730355255672000355436894992391490407198115666795333161455536251224143900120276391914170399049886803270911102714126294917253896205392476300319614497018662204275812489192514351587098888837514930169328629786371418374971094634742197838186793182071345937932128888676593296033034198524568315566355508060480015684880421987647510484136479727405347229157236492668299953355889657754703552256461862989284589435544074545407489633229940431931772643196806932502924644303781660685006309419806480169550451523483699498942046802828342643205990208750645286712306751011841992947112412604591314682237858082257537888480074160125611117504790716233886838942502514852063710862548847199298754958471777589180927734596728967048466383751368131216641879494585200368051770066338610556726478508158274491023070897840040014305989417594929292546680552810088822589367482564760291789707564498940776918809662238470660734211834778096997820730013609343515939819576625848498070810137526759043409373677325052488193845991198326159654949746743091169734498257840471385628635704021477856995503329586890844307407211949443262975372968543910578310119690488662366841979912017025569108624542224721276347150783680122792768779386363025324923021913036011069771959205797640092228057805182006132448837112421360835267605268456346045880503980407080671377123853662213731865763856717983214752383484445915566904691095313455989662199177358637831370403013756141774111755709923307549046893138723365710970239481550347098161805729473413933341123681047996733638309820639449266043516717813067828211306853122995518645587736156419525190846008497385718365142574138529116752055600982335252012684946103299071923626140306882995877037423551222730856816222496816231988177028706836155407991715797067804994953642680332237754035864266963974079949067280190549132607738506660899854600158186790782545610520686020932048122407821168295621111072610629015135537401841921450014967914728825094158113847122484889682294539527990369853776825375925245614504207639916652056665328265477196016752959596401048911933428504320494518712626703609228600563493802643181552815844569836370633759497262149362400676929131696360634422473591814415998480357156953754255863002742043287854902352193596874910934109890675348805849193448416933119014317157651554050639997246553380637735746600326049077232177718497114181679246464109710929980397233061294193728412299263626105176325510784795585981238998505647600696751930289168985792221561770936559840141059908955354158331383576298238880355903674334385886251328379179589408487052581863156749371054817658412302606945941921729718301341780842425787406263237447795110042909947997104248423813276369502817791498975857128266728637100093048081856041780835052211223393604269340972960215399419311913109328590459526598105390487108823856306451911476471433808295030822287025080364022069158694122167648325599745115293879983613086524046783727726550875010957803185402794506111256141840468684664248546975507254278522271256390665776486989356153995198638791576748153481039137439671257393444622080774394125665183426627255580736245797762850362726371089644960086442689018015695850588838845362507951082848968940656065486088458464880014288431901964012837519053214783911878665344639717150396649121128935997515227017550353522684359204940008791794984536219562590797760396655925689205799572050057961073152338816437637021230285433293219548124279525878046324807161268725697536046005145720062609091335479028661698550112382287900665926372665901845590087721496332029308604459689029680640137464276760337610032804723264280626627705269183651635708251907273368612510617287920751794664729697584524404356616464421578655986849301432883680289664456438044649358000548641573136564152303204081639707822233346703717693453611854896294373368739073961817102414959852665773524961840181252142144844301769666049450736793824197666401712047375465261790950978485571911797879421751985788798115812219625921033686038815883823061601033116214503793559130778459695665639478404432427381957522601841483747838574395344355025372983198980505490697080341687092637640679299390798079781458278257414010787330373200287364003161684961271399917038421820870477382269641698115234998359763538270745905614340801434107016398167867639730447405046527325116063581061672833207194789166793355610630427344819261751750618703067512304288245612061257699664005508846497311972835423158052438269035518347652669053448202017500923015491507672808017824091963840587306605539653174451599815286211658886315037749584821788216042191749540262181054450719078647250942649670937265450635269284705996232175392413365073726887608611671686053938046308097652124316546839531483511458698059154010028171015335780395334837244213653294740551698686017343828656859528817910573029330222088480634023188990391296981960303446221185544637247103608745382172733111965909409093040923592138225482535574060625755468180630704668824281082209602146972355386429406072219142679177186582533822284033679482251059595421324538158838038246037822926815450842563271241580335229730210146400609602692847342925586933606705894507421663018702237096348934680822681562120108127350192307577259019311936309935994499875131228224756594780427446826131995838176488159128198393868518242651825891334209271496353701223351317266507277810514986849747587665845744506572807901646715659319364926094817181867391947374064203402443322480768381529886287587296898691140501650712832011996686435443837060278463790006425814457499579834046413148798200901165275185551484610925801654479876803340868510671771234420912063053921182781090680844901854677287398823560058343707085145721314317103058210670267828074996132509718581252646989995831928913816335390972248600749480272599912273406004103823927356650244517108521102218490764763231829901969660538042973760271629607609896821107709162628801722439675188791675853581460307437549884548259501692897351225528314543397138194998806741223442479835078714667576849391859043978147704138428249365807599477998913789121953952877364044974834888253310023554314979496248862606579561708753437725104865872568178386275426247864337279247382371382114747301563746066423951860804791227387919121527353679899310141473542780110792047676928242280749767433280445437107471430626619563265221064309520134523697382960026368181305013381757258043298743426339933167000302804968489617690551415109846932954819107366593736302471805319136352723809489914196273080827959804925123986089718079475730929977757523008387591176364533437742096002465659231556984811590268881021694871048664650186886840315909319632387977349811559332884062608121997689446080112006728149733928051674368399332256328776728881841361632827768953939250765574572072502214003380705449102871612691501380711208160941968286852710512564813749879074796720572026981979487462371351440084842375177297233314986359102130922454884788835173192307512430305878631612491298874036695628796547746827029128063501504799976500799806803679856452050883895328110518318102117849106291248938479748698135229311658864926842595942776977476949045492616705677816813220627334576283365557885130447032202918998756774828720065115994342685786326869151957341712637036660783103738052148048544448259911363202378981402105244749901118242488390551115512847945582970746089126241731930372457188254910384070853760418634288089797187188832118749009167455354071372520961722798214282340204417727380617459778896084423366316159740987572488958016270316783036443644173322813152001202793599161630220335106367043991956608481232465407558203963336173609505538486053325088342302435155322466160297691907053619222165653449840420328551475089457462690664641663099632280805250867716495261512325187316227608448754187666385512006001250888917515205015750688593963380892869549321693687686393404397016414321949688121883000247448013313813864492541036890514320207786205030232463203115548535547624466213456548601964183738245813783048693857383043550871180395387946817093109770831093411145412923315678810325603500358024710039065266381208706814582736317582937775267844780826588100536362113236896191810720955092788477389975518711091787522788040984376754669250214635861650876308222518679533880737099053977319089498666384575206596393432114255925520961937038553931522312155168613848377985942683933299849829159376776662373372895580326027310191710969125482758350098550046260603103623480791132416562221518356945887902885761739598487063401792178972004294139891877642791130787488483269033989681076004850454576020511047550763430136779258058035720838222816693679667340187217029259914277573373151585665945590905740852979473937515502914045306194027538737736845360225438816969682365419789832311504545782085568751720120299931033192259500062690567444162609197648401187609625172234543003881844233054039109345379847650760044930412889837014885971818524701020956436723854436890819139098419495216163192004036945332560954105875249162300504063424355441884952111931763926950875934449793937165702279565923429488334343387807595354992700506089281722820674951783752536500274937562811683243830515200680748360750865175605253931133689940469887241213505341086213814721086050385792397512153621503679378153271931268715729955522545854277916738953969486015044850361353466494086807769366665685152490013795963512640394784750271410513526651474178528187626985920314540534588810182054913074375158826699187019088172946966942262261645632043587973246257755293088633009663738443771555179881813064645530892757027364949282458552858151683229805809548528395357527376535610252159561237487011599079817387153879413581232272075309231191476120115127543536145828086597466503103480300635589540782400025132761740380009381123515219586028050581356141849760896643469987145861571631641230420263006744554065141389677175271740607361087083497177734262020161828662958746990088125229416972720362469136374830965384773388843251962447478410577152603542918834382988306662277095216741129001725453279469901621244696993237135455899532295004968873522561159861195476791677330042995856165402828565349842441258516008541121744535209638059885115078678165720422629924721453395864732941552913468298313242567502744282865244538096937854422729244640378579318295681554196170251439578464990911993722519914609621912133216281558617248965620664278545999562653073173271567490769786242401310983559239249791431092560025846219250684218933891041621968066858809135816952465706729504986164928307358666474316234635891650303677129657546241520699914616437624073303782314329881664501591837611984315785737297235290054344233484567398005454615528701649413522426769130200332469882091728372256532347096719943193712575373579136922679072556703714274106639608714515528730911597064427891700289371588253737513416733510956555793883247177043529793142380082699527508573015167946441898284857529631662722149364293002766514612429155451416781996217246771771758566184509236129394748059439159473565103901171610255506095270885823516328719063831359948232265144720569397242314311570924099816469373540797866125848830690224790729418633836738717056920764297403481372493853962379966485653331551875485790941423608026508521463621881863884653145431912998026609948945328060082512665796082131280435738279792250477918486482531340474584821997888237184184904068946374348190497466959314360250477932957884780110372164137859199072808663789490491304545642203017292959899284697912865013131539443355399536346013819723764271280752649665542560455399279525849739182555863146674648462439619677825693228381524171183709196805002280714950309380458969788742582303990963938448898137009395120034008637037452590742756021900153608961551810828827655145663945426440366136222077911805743084305898371188942674049273016460903180513076093850583762161031955905414684661571750529326009196236827177077928640423653147691937905530812984644570333041663728067981419981808246652876893353919978287868552417126429156785298122669261454073689583361843668277962725130717054882187246568833375137015294650765600647030559619120265302980521304314472229193150670013066365255821012113742052184246247764742372900068038127325807069114140668344838251912092388312266940917409350091923633051341891892244669017257485573549916279060229113516835719297623440174449350619066778384068183630990097797618789666655048219009320676700620073528372657987912867435754371238668105048451031962713857343382525380075350878521104871807579017247822504432044991567300095682050915207024500000989713407086614110842008357783386274375253716429748929657927008960592696469201363899020167416738095846563662513359462003159216052631017004232844764539305583501948010705240923092059975208508816012149311918722363969633361321624293124262606264702449569068043266456911898184584114505513859544935446767813070632404924838308892543999924424428260828411328578159746105154725804055146530098589596993426591816853456067675915513077680052584683987976643368989776312970166504622552167467322313157584144592579640209962114649759687721632041859650788521622064875656962419734665577281724768073959459716568477037947999382573767274927764812862140623673937974816479108062981616846523082620369415079642435137239140244920980298610895974625481302421166502214991906745050871319444477271906422951177983892175180314956731901022438794668127707082640827931200772506415702844413363893441947740496857184828488483400347759735567624397021654351978435511858652681893442450454397458924189613452625053590768294782672547599743157389680453264862020300932262584355878423698912325124299778277150736924853046161788887942643273200203064641320326339836232182084339542106776279967608976034408540772889013665216413083088912566228451907303042267086002355139211859425642149692690479755160935476357450059446686773375168389578616727515277964839868360641354212326910008733796511080648403842178717571744153701023427856429172013052107638477465509373640584599860724992407283986303622758646872543364918147232012252775823844236252519090773749929079687651359993747453105359186576252130068971728198252141135688158201194964926080753060498747092129757835381933429118962743173018532942205570687044817322492387482326221106433617748863358260318938206786688288157914747410065348485397590116023620903607591921198123215498327256418794924701995087183289969091012560230335325643295542857696436870166226450825942912578917430839812596171438555501429004819537053456386449569959814548788874533308587807202812143324632616138224615477115157785162940385035241730526408364278893403151127179176995469981572295842788516169860774767112863916284119515449640286173234286554995902857369688366162722519196823555807296123476032422671639767099799664841078114340663728074120320601963706967382299462930429179183111148038492238090057830886240823022310390952308614140720369351707768217978301332774878976599897340347912512146146007443786378602850369887936695852656747345282818304251010926726771715681393669452442204946557546871342164037104024052404205750066897178986675380390457994624086877880142695020647608449578158981247278064877388894905027221664668011277942435954921688034415864141021705821321789702138347133816407547084257075372895421650133899671749309003879315424795574641680803573267257719301487085562480219902135329944547539911207417898525062812129931401938646618836041005944542340550252204711658732218664080074426042747619507893161049601579223102406207526087931885619033694781254694633006053274474680225435464411447090965608008210538244850409177625404530425973401853721867412008552039188267199341196518527096456741063859704276974553551687312037711385002027455961160890358749998323478885720971413412025741512271744578692577261162175839223183162956946544640800253715737282110226906302234644297735344849284770709545418715819984116658395968157027809374658776560073508056477147923410506985237500424287102043976545060301618465920647395318233758130103524722534632221335023347921718729945018239871171618153618957411311779221886762111626268335954671221374690863539997340658852479268408089143285769488532315530542867232793650001630337646719238806601802619014492403130444472106551132551509666695675836181216462867097029945994306403782811186205670495889565769550775963030892960809247783564780471701350143973046166465627346957312568267946700607747863720285089147731460779793629362229602062299186260374953201799004094438743098016023455931973908646217480722766841510680858536843911742914082538612367093440994641882799959026756740520867531341907438374655609040932712982646411714008174307929859801334106504325700117699284993806303301212092394100843612384232948680709894035321284179855560021091822715383738300353188477182227402707979602677199278318886280168806021317817549019343599236529268400505326498579052289392391339944138948829309252123227984361938717493260992630503817716125811938383523202239379032313807910855800266393474164264426670346303436848937285991035552724149887709332050846919788369831354423833438462430393024599159570811541569339361540960411858985816371548533633638093607254840255678132288750587810605260951361972145881207834309280709902904692250973512870385569881338521994120954298580674654062201366455466515346393085176030409630178501449044859106447128984060643325391738553996307994905620088299724656764235223325169204625410185629808019330358945629204579517947238861538802120234360869070118264242738328221778174546249158563966404087622208222783914198258185745724846412302073585864824604435077280918048886326543157208612806054639347751629393274333529096744845567943848522824143053485100918730469850954839748114304102710444484400482213697990212259928096252916471754231794370330811633453710686885523808846595569600727787992317019881606742067207136163296349771492902845785878683322193056490220080967493148241563527104829946745503362289513777033100234553753263255479974327052532637333073301083297505598021215509480207234748141098387037472811347810867688217200356295172259238071248747599774590957491471858344459983055876591889605415432392020610217619006561901977430819745594094254573413268625688141591090890460448857556616661370043557396950722794187285561974340386464341158249733715083840924118083605470690811614359450729468000542773607131102127403002270131214839877712110637118649356691584208329821689849872651535209944072726423700601303309212315192759154124508974317223740975649520917423058906988627104801860869022888169431587598606606589808279141033486255801104169533670186323976942747109103030383680806619889973667153532408425630948284250719528822963692073578335805371121686456125201562882692935461882363266300921038219162397083016289462696921400235405139321210697755907743886687020579044482819013076940300088075342660199606724546968725669542341620296020295173121001199361930660697246947766244011543062614671383089159777263910387983793817123630048650044494572473129129451639494628551029037225685498840493790117876101274844907892622658881760519616769350718315090125408191410932066069684660036865875241935465244330578085580310639208431820860592943391828187125790219266159764521935381086617596836808755351196095122008745956563826121877160921699981522368998110742632642503586841885064599708915020825221070566177160114051079319936214038426001404963973998887480046256027150478797863926133045815810021337823272674453933359734455258214276419477828803403809335792878075519947984037020048450069178723134997204612775693471428573576974770366378832982223072858652164019001669160065332575137625332073643748132913867510125065422102729099703565125876577002821546256721785827721281321258240331554466029406827060487128454183981469676953693118074531148810208838953060838895288234071812777479007828269470336810896068453391469238460992434246765107273465338578793134046792780577519139668231942105617229078269209384155197749136102780895554709305592585510884232359241376313938184309637067598100393378646812927808280555520949632502551685646697949315813695073263150659476581037868113598903290500368519327864145425926262198232093108699312626856002011564128179722862947701343431914177830721307682553632244939538616947743667632276821853247411499698872678889225765656987781545159662757251237726794936124145029037922372067861795410828979955819791863121171575744354984383453203081917695075724108133854861598967494078916122231088464211924462967694183890570463111215531711389856972203236816663232308242246703593380168238108434768669739135352494666291311323165745070691513627017659912495636410408131163055909468221317837068985343165666150885697760251139208099870714325202200756777993258038373731252296147785468833421758430491425334659135785252568706226442759880626064295054695623328891375874127602823800771306079992239284637419555197611992705789996590502756902550116491817388165478608435198558520582199372597457229760778008759866482424668528859292028122220067529215805505305501838774084946618786469155374190566394985843400153658922624392029225394839622476823943730947561244960944431242690286057694042946290932734732003112351473322054093317478942564588121908812950406126432787100652506740747874942281028050255729696939243291623352700632516117193242607987116100726201827101887776971904730357505376533804225427979560752515304358695979410980536948737604807116026962694812008724076065430284955375099373406442027288128957927364986927044066792733476504630055252891030612536558911635045387883505754382868037482107862213340270220745542479759819163556101401423012864133000516364089720525280354701414848145750643266416369955799315463050913024483034400515339128469266304103797407821122221484985535591702606438607724742629940708287429237550221369025496216212442255545309713398129575871741453949261892341190102168392112045120913804625414774939291992523134805227060501207668906736978865127998671908413291829670249405563544747814960582593736481561265245032199782745328751568430331762360433909354554262317751807465567601734698690518397803872980473546456496365461116123625508332152120479104160855626869019819099999750926471825752629712068000329377284899722562585720600105163625379824378093032012278502019808836405498186117448983651159454541120555315873846423252806000175272031047315468318513425083614706946162673890960743967113942938222347936412770073972334949178023809747175604233202801248422020337501494685714373359442095560494319046470462239669696328922652012106411291993113132140815003054542683776600573185837858210418803490026521494660419224598176147282769245535285176262250522696182250078556587708993385672451480671811711321566498823511091915598746767088583026375718320197920438916324532071006461496698805432013577608115061917407295276901038687029860297857318555340286569250889359478718570513459891660612043517949068922040527564781768413028934697437503017047069133434287294899732617757657325376169642530126023159279665650920173911128954149650984763540932710115186495629846680799990968748944139280302676130542355490858914283272739970844026220595768150601157995142563155171755297685944466485165848137504043877952909977901470810565617849189174248675806978402604873778790477269455454185926147751745253533593000785999587362685826310169684533370986645207509150021273435412336140037526314136703450035232231030772363977914673418017340743717684305484396198374520085360662474486512639589407484043912502425262964992025871205587782633395485389471841393893155670229035518218692793213280615158443927599141409235362759014128048296569164898739197753873536894461367207657996421532918417312614440917216854484076945759448828634626406866679091320099936707271248827550275191922695196784573648239001225067616586841627172278020369184514308946182179833806727908228603302018158384738509249865233079613420550365418349140312684579154370153404246956141728266129576194197452643899545637690992260123709618212669658014142974961499536756384388331210209688408870510331156599072142910402623462744927522851364858714339830143143038748595411803013579085066078063214723754682532131264581104002697385355559674212989753693843161664126387399484635197530390609769945911272834645136613787194168279522842210656770113317448646218383036119716873796429547421480692455703485476168345354981103319742590552953964592770510502498342581160209356963700090154316865940122260865803574332656664267731938523851278960116874853577420793987806312311293917822516085975397632043191900775370670598245928525784715603186632173248191142678176401155179104260480021092425215065766770781149116326728524854890908781571130233051126104546613688039814492022839671202323098466453497045836252105700217469659314272234346554637758515595005385878300478729466986701556494990788122387181620585244797188646324240969441734790432606634721353460291911836243774196628766201731951928497649276442911879129554389944690875791021994965358857883957739734418837492636484051840563910659966133753658050112855351519383257078726008737723914915653382482720647032242476865227400226740216016332757967568208109815409938990552820297525304681965254420999514576603401322593794787838765003103665770540581848901655235107061402541949800062828325715169592992175792121727431344296404429805739031957415340356881039505378508143013517146166438417086184749776866618102837666271993145397698554001163510005790832880208478531828501845694570968974051624062192120985404130669828856234601504415650422184422811847025583409452566012575798239494008593615237729808602304353769911729822458039734165215810726914108938413290315627563431805573932929779826461790484736854673513185273524488193564588074590852179130552549866785488571747259072582925299042659143146653359412837106628704828672606616262013617629883922405982484498652175325933275942899724578672971345919219122563475388063612430463908904580425456256974865773252080105141166769157819149515899023399482275199991351069522978751925685969839954017789965047058812932959814961794487261298517548152238018065447994727867738110695342095217407786640481628792141615222660194971256405730390986166266867148265853801209402577669786757967653397937264458322722620678652605618240240092822219698830903883688195758459321912475934896207454503067761127273664808120602578954340128448836496658360513494439225984138712489244263718343312635583013385896209945285800721885500302508416810216094491652284540256654343452356962078772140132824285612755377385742004059543743512527860243229400029704424050897087129419089403806996130222227305750134237737278846435331967868114597279234761764995615878999227582890394796180738533695179485472324593005891104018097666281238433053313688773397395626010793073487965284161006465448164939333194276943710086950952758674276653572452086076288961900178779436853731131300925533623935561447015740277060122351628009765382131115370996410528526388375113507315192082178771121264927997222490726169037515811281368938136094689167519937157273626135010728101373969957806625911260772495957567104517081138075775269698304417470420633819213878500492617591501071415460597830431744478053690595672159849526096305363063884839408424012202257666690055754379474595551059851193287151486412217946984558631620378560028304843133305134347270541361016320740189917271107827953402650546122331515052651341985596981562267913351596107060960488149990625819510109533122712094783750530870388815459805739258559276713449506128037607126777473243784009235587389550403424733752310804754906346418290560111138577507273365700066901538672613229345958397696180702067758197674481549235888782561364325762619019231541578710419432605621399734744177666716627826303718716630892551371246461208037323269809064037321965985603187940988901609865011382069901930705063040134548209539607937518828867046809166221457241244771317593680357364316185869066754850614912100496860327221906265064532536840505509724773838747304039338835814626755724915858674415072905420694811683674951035290987392993213115124291738612977900361657828767478998846752586632579724377147650152018686719990379257555766688177192507517065017603357241039819032432536925411874270836905466343252498097488699389994042216536848188923862281696998707535423866203470655744193991850583617936257899446033754694878552226608793752557730936323310800875726578224838490935377969062015164456635118698649581867985712409911152023770627830506057980599819734994884770122710589269950742988311046785928995755653101990318249149872631483517214372467356854837598843667469509594138195306386443519998024579213526832565243859941304332859835297829475314453267033331927319313756659018780955627559090273786195360169778287359374415971624159645520061340628374041622739676393873693021368558714465333553570301259807734632434690028674856136986739163613888218701048315871151021064320533977020673432136145353808649381243593654424357326018191764756620631610805238356885050554863213852968616761789036532682847841138334518124480563043451090023350912783620393411832277307779356739895859505371554621200993573058522742802346154811682634357158861005203577574511060979412172994503981537625056131904853404487800285891813279189855127625143547410844995058085847506502636694912275990935215770790774690710664727271462092910653054148885555206684233254811962186977641941251015322053122779902976911414774977150473285775303029869717218627036565684830481509319144904019864249223586536495727598483896795685112203234358686062921054251597581468738816694681823336903783652548349493091128336974424992608847461680285442548729604797706925455258455928819854968222445618586106261028527755013612095268737886047707437705371605022568326395140091436997142840664614286162793482781350794663964794297640759418843998088175192349470788395505114946061250823798453745408783554185113316493334113897209015491351881381936843666101806520591030657502251438633569366781075758365788684253106900198347864345052052616328851960114326592157543133278597623521106245826309615308319032000186659272700272044350633147957530916643311899021962736013637716733027962235334742336780615925641419210280982178764465022059278164956119939541218986387238978062406777554174937380590121152613285678361892407770147012268779525418018133261897913687342327213573015292677531482215278918186546431992971244987755822125157808309774354381664692643135021785669609524964209264347104036716254317989072199643406085563074228207339193231771272216579237835868449778471219153586993605429140240253294758557575143103707532968073832041001763962936266732148008169548160473024674817103575189110255365576987092058103217363202230714491973922281011256553877631126343469815080075599671603174092258473391152073326464879561312757939613521718865284960570269866819268472440555020783688854859595647743383180584024623689456872178095497559177020910671569667064307650699838993142321571156339720952102928696150193024962520780790261240915355088848387334337181975948027876257114675205534085721279913029505137657679265201063631547311672377900631214069381210453132225111274252577183179652835160820680314325194181502667033633314208031925263169177089322755695334786949082316270076908874966346921932040674623163630231178965132798331060927009617349746442767458327949443982197353362655235711867450446904557338748052029089975139528555381165233161412345648537683316163511071028453458556743519487663432784658551113253599687875384829424508798759510487282777713285369921575118226453971764467499233425010557663537941302571280125197349251785291612585656672862424944914474743895706630828191687361696639732324894430948997632097699000679634102521955717947256867292649562319791875803719291739828931042014410629196188167606784419745711710963391076179543083333578011976522903864330808949228584424336293319112363619167462845907862763800562788038207623173151854260666813849534737054204099416256988584841333475274815218891786012237681002559817977978764937360313683691049938936338681467253328786163514592614174000115244135129155007928274942781451431131399005907617888687696008863720650883361505723224925500220123648183641903589589438177267116461939261587674414229388818732612347047561486644641143759479998332830899485458303618014362287006930236536155588812473531918505165492019603266515813425889956779568639147828825745927400230703179164639791995058432561730102936808106778665335631831051681186193027289718496605615322992078451132257476042695031068998354244741508758983294699008781993312983307027941467446566648423892568602147398368728491363909639707751104488260940115824097484036778933583664036908597476481206534699998259861081379371371743444529014020224247482588725704059744378753325570273808690232890850564682255998804885815373061471425267617072510702413150313376321329838572925223481383530599658201646208690106869567144490620666990991785967517560137552813603803626210765303736005482235974179180471275232290062149739625338246585319582902774757896728210541416264289983652597014102689033363579368458145045018364998477893522535543819032676014790980023647684092954755081151583320195444316229923990804797136943700452240852949162492358136194532330602329903380129588095225070929484047803160880004753163529911342647561917656645326503485162175588906578554309954264956226039028474552915512621018445204045136447064690053163845038724369973718608705337035451016197153469293384985435329817196261616485658125422181745890574447215655591878339949322949350395338586458003213353679959253281476384945311188373111679880986954231413874104895608944379117297904221479182138802019164604386003791394609950392576360782698788956892558506150751894495594388300198095545656859316241803748679201155750968020852087759516655368880559542919058722582011841282027502091991418682733677944082429673625727376186051058728008238563938690328711546057294634782050849555639615871304763427715766603304172302178621277704560351348468138242080925613461808308338056431303900810895218727083381900473696358342656094694832271198443706914183320373460055094960725746886373898973922793948454995245003131979548439090479657106273488130215191932203254327380541695377760834966645652886561510514139039344754642197927574937782332115578299540065288798886524942136488235976214481137198436204741596968826328101376358310844498324450907864953856063213143868176077372432589162283049828232492838575155363766529034511534942467788397123636814900256934746321922423002798246308503903303018219230578877146718630345906528497617228927128889803355837020710391866118505980272332045050627125123233349052623295279835475568594004902188090118589982189491439452505613919983754172573460450266873309374127029505174298325421770895124398507180410863461591836842175284227482887754082850943700263056860508986651245292865057836390977722239288091879393465460017560371486314908143695196444508245026327206324666644245851122463440844435911140156943203653916429299487082893233719438062010115868929807315259813014352006505841569994855254662794187917082062619214496129583166535412852646546120286195842204784991009836083650065914009521552895682589432865341698196650105239310056443758443985542562784080022864281364386071339256721347053748836480376510623645747484461257806130227230267364001219134824581723305612260440665143646946390281610120067977839832355184703936208994937981758679912052678912091023955552836310196744189085315264281564702393084695188086913870687655406818255684136729785652490159002719993881283074797853826791441576968815635478969624947076333087517775087969130730058686896214014526280814960010139647489736327581884242675692753738384988845850452175458597405614427585792478931307970536900249228813887216832355437612397929221936416606016644073783297783879751816558010488914902865647253118074936128074968299724423243454514629432694546252282851772991474505233723757635379775187954767875789141314129684082810845136818549773058054740685006211681459332738441995442803270593378149573062394046519810463824078036197779540729608695168416088963464638805072483546711248910657271283968725567615230121991476515246735428332958971533340437011752656802638013960686384625610485745976721108227882708553828804530700447188294730585694306738599614711858044296347600941981156335130481430758831248898367741273413018936054367074956020326453185908876269248779249502409110841343930144132725073654662974043289971399112062843596245851798919552695604009863749909640515477170146407790179717516186768120023854768370611363634471592229812139031305704364773192760034384158130954606756957802104207299646890558674406589325553763600840403525144643503656288687416869342024455044338317947226013862143761342266009336598052796958146829140837541294398422786485064897141430639348346294789199836167232432315220896978152804436006587885850697700988368100035865875299930791471874230647465809438325367763063653742509217861676256259648571692411589892174449938669704070360412761751623339525924991770572411190789834840449905069878505032962814307202954009856407642368233927357101373263801016898799471798372774490411521136871148782095523142765852315689795914462250360047813654879287428904889491022099241664026157925019873863038691741944660223766918582489398615314799639947889488250107426704626655823230451634165070300269350016845920501937503527401401055648059545354839996574059355014635501660196150634025876363464539651528462336804785304930997323236798944221880519602057201160148087651061045295509227804711584354229988329774628713356200190709301383435187405135671004415472982769271125569604347501059776086065378754596168777001860170414398593942285721860587799904382387096045288457487722503522707096000637357235502459465995537343169740333124113052806985868043450885477228493722814124247347861283213196409685607607345237059286698198661317653940425402904468476344362354318776964645314114311060419323691128943248750269663557431150563655401191733513041040267107128776124140107494536704792037342680831263771631735285103189005494047239282953806924435983847283985674120722700905841325924085241367367050139323030146265255349234805650635218115740492755050692461054825932914405221619607959655821311898675984581145336496787059916029551911566269572816759058014477550362129731968456030459529575147985542580857768061131837071080812233358028759583412227176770100700837577672400602856637436843551784594926715138626835291241952865024591592929171331444730765068008443413309720408199282215311550205662597408124714370564225973303867334458363860571796520834718060106756775101651161760319662138826795115292170074846751392855267271871956250889910072176010807148495270950691719087949448740629353287578743135150948314441825678161330157691205427940505007775936930989019214967120376510809873591590334431660316805425534331511485076038821338695814871336706692225897611163738346663936358269422673759871030036364298973258930951311211120851388753380884186555153540693369261824518973911757267757459808003893181109448048678107171685077365327359301901143107803650686577149970071045125238458960250424154656281466341763676834182678207864576624886427036408270111446993790997471678014330932385258716821187222826664251273063415995847507511565990110979882796253400747500241506874954890710327500757201496096640926925776823071381771442597059997129270985577478895673612460910958281697596097312964677004354035259866548508925379424110752068784110105820994273362848079151839007605121870271482896582323399656360373932809130803121195776616556233932858409922144061574263894890083611267032151941859409892203850396462737123625366848243173220109477363655122776615451999762126576761360906185124422263467458091268220727374651675607986290838108281235203768918124991050437542436676732918968932531132872195120060715480752192883050607816366331724371853121808792636230771699837828836375488440881723305881735478683263630614018680828278096306997308335497289042603605959152667217325911904268718061517320196282518496612652835235254083640050806351606566444299881374420414636804245342807063386820535531423856851186353147099175271861351660516831171316530047582275372473643090711518942514531380743731290512322967176040062617549832271786671027644891139997852062836301148092389267626078983571635977915671025478463965992554935106287617972088670043402949763183556473280826826921132793033130576718801842474785159416595997626774342571748002708978734669152343610691676200660099213535429559548202829672681320375966249293209845730484054042033128520434754565380109094715175840391286290850668547435432536441762346734285316284271605699684150975378755340010194486345600749687324747479836292424923267502617112926004020162044519661356497681368036351793476368852631035244771025838951834578021716837971698450619939958334951284700206793178425619152864768662227692554899685796657777348843313625020251988808140432992581866829058028616508066693116808645892015301165347412196482348132376700488805997338393291766410935294176867774896909079425992422430492853995399403300557258597010597748565866145298686611415097478838582859620311264192016496055133109859770378865505433880258188702870785882198208625881516209239882563504563109578487526944256686953734311172745386283078235735175988544649616279238952664038054028099811289052022830153179248793349087434745294269003963134105834136168184743077210368824981884287077465936199976774427209709626229812670440834370909702273439721018119823659700960151326637033588484591915455057922607887273970952276810464485720826243300511214565077480284656412638027331123167174627362309359779323146928119089473072684150916291867673817172791118972676942183698117558394235100319084738095039123026937951391535490310060914510179547759466014180871969426815037559900060589378403202963828170256924628196614968760835282962707865945991847883628340039551405748216610340872718882184798983505488829352990003264620058411347773897766971550464422569967540840245029432134955783133839050779431708936929652970564310196298208142037864205793859796540910194250738458650088274514292967567472334410008065026273621423355153450644978335948015196701672066869706372202882527012680660048968300079280212132698560018912252925097254153924533398651891299286983482733581482639490097771856858962841360865362641759098522600477317205559391482766821552092216066884217736122910000883575306023191837919528316224110389512254872027434783471347801263708619443875370144413740069019822722367773104435162612972381890152249666193500832152501107056196714154355954021939570941309687495724684533703078768690574796586591722767948723609229470863682961819802249266307595261097145824209439978142259251163838295043739918934770042327652532736225032395154461855301452492263722814465704685251993071662805315248781111964487061382799995472466394332841911847134490980151589671761637101187072786470090640507804594331022340132636073652525892364646704129275252487331999385238017185096265491145061634447583849703959191910121497858896441322327401892372443245738679447979996206286996390135514872164999842674851847752040512391229111171987054533771826248025879784568589469585878772741631114874885781468173818451527231144610695922388834977629704720493468505695272540571992563755266290855716957849879700122929095003618671166853042794556900648699158593827299687664632039414720962903833896972680180632798513528966030443975186648142567492116762208430578885841081844940708251674367252792652470585634163585985846763583620199197699796703428528800000302536090553804999919874922869668818658912332380639178327018389082524333227612172614043602816637243501365889697583149707140633153662575758590199591920195835392163679089674421479861278032482938602659497097381168205519448795795543005568022115501349852278769836476981853736604428745871109454605885502645414755956697235337889319241121135259242093201423950377723311255666631626224257267758128974751611597430913978665362468886155337813390621155016501194721229124085872676012172697670501276721416648184611977289883179598118472340034708839519899412160454688240907306491582204461250344573868078821870677627968520333991267140827698206757421172474181247953667592282006928987738845252804568686255868020771599946920342847409629871640531935224918493383650995714584955154086508544142253975302994439019905540297874988623654293511151358975803127758573438367881559622278627185985760435936660002370591520258911665276300365382682925865608618333630043358774086725690680074726081347122459995384324521187766604275959470809067496208490551629612993244661840189160921246744336628792887140718119109245102635976929614438650715893234679047729002788221172963642295777452652453360285830179676213672209931954530930223030122951046212327775242440777248539900757057486616839535324155350951448668480801592200407365453713569445457592391928667869765768805040568798761852572912676256021685935119486291293224327415060204319236791858364029041125713074001883980913045842659350698708655689934407476860372803951505712575518637691669121140908489890807523669139710485307671528496849600182433620588703738295588321517633401756365846312126120054723183891344802945238331563316993883666763506307916010757337837361033843757128381121817846361703555026579179192352921180296229126268977415726049954822079764171596513976228602831098975360759978474394000009142139362177840557885872263058424041656163688119040535869360726289911659431333936972356831257870884768484638713591334686813896160370829448231416099488471050039061741193545552034103174830354296258407903147369505654146268679904962859538605585950543780430381060073438410428886590956904076748286532543709370293999349238255767624730543231593964543134905028976972709938890110295497061170071193053155408095907595788839418036043260919583215483465066283816504008164078578369461115368111832285520763403361503924961298980874197941674171769596556215129359286707521846191890473887931211799687149152049604244020505584625086427470944692654592600559965767224627750916539379202804616808559382674126775560567425363278926394515802604534132023448647436603048070881658023686202539463615921868151505740535883753501806770298634571356066944422535826129235050769259083431649422249870616864772044685136632610620147325396543094026700075548048541842153297051822249192700247287792039533130646572835903669150409684902536275875520446261214805748385051833702856999608487129545073645200852693894996530656303781371424600732034659489835303215365612387370249501354835962337684463028065323056766568726709431680963439171762510050410195514115245487327128706033476065933932064447728322188146052141619359835788917281972288695827748349813606208946550994929817054121935054557179352111931037529678433680508873561804062275501634539212399020446349483544685760552710339562613349361277248825297347799712542670882940925848156459952352786275276617646468151478746343843972768821317645828900902372461662855607076648203501949304456966692096161966167788082953421306606613079403527321663295887477197555136034469958609033679247496321513458656335857396471711786399522116929688190265671038365813930189318512602672792623453215902532736672116444809614202645416951225649134755277932282400572960480070659469881525345794436018827067358013415846861286189407260875890276849367355392790741882936574727737831358115960503938098349501337671995291746210577826358558844861310903429093312681013788129171317079205550861407360473309969379237915893211467526040053871081470244590202313250062281781070169018292192473071529918921303624313079443549096151666652212312040634524859935693534204333670479093845857018171910085858428094643709194401696861224932713997444526778706099008801758518589064278874954486037008475736457670026221333410249583383664677128152285557133169714687214612539482994283008854217183609783594497139218989183346680460885050277086288259509396546255352317207837587108384425229231664213859478817271387626769631008668645264412670324276281596201908977144756044216607065195287514578923014756151278080984841814420088781285319109676637472377380684413612913149009596221449449965993897229690006485294649177768112243121231658825035541389188898243511453003876519980792262158854758208027706275173067367604694395874627590932761291945421741964645874511390034319441143033935908091729366315693826871983730391772309550705995310268146890977858314205538066163296394985221162302091949695585776798878672922651224631250877510492730292022020993729186782030250246560230353706336759351212178773562717769524756458970567817684064407568492220731703993182387517074746855604262048048441377239737718117984484046981508701570659929900453470703842187542266441932082769768509356904069120053141677992505418891659973939372418991607519742040483789514454850477249152304614516366874441649147764570751203508007883523244755216759843072368308063683914159474231167535948798001559731925918597131745356695219859371480422168105592786029243009019831871855124464800167477840536850912772374698464774675238038095289275476489742818110259582191087294010872593355486485528639580435910108439926781425890179209776505274927081118593682963527625426575795211725723961671348855128891275125919224572226912638747916498079667980219766826680911793581021602762333165558275313330597427005729093858145534677131077255792569931089863354424742561799238416709539221447647916602851637032045379993020081517521585704499039056389061351815196680940035796425505078730404743338131615923833379736872189698805185318030126213695792688641620356227201184985910140414013681090571498648261437646436032357065286271476949583138908521127720716732655166232796557507433725781958579616046825762396032611743998938171213169832717391701644143342752067779452519662247274899950170530610768918631137242235431251724406733938934265472335561062384508599507449539517808588471763792232917732736383411417683940444234141451553781128136057463496867839342382956064304278636361573561502290218459742874261253602120829631344192518128039402977929196080334120244886024460203925614633365210674746810320508411003933681466281723989762355069182966112342689052081650893949155620103116122168296679415976219120552664455483018217239665246342030425378719017995975197542609448071049407228138593875125973229535653845837055171465581301266182539969101937770416673600145190581035541570261620504616042459503622581779532804461640242373264059761740033868831695701186107495531348063350612141023878449375510068019145703125108483876394548089124430456841360531063457837558181995666035850000190334979926396132691011142167529318224504286656494712544402825783931618927147832446154252394503139951597959652596015271828326062184972305578381073587017100070853040801612919448935074696029144105385410307624702819817324183935937283390747342473012447306357884644262382331414350304156270725428855323825315770808828218294377316795311924402191960014631689897160911175931134831001114658424405698815825976980281081515238578285132277801502763038093298052312674874405925599993584841422784134126927360175697943653751029933618628389243264281106433493506442938348911417333906490928978994668264542139789122837772070797654648080894275609094579890642974514735496401897732774235145894878380202419857745243988182502432486163399580775541180026708896343873894113745100593382948155595584234736616112484943805888993619672354165997933193464046257303370384347349930273161569764505927601453624735881266982325462862899542097066500786350695295071601753187480586872117849582316587100105885418002130963873280911453581947863535805835058790826696319388337811953349695224964536338746615134492769310425440728182159911335013960965826693511163370226260852618120834930930060124115159142081542147727870996864669639192729673284985047335971605335271267806818178712141561125610713714800323179402869022492471065653692755580120073719685637826408055511853959743719440250891860470439072041575233846376883076325767929617391888964191443961490180871144299181272474581443713511351817296599533973339126323583751189884822433628135768337336081261294123274038505393285551777053991565472636949135778742941988059470360142885677091252433820089479348684119250810188779897637404978369689533105549423056330285898200657714402644767105895153236091540205959745609436201771097489866730103515352669869857806836656325000025858807885626576911681771057467720453985937401136867862169345828295579138911699228403567644239107383349960585041704013242421275040606880029020206321988968607360257674787810764008977797228795422064646370454496119176395106516780319155120177883750621016704842543369977300010675223870119894657929792328596664487701125159708655097910339834890114437124364420785699055968084679946668535789560040519625717303175831686310537397230413251050901608787083420167145088788764532940508035883183459185185957172781951508615511279776761609070416987304503102827170840156356043760179606771217242967160157051396498950027640877536483227074253082873580577669236619822772704245754455237000220256728211149723906383967787155938317613203761867930724643436865971829716182966522364378402435792915870169385408138032118118744427562534961767387811871198710728890130297129353556710506723376173094298143601205761129736093386036669646953638111221963393728174596673504314721200486325054604361616042500381985720261553775863065432091728766180764440839427380894598870907498324308647011841901267314254558807746808859891240047569986648486470628822978134073095435517255417065893482734655984434719905747286197455086836470021724184864340769243722083130241214233715223553325380021688279274004804595099143281366002702443700169309724504424120609319405297860158224779512646538641683398815702357513487637479467436390523822654914595973952440549026423665319407258185439560929036772663821476193053675249695260940125015005493987422276390785934340032358516142044125469817599942049249428469146572673563781317504598652141831454921631822735800737877234962349499759253997474064257264892578303973517150818708132636666420717959819247273759956675098711520470113692668777993744050870798959608076200123737794203063838147786998608618391024196021595045772156976376605392726825988281285230843441757265365351711959641402018046436575823191232471593037181398105935830293915656717298894923907216808489938032537296255663941690393161605229185658734506094470073151201003428115211321721400194684354394124751810374629398881083688488877182085295570354005465056288181328625300123557738592647804733867324581144824878722467718474301095780776780247589971837071401796767708676882537015786487793410126678549220253532211126985887186360090902694610733425895948439866967625495478985475058275369376501799414622452502765970746252206964795314151562812514913045244404021282637238613298049573697927094026602025280734509132250001155304582058882951812348119871502890466238184075992300730255511390521721565887812648388206041252340385255687596412348550418268411313703958350524299197139293546521126179372122106711888221254135254155103383987597215456871872667609695808753735969741621204467234001717896261973237553763596620698309729154432170998754286492953255662463890554197953898090240006832630889526042103455519440558182915513070255696015228141455564689806192411504823875513495471799718192214272053113188954700077278581409359318471480397648833784219175237111815174022081765665998526740201539647859601038592030261454746207156780889366278011762598048955384057422468097892329318905242697434584636902833730844105335882165627236953292634776937825621251599499818933142704937905850055385787199392128503476881960104433029504667134108519806371443930288833717089858891387278571573186545593703590580636977520069045753862769423421900596620300205196553779735191054489229768055778765912773297258070686411754723859106561686114063899007705728373755744964047019562928134004159940634604342352207699998236824223445812731929066033128702992924425217593450577370246439875445963135536587291713601182288023792973806003164551823237954760369860554838807782071578198253317762616948167368967143991161673981081584902361642411679079561283859952460072941040906363105905642938086199729086376373372557790866919415250821549004651322654383519243991693291367774679959105116288187791487905294650205179861063098544025189832397676351749334003949341356305512603359662512818724564261249353646610356127880537860068054957809294182003356899957585904023942885354037841456832689169664798940581268380525908629447760934033776114891301683262826241011779229211015949418266676915990000326325986117257718178299593863818279206456655092294534960912113881689165780843453297028735804643733398833130593827238013751580838334245286790851204038827947042958937932877987218814594901764567781190090826520586375679085762074632332535759775993576437475649938053509579478980960607755258057767624237877202568538028745539029121373376599887995819431365292477116406059324337163005110726468349085535305265382359915657939774386141078798699620835067124645252044552975876791698912852448040137237331262809183852619119605659132177376878700694680266668286548889294124439683692626068993570039422230166496637951460461655898911292918367255095665500828061259351275089770854130477481869870769055434023654879025794470062664875131342164462254662876750593465095969543669305076806428787210240396971210681718331169287990958757261586256176023317690096218705473333138238088690440554175478216955476828883042616292112647178550568204691522605794010100277617380163500871974490312555078838805426701585843250791428840735108500701099662851831707497303928522440191859464282549360653176452305839794896742817803742020875624907719077136972241300000650499055116157281692941621150292985337139146676162330153390288066630159183518677153102769505033171562288415108264284605250177342805964351308036416926491392901711656726199790065016415897695995097193803822956352377134661952211241616196554957806749293649568865107974542910027255919964523775026068782928715188974828968887108521831943486051648177974412920287217981444431616028924708403761245940818604689552422415473372913574998495049251816792898265814487701206936410760065147570186110483161421014253121507437235182879805652897089739058912987955064629472900500755701563582228893061240838396762766599273490925827385071611129817301219572505426249750164125576685008521922175053664725768633049764791343271567394510173566273530806603052759521960414093563423360267972213091589313262888154605927584669861986834974525444951817902346744271900108559071893588635263344846236128664258835642292921595674498809589982542439991313704436655154261618344936545529700806563024387187707952526627814692217273519196293822379175164897998500756345250826569509710664694183207454335553081136167365821559068068559473365791876681626839058416806155958957373261893884351207518667703078178719063472295234690456066511481590061508761914146241114603653106148275385863976553411368222974732378669585566488910953270690868556929057799175187712398298132140973072347088083732834284001873792447046490609062699541515735442101612735441181088020149044454766950712227237456053654448742862914939452664636315660297567715142910887487683324505356079104471075693934239539217968478803037051321139866500946329156306009816544053847994479380106084200647749908261450264037612614478703524755742278755753710330889081290878911428870255629695856178089784644265710464591884219269534093281050218301700771570070179791231654313870748700594728104934915433288169251810187482258459622672866416873727673785275929802950377852053272151984013942893995100457599465162350888627630156753701942093786991788536307708405125975605127483846581012728656754101768879049133464899219120373012749372334412943800102252799799515283602157478162599637272055770506300360897199454286424475075478443649046686548943882346250282445028651999776495864550278430169626779612402853600160725602356754422107548546581403369819570676547926832636670572220794921021398019515021242980465965987031777072328551794822630935281738001115669597726627814342790209923136310752712791520689138488624602876529547997326016793137626849548554976403038284720014987601160124778765611347380830909948769208966282789080741251253294969932017120417116468113919979600238626643910798711292832365146514429890929295288755338518017548507484343982639785903130372707010764624405337418593036125410564461421444045111906816939634892199003954797881934660290391328722896045422053920494873590724372465615961260297287864922359453342726032014501355649903829976754090295938194198138868473816795663777280963704450614167012407655361224259418434015208697299380075633133601862243183098622542222574846860963962876912209402856006944040793936547161861249779009225049413839481311501640356301740281748823751737868995450827732541296000865390318872457672089523803129420840425416540740178577250678055245674381065001545533505488015558583181436128201953280056324906992616681099254323911243651421097147651814190432916670129678595039627195688905366682574752726933246344332632640685218605653532843566981320669159793258818022615717863704852208626710999889688910436106004078561573020153341746577020358244439560198551088003892969677909472413671433692891148674082209411560650259743625848741918896637483665082439129878249315275186150004874517978345808099191707872677827280746084445499509728875851797045525896783990128232041852078241828626295001464011348653459026180644623959165267892563810065613297127632996457792115178964921466168402898727192160286445896098457925161514807165182464019593339685820921128527368056568743099770593594847461936576424935615655555258292469642542062082247540414657995034061651903747466201214872335934198813651627597838633548999064280408212931915661472730751976587128388299430451456741629695913773397022838840102052697847585832201073441217691411222095651469881207699929696751778277178006114773982242544283964219894452723693491843380267261662418384966008147203829949024988821017093600020110475392272468387049626040704262258478557486636565866091398461604631092511107796748660516148579463389011059688294200403688969100009764587927502385056450098947559491024516862676597602083579283068243006917043941250850182528274765582977200938663225567987109236343649314144182578766884806966532786722329476606272760600678637600133527457153668837016795688531060047444969501284302194541117906289149985330431066870744025947558319396221364918357401334978080251678394796002970103939050848499965609007147173523523861231412974348260930218390791842704067943128510919160671702644081089883978374998963567139699510736554592452575820751357243145390291248109478511057213044139362432240324717460111898236615860030393338873637054120008978873475499210206044630739065766945026096245326594490325808446306819326677817149830904590499915499554477934417994328641600075345386816810460815626117357167590220998237025730869530700491504589577383224542628982882799867281336392501100821154248025921262149474590413633561686294400948168946030887800714996983521974387493645156567950453074811334754755804438091729641419870154437205581582762464699980157701578104261412933144583221101317610592665648974390058242449547720750162499479964673803415988914283182455138201143037329310798740923933257775822530308858302059317838991524374405003542368730664004343732240888149556013893228535777462850904236429595469844623361532899968492419156915044258791124625803893672175117435309345430167762286671600127055169674614354981551131863831375719566336149310661176081739289979206555725157302942455390301007455076690460177777705166244304967762210159263442018712209332718997382855964215020468178051509846161999719847614210998121126593174063192747106031639205983847583940888450507135805948934923976415114776461779891223388259506743730405237386696131018341644072303334311065150054403222274371171526612154092758583445209437133254674110656737971051878208521594819425304600750006625065486087218023623627348126891379445679811923314040121416161626984906796030654832941188900151265799878880557058928050344814690584941558237117769400673989357503482091443722952384295658760897318495432283970662414117227122060889460738867475895851773615325884997094223141144893046565738651084781121656143563836948173977616805035621509732144357101209363487748927414791405150139343171317105356325081773536974582023029912512642878463206142817962988914929572080768255897121755714372682515082984929570138666731202999979315518569704809230192148116834033376115756410939615692291327125455113657804364003124486825511703409862435198896474321643676210453674585123460037373275471083933347236279855223450948095920417766112705586973239403928712575121837031953232403496746455998174054986319008030995377781492344935090107624014489360645646858184290358051362083322273768581072429701319938245290535129355940831742421438100113005660103976122526493124973491824727963451430455269856809781472660405730944684952912911760758304686278115853252493141207387783478753689721850135578219355357031489376217781665256668760814665260353264818066402525135078312968819086872823313073682502119346866358353099503870134546931833176718021376465275764902548619583418184279025043215154159822801517732952737982773659645544372932644330522600959395411052929874176527495727441375367718694363660892911304211695778898166070827925141161202360134469376388159147743295733328304679011984326649315287414859707811857734059041143079134688601324164846411795985943944284382306193378516197630699582862287352933689211923905919190022683726115774226329009836110104731508587623581576453235640824445873691424162013827315926785982939067320553658239546540835176957131540306500292624105414153867410298884661257007530961886449653326019044734657845621149352695784563211599001741956134167349499367919287455982300849401036918795682273022555629462036286364484477807928709642761716845671231306454059036046375872345406278163750863999178104332505924736537442963303851484489326242970032075214112376011894850908838727452899347286071122424269289411214912078683504815045147840384797406677219887006824158451517624089802671868329846885713668705141506228603194183092729767521112808954998533633122541649061534008644974329996406214241369459439891003071061408608949344189889965527539569680031937463938822147606750939152503761409023210438408347916370608357097161789296376119951258992679566166426737528165212857895989768277418734250357949218932892257563086110159119814776995686485241590679832377361188089483382754826208459957717500333337661225030698537263514896529782625035372463774107550884788135203868714250347204215608264893815249125577860482960728550322077662357128921907015303379065137085718091738451940069983257369743522635014544771918184704552931372003963532255835168868072088963924968994198299889054120804898614260843523777075543800004079646680251109816852925475331007860100770640194204899113508458437994314908004819833426667780243383108129635131629485759573625946197631650144852088800756751626516566787365271932411769934430059983357982893198788838398949957116245737360859457983955392478738979009850222622241443797800907340978822408460645530171896053178805727021432153665870893365880340289270169475792811387723262621537743289262561112275164477168955497478381721676130838270528777818695234970557020880315569478968029847181382938981220024906253537652718104188165303664783588971570736325957115722471424080491968103683583330423755282414503241262524768353825121667546544497432560348423662339732856257320783304245812824356710514929520207228707628605951424609240759168524942738368973977998998370306177819373647988485756198071152705351890909229615508604562285214384109951263014181717743467258622537095359218567570672554922190360606926647204647694262856960964261549384392576097780932508593747726889425851456536960359313713873655156075716494425880374033860788556454560291104754693046290492662078691876055477098708023408467898335431075360152347104971903818040082126117617895059336910533297997819387026130134157323219486632027555445019026272875848243101762512704336477734120819994120517023339078473826947821840890628532925677794312403516255245056956078106616944652983537883236406303503139181534134454523997517087421782200054941068128015468153920057757295793303634650029825073461809695340288276381558137122209541213737986834081505198043574572210994724623837121527620806417811061559023209585222536027350948172309556300088539430963445024628484816971052267515161807332372911685969560164068167195175952679776131391405420540528734137157611430208639772914633447801104959226997751512786736221194902633036727479129499654084124752336550868813265083233779513997035246080981697696078310191614009393348675348860171309694747814100888571167759086881163329378676632570998555321357309138285047839436001129596360720086655928565941212114740435690261652023427134262149851259353225755482840947965363490360155019292590335087976339945895871722473795794972112450281654646578226967693925476784595651531118317196230318467052134571697340340236027982615530625445283880429194515542754098556076421040356777996935837737302058157987578721293852989065904887527840086259703148479223068096426583820816180144012231460135460783575425548029623568929876558379704030221797944192394462756554583772389684615951101266162824824834670865043020080498530237808655299069568665659454396584303900241172846499321435879996201398827057474019611561988109459815811712444219513613308119232335319920675530590530101937794118686148872606821129425845504211959034120254108981762658476860935120971315122485617576052412130483132249791448175405511710374146912565892644254426463104719365797568704399634933725235374426935940562676288745439384048507219277564116942654894468149878986298133534971953478122423933506204647331567872173824689931665174058093734543690269920235819696088147933239298537214826463005918767274742234413044797503945804501157481284397124982178475796023063567964042028117972128204310805334497577185894342377549613292047202743310093128608955471878243211005477510118094873624518776216666961924605462011370838186145747253981238103518101077630337777513019469264443105094420055498825789965495832002806599319442774375793556807595394425505316857415156569763111511986486972506577020854544900259772795708966750924818997672217356490438270234934813552437695049785077015735429582243930570214001919183923839318329535599299645577078746665037509390255971568833164877899345522980005585879535431973964768344750299405815027869067777372538432357538404914275542777075955575385295862511086760751796481196962316628099374506538587137989481230781471691398323594155632013722270658791832099891305315943439761924048056400681333906120896238158223162422267970779698402395504299882236315012525353548335023721602653146957930356549720860339851051100875469658801002411823946685367170863990076484512204101175592615172647435575194120705069387914965239162962559825452360003173596034158770855612573212136683830294709222886024466489959036253342455390908323920469704761373511457343878478780616049665827067269486927443196014632459103436130486505907824945076142756369422663088013383580129082142778408404009482619689620009165870043515636717306434097178416264122653992112535761044376411081360396834896525428889858392556775486808144075476411875593259033992490702625662417582875414605632298581834384296747912027180868678878751300016083208677969386832575018274039575482877788579754711428370548532049841455816950007852747685398452322749798926741582668588514260941579616168303049250410617287115303090399679049400878748662021940587313905735707451126270131274911758851867908678979081225318621161918085235226050630141858501323146433771136884605876006722137156660482288691757700200323864540883530920973398703181349479413485997073078136685721112785062352740650347591697795386761794149086453643787860609240111503341774037749475863237541101621541159352591266302986139196045441928641182693206317756325226171155433002502628748371709514923142498801148899340967463751073518474364755357765808996724588005476420519438232211649512392661466601652094230858684306752417841909853774302408342547646693737018516977292087923708180026385555552743074097926447710471665813899916750459901549511997458027427933142918912356773496475815026720948092791382179316620157327556193050488354944419161247093592979962069390560612775926798449643425899778933765644956870497821125528504529003497704622337037715566865962995260476453419996281642282991017273864295613423614276288740819562662383552648598762628898819952390734944246241740509365717636412097259781233218235713804324385245714163726925322492715770258445190913073352835576015014359546644315441797876340320089135618538426611968076072605674141628502737189188916147472914845836804788893593085977339011980277195801966055646527905575140266475760328172124924320022376129357631355562958140631888243517023024928269285018921058147869677480358872834597527193275909457573243914474478832484595517797843940974460018510880882648746854619533356862122067000026703568998801205732872276238459467251282105129616658260862640818767584428097131315653843518697269916095473520784445921482791855207174702507700066798111945166158920488475466070554596340162000582447227473516583996416471769333177557438442464067483919572972745465639085088177366386446519274670398589591912034995590870287965198179347053797253270583677253462822893567398260299322084385179302934123603269090742595447331595645932286341233602541518289264052242053409748522285440962466261285057554887449742957322760007280145824410026408069916133824609633068570807897997971313182975430176926113448992910721873533316604720523875097589607102169465275240451891337392553887196252254728562751992906882266545501260201675581561875638583282149773222888909966819073956306668750255259517774929206615632378925785536316348533257174675956048095318275094044486745843846339562708851307613157311706210722306913473605641068394497635733796407352669041398974063431678626957885889418451999506380645730979544645760160940453141149077832115670124551719883263536373097130863636954675931129459699046568547991462736644856299826764172320027538796674428308655918519333502064090817034412344826604427047230218366079032040828201260102297698484783746635934102108586710091017128940716688098207351023020970286516644153533723080149015716456879908859156987873180374165059922220280718694085511651434582532304012146408961110836947277151388727491538408265967621943036499053369265513553941177689657143966019965369836227618745385598408362975933256021188611800275211033149330159666775870661387394639793000493133705663495702953206076590663997009452466258174385421135356929702011911241570078437000081272052461789078831836239650801571319410513770757810572557292892582258618422920861682655856028989999291572414080309896525339437963365008526224743770030329566222508693134100412669707060301431653078808920301675232093615609290752615045663728715942386035165999712919048145577091866000049362395536359200136992747207391505695578364588346783355661799366593016817813655809995604104825617454288766107165506439739358605287278412040312299459116941251918324532228219033842767439069316417529995672668180113514813102977759758766338380460222607367347130505794915336402034615870755903456873383188242746219006101742086447964187022768619589276390934933049036412859844702275347691449653919695652584184598320388926887374245289373977092649637565883839644725546002789692330132885691211729612320617479117688460621475881612560327581668996251130592531197113975914028095456217952712200899760143826867404922225249192865469830987502287478357904381133955911866266255483856172082189411731974386521825533040564803321043008916114884050034930997592164703898544726868215076143967656032264154140741600907738157323782136937347453198347552468289159279757347489148315745512532167099570613210473976089303176859278917342221112677445397424257784292620318506790482745498603629552253603876687807638126848026868330561761985853891731184354793992615549727258669298422568606038434990287541350859884674901597018930212521871038305567045635886977141749787120570830286887918396652493240021999668466337169867442240354100671756647471516471023266004667681910373514631276526052751226095774476458816661522564350349601897411169494255026631837447845859256574948235057846183074885240374670611986898101071712633498310561815413622901605097338816946665623946855174726480974138586274432066519899037858872586354362200385876422185310403102113230770192196322206137757015800266579405053134520500692236361025436002178516666149227431956553526186084847585748558674913720198474388570476025465991771886007855002663091124057703621167664332424059562536170606705024729813873505109668807012804757939799619488855837772310872817583684862381983637193309351042375877760569445163056738858355496097726910802795867491088075740929830509245990229043416342677675740463629895607423728687155871552401412774505357000206779034717621029160882419716076820484705282021140205950671665303575712711013631913419550594007242179497893697660995486586894794162995170761970174699112668782397482501238416153855681071630844546408784380829081931320217740817105371478682269205612802116758040711836073232871560941148188428519855122964212151996689878884260671034996827104525939368272808875315540905784694792208742728758347116572773125648223263901846155352925099819409961351009357160879902681717493955751762184546054520862052525409503192572014190683076407222325262871061204466597229343502158409188429800673164139915661927484549851724695625883559674898793745067051917078514245802502728791720345435220851038579950625693273529715106843036477888789194902992008410107453865383650140177940990958826019690197110587680578051402307722085746872267309102881419960685774120904480345391331827277244809221420518872131861050524643159214622513038024887445980978613716269018001848722029018504910231296689760550665620680010170594460011787675022415311036035904887090641619695150199239141135221570988749560361000464291428216812508235368521938879078025561594939685103750944398533939644258875341554900183273759120553828083370807179148438233021709968071385210546390112552249318530504375284003003380869516371373288735826965689285153379697320770419112519291194752419144662874832311780572726953635339231000572866943734849250714548981228055725265850105069618669237706430016493906179146162926188864022764078472694914895635206761565257698873835330886553703375451652698443385336343917284751116473273552589697582882142774846020369473855323533312476202270103990979231803000590521949705270446621550936204124860782596233477164777656897840439247459283953545563589755920670048083424996018178043045824358663078013274105001924923162341922139113917834156294251830868148561633586545160090946249976671303766016698860503532645023300828227792374370607673833255541410676723247484805283044616322120208830681780822188034566934481249886962586393201583694905278789344507527673097174238044701500170708430796901592619669486466882136613559183160362306629631070536489250414744227064385252212818355650158562545363990841111166561768743094151728324957804971593626775872080898220019666817981911531523553802005816051089714107199944137479811745618000448634434091440983246032817724352840593058908703309095947892817330200215665129921675104555163774413008133613390403792809920618750220735589627129362982388209515553125135364058276643958636636451792781430062667284270009254560920316531137448779283292051153509095397769335476224321425073669924050958372056618316940760659824257121674634768122284654292915082084814557504905311434734454809318130760688850307031419239188441253745274677086088221786714253732824058205560430297126081756644271885229468668420946787519319174862598060727888108076585688705387646143730664391351069087642615540595672432959741543100596083698948441416077818694730316715744689331811354650813309328396306630366220246468927686604711848146623417462442380623776056626186812961153734953887168161263559709430299924124346932729114491986579313602577193665311138158524901275901643774078716769424934786339418107847933157150226295527034765441851394209134769364262442542316873483835216453575401901530460532192579842511932483546936603360146085902147769910382750198759793052377293060821605049581125356621337587676912795399439166149606427687049114618388328469332342566083259859254443259773587050950620838519993401869066145047972144622762675738473422652840482394317002964608847018507160179222268865277872209695707618835928741004877602840134670334717368935538789726805719274707825084317184394870811147831789352127213261205036889962453042359395293940778935512066318393727252439578827272252061402313125422502673995986910177518652958482539564253218211328836946019531512120360965600501356734167364612548265582440147235953887243359134516517014560772884575007529150182203191536050683583261064407696952145784384920827491146927183691679761045283629377078357071122441117179181438807875488157425786440357785893155630088339871441984278981906409555136433337812430114525417233618361194113707032527758902968799164163700553403725781022057873385139270041095039832878237964030314786174120220296090087640218742852332714307891746631829077443573166538016733602525553540802067608757604280757034255701014904662260664478555480935801294698759123462048433854203186710269972695076838121954445501820213827491988917401368015112903331381284651091978089186691089084711381745159830751081618478686101603427965138968225997215330386702446143438322352545710984222308856151616334711352455612354195219247267707082133514202857909900387526259101976919522992518145329032142554955178471540322232732680874033692495833019996932380234175652373891931303439903696381019111463547253210393067358899741604744792594738675660023350373985576398681314764792871191986254794321781049387826897958055519114686302639273787798462967425258024114024987624118630296195428954801730901488015638783971133690319484913834924890355251356101183223324313765600887470678299486049191398663354261294195830779379356979603861478614659069838949026709247360795402428659688710992801001431293259746284460785470787772216144537132373144326272230329519329210513507661110905210216555633049646900461963375777671018924258044467021152269883437097773202670019540226358563463381397015023243151849552502149415068155656845926071467188880557164694213911694291206387994568945865568445336735497394386422881401679569994872370249776631879749782314399858295043729383945734098332697527753762888231722782473472509185990693496603551556783378241216359245920911450988599873280164294474282696899641824774081044537048098559823483111083480984529535325013069629660064230848985644325759600800682738442358828636500167664890286704198651624714215804712794293903234811930191243848551294463290058939803182413326489820108328039478928531447284083429137096861055497675523213414424286923887998502910326771985516233040309999864912565459181383359014139461545426378700260162306102554007390831223463949575306751519391336756822544557524321593399447834698906875151712031055344615986499873571428657533547026161069364450511330601746605929874994606917591430844115835234209660451915513499946478808192234567696351112986857101333334172628245468870943860304248202691941622337557365067885447740220656146787822713589849731896235018520298860217059320630898292245352804418710430050689841980279670998844434537368043114725711216781094080173459496570220659962541165117015473306462189345411450525338977608155902170935481974720127555627427774801087838076345610208869946171432755117790542947694177706070355084623237294140534064284643416122322383145839187337524007553765398812878531592416341457031283129977004664580990617203262531642313219464964524356859260722459426824685719710285410308723365252092988684902036073327301651500777768472493139346056618169715422156083366007361158957072635995971903445536520004688399734943180521333109681418598804115781271720516191679327620981689696409973287686218237957992634038360469308309044347641547152217443416812855783346823345626758369396562083263720017933938666737659023747566437986013413927055857638744628150416481825120132388699456618567780043228460682212793705650174762735961964366855026298054159665783055105074675971981938383226545464733390025957538851515248113537485062503804702944302319822808744185944304017919487816302528368669404970358348063946064167313322768250320582839460848705587217106889311756984313638571455536000133487082106083963920475428092333493551003152947069817375913005461185724433659752778114911823095221715999496708745179828740267581053611750098629929817391294025536984347887104638570938377643709241088680609097240755269980868124788807507009073385101398938632841747782195849072254879028659921463733746871060322045600000705851228427019026956047824195428165154181884454726724149357826294667109395024482660822602272860398099309530850501902891564297468406790038142162196446965062742307523189805611929379857504372578477766431056921413962812085285968491347145154801698127056872244516827012035018589462792383860060930567172026336194204899983212300179528431838294719301464431521003105609121251086261286193116794167870084505066688620832306276941308059188008586031294535696764925765322506925589589097262089137919995436142984114906240887590906758873700675410317926036287573980882022356027179445728716054477219822214359031351289887204876924321154827018218813056407896250592746538440983040253171578738859272132789698082040029611264251285495765538874099853883720230392583412136054691000507903048475792536741921592548223547860507260739830524362345755425803023677054164557995248630962603228727706174649523982240225539509264228376389787782159139075052573602908493275019378039435259355521395887436493056272831662115891926557811479669152174572525509253077242642909674668227418856421997283135289686092831933766474231735298561876259174245194997426120086120634330202017969996984966612533029321424693819486359834140544006688585866408585446141091781109208826311952079807902633555697951565857356483419632211718692865039302301642043135220524005245201799291976223189926728583913648937807643699611480268278093608080994383122473913882174393976593094982517206790328545433057012685217835563253773643560410522533471688861317701667404609846055892977983609244049422920591919956044155837386718111668682275466029216693249301879101178102707573987407061973041080345705188743288790607782146455699355442522910810648003360004785509611439468952034062490770577713666548171853042584319082867031810510266941739141767905363822934831466561196857595296178678140752722806223221350427102826824814356713844216846052104457910273710632013092652849871479475182307491098198892371466665504192762516155307605605601131275834718095067937279420390093398472646377585017014907627473170060609161653994487076692473718629889969706857435185557611301797354213541948283208433023196911264280331814892454263452897563447037969921250074353692484156841299704704537885746476408437193285494564545457430145305196933318482344537955018647104790972296638792076684385076709805661502685339739386615979287630745150791352822500778606257336954096508118937620968215483544514935992517299673343017029968479326287600582143160055419331506339668534221131964704796275211712117489424721666575705430280328891087292739241184943948934100419110389375029860236538207766460716873780279747905591247051573949782515501687789946576513167283201752898197566932679544919834768794855023321670216411582475565288067283815144751961826013486841209942560057509839046869859625088786457083410245923553377655756214678262017993100622507641373474484828179770904715395912661113958771547551734901296677204687351965256483782902248325615120749333251287457149382768919220042523213905540138660296859342825150307057473880455488027185514058119478937769774810456187256055147256638781630085097969552651370047391631492268033427361227952714136735204829160266109105945763934543878860859061328447851712324422898054660977705589692225297526199735626468245350891050611545262861515205049204479640009657842119645772042399719051997137548416910153656722967094132417698102785399360597094879088957936904755315993404567192320762986882996394648454574177996557075940894542319754081801658834092826869937122541184732749831629570593045743229792213280561498532626329050048704775433146820140956502858386172639304734078549623245057565883001915187630085527337568339005762490327378206410977472946749587920450943927025608187816552044776645422942513764709648572341764006252049062837217326574989906878935683631285983054597626058686706722006937247928921523826175263534705565107397785023124581316880518745011457480368339225441010493977212873286890580632805602618858975863073304802340010263784990633434470196206337027278339917603326428906647351262340981387515639731922077915572515026866862359636444769466511002200515129896674560013004654562372645614089173186458920655335278808121164746397603647631075471264540321490535324847784141898584594791081766987223019259478255999226193322621974950991557471701944073808331263093263534856993773963147486996027347346337945385818257743722973695576934398629381515541854066041095672318454056652696329567850945429173949788157990634833774691610299234800058112034994278154464505392806192408008011140826268754351344984909692230839722200519894906734428231277186297991603578128428630000176045116873462304954480249018587287927495332203811108873178478901679437680411800766884671575949928480934758053232123950497263344945782924676022161922477525166715702905368181470453157391097222976114976426428452624588779423620968770027433619927850311699518011904301398804010009678976238111276569852974713091578937372381370031800993964710823144606199677827262121123916033628756239546807977940488043549522228511279852929985616847149029115375750174977848553687664258011721187862224735513125419352039571580512368865022745160986643021421094645993963858361626047129029729335086156291386703246335593371232337988579789868683196520278165429536545742671841410396620909970740235901563904895472570222465277216333049130723583713451970410045988232129275217255450967320979610350804111545075753513057432371703945070563697122050617215080376670134735039020868068092805634373901725777897429345435599733113028363816499009989252827342739112816933309214198444329900937759189076271374335765925860015338993505042901631165177517008022513624987969028752924179585409492636852276270785960926890017194818915838757817190993968077755218522956228509231132408318198894434733638871611464864351952139367717288448833172910262486298999375186576969798567774801505326427833037782586786409784052044886137811859660836673201358268684074264486054240626963963724271311211672306998235356900078755374201264392708548377916323058926737277203740058642288431540399745503926644557181740414882778562712954389212748582711623333317817369708528537439208518467356063948531980160873878371867028487649620295560472204932339867497517370558737185667476970448133486900257748294996350703768445032777553661483587047977745080583727352823871513991944175682391588190209455844859145170792547306708497044074720524873691779700066059976291865458631963249287507515697233743402531368758886107443484123285155275487240335663656595834141409215884601598737051219735900528399189326381265992181077382968959716650837897986401065381649382165245636508168685416648642877347705805938344428901771268331624026008872060237174110302082343073778367388714256676730197732948064893362608124468591374834375360868671161453668075312796504071186732420685102298948100865884362486743518363571141429944734954506656455576848550841902881724910729810199058760640836968485904970784902319055270134421193905435165265055933700448806184108589610632563270167499474803766616714627471535636910517655614612362448242601026152631224187050594256971303857689335151305716890672604008311601274663367200730226092391139368910208155502531494404748510416701595394914952594328959313145186704876418909569956102537096773590269235971544262977480132258221856037783271274252509604414847103773624612985579182852807045265741532935992425079319412382601897889887749156220823284938985952854777559289447890671729661243820366568596333025158562145652204877279789207109308030482741833084955257064499692917634412096078721570999614157473464767511910838389537192834566902519452562388364885858207795796814551083781128125564452184390543096627912624738317532500130995479588259926609528606303746755773519151111892673192667690779506634029221040186188471802646155296042729094772311261175602351697691773925720417365640775183640363539426339010401799461469800042792715246607204317019091532824991328876744924417655752177732065733150900971442199250772627375749297604046770675576646833169010125412846104895925055094358104856653504353072411871949680663958446693769013417948487171178873642999798360683480868585023666829155198341979850211199858133782668641726005336637074316230270895706572785255552463116621241500861366826823357314723681861065365873089214080246872852171788824924986079427139117252260862138205642597774418748695801072318607492429460460429490368573622529929880181972816374171395901837686546894118742492855073584394976364598498971230578465594739518430664054890851749217031526304872431395021897770647437329684063410587235132524712828170586374510332073068604648331471221370882305224544880580337968979441450757268127381539310304113600622650542870176705437373369590552993137382604285436705225832659532853033796056925397383368054570505058916924941539271289201603775756439800568471527080437279634056667438926328073867796550394415621170888191526563640015213045013028886749155894053245710969623210030324366730606632364894791630047306279799226237545880726694330014035817454684546835197898668641688738882274426968622055732949191967697991922214704854584806459895497773705299018234012604916778250271409355500601011157173856734499695321141199311474992377787192746140603537949385453495066359546485455688271026473902523529393253231515887765749002245198676490791484768079236291471664098863571525799826322531479339009181469072477310494481584508870257256274498747063701856244851556357618642959725688023987369097127935960196357655879750573482678790726870623158800523699251963960748559253938491009239290896515111795413473610747865627385233712084135692930306284259087204064431234346715654148660054777446306389040694610517146320062521430797708493360115153722209120477811663135156796504567641289228173052912102079764336694537935783380557946237861979178781964304718199982153252850771577103278726458458917764182650016486485785078728351573512355896972820574455538831715869805020768020162195391700731574189713240867969364390134953231391766147620357049002565585046805308002077829657548293322548454255326114223858207497190553035657457101917456243563291204050682481914571664069304197522018966359599137832329755627914953159571438583614557627677775521866863178505381136604113214665099007602791585904197191768627289529716028113717713087950863422312066997814464107494403200809667447428494531186467148838750015171168112297551355366600274679995010998850400664933535399751437352560948321044453653878300377479749541834288803982059100222661829419141730541673972898576204792876330542502804538187276483835074357990870053882019321010025529023756679489411028584223378920446199713934787214935740934973471981777224971482455441129664237553954829476376248089073961901611480901356862240724899459696677026241525366694276740843377142696828323234783404708959575577085641582158055957015033634945733122122459962480722489087832812982657644084690022266648367004505610002699388906055125066780499312454500536079288815037051156693378607344453181613978344882077676183735702279242266185365501163996728832594724014939115604684103199240370793080035477099742193028145897262327185477741276508774791376634246907977065251244380761631054358431460635127059909608772154862873155449755138171572273663173503117893994051850337702612255651334167803424175452129852712729272884668444404652803935624365135064529606849542644170438258833322003303748244790826095680913521699165571723040497455629837417319916711284818555134508189038448693440290835869488932575672228656446504412272791177205668048547032834940898030912898913054964240699501665488301353550830125781341070211402767139698759705461098784476579864259100382224946947037252880664707219632209254990543157749807061538761144247796023091824340499519535126709757708933638860026279832226447495873821578067652726448989471506271827877330662773146108207185201791515984562134127015660595069197859393429055038291595456448334376621698322093819390110634015890138712125811614361049736907751940916301082564147914267858145686292977129375675369426416638815396792075744233407320880775172975383211044535729147183930766897037752317758385103909753753499471406091659496407673635873000492623897964878169348629712829230912846604635580836268876910111726538523016759758882065683320137995890285858930196193369799866741334996790694372005800596067833953800157746595073399329717627240841915446110408134306374767224571370024482469266366509230891613146830942899096705664564078438201834531341131246469982090361333772861636394291804074649633583248196097139273745827898569962659918923705625290527261055199515474247166864178454147972420335680518229005064266939396287470996406339055278421576165837153588830612702719763434915212956542005986106829354295647245109148925058722824921537997103944768794245958005734118888024875133319943215312929158479660689558400093070989105259621922282559082052878301926402554502348918156552288491980583113705231653129655494614855665175454859354194670939432304522433996376799218017421395678888085377908132160965547087750972810589294662999738116686502773602471928920438977166305296975521558860263048703826862333160489555770142301471060675278580561264640590192066981384790471257908917871718908392776296169394551999247844851443989478872367575264590535031603464420189351592180491698259500331387170404570759686777965303667115277559921870242498101752866800791567604073053258174030582157807130581682604778968312300192682960364168971384153592365518992186003675711254966510886835520161822854217045483448910416949711013556458893622474993200716890506252093541637067042834421704952662048861746682660714779648853086236615786846143251966378755661991206717889152543548639655801264039625122233956387172139242001903155133773937945097943470855567539728465080254456816494960614328041659880026589039737265743262645679481170381410341073168746457213007497462784670673926022112553362342232652352307600664543365092981183001222429559878992927015702443564261784202993637065244649470853426935587763963021156519554769642477980613013673550152262654253356407212196069679414210363070514836394880907510202598750521144327190376701323572044365943107682050601384554597593634317960559148969894641542094053742923143870741428672818194089810384590389649964097040110272340988725676486392113811596465294996336911297076942646263366829149501355388087232854392552304866414985426788423712749266151479376490553464705608719752177532424152636420191169323496012721252237817301536547337331410356198658865922610649160160352804277276753330381033883113511331454737228588037553690118966379667213903618281007422089924231523709360861629936724218388281701689577212760204923297245794955571128581457743702986852340694453317352298305211448564742972547775536784806679039777839022725825622152915483668903852057282847438694264794942882830950906901301134221439781536034604023372020427657022122694067757267523177945520988997802792990446457458317929096892796083101954844002173780501092942615317747444983194080020068931113511631012387006271351452468092397557915905570010664791289771599350015060973012872722304330244187227866318288475547930127091722155237940639110868025137211597948538364387528581227249891253427869480072010128143714143264587138608653075668625986096579907225714268506775502741159563988352729437633018022016678745498833954979803668130975616953853466154080658345931251584114367860691040981013746296351027869577622169307927712457396673336514473688522662670438635899594208906927009699202638065579610071880684959901146409587794032396023286546143885698760494564845802860394022651915879371102605688332921757530754066694315222729961833384409566146716344293070064078326565017950276339021748657356838863862932226469788267229879297211312710486372530558916978381280943303706144526378321483730353087192092778814597919572773714282687715109995299738789262321067648510607972678290624516811733771673217291802024232452177083594085413175869762381154311167395223123171135153880201357634528570594894534130158201747293333688363605910916483140292459150161475307091988263214938677405652378093465437763445226133335388714457737940716868484548715109755630735063565407871437775580990014996380181962770303445640488994857088455075818939691268599197472565497743746973642859548914209231204208206044713229223618396185799561545827768639518749888998447687286215420972877909345972181684046642825101558788374651309842455776033758427610252021691828944023182749807645045661215234710006662013081812417194210663302068042576746675015919168480441856450878566303500309547775047736143771016116484604760604456437351917415009987666428250745830510646685941259693004755833159632177786754427717313961000261376202228089505608813391564956351862816208244779501154804413354357163570401466702446291599675750131584990223855591368740534924599414570964118217682193341339982609474433232834324734554883098513592735516022973725864299343771801702312037270792578322018155170612133485502404029680886273474359153786303883306543671218071047864864347100978630128166114517079217651782391126150984720668345506835789689238619089923310693893463628359357565676392761792536280215491771625218661463940247729875841078179539516429640079584359944304288067441067928354736713444325558165271260216925193055935330567794657848051731221951006964118948875211393670023876872911981750210050434301422729447998304545145995339878839799202421051894936177591986380910530586365068851582358601160194619054867924921278770228261744906041411668805219551132404686057875287138655511206972576453682823222949384561138140457803973289171009539211570814791082928929126636803733403133296202037843104505734123364214199368369429363277729463855039874978307950070064049127926516536904008413411039130525211071963480658419405739259151281708930355013625969712252331020298644008357255502450034771760520404550551928448371086637899271460344877637592992178356466683364923852660809955362794165123371287988685392168140770749811571225793264419846521063881954067923242706577939712941767960009284863706357784335631173237917328034192519894406175419584343982823565120439176597074876265813603376746145509582475450033929411296926808892174785894450397881711086394488880865770023978395733992845603625169998602276493501721773891139753408597011984863121307296866025230786277282834683672012598016504192548520077433525332671821194448941368914134001388740262412591980714676133716303413326658404913570412279963509125603065067900890647420822026727128020687409930521020347416970440167187607191013625175835328739593284293083199591643018953945100562406094694801031405342653610214091810856068878522786751445527586464648325023246756983274047783348647421960419005901708002515660667616073655907835881131498177112104462862181617210129833807117031384693241840845739898291927376888352747202272391141318822388270730533142500522862078121541792939462832547616941202214676154049285039652001821354806813202878655565931208971622840735783883114897206049996837977680690736508015245738195653115856003784697993384105175504651615581806504659325449109733202506085849920274369474300147165069751830612895441986235508568981174347192771873206934142474869931486376431042680300461456267478005132285820712360667273010497208713086255221495977387673519393974794402348360992079610060948365625651478347454749097839745834149739814351917920050067249869014462380157741512796477244078855342420206965754164872471802932452827716948956710938252122017169664669649968970791411754756793223781492732849875996769538408133947769063845643149276837623805837023071249106563519371231168665816285343824183398814102514754854302553143091797605406880244459812669966119432181185699235737075171706977931426463214531703190999614679567179302569435521351467442600117631843279080182538883354946331204558496664757275603798057623604892653938494316250826059549995600978527273030586723640647317478880288951125333400814641714844042299871529832328365327458789921871349247880993820589391574755321235859199496764125563496512984815299530319678007043811952811009185962883719121075141520894597476085543401291511192398138575330477162526815106281807726450189025718701516398046129323620123532487451043804854125363682257920488943041000679702185264683461236464109698171936100784054277278072980883660063251381424376743085052971035317108189460685980403723902931297577866217389678245444284156844677513174139074475910150805178358462995392796284569385214155064431500847327746992048241504439797857950485885743142115571125491983573366553627991223467927812735809157401893265085593829796417054935691167678101667361898407210719649012835499216597685483143452166238083552160209850862284663812910864124744405598346613914904862598738138034262414252733989404664765374405696340638915201347928446944624331189194225635862181111193337166143155334968899875667171414255846763154424172531245899327784022264230458283716000648961666478423912513266661709389623825456836403558281811772949651557659697505838703320449927466210196217322176133869417878945821042226952374333025043106657523970074954895417976567602768112784980532487208888151309796454199082100976399706084116474190808339683873287326942074429444150094857917387086472091455758577812797992472932135959507169230627278561868278399916520953879684731594948033847608696771131521489754590015457131519930443819845734531760394171883221730134038330662956511043902762939344475047943297097247406903626931280378142459778148003944121528018899393519440278351963067838546009210570371292037594702570740245260172872293992727888625228134589169039030345548058974419800941699868529163830682449978166141094850010586820328813953821306970498923955360610357909237000866137410648541144989489860090844211563528198730558174464077480998626384141825417591406945522249030213859856113138708045449528480400193371953957059992273734682211601671726731168089998502203888124833374223228378505694258095186932088912961215482505305318415083904658907329466846523179041947941386318062120334212144810216848194545150515024272797846708563846713763407537446472575544779398343085785899892760199505912531079175372472268959371776686509638608844198730668788905482238043282963484192677745647817536311104872020261547469111314434342792196611029246808886764199243474520872248565846821279278736315690771170319258079949808257702232219284227421051763030694883438413532929822249305189553307701489364262149325517491846053373945796554504634659252476628000392970493970683531084323783567734594479608509001504907651564475944502932323657696703305042503144710164286394925778395922127231491268624517568202527678349891071761357743805737439475261996203904708236699607842653050199198542608166045113939238579001782704890566952549924405079725640225381298223730251791543708318186284151837010926260208839680170088256857925775630240574947248255060076970855724523998292410614573234698031591801247244324422113235385600496636783888542659150514291523500065847305525564528527757570287614060349628765531561945770555813680920870123538054406587517446087568020589903871595099138890091087136034148598832887404279140989402616292245124625368758596513699673579144945393176720507957070468995282055967512448475268772453364563388782505226621590187349594752069261179857145115202945360007062728896528836359222357230640823923557724417959627508292006581327870087929523458244674226513139802231885986490634194562464281574011450022711592931923783375721319432367788373953349539196839646881704947722438714339376834490226573380668788847619486654595670865247146071134497553316759974579265069640733096313321852239262751127729348890189731280042670865850383002255603453982637307113608173635099331115868796337509830781761434793891811527416766734192283287733155715017673774590940964042862410856621784385904291075083792535277921040523020841606820002427613346633998593527608202627148905181291936703610266792294903905433916432757249375484123335620104031143170805357843651718387715618268704812070647613444204150819103263095544863846977164213198272407215189733352024048238943853762377990954769190341190532078935247758778327867321940797069098222717493394328678243738441084203350719876374087027303592721744809203591528248801912188030299725450078448762365376791518453439600874612549787720642447783751044039898799405947630077861823960822250237348025204059640229205154913721517088020974416204253721888757342775618634546981324382113329141022802553672415975696555222949307270089621023374587539012026469905018359605303866247731852190766748525786250914045517982272319232793453336037005504321491793183139074823577084984739153517426376363694589915179823711927794397918279496332849088676124032728749698612856661310085899182862057119202029407750444817930169685307941652395318028745271779750500022651280524219086008260054182815971639893626083135838103026717489410323017168540189108261214482224536221052943358531780598016776152449801928259980566395398665335954739298271103488720665037660947520375150119955270214350938845477901251089986236721643497570367293803612285430733712160513984688686254285039579147193658618457652657542033377417713470210815828285337912967337004506888847844104636118281899690183475613175534706230836705158506650945870710130072516145390297769670518722235446261122987624902973229240214587743661501216916069299089926947458023352112300244575713688040078996971887903639555569630384891109617871076940053416226498014751873396515718267830056036207113848549202391048223369547640108242346799475821176486835399037898094219045795476143356639554229389193921134264288655358018089610499363311423451522441169546314153682898103165079481932377671314694584214457102614766367770902130143922554599276631820828172218859348320080113885009504055488526645842387878071884779332993866717922629347380690593708319910983607262501322444866304046879405364429999170892823108906605541587964194764736388844248226113109412091889296414547290329849907511675690705469043020992048509474057613092541606671470453772943132942628496681347500392570845576390470988102293588749381838447023047688813976975499958653633766461878442302943568150037464838892494713559230469830988673018248180464111982036980185648012485313036724602111743588590750720713705110413136443928924165941236442769516112565135774429457144322162599310965233099222119488047759933261018850757673375145059554989920708200427924055291417079502826942126601732909963171000130379564862438278523847179974728022006548149885604081382191485529272292892351268927517972746526080949651166108252950661396372737459171852085370784825547196947119736075472918764181955385835934347050202438070782467063253309910760158113756474999690203979006376774881063938902277654510791578000306999844654935297397067404106896340964658668846894568361789696855716080902480457950760191827421085813605146775781181027522012966613961345544752747060569799409785748971039027372177850204625770908678928124390378680138185416947727620285778237371044429504796103344434302844321388791891612653759333095008548064388627806351763898382913042673956224898600166601736372484923262903668264246718006604591075729444147002351732977772934425966279954193618424973512644750775669124647440115122284299553172890955660966775319694900117125254934586670777747003510005164468982873689423571484434819945811435678816356510743586640715178399426947861614297828962859580199970641252091991299302766538562638911167720234700328250523185191266401654497851866263155892389828782959796603892928811702119818239564899510821160814940226241836191601556653066877412293494676445897366992001911303781703574121868522635695707583647654944238076350272072082601051847698679023082082046729136168658043207971517778364997473132328733449079070974453934597638791919784945835429326392223195711129351153284110879057349275978666111799434003327182923657152082712743255035494060972314138081620283100125501293859855160936147562946070134752877088875905003017189872744513746872123777581954621179496572954235761551452752197898777645408729893594539418141245072510400373615763648685891238063468201885768095619976971107351348381716648342805332269527629128213147998461666097059303888783653450274231766502297822404037490928496308239979467876182595174643989830274644341608141230473398926959184779267979567006689679234537676151293978411595818783379087078612630177717402969221928348041176583443270174346338691014435547558934435416380810911634250748124415868129227199774728848395284799188434638303845877637270089703949005188111163233202554638848112508993197066649993049006544863131053992920001475754682110467231320202680918382287651367629877950263672846562516395077723972701912681655017524564619882392639791732721076130361379476490238549773429536504886058971865492480177868163398003161812436575505709216301940444605778961452028143593060987156511248951088023663433100988973799422099196533999371623469530448322475426711244348663385613756394444290414232283986686069824699121095345586436267665218827794501686973637034513475963323506656138507429413474627425025065890606880367064715672154649039902878401372162746963898260821387203568678202186810494401147498697041162651054693278795956100266582141441865872077831573839219239936943369000366489595676568634011349767807717707012947867560222835292091454286903893587069273457390504623509471065266221630239155014998520350219160235076930347752883758287801525255388249303122621033535958445160387524957335829771292554309776934393508639291434931384136083054725028732510639709208829927656102794442139974662424407822234328224767038204194467079780310422914963719045778532693054428784480960039065647026214157944725761202276064088297058087005113474542634319983385650226570099969110154789926865253725522807929273460518928436106644354202247803707134422649645432783220596658155159752250010822239687101518367170505712134129301760470544562686186056449478108340826888546461844499653087143585628183789825250153700428953560292213989802888235702607076445087873191111832338115209558506798725801736823712651728256619444040065404569775422864058642338464688799203846415121754184648156365801300503838727546382634095237494741527161707379281241479703054227356249487537062619681589893157638902488494211337503401591674495669141302776394326523506338133542389111310174228415360376482056676754284269594109909347081363178068758796063796825978269304503803337334778963276898393958530747992046384768828687729811693421973007790233116648000335482962909112312615224068771907838653846697497510462439356078307810522828134500313313532153111631588042526705696012073476380932558311179918658222009807155322522372172729129093137898378346452295140185715007109930092951093287909554321774932146427670869965280895478815778821275625586804387592824653653753693998183753080245469790356035734900309435241813870990788110529687338843863897786339069662988906347198063301658309567343556331443777483804693491912943392833268144195182219014971898522969697859109205543147786958025335624724972714976798406576019233681719037955852612034820978616083291529294325053454834867150058233306569028456221975548350253925435291268868906826508896810313672130603526876751752057679351489592254461974439923980933441187902519424090077785275820662879201521852123661707973508594881582342288501872627059046324232779701296917220066135242495877188546548111771127421580327166296599987433350440250531032499501917720867302175650880487821773374516122076450026469145296834130685965457269867239991058530079074810144762245780698154378300325244332722612832521990089140204246277218120431997122117061546426259166390166887621486868975701589009855417027566699866541966343334925556293503244179269379272582048624783453818213785940376919670485337920773338146021686012878459740231503056115067695485305521454370867714457445074733188837525462465206003424500178833861364876887513232153429869374019469522844086619377555092096101859406680648896884550166649976363487414093321318932016200856878359202656788889274466205645151857777523030895798859951429230517549630458540046052905045948463844181827650090922183170315719891418898359757538961282852051533905163432003191697740684952246495397210091456284288082993420290877990447000113223326156372624051392652668477898201834204666929647047978726484789048723003929951446688913403051348633847118691974011839541800795597717191885365114121924580382885547106378874357237148940095481860184425504495306461706968294132338550937751138775003877143778883130228299544693107016075564617557422073165369315408534749232353758778885426922159542756288523481282114753759689112652848683724618847613717712709806826812625187758826896362836876737236452506397825284711876565079455905114128733844653421439998902565129281931980770989701345390501228382612296582130132154457589836023756911048603159372613366576513842971547005192214783263928731771145914072182481539584052010506820535542206715439307353968588816178040301326508384259757306934036911979320074924672044144337440438571229411861883737932554937077561103044326811056218725781275662976186272580480412552986415798415976059794937318253312509418571251337379197263523464922876520469089448573429719294413072367701513205982334321848814044049657166550882979617562066444871550734186378918428026219809855017949839296489215264594893227465339156203876843758781411922360706732462115191265698864452745577794131859210040898539693289138535359340330704446004146892800039560034525062134817164788622409719154333986371339063222000473943444111427250977631877790662509651377575307167194464646042941714909770984925501522468735294592219432725482225912602966434347996287475484021935158806043231147820403067953739070290590590973892765701846199162635399914735339829519599262995442715125326308584965264435477487289050729113542939662302691416998767203225944844729396818649467024934262678117370457854973718459671740445603760218580210419086682987747969260197382439273601183488335881350743977988320039366975476339288015500536218520960994452040373613429150099059715874691076138907709648171679710572245663701595103431832583942377329480643724760654172936403853894268305974472876232506622209646109135551270173312066090155049496155425413561478195971344445416048019654443932133913580442889483461020323699366936797724327394984935531334596807649005103054167433517759428390185562588107944288546914083155121563248875394544909694887190587021500925273472417240706188358229755835200290227015329468943304177490686442122227618028558908420664262973621686765645037979439821283625536603558010918624060153239883453854002734300026251158585986398301219481489471026307725401169860320667760762673586829574519883056251937656514629073392417940386066470828154857759615763325231465781847684554060229030692290880458697278346703218358251470910103110664458690952656639615833492901668378672565469158819599401487143890271516368440709555420207467656078755133933336498359657167301005898624752417282472535164501029524128612601866839363561785287389551769648697836154301930633991625098418624604396174065206351650000083136210082996840575789103013482219143745272141005786097337182898456136854504826658276840068753288406577881198586634725206508580614298160995499957948283121725333731511336447529144023164067279193590480965069704408981253360502249214045408992600977428337294605833578121139000684843313746151933798226979524684975338135887795158038962787952586578277056339086033799515729380443205473525613964885472266759068532768980116529638279488156279253587495271648240936065097634956466213725516885188403839330289648584240932818710622900386035150311865595187319843760566853386428399254673965678661594400359175585706370624215331208787185060307081808632154076090279702259729179731534579095659095152935006493605417152054595052302088178031072900820461572860089405648089585384333394063569622012453588487252256537495940105480681956036238072110564261711351102218922923777036212900551104470031652158827322861302704220128376746911997976441358895281498295191056518377910506406080551973129876622404693304361054321450549040203098237167884807277125154773848256517370869448961087121885690554391069717949427221521429222178704716763678516970794879926422330038170459071121247216188526437998042216716855151277817856063193050776482595656830876154344706405260050534610043460051660111014203533484337271220069026691191264499466433236619170891532581549552006289708842820750008914529403606556534097408813735556775123436817532296190234669106421998318806786425867405471369529562187006992599905948208920356251191927323649599039924805944306214836429112467525382949083849640686249229548716114858935342968453490258338919070286835929556793193754641831186543271973645161413247434103806617229935679748385005165969423327556303542645179430609955903957098889133995780632240595471626469317571597377559901438327988364370232518561716505852755521566475070735690182059515551493646766657600412882435665719337533056870689507286308207545212343637313717632629934755165657473588575792379200878806007181480084013244347543030921518649741152670579066328632145273362237132154430003926510576962994360875953142921050327585204910147252353843132758824576362676962294113077222554731811512211707672025192715152439674893011138654771227050788646959415068439704318503767197830634137071976544313863799550549639889787516624383285072885089775974116574683365441423197570187088332886684821251490027174134651677527729967128956724905343799338099720590236014783719965551446712640750670317853560659127456434947983421308137180168192197403106987675883051810455940731224140011199931622597040014519807527761334033204658075634317752924030927632443538077368708323991146714231207082624226307131674495714916840168237326677383951078969242032326804647541920001868706802859339867102531389232429822459662362155307342275555925750876290177326665857058550271430652237342079081812575675960998745701823135234927159717022630839586651214490979871630187918761853349182707898383366936279763676823663467911932271710009247173821163044064876446188205435164448076982221187615491728172278070524757876058028192595241815950283570083697877650871688288835969392998328809926492976620816685647601869576698471947692207624925467733417682162645834383674851501877741496355807244820781070920966952659860337768741692879848205333467326860847088514417694420118594726794257509798090459134271773078871724002779898236171642507051386848074364543551041646420448741022755891277954492228297263470417469524746677959204029744580872479166492046658169974283480685245873505954182329476843979926508906521177629959454009836257923930219302699220763273954576456306111731021067967987932323385063256815488423268894852748374283522553370099579216669856180432239568603001397917961178686395999311973066711532423281883395100139747468459643290014048561733851129148440855342604975013498554677118600646528178949342134583336026623019651941133729094977584750301019942667687122738363793717766427334144885627520547533778570241183494317079609356358732635906013490412342210616559914637009433936306220861643105793882845428675428220127388281061955798090918572497369614571747767480311913846259576570880646667913293419488475726258938406841597176754540338115976335680225295507851257550097133681679579500495857599048581882890908003614438501423768707111375491530854615067191998798091200384820930914417913533059165351137919790325573697732139580877214797761590604770778326627251107391346916781517210765286300367116159892512456741873617945124649366399962911987857921466917128221028212619381026785280640493562224826834942696725943999951595179167816354290179641322833223198836540359140608327621563205403911636409676297045175758570512004258379026089196568077715608579231223376126006077009338880154320342840614574204066101703114908267682892208188790702244036311637390252347590871622829630607337091774387242962403117321258831298306885979643625655459053021683430544445496609442569510899431168306065445510496723199542397360286867666909278307370480575573791119839468527635383148738863966377353124425816973183272329866408110378642604317755236214089505921131372460212112188811533507351708486965769439639957714882268848516231316200824781536117969077658499103996425238108893434327779892099346839690375433805999386592764918918294834142756296990932104783483098358099143558617304541433982315456903102012680391680026127858191837436122373734183465771533102490016167993512354359416003588808750276465337284300923578357139814995451743065451976563759855050880177365474854144168760806245063882026373087498872527760940315406657873207351669742762600464262588516885682589433011780711651960967056920145827315974961897734076486298249079157403141840702624778649355607057292876637571485990536758018299081972221145353212915025443250629462860766903719576638344495952058773671560611613221071797747990283861476137120049227191296190776713212267873952478879475979219071619061394952226221018947399894283469115229206365858042957727151602274290474638276716000345594757492195759595255669581446731393502556106716950990426683364588382224519406957766761175161794621103695345020835610675273155037414820585248459807051673306541502009689077998151032908854906223026551521375182956225280809316715246567820279923744453893325220571873976297695973588132654954932507624732215157585051639429471690563652339810512978351656191336761229840942722914424027929312620835403952520379781706825359629974225406953260970019662450332133246559742526293587820052755750218263009582504006122054657132487901461466904452038430669817197822054129679747053350299817608623196232170354470302121782786614224805161585672208160049583624994292330228223442859702747326499610660417977326258185590821495496881671727819892914146391441853611885627180187619423305074587390960326314730106800111658402481383440546391080418636083104749453562748077989363487520545348242361451572432844107645535883196672502320313606754886071606719700974508935724558082285813366512949165392481216678947671202843215295151950567854263922914266303439276461923115096928805878944453645895501837035879821757911970440750429966912719362820601799253179738297136183201908774439911668983920099013531251398543728717329173495238663748634468632413334399686111058404039843820550223399678020395675638341029632620423028971253089171028148152553977597204447401352548036755152904798102355032526816537836528868278604157396971449204150743677828927499902814236877270589953182288391452100495560991422065151813640746084699038760916289151090560696886331165597859040138850985582486604050490120867087050896077229332747159675330545989537249642084279020209822966700864391512371021423386813577086504177457699306542901444053924060022516797436344711443137849117369907928997320050960507795281842278376841733905954005968762853092240869675109944256520137337277519831108025739149786685313382472780619580432636500409307204595308285083994323193236941034542110664468101945079889717225818779679521098116037455277891534849914701914893316456063929280138740740538563991085584341275092361904331713036151712926246106851801205623769103939902132719067286474944202573487327620611163954280334702046223895661595814816847890678331677483604199041458266716190656992821479806302705781072539409910503274976573430184601642724761335408006582708177792640679875083380833523319492565639551880476183792350826095993922512793120623909701104859663363436695742090752632407358783139002100331807101020267073022847827186464206590713861851136709138917940816802306370581449119327838158592052387439804877842009210116655197932690040633289667862267082200762492728826775426630088263438243258991848606758408883306959885333510117209618342648631789269683024460169764492879083927508424868508104362291513206779507825694742606148542614330967757045752048273889913423241255880064098334880908608581164866251685523296221067696790769655780028553107036477262253183017934495389641422956672533020974268586015583323194648108769928439348879254583788571266872395200187805368164571992585763086122156818015392155418873132398722633224260294509954524631192471453050686914400751070621283680618157047687972334192128808975827971452387649344248051476374160701597013380111081882297030516119432563787232059268785798813738513324701763607353962775542729325483418307643049541373985177130747754248971689004416631842583404626078933057749873538543164015238972823460198710880522704658591003061380120826206666411067601082971486198712143539341242856198266831850595262574964015856046201668483385735661374775867604572795023332816683108896157322548656547868775778027383116500869954015966702912177256703562233645814029007681706760402719553689574098567208648945822286025672605882753460445202028905551834918184876197075169928977740366236162282547446349099913988622733327214333724603481545974995133421653097191989423369144991727555622953480568622321697543054074481746311418703038668770484280638510773093161387759451506229669633473833816935621200602196733641841778838019088891036074000581052476876105902644961006178063504076066092138166418140506813405547076005077681407020299140272191317276690375817218275413350702227810294294508235822532495401361920454411029356727924011104205238466840764137985701757230301539723642884280907607257104078277453085460547488536679273825848248709107786904570116949554011447611577376311364627263354622817960800867992761423140102344793710928942511478183261380582208539879351185521992162981737493363266141650822218365252830368356990752689704049486358033362026721199464221693579307807320436026046109567510467665670822031143940057219331546378345938714318004342638337311448578084751778527488913644047607920918038743576303997658498920882299300006548388446309352786601395506282292412064359607013034704289194141664709217242047004221502052150287595428673953078607118911806273909567734189177756891354234575634132626763615212009955209152700936885084369434286229952829138444536827629608651569222110408756329811491715676686160227098610757319674011539464714534596553240981023500984032249359815897285193547448864557483895606382833971876390792044266628264708661510503469863938923505449030651280557617526307912356901285860079263309902284191044509960038993107613675139017818379631886767589641447087643615799270177212386542331987416365099380713649593771485629678400014533827378115573521223237941084360938639858187030622375230751009652047369729740344526305973313046504683678945433777184223119002726101990597283070900443415509699204646981705783968388098420728738027833212334530784493255429941885968549228825820156451674658390134335825241516796773943514343079122666209633554220674641652764906261876002718745811430678111686801237733942788980954965535297206548422915690286154624025721799093256567545846890303009721826530657735658291498811125238161262315094357539628263113933692242020762183428772512328158306188541442908439330267025439538892142994423081709332195454166669151356882302214911419599630519713388451588035951658556176046705348734856557871533196998924950846094547390748409800763628710778913815327935481863794692322080750545721615097055182559065040415300614669862119816200197760256429229913275255909929929390700601989704160109351439697602755898365609182953851714863662738886392039278007804677875828608500618689445133511006649148849368305775614364601238887419173298386397857457705128930177344742869077614721858613527196135310775121334904695521615867830731526324018056367040104772044488453874774436802164480424620214699693177882835164894528517247880704852186687693448925508390446973279103610492475224540368995270405550754703698790314539737473921690771211911069472270700267418255852969702215956435838836599492333914836460737958072924884152950125212514665943444194575662854078682359095137104577884921349047227686400228306397959668514994200167317467579266017058459649526878949209743367724686295958806194403803238170711285083302309090248643806189877865540125810218687730766683249801650712789160434799848002057677482272243983103766506850999786698821170780456062069244832361155951592984007648801456215958104142365282373296508256811578568693045645992021506691027555809127644771289408707076211978898791009548574836873868507183869340285717193668467339324708100136473509678125447961057979143635062542550643297332710127634864244544557303103217497430746242566715620878480544034085746149693041212496884378694195878810352250285433891936241218072057105927435359539338957891212803728535722771045569270591587257871267816405428970789618975263378775075793531027661500563568294900871954968357952734547998270823025518745880154459018314309073375196557750477154436439658604704672647620195144652207074993892307328752640694268672502580834589631884357376519926650187498535924238993375052119688161776053712812785018292504097890333698987312230584562629842747258972177327328041915129692295068742686884461062476626449096174892003824026377445353857378076285733594472970471992287287228336448348097791789232934381564886371790319363458933243370377777523474528236131268619747940040442700973191628973599323338761832988670150956992677448784724748667260289232466245694459743239868915125129135597116300189454518536138365907874638235665817064649981552170400335724058351400479409622135049229391119008718374299985305207738766150694266273697013732078856696284594411350120334915639253445351339460993333663772647383394554531384716736189716134503130846207327823018500117882662908630251630045837491810525880464378640705058966953929921991578984514551032364856248261928730308256356477437736919316095402346658330956235207696125931053161896854895808748223647081940350222126259791531443796686227071294888047769841666299272864658658828452284207235475296297041647661625096265978030350196391493598576822800743417143833813605847059241111442832340804880791360300099755060360033814613527337036883135084792684769942519677221209994621372982053720123811682209491357519065895000659124431032884902525445009156249602227389459563434425905692559425662554206741521905632489141645144495075223497475480378530437490473888792527823376860105704666083650451874278035460704158565522835105200463111080484698928745023329981776787434395481254048821118489615716499570661935197950445702523694180374513665254883590840144935107606487778900215036982863733167257133443227266754983584780038972010227810813099453601127418751470418577388705805822865933946390820399600333855652713425811598932156305401329536509220134988523184354315207975199342310462019927653824031270402871659558847991360434689836028657868525299767731187119705535111721222919964355180046283331207617023065633636446272721913410062084376313411980921550530034498626596350149664195255273389112789706498879304442511508209820361091065637515743669384679073873072331444668850460586940149634011005817733160905575316385876353123423828956909454717813564528867749379618620819266895539386009204064366972794065281225982494221429943448262285903183075671648893669887084611658693182213125191168374725882561574657111813553196584672209286396607166524780940420119380738891681946410783393481746507913623029641333355644413382622099281598220151107364870850998318212328422456730524079876687880870849805744841748763672708950495830855520264033653779116748260684025888461272309194537257725536766190469007591212377397922246557378482277605915140843979508656703857750599856685103874981562598950119373084925000803701585480839772867624781476258965136702230081885726934978633485285219796890854864138042572520317807980673469975901593630685439375751281146227764228251056444925635816558601229499236936049534546656477238288373164808844310898193587317315986474060259731495382376353061672129105391720799415635084766064306595247179482965139873746129760688851534189933496958608606041959319794183688564868737110740946325600474545365325372504613611163508543195464271037830324114063899009519372086706811806736773214982380836406192711590471380344629412585853768804359843793803668514224988555425932013745977182867531995141484888375042348992041592941956404639779985465388124394004605974764483098691065617928887005530507342811322303834185953793305529430955685215708098781166829935539152622883913267129559677900692063391914073767342809973217614482121874116526632866560665008192822978106117056495092558295045453055144167531824493918375440452253144085106308621555918730496153309498983702546309562007412901321462030263206929785035560937410316649344088526497413532322073236688441687783320600847605293192301068829829885826424878023542811245667377780691438087060535801607498469047828374068769651585857432487726910602438770429521491143732069663842043656053340319200711625060896503447899024321438869096438364719964349183204981819944119434163974383606876742180544481619807997203023365643754368969468277143241481275043948384250578154147111991476388665859147433599599352253524264156493220882643751152723450100121776188834591465906499693349798936104298956693496150519801623386682366017260373558434122914330205915361934616360054792081999241407037870456180912834434998220160803291261760844686472598175408782427866044433867209945344053156424794334321449669609110703174640673266991416755724704824395370165232909987953334859187309933589064150119347119864047858369521044781031379973250584916122705027867586349193249487119821081794038300690012919842862983967849981445898956683547233549456943460781673314756255000189943377397225787341574799983783458754117169880219563922338349133322990979580741166969511979942977258703622694583700629286834703121075562554168868721122644605768650814730911611239441703193712652388898940840248013598796289843102702524757409766230053617566177556816343032058264260084065439943110918973010697890391951131716457475825020839364290776118396619960207619853395823546323527864722966691731312485761859783288164276368392484828049603380010327289879280193618030197111300470527414940261186851603575996594727849002175803772024551700132722771257134596482066763722067463500047501153402609998799342842722836442947847043029660646375018878104513985092772204392869595084835463691222035692642623727129841818287809498416741664159498393902560634393118829368993077324980719839270091339253422843119993790985864812620782549019529959207739906355006773444790524175774277900463741761151204886670599683965531435810593997793910784015086353974744250776924995415174467514579269999885746743057816389079650676690121907067034121668899025998884195154790403839041713261329625035496167286719466421489386407799783144093754880765501917935807075754452729546221305495785335940140851614870624158837135566915380240757479610624202802024477280354942248631668711459514741118584598389133851763177173691569706838111051078820110288821435386835590030528803156758785637851098107437501790367485771416722520070912838847461468627930690287540685181302302480013043149855109962567476882473016350827896904972050614408720363459763169603269274124676568602357003710614742185227918673401607604112771365277357101915064667272246959360582573385816922427141243638680385313368004139763172226692847774049116224825023695748465261678549391272980777962107852888116377193978937980110097387537561241259125862553851737552717725680911779994114705299766563203137413572542163295945785912201348703496453793244445663468740100007860751532307810012916153829890203333170174616475760805391580882072098027345095301757352238613430405499581722258731992846458771354661133016023926199672214000105785753499938612473476397254448049248925743497986482993505306614962240347441754299751433704638999824763081261531461375748893344730123556354381007304243765581134548171746974561522320349830743091803461030586409499499495941462316298581883587122016814188293054067881222418438878288791673125377514693062140987827527798885931352877991359050222054140348107500224205679190467390286718038205008453209962550345063012721397360841498480384017521278237275201546560836642841989276651638117608540103688761489695360648830715305455819195924763050968436960838538276162736589176011841024587380062102429942687077377713720841840436916154858975716067370184480922737547919295491330106913228966598502552316423388855561148306804920384603115684517865515870669010419157499958164760506429936071345414239615105124505968218352660917269045291787579484103261032017226338390178396838929371145575480191879111884892097611019079849359008390458697556489472113516482183750894152685052101867398904179594451952237243040345068864751997236799500473656195424522842683326828757202502543359986135750328665977388306334020350104479326136264958729938079594090772677717174197629051992813339250923574201037734081893396590711125506090283249377979249789237438227300088453029376469555000033230257990036270988934652771228090131602904088585923470398422729080294490979573907877804025909737354175164713021441024457888944420384323110729441837177554299750929919482314485455928753333427667192798804893350727545809690491556286403329567226847618213014403317283099765198849861639021454915540474943758172592158497323198159015577749394429711198491280834548760433368163667567438010686946702027399504945445322467177006817653427836269320862367887219389909505964481587585003108192932848954911760770585300673240824886155215644984266229048619979227051895758385775731337934394986751929280867969471222508123590733262350441012917239223003976691628049620271181601744499940770814453224363145713604331796755941679579212248233085019876357383437217313641047998364004031091463147913304687437598041007801512605275998737274929725400589696237893536613646988387332204156017187131060848854389049938680924280241338675944518484820480642892427910840393589646971435392325558248948526595868630729520190514233946275264047517474157130704611136283525874319802739968316620281768744677242256945962656243137333488124667178537973447361757837927403590152200733199345183280724273130968412481112388356383729567736273225768521361969552267583630360358350839512106651568824491640419548933108069217703473809506415923294167356960642415065280469995042262919598871325089566870490895037009597438305004310459458446364296688263152189185182991317985317668240148485138468431569577932366338576482684842536550715269554847221674915160627428858011273441740005433273409137584269625301914715883563380614165445416525446994917595753890878081224937367345700877721260371566195084308229438300852500427398135749574677973520884662557351717441761474632654621521330974298937594308483795114117810259243610858325415259074694071689315026018385412890663893079713122075414239778483120726938985621672574554832378698948139924359471803497275072133877287094400165302300971104489076568127025153129437785097642939136599150375184300854323158601709919788791511606464113774416301790501122618481088243147846936177848934380972257156146815671879197101191221141929583048563139092899653075934044619228037704335108839171841514766430359357032199702686554664122491082446410796738154313020815942180671616355096353129048355746336800218815111249163368199436737235090693186283117237703857834453012657024442827873528117456523074656791010971793559894943309723632597282518528087638765273353460190856827139374889859515770741150536800535904592327752976154572000220084349602625700308550509273518931657644618801242631026708507810145937223463444629918888054439372296734730039915646702936300797576450969083207079179511208227778963637866541913934933303162504950909520931564166014246394683894670303678228987964409440832555241097962181389212802787144240155959890559267848117252515132039927945754318133251155016454400379188569752685105107096667809449635681984087467448399153710115307016336518091624498466119342731589941395435948809084291655452544465350678315908343075612193949860765017647325636019501059809347497680832010754306814875257053324703969689018298535544932779874732370569235353137740294672196696250841307332074236877187210707264003414512818743973603978250776306648326035618739622594585799664815775879061704697593017040601724903008065380285787265222142964618348075018806186498989210889056410331733213672242061647580918312965694952236190992836574977382519975673831460318051379591790663870015230736736520081042894683149096431543901326909394527958193993103998830429779434210512585463762923846088993126623582990507316381475043845731623263438395660754504543501832997458287216965791303221046005237967252857268837132727931013974983798168903386891939187224923516566722817243831579081675159855395555407661548485774300381887847023901623963044011117201345695241948991402263415756278187744849857717230914789293264021829853600220965593333435549129991325446557465689421059031272258522530225893878450338346969075941936603588113032284818000598055484055803505053914752145577286085890789758657589666410873656827513809100367031647648063988721910500434731365679781773549703174953409372741001732773879035600070633260282736561871545349623675936743491167712267646965488221732290688081271344442469723265135549685601326141842955309136322242430529077122875707747561976925702855277589610045835345999079119692688772203498182433561965850856396567286740037079188547028302928078380173869674660386306395265290552952538359377255893645695078468499109576179056658879186555483364792344378372411558530886561709315539935598918832401831375471155898784904643347444115967619049684282779840450547563151590396074471933684089633303713727000861434104863253309251397915851986463697233303432206505093190997426475686874330360951360111933052975015866983412126282053103884066413216658897684376343823855866537423060771989043574149039670104074572667326974503975787741699172102235216801871056782728983484991124129839713585667834654465737244322076031326572883524235436053929650133282791570820516695881835279292945078667243126296919279467770152637356565898841090698735647597337394758317576502021419649231877952360583014631187411825916484084567647967733562568054964451788322601848376762813777004585724698192880421773309295461029326523937018729826465056151985409772006459313634692723032532364372860059058127341068962762156579768331231415032200199101871462917456906137220248134983873369988625038096762113622115393991078503418821363972156331170443233013142473697341401436773943590347749536402727072258562910144873423192620817754874430304368755304241989071722442889704287443622030798474873406342963358974258752275305417539172460686272071603657278007626683194056294386205351799473460557322628599460331569849712132959536901135865681210441813244468756685330375994972301922305628449158477777575941509358485159306776651331746601540277992653297457804711992737853369415756216474052796839571896697932421777232685984329689648941073050817170222783891040458356204356289506581691510671063704774793544206898740112634254706062005795046725911271300186857047345204157874941518110008558183751236307724308543843612240513393011105034751522259075120365758523387558497185817424914566982350562303886377894788859156037468990732519862972087407047677150978038683543238141504993992460589203885432924752034007282833200013433419341980790379705802238177932543399091973270383575208104095144170080742541402775385113330215898417905416738446993720922734891184911199689960391992152418159851884097226957788898367225707691607959441426071236102347403788948922997015485252970583840460314057967637040179065411440736750905213143778035638854259796883697812638162588332549119110452222137644538822254503540121308816964243322364998490803462967450516036473552875037965280823142478359097574293593250666287323298393084160615569377548310513046958737199572557683682045563138172697008918574505009879751457244749361839327562304451180091172770901862897094235066666198424149770106123385810489244969929706523579443343053147067607728058195234545962555974721982832550846455079214021112886511459492983199684514241708266717835893037684864031800209276175012671260362945872283647826800182548743094646928461951276163845060815977082819026644399720743096990014436356851882767931999227092561939735468426182915788548500547099281675711613654468621074614128059500397969647957442817232176004073125181443289439106725475443145001374384256871734407276459044722582108922689871417541118154993726419273321322027962379184360821069153943919549273422447732030003516761118346246888921238897772776034956480102451292216546404614298167699335314893955402508494614644143872897641781183543685150137506615590719180445074630484670607468829098290948970666118939969018994794358534104633738769578100941217567040338410185867298899907314465822927867110732765741421288570130084368028424251354670228727741958598081666208512308765898194050225264418842061426860008318817011005248501031514578475006460920176320323618071861502051646965049054374899856250126093392014335390379524496145863318630920758747951019442889323585944976215573129222598211302162966606475799158172767292001932176508015884938075415980012483050160156211348494569772273837440356448081248137396431824271104560407898387006683455027632470073114715627582277166540627680323666417932806931132535301937043071409076863107884483804813216076407271402953778907663996941960219015675699221070611662447508219735381475740691900382795214948786908977648055581850629773807227519277930428820403413695567620462126480967684096434055051656221099115868816209412263479487028146295855262557751925927137740390995632618995805047764528710021993891056181983930225479566035737353457196823431508605961623728100421489455839674220202309385358759335225343452327772812888854788437045215612870024911425037931214591169874561798111819983336569545151348519088626940634551695482903791380639825716871322072582691074630678645892948956746468110476180186296865323842376375691801977043635989539105123272240567927681146113542412244642872130969985246080836736198033282352810897102393273349362070751391419131775528878518680914381793789719391648273527063989835993871890590707829775559914076109659041304773206033125566405713009310029194177461260620004454254870555835353561772166774376656535887099656276037518213316365970508249548062612700111683966824743398528817943469088671004366452805874371107123908910010435386218085238693019820630323510477817471090037760704352697168904326025231801957280754564753369682591260517227913520566843692436034058474927400342235581356576820395804636129548285014420966984111855150536551842243126664532959884179132443081158607521228852578927971750464068900154828873540214612439612358774629351519428557596362296570979844527210654902042177941302173812313621085630796382411889592086538292109005854242057824901867867986016773224578382135296301242282157413261122703716822850528301264903293213348071964768506736575942496906207177532122968080898091725782979245104806493960496860648830441752036088829730481501647197491017592141438559757389187129168949782571375299464070492494751400162111956071843726568469727095838998205499999653937227476483341463523422431667187051983183057081514326728491221940580677129074362769128572843430173038662682992944043797559530435094137020757305419501073090294619289779084299393567370633691407700577211671048054444870643208040643236406934384052035622089702575437227632049781957328555446029976118989261720253343649294390320883388760118263379851984741396712355380265124125497626299111806764703266613016489697813370123029424593368943397435602960428573845198905668555283211865274342291150880090263630905596369280518546387394319363398366989787563937706474550656641515350101998979909101135183661954368987487574193474685883121521572459355439818128627207530091370451240365668917784258442788214881316429518783904813517096290826290581565898851030242752460427861980265598247100880732839958772947522209937651458789954402448661059344862342303424757585807591293488162830280244786314095275277559505812571357670950651420800503443263555041038293362075796363963288394920527607401494780794652453238590105563388299645607203413384437773054722977072370104075297188116329195478647893792183498226464143853804122679591549630856917577289071825858104559079674285843230045428373958146618237994612857306781739417655600288748696627494772009701810129067958772217922661522254735879538534374352286784616039729336751568167890060222861719722926370911136027208583945236154643619508605901777505309842979137059317716194869351045171235683341201956099853943182365684068064968600954112079217569099131122265861579640235299828253746725021656481263660720044707282829325330447760516768653123247172106167055142737321081319429148533720327888666017520042328751730261933816669787240389787866344772850938320207437586913488260577462242137443319641022957640370087274884642031418212856912043696194678887209114062237662876929464667981625578846590138090099931473626531112071323327329377653210200346128665181157065070961247705168997938601789614417892875554716532844143930351518793618407567587354261892225149961605515591145718901114965968835744253217099603162903863518953729099644949900552486625903430167373581312511399056453919142303016117243756562411838422704603730670849835493805549803679038049680202611864182818313175288100252772529289312166931888953378520090321316319321847518027022644884314242076438182705467874699199801656893369324850445388354669343850770479342222032839060769164361048865090015054666828280394562026156766952669427358002596675085389839882406136503654588673561194743027066216352876903590640645986116709300254650369636976907036635193988881324765481381305347026107765579287538011033618346574700161121959216467132201516361980901950819764820178335160732888034556077572328803300469820965372591880809040867839992871940608132609946296566812919322879127842123178402110567432053628607588054838182538385092789114658343712936537212903454931300071361819838968216566618646045836824566444153247499604956595584653341419395134818015666153002268336786130774241987276569065636236540230768165894021794524190307245352778798733446963512442357966657324347818589589143531086091336660945371408909604830217205902290975507468116030252266336878401693205129317678785716676838661812916801417659795224810788464674382071537903951671156861217885895535380248382824752027910064782935996978161409264885159259544133154893993060557138940284707054534650870414985166379987205317375865949738668055858326921169576292116946682615210882524709715441251489632156246021504617563144347172056282696052396942000080805429162226400526394944332116394770844543172064837104802590075965056155880569848324759538486043846773714098721968007317562023442003818847642298811261905491184542246710243694337911978411657238626612779874224155177512565255036189304300173249953046177897616363011175986169891140606062655659979600071425815324887126170998415614274801913388557534766593750606376035347287699807578847000510313951239938082039349886818480746098580469810293720846130443977037072128526703510199861736412117461141551693765913962977325285217464284198394378248561555592009049079082956260984461145905179484047679095962179951345769503784095836101060389741927138280304554681689954687873185692828408918872478853931297503118399421553593781174602364668179735246112073166205197388181116834634171311936550129823384698509711627430645289500681340593616488633265267720290644476053561321720183427711220175788337442988479590649771159923718748208119707938073106205380590448658841805875555341223120732702501271804401232690047676131027996502363890189176146385027145280084818568308082340693541292451270023284522290091735824385314059743013606695883485171506640874597251780864533690820438444634000246012812556898281517152513337680744609751478345729670289639613135209890134929536442655624178047378132851209038675631897156907033243444329569187361034768219434879006486835611208118437853323938154765809837931880522696858574548990630242682652709380949332933333689164182953659394704044759289729241026017989720964045294210856989645987191882171646195635429762401931421562331551181219178002586609833254501706295678234729745383986064127353150980547824119915499872782256248747639668226239997527574288720356324835174193401105002420423423660211866873203128017332738660447751696081163541827827411452896233436020670067091842187758672081664715312434205463625718076403244559900117789725259139956146784390921925404063608402549529510492675920508090073500857066321490398812675464832653092003816445485612719077655545020331295683059313442883087846456670506646699474261976385755823254799010327286280964570941580704888416229294097629529453105842370176469520965775729958114487030168047606812503829561022110913240029709010447506039668359848236288874186949568949582554543854751913032769533032245310363960788248902684566816938978160488198791803262174239785061536727212576906240155231629879642934046484761311814854194049751667256744278887287541775677362660585654447935756115853603522969490208034678035991068261598060366880378388904286314621524073924507830389535344515796240040088638765804528401545879773604431877945312021751373919878239876378379781689298510085033278977717190682994857266821466103691138908328347944452905175993074140908745365597462061065025805141345078229268220040235606855819490754571820611653708942320027064684559435664457336502405336413376793715646963978103005596538279763677101312754925457313120324686374450807150038443689462125446844348404634584721932686080971537413283354678265635690820123562213543721335935027535978956311526304286686821158338775848316011773043363010041676189659624694025843994114440264617417336481566276243255819545927984104470567932361825107252366519934205804808273066762137212281314816982890586961262332794362501756433174914287521948688987653287398662708976684510039603886829264546406109075768004907873475829977424780995324057816971747914971339061302570630079312377993859977484366019484402371754939148881889508914345050885521368395290523444043228076915867593211447245134242207242874327882809964146611907639684460605595436623831543848973851170452125703788726759601045435064966261036030797737719150262955891781036261459724612885940860135872785389085631377888847466913412995926194827131972873735716452208793803429964205531710225658922779790117418161338485029994450444016127688075864558332064849682610978272770938404456812708416995656797927450328554196650318807287267915656602658955941135821224815202827780926459561483883202505976405363083122982543936169398082574990304623721688373177179909841583847562182146560015690535333713101923532504754366297987357478122485056736222255164792897342031938628399627829939636839133967160785262167612131523565925612237408695409789510160480988952205289552304855920199244562611412814025931839691872691495604111392786447739892462377093894625756695872077538108601256392751064922188338771826202283537004964585320689421446773906107119598748711087302514715234369751751592231770066521200193878202426740321835147377854307399482853362579351067058527821579118737092963797557375979020712784201324375145088168939729993286005615768110448925606494046173094141996703180386302551841267788116630687151163133300068178719422484139332862244036101282786573071607246956467160095485841740871286725482007128314050509148698750903334445341231778571838974168377686656315546249852203424188657927875059407290311296184447385617585208534601699839986490749193690163663844317870048732884858425491615923115029362701864894842121123011584635539951250995508103087110004284177636751060601184774364590210674617436572561282324968198541810651977701253402903599855795760558511787624068614414308833723973516987715904956060844505656025964823515759437345553840784261699778735169516286843078752362145417465280695382154510918519547224089885735414974634180169138837424083047044674520286144386574432928118445827775645793325334246415550222564376203880937462287930265532913074481572545120170504922801334641246225041954059812318300251334715545039755608932879856092479981625798391011452950388716451047576907416838946357319089861198723433954500754625910182678685692466589953837603148973412923295738568464196314597900210931389348141499275993050335341371586479798172580291929520312726623163106401679230552396672632073623750255226514032996161740219308633678828528752820512933246284575576355846015746031769846798813162320250408927688040344249436861699648305808170740612489393367892240219034325696080324966882496723396594289970765373418164404236756134810476751083478439016325431684985538376089390875623259862760803764009685912453725904517772288441052608863398842244801645257619626654304993212668129837134311292694841729612201715107955261196610971735146262847410266232457442370793070813685122114454973414033140650614110217495267186859701404129718072131409805004848810665436405580723944573087530385714527191533274903545471889253324797653535542485932593009212144678365363220879295600312818309605245220020318824630740648921378951070252150947617672482973154358283393105337308897197355517856313453907460769692134417775929384563893820036998632313327980477588207064197338022289781466091859433650335492248550278343036031465570743379245128861585424650057086929117014596111463831750682385235003328926441413433005131667231630859899500986737085063535628171002207426123091761806219919499859637500946647072944165853648886757549047584075121110571666610819690877625118786593599548175438432626643094293518159063523630681461771008994793968956666360461115540865016430964915818930741356072887681529975515190260795107001270761442008493517719034624136301930029779512395357017812791015967667689192810126750890069918328087495724674392289102531917542263621805927014431113515340391286249547045119226451213594275450577446374569057985030164867191829868510097243560658967672622996153090775697718936004051145389298271096898156042774250250194466380105690434518783469438636123957214645809584962593367743321082404713152216832035184511360536452502810488738208351980401434996616796967421324928808789151541168488878578015672986739743248867508227321332644007057212728273976518168449191733766462734859637537218765152902010348238532075350784585223865533945874384642821577519135378014400936341604434832577888759704669645180635302228264820051517436955501081032995387646551598722175498865419105224680387427175084168145764603877305179165320777370022090292932056687327921797387070146454270052684112426734029268951389367513737177814097935213866303756553038613433627149364891711290163500442682636851502218700346934331351816579126739600847890588257102851952199489389729340715990134975120678332770967839921581628389787642248278513250598298863936906272432274232737944266388585701165594260584334988571377733771682940382561521540299047007804053407676563841589825563335442940825474168126438830264549141951328076409733267608422933579307644125212607740622810694164735707646310108113080165495453728995555772927071226548507751592908788567043501213241740050233348164903150141567622167595827190939824448835572256189209682726117237439616946512899392773423690779660762656353651659492207384843806761800861647060258104030912458776088689836833718110639221008849923961089178456757293305193057123504842721945703373704513269552071203574485746026349395138905610557319555268902694704622615090352657714508788171908561637464628233049949485768524196745575701114309037607361865497459753977940431875453688623204886027322722874351838388734192199571785748781066940500912800580953262925882395040739443636103716288304393087568089798417657282774286555422781339495227284491987582615650058263368336708819187914412955701930658260401888436487955699339074036698734961297859703841707572904352425839533969495953061838368125860006917668094747788455124361509998984508954240718181134379466821143912015103941124575368480299998600612110778716370266344528833608977474655369198511061859908005920359402781920577100035203055507982104229680718557749006876720971602391654800638300907741005349819566086245812249517084925511826476774341404186177110691792860881868740487562943298821535132194165983663784129742262325673442115076472249117056153714563788941104034486701485286054005522587718684699853590092100985191155066250788679615893064877193762875102768990184785569826454912921536486304359009197620748983438810469730173006617476803515298976249385837964777362469748891510019031831901853796220768105338774185623584176838849817198847830483889641258367967916738830830720860096785753376356155376655359472628098940024889744747188624204487336941771065026790674786131875788868214734275429248040198520903271762070612337870269976205837999036042174912663350512762047752264353298481836255966446449415087091474089394951894881129751047670238079326115340042827255310302777142785756142502903224486439221794151344069811475198055158377433783159437872261136323266840946261442041144050949328490088405481173290396010475719311489259007715063600640178896203290343539118503641570161880813913654814921085874748556293835380794877328776679012200928894571786073911770089632274626550997095602244104964980910781430948190164873279380999284717028302123252463980637905195186060369418100200396127139663443963610187314067237162055307028737637328361196224491092144287145228179027350047677339681847600216830752105273937845537755311458578538817359793029240620031665649664517884497019064351629251308146943639319370981154783601568442934036230857021635750306402283472327057746445938647445056970385121230851846544355658836392658226227362891069235246972218571693328948059001702615485113247073505796386396862797963258401146869272975747418877943971743059736615262954753300600441716932402116825713244044115250672532139806682772766841693400139746881052577892233568876744490005020336368876510788105477244625860742640491863042506691425787918238657650851781239208453506334089007356603553702309820610439051976710169078482373934264124894335493839169582175928449675827371791386334556948524754275889682323397605321581780485598066630238670175932330580364101002883951654630206159064096042435720681941860268791956983568049994742049215270664085222642718003199024771429302978617546079390804351413219464532271582039413734563950719708834645446975223685657375404648742448015308918901980653078324356800777109972653408905736398824378882013568207733827370326458052051219518748756834484613926819128322402463407940757380955994291225469443812169149783137080124054727919791659759206486316420380396487691368477675462991884814081859349148036670925619171049149956528052068667692189930667495008604237589753510940713771736634601153125500908683306789843932944390207842457455170312844231202963094365635248369143163747670601876935022215435500195847270520308470351538941108295397565520913084809563248961472161026766910386969535244546836027535869376417876183056834620586273029877083516802457918686676314686249027738713169668854799626130157909891863747541597766167641293516576754654265831799698732324928125383194631044030246917373116846096516360311276529557832561852305229172348327157600683343284517072777447565157800977342700544519101037893519678164304937503221149676537992090230454068168890570115334555725974595530407722452697632213646542897849838894053390249126412067454395076405278770374886526032869691020895932920277203095591710322629608838686404903891326688741129543698514575086856173450905656668108474392333004620350765105735180506826938733396593034831946654352044581868798632709844607678847058729048686132434651034640838457025463806699562977611858019358467641578863523021127273356389255571475211508663514473100357895704058101417964407725827041438311993753286296515471493013974975708416988685322483893039250051519887183642078687661130686940635873398520123985655320598933284097941764364815759699167539098861904637952635437477459180269438583026576103434410947148082231783723572397474531184964937936159296233920230436472279883312048774014216623876090168984007842492839635733697019978497354081492313830238176615434359611519759060413386794706145715581380202053038826114989163803548825131075665166696671704332311592400658970909402756020720399071865203222935356257466191094212306849638432235641264678850095675750841649563404834919476763527427243039478673947662621739924723611243913422591664041006126839321703220056552908375194500172248194141137543685543373482401186914865507468994408542693125468790390421862527965654022024652852553033215119462241973332289793429861147923642348523556241594487944319906500681245846611992716866357037089792623397066809386634664828731085548028499873155112641883443183851782940943830605820873160187103338918637310583160943136938253111972770007316765921005057272188930733231215157134224820907002704350795660342895717751641383703136107127536397916229858347134758549084007566766196958026355256177598883434965666953218506407421701900473211160609968684788229832379130864102592051186403965242634763627804577283092361902888007696010348956897957632952179965349370708602624348306852479822449265084449696436363508369133471516867914094970972955901572454197842680688101916073633158546760381722717807578677653029764307044163083926536305880564159812380833200939385074901056454556012033327324355862006155326478686332744117824991671437018835542277830012783506277666971718607563946272427624320510440812815241635477562711907422110551802114133523537507292218615986585540029039666354327699101354824135393430212588625286253274492039998796735099248750771181525596859648567039480604352381989385247118002715430796131494533722183473116018458360328187727525650272401014162212769266912118578770930800792761910330534813966488790683696678649007094646924602432474303150093933257177944309813068569045373847788109150352640398475315399023849968142195324867188176041758938409091585488407361492370231009429448847170711251921697571905818257269244451228158790933475096434892819149235847221292347100435746410239003736096616816204413968576072116092140019617435781385849914254213916325461713563617712289165552188054154891787012429220914839802501943393498833526720341238283433438362684511939505581469315425281783676822253030312334210343724448320949329713605411570385234201925734329910091853314989986783320261919025274265040585122674832274756324110911345876274871079159867439226360000433179213165721377744438089245008114184913556622235299829381097300976516348511920428432387922025727568766918028834274326983234666836478849165160379363606319976213617190740944135686244079187401923772739230563226522464697534438125697919165107273105139031394393702724444078141956926371877654485845702772928818340241644422477507530892619185468959620576055778283632310582680602195044193798877831597208206311218570499134815959346458905991519766774035891127589726744161700209688037578268076644833374809601368584196950361894446770294175136634430811996735093863251074591965997848974946059751501574729167987332864333154073322095455051348838308919057143891740233989801968992531330885053928674628424802327482486200062089544380623638021400910838820342233023168205858435807519391734962587638093228207827609573256859865997582639794873976908745576007883810268054924546172993170416552811371961143054200223260811929346194409888722314179561958651601361217989821507641367253719863235682301279957045356749211135612712393745014097342578188281829100279964587934660084627612655786704936677982406562876633775009557693710443601266253004831029128377282915120378224996515467915684510728141729657399047306099420845883372543702521648392270538141661296653072945532304096706354340866499483715521940109361072436526925556127231980970352992661595538921190230415460803721872828499872936352107855292282656035590630186575899470945788373199187566205132515498144485394997012714771329394858311915741524690680510140508044896249690580531788102212139166962354500978654371703742593718678325032701403015172685688407919731311198808657021598762417093230383299315211190883806642453090138230434818070912870679212858086342262429867069701853323353556817529617515704714451521450614106947626084651753103730853575480216053453047115918546179858571846042089862280175868855262952809686763844814428473027283293449950817760485843812700407077146444631395759206297678294852396229330036568208975925950765121269114932810280401886127269288402074553524307362003160806831748625101370797741891067436111442310699285718326477169357794278133517246278599870725429745820041465859343783654336092670384443101124882165479999574324483894024591781784502131517197304015560489780438277719443149755952167910427635043250866047386771588022450381300237931080209674795124244591866052756319824769737496047379269595151082160987660290539945066016101240053583649592084258453011989910478232555052375479221080922594534876291219121184547993967648718416751583630965214890182040722593205183298355005155025127593228275849986181349925505660728196009750601271020918193207390255927943745806048541201609765341874598513915687360499663222772183900895515038306291848275081039750841429440313489422831057960914458106073988773833156886455953158964607605781444369985335705772452737397681178493750254910298228323145241735706217374326154312303923164882720897342828554947370453162444727885328186880383185839355945429510459816088313016803356509310532553454015911044987159593819017487620374232038229032576601891475889408630617194038544779807143262672103881758000077827500490859439169050465958994566004500289994003111667779304828326348395369381845094961423617858916293630216084332378277021348241585026710480152126108536080794914659695523345687379311016863773459063498767717891013096503272469996435217329823294690521891605186651161894565909153997199192018911108325241179943783626578557210945949204372098038603141863654292813239866791419991584247961672855069846687390866062457269537991282075837108051477633201025300818353903443217603918960524555096132106383086851010810206597558084428236404947830815092162024199776783201307289679913574928314901431864522347994971595707039280607927668313980749407939162707552637964972541556885523104563946772832031223851044292742605226431056460096701971884824332880497906886368997736017081246208152673266207012851733584028940393475196352601969015917855218186573340850167659527219053648375950584956038627849606818510633884523534621906443144180109177943539685770048253722842958755053749808216779792039338428921567235119626314204749324076738369986859753785791067457628661614903132053110693951676291784329515787289570565380316995445590130944319601393384258984575555784456174376922898604187917252499242156770330828466163345846287074013199953432861513536532859033212579728479590787714316225254827618781739554106610740953069946209098547908817607537115245148510882548017535441580706448805183014731164142438582509781132600822586948115852551245978405934236173779298772195995539626266808141250142290653170886175370663480107957313154992795620606680402746198483517042701916354740839638796029773340327895469467439793725995556944782840730285280395747934270800413567514794191402874145586418392206462189754426294765371141858092886046436906284094620293121761350908578290809940615507966224824636638125008137702653566346223966688680169713164207676725089008310939178075064452597615642887855492536349189058626474590550836778232843480088130083167675903113800011565852079826547555782726766633134663020260900496259754764526187149105782524605253035097600669883770545110561199792692229757546795484777499992705476685296989921490525698871373002924980748514997680460591431901150889098400496322682541463625210647195735361937952341586689452583648040065722072134828919346996931128135220409428114757652480234445481123573032986884265880819385526128474151268737868858457885907649188510431286360502007686624279046418371252876060011092056878929965018246517263652898803561654408348191446426402154189766944990872262668188703515238092353800064617725443412123481017539667124539624753014406362476625226694683027937943057893937912844960135801924881184925708522196645867155190021368127425256582199027255452109426320442475716822231702640223572754895579381981309272930392269103049049532347855864329494676641268957320978462565675141843278025242362915046072034736892934464865186702495922097713962645642495013147871507723390180885026539254143112330923487087884314886636344516721333543755334412090360325942056240062220505646085558371135252244355516362775618158182588618216818421126524464512779028205462166878927731312803003101506965032152702333095432578570277302783177468969876361086777236164598744976039152686454360526927374732282933288075543978297421087861724624538029457491716789760939227955336901867724056860513948751420442821315820917638780717111504710632325494751968666081641660687749000118940582843261167778745021199592070758506411249259750325289564973390115522838230962526421341796807019431443085423068342948633145200975527521868230241822545759171109261948941043259637052321998710495465566360861028097277375014927282094820489693746611576391706645605916595621589892280303957354792003847083084016528225110636103666942120821109331685868536595355671512457029923699989285847865572544926081139534782455456778791017177854676324707993697081221163354826695332725681691917900501158034085965674672819491013524354593883042285162178124702051172984956069201723473912350743040385497515881946315267905004951245561044558737088697745166199779376261070058347172831722460801963904200188616387430396265150318210854331197359177568463979656515858640879550586783028790175229239108040099409917433743890141594047520531776819232020242570220597544651528966767577726559984845212287662276703803987843712916631762983823584354089535385893949084518625831346189111429410478458855880933281722577358456813637451253931096673683052508883714001986352514198870884438582175457592217850043396218578330084339660355536669670167775466203745845202173274324723541332172265004008634627726557757070609361433768805341464751885060061052837624206972690354023456556713285029604423165614866028266882471705420502303771853896296288128059802747217406747710142442590739257028363183312574671913384079191844751600769843882237655160503289482021491519840407049868782611865335097275416751707555294841442430259621809255372631021786205874493241901080503823353513826699515128028990737764639309500101362230596496066018487459893046588517549979570272832194081900222006775355583561046654834476534398640092227004438333546591326203894016964021768882345684176210525386916386945793760574229228322533507818993191696325824886203854179683185979295117432577744223896252797960232189370315806317292088688575097766464909604809182075935832572265557562742334981492556016465300976640432186898662814618129760150215288961905498420749034650002760791928025828750154700900234305392574777212399261075385752235346358564554828637353902685809001090126504381383324609481134539513781522875111683701693982080696037637703863835376411617768216020524313574161150764406597988311552024839277098752407982957206158255874558541882197325882687213987163542961881711350116812008053712537426541196113550982340573696293245111630464119281289768211104700015562881684185792168142432515460430220211720875225435826882882371745377510071096393686001920207272086202160521903102582987880708106265789159067087000302592041938932535781301432971881438459454623568988316208087639065240934291598002500873784587492568619192917719642484542827004881300939364443144240258445998878102340580355150544430094312471325689989843618952594987716175405103500811765033501926428396561116409513532766918485938767776878966450127623173022439240199648163872289617878091670004195505469369738693042441663548635416233836374832372415174638301442032588422179218069699623119564105378145049877445614438932474385473198047924620967206319937260137212304141731352248032404291955556728022991423595228361043928674841484616548916585734153822905530207356474725613409038482681822580825334148715025959786234119957641765793339263707928150387612004527387280066083956708962624048611854210131855498974264711304864635323511852459377992940960704004557059541015171797476947653232612929418204254574022009683395686313396277528484553831054540645960080880139102113091199455741807520895119140273026812176921291027216459598256062263226532989490564054367037748586682821463436197354130027419243950625910302819147719425571290992565191204143602411676523435301046351020096352313344858556961198197770067069309496591202675366018554426374872947498344599212628085172426286255697378106927942123852941669570355219162682257514901876966414026438141364467744210821950217452030985588377705251103125352434867394327066312596632090454462184722815589237365188390841689894664565898610686083360949306149362699581778141174726669515972090485026025191022072471131910271285695256171056852912939373953017983942276607010581322051978868656738211793521223073585607093591261774013224151412151203977515741591205300169582904878180452223513485569058493115308833287734482581010352590475803357594743153167704253593702300496226177535868254066250098453378736940335793312479965537369979896350681190540165204660091698519918130904299945514022028635624422626960617360925279650302049958344937787355399227814407164915423373319192963491435922834951981102043647724843158562139631984637445928648544876693436567565748518290183356039616934877387750794831396233096497068029883513524020352617967321113060501279595281942596429835567440058111211446083541546780931111264818011354554724887839020699633504064695532669841397778756785308329415754386353668057083892343262165645290926597888016326023963086683404078463688070288134317958396760871011241640188017483997836250071043303765258051973636876837048563353022203422303080782208959352792843233406400639345770691688678152577588608718017158764326039223199517659792140874811719226962009388556467023449111410207642228577754631550510162498844162190375010933017069663946272233225238139868965960772732597852919344550479630003670798276761284384312648310337239956514866624852207197888345624904023129719238639930619525180163296278470071309330100990558101545720581745554633030596330692071726883423174871494626463710094462399092914753865302061545742324320373672815958777583295065101184432961718563121623745952360231552044638162664559254278254295722909625750821749692407826029050428003575785884528739376346657326044336694634374591965086388821494939907156966062313416711654312313093489821367258762583927881089560067698289498590419173758185945952946144478290529577014131353188779217901242693038039503457366297425730035271319273884400438266215713199616616899362455225165178018772169460638178430380261989203765189525519473325587881172684354987932942859772658010663841596560646382768853790051080901408426381209907917970452685013023857892426634309218874389738604644847812413856424030085346816977041005682105572919413101829697728541557247966014016642831317905334405425749744340862998854768112754288430869214031605259314893904327278542898137501102042172552921504481523629822374158998789533335947502025474605197462269860964690384639806714796441222809761135599160751520094190737875017916661628173223001792461639514616902384061052634879298835708600995567247930422296003357692662397197260548182238778718525180359742931756520474677521313614607451711865561819164236150082491010973447699153508095872445050380427472117670915556390973266286633324987764848713304513566072759911618864156950333668519611056356734040233538091634661293563837266413335091961883229946248495255302833121554277245954152529744322066542491154822539868488808227454717252632683358035523082692054193395436717973542014339414567378035685227984984930258090245106734238845455573870097397742951210144811492864031953285189266325678421486564882605797885465406450779915787902849928929281860007724000503854942994815539239657783169193250280567361505460152322078380084699271585524195824248609958594846370563272449183991819364011649320601184293221589797430386670813950789180139921635518994895254829870211999029814874403208693312351354536921308937730302577134267336159685074979340189060540448036060104866070105797797060261138213255736116868030437785866071265041081084585116386106890575202036269725633599711273693283961118110971094705731434584621849748024400995037467678180623063486347158000451950838120975610734492497119891199114978056457654874663288952246748099202521547335984924721904471755755819965925674199161382191352682662029389987375674377662633712972293550924465866780845870032867843567642868939501905571293898573916065415969421738717576174959501775278668046298260186211014033298397835290783968955751934706638152857684654748191703342578639077615206444237271275049451598942844360020560245397191583790369327159580543844733881023721872394893482469443867808430055051437181396647642788335421093312927024847645593196290170685706965573030104903000616482737646631968228829101975029930761473313426637895250258424148720683945650655338666696716258448279689432836152655922700284837717094575542678786801052451199712693919930942470893306821720829162774672114314918510153954587581567263508887229464180837089632579497338177760281220937476302315023287494861674465306780648829357355367886726671994601186327291184966955509910814989189856329605789209179482017697295329090830757598761632014610723705629830570429577284220075972941105233529854165679943819530384175007147831291714193285623318483088170442221113450055793500168146237336783335793717703882367109673928693036737193157412312447066303115056978543902208127794934961107527790507645826432480441203314807760494525976729759748821749894560244200011293662506483244257698104311037457628361514517330014339139389280073959679415937460308171263635883669026310739356029270031397936691201603246550842045171125724257289287637737457617556588260692963685471566756485011052875208681794370839562871143321905885064213894253360601759484023610461128569353200567343255007522681662363487565341379228218239938581985603981969743882141858234651170495754624740564936910795678260126121317329142827030042491689445079954853880457089064565121631199839037052250762239776547183793752100122971164163939661246436753339913321767031951629605855180408201288830265713535131452453289448929768252375948298024461797391255537174554657212141475267086176731402532360993335207309810971471475217192979317785904876777798719309791102125591014204094275717814878528234781539965416731199463332102842223667400799034857936146352317425920794824156473700355274062460201024712138833890185081323596480226718218633173378266912361315695100757810665734242032608753609071669428561133344297088447168925242125726484272414775098969348938228374094853408274674034409289256824271185127256773643214067984205897189363297048102601017550427867645097331476516727154862466643362051616141283074098664938905939948335751055656147129523387410868072787634685083764454377827171064820715894087476201537715356262539158395178618841965727917796143815973938143993826500181092361329991107154067927383445372590540435158814794032768816808657621229631954852038606360278938754363379168684265603674570591313095656903907542655312377872028583039113944893637913091513428797015795945792223276684888048273075780559134011817133593072928031569674129993524467556272022625502687207122749939707051102228489214245834660934698667566926991384533595774422565570438250053780339142563955667414548658477134915518829164811085228044608777004560733416065278435451086276674079509831472657174345564371933176561728891601779549944207392858168808248057299668534610278121244706741184553845403405697675940161817689420240434919405737582515838452122676693256492018376819431271731757161342880794832137132153500198437941992058787956520572297528594671929096437103444085082265371243769437550388608265092328511521111204688509768686177426932151836470226397590993349862231948582341138220509033403571879766900118109606916753455392188087998239299272163844865376097634025633671163731205722886464972215212537633148602667447346198995230907451871875001454885643868994614434959485150718651718172397327776939201846617715574766761199302609972518144824446968650868452606228281984983766551666084073732736223864098407038233046433934037607169194965158246523813500296310061020884748187542874517024174070336618280465802785304565586251218824380967631526781562515295719168720295143901722766453447732856031355339183641003667498110398226990809934862490070653575268953368349491125923579301497443040307483120464085097188783357741313143227504077155310403570449826342402589510465562849142744340209246050064898206315292460616339341927882397873744663965613533447637322093365240214797400269772258414965265124344769470436236692329907881416046528808809901574052153958772268050925626615303299729561862595846301680211506594788818751286423221157482715684294117232654618629408983555945082525897117638417914235094293939799159110235634635984946406677063177243205572872783262782931610275162279834915433579858032530527171974064684485254120804417468061207417904968375282859201022539839698837001184766447842427741551893441249698856751082129639033694978221451742796109667060799325460357151336659409618847352084558230804162919771566461344876367508396638932051520839883660167198485546114062855644361902775251515042225559535498307626437199586213868319391522024783012285173389219480246481779812323025371165510845128256136173899974051135125854280477532873298138275403807087880342653774548588494861799076159334968723464438748599212391114266780762427761094802759872941284475707523420305396886756143875419212852495099596465844597036240499480223215549375505579208999466329023063305917677639545278854601809501150293462911455144149521712472539877942638181968906545563803617167349696517713978093067430932158010218425717082815762012028302057823599833429257423862306657441146214765781372091106226377999986988036551777143972689582584834184272327289411882915105185071743296822249457236048822344828654266413894151936469155528917649881977069126938918851458111034609365447918695327134645175549555683102348324835197854644724567576954658874647674455310700647221024396097472405614346724799691850242928980576128244016258130100118556637493341079577742622428857111821190845568071079689672618945220667722292014427342479667663605317407094476720906900288710695633841375530065551697059100118241185408755942248229937912665235106459999474670068269453662737370809796865040935068410432710660481811400713432079533944025286254129098151176880540273623386775966593085455861657455904440666759743929569637780068061320714295705210495240611838379903325383264179412015993414580410766446459431410772666910140974215603381140882071392939880312633392866012651848532507198001386307729879017538329627128236318860146556183452265559113086354259941278315536423013660422660890183032188374684109808037216432910794562249748049095273162495082506108241334471545223202686119045794310257037494715301805730376070196133255985833284992707433425389558206627847165945919106024823262643374078385666454346070834827460241857755619510423135321875015554786298444016837971967938337874113514176393922395201028777497207633605785521733639244311530174782154273812162194196442552302937098065573184040235483875573479103167031841229658442802857303457221467427757185066854807031444774222178745141734649583151405401750435989917531925141490794826353195245236504678917727150846898391671865559571782915817319706032867460272272486368500925463014599525109969806850377825788171880814414748880447471593924659953187467137084291334933585407736996820129535187555627757862015768338766849578532635364987533891608704285219852151894027615814086463405767697110834990532865713991127217984873515480227057338462248362461928400659218915032862361063337289737274671608317601875207302766348490310626865603154440146151123016335578470779736901534012169107077767224436254276678903567448588213743596248367755996434876866747424049641164455534284505103754168974675133978715119233498734851074728226351141517545878346053970576250696538469014997520923962655910681821211939279282079955291883725675961791548744861385610475911891262117676422011413563501188538286437700051203001335770116904802044025428866508449510839915308414694807474873713115013972659156279965677884619691634176015429229817067067761057250941938784355253153426336297724073448375811736793467239329372397423715817771708011185599535072474262583055523270696020639167423533511917654004177564418431027165278663879837288876509091698123212072179742880099400231498761176105531094417350791883273355333633748462599824653124252436748661498277994628396654170044883252242182269824172482581571864842506737499326640353955840764194169014201658722022591997600723092158780326720407820879302627791174742009928390941395368894288797992480604758305812866113843808874717032625903102951720576168166480975970446086958157376109928734109831286032904897766229352685294022577300786141995975659714118057990795305273486609834823216339122624163501523553680046230727145753732080838412928254418546032498898378952504609493918163996446480132065220329450080997578256307812734069497381500785053237174459701724486652286999640481817202202373022789192344560847331082620032946863508086138953768868128126654320143382627414426429666191462852015706342041015508716526678123504364897032457020189205095298685897078944361219227499618426790935182638336915247986641396676706588207558325655535002093565141141883849552440608137670349466673576432741800448094282501525634526414140375861397266911786782162423749118931017673779350306165322215512365882478876357148090007651285696388813206187921477242836116464573791852064393510117546787762459088652982517525906956058062983826514969487417444416561795110783856131781982730839313891164632556809500686197288270573831964845440841371436577545593122664444382755879432084173468220962123777238699207026344761890224075443501689504008641020913787485404368958808966509314011897733555598749005627395016570827236327554891154782245628134231326683389326993805781080456208097184386165323117381457231322719791593088788160638969434155474769451652675733776171788384301013603815552873727281578878494987845225877826877784421467389922350325984033330847535853085770494211256757354213648255239803882320896642266869534163844948075335288525955375058980809115968479324211963953032674446852509623420712525696037660790056312294415462976712844421732235308399068177115364705371724878396229857934174411654214650633534404667469116556799622636282731740869332651063903536187460023172087767349594857303637539619591762769877216963344637641632733965526797794966155796533044700209104160656379122711831912092394034207684142814708425514827597719385301634087782232173164348532494417252765947005326026442424862217168484000119059515805805982464099010516579749491124206565467825534518896828660479294855503860782723044283004040360770979052778565834261002550193987810763369674513795671766948298389220346116102083368652793376137932561389868408614541454454690331757214130827750345627518130618172310755262195049518113627331861582817146451796613640527129301342304644860192110907185839456672720657789605412806786558751809640158571542421574038046467251290336676419539031871593721158728151536935186118336576335316788962075783381251614111513877420818566142390450863509529608922825973733483296902361418176795469077934290096692957296309601964792979090866839308652609247689015626899558196838756137353222577940254597725609460513943327500568774532024106721407897003548981027256289588277948471153207360837913642580669308391491417721801055916591598729404115799094651611454779285389405248649720003722758206257009489678233828510215485887551986048685955691371029731029675459150211845165704349885641248793617057046153209149396053948931151991267323445324569324382669228761952725032252950728312801597144076820462293449096075624040140392015668881113952316459957252767444590082328842036243433759173211190332143710255853733089406445587143227403184356830383141480529616962225076356265680593192569250774094519783829683007766919952293582752018385358246408144636507547044108104459086446722987860920857516339419245595521936591870493407762984155428204953579636107863347572946385514764194352812616774177506943051161371075029747377303449656571942260103213971340709156610068858885766719039257169023967837989277571924317361824214345892810783894560846519574663375097277750264171443517660513545609316322130438326295544931845591196298068571117773112206110116227993443943303872436360100556858433615246264944333121559509647734331431658540186365073640686576650173968563568501032681931975785073911756504491917184863061125115692661897314853078918689818018255507695161595887097820107356750713947977127991065899544365622628444961169834390042248811561352839291366694177293110469378899554187317604617600190267967863082831517253201062294419947596180336978209347718439060396168865888074372401734500488546508614223148789539903905787320471392064877732298316341148174067857625611011750234690951595243175474905267509797063821927008061103561585296656744366970547592811957923541241915077958113667066884898414048790852419218567865722346827520146086619535994614138595093691563644846313539884194841195228571687302379155261849736211247994283475694058246405275178409553555253269171439908128447772260764630861019614466321374651932135523293717631608710243165601138970281512492513321361857707831042510096930680387326408514395758363029181799769826378253196539001681677147551272152123289842641119123479112070748583919800435823039979769731439972696946061503429048820348774916042488266558664375336834024872625507260777528549999086900560299136763928550574226362968020625939567513937727977275107027523291749302220785498366970763702178073738264497907976472869190821700438795453632552762645061789461322051036009933965239632215437136603972677402603446930798579826780930935389904561082670756539244900111283794320651842653452164837415360816589282242751721798590833497716196750545513877804971457347260140539383450073351468433273164212144037420277315820507004372355577352447408087477679516964468743560285459505979478735652482085542673920420682207803535388511591546486613148560269200705545539387687825684352652079684459112989251009138996307551667037513931222096586737747326583473279907823793607315136980014833540604768128877617018109600384606542880191189938069410062248818551731302412992746166158738845325867726104823216915596316243452194652522913715419462403649621320223314706281323259214195443172756301006647101637819784024772780932411872989759008540892471510522599448858407854835075707358715447677976571497279799891049973053408652673837580647411560106900668064220029344259797727043948569629825644171175783103918353066119389544579253411417510978362897766057388306439055747835269873614044503610982604008352166302062798311566661416311596963767633292912815049472350381040473253673191849575708255932473689411903800019595219368206846378877164705592851567218888469038609485717714534256987422193406018762499169131073953188433698897061042965699091712261745211460084611177393094511836783427944519544851795259903084637741960928589178432946073882090790042132930670300158248927358344347350838671943945826347897762542686574376300565561888899414634802546273115774277505049480594057955126348205758247689312070836688594141735841047281042989928664340405574538238056023888766523720931541388682374773220230674867640345813418028362363736639793626502925850761118839985529663904675730277917398578736016112164003833925265464922569145212687350738420731489917759347974329821200620283391348275621590162153849659836659445844146269427123836101650700451161143729253921736372545238424146114855008008267254683529190201001181414692243452518120643889019012081127544821140673894051324420962209759599387414532612789120106674856319001775118777739175739068826298803968027403263113134897264104084999546909828193871023021160600647057492931640131223948073901622195463361296218068579065975373994756931375951803372466360612287475450191127164345677897845235104914270608761478661292635044174334899799301882826668931890295257581322233271249763467714902028494054190875745806767420011081062649122142617641736986220676606647590174382046815406633864930473408250950289021207717667376645533590285081483322023816366448336809312743555769005785754052782961224699007250873788990010765361860635429808048426556939322474719365863635120527542133578547916560151062986272082974370450161299817122064545736073473626862980997068004259668510547180949085801364911693953760811476432584439794281567462827511082817708272061682530498655713487125798363788183944669673337448853091884450511264619019722828284700193129682472063090239420935092568674497048815892546108283751945392822106642417330574490622697029442419771840251881383456090516539128389201052064960902712852502980107466409090460801849587477587154817398599627001524880399558928299086312053400156772161778747127494903557357003977354660692059849625454155490912121566337695923433930152123640336697043971877187470334407505503620971712195726744852341910516055123211789277968025081217693596819683345254296249241226176986049573878825442866812414813903971578131148496086449747263027323631484430892356146523057511375032390511662282239461462305506733708519448463130117218440820764944130385912363055975340752428372568377863816931292138873564839636692941034310396820920573741539623854887541528934807124895505497844825243489233042584638855838725248166492803880451693147262639776153680307441918499593794424773883531320578126322029627780827082519601371423838280092447459028566339896006072702366218357847465521965577793950663636764633597335277952359972260003630976581604643311760915026771075276865787483162923452488998013454481010135448598371573324528844554759390123193103820492640612663008661229373273843567649326861226293975637224220601994283324867269345233568591007990828534728135213044016851367332450615150834072378390667948533542250568254084864159147556524487672187901487764353134325596636388369398816936134972257386381411897542505205479787842409858694652381607180088258837650972523958703529348554891437188361359483600540547236927818592714152308757210441853324038426354875813632254224172855072709178597347120054445766043056494029780380240224012514224699537242444191225674776398024307871562527146396407486218497691118748863667072366987757763888091229169660262114861980003684292582400598417320841423740706954434353399801417998153248327389521585303703360320264254785786789871845266375720545375410395270706249880640107056168332802786123715474047264526351416626068831115579741071912912695314578442837985364427993380194587305471318375064830178288121789587592854247124752428365337835494246907727522505238915684626375809690982766670000447723926537143903822433071460607188708705608664028224605828995564687394455935670975329474372697348506989005180151580275701054150895263082139607667104740730400491084056328736083465149882412260859045219973574705516344449612398001966605373119920136686280088495657445931950953046591136632297930044189789897212346922613637774482169616859513396979271971238308638825922914099504415093781743830627749045200744918367863768958447081399842049551599337161728080635339090676697033878314877553287093742729692513190430186091665736560646630736212492388744815028869689231879130112607684897105224328707160930526409071635169508265667487392561453925027605586849033938254319414207465589440543367572116927801472482616436879196313311669116853973377297641992591795382183127556279680012860029667394702138508415707563460732377008797963617358072415546827108416996932114006958315265936294722678173663911459982507515282017315006122332802660950854703258429804594724816953272572199706314882064288998323105174704942779709490454212336501972142746774342320676809422871765521248578742316666176434009821183826690557872352238847494016304496641542054043952019443541972577907624936548352247919609235230375619911995495469690213421253798310989488017256145211902986986663403364350653026274925570560370753168559393527648428875254974527563081011352352782643167528380699866584165680379792875313549694089111970821575049285833143749692887666348040024755351220791581497457725550060497599680469402550148981447886090616994102482564052148667165538723072894898269502240777317125435498030399331752024899455977200724376710354562978217845288619829352977874553671833862181831686922870178780898442169455302357755921331385879117655022740623108650558684616693869233242433625964193431375102290811912301664426163555973030213013969120400125417373369075546726124537187984155695180484222349403949725320170177482429409866734577241681609285561348006016940385684443693288831171679936369146119133880612947812969999474229832177053981206919487750349339888509649620824341190597073862690886243137610229319941837456949715727377296256378593848337656149952948929587452458962021292536185264113504301631493530281718444364193846438161411903719800022200256096739751431748123129272131487938890414947137224614058663022445446315075469756178630903179371973993509431002335470668883894473163279515249065626343225609198397586120978819598097893477665025782428702018252145409488211521275843346958277280586064105214012499794386957479921911196214147143489681112026315635622807185942688727735715703556800185558788848100695053196298539874258850157071533379481240955582479138493670548746750851103357909453963643801528459035919596639664498775059730901319914791730242609731560661205603775208701350817161309683030927973225578962479256956025313650855502048390943320747512325007007432529467515294102120611641483195568973851265494514217745502449978253018399602356593368427749131135815209465618321457105187582542802238421871708237487710248263914020455603538600915766571712960836335119010224995659751185788107944404053871932287336031333526813226227681460370140248079998248603124506028467961213318795967555292209362178882620716485683401239888227455170499815910610313840919153542820439606052392760459125122902479919044129276582564251718270005824643651002838581845907977155689973433240122545349185474092307963883483231086599864537814761901784094803976612183280482257299871395249372619370858033098407573474725730690577329726770880393955088965425417058754349090101702500323428766422178734966352817647643726298721076781662253316302242382247173849541053316752979364948821385280848081793155408219404421410402828596902352069203901192831205476318318305904217477325475317600201957728797496371123728636420580885143116057187041291997510176326565733491157852220601489386054252685190419150485378176540276244274894516444292308297721176363917843767033785382703273051509956942907379192133823517968672092570761776979518736128816882459433796519064703185263785024596442158789803625584294976894881895166584421061976660131581945705519388356483858622559727130158659103914783695698375224332475659725464101743128656177313353372516982742274417082025825869198732620386981651695262087493277160731485002818042736936149305856017197449068926943702657081440328052691986882953941218041489696605338822703295775705955295195805173222514778767581267787003808772746836982428391806373505092217129419771640232367928132116495596404418913251374331489032402661146055349808491296915018032041180111700624491633721806065169710380478445167301317955759007658540162227536581252259099272848479006073515520917660211666677279418559953433265220711017602600029878665948714582283194873080454886457839864065621372435977381029894673812260018086375098781049663006874879535885302281922290117694089928528807302969023367812993683223852631419950639759648554495708833253270446235452961987709185025907684049242426078471467524488959233470020368605311607366685510581494055450677465389805719234486320069022848644209341697432508060072794192131760783484316533434936129930881325337302356238804385907172970433600239030439457092046695433559421917789241222653253314043864444173869298148731801137815943425684452990724730702744260979970046987672583996444753486696631057150823089391183897878590532348095292899476070103468703751599893600556348596276554476238369739832980173160840907628416658119641546753996666064138336810607399545583641830682610115481633520270101258703996805819115359980356158864849188723183708438521915380809872937112211199833687916135712109336383243038388791347836500527844928324622335128480901787040408674048134736954830693949836340891960222864099649131634386005615594947797584438591305417395918791711029505077254424109932576927526491395787667973395456775624323288425719572837348708989992790184903946156164567905027539129887338287672857938117877709508005265161834404333144736946743624880700705388432223123730747966317503870156440574515871172523969908206576078324626898924103758930211706151766481492277147239635532369151913397559697732888457017663975609780398099951797902973301117745923291515411611775235310459345971706092996416739523104661441912727947104511946791784472134664027955818194848864306375534402240743124930141263942182075082479545704646533568186851647902406146506054307813395073282227453321166203830769979136055178217404476648725085222563807420714523269791466418262216032315578925618397595835958919030709134774109038656503396383150043877799272306755106007174425835501969667269142231123402732931944433507324499465057113303063524006735834866183451766726180659356188812275980085883968625355560323482477052261454407373138715922173664115653971278761598525165864843304995834527601440792685389406650666183081121666579975386458813627249919775086554145362592120614349191936183150853823014264414291003140508607669283832011695933126381737470573993121771623805549910753931115201049193005812017492388603071084068293173623947179494933785848872372575256635161911133251329003284806631006349368818501995627033723033110793320253346812418974934066531553886967976440496911542484899514619200428394649218179200708443048892528920306986965025857842617366080529156110003538403137828185462331406633163014824106340359869530330863214705497527795437090183548093154976302169609640143328743493433802109362783253783928592931175145159996275918567804233481199623444491057299382443673512232364435130610900399334210564452851283501177435287799752577994647148819543403359640543426486849696145659908305788525310053480317220294628235649093377174870348342975760145732691547053020012042096038561505398319123793873847243842211716356056878047661741461429286988149132473785038988453627243431205142218172243056492202763382939602231230593738566227880606731072437395278161451338791312286503539144187535617176183500143268250723178140914400950270795426644444360565271885708187155278019227167738652977748082208663380402724807904996250375222787969171458665332136849513333813815879957315422693102436237497523785853829301516578369807412822896509035467303336160350994684352611859581402090137222487289616644879574350453714607201715112264342985259861988364077317219007426923678782921696846721225621579477662511844488695374594695283606928621848530482039521403427034956687651823774991045928331382351240800022339201428779838536136103789042710905726232660575672376530606781299431654972309321557388743579878353356589110966171811434780098374569658795508713174862428181509141957631771174761295764547497131405063373781821717503069444809902445763591952778818637324462223227074200949472520846740083047631348952538003144104299641167393061658834183136181717002463201642338248258064255007370038873718937401781003257721313809628144770355708260124255337581816143758002084173666207578895549662158493828752320069987912010662422333730494286395469616651377732947716263181401170669125772240491870278610399005052807219636761586219362633067937627957739961191441691181173851916835610660755694212115402082934708028338611067094561515900364029666122377638219781257174874163792617411754898038743545714597368614410976050693680809357074409423741186735372623327356658155676338896142951998622604518681730274509590913768987837033242397004783987795080990791319665201957671977511331264104050378948769319111258194500726367391660485356371266478813679591250525957320605428585490295542289139168319576737310063824392888396423271205176806546003290968115287448543012617177047996885064599829656537010056492743240225036229824340977857404706522144493461002472247208726801713495686894876969591273260071691753255230521437736522296811070020499672136646205459307947292662911678726210922668338470883813862877076528044734035929792003562723094349603105509420116385913380691256971953982517873385950725746288273746323931428279564869776327673593778968707783082678053950217706012654877660773660939171034010031961577139885533863599344226260662002226276742266140950257144551968244812059061636613048812772695178527329312555687122540569272587100915536000231844664970094987058110481464649302673603525354192195880155381372770911236256786780067514712080805369828331914928961318770390087528824542387541724329951169431241297237901668956951173474296413206673764141893344407246912834121317802469919316819709877524694030639390504159440616708151974089984974525539615315166219239676857854242913636521623265141088635357419741229858778177392532825344787447049158588784379583472151260709817405326682835909162411804776667222550044929653210401200015469121587521405581588829232880246418677441117557164269765830926660023012606264958543618071221643070720739152091020152062547479742389994423158979765860028235517424722766981565726693424835179433666449702022534278033985682092468394110946303999940466924875176658691521504846167659651775367236512972611295586582753897046069425985255554335345659400582105266655781882703596544986954520151954208949937715959389598324485003598177057983209633843952507629475775195388519873741732684546518735703312832743914185651857682257303715343389199414727217866373072766574320252911136474252647837841269176475781970776480799052823465816534606857889922770907010507636495145934899432474523191359776058042239182674419931781960818368941213220043762032249310585459547435795582745399307484383670676771957286712374495340866284380895604475894849401087684056684786368822344012685530906861093231486933886239691490120606261789314367530329554937664729810448309674253387252944642974460853367083903917421642763029154779405707345103316679118631428545619316610777420503927412536876968686999791885825628851653123392004196454394266198997349724890857884723255976598994409497141341851284493948596443336554255673702629089385046478225229440833065617976588422644723865795671778636827050627277179926263868751099847805746892757550562189965672034462564784988701886630872769094363396399468118490289424251889171132147873855451197435441754712426090139414372870651101088357570334414249465314538833033028216737699295296879111890736253580623833364151668422397992813755859413718771931051951108522683839181752658248822481582561520904951211299310103844780334185662156231860209870564680300528794478716213127540424337872192788278335902319453073633757622687534522612270660274416580038943697391494305396172857812872939344045517629471941086726521756827693984485713957079667289173451005523933708957775219642330241626024913402477846249213283579904315131874603089450151188989121666457062497549008366132356514009089254173299796117868876714531673317300077653806795738335001870670246458496063344407003035538389327698069114273509684354549539917265949860653856122567858509646354095292716155395811975659193202104071448410237963206282706712717593409990120212862068874323145372626588207824892892585654880644257133677730751750275413071296327098503325355550999195403568067497785876395608393145739720260572923176824002097694268082493169442684910895707015807520551299127469591014195492715558362606993345488361813337489605786942848725747525416586863602786619394642612393735360328584453136800526435330005006608555567657263667908271537192358211585543161069447813169687477063295526405712621295837492152775701627054635984083736619287488964375644401286584039947398615211178311815019481683420942985638348217687631105111449008695657219564718589373207669629752549181281556507911548398795214704932964666745825725078174765007817884743651799321301538370881316151432820920526019654101186134977908056763373234842468496399013777811701949650222718200326510683539304834433178823579325233934212914078153718664347480319930986804302280648718310860404778888070739473789196042931647413405140898457138659588809041479500388494309609334099058305356669473362021270710981000826056789113429552416294819352285906803789214096996807239110692730196512893321651103150361809251255321568675040464954315020528304539648698795026131047319080083657745706707932956652534499504582970735654543204602281394273729707422911337347141471631716464479079100034620496455398077380437141732714523094523272602827324684808772368434837684688934579381622523651952602522481913686049174020248509365717485282454283452486627977493035654013235706942829606281269342216219358913583674712418786497002594916780476980436412629534532896896453807771784573610666933634312752624385437923777502073388845183292429832420801242451518525090923475716120595475386165149529795329961424282083380051818970220074251481391513546430413214831009170315053106167444416460411569451587906324675762385436815904135937544654020114230894315706193786799620980246254804452876815160731816193702930493642571529222812379347958500959815762314497484032975590857769203091141920017969789203303610765093866999297503224975288999410436356206017429743469448352557838674522212004935178400143719746033287872930658917850739476280718844991653873802970310495388483624768436475558800617880098825438807440848850707561576358763974376743203067326892094921447470078504666405500703435567552366842353942162778014609255961933287957495873137228954791404860763326370310153885012604608318712170338352781878603521771174092027711614110172354392747334597567827262163761442107540340940092995554627803168881891483065611740291094743354577730258763327587952022514025375255085784091879234297695971738826331677711791082504048525749683378268573234532715137694140707452354885807313421541457947652706245906241796751603240650400959020924529091379847286518116739219559578347336933380918839801924724908229035422869274309190348027292559333298073097592603324095551882883902924326444254213473631097983346313693665960994107177282724147930964313761667773286844146688873146958272071563662192215810905056255195168767364727025953857749965018838981545420110138157510354265979999234941136457921060581516022371082404647151325370167633318486024175457192166927802492517517060354099882266562131449079711785995620962030902110782064168918793279739806236316618199166565147624841048911872501452622857284494949236872170655766911429342889291554254806955311677546813087177282438557964831629601082687084792366627979120364010646089303054874038138678572997207914446810409663661907951633270774725071678070382415776813121547994575167620647562278293617296757131509641235667759506560896297018185013244759273344920949662117854693344887329378328956767501783316636274686289437179714303384455850384815392287457583871987777292176136118264341621432383786142929017066800394326391354520918239629306248864457551017926552438999199917393986754214960895272350002739334601912820901571415381520657289407330961054281220560609879494035820792581224610074634609192195137164642167146974456874415452372167708593167908831677558566853421526123333444777919964657385811676298037312057769613851081032623769155844034785436792194800334967816020913975732635504064843941065263785399377380402572037790153276171790280775218164476211470087482954532891881221620165546963378912637243715405919192961413316666205299331329049002355672541411392664950838131875149055330755459669969061872419107797234829215624270242362863857773776249952416731855599635196096834193700295539329695403089177522711734629765132963994555634058430646464109954283654556393239263519491884346972188698006854947389445503873379229155189977265536833768286577165341007833284923124956503478778303663393687879592622189473348196253187863594115917306588232099841545372808462784584859596702788110910150747777028095110548830531092396535849647384170694255988392152708651400809426451179754325666703618631905491455077386307536698323431578234020504651528030934510559992340913871198864351828425320510762209711518502165669374229856691887458437828771352803285613924691314596256733539282666872451055399132002829250625079253049223077157273199007137812748720294195749276784276813000687615184387095287248422679944495698431222502675782584975293812687386041775936969705291932585327848761520216551462348077890080134468761458872380177585361812779721845865815240126078509697649849026959497348810613048851167737137676270776173923635159590168939969605915085791938735151479982596014784192010950280262423393874257573705335244200511081034443932336789116577535147034834905231915470396123549660750010852958392150761052009385070638652854195966416099077513221802410766080485132976604276591675129697415673171464845071369542839529719602743948868088625497299266971839821087498695994197697021978634312052600602355467241607906056754194923350736145116466001262149250179771151728501808277545850348662716050377567593059371849604824019429605008188524987120695192464838086439269833592476685736936278769907646927059860767819937318864217235252034295411184908382106029575834117991677846367922433405761527563864664762269651083523270308472847502664739236486801082985283478071893905878252896177270438310488262182700843056788869170264137192654205214898599428727754651838997192138871969166856790807676981477905618504017322479683948859176347047132319617068639016365412487790446634906669986394105510528937696888570700502569042953758404086585863684166395536436417455973099070246720837327959636367359705368283426960869138649488819946171131897395651879059314579836821499450712971553627922563727770447564347361474240921889927055209555457691804142293350904374940504081426189682978288212321574765954990937346611035020549853875766478418494368357622550844555610819773949877122420370302305717052616898144843925882879743620599132076686455633632188008045535667731799719956497231205674795395249355758766225196962013322870594790680693803600214468313338127596472759090641563278502995251431293756068528735945103939249770642868363959882873026690791682381702594481399375385572957040383483352620710616800020921784976793130678186964399888829165059523054996591871365875830625873962906211202688946001191525844296309242657701831638544897188091014751028328045272394216719705099746954578357233269437853039746460921607482765630171389895861964028532520197493569890051788480098939687523969420066978511883076232166857020328313663054241313566452303601418425432428096438741529172197938207531372707023239963160202983772130253887636428441645999991102153750893905788842655886496647135381559459887644265590596733558471885238280949263485450097085861848268567473804006189369159478453616598953062453901876324304979654673612312291833175626475832844157455404310210905532348081306551328989148669611278125105843316242527289853555006405208604134958817422892289179501680256671105394170739303575314180256414801475645473736217511232804412235146262096629769770540988351213707865096144891952407431008744245348095578929907350206915331878927992825282331249528883256686044092329761427956186262460030360311790167321253768037996165364299075065569704824616039143884619466685352824021431952832990259531933763281147728010603221513399330931006472419877878274153002229079257623733830792650005911591803065602235819444698652495680809037286511226549433609683499422673584915327243888889300142896091976447993666353454454599608772959639890988197245040167177594799562052102835155794699817052311200491272400073950276387143883863024792414493225027446892501373977835017579109917703926176853013602629621151351873681683592518291510656668488462733180536267141510616965600221982233893121014313563746184588388178236755279620777060425542385724737758605556623900808528388328741092842399531336756525732784339546467875820445669772871786105005956453683153101511309244669569313569007783520802508622882638865271433096957212878112120223383555495879376113018331151741052947984532550992033342061234775081402261612825598920807278737537493657518981725797536810026163262174216721451177541864581895578154900993155679621372823959420368215210468311148040907405468363881701530428422564948217013610008913009505520009513289213587498922273654935680661563642876463708616681528006455881409113647368514223173576779871339306288758339919649304141339465126285219094488309626772848066896589351639513594463307816790015314922649617015903855427963288055945435256418837813434065429839243041143103443080816761707357128726103093890633337857029449795668517455551938483471463316803719620846258158106465665603256382999308296456358141035516468588292317762384851760852625682910670188158601121152628385120004405110376280848675873193677505735273535835648011253093201279467989685788049587960347590652548792743918461278721372315829250667097156760775075460095791399437022686381472857086289939122463092386209884513980592309251713499993060369668940432267357688527207863451670431065875738521303890196063269770422242443438058957137695388029041290212417225493091947674633691923494923128330355805575379819596216615056244303857573091105457763305419641908365505428640107003751406300048814345205396824541666414640431292727893364461865687752495461899300515373448157890866465294735500722736410557475030032697739530637140859963808747914633777003500741907288012412646205588426032252808602345945104215915486815277235435509153054158370230808145476218525582859961511191812511126548722115148784143685418143201343289355136679304579817164480881574640997253981383083166501637109040848759986826181301706523250379639022147452618143277256107588416025710682223398338370175640854476233157799554593564371250605876582499742600317773410639472918031252660983325935031495056365803793077458393475802778970991398369817946266583826393224086078418136319374406763575078479800624023955288093000562873541133570670264436270862681713223104283463372803205557121178978251260736491324645113392079141248318904316219780279491496814994776478113583716349884472720287677568710488770750889764482833724281507310969972069992789092279812230945789772992394467520685014129727306629718295343219857250823487003890274322265372589164084604727511910220333213544688642455406386611167897639343808492924675127739765915093625389394547555311156401489699220295288822988468820469124698521469632011858229195751769563007826746233989369555671560208523748074442193491215948822028705221711771041900930539137406551839477699855371880552200921702808512982749679063044928848885294128647075684640913137344364190880764829424548127142104635240140645072980593765184036813589410231481435114842793462165370860165758180011515918112173147747188726360105051734337839110042547842932587799943077649953238421134859432721425408578829999276560044446283299892552946454575060170039255616241447593730219838737088241448257285984447913980341659022540045508890579248831824677581882640428926520632922173770179182898884215858526947803619635312525481735165270428677741849742682945640682467613036299471306283811117434003429002700094541290538860302058034675426641387630980003977991016494479431015538603688428435438174886342128515859313742937120399088488050477835525693966215879217235336187729408410142160050357625087064135576805403598718335601587595054514360110268331378480101269759398542703467455745128247503007469051490708463923884284445130896942189983389459690225794772072725291751178012048160310826029515862217476549776349406673066245459025584315988799360137769661294119172007986853500939720940539866278480273877092129680018436861865260323425040366612223267113104522884367941253653531542724957641243106480343976079414446810273777356661922937744814690554582721599442553244579155037961592426749935240489538784463669132299897343114752380746445738598680874615882444332176642089952588689074028087315911831444869024794884869675634429268160949930075278137747150107524892293192922724024101339482674111693126812852435365729298446455429727614242444510010778798316504915059631748610970130114676501548957456260137075215062051179361307737662679407628571627244838304919782935609987192255698007217430033177262275797587763864768749989376645924387405773180153880972161728757041497748238136991758195651811508419232738556308294496208009340941458156755643179621359620876059637170894234119291923845012808675307776046719085823797747927132503839898373461527065837270998957064788129229546450335685039495434006093349856171612084088325129022774849299820575107998358228975084553631550776224473274515672734544026239690413093458078559828652140419194102168661985653901141159620369617707815668581294500990541488776639132187211486078705796490436740700460274698922779135551816475102232811373250056438129438890067440880047002105516322055931123015313835483338036522278806428467098427651971887486775625944384604598946664874709331784633865088361590998956333993551880148460263366373290310301503482844019331208650480021413593632703440816991681546495585798804512271812824191431900430278130322586867834781157731064296952821321641220665950273113283471046113936947882322356807700257427022449263003137001084908921819917015759959460303890072134854367924636050091316838942196941648852418998579505720433158394817598314976920115688625956908543312995695647335017999227279271903456301098686060019785318753890154046617409865468081792857625999152303519650746641690840448112443881702622513370920949729531742764248640816852944671025866342882059885369327558076420770608871672098823357004399458834861695308170925223093865290651979461569613551900855390304126481692104341242828536705752189974261383991334374481910708035700861433211510718138533184849456723378687381895505194226880043575424520776823388193001034393126593691680164530241927008517631762172704720171931971757265422612108118603543583000956707973382948055340099411914625070782597772248870224154080347021740939569803382386125757269636438781408927396325070439650581093079366079777854689260206147049033178077274509060997344925952305960230661476738200309144304616659749854610407918532510332630787519169867769632658554024418493421405226109251313941894829901731973559529115518030259316576022416932900465391266612505884494570988310626364890689417365519546491196301513185242902375714166176895618040659576798076906341737401374571976293926230570541110417433631314309578035130972397679373931245123608464404095537648460597226843407399177225108973153316922691189161023781928615839965926262441215676579254555215023400007279658846087858629430612986178764371937123511087019330241889644388335654657960283928523052692040445462618812896734378135781888608170279984188615146245304634040831566330811204836432873056562582513925761879100078669147528217337079383510802384026142107834122690476734982840094886281393855551915196547927655267066264663724539870760373365039406626957159240650277063004937196868019734111589651698520942091128390661567740011048229350535917672965121370684015884090271285590111689154652056734752841000230045108854463895864189354061865832195716705461556470859816542859347494204804191595182560999683379580538083521036140092418873501757478026086097863847030009145207003577591066608578175515340976834185011023088877011841532140828742118637566380039083770087756988816980043037422995283944663917126871617800141571151261614607004138806777178832800716020041884638576203941932266622738701819518470230972411841328758148551133178170986524600639050169317720886515360785898033771491481545581321301160690371327180362436261015919767987896182671191417563481336090682386045080144542907877708932765551138431394934494850620274681078174371370014478708635085764836767601392234753478087122578382263429749810372789728568640594913075559655629461136949565239453260314166661191123198559619562086660150711325826720254287084849701659201818489731175623427402178508065369102706763493908428142714203078036410653646537686131370317963933188708691515351111810132097795509179907044629360565360802628498327489541345773079812997477341235206885567943713954729563333432440898008091779599065710290163783184565393611697032130473256655397579599471975508833161671594252887913738229246285126060413299319856769306813908141684630970122162779506853302841147160677753076005533690820850578307419373626418652739209139325464141990893955203902444958463890496408302743234204426718825597567190197302479940651574587570752502789628205202369546684560710208758032613383820894013420454093794329884590044872816104516582140821235020841864353761293119921940028869595792121349663471571961850370527050394485753277641414364819641044474275990224526332721250734919676001060738970797964411167967969551052842442021847122808329297984002395670655075854303539618947083297244727556695737099269068263022493368134398888031192738636886459600547515689048752428745276224405816426652518664829045935536205193504538940681204497809267132404002930488205002735261082289215144950442899852130306775880200112995076704856067173261012673561158918289216999109463244906777219588519110366865733426703419815684320619948973913172065598953196224485210962345042608481427688806197847552905650726923444666036099242280728757424696540586738164992392875114487954113407683031786524888064305238707956801939544631554168053612777212821091148825645386986768835647794601711710286636950146649979739584318626116068606490017803416692794739207870239571517686231619621596048966595653360236015181988202779568420964418188268623089669294041490325881437143185508027453963067749243427986336216513530819366095541598141351144402613259452660822001983745686669202600566948671597233950854504010317102512643509876862455156252774405718856285805975473195850771097826522688495794286048105457972570246227335471304365305809643647858547661332069478984739022725667409574716437053599303648054572823008612245872945828031567915658162730357100484251554580756977876297570978820842084576306174852587906672670514137681136457086201218817512361755017362873548138262747136371177662377226495210812483560364179890456697396206932151276797448013068477623767985825864716305158176893028566129516992727821017465587042863341934928828577724140568854732921612401234592437049108815843626786807302863924764537168835225035541800693369715698715800724950744501393538531551844774379745449414456330757432483829770100908860732189202458746613162912996367385523340315448201458867145035121291839375117242173567705788781497739170279186771125304447825779494456284739989962060922563769996813582106263854775278207667326050635232052818662836111297332713205138070113054266366068540116006057422268646035485854946573628937262706596945939419260600412416194141228595325397469815154425436127162385336287915017920436235262900202029480167308314430063801716804035690634371623177426710116864759243121494351171105045014389648573184803208904609969834575455491402334824707064471782214402262933586928892403119326937801374015508478542889996124552673230787349437566362428069270205916535319655751122538481235447164594683383536707118796891504111606714957958527863072489578763076054484480984818061786410258132091201913503207019147606836048145292247376086644281707104602855883553044735085211413565437628935967057928814856167291376421729790497375664389233018663149124063666857295650789911501369736531639594761764609602368182915634502199813300736499461961263681619413242030219688171125761861656615827999037507866198330557275473825829820877964634718764853656294301470351101681208566930839120490960149362244863140410795790473082365995708118702758123071910798799219269902144524176781644882171102165907723228318284953782357140746167647997270863583328224209010878131885136962706292210785325438287844517862976435163999411592860140906317742756793229900896618881968670462928181270007333709927588707659038635695381752364665270935616879358492469760198258312627779981977300020281761416283978088675161682139779884980402325160921532835714135673881423378770946212501844099588300154516993820053766379140460801779391980425462774854759546854294255671695419041451928209725729935243801803082014360914959706363503038471016105167279920748204249112131399761314305394019034045453715081911993480772640481152408128296525847771064660098046928927732685223078311769123929431543442211067451230760044646126968673532336859750260516674751789024374660340612436957222467748602198958789202016132891142608849421187950618239827201027308546941062007921990925668587272578208759599364149124903100804139883543572698251856960822763842345396514673629909285399126526928037408997466395348818264088557349028580332628529257360712170599269936595927484079789751968916445088923754060378383765436989298301464499295040540458507345455576188780631573968146904705050251728702090814965518519748302589501398535217200840101764425261016059888476555825459408260892447830600826133824773515545983102615933880146581694148940470091904246123325467736037004174014794581306897837242636399879356665576473049604978613672713433599079420087856528467220677375132379658197230082612146379090618118099772525548568259085005542869542424797967100983153203266429922623409256151908919145250066533873260257855097527169344906994278981685140828228191429444106359619819140995733040577906415762365484014442674331830233500137480090165118766162082340290949679532915473368536351614616973501294062917730954012322821226945142727160703825981489004315034927192629515710518684703694201502617971310597509655070968838318853380506483378589043440846980878828786646339965034299665649751806443681001388221191627436202243788734937302944307659321456232481781604587029803769962232274697744789493025355071880715642314270921677155522409181274526965315907306092816971146754291807054712310516932854121487078139680006724620642172484915311475727632657576055155466025263621337229285214789691776801442625086691800711182181744193260528290568506799850550873219051346802806580568132955468582096600563242038794456425567802096446483157677386999093419393977389308843329581144353655387961677296358252158634323912347087137859555109713045003519077161162822962096190116195714042196648633680172441584656794671608208090053145230316830599226414404082284592838019149584898836558413967787529002564767720655533198991911557041501742865817445472835736338971269268140858307775992232734442979011641603710896975845409593365020400407074376971695656393275383398473921696681154453266391501739285784819977187302290566718857315881783773450625745639267510226356789212284316507255773367859446427232207246581037780725724232023919193118676510998150856044160642910183072041092221457202669924441641213886629686185712676239126936293173024415413146835443660234692732151185759436979969860192845082037950936747008861268955330384362048618339688326370652258469446862872606939773846197765075851081997390484167304970455695765615650613720936757388207450857159728000428615172480557527990671998510598697548684917483821675232346132131547594079668351302038345541523903956464932577193292375819499904048774223241032255350855035722550859370899105631150863960390132032857976706686073032813220999969566031785621275586636349071792609839705794260077341013903585719418147064755369580696347772119422301811008271132057086569429878357115974455178908317333782764153533231111274686122022780370393507925243291212244972678635923530938641772832410703724814881760792397428144558054889543598773186110126458885151124449691194180315292549501528634833532303048923723897801835042850986299661838225866826926806995888794523622154728652656961888512359602490297549230425267738235261473866191206647845862710385667693390319287923598001938153280230941865897913564082045983640444372101437042835081764240906223876236007033180466603303989462621680986438077816336695791024005629710269030271946938603165809837632994102291630488552198295680799151610222265526902057934696233452670867722780842500795237970142005139610218620923232667046246437132883090745490337338026968956874225951561462361881647702040207387217089418744967177777029505624792816701633435052745316211975595970318928483654509985804457281802684050517850888054039866101797172226924320396465835868441538091827302555391987509835933536088504023525052529861752100997240874992548294289352886761015231204356588748661669651662844202144752830856909818925435894296236029483228777492754101920987578347473738883111635902831317663943946345501139835257092498419368642235917949647159830143094005411508191941837598616880049895179573496526512652835192975506257874535614628151248700418763601215722965014874443536087058887043047892065050627026187416600515855243915010933954791951676113206347926592964828977806768678953822142858908891393641239467099596992819460021364509094054227449938585650395335768856385947720527833365738844669277848166120336120539235891961131740782462110481927094663651831657147665203426630374525671181186682863609794458114049638291245341472437596731978895967413694773415868870350050816623240562415253225425043933544848224257516996731265330614903893979516640263279103187520535426784436076560836272182968590580286034475274914891203032493924508150661820511898565571191608050965635166379368992284249789690125285941717000367316297437472354372107052213886680163215573439299724317371449587299694560362067529232202748088812549312947645963016031943298781902445525181694476452644942837295533780767379331105655953018753560488265247152926992187927936779721872574753600405600975559188809349394618728202986231037248866792895490296242789621727078648921858494874440093134858229237473031234226295788021018867236774082233050741609659896917401878823945182701622174806822173986246000622103311967217130044893609768500761900680034160076095271357679651474021098577550421042871168957077869693885031938222679095867971771283459060860057964437353091695313622368647023776665513036552442891302082592222530805614601716811899490060417649922102011901084710664604109984281968017676838787487181324322319504655803741053227056558999933265556172451119237076954419903148575128984015656420970921337447058863949222317434634038767732192520364181452266461709724250872459575112826071438771751916034469720569202710600366496382868396892113706512525169995536920643965046009738968349731996443207375585065768197831947744287141047872725850134359690752132662529599926866188202991601786447186702503431205049109212437106445338391976704543809338308518728643752874141154039083258106476194800528119959837144984349117839448040266016401904214440945916310709864856448650912756197813502624996146203783631380018848787947119306665559275490288639611921172354655407118733717116871972473040141547377727501630685186122612538247587484935635854612197227006405307113580645583662199526618347605097754800053576551601085408080025512615322164016620329285596699693434690480853216192120736117675891810999918387172207512372083708170760849495077328438332046889597799554930277846342489355111749258892739368750531268288967051948621237276769759683775696543339285422789321086048719382146318748826457893424594834854819929001975387208357378410650400469724750474893608933759170359865260698677597201099237619370153365124068647046594986898020103537050998907386334735130451597429946915929112394855632221271529535954403189150127125348905152974249693635782722052391988661641851486389033631990759563588978596756204295383478991336946411749507372410577362145040454129061470718892460193225163210080779729155054231792357567421620732049874716838633191864689210538692506154772279321033973016200148097093656932690438971334231951509309148166101877648870670709900536121206162043101050187825277934621338574493250419332969237590804243454880939954536861703342028053240477329100878997330421012939196285398132962751447233033020835175303998689713726053032181988135142749038057604681920774923475658133806902440925405041468882706193982611885964282536476483435805641860697460512494529100583269064191636467404608701755762237719375908304124838175148941853204147501084630054343105275469293164958978106852634686297906097690952497421547512832420618879829959987379475469335926426521764079589754718583038715728889013379434324732127317874861573808417830676942280730964664117353067359024437044683424891536837645777851718995604589259519093877256549922783149346797320468469696209717161853342878422623306561444533269601945435216714806467170716813535525280611083675736909741150369627526674842836035122171770668623310297255368179838033111843634189126335163753877836374313526052437229166959133145277223183171046581347097599477146398301493739526028263393670190518246946668143561165452660999211557269209240677277367540291010857585054115500473114316964775652922239977030428841347245735149850321395493776500075908542959804365111476261626054461949921042421296275941286831336012421945659123821250184068666227325913343302263827199841259278854639730985992731163801587490008313762182122336446722661652680015088972445589179544265324704013138466980856402762405587520702053666823841628448956160557085489264703514176706465110762999417397686393551390931028646929283571233446480047546849104632856028559509161425895210023579159391918608443820962893515887263620865925539410611169807879068151707222597422264521850530814002527602178153721975580473526045565860421755751515237518567756084550902753911965505156339165117333466566726662993981056500428455920161124367542824570744280630805850647630300968049864691459221661642017588825983621182440800870674165971443620935806957453502029438545884169886812329355044361647130673803798963291081880597738052049812490814834320674510737022243316054267018546261188406581480362983171146377816262821030879646385001276769021651485594896695793494081112714980317564405728112725894661702096771500466691649631057578652488902433951064512492568276289209568710460570066211412764146604465547050289413527530712933473939189262915515213625111431867476185296412603604938520441663149993882871829345582174430308569872957358747162633522364877209026511363824288655955737849045005454266243196976180800807820381001354916173791707538415853017449852325265377185924099552604672483530204618921780624388552557139547730088247651956972177617448091652016105902822093125384854174971709938700613529536822431925545698236095447078762858814317111469984010501651514881708861299127202914027690164344440306946107913396900264047399579548809602175803988759051174138799060388579636751070066296087062182246520997524958847306815221625871520002680111025270242392000944431496304104481749896604661448841784680911509378356592171373266556274480269695810009725217874769818251343153604686052825499162060378239394186298195278224915479958543288336815227887600718813442222568644061880518254907551078798217766729486005213460934917333634674059541830001188088019169126191346339058837834413341037838115213083003409843376505955023569818850671931257429744696378183297176994892857707490429282919942048980766993503039113934393240158332196694311187132510908764149675998258289228178114747298593341968723573390715229813940179605801417942713366509022290817480140550754794911286800619505220456866245100008658422462942978966515121668634099222672193127755288143595455417404045371267542304935361034659001511813161918303775059730534415518804620655159191245031934759342238885651101897220179044744365004957414013785316537193519409053956443964431091000779859595914529795160892085112320204185409265629940642650521965518473402441610914428727879371602102446480654624400897650628252359741633409496223244154702546937533296473346838818410003833716146972823696982783788032498100728011079709083255085206542397574675033437141235380443347128251009659359037251239290438106948142685106035196351996153895389382297648900358659923202225973145948365441384020022383004749043356924495802589955243128470894443455701661389904643384230011559443114332505587555706814895183689242582670540433543635920638782170046219813507824167087594806995047434703685887771176346899814689301821742018434221672128142600373902658301901608050410191720652948959190032097978107329226394977662228937117507662715027959746569690697239545977933088265481871874767446659377909587557916107248346355636827190981691677717731154991978870621728144796046311946255721354933392102056780057202833559590590409572305221022988179989064538602858858304646256697827187180077527318189590106549112146645138640553670856246034281016641106594016367967351950771747614974131231397626693536034882295207775591758441224362929865063922817837389661557612963014904463882670752148335265243423992653634394454004577307998991783923470883529217945116480874739797170567503585825846640790089077033719468979432162881335265195285080289222121303476281681664240943444386324431239390631157213083488110674965956626098309115136663878540329499717756332345959053422449541632423334531546183363542149395037266746932401029775745198746592884184432776648128547529382321095533657454644019910119519129157290608855454006794427861582513296783656667528611915462361421109470528798982047869925272069737343525223504552256210052034899740779124046067028365855835149697663782848923952129563857216865658457307134716027759682669887674985329102577175945484882266357630287258275907982574601774543905181367377955097920789514979065785189514971051452647330703723299588963114404283755308695123644318268476478752031434898256294586804979277577109648007419621664857261061455360949019183653358529827988778291305099309430076874348962259201821746736425348482374276665292461524985162156585720178553435683350843029481429690074342640388879917911450663236034384898508910707525528635059060582889432633120403091998679353707369642595083697467937337644531633812600501714079844060069884777630222254853100477368747286942141260878482376427046577895258211339902273409412421008941272890924081899655707637919590840708465469317876654062972009994524846999149500310375075121049075373744244375234314256668150100682722771950785979269971235252364101539813694312422417542793188651133243741471667575502605262883435072026166478802566323188098496279782516530542481829681896371711075520400067628510804597153143807419541074362838650937552378001295604034479608261315422634453446675924600285587833346528931931410498277637789077128571446594440739885065235981614858840564057511792081079326195100700322115853288419435375268796755451454383184905052170683270082890964775515383143752689122779817840222303375383413419154616588774834263148682490499398945956524386304243662524616211647423439024083185728105686715132185691512575328374947016969466604826874367590518183598831483931172263913873741050989068887496882059474149746237183328713493059379381033379266414486358839045302506384660965259161900237542837976261840688786259953791898180494421249181183121862912717780802220695281870067080248916513668768853701773748500812844362171726891181753347388248819346796605905309056436502015037591185276339199329287893314137975130756552772607793214929241025862195790175923440960983451634997421487152356541748700332833636798775650919528699630733456219445240586470189961135723876471973297551063453589644965363097997093000211752228744885358699440291370909835689662034674637086250083487985208981297313246928744564036786013570254077911900450919580217386340864338039247118271491091561044351237913889602097159641802615565524742198838643608456211966512203839311022591839822860311514175917430594922931722358479221902208470177115578997675640615245418818860231997790517016653117607448837827787606680327549571490265346088771341068832883087369501107814401306428800652584458653833962292006517054823470686313376880647541197310774567216813808316923103280167899793857961361814996860867780958587032388535864446088890245296321176476814182610613029057564965986388992078393215570137407352977074767652197973871423060974203015949003216882749243631544847564436747518474724918796749591285274990507524603548299282850755562211299146353947052571740497923783770295654795202799718969501070392793915871870147098553976913945467056346200940209473549592466316683993388598726872047187964050470786699868807968517376071497654781689066668772638820637581378394254252833574280993312895122833082416534428451137298127359857176538179442891393684420427625129515841695857533130997608955050739734512498665901465042810643303930990456918162725774725148875254827184797947975164412969286185144418755323728470549727250770864790861360621017034741957606785543799288486103326552415618121988240593189600824863139873177588295962498620944134272017860968781160968855528774683890042771965183537204313765900577994482129647933943100087943799189774448983900312798609704880863874180674863488050737537780781982095339240751146926654293750825520553022852145740087780182244397826587012225786799867180621326399728221066174952284715272930915057039788618318551601174427540285799524394399357270742292929226447074864523407038121436157119970122970989877452556947549808141691639564717539154941482928281934965136888510921509196166513861954557456252536661478590102590525823942309322709000454995370204898760369023783677857991206138927081829376889759857559091026642017266037016946141964426110400034082643171882173618198545714209650602989260527933889114875710468863681739033257029042572478734084488940484564646776418137119514199555144744558108557880653347256618177941344741714069991445005932035402659933869536811127924553854767327367423350694825329366181164303801944502982272445543406402983444526210188347833072806116219652475313671197063088843548785544903811707813465392572054307342982065046780224635252824152602524783161555324099843308317878799273567096319643669281111102683143532440872900209992645868499884219143953797033468458956126597978654617560534035105705862795448018456421878594530808516139337265578633511763051995717160131165296241578674764947578706197496417377196040684549909361368070715240069246867478428653014083347508786535021978799418059439385659186879495227006557127337829439431082997854626758439201437068456392673402968714155753676617842686708817642397422642202720621554667346887161130247485703344515173867872977734849670155913562222831205260540559433640232369875999858385913519119211243150541152300021076096914547127375720836069031145536160642802407212357326473504016398137352915999185144441517493867907702854961896514597171651230923807217820808908610578495269611607465531673836606966499947631354901560016052313235198136932977547743200218481883101326199098018252943809096188682635876123634393201076457875794842272795518646007552909286402024599756261822672340054586234983056487589884456834719418587623402146191638456313637328277228537927911419443488936018939475802881575296424610560898306534508343829406746354444590008861852506489840344648606134495795108192237786048792490592162323718020031742782029941961267066195363451807443043096916593669450821683075480020807518160554126817899364484017977173246629951041263292639042377763406420428458385360753818408725462483844520737597753475323392337538889492238392875250974782035459567521729135742261002820552742510912058320759419063117537503694512361988246957867480199076348791360994412375403643220104154123094168138600982067003109293232691719642755623292996592231429815956690012584568049397161686476048957719314140677792129422253498439660483533550275545509943606207930999983270945464792638974601526831670758073532118592329342309952507337030651943731139248927572004761206384734020419038735112901002707728950619203091894087872141381369926418170164451413242314417859873254316350947911083270518442545952349780228096169178035632663229467553033587546190408332637786822387478965272215054827363511796010009401110550002323452906531735677132881688586024035316556861443129968792047874380553765688100619258783394307038824944068938136988838669684285650327492946790178251552054053619595577949260900387540678024105124887129507819852443898737347422012131318733480923520585980624884925271445984073453852621794837275605698460833864953311237249007306438610080862992758270455086463219166561731564089673760508060048183419848161380908256715527496603490025126892275548371278551810325481780040818924637235160827276614370700281915954336463518617118211918818553457519360376082358341471480851907674008382627534890723840427315626822471287028832779993562365380088877393678416543963405441705581317155876122970643770540576673094239526431162315345415468252429749313501398483925908979565348283440627708035475360353574784639206855083574450088551740096324588878859625460909822999664599110600384613275223096223789229777000265142019637457988246124791361423673609315270525086623591420354414025230728690655926330969128025411682175663673691008073308628786240466039243425920737601157297770707614682233540893543417104043590371125896925313853546292585841308376849405577031733451831492030009434577847645051769393419518021935171801823761118545530365413137221588167207235181453276174358653778302693832287548061763235828305775564565611814129385273754073923790286242053485024534427568848042539326705066266534899763260864283490230599651273012541014125769040605024809495522056107698612647025748508320650423341109681216012300762667968455489028854667618348774623515135937374976349495712364240454793213329636334764407864907447367250194575777023226298526074462897366749167247408173213832224299215515692193521656230265317584084494867455984246969233751355989886572245713382149521060586405110689425905126837226426710871534652650941054473602428149689303790348314064665859618952610893577824653916504564015057665198717762551494438488130346527624484857699860770758794473762061533626472703710747393374728338465382091706673804305091352877235882842098881065367436702396087100124224107523764815976731404531835365638336684789399377905613755312825589872479974352093586641933991061187120547508973018397859497756246449219030180698589219911008299815718530696932325624688201126174204356433908069491800705757762766758707296198609624808389730008019132018725203281192404389379505770576674139532971099036552413193912828904476884871360774722184896355160641586063801082122303270801968818768629374026534864076951819211566724005335456077274389485018356324089511087086353797911304177156166274371756958559980855709280169797220538233393991854081027878259621675493268229608191249956883108013286153554385657032402148364357337333128881833943996494195805152176663543455716651009305523333852429395793211783983250640754113443473666759051124399939824574412630911913130011398393174053549476207686712533236117744978785549431275923291773947204724402268275579037857167273168735425732024853221286000256751803012227070067667534443654720973376808177904542538608224664175411925243210717591193385678494819911575930297969264107321316708175438848370257567438896930817771630679284307106092168217276908050389214553076422069713113436636562803666308381294363415420297934198329349302447000455447191823835749491744931117421940623715923482662231379407025237215858724767072510785719051895910914678925445468286983805813093175034575827932327038675968761555504868258820382888031510123602675845967693437793989049268849952818944860885679087744854188179080239524884422455035241933018458864634517970852273691387011483951722731893189719121883920976586741373194678877732927589944484016341712871088667895186828022408295565975990275085129081319189538032135346947220695776510248187562364376887585994424970527232503484433990520195812089850269870682738228035978825707258477016801619897905333226798751108626478947122009959050897861315631407238538793720667340171192319376212412738516696190774271819431872703197542522006081825727722240484405130520068549514046147091720383204206861208655476872938156219692043043660834469098013011458428526425983466848605550154650582176753795072100250072291665419666280073181418319997395033203185593409885602665802937021819875791315670266070173127059977700528871808000826267933445620081414538969494606803183897354704648284703846325698583396932127111292257096848160974641874321459233840452871591538697773281967502049590219991776964123134614367177411158064478579048251737727044327260812797903998506914004217685089395961409910709768561396573876632518013992188956934739486641567323227842430879878991355221773716156409222939927499822828038856468398577505015525810812340791041176884191805988536659530112230676828946270551825367556854890595885215173150462170467538170430528453046521737793130020278144338334769102581655236765267075328572191011711952707427582155454551599471817742490475984488384410833184393309657992736076548187842344199521762916541914696685036175485751699871094413635626946742287765199783547326626530545516786875086827060038236930930007077322417880218964774582012593607357365245448119336155519399133214111298391158858266583008389150124323302480618735478739067944062511083418726851982008230531040604275808481321534951986959791032414116967763543519445464764755124526002481655327773205169151116560220076012737232176861970183872603411233054330051409478977936966306118386192605048517889621890002621614187723357647672656953549888179704370780384876148443687781874863664138906659472830558112054622410384675192297674440184729840987063682143332357226716407359596491268841850182428416669854845573926455849009333729125653160285672811242592063208796530290629451502632915776565109858104885905158744944988046371348624258619993094976221797207177383364095662633534971831305429405439039705375969770188387799017804110610039388586068544175047271824142555233883127023289955303607796472422958677767458969587268680066470522736933788309445275254417866726434784547454136863470060988973138122158219334240546769859516363746632324096526096865638847415976277800100071722738193281224200241921151856786420465043424346683907446096986444417894680393422222990687044755576365769490459354971808559985448166549280819576042424104896025144083968367285484128120449233316711772078384194430990911420639702236566058659199706886372489057938179336003854608263873338204527419196753153759904420233510920846894502913777966650630467873801528859596682998428110451617556168774373960504501164075228224554775487677585765353329333111854916909325403827675242042485586237071496893653474839866416553811120914971588871336660343169162358555436989138857597159698626293077662477161301362081128089736737177045609756036891277684904763497731775617843175711304749380897038140981167269230547397372465147943148287365222583582711314344000075102280148940545681307377175625074297333590615723049323255437769577740372581156154855833490604722640773623359974696087250891841087898484079651750453817200131576052071797934831505782273481573790362833348289400821008613746858160047221121504295811791311741183955870677202178001810601278778639390827629821945148812026541134344350670323182588144240852471309215525125435842490760812202174276009101147011078348863092133198521181962111479848907004138090514998277328715430636607705041693451181729400215054742200128834984990357248891540935361174274319022025369339722187537279923910842752024918652096457674506028516693396602558285121077259115006093196566773665054260401183879324468296234351182577341065877996701026912085818309025774094657736810639444262517749884777350210829997234868314239256011445568627309675607918092256590231414260330748298816748058443396015497645226062042007788265814676852461952452465320849680342931351242944310383276592845638507301028042326892269175975522982800724945116877111256845489785630964747239458253082425332683137635406938516242862218404624353278931616805950291035992896176035168131028247423973534453026507477431817335619938755657759995376142636491848939156636802879909109093981627843075127303737714667697275547056265369646511415111646681021997483021608681854653231425987802888359024816076179556751627498822801550826569147565899641708907375869387546792693817559557778475465391965613279442206582822279789629907681745786596552227580216740639877675293827474164314218587944145052495399691400045868778631347153664807171308550443291862140979288922039471747839589481252869958499585109198140584910073873612708474077650185079997177384754494379545706653696782545007411707033734844574737266384370110522267607949293248375712573302210976090692346747334273749137231880422158640388682001274499558321611900940217530985327547281499743476370447531185050351480529512879672343813284534549248624672129974558987530311920768165131222776322019135874436621350921932379826672109367173136959736079494242698479410813807756173679566434628974048412898716205565364313421320997071376338065227447668561437199178498551107333567027936053840186829905605893104442114262200839152709849796614782860067930745230286736850418464239387524252923917165985207222566376176879389349395964030990707292370612635386454876783642737535413372138795773392489901499139904455377728317319122958231828591231843708663979921108314569561744259297485041081838264768048070781496755280543551534083292421219594674119969909120470574251289192659714765000342064005478798307605717414477621269191210071531448183927193351535602478353989430676622257985302595404230828010334638810903109613467741783220928899597166924794055472443677508352020953278945711617047879952209238081804167034308154575527476939232288909290291585205344905423114158354443389056262451168476268709664939481540313801493528512608295949466326884777563496589525174158927265099198933830528421860200486977506219297532485374607340935600541001901439664137222256087249641885712217372839728025549973021902352493532235413168769957562718861081696167823480953769230522786134163890926867973363293303071168627968061707745462071528341676674705083137722122253288529245363783830843620230667619265310389108007664764277780413787436152521521424976691661985052003754410232984932308060539610203148377932554776585030979363280418188176750469848674875201483958291808037358946924791378054387188867227661993479942528196617376219393237895762444307290027834287030091813126518281004586054784713736228908183535754634501001012195133300573433795850943818199546674993318176203135501433478534353964170702663308849367854913658178559993116366027189800304922185992700767649468697316258079520725159015087087429038702055770124189295315118682760098397707787470727287114139810962859786164490910504746675221753976029689210442757718239914381585122266689827827274965980799281001698456911630728563198821678181288151709740433602962752998880518094433529152302704884533789608930152748632870793437799548291053309505899524940167843353909843181833352882127089778446745676862574494065842606750326972894787399179872250254015715054680089798811668183930833802364056154031179475125082352017779579298177310157723421272101345482670502777193116491710274690161470754030473969782008497342139752176932768740996877924263646786976320677561221027003724470600925312924682288116246448983091272862645446671589924438507872844653733700570566936276787668225002536729113746081749660669310594429222124245544333995208646381127429658712670890573062693882583351664765571730796854308648079574439109458271063132518559911135445523252494313900229030694332125120317866504376682210041849483185296038179093215386989647336032493005818688283771025827677899947343258328163943633356788628243734343871880467755877230024597261755110779053467158309305882970341715620902101322187102608830404406740577638387283985669077456154839100185600184215731484837737841713619615775758908781625893142860851474068509144630506773175102030709208620788173546566513386909282722464283420796868629745082562289985830834330209070897235452916485964837720997392733588004129365795589118639104813084370310077461931193942026599822489901556638779456125750408187853485799936321453623946710730658782297758851751886934621693566527494598320447587108895252313680035063321030344831520296555883291690446028977128354975606063471339371275782723111206781768032681706997235831527904810930027225478721914017130139996677404607855905207522487924313757782774392090953565443549573865342036224486880522467067491637870400827953588711480951848966442604476747190476037836788910537940747719176271260254160676377216520821728367972102616192813878750995843877682129070253318733579246606013400160618289925838166968038815028057506609303909153059882334079613614612873313561113293016549179351168280743561275342772206592203210285871586999468520738599197752226541432773658023455842960883476878172034649841536931080221600968064977169814603390066497440766274177036122978753732999074191015219702581463172867788591581669336834712170352525930551203350794102346249379816292938557837705149767726851679506276201712533413265607525946912038505392751373882217146865882053170647335507973753825481859025027730445610317161696132151538343226726076787580494956660208048286673440485749866409194961177356670699605350648047897985421903792383643881904758996953752067225381793259852429021407517554302874531383422300216488531851888044237211872207752538241066092361344753113480963565964272313508918027982760952795306336881199503680420446256259121273771220316352723637417148933162694378074792584413367040410184802317144475291481845844570663888830138058499892911871750804555165626187177576310387603510736728636075290207381661323876709737536079340660842258024636394767802271711045868626427724342475662024108425591398135235772280013567688060364859119026714011200375049585425703682144083300261355759368551152847837909519858414621451566712884569842978154364066024370295315900557107504529562676028871832930784570811641090033085999977544727358902338825345141501595217749107642568188520977862399261450798947483254007091658242388576502331992101252135972145943158787936066849757989292192291503125849513599108157257528454195922067011721615356053503623751790949603978394680539815333442803507880608534936457234210231668331655768274523258123744266043062522108231817922822703217331648780310945009434112695559099329798992901627440595859969569725932183739435730336380017805286847822021128180030415752275664551124224153559255506866668850116244535533281732725491556173359609114045684885081620984130990461236678731248075496613064850966537635083993311895235359984404536416730534297625396871224507880218973866494129682652323223814064808467740585575102257026628084019277921289143356799700875208137418336616025247269005858250800800763514196661257712737115430008354963320686789127445082465870295422193084261409367970763910192806301384433077008835799487118255210821617159583423349177458464093796853429119870189760225596627160581086642183614176310477432294670037080280073744869106962700841552724397608666844841179677752253616292030407788585971582337129964593374023067846924327203770460052065377168677507624328379136617977656112681328836237570296453779107993615876412281316154505895592565787446135735590208735701944045397140809439019520875202002008996134785056152473662460371867160229918968925095898543014575589985758148661813211110760198569492158973533918921709396744899163725942339472970997124976371146847840967967147903261932853118888082692566669308537689029714070838585009009763216052227465608229699185675071988634949450904462869778622413329257706662103419071422952515764886675616447232483082741534314869052071909546818867375137039987249953888240020007817272065856371915015761543845921428887100335547852371183229917740016438735972080195271343446725775243319257666696379038104408150130469218272030972593147955526420441639131817228397008997317536217028462800464803382679445145506688389515638457483108758574386138922567016911960994488308399276889897391550004220955172549986127602721110913145259996628701981207922208096832091012152044922801841745353613604254398238394989752895268342779980303615672590495796694348125851145592862171237546604155649926416112841424798290665720117717036235446681673467046730843382661073030516506572812254483623513097923476060510563724669016124030162652547285539673748717045859410709170867757388666974340300262568668352339955263818912311992543414896345892082212389440740027742035243589200301579198913988930551761509339136247820037281499016303832827925764006268180466584834484693654533653339249048730904951592773044008736011676242767452734507886585730327625639006014817379521157929898932769491600490787523950283484398990159123384699981070482788713904638349555470869108005334588094745675690230810795744390709315745816200258674421323206827680458420375817796375691492855668187830505791351836654746565419417791073051404167734722160087273565454252713119564623564429523860040448773762566965965798450292807393819756659125019990422298516994204201927728928372876101017827969026963601605685836194074413418521799625683295679584018204662118576521783445248101465076004816629032066998669636255454274726982770278484598149102129223862880703438768900243072528412306220231131138995791049957543531825811256493684852973697504581606420837802543711271971073716133475315376374479795753947318205883089634383926665313139170848686430955411175650712786629082570891966199279635183590278317433480539572177575485197836800361555709654713652423604520240312286604952469453548740963799433393394024972299998881775778585999312097701468711914680341628010329445008920962166509288212113859644067905924457731722787452184743883996772318681709560384224705642187318139438466427713384140788363774521641183933807296376217884166788049652871070734871643211060037292554970136756525642138967610484399677206239023322397815869499953659037168239981229860624058383411667932816423933324425756074862828031064007962272356625665675418644576291381048765607137774242905089573963978656648120917154098322793693345247469885733696218744844958309423892621609292894988755502263733101856363406090717849841175478017614035685633123532659636940117207181228160456619825439595993484349955390552533176392163514079746533931701475664027816674707624920537232565104915946076206401200486279510248534235362379694298727030080503533144529758653400391877772894699556748312639035873189307737894192851361333956723047985540520583443614212181839334396788587217696499987136200492966088434020547089500453789772279835219415543325764541274222685782373515419920964001386390709952446918155961961603498459987186917066632413694081156271238608293439680076597607073389350290026367073261659720526223154124641292392124188195017466202993470782292604022783870450948740695959694378881582427051210997294485549927131288547808990881842007345468925401826139621672701963591257188569839150799901698743868581846622152332188454415257667859008277027814583979743219807323849862138062799765629576180862030699205631578320298146500153278076631213195461955775448996864303234218761298212838538113667829876193748112110110403212592720426827559674916745451980421697484985538786212883856597844780910481614407261823703733463700423062412904474289535892985955036032848576915302727146274589629713948443382316389522292648708243419098039988117996227224424148517534323131874728766338806428496876903759945190548745269516443110239985414798184952842069541299050198811921682052238541215054026453581988639857154204932164149081866579611667812216594704695956275428000451471807002743535431098810350250085197466980783839039759347494967298784673712347921651216788535476124807330015826689677338848675490618191776193559961370739525333343974937279435407383003001448428371179306853939254696369459125413869981197876681181326537173109761551960004050664931009486955704917771988174138616329145094968822200071619877511327611942430849352290376701746781300324045019973917740528608244584389827812067392200188822182833922550913472603233844936444699886512055462583893140445814055323220591044156606722794030615375474328276711688622651337960014134855053827381730024422126228440156970310844947044771158810341495876228963713544302505819489282970926456822460809698925171408903480959367705070626769237952402998943930835780811042724677297644512032043347327191371409857916458018527347385646486027543761926760945964859841737644940827706692103558467490539298006316061509769270382133230981590321177709882102582121346020703174217132642952458131821708326702749336695336347842284857088715944559552662646031048346742566944253253733634361653254794548804272802459440663290936299579106825904502113803575628214326559953615586894558167376001721274176134696299817178426578719505107316107934255129873952761726797086615834565456029051380820928765395266360962247026505318927436531674318082541469212117262164091532876164635961913452586812905370324522031281205426735295783677473507948669711844876089916235530729530702511467208095971962518635692080220977101094805562402503842181763086479954706737400132404673146662985274129998900842829270383397793732857404537887681794517492126448499097136752619186819113987160050948032187938587232581475479761099149203613148027171889474613971433497108562582842417396729319784286589146839464370052183354972672987436619480963817677614627165008644100508285717785992347487879415752602270371311511181543555021494967102964753605812685150725157895346843563196978364975164318544000454045406103483503245990075600147407000027168765677819079172856149967482025541046981985092717837723898556032521611102937551918750361501105016459541734518295755313756299140444381416156554371380864276793477788057142140300248150435083029353848276184241405389297294798378459655367573405961286179185911426049011695985965649253600035880270033416063324970407271673894539676172454486285456947205056902234831332190315104020953355444552486487899159825585922212384916777140954687634653323976866319908220425286872745298039584132144651011250717452898789860671377404805920564475183064472711906671330739893933563798117160722964371203806554780738053702066227694284469342998851008017108343056967458204211740393376349286153160126838662763684550996107630732249477923498095712435982986695118948810135416279271587911718309760620825729492380248100818880281808152045935239709203918213625262747164964303501841104268038879890995302685357892497384045148543031583330515580168734959818187834337300423845184567110060116364904334910509329060530006851972037824961275076831584023146287217836596001526049341744395890758779177333991632690314078516815139893222666105925336182520980070719205315336237523802665123896810746258381708515979577804084050848425813512496992192880925057155312697337169613738556726905844421698597994417715045002643710229713300475483728974152852488847387706510145480885195016405278024152913968341331131763686277830369283104176205631159485205442062690846481984688752882294570934076583044063037670709862477828340505774433734385609687069481785722370786418622869605843590436065024648667446570592704477305210446317034662469900545958263599491095593558930514866668234709269508954610968758196839660257894689488508515743090119096958836452997888907554086136695324188417931514508150168547562188156000530998864114529459686304235738192330538602272015851689856081301069003482196460370601287033465659516804428676952165413496772646340785949423406568714138543649652255300674115847205612466858885790398414524695594698510346967825515669496823312308974398386040053584775984120487423021093209430816175225094330341689533587443010113173526820581507701295969118450704372397226990833747497094412527657369483988302383261253455970668749052042352651497132051421209518794106965944092492874000438180715097432195450341816490365946151793815040762870095949151690158524064825745711091286788939343683993318933899371604435623157309079667983183205442362037175781724491527360802220418112916707962237594868855803259368606682304345854454005733994495791496007107959524162344463759555012206872798769548047032583733527861632298210150490998266939092694825446985861212133534467464025843006611403638057408913179744218440284996990428417713093367153114117777803164913586218669382222366197484801384436214624229645296281611130161100591226704075601951819652321494369029683090233383788494550372982587688324465927419401262776829856977133027744074962347991004565717877763370449020515288894092095558759586127685929221144984320436399776127695790243615157610566586061857329217653874284244611765850052479886556190077689299528483673698413190595519635848355993557773677775248650092532577010122600570013563567782783120669064253213765940394525911114756551954525543658329880571038709557478655937520058909898171414498471507093541318168984368892748104860704364275375297859523506441584183739614626261746829775420863309248933707917401410807044613548232296567131814894667250068556817610284554541948298185869556007856196955167299201514086949526910014563975241136684670118638649656762556581562107239855710822520264001492344866791198839428353064481291831794456158785200724710186786400829166151917560756252197445923087660044490529814892180526566523275948365283823960413442595996783321210594956275964446628044075424260908294885207212028447676290743281354390452142008158761578816338559618421397567728778370854227914018971467777364514057314622721412310565930766507612026327112284523889206265444027073850722315530073664849625716481369544117568404235788715427092709936367113102116166493558649761973857634053947970015400722457152037514056758670230099097374139940999186344543962713166908397036345388122330121258197124747629196538071426832137938741552254924194339999712188194221318193241606025576499596438369443825412108712041669333418589112601249917629974958540037863778879108187228420195409931329762119911813057381896463796476222142750497922044616748874671219738681883906278811208967027559842318446586878059023727032649426909911434728422576136764216889437804231945256124038254920544662868613367725157700525109478966557665677184618626955867322965778886811321494281060674075023102289508211645978178295750523330829992983632162418883872068628717973265784150414751609526191917918489119202889039728416783406276864343933558014632624483587110574464265739255055309133840142574214872582357444992281533279047705586212951071059054360886467658663592052209794971101331413377987679839413097856181822415264868322752662457688872420812231756163958739608761811413404307206284993979054347290434760273535506622227103216532977438408825614099658257409100791362220399196525574314424958730468935918878235622729426751676493215092525236260417595195190564005690356160027133200060452255645033687427261348997970182574811134578572428962009303405915522309175976020747609569634883145200276596327740803611876384495882780031379492200747935557879826528784486454446143958151525301649711275432484786218807408083205128770373561611515521431038796378719498065528012956156894771845613723366966392065778242773629635398265085639817728433882056609149391055315137292190634805370320786100778953708549407716674983734369157197556742957714804612523742643050132356443053611432740944415866056838396015395343563617172568302493456835944222623897085161613177431563021015390501215477077261929040377245563172123909086575315615205287221672761786392285734082628037351734981808152071484675248309403884964615093746226950342256034727000180312523726478534090987808210427005288004815789884775506346469148608292097954512801504374755036841135413676255144825218584000177970573203903307846295500560819398252371309987939322408528672262706962342629822563731603586841226864494440421247780071281777556465602117187425831148327199011234906788558938976614653763912321022929352968364423424484705107140774127257232767067769572597221724817041294513944667260599267674093615210975784640034483687248038173736681213570721100736978750526553268355302335195983648022213124717427471471982485151031840874399817032948968275320115734917689951729172870958149599589739598849491448867931307935376199535922866473107284517630179116463323475805684743843325893141986254977808112899104310713974408423369836968921563278843055286524960873040139072718254865061216498984810185408939973824910189095739193749038058625629499416054358239969255571056856874160725269470121863791348547114076535921005709542375081568578431237827366906242731090502820995484039416705655157757503406411279475146153253225134283984925442993900682049036753613552276060379012082598956352901619612895083893219197705326766978758546275734379802938024322529293160780129377440353109205775695709251309864387753840422067862457662080927159891745680490797426374681004725653701442286860990640076808851506376407960276093459030760364109691698475330158981408904989592096699768544671825840644440589850548611297108184044367328874852634680611057243026587210222256361715523604159962490422911343205990179394351728998101623609149669289552719628272521115964734899531340192098723117951980520089863232068827752411724570720136745206421497879568775636061630596204690708688425563940303799346397539180098203192092937040920770347737497446903850685990365994040737472549424106939226077670706299253789940655584463933996119348211254914409608169484033767091153855304519842398224103257881118432306421370443082854728399844453536612919183595121762180853014723460004747097937812675443820238315705194110860893476334385789608061200766214865928916493600099986842128325556806984705665642775636939857176192924035560937120075504294735086241188828886872845961820319422436657771507011859359886864177533286990249106329818877156335285601448121341417543259025606025349837851030629572951192838792710902524865287372005759152147629574051006185104998315035419764427280061247354752261104493094452196633926099545678376694541298821858069885064409311231569818320231374934807187452184285845773518373047681886104006714169126003266814757223649245352606153140704943651631322736885588260472202733650182398855560904366875793041372823649149654911600777492335861929346466273361537980402068565450382584711192749828461608754081505887437702449417801809638732740367192215974078213748564258500484759412580336016226197587602647541238766562121021145009466275062454124103301903519694912140385280883643644977492641613890875506761898081667076079472543465893253024253875073702257345229904612384232602227709984365956263485186015523656881404635166279472805086602717134746590239159521544392020233735057538827759987576324595224061473596654665522891433282987820613695228996046066027559592001090475156136767219436559191150826522013206750716695604120573431585204916851826816958949220955664612941316200013500666016776964999453251668710163036241600333329824618413810927376810440169319003182816668078974748039585006378826292773720036192915336879412435958434741828409354170690184163734625042029035726707595293758666006672577230863461678919572446181233837279176631985742319088434750392650847802059931708914627849056703069738439939632571891123474024036305396894169059519632692616691086670251775576578798819843188532170072255709364984298696400416564424775698985916936710114889716780151120170370322588054960942669779934631295391504542272195616066202130178290629269617496303888392701127540689244758519373084377801340716682791558054161323570174015197317338672606399491470842343935210993077060438794815645088139651132901078540952078255275270709712892598210364287620517384171815679734554800178443900181333957848410515990682922216131371346200437532050222762755105539170166418071787830176882910757511677311872970342070805523021477994493977924714285118782894943550281590445874873965285039153180852938155135079520884155974671008529863224684852572328772316667818792353128404543442565003101287375094437001635016833454366673296460518005409274568606768480154923225918529040423682784464249069542533406804652434642283065285260772524006112443609407086706025239416457207556888614518363218648557575258689662065921999607557184467325498741347406651704145630414631117866521540378131982711401250355153155847392070834214668752678274088778133800631723111352736513711289387430613862591104633723443599038420850313998251278440779910527109862453646637716601091596531334083307815137985871926220687411048494910409648003912389317020775726677745610402775649082790425602852663995316010727415964907577014053828362440447172333725054504400802677085140635069703658939517542344708884925310517122079069121094351000722368044466865004302232811865937094256927549712498261113132893792440215071463761614919774500350801984875774506353849175472654836814134877648443872164815882227469872795711832829406935668051081468642596564795668692856088046568866343017386054216982089909439854834063927825891178945839003316687827859466386855940247600840405439162252684742100678059820305652924519482862958150366079894755846512821188709454957642656641046583250478377337792145798953703219180367548050289554092814210194801250961390147338226585269886944764347550366164806938369040254597466769339114713556436472144463673328003562681320518148284123615041446256590534972678588263759152159764758695699115032650077217151140347332166554385948187142541372172780900956312351144276282992903417761603417618115051262899147344820321427439038558263469624468328563854411264524078682755195724365805656366533805445906569977868737773120774471108134948714578949771915358557727039466250491852374946601949310304370302376196900560764449661330712781330896360492020254204781075989501540805007801828674696131832597922737636417429535054691708208177036102300228247709754378514829758211627065451444846952949262291424273697417339205209665142215378652000919975859247371786039324664710597176905794090127791910998736657299547999222808812825273107859148193707257911105872568378434687171499748104243991509087610705379432173689423018674936451391947532973333582191090572977138349806013324851317581702728909382856881975297733474540919329758023236392181186764388075593068872095041054416847304327232915445518327002010049982957312429227799638532116535281201734883251789498476125735890146062758085303710800376256896833061333260410706165220561037201290379649360369690536299901244874714928886933800646887394732533897472544413726839890574734698036747481553639282395937899211838062926622470325479733407897356888252813738092292255127195787130526742672298412972187956936802509454872814391630511958896197144400911091757093179978883701863535462987841314997783980267979168921971296364107979566821996748616639099701145207916342471466158044019401478127094732789930127231970747438935485766788095381085431562999169555569117292695895533575610038945922431018831996627952300654272161060875078624624531285160779423636678790713476794127046891505920569766747452658925013513598983364569075982430711668706588395431385015063695919048774504904125608234341561940365709666622892175174538848357342196680551747996412387890348163878345366506589035140756266810581179561109862247713685465933806671961755786601834468322337415286778352916940802078860635374330833334709218827343694001335540934545923037661802366846844057357010791089947216552297807713910553685704936262571389001499347560296273942742021357028865348364798320376806275749202138534246120390098193129728986137850096594823145009713411757994801317672961443865002024868894206773429768980366504719915260567331879980690144965676931083944329215890732871923928626836975076909340015153457852807164661316144370303170517144093044846309220167247189300551751708550820929919911148846187097570567600203116446725980705721802003154829078052169252058807105612875622997177628297832282291838737545607021484008504786302563083706423537408127157776553606987154205956948986078031077466294201918161298714039737241472589043308385844777475657584660815733688690687834347976315786844587382461832622500290385898599290424735991914349170662876857839202829566893322596034143392836025502043286974292454840563909751250911679677600496952851103107689369134144418803621850438684845267941520989978679190632426642820747765405561505368879060296361378879137935711200093955035930680584899877054002607988029364091922115427028689997074172297001412577127518271463053760048558654113879486412130508867948128102488789657556583645483251962108470040975975644089080554357132471198709264454831734200888172395056308297313962027432863992170964389555160153850109960174518895568198468102570839716458629247517203689450134170359264486119115171653034029301405598408241379424490658648658212837564787490806670299078971677301219280308786536738768982228953454350593579356099835813723407129211069653644498850175626121172335901065999226801668258364074437575847160507559777289577924644379953779234938433318154855248352130350184662155971414468939273321177256111518816672896762524346275537105479275682226507471700867760872219752904792826835383242216578999140491203377902986855365988617649960367418188143154935024386701384644646275980011910968104329461669372947739880922023055836934911727668641727469566402116338840255468599609019109673854564007516251598692164000248951213863508809772020012437753917396469153116905018263740127377130069719410179600053598957541598481584162859269830799962237868188622567028378869649193366556598576740139071137764847839115343355775992901228709426323646278719393743862421977762232957210712796809047222956016201767439881934692901091564444339049084519341981543323161432563499878720639852400852873346807895712495158625532811670660167866642718764714305995535959545942172144522508295714980943858250631874196934725103959061531819478703982136008459132609313896440997958498177967470505520338605346553784657611018253467199375213944414263919488208909046357197938958646254247266342625395159058344146585730986384374735220051150325291479231242018583586083019510531273527544423186902132115751770013265763563043304582706381780325177303951279319006368257857657641848086747147634288423533698424730816012493042385902887529306965248775285788863095238266297823307172202082617173768544213677694654262129012171285407968714787393970274038266022069285227546803811500946669885226176620607938846833159649341124062983901515806558447617897168544706645936132326518763480412393582864132144391388904843890500160306006521893060264557700540254986867940431379326049376182183081374191075567285791584158148532811618190566105541818862729311313285932805574513671611290855319582863619590891525251614511618059921465298657284283062438694977159674778319764490591276086037925616308079951892516651233956550895283613292297839470205188059724878014217735945369710542254173639256148717311320770786487352330130455463425217906073060090042228104029180977134516700558998742672062850253556010822563077088353359788192106544595949944577617195833606448232044533733810459968438068493167118907248805357806634308594677803452836572766290025288033322419908759957964136602043659638482378307061729626495545207639092330771410337871037329902429916297912538381670687141149850771321994414642146843381153075331524338096623054995407748856483209539743195598085530895022823608615588133319094799419737763116221722136484260844758606522127238133783421527398932117298410594708031371526739763410936188785183075493024189790774953584073374547834424402909472876796652022735788906928699854386191942306393112474478547012865677547205712378386766390997711422748109952582638928248033040588576655898916532084463776398817255811711156483145308957932069456229290829949477906037799385619710680038216565904714475505061628611980552258560601794761674401952598699200158779531557617280310870998930713456279034041993575275789419405124097775347767929769134701004435422096191820050852776851561789048121915033030598875654678500634286793732515224868955521063094777671143115759510147801795544022148432642462467665417025145148636425467460878635451309785178674651880978443553289974600544781582676472596414714052027848161482638378118369610249950221903108262728514308048178586649930579824554172636376597824691586456598623483372632178371986625834525088905365276428392638982389229555098621261429048521528400914429725775633726547336367984116588727681875701365229058606678349211107590255904838573097083829469435526698354917646793320053796711721062738387027054274123581762768946640034462193017485886148357537131408397438369331722601116653414790356410488545120919419868050435682378602941477078307622254213535637776489598870412792339251215355125607599870109049880994197687167292143160158685600022171086031532183114722025033054127309537541379635187627344410887436885471210184840101251431598271492011855682032246364398918374325204114367592073173302872024102967327756168504132487978419512723545253873405051884623108448192960093145794917111009417542869718924431538160193181708461151161932851986274855331284042196157103798887951532524120650096536758314810769808141120212237332508107701171945517762179032183890301318440079066884798095004722180451187808302766927476232076675642077844736445905968774150547979505348118438586846684031072601120649525566878709501212140551401540504618760899749279314207027911147913131626803185777498506512208988314491722620249495564411626459092593984112272327580491217156999184772759994443681465336463910618026510039471893043483560749385453759034761097986088786543455865297435545223679395142019101453434057020382352416143867970825345005555636631333613408187392050030954568726517449243687737268136459992627395525024028241545952470658423251635406798939301492679797117710155715160652335257238329736365635886473095429935151415518151691197243782911022279168875919033619216916735965794269978673843804321398931325990854606485996812916446776936748711616155147328583163865218531676182982911773613139841920484827020864411943024273497004219333351584193692203772691590120135961165343867020408298719706789865279674000730528822995259635949156170121255023037369066180997284135159567169897173253992710664636517401928239484973459035550051818853547334911242132451410674223372082543753834548926113900208123536069955893217925247576418008986444047362448686441325618945175131764511579045099648783305794615276603940519487763444015880276456986714460949455912428134381139132696266430637939377068280469291298228869933458694159358607249740702886461291885436045772062802335200018318641857304375177864979073126983539677181974341254482685880172125290667460295995662387632660430425954848857562703021649566465259806658393286413248312594051033172949470297486204087188008125849996905225723695431890191024494746658770581144004178306388311690578857550340396156987461745178820633165524883406101916290369445800185066058458311546292851872302054391015465945436385771152860116094396148926424961561625824426708396381104516591458189431910874826965361310032721404084683294057059461802652628633159639573680758417543511627530900083134236478744710486975373733049182604117025579570320743162280932346899589135548830465331460188380786529323971594455391306520401153533690294549735781721834842413040380580031230701700951344175052107871660958698777566865192798891963905901662062609624233066267062722599464696723089400910269737212812248222531188948969202632688256197764231010498351688130946914693888566489521193935545429882450140545610895980097652135577253865999528150941701667660111040761180251748768117193916868805728819719827728964056284862838617645243915749764126792061831145698980876841710915540674553313206366740615592839106281415127677944095343342269026017785781373973997097606885284761496775059374026635183674911926625320111530941071065483245184938947895192188048069011571170614942138100856654094048983167163911915391285380403748336989010124517434281438923387465284522417689938318493450204998133554659004670880462635708120932630530708939126246526835828509859592841589700191172807169873237941446679236531994170751642264068191575636968991927135233526455661708740369590289744067439143641311108640433123768878819678706577698569880740224967259368705679861061489332340984861411333104277052749052049775753205199702453394835888096811331156746945048648254308404689400112001812538386037727617779961894938692826884953973161931645773456140147204840526560233050101006088242768484436118413579113106361425897587350881109547685473618343707765732907519325119524794063604674206647577965345084878418713371612632097126693639535924282360260993097079514633031590121801015986675242111254052461455999819955627313190265955437179654777457406222228197060784370529620969202390098997354829377204799412554233977057462700894548674358826346256360600085401268472425673229223472771749905843611798180307634816378844923840782372085687101241981000718734235785253136379763586288101579056771184220480173204510071641978578723152667808096373734146862435947432924582644499324871398722312452755418276967428785614878609518911138647472220260118945208819645521699596853705908008609703369652906023304811279580208018602592962850197280609039617806305221039294120759377855550463271238224969524758992416770418392395566561716063196365846051205337083450810002212904845505663175070463600306373286575314790458165668295060619122468036194687837969279086077354905732251616059824015868576699021146291332360535501264091873691181529826501376484623565068083023850566229618232532286464453491789734426616870313490821085429250811368694017567785430675332929905644650968212521782013302644389755501871540084586606003832843883077344313549662142480806221404384742542867199750595420182020310818135236078532037255591949552218952028925368123204906099464240064935651716653887697058897064774146548122460237412596572929273464951655882718914551655845602813064057519199754974639862099385557700197775357193919901061482064929232091891153015418212622739869477293353394497445401885833267565411625295682503878684431992431593458204730248432090010262295906944242109650408556395759206538178295263020357152011085014005370896586972705056422691648699374165562461425995105669306605525333342390739930641072206506832625544972315600440057128115042813615965314251101645985360943760665246448106959157443147978595334513398313612524195398948830971308932662442794541481145582243239345256843239457589988608761257561643168072633243598214960239878595681559780367918507987902908988780217415783261147962067348455259967009619589982339211834367795715552337229890085400529370577164220458164738844258395405943462159356307701893758996415280903632894081874109030288942442840584002645159415153799807043152384249339114750644637795773023836166829194814165990759732982420073694563605954660126042504659200191313671335823429354208903657502966134185573559488898892059970498829667781544068024315076646526296765253617491479411107466001128899175431180516174956021347824970413070675396541892522909108920862603021034683446430164958786240227802890694747629909344596188042853463578619812211298904162663862995551821320848892046369328780564197911821701947176773014088836334385377999817677158944465251296779713938795974939619541648869776807591936481908481206524444304591988047096719624896011921910734519096814851433621756299863994213628899260482694458272597251655299403356654293522046287286025326905573420541306517883740931038375103991479537564406474082562055435084528086491531237428911382005752198891396402952163169294602205401974687948695333467688675540161867119011537394846400658650786303043391611266838448719324927547718248371829347571564719433460833939916596359674193680870312423579834624182203945186552432705180812089940607858666488763904302792860643437298663732349813297378204644330307993299248185093616534676527048444386155324993299156101841865720006153974606136684464705474661795599041404765055825497172229583148015312834851016778409594347604776599143549849434540506383228760538443663951752923692133302158298349935941385035914249788993191431333417204711016030188947223442648522630699713652942299892711523198314097544093793356203779140179817446023336063384089034410251754330614112461172786131509327683076295331434717431714735150110576648619826603038430553746991636993012092304563939774770321629900782532120835225953315553728268123180428082206817006317052949118066233844590394660319086637020556569347280614418472660935189831177917273351209016171358524454857142307894236792421602359395694497261448049651339375360436121527291519782326168988647527906969516285678172945672557638268227704751068717799619121113321905433112219337532557988353837146129245505568151893354538570787367124501507516873209423391129195690983237083908922538771086455405639703980405925282715089936290931577039279654653626880153339713267918957682663987816185230725746161376133217653384861796129311930916095505592590793490855353759741047206066847079225325844371018445684257855150507322727638840330008203057676396526590717209811165822065189396787314947591522923586475144329825920452046250039875164678532858912900877212525190797559575174164369806771352844948066890863870121955377995172218086265463662649644410372194207521292380818918087893634064922903999848942623190006908417599444460114699706250458143798654833035805416755866685846858676939134785193569256794684958431493472604408370753294636692521593643904251768912648867655625878118215562301259502285094255721859904609377983231267458486000499831356240301638141938742448369580962769799089796123201971214649740431189095420405013000057415099370447758277019413650489945692408331353823937751691793744655380192312358017846008349306372647296097780482850894074592603152466245313977805868544045554021838444210584857847352183792199606462437323088164320236374174000272328538986585932582017405756606312417418499885031200337536031884633588112773207362009996172047779900786999496516072997785216006048863966478395033682291672490983825330193026147841011485330731993846317473886879477263352786706038591561067657754802137207902853515995972096501569773084122402487992699231445142472886257694387866672810858614277868002924235724663826623567113086526715823112222053498665902824803603617853055953991552366536235330902515729897308210895029199810910778944014681234276149252332812725536661599899187235282674818820706475691012522462383552180401537913173951351875227321910974203283397039961836716916697901957021149434255157406639268883887046305563251255000550293218806522296623102538788918474913363361118947694409936637394422060064548719838864456849723663564649612082310291801349983308593230032710993704558436210873537700846117242541339617267414623353910594402920579466628665805627138606605300877287506788633972265054174204733400491260473644052724017609349648715998530719669059049529941688860469617203792048462481097093858486730647277271076985188225869523433957062671686913279354612735239745186602032649518382782001984860718080013523465594293819088142040080102886795223358707936763697099674396888956305938816250242342970028883365810777478061355485245172885314391237908555464431496242313215104349667579910980388065909649049194063212390977001162669111278239579323261113326967277796223403254134649174773221941619837309795015296976132290675321394912739455780315654020705538131928914092692542806395736182213709986362356030929410075650231815483400203468778660906189941801433629436926066953957722549662293880848596440112651399320943073599393656454975563453276376816375166961327885510691007835936402861150747028207385140106642307156859573571088503020567413687752977674979403744413384094525462436764332343993324538216943618718010542801898317700499491812458684023675992687560374662072615001963218674123662323904093593587419465296322601730186648039933201149216300125667870739752797294338765815034045135674728352184453770385219376377709899265623368485288167322974126565387572030378023802955759124274526591732747589942965774895890589378925247975719919438923267391732793703163205671721095103219251810310801275428161287431381415369283114815924012290422807622385030363834583914842443950644277301740651915170549873302207239042866285074488983543344865582454510060072122336675667977744744581637077607881173697659588843175594379279309409376510263014948075832302534471650364555731587955317784576709288419508417796544576698655248267883128585560790992006259136979691783709319005890413793318765397916772831621338134265350307942197681365945353079614400191006174283500301863178149991207427836192814225004236362965537705735535140716777788246728650523241409840345974213551687450832415346986275300806544839859046873585356780472663723371789166475349351545102545808051465397077576871312252301822557844984620029356009785116909029167123840335359374269590338834080396361639973209462561382386173759689002362950816982354246664030017716069691157642582556982535502765239132739916529082358334236869849842667975898350051840786076709340742059135247437944496212856256536884867532766185091808461096541956079675599756471576616387918505125633727863442086883076924994735916235979473079736798034298058176640829318305464339487058779081566268214997795748582426351865928399594297404100959768734388030438982767327938889815880662101149458188910942871772461512670900190328376938512972520336168978414784783827051085398374054636845895752441670024111609340217271155729691385063314082684699445883293168574027619963665933116024017895397927691501320802878928522834110654876684761892818235343227896713516271378009846166484741831383871635023096965832215341020511072385887817852146858329452076594511782616802994541114673781323147916966764149959511532008447846846422634429144933510877690439804532882896044213541183429022084324234096475120673898720024088217448316778531216879464157674098967576845211242472591893566449216511148729776669626088259788314315871079078818985996155943028617638561901563450785574715634236458358113914291156469667812176607793839795736471992193135906559754336192017553073680339807444648898471989990700568569761424249681474113443623539415357496549886256173273366996889171769494311314751971649441955602117083382594682286299179394112272420565958233394559443191109952956408042382381073681140193777075314526645530124309370243487801689774813726416863746651693084280638186158940994515168683803278363075948686732517980298459218292414187203935087886952627956877484778572199198023834884714465960748592965002172543118205692753634755022424896825358790549815256239313613122975833363449975798983170659608846533677188557113548268019190384635217361232951416313833898561223963991356241118986877388154555094395849741901085685137360762525184025666157382166202221759583382506326704971954876454712754615460067968145454259112616604380233524049556455055936230635397106636985941854096048646069913082849878008452555933699570655565047435173926615364336050848901633775245711695801649147691837887731284856944903844184012417594612019657857447312208997113960955139831457610728749190972937886677174361101336837874430398247581882191633565972196859211669074304601546627145548518826767007651266990614484183419025413778512141153071267531430901059408835771971974645532306732717943245666887751348231166535757157865830019996216773328290826550735204511135901653068915729067899924752839856370328042506906824773782990823538062141518560903695801130166840557547555998458517049991639105152156811692012284214711934972344671409401038158258191120029694650066596388727443201054944929365311120623383951193122768496769634059641988963200571223204788456278091287079054404783782176687045346541912669404407845375425960508402195808375825339813980486258061454671893240843812799987846091725262243592032790510555279145968464140334669692053319412369319173941673286928324629502919454605823185573616787107108474380153265944685297936483547292740312451942258482838240819347604898721210201257668890506483090346184678195423878738787745087558707493394669292664961433762307260564315630039568047934609201336308073494604689191836720159930255005903677143998718209314244501057185504292578112653713243475135352596819605650643426812728455410539380666393812937539992010978378771813343806476145420248539078281683114373566038401996455007110590544031115347228713750311925480803510799537436305013620453944818892152073489691596693926704976494213554183324600938413525842070460076422896895561887293114963436419453424090138028713285001909326490090811051075002595725555035383172046128521171003634815171876946422123139640554285113442343698744886344133164290971065719789209187407691649426415248949917694151843259590707779249181909902933114099575286932926471350539639707333045342492023494644384475931710789800763383192881596010334870572848356198905592593453519678570361797880496298533135341270110868832585609463176422067680615424402311201630152007553449529029037149865879473889262148805154094846719377096067723575742637577253096204475820099061801716392864418671624320784299532091044869356105738897888392426252360830095525178183267146095334180971535610949730339561703340071920190759291343724970891810351196052769946196325599016639612190508542679327129253011243520132995113978761069865185743528002178583538624012739295737760901830564584881793762313295815034825815250239315314994451367017082857511852505895485172105717131300580363194692121572599171355493247577948114799726933820166741465032402964617743197748170140828119161434177154472652551190500394319139084095637482920900724480356686446644815807293963039164824994716071858561366721255097120955173552771452121619399451026415444218329359242006918435081491719566570753489779602625013923852510816614224560609933325547475952224164222429552509581004480144459029194990826309895330899508608469049069792534024835652780612989465938426489807218172875099498994676241040817945140435681185398427268056060709014662006208504308839955433247508473873736085376035060889273734704969548029958910074463491954887518900559626270595635632044787483762564032513716590747794923520104346099589941561085288979196919684742597301283064443019167858984172286241629402664727088041421870158755440987791419944644253825015337534001764139860333592376699171450159041963707351549244824726250505997733741999830042219778932829457349546452267031871223788329952903474801523629789710790205195672831512000586897785628555160070973924336862668309148337149630342549301016099912311764359775195231288426209545692557146786738794072347174208291690222780381710364552097043547993287825930525598869615651446384243268889218731740504897140594479749195973873642365691479767612955536120108490048896898435446751796383358216413217421865674588100714595478351172534469310090615532038566366767139986741962173784816154963699501122637460032492231516428497270684284035141787154526604227002008492129617683768865290117146529502810429821307978596915301433484407361957775120315298542777408809510481280320191637180246112606043496156847008480724233420057986216933764325224832109802062252658913707632375239576556536521317717413348868824494260426238554602937008643135797439386365178221236941478098389391167097956918186414933677063026006807235803463695391396280492499356545406499033875532377194759442613920844991434102577460082971473714730078048074371582314088580791069086713120199879311019062230468769780761683976928984531395806015965886530477645368135586032023989581017162499587149935237913212067861787369991562070170282606250237870005203882777756027965148972330787325980138835591398080119466918321627647340734571899181243010201606449914953187720691418200681536579556352239752929306966877162365000944076838522915418905646995707837520676656242106670047975423352919100493878404846215395299078670436451206259343748842985789769995646020234649302747831095357135060954290521079517749796264495229885695389714770930644916908240843056478685449446414144663096547986689608741512999853458274790867110653088436640472910659404993088084019762370987416158145685368100559547563046376287790226313594302026175763345803524510343112511062619710875742737814710824028596784125080994226696729357529582166893588262496427978315013078402461186252351306481112426649503949105254070766814866634501674860499959684583388785374854148168105327172036116315351886283385878526973600462949181122466294574750484020403539917831653702275711840339546427341222839619168318086688500018220352827331225308697104325424886340103290617520826979028673659802017825325035649487026574867320374646416731485765500384697860747758663033440228796168518141187225626975700630078109472934829793622750425955491568405352480547750860128287749459894037853191670438180741554185472625627894521681149047078224090386259868296481585131052827159813157528778892894020041059972754663749039506708603644742508699961210406822548731824616026212216291837373278215753629280190506130873367145924460005918458928826706566736668780552118382881739259814000586021937465266992624816431910732881647459143963367521461320438492419659591245950360667669006918588821898028164843551239600705710708634454423169169284609474650187504451772409569497461355686469466435733503194474965692670015447285968979082196625460400297241033509602467850971623738372882153431890892852462252890080988663086792309131916195764804692852495287400653115930286570966473535134820663327364005138544648346712167997796362198300505721714476932154147640765626323159010004213059626247577844827244444631450118233890793253919362115378848454562936083322434600360288209215678399227618588627200528738025342895810687121238495368556582378597515595987154079602977830846832266965447022069846786044719979162309791616162464552739708861474316713774324676733716897765539084228717078369191932076832843666096015636872427476597953769193154244323270641809664680464996069466809570830677445002066284771674814484112988497454559333880907577556532733030212861739172778033057559274118267322287238928208232646360244985700264766705580296788983436044625447889187407770057200962306532852873687621498462156521686460955492296388772013116468934893285550253989083805957885583748292081338339433719221416955480063667880133523930940364345315491106834090040619604131756826306047322266173137705215257994352858597380894878864655280690363474734332602259395616770993745153955048035783521791607651858804961175173657170644543791598035419468717243058540583890545029244976954192181594197187487559437178710026951356649586429384582671231488561699690554448798673262901006212128693816043257417458319154886141080241635098491045978346261093476067403256456746961306823048576688048714900898181130281924022791120172573809011658969435144615022380160409168441098218059011921374139322437605823019959744954236686463282274671343751323661837351845626211788207989036991497417954282952405476222492262573476551442566300971141194837798178293440937558889310612745777193063045807276556965923473974468150369976201799733329078439893625767519300183305242345764926515136722262082515657526631595883701693073787953804122814790881768390614824274180323890465727977620150569885277450672015947666085840310450257626971912537610778710494312444094279615940782170240115192316242111428015143860115128093831305370250359014457062844568240873466843012116773387850024571149276021869712510428732021996199668518687547578745730631030679072755615038262035977741887991415580284494131592675631493717612556024237181366227681545823793410971794602748247735384559624636602589179364312593009219264406875315589579245263181655391880691561083153489279577889414770563537810678488211747388853820302858292276071683380847606446313308497770875928533791139785391721806259768504365123023362461412429376273693774694006985136582855819740891370501646999191954621005346557495263058752452814289425090226185991583300725538778517685288012591061478240984574792292143309945020275067190271027725619680110832481915284313069027944748129407391578887558508615785816991030812199008886688875014600016042513394670458403770482127027215796149116066033901785691347655722114366223473951582343802736616058860950731574110426161418849223922327577999312985866247268897970274957761649355328890639075117603784635497945918527261813091297789208227213303346436879776576065120211701010223452025123263345778374592845494842831159510615087900243373835918756615090903743552032149452783504724881536438092135050521669200394009525757335934819153114313843441074117949233144481622625562655068174648129672392228784791581900614966653642534645002213484943013338551729913941927636411392579486289140855853524853687917985950014250408365929437907816777707092809232395225822613344751621864692257082795481428416308744909889782562125099180723717470210805561943362900390213497943219380691588343052053000875986030243639425826306428547241747835565698150612023049400543683181966237446467904259174180451721423261681003306649756803908143384270135725942302632987372942611360462261939300642750413354664971048395320832077769483677988695187445154576784050950882370215569370075927854385285753039577179320259262094086356664302137504846435206937909506234330465558085979172280874279731657983759890824783645684478423327430781327907171807425800534047439292371589823434469408909615481777101180097135391220941997292962725095746541235529288705210640924595561451704251889630922282385921099960983433100764364878358852475037222633182906661091910051649514298531450516284296502740661008966350660105125364104174620499873286387627691474446186217615219267361995903238877710491123379725912974708685046437421844812695233541329952616595795406182128238877136972405718906036234919536603556658415917720033608189127230174254562655561250396482057167225990389917277053301712282296102475069476671619937972299342326749526624483746022174873851554067383588860795476948843806119315960216340837559286740742392414149454886368910148142084139626872146008059136265441368425192853836304066500967470741005810485612206513893913289341606614650116683721337954091283548137042059717273558220246402154408643345826027317162788161858045783525920377564938574779535203012001922472374801703143504014327605255044893540197057553988849269046527197802588608409441134026729268698507873177786925906785429869568722367385345085194062183277367435463076194522835152792615949771299226178920204709610032339930330586526958142855204981529902334650075500974811213061626687485417632468019978926131921617085378302715625084237053627934022346398618102539652878497448414425538071758978090768741482905222800337578054093316619711498338608394058292411462586284992213701679157222241072860332333839409286241965099092127171599302594891938798094692202869581017157087006044741991443148143076668178409003854332724869615084727212100784881320309651763613582722896426973917819539726986033035155827705578524662467070601635360548379024982373513752376543966235822695721510915595378307070735590854252430921163287820268059373931548843911159525756592107733765690652645979499595272692472912717421238179101887386349228429924185727821581266696936751829277486436987265721048145992354587501655776139587726252047606926358327288036692892713026398341439323178114637375970550109965219107567091010174586896830775392961727730336222251766305086334702628504901305761797994713719259825714737581060296930763597728663813608740485954898768210677357245714413513091403203153734588205254272286064032688613140649176195509838751057967424117720050119186475394675785864629797684832013245470929645819237229199774303157280493639321901004565201688881333874615661466437308249343323338877211669906305110060399014432911152165867606610909176753332845782125953514454550469673704523559550703667813794041417184895663829810310024835122271183625354657998961425867960637874940977770055440270825304309960355171830254443683042903589153388244252965294190777316633637524385204711373437594366615183630151712152106660949907673753388354346313689749737496042863329272021634732040887762361589673603807236121519576021178840853042148033616467643832196689803944923469186958553961978076011278267761157979185337494176146472550505590272664127913848590730588554173986490491596695829757427987749218761320005663183168145074924619854258315087433678613068137003342674223304413754115058915987350851902749003242836780443176610322281218674023478857264361808149698131312290846424721690605112704854174224891894507740359638394448721779437822473598423156238014990700735345448868887911743824642754116590958071964378721145331722689400038478119011539745893890171921945671613572302335997409451022779135899899083206479680832683637638971641173995361306499534746831148226007438684425193226010389810791175840442388271428895913060127795244471196888469807278226096167067709353928549899253596943390775612838269822259086435173091042479683859018999910973973338580276751526307527315284160870353935953099238446511767441812822410542375369729614801771255553901283247896060781733550038653131796989580568136913475671789258151559708166609057705108383840577003335832631598389484326737452145996163558868196891153817493541480388990257041683474336490675691468374967915555856390936315704969402191895071404802933130970021278616821260516393354704382420268669445159789363991216945363071072744000217109608836805079596846885431043448347290803318705963614332704098487705921789743314812790445177729571237384584718624503835285521995256491931669421166065979271759199387059697395082365282115252352245543085698286362556817403523061064129339172644779786241104238714933664219809118767678304887713418049106264916475602473171041134133126868374774812487332792156051513743716201459195585461508284720072193556688747145408253271701670167493598165191361569313780608002265567985765803144557255919429805317198683490506617145327368793764204281100889170505285768438358892314154527240249836578416476437452651351137435567388597810031161206424821846174155626259102998209657736043100729391453873152237812692537473442898978751685152222747444054271952469314929893888792385639770785111962607533186307229997529904138713256383662896572336989706492576633658268760273579852178804502403215296945604119493071709285968518453702365940722520143019133927476657676050922798708803567012269560962361579836502090380700376552269996107373843343336771340559477467312116883573510475643449572770737754403142190134095555624183121845319234071408806127403106780321747472871460705187394609878066569822964296992351709844928837287988475551641141539142350427690252356589182294382101891420680288812783517504072121683856130218717482817173795561529802646721376132065932048575147095720783963319484377330309959681670599974942621546145159545457195225592643701429959281445260280752806980317849692109551103908546504404188324655380383589942368645038402141925783989865725395479315874408515330450401954742506735526154316743602514061627643402193192775036922507563308044993034784981321414946063070624502981743585372561901859653890509830389040596855866984150695650873852285312085633101268552823784952601561657318474107446804221814887812922356651898552768137456513647787808020683592486782235888147859009186351712768851403296122761223337761767755942413529951874918598701656578075078183411218273722487855634863296063923838101470295055978684818348287819244019282615728513536886782487000149197273007724957284634848280746416631102026607169761886888417245535166332049526583744570935351940376811156426765807124273435302043579851225589297629273739236502319193064038762869702938131410874721365667835176674924377730816125576154218895013441744118998533271667846537156031657090949622298505108775643836875469803123702973805995793422009420314060702243179971238604519143987088576781535023644083405539240851136764356273071750491569572230198493594395844961912212982722918171716506257802447876123336375873494544229033076568733931213812591267756033792925698665450230729863292792212982538008748367284144412741621750911627647693486589273390694915874014189643309067443259233672078390737954075732255316269017421423577520638501577348062046583269710915346404252527217288634890836586414682486641035083127996449101738318596055252494113793286818636457134979914328062190285242873232757476069019241919750251833111733378337855388675660026716328096536481442982106683558478937922912876726656444708179790827115022507134619125356781558373282867155391862208487777728777143388547837229226119063092661930905488309331147664751429297276363713073594291975152580359010707285808221645885688878779350136345557648549431944598225045542147793247219622932254729770492954548772185036273135635365783535540029039691589694125454611799214852109577345491288606092485012379608766457633694693733096651984809043222804449858407472433264401789974563923319530471563356534562946769936477073095523029926526929671025578249130274542959964071663229867803341452642545950950611903506966870623089361662537838762532552914868711842616170631393812078219369633211889184067530554667108698279860256993759671454673674027600737447180436736295550166805032420448472403694303141726007114146769739418801168352067232808898247603332809742364822256640292691831264535247364912872634540960873232241688169700200425877508356953335179820799463165156436229106876448189110528827046119761226569795683773218601491020441100602364992430316488090449083632140230700242020471732751583753400657884909137615550682740130514442192201757342254954796386831367560553070703869351293334957651168091052533086072040759378841403742013797301107090456402325107632475113601714891398855259000851687513072172099008212409904368149636077755248988691039351050584915571529472157127644630706502416398979660493218015477220803485387363003088664286783375102773384229010289472178755003370449523134703552895282938531245511916437803096796688571401607430861893048254238363284611445473689867751361705011858303781820240145070875275950022011685914457830562297704728050878149572185828945917392660119605011557090508875017033136769701078859518679366684332976894589855483046837880041799065368370755211825361565126841164330010957065814191938634091149379941930765904662974146477159404125140270206162334462630121805933910925462256807359728600741496582119697292253132983718383201540850747667506231260551382469211483414224718756838551294492874459745475546660689545657665972237979708898495110187958803206129003336243820398001423835049673719466815086940570057790042225427396121954925682638577235709502187531909416335656624913995685459493052675452805402374281971090456052214668213327455421424650525390831061718583398126667388989965178552105548964177395497989161128787079319095775114588579276029843484856376616581698206912635212707737345450446853640669339344205973480914537208757473071675426298325423159066839188975433311497010728121370722698703222565624464054429418923219890439953376336708107868107281705250418057087557090555487873544257141751182088084112543052076312973626160136230862214230050155498340349648192208113385760749791193561160479627623972311413096380826098310921559615338743066162887530269305400693299817139753501895792831385695802090601017418573204110450972041859788394382975724284345457331904100860245831713616756340499995008786127247666579002439670802943479192670175830334077161365403950382578974128646883174625834428524054603371914213626907220644026897857662512264452863294021063317809195610888787395197903358704245646659357475265590131995373432291431477560547816492645555032375843730218868210952851056519733526050798614572909081154931865803884802716797136376172196529555452578154590224376514483512790309193642349146066088350623334059146847781729567367167793336709083161582319993132921620475750075117609847133525612234229814122016460249295373950194878713372888530712244406465316543523554820877749776971890018600255662616762903568401958836758194657739631194623469651004803374696954688307276054347006943753730533623314359391007990112523851379926369465060717858560078733016452951008647753066950605543930042198052773324491664024667213247048174253088161568671130411965969444358155746003918402925430496361137058178926832163306274878419974914150186049133466092974142109660452869222978852195588019735230573174249268576029400290063799155446557355963071507687312321531531529195663222470045734745283616687373338427588742571811533269662529425898666264994124910614331790633019957145262891166357816879393491580970997529829875052500213043819441904249805509250799762712736026484700186172939379158202973480451169564219955105041191366676639030971072109936400281653253034736483300052261240200580439922519775170060118548508129208023593982035847175720701835553174968024107907030698195188387014673550442252190752859058060944226488586445841246862790328309440047052891616319645782954707634898410468213806814666128983067039404136293136768529740501936302463760745912447409293003004281962982549200713073124498762116121855658258559045755518312028524167791836830765984163571330238034823506820610731518373631312286449591532805053224570015595168303453423582702029727974798953052911494105718730825408445574196979353739143330473695953067602628220598799680070770459048086677474984997630013080171157612858938014454287605855801757365261515940974598580678381618392031660289724897742657490544529877475987709139321803773159348376376910789189529477007987857265236702898279996101789300556330122245753020143093377139392679658848397256090628728735024191768453362445929238610035088418416870122962829902417031154406451512939680302817727819849805858134886315158603300699722291377393156973303256142996988360335738524951345795160077386854496480437481913355846387840060677064068871909746454221220912587381160655955253864519561342719136533473616083969324960923058805721561341407865000546555899244549935585978726644032554030623026217198512668762531418047736662599598040994277855532779733170517598785842941634276116213036170185984954112676587042507210707749538146742918225722404088373602901586214920189865626861622618572363835512852141228109024052986094051438857796256351231083923560239976149340106680949121488214655190899014020497359805493730089454355158165526414427962060067290176235368115031923255725470811515984934729539298047081389271072957074305469331308379459279256231798552340385481773029249955525565107946053895207995378304098564385043934186493223917538009287337943752010841681938619939561866568844217198977678525310725788824684633825262844693904859249276862066179122474701166492307711714905797400216622070287272839316760287537877198682853822449900781080903113533018557296834516927418794200825055505599961886412172146173938597623303900358787797702189628122434339918619783138867707373559789290898146930489305660663052376329394373407567717082234243841599819609747640113096737810637370975294356985966498277559356913770020337814351747352868521410501568837415683850089803917864392636158812407057559962720538244233539130858650918713067368685024281612500671902200559412939930522176838553423312138084474344247073154416984140249345509195895156486373214535948109449673461231058360556980235073984228539417201896799280786898170969193352340136351640422019662392727832604538589266479124715227062026599611910625878822892964588023558579592727072893280319356812779326211706296856727170204706453616431402744901983972525849917901868795349808965666538161417150048374196685125709972911484276456652746589503150080246710828775781311379966506459347830510476070999300908743295320139623954405349986365497837503158192126160321117433316322211202602315825169096336438796043540578888202931710234106221155837690872087820343517419348679834324755189252867433100472012286595080307093582828269906043563335196617307726031253122636479320840022529486442883606084510026581872483514986885055240888743958352513490310896541589846245432476907281623347858197020780802862931397405275534530440445454101871729035800555267539907560407008037324520000751008265333751311577138966183334441868344403533185343970818167256011400234091326623149615870270497364284843304725705778892561551064222957747152478904539577718648738117398029719089645897882974206033343527208984810343258394635670971859618722280989313103230901472411913122538960185159103360116563964795910300564783081670871197521349403505964140912191158960246470688889762538158137952787036155312352729665327044781029594284091382730898126052320966102662198455441531423438123481877674008887294216660144376420778779327947357548743590486063084344399925809443218765771767052926859277708449901177407266314166658780722690643556517744201536553620887302442891595851926803097429997686137787336201376745919848544042803894087314118826629680763997744198867488098962406547706301822248975347364440448151069862814282460315070651777733624802556777815552842440331967478814782787383412378553124026400745853683229217340305687646147259669152642223985484953625401125950501035919348879289656764409937453746841864590529909241651098405841175615001378060830643293561588536733377752721406801505893669205927081600714728320609502780163202085576414899457730197457073175329659739769966749871947298139847639880731508656502417051116441234864188922200854183608245361081796001747240950606183739900141161684075553789956715393532844390583151110493344452911737192257747682788252332281641471612742456557762445908468684566412261084245106766476071548737663501412282242236050496554294009298347499103141554691569022546158251536334470261268456361922257940228930113282570095945052557374694616028971466940870094201099942597250315444811748169865521533789512446340185118879228497495813453826452076595278483803128275475252368228310542217301172671143034389092468194002601144793400099405619399840173338238386755715903546892611535775049623848988848490550317294562106984584498740851446820580464944613124463650243442660053218151570469581091750823560718897535180460235251289540080634753060764311469288412097867314789850979078449817868012502620362451285969340383325324267077477342282183528810281644083829581565332665926968250062756874340787610630131111861896433041310651777584934296713260721638400293669740070229199785559080347377496495624937072958554630107074537839632977629385501817462167626402639262003148736497475049460808861554059041632831227180927188008867120686489190347194667694004710215479377486016728967282299444524457996864157306961348103886778133394020681294743871562581539613624939856680531845111750451112679172416312140694960799432795660254558137472922003600504670030033101435643453414168185609389542792235570061688038074957003902638669535971951178198961090856869545790088697681459123253698602048602251594367397171461102774505240477439122533957083146539596062105887241626041577158900621159412468778429942974536766908006138531766449884074944452709879671243589963008947601671164738645499243934605686741355443421762369834495918140877870601190336979428412083682377080677390969599184991130375553113919086379058952515426145061248542232772245589949177855904649215561179025024317227383169671936224939869858251998655783704857664825030176912091960757944308257587665633961737541448967789028445845407379292850278534876879654690374710393687624257655433584906492561916073050950994391723260674075738944908898317302473974586724720618998777748215288592248971124729646124183784742262693104069686655997154202783611798917106934864974828954978945802215158004940985640253031988443420508398184175910115898249516372384066001288181719283434848007057678249999581351384285158795404276215061033640158667253333142029477209880915234995620154304113438792110219666573175838766241411146053380125765508484929718156739143376532233743586904981952885948942585123897298315858160414568839928534299367283881624105582824863439172956089543443106759964739228053745934784194948172726546765285521566196061235084760941786915494017188044811561215972005518847092250680240692645362592915439873092903241643722905589489012851030315359219612691971361550004791397077310258632121276105734355036307179273821073605603892801036367037263191663801003371832980997972770903236541299755400228583613477755202810668981420696241263901512836375291757909360173380769703402739176707579097919420961532561869447896838855621082514560718197576738480679874023569839354107674193659519878836392295152013219663073307785895989067704185562753516919686864835809419972477291889829949150297335406710128520506168038792732841880259657612786289492050958777573608115284021388537888338186882234588813689509601671685455249895982224278325742588788008433057237138125222628962732363502218951832754781415626788061566953622269184525654711345025287455331975692461103237345122784578078461188972043725681346750903938069386911729888442360618079761643572044153986365287962257409755190252022118869731025966708790453121345690283609638203100067933161131196526036896811874026429643139458520503494564704544657387587167222500247449083168040024797721837826363063632988959934177427240454230604715752502581018923911349219201147971236036692195625724140621884971614391685103029996595369045408131905214254470174359366905777521966043834445113808342536637872662649625064757626358677422689166704440090963961820655318083412422456945097647659273733300432437537476141745563951512450848913070477762903324865896206180492037023512419318669599229145804879066756903809556187618236639940718746377564790717603126434048568415403706501248565832631483906014655583260514218183389070176088357653993897579023506708918322384563387403476948013569251522707588591418744917834801444062490270223993374572873053480416981476492185636945010967031035157458993653650330409760302911590319341075232042715116584196511820781989243048775668642269725097490925685907910121091783697046048006574590241917287931144285651945728522369759539523607297902480330522004747689194162342294643860331154141679286142630775036970169225055950797813256671847764487989250494237044420740727350786087251028921305928862551767020447028424342197462008322699786483204128480324896274400491287655367272950615358576298715219605837801637629107309030578561944586744041056028299825325878546422356240812674093710676294808714595934949571541059844316362623627939841131500309240038806844410201472324174313574724171759781304081095090463630387170803054107071817729487739615281491517510349042253896203731981045651812671414726042520690050328180335245940435734097051302491059550473952837054046917691593848771092675214076556104965786728635570435538211149157667444285849019863782688046240290473419267477471694804723398010598790412158386035957650789388964376277221103136222557751972199376884805194800044103643904452435277331489844728575892326924083452004321266518863087963795744888014951517072529541631942534147299663816735759654612681789804183450716995427816781659516316889211091892310503733746361481342776410559343839660215502529391316370163979496624726123548558689187483577505888681898225250247962610225629056587190481396707725989334696522315900246741197942366107513731910121664730273657600870401381559002436472459710331010495801435700678332256546834012899669793190056959319440716243649716225746060880401853425861246499574345494375260422248057217358396382010158910967340367861569303352812045439389867844474686544654769201477048611809863102132580182068915103430360815829204391105260126165965414236461516456812566728704643621263510346816297450442739503653965375985845447906377996440581345468710048916188233621960627799661687978972810960657706980901902215005470976389261922759599826600757448346386925053016243418381021417814428625670904616429226390932073596567790444419407213028268144737038372518678036371525744859001317034934508877089910824935599446702549688164460140524610512376694602939638279205410383934721101642252640943764915500584549341728635191029029691315244475248131871366977476711937315588456384579641973782352454711147770285891749030369486026646092128938329402977652068826262522598107593675452722798058716278745902983462014707465236743771833156256868210200406782264446115987410501435093072208686884718153059445943906496430506866065438109622279671273856468717328219625877768219108459212271846072199529020807765898815469662748439728124911524097798634234321958661365685602763070240036180966625809018352836421215603729025018575158987576660841881957292084556585393357407440886656001644161560638376290252392847308260097268755469777692912118456661097869744000183990536791041244514224351183775333382776297444654382903306240411283453832987146442659581481104489005528531843519306833777105495961221478441708249626973962152842392828523227960878540350865828183332794252406821592603658241085079364847005080209955988398403997322756910214891437179364335822274333973049581629916775151648814029595421877315581888981391689161610870470705176373427751600485380976503501746061086238667348579311614148414836962073026574666500011584485089006164069400316376617802870747647015458780351648102582214843861189697828810151512099114428957425329997703569601731476201093568241027002158346607738039448449204990758599828846949717738030644900683458787353654398898150429964937452280072990767744534435809841396989535598736444227297203995778834177310484007438480210193203414770291406085469932300374061173143812204153712683611813978303572252665851678386257338419803533347586829876818019238022773021201718987215894236586427587400442460521973279763634242120868757389936356188330991397211594318681302938276073369305340639299106455080079746457505859773157035706362865493959724338130423444230318413035957632003489232737950308875286570334400715595837626561803646110490625349916925410080231174050077943698264406898934854316163620781644288326365430750910911283960858869278846014622557482632555752151958422232882450875729596754691383461901022333258704213706892138823463747624117914915209902408895449524010325788044482288704947238169556567559280508835679673763782550148916286052398144790717075472311083464017434755073378547556725567771972253936837144106600973378545511129076743573092711004303134020225364068114439844499490785868431435192043225302988335647931534874638247963510465873568460345749758666818140282208784367999362370061865555367777669416647219015054731276117141295038874517357206822483187252708474528552815651817960040846662760770391863239948708076102283803109902830836081689926238160473933717553516240850041999688241932353421280750314626585357827268651662517393655794859142982146594319007232289522492718158406409567684969357310984886386838475483465027009770112768941439314587710648659883929668723029986651012054054238427466220936783600055446031455496340282337326131278140971581093525637525297215019410324420427550543506846848622634187163202658747832146256996224998061596683609582816700330634192740856938841708487001742300778546769064155757372526579577467939930874254199132045138731411153369882955660403273126534865795187452921397580059667916717487655527147491586578427090055122124140778645988828857416976089015964811258662530468218175226397663507306206212775819637562130018715022589561473280403303601683787207690218263877583816606044440558765596204119055197193256929702830181410604110982993381313259061221625714319520655014885461666872682047057281927423307590780260238401460949319076422804014094358282071414818061524223947911749069172544863145496717473299847895887010137412270883637362991918946082233506939124014953320905964726867869123602281419624573888425862428389302709224734367844688839675362232870559745358702893912266907864186283092997994182563933304017041947762782590744829443170214899338619664632719424039498317530215581685338089280657113682946156460766392697340607095747800777694745345715491666057978880557907614933870878314596127709023667986758126990477371493217804138881634057592837452854576155883195697612816978431439280867386037305849007727170380596447137561391361946754614894346133237430276101005496861575127510674112297285446558000627768750478162535649955700018519243650864937284435250046846239999429640916153704621641845043443017973260635177816065677454595858301444407315506472402330529169761096250435119928345332297885371881208289890594063817334305959814905506924564420771692482239623310567349742137880592004606533638125828853651236664164903645199753749610594697889608364767905804468904486564758895785336420219510221246474611136394344994112789744007921084789240996632927907054035275131474419097337421911682020450576787367547057076096797643719280853260362181100949021570374311174998142435514111865767374575619359427326090679512141038662763624718892233471156402343717137631856170929113529367764895857505338603821152419203952388046162928782704764758028951197694946832940641052135263838162505252791869330399856893216179917597741072346546254321296100899453019868828396331537176795244767173445800208767853592892710881230958112956935563047305857888016329812793529753373663666872530042618791837062233610409501969342049498282191627123022888594855093165874705342111067740614763022521027371683385762352556892726971682464867824088930981405381426199914882615447364115466943004412320466159389367927699232664170353065915704273514943579818647252601717141336146542332304413480247574092959443402132831001028219577392052560051606181858393086498546857154187300112226985810606242970522454395627402128616681832108070525807605588049620561756700798908403253862954839975515840412682638933289432096016013246830340153373227664491697450159432241725493465842837964601973330583404337478654981710450563470090666512280303681934811530716917514533291059520841021682328689458149751244650659239908268947483824535646636676317720987823326361375436367877852529336104131893220276545803337416321723988425536456789056280473270142217938794984465448477661308572265807463524713563803387116834173864484734546726112628774246425688370074642913323657185013113069137012676481465002257002110432962234716520744823328717430996896623611397787170531585453462271757851436898382247755265501624517664368599574744640775923919039685232310812346509044957797579729617715141957325593678481999305357784911855423055251662494034364217742500293076693396580100751580443482802688450710155779793742883091136316096113182906500798188317925075308593185640398395084523544848220275080484355137954513396320600885363481191827473962603613736331469569666869466818406519883804963520154122076933404039262262647845208724160666736096627763216242775474104804799531291187286208519952418138265314966206348775319618468065576097172717879304863590369656695439344914605099362275829382436070595297426925731892335961674082242380883280829839669724421107788082810718466191470238274452003248295586122248531580447204970935902664994420955417503502097429736644452484635848376909991735726357924692464221153483931980748310437376961308420347655443908058538679902431485711646544334962840403229557362288865298187589389943921302834788039860218777366710737387960752666220514690218262406657333748129769951029484774972596084373145278550352501320979062255369282150642733229176980201637846347799004289933862215385283737269928655009259963995510360945380915323499022184490883545839671597699615338597931311443278654569163897002065076469296383630895609092570148684681566656739858099514172600606682184147623104736907501779702183116274282861998606978234744894457765218240428729770659681247283107192422644551564368839255073116500638349471432234343095992071118585710358466388971058179409832441975593952279696095048070015712867052038509100834284419835633159348365479588928246524133090964619652825948153753596327617670351634334332461938606775000876180364645689576765911752371227422543611592535277086103696135819494784406779594553324961055402127985490708119027226783966298625408478530722464661404796179789436996747804111969204979146234986273582175751430887964660068150684742517671449588844650876599797456376916581489691219959269076125583100748827474143932066626949698450324860083144646691094328933599254611227993256937617665406334514365805659677469178441061596943150374910931634767464801916420291463259316890476909097235182461504196532976622232937154356165151192063881625282793523001173959743813925890467885589621997230152637787719066382243347353088244564367895372349970287314520802192147489205410170050110057184854545944360908203559330275885859407919817878653664392270260059185494129460343854814344300160249519512672039418829944476378415163045576838085101518597155951179873235475443673313035445858894444514972111393175971647844492676411570157218033747285934876053520176702801716773858232017515651654739403638713990017310068701522098885819164466189160032008201361987380519745916197978026794356459032769367998421207495544595423975782738407522825127745471793606030524336082914805395382484078556326263113882467951237736219005882142788592224353894532578411354859758303804639285543397803262088165067208336694560371208180213656698952079950305956107563429445852228796434986624849831290321814139607632475389599721349063067548396458470443493663452797044183634183827639296771519494777446671166238948018637394184449973568329865057716834294518891026137992538758781927822076762121241039040087627323987505607172428576671156191444889430266052104179962119513165549070626908587333074925934134477974063707435222143537970494084009519102569137328391087856288051405528058987448798622018327681804687030482893640113427163698526810131313780266507303232690087141658582750547980297904048762357656896438873108426400707917103230186235559747055605511140958954231693661414437669954213583749530934991053168513377048565646400285880131719583527848480299799382063987166342974757706344068899398646043303126277236730863987461278140424345884329853763832412115089040535961413915615090482359918962379652327859461144238345711511459303616141922111377051847503061972817199005639680234069159876113118197738589908606355914112040454354358237371983875285566759284331283741039606162731247178280750695332416611033401430739571085466399441565447346782678078137368324843338039938724714944143224875269501829772917269504138276873633868821473431418284993716477554153845553391591217970093723908409572793638763779564230288176502138511926500287285505313125266226226438963684700457732892682493757963781594940989527261272221037245103968810144211435603117634494970404667427096902078202057756610270063283643126975037393643516177322065674352152224917977937776449763402623011370213253940884433551213203244877916917287607998410733256658055607158962813691923250075889358628151342926475022303262830306600137776416872382510683623874613883711364164253681830060496401267174542952729101393712330846419989944907876923936775688575850935053098943759660128910870860547895149089536532646797762778217955996862615543587469369931584262484861963673439030733345825472050769765654123578771166946882772183297506364164036711513730493656235738251484299392455618410933570936012074738648144418340129306816894308396201158182650951606241367155893250611429825865849100129249625492519031067779800856920555899524664254048829342411434966376090809612436170235798981285739040484898221015918337942142565592660370306982053738205124505775514729799693861291804560011193203394918608552663749550656180446634610419915535126319418592798860723505041898019347060226140256254387630951424720402203207548278957547961304243493081323751938813250812965330846699047810117740961793014872061490750310208295948878067953746292749480460599042629728083913361208550173829413842183826392845433253646825762753510501953926103650261094491732453464274905666362576909998354765956335110211936327557889966785543906136432995902931825295205633497926368626203166784644272020443643652883389515820268133702007119325846478440869489133954997675783491674782915410152338082238660785825441359656933491836758733644896566585440108879656327918738845521305641701980952211099701550519294695150106047322294743860968321322259588345921777798983523838937867668721231406393556636592754489141584765528035768926973624965708139272297811911590146005359886708283068136563028586992733697086512754382262526360386372599025312139511117697239256096269539243025349018848395452142365154603304586895079262847791223624935386762411711029443812012596846406019195100753157406750685901675724162306661039489036967869043864108381087260969305814259446342376625832153392593650789065202359825191491520892510990921333947244951893160949592450737296749771854844793916768663158599396914687307706921345066583870508710013853472441972604500214663840697232546034426588138214348332904470597210886321625396442968933257651283682290220181064320058058115131706135440285840348232495859013522009936846571461232034185007426500892550400050901057102007955652037595532885880462813971666364575974003483913276763392945883775914152483539278632429729043563682673042785235910926789588172403608525794211811381494001413572165018708210917434782616121427086434067475772931811680936224121632021165603554958317354242847006594951052096104462400534127559449117846273711681345552350369907388775966956183708644442045565028364278879249640543010396341355906843702099897159058781813530096485362765126410199359738713601461001259280190306666858194003199520445218978086706036679052122815946187780023881433253028353769521570518993843321899289291128107600188239290903183552140991885922297679898011609748369154955193430920107797489494114558267074985349594386935903074122130256207391615724938573529088680814326188945505423939856283340961853867278941389068476311305041790243330433749716724535861996651210554957451094958287423141661506005868693901383073216078447334372577224334815429471756381945591848332883588162483775390690759416116585241125160103911567039415069071358463360702836584699111590913864074124481083900588073698077689805868036957589339907434390573321355774680386780503830016570264849002488802263264800163124649125825833556554849399275018045086058433610302121969306884920199208068093339951580376791849954708068957940154868304180800031759127551867130528877385433489818135352047491762634575581213867112267731727881866040789765964609604960078463713312070261573157478197988821984336731614672856353968219557779164455434929496965317734394281255564215508937943489469588383040271956211052738014714640373346845038557735085441928531285652122907033074433177963679090673926748749964821345507689852608041776638607317673684904097485653973944206647247998003949449582505755757957592014012233523676492254248416054733744052066552073276569869952315528354018176795811988298878593225901381095215573470149437791749520731581580460119011200607141900759315714911044090002308691803083886007691745074280844176847894362746663643449323851720801893945843018083001569875640093600958229049735720636602269491408621979569048365427472017782367897328438319551083151975471812111487078239132659591115195775481728701484133225590994721888842545272742497264673781822357443147197234536466683060704101789521149169797426496318428268212740954376513184183812835283285917067190088313784237947308203189702652872470985260090388468350679871103500438773840900382853819728212103752561978992741278777830653879056531192973889811728883710023589053034491811152086039446860758495727092327369425909628443732965578422453390745264914292194012324386687100807576450808416055581771406940947612716210881555567349842362100964551377077925250412470513586339716252759067983839142169694774901966117102551810522981151925125083063416500681095424576954234986614543280261551181317462857421723287259666177278792048216266606253238092272986813327733876737731118093310707224247431531930075486718703323012773079646419510342372055186471093264254386047836068599884107180853495390628871795431318276460106270048596757512538363635225867931127737858708092953634747766614255316513192487196774290588495405120446265576738694147987019075131010918096523361614407155506934501205060089797577602225692293336273004404119851835389139585296310691920311999349530315095904625952888298802314509031312503924720739687280750437615936910476718699052032167195434127472178143541238749061594098163707674561149517544889095716701185588512990326327880625328781864512393376329481650669721825140803066693655384636527503114302009311928767036555630029634162674741496604617722973833741157223574398992858371069735983151339783302429648491171796076967522395766606510908532051972094949803667953660762566556174283904745875277214173680247833173374701569143100235687942001640854361866383469260497199869171444461136468695510607655377783705582132230823916920299895164699494879645690125651401746338456714578463680192518211314692983395635516821457360888857870020599493203353141147665780870929909620265797140565382497670935091417142361997537150554687259143965843777173611825436174516325717037616092980079135573478791891186870193587228962348127233196231216767202085323263896862174018710956470587361674278559718720502600989015592793735697972235960137462073580721208645656767788735556551060850460226332739757251011287341862553151956064007567441492406436250291781024021881179086680878387220996668525660058816633800518434062460031103071459940100576513115789537454484199869214724230257172495276510764819900474924880483316927158459585669646314981008568767144813969841801557848754720807914697495360000604673951951802337742581156836121995150967104927311019848033444594395304072187305474849557827852423567978364415510770891030459660336125722717892868394516462755738001996671795554600596097168049289916433551191970955953447610585577555977184931600426341899723339742882874565991693168925281553995860731432445551356395050143533067359480181341306561917043223162030311658300347782635878219790011209512300915913354558074390557654840308738295074550391047300098681087118970973777512468568325919446642722551040481242192926777210056708533573510923460564102622012174624598526585979677086653013410259984212190881353548936962556273101270542258638223224942421587646611464003579399813939564954411536005910584800972716901094988382157467804703893782954551906772894536405649747262287668580545395543355939516763010979251545047431186459565247429922197345423119979503057274058040656262877636574967796550245155098930298280502669222843619756922828953382847408222730518001940708162335482739758268232517242498046463676013965589611156644534056236607280087542603194952953676396481472878121381527945945024074742550333867581232752451406689240854996313236582594436189602839684261463622300072222731428558592301534526879100963399508060988196900315682159193881799388929985563714246004492942797088244755330742950200042267105543287172659575464943607831397740936474668714322983704880408402155475110531326773096111461372921824620695804916765025575694268725329723261822894780477204199810544832723705193821583116158769667600468055634719176021006959515189197954371511363308246441180047391227575351051530694870590940822224055804925846410029270900340467770443374055916126654257444288441036373278591039323346355099120160452687219216935319478033767664284715203184122071683149807138957018985914792319522493110342094958608313889791492533848430713685062786787457274257671495852918568749394223990120521485519888067856536936796628086203104805257922214545514188884970422470381955110715829745734953153813225805661239574721557844946700085137745088357467825439166738322907149815469939089791045827298296595716955512459292086568345215337602581379793653783112591214376538029321875390738620730017724776558790378385096310848508662226759944608738232697895957913674881252699902244848665738877436712623926027422300658767853523380365456328255972152288935329559885918741461935920865459634519743382872512695219623345904270215639850088639096508380779758643693640076669480799275317096383245097840647650655745205124416942113398052487152164948686502658597185264908609454488287403651570132549359242764041710426803330082105471095907903847573822587216840432643550168431806676320795387487347090395642138816234429297106500627015735773888906240077975436849336869019221959676986858328487609843969418986445472937380335362006075536568898231265645794486891238675976877906564678496979226301424163371790205228065519560289085678907108742369081282232614888949508271193001758263557222485168783191192518351183370387431642783190537042346656232321272472805409220643475310012733352853232215304626197084967155443469737568312153784428414359200232814486100656429830198595676215467424275381943548377370818267193093151470564856740705234776937056136849004693431160685498579333115774218235591513362297494093271438935963589545971165944889342432075066780582903816478941384118329437611563518170573801842173086158666602017200163904406006542617419422322501272995268726813662259514959460728292875407526636377602229004641869441979788763227208269322915008592476729034369455406992984889218054511338530668353460487005089652066168309848707887897910882003196683137675722600482988733703019271689127426512761233085252055429567189425169465932949520132521296343190324651183082726301855250271507052919306685188004707328892528577648170258414198349480606034751354488948748658489568341130410098260683962104381989708864994967726074572244169924924780596343042306717650755843235106681714880777754478625857342514840877236206225493303164678494662983724663066937036421750724883011033757925951092614160187368242756063837100332632587612896748098128825773819756025373979440992717633836081448870456142742775867299696694502982865716334516993181399754190936796158568028765782786410925279530250921596364276225242835659629856397552810689166919210207072392323111693755002503470302859134680670703051546018975792895595434230879493380034996994366187298506202550960220400414966339577458066289533527835700020817722281552436658132718060916904387611442646867263277793506029483794588418824628060227745231803887757714746549756328714821534684878636334887446524253211186440636765062967011861709183353432464754378786072726746739805156124525444346111640211013454278001328904373134882180390530906541931430666202548416219931988424847674289617929779462521057927339007996118990558095557880147521253137312236008850708275074327600315575035011222293762175307430178404211064204587776801673254388999562906259955977411449458734607409856415666911825355367537169834266308070888174514436312288179958115676807657120943193476803404408495139379479510821977786381188794167869716135846805190946788193760954626791989307719991782307324448240194903093478049840567526640619256518883392888353157360844655400908603777290030736236083647497821878883575962092193568975928897072451117594907786698223756022051087767077875719156745378927496920373281219814553001883667419930432856420507132075226042015622513729287249842569273914994174818152628767962649128656514021311510681121649038443299543373291055240817146512593707633420473000208821598956836498252772099168211352254007786899362055879275957810601176303933553765001958639352139829291520245035288730799765973643371897452015401951363709758163221207401134673426381376867546806644479639580607812048237130298679363033549964734812366147473216962286857710289988601862539510847209857275732053139003891695935585693940298028990121989909889547358728799267692411360697029795338441788260356384589170974395567519467860835331464280434697606897048482468978710948955772854316479602365380976752970934598376269844359539641433688314901364207948895514619139640035070849540072839210450019327997055653778305778759237820214733496354505364706165208668103991587688067335713079305369131642908166298539852226410359885599300594906715035267643392228104956118821678891957689085562517046687245054319269382045212096859710789715145401806858866924500583937044236338004673526995076268986949255595021805459430788536497642242892543039891525779992719432294081551026219669848090992731874255142689749296068730890145995987925562548945291628244845302850664127750562696784829336770895025316418941409344949684700225728324443583825205092495519874590554480842849581960215229855965321559687759395339622470100272459070752651936184895258598821654457251607235949642781024383226510419199831432082646287658452158580946309349619406218214275023418559805856262390123165294744997184431989576796954994834040080604457841171063752658316504966979948132018780024021780138596259858155901396766574555914029996097142039234854419464495376280158524237186338668440722612306859174052327859928420989743662157189000823290842063839123442496682111757661946400678626514029839253361003201176588284442717578007334517371502327229797509232408840866916141180702863660356964639878385254665644161925748971443413528504192797844933243756073802837713788503562358377566643363795082578790163676660153219130389245327835040667935523384092475479219300215296799160268099906258936478650365988861552903014745062604035470108886414910301970725034892304215029695517900064480413351474884654821886341068288617716149058419513278542757031076908344273322437141066270642378132565769421499169944389935037860885663090004471546679982392172139424333981628254978075067737604705479979782794336588438092594779787139722767945700000891396171175296851677918920218936130731636058611526506697805890541291591136598653113648775208648612090814748488137609337968825203093991426085110884964063750039432485700327049180564750843012862842344495418936703685793584409207394447854528037124661547114589136372598604626184709448049924295899301125845299427678172151386341514290636875912878144581359075533028036534101679050958814551810120474160719746310431700116352454363280485978314291470010934436497778672483313259662164525081286205495247009878457446575034711348701154092064397074060249431831431503612274681347827995705229051743274376773215258151077842613704158637537792036532127375308028150051161629350216272491271253515082806584479021778027633168295427935188533507426799130620684771880968945701853792349655408788775407112597303948308707847524434907794126715601488934446048151738397819076857507659886062788143971987785120318186753749465125829668308389954064889323981785225248553748761377399314361646069079234414502451347256127678999018432489314739804049789198459712206928231932510410523353723992001295303715727367815741624308824375533839480502385607585450383106178228261099900473128078185932850408307305503918831665553740958474368667950301430575279723172528025068826978230407746850105002345694725588935698250872367775473879352280379540363063049199247504592270814785168713563415908792021384850440009786146588805409375467990077677272964912132762392381363959875177040273137324672867187486339470658310625078449385023083948692467835447074395107783202580291068451415359033910599389031371818201020680831869180218632704513538802025012831836615024943543990994682506986586520577414092222066724429207847548459694238021293874700092327714099777763059626952493494331813868196309748372680061950556142498877555787517427175593737496972719057722726555253573358837186487841851240946696854306077233736164840992704337129159109190997520974154106769463617609357926115318508227974523751602140852870102780537447196772132615088757139652407587412970079070284109033337005419470668366053805191530020932970167246225036974505891122546199910346780998410340316378546873720689365526043337533863832366665823357295358780785100672258272603265917564478304291977278971811261775273911189096620392702006147290184860840353003573059546171468157620256614966524328495628892838047656020241280244091276050053167700952614474697470409715687763718355107774030565269189805091687892685850350886410397781314630466617731802149327774984476399181585542661487209700642951414939965995822978483735167725956041980226111255843616112817218968897640886871932754788099925193406097346473716468911809425403232562049877012946835891425656953060008472422966109691190348850831843954261578565114982395988153420069942287939679411263475693483657535773540334600467903467042824027063139002352183791021920471448138660814994756863011629426965825539740701160660337800381251683059774284287645677606899142553048999775933315332978939574553872202146269602885188212379570306540584078496223095790673105936819914348995581857433158464360476829171611027683110315824425440456319342973164971123247240035709255226243103464506428361777856367933742629147509459311774412966069265002497388689778173613100984319709951656504015273285427775811910806461767709325471632168808896161650964700911467784097758712365960885718579746250711795597614398577298540402986089995526343800722640838650743917428058238109481462520975943336159296417331867779443074070475881391388630631235099720873985229253147790514934489939489919371588606693965180951153385846892760318318279652820440032226815603591712748560305356051070542190385511567578828628300168566892679233220276873018285190793451060111981565932132478209623043358103003112465039003729375790490389539506085895468673315839835707660713527124830867057848441635913559404920065882606349596428976382860152446692999531781036365772021523996753293719113707327819889910531701916475669447139537158949814248894726602900358212245703228741578062681165024846840489967555994829953703714345475799318602461196529142967334245753095760026167862178549568347781453409622107747818889984313969694253799558387330145732681525677045821629476603682404323788007307657340081151622351004248678468376046281008682160762802982134358966479103834640122353311833905146392825375094960845539649046392651477796065248680982785987767646352648307930749732936403155096389372213623781980881970428613878289388410399637429711919168411939386159899814927247859384891696919919649224146178810261429369778334592214752215987381254808524576469786144433735266394542173882333000360867483461573363351527650814931139011178889986699694302777885007428324239528398417868110264090286181309544220224664559868580833099144334478212344774846956039142880281115878891844045103795508197283441431298280765953339121544402813797487606771669736461567206372014338306305418631524250998963890922775434393106301356773809770504361695927048806738616928126248553869378563476375154696400602921202851780389143889252876733747167586090098532958215694347557996222437442279395142481327581062597220400200527242819290344417396754125158441146337386594850402571959578877226728997558184611899007873335144886876947424906945404359430580004229307089068021531728880227322691630778303596708614261901401999701560225294699053645150492786930131234131122019830055283438943852286931437377690409395780102650081366792904147084282215724265783883463088144590334009338068532720674420920428444502960944237549897376814522292666504204764509948859171252567723423062673649494049402638025516825077105511752538291858880525964095972545920161164739487341177854303004870174700301332950973982386547984990423341311815691582443724075451773388165806541071908597593892021565866022592494657779582523999876698078637184513287240512039180710918605508688791084647201009808771827947424758368792217315498049771516104344236663973965007774848578769018800616968366442690380691282609446087081212814438895495262741748617441945193697984287969501735431738113393643391276070967930258149130815210144807446513865261219676532724928895020563826961675348733444106932789621026244534914792076892748744545913509220830997917662736048071282999155609642849022743632495356698321191548572916344365962517291784466662806017406696957563119529840196522453682263282189167529182791904285104250721409410342982249114726940709510082649571164991222887087213790653867801463723796783804832414288560246921758822094624456705277488700182654405217447145787662451454044541991706405378440296564019516146726773341634867178341857687067364081761852137892454611355039458201919460045657096794586993693932533612475774816401755383208811066099022629193078654515291737847196829062616679168471184245912198950793099004557399427405494205840283534964224687180789572623031721949770800177922760579889457683154754423070958074247385428146716356880292973313390163015591038939274979537273857160292999504548560108426998856824519592934224498868464722569187825605645776014981708901227808418001902458265764188683514801120156441433349402773360227447416602335657723477369386981293667097911500759520889957567278348999872332377607798313849892068868601487326840456555845653486951949235812102697912516839225478889915583906693656813860525028817159027376966134046736390894367643662264768678757344277365541931627006622376441499057101489913526008500412862689915948197885770647362921287260615935296735677774156264277546486945541253535456216550125308774052575893700296211810021889641606250348318655619672383007530370139825105243559748321974208433030051021458282484666084604123397797486147350988219664707019111902934678339047501524497503488844332380796013186972744271100521782630362661055658642368988530061301786178558294969325370029725291249035953630440280291265371503375702772534913163588709400108205838510801025741842478027883533759702728863422614436905459047431826783182536360868186854961858322863538590214579683707292607275610926087829867652614433460557746966815129730578620478571057911607740058265049563363984915554182830169621356784031527460219544893718583224505285058324356428321757139885633166767549570573110264845369173638447586359357805409963546815563002467424033144333052119227058607749414958643481946972123916961705632061695800623286526708052366639629705711285868362863616586182584580520643330715796076531252035738359249522366743110701755895249962947712676329811485697490168829259005881189094684314936508410794902226944442721838128668990989794820602153911096234085433996489443193957890730578055661590576884759011120399093093753690311974817473932750364388483203357175558336085552821531159522815664316966008378812655918949771461067166561013908193153674497993977907781188549277700224226641068389956155198885760502808899005304214198601975862243008931358070492917332846169301817512273557131150659052720354111313463159818087833086286860691966234128210588489976910869773436014848634607120544236012849371992443624665884382126415349566937872414664405118949438957968953442059918111089564745747756255963967310555569160342669221014798376940219140524617830430204805577637048381943300331348960615082664218591245432085741571541911303209426070960532264175230261679561825311778896095789288427549045342390184647374745304553284617755137127341412626806282156701358507821019574037874108372703267710524325382433855214292687538110186449553181225775128701151597424729320159603454233567184039548937882989733332199790678536439366013308968438328518953693121555024614555643918532246743397819639216211945254823947352512777499821095221843974328624295198598910953590554681211284647655041689718562509260844330051140496045230106722523007440709872931315429665875692369907050608675928415859687344978500209872635142040117029160055889104418033718991510846091210337568429877655527927617086779314473592185724436902560957112759459088234734248231238140710101650419938319701027537191004266929873606022841123746666419959955629946425960218210397894912435667108736114224012236114996825246477496538566365111609216323321847475292321685118946254572021935739751096463797174874408734223605953278968203955148136319368840403011189128640003730907279094747397719993304728540866376978061160712427556178990832275317045979289481955005106640282203851264316264907349726848795559204528299355097996920389077431304939140799554854613462570429484447386469400765392995219208741657353883936585913541323173570356867516412463337166162278086275904691704453634572372849058093988967000450664949078176123440036808095348359769452492394799805366331170090467734872519183622624508015072775980754001163952125856882791478296258483961534892363581095964342219757098634776982175793246528079641314282268380465881127030541684243827491178477162774924571720166593107744699866672030200321847775122335999102662863649899039874173404911521792953556830572831858581220635853443837072989525648928189750102560052723287821505450983284552960568617582634328695539895430212191041958414685727092141846527814946620039404186925102774747025812012259415885903898333500974107536037704922951711278071895096084860600367357122601340113387479848016545873200355372039357589950852878152606341195013962613993413904402333069709026808635819351548209246408992668359518322592741867798670457883864840670371330026085341256984448718838161655263380737571112964765516834400865424815385745777991166602927710091811885092551611803135244329514950188402211464711177241165228319365497320308287020693486876406503334958849128067155761461224420913813949032623425907979180688617901747951166000457997368851333638603124467831780626658763779911632220303031506192047109699747580761231584117659314874526444574434240451850366607827560372433401128382494915026566272373554924988588138780390305616973374597461359769412903460966448598726520420864408120857904579725237041319289892374456605090414040603052477166861079847289622210167909160235176124594191853932936166719895404948815900563103019806845188821745319263232857663134161069598580224623131844040973927596710991025395474974025024874475678933208014999230974599775347725016158818201841121009901467004034027015644583168262210606187629198347632304628276100922079349311302702545252167438075773974251271905938559266394290025880529201911000691233266191791020920926079731324743707070939599380359331505314365545517089382538169435300688504050317800109343726054077908357953659189605449041475826415905558175783227399711704997742441381241421784023641945713286891126299345593456014603513786618527414383547858585817474475150300588415298551584164544947580507833072927593873525139400654962596667202407579085613934818412248300663376553715212976325601780303566424809878979431405961857888761561181328881590940238348670125822196918333126143590025291120905099199596792373639925595648793588215174608866323566489832683602622801747840291934966882434980105303620839199376781279776003071896647864732558124244233129539329034232481317734810366527144590387667965483793074911285862948216694492366313407356799063820481045664193720574872908040649216857566881332297440588153961412097771725851750539589017877200360246936629949771947092921113964111201665703637827334982435570086746864777704853606542490250231651184596326157530240269924851670805486342379594247205076597616614458193297195247944287557268337014611370947238454964175937482641471054809210351014551515125984357697537360087175171985233224304225930217611594886313364181733022116181629836354625770164603522529724828485340249580562534466557131023532147064470108496492280424882113838242832882516031127433980542654551945058287877654647019437233535784531528910812614912333301872047423392820265491424667645435552036008747861657688951666854647005095036874100853883020199227489641881460001981301067873859210192573976993013825493147546297347046119668632946924099846909696933103754510884047354559799347406377094899527138813304675248263883268311881456121715431327279505391081421475069827573159152168306208200213163493393184312328309105832089048871642497570443908432688906785276467257633154579938188756764367265813258785502210552159391017133834751078952902296443753008185760256123282060652632179105101994471219204985723473814239192471664806869615655365295343513896854901420731593369257909680273112986666417581056051019124822597768643757265749375806797845468327096708375782782806179475060135190943840386486440690042245993934042930025805620488833556220943391225788296570606562514429952898482330756103143558013715759465665143891843388840213836619234799689182479746337090682947035238932793070960228320733961607979057056443810901876998083856226805214990971104891185100709161908364740818909928427971646626834717220772058909498838751163574303361552162113483454946874940472041331714768953832182757055936257670869179821043999470625950253839698910527590639950800641716004378251496215537870318965137295545606593580890263159409343081097943569490736790625020097463345862042052199169823228015578294703670847842609762566004316653617762728169473960720079816707252358119916938675276908712876027491244702301781636235444379824308215974961079530945413617073213843468295318710302603077723550933969343722459333007630702909644373561288480733389231967095419357932039514394927549557514990398595237517774333588090828336331751048903006609988547589594970417683346995791251839576103859495078056464947117268038868358412924735311338976814876263217678575743173719702382012392566216924947453741763771564584580944576596065461347741348860559956538975301742467900756473586077308447804456704863026381632894274943825719741760717199730729994522242496222554890202877900618214384192818791237532099813941934780807920628569467252485749430511389892385881666200066659657230045186594103577654390912908896480311153791731767562171693836559406432296620997135555109769662214528362171656008130963339714062045069332146794205541381205657136507263779061976744561698172679234146998219791291458971494822997946888276446635840230559997447970607865130875641711620572562433108150208778045508767448793842908154658635908254722189771598454007679133479720714621349488048425471277025560692238069742350458608774726333820779931608110931402147719322275338032282982440651505581781440408070830256794254784240156839811894114774266143371522158971611727263219800840552844041236391027618927219300273764279642506660585800852610884440505497142239053695350914553132291164547997087389812250813537261831240206827125729319185228595561328954565712074866469585949263514508800045821913884339741552210236204865434450855870546705555910375576447190733622197746205087060753767336891364237472153534343715210528546021586807088483053177272888055918693982214283989636931134544710389710305381683798518235419731539270880850446861917563041259487469796061742118893957673310866576180727935793861923687649476745847721576018987482344031269986438713783667798020953386144354182653172111852037087155355147647527268790795130267015937370682282997954105598162636063938004897148949880660263838316250263536152759453480957852160153118264238936873232483880222120000134260841457320861517659893884081026319412070580190760733256531458974597303491045807327237192345099932427667048913577270973991014711166004457841137488146941683751225116654632440706065298984098425096102624435572818576186391401463743564415935846669652048366560754476869151624981704145388739944657845206148744514590170510764862927469326391808501990124339884107908469305215359868941655491668849298061646997994369489199921715842536694678334497582259503655975445437879506057663299487557089538049288016920926500120639112814219253140180044241951913131522255386702399638907579098475369464687935032373367241062006351586611452986105223745694913003266681695474740573702924660920803376688532456644977401072870349427541858029798534628606695570383978090233627762676205602823170746955084375697373806323431157273390295570908689096861133696934391538109262763473375498966323334865211623093407481489806667186780968100497148171213079846886300239820020132192181371262795135009658120516753635532692170666767776839003418605854252532514193577268981424336164533123492327374598285030616129370958198881272888913168500030539364894308927315771491735169360914872292255722226473427460661391724642044831163430267724199750655692539136621054353244175716785252100379781764025356198780658814207308543652114375281952122934855574970972894180838511165825001327982823343288527471080149031067092091776563218167862200827379904628105526127298612604953147356829852241150202788552769937387391056040288797356987282388735611013609248633214426741015456539920430390011199489047759136849903844410550902776695664607264541441197919149626663179572223243221895974650239479667271846889808692609508110094462132602340187670957410297623422396325323323487427605228884321039667687048826469083531559576809367342014249663035886200600304452175440294651600640787754848870343552028159006786921613515389500473115282750795188094634226968007714621683903821196887910981437295681926054061011182806546508886797146264670081128862170790853528400113192815189228000336623334521818297027055694695168881945213552692209285929885946561315342521314461006261708925891410600672448872564175846069923642774899515398974590630494437797401581250080492448541661142998176581120743290842702772057204617430040780358404377212707218583756074738454184926099910673421403167592126454716144773471239525621352940557685244257558687106855264117043288687554796631174713723994944255865335972613673390114070769083904609807754832096294828488395944972414677987239712029045178857626331875338471960525098380402616420002438305292500785463268542276124423299462126102236161007722481670213167871588121147705589378387017728991882996141338288289605248037128249100266987107786638714754725214890050697053781454308257314170762772830755591753372016702508407479511118330268323851732804006258247920621917947237841180935358838226926629447467385293678519754547962377896390702849136757865002711883073204883246551872003915619673790252719273168555220504183586982827931348835336569032157696697258635447186451600693328600294347936684544790963102807228148326953513225892020065365941899887247368322238943802505308874776310310446500389383797450781044852292892532720782889181988418078073760309501159678982365141092331695405981738023213054076501259761077579341126708021234128569317119778144781951987534512377737247505962723284264317527168518758852711746312247746409089426779001234036998999368626853551643860086308841655693695844178221275954693305466761339767858121321380844670099631286034582553984591806232843590114520732972405507152488472045747821712529042813078295387554601190134396634755756425522191589088499599792182572360581621994378172532091180121183944206353734865143543045808474706155048560289220597680562312641224224002430028308608549084266037552901762603883327182500695270757108480862388447442601598028870122876452868661715590101402124177337353833285521935154572065152941777410954699047399981238719399016844353424792012590222103470882142595223647155233877774915217328814359072353630811972296873663156237243108444577632389028872149478515681115165250235964918664291475608463003879776569889124140960426788982457482508913400000278289743937071739491105819791400935550002075681937710571595209519479235872171493938402112509191115109915936968519953822322183519255797310350377126467327789197313206546636627485868130902779659124830780957647729682987128480808722521546843548637158141097586670223560125573983053047318751732639338227296428819196787087360895759860490973833276662456116745037470127450987570126246602800802748309156620615345820659561874459544234178457333331801140692432946131671104713905423822387730184235110881192385093964802974830176607062429601802644506370010986662261979117654267336119353267530247747963735100162038680894152049774010571184041167129034471485011551979675622646040736733462169568600221994131017115859085124030423677038196348186761522914079413309480075187952971300111456949094726607815974464513182371039306566179014101318421228821768274572701286546045532440106377278154266877728694317666940850073539412794199583844432546544915727923581147065316867407972294084724167562319004589867452605830891901246550063939925588793385006974128847120874608476134427537756782850860169151511122614228016593724705651524439985192148583230163094079655396546119053092099468763473357492298090655839777124835811397088952973232233582343985244282099623918433199139453570944644491453849609545218537090490260535674915648176122566464484966833398764645359421916977937083415977052037142777658560461584269795346606058026799020300237017401867735342267877672545892589584833549441327654596618867472425882212603343643275445459067147215455029604810260501531265639178693040005628534032461086723500428327754212909240909145482159344612803161235469331341045315345950122654146017244681826794688776479696943566566445500965159657679053536894313349631132295064490088715989423570765350508342157486891794201100851599831470783274077578526178369887745996529512911922197243752357259303045904139746121525414950705088525755439872372533124777337672620216275128473644940846532992793129965332373158620274990955587050979395384286191958872555917324882574712951665305922927892548220523004790954938167017259498471573372342709866661241463326977662250797466852145866751446456323811276524290078711712195979074860906020786686944982128371573340724248484686438634720785085730530399162243129441788809451980724620932918817279735086938879709826369201292723893839684213011758346479308938709504011207278539241958695382080393259715631384544316023229259235376907289832238301401034397549139165092970766412066881124310015054062422545640287065100463649625290535784688148741554175078577044579532125150585884717601780967645216051809802958397487910408440977049809325704298140528747819631727737453504973755523874488422780605975362873347507157568467261152890187245288257499077100854287691223313706620090834612444952992843656331716281682101780271515359604800940244437789737220322569121063691752053102784647329626028151445481251867857654480836668421984304656844430517562289291058233371892935642372962636577603038662336850215361986086655782870884365525021772079189290937412104840256096438955883378637718967692890323482367003746995324548681604037271806210797788368352853852166917323996709384252011066195888274883818462392475790681262393680569764300324408229241934837831700495684605197000977693295906321586103191404228491918018126985683268821702960984119527808609294104398080370532493934091463246865625108313169500290584720421683490939299810147914886248419306874270284018022186904587687527836319285665252967915376841434285555193386337175949405407463373735165302428164767275347589681222181905230458226997366094593463821602929833259884445562436449598155296115682739981453645156154510162690521577608508822826194642906241307864480688742418452451869817482484771678261463013900346458813091386196537200213196837032581998917553471649482339163039096211179216566583917557469144552809975211960658774644553177548141124843880653966460660317026755214642650896893735114317901029182829228832610441433428356473765267023413877543958846215935904303108707137849577222570209888836455760790876324891110673913982103559669220458093629275720744661808944869307118658841751664343663290294379369109091987512081823749973582022745696575550062090189347320439545365371278701187420058492953857438789325693221238334739458666417760080257256837491297277091530520677801400836294051255176030168319696356641490445140323794137379612844097559593084422413343751754299927619121591378797680235994849218844091605543619353847242247195002085897065515518644640665436320957229037139050656263801434193974028059615445295919781102332266624399836011259400505405029050119770811995530204493874491996450727866653172641275781701284929303242590767857333059135065462465097872121094559225053692007406213115045322901720118330322983167703139414842458724843779651565120141344811213208784169114528122281284109665459915494713635529880791212728970048550538557864697857983104788086138884281454456314211085065485736301873860850089582696680930862285600911103198432490549095487716166960011646496022239338841367721383228236110432567652823226712238054373987572347819910905856541301750344387199462822932335462999547525139667969271668438801208563287807607063241857834567198712998140201469257707369296032461646189795389534424336502026386843479701476797287965126977288777260510792144586459899983903892995746493199077120041374896850140362289063395294134456779906239612901347966371442955254981917766056012782198765525557109556765761956731369134991679565992970082997212499840775581067584039877155834068492973653516000974949968140330191911762196726545231436736263662982711299614808306267629419229208432386574844021007103541266113919982481712757203416907538565221413038927843234831339642272644928791650964170670261538596861715049721518584591813772762169818483343179008066138895836738758695404600999222290970530898073305891575980908002824919693572248602854945831693681370283445510261923474651575915033617694016171645920829738669523470398715305408389641095413324632924477048846360682831663104794941946791774164182800703094400852553067436464779163697624757661935536019760996489760427873772063323922794239948117003511892587719137587827352148689541271399577705246239066325039305833056577563947700870896029812229535921521488402966094556432666987340999826920827351965302772349753771051505269615816217498317267370244399622302424929992434331145161963491220525282163436672228509789087508321120896321981919930650563325250521650690675882726092824521110892530098360105189251965405341376740757609188269700594415584606442106286575351702836260644559327236571921555793296577872293270415098228397379090641267559768413108205729205320051264139621134215075080717795491023243655878547398630403819759797985273645554629821341897236638069871986130941419603032029562886473637132282086616190352506092398680274334758274021371671050231244113845263827403507966757103400013073733738237379451653220305922556732490967733878873747318153509876274743167601750267183986290962192850267803552987216745325211559936066121121212308116260467178439949010210261005149914932915593810442241126066794651398166037838077842333656321041504816186527083632315488420862579337991045892984786439961579443784954143692892429796777905094656842643039909557127403855496620170478985069962584211356309104483768341331952999752807819820014790549223145823815069601286916461083105886195058012233882559702735343772376138045964439438899701182467576261931604496176542907294794305491596868403433457580780082987134167313391272951266061299728958159297666052661157904448522915780783309896977339707514184376904037103192509631334403364621004768644684735672813718733293205706423479117987747592920660567795892946512288176904877775151464985555064258486567716445589601837084779788269247494144894015885167541905526776065140800543477973312728155329550704567932521524008966785379520033864832221682175901417854462722070365115046774571874254775296045561739541361486798174805883916936624744688736578703155908863229002104289599315702721638072024259614099282428329643610300014392654626657390670081902773763241078188262583515838069065558225523418004249489487633995765144861023802993718344472858270234889068550020547304853664149973658039201488213014344225679904421539961593541038078348906851358009811749480839683992997713072663797739892436537696903127918352778210537003804739542959992303027267718010648718866736363622390128837221129725230350415858311372589963250847807410997339526224611863175894539739206576490073801712986171358270254992349617729112064395851887371683133411985622471058097016490374547844215585696482751845561351772856864759516021800208797634107249015600722447916882377838431348043260763870628526487824353850233619593957722936934508694763397719511711937956915916281303507551148607043586425784629757091787800954491616287354302459934753869231405744840554419690444154745041172951536903129736854427967044753510340703069507828988070295629019414313594492592490250037832075032186344075186812524556922683132317470164412368198352744798505447986506507924798749813349977511303179070989160180872067858606919682139169245723961791113061511247877106777815553017023632235494263264299621232827257075812946842779278531517230402497357819883686670114468558629505729928661876817830876673819152806318578176659784309922763304424404017940259905233099629587931123200657875582267465134135288240653651162778847141632282821118811845620808374863439257545266516687596293010165846155584080477168604118503242232611329612271819070085801606452137866223237211718760493979479300294779015626080153563426151876630262818454365777923161570017526200601574682098526212793832655567831772712980920579881500251840423718421857386589500732287238596891244672460911903582308102546850005100183378819078199831935509613422690349324742830724838358325165645515183007359386644953765865934368170692788022211696324062553986983228154791925267110707225778441528856182314525036170518170982510391922568591267153464078103360208095459684769136191813388239253399117261339418621654287494781177080056442680073918641629375971809066064805893623118152508375655547319759342596982468417639602344209677345267448025304443788914115236646056939999991706543497023985078991025112941809517093721637899654432307535686549172512791697942462946018267864678220559809186726483759821784445495271331158272721173830710727543028301452987033698162774917094211272652275664535793809784063935344312032642542039782429037704686729561270315550230295253538933975607580033425384166732100020111206589162448016248098348331183653426683340358106379571514195149433749427246204846852172178112525085902903042614758693437485092546908012635207960737281961799999534603733869149778441086683131084051141409227035291981267588989963385709251628951338032239333991440505755984284380464012017236153980703323274010690805401354571174283417358704014662907670102492429885816044304208281691273311395141487687619566386705781584383762396157488408781260937559590154756935031207985974980882683758491700734126710646873192311243772238395652019810239832625708338219264430497469859897990699448836569924809767995824849966549584070401897428985969993118150274336749013396749884516199950963654548981463776022020022223670995509771304410555382610343600601516377281165030731694378475904500572034592754790157336943058824058230984556085033306169296220787285539279461240523653017995389768208369277516658265423723981987568309052128786988417172453692936553931105853316086362921798716580334369741730551769060791242838211689927243501040875186700372922915615766887872603826542846267309504060216639970607567538403838979364536072091027237037520153500871125083504549148470695077923327981854231537254697860880822807147414448062025878816375580312336322701508947287852270338175280358826313250339311630878782470097299389675349552030653799684724397049816257030011807607305593339533584283724901256724604612415336296443468087166029693311489012257613848244187849272699707626579239895146303053870390165582660649785771057321135000311067251218524510433074579389575398627560738088653392661459178320089165322478850011506248912876464707171755537973131367326918667643453611947715488366894981134819465994116564222994325464915759622484824642712458583778671566876934535499258162220256704729067738837558630740488969065769084131937804427362638237562142219710858061265935409312937572958057877258038955238164097708296023283315590604235818968782109695499041827946079691453995547344075470401291406178197465149930305150640728936924180089425912239086248938514083850070118530970878389647254439265347630242338568534474392248437193976527825844153549326487767958606457604137927089270408210324491403173616955384570833206027370305863234410425103131700013594705820887277100830899641884272400473733913436999391048335903227595556946456509396239095384053578683522923673799774480562770500848824244966419555698508900629672230805685322931565847068141079531487211531291985478885662366422056188780411549586794337200778858881381204061556181631621055560718981560364118951882155032535675245319770508893988406215710470774853601109837005764667839516253757139720018685354524450180367539272337938712100392827565975203801683819928285507251060641430089122366209761355469427353251051125202102464638153441560436256036788447214622420169233170385347326344305640111533497866101915894844624705451470742252055249304203272062091779069874630611912337627056947755428148754059695932662702891940343090982918166755351755155097941162027315407006846165767659796035795898068880217764779256292670625441925968636407303678325295154128571699847873341788419568334747307516245749026445564391113596724702618239953281282738885597567721086524763385419852603167676713347256065702362488380963278868912984647555761210755430819358501608412752138548345235532992303393450010858378567628983525590616362994732776192755322713777911530424797288205963476009423664978639475218222658668456174884487913098917310001565808357316119756939586110941493412782477133888773244546451231959553525466763957120954834484386252775746631632031833163385284622758090568495593387762721837991164586099792862966925398162675895302342032663715964633375069255741513052888837983331257255690596420026543514770746507370842214880942619944818719878725044062383354496717079625514801752408371451054549494362719331649427764370181154384944898374918337002752198081643719638180297185039826589785917322863489471284295992172592315326149100043826559939478066193717844227959875662624653949990436504728707985951917216612253311657628080758192795309287943523680570798263259433626046651035148452253993743990278507613109305828354398212718896274291254182051136436663552364687470614443519858790787311668670202986494844712590902399534861511148217942421812964588617970415991242250695081916115373365935972730278059025359691815640630886228177079944129084930741770557201359081478629875018092740274387399811924992928840754598409524306431957133397389113798167593539933074502844534571251002405075654173032831421681698936007582705093848528354866965933323104515803922126249309384057903390262147845254994301177330046131935205361045918401555428417064206445525337013269075277500014841829909375201351936402761161020986688588566148986633013738548418634942403402412683926368030401035902991732689799349583199561596577281821267133011821069204698082961946576280237317703445696523398366563952561723021495466582630425705855474356200090540820015049928867748466125044557434298231196226746713861207880180491989848052250155431645952677189034419486460928313072592226894258540841301369234013894514474647872970755621187543749485323802816854166244002905449156187956216708646541771374442432029162337149990793873128389979354569049263324949189966554927574287784749397609378803150340223644108488174773134319847898573351346790248994838543478843351804776546649175558556751034509198037718208129905631632854414963324619835387385876685826932929948329299050777842959930450001199961945029847204632197329837693644196617149642137236577894596632181106580865827415997825227246722276554496736792155343714421362041633966106395578455496611680049734755162819368648674095614175865093826846826909818886196028013900849267730152059605088223652785228559231650518826962726957033828871766420056738560710360828343209464303546882922628028021238345952778060864805089769573473995412418970454819876336472815402462296734243797420027795316644890651005883313750681610056239866020177713075119373546735397561276146119241575869234177700558638243418420405889373415424531935311972485878778823701572821796083876946895238491133300383191505209042795890030412571221444542462379882037968487037488827402411060860548245854249638140075742552073060245671282656277325134849510385147578369475823398209436901332027560799347947707012525403664613279918903122719894305987207462275753009597548439421566407737714661468114952556898149890052353498917055837743023544229369332064100943208415244119450089378909427680616448569841157109814694463579949123156863310801457690946658350070360260695581435955050100884647322955290327298029092375843609538753994960053073544292982377311381965705423730011450218335739713035456422507619663571787324968546042483890811108373879297938854125894154946717621935907973439796939819766789655051039975470740148843688066248657105648431976798657746910404366305110152321234145748976314499060474791891063376110150037627704076706653911591660062052321248158280120667315648330236803109385054738613413552948972826400810689779830062419225109791220816744669897303482062880911263134730906433540008413510643949411006224386202167317023348360111431611410341342413185532709729907145237304743992450603347119768144132792832121712319746435116933112386916870064629578128847529883659572322157538898738959996528834310143804643052016013098417198502866029568006752772442402447871977674403408310415666168878595813895741701286386709628930966393268548692752569013404767110355384018698538272879645951082201154860782570519030069440743471772972295922524384518031759227861388528637046830464478232529302272252885726406337456845411605110289131078673421413060152493996959132893524261227537168590280033116409711981872727875019555074101776085140156853059471672870681451887677816675661651253318121801011059954299713858957552025706115751081799829654405532077487259475858284531023273905088065878354376444634850875743835232988316370460798489564522144539580968471914241802625031925085536878203359788181422635223570628117536723976396767237279514890389237168441730374199501965851223809089105650104113130931937128462829559218014251957737456912464794207620529062369319696434812969265502557197151285250941715313402622009348067279960729092891740255374993052038876227301274254724021230011804815070138925763843010215119197163225456617523574570873764313721426741939548994658251577605467408135915156744463385678119107845402585882204760298954815645970708177445766942568994465991195206593179493999858296404964445919663295196306623058886089825560181496090454179794565436266375723756526955408996045343267473785696016541593983242729112059990984121228213061188745349637583124426504644626889047490724069204966564574960496924095308403197557679510234821038835710112932457749613310778912733520665341249549703893638765170236437526150528938293466734438716374625021905829909234767496895668756384859647567415586623738027719300887888204265711461679484805328166378351011290129594728696766153777511714322630338406717481569143678610302431280534628480385995330612898366064649171468899829026311301544554946295668499255289420879694415193800152373873344390008985926705433116170833100267518444484606120025444147448145987514881365272725386645104167174023984347167210660044889795518601851422295703397285704425036585001541341748735716189262722667101509396682953221726311284029288530270863875588239279160992271785771558022644767539015974992075619082808443412363659268780796606888390486226687746403222377481420260166584134863033953275534706923671167017003578422184497410219099367074390737075132633420747201041543100157435861624318892873905629940226394947455345045191483499170288211060492374289978873827682249228485778904796818071024461010994628157296735962873668570655939577471397415936955901298369370224708245054102777241779489797371632068999975082329507959671037831569739812448180583855182734930490586586088603691893663932041532220962389989223755355807458893919752302447554680299175646527377695335882122892279107460000829310557644780177245343894379889956315048853361997737099244230598837487685420363974788481552116418336236580854245253643860267823061582200690891148571516475833558592351189049266498495439295109927644912346506488347871195354917066612026530584766041223301152010918042047926688500395997536261424639461213408015355721024019034332380093918421879006108890160592023144465228347173867476798115963734628742359814321716235047487573401974617406434562023975271780577577852378440457376259870435823392941905607908001351985637139074103556845054806599960558082863154961073097469099118001845295907999483116837308381085654247322852987042572151801663194415716995705824548000416916838861377914838692927156119582524296994958675496875028604073269604876909333936182641371865472746112197180012178663352474565558909119198191928280095088352371177634867394780380972049208063434533117306823995101366281525356627641888505988359542651614721533127740387198923887790507973660520898774870524984782993130573622600283013144141479674099744148958221885645860559566226185508944724020831388937639749765250016405091731335497924390994827843193247645121679386183650458894807066525601955742513480115858652934243689842886568265732786194665317999159339082099316322679205893394407131726433947651785298921507206528095914077273851636024471015280308311607096466561625107875591408079326782509680417303053790158288322849133546325310107429460450517705262677972352551008864437061464439022294789124636882874007832625747760896727746793612155360713115350146620713666967748649625381779306232051836300929227199084047873301814809737922982205698405321075556026620443824537070695999984101476478729792846872593435690504672026314234932205788066409434607321079456763648131740542812755615498688894323893888898920036987640861531419016474887276417722686364133621272910316448568755956563527633580005410153811763117460653656115790621608086123875889605110403193857416088377962677580021707781620202158681353614578580793263997475095732312390881218159396916651943578661458409299754110414993675073786247026512218387836014383132851073119299426210672744924930171022982990415988957373812159317751067493219076177876169926968568188700208451608642854890013705200837667757793691822898211504933711753050696882819844151488070035356926976192417696864644518168800849420041429614215293084728758305052525744971342142669018950880159063113178446686413056634390121755074018386159200359372934593697099243256580406432188382004504175312808292474591694399981821247629001512569177366540927902870804653995727856516537886093395648383686616056880679459482054251312552217666118130401369569047361950360953084677631243486457423267504215383979917227195045995615635577176694020136264644702509217351480066789802514643041575888114268995334997379153928727177850211169019429013747033427241695532462520592312003671603703781941925464483422088387435350106806149867646943986739340157562935895885698501297629199282003016465417291163309622890652233756855331507723266229629034885504912672153654470452955987203305192479193618372418658107847957737000243735103000624905692369022473098404382572192761367288159134189693716990059130045461601757560786323239552686198221433397597112101970664830498949616531865292143990757353373005712382665160814364337699439609854236361897457603601202086039062166452037533906873145179107497226946316921295836992229274963031691769125772183191678215464315483901355317469929906397701940758177587351632286105789887916601723471764546202399037104348175824560356642193153172842274580096880403136393832841776585726991562825846273258274630421851650366226711322111163463002718772546199056486386082165929346596045480059670564794089405502142621275331783311967902503066200039690558632031180278200411671469665238022667506879507088284710225827949567658945480314711285550401193180674506156454895838077624039723118911393603021255485291523815398304725337442996102398958653403573857750014452929224678162248833220318067595896201490845290697858114476037845155009887256045077867171511898460382003952604114380172466283508254006869326703786017826737933761072660579909878155007190096803859171118807499626117523796590393372820676008634191682010132627430118029856916073417279956900789403777345137033027138749835455515291980439398357248481430365502206144638177635076777059014804266762431724217558719094050450138706626588861413448054578681173474758537664502441866301653381444946936628806706067680764387754196181931626961779817138152261641230017178676424446470930804879160395772951280987507830026423318709381148128980186103212799555827616375662149309912509534496682409806018086645839251890591431720022479124230160287030917758696617652761989088406334412032582404369718105986395902231674208599867104797436376937554568403401746754298490700112385996122631766423199975933137247179890090556461552094774230849379703355038296763713297534305471017035417239724131029803036066679877599642038225368119907704873015461321947028913915690128189541869894063216481259369485037542182176001361826481925039291184579335965843542649953708359130429909111752461827624619380574001191888043930884544987820646255499632590043125108341792906747149336054841035301409206274821536425265406594590204398590895620235580903858605181839401480360048061308938482041304738138859440072909205653072141703523567134423577530860638804423425204435631380548428675534481941122755544315057654995153802017611063682275363980156961026696537779184205566145988568300379235391831102495093846516662167727656506438405517387188931316793566075959418961377536156291369777872813273194870084111836437249107494797152169059884575724329814955580712779815003944649464014130746172093188648800373456430870334375148365124568770310857732579077439351511765372663253138147772391439974110524406788965808803362761151272619289430831453658975440236150833733172434876490706807502945696161448092754950235569070903576955554191516930554833456368653477052410709548784910208719154733247484000492715381472980807199689448089010024913685728809540467554258621990604753851326637237243376061315130177030310335396492551922464983686344734433897844867788063252012931121736139735116518117216958133778780977233903375230510150683127023265240495891637121040888767502075029236880529136908388231222872763855407319874085618254475711806174532378873918319243799981091601904445678635335646548940506863004133825546149096608952778156101383926789761151466156858546507103175731360729049644765505784190380079047080099402082368656395668173236502137049800124737451238323960239373622489256948128463044950067579358354066221262969609874135926023679035400678001429955007055504958648545853072323224446654059115872161430871892157315210405393102046806646591662276525665173379319888162245380735638763419990468640070334059280833542212044174410157499675991885285064243219509530957362118217074082392664344427102763196267169740020181963013121375496263246222155913868901159608308684611568653490471075202381933777765748836392592606944270607279084547878862175559264077906489245422874426072821406456388293333279366348198312180761563451055462460740067496815778304334358615119251546835100012926175776441361820088166581519376178881982989602076931098064320591179003528152131463033887622180945621860228486833294674959149149690246680776581240683001389863530286635905536413397742438853479131067216324393288876931262036718955388956873776512039094204731828947259672722998231005647628348453619763159751352426441517823366609204034354807613451516638931096803404054914573348064553820278487715340781182965501557688870413905165426698527742463689713109407856658556124189237074298342425395184501008163454893027097581429548960102215905588404230028019356152637199381737444927857923261568685902803368709228201743559418556267594352660126859057852656875301502648764557918476556276800143689332285528420978436330029434201690374592875599668520800622544609365449605046047437752360226969426658552965485059441686008215866765736847793973836734773985948395699428676856653527571375344030800578953236946005412400972796297750535383788927141848625508427600853787569127838808613963964420635892621839789947531466709254879112625468016797999842562711287161298176359622294604698511530932553261510850788120005185808041377436889929181871771823356400255629134283938491712460443865967009771647620423204055748318273078927303256483390294936751781810732361859853172262976771016044258328124711702497387071631856373829299478859849098781431207322493062292636983399102212657457894648998725342636182934058419983863073305666022740112491882186880798921224410280273478615375724879463460253776377701432754036852972234762512479861804373261835276359081867767396748710622223028164132945777726120707697939902524976788427920967683361970857307220224414019678096091065100035390758811689932374423867426611221641868198481602328741166518527729195375920758321644515788095782716164769595951554188792214524892135237884681854706572896479667964758955538834132035102061993470658866795776790456053478662923336875236950224815504929585605737894778072202947043206902225278578238433177762619650064732585684800327788445169086795404255585854486794521063452057324732094385697403601770989163010571898647309178938109793219942829438797441318215959172648764491087839485139234408887386088334754612271965816608573784996043490604569485528954658902147960578521895436334372840274668651667472814505259517741584441788339361028570105374810181715559070716859962445709071781509617949273531157785477820792434773562248947580904914227897170611943377166948405004289104564564325269000676525850160075075265361245079785212884193748442427315988220058384996755998695472742317791680971219804427108628032703228452225896899752481549067522309704177042677418753767853315230913578782062082852561298782472652812188090116237972769874775385674073165971256539028730656913688296170941775682248984528412367051266995452622324696728325788946313755635863384741203477512300588658788436038316508616370617049868737628855561731058504769527652176358838899197666456053346547471422352147605796078131859255815307200630338088817592796513070619228675278495643975367930972914901853392211270693648905658122296212692261215832671585673631019385027953312280141752086655042622138535308165279040175826490250495520544871347885328400541499105758069855820880346144432472647379561492380352681851863992168774929807106552577217522205719771484459538945101539941480271593303040670274736511214761187887500971534742737892264120910726620718135169865792572325318304880221501219605938737009957703150611655949952205898417850204043746143171040492656016723749537875927245186874742888896194981802785848238305747655098080387869259435648585473444443965780039503664463564052469079041155783408914768344996050256430047906338048230720144893676419083062462155722104664896378578704328651229281588638853693350256230978266517834326740064285591857449094901106352923364012871832778865376215805719740196048798870440575050380576317689386641390080309779896255761808766997816773348649149595293346707274021310787018521395221127264604006197019645206607455120252323235479676771028963729704626917930448557747337303369450168328434000211855309410267203169073101518994499407061359121679288907354715452346620433605422765531950774378828103114993340059698564842975322882967760306299554951038148255677767354024834069658625192960147598571751404665331150008856006209669700512541415227851789311832082830230509172271164146371955195968537855554227782689089066739390446636251869766084798651142317312828835848888132389306787523630244520479274903165468427891040378165802831495805101821331279505906473238632251777246835349026592288579399823361907134923692729391206290395366023335863300279063763719647040064475401124522322347268305031344800053971899972461280759868556784719441005934027236551037463006685794473602175418130502526713804592405768119877003800814211471609969612686936143889071800043609512790229231171236010593118178712972819580946821859010273418530469330951928124495748013690580181541408657048435406538975717098431857086940929945058762721318906432944272813885518365358464428738361790396907944783265030609989163497390521587705285346575341144259640243987822722052171641571415596863333793200133043371718999134265668138267228432999797176671991879935776759161307104785120024969669028795888117680867540030863706689254442207151693354028893986681824151362362031758709428939305403901636279750788430256850121089934488191161094332355662061971407349844451995177727630809131766105269989600363256132194638769856906689487732834639248215929703991168071374982990532535855471749084121212405592394753449334433893975782621879918860897581372333220217426783637287328249614103293562859102282143447581893897994159245410493611148106100485808123576775458038729791847311272746893710846745376910328461529761502566431571973598727486872138610884419605613095559166394714852467700447087498366221768298397967735520630121639053598560451582684633673077136442673144268770611115944359413408606762849290760118631059837938167053236422858745149494854220684798904527600017840547611303158174178371468624066877543485142618563321934016019671825904497605900513637343805792321688972585937303413024546252191242452284215103666494211028303935131264770529781837527029939422140086327226270543589654241024053367874426586636914713038258607870702278263696162138335753605830933399554217262933122761359189780868332278183667510577982985395990968065142759226939715824009829963586827765823957266141373230206901092799791219656231966401715024994816940900467467426793333585703382634271455393450868890546656531570979111508541286287825276021941788133172734050533261144628230899772253860114473880205137398487107813394771922989738267290278918401843490181554348371101401488437042894245639393757148473953047208555777214500715264207654830376798705956625093183965950900807159669873268466794117577277876361260461005975841163693373717541319528195306790953601834067094681851469003550653199339031615167259111274070557714248599504896241481130943107604430601851041914689690893243214397834399205045349087339280556419344796208072208630684818337855862437245445366609955211067390260424619713539414128263623834280136368448244028553221168722329450187586288458008842337850200538657548777440901118909948619399940280594897547118500179837637021834575818357420322113401822752780798334412780911099858102194673140565359589052768937948034831805086037683246058400880341261114384108484881883435104961360649844405100393119126878527150393004150370267360373971037072400395113574614920507375349521027049911869411314918981655149891627094940938051044131359390639751522556925836473270335319717746294417396382680487158277485436196395336197691436460777556687922159427758651793047963538718617922495905065871739091480537386562153414978442787536636662633833683462914731125565674760047992533872912181768178827222637862111732362439668062413994769722032843664782617082838838062383928046263439137468604849123712523695343039336698435983201267260540732179510705349779000502278503760380390288858118799295980525744102397841377452324206435639754628617339588013659301799173445029057641857478453692554357904307287921769963741045817518337966771279765496027218348775975112860683083758795469334289524328202763703192628003841411000374882136079416190508131633389184634984081046148847684669573435938001909314237978187605734827608961687176124026874021896893882822062976857476461137315044447238947855551283544583429279443912326029186576862577752501025826608811235672500250603750707481938191202673504676956087000301267530831840572806780395011853734961414083948635476065108172119479753985452341689506943755024236482566777386746260171961870067216909636909676667601404680651482596428560429159634925769724571574192893389041637368929369616416475352887455472573035908685963175816052159071628175773930198916079192076056571555618356191694002004528886375699700410565975505086600624109886681959537364742015895003002473322561998553442965633776846458873285779579042107271230007480362271336545702376255530580970198974705996479278284772633314292770392955351346512695635606421047469792845241870150246454743160974432764838022837431729549181935746070356394769585919591084062625336374580268740616723914573638916640392903093766157148549190217118550592404030170018779020917422344009422229203579975700966062248938925212069576809072156307978123255158178157523900637986000741147864869634888968649951467649025777016468149618586101186326201012297339754815653835798763253419445295784286563428905666075142150951554322624423753341029120511639072780010681158045674762645471344625533672861086379041274405238802199484705898701946175555588730220627515281552712847459166124636798394383976431529929933340858714912387485642533984369729273143547344630583031536307034701288428706969192140667560657256378798236648826656095359858339465967749576416126317188773905848603607818314290653410102391824203298256956251736802861385448725264103076878966498166106214388946949963386847568579336708153038763117586695149637351745809678572448831292622308003805447475984840446663200475053582589170290518353879717921728255573454902272427086554238727817638097645444900439367930613764338499709537807568973672995380015592354079187058808453958452569261489542884447688599390167161945719136352456531616273519504551827513814767440669034202527191700600286189386033041377563597124122227007367262304188959927815729699090094238007783697126216600370482830201278662900822626000668131573141742708119812938137313836566039687005452458438029629120348083082250843640980805806907203314977971523543276307067021712167452743809582357251657079501872017898596336460966588290775924386959127049929150667847649559972868144385402428413365323855747468638501436275769335871637612803720108232715754224805168069776883487196204862262096959599958880659014063158434023356866143888695863244930277354222768322823781242338758711234441133409084183386082020205686908250360493455799105695727395447366065417481473531584316686230504654941418313859624086674989467579533768770478335584748047433800118540771598862072738508495167120757697193579669300260865934760793116710382667068022268022820730262230395513611467833614963716137499623938006425503547208360010902677676892898979203159368812166010808836900277514698864057894658112850127961251380762076999405923967445210155572282257600247985072449973551593063221151336400297005582829350887097572823979939145691196523796456714552565433157694281767308963064579949576711703379486506965956285298686700786110245779659842822113120104952941988762351279404464668869320005223616499922584143124484944179440311846391593402896041400636405579983968745709633348446863248726164138639481304526011596563296827131707044866693694352364720424107476941932050465502090372019694269381991101217559253646859629769784740244474165631286825741584391231056523742737014823510150861181132555521958366052584612980592263079766202407883476705719347420123191008551893491983285485731632805374366602549088912427910037331867551800088645680736394511093014815630595174635898162664796909309890393234597799393826808053523453407599243732120586157177385860827374647975836344001080224646110063970276887612234175370095523330569241584600482554079151339577123935152147039677961028031947890767476770950132730753191504570356918547259706201993014864366620742021202968917215714720100066128808956687640589979318480237331903611541349071635917476983327726200884205569500034943029697315120206797368874666072611438728693493740171951699111812540899099562368812634960924593597388586666894727841839101560113377882105800114959246891658846102865444513523532551798047669874774270005629866615957284600630339672548966461329253603360772133310542510130915358770688358815043607595993898693950632468081876362963641433437068586475788531921868454098778012318627452710133436729460773374268608719926377227806711637594434025615137572373387762263568850836772138240119138227489323481420477484288246340401938412397951437634196312326284827602526011049409361533431445889967236871780813678950848298990577497292287054121740582980391391075713291975284795211649598899590556760578620176551887077889584155065023445657346438605685897473201516476523141669708611325183165761108310091973809260985346448289581289806851075451011266248566713307202228705299828115537824627651132951983134076536435588361490363794211529376398853950424427061495089356533851732819190467969508394173658321779644684375095183163197640269733316239333511053576094182372790624906209558888670908607505518816539090488174625769936480833564691728333932939497397886736774476423140546877606223386303662670173200337346980381489213500959094389631457865786735482606523835487429961317202072976100535284383568054659688630022100600769373568390519218223880666536343280570659305028767026299106546035276906568186334100900377830967272996440198615546051436596131159372798498792454433058272253082310888373696831300652671633055997002074318388003926911556087899201236014684252368793489567074321030016633860546090698259251738577479744815773101958567677956691814114352819755498159047536677905821766757401317075355834722981267523870548901223057887412751631954565800115415155255970399406953699883540305915896991229161996738816886032419369111566295264374793905613047838550376018497648893055019229975911226555632781398105298024679211866284701052564197804404299231555638860277899132111440524361704347674974934717984559793962566816708855537897474302835269412629789126446846515188586961646100965317376361160492441827023560641408554059030347419541534461252328605498034981417479666311523295374394319852146979491989343514931349437427149932111372284748145498012807742599030777958507542079655403344776555956351066065910608454006906381440080185343227590299594573486320936188206910169273457322083317732044191502072831819581553918875330320000294657825157824164830243926137939883737614406854486945074991937624707456813220006242134680011441878396204273263052342781127162434406928458815191844332847023302316844754018280312191306630035335627383596467735853786655401863973424693223823725054516625062519560299590059355971673057443798448357368983812605488256870792765983504123470994524904694286415723022430735216690509477006356231179864287617832032309695849484113845539633311620208239993643950144337494014876837081744297752475334230677655380063173066219699768682118530515169047055096668372511828106708130580617899454334604693398023892918163161664253296938309432264126217543228081775297923898408763466710469209747821977985742338930761148986061566229955541965382255524472811170171141511620352188061760365187442442372217206143809163452961276093509917276666576116086142747325403952303501752906133022646547157357257950102225497690883151518965091737697370835192777209904854677586320565690465520134518829359300006933395985613027412921286738954268008586320055528210827202115309434993472161532709898170005705667589117181171291654781808524986717821332500393455412559308324033138827161930915961063898797688510827659764796071039791843485076778589111813793610440171215739445200047669590998669837515828947678817443272669285259375809707280797102197173748717310314653135074455467307696417117049869280738259158378331828319379201656273835039212523836444169279512307596344814924976252679553149401661443254020424067613159612474902485484602274918668567270093845826099882512563282333790306242306572270151493497116038521483567712702974468050979241599554817288764346695893031861574261712685438154671572723922144066295898778557584694025287977576792682411819956614604785780071269221846031215179688854222840663909865398501365191525816327956356213205448480751929688077917881135649963056530446345794716776459094167315576138257683516779290713263215533754113240928420057249637274457540218041945848060419112232013164907881959711796585143632062832244435242084392488184969078760625203618958871882743141221659706573722703554145363715218498869915490314930869127175638757045513380857650012707712199318445832938379182206535327910669382149102068873848912358210103206668848192743780194151772492921263639147688498470757308888960595904054118467361106900201630897990041035807756013898981366850932534277073083351005090569724637985180376785412005565099366832242533362703810554426948494220487913554201712147850597343302017983593527762262512770995588338936161400831910943810517545120498776620824605609822663281019370991814213033034192718884085065157632049480745756331017813990014154683234018967134105467837283193483670384479056323776827204730933046987721121921610182467956579828406856814707021298904634268857520656210282655599011562785015484810316060615419916703732357867592513283735978490941731447398612829609673692533906761393218563495153455455998182702857286958753537369711669810418917551771091506537468851397775363108051858962135337059587301633108623905886914883886072338171780398622497081873907728380491052286822052263148663596749408811110995766436848674387050111834920313365870777909390843535149032053782278325135269799469671989440679122080463177048465885911445376581004817476343959991311952293517861094980001623369191223498567562495865605126245344580541747250807285427704080700418088701653129298799775887085220239103252142089724520119802500808300331895938045228858517800545159665381534550849435621431196725859253073370651782410965643092711391022770965297707576988468071494690166165229513493237038255500339332265524270553482722249728091503032569707870094651973205939477388717088601007418825404662306729717049056952278054299904975507527019147721505269082148587225578384905115039782573013667329202000139029378336917198323919215430875403521224833830705795389017743086065962120772738743151513195493078460963322766350647968516826301819963184864940601762635998644575101520947217537276370020168929783473530851319048926679077470567808484565112671471753262154549593992540460214430176383798736029627431943320402361555984997924831390831243284844976465482977298619154262325344154148229333597434087556664223814548432710301849621437910492149915368843622467936013243877080074525015120197630310148765845047845069907314783816604328768689606560154440204043578245794130834039405498932038723466964937218120290593078792999320600777027428060614373871654132671068903731901864657100641993121450805616051581097388870362855025298287655048780563602861347092322353731606698078107792923299041804011431770841344974954981264482714516809344432134428424525656099537832496459853197361599922107166636797620551903991568558909592496743760291588928082976266571575070762732578846949237489052947744760711910193270540149361677040324023797801607745861425871016409604875588681835363135618650666522635621005652584785292794531955590741543518463419240834629293146294678054566505090637032878582857412193731524105257641456898556414814811856211579613374801791486272794750124879844845271082746210044130365768541935834259965718047368042465873636891856676225986009238372242884365329647189940418830418699944397685478340651292931606015810183940072141884956810239259744001444052264579344293077489797132027856955683495417686229937071853987241413632675857112255656900300456353498472010306068529977816395477641872197111358399234708012132551132995683645441606521953401680560312935563437679215281943149070155982827786715564106853436758619965914549290021482567858614337380272356559363755887208293415749933522122738547308197008627195683433193346608709306905014647536109916540891146335216167297348575406228751085269040051224826013161355856351641282271082943765908762521153497941667175307016126739804074745053635019718629865369576606022440980632756171970681527416203291864607799517376048184524506996043951674396943909822748876045862168873691042003235568293491846346711111521333755461213648380247312200467225930106129851119685536400614112952347584301484957875319249421859803370908562055091959895540643140023987981725494043545030982305725807810314191790491616876581509977046264764783119158925564108545794592519168168316835873338744217253979393620143105176272685062901310449078816339387721673198083120003337363960101449219986732466802493914531165446986983821936787972122810146941463825925106062525396445118999780662939012635428410395714026324321946033766267523205049293613365951130360366454794442497431656070828975832927837135862946712788581851472599361340526884827761321663836103780839101821525070457238564082728403322561933257051640655971214928057056596309210232233360782349011346113803888247169306285363590514415549076897422072597103064786870509919842842113571379116513369853877899734379082913872831394910677971948323603468920609815170082103635464956572970016499820533133056344488034294434185284100538590178340768568276153645706822889047076249054184748110255058124308676502534223228336949514944597724217143095395163588187311408802372757796636314606182902770099912001170465618560064052497742965464757201718060533232613159343772458257941241929096885493826909337576846347619469211938965671686596032384315038637177247745604077985564311621197676414319321030105193688695455576944651720522692095987270218123113245890252994703106258627593465586269068972879457813386829864985921091274085246072480762128089578206335451011808835552105654408091634705100420207074240298011431530497474717316150941777083482414269564874451580804572593322274521680210954717675362404037124227650201130869576196618904927490076581492326068501837602410957219066950963741337430624491820013891907188728706350137198878926991565476704560300160526474882594899342917997036708357717246393605867658373913749215195943243493896750242153164408936921772510446137953592888651120887858297081134461671376909692526830640256077671062201697556684849051900977146397015607522335043417840490391275708632590995529671584910710563877428485697718063049952190148513001527291727832630336589260284237583864290799752871437014845818776019321168696953483626375234530452720799229110730427070349291136636928115308352587151735181220209894145934182895252775380054719315190802469456418565720575646444834020007472648665188595145915184020838095338025410141259861788611678866653470387736987452784440065189813940944083758581805730656776109745793119126997556841546162320675164003022396670621027178766494988737012621458957649352254187688335664386979098682853819334309339682284173412544683388253334041467598408767985610774353978365476622248969909044290479355807428152194634762706436565579371334589892767819470952052703716869813092835084508563421564139556345774389584910207070564811160932336120909247001947840960347043550628801823685715529810584191979046977009276884247424696925880225056037742922816055936657371150895205733745299375818166424579732513316287751757891204828294180416146626214684369557947895650936887795344037344998253712613402858039893064770989207659851603984391717582435800265102821468834602195936415159149703792147232671108713983093056374117179521516651730796649678166049260361463436972196333285433836871671959625271640307791352897859305640643315727764982847621238575331117475051172074035810281155488560729362108396415421055382960600856620515971025084150612886036624673361373866482238168387245986940040740634582603206466305041764540986526075804743667354719755003478248363057182402706946290977714444506187118464801092244580035868909586159706777355924953809149358571811238967790804466566766761546406617028027996635893163038588676244880669901822651313969640330897849428536039439734403252396264728567332836984499610941616275835166289976172152526925353529616107189156384259723406250280469416556733958066799300178011605218124589082424483427138973154831809548725978372239373431035014521567637895671317782126620416839914971450566340217238116012013531075125024013423916167582632173823208580264877436801071658509712719466133054388570115328004969242231737333482024588486870833566518653235793448905728873719326802029152812718710412056147474033997491248189576439968791135831959301049338070864436717843701416158144874250121947061517700627378158295009528859927469021555051563061119741319910395853400680135769190549587794950677389825661099887345476712523485756850291883461672369918294963911621394510783289824822657385576247318200751092464697380252052651250363528487339373871559234156217682474641423327935569751932288769178242239479776293567626505114292427692890810011887639627199628932258664837345739433523254295705903601798372042825292971706997958411729457644642443964821878416335538025156700931369894418233067773495376783100403864554559167985638301888371673580981218158134350692222873683072314212684467146991339252541828946119706680059751234323707195832215184372099753405011732045517388177290880154201879523815487567479256270398600830267604036352604000616789255553625216845373832203876317932930017184644540209847970609963268078413113886027340469265220984756497356074258163848458581054731216676859246223064526505749932933251411502696562189558604603166896289062960849808497413254030137995933432535420018928053113949504730210495405427836520658082147016893070571191780399698601086629944800200242435361493076403271965722636179592591313972072773511013830223277010627531063483753325359014423201484188136509410498823425551011868360874443751083689533689689359696925693640347075345581796851343625013803342914139843238470104432521184656986183743573433292056773377869332362304085551337529805140147430273895388429333797385874881277979858422881349874757245516674251131039596917290863976341806071353803062025593386540097971049112429350559243846454643804120428774138232174815450205386387391531049641688810580757431222315625316181546371445523859206652175151996243461215093194270386862035895342963198554181890745090650224880290423202172198006147021010118044735543906895701765532989868957964144886836547569258796318076020478649802227966980383221232371244500805875145035615897042175646546884020216484762746386812688986930930361704435240117840458413971114774530143701795897334217944872571945772939136376561929096268028161645101428191192526339981832939511327939119644504808495440525666982202551120642241771930842422258882121152714367850632058687809676341492482514786715379953463583678473388956563593194700062733536882685122885398016534789689700401853191396722904812121876342247089354300878870806986439698362207696212986597062715423846505263746981947182845813784813084877543519986740826076082159976027429213273505018667205617073272960446616194854708160656819878110640804643585032835134692883141708709104085523698802854478169804039579859680779786541568144518924713527880172918389243058645790452209387368113116207522655846550868295320532112744670234957706778377246749408611445219746469663620502116033155805210579098119536554660618601025116315007391842545133061261686486513314974401172389409784169911262251307054147780473834519471632030849574861004135236937310204193822199033319331974615741883053258041168246086456879767623053706607285371287833815704550181511461377365621832442410020978150572371876820826101398447023296430878434276018168457460590019369234725404373536627726227517878877077386682536869060860653280819040603651621325601385564997811850281418950079678508646964269477430316694783297495171752087742311596658227559667652543030317362254622245550250589683794669471115448989253800451466678070825654396225814579993366816581679312369534864515442615177277446338614907525715741290626362721662005033468301387181137781730763834957871138273329955094061516629083513108567592582702260091802322577724740542879179625452657949337348792916642781922033707649040746572152248172729425269635977523616787388096019993989757121946135555050112544560292610055588164120417897666974086428685842729514829581313231633388455171397165772667480110477232551880774014493022701064535730654596342170358000081516470860259634383900046127357816999102300907385966333566992759984264131240570602774494141217075017225058123612772725963058815710757671110723654336719964222951538396485543755332662080224041250971091334473357047839481083792414627187749097518510294656216498193277654678914552529951825319062115953325075100630091146280998050049701988685861165210801389239346188124564111558245251888429127851313054349557385021909815378409428840755394758190154554785802450628474524259987160910439509546624407978195131014495912222956617707830173283453068559010019921877867744250114225091089184797296387582702459184320802281219850657046054329814108675101034731373939764588135258215409275218902658287402808205150876622926165415723310793788785802421501382356636265174771141271974345677952253816071265224399485453231735123302438764288654108777060199983366329116640627764790750820573361762619094783252415656247865868776373132493618686247481120889910631681256503768266731002002645548487886761643700011866668144568687172509651499802514649206025267931652560776243429913186932674428616439824080726835219358852060941106450108141465789996291747828449687366329026299656880055820387412587788319323696329693099395829917569198264278569164692703686990999685829688247984000028333264568366906741653205552071944828273057952326864272639529433048708998053603990981755616984607574305019170169834244246855130461663777488102304582061085316696077912381906970709331439921025983014465389886573248323975970403426954204510095581198919160632068277565562669694644509987930699213816675055879214438807924756094070872468178898624702715779897325876875194359895926456377426006855229316973844877779798902571044421990785537306071524074849361749261602506363827072333538786410241043365018910366869449802026036706402743693738671114692862823865608089089173604624846403278198921892490647621985623857868457185667470599604167725848211594599219926254500899737119710524266731189103571067118439807857547255731696912411230283462061068399094234966381463161233166011140861058154037529596073804668679241188240142550023617508491887049614077541840819820111741828859040934653293655337546007879476437431965199446118649906093660795813638470528414738169426435815278037238690345861047787876344518515569325723800763511142960763142894439440309744875546051488287163487521974468212508503631435750724843542765896449344727490079679508802782408631701481855741646783611718922284713685170576904039227011405214010081081709776547015721820643228833146353439575296171647276943499694721776413178788313017547907755453109580715136538578884920514653441793030646921867686049508357024778866579902050663368759635103248692501314635104336804186971705806509042845830593786957483955991930351670441433601885067054838030658553305303412470597994933079911605054380783722720848767040317012645650060788691174095239805662254002515618797709664517495773554373880664369284773806092435027992079333090489488805382640572515524674198127119826528022090109467726811673643390818528972350652385832827370245348934632859133970244061282546839714397214905414911112502009713323984932641479427890798492742072653599527232603614198626351041256841058168704635343375018524996914954635596762428001291573282386504017694267461697362894407468834885179133317209032358744743284089189063365388814258521113220406383669128744319777538257022389048150567194389852185841705146400273363282088974484551306433245924255151150555842036583764026038556534051871519480182460850952665622889749254804632505645512467897968864608050694288326911058642680271496177752101529402901110614079896792157443160610337509573361428802616237087592561934677883171349546988254544308485760087230864758125110061908309996897916257379477596873991909499054714676200914932981076995414508820881770981461961755218711108519699413874695657402296232546722511219566857329995366603412026620007779805884705389228966873584910553864225997386858942411059024228240016666795621387614227639419680682902589377531859890261090605850799195719540003101241927419438892897305597975695941044648460941730122528191738650714759225898831324808269358737752683474329195329430977168958027055566494332003308636901386590508207893691600506829681225952973456379921498327435226175396851899361930380310378915568485771034341691522665081086855276790515820984841616255442589720604386536069653504584524042247759733576550321499047117874823448554385052312822691990579891530694747768758106264440923316140939741061513853130016732906928562239380278666106661097834735305869237362986295930675420252285430543434076882091197702051561433459533144379050397387637781442867565287152356867193493664127064663111495330159687824932877632191667051307701560582484595665152787411845212530567836357110261540958336316288965349215470695800426409950891041040992850319349399776637644955393524181182278252325362129235526952885325205198094009246337092267301355952724794750368181246177498454508762890694008361069234431136257664571764780682073728673252811194780737219949370356161333100058251727052751222059823682155099035171266617978376383826967943202136595194576916377897047064096212942258430533144459639541344236045691880136997117806550170202276890243919858729780072885456831527788113432449978634774462751663750679189740092563852725106791490458226451596888259081269858045182341552646882747669735295488022519810262909100487485137960352077319223646713274180391908742376495530093775733152862551411625355655544764239515598623970488265280797709242010270853470188990947521913780717082607466431740764542387971787405684962084384206838462952778064935814177174064193594675484666098777623474970291775185835247068134235406564957697068029791185105081028168454242745304936170068838549243602991943605593319624314794097047917252793158894546282567895477866782578182040355516733770576291802863877609421069726439404610747370861235986043849029265067780699266826543073314249381999470396491594986608550851613566789846963459053723694064946673853565702771128092609434662692305735004972168736596457002766540527971039495423320740319647891883747810417475391669551749351478263591365824600534860764516080197972651465675026207404859073192725205048378671644742354592010009102080652571435316909089008113035660605714780345133749019869369118855439452661848391255157785988665454095135508868354367647492399065066789285927014938828092226036483046075344871716120949025366388413865532102098854155197329020017328958460508951180910115584126656929524769837714763623006097586921297076588692865696988895542778371744379317556910435210555149633946631090213357905929248427654929973399785195307787861119372820450625950654967456548911311475649068679510726517692737106760152054859381567775461907211207028537890448649499922142018768915974992274252880288345412349559625163681075192990744919692103643095188081101012977792703559900639884127580350594535188792275422157759711297424267798180228074467364637596466107870601821131907816811668243222065853656088043219336755751456731378368698762585477203789071749316090417020460554910586352147326275069283359256891902254542309003841864974969421860746355277861000545614608006133893793085382688165715262178595734178456203471640232003655015514097693342668125795217801918688634762623861958885121089165561376756224205888333471112343307662110400904351658806272828546432110559328726918588239982258292838462179954049240656855895952462537613320845918393378115571327494034481664306676791523861818364587770105655232335756770858669834153185911222771305274069340500713660495430798779096792943528753614696250902824262230635265702677145217403340406965697832005793048060475013424333917320188928504988416127659455081822911751400494205177040368174299526474766138866667570628233435648462177841620297613016521070346704246626387686817329309164471176003795323056471462945460585809162991705849441682755197802377381890726722089684745673244697872482231909882414021105843860294417394283334626378376254372212143699601778036848594339694928875606299971732758910079357956005826251125147186987362250352006457767326109779298559904412854616357530183199998135970738506304325673287730554757633079636305208885052871584116264993055339215385528041330653965607465104928235597333298372628806046770648467797338125526123509397412175271406334549372426024572760907361724930659980803366146451899005896727458354182939398263497711451184992012044419180854186739921858924365736868074045050923937583820025281379722693835764521502083453989254138602707518306019310581233066277046261809857801873919530246254240877689639205095106884874650510388486264606852709083603678528883073011860031393561662700562260499719336266859869422829459424021151047568101365541731166887654034556852133135217861090075277322030588937351112830850756602387136107463289982290711481646489210914371248895729740060628872519907417352896057898628618793469639600348608338909456223965188650660091385064157142970580030725157548667097499077708870960091037527588669094401105635249546065995367938629454133280110519822426238871857731129915464766392204085535556960362731893364090836248194470605845424845448642470369982610018417347913465662117188761210902952712152886417253275198439472962170043821869241051467047063484180904649831995182604404098183060588835552021743947639602968763322466181964574818653028295884496734300112587137500471380567361580287102348613146991483008743062443296142158994582776281185400541895117734223643154220998688198465174590602847514153392320345453654823746909536762478084213829488776023484327121679562803096555361237415907721766993549867907532083503752349568041385931418498953695051784298818346143754630494902242588739211154050165199766433090421120173979249661330936160195758582560923207650255186116949839546826087304562654032232555991779269698612463638375855587072439950261745625426664620652129198030670392472670689427276275147381406794457986890280490395084124277236224929130674127326845670788826181788899469123796594966038585404289619352859981312459158584599953061647638319827846699552863057973689836152208298631943193112170503546762050213225162707571439145808355131531523468580911228173980521419314888872796938350268229901206830196875670330287248454468355552629884306156116520020959863591555814391071327711884390139310482263329636418327991014498597733946686230557038444993171446263807244288137040655679599481134227831466941729984949165828629578613450828928811503688623872198284656996518686463048776115555156070164376543469834818589063899426495576433432633241526419529145556795415874457925785498872826337163722738761876186229135796531996140759266316459582757116832032691330352150785086474001594667708654836650318544238918660249532239957717129876512656158401094152667345697510761592426225080489099749622518316669636660936218675325386969399015208644795295079719393458338721451543894912134169833685055587709559886051198157316365176059330980279928972212439091171808859717229018894082509306185532540340839504138456036685611505892781117648557904361875474767783091087285330218935163702074074354018769278183811375081559350966549036203724360374121731980106971656179566136534820769839391237186152190372061901227166138641799252526507745078835553816610320387106380550408697716836319488313592397045376238909537072236624396281546966429789315260265726244925206024974433055256392014032230404639482497790391212706027961580481049209623253189103282698733532046607396205025607484119519330540127927431355044615271303985784171440658582570817270975956922008050542365777370387414260674399336534004901272415821589312977525536971136564998924351352328001854037422795356545415649241362063743985683571900885376669079549644616961432495060840517493226952658273136526485808860116720765987496464536778170740205425121313971780781255321446858676312081219546983396437412220359467340920553738278789178594898508102458410606223228838520135979273460266008425232830011784283389588301194976628344424153823713622538068908016505305063654279952780013294582019956108150778602253671321677791426083150336299808287828466179643791148352318953424225256755298852797864907310618235667487806231443968555025480579493657413104562733738996575800605292073565315160124687126396782300387355847019383347273123893689513481731289860430647006088008914197349505539941839594651017771121007171994796683105763869246136031601627679383729360190756388178226818209999940894841268994960245101023701264622962226517379852811989508857429166874872388418696167018045758714336801479631325649458745081118101797471203355060269291470443951710903772128725117483339684807959136725012427376848185998700818443152708914771619216078693762443092881021212261137192350750784311492578472109108740569128965505748301230368182429566845620293693828887850581689747572997859233140907884427237007928031209138683676803644127305778759767995941056119622232674874754933987617820732189263406256894671085259333999627972116321523043187412567607909608854371617159959144355714965251273908373941649478976303939144263487649629177830602478783762088928378507251135209909342505389918969254997195635780420085047044323536936166991651888964365167616668389779165332297174455539468134028516013168358344946811225862923536691902902575295964642045591326223218174813312494386089259938546577177753583600497977185431958651574671854646795055713537030176707071629140415460303926416349903756611434085193193246631411135652388500097292584235405987730393331499541423739915982765897681284989581784726888736358790968842193931569227829183560590727659895138159091097675838143269677578655874871828126379680684650765248815682983965714547254127623380629522627848309878858092244079763101613567390653565766493887195927905555411441639274443573462001736836118160211121279038147196083751977840724109594156304509285083761968743549016874138983670213408393206063171868791472235887650396919260565752535096856644365226471972787510247203562042273742732030109995533861828220366697121044109778364963383153697307942101805361173765037169292169230901290615071548411007508829940323642914760776851777137290336417652919976796104586545371405870049151196373074022496863918103777496432180475814334202859935706916327575455898150889373635606956167421496248265763988444553846820484931501316612186120665290088609995095435572719355062091634757026479363912380729947958092746970987717051942043134414526363739825494849851790643792378878338515019834378472984083540704693123738863554596378210440078863597232714065820708699428960069738727458782347933818160721403435074131114393032175581005548984024243702278368150617690416208491290183105383090569192932120424157087890673836704731544093105660535255004270121123628489158443152982824276040997675824393086719004846762094856730292820506475477200658627467937029809880657776875178998027107919703025585736181838752072118832754638553125765723967781763967854080417941107150525712566973064257943443173150083663957135648996139975488199316920615396979847016685175523127988833635917134070149696291102365131996672114000930672968883057613511472032174510666398597495335757301329623464214949767070478820753949975893290079964745584144428064081282222054851519487393660556788868364813033784462690191183159186066396814046023047760778339102886782418225647243554363953662172722099823486550629444440870180264537642811440619135540826106280632877862643505948119578015501187452811610610557699404978092980862628784603227281485465774425714664307689453864552282305379315288791590643162157077355608508972987309836823582301130556948659403113225253766133816440400836024421367286676879718784502566397317321459903503608164265279424975357335104688250397692537690590510338477309617064205502800883701085504798417563671157807264958426036635828911084012740016601049444324926439198244314172818818533715188128037709107338709136938062991007722969281866748166582732029282330717240621160827619024852815094545778236575914983380510082048703733250323694620856633301698415001079900868919419457150456297739661418088185862400319482952773543760899845053905851455231875433627745012525619145207910927863801521301222673452574713235859172468926165173679260467012053654560670342653198220817011083995190513680341166796670882860801920554767548430191873354827638948801719576588644524409009255368194879031094325250200113430408521696463340856125208977520289315195279723221294695197528083050459843537328976172320129035861393335934935170229195433603647765108244039082551870223389735207066019109469533785498893876971595500837371650735456572109792300511704502728024103452142986649216758848018187193039547326649071984386013954261657532051809344540441343375204082948643094097893704462206510065275645017632737117980475942809768880874891070042597045080386976349622067649279215981590025927273927308545837141512804311129815499023212169875567072046805445840134061342248463214983913799293539655363454203907060667229177442635516583093175492888091190644760691292308018931890250080694635720617054323699675982084946692441201520241571657532036163151554285614473961956354132811323197149276406758038434907939273132294896134720327766961417408251841238026078035933136597429575915996398047547799432067944359179538536930270096247452658678229199302507001841950244323948456278356208647283585206747631092258565845155142917781662008690047368141765527288534241539599750796549177597110586482778307257957654300391442297900987160259479940819319882484637020089439766748861319413984242552136488141593023776386237033562945228067899651607279051538103809633977162962131296238380584368924765278787285767277201084748242892884234616169781493222708393245555321219335892534150354322007822557721015952718759453925748667619519172146649053470082658525244819852182708925166229414649878852953010096004125589405718962012461031978574827578398611656492230142253828781251992991893154656497638734442323274545732926999636145654248725862686046588696117353330173909964816264421363065174441727733502138880487357161511742188359822171058913674473871335189885446772781329183045362672908452130818028094158449616317982734999648632827663063663497927920317285852557507314896237591770697446368297958348603887073282364328687978294981806828442124541356266405239746492454745343654903694759965334484044465529106750318414497695152055978635652345586839437854999545592835544784623560163090251944824594402024629484993255618457043098255499989539133639695176967144499826948087454791097193451958213047168154012552190148060758285425867051350249801515345048455318716763654198335628174651550381657102642072102293556963213083579169341759001176291049235819483805937249376148944671615384651485669193586480991479161614148432857113422251056151561166033034003638462361863133261509373206796634280998098016128957584662957628738084088009087547098516781659441682042529288440647873741906046256835181156919747865487324299856592786557160950465328226328039351527812514211250935107295790903782241200006203133052522277444795005438257530648348168093026786911556780337586838514757116535191447813683374447434111055475313668528801047293806572272181008547332687208432568676856729698030216718500274795437429046606118545079528091787662716432650973987779161578556879165293851108875103224984849638441972661724505737039233634690767759533955228210791411705232316799396728380993174179440745813309196449750319293409816444455075962208714704695651581579463914938577903323684233767945701826937709375306594782861791940962012281437512961438148670351045618715186679154147004986766040571820499610353337563077215347547450918142241783478944006499218098603695721769270525067108366977953877945609131887118613368824583023910828214751113504713426474329002959933000160824699623845689301595979479663667133864099878672491841938771452333080916544150882600623608999595491570614119211422732105073572383574532342403341509217771372553517906980198934157829307328634860913950043389253931187574969391534928724020994203795557671143854368690716592094492481798320705725265276352136641664697470952039734596231119753067805953135036565998346366257339087169380403996310946335755565703515758225190686088611519241758217673424520192835036638774838876475498698032711852880435766782776940716294771375190998856496578714252700338691560381328395907751700494885207901925717517192798766374679295691415372355183209397870325421499516823401322845635690927383058673113823884443466665049311462326030122777831726906094235585736656966058757536967902216493770767086798144338009450282724636269658205093962788763590046742632747138609136628871832556566231686845510865016486882997126691137368926097468818807082612305486767459362479023394198548075832314991362939370438781327850774276419880423593305937212249356978206646636636070301555444568308908443605431676204457715005743594666994677705329800868525879806470443309556143426740303386718685220824513239245321237154500659601542843119722564602680351800876700020987510837445761647941296437916646648942852422229159606229614682120751849141888338183515627478206496427191618702118785666553138665904424675832851742851157460079480966977155112596565212675140806084011728737575513502299497040605112799318959844548624348014766193157967232318306687731014390996789459466023858191660586425545213312624180409237426692601453443067760708650661237647569247612171390625612110699685093548938397194149657998852318258099770725315222728633983261815742289825232512501159968546399922167795251479855015874808026160949319718799044876730309701884579838786734301180810606386170609802318962392723131979485043428853569090438289561184618943723652788231624207661170849702827109217978878680926833575064669547924857826990501600988069210678014075635295157344915855999277662005737888953436941098062277803685072119811295231396495016827074169842143244206255917351268563949505064987420929945032694181885132416100959775483650338737947731240860427683080696340585163575696968802155068337474518103515978766543936600631902534792465561510246629602971842208226080189721306807355288050105197875892520913831015275027732077931035152232036448918031959482314067994304471777786663747541039097284214177282889833253113943117030051533183099546893576808501868149081702268602218273803424886726349834284916506048276594069597949214773802388576389337317485400028552987375268236684856947679212091810088076680747340031930337161232302137613901085770768620554724565487927900743451375599553255542545481190071898133180254644130979243093054258190839032429216074620576547765040610383749202199705701304798489363894182679629452988130857937724291796949908880306796271760909806226571277684998001153647961092030334286785689244579296122115903325548759217146710344612342649805905346402644566177544074945747939639228984463996668127564871888350053492907871565327446413469599618884215459471879772909136503000334006950306139024875445155544093549661296573826656846300214071043776461952600906681458560460378412995928561023254107470286307935815478667560338741149589651314840815769592006015323449252825647207723948536599221086917767130434654366728600293990769182741481608830069207491667127761149337912753456670703660779657628056920954795245318241340590109291886801870547145153842953972393013938666928843373949621170718344490856110140732204302311177288792317445184863313738886259621949636285549633053265087333278153296039023094994587628344714648813702985816077380512414233757523810961906314786246603207388368827742391990734748754066437781510009679094654187499202103904354413435268443647576929107430872127688098406002849783735039801223757683266955136477772791149199455662369779105012997395680627960361140695257421797070173059877235164005702642673993893371438531452419411245563651627088777932336301466320320504394836892955321631980650564573987229594793047792331842784681387764532107733541995338709478975297440544206605619767074398879481882622591724168369028274581380638150861564946134778715569540252717672740513559976929923440809189123900265283648333386851380504316135591972510638058950032988912826815190576674299467743416300894721793547371224719746809512772831749902144776349423491746957957246541606486567378696132778188563333109272100257597253454798492107863909006450324500268838019945642189040307855319785269396709552853566998750887449316798585611305446197511301519392106829196309116593396761867065687586027110992634178337925817830053337332667965294540371977207870712130590546737088728784709424249415881668345241051951506710000814198249527042403722692887479239678176141463258797935859693909730204913420872566267223764776533111863464287938885157122283003761131978751077292290451608119135364320840037347120102354230861577044619543405892727206133645901376448031021640150042613360622618209076637656542882618907596881327338003525293068212643867988695202709240334976087256951298224412044168912067972013126547415356934158052814304003182635242463523429590542577007562344083302448593474767739524949330528763400207302235500726436539581989432438118696864298403041510056326769628128709275873403154546180899370678898912940367574908345687991355826211923707764115676221142451656805367415316659498275139301339265241528462254970969131833958502252273671683146682699488795891842717653176654215606598420166723069375168631393312294493849437925631153798847067398677690910254815528474357666978117791713322151356067868230259828598879576010737459484912243727688586364262693543280514031278569158195784385221956136965078746388111852050987753807810396077591722063877976105605163532727541178574085020930740800055753898026110857539393529308012257412889184262365072662205147160300947463664385793527209091144338709980698077313221626049852255432373407906014192536783636564881490815357839072569173529656970714569876201490783384934503689041018679767337344999722898190103692378660979966894032694001233211596413209089829626224060779074466056740444753838823116801725119528286070490296853127536177743721865812302764935998540900803046251346397971331683532971551436041499035262666129098728941405724709391470963208700390768518486628497172652217353594248230234040694700448179518957851348931718343445804418678326353753686555814799638504030174659929324904848384189340863882467690984815166816695424463458012520833982750873126000497494479060242261956664350394210630695398208788687481708160214495952937612649061826577807308459005925621197869640538609229861213965037628360741767313597543674047718518393321897471526320594879845448199442697135917347136175048722385274806204913137391654053206410896188979212058597846829899854218713329270401292160705111652151005248353894820206791118883535649682255564569134360584342319841241563877577037445510912460818226518697751445981874401484829866664453277600494165212079859827354369425095131923050102605330503009250852839775693009124686049335732794119876935582073912186780740502803622484074942392859305428317714537303018732305179578732071067558559173056857281997366772302767458967420371431097391112119847764250700125856066806141470681037256468042594618185779066516663651252780695719983523651828325325532179138693846743100528719718414063442240667561285927398488513189092872078666376705819071889612005174608047811055633808201357589029924888402568641168300257175104171228864073457146370582371366683268325767684503007579790858717756983993945651249617959742137669101980412379296346697952990391128776198244478608137815252072797828066675113120675893971659075086069070379600502097800880106866005683991162375178790070407490343919114487179665336710660284736518264439448761161069145959302598908458328374477401741896136408426317942552082040362058116317847226408638900126910826732624792101073192180623687377840637016207873194249858816858281066468062173184373856815024703169229789978802978664853608688798862975839654917212510284815614593768385234935352961046158093115537226518679421144576334055766517444115303612919247682125663190791624701111438471055434746227478360349804768339931252698069174384861177243499117447041300155596660756587995165535426381717641128425568106817865208615165691525029240192667666204279659162386752967160218480014797268313216044141925741994959273086674562348507065551586663450000980373250158692617470868193959651225079917842726604648898834934004137070552269211424039763562185811138662680470268969013715733295071834672390119445264728564978693629895561307299733872869918582474696276434211688726510895043794236950319780411690191604967368973028371783016708382426132882534896887463442598182497989830229500762000110075792468369321891599593554114956883797658960988555369840832970639096749543725622886586381957109566830817765946244131404318020297069409077667706202519239779556968826359059532320270557359858977241613401853016086589694425062203869022891337143671149090040881383016242993423928324490278061145171984246852026396594320463241447431451802171121405983612146850456737538882731956853309546677690115942124273275828478613706423479532738802221508091383726307439664710451480350741493087390336996434354330214309269076207854134484209074933696565958990489314494626966374259310019335489133086392064503604380941490460151320682363105341773309359492725965718376348118126886294719202486405131436320370263663155673915002886944399275160555248324493651240381945735401252861910629822257348437172976742980366317164624994268147553137422700317110615505247249972687967582859430332147138288770642643583927459026140699475576843807465680158745293724921179525168047815179508123029422495826466469131482981746979531472948170561214728978035953581783078728403447450442401300505086999769662345741450858410920650059428152978447336151288970297896033016642649040029191065907076016393684338936418956578328964417356659462078597644766251828553085123849141308620467421787231073817869720177425169838322905012721713759499244249723948611782233089689239684963821428347947607427832908631471513255157268055738508887507015868263731089882625292867015771288733635737651493864383365443257952198745269753277952343947194525752998039948309798276827847348212266498422392224979505638152034881269207237211569528446741715602576828546057884921017602596260204755693461028442642885563838508725039135068072520629087083472168090782402084774785534686051007271243307319951349847351524581281552237937141408619743745762240710216599692630288347167107026624307783990301663858524452495498720800126642431056575802839742938289822126669200252283906983259419642200994851268837701516691790359172112145536971072009585141527434616058455290537835945567892399946810349315528160674172921488694256604826768345828557119024873927639624032852174463471251065212578005558041139984023829810627113840256899185750907585306090988289088965044310556944652710530543660716474099520360827896874398885441819243605833672840606946934313237335077263730409020499938486926751306359842880708464958367238393172978754874185324028271661414647900881055996552159678917323115383677094640370319162341026060417004538738577587990995032091177479324949876855355790685215665925010285537122665787704686372203713236501537835956374209428473444531517869951666358184265120807204235235682124802067057823745401033461249178984856188507702772430896975835900214011529702265345031844025010655152178996056530959842287451425635262556949878913526011095196356471891122815459863922241160114628953538160866554620314929002850499617555761513645507269447064551567805351261434921122064991792755197501261965111874454479687865297866208588635688590774299386080807159239967990891286353128221506790473236771500901923186293963013824089360226784274477623183911732940696552721850054330799998984899925595490781247139325028721951622819756874913156701807174373410334957254627984975214822479670998514642802385983930800031941955530257246909975008367725271432824980211386937993364535286801930938411022859887010014058354636535417177313093223673986977834166372006816101570164602007590124660370649277368252387565202207162650953440100551319834892014819566147781006038740436142643861833729916614617823737517161360455274519836487594058973410135880758961346455966832757695591261475789972138137549891175868589141281947899775469407787904607559800034088917453517823823115302380496480856025325891027348547764620024331728563644747048683932272213604368514136466750247654559788670471891848650059379875610470846858899488788288990041752664614186449401230221213277501226069452845165273845931658675851629383848433827006585755549808328708655430055637086319333052868836589429725979223301060694823362785543242224888603432681939039122609472299000742731974445249990805579789040485381298059067503238200864744562357143117101501076062527449290501650406634788991533781008151018616676103397623783428429762064119256525693805479222465797997488516332773883635759062538465035657749874726386119236144702403500099479009431057770323988945668257681503639090451346391569394779616061385878917111050499133201549815473968836222291164376389053002359060974109868898609504821389722953182348691882120935038955612274892773437413462923267787673927154698955083867255685212223963487585412931704189422547448865902588712380536557567644357962205342143291418567952645750247393009887743701332451068205000579072639882825824779272365031087915647091111112858873438763192222567344013708043086078824767994987414517294352152892294389716824402732020614359372375427562668115710267030943369025694190524538241099570985794208303290954745231885440908081339261276966550732921336045641155613543625158426535977711457905268485293318230899027598757658915277908941244638051615497230621698651134864360638562572938315828461335990387508596523416580688077099569910655002177051505181681936201478744881501463591186633087559444522813231017179144295484450969681867102863546085656972906150214539506982686387394015248913797338371620669572072646978138868193730797426075542473182944097322744501289844621846570377689901234117251421708528038715123195790047660778171319334901223091788309069323079708308022075687019135451673694485143333455719136692876409968683368494169546958940431528514396149562583991228606449011903819719081605396224736957568385572395966242443121593087701025530749565019139226098517505308047134828605846008764063912197288943392367627867104516852648891252864850519056388890531053659565682738644374728564380379043970916408619125957310328565095730965990999401515543427757375627790712828879572632947629400477263425301679854998560063796833081263560600532083191837475257404996965791514575136344352809513362852517733085043238241966067243331444849886258400214863701852920773863074743764818460091136904605266383746061455695231251856979832940527427260253563871302884595632688574146689103752742179003799276265979958474723815698752680677892219451568756317787785805042213314036854426712864376709814090641708272123800416426118007300040383259393082283329220337140116479718424254400829314857664154908435929609895363033884956325080708403449899518693395561757817940908487468999471219847462124356131316731576551265847003208814685158222991399581395987574975673231112343025045253400182993430785622073034229920565880429282381123322561745222819941566013079489940564378491161074626215162460996451771904100845160130534350691653609854058472428138246414042744137394514472996347332659425305391189747870758054948441630858289009113653108013142967636344250480422332739084105213311637474397244126539433675391766795544954094959673003597373714690386214523383863840847543506114249232105621099173338748681762036253797539218408344609410151660213953011807225619279629369613744945996167972550010840963601701446756251152396637848332410406719406134885497192606624233936852896983517752925424688482462813286873275631905337085653049107346603705681277313752386855642390061778653728054914474497196225823857043508195594519041017387167402507040519559891964362226161753104832615879682061506589409311177649982480800054614823818979160052681512267535332934952731743225948521602367783866113413182186497754923622524703035594272165150342527029501287527982691108545104388511624578193564645518468388092223797012446433003110877505751855610028228956487843357624366142400999210121498783241804196663301239985119108180683202241187130718295446220169462825151924273396096403251074733143763514182963490678597055078610897682901929867510593258845360492735467675601461640514317542813964166937980654106345535457296517510727500138138896902562491085091011236299462776955620649675291726818182390241376861982323107247464714701599365751319912020712106685739689890258005643256629944660663692763838301809068918183139059174852086085142543838312910228304186771911557413376837083383864949453460101729093710287281523973695737471824792342169774534208159611577678246486726966281832164751707372505121054034038634022795016021771815739512671541518795083168084344105446748188694543115500741305319315331659417605941880424272097985132810975757181711106793673825667666508751280774533077793283094066649827158742521346604047323059677272997106876047347335545725423062561796621562123016665305145773329347784623759673580722058244410469547592191888885146042262136373760100989415299179301290921257265628856088496685799675138385047494311653935838321863637246820373096708163504389513171491982739379394456484684908818098309178924628633813478338655298257512190816166131294045378733366982203175050492615546611441580351554569099908041046879017564228497515923482211235286947368837196790799667742149380393323175115969700559650901995272656304194697887544511122297802323077528073922381625585327710999982544534858393063993137059193534703008369110164595349933152230361632960846704012640479787336093311911169312308339189820595850724257977942061439422994173671416152375248265724827404327280637521707014144748294036719804854744304249011660658193482882229442170773280257092106191657095025782601568129124519318186197258331717752313325543778857917538694879441696812421618487127665727926261619838797927189584534277917125449850010774026879482822940913039059026446957944776977151963566632763182976944903256691694167422071981546598682752494395095554347147714892606639733104325022797372499295600539055765833283837211398620158836866807264618231692751513761275297054720623986091110534449869751662166199618454252997261223062989185182360590707678884925180758215450431898535038752028887473334168086764357215204382115881628972518668385631076586611159063865340597436900947641219081712944980139243763727116829399576826399849775374543627915371100130120410490898043813165268440509814661241396324000050674400309208440827342130920493476832312415962850765959979796354219780744659599236858915517208335092083511153647088406839697471768668402721417319750443084767810897406611252214986660758254980002793799957509629657469874405191220937396515771736384348617610085057540572022617151966268177564353090904096811991200144772106635981227353825913475871178618494327555689353782569000505267148470375041207807313249895139231730283962410293678989801111079353736492720096451293835093021463468635973908591594307769082292278989483047581938313146745214042811028845260862407830950682727125876161355321978970502945322645691180701122648330717453574620222479731621599299398290145634954128818126927180195452488967771106921954689174381507030724116254141604241383972112392148868362483292947256449789939358696686838724364882785691085649134822109872179179824868379121388534693174722535443438460542373835977305691769750895585132476147444805509586328442047968911793463001978851957915905878449950608233671760134328189977960854927399453476975191031746654142936857504499939793522877543316671927244883122588757672027285320898437515878403156285838099035769805170217097698112004075293752544602938869090185367314195147212180325362242416248893816186629167948478797936108807161055147411532737574106218785336574521121048505731623539163890665902429806929444559414673840063181094717065297269602662465721893170160670010175399586352071628544602114455406579235221519679098647154849839209071147426274484098645094055538761249751574242254334978049981192261841762492681408594773504902424794877163997066957281265481715830425741395276482804391115997227657108417383984763134825163917472989462500824990211194020855620736948404572254038599094414116366537413711839291172516499506884027870612627397912607839800629097068123987256890121787355328100855539195895303062587576521702692432689990884134329016908449872114577445093539562741628905397973698581832656277350951406808000083825368214950520365663179438994469378072702898398763378769049284387786686184093705765296421216349889513617859681096887376298810689582389069694531421889334369632553067212911632185527516779768154040826708148117536457324445700180503885267531112410067368636507891229902318026875467505750817648697308041275947727388059597915771746610390441914632043616944776621384858597348441250219610604121731148423338513283436408958607105849348308149719056638137230235670090719928399364525384731352123753102021719556050134912755600190195949644269128789032484547807219804284660100998380715077641944647885905859662850041925590691932620004920868776232484784599672220926582598316800932441429281788764658377940343866357883673219257563078588667402341449447633874258885110904807977517804214655968358450234489838116863888570271224828126556805753539994240333028772345679782480650486914397838604991040164644572314380624033675533427178410306801919089992020606366268748124860976113244191553650210048800901465745124475331138149826166961074115804069420542799843317081092283940609382732639400188826675516997481607963242553330188148442804477236430339595791725825440411303608530848631068642712391014050704311735337315440572079892654473028153781717434224452400252499247994798819711651109003128603504734320829881143676261135890714256715469789834477530439276053841714869279486857636026259001356144399118463145372467255929527232181526436061219973381769783687721688661228423105562236909865094001705456897831686882188047681853832346300364317203736183537945111581074265960827712282819448438194489100628998356001518013003206070845588057272877832571007395395189778425695308643854660103732986786877620777673785444197933504590669439252838326232625270921622106817472191796648015736770019447398264268128274816993747448750577015875113033686192542306448043605582452487355102774386970116509752797203568795815556885166504796264800019107303219375640432517623920895425886850527955590456874783314919050640114289728171682830671267827975678726868612711447975852231577728385882657872522946564252964635938824542601091025215084385050771893634937813231939623912275221053786603491397325921778385476594959324774637880568328763604892808006394475607290246297822910834322611709547843490584446499935708658780283221385225976408680667071568516704706096244008770553277038717131742253188796010737839865698440873206038348817682724639930731200713924243963061623254256357073841444352294718271765395864319954487717224057013987183175890506604215820587716985351939965022094063288650430426107884700672560529143206977651289203538977501036537731861266433637530521501937764068608486220511004412849067708704576055362687379209147795885405536652108106955249134618643656673058580988595608202036861222388447607951131236658058241503044356387670084262720420881247018286111605781278030929701296156677397850730814627568535914607534588462335020302575129390898750945262730452333845231909142371332474919209297777625883345705538353608032825361133670097540003533333757424442031319208042685236838988245749351993425564843400504749753107550841467881692205933483915692994146937654475644287146197379024446664716231135494703316328085175308366148947215746946252286541598666407846252292794543196440071024026605165845738366863525217036121928979246797327857823491296349976133399903512267184559834450337974877167604710833689029651988139561713531363273058335083596751141167112578006353280550628545292538926697571349218405421325190872164259982806300866634734832136004383961481039917586923398946443134766908899622589071817189388292648048557907174023899891802825758426686026058198207147663729671248355091016240038775828558042840860113857188017751602616795121354800969709182388919140067597017558974575834326034281539360953963373425928473621182977730005417226361842178216465405488348809804520005166597842879614062539747451462325569939953448650481478337123394573304373034897900452062194999604394815236359521405618991643816169157896619743668590697922349297297200289445096666631901994365778824576744692302213829240232876348938685884827638967412855217650878158485097954332173583596740055231149135947403959600402820016115107201680834358112353063548251557010089657400602683036135805759603180009106155645746398741088608618649724911264874862956054441812594883454576656742132928813834253101560523628242620667576620046772277994419918934725042687307946136809406673424925158382268479999859342582338542066734123993061035109057703464874266723560427002040136573021658241012699174501026318076010273870237453456577916725456227359316567260126675579389044377930046228601879514527007471102971793425641003949201054324764898372820273476219538287431504123674020034338037861683126283997600216864473169501401091237182751000238831869419599845465845253790756638852329966729647253694066084660375033791487338530902598921776020965643187517493207507688611635851650920347370581232973200905839250953088931955006786162564421854768906456887723598373508567951304786523674173784022998195320808696562513793474458383896264487720623009488183572591132697073502719789967094426787777514814922212502601618540554570815749055592016649304554358091490972022654487768733938596169976388873383363790040634750885513150338102311981104850062644034662881820397652791174274022778098238894105399123570228473645573556209569729679763617794566127656177750915294428799320787650140280091457493540158371788205065110201117543965792037989758167988750112099287598331373492927286085752044470578042793542427266687279780159334320835368944985820911710912644312953633101503595575576352374607823870132819049860687096640778652688757146432920840723579514741348961750464237715083111724119533787925778818380782773733984853579605845180907095671631234616454045059546976713277890248027182628801985846203857260679798107746940014971968363670899024693120673796425012261414345671198200564781410743877233842739674952820414537177513487629876449259265036074644272042425721952627595176400847213510039780107018696269867468130422081659409735353639225454991085254866110876050769142840343682126838392191248553245704947882829903423514965948110241365377303329976791030304657716970822943583003499940399509386011122158620156072280887640729066812271596065802254649332464417887874041803854787577694848798296460868484338340471829739140660437869208538365388545071945380294178191214608382332201499858137496119197288854590848320183728914850559729149875621387836019256502909591122404202423142937875230689127157287608680964919446541600870826943570742436396916832384158164355984065827869990279012654528143470596039458169779876459767838534864492294633080749818568780863969609341536141430583202500442538168115247208283878564565310731058401237948188335556768025497553442634348986259444633507422768540020196395836936673532294664777019680262175315361594847056350276570913112537886574286475929841979853620804017751369249647749360988954064809266864191039994507682763117085492963153892208844062728998570749664258890469254790125195381263176721215863948057907476585208906146358344304014884305737747151044778844176781805709619804632104782287378941541187870285097413352798202650120636561392438011786456182082239396282712300352284306615674436376541564633257923387122397108076293286908699118235323820402178811558973058522422605711994612106286508974959679314937278310340567126853217474607651641756132488725881924218670906297724714394243690784838667327834135114709967311874192211032727211163868733337682755602276575478767766228708978130120375673007378158795981407534811055680085973514261041451190260003340835786473519766005368413785527951198010079249182590699581124374185733066131603486462185024513955201867139276367352974022081866562594997111219946544500806261314520258395322838567144902266554722553471836127761603327192159699934172544585716658049645856995066094005286815726740119787040449556959940023078524966808504402936930373248754639011126668177332175242663661522450429365762802651956207373233063286002431489034892869201547920233061618568306185896017741834954615158636844793218563031333215714785492847430269569345316085596461792144150677557993479438481174149664646178103584663271813145577787545281083549639710924543510914422292371728641090560564817275722640026191852239062672909745008149716919977508363698647781361303724453031645030161732590504232125299736835504447461914123082430879767591927229756740877162947994956924299941021948373032737638898675131393707083539699395942994721080142279021427813271919877487400749781359826900955645093334752754332685097347386465451243132432890204470593621645722990486863340621465278394594388138761191138084042832776502429304998214861680408654754259704773931484128093160458035747454465439725276352545915588060951178587098786992405865986531957564937208477030321530835591638838830396753746324632884907631630432278623533470076506769304566645207881106272344594391560188695967496443009886262135720858179327831938043476953649995812326245062729169312948146037139140531264599111987412522102656679091903927606034012700471453783889955038004823628201723376346084196512654155407583001074257792097046702584988145221159575529650090021974747077358832375117832194285255084117801539052693597256375639761580821466460245684796496514434915596853571104602432954261688305545801547477629903789248219323129570152973023917485241212144429412791293427129941539184282715872057177016486604362050435129945244657434324818224799447561306620010465750288351666609657288445838216711397557478032866584483482489036761131960108223164362732233904432222720725579643312834799299209535114040786748797684303464494621341974684714378006954863171792692072212151060643121430004749219003372711764894779218965464182817054616392514812656520776054730351727872651647980480658577666289209974092378797315231107557936451239701350745773370292265131984167761249172449789228271148838846849754997267377759780064096038568884340117286078040402599911095600454421622870556296987652751020219407868825140310757811704091559183696340143352327357898213122458574897003325069579069128305177481264699713904755322217745706478266955038953807755249651062012130031522911394651570157751501900497909226264609546694121582158547490988345825072830037415935541079017656560416414182157722459272539824579810388940399584607505613011701678224810334670274961933252801150206709881991198951869620255039200380904459233169560860372273057176420344343477568843516371648780771297833197596012714000125187011726577729000753935914254683977595376697627083848822200849701828994483468641606484311345505554276697787722417304001033234464875674594560131627109068118829177329308805110355094465930563519697149051645146356601356477952868996189345885845540408717459304067354028103569909155654059751652447441793971207366180721381277244097902812148757212730905479059817548393783231071501595021598891873826538544153823919159444992039493418643123934898512287811637246651570446872110973116238750632856051365503437801032709330902348978372491436239620057824775954610206055330524098195260331560621604453277733668899064489851457943897196023457452597065841414227297716094875755782532437762290567766915085851043428901496311648436469766193773083690518223183411173501614298778591190353535096353714406081605845287267977889103521497265946031093817393539632800151628607564415798266166704755209704048941506103126479033763988588679970808594261335598180636627943657159807314130363611485273571004533736632200846076361096328979769000363579288286505869558710059881930815114849105439613375579042416704037555740392790384152899078758599544257063423073667896519676499547847172329869320498710446796120155140519843141843657766541137190914796788752362847755434665708052836554807255722237240502247510976558832612261322482942340334063469113015215669731098304821880822746357569506436933780012557642660093333394372983094344070315304912051002859241893461712505234431452903850066685047047495776358204108791403271598579650030738190184293248762143690724342434853253511537606748964593502715371083037885838594236007063517961495966853700314086736995820257647736850120750594685449411442362443886108130268409100592282558188360685916445001792544219738230093810216218880064732515461008675007403535338998717065667963403315257984489612020387930993983967141684231073941880223786441579834090152321569500366777391194777006158187307262596054823485034290510996656657850979950528708910414820352266325683395016559240177696379419331910989215216522191862104748906629702004771026014966946209128938726304081439347861266048673367082533231392735733400894851685939596420709103015925678903645850977678325127845031692769341249271208164645133335238360211980465206447268697248312462005460814760608601639936285033542692371560199929685294173596640551937799449974373745275666251299819373394569726819309379645601130080141727171967989411566742009227802211854740404463021098424162302172077501423104522625731617766621212606686985779509497479394547437873586501706389999347643593497586280122380997750180072192477313811628071126241558035397447308243129142449096122553530688721516969008585541261837680063403761063609866103356019716328507528157629728785300956867260100136941100442194045162327975686957113099985928343502255608735585715523932053044160154311173158567764212607855826669251295435307217273908997003878987689050426933096230510264079011952670448830377564049975559578656810845387591800217986738730999033606489195230610147308496585943807622579241062614812947961883777259524466810072549660949983011385113284905226839278101386369155356676106624615056288823335865178069661999863252624025332878879992477882409202469750761778132026269875975058485405599350623925414868698476381047831961574691059997848471290424119442298526355483634843094420259474230110000240247415449629074890096854398622226445637555916160409849304811935193356755187908496392619052929029784403495719844879582756238219554400758557841987100506581522333601621257188206570077145069358710057148512872056211833992929260303258418761426727910738045780634553896260238712586607273554240491496475716192163028969680166137768802079619257030580341514530609086596482146023464775643520484907945021521471982805186224855577936134102126993842152848192508709968678249146162187945775620905694709650925144123411368376951811363352013438297806042530634748687185001250467810193072771832595549158141074888247101420328247921664059612189363410601692913725531530351198367899567769365862222332089135066518976435017589105287189179473352656029516004943567504443105061304410971258107789005222710256629079086624955137455871010136020561605593416661596629633517814587533068326332601387788184302863611181151567006740281598127397449332165796759134455709882216416737221041007691013623571126306960031480580055787536508167619098413022768651644754958643614266538971754289858236869093254069534976356551669522402885772193825770006400067120358405348292395563763133060749125563049391853413274573539977456330976107393527390543570544945240031168074302915365342280842320116551098825329897650022148697450667795125791325640464291797856298227162337924210862742970313923025321574574847374625515794004382242482269999889891322651705353708382536519972297722771485934637611020666930687563358401640633370180234244296172962565890647718712067255535452570018195364445077973785409497632125437905888339532231059130488025378896495738567548187881773634628394531645794734819614665735706432727121820261584320065819895698203609456195469444131753524876677907545438104880077410380743386076746387787052947000737305037915248895301490238705631603291906932559107900994399475088137894153870029311947354304450592731975858612320696323614022456662298513546037385978967921092009635910557196637593386944010610422590010650509268792699040801085272138539698290441953867807985694729208298258295995185435574361715499595419194680506868997163077211817550638612742791087193218449314675077911869265874453593215307936143785658523510388307885660628775805610269099684612256475465660926445898720422868172343148989778278510836692713529675246136403787554486319551858427132906451933068989638649443314302331206318125505100558082076468379540710649356307448721552583961674979298971364219931322647429554184166186268159221359099424230800373004954558811991977717019892023217854190429857659695460273269806196685760577572224242671029109739011619667807051420575011279617734113938669289439933227890842722068431832942506917277765106402478717074601985026481843358583172007139095109176848607432693952154452003341060738375528552970207460390851242470096587902523700339988596017998146251504148928050901474640308333331189380215544515629938592373051102363517603057706116064219233203922412323117754597156129146681932844471176867541344469518013134388091359389589397785355121740829599423382652359910592443381317021973034103111666938455128176977942075074174656518314839903536569415918846312464962700650445191138311000705933399309478891146752540673014520246494511182777678694061866744475977127325913078719687470525645777821592838711747606422026317202509481058812700228907068562137566489193316980335373722725515522952804414234360624887204465415114070925085832482368557836730852416886413423405274941319083670781138275586142621898531414576276454797768378604556418747411676894623896937181394903875249088258032909952997308766995479882122775594162615465892384070871513878317624634854809998256911392448619313061876728554902531429380406441587617017961926019312461455720423157328731710939921694516675747328646931564925341798720675669895956714397588599236349970250248923924818939122326867087842866579199215893840039939077566692403769813437636379293173412159528282175193293229527454193709619079907545945289060628675656947591954835432072022502762819601604219554964277295070918967448227133057637832599943460962106565294006772905464654742711594704645603572683709163304655380435212343862029698641441380787519693075442664306021074060199489144776227836635334983072552317272405156937183704223141200040458413148773038388129400510270017061260573342762623797717879036389039626144034573935664681346969988132027485412229092942716705958721101967553065158645897360134762845484147766671273350794295502961410266515830529483474795311853477495311387677181600571734304020092110966589479527913499250376175479391391416924139976265235011571314522568038335323966263791719448909761080494751257017668539677176454100612427208123659869154804804428608664661922151306315317290289057922203698978427999943397683395262918969172643835778665657047919666022423839551425948559547152062902238144335610312383432787422443133596337604162409253437847770213235366634978812350005060756766941403441518386442944434665427290156294633101592249345752904434294598651485578710361575485368627295340506062673661433522223446263598068617910823412621811722813268285663515911994604663856458609074353553703619329569225874163498123109458740898757599804518146441966351895098135531309166823792833104259519361378301506927573909341442547900179003020234613368518197018294878120887185507256420685153125618276863233829449974005266100080881534961637058576838352830469368107166729738696182337635736163363701782281929894364381178411670881015299953010428488424726416422302197552956884439280958852745347567134663897463468450875578911856651202789773560260982433757909218739306372463226306153153981021524646711332696804751753609852383087245504131077997096817010755356739674240451843615458352386781997718325171189897476433771639722804740354253672415207921397885206471532795868697175407591170026034197030448322783249737229197114992359776162977589568151257210219343938244470413622305115074835750793350269563895980425884065407068107738517936822667830401261373650082243415359831143062544044145060263898179687556439406817685450889425784212546275293620960655247495946417268906861454835153402342703651572985900905459967250984146749827369110067704514785799467606968170036671440720670565930503001182708450797034789102511200246586616763984560335833571733847075249510716627705431801291974697776566764819199211975387572734689777092715584174044274113616004320016056322987068203620553003616699578848701646455912105600223487759033122813449855002833778189593144809736484759127752059603425530452921667480549963782892511066293077371313570893419545604931081894009931433862916583567033554029956634833613120922576114962650886345038975383109742937548794801456105007034189414710800859093772534700969602687885183421779955851251338090936562644757812789672089806115749155414710027335209344250148320488170493520848416964054369024193654368494947122026524734006551195257148507271122502634739446973779017080074777270175950916188732674922897199356830912614054297374334808331332464239061605268482351490307971433203854277072372677872273050613368838531582244369212954044229521077459876977108853832986953302428247755611739466429367859843751647594191656133203165128894794928948129218559332646724994317401436524693214314904536088939033748579669347314368749987815704253799947038801039424260176820399820958886352229016986870519672687194043421246808513684548481753705129370303034285544135612501340699332297864679554145771661792947725323368003129422303505508498937015693839624205370463015835377203160290721179262471812284643971994628056762692532607110357023509717043042381736913509572829289816870157815316351181063096661509341962656408014299295173318549854302351096010926031518882249754388998865305525354866003128302950674341212245061997737221721383061191685676714725660888038059327818662956198029583700492679544281604717662413935853544089309711323280748003088905898116515358735547164246816538607909549743553066107596234762323511767827356263897674582712392100378172537941447814915412518846108430431590762761497150810658076889895362698173953619946208881035422607394527321408545409660989957437662462419984786351218262437196764425114205996742556077401819152653110543913349195798637442442967209313890938897814433659617321722080240518866963444263713469887252380238331444969267629117587199665984179237969785015621628645600094372331395265625791210183379423369011522886768952682770848918889026732273524835344495388734005833311914866248540554490313449449770673333682434305027818375397803899486367272541921368365755787182128840856645831484934452149592336922591179471327305410037742032858069530056829733513005273525342020211754756066275528766860153450938561661718370872160336629032686792679634208292198641923676609949496047004040057613105571717158472730708466922536532017887462779233722473130496746340829433483132406640027591843903792646672558556828999494747102096230606386315051485192968002310008889410890302101123858505169365608291073472641008763089745834522063545170464136030327726045213916085859662862190969590731274094838283154999898339610711910017939753877130615403307399859328748632067893142737836474261666098304054419592859657290198418954750939637250613381996620964754803032029245328542327368615620665236790783468778640523104740861010973637444133162319680002775994218125076897012941008257689715135196721476855443703957853840367401775906126040496752332866344520041273477223898653619808637492948683685784479662022763773995244072931890424044509070525968768605606426920292781441893526271621820361582855282033818417000634502465596309096745191973683070448145381932549643017292867683738334897112203051954143552331108222577465414060465830494660730539469560735806811060139499079303347683865380909593042728254479194996438611408076599694524695181691849649469179180935243836474052684382831496547799296494906019534723364533501030360322848930551951006496020570820848631152084372122878629951544805865830994178589393606108264441492602116368035063463028383911707322541571327421452420545857767343537355674838211570476155605229040018190768517149865110458317652611043458844050489600703723548189382132692924358413338433137744421170120610480558932108242481037677207501289448566130282399285525785924354731136929248957816896569790536067288759584542782185037469663146508311082197979035910493587872539933257877506714131254571273071203828357411232381745957367668616461804751044778032103808596869438162418567693546752807557589895157638847782577335356595734281107256786027098160711547051393383051709277518742102289238531043819374494417028993291264523474223427779067988793646896931185658863238122698278068739824381000843971173732963808875242745156379091152597273152090984809303273812239646381955251389111628018378436264022048044147603034224375312132947146459917747787551727811673847031604084412289813223870619611504753213968535260636527095515267397501744077022194660384020875876634297261253763382858483474867189971307409159483279305961686831535140437305731723472481482371050027242878496468398593884564698964546255771999229260604854867691914410003160984131000757081644652215422247591751266077931032293208306063638783057722052864412744218712128433696245657253595594955316764646650891105306897275581210251123916582548806587530608524474659781968274943059659882859583439894844345454618428004765270420914888985180866309664391700675491477384863071282001695647984398397027170154812338410918284739615338635638861317197014044285861437789387854294505944562528101879162516166901394725742577844244456034657251340785824608828194926494481729541653471567481815503236383413866698391604957879984079298338732242930882816266625758339640438929357018809315959660953657438814250464326854209409692624112031436580876986364548442662120944475754312970775536053430487138014306355870497353285339366432708046613863664285491149670895035670534186981119837050026196751136884389110319956221262119898213798570171311942433278616809846194156812791963605928035034460908086622307186644773445489755881320977196380827359963024457724946460377769532359961852484729275114382688802560535401990971358068443727791755123342573372025907234129724071396854375757699079947790565900171136725377583010632059192488094468475114726683550738599906271585543978653716662089927966682482022699676262809195240183910323814566344226425033998057339144972570961251817081617977644531625714020682792606638838983618770830705623441395145073455622035154929672678577842009195232850147159311299853592235712646321205252356425025537906290041331515326272574354415586616145954016617981191540338767097645042341573580438326116701237126574544953063960975288080474136053603535446470469913364245005497452607266118156740672126005027577251597797432934752340194759507242009670090248200290521279463805386454041977587700148005512882766483924350311402292924642507197538528086288158612459838795844588786802674638725583218682828178682002874389191863861253565472700016730835246449969183856027230615990470072224342507871146948683373434338349662805653400537891624408583424551496054437494278471885302632628203513096287173096929954183830525772693775604455734839394025216124093165439533668679950663077913434159616331526080952014698125724310578208499291410169854170305266254141321290087597017010401076806418609719704828577857527939151773752594703928488240494299579922707648693410137716923566073802210353416993416698581297554532035473127971666466488642120145620661811659861988905077574136121154485914468564142653271182625443929377846437808992670804553599508114894717196290815441825888616995748289651921049782751942982910671737693623856577817373111893707383584090494106566892478293610164529180345512544404237292987999421809819810459309202757808180255635557613734656007662024540707354893251098983122217645713899322594302185284679670981029815029228770414752954119063271398638749452538764288799456567112429403435245277592853970777030122288673420584904020406168873248483064671324786330545612716985644281118127546419789370875559708327967997496943363676479618475725945262756893780179414457747480683473435351652646395373492183716199466956663283433604395678923823401919067947653607887245072838521477505315711607140902989327648537562304745014324815655490397382303053208034272793626392637572620546940728081880465532324636224565704018462761258422351713331546452329684535265996512874083978037713439736718083767861003352433439561360897743479856886767510719846111676595859245032350254432485645354756316739612329953769683035908068150052389550039684101662224859075538740873688406689501732591191478379431520376504265900231646654010265002589876945869984326105470065622304582110229545486346276814271873363120842728022127262975576532260624400116826053421179208933273585545564912828610572825533513312030243229883902062706284567460774144226019019214519944262980596818244967424292818760384176760370438917346864065506549909025132522092525786375380602780070651348202550759617793219025149798313914990825103738767073512574791638132509442277806502843230773481050454950975863637840317654873658231511758486595656241535875643339004851596565072434804883675017707487455886633382197649835769868112066875638997711404240458103699184953726109160545919540894277135193950563735701476429374445895853203846375378055577243662448191038950583421956422899258808492984801469634786743966529621483363301541544024276329971450540087049975415483432208423073803875742309977411345230297882475015187281144793770924627476969315107577631859967981538970140814782627871813426030171658839900095605185278202624673253856501620858851402244926313998252483823377165170690481725718604628540851876788933597743590292832965552252527350128882529104830799371789869145037394276601194527259729335136574632948571636903378164207579516772413156817838664771966809565005074500831470225194260123394967330108769816293675532213701925675219818412143138104897618701680062749755345617116334541666976462178820390732630388337543038843838729050077433316213389479627926362563293656015355264218833004741181564868684235670353091692757961431559880190346178655297423804582343257784520174732060184088582407294125952536121638171621752914609671424338441768657889979273707872098008755240336664595492920990835770386483894658266069083704396797787148285234136297899980942451695424921254696098166242550931163591607414197172315803431993466407860624960224819013310809588201484304530770530655267136395789345001956728313336659373964783556782398574152380810915177360619111084332487013117767581838712428701167387440775377907055734658919108466450172900691262315385663301058128575581667834583865118496735502052283507319889371762039758037785163428863683143976529189624082121673340904141185566637981091295653916524138529208505571745843772174174874289986618590653722796806185248251606046682549844471544429632909826649953013669796726684518474715622714303017086804565554349521239263502091682129197371864329082250927315130591272976652106950716140508583668199528270566906032740787936192658359412201857473294359659235613181804182869031328109236584396801818155692350862277263136942030993418460293651001840030894498558917506986040011941062121579703887488175828963933920485209319732796679490638858143164816205995463257424511822492722355497731917733560092025154919132450263522115766622275790769908614157635262732145952107374860185863418303438764765609861241964318283288853375166709722046509300025110513321578045088966037225601793739663328264053514573686641966296476423584150614266252051823179206207898252589279243489555622798538237831266860446950804195017446311286665800686001146136982715785779116113264948455706877265878152929914067483498622242047149199992925292328281443361611627190272542087389013958068047453418731524773648634486326962263666469856470051885198213680467869162014922613898240841089477647330136987439242516290704874871238055743576638395160912638749820171629751280907716521342002478394159969548880190209726585204926670336115703346165373019886667416146760954529359062055970022072225421157076850429428449971699053362285844094735415340167489595076150212703187695534853827211092458355984595061985895454392893884653327368164790240147292784900805543036858311190693371848506001076817666749354509370538493458370911188958590759817337166088154227300948464653510061955523244135328873992747412895310452705098919316516197326583874259349869898247848865552082132304667497598094776299097382643519365475838777612432328051272100540159970886363102116215910518793806855643208787029906993040402199014671352578909989705972600754988303139171157126933777435845956826020843864806820030220811847562470482658286498347057874897809861283726676631320086491573979545779741063829579355447189979645091077224827194005460676043718266325262415277958436155369983866069662054917657029930239874539811759513192650054021212618473539801496157543750935561929231010150157362595439660356065835797118636969359559827938656791026413417397463934835892785933228280165876577682791158396129518354361922530896989984123603724452502316437648647147480779386356547457553904021648333530790578740010853527356434405351678705364042284416311962731503161616821113328645608907636768732252724394196492253498387187549280526437854170147256778628382689831260331643117387783753435969634936364926558105431156516746008095902860597898920952619327362449841538553818923090607008860208531788829856030587038260270900424128588219076971726218987536525449302899527443674208020981634215502384364930023334701660730889425296218855670079974203835526652919872269142647752027260133740676810711950676638526044390819983114581514561578749720278959955769555664436615127049380369167705206595899923090744394197435152504046551482482165533600250718689425794810123199805176502138463653132598391879507399731814434272105541619630060229019487454775694885914815540583770449972932713095342245691434261351944580549488758075882089156177614131965960520595342387725677705462936929169312464879853802889841686579173900589757744906251749200676549834440461358163113301449758548594098767577354904667001910923010165366233260644269195319048925257109692210474692663719898602987661689492165666228520310342088934207064596395737578937299081011274361293728544342380702545347943387006678421233242554546067740609772450096437244231390849302685493225103509142704855562232780804991987763026803399205111384248293463781685444021356423761434043605156013927678851834954193086354933242841964513364437748426924703480412982495703816574208244736393841660076500240062278228854684305879981117633603053031553741496123630290048935225710457494321017612484818606539131074898839585780020443233444076281840611948928245013690527588809652154816407000583418904692857025166490242928787943611955038352742389396298887068216285489258983920983419307638263847853110004506325556174209143199246150710296550091970488905451448951604118363859887879498944182416588491662719854940795089801306582987824659902049940277680237737893817540200528104224802894172967467763598206998821966321513124009848139592184007365433924696583259900925666104973542656608411590063851782446183540410192172424672512483340144568728228168469712337283149441261183419489242134481787269876061172704540063087451649153331470673054834909651896192207359055835887627611476918637285764703720565491195180670280631997740285101029550106761670506449793415774845432653152503001140251207592856587130517778324343833164243432648206034866518776698968210305711766159726518216946391896717107919394521991954402347884963191412134637298285562280657970207198300494341077556072837480460864191790867562259490314898065356891647926544469061794983711981263366231422540515135383870561757804820199804398268826653944326176763839024615246182372674157611632749647597500943795333895314473443734891945248539088403008161120543952424264090382504031746116097760702404542642229005859858633465739387912876193446207339583116448924847681107535362698110909787034444552521148382763342190277963793578705640170755419742215979681644869611042231984463021760070439421280229616859873569178361628857615436196785766211292013470043064914392728052955586945134260327875681771104461556870313959256485028250481918116878789761350553840022204230759781394787214465996691448139536464932801483808500664752694304301458090575110899766447944458232693965529545677845935421151098039628611021390397292033506804580794352128510936378441128110057849423736437805143137857331128784937157275361796709202809031414785387641811785989019552553245724975891575772398546997420127890342129612124813898534511896986363808922001377975647549925911353842238172694252164625777071686863177587833252571110242898988670110905145216138008832264876767652555946458062718125178010798917788973716192329914047468680700794259346642872870955262178916854146828173716163194855078664810642636899488792881557586405402579597478992988648836525789624855872555802211538212826020379094404222651506995736651128553155226037365453950925381860285673323343397190303856008903785654034978398597734059141589284170768754456348977902924446696404033795348919769065714190997416859993283857299630288477960396039968717381871422221172968505199560303430162931419608509325703246007370302676942490394106362353311623440987364551412092218037459509997646731912565521250513345437124872050590060877738016546695104608831265157000341289286272925009580690862425605505553098967260321085163842158295435454068936906654866338030555740491532216976841000959074483194365882868651372202347398362386348346130167490615446089302472348535146096541582425105325555528569050700822374533200123849990241652679397818527514867091299220515514365675737099797755419829612891040162631838741187225114822025535312862831857119254059055447058441396873206109014289208207327650288601271596769389282650214785363484193692529657009329448644594964745546642847745249055002450441443800347498795832005118763556375423676568008558791532259201537209440150924053108984132569778757704333210324612033877760894800366408962997555360285145482014405695626223000075239581859898603571301945535287343717136825590384798463486870148491988441841315121095701845056312281332746067152543563631988632839419925384762035865988304475804511420841743267439646497672055252051051714433086524461343974763702434751643835668587743632195930091237249893943433799272984233151028014951463940663511910764822159998001872027588487084346819644801396846027459181007598505052582314823540188514801696365744227378918353951693286181940115080850162629773119239911190672192882370649082342216454234620668069638923179001300861249762923237804913827630382471500334421569907720760164355840424668065420795985281125340864034403267869843129945364263843147388873179819434374096481265412321082153185476431714883288213940554118923622506939495322932248355151045011820522421190127532963831871633931580051470098736776856803418978114146111475097047244641810783608888295209134514546665074239774666577077592217593015089317300315103223776756247993437710557046972509110660937006455619699012202608761347034141957897079471335308760809897804723163853965704501484476408574526299644990765063688726050249572644266936626369761672673794109634112089443631315569125112638595932558397022334083250539945476174502859760169272380122405905625778897944571561000609203394707038751465543748947939120542905300579049430293661365605707111085281276857643172831505700855417336343244694796439332991967499275754458583694178176747500026007110890307267016633755251241290827423037214583311008629926993279097456084204910920522689908368403802462752178532383953905827612924745446493189214832680174201650066589931920771153623665098779659450069219295666924160210723219756931582146643153431145522188147263787904817876395139970191726997757933797489921517605680528467560242216929714605900280448415062916301791919015157148358389993359506738130740507412497356760339437836035617737586968456159962011975926298804981730955960260184515197883317025277987679634765557236433405773924441677453975920413108585447442616020650027500140089789607474377996098248879160489637181762310758747388588549581212222320176759599953020561962774627409380670261181981092254624049598411480415706191202421028345539056372907529442633660132275187079955840684872579467113494781712556371123136006251048865032277437893359256143832582646986668524034588885191679276203267789530882122882526441679527369925407995300744190207223136324677912335483773695447384191210596100836247597353612464699916402330469349569920648609118800896338085048199782952446696520628030909222887313489885585514166610807107447823700456565826860473022174767118969059711328486426039255826688749933692810996115907259387435878003843298522904509366896160680759072356694141698168536236746693176946723285719759773280131479916505848895482567780017586351307010012788505337393472578000257456824704398734505371634062375614769745998268913121341150263144211721741124559593441209586202580293770930209407066127968735904909369622847710043016585577192131050063823107539094545153033326576733499547131619495468869503246764106033259871686521081159846075659153848344719406324411426281068843183499541352695008504003202839189589295949237732879591311384957913048955457160227813092510485906499573390281120959495057515348289952120842558478222198743594466893180463275586627173775223019634238916204448315439090625556706399227442612543764670963035434482604266956794382014449938736313052067220924770489736454327608331566454832428702978951788167204724304787164404648786025652745506429594132768765763440176603551273176771940970009372797349762113936101228769993384358398980599272682937018778618310661393714412020731937699191219779590690097944102824292492785816205704667671007190390953077136452836705688182113845038048173385830708903880890325457396965822332858823559476558278135452524633349200253928242456782265191918629701777515636972804281538209403620518494210340930334826527610153176017530491002454271580991782325394699707822792373519259195692430294655600454159670424004089158554887583044625727420837009746817945477049728734630562523682126559325747890453900406764951955371372110036968604963856013692784289380831765025730839474226862323634722772989090991524043130616498196955591768974177220288849512103392947198994583696187476662330364955463828950513522617598084235318731922715613742093893169303558516979247171696898701787867910125309156998507219256444527699610711371920262639553777754527747359931272925610365158516682130372974148277661667119363575363610229059105954889490901228450840587897585930467254465748604259112203618451174743681315624488183126152099372678716560137618047470643387806211762613903612428432189042691986741923057759289296910305483398075881568077095401891249448079908946665939507812918350756579715441882722868873334108913347035435131496640609334827028234993781515764384372760831428904308529842675800882632623282587115223269631108241026389615138325417217177885897135731468818936812609290097442738847091979324285710128269065603195049413888222624368744407577123694097407258704942230541991037669008262141407378726879124433529092095897977377741048782189838003386040669644610694519061604157484077371645183846788038056055849128110568933912766388820221421694848283002489149398623678541136221217951884577025509887449168896534661317054949013363481127895021759475244184942183211894893302414296787427897817138672341620879165256918601540405630660742012272684184250616591940814021780177810263049767297116626535703267758631525250912467767133549238389366477618198424177967944993981914679523933088482409337287083298547529696348291309895179824019553357553268354917514136843439716921831309537425070144540824919423047861725221249158906909606333238551102630135646239010816835315338161166874311817951507986286117766675395807164992060513837353456482968734312576857109473704652389987769691557878584068435600666305141177317066135877088390099443087841472363259003613156435325976379596289101182002823403446851739228924292560671685283206971299986640573743649699161477645170022277647575771897466450914844698366860161002545459326920477236441507593689750523305009798560735481034575655166770954823763513610570037320770928083769706351486496176039884681663698847170934562288875462142657720667484259607865861829426134110044910919378097431107362849941041735793140448327610174644388757218276511812009138190369955960766376863811031536634087480793068511222737370434599727023040971111597613433340872796851201523089516766379258630537423725241060930274412187736484260700822702634202519235715026359489866189230205161514841347036148126758324813820976907292008825877201252524160144384934242746639137767202816327411805850020840360738737180039484346430370942949517156689338138264794932321313148393029515272761215213113508980198843406476786342907702682197084620749349105441168243352748160328314607748831054598056532247740081156477523719918771146002057914978577504866113774096684529021085373051235751133389112704120911342308365328891167801299257188925995202891517503456390669857278486350681030308902338665949248415767440161165951350892482867914205398693411009812588706876400953297169267617946233128254290545522272603457003691073770205335183857985392745884717876481312226681725301539552926753092827175194038373604528218461317841724331690762341770627780721640086713768978206694828152633551813310187522958843352178856050596662036607683166291601883487636175375033062044354444376733835608162117442645756236079169457812668243241935925420944100121498669038524733154933330383195729103285304452795983665943602562865866666189975736132187706797455093159872588721966989665091003773106220400715293736665044217314525562376179037107923911161227426099068546838342039183026663213173336109906891161722804914065879592192844081801445115826983349776620217907962682010562590853055181561836004929877675744532541506481986018159697160394832014576446413481603611835398000360376147443735992466038899650873470968100663999469256546440245642948743769484333276438809812122882164938831815800320137567567830930795744820908116055956808733749204223886122189172907559611948892928858910222061801598433641292452536337375885397473662874071640444376174283687656067147089160998828064948039391258838766874268763469102875860782622707827976726437469230280537053557733276616029827231129084990771414830654648742527659663797730035196398752952987135458934222205831519339925169854097876066038660929122335743422007514491717909473008802641719016989633212934420274006535695600225765954468341905086759312979407537767293937653075705922709784602394985089139871575295748063024987073634245366437744591624834143625536914411937631323956388762181273742331573759947753180947820814267163154587984812230785001258746282126466561132288505754958892515348450103725893279447478794070041366590979313099105539486010721160620194033121759558672281061511441950386534277884890408996003922619447720938889369397990611317979150717693853314528789613323348781756141097126138590555375443092290408238233349387559903382339808091310006641469283702391708058851122592162411301975639914947218604993191083038208940869002705691613173546706288828031728638027769695491974874297871519417403232525939111279145751755627702269551909093011378965365094545187443070805625482068416759086581151538671988475092818540443095999110071798276300694502157457866545179842303388030120554665885619669681994507726278757128364745555559161831832461747495903853030068767235230847554322454473936823783650971120198931306235265062573077303381999966666341667654293825239620645586112521870212170432661484791953904525417482347030589136162587205621146791483259262896836408333278079123149505959219979465595874414180123796710387091227376528526763797797335445656697366781855955318956358543455529487820368138169518248395887324677150102762803583510259254028620755949173770941224237625909898567873859362340310567202042988518564099361774875446572611763921067579888640825282010661018997408652938165106528086433502307642877238346956350997312175912578924992637285607888280397434496713428751600775424910176038583299433067012879717883509530519720187960635065783304872202616073545585393234123736897640055007469538885167429685369537976666464863333688624012876675485738111034100253121763595785617284471969368377035426760902431461894548114361477073600885833567266420676224557360146793735400368534955709262847710766977286841674499944241721536068712518631474141232072570750771158498796510515211524833438799107933915572008391343057067002142645915441834853481544885431044168937565296020033162301570107050951042623321487966338887485769420094357036500132821763856934648475639776472616680449384154843750949490074128251431709240744792364249176461060508210583242942854867109847943071911889589806287845485794514414783472453914299500647700852587760711010889785784141692722446212054971261685565103623977070748138225217020138382877182804967566631157622659420543545543075950732012594813653941762347305422040965805390195872979923659462831720840791288118744803445505691664148940006960277829738277405856061366735040752756793731082066803797306740247123219905460665709414200503368902543932016202964085202435939360225684472716029260529543305442323238008639280924888052447852495145285662092377305505965131096279494181664214305222200095328441051756026504521941918614461330642749663590245456796709326702338433795353420877413035349819156671300100825462702991694293234286916343999203570226098400935889179714817672515694835999040190861298432562487946917093236483338034373293701512368853434774916556120909682527023087615498768927362694507489080826263315707822892593773359136976907948516812982764481414202956252057175686052104028010654442644058231191678983164085092231266227036809101576562766579197719903523080931840241533472552540289945524014290903855063101556805977757962409987746889008177799329384165313850674042376867650977133319534950354290465787078559697044488605942999888339763933434884703635256811271984903117059498669315243365031361902374350006603108388666362687908750854870837558555971639022218897927630448345773960875078610834615323127581463033423182083264331197502852366855985993597053169198012904814028450951555447344171309673828531455450510008773716330593401291981337412461054303608606402502567118638855059370929124183109784238264832910809090663681872655265736957812642950230137587038856785621395064180206363812666746960516242782903578182942314201564912937666736064058786716149572375993960739299757215230799661858165887048591362588970626218643166623837181193632540800923190007521613736531058498252119566354255267173082321724101771586215209657402063947568456305900607444840423231914814740058793303951479642265506849053222208572444078224209324461942338446997822860670010380787376040591160702026809322505809430209989305361714415246625458773713757536988969869496134275919845487452651098201690065873146816501216481132453832262997293010844616623183115474884743498817434519898216365442118728565277080523994430397048673071986529444010660834674002385682043417277172367340698198256593880024831054421631350921472217990548880360137924463981986658925693221702555176884307967185822023768598436121599091336278341754941486531417802704847440315191718155881218987948959428272299093056375361651466515016898392365814062580578266603433544975620335206640457514208157411981251334667675254539447859169525904985404301621473266658479947420153761854443675450046525562350984467392083902336206292496449966191930789678253067163900194712302123892991078784692595988201277816926924035061707747275256717672837924601155955028875715194228417241192249358603556084473340932307749029955000996992805358910061135843724966256171181825848889296634882197106259316063416530666198018487301257991420815820164736475309272222282821434210065770076584360023342376192761927967326937631638040623093133474345596120969916474661183954265109022887227208876275174175656060781779643227311583348679042517421205085363561113799234155641422928417761004874506515564120956404963381058138201536542156069819561502672001499630739011164379637662639322216543931195934179857629097960883991133436008918203020856135947857061138904522477257324829325261326935309679908511534798620884547644564453285855606067223761671117771079144409045482422016601388206079161798734918030893537041740440988680906709175358381626479311776328380791450682124801047248882062839188747362153534314730642961412859741893958440576898894274173915823338181994905737786432915055946641477081434980819042308553085185515240130338963475525130279076955972376785368665204830439200974947436666833182110060393319109094763397040394297005216413535790383263953365900262396120644967195137873528574010915129648498414950057882601923394991162897114654697479978442005727126042428774500688477399919562621285723847953890559927120328219862839001983860906027193074447612021481412471136191942356751870550859411140662718051307422031739233107889656372343031298139131562282873614948384925220860406220355053198631072935770908091961951543548560765274209390475930570013576550775992342233751130934280383049394333920718086928982618254273562622381192748684061110721423813625738336436962237633031991691975764478040495091597833173490077213082881471290045767637549948556719578434194684934182225487261471202805600560159742541992318578362641071997296491032168934869557452890328265572210084543721430591425754005823457458344764313378965005954729099606925722568865964168979513604318394538858492085093934484547115117008259270435931845040641430595827621438564567855012067447068400536408106106248572159497466660479720032537607623661292122479445552419384680606516127501609162329417495350851170686956295791331001647228641168998470528930194950535078020351571544143571124837797132203221797523472791989595449939162733640087511366864392360384091383518966108071581848749122819713509217500436900329390303270446803616513157217710272522172310617677536101280249820884280031737101800780160801175572669811289493990758588245270939923269030940401402136826325867501492554312660485515697469440343310475881058463626233327240582515002011134904803781814240278112854636384783609132007267365571980118737137921127413785364221842367689611635414686865629513109812963404046859377181262411645688262003468391826608930832916159222532615984912565741254547311425103661420948013551221000672561693860146134752492009483704619267581751148697368618576313179915124711925104893222094046238032899267508198537275573980831058161057865475260572737012032152703656511540838689410228981379570248374213737513887991579856026592415097078281704694101151461005912250350792896629349524171651930013237591688603779963651075397095525741180053341165691107770685975657527174853075355874604941370844131670762122455040287761420610360810344033565017182075897017840844459219194661139539619782028433304557383731247535378639564583427106654305110831782158327106253234367654827097122096913498555063138894040576520223137352081917519351334966827620177602430670782348379439956839792161270277009419112986095327099165106925035606121519446927019060169061919262482665940282612100213994878382041421272932024528565826163205674089924364794756593160059321654935904328935191921063213438058219429352410327164874284845497305826037793189252058202940035426937804513958602966806645447543974561219005005049363555049281150497219542946565027204399380476029160437120269606757532700456227010277462022397475338646162135614989008101706871618202253107812928803020580439583441453050619801331680108987131186444079900446081731149403286128979142077154180187139859008306405407222327651194433089653297785957639420497691611637234134817647482001645999595647261472374494094332169146519936221834414086027656121170863722669326237294868846280470135671133163642696052559587174939903229622511787405925436729834726008879541770073869077860966355670550644404903782747269198342593150547290013862437559894606235933916844472057291643358321065077677753751291024713406067146755484279726481148234293252653817138149834716683484800028725510564126417837179149382431344423720728639858929685434229872911365643274208237147187747606751240447180378511167665424762916263895646478110573473237606491773053543307626388774822978995050112314173116473520272401710180240885573801353075100011098010969480389619264317489005177129236206348840683553796582666386154238587433102015169787247816103800396570849004645151615783676701910226680185662253014414166885530929705562189569758007307178968336370977154707790631550684411844469199966071281494099456207125934549844475505693523759927195741493112471450960193574631628691469357313050564293190176665302669556336527410238621619724660990362473068585769300680797346227595508199088234294114519186162818420031850659664185412366825983649435944184743507390532408280832125056372349615594052559217889317766126504587578625094384882093661236500405511696799896060768946123015070338085676410643013748107766867917825588457523300940313680750977810214948602741037734180673945819449550930686487448591650237163425747645243635932472752069673533156869790192417072584972371643143194005947517318374324474352855232647460017277618219146161199477719166958738592814920214347571213319148867627931267575179176955774197161727092926915334390052212736062084534692106558873696151656524701649714462344700036635663984888526377274396010740531942113299339511023644354610793742382779211985573954203313081496675067039931227627564980673799603615679447705643252832418599353028433474149099481510153467195990787539835349626311001478088247055167075309207316543569356604090547096130579461795611662005771939506373845204431817633148518100079213463189559917074498293747794045381631958554375484210001011921519060433612171443136248995619025215194726200187010920553281220320505104864035972503641399484967458750331347131804892318285729210013749722629698115124045562895679480515668564842813543731463655992106275996780508098737466160095458415716604278811405068221639419837105573919252802981385413954394317603830234963134134386026803038322038371349874375230455782941965102453483653100790423521729493119851745802898266344412962458938345086402768441224875698997589569705964165517744912813283300581390022684178490694419648856490855533971684465857280614570457239190452977862587749277077547181407959597815995268749606466753905534245947752365834232285665403396088419076943357867109089058783828636346936554940197439729102657923213400899553274565174397234131235995039711972709414852631811796146989533706636074644364011614843547166689170510115047058690903963633747519376254151147238919284421737947884844407303263113220068152561850077438611106386701329182522969906400910475210045756600987137845124989534689500246088738078178246306465821957624923854185502112875058557386074603191369160025998722056944746199849440012749085387794177016582852474787751558703515020512892482136698976080868064223406010061045585265866569539221772316316575469763898528196692025846644138554693548571517508963966792601823923330494581392942709864373886865727346985412678640071575147906153741597997031618373237275108527263816327441158055498992665605906376483134449824552182671832365107530965080334840484217037165944910903263494312256783840452759931365536476086946762885247691269136261769371613634519779099942513800449192938005705907846002167999521513429326480332585250370310833199808267681362476617488330478234113130361726575668584036022258627741405529128259994539678812791531895632504074665648890474733126457536930907977727152883170716781463354600070918661606785057351479288042787046508427296878132472691518622832856695270246781487238358391717800854781004064821341244332603556583132029198425584201240907833416006378365967755826759039400014694746272579617127466082702694654122354820375686511351293073124295918587369406981039075602179789334643602803085839868751933346251117333015670510245504967676243508046181407659500321858608028829423653981618199349758689509802489387895992723514832352834993503463769576161049762768749901038721690995542772874202806264659320045148913331398085660100998309938280341280928353190657233161343397832445527252849404733544546795619986973713449174991549428566128087737008436130309779548354654722121925382939570162888067105445617065474105766662312976135930379859831525388145559510147151982030367120835461772012792506397312899636841779440795938703944870112036490397512178599545492795949600622309208926045163789926844995257991202017849343601117249500870339920540537747887422905827691165391096465975128646157390054442987747717587503719068211689495600663425539945579101360109748263569769058386266969829589903983644586077529700376721843460158934139861639361511458343014413667699375904315212526775162580969009841970356413270646280881655894077496385790088669409781036189556501997346972446187333311821962852742472868262020447744059474946018333604270500175273794202105592510300830607375105152881835265824894076073872193672915706758444296185773142582675803610449396444155049202142815430130705655624659971295739912546660467469621122709722916679886114564065434007840561242746123679824198425395435893779689909533456745747788704569211376090142997603664209885628087494209063726319767834892159519818364461393997251879961822215856754041752472967878370701498470684244154060539728552850049509652608580792590495004770969166992795027859439879484601910042686858692935712581272326625961295639190008727759922281311442985297732801723918917885417574710662615277493868869053148866343591704332012005500363064281214562270656760866336464496638780271459231207595596561647335711533902963590391138693617319173758895220852808897156494585251736892118731529370525697667636572865803214758596871354437614293324601669037938759011486564037694964726777105709849498791553867067012203245379861895378701078117323214290689517988729870312268677836697080765525973344775019751404951936903592448892923707768108932553238918478264083944389051905947030390656542720160072990988931145016507256186729391481371344933339553242118101061139935791974051398853325144010311263452572011249058687590961661506465452530232498664919759820948724859366073627548971428424047449175702614371458419508994498981798675020381641920857875354164069989985765262398546404549827914139822625036325334346081259978291940826111854085650684670590408504998018777797153647621176005706729540125173886205488008539636601648872732947564277581129549387966849501071330144623863326402295538638136724753679081136640367303895638745011222733537469145222696151250504852815437288593038762335368111104985639054199411064672890779449069127184420678919957583987504173506809983590769077522847769802735766807420179744679343892181097387775112094931904338479163667005960821009885641715792435994285475663063197171834737463241368355765838251892353672136985592030483701955301439135817423358178352579589440973950324144817025992310452878294484624526882601901465708829578441031446926933733092240196812952258187214430065536633324147287952354957511067144856362771075927612931763628415673926042326924465364034723712714359524897790806286818438724236635965546386420789844093690083488362403120916625148587843186779332997482661516559656413411286946412056276970574484027866392677332603470203013383259385004181120431695810710731326173020698721671912258169990906200982807749152191707271956636588433092876539645476742937242118901362489829569644521760152804480999804907476454806054805861868844732513806450544750122975302223156392706167739848432850550280335173233944478920364125945080283922432608643043653678180237812712077898258488122951266977172176898665490669944495484505400529730208473872809808185721322742215201192317197918441176167224475930520356865021968652440982033599189555837807654654362090037863820617943132871648986588794354319551566753767220993865485041910596759452181764650315544180270494152760476423482723942268839745543503026621992597203579345357976979603551224012959326525820339879348017693839934615197703352401813943933081808209764565697707792121499632703282280288688113913099174080049906651674778827787618617443385506070173692226310744688769536764197365602993110778875302294423503967061504105574076464952938046617660384159843793755728289677808780368426834808788640171921764774226548465451160751700013270602272002676930063847961421864232792214562115701442154118932729997501449414234414511017703367550898235022658086798256598534383491318278909058233030501192337180105543207415239507375445218018516253049949123563620305174521317347484938077795365929867331784092868718131801641081915548933708891997128494729226663049369946483601290723858387098389776925222956715007986681935921662747789064416715593799288692450815871190574614507201806130740566195427586014510876852003269586688937205440250381897024662064464711832854517514779048490238596002739118313623866143053815841236830564980774491989572448083906715056817242415573699468025619085523670415526375479100894645906390851425820913305606879254672297450575263354484964567827030414834509176934767776890710982488678773376201107398948250174137888823622718816365222390065869094283386619581232559893031652049330198256646410919859869139146094619668674520991612060469588643082490933291539926186546044432563509610277695339954088520092664082805973428178400234066429174583660740973870374260380788004418760561333264868491139346106877119075180889540263428480524951077007261965105310295391913989741097291876725684158174612552605716872470436741494267645028026575843618557770134624703548527790911034154724172370694539335936953089753217934414266643220750013507933999280474058141257279199436443086166953759545559072843378037058806375898753495080035565397369012738370377181683664558082314260625601376595889190599449465822045397659677050602586365911562363473794413802232027152522009926349142248397236808510094346204854096821054194075883613283107878787693050109957689964302935001460959986045523277110635970089505662786619552134460161111760011942394021185785046647704204832550782459313818523175517817234311223707621070751521916358055251452295397863442158128325048652686580665579978005578656418999629005618639806235343870607748341072949545411971214611313202347662916300679330318459490238216803176776744175861913973315640133273402698419879119743284709296610993334042480085297974623797772782997372511216431757811581486847969617567399697152854391260898713120036326426653098443124355354363732436639373862396099591850584196048246904918405757207201818500341090351750053395159642992462343826703127104881218991676503034472411401567824271628314945983678289931080128549503519264696065809706005397344422602228093587333518815150963073243117396261484923781932205763221988992475676475881687533232517802376033028100444832059599790952004746411907898821915059002617074375916180820855104717411603025204960489194645584835171933039354733580240077976519883237928159069181877487423133323096845043981542470930072625740634532794127913064577105739813896506160804170665420028253190171242939301399619979096106030497009762280564559907099762154951353261502611192868629626814399609400334690851364893737118637991195226655817835032401712495227332927142942486835204520174351923582839028737036986647358353849073892272220047061641947997728635517434403659809552302391146062167113856115237827609316498181954463300566059465311149635196276092743022602218249701450166456957325844114337493034647380135507940124347110163196364147299442709529132640600622398103828193328265078344455004426570046907580867846001776501823229178007467092312994417045180104548549784555435397446215811588601418358406322392441840626874447647183543728457859322073834602584594242588660210642635813597303539623177755937974730869172885417537880980558797090006671390246159504329829273696534843003124836239760821227520792637044511087675221490719424068387758501747536688476522962313281384117979787135962611680381550619162143267010294932280780975943608977700898252064316865031869628361541211616334227058191503577373129511856140946926963901458761040373883556772486956349206440687297043053881517726455100624543461274571021945088894529338123766018138027696084478717040842701598510065927399806262697754982922406232884128163306055698796302632394967311810560363977747164500699802997728375799324781102170859650683220806284110842179896682818775984028795599689683781534054434717285941484390692612677544501201778320894824134654135904644375352715259949043844164753026699174384859224044009357548229473640785673150243045547297246487588532920682305851273200308055929854844101756714646434799469735573998690097333108191323347419385874069260363226944696756687196092679355980791008684464719864446309034608691315676097342151793067909907008265760418013041900899400106913378316814638895758912570589695303887775631705599480509926431584308538249176691853398062306523326745650499388234407182476441424178400932498013723593129859684774618910567903817779329045460471550990289132520887148698684439505401318818871922598911612955796260299206083390137788230459149332723373176875857531914511695052627279981249747645084380386235192882234280878482644424395578874863379018285737463275750103411996468105981726871966926238462771702733845623630092986119411656809561547024455854095310387186204799360375991304160356550976303181165446817250515887486731673797783140360937212679230298318543722879391845823677127430588105181836344695443723589027277705620630766119308006746875176604514973591279270941859845591224786199836623227935367150602406595017343902215506336123434628999158286753526873435577069187606260047699468359766732746739214549956927369794565854466368452918742362770910558728768206125565660955268724123446314047083433178117563363037811891989141535786193817520101480803821472717767233658364773612304685918716300932090468813555086791013893301076994833998637864941225184852828400573556840106226954720136764766913869526558157495943702196843832578447546846738392893854489822971971670450694383996939460358574009131307851681970582396641063494000346373526673032676091692524001348979030942238829558850030648467965068020301981385130781484622018781534916265569150159516545301061370359488465139007826201988181847402525491629476996277964222496779930894024370090073142564490995723921308537004719978608763469095112492376419934420801795782787900471886325864769808090636226734543964326917771046021472430811200024420378881984070879043111166466194769210093401750041777673070991946439437942884606419087153410333424112707914188877819278359112385182504494790762537931173345053558082107400244809387424134971043063645148367787716556403080930734592455273160936710121672143721431358179845693290992552020821749948294613914605083561976061015526319838337868776073604562206269599044231761820802234478428678562309886480593846916151321440952442245560800806131654972560639985532438962404939772949001137713041101329671823159791871674498303769870236762254148592941243547416217930579760535160772477422136667847149757532228122418759857748041949285631915958573511748278449787877977097434851561227593760254727156229315052487775303557852987960526432937668313994115858127077778084455228643333215424667334892920891076050000717854355819319821116098202463680381262553029568970053067439865142182646770668775230642624808123624405315669931037770534205605831308339602753174588578282516779582761354021042721908892872481783991461433634211662863829491369582145932498501719999512884689972847410065310975231320058825303619397098921034376494744132785444050069436147528692777995325920425798054473311509073513769931310650510299192130296785613924440728709490201796135656525358648985216030761926252657661434711498615481522811796095567039723109735432693996339796862158738418664541169938354044703188671520249955878469534400844289022006719249350000940625492418592871714110600367287980551239892094649135419155342364750546912715735321187951546784633274786950596300270768991752008448564605416044984677871081901490416689523133655610987386178603906316487644774897162331106664392141631979082699989082755943480821511229519214329804443581989117813963266321999463530756090281009901731049033589538830022071102479204254363261105286967167094887691679208321620309876656624031131092243012529913349159620314870902234850906613349039503664053260458905674431220934015146327276997035188092720164642827672009322099978161877624704496809293150554026396583110197357016612676508399006935987850445747611091496812691483561777399732130399203912165570080868969316691529315385300318363722745824957861071357094169282426861344674227075992206033625367776586750798032731337852229451681718666646548873778022443865626546216080280536101589891894011184926696487273535869788711667881198442264202617674139637891077183320046634908564697896819641164126024070259057181454185463564311574066973654087340653125582837197662830832040769099926762965054727878714894479896551981728730540876449980923451888338883677234002762157656035234219340157243214393132598325131958153533085312433600921574196904750605023159638678738587201387061768915422243793924004980692706716535002623857504976285952144449285244530908037612963847223499249759566969768972065284198551841384114671564585092989863080967417757171971192838984945921128194528567871508396632337904452982845637874359175408584746921078766125245183248921650544270686759683636009005152330322897893516963386660525488075008692139548716209744095654089065494808926379173333661071281606349626728434074217367833119769886284979973004748343097387040053676191080928190776384895688658969664833149621023005275072142659617909475942611903771444991328003389931855664221260149399850866488533219868611702989322196746708046455717849167149345197486579809276420361234574560840043333719181232658715568917807586701551987554425161302019386484162862922645446114168412522925829690500125305554081916152986265709761929822361804844075143481093378832496583563889688529623547238698808198762209329881256662690283648486743028659810462820944254671201072306379300903237657244767964153687490335309581781044274930850909413144800219834138459495538652719464117079884453889400488702901783151688335397389948210609484386043375705828527290032935445669982707519387703916384581944847539365685410992620729935405467773573944108061914149043327922558590811932818414698439973386925452326251389652283187768435618017299756829310965862735737457734257700314479083185061529675672194965992718382395829331706930931102660743112722141287839642846744479342635487361671711168056445729979748957541447565121692505287468047926274215561512368281182719414995313909577550524459857652808485631389076072904733037104475952213259723834692510391278819080373443684144380039935330508332509452746952617910086861986424655340330694767956185595350981396185140178428038676493851921572158937986021885650239451939732459775549880624620044171412981783959149461266109070521110945541967722961825137256417480439275815407652197135522366673215744452320134471309873344417339971132145471430845520278011010127404918145175819221128165494881297976836876486084278522546543624970592836259575950791436659096221727215837126317107149070754507899463065681979781789847833012474471210285352213323800219544601984359952073306349641828842994365484384504551701030845620833769714050191838946818198340235041636488165299094896440972502361747493009306989322990805297404402072936892822748172668067492051683062929076747604245085326959318863785630351963851021836325031567984541717012199893893929461379319484624914021670609967109778969729508973267786154823932864033223701002678919488030402375513916311684334079781371388566382769810060616456836084179934860854201175098057657400341834615947713674698009086448332472143522390581711769601159364228249597180686281834653877780615054795072486823533939643886322619091466728767677171630619790826716625335250065670243973195422436785277754111299376469790092099414221620816675415027021070291201381299312883540150739603810475824930546892099241693735691846087612318411016843325141425924618629147629149471044021115228024490194106894442793145135992680971929959225161027621170017563062287172462553897184207989421805304440933012932935365145739400870396242310597412049466081574774199361156668061443073863950002557363001737071317126889604990054733152306632756232144409427308093299387955768150565555415777288221281244924894035980561460216285824748247583179111589382269095238700305608113616183960637952987479381439530955511697455926586530795268370711014423603589206841527872783910276509153294380814517137794372103240727810077144107358928262240852165335243984449336048747915728226880331015787921831355845497360353887416997408965992113376707829990727571654141267462182036202448083286258786412917363032891077487834764538611785345858327099255847514399857145833933576357063341287567650262023930597068703005400771277632754910380811628124312337404399821701467962206412806766355223662981173930395471780395709711466937113341298686882923358129767151387453529878276344594734861639600652156728309839132414341954049189229607511283885286978127017267513612740335190355207398276540289373865399482965120574191399046377724127328542436207437157568344177066494026210673140849187280532476916363040931804148025096459343306410191679783491722110692568240682646670725147508011541108872074727453982623752490544479896882252223064693670296389425853869506177770713932657439669612080177770428123177433597353964220804452959565555002909654917547693357374560265194154974130724535008946980597273224450071726039498910869564196347305168163879848962706434722205793828530109939122997728851940150528201535130863780005130423776127316066449617278276416080039647480328313734790557705607812595819030244617097421431818680265735975388920458841768510946375038225372640414188293945861784176593926366033550761076887484092862471567895567037217779785364885600539715708581241034000300471035873707228638137223449871161791051329058594367648687088143407804283250234129139656178514221360927464931407749826078464421128167994407331956231741642963281904447105247331807643070000750009981208211138533101229443367687140009936634476568528570549873747575023148420119522182253884619204953190362794466993361450842219222897880737714833696891075212258062879673685120455125597912730101512146427431959977739709610102925965457255121682508578106929748266025603116143492235330638096029969901785640848163491900076066348256792811299864781105848343512971162867720744029625121451961668030532046049549335408707131812192388067627427675440439927929737507764134952528933720430071787336679673721123238758881621495828275028291162011494063405302396684868066272377477861417631361820924632716570768696858084036047865730239203359971335905685039372326236137737308324410795928854059351774306333680014858960192383961819440994110078544984398761795342755916855457912573649365323024328977543537202214248517911421654866631607007002012174565920062771155171862825483957272698097725874282393590112958557192131548081995439602012096937950205143938118101909200618537018590629346883671895027916952661913375099452252785693245491242694815973831561209583906105293131142561026236382305851695898706124615157672349683857132007953339674903567440625309274735586780340629406369241569097118422176263105208877209298793891163675566033592435433111205653917184476462231037743582865677586099351643511613615424955321773228062549676999028407763891836035048762877572957580638449376858764601632610021135157304866926250821524377087775080071949626043873503382672391017746075224426856374181902677927185380963851971535550885404814727020730987928157898474030392597921306158882471119606276152418016975101415591506406547078357931494371119877278042975021653061978698927250165070366600777904314336762335215894710332697740687072571400655133907718095105294361481221045561226689860906757019582475899456704946271697724945663448670058642169396310548253766926148017499529016706496859878734227767091984132493103916640565911195614989962069007131606832339099922754778969061256891595150207338426386246659086616297588688327064730480385794211781919651290541797813641686342075638772016753813827146159114729826436454020399442164768378417003759576122489376689890496575932164843659994442576815120592593618941216264366065856968114742185197974759609333499977031186631166794385692113092446624382015664681630473498760026823943652863581859453536507050553677462494633024623981095684093123781323752456416290034204682314594474816114210676429932929418964567797909829109785713291924063231083496291283555629352163223334025965980450407015133933967530694754342678455798622372888577157294632672500252964167470112648616061793157274776276996654644398569532032924265727093095716177418256454052386095147936125533524225347503981894164072462796648614736734158120491389195448800064242636927299549782293895992193405235784714799305128008291579208577684635939909078949608334658239028268491744040351650625748190020124695213496646302092394396955178288456932211991662057911986175003679479903614754068798701599364257015349190430269009443105352610317756260918803149755536385115169031689827948275538766288724527416692669752113255929566765022612598836725551110968392808431595224979562670295536489154084577371478385835309152313894890267730536998177800926265639220881976076853141796438234659787683442123079573296244529920478728407309865338892074129932085022733561680846282921921718678505051138696420202328228308826789948964691591519812844366293620356817320443021577586649584502773232770697809488036209368661096145579871811346444811722555896152837737549135303725637313727984200923485707559045340654362987121377249483732455571797007577968536902903382374797495136703022341345515289304859234959251372297161206679912701241306512129752962030098944363433553408721438040964615317359755639385870595005651972082978664486650919738417516091977722111165039036109564618878914660475326128230583160670427402975574785100052369338808235358066157259787989048977807976359393007262320385687080551522276486975684917726827090610405085783205711767760141492984364219241519193314592875516211746814857004712841904778148847472841312000703878643172429677165963628393872406261311188425333404688629286260743353869172567125126533420711801196796506842983253688736017300732406342050650737998277049823082878779522966712248543935676959145050613792100456144683180014925906059645215618762126590618748600045467299406405971718864864907663921890036208429420940742187788991466891611877931719982489911719207898667915583867221627036456749811161564582435938525668066388556533191721901658520902113942100996377122617236048283200951208310101873421033704553330919297712089242917607060286352338778139663632690568877071180207929914994421806537447281245025108126667083972166942798837733130357811395794564172653766178130951810765280244055771251700639240868423621175728600214327795114763938627467025163917394422961270205551049738518360942793798524103902761548721726835310821130901234195859114586656845192313401666622327380667336763336309052579790759064434225784882121593625709475144632985980442801050928046360294922568646101403046781905561013378072988940230102669256943671094232086877196832296402177828614569694328437703668119160775977675648488469981272419275187134997941537733698697918046881605649152168326664260201213672395778961187672037370333674558732409364926194177732726836896709832429449965388725389310904415284429497331278214470775619430574016090150093036599008102452405551227963134769229794505357992979811702227551519471415993401779466781007988208627597453480003801347886764370105631577905449601907613711573402861468883784037154649742265642789515591439686854234614032097072462780718661843647198883633204842243691987983061093313426212800486128698452391563584980412655428128859911065529436308702925954963933678883449459742409999214253263262604594655985164590452924759612550157498287526785278908685045205904665552663746658346911326753488367066568269905331128136663477101510837515783583744883775814960779684096527993358215003570993930567057863480425942026323018534063586528679925357512759486773872890324447836633966853652759172617341822058302956324118885343976669522347441774775698802949020681730652051567828988814028420077542683345663186168492876788322223099979410716393533867874902779228270367021801801561978487553623423717023284476543722395266821602730763511800417973331606965649493555825549606655357461003820945085426304783088457477545184589662926729115817942403344697409149235057633022876743981248717835423763796373136557274002290253552752591124761578860182763148110354879089898141815875135149051264252253098387903777842771271885729101172825694008523199314394587411069445387348708385867907110716978856756015915886299496819625582662488677617089084214316941533341727670247453092364126755219570407115014600122985756147280770690402761350052579894858373816212254437516797627842853033160457980449628948348931818135292883437796102453138915970513874613146416436349522476004392970740924461693333754339052519560955951542764688208169113432108752495061837346257259626008390316591962519177777373854234717819885921468093760229146476676820525465534503409669039837703141135230813196197667985226001080031908900960880035859426435927080108525034489829676915994631840362002144601481328796632219515940856063123678567295923951934479726160619876368624803045120787623647105328671818793637705292523233758017966983353856875648132762288779580533474291712118814161175662430878144796398152443628660191432361876297865984906073075876850670077990869691845673601384244835441650728041533293545399578611706139377726687276207884854764179468186538504134026505338611054541512636864175411799255271507588057324596567972293848201080771242350659454280188410477730657594475715436951676065129080646793035470874090652907279810761784676706129938660916806746237632843672671739995947817887582694610846961554056852258518802740637702718654591061582645087769691195602234664180308401125241580770789141394814975180595873951081697150144157218636811886222671909038656971969478500750102935580881302703206265606826169868954333064753336925710150835576271388877857775764300664492307622578860095466913017968556671488880732544270108643949852973595136865220232236845863966293006167283347419183522528696848531856175826945413980892417492511539922403323196651473229977322807905855256218376671635491535171705389229577461519818752796688776986752416853509856364407747792682109940184234103470032993136891211219625845680231947124750740865526601214926115309026882724473635109381414563893626226289642501051248747449300454488281240466027121746610126694258838619777544524904758905298952937699565671610161620580749846162863833683448587040660061022633390179017253666819581338338104508403666987270188295550024115746985002439661515367520332455772502528125746616221826993493816592506038915675286657306715447298370953187007538218521871839572978133480312132969397633906665627688803174048313535376551004734713110267048394734377826125217080003486109403851792682127672761532086728762834968409299394638535823800249201483135070950416894405562414981952662880145236084149113529594064400100304238035066208191462318927829044651427779559042504059269980461946092343777754466301722457439881022915931768588309490752118380624121333630611099669088721832790582577654617241587811022116689115012387652228240799658466353180670024817950552672400373459501233573125298623827026104119624523752552944620729768162968793763392879640970465707236975709674749505770824911078053701958893408980836877512038994644220997118796544789890179571790270716158350646637163600203348892543464899991940845033266730729656492481240885503829754229364827098154561378119343904921322042195153291191273240288365079487251725477894294027206362795660696158158990955815397601505680786699184145225979802921042246949836600238985642652642653201396508041828252503145345955769151528435824746228477918790272582871812742340675357791648180692298040047571952485907135531315596901525867482333940137470329176539016948538897897629321034351213440340214559575457271722682274540640584142320480048067518026187055572553425438990371997069407029570048661052640266291389276294236134652914104095065342188112992503618772459439612302068820556248792808779162289466622524616502954803488362863333452790817894045209443017037016828306730961786763851521687509926674869386852331375662132199673136557491275787484529801963096653928998076379184778043196512895998094927275370976372352748922031441217150331598994435720320919842515681173582311489891131784107762561592318767802542546047834932917982461623371993624109746168982089953875154218687654916216198376348273337112589429308746392917208652100177037116356678673047809367728169952012564302991897264966731666151117177398579829555380191048005053101595569130581664616591177563618976039376619767285815462034208848538195516112245081017932670716738033229300710484174456927742656322840834462185034279332662133989550084109156065421680585570877213893659864012270050285245575384384078692781475073861781681137448776292088483869221860758516906363508976948811818528810988035695484621491229049854662793890619656819683580875059404948484845338247512446569391952071590080658387214163552895284143013490707075773248687549742544528785977685340302456902143383807727116391355988817138817811921817862171219231927938575636879093508888195496538019202578693499422602427337052812020887146335860564373216347580707028361995327758092330314251644370794794227126885063477262885283690634637941370941042501210352611806694408312167100628839548913310477198240524695192794492357417054288171630732954816997597307712395045364494424521161226307896195678042247798114035220289066280033700078752578757242508859729562234508648029606817740322353430361078176127969333764663944300636136137999133631397131756151052839444654278435015258786386067375269873864318447210386445124545340476389492302894363424921100807241254578718165881171166326015780870519012663528865404157370571843085351149514265783094689313249759271196354683882909391996977705192309490561988299817313340811672277935310338239350125520112155189173470256607631356501002689199991419350049425836704238013492127921499356410066363135954058070147434843747746618437702076543256871751325759193891227851343968966839083530885838096376657156405953822491156142668695114246570635831864127569111943070069217695057594120874151777094447710963711377939828014373298260722367207478868150077751663504823538298665218832642440266041939523778123581984212336631131168721443625568625958473795385013386302478264230639607054537564559249427499673791599845728279364510386963005829514798025920634310010354154049116288088801679762813561958500741715952488830671225948118408747659603387125151616749147731867584436181801337028064014030664651084401202267983199300399785639141495892424044359815376117446993715872152725080735370408722309604583705648639216090399748714566794854973309339762399382762547590509887547888090083425925482131141297840223072707850063744666246030059372510781671561160798051981849679016753835523892241854592510586841691947141239424988404000025280401448428077336033923832436446532920823813310439494377238994977938357132329642093054456794912039455126940676001691096475994684638019033525953777417661905285700534460827724159323183305716448827670319775908185918326943005078343754188309804397533722892824879854500439315213454180092384215430027333511349994566081404163684432144026879202854365354777465035344497387460989620489408384782699204565528139057701654489897545603445060113371472715695933523077780072751447614226959584248719452820953446510705718776417637957724082148392400527455659428992839130566336928576094889262232251352062402215579462222765235837815816953305170753828841261463301962749024755810520300026120504857286591609250319478812160790088127302068116636814061589331445630943414321627845600308039319388732436902887119626693672206805184500801495477808870715586401593758720617585589021821240911577013508680902719220899263028781835177451482205931593259257283681136959303303832049452593636126166703104831814152439923970227918897607230985759215187277138334912170707496473375239380556838929286831035257190112571030414129961754417767931606114806966903964325669842747882182909186949884219047802158364872563047763677969469082366059709143083811141019757178131244209113678641074208135517523542533202973526167341144929861017270317499294683643000491076085029501870852390188026979362526944057899782346605136225476287999170685594665101515396405236216053401876340068756889615899554828611576134856988607594972636439202956117900774288814015751692723386632362819348768976720179964312176090222423232308863780614604575848868619865324388761659461077740510354770228489096303642126896621247299327209623013008637555782364802630763795875364820686707951988300581818851246272533141131072050242325385397288622450815565933193697474490561791598335992227814996625716793755406272105488555137199035448566243559384495776753251987973693374427587472314542185734912929264388718117424236354099536937232780593012405716782391416330202488639194384432407672746438563830111338206125144835251310356820404087405194105002482932843996928215023669263189883303172770844222546875502437469484573175838936415492158398282089100123142143813461345381159991109679429219160757832152066350348396605499080981261933547900129638291241836030224649489453262720154684084686404917431384662851008906440796847359313390772391781917765695273185865168688278554005744575983361498941755108698289656883648771149387345293180900229681065061291489540473184305390347843408987992649256904886111499094539479660362864702489212992363084529923819883009478819992844118661983547221281950763876736653070854621879578975037601876767023430531069797548098868368518137459873764948443637184831695579245105836829210097001890440920301126169924876505772192845084750645390662123358810643970864187376875944153557746547120568174423461017884231213400236961595884593872018545162739127431051785205659843531148983319540180248907979234662690169106408606278641521861349751152668556401519790331990158466457838000660353779481938798735697961151957850069450406687644399283590510028153227485942123621929336248815557776624952118178171522298973859513206819805542856629763198749175050048729828472148435776890115088448169672322705850301584081452035996335125182463150058010125295121564040913718108626905864244142388305943473572138338934618469429380266070149267326207440509219749984058036415444647622123214591629881723347493410461451816926507237774908323585646605855743480793020510330321893137083637029916065019341220486534374010707487985188198381711508620590824546753517931327528662583340900255893429823162128446721068163429430518190317355303782230679465672567478344618574434523251693556916555921992481963146680343290516072451946191819157872531630941919847740539375638579532866902526619041806585584441957734130084078373371734517122013622571479042771032816426489412390047453043107564756937924057333147799878004432171585105266579639850284887499725447765452516767267157526607907070607428281776752313403015360486740122739961503784647985779429173759007878126211075702810720951774123235095603180230415420517169837255776864935853007841042242724395939978429500718377145807908419610961830801347585256929202755312084573919735590457547680058089525195638968330896652573470500150176949121214835064410377758163021850154810807776184472309438238202912512103975870121270785822376810302527358476894573476996143465505445025361551022291684057157386602542962028737780440226465218692340948130767808859735178134350911986367073035776491980409223506293962298712721139307192205241458019055684029685451437314318407242533474504002055826936760419093018658751297241100506796499678290017181603311954709734495727851572802441756448546124739272350698193497341254627975156949941550155962317897551380653470627187954933583290181229052307701309890633734033786555258610189440834451643747012924767464671849521847752675164069610355190474240720693014852854894410691586504460648756007310435037596664153359765173754748347158740992874893553128395208494680088460170935653981798944015114798272300798887480093669120400008569700561698268330405378689992048812400991563153011697877432959286756326071688444769275434882902253895850024012918856847887989371501693403267438087044677775691504519889036608019528800080097625460937251838935926375116415176260776273098142286082674367028832016314933616922142702247582132149946824525436211537308414876544984808093606272784988042471347017867961984534124690261837100057541783428537614837003812020763771890378924914567592091640077840675458450291436036417006066905992441613470622637977658260960490860609485035302254329208860637911596490439266620063915897004006522017601599703301735486912145001211086147387508194020951180909408193220930752520298259910687992666388652423901287279479022733359489972051932160601528948131819892400539011341248480630249563842637409320541077457618357091178477944294275118302712632217375112066740567674863871866344564362925761416251919089028479015260952013115174591246358640566288852005208562068171399179598533808932839644262726934993904702631560414424029452969003239487631493909230448533328865259667975108187022138937499803062671389269100976217926638761296240925168211761418489512535575612485806713483289361100873851107535904268564450325404854581694643997262606589524428901461156310153374703902809298723517524854348362160043035485900094790459008352195902243701066044072382912768431723141413993555279449227833467713965835900162590135997460276553533516144860314640023053715444197483290311208103066434518805085570588371534978864012701837416976159368391620370011709969168364513704685768984094089354795614740190193330689036060261405781961191802998276424413991085036335496036535547992025885474533645692175340194125429856221136575950360572730620714981539277330053318452807157049977838254252990979560324760108143132759268727207350077176008249288434314669816526342589579434008884765678049283623471495392213044672531457174398232520837519179403037833044797163232693604304689986207945517213199803262900750143284232768881772532914052001954648893342881039876835121983328555554215266402930165986187232468083375995005305731615175073781657545010721459268776210510436427646573006089141451578952039575367982822913633378555411003897581513770831921341188518013553407099525379516363633055534197990528071370017595406615627212942715891124701065241153742020086818023750964378338930577959637095820159824962175325510500488024065180093444939631929835453508656571690962903247332545893117483603023497855674141634592980431008421198942544212700806981213231298403919198567976174060835817447105900066481739632158754563779548531219748675830424520894525110233309694081278161876348064479264617495695921459150231286978760991379604809448792756724578225915123395624159402388528935150567469419410194395230972634094889536711814131384557371725867872880748341460127543250039915099399285053002077476247760017661330078542140346599115337763042044233046994129946758021735209552915524287201104040068196382643696751918062175710093450266583900551932161489732791385071990506964282812986563378802249561117686626952590686311892654292248524998208911696885960377401574832761610035505766699241777308242978066912304420895041233891741037458510894143006862657589623862257455132615093228585123528687406923575070127741930953990876930555410560579841620244984740214217112243598927349380573504916220680667529009139507230766201595370860480270429702968695179204169642467801924477457598799124715792331720199373688569597170632288920939925110148387971397291646021651082913244383732137246871538373979533604983913129358112181829246066730086383775551813472314439274491842219752404975257725460766944395705838675832047388475465497742754430281586758819124755961530468545914848822536706150405237669584545860970085541588343721848374295587474250053831426219773557211765968198445272694810165552874461537964568566899161299729205064588740323166036062167218926669026725380324058387008735495516836234936153695549713669960721434891410563756873328317781344288161372728669861624129743479034552996254406866228999047329966902801063910326159972863166026514332484880370141298306439386107083589362287469489823800828910606080120310531920906023852776182430184301734368194373419889878097853303975109408853376452967377013238764379591993269116529331852694012637828591251571082064567145630015643627790356266458962705251113142276584196819511405742644754153886392797537165259111108346355735307091925078213418773015056498705180591602551399370867883526654609891696766510735654959999980310119150535520255044887482147135693070693404779180907148541137635165547232753299308081018222018772300044873249565671420760411850357275262085694971888410418412955225457684800986480835796514995215279866222315987867573889630330990786750516478256076087045200984101479684043040203348599604254988154615558219160407203627747304771534835251804846067168751230811014462116890724940332168670471241645079509160074050276691140029706680510913479474827780220421589691230374500765977602837730488000266462356320317427131866502890665861372704127161593964597604358037184195350178001268229992890525129394621928269408958378690463510841156613938503171638135999013325429940860003957427161013741532503414936493211199594956784960730440948539100005915762681473300709571577554732307066608095620631240126125048452377849515870517832283621515872202689140912610357794016521190489542355751779180689507755830081703699912566936452715618550793354848384653616441791127037849268096135010464496028508849073683722696962104324976489407434715520687779087337082927630031824518803492805304063872790756167866119973463430502703445453118472719892499989949574569037469637956401963009177658567752804341665780571965458843834277068734767325763822453350748164730600594061425216613251621873834905021024007150933909240231358012089915413719988928332246890432077921363862793836156857469404263157199902629711747491765279431680865126840419920270679076005487789602725605208691517441110409779226512384186115170522493460949999784713485018467487983149941093795017640913653073782629451267813174198469414089336208661467311303500077624203391370508209558005299190102966533838094951880774984129989001590588612821543467451894834984657639634729369632800994655786810122073023547072968853946950512242946938267411762488378282109500324688255816587075335695271572738091461071835400453777672007136641844712309373750753974424189202847728012219743502464620026195265076013222607872702514238793373573295295027588325554997321539260647887562137881745007545382499201725891533783843560848010062443905230342794435259744450904682316852760795262499816365713315185391419339538897870158352572630985020562136403507912850492492772807097503581095760405937902579816500164360659519336314152969760613939687185948619071800259258412523746091711820940276324927793178589231811278697811778117615566067674535021716370350383531457568539118745640403423694019603116037997899711442198085488761092786431513854763417757555922700224943299535017136185360132730529754206443941853551734096539351542932288390158262713599768756693217558362229648430579350958831572426512922395267586925278375697022938562730967696663063499913024909563029772736394706602050689254519385905320282472868730811686535052654689441034373673107870155540529969703477172568407039410334554530259358817565144702835934399209482771242426047130955938096537948240607352598041457786002625676569616771256961550865365480020485804379338474863531666296743141066010487886129033133387402448658566782052670838346029697525960911734795854572625409843132404508165562881015930650725419377148893568550866172228277725374982835047479192486153819882831416950395184204979379048735672874050534367963406085346517025860586662661358523998258777194044795094376477969058939617977801855417473132934986658575898260765529498202084176856556344535350498923382891451175663527289495411050848333616050113327838242790738820981749100779414138321759232804378007580429465345146030575515464898156138348981570110542162369664301238894053414450009394430209643881657337927855499862357950139933120219396584097816209142719466668974721173155467920905830949094108037103545680670477323063641358041869503696832185968140635749027805072584091728537499640658240314344156337131092201320834148700862441889366438507447178982839358434769344961400063053466951806760851405799901400590213453070582634861852766801909118064012189632501798629886656212320184639621375673940596718810534210099977197228509616832219084804055679093638458538078528419056747082412457884420105037269496770530950948059328680289783821667461299479186803375287776730350776330082229088241856230445366500323646733913009731425547388580495490663473373139372827577224461292150305105355087195734438978965228822426982873349658607273008494960507513259151785682657577412681913590087422460036910599251324111082383984952181292495604222028396192248300462639957497826710879643159655690463734247726483635985532737381317690153440889889007106046278916073376674862885964760169833923777361088517884826032534702336111030991447437430622845805760520937329762840893088928287828774046703370048654754918403670178835785071823991852617033805876777072811612524593862191164781826827146682918926373557707685446538733359884112356335303194337320559657613704851149141982344017926112212819810149299747459913885302260504574955999944250101116257715974245207816774174231555135973012781335616719117728188942810814045190290933567384450726334912247579717906442894567808363792432477322428999872286070492459451477812437587940533566976969185359203779512632018701257199898269827177370128892431163542356970165932889520479624374009442130732910818747530390217379923022773651521132954106441453788964831239640116661814111210964652101644116062645201117699196704475994811734705932921587497064518157454231563131159830088226986873049772949804369257287186964541778235392010742047078566324690384364495928789792167681008407216560774382042257317808338124979130005573691345310834269854415614898266160021163676091909920831790235126548903450903260292953650405549606574108014984386165465809094844764052048457097301834026735363327566898806074684594008361480491642718919077279965934020811354011192863634420927839593228077209785092855700953885832738927533778618356377190028584195804207166258654194445315393013375949547345494581590627351533427326399908452009539463787212859508476249729984656973687427226676567246447872862355585795841877390842708989221265232284096676355223978573333490300559836665663526922884587685472510284364265057744264764436079173896717180067444623311795025884061370877804236614814900169888476730523169457874001328702529213819177652960362774956809650344109945716247095532495147976240409615243790304745591093944692109162028864013089416586080483020733232897133496737846487573413344324701320108534172119083609288657787156172932193752765962359847710817865688730497258846018973900572961818262442634471062510640184346705921166053063252749256416878007809250659069427354096728758915989930954724748683072098232940699416966429470191861566050290480327282335142231977016439662749540600851189192269393621360099779191441221863935430207200727684813348366943825159375048193050146211952308904394911242244676193614704172203645714755078541616178063074122567075872146006276488459034892794791566309601501920022490126499355596279375302575909079524452143885746482373477419042051414203596564013056244692072649184434410979471613778766380921486216878078937845314818704215347613835351929710497397326957623501397396043295275511647837701545222193909529232562973127091605657708746124100676077089430830963243860625283983244822900857571616937494993798105070469837257092253981422237390852819640637536055591313749387336607354776939477974896999938218422678312641966754788200632689700348292142789252593702611554110956699912967111362676270015759458420045120684034186705586776353800120493739029403588934733540498995803511225534195858077598978765372424519196556735730335481307084826165154297700586229486308016442965032063553734334084700697732361794048204811071946481626288418826748172364415130611806011273836766150264182795776472045808776740102851190874778234778284430670765722047470980735983804569823039340333587310713129277949898606383648090431653640170569654653399516098776235160599979550788018789138910419781212923131854216955782725840324286435382147064513700407708536664155914294202867933520853331528594732204282528356561688850573773835401547843162480723493550379340394267913146278869785663605785637690512690555308374898987764721477426231102420887048413864258538323323672324049448509972301809811522241719036809671574706412608724136387982661642803729765426944219528774259380326001881999152061497463081756507275213676568403427644886666467068712426590238706441685074251346870328552175325113553795686869347122498655900287197559943353173519636057342026645019178906577667768315855998410793725240062634815332765772741783145199598689463458203571443090190101469345380019996836607239698465922500849642829182063541555018131753891984045857953200495416306130812520465616344416582889558693429370588311687627664354287490055093097172215826420453384928077919813987223210601697888793160299287265243506412176193723080579114691304263979109001897613678942903431399374694802758332358891021308289339005274096862285323436613907290596180624227116180153090836205223722170313648147996047164931179284946270107731039976397470256185889779469108263127489447996760125991426547624129610975414771542802596523708348649264486800660912111329499915196747261271827606821284086592547329676883068363079613330081332106931180400294447377484215995288169398433682930750000852995822351057890571017922158519656202467679711739391502530675595911442465513168540824897207944262831553013217405628668018954421848809969386894677760800352581684558729064105713171660205800442354489680123139262069927666848004266478112758208295009530843166476690313140298674851735028083600318289075328854200436281358146415072623988564324806910774917736696100552274054134335457708035581114175725296217005619705427792702138977001849134592672804761383750623656096466985446175118510692536678582291601071036261996044725440632872621053332136825987129006203244184351451053589889778052632269788265988561090161596844587564854905694875824384794251647973191201480063301561038389664568327796158364654118060259909496897704619503912059062260843021127945661155892121266667171084652504571272248101519949310803588154496552703588947801075924664497693410353681616668720729252020282093474479806409179291405185350507216662916445467927712720618709277836612452941333663195730578829693969476274109414682707261747530777428907976514278882669985221734201181234021093293681855880094452001389750568679848732304328150631810758160168382449999289396825927417495991850686131331759666931603182274961578982145201396004307986572194488159742511113475757488582872225694400246956963490397074942847308702768954675705138876579177519249863768840870008819942477506991662127056030759156095045636943313818384166968197228961206392090525591692921375204903906510983907268267437749360857797650772491241775838721281883221792309837640183970380911598411142436587377832944655215645994727278192055882084245354945050370073808631491726345996339110770068997919598426184924061839519045848219895101672360070484166008589787595779121639849324085695736990340701449737339778353227305861791537441291848024916004766030072387812657607785560895322210144222357282315781420639885813795920483561899643500807730184597444868875265554714019455288722307039683543060976987914526860090373596609872478175416869733285855375734600914280468428971484871595549905143429729320832888344690104119620858817065400812152440982742933758473857831069319183132056456574471719630338884329583911786614657469198401487340035771516528064175608730988669025013103281555683897417600250817412813219364682373555192970231943150701792752457079348746548070686901330734368210151294428544161799526138973489328879774581713318546235714516159276372103780387908997216123159449448890073356546706698567269257837141162393407506604542491766004215758816100590882951115960654748390595639593847625732467382693389293762372429298431512041711701983127622668252805166621984720843793755731507332309984733492924776803888731869878761990511045956254365184881569121595582133211832967212711396602078391470345784934825528010050899165736868127570643712609873228452717974915754443375513580785046550390804096025929148061289303333438773312397738726807455278560365012969566425746290627708833434595066346802307564995187837238889626443368888527458667965779243919645058805772926435097533374271541811415943699666055791271218377040487138995052406162329810367576964619900839793391259811813273564595717590782772985057631903717925873468339088100010693769255273456566156613947788679910058391194254427704725722096099180327273180245257144404986479273150953908258787846181049101368923739330446311003738742990495201037162690380898054133762739474029793798561196244366745671982477875939819942301855022176618099192294228765752669668825334112761836394900131900917980486437167313245499276629585778978859565374116347273667530488374181678934559084527481692871204414454998976687752364694083631188756751576761946486991797802064618134370427305983562438901993375953770452059408491384910519912833019841912123273825967237264537057364720924557359627849453403678629602577123905534552857704531158550856490181819336876607102441618994732608733155537884227598192122574393275874414697699007561732767830197831389272014480274989255735041969001364821371101406114599745566497861357103226134814009875051331353420634947915511482350720469649210843729632909083193322512149990689033300999111625080039702648002267550092980953109494475861533154882763366340068426405646711682541464599016345245703534235454962154064405953615869540938251827690588869253257090874184237187054132399006349829966564145754420144617320276613913622122165159783835382722194051535837350653316428439780174905178115477665871473837173943448130027178635283852558278877225230856571680738648518165818254453304514089046061793761326877353585655223057202895587137183276997409806841763940145323920544367451260160152876492642363618263354660574552212649394480151233627564168734275231348579899449805618658217347964293910831234596106137964249465703941135205045611744352543142041698849424156635850194871682042604933082711275713961924075228084295404420980213804922504694952970620085519569875385535335024766410433910983844321246140447781443825137881849639698227012938683709756376858693173338407349852832543462414909232171775491935111104885319861548207179162948670626514993793915734885817640239458735165843652416023083176297422800511571601584605276027237977242768130852583050655525885685064887463823402386346006751791900765565576693401970849057106940960645016125242313694253622245608082907160086012026619907313728057192967894511584817762245164238759854303012854679948902506215381755649265210841579877483432022372140304130329936944077428204376634396167446798493550878767747924578244248898967742626407412112332039635608071767883522729435912337696375072210647734599903846293606582524947907731624864085981709146278930325850001482959715965629957370409664064255531681869354979319963816456458859181036662462583299312134354522568687229707574241427574625630561355739105480636910174408579649343908873934800734634805097000027984098841012736094139596134013765961665698534199455381789993394495661020707068666659654648029078571678797993097195375480663572332572563380678746079067471311378244985395858661970086024679900720451147602088658289604926172820465894687423768297823737016388383777184454236234864674631536698302213148818272171505162636243781823198965290885992867841677840471139921186903448911723675149671533700179590302481955586351339832017063189114688157345035227135173145784730584502542640959780018012384853920329086010244626668673326795084692973349192016392002709838480932113625330733624579166909172160747276392473994085335897820248661571084651446073954205209487267974399491859088358451601075879114415714349749860705658366647884661536869477301540578712387184415770402103121668648045586086249782254015845531676946103132769036799264670726186455110550277445140241451114532849942348888845863053057560686802687966315228547466956184207977975851764255593093462002324131103720968200185858009733891067800359358572919503811479167838511429282583477310337535304821950302866692588281719142697823117121640933284032158617757239275066223573358215452983151532342266609961303955899372731303111143679367496744363778463365619832117446557442146947167191408673348836518779351100092983234808834725784069584071326531091372262004818498771444651023393281044356347318316364744476581978861829865087220294002620678341343330025746525856522264602320677889852450663711465422023536822832347734899699398018823205453559097397026706378217251045042985482606489986747015346657371830803396969295559213192014645132731219946113236766082336125261575606878816183085438835155106743993507776971325097893445198909628998672948683123884764915772079094231991802113867815256043269710772477967373809663416471924142662566557840536741927587177341948658706485373761659614102401361859318533580120185634936875810710373130342686690348247482998127462220468820793440782652061689716034736521148391917351413221040700958568437038575940852549474040729223571125760702289349883568142822844427009813007800177173319435037097177072737186008295533333126594677224531372366101598947029359558592820748480401689753243350945655297811203822347265601846058109428162206315051724411461225068886251431654925071062718517143336974939762468970298044037123936631908598680206757182861304888811543915111258683283260820664851368863217447893816566420305408047172501671731807750222630532187801841506920816595510274577973400034395811101440755336047784338493556361932651354985857923002610284831565952209014535559800851035942309669861173512169552908481862835441267292066982697397527264761135801760997441813607699756324172916060210643787234449922113077802588832116421122166124379535607205972289662136839145513704750811012251879039659105862354369666545984381156343657885282630164457511355539519533243134292640125953324241772123959834167738472900884085971505045883993206683384506395368721557949994369669829272394207778554193264454167172703178041321528472723847624910262313739155064283986344337763673964495251907861230031186151927402905432186649428069761123052611041789030644256753366612731788687984121434059072455551374674324591759505788603479787457495286806432566894598980266458086453301720255410880044491296798530016153363093650609133426360930572083320165016816410106204063511253136725843636257685384478263797118157328226485026284054987127832240381730067984631028173082561182676299700244607195719123725582360051927585376246968329786008209545663268420754515145563535933626171875436630181200073898794485678302830621563211532364048070446631716652271416074267848947533504168951285910497713024297689549959378932307799603960953605765231990827731841805935618202508029889312418602378190004832600323296234868886838045976550567787046076788003414128509090051824715557829714409027294897133551865553125731796716668448784918141216655756789346185986861331880634409417385596897459644595367579680934587678101712620898644310694672286503415207614216927620318674459322684577385775885356081799657543678865652107644047487951138816040614468153622341680922475037882927696298134409501616219636656742758311766053811099293454525471303522204982467020814831500131459028933540514213865266386823052314911297060707060999380575163587209305916623361555772770135234501802644432674240737264293363939531594058351360573661723647389424490963467820591129976230513575058966873846893706007403057123284408125700234134832066716261029035742496056370519123587931636605216873631277009996680715770424050948958041774155946308277974196405060194444482736730864263058061509005512390723564792103151040197458870392499740524838151192367873397176663223826733882439416726303303185131759565812453920650627339705812047126584905571928787103921193254359278439549724841393400339564343001132422196113322440502252847464622311528655526596151562800909923328597824821827377291107179810894361306996966109079464138156579264680355737695425514083186951890550927216773937399741635613003051982117925358866885584939980814376888649710375144754642242939324036235895994903126150776693299131472609800117266897080497874712456788239860439753950956086706635524485448627072925467238592274328731537947882127166761819880185230623196309511126497574888972462186852109231186030090064418778549833419592845170654429762190747340617481597694715413071695264671592022734266179817203315581029157450281564245752887502400525535102467684695538135405262087383671295818602225962984495743860737497687653447800204125541091950708559903026975503572178334048494937048833901126039803620531295841016374270005818914911202161550839219138936338659603706950497903461166971524356685101841512258018013143121576515274794053651167293120330689800448596164889990485374692119186012962322445547905861694631129960769770396964891862721569662902652715965963630060804800334947723767780990796977462377470245038856134451574924181142341641839427483099850842544487267345710138616690967760150368383319151502167935700569402022105297533169975128439455275337283949203539364898727842207245130529069919522964660979731510093519924785071981813991090411326756877674418106104913241582440576069993394919441386505126786152277401263750746260378136771959774725171895765557103832132077952716716836191457603268298287398779990143831816333649354124229837752806871425802933978892465127413336906279924061931372960405219356174748864745557929904318732085575480317616221510731916009879876101537812176080601085868354465564107785099910951432626850837817180688188397791315100575077836074004386143142913648499417049831293288484096357814967085847440617116590308405937557251364520887004684832833434634640612627143497013223718094014091633300686293551472736163960892960458839502930347898210531957898007455274586652238241648397542066675342385079987033549716785136981194883545730945167302993383476384705959942776353667103192916676745999140886369794636117076876263300205615651437280682854607761558344567340378628093685985909896818516861902024674432495687704859482931620656973354767343994250036260063862397135253667501053737455163924143155114703259584694534086033479773256520539212062537422183578154193080283954428915787484642848506231318829463715203835022019227358898893586654545007397911501102645061161626722640947025101969513866483010846593108284549833474986798781476147733176559675163371597039301367174253777251283842616356913042428805719928860345080444120999731869683521875995057600269467869026496278069919057207970023963597295884273813021546646340476330294712450056232691452161548195310494908420551182923618934042691600465890219420607750803075045914294804599900359246550143774664295527519985693116920249523752303037245564452446038001940486056023075828366696406093649668351423672634626585137702415708109516501004018000686567678503128788159651193751360690031971096873262253033221717824192697338828858480714389867894108189902101681421931974121156264503154924148880602542078803765906749884986157779104514386809733234660621859590760877988561177458667240938503421704982742088362163607731989721079434714258410887590473647251072833626694983339635286662649779813941219683468422154261103633959476310962797795719145010547995723155106971125742174909721806934398813269992834058466539331124747657204016948645186827102292918537608825880978763346172664930877578244722808902261531176662191096270409090076489928330902063737601970560912124452883267584495158917105976123755973815212594007576901140996469877645211899694632173660442005075409246186084373995156344873010910323443905161035087208338368324505707334844097674553288474020022568451271757081360456656686204124231053498367878468733903716990099465395291868638416064002847946232076262333010883936171617577912687260139669827071958484981667599216907863977299212978270984595118139864772904015981987540077323845032581547940278185492636500130094315955693359090053078920427048533748205943006281322181936060382284724378171572898944018452261804613239021276859095049923493908561003288660645353061257575980945475361512865859814602402130498022463535703473063603495581899526732786349586317795545342751028517492716304361989377438372279717752064719921072982418860180615593223010842733711525620679133271153167596258349498311716081014177123738254983545096651340625594176318493887348286345776305309636262533381935795529806912950839314223798377546202460290188902008137313807601744125070740775360382216205584914951080625964366488252254400313384021569146676043175247682316546808930474719008935993657991491788206475999277010986567301699826861298244237362570007635094924808276363537179568569362552837463470431518318884689841214742316763498328422172748875332774463848346355942657255969090703758722244520387361939744313722388955031553629898114422777232639684462010226068900973097057786237589309145142765325725527250233335144345642311040784565185842657523572797530022164820099004290112675843114299379895075772230357921162476805305139523464758753996135005167212946849447920497689061245111139724155805282219744586788793756215121635095413972685011256765169516248184699715439462603028366358132230283502722856827437075495053613616672178613947766964538779319120148525211899220708413973644552888077051243595094059882988355083179667804362094309249397734676636008862683234801357469684213238532502439105345498474006385392496216344523093082368804203402320578660326866403915709859994927376986891883641335792266748830667365768991063205905096756284049608416415860194562694374709226814530488884322054684793078602789134427622628090862612110614009856414631159062275897932008195881754285140706243980927720122442639644049873812380033076809314864504741317181489821744808242072070905789893049879563013830246331551250536242968231512092164581811365402223757962383756436719052798039236680480795548554236824242662657132959406397957934147021939743528157712716969718562379329782674800557355142334239974601438695512699995804813457719091009237145016381221741197134335514358452710273783573345950175658271418974181814602733902806600698247935308290544467465920787685030974425691527157612211243937068819672902651550604621149246102202400837004310730675369323585676215707778113355290376687222209552584324692835442810256997917245632749087002580228764683070862080320980329689708247953229398482733643276419603595865246711917326034409193459355593461445173274975373802167266147432623692566411967640759231116249424151303543743000488210476634987488896961714877466209014875979505769127783527626443306743415037988433766898672500348386463154871590676916995369856651943653686851207230407005017192730524270285965041640755470578001965340204529549244607678710913388859613819356984980188817669254809102403652219343473674504152085495006220732539057691992086965194392498661395745463487491142041194567018722349865974618428106859035896675534353037048340002224338908655680867694269022369787062514021489961005691400427176234127902555757194139402450092957767102976324868078008777447433857482132562920057577009063599146714969843425801211756665685462386703510147435297798481959113898092192130739050805321858914003404812924617553108476349088888336344616480659943765949725237413228671496181169878896575003181866470054808264185253909920315265440125951663877454273842697438650098962378180143032692995816661477211301155689234928534271293453023818872594436263722347860164277142410845331321732941731774160877325028558455264142845768255862763999900680691139471661061915934626172513972661344785417549355836421449887822824021266531230758566457748291953403639510303047898192254898484106450690782592417955459741206722581805712800122835853695943285959233755887840163726287324050949027581726390373351910589065720430089800048248991519658937374155169888969717417025864674507764818785237147795188265457561640472768493133528800015715812753256655227072451744183668039730400289023326066486993760013684241559734673075750471838622705640927392456811276479291822932677904378666555625438501830779778941615803800497179573367376707370396951882065799262497350785241185930466724069543532735321763718793243161291208003596466109637370659420148744242874117098373664363731770209469078653214128173446001634257943734402683526900893703709303496849330647632654254381432794027594881322093363318643518218639635601763032961370003255366822926619310488230226040434912605770163519226054089622910361125022304106543098593357646504086027793615702950224514720819021125342807946191812217697637406651463380019335756682171257462360771426734067242846265293408550743179340519623585063642186317968580551041055976311754076854873142535714903814706054162641578788202378737824030819863272695070690118355249821318342136409757250918860944582197980928978175363516198750246189372968867527655934479693285072575594718727854028581474753675421651109422864533559182410738771545832041535627733808969187770639644250934575879955154351081142018934733752205786476364170657863228999592789286507610401614518585342698149218010311592043565716675247967705603184576515105322505332836716952805908723795339553380842597866524606858121652834506098487381395060867281473866773007375285392175219916993734779583762515322854961216357048448231628175176131694491980605643901566613725292349934148679783353767457572114487241460246736351351098507542252714207344966767187017743196323995247410859305542373580386664036472541427950783985194753631285583679505113877154280240914160599681221801681546072393606937380895990672864130529034935216980543226375991915870384842375713098553659382945483621455347541303310460780132791218093223713967708075676089827052131769025174991851679179608280428511477439895468025838750166338423618652133472424702376085303326479137807793110795351869153214056061421806071262799674787649997766294094292646699543294229857114388652304691826816541751748952368640615505539285231484879505368505725378823902202981084684985745354437287161317274693360730948287264470751961145772397995198701503353293317273887265977458750880208778861728843148743288176104162036587801451328968455703781045656289996036872623497114215027562570467365269787331053593820152000785219070867906800266000566944125836642858342176671181885950020385477817174382282411023672268909812871795388700097919006770900727542489551354057074070189725075016612283722734046555654621957417061481173413494682938326185683429432297101634305669550676102494981819296603750998149489341669456649892160080360378002107298391107346929641308832611325453344853676525781720097758871268591595756983414448970294587225581647633375426628867240506255316447608721720543140776738822183411380857130675157775749683814975536953343309068232890541437761433468791431223724679320177609172471777523258506890432567238468059007620457783725018791450638899349316574886763888695258939935887042634383998233566577228583266892557517740016897373767255495853743347005331870407758084945972639754946099500288320193465844814808159931652306472667133338135197939361245660613742075071827466412765188208053242234445409028614626191596780898878938689263482758093367467848496278373884029136925936834084091813819056372872697225697008301579873870192743528794541469978018260748800157401832619432426152579702667160709916215736669494252244363552857896769107652301824572090948909347656112848751461217131653792562390251320105930172746719110520089988721683517893834064917985526992814519714998796440279794496472190562016074541490071764977161757838436564679222040400991520369382609082169740116550344196317315171419838558976118531400043071812954033581072184069548543651757336572092490908569138913486368889852355786565917543934324346659215359766784568648105620964292891168447665475129077046410747162863777968810196697459889879930868157345872850040096711062360305600594687164788056677881627547757746026044902598594427519229195643144555662432900492234506175008687014257340150338001838029953125387624308934340628760357189920944356109406768953312189734454594264076221020868639217842763857573221564721043770440251784929902068631022686308988917317663655517010025216215868370806348135290008757089168315113584289194575267501826711792328162911674463601319294200672123547559211277953576807415033022857314553298838468831283613734722607592692869668510467398432113587495040950273638852918764110838566710664865949250657712899658802084601801288820068246546238600067961755027444587745084302417642279802026445628631550505631251868799431789248905648625777383752164362209872799896051374908422899860549452767290960367305260651155392312574595618126842085361722415339662358014149766303005517639991049048566619108051934560199528410815693181386599063664247284531939474876337073244164157608522225758402226788644582694152181629073687284561861203918347382605490505641811658906010002228939114331555450180570128949840937776989271099288913792228001555699783086705408721529631023022701367536131201812217356619719192742884711711951327058021209854593264243543034357802319148033075993731847351189955287228403812857803629850774076530313699195304451746723889333462525195193846113308727796847080029349898902769041290812716610693780999311738062757319333786681702367428894896541817936211829284163161295287077967915232846149257170412926917350703347762865062035652050601664192380332429143204067587809078803410574501833171911555924238685922500354579314110418703141816138854599239142011575496906220059034630462178515908074538323765804163819449346479518724819420436321526169325615453553289649847429995311530853152030251730514067235030656530128501432186714157068097745508498331933715303325330591609193314079599072776526076396494681668977115748191532089663746557732174399919518551251908820407156400877846070070809746581051986813947492310626921563220197654607602131747360181496821655440402397055325001446160403291524063454372910968681547039046719353505001282969722308942211933127583676874532947462854429703527336817639662704206352732877555618942046457525226237295019967045952332493059395050321994827699993479199355519995684491245671048354148451871064879936308397501226933867585088308374415601698092603587469097877227074826632289499241911457434781137587686884978304219362970873746727928249854183343503362496755754814631399566693986646594089549311515003608559102901359729337543320524715068909708430444562516070854529862272323925267600228106131430700692112420992792998270484423795484059123874630365189836412852055940317072722313771294636817296902278415736259632749728748247518647282239731924644598230379089676284771837627582683024214886977133093557380439897791157990999805465563225310294376740339245703584790597049592950123688457816275080453583458918423678439319972131120772674777248275178502845412536820336629161793788550077751522998540440696652227792009530602809055866444154352319250802213810283242791870664149683387273041205152246558524381026119963897931608083573447754675573339467441095935323157876305879269631000687187524704171471367807160196073997037386807048938517648767448820410676576772667369254152678400513065852685174960982678565281911541270422716166821975468959655903689663876747431491451492910905619099366788876848512222493268159377056658436554768548731432095925730167396818413201683458397619859348154908095369969714039113295485135894373646570989718454718020519180382793395912254874438819355274944513049948336648616190596142661586384516645172115931477798343838804818218113658325925392960896036445845266952359249170421940087064127873229622212762125247758848515592719527315029784916656477993859699017098689991119726967433581450710185021420119372346635039295111263045331636779886119887540397556538567627490769456996264644537632927012492017189895644525560143446754352020527938614033243459076761538675028830693475052996519499881139288644122818044638117598282545095266929404771830324373155266710866720184752036967126990414376672805366834296537674409614358190898674419202020312000336524852639026831350452145252611362084589856994537120670300452210516689026061042107702906185463810262325542331752138380069780808071014541036151859764536174305212030321722892996108807844723826430115313123882991014804225525543623178531565185007937205537606054117940977834718433226329890935228097250400084030900372661670981037021109200659611028599727981779206357567368167601131694672525816320802168722990789193786504372804589033846285342386604308976302031872018393840145897937609624195860570659012649131303592837480800855434080240891313781866820963583925221646816278352404679703409008763461178894988050781607113649866014278839870608261317366759444327765326592710898145391618708819744696939397636260603158891383269114981520195983412050996943437737565421176499990124396211695822279614799920961597368874676589437566782734912289182825489271286578021728586162470079670518444888231109846011813740624625668596859106036361842361789660928497895924722555828845520151563030965591702180792811542265956259416769471822621500257577458800373415897451520276522625368470418557399130620708831820353549313244064961958103208615016175173466571850237662696528302656043108114864464474712460447248731449797156084023719092783497268223420079503587418194631961549737941600785089043075001620037719025471609276989005169363628197022665182004420523901384358423544677826240460567560834094374518046493906227417223367067427348016042947869162580954121146269393752222758369156570384474474915812668815811813946512098139434515289055883508439969229868815751777016053468152087973001749205492962555037282980275775122240317929075861051284958275464605946254045419531684141927591042583567017029648915864878324307752824490973133498551247486137982480413376658457985532776401535002522303522416535751899982895174194845082394834324626176047562737755343443114033154840572422372861443186892978070797566055805653671338613327345678875857976713438767968679257536060842437633182510718272709761696603116602251238664958902518952388209282276446777310718490706666920790956455945825073994173951609188960133598797436674314477123644822696771924622778035094778480485537340509468163915271452902587512549353358292027518589170384678177340506288077842573103804675346565784262496051918784622276900399854497774666665986218532056383022856384700104863907044445887946229115149571585416233488004774410270271058474701952473166379046170644754497757363568432457297868002456280380225131935672809476648321803030882657588296985671682708879740160239251646751678349955124215675680708773109740612297230062699946048401342449973351052274359918529639107626545511031075763194092195910715002790214665209188988808835608615637829041417318249753676489993039983351888155761132447192459639275643113597793030818224454587230697516766655743550733538209642547658307339047894254328430971962854576607550361670635283220865017609309245497389007527074338233506664414732785225483801243661632315768860348991168766136136808111735272294385291067894996875937981383162078515339685017204784085511415859140170739355002329920833132373812606789539742433345336140938180768336098263146221821762957706247454712738147096250014678733663264960155298944260511967934602831610915367193304573881084263263132805625303726673399724380384753929453540595711607231389663656507597817217562503132262938994545795262151161826002750784328302834993302677364786947528211509816946348852988720572288163478122037543393312086067647577080310100723509446389103408776383872998500047997789614995930988778371565401368748044500771573183758967877993984300244978996089779581564100490619251640213124730804890594014892654233362839102701378064044160515126035090995287417852643092082754008216446345705207597465026174956682004609665117438168893108073217231382198872443929233640520204988309989739605729867361588349179255468876160152248991805436619351844793591455447225088309067463199642656937349969574665642845254355141083469794789435696903109710608174833816079089627727976391012867402883893094581614191103369018950576194311891271071096604950078036678255515471969937471698270865556115704061937693507659302437155040387479392396807582779440897049916970515702394503601487066134936742110533969853022130978609917535416529005078280501275527611418599672873869346138056263623524797949365483168020228508731199124667838665851730022093670256103994103099996286843243796039341381946151150095878830929007771825566654100952857570373384476502555351891556397915096920536910994176409850228409944289124623948792975441400248802271674061805088979427338569969065536889608278236280179941681275625698915056981108236684495649852092160801933173565556243439025320785695208089201784820027496847268460209010074081853654453400350955288261070871628880523865029031231858011877481348647509119748286862466372740789244102580040661274782257621370518218788231056921702143427748866041609646211870679408174222986831687249638333795696504110096571624287466811248394741206522037090757082051397848869345509351949187476475672128561596408069165241440874466593517370839902956846731460078461491199872953104836058720479460991685557581912362218075451685958901162604184714206256662204038227903313986431073820866304980911819641310574464454704991214626633516034074885556942520023809338226270117578673228337097951676738137655134044745649371824362860698618165895077655675940099812151357334142706282752106127871379277211278510413618781600534576006198419618431292376539730154170478215547952825535666468458829327056051972379273224744365742100756119799132759212694543580894862901877589649387469197300125226952996294263067617788800020270561987044225166228178453946784785452953412739275418826076229228917836009555055019324311352750644746368249439413410956331508739258960576617061217730063468177352036604940948175579151938861778779771845682731696033090981331725257567589323879432140461721356953006676477785377533514350591868537153998915575272172293733672955205937967127506523453265066072603196162908522720260111264997133065210578435366847984899316282417563087296176153113564013353515779148738379113365105146404418561511646958972270953133002323817114115866530573992826738003442283457944908584735399146973824988340089533184149150865796318168784830280176678203263566569784219548374241032909355068890583029083066814300805760956464636140840033619947086281203646387365298454037387724220535246514974476207560684826590428982413627772278850886867020424618612399837761045773065735377117201073124997178509466796416197112924933106545243831966724729666890610482950479663238634775918600273068251718431133913679835766094998229318732734285086824346200067421359983372272405634555240673176741196248159345274672651405368521474194152342606649662429449771407842893682275639755129192335988070771756637612215216789536632579083213868756226090284091583837184103802263669936452147818343311909871631389168999470568245031349673441430680735707717937570381037398185369673583102735395977400078419357614366843676120531942679514828123466467365865122117182494656793769321959927448447320561030650262388490946636775020757159105320787770328783662724935905839652955134485909457458295645767200212649035311662119611474988380794754481088262357064644625404909278437093842816771837048899063901515786074232097951064250234901727093453040446958992787107810088930860341186409194709317171986739092304355000997969487743887015712798924242462636447591915789605337232195609112712182674851791719421132679415035885744193918332883231307822545346048065613565102383491792469049187506113395824632273571960653115551304002668206008002220855993522647694480974380746487105077752586395367679421323088331163657241118203174057484667836766857537012125455390643263822037939290214136505762476004632704901735980968643175582217762019794524638056396783879777899462223444052271231306175044279352894955006180699164296896173074732647233148830687103835266143838292684997159800947656098397322613205822886876181903690969637148018775509561253828589734814605450224737916174520881741705146370153268040543973462560030625844264627019467261514297053023486251029236037208045756322952406965461626006063354780815188917840034195339162769449180214697625869106196168792613559766513112960048442133819947831985223225326878338209496187646111197739449987116235315807096202579710296051061288236360329444378023805841098530941826353029985430399618866183985971320902510433012194258171708972338350568852192493261274655840613132742746628824250674883039844777235499910262795277346065440253617165816446370256300692165882760831937382265743441053380400979910772659555647677394661315707220583391339213745141181829979723765583779913663006290740205334000358473212601148189923479310283727532657752184776476406039206541277962987787491685222322952106155429894386806401386425389400689477497318479112050649900954046318440058455374850150235681792515698178952758266534823812184022143247319933498884034881974946378658559564593400730125199077890205447184719066280989099706439317195775277918954916280575143967372750822357025378799210411474023406548031759261979502162378413171653599604878584810824009335986178294617609848225783523912703407554850144234415642325122651448262806639483992926547052384292021260750535208544181006729408964019168435196894390698211268952840413511087826047088248236034902479707817178495532178864928925934476645672068909986273306780412391259629025011006605363445182258568237384427749787237301938639037060924064236643321172823592332315599010177342703718224274709519574398947149974463229886594762339986044257094937691487430978437896606654213643577680334387181691713279028010743988273452353417063124187170569908773108257229598133002173887017412201135251454160304667736165771731212374389472562671608144246627366265042037814637235064619198648690065792817249543117281806783954774673978497936593155563882711178497719944902789306859628100704528377124294828161704265513083652034031085788398577520161546384652188134173834161448900511647308024967554874823550622771411298689131653045154985090534541338645763904330977445160753035671908655282855013834559971763947814619692664903166787854057050687428024937979765489950849939926547466913588499600339561515037466520668957341488363305425753293594122172033976488549727877032996662967202311537378595328691363807265720554916046745883187713247332798876159532458671178873010896308913841892779558054691496572773080957816022232279364525856927281530822010862974784483544433698300935228257509112715386640166505109444705565181728560364382579510763267199474364432434094999217395936648241265601527463087771853223638357968689748657039091358859585071098617327399449115199670759126318078822276710227395571429613151559490479627295279746355615672999238011344367803972124464294399321395548423180178074115045242964629165552517545610166776305896982982556232137664937941238876092449775779996363021184796240455390034312839223342355382069288004088343528168046437634458784724603811832754800095857801494388346754230533443203561964750304401143290091779604254795529325211163749937533434839016092441355571629723945180449143496768534057527195716018114014028073722933145136060014852423507917510803332440188608835918497053869832590952518737009168532355082498171522579724783153973474964733012151141871265666932093547722008776934040193867138633759135268650794712287430768685734692445370573013254021494225515607532544572979153699844752912241594441528377815599816681763869790663769671454645479529779713241580988315877707247643487383949150735547008966698603987085311818742580602745406639275347497326226069467109223841342715893591896466588357943665314367816548722435044439975880099578572743245498215101090090820783716840989036961743006234429568207139642877786867863541267679711056222099594779961205249955951314449949336358418588631294599821391492627660802223004566392190784267798319491697908651105824592478568465868977219613767401544522280789238685974857785176464413184986705143373563622672397933598130725103959064796697833905034385244905234492210240449263367148393352157093920610993652188980394937712422518103153558870565414133303449948964415026660772035007278933022192447708083824075574012503046022902560603825229328550611892801124031617612611256919669416055738802518580077069185384182334054852398922547360384276691954988359092766624265408804803026248940633663613162736774416022131934338607957660069905789428565890065844638875575499974895405423315641104204622504531663520189793003736844367752726327874637744807295299169124808790415289508812654639507919019157236024057861394452448242992133863324132011679870563387090139223064903055709224861977343689338233691023268391240266934700850307748061937370292047462083363003541144662918497431745270727680311618320405053752416354669171564902785574368629094014567574571647323472506020805303577056531087626822212572880856869205237216319992570564631775057140267460386005072163895250941055487683822408313792021933659546566281773077032363050384428120831373875758622960396448941892197532376314854956304572854185646400487732085145464107176399100672777222432880616872506966875379555879621033521868216364866051249394133167533014557771325831303296272879315492457441150572445634889952925727567263517181744439851169639369779970205490466065732521571130857399571639460604915209553958401814426840169708616210537098852195933590756904593723869879141081321562065391376607337288188758697225764116053413357689930262054265742215447541433116813512283907210779013051970983298540928399815218505921774105790559806339353430511747711822573759626393255542660447711085499995268731066333279912840143118638555814182298779551810804229018771037867319991217555059309453603507248855572211866418668079838233668878393318932641048605912378207975151928289709806133580939234484429102742335581520207010231390286244414262726548954714295253958783503110610370128613854457241479454353957473421135288400780670539213157163785696195844441703611750647823323843512640720765378573394765224184860484040349684405071681874025380720425473125729403223654007960186977943132227067278591657469962615499049679323545196950859050857387462063662387599834909224632753768484003136833590745839275614413118219166462443364636439432715212092012002934525639189061784503392113968058922610718296524782007901015035914616579076965711707607662012983000426536748594794812907495806099765486961484881829242581470192632953650004899612662906174825923873213152284626002910918029700498839919878553604007338910397752991231878290261953377535884712510138994982704029575360000201541135646094149581021108626288841504108472758931050019273060178847323138558761792220241131446297486256175488791837042689772744932495808149033381588054380057178782768835328165366494806813746470141389714025633483557675865623750148237415703228027907772457046667148279601297155388133704728101839668515575395166873891094726653218289397580900257723227167889789590380689531729622368808317354676375142976190681053923748039681217116480986590714675907378322475072630931462620312294663925253173844553495657392278881526564615691732367708064642003463973238724276171629246867890410796902663112249273000984023641041886405549108522021737663322509505128449866894921812016713860663116013696326225445159419447162978800850427688205147987155317401718001511946857306359957958208087351054786948378844585846236027540615574795401179370725467931570394940196488381786225964157041514187573844256175452626006258782255743583122843914400546774387660705394397973552145319845070671067930743489084397051657653866057820260793802654743823753766130889553849157908084499753038768119904172049003337486778151787907961489735645595924878273183612507249423908041634539164274907224050121526278714789703713138467657095584160092252752469732677091279547925180366276754578646596123532837178444221075204886878049912237580346631983958578080312522176958385903313393839889929271331507020866854543700602747194268617026764220111717874882598710496447337457827027727215311496087174253418176097505169304911652840905147408007590575347456487968828456998861569492552557988204054771032944610396961654046042864991988539362216043890498288633306532932876799101466087680692169746047031278278777868604737236113426001557684301152271123302964204276613783191307523274576619947041787763493413203727629400849281130422386131515972436305299972139791473355962641938018131816606381071188074880374461641409115773857484403039363077666337346945004200801768021465825707494838549753772673967615814250866663778695220574314737261492210682644538194051789089764045398306478820652057194559247823056339209796840782471511364165771217027720433340125025585700097278204493378080911364378694516221771510876526047733511000550980993554036583989364950494276672424811318593408090295931185648266666334641171199879358853301621810527316123710141651726541668432122397382908761801003119086666891582732038895136657993921080409877785164220052188824813010714441652120918364232014121917514762845931577425995038917479063295224616993687493537673755390381743662284464813850952725056944712382078320933010815551075120719535353669393187781681263023569715932246175984114896426799720295154764298601591133396675119331569003109966302303266659717726301904250930545155195277065636263725683620615900236484121004690230551627142662449714934915318482240958251786772809540692602016110482609614653095644303595662725022141564346509425850501595161126063628697053227819026803394628487828394991062541720028979166911491932539493907649891566098920743325891263129152388532841874462053551236743311225538283152535389712710127634974795716332070864064967307556478937003569297546875085374364381093919921756323001334373262653896646804496422847230267726735460196805331147393473614247262531728578177015526010504961221579058494389139144983401586753541215927834139826319422340844815599633060893786339885155262709174884227487443561534738499086172910353062015747070682115917107687469171693946800429650324225219697459419694106093549900206041296525512303166154619883920674159896016435230422021562034752871641926352478854173902483918758690249314524825960700912352034094727000213704981457883943652158415969604577324061764723493719920509241691172953647563842133981725983401073383322333338351322203708498265329681041324038522148064108305276240492851916839314664383065857138840074107585005150513356882524403943002248902870349651989758960698192838720247227252748829958694596741086800326759692065583514701264105617934365703014857577390875347880923795215385768817057054634433939223440898710016023212127874910339180971149198583946267216262870911581805232460191773688461188698570070520106351200552095941896430995096977091068127694292440321477200338414743835691969144895451837208615477061669502597491485058299582057442719199779019769548246082697154676047605690119631394410379813700956167172624798041100258010217979027353069696915879390838151147754479594158514866535337058026832406355903005797798889796403645226438936065763307170996503118772087357344150043676012744299621859307861713873257354220511640541891836078703032167367737006274373847879820109305830107516439280152936470215309460719679936252637869465506096456481222135829124979802702728325918655321982404086855244999907354293807763817036870624629884368978820954321195018350766395344386069243663424941096464960371363222444079760336912352551107819942036155485678007523132309333073902112970331322990443893806574966305359674682005106187674289573937413952101163018583594147611123678659367342417752039301079937292118966639002669179199379665534928886717299895128279868560387543549043192217974688038641176137544531939500089992462008767776908315121851421564705837437342504300133982922221658152859687054399366140332453012324944802673452330364257112727614419924373734120773864202806682643345253754083352812742036201982384551231626103376580550251388196374983437541464895688822848977081143351189290317417644999608006310899453000972806955920225374031344922167255227544645333358367097972795298651162594446415526329959925561573383512165015834001855116990865201801740659481268727650990149761194011887774686828575273421441400039349095975095591824885903498142175704327157040912920108098163529820381932873413145375590343866546189819105702141969741067876391724417854297398728578972360623984176809698293033975161745539094920508213614258474463861616466567645001878063536613216732757340827603672975403573092141998626186896123400535523323550597380401193726260251323828554561635652052502860069966666906281538859152567466246726001623169114797638229327102168037502872551623469240130770834837413017382541247000836887019515459852919923796353605460688596979542433997368162026819101439004459301425017058099375878486884139539947094848738339099039716636275404154408473335639892453382317976899916979795121680783623814555099523379757165443346454913616172825851309452540389129199976687491472431409254165032246128606876305175644840464395411701423754713725347019548126170609509530180226389321492818371570622201086136385788950297259408054097338319135788265138518384474905099725520074403565027846727169976083490791772312389549850647896599967867092426676063279130207847651941270435898604055098046936812564024066592582030846440856438168503115509449508318626637775759215942716071706298694212971944263668951330328602129989866382912995682933038035141909900420471335274097785843958006034070939473812731810589009916372930182274232214049614725659002992971663640595754366497601774625870731857676494439745738536255447856397891658271810335803567175656876590242126392816515194242338328146408544109207987665543924605392974855460755606599551055545136359359349854674147916936003870383568087072142245514773999183518414270911845556582485837521635028014906839511161537142980911844571740961831538111557276364827243502322065981740238210405498613408523846087962613570022123026403682725002615224961010687046597149508990422219268895348296723145632790463644622140580411850399145517623710664937450365282654631876686220852830663111138973406348670658731239537716580496722934573214641148024722966995788156803797478174336599317768687085698941553643204962057735573087477074082570695805596371280512539614198801138140590115970553222968352762968121826811246224159199743522540761452942420913970790616150100122502168285443645493133781100584785197082473859279696032500113003039084523961703922735571413415682324071110579066372633216767674054170787345082334870657396761141038169784506730167989519863325282195316435421055117604127459768924667576273952669244775568341218353085474240251402364199188100625640353965590277252612642563648964275712700746353500129928533970888758996600177207948364185445568461264387407367380670955158629804150945667691352853940067032965090674913671191227801998907479689816672521781944623937815167308581284039288045220430202595110692846078828735489561775682419568920431010950578941830567168251597881899294616403327311650143088202088181763111547232023675346991144781224948793887450406623879119372634911135916555836381919791389773725811931232085469691789078622441334709953082905153721484635365207706425182585504042285508267792650441049688457035385149728337105735685048098820384910311147164300013941729296077452160361216840737068772821807913202073908689686732940941321247420622325145562363365995981671118637003728559970783951257350459764941063045839267344087851787085660347696704831452076706835902089631189587271802743104945637323598282381926110090093336371535162121447146501929330456522510876442956599973787652977410887361254550429195319924145989456577725351807708429267609073693296438158696464992706274503295468331718755492844244735772662307809652783472681695137163970141751055806119890516980806721772493018151159409751605241512604986631762695084537960080676353978150412510060887275251299643558274632822177654040292397045658770363401048891142370671166202628642375154216659244479408566797021821770309151676321844203410197933066197614544332785071011222270386243906412097450043116476138578774308622469485623433836280489306388644942713645494232007002559167897185327607663620768726438699089389974670342029382060542894238119501243943804348192540193305260496037018258864329102511569946128539268236574223235483678237592945794759069496907785859921972790967979250362470333165625268832002815080473387302914199093730246370003864605296527709117478157779130235908644058689679296498120971989202173915118053641187140872065922430935891543778331124326108576906055624831797126842881859745233469604246377034201705341095832457369070755860951288687646506110289108125528676537921619145866866926039470009481896324044072398385710457307507356006875821141453446679920365529786521384715758055360400018874277525368231368322388220970324506755951907761400819789949709725568901068161360736871923887782984306382223313450267771156789961734076765490092561718801895909821074047139235450540206717934239018313098371308682101725327677308697926284862413904056647719573565349828097457241197020216350504776834627788689786518471529014273467466425109951450018843657009833938079892780219471244665975484851755483550959865170381447939349769651166954299301163864351272061024611563898973318915145299361632806025852868933410928216751206565496882086452741556194849897533332928428284022870433372639151550521233254429456785274756624304878358418854834944600477265468734859657995397755430046318616565164482379704975045756941322751908351657252349600505861676208331070061049921267054111195336851928011114329514132457664239761030708640457074052793686652258684432394419838908038427661163459073407684731969808137179100673264087137576788559202800454911132127364747829844229916498306660400091000102571186609021174729952847413673161389467586827141333857614514255018220365513162846970231329063873433264280208719688678148038572380204450855674131373040869382850014620446986612692060470415222362806079272753698509084270328015656009453282590751897848329723302620335640070382033020289028237505326649072369878042729259541290376476099288907483158692237182430811551781868105074510073867511305273210258017703240100821894333400239246325752905746775022007656722557248568484939802050312341384758729336970396392270877924376412768990552393627189988217838488183493179465925530966611245813949680306863441346917358069357341301260945176344008313203960256581668013826956336713983725783878528044655099415408632683847558980862882030444946735897904957638297126978701071632849191388843132746118370096656898922877646790592668449551169801683040942752847041759113189564866839817737685063464146673107874842083180947104446878277929894969629152308224523721147831402418270573668905929347981958920473049961732317037751476888174952497147626390691095272136711870239728477441815473874216837239676154254009637514793528793568658073513372741782982186000658398386318323031717954561530143148484791746647019881119760065887336213316981063240566402028436042447352416663024470821881982469089671709876747861366133807384814438755296459192420887209012864299092004835524607234259014508923705358053339059997423017290356019008722560429466698262967038688192892401020910031352124629909640505951737670754340602418814491068061535326708036018480134844043463841779318429958827327116725400274491930132806124072027667758087637389147645312050076765591010561994556306497944920680594070257895646510125708326614396034672397037398047622147697201855906855800294384050740910413261805157028622256977488083975825646304518221722880870797362089646769566902688043430086087326652010085984620558515556283428239745714359080432397248293992960397251607118136258383701599054347168539362149618622486076746403164188169846429036539311640254132242215096904958804679474665479216551346857372180427485579279987082687323874610910597186783258822998160281424947460464281949034527883855891875813445009112851874987314301666815676159444873770068344734535621087219476529026375237037118010388682761568562814976586387045285549345587534749974654964486134140628759775042457928810356471889958634511468296215023531619453494199380232079667480895956250416517935156213408842267337102022137469839246973260495969595740723022390942524344688572411932912459041646497211516280009930867131498441835910131934705567329078509276613984449880855544076479507036993497723606701210697670856547930078224006683363154854340865802617953508015543859813251521232687778739371613153747550996227991914540402332002192114789517032959574698687983527414822781015472139034413137577314387686603591230807706556401133220522768273112359052635010480221993462710848010575194489485875597362184379714837683665547733954930048389139183576172151125429117757586248066152665427222608602010016184944165843003278263465497680788511185809366366871836864258961921011142392228027088212961252936728269685523600969480947416401059969098581825943455224400597378231678975527793514183416602510974066930301055687075593174477531365056333264207823964620450813058522657056244219612069234195207672598805370605933248124978691257633849419841015488935027102195699221631658000188991523968876198186266899677780517225497359089824621284734520536272131863776672663767536903634171746682772082652732099161211731611924170990390145328553989499510344649488102687264165236878712749503658545397763770318324757247096686517425992131985265906394366102557033391592602605054947513178567207487477464012579835476538831891313342557733958652450328601804338579539141305729401939669068826612652229393541419511050889209534736544411445089628280515209524597990101442259649801109673057532812970897819887759303901367065027950341359579875209607251893012435070707554395326871540595907658783709501164942176668597959691570629365757797566013405292319604953286535437815344812261924142238791322969213091218905402431246251935397610118108814809967435064061933970835675429791967335216269874361043829103353176872253995795344094835432410630632899141296287517357890858352854878076304373727633588758296099570200692527273346377839756446983972579848085327440998409577282637199617020828526388226932808402127964567484368629888713962290263536414881484055203540497530341473067786499691037470821739869350912276593086488291156410795527141462836617975740418485313992234640914298705507291910319433964556774141651709017694616250995913655515033137527360258741014162265122166542066985659626297610581434264015038175360823633420568782067310665164510350086551995579784499360796520046359784718070848047674861624146083713259728842864434143122274510529333894731754764048833256487388865666014696853906718594319660969097079788168784677948979313778627381001881922060747077878936883214583583905570100701410020702372978452576541622778411598926576041344457460444116645425739808400094936028837010038442995360103817196567913362687405910502185912649481825394326596369252393857166973643717098936103780484930230246277390009014701957999940441011080698109784512280343659861950131901198742915997011148267478334262845459590774926452682843166589227992316175128055465435497920627336341325669915024719402309946632194622710285867809287103970504144671182742913978293847195632136350199876395331267641389688219410456373376457105184657995678408219689015995538321539248786375513186527946933328978211446085710308565827669202051027710432498480828816958316063648695786184649656960822942813067557401374872596758148167942866029367740287472265191771784113476274179301526290505930030669054324965143866527835852284624176637495060454177353615762311184922700735236271508368565673378407198795261246169852289870347006935912734373831398801306676466580641505793080126209958685401505725775307755949368310145275411458063426768896665745527545722756521306939786000097449965983725538298395341791795287683430938055092310214582564177819842308055795794419775295907925039819529554462033915134279578615546635774113344248787762826477900172526853021978481647130965666699997586659320854458608974633343491914535865567574326851917202118886083287787395457758515849399081752060341718473696156131212409993322033761729553768670932018255377113112923222438608226300724715614286009108104779882382515788880527627944878658842568084568250294810634333958319975951265305335030286838110072557407881023793626372291141084374547451074150807805282907249888952819537392289877978671934034233252188640503594013722039123027245202644222226605180870728978106818640702879064689377760271292100287858641110741624277695114487506027608761849127410472313703601731901936114838736024643070639027835827679245351375566722277593746471906994639674427237091239807701292077197559697289114462774866816312642333023372482617341867350693898408260588785798586296598328408569291369241661153522225384549571288870509669673983556757631856027674875200700624047919813436709533551120670921329173515979813380265323063021514224304557556803202363419783939745438414502266994358396756160710393660004617370746314405253373758113582682178659404965093545920392926790352385476898657736730008509151609590852906480160054899457428563837156128835324589149860554754676141262029009657953243055228021981413070240404592455340901246681419366557997059207320083846904996433370844198428392017531028075437070573915549315015779717452744254926542991752652353469526082004431333953632670458690527200265726414799852784084891795126423314819307292662167526786169298139292168961312368163018444549279397256371199523251039299310442563589912039256056549591865368434569932352609833698266376482273488611385756045239982009256548834160379789520928198512188890466334493846460394355915668081945467768181576944168615312450661256201811877035543072572714358672025203268167452256060401662238304056162959632036509890298957030161793361510049781018394985374544453983408887402456163378060904909178576842128034756823369806766680100909744580213315191659609114442758931103096379532532101235447700992377294428890865305430315884736274344536646068212001439863651175012824935356913593199569997761564173182272264015861007420887300610856233806525109003925590274032847015013893038603618757639349099541572291547479735935606034020759404254540054071618343600002277689940855430363192101922472628988671560626953902026346648364486749346236985523608546916927664323590133884472427996500813375276156847447136501054911103189147420500641782113663863422413683167917295345587765613537891534150457348620661506829675832867239210505572071640343781730913215302058683382968637576560475114376027264036045440398363471363214588126426881047331408440426013721373635006215612530480101151479517254411128500397258094739846434999180220974494362555360363369336887857474498383430671063500914807515863714671522498587792240278155113822624622441386038107663560136283952952795071041907577350735425302661442984563567222130611070922726276913885117580521256361979252517457140018620435092623578589851074518053229982417711208348708132477939751650517433117420382132172594924831377627596548376128656740939010706824851419070021753987776398899022299460735755987318299712804976977017142238511179319060967419462991906213945437538046015870276337817104718721144219774709761688410977385138253466654569407050178538781591468603800829050603168356966695583094892077718571338404739451739643003605832308652117218373989239297033307721512517088830939788052945099970787076325881397952498763603214560525929737998596540441982281345312362480739785620872496525887509696466733597394302125504324768357964593293405604172687204322971472353833681759833434779367129907724348118455767830022158029245244564060031598036069236363438951018522252316449798962195167682326728701184798511456251646166364822119298754077100603178581364628555822466877172420547844100736721175813071098478251448706636137884229637836854978566557444970898781145349204294764012923794546964607234411038218987624616604664684612378504775853203917602558012016048742117693861036452475540935844937822394937499127718067029346098414751271476026409972817359058492525864775595875083939171786784282353367963243169387766984163945031078846274048785220833977956098159708216383999353365974406149213225213306526761102728835499233875383164320578500854998704995601576202656426346440408264340513181748554786240993745896475529575134347672066423083898652251509515698656255494074627253953160443117937605995640821297614217599160065749795461556958820374927317221783684457970544399562923691297446507463738603439817738804379797920108453283300292117460884403476124967250839230569143883300226608931737242361308258275776981963260250011418072357206732259581184805449490617440390423597490829297280039081336595452008780560809399376953926979825117361800778864737111844826744028116031873734600128559364227895790765593912076343550285440247126836652658201794254602269546046894719309318746991470683837568774601779388958841896699500415231327282308469969887000227705824653562291590310429334045426825100109541826685797251736152611487959653551649307817349418466186043381488561767718574075117200809930887405843046214959722721512966928073183111110119680113943547402646011256670626600029115722989229706082082242528699425247593884277628236808318736030093141932142687118681091548220505155431141418985137242674497303470758265276901703113543115361474664143478488447628033477345363100023931255326876928021818597055757210190762939311861737482352823082032340684916720534838763356543351619975000130633523760486915693640224397862446465815871796045558459874010545076463388619381461218368972958327594213309630056194908967599463646272633787797040056542577522598310536247813906195759967944999277846605318304621971604740058621587132130687071519098861801442993730661637930025744011193445867526075798028970335795228496233501086764361105503099355630850199811099678825971645156466308967327551204730767280168000722350105133352914865569794590315502311299118118277336589044679170560494024760065513083069508628920854757777692069830930724669452577712456346342827302070084233044413583594810870407361411084453002297801871184803154799860906638552325170895628826677889842273135256973692623145229357454589243350839744650353793030909621234544110036744727426769169308754082954872556987607115133731979993342526953438532322977453704994620918982894213729168885953911278475743805894431920240256147462367649343163304330290361486753141710968218831608844609596151923850459372096860771018181792755066487011571589022316508429541543471962046284479495512669246044875461606383343450578553908792870904853858899746881977885225537555798760103068968199115440762939616055151992944878371681053550627993586216858653313953014075196094714541639618716025644339931740234664482845498187915766031193450410754467274924434007169758781761475654537991984215690905060142373493152279572738141958927918402167622026095999447357164284588524708806980635810137897559561393773038387206856793248809829283268032416783236925824048566317249396832797449392119970537726269168900248613953138760337877876659503753990512221669128171234039946640965994958098643670875480157605422494241615634628957032846849172743007171584219381545125866459377251644762339465015622075877984860992260289916879982920764921107288938226550968586619893443103118250526737195993087178879872887135540157656354766007320992490399031603809376872088237875980494824869113052878571220415782853878782879232354024376713997672326974090280130982570890217892277857590859785704380592133540446405111060044223917787065505321195132381924030895024662271669203239529519259614363912939007318431132770554492277306554626218573340955386035078360313697781831175149815591516876384343224036846333422312760462289446201012212425069792379080799724088725068110823227887445804275431333659224526100743896619538331921758117040561899022034164779550539836248319090652740029673207872686926557969903801555292147099663555291166888541407994828071024823076386786050777371176017955495505503623144793089030427671338910923192624420366501544532454710932097253037345556474045352772023146749722101463776070943996341174537265878377732981454378407535397563872976075670209912334941609207164849638557956099140852211131604849368836992665566652293369108126956646303644988035393655338294820120538405071944422125552468952240745202811021785892232419899426742750387057638841424790388629213033676420986267310008735733946268198789055755369954532800545047770174906209771181467983796557347463378215178938470387038697159535980554778594798213532837741511009937332440182177773645906263895807574922939555980339794409979093519195744917653879387353872683397574718879610086778922474426714603556893011803293199448977846766740577994910517815412144842374977868394993695282080442563712734248100028016831114161038050589091899140449219663842469750114142023832241167829838292832993228981178440009171633758646831870710623560403030759824039201859187440859145633867859911602277380778402141534240415913782363728154499427565448561588491941986934529813724960363013506857239742879964892004144368364635447688187689702268338977967341671237247604584608104732825799781401140282168406191505108076208052937205656749866256158513326328016436786229855016602685584482986939915049750350470734414735767803274114827991947562862418062243901827968120380055301101540894952911910611720266986117046674384582592507001602708702309921795083254822045721050201888369221370171851534159628384096122361363023102180617810841303884368369662444650129546740807487795547426967366086662513625813983134734564257174758406907501243505295081946111056000660304204506526391174214007563602112849933613103770213781644400808427090461523594560542765299561029357035435796204473843749684253364696065940005514676009114618734692944327859235244089206254671109900188895953509207679557233444501739587191907312587800938164744021358681620649814072254579120867320268344267587252680204008791347129934130505773596672694733039389465733122597848021378455007521550301329736945776347872006621914308338231170772641480914779401751871277394936914324378253337675583121922984469821645088912519892984323882956604967712566437977898674885945479967718317969215349240495051798921249700009326110369765235263493964962858582221790196510960371873579256956171236911711635933853322452025930894793517062312543217399569918653748691009403515558445062367111897830279282863755197613305254456617714605862489264897668186984048420529061771776885781575486298439374361000759735817209079685050214142867604954707699789423994448443005277685561026210696804147021471946728124853142500155789707130060248261708427378102306711716033792185758185382504127619060781833223901750431201691205502773947311480482150054442461049987519911508490151650749901254197422990647081376734778103300181180047275643651976425076518698605876546004042072449537789239361536222765223982503995284652156587938396931600032088619825405238701725242798481594751451601782981054240595453892936764997612108963521115742633203653798275929889152289435289683707546612424287093800999058688175694066185287443715187739440291656305162810816668099420193896519853655819286516150725087980049983991006954049847191135087027204341493267886609855156933841350089269035308651499737859155106234864837699980910562587357741580510813625818466379711239004263013014638840535851881334689234194310042423382901556948350263782202254188306048950901050387292471126770805785170921647325522749687151820200973445011326018944303002944573785832421184799677558214087475318804174978695174046061645344035243917655072854395580819825638201049853956442386729585484482386907897369217506823023375338083521915632556359088175513666594248313079009532421378338350779267449256665785155803562064690340424995359370911730610251191459068472826108886078268540808627626632681032355981415783386120034964064826894103328956298650950500541860262287445891310068655723770361566026368762408100478882460466104914337799196483915408153965770786475860251870270828903962454056581604178397216063004141722275495000378574818459734646318805931000984804046219291001505463935030387408454479564269762889591985205253566943712565274514229460077251299288487185637362582871298304083093124447817682146066143934434670901033547269921199342871228681162368855109153115648186726780564810459025770253526436846607572608525280257968423789137405186070271029970150175440291276838562404741086713623722137096187744102825123125142774188919061560270289342996130619993324397934029898568515217876674218713309294180115869359084030446137056466512971667814570534351638171837862998621743540730387907089922079683348753046289967528044240666666345377514732006550338609093816419282785668602027869266636522225871057501785844194369651445959053601033971905444903350706254540843711803006630182578914207989051410950697144417465983543859149374540344948417974989223096200214906740022746761704710896274803702371071895215579127663274136275013750729910019269593747672544238418429881692771415187802970495102139577133712768084167156451352687864790255169936311240677115175484251862122307888567294067881620289908337467535699274956940805594481108006319151732319113534925822506103056221726958761721134428280700512370043401670429792918772737872054475444116131346879135133025133438005350540372563574496960987676858252344143423312956629572537587551042662056087659358054556838816972187612431088803840132431845528941334905484658176306312819133974120874337676463387920692735789876577168552456634818538241205206599112377244411549631800465454757656688422077929059784494999103107759054134973748927291642050521717689369927784943412733008247459170680344916562818765095974400322617083937383041484758671053275092201665046917170380159228409728962845225981798806419078215178751523585710996487770508228483242896897022959027780009295999207967894754945464546606891230129957152072957768700952243552743626085987148857644550703939912366238924265161498154195502473430969947800381437034304267908808954659650603967092818714539728460434420685124051761041516848827296545181649707097500532284985137032847500125120893031584741850234905699734996397328537000334301323930511560514278018403261049181266288558673732037327059209465584798446430268415716422970517694494930230079749606420074970982577838519580194965264651840805601512353295876118580723153640484551010263115933296137260575516067924782383278389409738481088683294529716502754155555892673200930463786593431281129941796043353826117992368942944002828032004847815532470976338910358821955484401980759214420778219889330763352536198635625664039903364993995711040629862532128767527550412163635234998232922321023599059496682291968647180536178258865127364024754501012563956810280343981041068190801730855787206785365616790719953422778888757545462356300023888027038177484730156255375460412962049458392596876941624688840359958416799587049047761479098679062485435943629767483666402638959106455428384539614753545958760917982387414598863678705140900287868876115461005566728384731848230333806367961017811320197816358004154293480105828476713603141024615774391349001849415453402048065809772344368509291814158386813319465657484030941168533909775257278705114077167443122510123348741433520517276723984379388572106205565459985852429241278010473773678910646978289965726314167999148713269717697632961605654687104754634606006868680148428224620347409752872703109227096771088642336903404157546111876392350724651733086097071536275469511312615441125829355480067717627046246233615997530452067276957421419686584641347361092031262153162180568648220435960967481833166893383492822456639113751689019458392192685398505153575228794849714828237854861459762756063824468303105438218687282205213705525058915008206240783619365143521254404459526855925357041723491653060776260850422319474356722612704758921561879850394317190017164610421348297763459548794825310592685977446709134330231164253948962441137347861451695917350218670122517454268630692023855729275729627005792338758111866147307860642768048741978849141990879570426372171236836344330720348693901415595954703439709094120737489230317966924739554289837812305798934240645900519044404891360761557439492258110247041156135569970671943996488033325794444103599546811902540264617534652131034123313205221329264217781609602170385782969585231146188468901861015913556448877121268898653140468280567724942466172096341501175240435599194440081970260494323474109558976534177919937010361171099797182850868353127079993240663711071700321239760609911742566030808609401536402975128812669131226471230849805489508189536070851834924472267245611879129189214755497854361882816852694216314771659511740088768286623024428998700066190647648365378330407846506913185662976418205677249879897649741688543424856248048892547807312588179252091887068874196017108047744800058175552294886483780109935523435241364801498880597755510076837309315007960016109218853677825538345938482943616502949534445394080374051915287764301961959406165482045267629374550429564600368459117510922145382598752951630626046881669469348051899317754161413994382889463696111782678713298564973654571780603283903553193992899549138764753877463513061075693293273073951120508199115171994563815577637777540342621159821154151490612741303298693964925089829122142457104555793148411936171650683659725837261851006687629505592448348598679678865323138440233172891767872205552799736742738041332747681708647159680462992087142454505625085595418010188185915638723837180804298591568230603390370654336629704797180183366134578350430212931294882283200423717609557725715800152078771792996429031913069950181536633608235907740051460922778345533297996166511826994328566384848244354768704558003484632534612391298095805767838455043737975135637480932851439382920052911448840995002828056065173257740711716325108732486691537009516549795175656874055751221757479951807169864012350575987768832132731458228520054423205762815472640632049867316185145538964690766169067855400015890909237077017062227772628904112167678888463030036072082782285330320985869433578255352087917372736203792590466525986498037869846562305264447712475858017827607995652819801474852597655500470171056950419639153924693224223683824613274954399991915352696962636412260543604964883996793389016587745482518853248948323539313029094252040166703684077504139964356863420231497296566366358412335069842053411583322772153448049249414092592962993929897539064846461818912511001594985247762857848133748726253820116625908922334458920665649954048487413488682517417649212781438317458296900833014019743292891282420169305787738468440357769783554745425452342437147569033570037748501145122215384575210893440607605845632523726208895245824218994156392285775157028959301847620712767226908487322315541811831508985106963397087435711817755324917991598417503928760483864756871491320576321365254581909550678652900760014427363249060334342330830064270985520935271651442330801088019761863717186392605795308957058077058598751765627643772951186048798867112299660958541074457854859466138081633810086875564219466884553370025138347138932097546775716149564304598359328247812666543414174952320538277591558458955956668753632563493267453546148414633490131057890137538690273393279117932752839625722141115474839008429354396340791989203109834085013612683573004397837656756045633164526798880628747575719077608279342544171570551231454350623436167168698580053820060874574417094855681034571936534830898628484992341147463560495738953793678175296785049929587538455430992941625902683944601498078472968524307487270919449343129700951194830959013583318606214408298200719257224087439229834506058152216496061357056678636875722967365108319922579719794309982185088070807212179528525524260066879702341899738002539019551223910122289582358941797318887571315090658183820260519207184478082272281891249411393184414125369224242420607408520501024248035166660775698725174798365072496040433878355513522271531502507726873166508794801517436057642785784300204228937269384445721832967599944271035358958358581580035141638271382827015899829772340034824427030823770303381098216976931373985533811646327027768914596354888475734106400991235009589038757572257008472902948477549045417043166681834727087284605847512660495052784807905975458966110999872790866859619258086070477191721994473479421427737224733012733838861965100003497376428251466681589926514937174101100901208835099276742413888170961959337745941780643639574333937433845023150730394606961357726415359365566525857858579460476237585679410982897302785660173480760119557364769835920682276351808858492557690006764656218984058466848005213891547028631579839122116054941174841099816921253975794932189505533153413552869057170239590786083775023577610105112680096376270846490966086684067983993026418237978368228187659654312991867974334498827216645381696346798870312254402661567652547964821039742407868791115445151435216331684138328595313003010341640219011991816735274762452030409200592788409059450338063897668528508168415763813817278706835339510228904278331211784828607467722305834970271343917502368153606444117874015805681539161142585546398062027921924292379428117491813999210387850020389809841215577750273728790399027222620050086616768722301719053189069874034422137584043128496774794030002557486166738066719112757477593177262911024741018015920028762153165708345305441691988996518241305474183967608104696962335429947204718569360464108817909486394470786495135850061873310209298087865360301874647315644899500445614039752561972852318533948349639560778498086577459871158405093936794659076641718386077628348067179548608058680424408262945037488934141057909861493237887065533189766645932997802709392928079742876306997676031717289970402306473226147543910787935200846032566247761633494442856403126284579732191600708297194808517889695768421569840033082013723807588945537354827578888890644000665096976701969888678789409724696205660320443840514710959592891543624501564933965817043580952009595812999586216189341092853972871049129784033196736373671635617714744044961405741251381093418765689652757079409828557403428651923928799565022023469563895542864766883938718888044550671859241498364715438497202711373986907024524425540624327801739370380622773021757558295628590351501673052043436560180698278259080231093380029038705201114048192204993192997559418220752483997681532926186281735312347812969868642012734057587869330014275487998325913931925071126666156540794342677774969382263744155640161941581347689000013891517693993127683395074819251336449401540659620661699093593197855606192361247569407366313467508507154321850807790679597329977561595121642575981862551656823753913790359260041987062971659113522550876404178026938359895621125347367246260896522475276494520283333159463955178846443882646980148382009403105607614633250365469448479992449552918576538048565166254508843747408221200851666712450400487970154845247679335402318399581563693146141428013244114344562455936693594694238874597579704245298141390465128035583566785757169417096143549356068190843518278934448867591547302320192490302903320396463481858305358519221588273843569172067491204779997818682964659945693790022443549081436734640979086286400204709752159155533174443592472680421224789634868956641411861026539670300296921191126442712380629093783379019517135100133276640207436583206968641626031062362419569296712390003519184168186704690207870238012333145017978259161205443248692422428935616160304803202990123038783516207333714354289235415940667591894375729687461091555428420681298673475937210153005830433048840502939198845912113299213137306643443672948249484707401289746559337908352904032873967975055957242286197673291849619122116046421272300308478744037140229068306293000948502798969388122041052073336921849874501167086988898249173469696375585917479461911795117307616745845813778968287215287589006027480402963074450076036242080826205361012894431385302474944850760120920104285685438249922240949958378954264347981003002525544152519876383970402800437484555720252549571038285100782912302784200249799369375923488138115878668226450670684940998957239069898070382077302678343842372197058883845411720120329482926420931882540740413382431416531649397072797863388775001346258937707414393841634456875454761121381279078733778567873181016880601480520831142904128205681134595871988009441516037234489324967385160617244608442122647378050169405119515524214290188568204869049109793075442302785373364036327253939808088119455231869032923654492219595573811671994978129396497529010580659506540514654292866041616493914548630285117624938062616792612602344674390171481899112193251281015097837630653100970009553646467282818985009177854176572442304022486163392706331673160437339985435920547644660690162282381178996756905616182602286628878273851489217982281575171249660411410411339867232533250564866163862226696287066562296640254071512849658571955298111416376646205544970400371376911774242107556616726447040839468297987603247380956743252619750435981724210720527536307648857751888124141978529962280098615762639213635299789462878393612057233661549006304174098165183336166769076898754602965022252369571792473320452702920493684706479401520590553375863140338121251664865914875492693059881716022221929004655387439135840239836198439461044015098184046948641066943853114693526038598507176549763874127437975834615517900558652870975962275554587499063967750612852815437508759708506733611484274833337323077736909685871339790166080816077736054661225317890541713063777168756740859504379787316484524962469684448357391682715098673507105436153075298995351390659008206620798007662955038764998097015576091223244923224758562133727499855047982589136150173185614227421392836096638950404533683537985425538189145035153903698775341879273607875749316621077920025698973875809105757377963837986936390717700080276408149923146972056171695844552945071649856611177721530113077868176611953075995944028825953519071177531487225276031558977122413861434489205081552666383706607687165395772961957936655486031788395636158304238862560032050351606653773537369358663342059562134279837816163824751120911418100842702476118488013933435484672079457936687322040828372057473019935180699847140846806668614610574067376842987752379152130789221028286668716881934940126155322141393171121414761417698727150901080527583472925196974383594110548027195824050556040524852082805103186592434963747063105043916913820742272061957466806150686470404543416714250436647401884511959091925064597087951284262949232147821112539336527347973811850972449965243607268346818197711519407398955910523218051904884822329952119151236812936340864406628787137079236823793161949979343818850708544138466098487057975479218658735562348239153483685815881218675736911884057239931302578031126887938924819801842001908940426074380503932162627804042608401248386038727265098888213634175116007060822490303996186735548121167412287337278862617353032084944310697320929550151703346304838923007228857747081112270899902283173589802737457776342292892482160678009099438609029945587950620721636051412073067237942041698819334441628901860951287967779910628321237521237717540119708344558794894371460328883195020091767751688550429192662022177754384959874988389636987846559706946363403349245059834905480150986077432278026998285011510531952071051377502285675347326931603815636629287267899815430824525833298837648297067755109192679665147066787631422590382871925195517158895407414552637925053706552010872712438018939010325061519539701892165377423551077844668174256311997703884326423108378836333423102465276602850674044534754702203992073963202470945385878640145430316165615570929894560857221852590315765415646359739189257347424598018914005844580604067760896284985153072192603956269696868204943145388649058106575218726335175961933413870835091344396817497672460565635449640351282319586385241761120306439187363816154418500405533996815840233869658375541869801199420883611133603392799630584262281568187155371868071886658040584825590802292072976676479624316251051011818421009444875422032067102483447177273110154570782123240038756516110815640907385645676454231066938444218825416784165652598448246840941440332647496822170243565895854262142239348932624841981773390929393149538311419038657800588394848579159887180961510529915162512662151145361707174709636946509982600631726859823041391559383580593342197194277859103950416771333876747550940257592294593004565830927467059936597482332476356176682121530954207839375021449408429736535553685844718879424585018946593349065859094233760485155176162250311216292365306243864535015413449232760040277117276024454654037988300052779733818313505500181260659919601881760705703592424129016675781922204096440565814686997724829086263177926324546269559289630784369907651163053310030306175188810998659069573666202086171875022782548822722976332227436821090463315450931424780634264125121079492260491766999782148065413501964801859227815264913612327870177263091560067407524461084608990536181070261943816685819406490637004990097625195798334724028442439593581742449312760167039442513738411030973735393842477027489711207813261662282297186939403430483476994569889170902135991088172173459970814177406509683357851893329961181293211091611018594116689163792649399690468936075339095856492267608745876096998641116949981353391608063584196304325961539217395507118014127741814250677705099625263458887035012876950135807040099303435738977621073326746785890668241318485751047849274344381082744124359269739453295462998884033195638025079241623305482792556235754394766362822135948223057314472367498106212891888264011985749005334413158486583990669722634891859727296750519214459000475849394701753241530746806641378815797830800099897984976199600455948265832072040160764042062339568890105562798742518168889070703478351871219482449229951306938014292701534974241925230744134525086099607845352486514028509542858017708719060360603296924746729898229552081465949277617929906090880109052249039040207089444495702827741704778028887204932280752036290898357601889191104436849231966052644847339260692455138117442110384031977469042965274212053769658524994256122240762872200197595529584360072278324659004064368449572711604306413778301293688915400879432010807797758851100673689752355416653741039397484128136342870525095975228648530304300371781964102600304448181522225026398335262338420862979400575816624309409316794011343557495094680177125110312895230327753172319809078261485875349889533047667023045261597784082103532598808425260498271636507511472742354427970097046640141247537131377297778627230219614799194261066173718634144597587168715693496188591027783468052874460120311522463617759283173719420512506791419390325462807707272276144068520238346002325196088544436925018564817368191538629741880911471418106010432722467537381338961654341998808710599364802114398209348197898500749603550326093847808531582236014824344057673752305444281686107160379697027875857617791689428753534145786455369240457390941430291578325563017850234136457371573138209424401945287512394324309000854241685920319296599533080431082693246803215743125488867642555704839609868792676752131343021079297901322253717839580284302394711296280873431423985156338326476836596490953805058771194876247303735114359575206906346826707210325135131208518992449104886404400505811179358417316430501672477990958465612783355903481646288394452741672995761107096660148527513457617546969546678336316878309441753228452305890874728787393457582143408976423611627352154312705421925905856682237778910967579779041780732501453285994040118241796299627433093063242606172440717019680798569676493076874041024906565672384118945376663411381631005960315745574328736239241426162694818298375698851814288335515726573964792835365725688253542605206641067995708779501427691964411593198793162934465986317030267251895683838176950087926017110153291499082722728799082925328438285641388461687324753234039544530438529950301357359039757468787575714939682732898437708453467551800635462875070610964495718077818335415372763097335445599339423547751206633989733430974998136851544642100300019066340042621844093846484363148487896501924386496433351525770581122563695881983240834529004673834974757444647623749276961564018905047095020660377165254520457052131712530636720595036041476048098933009343251331703486718877720490076633032002951047984405915901249825113934636354744541419448815364484801791161982530173716118872602108014669775722149466196522686296446297253384883386071197487287174733961001547308711631583155184363703432770148163119945096072133406425127946247622869407254266933704619136461861748135637438650291235496576013717220934809320992664369124803429355144073904044157075697061401262809932836168633922350053958069811874933411910444937432602472540664221338837006224333398658255939544279524394173684402864168916194674963814365945656803300532612997789900156631411733519726542305803582639576698221444846371651603994377024071873944372565380761417736733751397940330523788152115941698086284512282567214868920030392558942337738096209635853133780623174409276263817222387749028875322528695658425434995648043707285229673589004228399607915640824653230297820898497168185253031622034022002122595150928892715116765251369406191701337444503573444121411921088780634916861561327405973179125042102135821644287599872533731628651699778994535591649504850096509715113185832461204249093344856733512788529495702008630855330791055472433060516186159152255467237253202578256201533486736870799048774775401352596862831605160590328384117824787858906601457274859089166547604657820443355984465495695552791156951126963181061368315550486791323276498540872277808719505066597778571095976020652877097529000078163417258700018705151154207980025378572324257655648744827938725089737590355975300018814990625308022635924352048828857413610688060675672197389168257920084252435194786637208581174648968905042886052805969144595930030205928309943750204309045262590223981785944339891304423222149187222104888637730227336045433665908249319952597237516182792184784441555657748147489413289425761637755525953900585604099698249606693176161388138195629269315883486389852310290831402784580949025006729948844519764449084413239646714457332685037171792464982080971734582045713213588635364295569378541669617373252771913562884076761379466168772745771131592203974983465943376585071465429611151723579628034148925822853620526145706955418291500423527050173890246900629383473486961066747828572875330403109941688159101483770300132886394644788083329531909028736239480303207170350440079501381824833534283310825931467523666615891688386772458787974161753511874140732952724919805601279998891199119527084003752847276950800002172040892752179607311639327537250281569020229951723620115983345705392186807348841023774894421534163174570324156733623186392414817665150341230312475894550114146448097008737313727983270971770810886331981250539403019679594863273562272220071427929710768648827221420359466957886245345637836924197170296802543630494553686678696513696323170391838368025702053065461800619894060294021206045770994031328114781178040334554662677515873091914264018127831850303371714948478068047397482501376793017108260147909202200852443103706143503456923369292642167396012478983764142534205836575815248562655522786222018932087931462236704404175567429923087256187985623359292881644686917963437768352198348016652445684338152097135770436377510767392408900212648923686702050389595549257115288686123766533650796338961698850738339077428967128462318078911006216240510405274035782670372264828163945045591553156440617119150006939727084853873265848657095079542928155887596008539828505779201210100371397360580010082420011950006033556909236877032171374847811466774548348204616069168866938660160323331052379978350341280470258989317090216806148487288461316066765853276904515964579726325327290732791549641569986410441256683502848512909386159600736644951973078734614432922893022820080385946583448283216478235846207768583558177285981806504160431040720022788513816970133315580446387824109394163692903583667235360537382186364135744509024009973629933864373417977762044781796630156113997331599210253930627880935082231090813672832575473527565962264028544946028201667875190183545052039321842820749609331311225851801283536714192885122539398468230085747019026128625878695667234526596288353072220664359763071154360732022973038295520648229253981365410600939722329564944888784650508869091395590043697300115787840464330877810256669301489302815261830264293151137381718843003260986243633557018718019281145508693291862235205866023604302107829404195995171575632050642584987329231054296796073641032642950201393364139731908280947877109233651593572571149127447108146219613646181125047733970318371738058437969211547201896656604524433431545051365436883372088262795491568977739024210150357411882276383253344685606409781429717940911934199429997666674964807162674297851782699516953178235483133839155764720065643945836397104323902740942866339620070625479816579112169152103498443347022066044405392089451606823477470000490923160285686873404296028742024610283961596069882936735767980374859547219533745253610045385207800465676867520141483382614388871171194108214717023121314700693097389707580530679959622627756996093574554585324915555308238905744127191989357015458142314341448503720361756324588777179529740533162840706974534251923711445344491421678113904445654291751151134650614106312908760168136273346022906514286603245036488801697715425125103783947570344996644702928894345435824785168877525474277561402086540304456351038739653669884550232639843950556529044581041933801012529392245445795045460722503175684310858704541373542401734844412383499337233235931584947675067112180560803723104733625882929860461065248976953684934832382146946339652100765161505630437607600500000869984584878861683190626923570855255970667929970592102580847986026836894843310566870020224954502146144989378370612350958057274435520883973388098156161801520898815781799813816461216083486273008569594951823336101232141072330440784756637725531728244022076181388042861698433753890153555366300417952134618561803542561316763125493759820640065022218971732258329652327000839403170398526123321616875123997545283887661656815377362101724399187163837784536207004612395690698988871524836709092121155244114521830746748480795194695044867892092245963136782029968221913099205215194946590502845942090029703353569412874149783423064465470434386857682610075680268529217185354844499772284284433449306847631340430736540577248279959556419565883847904734909788115967143104982687854942982774451195300627628636662323350802582437026793303838288952515925789288220766240220087608793205078972613834925524946140703034361760580590642303448344859316347776996898992736288264051369186789190399428728239453442942568274532734589949890790243886974771757389115197721660466070552185326221631318752258820723071062952811813511725252648214020634556740559269604839502609672289632152762806453283566489541660207884655399279142164646551966766165061530958271140157477868148402261422255536298039314466943305090212992955816873847679701308977850493472507430880030731172760108237164053648589955045082113859481280584551229900070335874267001663343543326740447788231987965970586750647958606591180039633862920334721416690721254896678161318049756786509087000327190986395377174381942741650941295169109639434613377060428084771693866745659161295196286924178860874233512641767779918970202473366272058161523187048317772592748609169323874000300922384511829910673348611826626356610424481418948226139188314754182755047295737700784568124177031342357827979197150531620380288561352545480519302705420332991005432135968830660972135062507937970499126960711407655486221833339690799694368007330706382609403329200831589231019275497296616921929600331894327396931756782269057556227227678345620665207331499447661953450683868446806179932078298272923070744207476561686169784251179495609478750777054974083156695198448498692170648700985368872909503208005376322857483066646667273906115425274019581821987068589919936658678740190428850141525972347498356419085833701366702556661204638581882306790711044893608315644315231377373930151697571080696467176677570785920554306071440942594952311772140315904370583638761970011764956063869936978459510311386948966977224064738523856004107349099844907722636880198250220586694012280036727899076055842070774486524037693877637623434776748661262071246320509799150400132950031430388989183241563298999667377368712723827713523740255699115359032118656372928623984660000774370133887936556540657955100193224795011056286932864784699944231499883399199047638705665518436695358682968161707931427161868879292645786625553314207485329981980313939478592871234086514240407081756732302064639299402683367810767751929145503327505019748517938177137648637940815496122278811435549990470692765797358803963169621234249768192806784009534672922200897117670113621215979755609337310780332333018133175016627251798251736808892555942495957701550736887181984189313176905497245579493194392114038153297364250043679925838193307868511265025935347629106390356606683868327846627839588921779669794517435568422393249000816059681417173624030740823448720958938643988134668491842141384628956596824583163619541286380757630906990969073783869042207462630026690117060518417481564238029597638080693800923246957487651275942536987017500864887875238631642017987922260495021090931780192715275301425577190994657922944729411270990854402177478544609558794988350169020864723761207166561259217888150178308366967802230896989016698732183386310661988824116355853379580426171079244350845440723399819886040328246108165176437823694876662160365523226469385382608027980857463098917582638242547238557271264643704815451678685574806118775671789667525073621629877001524849072458873479911519662736362439334899382009804702520738138981346552532463912487384483177546693771154488351787968575388937428747396611870931473314183427411407088634138295396403405016943374849803344968552753729851933087804718765665925203537616956823006117862497101713804287665476031043324547320766957369371402385930640493109833734050031187507831758645483792578413308310989048865265822029536208398522729929661220960453572111225145695802007419694293490293312993194335425529465295720073047885963985512082595593307979180492290808998574995547357859142163028483115292219318029093777390489916868585879381921624266005970930508774708498326051398814750750152937680190043517885446538934580196980969817734819134825707060121696209338824384765462022900137480700808756941228897262226914404970402831078186210642616275962559346520171226813592786171453018906887735591458572906988754660453216057585963293467146067729403042127605548906268947609737664062412683572259740975801531273179051756094974857165487130332969490532347014978007914780540957137882405830379449425239650116178193732141170799113179912136095687982964863108768650001765780177854265963712401903228466768707052480120212458879565176551406550845039264884621268222307463081991516714084332513535332356878551163221786347425606062935082586139485887122057957936875233098883297221510830099237566711149018742036084188758236343028703785065457896917792626808558691833196231786370792800054861149944864031901689002515926049701857994780745564697003996502878897532169770692248009215136430932359313530213387565833162882629402916588335114293875022697882131687136548317176033739443565213701721754248935940993744545290156587369259950018423608655524821051186755421888318715941338566085316824475148528576573986103151049553303641797148758770019976792657979701725379116256351835177696294832852814384826555595383098899062889383543778651854024562029750044716593508792517369233772023290756917678595395926916991821821933268361332112011771824053970131207280457223647956457696522600030094679210354923886202666795932794504564955648017477405098421095966067348806217594349920713909056930153176723065492761291699672141718915409059324611246556097843941877388665056371729056024217618858152665523556446726182223948904243155383499896182316816615352585024469661674362325536767325104005767904146196194694156082974623095002702559278008696774609648625859422568911023078441118644995869540421742768713142536992004468839537507248608437393868079792167160575878935368482881200166288952744970420822962182850392203051810238460783998884829679354481969967913957192301130438624106267801682266577343601482354982081132459896954760333209270834887985627100620225758098157707979788309711971170536412316984405966225179080960170196328844115568677693312255293772119246415465867417352703378850861886390173916463551011572991982740656822475783762178734338141064639911627857567594586200543133438413023398352832011098902453586431961376756128754387044455555672776317581617098456697255922264293920274296483897611622591257734324619478667313282298159392981414869681982038041330757035579211156426712760139729589112804939836733222556335468421148925216682943637978694349453351249070335866461765551800699117439915276704662694365476135925924620709732311149353112089537673480517243169133430000118024084518726839061342056553626674962964360842549270665006298423929295281128845626515266105554032413188114592080053265990911347208097810968147117054266907070146589633047839659451565474972795861519890615806925905981843449085761688863146444629392871669700826084434596157116874326225105581212499410783330559198799935392791608013493191897832316533646453803416123492653797515162083947933700646614888565453126711212681813820036319518786788736168770166095385114180362743775599425195170550004949890675177404971655995047261186481888911016624069667101247166445507928554377518032888385071006029539072041127571245159095189963325956802215027012636519632569311156758102872606021403014897663564669985273480411544587498926179232031942655908067035132071431859665226964530248498208167643459693789095227835349598041148122770018800826208685990639656178406457354447056266163862963937242317106948220629960134989024732188781937788204241311196480426607074732479958802166249474731199579313738982058710933984795422260642182091759240208287360765518495955115582462882030496392188103092087509522688116581846295681840333872408152371119506794921233019228038481944398670239387185158461059309481698178639708117122243662430635138230663881484663525833560889722904057805227206236930852617571323671920829919581658060526423810045528372196474782777103015595829060133563545043391557070676364150131652461143879717377352224611216651674312851084168655685550861089634219429067732194495485830976455557020787611779537592624727970931137126969207043854804323092879036617810128111339279087068132462606663258457493300896343620425007096598229847349987900737500297821563845472866501131348766717515168980779026549384277050442584152314741730822236793182755586985006196014133308780769461709139707833541143253664011209253892455934506388443211894111593025692035786912202203759711353717139444247116380241445425476144539480182471877047585672805908363949710023289929776051268268061879334427895629898299505399849745061781268142594299960843111784642347090984296938153778199366226549863530600937541161676399336498613932581695758824225201286714700288207889126269794416466335484145988712492040126278900330949359143465948798939738593181280205961417574526326879487965368043628547813572685959529758195166612781120828420053365075431555455508518566249490692626222051924483085558186251217728987555498306713879444911139993342990959459915539086894669514287559125359637695142545417508028273037889638881393904950956924418943421628446926693162347399536386680030494340124370598181432451384121120077802333333318088609119160586889855624501531784494319893402684891528641754134953682537594780264307551508422800653587768623093062795477754025691653774206122270525425312446939941378001392580732271649486840582602540098020422821131667623004251365597923019668381309434505711143948417428860420258777490283807796149918604998812116717809651824511324586799901888516701453916785668079491437472802078244938851823265823434546193685640336940436088032936242368420135674365396382052045622055505281368332816696049430646140646828065967524033937581647517260031369282250270764863579321655557198547444282217294414261675757107889399549953530331208855906322953232121805277007870730227554905735882857684893009312766968386331811106155364805898598901915918752398520655166778982852600971918647587019208946421437560835860199546645116855152069045139295256828221243250050696670649513907018838976207065097165954571204479274948775006018810024131614510869808639828227454903568411991280815546039734897451637877733653339191989956913424862732917129005596847451936880038481805289785090109651953126919151822947176606009072841021504075813448503895461431791329393416963287809593145729488065588641198235673284259599474861393733681404248313055096689911274731521749333091768099652008817780325107036670357148180779387255581142247239485325102020387109940987001941769587170013742555271856242935493181802415976693321336231545226205094592403852948462215099939903496674480974380352348643197739895061015678882049046657901128417118140067328291292316022473923376778317005967808622603279008815995555162914586001089359381544574581310245796407299272181569699867582779795016062293941420966840175786910870838631355478879700615833310637706754789913439532282786859619171697689479119075178422713473140975224809110194359393942998230692995910278159312618452878728584127427830087950977292577586327013265401836580078315302557059095270364392992854199652272860470202074385052005961295295772068140834369358666807831607463906084482602934866622663532339412074911786232266788827858145680041215273358635173194873222019462441450127120409513748894683951867982568027522209061996510607485652585776395416533552853604965353963590378858517081669823446203577579279196599329413334242908688058170801550252517216148911912945174899771992353514055989360676720767958783141330452562001213883127061796684275460361061263594131066198441712550817821099795949336567754582317588396602422632734231262607180817375065835129631381430118026257598084436169017850774610613388084243544694185099196223294127966430588217365092695954258470178700231899792241632590702738082361562813738484084239838006880902580496259022455172850674411534506062168288251403401970083805819635505956541437770983792636650971649816551940740720260787721040241179831889985152184894942567683530629887935591888577248584395622509420656992443134028459344433585699831468580930570609188705840615917949191289032065639984784251619307652048428797746826492969238650736973793227611115372455617402500112839636550003857886209676968094737355109793861088635391675787879493459399419310873821168558127169443655940122918010889963196442022337920957521998115261038418212619002772522220040084820856560522917710196335143051353728552765988271446661738887550840688735088120270381834946398334866324315080037181861066780001731966651674213191169079558108211773385163726846266332086581345479280764860883919184124167490723557068978524298830881671189684187200334979193938200968370482606462155664584942797150206591243723809744847772244161830018246486101501364900071531271508459897769625289745775478440527452558999507847600219626530829016648558705043850756282112989614230900197856974754628135554860911759678433295717577638756839454303310905039640395548272312191741378042623556408303292095773937617077966416888828353827328200465007165429767307995421661901211799242106877089131362858498205655413142144288298463555406563088672875786860060807954923136556933656975922983372557765795515137096517259236434402358224722507875392857546284876856184476657688620720399884709805632494161756865726473151711940382743855692545350716133017948011579258846899037631797446218827560892620661655504061634071204440732172540709378217986220989232435561520772077305437866741302174544499187031484754031378456966627940271975809486382887358804531852927592326728842977958303924443447385966571107456355934713262365812316640196399846642539089686866036740242532663864563992200635882810980973047980615349918096334818085790560638991874880762159531107587114706244934911112394933139258858037543549705758880056839955388834355594945996417661907437620025874860734154834027119680664391093656184274946157011501774780253310059037200945041090845387653043580728797019884825719110808252110564481266339467828243825555890041715615456781872477043485464684593489740387152004677611509154830633549290050391655884258668267475512856949495279859690830734316853449712675460911289584428417941039693250700831691689387690367241650749542328926971372506843875619159526809653009701850115788575939782009760595766842034276972921434560334477349414511343392654754344258645657249175038680413207522242378222515518732173762468666047852993836458974135118184891344290042459959864871954209775882046674320780983916473608063389378784084004308081585745600201905458467785727633139012523718002820875347242753238684885416214422867406023293483159013893096558555107493420390943239263700902437193815197112453454161067313039802056394618809895761390963676935645978619934218213084701541000043628711683603264397269635572063993370742439599334074304024918935922313771972173474904909024480375303873754317802603252837900517122908000461360215772458412699292792356617946394549435218660263302069492789241571076789292532029466792220704244041808307487124645463502554462660397980128983216462610993153863056380734485586628055266294022534421303197931544890014471092543788692907968386987376901073228969761617959571441525168500577162444688743471660709245611050770946819248591297699314324876848038434065415335859006587446234541618676884869423992266226953417293388921041244073889128397664143652543644575729091336495194980478295085791010470431385056645781134822719960311090143555997001851900822998914534453267512271339826302405259310188158055746565526236253405912731598545176321756264871291257034905271868218245762809401726291771081505379090659791439707495646638088879846108519647853307860724595824798424160009995171746682712829450069929896330970062226711810086213352356835736863132855493574202946172750784601878695222977545153039880847482773000290197433703974588667112349621889764305617091491682578318152330481074842118301656711858776044617292860537470976249910288747656006890800145818258566858043961743112011844284308898764719295308913918271524719857127325879292499459923524388768471269108015881868650959697072699030607145598302866812560085048762948129438511693741116282335567323048338719005608339958906253141357898244408643118205255528561963328910420053346514866615915641230820618706927178092743296329944565570848720425402725622724662390641001023051279409079624987018393339126894143085380686279320521313300787169287808218225287546370021702086055131241437720995393903267167707311774915411583590197632096580948207331096570472916062801894651714452803166303024341602973329527828084076847612020473924742644732004899384413476996781225253788539209197010212612622217522152756241473084153290002400421602073566815448359135072186364941669124332276312967085816435645028963523226132675382690086833612224186206421675062556661078330459659463794609668679211251054025096853422062280617392495259791308002650690480398782202949591633058989120770665164897593405336402226597944334263469181597655939609217992464159623480552604847160145558735444832227349250426428263277409193833547368586793340571430237095546987704306460267031193725883845018483197054365954824306981458082646443489057884665613382961242253622832772255826533449332692654787658406386940441000805432536058050214183612716314984675390863804270740171783642397614682914514654136368438959499803309434232709860409593093353252891005391930428588299439646922682637637162147031633237613119047239581081289964467365712093612120700856759026413482298060268615810304461658335106423808779955127639102586083126377779818374305014465491824575010657602987700660523824424493374861659704161819415686655159854176477692842209009974670345268776919419265488509012003579943044354522015426524513064292633096230366607136026282279524204400792090383176094542761859740808334299243100113834512172999850484476753284553416998738975718067978460918890197868145941206779334342692719978498932469836526762742282273151953422026423986277794393785445186978665270823985073463322950038680539917571548426855304117768195076920476280964332657227970163670942550436586403530854021810823853654239592980612008577535646624853351265812225632688248345887442702309229920929037153384446141280037103052479787041888919903538726597551538100047504060564116726281809995767432151656159072615934309875617431118972941221519607798649781808780226193999247601546059171228917320237963045705513908314615072725615436125389978639713421115543872242602654899262486265020994240091619645464674666782237798618499047915499939997816875575334471243176933500435742589061570841280816985125995859129653945099147716407557216177994213084012823944868326076190114312006626927671015316157185336569337704991336165503802858425800288298421621776870827112286266495481938778765456071697486702851531059319576871314544881488102564576227200090994941589222626797008437195145856481366864464477613272667975772194010204857850290206331904335492712358908651035206057706435146909393707181002564382213439091012044711304300740567571422720759220033257299116924289996772909113204496349475331703273764956579959602796915131066367521654559027339304492260126692300725283486001362698566049746277468869419192648018254424191752005740526575891342712672748734239478060528180040906171742433887217161542397605666594581182307971209843945321148969253514561878676129650485447683437211134226294240262264003604038922942560146769509942259723080296636124139787555828446614017442887679844567853849412548859297296481912600343378730213098527679615690947849575976536286072819583587671454969567027102594926141188371106719303015921163901559920949712301338760168794902886704245140678496616605115948049487009507648572019975802292717092436092154805840098540516127444065514824056617428456798524037052414188317628614021874070400895809034565788342415071161889477178449833930297254426365645826721662341946309761488744124825109389964769956447065884207969699108768111111051684933134069392292106184970518169288609144122146226644759451332427986314261543576453156883777967779286238254603771769668831105631081824517708508339396682793021817964072951690074687620854462842324699062803899766789390759913261024947150713729952296765783061405605436236862582429198796798298194843345586867852999510966664644208917232513873053488660405758772828521203942310360514693470417284059483216214412049432673875465589165258219976507853142703084746371451109842362184381111527058716265749126222052537992281859990641005188484498841917572661640458465542386424096988052019255043628338102095302082138857921882313142162855118679548332186783453699806087170629056792324456481754942372201903384643013412169408137374157623973080547969943653922138829916995674500890541653543310202851929396823807832947612786811829954886949538858232968926408551516079507669463467296452150943798105126404312160256231494287889304585072818277585391626471136192799193840216318417251118304050740712788696736993868714824450949686632036007046139210616896177249063668696955847001529636727018744421044247408632008266279261346788734646549761037877953613932591077026245609650536249223760933850429411076212967503723379722068749211267926363152358684605454376024209974200516506804779091913936602516231611183298347922103810053702265020274370721840853385399494490934430571108316081633179439238185753232442028889110238164656898031452013459467463597057688860910994210443633468794811276459567648889485380233564031441154746272951756055043627632958032826249626518236470944203327853879650666458511446892389008801335165913161603660625724959147476380637947026508587329973510095574131524194249933815556438988127871283728434571142943406591488438020199531071845531127807167933910600697297340034434828615035923779024133312170864431705817735311858647274745057956447237934257936924462279948016157197700814084806281331168496948554312296962314111908404233569522474741433094097885554434645723521619913658512658790101798814053470120134448323978694170833747153887983632154295996441785623186363679430748868596828879414140380318994578520653859486783642805236364665446708274233275078680398981323823382804512985716790265156770675558193858041977026551808313249261101059433431416408496651267239058527830775888793991680567721140545739805752613862844670207978020366842118255857978828926402698190614522076829217970903144331684943927287124244391650585214589314276785868086600487394715742396475786887713365536958795866971560734209715099848287151699109716039058030625925992875548709276411129881495409311535413135939633516391365169046190407553106474135640530866079755374079096987018368701190558665813778876616771611332494148346752749560138328984852486820564099736811302746955759388761424236963168853057821413590124571232364090176728331248721695615391272829219745805227339146969560118075174678882221184245497227071347402144302303645428329591886767629737846952004103502520956544243110533897736117839752134354810127051833277675445049576397496221514871326071303570257608640820231643503937011693537777672687018661757562081667096733443072238364290680904596424954229383512843264267262472854460237776927368009853831892782225000626082904229927072814905383440858199498717359518454841946290972979490298173470899547739681152256690491301797986484309057548819792588789046446427212886460544699848040215558138740260591624877933222650116176339582443871879979242948786342556681383740129947179034588406032713529274706309065829504393989767064285223876023236988620485840233808662775775089027837837295868879177306428049533083515749870927026155238815690165655059878865934326969067487203158709798153815007766342939939345221735901587282137447026034056034777269827801738277513494200497764658766952743770774882993568516950632244173218846251820039878562174716119222719635933691921805616275233272203619259085303599430910603732386249142877446349711526627530619556542906883677541590178502097408697691580226576923928334824029890981823675998907591815264610706119477052903836106391283099730585571745533661815331469891193288960270972751952045518972907727336598548512928698198865639524377986739318172501575736571720680972212051461153111227024181979474678452411794582320411951809618339119064996026946112208528451523721328062698292315207501336201263731035719794360431606314282876793158714930844999923885673307451542982491624945478051953417658731975841956997838042697647102577175190891714734564318682314921121870489842894187360878701391526250978861785371700747328233630251692318491867208913364259492009503100164143991872029422030927677190812157558612783944705762215282260047993922389793528968806508403668637234417757618321162632869389412582711291280237029069360201556276114408178631561643712797436417890107542683034659964931279483072304059754373548632550931279682435830317488697068565309406385045381416971417725177206678870399818966231518195018838837820597770033394478923308304862561760062861481766000309566333224257345807575659399775601348997114608451734241726945140520633307575257561625039413643635967684755760951069028746782487865525868913099085056703272517556881590753490770043455210917278069944192068334799423098888466957794789382903926618990607061393903164099137844337344165591792875730250528832956643491449808404715129038914585116303867615303176988156061343859764452984449456098995241112003557942157594623786280897583218108528536393224346799972565343792880169842159282168440366477991759687727943114632545809548854178112210106699404022062025536609368454269482055138180927988480866287283072953530414497583197828624409526396957024482726705363806922977605329805892257174056605773579401632145695313127487819885122113092261897097619876099540497607411338342512093651398624422600898674299650084469110686314309380306314218330821548024169695050193673786190895023978856911218302640234541721712619850074751516183105152230850389729926441151714028067738856005169425704075925135370392724837837468961400713002488889210728113711096457009078939618722715132390722084605978888247048157116732185980651655694961371648113296811576067317587242150344925374747436901492512189803297056076723447965422543005506106016284285721353388431750291551888863557008152418262338045777594023984991675819652314999840362465311011977747248930123890058127318634065718126375566319844472964928538671571025217054857573212157672464525380914670764175627482428825189242110151537498873484565902964754361107422372361120499062234944331513323812069067160356382673568718929520690279303530425053878222668763300072971814644662628081506682029974417910983644469082537467865205576532057183799632733926187219821349356258018595409375422355604020531109465513391216267599892787934653626618564217841608386003699459712266114991902088926615046790331648983576711850989590181015330100263759310753513764108746892733361347764599083716761249084221722932667111886444332687424222382785990666981677108678890691928612580027476537447913837841341027781622848545256820869926091539404279204909539674388565365203006948521221775498922937332636507502845162584295514124114601269601732140315740361991273142457456169978395378776499884242050009416387971357342313313972802942592429915526386531740056221726470757340633412348031068945932640097002735228107769083563368562420258649543161170960105363042462406123621908597328789927288762110397225368272646414982127209336815558265938364277956481989752675746112997418198872065936887261489302961069289978591313921980583925816651128652060311709906260052573607883085097680309807103548194128366697860788371427116043426006669503561594727772242685874951978550609047040178060809101186156392306950233881572575972794866449883134816869393469433065729508026196652658217015804675471158422703468002729233475565678111921000362827858564974373959709556308531145409014339785905257563607244220338750020840925830691235712701973929529310496923344317615717259030582413393654696952084694246905607866110578534815182407167992838774865748667043429242155937688800281567840029309149853032500307015497241470370400987244241692051067717129181601577298852751363003219204827814834783015004246379688259394652132737007900959876433312938016913169658252589560336283943922793117189356676882517727904895629933208008378596457140797314267578168610674468022416168737472759241134870819992367755847756194703912757820989731770633438814231850014868711167985335302380193489049579110230427499295702699527605254457085819910481662252183957337157382070320672967722580025721480588853508953901159784149742274310643627872767796268556492494665101845973911768605953943560362455714648131067365661454654867350250626848769408736358160961957516943193670426592095242930952560572159258073670836472623619424393316136353042070219781490858873401347611916301048565520900948490424078828459339991651715860841521502270363597746764691435165361280835739629557588543193054573420409422841513006369446922229299017483078166079117561340914656485123294198250737282917268358826720922424222952808925195685140806907846968208499715683264453005510194745916821848691896965732389363402125482033633654484870244763845989693186779078781462787540157369906466407603188632845872813346966906905188851615222077666313887484905499493476256072985589308817606905643578278047350534909710039371849567356632557668831974482728118058188497708530554454018093057201253113965095305468396407939752401258303952246687618570257018440578432812925447668312126979419133053721596029861152406952220407343362704473248543335368733990581114516993309486993160618756307593770760271513438581036443842015472323509896739745233006489688611950294349621511125703803856220337801354999033184609472130005486043855412800514771288678910052140509764840076806980316234616974957574613211465096853787572912829156686033576291522848505933278296690877081503224178153276253313253975582727512869956585349230411363147846618213422319267324250395127277101468548906344276471991256584737084818085196088337333649234681690120181758858053293555489965140080745628354940565714325596169854359979453123703597711001604290520126454218479944595127224358042843460038796862099873616629648742228103409028013551827024687166515352832023317369498150120499785313734535247414157589808331156853083880963411168780793502191263973381623787635298950148296949348097677288456305739277581528978745113548155317089140913676578048931584374520501714065553034844548263426553772662862266885383494113061034275499594571983163325925322160034952656715732866367447590134881160037675155948102027094478164066031547523148251148042611690078438759723352633825340962869272823060051978292261525062484706486875686422450197943404011402841606186330630715719385081434278463605057245674242756674456313941474670397566924868030767125838143550430155202351520431242406112343540252414522432644687876690385293796312326011948603400157019076818030782855391428254180473535519215273590454632320559762006263326424444923425402723300461514561013291609312356588262831291724610718180895473392263255198021466852192978964714038912783457642022854166068676408033958007907226230348345330220608298809503985922430496899714016699408755812061101063233692399032744279262490923764654783394033080082802611069828659249214107817232555787239069566940620696637395682549272086972913014327426791347626616341101069877791255218914187233153873643735622332327272540172739811593084860259018648045317183650629499303194976061865718329986278095299299797273029364402455363525843693893528754417414216364351975755677580137661575308442140233420959362553423152102585795407365704621491906753653236375781659676579404496300287375979833123059215569018028729353675392287940438197481571168247161732063237310507829993912207297898497969221168493230741968557035973307282451982108897164630582621769519291362429703283362613130841395985649976009642519283882817965829917244942732294141583935694887072137666556202124771425698791207581015155485463569703148526904233081617468759505229457041038550276914990838568130563707700672303094784401969506607365735680854691935270173762720534893190564238175919624286908271544201455432402697480847202536664363060618837813091576477126033796244010675136364992491727408529658615696881172551342626106543826221248738031787505349982404883655295498894117911484256020336973189602978198652350272605709530270193350106783523179757123237371992241815606957236940977246524129852817058766716302040881615765020799941598291351841642692618667292438513974837636865843645973360290520881746593959365037054520586704140514675980858770439373238855874912002667664356323048560491033811459918625520243738165061650707734326416664796614334523186933022120213965037324642109541539446546148009260585739610356164708745673836929484051913567497359040686194077010970368814917521782546433491388445811524438821248051362620463415229693824848422472037477804892180736481361092782248555991152021055512643681416355854033109999853860942527718454543999392997050534151955000546050655794687417164972749854631872312187664509837041613349569030912790708254211753099055480655565253195990787461171758616116057200773960052806596449721207592274440402768184443664345765447784401988288001685184785592182784178464226649350350180759572857335601457406894536380694743563525930906073156737311911162787607245761224593576572214619578771219675009599759142034328725185193227156321884959708508912492363605914704864059464075776485690264481226417384933506938985811721145482305118172839191002308899662549615945318741232256348982034767159330226245178826846914885021260383771239008019064718694777961202144547185044173041675538836260404661255967480543131533234263368549800790689982303605759144880872386165164623710860709528729788049114449651822205386664192969280397169846149081312571996849546735290515487979712926920769272408598422852839343752192977863958250456001592415181498677330942642047058400606258318964679774387987721645203712970117143402759165338257874118333040976313668793790084016089292706768781394768683284902641498163341453143165773924746917938865422655982308669875919913635272359206914608824773782010430504748896927175406096907206535704095476067382492119106351818345512355110494258895879305380850522744930894508772710768518352059310571378648240744892874697834068707993754093582745747324914908253120388074040878496478880435745170111111135229556347353007187969265248945618817544474068684859398894262497748078253897992954045465292730532039038539849043509991439175673890857445033763331811820887910939619740245206865799783034796175663577789186347858953967695126636966363739650097930891924523160460061041744868738263521051460677775532201801704900612624428166879924825699467476993585000465688091507843416809143907099816391900293399190440324504661208951379832706331126260812788967784958895660427881079289167708681701606507225449700370827669066203519028456644367960004586776966533261524979536089800981794158250061368022935533923126699407903050521398029255396671438828613002875184038653365220502576269828970456155451500699887658234049836098423379185996174844506126860868457226493848881823151188859645055970109032958023553317700397033343870876749088346570252420812245533210297586159664915915155064140982708427536807829535401192799661502320318171758345099051827928382291087558012561504835489749863612516533061968644583841581406626460150583460846631925052714364750357395197994156257726430271869259978798708472492274731276109231867329070159648159481589634332298106129036095783501591814881932764252972186031036404503195972977293934718751668806494660434434464853017528848029950143298463259167505549982580238361615474236164808373144350230231523581676979177712827078813326255538473699934466006454180016551763365450598144831541977412621905593700978025700900891864506207447980390503761313244186548370251424197869060131999046239842191527612562603953207425281381593372412191062038719140940478263392067514374347646657966094929527468383631604537371985596428564355348457199888179748668660019147025306210690901850913630572952711897737682517013441074031160198985512839235134575763308667917201980389984156795317662880504894176712833921952394075956233983635052028932184091327882762551360378135739820708100409424803192241886775572037644098000294262214227858718829534496298234837581388639614852313172887295379769720462744861820028758282506161917566641477441293696086894919569247846320934939232647932937914960786097778946480557425465030198821448497657810648129114198794337609933530165489321219976227343304448290107437484764351609732066798409323680940082617669180382545096554406401475426303925233407121486642405866965118876903218278979617341934137477796297662962072880667248656552673245546751737001676746351002569169556670617046006686604847610500387737233442903883331346052782746976509428776927074570068713097442773161459944501120701464543960983571274307584763193805998360550569949824890774541278619397912033457344919420139177197465138271759765341970081504769153079815190867984140981369016170647422169436277898806180818236265442525897842383952914117033076137389548273282664418459175165823538288817859352384662658861933403910408647392165919488043715073805845273107951786836964639683990967035227736037897251106350185730773860479290044576429679643269878817229314597717418200060469949523051642939681454609062004162922230284010930102490848205380620136292540706152370341159212745753912491858278499017363116686349224896272770347457615243538883337867447057379238311395321263812669541492651914310440101748077013925815278994653897676770907353924731670428477359240213810818180216408946425016796732979137260883536243766496734152766683406384031249273643830320636999018021668635615869790934560230125058405640600775738005564501085141434634751210724581578908232719898823754114149038770407967114797162537233830994696201155548705841305485957469024778884188689580987197826650946837134252343526272212009057707687242403146842806022004087014850168511512071847079423208347725219274643313488048676184564524336691366717375145894520708302737305296863935788940834509950428890665581139889268877378435950763159574344626698990701329409079591242183986302106388724412041532906912033656950266684080777698629681434040685005210306950534577459396840207783805122138260413173395769700194585659067494313722427804841653559366622774042965694054074138387251697938548345856536443794947426523736015464781459744695591065366103215722620442050292834021714996053766061887063513319557825694077785792645427858371442818587480573541622064471401309845477525064711215053209767524832876471748932819302124156898030709108083915757351958008378694154067019153772230510081596294815272361425059272952144808461651511685803879009041556002737812762838937724595452902097159328403310111357053808927679110604426756526891427442847543564894117503161671937332103656340649938892930962266566520780286570909856135791795793856619601662199494308998403549037487872870395408874388756533672752275147608453636055482016687089727851764209476039617883723761445584617166718495918506349361524428105030203330125725440015468309113431944890912289897141791670705832071833140885330577352150890507825353261394258825040716544795361629042214416753583349948632903326817889038969429127748254457711243417962198527990744709404554055619226107090806462710899605991074990054973624793005373346956493571084502702261904178855679864138175164452992205504523633741599583850838070716044258894925790382051338867243346874160088423497181274974711350812114777958811205043060787749761896897613468142138979015048356457241762292288655699638860623379730854328308921162783496445463387791085892118568824018471672387845791593472878893188134553605827713532612375851121120154523480343487124351243643592789472861714185634305613218871689462231833630555100350014051162708788788818608224902004501441672893283118229882444142423417109357373595382453763441669499963355870429289085749983463707077698653941107512842604036713549075365998307425867284196343505450771283756148352912532270915486909906242944060407711471480489707130634623220210203067106977640561955671782108376774311723003734486286006917327508172526691719789422453006530597115660127090775482123144362714820145736639235813809184845128254493045483352139695005990359131428101445835142904662979430806948686187086594995797489763573735672196716982621783411378808125313490321201654466385582537218693593860195520734100312926706968766797270114308643200732447323539863868960351068652159862152962865805618404969123625240522243228879032242840825366814398332669503865236305740278824324647475534177766343753064004208594427281044779682189594090605133338951257326419423648531478189364225715934572418287256989087426969822936664166559354090052806826465806326463305687985571763417110824418645949602230357970210861452317313748443134180440413106863697646849011577504487547650151439869325831896461571840532156672952673010506278724918629604826964430076627216743665586841220523344565170594872377383743975212426692729486678571013318000063959421040760849179174507913609512735887358290901213894411460439981368555201196433481282013412399565245185937587199579762670143479240568482777288285831789626186683646313108277788338762985411522929041052388976353696117648982733022544545186920537786031703405876353412014695422147376758502192773862271097508336893882100525073746168781248912662870465519601282431715867356706337419983759270951618606914981275628697927797197719129952263387495365953749352739195868634443485039134292674379304271113669019776477794880244990357146232070793617835103838140428690836326133243661312813565158125359498999283036254666877198074784897352858996892621811982909117732050507198187418944476987149354224275234937345849980771621872289857477691876410298040306251791331119214603234209119927509426990205555239590481489097315907306922935707074627812495711917667474967322007652097801002505297992322714581771960664500123169033709675504142102767744581202772096904383332011245059962033476751396950909747850219759781521073659950788229896794733277586470884447554590706673539390981947061762444519883441835298754153204482358517040986949207447684033772222304647657782121177151886444356377403883099603368052971565929683150518035822862576014164234392807097879835330720570137551538586079228497897050043175399927614616337199463628528707289076288482062444536462829806056809256253997263435829104179414833354237554396393004436136383462198628230258512980587135051435537487746897166181652350956456151153944409872123953863665332871218268176879864710135846717536184510087143390938900125480630703337739136762843277452099921740540518124870698480391255489987993624749746246526809251094808172071090385186881312712403086258457538379201102409705265612575829113666888250262569264800115496133552528676422470041742317948387930706114782057610137407611043381995834853470096364631799872506574397675216173526582152632227755337654057701766996734804784905256148268636604679379326873083924812982524178299755086702272950702121310830023344593122423449536962876451159636150741988692743107887871689546178847879339161149263912499021817087556637678975462648950172725741262392023356567350320764371562548623832030354623420878213180617478552995089241706219968254358391347831900197886699557783517550641747335658768522505411811848191562562520907269406407506435037998705839427478720635052711049864265404321328341901710054979778254461488842741758795886307315263205908460420699298559297598806021093862561119179468625243958063625595117631462295843403029249214723635199063164427211320788442416381777282259608333666339643490041332072004028725214455142491748229964895291024074273838818893417480949416603350808711647746689914923173643409627620298055220822679935723397521834949596362914635545296727311107867424034528895612257183744222301331809661765955320752283502261374999845979053728458655668330324232892181817719263406634297052098884822206129788204702186779255197311409650725717950734695646105722285935600084371139316179925252472868867710425678173012042542075440984455746612289494030510468142527721001573401869586181813432051068102868041986410267722175084240284052400521483507431647168312065501358268676553835379105981291973357841130194224501112544086975650075646328790683197433521102809069651459250444563464378264939854364485474557699687760604358161398023470785804846281294535680925507076331223166506238603489358306832229199167698753139606171526899943575826278382115819121901359561512363694205843748739401992920326403992859343412868934637185632625104243700630776546314756526981325512283646975359513647533596517433849563191587246558796112382742755384408538406153693964460777411959289411785056230744209413349940383459853545647551937643403390397037524199060888183608999980494731250977273729807837363758120147906219715471846621537172407097816504307751760209459357007466824196783410458707061575413017920639982274375187658592460830269189117711363073269655963909416585150540448878030381972656169115887959333471303342100162715224007716420236655840422913201103872075667910752842982185431954817558120409279902259140425809116244298496057385480143933986262649892010066268071043918803880890879300866884407035357221113608185507787865038527287153140832070688231872726315919712708649761092081925329505657202320655191645886355655630336209944774147691877218332392550046509263982491968610501696269542588393699779305388239421971318496276112760891902396854138376854552435344945726120244323700023610870273393041822994375097425083203703571053542908370433110601108007489843637362909188547726046122652281440136900723139359162639880095169473203878679848343393537652648761513049288365461127878718998279733752288823248651723597036137869472166405546008854273986624309619173973892454762070445960255844308367951563924267388138596643522105211035503073505448869068487186932476606672772320586027395657189963254956727135960823000558787230413307452148127451893969531703880265335873833489217010837255934272933239727735924239379324823697499785897756754452472513948401850124131155368610561553489996903359972401312308350343579558400252799551502906429275156761475542656532811582681814678082037191801670780768171580247546725041151013103354476740567740148546793575212789015627168904777480869420914270045159650140743612141671039917095967416399523898500401712241181060436384571099809606235084531311123698631522166689253317496333659115077204587135291168649129597560859770709063583125818175028474182253157763679414450276284977618935314596932069810386615580219986720571374547086429197092687313659324656250934137090847915572218701317376199020652132670338928224153898842790497341441278362312768444708353103236099409261720582573956812724527987842820894701893090255198529071430786667548840150118438390783538619216601897549248416447832773207988742111721301396185984965504336802771707275267789530273954224471520714561937446929871450308613121204131782940103485786785112004710262248506545851876243269325436934683487404489540950140570129958776460339420860166860682634305176451375939167679740594295879169937138018439595282922573869378451486960116693482104051762520686439831742145001767676133819077482071286567334771497185707158013523863196848939807385804239427537232349553669416234103604508613947134436920619235179760505642152440955032253372916858491698734473963704415983342744661852712192500966861325639619718577207136397226008235773554740139827165385851483668807635810426602239474493003477829229630859481475414693703029956141599841250796427950264148174517059090561334889041283034893326160408899624050843803893346232113551251533360534110956865430800538373566065803260950468146335385851410556704989510164476548492587284195052014523678399484133206935062996920893030374266939149952360789049545626676098595202526971174271623957690670051135279059084432682959336930429671651323011220527794418317591053754790605076308499703050898261523434239476618628282030870662187559722282223916781427706601936858885276741132897909091079494923128452273671624103306091107434137447221150648687447520467721708941669590532685367971388817632358572764988152757784771421009786130266893089744820548462173021400451564245630912567210530114017646958599907450713748946176744067533414005771747767360754463372878226522879932375307966018779748645384433798479026913407496591999697746636079883191218026454117409817701555269688562883236103206647230932924696595669215207220097729063087303720015901259381834064401429746683337586620442731787616850566446068901407078021466070921521664947744619216746374577371156744353644581366201633274066048225437539916556709596089836234358598525060077066045890091060805937753883084242359751357837938329146671819756538167618008810645086527135133934926416608307621315111403294035435115599844001075905379553479751044465368064693507555800612013517786976493911568038265886774216694468376560738083652286048656096194939934432930170466567755199786462971479416733755021158357603387312362704691228891166050875172605217763370110120255545294100369189442535132725832457188015844767436891760804738113286760579895206360244771548151289416232278584061325763196485778083355513017403498725202258782822117661711555322037471256100186042811754503918086087019335118795063047167948749632545147468263369253363923369314696984807013579816733719967924883546094279361532718534007565820191116512863162930670672688944819524669980957264425742016542305352517725979312407012646970438548226583318365671989920294167182205838857413534439457897564553429944212552536258410176292014829869900501678847617196354911657555137901591613716583491853738402158981169701731252514397188783645264064579667547740074514488421680335082946185015446167299728640807973636644294710565211128284739754912699927097718006326523092939179923302694139126085959025813197219152248236895084212879807193654067928176560960914545709640708906395029399903667214777644345454123335503861395391266379811996611894070521604242953852998163163091319734368520318153680977601032692335785889164379525879255703627153196195235483891529383447175333583029951749310450258124155433643222749750750906509061617519125777394768560793009462051784681748484606505948063391070016429536077765908993601096727104996833941253856015846172374644286980520401258469669466824617620438142160452418443300934553295353032200684639529639845737501317541363099650857959886137357439509746546134842084980961730945296492748023847145482640039423196297904091703550420336457088536878440374611471899168716371571905488708034107064942728773404236628647304791036583759302910592640162750704023041464715675504514797629523744882042309294422083566718324979370693291790489183802852995604220292652567638785539771673471320910935308788517118360388754701920452416416217344762446042556591413532361348269727744855760662253134503692503502943751392225374412102542146982633545844305677004445889545084791431932293164572280646246204588103442775670262214049798020877191047958217486635368814028151981024215647115956153109501706132072837845277507095426969240453258842484178964653126890382487167447528431795501969640413871725822686872173501854503222162911344939490772643871451168828302892365946831641814478756032011150209090029493735759951754521555480883983233374685508258072046407652941145423343079282235386787015237055859242885091422527298762071757412545924170762910103677491420688464003283303595520491420872015670728944986042559102011013242714680414848396923606963378853412186485355125333638375853151381434295474813397223815954616030481403106126369992266699219682964658725461180601860393395765696735466373186297434318187829296414646434102304056594743363232022461931069485459135072489294952833885443866825976608668338478071293837899847090245456632721958763840056748472375687741689407438937933109775773341684634954341920653964797006783634706176899404497256138527439307024315801266386708090239927251947139286117853883875772885044388769407706719915026843732617968853493636276222216622412886119215023280962675578825090389950418189727378355668479715051056326576828891718789356299304748078144928034653720305899664659697848292500456509889736038647431074554793754650101019846932882769407843191377741816316252950102738275447370482583561114726433455009223025845629295198092256862146812572531789211974162644573943257778563592236873979815049798383852003639985449980325586965092079004688310888858064339227463398044569985526774258071993572382644656706339628528428254170960480226838671183342317766185292112672444791909714179560637718717844829957377524810707574343434711084723663788545253726106706126584445016979038227971954523779638717392210419896087176916427166166301069045685607016869468122318356840375334282642918907507252799089873846002368543727190859413143849593821565765346036571923540507796449823079191267205887810708562642916915524500138780336635317459889293625372670278911502703820232804982852085739501716471117479993527127564798385232031492359281844539900041919473157907142793498942445965695754384785774294965871510050989551602892135814717246046049953873581908424584342002515404236629675125278700420164637870014330895669889575543179114558340240766466903574454348001832271984065318253358855096330231436770477971220168560173184871541590028168061807743827768749532686415115656939809648988657045833511038254434437273168231513713437056105764528711831299049418481264874499899024372167254353470609302015960838613150936935187635564258891590344201079129351188968426399969499527679616164166087986256193329328725889250440949756848979549246545010107919576485176766022803005598338472052838876674700272523017003385170989978370242420482297952910019104845509205953344320100835474119508185463795305477738888218706062205101231667786109199116778226921831745350510117494817790620853241970423765300942432979923446221297506330461923775590114169087798153714740716846353855744524253057932921337937987818916711289042295833862135159238396301950216123340991789089198814947482379501219746244074594371355263100536753880445495811519618164281985717293802131885345996262279596845341443897777376214880769683756513513330941469079930511306162885226767693020127159444272804812876599445554657277845229461355522691729874712445834356973364216687167353178761798121851522329484314897585903522757856273839253365243321431157325774254477018943950936826410288090394355672774921159194393854731373296973196812420535478577000743816723703738581446485208552560084726702151822335323907930218919537838934181879410055741537330327399047035079586325795946773067975145276912155393310452913595044826333870617445285511076817712298075025984471225346431012937623960178589641153542453877240656416385023529026375319563612868142566723806389303581261317829125392987805440719619072278591184357981021867921331610112007747896941795020147457670553667898688304010841726571897841506673902497952602922355459894515521191209695152909517294176390533864143984751003857295105343696366372695213818497366213952121788589256989492964631772419660251473434806429357811522239267229201832186941062613165895251335736507348149734061855257700635642772341198232708272430358303718979804770315354381430934628096412848052910863971403564958142753086451869213719334250878903191822633547196566058360134785209974475344033005404248677784350006874428820231256061267848458139252917700271984254784207315126668511496537304881748912477791182683824042374302048742024562305373023751647947646601812444271557719539105269631483204339188807363760312744067762062883877914856603502948353381386052551472163315883968285696396179684515179999222264581000968088743201878278447560568778174060010662179730810328598428151258752623163149642596355086557862321166529007550972821147736587425689461036555876670654480089392064830328944987814587885687261246014216064475489529450575760503760385486745792128024126578798165310623799752664559013382752816440434920127728190956124247283746358470571645289005016633043096856025579895236323500858899682085951381850917236294987307992585621073087303786813859377920596719808740644785841231457693077009818082847094875178289335336951201344530303079630534783907019749513520995515191848845369133823000085498988527138965842761763388439737740448121012738746482246284136201513938606027991014983124255616705413604755334943363355036227794168266760735040939988577164825252029747796475818980366247344318087318386831688889454961396959137679242460559602422453314422062611911939119820215319760703046366575561109439055896035595804942264728237039790093368029615305732867487896828738756843477573049031045060226635067757142540680015604052604247909408850416537335724312755849140345764355933253228724153328771849210571582961008896512816765694681014252067807245429673281878568498910392468968491471771419046310558459423768195673976478779618573176425159931763877147257976228343616601385847544053153017372353775692962868749361396339653970038708581869465104340947977048477374791439759317664336882857299233609476803835783955099627121850530775023676967790460403465131476796113671617600746102873784720899203110785687446488210147449944045608946991323579584541319061546739204880232744267336621813951299094061836965628199366149458612824632142053783396688133616193295909243317150208160371518739522273068111085176514709460558059666198645490684508538619766584963238244643024453451911095932952561316676759042031715116764806763668558289507517857248918727422027600157571578561107954145289601446134471350275000520532708368982057917874522124900612570335388188535753626511095897352702137635570333268921334209824016410536504165674958748450616447617455584209782682268981260772456459676608076064773415400997073140572200349203264572508683546069954089583270796479740742370059568401923585892332386747193679450127829578145789007157760991805866190702706295755461261708501804170543954198457036620229706368587169145114764990353115828176517168028952377710360931610304548641639159114051508222930110961801868113643823658866384961504720702478847670077852284886070354911611860772953364556969798021803759258238275091833517030548977060389051161867132109194362205668471371703537350154013126528162773503793709613195036203954622991824824851006106148772651872916542730250428215421690177149812497446660116211503468350034205448223729816695220365679639571928285449082455358925225253650188334290373454745218176558039865651696485391577966869968194189388557067034788518199763827630014015303977212556628150406208479752446970194776612999053662665103610212577393252296551087096360791949785722824320110119251469154451903081501895302496058244279750009020185156475972358439352091667713677891659520508640112822711932887429525103687639498087692754848151118044370759212371448763164880558224421607952453881119504020973349309797043865329430747126308824814883477722997219784419567804838389495324778321932217853073225084899647341771223645552787622654309240533742623382383100080491868670965126566252333061583449730892455028143923163773164701811247339291679664550922303835832318877513795185957311711438072079211521038542674086015474408762439532720065781393169918425969598201555910561492177162086699044002983092327819111680000975280153109671692205172144986099164707856352277204307978915948419686633418964046388427647931210728536131478260372626285394239111162722617085226878293612728039910964480630394712438915391321577205710273778847350290757415690685969322025926889607093147445166420377906141984851003702074095842346404053471588490826654236234452770239711668170242030462850414561934092694754134599098948829890434828104499249213071750116650979138785837676182043989403163135827025517913700834808076753029166312647639909439823074261361143625209018421189381078449323754339164310999537399880918101443917512513368049091189022149939376068280847341831435990202974553909538599684879948064694123191042585250971573474615135087985842102673990093647054600453753372215257227834617261198473780952833925201368322272435992329675733363072028729521032635476787200489736033785549542166526116079814931061360167157047149440584277917239950573438654450761108820212755144621951225761102114833962834411610809670469505791756878161984765457459837387390884187043908176020777403491153553354800066625993670530941723173832226931824976896831127067726993788088349903445284160499301335836091846279655023795112687445969341826545865641765941160816289079440737562420117452777817759342522359255020742419620763030001788414495650925406785731702961606949403308785259807479360830766892630118547037997201903879042777176542822015117169827281928214199620282701857980034744800886294375568695237637919383521104875505708010905490284304989880611826657868171725825580904797844807727998386498700202322022761068129243437768013198468855900286648780122744192261869443590131357938276359352319104913259510896684225323081098307147533678109177818418320153148895152639626264259683625174647877465721103173176677054469496403945473937744470938691498312382735206166548708247392380552077708758781431200014804257768753297819338637994920474514620664020414970253542645829889122063913514562081709264375658949273430264762051215594254866843768428021587304889664792124885157168426829607331643111149352162532106607945351278608733146251436539928557178683989691638083685607775073607252854395496439959035119503642883306084609289219041077466352547010509883111915441770167694255160600056370568721506288996952278221577662795847809937907765228438750974399777452996912370713525725004014900179906514143110357982224983469759165761113887764446807794710106920466125926872037441122664945320978406648615687229984739048738088704527178599993222852261258016120795020723108299567549084438034494751439253776830637548137663492704419280484447883042654685798224872559956529999661364069969925210275154296007662260735993826220740292156253783142665167554313618740077109408548040888809104666845730020593042583809732946824561100495493149954132297091354234845461485834447820900680398486901083305170624903954937714565918533424808377533512296512480111041448103246679198987699744118477158317301796935047855375697857909424268392583112575879244667047233688867006344964601916312626167472397592691673395638894840953198007725651212276758775991467277299891814410103869982919837885092966944331637438842833194539317284893181997673710103593644734696276174965495119773400862408104522071280433465171555174212046848394171954067918815966308295629180576950741504753877739872576796571393255490866512561966395829501373949613126632642475537656002742490673164366184292685847642930703762856459772353638335490755575565326313873426131569311166430349962240899216845902714341065763011531347244172234049722751667241677847249393505539783268977329879041459932590392172886048949218203541072034945884590008235775897504155964411200223189509885111705253993756768346147627870458289481529958242422428362795034343845440934932945004670895353586123299690356670986854371883304102487796567550100345350686440850203620918740062310315741079794904492157283174769531570187062595635008830329049126770407990178910861582470458632038098844569036707143969767369895545379781591868892860285796445172405377553331700240648365056991312813316617682288235201434538470940575786861859024985011605555090196841823160787222638815658721417270431527936724662954488495011094855283979958171876866067707593838336505873407674394062087747771560637067495834919169416887519134701597492101707159360004710327100319249047790948386400831159128831214055194548053363735274472779660924380124334445564897083500624347932935987940108562455742452888104470211804816825609068163222711451901447095143390676907370616686593309768293958186062872734738244868005561227950905449991446712784115499663419727695464253723077767229846520115205217059325494925795296281334636673084889788889337597194066711009865559578832253951365728091360475270487392694850055042252525079626117759392839993672084600401556111426686438629124817548118453984327778342799711710218637892317986056087045546702924003843707327995256194304707780948846842483683575969975442190310357814595314242117351453951288025279210310414117036302788775787795222558851268841636143914693449050330152420880503019750043771110204319409990321703944000656230637148119061451134446362223825300101439635670104573549260407182047256825884192671755377544035919798661047688440817188358349874587146768154851886465944044325764019196747663529899503859498073437245525645692674676523039482694505397642417175548288001832687015565425457658020448028934260211078477031906094286250783691433795083122654454977645252747471290831080815246885127622761930050010930520882528333856828758258882611552558302390715062842488980279045781672219561484704152871142962111602912218596654387242599516676937099357917199625762990715044295979112234375730057281344263129378367242092988274358598345656217747659221480037976256515966895334195223198521714162474728148874808662535916910552642418439078578974746244020612397157089065139598820368768139892984145711617539865154562380512933092981062145866662205790826663340856346776235188902676781743928622623729316384878435935310176212890235248494534582045470029877116770021761151294234711614164405758676707980524847167801540039104253448989172668878820133313555966968521448755948175762005347199153930967326034242323208371304026049917926522037875526529416987413353405126548556250853390394130062179442704211843200705421320394548210143396002918628508864278342648423753370044282616958343472015718454789663713110132997782423736688822288580853193369281725457234912011778810415953265359578478149989791472821593530847172281095926957387444988105528602758515572897381059647480629797858585076564437117190115408652866832566929844989490301195505199575039129259066732705005359575263327967794955648949397404982022055748333881417947323764868865959128329945218531234225897857767888075454464075216967849644577097382342189023439689833088560162900086038162086909071909059223244309249013209545625971906858429472467172614837012269321380824212433339694322521073824936047069106588253085244812223358015832849671434592291821892385166245136207401941735165756388290077194826793359422053603150972224264317144831720610812966601844072381611008285916009522732597416976644469173282101668728384320652756661791100181248616260106875756528256349883581298311732758869313056516589496084270580036964263029960851964486071759812714997313197938478317944555922735570319367139706459931635346258837804599088642751279733114511544958257941688938801798668635303733287829523240989533769959505341816745055001989832442706483563962938680963910840637851903919457369547173216368608793251709440136495604184459082060795132537923981776078828568516771923201831294202539369775341450093915214790301211343850637018885734974349332277341968896640987434064029220710959494463029861913275665386379333884950190797235471107358044536708858701740213688903779236550837485668785674019383560769577584306345024142887284588600246557219774020140036471055054961529231379485182430505948741550024727881017542747644472534928781237643754450728615337332009175210538026567243327012906234315731332057731678553341399865134705883701486614497054124041016739092201697014185767551804712803454188483163764481382741016931510199650193512546144660906289457247357315059215154641808088529831436070411808353269536747647671183098740947284275799050311740703535203746812010934970854383129166910109566909502040910789957540804571952504032473177411961890267920898183097930634743024755859199510921004048948478642271179875363406674782852934565155167660872009359485859701967944610714641443840401795209219972184012863817286971778794693416716168281289144943363930292070257489086091828842203238182962950787206641230930094306259248041981873587399184849124620529767558873462661139910578027229643051589166472482690414282787586163505481169074637184253178110218641243384241077192346710038113054537405672919977002227325172085573393680154023669643451646650504796161784539706091466048528169908541850838397015088655305241378584923795529724279633190988927206238074811221426996359858405170343313443387333340232629150311249604559643719303898650310995624317406291850303148315628542316314201486117070295619054263968070281379918553098441931169324032087422447311670352290065688654548754265784436444005412005056512865828470699346507719141548945414139161844171401589308668447887575799839347231625574755452629114672800807792570716944525789898573634945707783070254656843689079182857725737651689671532062594920903581675606765292480171910984350536273639112323239503847667445776513173583484733992710978008902638433154696130406327546710541405555842800588423616459318716737749868257824724332770627252175372748407411628809504852835193522545191972988570569877143413217963766826261402073425354973212739015078577827627515288218353748962444324687306428622126313897580589125780629732258316747661604344169921849019752722438433461489697635050683483883134214877622132941420151886514336904434102538359498188331805471244091741638195753410665323097058907535775609784635251374799414659372929021871996864500667455142617980846127541652348782152633974198318397204679677756359675818324959024754141778650308152720441699546286866746689040025229746856066515273865120196599452686999630860461854250801351364613462812217785181462301938445022148030023508044353182714427472885171952680689194719508890013719292797465649056478416091234269783757994074055132045336650557684247382647813466419810109144477774534843944312694491031860750227020695903281614848547087374770610244873376414177839591518339634587920028648698892075907933338521037492166166767804503655591746074807332217636753991976970000855663436172761242641116042572202284354926530848758446750940566724351772644305772849841301858348971944413887609965415718643937997581611370562362996771837805630431648943619563728035177238342820519614697067623632147191083790319949808199607562899580588086267819923271741941758696161221323893057289407462531820038232725911654039440134735990221825206608470972189086237105679214423829159085293445432155936836155430578297356155066323424768027684797702138793285359423647224434636406155054492660394528869443069165351694742554551115087642765544127974440452101113245826618771214172108428852050151201936341664379815373304131509811924350997242010271175516127341209792885277018590391409122469533674242074680935296636728485029970565568045569202284928270667478945747237241670088742197754995163907905529317298143375713127900443625844488017659557670779222363343291637459743441878317041178627932974107205692999949653462645136686832975624710394262979850072709439146286344206661558381992900399899909995428135759443711716913050479955499530898099769402304354571600501516645348145367803273567366023134054649307500982728743599540246043273940111420116784838257540155454062362448714593939148391212468398895862319272801933092887620585134116701111007877583848200022114343598468597469639494447762188717107403687142132117813802026489225157503606504940426185830862102644220339377770608614026912461663605719110119207262288647179322796451304775701737795994766621249237230121113136986181425552921516918522530497789699208415482764080539845880944347514385141158218906639384775656701455377512434945586760811488545535907887762828868094854092872812164935796694479287989540910208985627460955947939652139985402092851498821587902303674551541410831155167850865216719596775138574428802050911880579066741168081226179603267961498987888544441445948317720878982506822271739022516340723123903611705374538589220776755878682090333682808678449472748129331620531447188370147907323391868684925394227863291510491709706054346485829117300667560567614618462577093342734048519155898392939028442260703736240748217558318139538902512483641141160896037126333348062598868555259638869275860748893099643263652758547026336469457517779955396511731481254717604385048602191257143877638970554112055713856984789876368312329236762071522366429679974294440827812717000091843366088022066730688234034076900734963280019852196249964218280572427877303703291240731920647182694755626288644453565489072832625098760925412638279370530603067291623384259678594057469795537167164157340992355026903746433699453910890598714788158493979483698443655554927154572906279076551346267186745201053482984198118241151049833760007551804784671103041440195779966766244692075676299788144830396058566578025528230739831070362983190128265075869568693382176617071803410118882317911352422214466904367202838603211148280031633111246883018142198359775239308398405306703396441256771627082623621196610794892946952168558656571804321754224202726747043979414614519526523410138432976457231483674796515320391294950385862934728331698062771436126051980722793748772252310825293515700482211389956129698118082021282744769698323825050182068861876248776880514735303343127751325333766855783296424022677321863055489938459994633340669899499423063150838508162881868400274978051164216212623590325121856240047338140819446238903395248667692651342956985420669868266539370167740306488443070766337245105838618478548517108727807659962768289407474970668300876222066714963637575009821947868148718051691762686462027133006859549776565520618023365662450793741078080673335886382565423264533014097065744956811121508534517261093613753579838600595719609669023222132789651066929619640944368375526540785471452473276609191226359522762680880482396850352354124355713413680791973961887291649047431712367367672370548173790727466745419373944428342453110505264011915689048433683160798648169181651499282866887902133902498441641467485980175399179197439835991017127692857827208458439805637561986165903051825206010180699731374786993859902084069803741164097404987291988189577439224706724956459158959976493672347652822012144426781604445415780211431473080287344207179662756250274724618726081569250278980125126529014685697155059766232295206100388454646165388235106963592492767910525625798404764622898725570924507423375488583274480043924139107167442321359948205234688180980758562614735464674204305947533897271109767322797694727618467711011235723159697487046099676306482012716834813310097010350807834149044942389989248780113902921608592284904508936982209428493449119106355495059956832377568995961044949145570847683243650848712066344154752413206050523390783676749850323622200255943590129906622643870909599992198262040000431298127949994608995704632417082873284116242006683082136552256610306842880800362446134976928407650108486962745537579206871505602666640240633264231042777179554502461063894617966457686602137124273173270101345630143385485047056224690193961091091221276160191051208852761481437234005268508894758390557735356045487463093606717460190372336893715000633980252221321113960918223151633283658575730851362246298671594420679709713183997397074669932865171781041080299779290739724160316605423672128165953895524073447962219010756516214212673338246676209941936248955901438100065917603818801114492608588617638664715802627838588758084078133207374087719627836971524662462341167038540987979185496353027241233295748918912808025587099283633578471994610891315119095231772868698361225369570368037938182479011317180446819001290882301337668169641947849875826076288066951729513116354133117614641105602855304473607718060164948128730970775203349553541755057604526712402827640363272291495308634451248902364424176434262557474121869366782792865259576545904229778477222974729213220275547311009753298800150690323249758597088838896940332114199301354185718456878022395659556671292860969161876298120888563792202194672138626700457559245352959011704339026052927288967394008889730673534268202093845728249266350117534457257086636401511994851333874787492801079951266744102709751178403224722286348243361292849003394535666806287288229661821842535092137088385399410413646965095335733973711492332635782793411070442952065678533010182321234370568087351481737722161765195325507687361059288952882292043810725794834682816211569870992379360882735291748513965389625580013057523008314095357242489222643590964494325976195235636550463747016331279724237596400387066332295417931365735290529531373856857874813067969617919655311390903483348630959753571670405988470003286514827830785462468213191903819160905979198945131469185834190695273743365323383730453252582106294124935935744777901026924099832713986357941400562441090377079827532018503743557413984825315682462090743897790193242763610948219817670858571125405455407276354206070166698046664510153077321029260055258595712216420788252364890926035780398719408537476663958946096837265985066864250525212642538174423229809330017613934390878071205955135914501917732583514193628940970513878769373699638737798394777942667245984552142515953162886815897942591823609684571816094560205458031783643689061002519569725515146168437729654186289415469462734687068299037582215900840088969243280938003320249459651066747356906290245507544048750586149135205548318932033118186884281448645722430100877333034828620888905915062382890611277152341398027516174738482225008487888453787220317964076666318269510610459811934286574664899169245936368595261269307085884321627854600831226331566784041430939022561637663866825049693802161331348243720014568537817625557932407427788633784062680243593771724258791004752986827705146100422206806283713103847709812415337935461530844604156886005257572511061254642224057455123930665244036170695293276478630689627833097009696390353223971927953135015620981829921302560231967168929668903398891788678589822821896278772848414243288844979102878079126086963279963784160823154580578820190011514716467809628365924575957590374396778882742564407024141505215846345313461115923081375849735915905977913195281295204002169770119809563166453803921410269156635070020939552230557342168085888904951846016551693275828235049801948293922201159480969759543494466740276595791031745210633547402249783544468861520913154512910372925615357774857347686246223268096525123672351786898427526520102867975844523869255661402607905221778590865815324139645839684813938508471400374107460284411974204452103780789584694939625085613917991991510317571150418885052581254519902475713659125221264070143617025046115773408714731859192669136812635710029008474783706044838539400082495912387159670379112857980089694285517278840760911640332091722072864884110473736465200328635843236069750619411031734578658023543119413637041592010331506590194947865837310384672256090913804024138019922378732246132233133166049155005844962558712089577009417803780908011462206150104794809997082289439891682460866936588675249653015471880705371709316134354749910842716374367642060493375160000000220198615480263643360721500469022029012772444213351496901814853842765321794409049217365505161681177711141173040813539126260315679239974089603993928775553930019713220181516083261903167806097916902770727688316740545029616181014144734395365283110867645011214563329542268922652324925477356286661221752134316785482121389673524269645524931273265895795421571994624564583686437931349684439355787882679818051966225672404286857087261739471870904310411329309685558636163624708957889157587191624742500621876837275907545119361452825904351869943597209870809652186627968006114208668867267828279713394022188264985331893761796961922896317946538408794230870895791386916990436732028051491311634940657972056166367048047075617331099693506828915613397597757280497483746999029698039744121194873094573111578694271078468745731528934727011116821182401122029030750499980418601006830140661374325531430746353850700895601235651528990776143330789682915953392077826696202920020797690752703786586533517234918451975885088138521686729022546359863593677303645966674513861813898936644414084577742906387256231289550394265918352657261708686821691868697436652532911391188732130133985583003247493672942544174503998997453521690264843069156235055169359330456411541008970456137328370304450229596167520199610641413935436740787927045683734387872815535387096589592097827080455613095614003397666413032916334143198240524465713370930525115841912365971225052880703440511599849610125922132680686352134234305115331037047272691864266521430453643422204697216486983659980606873864951271209597217499527937807429732432907750326628840226011945324266922565209568248145253374587577075510437233030814094929847803983222088232583461565522151018034251069393287464188539563206360184116064343859070424158519772362671637537256882651997469328834647854926177959746430077304077194053351890851040372055066139783482765794086651979337268822522155095345722078783181448104504563767165927895595640298590399425575190115810600614609745738676170655894775900841884879449215294513893101161233053099642675224485052564305839280943752014445405027557457818219933386937762048063547090810328789126439231827876486163291042707839103466367121433992613953258198776288785168487349849886124696480489844527122088955568074343639381923487639300946880418086020459037798492642917400993627466785667455761924855760395422003857187670726866600242805493875474121511951816041428716482445988485854794170339476628113070389187700800406642746055597378073252856571311859333724880211841530747387114964474904933073146339968479885075971067022210802486605436671663324223143945885317921437258791014291357621276510541845862617901785467445148109427805308996294597809340309010229047757480342623645339319401062723057941310092878882125874482060619827366686889790965037181906648843502275442211396945975967258590759011576770527186489760074548660639493819660154720593650349787504403860603442303525342899403461495073935101332915602864157258430333447855588429319482452974383458082840084888251698582381843329821640804551469780948117859863467428551854971993348375333661545331208850246608920313449380911801457403812747574291789612472423486227418470543264805072249348618254425525127927202706767804000175997162408450450421075537519592279053892677216444390181909159777027196571246192635286839868556294509843558539767818790393338897272073059863212475517686620209116715061967510621369584375912359496769930261035608100632404296987164797170247686692545341478858896872064848972142639905355127200778206765205333729744567682076648092064846560950089887820210377835472785073201333062208715135054080337011339229657690583937299279159702399830906609571904056181646216227358416563238415325599137020240401768904158110657069086355035116651295020202474453196557709119025475658463926943964029087531644877597134294931281357301949308421054551476127118610583317826628487930689885665278851818120044851619676260776343463376630078419528096152188269276553735710082095272123816526738859802314557826415313201728292096830534562410729095878529214177656390314046262966198119402092743510706898160726165842853464812506352282994336929457601200391889850530472069100499391030984263174040771303405296981724614129558927053244613559956911746569452024149979521152937516189270855593933636835776763071751232711956473762901080848993615087172241993216266406992147391889427688426679390659601622949273357437254380841715126817265917275764075999849732238554758174179237221453971570285177190403468505796282533011737950214007118852859482247955958264335752333120459266445756662079314995958642318244145962834388309949326239736372709132892688297340226755719281214521273157935473971932124934772461233823194292803758667669691378631981339576807305089639509659725646213505592978788418087784185930521390025365634276222750252681700257474522773579011357427775117282070355855663318413020454485808743750020804115739559453405380860839880054225032398192293525811545131755404680558059720498311735472399918263512819323846651616268418418617851069029060462221823994349733902564064034332386856004178162791867763233933930365014851376330158819230156299206311043979593769350787717509509082544222085374888281632469195457045520554891236618100721763699424214147624028782423082413408096272650817982788248850550317138762673669063803755678531489506790302989265782719128524766606552206367276110648807117830749975641263506535099018719542757557472051185062111818851892011478112187080036779043055552058572666612248595005282795320480738940623841162354155768299275354509127749884601275528320821027387820916040967667776883776717031761445876121916029425966389921452371249039670835525562380948701298059735210020394200417178615363745347664533505159784091146412923219196934830829907239539595945959351824993710131037313843065680474469035397233165480789332987338560722498198329379843442140132992179386309473286219592251688778763118659403949638266606859235860525710001487644041697415358565106492099540459768469216268045720617344648613968478276608704612062587374432054304117912630779795467189684860374539197323940169958775547806134643805246159520880647724253531309328555998314916849244313237028962571911694083696183152438529194201047071088284851068438252161901752248930596942449347691313624753846101356281165532667906159889102092604339231948596136873550588608186080989515966011327158627246219114882226919684076904300588683425625424979431595805762906879890496852488470263049541865603348895166012756050352633391706477370424337518987742628917244191193279097517271542191583073587216631955121457339174094803230011367965102292496540559477716434123581927542395932337052040411417032203440825844816210617528777432581705504977361643247776596382361537178249917755720251631505869083694806651498829983915731189272218475922432084629053950763591412478253545365213803057153034494454953467449922227896894850300393582647233091364344024177985365953397697474482448271842758703233211602264901818268886294926414963791269273322030559137742205516337100350250323343738790555482629084950680740521195512954707297645314432356986301150115656528388727344490690543857627391401572207891285577890647072926056457008744966345009342163960945249414819929050045889776981383544203205887236676687292437550058002606809880765209012262507185258629479872422478024741285549487577899862800659554134266131941453081919984308434658193908644769813206271419068928583818286090777211126998992363852551234312774974729022739721625133278414004975113370262944575653736923065170096981891694951758821824335921616137817583143730573192615107489594495315816667173942294839559227784577176861663092935073758260497864054017671279373452787413340760830025758536964949205523535544521367710905110959089860067587903992801443910364154165301477726003144251691085435700733805855870288680977956379897660409251417438738204639873677763877164965203093272390336542212009849541784519466785900827360054343810619152549945484937627914416502804132066267238852626005501903556267236679576158758648077396850404872488658195852714811140720164578132946168722566027910205927383321578239401161554541603066349302962806109256152472078570507761050591538106112507681144153346625164482916552340158720734647502284968354541738773521161094763170509083258206506349276102640547599852311384414018644659985833644509777311335710638836061747757063729944159116962734690829951236362515913930447349092916315877594705494115287396460909311375321646644323353115719118398143550980912961610117890567666446468003908406708207686678228252541569032511288443022741709444228724018570540799727198934862299912151678189934041118771559328032587498358053062894494886768411406890705230839109730347787530876902305995041759134134759687102439048514943820568074781764200889637275649069614891980450651691562619709743640377117466804012426988580346504658434024731242545503021729629838530577713820669190026043477134857451346874821896314681798457120925471542940577011658448827483937880490494991930757994823125062501564372105773640161533767734582850192807644351355407342128552282839592418900553944732838784691397796638239474475106658234283955125575425360464150031664802170121805580159789801979063779907733104134790333085809061404161186649284748037720014016309324689525308632003379091385677426950509500031584772952590672779595944010489364633343301621550634825492960501909021423194003014756275038903670322777988943903155217971376175331111757406738906913865679741729492494870585716384425774008758718207048942784962825396735936520890308213846238843537335122060811772066666966366964640811027797112888521929050212602827605315922628356926335558894151044465639270074047683384764381179252554389700388774346133086508947910150703545497335895977360790909348178139653022775524888512224358982694373232761222962724274714348396229904536780055127511197025070730014300366076328272458957653812178308483051986407006989008716562046533906719761663973399041400438264615575439936444129133088871811279248695903401219625658554378992646041488704144947637334819933572349839103014915171961424792680796884204676037745164853831729885930474939763681658109680331596293372760367264612373548602120160446870968580581362350502629558089749927637580438431880156701929377400596712613555461887065759481565065479453672963840741087839071876231607904318114714688178062502789958995934844828911604258609727743739764928932554172637729400111507414034176313927836707511280480241378722467787300292054718106920236086270660306105206523503368922009828396015023332262625565276965035115228501370798657626380069640967316155874892513852028475750302312737642328834998850879271783370566391090272012048968019894158613461844323716994521658488761276169904394423200890368364455025656475766889562429575018717546839365614432209282836834792168840330739238975295964798465480009312140392649938060082455093610944626904995483276882500444376825711596932031485128855247717605433218767992387970598678457383312531762104260093809713575718378331085138638163018798448484292929868847567877079554803108450010637794203815556889431452773387721765200456630997713294461787423198869872061911304423398694255741749300138743771128900451697814666941753499176937659938428630884591678775492851335301899752139605155118429136283998895975687498861791946864326176141452416454338533821112334818406613324158959875518525699412771568500001506875133828285459603937435318507014769241922870392014728009553873909523996327705748608984416097673690960146028917269595119385150149166389249447772121389718880885915736115094077883628695871618614681419715586525945099256805821640479957773707315058183686926441949559839977705784147931892798268930562947102700619451457896933016461057629883207755177110190088256014712184011527007140830461827543661357360515703921956639236689699767408696937154627055990971510416568526505853488725519138047664708945095267510991115972752294742081667623782550148716946161201491750907316379490578584283097339762621343570952149327633324560227473694276687237368875049636609645812562153909362252681170337129088566741725241672228567926392556684046082013178878480055348894126598310861509102955031537491569094568489947599731158960125486639288508763684701735905933610864634824369193266492278491949621962985736452004807783448475540430752438651791807896802823585609238963231727390857218474327291298556232829533755047017326161543252306144307308407017811693111459412977469213828674744043033387271155767965685507770618534239575435137030125342916059271480150961087560808480610898796934417809417912903067407675700202713460498696344455308140682931290912437827851901569828207417710666473437977816013890833339073036951563103277099072988860958190030248296166417283030353647151587091712855808746530115902536673910595807386601630196550304287858619819811720213457705048842582089699667144911292531907346304578876308635610840133445062010640505489706838481830808547185455970011704676689622323213406625207292197562712084135035947547221288362013527334409468348111932062440245284277689595355204647124524322080368096638322203143935530301840905524264317232780204824729009937784811123874910313875116906130289881554674319286065259595175782497963090783938625304403985732195237073349256176411341817767797513409876589054028052283021650920051859776681241133769176129208198008569634782980885975728486801596178541544555854298407668994377799967191910459615063889895719780258326814057025297635837964768961859994686659128994419710846352119275443206032084346685741050252528054857867310849137630139847576517625188421496588679980016159866924613228800513314209128720384114920494039460208174682102147313473747305910475664848166184970869354911853696383202367236080089101156389518722485271152439089443414358473453825463836121054274397816533423607155303886504829208309850568027070618912209731275584957830911343903983774706835943402853964360746198575027655663001379117657344269307472336309175277216046522664807526596512953928839231299533541644107207859772442300213467947015196084816189527477549556927264684884621217018760183370915917903618342895901591957595442421073391309780059997459166696014461004633142920116852191980129430270520429568856974530590190505318946467408581918067932883978774298834751957271555141513421173015930845582055314788429909964288835467182986627404702394932303188858116120502151685518254630321230854166857879696110336053619881428194854661004839386104765061149875692413939019916637879096219589678478249526765292423392333036781748827792785093753275107811699498268140730927944866185795130522417982994298762735403408389707163316588515689544707323615108167444643349542019602279396264758106036716715636972412147792921047142779854240806629038243779425594291952653205229410422916499261781173501305172773716308057446537805075561051521064343026281238562466033828078035052151908237101027123961744463552426450896014273303207471073179555134689365291234391165862495338331788349395907336330874789257301244913442851336171556034633902386826975480094637190938626276314020469039646891094800169590678568971518161744633620290582346739345490894284216997447559698688449911530427749873714894506782134294054308693094138821108740825601848993748479057518726702387440835989120325623723460116345321924411337263480486529488909321877014978793219556039600248410390055973665474069043383864817261527572641384576815639554655081762696454307922535706610876056070618233899734770909526168744019632557909979690889052742935169890824823206594470130797895242945371022334482884907226247480923542601777937030330438054302154464992152955627489289825030723765099063000622910053025028282999944547340015440002290098686183140166800899541728939862474361482002550162602506018874849592815012041103268831668964580604711013147532797406517285797918491525211632052904977724771517606262383044131934623630038967345835759167614786378454777200842756424520303588495093418242383675949646908947756580308830025926821865846969504782978897506571163284624290485863189675977513337705896933434309309551019352381557725543110694253419413410710386260684976061428943850033300376881858288173487946276573392063351128578839208545855942146153016704183259627901365155419010597956556974570173480332548268857587271114165239874138617139570134077192596111371200955920422375077987093381756056033573769409194630939412884545136952645083756080614670407774520537336280161235178690748942828821464957690845348395033786020326420191041508315024196571571422360346100170769024481129922070449126998806436907683860903914136006556689924389710837784542784349786697373842784658250423707778702437471650497774340145666104588841198015544051123058091693659984965097457210059218629275599294370504070462802887215631403682942782696641892056742437718751361850736917375034103576182616053283831879631962049320804041239929300181357834725998795517475848461810957282750650744132631337029014146710827885525393866145320913423914201159917956000718642127545238666931292848175774688608012054640341919169337763370088451220164015713014200112001102373585726654641639708378809130977050202322682872215700265661463869322157451171566849130528829101398790406081441749396796369902934701985026358837522670782485469422810805315989267021207264677481458103547895855672941752237219650382298499805516225327810029545637080912457487644677164763805897300006544404231276429977130984042757007727443299725131927416617527672967697222813348342123473176911862225986794655686928652640744683444136232803459987742335381610576368488739740980029637820560487530654933076635714297794425786233180680768374419689749414925797013709514141798453267098065945125244828935783401775455189858348889765921057567450044007575776294360071294589821743889485465299876601059064315176955231903920235144486501564316765373358030624962632342153583151370983246392807092641403166324550382488662386808480942412505609934519398704058362165569860092750566137696332083710069468470961589849518298610326190832525377182561984120460250853087861883403918532062351904575147715974021002810549003503518252814843661286486918756191657729464300053499900604256641665486129031134930121530027770923280646365351240515104849662398549119580073423128741735560814376543081181128786635159317556175899152751906645648301259901977335611675021881231985222368527238568199139181356644683057872913803988721448580621735026719748266094333256217822890467921061624422356770030244419173177498593856442347313209607258818532394831882250788877767753040750258635843017845387633195971559750756070895787946317259449794662286726258217048937656521176109464776642302130770162218878415848955276084208074551906485728756361747868673775317991591342219127479501261726235035452507710083904077432838584041019076201540621564837013897683362459104266762901132787845543159602651649895217172419030628384164448203358184977994269991135833413607584125397977248945727248329157269916434380510904946426763369472166688238292524744983229725677922036051760512862262926730019811783041578874387781424749697791145901649614037985467445143388718099198706209404760350708018462523580703259782935937372809949786693009488170813906519169206832493649420282720282983134995401867092479850455153465839195715610678667402008357159047187554294198171201359764524456986081974866045915924309560508628653389241407205134210640298971286306926402629217936302910775330651861825958407382294383337464783068160741691208489281091799636989191735061532942502462100483891474984752936989443760814392141762715086911334640606023449286500411068623051859707435567578155227457736134599619646398880097135917790706040355841923619449896674403472897234146283141470225674968678256800952135402829247869373990916281637020510171468528169371130854163790887389201190459168632108868923517900885987901844595910383769736214574790701612918061324450476995151590351501209305947248411546377501215746553312040151979431383245581089634691175561095357500455711568570093295350009239195462572975276356314937694805534015144194738457132946839555808560128614280211742175118566898861667589541979949065738082924576582368636001819825569513322198846585005531887587292756650960601210634314377008726049980481060862685358673556737844965088100377209590432794823740915217940938225347524858143300304309799094003604715934858929714416109353245249686605387757814670510506163312127280615140756246461482532543786463616430423517710457273560531287830604227617192734886364724799568047426480710488469801191281784789569682621373969060641558599728243333679946334929883623663088270378439315459411244523245987709728033997247953573981064248363122602069550842600792307803475249003822447688949239341113365413595760129356014049004326599121092846224241906309746355147063339397673694210842335000361447154983504534330375784142091439193898086269943786981093959105173918924885985089661351257104035072038801352601947732634324373767354994574346285290917735056742314409249377113297802886689882608354397779875013570133628096660768187033104262219536174892980997452876360703364877404643835077366597740702030287083368982628778167698851142726312692348182226056038498780252842557839895063325357579689951192381391898836691956779647627142672346885501064583203807227564630712171556162016840172282739017251432784021311290642091198905909427298999071372408274882992581090732853164130508891356419180848894548383062477479095865387167191090618667421104280942650734211979657468552252192031705188223867602648876667781213857468544735786463147922791140538409913438947187069826142133645060884364254273208408117953696263721291676807241813376116069276249026065520858877604084470131178264121548687230757327784792365259037500739333953680368140335719878284927713254514998981230579010404589453689529254579491610914551218572747822948334301112551946913804711047945706512031324231535491742785026214998897242490401399048358446234583221544873459227662040420323200026108508799712850167190724916703269817066728538740208352049833647381337307772719761218446535326719106018708303042461500921674760132895521610145597363576215045492867494494647981991120284089117651582108194527195777846941357992794196105119802530010163269829330384063616299558210428565875305571116679736813459900810624156005262596511767205547487943498705286007107950918879286874904561360930567682390604346087069988460783564599405085570345615227632924977937030639637181236861368996193963495792952455771910547424878252271158767320230546035577677051451202710811686172938180369332823904936695858783082434797209598355032508295710127885767282313605363068582196598058077066702777663809539719005255249554026218316467485158003824793613027688549025193435849385865289064880331053558405823592843091945925688568770875359247992970364264038611307318913744868760793532860953406264141279130816455605603569031693889950491137762507919813945095529440934360095721104811066898975958874806070288410487184083820471190715556662381080644302234562607834188803154473039700608269215837994707373529162534774658502427233162829104611734279014536767191094263119270724923258207991630576254430845065869265702858878283174482955694141414107565169298156798981559795641041672243095456570856274121890799615056950976194144018051782455625208982123272030476228466224434505351019701264007042907586707653655861016376057202768483740934075690272183739128584922212013600587315627819186030008557954064536726112963482112620517509004156556537679118863232656791250741926185906959293639961807659791090178497238373807276731733352644274334716606914317045693976403255439672213522198208373684168245532146877562570316486465051566482509617539368592187112037002253927330531919591580479633611674950643261356019586924683667926741701253778796267483637877690201488775518373857438634933559896247348528479273222890480495129618451991408425533931168838471212343975920652776924829298406833370433615159868139451073788348244354218290264874919295682371746789579287804550181615472793124391401787961170932615416746951339561099932956198558280263619643145052753230618783195334737787979427805845310438034055131669758952576891458875398377244640620419413976732504703341385025150213683804667366608074970595715062026466086928603822120212272447302239908939031713623460378047555999239252292648485953261333949084716509911324140872139317278626370192549028805966416060731813550600452480540522453888623394025443837700000234889207728853667397501816858449854957643773707462227784415898526359884470986785965379416341886365799583354549008651540869491124805286036779661229523053712382784931690297547746304085443052874086181273059549809301256552714868518862716582054720081954095328319146168985194969455215853875366486066941281802000196265691894015672376739007265698181527140270044297569716354406677475905756448306310606704826616935166677013944861130377982248856629416303641327328487451894354291345295613194589415938536925653760522106642191564555454738564844829378842040491436198109524434539188207237976869701241182716279258879904572725365058139872518784554020198215179070742865262562099826092102111809112700611597125129663360689282759918194539978306586094171432514284041737608095308652443382602279699285530795020405317047035497618581425064786072432981560133542136975732139765538243602768929994069677228891497351081647771718651015706232239321974259167967050874083020477353111651868492022245259913653187842007635658526981442232457136639216180374917877254752060588574790109167521792272341923587158581917058245999384402292491182788792659885197877924773743246762806409258742449827332303258273172526611096660558151635797181103089363994364048066192441570285578745402977178277890356691671710003925409614121799903019823817184338093591945293763383811629022956712711526471484895833174289330293808196581065878350555639182293837863165927089249547203402781687670314817544746212823968402275537867430349330204866559418810256197039355628297047286488944750197111526582532260755428285305000063328931968485333387046006922927235521049640792778070477928533085894520585387069699196118307993571360397036474701221243293381162191138907505506081697915328903050490794621756609101684350562165499515425087974710158819786228732431881136065623740534837514914318392350383763521103204080895800467868118554645572823828188219460542998069771808661497309258507892546381635539222490015687290636703177938724604299832713210802296001233291960327614806435983240995888939496289737543574175047563689882486574602462221296183390333107623196546377638570774195875541317309456606344675117693959623502171752066805345525403499709196378395955603930117840513922475285036473387877356571715078402037430819354001661676390988612319409547335339228056506699139142508387580151573724308071296220055682158073920126146742583679408420929857442088724976495165515772525030656544349698395762344544501690592673546858555583170074195895548174503853119416344548187634671660287780166556238608225337525951897979874277550647244654313392574467432647987354250993820821244925052510090967147348801627152127344769705814147931196252285974654147954449564596871664235513657550982356963140325460809694537653206391068372237179190541289823227112851784167192117794873908944103985907696653626161535834203922964616513452470173065300517395806983802347124102886043777603635885687215986406736643088282900768440525731701286898677228916592533064237354087020899513792528249120922700333668960431467663484169215897413792324976616505458395838358607202732730396245143803096083624842728665254554342253956308121905791599129047538720160637464145403414544543052252203576340227497749393747672522434411499046323832256005526391281011589168055245339107656831378334113955717886680208549856183640571325532146918434653589814920663641647069812095177309398029120210375070890248099686812282764156329186699104451937318631749932221598810537975299214335756065198695502292722375830495759193837304474100823074670213566555179546231934107246737623522474247150460034965073433956261421395359945269611546803181457928433418402295741126403290516866025808321072824226463215638888278186444397426570273070750554917488922453757616358439270889534862710999840594401830426276302547433160042576894672302599541588959918583721441143309606289909739090695196502363236623850177556724547317602533647941858929972569291771348087011213414204112855248990758979603823918092623951405659457762614789713092892235009355512482635070724050976002159645854180963794805439478267969384076896003432464393527616043541577752087523362706498413155799222950264492343218907309460618399831388125810483208772922514154749759022573544003351458966008966274482882969817211980635473113211752590252100252249337289125326369014415273149219068277622583610406584912824168912204724387939047248950957976766761645233543499427425264128334072153682208828395409404242278906734043075503919584152228889797518973795552424680614678916548332956808565538178615115047845170810443119161696440045315928266683465248374969410219995727627535359646643994190192372911945521262622765758779290418708469077234954662872848691984821313547090057051409283591384506564820409319475372583968746088966554221372500393470295231593241427264683581034579584562815106391767316190755809532959939417593952145627688438118089914902503813316638204386896127348426818490644323935937200051585642934623982690839485544180728378289065952726830174348423618416056133713494980668361717525695206074139093136974948484329974200847138872926549504563320749943300492672935728758624481257631720043637695186680778841945091902305074848261391701856627417266418380392371465889034989461266349093742074384424410013269458538670906088496731943214543960527155679431830342432713254594779234040576254379254884360139651710490679032023965219500310384282548161091769484508475750003842645239649612513995303826852831412515995862176123741099342317204775667364483104376420156615286185025752505133183212018392059065209495500842348724265758571388496107828401822920093995489678155223728526910745326776170255401134044993092089817283723355958502932115736867250084738369936553072352579508969381673125997775765270737063487374890518802764582125621827344032817349732442163058762699911456820381612942375708397365945976377455698439396570432385115846240826877008129455902321407981164612006501735221610743704304975293767639497872456260967437479735058447921567667002483870951424431846969597806972498983585638982551426997609156666857346634280104482428343716966421450653938548914901479340637200497673240289166641938235637504398700105554489868062496278412557683294150152466754114159253925629268136858470670866870525198692411831105433782418844552682082507215379890371676588936376158456179357223592526682150870798620469960781452004032722903263981378692071511812138347312393226053034057758691401401179924361884631490408616667642342832921626487341187128798862842344183875637145136046967210017082832265433651607516207453308384808496667436709346926409040278619676221275564688082179005869562489417382148745037188822596975069486413005916145551145925906271924035873908597407678694178738017361888707747049288969843599533283505020805324979513656891948994751752590717488688222096627033565781415047043533617820106354056936015622372836164049650094086762613474954318234708671851303460888345896103680781604878560667871196063729593106250128982914887906343863016177316535831466667007391297881732820381296176191961683070551780694316939287680169401487526107552405238330901491184832060808860293139688720983413071426453739046607833863112686723731531149425095267218427650447273156986073504256722135064103108585038575840916680621060365977001816896024976025799814756772629290972932384081063908218199557449928104992852253527978360519471687210674264943770444640002885804420438824512095008108461539403237612246920190105744810647071859585823299027030210296649936723653226293055745137619357518207675002116556499179812356300651049430265922326686146566074671719224242445125919085390112349636354446335304008037398577391368870968921240908213461299040787932657274516598875107363517477343169862517048221419954654688960869064284974877664762252159522321567936216850616167288609364501126636377158472748088269024853132778807789722306227560312642361524880434346315841248103270821580791600872052989020022920751302437117488007548964960255229594782476913034378653821350602115363040630124397117855025822277073722762351597477733263776106165088899491410733574353401386915891065691675785651063201714623063258517274165266610043923239601675763258218742254968469134481643146079908154777793071114753385409541605791013577614620693745887061433910471082475259710250843231400515797013789351495595899725198482771459518300481606748931652966876499059994441940663487740021330978824658947379984483542890207917719050211996654679815804579637217521152296918708421588214309608447391337441513911529556675856641758041597285587225020198582984262167182564226964512242575068709588179100738719933628784138446795262585819327386281518715010917359986953960753741264270132494894864680766807324017690804443630828925574214006852363690026940405729620722681516182517005522991830497977776470759175557457809004890082050773199638172247074328443365278376759070337004744896915499876164957513621414094206948968523273092941404075220814320352908428512841815357773554590549744828556694550001754335459109757132214038473522097322727019693520971926110484509127049246962815173899516519419715919925657191880980706973729605758960351016374967085347143659606793949940054218247949969732045770321393761619918219708966543264003331421926484321307670375175512636828747834157144785422962582398542980494006499492608568194613608732126710320271659468623486916315203833845830104138410734139327607422120891531912341663855327905004262889979550406571867582379157524916620989086501133285534320747071110196603999459885178836562716699463106015079712632215692467226272056905123036991762897905447688426578328460614997925008375826149682375779232592321681008402160897544632114348670760003581751197052134383413402414584784366930100235743843047946825492921410662178455138678210256800212325164871257958028655106122912370632115595714879705714604458927858812415984841862732067255533036977984904986122069497875073121924509924277661591895552696190733610626775690310117987678680890146067637595282797878322545227289559715632345711184942805790763142959601873094286380812537197122649110134754390159200508189590600390846932553878422999211416301311607011627200422823511632000658020038893361623049563357717721276703781172254619942577788085176642516056047029387224824922201211544618926339772005990849358863532137637607033367367200660082160300655402432258255871131556977788854689382650802226439504979274953183036696110261863383035462821725865489199581582376688790705322202027953747685599148128803345464533012263382618936760362366754857684943944004126295843022550381956619176599252806027544436986093865962846610001524147908613178918380340195354872382927908844610384342976261817621252000016776376893828334535392328278549885653811050778662486195246368790195816951814380609951609988675432597061046041464234789657781024321688900544488651631328960242674329377055196568087068551651086349020909538023238979184296717072715903068435120029099859893902901572399851815730219103240888570032074503786894030012069944747462093445615628416714631833686133096224325519737463396892260625765760960733301075189488201959389345968694762023433469501540463966847029764434743172684398934206364817440638962438907154101696367731075810660765583755989526423324795808866671525760337154579280264390300650274196935885439879278188093687988146903654790525719960967770652312285241931944043366807826695394222177460709773488258862159555886504777181957313521903037376545775244344866494520079141906664819841146939028365627562336208153213862146869062891796855017135599540805511744463412199579930459019316267516568814858941145570705603677999853603711953466568808902234660071454795585943649521397431226985226463957291516077370855701062046553333706481417966818491487591470039915177136895437082671451253711354332432203491221508664472408079129158360845786298769790583576588858258166024469838953535739217838755718682619624598642860346180415444196025050341750426489419530518985681449351855108888270547264393493002097023257692863666877663245009148384853442751837472952949407617261375765337409747913530705903805336429196430711483472857407443904598163495113569587004781111265833935217194207829492752259909169516496658261972849529573393641799220322687194537694495099231275586510029459377336130761466704873485217394216148274547407955036310849494822519379071595095455628275607085919473292175300098140430596687081836224431832569228863232733874475616862925513028231104632629800346522999876844437539859543259026606334039097986723757222137420006344561238565690681550998442263929318579886878614134291616877191238107911108887429715146228181931953147116305281275594180172529313856121844032938416062198857982778812231818131106647743402884195001174867357610356203161381366193658099531685650435401654752744428737854372002335399609253893067918598881672844572284073194895261654247879777392518560427636047149855111085176172076155553552929916216950380504223197252505423938331389299346528374086224556140882011939370544914363017385154010139099095285643207813060500376279155947836462178829170356874045566344822184508232483945055635502857329157686927291704172571476697535239050931974264444378514579681468763525496796461955458383436787707704113385986678004762481719648327071073913245214544873696228738210411190858178395061972239794757774105463791073813943298832062588983697458266197346332301761566012116608544827194919490209217943342919940548325954260491459907843756288057491271869728861813239637600505155598827092576302931108273988293540544739480969382543354688403025753953643533280754526884885520544256452134226393541563092050264224164724968830112137818041785109522274847334365679936117963725028424613010787670605885734876114834481079497760066817335931160708364105116092178670291849351925065661347591849769922079560002178809679838196978886734756651670042908007201629605687202189284377935666495195500256988784563308560005867479513980949992726630001005617969672633306514715066083294172752472511329902015123892433167741203073383062217329450932451354557053114863315313273994407595960858554768180898021409168401989640488519497027541850850680314929265926193926868575279241780974130957864688858231202016264098794993378637811367356202921119331343467083272771244675047939646949910917692387752065372420053962508395447629769947042298079096218826520707136096664654590706536290693185004415303530729008952892406339861175103589201255749755074050244519198611942033402664735047911132864590958286470446299446996175288004341241608081939831808931399347723591118638771014632072493927069471413131360374136340517698662511531354455789699089122102145290027824073523967730263550792530540023012157249747408167409746949560053996829684199258821490216765868026735768497284638746816534758908451220472714593584414421864814332029473091483575403415788332543125093970140040304720931552536604300790816228265684297955777756751306100584307446369951240122527784013090083171933603210947203865008003192504928925167922719094911427857443521563768306953497321883462801159233894198747237651416549636716569543944994347455762531199246254609982592698103660782437780248412455559670029074282300582293313252300929850371861235284074055246999000629388233189131281413138216680082443736725369743367533147414243746012761188327685699977994374025767045547356833838781415641508969378493569313187936923792187587699897839927993179617305308687082292913625039039616547098799629124345171016879927247033377765947843824000453564340560571323822183267691371515586792721059933946440792214671862792926134089069512892972264246203067452015831301681862247962331059566718137665764374864750436409315348177444358562610897443806345285782518618484880368245264741638742045697167807796095121875414329002645172878366074435378822853074729837616668199270569734191965230282342465610966727039924613174244786167376155769456857710623042577771191224459791225481907238044865301732153509947164000604685331802815441426623490773451566106706133480474870571903013306511360749382087906165226135982504875896023051547396114829691450756505221931382874273020320992827023414132771927533940095847783859829568413378296683533572866989347444635519746057755054540861326670089698696626071230291081689069933918049989765087268247568052748206459761925395383587712318087181993561449707531701363978497340703184239688029345900393550888517498298508093532434412971447764871870141519647286727334783222213890655810460694441681870203151583169862823535010229555819362332434029994393704410274294325625354663133328208728411722928334740587351319010792513602589249924138671973758981866078012817311409670070401489633183458736638786100590117557639077839716290978392922066633851767529668041059461443723102805013024520922875684880053576935455318501676228553270749724179405942980664951924463781582313383690761126858148620099531475607431575002899058403270813310090475730872832446048991758151661173342295647580173521104940926694067916500779838452032534377615999673956234361502183013216475994854347786828454825992213147832587316020683911162604204506350030494804877677780559230502260562272604441088722008656178927461507782664074811714825975418505747980777277673178045980697885928070897369894794308015995630117125678253826668608640312615653709485847913673460886994481896147101692073353773962843061526872506561405420344824180013547201654433242700708075947600552921934228216691600392107572507840075099488120585244794735991320646043614061855389280701921995185930860988968557519566982646141470357417617407942168745986149185791383537872290277303301305097804267646138894679763367204743076487301226400009403253485288169098610149594490280546195129925393695125516310391470717499377718659712908423886890229882780334074727874174446393898278549326815906942695874731751231674455047236575581464187014927505965227579081869764793762758661010020147182010238750786814577654658677662738790892094416145517715277753826476777535238754085072621331326498511759941179867913252529429293765926183115058707098027784749108312613553285199771972875659297741270953275997869620886560109133782449784429806374496216398756980379111851765548511929296876401581911792513211973110039044666383426945745894167132684936899401745079073513382198896689717496836202311892112592966996463684242148791302134201909979588019141972400494356306418451718760042207543591954628679860430813627580781047213721928617739914672851698576514135938670811027423738879688658388926950204229620172165823225773484817519915403037313449151836631490861620188399711574260522007238417535772769627068371595211114607049367454850743087474631834055114451246881981937486304928073194907913573044655497921463112455547318560102278934608940353792537259656156091118713404671994500916025531864264689446088582943855940455153106241312282506539612263185242200008587387432139571117749375887016760902274239341439903124199760559192910343581275293425195539982050251690853127809668971015187061896717297522493682962551946921215406802958507584487468278089726181751363266483843985503011664754612861764241160304295399253478115401159159976989260108118733320759143720911657289906158434921665376189809793469390749166019686128708725517488693833241313437580021910092781592857389223202231016456111473860261749329096116986852614762099203876401194971414116648968936341247666660373688913201072570863429214703992826903587049136920825234621665521486807067535493452028192121114020242920775716433979670317529744410126101547050921413191498830246857863510883470936986925052906778706554948319107200806120580272914566281230157442481535536840602533614924439483035397551108181469927218812177602458582843024387612741816442170816980367613849632919775611796091918142322992193840857948433674055763325367695241829954810658521403516144658945501604940874096539847806623457400873446053285212546464734124261404577548787585717472975108330956698798348114282794257443828176344877431452041445266816944061226805872054153120372541877794050384526691587206263536778162717263517715483380705537373109894623453000804990635089866813198798644010831991451113984498527753691803840213923836191424889314324789796182608734154087995663830872860666275708420154720736106412933754401397074870618204986328990387391521681193072526819919962205111825767255601750378162220097359918175415043410888404857097719466365019082006724541884966716001211381856171189466192150238127554767611030601822223682544567072761640074774826077989465620157725508337544747481059682799772658522634814932763521073264982647002453681547439173185815914522265350039164728015335509827994327281346639598425258247311027048973076330213275085812865437565279345485481632685457373161041304274459102214674727860756047253029725128338978799535460006348133564686038694623333213878767380926719559140395291525143949153457428259796029891876615916166330071922250477121016301361780567151125026192569662134478452119149684836711340226578159236847073453412215049076867510254037393556720091879567052437047371788167589893486319799048537383197894783602416002410699147882739387386386032062746756789223317177484129997786206968415378595918202313879149611413863867956846907491520447820725815738230677613201204137342623264978540201801052431190423949108630062752007252306795956281853376599152504196242191478422522377090571508444546272424255156291263871062309812957745637152474451746139859784481430699408264330342927039174209811266182368177179533443478019538232759085517348691442143248399120819235255700519298372440106973493545831013328046817669800551119719630716927861503503955549806505954114557474279483667464928633513402449575791696196704353190405849857607569098308387475015232649687126145404398021261404982512211432238199764926210190371951986653755567032045638757017104693910857242847798778239538155917489100618196812127153198152850179715316285859025558716250063219346735365619226757875715489134976413265559382929475999344027600611686103855919800126667346557545712835785948985882012900901703601468445404085447518141294450981841517804267258500558286584786087020766325913746846557307442551909616872242631640258413814969793634937492279099816162756727633712005334277307111012053287895130628892386796574907711443698030413810437142810209115478117415097251638582231903920669747563169781250797868840433578431552855191010903956155282332721457465923679425054209081473000464849423980359205796295473594747767225912231582032016115090668589500682072114360632128583701568119807910116814117725122068286354525633282951181965101307273496585482051488224483776300008868187919937302635237718349540196069693082310600145992941522491112859428860673885669979069683207514974634932692515997100406909453625449699537337464903902582150956328957991498390264293188004217047035452280316873922725867282722622430342149482326806373334121457189412092056629061227196507366832038618791770154485527132384346687268878242429335082847627883446733866290958680086711492508966503622752185879276313538227434969140247852359258881352552506312967305641492546871743291015565475510900668261338003341129242422195558781094285764517977562451508583116125989719772618943851333368522307309262312022144680109550495481426978524330755158157840932924624463761337499337554450155255358812140933502790402128821010044995576446323654298658432483827860485414265366297534705547002559852504217011694164811458071152840997740384843651367086418037939178620895873759357480416720266551270717225435534791488296541506362213805172635275942182269238953530029282061769880420176225946858111842090068171571914527845781461737432695508988926626235866309145846260352604507091940395800253132829959184197516028580972578715944660356152913899047663819607564332009522027095536629552596461060827066412407822933018334819792521425206551204595727178574238094466373585722679847972589981696045966621556060893730306737563979720138348410139897044724202312497022683274108691890956354357094511339258999358106562691806848768348329385429240729395403560593088183406673401634458999905436559837785713384129788208152830239341621501720124693010423516903842268847173519674652771476170775671390609422046343094795910360607884218713689248917719366812571602203554745433011937352473086250490698550087831409732543084448377911379949900183311155167962989098062584823791118705855643913017871531548816333324503196888974951689919744630040461792814978548979524144225858550535467393771070812002388459008208150945698799914654009515923846239791325163303950792586892860829601925906202675972017205483599992435714429299814862668032340579661217259812028512280728207140603092270270139125829873065791528127919570303662613807872674345617356946191337217375718488066150476516883561990584908090599791309447520902916176373880734882614177628026065421802592540354075743092155378987474790054757042163343600897801142520521887744600319988096639143934410620850169142333669766911685196796224507373386043479860708813269295097823097622041153939061051703669604155688080504383632895464273204936092022895723686171958763466264229094797283564471337342055998139037972340456218767990815839918780559333739720918168984193908586631921057926898340985715004678240379879562078776571118433044111238858041460431711410002875211833847031505938874319036238322687782507789889373747437203899786392428488346373618518158845335174950700104816969239659681522834257304464674468811033848773262085887600374339269073641672727721939021074264244346071079129855463167650251232310916286478974147856879817304946002911598026887971008624481278432081402692122959596968482991885325875410241379523339502306256058084942162879470339882524658509117543558492519405392948261815303982915662960782308401681672805937339927529630074359637545847761957888822282247246042834944772105309318742018189903330030887994416367330131234780469386272796197805643151208231867878484498183907913838597416461724723042554860710968332570172475725717542303572173605021236457841933874194014805800805497545244000008231046406205345871401047156555639540543235805732612874453865162809065516508825919018713382778091759650133083541624894177485413565147865698541028339697895106637206139820593520061088077625164279489933316101423369300843349604580850141406195285365224127265027283195254356243281776065663736355872436627473952519427624157152321317240160357665498944022689097631999150057467382543194677881521109402130249596780698546537324188545761672164630188945886535511220264590017036213760970923900682295634406942493678651453796263985060597639066014840852706365224476477610568023126718131881369166570088125381575623536213285902582892107839617579037178158470702462865561193304083169586850692859573641616300233733580950651395378415639445264589671183399888547129834740454719607726333241834550002249041585133091077461125968331690595727708727791059236304317575063361394255146304429983791533982601524255047544090825436685027506666132163783014768273490603993603597574211474391800483607532320663594568211583593735145101233076707769221049638068252491080614824261502667497486274434314661596212936971168916838171699167663554084702747486124133696511378773405554566790093079169949098435697610368905017567358040809352847455967351232761740417025332104496475692604325509893539274645543565957094297520409438595462909916480163501224650527575377975450565229228246436305509009277377692539911372230933309479524144848906753976683069288183058736853087487210042989989088087017993589228048021168003952751498151680569078761135146426462503301802699723645973925665830641056865392389716907088411173952572888287741636734524237680287811834074340298073406659943770072547576674671380656163482566350615765914841323878867959735012762021052885817124685641062730576909952645502844516599968808629288569111458738256496073090056005141839788772028476773665263661614585446038506385424256108202110231498246072731874234689429052486188589533846130446818040209983641994798869537674432537039719324268096482466565608540135668286501713378529474053467246391046329402116787640373353515958564582810606778765994434436389660169893646683980528291286631603707449879980480557928145590055015358693012102949347443477528882329599922666359362534649043650804165580791277089788511169258870036407175031918298635586476642151243034094809635412609884812847788005344624051694446571237464661734268655171794166863032101765608833061251799679468999678417772622167722504213568200866538257829394130044445946280789043511544222008454372067806242685237921098448847664225955849529311520414350590490740093366536669502696127057162932305702395647969487363885222977740122917131294887465935911328178049868745384774978623253120605281839205230704725127023540866918748586975070152203599973932150666790924806636026636630282248067918082690319246379192383315772626728376586824877500511514880882960832866406642949617504257207076688304025926328889350610606944108923104213146891646435782241252290901007662062535085245026091253885313350608097693214613658564506061599421270324663011460784794832036808975869616780536802424821741798098366932870577512734958417394177765290196944579886773619356322827723487823475552699934888433982915514377249077160827138733060275888041847204458771113077045940710692676998140214476281505279392235300663993810089422834280565619021583707871133941243601624629501162793953704537198915781022957286826980814614091112050419181723208033164635409968758870663000683994802194891099282880987695861268340362233318036937333361340670525698509424153171750588708283562961823316473955325596814144767162058354011630410287154540540016818736285353548027584682658154268785554363540993085878079058289794744364962836631233595069815618829456319968022015198509330405939799791213011611039023718929504511980491031786738800597834978866996437587284488045250095574276912400695119594370076197337371702014748422571885320805555408700885393114844425790769690299499234275054792427802206886503289179540596984143151105485872767372618246607801670025153995807133346378282117938937517896741521927820481113948728479578247723734887962439806380733434938498989986154125737152451342070266645155481127269197906695466038257654199530027224288086536956917007193424981215313025714557743670761837751786725825303444285996390672912557464509934938639553314791715255163099920080327079685500348312971481665670264255096824498751657517294535066504030747965262368456400675766142841607831573281668018210629463637684172113068675078697780029044982898807609577016476993705774437301040872132688716856421935443846512026856571219458562025940063957419266615495903903680188302294993457118964788973670439530153902003505068308223788994820110429242065356057095757516863207584628896763389662143528511561318510917234880931889995710286469135425977205414865895632790927438881286647075354390044574122421835708402243576083559455143816372177940212846919896719650785208788669463687960292360348622605875447460132910121768069633215243476289695120830042854967060049854366804136947474560032767441164249080956795385861607146326553154495667778514630503179806507496300284154026478025570250845998250741040900319236762204231432014916274679928994405668253442147145289484416700387250452063461949126056128010084348851472746407713076715474552731840893840681296531799415150990992788908715505525738833509505942817213711322197538217230117117957787881529004638585473418171416172674291122521628253795553430531391138832234296946313357034780025893719133610388744786798723505819021406130166776519753613481515687467961477700516209110099837439924788815133746971800715478414480822938747822298338525732301874575673707771105253788012969414783092323495523470630173642877181930722135421885733387646253675384529115967304507713641127274498485830298658355400219145421019148436093478994071557234064782091259828604886909546009657587867531213131155631098315856482376368587871827133229842235184365148222837741974870352763877138025612109852034220798783849045983611624832311357664123046709237509592160200541159972787750823280326574747067151671367880060465182655872481718978534349249635333457322063149346201676852248173935826430380211335261886311774279744209948937047755602492227644057774663393846133007342534579286700799187678155253563390260565000946661404076350155473910311094038714247979688956683300885413596527953240564038543396754806920743035178881152778772686769488260361370389310675727017676376617355801771950605054574937980451728136607347148143687813044578132506685731257840119490034675165440139844673535411172226888341025400715724505576733204724011103448785889072416661900287249239847737301026955098697598186461997807325217443436414979164638886594662028511057448966924787415589047894847147260604080736629949286086235423996199014662235774479470834940593167476140047855221716587199446948701178657369016186576906803186143005877450449565420450820529314986553592346787801937884420924233194735290472121767128321828702923800656240450627097890349843242801169390544645337496030028692783212103193493890463969043380516807837309893617207454322834357832734929681703573175597651859923364294132869530047748256664853166271300944078479372073812655868668991845413976612006145420651286102110802270665272570618715029686385952080528277724951203843804799050929997843279819109852148201742644548317688306655515139742335020221428555224513488535161440115856655797822465207837703834210981349163881239522328733636003322086413565318351450671360200153452384416041392845173611290219942445594017612096662202139983899123363744696784560708458671051606000828295055371404186110239036155297768132095500144947107908712348999498574516360969307981463530446802407326529825735778683191868489615868690729953054026272055544656477998036912322921346117004729544635248274815649958024341639239336041443290280510305440223621745011577208946849468436000711257481610379895510200049140860589987460606293547948988303611973973537156033873303429707813557126053844341688158784641370039497025280402022228653760959317602475181351223731070836900020041618258906817799151663362586797473651303912670830884422274987008957463834742612382592698729587454928830726468360161223274778392996389613616298671885393164687160186521815072201950908901326235614390051622060792453358829639408729503098587797080709013148434875418414957814144047579550774280480135811110279233860429445916009139719156374039323423258051980371680892243697351240575010160641311126972099263778719607653762142248278845001270467179835807616050894098183123650699761266939524616851231580902316298316730776828539475024727662689797920836452002516944718949442515055756934538261815809349224519668230899440132525771733096221304278539683680257132589431612976421529760213831585816333545412436907322071124175033852184221350999640744958666252885324211794564621660630571469782177818424146375685847756576192759016209915913990325334720731349283878043848446789778804472933063962450810988451903451970766908478200261481908104292801920906063377964817570343708897854254554534771675384812116920301030330141436875658467383644449050773842505517473454298992121167073300527504636717493321016591073810644952267796896656354827143749792809392671559088063400855827274899711289726256510857593771110121062369747151386376557904818206998277511135670111973283966249200675050497122604817047244826257426240157764142172363462593703517803968226190073407698928945324150518061187701288258514097161118301713380844736515566639913751447238788166751316960046584517002252043491549833564636400676864519434729561747596680162130762375064544861002076998475378689832413128017494499753509372586212643167375118210623142011648934819519281031963164313171759672501625202844962596105632667226370688929584171842295234388398217945088156249612603434534921508886518421282901281973036736517877067563733281807324386614174104491825400492878720082628886508960278303498068494885579204933455440526016393933368334954398638446161882673740301016290444321813365794469106766459977934564555011714639636620088718294463153177430274391313215606512129789095381763927422227086402911815937449281651922958033837667374998299616272125875214745429966080314139469551335293062245272185382635407880990358024652772377039241759169061359096830732659725991595396849619927125746569734393543235682743313459566005785339190246137849413724560385232906663729854101491533155921261158772617724586791605083643999059096381963399126103282463583015913598627427043962876964610855096267221258835214520000710763559161603358033450963849442941301593931791570031820471145713508990738629507530225572807516824397642733672292893157698604508863162131982106792562627960815401411784289104612455509324781915661178772821277369495341882818381812235325617972764166500290001970153624567615271909476511632091445540264835168290929833986032400376416105053580300021140952462272951341174439342090346579099962326150001153478650165025488565066467615533407237457188614608191833068229291060259910559435232227477856281005148715783570033533276631955231758692147403079856591407667818357520320715301375728078580488385396141964097047533952813084256876950264190705035822465370922240469673769371330824658217054120729686009620008467746993109396292863923546153727561774620240278454052437093520226240203925150935094010168302500401042698950322435860047531387992060751566858389983430796687887766183709502321952393013878043571295278067958326429030358157500566535670653498352287071563530027465918663316468918282381047278304391080020154461200489718958177532731643222416535991479205259548628546080140549823186053940521070450570871313648665864907830773551001875406044385258764734048089923887097023314530188187544697261033870381826239962516324843322242585229332252653190549789385152555672153115832065595530973329342564423018411874866274666159589558532937510934976806293893659693676912274588258322436477220906249333385045903817837328242672708064272666474342591628119261466525004357847277761472184723517068621843366898234898838893977484273287671425531771989482975061129212763473978899495548628304515863434666972273819172919732668367882522563201748386630022859191023694171340815550886147210853735274564523467827562930872702146330229408795906138357942842918903556969273461090990403824188510937969319885438154676511418517396806098434648068195310128083084260645571624729424096633119698518625378279471611676328176355163642743458625689144936892655266956309196922116129616835078043746560303807120139621887658383769340793639221466354315143841558906604189439141540471449632785768836440359166466209189079408264615487878235124350841143662509787399304797740057096370468369885006577142013270652003418751023526003461474161516110615858628514577349858374825619349822361636889931070594639779849987803910842795671663990863499767039139583993686050525061308618294076810155110938991718090142354368414960952632030817662174869065851411606469584094071422662335692639360612213646356718530526008479231115960702675237904256885166206563793168358242254001477045233311957678603543516273977047716896956154439154576431098423777869688828845618230827568116766845992628436708340097076829603713928011750263014987786932877863976712409352408292306450408784850767234699428606928677077477796218883049747813635521477116441531442710514548488500051232295858509235851242695967627560217259466345037069040576124969951504687759032390305980859830988428804411316472187289192049453522827262106106903471141488545941407907055940561667306832919773931556587396332933335244607637700653912387654155180498215653323330040164332481309376770895326818204847696061760018121021315445420327794868343361037800952571780929851385792848134485546865272982262093597600000542891045849589726277483655688110333954438198137401730130806578153279317664336238487579380701766815849374218332189573312086991095129942114958418044814127597032794919307977508464926357967406872917416665720635822606850920350807081818584806865394442093111966122068329326261619226635391538969754784703174579194200094738310419176980106361577739225476911083840917557464337166191743874347088059379146262071937596762225567622961633462865584307607999271089611118043117636108891252839410301583225845739828969322715500491137994257799751745010846023160475029278242684440387959659307060638072608015510480605221880099333124373427910260697380751567116256809203493456640919967817351985703784930133273862497572027704083287744951346957831138802526960806197200195470752386325835922612571289001929895533152585068533999904516758155666832037159264948226860415499047849946181193326189320986922659807124234525110511199645493295398816283596726642602113714982218278876948073680344280550633790466229356078574640465135917532313256150334615127269376179197820887574538741294262941438300964655465569559580469326613068906085058140137585792147909571986002755323159144400794795209209157528854718375269676376973495104867044555179663205190589860806884422322123231354924255396720298959670581604678982165936744001494696844846747984454331511844632385670986566436042923571218390095000411817941268796651705633668812204461529485979667646597914295926444069466986056963131120550604861512028922623168017615600747045098641049378296433071799005319143843146472936877792918981254621096111323588312518103409390265191604931620324998235357205651217661757461346273257443834275878065898463034926611003012353115108066941994589900262552466641037335682075210067921994203885438507927457778384210941152285790695278001597635237857530735911359042963755554741377184273443711056415296441556769194732054822107377425789423853879526814336973794749164234611680981658717233526112828374118312617237232897024695658171571217619496616501365750477218924431859296919877730731877265938226056499256904359796539640759030029412203708452967385495999261935097824441371662764872878436366496534709112106884472553389562761608200627088043741877616850870872700723485082416297280872243215288157054503995282106457182689053111759251676159779668618084695795802828400652245506790293423158496860164752594763950498814506448974799378574456508591471235814203186052569795177080297856622687854297397630429194209832968894465187063018603137041877133298457598653993999238942747085262648491102570292785424681675644315918603345975308722034957961311481101619896619660506966438842814127208667824913801545240076296389243824719042246411737423634815978845638265001239401351889863642451893806322168136270532705383774075681765838462761850344880223200528187591640599399208412340181806409963596641261392225011639043756726899922125847817954851113622689002164121028036007931212726762578497075077901964331536213271209694660413099588980571960656614157852419559970639594119741849097613014732320447740689675088433386329086406413678554695327961832978152887580140345621979004592851368080876796166835117375437838097847518788152993829605564429130449058081274386853469270583738862782797185066085175378376765927001072151073824838253868565300837196379954088417979980019881031355965265953373762934253400020072320985331366913984519727584568446474797887971213369865938984901158419227856974216537294855070908847212638296140845612369334434048151140333818521564615448371542191151785989104658034420259043106375823205381947632702680075400989846663131770781666913419283460493998434172264352851783485159744908092830507074586059195983913172713235116249517193015952538601959316175571445182515112670189934237385575436870774142977245723838440894808489029703932917369637186195984749312511276040065149868365995181080566603629623871248565487177142345036024508285631862426846624790114043436763869195917743263247378902915610652722412549630508092588264407994257991893196006275357349585762500530188959773537680212261717763641459045348102441550486187091231418728766352167915066590013297720270728942678479393721933757640221285575436026639901263794168112363498739976385609698001008882446712601127800637450443450160248604966602784787988318389918955040308205924679525465213524286586371197992304209245654169824042720555133472699872423728648496160271102953732254565343147545350484740779509975607707662726405917259531762483150124696769094936837013912026427672527372112799121102950369980807602730455111336293133586202416522627667313119319183020754676422779744995587418233108785101597511270937072527851993196278690974711242047143620816721217074112464223022726224558807724691833968221071164177280076277524594614369708523858963195665700838189483106395352550375641926068568280167256183677038389654005261852965645391639591203869375595813088813308839000473536522466126239926993751354735794992819772399473631834168060145510120437879068001629991147080735956345449555912062106963011985481967462958057626038987260915281772002699221966174455790393441661830783474280193903787014479112719401687289862093896669105589008556121697179420906486334174679108520443982774039027308501743726756095696719212780606478614233434975593953719256778102583639974900973042581438238165764115219165265355269256627333920693769134003931351435117457777930099174201862618961444964534337620486434594181245512043869732237329065616457644048902938272160097518683518366890573042410602410310478329143573909369368415730561626932858643250054447992439779133742254005703263594337523704855285561953838100886245898520724178810441600678292025190264965855420072722049987049435326173129599223748946086760345576553254696286889920898300201812819537291099513118509420285291895057965064685010183770111231597284843220475243586902033082670152326842870515886191923927018104686851432485099300562144370668551753636674269403693340547922343215052603540333350513257793156440095121291001937026804461490715244816972205118214498946093116741766075541141219336141341782170761847859778747600661345483256544203379574777131727730084640951183609553986595387632629838426034450201708735238055018669215480629156978677055893447704283750254629957505593638788150862629399408689089807446139861239731440139049087473144478738350577037756966705833200807584141720481899597101241633575156447097732778207900640236024469064237080181795968430616781703942263946685808675493078166898567939016959098474037537650885849914149411372096726173293223894981053759687842761442966498408002588377047762784477439487525690699239598172834248582139425585478982900568288967649434726471290414354155503497569840707499656464114325159018956619639866475307221588511860540293415722644674377492187483059453881029187176536381315304002875743668742772946250676027723707380741211285056501649863948359814202512094779080373337616292722543207760093302430733973893240792951261106410863969631049247207613424285918374233449810951900069206103547645095886146933269861404466914882513383913707619071908701503090611979367070502091484112014697020573536139205694816663045077393788156284447248359219286711027466253133538471580774796593273373481680903404052734213526432567589722616638237941289595138162480878258345860981415572907826268067652634804907062522736217330442977257068395850953412938615836143229923306843933124496077906067817487169820185033034713341552491482742525240820215357267262380339065065254284951284094612032447006239581945603419245944518215067537393453992001089388609501822095296137036435738198233718269763019465147495734660193945362840503911826885849430198572328317041198114723258054344725436289192310726491383267945548504301851301781714914922161158687926143152114533904666161575416541273086912045853092062958387024203994986542944953735879148350681242703342171456522975337467282003209115284598506916929149246783281908348191248607723139242236729845132380158692534944604446692275609332690142925426990294942836583520262112903900229276102313443822072722327049184059083590926955632154144176977906179103235817007376260562699808383326654072934372314439170516609668372463350927083521612093818443095829509214127655017219614651521461789210271741104213195528012000468047780866677573537844796099307148494381592854525496911879874960013250556212916480610210113107218949751298460055619649425198852768847926980632224548790004545539320794312281226634083050726310407484811851329723079748374530904243198912384263976986764236916524593465742295376073430739830091681144376942953960078119775308272974265144830948956469072470501590324074783915819618985942682433050537607332738133306563990405877057070867794749048967790263552523407432839701917412255251957038475389486288957038934839278096129560476330870125000834039018695501353197030276104976464607985011914912600760777621013514671675583734738037530778596110461815663488157404151929622475341386830158672262605625143814048654641107770163086405894631929499917629083122709097186392575418312958318075668850849329799329274347969638623670057547392410362742821439452954153213267282002491496289667686240890332334517666486879902296102503742365163462988748268343755520393523305428302557221738883733007023214505525909082826489002694420499476117351191984060039577939421281118730782730454874997366343178881608820418559988338722759567077856119669351587655657526871037570989518688940446754956869823643669851636018436529940262224138946773242190534899377664463626751748179346281786359676705195602901794294694283267182031423557948282438694105602618350709520209516483218201648902909259120825308814425147520930050429204237686902253428001718357121641706824183862937765218874959704426355964244005417594045120952763783592789063540840656488836952811594016808865841587134408187775431313705817303128343713905652593744710202653745999103102330871787376333688985159237166626883385495528522991410678854013282003735667103678745589314089503161328207100616769814848800602333116820321513330548698202364610873936840835900700080387447635785978557924836870435508890494844367466673019944934661145359274444732459879501128090780011859414579094677501941221985988713640144889655715639514764203286091175327088729844671475288977254779752157694204058318402714011705127411526077638190472628289129025623153273362132090236326836982763832194971062420471927826143391783018494386902607549187338585393516759369588442244171357846779624433745337089503553471339085646503166505773381623125037669998691722267583450862116672429634372107115417598253207770139064381497171147401695662595748806422966890844872308146687665484997910657856995535229407425966917502391958736858197593458695937232379605198084039929662457961230707501031606515698785773572124740252258057969149409784104574960010030110014331206000233161190013624219583246806428084059563724427597230917812654415751838593887602584121497212101836157363219239541671766855449218657564538936433249113754187180809705230666707611004856915600044359066638446148389286424838418202570486486753829306675406958343544481593751570828300975470739350434517179945875230048385662906129693747620358637462978355385050599101943065019967189292701474660177346059674180065639505203685734057253353465810981147984162245583869881921118413079994445416570232677035118639366074203393916463080286872029269484732923774755523022249010653945759385535472393328411130993066746597114335461512390578643711310581652735780983955353695502651375292894126206477728691110704357092580461084463732046784778405317941549352098256595101557855637148538388126533921071111417845817939984056721301416431875198567577862656905955337012953494810399209925271453784898563028848776882558988618949890947578161502027792205983178933173920387442121375547433414814741535040327801610514952449944795758955771161063100389025979121399844240659758204548734725058244272871849679683077446360793442738361177403164709458571716785043198494455470177981252138667724529436649282587012025702388703653732971727071738608673861902303586643348779391366393909970365627176063893604837172835746330585679871411002324005297652168684882576492178143567778489920688385205622112601285046071233350749350340066376364905214647782776858500982643051686075128809164551834189212801526745047812854258824142179596012591775715562396149074282044535122368986892647429534864614762101139235512939782255550525011468474391303633402209612192930029131895797169894165450512504575572310572949273876256169001575800935551062490305943576117495842432424820948189980013338016653774231555859579697790649891537169224360851375640710890443768145349020899483045830517182468781115267195933099449536160420721596943040552067526857850212387066375512707630564758503005505017216886498031167036439711132442210660715084314072152636152158879176139602116756107280142464892978544812656623750411805724466926540403778796644236980293260023035794385456137122293283632505487209390913758286546163751188812142687435150648168120036783220075278447931981978633524812759034942502312478585388003626475332900981498559093713624202792169959354395129143509184329530648201501354729967022738083033712296855973785430576344855390187917458654976159135841481863320672673226996902869283564661261624363420576267850764705169643239816908093117161713030577093082882455027644163398901613527425516190942746316904070850554871569219747139989827914526533622204378184358685053198908671631597303387890785436671639948879374923176313310510699525748570986421716082834832424017983110576819005816875052967519787187493423840305476560475822446270619542095446113364722668805371132396336412490490693701198570559763846886909984825761903780802319791474303959095157667791676680426648642046940994392102334266539209706249857375458427924689069406930773638024672130146984328326269615173671645617958606461860439582554860493809571808499579375529158512423066552531647998031298181502376571782704507889061522397419493837361442763360954369363482849679975968046845133335791901589089856977821941896167308610609530463578762829824793230147200603651154844091539093546428213234535965731733444465601696190866704657901343863280506049254947731048665986516180824306495445405240851608596414831338618761723835979938131097708992663876965562284198093402555929668163460424978569139424969747310013761636194618933824511471940535099680053901384008994515324172122911186299124325647186386877386699472346655461827633061165956258632872354740416157935841094603435257813892089125882123981956484875877438942958472765753235669287908852075822742347204637892841963529994422959221061716466983774889901331898205796398385175399742380909367267255041590231444241880261201813092516823612486975934641897638548753584445358414953009671353079595544151960798589365396932160587420107893007664280740838463733244240874936481877174394229433501721570078993054778738819271926923480436991106220967156595078032798816212986429390054622201926087583061784447642315060186399138909243734915702909485512228670051549859669407563980258094864669693196408664740177324886309387589355093461342872636513468367321369954691694272410945673402271490713730487942678975617982673020062034453258135853592731687047415174671047704351589381907429245615878410238316849192615174203004967773548211104455274556444031444770729828960544128401542231232377991864299653307645572358459355393096024365745683512276021668462567236486308843381250624101267663376191672690724122049872526692086772070469536417119481727248747660498134273356943234001147327595621404551206542827686106947568390011235013832024777750684404867101563372599836659857187241083136246633105481884696994762094640064030394353411436598792192779041820653811484821655955541510756396999250821677221844628562145020808921839402279690230453143010430653872427597993017545004070665058152963973192110756728243310797587575726798299655437528128322964959004129204075783242067151493145143331137857014617118306979459517979650299114692816649537542066881327034213666311125904457186362493970075497868731296931731586187904366346245100553943342978933148937547351587443049257079425908091114846175784253228320236986405055087546294579262760249409058241058855214810275896028743876925615851086485387026334319736770533898051345856145377473314679314692189231469120450868694226757843968232809936630540029275213328257241264119412212112634852942179207661573273523987140526882597845943794905057891130715210100234262033796730913960832466204179077037738817056682877425570906562726251098823595605606793671304335119052265624536832037566124580344916016317385978349986463741002215747518892337059720359884156459484361824123541973914024547646042776896525283683676630906996166739253848465349668697220086577132123165147638759924256290657067210155553549485001489929818017595689896863067017286626825415539221047865052488487408209673606042755879379317199435825035834693280366274924599912678141407847493428644710001043615292751698486327429007966900619260853512948733898151397752611367877417408033388287131705252021926762403380855263566786766624220859745362390063780786098665815709144799462856137532713735471063040433425593515900933272183168622485769787461650614417781393673575468312610835702760294868018877449756256506422487577767232581437536572184076920607729084630501154466643354009296086361384195245164866289068404069037546466013579115885519596841225416261469817940214972466672554088719416016586080044846838324934436571150736639009729382367087659364115325765558494329110474790610537287236070329681489928630451596231051665577006844411520705983041807672635610091309271577160759370430574401118956984459460618141775879927750835265334875049424069348422791425580291895049421973105230602125592796659219151094183601429678803939657253766339604607419823902482858695793229295532124266990304855396797063185281731564702922889421905769211874783160905302684566150213282007757178111498682947550133381361114408389212559993043934956181168010990239112653751391755300292392719474003022917128806688198042096926707215689715557242987859687354077860486940586308680118163630673599320293708762582110175530496390968766489627011510555409744554707072429729462972615319785302804851645234038776641587021978424034875478515765522546010385552277783409175795284237023212632665072524797693806775153190869605239400584970454282326998365774164984850724043067191594179207741539605592553516333901359152013026743823716503181843364368951659227715408452628930580323220169538801442357283808461336907279632295965169224141723225228506214093765329695540601001385052819896693641419671087772559089493711821419792496748216842378068443796500740343719065439273271195114151849344060691253461106700144180894119538227983722969479587822839984208728888307449454180789960909591418795728231558392779438450030693689466995876660763072687163965685974797161545127133389153779966594604454057043631337952670287829613896286100992380959361357508419582964863076451908958703790950167622046375857682857450495630711644282071663239285714401558102518560888508672075342428770150662879886509031736144625011931640072961422949098003733400887426357415294588045592921643727349689356026136224649794809812023731281007718912590133584322013734370904386287154620814841765793368014298020019920721269292034461523988724536145180653499908756407498013803827917501410553937019365172679765245396491845488468470360892116507391814153866081258341408545368941295079617341650481574746741852765627628310718008212875126142112037533958708367533225337113554342540677658459222409761147239808706387148318108424969201044943815508359298464438216233325016276401975174340383715558895152569709331277962195834016237896542643186584778120575782078936516002043350250432807867246017130779299270655437587395475378735748904237096960099502928318928071632322514622949072696449952155500008011081737835043834670518526017133302727829760423381117753159889789557753890346273701867855586652557717431994849488225240006926729543093101655073747416293034009553294209191117267493110668045478716217609442059282113890196520694309585257995566391693933517732203088671279427882845167557927659425637759509718869640966801216099449935189400136425796848087803823644641233307999707559844462770805806066511507171012894036242523401306984892038035776720684208723710865083554421587697487261522531441483822852949572864802473662823882608506940549666338876553367269127781956371160490995772783270101894353580800844649909866749469194872346389046083744190867423088715115554582031598374310462470576327336916709806860096990723707266148093580289542942457769662227272959457836857386703241935646800511899285639041976709445031394083444840858079996681101406889559880262516271761256038286798148789563349989359012681762747246152540549198254616744673790725126628309084005476063000931740412789107629306023278498077797860090422742023304655022781171369606694793433253702650789056365073355263333642327640925455009806054970759912372568747643003283022325922828948703785039882443251800115287140284210924975272830806761260405153259176176591344620903119877182804461157352162828506382059267113388824379433385077412373097171873415164329947692553859501605092501964318187694140329011703335663976010339950003528549181342036235394158474035888044285534394372678711759376183809556590099691376225306610974738140002201201961914465547387141112547103663044266114926939889505540797059561669679290641213827124940905543451888283436628485460758897139595729941273921562841508254552039406729301850586212513785428598633145393407422673173386210079342701045861629085686602001270471068570298970310809826112837918288214604819798312931407034620196864888676145139401080028191080470148740367646794611884443103437384452747311544607259843170376864197636570934003725902807228547479977334146175650187490640862811730975620166804729248186361106647731572475014345125093766001106403963022478521501833720949581057419403204083462891276532523138489154853899190083387978418776556210018989167417348209263880059690498984075477752713284457860592019278454477238276388185090972831309263747755567368957238527235448036846487082466446214068156041736554895308376809935484003661063513004992600074199946302054951885258608625582488226321478235390411243923979272823162757838095542460605799895279391013387488275040817131802732409472844934874464499102699986887487831813071745925385939066322847124370204528645303327764475763086991925545755677838511603914003349481557144176540458018912690907826016082944015561973489531794898664279646668205713663238472837596747183264744828420031348565719558837329779210184416461358889168336831075062427140511212227571269909965373681288342450843655976724146131439162099742198496072594435021795210914055537289294204712110659174438069656530194794118118742376797330036904653163996804956991426306781731459559790252913198772356197714519154952184321955817670244554201807565781830363591674336955900547524264136214915086592824805894173883038319196075859271412635079429368038199359057375920574785909409578114823268403295785424683652982352169185962485435157225350751016782926867019889559449136314806883838765760584227053067811146441448852521858765821351234365607669706342343473957699868776471042089350413607442388722458107111459960961179739854466618812576817896101250364084677999933515165465942636435888253350575819843873689265430001074323444052826968316156901297744029571038665083318983860841200150822508024415438413427962148988218523304072477408904625366931705786925400415855238631452838210174406453266372445409036340902105737961287628829414816982732012880897916001530369159653529459529844654311009822388144905370826401992756155749281083155129325152430052444948478145767960417025143925635444331891530664588187979589567683561639885935093719931468510372673375319192141167418633103967333600450711363177473491963695940087774761472969347545979627597034550371207153075639315235103884454618285169585971687009092836601942855425573120297504433375047132495345529881076484812457735051508255278271501399156830008924006253366394034617752612004915564801794686073363023102975935211933050460624682227299104074352027517309694153080515912106226229900210994594154740331577211021102483881137284721941879355317713517255532621833338923673637426000615284460899296242230120301818357803511086958981073672212565720109904619803682063126166609080622406256585442751211154217600159098285099500825156184941236175543165392348051746963856104805814263920715360775554927887078159932250331403015536876484925575217419756885722442157123732731100025122047984247536148336387923567220668720178141439477030933223463479852697287964167657942162192105993583754455964168561937927704523136131416682199374008038441362602367382135095493935732691911821869542810565851101653955305443976600078797059534592698859971058703613948409334286648412713044964842175434257872242737976265720341451608747592646539650962480078540890574324530049827329100675844689864871338146279208021523173391426802228893390648128480227398487744840214517929231052660235990109085809782010917185961033067792674036463113494083239474485332294718225325491310468980403169154422604127049869591776875763388590855608215986782452201465481545307557081351628516079518305155084745142834905155124544472934222479221483898166851180969116762187157920200421492844154466392409325617482337674238677501291116472263842575682903104146348172976708935750668058866810172899928078406067195731813641665742877955883808931597640802664884323814130320060689162355163942607573749466149229102228706198438100868755180495878382221821637491726836692593557139297963610770751909190009206983792792779810993006136101647644337987128996215007566715072716442976823385544945910854036873558372303861708028292883973666651017206102939051183800058407226163683310654534063632632121148282495234995040858802333481586121154600330827969388713524981793507253619050009081984075246019034053181836705770142620789520092034773220676173047058380265867875806807032902752814672749969902265896595637696768902624718404298313628395806748239651919021887033662265817078895474378972648442644642301054357759843794097724724811060064830940083050675943145041055265385807389795931149467425041494250634815591269127790213853318384646240574718097344537641983935191703959692749445239577977144535329912290740468147213677216687404622081591696290326635333748445902049479194058447035146885224683458473831858405539565556740188388964635529243812773495477896708732078376043828814165762553486966690798116340554497095309499634308317900849957790959406712755909266741848154245527949654297689988372414056513477874736293772287438213140750951918651250519837565281738171778759199693881320768496268462513457016008455863580096125094292464454962692053563046475315700392735242036918743843189468314294183475606510088880882557883307289103130246497458728977032928613131653837263492002867160786664026586212764410085487384386999261520663691213292900618852344944363037692044855649165689690940890435958226992864914219057367779118459217355034808319143063454218716850484416611036059525883092097369551427369606986462882830431568903384779577283009742097308889378665081989667512633068221302726361609909799052462888175150573390678944154744877673671554865548354737240368178780677357854787830459723725743303116910161024829317404885831517570741768869200604027573839253162426037686381570497400866736307109967537393324884714548806375741486931723834794915677701622281912510641890496628270706532782106356146676812098087063166817113619350556699696403426251834305213731626889148290746285049557358847129478260679928642160822428265558857136005960582173092937029942377025162971756421290271315157490336914873573693438276312837783860943887180766483032147210186849671306790574915957370563831256981056728019205184726783889215983774543810352571381666537843599483056544203821696163099670341251133765871018797257946882049975786757610737610816529808664006160014588297959361178932371986745196102148727472498113760070261349187093335297389019140166276759157021333905575800421840191336508514350594312203075883940984725112814804537703580813153613018672779466699139148741362055318343480560710443637106168372379324221185394605145622589004774865220472557081419822210610289737064863376451724616136049848219506768280056682941223750447761030461826100800919678650652247824435068703947175674139291626192006024775612509704067836948503357901206392437191418836969364273608173446883868292611689869746378782979261221328234695940695499559869837069294044640368883016046887968953499127149883128693758263422138827623167858312370409932999942985597913800923707835506941463512354710560037769979540491979403058667945656218365861358066840228082257861904506566619065863817673192971763990351005998785684435659964560231089883479364402792945252189165848320728039492026057602092935072777249915787344822484130130636412683967881194001577820124239338050573109941852305622653232809937234176938497501551451986003197341021532643630263653782860832441927865571986096481074580710265431867615463851539270280262769069000282137299841588577237419751500692021286585362488709631910090783403219324193141502859110490186987781283754310487267072762580787669094869082825941980382248573880197826170284036506657387298484211272080178014239125730217522838061478673334021005931580361019802907707698649510750134757532981378557372647209938012881798300926856410360775484871150334127402537637318993965386061234924831230927861136720482619555623060098235300182637487154872293320204227019815634987095400740386519158309847552918374335963295830997737555566243584082146581536590332802391106643356253037702674892179565261365689032619452864776248671516940147975219353563243992979503108062307378707128563121104681905790408344510573955818578654255919333086691380323080746295640028524653407884455486670637609753685939629019202636562624206847405403777630101100158390102642444775788412250587834977083896234732464139642388838404489697855564465132740482878842911494756984015683450559051339444856836100815374924763991231505151075886522107942661665216403092276177219468860707631617217023326024134962915859864119023899468078635830255966703815399680318848400833031929152648296708111195395974666470417809872547842949824283951490333003625872980153705727631556716760926729088352410762777330418933348659794584793544160830676128863117505873431061432090117668303133617039406417476844816215748511995076056327290197438239081262004360723474493028811610051141253883316432795450081898566264109096706091465711838541651472296626094672129824740190776298058065551763337049313168890041974805400912197107749897774063499426993204192463432023363589998364245740125769733723247675006232048919382379334833420650934701434580333743656119441699849999048383785011938386978268173613173636321824316459675894060173616588992793984849376972637477272286652380150966149532771522829372088498067096923738578780721182461343152363395289856322417605385617142927575899673386399573806140175129992926487193399383752454812857819793025412474127291506391415472909448098730080558162779960744158276192151544547308408162115407847784037183491000336615797538488672280812384733953006575777486447076364389115913370970968415753380099808671675226200506599672094872868478983340202991640977945419493053996028762074865047768075426742474977675507677520720181069801209842273454773612682701119160040029986307860046082508530409376420504471014595442442171963669678436359858548472537064133127501189405261869322998708143879393648820582017999771394312962152936329798003022234150495311566275363277147555438628551381343172197298494790832806953524737988011415999763766458632066115386500272551883868026358173684436391941146964376841460757487187988894276384457414039546825313335517883790609614382803860991646865658580813132286050166906950832366659392842885216193724420162796869199208881476443111307424750420638842402877478151881046666777415800335067879297168291723610628616883360183261668461926805908713789830212018466096801925600171215771412433482044933384969316726505498591813923354862257651678171294591206445406100474208035975202738647075455536813397276715847697986970882936301698317664462391305283735853987648349848934740043235931963578814314819821376747606464670321355678283165256285974958492101658837330083165203864134444631334030990729129171073970018370109389175316867538580102214760785872619977350456765563153896851273286229638552317734995452882102444687702707734167142706960819775528929161694060853193052828681012497729757866372566050491856537030558398224387701365438342964686634501640677077896352631625563658617726353997402869973426066373290694726310642499281432594710857284251300353730580349979986807264082344523068933199288252446141889605103726866137720721388313456049083043118459252206129845558330860516240257538532902732889439063169185895103744211583974285564354593496215083770518045219007839394108599615261653827738548141949930530900805526586627358768219769490803632154291310479141107395342355150471365746555230199039328936160304448340593469727161965997296085541683159996185500826139727925447184919417688548394878883790660445297888301592848906893351261896919345020360466216688566637096922166547806637059854725045023989936224036409516703403922080177583296646146004652516624577740610704826129431168378456801180427952263193594997571530520341905666770806430533209689785623248909372468481912533568777450295070473723117390329191080617291465535446051773203859231140278199505412943479391016783592221553743753444281243981544275701864218877349516594177854525381523006951959174709769315138366929946939938481127566641478042939536699559966097618454669158567679165057783729441375337987907826402456802744823480361982633951024479566583994873243244535909950493168835125633792282677742643365563089535027498624269917591256702030829501136810667142609942211705572297360018227075313099533593997496860422164866766245841172392659187215742358198258011632407895307003531032956102945702712689808535288457082085258848281401609220753775462022645323212912026929950985835670503648594096319816626317644484109682578329060603271757393018560141374409712825251226326384766909992679545743451678089635996201399707832502511878718679651092999263921969441266226252056196620506167002205462478297500164029134139983652246982070748539077069922291294192621237789231313578897938840423721661173242359304577574870727455955293555334131574742726575026185888452029153712045713433829737476153359820236540102333072366846153536597663735720164848938090376954200403272437771329350180545900516732617287684299143742275967847180025906927246764344745201879477061325096238782834333221570950479984622002677048346769933543372326725672450651821083665134398128527142548239235952767325068467174769936195217313188398365314961050812192911121262581925987809596761638462920414443820256763201196194106079996182694634000684274794103657232389650207659485036475076228395912064025588403338328748144527737286938763768952345204126001356181648969618244442365631377198507735919882334934607308005683103723108811540909263999951426312722808989792220914756057586437280999080098436116237068343857856985286782793833671272922245178250011412504610177890194199112046040500642180081191858107726885349219830143919309674432352020957210919365979392670222096204747683289077057901160481397415196875205043289027184393050567267183390161752998230454512380342071448772682254267251419031236571355418364116041588784433340315313342470733742636898586953905961589057135450072446675016152309231500965911569273477703280538843239123019882631717411967299063469546620282880972581867425704887708180362199354751583426167392652176630103288634605666885803449772910660319957566074962210285954987021834880214469184801934404527817751524971141821375430506079646044761805962700118624882419446772546106510027219254876874299621540763693918432690237822153756893392157772426236945735590427113807366762762028053799183143259421026385835472802357048224442121674091170175590714173700990780345314938260303981385044860336144457315038206153241754493349910793429291393001539290369932982980605733893986241955467924943269285349971619239976253831572264401990218255713611063887402636778071442124527635135234760068441646084858716244974053277813495069001297212548023869702034002199888732311947627586919120991213442418645202336379416288589420207789205581318013579821523721667244481755132556617947674174112337740966009124356964380311845549749940828235958474363216029624045557993572028679497448271604687982765901379134551201232099224650365454349197705717183418234950933015576136308976823966052621477308465617331199594115167314866310237936361599670683389744695845820813979904941446481576350885505390101853872836568237988634897720787021333714551249737252221051587842857121333365185960779898810248609741330757156404945242253480826121632315040181550914009066655142646691931090928926721276785997523752020959800415064957805719635512506106011540313324932885501330597755960126320629005600688489956666104030337337706523090596160928895716235655839808165386761228309338659934511764455788932030913297954274651151253928355168942351233296099854641877423274922598335619150627995834700479327793132083590233856128987468127935057280498709858575200813780987362740044530561115730899229884844620755213420440993853727165544024308918457142975912526061974924798564652311128286882847404160521287630871337015214986624362453886586534854640193489878533896604117852364707673866827769117504930751858941271334392826444951091367123854112329804262728888386079632001312894693936889287500079182625644951796157966302832915084453514789187839599099446398986745111692752518520421807151586046123717992321637786484171272124082314730757222505071327282024199425270832562586876276279597026204358373932458433399447409914838088562899134562489546764977090401528253864003009314792444822413316862219214980126592550610490786801656581444442369108573758088796617224622466827534132739078788358024133448427222526761186965065847016474944540414552037880657479024262327232478206850043476660201168722648179479595430642449750545530455509235505442273287663041607883617334381552652154885939792766933060994940324100926670577689862527310244669125690575930534471461866340997334985932089405963635131081089128603348288821782667122950096398770136444943149553006556642311760423979720522408919658752871971921438555905670380316362808215251106015034006371825897520159614403551123442043151363954820902493399829086168428521341693994109853800963097017472792804287435812300057997123509680240930844305729909826229208076245762876632437374025742823077008161776811784386196228040547968385344410498041932452569734100054835113388986843770717876505409013608286647647405028151936541087600760622639737487244108370136321175924013489814820320496648947383721078113321445210121948435331559526490653466233035321497088673072743964255631848527417062391950781003784490508950410851318154579270051800864118723465296414371101594092136504438513615188761319158857655157265544958866958334000043467758177777975737771766573648918469014182178453794899965984620124631604941997601106540474419280499433641606376223217307493621290743577039945900390149002480812776638099997445465457841206499780602333034714419602142774991362176981306388977247075733030898774292259587907631048460806272398274831238713073224243754814404156489803371758488667939248753179680356853347314213890518867989643314055955687729775606812950385767946750623601230087931793570739280009546586059458942790274567058329301209451489108626686996432784476295296696671082334924884386185469497195374792766557959091663734640337750184947267731443492798820557869329297225989163758981199352758985404394446929337150634607069314777015501762617144317096706652184545531144811724312873570105302438185300734240559637414847042203901378055900653718224829491025909375335534001265317394552461002816636167932606327662999190014311698954378611670094549389412042602744855406845096703791801113804809974421060251569628129307009526097510071974052980796637842293409607869891361386846150223006284021256895089758218023015367993233870180253207956312759662374602003933672733189371376724590375840419245804483307805909552807313776292768930905581280012089723980787780902685584643495964704994164526803056291220708685226629496757542849869234742597084699417765957237567415854543993868817353932491422732944815467358656071715907602151255748897516888728489225013160141949166650117549946014362185203938077122591218778476157857186496965917186118852560258564493138102270293772705103553830396316254578978531356131880717413163103189318500439087392782655603378019375534734947936540728730883018649598567482037066521412110811766305177729174233163582029162497175503770189698929057785220843087218040655560454165064067822586811931600629781783055175215231080050007663539669981387821402524677647928371251471801889212245386690200993397777460753793934001246992104205503021913666003114760091751180089073459150184507367262766814689858471970143830336819432396132399962722471822572555914963568609663995560091288552564663986830167005924429501804138717679725786934961741247835667279953478917770415734071684622938448297549785692618493962740491866787028494894331638549224176875401863018054647089795825376023348812548695806921619568404851993953839289078937067842699639194520121552497130065811882950717746796158603767458229181251120122601654570617934678620841362877312680285067332151019777156370488135840883112805720375911196720807605038072873984509114685601187382513683160669822201350797979125426272814156329600371025956541554122802488764149800316600026198658761640703789141465161830523812041942859579332073287835102418663112881785823696592273546091656326567902450511865320241813801871761521433380384477500519442647541242964733164833684923695118033455392982085683351257453865481061866522724751439235279855068640874543743194997866936830212415258877661614382706760577371073519890958292691236046222473070445032820647609928778419590197338221553204722558437046599062576147816895160837062435261366794171821151541759031121520068559272292624818344422950062888785191872108789130808430089514158254987219559500111234260048396557588914859361907306486655637566210433722156147983602225366311603649949206002256797189128257157910154314163842986098950767815231436357531193407939774351069206082835939837081418819166893555405412063190613081341860585138204577899809766563943326192781255728419328540545413193844133321087680249704543093243098292786048907682029888011548676458995346517547298882066241404603249006843772394431647652330397186571667413595757938794476873317410558483851665602216330757606875884891898111663457794393679941536635797386851398895153269961205386104407967692185345135441255337137727033514779399979569256876320807599290526629575966697830372022834123417371837675650620691971245517336633030415832012982003490323105790528497056038324563599475054234529677775412440943749272149217215557936823547110009185146004380700418640471731765497881561547281520787566197455804537028120278579392522417569891390606158196389321001015553624489116739095391921388266167022554219839274272502536682743122890819413476553505343380322668557121503426336869289554702855485370400704002655828491213155734443737109324210613270622961844904487966055401759893235032881983977346245932917527398803903001901147202471524917300068305815273517058210067678126200616473807814045686165869623409037592858462999200060341894617360850526328316411588113344325840421622114757981826162831932318038828570442641660805161249654923381731871926219727869732054166529413047625625163571246597499504403421559821833649913261065001260027940247748596657262799786349958023187819798352156194993316996817816495332520679287180635572059477224432154474437632777265223862670055357103996157458067313367930291823349670903705546207898431005283602676180999875644373595273356058482395585390669575216431468436197206906927665308536181880844460092085412998394212759761271816844583984920160964249238948692476578695288232318923528555589543944490641648038265608872356671721096360828283490200961013155631473002490089647541286789868627766481320974722174446908013736770105292166913455963397148973171967807085533138417957000683389485548686906548153216188711159601070168965597051625151773089818489220210817359475635521448694755808884310477712215688597445945233445063912932396199141677956409391152553412255383786686787288332479552292571884386983080625013139054350987970623382689259198960771052469385424482287017334794566122806974347194214532744197248299934413447724138466793421632944914175942502013115442992800113220127955733742256222570268713801365441101021473813051206114586791511604810525456264127584219301027280009702049028294062979521946253276753098227503624442716655518975050505084090693677714630849926879172640938786038619302393490484124096906129008354131746810366132548031533438011004131591093012999351103629230018726682529633445784827352242775437224329228170933173683034338736100182102351068085834379643603313032785861833104807633559583908575434778214430261504919549464136638495024281547482546612933418551659033194008245177036982165377972909730152650692284848763752608036416956453949493347409506284229825308797239798909605949092827792856409233654268557243279522032653839095825456868746812438081985031464120998663005641586517975828761688862160119855413804680775561052747448249864498005154444445542786472533930196921823293397922991019653316498475042754219514200448924359582909568901407763560926780838291397178983900112971914664287924165005989621700008718878848064909529301102666040387980916648662336667560273628348083622656456126100800178297870630237635024795610136932252587842475310615294361729551902518809005521908282005144693755585395360048716897725819601886096287827615226140259635375343628681545446198309242347043316570833930775846722169547283551750147670294720800426839465447755994686628357210236984687485746916467592515840715508232271323764159204552059376614456996305156142449878594314260420164195421609665903312701093081063875528407132719391263392529043286447483685198882180705171480225393799123760130827732440342372936549799421397410190316894801886242433075035685377006595070703513392175842150252352892169161533882817750999098625736452195683844851433668846746205810072847087290933007624382591402693859214408444446550273059765856433992045023775557973221663886424481536459104538175151870153349893404239118525475479614140883184235971138368563204110412572247661108753953727013281466355105127787454691386905436633880083559962924513771466070888342922836969378165247370520088217010480970468734393615642052853066079077199798474411251386318484327238674727434696071013380552911906834020805356626615765189221535895352663167384052880179762807250230548859800730564362649211398147917255535273164636138979296125101848787310263801419068205886033980905477969703450186226910151320206779416092281213914594337577148922236547528514359064861217971555162504296341622332192144591549594312853134153786452752968580999913997193962274047286816131008851478951117733923004019845868412154942781857151326591984316478926700041792094427369766168625432490735154266651205196944419043137141262332096977528393325601205557888199171615140336817609187211268560129726299483980212349640839476305685829290896021610073878519955108666892018732163770022815135573538658892689619011217606503152918260405416100909019051973115913663714191996544220436630837887842469276893805498345819384674727227303436781482219091234183084643041314182435066036766878628555126929951283395945873946518737158961202850473868614686745840912218652845674167904078611189842852566839341952302337110973206907351263566437293007321383804798258428516400257537392333018027126896774559848932374093430914939497291898469050270780198580683287601612397787398334871105726659906117015108707396057504451411773027238585274879698409476917884887864655822418066411781296437463509584964146391090905665493781042499378758200735412693678331912718376233124878141109117641965938358612683916823600118452605475417333588583337361850894377241004059162222606074936029987435034268733510377529635991520024077118407399320253271025374112177773227301090165337677576949697825821985703467837114429383275449753372789365518386031957886238653599231904694149838282783469063242975077205966011894099401867510613732458312688999419513593723263277643560534721396185065259982010077284680019075557640545512612959312707112203612848171159501629645858900241850383186096866043088766854134346465336204725207061788337636264602444473568598767193060470484805904045718650191212513396442593887385204824945296854478249685521411830472661512307044635957163596890059508457238416222783813325462452068258480347491754368472169841495315943156679309168177784248021116372959597126741513201144284135217274709230183820796416303518237921950932422034511438320397062396043736601895094330501854736217420682716783783518762492253838283146238093649860588045428550153707158906999553621040754336233134472726503203948202834510685582629191396359161920438210411357050508061919845141786094544179229284885553762045747874734604931697800911556910421836047534934150032313085564529484965886462951184632689555715406841125715984891088587360303975703928031389448696687914335916091985356270588520480428179789479784519774863853783931476284426797813108366952474322455312796965723316235820584091837904031338336799145975428825439250950047933186111076461284969465727061145700412337740177712630113866773478469686114891236161584411439093513167270391345436351336327695295379555007650611116201482039391517396189698447631977589674016580957906417293842784806848470000666004738888470668017354129856917395928243587327646975295567294248599151391873724700433706171265273964154813659362602288703387750574967221295940755063805147407944784204964055528500857481687880974432687184182341550921434824299489315338459662031668686964097745074223541803280051878318402833857202866388043882744115295595508918940099996241153020822429963923127560054197243858779141988592853462357576470461413244107954937752437734906546660849586919418106002033596798031318959495429382355268235257074614136378951396481674110306938982736303057580004379539583863280536845629057862520557673053833840394230571251537779201499146315186126636829305477451593142022046004062817927069953241422035989378929759640554684674220733092867490163047862423537045886877915499938151500493549118168085458547629168302554571131910326003769638869184469511629629302803045751429596806893032623212330614310695730062088810560281401109641658464159595350449022926276388592136372363318560034300424461410229561141258761294866642251750772518883828659234554301865433467591416360031268932385910805236498510870827578084700614172024400239396017450618464650345187918073491512803970241256386359749052142587299450321025376382812686183841955957032399025146804949372671592376928253616649584792678385413695550058209887294695481440332448492684017223157656787698557514981573783834683625813397094702436875264532123631241555448933603234458465310452012417755117941663696971689561319600312966473655628406780877478897599448910095269417241424958453429891807925403100974595521187075783881514108532238107935346461515591260618791274713079385283977943337517537133167761019011080502891056031830027582307823171754580552543275284671455862723158592186785318121713955386195459132416681111630722850274606855437772716833347069493964082318408976461738547511496134170212466607909451965192045668690485054855748866660860008320294279636570609358535573781884735896068469626539919517929371931649093958663398283234786405379825134312030499024642937135186329082066653065094520994881510814496191936978650602719359765239252093177327581117225409667197005799591405203372569210548315071365212839848395343458763270936480039258323139883059853849805812708284353322985071589345577682619343369260837881682922333241396559034204294887079300334141431238629010800944021373725629102736922318467994484673409660349890861756077320602081274900008804275465540009506639303908832932387356946835960538389488528118980365545339824463438410586347909560004759205975840960101341310717705327520917141994930528706788897526351364721189497067873094285744590579000305613739692363506137218832245599701151224272796500673750290645294175540279160246191700831089413140610427954738100387668070529392059329055814245049608922062722185921518017747540227311824903419699673350367147544495953795944514579286134563170057460271888265090368065879030171877418401576367180758944683275728593064304975930028731134119922890706782150183858324324083111693935197319825513531470249351297589097569612360573570665938658023607735288466502314579132288759629798569368543453712518014533727351592098244191507272913415851246826129016637778659621096158997892404357931844761034356717145403016127158465710987110057168607849695837179842803904245318001712720124509694603994522515181981272118689006468922935513526735447429929749681962256048914685139176227870645882497798509029121149745785555084281876557738409304702045716229323895137780847483647667448935538915029646374211624688134523983207491295345693090044261503244205871731844670784089462762731292033085245754820960563039136955813534422350534349078518728748277433540492432497383552558517011061647081753716532182868586257400819065861979639106189176823340138059799505238636744365951420838086580558292530526309207862424108961348298723329464916487353643135404874337612942326268840623887404165308388364597323768532573655297387346440303711461038338597551433313000245068623215452702104049096768297397332468955419174794580734624025851259793328658468079765875739103505589088259149873706835435986691489615589804977547333319862572201798041157312833767023880743222021968105356022280276118821295170558114576409678960081370592979986270253440278410801088712310232094215823474076544060813913073067993503297834820145517673902776846421268178199154505776561194254319237416305747093970639264394429184553910514545660132736335823941479018787808703412070436299023490696441818755617439108955769142121841769260793977451092711742445802387294148275884783727396103598126405282440249156854429236242429718388810908176318800815584611737351808898951200155320092428093573295217187129380576078003222133319289513275814589232293247029384561127342052634801922827368523896525714453245406221955961446888648079451534771176609175403510717138295898276604764135403898222171970252504158770214052510976174980412117983470025160199088891632497660415570074476219519674740664573305649308560657968143756662388148854403008016426836471859811935852216297993455522278273130813812630474101396724827062452888943188063755104470823748860628821305113428463943607646020305612631600962545326663931886556660258861627977971880792148464441244376607520722656315911894809828540239419532721433847017515547991913672348815559449732598721469901313134437856272445616624068294769625578944151501148462199557735707006732008775240981863767552265871554700406192260276988215537719657801891253980595108847596433026401455353807909307899143014634961258706313898836490791550206024661396178429734152571939554958079478959056239122912256686745662828373944122039899645153269084468489945715538208753327820797170406602611991678336374471649951492063804356780764870216135632251907922526044609558378506807310646943274566729544654623838346695371568956422066222224197221485609408258883848866488953740600434146070763531876908151012654046866035218244909498164361484275091357294448542690629080445446992894773663263159616574966077921609486911260737068654380859323005084638668870906697106281071136279845520348657821059719847315018452445117583261858195721748719824657084747597655807390913762087936739377640007353673429220114473798620353734207075267985560590633626500054108865521775874033213891362088333381079150046042018229201597627200936014166275623456112169477658377704749153764023226406895041276275016626430276851860063334244843139215486860216090081102053712843001998342120498042833750560171915017395624935751675151310083236982036291534129578917740225306620523759904268896513295021523858597508079205884726624448493817351062064359328507490255973310787247862626611657177859045269764839611176963960003139473938195050761558561970046484619411814712710825391203729015976954873214999163990393964271442480866426687134486708578574155999576684986348435143683777477522254617279322539497049388546739349000446121269617273092585276996584227215451005979087628003350151096428608357250357503768359847104672817962712159849355453261257145997072484247732550585539651055503918014321157896920520580102727384450336497060008230781508209514624498444697619143498539001503900823457707055354272308216550848191694904744512096149667812796680921947633438785246062364670724177228630506688482638045868996964856890968153190196060084033610261053170788737952809220370704934974485264803894291272955815630654003677006324159253080935089248688854733148065002497038225401347101622550258283195685418711341473293952222281474882946979448722659407333938846338299841791623719749835896623955817518298120915734133988589986068261920179511992827007845578304964908964238203525636975565410598884328234748245005024719762487551153406811485560251262188987597334794751138325831619734535067730552715885444670156010605580044071306414540505112444730609736813204591129807794911976081243392025679216997270313953214777824498021823622681973322994103287312739867070162094384835343364929878791688531785517237999144856813388357746636448892737457128775557857734658099970987178991290383752881308309422844850768518360656505630968665334375042184365963657045561431005179941667060530671446575258296449392938632535873495102239396929132667990243841286885645576568419768227486104026723160466317481980683851754239102177342073840484156284645693182392289944218846914576610771751609323851479288104590578310554645625101581858501999987073896673052346788621442516633396345978455221898397526854552853456211497407258746953133284361322815946736406239987309167796365690671945436156894165727188200179513123545881257053622120887299249253495838434980505353410184949000171649454014000016535023588748920479238746721947847146645968949444958089937801390264278421620359010549257664850320828972790606185196464284886026501198504019348651379668532002563790323013326456208560866237959260922018240704945894487515446851219710441144855809508745325113794410745920117365353927225748720062589539969126627955885892473473937533609679160551700444907213646423672785399067218076532871689626190454826398865292461063393731302531519430483775700440196832145398558500936495317036359973921960396333522993175414915162113212729969418266079693232451178264402007719431702476237657548940013157194270795636513967223754291526584326601845647655740236730007913430664986717601969930708467801846805983184324816245790508902450431384030989398484588584817735320442347447141857804220868549069514237232064004992668978524429673435019062779873648819598899230894173738387087877775446119538379400978921912045995346522443207256193374579875363730564342314539619092539795375079901103611035092088613130796637185313450570777474083966651900387996920649356205638584044916522483975131769386389509730960661910752902415190580716219274548184444597534754327469455091734021972072182394681586835918252785156213546103215818325819956152734199067613780182958112751364445945183223218219386901611185090560954864023903714814620528283490622315261568782383218761043175645526257974235193451610750382986774855450913646828126552247463616787304775083446446220309140118876511532890896048589987384208503846640479054278812218228908839022055808150685404163572017447123340240891473075296434347054950023958472608979741116638001704026791552237564579477785412006179516889544893280368303155632386856513414723123873225750741283519801275813014614097698278577666058939268361470023071899197247888928477659118240906625196132895573992342465653388762094299100229692003222541330839129856807930484931574009366229774341617107392741965767990697682358102687630868483269434525075565311338509590868902370245415512121094941175744675772574905266686966369456704725375869709326156320035827498255328518834193237626609381715905230796395674699820252497614338744812552430704655342499657252671155812521664140794145656029350908574343021757734316423456671796947012966994993584595996441255395398954457017289681074423248674363372065101738465780706989639908329722691357999398189148762289394771449657523419434351595559962400627745299598249170325368614953886631172582143180882338477364393714543144096195419327848048440965537071463908981049624005168381271622728349100090980351168061647529494581277569875326392077761671272267978503444974688140618879920872046447645139132147201725034152175362323606110280076629091606786949018397599978125866053726973779169858231744897770364854507437306475111357331452581821350212939307406509871923270028698465545855860037729736518876690153005498029325948002673856569635424379970965349280269712735700917711151465985385374816299881171235479398227300469496365594157747483883261798358492456611822232161209837113933137578772583715979213655536581387830305979501136736467265415737225391207095300255949373786798617135872816659671566927748878422621834977991051989781819348255783437608313062092028164168089885359039987181292585887893532845575005920183347265970499968939679616820382264169351295688431528523197788280581556039045548018393277943764614456394721373064988706071605309365028290017747067834733003847560364185888238036317900105730826712561940339051617675270386637487431904371683459607340677409822395134981213016985139884075970720855639585662475146254285457682102162544658752432794041757812554589180345345282866591909214806361622432047983896925444532686281649616385830461552952991190921496672351321974917077766706346504795940260205395066748754044761966937524846513680366725696666904937290553412833005476234024430611819739238266926360011038039272814955839066918362021236053857110922682588149414162818236077512822669437813078236597576478872447135669976984919663731414119600317624480845166987163271940131268164869163339897483532004314983370764301746613912468023763674360661841261507543398860461542571243622742074341176737337739221369253362609980288923383341700135072993170078811659629427073504414239488339639783734178453535618275805721218853253792572336165102371740026488266251464005353311821245447114382182866002475922635494732799161757501905404383795348542330683590642126014907740199364870511975048716109647063048813054370146969156985254692640349810664237935069325298492477541620495803692892889247773625906832387026437756887607136874931056857138165821694251256950399884574116359043597787345989399930229000457299451413389551601116667795765684260791672744044913229620582763306188005584538665779755853646037536005350055087414985607710842142585681281708848666227482792410895648130864536685292962449845675610966951200343905290609274838795170409843551101696698340109792243280983813370207374428986459447959841749291164031383983598861886775589017000138499139149118199289390473619572505176637527139697951774065168969141263850892404866514562553623421812279669132158363763251150101640244823864307413761815663104230290286866737074173834071088574569600040458508237303841180417383896814974399881756519516235098210964388945564709289001100693367414293225934532251661375880554273521279866854820317778321890207077354871600258256934117583482693936542565464373867527169765021849920099320650165631556939890624728154801685439852797363463124564575911351482741311700059977018684883471606677093981769889659734548265885988860620168957507638123564208422631790794789321156436254275191864256738093000995697661508665137778093422714638509893155214514757750423810982239963615252245326807851996731112723792190397772895591752498886670886962865932578699848900265717614583649153034608224994394272417823967885608492367833177309214154194895602609431484553489901255112930934249850137370876205675031275387604490633195045067365042781116378286004041264430176779978492127563258857544161961267757485442882818927032392312411139038381149598139854488519633685001491580843082899929308273747297346201887461114298348750888165477968964563861706526302808445463700030188295081453962851210206675244395283656904735651760912528589787291015237130528764458927343537820150934416474390023553285612173936860148546881305424747602711486738809363693886689859874580926513253281732593914750515097336977962323665079202165177160062983706324295370025204304420294746264443619575693096126720578606944616969843405927258367995551944722926618812152615347493311603356594611660400258237738706903844959597389778087352117766811641528769787180165892288694072238807478209670541962289125352416761156354169830967673899607150851507921526930655338912713600294643198780029449537159526244118782239863216078701815602700980843621496147163697456894418864877369819108740752639845833487257439787585688205412624345784972926594510801373401560201719621188246255481153840398523579904630186453644040363396104473432170614404519607007654436439571470961750295481490814725543674085782606247240384757076623305502780364127426005601069118172803683494528500823607270340760659373790903603151956130206364748946945097628187605842646744806994379819491502370075750908864591603780055263627886094016465766992013752948643437723198199797606069901144434593596705679656130506417490453601208265807770856145124425731674277890121228254587068615659072801991161342675550867795183771340341131727783363392405030593725355260443832282339379817022823942824312261351228945548411910617628645626935500074626435894621328809035089675201614767555972443550648631172421028357139271281579931195500198446041923445158811365571989577524388410628511128420941763890378089736553393652023089830431103004318835155940727911351606575274329619018588130347687306082491314672091085046657642545127292964977565234114273448874096470563329060397220334135412446356182261324356261046379080241279680603721253852440019583143590147209966891146066184428959629063629557072580370990881388466574914880272298372703188486387982052177332663166100679357895134812194213256984748506493710748071223427014306703679828975676313427684287662542899962161417339832068312554188424722053616451467375247636190624395287613816796778790187657345561418251047900746672158364074988095399580373523982888019997331592505685466939705784481818050354292904367996764509041724491699738515635190993648124596926906609505231575458106859300032693818996134574731201526996983780002854676150724299473898347879890504107020894591924784074107411535216059263124111672170813329767643618679581920441475815958062528282953286333338595709481969184899713802263043391532973148068609116604282741437727444109911605599374194951854820145244228632443207111806110426377933218685729629594507011531894649760150185060818009071536063346644505438072773258474656445892876619298912374070823767068667868134006471377143543481259747600696655926325895885396581332652931353407822404754917028207501153024813244967443464904053624732162873542636989591957944124970674186092546940295035255491298005863710039706259512227392831717717910436136279711699976946245633969413760167691703231580442097774016479128146773007306143603158553359380432900946112881747988816014611808167740400372885242460061884793047001831306384838476043864243670316875699217751324526471931457341721317979060802389769509264963624055117745545211222847503033304898944597513067204742440125091926084671942510585154043512123165810056873622584815175484911867244367966215965964379935157592761229983090119878662373672873664963388988096801335021042749664246166823347930481502246844542660712209130305221473098467715198179576847733490379394714108415904839419162516396857954356403303341111055579889883981579701447318734560588587340838468214155159808573717303814391801192132390832335505539974676112323525693687194692102456489308147120011908762962998027496732413384912104042289932423592861702252136568714351419279535890752003965271400810519388031565233706952158497094259156753879586219962861815495258638513763279410354251080552519806871557512065140453073448304862015450824960316940361564214416114735158879281542604464975803011971943245171352652471459257485980820117021348849105915375684245338720699520858792846367492405886067754344201401414309542104115671298563756695164950487135957225473765820010210749010149897512924859502406403263108066260064106140050534196113088195915746261186612510765810099252649411573561060382896130967824749658433619223353443622154564554687029610537401713903155257209388331061322939132230624946830524821001331698421597245893923565072192667525879857257179185290797191373732326954493844836421723972356197460296002366007558513998813865942461823593756035571492686798754891329348706651865603718599256045953146849540517436968524168363507010568970847027712521157556811140660269804681082016669484388742202565455445632612451864647684446561010186335890938269978366252587943076121737507721637472457097191094089681033727062219995392040258401966697442530319032458195841289576970957136406579082736050606409375352546477933597803976558003020427764374917858313440427332144004028656608135361323407637219185239739337737102830893964825078943836364526641537144760044474440641060461112844961432842176175509394773996464044540849042580641973017813173319073816476872941909823667769953772391165104378777389869896735301398974046394674228935294193346445065785315306617122256617511219977980519212057486947315590235171326016069967907607106598838812891928490171979784400925209750589080036707271231267838543256840553512426759351053227751774900935351415555459875715154936179425884947071926283156329732906851316006159926455352792973462701046199464268495804261028772162380846412423571569908384680020197817452941036879141269275125782131214321346777132948019726532823211510535377406809528008494494275434205041998536357693624526332928584921461277221592781629323976846192620399144698574883851892751918226722068839007415980062598539847462640443080962608120082258732261974077162034757003057164708191965350334841275497919345603175726845673534012639750159326169674579133458056839891358499004379864829471229591872981658960426437400088690742808739732296100053189298096594570073874212021670384633889391758689742773503225278075186272290745561326370329278627700987808116379125913638247168477266035413784328444427662217902659114656642947113822319273258336928055597792904112871435631203573438549148567822369074534883097797036253989651372153123771610411793440497095519970805813795756381247548012196653135576134002784165461429615266494722450832633553076495543306004584911526307323684881993284267568253928618302475107649463698123557949825688098737342190046869346615291886887933209700826509218030988263879421921159401359585253482245032468114170277703234131643478969170298244184599756456668690349992082427729975088750962042843198610125615236818904407999042628203055599308373921402112346502796153210006349697183554056197671835427151158001884965651283144293670448952759852622779501438574422926775084634735017306232466434077461132132240929757563843593768675676454008206476842523368478652093747462439308750066066987631052034185455839302761776672008261657636368862974534049921723613318995253234972703492492891120920324293860290095161961369440939733500762249421820406145628656875721167545119029709840795118523031952825447937653237217619170119978846806502517376824780132127696290419662722708636155968833659119597787036305925818510806555885187006607690009139872963511203342178811436001780670239837710643551893896968145037574068740966683440125381587238253043429297008020800718082678180139242207646384292798199768753544549987820142878752306359337282859422194490602937731393780354023319913657461123473141829722005695923697919409220029730835587709070136613197549917232814654337876427352919826394575569526217087469666814087422263596634687047755578257493776671997732381788751114217023909792042621044194562767107000765615820204571466039988668239595935129726140628546153135985936714748607180417193922763162911544351748300075058044435001778309631121992063527796224070139183763088154174984098936876674596817347685934335780211591864901597475402027321852009042219845203003849660259632198533868927352081025142757881344884029382053414754011035061333052875017721369039106856000514581376130786305618924416810250236300455400428517459073787589326065582336615849911720128625129591772640599240589541268677193349147190908046139574353578705720431081859082392135809346823155854254075623957919863364932539672389134569062223251502930827764310911676010123055089489228963979347725145332838692606945010880256818775501720176271723037151333189613650516684092034914085805089787837522550589076172297215385727343106050654274865523758775625195879646172539651967563326130812882381357552418043336729803339933634891815504957007636772230757239744762690907991406677933726117822527443524526101668285231255417797603816885196471855322458990493479180205518344086823486609710137678762408509761529719815544003889771322026798237931471694775910398430352041666093302812759617140481106593891669471225298327432672239328641148058366323580001854796256714638548071970644378250725933414741746369831723590547272792359235324947140806962697659776470639002776252389354539600392404819515460008943258784753980516206999113538366500494115366305100506666987833911369328680284433645335808250649202148087037364523935910528558339994528886426235307137390035162779353333160523837156911074452435018560271072496578125508474885896461642760433123877718362812020376724093149583162934442704384639849272990955059807661856052337375748430840002887492258020232189420093852064497160542315345459933227796605693907316809413510883881027356173254742299144476237987390258110317299795403832971120253857846499577113553868363691254268967463717596981326965128285805697586286563342443861809205253657841509378906731901746173264556295338261261719630996911601439119919432792423257559962334672588593482215060186142371873437369922169753434819842902925413300337189507311331277060690662824322503374897767605867686561325023634363540998729856068383434474655367311705441815930623317649426085292950089912474555249193719834897637023140573701080426278321183968299709268511981335453653302753485089405108124566371200178051813191373116609434548873978390312398008637952143330862156811222321336300316513884942327834612574648965792778689704715822744424921579050610292668921179781760115335218145791815996365072243565696065705319884294635402248516378383147238575160647334322386981243445648780367771802051096539637043332782122694966632028413745715544762320750952598207313985632501201394423059735722769985709147100167881086569794199818501124556893531027671790598752681665355632501374896980971778234718892236207948741289917235786426391896626734765619269803018966120491723611795718949649447045168175782300571109664242744698834036154297626242259762933406627584086851737442311700952584223550686932014429217855203234148310681596857334073668987739504707491755034909977984885403320967498189709097548076866055106566568855725039066629436232463330234749783766646760043742397615291608273471643978288187219103044793347220078322862751441791894669261684761365583122402498607479238136212884391892144819139739981344970765214696075867513451507998606118712617658342474599839706410042891947367458220172295911166019011515325723825719611478059257581533672930115110455075038550682066193394108317321778012511867630205827666403437013737758861185137447691820209512966038572843606398932431103878532947757372730714530203510326901495301931994287531452235152191764803693356334843521247405965649390796167435023226899363564919747340937357414722519759576871942424357674982986415056228941353633541724459256815306238151501723727644397306447887609043646394963960244898762605928403087954973600039023832636165774682101239393225343481944840152004308656075664884611911469843049727580219842099158708468943885069770144491902475321175648888240126954048423323714244029957064736753951925250103110281574671213023999837184872293466543337867868059450223416937763449299986851573032767930248000913310741488742755371262011043593506416888455032025062012593171472250209080875381252197203736225987326836719020569733646330062694729755233998444246317088633251630563920168904332724037540600250892381157677218022565245760237740615935496191561161811770082134516143398962493549431673313545478561447618532619326314979586701405567456466918397790554440583526935425770979199065287713305930118357694711261717668807402598861945847375379420844815185599751639170047134007512738282701471588931019220492175456149654163785790616484050307405428821370567653772280159275835249062583501916173026434104895822799209618765863172554373282460777224814984936210770371878530961472661360795821348283988030544117313350018151264857650461876318869608249187926709624379115356005948852961709022485850684071629314051562105623794631258110169217316320305874876776705392751434957497685503970529617928802556135103841119222432540791061955662726589953800664086413113796574511942297387955309958737045820995098311728352823716122859072062614737181772840824495030373342449694899844139480189641142788181622398114661093689560443545752566327873775506661774553060110369091460456956570310538418432677198615123538032700098984748073286930558899633840033472075156832765609109103589261827819637143864207769639419823081475414043771477632160973399377232322181301262344217569873290863702494146976863553047596570664924873287006601426772700951348848596480227178328302753648609806371931859864556016468432212243136909253475645422416006144605394929829331242849581360118188528214011116434604920991445010836348465792479113912438295717151783649542615069900554653673545828824797918467751672188719616905531444261413388413363640787912424516233526472458424866514368387913905714044037066939163933457923274639689570323026431254521530162219027977678305781663254181503634406652981878373724941640907358449164821467610152785795481566309472274713042361211329950929782258877771794770651331207860598974628441535277072535153900896672300818136079446226660902804864037546935744343318523899019378287010928546588076110378063000163265254611376833897043733749296443068540563352367234173719923354950249092750822000034983281814379312277381490383237306165025913933342820466955169741854893116292803543739352591663397775033148083450533433084101529498340228720506019327987098857070678603130722378082465875449227313563948736082176400209445280288747912698973885269995076149937968415588378854335102322370262163321684389709838093720511351421286390901513170456539956369282009776659751495196224878154344185834004435243758904772811423217594752862466073778018821266993751278035651395914033386365295965083984049964255663756780932369381049900234805666568582634461632383083660555116017004574673444661839084511159945346402857325950724570235253118997519487903669071241279642715729115269196171056386024361664864226187270468457370744294292668300621299735767206593267340861395807505878607057395992429082978321967284417116697985926763057303200777473952445247769706708383221750419272069178444323015005506202043725864061041719663239576132059491374019564764010435696425174032403531293515265801064833752111133377219329018694646095594798191709141616802753413716281533023362921994936735069386371201084217691203661454029653824706221152687596055409525739586688146734052848643374092224680517246278764846759248821443429147159649500545749256358929533616339516785124665309921847835538151947170597736161745382361664562194453394184902505770250560658992470520985730323235846709380824068704867827007418187232172825284712452840840586659654340288379075831129692678819794504439257324243657144950144171805958759550775798366169192632782428242212972030140966023971324876918937002300000902955968584494747861863969815915434576698290706369553726866557908933389335469966710880476155933386797040668926652627461289650455750943083058407703792623706036643961944742165949828041778313286135512777219320030365493152574968384870341848789340015360086241921481914595700560820090222650707740145493737543149484236179303954923138260527039125457307941737916735687440388054105836822468367136006146418920807950812603766759150096575945254527464838052660136730504172139890591994780723758422272125707279606442482245611424816903142849580311931174767337130133307341819704315328942633078913464147081083427161906402978188696477930484035839187771574225313923202837863135159594804561297874262563133044824149462325764146756651330385417633521134662481314526585316849496216091897666574050056743637197495554948149085669948652407169402249404548727268367384449707932076710606893114059323232406045243335501964398622228214624133660413886824013483800467305425768208670260029922960211666602385099703339780466838782213342718658135165030730255972047390463747980126588046931779463337617324129842474646536045834876839391685491881911633663980316653891808768406301856283416459466177632243952158703148958704165034108979159872546487841499829923923973386936024079142273078525542396373596233719060480717105718254611012913882350999197860979320983687798021377183528242791956797663046888234614124982012337966035117326855144794728350412323734803186683958638997427619401742040469094545109522742802725163137629352755943186544302923541681820169524950032326827448021711645389536662548960391114655991522702931320729876273360086846693803816814720237000849497151209939531765356063966785863889125668237743787385261759142184236154526550725204838962615009020000514004105298139593907947009785205264784086961956631221357538734444657483743780991998358319554905288643846992680841304585906865170307315453564870946015888447596387053518894465118352781196173806425196282137849466449171533210786632580130110053959939325168013126422703624096754373252793165429164150802283465471923273171561779717551131138884610430069688118003194234308876767760320852577146335001481820928072760328050434879656003376151736374415723917892184211458165747358233479731506314696733133227090780844542798551722658401618258647386744872044453433028044906996411262896531134558833000677080415942169459758320703201110954099898275769091813028486911695358164860094602300326523533192351554263891484160529088109001954672277372454574648057862635601038577530095386641025461558393738430698043105082713275873549733025365543693697705680873054682820867632089295275080390013144148234255477427475984777117228938962153883877871035590772301686515484682642950388323302887563102146877175551406912038686342070276714861272064186260736689772411623330157307091915331677301116391715156292092990240617657600406934409763131334158389158989927360703738241554448229762659663371718078753285556428828981416835666432251559222253815507982577045671847741765006124159448657212149296930896054881546438952437196106541748718678842580369273069961561302497593045289988480922099110090568831065250950928210019897956666904688941441039861751304242407891216853424265321695241502388015172399994453565237669867262885686891620407353718745701956959905936465514304781278847125461524375960622009850093933363076452743962812654024681510206985564463489927839617043184583674316981145865005632725795541620772374990562363358499729264890134156066757328530394051068259209503636210391844084865978240087674274724301954732141918550288572734840970603470264483783613622790383063479484424908102052156978366801706242098214779106134643967668861275244491463661411190931253351450064660102912598610005110679571863721467665194754272221164981803715707721814616969238265089476131385440292960707000624868226137398354118286684925574157854138445031040128142743046956123403717390395340427140885635370500022300427307200160185564061192561707768071062708296741092757313439620434859176136407611929225503091455944648622538389602295455538624029316253000938072188083103181673097933479147167011460261211222922806283195953080414162777121349236498640173777637948741312210610291985575360944953433335785694619637139777799215907991005849130319743260384240650607579932485228720602154280570381146035356441664781586975050834267065734418250907461350067198107696046646089773301067838979990949836169569482919082907181310278822729271371934443048659520184723962707340654374020031144140452896904905023405385071147365652236373887248001442614889591839949707139174445590037966187643052958770634551092644741193546384719595133645705658936257202791654480945376608262446927674277811460445915255268309901137581131043892119895557521209961571216879788370335520375453544274967372858369307184781357345056580167932497353721737601696407463417328990588656545105971805304421355893179802513886666187408288714060954453486316486784928323058679100140558978233216318435177003667869984076465531697510157109352587270950834334400739833181888806229980856030987154815757747749730666408329743938912758893778087141009887651526833348435011019692490990262979971714111110321662755433290039566305141161877979435721373431312496851486076232549818024182373988365580360281486357283558495368932180504468203520940875624126294989349495113084297917055745824161304562896374337346284092972206762750476857259343578519679930724648028008675054511415288679026588107535556280244087246246008517887271527482731426391429263107990284881446797588862223655661021881954076969190066045145387104054668342383718759677477178952574612223431769112019149428040992482101183033306734225037351198906477651164262055410496879994581231082040842770932669409929588199727978920232514266792468699907096448952952900774334488762332100309055058035917437518232630349754893432279407866836733256372261587310523106272726095757657496891917752129633164331602049664996003834217384141094347191534490962564535067253671277483234037877212838514243159107538142484239786707523722842271114590629347755848396119066611653619205739670678874961407601651093672878938998848189971859522167561420765780752898692458145091415101512992180550595862988830079808696526682269373392609061676191426618772261441172748981848554587312025237126033748900399607403675873003460034738076580454015022495157824746867431246575046541915558245519243881188945068135011736962001069759039527904663286285517014406264995325322011515413991632400505244065356880335797899978239475692228848732315591036655984749551061764730642022865961415044846520232276924043601865625644164922929803318677196474851815437411665168462187883495205684230513930864829413307204188662658519759521367114350385257651715853222994857818429726275633285679521551045024306330678247249484730084632826320599340309056465109355717344866666207040607916789615345113269409198560145170758277545134968501268606274259884601241895169956877217874490771072379016429297400617923383816601673665627447991088839851614145317884280877241402623377718490037746494998131095838011528763748916995397345341806335991008232719605856738986570246928399761828916381043001397348249624746398909628858061237119164005559881636177446085877552883885277763169791402127433744563962084398217218931666883644742730303946689145228848026623770588804812758868735080668715143478116974521939365666316605786092812406008944475825544823881403240637722825172211041539930270746990360096646110765275796036358297570725915748025686179988723968282060330508559505209689313891005793789307123197443892714260841957187453927659168275994093694255432305457652891325124627964907093039182699361511004932470129819412106888019605867461087102744353382751810314944969197639601996886418133760336839761625560887082919270287303970629411171350080100133347488276447999480063598217460702674268175979794853233008501719156359172530276305097613107023192042930215848324910756675554312370258444757369510054439178845766275208526162657493443556926266548982474049349976143621418732965251405344652473142356013033519944052969479969603818084449307561983959596170057739840544906582770776033692946570059497965974036825997141821364502131687780467794594918949171884536945941945213928612110126074471994801465368904888623692897166484509581819122387420232815127068285355727335079178817252305987895542724989959064349160214907904116458465140212118826222667744143215417329324010571888645367850000229983001482545578498832220322563385704396488082667864423828733734255257311547344519449865571067690591198361765250839538704934816458604820321082661896089593056815189155951353953707020769219725616647574430604431817143802513279222664515829983248606952856212216864370702126504571211309906218483528965267206969511295949524565120877618300785669296309776584684714131768238781504941055452761589356591335848077608331382158074128212063631013995295163124704726472415071166846600988164412352286938430654391188750983209346083725806730669829919177515271069602853884975539149659917338079498859920381842829821075032200036228361143332501256890457092627990679159935093113899671851042361457636963703849016521334052489906178504896595574401865187616502085170952462844247788280698888383079733367908202149732949801870217366840490056531962860973554147473862471144005502171945309993227329419800389526479606375914743799254906086106500658207406834078474292838916450838725484327094415401981398592009969490661903685549235025974782119168936726680038010400211030060443029088093912120042192392118455640728845228451623881869599358696096974735363750353763854200884139437484097558201073702171799576296193019027652605401244267159891278542005172513409156845035660626714457829394020512431488392392289872418284857511907839895489008648158767299056923475650424673413274196142426182481721922189300207119441941739220900136386647742650793126842303207946189548139299254452369516316200480252387034425363920549679368586894693031361816715436287328142083013157048286276443753908686199253686105516097521767571439387238467062885289939461942166645697206076579070830220178041248678914747872199604227961006645362006349620166759217050460465035155878312847372953815761132117605309984924665008563704579541523648013894538722253276691009039714507860837662193751445361763631892818569778510452705405887603296154903567991864724625455247774699709501023617759056186051882406323571397783210453689146571414668765147655031153601897928201119260252214112968770864453933072866415376109138093346662001144472620102783444300804282182334087863098758305552895010088726897068964498735371202264290393491588743511701237711191582291336065636555609034406744153859223572217433639002182518355764503408224604868339107546436596270249019212007378343073817649707139261817074171974694136687917023911106305649806896077705092837703075987763324465188778107593315687214565040410418210652208345413788783631756073370255787641101525038269480652947341508037778499791845589567947416549980967478496911449791232736787040328953082644583795236774303347396947226595800683070770898982973321460399860712975903990325549689164791602959830663656496147186718743417722740355070544405687511523699251760587392102431249501414565430298445394501448137972528585599773011826771569486374011431450431605294572177964478852133504191936833112341275581631781587661164438348491409649279566116791313934170209903738340581778628563171667523530301575902199722890226215100540757631366897757301835356293871652236387165906537730734507886256145418516043062729077457968060592057206845743158041748469279435276799433107554437909964085516916626771473596830734687373876867705430130662575554076495722377311775213435337396135494875813008777785485453179817177285080633355243040087712905739115895896646476794414899942026954677069225164663034292416436130802816117038225807571679963914368217618758278177907357037101949336509248313145669079316843655079533546448983364172937398669695683917404560026491970556448830852303426382408207795794537811488357224346951589743389161003097663724642689377182761488699291174908936669348779583226949956829999232890597901383510001093810045729686157133433207840540307545407580222967223350069134940638611924920620224700912737669973390056439168647370096013432826537730395889252783497145666788925778255413710454414787768537234982907745872469349766936978819978660195250508864104612942154781250910276001837907670615165627476332183703993905395787380936812429100863854256538982787723023974773097091338574911559618291938914910318396493267578755447604790062937451453793931362703619711624230071111321795979384744137493138067452820557816019098880851977076411822692435319600485454730632653682112307004814036084117370470528986632390711710108907057796092860597284007503801662954294030315197766512523401253567966614141390801218461361673866150228399140529557131240099380515096866139783608564272071345894723417146439872062965464226684668366437448995057445932892274570655609864673215311125781626633284108708240677260394077883461879348394609275821910426647377275784472163168883557640896673630005625846678351088743251462541962159671524534500099801183661081012690151549123479671957417098147207188285096288840558891368693957425362601593556389193689010590950410941278140811040230612665111114355080746593021820444492629612659403684097657824672271288150188336793515032131474763036127948988464187184286003416514056470576632409519468333670592082819612649050442664274965702325686329559252406661746743793863115418913024836911539376309273667817430699665592754459819960433807824748819947684562687914939701526580946955470582558320619073532820545888192236297464516923215856648718399492224789547437739343808705316902423670080014635222432616149860068066325650645049417564992374419391806232502176882410256505950025761966090280745009483340214993186457670193661148248611765487491906887907105128330369898611923411339698579315837656349500780747443037761551342818995985560259954929356778388642246490344653037771775935913988590680882651509847192759923220821098935755991873938793202106638854172912298581968453282852109353256240719621984227769326229375452042642566210074488484905730244565676574819232154874923111923391486605690561619448699173963881955789143495707875193702864304836213895684900719308519920155163031338279934805311700203213354495198621250644118659107968968268306046725187130386100879324299379468253352150473652011972843710397687096544787001339403351328462028608747405032252205950850839297702242992893297343974210269770260740542439722532615973495128261212689326187723626714714314807923220094226025393144757877754503861174798183537573363148031654897497209891189839656615695727028670515378264568256857726017786690444568484641211350072444792072707670638396947888569078144604165680821022135527256768167071435752168790234484676920411118144835736934649470085714563337168470864257248044897339888458361565328228658824975047786825964601218702265992806517268871216284765130963467971266477430776628146527456519410811632477542679037462104069185084739108221362691723152775476518983822827568435971153844638517571220732112005221071900078952584491292727152949461971368540198531188556117569488413855726891128935532733012338806983260336615106164153094385563775915181290810761644695186626498653132807021879574506313455698138633153114911985945637002085181264973719545345510095791880452716254576973319198043999582261116020330483489096651594203388268529184040383491568109305080630234581581078618192227066458772509624757250660808473645195226683170872055240371631954256969312237205268139316071834134776032959452015236934676858604828731643268264515967895147176450886207486816221913762414887168015337520965262834886440933460092437645043473584400736327536303077225547778704563307227255025232471756071455850030765099229602241903734616469525785251660830174730394828318013817551233286935372678429059793784747371128136734416842774696860245296661668622261604472449559042327118160968568687261404724384465963310364506568855330397956197656497106822296442749492991468802070813857878188073519534660481917553797928498619326650354609609237289881772404144197856174796539038045787670141121041524517303108059812648585882396443930883406628670607701574046684721611757775169341563362974103236814331143834801987681142288718218919339233297649201693706157396503858258068678522412661189674102720910592385863800499130157548982914697780575922425536600721893638304887936644193480180999383209583669008686112804354068312003361662190075799847597636412690482758517562463695652546078149191035119128420451915357352034239154856682165963086449195741620664843883525757401998530682344378966230522539314667062031507951903054669647949721386100960910759346444763558484377771471414672743838895907595431798364069425193154973429770500181862761536054775092327385309197570463715432079179099175712504008988328628111224223207330350441369894919172508239486682464572537728910375130978114983688059975988732513302063560707536320207237751138531954484557877232039144940873812742975206158040473287612955901439150017987930457611980267390837922958816132655475906612470224513339433787284656604514533505225602668325058199065828893509194718526865698485622200018318396557165203805389019078766013358530501109731135275541928798863491729304118320250482321957654096794277225613363255533971296251340110262042877300673884589840692671857753106805431788505123397371988444526163763864492407892974462499725806751973746426770090439439721861081588074289814424665450228576365215587790845670088167666248035995287367002889663003393618587387414094546699323994793926075041172899366054503680606259545052099963684719439888046255717717393389633738383349358567497946771866664814226588976026354853250233236494471476672280453547186397647394407558248753114852770269369836518024967458885527132330516396630683000113780506395694427649337209969261829728858458474209672281825661914452349608144935429439758338859039425465040386355597773524034672550106458377440886724923037489708259547914492258667904458322420301890625121654252407177400755062505944479905761447837998747022381051824466798838844714740960894103175271352929517264416340701700404044083335741455785624291042813947835348172357773283796731789228552158435326736566336453354483752006293181779910879200403819897508658864587224154159648991539950990739098673203214752192500716841729240774632032090092524060826664470514825517612763822496665256813470810753880786962597352173038364769060806826753595875139312231481744258485169570849868657283217257915204854106672051008173256465721523346107885037043844217393477350224479210676023054767474156196386768938718424993761883654934120949923840438766324359599684142628189231097305735826966810948106713924936914266355427914691307062564913455328343908132018097380270049572414037107110571096642222090551155552485065031151086328222016187405734349144712515077774337949161056848023566429065310430060016382973654320494412245368328510033649254651097100607236158378349009204382865528921551581636117589846027084420429621292900694499265085748726447180656434936335431895356791657262260596706701609481344867115188824004569107503159332060064824319696038123096871772828939014139120051639060752138858096777153537675148790732129557655362119753917925782340886432847510971142091575684059683360944640098616443069516799873837023791926338670998442502614854646214218677909301833401486591822911661073112459623470659379001723527164591591434970905503931618704128097350325360591369869923233688790748406055070782755716761035713506189380694741235794788030525605902213298513941758339051186207353008181253332754168124855968117806610714972823439207519346466071777568252347671188122848194861260833302493564077292951088873270595609409912520469575527902149313118781616764572610468419220712100351686424485416895093553176854043896786919435291246548444469017416469371441505736776325216809750324146364726737484853382188457303766568950895911909568712900548037806836334815749033850798570272211909279658344223948010403097061305930902420103069592999486742858700394008372290361794012430862320060570184496003743813155986356012987257431462938681872878103471313498260049080740468857833098705257260054449991547016513042640620519617847899475187170666133812936586985087803330895647436762527003378272264865640229543452019058764464042932445819922939910493638717408793876729148872682723295217214145385711981194621979770391703657134683271944087583762532277601171177437009986673263256805924671156785832622249309046321118903354770869185524115044284709224494833404695122146070748545323161127638079644477352128992265929372485064591617344748341963923254078407071872930138321629157463943778022136073890728307226971815982012311695806548672168436536082522542919724462118822914733619937972244319641899864981296605336843456663364325265424335636989957028161586660347396916644767535104036395599679633988030498385507032357280578970776102065160097272299129611692338672411606555259978082874504495568746171659561587856805668991962562171353774985617733859017702651545635195380471990187493933309124826044041954653064821524266591150670276442751940583324336299937157742291632384151224194675588615707721803849238791971829763976604894961301084055170120936001903673922646875995131389705651931072276260780522173766138584236849782715854309176216284971514950750766399191716673923133783158075431751467395796163057709001168934118321955212415725287782483714708740024601744327027814209199659849521049985049005418778840262204257992752187245216024224186921126748159760309949981176702740503092893466126501770029250784639936465817043982115178312527869389175233549357108989186836870250565744781946298021588835046933483396356891331299760320228964787040278263359992859671680328973379473705168064213342760024467316099282131599590693839633270183804384011251908849844619748759359755928318260922732179805757277232804561228753017830114776994610608079130746901231500424978825230566656511367039554833090342912968579624998228173326464917603834512059920524921859493755800877161930793533883883150842609495196516348263540430977986942840977154354108090469060540988273787391808614686044159203636298056377969287382203562055593282980741280004299479133561224609722096870112167659554050746057609465203012954057262929858963681778636952051199795432030646166554278702601330047316810679336379364166299321474417652888772383127474545710209092513857717134123248184183571433248739941809171397360759889849330673726155868568396218255619653663800567644169444444273312972497060716441138469495250035570386728435229361452384437990050177691032630269696263601338540000870131091305300802299645685043706225942829340363886935868395409298164698562796405497605954329601393351971877416942024809731807321689017520758114247215945488137813792076806412191364195046199573407322176487027945855452152158971990102239726032729933456078226858491814778712635100796212861536888174984191953965468299362169958982130460048066271200529039228666879867015102542165603587560987244513735960959126477424396664606484415293195134106308472866542851811160260983131404476223851628767239185533677509245143077081935109961338306724017441499773637143363645627810964533683886155350249156183957922211357576168913248281010592608608052615222691131881980240114985350637107409678200933439635679643611649176078443525316781575525372308314308430016855808085780872605400906722285810130569190914654112603718954596596097137261554640059321277803184223314900061866107899173558843718687852172271652202601975958272124846411245445292159816257039004479091659111856877969092630059634173158164532270033502822050747679097421059009944333376020551520510381708704588467559963081988930152346239272097200055705201782134099442771996581747767958373970179289055595487388815932976344055001781092067251872399857852122979854585669476544409983534598043940102423212113488218467700376665610768658142709879194367341820125489157883377582346287534962333692680169571987363740141049737188454523704421143564134566255062912683663442746771975757476568876957320310225695402756240356017363528551404655906156878931014928473763944561077271160606000891889855305015648981235209237508117916146131298005757229562240240550142674789498982142731828705149954251870990990700141384934611898142968457173471960278992082299194397345335245904711644459160832772044250851505540679722564007300385024068275309121682308806782987691024286287737779928848734998671478621287624967960051199744237634120327003513234390288172670095420675430331990599199941511284687953406258483791327300673706016754575281288944665610457378124370396941976958583921683912799194059506251801676536146095063668796560866787527392773208354466864008159086033118747199140398413969512743854512771602299260256364877546230963365932342570517656588264375341415541854675416909806043618340236557217302987544149656735486309226150517741772577155973003738603440370647448380179803927959586250013023953280698312999054581050806202240079770560895142315369389688091466124330111868749664413735558987306030231293590464978420460834243061281654546427025542316756909462069055133475683644376430799076011567040421708972906730307074914863091578839655818877936187200798404600363391469753568059258773480312475100129966099874700374956495789276498335882185412919487518035696319261420961589211446861928267337577456042520961762607534473046517924470254235678098619973039468266638400644943961669248536875393199232224220061168142652194527015015405911689063612657834132561208957015996723985489391558395298836683561565593430416172114441367701710161895044904648847915687064388329508124367551273084845033489063146225903355071445798395679901885959123960662397529150968664749769084830743966067993897477610366715485515728283576528898254467009833535440687208079299619643259666014305179135038004382390700065115178046789942135322676480579016459405946671413177181954586825693637819656631938008393252233993469801016715534233847921983075130069504997697667498109338595353094179171505585085899642212866946342347071222526174210629190762975101656467130350316185882863529873346743253181247268813780776089764911574848899932855314218372380818204430780321758417999383033327745669194338775000764110913694486555291664164965622167291413220633072291941893366031965759218641760549551440025540039956972597462614203774516337576792475465232221913527044960625198907041666832620116519514298035138449851091045074358875670538036059911025611833575422601394548768387926939420536108770580323312300367871920389401508090423013467486833294136060439938343802954754450211820911319894602665910880576801513205101796475027901322283154185749895193635661650635162842677161213251064525119451215142517653451729258856815111635849520728978331226744816652944334263693087743527716811709189244277820359128847776776438886189187267653662153481911400828528349587904235016130898542513998474156000324928931734869916422240525814097402674872282872487201197536269277474495976533397475040857074477919975276718979714577924543389550903277304662230687705494110133644738983433071683070044997014043597234326737599130511287767661991915176168723384841532734764899157490132307243762626623007523406029761527095431450751740932910212764068817331567520434493526260775051989900717879206920702585441044232069896579174231226918146186333391932210623332892427271403953714048518553481351758603095528818265793460904673812649572780899917899903126279749374575963083660138487811562600996238591820924307838170561120590904912106471885541694057996281183317347915652316521815490921255043892565607415457531703678440172615695929879007930024827426734140630621652675371479131383366885119900341007300942618493666499159164116478096063357287749054507527358287516009188184122780475378609264717948398010427683416129743384530546709409492476102001049637097620627960846644123086446381411089474974639490395667489504384722699443472655629598272160823920024576150812935840414644604649571214272000992295071318270134023344362379744526695078488770751641927520762737433053754519657780550069484464695004854325398609358785735206085995422789409434618649116641811319700010531963462429122223476519401959597246715934165487066404765763619014366849132497462421434127435175566650534307811568469703725640600191861613208263906817284278037529298194547289520883404815231135780871088722660188505742578729564434847488818992584393715344107918967687739680539187269427690039892811843431616034165249937852596409786318724484013831844258086788963104469256137977663546194462327547898557644035375906670743063263165738836805678800629126601489826214445065714302902195991745913440412703006916760020207924955409843741746917024844165456937839267909344103777457114626014426175976548327011865624577429305899714648426197467578909140465597172647512496668605316694800184792348323564729127519106094755512432623555673325781181771069812000861000899284808993943142694930943684481220781639942832809906030670395231685482727601663381461991014432027811178547988960173110829826500775618387903956893677309329199472480533498030866032253669050369742199154289142869918622868267416128083932367602873862566251398104038675364916609588858097474657572583513941432148274504275804227667396959068585690631218336635372267887652691134436127810270029740837242470163674031425603293161653464540208601469990754676811692862480663914646516797419702595185018015822182003313128761318380046595134357658292402890004332184698613737759907705112681404661704873891686371320520823920974825099750006229109094834810386064009209875872325612659260566252439226057885254426160147408480406493957500465459827598306047493262449992383556475135483472570478748312201730642339244073742956640972802160465573971696534987453901519468255919682532559633800740657258526436033149647487178813708416880829260664265064378705644324668844138599480075495046794432740428627136075487595818498961007817758004214547765255178559420584073443041858619067646434863085342895481162516522697606355725251731873821787660418312021460304062499945187899788344814225867143323079370329636077911446824102139834790436814305341838703001331272647185700247890578516121546419738956508277486488737451139911097264778752277578357317144181835984715425207986360841705976878286329904950822380292026461361557757459445963530779441479138319156279875751358996113533756951827308885616840875519446493723517686966478158339589235788962216839321046783726962762703879172832690215551639583434567991002494657400974104010736987237271551283747571268151781421394802719630365911833601325000875071283398635002605258450532389210522080933158100701604416295462389010874742320173839605254908525919923754195885598770434007056713095313654200180855291182548541692846329263285951937843149994212234783263709550479108293664115533982600570928714534609389310233083340642624592309763612595444398509045903007357381754654349087286552896331771025819811240508516643225231852935001502403669952256962888076958611466586066201768953514462411610565325618796245821072477224666578232736901115789974691327439273183049947574398438365359773236947530943641740198667291933358632135177449009885754413392476777534072796438135682126968485638657655087829282760359978360267390787152420826673246817406905819052600169807689225118147239681331731008761020947854715120749832630933351142694453387999995013886241273586578979625592447806606470400476784533282181688091745248565468284380258688902516132288783614539434543645512008502675475902755203572243959299253221969236439817079980393860312786740468855009140671039460574705415958634674388442452889307898617128509280169414735525460446277029626536955349996590487256574188857759961462193714837265123449038225123978614149192755125493119673493122083629993609300787257347413427212831381315843285712968083730381767180485582210740409245398610686959255935396190423220162967089615729488730911236570943116664910782533594594674675830852235243166680441474938344634302209555263277727604142384547669276555855702159261324064469767535332842730444987779191332301248638818591840501048056180561491793444604694272440240136524967575323357746262717414149606498138750596129888831289607321052104338949722380568605032549730350205956584946679209045947370612830626814263914913261109254583600194937436934292003674091309353875499840607685797114408432874543966971726932984361320445251958019522850041786983236902013469751158468757126409856409994637751544036720198677846951745455299755628534057078277542133651953321152576989214057081272658635643767668022105000421009051126715448587808406853883882222096655502744055320582857982514147976310987875847596471469878936683716904844132577629151397950450889404616883562867833400315022225192415525318216722014449407463859249348416782169010890111145862162547601458631664764091541548666543081953611149631477871697416404557256854494431062554148597593477107668499440398084079739987096673603477487069920168014857032487867104468212091475773830547373907376962474490896538560926223639331921302741777282281079649279631190569468045967774051177706535462837149856982217526851370283988784793030899180300631603433782146139952569067253547662193947365054333669430645686437352764431555677697968855354320331087321368421193064289632231867992076876492237775986051330854327777420255932611294027213220136107244144487158978357337482570802523730244700045931727265745131582561844679482835514761405205658525961502121337757677618551577712295449253149666643384678909820048041414124894796358672610068308697446051425448308534414537653507546812442715518975336988554046362060706130650334468908179678375495586682440279902738760197678107014709920340457666121131015508836448325688753641153313316951694963557095879334256553908659989136745658041707592949421865228824481308953126812917797379515453994068290568540033300068998230395045543094618352154023124395365167119818038063534573360248287562815963757274071009175848326197932072363462130859392723815766962458987639329021432931061824540748681767341739925735013573619711773636631715052802637014041786639581625844492855194571179265749059525495405514512224833876962211139421437776265906232754008497822309249208598548097527759271519073578187045426640299205656748848763826355001505761049876707579976811965008340437344290330884938153215607188838901949456434784748979195979272879741177635369181727690950547050194113488177623390746006450318905867417911818390187963539806289993855429210120745020529857171333106775866904699557915878044731907024402429994646292184815359607856102040141936256001698969588973841491859663819995883631925102401518913776944972744362823941709797008946484709836066304016389902995020652505527913539772514088548560670395984492369616552451232142883561965307579642141810619452184597727349351017775146329134918898452354807671643578703542935067656883436653443891241998059241047038805224276665626491986531936358726358547385844500142498683513065832770911992647549480534871809059430106520030791578644334218293011302199471282463601264147935977007535579726840972836630217652950326334936375680763897103720302677705637986975302556290174701168483373707924594295601847355180918543659303161958206194480157245841869041756732826187930016891992389552113832169426340781929596116068964934821634591325947948102547988237682466118236393498949360775366280150435401658481183657752759673079961846693562521653792366333649284536757391556357695914005576482624646007994086947284663747331642016727309931858689966154302768330229115325449639086094888458773236789804906737658600776192361073232356519073656138437079074292013374657669188705423723435648132128603412919848923696839840398970130125832972684763422791201315585246902918004278775211251003038653750645665664151485535695723167504407814888199684753538544240431663703629210554565885180559830982007665760818514897356352676685557846921878531990199886280757136513152332603587467058025161025049693650517828355608007933194524408329182490697531686476957621255579344511625641375359370921451405636034265814135819189333167507833089593665921721663673235718981264624807304577097204823869023824176606676814861375708562504045380766708689982549653583489524617413325819079238699547951019754437405987521654597192317962749803501408226056841178804557968332721373296391096051875033702674927181474840411292319778516876451689720545273237181895604166235622987043459391112010639959485174820440692868087609681961748639166241963456150379786729044823865116277879593294632840920587241377214703471248895472767264442518194651552777779544966992549135604925854247947254590681143205627488358185184522916005145437587300099233962562020695960578071430011863621334567542960049432428408939195128727620415394386602912203308046602161833474020911000029003722271294958146851514730940184566786598700880602903530282736896389886434887022703859336293677716113923389125942440829384338477162656924652930505457418894673211501354031463092817737757558292267231152032237127457560617500911273710141859326097213466206577609699454881830477262839487419178483389491864947070649381567685800556225363282566678868862058322615005472743072208593364989345023099242375241977786997086902023313746167270712253467101900806042924445572981079448721496331717780700746331696412406081167099593491278604750255291546550403845096116611137252400100458362691713507606254359630963400220404132378557854993927318386859139729595396627658029808491057399283659347723206617696077066396268889675180281447495369656432985566768886837355363136009635754425068859293102197984687818816900563087659503506362156649907243203175713590989779429062557716325119024607875078701578197607716843615757853311573455249691014671723624312084975642403614267204885355731139431478774800367271658997819222313312135523990275298239809387368371468916849808935941077026548650188539328242413949306217308494133560006747416399633914959641707544252542698519662683206477205209902919135611232829371977826609336116745666319921606036005084363500320337176269375109854138993953975022552502214773191890358394682730909640210516212318576042135805507824299711517555174814764411288406714770197649826227515698871888402915813425238246813602057060654797347145318086618333015504916022595085133539956707202451747634196715782192709014027825321710098108836234009772650663757094121848161982171822915134319587118596100441791781430494954981493254874033244019726249419961871235140263309466189383388766932906569930124356443904768184891212733619875366445425255097553973192089303955716648483976454830366356956212996634904279691374143451611503610743830474005433104253875225362184009590079563728623976979846305315934743463689899592911659396129495243461780275941237830183722112391917533488832539471129774652761253735439956828928993794574392447545462934525581322996141024034684891231597463480505244953885444371231292870152588140409811358270712542976564887374998997495398887756336184323695953849978012591814734422499396544440123070844001090529213864752820800616036933120832980599362762720029923082125209699134350826096996270707065258638967217223101657541283820078982634804077130367263947780354205176026688891483197026306389056116324529195931620916210099058634443991852922816401225207832765805442314967496651613325187864819860128485869585805710715179817252069039785272604945962083071595536583965642848507649106961937038906824700896342700482162888709198828202607078554670111110106760597306292505779347972795599194489370437501798679413257292585845853303864216947399546379776401367102367106402045602068020883182857370417621228255561119456673146240405275131064306297943692207826797821802080160955025051186844754092418631087238123210466704415594097108154082997386346906664268666229299127008984373232235181647464975983615788342958817155983676477426635944168511116771658979958964645765566788456283534574268439015037916474858268730721078967216016176367595416287404805826882358216076907273651664232172756204491012666157104910663813908516771422455040453924202209628366636545432610118280167424375375239813897573813306395911782157973557784944251895108897247042049458495692130999936020687171019592222210977470234383938220451155013770260378611380325642990367383776884838407451519580377454797644908447677773062643217542999387107522693234698596916557462274900091735195977513534101903605483978764276193114841555463896169879199634497621429736540766127739679232447530483786778016537875109886748962885380713497494549973626518213514319980703646273219225447409901573785039727282419251008147377356916597252421880004915119606254073544578437909574205694283229159593370734089143127503146603337087162173287394759597782884086209945281427213658724462295761258268276566726223803544754202731031009207084162920150340799649169557110510208375075418558700695687994600370264825761559724678400219776861638255747640687335539071654112032648818699579511444359374058458039450158532172843297643549893203316254864868145542193889709608491079451978838409584007914427443182358557517899715852913644675393883080641050639889357309007519566053542100983558573724221820102767052561775875913626437174005491620204873369359303321075099219578164773986413067305927743107468431647235827910753007173762405000680533298240348385039283136782474115433516934073136714046848330291833177775247772136736257725421310128024446402064389004120796591162529646788087053599527125392765934564045931783612213023262229339457121709443694097649646507102615646370707218446381248057374629589294619542799019230149768145746819981641446587860069941510615116893014940413111184695001860004815003060828756545445560173422742627742967981409722517573328593590698894660940760505827497666242212771745149731784018165878436709078836203002020466850120530946801748347098973898072176072849605649405567187892098815796691908162754625108457874229218858345138668917634351087656244275446952038249954972225242757331736429045931067109171729288701254515286165833370487434504148691208331030978141149927344510983802610515219724141386545607347237102229758574948610523187821166543656546644185653962834689860079053068462521141539378262614995361275519292707649153900108088137458648361851573502114691137286635626074287809415106979835983660470078579823416594820531544301585398153647111118701519726167943856666251659582637076836392741622964921662371874518232300732067654242812474306486426927648925130721510623811619641074218077259469108184914402451923587404348236979674816313569799900669874780634510556470281995894281524695615985995041500856941626511292428086584872880127880810969565657277587151935062392994483896402445601226783755459328074978015358536915442508472160561724636305448943324748534097211520653446073582490633922209979236217066225504510932970916330115856910005942319666610415986314051979630630612363134245933891235183661007009837133926822213161871465901579619796769167328426631306027812015681674315494171552834919585164019586676514794110546069188633096374278958907989138050415816279972673076528179883802353983724629563558543256244921307905493419132264313068458383919297643252361751458617802886540372927363342017368941842269951240276707801500855997419266080785019861882835111055511855986612027056891991336824211602931253855928297649015051209729117379844741722201201494427754775080878752942723412690101840545626843039401034513929819702183212226951113592347255734235263630483304260719026766724733280665825673749806731187497256177527755991466738597192700096551064676115313426654675106346686812292404077039331364364559967139047915393310216281556379121788256199608996215921202196207681173656733922255310420697087513888820367357682906167674018837324791584128782570870328523413487538463123612586311068541205154293785331133269386778971243322165682457154759246476343409240886155695305459786070373620845806283277668767120709521704943666933616528352291969075233392292925976906466085011644950660466925043747839750941953273269442626328439827966182459005814899104009213795708763577261246240118168545326520269331902604865109471584696095262873370150852673917675598198161596436081325336856506003294465860251951435276120258557916237324954821577765221532393368793561485139415544714769187024093059756946338382659331291494708913106048826433162937884778854214719272456170040222650987564025685049446392717262676144727992434828670204317865294167874848574254649718877716311484050645056600742820959703582111009928757725882239499263163313604202348219771379167435840943155411953304035861560974510158171556287490560842002670662999384124411977477341941130458033637762992181428677478629432032568776199534453864371876552518976810849960988751505564935529400475102906487718122935125206202016596677122482677365705011075592996344944114036498049100887183912946056222588910676018282820016066602856079266279760468784482156756571379268935080055643610266797222641232478772350359596060507137007657841165687370485009701947206626673687475167614549346590294666267407312992560767789606195079441809826434830321280276274692342058653530603642476250944740605464653600886060468435588676671423881338270353178277156336566846580783322365465308982642801928060479765570929259107298302573194923734577190866540810562969355580386720919081550877298006473333003009677786714025026687129367913356066775474124350008044894134561720476373630702706200382833034037681687308226396320724062301200697808496210395676316586641694820765472881067460953902124121062323231000248642545229537737981021736948676127252480533462023271862333103296244828566506990974803865226764343453859599628464394582582487671010122536693019228672833575132713851159933893737563599892011894144456816112158470247169031987139572008502365935404992848497820811509976225024620704349745380705293476767056099457862293882361104344614487080651873502346813386944217138212324967322788044470520938988893292809229133460100801677316067290524772264265073617191055309100595414042776325595939052990495204730143576288272521014698825774993656248235998109418424855952251819714645256422563677956799303854720518080406364321361717761567483665277275305447497185843365383801480432235069707816563464431533627646784581144473621336714156426884518618014503274065874027204903331588884781906230203391745380591014773028807711089664818760948631203080620221387238774356924395432777607677731568475127562333247848947336457548178509790376949457032227702367448069476344943463418635166632690042067896874301686876047528103621877705518324417137395404823448745347798045931625905939301099687581646539307474290010351807962185311279743750740121404858429353581712706814028162337525279823162694225230574241376165424362527690618131346082323062159660652455800928484643148235399844266263733110093257931162106890891112508461230971208598476747185427015116206320353060170047449282243869465733792434538887911392749683693939215760886570422314684647642621683329526400682759414492639048825928221446089806515516407831692207332043706747075954862004536039433336428199972323300937465013773355657256304449058561610451059025431681768349971980778146111184227170619032653491923131076551820365984185627143590581342810312566678594459212226205200836101692258487278152995347904987877457334514065191706665491770987354373063421366276383379935423644714989283928445093361792131284037955126101456181628647086320282847582211483160651397066319036081361443655411230865985053333842215182780325680864390566922648218074726564859559192164426074162577858385089623998601252974683795268131653852665444774334972610944216926067803077761907455101421076828268260506362121177123849244129527291968340724429995187009182906576928178557926742064244501868293368518835041693017440516137304549282885920617171648477613354673885421818289742130702502108071155937455967264842245879936924332568976996471329241856122776348941737422011348152440374462570585226076012569958373186277121565325167838663517381073937979763017967005073890606576495792607691807566311532299168830985929176181614271252619729886836632015041039976113859691836958523415147630020913340502617704066429653797100677810416801423095109978411352823618408678364024993619050867820897236768833696528944765507631498847689385424579876272271538880247261818347266141960645538129732979928749517598860974014945343229659267832432611484806273848522892764801039566047771277683384277989886039812811415719115340995185078959506457347477511898162253487086924084444760031244329590368971002557143054274208376727941818055061665641503999481358248347105791127971474575342721186677334377878559128964452251016148278162910133000509750745108356896446003962199410179807722911607465981490533663305103134548320437596353216759133956719920533479134066039060688263732878189693590379685048369234126783190378234974777897593890683734352607559592158116719641683153579685328860842488166696627752080019547374800684644358010437619989682473044132184587999878379543297031115765760042997059616548791085382588237452457321419491859594104070428718518219008817086396211068088088262701879775090880922311777891883223843934746882128046654767660340601210404146071364390569511728129691559847527385951956291835278081561858678937438037436059091502882518539810169622645038215787521457742117327283190748005933266985341805234978418641490907318669308562796664319421275146145146985216917072173603913147315441653470944868881631559335841736838966450237799703824195779829504080594312813885101268259414664448499262604225249164405410594836032002171387250237629385406330947788001322847733279350313662911021565982072151453488048213559939647480586858738836756622404662541506419741602116900552984920954066196903441755454899637534193852578043220229419842092417493062396622364740817656761149346237264706633174217025508818503076380363101688194926712784696542623791319533083734505648255208310082711068335163156956723456710359143255299186787310326993925577421581989942266684026757801699003734180666036302508125165351879939156274874577702028858765710809730186669939912413824894467164379129441373052989305235651135702869980191142634032196619595537336894540130407948709655117708659500461974351903045565955573261000187569004736184085702759832714897627233142142028533535457644935253032445980124078040402294922494746963834695388095788561898427695709027766372935796621018777410269910552752389779491081243389013917590709759542182262933694831173862753541700799447008155255448543179790141241405927063505399266681433569392618922473542399566493623914734749542788948121947101975387444221588059425479560546559289205680457504460845886118113651069280634626300875942718352916556986110067168427759037010460398049416279204181489859093604324426382188323861002027242394616591646324158479143616060146555344997274441558596443959812038304673212533866926650841270970668934973539903501041366218789430520417775882410399184003789153934125831222860129187789597366765617643709960671936574957656368199423249782491550028416499311032449424427590908785950727853339285930906555343764227099780186580653600527910592841439298026321390233408339586004840251205198519327612675024642970803659987182322464602954100237922482587658789416499913282339352724685769631260774742620386948533325084960455376022865446445593717989899561118229053270086664062479468349050585852501122104595298245891858732739077013316186278538369100014046941157123374164703030217840473838317984498830864512904198893647146915295527093674784461876324670344344165489993409847868409339107429507987303204999917469408490324772977361614071619066610897551223361856504021971128863139915731890655838103593779827227565026701368288056489171287018226212157934040803966540396337915941180382979088339947220231192021314030711783702378913243238944951691570949933040776224174934128598694738341302910758304819361387668727746042878947193717577041213768153900652805285961291080458245936991730977673595699129683291255611746851308113647279876008968061054138343641356980008694955999856980192228515579110246565617351113765442202010901436416858262648163110894202792252302428044438641626420903976216310022969552053294144365314446906653466563523377565407684186468304899276945126728781666266095385787683795440010093486810033093861990542183047934078392319934109906333803321662219477407355810301775044479150684198022191347009488676902968470118985795930071912116792214803334341070033776396670118016569074501611760309095324363917420352363640339676370877679321700712244122403341332169455174372940848254107702607106213181847739007942677455163502292576880554421152907670003746049174977808529854523866910734274551093153714708336469714399849453644701652105519689965879249446376127063598532347612310271957100067421224945905784276615291998260609866777487146400851679747536073260657590162755987886049336523228540938996783683612705256197022606670574238824073706974185742246671528904691853171407930580663871436393179252147838455651885274819832003293688634157118356191566402553060434991532860341943485755754074856895920314694932796866925495270515213511925179573576355640448185359443040201630114252017521159689769640951152123591465988770335197952079859904799757123453228151852870015157064914889921093459268031914391052495402510979987834439131341005996852468521229378178265438861299658056665925409197699248818459736063794594606750841660551141094064116446139609739451490845713013721482986619705031555031223334192755722269806024934786003885022710177517221683590129892030237602263747455682560734392100711023365695343990408169338156901575360695301500569328996782846877232974417660032501863120367316695547235733023219426586722105700445964531186790760730104415829883703419140305339062216135403631278870903182431116838248495712528965604546842469456415100019802553377403888261104586197133266731181194464496077716306221298243989538133459636401373145169030313914855185903724206080737817913301299656824295859438111556385299637948036386699893603711247611011827812502661625387748598430142474916459229185649770895372068133909369153136720626526580115045085859880850427318045757239835354844740599484708555520421859277123892143640947314467959943204367834020175764285569066509630343994622746099742079877096592689384645054506814967039584974692828606825187326863081407762746068148484140105323062723463778904666464106796489249775303387948937815917674496700024711620696413532738354420448799849677114480191783658941756081785721967258332870069972177099949974503791531984950241564128979146705678998978292408767024143647262010719766780067573923604012650083839721584435905514804068621499329650019766928806106903411696534664015059567161838907491029066440944421139342080579236359568326304397723581832061260370945419377935463445767284376324961317964148234657465047168629834464911676967815412823759556068427597869998966759820452352009171011013468554009807209985577788371415153736500757196522243522122484774600203572154595141585117550101180972974633528866818493363353308329231219106704189076164685106239049317482468724560277828290404875865338334916298005131831225266606118240103622465497584563057601941228793289836307848977461074320556854303914021087080593097640135014327704532891866571335089235630505179719980595231775186946774178085417546749359326076018012565985301289483908484957846109432813271025851090037083287420410175181697743903755741951590935837140949678576026237538155018192797504497528474048472894624026136462610084447053753537934110999934122723575015707184540522369977883317277643195473488809753752279735216056943016613386685046927705279847521505547698994798243024461792419452008055008826018327646023392277886727980291970747639268899895327670350999531002283496797722160647666073328788962522215243472371074651583981140507314130550654188352035297343420164789487877004597876060088282905832830633319355029726803683888968063603518985293813903891986460299976112095013888647193439504781091539336593228056475929770461855719281266246388295363632248248193292954182941451308288435958081880817270362820832930741533473736878304885807483654940426481560487790325853658382649536361685844383746963727917774166952470275146921905532638563144208254519772645566676578421972944325255696141978014492740064544131853375377067671866191027146421423622139553293263475275906087057235155423993100423051537993751830937137554866025125830381279240030252971979723308353523220245559409085158105567210735263903168281877380016317716311403106595733738603104530779697092837666455956032012391695032479669265361409284007614969937100417581586987741074079830965377219867938825907249494997439203058083358564193701416412419027782299722027950499205005027653535839776269216579786782697799464472611265502414233365171295388844861451973794164412096753035944093932504738992677741544516721774834705177795359653876651293571831703302919457448005697903779297439092744496676753152037654030788206793340036446546137998372464488376674471382475226464736644320692385105382763327717853846466930558338216094445861870134165625678969078098616477249134003804272238599835084667737764187660140463517643190720709651848753079109783808471888141674961363452312335356414319020075833074336931556299901062251232657001686549870762071012972172175795135596460310361921614215270606736045421534774777951086152398569693271225141193639057768055929002970057538063110684735650739101091192125517212943503985467728088791589537411300035502079830310023933701763364009103838683947312399300286607921350401781053837518986485405356745076205163848199672268215647826068750282001895872633993523433405738935736486685946379958695397925303956982370752758270050978429573840972641841022095064019931205861002834985480148796406471106194107516507563773857812935518799240323184879056773788119193088393476905251473069003879163760502257273302657026169080586103610028225861101263878188490574953674231636366163748410751523593045561475104109744746695278092292307662822349058452853521316244243530659617798069680865207722514395108195632162669143516477549827932107439591092350787460170996610706349412943268176002636430637575828711156389386596984016183690195149578662391436777326719790021510674370357062354363240226203158656884488255962585623977904240213565478078932416215626189299854692383107265004517025065032546232438031341631370958797433893904216278392517645334312575803694425320102513743633058433412689595151250109142628190250660352920070769449754239364128881833372781164585390806762235770933585878105615085637879262433554957289142049177427839712613504841209012382046455573187420985494136879563674261224182762860620158793654485690176689850276464136143538729521163548984214972587288208239197725669427827086281208568962804039521952285842551601012465839250788798558928442243382810481670735784117736787298036414920085333393637345513148128963626871009628232017657668448545263219081115221153508444464741526133376688243335036012814086318633014389504643912607022713059377464157862801454987341797735991117339636227728043261027669746499466261807536734214656850053792046702798138774683912772338756444878021403247676082095235225761973370597652233160875468966776137082963848830112899317185498477749193447086106218615934100800251041946267563071640631706119403289559645304915889629798083800362645674067168527226313582673086650025870532831464987753314794002569117835728614435669267801587784977944051830179829823783839580136103224315152352771265880619885636596403643804489446270131224881918946701589936139380004789852244009041839675931141325446854213008778527049112101103077114569467575898919939702152367599396878956368253477493010108382710599849658756066210746604860790651613496922985513014232184643173181865922359208992672314618068165783888482270395018316455682875872139107111685354013193436180422354644964084700859507911398861747993318030190301520969683286164936558782913304676392611317581468945288623426702053714298039281380154840992771096764565836512908370814475364168332894099465549263526955275528794738164256085639613909611113877036650531106316252178530866213694073553293033208825085825539389599499612062185320561066504473100138272054837792178948917620685449024103387892978364497976991029101779874585411835633275558938637864651540907207301061006343647368816801901770838110421811477009362977277566136422015709804635387440480246031646455430267034317887658974822088068492948771067312688810495359002682306266918784776145794974492662227437643256198997582485614245673029752434397036014395256804713660307307790055618226535572988827881998309817188656433404808205285164401676487267524180548200235454064606466008009702512120872810132459438371800198136122628295403316022115331004861747352354457298968826616606533601875546784503651828418920989976752164752410836374043260510843887253155698204742989980657161744457610039238969388577895522575118023779627759473031248189016285423191186903454984093278424771482119216381001936450526652960357567187866303206399590778387255048196408446794144598804909924505439421766655731303832658726537378734479227449307895536661154524786780462739121075434062014555495374725615285970568913472401708180789675139449443739679212549426297439412488683581050476378836126285955392557698269853823859272448459521140357895465487898169862420886710315725348673287477573082280384694498632685895984940960906695109209515149502252079531803552499067590182007011348888290798392254233570053821557279670272191260281166156756537242783325303265664252949508339145819678285756247730350647225636109674855013934396793831958072927378939449329260754240768923926890898548155130421189776855155435416482604939144376832680538959947200928196143114984116004873661381389267198447830974890988107659624866367960029635233063138639729663069762708926259590895023070253782220758059164783411550063772753111779101281188556272793825198565164263395252970631631735954899909266256248172454248640343223967825156487849427765780398888287154825450650923992700989575091958502656419493923338312198401586900859304927695702921789754456231590718067678095405529072884425563071299934926149634453636049763967987965587802548260114224746998699159234456716664771891924401000307646964457408017354615084992912833839558568328134194966437712367086448948444749366152272119937540118780576812207054492160979012023924801766903206342860427377451509070621000536778390568676095211880888852512821649448371186351461064024872657438523283830624264149694540018194041775833972809247562542876881325686321628638553112619655721528250736752263493105410049923253283196798090859882586989166005899223046101154238880651295301878271908052217779109443614274123830419465915468862665098346279347487328872118006867819520576760198487939783237574331570452464122125638151803998412754205864222017041307945619091122743859267938337378408620809868814565518022664609467558399424366438954144905389190429288893240506599012770021548803177897650701934751225637642922415897599224913795562727403008261226207563388559041569796871735918155467787111389573566137587766237467098470332874942747608356979835026907290725477071234736816832640802095973766178257350469708543619053792308670623417783240682949677913445009709541351234801720475548780554471899735689430181239044104004042448620884760276950080739002285794305009714691733020962089113290944586509391701972099055982880171908230930889883370860133168388711108733038299624491310557774286696372928192043266613806164839073046256301464479143662003774078437044739103566287289324041155336108604668165298072493856116411303254102028946791749281495672892173358157806411733106081853024609332465262147164129565675832873105496000396038080218048346089264623255603441924719908382939218918094799164621873779760461924317943357756805033617888381186326620830794271057517794618869929986803533351724206279123047245189777785497675721785284646500137540068955233573627053811440968940059898290252672948536425599162838927927805668768606756801424659306134765627468037663801146763293888343540613817946100895475718249751385158890095556114149848334858698163352386287107905052835485342570015381190731748593461304043709510571304473750040008035009285335697164413799327950714453014671535054956565489814535208595326752271103893295162464742971968708483968178668292570875091788657814982354927649097072894734774900541311409596399852422387041990959281563009193763955140389596694265909367366681748161842609147867318356698400427811478193317806361671253989321264258709566550020044703797226056621151497315301432587805951993908128801361514939338048932256494476607735056116448919905815422581457104792616919152191686446365802018987374541101264291681470561369800825773560435338418685194657473214922770735224411178032864817547356547681989470335233201354164448134385478333234461969203317178533774310796796572203122424317162420902358781804117412781196071350197936768778448136814302049251287470285634668865747287018540519122743722003775483933104151135103793418554669615803196453281393670589757577810836082217481677382369682214694470553953718876688234976867106718002440556337970430898051852184434013781069605460770798368705863235632600299724848842384113102562728776580213699944850208681982842513282757778169109357250109207724716390617961264935710348616832230094011673244040740799532857087479598615268610174151453568848872068650054351549721597862212684540129783363649247361454684890590516351980321576950929929619763810748785378763332213848071423303614135451275796147579035640881147704722006013030084260029460019282752035935087094445839124107248679949876970796794979397789657406107853363075585302003695140741109151579407359265715278198574060284830826140579740588186511685365988139266483178327368733172508337152085871976654138053085317032332472199629681766139427483826036186486760767985508819911799107219160897960420170626661567617859911324624302864993434670799025549255677770458051140583225165864005562277407201288275408560301001699192670032095182801258087746906494708488490201417016608671893271944121411705156953527206379084116294074658147383992516890459234851760754532437049529619829681580224564545927751919736756552274397795493910597637929033287094796933967406126865023115552775031819138743144567191818188458678625003886464748921891109883460673897024368074858343092973748600784237272007363636651783853191961016144011823167920239357606618488692431652516591736908336360083637856233097180717081436929149806584904820599750640710759865553294515284435508664945715457028377741691892622080437732013797819810521619151773770732311574888370225076868161866171010981992133731674736483615058036244003842950916350597756314893513193578492053849283009756886182254272100418187377443875854842360025342093136127729072496430931202367880536418614570765096792886149790797286441647206203018669813001328143125578461962240006003740903831490800249974617942746002368803463287547236713199768282480019713845959682391005824041416400790702764118367836333770259799008095468062029742554762277226530216007035167971369869552760851690673280098068785297012181287836701921702080331919916443525226347469798381929255949261800113245961449407567931898121510318636814091056281194316800504447944656312098551623504721820530085315804398304418459916689554824110042530435363910207340579303955204619175441120107706571729487768619433699503792374675944090692031996167497699547906583089530361875504850608265531355128418155666207670047200510332203662781374340570304380629092456367672830113462487608308275687965104689477405128197323830975488959672668131219674157246033494688093049149459748651130274768471924801115197506721219150569498204545531958767711378935907996643460618797247931971755722154019412503036091216912649795510055486229930181641868234077237103424057171936903361817427644927643579453958863633411233177977523749105681131877546673229381577074908959999451744788354189369428099684937060838722361204113254250620528780344726684197678946523954898573304573852221126149076979377440214834683439200267980057150351212294133773674903018276614944585404402078073756126389917716054899241772206750470708948223567691808112426907527761845603762827248648014951017285505550945678635217233747611059855914469525696923234712316544091964056721750259031497505999946333601716397596530530662779227048675826671054699850560935775882029461248941020175186669052683194138721679067281316495405730337397145728460377692988973372373753399016240457420968134376706635440457656936819307026360603083519783468710297720819315940933090400920676959799290452761363475636312641467236216008445308670835523513109450415426103327832964046434918712016061199259851582190307885929057541246638637645304625956341544125974168691448654293383029018972034028966629257956689630628556466729972115671773075899138210610904369979793399551762242439852494159125570515856281390052213202713750890667047232538843300076218994920062680816059565819046488579858119388505242411645991241524338816344379839428784139417022255418152317253489774797722736419812686670442146708506649080129972098213967434356680306748917770571542902548710385810376121976906966810390912702802684820547769250663496851826369117925950732137779464792955708675965922073263790954684684728866797404132136112303679110330517046336355734110491890275286572038384421324916945439181569645819891082198361817551063043684424913597287102143030512537677539662218914482936219419152340363419854084583323186844603279781282799195374719360307689634208277439715874440277901507473932608611204960977125695783905988246390944702295423871542826668029008086231302194386578080367921678450046502114530267699769796984808260046598310740075267328312999877799160724928109115642467405027657652113991985319587722046566245349710273646693157139717772634357539380159163166630891107385160876518611912542425657726060011547240309925076931558697801637437178937026663198648591939569782722575862865470962762503446819946804077230150673563290812969928697112527939792509554857834400934078987609018997132101805269612138566047409833971520453464963943914943251006213608844488779130577403404921691588551616746396073332605499920138038549621558093199455252154251196601553383597138554517838514458481053099101703504276602526888085179075836565673548420629300178749992543725257071203867253720050064297077719877780775937141597635412463891469881422894329230312038702522605972650196448646550596618357673321711769243432441805257869589418188905579626530505246747987497056543804822082415778728580245041797502845644384592035494546161432004328895680934953604648577558004246266295233513955386441633460962753395645191937659553460471325228834868231415618268592443500322193727074082763785797451270044720053575327390003954191039325295471820347342956125925784615514948329431551972892819570884503106018736359721991895112920545689663745789367699822140364942702818845925409075161680556485660088049973406232178338897036249461244571562860349227666810950692372584631801076716016121813503566011571978827529625406329102974593916406106849164946997754606171663523949487949216020089843694143050057858072190468102530843244618291544565458848962604231590609364132186901082802678530878031463155183908985072827248621856554707035370849213533818679653406622962421140662284778935524895783662359844254331115477333430814267398346779051594658015824252388988275476432742123985060753863696797523447144193424295669741678723805157720526275051156480915226322781006383534511301645032143762872359180034654925984752201210575511994969105889470473069888788446043313895175450574603246423188960479301377803753782505270261194411364533606178380942425304111930134032399194994476754846921563516688808622406030843190941340903962168616784910547750126338794124436756753796823620623320804054033330028517908269375160636448973673970731363005995177981632702491987954811704123303348679032076990926953788344273572902491794505919331234765614635775720044655714667238178408489628528471414756207200735605935615811610587464606657150971276433968659774397646946393792667764715223953656561903106087034554904186459744823315798853802967698909532637003811831289828132211199138588038706997202932359291316617714854730167378413969380188038760586376289385291781584272627352417368973321692630754134684919490666380698644477712195814251113486831934206310612830117234482778752542655034478149362774642254798299386521439096435693788696788263512750498490195884874990744253408787378791911056819285008991203005873464934441719507250528053982808225699607655381472161996432273466474724132992244940867039370811083252838036572629889195397217949225040099375427420241019581744336815191318632362677400284541202142076273399996224137170648851693303052961365005601856156948190881093267717724083607542788803885917429925278420114850449747957026810242332508799808207856739857568922383766698469247327613739183187160786574103121313138791900981084621137819640916105044350110960545391484345557154590956586519528167958986288186051151536013248466092809980164303415082859669166345980317981852200907964254117587326949283099590129749105093219384511938227504959618066862741562185994894470954045358967643698460991573646823069340869273171531260338569197568225504094988600576178922228118077243549819689689739145314981153852518574313912959611250763032975925526154772109724540911078133684409024474279199236487220111962724320765755088235494281230763194492818297439232684867671330301628202892791409550650113601815421530138126686335911152501558200588124330933763866770731210988383573699847017847005918607064302999769156086365230400514392897596836854468147321956062027255099855124942950919684563770866061172136213115074193428830128597294672990170080829272975330258570382073502150379930129472347360148898757685440768525557725506646951163016902301666580123237177234620452069288549677721446276923969448472985218360481225928522044426528996121622181379829301876909294525165972971516920993853701508995422461600257500500628605229186680406250396208143351292322732762903714310513608012539508756194588720148190161350436062171749175907071690385087207735616376527370947349974488335886919068320653739227539250200723401635492145842705750606358816698039076608501418442994618845264414973651646841587922120660623181403159880268147121190712254659510187632858006496036534480772525342324688210382220672311880224616621291711365574095482757144863238983326058387001558559954840120330369258651570676439012431232444167785069777100491799806120835359588030676755895236760563134504079970721339489745659245842831025335717552502132685404418643965474854394903012285038841196298967104741665791475544666244015634433668846059548012264846766396366209966216853018120236248129117509085394139698276430352900946678687683578630745318880604513935473957911159460848222696912429002171735545214100918929133767163873309411155569369909770313416901800545107995821462013450786148854052199491426588022254545040966676968993915649748600282036488419976007855188315569210325925195437955928528481146395088340923493941300993104083447090617448620733969486504237855756814866680202179233438443455003916216689189408097932062552424605175680812199924388291388858836212162690328329467365410493667901450567552706649847089058517176473424544314330184067727581797317111102398332624294108040307701500512638119488248192787403394395641094410762395115868656921800252981334625820821096564494124976405620205819361781972729782191993025967553568594627302539652622457719397634653243838502726161600918749004228365452004836420337657460232669177145359892013325690844702481834188322383529128081956331148080939411389706766185650704230617275350328139405113119671046849136737606258080013489582704068078993973924644104005454792570959768016159684343822347178589814416756675269901684941112335050844836994461291582288636277844250281851730972489654570698604236796497849008884333503881171875889850115103422810992853532044001628103928071582489566756232107408445947811905744332043714643210166394021152666978265567890024904193297221412244679550961810048351591480568211790576243140848579767124928441200762518313254346654241234299474120769924583751933973347456272475959292195965857813851123361549253171819099641007282089258713184750694841399194917044175360140714158827521785769397289221542778200346911961026544144464611801025194663161186712836069985766251633379586579214019655167570632180362214500481477779754864491634567908707831335253912056031427525841195327232855025287897227112639577579375169473723325160492379977456070511284316052593732308734281449201168735217892152066486431122891715956073320433225269130876945104551505396092345835394641301963140455383823204341219776102922279300677202793540814951251385753584481874371207856967292992936822936598770874975518799793533672341609176591646588859239947089740676398218041318957791747579726491012794166749195119261453633697998150017055575187583078036741796188829545476178371870339754969516169619606911655872216882492735939117857743582864934174061058665848057367440078139805163497396166282723404658751136677492562683699572507577984145736927092666597168003940264715279327108059396369557354795632233062329734775890396167559093363418149907945478103442017602170806591918961669154109916038073707442645540640715841134392989198780813760684064516220442915164045630378617181954545889119976830000799588445312955126436747797374804676607942825522996720561842708554514871025982526248654326366468479990855010338719805405143369516117571568210382917580599929019155645824104473444828284806666741887255377038534756789580329679406161994531351933158545512533083505092393964600919821032608726047186695499663066856473336222814478547254290999808724422994791513596020928888858015719434428363046581086128150181782976110050172771474394562707680861966485588052121806435634226988225882618158493930233600474720043058304772752722911766038415975027298856070344182104675756143618623250184513690991639948921976273391690550336439417684405854625395651313773755061659445845297034329483708778589328001205904678701179678717729691168951063431625778774937603059473838238853727172668461868007880696533225844835432022951697675021496801107825096266609355785315185579253763548853366663347209568763660825429313291727909356173830047403762354900962858324037548172765524245904242748080817277866573104314301233785898801547013954585140822937361036959653888966785673957885391611810866397770461766738702468397166064137886550234984268932894369780337396917169602606663224066333313111965306741226914009433509306615576825097746362268889125779974824314278812619519775823814404986345526721648705152805585443566398095879816488235197440086386155389644104023038751350689167715711262034650214548488972047111285658004978380818370433120974023072905545867702480155119435004433771221676206894505940436448857464638478510542720011397736236856576384808476866850677323983866922089598785065117565040848371415306739080049130929751236999873976048603308275293485632650790591319043989092988814120494874937432962912652389218296728924134969195955908946812085201136066191402285151205912801958617800146592255130493705528235454655809323744503831007664688382643995665847149922378988549342176248124672927393878769690800722063544750551727794950576257821195775237374676499077173891985003632347710996802790786102436610013693613549952839432783189742064812425638966918200192251818065822810378972938221054143342612920693290121527881708015246550401171733367021726136457314708612033768376778753017475054160207261256376910586739782453330782336056919982080346201135476735162836177538023551040073940631586143842872847633969068279002417263968722645979864315229451447778717596359068228139495808921831950509687232705825268889168606287940217697145923631921875466144584119395398390561283053142034051351872320841625072905549542000304909398682563039587036822008696010907909716310140427769524577379340790456464363678238335747243527917253822634668161758640468748540680152379051740315801401704323406550862993875958774968186139240993002142472602560910002695615114704440997790080675057362670163683275443647950763798635087119113960699715797173708189270425344895354427173320472086545306320400041330697177530118163283482369968575314687566021454840693539733004550030714996904015452579377883917081892257898961398980366024642668364122078077309966329379627827386213444832307493398427066941703448366275140154745597073976800138865663046349891737753109984255253146447736132411123310375041565997832955678947257919200247847972670005643424668613084934943274066858455167406547360591999241593828309855192900265170980236497425200547484658641526322625842505390026409608034931315747071023884680785701309202572138931592219741295185202851897868683470420408242471669956730616685302979922921142920753049706376062198714081320767063714186024937133755484472961562308715965102845527960761154868109452769692559555231464702002034134037313954042554307105350426992121599207751199615808145632230635921561516439420476181129582629994412914195369973855775898352012382141783255955917547013995908116410919803958355862028062991530540066921762088678716364742295030169357325273356123977853417675732472927852398559432383067846403043321608351242398294427181855365814426146081681064329994001751936135843460910723553311365010810150645850722414775104057270014072514510147446819766361528958432395095832075721421274580149315441735860261679733786020554502168181305164201111424404816743766746475740922734747459726555183345519035735104967499363183688340134415846804888743142808808942693433029565159653089775580968300357847151017793548464408557321141629392342831513927622414866956547463815801097874873983404751732677930077527901013238996346745287413162019099754811039041908441507840668313062406747191271518381627653144069323567029605991198945013605528269383014205499825651991645738641847628486265007898738224966725717753066586723503472206290104419282225476306543748118388540618263008190835345404107833306338576453380572884954219968074798241112661159947078124462496284967935476678793959615699852146471150303693966905791760249651640081760677650845369550248932589072623478999553019795259410624424812288248706831928051154717166497453618269818540163680836207044390207136221047895391490644871304995997729358542329726348793867467989173387546771289240066296879812562363945268570110707865273980787064760571747226129177447694813837776249894432750498239695695286572589102460134634443797256039328674902047341119378839106980894382861733977524756962282471730536628865360243066535171886632885935158894391285693092192694205315848602635262816489144412440451754434970389144520442474801073707077985500378210282937829107585379191424550209436429490481418308210671362032284161020880985679127885089092350574923242247910205690618981935957077379360192604271262859596051786130437538434447970696604298451705405595824836572736166928149661544749114814474931093773683171342956487296971471420549936203626541993791512191239283225898808571658145580884814460028977432223824783531320483920745962172545697453416337603343253815977624344183230768535471470406407083282809383596724805052055737580806355398785371047897722826752098406051427260615311612979736467895272556197341532563903737790389907454493745064872612460173565600815355991614244463518290955486567536697866940549006763775603058926970879048709791429370128696366752705819913934588068931697813645810059485684369432702308086496821492055228482001435374152603458600683648520600894150977022480662131708359520405360644779580786564176915758523870933074684115095699680909392503117844924325242565366028927919568995211117571631345847240166261590979877523137702408425776781069127935576345812330072787157262266801956762237314049386331597888838870835292715001328858904007933571401118159696540904013757919847948979690446109785805922237143677924601705364617542926945062361418192096576814584166862026218684785105423937038286518087355177393437658037121922817872557874880514982624926977290572923055238068247698869657370931657556711211917148941625061508156976818550561418032877550687600478562376108985126990130931139331056903705611686928722656829422007922675981542763711942473777336274472131856260556969896056598879037738336610315109827024366258220542079728353180095288968845571885893138297784321584346521657548889587757477273528109466800857088319811767550424151038630767564632906985192388467938817420739153796161795373892530685904681344474143018321632436721256106267238202251104831360441145324781810135132716021501100133517222948694030801432255146698777853042760937966632299270089562998946569214961695621623258947836195124875970101944514741153750856357116161126342354093520622298231717328947909199793744616209818836648288557376827883462319375936885018553456334405199018134818787698424948658940618442353534972509893058498805496403085576257975091449054746626079419160550276500939597218409995244896449864236583568100741247591693056305945149666814026874422011441038206556676241398063784485956808938653147219792008364631839287475651338041033090504056601065807605411415506530983286821467967156844206797819674015289604957616272086524836859246328049029759779876947584617418586858190222573090568119589733065656851932580535174662732813803303303962884304661706357943384203974395586190403937640585185856769623509072461857796915179041642878411428381713607822096085183220639439562199352879716977700509747612125441765656465818629764729230012152819284382788034947872670414076607218437470572347983402289450259955892467591409986724458919567547664844470946074466793062119070903270100854345475635385223086576696820046397165673967286181275213554505074539252746872105303829399516194973998196826685580604379798571371935848376845696225496941787021904688927866217509436416116313051284857133310247813765028470508167165614994606133380757054086261188830062264589031609114461376937466737925025140852877937981489355029360347667803600724099127166554368973976617694158696846899972652068397005316944960608582681755088833448816647282755479675017616671954109863486497963536327979060077684405829260749201168990693475501701637813307731050428590923056654557574743957666838214275374158160479273479555780922971534538481338934282913256046456227684556548592426573665303396784603006786776834683548323161833824344950577409253109079099599991960055656486598076197924692064906935960879654319680615160416858403500709047588297116292908605635020806186405358703875460476949814174650840214803070292297810609609441110084706283945659530554150355363058126039814282152224858321296593831298843843451793241171906198235540611509259897170126093850304447984717954669188591511929449853139800917424072115273988416155628768056375046271042084467002619270681609429682230150668233670474606689756181842579926241894330552606284550108195005051166877688615905914392823029587651422588501622738458571251951038090792510503218199950086115518577914020131506227429170734584976650791829637300118745270462021175940334233581335657878391625214450348350302105796286618269003730707475028501482360573251491127710123780729518044667129135272683394730027581815829646596328255924375976020894028610192941792219600941626345689592794126478033797061724080719893755790636675940556859931271629137162379243886186397724904046309729784530883099762054310130931288662807701731201892494865671403694508701683667259848711113818304417128273062962425227377282037815966773658862056848646012463241863482582947668787278764400641681243507169621152605226897415221161603131891661180682397107129396158253114964698867236746667269255541413009387543817817525334624092910368043373638961525392017274835785298603432820934172569015881881935541103890407891999738506973613929421130664421002519496033032278945343028971945687243497197017745721809419007825471485424761115499014690807790628244611725919540320051005707372350671999756169529925989870181107462227583970435257837040977511043338488552873921099238557749586309649128773089679735010658043998323468424907887934838528756151233708456123834341255901198486053045232524446146672575603784279488523893779526232144023572669417411656558759044338889446975703216504431621842757670808346207663586756341997032030679736769248265287603617934799673945131830751800054962323440718867266044475550741950414454544006124694613298781940453680650656902249762912491303980884915111445136631922678621922438080916397127100383330734056972751687195383024991640513513067555645083508090151189141241119563951260054067467935897095182472161904122966163939688900610724312286244358942107387650416941647411016051405174335354944560952405026756953188821880439225959335690995464848662401959404692727773516783987783945278082567125644659029122186712351388740803137305382044679718668589770198237522039361694354633763436183683358872601605793499247747390319834846692058109314459965762270015290938366161004021409632131867816219402316307332053777488956392039841986514658830948266456942569210044503615168794698059803963256836181417617543550592583056146432029471390073667213612441746906584344080275878396665680854035126827277076276567149126446511280901194056197849573762982309472001962501866025487276295075007617940439777093961631083081572339996057858864682190082213622216665362182924857775967952481098636061471962107148724384026354024379063199494766246839851790964633371541998220732775190943364532717858846049216402918489572431776432486994223139820959235836718763170160107215194043864667571940815786620900849207364551197101148730492483835985936394649354636843862030472773212250005942406337665069477944617882012293763946336247547687112896731543344253710726613082724699172040134761930888616468273546041533872791217404944297095579363397893224459808991042214157097552926208172968443031931396190535713601320316127185650563710210056799656162296170400312072153739158343376366528390658743683838482541242909889984196642355311954025336361283721128872425738709037639163944657882131632192827490206816828941610613736127035602228538179177418700716238530455071140407707158462751908834889188034215557165821760716135905107270126455950014037090156121490410737179645107680799412689926337014345794749917411943691297133242545007771280273140354618619828071417303164188386055187874843221873656133291165252218850783997790037434988970414375015258228679071521632581840553890258544484769808984861801866480115182864557532475495291913531646784703580898755399548397824906030728481366413899351665598870092557302792077215159285862470935354633919849988915130078324814815411582850898115241614175547964876979551757748289542463410105592368459443811217915032862202936646509054103944369219091863392159310635432486629105744505953153747577352281752302993006170709622740363218571723673873732315298489618581831009683198335895341987016192777684869017947056269749462190197911711650024555862052504326267434815294014412819725564616065618409110246164600338594133095450955890120158899653168512529216518712712353395327487512736000387879397549532078036935723652335796543436206853879122904913888247525090194918856255169010110166368334973865307226050202036340888218225657985609578458792009600186830688860225153591127897956186506368254186405763835831601617508611541113951490968805830594654764770131051009637565582919019035170230951519514846352402200046370943896845291268671120748720551816301181236149101644925438211906907008155616843645064702631268725797305535549691424388739099413583835447627802548395223591868828060669752070477377188472913232664871895405193337171026647848596180373900253901751928759729633262366416010047908679651069713501984138623631057122192749253693520871223642872678391916360657416789898080115342128877500950394210888723691091357645537834873733215038942339094961376447307299712561591127048587595531609878062244339316288035103626398660119855316173356808657346962210200931553829291561452207796400011926973613188107728350164080117154965423164990257636082295131894862788712834794526263857876555811048653572288484709257144395979272464207861361064461424819223499408455753416225591786723014822606151520243789281859567974091256954085922600451166273185520193185067275464582448158171365063739638265113481399948521729211826161663174317119062599841691375484395431749026110917410837110709204267582458011364329784442936170969345283324299575194734852209667515131789008522674347659639702095647881362972115764110756893706475957164343327112202257343218044048881266771263405789566271808732451051666489469343213184393952586161166554611944213063019952026660645315939022804604981319603349597224373719140795755434466126229251192177971441228940369728382375055136874183098163662711823943027764745058057321409092885894109563273773933428939608214373382720998836047422947738530777630774799158096196850876498734228529701529443505200106993594934272457685632870680177742012376035205944602416129571431459748377646297198444934601982286412265302004377868794104298353972255769271286801004667777465537465488851134285601769313770675224641464592560481267394013122080042857015248055042578210522556480777110320497843160450973399129681342412081202655574914255330974305587266029006526329827320650286589213299575402327251416064269576499280256517438537851032845764978931393557660846724630282289997901313785225075569052722700639928187420140145541234825860221350823146744081917428963460104679440850228126030113060065892021480244847107919547280826616270381864193106509341199063604145766818948689468047186444846656151977827937721499706452845617450992497581914359755765976337529046242250544050148478531481949615112349644858740002214071494248540837091493474831796689928340733286174317514701862107151896117305048351913168511316947197345580255135448253214409767399574141380217167882351459794810997972024324480766550009294348705335378964715733913625380279050739423006678783940173839252778793116022087570386694596562596782585635344353805421426117926598543473802128031476797208317314036445699316664177546394688723315909877280426896070954446816277892544402145816084104308398076584056746369227420585609232355143124283967218972782742701059883548452667049232102462798732229507111746789423580364649869577164997538334221029489883157961225503591194878440956866948537231665799112449705476847287252548698029791849555883387698017157508335271575944435970129100925311267863289247316455637255339312236954377197716264315909869678174674744751270948765882641193840854992657190850201522221133178219949597342895058412143531928969014618981707726197519178179736029036057667661716161465695577659896672165208542517883963703216455630820815330788874312173821545410982301756413204732341088651592203535275969445327709037081505178022731522340756319067987581115566501619430050852733766002994209946192155056077313165131023874088819875573743263219860588119454627996212742945959668544119936381753032713466981526076961281047210149086460455107891965766209839209810739586749083452837370801320832179663694541849200830412144279546670592495910974381240419461141310997443052895522625404720461879496669639130098525301756871502813945394507285563492699234455287001859377655977139955453012986713571923649985850924943904148689823122333469107562265493605701957390612281457621477781131644005083230136783464937777104715727238429155855974533597145606010365692232677569061522014917499074839231724201820871233070156792288253384409034818728115665314976065085988725116569696324743738418670444431448344184916432108449557321784818535352429225866266955833320448324754278315050277984864407588148780192587889467951003429852730359130464437497983187873870555833020176902222832511725914794309472089547490234094005342704873418820335568711550464643966152279359446452431014647282665137289915427886024438618082633545200235035029035482255252079419833543504726703412498249598454128402015370880616850303107755312394668001071844113552019473814956995560507188147300455515784784781068203639442631608494750653933118629476539736473787357189124843959723515393762129124500900011427802105385403866542306545046647826567258280562065555854375341627582582592557056278478181392716021829006758581348889548261571975238472493878726648980031486320170622208828138198804154528502992534574992671765518465964924307676087651064569788198711375486517469133912597147825864172530080071083709497545285998008019620842049885512304072662350650800622181821766950667246547514752697307529528676882721965334026651249062087872314603215894166000729667022837253510879180709963979315220596647855161518393356228315977262188310269807977191767765170083956144875652894622281438115173584077853201314891061966673301900935933138639393617160895102648518086248970476905167160802883060617727992977157849218252959521853435472379973596557873975890022975785687827187205246237970034000984227518304977284654143668624538988512924942422963230435129001198986380483710320176929421518710375799909306630316811331623177749750660155348155293763423571059621731883858705511438069788453751712963569568650248812491681307774340223893039164029365386244692719040010798359278477213131306543953300528200492109906628817832056828470393498438604570585186094777033889359133227616809164353225795115211282691324002938802048869938545425775911072200189072748909807940928546825806760396233085387883562095850233946304366093223031200407821154334888454068210060409989653385443715477443054451975156651758378269934077376750619657598381229265800597979211202274486639584159015387587669030469051266501671986260031822877762659288576452846512828298724458306753448064150630116251262776072143711351768218254104938347404330449444919385706475571210455717195078342501832033914871390091107241559063577154167413142831664202595606236552486753748409106514160549568678540117107249552654923038328861474013870396505217140113756142335951264933378318992537502916292450172080023445838997792413656719167457229994983421672362133791577314170735942183366299819800449070367613565946529666337049006287965122074691477205556467670130873972808748396190002577063288934426021377832443867980860007337489913814576529910190136149595418342599955748288640861848272065484327781863479120765218510467177735204182147306488373224273436524229044194533340649803404800610960454716880297669390048024054991356193932192208254469843639199479994921394727770985222579069848170352388037665425199979084170687154183593629690756563759495559580480070994040422848613797961167637249994678863858122839617559430394351890287284607257803299420269417367121497677662096857220059724124623603319241765206161533557646229872941799405422025784764489318403950755794266770137730851075720818983682302823172694545553149235440311004522860971392987609555543581353215542245960068237423458575443022010257482844060237541645303516758572697449099367336780637261116237590241319134671415414927322127505160201235236069009155522831280917576930843347130261695020784047695093595356708309391030531434901506992237960065107829338863522815686605013533556360567601591009140308104385872052423629549613980232080580629934336296621003663476689246260531003517809277351386550323284364129034084136928786053391133127588919296363893543398051842893000687000687641653976108558850953282973762787104363402802903680539816162432852724151902902367932662151684271781486399007604640464193826543716725971062815657130637708497444409515037295236443897999659384626860440942919182697214366748026592401729433715089763438096419170091884737046469463309314622946555423576650167267821072175128447551460145592387219734716323648738018064428114666818923099867363773170676980459041626014520573548487774991570509326061329810937112424563975763678312915177049228810504312786527346488279578704634954271149442659235241743198295935019063750482729496016848947450971276069377009135850993807265695206024250544315116978432045728398401942041612536444144991098707407259894470718592733948055428862229900705499588802881185843455809951947228163606066761757633317984116265613184973897958470441722710308865377028507751422101424421913640729962446209871120774209957651390815879859112024442743124391417757699161523736769898271480042594754006162708561507915864892742024483809556850043169471849249951281290375078182015142230938127226752911281324487419242708426630264609918260931375533878800329218262839674988602975623781082984738140277800365970067789232677056406084375585994396344543661607437795304861267097542139111395221791600723117848826021831981617086740265956537251502893348697216783445109501776120624501827571481868718184494870579759964717878699611001857588313250808790264537709722918758740472032115577973583085929785890271090139755509791941243697184057527218521093865249810443160973861800093257296473816804287668547613280977048912313969427386159559426857209732633731162792255551336674462562805639814333984816634539538654111426923733593631381156131539894430859361343088868672439685643261633013673853041456547161822295721356996455164015906011237226219495290343253709069474095957586394976504493743871183830708083755995796131732633800105742113029569046669404895498916994557578377288405835415426171994835177107312898642200011243244177040011479118958397754306348065242600953617452008504996093105427652841463356819652656673093328459831008185919933113794250800796983203116550062059101504693557605299580951206223938567437059088990356889236411653412066233841649973781742838960132624406615509987082022527919833057645594224848630420948444226702804301090235078420569837740981179005038595144550518007993120190480368058781953050186927295522978219541494774876411071833619680498921088778085540728552646881106661826189418906272273975474547351093836955248896192178237327403239016034251483568497583811850865348954481214337310877041809045355411926242587542932869046485267209248202049645285461708665873154716289509740511091430436287602429107786960715744142971383039091309477243040381034324950610650541123524004332640513404384963999316701736851107530891774807606174863861703216988290798948378315717719647810139999100007322928309842127781283933369428729742262186818961905455217898530286543210723379219865182123104146697690010743000833598004435781853291261343010087031123322614883907720055542488060944025571161297767463803931918552415659297918329432760898227904521815691604922529643497245420722079420659387205834095922978061611290163454082928089821882324084672919849273256776375823112012389263267395283394785909022244182706336250146970830333250287838124135448792894487990521096825353379857251544415338723544675763181148004326049845268681461818195762746533476274766133054182388879162361542227184500779033152558679864409708561440640241531309929118469210093978730555287751023273604163873056834105097454362924001379044997656473745745312539926008305966588706473218225581555105232407312742965884657289564046995565961186313417944263686285199540365871935729438784715749018385770572578522608487225524590481809504829407178384974544016155557376275097193913163626094265034654203925309231652554678122293528367886858595795683759855511084560830148073122011607625905211675057735074394095757752367206115259563449565965969461380945132773688331709363126106974374701425350477272285460508542929346914601624770851357429921013532302046436650140460419781405920107092562168488618379373555381061831796473928132172417937029535221608800853091338078140735615244556783328379333775302849851955865139103240328267318511767009990998671315402379109399804546120789121701218849992408934081333877257417617728210099865218556286963559788232406374575040129816559191562397847330004203892961556217019443034320451879478544247527973253207538572976770046593434445420427919000974808406283458521305713262075007815109958347647405019313308973568366286903673629678041930917451510010134802507536921633606330821301399272852313092033579082337375749665149827936156318124248902845013627496240726576750537769303501151381316579347721714074354877142274079454309379620151820377755283615743574702714007421061836558954569544764536439394716772495052214105403775160872587759745182613591205542730620811482310919368955311622090954944856461097031781833426668177486921297800329840243272158340145850981694863964385470968468723967575859367641014298186529428355749747064088704985812426993784054490043094457701171121167344765986642471212976025023474686684583179821002320122533309354514977422260036268981568061765190788405027461209357105764018194636825695208382978614461091138887329198212494777365594021206677759947471124884943868660832189562356236956620685871065085666066797571920086799542005549604441231960505717419229805738262219243248234598819069301959979877469215616370262590543705743495878744547585608976793714888676351372641117949213638262998153677757557838110906613031932871868237829478327184328228210680607128348836052898168067808638272519439007152451675800016215083787098773927977701946292822218774470617023500424948511705270488566528266045414134816096555878188820615001299380258101056783354656328248834858936519264099412263206530634014464116302790061022613979781463369770346978759026408624081185098696184493580440873308252161044997861988368231603837462564656929937203958222942462959162711206487884630783773198076505649031233418000459769179546877432844083791971172071928740615171164326804405488546702699158377592639025876806084039877083908730783957710400717021455247474107769461884582469876921437240196732061680744770514959964823577726851407542551265561769273177326722191801844549222907060881618074776872023969538334960196026593974666328678018109630401936251622014860898040268983446555467525956893692517638877511061904251575381760747588862738248026226949728892565814907841423136751017079951015614665530750284481617168371562196700886990442627552949968244961969798900307352183678287488327717357734469652815138473705063112862476842883057196339542028295990940405818121415867324750317222477202193089201605448384569463926242250928647434172981229943212767141472738893269294386402762436746447034037629422852623529335039399107962978972199355043770752860493222119422495393886347983401438668041951717499816979031682540062537076757398775918849203346495172980615649095685272304015054124506241718621479266249935741022951081471035516784836888037008430732605376583251155720025437093928350943784417992324625775639229224036198380468786938167118277357618009678171960853639992331767941271915687529279642461791336422169807143103930110918966696733668925561625081406923931949659333466422762057797537307999897445756442555093971666071612057581259246114982793188769702377064170442235173227926183718948774991397400105628547038627755098228376508820714131770821554808378758917180283240927230836535680019058988091856769210315313048232001837414019366676366384272596985388705039391217184431691409390056798702603623188329561122020188012937132757191865637010921157860439746106557529461440682211777599757713678306367344193064361156422236895656834974502877989997122247660356587661140836424399138547533326989251397028314732134789328906880481410921864119603648457967614660409934150305125686166144773301448618459137524148634396566441716938624639279775579579063003299203633770988727928650607184781261620417629071710625825406602388242512004698261681205042214229203208493209480521218198710792354130425725797645363083944991123077131047535295293661354202151203974654286670531258574734098351613942048097483285491336321950274801999377977744989353242591878099505699840135891836325529673147918200511414456100628399674674855963370570740317564558395610659522014930040357750865981561898265001746106216358206648349190775282569372489483351222277535771438214131405155707304308936503038748492807411921762858977414464487132605507308968010664877928864337148011082318338841872969311488365081866689784688456283658124553472459999343128366727312416932746795998320252881938404599625225253790732575776632617965580210320831437558787600456918066832312636249303579043529588366028942360671931519929171692279018464213136644432949573744511673011634558051074924045885295052748888021006916670065722766853392492430201527641255655116488934251652382408671989027614992527583678054000935120030993047501290940779486912036602689467122995970691575965921836454534024072667797322787730799779236968861313868883283904152575192919063905654306913438761504972003911193922556764501363231237971259148124196947728706637143907159155916394944471274645549470963769450366958620888342578893066558042979726334313467601590547423018349692217181418645255554879335686016060614470824945158806871514876966267544054040274256347758031391129920217704263669474694291830662492658449832033799473226924390265419358020653154307851711750060963337433970060493380953179285812969356966499688263793619924350507395775626205372135944458359862383630675996215830635024130297733844764062099121676990081214500424385879242859391011050251676940921341279467649009298315413436578725941432464241125508890699254567903341726418296297145516301784927001432713030395480693815459019665719524337520801214121513862802174562950473394895365334366691471059674712589639925040968445344961332784589841664631916085443235949473961387937442226188999648249603008049933553181071009149626926377364414802435725142782791921256722887000306298993752089159213343641901220183885753478159973739479454466526969841146949099506663603691123352241000524754503315893512447915998100405420409469928565766407288123748099676964104307930702479922670500752090894327506044210789077891561749113792801520208375669127131207975337550460337185683883260207698884634731028538319529519445845864552127631816249059247182076977760061092820124171857831692766981802934908153968108380842481809962620745329530077439094993328076929669306593172086958700774123785250034652056708085122853801765275674734202418265118748234100152720107318328835589169384009653647554292770816577201290999266883763884532510169935185566188595655453836628383609603772926467196564345964012200075843780950993304366419769267465933472546706580349537347894362327324555757096862580623150310886262701900498248805577798191520773652821717955713076246322022326585876071185713486320294311888520750256235306874396401775683969658708810055600053180031571492945341835041917925245892861049452439030961019736593001288166873768709867238318309280228464282805084179214774245471164436974760374197109019534376695019765570714719981865267061512152931147018810267912768195204299254581706528652560404722487297866496978740175378973830002611676608449761391714377121011550247550774243957139694652484917979555303811393199683704398205321072817034823941004234544660190049006000379808305170730437767050707118175603691897355587626011435084275148654063025639184393620775746362437856503189866202699790959127146296729871956293686844173297952872278146226808337127491187454499297075559146915951276485400327650327073485616532502307447110441795296295003991899708504091999657428067397954078320317545420699194850839518236554115547335479643847841633721168444603816353572678828315185762726750623180607545327966067812708946828757146625664573769619061012054533642695730551552892548682040836154599182991738442234767476442477738330178837212945776351322657076023792510628845813968905328496208489918624068975208334851005525159348482317329962860582540918695489374774273349518632104556249261062234761441135310190861846043974458052344056363151529573882155229602916594796377271987490898538814167655805191784471302479510049359856905241177502456832822087613239623052769939386929543081419322423873561963563056126610056631454241409525112089722040946562426914858313740664576893666464904856922988842017034498858573088569454115463048729558041157840233198826524881756824583027633855209529978044931592348749970855547750709877625621412758976736519886006019067700382011538243783226595721579655752072702060953722568419129054841965334133586068334783787894254293933267835695813992588784993009330853419355920119358377846280189033889348285274045075304286236804935628897153614767908936843842378100758371613296995184171687700414192915188209248991635502110589608335423147541815328476380329738883550909403894994855066131637414523889232987312453100769700913770736276030407848245975355412275413020438237103107175062769336317775618532026157062093206202238256620056693566011141439424549675697264269262009263292003200496671531124952113688117569761683673766452259415094201564803244106841027284658259703311754571719355553640556717646517134683179796135099626373423169046059919838647747878651362013296535368907937062555874845302634730617050825920646020031222730485545639734589989160239235300402496607072978711565948615934634279135971891552785132951658085934986666983360607792241403365636648609491138729283555949728462416928264062360102623554345345704276793600359462036502234441762022920298273160841500639239289582612481138791595070378403780819713300645376906209662275264413284531289497986317740907500345285953715697977780507491013938528917807629483586438920419481701232457878348438086647555952410800626339167253583788472995750106141357477032763161174880270954412720552404900772315133901085453436031031285302250651104509986299211451780008007352696260276758779349455544313952433066856999361935632888754952412719694728027663449890074238067566885148707538935945338235879442514684610909986270634274043164855975333184859693759246917000282078979001554313441047659977780577695171289905163092493822743039914479546131844041228716867130717326774139125974425225904444155048769579588941860342107563394092190451859227452406188130648585464860891781775299615716198646529845895224108016668870566334009397834579169599030242630738840103220829729488227880672905685487395969498761619716684422728304529602413709052530625702740146583179417815466661457925464973523057013137579404653474202381627677818677458425129372888160234163381114613558036025260934141704108329379617900787569170283383146531282090470394082773278869625412390807862046663972184629660752980564689690160589131583333067732692043636933187476034857999970634078175480207881649885236171720512681218469225877551531620897386963712315375560258121595731869171515841593034498901769605690127644858032969742311002767188626013234256776748645453378189506299621970275832786431205005920703853048378246687667308751796243967476861676317108720968128331247038340249859265104934647948529495329810401331262521236728944102477958195241184609416882324816756957794064856364545272619615990192842632278646098634741508868691365832229407951657208319543917335389794406246892704508825549349687833381711386720491795199457019521820001363936521335939564480313356685283363613754618115321787248857049802455423529641747064285982523774357066485330874896267144773714051777083573671848993041206352815272391322524737295422055993503012105545252898302821085298033284079237110040643074632837311477508624751648127940288850079844307808249256208560529008586354936670482261836349948440114607565248609857597497972191295624161660027668913636066313702289736413616896651611225705468786058988046796543846688172111754586989180880760640049216995251808794009883733961594029716807614043743042847573779422994113919084977714495229409603508584063168529799708625065810709151666906551166070613047928567183073598635201940050172870945343284747596665591861778347572961357851640740235392213901679631442580364470462105929691105133757439504428884628775707314406774538834583138620011527218935638781130571483980066234861247487670409532194279386243298946181520242910302167827720871365674438524235542217006948757913542168323710086349810941097405223838659408373144306809891742837446837999448169730241491257701521681053394649604355337774804892882503430719170531020254399709633574101770860027443323561229998211481685018905599903016735870009190299140789399377941050255827288369380385179452020668858349386213772039640189669476293012080584853171838499764699862451646101590571466074144225482037758558379593654046824816013117668388417251561525580633029180616838351855630184412700493312766452939550722460643854628664574476445426531759644145186161550533430528941567361029260302203486784757615995245282939248373883010355105841056955395747587603469281684091611666449792130933508563556016920961962413312807721744442269388322618425601864058943141486532675302353198361028901977059820005045748576321835374061924308334380365510187289441870481785259628012760842443417280484180556260362681731424558531704048946593879023990429307283937761582579608453555726728544754535997761612651239555971460853128038322612386960204242028680231435398262849939874740771737942665445407025952838727331445571252990837120746445019564273643546193427467255613034714726903290173850668283463706895419214423075671167232960457794982386399120171712528134011923097634195953031483939698477135303559034905808653269414700224584589553390847376660731831034646540411641142197823801932173008951982288965832488263914240353384541335440607850535558874278341397506816082623441453196770628979012584961529293071239111425613434285208438989962689144004193009758104399580078014517039520401298586318274441973613951786511384475643167554164519966247528778360934998373978150134148213598549883302536881488375321363025196138311029379856560096228823415893977832760677324278076558799263417080396687479278710138298860918924426118624145342724729950859939489969784561268669867686630684792378425640205302231156498596013884556208287549978895522801720926557017813290805937249121225412577454769478156542260577936869921677180580036049575045211933926779292212137085724577551581342836868802946233584370162879477917940148861596505281276497994773333975712595149431776714720929411367624547236296175743824098697634887009203055257870334714037438465861409307258448429056823971640797949586100510441869306082457518755287445613590882268876798155544735592824040956608536078498087713225142646974310159020940315900905387459039950749307845330297789939764730937038476518391768673953308623790989707786097966362894940211206334969336176490561272027289867798741150980166710728869024571870500075586356822304389603725695639857811464685157682926989358860477082068375338243937651981381267975620010743323145651456440349070932260267707104272889413866790088041220273769527892408540927473826892418196797898043241907357173429680437972152885108980286478748527232084813896789886424257944354698081538666002016058129600522073766333719680182948847192387671485875312899447030761692580734819294014788097267710028206602105158460813905003684692362833165188099823233957677618020758773106794932011846674112189805354891235516102641417231389481541365925800107946551209107191090631618078350326019103634593172743865920280970156014119122613241662110095963895708273845035633695910678698962499622138584720312964687824226824818059660131513905955648389704127693204916393096022216120821185002221896194023402679272745445540583764074737000654620542521106876056331331210576173756566412387570354367171474925420583749385541256686084799208406518693772113719832051739022047156426848075478962222024586153821959568213522076568646555842832162957479612544011007249991078641340378984186963529129864002193309423444537849781142327776220997081327705403929852607051761648155652388169744663231825859628237454660765373767473148480389127310351701564431803427632199768545121049234037554042820768273608181756863231776848757447335233753621175148035404845970676743584941308666503001931962588461129371742569906829249366579577393167490351513989526683132165239625091341679373649683287660011323474579088963766017296749113415813472664674807990890837104798562028576273902410448155838692671404832915435336910011922947942251857870419094831977074185608197830412901023210602274197799493124994457398856391149760153734991886527248620643596127268756803071574819150244516867300134747114668506766637403075507616169067235306086235778849531362862573627116879143278018763303083034681511541050869485535429698220405817568826989653812513511083709705311425110827707350029285994184503835234458892301362445781649286121351768248348354515926754649744577562139402405278574234935031285788185534263103058928331811441711195287382240329945813471357703010012318444734128315995142469774130498846263965684033097596843922093032251581480752910762683873670863390579573105447986648039428817124818184202316637633405879390295217692019903078970730921493433443441313833966998491418530422686978677519098532973083022379747593121029393770108426211026747500637783628771238220161097231606041874572059177295594791470373428938715571117551081949789800547368641681362844156027399241471715922847486767509228858417401948957189831914585880167106165118894597360647375769430172399405044774364856951504073126921544709701195844956224723222402898595672385730019575009351548687944608690878373411731821417670709104494587971456557335939661894110061515559155969508975259596530445898191658579912278273491515547249970249792522865411701429701663523825318302091772306327395325699922584840157161065115009023194300450822192675178032455032345013828180507445850770279988048696073923758962510875855235621421620572231953825818348538437998800369076399581818143378936086840861527293937633560017465748571531787191051907259080697774590236030965922908358808460993268001700634973567699163275328302559764359026492031431572579645144340311758599576787683747345982592910199740334773278781055724414036268220565619173376667010397157849704248477723026377798398165018123793018181471715490482277683349828102632559012363064263803653425351552824862674319930963276203368646500312705620434906421400872151795636138584263275812533674770411015890524223431928903833408545102641444714257383692611273477187872493613028969052247898703814006877146766935471418055590935255656805883570828575374687618201459553833807760365405717547169619514246414816999356357668793500348777847963519938905537919689610224965719377522963273875642375392658481304795669690644507265225682156255693351505517380386241038405432648742528591789255521952842201833793995266161303421873622501817647115963389297545055167614858545196768855163184784411419335579854255787997146316307884357248722139109727534720055038168288977270563498596761956732513864379677499295308796815384577062151209668611669006073887420373235354687990217990234907837857209128610563823983530713532029404250028286544612725815490460862652120990241587268626266784099515275789290383338511668159545271368425249400440405137428095009214460230566239330490375016744320488685290488119291925237983156331292186217207153147473765777072936277891462849953101192328651635168313795188623768322483312623859835429562379691380923318656210802139167447674880169949612315018214316613892537695659494542971766588249838988470773472934963609989907179027653898403383276704055769327955918030725076016639281134847947431560237719952630915472418454736557166242665298908972269757748948591356677482476237090413687743796552956732425879188817778269421766023551284212179721372164683928719797051752390551983366168306547230045343372633764085317692022150380665769761538869320569129905877520185603585809819389981186010844501194722737056146223165683235215020917884790131894816157151435719011907852635048279508221942548651987844184436814774572344906363090425231550727468179839875213208645909495231680358541288809144586414846370040921463595282048392694253963521365886048733731260714850372385444046662859603144570862205002642920836847717556118290857835654581537125185429313130581253482799153178503915790468705072473245539027826972330094858913314564270535257840665552265432681189085977012552525211386455562889150295396289422734861700907018917550687009184447223864413229530842212385743955574626668851216836480189490898424650819574612162807319206855019212151913674271408338498845509789129463699258004850826459719252240865926630123473802710712579172029311772390647375939653434338761101407567383736563860267442698585870852874741602376824360407786806264081238180322405944407779759893030367699335208169931771522464818531939357015154298100297666162839645536602094739154396636217741246791787226292750790044490971267949665693814597767259974600074213172701313936492538270474339173942472867416527524210148889528120361558111945088001816159810922291389717224821846295229723311172643201978041479517370530928032838790508274840250397323326526777408627230910713752345473851418746747409582540930806145203263799632193385047757606027204054587275088508000124073035066904324930031988481752876914076374073637764627836897829254509040694945412636363310425390626347427528864474683319786365036886046506840388105090539734057017797215385926915254351559253338717594007948344646511288842888177508333497850276331850361703838721686661179460395859873656279066388671066928580117319857338415731453640581919946489540760736379882913470378044506364341707349507292380096509266854857292980833803333262537294360089331631015856162893789116755248752850553809682233990066421163721617687948654221590312786301762857926809324357862531704954960371746824663540564829837321673808696436116004870962867722994159288641375789912372494358332123098800130339933408649250553159657025742249671238733738532297292490890286894509407618764867715077996618518288486856609951246521374213380000542275668913106706216326423815863327164104504610691998865306963989101489167832232079937246241115923373294959344157756018420180300776237170811198616366585158840967931563094689358113380172923344000552438850289235946903832954029064228805967135810321556180234830587372509114181200778441048975091858724469005299812592027634352592485284423048403206356809481318051959803332127580148749163021146362424972751162045179217461333922822046332652640141497574625965610890105533200215213984818491127459106297666051766234211257333094336260890819342758681590115119563009925754704905313218407158105948670994360062182965382237282708896037270849884610213470433059757559989480073042970038253550291678319253359952963633122215252081184787959108424810776528296664813504317355803732300934950869934681653942999286424895910029577128365299784137773667953908276472565088191514936578093312546045812678812004875634747935706512668569041884705058645320046979309492070621540549711498505130210430078516715505815313041118886849114716994489659945324300501723898764920318636288610797821229620751871581304059147324128248993439683815713580108546529189032240331343650330633695567061150037093335143156744021218475743613173177458358742582436132640539847349216557091854886144896165628264343797969746532098710582378300052049903054881204416595330733574573838023811919346758545505107676866450912151195152285609882597911324271696480032332807728687404455472913332958860069593180674512332277455362244399500136048077584471503587282929205808910818161946927211637064967055365227093197961605380631023550058535057167774789556754786749688834315231521244847646963518865478131855484238653380126810420293139592256008081523683980479546476209699660226380860520539204093887431496620451240251638455302455750092056157360891510172140716192101053229252820745881600949832705750542226259709020582365819060013769733278393869072684661646382279786981750100040230914377549367178556778149152358573454284075874652260671800172564334312223126021793266599782704098652234403558987742847853241043431636337096271117675975924392147096031768811387223071426027456624828494961499742218948284939496515243042943554828289117408741769019580816531250795866491512079541799078978047970052510012791037541919460183861988300023882005057903562268960835747218588343207331993983805876429868592069358184286567163270797641922858868151172466749887969676262532443585335288492876755132985595704694618087980790980773561298097254843371662074455902548894536912569790430869179180129015042753564989458167974047114775268683175417150173270806822845183564345069405452988981839153773092272168036786131323308646681045425260419893208559250516565999692779732143489088297645090310697962790874551892026450938876925729676425099731242924453425427783649683832870359480895097255485728851389128617204662146837829715904668653180439938431937291643186915121384981555516445507728530810219861222746886718508111613594837263873854892180026493483082003230716481081276514584495188357099324140028200128188282204172990853625975819340595624103647721116923129712624466949286740508855555980476861354706373985955938860452925455335151195920029281149072249679045568258380717923035886272007609549907584948573052121690324721838111311059911617992117278659703743502549310410486882817294974389129878885129859437038727159943102413141376580619108168763076774195368345088559877965133338908666661927392799276861153247425913290574122757252149808155679524034281141684084146448048805198884958103443907950065361472104243143064179918245505962594498515359545155379086221566169131818207158919578848475556617663351880304065471954147735214030507884856400350645069262947335080571784324209546855091843755282446549165348484033965063884333243516471478255940791012306484494364562800018199383714387218096843812007692718678883819387481356233148765941726699732374045340885593157573251907410837851077948286129145285876174585504745063436313948956674127457775104215119147485236240775167233921666988602059811973298417650206713637080550124253882648560826034581109422377674797111219862177718048259101294172507679401546094697354246499956361149515924477303095548997728543109533029563179969688672459836381112883868311337319552270805291409274669808577167004915577363079769711640682359506281535149907050153927169784587368356373540030827946798683702156629436813611477164822618690528268840396990346896993486570691594155440250832895377039487713293460969903082617926821139427687400668452787703539574045606928300875256556693483943199054937221007383818231919559690413094280477154453069059324983815649949144704901550674843304518454975817719574078722228913361195168043216557997448253779097815698021900556931779959706858261533073619849880361344136419783757268012667174834075665348148599685726304849294719147774750192931936648220702273521267605905682536796018591411884396791484534807881403426729018957358485627244454443820604579009066362021071941953094489554076348820241469143255594461429826375314068232501920626275861888244560330895341032816053673012200351074522746167625928348099872439413959883534013214204367453763898586786000729675817381072754971929171676443401145124089905310641917064392175812709895827908885899702760720226878687705242792066455293205858609704604331896836919444786158040202810087213565673910717467636534113454737968577165962883600887429963032907842453970807846111383586573391801665143322093704988078240802879573308461450640313268169695368381748013170711953373825391207530341149701732231169761579667828596338584940362312729008741379441071431446944927317075880235101762039966270635402058021106089396037759530066555223745410237332064869690132323417304241571222197150451093242806880135507147688540104892102153421797169973005409432966963347609194110024187943381883262205870564459636810971299396747102496986707216465930746463967695239508793071050333885105672483032327847741395367187116912045673719662879859892708438385842423294254400519509519840390794752046068370062469779385267382525698031261781781785501777227388669916031976534650600827365342246884397123277075319554802509002403508129203545004263516513799891412032076277708883237470594387047573097417814054572395012200212649987404255365177360503925029943141548468417754657298906424853163804919451959513245017493126103230935047815088134818650808974285178424614241379321049988175851319686395957447201048852164854076981729112416276656871861766960332686627919284591306930128910888873299803158103723572697098932482053893626936602976980437492193723171329953498920360781682589501188588398242335892301480143524618500122427711606469988400588015657965276537877898284431294792697236436105695881922803043573534569349150287066327277066369363616722148057465121938062557566999443688436061657014870823526225671157455888734159730321774244033801514741681215908832276545598752699946362052269896747739707369945392360307156453615239546529962474269104583680408090607985483473398584762755135086728195059619343517484606797233756757737770856683238143665320831659013085791279079744029209410683156251118299908563901802560249533168296720757075289124478766673438190543855365174818906679136716411317872237699523175435090103155574059315077132332190867863436359991230319319781002494416172817026936228041191830347543056808481504411468371108967393944710306236481052473101512466013843677012800792327925981704716484179448682415826168970274242619097033268849504834464146678974487372932811785154739366038178013762154380764812205129167662397688968386086128914258027368783070989594173820062589297573670377624556842667628717170000433793331556313938772388452529674503447397832945331128772013362272358120079589076896630238672835947455198140542371846246136866467229038802706849114883288488443408964581855812563532089465057926049194982809470127586865951795680751377062758884271103816047497107195830926096472684394193852828659268391816006859954200350810744112694454691629001231689610691110115856250968883636980764449995994564441555539426617056933252697569661516809464105927445867467808285983820636410807123159544501703921934595181526782125876687047626530799932487527044145550379304669169489429062973666354642870766199021465911308414530251538259741827007228514089126675064403402176618622982107016826807979829110000699637825334605999053785233889679537668209923135741376510524742731886797321777413843034548217493514077620834869915137154694582731136258039474228032301511410704705004956076623231720595084795632884551004131248959305797065231396828136292577642701985730430417096686772697166171680910913244059618950423282312445406717804667571617134867083773977236481108745694334828627033920087136212025354494428635674945308369896133153974288919733275547925054669182363279293943060773124357824112305096293171475324981129558385388515226593506317999385920443258506878624273464582304591268092505309772148659090091289731015217699398209626520398396043343794566508910044764063319897053632802173428529385359826592823004630187784251172062441330379439408950294091919640482478860540021382559817273390865235667809948272572090037579355607068354152383776925769157643329842385382943579738924953550504370204324264954148110773443405217793613734156477363873991362326028434324670850583687247584756284819988815206217190491747124500162373652307169940829324181932963623557087415738609879026731839315445177164967937199180573731322528218668473961285039690848926591477256726593895272289663363179681888907907607813936946467884937990357396800350695101152772279419552911816965033550730405403104556881634035444031638008395250811708624728679326100391046707946474359376094327155058300420286859420578631910137326428748765434536019959787229096085052767278637482046410554526111577254225812641560932840681747561934250786020960208194742221027865077861844045225288154529930321667275658490687271541656767020945686170098274766995153705791130053131035845719949042876410561197493908120740146091771406345380871929559191552761451148884625382784202123043193598740408816673323682258993076556208504948974848570541474582426520715187769257325758889564210068465354319539155027209129987636913334372572178575154583083495128056235917169822814333751749769013701088319409820151215931222827321421875374292818458625219075218439991313297418602425815815273228175350179480772065323627338644835818610119614491942248273825141103687313609459653790252767578063044901494971469883994768629402662380170209856577859228380351683892463558910021418519402566585364736660895614479284619224895542385587275480845525189476745760931728509855817225769433508697834198515284943039911679066716202776650682699352539051980454893432136621936658264700539056602302430242954803487807157895858150513628114632213252773122051542057884416307539859528534357913894980806972031501094572154380915883251422332885797811784471101131241546062651217039239142324876116547386588166970545670083233916060269663118199564086830541117430257066843583550343279129736025262495018924908148007467445550678392239512281481172441707627629320149373802440412213073440802953989883767014811795837931514332634535826278628578690124878925088406116215419845753280009827675242330762431437516994608797547500832992463870426098698975217547369645114820957104452630590837767658351792946423690885943770279214504901785615948783710646728034540516577463478558045512971846157001540080056803401231670411705922276516012520485589436303983098748251390069300762528365860059026573676742488139230838346463931148015297076619674634248517792294541363956754323194807716522115962285567112293196989598611428759377280818973827443767097339442534152087358011946567931247643773790063068706990595309708827444788478328532142693961692176239359927458200783312236021159060856120731347460066841659095209448068143259911097783052943824070080711070555181231795521612143708201038721955093612601274854783089862543578107429327400080686893081602036255619394889678796833434623406804588847563144900966750053321217132683055292361467369567429186605155857724748334921082892584613661671936903025226318737416225576935555936080272144956346328714790269822223117280430147731183123713711811181825755302173900179148743505779364246188566538881079033533659204056142915431452838988394546187123510939334059166237177059308801577953504317509002705889106889990053761575267345872452298306996762181572887904873612121386921372075184162859328457532864866432702657021096166747392233068988035799525517487287579252855544981194370979745725969388607881539876094497734180282077545293700893632927006246558511025792727471462567455663147502403842654963611309541883682681677613133914482404098106210213178072836299316994943436893352862326245171913330137505524912329551785226731085951958762695524273737653380874639012300638882352783329343131215807189708491647042767102739259755133946575134467826605399597380792745272729859626645014534625689116628963735769738994061346285732154863680269401051343929737020675103601626680612781138308604486183663901910085772982195315082608201868635531454587044761519994276336999237461156166762297563646714031470861540100380357292024308895811897484906581521041131313019851352126343260549501494875395792212190259756279833207881055571358431102914086417883795157209390915006109001822277069092408406167431724063536456495668023133449950372496239214575555309356415768717698971015037805931675566848612505676636495946909135973174605785860766726782277460497638022605465860045954272031443119092671012647122456927818992825376601505017913309542811079806354016623438574034800433014531203628722503477906517137949464124244246891200291638591410747349159092688769804598349226913679817580215359747746678613403312542063113884683868126539284030245665171236849622828287096634903599545166169016603458131344615417613341288693057759233197465088461132488931453047935667002962814728512567979762160561794525626694377270371900448035362803547192663151864388559155528920766940871510576933803899026512756286127841364448188891907959849193320022443253014261727288749753567672630124143339061521053005306379859917307604444563053951054899654895223614966138033578913733513494260456054595861358977621922499291840800805479566822151683373941051889270467879849283179759917203318659373313537275268243892901205142747601357711964789777766158443122378369156347446123295460296523620676554109890214535807504857664882554591308521770435787412127438775764599881998392125395312009988708778638226235784628081374630750826860733763397293616372727385058711690962550860010252117098084436607036595678997509362756283673717441437235828660692896040834948763464384545053262233184984676969163246149160915787865331432423374145912466384636606603396042835637251079864603782424451508498598079453110085666760724210231999239912245952520370301347605124826725838751407088912072001405025323516235853482369199923539424019328030671174531618603206950005249639729591753020006335290485864619328943574698835551416682337193590169872437426638343057133695825139902097203553989902496941521782748246680676627469837711467445191087925311703797648638163652337406378964252783998836828369193339370356400342074624881600484100401844131466798986850064712370401994340155665386519068118987112885544320038025336853176581880186456079308339863830451504963319467699615227002832792202840911613585690021458051202737596461525146971795858404109839347875620418217562716585017368933811718942649536861243387564312783717275050286383923500257691226238804982450963011855577507756425555408223586751009556119921018307715462568686463207085476147332308468272929238838216298482364549820952318818756930775356753258081964774242447111591150555027506991528198782018489791685251741894093281254681444226017360901083030780690269271265453913928606277163602719426256626713498122301744760160287361649563180213779479401623346955607023315211307715207330446581333382523715222173806277701440434925811571394982575432041970388766997670918786463772133431446365173397619837322775109479589528768509293012880751794751616559744984104967183321328975417284984986277602340976912819562560603624141999196360071040824634184632673325578527724668203162314019925829852063994499031477090722909025909620348063627938714718339309272931729263433185173891567993506241004261636275170413785335954472732594669104147539091702809537506189918815481889270883656738051242158068421976826033299265303744528365622777574329959093482064914094848392642126985635290533767771589108570754030539509789977360913811094255354587043315306360238600835867833617451041625627514506521739826505118484290754971293631537344017835951625348209222153734568673002937488857123289093576824319607328812950107529384886540267812844699475185244989561180464001455247594457921181834698546453368147654803286926020194076344344862715337667018440104099229966364782048665674441316726980305404149581789043909374539539361509180581442856575040602320127361654403542961571724034610301186277064559665083094419382195014003226952210813703674056574684483134814821727295758211152829547002553807342968620448455303511944703986356841818598261992302117189743139541215349521971913480781194517410568229114092376627426380842158487839909886067636396063007347369866539007408609224958893342034486962676797375504637675581651354922714666823018901301685523767269802627195737516229433343610294079827069750379610120628434716586735892392952174062668372020398069851294516497908060450534726384729108979685903210182833476288414138248870976997437600091709028369889005276815195642060176372934635634579562046521055450895408610141866044039767441508263434126450332236148352415022814954956015321277134770372839599558953411335164444362060775629654519622382154343999137770232081839746371999944957640618499758309570502777871900852301981242787777077823855787604301489415249442989271144760154803396722695531669130158859022727795468758462006785091484141229145196698890741671635836607969388852522162178064497725249432525452404025466717466423519191057406159793677578019074957352726792099100072319864104024603642049286057738764874542209732604006628631662470184808416524545064140593351109203461252431865001736045492656983844405480257065187740023467475907513092923989879824613887902449757757971674410917831797875575589933507596445825250770384265118139380711717960703964322248128864402896972587054834155281996324053583467487604392579660590749018262726790271979154871022105449632097135642343936635412603985327174151209377021060278297621891544564315149088500311992647815321130058067501369399745569385770730392345795992651920043670082229210239941784952185153689386160524286221140269239229463286418271519337887520762617914331026170738077350909216678592930487827369700195044604698311177447604447487212980139489996566498885297175986639354928411000338665827034403561504080380077607978802752699704862180686751017219421651499010533697715315497898716393474086368381725180167018773350297734818344277522983799416886649815956017008531824676506746414632328256712628520289681966612540834161026445543734927277165139275844455506785849507181624040005818804550790264442436214173381173164335465083773711725349379737430316285567841002267951387091144260946363544492021552467818062575313836827266134864722774315875242870560776368797961933069966632601348874769479646592089637498593698329424835524727770424986846006319138503919369602546047148328600133960724039468546224751190995300625921780112651814322516449457813631867612105299168948249503948213918653806006132429849405102005090693598144219596870706990075990103461906787481532715767140748940873204408884997158890152664826754621789967489202200572117522823377733560633935777876105574414670490257474232807548157629033300417927517241133155529812676051209332131808079692204763549391975906284221444180676497011043674615677810729300186958630855314167721673125197889601549729060235745148447165443987514876218451351503272749822081771435367622634630639624182377636090422933438884662588865795849816263064692672513281474275334266274649400330997545107303944119323772835400768694640096465072713663985808503686357567234831833449622212468472976963860115472585164045410746696933197007404615977428016163440810405973923154578871502026997080792046169796438300699703204808415226677279750863396281245598400721904383724085922528561024950024350078397863471719888745462188922089022308090356006055013976029652940593000972107757572783015500570603083859408095297748034414845270689672186079943743006865201837741127601150553993185683294920294265477042280394020636172233137858730640525088792874669655688709737377158105235392563432358857607501191111862703702704570365184684873279959127558946726732532871795299165382344392772458572599127660086786493632946756680410699568199655609227420472668378252015138183684465657629265464065240509120207393807026740038686520671131456476345617189191719342376505553595062271148463598636966635348781933525543137586848585903382444530472755039494703971027697325524670185900107651065017781807970458719064452725064657236755348097942168375900501253998199304356285240751012286790545229616313746906302510021657078806889672870229415100562697199767752875051237338859177641990641598425831676408096213307803415659441164463625997631969541247902531856178714955556077499160293191593905847803370076830855681927057882849323464836412164516327586557182020508087055892054362096929958448701707882776672875712448018625971506571070475615340386244964472432892462488977515065539224454522187098784155494865108790439420423774213484871755048681555400456960594881019346287204791628966680966554083654891135599328043587897843513370008975529628690079417816957736354164605950568953921620526972836432650825465552605197583454863780905449385593383500435177484813494667461762075577949362810977828849930074425645429006180665752952852857678305007067102318294759232939675343961829605297458992862909841232811770729145242783923387183518613048983101160066572201634892481709050954618872730883881866436207869396688523515249690243996959474557871216741820898135195551778623962945923735341053026605358618741058469797411799794231291322881583231902742401654752996397758429885237663462763094037527004349471797966731237362247226763924336163430927932073577099727495841190459173277301584540577068030207248731439802580413287842561836729649783533386202888189269507658693673308200167482184641056231598825885177365941342453983525726371118643398997555478914733576917748892657007201419401691869339493664149605678099064058359025901844840624540243340280493566401716494902745434608972888006399110132102276908403940671295177973183248044877091628269052402156921737498952452190134945486663036408253410605000003750492624073038302685470053660563965584867999246527543032382140900989609951003878156538754666214790751798685232455674974451927266365562315566571783275689976650360869817020442303410400818135703223925335549916823241363882120305160011027625045603942446803823859707675395587360142113459495938944210538226195862365879168472031352041133429688065797047384395594289247403151895531519607605315016512851457497626390479573645109760543457999340844019182921952227935183666407782180680375497951773799915119990907179367927608915129703166029523757245580326361275427627594132341428081534216122513722967033199572287044154163199061832540298100237610268309090766047588798855766629790090434391796653105583345459355691562651749594728238520261373034018410491478942239590893851237618932819192747263195739491392243311545394780810076051857134367891126893706822665567806221144575261422378758025698734780259846517616128479116470709002295129865536266715166888342354869556252635278417644276418704578862886341258565823217155869906533129615415981126806069513969727291002489067515877031324375714618247861319226052411683848601113833492725417862115221822892593364786629652349701328328411735823130642674938450109389881691984534089726565250383374874664539505058194080534718778028346276455791106938141161620705559569270551755309589887657471105199298461193765094258603015420095516812654537011538991177440456741593261537529764469964944306625412630032462041494405242141140973587798893396958335978932473544562577297377581610445692870374484118534829709692530504860634209384969382699881773228155389455473217787247581831028879466146395859097628868027332954361648037999165236160636472832363873739479463331848584658058633177173220249884652257703895201204806604642453739482384648343331879409234082474165576249851309875203855793925949317790152987032732712837117027694170767924458217693901314229807260095249019887407310154333335610585109241433353467759418138299692250447331532567500468528092182903904835180994409298053214475570284354439894094741409403262308198774224290237684150473992597397958100762094631079667408214922556134432975636602990838251914933796992325045000106280821031974497112650999994633815341468380760646694995268807081427601150959773303650798766944531251316722595893511132145066396982182302903155850263162673602860554021548230173732208725991556952619929713335803863209359849185486645264110978848571177974299466983587083618222566509691499406755871089385512313516560646600212401565105459734268977262295322148849912405554553986946394208779405704068094506769756847287581910335085003761636600588178641167569644007428864256093258045744575879162445664247488881097925820595866979679859590473235467035009092030269414125724460755409830808867934225468193951983538222448895429815828135245544148128312669326817040937751405981478145003360097329353544042512684480951693618253979534732878920294259039850144358181576086094535857951220314005056013058089359663222421960843217171264866539382479582780503703842242186741350895270868927784001841021661425232237062897917323767610041958837808017436301246287469861021369426042270216168577081945024958503859113638554946136252446925171197398571378915915679914437331069514872048051429217427405024847287467427570533239381642176085016213142468277029602190724722866539129451862494514005292060538060863721843739622962824100878216489562372616909984429597434993982638916190319067458667990697541355574667721295985303828420979359640356289803777889394046332306763975563131520171682387913540436542587824813577126630063721775199996050402866299522746124431849403280526068477149602753109926247593405849283872350831260767388426874590734912571403048309302116662728262232874482643237855458638166630730601375622397710833821422158371194889368222631225850882738598911901081232189083738271036222158313903900593739250759769595507464868442009683806515976846117322312645500121967898233811944364969983647183607300489835283000882259918302152063668303770493296053786621421122666695193448285787107866436998332162977623364434183180603821291132568408390146396878957845515464028866415232325099759961605000965139581927456422615636402010283241580503265487839178107426587134339927361992396106885614577092296505569379442727526091927286589845809072322871160159847873957291191313340004257594989533318332817215406105840805524541570951902336153431863072738041539172416856625029894349995974948109057135132330223439746197332364064308143487293312899085593484546622649958438818660539484583499807150516534313085762427949567042182668772325904353228297301873313812797644256615956389682538248205210939601118151352622133868845877737767838132625664754547728152559208129402339442073468954916664545690731325270659784064367386194533925541005301387971333967492081768546199542128488520039939859999545981205918120767749934483210610607658470809871759830359298417875974960041586455065547290647208643058476283156739119147637069972801913034198596876334586896802891908198634194617692293443606619255894747888173187834777184879917820877270211795992831316546263756377033879700740069534696185494560370426636842592535325895449904167253867659676672011489118247270144877942640374632493849024791403433298132211012121113234311443602073633821579538803231374585594589713127597966017217590322461331337775067188418613368544759118600752346531807743347749375440996509532994995559122323013513327430570648827767843357194220365302332531810099973783838725082362883730652258863418511124100506319676842615275035249245375103569680378090593238824318882740264276484121552462782677267058119967143477079397166951611575046568566692666959315723660753631826289088672829367204954191500091298971089458087609545245046939203901500117950416104141184875694072903119191114409128793532641302081330253345457355054342417972756621933775450102976761226047403347632154231419946532247143331348255132419685778976547963530908641357759727075323416828347823691698084898487760613064676141427665785572002141905865685341933984769928624152763076350074418012185110278357454827649471327036892522887902346394261992385262036722391101460171125266853635333807202708395202557577921773494828052765982465520850318351029305287102544500620655711190741747499681937153339710881096859105646860086985176622379769467858056400294183348239817269731310393062276438153384668221078663013280690748460749648300190981743938107120379577061797637228200521625342866934850622790341649173830448544059726332431702987671180310169442469723216627597011488489916200394431954300446451791091002039638659041950534327478918256949396965367879166432871523245765526310879640734557677283510547955064575888204409916635348883676656855654890391551052439794901107330206771956493948008494690612796851360750421621988546705541382630702162242081411827652306679164057230074273155800283762593032507925174856859003053530990371912629747571836304691329706975768887622589030228941069596952693760901319119686744787449034057458157415564016951085913630002721103170781561989708758062164355842688350685254262850357798669834716986139641375296930947675034498405965167162167216424019227056470207492825935140807817999616621384421067446459114515330239399062543162339033520049691249967370716663978676317727507410637302802085190922710131523188989528488423625722616230486960436304065854760070555942429118154951025298809158419052395828684974889071407454867610794976799018638495851770575616043154715885757606706050889163739524471623684692701628628208638365098716513912369203681086259956892182332265127195753566162918153021177774869499478206383326523996531328562534516544549129845509273941918332119252248190445601164124398239073823625100330715663909177907857362936434470287247301887593907577208166254887539741459268054661373661969591656256284953389718745461566034742502924029220681926163373973531483735858046528817207631664415192767412108998577897634220478394991889038107772137162225471365252593374044696278231866717919785789710998273611619771857011349663652374942426098700725286727143331447553366868003942695255069915773427518176032947951054279256640652134233792025392562168364533546992549653322203948221639357200028202372614968528215228957533344920937727667765346244497061532413440863234337818606991396534995098909770716404490737145458886080907129755831989632704420311024667553617260735329225749227289453542310809079872862216911503814253662381587922151276621081885511007159823704939066914279952439751345363954415596771468530379118641020029377319318320052769810962183196281714644474676798466683774330188921567075202905237758797865191228504991056081963158568129633954934954211442330584636930860815960290993142086867625670527075512532486684242102194440993856081120834256893985879140780530086354928189141086991517504035137191117441761006870351052509906864383246009667598769063584286720649957850479246357921991748470787684462974444838858002283087568675507556110080291389878223333375471199746641308918316068094952700753991774525200759383020143186552302495220704749869760807055856375875213427925305167643609330596104771376007104360567889616082441275378481044632828991382125824508781787125539509205748890286480461503939480469846852660334075991613483506961234789820097963419019733067661185456832495374611898927733056275161785012105989666584935292316586967888792621191050422186632717084745189913323696554812689206266080401503196731042537215785146391062341482585817406607079079301882399343804066344870479421278613076756824946386301212112162399341079249346927691110930835602431810973833130020143319711697431369086488769764275666821403522257806093995514297729134485093257975414859784545945097140519633650081644474511907458190414396083210538597949644815874705647081644780852165844971382458470837179539802575761363563096447699285255415722642303120257001781459349629048978080400564794624249569868700825875408471547497234917637285362432466223895888120963445638695869839444411002819339669190622481260043567381071117527137161502128858971651214170750905718089473751838101668089687159888614557390942902841806168503845387412089207376626850350917705971425333554393233852679324238179871378821070572584562451980443889637934463362791966019239841118401333153895985523599875723549142942675610311669057567776097829405560195058936078433565909510709259711096111471410150504400267628706172085849278977005778094001355991368542896478994500462009847982749992987982345349069416983517209628647347801965637472711368869959672057428225315091218551824312620262626732650496279587167660313279929197465066304653738522730835494537400886080212402022720666362784010259302025062715892967302989817145481853906986576463841712135107948889002295966634056119335349799186180062110100485441072656359263688327835130061993315691653272684489491193893289006785877637757416627169323293142336233413589038318563175727516864230480934242558031101453459738593520079377616265549277326708633548147486281345380426890934309250387879215146092749637956339434541023737470138066513750021101706021915201030598861740912719119859446065209680553859227410927701999891475881876967994719356196945133744332361093697789135024870983803933568067649564379364743559616586930452525083673680834523326173984312773860253174657499275667916389024542948107426662708480520139542018346829143337934063516295335686355461213106771627548255233692163194437581431945312607158745370794840291864579337721055709515124363342265616949557574253408382487274987117653326098542538168785408948525871358334581534137581929775888387178100413323826820751564165891569017079165263239886715837372704175974584288448032325753582407671193660461452551895313964011262019766525705730914041664490288393527496163896913978994824560371460651307300145004794562630086383330563205893180046168505341543991017311981172379415700679066210278448092220033058478741795872645861329149959005051834963974970698965849274291635316612527271481739884182337056657472841595180847588653453709148527491846040481571087931067410695854439873805758951307976566278661146380275402334362431095224205602370368885270381150586517736948012023584296453376664312707472089980412204882253672614178971216513477202276068321668637454299850943621358586944397016923125632703248201304357438168793324401611169458014023132790373922748785070688222881420274547469754144095057512544081710632428045494564922670328087582121664390796610367075196130697118033392819951114520626358663385453317540888256998733621178202523753632782845855182427064921098376862115380322825540441435174197469458611336889815474909931133346230311014841944833279317968834034433731359164172537049501608486205686346666671273934117172612557916450091340696596464517015159273858524953545014931536599483238682957523423968611800525187902513631060729463099242422855058103855546435867897248787556442557681097348367025886174662364852524709994831204374651223429816833645047956187683507293818255721165358453850991710059276443217276852295172860969263163537651757328774615794273374380496042285282788941019473740318469725802501069154773531761582534245890348986433037282326486688070507002018724521969667179489592386666762459123106659668909110876971564396039339252018871048033299813931177663547947363023600206650220090367767300567955493086790499171868447047052562669276690607234836207016417895754186656456736706881885561779815912432041844599146795202108132074435467709303522124972081164283759289115642398110672273496869419352837238182304632916341846332391805308320157525952318253415450139214900110070156674302559215013642967056725622841794054163324848826990425593188075316439342442740823798339254693679887860214704831781153886607998440967267673095806544520350966115604944422599090133746429886846079586734076761164313638177543236530844837375404514070865337889407440688512210262491090049047751503525480119757671744079298449418141371904740497149499932093666407122098699215959904198468238681083683988425056571364859694351891457477636690124772885935703638071885199114509884544040028059578484845431543850920731460573411726397423604809325163441206164029416568173141753238158802851446644814827027016253452869152555565434918824663493828362103195559064790097072377313385559431764829876673004668266183924203343106048913331955656093412146304470749444886026929829310286004919938388163446983495874405809750453661923915247074154671827246823436678133643078526210268731401312251217144431772390869930520829123225659439220304983683973336015579444568827229114369154253338158625199759502540819095071318111402025024776830651050340589353126232595170739933480450278562586615017137046593781851481911325243434348022406978701371545491997491380371657960638080298395678621408158691764462843034673865284756330809458790630323446895917376425167761940163418326795086108631073860944800184411789454925488617587354069840271295111231190108233446019966786528113492127384125609465517989958035144541163826560191571643798305276195646677197822635966763859013319207974202750488248310475897049263819768293175996095957568001497673503209596683808555651509376867936190519358701738115805598432309916496458615542839421805209993332335357536595523678104409903145819368052252359762198023308324080553641256242840312941478506388308510888148933759388612413757715416336339976480984479203227271552762427489769988536525349295558478634496638071503443196002725585578585001523440041029053077202635646407313644441461499982878756053029888051951822948053757486428567581751604522427838324160392460842513768946246630944739473419802475798146389850227251507525129447348561840068256795715758544512313479790781587712331382589390994010716232533157092833255154065659421456789400277181243737778187855277328247271792229503297569674536364779920807883322956721483149329873737980911144345891827975125195278869119436679327394539449213416299445352754837856040887989688583080669843360494828128200127672294350501722555170349291698543666869859261181646498853239735854987714494274682412613283328922890854847126026513480249263167075019153693259916242920551854184386411301060658557731110676819913336218159412721653578052931353930560433168628417023543705578417603879266451286117180602977529149691253276142661314916812318527934407786348726666761012720436831444027635314102705744685736981007625783302174573836561301392435667444163028020601621958301192086294284361420161068206803668653170950085247811123900294922008715015115759912567391410574121867178323478405007006241792067136682719027905521760165168769495231130710400690892252732758873162768667874329516691445136106865973816100643358163445908230185528714798846659538537342495140684653553308071424818004980236218725419664169286155554449338175723100745111302582896514207862155211477012183493798054562433719931056635002485666428276188266909278397363508894395416608064565283590148607402844475551562911416117478080912901431908024706438944217614002919572965112934530460318844862442283816615794291571074060646832496945038823343113734670558291177450564281130656814801513214912615080303059951674805779538646353238746542903268143199974772408075802651069991664105372934762566975517772290870714460187683628463372866055369036437203583586278511356973945296145364703879592048230665652407257944099573459865101717801169238397752040432566477422570749297646318322781623249285689824243638203741473179941517027166573770772532786992912642242168393367933044861061533277019555004887199072568871093427749725274839881395742783934256690323329273957866402018524214162178609835384958468867746512112434841023240855353068152520039655449935754185588766225238365368455573402193921669187449691199359932862822468565511514761927379511739452746667075396670725083855031550198921973181195568230921537855058957987941471349023939780078505282962785928299363296462653894806721321439064932665763634235422398168543100047034322003407026071059533522672612754168398114513062172126121161014676290343830770783446526216320814652911060020533375557894590783894439454733842353406974293636817153836126447089570244749590814371517181629581205292970481427480508136995303136170670541599100760387328274229436391239318189580444857012742717506807125485560811622817454292520069494713271010208107668462380912045969210615080282533976291329286981646836388803785505087237748070300824281591544894194270032451529938428479952472763892505484899972553707256327319042422620594570600627819041576097796453935394485475608267458087278311323943918122285565815229470252303299731701049025364431252318610016616121194703557760398028391721271032420312786244863981031528346473576007996368466254287080098325189939419443422947492610058914423243750583904087848237700603032583102251667159674120986394642916421861881773698006896621035884147230228884582383343371192871414684328721941300628819817633623264092440225905805847503619041116124075059930570806459714304414157144984167220467486968708136719279345114017432035133839921540199779954461270287973151766540063128054834862653171878700518666258412255112164780019591833710203437685216212943144149292033500123656282403548569850437251335602006425555322627830338552071160288872069967688791072828919576743499033329547706449644666724390682862040412590467799432803476014812838870409819763405236540763106993172838602394211513768591580703902372097121861138896300370066131824621011917387447815970106519837321947328994289848489797522765859082578678460630590255257188629138329496217238626308678032319396185441301050335207040443909506903932454521232242634612376787682074375778528739304048915061808154598279304460144477136378012150337823681207049711837102856768700337661555922970228307766746529651114224731128544089602359881323550458542118178432298938467645585875049236666610734917819513324304562389752285085496351256878022556456895852639371671284821490493839709954837192685666916074784902313428517152371596613855527924504470829609062925414483309826467137270301111788718150419426036216101999314725455382850098544193725867787868490631824572467045991502832194085864540923047369962005607859557775486257369952703824218188349135353390230970158207104097796782328096519612510294007930862981252470958411977119282467529023656951470542449382064662665955168601941078156450865956271975446748305444911594633395189657925677458233422753977965185008793445272380467149591910134130571146560913042865925934048729131553391364464622995459541618630722994366787103700435063658021952922027573882477159214679298896253726593828331418331503235117844019821365635792666441132885909168083704548314300667958972451685257614238072592143953232322076566015629335860159879209786063816663379366196979615345341680455211253652613277322050417676934016237388511098453906622100381115461182355657065544605539931700487559974696531754248669401071815117434571646859125317198989195224074615743143322469018110080230163753049827688351481454429342588943819272425005293121561292968994650021536596247141762187454687215195049316996867596872588780033318131064680814420321002274882020316600686048919492419387853932327468675940063172090350747564627094569342459382889930362071362461916429955086275978902723012890948247897563125713952483286350037560576063840215741737848421165918131404420362500075753154682932918727493612213623867282439299256894731522235922871321302470448486467710505683781395777254947552167246679756682555489961008399342247923615123488532511066169454066595811128988761091559499569422877432508293738552401665055335205303803313664384404625210690302144681829200960247572076414444807924043833632375645177545286916261450076935873124205795061597117347768972182526700914177651130216191119463878994309708417463065524851823889349967944448772260451613414083747750732747643687814093235439849081239510642706651573358614712085838801064134537964010671681840987287782215846074942659485796519608205943616196886340556196774830483045691401018976245229322459595848735081587496967295337115516132027772171528726379874156975571851829514536412244097577292323577061936886352330234052963501675449889871222452722656742075751513592065871142865955100780815059370969077156535324059918021590188634695205194328394996948752306422029959680323232689038884902768123790107152644420339131233310802921733541297882731139813032070492376535111948528256873324468549819265665951488340588326228017464176755133850154974749781511740378727156653224263591183470570030998027986972343288680688201290224129468950896483878308754259504591364230593023535830776489041828480106779296640411844691271937485360781070060729077615171057912355023122791262210022646684789308181475440550327427134081021187387565968696291423949973210443116464617606725152978015219169329888245179835031417613050547918356594315127501958918040413631249568378927398840754062771771977230568626779928642729418783048956083482616542524946112839751675534944033351102788256347429465501550010829629659384684775739550224706540518865416263111223808736429012765873642265981092356488488389730399836290696627088787485887615543923467216925507854901100019746054101188670878182969706873946836188757641949204553602300427427505147923475381717478961979375297666557681054071848558930793467363539209274334750923683429719778946146277620365207266685807419147945689585984638987243655454704680473718312757040059506480880508555270074926228464603431215092786335367916749010338608192720023920754478211420481368006475357572781652205939883646560054943896920203397062282459144465913234348037660984757363603272835174476964788140043657368008260462195727715799763569642019415425040904699953106164229416763169508289207337179830705002105436398461554651318381730963696375083090689654612983957720792918493032564605050370143793256480268502446686919657966456888940124022595575309892980757562137022468889273366312446918278158150616870213380629013867169178144505078089893045770317937516778427879526257305874046057728579653858894110219251470122540457789127795431440331260920726177521857549097171568035527341743941057499634633303855042052788129930297752688739800454503327325377352685340096448226452677148180277945543844380879118201011196726627804510942198149416988863492839254445599818791233154664944442445179627454216543956284291512798907759557001906713605351475263843513429470046515335357133431870443248892361727245139643903584758011250804567809772927415667398194988187867059533206661658376465724590093144142152428364242507430905496074912741247841875930001975597857051170486793583098867791979694826540884757682451796912424794925219984135157319856062125876811419176370367283037019864297621415614112782957014655772794859388157896441239431197885854308380503770578204575476774019782945940686286117462931743036535411445743361091387952955174040920551117754753678454919701089136270066886816850482203644121226194756057564802556411521030471255698172323388507209701219791457582134502702777580513331015631111236028347912562993485182632818982890072416957681944788060292295689789945182211751195115233564532306968667563954999325510666198667847006154404309426416390531033988072825601753591163621609203832899096658259433122092639950142569024351439706510245529077425097699018512132271032856624439765480417176116772069873798397677377359343558641216194973884315694632105126205343963813058711847263987603418110120149297475995196066737502749354083704680788362067301560345984328657421802773256805775827739683294962084437053361952826775039210411087021395505878981902601691282662753725565195193969301301274134770953260093494651559911764874061247059337631242919441369596746379745127071576181503903504761638946903785983233098414236791124536886871506704123649777902937185343313074125247939201778641951243392144506857782160455302474414447218710426158957821469547495748650743548658132348562262283490675688519017423845660272575680764790989643884111774859682400187487714212766259630796892617553887808405533800481089382175321343377799331012964287558164448749547482729879591747528132715103910396175908499720576525535990633352002507795464070141524783618913118443216326097598159108154987431434197895129600876208653617916159328407991061184030154679956071472491056051669369063528372980293388375501860761555394229880853156724538868579662436955602600382949718745773193354670919472511825042733290584117188972755167817052115911503836935202891840034932328948230308166028303335469953206463895724910466031742399425982020208283440086689958983253263817678557079785558631296924353975838266514653426092654650906285758653769485218441163964165556351896907429859577482503957710827174338080122648139869816616922942966144480271032479310204801634986419853115497371181656377385178761266218949011899789376504558165677337159543010996855338350525094442361928701254898089733278128979547318769971452963175149543627034279803588032859358129275834603349229004488673371248940197445103518585528334330254365006134934534619506654475340630191568710569813849326998211804774461695587850766771645338360765023347916722624135026447053431318822249923846962660706976550532408452088645391687650845414661263141281948776763386333282563492023196486465421278394345616073277986989021818939773261978836158319616637629305783665276245373095450644636662659924594987058198172085964639532251042597730727039950568462469683194710495951911092738481372668719461387383573496633867187818573567418745197008011895892986646460642242263437257201758102419724298862748344235223676421440918969589256704563958335559968628431181018783554123601065957282692817543496908689235872365092916553609954506669530229026706922436630128107705602222285897044234930032080047511545568970663898097599480607341950245339565579058466700736242283031931720875757301226317311591525470589412924159862043290386634274935132907536587011158770378130137270167841220874377929472068921220520893496786016908067782977136087019944846950082202534388064842199799719523780935744991302081578450681317528863936396723052357968148958139508233005414568456007376771544147314472222982099275808542097194513822491108533222272507470719447233395588081427667010044353719045677728923766578902783786761891675294035969084325520573354034494373513958113044834347873536176871188209105059579985200635404587426934862638849503887321140619705532612901105886672062142999171391063421023947671869075915763595795077834509106920883707143872603649382730916369698150247584310991073933359108190492436449825098613750763264054252803562927723690556067472431216168342086027774527464236298719534339309766924068890830668367312700413060426807865697009420267142411321898912622218512908499697291852761440530896525152193164476869341448893401877221738980663669280100243787964070736759258290112142586162056990647852688645302568540677728050003816026233227566517449295905944600470647482414297419481208432991887307670542861903322668921224999380480343815416887945912096892449642160717177629101142643866249380850835664641861202378379106979993510402146920937309556346608361984153081917201412819638703217594774935894612784278537917643971818196758370071564312681333330068525512785383263822526374911288771486884875604207972843595602196805572376114418888861802773250585260020165318818562671236159827107508993340847572086602701651727298112566468852744196199745173589781864576138448508564678970375561819101804327758339208796173753595157268007322673699414355389058753008589112665024113428798544628816956915261822721449394407124039915216438743201920061412369921295293771558777447105255042428645303476086229971287766301461868161173537284402484158642015951645482096811665605092562117459562615910404032549936056299361015501171141686840229601870319166373705667198967847590213772316305756437959482278610955479270185043226427327613465498918354646323028992180446146485826956837637563743897925645159880555516182527627656086946510148203493483279018766742800520786787937040710634179000782910759026180173000908766607605907379284207732537890804551511894805458430991610728119082399589393244905511529869726129559278570423121085456257026487116587414577620737986924718385044894375783565299354712919420520758266067044488917740235563340885637418748394342025653834911434440410294950300533276492720907160216980980629620737488142389837753742640925343874966001444372415890362762847460431080241156573556992830410163826004984756110057822857239426467591938794824521462735230836659807144724361639146296404815985395587733248715404095725207058567237462104881889903618239862600472714187448169026944309153486440601380357895491105725676160195308891557981542874918521174988746954048671583621928010088762680414660048565050461450002126768509901387728827627777479204772385462788773863007618394901162559058155709915687291400059614540024486282391182056076842045103801341544535846346370345127915594837407614613072795916702031660146577585280701021437920176694141904290982300721870298341086497016382338293675442241051340019009922299860558909909224597171557570763904945054193244833749467556845611321474029434023145146952560885545769952045024434021233923663358383699761817167305989122548824694771061691569878576234095552472072045500596638624719264973406205518724071308288280435766294060907177392179681305296064359549481044654597974085968891453423266580676113144357545811254757561852365784040295448047074195444256302055445739123231533927466760174701748371319414497495825186062171667235894041494286459842103769265676041997579827070985631967903709951093900804642943730065764348421271090395790672328101484155069355554151590435164260400368674771668699015521738650690069000735822724881381838746804992827951690761382318974168999601024424871915398624960272664409591324958483105910999662518318695133906594081023365252421758428718098716006802205717492953729577667231617652724878550665454667846243349992635837528957723103970516826165228136170125190428105094126471044010023330438972956965835764092427431045648256328610360034027301803858288626030230109788174644733160214111655455465204965572106225093096922727778804901494696912438366166821440862531477053663949154658315999475506817912387817288763974326105819730845903887286062319401244806321397412002896689591643791758873867488258185677431303515476309518680943790708439763314579276575330312219327367889078309055486905735932420149070643418956129292141114026642385801612688555631390581872871320651263667424550451241045161515290309314809110276560701324341445535235749697150827884082329839838611512756622212201100744211010784033678239435355237399219799582451067283806313302518430898690862853539110729815097092405006766950984557344443084939986186074279831302209971723542876065793447990925151540676496489799491517444502785224058311661525945131840513741556803215713985720052154574549671747376433277033813374660650385458653130173166935700649732926214602891989927731268605131993640722775977900476359260602421362221470659854683330985115350305459499092247068658727002885947757812608358865518572853366353868584211277267389181177078588703354212469612905576243477513110437918616919167459219077350088069231480321376867710582213650792277254095726124711154228681980338688824651476894048726921938874672241828197484540983294143108332442650831981071789666567695378134305728574057253509940782131865578737948585538717926010466158903650372234931916288457385008968933605246580593080145278273047708783871038184197018458493944361453564775771721902735634881979783891730710251617331074827078667129361767302725096774889857222993643218690457105872434579803566577187768378527960269608699613591457476365068975913065585440743305015056461025538412701757827913209772867070804950045561913165361687749680202641676826197115011072349957342882791381763202347229378460585961786377025058637735806443276549274637659976207087565320058925622533226770149843232275567627052897155025884298205120046610855887629579055815044922304888264236157718251320678461022492594220056261096758215082622677286193595835236247728189672778385713611817070323153573251322020967548647414853193458108532893558582837314451896625629399802181311765292381713854876526069038607389532844823129060235990035832917459047199889186499117508970916515701575857562371146883350346481478748043144808863347502674336126956624424860844019789964991531928067542851019083762956470750643786192509241488347706599670480860914647812702091567644243274998833894243008083053894850194123105276415471048813663161651497910279380822668786544261120386244707337318387308532859949488413468514505946448084909448199344256369365128553697600541063977053521457287361479833374977663577734003440157537980807266270156763569598012747236734815921132147648082828743405793224697031235075129474973761716151178090615551617825705959869822034635836586301484651795174493697866571151729597598409252935410446133755328873637992510232205824163599032019596921606907215823455437689509248110858830786599247433249120764664924242573764217502585406543254913612967397401845438415529523321866124927674831000649833330069050887704607366112620202973810463395947954719456192437082070662804578000862188625440852002619490390625730587139096001196651854594196309680990281232713035404775415015135906056737401847715479277147715296062535153175724491947870617169160388855676840521638750785437474160433827153539139851755286855249470123683298577867604394619640307265653989679984030286849954469422773501386587344295788017968556295528383871499408932563204046510904982165832716555250654900868536142919385900167633978652774249400079621624203274569734361401450542592547803909429533419359306349009294912411322910991060312225323964501321073996668608395939194376907958118265715470054631975435529056708449917257119800386678415208229866964183108729399013382938250012708282478726815290763321975632821029965332582817943033080809033386752419436948177159985597605529918946965261328467794067008087566024766613406119899908816282825698385442754687307641771444562029128294233929826113756633592945408731116942155006037229787818399615334864158494154921789475678857110687286594522151428475970956165088734407506418676841175570119898452204745527672906221772815861877867954856414640254274088514394273541021941889619911345500014071061164877902003360108017330420815491543823925911457808777112819200096866719249955757410555925667346468783123627388407325423364264083673819763140639279859668695986283599218917710082668704929141985954556365935379554548461018766533373413506155122679269753017155762695262905964710681134828428577649256872223084354402228624179235998825753187232210788810603745211086405851308941862946663250434021686532990989958577581842624547025748903541223555902861531607276606179620450866589055948883315952085960067589654776343567010971035538421514568652633189063747308865095921649881113909362500351761113099993885315513958949586621864964312733591393103294203732307626866658656516592068390368825420705006427712878728593646106694852064976950042725492557981472442242959754662450793715329158007936555417896875319558874984129784951401767611806703487689849271083341941645377856715650987427591928277915083798900286397640190777451079603249629194162669336290830108391721121669999998192735878468298146006079139454349502714434352276066808442012978202373348151638701232395704608676489933651447298413652546202056668517598722665238400585719243134436951214787328482701055638654724176425681939331662249271746501942141338648728055409289564611427441170586650448881067690232516142469238765318087402295669184595338887110356708512269407769175750972162292089455643271123235347815699969480643439603095772404627462340970511557331417416226646304705203960957671520317031767300973784017875129283053292856880299796663594621334200865925386657784773348343924123759839090910327847800544730978681984750011106513295795592380302750491601934649152124138154565202007868472552939966961804163025471696978599666155070084255253221529056174224100423939121489143757163230241496959665786476149192688943778327626958515682611792376570775042245509717356170960407568796867340722336638859326387512060223795651287306421202863791699836334319066889308732973485794903033683724188072751094087364342050441207186271860131594745306244091530879272780381242274802887347630943019064169973991173017429339738628720687661685691086456997125210191127084854128575711639987421590442655243236308504443001122422328161718590762633056949868829522134802613324059958763262143161230721197265972171909955297691820326794296179391311046677847261753687169406209605735090685605293964341787147727703191038263622812374897374357079837515501979206622103361318781531093534419566810373377043721914007749348771514464763734993369309747527724393089123547597475221186884869157080011004959518826710912003055424857916778962689951644054604017320469087903335957063123897886767703275504446719884299986803463033965383821648109352089688399144213347087448468407754485513120207032672450465902286598862465355005381042865268171028093240245766583600091048735683853652022891704521151621234035635471569941698288163513402618334336879889999302604500978273732583785513771692367168802461059886632386139034372323795545826005636628760790840102053807286060565811742134148463069940680738751666627212304396227089367115110366847312042852240329706153596857547840471592819842074356570831382591593581955849469216293060707635878871937261706823120900302582916078234665261794112396809856564454629147870710761950906894106670556469959089797021717391043361915808780662462407616313181158127691522023335261621531418150757730075619481762857406040898490530205656383651624854495215773668240241520070204616218574998017546574283820622074329688668180348418966003443041178597098061537012624731988555828996936611219389372608337579004882222160672692066024414619228739965959114799203210003179041999617232683757431457752721313814440485369769364216511184133466147662695442202834535225023436632735641085168804054642168128870217988020066382648137142765861682066150263192261558000103622752088775969633308550941992855355159494896577046544831841510392044889048169056889954006232908392530208757781065587247749269200144060833500104160832818469122401505329200034206619503571251005496932240971899914234535183359732970432389267517985420291053637018434363030378968915809288598111137183394153665085652533928428080053490789818760877557836157603268472994744136024379778265907626353099425010922387033421810154708778327754677571212030601745645585317237351571032812568161177003993052901247725317532709969185572564531424711365606822421435919908740632140537789082840754075340328818825392228522126287656574276427714755960259691489861625651689207171977705935635307909393541705123130142632219700421018938217356824956261685071189819366779287677340900181692704927949213493295954473456908381773885717533915451828667564540948322618628578747593512285856576070294105181517714329570140647606865911491052880986917241836708460446459444381928695417893579287143293576067941063618173864358927574965995816770355223135349606255769496918514656053388817500860538581675963661696326397819868102565880218428384224538682938833254728035377374407125705478727799563799560901152658242578044458977188779550945394685840777882272681285274788692743298664609322816830235091188284575218295809630926704001586016008315586404504847425499724009740031445583701840800774707328219191030584765929808534110395687916508317275459970786607462953280876590778460701091805004958843680762064302342859608284173864235623531351541565315851997584258430752006108823870511518155345989322853765950819170875577587388654378018657165326120352894914871552854280620687909677050345874654446077157998632608120139991928769328874052676192935453717701633156454018313441840353038058256956838993204772124872718162687926385348279739044277792133946321803967420868995801832138701071938320732184096086441570678464030115987194879111996978141514141388517404004628581952103471522628505980282800639187663393629593565274004281409277877266081593003289096896366472266293202547854937711102647002628310452731819452430501102119835207281762710900080655432612810145685027207041488507186482583681912571626912512058110181786959789901541292021656440721124781519666489923064367206023371564197976125851900576553447685447951786214192126407017161639898363580874412202326295074676967024764848690417265853606264580282829097036173479577490499807354686272970517456081749313007371620188991957753208526709630690934121929423829052930320956733312610946286620592407811733379702743401681125986949984706322356680880951842517299700153884725234912220602049712603382573759207822012864391535085184335864608720439786631998465507317279976350500286572707890533904051417316983223332467591841578976255532748210809230580632967333808574396384394679595656353839192439710347547606282281946494415797177371140059358034224953574056062571514878524805504089922097023402980440861568613098266264276100338059104941660560481920661728560628204062219371684361107929539559726311826320174071570165890135632780983803687499089276503039527523748032972543701020147921327536853229983202431762360739362124529728641225468910396465019348071430433083243695367922260259486459013333089394941762609310161544462665112456712685829280677666729046108614538550214288948746664971309343548356509419976486550868638382558229588610319879121833860970445468446231276832277868468900422917008989882138880205915322394563321658952336183734175068512589072553924383832220151640403578287899755168335925418618646744841168678033039363179270020367383396200883195999222379389390315045046690965221021060917043696754145977988622172834318159356904995258345773349832925573573734798950080322322269540090828725989567513975751862004235910231870717296354969132760654305540332290097086971770864184566496637122978603935478516285342861346610651680172604918573983853428365898880372103913018879247455726618273495290193071157923497020561974431059217544346253699130672122362448867747330620011380583870294492640341285813504698865396643351120353884540188541845638803233633958970772707527223620840254240377302697496660326274427800885400456036387104780578143418030641115798459438225460562337796886386888516537413996412664759323631738060536016229692314210676228749016957045152058194720460730453785035934033835695150026973422521126833589106522930606402941377091469828268685461244612087251377001153992535875446196242068372999387316592156278677035309494404945785734945700283554273751911706949735017313894395997945567812815787790510053436471461170842442586683286234716699408039641839535928733059045474758169604715069674951020355576622436987933010763738384878554962713488372465824454808011080254078356130064055888379772855726319761698331686648627641264562941316404451903045114029204497463064745218593483580078676097266733225091910481935413568045797865977967309330318785146045678210584221927693726137239414347283048754267002164845657536300944563920731455438334840279256883997052165817804431141073651481029056993632648102908678693348324440821603571857925577784956931881104650155265866714006487130152998753197696675268824286125439621703679010259316904572461870786608522465515877368863558319510861378654467582673486143239747272810146904150140694457995445384981808321041705942518779478080599639221379116852488609491041761569254766560087534926517051952166687675728730348962226965550598177704954948840944983906476307913042477501734798874330694650520103367504205791601881116836891786064370128287930023519954893035042998003088480295078427872741926942771831762820939137327616117567516961175878291283753466780207800393227168095067942677726079263362925852459787481028009026529132566723646046855682376656290412963757609756370221454836957131101808180664525421072435475899046295172769336929603369433154263858798778344799614211587571102226303174528044883761643321254338179138613550667817029128318483461610167089039864113118734859459468294064626252539435296883027465263905396758086477897664680831339608740614375967767203564913731914959333551191330090320902829598848815307651535296716886235326973054798907519835020768080464790885658228978633880690436246665319080739755826808389719570420586188118572797948105638128636104179248077822779092150436201914512676749204892508176711425055372984639582988719644655816565490533197504601611292522668981670239935626384777982131887786222088381867830555258362555092824954816611818458872521036819980346671374108100934023363077722929700104331705854834078073173026993862284895561132977592137278114185665182633384314909569862982416850218988680053797388927167938474286972933368202052735132130067313842685209119505078331212583205753786710124199119720770144374838975065625887721263521449954609358672169250275728749269192599400119754871763215218317245082405916215689046027538822566829770737210212480762978107521483956114321821634007568165599099200694931552024941676742677203834838123257218022562302292663732396063730666839401904262380561203949612156449847246455027549050719191242212447337473094856039213343624823624939200276457579847007444187920496771956053434664765163528520093672576784073933245895056656277767986413574364240566943082097692154499833551155898529668704188628956435344299945119184504132337699087623666082390464597227527277393611807701240060949701290550552191620419598517002803646195723054310354518719365038037382149262553720660461925965876068880800820129614434947114405498547588993972820570134866068834607398869052985655393801056631234007830056917417388074056051319216648945021990832277803324313236464166817899673739650235985520959892968830663473791141576691894838243986192542034353134753916550057982868199520779411936325464676928360248880705063871087280168786047424971581382900858615338843848346502276531138947656796252111352451779008074922420287605583238632934791988291305227405689476220042383203093475600752367441262239782572311044418717534587843733134535131471847303668675254187451059865769443120447766502150598019024779258176505966490809826584862701191525453571729196228645598680842304725438609408169889703647392023947592777985216390484211418006595837935140016678643657339719437382843332507926714138647987490264942683491191202334408759318409799401801701297178304099345080465519372716087707029502528994619719749570649110307460035586980819671548278083963645579514146087542026474016762177484417032356325231114712579415413960519080444304192810516097400303968418934985288466990112103000950018917800834063405985544519575051814054800960622680572819600775279510193768016416289192003600353299519302742857907474036653866978828557762387064915896075335358995896394703295512885992197475312791706448566106921013547461485868963144212852306769520600379944014303955163208540691183493291201996326630637622241513046951787120737215064936530875992382683028492233901883476983749734250908342310328966195300898716786133286413057568055391653909791131670084947781417757630502364817157592018752279844917632325231311750378460058229876509919035359820360875302860466593941295710033192451184969444057372391525386731736198752317228180937857684037730517802115702629266442926985728891074825561256769895458120335994678499164270316971760076098716378939739889339669445740231467937594168732990797802084628675955141536542644442841605499935777388075993540008978420682204060051156739901767982266108613852407106353557030295320572109461277266477596762410983693599873385229720523682196366457711606830245044965836954380646825947768218570486892386346318415925347403678652831180160997456168438403906468669470000939445215738066260430124497364157180812351260018900342997329936291974714179456899534516896929894812683015568928452750736718166755163709262622770376842506313680234894742273155199860830764279278627346142415959135529755933073695289006649757260217800223447365816381501189684970106609035177997137909727672383459845800611035882847072756195680714609304628354802315094029547339047033237194910469609573917261578331044448958788042969983202788975902005319954845864447287097377285229301564642402291919629788776800839660161270351050869625886230253965851495088809758254955221163476496378957591848520318727891474496829003905035919440727028179076597698880821366228665035773671724936230233694163486788078202512300972617473875461876431589335690804793478227488394151130993394899182687415509287146729612895484545166165164382484286385150090409239227616642275291614309301343335289069483213872643765057221840921634814473742462473374688132720566986301735840039317311296394038322267949533026305370764935565664359843657808543892725818123605879614836298279643898409875194645641411062880950562096191435379148801289177423281187318878259105270314316730437850340508792807590345985655252176331730742797878012919997692441985283250723501337071625926196387984918110704537302989805195619919607967861015178465181659228374209994637681078364608777036705702127190120992358917981501243008164032154338734904732730178566525200544204416281902863253281909798541597095051815739637504016920845790987357734196930395713877081606000879075446442028776834448455483734472826327096159227496845987005450643752391278650683015616300654243575827123006739317774622095082548481808672241833521810662945715039177849930566404912162940200837862280565600093035780302331906465299357634022043817638822897330812222382717138613160919284242387413459523648512967224734904472731919612438150035743533715107030120421647089994977380394374585256079758494182786574999510673975192604815712249596312155530768853895456577923909904681996893855740040779198823692406717794318033406443639940355692159256184134189530059483189617980953153619679793220317934539049495636563573022704045048038261859840213088926614426385591031828308515049883104410258550737266681076907118814031828475432933281822236934363164758953837885925339109881270041486748567496484436762438432038035522989057340684431561730487837290796133865422753326136341874552530158675148680978677313685593097101611325835382943449559038947628935929449645624003307160173719349365252732231494181411302084166077221639256044728082798724387346457353109407090683212950291595659182605505404280713776398007095013645652861174355256671705246449925301499748927340430814501761326301928787753395692928350277456342949630844020692169984775053581960725892025965703887459359056497102820136052078965885048674222605301912812520035568843871231482543588237736242112528821202844877116229380656802709044172432179527828675904260597771442088366873277912143630618021343902988012272613944615753296435115886330762073890810145470195043267397043673306039761642373054426117072754786055544959248273576138639486394620110228218392059846986890606626759428293035828187558554966669971223444169736488409894632830784093507929176430742061885660912427144591241321927319714435970346292584058601757139794065267915706757665745190651601765986552779709964251921214442981396217243249263641041213744924053999972849865602053966517832087682524457684787345752412729856642917727152008616578798174974159740226045055791666233875427803580891820268215385951967734162602393235997466835175992082080887029258912963706070714026640088858684192752184466454550409333929052635081305639723885709326132105771875443044614680750129926225491296894578589480076369134577895430747863710887089050800070720934780458929763647782795635047895446853044756840087322973680984856742755885673830035821151092654710504030106248086626245211047325386680098072021024813334428356844509520880549059615135024861551364910147169010421750536455731630279181880187286211815934851833856047057468248491275228204128643341984157196974399566032859265911901815378562404904255683246076451005027879993281917742950250641837830100737448477167519606529608305021303268733072468517728761327846706545185432589845360562121951920651741259120450037852733025116738233679142073832416185156050737919048656169022860136766942580735700410062300527796333189071766411907892082309610210296257829085951626025361998154548570226775205755960117530061264114746037654086192984838080506371638553296351198631132520152945897564470571496770402560486927800713177903522639437098120694001797087434946666290215747943439638969173573153210207568565483627706741686191892710051061621804205946305733736948362974773601098261820440642526655926678241616126472882149464704728813700535214838513053641009331910409004266530242475342782689017963225756948754898307656735608967724116378858776030670791920157986197467655803806134666768563160895783144782733071060375641056431962766796492274782941272369556872011693789455223791531050179755631748257608170802695476822802302781340504466143420961786080004942754040409508415658044985171151098523828742692428317451117892189354867311618405893072528904438522638753109985781071510442214279827643023325279121904902823407257066538488328894796372532438699601019834326750273633469200658494646601255470353164917792555032758504081092210742435700174771731908477841538272817233736887629014680350642252288138386604187789354644044424687618841833153832412427401412483568806901400930228229133834047754558689866163672076175215163692307521329305882274808612404523807634071978398375241119422611671460462909198008159130704513673292506603331893526912856224112368069406579294026334832866119740501099868062323481490632532122276981179354897099652155347501435331063881523800612488975253308874009383395052725553033088397166154615401365623059105443515718881938733305203314588743242567978090989967725024124973498409279300917559167868921037843359535436350522526072612667657123461938161117922967652618010482933762359889960439673044328538238031298396679318239059794667318645576410917585947708934342040719432548864287708157011397006279850788889822313162207016829983252951081199647070037351059634243705776063265478922033991796123514499602438382359164356074304559836310644216134752720009236261593543339576059743897830757037617423587831603112535438459242431099010276330744464333091800523044959989890266927391660183887483067097920991841548858275006090067909930802348347572174550688876462255030006510247535966067055059944184087934970122866106879373798007332337291299449585198059579373516246452796716375462151083723471400737788312180824846783207223975986656558247577740427705534480905831988045506015920525279045210499647708287586181380741931216806445901661160642626789787316483692717021684180652202884824779909785324627070107963803061238499283847117427147694030278831689427487798880114128097737988327771513032995652346413756749392516783269025214797655083110189064288505490124850486133366067226656412651913500694090016958562184159651204166684363289869245956593914671613110749659590277033507329162294631076226081133170242929633759890307741323653623152062055736913303597947814315240368738181666461055888122348735524529445294913077482642406662955289630636788523087195637831973179850051648266977053305977061605389321289667638624818383165972267400195689580292335892705925134305307359171089319105233100911004253802196677440324825168108658701337297242733539782310307020998995632807000236963252625945550335373808325862373115343521386301283545069075471358986759140318262109705276997411229752792622557141713413548777117082570560521386660327020914409254342556097988113271633113929552824989318535168743035573338171899272264109045930176416923110828331891416295290680868591811686928891101974375374843394942043034052059246643338123243801178483990646827701019908850927543411673409839835148500634251448157341824202279203306999050440184910064683947558879040142047435590944826826795313698916011573912852797478666532477441443929423705323811619165952104235164424288646924481711639350863435821725075509467451475588987564519986990590568057479539555006573278490326183959491549913169009175647589872787187134141668097374779760393848197232691690225246225292825122417996831136445639357302156232629090101789236217391274681874116445729540665805448652332639329935432309040603758913704747949460024651100037607759260446402771365047358264502539371536930782445883183648915792495238615802109229583327245647046978494458337304032306295957990728756504991081514600811121595457906550915135979987870003110141086592153808425569539948122628705098502239721314427916827059718786761747314312954400094704764919004827303384425313379488682680511643285660799223338379875363091694409754544349498300830341664844296009481703418670662611798314233485889312393049784232048668666458775078337440764978396632650137016644806627792700585306849258854987719446878496741327450099616038985214465469129222926310807970895132317347543395575093456655917170059274932833426400492855867579178228440758932311858748697858632267959216549861415853776433176595199031050133519676399545213334066945438945632786417337017497683021506909756194675544422063414676171850262900506408290901388113345351303607850851809818936441338767561398900534835299664818070737009348448583578056033027817970272883215401646043922479933699989717519525910993026521996159031586523031202173264755936370881091912110453133329212789297305609189667140022032699120444286813878181757416172530248634421149322343142983264137077726058186066579276468340079398201586882229359303518300449631083891882327254797859262832694661723655209041397360367516238271242186713676571078087614589699265227362610077933740896040000773653063174346827957767564053419498344365072348696522331166652578898707156929366387108202820477544834097859110169778656575412443796229199939917229275733185622330541034287131545384972166850505732543837798421447650841702781025715032330451000666282708795730322462931562448064359992983177741408984247716798118431856540251348233733877542176713410707315289448110412345102082861994225848295742645718231903391717888462779889742098056887736670563669448044428784950368661018501067170495880508860737310187473630324670746231759929479567914324631964630153663654719235441096869690421471699698921160523886465382864016227987890188753029467831567752143415794104161068282731938127178809857362847275268558944075501787539980648718254077642507055946640142252697230353303266538519555757794126462341775881197791308845836235183573767688157233168985258733093283543621491595213432623586734485665511063994516450462831219154190936081608575208237696936206684548599064040343902593844282681047299386346324746116293650704907667713621310571386470025762955074844701414607619614037379701383247917543158526245295078526385392656625987914299164755076883194881602985341664383047962959223947894852680194842102739289587581245007496668895976520859691184791664478990484770838408301658161296765030535628446560669738928377701421496499539896792051724449054405366413901541330012936202968101063454434717565935613223093823082996276977591664081913052889864369920126182477063735685013553852060459916182422192188665170336775782593788785860284155908341511016611558975815126799059379633792917614935127050695088238189357977700429467038382162015268013508452809971267533631801166403031846450395720920357289325296593967637134644046793531005605531277475214920678830972417015661523733650353394502614399469924767029235726828763127471054632169542748435178087204403516139628402057676459414508076067822901093410639537291635062642022098589159581426661348748989155431672217531185193870103369786620528472028873052569971087130966543891911596683011078053371964263499797778575220219027935635610448069264083798171173182544635258117558841261555110508470674695685146180905289782434916442155825131117844909733894536325317038121084412214830312304630810881162770225550107000473068729362096975003854710172904964630380507041059791587839026247104262625458052687478009395758305379689583725930517460073060257234316456773187518105173131631186117310403774129186665117849058941696589520421206123958488992356964523862255285951566711467805980959450680789381764483994414076307408113650401454731115256084712352749293476181170030645904607722133678459862516340912920199822080580566308015638439863283791030697377422076809513477338098577547580419819748376732868040458912283665712126336312392530134563056488900213857459348672471337416524734507109265566974847649084936699037733564685460220068642333379872743785723290462532851551251453997214378910018717384436346809467456941097300405752597029799849886074799929420623370646404621652205681344722282534541031766368615673337463048145947756602286253362070169037057663596470410902561586295260534620655373660833978539779256438925300470613273694510349665888894066416059612064061115891728590953476350555240667631089726017851431677065597671793830454087900808851099750541610495110616551341970109799350961815211003549815162287603398599560412299916334180866864658290030784724077623472038505153678207273995271665663116805018462332510395481571890553172377577145244436236155524360337429065053040890280193821766613013994952042319193952256586524482151993601304024467756791044336533140292784548345447919487645066383166905451371367061341897394063550457364004481001335795604902597540300881583608647137121429659450948513473602194517475767533164169779109872723888843288801810080622674130438996088615751359942948381866407506097703419041641845343587917667534167922041012428427628702591225480888547219388684544350854743416706124481996528509019347410776249991053018955788557607929133483284711463873716479011896641304341351656275947966975878963998217164723361423799234063173232852000730506115618801329875057260816729768510092545895235549562714611077226078364033893964226746402612104502955181459252596447319543373640942686689390358123969789133872465234370540717953214963027661023306328260447591687968874478443903711036432103092642039743480731831276932903127216518193016155979232555905181941284718961583650714820737179991129155701957788887580879164917728566343487550477726253044412306446298352042934550764658031344754560089075446701820216225418875870451295904890200781453760889817837547008281506022595265499463185089016043558747998957294849598629578987457653054304130975414765275858057760079387000850705427855912065447893486187408969059754154406504290821190942302104910379037747945690575294452452670682510866587613466486357230695705148575517536635314183228739592862156771398717699772876085112816663078937163016817334826438429758369213230959149720446367399996010825398641389192592654129577420075293026012006770627926423316082871945509298987660376627355494160775173804620834471071284674491416343684939172449268932096807392739736465924173125736089704979949321484369570305626570783262993945285632172462904170284388549292231649159708465212147945577599102705673735938398467182899158453790230662583622650615776098528531271562637758276801395198668951173633373180224057620481597354311424656726570652184414896528128902978732061088780830108503321781559764516082973968540178362389014194051146660176764138688995229003483883623267805399709338246228493579409915054284007484958572513314777042789003170820815388743474754355651842560463915584060896699283779583221991825986231293602150956253057368577279527402730470017296943134054331340675861073394320337785027298834071881331800008338706107120293323083988901655939884654828024409499181668808129062288413929562822636360257980240928931049152894774964406105769686554478395356195945499377211522281900937033559083401015368257803827023820339607462305917611068112477758156829666711258407166767689043274000321234317348908600388104796913973142617190341253633373198271718903409623528099587649525445838857725033327603040352687306589794410761624473758677594404176223396460118972217288345671347544555008688005959405446370580518700037400642984617300346409749430901640020279135526736443057462796267717864503473713736882190980230459205788450316772294388045509034087029382126823929571456392587939855206865793506198196575642625893996366126832605316691490940063139143819400398098771664948339073490894229777694590972836468639239973391528538075942666630193848538995713452066165312285115056380475306015175693040175050102772223251863015247692395078168500817273552768857391883664048839405457100738454387015651271889800092989277656879027958134045997619898555239270945625605505011714667702738125664787732610971840418066359742981086608004581640908533076335633788245080905810128990879175984215012725093386778563530107166999388415583174346295359031649120530488535782649769228595553369812775710642761008817595143904848703147359429324092834674590027150806068909289852102700619232142850676350299966906392059457325318860713662585746002855832558376527682535155563970014737051593566789627764285898046900002761034140698981239990525237039457936334111992868453704143871738407882731218930520346400761138821971766451433838244024689468560477632025957089977996173282555861317537075995955385499138257840241907980462392217251005172183603524128559539118604305319857206661905509412370748077041334460844778333261035224479433465627252590679730605306529018492251756460850156238946529237792209768228507295845741163187519093020345389295657236809804490261705079790276907458856902691801489149169677660417996645751464969960203229389636944309834529311327938150283516579301337883219520147155344750069716092801540482282024808604449251476014790577169207450977256323441045534703207622470712065561942581744941173653083462777445514395822288430393140353159328321174723427055413233630075807642644891724361917502891568954829042079728031616343263510480814870641153181209233316595991775876455519693730140873292551005556055833648986416675496273128093325324523126005501982304300274924631308060087272970416545945024957978723344506800275475202454943281734309597972824415213755666135581584482425577957542111933415894602226432295156956074473319023162195356377579972369597283482504354848823200208893062238628411994474636680575665490255947980366978272296868595355919065987420891703642906483770003748921391499457123867708197616646819624007580698401716426739576474545698741549283878736545470250855649032787535578190731347961966162451560584860161303920796287392395813294235918285215593560409120716553457034388428928003595515109630526563477877013200677442962378335956848317109613602466459729399052962134795955192693999258753420442750845671178798970033091760257164961153852318652861830937631142006182614767835349643384530824958450644020680567516455273602510316522113824531845368031985068582138482379356498470525452494215250623572376515889105264551819422325650422856942934353028027166114288868143937172183801536655857065331089052483179199107162555864965845580973963171027255300225053045388015002980744566866299946176295164661829274933402862097822125760384154184562384310478633027451121791602709683606649543175882402825943387392147528258161248661404116185149330158741769344875388118258717107951645922320969374823505893420499218776742581909486549120211327638436485982353379859041437195550647313679159319658514826997269135368623792574807527080419925420269989691470840271122598834794708083830196598784567495431548430852411077988754089313410692225401497874937342422631248428447318911159525863495946019185265833097845507495409804313501125546261529871104931550913152705225381362773712476403578005052236184607579905064429177950087406425444352343940608272730228064662734491501076366051741634021880653313639021513425801619537799746719484315859199880533610303020924681450105735049719688411051324240875342801966984152531482184275351162662180772197378628673466194244292572192867843431494546291798587652319665379890495238901782950179188012121329947244191275896385221877153557311799875405202834520213277122804748973360683889314292729290986809740073118115454771150686754583483542812728869597833686526726979513917474389118531380799406827719356797037715327914143995200976571484817197585337947192911984130680268140291027393675356354915165783890655442387881078541862565440803743821246434785760956996497305016350020166296831499949114993945110552072951331242640941830499111105283624557246631265803725423165013427966818449620675587021723260748620128968222048761280255269683913417241455234835752789980799804302896059547246003859441744248714771805147089074111544362299254376119348061195481119852203528700896991006401351091344182158957981706100989324974952663240486599883258285306490677558342015838819920241666317924575681564592688646012508700362081581810947446788540293998857959293790305390572881485457839084161919948679210799629271128893930957791342519229629634170073489684280435328933720290641381363914449167772936963715150837519971901223000932196057985099305755880674558204024048578267974303266901508005918968594364785620918182711985331196008227308866854921107034492754029542436958759836666896194534389281908812142824525237780006881878984570031318774757201282339643586176880430586361166807317770850612673678613489996216803367441329473696069984201393196913434735452867903609059541643078827416260815506168889181683332986644337001202022105287922067584769671797953033851799493726196989364739431532799580730886970778313812418985698399371871383570029630269227402367353822055577577073135442611702622618772951198066561094529206844217414269797374851449232835696400830597520338330139208115846909962680548038027194243655377790754573194589330494647781411867670160016813899719469910751435555871405271775824873113784964115986997399599245215431247690993167738347050299273613521165499456560662556744075989357223495278763530435317771513164858516421128433694962426399651058370328071938451431631449078363141558133684353424549207105586262045215868481188440629430939009674549755546865261538855413367144749167503603995885374947355348972130556478626043726224697864507755222656170348719804375090477853217680488149283618011125734677371085061886297777514418313268068669682932112645481485441655996540649238184701410281274893311873757511372640388003182810044835469153010921917693648044727393735021408976085639505867223171216522468656608122547977993872140912983422604549712015822037121582478490441315367723658559338424043262053228426304149812727499532154853148502791178113381660268637951606951156059313403103821997033203632841873888637293714614245072583824271064493201781800760706451930604563517058292567006236774627107458905546764037236195759379574682167465996079648979243742603116543773114556667280145054061000755614924858551166481667024721663035702038956853236694045281926270635168630213914881133345635522940929544251093482005039526554828471499741797875994669267717163929599105717019300115509165623445044352683392176028785487982335824945268041553557314456086276723851732052754918797718804390809845575984304885445423258720495042242772078211601259578903532783460943196084448876590183676870589350647325604751489340074112443459700872133048119870848910362500063628977840565973824333402892434556956171963569877750770755679925631985133783384885623101680107763749885706973260906037457560475137394964914047040527547568279078449811823373275672358160728418690593249752591148318156178861979971651374250783040070625817537509972117441526591466821956388323531410934821296835728064670715748689149313099793028835847553327600946140292046940930344460248662031195447611041604048458652183980585470279180023543060741207487308102104580619205669869874409420368020228844943899368531208270309546936401744447428473269000926610517295744658307438083685403938766728543951322913905672950461628243923997530166874666491106385131372175244011129128209479119003070939597005643655660420765963155951065854678306076220860532183445045913158264913233589486147574168046683316467706172529459478657744343116009277265344866049536750298293624357005688150696505401180535287099475368193028700627459460809425970161750587679554393549189148387346194274339527932387884472036532683154755093752869495107378807768217644807774637964774031705775256206548799794827374289164305421323621549185478822929425710422735754658035060604888355066241084424786080925298406135421257729190069710187062907220391288876240048793663850595858344473250740982988861198631417499100869439312748168424151492825381374336572876523735867331098861290841995122125036544546028918324757398294743643563021728452566870042470453129959508016116083839100168957800809677716544831159562985065238809356319155693320306561190337418243385635266313437160599219993689129859941079671715629134255118896080206722413810905164882913051536151376811410088681182326603768021816478171489688596479776304539043687272877559789882828150035671045926933180909635108607724192935915167076243250421935602092834921947285790249923347849246871995695419642612338900239721025730974565582330899497946121881464413673193501970324991339206087950973211339268377413676371103477644035712905461189544882279833075544082261657482119955953604797776786823417613879284967530532989440609261462760781120691556840263218585832856641699165994584572594663483238570384622349608780643931880257088235024621082418920112993952274316859516080096532553650592389701317953027911637616020963998053788076423888444961343839011195762842371484553391314199346530526646881037731442239127791594042146709948454593269424637210534986948705985210089362597926688060055599713156765162027454798204127419380078800368601208725113120416837781791768580461340221229584555203362183360528723785348247898812078947375599097971441448075048327384027362283642291148873864511492509573842391082176103398385143163870652845565106613041459463281216366657825045214698153567720138481724682145980978504879867364340520964247379306827359050105832605429689483417193114710305261719414633375659180492403714598032707979457582777288217626331728212590624448028136957926993779510962103000868924071241319167933097323573260482911460622145243548049589394311994556444161997345339377493141457787979796755096270317168047996542332358464295200653841126061900170222546180660855814691307748033149896573438370607313763813749500793132249730773712058455813156884738866922086059852370821620911179893372405803893162048813569393547172543921768335952113250833567320552818356446097952214852552377470716797977094897919319018457505937905154889250237411043640919735674220018033145099135876449777810956906348716684959619811368798971184050709017435082425655446883000231428771209319586418861863445790547464281076262992953515066380273489645005550140218978436523925563084444319429931290639922565707661709085437599454843374842389097381162825426804553250885013082125985755858512873614682148211822950608143843796694023751213518930382688380189204834125664247241582766257803661647990419378325122579521344771112468470449652368426146823310839188121236430718096944600841928052090038241568309771674770824145686732570228231344608015810535115882485986277022287280777491059073224024871133782941512699623609036183872425411703621490657088262947621957529890006503459956376638781066387220258669527694250066951001488334175675599353426699758512525629721437617870716637121007860464716966099559028850221337290756307657160267469934177363657661724744682741617759013929512536586164406682292431987638090318060393039585679741354454502138888650478728899648642183717987813037965435304597620602941013597602519706362699952963427599287784634492452050939954979653432095550368130345032788710584589406635173102323748411253067341329058546735342467657717990905718320717082146618072605814376805390853299453715543355178108447314214381923614433656400369833035459309562352920573928337904821917646512409488655568302954962093024320545587387254387780159755422696128047837643396510501488818313576730292325224881458779617515428138547604372850487796462550224501295100653868585291338725017037482078369866598278660192764701870840579798356821462817603461275806518920553324790914397784657811681862926742677325038199454119528537803984593836778489377613614731688513875745693762127838394918122490672851156617136592328392625775350069903711342576770752072686667127851305173023079345709721460017407818366489040298581581114941595499191514200190770302547932796267066112892676431844076412957261000937011789315445688312248733753198738932892612642872561766210317549350964600844054184466482045536819116459116751922312446006455519756496484771383909308563473875465382660838740393544460366341868726782909584529605124290162127393383772035041821846717104688262055882138731665060424098524719623569776626690880162505962886810091405039854559710558520682893628670833655138460367524396013639178281027117035733039322946412919094644659812104255272663310354246053972422098920975282136211816153877478984372796082156903212888202949397486641688689380050402844483950597405060518136171918243628074597142643335692212396598602570941845272371222059235879272873405547992225054053285645152234557529971691283587529953617505634349338875579333792481603617516492820577065407285146195191896860627822650482517774911213010241616872514644540118825520563368155429199125827066405687348992574238239048889066073003322410272401464121094712035223894955344885547357584902051421954521960966084045721954039437375852465879930110788383001345850007152549423539042438789741672821387353258694449766285791921624121941281291998528561583286986601237316788767982471025219047833501274479993378213838977182924040913483182937201824960381091388910030476849599379212706277025117259480323034679766150981507061739772683658268910542995723679749653270145113361064451510144426212606785545077298596189287910855592099201679682661056397394989891337007602724161275364026717579875394748881662604096335560659512190931718268926169320625153846687549549962157945509117969418029045057344529300674587295105930945061499028059424348162182104815551287687965658708685031750029234894808395021859422209678714371796913921614348213134648508565678303934536040492984546184498451003194830780671889771181351888579015131815664268174204956028708163358453355875681470929640889855357771271885013111425792223827560651426004295991885363864645202592173036513407608600473548947880555046314585329388112271667549307577828021506494966457977011285108999066821612375629765752709489633088820367738122733837093886730214838438978220483048438317055466402059111988693985649544811932042564222344125287496809331021935497811175301884974254957186340471828302468310447693815957481156788114249835910133245435970233400126078414857549834755671037198358368863288592854244594206518276527739806363496182050390881484428206960034646871167311036571641811773513792674837928036036734047758490283757525906242131967160380840647396863480040383695986662014442915976376526088816754403696135590846584475918989734705984527206864722462713548831056673544788266188604381024662019145091075806698012449197813653610448386535368379220717426801556399217625472643588160929830705801778901535816857403883990622415426570146462872827799245248305289191721370134942470919346769380389032864019870636748133157777521468924974729168018813262491697833138836363212328976654571318809916695645493159887357763975766949522495462824851746547565909790248858083861332711559461800224214918974816243688722052687013649767539810055627910916289689805680388631469000007065656657158310369515305459632152916767646377422992816936681515414395425705668185202127206494544487255790095703376726188214013755600810167480073066703194485180475826139057874634780494820475938576983115042088561404085844504265673924386014038749500105800355831078243652992235943906512407128155420738080122714043525245951598519794133602161308387663923385435261187095674130959143373935774363457943852383257189247020500447366113617042832674013343896981789943990368819195527365478815616380623864798923258015971522066668531334895803313751464754244213697521188160390494157894668047401376566798656203016863845891374421079156495150594807365515297525528676541235534196078908049370602294254397035564590711114945459973215357500126248703619838496775287723037011986876778814733808877982341994313599248387464614068721934496186597160007079299374419304705112651661436602652383919041036255087207216742342465406545301234099090020128629735858849192099642483173915383586823274935762986513147388999053098884188673806224549845599249881228980302873550232299114217316856781793088817385139211143998966075034469398439931793303256786086905095589625795833217236025821663575142297842342568750291724537145280544335547666170409361782978759728991188235959068528580089393094452778676476682452601154330440349640103052159428846572248365666029625808882027334966534286514047745004449521168895051075816307202801339737438865714550448558647222435767499782207700532371927152382301904821071942457983342967974148100725001532271554974484249560009114790457597260366559963540159056120174542776669021056846978004450884780176949194671619913457453783772119816739267336139499084209734430077603136947823122307202474026397181451132700587225546834150838466188100660545114741417698216448862895164064607779718130260256993145860302950179002637698642715743212272859900043774170611112953246724206178053812262904406876303201709558510144524062270338346843080315942660457461483383882663210660894765549621493251056724520190008931058739754130693732435453321390741653567597703660243781847187370832490636902669489600726479805197131331150087271915713498250374549889895553339451519272260518637570103458224420952144952883915535474014023241403500995444304974960748329377976994159320720160331634196448556171438888998428334843451508625226837194375352518047037120871297636597229775097848024703068728952191809401479458480368425275632315526192026057759740069733738127247215063216964659554068737668881112288255488058343143133779229784573920230869056979762059988719702581433967962819705812583591895066672820257911260542611628658235551571244359210813978044085914898645042676466324790860457794781930964683618271751090335664775283163547683533917121849378079092243702685572244100150258287979479143140159392892537847249752078938073054480256342059755986746050126512059149034795119001147728017376689490721856514352822325223015659168774630716472921887227628642233858470163215597175958944779501267625835763291906325952176862464408651717823090607344587884749035136588076205456874636334303259065933456335985463112779774791413347324539437814273584784687395482688280540847414789534586221152515032237197788836549844074282936004866934704846948710848595959690120400940347076607154136303769467670358000732804264616170873936065657870523513918782513760572619760368255151091671716569686531642544282886949038632990589505262496880808675716789828460856579806990629315669271725816476169001888039623861222962957475629797911760127456032364446141369097328633146559020970019700816216442722540825868604773211941319115264461072669641386550753999866164653855363017470344594122174509213774361108200919860045729377067179956485311310237273387353143026103061777571682498824405665243803531918242981631152315266926597240694020611369302421715337995686466585637778899269068970136867308089864428742396220055696300785035602023232111383704384746769389303132512626358361416965855439958544026204920352995377853208771183477580947251471897728917845428061308007672024879505981671507028938602557787165934442248356369659099870809326484390770248113413331990756868936675907240375446805159072820483089350704960771684906599471553954013780798275604594608439342243019194839233800285914768828989422783282944780719706705241028182575601210837703882327148695503416505701036137965024732241061038437758487024860007244316148228358157314068169597443741005666807398755400442902758137971813413726991795290540959880656119985997735105052430724574066445845388142211170378562237261027650950954379294602860108103506828410202560542800156970249556358071951398436217475112177030686448405230432085189565480198748329313898025863659123721628494203328252720217511817403976387408472216861604059316694040886992320337813556170429458838487498830479015018273387805126647156842194801738803601708456044988911245635480720139512697011932183675422025309164960872937570684782253530554512405355927210519332462893588325651288072355872313490986447251545169109853723521552394718514544544490443295531765050933664594959748891914298637540775467408961022039234791067701174707625398939650983214885391884115657182201940185451521342509499362297413867897803389343406775961114409918148893267268332844670213257389390003835880002606923473490473918990956021430792449857278842463385597582989715734938627783793861061838491045329579778897058519440930811022188460060051651798645688468099293540241032707564865494293109556858684607284860049027849925385642312414603234614206868006768602489682157037725821329424670191050448413035018764419737852192158118557558699480128334183402397223868238078504818460571292663359491850240346779799156692983993583714591700189018670950246221188570356724247504397553469027628497297527739003101345609160869810232309978123053706494458333153787247035723937129686058148645978839314150221478583274447079140666463325950885435929468344479289888369118747365058408105718706159322403001309888607507891164941915529141470882583017385566854848081032239330694550733731932715262501944726344417187603796941560220639436728269293845231871422636405728669330406027228905166671040920471488802938879739156408522038359352941349227156791082224508378649729500037147594174423668447924188283291867098167784796731238634525419910264870316938165214807713337015463571864490490692260496745432913930675174774460577876972015950972639478551094929508359368211070221676515064013212371130217319705728058044757542137902411742140482280708049168235309227235970893704783337945003664638928663661833027767319495850656439741036814047403533255663065790509818811688840701519564988006309899960135425545225088091105466292922377548675795823702652945828029079900326613683947142292529135131864195019586806942240308388772279739845698194890344596898830789251028001152014368321143427789194897067280526499876907716621192337640482565098929179557237008198745452959618734041180969228133668899744969319313909124300096748928727865634583965058823953442729691652820344585098495576051906645137195273871362049474672943306886596006053062081222408315685044630520779106786889890641213998086792851424251545932740561424736842854096667619902182705833734303448090549620163210041068296533565349902640578192943440763417779202607776275425048278299457885840486396609569842944069371660596854570353482032470163968946743140196810380765536856421861985137894680274669293273975374453092614987432119855507854120840804237575602775858118260005468482810875133280704513109187413618481060535723619193075141957681503861101747596614884081822927316023600283292480580861151897616123203383461284128805535327484302246098341266726050842741884748570218447180804624574912363236324957389076775598838207951661896016211813384261350700053465056721163143059299081728511038468005609203738222863812184250843703994135857219448843864973635893734842821515147051550851616274119873159636309413901303020564798722503677600752741809634659826219501873354652535889753803364825467071798555162778373041427583151014600477754249384986171592684275291316801713461222643058658650990670922848670265528151732631973071468460928377744790449825246372653271565262951291015448307868301347986899549742700348063479520229716248037432724661447699218556858927970296440364947791915431869063328520997709386350386776442427988786484424509737431662555398525567778356264429896273123331254648397785681319666520656414302460925680797835991799719781170419156714424788047981400562003688032745652701319989383283921642294516118742840714828514103205345978881525378416357836034773335129687770326664446549489910783834215753937846726792240893092078297687370286218602604620948930871304603390738751788661920285475306823306124710066025992411111637287203584204157370919430328674962934667392645426510783353414378261731764457580543872361833506359636962948768405117216971491910346753782876149319307330613033882042082764473211813190211713697975676722445842934076866263787967645591513198627281760474075697062444691732815634493552448367232790217570892428788611286692248372827208699842641624939742444214797466229623733489166527851679100424552714673726332839392198432262690445851890576304152178878170445742334370417525934937977164639687584660638440352768621501266451582061140920094735471436633375908289263897351128911242008663682104863739887937384846802052925554122872117552568717150231302855264860930951699405734517234295840384527069150672517087586406324609566836468102283302925399883580820785610345850656915713918315961284960614776241375825513054059552068079013509022791287008317894347152883917053702347547751420081957211351667779277722603022801321585810772272182965133483352117330001510095795924467561107776327839519687551111376549887060399240405129467733719767926551078857027284757478550470456040562378855387201681893184803651334414475441654615838083398965826029271776822790302332690400869381196106081407327651082921997658719281033485499746476500728619438513784344186846965899311252287307572472762131453695512878897023746629591199657948569427086318865434669746988767391164395676525993323644644592145125737519702485171840574696570112080109283454127375862576273044652471176460793848007775453603940735343036264131454237670102221853193593020288296631194056277765577436533913521561179885764372944253696182441381206380393057071614285104200922686095228918719985180703880128550218520981578199038353976146449366419085450852555210652819803425864296635855708379948058169287238491509434249744366759039104739948260085106346187282794302056283899230370674233540402174765079630236508513096475341389765421797038744330386893351222036522730637082551806682868500844768541671081567120247912725240941752627338138996463302997997490464312333532274131859077146508197233412369352930915626285623476428994002953621199343264938725459373840149573751847232286938974751613283276640486849676561763596403224013357907908622312132685548648011186930747985878910906705162179640003708318773933332547446406108226530138302151754047515366477873261619549932151415293703150154055445197726001743204458544057508919768877747797238143324274091713267972430088355736090366346889156936462934003506539667495537485635585652444257802851549807588743191107415756327870752071679332214542256552575906343518926224077610858776960466514841200328885479673740507237669814874201413570215697299104345592586000588026650269715974733452431744227824359867985840984278290009209024903929657607347374709313510953253318069602073167949028885603769232745332099725327330706971239645115384439897718870022977046401232202419680775183472698349771798685237259617405094308529605026380979524988259377114362007517657467068624852520493723178156531301568783353870644623320529895647676320344063852990064667461280065116725014940219390943128450862897343455905981296357964904021567253641069942825473664011439337703888482236264913674613991878322582493305348994040464212178145166195075680148154543993696020808297245893167572374910104584405878751687849271049875811459696312540169181492611978608010881593899839028987401192648357053291477870577185832484791692483279661773557509154942085304350374217696450272363659017759479906380633317683795960673302187092506582583730152480090567417995957560467505292725041498384282474252382727406574748081150240172158773169164367703736737857890101520523994929000877310933913419106850163331949580270662515898972968614181933540034183272637319158561798832436414251782829693795213461748857612956619649394001271739527498890543443761507415290128537210089433507349632366917416716018029453483469222962856559235889326916057857876365960611094452303056748080378460322057585884612835290641493281696222896689833131950362656786949621898523269505530935874507861641856419846703371744228038153534400900794804122816885612118204586616945681841683691421756722934660274082514858230399387522080980273384139989280460377857745001586901139076000002457333915798611050539359076246434330840673091722698954729607313735228568133798228628261957045298067942647331040179828190663722914341695219894533751300667504259507842483784616616444728852191911003809457567818306437058566677096244036634152826245793447917808056970028499421611499244024311160004171508188123486950269467862264101902251162031556865807508766705419888276928996010461622569605149762181071399064608689652897644741203962815264503270276676116509322758701559022093191691339988512025592876004952289484195455995754965759148747118449099749322574483514085021212879876001160278376763715127179548644731570141861132670008538520699111600643672429954042385280711734453815981453392985450320176919430343956856184780747162061963961646888814075384134629170977664424489136774127908991763491507853147048600631239347128571599142474314061502595292610485412352760397544064282624139875290938369408027515491643341173399453728578091437002526710583735573665580833865640419188181737152722658148385837535619148164069743254026002779463102312315715467917547460244531800542346804317380304752165797378508647066574842105053900415215761112517205462290134416624361294090091336198055513614664635413834454381396101299555987693728205668644970078921465852484113087624212622205714582535044613159842660051847821452173896293202084383073906298540979786961053564263351179692751591032950564794133046098299772734098176439588324568869869173118269078034619637738175276289370142917001425318328233338287761108613308398372755463821165612119486626623168365391782541841683982908865611615525831888734835732211787256598285400385785132559513380882256776077869305444977211329165400074785407309666406847403698588089576792545422759870025695516970637730460977155734591382414424601904281234660649439022547889408424417330248096470137166234732444972617545692405723625416345971005219160928650818365675437979378115546244976608057283689886632808530281438943013132986067583394969810383340816976313844431186253067940210854819556490390507504955371814537045609361820111405819160924140633740332261418427516752717950119713005618663903840819504229451776603236348407955619464455538018621411524139736366305958523827364957488510850110930783754520957685990965656652570027413974180959388027316861345183943454683509253299106791288944754911877041741560158688960456755654013337826817826204776358210513701990451234958860473031971495424155063942722992290695794305586821222190877075806705157707182696210719887430777363212889813391071574023103881146032348223449458128070696090935919749660657424768017000635763917711692147959904704936953823629996212019145808701836025121699498160469376728767152680956822347591624514796714876270871858947588050206250685501747295513002533107836554465086045297109698152395375868033825306701552944706744968791836176741381619196339154176661954705329383169331722601985064442632185846273548476308195255340155209366610737421932437397051703454001042090743244997312926370922720083953538544711854557609998102371762511813768164341287403711942996876009938413494423757606068823598403384913450934959206252358971561679970163232377664685391941497099932295143975182389079581771835734567955626123909947250770714658864822116610536216035862503206348380434366497916674043029223206170274141253112576941475158961948678843226226328499054313035411919505977120885401964006026428077124460211549567729911974218552619215811048829551809136483552491255826150609447643902994595590653516388391695200032141415574085911885508976978408657290023454960587331493403972503183643508356058426475161720628650366411846281258458959625137747048976046480607210334658853274449219922866251901347418167383185064495807346055424535209317416323629432658096737083457889200944558909505413693381059818391887159275555529868088234591638774807136595341276971872213126051931327501364595454900659564085027685539868111194094658584560391099777154523092086870928056440490227671013844916648171648035023055727005733542804096341285126627980461779116608607261540481503504870918506226175540472905055154595304403370387769950808928781172117239072114431982970404421311564963712576456524322641866076487954195438004079451312502873937455834729804002171035074996844306430988800722763097343498724993827219510930732228763161244850305171506171042510614864327975674922739630804724186324255021698564538362105715164987498292987495302843954821657643530313947148385188772258538086132771751731061010893107382564269117655775966137123403178292447328401172546440355477723448436725520374624281148588388735041901868375776068305898726242095578688459509302935374841246305959167032095081809977844159685966152010693840477357899925975276234348732138018899548594930101439641489787488207129347613210769190707931415336436508208901129957337572583590462256952954991467335115663302155799969106497082854160992612343649108410175784100406804218565663586871163260856270556387193013738358783391155171213344560683201517413937410447236409533864761689122038415769347296834573926407642539752043377344072017311206022620061000490692539902601996046048210100206881316943001423585979026219627929351800675160680865644657411030626380423016665687412786395181995198075257827016428326682647616624345227141895079338223856120242202996385384956269308292880322292062779352253857322945451447484030232395720220286371656466917701900516248909599912633178224012554168659691701694066730626122319322620297676578223759879997354539439585841606847558385579130135522735290623474704595279233357216923651352035789824555225861179215956553111433582786566660263216816516239242615219938694628346974907180207586503644417392879628455633876242778912026767332765106667536147943668145605844706254042503251872536229882741066693780616205923638517311885593333066700427751943281277162193032220793340399363607018781218015654948293554415365560555239707799815102835312701752686166890745710871444200654555453192979977192943897911485186293185021965525250275889769047712714395129473717391844020701457773821237526202584362456539450710174311921280634423383610925579174162134750654834918239293291996476686480196324569631418960525711913159747120260280049596900901189868136225850873069288216296627583348414169676835603915579726884158411030310564831588264255929184175014284668757134118071286149330919953850707153495281988696251450214889232491341361888948945641921597072459932415695604093224675172029589383144465525625991989361266484222887718580908865227439827655848100313435683788424060226152684281694597286053130217646881195825782798726459199617935684102847941107758864563402200895741810896891258226322035875684542771842087000184955745163878985807624112486681430835200114238326563779374984444536916882443997880762040096226346050123560773438931617370158575410776320934949984400658913217454894164428724297826443304122318908860430245785252905983294267243253982128964788160101708327714421313211584113206188157497257310871602315893634013869903851167189797701735787831757691031479435879484099868105730997400379326545180958686368187054922792633724418255521494224001310827720459471905326671279061191912699729852450694492493285962581871827142945968749395228940167149133384482585187792273644485555725360340996021579871003327158898578660080182656032704936713443600722920130516609380329152439122852855541055713194921417875674555129712969205255979184269724057610090845237176626143771499491140290973571443709180126064061822457660814057257705326852167562047376592558163719522460708390847848377320879899668389892037937270161573957661794777956991481558631649471041191247072927426875458303863136876769956930110898444638295316321562966044764747952046342530179422414102856708630606779432057690858351061939069728653245230785378529331546597601422004429810188953739034115270671742994945531503245991197056905307376109143084982068327361796864343852400059698206941270119388658620322929852221684492177962222694821218262244535002103763896159568550516584504230678428184432434446959233834645397445095926231808118470242696434242223210600575718447552328211131174003818652466411836673679515692783290344643581265466631791553380151282481729045763380427836859070701149413472816800122415978360467550954961234684825739434707978387240083794080123449449535051941870164754176088868274459436336208350890822296945766241762199931640200384147846778431603405544656009821471309079457835044047858512368971924940350615391064625414686982704477386707907019026670249794222987957313472704845970815353299762843746550333775141396580145090368534061447237881692577166610809633246900117964685144232903407373917925797468632253570217949914713486944630996386587429144285027036427212742317868818382654876263539318768842716186966073679823614848616536231256999854910927174905191384858096443082966793556368157514778225335289911988125966503776481687138696966825749759611842954193713382068002944174223658867523157497379612605124733062193247013123049147560855219115414580241435308711693649327841962984037321010730795400601512755947813306867503617419011692841794554530486776939402393704375251029472323907048907631067825289221382784142580282685527871114866001718387430697561309316476740377776014216750092785275485799708704795247729740887163303568461032030513780132215673429053033525087332487698791651178806843278499490713462515859193276069849748129540677779634574455376921874349926253635153609517419096212527682452797297904879022793453421328824641000078084361016520488323426344009474815266167415692437304103473237021452135845866458781614499070183942060932606717063569528218196003979698431420911181764892618445695008376506115570286111111002405835668125005628052596274868728365332010978937030250402013159734242993566249437053149983701862841197374843932688236519073162958039699992291297598528608037280137159778745975378958992436044079239038120722047746369629809471419079267342117627665128686815914098928984671059938244363881543375463983061587669623976418159081639543961970774610176090933201889479912635291946665590496673445732166916237098946388598116017721340235211013124447866124266627542683298399787136620708160560805456473213801075212557889222051098908250865455819037759967738762665879934060155983140349163788873316591803237386839874414126319965264810754898923942214182207065589107101083151614120017515568578982451761382500539557633073184419744058124951122988947939077769475398001664249859857409272669298642679137192336077779159871096753077044688962326621225994908002323099896366182966199083260425375238441025363814335809373860906705072883308601894910440423634866427677024910535373456443567434683203158267203019735040069401463395355480626765784086063439598379857265112890036299221279560344751578100130474957710662054391438792248983361715636052707188314201516726088106997475186542360574100977913181660571568163936767440701294241832152136300080690221971593633962108408718451204290397581209128274440876380857760241245666906584998085419720547958917614331112963053091448597803967680584005458533758174063431349843535293722403872474093605623697238259086854517987689924811230075476107666985657374693503435698409978141137203960097204090795388350190940332555845244858883949094886729947011608094901349562576936674685855857758904396984981493849858181500007943157284732415236557596317625462648611329654929198068564816277939995715948777416728814344185197629064277212896354307432164773478051398319738083060707461965156851931531190254894380604320379047744098860633056529209340263408989253724773070502531969985617343350227933091865557965671982597105386831771110716615549605739900436163728556558820426986949747992126623408841150563050853927582177624564458640714142443774998192188148423937177382731205086975234449300724599621065468112952063899775190526591568656111810626177052569049914029647826810903621694826370255689275171968921528719735601238744377196803608285040553546724442850107207125809361434055565526875090713895891266398636446334782810953532389690700568540749809944846565665960711793337417900287580835181198446700135265465558396522125816611188947267005950732729302660794310491247304038619845996088880807191292385832046463205669526592750261677171326376887178515298650089276742728369304757989819785335787216917868793728251527960002306915236619570255819693046014600376839987373887189684750318161404838493651705533914468469321972852043200794318581817259176737558996676932194681457500641777072883783319454772945768997027142232277333267491390602602703222456384687847242110461804925501276724874802347774647642632422544157574449303127090220299537529052756814870507298242482280392425173775932818403964089234932122516492528124894604326525303058486857209576214786494210277908854942941369291820468802476825324428917425037361647347751786095949818755930177432046323895595376885597431090218606295481703017993849792258244692733750888662501923879468916352152435443239871758886730671561959869616971988665359661791863364697100371135400215521935156011579743289515679833141319234793505911875528872875583909547683916476768995125735912567964637284945693240186955015689220042297146316854517331835313879634419308963678261889727634173272019918272957036766121311250966602075054083869572543505086391759982671765773980152570591377907024473673679525636407051573431552032910977850073516712964025783208495943349208548821451748579024786256514288937646926211266311635387581616157934324658163934789409305906722208582658311520180806586792532859555235444065954464357476527329108757146946389644677109214170935294553419212780226214205428073403563465664816182995402604995328426650109741395335463493500616609355689954539588985976207007025333374901687428779670974007290099093667906522143127184447198304122932465008755331176040223890116973652407240707013738045889933944920346389042065337269547170063704457393519408641703312101559973862731758148342673016178002850695272114720702232165982965433378782418745737364863076872430225625471210065495302985232993652711255317171432133508734852083829589178004043588112699501452236491695069969997532430036993757792864175659351572065844234965161435860971187026230780740664958383065759780724373477505662306711027999400318421885112524836988880862012324116562519803577098889439069965865833722990806335475648656657824523651274114815193492501419724584299714898718275362782000579285052836922232335491786404497603148724981771220332119831917050139522350644893866632674604169737859816519805823041659735027062826738172176056130315225715018297704052490618317579057765106584187555179864386535741034191909566084657545632784039541971097595821486629454620380605618476053783285194913935047517882235665724008668696079254265204283061597230171259927661253982594394400667530663799324096150196252013405493342935988459171233801661306316215962095449396387037949646267064830517652319782494048997013279832721186013477466137079740865944364969431389432919696804003223111574108418817599398590278593656466444764840106857149182078899468046438513990016950643811441397754445453808021504602799779219753140878684266202048290807250404833257092708902314412766332214970389003126657897347719842750164788212214217361432039751929952574221862978732565707327372541821734988898752727843905277049592036641018368747821590596199653503878614358293009788432869669594959732521006814660229711117392862864503247687491013349099040360840078706886466753828889407373908865202135805323481613307752562086589759405172821092781698077086524298486036690632140592899340016395071035357241690365773893834206243263377645870222770616283604128543877808057977487236551349148470468395695894835323009300373487147479059620968714361111283387421223957186251531258295055430117520193171967757623600667946571995900782839045688717542713641955557156687897693697443094142186906947158148249116790274983399450540182110816291902742054272825655851473101968793881827893735798847127585461990996562001702163066520930713024851084211989941205007473305638391471198171033307481294109825454131500379376570661953057038268570922402616254777948226341615273578042046207132989877590807452359257875251487984251601427415338873676775560984449571294462754294052174046381711151468203954850980258145744340368453457714638477871721573680395434486564229576335411051250107019634213171753778993632470644548570782244922724559943231672935577685706360183906453189595200541145410491918223167286887409428199187183258594295281242117833654929431166503945907691352913098526339041875709399424150826423065021133370394300513539317112660291206672335258314474306453610641666944278982241183264956428870318903975874291475517436499632052958565910548160971691478820072317006745148421620951360271867533726106812948068802656271647221225949431687309228017433534259932110632154717933755684032691015843570880109179523569387165923972562657686923953827143529620961667103642209893712276055423549167299964370156609446939839373547902575262618065807824249351155664607459127735645569985355077499076496927328313759870497510789688505997384283652832207933856825803695085690733762371775248720012335202126660785794901745746178487864491321792651443627235123177650406440242271378109900686508392232095370475812237445466290914175363189479030865207131512220026822161143287828507578280174931058779412949963929793314090215292402558762860986811411420032317002489986382998571051560595450881321687863909099160053309874786920378692357119015822792206232933396681235765626023313970037698602070192716183667573227230456021169495255489696357770905839104220002096573932485338219639294827890301518790850977498315500148498171730583793435661260627756877104397478993252684083481456452328224638190976017027452414237330927226527543965449746753098822531833986909297074627005509936511929363879980684848853341399022037011648196185918692948631857616885506829617463288938639447287417352812074891929642097420075379005240363627649923530322230694798848650341748367683154147695088138370311319738352292864686807248819523996032343605338583073650838936666422422815949292322281124720402271037063369395484355468356842300291182787301595624477376504627616289474990777018986530822860177307565404189137252242809030767518714773049739624350362378165182870503579634298193236106752647952787454921651034695522249170435445176492313508691239440812678700561639053255473896851214724654246590186114021835574490886789734036060233888694251033605365195497947231062143788795988429087036300013354118165547039124651534003986669348040267917884618616195456129796425066730944128505414728525499723185039548093848592381708292414269268294419510452646308519364304871763047002073795755945852024172013182155004805668514659569312350439870922101767252154483364954135205809479057716024847507278948956671479365332619369687420931263527485238110361343479710813540934069140714908555476027686168017774661738638369855017651880655451826007850043748838614686052111296095357916572293543693209043969212346139531606776409202935662701212190423900217906007533457468809232370690029051873933397604062819826101618299714141904576027994760117080381054322547400016001345441627477160731350966170235811410542815575314185902216840309683220573098092904226584620151092202244520158295027170749923932568773299875726927941077563035426790940489715882029297198860225331153695608371197849968043076441837064717305954108662185643367698860528495645301295659218259576065727331267512730362025601747776032902846666459527071145332517668394210107704155895816991229369834679861770953966540970685924414792483121082285582331539917973702556727708604626770418289664239421310481829323732424565497315197810924098827214706625788465503543963344166913621991847949273354785454795139857880502205883658111840148182230198320292515436371418435919605177158878986549422318798189217456463628408789909966126993656253640716317894828644908452065544215184418993630142848127586064683810086338656402272764112954340610048926009609565735480891375572110854145991028371878846405669316943553105540438113792181530091092348278541477450614365409846041882435465329123794623442998680107392224930744106591302271223000064020134281807320410627282747415720317244141212632757599185257802453761265900550862193601811510564007463302447968386469561707660963342713902915630772112595390785969504320212364786241096190555697226204451166697065316066831031715097663040528728707828364848763640390896294216611719928729287161936733020573603545050358560761881581726019715982298612762198648200330825952102232451524354644627574481607789794395354012303908076004242228878974915093253473118536102567399039100284070456141105314079065538655472906911791084081261732336567474665984472442218050735569638249382669821550631402403549465385462698476515239043586299472014299012415611053889927726402864301223406404124526019351056957868683734728314664273289570460435092541882441077863305341741156172901837710690248126864457030596675761684897519436091256948948738660769936612059644734244508982369613397116535199045420698071822022485540822054553660588212582646804709167054509978097029645231036688488191632260861282377792661564547992413916755236215958975948900635094934793103842639985825363246738481357798786440678366919267313597659182355047369684764616691340704615191284489754400655591344410473812155885422212756509555851877141158984442897504114865191706337496463731653343715386757506975454163806831321291012378654560623865962106683598461277065862229316619854279358213743203409869907301510471035672083818185235135837698660483080992087568259974074453361678033489287500759985109044673602748112391179078087902704271335002431717019940668542848467078943688235028938134637699847509812001005702459341474514581864258156847553361245690935082803825009427186762712369262030181669884427251329214272450563547969369890878489236324795458015228054754818421364181640662726337929013334891464099094108547390748298110723004257223948271444597910180764065515594322099361165587037923082534682498211533735278072534105634486157998395093986728788142164095999500225821571704147464636454165764981670979810017246841704239526059017357928643654659340675962601269211162282414080532391204541371084412895785651721750486459508349413712317732904109356010139986520489340073638218377761801102102209485265120246481453752712279384977370191840577714785630243405233725656826790633548272193037073763658123990401678353315428928579736747528240115290904900774666666251183589702806010782303097769425541501591403154821282239726961540577014716002389253460159962906038339448936315063923569077109884375607911937135491973810936684078469422844402049730917032674079622469485865322577781867172820417957017420855833559349187193744406325941209084266198897734124165721501636344160916399934861760347562068473809505964096588842181135237117112452139901382199335506848757942561868369855009045223495531506328804437734189137525784689585439478022633809075800905858724010572650287018450114737186420420213739665766959310259347530373802667898729799645053944960207183616809721958197351639760599148513035846598737486424370012087453324469185793629021384846727074081745896995066283558493304958224640480749332119132768459161905073726814136736817890370878425778369904059704947710247135209053382189541514936129675826199623276357141249248299901235042882830012806976914909281757469381678145821095764256727081063329852254563471354714818734020481904665425825517297711236334403531657921693424465059889026339609206949525131570708661037911982377950407716276926919269661875738233015466218571571222129656034660008616632354457094925086840592796185089691786277823840322870805484970256337850947144280616787105270393016475316846696699213424455408447994292849724753920246703132725441555714954850947885650623734995690534626585046642600802617281655270650397759317403174744328435834039055918985214583905563718209147155561181189794447315589574405271247494349263523619103145809755614101667268567872967850831488649698639890469346497268265764941462377302757897309451807539034720360854255381863278824296211489107392859962269605511595913234591730309242223932785757329507692926362824278104400469311915814456520500322916696871558355477929019861952046642555731505458293997075525086708849753583523463526556330009654506191791905322434793884664642717675236777550445872040608847938592177073931780676273360604746326324942093481107486312129434691140308369404464443586468091523345781634424597890550119634344340614401686011245787071314903235103480599832814343997573605119968452747067592754594021415922435014059382926766026089087586134779275363265798150888727544895840336834929324041619463768127713446211267092631173970744859133991322962645179938535088806124796942285518302258411468396860841889370141153551301157243705545921075382424329336879894784414814012117164550793657169227972920114293004963447152209567491828255818395300733977198564169641259037904819100529854612183077230174883490935094380106601870348910792351128977111919310452990323194896762413700810123572187935522961444481897360788631112634954927240087758010416386004729352926640283706980936165013374097227186892029698421230610119746396918229158551171190885459806751287551883166441625394710113513312589415732101981691532787214024963845395483092038182566898969862041959926757844012220679327649771111650617055188970605100277001650244176716198372621803904387332943967717573174155392470360537537971027880705792033080346152353421585620870123980005246560854541183546314641602611192274137004618130577981066490473743214429755993749150677699817189750208368059651847475178558098971738758423695176021627277213554510317528174675245368437351620514969185701664391262334040943684913917448279595765061734578814097890372128593330420051298112047522940463842677850671645237579043809867570977401041906077536715376104067421032562467001072100656173739369967679702913004241251825560484644367077130222852187070263180413830822306082874647572508880901954794028109579402548404979862973431857390210299593251129613153664555689945572424277946323255286286256736700925286314736347994988916356915351017194135002225686426872912761188280285076512919357659394954992461803383114986847867065070515824702708963317817656797748377061993169280980197213338448524446563553889138429106407744009715861131700007410693367675196382102866788942246202910728262561177559669874828856974184451670887828891879097447922114926425417283938067115928652593751655662352429085752821337304551115753911776238451113934209592220299661940235843878141675581732937685271221415416719305475432559798797277315707394013256481719002364218854562148303056060880439073912259815513753859659170054323361731180105256715020387941569320603782045311106835392763685589550567967738974594792758105584037551853861904270948126119115258974235958608743724776536315406102920481049927984749700836365714680684346454095007675444807526461834541061111873322136075415045420631617804207750077608954260336847258667801728638787310766236452818118442559059519608696627832489746494243060811474304090653073516757948205464476412972061279737866707773432922375354064070643733897789560339223711713605892952826637806936674945420228628592753189611387412494791586121849562576599696202395156124257420382681738114942884445226693516902488208353985988373053452123339016163261419847958491778220308109675142750902269919328731179989958959492880468467410358758154349788373905848543943399423684514646108459927598656850604630667740304528215968865185191487122775551150227364567103554585340663540088365098215237037793082841912336756023798179795014305978705944268952730610784185387814168626420509284148997262674396032208329196310111765881230274427258104047146942341493675070501435344986294545613131296608021550550785771202726823320036693254665428105033929919649593735256826211844685670748737794842661953498660608816818137241998862546805661754744586077576104303031692823963123358023950415389685257168415785559249054506168028472997068106302175592357611590698470620368967188953154063515592410614450981142112820807133225714177341415652265198331621063267182371613867606858637991392413880173486165437084059272327590572657561585334705355142044338039576722421590698712020193820856327292872003723392132868074158531929322194785614618249216043374686764839872822275573290064104678219995546770991608789934181349125309454773628742994308599492464853569856106154158849016933748496912971282937905843197285135111670386797123966958596526248455296930539647902880509102971261409053745301005089325397703035884969149567606563324821381995421612409762579559257325542395691510332926118067427445647824116192742122623172277690517470976969428870499161151955389446006201875515015325109434346334088532990552582585020201686093561759604578688469732607549534049332000287511399554055566444412395868466551401721236703777623667833120076550115089581443774558007694805230360527006482245831935404083139528262960325843537001212998283806641237652890009823062695953872019800062568238771081876424626810654396949981365835653370907576409974950273374303031115333243941215943353813317773660401862862720676508776566887581344644772781092656519922403966134850041237804995894695559973980423038556015783085096547064370126829765886511850051241797606880008582829922233119636283105908986455764650605836341960567935294331247586198068955820412303441621847687101872936109058838180570180086796428264324211182034675455494275077829979452243276801816840470572060612201170976153784480854177491323747846408928976048559725961263859214852315284585497043081923934819413360557754777853977633721622865963742654360707093099797899403102772766464581423243770890234937106644450166568698448408839233895532518760153786816102906091792434123826478382245696730066492379853042754005020749704957319588157662481097812302934318381626734190286889346523700436833130152829405281684386022974495227558328697373300768616283452311911254334477447645348763896667349860629317596527196271858473991664941697326683611921277209309789595993983920001451567393177799634484204059959714164850627115048853280798054606690311191117474026526050950467886423622451695979773470305644400786029178146808942366048900947178181337608582902118262716537802577311869026734696739568324588581329579935012121535426185251786448948981504993455297835171940720931721276548815061912367872456273933273664778889658518733721722581442968280267156672407660761043937880916618698511003065901308298775614918105657474220792810807720881088691737507992266557682803180741983274847710274644938900815345508952356417625579938646727734358299529552015963827290901997347337527439613361263929313699833838652776174561715416464098521115320301334333344346733568197163269305769340182065374716256985518670964511740996481357990827705792981692684395950848250917969559329733804755146725186321209621970061189111738906439316052953453862681196798128277945154154531707041870160154092992991189557536003650345856317455667887206499885151381347498103370233533636621171774829372225947012279203596879872104166813721359074928282677565332480453653664231933964524356252022622625738411636117670132514336761264150704048781882306618584193828665786188140349399686197193608349119813901977091164904229348024518114681920955782201077363006014601338033972348956935281740916645237731525451983820433848182897718215716647315657845903019764947444817142304270108616430366150939332341324560638865286180386903294572054301442360630275392373541214574320417726555761833054337176688597016638045413632458060421642619964412080562486461987274179129094704810379436546884474299614561295253421784389150855328922386455941200618970731077886665856783337796836213935580673077093259661286237773729815638497649569313916597289692650403212281694897991335829310873181674004124970716172451646413852980331944074571869564089730717934532835492816401823611497601880725138142285809030400802072509117024950297396591916479169455889528307880129675118858497336067746394114730026546723085580411454987339620815662507935120470104937553633061771155643057091752875867585892865466119648105293199520019245563433067738799416973418397932022894035350489931534737101104252897883355612662023673291366350062067876127663106079908671935927694432017414938914390819074679955800020776180890676351010020569027066518077699057473160454166702517774985195751145830324793402502617190516938733269129241073240464314612227904491073676849071420948874919745686925755397727501342817277783741059347523410035842115706839376745387972414272825981796712376460862844129108503855368429720038910554026071182925666908702472932014692388205739815452411726564086048291501379861366176203771726846419966987056659425338316045278303050914467240312135500974532302212711207217651125594722964221244900615932056100444019381177967625354728267386417880580685680739215720635623517446517184641733425945940768655038267809628455808259667350833134728870726376905392522286069766169927705691721415873403226605074678306259827996113311138388864453733144533263870899424790823770205065728518746283700102638037284062442356135284178282823611947963480255524120144253785574995285065552842818549554042838715543441902911613778165344182531647781774442444244083797009206460756858613210458432241113963796619241266782779204995709661211841744263083453841887009958322735209150659078292163841717260231840038946645596380533254484362781495942893547035164036861666071578063719669223913369346158567537084517956526788964970595250888716378565381342517052187675995250402760082695414774239511398040201360316329008354003754251276115853480484486923885922333167468952753023428578745961178683722751816654830351373825166306825830442091079325347545265461643899268424305995980622990154617525990201246512729901165829772340251618724483156725851088410945126486085057374978165418504328234660971851034788953086099206417333448192479329496182976987856910931270699786835214973792596348431279490469737672412128194109038705868501096909748519840753694511383482251674007769325545312756232797584938668706575994018147667417290737147722335876928194830231165175499435376463113031946121991742527918069926764836163462923323833703929680924549772922183355276286883277972538898292731951136350439414051829123224677685509260203025751458445757993882813647529086596375992585740166473643018449677379029339982170154240383206114093877424114453096875238260235366956294693135103594192631060453812820793131793606526735677542442571429051856769188005289897335683853587070277425478113008000379951795885996885076461138892151483246239903519828477551909107070772607095672575150831216387601604022261931071813267146491578926280498084093357395320194026364691369785338292408926620117830098656690417572892551906064325264963434260888032328438902761517931854087581780301265862476424571828012903961268674580993016708016331781117021718385824153807383793799637591341795823063722132450076857306188603732894483626873522727820705886315251706518845999301148339087722431252405540797048479646417380337046009439761558152924237717897564845421312382515558614986592985898820052081522116108524192480875305170720009100562496861487596780182300076570225780912673429839515487199197827281106576533013225207439593380957038907014527722475308384903962214532292970891279348292242692329849589669571392839097276029725921997441194603705856108993153418955381323139483918389752354692504221986110658702010688739597660302735908781890418113738461161275522127078538774158744768895578890323644107138692161445491604460953378421172774176425640364799734332384753642141106007938273195195348737587314249971192655277539692230902569083864979054064227027316432075995985480042448536330071686278807724264799537041344495381069850825660469170029833173962395588094969605593649845246262009502814509959698042850942016765185574618984678122652646678480141666219286261085665604038966163480560489120097075673866660976171608526676153211757432913110167148068037641607325781180875894867572125976097757803147071076915310581011743044666783048299017709829673430276833598654258236208065013244270429594181173351550595745365005818577660948319933233977276566833916046581959477760173730528961321583734455672260881324697543401553246198649005844583918355991008342495938668696035150333435219727216232655364424725764228657998071898130820440042452392812022850377217964161855781512853788797449094125581093672620520417728817606169167208905550888727860138583155290563917179259462602728841910352646491980992436348608832016104111934294811802219421508055164592492123077936004239146821240267140612062813513627278386020549191804794142880344550369325431788596676043589980831762607352241127750844169121237575847753547620658022937932895687180932505152892958882579470891377035491614356846456629201643634602068239966201719857636840861607252215587283145527874103807496384730083497644455890526863106598458763121049891894185601468409366580688193500128733997002082098727305692037434045552503075553769549915153091695038229817144302274974495034696839402579744122093867067447935295308701763984039193466576643399208629230324311016426563322555203172728414019520652979796614740095717214504924530629147129557289967746267584907162995160724704941434981126458649474686844907884691435990768938662873899538532350159275589356058371355486845857842286617853447340628741698174851891931584728551788100892323513746323205562869349371293876733274383559492347803675054697611112806139269482116696826736915613150263269884025775168221195054122121783035470586494810061695521138080821677580871282696010418397655159986254109637706929729695020065347295080436081254558440569795524386575381589134845306431540186170737389889275411739210997981356732892337610194528055101467728769602213712133914865203183777160334260740353850803668229201519607148023506266932494562002423897205839772191244514744318623179342957890957400052941619863573716580093014274486975089698085388865220928536708364592173674040539884149709966638321811571025174283997302704909274727830319325439601544405965912591377422504949339990917878508743675298004235306857502172694300599072815125947934481759971306643366099541329662889271277198962987999198813465933057791157194903727801395730368016878199084301697173475781459684498343891033960265968013716433312360269420116902399118793966826575836848187545508690902067714190660187539914267655301736756759450796322881227275471688720472996586097116802101925459106024435883351659648175863759875556898221881685768420645387403287430727509881217729534945589393922912767831673980109101124893079894469144309696057021719165782958289753171293382741334935207149004960024135012222289827775389943028399700600667985869792368517911115352668872435500373226724724364196618841212251957258244851180761474150610509490763228564687059738605827597909467555555280659118993927225030077991752562819535460055269951703252722929691332226540074038007467024942919446542508202250300784008972431333919310615930884169274640478417305241262000718574363984760778169806855943204270747754379868027772092125080897231067256481359255792839786326159242336174255438079576851020765574365525698167785064997198549352889398128604143704755768928166803007974704011252856128678739095284268320924895064715222995632916547548918440010197578851194374967670780512661991048533873824386804267321433463479741976336828797680078839808429085608617459213755002391883700475791445733018337585174354168573387888765455173375167853920054377387433339986922612077491318116145753982310337193805347010356001878252609853485960462638002103606196755405999775224010963923603625321502185912654752319164905199404307151279552610251210687246325056821144997424564698975286600974056855103298063642115690718407510642424168422530005959112890723548291752457461422321210480520670663071050850848670429518558490671475081327761202391524754492646623118064045596624402035830251432913859570445351340395131628635197751356413626920369549577053670952824765608886066350096842701142512493496986277358585020204718692935416410903489790619352318585798092521801401927864790528364626149756480328970045201712564459544323354115379863644496961046036473678168247309818666367772288923768970757683499699276975454100254646057206417185537510175915552524734326143483561204226952933410585393232040424698839517477611048206242204343675993256575053656366129598230663076370670215276294333946431425887553725916052028369545931247898118512808866084197885420539644920971639114520483091614733011137266187150632807335700579490637366874255926710692733154869960355694680812280503787074907346011671645501017582581391958308512408556538091768017404251901438359930698631445219834821939024161693880334329680489082589453704870994513271345265610593080603073767426558692715030088297157378850332727147247672055836393154967915709619510500827460642614092502406844356003708888405911514893519363245205043658437957740151869218696902692999074001458976945835684803392964109385487524216290901380625681307237529686834576253486968412046043429474175794086735973784443168323369396961460668967062025358010756667173503706734068087867838602213579168980718671409419785075769181658158670275683045428297897597450808344020234366763539349621082281603178479639726421775560846776417251067673860224182744214450097806610591276190559421520051334661916307613303236161770441831031428578693897998043632118477545543699891505903859955115317544451571664035567574879555328618241053379131925552708946512096744614191176938279960487595774206534542304497677245939132643384717544743697000111164188143237708080084791683449705137908632223402469519336087370759192948018139186399302890455180406718990063748879454730346087931677024309176037159775290930312668258934169092942969269264280195103179121001651473649670855099063267888594925887793800948741469389272716861981739783752486627838917610046402872029925448542508156105549719873216503428231355012048105903835917684210684109015983601659377465646012208864209272674506742544832020464356703511407100599453239676088285265352144666009188841122824419349537082313027616865928846685289792857836868178363290019538864310767648582836019174263245484773364521845505280261709519455764683823740083068638463057238330445685491820468442628722735436401568638752281246595468610092561100607052714692375588946702825702182243567844457744727129815450620296924545428258320487528294323216575811563319142108251809045010182202327719496269328610822809271993263131915174556580590183818265212013711966600488292124892176703002647056569861353934463229179631731764416178649723958563310987347837897218547169237459832194762303585940357924454103375405763130890081383561093855029754243546640571270472714283032569984869941037995785823755970889637873466386915351195418391401077660370014599516678539829566003552650134516928142186785349108926987470755789380064374245802916398944670356707878636383707048594756722420923747941247397923550166199084400819023224667944526701807114665824434463067514751539821020279226126640591850810487024382243238657401995379416481726982190148109974442220963184819411232695776866001698691246496247966618230670201729495347455000943786583185603658021147341128099039206343123835258036787767580254260643170713141203644732688343791003160907301533123872830038866757537253858688719222706219612483599383482791637486793843241673808938488733055847675196350678172910958081182243687744305859445843103286394131481511884902054106704244331350277209744126976615307282064824071917578649973676080913165603806064455267902325239905012799148790747257192875750675492300097129691531488058123136906155372526697312229107066999391821753789624153901128810531287187097079835661659402647584800534993241314455134879377284430215913030931847489597325836235368215828492114744701195883208497115573089302060613421131383399802712398941609798790367742295245555529567359016534964926656267125574672455256854031241259658349175350857130037098804237188742449887286332486341791902442807071734676220709047816487114672324960329172667016817196440094301644811741808925905481244231377776626291801602723679345750259635120512967970796181818192447743063653217409141574288883623874877772072126108890647317505622591052330007859701142948111414483869297501325560913791468083028630898122644227278183438767312911713099864602925379318889501405976518644453864922628817439910825971117046421894450269480854481891491627189827614072202153461360718561436477810777861655125471018109312853938413889022453007638796470344210104279473391006123920927635512371541720466322143865651705922889732937857123922005551965729186747215157907716005329050720163744239768351364742622503430155368409308516155528994481108467504914177345727633161769763128792497340201963131226196641093671910004886623943995620645677232741362373613652620584539123374488618935665191718061288975696747133708129711273047557803218969815623662981502375900465299607744985907626109295607423313126289685448393475639121245803673787440863802647301991368415095572657856745444988013379387176842443865012919883597522227700694380340851938040756043835337367684252185034095916342520329849650797426529850683414698347202673294256502177135024324595947395014051155017777988698603649639953817211441394672271288989888562632760381993959596620293616973966415379771762252670441076475348856526920482907782164397357070182842604047560131738815936403708521974166882775996324270566625235227545895028610662938066995494208365985513229600273545333229069621752526289528913776402539984356621829666690847098555937208979097389321211393069971404716332254912461046882803859999631484916734507476947842607444314069473700095169367075353462181895563617843169192407017219170713685379401057493413931305102577926893780804929601374855619526244064737849247236435149168494262601213052912819839873367710253860381053935324915364511214215743672823082339003290370763888581784692414514663753649431036218229830228132720213989844955478466592824601863461509056287740073578357238557246909831874556267622786288679593194918392294394830336780860765623757995002348804540363420348650653298080237135305037768061562673909474061839816464874291787927983239740548066360404616725696596999041329141120708278611170583981472975955920701602879580881599740456321433090374268005213286422747831767212281686222034069110930084208545809592000820962297911275115876507700909196778227258452995015966480450926109161273805291537835010238586648814253271505412124531054777943293355149470017623933056790358843523213716711112830959061896873850707790681489899321326661452936253526987451348329621715780189648986342082005276624372477190390525768786311430970210641646204583035934590464767463320384565441864698428251917842441114754159829465591714809670135143998834846989519638767149960615852913714708238153796914228247767441355987783105357746421870479396830831328346586819515521865768472482017380098079502005211129956802678317589555810228878968692300815750207716905899100947110079309987260491809164249751940963912241762510110309898125601788972737036799168318312723820440581283246339099022129784786328696949517420461692326706795442661576970145029062064516358602900391233731566824735922443966205039903742822691351869247935815326658613465338051629791483200260024628080177058685503903269548633568102954326290321988285817490108303210863911090403070884148890348648908829085723731516436338459016920612591853321546531480916089111908226399313367492685483425385869202868563810918651488553139932417179828003573770483899470444132176666314657173464586646000814834225383850399666572679518113058300160424170945552150290772371244166831903619489675031625512734240282921816510128679394291419955518709409934576419747345245459211498554737919808795492602385682820796842820652074086951964360684431007887362440898213255976156689462856810771335249278867171936409027131909920978297524852587071816596061640352608736137193315506183253310947971167622245837553648318131591876484165134329853653209999692920752402374605903829301178270178749643047569104553602992179027319734928482388950474673077086018043484076729926405115017541159933207269117916711503303630877984126266328439879124276089634225232825016005276755446084521079125877322457601849864803219331891854678367199176761414651987020518422079953438774224947935214549515831175862915200898890341187636138763065909558336807090667102643013543549359884519640023106698203772692529733765408962119203264911472885289191671556064331556475745329932220942925017332344176120899918423171608274839440058737879387630420816004211885452521527168707304182162725209975302584236530242109441133435643384603624100892713943162902677020198806927991202480943427228823311506514978748321196775348970578900337320790264026590465808766180872589566544950654172593309736131628192606820212757832799371181123642423139096014254961900522747813911218256190944570327692837022439884673216230576516591397370014335066978107322574803467236806802736936086487534333148824790677550033721214311333357898126556755674016807734584147441012832703896758499403500277462014680974321033084169800557774799849877829549149130297495362349137261426979565180229844299594522608270215494749407720445474624043928252019199764277246835519843903515068781578853041243921035727143173485808985643810364546983508346126443670057895804102146037239065423902669165919192988127437730810054387803918618899446153824234167001761823458240231505247993936624725439995880338263385990786721578023827291700960739757909385150743272939543605125047600181392182987367963859546775005858343379099080484003322653520933394121769228212069618557349727690204946621965617594315159299490303897791426571689402494619443882581539537469283182509583576458149537051731313749579407298174171118219260871976062795207571497559274576489255864749246153084920381896901048041820285448682098664894258699604822087694081427672898216556613333830847956223617327642529011221689543209670271100638163662138171328154567991561572000644751687170098452200002626381015293298236782679067278543452569766788768266743637210441385196667118352362129891600161287915135893888457110845593993948876778078798786082966626000974491653598916666620524699178036846868307221546268414973581073763152656267866480711819185316792029376883771626498799732967088180429423402983048587551546565335425237301603020527930348978690409979036420244410712377403274795005830397986520981974266086381802460162723038276860080953752293940615866827802743816631170377846998093839834018174504616379219123298641197761600993570035151433506010347748025356459802933257315687321774324392897697773755277195004437947734050796470174009055487039776703600451988201037671074437859489794581386290176819761408941440128246364595897491665989726121244076933234107303035733389767620434780287337674823938561436297811621506159739643972699151645104255974510364530964362530132408780267525423154399511165576811759755582605842256548578469115316370118584058791558435954933921889478523624890542170834711241669716574821653213486845664343733897745368709259925729994739885251971354795046392823048133003185534749241560951930965394638531433998152000857080563649370349737476113925706541508077435021478972993690893765619657849895161073676736665736330835634954312825664486770469720260469283495494202448409259737080415206504383311230844103568348799998187811202177974120676720193948813046593469548067713995167643622764874143205569861194021127635750969797628377488479897835682384523464073929203897122280294273265704565992372661703973658802554945532234495777365925982750867751256060043795730566367517782392539770404543839677074960200924627307485415492254025365386774636418970659827048184522654286888274363578185579837123266282240657672849292847918005912970207525071480027855597007456236693161944214176827443687849430148243040957455627006108893890364568004120584916193359934029432945287196079384821618007441797532884696054644177241374365934512133194872617607315194339119956008559433614710974802565415177782189299137472675344597650933676442044471775564360851679609481618671448322856901165560524447410062512846673979656516991095803777592025047146020963022991073362307883752543614476671287632224601798934105191242447890697835165027231810021010404641951290721880352103775855403553053763228185231471275316338009213248872019692426257082183529396057557776105093051857727170055961943478727684509521064252974960576002947215450850157014302864239010816980978128745516874509052936363555594363012346409444126370899142149475849288751498104433174044680278736857128012790280182112119690614612639252856770111445205731634011204248908652328473976382273870597364404272478854442261846914467896094661467460250289364498564516977895994931116695730215203290489819884060764832407389992507446855786357126763200110881004769966625051483667395645404383445706588204633245924661018525221950527631184248289324347594822458107754095651867237157117357615490190529361438222018201135533839445523415312950361377360856534780257438762540279987254649650851157423488494879746071551541838761619683340977038337015602165812870254939598484805091105950693051915086684945099756379748804129496781803064507197947757712602490711812783798290780941223145366157960061798074533756229144208008815792901934882463866363141737691418110233439588643945136917802438542500425845990156072833969489090350042776150965198297302925906470218401464885605709029908585495845476214741171449171718396355238245135252154465465151057932398788144115465609872440198897827279393625562527126298240286445506358093634922318718225607819551870839808365393952767349392228097978578045281538730753312356242015793164887060805871371815654047441344581770316868364811817803688067457318634113652748279539969929064404527942826449243021920783944958281647019254524586266021527827992799508109485380827271597049149866067975790124472674158883682816727246431778946089951936195975841736437078500627135475827753313533807565805704522541796797105285826423933073876295027160750130003076424760803728409109782212368986930797347421300190360391660673741093488769875420114851342992592581335875697498015611261607856767550687608462992144922216363523691468569866135526960354739861372977697266021562267052307105457052637351541858917220990112459453424986877151794851507504889782681602797422281073814728080228835237734241385914028224141660945016541559906009142583960354578621589779194368588766907801916110223632345773640667336972474913334796331976508388865217287603104990518645084394799198173182180762034427887585006828856587670649689731852920545437168799431444273299010027689774121826752619768695215167496313859608398577261222576694794390820789425062905746539662530488743255930585002826488963430379418456247179412526344405922883708795196759965421772872209074953032570297395625015265759244393353126600654494935767338333705200724861699219623781397900676412460551228162174482794659400897433864018772616544486254899140982844259810253222080954804314496458177283282608531148360056736372311682581385511767062822330476549063342841212101507110799751098834262462171625737765995958925728578885985543226998920207333187051950508952019078159654929955355592915147507208176648088746471248825440070884294470598166809547035709096566463693051246632303684812815797420856514445089348712933504208680057774699765037805012689766926079484849657866217596183769613855575970720771468152927968777079467076859740072909103611090272081276323141497788260471909875955588491093189943750749845400177296550636775330112924385095101213082273434499861522836711734245588671524018029563428175932825345432691622357209341304163242227315538317590618946240405679950136277846119596590689399652894322941189197307040006138348185415042311702224164407260161594409340191057570806218611975580226434698274719536864640368684274385314079903431747144192749493838194760361864240994940219552119815304053133072763490598250718467864502165677728465113092692825514724783343775687415351389720536394669098151601090050754260370047261860681154347104741098397683529285697355855033770147022506860898659171810603821211786238405746304808961770845317065746295497527301127744787885512052565322693409733686292505211482209125209462286811395788393897885298530235641966519244145593096667897280476366522260286661484622553946878442783763630319405067294360367967458727367772813516187014907711289017150191696828485399476155210308072226884276535340329758646444113181864907759972501925425899758762332445999654470591176683447226338499318728381174293168782962352339931929070783899182901592299798085577887240633449967961138968487001721808295796752521358658128081887042533292918649219232529788356567999099181252667679986866028409409459587126378125511291794642666644809702255825365024443349541783141126083370832216529066965124796162452360020513151946787568200956686651254224295310830809360885290584734224527570734248693769850310455630456544715061266089604077650075319541322434068539887451358252084669195466309022865403489242277435267388539506267308926745582743110248867876304833261739431782214496270918756617288597557777377020712828696044188529604811033827758353326122280697522042121311686219384076046139647643427043668901036786763710630185553879874633480286730258549642031903397622006511084436835956558135554738021823658187565084613868540272668082111980208435558648641345685794317776572176170865592800583224924380207542316866917226045821987649278888808251009046617164008564690595719861988702744187652273046016608901024339495077680687064175529510507646303928971020424257804082141504712877758120580440731063590246288172389331400495523348136624899039905863655713724771980586390065657402023182124449198053141636309820553899037496129585728299919069587363327274315308447905068392641601106961351878584223142168880948603884844188432719336389556133685651745464769159071011853276073121308368284596865633828168176517733141848290094116976576310288702675864861103397711816242565054084693261965309503607892667004899188824475289000030727133198892593370066146736839999758567822186316570758106848666875070604647583402558313911325000755389805617511912746998506448372176301873985795856073630589433057297921438846934390877164301715761475297982679857535890970613886512489822234799958088782358265800976666238787981655438945418253718667329604880747998902119626506564663754302214528184934731226962368087489127781984030232988743206309603386540145973768830862262582980958414773171465402495561516417788817437705247409498541244192479167034485332468914138682247973692444431485352494483631270767606188901876277126491985868623432865034110783493372782973244297102168046364328223680099431083464349367371903068905620983393833138641220936781381761380436437946981830105407569408803613673704256657161675741755624846734141646113030300280844383651132301755709781185472536933506505576943073225835443013255668478282035373012634459848259828873784317761741549925880874229885507078436033309538427806376996670907575008178688736945161473670041761684577646331433385308366083951758749109202335203175866814606990664431151946941353684317489297051659095894291695863226132448285816267395356105427915688850316394646681421378420842599919722251553546988320175260181194054029985235992505256156117692899820226703391208756327341825377573632622669999448746095798631406763750768127825570727685147828233660609068451950429697652865836173182104732147682780115628191479137497003457945164496717674535089037175972837591337521200154180309387872126463705805357516453773920307958470078958583748720365269451605857577565805552422993157432326875993685909284848374700076104637350189523501280405081918011127262013537476449338109487887366478736500401187328708218599832233674871046164108076706339935570926974989168725457706580689271966696678915908433877851334679973844090975100229727724894996113950760446337971868163260248095197743587015145457739795602715303080350640462787446703020489265216971952012953130756337368498244141116142191072067945032181227311042732364151569798639802152640199747128367258760786796280322011812007218760763271008315927764460692103309822592829914408606874057320646729228333891169390250127377912983090186052817737516560044339215985368933347891094345154606600017096774273329901804375842857537075679565640512482009613698330645577871426829220247083661695857026430509941457569334626434193563524962600156787951591869106208442696946917293613074847060124184136634494358084884424519796601609656987953954608923933522260970685779509540161000123072496891371538320457169913813198977470762211439392620079515152538236545653751674889615354453140287479527153914207723890043808455356165706609486088522177686206414215718186537049889765190520777664843224872193977244794494920243651929401728909283466836318925677954290411552946936201810305189284208556957784430394362163039294410998259388208121765038408363595060865062908788334359751307804723801628991980617740410005329322983274280349680278320228351030557169141064906156763556294069150442575836661426454793420396969454666853120890519778110564734627551770468118370916483968881267981658978333582382628930003610855729276219968315317740039334035380234193145201618673654726736541887503757089765152805130271311867708332950789426296037566626990952427548636130346628827900664205982040254159529088339601107412518729475844333222670711361385174095818084152840036230008239141862672713661043402728670005949454779920977377839328531428271575789016087342794802114407353405675309524810983322396519965645904148597789708366494369717819147734338157155150338613715698150244660837251861353683313345751618434424224269582628942541206473250540934764089985886561615732148731578525765878332290464131371150983981871570971561740407320601236926778427315993866905912359041864061958888876144001372751839178523374715230808236828709766942543852285711571624895788462092267541160876241608481410871267781038830930981839660048127102581757396114571257468265451770477847494011227158778256416160584714185643619959963129247927488237861427062539977003541471073375802623814737861929774987852646022107146420595229163290937393183369995082129791867482670473497454056696924902648112326519217529769291767215300769521075691423994513199962165541441532337789805082443246129806184583270769414840646999809651640837028688400552325378181292751125198985996285425735682360113326223105618468911293144095256498102583261608501206879209777665588963952439391024660753109456341095342271965344888499031506074964206006016555346946571680197536184949425695704173474229953730153186228282911570937660966076640423616274773912292958946752009274262337516639426525793713076512690667074047272248970385333933241197561244195781650103849330358164963349069166697850427917000697585710060772689716247254885459507918954686107889083236762236013573648317698820877238663596636604147219995833675420954068145275614973032209977442818986187281841415559211548420628531032200961453457232039381010625963562889003842380174328246615177558632274662560161703693365867692061198152080171049016103451262783764230145026239680582787577362358903957049035709118401202548311071120536590408993371552435759633746557044121662841840163324967514035576256664739511631894769988611274698112592301455906992205009779889438606451937690815342838299476940695165987112859827114256452239006826111116738602780672850350752459678556557652058523883807428687779816885805934856347389612344506187530042551413415752749997073977335207067939934592257343218183592319238607521113098592043785826438786643499670179396551644994139278380932375564127712100148596812762734459350682662704717171931351410113876200337761754018109370489132703606586105964721486182044363137719794821942775247288739765633095031336978238175118116992344388777711634061315709816349375800453715638849345783095941206258340519462855339498906538745789333956986284311462864090346250895680774226894137430991827445417807403143093180670199108073884285149018904335589350412858739739446253266940576711133311648447730510059620349612392915760183477785696843879153240132583011343175405550719319942841449279384776792217503670167831202306578910973647496460041483936937033905146995174383942818115709768443616441351415304276623500793779884485432949401287598709995006823776635832219913866719067624906280237255352902759743447181777403588160644637252823213997250511829412241858012277665136398557350146525381625725101316691528650711999832995710900469851831184085050298726132724792231366563321613990258317953156633467548061234671103503967540868376886177942592636930595981308785951587789334302599886872876019431668308721151391991193650308971157742989551914623026524694300111125747928929958881825329141005011276989485210839806731524380743271408580824492535862089946748677274694912918545093166997565725443304392894930713262532954417791223137841197663551738250473809266051202250198356946767198247936684924294444844503252077791469027228607772278092644054760515646320247356815228260310258991994617812803409705425055752184030909388097885854891993424291711767667406452907625657135178064524987403390636109453088761145873603922734646615760461649821809448254952112809593458970034429833172393583016422711456571354439037444320894458697734173390531197745144968495655007714866971388644476290166696962874422252948770544501949347852277703852457840115838259026353898398208303526789463758078240467792025034517767433957714944664887112986422240370509205732213202456424747249501002827552965681897126828772761502393622714512697955687773711697199440727844676078237369891831257671089063226978342089204940164731266715093610414178536402073034724878552904352778249125092801937983004959347713603223233923220790344078352303203091680017115169386937834651066131832644704203160260759602043481225428959307820824993008829186153931316923327144924784363893487955325999039049311918685561674589512564700737151383493932516308245312826767813953045762607254166545614092529815606657108024189550918283027184755133164321489922868686872589117894229971209605134150445864134057918842816580989803537841502127975756725058767775718153716398057244203466589998608566711762533239009775855825626462698896739891726649136011601295897907443721161564426918750521764800009582626498769432256057142571858784066548179809788813609655969139793352256816639857161955252406104986956112325109517938541822271558393394879338679129443866514301968724503492243229582446501093223827677513266205031960677768134957127817840187274771104522876914059193083818840389219293592809558406707144783255143567010492832838230874589609954277916563209391459159609321604767820155701242517197252802510831073387221251141843977903036322925774646867158188779662814330747667205129442758698164945328759131534126745970467189762426530560865131553798621936234025849716431988223356137875352658064923507670755577803340194244451877973888139303560374167642721255475981869596961427964249864112927449545113665610803831847939808017885479284559569268481069181649777004822190897694597239875898777636855343899643030539977876838026199503207723421850780530397386653574086196876994281855767340289949867816274767435465080443559436486538966407116085071359378977131915177974145138225220567183191673980695403327018293160614433156730993907928267206380357001404386631086103564439261315505340729259083841618885698199987163351797631700027808040533872187434002174083804830044325504505051707681061867699196339090095530965907726598668885938833636990907247187584631428159402083535238094224501259070041947781472963216153339913744289231182324597469466758760676177177237070667014188928952773839153868482522787523848971201339030783877283811865427968967388766636685472752692387653222718368877270737337865185447852306863694385421410589473217617387486094354400769370301061562527612489135526492053222090914159221489109592505865710195620353433105648805963631586669326870521244789217772628367144932338660099914684538943578430163647950187524407446960129984738733690643478379400868399038185357745165287763557975295672356867511039651892318887377989124297799850402348907286822837126186604171695581587166596497673813310715065645832915894106428257400793472923632259527055443852848428103402190632543552820317105412577772982466961118010165053590129717954649517300132110583208064560829615632280708331719321162896049444725412413079162924448660577537990520204649080045914009265182485366895155298179769659072728435615287030701916456452815387783999532935021865749583485075786865782240498380784965255818148721365346335534898820618335991811912979895369164659424090945332711554877468571287955917181320049545152371998614183887945225895088843237377448851206968808789391320685655680289009671064537150268973010023552621363934478557199220355778475423991927156597223997076138116336205634584263715352633967059393369984460011487661559110967675477396870455332834506984964462674389393725247922720113241184738710730893007208671036858205467860020247561781884620965117076383687388738571890776714967979741701219345533213094261240244663124606956235196620438563536545783896761848003532195641239458313371627793914102710257046631932696977554172769718891749418947181681072077680375488291650427300963033986730166586891986002554047012878080149780438604065926042192486964739226126624123713127771624476790154016813509818729018105306848539460316067819699091005368702493324813444637423035450636079928100802539094848470120340495643510150937705333080681280757097216217680998994876387416787967814699668638340039231556889382540937837339559185958473975678343590375486585536859578163353679675753497849311632428131570032995619981467792440653859732404827173685533130000825557900940055942110285148405744296483402586314568534004786159344561325173661242505094172889451935855005291785717178161215023177233810755902846794364526016140092550776640143168888800472457941360481640093072184420508189278378127379237184216279672452175656022280225734756522982931334627317369620670879509896641633510750614767511715943872131866714061374882049573554293278815606569099480604954242238950066121077104867021971513076234644919634082836748690277537994579382118339143594867999744116933861277486998680226021062723222325537590052597237009940992691691805426801962409143307957103281565149080514693350810385858814229257050097130294403287814157943086589149504561183422948019335091504365281304810949399337200536705281393300342347913549533142708283077929147358776906720453671980723093387670699113893926957709269565418156207024160357576949161360851864098277343777761091963985729771142854983220598767808536687615830985269031243172418288620017157362852722238800218436082597448940129986452910646587149873222345001882062090972086802564425030210691474421413513554192865439301195753710543053725137191985429461458799987231292770777083205120550110078668176562193041313595338110027796933251400026645688624127184397069752183504784996202727042755976558119303362563968117924400579553917531849921462528026003048033618774992606683695708355487736665877819346362159781700956377661209804366843780161123108473845660097622702938394529736302307928634235299485576102718954864161581413351772164118991545024800468235637426779374378799311239588253801163282193316701723668227356629192682375763796268122836489193790006058480917206152524331559904498835602333377393693364884422556262173544415376963744727703513083135869715075055138030630219238326319614561795753484906698180533901719909408316401794948811761498737965151877925099198153916771752759305999687387719873189014163743214153292761378256595373429572258828384342326188574615652558956273621539132787047962950024552475675992487196744319266053842021881324383060165481653329874681329054521560692582448432953256982466690975867774474975650444240484779682275839817317753474682738626073582216780752373063640892675027324292628910661500864560510307612767384566842868092747638828722263611174779319933639358472798340457245969502738731483015900080003716907249384440079621603504785048723015594824384901741858097559041313987630363102868428116144845960719070269428522493697593871336637209200042719543086448569558657170932218560099406585817875914155998687805437031627432399180065302895833771934545783990225748099356699206891752731255132495113691590384556412332889237883572596491088441518463365654074316562884193440904412792600645039765700172211602656874584307374444730663210063623160711518414642179475059491584597957398684724628645505920789921179149114432974162277630609340512937699632818814377730085009309516247637489872207001179951916999071857156252141312181887695420493925414332980704422735532654714432682386112497616368676709169368051350770864885184116071712256622735693852963524871766650759918216663946936799638525047584392147999466772667564009800459548636485563980326889988743852757303528084788871690370111454743543261882010958837499891258629015446982152155725275224472021825855880173594153806813286132737883322295225360991878967196759906358792959170137868620451992274540855819325631827673404761293849871156764076107861979060943876135764380981307260822303072888433793445923935809475911794190798690869870816798346822851676410879148243747101154280648840089540567283789147844745210541807603764486629619466469808662873340506293065295469360801463488424816757290742170309123167524226727619157578317251546989136789156773510063826226171461245034179531568332921042705942648025964904352688356694323854819369543675708851727550308397889356229185941647822955578517785780670270647431319364632732402481144423799722080212542135033285634813100836048085729389363678483523111613448297478576823090479370789505118577115591000776416376188979650850725175297709131399952257312014649742454710392948780632672929123051333018472744590809799952947213952690097947042602771908689844269611016889055528023724372534028903739252398320693607060790439929003197352716114158519262835680568156673193066170488092054999529832181639033886319603234137646664611728331801817845238984017785238595044174424075283527645630649487244857102735286911128727447389102172589945497220252159272395955807097333153118889659100766050284467266886761375081557414793720534043721529240882780849093657019371024739289674095325687298758279688409884211660206365040848298503813688274855695908766630366653001125494282342343199384822549960009150853889778518870911306682813584324596268030014956959115044158040754592838750313838615822760751939358757530023117954969018181522275552726471270636777718172896492215301706323552883106199459236766006373123712965780498914750020997328321080238250134648238519485299044817575579784250288769292644210819645999301120140808582192349942614750561840581437835110506266291620906160773197527624654849741748717903674293193939379952697775959889375708661059876470259766720479867595447599048766377495740389201801207838534649335202920755156736592703123619644503507411528885340949339400632175797571749569521830553677377039650415578975670430252899560072516760093791690713720454994158523186172675729606885137936944032455936388520530835001738219513797395777332173615276948028533267386506352439244293369689026860361822567244500707029382150647687293589731927951405553961373838344105034873918601289592828947013084405826688178098035632422255162576126849703105514050698912623814186465493794378933804977205197473947988168298110294914827997530996585321427997734758152810668014166765952480199508402366894785504312099822149705378375775038203009712045714347361948911143636052983519700243739071801368035026687927691274779857949473759291537529925750513096469590481849757029285827048869240832328324682335164017050725962510599219394133560390628195429885131841605805864742427050531277269777490478720579453923244137532655776475329989524817655001798953123909839174560199441924535348845826936021362466428531689311877629114584771603912102464415557872219822321963392527732904636983383245034912694709474703574072563496852896839438270697168101770483191138302462646993917477025770437082138078012210649376096727660527733831587921817078761412136793113781323859700610898731011667124171750285648993929748640784750407852667642564288193919407196091513784335670565287377600176624815693337271875707864164502439359486661941241054085103154768385366032418437747335969890792951207538448214302335603900592494150009973061996935450744309261361344811579690540995262519106908215490488902862713617270847568056650466777153621617738614596823625229783785008703015696728610585875676404563239454740112996620753025028924954087496408477984557304432587227276907286218505612162528122693023063448947689142372786535679817506157332242238963383051780800501262013574406330713222937447346878182291149938290454536599036642129399661634184648531398930665912448768276764806547342854859933390670133374463242110296910015255348495595294102649109291279562080050322558806999157109933663094557234616534540064804144918228959005958093392913800459322900598495718699364375420791979353671771944418735755287846709420837484460769749006697766011344748213730761125615875030825997710679750546582038884580379503528136259979391392029651685020753612271929724765721340058907484442198441169161900688445048466499601363005492459883645002874364076119269516118154972950572239111650353668417695553910367902504719658343167311998007243642973775550707857462056701326246237135865847031964747426492273417415563587514121685050060652415239339874283609818012533432379841091865547942437642153212089426224664764389271440466614764996863460572229844078157225438258917102754449270271690552983041065524764681142620191888698408365715085607917916167804342519682890298884381664154667277790335095270017525300432201382796363080127672956757376044248079757333869136132328938896984968282346995690943553670837147751655579663229925849920572983440378807135736396482965839484727383122354629833920516917209744989795277251136965151458789146833067128806145775151488988799304031943983616695839603764161566009301733157935878583352463111725444459270070488463258609584990590099962611786303036483518598267726036686522711628741512536340518589478311889077872179217303937875080519175678965908475178321641525687845551476913064456292197870646491874420057583393498889157954202535400585743437520786183987260768266818226256570663849022065227050440396277771328512638592781023463742183900009793075217412004621591912044279074526921291578072709887256281533504561067956641389290276870237136621042041621673230390416208582166867890240861453360100192610329007801151384531341471923811477351076932865453962603068184491124296363852200282727148283313120974270283496607207973740834422202198737992225905797686975173695263011194807872404473528503449438043914456940872177668254486636279401273342573790373161226135029536424719739177445597320051192286823922874719097884432808262143204877725047141309098192837272928193194886274061990129139688158669020919859115404029417081706253937598617228479552205026491630837556790972566272275176039532853793466824750064273882597368161389566021617264179445064602617662124006748848277443907312719569890261350118451020268048050065428698606798227847310417091815168761426069055468513773240297604929142705309047798031262711159287297305185179303124178156722130862833809242724830690337650972938989612983960282833689273479723257099367639671583137584156199622935457504600415028075111165781553622040109666163772024543523633296402225339573442657102842429395707589188350786398271050853772652061847895106429368054990104830277468174558434183847615299124740733197530958240101523080789752266916741172381824567220966836620952726742093122786673802157727089058660601935351325413619109510672273124923531934459981030389865482462453384311615949577530225668463452054759265232975060754545472941331328259581999807714420091379419594400433078865790185736844735639435166913415153654865218364304042115245504996898314480112744952984843607331544298054100097492233093732303617388277156043579182024037478326584140957752485055731585233579253059807171469751144300406640652723918639343606741843473599496986338812148795710625158662934946797149413202656950786353506195544581512495701910695391800918907726258133125540733164395510228733716139266274727978490767494351114304263364818213452921207407587744917935491102020235366905380917231277091666071296454767314636865176275681229922066516417686327624029250244101553559069495529908991288745159469552573683167806730624572110541792352574009498605712698014061059799142652678191338176269071809210054774350568965865220419042651693555619893423147679014722769321487982390942815415770634915088097438856341588804060941741600719232515275069267246042235329729007380277322927674721922273742061419849300696693934566942125833869661035876410330591752205033031151408911311774205079355264932502154796172229920464012973972017596514612341209406758562816783563287957843241536257647080688737376966064217468931881842352179415599677907783708211463639029714621956993464431652659274787898124441142326413828631299077742194670194235968400318119523527896748837650288863202398974022571624577792135743819572239329543814061299461787967218611465325636778756167026414784187779509593099211690212237832512571750554936363385463256431299276978650685283489569577026937087898985721006180241191958075277769916949101629032691720679805952444733983673862651183566255450108891776376503906019055533933904804558315203430733059488144981641072685995122671825151262748374009532048175330215578001069996495907921506592096304248540164674351717921882763580983187806356097517575139284682269937060062498884450040657880768861338680973777286913019759171141260186640783859362343143004415917881109724576429000697085054787097746757422803542882273870691446569540958190156233570977556839915794024818570195287454901128188753712973255159865224538364729612252351357462603454198587265352714639070109528104910235860838725668689347482268810267630070079270450753377059403656980483090152545937583752488781765305874518986525654935098724508562178531334109200356162358020440660806012827733480340553552461095566766118171573009091465107198216231920844133491403411031918178733396149430858572693117505735443262503678947556127360237426268217623706682855579385648003537425627713578015992025219739982957549299358534638616384733398734322966780621244722976270356321861591875419076278692851650107414544164217695582281969284667014221249524909399305488572977027600188046364056661889568936294192129978189056059727552649354648929045523649991681247644499735635901979598585929433608918685540317096006431858084287125411381091848144937604343550248886767665757340446187912813126990217185273581523869657902696076480950681762716560956774123040299690257594620727577899174316970711652494973908326413499889861884599760905123420726073896892736973696074836209439658450117681554268125036174284331946202514658819907370913291672490138084681925077220667413209097512375454217693886552287935767137785435273913119697790862879626291721924528492719267601183653435872771549771465664949166019567169904131306313391483444260732018918722595592486712750735479898733909849699714910192493277379079694229360018121122070206800668366290794447931556878059236496331895111600045617946156127009501150789340385330597587110612666678459952252368931710409138798360537117849139218405921653301221114640681328456843095168596833216587270570583520992182388853286118247461351440536828107912968671713884564789461638636854963982448598491964314849599144289927280478768337346041284030738898319843818927514861624780301033463612060781026243082683397763675503569244081842328179644652804298205912519639853486682981733587073294995897687498048392806940675086993600767451091328120703505469502963823651033184538381936333585379919628785975840304847677221910422393599102470707649910490833040513557942428454918033915632746675146106068725291673978945724737377619011284552210377842055179582078269936529886961194363879689868563520249784088899872643413458433437229430469973509267070607114175931875926736716371870965307184660297477692442476887696786216670973065194457309069104392100070877900434530250417719913309977288062501251072384058434011348906153316481269407370185524145957829959976274203242681709652812894329523567094535766983716067462636756780850651184127804114885122421537102243470377975618119817547440792701365126764275157579546612019774020512803187992703331400091228156223626155288455840357305157484251178882295065919920542775517512583598388501144598189396766749807496832025746549041228282888846444067325740142922715583678563367056791007338473507496224483241495146542116746675215920029083217313151283271670540842304587312665936150685557320923866316312604019595613172818842845018107402102079062758437441041634573908951712936080021478519150626675991131645856723278045279404140991997024143367641240313024959509013956603831341122478168835487331879170360938489421352247043882108573740917259643095368678963483301280227146195633622050393416532891067788923674147528989026184700935648920856992470746549182962728589517652781687637801744151279705187253955949869381552039069885628297231326120976365444080948269768283254083733453249663004487615499615906902475640375883712905483581339446940035517232173697112113144509806555188024138602965979994971272154798286098785333575232632301988273113061691220708857196783842895103958091070800881434846500451362547892290482443865257821890335062917390533921775599236071819167661445303005856856042646055053984838056924425059978603314100842834708203768780388551652732689194755442962416632593507626675303130103449407334357436546681792053951716924218983064274890784798670915065326519631434899114785309999229503976812511224892830746637967831543191673713430844462756570114883389789838615345935093195013890956427655793385909194173299623151924245535849201270491017942140664806248612613969917557622969710107922877312118193263610080846351032914210871063358310594828344099851944987831010640002149015854218813468241929441545015306037495534867719019258713710541806106975469195788507103387463996184596683227331343936895602782297214413111477861761290102062458857523216597392373473245880911603309968365130734275165052414684474083912883142341755638184408316289599671958887660361747302010029870513778680980327256793398625544275065117363974368167450123920245469245172787190412342996524375244635316932323062928276156381575116814030087695529587594281405722354511892858253996903104708538247751304464285761722786299657848239669385399457857190760176122675558596518311644342581404044465039483132471876341030434256689436331780322932520007234359802298931675145424346591933813221251825005031778995607495064134104030167129715365646583272259593424628230102798956052719289045800111637896217372189693151218588129227823048079810085253136216190716126528048097700176495403779868015483727701145468986478684920853477259473909535205032649716653673433714937377661066305725203304438189194352584589200501286013974678187147438617091061131075771724902305215454635415855981712527864386946785155686762846098100093714836758275017479682431347949837032612781451255072106791174744843214192022080889292688750846885192591211104472624474783453538849831091442677289728704762795455188259071371478073223558236291970324755559211038610212060563538357865540416480182900161884331113390331638192262531002185942430134755081023261944967649598847704178455254328190872210899669295138941172471433429712678128055601077860860074866786859038371789418578714313163798926633541588664309698668194007073744619238169386546425928770182062760095020737885757417340598570272020795895183519238244386904423692294893859910836837236710612551933985030332067762156142565450902517259675050765960514296529798942901730065435681462847263697117717585610984111430148945130011927624496143357557006767036951938016735728471666903890569541337143738732769325981035407547133459174510877094876752343798364682605187737089565305330481287079879187734648226300108630362896311317714546171879886105371836325511453079773441746152631133183693889085426647438607907456244711492345545105815684735636662176641376815439739125824355896083612382122290709422084476484316781984928391754607525837669988727841093967075447215585060042608766374962639459891475081821583299953047213831553999008259832626135760637705423956433917353406831856807575024826147205006261425050733285502239333126714053375493375558604539218490493895188679040806038025305401245088901035108342553144761794239715384636963259599610424963613587927424144968488314321431919113619577464555512560740257285362967909973623383573189745107330768689005112326111554131325519685790962353715260383023645385105156873430052849944306567771606321680014365348755169824327734296076862362285936949684041582808083287203652777197934310266247634242847114321840502770282805988982209037924627556236162348358370434544386356772869193659902285340358692693060785458957142564929244175819227630872168987531556327740273459668240436952089442058567959503682540446952742681367880192955420993677826553206582246403792038097932885294323712155072639599102230697628044269770004716965109362598590776470930442790801369133933782532999002025580304532112832447141212706264928548313430095341525060793982830498112266119745608045269634790033001156597700955999300176838063811949532258274173391388899613251863179162044336209486810665982584727854227835917731181999099518863042804768947982260825086426189970157723798714261463830468001610826869307237194759920273303976927130451877908511468751185716035431150074969607446257778986598712292312063752949364185931092114784679661715970295288247036338275124858716129027009300795943312182885119429547478762295043662626678885373689780478090404675609155236844854178240872037673854174531518040139383130645564199576075507562863624897295821899890163973190952386555244187243306594230781428809374715007719431108927388969644883851400535881499671823330953695964240013769187137666309434055299409204063378523267563816630489919782382520493652443135587275131634900788793631462711790559280778652064306896844602019758435530068305795288948030482027669584321190201768147400089846153335740180222351221208481847453654758289055575709808832103370499460178779083998311647100432795825971153685152818524014586888347377194367456109535147503175682393331963345577796433504983591849589000255419335517217386893370980730947271123407785381657762537058860157660264483217011900326256250034569874043469542172515729930879602255367734278041349488560953545190114071075854864816131712192810886287308241396737168101612111208827975609733384460783309179175944814800350246623862136957871964259260847330478712334118436060033491741492003244580560757652402541623461340584329694540774517246608395728178798511530069390177902376960033762510899573149443705844455755599492149630735653260852841750894264189863307308493441650426392834335584058267504666977440822403293062171709505689794882530295424044503222168030859181457741473187971320359814877224299305469712215401892998267348326323772034198734717412781781597864706884810721495444916504796192254387024112285367560697167452112444365563265508348952752419033052160687229675335832682079954552853613438872012721741096020662064089550944156796230784387410090972406972624510374800702213738494672817318315852256272669626440703319863444993706539527043979156194515092085938278745934075489963874879285177328648824680068894987763170237684794540727134874130641614161383342852534248187945466643873936952631399237623310018477890114357565676370917891245965644923886135802793455101650030268241972431745450890289513876505645825384620802707323671036703560826053191186456856807330641153974968818852737272397788340918392939834452344602160908998576245003954318321921721838157502399015419572709306397799368156665447564071500678992036844859549210653438308841240983795682349567752961930083789162025633697231636734483818577103193487823547974213370005326840522975678558448349281226342269851953571540387132362975373570135448600710410905718792706279038216389932141472249910449174983965838891127881790825382216505685510577411463633709560843581963145121402543213421489865491700671275637698361886120910821904693668710159288686348091189749594143093016753276643373624586161773417489970893395816863425982874134240288529301086633328904196622608713562086893882609866381117890587710848132589699292651089493762639877939835151627632195977230048918657315756275621526436959320080932828884132509558294627575138213570811274287557573507032069918941211292622916856350371452141327515681774609093829515699071382692112351012589436930203131055879244242688981772510279408180373984994284836151153810968228609699113969030897159951422757438447627597374346476367003982305165455418601724154637421919260878820500594893459900664394384128173367845816749888967833279315510934961016225154774269817363976989750511469528012909402092037328391246697014818334558529417120082994565764082142523057907221963175367736218431435975240886813737362444799295199887060769992440846150792588271649045474694063665056172657301070519899565258921517853432759248423389876240243213741156151020087007899881155392139226819306506206040567126566266300181096574956499499274561163028907574878681058919559715789052264700145782444367307415336319616785468082259733055564826825222388607205588119892940539140269659064956447487384339014284591101401692490536243427346820294281182992698181201128368510604522227316943602267370625645885815392670312997227869370595592765398910292927539504218980114778344395254576987889162945401546043182597735580498282851787152782793206824225059965942741148766693207510410141333070486041681206123390454177666209239824770446837039605781295257302214001694621884877059483345315895901746887374089624519887708976993171209734765794602721904428460140458022862310613245778592419303757478450586219892291295159423272607109310179828289431254019696600848171002124720555161879199035384702741363537648453726206877486112599674050095279509241494050569201438624419902209813963536325077424162342859426217248858047592544101610226079645111790463617120086737158794820152373926829155874771969338759222227055084977764329571321414729588390884260759619781580347335289898933819242835974333526793063727927374876124721634542481307613571809260490691659503739343850248973194331873914347722554367167222486449489985975502012914517834716418696796376889485358612485291854237996267446308444064840461701148436490187031968771903317975730197704354356328658302093998611392628755301266667918762019109536283411895278397246737322390371700540113312652498719261039704831088802510158521309868176100900581423735557305108400787135124525436648553776617830328237831897963027381806274760587315826123775237973941749306171926330773014515714782441790154493910687753711290837299494992431252391460277341026675963381673696460944169495472939701671274019728779120517276678311925256613517672763270995389584300474380480019087793701020381066613339139240076331712767798343383954153850150323285301404361753518487887873882317329104367123467433333162480908075906648976602597363213636909847095454791236591360055616172207684596711554699036935739327634321170158708109323171462573550829566518443213338732826345412773011189480049427515946115538371744623487659207655330679482245639279405327601327321630618736786344018575112498970283487042719167571411262118312463350235035138281073662728893738381509089803007537423081172583470158946574416344282383486007484273571775418185453468747072758210913638003958075197501027799949919812982408519183772540183497388209773374491381761539757423313742045473041260954067612025884561660722559413729115559638834776813386402762294040738858445968779447639463453190369266350603693229897730019520355804971620627034823730367904640527059828199300984170791017502380249823732289844101213953128405031280196005381352789517179545895426956471420914037343221060253857257601251561933733154027976961008980683964412603593219032489773837524939380773831258262923659739293270408283899129265897098251352146849838586378010318235292015795120804699194511277860801073637371523835167312638801337454413376817866773612159333349448640302279580361680123775420253812016680344740438576591697408282190440938050167124114454521224370318439949874017028823177577844013583142344897973996599237266124237942617342464779766758146715068765100332713827707066867376408184155622135480702788939677515154698272166544569507701696817045844411792198969223434081746561784110683708494187228637769465751712308000148105145233881655720003123324561720833043907503289099667012046023600940357602886982286199459314140154785842250618252255225450431859570121957699731247165050686602862231628774387748508627754277060045653003921689457320648326828859887729307807998709615900917200766543412446849613381547075287530451198324330311410069123641666979887456702811807160888645651539368251005849738287381230281015590336357060740575099533027005225689515450133213512056061749103262791933744886167009505417336468477847464597537013243950873106704093202494525494228468637235017228396718587134826899086871221641441056891852391234632142119400559478881540256337219587677589132307609631825518787516075127975030464170245807075604835814968864553067488724005271865917326534116161217254729651977699042033695240021499454486332521809296959067015357941335767094180435735688155300950550973971512307476929471533748427133604857982835300282279905739687269642418753308455874267212792419158664583322771663967963748983623267894837917752860184560831964523928988300054874749341958409327127524625240866090680789957842760745520596560087804663406991833434227782257073613552220737355503000423531805391881721125442459757483637893983622735243393643444233148071928684215721999654296972179262058358675577473130014732491610992309100037548064457047353567670370221839871525618660695481084979730001907890636197082766597060909499686369144324894124990138643509487071926822310382139179737739259555188461374714778763854284449861695155220064893038521567326534203441841560592035862977053283009373365513675210677848706151832722130769050087392375971564345629729756302696892944364567674836613579095694943452950940234441474926422877094937049972299512512664682702665875261933732524092792820198155008097832944968046098238577295542415692587273816847389521411006125778522355620896074635393814093860519345313784894254463494421866181385647515274056930168317594723699708251371636840415272072663362895201230328500360832986853353980052305805181868624200432759215461056376862255770074577197593118132168716387314975127674350252869061156650571549759490692990240285462899628359059763976495081813658075690296269804571704913741513895163733112922421259795647948631229411656902182998460474800412726502840605045493577682905577315310722376913278643593381186269945220792788635311652672102643809371410789812682209405474544090519982693698345460808927066532431054501152291433938186406268408563828533376155873964714890787180446595517922085161543991141835980252130866773945881355495855814509171181438376718759747316901099391536089332838743524139024599222039102381352782530907803023718811112193575513413283725615651592133229220334885793424390604764092083610899814900793741838289686362347271182988685284821821425443820282779547310153331956445961885813305499996206785025215209165649437709683395542965649912241311941656417360540401743914949505924318427956902969861381497787071021594046735464749721804444672860032300437414213853909668147135679616397865701725647777789619931159301551175888216741388584044217325290747066083865633000752885677161764223925036517585650876071881391285308560960936956428895578925207431400953282047261348925757453111827078109448411229284416002031770836807992841884690979769322191495773980803519145865764935221596057438964525267210720356931768593683768430894618483346760220839080270083537813435995240005179199791197140908587908745103196845975869182564903045547297178769052635681980178747405736186767121884133210379011174663569050964960575459831081376420010902893222269271806936022165381779946963826264561490540315335913361136038445784732212577594055634136724496437843885185727091100875072319739511877867007556571685846055125253142472513162845208039906600018773429091658501167433970900234152153589359584749325595962741968934909054457330096427196851161518504183625659780051708122637537550557254132455220108141078756516507465993018953822344658669084326781333010819911391211761645603059637734424111277811825974522313656277563623125774592072827417188923646045963267833080212397403732272583256918799842099285026158310065483315677990270040968613665538739414616350461416415406618637917350720750444206301902706758117940710716618186158073007739813574931233277798020849235379511395961206800355104105089594061907748495681488634979904256655765505167802345603274557566394357687051734683362037087962837259276504795199416164391282367761681691153692274962634501907594172878536451421678332389417753098552173812984529944113483577739689998013989222813241789992092609155071544332324361621676087541374255644579804667374962954763294920443853053715640290755270557789104408234319848766449290917268189505134165735640212439814864650205704287811276308353126273280637582376802494886627619887162700764525667744067677710085334489516076347388501149522750949063415630045262977314215952567818510321248447191161534477157170099111445735546341349479392591822033759113118261706054189994298784949721791045775256119299980417033688237874107620410097804906222568407729350502764238148995347441066299877128820216590683278711861961707721478531301987912307530809766640000492143483276399400061845311251975769979092426667194565688160643256133094703930605798772438383903353148353052666960519901735617666746545047651082603696228130153250048109178203844834928266520534851574788657923762036454066370037969118056882817396047246332916651969663258518262431882210303250880556296377372801733333457484338677447440903230879166646897548398423402969135002150711746611998298234423496566409262383324467115553089979751388390302278555912134151339174189297151805977785441179755962523432153044137975964932393519145509765291789812675655949565067845773186933243279074987351863617758763985947167098339999323468333423974260879386680845377589882686121162868308280963709409878977117694154077094394139879505697981529113723550057587258127589293680199123049297030280123502656645046801040197040190044369726032837786811728381227896472007644443399653972673590653155643244503331394994252365333683924731384276940810624162908572943880116980387793844116229441353040783037846496299122300179934686947533711716078360684670420410483244264554072039357434867066661567842189207820897815275997316384262478884683614464676778125253727432442820878320246660210551646480426211682010815603296066405683521615237573170233127271820976881438506946449626925676702845063241393452043031449121648292701813807993353965871899114544055513646199003697400599345975978378954985661589904336515946232783550658928396175257092037223423877048285358830164077438774095571377240292874550889631447151353582855598205438586246973527919120633579124414417858480770291226875482316499803067749147919044613530972114791190501183550758794215985729866069390315230470070845678701920095473579252760645493771389667840656924827229187068128683015371318366673605473385774571906524686382187819161707484871303137315001213504882657901110834677963293805944178561529169633318393554684577061200064880553198804173008220402919539728710783902541890901296392461847105241631816659117851743279169746818424149734137221268640244239593298436924512688218478173681819291532653532184097422617765766799124259910465726397794940532669518394184058555926407989609447393872228378117576813821298729247894863214141798596493951673186167689815608193716024094276091708965249879036392394207424298922830775955962730309235161400549581903923803161667349603073811798900226930061096019703262576729604759651794660383907540067686166114026629812009052914965338207165115098295524717152297063928270851863583379749459989423507183151254630943246603227637570125836991883385837051406913020059171534507974558851911681953288683366154885022656345143591355893943155398410849255778403401007268613057020362147195458315645582951809694117328206099014128013682784385412151755184145444456337764593834265105456388576301667977783103319251328641184120491302367883334247030788795496518248442939632141346864624831089743454208968775936339478650359189660674293267879444730094865523410475513212441359569823867526390719335039662040544849323030576192951431058367571398337554859922862483623775593046595143970214331538004814945367584476729332912859689722988332142392821055330933056102905397711956962796436086795410935334835711654175981322932756556069830437557456077031750882731422890407830718424705231379725406608318392360294207479475818243431952363560265269337361992454111789865787857977521072248599627982189745583793388725542740238915434640150197115333395729170775939550268906179555795293881589247465174880695090279864471616274838353445005955200561789909637201936592820103181516455020155337438988728278181196873145454077357079095723468120032769112760586322817167515279709059357621514401305910400818217354865038447223929865799102449269307816425258884033955089581849768632857521660098958835302140874112532041145821461840306952343391377552898824005260922942024017605590002157190722711160555312511631667716715077013235299246457955450164887198906177331285374095788195616271532152033823791426701946311665506274752227621354343218489752666250056705349698226297595088596645242107456591667815203339684619287625623079073346394804282917089342882693871141845780258664569548539013093701979304923259306806065411280970138523064171621604365127181764382714687200845552079474033381004898705134421832563436216678096161075604594594315806508298273505048260854544739405595472831669830379517368906899860434892350037217359954098110823439003291471488208367220043253196761221781000968382634171318364674232498590562297799480783386372874532041427816025856979363051522784443168383215769493646539433005962593026127258324509279623785634663100764609810483121747192759638687092338147450908260528036888726776950594855355546385196568231697700344363311880925972602994080317440841438018822627694532789971441730298309053616228754337119559298379745558603027546309901372991098506609635070534354388915726489438136167105737160226786734925320114526657756421562105624461803640508082880186017612158181242382593741351121899368423276515925877505704534859339493761145846161296897404595112338687300421136999078602421713416610498919191619871900344992897703179930661841528096310470189955920721311022736017407708441176632343288408553192768771908637052765265757768818858202322193989962265669299115492947743538086969962554581908501034755446115634914716134450187176205641549192863695139721983635947261468826406484772881006877050189643358568987759837971219672226377449901526259021528323183494554072773777241865867326228315610670431675099272769268408173960078530392757999144371936523213781952703658626209088246962456377868342606584827003824359825991934525424626010242783799720985567626745755606196547165150694128842196099446380952874271040454283763449284622207476413530770182289762469608672548619285821757444911883494990672060785009738863942720479026450491493860568999422093420191616592299478999084598875171104543580065969312149643411816413244360187623135513569515398149413695013606001619994501229597939557684012945069067637472463395825051881206155262401046604061880143110334217013502089725429454899165155996641910863084601281134604582876187967154936164491717328533105855074131762510238981085960336845199552044534729589735482089685211143377292088695674902373633617558993585540545911591846646046129402390455400873309331638767339781536865516437698950869437077772663261859725953963715971361180997689437206346082991874263435210752659649881919572481348446541150833085616168597436404365419944374075454015786543578293433862586637739939550209361439677921934745456013868772221590169666340388718256779912284695973511430278287673522020892358436407604934632125917688273937949407652528656290318192021154287942140172480834060245321649635358082003383786483869326094212920779263360658615551324437207321391966265191984292468813614287682095975129808228335177797800198407959921428615218953894821224043451165296469025251060651673267214950697807092581166668529541101895929749947612292339490421739675292425617526899326121030696314166244106871803161846578113096779722315791514185159690137915307538339806130777631286741294480813013771008178770302573621070172814507642966830063787817978975790296645589695518105135346720243380179633495202261409072668972491176081096053478841473516830163105957738616181089218871220154398137845936554092361862087259275745981666734424672297048702848287164682371557967304410976152854713388779743165699699754682987577473879396682657385413931379283770626741945463515075952004793215637003637970239369501361989995375986598766431626410000852822117457985871667817702149429307196283893344449747823577263185222668239378415620813135605781582537976654131508796978740999972002217148716160276680312068236664994561318344023026324755827539863449982991990965748345824271675256429304092167274001442301380470564042528239520828735726922000095339278905024106773458692756111225013480213496875007041304950504023350618152786257619588182553403781609949689524357432131619772449154887282435099697027599708518077715998616301931820047208435554502498055660660518091142937189031981265564731604371287716971793040686460659441961163404605622727809829270982466953002309503769487115758767344048183703895662274438319459444768204365762850168133558497950225208567047957563611122390125398682744504296236501560453096441137295328872303501020438237463131210437946342594441042340789076407525829329922917043323979442920241188234699794679038739128176943697049536235028550603157433439122692412930345442402086450863077787247925119327696436139854086906497204496914852090267348660452438749774641403234883716024727360488767859435882617233413750288410034293541435232350524983839103794435407602880778822919625596034156881493285238648929116818971843287801584353023549129509018853380152241273309664889633700741586058211939168699524758673131642699397822526796719918193281696799963446846463007996132153793521385841530148254292142075695955895179444262929706501376059810004528936384021378778795498179048745212108600465844281894144205932102620620908016008414514592113250053298928636194946887405432155011429044856184433628657781037275287944323853016711212642424977054625904295217433745890553900458008639134263987033925130184454229239003121224979701086889532559548021549420033182569000493691986449707932718485164849999449383460878599637804262114454672346228441411388694706885705910736135725478820810907275040051327072400982532848993790724743256985577968911687803064824565001974420736881749151792985882701995128680503750816267444381878418406472779300899005934759077258490422641371742584770228305085484065883635620361574874971975917878561150031161691517835886390460630804291725728723297815333808443626583951334264305037430235475693322990257727503470201467139519622629819867586774072524029602843342650217478788050325378532341797655368975995186459180794153584146869416194995391653289571083526086660003891065410499253748853891352270250867783518964365594339043696787797886714955181020860471930352577644469512992689980427289559494252495256425525379244210913940241940759353424274941377696557998235261049053825518329347886681030975437161829096056437635893557365396752693646923428083005334408661792185859109030429017827369367349885006686203928853339775334084106233955479809831494056655256177082196468684707388883547930374921279460025954037437642931875705648995387753012607425041619286491515603774490834904453859873024033556838352357130161479476724168617174079695756738523611857878927847746067548994263622879751656627377421650305708075638980127552420970062792380107940116366914350439796287661374578306079117685790916062515479499330431466662468847403384352336278732304419134282342173418843495327419824831821586985243997920967738738727568641117334287157072433599768275016169156941741238341556362440828852776433181438976016181305211736294133990667299793575048543709788091150469200360331632605695801704525338701476480734825410517626728862246769245953584305725050707124805667625407375751454488245220157582670983907067320436293274336722906790485849185342333492068907976775767182312637763743791888032375525068153025380179806270899450615913840128384643507542833337099022780660712335889353877066218473834838910374871570466493785303753533307336678074539239329071075542097733104167978304214164771662485884906690306486373589729357208259525853347073709111406646725100629388694298578260380551211860483463279790053202348825270515439739669957020968040478409640577124674512494875955635839178278003771509918752844597064003856749041088784726165434640275848720318720062444055240863302067672906605085876755400388145335869563669276996496180105381881000109742975465089187365281659674839925299197941575272487432907103316558624153741068111767800520931815456277399058993151181206610734544903909889902881013846329015703749299718079646689187803786878861707225285395575437074932474674449295959955903263028619977643897457094878737090635956376169624468984558737871134046077532096123776752733337178487844540239804388067391149167075739587227067686263203171664897394154468952865773959377330724095649412843641831416396750896661658899375197580727731255047590168749028874138618412070575158131638715607009486260010261540789950283142583211633171333647860250814806872012591814957424633377821109348502566156536452618112508574487584779239093272046238278349677504495157724236196233393677900875034970848850786474771918581016228390965892719603212127094277853376427254689638503089657397109749231964320238461328349250701267543519253850123836978219829321340659686002669716920498849643478701727883022458924687284700686657989325496076933271070426757258352428812157511364087831863825349335566923875010970950810464685556587641979132477978560658643473031846996775148969161511758813505247604648667300580429874280113399875364163778645037713032582690166441228333768661774520346804119814881778664704507343225534127111494599100166260840146231370810382575370417201227440469726844863227063308300090448066845550780315611490100036630911528467335415361396520270723188241363806361805306068664249579026132245522484381957611430806835513152923102957765536587875183294626087145376897859526123975426838824348902221631396900208879894181093456671596130102665797826936917228908410599009485524842954517887676418276083178552141189966269568254721847464130057972559898589953190424420278627008625162760250599629872083852096901677554808355667361449032395160817927916236180271880043627624445045510021242254845500150712785926745259586266511343530981862120648883479668516370003135223863077266165968839286569318278839433503486812314537092570794246698205756373648659794132761618006423847357668705145635275743449346689711805844799221105526972255928861878971358537849946442597641833504648243252617760526624838083260056195877644272123269952426949673156112756591889261293549470266672050158323988963093796844837094188345861732776495902515266082794275442833477542990151296434485228593780952958141954061718460208952573632057694309286931543768521737145074939492669226924991166782367556989023419546247878558361985419284827703639988465265020122599455886261738326471070484506358448411300099342021902372008089752601448899402535898885747957073907605293694860578930202897177075028414736845031475789969630874924402607387466812489759224178639229938574609667896648132224944436861948528217800000161662297371206365919746729378628763906869108975419924204175105221114501946219406559672818788626741760028279055675348018324626160909719503145028574945557520982335131502530861522505783686434371120910335944077407755564785084890924754338823288092713757765453233996180001408738389700565926951567310913646536799145691309746174268266212521220693447284334630760103067209089329612932260685187359207330876651681991307406161669246766661812495260467941335041353202866787715900318042731052194692365284176086778152444042612509744867191847454740569454817891262234840284268291272312062700034528557791105951100899872029418327550489382847404651729738392291558067597963425208395244342540059099001938959709189305358040599729223525616656885900923217397321410877263721222274288034284855217304694553620963245689594845740915742536357929622722720469142111239704493115981269159773697063665977601030810699842498357438791845721027776394125834552469548702787236489441453650491934044268111751660858650637665114944853460577900640210249094478359534023689944560997196251270262122686089755241888769301894432555978064494632200681576379337831233781721707476251873970580173146795169921644176805435108997100449194898668796316283770511146657381970227160335738412998998293775557345867136421796995417757250380888720771643514538056878499301237851089176096320050612903945122669691302409845237575345802801505924500363461255365565086907822651477967844303007272240436986495083264541562106720525764145735166309394729857545568635949994542642006852409449503531736168043963503144866127821577247790394765109789057988390557534735165549166927632814925644111678181634564407606591575194880952862906615572623737553254692450788267256700986210078386846442935061417752037880397286736500669847094566071392120172765292724757168941301233520472310013876092567310253625762867866736268036110990438020517389923702826126401195975968003540714933582284177174436044386019253505638796517141183649170346429802732605267707453969260918408621314859847466067532299808762149106772459273619829148784791953913698896648860615667970485184659758940865903282022777197152545588930078877143404207642182278982681260477084521879490333838675189442401543836536132017685727581940229701173516325081113895451933649681295775757607065945775047527294768107773032924729366784970992633642661337532339796728213754340245388483100766855723709151695938939198445885700946002620142361469834863143654243876072935065301455526720792298542175415683258583795888309812142487760422877291751993614879424801314207533571644041100520854562424526701948910274789105886093768693463802180982464183673127823308349632307824958756929925535069586232655080453920832603932428036823076654858730828629093055149078551718108705758111076676403361449173752835007271137035633895817402598351938536216867405833145082334062308801616247786576650622084798106924815719800014040082178801302919608451371311072794903893198207621975537866710612750796624948439555538438524952047648739181080739208433943661655882166909598703332618443252088089489724456911855982023092821093949517606271345794039066399764832135431921643641596516485085490988440523707471054359686188936413012586807552758572880545265867351816265871554088574601291041330742114450743295960828377292648390559814888942294913886824763937547055117672376622422492978047651788439936291630307665254715675905656855645716761389234041284368852958931756119401217864801777226017299511141707907344069735893471891130558992613282191893341658175398385426522425789916764562826109955655996075584791069300278377388765939000092213351834652621393986787141578622580031637472720935494190916840977702850354836255516755853625222898014860966979861163768884229187924597477350095361265640859587831172316671470446800629260714141351262564061186516700201098622784903722352005169841326405289329149931227476161469203961654338992361151500642387270235231374004084746483103179681183090312666178710568861071146763114752279312481182837961356260397544922234511028549591775911337291897524507033771627195314811086543355411755805176946318085143935075718327585029902209530523959422326363227641259878246061408611551693751443611142947368160493321928268227213300980100623538896556322725185881658346912841532173583991330496239093528945885728153317533207620438101625947991444493637952475403224972418661099733039588506816061033331655831560628439370304201605596394368174280509485255606417108428785440832897966837260901325794747170224327726988298879224171069542579397268804989370920667814101621365602150504040866364213373069113031663162420717053188648458633195729764351259311852434715466493864362446937710586523835153571814069247074519129878024101008350327245716815187881989846885525653426087067517190397084916336339896451379522442295577567410512388680945157622309826359233942569910095598145526432807070692621905769238289238560316073273668863801716073878669105192830005269936804176507487679997620025709498780322791063565933053501010279478407739218056646236627626889450478749039532365030791245736036926004292447069285796449194588170057209936611694217310736703160929568056823173570034002061070811296035652331276343661282359175975896181918156973757265595765704582399525771919281280318146793332696419157182813672146718883842557788901134373886084324262325843916640956427223682230337960296545393381870643731683800923819073944053944871897280730766545314632703714691890549980139581007746936892934023400716857618461273853805446022653639771674238372709389520397440490308837388421600074576628924492622212158781016861274064325284247921996458130392848848726957614651133245115722049707156099181700084396997968587133377842787111730382851194522278421925902173427937421419127916855248737355219414997088877063256233305240473482734073088159741058120401625173460996539001752298199597616014562975121424115429667470856477568171392250354740260459431042022178752841291322520046369338051286538945069841415796556622961075879906506457420081876954763618003952756174956406079989147149205989782397019477652642733668694725813246310054107744604841058783073286903887848679021538907974754772829299575629994737255519294896277308173633680923174218547752216579456454766273737311677524905630336754459603187474550014695426493629839529775550810444576933112094647465951230234865743130626384056334825461681031395462268163041552110620327155820093583376576317515822362695315337049672651830507308980159529671738592489268740903548330182955768649872753873210856654149576988283528244076702789740230320595151515005064850942396378900463495404152299237682468791518940613515962779778376104137577630405419529345908896906472422448116808030524295108674840733871339861299376641262769212841072268514968259843065743780876985463911649721102169269133178579574203237838476451508858153500159178924259409454010893766731731648080597536860215492653567899376576750326602982553316144887879590178216409988394070403684580422224983158041731190789363812968743985158773865956043526322687642330479411707102217232524897902945548700082268949618373218229199702070640063372513780665785186431582356829593086493918926646371972277989676986070443747314608359450209503083693785526866918149454369049686963629714383451424089206590952922237412150528522502412445998557546365798505833441652037923867865589618640545901418208491685891671188655151252308773775219123162618201747899142029625539956671011466542884488814331836631325202746863283017566500427149468678477851915428317585515746697500766957492126159807432185501583951764926679394356239027400138555534775008121571583828013380064310115193681851784328968851315466034450678185900332562957921633336414270137289502725666150702633674095203743439406954131490091023741840757008515709765894191485547470722462844481394591542186126734451173433718775727508825111523406594613699076164690637692235725072144030492439022768533653231592523524397905126485467466025899861452145051179144969142377799837086194276788739742183192610720053070389618853738718493080753617779706302363661189495056149002068911905873567597268142024583297169937823215568996779203493249529930954912137867662263674677006525241326066017900337880254301184175766622883292493159679049765746526749105701043392847657077699160281031667717745606508564268422372809470836615296778595339567383900536750079755901896176828890017666086282563292397033881176993877487348028706292243882081908187745018464370774950543526586171149044086230588153682029311045696554066732199683107531879938567244510434518191097387614789844135853074383953051912262284050683384810519642996078776972842212837644927090160562527809796740218554333240475798127624355107910209238870339555125489526238790127180644312298960285127616746031399419281656835989345161775456105659535072174291049382100181955875469158387954386493811166654545646570114462660905720977859069084553961571541908007931847069162759866135475993819002693018308070903005277935283170679727408334778568802297016291393114853343437584873261793906954305448972250967434980788106189577790870052137305789164255395435471624114359857014980405033353843067399437884576612776847113654832142109934006308160791107399140095723856880264040217095595526289789587503958795915031103625033654376723967217595684190811368632056703677001639583809295076512072222506298076614146364201921146979148509483101204609873713052651274569778560993024275549887613589727382351715500322152057384695361492371532059483686911763350731876392356822327567631289862484717389324840524174679258079864619682834470092022910464048119880445545543071391562263065740158354397965144484748952365506105186604957846949684002977430765292046408533882924079844262343573930531711259761854593956082882830344462137525813826325780503326725855151620955039083523756105562076357123064677180934755527671837963808356143940010792756336537546289017032678991099399507604308572244781778993652277621554367739496698289942469466968207468511335258107410970278745692222293805400553984345665577442490759569453960028048353064294490326989881221561098008035623070282877432677067050279874244040280760376084476566742347462390325092769238949063794410368505038244703045307556607959527545016364894217788166033782492391690570568634092636096780507978991924814950678681536756917813843085203074066038183334581362701773929719885847096559866725347170487098647163435098779222709242237722204483234371794662079101140367094634660941727085831718258837604747524943426346099823092700883220255705414487900805185012693436338123140286595004775150321026834012659784324476859939981270259733862283995207545720600553850188702591826073786514503509650436083189811026893467781395684893637812674932711067623568118986768826427889565769750694475645890939426178188368196115433991311744092753855548954034311831498601568110880778739307061521074572958535583276423637493106642050753095649187684295015611751084256382272015749164933716622432428312017029352591430578538758215086695747572684255097364872599521491555899844754955382224186358927683536855176050882210027603961182145669601564901006209204795665912416986292141452268096378860842352424222694007702251831253682379633423881469179932996954518266302532372426334417395507801412073818452935223091683130578084454102405500372442276157747034937749816549558746392190336923286645728203858001683766199409106992779373008164698829190608468249577155346615969857448069371185411681891098981193436359852933930235738087046795794589945468396778843555540470242331455023533034611791894133318229206387518679646971627513808602886558972999461695803597336653565020314661380637239686766610024864097321223925073095988448472918616342047999713294792467870992996622716931585978750761979622526122041142641906197411903700881168806670112281026576263041340526424127598332210865761583686192592110607437000714815792403465351132540981718812228129432505179458024524568423680891165863471198187454860659512075481304148946595815986587922841826781834167675507562462114275859784308054769795157898173033179956915070167171564786421622151701197926227401226850546762891168683644498144220480666157431410657364081830364164736581338738662664968682103474896501309266590781241809350736142464821630325048369882334833401494883484565051751557542634842900860203224781910637293744080245243013802423700935929375820879777661545277286947708112896668304005429385190492079673285653011957124014781315835611378316513501507568454115327070236943209355375328380867956259419245106611366083583227721811359065069116920225635623110830358894761418324640060106687276627238190241494976068710845334425145973335340511309663132688881923050171649645374608500996310873616378754439552616834614717527890633783636849558916102869883548231606566471032416165131918729176503291793225645102580269340258873776276136732079964770602445495748226187908996647438143656399833900478659872182699072061330056789519609596156036637270913653100328472334061306630580747509829674586038050371927362546327662447573166446343804141114154150315719127441531597872461939373842291970928126840490088613709699618320214014426952679796255747374249543793087529492918871001529558587105628532499556614894338589525459141920331457440300196124248737514739127462513596268170132784865285993369605308981054916039430603734335552186280726396933155764043721095225009555580085372576701611849346053964418547287334836176154997826579661556219672066567283504832519872323686546565161985347145658293247826776959024191016423746004421516188271837355631790714750074279996830233606970377532797677635844917155597443027975057477789162234078437272706541077192402288097960711544508351556109328167905333930854489772247401760366133959082934427669625533878200213130969582555427800864671627859553363403740452411343172454419764133742079619329286114574946933157240052006829048901571424712553866031605106907988969693476902648973243522156078682399572403743263635732066050836831532648952225679853217185901038121279790748896494235691309300240856408820633238053286575370877697907666337949403192339706594271890643408769547425596599228340849026448968913997207565242533886878001324447315929222798460964646662030780994388900238353757797210689520796820894265057611976793251934208047548542907781348882968352388878041436706136457675787846884765733139128881646151162951656030119350867542703793936758807961205352715034407260794672670138116330500887374779633481927636342422915124807032665078467651957897818952281497483313919450880886620590527884296899554682986199690932684705619986578711498673823858442536533040275648966623553485068084350550430587643517295036649654536173592956723979548916426465964776081467025192589467681663020865342415120601185048867345478918140523490358438947586687491461133595864139891889857121950952143135210199359412135652048049645371443639848620877089007488249873998349972138903558536877661796186841401709752848045523393887677255338146902642145138019814494917742494077283738897278910604059148950479960308332745172177887054188543763969454398350699778704844348400405315006175704386958258623378840368460540831696556254611057051420309805282482175777265490855110539134204703204298577160012365712658512636264226710461549406793735688803085615044575926063420434886075605695146261022329340395423387531247199993740034704403290785527618209107615455963809831240597296945034497599140244544314283560292394138761968942926764973500200963124826792353906473626353079602317255395068813291026859250590904766262371299363234384845697201349888506909074791500025207378472132283234168862452285842163100648595362501856957565566791904541915028462341801138422288303094754636597723416031669510530288292774684582929449338788586243521722296927704001153010434517094289552470862891760866026292317281208066696693254191619097798149516331615150363529281304837404039335396619139323296830295892865525710856551305200128388688350957352327969561959670022913072681804562559543306284762443475881425569578184113108241925398394707686695085892194147309643442468463032585356011251887632119816668477666156046076004773191905990842767547445050714266065929336728450050051284953421013213557188952171547892027493124670235260744288721891369378890764966668568700276555559545096347951712487866268396192241865412342440019153851216156159776546918838103274375080690640427096684960694020191109269333088939008872233758191633674503266750703697357497818170310179232605888470725083624997207751945845475240410562883397373204568794793191669061221390743116106668313945658273177257640844568854774628839508379894172165150408772937879615805474913901113616550118747037406579362304377478620547784301763606870569379963455333732538344659810004765020736893703173930444514556822200312358110783898556732844009842451148412066498201349947034226995196936031580958089101891185844539685216908261297588662891308193149721584131066860611207114244298041165654789006168224307407984807706408608062908863780042221464896742310169657266940654117671817032576278434386682241819091172060941105769505247428694931950166528124444110126523094823408404824424465998528679101170318936630799626565260035849160096249316744693817967977531710134970302695988669355006828303878221025418433499908169736749316858871707586775184374952901755445814564791832260095207930424360116519175069827002189946299391612629254266153251401467645592826420034793936492305945658664285447685957102907979573181976938373224513516505890337959608258588685022251932126850189868053200972108982434429976710894260991772530894046993893518565676181746838820302087412175502012037014271059010882770691510771630022210660176889840111160577902438703386905041169302645343828108962441506253589023877662638892268124505423021295018498559390321126947295949790601609387246947625725896994985263311716592419153638677672389289916669243368765583619605703625209354558095954812135295841154082726870300907777035954672032506953886140667704638347352346423099194171333899549830758150957834437057316012165070542285046951912033108777032316465863102907211074113240802813282191908039251845302920639586565380409412951388471977963607266185682802417265451983773417193756274379907701225568109012337468566680948367496953547171642555030103698335838824881982715199009579373149724813476689507778413946605709077037239133632700465639099815773111099965722421932934202962706579543719355395166104685935835419762687065389485779270976087750421436170213125333261019419158057242942867841145170393138431984413303834601285898345532605357427384808387425328962774284088519105948275776533700056877640139507292645436744224534765853395905964558916119812760557864853787006052049167037126259512435426739534459836781938244735433380141227916258479522210338273191918090693541550798158218062605019241436372024360050544177081135038493239634724098384747032592130587720617118956485878355854495041300682925509455536779801723754273894740726998941360876788338325248148788461648741286845921392693049095346370094244849260619948139443992985066424548558124041940062772240809781463144217174862888929042794253067618223973774509945489848209228087386629441212443098928736145749089999437530697576005973390880900224912361894183244764070818637518731040570018261090181625933717219391757616722098916386775595215238685586199010724465317160058729993042846003890558610771533853054200739050114249033469871008405107265064740455161329714977964496918532804633168632566899202642783335882130439057401503282175357241078761697691424264731575297732234187982309572478262692927821095977773447005192415964352067881247506856729676816163465443002890565482484548041124315040079265757048116737561999922373235384389664752123938815171989890759055470790037400173479261271837523133126272137545692595397843912901895110492505746802859861383744076517143215383903756450348997623444033854063897597557716883187117953099381192739563634542861315407724566104258320483923654928078008074177232062611377648527467182817083234546586708422138574182854320284379859848887020827611110121376647848562030836927374945639964510330060539816917580951278337961030275161145636936615285142991707612261646646758629851166053108508513796665513332205199823809103183574162744854748430882475154207638241213391811571196196428017649572703057012117820610795325196745502923239815145554267143493058169380053137751707330685853531658349751317194131761046909227274437879248918599143883811708042134017659906250319257241269192074294072128230281838280370991013759722166434928878895967340398960670715129933404613264229482587008523500785179347829471826138293583530441457272396014134085705592154882739273425101046011835406876050377648901776691215405689644766137802618440664091451413971610438048123650930063675364249537530785812932865133369028354227268712220446947821775756715197344634472185200044758077004169869722469348586499055113542816096444910925282547796268815997972174167015468346825465422887067563656924665700862947242061270928747015315771539557049831747682858958442746959572958618811925624989589596178144574948982481020024599147430013530252107744855162197631155391622673403833157909951413970021124880830294031192470642416484433926716610737464219026852359737747729096950893672521147325309787074686265187412571821410890237466953061955746104113953619328636083280476468845215903069031736839152583203372718967526995443460436849061056921242916914343882486555747078915487318871656272210662636776851570003373311432633379682666324345318672573555562042446826760644874823500299757387400854835771946835595458768433919746085607384260593175409610712559295395164051016419088645314069345492049862002253906985241833513795991528412315060820668792816270764333724312741758412915579755579410581477452857794114490946703228723786801350580194781007663575787073073790292490283345618507790472106277568849682878658694647831860434458539556572872674224100852245745336313126525939937069128067735623352377160881347823742038156549518683941501524486653826367732552152655369002427549828630604999985585287274164668981260246403959397945671739387299501191046952255776739507690270124980832238731687837289494506146732980198951188299920988653716821995944931084170971449966831373120212852281453015440396776893404513781551605088096960663438386130897971567280680652176750241783950200525216296223260566585767072746855831645536088397473752060177472506600341221420811986830692342959971706263224205339781518310478654570881482095735105790633700022156684518788278999387091261952094187762782252957585527815363805933253062984739031906496091980502156205975847532456560282389258527360694839049976769055009669672348733983841184599720886195571471415856924679923722259900368778629423315076886450153903839400424925437403414896386709426857027537616782891590235110794655087259434647905722151945068479627472285123700024602216055522792108727330527678285700847276661926809614926482105482459760644755548780926601394221810867687267457645314692295589384212320673369516425052921856518393696224534814489127017086144022684781215819413343025131852521629490835967429134823961407766699772313543829643028583893365051729444231885494312335618586958408060065137632192227137964094159389103443023706436483809325063019836742096502961886310953607523145038173566439991623052617385632579807426089041124620349869276559610616374973418484131426600301511231182378577445027873839620844228661607462876952631247036816659723241363130712045540670109026363044102320509741825549794430958760360714634035970068301060676225949400517125212571363900484787481996862498309234885202323167410425922533084123316095858212665577974640002232447532873826853511446925150556181043629959239620312099679200185711493970912007356322447601504709668980132452452850756722450294983517413194633301881740993826035941390730090231505955053395904997742314214819064248721572071095451633845065471624520880337270193183126200717900248206496870954969797020380133732367874450047515294420347365043330007011322587065025019516844990131249142852787866096836924966376447961273774561861142546629706601565122526820699963887174598753340050955116949716880139210512504795801559646909613196276108240316222993221264486887135490026730650873808274578898933824571815593121452488874649862902314937294341177586697819360523892808919144108852947268521875477709522109312062754832515550068769696708044101524371513297155473968642046302308807332817965861668681122953372315710010758132010508227028130471118334328199266429445798937848753390989221402650328207396068617625425683020083095126563493395474780383158406700392703097203627751711284040251157546012395010038165879536022107213525799119380506232713993445586094242068291480349688840834245638975746802108286336510647244243268109241110593224558468337682710784752025818342566500378365137117281665628850958940841777328179781170284575898205400371950986203783373664270026230558360896525960739796379401915349952842478749027526939218143890214034453782938487184819529924739756721433890395966122035053641385320003864200941781200348840553723265042636727460649504075382922249941220938431976502948600312588298308055745812959524365481861225474945946004810251863768366015828738615828178708268741847252107175312181972831118042056097607763939540711348327896681978831647194292014023361569777924534038949361877471580434105624107034425852867422414195913004909179118699768394323391132945531259827367452571161803171256740343889459721850663479442962466413379288165174741982447047848840016373737609941469921701848362758109509894469458278462492466697995619288796255611366611807861355082518217923312783882979590058982678802975379693076637370259669114286472174184402909656551064403916691551654534700681694838640924622930378113717301261195386387506735432406445656111937259732393798659497162315450010738179142464414233241597050689787917800270230178648453001949575880786713178772640402432500628320895662353572557162891867995114969608195472721978193139928512032415120050115020043982675245233106890468157656725679716379032704379136140778931236443614190381169244851340698568388441104427328945174864869287760479179342808374287581184925810093173181332495502524835052573213611050520965716535800838061578425676677263634828097899744090118122203855952051974892429644968103297593424006168235067044156687172981293635102840168008536471215782370756057259801371711494263692561307991445685944291734937549635162903932318670938780046562908666504349423276099059301025054876498102025326857911252777589335519349025186296105433268815791859367859223986259915928869694546668453679767783682084768361683684174461173937986941388151065295544095598063349292540967781376906710738587331348690886547567759927146872528180450341118347433775056148452376859827138096397218888295032326024316991248748429454570457272485402236298276225223018703328329391386041981579720177338529608381511792950333496233006007507547849885965972087573709831827271186975702124662336917040125275743510382853390691528889671517327474290022142206004875022257057116795660329601043254974332953598391799513996364140478007149159407322989255783614490720982508797108037240749553814485097908594579885134210845519076964733797253993576997909139342977415540734560366401607831560945558607974689937787460492525740009375697978544241475095181363487002927311649566628818887740230860219803322136007707015109999622715012316356490733634584592449528600775963129918819746064294113149694605944555140286373345085252664625365886493156737325858539197910423871180931829271534200667875577297304566738227279426142442204651443545405819988120736457376361610657276039296514428387425497306328122613101550467998814547466869002600237707398320181263022733686675812636842040472084621151512515859355786360133069219446071773615436609333394746909927943916708424138229004729183654679617709774675618051232602673694736638832698504893096105743148026431996107078533352733225163043387098216216300998214796465165166536790631020012789382250895888772854966754227617685340654315050947654909855163370816023062379437261065997232554110280029483996881811438368357558969997475234171651855422560767282089220893342607752868018137880357981411067473864497226600419969596077826199759487223974172597797645898109151338806396485027153865189547472641769624871337357011121401852237579210992673231277460930592324129666853297384132363901406924457242990182627174769094255950294105479230656278243903886774850295257951491422549639397145319014530848409660093473113447074951291507368750791014845036743002557920116142075484303584474568109018595847132045145869494102398006844485948773614863730968200921061182184502217034886980506609145769260071975523421601924526427981811947386126540342223259177749775542166756512490873986092558986237585401037334064579054547361991510058236450725676596371965485843039017316808084164830656071778387526268202033669218234297259670798207972967871606939856111315648809069678706937304564275640233741274677877359995633132438690613567756238095999280520031735666667413348019733394786643238231547924133964010608274737117316166803619424254681954480572563665415433567349275679752324975706693637086660445845182615255500813814743881816042633318762559944510817475015733876153903496102732031936227904322292680656167927056681126511244114579451582496859832314130114022838664822841061151376773836347448387480082871539546804178437892935337389461919462091261766890412773861265166734471257379971701103408862762642488805268779178344310541746798286923939607373750973100853938686278012891660149863841967211192659448293040644250201919092192027127965342816785143310489092999619867155339803762204673813187983621465576932614702509517057115995965116703671395766822222598469850978584502102639851158217517167026982774167230870786760849108361858076338733512703792812846298928335893404543956543554334924788438169045578357626393651955778148776228461574813402651020205107373741535081461189706205698347530906571529598904367057487884738766663947543255382108267574174423599779324787302055278611884727350751342550138696286333158117946887333392767913568187618500991910903734569743757857090848896972379038436845071893661164012628685965265559537548232826174349052131330237224273761980069030671318550342258264968099140393039982368960461545271607496323689655039478214020718004286750380798058274303639693803616400627429315490443406207617420833347215366653261513976592237929788486694835983573726726085204896056297427164442580856465295675987987163975553623079589254577328025738515074766285228668084457777741022574561387064716261314082002980659936782884911719845835322591814446084909903273480473734950240482663820880256935462464989613351507850925102257324043085512612890651280986370655072337932144758048448402961025942869985140800197716291409359498806854249347232879664374716013227804281021299699062063619460933014665012476169783720618671886774830389166260910165264480200341070188459783536790376215016778427025099506829528405185622706558444588269323679805808106149509434566426985364626470153711768039053932017589117797617935914113802913633844742344643748166148673821946896389381271084394168627678038493628625565169256380776988307782289477352503199189763167737125145032787009491172546562069110593049225671579879576187537199925107466656169231891289430100058004519160062015769190733070768336234579724338511484699911570816065994522496343532636469092392070458137188607344617708141964543323558095290266486280045779511642532251038714852421357082374758236949992145658715978751913507474327848871467160049012941992672514165105593875055165388835139371206676808585041295179821449103078164899841481794994812582857579939460881506121497225348956756253257727700975243195303089619981350783738706043765979259242982377475745968454031330123281611201741286835851967872564669165103696197279707915843291564473231344588183412552534473569501278388265407764088157441677547475933799660465218287784910755679884911772171385841118100959691617305421320159805692693570596002994746779755014188895892516510739608912795621186707762414955756242809581568820757663683762018799628487100847251769825661245474889718387120201977462536724656397315390341956874042339242675775730166661176799221163063485778220936938105516193721676508440188897988177412573556795449071558415033471086491410233230153877945216480768766967122533641108686314524310489519632406427117287837229886715079461725737180452341362169753076984184459039752318664387079324698399705494198202571743382377649672304830556048883145394205179061440009534674801625942703867581082628282740194573459622268396005208742317496355015513242331053208327239503986007023180271239647754982634523633253666572573623380336559524963257118956556214383617321179280046158154885063332828966791939680473141837707543783582304801332849274226407975535293835721762638064859920861267407040694079503838257196741175022091265444881196191240900203676971187807083067137461520091810657956190490303111100566180229439932025179795342320057163295341264974310381407329741095239839279996571263670666053883408891006124634005455136303177282904591706700059834016999809301575341103037759684658713022184341409745716532018464653954159949079246066568147361298587943747933438976015697791181992049930798875537929218291771854780305426886361018480832467717013773114446329069059755016248341189502748184871510782817722492054246610116272346957210217703111212364700732956021348198070816333725691910789373260365156149435372525940775011161184554031942169385091551673708472743431460116538368311093164687565198299491620703373310041774153178608092348997109008970985019699246134260231055760794509227935013282629412104712543321157436334966292470460216931482890134438936639444271328882532730049488959322615374920610776199958863149389020107450373938583530885417401797832631523189049525926179338252643033900885356678697121552916165753377693577541091131025843517482881242761240155798912834440664784147511914772182922636648423874872568536339902087869157978211515505354105953704873485450111305382363774401071213027675160435072599203005957681417636748612785021506395758691933184275602118585562608495528173146784281797762783380503918545048707694802473818208668175670387665939045615906120685824759780833155370658353609978073797159457990620260972292727683383611257982376840344634170601679036247619999014110946755865001257037237085553742186469024022915294340438215653465126465163615570358951596829101292153598323082926225892458569796125044996541042230659625430975496843440109540245130922692075049535302076329167976035473578003047960601652377648196984933023451731066871056879489488671425176586102004979934272900707362457256349590250065949605281656736066638143842641776525227442935995330542144830092240077030288323926175135565654683552418107532825687654180642898052030859909328498835376240255133170919863990981504749204719491467312846972484357136543980275532594611590047609949660613537493885126306880159398811931028807399294559888510585385530170235804375144974065310285067950963496238889504896378115501517809399262363067164511010934046761966778051227140635302476547700003693861528943947710691520808974117782187594398037917167171927886074976841898413772350424904876045597580445158645213134056891942658376271172294523222038485491593629755950958974081943285192522324637967967895738683946101687005631154703872828956320659869219852113806552912044744058594333001519847492156155737434316580513846718623252535240145590621691791198179576418069345649096053180124272160755608176252236521722793984099356225286688249744783899778533707238621222122357107722496101455844874371137745640527349537621715281591175352296005855406258928895226940280309432880751732822161875612759919464981045330369082083935440099802431468905098712081854477852640374111199347273168662561144170775672980805315210087905929627071911009071449121623905206307222216018783013985276113713544199026385571733498819677466348774736860198359533350520755576351388231420119328474983054695530408653735094798382018120153907080861888877492398961704732726436543838884635564285378206079383479442361882788245881638603105774625840863557512124292933335711378738848910041326663901876194841390142570928786822065175700433803065312688442634360565214861981100181486663166595802171012064080019101883124263048427540654828637656539334746480822868317018893111543205565945516495633901756414459359038848310185063213704887809284793623702109121558407105208264134771749595630516228165850765609719968266882227624390212605847137349755084771466796478443430736037795093812751898083793660712442483049155910446295966871848941064770891429254064419477280066754149720284736976362817455677494938635767313880992485055798922585951215651300554299098305457262378274415948721038880780325664831583746232872017814585632032008106167206359891559249810775385154507358861409154911920746491029193132578147376160808221487835594589276941291771592347275194018723689923848983122856741013232604504119629865132755977600073109235171269948434374962066167926185387420599240285979071217004335942697918328018143853775977560359922104195033667387515026334753440988172368462369546994110310725774753908879051158257018320287771905014886783778457137831216985704319824825190587780374168139334513017435487397526544874721022679642325193445885903914789562170976076164757689723353841321566552045341270899493175978547788771829738737125199579913950349166141379450839627290958335167844254647147552405429306765867254248181251390772474116162120702151173494818753585024640648751068423595082525707622430321754103122854854412127276107979306016995674001619967712341853883877895848888325788426350945511201476547604446802650815353756434260257600918430254179360792095973227423874658375985495167774401078354454856815798032245627839084838231193039025032838205157901515493264300197452776750014251107532358586098284223093149067821490476815537217063636848621678990993416779924499070535311193094623878037544946489685333327431987527210844270884958497084721109417396916149232074076288483561242846616472451312278159447284301778108351587958298565773462067125312092881585396715218281558565336743693708635600857484442745505285114702803365086597015904395979271157010089248358066404357507248786536086060791738388084555834881777363010496316052961023033026037899316007671157989760714289670533782611406404214579584126134535353274270800539498631617512279615078688661365487554890789718401401175422966425103128977573867172722349359447030876380265794788393437214697277488458661568078858254037543321271966087414779374679730445876069207035755484355975525997791440288446604924367831757454066466917962650097862134603630100664128335921541099435788533482222906042388204567379902790700847552603393375902246325217624930710401684710507023982834814460082717842735853256301239387945396147016561930212135093661529741403169493397652706657469230096658117234980677832234411522598298519974417740150410840862276792574487686250482207460308220694198603678434424753081400170037991121851771911925928792966184057196929778357231655401869457006911622242624773460060986002446767862287588311938438826170009394020776617290404794236789244651519570490545237614867472424970462748340372159372722457370119891535741337302823522229824451226784032039342011047218855892689117034920638531678535530996560163428806983460987357715622668952419122000360079600028658330499616653315094010934719537348152474547268297178265715633351144122255531170107902549591297703905450245939797002538649941598579011994392339644457058964814833703924256102930761561674246836453978244055322940315947546341004871718077592864455580127117556839054451761900029306540764092815863003846619579009779939897540869310792152592578605672107078968053434573730502272910842607355049941395059831916571837887949840028389826047529945642864604231446910446583634960159165209971713546421303324418458413970231639845972560586850567353164862771601400415706299774863591829551148390061244003927470954800000293500556944002906588076834322092692058406491619629504523874824089281616155638439473709397532463313597212109583972763113934256118265212987159453696575654694704737831831974177469516373089943353989797966112639841307049460047773399552343888370844110461381965915783641199149035869457570744843647965587789880709982548042023507798586892244674217569830109366198325725337666661455716288639961570919661496769422687504344853311919834999848578438922655755030758041243092426338576563401599100507358807154749152790115209359970409017069063919490712948344139757374339625182415297974951613029397542906088691343175910986374369383362132102124202836417327846970537682723675098577812239253969289104281554319657329667198770026730280833077077669932458235701095501407109722035859765431959930720198196867860516778851774362745204938703134183912430385464462031224149029959853863025075416141655849754689839220100243269865545961646934594629492415829935846231403986767189030496844715340479566728119841277691638833209607494179448500405640040854561070411812212576346210801278459085860153491758869748402454863124215496600659616091871988953311125285777316503218231224283943596075111241852670482818913695402626962088735960605274783863772583807593143405551665454974817920560961818137838659280583465871811246659237366747749892778455497452461688246615121706761662243504631557806617126666450442681628978995463338154147702057009677903025584770125691735230955191731525285588533916267177768641165951627364106072223065871435190848284097896696962972141374808728387635975725973984222408903547347872355223248514062000872764870222690942103398992097852940737964458729606789812396062092339012199791514132905150895839981512932415304442889561506169613972700593455784031347039333489563997528537901898003582979337050715100192106135533690677249406190956583930630175502623029666516845867501248708351029739555761558096282240791567091305100837343098976929931495107188842355097309304538232844604688304484538054151525763612982092660575929350001001290220657097405731139975928202085695871511918219303688095048974827660360487729831562813826876573735032596767604764193481860589362490482792624386893638622440277228027491570571045480139301611530932684858171162121884219181679989204981663883902980335748100047423562722341751718517893183567086537153178439817137146612560937163710425937164826532741482038812525378323166819312683120582323633293212452678730936919984900694228972875878762028046013924306406276990369765295572267017932172973724242651332573700292591003144014399789224594692899773147549006862373141553691564215556377571877775426726264633202373488605318857308379242110757760952034168203654534578370127172911781316918982168374456927494391818238815483183765469083569036651344324562805514695572433867771142384420529545403178427915149985733387090837395035537052714343016428459750343266961710612751444037077190422529261885146322850472685161920435328556654058672454469440093005313374576483617024480459094022511693676719279118977000640767838929905332646190947024537080957913240584633840123159952648782094259163273426679509631314122100185229954772146315504439570027746129335015816750600187009649685353546282896508161216352176519353254211647005499273798363086599341448158518737041615669101307023777345116119755509465827001916991831716960701298693994816450906701026961081174581142276586389338288636668497839391754356019935821294866827657684309276393880724659977896969518768706220467881963471054087680883986006347370561483418334736118125958758123264681603545233433051007405611226423481232278179472724574545094420637666658214480939383614045093475278907673876289878019584609105857026643812801678356598912105933168943418757349407906455282070382744613276992563875193590078487613516012039155928349695008073271389181427852976886610342862286184273523576106122699672670701063327191311984627691360198647226174343793902827419278012325317047018463839763026606463770481353495186223529765387566162280981249219548443673410675092428317410255022655203440031635011693561032042812289216747612785150497675160744272940254647046854571497270347494192906025617731736236682160553000532966261864368758786925395130416327117287494853201852957868879630474305472694021632936210914378104787108450403489276105744168749859623349043291324821934738923278873402869178900588234448038386504442935538276927758529243557856104469313612372912618744006324141999266348159086736847723514183772982083006036337099623418225525839953123869785836729202749126289811467819566423122652444404797611357044063965969065276614655592515794390344977577762870288266579112693769818993908140887750820407972602317358907267325187327349065485924193344775729259438513490845231854864188884250563456585396468258315836983922357557122361588527390363263752272409180461984080244434868294497606563739770692292610395771985262098543852302373072364575604442425162937402437727699306530115978609620550983850322661784756557140302422680105443457626657293811500933191783435324165211259710843702556460105165486290126729857867118338288549015184165789837525610022774309164252702549807129503444781674805750167686742611003256256972885297115866985955105922694812433222034645402536555403862989945167726716988908757664732515594426396178286271173614342401761860177527349587106039647159287062729889267352764641909471870322616672976252710453790135072801889771117687350292804833264633001386507013294445651982027146578233619073246001245306411233277297840457719235023256552238530723539395041627718273673259273271842178043797956939569007255972929820484656910306387771367317241999672927797245761753194903391910962982431344330673254112241342017472523949078218948099674604055240539572825978485334530187617305969860574354041544133437109324093710998094752341881048830392818997744646948937584153105579672625135730823089342058739251994747928076031847360843194227859275251592841042363198600245674951324943262256733596780663980289366686409344542646398362424937312157285161621792875290803104145080904717565670144341714926122805913396363427092678241523406465733923314772201685781747946395086144279729500083919140846030376125983302038301757582478399452470413933570691049774995312394701242358122368259953732917220812251247455685179891219751077992466407168407206293069994112633777784072605847095673464835441583881007505925793310331598450651650507045834696623576816867762279220151080560139060631428150753728091038965275595198037100599493874856125547342088673781286358385881973204651983689120948884447801283310378522898067186068998407756590802055938707987354045242515931730787757223674570796764793705597747982237593858755824920964149630918165251149758216837944216646644231278890185338194573937646898341926457088275041712177298701304406238062065366336765596894739873765247637998146535394236988334364420212247921562877622199091796321457771569407802043273967715106710220507780505028516536596691732963246532055361342505381900443857982644438465066452825326895823389096882608452838589628121276590334065114660265971049605274913506797011003780170061829799254159757101231707267219882604012590231169873510884738111382251914094332835184446095764502186220789489983290951971902909554694554021723906296171370293611742484268588554595666542881419783754760703152403460641650252197724077106234960461292349773843564765707576555289460956715838023502855991926597343072295701936728458591744663371536980523675080282045644829994862647332037966537099799537202385342092125700683489321552965769241250121260180994840534044269455319968499453737206179474792041313551302384846014372808679340016054729494735213406867587712184195038112223687074354428451409592457298891487611555367820064724083536963536134668702821271824949809830937647917837615014769529866568806313736456172340868743012332563956644550540091147971342819239545135969395860355650981206173489254094432654013455143398335492678670924842719723050021234479300115756207530912720829197875104560026300398550346466721644774276587841521521793743795146294018988291564550448476615385830805522680739633031404717937470891463149988888119712389005672322108999968156396988815507490116657458129473958328351304180336822390362120287389390849142903252494265872715853572937041672042101734192010042592132827013565777954349142538776208718738521849925671898460595472308128153902685971234460553545186911364587767659694933990716291133355003901880283698650029112043832961083502986887405232046620179454484672710815072245169693271406768811647563086106808132370669719666611221869887619690533863580123718718899071620556783589646821927834358837729703850551811417965177868293001511877363771591542318167711838943922363934546264955947513480944766854187676358586129517057046749075921051111733864332060987851237583674886085162591437354841838838924343631082020487950932980127888775860194593957140294830839290551024487598492442879387661028411347833046118694596247621507057806168276399348097477353567037963404578997921345027404602647176764966157464425423249127989300396335536663110086085879633155709657324002469716981883226767963229791476342213090814590035607524606052099017920770820075520449881780562791921249740803286783538111741895117231988196577391689831014599140019532374316920521901501903843331348414543984242471239188860972730077776789504072930744736323377140717019479504781447681366378680914578933238846167394443965600261300941425319565172221770425028053966547229964868530612766827651585449184380554452166937145813865832786486719094131098731578585841266489647090915516667822338983211086856590985586444054214043176197222665224214234574244419358764365000159484786190730092529803108306341634007673608294732655934821118400664524171112238959971644769231340591880812619734516416253331202685412699997429659123947984859661547112524770059154201611507846927529938624920102377213567832894776658280767163622308342058583496572517547077784636634509100343882976650108605710202766414263250669998187072662766271889083850680610597513121990428249353263825658850073825130342479250119810112305398697304486352449329153484259183352700913535035465174405145008296712165429918045370485630802934668814869186748841560807079459087896885200064404688603010376324495390139033229766945554402186828195455623520056204819002752803840073338778791925315715555079937828667875125446642221764286426529513550866600654544138515979318395245065737921929083235259657560196080040206440917802515063390937832161532700085138983554542284204555614976050348220813226102577889784915699246963020898795453654492980576596157795953808792437411654687787973654413439450861982130674605532766444337097595594686483447792800863962030559610531988828138138933281804406009205621181077760604352956005789615025618404663485278993625605089998490209732757066042336776296403517720759817998483418767917777364921263552287020214477215257559212361314665456344147602743076308738307160054707794002398118728498485492735681258570471731608991932229932247044845548099620479686543856906567215117470577429534106883726406094805102371749847630260183925696838521361926317055315867817161944554093866332251875271643862518770913934616487841730687359200856199753451932573266640260804258105097426720183267664240492813692490506356847470027793302569651814650994770514952291795014476222479116840803844489195228922446460768238930002512220895990058200323015164402588465930913700682990591107997476048388575007784757182987822006668613274546708410416754742351683141700405238033218108472116873729293818794353220228044123072610372128172497919993507165482852376497507801059373101250876106086330794464751133929216172397893554027327032651937214408825407852573572734625135675249709740945412783387575762084550187022078689744039458836434398164979725867789570405328986023669684161623451685825920969598381587137131853765015192472949555592486064452412096494875215061319473491742598167013834015455251186587236640901947050566096908645855114981359871795019459864724654302584215517512787742109800044203682132001339939205083585808862617195380004080109918991438299933139792623666864481383148380398207408853790602400769297814845141160696909049823992634287413763359227912374537651243712274946835511827703855504994012688247333209852647583700315680453343491255315693127205865345757367467898738441827480946768491658146692562384285736689024513003380084879038263411114372658892241714260775498713628815875002511548037101351993292466798087031796766076096288040896335245802488608005970466761042867596522276107158077622994844897842846651136051935513150993451610262706950996384818059388328081053692688742527389835686178905036840241902757104605984914820619302617859105509105791514427929661379959492090295101859911329628332701674753680965750754158804272517179557731974404471876108487842046152940496660570947171592838803768604566122241339398044843979148392809604898884394709307066195042783619593162898009002385177856222651045232675621003242584634093502635040582415474959075303595745782801859326967285462953315241917896446346606167951874981752731952241837764421064658085216723627952037250262410938498669094649036066482295636144499073911500472828631791234069992485208456670003067525130901927302895234932710817853234909873599399435472780370615846276967778114391651420107751827775358353399912160269560578504535139897387707016068052058565231484643352423632987283054447794196084903078026921301646356724482435522308858188505803515803460975374965224606519045449893455181792824514323645293304306199406082459661034727310941169406975376059805996029670692778309422336215798430579567273528343587629406696002146218096405195633909625134100144807215966948124620394589425024486520026279156965193861504642159730257557166938383067513454653440105334549614808119417663504876809260932438343364861354860360563624248662093785199353950695178271354239334530748066337139092866273323041225490702897978340504561017522400164922635158212961878804647225113605746735980878099342432502338151531360393713027379674428272753829078123390722764489542208912851332608410473002197470371214597259978192742182686435948169665318092853979391180150227011163067303656663431873790554641501847375364328300448371444829782607591877374000984768047201075266911259050293601240307007852103513553542835763365060052515924626468488077422327686044574258996853535710671762195007578569460022268017143847472277009936448353938382415974459879869888650840780430691142665965464402478280418618589392553411518595836768458429101930023353222142994313182155625054669184763659703805922924310495963288672453671955198932375621361645238703766499279152002481109613494184331221612508603809314123664059933595274709196351120646516647644445674268202354129106842786322932958257042575711431082874942672459623858356507716937574801986457477156141443143696522414231881448980434389809131845503926587431287553711166089932497870702677570372430613909962643777322554683937533581514785460136176077556539656628772346870472001893317539625212097395821749404787688354166391473625841559861125858257867153185230535790235872590659181235410651973177171049903067640137199703318320297687752853461697605764418730327202066901299262081608758272236788658907295938927490984829425845207610398491592835365270541581435311787534597755157480270051451197927286696943523265256114782996475253411522001614429785384393894027181461672077212188759776328118966864720371224286528513839122381084647952513738366455841383260140120517652420603593365206527410916445108794478347005672294983480452557102726336716168117322104268220917760759463280313330688578283223024165361337140144361434651670378912209509392977076836101994075867191624547748222431578680780923660143958004385009433890504801204573360189742800560864681757929620345660362745096151677343967171044561909436467921294394987077836961100822133485443860095935061714160899107320185379000963413690262904711763876527645099482355206518127427637520191076205168267226690977276943773727014441773152112723753467746391916547675418023624828295288744574234165564969350686030569955499853218301685262328664791889875083533375030862983477860328402901406769817942260423697441228536607649069964944443752816214885436146300842013854163960499023445349778415703377591671003113146447796018659621017453399333462525903772241020042694589622381912454806814108021696756942633538620233087943991111928508541438400655873951903866104015324681973704732120544408708574198171021845283808316073468246481213370419067967143214776323019183656004197203517650891093768089901273644171122134156472555685243841085705817323270057031496228778409663452171728266335832933932845171220651657607592069888314268041215228352012134316185435357859925852445587833483606130953947974925084351565349718826542011963133763830732836963265634984691854769070721105151719438762155929187187407108382703220249866832019103873147280995293079190653336549612455486143778433354930613222994453470822178427358525454210206323947808616555208270509720948862346184710508069917136525536169576996510785773022839121636603295856410907255783596845902308251324474252361593245384080977906749723563906171171507658209074515005729717670771431402003740130161524066833558070967854298035968704970066665897508529743730111978566704943036906007865017519401103785909128808094441825079811008631681921276693064779660408006029872170868545423039755231674064439796531761917612194459377624346929348387904905452926896066352006705709501066983399444224461424373874325813325901651579442329184934747249297233776843241276027865229182765136046173833073732823644926249884958758858887840121523222739463129835162253283140175346832021762183263406099305543111329228503032366778722382016408948758133514591171511295048024138386260935401170049060350465570754538377911557957963104979153925985585236384901213755400163488587969292827207400751773016195112687310223312316018194165677211690333876847112490429122229162487311311819995427643659666005518423654265019981816161762172115975250043295789666919104935636028566560352279306707816805717310929111992376906467492176612417264272816422110635824487718824781365935094499627640877080364629611374537223735794007928169898248870865854255019629327319571505781801226236727263618398237777810359128364486475752128460604109272852957444845036094905639589918493232389141276520914104688409048073896065856626850318916645106596714182144289560449242198918238164618779469063222962418783479705172030141681845719981301642055646309276113863847808366977335189347822134207838851791160217492693604672436437790034885411649389804241593380383778816793502616717030029249488128703036555835119330123744113465145292008230050737008333020659774045820393308299061034060040322595779863302642127185404624004931221935254796559531632707286359219660599036003442842656460364255795148510909376153376282999715976810945113099976813381670933122988597364286544961679468486659040167482195982523402102280713878972950025157783118250551630412017430673836693005126015187559992199924505143223790851491081555740265936250463387460411960893171777509223856960378927493681398801102145524794915158169913248081306032109517035565342092029218642618265005989627892863791215680726571458964021754733087674865562176635307926448119876275387769518271174070604521094940189900026197555509634225434592277750929262824777221603414683826480992809818330608273905589160932063509836468022728035333604116630796224277785039719829952682025776133473166823190362055350302155260094436962654436946791825490002018385479814967030812071088225013118970847182527199436840972595054969689292960301458677887775774103715212695190895649118857453073342315841108407089229094372196174750238380221172928146348337388931577434545773529632587667974312437742275625268320214687357698354159764564328099784567499664970433215944164482419488062812802146509770799320001326269128797023149850325300798421391921891963220459545422394012376212645632357125493955353321175008255342766488273634379342405930101296080336679842986201777307337650664857288318757739497596139635447655985405891577393792619097435358437646959154810360539783291121080474589889288035093903774244585586305015224561989660174612836453614306895348934277690447475698072796845203971481538035169269675428946972257292724345545178685449061994154173516233368894752567761629552457170908388337183850215085435791644781775919619227626382711786190765576996982220223150836480911135634775346586335001895735243182289214023948434181101470469250239837875931842300098823212285331033171653524929545018042873504075786361496206303743572526168970044809002963118026905938472641465127163969075294566490476606535549904189815677712120603434259869060813110218220091473969066838929193191360367282550271942061275905013192660612722598913592383681184797053060508355325584171500205900380079714326158211102101794339419169149665614771878665200050156716569344648611148865020324134774206693619736895192558928382488462906811605701751519644608346322958293979238101153135468250524412961626435370407815390686817649858938219509407240830460666722699434015457065529738883540958892293094102210635355007734190791102736499361820339213961452417095309985741165371458002892667021306575538648149576276323163668116722176120138500608207002278068418788206143657924629613616614002510909100492670774829809456070286097417314919198610134750858043399520247860480812821684978776812824345209352908519521416802150181016254624467266871176694370680909061508025069299315695574592141593990055413340224105454530740951384547268861610272706198440730300863484565529197257429056050430958580895985352568777796365680936877094680172131630382471856039858529394764554040064129545774045785059276489133869485885302100840784816775869533121326916981829749752533984102407946378517060178797049938250830603420659023137389970676606183815225798579059640950295139755789593982993546343241396680034046177098157993189383756140167317223221565901818003430073042791584908857430966769690832018662961149018732032583110032149699734641123614659476688514557416792265001862445261413411793595939178803145168392235272040081989018216728061594588237206376699144644970583806112057486323691444717530166402533588378800662875126505727328831448405694465203191147677700905286977755103991708394577879422930141567291392214758490169805825849482564798596352166648106052046045378266786091379426428561834950971593250407023970391897862552988361820297470415409910826322775218145423738530485317659506748279196967083552400318289963132520839863224843475809044371369761581668730643371902329775824534632850504641501015256939399455102276334866970704007687793032879334603673772777064552125793044507207547583406798002279867701291972983652771990284393700432089076801483660106932915491278050527467412064478233044865060239460882741080251440066565004449020934606836142905532889074743257892249683396891416026955739548268759103765594101128186334961528303824552551159825806051797456451377652908550237968913047817862496827074686862809096907839009085128611856291264734723723435108134601525346243718017288958711203756614517274260385744346433641461158855939434111367721523146545137561869160800969393135919211306380465240033520843555306235822047142903759616502320398933521060954186208488605852391884067459424957983773285566411957405006228339277406113864696741011094930495610707701458498770268105035969211562797985647579348865929861922062784516741729996279991275984167544267482876220495614389973168773750123573177486479472018489524924447721840251983481136076186733169373555969861674926533684789258273700848946811934665546534267459865415860636007581055229360564141007852877514222215077695646426251522092167225013151241725173375247198084296898731239798713150559807560134087641015741028431106198494021204472107836869395857133850713042998854805221794325224390242791949533204735105346803805584821982583092360496480920717388059208025790490916652978572842075600265725971709058619802485569991305175657318605041410914270720536627078424336940381942132294295274667109455554682200654175657383719560422967218121834691901283078963747666064677606801536182215308482658286855717694404179173738412948647405194133647937356602856625862912693513298703107368321235883634143454936948658509145211939472778777130438044345620719830246548343180350941198822005785329818034480471817111674689579442788667772172778265206119032838230010706969360226113559427722812649303424817680801341047598525937583240024703825069795716007638750195934626287427360281937247069113814092588080583595015687293914291487439991490289807212441945841921801993933755794789413504675598319254575268870025572341949485821671239140463750817001573126330007327680775345012302237349223693309772816279951063876318721771133221364592804282098678856908737719038087770637795364777020544707794066731424172071962698594432613693387757408426397269109776321001271018837635395985096015753732560864660497897730733436642026141876147418359536309050072354388722063782401792047684403187140549165447869394481921667909485095071460858502226659420436509400161902036074935176508080939565946309368337750058783385997679862479177343484707116557772862826260880847268362982299177256870021606651960290952669439583719691787818067801655630554049755685605082585438091048126408971580499023638471690264127125212572768830654307407875010986194743313693343263285900586371979426344281403494649335471969160139210938999433719372588541749711987698338232018189384873835189806626511669301703430039355639560636288056230065442631781562681688117852170181488280665679252910544463304928023607259561438167183858088022024927887901197412457477326894645482637039409596783981160062556553479247502179952718918101064425365417119108535965169393790677806634404009565460572864624776608136506250406696370323603334654332376477898845870456285151232443702350139986187899358085219150593156027855653344618496406502291587098703032733598273374131625001441414640728917514668032639953363713331456815054124280225276070176367094063518361263409982388297122956973877911856676473764145095708845975870153900467834427605624332026321798899098170449897890340644153092308766374148828740933918808341904473814091996021230530277845982184183289455350267602424970973695911879799060364120919736938327082228988243632724845423467943233406459379072819469408042229451354573563754663141342698799562175715205632313410009347523856937633754771801588490066924224666667230462799357174292092917860488701588221116476853126991724006562475391935087112693905976988675939334399815564747000166318850453159302238404999064504746832579815858311911532613684581316934122111585265112517746846032252818342115253191059584351411689086605888994945394824175623212794927912190420215955585725795667815621502365997240916536252127288938782884450420110934274572310458044834643602360113628198017845353313924670044171987382831838694750490537979001874387488742430656739800597822101605528358168327106146416378556107132230928252235971970715939145178281732682008095894285705817319484017469420836325173343454844452503639022119381292489978197035103449340897568047582969377937311592151840550877714382199452211322746490682693986233199485823939986227764115162859803322372434362931649871093646750676263648187485649819051389536844928503612523789676464820492565738699774532955959406356240344387773282737379752415607285924688815911860426906116631786678959438846486199670188620686717919965265481863212437250863471555230144163425490853615846424274285125603450592755998948982578826888180516045791878269579608780470532358590063050123590130903304519507713022252324059947098640934724907545483993042106772783585464810393796332730487686706882572412305219852970420815540714599700927822279398840019012988250774399304526999740283241099439155773481220567141775574466553282991386631870569763004535533798916600565871233423468864619246582305554100458195203981070660076153473821096703318007186198261387659689565333807051552397171798122743670980362653418628754673399240370257171088779477296700638630943695376759442795471333679721981879158684207827623053265712910708447494947979559341174451096596786847243927232212509433250168964799045508965560287924590975125535106875239424970680889669582426893939786341841649371705199182724624900864169327752744364716033706617691090098916451453774209976984807082065927887153017095003141415854814894993701322898904433675717280874645236339348944370024252168860165472962556937623965460558210542355656428709092147632410608204218858405642785619437164418959135734650186518318617857233736518654802813397922702457065029290089465664179449646814131421693248067475185252754394539327030996530845229881551120794114973449627994291362560802675031359909037150801818528139021591447482311454672531075625297466846103114422214794364011511462553115925107563165117336750619220807743007729631304981955042570270651261224471930080001251200816893270550648855144668792306022921813436926113103144876504171834306051701923372636622831404546009944202026746687241233612412603335107551517259929790122518276973388113499614944336614504887845989601613069536528142786083478813711316616116617318369474096014612697948157129005574508184255691157328487132660520593870864646862208902282286199196731390520835656135582645159458086323046648429888349446344614233096320355617767724232106176893509907191696937178206332165850858834622722943485167172292432381683318743952055408045750431748432979885813812969734585771874929431174309028809197470088492958655559644124292596566567882860178219416328449721265413297668456868223852157341664643102800380719453908228168642371768546879252563019146110223848974930631433503807692680642234696125755051208108290038095958652368784576050448867101017289669055690644192916280652937424127520468898123704524033402391160263364297392312257387454452980250337013239894740614857637462137232133902137316356708021775473121215052130572447157106098734894086225128999722004018398806490998016433259512452010568379402144611481406916987864193860347755248174313702439488899729137991009219545349153719852884132042369759401754070623848777625655528267582507864613143952813214469066430834262830277985224678413953026395822334938162293938873019649513084468809644045145882581522649521598515649055925501373705464840858909164468329970098676454976122116227100682147253843350713138844100259733596718632932574056667997704832329315391173255011876654326365959728707885257611845516503294146113035276561023664031802833649890052621818574476327306908808675265360722146317807327233830522818137547652601451049550476114325199369655382432553421934949069896987739367796325860316026052521631156366282579054208651699600665512925734260317850030652350693016806682141335182795173787882905942304806076821377122556680597224814753559754493594097649572572020272853726988854640567959999820321141898980415355024222421556023257334469268812077363999788986600197856777918806683964974777388445571456208662806220609993828799545718912069351220679436912971456561564915819185102169255359676598196071155170373230290386265049381777396163523872731042037280298535390038435582921597089113618759013898606321266225558096436384082783538102024887442296863827077561912780957963420776301525793393518379027540704099828390691788975772611578654920451122395087122754656258593553253181391572710770208224872338463325607313109199654182072706905372846807090675666711938723305383060208894577608113093758789561906624993958880017721962578742724239819859811449733899318421654548275125240038984353029605082961577281330429660088165204456445068434573395456662621969354147587523665249981615742482592880313901714837591621860379761918100861415826776145640282601844297657780295351807796623148260867417506136891148737750123935006225944064801120288714809184972865482298245443118411145849074581288499594178864885299916594033312152035384191024879903274626904823183663189924437917493410372517077799451675131952587295182266556489290943178202624181694299835051354067715181005036882776589979348258455770128844202099585265350554290232186575209814046329417653678936794256574547707862875584130344280819767489321277679178490005041482736391502516633824923415906709258774940874856206564091477893167586279279079908394309277839349275902339571618122614683338834960892603447399129977800878589493300837259336037834147569671565001897215807022354983874369934219916541358611787616277707818260428585628378230613700496871049968510127438324226026788255276477301660090975909418628840682341639380038588667811319608754710157652545379073658513072488700363319083764431044703882161752111436723014948292482462687795042524992492720297416660932645196167322629264818815997195152026451623431168802064635065037703156458577866486190332554826236462480784115550997571055220617495150156706156980710285557835784380346766531996079672376578205311176807774194526321901834685106086824554326439967942904200286159641853473432312191659778775264368554589415752805170079885526427110413632340174448779572506072216326498694359015356788697863891206603368835958481779667217073419793497063556217818522083064962497198428138111543139410544969098378926975286186756619527279866866485670806728558201099972878091525191528823250658702745439407693648254042286986428460572358110666161636634579289456256932522949676875523472247980429109901508957775585673612263506272718213593748015616191047180571666080489814942291209721701777303582164066352705910406503510634677422657707601856899038385748728191469831016200939409846435233241487944379056890661304591364347965339265603060098377881197389722206559606219755315412755300999721606103566271642087071170733692460612490559972655397306969012134157687442577134720026977934701406526519554938358678035400152825853363044422120468830200319678229170065283470049467617123076916095023640582330809812466908750525081415115804555262103631185748604151327613244336995466672249936651736662911761614949055489405040621873936781560511634492765000719013049736977991854248057524679566747655838795965544136645868231680095532743729626897064408147062193580233450006689547094418992441118844157520390328425228733761526179646617029952193893630353612815318262506634150479492275629147523570256039361933513231115094073967848001676783631527238072854827938254689709207998157187426961660400183988953030151030228892300962134227294073816551257496154158059786072799908596325489697188491602636866907215953223837663895299977582464460765517362168311561854985532544081814293196190965926737886130649262670167025419475653847821374854435649991452258982492186695147780970265876078467455750637831719537900606328577100383587473636530326602002103810037876182561382922734901145475218996259290982503882396926633112962967637300499227000452913614711931164863409012720314613778080085875224931024173801164268435234905294695770998838958073322235126387111605755897847276789900094510019392492357952444683730804034650111714613165652692224492143796360697403183138109794102976976757438379753765859507294737709406465929697651292891201782218343874982440962081126225942658422199915827694829944428734218664373789166530590628289816548202822641032569987206333318399078298765477379894298340313937209769147177685649018151226280429037278992009666647663759880897145037838299894047253231558743607386051027552489679317823411849888978058481937862276289672417821085361756393775850513107784709368047888375705002024676490084074289475127691344887558585597124894543198464873740937954778248054398704523408450172816493894802067315971116898390127723745227885962915706222366252626462322767121256992886301084239224702283440402079573934607219150065409781401285951178358110568306154792749275351814514753673835069289313244910213393069232549966729127399490555583742132874742532794615166227341179670742227879915631949594253189437432898540059923275414634694218018557904802392634918166892208380940115536910473452115961589872888368920091814867433177828858611573479463957777757492566506424327529786017805836308969925663465297424130945566281490043538161235402221590077066249182616954166881866966955648453084135972790882806996374490546513230603541801572028724120915056251625562214810394563285048852649095438118589873164387585648639562488862185374165061132748133715383212536041519129233239851942997921743356077551982287308105789302110396449216097767286785680855230517290940348928193773520494109990566432012972487388040361892161445952408359477834044795533509575135760458846568977646598389051224694780239323501090382961457121228982973708560354033155304737886387622743872110018163911860852538389555614832543507321837754069628335524064488253943057523459478126740476993013075427880225874259930432021119622470900458111543298159314178741790719517656539718108554980374490618416123560921010256538186782352592801995376869655225130759891194256794754861157345605016496483562301147584253803388941418222296629479877708890087646849132424565570636527723491583173011636232981587746932356670512630461840087565539299760746412240830331455098833019460645878830655295852664441719204781331308609269910321482397054710548211443723670153329005065276623195826877372573838645566437353129834436828379544651287013630799697591048646182612842529279554533115942997515105967864988441985338774174128676847444054996354207881334630591068583739007996535757701621780529869445436524436665187939536469618567126380889267991123929696564461241098222770943064465718236749635505766308209370132745776516009814538668835377371527621020338773934180433065953010112247772613263291977657386572897818609045774333794645599522609516824312142599218056823178837039309727588323128900380661485061827435471794218160477648977338033200552730251492016466583362760977742119715898184657898473087122831277085034506772614278743517427838640044731049406459308772848298237718166414102603240957145426391822433491668455145648645683874997066902066512749042244656768971924639926537290144311448594085804083339030952147163603879501697386546851280353780828271300754858759938959377148251322050100555874170380292898141324476265219812516071271065446474887052408582798294620827272544720286806941149815341429831996523269588034125657886026995105010666013051647949297910693384656973445684374585356150519982227241894839309284098351659954769531285235843123536564386282831074017335366650269977903913947434449773517990860590980748181350823832576793752777073924867612247511552038823990093722241848148213818079231256122725984265813392062940899221376792969252266298987238384646201560989707766176911333242847005482932969702011133168311825612523640761711729361469339224551367978369850871224166962320945467892394143523785940795742756031658272519633182874276157102009681504795076548936365503202504722690287397415823130027948100220830529933621764121724052186519218005306798149324809570823414623232940492652996263788008597516977762732401541344066616553230144315444360596218733602009885649995262926736116148523685395145511609934621143568894569586515528089259197154190124457322931703054601100268082845524268466420987966702916784226300477333013937705133892841216001797289358469743777586515213987554928321835767813772217315425063619732462681485051481035903323008117952714300425416373117976847678086168369761250301897686075121385592334665672683986196852931906489399807864059988221999389419817710225422280159612156144914716033311924683194763571320116321057973695753872192482759654147995059930614202663082113969792115904443848013578675888200286509514415627214938475608114594530458197166450179268207848346312207142843960224404599940881563100015043083664855212891843522907635401558538641122340278598518323185870672277127745569179162784529472824361638587855142043334354555159562861878527070517975417532258460151391208095291775088933895353325674610413467219899221944796573987371033382499956197018892415527505192328847159842764542591915257757147920223993617075660743281451970923087060881627589979389746329924567435517914412882879789446037145212185373399262343946020217422898206320478692553018347412106551866198367026013453115517340606353268330769270963400896902848527116606080354324510821050815296062508593152219949771873760792653187662461279655826395572417983238242043150289483217826648360710484797977474565035015741244695701558737944651843278054612421970441396871474592573493041119328231557225004412435528158078753222622141655031670333253896292361306468744924990401107067861808978220079442708890185621779112946908625578307042998281119331668546234512389185754310758422044989846033353584114965918857845587982661655751051971858242930713238093500770450921970938126957887923565054545428355490502586888823655220317102538275273097743010527446191519778402460634704848964374661843654168488168864461248399477142271668639401485141488748279592971397262839960789116634085119081642235420514926868339920312415945320130653635245137022644473555797710760697650116555295538227707254594708671169496460647629948703299338025121760792665097215509521062838917021602886964323294276997182602821417707315885993853163001965769736531416816371502659623171699703293788099003531169654304045685175086826903283328179869963111413627527120039286949624867947823766982604195477200772895784911392695837891979919871767133883664705840299750328073945092678843192942223202341541570951461650334872965494615875636508569992022520250947805672067369997896919772713834156716029967940286682059501162957857338244132156432141554177031121812860759850151008844606072454993983159177070025241985215647756953078339921257418755168625555266117900591112426762441452037411191972588029835266202039388825354808318583032810395925129955336725754340442752794739991996573649116037081927519088572764317752817694490911934757612793513678217316418966146972464199398258072300467799342796020007644231660051048335307959097995280464099140543960256426684729269910409417731488124998962354669057104732644169891965100655188170161480110705697945788571732099596495320888318203291742048813969716151796570232503151703496020186864465870577269010770700612714437550128161869703661684552771911101777847761785977114461319272218872081268371097187650271437400967770740326985780601540252627391536527318370778744961192455160784829238297163565788068935567267954041513165676087311351845159485363135152016380964523513282988847791769545374878287223381486871369340334907448944351181817637354970706357504914130362852592478330167032029250044435940581908176018371241483454796111222879152963892807562878610483086207019307687141650712341496164674782251782681657914472597207529726078182357819984376637168357906615586919450284897099602411442950868823692019712714719706488961149996720756469824967648076504355734812348410972490139730712103276446432857076926769765005615572862007447297583855115718151128145636251893975705669487381013277333682810855104164353135436171968150993930676992071808982080148618678523914834446334161736271691342101000863277103417033493992475107419756069806944083766703406261702122631243274519071236989903326809484727900891239794979527035331944816608128532000333568287723957417920115379765080312378331326123517339228184591258971284215439411979944993900751197423712937219352282472021516864489386600001671067901062378928477470899757316836763799220881495199989626573434089141237941813934804261328316024830557244843290273372343536082631095206195017401209536039270264146924572563128535840160918579553237262517678100259545331990282215224467110530234696777100587754282768150183500439025386996413808939325366653842327193457236224681138984169137877357583844504980293605294751189785455193834619426928917516639140862246842725920239320538978800650490828850271578036444802063441937182218728599900884142302178129749687547922152408668645251184765992470091308549593287990191385129004890445951384941174358749957135858459408317334708268899365684013264214373263603222034569740756918625072051006410255380619119852303889714443606636969889884558156672236964583475555935258635868240703487419403919062562047560183416520120825755010877954270568239361297414182581253606414691576638539596273952694985792014262063634835660218577822533023420753923711613730035799567803303136658894652235764070998849857315498159871336593534016413061934546559018168142746248195216925333060552400658342822139723836603858644520404304332633170124173002833886284224649568048724493168178920565076463918222154663066472348602080072270172811108031307670190156082920505006486103271134551816315839430159236873137124288194447133524891043775274137513714097799520889742384168259610409504586913952676879693835764106587670292539643171131595952462322859132541848435250637140852362869936108432261913484663462247775058665428683707175677668625976552727952885995222228028568887749329176840143952187421801277187024304335264924560997532778805953249902803003750390740290255092787304837758472913234262909387045328054792196568442737880458704043160483961722455388915792969047241883265403025084745642895530295032324891308834803840387873937977677887293477803216631656978217331123084278149994059656174230203057244873689029331059123952227047857983928474519411407749424609455718155504477893718910853530740899016123740037999040524543638480539727619475765531385363928307700930327336462072776691280076753938594694834599384985541983941227171847110633744862560809383517630229342974070568757118010828076516065723702230291871001095064850232368088439882178201924389108208719639980708760891735296619933750055009834728074779408532200414502277939511098584273001210725896516630663275452288927289880393655679544410857320072759055966489858417475180627324069821611508377712483415558851694696755685323012803110664902045625332769208540107582397193005705345307884814756397650715639903889090079063450669079390572598528810314574801411267116329031024863884994878791092627993187540790297696889142026700924928535772047442258338964220081511890406122899304746488530435056269206857148600746225579241754595063844493324048538064127344485647659959072704284966470666780846872778221796639791593225250965004284216853189043294785249866754160174656442334977220520845121523979700551566685948769913512306867453090034749747061248903931475570874461635575268099428178266596935539148027202011765907600918509829020095401759879995079864303204180875299034620600685726525760570853491291716817300315642399484875343392618011819287681824349305355984271957994008966502202671514694225591533639659813573286202096824851058079255859373287566242320739554706312726998811711509825409647048498984259866538650275934897579888126227059453014199018197302850760973099163044699595664302070217383055200107931412307139918299057662100972442843891126006372226144361551679075991439494121883736758729270450700253966690141930099793617602523094221136434783768900890297241096428944735927564383517630616475609336031736789601337939120289651407645348755276731092003833597111398032917329845226820256577969219374210464840442738010115510243733045750283084866487834872532540103646293585538174034498483583212204110535390807812909194594465507139330537326511067029986016965039680950397769820350643459918674127291516935305454393767023558841305711155632442823316331479492038246741209443163691029805406657292118308782125300254252739187389459292290678751008739450843357836857173507933423265200041787503273179337073768220435611130926125897145649416817238636566409209753816014072605885163169010397303753907598365775794153198465167126305643203334502791776648465191958301554010770992642502097782991053408196668850578290916368317563019652152954899877729554034902210524542513789508904422024723638774504935958987787740872123439877500146384039677526534467960925015537738053618989729655373425774089961903459051340827914441273257757190252069782092445242803560115942880104650952976454556646490944676671559077340424390999788770066512533862204913123247412367522406707463975323596247391917160963533863248552944496016593704535998485765301945465424349058041468278909272451953520300133458530119769848130137130579285066706620066994494917626562571438008652147984061712166914265208464547095708819217329547416343829647487016277028005514886796484348176284202506609924048692820310241017682744665582625115661625267853090848592066075024710563608408397844315354690701085798593052296266342392348254962149399691368253302965657717557721227475924968866015272749628024295111383778335797073303128126282533539534846548995466488923144051279961447937068394808641925425622552053283543005492394696013209895771031198736051043210276504959576722294427509412408826877846329559489670456392924815849106426422689268966950360301720166088005445285918896350852620358880300828165135698026382566893808428702079738078274440620738741983371961686380510591764835998491329873195555040892020924974032794868469697102223276902660084023097323572493903325715327585398346949039325563574527996077115874013286757955026830535626658814700855831802664118400904641405795962639071016425505451814428509618717665334825132658125163462056275847602005320050358916767405728877483507089342228343336412203971543132332743351137116945706740629857009490727401915636748357761851427775899032764832408162349568196783734087765807184865397298694491251108332368398386493065701151591853717832381886598971743829940203485492356285094293148913187664822797569552037270254849539868561992653852614259450045086240685338499790731047634585372746002020690718696497038442934220839480271401697662370406090484399642639087629913115798535372014842723872584751069163745757389620481838073655487040149825218686282075864685566045451787727811620097559665169148013001580946293787642878630788949613050733201306551583417354007247387527790301188112537823017093638762614904496939258429606039871120492914570790510986967939618446940243432062943379198607594414645060999136998422721796642674822025670720108616673166475393173436718744506209013711870918070331876114157828927937652191028680210508050521492324509044051117104769397826406445008578595318749990251105801720530426872464843651454323724024539950752342511577051125107350766673050574421683414927348406246442679362347773575727764656651062412699061407861841226891261497330527234114746715001818953683484581224617051885972331324420875377546210017779447975730684824561406804643079683187399417108974621556090979716173496881629098037215773621440188786974706964598015351716808929714997290804708597218838737390972858701488693505798536286168294386271155917438093977342333274862173249176854762794605835348965825709763846350164734318305618250451226004765732777957119404887879819426835436777443900580703991324259376844231659075807809409941489893903466667569790248651010811286468646246299536339606661513496127486220632945451873615131512328056280425260182626093871518542239394079565169047010109711518540950953299159716434283052696455615547222333916647040438409963196485234690806005351402516983515137499641121627225218077558484778814254117789534568995823258988693756591557023544586368757205981296698971660004200667585553473726084561318595346772182804124850973343113420198853058455290541543363475947579332746859989673926766162746811154907540137222862104266124299916313190282862305121444501162115291183054097692603597937339565253144087986391525676334981947165893092932316792558792899346446601119790907264167543805517903051817666111157350361989617884795555868471450219157938109411693980937691118408861980970682106753359869337665668032650032189129576022777754038706047986487553913360919293137695966924004509200709316626934634999837430069803483187141940831554122294940963199341623979478017967266358107832090141622177616052819402046175716455766111641876179113644970072784687187816529900163532357228777240683234783636271518570124480068763548291310446411275075846384697769539370546421552065315676959662693099932792749492626961153200337782995845716586013340419451941844402968549694696924592401348124935958806806883308962929236518635602263279537236221247058225662463566490523168194606937051697585990466944514957769913290832523647403345986415670644456908613437245676545718319434714698756593033366346513772813604477889391757897702949486338040609199904992430673424734623045143040411118806007771650254952030131118035452532980508774974687858326152536468704942060779861347845427211113230295694563157363499334143316547698083705527392307540950663293095028178184689314669912020579766986166311263797134376976609730256438083327900899689820698234337238843499523677296099904475008675433504524928645948750558032575612049425690012619666132472027507131486943430590378013228672307995521531288423929436619648381894464986238131972098552323595581084609513847364879944995579362368274363740008079543187072143060729016933223204131922130955647071796116471697809394167414697064357592926425907176626777865595544600729242378081758908053026326075620226388741331345084091813781931596593352834570571645601668993565962814300701162013649410404579644743498534085913875503918288948772823798895327656081920965710462417755409908989497512175888606444811968168402028317946980225124524639880808509998168703760087306546914195564449281580662059208047581326366145473513945848441628174449802815709814265098609294808381019794820068799939793311473224005625628819461432573001484037615960056836282042867930917382676192299816391044854169940253621938107557854426253345782357577927507547871448739777564741203706061518540639982352697046088692899108766545679798762948988238081676799840910172845330634999255122096939676751051570753818204957190015483342222732204360751848943282356204052770432442093840574148183413710025923844043786433644017624948639118897670472302398672900445627664147498909574501663096046369523914845981905293335647177069489095677037788987300779798880879946754008646926217336999967786104145181832125082525243529824337305726764645891064147209083189593510533393552636191393648876778638845317699476647454964044971166280938584922942936925979756033985188108472323681795641228173349863556762496337793561359057931312929889170497046102549784866428031709443207799766700999938631022712171457251209842705658773880273219820315652256071027730615007989774269413156205756063472482514186320146395816953550103806874217641573428844509498079473484088180787461214003066273293870691582101873148890865792317209125297428447303594372925727563826034526181786271047136385107255701736692177307325621152253627451355424909271530918511020310431048475762693325573067600787956485597661343512152463252820853367011016476281241848377902064684327252647723791281175946676188878655330380702251096358853314794506445025892545040234349673914555545381004908573631781274725525754440656244214890259501228610378134171629709757851019781079294761102961533677821946825569110642801621684220290652720392361211432161910737893156362120942503537763499849206364409798944103262204914551889785778812456000613139544660001291447978062050132525055910396208215808652701726467281807537898585369284445705844505550686368252506143232940890936309507539514190947814637298348223368000946363439281957274431111519650599164390264485588380464749916304785178877771083753712337837065925236476139749782205549991722777280895356265305271489825484669951008880118697254323739771643119445126107765770046990663309973266818451997072239324538060198966922296268915972955250495192809944081230921643756269249801357190317505083123352961141040967541750557881776004992832006789779526648165091221206580926442529156501145130451711388673101218011771644610852588124715766955773077700294610224175479714787019411580987354315170905037063556270041846212147864477627315544519647773125009524594409886965114086602875418517849943785018424005964891432913987477196537777281014127599858661531708472044985508854339248270144353965939107058065619624433161613581164300716255037023114345041494639166034162963217880499499697333311742490165062633539409664437287435665965290433726966414594805649544546641725197109836875892806119692495705994848324190022528737955558983395376556794586230935687499390306501989542655897518411030419519456591885496641802973797571524124458480830409541237788683628953287801252118771456041851820386867451429111334760690906467288043030403614259571661501435416625388725037776162288308678831367754606889940094846211687247913968709367288700867373574553764502042602021417296595078257908247653126239716333923698381927109683847580540152227643881361345399215265555573312646526607492744614848207223858126861010361734966726629435475583658992316487682827231088041481600574262390514953699509300239621862310327108761623116409853532780871707429885312630475412441716456713044537735344923134109070709882972623106934929555875295299592825827076900308374957344514184555835728036608008429314814897136235256332329634434028765313976056074540648706300147309113897839965938574001112598558678928852783137006061974544955873732230580347963941031794431484602954691765951006434784568191585827153720793043682182239603258655051177450287597064382396006317405218758264528432263452439691484497019653221229599522750293439573415637534392746717817266341654302972436876600204809265309925133365490782978802364220163497229268702279072518706276506943604168650975172425182233398054450969012398926268910348025941677507942186439533488812892762858230425891743126247113242851077313326713948763856474302205654023055542627721016010696152385503446063904104207051714462796804308277912764801262590524927783212854272300886615112335436439575750069760859773139752450698835332409664104870779251438683619246110119873091316204246248541425802486627344487695335887064939929236691630493385179907220737484354963173355580694988627930923175685312048210486836541237105308057518392589848125262104498141169412167292834286937153498201866386263804973478923742435311892798490257529562135266223510246340816212422579118308639903270067879246979042959021710988976394337207879584351827496673904094682797741261914220666690468974293882577413220425329847413390058645675725211575157678662417355212732686924149251219462459756427716790280085082232880934532795982939793899941852454523652623736648016169771484521401135553413873406432857117358419891557783380159402053905073002368418390170035830293626542801913922713697245732529300732642231381302713868250175568748033793424297450947393905300733815858911823326499798123196860104751947107724831880448664560511611412667185129070131692382114053598780250124959494399075627435257821995910255533391685051835043818056576285774592881316193025599107091527486851049328983909726719193736820056411923210768957878280965657506964272555408777515328140455055402542644809887316759040353516721898645362683446577001774932352312360942203808065475406264309966804353064908703399214207760595278437286708479017935481634552122782840558322410756452317593699193126130126757581809888986341696437201370553451052142110587672196854711611343176193822811027061810969796393867672767441557476344524151873692922215251637263108827382105789853630215396526220668423058158951111952288533353044663199030954492777606818064032075204918606955844701484965911646471866573291778238022449474736386524242848963057557826592794230884894300468128043420641813108933562188118414483941110248629585642330845286377940034439039557049562455233690621975221274415796194418166161531623510599711278630657044963760007818308457587305780992351497660399695714545818433601468156654722218055245108945309123281647418268476138631548920123392981128600261569869722203381349490338951279088923051164909875770739091759554791329884153302689163547304924896851352895915493947438160647547062260660081021247498563402395486841733569016742349154068360385265369154015268591036820044549565260057305428159417244109407357029073724283150018515746051060869571671063388310823957040341502231765733532682023658090708708268367788179191535099683663970546455271275473485731066980630979902577814526796595208352273283995451166541371223187465590201357829878645227035664834827086863488005759924294438412918629007416287831187267834171981724556901906706502007776717107373361087262548577463175017367052453943891945790720123594503106098199194660111846039554619507094474850602793706100219339272890739737963256093476133042035063646899009620003525388653460425276424993921748314324997323403907649001423415174319779446297899859328959779047347756488982257897728405658307804637428353986964453174486110927572185737253761691262491238539482647989739052590848642194430539819108326673431683945532328454091529040322960142051601081589537789009516569458762070498115234745730624742630368621501504991363696610508632270699341449704585695773290722081763551785509246756893985124660919177709411550282858940505574371794204933365471430262182096591636370369741935155759852988896715438083606801945602374190441977719510265199808577623632322912589276414420980259106841915039322998274484656582456715730976032972169424286214034967350439251420344856388721153481721719981991709223508537072655786724331975437351722273772131150199993705578104149083753542500628037629747757209209557624462833773489493972162657593655603422461243393052042823039861321322187963068212802910050167615905078358357555908732866136915616624038711697681027795506720583832960638653529553976895906371746449321219555315967741550052669015629591900742074581443698230007656799799640535630588088187996879345476854567027016922211258966216908275501099031511422526560425088262403758418112900840876825609319172046140621951694892266457539766764054391514501183940624465804930974427248419345658083512208905133228692371708209275099733473471444409564394133782806692647525358417148871786569272387429095055170926677628559474138624222318478603607218683971673549080818403429311132760400795765340744924060680224815577947494713054630861578201892382884027075222906512444751502818674123162349294634752685756799927718792346079849162331531244322637305222860606761935767707891210947581136337344752543149133239238447904060480787435009527163447658593428131801215759751522102429683671165905381110624007315553880926062676568234315183708433282725800957670025736978357913557541242393239974084368549645821142002116257431854955426140616192902747031003060077528642535287656923523401806313052643652494773281459658639051020200887782608909921098849305365175569109194101936547509865066625252565658235451559257359327592252714832924582080652126558083141682228741034638837790939646394447409776052337663019570711246133904495150504118113800929123734356104422068889586527117171818623716759353963180280500292995595564206904348656156951810660428105053433230786380668833190618410282141341079590995822956856438090522498862689260362360064404427270591151461503420114922337348158964714924543492391287273338379890264731711649756680223097550365447835249285464356413893106291427069558633087717913253950273453363402521126966999307854561279585029271084848938413807402489757766721318263310256083989626083943208990427471921347170491630917191404241239440850426053769385244940997657257283585737687621937205254599314008248435765622776658356657307418433678962887037911264860706207850083658533847456814030019110533343314520263507844608977421652659764640778572762054811091812812086694692586248373009263717831200456049389028002071282512619207725245948562983903502312019555349043948782011675617989945010736698239510072967805963843026353459633781806527907548367864368687883657275139398925091828418823107886917976370152863248511502486505563644492989665645639946771344665651038974663715843057402240826626747073871334263951287442094119011502759728076132433695451642397571778644468872104557532539543019458650640144715118538984028791478713319173636280188335665580388229405250129844855688928904216998645673606388278322220456166402293046392813913240986795529393520381856766994670583993718103168916911959407830791888602993781953452766964521369230367341506223835864880119852350251525893809993992105350399411306620064986346993130622306476340047748684886157243598023114485065285119675859220869043840783809904083573328950441091001087488379213055856713934722171658240474114149568172228203451573106064568974986580945205494320340168487822867191563825497980232726914941541899473156433975063766998943608200281689317147685038191577093402971189261891174802704654809656240653760771363468766514185646353235013283114804824940446363837285490959123751769075427727990404551276395550239024881234665466245707718628133971531417464724760252636703994418000638325307051250868078051384064693416576563986564323842533521532892734371692113579104649717712854723895498595431110487272458283815927816079386510154273809937070383384653209989346458417750235145213514119916958009604022799628983922096561623255096719306817137576342731346995235094734694473590190772989779842119069892028590131459033789452240821885909945545288946750068637480724582993518163106826203385949330282242141878118343907092450565776476595188278425089146650378617187771074243752490289531893200301065493180300001525969604569646118087007451710927053801069672215681701941992257219880885555069978172415484403071395918194268056099438194050514270888374052439022183927890904947046407504715417745282021298129100457846803010916324012230809474040455282118730449048701135858110593296329880422892759526739350172364990586221891178080001954249624224601015184559542080747739830318832420762233012852613405707432212459039063188875011202463207185258622317689517876352609866029677419135221711948816776212402194632383458757857484148561788205613941470463260914453495631976150166842460204672596694500184109558119794395452420046846515734675202002165162919553444547680304402161357576189088573998224400392024326369743435250095642400991236544526285319027523822466055400492941009474127188845740587625030819163140120611196063054241386795005171848036454713409832258136302345483332047016400814600382689013021714126079782698852102217289957517937173002401787810553342366453363400891716901558567153878832120847500965424982189002680108771660325900094452189136405225591939218304569168799293194598096963344676902841315423134341478551460071245427659686074228955977318567852598942999962580396379146888637047282068107047094402388266520774620937123311305524505902176620674461221177355809915413275620381004912464797777016174239054058797330623301214987567104422223280134646863099675990832133753459850558604250998258685117070122565303662725846214965739754460851877413881045937900581810696940073592150023463006927135699794739011520696285304763147515095153789297449411894059835372588224784550170534276045485275036262054221439849288197047069223576922393210481805120633335632473943920930217956900221861464472082380443316654918455961957878304647537457612964770938912048828608022338365578000160449396964090203395358739341773358085551158208421219477899623761926623275929851374601844052997188078591738140425143423439403552693994613373620491272992685741093246149048702339735894183164784052368391275860718956011581891711200650747226699583728932071587012546249907148975776956106003334916798079734010240842310091874487242629125637483650722195373472329785686175061013820213264473536625102027203157373072811500738319801998320045570204495866420774481648719668687794926946491168523400305777844246363437428193620564692357771898864601137952708931555231033061783614254901410568474833309489223490115535893297835096274213166081314400111726309648924541104350205424852909826057445499371197813832379610975561931117010317627185261221048935833178825049471060336870636300072686003917794708147333909273480447953869132757306768788136685325032518831316697424678989581268454840660679202802702736954027395036553377261112928742063872380866507421880116722648755957982911890054404496516289705286863816673826903637154386626427048081040330251393671490110063637306728725575548818112067651549690047524406019973000913486254176402993975803057815881764380752571844782812054501632589135951007178163575215163917235566855519017692102166991981241675381233495901345624588710845105469174572923389905132753550769888341971025622215199629238690650588347428288181772446171222622642500874452436751469076864756236263019893818061739961873246895685475077974211295671659266034568107433732772005631195458112578548343339158806116567314370310338423992426876422247177671163712231105333298975693457770427926997673115851958108395281502661584286020368856264784002677470399617255303560942156039297886961068051539275923159008410269017903011759239756193432278676468723411585269914125761709750555583869708298079321400336180390596018714375120749316532034981485340794718796932029958533876507644820133811819033940788158529534637604285664531065131464828391297177556573193651928390475233610264028028329553463431495329546948859953487090242707188631835716816138852255379368013930544077923589939219223362771247632407888535274315832842104256002540222770329218548003295265094847577717647506734539478420061825631257251330015905495634312456654170171165377377631754149100788912724751987837774513123324756079101892379014356245861172702301737897399965517831170960110000718340971377460473988203299585837198839192148005863209270738980653078310215146017572207465994829198635566451669535614313515536251038100508732236187384810236079123610275827295990097525177521124070996487423963337552534534283990198293208443744568623149338031304421815223415712529054727883121242535190409373747415721156807008946388558142800232893291908937355725481222211839728218896722543035039246239613030654108008075672814419534882067708251233116319452446438406700427734935504235754471424365777781774471362790678910086473801700347041978237706229409416149874086139530285405735399538089879461471058130343174418179429347053791565933069981240985170494198775510025823269577635475768809627817749564605677661412131930233517235468537142151353011257243470633695902415681598536279596127757605782530422066932598344686369228556968270709024505627996864978035914592356862671206625479541780770804041067704252725343030198112635920402691220286909777482282650260906339846444969229977409324483443141168675397644955477734315593568769222098963795865513903366865730204017562507055515010154366457369514853928100088289632634450116094466502242192567875310120973549604944458882464430989305420573004983000094752451198664914439825634055808414935502615034392521001387233628545697401897511199404966348675127574274088202336196844680995353280515728884363412020783392909642814453253490154674550396993905852861245850804012793547124139337195945126163344107204504883113699024207972457132271220649684733555873760245680220747898739120686193891284263187412683545543039239164961658020921984405494805306635850397664152813038240912944752927324054631880547825949778965541432211282430567961230222545734846036608911048551309217161374488555611191447347385182254565351010116179797165160682025837239567511917560118841467612578043634703470880084547361962017177917276390706334051738579649992154899663493804975007242424053145055194381850834978219577008321579369660220309968299378447790512680013448452203387881267647853904008129531518777218667062121345682987098750160548924023327959064244984319028659419679499693965015488322601652921555147220614863425581995133266407566169452483222057261346793187807028804004441026663699242452219608110891821654084087064877708683643474189406917042101041325388302483304869883672589717718094304907633856721383810125454420425278380288153411508697296397486188432639939282148916728785011198911950721573196810636968919027764255898041226620758404850465741043100863295508173699559908972130841320543294567117806518980639494404184592571058535165436857029446089850562309895737469711776813970624879779188172862215693052221738133736003978353306212412869609643448197062547624512350779545847242865588058712156148445208069712357111240974690691724902117760010366490181263895237079581165884898842219512361827878593042254615454735690276875905934779878152937223137357699208006757458863578740462118252450792054883607373676488861013120139696841094445159189799117208977305266734181304625602027473600584612178072198923764419973804511944127353381578503374856227424464504897768985354030698375694683654051578170461473655380530722325705878739673328510382505835151928088265564097211397507322660558920129503682279982458057502725115916300342972250307102380129405754911923257269148795111366778490378753971471047535120200630997573723564046471475198016392631067441448418570608356595419260662107627161285074636951117814499166744889422092744611439076414844833839442912943869481613263761873269568638063455762826985414566845374519877367018183776040224807043989290870847099052141071940658236109378797052617077411534427703788636821397794592374951000300873362852581333330410485127764538048477440375093860126412948321652362655159665762762860332371575718388894738772970427342189207107698798291455192182312121560419587993723371987545745699608718016549562678171050131973996904166919318857828983748501818698156251208852588932541583023342983114038882300829237395914165517460291433786382054788695262088985825122266843094601580195372846723354874780504874682042217876097861364501493324778969348552108074542340878364486842644187841931303954432994151599708234416320488188607788043899631351369040922654629645751116800909710131825008729892435896986076577407031839066878412743068663637604489833274863389890612193505285274945808701775702262900577067982381596445399648322723789751534513735924863097605907684693570363277331802400768005221834702722007354906670752590596785353807204230802992904129424278683947479353104349369419401826348101798637199994525194844354143116766104977485601893103778466863819995166800473952104130365517501927563008072166486717540895724534307343224215979278716127633774439204209769793536102839297398114534401961308315234030815837363852035063820256709802845217955314659768163420843134652886483026860464410002170927378317549419025005344061071706143343412417065424660388096590157021352477024041841768297355112653313060079157339525599915967417439739232618566902134699354128252073946101493151093736565891070932166595180782520601881154444826737431965771190512422884533191480009599128864136189332404017660279276490216337698741520682175542872607781909870315819721140514255340700905498315719015256003224739331491662153878038953394562136644184051473659126128319477457447496266487171080435787152783678157262413408254917640439298297175783101845833787004267340550109246133214760351884591318962891419362791289909395965563814228998596640330581464115071085829300346136530070634693398929200665482453506339478098760077191430303697706808647085348411729241253946536282007724044586351633876966340043494047884951923436516971151802677042958875852779176451915946761591285774313201747512490178026972120837973135935009938633448374830609478039986452058814187509929426299259400950030524689495184595213174498485733039254043099644887815129139605736190516976704249536414704494375807837262164016061002294056522862754505847855997900503747438614872357037436212809883302489108094091835048164843269590441957487909891080813692358515240428894231652720884244802664654267412043373332557947760844108885725386996730029208731135812427554924834232819698599650627093361355108240600926418263576217540578947228001471600161425715083821765717354708133686983682364494064558089855399117441293067125557111888356686460926936091492798712998008477232498423861063370073664239909821641943731126713795793691704290807644423367356355241535703046142472519828221798265792852864791714856294546972542278496585406586255373327518650050475900823461448572329082195305057135351845509431983913616630164667761382915857088196362950599145492078223722778358935641176666654982901666512426858913997815580341057128426490271360995662402876865488056048898800577828228788656861998507259376766108482794834319184677471098185567753063939692098734481063773660099217224207241836275096243331572447790139169753008507902781853361171909079138163606036973382880417887238734326067235467803433117750092624991438789569887035642483879379009846374455628065453500352088894211245299105090610741594343899744803712727343922787655881989509911259977850537887691523361985701874867804369271437240903312068874250124727711840575709593942027056224718620067216074675334712650351195189589154641014601130692669973527087016049386830184521594646184912900971718695139108311994529860227044107368463030393494637102841570682055467804345327170326309490535767170906059620117882219575703309037042651094012717859911499428579071013121080955664458046619881979480252590865501171896754742578655864021129049618389466166638886211607140788044732066794733134932696594975356216808678947509042222880104479060517643613969500011389121408365579142545076437694106438290335857257482921453086380934537790693268473767308743787852631901128736583622692625218683695158675145803738064912340930345632447064041427310097831356551650263047438553374888089428264209883753231155424525509614476326459880123477203532579963119921741180644223685573535069317153873051810032644749821370172782388987126874734614394881738936136045324321398325522443866630856585782507868143965171369690120221489144416433659357978426280492370946646726440738803540348572266783741874196742341201602509249731319058367699192514201122825298140199449654989794480636340248566311806915292356210221996838832890789377790465612004698104747575583846170202296658233513567596336558240410522221552382770156117083961706870645484449440394494535686940364081401569302210836513759424356804193371513901096945181756876299978919422188385394300828968853520687982537018043566325948128876197421075345862246110528848792513579347830494626120464890911606031093080230633782452984536790506617476524598796462087813186161302053996164013164901682413469735589316564175260515912413495209839365759719992854574863326403588015592446664213869087549113351216524892008692177623590914172843687708971414694343094731587554781789456287692566517844633826372173564966087690522400501210176408360882300102737165222516019638200086101863261613016332981972137644151747957902109524260023360748935987221454424654630836183071323191734813221541169431113135909048512599734983003100914094467065531005272910891309332556029120830194166108840041793577965101558392812673951863495581344840093199959866065277375382037504076850569544534108561947391486244959148695825759482369588812028488104354699672435400889415993965596165316514176239288392447578632436636134538806639353248794357035410988174259421781182173581654139601469375558429255282016002848882931111397981590549084573877825269058603722189252995791211316287160729601981471485722710738133110539322707726754358440166787608498281431158506202138811656923558723857612866370987057497033599285788694911529777412916572809920239715269024765942754007628338013967567572484847303993907174528734330994867729034150128715548980025780139023627660633070861985267068500849006286704212074077910734712988335724487093022101627316009136646370045840755580251937899521263868059962483024002273076734988793337095757284633217610014668676937999948646592583264446378276465603280409094712636912349114181609331117848237135568691199371849530245847707163198812014751236429843423180873128586039271523738043029309623963370445075331551582233089068863348896203023139160681354323429180801201929872674885288052247739910682330720617594777893604081172928981235340981699719705588771911064255912608777742500331760256511654180119797641173896282396355229050201571104182893791846845314265400804830960214634600626373023417064804363100140242326619203359620040827611222623530819260623176788860067784648927223134579744263644662978423618799565868884410009154752349114035938411908796910951579129373124097676387354579440974966263801949440682736651100399136124009436625346860765278896926252076253527225616639214641921667089710848349670320316738778907866963467505085518140131003523119264932311059976574123206334464026172278346076305130000089992450149589055700231251949459650901752320973181992933403652601213869680596723153993024961005873000729014888571180141785738109606101630026565879409329676465895651299505806281039350937556282530730181127160113384980070993147267293772867704041721584790031852672724534318482528982976258603768133648433690861470847219545077916873197765622043663439585875756827048512479321361474388424085200796936141577640749067597621856410850585726927520927234262197923765940134330115811726716896364136665428862298769410434724898167524261165167715597393425422192694887859487987482532734409104086194517691062031359081931096258816503892027959978996495726927096833914950638514465585065727875509295628738097178973844434797953417154996615976887653362087745668232635650099862541990826146166978008257325064600683633524618228802228758952075334556433287368754390807110579346290195907991468040295716749770150800385369474689375013094984937673934522538685599768862383978456865186669855584983807431226499346343557700390562443381756459252508880720121521015229174906340817336479940486479853032277405628171472520289789587844181594905221232442659701427951854815412360819476558478591832772779745839120130953243793731549452892651801022556638735837458098859021957457648246255960215108970259008599135264083679771579836365239462499523340310204676157535017227767042481862010583044844253411134855100963869171143168466423843518079049868575002337238949590472781795566370248401312970756761129638519420616349862018612488118309111613252516838649703466482708916443185111027527938815930076889849596301945980169545209011277317489021832295198353043831147713696079084205590994447384779188606869258024283230850593388715003446217678501016519173239002306532984167801826096016463520358828182136578742181231708412995022371973046796688600402689499854442964773301358667868696842786585662416117505126637524803986645430993515000378786826073903243581400193379192292892296312267985738517028385372202592817927823007051659769594132380766701605270892472439990197874744827090003291615436519584340936721106368426053572760325975280571411561364783160204113936461947691864688904459954435585842344383296220629908139306266909420801422880704239080977248138277279664387455657083442273899612203990488860127001455934066667802335927488372723276893881436118576959189316382617688657048464029150780750586365336435062226012810266609276293702810205445710310476884438744460893056159913254289025065644279496334882099586250385940602100499820379430462733222200396311230328470131735772680766843690128253285747467525751923437832870062109125820338247049472139389018099961265135968226180236573541027545450456780992531808016125598970341218118463443668923374581149563820799753981135274713114230671229658282371423977157939323648816343818647715007468680872062260762017583001176488071216147112887967565204116914809464001582076326785599388919207685353240404635619178986835953726046809265473181385280080778139627257051494737516699750244832698796563149167504774765012179330507355370757577518436004310046514956614297199582387985979970946192256288965527148523925131352779803354673030684526245561844470170761998421360771136009451736932541982238162767676809177998488701914946324222494101024834839416257720799772542749114154411540427348172745800399721930428812687484585950535001798355872441776535760664767400390290039992500417324217768332934162290136182627421435868909016663931070890972069265870176414843762508823655692849125204183152933614229200886912463922392851140335868680722074156719847192657022168896168526103432303914224033590558431033745756203778920648832209610023951886699953993343525369939347232432232306549055152940513678753781554956859643380102367871817050308101831839914588151651377695593547021951404573094367902941593251252833995552743851524077805801827398162828426552261763653809910536725288396456107473833989357466028000460808810961999236432754946864121466471707624214622169650229722800255913709489193887614310419817944220952423940489134142995143157991949715976450247066903512615735828633992017678535586482788509264806602986143399307323675531173149831750030278881599102069430013566695001988428316501754842695158229724734350800571507704490494465009780957676299681158296154736115461861352340875960496433008980170272743123210999293510304916644632665520065755498149238781970959812914459364736628899294050722594021790205029569797256595587687542316710905456012581932246850924758829842215306208576482653835856379902325759363232814970698181191456313529041283997310399060759415683922317505013578967274580420743122623292770677658422493892329195032842336726115023314337452439335442695132414314650687069911985479586929589409297185616060640514146663610142904973240840493439708532190977074987493862173345316845052153192802142140784179313934667215111038246158763061927142496580231869773723574465067368683725045551711051943043040225921384449031449957291661550929427023091306059713118540882693399624034547838381787152589636973199401678147056874497654006467564874145336303358609565708205015676646914259639801069876521900851442976126267558165159250616746235435002657690119815610318140467198924204410896024878124866487675046862825174885009777264363691033608700253013353536582567134466211911497181477917676362669740553476074922860264286141961976338403682927944099010817281735433706806857342308058376224622402322413095860474631357044258927193664540952487514368603153336331523926555030080767667915145190724718343088593723269045446754931935294936189183765113033281446001902248175126219524694136117830794543265724411580059632876905954204380026709322858737543659812913088674764545020385924437876496974054442221707602999410546912782497114909812800168752355727360483714493478603559734964462218848204421328494610053118046710342551943044214357402017987144203289137676331406947195104105780293288904506657519159704275176021841655634142611113269855319319429642469151279186113135852197212181582382365231430542859993305918956336819759286190149507659752716955056915308677328606611809121838649370673961084332918366983761041829001279543446048943362767982057986806218112015639489242856909827137717945915787806650964917426575668695175047205395194244943628293164008253484601177820627851793489696126745267080065515206730993339504257895936956267909974441666926221169207521238961568860935556481950321543287536669046051954033448818889656161965726339301978515790257010673256608638741833873252782984938931368463621774618269470308672091991424663725951138425490936674300324852010070746042744472857918023901877184004136954033966577288560823982608305024256301125748548606144899458722017607637675210516735823383849676641391817458794079957349502950784969428733823819161649200773891984188215542727106213133532971230209763465719008081289488148129808327531198328504385169017036312932552450789472852807819587987290676296108121754362691746281601167218743654732735423393842684165749278747586949024738958250037116979026605685070147347498962822936268565859405656410253965310259378257309776309654023924605197000891004512284177639703836619930578226373202496055850228322824647746349972402558105832504905759916576697121389515797243683105117205059123122764603563933351342774127043434381785296021913120167582287304633936702154578351234029159737404073166772799957464032004502700790255368110608667454564137099685230738096444024987562329586696758945886686317127771573792747135172849325991625720965102331351023268182016228775812277924472939681122745452543359420347785503595930015351361919858147907738677744379448871495374437872896511084742169890384738922305174587733510042709634088914955887328030378177569415291132580665179614943044220705491270566326882840476365546518045076255608294874939399124433037572253908074993136039744902258581514933891228625740655788031724309924630350573918224724362356108531076099800952934846498030039910960595586128090476544056893132138476841148587654191607249815129849278257830727099185613171239335377317110192998024900862531476311024962569083083047722324025126796451655346328831889336208163206038183943746982359100849214530142734352212031662411351752975651417431752750008524206413305686774406188089017537957854945542373255363492461835842752026119023041514183992471376169097940466859481414470358144151810353468389773720177044817154770155850030749600686351812983488844722609688487340866285839533897617880738214012363036042098399458481848163560368235278149112370842440384326275786172697004575295458281088711665014394504984232951740877534087482577947167328366892507357555438156495450306056110335073189031416428252541517701813265278728469402526061677840761936379025171327641558479407981363866467082264131973137484341159275320516750335313258133732418191449188671327006167475870815522842028311863590692925967428230790736112011074921740925912817447296158276847473176999522087353037498275125690007974872083119401462752637755635450810578278728991734209376466624069005931392822779006788084476808117104134164901483374713942766593701962763353069139326304340945009826809171399722299893375369715556240535397751115154461118703287450887046071221515427807968454409908986128211686748067516412450344113598566292770781423465354160553047007928380328722303802938201010250922714429812189542398455094789862749437867723635678789985004793165728097754417898051181066258431454843355033752662743175163649374992521815774096141251667192485572377192631844985861301750728725236070602071930648261271528134100279109246339074231666987120505383679285958840298069652018728404307387134252040482337202996096737427873753012521491966859243193337907039680014282422457093331436065935902808682555012534546994951735329720203775329402148217660871152986006443204772581113760448346926530117675687264254997666535570072024346923799210671253352151867919267740447121313952153304208406181360176470887422193213765385694732182352795438609172444237414873813372942108091694681739598365496260761773414611932343811446318855433525169935241566690379827991778201135192351219943999874233621931561267488555284121974443458003616819612701312091442749196849227185724501028616033175804547110088998034683463106456877621314430791415668364094466604530626910831175710789999347620419848209173137314394919658288818469952076302982699682129584608108080409202150074421602908210571232141061767737739268557747131830384183196283887250808491438972672305546338579170981620155974460980875622429979106820798580789972311262244326400545092524411608008436136878116169024109487316680934791449030998638433824840316110292865480312707923423785671582873693040008474449520995359917305752171637483254146020041644457721871337868230530990660002426395912075752363668171084541536281098759698057695751359801946193742069965091821748715854538362128921307960683754906701636340514324113153773738672368502726581657517256019075506117593336091795363676302270555794840935949248622409402531243231071674212669515751600913868003202810031947360078661016155215796145452388838026818475033447424801561150855676480446432126485147325364426946880065378836307919921947897070570687964724369667054739310211479695292054168040674111333446942787849502282621110249618407842592910822126685458777859128441057982597763651737485592845506486410000298965074979350759351999415703630987094512756154236599214992498580195706822740932541140968277108241872996109438663235512078383618372941552694956799418870134634872083958379891233359469083682108292073627713480842814829029761738955114328376057704536066298634398191370590689236444256577947171866258010053034555815354279334188681813668463358282617888938391607387629881164420896955451631296667889665230806131380213576354307592832921097417058892954371273665012441954920875183637095511065175555961549655285666185625978700360104309275847300999658385034662212344465678655947783491927156756503858692584183453713034184671970594742460249958154181803888372070701783806050424677043997398432062300132367465482520025578975350770884087830331980098430646287994313405341280919438294160109547023668175708387164155991478066279658331762568625944581161806091443183519782363687483556852555135663381034898390046556840202677802187676537410305874777198758717308550857405390672042469898200455694028943840594936714666542305495863393895772660938516894827872055044170955983056033877074230634624678830978149546568513390387975636420322457044198101706437774358980000438110136479383009119791080372990304736540914796753908631781016510729868435832973548798205979409332009714580932523106228517108856268988622844288849464086811221128124144498865836610832961935655301528383937582126060611847838619035439478562436447591548160281284536685132406588988247270735323177631520969952284321596407768719949332803644332890680684796590548380807243610978139713743179187400286129739223501810777289716090099420567364092486548657482685633649014461896577565595401437563003601549247698922232128870520082302450322083547494426835784605176091962401264974271923579487210840128440963839633779657467429245752778219095452458086548040907971789350422377732907268032850904007712712393636921610095352505699558555610617832197249226711604437653065208297343337210715629357282235846386153122991816000681014314827043487776317623923020387850852719714149510516264860453050651485607800924648527213293882791843129541111253252936881488313944419536798971534734500927141028356580932675377341116287065623077770135899589102655568897047922301818712531216252045488081111776575914037645896149613857783749038848289445909542415198376162669957458907739430924947144208052213944498339182436735168020656576908283878518329431007357989747546851436246709563040973189809763229404809314543916799503284989805648887383924758245909931219121645813790749346649781828846728492745141651799931139637878272416478255568757350102929054854209211716846951020849486174034058451218842149409512904716940345644989229942425822593814740731629789633115306265510592121182796082639598014358833189892857805877601163509805776988926025903390783949746667376698857028063455934455977332099526402960063860552979964469566888990204787787257499145612369147766240675138889132665298643936599947054343568135362026057807614522688559418531861302276903668849209717213522161025620538576480403239637201115858216339646094283822815369766052407122178376469503109493637734117017718302627306380627478129132828722285297257519692528580874535302143239324715984002667710737116475369488647432194900057669429894634262120864299760725124404765174980833789026163573850928777341272545882202221111599746068109166669222757694313349925406072941739399555396089473022931315270159691847312841355928584449117724964496581718558324091003424540444661559211733800795842074365390699397247961879245559033270112828962742939663103448989057134694464604908722490530057067229407019828987374211044387322233951234192062534319024354606605416653378412657194288457181153408121278262265801781656134802933164537206037181413490542745213139290676421218779649683528237278778890736869410060287407890974849212439300338313718763256550267506803396837067162557544937504919772667457961847606036091602569033445163564057369312132874553603888794817058283445609318590819339149123124635075604328908417241490100738950735513314034051726553983223767248987492094565629074574793955717780312701027610827233357138695210157333171484089241249907068967101957177399057385713731364163613115010203448343622707898064545196342447887153687343983050843683458992340450468983498768488321912999686621415681777843757099846429756687316209752558093054501893823462763020375149474051640130363000065067959295765939320312283103363207520061171797752875124818855845079078614987509773989247213722644182317109885801036119805355434094017019209925172776050734148361834558116336127614173313471793839573810712175152277330035444244008856504984068804328564369280233851885183289588053327140136295113823397436704560514458873712445393971551703018296377624247392628357887218382098164064555290337673480241113758170224055680539493563390508660608971788292077345130242642573994532411131408783507101782403481553975156709352479554675389253017415519963191320649494677595894060507426685088595374616106734288695041516116161313605107687127724132027540046163119308356174690423016406131783775777696357844199104588871707959673205438588775933039152584007667692768586095009745422236552736072160608871131302420672643107403618767302049264874949514426995245722605627903811185269905662854661295896174171314714212335006642256490371876730848946998834218045395900777066121236239753217658215636369443679507706520350325978205421599902310517967265450028454032750490145717956654028291665946507284484672186117514461272189572260171269413463243076542106063472157465792660466968768080770203154902350063741653997190503058772167418610172015984110724920820794762254550020923181380794190879861889656869148229624267951414445850711537246052836224658908856893143914394565147908581860493404781432690579948101345616000605302117203224703101901344216198428621173589994075947671218232135272184791614557977473187310326919810942018297525835868910120926113847539829991699260241875318307128329351913895510965810492597586345689710463258205300655563480132860429989208834455403406295082417689456698247877883446037787948934313756776261913649406998446737535955587066485407778536694374010232644024128831321098919741462606336033695834379694127677972275948914749198888578146822073863375115110149294995988454328579432588603435331847071180765477791468785440053458656379212103526124768985871162354029109010243158596251498795738686915153100189476847905435495790605345650885056182257171015383824078567691667452317108721775277030289829641444399236174649524403477711894578400384267951357880785714638411941283231477576785240715193327461290936871128595914646226152772080530002240145054348018364396422174908351214137461105270053551928772804040697731381925650673854530301364193363104754078459079926238035854755596289797836160279765675564516138189241183016577843974171335984112903963054846351795376302157106159083289863421831151063705870937405232918846432054500773781691778474433843238832812097341699329599997196370831248017584110863161944948727973889550679316187201507178360050647104753821747456368790584588607862652500168947125480284824910501181457804982072760243015465780074958467399912251513210329685633298999706647975013986775761323450166229908347788127050611364686492167259395351325014274237154849484305065569106971506958051613984542720883570154778698974624654889752799073849867294343985860584813886898946896997644300458204480549657684229752790117950648620519398572822948619752211919302578144722830725792302925232028366957855324327772153775686806611179394555051535061938178228842176116043605413330932046136500445241318418550630213679975377659490291911608632729971308428017253513817376377807899292515184098951777773339768551064520750984251435802936059502275551439937239677889034734731603121427379028522085306784742036332818479480673521949542340305054416773264511519931940581681338857584957972675331598667348617444664033419516824246589338129541204944790003236238534960746206543948111093961669413726836139894567450987558025373787884033024677670820423582799320275836363737952745942920103295238639903401891753341236110989260249221650911143670978055169241673910722216832999230797389100548394584161760866493909791214071902640217060963989192513856571137211134653237226115202574991665968957612149639303428841671865883281666380031163915998721502661020958440857358184271592145943294681367011045066047993936284156672024156608090125871842171770114026177311932497419420541764452086172945638186147510471799719125505981589938549746683803942142035876404293499947813486149218215600766415524780887153862550089914879341614482777048915457606431434324660739426781749131083125035360316139335049111520647696445909957004231946313194920500010893254770999961441227902051547253607124295706601208259032140471599075985240451225929942783967748398214262494165084243874249175613432890206006780492201526976426481535977303032590988118160927539970217878028220105015116115481787010376162861902155456147999904497668060453624488888446067528616157773973923119979661242042752643204030016393677771663590541652175686861440919727508983803700717722670546648033381182159700293056829036506738981435063445677921216921992291049170392992876175613391868704733240699954218345321388054476080397720390771935486522635948199179002975354002107615842551544615558791305644745496875982723912273205161943806978131578234232346337842288777249224666386622946569382617702307038395596821710581398729967889717275706810722641970150652419463673346793835034012018397747933019025507350435942458760220377927031404462983919873131971612167272016113950129607574024533190038879790738945171733825201104847152846320108782132158892075863970212779195101474614004354405831692237634686249458542425452592881938617761306497588481643176710767361904850438914843707293785153038672341378523233633381499700558435831932120159724742153859838937078700813621930266890977591190461972962471682131389421065963091237510572021786381058808260372757703115661468325871439619908483985143827670727071812726040642573146313468303592263336639183264056229713595191551945685346616590054432054716920107455292931002395686947808158756515028781563441455818004743941750566243642678715582829482858403553257733174743220585220492023652337610438607952036344662737394136829205702155119572812309135042675005461057758115666615591204421443572341251867541854681036014762856616807745143683500690289841054788630234449944455726085872209532168848395963818061789177575497183462001079282276314526191191022231586401571522633429975029909397759484703710488514315121474783914140855224393474780181047038474514118840239278559641820699152177566335253290847340673455085565769553842399372861674488041074663144376128089390366866122165803199526692455044347710395633152162406635878471496256959569579547206423982453784418383650115394669165073226898574719517916329503324253690514458356263524475059344936220411101396788955255542065194771921844690616674610226567507627736075991626567146195913763811438434384430287186649024793093110379183996909599195458820653197557928066806803808458090580457391597797329920839678969267787553898081642096913704816663086016386986535163940328451735697169803202698145013933471122008215849075012809349188104216263731298154890883384293764376460986068075365034019443458742786942649919882211408715196013664766903985887790662206135638974931451465313293717137466084677219390367685498183673185439206186071371879828505670261819221431220399061394301520036436686930654356137456254147317044685071984032211445456206002966019397860129279845822998029467119519680384746848607805232232764755053849553370349685468500306209819421032849374210800437668827017668359123148521637507715246676574449880035205043624970982284886567093673638382757867067344128086787690717554476784492959586774055015663286292347485163830821298787823178312921634976563018133615757326419204139173137141211619960646502837062783590128365055255584492772404551964842485110316715427446093566017003210364060349496916069914609171258083038170485729345970282146814231214702707872975312925883852693503900055937190529443369408994384024731012114147642109139456735063901890410187182471965031657168776298616709490369012827045507962999945925643121448094461843692058479851507238558554554459131811596315364437261896372049312157030771776069554910418972014336166676023607411542634575633259442491078638418474994284508665261389406461503062875094409803264424174878690673929621704430482509331307071506970066350930088027506487905581666502324260742324387427311865360075587838839990934118116695556021165178992778808045253097991907828028574081536389315968393754777056268612552869240929005295827679948039324225207140568676992836649152310377097734563487855125492995607098507459126914160618668814722540761367926995217444931323730747437569270289561162477037371698365996541934246414910623860048688526970312995302327102128346404666744846618881840663593323762967834174767012528278671383286837515653670948193538514299150683724886627197576475826037767834315059075347755235607616363566564939838890366236477085227919581879537777891127671287738532893696797367676420132464411154856868844379231791162269440300008214919930979303324355739552370631954056366055101854960323200165665846618201394094427266357105240986759158451057822518427274707213148536858378142075390902358089383652194392693519756833204621526027330648486750895178278699142993646408840168522319623728593633997098263056455459545258114822550922239866023977390665762213063111758756321902685016402499304120980993729118479636463531169032672408475781403425306224913986534719366607554446207421832397666720635201274339791531744379666516998798542530186786942824116003177005697509423118010432089295218599533186542310315353759189232683770018223205777619310299361463145836602514969813976819134047699664935115512786930380262901636714673830442940042100091259284436977817174647956014213632615692635898610140576105878161645178103817894326824682369842923511830684688686946128307627986140745247394265984593895803237579854347461592142016576774800540655916690847180365806302856778773627304142500639485588749672314743542729103031367798710366043212354794894399457999835314053779030616633141557206201289912577744504606913909860240269442715514288498095693988213711861526096288959655643923150479512106845736087997171495633260511230567166237211279340666329116460757026203902202591614974009725715812940979890397742192304482043121930477119855030925058348124986682497333089702593697767562608278729026720841546733167564939687824811347127599362414298530318681055005940777286115094792926507294746024933671383580106589730308618484950003972541785504954869818126827428225594219939370508288754425117913639384931379889114545550219655191424011466373421054898800454888337390947443400333703364846506586370325941255628011632011552494429960209042869384205811250414597035902804044213616512672688118980528991791891529467306990371379849951088845255944774752946343998667788635831498329403197506230198972356996974693561074609925309984826011705661870431282842855270134355472977987514869591123878917031453699969770016872159826668518611344328170910500893745091710802829428582139778732656996784728912236124513402386412448352134643968893130063804896353980670057845834746389013556462417308073967440106932473226810579907965734813970430827720065126385400669611594191759713462115079183341326440293587163791416330976992984357156287459174682183107271172076907940256979797976923967010690650101569308366263933286518551731797254122926170338834358666063132438798498823408916969047010119147386080814479712519784077177822997492451816663159202772645697313246473132167311173856571659155540181972219988504589113803040144387453052149550387640653825193467068100246254959657668713499692596726600094140505904645157442997381970088418346195031349183625967228451804850173971566470195105380365130429936093818495139820348920603395909805550151562958023915830393874944262946099734985626514066247170476998109619770575375240590741285208632496568883341553144847092746958165230755257771402890383689964290144778885837575858208936201531522616863673190314631719501035379349894906459405045382880893436543434778937793854684449876528261864061866234289873645663796170707936582511169504249909407950136610412851792780015179104282299049140623221347475499168981122716093004802728699384569498686454472522500105060082819021636149339984393751900133153700655425060466756164921637326707008525585394848674252609230332138500126118944818052010644055078518268371444480699509884136930263827849250653117044755236883315505396816801598961026645198796684347828712454312813225572864506323411258721885866348191806708627792138588207944113748832123928657307653727213029500590587846513265383551505531059621311443150573124975428291749135149260205521091956395436159250031181247618837837246327692442198573965884091614440985564372397083479210029327512819614415593047155440714101556987261067118897542486357553424413625381397836113432865988745530244839694755215888128501457669276463938518440685911194719900798173408279373008601815483126107616617032496166020647192585250428719703490350570902528860056844550247286706048375122990641717060694312956829413530587457987208073630798526441357515709727289886320352861261995342500095541417475220051138552111339031387190696832515863667402188841742106751915277687081390256536912488689595027199309756895229181459312017407516422383121667908165103919859103041512371603429712561601186630313572073176841786003447489414309665458347325295552631677537105896236829154410221685432871122245940010085152445014518764590255160996854713006056949773313716239485369745012140273928587765782659029959987479706959114494057768399475402444943364455986342397095413783718013022013517323604834630383391913669612895308302390652810271720028109298366384684928793771112671283315610822960152080219108003788564259441371929589129643933373745663363558243721019413888078540185986229949434828442926183067689407521346596810411070555517766452183242273539704402786580555143075812519191018743008476629141720360212966852915822668170571491677249916936745498991494877928099784153319686679347504494731267469010370758620971254738471027894975609203284413949846068865053536936993159410995885647434890149327332428086756175045704344593211788542844020567625636403158868939832985670570346885159018788975221535495143481621851310899889017500604737820985503237398501422396232900718668534991984459256774786745691017685925047720221815201707231947685277837377436782305250844595284404066100418549361229991135895971755672040354263632180600602950493104223589879143676949324062404651038090597958767755946286010467526624087145312328581712527638880211162151251004682522947975759338283040664077211961294144561013872272617900895452455018791213092218871687395029141533091011421130576486546343194630353406760487226370746998400155901407620291205133894620899632027543634196980127471694169854956957632517375050756428796919204007716073497620976355762468867522243010968729171168196188333298420280780283051535187884887640515216899941560169034894236586107883990105894225773346769718042934218031835120518618423354470188677999760553444448614527268615789240242142079802809875896390238010879197833852550229976529490635537368685669796447677797824590166369497535127542177969141697917278622106398190770438083118119269823013336863657830695154205304738655688942833720539401592528410263971672005321448551853556190706002563064975505892890738529572366017063569880340721761155620497653180700634946311713931643337204138221034855309982403659512552064702648918824153053183922934323894072197941534937709696125839387058811993295775868226710365652949709428545163514100608441312842091153855639667648876840305630661540012496924838287611174198171570536903664746317598581791442089584854031257590091259200593735616453881177999467460494515381141616835148002165952137988711330427201627155838896184761886223679549949609336313295716352131610268279377103947423288094890170442338172235836107116783070550263982231528386553236477249279992314642148270353561366940347627227003358974750928079260406976786442741629757330047501992925384112085088777209617738579971941545618297553379833132173072215777971927185951932984877588964997397171474886177308775219874262774849987832284296844866591988305529699373179725482444364718302487444428735641990521239819775319578672079069811867305039077419483441380508465611061539484419047054673740464036873020236163816810203487241791649973711494458869028364881528402617936456763798770125235969998030353959978121181121229726219382772356581262623910522748300990180767924988894630512677226413605834491973162255592764832178752062927182187788986999711342069359719166093017787708833610382063525418997720824154123022367516027249751158973612450271583336771283889230033420998891238088509192823976024308909816401453347980389798915904055150886749365414402159851362073642442179767358477068571585409060702207297947568336538386394492838942432742028828914213312266031118965556869937094658273453570685307773538432557128903743227617776952901663982111062842644005621499811053249802438718394206135162525204665291196091658896834942153994064669197313905272837477523573331130195434325735865517653090918178061934806093580437272948054207857274309991245903192974230413839254782104452437086698260225439894197102903045572303010372093408424232248844819363156693172871577983311255050670799911512446244092581163263435151560686004638134658733186055836002895240765732778958731694483563481481839192520234630946036413383993976517531934659133877681472279907982162316148852330766551002970201703251747809642970883819889689469968235530634897928375494449268189444436036921195296029427755308769955594527757160234254260636614146599263418077301946128754003750535229219988827801267861785337906483203787564923694335768612638547086637804300558820613736978832460963833744598269459948149177105036258377026339460822029209473746523414885831299677731123745322399789913636710349288822627585439335746120396291198030776214057746839356625390787353800271145709389493236712980258896466058712722946586482181706412995786310768832905813052311619162075260865942171378413139062194383629684772628282728506799417387420037822958902664226357229688926758333268338291881754591069950899182392618447444241236022717519954500927637695904883658751010518027109444407221449793993714306428161623244876474685276810697169606181815684705202555847608116666876755034656235627692183049455755834969475095096302729761399771383163250595967859801299916599183327760336950879855810400486335105895600794813574504245850067001091494409514359782573931798535814241015654343340974792179171637092791291618615062329348238186740438287755685745264368918178867065906722658314405349521749719391664693165326039728341587685228140419764505328369268816830976143923662853818905280768417611189572254460407564356680076145071251891184658978685519742144877445564225436275842387961315460685927922280347563288970316434820660167446437507075626766221004204340915982401399742966607888181497786070057516327713935945018367066916790155242050088166153315944168774875241865167968772995078093095158427591069388314555469051604360729027189858260325326684187312800340211397648933613575452169408817583356526494711712215227692147495389396028202673660635155155897264664949591759147393505870715139270004561881045811929046507133039322826939283982795304784773207546842477577566691160361789903693569927965054189086539773998219104971973169250234843061667964079478246738828855019580857314886247726482520046359566116007054748993100872981586424787816471557122709684121590499195057128903335665383926203282844097400973652303274421654815991613412542357733443110310412149970758348468357021097281498557633536798663934158409225265481982534547399446141558181393989472898103744856342600103022439586199125373708383368342618231090604901838156045696629509365121363091742638984415767327314701136900608532152151190966052611075425638711845051782189838184731010490092068637146718281068926932953661673884532600713473383112565163057377340869949062284913302898557251154278213541083039262548793430871283837665114245194135380607784656564840066062329691115429529384819139603511276114379948087391152618402696563736635441821933938565677802837878145787823437593019948998002919307726638716025270046302007430193070409525445716488713868095691265581386290778540794171302227495463095385104090662558618029228019888970251465509184862908899874757970286488162483593874428057578041072493794258918593353214358987962418395839419332701077123220439531562863766240975398366329778279520084998960607581517125337111994222756264761841905840176349683609714869666196856532679641943765486713274792081786424547266078817880508302953533610135416553370131451819461303156499174249901617051489474221466587872930524294590855480762267649342000326069505972093936822738216937732067270918403438426705464594040660934572698558120803801992446447509003038604563072260590254311674386393569325576212265493408140344451226372070214920790311024532719554115540701961213184675687673471386229347245220915393292151704764377963426207552814859157703174916558155233327488085819464871575555978938427915200966245255413517105722289787833130021747141631954543697924967577928395992981028538473851649940345349319503523784960330226554263038201224068514892952548339354533680279091501547204011625268319863015027907083510506165322658415920772618302914297159758699921219367590469702839950196469329948188899264953492377677934156455829958575021391235652599024723782446165853124338338027451598440325757218811987748142478705452329092308563232913232672818897385811407998856376721641501955415987024320056302113694612690887430664621581926469378087866576046881220584839466302828612162687523462923911627359005688042946840847520483267675376575622707558654358329850845635997571032685282863340107118457234782817584581501655470768234862050533592255906928129942562952203638506237391572969576087970440279891020214697560237393723183739127388368371586130072962395828867661226783944581575527298253576532976183510367730997876807757432424384347146467521724161939034274354736348600120239586341077617216860631290415606070485091992430666425643080312460214961459477231235053053900515803534299726775668799077086184947262037819060121045734035209081390490324064280119462113924366323470351376745249686384811416439755844196287678596879991288982002690150025529345832619629929581264778623812577749707182263293768070115366226080302390204557945106540611163211141010713736410249418701493790212751184306596184173713915432633456809809876936781422539475654109694274375108701107217562855123821091009544449755161084680482519492868088299894123841493065495000690334466027051198409527110880394709164987333974238039140708943947204929476364246323825426060792128596376764449443469389946229607808802383992632125822945202904705468582978653987710316175921287031033869194865941193249273504891979091957060341145878552153950583113228928648561508417883063114055917174534757931473744191790774938582926464554116440363702924383388519339680092117688327877651957853308901996720476317009554489250567395518695193785382657569410856607053599763717158759095470075365127211624492504699937020555231307679262250517011764070527461131887512812117421211725283202015934854668933243749000426586192443716714001387946488294950122204205948765365232948492532251876869147374926949067862617469576444625269896452796753740535647408906589542157775761922079453011494717406504770285608458027285333484264547023191285378080671976996134193534409049894620355420644958540417170813606017117703915391462406280705550286375315037452897403473836414101115220667402899624083480473927419726279180632525703526116456802857352629333133833760258692289133780410497927419753671253544728694096062467234700202723082058755417551496756935321478161014176572718796311414963376751687217452678938736551841646749292706288919029959652136466268296716898644129616449143357963563630305721821943355582325939733933527894771926632592342942664169347422150676727564310909529761764283687210047369015610939068140605374250773563967847789089527870562427267458384464226997804060807146947380059253472346271787004582708055877304237036022518298600975867007966651560477900440610247858451374023320404222941431173587390636997311676328317024745472683772865734975610929067589008725262849145294524128006338826586660378942291559814738657741339884802925252477733289211953638635334490106494126508590087201503862781839374238055693990426704910786580818387398090684287270872175751775378817021878375765225123122549837169566515960621317771821117757161317957829004214670014314007953582739691695042476275514127384772226134857661205670442215665002937048954421308658843082796723216892231764601993708627646423997331951830319937749747630485528383955354234927880920669933351958723120787599151137433776318929117103137898740198980031962617407840926094788485739904079953387361943485989890447097696643249739019495359717210451978450317796844927563972246844388189483975261613531262097344539081646583909755357817381528274046471570229806647566428817213266667263073450337335192662047732985307728788160976691885156389809479228739264500170817139257441102035141499108566336900040390342822310556390610998011606998702805619648409338171712337622180531577577951810351112336314694449121420403405759641881631440840673806758822653429535849250776607412579130399998387592052227993941108787053984732970813009972000278590928991258189740595736287960348476661273725308067277805875658345726726587043020375940911848192189396116957906032675637527153898484228877239905475239930097375338132798156612643066527893678157181895196082377396608452044909813501871899952169293331644743256744851911926494012898750008943367084112084198665455738278964096772770342409163124714105353321972949099435755323889514047108242574939251632123906678885069801911674523673158482358313626667023716731539669739014625929904942534060328436166201440606812381318375412324323748535072750108068377577840026735728590690689260285413387979286221942378501217618982829915675722608199867808409321402814774382318910705307405792444652682161506462920176790107085423410021974978301058439077639022608769382363326246505134359059675766962259318685280417393563830262801309965987768885028618037463985273616848300053578456897883272576520322729957942668807388172904790359999565539432831044286794536471630620860721758855928568369899605003300425064334093524630466793136999445817915455159492495181285074506473193326693539489627647327912563635373989105470379218735252473381430209420711755720005228361112278132362002195310072584090215173068352664815644429562622360506778799463123139926932985281256738026186318726423578362187452794008448397444359213625153554767472987870100563384870860506577891034489779973857961202429107887737474146369326601727047066802137022047894747001324931643240371707947960189344858129163099226449547968943791280202980162944624634728025970328020253015120527015824530460188405959706308198532502895169256770805246686089175641418277427127222947842488960744499811894464703472780961104917619290806746830505237658509453714397141185796737396964845666401835891050129077443037351553936418905492824288919464715817506102409804560599134170558922690388480562017114526539811303752385489022084026368121107492166952289059513763306253872727398924551499536492477522545708859735297046944165078229345147359721261018705485792459028749778310104458987897989359304613991455780193184501433350604081093385824230643543032474318640811226473869748112696968830987587873041758352557251494456005328663082279445599816664383757531408382400792572478335521138171997151632521480618816937614653053817282980841955577236939687874055137558286996537844686737654896268221704162104300749683346899598361667341785606454047671176014590080485510664235195183649156244915591759340576022632657818172633969296555017300628186031245255009207690184278938652202689611692200454274152241958654915619451820945494410106143225724765817533387590397798454919627624629115476889522616021546799979803447993227778181811218158485362371188879103893443751787150199896025506613384185553331260186274900490084509575697437517581180704160268060428728706960523672290534557728336530583451788434114632006462764233652428554175009147860636657107743195548192150777947685175655523168337220186104896133527339237730741742035246147796504343443001401798735822586526698372230915499640539304943239514074189731545940416466243175228281020919355924342510303577338783051033388557785718547097560440309123805998721498783203787934936446127293254859859970064189959454686996590296778385141281749969824461747952377203025425691795630506052890308646621444213211043623057117027187113270313745418952745901246298699989483532918594565703997678993427792381614567606387752190611684733421465327965657619465282618450144858153351331096634289848688987745388274978683672162767476149984675394245546585023931873928176875248129376784940606494089797086363748399367677219531741734248416054912953044216006968834504987177366967549320213510032677160574914181571788949550342239985646816681347775497045577626679460958896180413242689456349891561585179471169948052142497637014498845988695100504398717075170096126272154428864248195907730056013885298375619396469548700498627761641296626269928251728935200547629477634825737719901098579027304318307280399155545239100437441578188763159983767279491777708922133926546088387579648894788722138196296975125850448558634330346407042637450324268857569552327512675347077864383883279793276295577084335473341934812714043899253931716142045251202854332752789138237674544292788625852136399439666687639080601267844574857240928081409624159997722571102353051649781930131480321539560524889755144916836220183749735374685274375502194050467161187604782529055430570062901109441163958771687694257972583372016370807031687437232233664480545966454513096099864426126893313498618646870126385153652237698555895894998331300780200895516829842671107708628378827934534831697208880003003712791720265521666580192777467908230685179072000881407169809508425346877465726096662217107332379692220497722088705388231861880484612006443289100652272639517188659237322185397862854100409623896251100009635062868184020077700153547179240930178210970939152192467575820017167985393633226143198981203436955248851049062935494895653753972288262723650019171105413750039593547018705283626320221443673123065246161735270247180066540988571422891038371393578158738603010583221812676901764048606426973326549581014023177727372898669417131480252355394853930456947841153430039205426994848843527297391603858104229885580242460203035340911700803057164248426268019376988804955546385690247049482699259618932466872488947054491002309617031570111925823265438090671442966998657752338129906997855170894121396967641089427258935929537805533652629130798541415192547489612330431614770797123707867861205458797827000815272864387056461817119824371041417252864307162613135785176232709812339101384034321351102397913000173219190944817340984290043573239778250185310197740442222937347444468312423618390837854748232462495758419935395256171270409103061100980582689659437042402027003727209433047723238433950153978966861329433716042389874852272021542014984430216577852580768019373898624372964441794143410028331187103384728956629268469478954796925229868455929344560548849352313839315304791615975529043503865191645707684439787598231059335984498873623279699694252811949941354135962836907090305074152492931045320202175053690460579698501953598373158519730094993598238036895575236401707986868320569012320036351849736026208904469786865982905094826363155064118682316830342940415739692404387081776758280350616800728824626545292666117600794291331939882151312442542021138741287823018567011646091766930704255787864911425960276741725049323537808902986506364713458799048155617495307753383725015878832307191012726248690305865918874560839052793706453216607311033694203950274327103346193749133559708792059185448324633869775459900146293028306137442211250318476683784978304579558272105726936271977082969908731431660792247460680554011271213987373786494170641951106225462787182920050281437705856890964312927319941435900389253027746250321794116303213858191732955129813427667858720139357034487482695999465210998040261762566695074737079382721772281713319982293922582098131016002483393682075918169442626844450947397763359045241266545684735864080655716408447674696962367425262899602962670590308812539469244512375331356294290931126270077903065525939284012950833286731844767024576190361794248790402033436388646642717425978121649447922169107079826336571689191822475750481448568241446151083284851337854812047105002063810796226696662185654786798678068771690659875684306273985977728196208128995457166331697560653322535926903680911364426545810476564510814353403613455474952736331111958544078199519732845431222855272641302603742684683374331636321742024800279088201795984573444931242657849515674491058794987766161162590081042096547925188952277783642989574856699647579424833068598198603227220392645450467213854581398266290888256034301478956189571519073442251790615252202826358870248272293333537894510581383192030438999449824267999246168977263890574884969228068697444988243273535949957068748196734743377930186538297813123438286160987576385980104251499735821190212070651429428881366340331148761726614245383419966773334432802595441360244757310423522351720442719998931624148719390710052113705733977455112141936489314561085821297581808401440499518981564151669060624985496372427226213120520327014811807950776890180720270817428615335623536668875832535478125447366414752172648361529089327155066122686275688396089639783583290058719329819576681403900644240699557068812307091260750601446102359875690230912483671135811503263837342906976972027327704278644187443139398189953472014676743762207629689541426707224533390836517305091524109889582314536483553906701544247925016532749648207561831073807140686436945539621292041607207710808062134258932549181152628007255529663569200353521942145144145147391000898728854586995371938350063317070634457731293123630571591689727813964845719581628315491689816088131495893888772307645093341038710352793439080608663570985659959397390808363229257393341642624303099565294670774228191694911201196130281389331050425823464736347944355908528939892231525198945692324663188823416585062415473932672447309604566736205703160069192260908850880392059794816171544543129016364062891085075579357264989417142155169877305449370203679571489404943571503582932999953129854265173166546245063724840075049655923321244006198025162077373469974266859949504875091409810937505544088488677531030668868594830855066282736221988370071979342715686811235359470632304159357158251253623329432263262704161701935598841966501226950671999842539009267799209792765849543181624950012561424595355726291812237312004664953433269269795677121538221935723075782356282364545421470462958298268171754129197329171942993605947008899936961280196986793048007092033045201218391071260040940372132692933075977557410356335811519692117525501514393838699988583137643058148311841273995753312665858566496881429800244589528493623311871062454020736377999415913710708532770798626957099703534198338857055082656626962544306585381812446294154094169394372436752626452357731107716903608271438930278585964785822787247992417592464344415925125489518095738346557519535458425746280899675355574251189789581821028982628971884999762968009419933182314765360477966994021720631097878025626090122660364811394630757072466213894894624684512513745359637712409002093796664241616877917106712107324450867649137087749103877166000645668647743003366252163699521758255125362918901266035658926563088405990740427836098802872852225570968914677779083121314447389720237936725288701975942979332166498657852136670423362880910271429914163636249264249130380627898017648370158787583252939590838300573639759424859283656011692274407851998939411613710374163820208819876276548004247782266268425562191301591516650592885464798597465656923471037566335072044960715725428057293281573746875274514955012025324056126482220669605500102641354975824710222688477003371651228779277494297869170280005780975023306102391137544458998335963473843223673832038275499347236148277478426423195625522066893700091532346036956872964557612636644087079000125141397064984138620629117749864338284905636626075705409294014531346220583230910227343636528147637247421373280115452071206191228092585169428319347522217249616817886808191083034755575713321693267753422522825903213081907620339573178481044312307991217692057122678605482891858703706693600144648950294305150162709705083734509364717167374417292647263745252404962611115155897307861134592209029639121710995749542439127547305511857972917807956848768869430692905342372898954889509164522425141441010117274089912573963048016987142663616494004376385673822648838986454430974552330477256481346344921966278026725364264666249649786462512294211350879467434292755729272698002594981317572133627928575185389560469422824481415172427436809499084757154524885242984166415300650733609134734189113255854637201464831540419833890045062237537520179197019087277015046487162820505460626174647547060921363295590749116293965856743088037617878327759319227721633456190808999972836401757423401815097830454540728756162354361327683205232429525469325614868191351142663089463668187763286891353993380594110647478076325443502383016410292048722857291983516139998718106573007804295239079861970254205001929958999026311018230565688516576266173573632560904770818367613380573656684335615300037885368220675330781762901922572899973339532819167060208636174962652542249295359885202796813088824477348499325022041576408318945610186431665174776648482580226873240015560461623712508485743486322483692722275083431768622676179118818315121832382012775842338885434389014333288334588364059477512440639808481552057645934678307483483889499082980838306508229667555741248989603135400061485933507962471399114790384412376184640922736292425803237488243282449356160716503508159999287830218533178493282928478170342513095734285237351416777983726582110239057828470459888880500366564524078614183723544211431300725659996049210776152422268480659773559300623789907462956397370755651529775154979428707262929843431517481575224256809861489469078991045583232339579014458634228125447250309573761957276319218493862679736608810551127210308950249646836318578632821179283216067251036941550024990062920983469832697039069196218455095119817746093019042256772062669326447291081962136340503731174994331901149970120794618068352812770214757021040731493631139682147387032095546757837039987408464861769811189105723420507778302973645168209223420278218470501211191689537379123634049210547180114659337878161691535286605146080680095320116593867704125100725694734859219513769643174016457885029579946951914876011776304002978314866441744622145747387928425346701854467047677984372358468378544040763484183056226126015728169065495158574502839025990015248494879539156101673110514216893724828241495278557313843121471800739935314432171753571787553790219986115063696114496722455520563688342185172803054712595417173934623766977735087462228345022811879591781630044071017858270500873702853559150386246921570772663823084657441809510500465321376063067576770099145369326800619113469096886059491005145126689487403043876278369435474556327366767483765584183847958947645788592327637674835580656107757148386253470876680541985641373950921695414950839074243538315108894395134621278333272481884776335445758981028360215574763898419254240491637965976164985860013917151142807735921324228997105204850567843323467091403647674389926685075647930724793803913536696038248890609832499740754630078157053526435393543373490272998462857026747852952677973263714295599080170120794015052824735555493868215137790770336872158796700488461869870295190215298435000706335835694593238585385716899554902473246271990610800230732003197948778648188388461817832874759684085835756620633855268479044842781826987648608759426294495294501787743609380703107776918339422028193803183051552424813183765588670704724209365035518407752075666589037825120527916145915544228537156504573473533631421778595679995565163845592160055294532883104368826426014544362190374329000298787044312927622731422940543264271593242080712223868882948527092281934625094787382907379687868113104128795038574520796244713200505001614064673520956899630232380170173824772699634959539659227709893365390806382950430523567281623244348544209658813392203011721521698604131952705930548439174433583477952474498856737519316727084863860783368540164932206851622444166278265000299950902263437575375893572858051581750078104231016116109679236456245936905254057156590157250166419547904291941711587408396244468321632647488735196053918080556843138026800680609146041599143062712911532313665585446120931566984981915488694372407502043946823450519166675505102255764732856672799568685122958707682856150336742293470382503006219845783097685593296644314147825537424650271365625199634880719706113821341105329430455934374359456238473939607819224872829085061508876802202390173596790324285042933440669414338027714478452645597597656642327218239268824890005036723672188960045297576725023621691504500649374616120031650034933009776452366978979424103890704924688609132679066556915086426627393062360051592770788214475645025209754944991019611040041154141717306735042593492586419337034138682199948223857902023402908602157830103705291925581561529342209473320205543638466061576064051893342008442068735190709427359034678299631645700212552494213154973703774816667919112292626074267301890072790018504861762857286993006594083525707375462089696212336394626257601889205673123939934098922990515554201371219994080153182775098574464316183235917487515334689882148204398475500501219796851305473532979094318126134426215904448452895559032871979622500413581239890641237091214892727868584376680865599438976801757304257002861616924485783908814778756619810164066661706776226833007987234961486479355814431060414669591323386826845791217974504683885026141608765193071566577241676857800960066566380266748322531663663789287490251626839104098009578447421492839594952642238810474866367926564224002219940335034563394790925249950008697440178587932003881495370652955078298668769547007946681038453062299427380980667903783949638593205868630451671477295751660235662907728650231884790667620414042196347916408438026524722354501294942446711174782632819169391233687760602155848362625921044744583671065334469334133559612977513981109767084427032746181424919928051195595706036127105459960053689571067941173355021559990869884175459862758190807113652384769647906575052658159971336715263879597299444159743080596276571101202185364100973758862815325048340994546623917185956185625440912847181750696218991704763603832461477662756914114417747747323115032201443204499965044118119506945239440140831022460836383428959883054078164229552366134913290628222871271456987305764482544881523275053277784834914628296626937210136478943317021408774051352746464229878452967104216489565745980815279938653281630436333114446581049926846673966326682298584567972318550087177322715962283126968026322573795493005300222045136326856430753600014374536378012751728564632497256091646525756766867690807002600756209559175631509757773149817643934374447260542665092042982016864490545340794871027106566974397376124155937494709208129333087749264628950646820848172846288374439669156182691777639253825193123466160474765331776083648404863839491223795574057282410341968037389483922642255936757570152702207207240385136678171974201600720165182793450299480388712862909872620957281382467597008860523790866476528653035901406120649297838720953140376033494517102288763646403159698819727703719409403392925025522608908886901969059798425215826323104831278946281875230251494374449449926177116889901519534824799811744718781019487063422577635628452341341567195019376754387298919990926327488099151095975470308109313415465480806214291801577113387765032098582470906376574975396066594197876131770723867831584013150861511441795615998335776416078496358650454994176013799348158624736918397573435326359825237279819820677089216343716623720992988972791735339305747809617961776366995142554385353228987538411700845349577490388451716802439868663828826931091379542028427856300019728314161943743060202356310682197491929466452889479858471856908449284235169559185002007942725443897071148209320727801131334411738910286527745282815464313949505271866921724870791134090221453522601314761632115466794392302142334673144657304024341445625183129271441190308915873370459315639342095832697747944657228101504623315831592051681142991714165868635254409884779841828019828191848063919244119903514757423824003306711321140077574131208135873153476774019156843220384149966096325739247943525781282961239210969262000140932074035325294964828839183412981559283846945513652823750322583363463483120276806567220074851328522265732899347944206581579264928985864022275732197615659976417281176186710385082946077188868644023641291650824653448548943791431001308170834490778798614456759491607343364255450873290429458522962486582239422779004918758946096794510684926739186120600135301915366487469991491464515376422490382913234077446512840674574911096197917205552968257294526149398270852382966962024403067152953308087796251138680018546059858221478869286848649794874803986679642033224759234961811960342535727152540918125295615427891920094065407443154258571445899294215427752277192649335586955073857716379697589845388836958531199951524805339367951447902150058495650555828277926858525011573818341192455034288712933679625320599822884790912066394428605272731023073374288259185785778434934213680420152195073316836506702655152718259473500853118102430608957472749012214692138711171945474713053361952283935767599239638934210684946485495542020918048568587142466060587007847657029618544461239057696499834332619544253827275045363359369880138290691425463448477275779158198261658366978237338001843239725471585435617330892028074801400069800948486056967640270480378297207804875770954713440527816821338803672434520776463427470206228331788720863345618890821110552433056950878178963920182610686483530828486346278029220982300414619503540049862039607819921259673307074512307397104362170300517601784802983431909143662249758546349841643234224129831090196862482782103488202383187273027385916652321785486264849600782577479021028940355452938155534187488210825713855639433264127208720837813878240123528141001798692709487644590657965966968535346438047526052555312849758879106178042781806854818663588035700568284331332012599336139059687122983621024631583097381360232310647207082883305249811607953313931319349701681309419160433811861550623866921510336947342468362174152918000451450229222001746894310467518779666885250418983947176535068051636942170708659000378803300674890213122849943713641652749914565254922403888794391528897192557914037755221858896754485613381283909139035582461448939329215820696282716849609723613758440738752709824091685927227787066980179546246153958520910148990069953302158998774804581385952951922322982396918320561478408497872259123459147710233438964721279248535891808937847345742294719237637879615354025256789608073265213417876364112648628320520191577989540396304906807093451633565329408019276904399222023094672455415869997174876423099901188888638442291292243773094397988474013744898508883444273429535857412927496333204091614961177458394545107782260478063924092973732607312760813255423423223433950644427495208364409702724816608605208361261410419689544982173231875784386930345464607296827476620419016286825290673569303453691917304659602023665653749478724271224617639726732539126867386802694270141896072841234383478290048938005956730908655050413166013913981548618031197332227477435604978154823025969021542270925359912829441021757427156737294530531997238961802230552931062567548412726674841232272874491123910207050903067723506623344724062754218040335420935368909112952606147643369235805546263969391512887320397126969037296589690576535132652843331702712528063681289930469569509915818705524311352667500067539734218246760665432177488550500896958507315224876282923988429840985654785675968450042266359690315199672169899000547169852510831948902466188516339361959006428055586225238481920860783696664746698216869460336821583105709420445691671326362006687261180436526010755295462725836791640707245282777234578192766336885693192766932979075057892347772361266315252934281981657180732717133458776776015037251947444199589505341842776530714381665878115359734247043457116350294202780462174457579065902556638900611239838315335964722568844901826583083526596910172912906945862137635905384419284154602175575180531633407050225284575411689983062393850048703853458458044127737812804795497927409006437673323262660139158782788599702716042338038507208733845387147178031466456600147863986977557527791899581668745599148557884422347250342704207890695425089731834256628956192113731899717131723817449809417017118366072329669980766172025126185465794002104404991836879991071072080733559150568126684459860010078119738084903824538454785733133087056614375441204624233851091172061110053627881148057562521414891003019385251989006732138066392239492238302110822161475726097784194085348943576935526780239476254482906226478469124697837126059096141522529244846796832941800848054198922171992796717751411030037225700849907633485030349432803999829096708893095796072806027509274995630176596156930231608531168484899469231625322519306020770604961735557440041131470529120504149472168737164594205615903024662999643516254279469091191562364985135393016306823402565662583920442443046909525602373641237100321266177101614150536159816184537618620237757482384910963592874282949200051268817489634882746156159480493583928725395225655541625792497905094802265563099224962854468136485539734079030352959323103395295802276736712505202301242250134091039377804858269437535618757727755272023734021312348953132619172469339189251031961516188444471453278022992534635683412890435416837632552410631289324625967840121482857938247619338252173260162148413158143594456162142220513034621280062349445062927080043638259634535127106780830909936032200586352083116478590775652421267597546347881573317308234172874782887732807582673617998124459582562467942689777464267264217484193035562824400063163170267509320971224626021461672111489536417042570009938997329781145221601325904465558373929799753870386242041336311107880062942668229071159426698185669690975792035845357546807719268590080652371475679927440511688915871680713259703741652246237992219337277450728190766325925807535248034864030651883107399246248805917223355243682852155138385988276023396368354727836252722558092372432892778301129563187486166668168439959501074448694153881346427270394347066477053693991229085250282685929585241106369935679642097902146731776075361285661935554747573092905520754130809206238895544695291298474372039369489394254363197910137772907348707687397829743696942537696779180237093217854388105239666115799957093753988672496980708929181846394613925497262035795617975453048390427489694440616064196162290185539364762092701143152065047122254376585875397721459899246300448976009191822905936745686006139362574638339868758299221044825808511255406594918482877632384598693939627531422833265791208433584714626437807974815275856766854866735518918507786117822232259986613331723764724291263069553272783712714313071096864592179567281317941909924201461203008976063657889043606068154795670051715748523962588668070371406455794610674870004518811465170439917184596881756231276945756386578456968439764863198030680678203082367840920584078346705757855856359157306964787745792767607664543844369929791457596202865041406739301979929682958236703916245242203595636598515498461377683561691947523212772581662236633976216327472891560593753926542218691972858102095992559023206656528127539061513598703343325147213288670302789918232682131761851344464674091381389393524865452241397695561103729760492620045965548109830768035812546470350659773634558865661113288887838495021696100851163719832300344840438166317630703993802413923213113527891702980537430302222048619609107383374348494789501872596385480297340960405263223764771676373581680682186059618479971888786795269754968694922442811414228771951855003093586866888164036808989188381768011500842157927214057643280113557250783717963376700781469486734096373040678592093788171536299317708907047619153547080621206061019137707646402805369531368236290093101236800696523869224244092365565602185539156635194992503258083872987035654808791183912868507385851497903781216109913673548509320016064696551589933014517707739327957543754799639640396117330744845705861805464509626556837551051244782880055307782623895559773683975086690822589156797241838478631066338722121675675856494512265370794955443458566164762481633069594857273207190447583924129429613069550094253297023751451502830004685080611759490246887289239037835830558328224812171292387668775640066250016989194704451699940059848286760951488277482052100926386047052865699871835053193510042503564497493390689042095758532911573305382016598728359986670744451589371553357657944938280185760898670210778635963390711959667225931439597972918319579714444835815708893759879827926052723037824527959289866800128706956730367782045783981798103393107073810707320388943985804875784889618907392216028373586130700296491272632621471176041311229160449528555739277262899698754539033271222899006799700735276143771229545284401632109293464975310451160372960517292421237279783346956942335578163268623240418679693962379796873761735985475190943122748163797869562130103964923661249358001952680161119945890706862716698458840228616144292124629245164889718054208012935697367299820740702532646928730314845009715804101945756977966962420553571112778083787988052930681822267200521463822653785744023335545019706247342959263165828773496986725704381725656509964368360002752648587164868123935733738158315926804570598210410988167909464242543833228560452454036854878797048466877256545513665840011465980079571881979818033774682020713894322775837804156458137819730018966158393730242647463685211444481357209758365502102797550492430062870057176903433390170193397771172175144958288066561985177537408373252504059157980621874580442410033239570906226716214869396608864794352811904964627848075816410268699452630865188064278283352450201985165756605508376820259410870499150486770871256054765898285429090917128647979562859893394613937968680735268451066448538505323503406604847866821319347259176566817069170135028938654135594591139945820095351975330271624941564543191786603047889781963884292517188541747137327967164738526416617764039826226420680166372640163075449862749917046649164909168031276052194118223616602221934044088721471975836145529281742442751679368534887949518176250285149100830763011095056240829754782485157397648711317666737695672001636605636284586914542864960563951582120167961194229380726278011159131068917474491381329615767501392309234492172480390626525251117619352415888573870243879194632537677543632508985461611567569414587148805164462484319052602633057704577745233189903668336378121352260578734500603161459202760468577718839170699621601120883738705268971455722573544509849769981714935849757159407275130004140080304405655198044770364282985598532790879139595107442356389784359182225984057758401715315277567458689172025532633415707442571811738857124232753494465946636406042675439693286954315101443120441598297825839816501950661404735929492653981909852869157467483982187236875477949726078458502012865697861160668602735290969494933627257827295055010430001649371633988731877922603733717099393817791590232509717204704543637354118009648812749486878412899477407664707917400690157975762065547542084036811036319050027132565401793509111666082039724536016233307179634439837220033919466164965455521477758509760722854370030445197301749095234946781899652739616806274244017790067779456192469358608053176402070586029325904884069144674259972772778782563508443782817716999539795106015932816134208028169688566040196414846977209864592481373144176989413346247711200413614858561940659322257447445148744922855368690156243158667083962114766894213945327792587857398087484222189387543244731380077600304522535801743810950173004011549117315435259291701793165762174462991709351779746829448841450247999099230934261741196487243393610633125124494689792936987756250827510873655795077992226245929164015136325522873592369225314269573239432841896273644522267814818938895549410041446732789574778492240369431447429074162201723458883529521734962229882374895655072635115634474900319698138521924291610001116547917439649570054885220706057364926872529480177859770994305271150766586165670661446014060072548964362461786143359437852808442101530582164912737917016675660478393103177619599174535839159724508427138990505286258885434002870043577248537384444547958846931274466978030243693654011648796826719003033840722323016694809759021801867582312711935391348380669003254055956558019467003782396867574306023914622833165918259787966315832134966057427677403989041378721740057319874025924447839032760927799550135510351328369091914742118710833947767839570167809947801435818617007431304124173762020946187462832010620598145525812574966973270788039566866967517850929078583934972317622921601047505949246040878219004029696381628184686919671983904100739217855300996605425270143594042650738392925345312566161813124157220088814794192933366964100294909719281807580326316384572575434007302786975391428050772152916313984816846998673648753695784165007724887534183098300846667645073539296393319767132514183100422230138421886308481740341679642992898510891646284095256478877517619139490621183121500589192284853468226373286758534950720760426879761095012507259986121590576325906905460006063440726840349568023153133247169471210789995224920105217297491715237218991537911360767663676782107430065621519013508239567037593099943966114970238956898490643450366328732320557795287191385601064041306572775215141296139718306567248001940136861047052758494618685410023827194712371441667422268188014513789069828817854724915134165088568074394669710571765068405671964370476358470886704614469005237160993432261687322787240165213415843491531356482524790843758565308575491428409235627432343920736983049923418688653659982317967199536647171048305195551873639264234795980236495742771502736299777068844587758597686893916000222563503895674515571098751780497287330609785937448280715621356241007858838404356934107466221147950496231685334572482624616176542472705443916208462690424061062212895678406973327652436702984611018599683236587796172438809641351503584188437427158548057439570465745478644603266191822263593148230476961933466392526038278569063523934813756277176959122290721761198526533908514091711445183247188923854763502863873291416967902192947573300462350555579644889331068378068847871752680394966974874455512479701255409003889170590312708672118435474126243096453454876869068624524461415255704723835849763081840594984413536898333434419144896889809502098255469271674392064938532786077809910250445223838437264899535223128395365822890051996667986178218637966997673637747389506065324441471553045530212091388513512159113575973929095307359081355450352997636588766153654647806379969939629762069117733608860992380505442323273861243466631315139285298158192274082565567729215259926431400174871739433210193898153033276724221979232284520512489709386823124177325878980182704062780760546267795913786798242744077403658038954729015215184123560718423388685280543611200768707423872248940804014069010687434700070466505346982314771735633271340536998232445366657975874132347713929231354439808185094438169684395419755275378835271245988860208643646122920769892792113283950900707653840769554550681241736541515528893643922091908716774689458514406111140045959336299974152260564512775602366701929331616988836033982718580939066955998767336171937348352117627384636217280043831929679847457409955782470123711956808244988709936241831397896384232258774180156366229983217597639268222411691275274748189351491593096722114811064385124755208372576320564368503985014198799250506243664163251668160764450222543964489705857031587113377652134371034874090997600536690794222447904469089344116409301764717995481866089736220095219814064785979110537668359189327035276375515020509563383549137645822561853706332478154398562677378409339356854608314356798770882867251609660660435922871114110985317759150610401210440388913412030097164341953223995912872750921116416676160187821320168304498295052806333185829507076885534068085478156498427013895866622482985516624816391689116634463508091108672924354951919352994290861410631613971235954708981193283373392888326426336165906282056841290746424078424493323103592854263099546196376783995382700187362264357144991933155329959573186678178268429315396091243303948939959083639045841317188223252019748681218495124834788249785399233931966112914492171636340520077537111630004100502190937393550774011422417703761054292216014136731333415080859383904140401862698462757539548272268034629363905705800530844774799558179255190700432506912200243482451964819804262084060554743499532985828516313618518337211405770492266300728871276818716829359681801759747647615739236130741664158242850006545263247904839409245303408979773946230274615947391914340397318275259809922776897899765455229558745878961461223188815348426465405826158492595899775760241534836135474109682298490132832769402578608473747395656046750289392776627383482806150832016465224262537658987939523769383496216888312514341057391582070902888684874282406341212509570818691921386038514328817063071329033541542751551714224593055201056369983934445585415513665641217477270255604368006285390573702265956486851359723726031387698030746744170486383473146769217866211000592495468984992765500567645801880999108707488034770545145058407218601933381042204800840538189558854696453783537713998903942172364798223979095364244825846494633590004450321254353564778361534971889209706868994927492426227311434233223364918360194346014646952896291882396027178996326653280091884173384954452881505418317312339205226950811166918544487115576498812137394889362024190010165061869422603141456254109832844253741921675842728907092536483032200495078301301584019642364387306128137187476769837816632412517056131817912986739436414848998661752968879114067582778601936126948070582108160132953395110728040621014257049488265154052823339226938795017630698255744776478237920517178503333212629575702531831030176256308171529736004745909212583429553912523989010379394227132910405738382014419035794733099192399161331425131663850691199514531530164634057725194262234114467922566587668199962963251871004517695459533411510723502814423539780430427817523006318259010044618678521074614166464460035813438317846641158434606899836049802920362123703902957382589239878058614618262064578472073511797232654557270573262911536964753495837721000640549217732412561415018429321259147848608239146128782570709623737721709580150636189742345555081736519359181426802303870023872021567352648360168681826795224830965499398140520922194794006914571078454458452237242622811146192814281211325279211525623970428774978417413283914063768510175639907092230220195587719107724692924892883467822516352231083350611511636896277545960464328949947829645236056500613188994571530057365246659052196376942563520689158857586999847752592673833062148622484216009714822895665570953856415639917406152499525295136863464612967835409310964408017627684684479371901458581074560463773639923426567046105145886738907578161308682521382215448592106298857833772230305290460116230431667690521010356805157586388396053922273250716013172684429663612710240658963266876474240489059059795750372747097140277001863739660930950545346448088003908803525862674181976047879535715294753332032002358373771731171262317796057872282693706575742552425758080829610767688950935233298177829959953341439560254598918542678172605303213040715577303397739290820369892861479103500928870719073095114251547188857910347528061597925756247980789331006759664786236661007432998301890463978580320525882345934961414553153521994608019997170414048750204527798722030025772486462835746161871817014893348049602287274528045476545336666504422816528823582318466523206904120785251759829942275245813870618706652390887156593345776733900336658391703767610210201425757746878201962824439048623780488321316057608412275433545326212900817965726754012126826754138385091524719537526619165189582622132787313782515321300865552046847277757103955845079544338867406083590218384042569579821324332740441338866519539159537662757406580111281842877861154059174220275070137404259555503932109956016078472389491093381280516034155093951067138634558832438008915558863519783884313516653648872189739924084775824668040512193835155951480581995472830549809831435801325557878623738928177968497450436001581681708337247666005109225214633822600651272750802418268445443561162241692637852470872449952839580266034169484195039216176408491105102523684875645682721340159588460521666330500245018290381404851105463133364897384825053121590141164992361121596767402944759318731463917565361332518000654367362512801562011550571702125997248997175019398751310213813045663614527336086186650913684590295552285714074768032056908122225001717459519263742110106008106076817317694965432672742837108770985225509957532826364618755312493715143974643703253316396549244824655754344092878755877471777299317416387970712745912887604302147820909960457398080150030319600126237543134846093910770285020039751246489085086702782983247068100336347988626314081465906248717078325455425821042138538092212007344537739334728113254096583568134338471470551964806182431303749425061558682780339841382367694839929272986924863154648151120400682814150058842419189571360714088192363314508051611690890339546518414853894863020042189045890365909944326935186132690179082959315591492652060875188624771015443258309971032612725065343451501567168883430240002433761942605072506922158178294808103106214124766570439068613118939576805049947052159800086897153711160982550764201625915445999285259127519674615254765163289611062445236071255848963915766036847211140662791163439658802799620269493297810292650596926434099038336199651714038872475280102715691394386452457904979149777418985354822076766609584672123377164578699234808057859620164518564303096247217319097114992673927966897585454751220789742301721220352571022999835927854122537514930764686350517898277138017354814774401849664335531714788846267355858984774540144867804486801458591819576841329822950565984609571891207188349428874141566268254495605009392231907259744380945006636136384464273288949516950116527331556056702863358264918776932836291468895267003839835692209462624271567386510047937053094011033452578296144359383070041475806838269496065652529713706398652797682380242618516026172345517548042481340050174988729116504787830938766771867054541409717653716264729995419931896525991609248990883276863080542499461459060198481247075752515970802945435726405251513624421676934412962084601627566621700349593667308108572574395864148524003599906427351330822695429076740907920165917800227874969251608701374822310877648513822537462955703882065957474365655040837963767117112612447086945742255858094078553091234240865858677237671690692242206647669757265407882892711722312106741655711075937223559963990929940377493750628083537656835679218546478438307438289130432313833644341706783648562229990437777941500417611158078264346844546392377068548909945955394030609074959413518840996787292277398569546593739440675111894624632756611809844618959939102723729767025315811861112095837549389038472398623875821997469892713399475793813325393568642092907843409449879782913632976266704558016727401965608831382029151328286444318439809101201472862543270946679860034126692014676999150724412819612873105673202148075886891254083747331959868146784798974094750990337428228555271776163652771186418000715337153143302899702107659804192646773641705827162554084034299132085634572957824684342402935339706699409484338051962764857486183357707005778215044908795628201003312365659224901817866689788115102776746708990628366325644932313627107508558013844131445355668929817777369252704223054975836568779564294601398797119596048300138856424013767920564400113272431911612297305032905834469294853155299232761934599584821423030630917438476555875551573269184275145294641714443118380001863458520707440471955434586145550729543646376703620345809984909647571265240990395559937752982556569594608689542636908444656044604634419058872148819454162176986789161409188996002623341371760767425668281484693535566096879860794453478051424176441890789315319026285596174979858541058062794062874656876175101371104415325448710438826642187365197906495235458901334878988940305419629797956642264253495536642098513689382752232448777987461623288236762747358042130352079824725859629694455541170394068214295130345166948867218978288850298963707730623436669279483856131610465976404900010740338160437606073495690574549431559178462618536491706645969814027631167410110984041458193339308506808756151559130753082531963029008162218877656663358583611961234694041527554132973720994118526077654091728736247461368706667338783647873587112154295504412948879329985072442507525483520998322175777404926107657015971528547473371091368729308840389911701267549952217205158321331584937466226001980396496434704263450983880598437139205612342168262280374501677740592672792896290937053167749722122450551501222459974225640256776458805620580491624482474838443392427031694088926843565634193033868989785000594720860338893582607263282057678509949024373878936289929788996379938364951291417821518153285322965267349888025444071733614965849646851306410288376632095456710105181881404761557079340194414136139123236808496320480748718120788345568049380595625556587870594814461420370372608622163745367676231472376976371642865632954085500045732627443742271483895091237236815178975583529155957410336745231644779229686443250457099674857123803155989204102512863791767929915972747365091994835664119245393290350258966629106065056951930171001811546833359037717262211019855523886595093907942995112698700543952268773960176235196871494303957858095531852539157894533475223745486413437453694433205224047111346449021962775092729343190064240066647379259998809660126117154330824174678349377351825788486105003670104222244708391837292717564045976562800781886242799990408307145030372919500116024447409360834908515112376445778974643125528511075671901959738373751534939935975536296729972288796054490389142079624060428233180992075113194887448062747540710039911071498155152229676312805948847624409205140202588538310617037443304662242469261963539127875897597191613994799501333007570336214837351131820080004129075488753977901919347057262001813855967961436062216756045715998030082367430237289486715320733304979365946808401335943559029423715035454682184223558978354933714928588768996394420628576550774675525036495799661364085395761236541984543414323819141462239547246388730757119826011311738399336403832558740237696421120653178436180947869154657593687982819101890804601401318189507753002728756523572017996393169311427454345690285819890837554769427319277959450957159903167223225849022769285599565535148991640355990217713369953116201477961632480921773667507503441189489464856908645494991668681457904008834907675046664996153500025391326999205193907315613583897639351729430391702487265980071928577573432171941124390656753377924373392768863265320730270338933334245535215713839175398433693263230989870937884414951054724187108011436099215614918087271780938486312801947340887873713693890241578551677775401744049630934298068192572153178780561103249376212911932112324964823781528353990521725090615463975811617092195500312049864585335334020500169809457160683578119228983371774233946570874464540989572184927201466677417541440793811524463731679584162241074800780734853602399466220878362340000999018083786868981910768849960830608460145193495482736489670563006545196711870528979942689258585397858064469341585088760973766008890170331493778640058035367944333252459184524646617025384412909616016413824702567600403940564874165881277323280507368799883009362990846431646058739180566897743244160683719227430977600432255674835582841762051974595439511737358582827565093413709172201323182962596555663232959047556013625141077829476509936114998116173696407006480764249720111034956883773248661585875097507233497744146331000683260613199137655983982140736897665607888326068497433821767473829966861866665219078282585754393789454812723043526782760822792159109394552197091161868549027790707791296754508150221077590796988160212910092092846104044321111175993864934278146464718874705112267540661976332245246552204008205475160171227384041412213795662972552070872347980544204988209660103941381670983861895061513808381588363326956853153294946871427451349618524787832678377976299555921499767958498228833209053739267942752685671334933223951377753125896907338828728622452541204314251667410693004774618258500175937547654428506967069713731538282370878322882212137844146272227480127640656791137724062743894999121553208223468412264796585941205586302928969311785048964718316298228572092011247112141003649168766457083670511926940611078105366238705172850341114942240342275402465856907984982417443232014977221246162907734590257464154426762493569402255866257609185028649462119915808569898881352312651809899235017506628947673500321875614539433748355284432635715528664244979045692752421175205680686723272110129296228364415967790385048653258129076633842052100795763493143152563240982943350773061131067652951662202403344515052190024774198087023386502500101872602696036197348717949365948765512304930021971771112627774222086613108278259544994096974540187277046941073852175663608793755825067894150692390909674801064051550158428569709367401018546261047026893718387129126313560074628673949461522251967914740631609523115151653716202667271581998252080083260885172032970968471850216688103847044196687880999641935371084389879499096432773112654920582514338610397680452478460068180769498978330615090700498423834047017680169459282558250191346430216062626975668985904725927138724405632426981833393414573025229096053015344620737952436772430862670605461428375958141161341264402989450935161230108899258340328493032642460927098962729813556202086434720892345275475732155508723244135612732260875341698461113053733838136808281038865411248374653160025991869250895263920375687104713347661669120505806915727477625447364592679757679196128183573646998857428721916609811355228950251019035260320049226478800009466930353286034186028904218616045378354766380331434704329471403013979334336797229394510272907289815763685137348361797163775706232927794797817885501038874034000997389999960132944724357742953305864218360360272994790659780643467279081714116966430490684509227266450785253611599525272848906542066550667774088055192281574117330892400326898949113190845705693496800731123526832708878488567368619665065125844985741063768581904411024866520892840411696367287394450705409998730770762206725700549492226050032011345441883821755343377765880806883278218602137154963399687959292119476886117094604665952101913922816820016866876636215610471571257278340951615793896062380720325479153298455676733520354275941384161058739252283800554831888602767639592929909489115278041243522902836867708227553987990299758303562862725665337216074301688751423929722506526334379917890030068093301925103896626590187976184071636773829318406028480924052553427028918023867791389862425604518437076894617323750874812998470706452690215519488903063779678413093408501852981537992036064268097970843771258665386455945797654831749245497213205240519582477563650193532546368835023417776188853786204676087412454158265782651463270511071046218691219280235704543045732840565016598964307888531832047089324623869751156823720448790453962846300200609833905240860723355260605429570696589552635904321074947306170922913872241895225112028648073501222802470146158029965180251503525186914535624697353527109835289762653803021802178196941172426242618707364296040192194580765557419579092226489738319477603973562814113785247096751282953070611939057619739380083348731085370869203357888455762172505688241398865228927387975162485759102209332595209396411245719212855832238452152270491619653456487209247606036037929806687654662257383699309496760916767599136927743943335761779482791122545865137134022156467724288831481160552593318183269407288029028763909450194320564170223354620374745986732080889344695006468035035065486433494000575248644616225125519443535025640293634293812437927952569785768154153298284453993382610270484987532407811410650502201333231868421477242438041150857736422740785746190035586113090154271043111183897500514807869975023420994402813271273461595191095428502713387025179287000626931763759213010337934581587812800822058460770664640208902652620843215366053858846350484619112309898043799503519939065357845996477246054119587851507881605275651571195604856097088236920169041432169164208821681491299636748122444618747250854412108107322852827057250793186357794282028239721215473692246379124534157040466947649536964917531095334209153139153821936124053274658518308932795790894409685252407410924048453039056779827865266578187005172185145755111555330075511889848044884325707683415679792152562008520420558535298128858117064282849897139415824778529352720751846149793894134606910883918506918175765781938048994322013907481341255511487644324718066403306731363235912582413616456575037281604462559399938493309776788106235964722939115302500903908877885908601430998578798515082294005876260502906435965036106673764857886675977809274251205073482450004910206116435903368631190131402219127295710633538734442603331526165804969901284589042011251019177758127893450851994631632745105815752132056713128249746388759956075244505158149540682724069778944540141838770944816796088882643380601804182825866301431903027478001402167975309494913373822428767388653797051375441451835367004165015140481700060565563672170335248573713092617149002952766566273841639967721161888131086735345124105237354619230696265369960799960190179553415541707895137141574976658388185949769765284764674661254121433356106045969859997903501227017916033863580623244139554380141307665139876783651219188029787768609574465560347741219756130466987696641174295155868661760937256653779749235708516243493374173530369035492431101597770410868016338998614951539926888024890705158589953154817718035320201314431192601743569223506003916506573618223808996172457290640530145781236859329650551472457436751105092085835798177446746817070637854644549002865417887668703526394071058251303310442344767154021609990531459067443589539263230378564845632596161155258327733569499585166808101218963494309903463057338899806741214298510960706215947193834762153896905674383291309762826322645100227038704725473078919381968708919843919894323358097119144306686325096415170120414204089099521692466941945087730262967983402044095585238431929701925120111456499452417437743080839387610666314109509618002877011134207305995419937660922001785815713909430577821282593960599736338127842334287539718258689401641970689541934894562439699342742538014281896911342370368266288335438172911921841787337240467642675068798465014270434659328914121680329230739482292466409103870338872099085096557955823085211811602553317955606665940276438351694166015910152659064158739078333360629061333102625843143340363566789466763409856792404432017437041459962081555243453678839924782102805886473922172072534493137687511160771712996481198789768704135436331113048992997602107980422826069883856053115367117378352377506063976178520678809339512385125261309687025666586513488245402184468838580666461487581246077978974505322583041753341799433200710298869344841462226878845840189705242055217926196160102559538429959268447883976425122162275447286234710923212940495420751984039277182778290030646080862905404638550887018804056742993203787889977130615219414848546875597977867537420797980260970634062337016422755809330480842685130249130575925012422060716589101885139779317435476166638912379226137517656566308109582954650825842842613487171814709332666752332667554710005246690940774093527019462926114518753218683705957972191199744803336257591204437556761076097298621404173002308822627632936303051555817922998454938294427248666183380887005467706480727351192272150270753070964912953094382388103335069069327961003474561017472829023469110139405063303839702113189550183982871937848247330189793874990416878979995980141747121068720547569768625118824587637521417612442831978584773692036979799129355027788664872559771202480507373620837518352606459400205949655743722324267345916397251354455358551172971324133628808759666241778479484492558207627910028368414761653791233882593383332352442578961454708306808369891084240257404855903539684683318255909500578783828931555642394316794214728738191802643159901184772055226830636417511955218430578661632755232415135678355389726017747662675955357150196291297547504171238362523687177876182625629715494968348656966968203190195213281419931854512962551795487616804618056747583984461154226486667727119472587603513882116464885081758747183763594896483678388655919178947415741533528153439024169521508249649720145848740423153545355612053928994071439663198265488368257507899408556792310300048077608458721347096666080995654078055442920595685399824870670693872450529197976125947130489941449929301467413897768672262666205653121853325054433612735602525141267849755289039626925583191112458326790850753818107801366143666873919278294769424475982471070476257143619575666712970842015046507628944656884577462149398968870169193462060497980903712471701161174179914372390300348809215805066659426139034155888576168840709909714815701707494471429512648982197939786707900774082116038502855280544050450590012057915389151141224397968252793238376013662091753410964471393018953061141881007586696717234699247396208199448661315021464818913071862900896182888588409497434957140191428394409874218968896449785029451446915546965030729731102246967812339320172096357597596697305843980014037504422880571915608033993434517385612994146648727204251783920285841027353266399964198824979411136315297599327560274126240468844768625010637081046859482415823532033977582391269433173435647586500425578908321007901213236698591196864737872716960316485995650445810896222951629357231988444535566026142184696250200976349449023851246431167112452752805657991745115769956014885825871461300576087702376041151753957168321278846333060502263722544683862640708911339300288793089825412806239296786407687377723289784067010938141744058175221737044150820575452992215187759329891559182196033533990882602985696821709968377256542244373617243386915795995087441463341161051748023641199638680651297519010537309966364404103500225167996099084477099590365100679646833811573383303864275015065003631250485780055118035973872242769817970820813558536051664907197146678190222806905035830118368820568974391989998285320428752577713584227849651857195349671348416917671316423954364876392909866643228502238902004451255433078675942348284246321019702114207804367041011447368191712899376556327347631285684200912776139814723256112442306626714314641523772309985261991941517842703101384651841674060114719046983893230413816971846879149578802078787149324946155445298985413850931295677651062029012438833166292462946551675868994199236082509684427937581718872674877601669887602396131590888176200396841573440992719263979933940776955598803234177152343192868575771791193191525584082702383398986731192448239728681109724594530555426926396944378081956006762240927180322665768895112776973141311056826169896397665071968082319565761584934826984026686098876475150095509794017462037006314518273271873109801688737345887398624376145226611383205794391115743115604715768243800016295281132208302416385973918534589595904731671865541474113022700588848633374503438915987582192863899259209551276281523700836859223924989400098714238354004538884182779193874512981657345649768544048044270540425342951416162382753712667593790892433918540727322907106214067690270876598944765770863355731865231700431313981481878257043854612526002121523123199310622174677822758622809874498757023867106063978333619671950110743255927198222891233918452220109460576589841191479418802129355137681037510954357424143909465077176439084937563337481882678999031388549030864812077615318252777207288665082353661140926119938733281560802458983994781120473073619240987474818041997044754179702683911285047298281944254460130614779005254301321796857829452665455433518943939125425753085892948595620964607217342308795422839956923427690706061017295924972585484836280071972399445324074825374477576040112898146535998575014786436317375906957275813115289373839327713717611082177413319728953427214077528245031313327164320501093496073403438046766483687891870222678902325949636172421605553125588864120359081982406469950752592543914049318449365666387323872601788555246023622398992866509139471542340239587611086563147922278861740362530375579732859147676823640969902883146791469533350082885517542692543158079487598524560593284725489202406244063324748825288783493236816334735199858696403710102731339699452981904738264831827175539324892921386787578508610146203040878760332388834896123906733499721053677597224403704409302458693144472614491973393878542051096815287206848232432448540941250297540862940770960807542481013300177134172718944898897129477290534916113081738116478250397263687323966865576476473526338215018736234100194428161146838399604242864910504914516387211142233725994107464279017427766167877212881228269325344213861811440075090766591257957983214779040384198736280522240264690201109391435638706548947775976519653951625958210701514808505861003126183899465335627124544026506047749003372636151993739247655995940679280249293504266704512305888437678245609536410904857139828249019345044172258074573278456890011366853627082503015816516591783928270999724205786345801692956253481304031884717650779689934976230570690166160246584146967221569941538553285117249283504577659325929184947045421213827471059264709665461670866783345007367714431126835900017591196459052759690604381168849500340277477918933952031850059229213280139377847578381346411606490426554970317138053643184117586818009695436747243031563192768784900416424146462020852520884465383034643028453310605831959564208273298757373408759572057111723107843114536256812021853330970052308440598862163798061518798494009931095589309865212473677833328561446472656526586756241406809094916237104192451605870274386382852013252497737758266994035927309041348065081007317175088894861993052309947672352618341372866014589278217534309085174756154635525392327570991456179200134513511726355166009544483045766166107681999591855703329178241162259527115285648741429611883643497556361209152306705867865075147662218326903091166041446400959299520101602833791782896903575525258508812855871790793577198511932980091831176392867439875204329000168110265643039720958585868423736582702073680792090234484574536417994463129136567495782360184199221351118072710597276791072803497422249574206851205543797736955060877623168000046763740989046415209433121132935404858177633351977428607767376680867458908554790887389080959773772460896052008137148069001443965341362197684129950721764258763456470318517005573765793727042751632662836540796917782831025027834588086660084453428615752573501428380467335151474067222469268419936119919580538817333298303811432080247967706483044038935176514419349059367267650310448852870197330802641001962596534248091226506770943379163934242060989950050239070740920279097686674347630935824525051674864485898167446624659290267696025533305121195906827859733173805452876458592259962077458277793308766717785785346231671729537477571156880038737701119409261867235052317069476487892310722394736930518089906206519705212644367625624137548621844179384755821006665648174676404112469590545908412050729834984106168660173571907911898481867926384432595602489084148879921840674974456622326662465727127934487862898497724077186994597085438477758592679976794660614035719357800191553489582283587620612173163368849535369989799580946209110792659520308870937578903629714620316333721379774439905463227461482929388249057012628637417295254558563752794466322540412256616507034275911189648608760512276919355110150769030793154564762094515231466010709111697306567354464953458340967598426114461861311880157297080968518404904850728946585310399911226748028836810834423058482726365519994178930348826995146919853580188782007597224107350788124744693375630094744956818317619565498954552989800992827719929258705998346159298812929613264781269819242390053175865548147665498809207098746779560414348174716440981855670592929501990043363228527818018354510197663293967377243825658048337628859459921980214373103895799685579744309014915057088017462169563536288782573843259514546327236658426533673502779047111117105018855630112619562711354420757628149072350616469045492882642668946674629842016211900141331009151467412838653436611276911914980695823457084242479951155094268967797314802891082750048549651338046526985041891791399919431175223504819638491351334780796915723469931686199837817037578458087117076284701017277923039666578230907748435768235553763931404405856304384475378816723448723661458214979446864238476138782806926443076234381242236782457235392966428063859789142641463012104848964203797892985149779728205569485070571892735110190760685341670319160723857626640559065222218266929021092925144836885681430061365744738030723710046924885983715091360926124656953904834030678417367708260222729444829003414279197082458303830525416331445621660496218305896145632480452203145891955307742066328788386946154878222339700741209781175072001087237964045733596970639349396999846024788619855249090277503346264698638201223935083196866514816947561627123191176467517542850084232205869766065726073578658079836460171683400147445839359390878966964626773853673476371487904814966902268148238748013117796720614789138359346146073874267158601736359953743596598641821751014655176038709177443563106469795834793604271203190909257189802095487818503232222894080821756426071142849365711027606767595308767269953140554457518960077561614055890465695370964496711337719806312987075181540697134641356394629521602521175305344786910915730429309105600792264685856946410411527589692324870094601350055966786555925436031374234757155656785031849916503777984570165740994657332008158963247732126859908310391549005715775792314583849968307272281044987327589426340420013363265274947966111712736484528044273266663278473143140033223293345739248496504640103439256186916198053545487680716947429276969378675403627836423781608589718697916290528201086711023239273514771313955568200857580320406034719857556791952010948094838115514744852309546891080626192097615048448823586251345393101394835208203546747427788712196554798217623254629043651077976344960764404627653648828561418511831585348813204820989595324949605198292114060340302656018932102101079333579322963810390887363736555920862161340277329230188643328451508014588396975500706935398255806150982020241667987442444871945137586823002504746606704113985808909245337156827607225793130134692613371379805025421563500401690787132815251375224281289256863997420472957656517135209659865065196939429988366230994681646909476108983831209644482479386968341290489334198709237251877802636090928203588957960088953958603999886957548163789295464328676900002298214967045484538237301661374780519084663304282812699019218879367171917312232988507557635046702554107587039772045548209719077970861062361374107010892090169050003948026983606791747441058985320260886638708511852641376984571250242787350247269254444532587619174762230618773426946231750752244834095760928440366937920535348143497078119401558757847898334240123616033554544368161138768450843152974392053547697071089490894165382467980754414778391591728987763346624831980751635463641136090165097633944447613275077773386378028475679606819823863893856050142969782552252903030185484539643414516788183750782112366201708022966450116006204841862931358571542643386912536474293285193425779766937928502391052150928107842792325944302553432621779159688396888567000936593345844576342091221015062901625023720696474998591807361773775394796134886379145129534532858920558892094521802435446180719194469742800378849083909161011819793352484545986050939011459885735611015302034671862684807745317532709086544939678817604840752616499449949173104129412759782224413592572592425901928917574587218139922739598302521894947487172128391644643206695025654336169563365987904016739559157495514965154749364079847204748488123930263596513422704907308096316038251595896830287231575517248588150944388736219038568190426414346205683122170521934088544989385941902414904411708156836682434176729598525878483952112375545308544719815416310050034151280301137355935999505329567072034052089722413846268439308667624688840668331959416168883845856605193483428181354092446174828623492715543677832012142192422914336801626001072041910266364606169005363713492420604691821318519779703588923937933886398103434662359627494396855437334878449210799999939551230469313048351146714088107970512094312896637117255806920477703424650481251816357132748139644974509240837292425217041308065944940167620957900910971406873449052475751722224095406459315315002433056148093287394505805761662039791473698965821768682637026878371760367870103635499691630317020318261678152351824926044308199130484084675396935893147546863554982879095413982514405977109226421970106094639743563602816138158165533311804162681555572761210547190320700979519054420628163888526107189495315321522729207537945302791695225366772064636996941224536625674352011816323024262529426591057918311877205176120875244191182545164489475457100231265855567652023314497023033659282263579457857920619532334168410277301904711162040422516113540335685731006041744955249112506931858791183743452142827927236221502746813175279696288125885691512504063939816890017884887879123028816934941539699895234805363768847097237013424224891561769315407360654736265595756128769911738214914662663800730463651228537778381516433749553075329637476647179123914227122404147945002982452017618299872125150429431907698282312702032374328033364960305649865101363762187042101131664678001256777094130145378941286278154398321389274648567007831054465083230768599092729627552569033016898634333237040165548156302238742869608161789900584755847350125937463981070185554277881621624334721259550841534272991566062819352875318519998564371556941521188365162427046973775366146049809531901447255264278086714808375697266712818484213374196411395787209850146244125275415520853592114071397279776679998326244996718220579335497168770760449998044900050088036520116616959380516533546888195117044034333441856324894927138809336769533517726061798875886923765444880910587118064627245085065544920754857660458703242751403548647324351618749269275800431920189855203199724568922398035790868523935185686800212876301663690404287032976891416438750609956417864762604329806020588806561848430245794084525810360006309404390306604970142023499931368794122444234163971817678452592710870266070691152092022235418922507435719788309519434954223341781038995089963444836137857071374076717046064099097894829630533259887584518668145605265461786302548239813524567644047072567840159517284611831650899841852139930403094093641963005402094571005982242835923705965860367735439733843537310423749363534552198916766313811271956586451604369490574648157331824295854744440952946004789052441727995871389136720072219144194627611884851080084942914565739116336365913125341493341528960499348594214285184426987561684891659586739361315596719090259342439323219894818759385444068202558469865867972472317186534683408669672035153539010512551435744809480168186016093365963403955313621428323239411438463135497500607455336720332590335561571377220219234368459954392390854591964263789228472680996587534260136726403970230713914715820279735347244414675911037838997300288155738721368963758907461106708955478434907772539443003686732251644247680130443364879777863761331338175346916565970065090275200544181231443718000241336163201535681599562185177459522253907803884118685937409644473545422673126671255244038966433812857305409670203849000709584262117395062025576660375014518694850511325052865569592137891183328824564305791721839563259511418666405870552058755456098242751935274249734914669149025312326768792408830244077633732411564982869561970086378631533188649325115708306903753585232734659722155712232719410045163620103364735686022684999583194724293128585384153826251994298355271579929522832159134308827269917938302535274812504515817471889557134742684331680458083908684740604323035099946781796538621422986936821291235097235893436189116285004058511283892458105800480491731559527418503774627043593599155141757362599101339042546600896788002003302860041251454132766942789901833039664545785004011453606699398842609044836691526343385084195912398063961126597675433832684222468045822044106952955309329226971825500694589306628325751775971809310587436232146354485487845912208582304732328008545937949336441857771145781760577354371068944087997809898820544582970207964639190346576662690720975476245979499952938830080614588268569028405226377674706370653808339373771959244423405597950240814001446528170921990634930673735685821692421601321878014834952298555993882998808054589060906449560460985338662113143562308242862716966564034498995667710669876880443829594004854538509717945902348313168716838159570741831032065904995871304088009792133156677659831879842912089681644735666488017912992381640738190687334949551589527088182691034248864967205825524964298138529276015573552036940365354773502784437962693310118794208528233893390167285017677671061576858775712054893116202982851375720044776667479866115533492532992493259213398834714874884653431267271517153291097891693297536203758636394624330884566994367684629313114812541626364687256438639012491967707110140082875643858218747901974896885350508453225430832818280722675126668845588998553132501308728812863251904667485203987379369534378168419180086479326036188764144164472788533690092930728335855773349767626991362946452966441134667730898930936028578779146962218909905327516135031834645394600884914570827441301630374528368743440427706814192790554834041065855542473078497499057456786425393498611314244990592164198463058831773888653240346503071249119783593733898187081733622533329400625815595328866914569658839927454361310691155497319629692294363769295785929000385353454707201378476195521151215620563652302897445561525753556798706107664552409039686325865468669042517833157117750408608212887754165251244580796240530276052921915724813922426337156832539431665683348168036686769546358475782093504299015424372339391826306709981930039426842700122795505340154333700479966659789743107836461856142595610916831613465607411241463974897202531251532820267604708994320671015286304439234567051632835762307542102259962824531621462981108893482772054456193800092806820981858058468268617638644302500652135625904212713216690167936870278554622045777501830143213089029255952095957007538067026502038456224516256442890928509200910771333720511450028420283935930082673942602284003417214164594894342021370359730246641761992234349428769928045354410589831504782048951710002891482175871179743065075672540127471742669392984839409293216748192734385210598952691366006592715370590443994201736676419579672080465379981510664105673046024121207777779835772045344896985892936352715176321337432258443033111092131098057726037684141806766500578614930747952626530113609833640718795344015117552968569243895872682821361561632481388379748320586152944765296026442338042870464239252581928824486172342659997250649869838312935166662116934636141075278602225898632880891519266213514626137439832131019816353750673764017110047032337867310354035374100625252301991775861030278612805813905149178299859926506822331407247478487465866576357333361380538409050475752531266623619301039330389625784450310556671095060262300476658298495700304799644216118215012264711065608198001503283280194982532926374076092713466582354531371476108669574301086785161640299146929355272747100424862546750436798396328510809992384998027012004331949676172181920147744562862885370569733096030349220863407072262527091556556200145931551667583909807847399528105009862370247966227666443099593133012501562843068609329769318716602613685581508658234990395928506576231894008976270946876679285364944183321000070419091612279932593319581955325982472676811230412023871243898939647523684685809596884617453117980513811855663104030930914765869790981661958435406051106092415187492626040696043868798104825216163107626960610518437153216692541886948624773267247981252826108874379301633873192688489733677673589666341214326751166615155757260854851006583709012884838148485805348491085677875544446052046454807866904291094882950341530565991451745722026963107949741503676778526127989017377116628172934325419584622922663174492269916020776717667967068529927804967933964099832509576639163380623394122811221218833218284503477627067746827432547712832792151680825125385128882508936941432864766715905927253353036048364955021877671237343577259613800334364423742846591456795455320766953738129922496731190389997148584170896594536587482418275545179345946344292353078895758825237070054446609414045195488272276930056252262085903849272025160557019999748096973811007521911409238873133667938481646465990363885736338117893911111026102858999041914852769728996935063090479368422037080950384829314135152150638511034046692131047496678734295628009876437283516997817028229380459417487730250366406527935168999024250822794200612161321115889003506381132313017438682314505900261902236131590470021788784514393834942712526502555517917616360532031244785765494223531466591260144647682338204629643809957976387570398123268659684945348820688351966272870895037820738839177401278839875378252051555678388304282069178510846697225378006342010146863634610825506671237874377041221813786478167472643368897395031514758477698496466919273225945492416937546175013232858134887953075275963142705311066666751684703345310125431755121980360907191565703698927537521925282226308144474015670423486294471977519000286588511143026958626078869729226178553225713295678927985141851571782593668124451313362323338548147470304484283480341141806464765136149236120980799146826404159105997090496252403342926760724538724238435955354648875944560231722394950660848451969585809572115106830682824348951404649496008341671521915885984738685841643940398754146713282166154347183002801204971887072014334992780829268981464857799688654291900276780316734584879687820613131466027104463676602571877079175027163911961324575439828203671114885160068340545869196044609393606813366340642438926737135353696567965747293377693504761027686429380304551370850975149831530540105839594870010018503670586665361282994594121024789114562438911083683389270177297064968872224088779835710171553140437952587379953124861582110660899536167267652977707067386370259627915050072065517903581830736920112514184257968387669503973431938168841418051819913669433957471037354259316494327577470191159052073701849255450503121825294337856071350575668050901385960038472455680415198522933829867051478311618656166031636557576903174650667517001291343998310119716967765305129563587443589635132769231571662426999534482331131445400268013821131905457728314937554202182363904947975472656330838978282467873282849100844302687392783182935177194327368664671411147682867145424932310452291505908574743874477270700612962897966506112534569226232732281421250307462177070881041693974423582677798514058558826107741239442173327442243574153306562070333991078691268405211005186502291269192935940862898887100773702347738566788802291942529045077248332032734141442478613790016477079263839688224936223782295957543862826925738224011498472100050531431536667000108790703405244144516670192579433167859959479109433517810691275304477785358484066145316141259776662028301596885610066047025385298032948310427834022729158404555774953715166331774079331416887995028536464135768660639279055483415352536543454667166710445699069858281720745459236977821093467684468982033197848615296375202452086092821938726416716205709562379474241233705344123556685354297948744833943236439631070485402540321943779566007375158710865072037967700340583702427923762355567116913002342934564550354656698117302462937475280187994476433724315568471855914078402737219716527191280415026277608205262772363944912953411750662271564207153042885754876125600022721480157139454208086548603867380821541815608126429702131060942225035967775335168153723831634759776977499075944982831227358730738435706919201325209277490980475096176662046610477289097073187886368276465205983860810089351067190642049703460467306269234829511260924703970109157652215618066494195550902686780424911129629043747947703077636305074875652557668727848276272366548522454018106176515228715349525735072733478618398213968733240009198936600184957265512264111020312864539500481122906242510598507435685899908418729686781681664765478274352257514797161089988045153389371756611681647308989314497445845993276631482168338375499051476218909087667761658456507325123649218099979023516666467069492428726033411021455181669879693254154150359165353175663664985725733709601010184311950947401887480645666949444479864851448005281316429172564456014080084954282871382519671559983870365964066450529797599436317691559442774553660033500687373796886322800745209713336188913798081888429319477882448816528364326280148601376916428671403297328681277021349686977785831043201184764308323633828729869553134397187216975329565298200660592403926018903862864557751240755345195315192252482465826321155480824092799251201319354735244564505778232250932314230902830435980403630254951026532106948154364496234261033631366280590498459073285886866642088283908216021202210226781088590933126941934988891733440514933422456419971235116184824642564807569277118360964852666375768873953462437896219590978865516354992910547004912398065975276092391395938218500545399223162677675340231731161518419148245221651911358912738341790823172324934121921872656549595807601012092969608132655373519257182604144610068043294734858782085764887920313834649542274332296098642659771535244500559875940728868852028417017617473606592677938016631897869243778795788133034884757980113035338824909841778324104664882396568439375384879225682247420760533684564684135062355617932105048877777321032462646169875651555369455272502123316086962912450099549812946247324530727241289125757398579161714032074629594970210682247782675381773342009623135879669716053030826089242156033366403460849934738507513356405899364228298171795097968743049953000488470257104518208596803160176257596888822723526040531273989428452816928943489975787716811879744086908931223943542008007366402520363665376938973950158801855597746200263078816979913538261896576199310173259240195357514032547849716166320909609698248331236772534820723259516495598182002345748199254380833154631014647870366302728292352488335898162515733314797282609539443075147293839395442505967169826368077200498847848461969689484176407479468671049848162413667463611954140829864752550494723048557585416191508206119663349246665259254468944572306874424084212087004380908052567537534445255776976819682668860032156818483904360634680393665048094210032770487862075415501451061661249450554358248645493327781560276558463593342461704199964278042905245961429507498097496054238048847079730127889044292120570338526842938621256142496368646922616039873123043004169574608894288542892900995506545962524579224225009341481518488606396862820520409342552277372513003811811332081175381814931194578178324058469310995768986677343868331253837068292756623358230977664635042566922995291158468275463495411227762581456136715355748394061838502500733444897580448679309129434905578446921321895892504764749627621269410217626813494851610147184440506927659340153598219324329786694458873843263120537512707562297833895440244003601466258183415603537952424913048268149972163936713981790669808690124382427847965636895830497840238166816007570272502995633183470690902403575829512565590482458378939299762019882548001728648165528457106005694262999806495295362582479602285053987672092053953751249914210527642049159300657315615647420037638949392182056073246594736658119452993933831547062802043281346725617648420993335138197010575317529850527641023281359286027961683658797085741901574744065251377457899347276598403773248176981132514484251181261418429065512126780456190712056079133079070784975452908634820283566409584134858667191633134694853619022338416382509254893166943101007917175963603571136030794975088536171436320075706411434941583893354392828948486243423063663886956147824867678937794631712342075968436937122617615075854194769230579370962486729354079554657207542134522792212732735536514192316174636064340578801636312631282020322080208150061563813520014023175701856437219728250664809614536107416403800503737366653418856639034968994706371319715892353110575371702141280827567500517863705695681439926466805707769624382668646839484317117983050020178382333738091107008925585659504462813188277406538871997160775883499368161687558197610233002257205493981468267121154980244639922314964874714021256998418433022544746698748993975903701533313089640637272950742991935900993986850697211198585400266244875950613641820309087286392771525214880528270649026702673951012205618339273017484733385699658630722962262031556951936612042889344625023903536582306197647942672587856787598785546896463859483080953991496431456989300680773843467778866361821639193232841912815985476687020216604683218254009184905650240317674120203219943916509259901669027608494563546371214400032411952361937248174809380042218057142246586552858295728435137665685491337039547475478017468565492742218955561436692104606357915300553100269740392385965256078063994335393123980316071657653382728357325288126675230119203580695617429453177561221860312542805521821579254575309924971373940274160594030157340646046648238739136952147051577082821965857121616957486725609501857109782783662889278269907087184896738495394223784824113615397829356673795457361096024792837612254227925783693470794566519202574412927361256367542439507846617956872098302657783488484132747651842713576207388377968051578832060611995436417922062174216059608182179069323806052381803222379827626698240773450134859201055557779015753699047553731715400001494127336541166420535862875364590555717427303102584678149275876683691310855128213827593205204674631115955145731888982323040563212579646838404410119748912489526812255810599526506022636825866823679911932496337727796725064356796245115381775872030602414127185709154444354641491324812224676608348716253684106633195110094248948062260594441727156611728324877453475090893379148082435906627146119892946718869475216598170831043412712611905743125451864803569951381458910378276685029838076042301942188638175795681298162547897904333985495184353043061253343934806656164534069061650119247411972102801838935686402748701084882283830105783792251614405052697188750274915867001687072414671852233329483272864453536908940952107033116483656016125381473180994001664289017477415188341255627516576720994172400485929268485456181398894291197297421949394810959026810879440324122997978259165609383042892331394433819416138801516256603774740744091242823424373254808130104253501534862294363936316090332049409945126474409826018899734476078586630272051474555555784255925389223858647194345261731474690488902570221182791186246350324946141601810335680889129879816982222096217494174830460027530386653577925928966313154036663798317420965533808401155128172231242918058215490726778638522907608648299291432308399514906311090874840085735434200420574769101031902443646117481378089900286628663269866405983831402885791462634328859663294370840879362600692989981767006807631105359643439276565859944090573862708778537340419093904864532417741713251466400531157270900901698954902443001552634358870524367967211658294926126723121321918098553829271430376009589655003800579957093459075328745153879814347863204845252681274953232876796702759592438824805188020431715396862166944598559559995937226213430553992393130952582029986580050805028305790680748355184067492786223471538023173608527191103103285474818054775039301686053344096865831418215206289103816324279146028052182020658523537799434234352537158138147955798884819748652148369262806200031900559387844921912204802498418399841247210962740357236479775676704702401007476131705102198014708837029527979218810428086313966666629938623325848338687742518809167432787401557743064154973859580261738685960277452748451862288168197389841420243430962286095948445937169981278005298156193152655346051222875724976738767613401241324256449274651323210919620150504493835304479124471473050934811805420486108088788201504239099964665120149271986753700036552632064258802297205909413809692257077454567549340888156569304903787604887869089791726208009959916565376133386910231827650475626421877724526650934019623005980741202358058490687629822590698323406351955295049933053532066965770956799601146444257839610851604220152290658722307315956353118367733170146069674836397859637110462206829763665819797836304711689735006730154533013552090681423628319292082952855067405230169808556955445666226910637549188290977033142644530774828367087430839535739968377757611254009231772389104301883207231231548793203111970911358634051133722287981263401217082544685081078088904149188687887538051524087856736248763091434747044718605696497174744374021603334628124363410797542541687494470212652729556138748957827190060575007085318614659475026081605887789689983996223844314049045334482331221524220853617274458241560965491839306328607548822673540826445378741132826024126371139081738628198153967684279095944660517750109781723151655496996389686830585481770460647656736359623483629137272236909319488358604991301933549002244815476251959855453489351150305786336648274862128733256437408820428614002972393313799500214125766274216624719805308770964664738614807147713280958589546994776956679137405126928431925666552723009310970293518219071432769727831412208775885745918167298888914618729065430149181862001525544746930992451610115918263204477238443882495545094784199223339560791316039656189951849207655287491169876203557201406077569643783661066896548115052122661361551864993486885619099260416059486230531860147206367313070595168015831024157818065722265303294164414143663714141336469847701402506362909370349002293303354064414309722517170756867148646472632422547710579973466386731892479154190445773241836859671928597631520141068644429916426774570903222195939924971673255284763712963603131571085452440571937263433833766417997402372722440894041280676238811005406974735672812298834112223853272633238246729582425642070367380422481872554028744096419319790022551409742671303141760247685164222801484393729338263395232693726585275053192661400110911786596170697909730481303170381113979268702888037195057930423333592467582974959229516766177791913858845514803414103019801274654275500193153412792543726251112207302975409758997107708460967751375134021417898957791372700193989788577829638038461705437802843315390995240156654962085329705792412930034178958195475935693333851012126583852063317779691840009759392408717378723883241466188547397951648018908924878722803321744107578614571414685692666297192667908932508665863388798871367090545116830112733805574092345571995678696818910017986252625339725199127993155162976330189230264616176603829449432560189879742455619881857870860167065183551404108228560151486611269516495207676107555711493288059577181479428331553644639930881476511887807774995180884772145290819515903743187839481916300365828225896445388662175167191499818920684431999694533030820976533662301551732619977154919294223868172090511316986054009474263736409244735097113162648333370801089072771424023378263213143414648552331899461750735073867816117088450988113247859771449694368560125314251265950949715986429352781158177331251745396058892430225670927605648334714469146654304710475540202257358565784912728344204771113739046520217276137173228295446763534235684638778772498218520298387480348889446641667469940551719113510627166078780270569990186842249403044126590585366518570722023686128866122904060562727039360766237089608142054833428053735052838181612251661488397403893600777439031663738760815066220860140489315866391581008371054244684849343942065209323942403923254082737342936896003801469966450362792590189731606103282369607295090677109222528408349040097991819192048270143483541534434222572802058233334245381841130176227512148853574028336045594665393529472790551583020814452978081147650896217577931741537209273585533590298719312296874844169057665128702994534420455316028705416035114915948941025580764209065596177221331337851454352635021893338252174243735970370158206845105936396389102646108917803889180369191895416397430561748729748729263471244158217303947357121091970985938477841814508230352493736570281557666445514928901452109177260492193034691480219607927255509469508587852716231001056051253013125043237644412368302914546366518531072779891350345602246392004305603228529195826198637488047114118848306141509812602492859468489474764791635235984823231479285868827670957534362355268689211621429241290779737672673813207877811290343574555926250124592278258216157677044723853945767930226606357025701958477075075635733025321138058699342114491985874065181982810272396025585178451780116923393515146358443046092867200353796991523048383854362743278945265850026718340795113262862073747924569379087033945944242890636583823866049301597676023458124983989909334885279490885155368550595059749143769083160480061255619092310393879564758572587188096504656719766236208950883823033480045743415638892129193869039343014236529576158415391145776547025597394004332524109737887841026539116150089674670554400901047701510754506618399355703283073863308417804783935660127136121784433781907917322150525161333103983651778391097653279423031281695268493516441162771302413214822898576782762590658117426891677412062535720178271988393617488268778594202293208651413558937095445521636131260611970971028641083053877724487831336046024547575730253048509658797001892216934832599922764448591417411222504142217971934456668140275571506178769464671035177832494623820215282414716031943193040876373058273132376168894843869788432652466045952648737890143667834118488341797644099891678541529768776170526909153631600875284499109063689723259179157403236929803493428389354834294847720528669468001153025620615215259777815290437900914606224363805449402079662549331132997613478299813173982527212132311378206900235636659479098076937856673201880309380644832193671867101111231683618712081351651590630537259813214403440239542245378274926140118178910408040116353501257282994118508147654671771728481965998667614056103931997116266305856419639389835943657261963075671717612546847725764450279935245607332858251885027375088141853492854404252687524741842085473602309392835485804192007256556291940072930458159783012494306864014543356560497204959007485463481550103686811884676748494441626134772531688454757550245673575193921129759693086380977926316223268905244939590899343871372709011730868815573823207906135693252084375058846890179829009479615949449562469871862500971892730855540897400452780155175802676662079727581141640752699653818583239196874080529727694151061343855343892376484421872612946663166900420537601183043316119069879017732586278927305954715723328407390225901493786639235064452012406496790139143941936650880663569517738139979451492896149227107412248819161013402044727118373024495613440318577263242263617300051623348598577786100169124400552127441653084292879089074579888314421470960132410884371327927653340473043760872150410846582671545181521190922627836554092203734453647560020648934119681102252137512829685083040614337831096494710411733707016199305372198064160805531717915123345569516110249641431167041632019607512821251962824690211281350932874753528595960115709893100924765657401184372904485120565100119774687500663321979036970756715705588843827553199705680562999497506449680059299367293295956002163294837523420559769621738981271591033033427221447030834563973076842533375754018342922368684923000222832162351620631746912030434983529593598285918157878329142229066083396392844939184940895480724413162262855699008933041441302561167295191279344400724017503726740162432367249201669518123212076114666706115022240803178547137723597525753147041878258857261760192182756329207452444083115711662888327731934594002291440853889180630410211714283973117075223121978321897457020780946242303440322948605871838168314551856020624677209571204576341577220193623157102156929513470981141733759020552852959746560639504394172232171738698187740940514888064392587698954241162206120929137719024695696088656735842262444121171761781505639271565795106681040936918311008359414145992545150284781259320280101564378956704858368248204496808680034062464968970517837191882138328762218939624402831893930005987546269664669403699771305402636905105475163910125502738494531115893277901421001213524747685017358983119642174231727136808764865058155002569185738984089037887062622815282293673765629868425536812532066681472762327434308050514926409498808515572172844888689495773968253379177718780876132298607081367298439514105876506056287557036231142336471223171639767552213727689233051224734305392956806508225835472009810071713523719725632851433048358546897928899585546575124248171482251088693165331040317755464198084265006665845697665069191096650331614147873849248583827799159195315546151972896353285590423860468624008063325882685270687532223581562772976652491026623431133640076283258672199542806418542179372268632041740330571221728744602879234270554255497617462767470580005289021496951241066312770987620983629620160087429463112409292219824981629498352829544764961360495342060087551394586888284940732397819836812061755995843050152099668699193308274707885111029357576033523310602502622786143259745580689832756331184767062700946926852824509013318752668334086915895459989548865585684591873116184839641367951939817177319963293846044196812481073101917623427113573505423565755852965116289729744719812468376911066346431186808814650325493627603620331941079383533351686950199487630172348656861886925567987681019903182041324268082232182556230966697095072059853461180904756528918548756693617373906853532572153006241925908480862757318961809252159199895902573855694407374546431430573866406293710996506608127242805982307586166337277762996443434979506932266670274557483033102897045323509947592417630891382309132094494855988968031478992294939318386001285035066813394714363950824437690759813826320643261791308626489665818546816882298485805814528044889259672224479570724513621904682029955247012733051873937308940658606088333678741099157421693868903019002676756083017012781569833866905665896802489403126315245457115313496908032138274335696241095870501738852636245207204528923249923582973178771673171432545277598732191805470801441702855648451938099645501415728972249589797210269016480292476067174355397915168558960960472214191405324683166563947373731005240889061451840239148300708335293132178388760722630239236406792111267482784778902235100034304920953925733422360463735408862048942470494438439615957381519616974515822484861883880135628754932320413985723913044700928048278522472164917574962264483646799863334110977763712124361425891442125054477453966270865021252603724817870320133539511371545072978075493426049370830081060976131101512227896419138822637051998890174236712442056823906682838399309134668107860992651623856056462563821392685163025746052964175753316320686311602695086695576305858606811252628316663585778942807024747485057485421416762749524687296835040740872086081743649299681455867297471289270462619026447920952280709714446520516320472232004801349336666391425242977600436081178069264579509690319337243637228346629782394834609319384499094314764374683270648593219332609105698062811759341570061057671271105484626186833419488255629400895281092065711622757715483340252804767693843818720003589786598797974572959244233999095814888521393281631296174933492356662615804989062380106583784610213831149609112535091876632563885159846537220100062450752317961993667923128087835986492665349185913733837537614524647483185716455934945571187294497524879608744737501218585298540687421268986467169254327630047081732075805845713348660797091124189035936660243936981881880801698986142277340380409636559981369860450681358938589086893667026195380204311091643368492577358102549552230231586243305192950643954775573653764502910286584266562969422500033826892101516793596577757578302758341509465941678362164171867504784868710216916912174884027715158608099103741153130717048182367084113838168192962470117961172958462244433867442408175128742973667480277864911028312715810833692824725891136683233054055702081807872494151546791299608228108104538011416926344811419691170679569860032373083938556561385796270435820925076516584327163323766314965617492380388975209170731436323617493837203476439030143678679730759321884842554559813827465354987134887602333431825958677864062439954774805480769330907268709404709641595546390067281160741961905566448976533557641101457822740885956512907185546815679618055855143668734616815692956751154770451762755024787926876219380829427835912904716810634841482556287807956526817535014295050658869020619868100242598101485666083350933865344760331329948422373584445744546903183737859885735036029287395158179145543506978138725850472071431723244315144243117910478427388142804794104964672070741197147226045702593683511526514815572990604517456290478486390610040631191953375348772088334075277401098704644644124203267217411808852667318785901045297637279116374807396935203956003071881186618410492599569145905035641890668121309111559402190095111890586722069079719400903116233124200327834102160585667739173041110450803131610961592267354077220012192083581075172375695645053422425013157824217078726420584986331392201766044071843980079743912342430427479832666015473275355386814416497758618889368593233509469200031316327642992218297923301940792955320398152155931861164836951441245293380070825637329898242453740576229306159972096783473942559082235055785076533863778696760192622319094365807366960546597594146128949944097349133144924948074648538171977965173071334976934550779503408136331702352259343718528874247469729020389636624660808546308341202430758760943053146332330631615177873149288284704557363415778222940292474114452604899086403198789852365940768844675284593008392816995568789249386075420715426958269806077560007271358816133227715095519776817579946291968207521495940262280877828681574926613620646370190777316364266574551590625210126989339015828081998888522439928875609616441814787048484847261982884421470575805180550399662315737081403173827693696270582363678679997772631790231719745054860523431254455539517449751946418352550840317194266522286312497831345176741455906254082147579548863114045171648109984505341465045607541639818532625195240052215148653516764722388092524004734799875425081244066967520851564879303188419829956026708941423987527879408758703003060739410608404448478684416877324375594564563542810543494326965118901523378753571834442903124867381768203225020668464145125497171995228507470271841037277406409749614839406898803410704194720703465697121284719038065467126561206920632096234343183607967547293787673300123714405381329730003505801255050844138930824185319985304566849137962013076170872332465359102387493317240229193358453800350264354149527178240686341943907034864584015159121693115125932830184907130832895586023676553594173814225120982763674427527905490844897269920191977516476806803989750921127939598063094553164093321876791993986530889610417094512981396434941636666831743755801710429989166689781470210758270638197311147741227511648228997382421329320181475301110613980680153414350364683736392675359132879714818231029826402633022210896320325409753004445023329386637799952415883535292391131847865774116813065228214815959209116371366701432116589777134951118036693113718427849733172301809708967302016628490507991765473640655039154077063486331501672687516753435372594950530204104245939462610065169599212901304151359867002491933407145307997317525219698123018158335285997977623374694545124040685449227944869811981493312323274291677172250079153603507604203845899938020477123855773558608195332436449245027966473424402464649669889269669532656122180850803146070976136486835401580886916246879761097603626260471424337323627085530451865586193155046198628989268942359728153556588327998739329928178768131136324722575906656963538980679152707408975989544914035076164868833217326753055468891454874650751542729612778338245130166372431849271324660291768195340189344215944226170931057740887321476908180067414602724794940970865629042163583992533014914004679346445060979031620232054696070430176937984503867869876696965442782742234706270674918890717229640183187796012114188557131124867917836448391014281810487628376206911548823504805882005073599087005370287676007485165785450962709531806270818755653224171067211009536519402713970709348010785935774511242971757612948596875630100899860478780534024299006610529994381408488155186456897723222690860949288853276071176897882509740301873229498978795876247468492523419100527041138061818196715555413654552653271942305624869623621512403049414221333837646513428581304488724952250523587725018349983378234286629189943081040629015873389801523099088960748929578085816263898905830224544839119049986551126411386449231496844958642924991140610700060113583619522887273317098747454120236738164255034822280812268800793492618486363406669263541877052271300208297729663425294830205249352961301779359984403446339492033540525537628362357735034455395553239431064784959939518012601738820707019172371190112616513916351489106114440620881625251213149102818367313438827061553016137532521571638175160565336434295901180017841002849976387630171120628890568413354166320424858189507648052830363994416179863982318095854971285403987030729522765372585693243947441511381956458264625894558209531168239964198185503758558454294401792951727036962231813172680685315045609759882313664486501909743476259986102611078464277424929132930565767061576647426844262372109461119276820651103391073397076398582852026811025408350597130535832182862559535980750860548985011184322327762576421609258964397629987730187835877862674644223015679258156475519088989953947805311189747295557211067606061855507887035985995176133961906338000577031268713921954375698293895388481940063861876803003849325222604174234658458841926424506607335032160069802157029576983303476960550312228356993979534926900294385196474937361153024671269288218411096611009640745784260045899254195676992765840825820935022342105296732125367738800697048172319981858823082099645233759110001126530522997590297319911251807902229920355756868167899885210430005334550343532062788773043710757919216613756361084275952822686978080777635299166212026602717386904223591733932265031953368245707600420952321530160520935493880999634479557975535616367697457836730379293979958682567684849207032396662550314273489494035877114574032537416065064777337337214037104787878064996456016458397449017067871550969999492900649143440556603795694191660849097723117328000769186090186639147699422050347653537594319220158856530305265236969634637030013445049854547407555226599567759033980266570682784593392980501139414764642735168161617005418440270191990967534169978983013540278978745221240259132806119622158631658954476857530523177023705221697200570388267928038028349337234873061256682437147625998869054261511487285558572331782071379270884413780750710417047430194537451765816625339609443132508288118441128886389549038646661234815287488137938630158614557598147469652780599840789623122402039121831057705650106096737453356715933735291634205747133405072134205540375830773866661882188470710875190111568327421179733136105738959788050770347927813297970577336183691508984777574434544400492509294922565149850729001418191490065979625661968327674395603785541140625143436448463754320183127287319865043058403914941665900309758634760246013615222532886548586181139487269691269364916989883667836191840990192194325148599556625111328701307165390076612249886166364594638799173687096996374769079338242485750171338954117448549549462250501796290086567543502509715021171749068685960078109331134431083422349320125740562595808061660671927867710511416015501755240622084305533569984970262618187893880578521693303659315554372226109001042207075488171688226453484844658014970089531633742334576835304096168225579449337693843250755458366077467771221566465898851086769585765393068375178387678829339974347267791534788193385359855284011837281428838026813510184756885979891641221002704280034277975563375954234281371257388638094058230780764277786510973660334346604028044025831751246446343225569898098753356434884190270427091328426583879893050729030637415175083700924294565690285558743631604657144415815959191469226147290167918714007787967980496671651855355957398657766226916154907225988388248254093721016957037231749884284289816162122850280420351370182877315847582415131001948219069067014303495518925918087487823499468677309211732555483081821984774352656833301677840747634292682232085460312525211107852799822295765002658193851963204443845899920596143277927199959090146911244885946478377856700307730716278991821388436191718658959505672655325417654244486679384854752021924677313753896900245852570824159954221443597493081105268005406831458469145963233371148843738228516869589804750441910967236046891408269115866783643875918507000558939118106983121404361952920998161072388653793847262962624873881483784267431134519959951099336744878146524506394133485816414951418169410483005421267679306345517584511813694762557208289929889957318629411170090188210053107933755981366668158794002235553555636167384347814104088814203060567943307297537618112346979273534720826823197888545135857925413905568877842732494566539553701481107812141531723199943956457887505726231413895606576327302390928837266189621679920124619609886090933704420476913555563004677654276346501064054620821574090489464146247188025976046758354722356678302928185677076062060028233611100989218891743379392009000783151684290325464824486642559762935168200441236887759771290437329316729653753486064755680145470683370095493702824332593577076622502513886621175183067283144452006382782765942215643164724811987521538609805172938760991179857774469857495602650935650941851415152153965194680409981567738560601143518209460456005833323528704260335475218231392754093408657631471225897494584800247130831007234683524507266025501895788685353455036108055811918241943225409712892806273474181583562545022319013350726395490423820982153943105291276212417556804708652386594262561346592503766149997563216224565108968863310443370655757785482783167146083145466986233364463309366464867126303037802290319814022127817808683909204908491810030736529087325418540531947042585243096822479029390998493635311367460902921003249169090909021087379133045424873468747116882294674621347402290150727239740179529103958192317189345405051447847114783650020806763735986072209694851075685921397803887306081048533266098938701801169010641630320377986812048490504696366850311332278823625977230580251788015495560564636186006381760264808495625305025116688463929486954537033904983508267057778639297626129588989587093048588460285211232158771554761852448455166855991186154047230818727579500190055526649776092514331090104747307241505436060610538928891040564209980243793714955713399456533869076917590682179510978529853431288847671108029082722694048819213267371620490092938906744668017134666856454713649623140946612287796591985779087449084541093538402984751869733377161271533749480870065956207608202132531509857662638221708425142152221103201003706246401017094348001540416774037304205647108970438181356367018536271933179006012331679658164288086669939369829902093587916938825511889676466807893579981541035569225623211327896357189767227542184452344381579084002644340449679563580116016551481888219957497657216266906428082454733882118607852424876474102889546452457181942945583790749182370210369529298741260347271715606171548677693096545169310453483064479522550697314265433556691475366265748233482511577560802683767098907452353828036362168880747876649900496903820643115502530183876785402615104371850388624917307664792690514921250362597597261918462943059842706502835822841101613067588753283576497647440153490477508333955132621672925905095066784439903552121003955712590809411679208977112699399780038883147237826169225095418117456621404141953340619118904402835189457861083214634035322424380904693014962564984762215019494544806792579080419053363788229927142750143346808246951266959275903977804982503624490256837833504694851792320887000188731612396888193229300708789006981336982943619614882067665044423875086607085787121834297635584328330475401450694129686064051555995235114413274017817100830660706555708047135227564536562676392034528832144959831129986191518327144898740638382926630693918195507077490045084057713905926612447288946769228404082620383699022714164048326655316211790733592824978883719406051648388524062050012847643822106183529723272287941661856067947326781760565434934306403483442627456806244679601691383544292273970716877254834301433325615571910039695372953583102664889166095671083483080689901000383971590371245675563091613311012667254388465859206050463546843132971998697843450475884465103984011676437079224156969540061812398484984226084489407677041878029172014822524764716184826368489382146517364719415630654985937887868094264141843442791459535764017767589291376237233652292023037630898847353362206935286035302314260427342904887853052195013319251332137367368673072587737487589024326456065738392569458181101358122511006839357755565394778272021438152118317604848349313008012501687834868911832950147659890189908313114559816320833018748202170019366553295232283114307315678977937096539267536985359636740541611694527842602979672166904883510215466285960367081655130800444352785117196745959133348075246277512109382665080015536265693478167266103781390066088354872151817846861755441803232358205661853838966095698104919206878614064341116322524366829210177985593772375049011138216168098576385014095328022934542433362550347923128305854860732912704425671042552497555701257409704563215064506969422088681988926671672353131197830342867970601168167063813784044798517098291645642874221409125491063758258487982078490704161282548160100232880520529600134974456340208527850761233310714070726443811047423638137129249592897182987682308105118030896500725670555656202687699428796021729736894547090308406060065054168199946281117005932962937165481233372034986773019854068823874517410425863713933154171387712259452235832621062168790743618777343251329066175574728049245295947951652973118886250650777692606944155015168197718197674882659109173721845856448795477949440144530491954314621295185203799344688397556828631180027677965600070157236925703376382411449614735267000674330847630858646843133049233795037173404308362880299142581536313386501297126941275502216505430765384241196686041607046893378838592508674340990184584547754594650333997970087402237109383431911199768688690125202597938625746118906165210793513593501331213150740585591842745807783541783381419362530150637445584040293479402065796371395257722238906938432733274752039119294285459502177764726600754160223963213988442763943796623844251470270140697921463069751659000761932683410886050387650499963607570798876259415702304148732501851020200797237376211164034195302477282054530108707240951668815897333897416064112583499562961992363532926504489785992772394947996922352725338510040918119555350294424147418573186917814942640288997889302715371887433161391225582745840771495177838097231565506320310444405869106920102913322145907757368837893686731084132999061773577019504316461032070379884578452231112826397806270434204427503372894935973533384266546853241435244062467115063086420202260292996008636262034906551894048654173794041542145604530501525687117030382229927171677778082811905935977071590370982591174352341603767412257781439076753197378772279136847638457928290222508352990139716052601091941024386926648060177705517441342770207171869003750418382306602682864233339590929323473334133365825983560420711316022927087741050468832392597245892962778900702901065938425479259092942457170099489925132711316634018623532321259682939575697200147265046193760161770606599065861834078662718341157172931782847473786261003518150456493520460179862988021392237020509590370929984036118322577883651156751310302511400681634002280173671504354146546879744551374072173763318358634223041494866040303789279295976688448251043950708922475615298954297417336624479732964022154588471822165075839909990836307530145598725516126795007154398872187538995224478760781245903134752644778044201949150874276030979207930449755961263777252664262482704404444840433520862293895297708940064683984079684372475253202578238810963761844517396527916467293586173420531131842694293929666176514724658316789570877909705321722155975153514436156464223828585079415685840825280966100757711422545798090290988940388841375143293671875206618472592621848385849893636223582617965668657640237983496111830146358127077161359445156015368292267264735623094070117449154569565857804344419422342011265427674167466979457386235972702031877287366277575422895558853354990410949740644848053891380236032636599516163755232982482184480366258556407377344427860749416503726076572679258729895365370963331283456830349794740236678597717318777294584618012510612248547478717090113227382849803254559495925846517795059757418945814175123677237734733965317692032370835096861344827759147484863115402984595623588351296913600615905209870966486186219561947081389076167195873433931839231385995042513341515063552153243547886472238896873811432589981671786747987767034690297724372609288948360626382797314057716372526871784020415018001626500828975617979039831865445518386714924425532214170604504529617964235409409827508700274815300923807101554038600293977281138820067437746946256865002434384259140747929794964594256758561152421061671692651622712416076407984589246629106890861546098713924455410599944068853880726266639634860621935855762209069701427723145529825045282083321444856367017766509336358284417128352205948928912332301390411654871016666905575333591113000341799976502498698088955381061574641323689667557560219841272868540253025817237651038694027493796587059212367634567215125900845765045584748075839372154344942021602534408188610243745361014586790211785509463002329484833835774714220249332070561926087818999810387825500998836891293512613477003870356254231054102192439487444644241654733086923915140961348210792017757098290519944125971734780477911739945176330798994221496915530586202026355733508188424763717260153608566469450634974043177534239623791900474237073034018267164934418371253493418870280100401183705544118354312797969306267113933039420162237259605480865205712735738859258142641649692986601177511121909428796036887150623163799090853949782526280182866157662399344561880706062321138344189817972033049060101401417529452977572704824220151034120879809980361582509339368421644412058327089227564510177492195556595530520618298520926073770625648287261796870648091777804502339600660912092371420526465494759992548602801978739433998379595895874313395924269120166619042743715947732859999555425217695702808943314516205731043251944376969113909353499304835441204503474956568074774082427412219505840285764774985927435918959455027335714257830060630624671802760997305070260158472566884204643189357288230134061367453508979862122701505051333589817318860889899308277210011326591931648501947735594448595071687734559733668918830765739095688881547296279146302534206238235807033965090635338673143039618300294835608731284457483260920308363652336250863233700416848665012742130353639834057444799056141070086581291561709713740118492235671368804833505857613381217031529767280723000018172629225452030667692740925446367300520553433767876364076515135146855398985682347670022745327221366906836781166099232507693642484844879738670514116821111316811514849939407641533465082044101919237707306055072364766778300976053101780009622396076653894245610218873330467141079276050497544765601067466574428728534527123076274795589310436271004065077315018378364599639001543333154958605577845786350257101870446214186546663713066128708550431164057479170493387570397485168386900493388063825369816719518597792574206405585810698732623334427126913473892238110677539486398740520233916123243177595554896150096309301666636518132267973250163991189484595473979306368276498081634041129222276709857386427519433462661361492801949304019386372475028519137627568854470273217783871986967552703459524833732503015093897680581701194853402749087808829173462869055497212455457078629920132294652553479593525335339216673630782571816896006063034069594813255692258241183892682518419616294858172157080876404209817992043755908785694599550311733686068629154513383629068773094064229282943046345803110486054179048736659705016918041581141351541441976097954057321074922952805854530991790774255548999088748509278312534542033765680277315260596111257310015101351075978643738460127310839316313805704469705087360528233754797367861508345961649228737216883155253683756685953795417714154447993652719816166528074303041802068667849061027007625863232567142015231455223619555603716960660013928718467058833252940037159212363679094762115842026095993087998174352171238416810384075138595480816447783384027634798526245125313636527311700178823243627025767779912857666500639903036146831654909906873130456268671523622027729021456545919880853403477519557088284092807176503064329914113279915610723545505860575018996284955966825526035562865086195432507861879070605508314687066309198733662698712565505141367684546921926545837427356074725413433457051876995880102615665047738500687989216510477725094215453823732414097527826834925180259393331709632227955003586161464699445331876360699696523540269427646216342976317177720752248144545651763768050448871102835776315822117775257920306425062027008638383114083733705370320879046550983603303089386752759672236567649810028639381555201391532496673168230374214535946135669739722721990265545168510050154122390175524598900868506513442129632291328784009418523029168319804547321104130177448163703267970623449661899211877262869716741420771414332160242617024406748605899108131563159272827001332056232606772797304076856042107451594058097901678306143868857687056219461822211689079473155381806846737136736407372467781175635308648268999168692735672103500763776027665081139529798808841474831369484520844033820081830717043107588420738018888499852861509720521472825784599963191327009019196075370090833326751544893311712664384294384173521438658073446351954693476438037090978897166399782561978211553857553043300714657591586866488427852438667981343469189135987965870746939343099749782819282145845117033467347938945557611443676178132430330252975638173615492088027525156736751910257793318822761800396661930171938944548144015866963647973233306082712827184286484360699281295270148679736630833993063169205813615786433215579781152750969693574991075987691650806479776449665907636453099270638893195686601592354426386880512659294874787715267722298876589929062422956913002593286770454091766282657246015490908524378716960356279040385572264981377717960042556953208688820841505265030048557906531550398898481500927822361030829719770399828778887262645602972198544450454322216630411856594321341807027570202322261260382434994689601115847660319275959223903070898860947620418849605611604888221157912919032808776245118446707087812913779844694481455667311028757991087006893721508663666428077263461295510901474743387849570314499280619067682447335520200318970125797261069952985621262205391721667948764754794291895841747387690294268462535715269243273260712530274401383772666972692036395461752749663523758001741359646188163245019922206183857325706447191880688641443262264394581772031927220361262549549983916785607888010185475794740489379931063146452632773883036196439730726950284882803040099483210145207281980574215270668802520263215955526438160295729256771288036789030199446331204842671801098375088578831750715011633394946387771876756091106273521728029613073423814685077608205695865401588509635177681265494413482370920440207459598516740793162321283682537179050708310857041355440516949968834106506868492117043706280222062900866889767652170588655746182260771621915058448399280337539671317422961061780353732399741498047735749492514422051314908334488565259436932419773054583093190861899292563358519945556077167962968975958406114965294614552743405450193704501840061294231166981666860483914382665336459163853418828469250202010546237611053501062568646650068242959789377004000805916972786954285490319389116266748074149036511737382929561433572695932956727592515984321483908657478454428940922788223881582036312133820065507470429730329513971351427045611890431563252233086780384457720344774651303661678758553448501838602165431729930330197368643437980263857033482168889859742692780047785065285836363323553676820785933492381381306324755187829486099980653352412555288331333794099213830285559958415760799671155102560199529898680891537736230439414601103583029563845121736021875666190403806481371841088436204050260770696482669192016039327056206571922681769656465111221475846881119392838880609387608223955992396820320722651916381241983410061281123460802264438639610000033295850045105128329053171803994490948174969740530749843141859318983472209225816608773581783744192320179927105529489445445793078565198684152987241089421121438479661249631728172736436350757649921949816801600665184466231834829873655696373977819051272040831157553751827587239363725662032972383074295934152668639737890674220224702546513823874888936941118555996675897402821551984561573876226451257128074927057639083625129413343667458223192640746834260238807161847727740110728602021951710959991724711874230496153596570431813960880954485221374237316888408700580191000300992971908440064969169085380469872940960744929834671362184059631933401788326874986674125384931415462926742339835922374361191029846956420707403739071974182095352218781221801369044132107277982933672981226759310937242595951121305343181954597459950939135981055308874509437122147392734372406834469807923570921594128572503541331065176926859149454689394134185083280303694104947542565379066289917872127454925738438934934142262717632275751037986080215156383276826247954480185285393500478123173156799712699061124044916835296482980714998405601661793987107394883752849429140284880218432096608214475296911370017304370846226362023660359653131178205471089662852912186385205091841903734684876682365463780990965941633619588879204552302039875196137088212509673869344756583781878591146650126472208197405770270959107349126761118475415952140573300341284260878970703021106299714159433545235008541920763562532544465190130359206632179871846235134159579488557394100270827508836956877432923726562061796800318971583884140995024130128014848543650472376683816397662811073599984400934048996987690491533238928379455379186060749817566128613818387165856535408721254483279232782185351664206307924886183761553426496062274252440768026868340582513554386509614720892580230463729208824662671488836212082160717625977970335858167812102562857328151305254928854612190255859188360571375725289155784131687179515756054242315627525107469389605190910763552632043660117612948340320489730881708399844013141242642134668112714304238919951361187981326112187712618327196839969469575887622240538136007364503375695289373162462077082343067069140071310710067474968950221754407324620825006849627137734871656094935919970776922571036000262335791977620798968605341894518932032163995599441077733700503992594051290200743757364105705394146270376985002559520012901776305589342596287241790652246201882312476740837613630770297900181040840603625376040642482957676288614869840549371979988368038508447808129440291817224254537009677812269052360916564353519402500997911526820443630324243808008758500514519547600271376785658396464270921753430756982261131969877337227684024251786168029823148043302319830951646622227323500170557629171620272748738825526356254517665547473431811451890500727221354007832599695808486674236223483598800646257668617752060606963534475407030495157589721513602547339683550240873149592296021902439613956534399910717271636494175029466077606746800168660510619730270230137162416515082938018082244679783880875706245213380623253858269200417205069085438939437580546036479924143659804410013185547907474332099862055652959817819971628358186837271429123949784416344345181489596588094442643600130197941049580887092700142610589984349280571356440374234457062672196046948220844449489308639977265865502125590441434298721452225266726835194639102901832695188882197243519203382718618569337148263969576572251941009553574806125341632861597206543605609055726865622053274865786697617546884456045966296195515539916352485888865963848995879352852299081470899963892378813326526843332032014538389506764435101723853410271624972464809129093851751016780702950136373724177420418027749771985385710195191561082485363592131298047086887848361236149456970877246296034251280362942489086361111388159902698670445912933721591842976466380061657163157853099753789986350136811543965866285150228062578338697922521413243373688216873661447927077323046805350510598335213011881378682154184498002769442591050944153606053409675627669149175744005833598947489823860362449525250601571453107247160890035142710388108177397290794563412924905907353768394021643348091466450630565054144966529864125652634320526249114207814893367011240833630082558642427220365360460117671203467981127296579604052765738629906725316376591981879888754366344151354554502183973546431297673985978201764530587782711469581408127921320880047322476213792507780419133490278911235834881343807458058534388875286322130036323261614592479855484339388637645871625647674439003196188479296344651032549713942506812672247129347407166145751675075395253224843003727995691091691907455214736654577652412890939789205751242405746400837928271140863806320520556612989672223299978091208484630630746780263405374588599764192556111983662970317327514509544672000610227640468009112355682605259769587060314243530551490066245740017885166584506982479148984979788819974314644620164923438318582351570423641292735431983970274567201022065541936332928871137560560283769643773670311039068057565585687807297431768033720393301269669797038909792497963588462502265716760944044541612836394845910349693248029086312448459717706575523243270575104140684328904470156284659942101948502922574852572070744525834471053079724374658534367511512502592223989756312617136841701709553530770333587777387742110739544653720842896798795336202540567208443374946849954232231086671796634060987817994034346829161444713583380266260263073163756248130133678101833794848644334950116176445737231164576542301740913728697675360459257003439039002544900580720721671776108496265695257076227428416092646024515897054379830477862063068902793334521174067654466968511541622698582898143163609755663718032791426407588923038717388086628900353519380232768054134125027762998928453644214684131963268778676536071886532910540866578665473946838198182352510954414096691985077399541203143161794755636862819988215430744969087356483503010728190206038760180753392010876867826199909193103379903856207098094069392217491573765745594861879701409587499640571443750559330137565165970466104877462673247942720519569752117195472263637810971928678931589218657548537157333558101058253010362019886072450951006815991481065997685414192774724746025466695019916262589319106429375384397942859056996835789187390074961441236858912763770986332182326346172502977104707339069434256876268773466165763113937142190275020853603952265378267939477461928123615567324804609933973119402759920981300796694471975806836894349196601449624656472419760646669510323453822912057142979372577160454542540354031876533125853267286556315590869306663532163859065490871625555146366910003905470169841101035452835850822163096481118673798852748602004378534770975911197070812586253893833103821900901803103090615278326463670501889819399167579625025659339956027118004485300308070389363721156260243799189231770072572994244159497662580278917363118905956065475925276737663423901596118897482626111907495849438364631211408238072073385863297820972053896198792218314674184309281530795707874257249831818319072876625227270911811579690233038985120411272245402100052744576714393460200521683762836066297575590747854413702887762956537642831324835026066103391839442953153273230611198439050827213125160747569464270022836358003911015491822996432355757894728593685435722935154505022264802849817227186375124689414970401540326817846345304904112403955997967017321050089375482341254333381828100421847110515647699735648993949273235452659872343074362858454705255088946583321452779087336440155517648521279354380109822279889589021083761476898363035233872259938133326890473045931683438448879110293445598955659328336608554057231033546605875523359153092195501100360096166213957099760060546563309857474146862934240033205242145946949397748963451456868528088476409254952586050738293222204363896257447528498894094498379586294077554484326314420709005531591438164404966870860514429243179751990116124170782891957680729757145865184761583527173487402861558407698528532201306575682788368429782175973715593876518094183581557964407551307369172643018571012119565744093171107856552056106866365244715404294587484079878520831096027725667968415574057726000196926718041466338797028454151254859391628057537922289026265252116398988645542852978849696576033722866246498444659823327242162377985831087848176915821359282645136586365760115580030229833806670621741615122469640975272384945678415271576617537320352560420604456719864921277683156341549998903353453020456044827662259757118655137924482943393066810747003293428024827548532436603244012184985112866769027638782542724017539170847564703820892940399495063843397316940622656465121473668970802171759470880295602236618914301884489296774112008767907220276353235003019902485719412955156724944478538717554659030417363764489770676629304762421175092717198577437908147651728005839544861417294087574441772473920781114071529870465572582047775455076872091401671251879279387856844092609227606399911877382926590527472674717432195467866865052007757342717035279365034789246694430266299502883069065147359623895737881211717867045215049183061286855188280868123103461317633324989093655272738885533792350841719157332825036345683385347094175701640581698538577428703084274559873766130402901229794212411074384652553645122721612099752148436701940692454129943625443300899383247195931785176053574216105246479264298851513415009404697249062521534640863984284931447460833510103494899017764666287338226403516881264050787029202470453300758277500494496019825701945226579744001609417548553233693164247506041697736389304179309733156806594414257830947335981190469132182768438469367257386982833446318018739341732447527711117786302617746747901424007101843861902392603521941013071570725740757786337895868200853367858525420676443138800996788319168148352124735834374953759021647957775707508004273141877217828107959310868315584847877003288338166775069824618345779506287327036383548353315125080655292154426894326849813568673076645691271282026337065158696442750310097062989300348856578063441854340199125210318709912191238573517458768840462539115137195294584582272969429906033413844991972822335857354296254568890247587752666037961940275656811058533214856188361862159957241111941818665556542514187781407032467089834874820119374072258185117977504041661376417300984328644202401645778614347181040493215588505077011277931615457473660348244379095135526106338322345245794882528663879037924175517817450324972532301727098219286360361260506154119394951936243513230950811986313543553623920473549393091108296671435982541058650403654653566550034967779949967061935733893175899833316750843788531257500522563692578117481222566101069066095862344897151204932018883113893488972529082720088004168928728028292333011407060222205863363581779187483730688417369902822144151695112805649206875854803568478679632843025869235155944912800953385082271020716808625481873283308059471436686519865448869391675215846461926685956199175027202920761321551484907525697878697545579933619579902420253242079633654106810634753173568646885582066303414280409578895009757406166792475299983262839906763221356661542756273387558717512823053060230295474378984459550840898946540655375645486323216498080297348106942681231702930623899771012441894801501622689120171967411317986340395024763217417914615320485323817847673697596640002301890055213895731846435471470287374454505294095446176946644786081188693963027384668184582629704917146052462510194414881721893598765624078304567972313082302293592383833769463518814457968895619902577048552598321789600396016527716766050796745482595736382533699950999019079260423924174201690397614767825921773445950893952249013228741888367324404245613974606870754352387887251633842256599778227987661396087861630671428053091007872848925038657529142950247303229486501115106058407934875453863438766231146705572346856059455562238426996530403294835810150439458581979465621862476079123851573523276732623495612500566421553291909566500898098801392673423918752954052466520865838014676421058496237779859354331859939321417274092933797869794012984865608660514338349647756170387283956151219250806989474879432098428092497888837704724661193179441144391326766075372337966641878435620390519594620305395346323765287880259257546135338336382900225691915970031226213056853704933528979661075586015174428773891288126813125615233029954061092187780892641012535496408495725516238999072784040618094932366902975463037306828857927833281571414756887672033494449447740297167618665499846268940198519968652165709234268384430481156482501868104437632422898436967541799139486408397329649250590433694274558804768197845235917063394896216551653595237961613249523729517822650835579331491444406194118231591271005580240730015484725077475517186821561148792391845194118317454995434143370523956170928056155376918938228496544183703769339846505044517665323935849751587203995265706613856433590324743711031379917494839180367227378571757035174604292425960713878384339921068306882861293222893972504454076580366001976182987059087971422089410187379812583896699853181581001482749192032461329520850657632736132247251133661240160869679951931481171461542178512265347084830966890362284103434520842284786507631733673110588556812992204862006259693310708062493342833702524132665997640650023711761992309250856308171233759750322682750964839825303511786233803906609502198081225390597246060354834756127667027494969719160003555407983521855180779222205019052781385951775350426690056907470309384188877776370536291186385606235997456605718604507781534668871417488652875173350492615880580143372941651089498788090667577823680443810253488086138823814155502419732810528898449867652879293278228956896911565014767181023082359354647152868745398644717958765059318336912700730672396262545120431013417328645278649076481677996922410313455052686352386597914021652320138544673862543847585923068237689149623743383643304420553097112156257963624787761574972539151774106424537622405875449625747192002397405917042084589029106925921429527494684368526367272988463412335810745339858005357096675336590130692481253466948765319976729346967317985684379780357555214857379369824266103441009667448549218776422684401480336031563327596610703436463859868011527482507824277402253882025455406379053733890631963232182710977613488482172209894054595649925243691791338164986144570825201339555562542282181734341666584910070508827209205602034157560085617983661192234519820313294524314372514041340909994249378462411127984720197322687743852605048069585341122696530679800325459621162145400409763008607303502160212353091748189509642716427723307054475286730471867120863145299888280685668468991651237455745001327405838113413939522362514507422205015605571008630459365092718237284732153943645007049909488395312456473347979538429913991778961436612766082833889884648128758505144035513340740712228147344895648541031856200211628013280085774589194811415474066195623051102288438183900975692297905565853582195442658334429579274448380032319255283358223975731628914541404058583392072106375439182187689685559711665896239473399481514519316588162446401685025360450290216966799660420692566359547486933882726943521956923762722064495267261506872160894157868306881350188896659774431400019312171337144449194283898002755214559637706247243644930680868561803979800728711219310178131386447919526596543069522736548598911565399658711325520159787424788190375230697046530205951921569051043405193283370943713350966755175615625574275994586998613846089052575414086358993028734298269615896556541176372528173894353160110782629689299220370986708896513002160638208103270640831977502665275107445885456089582611052687288370688723307691931973957616414143682246394122692246865783908337421527304799345004331551060244898472284206083992831326356230203086176655348976144409276717990656462222383597821479464117675740878812195505211974526118447783380210885668899853337575748415547678285236207867610140858947009092510437169731331200915248023101884651433476936617421616619349300824189311544676101070961528663275182858477288739593007981343694472037497470688396535785700836574299917611633156261516778680831563899343947439501934262386839806283713228811892404255864998247917022955971749551407635053059723658053146315334384964508247093637982009266710524120351276773119732601029450256996861296539594517496840795168010717101971706458595459301506097385037402231494726099024344058250869711846561394421459196974530296373306130938128499419172895192571898574888056518681807915425491206229926381211257439165233251826998972348481273110715089190397148437580597420335796130967642036378378577314771821745611567095286321607882706984031856467642574426899362178977415868087735083876490763183008902880070169568199565329150456744939609066627992745823946283950847401306436581858676371636934166444327614539998099698289689944509029783345122612985164471881052713363260649381251576903659088221551451781145294291511559628058933046340177848191654644209061798486960439225254396077235561035593182992774220221627902583884990832357630681825311146728972909046137313195921785617153864533771747803940728795130658975715343784008433889383751237805853186001544057985812946648906507791714005283612611859925987966475857340973751829304116773575253125624985663643926316888624956400326765337560269443268094327694398244141477016381133888207020944676178803459441515211742601654521300684083719426832756928296864062661080729819357597429806839400354280698585972790261121594335725993005271940257346869900084276926125705376373221646038510488988905810310605266602640938417511056439033131207799010519040666452572996096569480499306458269915752005347549903092454059282812096809178749734263828911444750242376995074638323023925602920722514638788771187540414791314439142335819376401513781157500815155081414864511578926370179942879568397884077646376873215834575091418137763897224600204168349018965610748715405762493253939040069331578983495677038837414453893424862114780589282126066725850451544357167449422483825512543984313243204890753556109505716507672175755529827229396722014504781588519214269514996158785040314895826317298307922149731211022846557399123051439142075269830756846227274456935294987632971743709569260443964173498587061715189915116375898230168134698866457692886929960951750499495833242414673381442018198091046579860014168956835541024680954356898428831779523948593049060708123016104456311432624251703670339828481256246594992907998625319276036279539373473701008692784274840376222343008097446194139230046216855793910943032263927184891664788010586496810274561388742667752109815039244630487379571373400644277665904936849902395073876914920439008156056018510153146042648259753584239879296545041742207844609965843312172507933931447600248157713645548909524744149309044926754682349033188308105433421943777101917945705844271519456176329837885514508508302839268835662510764562310025817463365431405995623310535738748246041882108159595114588011805681262659002544756626739465196521273152022704314996946468302378984198810662670411734701469849726932884550789233158166494161883220583280571807154538967101911534908914714944310657232108500095610956274562987558745501654626368036996636503271003278341957888648833617069896775931957168392754430264968817852266364156159780715207852311190605535702213841987324078684965920515854468889976983166471896104887478860246319213809923694346566378232152225938522539367425684965691712682284106935061998045863459367707691982876742775392611737266279889571724739101383770074373206550158863588654272150540721008568931048639872596013281471741847286407499369800901954246520823884922854849545881838942543116049461512301551174891219859336557149992297041506446840263465684279644045127873954052601978648438342377741104213446826696538697743531591289490683584248558355733268225895135722985896567937757763523444743908813261891181592780122212042760084321935158113240913381418915343236037566696149956156826214477015982367969401103698405486397445334467523285173140000147454829228918696175536754518979021617267449005207742407823538915244922514001546317445426829416888979527035103796234786575967283748201008440987353109040723380806910191562007962924046409551164678645860910638538997177448684676329482927527788631682992092870678506585231585803301675172205603258964394808683339352730565705754643782540129447622901641983234424213592697979936294522305118138832486011162810295328313485081580255404074774768900107238245779914967711845862181766807184523571619271816732642201554379695055048630405814211609728328536127009573290581929076867328918831267660211187278764399231087524722710659032732493794932610727701405938515869048699334342161592198705728552159926312200001639284160449990513400531454305297908819433026560157592906026320863325669947498917727398883597610278301271837163722884093227896461802888533941880399616011705387431407268219039755992846977939035015100205368326863694795049429617528248098450846978523618333017210215052606490418440136766675806235332877159191908086877737867303768852273718498420908480888687735182059776167700387494347708951266731937114655443982892379746792430236880292686919467073430390463713095090842959568839925149564547341716659280371254145185259931269399777355692533368814990796359981908594686029956494964643208256118145630137047889999315239365313689430666849717276394264054382097689382509767735744570355360768171246941520401393583452167455826652245257690983464430831769552696008649789880331478825030160928730958781832487715094535320416252374674422955192604703456617710164726130368771066382193917828178797720242008021223571604079469064689938058571142775795102656902424120087271065882677009060179580691848597502120948318049750158071766142222547732059599716537525496330017721053807497916347319941521492810450749109589866849974028720124915337189148560451722148741287830622094451616216388250516305566800903950750802119739953598869981249585419502643742249056694295279976923296770887782539002249044874535951286179474965006531093821856920088752886823883952327140232926669592311435666302825171516401859054617975118333379757200433947806472028575518638452729119129399401861523841352674263677218719790184725188905613671207970323032945067259938473509787530563828367924178820146836824248326173904718007418099130948099756961974367724933512739795700336884256489575807078935530600248386960247995282210307867418143537808206212875949218996332611581377559346535967453996852741434727737129787446256292739022389128975788943175604270722713659893411216382580807579851164128958526749549812258282295166218888903629196065001949829990248000558430998705733012581948955635859811316202523235526833757242379253198953808145057282920968979234720890428765639339712390725269881540112950484487467233971130706278563684890121216559639041122954086382772875720003614230974845381331937861379428475091163126094543802602709706908972816118205923885817235651494452343695647911663141710340217047511739105496447577433862968133726651745867080198424753312390474974728441377719499206776126869375430268098844542818393251239081290268471324237496008834049248966119423673764557546998527861229792626244025586296283769072921588498477709691780065943700477117881336022157577606260560776968889758052652057915288934374258068831511970119861238062585236935633624964526431423991807986875981485537139866183134641950338902358710812285172649522892575920916126053422088026229154497954133233070162006932224785015917347767083802882999174015540441003099740084817333995221145626926299530893508268240284928511691720063461965899100035304027097238987486657158307731924940924554366447638762811026286461596753858808700346791913226643601688876804354143829093952692877443211920031995714546376874217492978498627061384718975381124632136434927293672002374203948596439012029917436163455567693248392557791033505159884152005320696690665890915887381023847528429376814131607224699061559958857324055606861572572551703773856788828943630049463487827748744197780521935887219214038906837546011785155143771653174155729269746454043874219601251957451670776284117098425260113190024484025615475119530820213810554174338118346534104194983958119683180971413434668098155307515836992452339088659373308222503130469573682520708124008541403830717704442195180163885537664032964688697212396685566767711728232666527341870522078741552262946049235517653356801170560320791953899452188808635903867736978392746900097377224455850128550389775901801317428290268461072805954214230658184587549491623138972855901787505237929614543722383214850599006761608089341563933517358329097053644042994511977146569171933638069477670590078879778390231195922922411731922650553140090989978271420731760374998153172375633293401256027733834717664693749436421272215593118028100517139180398380633343720703278566929089924073583724382867887657013120606925366225629120098150842463759915371497716493856206319976831746752398082569725873733223946153663615624642011157808092785208381567942049136763046853626705858572613875955771482606753558069133680812437377879613848392423119966760772822510528542712925205459690043392336745166811307705236438031385951302732784942183268268444003979136787795772152872047892518086853457621791691654528640651497846480020481242675361372350410362933435490496520545307440518010546825795672815070461427466993076215704171854502611289854256566703989685155597642690081668662061993373468051141258235052669551120932746444003716441793349629765891881534045549073932689950561341082893651038395121061712552385753852510443482223673560019677471564495280499029318852915360371069480944596256776889696552790270774926747468273025388534121819083156019134540996832344539296242076148645049555910838904272329070579335788844317729295363508556675403857543757567673980623361113934682104343144325634209153745317739812709472170698896994547898405049374165681152229150761309271250954958189660776439894836387255733492200373435718100762950051132389065793654072102225367910523572341679437753218772835680625397188715227977827950080990185677586759059256582539515868026622575876226875612406683361211061120391155222523617869641405313434386548443997391483870599744342379298062399427108239426114820830079408521884722118152924986177927934107829783509280803980174623723310434169112754922728824618505791345845334808389515571470803734609548779057090889649575065516378087614560358089380384164028395894033359364418209230453915128519231725245660940385939057872996501146126503367951185237535165328386341500774106295435222319701532186124960674288059955813259371360345114795883552374126339318954745235216163323784400765137687411462168434352788702473471081701393078411262826412921720066785643561397641849777767869991931674440071932065454435625899992758007121246561006093485745885433432940148341831968046279506891308666224684950103207413866868977256636616312587909548076593165868791058639141253240034485975174355557735395203212708432319947378355200241540905926802995430902846622235190702202005141312641362843768488613076273349121252736964986367771339782180631631184611145317401012550830255418046447889836528660766426445144253767646458838923409154200266600183878615489234619308376233721043487118698907958936419083990373259536655996753671386831525033685678843945538781253887439791015779736111603439148861339263545254757554280871579375822906827148167388487507879880962462370701658716910669259773241182498271825243077630745007770955428680414953367416524061522273540837891314360598023800972042745512147737791653828241982439900363027395112955340572838607876665470124094792840001071268532965244744548470047586896722538424159627475218020049263997958236779954996367944998775540484298597825539608752773652584987866717066013866861197911549336988436168707071147946682363124501175761347294497683298464096251114446598618136965031451038185888444134153923173912857754067016620927064836918850900089184480696296471940256566333952517179412373776561203238152564400460543607240936377583697553778859050746137091634556101411945381160342894772545794886573889499766822557410405825624910005098989835715229281754434009163885335748717778629358612632604748173771448262894390776113004833439649316392175920882676101230531799896584247874867229215591202630673892890147413413049703502969905898079588566859418608150628447639906368254465999351795930366311443009701228790317232564331082713012474140760955199034377769518021290997412966530468439109669975841073294578740921181773410289061082494216360295735799450641089593953283871989394223482253421571398411140508004684665482562812301830018038575602372487770039477357971911180668809075445841434735084518696820676202575138210926476659059696038156968799992799382152040684532187240407005256630242678779350644268366433960438918120236143212990012467481982747157596615989531938659824354359083756119062090931180111117314149377366946556219142441189383935421726841233304513928009765289197001804541306188808535407499029477331275632887745238260329097047794884416736867662447728267831743121954638066800478326054800444474205393752070162577732245808772941811733494337543527144530733916881758522461873113183203099602548936834840859165899171760817869320304401232298313901048831565981845358939929531463135635090463933321874465596430104928782026960743141724673821696418220292692212993824691430230799986549680058543628257918769730237258951850636697395195663673567536065519918129023830400547410753950165883128107079591162972777242344420576633536544489405351640566629560376514123508138291821274289048317347265073791181286290713738847316018178477981891955578235413166368645197031587535230685083250217180312970186328758590875689018847015781020384994038864468919164715819082172907949595376297530320230950632407668900161566694423145241907316157310081636608013391678167440441916282687953237379399626669687764498175812108817950626061039497278096400654140364153807973966782878938792889951003215987789665730059772077839529700507927690584159324581225547804865036990215639848486614975901123617108326859537437963451581130439720277281522289903963547154633097084017739959712853072299437172824161796953217786128308160210924999073874517757252069549858357221595895197090609061903274987245467914318806701520706061469814977801369973060567309789807843355108912767302769599758518244647201961073936573061797663494007604943754929475465437031305022395220687148626470864384357461336649196977265836647871292818721104809571002485499284315384490273708820038392649672252699614620663655825761203423304942281690836355167882412426066554748310794700340561180397156763620246202573861966897640124255776984921079262487861520839870363635374952697699159392397743811881184006754241807466723256564303631667938529635902349800252688019371086412967470590618298969737700425604658340413827390013453866483625767988825131822562771380635949962419846713388256125881339262864605856894009569651061502772626137095104974628656841355196013761191213313258570296223817615401478303006755152882199931667141820639121633801580021816378492429316220159441894699703897050458583731963684154042539889105606267283853324007299384653062581400711803811589419307705432513528818529954914624566435549254722810005988102746919201876706337203949735381256228345014419961496682587380467155119149407637600263090603128844842043278605535143216952829185427267672616393239799697646836065865901082708193478258168374265853101918761746496505542779058935328876750376466851783833588415349118723034126969714685479001004711769801537067687012215295288024429671097728546583120902653709978625867161009045750453330475714215939292619100193159424247124834073173268196750121305350785564638242823259299584050385662534499865891523649915098985120361497928727325735712016365881832622657579022739189857898020105712686557600744387473957533983672295449087604016270842887531268507341029401034593810476246811963463875281197726347388699195892216432042861466866206389937793626981463138277431431814727591677059902430780976002992850163413271300178383214740678237514549033417584894497318624251670589462572392971184256474675799289600208278936272691839575417680363814156067394319272820597062836779458264273586963256089961387301695291980040583025094741686200475996373746742129271288382304993504788108730512540587561808762981186823529507371962359001115977743108682859569511195669308240707218533240837553134244169261597249673946531058762718042436173896195983887835875663151759557415524308153903254005213672808139531897633519603404067164598303657066638161980330852553862388740210595330487962054917463227036030192285606640620903114221534036597186773578284072267633823284316802685368836270950308388502452113720000520814000926635166182833885524610029339981919039708617528721502169577073824109076690000563563756776856287364595060090360417042682279131802291595926489891408725684389302996223153390551637639742837431080443522502263000595359266835915272793548440201789091869580712216749461268745630208664727234474300942296532228870600807845055255222114256773562025040488064500428613011584701723963901671921772981515894636229237335613416372515024859634345164566928839326732563968043117449730588418776781787697548071244330422615222298646853261255654350776545399524918234178146742365202228695219537592408487423895488772689923958213268204494281459798523347392890434519776228480767142717254751214387082658495018915555530831547808140227972539689015367113684861972186980118910554755756908269026013996299526935647196656015004526692101236482946092576112006228234673087745134237354061486082074395482119655092656533246559459327068344361557618590388842389898401402965060011765071607176445865323466137589061445032980833486616212898429790004474466867892649874040424547997098143728605722922675047265205557675030020876541400374300493093905106971429788931084894699589697741749462311015125274494541536141327868951182759276083551733059987935370681505105770121742086988966457739750208251019232988504582448683518457641878313066742239748130132982051321082270809962067090291805777663865565391756682508729905065255809191436930544372746310724237837019130776018828194832736930905166977541057842345131905374925361693246702021275448428883024378599162790218495144582047940031601765744961688909761686015773665884353618267855010509740670056321944206215029607457576768695820304059347815969051962102925298585619084276447240179961578521754195324165802909859474241256088515420234089088639723534822570171121609667231977065395217119971997067117516842199662429260888204326189777136756006565452805168301316635647432304757343500995024240512429451288727762292662140818324113935230545635139252386413953642950752072675394757596889608517797548432150224396699130637325765237773845295216351251596507077794728375604186552356872552113921491243039457642226317907851420859447945645750140820088596705563417031593921338731074833439688460192969952893402105353335521865542536691749497043751814972652693791083442282828443860910725266306239436945694453976772574949707854767285306700352455450144709725783963238651958253631870733278709177771024333027702001747404889653876841310069576141557113645061974763565288744741790401592169847908684797008137986907008056840589332553032798875011834978041553517874193538426359342295287315631371955650149335575483828578028116347528047864498248103754571163382997375068146998645996064202913973591319364149276550127502168323451082754935925200135596132746924619122424613668025554231880695018751432056555318382631052503103997669195171646095937556177650594833001624004451048456658303889090993353316422544897412110979850109552463840833015827648754781604775125314077865201773679097166192340441596574519239306758401809951888918928698698598985071717908255482701452728522501015506734687696960757787357528767389087693780995162081897915443457403355622339618711859552327627228030895084259608972006031027056178544351950035667108932112031208701259087730587157412389372973354683647158088561464423833506100475995998586629228826881387169711905820710228160860759011108780821707220575752977936792643997061702211011131838736246942502602311643104453845832755389451489871387861333701135509684058470099473805098692620108549925828034253784330242241582971807521416987849028662128586553884905198868735215944540019752368133796249107695661966207340796542852929663572938792298384312082078996460647494224274556740503452403015662888103589866207585908260845789134746259431238255620466717308497828912388621950020687539506636655501858163369298175800362654739527523499262375396619131943041122083794131046991290162126071327166426148302604602659780322323041121107251953284636816103429607682700892715604507455507483420503645942203413571174355747395878726281219793455030962175338734187481205164907617413975737136330916016344829699367238789612059364125835092277709415675149220599638442130064220246848261698478982355370218018190917181722765784260110140398618900203051416537009788764288561525608268399373345989296024161482713267544570469516240100254121944887079684840354503223175462446588662735258754044855762957939714752747784411838148191260434724533186837513603825125902076877074032252607755599152183623163537006478212698876305110408989293659661731079362322600962029442017667352797722803833066877576525040340108146569729475675437405533390318425539835507346144979916618015406791244713677583218698467370377821982175324990291041115192461357649024530916539984788638423829177605653567485779737317010873534196750713395482815294055254582814273874534253643462072224846327346667019252231581388051547414574653753080698440390161081214544421375051443107119450534400551858606008887922426877219632000654812382584686996649526884829940458169212607382494019326510802499414779626855758124174446598763942473020558439616874537748520168068790489976758800860361553623792543587999454669386541160826843857882139043973561131882327589946376410873860758034605600076038946679176500554671135613456620068921656764492331872095061854793323446631582779290668745915894170913681582453992919131249423352059998981180550914749199722164771564312735372554846402834796278186037778637339438136505940712963689084435748471225767558995018872706183679200304659624060465289760760220366631018580614430083436014118632920932711369694581752664690499266809451491141475325115187264251127220229169148252314160099722545895440300031348571384974435776524686406473829170462647374562755747469904143095198651051293801773871045567319904264755776614766773140949490455213666745683152922158068291080174489530102747692374772204384605243471633515483071469401235842169014941311539050492479957539615073851019404773851366171474518995318993952947345791741040083897141273427472866886155195657845705567520294027033458392976619176609987646563963588102887521206987065917967450414071387603287149325324164717357548719047071929359201223200823503412272338931966433728147894222434775792103614014660097861653880081077085491866763158960790689627196344033813963173900077240655001992419628049836563828341884061052089834882221939738554666231630137940817589686654081484694411074456889075550885691930042679405686282363609694972940140532645082428571318866745520555746445304887170924508785858013648767061519401832955208363859176300989548530531626447253430600559250501370603528295449158238397070532321176377951527188374016070386304501153645591428300739437736645894294972541021235593137443660350769930975572603007991936832908867284467423887545643171479182540435578014531653712502564680824764363442696414577439949715423275199253673394458252800219241193910009184153308406945140621671339625119830829025636070228490231752011387717454726637944410068186582553368785369331776931161191385433198066379083816063468529476369276628029626098588798708671479989040665834697027859492041430018225544986747210750963170859284205524690362016144640277259611089071422952795293879602878747600544255095523622894801868772708170124965679879168864804245476331290674537490329522858727460232421026882860680332242275115224958839830086929127566017710276942336905250904954836369285168533820056370519357637325856559505750910149143790119106961766405766516323074916256477508334276708006614604720323065874127971789981245201627726430477844575071954588048255278518939632081614280838862676712761030850271735041100478729940213849276214716273257811793255324348846484914061499532881979891329791461984775217701002691887605854514520266700341929894037661605448849417987242186433690213148573396261862296265944571505464658816993315582881667631779116726539609478671224645019448862702998724459910997989259572082227176146948989132453887274745878111599425049059748157796828942649618076326110030158749758137990841606704962432235387862361277734653069094349974316924095814957343234085356588391183336819806411450032053731085216376039342895455076168433229497498534848111048512547147197616625810084180917605404398824727213880820872656520085677588719882380953448478906531393914474989080818218174782247179385236127916857223710758801147607392862028900523231467733608296430952440022849540494923842202109553788629026522331352122773819570222132075849586055454094785377473926976966945315505172019196445065842199693739859384781463707601031747206268993328491437468930528060119079560938387988910005220926958361349115137087646493878057359369054032998130584392604078786757125606418223719229847447708176288868852987969964053784409312435159511306663833681583514280089803397282079028568182855629731490565528814869389761570236236438444189133254731822312151275548191140681316613495885554059729426326566310237667945052975608640777277009873809156123706233575542158799124718736941103623147099387854165255090787342879809571189470959597955453503941195051582661282318343237644693727493105298657313206714008796431027117086644458671193094513854554330361377899908585765679432806346271857636940727065753864666092986697228420035714353929525691081142945673706692506880417064815943198875668573737625747589250366526173021890282149753805716586301630852116301100414131434597653421023593978389962923524443268389914079744684166499389164449197465344175651988019671536828588843537828059385766936199000943588880314244662854183910467613101239774451086669844328666465587455293187585275912782857861120219012079245381363248015021790551186404979103195902567079650938186319736620914471023351971183885782762030635798512683368017435767415450387668094855372642528563801600139713970889303365870746632660817307323633923151463882404088447427477593083891750750726553753748461379506039159000293099232457562224676260774439783095022564021369972249517084538293185698901265386461020233004821566703996620994112471352680150104508946089097852149965679423361611270766160071426962082939392694629878109184528655622612490091511974051507349749776777872095968330679651393146969540664762204645035701643690993488051512117297837645551443561990097354689741097957823055220843520575884951602254036973154352487759944473370045306967845614139197918565299669507588975460700912119895229743739377042726164691176591432340392344735404237897805132979741530009399232643254728347863818597082388736020936184128727651223465470541853733528558177906897122504803020715729675497491846555617506861931896949962907512183630823416081601637341233502508636580565541923101151007185721120194923117753585967517945870403006174980393465868879734850701201930737931790875187261856434865999057002793246186509992389418353470712916738439704135371504457789766342711118685633881437046257462811592739839180287109352688284238011937814388796507864132716314256547480625198925581298457838109711143296556052920273612445979864189163426882875671015607080904910349033753724933524630035615771779422292884361182594614383317959467084837587076232396176495402550044761699939088839025197438504307609390378654232439234123635649492758991564823965007421209595796699200888760198880882438115527512659268006247757590196279857332428362790297571158065168971363660007954653405465290433327972440027017788079537752706998785344068051363312992881629638892820786494957942888595963624021141830179298065855771115845487559093796665304100479326205618852543176664440568683537297516125964810072154663484022511515328535135062876903536709172971445753937057691688237975524222899073046586172026788140557904645632674541316978972474211347049308171897235964713028309699629315368097848287595200677558566645220237834735990354852156729199354617351897562845131699557054860518948921822278789385864716962719657659991844976539499954480627676175574478209271337273372730828024888248120028036862260813337679964260785412005376375571266434491932887692360706353913059152483783802644641796746986970785520615322456996405879160714179045416649440019534764227392286689585200495448690787691380907999001136720413485043458916279198482947192005984637385222347373012270818423030565437180550044336098801443262784451431727747675592388278471195448259590615870736649067066262799494221204301275581841002335164438874343424426612630450268717964922114732890729684212351433602179422920649121181538799106948210320461772822587868533936893193214063234796919712773054677729271909797271881219624819954199472981330746589654916508414140355992423544828053574789243308971596700271001382089073292023788340113972689077661198617649106950005407207313478336647388870756075104646405595187874142336934126423715454709338924267676769761813011700219957738884140875130933016274072156622981607805630240645936315084037272594808648546644211447801834813034952458274498941206830578217562051357209529760687082498654331883665138300596378172756883551127682858137396512651316134810131855187157574011137164602035368713766263357099509238632710669606036890391796146879270634117332373735116416821435820577208312083392913744260263740764682929273290696752777700853040906762152808436626531723736261671473974947965853068248432503882976685748177498084576996307165410141589683885509420446479548854826011229678590542182464003363356776399655437097456465595670002908995162194413317364714471500239659080414244875637767614400580424030700141565243537062169576910393328923142502493927513815358178419403238917159969744478177292665985880556148085111606456151038813554676838857528800993026886960286940401855637495566338620278750716411430472108167695961587243672255983030713802735055574549794324409245661138878447644446803890073289352979244448076943104294738106254083399813082183020239254734035526276697267305820337910605721926425603684019700564295951623407123688183980463325325193797175531113158908940071596960917828495191893679590358337111691213201365044040372519790889699188207779400572352482065498128664912320312045579475520135019674352696183848258284647933986647461906155380577134877105997398157395069196810768573360955453176416007177237453120166854860472118197311473230062474147266814499266405022703120436797108356136256328979983931209081251202076066808031574577465125537947767141138639205664931434331378988681623188173177518921951829901653173628997199162071946280955571464366047280297097506805263904309623033601401707738507192754595045152951252495735925942502639182282825015736479698656434837112370420256792219619275267585768223714632292427873471957153375253121675015235318674884825072913721204857803411274577208626045952765893749209435146567276707740961536567279355371028638034864597007485284612017966436422171857115566601144261815971874496309017853518745320592981095928594056323095166306699580894050984487529559150131917418646851717298281596869321573033325339528273871094878225688334666735359736142643433133018468165145886559740852634536693886302223845288283333357374452711931499864769893047872637357410172471013218670150884768670424023160061512410936799096701578479625152117313427703267486880225684752000126969461819360311651553609951618883983559829060670887855639141158779680191708931962815894986000766406877649322810474902643660564182229856106698046229412982321991188683109307570202260314597124110702353438499025446065217828224823257778174573933862066569259595707430954441755726114045880338980025736777754883302211592736297317043120144170075643398014906339314226704775558430484673558709511042784056289374876483532376687266846013870539321927318641122669172092913946783338057039602582739509437421512434279134878301174122152251859039788343217909366783812654643851217363508195708423708843651726146579249727921934291030694749277569869216331366806999515741542090048403622728763323696158025548295348428001244218034837897129049772416982367166496799298019993877277086246510009563638232080749059438797358325043263839964881746417760123415745571313719791487899552577437622238324227833439095854467760393375684539002950186469527164362997589609505243571653894427260968542683225715859799371416744925611332962145203318857916055531569940570992580474961186092258631475193336194352642236432909950459888004910727645305521744586592733242391114154911231604899385127941596300114892950502424625550733631526481201010140997251099837673200090745368422104195409953989757024881522374501788986218904479693343459802170790955643746193474194804744731905089162903935875779063068791396194654545306506186866520573136764707811129212894400865998548623715733163775499506235821582975502709642910339879372716825308147996126094751548895807833258643419663981393006572519587417312102633198961937142737606054245129252338863589827199803014351563243214215449813934050355531835683489886144710574345147383124389315617596157325608751243681942174447574360086068522925151904083178175066160726800169305416122508851402319233819913483686309649142086220305055417947465965985655796278148925660444620553294347177608112885782909091900904740796148594348632956116464048026950395248079599344383212945345398864576214784618713037525999769092489135110583817698119963617903924411565963676781236499679465079820482986410594317275441853876736772867331358925371132886211393051735768797329932576836752212892745241238960127002722198571600775718602383098793963081730358690052301167006893740432069212235902854188781630840310348731017039876889883336401440906940877657275110148822705418393872702000875123976484450278544337265453140044607979174844502571661675255741730355800568968221240462683297275936105873874167298548957218713788283442523165886973791490525761588136185631443921917620285870815429745815755605440330196384000422528921823730111107550377954473763748224316529315445246439315488279252245116844775096075760827585052448125017044074402669688045778159735457143574283066158120033214310226180762436975103162521806295927159694297180897313358168023070982939609312735511801555785400070698712996126122625752932536075377854757116105446723240981043999795670403231303469601410759965919434969873692873544262723594844666298514058764776259889755550355676653903065469109084715516436663909118080885440565622213654742596664079226408096862141010283270398427623289733539906877979897089936640014750589827166197970082569593224098351259621916427012168006904535957638986752862233598309808211611466961827775239019039271928092498461367582128724352287127193640962618911958245695412514895364841730810337882884434354562268685390415568065027312261284907306718451395864666963028418575402752274253637754795133827337471468141977680499387367169020740449091683095727327363357842171042910654016469388436448595804134136632803422218730902206630173281120873303621468518974703412901604455316181475939007247791707277855169910895177014377050234854036824824718987181328188471810777320169771030880324395480439209828739340400276895789699184281898627998253702368157596269625008291793460694917516722367966209423222420288015200623211672297633822898769225817861275059896757982793725637475018988416160217773489078464294596006864787050410988912418514304944046295425832190143183055683827244203610968253999204269412847649616930825445233709633792827956530896660699226674545333323241645013587556253143969225359357613999844744213491026642276851207387447540754109521132465894047502921631488254507942885127321185539538501059790434028445843990612913596182606534789996922509882888944223552741793105894333753837184968410078832055415832457816653966861614096938478098178509521694368929430765644120120081520061611519508131504101755749314085317295053547828482790409707862151609715563296348641680549260147168322946332359741512541826636121957262741424470550851310724153336879784771578243614178587318577904756512136672634776604265001299370251723642607033889936643793295190764863928291091267452521525651407876772303330745403161480355611859500536926765353755012960630053117336098926878005862292572223683603831133411458463739429976177854491612439126191968400868411903166661378668228209411356252787398678343095745885160468089297585012327730471189629191813657841215740556932986267777790917692460838682418914422754997494346147301995881777295391555651469165500944300916682772118125919288549225588607230526627026093684765865411871824754373944690571995684591175774505763076677658419736794228050359043720735528100615793652607973609737250345924315897023739901058938215788033840654994778888760694497620001063066039797103154339654406226333550044179460583085869307011339271891879904482875330156079768001971412370066532528259092076588346558131663558026272636603140772636988783860013201477264116879557752429754145689076229188807922032846820650025279060411679243846878560595171586413359680462909759908039399717043329859814552780281509923858745815392207596705602592056232862032068134684066866456722693616926119462242498570768097519790922087992853639753065304403536630789432395789368608698899665303374926364808568422266591896726889998487074231951354040157462126124630399220793058954581137637219093238197415006784161504156614779177880202677373286079529186494790346001736313982703369653529878120237331738263570354793762236806563958868494803624271448550510439685297450935250240607906923819144277444683940862442602357250619338760806793835798689180213395740923309235102717491982406494927421247172361435052351794382877059910386529302935452988211415936774649614658668367144134489179116393047361385668708126084236093710218237411897791709382373553241527301074654794962096383916363779972613914888357082309439455255535048427930588746832237020350444585727426930047286610166902246162637371368923079151569197874472789392945300563445126983261142954274157075655798440334660907576754285762006947714885973802213642936715634240838850572057805786807888221343610448029300122765247045288453289782496056634928986919139967069730164413625285336544473277206190164789275121392357556003766922967444641570977532535544257685472405647352058822277155899067627012480750755516813864224369790717653224176824700684220730636226539885945634343082246036137694883470971372037715389497436296553660360816308844684547239095765155682068723464901058694836894922122394076833160164302599077909488781296049497775674771780629621849777549254139242983717777452647170843470037149072912789130510873188775551831434229545372989538443984678846080374979300325214946620075676202418565015209232134096876105228859882156460812849561725946161172003100023577808767262662138440957759373089098019750542293248538665275840688910008564475595986208339541123605757118886185694788778538888666343579044562715190495077641845259134785078350046551360003620466898427659798833139742382995910629384561500713762907815023005031994824625901862504851137095614387935248722267592622132993463604782000691785257194183182158741936254592876036756282856708695177144721489416882961972720501672570865252973006258450062636084124289805954195541649457581103773278823342610189054864250245923316303935947597807335468603760480084281568899345582098611209053896804101528409710751566670314424836531535919317936944861087655403174559115163585493919695882999672411111847327246734222815825423697482872520647304496732957035644808004103786223346355470081159349487786672749314399839317567040719542675456454216730792158264112820787055578171548530673470553442649486205052953678821161539093629774942783781862984287422387354060383826447141661216386793266791549485100181196559940054046350911556365588263552276546056243193980630077387146539191070950655963473208814129806269789031082512665390571893016279608132103499094754598509588347864643777709221297895845917444575232511170038871550110241328163308051819181265301455420418220646369287456922778107682453370964256402477905437878265687389402978161157147460650980529289488698264699886953099274282489320365873700307687860149682140095911365110048257046410764607107981498413635601664094767074886056603773553581332199956209701738398591981249029859634908304823504577919890755889339499388781328368270556062588035482831212842709477180984597452691774718115895378340199295450187214261741262441238490560860842818805735637430442026736980654308311957396171546049446892624305326062035397989792366140710845091063794008767704171843632315318981586507045779469875769693458086085129989464452200274249307592511496039073439876365611241195729791772692312571863795748754138587050324986851038890022779981083339111337541399407155585774875882727722114768718342735535226079216089092180796321851050648278775162743921271724324938721109571557634745751778308102015263463331284783609902034428965598273790119849888423870711791048932730439631968935172900120500785643817747381339167559326426743670470285612720143992881967156309933552950692624630540275180999423038062933116380555022975056926657231783402377378184228685514184967526190503935895053077996011497138183579416001804296771066870185575166551694697438894780570234642733601662824990968265968095494642652941014714233520699699097467338299235080880572687582048263378756419503158249437637386410653360973616218736146263260238573638019487123435265469896128580774737784319268528999552198712637845237772818783861510088705885249600833539012901763650244348284938414632832776090143698361811665146191020197720546400561097172136537517538084121071873694079844772579495777769527305455534197596074675433906214665848868110407325420722106409704519097190969522917602661360247991057393713875805105328438818855909001978442971934396356022833591046164135973425605823219798978286063970175717667600648898750049243536966286222344254029505979245755100531054870551531534457774912664129633058376827597082414209978609900918056066898717886838493113125415091302679317151975166124211440280810972504289727834564066094317765248791994858575023315288520592549165383139065497897510791369858361569218260689157644925288992524410360045995343370144834909151743306988071148509886465865579215448311473318908906144331268334386915384769140949686271814823388344972405636846631897765940829385666356809734417705268828286306498374185362066311548774498640701327283334027568166934207308321751063257447402158354798494375223365514612028470336442853175274608605395401177075847809040415804203969296036946110530356733698602133654770749757956690476395390982706568179335606531309090284576725933717149566633912705117957973669625557061377822256460485633769103591576348817339885793882565550568095520202283442042933357631954926166277424029668839556834610282417667075673123401384421204297385103288129271763384261834801419731980994447467275660011308189919326650872429093311431042061068274493933973472093877652821708605413669743738319177106471195313775647522414638271174671677056777870021417229807221225298122241999447717304562670063022897873144987071083960466019521549087390686515544646172721646803863017129457371874611366672675470585515897786383796306384581284226819399819402957281806203205611228189954811165997983968282091961715933844052049432769745169816779474838092619419241350384531196855058937627907216305528527500753821268815143335864333336127861569470899392479680277203654256316465991514670815671725146094519518868679956513890820995223897639156885733470816266901096965464554029797031264875271619692161832077592086618669272009843390517131011054046123596830568955954471759194581048207689268269556421223172378629382396123579351061586677918221622711114288058213561450137390126490643490281668065623103578825939022994105993755375033901527842739130382667415106965829978415206770509687079292097583952933109917593441988408221841935856239144903587463855845445178169178804983989396336510047228708008919825674722470853970126696539714661088864097973073528957007062566064503422325677979063066779619503623517634936906134853447660300179955551499345225601175317484176833967540044675337083607294150039246782516542143810748999516410153805163341189736972259235205884790529731849302849993314939018203272934213880566667979858256546538814038440393252161081408605445996516080859429715226061308411028932150579357478828541430756275696624700227728045311254595288916915459097782919183797601803206066430568764220227772558219107231734373449418397190306279529194500858754225666559689112791939359958007119577170596312432300074097526118729491084368893576549611363334252487402704762824551426692126477988167387967909704691213155386017779310908479013047110090949998790189660653898922565078236833102373933802044514327528864374053705868740924303268384250633348674790430932984909865738781131564536515301616171701538516657718751886713684957530714952159560766113269405026638767472292499907438698827408066203007658799113516362293146476777800360659886138887530210380057149581055265608261218615805170459610793192254048937207591131919811475172492555642772162325941085866060734584166478780978233246009145702739411252130877099523797879262325411640844583463329313952712373426553728155716258188133411266250441388576564914045261212230894417136949659875033586233985999911795892253303736118022227924204525932682855288807340457826293553957057668522782124858748491479672728316007871357250358408017918055165394852993130096993979964389159691769051740921505940577801774077416140477811419297964134469079963909298552322550999775560558404922402963506821252331697279084766701578274432290982362845889220784548174811784424270277666934409159652116700258608185512332203453277220386277289623421211920286436184239516928205541207838251618737230231245631655667494925419646069512945615866622761904025924904067171613457354201025689456211938343319838741826208113098420450137038550842175728206498966837911813712189876648407524040971570056734755948840454960819262664972390413060780318365954478442817363789352842833312442504559538416388972510265923076212478931892988060560271100837614409372377361919393107301957861998746742924673226972272136735620813830496037077078637457779384278529398562435725830314281581917785287679504216992609150511829453384587343973989471268176163540834282252725662673968755470642550667477438123963179417135070348164325946187545763627364996904330502537793646155728603565491167366316581678009646562944174329902621499219936908936207344169396859149136173468491943856056002124546738587563248713823696744268748670390775109019933608740544961405113902158062439748933607182927208095028149839522006885046365288375144276895560370253122588921412053736923917138932289631821875803847648768806661927541531912693329335982269915112976251995365496266684197660176026671471523553929218259032393842044065581376914050659291224083317328570970592283375060784282803344073876117170599212498077828666853557676672062380554519058189235121212480265792592685266431895279596369907048209708005268336063328351070673095096421931613020879269889108625027526960871111236442664074402332724753312239223743240554111289337704119862834912241232128298457886063546169104250928808562753287730793704535118914740063106816612349355793247716242131724888509058439554518824394700208505681458538100128534682472666979465172572700982177646594698057739966816698478003864084793434245862715826098009509904318319522541374738672737819890502659696860074889703791926187610696617635966364378529591606179092814236782359420889553998406060964688861507994586003957540090542249596323868663218455417077045224032310349384613104959383306781739592051363079007352433100462688081712631163582650223596106747062324981913831100667536614397188832982230922409437986176217288484753146189046489286429826401612807152898772974629218263994200434808952294305606736655523347040910620945930067636637606430583690629609028541070798763811088582668350863270847049792945930486460249643982039738706806925055402977381258867486928730718219231386945242830509111666291459718575704014520199546697452752090879853966897115142154192368348552649109722317733831286395309430640169303281488803854462634629326707556800175382619679195170348231428897456737938988040067344836657656668382253143738720130545419579107962282863387459597570798545215987371807622038827141334895801068521718001459690451372426050713474564966043324736716779871705208615237969734729014827424659107516229053035631081356655395595591340282055207420300360657197499963161993935933782943594132555326937194137646746611608982720441349916542650756449960207260753524979460843014902310948220014130854481992634790707984637045869130344064102087869318025132709453414851720746368464287053571873041536169109072637459307761433391151748667426414495777985571008367801130564085802865309204350248825857376674490789726297643709979065120678140055354599545121674237081753090034818821168713025089534008517670606250447557722230691057996683683177421266549575966549194936584015737673025516983751609225304303707541088937453939708026862191886450652462947681634619233800671822686108742325669954472360414609072827067789707034131401203417957297702232073182288304058636898605390693286439554965303831708952071557521605677807590847435400891298426428122160693586030237059623757172885039836535975638346297007685846847455448336325689434511286575673298844259347932799376281031752629703041218565783183852430932624880094232800762981284649857009541430044044627272642768899634440090889399762441903468703942650180560327768035505535863315011611248730120695668034896911488912953137436847679635714827783415831229921628977890943518469643337502573713686147459476935861636292935048627482462160876742579395868036518173415310966222053995632730927830968655965227565765225663111445312332285763771013741025401378040540975876562517688886524374964675040926041519283151996109466693085092179568189617432718937255646939860957868540169109367885915209404592091837341620560381820977060293475545526383799646069923638253177454620558222113256579028075324448782708936068924776541549736758998683473899406620457518488704932050196208482959406963950144720581789559163245294064916916622267612205043389483666228936034884041698177812282195044513790336067896243335828856330613661700625604269614136240366658128083082392308831826548873037724403305435584325951787860006495117096014256912382253953739547853778163657928061799236250965080469352658916509947768204126408982149141042208232700564908441351256770392060048915558331450313970276773445232222007421139054658301788474423343678345962954018462059901199668265521213781133081349253279009375056681814530947539271632589333003765996700325126547197560688999728336651198690388590980019390475168504166909206509597680712418643348994458944153649760468082414096760260134789475333964573693493902554373901873812755919528390506870331944136689521390263308472926033397713071168922805984478456666223714888516096110883966460235895757798587776665861545770023112090244410964193775206040349691546565416622812691354534256781673068365649031077492170200637115068773551112233314251000428273233920153132524611562371813252266659634934025988671861098897005098871124719066370488499726729555202459898722362476812775274907332114904153234280866794777215279000987351392875140751167063653250467673713427752034181504645877239784819289135046909874478174992088760356195977135696315680540895973713370172842676912467933872526872166495744901195018802404178142785853951824501742455580537477829387358244465769391402939265130700277145255712003487365566555217917570804153695484683104559608306750484124324049971243149326023567577216179714025683286581928077309949526188450243372578514384114510965476720359563975165472047945825713606978990330871010771462859394991825961159872058111972602672163465783441352673071188930893605229992696907151934154319536344615504314533139611513562886522061196954326880790160765466370204566176683982502307529787534083755557596995939564775547630006576970628392892345679417613112407313479651368252266406768208738119617030219718036233126964305895802941132072470402206497097386442611162527278606033048545313258153957160372351345439647046867011072397796511319407374254771826621195393174683144194899300573095892014362431012745015273419320052296025516954234437494642158225341834137571700831442743286179176033898411056424441001158505584787779206883780156210233766781267863445983804714019467655715284173183946473873481009576101114931078804215294951081580870504957445800753802499295778490077307794294489801338952881699525424031486103156728252425742746299055111835389830700258975560059772058870204576642855287933012639561785981616082137621118984397283238378538120393244459183969426162167266084409094134862887269074826904332834992687737780921546376119337986881926590864101295795191165875134766062319004265010771006650797639592032659356164249317315944507765467018517870473028937896382476429820089645026929906062600355350495967041900783602319744109154895069267965151116727986574621798898046446012134642202868286293319930675461180586530002664884473161881703089030654590503193700215911845732161633948095365573970491188309076305978488815733759315062848847264120819330422815790928241206640354203063014692960530483331301893425782443903518713633560630889391729966130351812164381268666873897799124224224808442103985523575681751753581770667201712679947904621084541880934138633151389983772014388574948642747196677846112665419560648408854344724484256067848463527687725923726800082731034640645153413332497104657565687918269278489279969775977285779456133145012239174451020710422405683306089307873903298760340994359019409620894181140576809635264308258448562064439826232232963196175238505054800137818634607327301114197827934695684397028897065237930261534563448864837857029685158020293749375406825560953745718200694824402789338683264393547427930873464667310700216091074449324128408306696274754480181825256935336194491775302401930234979652181386444240210666271765101879469406460819885054178686126194775860928186482580761186027075617441000990309135227950128258128595459177754414961060629864032636962390910678762090841147493638138441371363313948332513444711838236750276076122548394473337215785968068942584967444766819350393999163432386503429288875251894869905186027512753400582508667140268312918779892780948790886658819074947428645289942006119294240530600193096672060506033443767019966951724309963770125978168027366335079215168693412938999792663796598161995548156605935484395216080906965961671430605096473451941233512050094512546345039226474647461572509775571020585518344940482185406377351114165273633513340045972334153968987023049928771547184754478467684539942886876176244616697544460527801536630484802626977206948594756083042462974908137659923719701342789019391067189204089497285373123211782918029414648726758764925122782720805142326612014264277303040255197184745458791465520908660670612720659376487399657196457062626136983798860173308418833641865746138099438748034866926493715495211431993390997256146910291504593838610252757706981283334029055000567915955923749978635874050228212942830574127375871881051375174498488813678256946892145253866435153097182560170449445676646878181954174826225785397922452709561277980294769982499122338363018238659057756333453697887500592159908292985803163793895762902933965768073340617923105728703888602195883247987435148014795603044885753250085190583562246904612725661794548275453327767724871370418456105555486500589667990145452007780529712670364736328582381624186792930281243448004571812563886149255908609883735855503164474534694542359257026734971760270910332476396688567907507248344946955757647677372351373680374888257878743993142320430805335365069777835923905343480870777577649825093516301817588534794689528222619946355883907947420418108731083702202498169693814258206516914452501986322772407769936622515297796188182209680104397145530570605667341138845409801549528154754098107515800381299829129514062003555595851633877958316627185495744250279184856632467172135169837844717382665706925584404293645385591219901437683978219851502941168670878681245935025766397073161068735808950920955320772663089811404875221242401748373403734227491614552930646922463649579970299285617503038792645124457759019859746931881571134457178512703681533070303222416801768657940008700043051050271696614397293323384151677711840457836309366792217490471928744756976452019447510462419412854140950072094588757998790463106118674684795607080157908623400548992619431220612909283118297467937182854829147414539716322330345628531759219014371733821184736851062061301610126952956508670722370900223661588150137227024635269690964274513304653446387123776291078779798128357854162730572274819047565395498126199497814408359672141415221688743001757514289195003181082306888556560927006426804014307479634104260294960589446717033723274986930498332315362747984838195062546881219290240848523799066855015646231993841828690450575040688314442234709977159081577520134570877082089818248474920695469736008104088663757467087122319333322916055103405342952591330787577778772368898087285113290363120959699559666217449278060061432588239538785671105014867725735850558530575503305889690976876023427436150197818040283931748280149244946287388961972042194610971539571073567258749417184766833793681065817377345496254299302477509001651627185434800237022929629911982537014377535632621886287864615696902919167656337432365382546501556789224110356422170866355402922590846075947296566550649731601745893712465980305586503257351465857982796481233454076275247598403584529557160771542608456728632243937480048928889745890873695260699480967066317260920715148246143701405741070493661922775307416100823234585006947295722477389042559784654008267229570986513111354066369363219631570411694898332346609895410356209181563490136014412079818909840937145520644913612368229470932961765309152379428328355125681413480908877909164362594656487651523001428541795905602209058908510167277105379052244822640177766602436904779823485523565081427076146288370280310025484218331678918272608889992644351989374440830911152705912743034730173859884935668638321338863149466597114312789110614700392328179312712206292663630516970078052316740982434629211906945605912298573507988568653627866390252408807743814674063481424295435403028079483109039442351550523640383025677807977360783114538626995492759923297657185742451647019672024736725725877532732866973414575226166594515267154285029897159870529716625198385333037174475394216634900387458803086235801141701094936342037958439047087028157489988913927795840856832885622512754031552549337957311054510887576971185662468258696106379528013146333683842550776517947108707208982311013649916567034835464293421532122679030940312898370262395691688541619444478865995336746483456731414712559669686051498970150608097692092281765460523924849661155598563196578953851304987052961359807853611387162660440461724497851507114189933118254999620291140124382315622837107409713409234592529572380859187911153970187643078007853464599418723586093051972169610805559170468601075625528976205561934125401340805223662375200733710196609214484670330922188821743607273547166578736906294232435385458578976084692816146999030190508688667018303608829006200199148999747033952666312192634572144003930996527458542315860741193849933327028090066069625448516114146353319241265233447380618097150914729163016549561548128273861785180017843702977398386353627602885071372841957413684852848756631972794002973130799889854668788939057869150053280306586919434041308595560082478447754443715207810198777027351521445581946264233021425802642142382544665983922970334282534276614347465311765520836615396009204812151937534455762512983339692573513939736799666083861612078732737688286733112385252897422529362359003127292599600943115076545899414100485350295904837422956642111101632552550638127803399746086248641643155226708938273116584248785241281365237419222176919471703770673514257577067014775742611320576164380737236776295768857498281560031092114962810418822787741294551944832253827706089884212481080601945352403800215131694239097521333272490581801912517734327433478555229579637417314699326604927543026153552014362626929702638491635092648668777146787205397365957748608117891555581686420073521151090401430243049335610754247594940197162157509774882361117325466390399800969226317311953148494174029470363248587734436747987800378817868855267795592960959575671462046666762507922431934023905834452322156984661971571084688843456784761834404480371399919534576691418154724469064643085592365427152451251754461105736517213692284007302356814887314778246675825852742635488133797640661510167413441908202600380310417130276418460442683616372585244320830587826398019286846649978533882492395559958231212138762820404705709232226282134206218118575930962547689201413730104416964260418693069583703089243872185307863112457965592072097821803923637782676544273925554295005595810313921861372039246466096670398669411767099262480166818970286399134965799958219606283821395192688264799208645940250528236836867182023755803331782288301948713270395190835294854181764773515281805268556191801307320850302462884681657276372983862224637552330517680820455770596671853906135114231305561943626041951227743166557912775263153153589028268456294937478449368075375469047605970005867698253047845694635634387910773701056178747486462245529611138774235925469242952398252813200676181752782901732382162113404646304897397264751646799326782859719114028561157664546951932375450930072102011648250240535619408374091363349156304142581927729983113549467733247369911448852755099711823019056945396927542246869855898802867494378001852135047798323964137668835245698569141951955788158650554151744149980532682739374020461964354533277677695411504075301862668448281972187182232942383605299821814807332117682753927430956988714310740533182064163579517131564317354613700504892394654295208800498849695203779779337376160658364008179554479033174585594140089220309112678596689149750120310076704863523512477565625391852471728555651233169348594488198830255613469019057449699280815948664209259827434776650463860349633980828621162078948111362490013406575708473578937740096372501011149498625543570424725443817452148605055220621356877542526344738624380359063767069470445570135089230366186826816858651384402348192223019341191763224446837633888499309711143344067900835861905069994025102972626818308792048523892434073841116974017954384000349519858783273026062565619014636876961348286439281352530260144796328301236612901902361696910759673129674670444943361625443761669904850158634723702110517477807900281583850044486867460408776949696715744393031950896598416877129677682168949334676022007317432004260213064257673788147539595388850462795260747501795044345641881329387846834360490500878317293541385385083287411606671693354212161818152425362259265482866843572234109267305319126482849919255057844179843911926816043269603177609484440427719070267933371228045090033330460038331347302331115533225877431025339182738592095870193005103110881897051038873357155910582517059389715715873331996922218639716121304260636738747967060448838198142808497766272427585357231975246533782555336808835009102959032748278108686554483246235219239355277966693798110758510184875297432059390627452997014991178294066310578496833373032555212338737945507039715332869766154099040103704388205213293831265800517368135325177511347765280990396754823474397704266638874955840721681130406679636930661462641996525063320526081103406655708363317507619169361658823345876536607245956281858899320165293592520755698031827549570374279033041265119302810798889048311125578199467670735950797447349386667095726554136824146937716612591636576310186510489067441594664997161992827125504249149470923665979794946308395471100713349413887384709975778811521851068614261419092619180560760573779897278896790408184260173150163001422315523481537114273161201283309628539322335581960207565451178845563460294401272913080106934327809729709119802841598285611544720197950415029217280378400450817515154907402132889446325071311967924111547972132923081737868083301229966322219381414838198993285088708596511893210815934553730297856769315350327657383400219577335174111127609635077092609342985699103605268113635103388987173675929812250630739762922369281715062255667177922203069846964531673994848979827572313164499646311178033659799474248561072034089409416841616211439078691056749264402229910188837393702329434438753193593471470010035401793641630166756435173267624527354404843007887397446048177597570691444331731182435778567689438007205275017604173948432105322811027765836550962857838564195860775437264716903495042258437963912886673501332091641682692240816738200988413244531296372551428518762740931432229079391435968187711452561151570453324624413165986290715779773669846462142793125191222541340994441170569084524302456168217492466467173676737306506693251171482412673583460914406667495651927254951784282774335483583988938232549982331081224058387168091273433462465278079326826095765054632570214327027895176586905264163490450102579087159303842012865855675218886802951770572468817872067451608210574868985530633868183949476404671490898353691276393100161065825323547568545223957937331692756271736815066539176071500071189897221885694263505830203448325094175382598983830525240134271059508618385815017838506335043671481705507672682231795627869851085584875325489363041800386410319865202751558620731318815850385888652627169603681938507690796073011166508252390967541633429809921682140668841583726305930122961627272339488584369021654359215722747775488763018587486913698915090410185026830920922548905375521337236688944306163216865702688980887386061839707150305352226905386621489872811135806773151529559592483680450692843703074238223494434240396217379718959522399764737101620137135855082148159049075101224105346171243765438842567044756996966911114241455120909946546181441388565514800953558809250531914361027229735270629041923142702348307680059904093590732372564813077412785069779932725174096783477569650754847677037412244039685350927272495083274549871511078154386979925375633837502963542654323551555581919901866756096456015785647335666964446461950635913400583328420293569473203466768612397482041599784373672619340027520059121959174254389699250977119321016005643435044540211957231890389186619589327240051638204369905713783069493298088622488101563817957590250176775406918875599505522357160630561024018270306023148361483945545115508091630278486889619647206713665326481475142368512557070542419827975690102497449868582994572902419124730061261576982022676203310617603683784826687092295438000942291146378635036546442262468136401746699084415859832350266399193060774237456069214555734903897288913070564988110393830219119689399821410428706290817810140714215904637383201237686931079695420019871446134146657777588356910722603774107929317421454595035964044997268768184423616207092763864152987117992758836154435976858513466053752571845502955151684126359660388930554844986647445322275889374147914692121623281211259883994041739411165774497208929875314986016916825142306862410437382950252562146677854656413843434198919296586146880769605055997471062211085390063430563417168482542054097105186384691290975703626142431904716200865932388280151798508714660722133639687812036037167890351126421265264125233564735411563659520256737578793813931848600662934042773402411895867713962361549450375686545141927661670477694213153909068390669102492969331781970098923296786644567792431370579028092417672496915863044144640408913906590823191944911884641970054307917315529650777399660144049393671461816295881555094074559056210820014629483595877528272744280661922425206017959950638718707126561624042006352536486408922502454773201770118244702327124456572224850752320137722542035030017528947055883901285577425681820706509527762332246727703202535881918601038217527297838279487512587476068986406177802671187129339909674512652817403296631554751003776455998439457492358454856159240651371373362262450350788926762998652147410903827621181515489572753235227865156984776896532798690671087333544850809442152800262894840176441273107155802355897845965361924103341764987343194414208210213564072635881186033629042855258706929270483589580711822643298761302364844300869659765669219227908369933971526439419634106665324857846427558756842390596285513090822228933862137686089148906886721672598254912609661272797112339297354195496548149099848650950318791907917417979294667685098018554060369438186970287005794081344916176557618017502919235463613264400443296136331384913644182490236606380283889968923243441807706694402552616305896097620984685775916554246289783994007973652420710582503506299382442509585588971859175857095321866227310501044273300657426759910958157202394937669320284839493843716204212698226409652770986178821028330179166084193187524278949367643350237288248316775727338187123262614581691418735915193291555115796595770186917306709358030910940739166291034345176100036975590932522103384913217638992872637252556159445935196229537810373140225025068769717885727899315085900900053893215382321513894761672970556925005838750143048508351456226793940940616383568776882298644407592444937197158202350236107165558600833365984750794177150506346955564786453635764661766736380384599392208141439026297732473343020381320737061006306060027636913047925478065602983177440469725095360441164242134027935707526946562827050720561560817412597624857911381789024525729293028527186005317457974751628317153154293306874145115017494389321275790610431017512318379215013691382991066225254226186431227973763722981870722089152606543132474628781732090223380825281241825271842173683144011963126022206827013404858351412854003013185154597755746209378735158381530844124867547283960439437218882541378651508097364306104796199304534634336181823939995939059290986099708063321910078154672556629123996531877412803872816782771282899211873695455738556773540617201239458663942883466961988395111646463785505458035584300305369303090819303278048731589141859709006362244500986028238926725946318967132843978979671561412734045465602666260558676458631798569203172989155073849482324819550993768560676402850301903165699127372191924950609853596809705936948601926683249224540824944301988395325297404792621933134652856014624268610855528625093039627580808293315402883043068282495538877616848083051534881346040089633246274130375358659152154513519030186206149821381552959041209919357232095768442495212086739644824301328521545690254761545378024776503751058228192079915639141671636432975002735055426746209151817387964482539737828561327824281592293578778495276707577892969588489935327292327307005634632434832318155779173164785351887203092033713935370658701480194048621323264473286654676182753999274650847130068238353658591755665811314630707832512230026015843225985564556767030599093410628011015218895853128877968272226741675202572232432741969728069804761442529368310342633227691427868027634475841622277892848992197686867914012372681503101992252814266833280603701597769152589875747389664390077624313584257782049202255580903384978699866618707333235794516808829523444904147562842254224611890606498390541058804464914500359434549808788136493425933888821263042465314051276971789470072418831565568173497212292956574184432047473374464926720057383420018925918058128126260852704588102997110737828972003641540920065115549302542588602275793498688078714745535903779748174201652449762450524809703578026833537778625464740734302029381511730985985125887130799718838365212222524791074824089604909644864269642276892831545119251794510926367837646799858836541738430109744256085440978687766960168804454356445523251222062432309011732235829053990390790902306227691889777505950826328397152655228567734279844213922712219695172905962607144975071773926344610023907587214848140803685881300961965060991705506864368956151187532762443918471757385531495821415160375254435913150708170306767754755805203744824735726715279897912704284617076324116012290320765333474682891459140833616113517824792708415141701744117306587175498524457071636149665140001819019842496318786209047452589384533649669122275672431634455967258576458190529970211575833475450179194957550928060841178549936000878929474534235484531719846403293538689777469121016506250676400233525806392640197819850337895005702324129190911842798780015211241270683807223782863769433141593475125867386266644746659335842844549283499165876660270884066913811187652760960118334592276057805383445069420139382139145882730748597452198664815445891559928602933526885191624359165971352506128145469489628842143727781176156480723987366247772473872513725364609355402265259770356230107498647242764879683772597148842294923044700134435776957818912630472399509925152684746614508416790729777555113344224200329689273156566823242155231988805022212228233848988675305281582851221426801821648651829683622380772052793228673776351521754442981717872380452790596082655036726820621047667449266953690723864626404825451917598442441107127339245564236074701469691240300526130683632945814053211694421416846946743656641666209626196299934175167701896308352442834539494904809656851864779701656033461681282988659950994645766779724626024827552808033156028265584474949532066297726241586163962683944097444103767304186127749617788551219831887617306433416944645262764787747680602903056304327033898918558029555569843606614913857618415145917211807023567500295304229073207309342981294181921547964736072346231643028580679110803596460926016904607566725905049647660582505153496926911228944504089962857103661290570087242504134481059624111942591625275987433700714513301042545021845893801775221055303033082374209880447446274328717131177827571803010709429538369088768076158323037626594317617516601379082848532765062383587827825730507669813689374657265503535973136662073894299336266592512302868918832534325821922161883157184758359291884741741550876615647311568349195296469712721811282433179664192918122734678566204156055599993673147561071775382815561761512939756739084829849326594368137080746414578776822962185717831194860272041212161685561438170017506515108046398956597860861866770137707829745494748121443249752674816918382102190915230165632418957948998851658008243528679447564595822164705821900997748038844158433427882034322799570249036865367502706740394548649604568720222560979503633892201699129169756656099305685624741843763436968969727702080774419743993895244637455995817923358602761573349208503376216628539512202835536082349477067546574651858446761438046513931986947400738079150437726119986071412081120611324968833088030217011641845084298666497169210086587893721017374238190747701550263223820987074072784112912909488280455854657932593793275364154042196133084577017307086154447944629197295605045930589110617384661839738343430902885997379903296556491852018572481831632301159303812230092404140505593342959772390816713367136996410920581439328519531768627104434117348658844054573256732664060391756416952939739190722142304085432768118545668425525374399007323301308654141188756130045428313890739233636805853615579211671234658087724391123980844595715753112022462305713420872201916603806003138821101354428247856694639233722582636844159009323059049161041457300726138939967588405610308207103400427493895955128404099639785095302112655214445062076003004189155242837818420314696035198714437372263061895891098116567315800719547757335489634152435115177421637465427420182607950037974218501924228138708352003771366677006535948895212218937243176342064121731766202061028992550794395030872530985869904740444972305604426382681767578590883931027796641591838166782355188137011418670097635779907361044942260702148305500805320539489306648751090877610267384746374485915287480388828081260248530156663835273497209428615585789557355662940795423127568958199220351301187639093678939471351956010454517478667511437247121000212077778670291402821947346577846450068459286010260558342586502029429952169911358400869869935812225351070726284201964169695783900920516480987576646240979925025484983109904911978714119664025627815969562158720948050212196888090628382653442087978717778530136252397105544143534572287629828696576277988654478822081143830573069726150063070985856223076144020502594730068958036182146258277200321459989764849476822896567860531225149019342923003991766180502441227545954140441957448667916466224406504891403055449157658219209650630876101821757499588365277919927562670923994845352130887496252073946958984380780573188371004232500628033963908787378528743892145540257894953830694413087284404363595117765312617870769553226941066243289117791125543819589766498772193183804030901573770986992727077108567145258835700281182080681408742969109000349802554037353596961524711743297391348758552675761305827384476399621302247747171842253031895862643564193026346783878417862866935712980252372127959894241948070990687857812908732790176235190865458269807724376506531755362032694887941608075098443007007536612930242191245098071997460491174187432508972276048118788184369144982106430122915003485371599498118326517919855170918287538484022816982651490601538369154584298880986150289562979606791770434872445023548253395054226456789073299201604271606075403948330921074906837460811789144921580034497945856648897652624922149305293722554784428398129384046680586839856214610123864629603856522558495918035188102842815775003510686910738298989391370986789864011783821342026558370564555057650039687921843559984865296883754077629611278844668361235470268997841782551950298322299155923161829075031930116058506379468504066632829215168550235704170177150319180241324283299446545719577051376179186681324368694174471977955105726537530916261850335205613836576438999055804302422289635693549680844567682329328186989452495649357750393110594826006978172509557850414857693959911274283468874844207581697995969442171401505949637753419526767658393714246030944101445844768986581856946475079371110547793040396696834797615865281643447118553096597928587369162217525321180753244512928780317803591690446733334108347103330920158576732207602901894428505640897080239331970546958502235077737252474589663565133746264683434899891863867882077197793006621380710142257910639346009286513408113379387362780780347023294129968856519163066081735126775822826727684479818573133886913630477762841485699677272351169929233818343480203804524974115874864898947322837095357864791022547289399697606948659139396181437801130960378246254251040968001988580045812860649457528008849526881751439317771826452252403334321651546705053343247380832957744848438491732186945425135992525835352361276588546820501819474378557618530900321385130822623243333167785910483732987958155618337707977018528528142776080009712006492510177478939012966168590654188470487514092378315077859367998871293395098918698737372992927236977898578403572546119071260954206581284255933172924112505667859712979785704831244079299131312187142149086720086375968102160139504424471454114206650418577019232397876214945621306039811735232630022380716767133427526481772027203981874424945667238589355957807971534400131455076883040742148834538941732830531130353496085698974141637944972811433962754847146679975796703527212385606655267235785630059809644011134269072803111150819616939373792127823161915039767045088546592963800954594479936395282552692730456293626662323815129256975842598271651408748462272423954265631975607794721829879860116873961101064234381608563124552757224361261030569952854321147687863464720859101797216901110017973880003920341557758402991676394846286440278364679353685836226393677105529021561509426684613818768389305356537794353353633245010554999426679233534248670214285753607169091833287181199883293299830579995911272846027479915282148669878915710101297986761318014706511789139023999614220995590943016817436536868244585489270568120033647157927813003531235863633439836393445527114257249085045711968444114235857743743133847434431749299751561106603365638843143007578749577078489436596039577646062960345136531862298209715943473085805789092270019322188581592441507824345470782132091210436133971014192362947161272391140391182807080872850015763796654285526051882644750195952135113012978606593757009266443914020809596617026076961392714947379914642549185978865211522729925128072045127541339028298532423262993213434232137884270649048761131152533102864221794957354481414009580956464811204609055398982307661354690621619267337068691831169515801426826888618512000140464269216186279181195208796701670048024654344378547910890028254936729648300008889333501632975546635823704085042186230888634940155008205825043059350778566444307518496500255538406295321638933745546806695016164033052750112376856232101320306781385843855546503656760163567229138226954666324096649255219105338095977799346330386378307376644256201733036013620997062047891768643785743918421630405905236503191135001938902783605166823113035725584588304032192958250127274160232962553382611520444497939210126101886764508613021857725523725804928525082656923416724716688337008509704896124526897639721049698480920639491851542223338592873017173018555055214984395234823551706400186814811124984132857999548891706366631999579372592362156074869722769785336848487988596721446882982458952494307605957283493335927498902071215492670088843905195801324001791797897132101575743486310222651353980242130796140131456367358775241931338894522452776052437944454393341799210806222394472314392986755680454338039299231360820468834013266452195982170426380689320677763958536144988841415821224479751568416042429171413830276857597296247923719952656791247050004807215379280171923308571422824983517314412391343345136667070184202744704743487612608821960294314107155022860981342808226947689714031626580927929742467087560535361141496668923705412396788834920003813313890566486620826539468580643640678832631050116929398316719976421763569080534195027339627235333955131325653655016070923362820582875982266821385162139121563905912691472020974881372541927861782135306814455655214551667917020250075377262928816899376131252307136934458225633295677735649330928601316323888314944246327987334456185777192509730929074735947480708331687093409283592692599697318128893973723089547187510276497520082217558859167068644595479764373052498149336164601609656868857270686743058081050702219648847016217819607513878803512012152786723725315163140755109977477328298921818713124281173669547884860241808198634349512137109992757204909626554868343348258483583725707293850239574039380215219633987842056959681068968862340855498499265219925959265533385978105469684220058121655944188555332338656224132018808730988435560537160407568237758304868290957913409660043955609125338511469864747130500503234826471889529508894884398192981008113335894821074557059223995772094656552863645709547169073234671657316411692632186439011758352987739910211247703751630554494280257237015089076143096167093265558638497571246571410516621451394687709312175479816916546600691971033429694212769375393355294119334210741804775556073539849516062960634559971901144806938034022152447982373480617587815329296227048585067477620739797618817776255605779013414311039440498662514886671386269460913800041683296464399482069923347377201017711316974591468990625609400020971057017170374882753519271641161816563634487471507104038404705146413312778363361734301074178328513964657939565795371462223844202928557069718868770992062597097897661293361111211987156287236305776607372429057944537020523365283350648848703893037124375725273232309771735188916340608702226169744573144609583949275896680139058138764387120848008560832577197259889131124511699989272080892105912831557475040463562661109034783394764842679234942626352966929753638633462976340220699349073515765306147002510136451969453054999172039887316562596182002128607368035546970142453553273247517145556886078831656832546696410037730540740939780018062003361293307957751581311725575638627295958576950486234635157804521731908130151764470894630202133643763111320615609303892008149609567735511372405471707665190679819072226701479999404920583971012065624653268304243446342598860953856908319640739286119033394831382526858202463337069905968083194886825018385212034875524070861853321392465754092009666393723806009233061753446567414396199961164780087176604262520340328049444142056455639268673425821686088615064838578357230992640119813289131912607512257212213626333496076755517629248933021754839383620826727995980041040520553941368021590834348057927414910248044859436786620890265167814125689401517573113145296351059985687529553595696319159197497516440600339473045470485462091908949970912702135075540364466849397552541944877260398663472044516121664129985631295694592602180802700782079965102081346050745394904809337870168275645824510822656733073340377280760321788667280266286073791229468348153269183381639817865129520241690338790287721274628188971095849841608515123874686482941392902807257165942524612551896099697626158312400226620384254645528621028480554923776797815157009074482474751888014315048699420248256109023485317052753245605285235263489680993522567901564142340955967820758674467774137611496659724112013380895967089119998211792243693820067173600535998773683601823098403218689276126658777924945976947744090040680379716537418642445594826785033303649614661415660827728680547526466881377872949525061052333551381275603135276293332814261580051541990693641034589886322097552444589609776851787911225177305234354697709847344754094131629188521281404043159018883671715862799610401161238726167763674263076139805660680614648463096052170245844490921919152610502181283450089553671789665923161978497341692070206138914517266058777911412031374048941044617968760292074671843600531055108235319117268443141242809689276395021665201253545987902219391834358870757986516921946682280509883945919726339347904781516341398750793919114090074524170444862190208622128336864457015171207142085161827753426626128514571231687648381892971620684454195672264545539112129388518643571734666040116794471483898544763248537086145706484631489372257980898145831468842224858207029163287896147179324990693305533795776759210790209494236827332227351106831516764905596276714267447705632906800059327692738610708362517341858709034826338277309195620231868672697930268619346473144972969862353921752732442588734651907375625415958096415584876034547405389883564045283347050724823833034800073660725610531977234889647282130952997422643495685355330195132415943338161571536461692733834175398057544199870362267847162149903950427623755107736396796781136956151915798237708627188480009179125364316333041588258265066170413249823945122885382003265262051069733840871719684253560109493233325935867130853987352679018900429519964559021654029891792509422799325879388982544375427041517167281382550812052762691714568626707000396288762087164255006720203397051191497299641996069999497260222778956524288136393507721035037096747208567642585677743238763048813043058448007453014189377405837359428196903070702366680019383382969709290310540969865781164061510006060655185863713547614212949567506484861997817548726986858327301769744534630699339423315174818534470795690659821429231924969790908524117495485650732143267727796329556675399530706213017631941469832927136982438801360690828286087951228007232216640414094017209083483604660436140012538417070133921889516807037954625970980481738271249490823390124802272185996482467170227872927614610675946913759285260193490476356595452989098531927602331018611889226387420894128650561990922258331553015632811378363913197234615087476842252146282666991069063831269242102746851091740985534906309826395913896619572049409727191406355494268337162149610533060043263116986382059645097745360311695587024870054138223700579123426780435992166613161509069424331204866674338889471010561694889718309764600432765218787394701639020157928476010561224972697616767593705727595115651094410294966368925849096011473267844753204887842535278553826692473391035471465032098387998032949725715936585686523686331549382011223544155020020375329281481575608588878975131829364834198935728811787221600811056117973993033003249524392140246802065505607833515959518123305521460027359715383285740218552624376841490653552994280337300454274766061139643062863307022909624382494199282885015726768025015972255465264132662933719616704197793166600269154780603052937704054352788316071810658755194069071741949411663550587421338843777609453488107147550245332152494507293201577473118709195051156000478104265092215732788491649618648892677484736089995540187914670667110792554196785106637252391301995523320579542923159194843362783243972507347495774071101597633794128620753052656714329072884677616678247189877688077466348048443447181481243157118725621849603625608254256560351563491849978240683678692692713145074319890785141113084429881180205839933672553965915403034515015053106145625580125187417122244403103277243572218634282681484911742309685969120571028290132032876421155786676590096751407724201842436113466631449970589855860658535010352792341742900321164143989385398998888831366834141642121746459100334005509392297688339420687951974575727698541015035222090637800562759686894728304458923707342669120445797941566796419067306588699291738306571228585182837361326281585761849560892143081408151967863934720940163511199627776273617215413366436020750566147774139941882300145745153033102725162074677053524688849801175882426525683351139365583062308621105969111346461737983544597045057373054361226230943869069451982484374606633261209966407489212145329369215138239111466838229852451689902221799047368363619831946641359672875430025898212296272911565192541429585455166839272935051937749744271607192714757239341047672194833553656943350300128537638939498063229410991034529815893547286134631476666772626409509446623825072885361648794718018947256482952024549785362108264670185842797503371856868462816124563646020401973150648599150527942995636775994509295004417689958695950767071844992988573146050349514757311896091801963713762746978688337750577805858972089006576185597973997266718622481265265635243554381819566275728948348323925447765141084396638646558709564352921253361964782604864061151100840662566283979685689616390601096601801511804401509371803863688875760721661794574807957167226730170073196560304723146242534025511904935141445479589758965724741386089420235054160629921587661241784506739306887639946490437975910386078656124017076575760331517816012667151342365524624336878903260007525291821931983439026705706335359682450732443949654588980300309944735620320048576849893071635412751851577485096201668876744100092985557043898231737179125989856628638231814558196568232955734388131494243267226670287748887691294239724783149306860559188389008208737088550661044606335580670029283162824951287544153481145185346787518009706377794078202712727974192663814479154965529667018280290100119997189832460652222462257649648211076117927415474983734751192799621449810095695539648254060017142743565953189088849204471104362807572918495332678356423631140786665831593163472974064130084124545698408868892492949494374265816864836582673032875292036243057781175665347559781855283595178059137682104339719016845513485226077062571069538028454511737019812395443730902819222016456278002302641882474605600852151116027278618949470110317708361755446412785365685024859341049883776309842115745331586557603500923335454483925924312738689844378184795161642994888366250361145431166892668057989938347149864207895418068381881984531011912938151787095458104496602763698260947383176441510889491027558047469924351695876692203002119704502628996929178355149796178661457323147618165137677875333398332208412648581727282898657921293536085829139282679924083915208419014247829154930221103455952406370947194901698892819493195023345230009559250603215461970330860829847695765734986681732566365646120740888582155319984846548457386224737045666532254772324331089913485439310405649874974229578234508824776574943411609065891165664481833270793280419289007698603915634040044597895683685946545731989326476512669920913783519094615297698477602890446823215442341657835916894155211064997384157222568761235592035155200405252015798297067297668765578988643094265125433824644494625758746258548670164693849767712522125003053290464735028354604948746981917666218664845995828542675398276023595615988074624428613968188587452987151912790165070299395644286218268168785248374764168755777744622984675301919888154140690034047209366107808755895798905078091438276279730909025004050606087344668128276922545667942270208198137402486215045742254265200684132312261561377367034186046379948325742357244056101846509767809870091050769079272402967679655795806432175058420802229713713818077945631266370055461878779458744073730729442864169687690711895665744010892504333470608270226852277062074578157356682009122806208187416241015366900966532216667988023314394445267329351012732995479537027626607966603855311895469549623770368144811822029114546194199763974257499582171682297396751353364547854943242007745662419200571942783262953317738386823718392292834266619073431418074403979154885414968093079254217959414725040029867115452242500195033942191203798939015445341648885357216458046134109307617305501367866510621118264703470458579538482165402475789660594890604868747192305136941494260036140340150394620596927130751789918488296244444910955090302535906703476973311292798480539007742473297300044671281044482071462380659576214052320690471845744881265911553295066495138652980861583439235591475981188393201912278165071056765359243683654235463477115166198900866113986563939682294774893240183952342987222967972066669148610573373317314153709558409459805213618619494969742145919419858310177201728256833411541810030806343380239186022288060448303541134210261185063292666424959589638239251169841718680775494366545822127186104108821935575475623468529901928511073399967595913263846075373949876696748861278650996924163349217632833683659919094748462576926744197946010957202173943966380188928478124915718073795659526672969895317154187918017085603028861538511080928498551776522001463510057884920034244594726326497418928463740404182819307614889420841353311724850596997244276280725253271715551821692519782871453013981144908158177403211363989333824808301102002546863470397657149157178661592404032743838764209235296441459688812565329887029201865739792827958045473752400178468968674061411687242539066014349753260891535980505180730226467532506456365989606613515062639067913505957097644193087234887218853296646735798572493744424602788684017497401108608927125138465343955389876328924967939478880730209647498617641626492705059057462773991629697438491363137132237578365976409183235323307295512642928929214162693043497111547402791691301170557309822429933656468474706538815487855532883733688312984142375369380020318874755670130294537637226427333371771447661106406694780563870557236424771723077768506306670222244266250272397339444273865517195723335484178053040066436024261346496482201830872581312479905051141099101856264823659976696646399731718605470184868925123633602022129155786382945079393223407449082138029899249394425459506673057579362143089214815155276987519068783951770083213283608856854386219069644628822042980136559145414230796737477508034694066047734005848399867270648329222383694606693846584792229559635407412086014727438417832950588588600719089977527424246724797205254885484568643750829962590249694479771168110074219201472986760375601593511114780425570712839126888905690273017398861403181626166411961263684910326416786302816568081830800412183921139370971719991133475638409339176611751637405616507936760681701455993065987352482060307747442157385516185719948666230939304189854222594543700928603392532307203940478889167148262585413215610705072937489467361808024241202374217043179428889310971316921414299804432082004188773714534911180885761425377821646193542078258859301443962074375939598958709627889397825398361016976142371576535403565161516580979551743184877956381487629949941438105198679117810109118009470631319443438165360373837788921334338619672592533595200589721409433075876341478346051168790646896150882517005310042499491662772353779500918472956009131736313260244452305963908834742858068067966130601047730346466303499791957507651538299178650382450471594969755133747518352722182396617097035396140645431378661513712792991570417537545406969284476153275844927490702252247554727877411885207995448603455949215730469612281691824737982221125568028436121428662960923754484179397594395035247425445761383695411210554928717746260278484298721384159892251650809925395096857015584256138515512579662727461385535442957835368052043671034864095668369548838190375280971529328839391437663707747490645301010422903765273925333897750791360083412257544218289644854677454075106298757727000822060724122366632217530167279969635594054449673107136297862252104554290736477935097544784521320897486669465898408712710822843251041196782425767800186462327848758979148456644816463520099271531078163577526605573726487261723968711176242290337506588814522306579375824126231624362777611607997639631070032911937322762923588519222749444499768668690050979190927490996241293632040994194252476809900655885626357123028936439647991970341295327477428135619350530699149992538197474045649897005859134376950445417096156556264475932580135799800249547551605778910230354020477996619753674921884020560644818806267245493812377511013464863065130349924405410761663708847959914761697521777959887316690686580412308681806283203596377564454948794265646540748532848742170493562776872556510170091635619865242155449431190877524531904427474845049184755963404894183488985142013410080409125328873011573740484446469566840317204658820889776896861827814201448366094859249850026306365395643130086377317969903156500410669934183458807579033859321438861353629575754515903184438072223855682183469301854684846212205166567524716825246116383317594009737730705166647265388118992470421357073007237394464072922455525447809292405508843137473019994448145073901629389702997910808356594130193796659059490401766546612447917387093253019558512798555968513987200032762736359839063456903896330100041757616281361700481044247164206155949888914060404396223927412270451131538473027825434833513292164007835866351632692748340069503129605186973786026451156869408599201484524552766232747560434881695928913741102503878943894609325525858465737826627022683650545351443703173264098291419883302669964290710611817602736032311359465649106199694010598286981716975589861323566928084557555035385355622409871243264061141375829533593919089352127288968519482758326578651478776370570854293829354191962593843111094514534617642494350360861680857134421643218049094857978922206728023075694151292435970329922418782610603859534563848469203874135752129189304335927465502064678212043299551112146303896167188732266399048641143599931659558697841133292027296778083332146953719672129326548004156088311565424556590659730234448833949936522175798116772672195810942880216065365193177466655436755082916550986311150296878496087842440836364174928538026782814499953345778993942207794931132273080455338389724509128645902243868388053782536399735719909185450444205850159296132328819406475902342708514609099229894884477087860497055331126855982481151288027747600062043318355602549243444606311353023408843854236091883295447687422502348441297774025900139734005963098490522566168291679954442890710542627805948804189833405478703642195261092732006026392269631542777212837323537375644433350925437183132375174149195223056088824639607337216671397175891636116966179658651047899999494058938204466924024524103901297683340264630142012439392777383718761207303411358509254851969412039890892556363141622929610552850299692671967260765655702437811882896215199480771719828663228022132171364856000103176398071084966551566433817925576016292319476350039422341383030316200112370845786659306066896667104644373185574093570651048006016428562602930649436444550775806831524676683016075482645887739766720390007649619300351430705060727918631907234660019535300871738616576761427545903108802489163335582050459318062389507350141097276487368457041071027468384558849278192119484285820538206583798241912991651708751277614064806744831693728546832928931980366258754828650237134014842740714753143258251047849491271899728573805201923990154967421917938909138634850584355344371207619874604211434963719425483861427245571328190868786266481487078130438944277897549560910012056163253602556789227045602391582501183167154431540432631235010786698442135647795079254789821823397990470961872974813780494748600631978083162438738870488769429818587714313053502748309736578703447870473048819402314837075715129660427898257328873728576151466378655796506924572378323572507252274793248696289836775376101265249954672366070329410921997221326613676040511467663780916193935310515229313400021955040865837700466636208287813345470215116885576195024569563252539475685380175990751303785605402233116497828966468123443423679609204626545900465725538933749633734932189420509485927270693466534834398777014244328790176641919171039279197608680475615990221624610849628919842806909788574566693904836152093649878554661440361020448508839663756226644355652686203089215718427733694801326502689944411628481837145411791848282739657404442998548727309745240926615981522718038660532864146824851529004547233238464659184329406085398697946993531043303214676823370426467243308358667613469733489341572299679668911344013093967501489261564968966327042263025223528447654299133571752210929425847173837581469666857895957507767492087483290532879960072663967396402645823080093757817162707069763971100769129344816193384210714649806544316801078567623960006937182595802637131564826388779358711561269993588191574888906887882352302133659184101812937174189485917336977024545105410297172764850512102426188922949999757432429996323391787581427366069294124988172556112712199438377384064467993057038966795152343775164031029207478914306785303902872927738115349799248727754990717285835551204737847663858380496169839281376385079473785322096884181323264289366809126540630502626854274933816892121995604869028655900017175119514764855842676486101405537950305442103374590893673885672290657523549844908152148363057258132352423075928732142056363308306396876639355588007770300548084515190422588736684062639236447481115040933098743366161299631827900017397304326750135888467325500504892393656761937451692734720448632844622505051775806434662429133001905976475662827027890602224849462761403405084402628646881578768623291801670451452059046348092253159578038053116798899432963712406250573984408701147173240842479097445720668530107189035526381139769790276827613450098522013617638358427976895151777835785076001105535726999145922198727741342273754444742063668667448146096473932992522222157176672428044181906205257126506820261433434897075209942096229569725082307220537689909719780414255587574449723367674800680085356224922853505662271501561234128826645998951005859521740367903681360702347676376715427465311648874122097984893369352984717363756149086560087146776730117996520620625193648306235597287860980322677498906284780334114500228240241417208695747021682765580795103378713988928987903447309728434815653374379131527627484757546704489280657249280397165830312970027442070088247867592869881913730980834263089662029859622689273590837832514230129311180787922183614408437470636339723136023686308881445255691052544128846171698839772367127383119681762975988405633048740125428063334514051651589733407944494039785425093739825200582563359266661425259819615581960152692938337544904731146886100840178268582967980314563881369348973773517759706711870340225181418646790268497667134919844154507252748797604327645012801742494607629981817361303219370225866926412433317732351036636739447332166489120321872267180468024449653871166814749445438027753367002275484372596333063616440220452282989268917467631139763755063527383227691152337722288552967578724748613830206671071843258128612242987421880738424333219502898461714126956480124564350041145924323211997475262283411874902431423534149640735512011343985130417815235947049422794008150497567005767229503565509797070326453938905813868606542699816327184428362389746422809542781078177418300769354261822381698679736131215112051829362651628407243283730670228776837714163282087909804514287030668205400283643734605201695578448105503547569925054726498567290192704999026051370801752962878362172646928938254546988769155146981981072525354467735134473994513040034625706200270887267526878270414523868589230107471831068804549747270654878365464044445530868442637666371158741303894919291137329445168327872327438041684756111752985227031810248863039800777433970081707977153847570103894188951611066135683513006054852489628092726558286500985766811535183767899882012847420263339767717846803954802318175744887903794183975370671463452243544851733058707897987167126108266548037400683022039357607606381125085023642254921866233109424011450996908386290073415895809531868597607375064778657677424991074417927469270227913579979892658160911306337187369860336673272259416618317957213522270064122673028289187611038499620268318360729311019920226075154085530171652179903043076269914026601965115276934968832549374045556340924674105006299265796516018617926233501766621286908602232787185529990408809114938706511445442810867093479292882624838163987583956429318155770141367629636901184670680129985644528674543069054626510741995579513960845461377658848768860536837714331448858034621618238443873454485216563344693867962402068450634236032753394108983991751338392030388824842950291500727319932228812802003671387532481711601527520292906173308927114648909514377897329248521224329284675692954680745281414376111289302042879409342947579871442677141389477643558695773660909517640868040433739529044609315306243658488901633039586692104616121793387195490948119926066936751444542567081185531821741499610993055395376176554988986854635869882779566591300052407637655659126852230613739914965881955904562360704672192726036010667746012647308655344177470323976242893602720549488896538622456342954628268884322203815660087606933013457166648011145828780389447587092720471594835052051361280758947788671298995917267146666637081279070123673877047517334032837072830691322461310794122487680269891452038666726127869133348444247949486395423043812533708135663869884932995311361436385520038899070309406114495341685106886834528940046829633697791938062085496011033220693542780555760098009088318955379281562841190913801713234355593185817014698679736871696791754949798426343055740102458716288197304032613161462387792890948944605827557623165650685641792375534718322582315440306293293862581139614073410616090679150790222174894551689984580231534748866855252030143899901748714835822908258994560999983473871074879287035781989187286517556673700971559343129585751590083480442160484466471539343711396979536440340806305715260393342090291072592923164907592712119202728241495680322485106836194408514356297826335620775607972289954869207700457706988757796356517249126110678614832233887762133455927957588395902207430241852435438398568251374126087308724185748318594928875585504645009213325922331574668140392492871332778895313450205732286106766944726492059655430029284180094027864462927765251639054756451357091452255604887288604169928461040828848172831478008038881607380997514416865327141493788610253284453436669302974690297454345613845341508628634458035500986500996653715440676109221576904655205755536201107745889933932608437943454144514550765384647630349387266173051133335658450175188669115906199876722809191171218908108632474564936674847617366428238795469145635221457784085568785469742791963239860251042043286740187811360918896611669584510208634410593743095080151912301908573722944663614088825112030372665527982401678569584113067310310046143629676341533785901512103317565790905249680088950368102338510941279234465589070708038639495678762506230961732509005424921753145739968817762089164337481544071336699429989331137900484838651204282848580085219547278780789431142694029890905064552440595091721651278195834532598290468991002382312100403573511100189716205326826216126801084282094435637262391531557308686283700407674246518053514158555409732159766991842755937269349806647529085082439909895794623519048643598227185776683232557276122255493839285439685594550577634704024582749502539336532438394315677374869755668500259231728049627005541958312880463200681697848304664759781341402844955052938032415015957778160351822858598445184134161401309059134158595178063016475897270136864536032497652797540894832574044727464206815016497296779816919358419346050669158855357510821746688897201793352826633485195278689559828678209945320530449875091825010662150245682919646587086865403340411269088657663628193149238073523089991473933174845554210190116639693433358133335602943935265238859869219452099823147735700732931187360351732019556869781922106264139599997603445782127923352901870224197646707451572285551768633909975453503093924396080301578776294822630961025129039599378597037718392411018910372026153499207564307139883147153550074032928223733983814193228380647075763495601248618534347134432432827037648170256863808618536525396900090313913169829604216951115245893650345423892146277062618990511463132003847802176649376853938020747246439315009467320714074536313940741468895133441631480100022290954511756274070035777583323999969554374127274166960768106692074690421043324156577594864420460751716336391940744403094738289142009266049565862376082912559330117371474138792321560622090149328940133194538353406715029495769356568693118350430725591385181960156421707298486702311406644753177740505062319755619227018328696067842172406710000126314863028441945262414301937277235536941328323409950152323344268850922242231588341222036509237470073086109976693347707117416555298678072039212627488259308676646010820078976200485787360771606029206708584459382412920239600218232022652323729547445048527618451168040164789364591889920162268865318696302780617135202230001683387695097223328126524316545990214005005155416392046998931674050294081787348503454092059286486730164774053566297613881815668555404847174684065514167838003838320302348142933442118725107848514931521083004804235564553253297788943171338712250958810146746543936770818920327429878396048005319698622839511190758790015959136456359860315635469625719653049109316431537248057665881264949443569600000912948045078247278104190294852663101886383907611753337125487969550420072153668872759525623894808662693071965732285457418031948792313115548325678555042194904924716013009151293424619758048331847540201314099775062972933374653403829293994069523216552184718670959053166581546444678796268535768191996088121722236119317328524229934112779246736390124896087443560032474872250135438777595348777507799473262285773344926048959868665757403927007667977721757989160663574853844556196082109375619811814608281248319934286438686579526803720448711534023913292167989614997764873176906363158050730460412821555388213886321389819620094447852892523252597869729424768564429509157566030219124911159287178982714041529506824494815297340526218038836390676050558051885161983851021426351239019944848853578788463598180734551549717941911630727344080854926611717678179477371845077269420656376055508033690428008062217720663391988378839183039765567863090985011295967067951935691475338861560073915953447064960575066655562645146287985991286431575362353319692020237314292035653413757694773160048783624156062941083354749426036289196700856533559173962484803185322527302560966900035629605393453365834042248383929805113313682954846953411247808482429516488315781691649522813178683138780018765313488518296214913341526758664626095633286984409247554540408476566346491351509434563471323986874051579317099320489528249423506917810100576233993346272024719399978842826972836955363955460338527428456556914170393470284472561626821971688059501074064254636329980072578774506947886028353591894348860056583396587313547011964301308220882036908870918899054207066768138982364422256183406496299668521168327729529204116738272504810502396687354970317034040079548937294538060397266813726993694424235122908288872620893215653300794609421065287173289926821869346636434104638439196925716434694854717553128445895502453553972361689523201327081458948344157621195359351888763799163696464586679050385819304126321227048572747088484666072109893617010105626684891436880219070367775274667309507780598187348741009382237163777213605203227905569835368929934142162132599253929136729336150368803819308248341190850479484927202409366713779317388683091253335371293170281354570679539332790847940378236741022960031320442983977644853677720305109771238197718693328711224178754498893817576954221206728414137048264133417031556346647807889121086925759078944258881998678172737112427681665776462838280610244509988283964658720505627669110458176179703187379095181925026989555243947180354625665498352393687493786620148075129248667064725944983064212764103753285100053355738978261523278344860563663814014365703559027232524887541940743448640205886706890290737860917558978188345286545253114465047886228253954463040354157171135963070917284738571264383798718307559303098721690929945474748406362051600420848200772644324404628701942305486109440731403081674241529644173106145849001720443973502724473766670375073686660459128879126549732148398314681279250466648403781807081881184504590301857007634004237285596436740093499128827598610188556940425335809942769347826544623810078081689369649238211856107550738743815225126522526997980227277059984926578756669362859359297320026627909250693377023742794473745941890013998091211977300831196293030289973911401339833957423160793261960530159963342197978559615630412088771219271424477348505588545678161084730184291369859983777263977358477835613497386178720470475676469917817730657534993784071912747243506591287557249253569974003369886579470167731275279147370108272120872481423149758076691634862832663826787762565051411859900470161895092194024713946030016853819372456809868565761654654210939700904330082477644799903013570483423908328278001364276630621084724501916640306369184782003084795818198291383986815298671208245775978064635907556214620675840725021807236755923423933368236599522118714577105952182554451852649556822997538592892133256629082158998582840277532834324725978101688950630726585557493753389085095215421483484732894023958605399290283221854660933664353000733183274819855473916805776941397777465883118101993443771939881718997758111016855949276887097515193505409592741196684429010148268774972478868597875496803709373626187610729281076602529988128078319751438346676242221985276367000758833491644160447223523791347529860468559594152297444353370767629286174138150944406069858554320359696931904420022791626847029779523801666463982705049393641355578794636868654331918622236690723073377959739672027444608075272430396599112594477711413800119261273644070352163469542253467764731738927137688104101339726787699593152542188005347391079875870903763093117222359680007895842210058443152656220570234823880426057719436587818182065901519441541458415058123641240476179555648849773770436514263785145638173300550009884083960227556590164110300305956249563794369638157395953439850178435139035548079185467084283437360645670050524810622869624666974310885234186737528208803303136847296285862179104155398089379522769667740461522435575442149098548097441525467355046268346487910913131091122696270331846413125187684980487192234162948400382693964118038857985049549756921204183073960483365388111790226812135641849789486699184034506372097253603147470653941872454820333159662446190231501515829045545971342229193521447483931839598460094459078045187741206058592546683620477805659606231665733224393624718132932848200943322259585444498957199206247645330611638455231516161753491357800000500929998824943306407404857353397456464666885131971524086616270073265743996027315129915765646701924161912219516351009833819192476123308845083098768760562015826358073772486136933747626573743476262685602423922840067415788991929775131983261663215171079309828394571563299719173418611103425671396475889085785812515578072670084504377722965490450380777152183677811576408088853844551679899697974602568323808157560606792986611118902110500673497090380044507689678458183613777675708307480548217761012482399621030949294297088246399147808544318944511410662008250620268802092649375035512066275586897793151016786901791104560653370454436045039335549717593182096740825050538684469043059165056720090131003335332243016347566019719377919622622415643471797005637752449032500127329947665451614420983608586395381438108029448390564243908387522037035555110991652624747033745451668789158757143525943812142509417378829436026239914331123822389503757966660962389650065156097667613122664953313013231461823167143810263401064571474401810012450680415913247897915799878815256870701028110988495104439358107771642441283216908474373117530169984032408119006049897537813570408721895000772466558110314216908069483232220549150055841935332399489839896176065196920504054139845260761651605581548917702079200688971538242560245754228278085286253677635539748711279646254717267663966882046835928485413338147903809398415397742736192397370574077469094454395639485814748685849374600149609538768323571316868983062342002267053680738897656063950155133393806815339784940400554727323906267967647413052980384075468979811372275329793794164615789316700596837106256940329829358363501803272646773144389374498811591927563811844639076622491100187305481088073413819489924556798929683909262494940855156152654032633254646738696012665171120978727046406502042455888103735717250192078258065348753063472138006548646187409723495448839060255738156982006208883078535047371368625436754100226274886955111882033106435963037943140452417316913192051595926364259013819050086567700199258871796363619467690776512211096718255688523995965778573005694901125143512785761485794402044453598923319167787525035176301390170299340633669757604867954964871956923986357259374927259817281321277583300683423441401077771496532707601405731311150995529997698571293063952197300545493429800470667604890512809501839737539807590084248812254640023397848337507015320887426119141094032497403958048176655270007055349100775742202745805357539200209311379834472494801733526753932429022262386866248796294525610655068320561428696394412529204446618491532265788344776502908741129824242461904658169858054980273968174494014364185011461486528666482389955673082235025871538754372603806782447486182353500048776129334156752405203799789555201049887090791836731466773154272206054141172276609826355625846552805702676312415859529479908536711531414084868548881672197697919358175644231855361694491221659572455590814447205901409972017484367264782752490001218927194211749757198476875404657975074435608677400560341522454491242168970160824643735177126947494424367503622787049482009894932478326539328212142243338553804069792340970943150296909543780642993653288983344560716732870054058978624251270014127310257904456708530092179258783957628361190681946673547256279809610049051561341598508943362959589056162697619259837040207008414132264098110174304491782915643092703373793186769719809434514942891905930660445410227361379033831166799858960528689608170839917962401107205724900924180401370320200717957784194493656729409616862136033032373736886456369259954750581172996728465507987964159464576076953703999795784928013785920446395614385458941782965969843897142478822485539345091701671623364339671472486603084616639018227011776931408496836358206755635299558527676356493451082667800310461973398343289864050054348323627990602501540417612434915938079995096965807285009821126200691627336556917651385088904537549908257534690704389675203070614637062157189111292519154595117572863586438789839133223608754040547575375838979628057248174020387670076482062305748581275343853960842258870944329874465481023448973078635056377768424563291759457799902122481423192235398517006908657577506007450131509538439110912651127245636162401397556774067478171479499926168777079743292236550617805066390108293506866731174011891626078756861087747376220880799473711432804092767877341017127180733814060560719623739373943631621821437023280524573767377308546928670350784761777602055207742949936229318883802002355287957790530215796771190031957994682789593826132004874669970509736374805088071828876437826089765773024553505156493239821826463183578224340614880294902090145399355617853907739023192439471633633936403797999699818542063850921809642689725786726454515863694634191887573217498423611701508985462429338534949586926870091759844565346197866567899186573331138167281171882552918017676144664880794768160186354316067565570255650076270500646800374802725442957357778377000356860327278247436242056750661526073604388921151511133906484633700692213326126942774177438800352272602353448771055499386492352521891117597343413334516099452580135705240922151353331426301138732690425000202500580419381601127093292009653793456775142860372129234459931604001474914711044971039651943229550629383619312119773104351099617465847561031711738766304296184000509796357190497270732107936089882575778928584974101941015456664814962934853832939296071116438238920943382655605580753249634328935524373488254155084101022456666931990398069334205229377828411273899736042470714778274167552924675138730058498576215544515739709442660776138330386151769731295061034604694707363281064786739282126912847490801734821604399788226648333365647964952989127108387934250965449956037267921643026016359174371742772843272585496404954370731299048729205226981232162327955874934764359142340919151679005113900382505229594455839634627069527218783602573987274688395521751292978711277339514533086600221417705293368133719043125400740716484496968721492844071706075638813717119382536248298967208005642541466550177887714059502137012901331441012801324242804731807811693777056069308805495432647826979114692092503032113087773981227034825769801303411460347712449225588644689074441855438750119585616930888923303491609872106227859537680233241704222320542598971773976148565623621465067346983494288692338527892664371594152703975290855618815137317676830647481600412079385803563995206708168637866027111530033111472739169959925942860908848938575656607781967673851446817207923364039772144968579922779599912337873916944353885923344781535913454673945873528595405289082459795874175823813139429134996657009993821465689561393833885244154052747374556391191416172414066239849483226930704226158538048233257832076318861033714265900523445173457305489346059192314311494091875527465445781709430463471952316976763127710548800962521449220174803378506441728818088023350805608348261142492500298245345462144919542598208069742614584619342276364047132390117591473818826333900397659860716215412250950603238488573093547708425118677594644486805186350790116288552844353042334477446022750276163590216463681535034628785057381079816183515315539128214986540272614617297431305871002013535969738519408454175891154106444102108561862397476936073884797985620345421881807221966301004158771407396790615406701021667170483635397154534912594610224029219641503842924804221669848746864922282380617776009144532003494054250666486075128606933244267796426865507210769826984901931338138083878399362485567819732672768374695512893638646613462096328115155487445525958379399929434584008806990825545461495892953812075546200745046875349610430391695013702231470548806778823802433414517499030621511030675050863186682275634669436967909880023389622052558718878403571545533711260236557213664074602531162138836028500263062418537589535400316762540432498651861958985797516454390012973101099176653477081194071142065387185952947414634667717882010909997755246978153389578560594755816376012272102242992485011783286260308001120074244667698992290156014494224013902948598525029981019072828695593718988929306796414375159994159493381464734308456462369937381583305245966526209566030304498113368283727982296454754533083290125361009733276407956478080199207374306819612189095768945284286219949366674445412491543318420403614499313851171970872138917756929890323390948241456593660167310738829091593235375398295052088736232707885809812018959058641337189037713171776939192775333891930867041635992295232950384161108203655046376299044620999350612885421305939300107857838351792493379855741754972576804227937059584032234074219544121145506047744145434350195197985429220224346851287203153762154642849621651367796596021778725698895605828919843617062519694007608870792748635398982951321123814987618599890340889003779641757447814325318715063377697112816932456343822894786347112012936198630880404868594616415484347957281564863686810987256018222924708621844215975951927512894945822924081536363332685370967206193131488347032302358126544079920951366462165794295605586946673286886015145825456302397611359554065287396556518395594526367488315185563715447878247508427131125588543492912012044629536019714729809079624053899822344558240618351009490701019477656742273056984336595822947897072286123039353362068436969474815566787384581981382572904583949006093839549027140467836526073797640478053263325409319996370486440164915739680038511510089175984854531585401221883728694965702701316052586825770672021506164145521124675346400855172115440542362674729769532011209461574312885757189511425766997584946839019822835367548374439943963435334747827882630519945929199932535929015364806009617571355344351357057709661977518233820730490067408837548971879061306364708586587902656914847741815455638557366197272196536453759127509505372631055252488808438689243313626900200482880695898985445541078055083588794461633871893783472622183425111398176487720290409698128501027048858349536444327711423694143982288677445317315839091394755136309800015790587138329554273892043527752988658489408505792094742370022615707539716857220679475351110180092608027256002912758326906355016930665021467042745373233892478482824578828523274593084816043719046794602037797303521303402562083017881248154558797343910291997059506518465191674717927981181843961484473681886912522655460387666710044715835519867790201665427630811960540240064048345866718785471182628453775971689542908672744468326062224082613513771501684834000173181305973592862118319882832520754056037490277384680476118757850397348126557095044129478051945165992687257485961964910395162246402567664130569084112098875831681903035787148441745730361489412102723988352313498929436181951157159481571170495921239054316550994158290986024033016198504164726631028386589824960114927004181163758495203398817939370227035121358725359594245731637938848547673954641241026263377388644112343307299796611926743665683822673139421293604166347980262416451462721518396008002329411325968863267879384504397637524258689855185723887953498812577764075167452024195679722189794062687448013517190805924469534599343414571366379587068983460334823630358607104470123539773266824671206041969051076427312255823332266412432710160036918048074376335704232556177391660847927461961796694857336876451433011071565420986841976821615332896318306691420995466583012633840742212328600150721109220764682444190909913230989816968532891605317767663698364652808215058484032310955455918817502108562011617489469687940846181819030860303737704893228611295615061615177962310988589952070941902343397836754534773028577075753208651554455283661078981599935946300567394299052610496599783002208502609611400266585410050792738722651086707003792112287770414655954201111469461988350842130803348476593460458778633709270401430810012586495791684462785530649571966724904495934685669037816541307344595871387467756027676695549194576010799014808050051821494447409431820129086815861087339444073208576597569551378400600163234128768928079407913386725115356605853918792400655802535873396926112348308919810805164082283595163899658048035366509196874542733106376636387313731258879382217060370278400469904900061617615552871460056130048488061711544540046561051597542007656367427765459958499757616713291094466099042765608081771437439006413605214957819284608972924942795816623455991338627155221962487968266100381553869458186432738827313563793308779534842745590065041870565715163638234635178887546155425013834447874470831873866897012682070008133300309787759624336844059695328970673999550625200082522740591117970694004601199683089673277259096332352333623123206265620449805544126996358991828916897857698352167655039716160145971422016830683656752428785944982544723625612624900351071207983920109257573745298282281329642223327612172137100650881356035712343805089928978231185706641617213956032059592704878513686048395437759948718395097141014776693456533214747597317093207448654047174722091629134455554189936415332877987853768927319784498042490312964907179729656564871688293600113272843508940918946226832076780710374638804710514510225281775889636717231531321226268347667652332117849707841663337912368657975613045235975259529415406366494172299063288841150169701489491675985780762108214118668260959409501882120492729235882098074921209836328502718119032958712493167800939654936525635130901137071823922995643763604432338112781488052850548827662254483031124394268269337359021051103241608475761783700771481024906677340396248080107541923153946549619984612993568130287868429205613820811716354730483272929742434465717301783903044201552513857897700668858109683929536223423799696847571669279103563937182122784635447786846172257561518016809658242499773120151916173589080238303700132814219123733446444088717583905360659509883596018672373607891009271315380825280115508075669907914478959416213027242987905746076342196697423334977415755759207224178653605558273766907718592601439631749649161377826515429877924475117883344302344081026933324034054495163217790134469410555054737461169533148636517044960617845789558354606054012615514658045456457548328595248736106338895140963417724827135000805771320874629819593610199073127507615588919728599109981132106043994885702275554782280313622960935489283867706038285193952248348341076461030422573454318186733762181804061341892618300285575038406259033461914219860781291842415797928226513194551454817432422886947669509171851817278969093957646578381530435582865785368654304405480894424013090266497834402727096741412276983776359185397429972068022735499184218767519298804205733222629713439883995040084061737312412668375219412310443760175706335407886762839025907988470445369505015408835793598401277291542582789939564978240170441435759782024707741397556622457969966625640285550828543064627427502376002996863142591624921896504994487965388074543814711311738803213260735934579247193086573913257837089688082455830154654056082459866795402174372205078533714287378509937191190794108055718308782629248031359838244675268639268752700262743038330759946724021359195334859185197189048332270710528147317755429679033319339046639524627559574944950150447230189084966694289768320318385477024736335714541702500778216707951681865394528570882982282654788154891001670592724885064098723474701196684509882923537387647920416858446150040110088085274603652882104031409700042930610655616751643567120543276761539090725662505042282236169125091985172344490926308257232654194674807263570007155089573090206682042456588195621715170662954847263884321060592464294038877599032861164341570511381035982535722087476939139387474420958673834718165139038911291782235402304189060376114647693010752649449316188694402347212864270449020332267650393244967459555486560590725161086753194920894503622472744875852242111435268947623871442651866172895341288082506560695116644771819401214805413100229169685694775259263772984885331639483674608202179282901227778275921363910305564547344422811932183621372698348156897013606779221665454781916108357580084771080037566096853345687598756133738949380472094641273729271264096687218314542761461345601315798521593711880244838052591289840301505986736617741292434408422622637048688833707355320380848729053796590521546531384680787236578760457954167531225004296956880954633967092634924353815824091904157089696759789051072263858348548800520608180945731665037281611394497658951227676762674981303295182189102140859563057057767701707808110433572055509102214977410618762608147573721039353397177626474495894976338400436571212112763437241711262154183470151203120965171956964949412199767228505042922320386063912831077306788182456923210329687690994949676166396979742828140274955069593821585179614118937390845767338033594674753009524280177024945411073505742133232961963205472704825977761426249863208702282571676410440786223565106056409492980973617283815870616000581171689158211964024983560308745744270438998422815811303796596034828214971296440023422581994081592686117900823995156143556667670799847632036800645312246439627152351463974975743235396099721199763663532813737568601944272804371655040271205003145093142828735721810898113512354096330832525864467245588864827802912535110072490721847313916862247209547929281901586962228993510304540172527825534691692379463523833925856822163578973681478802889427519060632506671793570504033018268897196034866716497481250201869015391949766912756191354317597735835987188988178678929165121123481526516364096181029280990586161574384992612746596809562977594758125299199299207616131547607992638572443934157509323870017738359978960811646343616138829774111328637408293452011990993804400410705283804203111839952513504762346848717241945411244792710628784117149981841341019161116187704438288198457432911529451205812457981372754319544502074308837556353822934666795201160641898629466586120836438669154619354264720758142228053540526537967521065942573200676183558374960072173766613024098164527104306303153623194623099632523142911438423609243088125455248426334804003450097855391588076232391039499442505906565908327769092121534118900121907802780739677175498278688711175001613509426766496966221958742536696410919981683709665214539119426564668053652722240710694179663995363263410076961338610411240606182979235802249982945764208577311148290331808029953592730251670357015466154866825167309523453687624620071629337463586355449734050774448599992298620855854153692318217525023171241890879054905575936218294643742092617847911343088847123353999864632748718502765845061714368218052548686552490029294169891259445273413305418427649250733790400651903948145043195251571999402309554945475881690241892601822624568703994384601955305519026413177745755283182545022552514730723421906141337425139355314083067711478114440872123074317068646072130342612053228587520461527895130428411020071417425602793747189241715124486654320368527651180791717019617481173626791106104885563536229435893183482065138430712560866356245482835854416314411711048343755808827019040951382848655830785545939021698519273586772713944673681137658111274293692195245351729882867192408460517980262555814681573528393083472390133531239062568791510053553077866764219687557587757829997394104729434817025658972515657303090584729796948402684864207452557444319465388669482189015709792733437747164782477395642376605707761517188722691414807242194923332640391406119816453116527256054265154845666824159564203481356461661750279128474927844320616006115975060408919221348562631182317917511305794640925096230311856877058711557089456295922226227460751804207170848633185745107651458890181028745711288120301565979576297031698111881452953835888103945781556826073838932103657526887402217532471773352019015271280477965127910523504092346833287552799923751554998876366558296541509567735331396896833273853181644940475981042235872043077605340415174230030023951261184249563343559814820982439866156631607693832497872088116710397230935779835135342598622312550129521684263383598029499849774875080930438110782976299137865868386868458330192703039780684417960514466253445172990127223880909908057942284208631751563523176438960165361330135756708236292696400635981388894597739183392563958806664704825076819860872288517406209972878131363069064417400239719210169499346610430202992398173524012391828262202704307439103620495780263174815870236176561806832761460093190338947508105739253842599627452166964314571547252227842750037666663488741601183354957156667700468662111377304426687785261935570595935733062594165819957201104662404419836165797732483409063932491296667251881149916996136600028155306436135646320000942337880649181290788663394074257166023531197467362372096228630147119271168063973753636325965986689185430459646956278565796675285872675609169260743081825789955875528981913305780133145932221885188173204280254036338753305739773941516655577395990691352586791495882254833266657271425124395992540216459631127166752318524568424411240656308447480665304696494838761846589259054070841549849912930898036783326060246287775199351791815833788737517937355715731017977663472545317141447617753544729756459450196713338519371064392337868191740556322199127229019039708108273994611218951004479586883768366952123449394970483814525034641832237311025966463082570600001661565000050399407307375753065906063678314542351656435158202166415618035265492396797433041454083878574754749611262202897023132133367078208985318988640533333556077400770645362400790957954066455558207404281585955623980052024432121814336892727527954277667282441419609611932128341891356351813304366233144550690637642302928097188218686825127255227626001973149169948481677898250537754464509657387664115852207730293530707658380449600705574093993505882203548010722727662173746612442276396335267610916060864934088097153577413560947634807412247446381390267451778125174439920839210630489310639164370493726023223996877398061780890299573623549238488021990157785674611353733969054476969242788129051265804615935394260505851901709554129962001957217565654202397798708499398862254065685277374631821263849760014157966576083258127592144142167326780499595779766592538027421661570231694688283536342862197521624782083269328011202073998278933068089647714375970925277694447787500538869424790856147957914721798180811246423561744244836985916149310906612288659251754210764449418570857039280229315090710305406423702745481183823852350258474396001894881644451423499580472620812668121342993132691546190336296030496796837264097591924821365587408627750377011098281219957249422031584144634836515919391299805383904332733733159054727146433961076959915055023059714341072356814161850565277489719489975874702818461376712431537101642593498450780343689338759603743114820348233527744684686069800193167212144474175750674503872099697171985719694240995316496499492994379121086222737516821382063956012256399209245569999464802810037017095859323329055596768535775694836245839265733026949078453632019769889023623012197826055922333767317825341227851146883392051813596273522802531417778038435037481124097243893358892903297903552644034847513087982138497953920749917684405672650171712377422699231165536623657218413308566241273133851461660038991982664492303964706970889533251851462550077978345314378547992861796908026999850936691971800768831551499610286440159622939950837580689624983434272552941330795560382932344724221398944656015990504447107248049366500665973135818822164079393362912336496848658496270015942221621641244295135132929813791792899785731830888657383114493012983508736920403610731289209902162697855922897308644206370040019172838312780702130829791829054833878630330801930444250961508066057984450108382120521667538276259308610170733267570266707741185892774705970602792059245547889375871352174179551648436198193977151074544405412705247994975262640667431152570720990033976550942101183454538038319980216258812119080980075177551712091727728932299726087145813920844388676421070304236764975095582983383378702282174690832336184231502512426425493425854583792355967912528028006006372901069182709461099344735475399551730451244445486454580056964125455255572829013561541822365077543046886576452423202566453120225464616825043760464058092850320412238262354949910300582014824985605091514248721996353138686799120328689766514826919438122084588888398244515723771666337324225126608161969619975894262063317410434104973814372587128215252897394222484276039841528218650570776770309925132627596418961432087228707238297664194566943694606275571143042360063858025763003802221356256152091769858702889107272738921767032129301208625233266006755761719088826354602309109653732511156091412221784982621197125700401042917248225895200563563596428844911152398722917510570443558725278329134309978362007904456388665315107500624740277660556997988283165271266346815609157769472094764489998394588947132241122000999527632909179436327843195864172547269195327221650646514066208159358223737650249072331462076047111246108558888117853217396634545293219035578015375200022894327002658004897971392088202039322293870958081791747232414324174267819473787960631073079393917394961169725914882041942010050643100469422919854332301844703307184255217937203607182121655249334392104575263718970559901879760246619747478133139766223007450089606193238764139279732571452482541441533427219499985876670988735187084778293496999923558016097982432147190501395990890044031134649267689380043192445482015434553988373812736121401976257181272288748908809355109003063180803423504159194274506485194545290310356282792498795369649976746994177835576540375450112465996850360240781060995291509906676112459854350137669619487953227896729349255180360571783487295448860157430519243217267943418864869821768855964561044378095005456254707285186112479314162878253044841173688063864250168359844172807101084424068189716063455967404502591145467324674915109337755778468580298609877605528378349705260766819020572184114720939727470788396602961622071741521826090954350856149946715856092762598175176330336439746720589801145590894758479614774853568248690585711409463862940756335922968942670281009837575171204945224260833719224193118753217812846736758047861656598501993805103787673893658521158860092553228950499150656250365779738549353240691640423913672807758002303255628796341241608785304290443821783969309882581363084035538400778674122392329290933340570567038864311754037091063558010496170924114046525657506494998535234274231724224418803336158692477641239448839467021115724108027475895351777967998564947106631553778717500136853531160252417086290387489393969398688510473967801722856570117844941997432232890351126385297466640885657553856633063224910766140174674200178426518568203310357319337568381519571894904125398697277658467087041860062081904985376297003115516779129224884334581532090162923772723016985604127523690855853076267730913195557287506967036283529270728790143640044040124236814912752635595235821392962163794597033862143226192825352204630098218267251983006977882574317958936354587338029887974184738565910387814566700888682853180462231475347796979480069207125677818286306275117377173831363023812013319941500445972750858646517734328437605753400493703742048743543678801358611875803365457587611233149794126184207292049655470844963890571982056260895193850155398122965462173206234830253344840720885044667036187091101753543423689167705639387415668655219798603041638502051291577646745456213715585243126340072495027906170876322154376486752749696283612199805536061636812649701775740826406378938996162828075763124041658503542113324401633742756698566779140111146449151955291734550841522321316643000760834961288848271018314074566726643362360277439771182281736860046776052500336428974575960924208624672898956970247253948903300850716001470217654939405490690924137807534219871629291933499019871485067579995719125889392625229711652194632535026094076440670643465343806516122483669046843564247902089702567356816843420208002382265028136648141164573129845119652212126588292906208728174202454965785624138715426296142263637954247542120441220832480482471496851058518913136337175153242014592197399932110232361452469947998550526478781669946296621443960109558107337959671806929635530195274053548760448147627159417391769142468559980204731499392040290363845571777539428136104732168523388976286910114273376682089511652724331220707957138277500047030960109153146174274606532005457786680096539034820433086334384420071929218576246269901511750538458023056031894175312921198894734920701230348595206399459597436145516957396235567055370236426532197566540251294488857840301395773888062926592181791006306640250864631344480778653975471520457477809570742458447170862290606068374235606989762545198223023587103439626593879719122916659051506693338573956945778111690804234264970446812408946591116025467671228890043867384777991567117158561713298161411043809322632837920742256548897286489873991796158327187933745031240707527181588696751423115796670341863943719713503645919353394532585290384896034103006136128359783748596889404164609191581208821276902517553517708390873366953396579662612923421214054908664555035356469511877838062658076943719393299187132549588002452915729148455410886827103768798271642448198936857025285427223608358240563734786128289500785899799401139842774743573712378156361560023119513119444828455542541313006915383364334741498133050390662378517006121027545601103960630033166470169886771835667168611331576935076570722564220287326572680312121017816596411214483427342473865317729188217825694912925278769522653240608126034881283993924755493747247959661807374615124526396105915829496725833700838304281850551498814358741025293312268824010651352703551922651994577391353069616111410786822789210427244885019887562434141315631852352403096036622263395912918145805820292654938630673940898764413304479156176462697533699823076142620978898001345691353312089698573649703593969727721053840187555567893938991276821413456748974336612858630633283178471093790150847923900183541788904454209259212931911380804313595544434063226371831939867064793814694797192055324471063750615553620044261673717878723561403826294126058847413748581936371629294683624983660044327959236517445655282233029524766688254533743052689000106233575550795840319074378640606497889332644524542531875882821709699086250925600116843335228475995315087585844213581058426461025984389006130293697628650181279125941645200488019058263547289287665413032900086011812937196797137008777638469333451093864096443012285429158603176824312012392509743833597730675402930986014446075952898210404101140593646307801940265736067684325886792181026483978186781757904799264836206276565933910098943230825224197694878491105535358280072175753849473771920014470764754689243263070851789415713262264397457801641301150824874055561832592018134968998450349857308246031978555960756176042927440719287409247729952182526007291693239455170761861957759889292264437773944523684316808852974310379428184610092961315095340549475933433332112921959824229747930891121155709351216559477603314731041230489712103185588461432306315122027238235226948924560580919791838774299710788254119175025323062923671477760208309703614843703920882708958859222230864089976314824558833212097625121267426815590982004375623931852915582695129709579625857571929054835064983601690229695647655864815495291742802193583664565897832882815755226653429541151694311991696409817005579192985323872631743737114500282376807255854379503721720002875381206541153405679937999528269666872033143796729503104237732836714891980492638383393935641932592901737825902438771234325870637836297773627503008406599615361677210029008883915532407177164163707962109835990960317523066683905900259498430781073766739229299266221408744755297015686625882142960556217129049343966790167825627504276649081777907189077759076140675601217475205323838348585682428672033548388913970476645251420511325572592659991767448626433245216052406124151341211662005576688005096338218429449704390154205552681912249439119814985754525346068305074255239717313001097434595665168881362092964965089707892812763921109571913225675702466762361669273941941507403968807446005236765233291962365063964654091535144597384263998449482701366986301518472407764910193237692424707397201254041116077312779694143417570266772706433689868063771899516907699905869087480236668400238729218772360044151237207034713904928970791100988864588613962483795728311220313542068425565834636964674084207508667802988182598586164279374013597242997303332220364442442140210337264364242951512555063999480697986028838637069986145080220741534928050064987887174627256671900017663456346922688776119314543080057968762051236667100636907564978661858306341384696379856815283659794289315525455444598176940731206712615592158031977885644419467379351756041200173766978265928977197407322759026490664161941637163973851583130383253888551199835534089615473973877965232211044494782560845687964481682861303299640905427727541151693484690699352405335169787667239175169668158779819980192572928011018668461240419663327599993963431801142012797218132853400787029970298201068299763305987535737213369177006782296521556084889079682327702483174311712760405615325171798157958065175832099933922454463383697504626535589365742442146246127949296934914325895287224398813651022927562141936048306332989989888212710729249188127577286011247438247425213598734125085500449759753446857457948045344060918645220420726408504700036052792634869771599336070911727326585317653827173058661618689257666498326828230896286934679953331710766004188682718726877157928795904774907878482877063365183928269504213038103922885997316191088888494802514315509177585059464295431016000608949751901657247993482404358403004002377343978928006030909954534874864891275471738160637292048333822365736730374396279646289257310393432940063578303503989283854050573729453207115990004875798500214326316948297351743543545294038106257510830841145336824932781239108411071736858785789407298169381789972302458132762754540665782539054736715925537406004334094890927536442891595920375149295684128301400508877259927554322813639052646095619478651924193018922812587288587541331748323680224989499079681525116337371064393344186166325705398465924702237376054936179534943475807109690471719916497832446461597716477322234431063806505911090137269132900852338349358927877840797124787308461914689837592894830117251151485848093747255661892736673032070072373164691799429368237676787809277200901911941639788508747548329370735217035994162383758146841163188116300135225859604011851363624229374958858436347124057907041017158618171388680064530452768438932765198264905005861206836615379665605079923264050395514127100278139161180924981749463441763740418402324512957179502482915164306404451520312363388069818196751071011804275521603204438013296722129200816452790305657517495542217007695329694935466815751300347190685125104879598475469993739326028601007459733683027731458551455021948452106190904616352963421920677821478652908010305783123182501782578585106005518145602086467239727861555438698221619654313406860254031510668910373710414774346928743363051055706215034398384605014641827162953000170115926901925879106494338527266441755953186818755226411946855793698587629744338486542912451867006350482600754777960607053791794720975014921167090848259603199204735386886747753032471245290247278683757813199583470871717078609076458196601732964340893559534730232291699990446164178266370348629297834778052152267174313014457647004598074331254029500332087523277056676166985370098313605256803408582662203714003011272118220788146188221736850789585197010983090431227761894190099007198421797718643165766661222314087146303234183595129389584044059086085048182359319223499369032460465419585756108394114224320523649151636279437111949663626223188788851445934675332058067521964012870854844916383121360579967135561929897863504690881053370495792662683612161413380886793161068935032680869055267873912584746239420838604069645769876330996318017583322891936451648324470335217858441321353249174329616791296089763467225360895495612146800319666345956761840821129673165930300604703057309703068106349419468718808168432209657032914372862682731037131510142705734402597319717382509038385326064492654525694787143477651181748537634485006989784193447944216722195213535220391649104860056840610959932170474648512090474936272050751221343766815832419063525484036559878417150380797233170124252583570490879724407327731264820253918474652189630659785935267930854697009869299114662029807795824628311472642298994391722037500144610367054209117864437678942934059638336687524083329536676466548564181485931823624468698022056205526153725829383886956335032907882893695491866016790221254905344417522647011507235628026335223297935251310947547434200512905575952741125036671247830844981322447158478848136073581431905110938426566823155521935912221087822913529907271751017424803643485285604088795948298386323362182906610585786777651813001695569761390158657013331779567266325952447461155002605438533107038783902511951505961934022022620023301730540647684202914769254228415323170864063505288977433722783467633196295965804680902517926654563513114383173538013764366644638790153552442725321611264674928337543045982390662347393042399093279175944442054697407428037761005344074443788048801000922363603847297896703755861651099411630904869853876969892142408932343218572467684215882872078162309376416869943067089075557596544905069882617898332030601323034211203139576905169911211789337538059160042077704369507072118269898843929601953028150648961055535461461310618160277677523431705419166508125463900310844744544943610713199778901783165784232167138855688101227145211555811181074987925328749525563757629101050228946221009777612857229464141114925889948515092119184816553040500211991457146377849869666573889280554683416713199358908640127109168422062502816801159521216895209377856239937997153163429619909959206711934978165702039955617328878337541444328576479159561549215856902782000280336549713645647637826230702027230759580490676292415749571909942492341871320746316168055706141110169409552747879689010399289448501478870631128380135369121818300657941174530956369708242680386013281604320001686664252153822037771554153877080564839429378013156125477364634894169520019110073472412621844944704432093800566975945194214595899572356085196656271205322896506758805099537101852687857478939253468888704899752518005253398989859780615837062600220806143708922965949426332748313487341997594176675522424628948670123592894301159468699661407742805927758442090269890490391733143030876380533611825735869451300670153318143266132656851846010760247516810502336640770769324400954079937162943510861150488559339589250206016236462561203037383249094953157477702679148773030878939419174547412015261569278154838154052749293276861208223083975656896105163406299307925281035236553297350141254254225090037166690575277157592767711640989048918467592246689132410086839814271248730575237185437333578346089686764698705034514258312602810099190796449969796389738858585577551866053309220130618730909169228864063096322900931895270034862384543486173579136013111642730725207129661776161656489602148709803585379131272719721485638711948220977353654357806146147976865749831281162339993727720361572036907127194142104544112623825155301010943040245458134569240714143515522152075825593605400321100993232082922064870631637767012358061275185885479850420369048235337745815473870411988232201151324072927378841205372165310973336213352204450849832925119168503394221754910096206245174387692556174596973909477083465226086254103773583395184475060710064512067018639236578961416040414029439390713028013305840530375451762795475751217814296820730488407509191720720997237926172581651769079550584529104807331527326578778386604308666596010401636042704529279366028861109885025758238640303063462179713742269600284398226373341842153644753429592148165927861903574863969462448406653198086583524416429401129156520995225994567421554841105364829917414120600725062417180591614933654115999217997598589280059756053683372867960079842499425286147679405339073685398854447781263298663395859979087326834634283146988988098222408930127851668967583720072452057941189800494645530645732011873778807052480642830944347084448840112979187211615931293992112441899463607892706668508199958606082492893575945190802103774407180068556652594104685838186049698909289855401212277177138392540474726432524601116554153000395779195119936585128890913951890988166606095914090492656092906431275369978133207315789922500430242451480052789246699389405636188563545543225891188047343610835676346001200795277013871448275648114210624098608901499827730865223954347763478381256026704507452137429082132515133135430723658568195964794486256419025848532297118157831622786067085802988072223899066474443437748918398839945272373989343138816010173173731088239367206460461955826875762846387546685728288665870023437963453243251053820525450948457905110868038480808013324246639971124768249128710686333635788749347397540989263980060905469672743570515260016509444947073833261490876370881617613180291453324593554717192794605355288752812870194195052449017802930721356196105494976929051098946951007745593005483996859148791829173374143770849198044552737000449125961680002568602908620938841603726049284464631780130160714154141573939781505527939669517887684360025781299752740178771066390820276332535550667486397160061234401791411966115862657250853054166847374241601119566503439721683148086686947055177718804526956592947877007983331692543653360650087390135368237035019695702165895664487292413694335554150330426638792543559853620879901983726589604829540756570021299949774657382701993727235860134681249229652126436362207743680024024134409771855170692551395440290678651659177520323224547609427799601829207834815893519564467917691127366540733377184027170907679819926067467418149091055476354644007807856132713555688720483034048606828345457596760913321442687988881930616877464138833668364276866492434583826905805146365702339247828439425033826033753495856880287583188029556070618149541979806369602785161958091940663127798345323109301139447853831538806864086333493347040743910277242998607003820778080952468161063996037749470265497063899089115919969928523340424617870748277486286553854469115657527021566453802976130360648226612431552855252701813274482621835489196028266380240976403075549980038126491180647079216366833578543878177280295818444958079258512145825322401475013434495258531958501020883121922636091558769440532609519607367899913930783261118400370234764589238198060958837782849952970256482428321864274957041107449450791324135725668457141152441563196517159190256356725050214679334294183914683664712123919058676404286592317290713096139727280495018545145418105557924614621061482056366280291016830779533374221306651919009944693704836289851486458369431250211240221851187089701390839112679992691763669440932943722138047761919205086526425568276074341874351452207472543117247075964837780963851465414707544675259373467204535498505077887716709099991007505611912897784659273277525762467180207202285386132131654439079795968201744461389564011422055472241597505114577060500071512850609862043782160988884880154546532425645330016349680575273301636513498944959655533084065843969157940414132605024836815211260011890108075552768408031343050804742331628301458668254790655140078192807803145152766597992562856939928232181811436896349574786950174939800297641852315244259159925820873756084906892261973524963559790406708930196567250253018348410920680117544093513853204612221860069621069632174717720539359392468132702152773902827206175672051663862211303495390241866498907761550265106339960914484997532520004242686135141979220816750566781579322450786826372350140701951630828261293933482006468455952698825113467750512627252011938068569759829730805537632425056733639775260160024103481960222515803821697142597712849417144124888589512072077182630357146183321310741082587626825496892366179780752232734405818175964769582105599043692571097708039030754020246086039683389251877720930498562878604506161253926487302940959712700989786833775013337739584383675083546476964227739707954534374389398423495778477916341638815039361498017548546419986948170707772169170005930346311978236631094913748050190191625925174530831012035508269182263607420928274752076849152806732829564182168942795782682874344323829310119335113657773272605838982118219472964744084570536682842550233330163402205778345803078601915580250384673000047585249738752473809838320826062274304314942374443957111583705865149098924730742614808093444577836436931401710258266504197397232047802174663276446095473859207825008645940291602292092422694351264233467558659823437980354684652109235849105214386179854886104833603027018292230386472282191656254726746360023474250996223334142349545685563207336622525839689704553039254815406609819287907329416876671482771100320100286823389234694694515109691245576292357539346591864557467033727717896558909680678060895092657852891600203926773382895988006168613230921878639826402340906147086279301576373526060393549388432540071677534753468360261982239706503212782595438568905112824670155503696715023642730985677249357823594041399446945265363374141050821796050449206575515786290712323154944499636388460561271469148184661595860675869541292402613236135564462489171893042342263987747076753095549032757259585867831981137955296299647552901285384220291621608475385557611223263034611373446929807010226111471253043893895167163949941416959325900928708258440182144062666587318462930590045711930229028436831505504891871709214464361237224448545595426748675380432699301905511285378387716988046028050867504659203616927391356899502097268112628039331720557961140026991376328582014226823776874491032943088324576825654723494727955883690446776809830399129981765861497953829785362036137938595111429793607256670744131954200119208454277883814965952641301869991054545132225370094371732579795769773218742891472235717621498944200384564583983744227829729576536886147732371246418770800087280596418906375614125213485040128829385569389120508142462773763974269529944506213812969026906771545444560954349132577646443299419092317440402930164170663566524396329028112376337753865483950868751789568784543078691645683923834442206752616985774942369766655128437104489067677031444908602727406439290113894528357328086851830123798637476994626235877943516533788495121322026603274013163591395993055392324144517176276424929058301850239184676173711011752883018953721239412022646710996120304061724122481348499650259568676572148516190583867168164625327682431518511131949249111225129156480549466052010238300987669653457832446775843284258765737795494415370169646194299190274381935207672494227377455137309940108017400406082342111568779125865093615163842875503417288388584684730217899449487732407203371764154648377571841377754513961709729309704215505354200023769994389614919346790184688240176338002881502755119646731265754702121526681103767642089159801090659246001908664004605843321076366913157027711542220710177220857135513226024358833522730620402348860726627553867144232653371357144581745980803163786048503292880323782034197707004445622950762474084832619880604721569161417658775361025754080022551759362550792067606389593816340112208730990910552617163114136920118635484586067483946338922604578555328251631986354041438578846787148335028728391337040329575416679478140745964411193765322200589349824059247962289961170884731091077382763496230601994715659827537623682103082313823453074372328564009261384396595446859935160914639729844845748279654863572747683991841832887101901312754204753416213378178851333155478050668292247411935628297791477077335767531316313432860509033292905999778695519005855470472547939110625562309466924817253658941215854124668228445441189386343512221994614236699859987655392885820007283180317723765595842473455424815768322481974247970598084443845631969032623697111669758126194013751887899276039241454857823466669340740793977968722151065027046418647893733530753936104614366800258904533845451045756826722184402842443825223573411672855561480217986936306386763073592315426084870777308082780007381782771485571026549260910231221867215045477365628459315188849593634645761374139956797173541651684630531289320131670622873066908805790376821867073344273485991987030861066096325903580021758015466203190336874593673841768324381987954654521673816236808829581221787741867699024582267310735402129055184932132722084273063531885416970393537444496690903100431219147779071538259010681615120187679295032825151451877959833667226498532194389025833772908069820527962213535156744457255521443906818464225117843528988617494232164154532343615444097090716079489777121374708468393063736653603002217097267874418197105300816464470553152364102542639977931589806501427755474040516100567280134419775830192075242260726056930337136347867437110982388731521338906993068270859535233843421175252095023421306738136095053310295370286618944025879106960213014058535228195054989392558474001578039333266426414269647952487584851724438960835813009458656632665373239932123367677874166637377761682597305839143131247918927331169402247891248909421576661611362324464388531661145734904662401812378377265085200325872316687933762405198445588221153795661479518167010261985918340233986302385845147574940833607098027847263480136448632701030415297650141518478561069418571028975606590073042874160163010509317502821780714107607937900790154188148594309909440033677818444422572054414389772968017101886873466019401478562599157532768385682147831690561182892431570549755925170890300679315807118787927527119050449103293625067594694470433301437571112921607911342797482739174225848437746245927589152736213365834503709163070282922084537382165893256472021661937956226739093822291400638405099963142255037598936799060622669269305674101330586783461188241130630570714168846110177434246583494211400907016565841912087997746369355206088084608473746410888389617697352593492654294495604237123759964974849140009625859928036484944590973745374506216443744993334918908615187137960240908117905423525997861311751492975820667034757927755934340909496981705024002021388200170892712104877325309500655938327377817099592624882416751351082531888130045968935578181933641086199712309463214757888604777975983007481175587543568550638438210616811107135949487740915992878294134983533262837941661678591787587732990159454831434312543673553369874644583578334111653267730039968195744852350956240871110201297425308240033661551603033558884294963564026117191166542322089418398617989188235079348733471140420392573030036340089546445050526995377909858668029660125527899674439404081925528096318930300228695134740817767489278417253625416958415725907658846733908822745066671235266981403932032557523348371103396951157553659755937352000022100803598423175809541338821797633860212701083349622146655157847889235052525722124184273232522019604829442206488907921156199290739545012748833785700272537063736008224513281295269911610768553774958777377166359813692074933639717818808708139286207172346312161448699427192124027567679751752551490890614550829369125198812916697293799208609243816466598044084408081506542937984891078267995008509781709922012438405763628379589913590734670768020520722032859727567794985714278818552979557071467516174534127040241372077458046663588457273145171794455263026260709595172225498111988438687957306047402519857066301995119305482059324645814017949901571125176113627927399962267542686222097691092004563115236701652904498443430588580167547853989635541709900895074893436024030722677938219803680403463570619209096909107834088630196232303534886348251371081535361178307008319294419188878027252898007108608907387041413676799559916160950699598815390908730554214791625243512198082711351427058640832377673359869761084134418442020716674729568515672321642854028340815275240440202501104650398617314257271549539995062962926199114733504117076199929859667931281206616149785682594174338357616439918645499768502399866496435778916785939129580885006770317889080011622625621796626537467702556254844445824900588383684340051062392119684014715572363906327362786537551638012775285220992268544748126755397400126942729667349309669205840096165470163254299149492666325319763803252293823131070220359609845405466113195269019758534826556159354459691576140910049533030126610157929828416173714464103593538992668388577837450265779434867939420256540743238870111787047634452329700841760750346382882744314413408291639220248070365205475260115316886864802470108909684012715269387529211147519212694645953983843822985011193294708505174061670321561497141379844528535436396151052782115976050490067261201725004260535998756143989525699920816907170425318274047098733066962937999392158381580272726669570136088886989080015969916784466297105366487143237074689303308808126724595937635833880562629988155376790264131571641986787555395854689714744914366297249156090090145591351838352476689400386699839707072581679317255455079949686760790516090441636501413500217615336385582225977732166642821981506116644490043275476053158842338696130605903097652012034327768401073246306575919032215888809558760668154627844884063466650301606967519541679826819254051051953339992400712001538758913626914850860895575044438661584915932584670918352641947596158835039091252439023769967357833534217581894683012879527201293731817996091357735028699526073442389349495580660820764944717555749035349152835788230080820075362018726214555576892201211708859659387969443958177268346334655653847196717140378004478142541767133059912070789827358548291206447945328364466813596085890898565053758276034302063273534092144758050889662952819902472271294248207694815667864864564833917809863844865666517348346809386346778190819533391752136795301757040519674160996432312547370055212918442158236715028146421908788876857249429038960056864775069579129669310064743939013627577029218340791861074777837382536638914835892319050693925675152631125141260649406330759703226990111127198982968905856783818805505001007165015202487571565015817303271537641756200217080160388458656590573905617747909067493835950867789597187943293599563859550315820614039518977856776255213406283338565685256947018188484982180471244009234707149426439926960248801689569922030629266285877005474413544705079203347075135936269809157610405285110520121412848118462499905625857830385347222144954567284158588367294863000391578245048387496612717436786919517286736685792745710157058980874237858357891169680393811568803515671010778886284484950069896190513069457260448668785301649935207322876935987896677814452380474446675785359707939775618003621076976115605274107271019549172737937803747339582305369095242363295941477631887924419311096384467145600437323822895722045173613135853126908974997887437835178143584224510136074451348069286841321043890346725700433047432030351025723735297642788573202858526169007612993059325913265913278706642067950382566041662617494498240422415336174159744082535844050824523247656620914503314885676565612857712877124119346785235725008797417783592569496403903353495105158497374249763071270669172673181643559536488450940922704649264131951292821055560560538696220324720378133890549216113671792201356456563048976565840090758635971585445190804289933542799914274982538866659624242410099932676760801061712000914334964926991410575375845168602844155246545488179823526594067766434031170462401446922153074433923387898044201528044685705953072053100309503061232129886483934551765165135998968440054654778643062227825443947472881010362434517073247410624645816574807960071859498746894076362029225094935216735579681471145265269285137061078036451294794296128765234120774397276592573085227001841947340623222956810582341636346163966434202808618373715481116630290650213324837486747048744887723296587603329484067068818890845236205379342876205910042321062200860102907031660407374191801198827002560568601557594393161212415374639917068609344658063350621249019051843592697303705612302793143170314559599374240197832785858722588857319241446472612009360447589978559769247089096963115726147392736089462530993956346246166389563197696977653834197755970914959219508534501113109908020810044738247202517270361701493619278901695713764574370997250296162755259312575707372558887665845066123532651997151651052765548596053688797742588299249997796389437985401859763940781494541606756274684581148423799960531444971399491303104485671535774637273756198279713828086013718183407434539567334291652978672448669902895231631295939141692294172042663472945329368369557768130357370388127024658077415086770947151126666434643542045265609220364874981695220816985199675665115852759500288024078307113031090514444489355088040354488096852124572271443081011007944225253461386985707250812548706930963697835444145537052094023859340465750398968808862582170380503931754004266847918489089030665936042163018244983473381863376332044427425111176700939743309992376726073951467488635617667635525097797104598333136640398360745286270524957842247459413852625831538477060264786587301447297135262587825673995601718354267605463574579714713505797913044872161328545668656248630066474675985480440920088575348645962692685859479927961741455398799888561284888029300118106353933502139433295381988889623200735045940365751460949114998158264861881843043841088129561989555512221187355372665809905103895883256584376960738600184184646054920840699542730558250808459815169384343192669280150700028967980052429983694063706134185895347599206994923254483859299118199258807572052863943506385938898739454345603478463692340644269578031801233777256296622971933217766245844521177117223489926077565316784977845863410098436272852638880430839156117598243000300046703293930311287193622354915458182995190165442423989975311676829311433756012285758496100123481702968970406207574143946688073891947649353954408433197418160620673762441858414180090334730980232374136589103746476624434711714904609956412616604057945607864312683471112501785061823710040219390588429973227770903403096382806726153389649752939374346561232563113286423457942715494136815346748443175785871275100852706067847217012945553447998343476905558885924021671905430485575245661660073259709957612778292936409779712658423183873571491030570908482727797159521417851499384955077257487946921903196583979602938794142067357835386630059918738375290409054713306179000856364105499965402578485727436640044693917094703229282392806216963753656883266432731740017486994688307002317249518559662787272861933479810082061872249832488347635348490058043437757863810984078992257476854240574751913235005163747291378613382950033347497670820099504498987107062073342291756956843677336111368031835801415087697519253831423441957841432756454019164678618259235844587538369268964780957938693311918457792202733163587372156612906907172305633680510403676883387173337021853155916460204528863743204825836644375177584570996653104376625418758842895211764018920886751353529210036690345236795034062616266137428849168829209014061938716006202319849596905155451396594341098046107670978842246024203291166194776682647306533590384793443343398501566651806538226077181387207790781286488778917233628840206601404493577509364964258772317006534051082986445664921552250812924272616554930430182941366980448472059896366621123396993507684072405429717052883964217460053490780453826058171168507735737274221244083712605995834658144383202139123318717594256192757273211903132868620566947131196423355469021673463098051042539487826959203755781475949301111824827918642894010733309801824049761849402760202648415202647569834070741668383025993779854755725641732307845684001212904983933346120076918398459902273057475389952318089225264563207929067583972954908308606966435942261787738662086393058221590158624641754729971299971558873540915220297188177882033454110548930482579111218093367125278065662719449457399427850630097710403436490998745483193907831384659180391378897215111158201338633867117822472307479202345507892118359068655103631228023743002302087427597531495758737268486875761173638703278464778838811666169550412462270162484834014033466270398482272675612316813185470652053622497854124582864322549206280458019158152965927486697406991789679836651199370441919839293849292335603355644954572725211038478754167831555842592869025400301451275911090010676934830745630666503637139934672174110469722509548536162377287221084019593840610448469792550903162322259336992263115143767510276887731925133957788004392672741872465513051593620224633384868569770794691679612413992307509379905083809848501057239590658746113050484441615233704970294231424348255271479720430309563259712177445828288930244186201817618392485453753941231566133451445954759678798431598499834136676635655413043917383974115603682467755877916464256911158911768753776080245597658198066675583223749914544231433659772327833979996853402443732651505058487064585449858127842201237786541808750066038558602664191446971985056199822720918173077543078865648414865117710084811819830369419389268875940905839202344330991918379389351808121446361137408517524901106992833819024606272710119275841064733370326607539345744024938445879202184208116745362756157939502967437689446931426895270644559968222998194716940103689803910089564218464235524169556327865123663002071311449389972485033950523974708277985552615005615997783550763793504803334064811585941708954813368676725796461216769026067104707764483658015931440518354895441442672278134650222061326623060001176844555199609327309608910691835403141635749909361291770116959476146325407988067974693221806320554312541225440445128235913693073677177812447191030953296880072635060122193394857815420247250284711520702862702961561003123501920392989958557312288079729343834056119688304053911058051001729556553033609522666515453644404604526716882892211306602655844019110518227248083060444234859544711024212895839155596568322459244442246538342701399508577994186357245681950425156238203763354592629448093825260878981026003936776403959123568484934795866324071938470733599891658631584035366742603954946150579441392062964119370406899317353337830697289761028856837516618178414229834177317798369501181855326652268940655393105757617585252314389385853680591070315889193592412240284337791381945380689650223767994526344670385935914785118201234823160008182661375506071301880298857586623305732800964258009838084002287486588331038477856703678084819252806998264232835495656500316995417862520885592609026818091762902945117944626408790308560345506982968122953545153967492143873631827215365284282092814480712633507738240144361109179350201892707836298651091426661876927865281063416660826039885053232172461249601411810049785660457645009138898686469912613257074357618283096955612214642461338955542382406385686685138144235130471650655633918498104483821014375874457343694879376066211513603273443258036915263513062632340668830780436896817043536745227634409238885252702352804437985650107720109133962376703349977229326804088681151063733481353536087839713821348740256484297513328819076391217419899113260396387502118986147979497149390124256957534159509206391430996164130552732513541222001006670144697970453677828238947715568565288570187668210018390595995648100759678752205516469176875783711536134221518332191744913126248624301147378904756284093244007422912903241862919565133050249090452532397737084133338187207504952830944793241752767128367859958361056490992966384831366587302457694565805951954481697967441134114503752254519187819262283170753272563863711967006832969105467570691275494930692950727884166506637982044885562579058439305918560314399200950118360319798877738034126796995845136374483467381147781020674209469294845627079752186715319976561811506167089656473051892154318779545405785861973879074205401317547341946029389074391211039530055007584249830417352124132709645187667785513798885307962116727247432230822008946724279031898356566612898567296588278539999924936873161123047617511903407249934031357863322779539692733205652006535385878735132597539294613539623640249995057607589222405911399887037971742432632472063069641868419528257516648777037240883264609973606676074976229871934536656487641309112602632951602208926122020416849734249615102327995951704744016751215294057494364632008999769468700641393637693589697814750413205409866924222688462973367034979152392842862829186288271002108923165204153475045017589394106598226213768692030084996911695312290678147992081924426093063795298863818064882073254229009223673325274618170895568174644928797523024953860317013219672109861542583118612272854029411850718352627284373045143886057813948852244440776092092042441261951742679176294158899138738201636623894725575608551336544466061940854520953214178011921935518692600586083424372827607204676814469804802660701236358426633925071951457123634143229846264225792291310592504485348044041914506643735276616367192767580628617711372730170911433442317560811152601720809502061737486135374589850540877600521997735067323089362576146628458689761955262897383987741509285868709181171568875245548689316104335869990520071697341242835908829666782566878518354717108148581421428181200340676366943646661592944407234535185757930372339643387476536581475907218321288366963227235343885639438614768803147981404999238952361767185606883573105027851870092778257690485208181557062379275547930930157479157723453954832689397179629181778896421348287299036450285508430416566334030801032045218609264799988348454342127199268045540658742587653389056925765433610370380575535085244153916481649749402619176533191929242090938637505554342912010154089925747297635580351419762413109663307276854427222738913230584238911484185427650864835719859515693520097072581977804131163252379412531709843163139303669398810671283003568648856517503019175239340306801918282360355014143642879507593565928222062644579039725013604907174506839433576213889415510760614063655722164980912802432076718059245385486530625002115873974404309541536718501003591536304211192448458972772153841302164035812091589220387202022253744351111972495076474017187429928182215862713275436703004956145582684925038675254081764130597515169768956263980696039300071672781581003033526868436481197893468962573577607966905434526515301732501230910513022861853744742962517103027200514714661510608754783267573154212259868873533772285444330430575811128967462442922552698260472789156074589231529179292487055004313772476248367764807502060915248119431836822978592710358661168952269189320296749842726320059983468435782789113782802827051954518664775514679437653691751232920376502261133188586789045259761181951363781046506149950515182797829021850352919950648949965917599211061478103961257910362785661549269611612209304775349551871051268576882290517850826627387030229496786184598674090338376463614922398280246621530337609070222536080328837901820254059752573962891232030489029589483203336418929708078701817976891219998818994363745311135112691601373321408666289153762911055713611629131748348612584723203370044350880287423463747467477231442595872295838011094601065503027604607418832103391240608342514988912837819985553485818301852508198570632187322880492355608260285231444683293810371220099618723378424641199440397041704251876558131183157060382707620353865307889954128484057761296412136400758739780613872887930199674673974259905288278890901289857117807015648003674400397525268511337219373156890883100563918817963331812326026949363073033906291609331679693708975772512641940589568077984167114208488484695307605324988398366076217040355557669295276919769784404603020926809240918755258778082282911260557061958482259475258932135037152467637800203031228927437880688176899025555795992403342197783253843776207258895843927194898931324504862405698438325999698377454792441432495971415549392609584521250906317829151569466940062259688479332468698091811386457956597266088688972864819249629393693510319542547578287944065151980868217414082704826688677470882714679413605813864029881558561204543355801293565065508069129046163375839420196612778348514976736488330256589874757354127188897652681755639589494601489474229296202516237395710261644703539803783793903907556086940410099527232455390461644315235619612671459727982617115406802787135430097748695483795489282177921396304456414807806789183756938458253720777236784977747652543704499027515154317858944447869224957064222915140801423727780993440604451688761601156493522403380525087961989364561684327938956572039561895611232146678210894732580020840941066745835517378132566027158667027153341503655985218284486724062724050071131852242378351315144219073719375263508312253842378544635218997447620433067254008707267855073534908995697759938497463635488002614294324861450270349630717337113804126334306033412213487227716875588416243895888196107964908275838461112475836380131285017997661025475746309566135818869937863838047950417072654927938994104885962868218141331155875499646359238085294227210915446492007919790198500688142339182272246060366041515424473931736289049747602040163408254683386122199607057791157615155334221436525736982705114064216007886923305433952490850704729720424939672078961375662584809764417719059053358005227434845895755844084059027568152037057419187229617360146616051746790258587530817566123169580865380834518947509790309132440637194645355537201752863169978412238107819214516852480856764861891126063794734508516208126531012318848293992827809756911590849859389647426791188944733946170626071126795635707992841520314526464453694608876624799053605531283765433616558952261877008233171534302991456779602333628138387235962454991664113106295666387723757050627156209508982691194099560559755012967029503031286435386612964931716189291438078071603827557824160834059730497592912806630187456676439514591748896953322243951296174103167217338986222069158428754234305572400446577655181428350853314997239732130660722833252577103212183181812695991495619688488215274296639747459751009236642752745895861658458235081553371995460140288112798130982690420970350626237686634288777373901379116470982273897053276759346850245269108547642037460862930016498479861361869540726385725359082204079073721742434556127477205498114308241351139556424311256342423195055337832925504268671213621464094101475890767901113715605825431756632773063577824310123632203947499758637032049475464488507942446301027751136005594921236332651590896236476161287154636480351882032640852810236691575053540168112083260620527898320681060097485097539600277203471050813467570710793112072752968275469177678037267403051495946670719761457551883754398243437318487476053397905177071328787865530634890021283235087792122105553792353165944967513018916189260037577820323668449547744301056588718164212676131601834691005265577114225214451101870806969535354707260242979442336308405789038659275263991240429302661063822551441987179077745325869923044428123823663471622754474512089802188850315489012289238623169373150991482121940093108241365222030265482210311283316310104748109281084566531188707838795599953311196143720493894205136164123410013097690125657662960389810926581769223239874001229008641208176913681915042368083906695391662430809107346932687924291231723007818705724768358621471980841831923908309636677060609913428947015604615725047145380678055465119554359353261653089172025070311553189780830964404156875070307328676138751781913618178678978252523349769353796576910175120451161246960843907883928103181013761542238636661045503751317698003080059116888784393844674994267886693264516972047184364481202350784245544046281663220010407155802911950162784488063064984928133191367482269125605020646214500396273486875543872357906422931370266929743349596184294112901218030328816467964685350868652007567567967182288946789910201952857982407374349581569077061850641210956836077487661513208852988594538366152803936302171246880260691683482883190110006779416380381615198609307651276762038340675605606382676448380939196239244376252935080884260671399860471096409164396694927544999928714857443806133155287646091518495043605677074233209596999265901789974061801250519461358048143102589156702151004224582625324062421817208494662934160814728203422647437296389197894732736719864115394311239896290080018309953168225198122701388263597580959187241856948747006280353649163352353814250282177720721920941763498322089936578009184526023464136181102688965713077717761562607503054733763713064524158532952394391211472375932397350647312212831114442078277036415898330380464287060528499471518852824572393154328844908315741295818530955055559343678849086739206158922084651933169081465020826001126698670088788889648826168021727119483601325303425319278381200141295403920636751776871649617191849030232506593041591819022899659299137783798730778441120838466606913753430260945743016408069455731144556992491242802282345258403822425630198278690976247494409647546666661707167393152466499510798657850312270104417546232162766160603674873875820648203942616577968040092463891048387758639692344328572662423489862104558546794484495699018491230496815017798527941550971835941852163920448315713750233216832464810874696182856061392859006428296769194066583966940350810271234187183812615631880933170238185998107168720589886793054593735074433356376331190602268311165944812205763305111530356539427127643603312024454109143149109880805541387941190335106906046523537113061914452565891481063154977209422176536502022100054379053141327472089267227827352641562611249239212703815591868909941725269076841496173513562727848016647640225444972720439258935446319304429085077223790127323156424405772312238088861203652227160519468259803126882354050171465262559792451704993189820645144853190366616618373439172983894083299351898434327192493227070690039795771269094787394342451964018249771570244129647382130098310619875003555281985772751677665266157917326643572743159648229848509726833585196610989393492871906971988518027941675160721364723407652724158290956440511892496044070740484006305346821885284252248511096048125553162812242296849183164949611543592129371478725640916880834633301683184028431224960991934547653923191245486298055365083191381702699377476873746716569220766467473987206445265370376722462466343475558503739389464922245853582934252005693085741674910213733827513217864516395771454282320630092644652936241923868497154800194587265941226693780663291823986194745546018395708974273767142123753258881368943224397300534841335801849857116174039638033879374793238131201928270523022395392555451056463623125826418044326242142195363079691049979611327514827333080397931786699643022458161506955332068401383362952790976439086444532318087041871236070065755777232352014374088308932581936562521726643861933344609784506710132573510483910218182973031673192627428786504824104323884717860869965203171886701257261656698040498995250162431523180480069655570637350091841813877518057012302954199466223721496683749530447214765420005968036899084074085713931729307420112853760492296329676537016858324337524358497368905396331496246720006938399745679675624787393731993887196225010348432328486460409203487036472439927601937402560290314669288722002309276056243620116858384276496071800675609459776982122459476406619651064697041604762212240458332524436915493948173945339828579110561920352299689067521435283719386161901225079490219268999679873906863977894780439920470067270575462890255964627929165895959441057061045559742643237817480787961769081607594476730632289937580912922260135041311288418481593943243994184747495709480477956245301101734745578859589247955094180239381676516563726541171556097913939876459761789972370532388732396115448721104635596242170965270258710970909133205360784490704862407612674121933359599639524126845238622293982303903771520513756451365168421058397856644711118724935413699855724768879437182097443942000977892426185522238011340487783106473970499301124288443986520245474445619637283526746724916432547400759010382435685502200767180276516327084653410578085997644617822168503033321043348868744519135924151616168342153034593041945353450449314873443166110578764189894928536557420184188621155683767864290716794618755556595497606270073194036161191191646132421625941850419832842283670216766173140280486470325784589268915438048402384424250421793297923927240362910711658857350519828541236212514000151273086086001351131612772006102560143168864452611098425945431766463593980569769070081885164134461566491742229524136765406377856994011185618887825161041245641494762008751528615205220583356656634036013624354415904957235983171353967884247758001647025114974564284362905168866973525410719345083766997739390248256898095531028815447505680480830539450722035107974788507670852769202744234953971264168153333248938657061584400224663751330363297738848092161260569703950832838353149314632123452165414824079829766909447550881352320238170960053815914465532672694319766863949231562440805488487741780379643911538563493232468146573495883233984921140764020874280143276739420342811047092026376440399833629640907444676280915979111354985911511333177123193584811880300523797728049137782846699213187845493856988844601233132216126325747714493735471441745960919885433592127692277732405188296770225232111860043791856247396133389094176434758126201324089203452993706253679707585377114368599920761655460725830337729863735363028453511827701270323961023364462196573939544875347673054674469177387581785849124455114127209971072482111295926881636796080032041718160015917570936125678896220009338012477875508914515480328734797379687092726649670553729653384205943295450432823091516903362150629287238955092345697466077046716024249541638602202327615111485278270689908081401840982093302940266413247795661690029664674885326296387141064208988490506616820176076520237497732002341966485775907473294050867283895688025163845895507620318968131450497519991922909606847964333432432366662017432455315169294049636709621109494348779913240514287031756177822805480791178010368110042662574081559621652545447918972875884785069548465262452002288595075609771727528161836613664724825457334739488970297935069600184186704639901204551396532531055051867062884641129697393792081051549789604240219009989231190356282134399297324079411727334748357269081703719409294015341403501689992844088185992922909104830903348276450015807654033716050584774436061216278186256988019533041359995037506631192093564833107878694194045384311262099281551821600613796828403218852514904563274875133081645264021917219483609043795945933912982476739137615579075359390362649564475531071806900969537104955193232904717766784942959384465683584478894662314787847311340130217139455024491871972206527180636180796005217524562155812356761631578132641092415416620722730383040780845225665597001530407551758434026440750392693152787780506950734158302759825611886556752315176581058800424861515568003863929653642190590316853967480909835740207686113985093499985418879758834902330173834022642992727377618092536313656339935511425477323624166895658697376663213603469365173030095698202903907122836807424766303550977839941650788568391546251291302561617342172815190331734877232384088986158761847017834585846758092625625462882540181036833621228728499036183455777175030221497255210005219674807049324182619320537883218476873490238690246691025452733522737146261220742660181534434707524321816557886526833175766970878705408272626810972077594635748849284197127467454459966606946745616785303619826945010987339070138652571529409163795505489513821204012808100853656389001424785144470477107329010403900287398578669632645602226773669818465555658044507739340199537791653353212954384031998610203805039187218454566580943280309897984980331200923335739036735207320608082740819770890805405126976730638699439132039243877490413248250986672944366477493354623198193403718146322746681002770210963827326913476358654407628214422569565565577873099087499878110947135191584807718163191199147705330275884555384111456474944340016648478836009618516514315069707651831395597401188543441393884153664339134560965989765558599908187971902204873733349500678189938542121821167954257647970042957579829086761951800708775780356093320630564385586688297180996436731810959484073660624177589349647406863963033576070883351999659805453379388160841522724045881006472749569185716733270701361150531138254792237498158348641753397749099072971847177450074376253014896323624121097743300322688103836134383194302053934103535902588099627947451446370215116101053420497348878553852541584793946483364984545547133795788974329687865830820276561812734954895325907185685805427155551078718655464306575008129770033331985228556995047692558919564022468103220355092088560491978803046960766931044591011605520394825598822654234734383148673762024691152234908872825060902517812125351648025978793692876343790343732310493469722614913457277927425728607604944523304151798993056261564221332139304398552111073716009090401373232762288037512694318578713065070622696888545230650169079576340623149017051445521816241909561921138768129092713203848245057869215629685321061610318208095945918836606715032222630386869175464826036129772842198801332141469452736811413201677782300983673203456112122234547888353245996622168651754215422196555924958310168492695175012475973457465982727124963410652033663314579002255453400662581865477453385344054864080309096012554879752795798401242745323927796205632200356401412754230308957379510170232549549366801842943626164744497426300988536510433811691988059585959018155506085179332426896991360060042385016909527477600518835211914639075322072441826288298678763119129309208726836171144768464693637586285276623581645571049253656340561233884718042693327635095345083179753774948120267519003186479430012220867577271614215268278364972498553284148769389307260541237675054462991807785262788896019832236505277341876683238628588674622420162777992805017473932001686767934969515535470136057005694426584345655703427162502011951282505987977189917550943133276550790917243461648694470595556374480920913461943388305491223519050577327449495320278645470895542557243200367698147243740755155931149738710982306161386019000363053122275062854225118081496257744242762158878036632050428393298368644784516858169786928380892177310392678457405973937490063056759290661750683456620110572563846517704875096419402950111067235879063365162002858853370314470234841859010546778520170150736509182107348876737220289629114865495380399124028691750202345075114582801503838036548218617455460920772586566277484602027095831640998688126564840397305052946438574073527190933440974128200933333810633010148362802392442706578122982995388070788471108502775862647979256302965309802102041753086023466151031850926714249075948834055853658572657163696106507404875490083965469459250963253915590727009488238220124261566666030177113375228984873349565783898258037358821180068492437037786711167852604056754865153116036043708937234998490154898197389853550016175016821752434291588232116995159911246855029425992717231852039221726393325491001658871916780576328731988968210293659861241641633059578560974032113217072172471041493396018537787473176325539293703356540418618535972270114793971482917919017404866628895592090292975764310796086984537347680095935957547982931496015162582206441176810467621582329981475979084795477822992625824078876131810060149963929182072637378068319809731087244652614272058402876991098727809514922123211789888901519106678853893832581155421126405997069259415061590759388855310227339065083734868493880586070942028748386584744006830733618399563479897288178036427016151261887022948384322545353059219483089255948081653238291503666359356071364148855547978958405964232044219883451843876252781811431455725188153870261428929018775417324941484527110627459201753730571260796720881950832313208566330151846683795112620242978451673535128407854820089035188494739358183431690908952824051816497455380844993861002419325754347236321384033112365139726890785020644582244613560060389310624744902273856157812569829423737740478385376265564986384163222065898786583717379531472897300025016448329315562643169985339291436636216570769734793012431490378677750412482196341247407098965170879750021269190919944385894650619196122086736016579365366790953959160958753757158188619222580368351790167918794740267930918488558765066733013455522999685894198610477391452528535713532506070084813073356929693852797202976782280244789249108851495746327849912633610274949512515026803090813179622908923167187226053140773130937733861307425778440580543917372096137769539280812117386869527314866997866682136561495375127758837484266601045462139833939830334199015043395638467720556084173469878060186656548347804435722378535046428407860818316682448203467629684013368368737837883263725337523128473635596021506130981315658405018820846636211107775457168394279211494671230732040107281671857410142046248237663242118572227096899969684785314763508054854805627979154288350382186635635509215804389009722118405187588655877911751211537125873421398081115084735642385668753580375015775777180007302051271977694690029526562046801138304444190492674661209827401406204235698190504950982672383359681370890035530480520060596622971346590662961404484951410057418522861173971341311298172896229354947263470531584006669886203470938794912962570734007197010353958681293294705905122845447311671208048200099104423768642011630926355726777916518559203376822360607013086955444708581712549008027945566061866544676340814920282859651128416671667477632574755326179595559951384423972566814163128152600672145365585818061299724307730268615307617985868686385098257680833466177378232660970476220875100460620236505614773746752196950020546254474074279872558660704434771794085353174905964985463830727380911990309845215053217478728825365446279023483308173617268669773738986721078558866022021352764722183100953024817258718207180754315213643384815976682184638984179203798260218526664670693487624569635141672617152538518658866441862015344769389444806147430795365490983533239173863410046868562061569032724738000501596607626163437254985946172634749788001093671915427704927758442817265642933702294818800018004113236470981936021390808761771575911592359696465544072025082826382934382550573272875077069769303339065202743822970311464567270671581675964649615433544155922096065039451119765010525551806533032380202750999069551048055722530031943659847297659416962954437898520581302586577423731261848900874312172760792312079543039523751223970905263566586874720284297411840611393030960827894541602063741642193453940329562082332713545655359272695260127304162155182964128623698318423090043363113540034081708105786510258936053155220397984384180592636401697281738547016107320558478809630843690752698106142936976383096448244994657935745045361865862162193315971718572954877024615466067828877899566587917461437440781753828245257376016517241282858104030662848244899857998237498967789329958045031163492853159815260460398252409028984751124167287440298557935949407044588740365198116473888194049457144341363457304381794394990501445994477787119008516248691082501911831550287512672520530453326284056148166801021660132470776437553949347796289297024044347127282570233942286287230695627652759480200959776031031282138886386580590356792271861577718568117869266855246846113443380276379338167448064154329295014479992238638631516209611179053334766118425272393203062544826808362198355354681746022024376276548416233851686697226311455150728301662398093003938896792529236883162567258075720282968762676966915275952504826292159055495943309768121730885831128078654912947909497567389642447167455807241649810878058969308869821482205772754699102364707805084521813863858813056712282268649394657031933237166277292387219599290201595931910578978058327115085399320205321488126893242202914484018241171688374612173776051028970734026667860823190406544217378117835646630352456787357405483824261409681060247828104088238081666859222971533036292677825985070247584959389160254695220678462707076000772853516549147824490391082217723422122254921262625205634970365022299659938572013727348598658070979210024946792159934361689332157298069647542224691351492057797940573429502985730604509065251893301807895608772907336477027621095539921018576721634986060506539560885693227016977803470103376996969159140827208795056856139042073991047443329982938224063493943601530404533850443685809695336993532601446757068249648422831681103098515321842593401581408251778721179530673469533693052141039218145222087077173772220415923542597872666867326553320450144303201143076417670049014639900516388129474096805657601342598346594483902668387722837661188738946133597261964790024505688608878020082227379662566858650383267797184705326789815514259773365054903446300328781985682157988618772826207531159592739927161308389662420380920845315183286009572258447414165406370794415262387845978135486497355839849965489636748398413986977879905195599054936704295702276850191038756661648504700577276279669749878429434868796461371497108268599274675432996774705729627821785446306707725254584125023898408084214421289121179756941012037581864095823921751539662370321725033557578284990816312344102194733726046494142235525184359490610665043452868104630631759276040854248161329428559824053743438593077524784663392849536779217943240577802451468760622379949492362694132875887186859311504687090926979346399982821295905666908494400285183260872701253318873561867082060804277156135107922127152413755815361086297526125096743373022705080784077563087589415915073530236248669091383144476371018990635108984459653574383544649292645301504432412736619655715434321287225120484703982005229359769553929964170074132309113588798579736787768657414665253450694464579119573914904722456094211631309670426223860755362793675752242970787881261065679365123499359151665125911627730338425884112008222767543452797954896196258125803803012761655105913063533271043896816342782813236220419269143890660276460201973171497199895344581608539611203302847328897578374389776547153956727555123776446454253229105040917496330594498875021325006491457569052969060405819061189394747475163883122484191588423844103872572208746415185069575830643962154135477124463013068345733187022685120123241741731169031600945013496432637024647703859179888797169821682449402275113134190427325892680245775154408818349270873783730343843279738297536905692107675893697118831014319967555061773076283905348165895825303943438913279394538544588018220340389283813487638407774985810222822334456750048736045134544076755518200625199284468082693765323000236032201693938459954392755467760796481347974014330079887247312425731291103495080586747583063795419182275820936266117230662520545236897961780712211139048708722402046706300780339958730583488104930972686066986473765762709116689022635054739418592715898420822376301795812328946794366122804920228450241894697822807688157094641980632631580224115677543501920810666130533407714240788219740461325721138986431197664630884437190049392079600985906934676059310699612474237403632254483897588726529394234883703958048998841616588235383467805656412611011437851904800903046087167770766732264296718669264674864967332173438003333288292035036363214792790700626783755033051007811734117044341351795504788750546781745216094928067084048858132191957290932787892046131922133344412705361372587095191870725050677050211252911293808692061538270608471605480860507154879981331974908865338367822074000880083597906512915753524083605159913350273879240760256154746823107973260079559895025151521980583799531853422469856584906551146188516905267720129048258947880907397706617812563456410858983738534966236360609527781312490037886286724785988177388568593977530789186714305093881702871334071973352336963836738751288254016795121285376541771190293182774901116722328829946287997673169469988057673967873590536925532904381875057541520743838888366856811470747534294622547304278473868494302924227776040990427105292559812806132537476676996538452584975121684776027734166866321533960446202295782974487665992304279267266848741103616266377869701914594277237784336330680648967105711541747193641815258248143768115307078821473816559102780453984962737920263676156237308502164064677647371256656312200587162058824072313319460434609154619783946857836762674984929026310289219131809675068496622465592609456194045012366496334742693776959446849474900170964973279394256978305176886987392301731774102115412737540629955595804495374549278352490531161047613848517247085045219506736640121135216780158717838717524272139170854499270590904778977266167061359550058224892664033467853201418230437078688464829738519238046589014119370494223823416177375024842094838195106290686981572427562793657202062234482885457966980503891102508023959224163885512284375716817390992186839643422031951778655130571716588180090992369885411499987009263212199728475423095821160946088901894800772362184611948122745999935355467066402951829817394740189000404983944863577510557543674804498962729711487612331018535386460115175415931360897945132317675293413601534571915566834889190309052946341512716485521371838169893487843877808984983157647848199318052850283259125955534841059857910634125595969569632719702297763547141363290601001646254935543112419154777921367141324668165255782416916929939061305492908427290319131942758481001220604028321202098741012733709787395548571269743432099219293929414132804618172733559579973910030749227849968826932305171724900846977468828946305119812746585933597083232798537053597082846901343740171061107306781226911951580477458265019682684656770200158535196816989666490613202733699623979161710360386859974984288885437098307666297946991251409153753318312231716979849509146956067431329152352556711178064029012219482211039033877197119272813902386359813292744113968048960151395269669709127612026308962748051071722560591850458217641670657261319533436186135677629527554703802529944225025373774057874429463333291469354972364775189344521044542122983693782170936932798034957057264324705550923746503217933975332830976341564457225270541223632814063768880899675799609559944026072607864214407126243720027291362983567767577238670728194275449856010179805905052926322909854790030851964718824264638166933139169057553739464933317596444125232494638314629761652603240175666265668838976859197668099443014813311945037582158220061858267519759013172361973174863719747986677560422767952313587667863006605786651524560591731437754894334029586295243642421415456125422803785510445205957532178684841830008937125488545947938980099442687585398877093156995047383950728337323814542848700191117594800174302201376935031641437866561339966893481166739915260547905239940170948803911684426371888815696323205967514504771025316467687719204688231328980996403814104774507110856460248544906954507491121334718831787012732113546871074250183386978149053858177670848393154658024436079465272605634668586884305743667656285911670740273372625885746205337890712275080284686096170635368436635860002499323426863855749337639278282901166732217726922124050906592466644401444242565066885721316720409020680524066353832472105071173956404808372547164419896348615730256457963437637467268179048166135054017876736069794530487492898233518040322193356260741967808244688148085929081474646634520044760600613365968124531619819141744364960720891274303719830899594523386475252828320336299563227515186591811538865615501880429298862818805639501689261896104747976497726225036529558166632894139415881406032764043409021041296421483219444304657383139903732485122508878115239163020760928912167980029893154728376006874955047643985869029198732981252276798497824230690848743475897429871221122656324125516029006985054596084853710730461472851340889936598649048186567373088770107239178645090263766790597460199724888644516638129116417386820995225172373029952403231744289640503668655994301362006438978489769905149908940719496142321722862710583372719702817106073164308596945053126429025637636093640675005986604393551597273704102907765820366381921864535428604804247982371893424489724457980461785107607902403944084335680378276849186893182247822865077369581913009922853731708316584022087721996806890723657234424205815486397949338891368892023690681105732859956187213325330694071579912606441534288556157902168126507164438950408329267563082582571995333692798284850531962949281764881824265527232627085737256704465140502470184529099310642843774121606515829506202808782096240971809402945813779906205887945373552792009943593949820603746450563789638809741374090177251852144399935839460762481850359668732135801783314671435499774744525867891179977811424965577295645657158024608632875217622088541635576521760853361364576789193624886665989746244539388632520050436724512319653687586814227173975741316000473347576471371092452847047310784058227022198347919992783197611772898680727778740178829500801286270574640664255859047474072840279393770933970662167050098976303956214422587550861854841334287895448256385559676770779252759209283819421453260951046771994562646353571716091192462491142959301552101690378376659433566030993353093393546265990477612660535694032102143803717571897114893777243403178970656023742379981693686794503866862288158966971131230888480165081119583852057759068323324535484233974991412586491337713318670948393508306910547892083381704249211466421707760941138160034318281565515009464965678517904716876472351088855113131477116593594818436850274138489810319073612482569592738507500910229259879362721601236385804694694066453045544150454600425275443073588976054012875979939367177876935299583996739953044649238124744899904904219995833230029558767720080427979725177744654078764356859386992102596364924274943679418523283717270245033722962664558825794651424577585060073342520786223082561427937116164697078578255535486941148477574967147015157136686439952232226441684425834540295459412434078306198603995846025162295908158817811806045844512070922183348139610773620003202332767225211201494656661212891245322399658830857359958910134397166105453819925535595944355563783008282298952143393076636193566502853789067670826702393471899804624810826890868555941529463457603059474165174988962476848910374267600187701336262524476118902908018493823457558963250806345796867492062520564444109516626931498601412784870447481732123628370995200145801081207240191947227106378660902672677640690054759487439567121782920402633855294694293203588948465428319726873979840889106168077264069691629217700789077619449436411081142140532969655877354322933950356704941176627274753909343375734063806655712444623566655452887868804419740591564158809265928008865683639829769574344788232613913136657782470350049528976592744776711026392471724461676972682858018729159349921578975283461652340766327404548417227270664652169734306676977059703451639101223847414255474709758029481982599823321042483573688173380246707968466964609133065070186257924314164417934229154077204782907460800442932342253050544320310952914986655925435175741150475917822164176607792754828040163654803080433597019995691463957838329914524691721427119541281776173814920099627377302892885038215975724145176184503932510883479696887567408004913575108988562926163486490918310597191422331957302344382192290430336320642514757921453596299825499042378992231267894394856163829696667439132778894654278381712099752110428792130446515216529738997695551069471065725405474297306075634921683053792391461338890718723172319592335570016491322653388772713395731164472850220912560694891164535738946511285035766659025199079504243280951421190681617057809091746237564227031518539469196383170435776055696052251058564313192522370743367722651219065333779308123145267042616489595856688416880193651509714797784444301697621564940981659014450460635219918933210259177931191162049616326090350448126233745415773966441850557527011447141482876964593219073029155086754296024574541003328381004621391972842709224259461032685998790693823525031442373389729462023438935373139100956609799860623669896730681771308823188377906617502559426081509025783365120644409435844179249450653863587587771730141186878749916379299881340937633198834197607851625587991013071071335625264813880711805577713394464996277796286439162421273098196690719810686356026005289104032542391199641350577581897060569409819910602956704899927199130230249021597040483383856455725583618043848045102093278871667045826236964067343907151192887180565788093530366821480383059672435511773821018270852118996964946334881177379885014154993814657841533348194184848463186921846932980315377916493371411501412133944664431005398879772854860860640491653848132833905859168361028453364857213007140699586375756283791358276633829250925031558398667243571013160208598832943772193871758225504514265670769817004569220484403128346978655904904847069981022025043135260748901983066272527522111098238985922749325997705917519399776705449702579810088021398918727872047887965276630940794226415123447984650699081304110755540360430825704404029090923674257896457935010907569957371938465873709298321052794699158806432337947418872109987767783278670395518832283646226227410428977792790825475451630249370674270342390628285557631549783787711096577859093590576305344641949029064192800494409491987113433540250970489576603894572215052864814789590273616595316767926413657998275019759163324408363421116553484052119041204255029839385725014987600421897810891081095381696615810660468093940786862435989591079261286489462602514949701686266773985857197104024863815135323661627509265922777676093819384697595060024662251940229136924672879086708528758341814485231092948083317062064158128323889197123494648642396427845039527685106179769850760912612018727749031253908468091110915856451811888514310216989918611213634953172991931075481291591094721620071662288113598808851692994445074861264953549085067244167543043713826079212421042776144022600952954750744115130364723413607853906084830593260740719126030562763962816522368414193274703099558972875059715002950164424897579834697757020854657798750863199600175588817718460893779008820573589139664822300698251537948801285812911766309838717029747233125263841818111624194643885998164859104875903762871120950180395122174482196000283047465883186840356842981397146747510669680181936465303064683395540321581682247310148241046710716764099547707503901907259155967639884616724639382733540035971121284309451690084775905961430657953202065886475789502289261458010365787443902902083241609032035424106950566885341147209294038731593959007850119228385752627796943688501889688595532342211184150461564958691337987542947810390049005890353001371032109354749070285262338078438108090533518348281618723926364989745233592976648954982251025272143943658802900700337887821807735037059894467948125038627575713874275585452207351192876839043413726781659482135948465335990167111005922744722379540488634073953710933027173074537619834414228198095486994547918559932423707160465323869400072621833744661565565632063240176389453662570683608978690199245125025284055416956305230468554395876049875100741896214078940405324508458321800167680824815779306586234441475657014138969087468660671955051022550393484629419596812087097084981554101210219423400396903176620031493442833469915879213296787157510586995666726597654313267535839831880279629724100399341026314249009249452956199440484084933576940789895063456008406886129630514345351664566578818035888762705171113014483112519186807369059441904866550506704964342288540574656985526306874431013279622919235561230698523786121767250317637211368374541225367742559821436894536077255516727568732159152487694325881903029626780892061903838556498834943717191263503922733957133893242890089509722943790523888011753987163978495900244206539605941233327092286179558041397683249229538171487982472089452555011614282226786991103444639928551807348844087036316436092654201759369844626293793282636677962532946936014727686722116475795787964353681737059535116842590753086989258806743933710476027709944439262307115560216956542672424226402435231090940803979717010488641363428922317514598355077758299903993595763827842381468978542975961833805916670981151672679333936973466742152555688905135342431828446734692749047455404463900022717632878861216610917508509705459599605184635086919809230910327623820965717951757875281971468836141728695974683029656501977838740878712665172661240814038792610137772998893839926219579084627100382541412491791473013682019805292387074632610403853134383787507831024804626589253096023295146950923790582236829091369301059684549536482865090382735010101957169019778731492034366937437960966505081904253467876544703749853071945167185325375601573732285043544913156329586239295650062867087395613621847411827710898380264723834294919744938364145931346503174854465345109298671287539999843553171797040185306107257549570372429867325262316503806706871196813170427923789335027338649539944382626193442919600360632569791853018861673749124182118650292336143599537848116322512007642091497989221927436311557766946835047992610354045087556600913550807458982118312078982263903299185154054731073388687295602890294322532245159781203547964223337697268841224075656728866480749577312311800728639753552227979177035249187376721498075183715280431357232547530966809945753548486283790496475027017307064010540875827254352787135578388223459522142079651100691064937496499369023674303833348554202982792088228389498505656131059172401548449975980167935201426801740507226461211541460645641859772211489370546857351312046402876143726355910885285583097261712592835831467394598867256913692882531016034836602477747573433162296624389875952855228493251337637269334804617617694348932161109918724678731813186932843333517560706303476520610243290749593840286210813311612545713023017259857074666777084545486816371231717088574419150087934873613387338263842220585999499111950104143261605270297771493137515287497074232260322631876398315107984767236367346766502206150785078523373302617559631873303657399546388507676192089710467830355410365689539661403129755525701360651279160295952968919823259621673158807237757323840890217100376635182501851281997601381506085925173028995642414985647411977068400339406193034920404451074841086011656476441843330380000374376451131138484702955352866176837060943567257032210733470136989385433403829371515315075274517370856159315824842056681557697870325152187733957915458035569436880404227263966098293670866393715759923590073118379478791826968444076373329815245664779934099636206331614507853747985497901244597352463749285561515659839669322813192120977022654354845837343840590198247611680092074497531962559625411134852306732423560367747887012913275886116923861852356689971226390369632842614282040439643203840733701109776157507005562148277537994457033246666901242750011567457187316304085585603936406513619304386783365629628922204874125406186832642117830408791275588603859276762256776528617576474868635608855025122853670478735161997408716124809823041419417575452351575543864467400795474002796946949665096015019956065337273152699492485540960219519906188708196432991786109106497854024977314363424762441758916650903557558477715391135844129234567491199606647472133101532921846561420417617278921302488135214562119673406229537281039986047183108871094750940431188016403998033233237764195813213632347469697780062036132780910456756974676316718207768071817116995428951784991158271579890483599587774256093385193183546128589013307551128743012986560117719312966294854682235905863448458922971895995145319638829353478457023936390044511198193248012747386993833156085754115784843738086534638704731121637775363016776433828699637021712887000893493224687139278842171664818531767060292787740530071487432483386634714946281182604107702903482280946880068388572485825721586323185083713830238866650414425682300798414365875978268617420719239190476589267865505650193685996170978628323540025432619205080158099329114367220995087808226068394650599007626798897669172168370170663731641735481209387587018901704139423960409551088858419873339445164372223780774818507554000468798347291936703045129907238471771472027972820678419488870062078704003797902235785179815975490125739834416924790939310142864039539727684377388262392281753686667831106745089113267710749386734042084657856463083814777975662640823529953625218477706263790013391633235019459696394810908766088701445493822670988269603946248363095504122198257468497277351372513359743481274544289382709992721744682096247451504604745200099546753779669520521994895469837419526103060902792071290988030620301158351091475708478748196318159754487892235560037740756632139308442558366197958315766007185424124896652667654300471057048201983843314587457841718986378825669956420612960268564674534891355658644651405069768416719991662421372933751169756133035968687977565457007046954103724427223058414158497517887011325580222587598351833122185585777109387501650410064094277895546268275538341154750487532096007872165992713154962376769243997958826201804605047411281196982972294223139422643285749051492133998094657127778885403718397000669421664982960889863688727937621367294736247360936105497984794805387246712780106134984944814227830298186310434127148802626394555440799862303149159539764897538850214009980886563761025087778587470462950704399698487912391446338884087092624947711317450474924873372472307501317263551852962737421241290471400915583517459011721420603598581708358399639943825747789103465356147137824514885719004200738007481282259239844805428049881371724597335080895957692549585943027195901233083434277096644348773113347471995024559645265577755964271195509435532198718582819868237452248044694227898958721689696629786367645726780178548909776193206091484318256264764611532643257004780452220878830549007048800955438846495672446827958073506815810307363980396327305377243358332198539156990701053323086535138652496218857994725410027132871501064610521153098824706927332233622771633274149012391743244486049597070694220648768565115743300937499331938601220970672944335970443456293915067591152414406540320486431974586815498321878802412761296522666645950555969406457676562207404732828569973081067990766201029052140968739638276597663522354009874409780095293540649539703849737993291328752232548832930732624678505390413966250134679630992349240205746581279528531578421447283370220797276427440576810429085428140204763368949387195423101199515150357414752154530342825617600755392572230697602416782084604046246262971042148752557496774714013005764744136819219797125244763924704403088305952677024104784273837472075815025243202455187746353213515952814741308314271235556217721711850220848253968509866696686552550194430753485256430769752472525273434565088128098346778278009870712629965974608193028322204307010233453200980333195412595146349409661738408707554317026024743673982298677879772179831419375902108914093341690966088691602278649093250080280998713133894932564010944383471333427413073669166424693070139389974048124703853634689449637080072926169737594505949806526405631108925055138235280972572412104569267077948273385436572143007867602235591891021662408352608692788226652577817399522426056120872746306079239962213986915050629036969915557266542597454874892064187050780009507780694517729838353255145698395103018649197989960816461039007859715589122802494727867377623895298937152804542032275576561747350805945498265135155364767424549007116346466821350173081299901071734961205126044130493604839367487292881647872867873409470055022143788073664337797662213609071229726910872962346663358121552677775367040950716545437660798377010591635330755512658142535788976481546819352073034338649349516210980059536165116820028778926718208593865829379014833877497452768889438466602726897264147476770258576091755806998684052592094961622027526022361499752560125663778212981059031137411590164571496036914509406240516297697018221345176034882157455348438133446181323987619710753679814158190288096520019496142146245685232832084646914212910106965037693336577341310068924792419532772809520895060762232201589314251747653357577067287697889017453216226377310792797381881512113560506847086264726216653422223955890067734519250286490133167950267605518235312015283495853673182756525661886396068289672983068375790363823184956731801735292274291783268067269924386130801756403417378035630968016995570752545746496787886813997946560253994527808174993163878398009626789612916125867835148696418202176647372236440503449428741265887372914971039322797560326544782444828290444066503757878111148861104345071815586509919072101552797702258914500371339130131395257262687405514207303399993802689781592768967414669500128210591228624864556863860613402802238830227643313606691577545755605731079243734162845951740760590117080207858243699374683812243839599886381774839351794104451553086081631176680514008696715122016049859373712369521529134619992339558780803511435185699299326374468811466231356975562400403795235195084230247193188572593903797651665121349676782545299696273203545980532151869782361675457825591081461818395734876815773605211709566124707969630827205849298228266107190539012209678205766894247588988765563833584328343129447915577284815791249064464852736251678346833250447259516853999817680117685828698680278652312867322668969341330820558016157310196111517085010933759841917720691052134801564288896807943761414173293337373813125807401882783072330381548074678612326230367632880431659762786112806155575214126400237865397883112729359350180852382286417062315381984847061979478928285389245821436369875240494375713329150520978997983408029723054290167284508693360977790519173582366181375609293926535540693288439644886708033347664991881720488535723362935465863190587361030118173746910901662046432076022789902703959369484944116352509992961317256099768733747696604007059597384036321545937357030453723544846975561805585331186287128786320002770236748810961404387869270059670152342992710721118472859456422012656284535825708972942015156396864605833875913486802441479043188482612903470873140467890001448834212860116369620262994442159816307590600711396854633449691023016279914491143175599950243383851079539447574640225052667323314479916116862053673521148497663791707211750007042732982588658123781937501421778911759267102479353670775388916387527089346157871336704025201894777848277995032447595189999896907828581602635724772139383745322121505811537035691901749707828395783544378979218534063084950646204162091727352373267836933507336112794284982499690866086451531574143552952265981279728703791396312132523646624666021351221963127537914165834105103841300389399673410660119431795175025338837521932703891716693416871162356665192303219602585855995668754052065051930974242493012607816328006546936247339866767383000711107273645343875107981107248269295702252362598395671569288156245931004977713463972624638224304307142910213663439302012990188474300660741881112160929063072616819016517968737015893464484433743648057682949878529166414434763639970420612410081701060445309881710460447355843165815180817559553222681338501207489886085882120455447671569115536900006984452891039324759251416122344304319010077269655756472087088396501713069116828303912132103889412391946229707606218747799148104874595110950800898347900498533107640622447063706864385745960344423435397407480641331798267151329388066929106790569305760616727231063788621380770870325403429960483468393676366805154067580013298286740076427922149688071676844348201955600873406480366970760210068652083344687077729331489519078514299620913589359892645568514840420365306224868617735453641970337954248638871624807191377067727983418338443602179868221719759244423367337503347040533717335669811778825680132289431214236095725688581299447842244349517556550255433305263068267301630650479538859274767784386430827322318049429830719428854494723064415326117765022295827057383470319394995368360146013539701140544460804949370550927944996308908641759878261405314477848646149675007700506292030820892117063370645281669897547437222914582538509246252172330799994393931925946913846753997090821825704603817297621124887415455830561766276187699802940623579833529234377450803907534542300476667667952481493739660998446207177535886657341053583953967658136902852392235869952708808165878407979909171805027615198075314309099092870173902717700063455002225726246049938866732652082132544464081400025266595705726467541097393709930309475611098517266334598308676794564147656840740229048670813214653737657231132664035884892723711458526003152612317473355342274179174097566143646174304198526233913894241002836694185073627045214003982013902246343242158234751229088151465053506100944307845598502232257078555033563057308451449738392594330803724705884842409043090362620422335174161916446053853111783518886216660916721535973170909091199538338976359992689658407959930564769308091705510977539836156261329083853304074548554647054191991181481154467825780853804559409519656756471856576586484650310270488161177192599674052424770467855455756262675356774018993568844360910063268664089699306762230296449940410348401270518855803760882422476923676412754131846762973077270656607501486955554292163575336427478963666383608068176898975252171113761686419982191550989087210622634252001425783329098234967242315823429104782502847221594061603563002576286792417997636415741167856807742845033335814053568618540249864648047914159699348242257216677649363314446561333996610609721925668979166778612649096394273452157591838901843812410989455414991141926753643304305184917364142056518936240157769353339179953095768534228303747370033228216153596153035163965366314588478915014754733063556925868434535885739670151045946719535890855453600658324616647745643059170997597408648829257341097606709560226258895397417300616016507479681902660974299396468989199615896929922365731164301774350555165672723310502815751444402317049989858655730924639736613749429730900504208868331215381563499294402048136609914631998866335315613489724573892576351563509361379829975181794017457795871975735641176336129870846188819546126996137045195643411079694966760323404197878897579696476906422764872736560749616891435481119811543156023790190087298665219857901735783276944941066780255214625205180462064961312705521342742274062498536591946609389359102898289191154172030236209888467448858327868160746113830851205252786951617445557522871980037338410890268959233986425407271975096189968725425598734513091666189375276903859692838956560974791478893891013561753997441425508330859098116381662870094984584279375780602850650301385583812109074180748233444943117223201847586152959669578264811410905368505906323300143960805453830005715083859858825868496215581641925774619323006756528794541451742583009655246256829651512264971306525662364573206934985900949365217578417403561764722001309865672290748557941082220460965815770307576126553445435707804251540462881537685291398708059608767513353399255831965154448170986775049640020798060719741299018401769017922470069922300722150998431242258164723226049045538472656032537835964569738246229241889949049941383078591483816180725165685028018105639214322100438824579247593787013536361557254159629055888174546864020107243677920136810654461807807336470664337943584828098747267042125612236177358662323124938698182123811149612781266617385118084745292519042942825921406360602066343926542504618296031179466429883678947901118335438899352276759004775996214513437852546383964995979758513536695771490261819760759502134222127918599835467069386184457982128984640958314069264490540683593376040317330792785407200906543293926862809669027615299148881023368144465116943422776326730223711711943643758156740215171214594213190380990179867428426710843093951408765845962653786260135945940233925054876012199464363738141518077840530752510548970507984018703471700108444392517453218999641145550379783987914741269983899034943903298802136401247084992398471591617795057497917426241804242475296928299124352397921502034243159423238561760214071615457666398783827132160354662268771591815742763688944522948727135381255639994883470437555446199526672829189703567874316211203140565433093444628244606020828609336892656469293198719857219306852345522894682348130516102841071580602315303915837070765636553025540889056809598045112493330640012171615591823287094443220391028802184796850895723520067551458088211345617469850761242191335015441148322141582541059029919483162249844736479040262097939328892528136835644158351040151035904384321914749775122385766250963675644398746776585113023651506239146478913672365889460896539420740621241918012866834489546403329976325124645105382898078369377615132434966506181619470429765605172593231917637017653904421143383836103482878439676422734774041424079047327287329582670216505369689283495363306750576781293501292823380412688791813663171696314328813725122269525356418411204598171651465635506058123284085559211334448525163313712242411744953135407606438894257240530562198948036231108513742286335021067043284865444969716406420719509407071396096867299306026738084625185784694693583835536610219408521262254583362437330471676580907435311110696412647546533126614860288300307762236833041291217660109000880709844097877231564820762022407438449808561147963005490294417497183243531863953162476826123163245682582757059922703843225730475747993326969641710760096148866305837955255327045425923174171916416527021025444917727734069810011591021038302033057430302974352140693376144892098377960414614077008856310570300429900637927516823492805775754161843964644086956567754407068977439859748654692095967210935871331873134918256582652848479364152724746217533421449537870044288405563090537984785587573021152133037799659489074897801852014761544794213875696411265537225739632499794644641948577977475512503362054882237109517134014014185502941531035350155571240700743995036834728919054651679283460232963034603562894540075976819126811511775511195543741427193600164400353513369724410390785729756864279836789333967440854178536941024436647641879483885764947089055688338909284963285731913129949735377377848354666952764389179012645406438323169528580284218571943796325809488417870732564529594619253184126389841695033293092375144310994463425283036285497073883606834446598467644161286134827475833279381588229533825559530292894332033416703740821901295549751703321879921816662434631260016718002645919146756843420744386488716408256394410897479378113182825254194851745777204759379108471467078254356604864770036103055920588311409244150420258008508831261217582880376649410498535885365956593464277331352599275831801091700425473204295700601958278419930444621404977337463717884649797821159456540746106356649250428026202830584359915286262399159102845299361788140671154687782515264072316765445755564662806379567234469831346519675646631085580296709205312542361237954856792176801963189189159040925152913426895229001446236850123002710201549143224173607514215092443023819623145395555875537869412983133047090054009319612184947808496297577635288261551446971486185565099965435834081330559741503492222159712623929979299271739839102266106005117184468667717835704490888468811246744384209748503376353231948491593874338164326663721060984613749789829570345759480907990064533968467763448860881657020346818422477796473488396574295860683009907756324879201161135016697369606579267697091981792603915758792279892449455687840736431867117321276237756676470282874215486400826212690666191993338563166901154563214744881319825935844146547279976780532099946244358903513059646468283468822501920470999988506583751884674908716362472577277516816652276850648749710702278469046641784064590268879236429658598262436056658233017672215090278634658500004016533889544420670468512997408447245958355596877055919906219237453216634807044229311864463341969190994223316479903822736645836685228789537191673560062492141530694885653176066981581383443028990865914586120478997421037500114782020732665006978742419709080681773085699741762518665639495147096409518449562979052657544057986032946467338083128051529399427406149942203232271331379210102199675692650592482069817050623934864407169273529973694795007574854473026321949184371139075339286720219020096678374411198722250689808020634091816794264358513227375007451159460303779100512346798922738555782961094750575910552671230738127816276179854464882711859830489398967871760897890991271431222682233041648242116027450623828870152912116079972755944227050842488305848758028966799176636661697972748881287816640066384488057533743447368317139394327627186279384361728624102165008125120696557855669462020846011127071537471707555399046608959798562332545699619535460654706566270300990241849380471627992871314375917694176878762673492603921676225491648394451414961291864985194581473190404287075502522605348895346651296529980346381650574252788366408787304671109498020091171088753901456930710532936795853661047133234437169557077569636977275458301597090116711749531466423140025235610633784340936313703646523289347873848483526943771272404370746952459165003025976878546043665047588994533910625254286701803726125334976006978343686451558530433769095638446873217729463342373827375011242436504907004804493399973340045874499862499254226389676352196147251541342615669443105834401810934875052502086794845663135567627449918933099316273076199656477160599885915119190444891703455539624950902325742768196460784115332414359820574825478323539216636977744286349401703911294989438183842385181993969261230008016744609874309710371057547236216563877645479933330343255261277140535956586459958627824444804740205885950518298626522272200977684650765994993976956601370392348605646101639980913896778678163299555599675906474230402676951111328843687125723585118686716710079866434632330710663038485111843960359598872358885412266450625578389137324653933514867658994830569622765597118997649092164783454269054572668581296886705340875852132028713059144691841966867970759495094193640658882460271462231671368322571947694040924112234167480158053685176751300664539821224919468784455588826401441029853470424174078757118780845821548487215213680057757511675098401836836480822335718640809166959758510897339525437478559366916718487362034157498177713666379498816213177356925999953155963628022399181681628730960818511993485732857669537739881507366200568979535335246997317086868200756254020749865890944034215342934157316935536440509240933199037588666391902687190104472656664679434566089536649642286480565864962516037803642489264896886102210444123673496274825770048358930803095999833695482084700142900517914639920561329191593412428994474170560622036863113445866643139425430314219362990492844312477012217577287169909141149507922150043291949630674188746615380492941716566999783030174233187719192985859505207890181579566654197683538904120757917936277791228201467226470104302516393565831665064347766139756582291323181063382262388135692746474254311326400461385738942583080983620946752556275153831359421130203732156421651764454181152059550345078025281880792570654798984234383037332822448624341709697060060621580806415337287901005330279815656430754830788121669511445843833190656920320377311181983572442957455589324061844722791876344184192600145968321138252825632308207646410031063599613221663852921794249916240430141643339474545595292650218969522861753555822630721325960117559539221143017747675432604740758704336142023661329917630294480715801860149711142800346274613521779308881159114957926742276429814455906229972916980793416054628955466432405028713356278765137013848615744829401255158911965956456305688390677888401477071874585895731440308506088942856428060568276881425396994093784895858024617047760944132770142427666857731860397209822000250568380627814182178228227907571310312978819107785285965928293629955612215310855050202884405962714052929237893359054932094384096997176272284664224791046495387279599394503422152010246567056661222031065664135997679171377876367564640927266291351507240196198082839544179013846390959848687194169314348007568738800247848028681549647280313917838707553587220120751458868266372597577042739276414396625518966082473017349330344689083123974533342694548236704940899084778740413408268075821524554287010468626777766811104315889282081882613439005860373944434960798381459061523927187016254481740800608937666133313758769850216257267520771639423956589314151583518456415322568659557262872207352584361919971296400171459870283785796917349550969681340018034274031281472180995000450011343476541369748400980142207410942291374328680198295160274525580318344923543051597341368372705378129275782449862082749387057552919921475382354833985342959209376932238268259009510230222220857520202802498914881910849080982781338571217895232421858922497953728586982021697835591964215066373241834038809100010340076065229416430508184456294355680784115932370923006682535779270380902188066367272074946175128496608234852657751900601171855718903912353085820918005015890505989210061940642817858425918874589730242239403889668574760744889033020289190828118658939444361341590678808928514493159586470560149450568618500131527203041238225787618905473897598262827777881336999585481361036677093188366164017450359487302769383060767517403279372925698962983357171359142211720645619507905105884717048648144423962687335370632699358372782904231667893255278520669634871668759550832125996859571727808016250505397902090580865585194384398802815676048938886598874913112094160256427053190884298030725392364679914580393475591373845276538350820159506132280419195110778977767559892916537923609568624620900467266103013676557255682883370639293718524175767303868739338564924187320032695789411642119256715664143659118492666282457737392556980667953422553439902066063450676051797521348905047082503973393961086215842341369684228506819225909637908164689062924179836504293533891013620528267471272521164428960129152360717837197108559918287823680062766990021355350785316485992834741136470711976095201006295564604399810453533341014078796902668947631408235319005289244882298697532226289681057963506538863759494785907965680403283562382596248484281456059961635285496310065280536174990982554785981395316511275719288277620823591508154518613437241623740747352242572964310896936727430658047705737577064066129526269670962963402244609671968370403341271898528513266120592911563120074206953703134723544960357445207689028645341737334759210729991848990853501984322945910211343558982502325127776478020227257251786746695927774396392607034511613460906613211314925556088305262575106609784531514259825319039016256315322270684642565383667667274394812912161568661509845095282596698033545372034829279495960917841184174322641257242534958264276750013263972740270693135039285578276277067009351438891210029196940564184645722685257415705560508557015688300912339924324134389236711764224005043183482284201859218924739621756755220865831533938247774683167111037751800673766894059083217641903535843058700345403374166980655878319110421785084295749182620060721797461899696911965419979819897225212462847071407672510210093726361317332301264934855546679342733949527854518456177141116014075739831044909941957447520741189531860171628865434394478763506823707579115493480602059748645527334424167607701264170545206703839890310145956684241039862613869883828520846783437458441776701444319115274670723978205540089029132376027406620321841344999415303369518377982692888641597564449061245203737944083378994202905444077460700824473422273486603459816455338669159751013876467086265420526066780793912240725226944918421895304540268110854230579181532759633766517009211802362847133916687145821021999432355364174276576527830903982455366837729268254442726968979237166766425836470457574218711833198298324029789780571183716879168203039187625905006182647636470295945439136741426442300314426006827326667387105915341027819856408386408504429225340584829288083993484063113401849325567500490055906385515686026554226352539568378773085053486682781842259937850620231948472890216422081589583584077191002533772187484058964357986854955268862756422706574676064242461111077480163641931136682807311314634207148693798689874312255294400725702851519893365687974451943700150709433993233023989399812357617380173329494248979831609856103021037137697118332145795078498075487363745867295083834950278618779281997199849602973259763563949498891574349764236120620250645767897810415445732223060421927700760425509784210300286867003629349390219784028573697940587928821013499839055103284684129488224683901870471164030844479280696861014201688661641349867991239983635127891963530278099208429214280485750859999941676570477691441774648374574401995715095208494369126036223619420914320948147702759308055356550828338210067143017765187093829620819245085315622510764981976516056739493925820048295391962140192561037779835729940632897244490298636162272048982139993357172180513659622781223443222583277838232808251187464931244942237687884179107175151286890882934469109895018113542487093375180906412499123221763340814217924334845944696173726676303460399077269915489099873207205875122822843674963380353179897254320399834197022248160353952828780362474222450610766371548388485324600265184632343342975201987092984615860536420305513801146517343302410261435443205179231826364614549286680217523651008173597130101816149005031438398027973659271889854459008884814227019378395441780163980125871743255120458518561491998844981964572107076249054264730162527701338447057159572136291703405091178253837715710517871343058344458738205371315306357380526189130463649818153234900279829462984350358857600729343490627801171031866178053291315730809520567360779645761878830137745077118684143684426521864909256487629238181224114308610536038085913679957191584323896915170943090178997781497332369042285280628962485546380131431507170025782485835363922565165046955197978818660413965808077752202898687776342451876782236140028452309744518737234899701543473198505015851378931411269439401105028100606061923383059411726297842238631116929163838739253440022911355159786896824282624942875783620493148007120439495411865337237672673959244982289024553030311124367829107369731335792091512200827557241130321241560907841661863230728645156254564390258896671518107648881885042440547213557257740708241852606072519515200895560794186738418544651928214894157504238576160079376624840240173327901170714194222897660414342396241841470379113580670876109711531618668510384245679199488780754962380432295269823706515059236873850336630207555323288218891387563552597063333936218475937129686197882586644950034463880377893331064743052771553656039176851928839836828099218970711041269489045083791199344806884634169444330507729498847235196512074324194381559220211812160397870975375026965083369688388839817843079618114504456934773466612115941894250666180794347003303338052080809148681499369014079090481961927152099860103606166429215197272988978421673316335402603294952412626257691693472061277715867148597426534617235199309585279782227593334141407707759264552127461538780117607986308865823756979496494692130877126571880868577540910384387145320262014519106801891618166346316095540870870148846045949545700071598802547798187551157122175779649481972256980699103832711190299238030266570268906197635005095791078114849695599440886457778492200862793225930327217347242155879929301042431656911012020187606064501713882006621284764718462262077230571507369238297830562475676047182676566880809747649307281075317159849262384415033563830525644849490781476402290305572045612518526971657619730271680082311965430317976547873301667749990612787853052075055374003450921715514371762456326926844121996399886699634273583204388756147758425522923907778521153134602770835699362391510180825685999488767499821970017094260869740752489270140235402898736493657346256473356210663772667865002100949460032179241474942230019029292088617031856001215418224015723891421503576257407237052492023629624184060705307824472203169086397243777977120870013177216808280803010586655111727286587287565965287536628525620135532121615958656822636118255607084516423726646878393007916054549806287228074701791367146735051635202654501966496545986760148073968334345570893962125168623590651146300527994860262802545366501979530060970069204107403646167279375536003392477349113908935741829445808322424249877770435722342929652506576569770317257641278845567349579371218560412114887880145453159815624437359011840755244726526373542068793065709915543257990969368836080178681596984162981883340510874459332664054483339660064562870550074148059743171872314882957996294345710824782312257943869313394780470352109746064585630986563933929881476065908687217902127564621267487259312709263451657656300843153791406342120727959902148127051669389887737058631294136464634932873363828166737386604027513079075069545368195366999489647059387891086861035360349800605875629409388304439995284402211851377317795233695569483651130599283544921825715169017165118545583331922706821734357625830373679551838588036865498016392896076705355659167769789125931109675818557618091225751710706492921450234622591196112035749899712245001432447028802486583339398274275598381138034333733641122891203161143493497731441963843187059408097091520439765968859721254961228895494497003689162697132016762905890002743170128861071050462681926216348691717877727314291537311176291249951718930283082863147750203452775543099311336465619031341480527330181199946664824529571389235358915132832846415134780198680386886849635491493192700122996624428835289739649053227744624955276580160165307815237080612101311813891660947978848015043382716874928800352054169503058551090463705202230375850286816074342264793959990593534497577073979808002995675213617391035056084578029226308791712952430178277808289678389536954041136402852815913760314756533405575996694858710696140435060287751109482292836085145301357504614227968144104935864028290586776006774106066805310817103218787469428721400136891990079269670306373515192646627444990724301922118035364374270099769044361019023911980887082878794573385353415058083464798400234820508103291514145299146312359842989010668895439289655566933037399368562450745410423629382655049515312829121996655724157479914146121078513088035600904853216574748818164134962503465893549470149239787112295518466248985177343500391073833543088006519634491650865935937987705653642018452213910995428494705734141201448391074317470591062728208295774949080405415342669001353908708198615433587485512942934084352666603261154037867050032645089039697281059901281235630703536132070603592161494272762409688323271446054413801466769481368000009348284468658332312196901485014054918756578732620863252334436872869277466173499958291534930559206158811964428064755282314135522964258769878170956456800888407703195776853544367642753309341248039462428425017517146776898210733291648563660086036905247991640918160289439813228556857113418114198975564015536091521442333462509790995415595085245278146228657671639689443164621288911378305017242061210586745286238434807643956683703276987254825631695446506270162960098932089440955937055860255592471691755091584546259677903806046486878343300480589664794634124260753693284662658796978246852444259791881745197782842832826848379986447314250951878672258244916784438375372076010078345500672029791840991889016772974038806658744642039187728473085269486552282253547321528077938570267866964084855493420652956075300327837972629163261494949445419114780386036397448220880838432390861356394193044624486819069070532132486046639617687891310654884371888822665540808536763459610059782765399462430874596227008256956981790775917179159316518171781368211834234119149379413486966992521809926858696848655648978769933587198435489064334657747794652130041350545975068774519066818560877126398075913738220339127435812154841856759598544023376606200371540062781753057620881133816271334754985090632969092840788141475276190479724194672558460819946540688563772652993360036887233301988551387741002404142087580066773885556534749354112545865008996720084793772666103354540819901002285559322654480409522272741960579108865123153957885851512137236835955038617255108411804508232974832330436546862302277838720033249606510765023870223834602804390390257675086834388094433866858178002958325921889942293422773743604475299725050256073213863306313845377087312758935061977514574568937878265668738748287670286698899688943233235821519788685447803976817891814171494747306683209226076349157331436849423551335996270121483001619210130364966361058344168696102398740032106939790309543799817132196821278622391285617249825343626343956237742597008198582933866958633528814144423116772571808990349863521956931307416916038553096908897884209158488233171905869655377703116150286261277778381002421968090390402579922141840038135152516424269655000059094802720231192930013117683080407130637296006053822343775492180754077802752103820860381387469866308565549373073587220809591722849460072695414779241470147272286110056297754759887541831149980904079614426493558780078621384605824833863193755843394746085577895080582650426674216275278467795266092012319177157985587992312975747968397260780952526978031358547539799567797667177188114283801651276300308841245558357796501401489338910006918444304567269156000670400044638940334780981998780031459045189223070284249729341910652752425454368472998751386372584273323441073100402495924602462609519007049692339095953665768833698495613408523302934192447806862411753822943952618338579842105595460403383086972668000608612382249312372550828550356858499439055797630700609508836662525749501507701991687777737135036043261804014449938152717818202018236121792767041911789790836384461998750811001763062048364985872990730962007576428972358294117336391617524998403829308012765703235545170065921362282305799885192511545432538097553043243358002409354221519332840541055437330292582596120330919802666585310335603423929664111621981711846010784475064180518486787957855822769789176371348616185491414576122866890038141206186421621040648115678453045702659984962056839075312634864709032312503297776914871480766792404876910738709144661210212247061823914431878907965567604899228711697771964457612577977418637010667729806126908613494016265264653054964068513971746026309293998922539818190445279302164095593529128822591389606767560003808378601320563398646642685432828942777533006428842091915751034938667664493667405573446711934524824500825002029760383505327952071868887371744092625528930808446775396161639870238523886613914863731051492933929770404618731838825979562640006389429229897655641490537765275866456025671049909874286136258804138249166709462833321429992169459901288460676949275596795386440837070951882512024082313554712705703983805623857125944856451424232313421321302260290195667473007405832386606608914204675926716566824060726846246566856568179339970406506679165265403433413007275540636508406976512966385776682805748412632928034402865147622229175057663452865159322515362684596157391442018591451249201823245193417300777856614688225179576307508520667320254398112270341576019197031190442587593185521636329674731143091538615914082808411342468547270026445231166990121753362105009806754835051877379881610493584318981118864449853460180647598979852335037189118239865042373705232305236214677261806216990103533625977129401850711909858225451746910335046734907684144903558526521252897860953985606872097531232046239536930073320680717149697351376452031296026710964124517575238834626358654585345433484347975078416543970834057708602143106198337217828469451026784239872773577092977961160315403996116088730998733531716398599008682147897740628736120987475282693789300953814103424113052548513728142607977108584874699122984926704004870243108218797186648489857961509518194137156426608596731502578392363661439429336083513432367702891781048231413868293573367159024111732028535843113920579232243809333466023572961145027937812281712059639255842246339986350083294842999671519944027448419457829209058380862183571284712654821276650680462859016257150436199093842975185352510945750501453382132724843639214765582909525900749311746912429505286617372184474918497174075795724331430126112940007923409210854107781900627342445731754631150860518388352052275757502107103096565338097350767843339847448581338822706161484903283432004863352069906650560182455860685227474792337391771106626652023774623914612648982551875557654420461906601812045682948422548008884452037184983819953965838332551768456453577453699805752054770578254687318125134588039533411720185044701293332491883653306523531357385659100093868913337425358168553558691583239559242839684682238437686233660512509774800405079258030317883361313453326350424548365703951083782703871990644607762860615683735021600539920823627359605947288369876307910004563732500734445264360099802681827130284443344661734712081702385361844574447590224084929810777099504959504639253634027450378617602767430114004309788644119884719091669949541671965830361777541004264084723905477379919889075639349349737468543061323356365544469404468478123462944085006247337398798539382975781788288311897730067299692337462844456634864378467578434895237865013635930048050860134549157259011386385974162363727583257557127897923779818455101331331080195300799931123516517502327594417207235694951759443426290754181533270173067215373511057604016935106404625292055585303066667302423647493966953050429108779793251986896856098599445604418216730852443163119921005457083367557607004235777745183137746145419736369474320834338270175284034061234657841861303809396500594560269984325245170210289672753326285915928266941969097432566156047814095836675585335353799848408162180470287954299268970930291658591210341670476271538505459504476847124171653400265221745122303167467494402028236761904961845864068279820399610283963639045879084950818029169491638399954400267543694634790801021917562928359072489658784340041197439160374892943984276688995717444482454729761431272278859110901488977168951648060169409180674193453629897760563370639536919369381052694660226462249463895553847337450826760628019267234656584032238729226812857130355793094361629471834449924420987627565634552061678678815816975815960917874242434319573949288866622416960997507341839567543835832331458231509958206023207614564455255191913631710731607728730615281874692540302952278947897553185622457558773320856815387207931702058410007854113088487353951049404684715957456292674001862141147253719325580538860900178047198176562478541259487569267225535426538405785681988948685516352355052472166604129677120838928227485257145328678211875282733312810176275818834732490639195377393444794431344517181888838473449019058952039985099443693212860486606367859712677074407124953452765891485357367626297280402833215430690970471671168853476676279722507110508363917305320546114720358451724878768241956845279463104214551064450124574604557727110993855458478665694425662608545459204799127370116169739180374789313750005504477943165481885059494828068598182970792893389191511861001089260013681207473879960037001751309867662716556669143761309627424992918736598416921639492238495809659643612423176576818707077898007886235860726034216976131560915508328330450764348007219320506077128516518600237955930156179620816155269435736496510226687045797906305355749899303758764233762324563812664329722782364825307295420746457221639593502185494054265047358650855243360057378523360843108748268949239148292718727213838313861279014693195993946576857101664225371697190237229883708368892938594935980956725272258012472580333328246028692061984089111332544696919543177540506247493332603421346086317254687408342363621451182842676640872030276451953223084032633906447051362645237475853524651983340555625365666578370098080672320443317305968048546906230199375744601828229344481791271160145250140936131509180716288465211254446006040696718694733767326900890450386708540759765811622577824055379292803449669016328915207385705873705823175622179289079854255269352486975169090576336891915035535760003943035144685292371793700410403901734182168808519738408669212801124457838935750722892856949918982229445083865130837856774602685042393327521135314767018640332585720248737196124122511374864902323401684414579750468701584886112655561916818477839311500021994636301909262384745332681066273065744122375198264478824908429709273665999218497139492333685058596419305262068352200501789288468365771946354588317684970626304406805006789692008673885571161138133763669652624840656062270954427951425226731103564708906332246003982516501801181698144986208217552065912189867065349419053063481922305379966079011466193746565762826584832794876211794352558186631445929467565722005864503547374870136681884084881210561015956050510921081173055621059786909555708732998598709648101171787310737198469756716986757294328318567638294060325120125895999458334612546782219089656385157885555810519256243819532882005546342578087139705494651900029146904713199544575116877782801062605813840898428383669638218162925035443918592073012950193751642764254267310516005728733972364787273988246126478115563098014162424436975471554319051733635542926240124204454784608382912383069346135715290833357177856886546203561699637022494130376893715675282644114399710916959963854309980920147835105091910212366312929377144512106287307967114315565643758562565775097197945094208407780091285028208617088964149596631404808251794171413231190176962963564571506035327035699492372148344569445803898934113465274528910049050753786589379786405355370096056015388385474606797747485095321662843732335627467409165798781396835865692839475418649361311887644762429550378733021267612628450153947002688144695803461569733777762385351428774815897242704125525740109098568166441728689309944736929597760659423302222473614061571319934170601220645496444128011812054515958164546407686697067739510325447004268372874768588847863780111206330087497667154909696388326241038576174932686978577782807857692163614925549292760925667749823119512846337792399846153725583081723000308467776289482361288849117003290566718054723587117793080604373229545070780304454106451041137433702004627763335714618166702746526764703720897796141945559794677515743593981381914027764592422059969544247500862168005828050902414849825779698395271333220622990403830873573304899340841597161421254145573260468915156053436717727962221481160698719281823305599321835835911544817928795064326722183947963056445652488898692783192555559711292237442527717417663227603683981826211121328909139909390935687787734092043385637634086310564564201293273404498555795164802221468927745121867393042649669510133351141637395070054925300637919034433730995466745702528010662868187142040505587649935104074622208741464757752491612317267197941616508647955410261511972851388449430950984899047160219315116111693633609107469327106271022065667864967553192488721048755530349801682791463858322132693609307383926744765868806153388922005345303849174241354397181587404141316424581649449390844021860756891394262110510898209666580385763509698614964565652682581388351214487709689002641553369725280822662838646534448559691183699379113775355774715014600639898436273335657599386424499072591767938636190346279274741254613335153257580367860837791761185412197946715378600791272273625051215285543503254482617221343810705640367111905402895382578860654519277878810663469714063617597099853137336098396329886041015110671550452681507221063570189757449766421816740547411222262080032664001393833087192926878016388320421742715437675969653574866278716724647746764141352990822838867914828941718153151171792207770407822801344724755823804125167112707316864562489516485828980547852026853685261091505898247929876411172845554266938137817498368275477785936444076119268118308068634264963636910181887274606377981325300698208207549306185739393152014003798684727928741325703085553414010442850980738349154592157229467785980469514710038634005187527448481789407165899568627757082965414501585054301146051129302054918592315550191647253175784568783884242688138926561458626641397963327122560247199972592365380689427732182043831246208341830430938691787355795724030818019095406226538222599769998893433060111202095756503847042273662664186159257675938646484439291940110612985027478668008221482658907001385963019282756108783909253658795132018013517636858447065324610924496845595565249286453216492650756127776341471949075893178172791373362479704021293179043276131113585204638086014040563010105131133614663701203114445372641782123432832022982197142486353151556436519537792241645801116811814445572293235626476485014365337809896209719309716314174157625036684429915376861904308716012329198486242305497340730787354667343391894495548437030871708734617888757531330703231474506662815283285077614817820007986942824302053775887984910668000911462609656201390299264586544660670957359538496794274099418474902670898848422345655250303927288695678640058799190859809636411215737371986895203950438191456092012379659280836442898339478888706490359264968188977559704944670784717192164952759915430233433091716715624417762096003972525132000829889363547843236336412926875945207414002700340838346798466979476193379517589094030676428280997746944448913251666682373715181626075406743392529613734686791308986201492270229725808124919263150502355033363012546186072710171245480473013473251344847697211813225308182818996435504594361644103343430409522449515073442420909776037276792939115027069512545716936371610282267520061118465420858239678161390099652181986769627001746078848911894322624831842771021891351585499155158705655068706039019424080282029942685485660914728258892264856845131824792920561704686594502216207048888489790473416375372080445998963311900253624260503882272640587332465358446414577265015300291912344756275229998649626272921873207282020777409252289123954805804683254726921455689845833589959478935035613654245664707322309331233872492757147504172024701756395375678015382672081854560384549198040614134740383673657652821483005527032551563519613064963665656560347241496661940807359388783099024192362518041132068669433134237773085811915441309162818251995357808332892587520561779442435876961066286331504597463145704108561979046641602697962106833698372135662549803175964762438214438962637846630389580798772090576367857836978165058725537584205750693013184345572400805672470894755839193471934575915863742771057057784281413216540004323183215940138495040045565432600882366891011248541915978802507978109196958881687908578130196905230763664126496254668118964799959438222964184281876250472277575427582729573212620050784363405004168271123558571989761061301563135402315962799547130223849745875339428104004794069210939421834589747466325191154896802509607912236776243254699939775312210896942723416060167409954457661717544503481304736606509849651142463556973339010846665693529682431208061045658832593502384624358257275719291698515247791212795457389697089733229177509330011976678887263872131338226668387369953319623155866283417903943936435716678949503881214962700607812325915427453517621818634813589551730201094553138103971671604462921459641084180733466271352777080882152076127329957275878234067765921754139898430097137123334981525644109692587674258016976101566294714703227619341386456124740185756421196412929349707581945375075156670523524407443098431649461044746887272397181028231705016364453280152430108482133221117891719421633165878327186449262693109651812668142070358232782210226245080277779234358362353249988414576533969483188112007219215625184969188781545829516744952444735546960422806119555735153090076163538582498496861054159219277100482272295982224749934376324255885859128182914450008724018558381943954994901986054311766643550366213197709740744889388458131003898312131950584423510687056408395060689124537760088893650582001036050808688690238229274133782120717845381616073437265452822956627001259623857332227756548426775308578233372359472684898774179903672387505331839215796073930519658402182499094056280775236110341459579870619600211544449743244942725978754398728304669827489072730315962744743626219515082714989257319279118229212025185973809068833356121404573407619005025954242563224598789288350015534192151489665513178769931132231638082970687491088938153789808270434239318751241319696790635544773197378577622802628986866336945431719151691009790380587868061023296246897225176418631659877222225690165103764564555010892840803092198500805502075002611302578330034833476717943466637591008279349284039660100503124184885736772173766627687793295809112013459179247346067079636661435437709770270532868990802490350585952878855721750533289659894577161206330626629185365627781866269818535596931848492403769428971950767660687023225097434455846022094320123707914107683238157326198791947485512585006944125338732449283579742422206128127721782400276091527926767887195111327942775244504730200610331665009329418246675754881386666533689892086800557649081417566622668426757484110774625428740927063119118493243258165584037309773722009219533668185250548592756230543819485275005609983204690996775942370229743196533087459014544389256205671086618892714284752860761064429170756224965994181371009222985990593888534636313958945103047933905059412568428153138203469569995605507878651617364623386785391816476320435529514270923042572775301491041675491197712508708264770528636606155972676834832697921603705510446846833713405430355059775238698233186312003747436196287361255220473240476769067955535126048503346077290467779326018712076134327417851321307835221972290668849819124311275238118522703408885895555902233125787481804778231307909602605206211418172145395617742746241415977449541454921342433831215591343782488337273404232237557162476406910176604955818475074466273282332754044236951539305625543118004768055006097641651340659084320139976697216830195568585874345485459406765715467870034745591985814854347306484765128687988789073584506983244921259665575450127166167924599121980554272398023474613656552314426909898338464092400201209380008754850557741096569329000828622171596313674694652447371398176428990985436172323081849483734788814510225521371962994329005191840351003714051049690769703663147383348666294082818577354484096522027003889004380936202946410866432073940212906401640891344441201584153711154669900508959859781520882380162259314363595474989884198935895085867144524640168290515577219259881428984868778846347938076390729508150238531982489633570375933401678757580226489882897587911296827753445116265376801757062308690956779030033939012053881358863135932188909709920460159358168871308567475789207816147398566080689923676917147620185002379113407214735096760116871133215031150928084698313627415111961362382584247995733078519547423311215391773991217704965205324637373103177289474208658476599024812559781742954922450856243442175016900874124421321037534451485602032390203835817445560976998730063766455623055584775781910763128203278284898783811878527793722275879326718169895397495413743198721415850585854991023288005487640235461797447463827846961170150574594134260040823711229197104359617915851784910805043258063298090124259235304415904432923169362833418988857506841874398451066484473987848546325233546465308012941495247360709060665488967917496940772500304530067145032087825996481506271123865967020607457643809700055372439904817608780558373727677985309525983363398700696142809293336187405288897735437101558172343186301943471227707071364157858678849142403978462920675674073166265481161785342566618536335583582878689627858692028402984001668517216293651547807802595429571801038628081967164007946932949349143009059019742212479507508822031874209801271379511412439731166247839775538102505008272316419008073904986514414519824114978163520037363660995821791471257542686207177517047191080249945270973745973456511902547924805761185523375886024740344105908966885710560898954856690813802068417429037536455477293615526557222565875757695259647385034279634772892741538137117798543962654264461760556649809940514169387198323782171010729332587948745910257093779197145324090088657768768232076796899638487651947461858375543189426530729782642867879505645746205389722213099095744921773490525516577683423750525303674399136430868081115356431297082061685457978352737454641056379624506282627972148094865340504063533748544162234213937859926957309060647011954142243228143010362582163715173092460210793286424800161021363864601931496112373053064109659183952752860767433072386787100494837132765482268405629949899021164427858639102631732630410566914040979871466745678824204310316045539793401084958175494786836182361083980378550610985041317315857317647270331143896770574910603983432730500615477448425965112694420722974376074828574392660311544421977791211965682346735505084893769587433079301679232642909591299564280540959433866693754346693766120767664555614116953112160350734257413173922183400769494508580633628234049766227806819993316203555530775583482917242428240616399186489223006596747577768160344416984014468352471103809587639906857704465678389394392680033442173049835830042680942261619823905163419035671816702035502353709278970268137743682611710582245198667820576867133789921929767216511212483689995726720331446449463063228399773531150312669126647237789891990208789671827511590855956807326536063555885051975398189891404488406893919016998772838088494746006006937581067940510145913846141357107132945863066540129467802741594541228021655285066557697110431029111100780808836015331321148514481758314450205508515704338640534272458168869198861863572521670605844614136396428434730578498957678317033554355308144194708683885941638206169637824478960998123807690448010652641383685057403600895775753676326378720917664504518409369352467460643993864363917291071820782047998558383929603684887520539888324298127283505977191066342487354821859518188125969822781610956626328273208096204571451365120860135966806166217657412469656468506055073285497267217562576645684527887098755340776237438131252016789729037557452264664321741327474310265532094936506790414134890743233334963292930869197009210501948689189654241832381516598537325120483802679381851753992566272821688086277585579162513619341744606930402678495531929983868676377010826586911203157364843723100728521812196896762894551772119109610491233654647140657725632061349155530696734886376259970161152931794122226652008511959428314709041909225636764091777521615553868753663130907863182549966972152656710012123866447237451524369836217216266997771583241207741754741130254565231618237444025104398688538922686738182526360692985638178663678291026455772404153078114340267387370939273582293267138761385745155608433547450103063360334896903648395349510548604596047304923205068745955528033966878689240716112913962320746765482418028152069965108618793222680231561251999391174192711051763884180676412342693018114534512389478323875197971405637522559998381736056145600684039777965087480097583008103509422960497974422631766984877050763719896423785711634333292675222858031089730029679580283088297513084184353157913872743330752872874711944264251235799173110668371299480954191160494038818845584156900403937539015752302055792611685874201257955938011364708246722063431616925984629364992006765140972267223537682278208258320350357790706383548508567888272182341760942482801744303373430661475100699460258352933405729792113496784280702018074075530693046708502087435456445085325801632139847927042638246894915861228860931724492302397017571896615830132224475282265243295570517728298874095617318735030151804505112512282812708430647517490425105937834177565816837023997180290859513636828648816687456589449263567117716359060122813766589889470004954875294333558476562153480103691986931578538731059557338591076922634118242524016697472678174674939973652964797700547324032556121614962625165979110481350992445289220139614708315337420794860289020677453233536435669371189884668018970847407753404718835471421231874143781914799944887027884672581442080145330881003785469502273355357533128958878304067528798731474451246175535366473711306691775151181058572742559787801766468492912050364398659658677350887078235808893707055400834219148616185130139472088976896952273489806843236067250646743673796466710102886648791851263068297252929883534355152696496100374773972891423746615358625192198845187477126408391590402080197217986199614513859154117756687692595887549099544753273481945020695227723159620082467755224179059294081093406417757814160951215617918057722156777875510343604751215989494234923585800179658848532973429709101981348408280990116626610430998710944341112751409004922949844741032294932874632922054277158231741459256648405001819559367895595902895686720368582022407622527339860265149967665781489494808710346180896521959671994061352065661236473592291897411205946891167265493639957393298690046763500605812105757449729043080779937278895652389867699415765528519038359860896088502632179743557316037114905596490361895618564545288556280405456896753205651003555883597654885247826548262640059722318464326608753962755948363117561464556202432974445993304128791073832625877131860051929330609977267472487529877635196240489331310300086758945280220927810586493225546024630365168959098933156968955006840775048988884593610976918043549585177848201365302934185600003108397321072854302608625861092492996975954691771974639382064639215088158582550142776529353769818500846126590742890842801689552072532704725426180110367662983440640626712577239160617759793890893821416781854157856995272293648610795153018147102953538021992486254569186090853100877442933329090614089789887726845752677897658719173577335835606017444666762693749504859186444451722769838540714671780169825962794239597535584394497617486469444952367304491757456339648758653710418033115470788373658891244273568835680821715804740330716185950454486344685857500486702593725024814996720977948994568951832506348964477663276475363409212892940442976288137786645592086277025973525251014874010494176168580687422437067666900967990767831199546226295746824804662924766740282048565317789564910959846363039327236131203893129388343466674711685478231744780208629962388310907463359690756566359054070352073538345542017844014809821470572864246437718204783634974405008964352857296973305811551358313728841427288137437900756388821252424025333066426135310039634973408386647532724032428207176707966805494961715170767845233357112903261528410495542771798379909662489010567217371960576447099027056587249123038234598921472240576750911552329903680644503638152794070581264813644656332955162074309207557010246921751046707239637259286405511673672396616133268307347328068642030924889714022126960366592152248639709749685009848779331842555200710567441506958768373982794530872520988832805082526508636507491771747665458848191570017558080657900556690066250799905797037187819597420124358907413149076755740683335099011111401975902965689326231438777241576959604352131184112927294175378970550197737009494450443286147633027696033713257979885696004040835811426189035385056703459263461547440703606764318224434213584619416600881300230263660313016239028963611381364722996166320292575721797204323170504968955929962353179378600895252576143572641456477201965153883257566949184169534592616649978750290711297434480204270426347517709745960208491036777013843651768418856634521200126016567727876978620368964448107956630012442807276088363698536388936085109947351290690236589686729764672157488951184009485369040262877375743307836945023695031910117039998533696601331424338137079943632062940464720829163308196532452983214066275535242596027771059987895394639995849874999712354589771438253649792500566679776719136182914310556526762325642618495962537120841299569311376421751006081326440683309061744664305393040530013514221325086429777929385278866669172853363321540329683272372908080679578880311890724275234967545408142560215108730744949015713206593469149978510291854560356777267593288214681245730202939851692369584442184777990966866299188786882685404649404280762074662010772279920719263757580629498070778533900385969691996278439742171741383778764667774469809900258946281345129302415776990597608670320290641189193311477004068936703419208732913694137775114068368847908926591270816233072425837038252569934989770486033674734816968639284251257224986431729413721255954834751131317546689104537927342038995305754324533087522484430178177292067999081440828025356644513047544748207216300827181208153570046946527673963991332997734504760443830442749296486702150210433781354436558961952842379087750885430367841955994800371092048998414260920788703675662017504164806489032448505134614969644977495834366939969311495286819670788799586843719520589650367256222881913224084053754549011024594632134948830823638860314342648211371589413346300552066110535280861036651308083854441567001793448728909137643459643912026050908504911300952776655546444355275163202192301297732289522912184353337853084434721736341726111087332911440550506092358430587108459748618753806132098320746072766466134439295682300777061490798748878222978559752242852922477129793416779212147659011753634184062845135092033713791920905652651453951407519637953596103862990276126683721672678036048387847649112977572983119270576147285962384725944592330490875415613095379712075131190558468444632674368125364158155072623924453808965110813233330665638635588377232675595331000186007630783314813822716382116883996277797177469558937497326754263653107581906337234657005007891106223038723614408831665591208802108287029077459351058386084746391235404115046650277829286879460598620610013837550493659010854403244297604557443512967311392288238147022770469448767804665133057543095143371901191068865643609314967358205561407104100326832621885968065639311534596221717133596898590551585807046586137930917216403631017793694524237129782241723888508522626426355931234713337987921239505432006719902936269411277603152272566884042887303903386866172432466880864315478855123728524657378469876660193890973125953281421007957029948349305554917209750375435204382208818728081786279426126043804591677476195463568619669097612945553202393113515566836052576296512362974757257016131106572307625118602037234802787915809859525206671770028163447218024052142372051698778842831203177366862196264561749001263031275462957760899280309339925541105297436462998808423361923494755113299309789581439407217564699575973697141907942114487961037039995914164160325424424498131273917608883424335453386409808636266392395032384946441912911359400751367393791326767944827900775519062190400463042775207279644085461545564641469495842615271923621261845461354806190270039230803731483049581256445622505335612171206416985950476685827881846293148420800256058589682766709508990802770108033174036681134916522926166098005069081445200322107208388112411387137571605947393525857614879060451907195115388343032327278277476178375901811027995388343790122597267639044833550983025287623289235836178980322381194798783287390302046426914720688542610231647244641765148104722057559520936047059043435701418524107722826680194032071076133752183559227343571395052361369995456075500477718986171060487171104212814960534296986698451766960280983296955376964034420028248042787338861592011618204555749992684759889540635395027055416745871343303376658196503261169999561884739152607666753441679279036814915476522104500196104499811725958674755740726019552780266380960794979360167348634203753877578778616997033414659528793249957873892799991197031575314029631864370519444031862792317450723679630404855257091927448228606007789579399544211088132219798328908439723809797605208306289372489843831269229854091695614951484142039085834101021507500550937375771311683261173742887223601654603567423810847919289262466457460378310448150372795924359599825241537384515185664752356926404151846270312879352782194251760840361668248743584114902306080432224110226336039982966645161485720048951260841658527407042571299988581117341649908407173972201909800757561914741784971058127255908405719630533432110290982627324688638671638933066438739754766158323962803855101874859222546420865748829683313527324001956568446418117831108971888773077210548416822176511501547552273437647655516184461637152334689409352566282323571424149014351851536928755735083096974433655779443175419265802157606564655106735976155666330563796836862366707353356869712995326584528902540727810766138798685725230089284609296678215404499498895489640600785291047625332433387488764111651760153622069449053125209365707886171631119819865652776684999016319371615078336369383330599023636441985852008104626131660889886530304454909504091427666214870869877132337344262780442521991539973982500904824182562548660264590179655305316020676866065263636095299230232740613722959715359217179999362537170243539073297295479822904696445803145782153016528587238247993128509840682811352541534897740985320988192653950835411459527877104190781870363298166424465133843358186215500663154159875894572720247240898910834282638767923035117289144091742038491291111572459631302372935532570344528630963684693123820449422594031199618282713842264193769688929846275902963442855639444524342084790405241348252388362426570964259264122095077450905681358786137581407963599014940022958285312846065132304997739421272785388651007113321877447241006586807904918046599536340168009674692642970193707945686984427943983142297079521512041094387051502008195500910565604731284730789620022324397139506423793508799382632548565264285876666401279629931621953786066740889438239599670010718641063739058027353066085791723354369024911520230113731738309843590432025801845169314673200591661384568814081941013627901714537626954581861971815144736685600737709259860115889869223617745067991686384392475301050873213822952202736882802858491115761803108871825083797713569002267743763301089286896612235521560268659461832758207133887575006253420069254830425437949490699540327496510870737724608100269438171220824631247105077861347052794300232177423508868953323910112411628821037845447700023350439041933037759105693193740415898328205001398264207135464273149583155783917999795424001898183328083082276378483443012760201647746923140612844411979716067535969692335904620284672054889397513722610239651920663714523081797518241442783902799583846294826870622487174544179207515687791638678125259141745393594215645305252851970254830182162681935936037159298220637917953655533874986738457775468685965559158434045881919717693882720125802021316569784900028652469309306875757622887822720491459530832555162528203820916954111679459327593838102657716877281031855646160505334150663757184908922756297298443020317456815434855524189295391395402873366914112679475842058288146410406965741220258893820873525335662828190028186646648266415452002877779851911332857095932520734079810152906244945124970581590745482101124175990735263147543889419870595090422552055698124734963710373240417321487440318049289407690223445947259817334092909559437209886830676687115669862074251846009252358494225445662022335507425396476344742063247999952968863508627237990862141072981468840230241086974443131864136828478919209260459913697630655890934916637869212782303729963621110366300779422450249196691723752283274248535294117767958146435268796575425985777673610269889550897013260954023261020430476575047000275534330893589348189408934154635525835013368991984102732317964043805453252107112439588156654390761314511630973447186934286008342509726028780606867974319679868784323156156165467168596768645745983082435516172836201651735380518341527102313944172434249118027633515192567962559949786850386212403336559803093857566207768404615029542252480229322323220454735366149304711372911278338251141684574056785841989068719632237196440433558062720611518478703754606940736477700303388715109743761277526792235900603955027841297827688467363905788013493000882847644358987271093539732759428339318747175576515794384385491750930993367448489037367837243944947559286559563794775748704957349395993091477155670730062219204452300897846651733921786574045315419318618530877083088715957777123915706746380981952488754229943365193117971472481813071910710119382150034431283570404333785352402758796057696896972675916802072129953720045528774577493148770007805815219970396486852262598515351314983099652329149080946879806745381396661473505254199625763985906242549948823663790647128294529443233515164310092593113475178626645155994828262066209981783992103981291177849853159598534005196413299564070678540483621876769698134766853748046701971544808089962372984712355688928204309193266618496036627710396502147294012718610759105559212437936575485438003915726394846052085071647669111660702658342483249797203801849663764794706597529300929763838583563254730505542626294838022716248833495430011086548526162755002430714659326860595659637128474778608673038577657951297897214590610982240599368080401269376881913009901608945036797979424558472008517202557049002730400749303494828887041919828125606638445847445537725758111957744729029476877974112540943247003822492636166042471988396535382155806167332313510575873399790546731958566729280997968726629640381523441723457768715385437701364151744068466935858961392958155197093255558110044836635094733937615999975965199072569816239713608356361397094633605573213148112624628939152798114183283726839138366486124328172947001489357150434735900163040078208513267922637321678946542799464163421100873444753492448253474034500076297935519749398312917569764858893799344937779961446549883156845003371078605047826127904264872557303727877445159992798845297702658966280778849311033001199429472003061016554670667392193276170198894852175706219611588286231708618332198604763784767640632950815909686389955379308385362718472475644465319220670363214011806958705204745447694277926218314746178302967586570696147466025048246823830217263282583000609225360233118027062637004884682945417014524374317422012624784166381256999819060456182572878542107189678999958136033750421472505811965431861866016342579530515070899567716697761926273735789134734997933423124740983194121343853723775424409215301208952918780708293242595315136368871154683755991720463968570982373924443233425050218758731226397179775388442820369977406793443993504566905901328371986110761418491669287740231483371950641010343344936858110269279039687620360050192181101783213853714037961498653121141084994885619209538779137299598846737704214472348832441819750911509829349655876432618568571444118010021410093035032035413240029488586153273296993496909716011261479720787873395310834177785079201874779859248913114983602667319121858751180765744534975075615226604619067594790176629384772007288412472777527252674829059149059441343070643449277469777838714127725711204901182399333971296482313329341004834495907132679814144910041821901663998462922425137216784541488393613549083189353055227733948713400137012692340039288891852624987930852983462959216129804856485303580707549880880096371870110747434228989897109102812213300585342932103072067732599572338265300023774236087161576262865855658044842856624016697517926773103664855302671691064216017717321705795420707199851382602464549044824230654277629966446330494855250984341002938939183239827228989273208382033276984568734939044881303289309594111708693287231354590158599536593519119040061366200375817568494433546523966171801638883553804362754820970047791064376991709470340577067986541589469072750059700991415278592820466746498856866320152437614270507458168820015622541991918203976791839090578345847344431858898341343320588315285911602653499287387684464828201257637843754264627578030814070539537009517242299686722757216125448895656140092029234826687488311605386193119806578833103488173373388023620966892630164126879907163712524381562070115211926070398468634952465623703914419216121641608846358920086489328600035535089523723764569847861035309768637165824848737889445298777230150584527996256243468358372915095641407099793302755117709809254211428244670002101368288631295835180563047151347535283802520508113526601601704748950175083533840208269885936254370144613322939211874908603782496287198331272946820196906531923725585530529208065305413717640260597144354137977059360778932844162993651871680317244809818461057596069400435631888694957643662578385306354265725356675963788260067661932530218773204356102707472511722395345447809606066625830495973153870646092201564912442053457806853307785376247473342509158663541254541992674185466173565083953694432381127334598669275231252294830347350446243032850391754832508606172114135536244657445057362900673931175125886265963283699993927752019062461777990996640485025373602062221419212574828633512546333980434692659992260458870864899860412516075805075108030477206306090000381537590294476435313705268199076001506451507792267558860350178555931137659065313022662477791765646082735520319934915507584581068949048100703022087374103493537497926941981665933900907507343567034231725146622846562542910674806180118623325980014126241089532360728170757360960187144895143976713348270675722923793531659200344746595178903078566969571329996161306005211111115339794556884288191629176147560818963896856561814540212640506977069239427166531193407652345648884664465607247255414465003725683358549495129994369758812363926750059925592906876599638428438123692569536822415027255380300406219534059012745205159129622933787966402833965632577987796556107519537382697585298011341445498351601256500912552395321690542944640467474970057805394301691655323156263258201054508507527941466519862752307167752731946261276027179910178014811987202917986012863154609423540427460222796001312919177748625936721493920593122480346748783773178176949298575106195940335753666470474901661638039291804943653957783307784337454576643133162022070438993580240463544456507187953909080442698956657347150351415047982488373628128190340581747368394611640011992320907263443012381245760925405766605143318299049012266048010494140742195323006969309703522230726198583996233175414200881596966088234726286346510153076017533586871589576153163852288324837691835907684893454771364466992403931714765106662404291196929326683699274515152264735617897862025280603856250617869345719358801027645134667820279150739350241738692083978181832409478370716103356006092232863864131750754072376080203182836133824681496804419609475080688041035483289676532925336177329312790788939742012186923780985019307619276333943082328122096813393551583205988668693941244641634068827178084360538984340362812626737637582452489728300822784777439475086519503571839896482034071201712188361249506324668233219048656112829115636001318324140449519264716644909972802625349647658240125424825335261210601667034601333052551093687319020536781982118967531941308697523671127411135158256807932661784961710975557007135016843170572790943100770079035014117459016371710462453910096749854214393377699236759740417007199997968674913698732901004994459390264651799124948686339651502245121372335466993487140014923474110793143682909644573567638931512001194867202457440575200121381056437191645540171593746960003452350515894880632949018643584968026826726773327785487730706722487981441580530673879538229640016069639047109962620462839448674155890651684358469823506705618139213852157633152847510582012733622786355578121956893428689149438079720534428875944299727395857744866655062057699242743703280458464674570311602809780150935943191338094889172397268359235230296041883302656936284673668177794613861165800793111859247890837823842044212420923063865821321461571264309301185028705037056426400482216445171641179625296087682951700561736426367551441372047023944196738697150269831339799206101312845239412554274240988809696250973924430661846115516043809224724705066072752480153351929953369292455836670265226280268526789041034189881685835918370596217088606236882554727053879615413322369764382735671314210077077212018093226916357491148040201255285135466209901731780359651069786120504099840609998195684194299372585697238958863065566538603839299745437651326809512498708644677029495397612725662523606153494500265396452898806860736234661190897076410644787334283249015605147863818294354248224414519441923870842738707754064473120520771020698686174822527892664022233521787969326524539497335400169898552271908433952027973822426434615099606855248794147298857679527360114399983458956559490690226291846253081838465611336189698546267496418829979189368349867751127610812505202522051035258745591692571994529308060838887407197419494302486904167055441137380386563670866424408052551227045068371877723137770412336941795747826635764662503885955386095387207495585480001454675873689054236560881392496847381303611440353041916212105231217683190984832228332917586349315165700006739428831973562291729535913941910625187402694275929565575851693955690770689606601626268543516679545995112336878671183109647043924770523422033737951241834330513231155061729178473887888904600896895652405445608493365866862484851607113092898787046038441581627907214971632469830336920989184208616119712453305391985949667857777791785595267444442087204020449886405295102872391911394625487752217662513907261425274972667526668434569119898189872630566336688461271388394573475601429698556627905280551955625176982815421683294484924275874184118157898937628565415592388779859997924116895502674391548753017407881600967151955046584281490022416667697754912973476074408418835855568846709228233763262811628795543090774973180346340791951524758766600256155981633526167921113592869225907134407315604222581458776921102450043301604717998803640380895657107489623935997628804874285076193741379825743431253278128136241322074494843805182424435817476249102989253105002262656471992516635143104619806671649464567422194720536425487479549636744959553950247089987596278357909906113201697739217387866102116502744236137364255772692865235234736671234372960763269071381373694133088603518791742178256563072627426471524315152360301636193090896369226759694043324087757884769675731552683746850250023409310443427056918234563601667603473801160044192156771858906190336023998338729015510976962348191502608895115488152443984324531402006210418927410947228982581964970564492510413698383890025066579539420867765291026697284611972045089175670981983938282282871061875654656582966471177816107017097695325585284879241603800749765634635509714057912326392119182899862522334506477120839748586030613733330191035500389255557151097220884877131965696547617843349878806142414883096775953435305532810605001082650263636495396183110847373487619506778086998519896093586299281058136671352755138511596650232398986029081031181848004800643094628706621737578119781966855996266448776265694774329137361397746556247064563306142744282650892614337539953187883630482087433314465914197137261065806970562201666004691097798476303839714934211092764965477575615502880714653709660199338846147753215842786961804436394916059224533637451272124640250644340199662953988895349352744867337090414113853315941301032065045606061946148807693881140267527233481953965340241030511401743390636657622249009865309273113636647430457240549808645936523090790189086014968692726238986959806719680401171440391507543223788478849717793874857051181549909592231948286394281860819303147636116492114918500678036682267294832148255458471315929626475686585076832973426195584214283872816260280748028339883053087525694805787070745528502572804901871812810028637057969322693017298864206011885115846800352820306658510418685898240980618939210861059564313760823040526941467563435625959158519748191115507285922676959651946345879672349823339085441370999473123195009390687991956555944496386532491222213232763736999582653448336946468959971833443729422588631403682491986462612215857299738209279833672976557314501272461074652750166653678528127889728550728342411730643761647534181735689546102377984111004597229665874134365244803013078316577829041156702912362963201453499148819004482503812042639094662990867192762146156669359935325222960255446536370564608930678557974256495215029501029374132605432007914268804836975039118603502875386975718913849570162922397161266637223043829725614369632403273519179340495745014166176297078070739053771614775028473127424705181358065159860757227437455125433881985921112871716653495172432924429481802314867677394295260429941874572617735512131308455193781943709895110788561765820380978308453086437529600196571412545098350694938297020284526103559509891738302733136742202919744283389814331862339329329310976733453887740582436327952633280282583923370403118977725881826866276171151738917702115894754216493870859578259171088877738802384035381345163466429587376053214721378520342100490039867754501823056426227517393731388486432382918557855808099209821436808573585092282010299293130309401334179705118909044379269984619175743388776435010125616118345886668797017166924078046152688792124944413807371758548614294855005375191425953621450162026199085124049441159775708423024357741057392045636700362552566217925525720805008002827852831390377412868195326063870245177029064434693045924251482142791608339060806971586517512274858319440386071627357694457182923380677404347399248049706023237740284016940768972947473806357551066613409244415899295589745426310952754409942017203794034326641518604038527206511759539511091987014769243778645198785509478751753691430034889384264097172958062498244029566875306906771717357571879442054862759723058647107936505442683884337702763365531783977199433112908649070814258283311814873784531549794674704999502551625645347205985668813385888271317301110616177615010231711884313805415741580636803533044357554985890938143510588553401101986573978378305112133660853346515174704241840530477280046009655278278672784717874570332020808871551953459534566859881010912282215236893239702704818309451317597611034247912362980037684169249856390723456230164312112777514809001305662958710598228976557191774620775930074391344263003613236283925303432802951852856515175799437601738830174730387636289253738397969411101540950526116879836044545091563371999730743646379476673645871460870930492233148141990805570536753971770443426501044814075924917630268047062296216450882950956801269770645921895814224665004143996514775991076532093144998856800263274851801872613386448044788286405406731630779566632192438966138493263553768709152564250471244442453161308979364108719835302518809864649291889610062707566022719291914460359768098898629258937997924663607201102120046113639307187600051847757683416020933216422323832432017594697771023384959874622657580430203359502093021397027896351535503138927971045385015325997611510505081146622938699056913485052203819384806631834754089173448747221768320133712818375608885846708897477990148759978205357159456113406141886038183216094273699579558893982039250903537700217062573234200711941876794956883893014563749980334250858487413065466235475627114818913578294741114996114461367637507791480710817897602232175116963367480527221804797356846259466644581542355881459769892113579343279218612241087348249413434403711022521191284335199529490288154807510038649233537904219770411845835795965625761336512211659961641858702433306502882290539186839361118184758862592278547173302516015574202834469165476876540244519029371439080089941633929785409873988844052427440928549340610566788142051129875989980495192724467413806552056499061628009218668898695282881671798269802450521423574742785251269131962878151367143337197325759970431282764499319686457271799752962056957945504844351006844370634192179236032913223631997917528496507183608717616129304655964781626957883060628042781134048737954048761182244595109412338617539233272593733835812275108793945441150313946241959168395250656805390580892020963673824262255885685577811239644727265117013662758005631337401122984881688204280561546042453153193060557169261546378980493723674332756473399017466637350341538538120678837820373760632335337529124056409113558157065964877724515735751817002933631035044456025442563142385469739083533548640210645338209117091193934290298542914463758853687829717586678059755419123573782208716374419216303201623457943172813828898296733365966597249298857806545166707801549463124550882809078470877323163966467808313254016206416452032786907324533884952420756701869943735203209826861159044496123337451027131823731899086483781635235929494450046050665770608183293332227453491394803608832970547675997750403362071099007299271047014913007467637124950596515203565629696274022847307849504301368107299043518359993694864232628458889176520702275029676627300523854433941827115980676224591415799046427943723557687222197269288482307070756303240209305267482542007493042115830244843876080638633069302534724644496069155084246093304660092348060029877648594675046868621949615821309145646965043361743229668273191097871474390568712600128325491414913182521939458047756863055674162916009343593631127831563690598720915291871498463361401537058356733127236856407725975693056341633499578889073843734401389596224909142305444834509160931478435387161838228156416709285719167826475451270302752686722286505804259933266872518689528632490499338899133377765848573506285498450137676116887602252583926305526377477700903038112948390008852563607288185803635587692838686393040356034098432166028103648841437325052170946278188981990246818186993267264194704019231405082462775271392907576291466248731400788350730719373799960223238333149907157792945498460141894285798607331672342502060325374770175938407239915412676622352734806806216412560634356885266989276258849612809098164197656862448574078745280763239799026734093639043694516682558269589500764684954744130248435369936210392366814075036840626036203601544141197074533209316872472681443050511796494996342921248112510039139062904294962312082842669491346266447845457916919850373976537282906381770666769401539686086471656288624465394731069756473306724222730593148840660228992089373696051371033110544180066233249542068473780637026309466265597216628386573102859433141919229947994045638985259542177380912026842799229424670275910447176597232676978609458120069397633708559000503094293150059361930288778634600487513901868274682622495419940190495421262060559928354135672905433014483236668362881715316884744492885661596974506940376253170885839581992219465305850903527558102951367793095726085098376948871751053967464329618411400766120237650223600366104151093016678643445837614138009280558853804331987884755947760454670562624305780611204312384996643288147790868401094511243919118835816417533484157413692273305106013852701272671534977540476140501835192197192420586407639146800315827898748142097042746903723731199891106683423452175298906618562957688752947298528549625882593544989651839137384740960606836630023745278791276649974218026075475864930797012826719126119501922851272549282359593549952227472314396165233791874279228401311742285845446762904523345094747066448596447192269186880705343435963995667425978164169819147103534879792483906442075423634501790064586177387805919995567524626981566600052374272879836878363758158734116167957748331628809684640475895191517169341196121839117125188697331267541372734716841630528991239762773216834001119556684186775019107920633957141838910407521980972039060541584335552561525821737110949201160746144243052858607286063013668652781091450902986467580059957370857472248410901127408144384953954163272260209326440689413846190732398423466204140213592386630857776207303542876390451647770276008757253145647995130747427857891495498785877425278249783291766743069472956663384416403776674933820395686057318322597738988239888223319660011209061232337424865970670966590505360050127608869582117191819293716287506941358986397752450056121306185437667329705495714708916964683694502597441208438481300731422462289179287785947053747713019365531926308528508449960955206280826866827563131803737529637639670316445559896950088832102962197291991581401040543130136447081415928937341264622853400537464686850167555179878446154974424467865808099175572786003587093030521025932937590621969899294936903824282453289332813698483508563863938828234835488050260606719549849443406836221242274711527220275714664542458206637490068017987709133129612386444146961818737561777182734857587262104505354769575412699588397980545630114958837426845754081785939427117504285765840760833947361540440613288102557831501154507485733328655152192611809622326142600079939904307490831097027687947827087184207170329139745018593736840506036600695386446301992611690583399093321558468893973794670913692927892915508694383623162719497762796280766693949508274063697514248709548361668682178564043564947796929851323085126805890745215825118470967581286336758068330481832155494910356113310601419131250669511737847454644065234720293275260442162219495631438051834621205636254076477995366882052853941837043458722447120241538699614100626438386551315175338856734475108219638229149310340375726736870560469784272302643830831515489800239001589381421722387690957442968115776830463955970194806402923409648756279292242788677717593803009744600729551811949955477738036366142979925611013514267131865764926860311233695980608054888338344185419402396346431131495368290427712877344972970056264336661041426374908643270709912081601155164553556453712670987783972985975776525360435752318775448735473502181104794986638855207329260498379054681078196704630920357202386789873790114221136197278004114502792308203561711905553288894732233837308862980713303597740386675496973882498897352228132066930253610724807444249795084575364435133944447568177021511820805857111237732821115487543599941303016900210694493331972260147770985419098113494682795827898274331620327142684473874446539612368921565165967552080595229552740493947269296283800607109281672821556317083932241734252507491966165400968834043042624037635688906863148141069001716596955062649558666473910983301394871874986750026929604840528177658508996705625691789064649276744594145759754189940766949907988074352671404587069804765162059627030734622241341782751949400674810140339414901773633758994840359607856520362135113741780046937767175742482269601768814748239921741406172260564067794231589473053177176314643742041024188313326856085482881935238882948358509453639363239490079230319880488188528086640310759563669521055022399246434695100182941486953681223937658652551738505971068599528458870053955277669425297636411007801753186156173643487028413770099551910601890580410800877914722258884871600643616952795777768417687477157527350467618679765963122442090039618824173204842041819325146391517666161340543778019453299919383426915832079556430232168153190616441849395414722485902040820538963177344584836560172515255580875092590780526627248313949547530303511268737413320620922204095854889712519365544839473973843736396632827825553706656490779217634823094388417926605855749400611468885306660139779014817655645605428397012636602163930899824853093820811299865993944103081156087847729199084178211114429735139162148251528796067380863218698972502322916177992066781586167407733368586150316802133105025530506718641212278522330407793306234127567693090753289117859104050483752538290475945639188608387821422988256228750684402053588983760109864363893340183042267777282996098074999417437126217333068808166653434953089154658769323312219808574808927537038314117497800574491873047095558908874987729197436723181874891709450935133681847315998226158492545664838264568678628662104146906136867930652037790728428943320286549695434138389068777988460123256579102553258548889587449531747343577317731225946475556925176972479329064490086830202033216514457869684540893823798890425908821988990535435236366875374225290521873701169136885013755743340568380668732802617782156075881719440840204431980624569228138367165456158761102451142146010824995304190439135877405454057823411720940456377340937762519973753079429429981382163290155204954652163135586389524692533309027894219278082668696883257303649288451766822757895924267068102044695436713229920920995759542509829153212030377808863429321554635918400329266881666526589423854201236087248792713918309145232798318895710634035808724039068550050704590955692679389477487479443462828271697437330321299378544468487733552542450808245836898162689329657063779610343012408295376849930037925186004167795618253079038064516888461978007646991603650855905500984511784065424359793002199163446860631519450545844066208526567681004481874494897319399022433246959137158312116889961983792998025038615376297845344417244791263190087519049950761157226540209033501514995144977696084725518472950864854006257495288887769709765188053095291079498138728005920514612307615951252446967785462489562385338753564676793615906072108277540260877298816390709514608923253126849225066457066494052253894165623350439666027432289066734481448994109223022689399860232196136081277408449372372662537644432390806457769747964670775888048022283507313007223100052873638233967424032462980158396480009723294328690118241464718642606504705574859501746084028784612551327162870497831845396396073070093366170314791873440049379337870635063157242750208289387626180273738260005570278367181868909560776430525013841443080298660735244044205477505480481451904312305792618594245456054441719856235648300139798470066699077016123167459241154771939197139918143931105770209346720049885220027729796298746517915880946303158724684735030621463720663860168152840747681154728683077537423126005162144912640071700070907421708458624703633583126686859517180534706033185414039153070511320908826788175679299754567253138387736544876846965372607933425511589368551001545953981960758730880052709985710041781755611852376163200239497917584041474454659653256848020005083239758597120429054540967186017969110657585587364308733014899869445242469734547659575828444897084846470518758770700497611877511821470673011043080361691552210565399750180764473779728059593782878260045950627040735019412986015233436898412141786631855079240092584449351906666277207170480394885035568817818301856696779422603816730467613488534820419567439247413138495457247344382031277721006828424857084781564675960380449656515195319861837065636665725739097467016612277271872740633269410703008745296870063172314553787976894806026709345367655220415627272087102589327862249133242505401277428992999942814947171892359900561592279595627617778389593491282067736902526502030936257839694460014930819941295334752744763121887469712638895267641649794305926900565932993364128297988917706749757712129920429910911295990435360481554308245449871500270755161802621351309849915550024435912665111681415198282196380153796771115988616219350209371202927575456595328391363700056145591850872852333620140627004182765041629186979800634875690954446889271004712455890908772227096417371816055377146397311185566427751713395220344448625574537691006606801076671460528714365302357024044394502519962363307288718539378443598658120385633181367646063250405185033345925304452991469005220487236088953194330086082842986041373805997330640786489457214980316525335298400276750801155495890460678378263990740333762346337053686169705715164170641836902281211249423940075930916509438731516701432348629894522769643490170027441985080658750256594948303488596544487251384483123434465882247348895190681054224197134317566881176521890823900935554902373644734362850224796449426049495435623121068199718258452851978614295292806391922439836709768335458236512159674716098665582430403458806277978137301333761332922693205061117871520437559913170239844928570470734389164094559931996909354484735651439112391625895658010372277324296773795016563965676845144983100926222538760682177438414137557237138737255769401994948405845579595390474248455745406632881782045320575569325002106458324477293051101018887866988740464165517455056906804941940095333954922963430987188822731549839511089865341340946085822477274906672587397394018716955067245442682758932545446803105649126591888518964849860280484511018615089463537235942179595563115896418070755010765415452164913040298985612769284662510385668288659218456460500080339474829177748926297054733778933682533265675311786148288013502938024924102168592754687266844143923743376005934026874172412933146336701502106466204015804380594300484343047416999332545454293117034936709673080508847037857542945391657311253087855449794115056569808038147475930818259618997737444915531040128255070589432055769143205223593571114738007931751039021670777232565427563966385275393028660556841189085432322353536515590642946652931938671506850833755874029789384748657931055751661309833505718600105605170078780610026880739658836671837810882853913061062815430556093817782055519583116600327953235001736740700423813451544452095037311455837883214357387500143860589367456512666936833703727154168021203162498220605795934448589075321213577999709084613217701574914621707938909314393178460981485340781164622330639375028773876596536307514623940078313429489600655161878536521250545542416726350560101850919959599818435795842480941457818423361729833945772259273219557615588244772306214590111968607869156524566871948834122281957560384911364059055529277552192680404026469930463984539352831585896987693545423594640506270763507941408148493534528469124312312296778636528590435282927166039508270691227904611787429479974232289105275745002411119970248728309553067098789310243231830279504819406402821137685154543017865388057602791133498199660865060409231311341790738189365094172579064306427387777089946971663266990454786938621067768976690767822435095721689603246874604668050426376284550295898360001901810593374709425724799755997916216063812077823581396230848419014018394561177332430499087970147568635505575776806270775947511596248165630188794441746172584428653399218423848580035633325155412874869721195255194353447549318683687782137252100735692389760019873828539376103470814768255840075112513546424657327773953511745363403084974905373755376362417730665432413269149005431186448134382382919452260002099315585553275272282921894063419175542859141156953645413933099589633715085817347296322973004568531307278913150856159135209530216969163535314758683013115204665545323642791640855586132929706791640599611735648148897982423877499664862122750082205332533359651296678876199892901008052322806294289995648025407889145372739326815819372545764798370256502790252348920990908784968283534283027989385311481793532800570767407042887381838926224036501125835176177469508814801618236856612883420904606168740932624328829111839784063434307525064568690735710029470026056799986872488709117236845601638517200712979009084622754595905915177106017110379904265454620680312573042574673881385389000518401987176971365405074439494167399979946538764704994252252405143611023225683053777198617026455312446693591890489096502967512358542816303788960596853158314337618535211347063709034082471365524470682322744550483745627757886817906410286882841830531703049851700905377514514427164056822083448233572176218639606781842124370133241892083074196938302995488103549860232134071583026200123713086227641270948918975226022690446662627250230585562212675854840614482371487136342901526844767580626695827484379021165191389221395668445370510452272398891843371904240092738545528496600162310930209961126134482602333251431704946036667160321277012598287334525901934264213397322416227401736235059714785709126814023065301745813259138292618088387168651511716464278615188175851110093377392703221450091777728249011931242746694945091792208143647935437034846658925369219707479385817219002545204797354709712740402605278942883742642048273157630331095581430996594344275194795557688414235117697606435918901156253709575455815965300403036833613629528049763547450813778018388228615423558808561451928347524961200597547038359832887618571509403199808860281534714978597672253974780330074359491618288490513133407471556892539579043617531422431440854644344379525599652482907542270622612677995871155426040872055394536138194561431515862421068999557088473291501118246830418716975058495512181802905435053103149131953180621293054995944919070807281430404698673818468458999406163607008119528496654241000094487080937498671614956159515544519432132010627409416533099222538346674373559541483185918653436853552157517602289678880027454328580951476519005253141812953931820999824856947604911488992877022095343380843559798929133074386585096458592713283978781995934961123308538591224485079525740220998616870236519375289486466553203614439680456480940182502628398906344948485118061577127780054663381182348187126362474046396695019014555186790778377722707761687110135236912834450622615181570973895345945525450779040289199657235780209930593319553680691925262132608826031996479100698040199146792740242926957290480960616488382504364971499308895248592178607914763487385963433572244264145751697645190476717520319936432385395409586194263830979634776156402844075723394423384801455297779027977497859335072541873327265579022629760426333858323788403545293109335749345339551874884515770327664723680351925760700531886944250462625202539659590610397171333525607649822176481918791452099427879430458009262181865603283314950343389770892114145573658579607811601478605586062270350964343740378242116235648652661603270041886371700370084822332452802890222881434920147717230399633780195837800568718072986673327710202190854277962418050552470450476360083587104625254473845490194438897752426684141147564890018840025247230694861369323662001641481907954111814240284025196908276314448369006551315048886294393478389075755162431439464640288306447847987442482579020662610598169240409004889883030092527052484275280423330922284550225299914517994629626009835989325264643393435040512917154892256926987162412452026486481852914898566385924537265521137423782534061838323824820798027710118908817100590963360942164344034447726212335615585629891048512976116861450766718554804164317353416610706272045318502384294594334264529603456164772234649956051690933988567418918957075007346094865951589211116485089945307248230648635745217888582588820507182795438262308527075776390911467835212729768468858848201400334088299038793604499212941947947698538064145482001416381297659762390553276488186975422857619424419351673773389282798343704053295651472776368087472213990932953823042195250883461464371058138369412433805373458463522162150786054442040860828810148282301517057970310013711135113976425877650152061213884236387652886003480219305610031118420806063037866892565736903869195024598093164466225883619627893626825346943511575594779162515632413558757208052335837851923466563800152436187309710480900738122363139512285851447412462402904987256604974552015010923939716270486898617544158363406277633661181129127869644363362945187343791591020222013378626141875306754957937528749184497647535405496204528201665608802402966646642409630934480644152158774756595729400647812968275940623815170311585208268704123867063860906345504328995122757053879146989432891479379163888263043078375496018035551553802192574405446923231071059546235862919813405266320383297236863525771463995619480558877214576889399750476248197005305514545829295554087674286225230557002101358978656799407241358258493733511323092864342273988226921459698299530301298265839589529029386116036082435714399995242075535811584971207974922733000837218871755244257546967757827819188189442529494123630816936708600909071228994954279850025660374349659961208447567196391843930255151933570037818217029153956608654025201176074031476015888293319352085994888058043570527684372142505704630694954822745255533538297741906730923434259838800615262240007946151046438632924661681371570101137412807660288937832492158596379240990061556092368577208071833866392093777747274922637140884032423493788355670789896060655716068220986679483241056157480354705837470738534365015386701102367883396789708086086568588468155399638707759405664635632434324683251761300637944236422489363074056043014961657364724384506573028360344471997298763005689906863824087469302058750652499614906256215220202794535527499778437119815547037981054801357983097202803065281365492924241004195752961801381541428643328573115830590641606191455456526969740253110708475324912553737321621067596521676615182021407548178118745294666632165563798136291925179496502720285579834084149413564682277379937162413244930720457701817314243610045987213038412749653870713855054134473836718525880109230288733161368500511950237536137217619538606882766286508727326924459478454438807306170468253061140781267695609662848122661002830636481685560419293337234772631052013208894442959515429324574503951131737682375629651765668220882857214615214694623369067572604504218601867383473918355467803007690534940373364225521757008576274606491143810862391820279565069800115163968168072960745345653983633430627542603000781749405144834048009046286705156927422729101035158352931605588676956526576762113651246609147468754311161491953437213414922898439423696803856437265761675614332847915424732143527527935332473278269766630328884457331546691839514105276409302016156571059554320717061504857088190966005371285719679872878036981579784559207398154409163530399403645655678682611017567917165245714643281638284891801622152673781290368719657462375635061186443637711336798842716261881325722684018378555795556500922918580245434284590590920612933225132063992239819602869858335961132438125431457302934951497448648414871709720529814813750844523587912547075087423777008001242904004591143698154707003527937380434004075992678558947653036596210252388984330266669261013609046188638484130652864053809347246771748179450483082608604727675783198358776800147717421009301028183608555190232013637302500067400185028186641843034228369856251891850792204067259263291839683231426957227925407406015015487759802124845220901586357508874487743639793464234729700065326724088628583345129286629636249382848645362036876523220646335921313176004586067653359495223114881309778152000921367227135921433301218132293279677756064715989586044311452752687691679555752918840240383706454777808628554388036481923292739726346446795668069895835356435566643380216721571484433834428685757586725946258576061756410366357531281049828343535958229040150407743361962192783269462902709827235758101673898020904327246303448476766326135807224717360246139179547734716963337582930680850342851136557909747125090668490723720827080337238833933221122403491952584409709604164918838048142859569459094282437194512869960377196921783142700547007330994462143685973560167164163757158086106786036554244101947006878924502085003252514912049239553011839325091731550044848106836101043677770088584033931868465152516257154457113588852732741162575759135025623909318028448564200288262296323265717009314384000270787892649204562285137467164931919577709013752689631315780468071228845869252065479897485172227477519643602678008294283260441167160058948333257555605141176548542705260270239938985481634493186937466832015882814309475657430393075263851367253748773725795487334957295101474831628963447894947424251721137537340407744627574491469192312590659539254517619610070920100692844121520151799656748619232228458406237246553345194600275499135197989009204900457907886420931056496083458115730972758628255921803511169727182842422628352853073078029845142046029354017410377196556259133831978058877778645976189085093965210485540569951432380453085474780282642195346706397774809476696164155429192676328127156413476809734203278816206078747485984888077802227964870464262646151184528947407936018984855437478861038875303057612981482393850936832257587141948471005487178328214291330873053993781656782816783763915262535590000074296659729159915349325144865403554275910939290661180299532968986111615827690808486349273552230868056762602641083169469937799503988274122910055291332322802543045152054780834590673897818800140113138025385094535837508043216448755249265087482253740676909012728763427065159913190422419908594770199239156861747859302363211948265858113376483137624609553985414216838588871906256179562009643099289416888681279120612041830137796110284163584518775365531305204839966568447040897611578067690947969083427319283405513578658501122682852788757447994705837750513621393545963093766337070849611891146265963700080428915318074471084048496338961799098146762651838153403691234144937396217266690815796456637686627909990064327150257790617141815744440981993358243129515860441353399217335041280678974589763467594954523680773549173946223291278904315812253835478846726626332167934917085942465402488640783462462965488077871199665478153642987360231284753145087279846093115246503144573187112150963241928712875150118379866600184725052186897580616318769192915021556287092274229407375163216377912205819000595017883605315582895930047996260222440007508557585660838039000990090708121454957588644785053973741250504072768542633852800779609688341443572088143791693891763028893747307777563358841180247651007472314893880243715192066178840542445882239259471934026149279127125332695685591251485296836950894191375262972744168477635555009803926048816071903721418759417891675310887855359204019280548491551572761246595651043482005064387497255512173004166208258112829684748894402425699759318732519106705621813953323215153156369300304269525495538370666497689584174805299495046771881662545569298515414573379354421342628520310211966693296139043686064129937676643903675551054528000244222819770355865959221091007750519625194313289057659889247334680488841572358472141910517888879398018540136433157401879902032032457568575387882522542444361239002690582003402579966351792055842317068384328828937804661254369207621811381418499970111479357088048909209001841827747514475505462866230066712703973819908763628197454739516423164983878710784287978340602432691364231497432899832558254408483001207150842759466895358161296345442049111428534333549159791000011576933676779846509648012649999916386010698746144356621265914596588569418084407407943209082384233858277380948567248564029878397137999974656752437323971701828217028857734934024756767835040491652906387039670282256955436156525095115231263742022911847177221945629630012540760667005799168280319997991996462492372373177551524089835190253710581558670270292829692620500799121308121992676235567505353465479405415733663506005910082190914486649872524233214959097504867501199435678498861006311695329653803540044631709781557260447298060811886641246936567279082508840286373680059281430154957687803301079428435781424639031749746302900421221990614851371750623964654581512757782495980206279202990784748453476686842479215364677917467117306214983243170809708293910496842689014321088866924619980205513273882858951882138714972647583038098957898906432691940103326767169002469704085731203723825886610459493324945244588640898544553543632283342733849483515473954374742275509757934839668088877864204364208261265554994418449000834494233221847377003894668066264405014130544057446906761741012542806866241430440474513473260007847367427876074457045139910894390493106973142000386100522475048358097042468325471552351967986213728944803654583784086681238460856661627095612986834563575026050841024389952930615093526960740738368894461333697175845432157595697215682399072743697182006869953602094790751012556561251371771028486432463958596050274791136521031666542693528786024699935023277581282639806305313490873062687901075741279512332556287721725175109011456921155982662406449621930512886580765961211848443678680404675254850539801046154036680827106220518604368258004993418433787560832204985146919043031579067964309867516977030684635949923004295324016629644578124530146047092171598477366649237115375580362237572152728222192955630217053358446467213593998661392184451259379126079418521595224372478928263076494175515213106212463511491279969489933525311532041619550367150160885218888381290947686203217148641234485669590228855105019928034190318194302368244513051169398891961964955586474064577986981490930955557675043387668706077835389277821215795896136389414305148126762202037046211361623518887914794812181910066563208819598650467538080933090199268241461131588662957058860131948045447386409134697385024589355687817868810260174514647950220307231896662384833753586482915618377525909384276964968929855598564153628708691452367253963657378779445868578342678194969124774718424214520792820409896634819879105579205703000480544730270460804240259049345824367799372900419180972094423777705198466659769402608187327874132185470546029638300275166452242121068949561523006092095545149223175074356572597976165305131382020097529694107080960826721838397003677270807422451300695310828641874837063742886059027044612346308361545436253542351728527065760872065919068853191711608469080852122382065905157871367103749670227635855366788298161995976949802904537596252957102234062136037391274180302084709101287688460626684986821752375088058379482488013765416539827234726776057083210039922365456869528361563927510963807660753812033130884999939483611445310731318923106650146069004989248500841765259284153382336658976499531937645429320042801869195289523583454054692009255048703054660881662025763650437032315720351954537200186418802386074481885281955641788590940370929845915691383088328281982498091684579619037094139838075676948145505667387347917976554215005713830920081203959156398334542566965025195562732617981298056589620132362696974470983187664935279899544364879534450177946464054572574108357233643145376389640978317299835373882004646936342253808417413490922934833202071918272301171644035630336748128595078293625938156121193248663522613875042754445788476669371791287119256239904701484825970451998840663956569901720125083154699638289044142240324998774995171473883515605350749694876295390981656025072130498667992894507331735192319703535349298040487403032337195639486772656532963798215555287326784018838698009268177257551129086293238047863821487255851229418591545910762647546853835936257330918804730167097827222828689172998569290221263738671248666889227495813722850579709267700280049694328738338480404984474963463432509543064452951932242459500707762364236400502216599512924044555540436214720385923124371901909773668597614272617112418235796756214693071882061645980914676077543674482719552830901565440715912247533514705093260037903994877919627863215916591420418880071900732012924403956171385147607665644558993529198229251691128493815639410201519148269191423401803575531357596419622667332616585996968682334535472338132018547465665354077076262851539414493806134330293514352603364831940016441029540805313867162376716104928342273761869018748477262104515126357656476691285463322487864249549285020358094543180853042153114595040781856129816920203459507566698999024810396895397554550239352791456251933082707973575079208073607290213163488587322615885561209786624592130374240878316526220251008375881279582399673535368212412430588783757396450225281203175744067727977266196314590589564246236693856966552429144599176761813012678424768751374382562280642024302922176938843987478694656236841965333306663881943548415836387087936476722879440310706204728786361675916871166726464704736020777957444889066906077467108809463225751432163479893267481027240689060536272839421673763751906438947837032602203388828891233411699808486728695839404104797824679111781535435605309736985521772481571492893460479759364200344543544784806481024938467886806212572436207536820046652525729385242077831563875930264143060579307740811833855529881152356757356695131638386276164520434569112995283447930245111115923654586142746200126119512581164662198415952533079367400833921179720180360832080867027752479397258050763566611137342643876176030318897648512570777745681824884489386979168336372214963518724062757746137389359307217604180392355308335142839613105926103997720940227375554217803377797372121135995426357213280477133587902989364989919629128768789554164289523251320909923548659519534169989270434735999116890411356193507922700461021753091224834173842866529725916788831617137944345986160766313893840915851784810590484248843560571520817409690998093724592104805272651657157552758844468629485809546343433644048992037966207746083112773108297188284369411983940348250684135757829963967690433683443376060386672072726734988305109766868996000015876799955839257627615701922436525003382421380437211939458274444806551810813064027894763159644320251991853247283794199851830207168275064036852707224694972458650617590690045105298905119150359908193479137165108742403150775474639539949258292273067719482381942762363844900611813245840825515827850314061165425693263479905296349793078534717916575970286083254533530239461636919374010675530041849517193014247553870336127971026208164054186377835649449881475228508209838114865595692794259307689448236583406363693624974278389129633157131080691283035015137707219189015428478674927441502848720416389982349197888384663676307597364957462926607216242973350761984837306297384836985431955368299817135731876124451717111038395097428489323960735919233234135129835955550281502465632862724290796426334888979549395869069555657353552847185402122305664043219104357899308649534111453724311644211676817945200539806815374833001616481898546927662810881722506044541681859161700789208919574152847502491845478184575864210179292942162523788541641120782286858449984367574047833270208640366409507676458055761880479011101759408381679740448614137240839578364825458474444390825800687823431141513598373320130301890872288943473501200928292612735054342358460483051524059474892178771254350878498387853473697429292036414862787080430505016309976665859388320629974886281691667944304097100441317176163631901831765145913675588729647365966973107689173654805777324289839962999099613932785033022500004499522138866214957277220682000728366159866168491305112669601318786606968520991133244595281134892820300126276567520273073026811103393976942018115708644772006222581712588502133866563760910041062341606467320144896233909574135225033606385965161904657639664672998410703913868074367429382365319318481388277055475071212179760439752156725130779620861194840769861830077646607923963779762471677617228253474638063486107411866633124146847821125281417046811455664066491626252999155856848887820681379846271266302307778151204231995623685851813223782319939738484140726293571359617530048813460653444120250520180106853086171408243799830240929138411234196436737562764821560253502486013207491707011627033173251066989640654168077108916116177898008915069712434680005848966276350514991609673981029074710745506530671948375120014831876560679123016583014599883529860068660053160743657970381988907336004868702540843076597935191828689164400236017082895934594178065474996760561800980873975389688144365010669964714470715639159195682800716209275534247524355776093876713936895099453226747778476562452207494679315805790767454912585174053776234615145166232284176230949521105739425297290253589845496329100466628524060413033258604707374171613589290805031218285438111985252959411456413635568892277977985666783520658338346780995956886861563616260316348043781722066952377829586967298788482242558521121808239040805258644316518587156742195482321238736680451255399667993660290888551574587918003865744106985994885840207209640258552856409915334433150660253090167359867402869901890862924297707801230104851761074333873624349281482830598058921324635281539929749194082513351954110552980895870206013889008467473182336651576604431422211285076397598769200802733920643603445458540250258354502723551435484960176407775244306425586709683982609151896470785466847446611566850319975688546444894364102058843852832401463688698543824850121334842619389177562290374681449894463995556775716583498551096324681430757638947995641378409786429378409086593707383943853715454537081988764548731167064017993906572698825390003232581268791142518957645500479187120288396708081887182314847033612576728703089814246627146576991253966440176957003350330461103198448966259123149893660679275847075047146026399502834176089163480304459841029491013325531291705464243163719655863709982162168564694729084056646446915461065885537078651668442764854316189173207106743840359016049686035456296733547494161125821090125902512558181428119670160069266520018319876530861495383201876721616037386305662385140384699294770254622568044491325521209160189775084038995713501641300793263951073918182782637902934910590685533448193328385992854233722001012656856688194320943761718307670741835786965191322402516076176804982709009472035173363991805793678903136992167039011220763968689856994036716233469676284279683460879417372221656168482221269017317042701549058457044553703074327599048062725993743901772689074080325620465403535404114674769767841062525873623958605086494438884612111076818380034174703194135918446612291529856571012574299821366985793068101339433611025687420223282998596882988406935546636718977473159839571439555454957423135882770921244446594726011709267925371165111601480851330190350495177312921552026585273756720686733054850316256725740125073233820336540903524137473211678384204748159760321231142457967496357038668306237974478877081467780067314545202072781879190720453393830651446192558223870724430324974527226750571252606088051759695780124865866966277309332979713960246962113118985509517740143063228233584714286534409612023318545105302940497545111087322650399813841900026326551633574547823121019980656469373945100555154496009782856956668461628385336459327176050411341036881919939212230112235377288876798628268142720611581302608290094946131025022578269369464844630709290555435764663341717614370371271261567689743130992152407664429206691185766953875769231687595668758169180519844306126618544492730011488577574008484688864191349307537041295717090825965268236000115867748596411240012997263986834151471784976107314258733321473799404896307800668406093544915960790897870729857755765883321097654364173291172304103344915425311494178052249361106952896667645196205170754110880506084335875349923108699803503239927777491031275147065137689689776875756723117183027774968333322364645758633775736262738610282951537803409692028029547254032177245901898223064419030511211875100194883556741399857731424559711551938431206271524260745748676644462524013938218524059686156627990945169445998350937344291950278268265037919065553830549794817906400017501977739082909210351626495947553556682778808175235331388502431128245269517762263858823875595639592733508144038415210773336290880932383916823590507507645884386915047760672391601063499167030917678557267043236681001645204174895661421893319082252522664244485804417220833450807676384080731687362665265675045272538716125689117252860456847190257834296957899892201974883768927795592134827501980078117159680222346295515943977778012790746713749267866110517936376841174873767834482820411703695753533914375916136686827001389672950203033534507276640952988879039980609400535615189079431009646318364948573531964695635198457389609045061572103451993414464055922956096052432576746910887083255033110231870300817672617307105845345016723376006361339446370618883469718115575208259928675351378130247677058369804526063745271632643140355132732293560328441571530964805442674821512364228615833541661103190737386467322051941449098661616012770358980721967117273154609845645751130034272410181597419992231525088436874368250483481686833751058742714734219629125778054495181026326243542736713447437639495485866451905387728018585664079116046633278686293438349559560733030429306833601142266992023757089901798877958864821654279082730505827613004761217035371662125074370299216429678899366343491502443431734943952552770670028904892769685803437558126073208615356784419257460345444448569403046871121804852560988687569588791700543528863870165790894115182328194314496800683448265921886660039166584515141389211273301116976443335439905513868829051716082316518651598071369363461535947752502579920752298431502224942969330118567133089059813668974716873720949383009884891097934014891504851816478673185710343225316062996495945949918287674243555279835126338650255621008034055683743779148459920625699650888762392154764681576627210723315610320661196899478758252610455618075737341192616080656964070272483716512858793769608734722534862460746188110682393327285947154561444296230264524428105348359918628295058627549068737007545265643271078901079850925801965669132441702036593323088178813501108134752046597237908717670805806797020111948327108957416746180320474936133483836472612994909800999488145844216317935932420908716053891938433894930315921757821055694987748783466020427182996337250280992812303780086597118550866649621951088948161876611415964873421048946924337213384201535295552171913052975826043499614956155804815028841662887447707902921843400171457460969381957267119141969032324606783734412164954386448545028802822191286121405073351799423707661599162457098792864820086235806830643469733699839522300503068354396912358584011440333638324398015322146464461369870297375526008302163816581519360104570814983405289555672770642605303033401052078512902623363013884334420566896060865713923367542453608555352326708606776012936902269855984317951256371447065764170069382298410187049353154178769024027462485473503796820980191893706719209514951824101066629257261012125039164458841867637247969203264757199924084228101580872538331644910377983261370840689627295845468427362900164788736277576095318063286524026409062017029919501247218380131154126515037243067341365223507922730383150799554872828867311174051212763482199624169784851151174462412468926985919136467899792691736167382899852137683018244437029286584719369378388887523153204169280109222047088553219791774532266461419604373174993583800520224582203895904279603646218584048345755998960815409529355879728200788941233733621862679535652678490820294569579262856346201365645381532807889657550625121056489463651220987569699847200307067454778704368891560288009687635800925641764061352368970919077896288985530092846050481905243978964369348257214819202010586918715709113031093659549966810701369127831665593386967603765857363136311154146502304918269651069353797689891070246758316886344990234073348668558879293796982979541404943420027851954697647980322863082521144208829821325295094228625085355799591738104027628235266623879590155207174337275052411682604838904954408603910267906245479595549888385158228235083722774464911339361600168273460654918351788159142141059441797833202930339621563074551982106598010929742804924952865473216974597462038064190029911320112787207201178008331025085398255988116834768878131286854422293383814623317105822326032479139161395350025481300507350848098385445998535368132947073475544778014640026133733545087619076468223395626804374954846967935483470771254490470580731246787646364719799228082348174869381220964929546183409309029485645241114786049212051141995751991847852038500582927204555589534592121566260771239653190229306124986266775178637506499695624398662128747023884019567450208260399504086240464262558105804915749223092324308821061203407206917190441105939707285578101669644655599990535386469589038683929459871386220773928878060731703182764170228685624673551397792785175868848751326250086389320665920207984779428393948844994334130400383469086251679835625385156111949007525649426169144862966220583005751524456193688133996167743132660952344254246173633247847431224432063650149719163821291151206759766673276112009469334130261582412182972604583562913810364335604028946113435987763483071232188409420210014349555055598323727207662439457061068634857624724186178068577918251610427606960642430031132828415690761400332269116116571341609285535761436389733386178500641103472099266829048403829052261410905054272906038336384526957649395098538298584804295079806510056037977602105444917033392137807819330019302427443557594105863989873561817573611405635459989502626605881065419454808205192793944807103484870246117973603350765100612488649008405927244800427458885974544753696313464262760962718807928107047657777746908872002749898918715734123747064601082272550744549665164009206949270174493013801515754422547402524810653854840307278372087796523750366576572292081555803611832727086990105978174826082242181149416258290015598070369272086134729189770582264103607047749786625596143074040106748273771395250057630705473902236616453266563667305984348812627679823114920070088445371916031508184176824685797341240310346761869743994230662462383517458995003739860226058331269359820185672593402975572058456322993226196858524442497231310274043847978188300237780075676897846394116829667939810395629575910509456891493143961680069069359160590110503006521987488455372206649823983584636797524073472537198373511142278892303932932790184310278124444487523978194605249093803719588322384056607884869534664046180146387121581494880811997641321164532169788890889711424498641632132001542693177132075057864586489506236586443815054445808748687560451259470637485860776147539505972107529888713496832596619303552966308413214154179754297104465908820155925251666549177068872862779940786106208104574921918335586980943087977008719220233182526485244233983046247571181412136142957627171926085563355119181889277765883876938500602040180065877338335568896823544449530668449533913136419696447633545392545861213742677623218580588737625506124528695955150374080212568041649174820746522797919248099574078882442057862496748149599764364295935316378839436526014716396245643917629946659145590597918113496333283383485627443437106439498407289692287814139007315569896392099244001788230698254270181693465069440017308734549708884920350212714723357892229563240533536880446598851155955869961481581794222348744089669418458367762366957880867369452549472114794035958767636542972693924445375534077553968392986546260952208745083932098299401963571306309105610900556585183999506989837577886504382052435225557733698779509152969640089392589759415701444657554649456355364391696422729145676079340993343653642379429923476025658430968999400523223907567818003314200959932957021668989535198391594728926595584751272068515830078809323433345744881729199315751293723223637434786340840593965429890364013980392124317642638642328676030548180507075163225907410106423896426895654514718740862975259322910129748174737977330556090370624957678886630211173741093018134225923283977555840765573061499822335127189223195669664707137119074786380700543569886107668146611180858958433769512409717672350583830922336488857387881369205407429380761580384668807280295800407083635366333857511769142507046307615189030849351229369903896354804340194439481172059939271623394087198181186971319881212050438579764102749118632659799768003906546933501902499257081600998771392470793568831271647142451194152264721417495097895815124703018420125358216008824283273033409124838671024437722444478652436582760975316872794856074597212702114074809194656315274396959885777381021500590223432111773572509188361204186145722182793710348795043692415935299403868005058381316957013267799518123463380513471468326632595164912184010961001421412300207675150259814140040226182085442911190494710734618296063692059899017459128902897628606577491802924936898331818783500264982688975103853235147266221528801913895205018153618847292758599283990760722132965279030844193185064134221726216466748725863563455980894343476903446616561360633204400039098364023076985505090703541786949563910500425596598736124396275343889247321872289159593407493127371146347720685432346528042236524600139226927928146711162563775583449388289218434579413889161325750223711613992993883608367554972493218364418257405769771651312938915616149716967878197154266913142587166111688094266892910648061109176307425191745046594390830743086638109405602866557982502260385459617734281422879309366667755392894670866085079423852015192501073698394174158986899670758023678481593192144264958333452483395422494216334772821941996084552982764489786948261484185937364474110355284937861997024478299660708752236847797072868009841947300155826705165536145956214353051160152125581943166204567416194079046351473243667007196666758971127902074335843799428866909889212633924732177279835059068186569068175061903477887142236448831268990702340097871304156687238530017705196610295408697363755505643444220039081015509699833635399138364332160581934420998708761357957660559208582696448045066711126391384801026544674603028835719127757215100078676926020853562097769003885699710351527701850331247305104163781950273843053683769412197799000923357595383323852933214031151494282478881038199370171382913671756951375859804600194337944988769864381366826912879034676202595967063716265914161296409729398382441302713203783906371336580218350806694629582492797899637266265388300922031371873490586400209076699893634494274545537780287506083330708781855698909680832791321252541684090743496378872126768193229003291286340420277061238919609238775469260398057489470929988375527812999205876796769767432687243918908577312860156667129068151341994313134839113872315884801833195847365972315362332099028355340079218738837314487425717043795691506478956449786121904546911055502277510694855849063146126292913456626948656057607595631641578860238358604289153197843548325771620888787503390790627138504527921718137024962781214334192891404118260210690444734550975797433755899337622095312872109440395051289192313025547370590819894303381514832870087437839677097621192869076137484969361304285204038019024573721989045009467438131945934057335525230758887492630535172206335546244348051330050112829767331048193135090833512754303098853524654232460170256532319689045836626885723309481681741214861386318897624771789734491827668370581873455994646021930198208384858631320227290037168712261837591847619261432404785771381569242438604146719523968878706326273897549454513043542941931185400798416578515322130534487755724002394263860760084415655225161369850037171978536183596445369939185104035916131509870686547502787290937509401226828305307109127146373930240320649805913180305375079849818376197603626354732233486094981979919644343272231273182106324500063600295880864426477037892635651321772657675687253882641198306264116621167486941034654252768106378468053414072715045566170020667077249803813270713094287159601421139343258910072839003007599105231222069944841136828447365478916035936534589730552596641084485216478501392058751181591851886996715985450147004018493395844118835721434829637364964910383497906037550040023404974517702375587195647109240589090035197880197831330725907651070922681526620213818179363590244882588160668245957249417657061378636251182778909953536097135805545906732480766128924926216547795623301916863654778514201337225739673946625810541084562799813563184836821112478263012376239964586282177005434593481700971804734394793031773357115334160483250542103449006639753832077447896249543338120654445852028033954557077841433563068106492625617342926927172206612625406094139308728531215050050544711699720501927294780869037069053033217772102905257090923144264918579417509973367139231162389829418921649146167857572296971539804666510747282628508816320100656582911719340015777264202056315209439361785181530410710723555252740876468934911635781281112758818033874807472113152391322948077627352885980914785505313223679824602305494791182616991294402979909446543590996852304035603990857146809351833537928305739760840565238400397258383696400099614037791668302576234297600523661656179969474830235966258344209242096926911078185448205780129811488571455926036230337823208722213853204534469825648205640533690404961183581313268920026647454173726436749956718742510299566563242990696251784964680363406657992444988386371282398330130120662852757783384907148900627117685386457391744200862760235875692712981239699469175089094476551622038207486150957983805627268361133167359343323268145370014387443777947415473691805848778092350136433375568689416187198230991434446352320927721521731857276924081601474258116655047108234792276071919314848622759172078236888392947284269365347857157371335610181221251666859170409669406597651155247055544887101214346311726814885297913778145532333392620543364114690700137167985685453947571514938210498316594185955700724689874835408929093832296536298712190069478080995249102212851989624983301770391012300680965041538067763471153359035036933068958628130364644836423050564298226397963417918840125823864028806156817360322493331367548177451079414193765325532831103593259659656786284541148874066921225576604908044502539694481886150526540656898851236364302717528209256071121962092400377177645635938532438913825597317024013475648479324756667927519114449119743431759512500991887465534917439111994858434067343786793262421501765213469188364644955843947492961922886072386722199020017102101551403999487270818840287400689793981434009596385949394751664485250778722024097048747662923014617792796520846584623022180186576198663200502541592622781701500376736409056771917787872637046572494632923934332580207397095427967870838790940411978300845659562872872730264712474136320621439913610677148498787006588852918201987224617359331059651268464867718268853987231272534653067044445046500375824816728472978690448736561313804162950335790392933074570755779417379004502295327482646517210678699710602945574946782850130252532532210895680568398870813774795551774895960210800856097259642144815910421485791848556603424214842024801693560833730147305870894004745018259852758890969461110849760223978254960313247586469364044996322445495842750892597605920136364274197039671014881662737685922683497917677999241296614235702834179500425614350684288420154374161051879941509427985215719247456518631924789069827002828318728243220266730219246814198356857031070574605303926419529647886681858837894972960647571402441278622382169820627904552772860074368840027336088881877133100528066383028299148313094186410454030648328187509051631093723724162281020673364406396160851904395585503212283420415530564628326698441867143800367772221923218596741905235609185634309578862259616062443551815397648275647589480093481776844238843601163769421009199815305280110926319575444844088386490795004900167198772192102405291665833332095663382434137232222294213878450967373652217241349362787398608801461723997469350135431993820953404954601737066163364110535909702830889546761277204829611673965889284056116473846580881905161564971452788149846078359936495621635913409692852560349332582589683631695830682369091722324340550888129151646635566586421709797956062819382860927790889714666304873764371424713014017802034337465386584409384733287644299730275779220013353016424713949391358141312089130061887583954586892065892996572802867613212617538165476511951027340647251103067572410314390998117898748432865382439039915695848268555676215799075165449097505882526337112412804012747166394387022799924683149764740194645820885779485276625793390413420065408071418801351072193339006338832578702769512449355219673291209989768101131438481855479194779464497742234312509089520288603279223295565889591943848509317251286734736158795388246149384086019144289012919503187735199528090433723130137354661253795255909730401241188662956110043340202645859200505500365293570034126067735168366504797067872074107606862865155682558326050143747527850973246776806000492974734794741487603799369069956929866388706405522190632457780309055291130444961392047772728739208927631594385948156069057620245314891240191446105414259668922623400697265952358879904128678789379882431267854437917929391295412122992511312166263496072070236997219575061542466433743735496184571131296834455453002538413054136179301406981647455137920647718080539425120556152160684131855572650108287243699215266702639684572368341428240600635854167520694807080046526591603978405264123992954047558351087467781018784850395981305098539358860428605113465478501744742628233715558231639300132182154405432216322307707411256836685082147516444039868223631839045803244732046112252697262362733224260691099404597207778921860439928801362089894929552298836857861895930855079107060455472934346866767463668443101152268098708017086840966412369891570234548726684444823802062754163127710801300497823694291317554808712629697205694127664846786762975432185166788354695230691574913895508128513736756635854522865578244424341759192382025506977529776267103645605798266041026675483403070721838758787288985825533004886794439942241073652637942787661614109069276663497008792984990460196492962713873780094328935906703227187912164040117606088762895575998947544174377204277344456814922003855450063098792099349693253071971955764417522061164579270733670168490897151128596828678612906671679589800446606210520584061930899954809960193255067041374886005045960154291222438379588806941926356369399088253556014754450078190824349156930791250603476426579759047518492160092714719569693618667673320422394147834707600238046997985051961959721964620173326036461620309281059706646842785006740803354249061335405826444487971868675504827231827589171595831239592220332378987192456576106623400090085914957309134939956721874523047035508226232383154133814933958458249863989584537870515068936327982594549658189087340223731213325254253299991015596278834727364736881724133425583958982295010564429327331013842774817862573528094645313296391598513476558339572190744376327853694735980492415049670803283754232461600952184115241590417158905521315610643026559669792263283855330038452509660373150869507123913170698127563213674590160182325471220319797783728436376617794150234752011164235788318817533126574302350784598551442460901411142008081120188225116786500594464359157043305224330142527152151114548387086750440035726326678220376272401796946570581133574162020121645398419163655948361455846642128729094974519468452230512880294581388387180728524498636797400026519675565002658613265550755147472955051557577897671844074380518934136462537220545444558151017857842906795057512484592969628414451588100984774369738978358681340700342584893931020506441039039254968332857363600703274483110456051829586289655219538832104002694148379275661147251344479834253391247937325398638313700927310244531484730117538635269620113944262998905979197428598556364024059140177953635759990718237003843871205146832950187684289075112142870241092168689167280337197635176069990406244274392970309729221445010926395837607027496965238777090088493684576691481746490530494116836444154963933345530294084600607544612397901144115404695299584237374784119302877409799812819378645102511778125770935154667713882127189196541165125204085899321362063348644251449391237621935319249925944377999147699220571009221870195303194851815946693120301006300562937583464573209279279710941670816131401261737002491538404469036610235319629665713184555098964154693283230919376638495675032044720093629201131878976730054309352137495659435225831400190379399976873270140345000395987781152653424950186692695632823207307789889360711193781055951029555570304138674931183691149502990430712048128146536181809555916324734221813864544272550195212160372092543516510004352353417621051647481327888958204883796495692366661682961619457840379964579389305848733762203755715823326583161653533397481942570691653945076320646995717634939918091938681664574348976677425815818900774076270988436401412013940840403878299301010562625357186972903410498848512293101300044474638960224409123269425352386362868898066546391087606462352785105596208317014561965103990743843381494221781573244090768950255013853027963867404684936507751981654950198940449919630634584987974130128289598896708140408865162582135241121751027397496989708024471008483290900400057446515719952768387316478731888230128112866243798994149826945808671758302079313982252528079944491806349065063618070516035766300586239621697861973526430558567439886636770214653467631290994211644398221384638875352222874749235236899883478512069564655624749071102232186239966676624144246436370089760929605489155309350483278477930804118284270553884915927121148223086115255904383504996179483842912004285938638265827528571376310348321548540026846064896305838794768692096146747333708334401916469421866433546686594130708186940015617874813082641683884154937072697221329964865884411543095011121630824617762905722011761983119621582639375816070227064547060904393153866749913598456790088641231152840911224340309525616089648515378246651207918817386642290279412902807273510667182139945159385164653998013199153239763619585288706229158297240400097525131937074346301521374953929327553059221735299700267669050092779331036869928410127616446520923455180926366935548523475383041488969425068449338742666484612632849909773560935069138859444291855822887990731870836393139310742347539126071456084340940250905672449781993013498139916644166973002429456873469903950098111535353877007910668744175584675134592628727141240585435204824462846027130290483511763395209723788701028035263779092830154915918023237454579300433504939373842299277437242345491070096824245902727815678962814534629257673011381146758469393146024432168644848980767658869103033899854157543022903122579298050544176628348688573101437614615094709583517954293019032973844936805297246982996500073106007083799309982279118237923666034259727830043827923151958110821231064869941478932363581084259939828235450019733839071731366457026324545671132407519908003348206067118439416476271317952564321729129034451600058742812897428242189590963789288579906548474769146192387217760397238884137251596078617505760314883244899458995516804770229464728789141882559050509168455827538208883604890952156368560748945302306728684999881680927682864476290160856173273575422589906943781285344688172174869042274904603875689256421076850072007075136591955203112601560125887392953367748074374749254850050233944525232494700953526359391161496834538214385509517148344256336542042633907842327926290831050782344875023599907969980528591604091866821776978339047315837291825832113250872006641534802917830448407080239745680412298966537105103342536034208719414869016209666260666559950236638673731435716555233478622116584605960832933667529652743277733414255118681544048849385814463635663814809170307862360920842008196495850590558812403666765557042447534160058535701533569953557331642322755809677549423973138328366989798566537354749316565163842811214718880084285325525418786788716819791073428795534673423760895020805420969765951833779539340856316138103932390223539944609060532721010949228799058949125433092456986296080309763253202013203679359134917579796786007111114744761897238271101792388838656094711683098735351434382157825086490738652133622335339695900189151190327615005746109626965607989780181903872202633859022607059972086211809032304433804730795708151531429697703241315169183187671459797078383477042487813520161262156352016411234255661649490034196386254940057300246877719164330949244203583955030860252924355686627778099081292567440374589862394614061995931738750910495310348963028126829613019414400772580115937394935689651584818604891182774210978460623214999417896934942148414000176525777637972143995990877842783477374733170191881330034556644091921568674392605261545014518216483917826202419375577437382403024381745461574836302188274325971184694960854897828727386982111699373488171037934129760911809701320767330784630205118851804027974217170753611865238844545733362891094473195986598589508229110908179988385261811589433811542738653127692008317719862456508537691603098889004838967253558283006811620039502937478713466417857852888676039710906825908361896401250639010933404445511178145066787837347678358307398340793372777427332323490920140731715276705808729648096972095275280332072858690702975710608203770546665873343517492860630128254527823345979609090676897503683338030615736711984650628041349721073093441409105635955580106594570407385417136278034702579513845225598500858294178814075673529007354297509289676856787863833234397949607743709665071021023394125633113190105232284535617673060049776659561672638271167970230616579865488856127483069653813356286152619985505341803870673728343988115908770277424879737362180269220480612269708769479540017119356079224681691408619809706605003558599605984702446842945711248306326145807203227169964188801233636403213038974204433251725576298542871077450033920240562361594434784982888670940277922161160813549195732907327955252164546886255037680291434903773058157692801672412901019486842657064250720545771808903837795236453487078509531765883923100181346516259963332142357458856603529741537816734273820692539627808989861023751906076442175169679559654286083283137852692423324460564454410813280842740429777663728105967225770755760067253246165986695751675649876582173533505701927802810516059168156074825084167245772830565801183940967807713416431453957265642195130986665846845489693386231516138329521355906020433263270760622437841237374508859241338385946072900630222047832920707411583241548290931028866775235384852869795115913787846550438404070631862963919290924013206303313089029141888037121957276636928143169014327008067384004135278695939981036144545651245420875767684475181413651255209458989572028053668611137277444807551352861830002109301746803452331946215364187200518493336636009732649813227199935199166152033074544674598201439022163990731386943048067850213011923791646123069501461318267444640047708909186713933944436393084899916936960403121465699123720207822244071270847344095511586305340706484655627477098287798889374048976320802007586204991313413888785772072760726849067894700446692128687066189408881015930328422705097749721713998941100384728789680903147055039709855955004825437536582698267027456143332119746194543039795489982354813789557280188826249630596428196854121037712395303927093893005220101724554484800700482251756072580718137435115827031309784512062883580221780757149505389557301530761460354198088055835441695970887090341010136334499358422029028272903483348134064046246434113697004354788588412136015306309064248680644494877740262511084705373969885827392937501604073731188372396471921249178822650880290909365144476399409201992552143408647651775617380862922755933901031928497516518820116208072085043588105913314086120309548020977932392593150450959377413800900857738241315327104113065429758146408992902526188158255600556467615424479457710050427086541928038766901468761615432111278043288600666521283878549586001248743020361122403333291893089497208368984413862810362183172046218761138482129870466164742303032437226933243576568933103406271919293604054762251398860073381996274789669622465431045445756992563063216000796501062230963006010312828950837168023406915483667680285886848212091908557612348372763378247730076745594316108657316271592539105055817246045039637692511504540626561545317534991426450650232589568965960725787032410863102337433528382417986078392710469187810545949882650388245543717297256251012036193960924426974406326158662893758051141986149687770080346149873028024229774842461327237401640679850442130448262112233217190526845245882871542301350531269903770612614470341912128476119244101514526308041802280433631342403808249832067569925243142714804004092384603323024805747930544928441989519139605777724678528348405203610565586145283606732740818200702299794844838293317852233374531904436166989043071097747151614549384380518543099990402314359707731321014597291354080305717343044829881697510951542990012277073115949439869392163213759467051032817045635415361708679885088285405245757593503038137278525653164806142340652909471806851167545059720475662256145819152109888441439546891838092229983442727974744493339608168174731264831427427196868634508993920803315627158299011413065146173126132623215395204342199607638010102453926682754495171767159422300226258482748083932265955632678862634611601425753376610238568698132354402774848114500751057573029932467619665628877104788921695868523163310671654168020644021826995080178839709342265377736271866187562098902144786122679694298848573025562959012479169052576989326826618530350685527058017920412950541025655529280763639930437073421824474302401107988088192677082995348040493524644119727871048592314286287615384312356538499248428650184257281933813116246596242862072771500219548009000253743043634562357770160991119457012224041860195317205967838532887705142331588635185727595394333188975622330763371866527647838381067769524348235558131754406574665163122560102550051474797326805638174719108833539513587514281693882506150259078875370028870120365226356817107444728235178643736369036720154223834566063317615597035499232488840629080861649512833243696764348970304902442233524428482278504771892692363701018417488418051826699251011561765114652800235873603875647704510257167371424029236333028112509099963717141190649108287096922289309860938031474547842948329104382230552355679865428784665517234557299655936357813306357087200958735622830522030767842896363588710982347769635131357139439538502316420383335885848961663924023708630231862190493012962215958532439081506007679375902223027149422891690394870781455138683122157483565445430728102634776533908073729286729804508440597351869263175100839946312624276954619996317201642400846910268739604611330637892217386320353749346911656188549826218397592566500546623936791918600152739559223547502862942115079391337307351738886024816261810752872550049573406440839155768093493842231832908794008416387362958356374114919308969581014148745758850988519720549057281121034962492980743935481204662988963227109909378280055523892698879224544126704581764725027731520506436554672954267348526700697168525972655304076168353819066552196906423779607702914638649966990451627020184228503950507657252637370132472283278271850341056913937174891424862164038594090626702707448315275422322878538465172304075668062956861846680571573708764731421400415758185660528836915415155939230826276993729189072354853435171247490122684820402410865012028882921363399381133025440967005341698889846795114051969429213191929594983591546847732312008659629501815851035043986439943176487377319544347878745331163807573724036294829983288393601500996858635406318610648870277791215068505892743263203023535998559712219157477357553721017682709140558664067488256101723109798633422428509496483428328950774310825918633795581301690559290834119347221514793677888939141491244765258983391720304484368887314482882455654428574911253920198947685748368137370319772357529679156514341063451821156956933143032564747419908752471622678486375397097976350105062028976440205028065845743350468756135332931856109569120252677005837222462221435198382652215133147081967091262168473961097909444629438480257530620730448431035000936921502756074198184465244964998670390152927570873139159983352401022871234497527901683625182570721771056142028737933113682980182735709748594334181648443601796239920239086706048304397708677801827010922666525667820408437607094222146026712170617989692571857311933352561063673994235952747144576172291734370825116611271065128990965263985596732061802463486645108868331251578056496279927449799242554458058086418869807251554817975133526272092989060517975292486942539672450632954874921544356405242442629158413047636424533978767588791153130955762734028644993189281536885915376174772212585141712950881335589281068500605992119971945734665716611396306702823562490033539628876712177972313230652862195754211659316131297181700128531501831662936158536096826545121742744135670554429812712286277620401822661414284224003681904434827437758093679715296917705835527828695955126998320436769749541300814928398640710369911613836243439094438305883881787627889940622949768021880422879167044933998085004825649549835384342145072564145013395487580706261076933708617489079666976795847444181124555424895975687667663528329114759787231712535656213415475166362326698751403314062429127485848157619772091021613076857164723810223622176130129166491446101606414010723964819696885008694541815346428600122355596104457704186134731238249266566986316729521795698384895528177612650378335099439769846656064169461842925892706630079872327245513893613300995959817310358194739046203792519732088430889739377401678235599196162773020913144468168401337131630743649408458889779046454372647131218630725109098642310151519325546407817133575124910963664738059652440663856637173381588857089422081599985823649418284966199374032527855973343800462656050440682920171801983792790847594771918818947968305084828330544184142892910656436976643747476648453535556986115824785943571612120315190534819762294044583356658842838743155604214684910604837772448876775960228792908338905874240715914512018530652743597094218196579534379300170667454096712313949389978283793371425883196153438070341348055875592360129189331081745576468721803002288350800263020278420441638891163197198732199451938586761170563475362876565832681767690109456215209637643670952095184226610904004730531598838886927168607894981498646960372688396438340821270598290126494350525295284650393706668430510428986495474108918131796996608949860361700488922428962436640831409447854519273291763968868733155651640356103027365346246252888233857890378398390126094307323106911651107873275161158455967155205806217629920627210196128850880691665519696702004871504889950551276309433641191702799810891125034761447128742809536611484216481301532415090908149092432811233533685195840481340926689445883137145953780269505264729410308183172519163098547441161467982431502199752856438071407993682761923593381571527616351785471118408567818695794136700643765233632888709437060554602369071925493060320978407842185371244981011868226480973055088384438676837751074903237821843648856772341941659665813064740621228105357809145023829715243504725594201638300720308179237693702467461594597706741706876843068515789897590884325443654029918132230722426036766229502062577051538343204060910589412819476754885522032703293895315485461415018398861578210843276343169393898839184816874143447162352469503052180960730452199125814423707842815901813717210352324058468601862982265621103635706741562126406269420859256012527394454028246863456159843542952077402115134184956416101830476107985100895404574091599268065806143404124418397073277180863351392745952454382572956136957235122856007576379487438336839973746233227262943328774999893254768103999923841352331845525156297301412151058729974426716922476159310127643568507988056802127279618498541153951352694973589841252439684737568071303127945797844265509451072322466277181629053918650593349309499457557511162562417850874913512740987512649319228488685589281208761690022374173950100846574448741347257567022856426460290804691007892779557982113849875446970259255332858010167370486816715490900870370581547674633419832365883982127779175580749149843338336026307658666397643011995475759849321258273211117220785733387751874558299652566006285498441024126709147809843264693033110267421627769754949048648636006724026368713684687016192402554464380557299976938654383310960170479023890514265805665664754674074465833169085711604013439423990882445569348275584262919947259581343895042382600818101074113516260639742496324973222766094190549875791126602808938904337595566878351290583271049352823408388423248214485733126154902130708532782579235070987671247068919778690495257667521972681780956449492668608563602809572915520892807799369364037282599204613729521066909472142987422853798623420374317880332362578444881464830791211965625544760040621355500516061681213562249214819495163563598244528322436437355063241852049444836818980255276469290489890047239659012186842992315677231958041586127441409593436888802214747323157730381184280594406475545979472593745938910732181557432679864800615274286725184245301268344533645501665006680028692831321302353125633142198803900313369046440185389172596775752265528810222009244672853249330673980532094528653779601988331450656345589805077879034053428714306511323815399131677243593818658254280024193113103369855312595556786116375259400976867850094731378245170834919953550303471021929332623366784930800116953893933183180887478091317678485214190225146354746312345708970433491506537965674701306095908088813601311900150545977927309115732225611941631892968435829679750072223648879340822062900662642163467157426686807879557129222179499024519785127061445218202938515110999937651763636527756942359861277262371553188386522914783518386412678443725494466185718101125669730558280229518960676359220709673837970928901084582750808528475072244310109456555185546260400223841364678253948067431926794509812635919585257903975788811605652604245166537514215522471015354529132141634268449496034979234753209484684518668328914369431941515623289272557704916463722129479311101625633036531623252745620837608177805800824118583769132628792392345321575735907094717381299544612877079766649357441984004695414424276557492317711227936878764040887966629446348459674896755553306900182882011009019036763668261065793543032486231684309184129904986748930052939229302200478672947125645865873835838598646029341464554279805303954226760309473576792643949186431539551297237976520202725820885696606967258273796595031488141523679821532860435577119711254563194216885174424654806662482683102645771921008305987364170880614993692949457818753302577541940483999344851321103903922320172072048496834122259081037242519833406405737062651013989620597432653045507633892357554946400854483546868312257311416844697044367391195699555646602397139283377505644379175641729973586176770505992246016975599733643710136990019320272518658468021179274088206354062785063930700687376000733027069567372548370913497007339756172736982733256200300902169217005348639751465630877473137553885631039043646384003995247975262165243527412503946420520654062857459594398062528349760172886711621369071471138413628472429425847741359834130783933683209655912225640794987603172979964404796529071910781178633128429593288155034294654546683584850912925408237229807220763730111187216196402204641243553211921071072396192433436686433768875780192723994781253369370701153308896763259540120891623873794069137941928497811806362790868452369086167176752149081110509937792931361319738360949841713288735487167393606033323751068015088369468237563646395033805507450300162251764571555841148802009330391097274268218047292812960859121539969201937301904322009454624722717667590708276345935116400589822547777382755964010927511203633241339422945149578870342158527216282158060755571152347074817747532204211439473426603495203149417993795150106463292535211490723737123979015932205749219038660967041952586090678467362174993050406959783847289988484870187460867234302730070549099891184773566438594179057770238013474658271158426332265379460455944518378039938898029409957063751158106460202015929003851994872049747689442265343486377378353064593996554237474108696127363650540493422374753840652389757234563323502426331018060164736282355905383355864097721817837576153389252291628292529575884934601289601910535314604324270826720692686192227604727671559953805323323318684786093022739027481589862217387703853072994805333491015562333622023570827654423621916868339945934729170916162000122383076055015238061513121538733579582841819033877982892024744184687180291480745068673248732241771595559854904269910283647322639952423060418209199834672002387758995221319471080056791617464771584481903833566972110350492940835413703023173167575402342190318249908737171610871341789086026802800901356139265914536797709794730725127381715209352310145056045408673555275044193925980251226063917289866116204661291259390052786933665829800303122875234318222975265548527635789753920273407850992123144283945181433786727480280251916043762101314226701240936618084095787033910088016614535809959169064136309467592637639548755112687884579322622187875018899836569077282112704132687931107318960427952734495429598426807024088771085434954601519127628336677063934570595194046372095895775804126232924990741938901210574164701619343470828033105284963306157464626031099582531542242165284834981921217225393219571248653906638380479116938536323392442435098180025105246945673408173979169921789551742663178407732300743975654641100189605296601624608050410991932753571243235795350807489993377555427059286218439318649819813029257017126279157360565347561734934358037754136941942652208531509198357277502600761991430185919679214481146275903260423196762983442862507851132447857017823293755539584170941088128479283578055951862743055165594575702673583307098331608787417992514339780809353752332166595997295457860494881008081345088890626699380176609426588567721968384398188286653050660370301805408714515473361250081341876937293790990586678660823758752585677573458253797901204524432375478315059595462019524685704369628107515654538471095760095419385622748069843877701754655588331310007540696147901297192540848212239332888941764169469933450652866630133687590120802743414530553869834131720537657051250962363065166749229050455227502921460393980159613475288477170265257931677200828211438865733751546370266908763718652534803971522144029743632091203678584045738655888737671603952883382476831747710556928459304364993294287638113462719695108293622059089364497514539755064516600616382450355235124659631439415287109353585354485867611631543856614657380189266795755441343839500858875065268390613002695607689791028968134987688813477809335168148452619614871818227215258878219691605951652068788417230686101228994911993787692966911848242444466704818331205128495280994780967039384384314241670179635380621943054456668517686408735060424107369165540155062565034984492750502604745606399712557267323081759565384927126238255221089466424845404040116568302908835369958793366983935469264553579214270770925814361416422311432220367150885448943942334090703175682778251266839082708945079807845272629263587154666830064693713667956838365781077329124406717860786834220145111719344223456715979825928603424404475608316630798497808372437693954165125478287817373665766026732362769237180119386055604930802688103044921101516455073510640871945518108965820245449050204763677705379249245775436180187507536454438153137153373095711083106667937806274235571042728087753419567506319306017763892919147246124103764642162101039100832824643712559723598494101451615672692582526627299046750291179282270963738209339988340568644087679141275166917391684780031815901274390999667669279497800251337309899280753175411301365644903045698724592707645412317849829303743359288292084169843354683324055504074436252522239944076362335996894224757291859046381002902039054770423476801373250346341987791589727519829588803430529634330115403736305315178498830762348730506082491987203240834355028629688860879386998950823132353855577590111380370728585727349260980314992419135847304680021208741878268644774448282806152157803903681222951823325499285393112354330730668623230405087591968667714227519809234852400440680047041940692613589757774876857071244516209593426246776063330270299166479510133843624818979393687443402129434250695386472412565078344494653452815037739250644171009223600424459836672916957489069114204322777967951401726726386245303277731046387187886238663949277065570728081266710143297660387912525096264836922862798328410751233978755339339508608342006982384223288424351705529870677141791900721002941885828720688980523118121543224047015031269145279783920724302554910320502973216512665375624479906577063211218554944900101646890117488344250368697816618446667444726370741387150369880724141049110334213532402670397040954435986912346790525674679938278614654158081053619273852003317472234642715777308662871655991530377806668816934239883067306315466152262058063813670133995103266619258694895280542258047471348445486595075976514830273788137292965327033139012115955197398882108154108815108453744756658509585938961330384313420548716657364436915394050855624683728747023063301180837479666014687601248175706154350818012806299525113672239617641396644816009203566242897833637563914176255779953761947931627798546078016305246154513485434851080534738794213563127048055132589008094562776125146732591831560330886349032079174646185103383130072721448207212807421401333494847552462704095430493112450482662896868714646252803785795137764162942074339335284556084028605384667913730835726939313839288948385426097170645736180681505959306381757607383751302509664019685468728405991758481814039600346254889011768703859564572248803904928732877898005234883828804584868251199531238225041067176220643637503351511793890321563711536784191909863179186437879521697501822994303793980964314222150777753506992051574487553303127429093430670721570847011184974807965673465799721216733573918491971481760491794475069919430464372402333088710883199411698612034782644549186220466214587245860400686085683173127669836969559952570467932172409915193978032721821086786930776026596165692770770215960322307437275473224449885155824845476963656802612327884596758570171680301368129580077480407128895702726751898402243251927806889134376288430349271843929630275986890616546410027497636014989828873118703459806347096105937378742640784056895675555965468727736350969796928131705407358459508249232818060706840127944454825782672161369558192734187144239091465291136088628276133635763882644960257408471511769689194768487818640271749876655752817568629244537870711098013155629994490810257187881353448565381861103420063775403092112450874496185061096680658536319559369153844981738784283311492016862295445591811101318183863302345732131354926432673977025121388508401177799525158374358277043955453342402222260516032417073351121004557857610790945561813804951816188758277332232593339037541190006996223991265927857597453133525904821295325241847011352078481794590242000671479123004781464426730859776619702499233304359953990275769645200729222846323286090698019300388647344472931347177881167131749598026945735608249392090433433575251815898001629411038457933477923431859338084192802781380453253331342092933374019807606203367529374891482050051457060485676005921458384580879650272557904713892743744900733274945681155594842864821680289318349168126451240347634198272744518948541496808624484774091201266464996610059705114239351008074051888167036901522163535468004249528231918839767175289926067698460985844060910506072050353830045055219608472966155686547464628746536297904931451016113546041353249702307003133194665074324598306301669854932358014276922286454619085573176225521150962159927171984945031780403270254515122458455128961699600312777918889219185802966524065560474047046635038523080735796573583229455350193219732312423646862127329382942903697387040349256425752558618675671011469973851394830105706945178425443168058849590961444986044459319258879820132924364229493732502140424788674725925852266656734782226770753905198314725540970718248860841609941404556638542698404468389771173881752513429051086495186859106857250553408345097265457443864084458240718274906667420584273950894504565042684846490355779536563905099766510149776457914166885544281851171963585875732292675522096455721819222697232915500218124071432731225932783081162934336178070274147174373826794416880917126127461223339882167473173659541102703149810870503124312419555649636641773686373207818810432903441955798444985087492087444524308989771499325491377124262392257290110448726275269508526616836862341122890730857248599840663827395582036294377567412263568250455179043179749492440628795806422413651263616925431545710745660934513674208985706410170465610862269820630446679438916448337659995027250866238892631417627080959819278975585455451317385653187926366492683040944173184571171484658983020737906366331239482149058479283695878292686809546977977823481508789992174566994682418119261587511045604682667254048798358770023101740498365425503571864472092489577945199599538583780553475221415432887238511694874324088511367651272362828928240249333879475728491899698404262440298676027532202498551075911947733124418360653840956197004478166282991411042928038717336324776447387520798156056750165655043837375540669426405794103910523260661397162034131720454655066697998846157377911936682230343828661736121138379696494039984904677029458786127959959317635649284900242972106061005489291524288048698340334172494996807204307768335915020678020347009216214721894310979051502062260004029686649720803892610303566464624876700130593793673907683759207495542287473476286632610552040312287167358032035594045641558553912249054039585544340001645162301981335568880624769830219430305305243158466310536051731827236924680427787417717490288063271619480640411144642645290545640038061022986698192653897784200648406200840286601788209287765673211807451830889670903432566855157162936050572984874395589840857580827650188493421660739355766755988701208531253822834041557008093136348399354597495645289753132445276732545403619586789376729962057083627738300039339666678366854288321542208842971772112121119610259062891698552685237967744025325104536266966790307803416339125585332852162115039761613154352691980803201234813232729744465731181395527544194111075888924976055525269229269375862168134884800091281888017493990631381645193757048428058051856900146590374573931266132040559190900418745863549992831141852268603348713918879244645097733949688498086521166861150486796591666236880071786898810690630811308638566706500090890806353558157044508880174458289766682526293894781404285412802087047471793354208711489488532097282708809095920235552976778462918458314941194031845835268673442900120765714177945637033012114534980294393740943007708483601369733878117399480858967501873299705467867778912991795786219661133575938322632597970171783161409900255915566755489911599124839307121504235067955675492264466530894594716746544948987833180987975264978886473829344970917158961933300725578392054596859596264435980204984689461019999195128005219885432167377477393942265694968421869703039930676584468105902863140643436576818919441846717981645956362935076918959994665000661006208608815094778636311645760027707826301471717182917284431541845940557203966357740404794345780954653469453972648205933589322310373080553915811196223483531742424986372398866462100305325048445131007622580321770627139972307869536121944149764335345637432480953009593947635723680454796001174106378351404104967505265660625787477391457010577250100636193862722871561652144091968071061237355243740302326398781221486953412438346490631788551694071134336456456788405643110190687733734461532364329192575329724657461011170389281959932903385721744911706450552954763593972235824964643650181997600634239608100646094798922396919054212147861159243810357008486024924492623407606787651418143282804986237683663394893761739611430171362056961454196544510701901915626042284460449993758327947471205042193873547920772004193618904493733374935367377695315246739529566338894239007053446312462861832934199552773920939410638196102631667159387287994688157479930535847699059799640435583985238716244316276406044938449910112343322754081222587337503821073925425901167503182562130732377729233789851040888706242145530407056112931151521544030460028718053816713622671188349703780657589113864968906158830721109090840234366845922801169430763103799439486537841733555311756835911030750778266596309216021334911174241982385005637475568719318138467347887952037975592468612106652732537537291952789246057926161350610102397941120050175274725314041462925979336430088926099516540743500700276547745305531602593481219271431714795344711528532861387928188177791170051751762859327180254861704418930522147205748136426026036498922716930001219134248074061925434148038040728329851990788057761934161400580360577385941077799765124745466097708950450640363054313327555700547091836642540150961886963989423559804665648752417165021667125969895497540916319538693058979389307862801221894365947300263005887954630143669829901406226051846960581955698498720316599307904693621094491730640597267894436904617534174530348688412118298338486557331715639593239637318667022086136424642576646649789728523197122609673813569952988186446394317291733948986948830557622783220390903066838135782774600936883945888464857759307974504092042541267164180224805544251972050073155848090119107358897654841915324533927412367092796407430153092533432200810806522227521095562203390145164522172611286469171789933223881574059624130562180957901698078227950025551004276386390868998686827168631841419608251666990859922846666081584266889492542393585594679499165180679534619848879456669935076321116069652876534217456692444008298324805895159079797354147206999452637115568146245063831362353234077125135313414411716624877624936981353274486871821055413326899488619039026737377342290562770768891452347798157727839300311083496631184851017223908040652830487046913282892658508564143875482263147002142505651949557811157849836571510232469044412432502435862414724499148293024608450125317383497088282317201487336177685328676413281161130740078539268352811322045961447909482697946729280441871710860160387895518359779547050439068075449807929051481757088345966157192235727454039070463611832455945375832698662661116747230811889661175350095145685562790342811688094685494277679199467313429115650672698846239739494330762803271619329042983456168300013444101834229601594111105599963074801137552689315523572937553126029265480860798848966848159035465525414423765024415815299937497321751822477238623936115480528965007288610408521525973358583150463212678311435156130221925047446359956866077332705911527109792434599621003704560864735818499651204060520990347980321239175360438962359179038759306930913094481280600508825358973637732034173294866697007601230974853119777326539094774837182214972004909273363035152596063553830637544379120060931467492113867227902107643773574277327303055057706056699729898740770184183349702687852747326193177037971506851763823205131170633071850029216291371482999091050099237789534234945372736489044820334623195510623032822686616950220658013577480614750407651236152501082326974101412545150277457694722111014518621539514701266548237696257385595848654468542732506027704392554630859897362596344243943529110537293512843086649568402372350166789019926263161345443236211031121214819024659524562683559425819831433385892749294630777101481214127430158537963889069478607173220061738847642602674337478283204057931842193988700134475505716435557954616855253784432119911241504422919990430544065089501390589856324666476811344846467737521242087588887222333897008317576160188506799835258580517038160945529841747739621537012711940656819081943581788125857869722749362625562310206307349502169978753602131068234058169779331148314196138000298148474590074002184413628361460103431960472665266833612877500960426270549297697564043583947088766908598626336684538960993511761567525985990972879093454437978721490315128236707032681874663335581593269099583915804741770971600456272110659524792119914233291954193628144479462992083566941009628445911539516231481955292012120439352879565714845488326159017211716973066121815163754446388169909910474577927164699282849815473219395105856429958865048982361536617379172574106057664971863311297034960476134993260022497602948373984725395329377746136054496581633183847200873989313275953103756478469671260107157623574002775503734658774420793935225807284426744773124757336405506584981436733587808710377850273075445862606326222312932320677273488544765818908748977110295108246704882619841468147450889537967577974302587667600244870830178388862421216919369790079626342672013950522611064124851002570229041821005682822488867192381933273137904075305184801000682589865971681454391849394660925413035387756478745344257606364285194242315299303973462467950020694878465929279969603804422819691046502740238884442259379923736358370774235647624012006822804929723792167324537099257950513485458801154200208635485988950984408978357386977168640044653322671070523458107310006262479393833517964300256552601113794351617020118684080509465034578441208813384339074104741534602871736383823753604057292756588229734632223687871190413937307008317562072048618030525711652603304050365193021394318041122283964368114436710980626126059649866191018847739444935830435421147003437680434260744690668415608889214249555933630729898909564366332287168115015619943611528368184078345098207336174877873725765877373263950052323720500114674799902037725436526421749098804497486555908447003136559053822203537447066882127296489640561265956881607736102364373409484362536540645032921987269162745945447743296411487609984212503075401931960149971726204582477126894441026809578920621154880457800764403498797114630125068130043373851923887425176496283465115685568742934911596571318242765366945582925212419011157606067229800827137930535240829281619011646851429262553341053747020529134552952599512141405079763968938214290586652468102488224763288955360142002137652456343443567415699914429849750253926492828436285809699978703897902877678844688117707703350936810156334922716563839358313554241115823475472882533480070574112025355400999821022039031352704642391984302037161077238074907487089287971138495733141137214792869374320144264207135947533609044752804278802482487571638796195450724336451797344700957673232530231675755615886591710442109135144410186987628436673773242818088842567048630604452733091241341796408735363479937233087634690476325012073964613851386514406538775767762791617771603400171754253862484435858939357847920068546143224570014242345336595489068197078840844448991264699355776194287149838255747004858624006258772165766793767935298056920954562247660042821146068056399852288088908296990657450348806512048468112810611894212641265557809064093444921759010935417300233421245975820662946619840957293759549157056428404600299684390186703895808077912686335697536608471265788046160322612883340129516795339388105940610820108704552613513927515481067518630341990821432120342054014297617036909767068874006720149148713494403011313262907593376292593996512620282745845157197103121878226719520352541603413539336389926323745568226968383217800434507242798915099316560590433063409486702580604123547742115744874550562992037508033341574397966968926574647974060563068740537063656323639582728917719252205490369216531029824769314677126795553638870571311553254772257960133332844347841636203852455842150148002765557437998695954118358760343132256820818151845661147522005479698420511892896476081539900103646008585690879989545827443126715644148759869344429114665329505235534011853786971604680390674362080097997875728200943869426970584122375188798084863938179266348175730343322246356436520468779125110888979190425683059467458915101496152161533405407588280249672416714048927747929774121336405592073725662742314128692679055112590521368069890851671168084298915918516358800295125434614491400836923037469548010603288441234717272550459147422703810170741408591419779518949871709852619830279175679597073436684587222763286268755500927922542061741778182874427247101606723782121056698705740509101467556371480836332257353463963166287081891073050007654639497511577880176044022385450537499257747637401836895550079631445645806002031593483588343634567696810614600505585935193352568926493932707263554140553208832811619745511333408068846613709665810717773100620323721608852409691885871761521001290656804465933711462966538929695144708400193973260561931006610384467718061566549484080826267443378094890894467373964388936779021131502045519282873240005893383525265294860976262611845193576626337064223719060172604413174234491748224934870389711993305601401294453913521517657560004427316073584263967052285628604476758837759091004089733980901014425236526291686579138824442519095322323112829269131673628698009205595669630484098664636741075536678516778730387931118950602457694037676762086668158462785883678395355045716718074807678622680657644064678241454608105317494292085903769187324230990935121148069587940348219318210579448702502842934245534895482405125667254450556177655102686498002162546562573348867917174518432412159045852246409210114460242328776464982333256136320731158769417597728704650162443223165394108992994954099956055764011218225687663953818370667151238152563307795689016550909905349105180340742180672808105904748195836151924165195990248784633963195986469112190716085543187282272723378592097493285877419026721637916863698526283102575932473631292989370809538979638722143524110009391583098395210332637725729942251715876706213481221049768055285404315973199963637318076659644194124080179434281579603450916215400701213751428329933046168454863929355150045464476626104616587511070069877131975301764512429812861275588358429729461050289502247644630554135582515180767579856580557930601511359468377172833830476927225640488947936205415599215431957816304876437917564612312659592618191956057876200065529762469559347793073263833655413278104830819417857388620185071006920323115443304221634938516250112670800341008647935522415915293732144220201843471867750332667280088810113052366688955046893458794505032166971633797621127420366309490089885129244374462805090672146169603800988617987037086766316418573009996737926713544114905609047720250689201818199521748950937403377402177918521549013825851194416893570230361914880820896533861893743043035985754450964561330379539649499967251159781974291440693705660301334292132573159082503143682626036076252864184878853954640550223883310579866519714185916848737539813210077159650522285478355336654827886971365517656496292431954666336131329247450645592805458444597904269841174022602318789577152205387074099944243280092656907661242870201397162652378519966446115199785038880070008590638344784616693669371264045938980309174480108038571603361032090911329088559483389326209465223465589565340658561145965383555639507247376127675135905059491162123543370179755215791261964752035515997982611800068154351061963384735356505788822283314340205143818108693282176618843191033337042773962143927490389485564124538793640731940436375447086163361056953152848324410247691060300144515845159161636840440132037532224729878909021890666017734173116211360443445953520084325526795572968507953721078531665207523349959745158449900947193071355146284504773985521967389473536611892685603043606602461921270830793169315593964383248800874415619430484305954312124987382225636356073139621807722118348522992288403472686346481217076349414287875823764176641065709005429302746640796384206394854199926243480250735196271648935184783910199443389429693752395851979498782417551967536228963229045902820147551970117733439018789548261464773452976883613403503534780860271101539728326681048864290175799015052368275767946615936935670685664132365246482654846238133083929100748033057432305182747012145150313327332548184201424749090833109556070246500115412606705045624044733423651524292112397932433944184032723037681889136879459991887669030045618591832161282825071770486792649854789810995757879600556202954286595494984728417649968410307006709087582461641667430075662974820520688600081845065023285278372432525654429007992887426521833565714790563991543411746122562650637437339245278715553636989771254106629430674420940353005885269068839352441208119426635641257190281974805437161170936714312090805020968357872797948055183560823956670149965702200833072876705389020054071838890524502832382075632779299707977108436773828257151452926492862664604518469987723094135996522013875970781760621543932796760909998011385496755440821528149650295084734515329061213795677776519617433812426108635861979399778704935436772479253508911543041329442259237496882738627936552563619912171800099762475422475882497769085363197249309963776366073619784196093248102548231234341229167518410570479409435594123449418664546650936960594143185091372943693071934501085560201738520110790025807330306319600233870611016590191531369358549754048621483100830196559304905534644525948835395304851931021812212493814857482933316265209330648964861310267849165530112680122554710283510886296045424322713433519707185387330101104738686892380391679602450261912947922306405559497609507574060477601838016930129161622296721750649169536575497141923153242288672403730526554127266069640802437882076210178045590864775383940058494802384942812446523461399374596410311562487013074654938878682370103625766755967792611928165370430405426561248222612702663825057119335084443943800915361514249788580900423638363606879420536353283986671863150807344088476248380847408102422079179911081018996983080130539648683586184287806502772709742433045076204179358878679191409496801310202725812909649263212649519148804120888318104646068180056143861804558714226796490498240713796027846346903576412976657178940337056490246041581153371658137002681301435949748994770122645280883289942521646192019915267180856075713001012222961025962715470788444467568400015932808740202732789029053630964155993620872871493951831496916982887902499051876484430167020801307022238616636749524060389124293299879056828480415593699545481148489025169313722578452971057700929234327474506760902406434290896626883342359267432818056670240210722195119510113552206865293508871486703276631025026118583723547916210119835930865975273420880420829320955188968175283487096803576640590052798415845667791170163841119443207460825228393698805093771479319876272124927590519180613060546947975815801052284998099129538877589647566273173087775118591610279174985604228380732708320429349522316266894722107291726812532696751795353592584524531378971048904408765255995494457994956225510114892707052167054982288930523349032932768772915575178888150780951484684645856875244637020329826675014994337813468850115536936692085188437967865617966952646349326471320308479681332064591854909975935327867578413167598253607308200614745479336548626753847817670858636613834734868626455240194878667016165062733743446239506187988931568376505162719636584390934571214402650320476818732185748407405179798858464772926838981064344860229895838033232224051955855904246057662697633818357673594059073334626774419505356703882591473484574576403606168404038019481530792548948922287724944180488176039812533837346591301048919032160544487191556488265271147915691071132560640071823015868777932054508425442994341876103925290990919172712013858296010859624716745411621416568176968142429507961039514558468077005832337124380497069186369858515223438441309116435353909732337976574676345695259348392507472728736931243448506022933573826636405008353265032463176319183063033191417161692054272331520495068392724527097397589299188807251709762838730770260458447723944796751719362524554333272586130746771684108688855021455804354684750028652524324689988486735248635753471643509021759409058114979029958430014326503490962791993992702591964443678465327983753025833108973490041410280843892354529644712221344605603259244469122334712862917584843756121392671216722723677976566551568965421485437399302738000615293153564339553175532039032291228286992750544466591227869907401839109092145519810487820013009759670266945378204439110707390371321723884619229335061227649444002523403509675281963787791379573138010691963117854570037102358091082459456962594360276402439627226237214956359296835294066022356674330108492783904083531953273309686854143631151419776174853507594036879017856368963803172454669907342533041376095408698723065857624009218075092578508550505976570912401795474138492140480186307788098200182828203067406919515085462707314941326855960683975532029380012324521051517356661426219856967522511726081022591881199474795501452512749706054200653518665766841699972871648777088030534063752177977029281638418504996629742682980880992360334480694035246317790818385470391905829475600937814977816707019479675460425135135688420180737427990214298198554989200002740219035853435473419699393401151826957350147363164460286919845096518410524797423761545011289228287217204235303201545636196985435038884773922844980248535158779357233572281071920915580934199864923418100123807647829710336972169983235821395036364354889160783035414665279440235600339284126284425780566742658424120283078649204191848377237247897657103148350422403986601241736003109299706314579742349438045707849374832629640749030736870270553419997228350894674908796382803947116744002834891670761972728275837830737922264619486957740279065409813080964169653919196687334744568625174735044589686715301252583957227107899289736090372663381652989407674725844396345625528108293413243353668050209415288199343017072182950636820693408523969087398341718307440224203968358038442015508661403607442629624988269482859644270733942530201028089803278044862223618301319172801793820528821671902249169480565928218608582350058729872097158237751175415079348923055217242368610830918863068853973380452484041061647954213408406040030269191934156886546884424356291350996655382344461451058298716937465261288339839876669349831546657648011571597617754903694037867072890076960418955000916696306916063571363433472565547989596775993960761310154694621147809288715110903540644013784732787952450863032907682640958894048249861744716270683305672688468342619120941805352186883372589493693199611034407491417133548525685395541337026206440372801215612218788384658768614727450649668244109069058981371186677815766622363371980560512080631869317345754983082736313936967760666782158425544078640614052944464944651988506033663434059067380764878481807551826083467940369276646543157477379237164359048942381456530440447614824934185029366988149089804424063932960092044846998108269252878037883679312628398804360613739880202201584473567566978887712748365704368632133701031959690481636528962648235248117576276597494588200530766149766149724875883326454225313411210524461653968352848022699867410492333375252873868603661951135768871932279395936817556427865423739377571400665034976820362436360426761748219783542612454492572622892194798866934795653278033895742851046930177368156900646580475753592504620126368997741503461870975648402504138985780222121347245833908378834437315559928557892088759789540498015251490435641570589086222117038923060819263932405048743196909663319356754072435928722938188671621954713651015574178888735509667348383728723786579347997263219716663817546957083506514858835848576224473828669630896950481344630090936794195061623793494393825878037522206436483570718978025440587122152181724041142927699587922546205948112957072579852309831948638019970069776103186220388932771206092674718105132279915534549242466945012910257963720970117264621245692289877978974853662495469648229271106250957187055605638859022455542645850029514613821255039592378963923567654081650690864031003267460598313013718810265590578427567624925831155340628571002513573100378851144118501395982164118116894991418002635050180711085748592256122134272619457575005871675100793305188914211579159081842030766262144875253134152882971551468365611325578989071733600723480550942753164198143472184410195347189898277418685675900771579177247141810748831242727734508012901255568518909173720894509948128341772158673247892047605182432833630633915712340932409338162735250732313051368705145397901670281283582272693116947648662498036515608767776026052325969920510527004385441030242031196538722989136734019975611996390119816605586592467081526096737615922382794957456184799225007877552821543683873129711764877515603475792909688935886459168386805810498138562564103502266143092426028421402414986446502556898189759601880157734168418451773552385272856130973299554575894304710669912691211183535800953703035279545321499448967594961660415120717562686606650394473065068328018925209460668587181564342440504591948013165470114407579571678802493750665178833428972084683007980034293241660497536129521986369339177203920297550742385065083029979970057453632485659292394779615740184386150695304693639229665051741237365081278875776499599007052724587618615148781161918776501337019021199413415702896475590073224573038944162033169441345682573809716015539215115164487987045369762697305806984425042083701524773786075707285179478098821275686986923701503395797729977125096871994223351236876013475818174764037486495015778278403472209599814170124292130851885814346615286165118095262886776907755266324315906964332030949387555532657237014481142071856195631960585600431587772497142953537033011009530558959032360342403345682324714538210342421268591033558935726529007344157854322311750904386540570827355067377295780555270685052134412773487696461701395477788968380203480790394816760756633015753057706444570394743186819322943565840743768828976132619298138829942062837766329193037122505107794576612100876700494016835819205719747854005050007355343369319939674838256639354796538873674349054297199577533202944201358581116965489868123397026322537596156629087318284927591312060177600859787136831307380494014937555561429180713180511870457885724472240351960788615740654578967034456292583003018605486271713873430744650307691422509577332714071741049135867793216594313647906856155072992491364852687213619919821808438771153653685891243136750089452321744417411355212392148388546114885131925835606592413796232127846199607180847616649761332593047182868968910716942826566226522316392077888556145260587261201399274076711531670165742664803846055841196478294389669817927980382732494453119097443194242863567345513018619731139868733185681946225592499425241766363966511801065881970486294910721850900974040172472578952287240895599923278533979511803197228649038538922494941361343298707489918809544402192509555577548477974268779769962225768654604809489663430987880822881074735796165411908063413984840715194026914807521999022599518462648197663785513482116604025233346684156216471795930702451414961600283218366429934259318905238349554508309597822796675035876695365028726652249647945157357625781817125775627436645707586743387592904846907394893617659878010224684993671263019266958779454517186803546928212410359220615019959971144584795919179739636574802603423564457402156307436140835698906271483778081789086729978912343224748496201983380902388449938159620894773272826565394587280439122738285277884160977199609010097383062764261694871448807401883610987213118511786625077969669392241012095410816367937486407095125270484527154793641223435891255987027643701329653055067631480121387832039467496534761675044724187380996969801506175496050797891684589074559477644008860718414637105408675112340128343938052976328140044460848786917538723149396533593587270353004788828672528403098648446794561974802929700260784772976075787193572231809929207688314207974070148086086783849514232584003941241094196107515383458108274415871339544448579150589112685059352008384543297711218122085594014134380641433668138539104591256671980126363831689770383948387482830313532347456767777324478181484750793687879615628643773582703317727896886971033790862950434680186754124372014340097077873324487613220531018057420476280177109623146348737937248433065410146305691265459172754017050078043218851598784493583626178433554342926722963517829769395667528127552622303275245566755953317428017182070961614757642110387041071703343942551704131962420648039448814419488194657633861633354306538042110400312908121525174006372962147138704836309205816609509230262166348748829389489739637005264242990985314393083818805198703980201724609389297699125842285641235011788431578051663854764113130392769927942225920216387339516050101351553547600156192398553603872471560708586153235081094935560677178723922643214708606212891084805491562881456727657525236661010084414461475576294540165191206245179771896470313635230929218457920418443474055913373981352630540643187457462809552973279401225923183699881206607376800831111127708178270907026195665805363019132633906154730790517048418873101563213784821323173709204443109978334425991009291253232127235432250739372378176892816451538384768412140076523662720367448182910574551492771238667070174164009847590509058926318870784851267842283440304459218794856310598518463092513117126139636163397523116302598644147789686437857508628368363848500992034666044514942275886117010773813420818196894705522004880508938373522778491711018554681875563539686313043746731393562956458120687558584428907909649895900504132338705130198114574041470839531837828318442311920782064165331160706363865780143130802661790880750817611228969393793235649288008779983884112342893488501571087056142260067557576430165367221548745151603613285725037450465978121997231008819261884678124059404944283392951458865669026863329883071615256974577290133815898538880050175897564148930016598440373332490415764929819124906043935431844170163429435583296288756468737411554239036316062651782780453078666682958589406086610135095242421702395072331325063720259450293080894185537981400990707353334399827043963273767474709234510330462263998551890848693707079057372435156665430234005358751999600071288441461921602751010161016046295997971432503497775757121773095103758066338489751889718874614674944644556923677111606418484787838218364549651737970615589782582520786420542929317983463187863382106815132352647512451980100293037792610742956251122308768750455224183556541540965515400238051610898018631194181416720824590561730499863225822838038302915723146446871160277865220240450100034554457957288143395864345000344025762735102100993569922851470745539562720520187400421410299600261105117680600599655188598549788764188298645899211919536644387123003956664005175156426535297600213707062170610705745138508644976630602969733446369673104892632028869684263433960827031508182934147480006711051367954672693602740617120116438206738267491700078393549110219404651201607389421426623343902827738642128873514741955300497410630105360217638189458836844986094799948935698400169884106092180338494215010070664080787754264307588773073962008128452994876994442391959510619425945611458591413425369365399834528561317178233320060232283501805969555676288651026450968135109854127820574433375213786022488326058497410196128625756412900127654469532920946781162075689588978145914016965356396667403805679758302650075534490971829346818280880050375082946325531435752266748896346496828668244664229830677118679018571986562792539874943937173448420511060201068036137903570957472333167936954678413602181744654999827709168762484783303029197591321139481747205744642051650745773418888214035515043769014830198000520198002979839609660229774333097646896692987497137080015902063322970778249287646278246540834267826410228878947600882297558527309636036972284542439547667303062321820737191460345525681612891501656709244549750114242603863552558838787700736179780331943854863645019924577717917415966959517149477641010009941742591746821703542833308525551764782162321408369080419518483659261413058666526849273088802647967190740711086978879886029718516198628173862449078886400979734951634233592456485337839253237573113481681272050511305822910667028864780552551634378506179912812948475693199157358401044849657995169464933374048146185887153553360162705755930077577534642092703596945421565647533371621075540544496093057419633462235632662811037584550968847269891349217198187286061381478033392072288798296328243795701336894100008853831773419590022470268940387461511723009372428687209541000255664541643807085184096163970842594753381324267361874016156464175640552746649546758536215327234350536213058391635545766819553451433039617031028577673773119733526718167654480838734222045881739084172539917870862884327280764221990753147752582814521294517539133984819771402702609656912128015640932744537655253938873823654706267205147581867221698545356125541027528302764405998279750212176667073903773746590561015722497409777504752970002345501772802713229167249810563858540931996898805971179974604945135959609593697911848067751869394980573224838002949847210461550466248202008161114701200206331443474955587195828919848435782134470630164661511394661335579332186373001992680331302394233022535935095451182016132621440272019322132768755186927494268471401738074497449850661983557532874388223118001667521461962690932737484920684796118718186753045290256666013868411282206107400020252112569772626196953649242134744030144753123983843092715132839348307531811961860901589342351263732911097442061564931040191747453205687723917734610671421548604044524359483636807889173036126832376277634211447943638542947740050791705705739311978620703081436945348592818827348075904538913633389129960089324060135032800173407837836523529646348202324982375836338953722248501595332180423487336549106500312909194898591771286562705396678068469826558343575595872131458933195836148345410770789559665178995459811897831161825902043321726344297503270918085441607447225428145010603227091883229081874336322982199867023635433638545137768727383314717327797993969356970153296178621393541428141374011310585820604204089387603711519156703788805586541667140522531576093078559536815228647566249598739365216988369452319972130674135031282685466737601922860165607164013077392962840313854626004607748863757608842140755203795141546479043321646865394769172918953316071198882042200315262021440526702685420762048646646387392239446637364809703283786515840369633964081172320329431843900305289543886433855615921017024503649945679843424105417083789474204557316606284733053757835668810891449172742488754747190246415011464339382600597725987827899186105181634234244415054310452636616286911324092751931444005891675323565330492245116275298670634505109480471558166926303155076808045459433847350900231072623570047398660556457044438761783610817174624657564851654044300032303922075599238293770335054359174876031825539622984011702950178736052027740711395263634507985679041268687516059185252968545483679495269943496163230860354110719276733109732528439387569424318804243283979832332350700685424260918734293328268342651087346010682367080521938506478303789640907190759644716135198984452136341501382429949877989019386109685853723319737044198406186940244593201475145274848038281461588226733621093060812549070220754487575882632926009973580237992925644498579113661689303482157836335134691582266039694985585324324261555382638369329825954619835803567499382766472384105028795377314156084943572036272414407066883415021968754703913092615579007373769016337969171837493659840517465820186707566765504785397690876167852433155793278127406258124153358437732833028280319911123558664521203579029246397801859968729408576549064200689953009376304612989096688253134419134782687392048193074285803462780478084589243838222681905155191741551546649760495713831898803912854746000072611298412841994239497432372786446754649742316492303358890818654142138001904055679400679319398784281321845966043285042033714592288220815450715342480107423513265273386153684712583074922889305898640519869592268420782386801397047755495367252433453957210107815073553397168583107380553959558320572526917556606724761229108489745305992587727005312124715678799802911895191204402831260010378084609780219040579952233829126611516094467549371939532011500181461784820489098286086478334194154172307044478336853113274155928499308000270210896595086422049425269651085348541173797764780256672137738239025463748067392096123792571927167730221187098969594609202281153675772801880674531701437185220670364696407931939956895220134915065641658435339883492634630674175589538762703362525899796446172479402565693321420681912810539290925321700613864857745416489922001051017561155832320492647010380770395807935488331640130766493649631467239022965644449780468476708700322775594335825865418575722746573546558168918030627340576479937427482232575803261609358412015658995259725717321581170288926264863702443861621250385958505622885106262740046906030514187813626700183599273090717221313847515066239828648178550355395964984560805150645193264756478643404530933975128963312939354408200435545715526631138476342299621911287167949256996356554962391264444783731843469961769197731320514923634847872008367335358244714909141620385268971057572924854178912589623841606133594733224259239222689634599862320637681117140943855164864059129651485430995531787061118970388322595296349431865701079719129885534718114930544850490767637156967289917043148446833426571274794777616149080364542028960796491241581248697348590014477827281211299817718115460533418983588793506619210193801258087910876234047035057010475783932203706142706735712961729593134244422042417550307249109561089068715932986176216862104967684137321734321127972466673257176037515952982158034438437274389961566592644938449048426192158203686004674893362840560666902726769392201462061230586046789866804876038026623222872777008586660111287624750478910540227277298347417724465770067432106846445998673467292169110999864172709824846964382477671236124252296880077744121638485232488038526205280056840136966040914340343251201342835908574853589838313743214413014767276974516546156389931802646372456718764749493680202128844255039842483864270333052094256283580123681731539215122490859508335656755760237013223170554514499822451012174630474894109222089943107350818388767505033002670636262325163636482550694558356178077631832517618657203303880689550501943226716385063835667798290439171379611611076790725970228294948477849350667978997425437840027217625455305758878300754107809912549367983434056583008800255820069540937943079151183325433714888632508528917159920147630293215470536386418461839780771661898894554617213167160529730474742210994311638267493735644782295998143954454904930731415362074264285491722504939111540356077616077185745807362135079338932784679561940785626867815700876932151305104948078758637328305396087644060249247943601979079942231897067169075835671041590603924857650752962867820511284065402888941857940649638425365773277817190948669409741325082865112492577333270051388109378475921868768367823764933684127296773277172170569950260336403884554926134203048195423050572280986992087077040002240089790974545950303607321494283325488477250052962772224157044402872233479729232443876351076266540932050382272406463049235677240735691547622523609776191223351503236130231575596723675985840523713289465775773972539804659165465398101256961849161233264230937684563624159045141612324825370721272270705044940787646522534091744286671923934081020302845794384859663301119319858797314101074486430006868974475577786324369294931330066493728321530859118052804465172117549992836737475797183681010164266595279719518327190918361584525050883393342484430066005551934015579226643159168279910128117706075905125129312981529899614851956826716538801934880900092652725154963215529969657882756077291858887455255861031139630531250225211629373716075028681279311979414511123412169668330956972626527356020433387517569259307424712160527129276292961348219441188464710493212377589225247734731004346162820934595536955896402847611026237111369024241633223189435128307453609333613924473535207266038971916638963224184154626951127836385859943523346320521452544539070801808867285227404927253964186290065993828159671988279319229726923568628766394403383538991699799679050524701272334352198364956128528301309702594141200190757268156083118459545593187387993264941738986977077157962914184575171989569853979178508683360574044886068683067713290711117608704735606274215975719889066405366862967658192776954398043714097171031109552612229479309894987350591968571207871831389005565378239742970204641974945116601089791327873121139834140243384109140128975566081881653043645198781781645155873821304248546158443783227613425054279432534978750218207597406712818283360486769194219882077565335904181170766847288392347154184837669932045101193592910443973552066729084945409005562309653976990620502922761445799567716164269491159420858799312276989751287489975357119640431761206988225167649426316256149528627608757058783810260000730697685898826857439750963706467942084272542510487073714210844775268513880726688710679422572001201985439746517946209319521997775961180283998981372216595368834027649162693751323711825475445004025743074417773724585340239821714192737341765792603465058634119394765718932527768110074007738203145613164356067190316263140858341276263522553833742534454008524651484635730708659458589030214646556760892292250389504082934221643207700817969652516396901076673962787691740933709453577387883023944738424778555449572406185961871986121719443284193448599074741039486881549439249163016295581503750021871896970868237081860148452236593084111319307393098286288844336936209562997455988022308234662064456177445311873984683518061210212874947991208290085774708352508295990274290609512336009030100846242545385312033853072152146330684560079510787385930651133610741407518355730507836981036375717001457944860320250786203474482619987616499363790248703394089022539870167850191012647232034531931009166173951870243199214121260497562613766899451811657234894465589810502322310044591095444490027878426910375962343542011927475697941531767241329257465315401768086948077925443707336066139818066461087326845907119637793838154026471273616701832458284069919137435484249583942594105059122687475442855021423855218194444920455283458725364067263726639578164100957009534260172125349253965367239681696523011197036375959728811617823132854138393085253815894046295122186304555741875512756689181485196381851468678002713699101910022973523530671755970883613194144638763603866908952002730085138827553178652786106762659051994346591383009802535626116537079216399594257099134469429412001564344547500558965240805563433138904262265229418667655739596332584259834027638682253384085898715425880084415109500660167805283436757707905221827364530298691789303809670308352887521302881610364685494957569637538643344182203632088596495588372907358637734200064176376506983850297384532260094346065862186477730040068598161087437657300362185914265312159362262124309165023585028558544122720085502485601642467170905537922007033778433569449905080892123045751607474603767887955448491396667775900805856019081031972646096551497336649841979004271658636349507486132066870939788030704369242950352868226298046366523683606323326955738541289612159425260838506554203888364127605019189393329105946573439919530394532400625319891956171113546799173089631369637548807495756296652160403398253698568239955679810502081940837772960406142212955538242512535726922152031994885466916735522352753892943965787773396139505742465797934439545341517182290308208003041988257828245064905636934517220353831737644523136244488306326313991009979811072071048288098496023355668459112447678423683736826107153698749909259336707524470295284560968657466948234299882493829045909071467672715514825477700809720290852257714519723189738459292209956315725917049613325843394832187208896993541767909656058033613245135628281161698960057237646293389018234827676987721801704728730205749042171147702083268784468107329302125925500570454715454384784647847284307431334736049100559469337080539179634351376940546462677918674256000771645032873111153194697635068735969510920669026436830500031871641049152104719854200942940984536524635268889276726046444425368571014533237162242585289678148646136278296477314985870374390271315752229657126262580707206606272721659352284989997326886849676930866094237839129693564028218010855928610006430514481188681882360402915740220578925767566381673233821567482492939009132733341227849461762676054437954420084182560698736284007264912685093079590841965252432805349473465614273178651838535917155129727166970706634085687354596117930885735085396988790182755685370620336223661855704513425222537265376418189540398469080357402521642672860850188069114251466289181009519478740129644725446150330905602562545411365451000217723964010184100385642560368132069351269193784324190011584194161734485784574998345188951576642810800100960695819886476023132984892827093763308542549368376374852568307282213207388894369159955175176882275314298179002901219870447553091692788459697645884927709854135433534663798940916771071223918594582181739641227547653502380369921386299761828103974624559247190947414034219848826014029965586062449902035468680002643234027422974595285665714018175409431699876784389046111243552658184689425632036413138841883673021851437161811873332741476556529710243930363998332116863067330620239670287979341697570264635204820711612096941581107340444823427282147760928312712263360937400455618643264125996982058475843832564250373669322724552691195203912934674884056956105488975669910460771356780439640065935980478574042085845224364337857821349799660447629499656328781032225555207708982142818327241699634701700381574923355530461967446986551494507307026616325630632933780526931401245602805567517479207270765049961592324952203212562786871112744625667641714506530512589358462045870926496978977800296206679913926138964610378326364827735351069748793759661344804748628557267829502002855288751605340042588510143694457175613970087245224275402114552653934165230830123237884807330039543022906747072088728792923871075517681474131118373391780359933951098206087384946139944277020976657053110835087600118343520742213646446786109962759790652298610056035776119783445969614989332532229583527077402647030714083712230723737635613524756708328383344113419653437651764490997445722321560584132044329074029107165300200550472673722091363455594698233055309080739910347856029179070657590686686703435245883496187799986491697106692935501380865637107795264993296826913384345430780986489977098524065461612819228440669249967200714008717988239702300601871545384292102558145702355141194389732739537044360971263892174104674491389094841889284639488661925214012963455850512076676869342782110492247142479901763670101565987386628911855288483927426343600714791827183090299783017943143923765792264940660075386982026367904332675034806713837344557140508256309342564265222017918773302748200770865773258903353183158028502157354359551842949918063395779430588297466022994486022892721327977296062464702087517643424114203759390191780302200940626246609448111403717522053939642498279591814981676175587179712381638439888054527115439698196990784181661859501190461099028555525134277843880984523619325602924788042085321987662672491238016159486245989428365572366861967172599115089802609408959223733489769720140459425730728979728290262061240653298756429556655818304141702192539720749235191746430208324733956100249147413841315341476264257456605372164937003564057937409726987442655122872901048560195907423589930424495476052548316026362666621952333096885178259129219268478514180268879222588184874994511932264204860156018307142026032438499916973074227201824061073493025502353056691507491372574697060039146163006162117114772131715875087291036821162357235931010774395739033721239037811469795338923211086213084987662070643235480146701311872268355634510275272452333458763088599453367844237567251121028143472520869555058190505784347705283870246505357689251999768301414305985973741163383379451025717166482380920626368588850756925458563157026208638761259209112784418395062340434349251263759835887949951450269019321203677560520577135581498630661796607274057176188169630737790043853471282031116931506081489522380811891383119428963290967036769525906908486709211819386627084097343823995580494450851681183714206953129973154675491824209402891310015483967960263258678987291746365021463356748221070232528750297590701280113387427751613580063726175274596418235318177284342151833281549441259105397325645574679932226117655249229726574989366092397573318281703228896927094283251182496644984688042771627920986267125616836523834017927371281436822736299710958942030497315402165681944306609069737407428901499589530136100469768744540222227415255081517778882406958783861520412607374452081555042901590652922711056236274719270777617619658260976075883115985087771000440924624479176302758693421536908290913262446923314052038358430739536626718104200677133306545199249634337013267189528169020127129443219028553126253870730332636824059675351472582156165303591378705158421412315421168063923805899594839560443059581626030755588570231677913760419673106159026774940973168956734939313835565520886275756564091902405156452373914243440946509198614138690949054997985707822344663346640088838014688159766664543889122324539362080104886603839265872786252595647870517212403929816481968158850460374262023354442086436776732530056596953124506831067228612264445370448567192405673319718336872417789314534389744578116368984842951027400692586971151623350320258152886773140566764364846004653896227990273477754985180710446166331691346567324547004990583769110257648292852953257086021170330244700821650686709668471853013987223337406030883249144008767860380502970687369455959711499585393383111702128889513046944308137854231724161344385518646201441269068879651916882748508980869862650349770026966272619950164520479680366980071457243337440620534056871762288281798539763376229016445091191256621302130535749657688844490070221782736658124752181132430974983017753138943780988723504669297364734330692941099334304875026664906423753579848418041836936191069822335336583506183055606618539234496145736605274162007707250646126893925381026732454244679976330295706300695125040781367259525258924505423948536291889223997527007745299740331910234801911385111470406991195512891064889585385746759842608249957549069812483465414643768714417997362877550561686354487726013815106473731641723693862118438049966917003443681455857282541921669309939079103877899349939320561806414026393811488333284953126871516091764682991053269303894657780458997829330204742053621068693507076325279801061565338678400355081686782130627978883259947365184974562008118697478786935400303103894717453291467124600396208518345501049499826626303873105611902061734566737761950768591420600644732339969684661845899016510750756430123300597469946326864979375692486229324170097476864515416643959681511880088477785401714773657930951810082858319968068412698256984304507874111840833646789784534824443235136288390528115883577169326906796908588556145893365674387737804734282162145378220692890460275078991535753564414208852919559985138067217778835555230474918955051061861842472532480535820006157027704841998042272250932880892181553443033071303545438000834548579518949677192808130404977441877032353982953442206610343704272788129527390681130193676414036919365494247113457499008472925385972585902434970755010319518154452774430115135831247329358254545641533803451951272424248445337731959163498336047116728432494112288590801685188315459456970106622491189055662756927629253380395836547364174876544713305958750841486245955597097238578493995799532855719082761459557250030918336614980548819848741421646802998935135144559063366493390512693258268204019856884920983107864101957158784988396014720193349859038766222855665948906580478153061613748928215564513948841368693644237598028679148856978332776310053071602207944052059722497461324751181544611062439102875902266948538821896745669300880188730218335481639684407589394959170549430251697558894920362103655372670771916888689490461284690558609167207336015703036881393001622481754366176209567768456405500035858866557377368124786923477108556996402940338713007284353130435861259094395478616106700019494041990707424433021224801474081477115026471956815557286481793622717817082519805559895275435056055555349410512268444869427523633112602916445617401281677444414220604251082174921236750367212668638919624634608705845008536861085699010199227843715355363191647061521846413111286952316521498486482090972996589281473674148893021304614730858483771078770288399989663075868986731273132992072075533766234234462900887362896680250548274906658920702166457950115698113431032845868808219464866415455398703759430327235638603030841363881801678527714587348401420943862765033650953022267521252718022567309528542638513511685547708191027678897598895032545584421484993791996057992716180047107197647624366647543871742728577095163423370134688243183137510598950791944671941390988297150255264719366151737875089092324785049556501718825991974576870910682222667294633383396748633405195082402051691661141487175957404778982188624363059907864890051526285330503896445526787867275497926456824947426910947525963784355095066106473530692280198932859397291856617644242667084534959737383964066531268898382149294111748577095195517318005217895394291243043035285714901868349267586708405011442951351238390847104038178625596765400584905399797669566946789850139920920536354762095276640089029610698838988806277440375099941008556583378601421330096071514777192693132789322964201132393458723406013058008721971573338635830910171920070288283346078034628731209729821982951479437056631781958087470684143526344118756784856433888711240263905847683216079701375360354136916570716767288284690510031650044524635446762844670569888062284450252075564978109044175120744292845953803143495822544267705819783847214926028058888585740054528244531037656676822208430464711784922820157587400221617531172034037953546307239086353270379992962322995863528368224836483533475655763368905895550199431015734261330718276645322335697866977191450079189561475303648046785759470551881169891337264209672735264543096664193714321820691115073177316467942423673048136545044947000984544366079695517895857871808399376057476634868158137762114369755066412887805308202338642445893471729683563049765983587040031749092618794723601786137729577198742178942226246154163880917485788975681674572533585795944801492011028336588199704462061894523348820904662838436047556317294664868642289863088828770614174703017572310529739928637556418430786208793972797752425055813017524513650597233999335192648564150589233633373062758673372491864833895451639598476241027562225162797366533265474265345827370883417337113718704865310948219480820536342731825424203453027997109546684981565604734344374480420327153445977655623853081385925009109929272423219097951697190022525548710436017483384216592110198134051496299883260652011070370568502662410668765904452038368283770926154704353095850763847147952134845594791600148700124819555244295205918249876176498395850817327582072239356401559489548371707704658802715692177488555358607375434464835634452049374712513629859348188102695971889103457196391672253985435476771083476078853734895127690428721823308544425699191554830152982024224716128234093184949225013672237575406455723382780383224184973364000669938108868474857228521244774642165391664412669772308189347531054356656240150527475643862831154145462314343022912100146140548284713655123075216133343937283895739151234965303854015747195256383375620213500378502921288777899955295585883939975936455430931227717580710171520267806486397699748641818671058245149831771090905248667008681423065311654601070309984375034888659385738291278294356622050801132075460235285200679138832158100314227188475428542194269974944955350716301809782837630677699585248201396786097773897406355610668662221544112485129168862059874911824423424207268453185659258627255197821425757198282720359264629191251080388086634665777608316156674014433797968539351258871460503117418024518728950689855626076321750257145541523682952508360279507446932670719235106669415176174466053409640241876217981144817971473105425692941469867124564354591778241914160353684848742364019969939317857570931976622993954740912142071849080801056240666779920176967535810432090244050459441793806483875308866537878215309019986377983735208116394067827687536194620613450362538158629830034126721477511992894291693916338052304818252295136000080208360538149912431466417706728083976172855495830297952960490099700722867610496040559967212939075117221162639601612879549891478265640974024409231897837204680370920297931188677408088068371267217923146657214366153676566024144643279874602660506696902353988462903227935234347228483169355984186329046756348832831308359046570020280071605885427090508021475497457882245103852126288698603373383850677253774107125789658156789960450850963500115939655251158607736011361041738599668162317973109442153933631953946291377514695497728215432023960441820304398966527010126884635900343598841414966344016576603472886240519154391964990630199867492309491755115299206754271918450313751665200712291536402234451046108851276836103509514859097647351662363452583614315221860006660481858401706067519448216279003575590356242036752069494037372841411687925211890814701207708540674479670040484527135072640719675333218647448393795606099230158361135783495545379667830079898838436094215572498759509939192518515709866134245974213916098335218637174152643311562241359112162422694906925060082066405481480678019132528201954764196891407398289605638281450284784027850243730723497625430874050500845829249122403604286990127456387688279396374909545445449880784286381667302906921579333777547561433922358351697535207432470816239088664776467688092598589857657345976970056975517010505995873957660479818151439075499485545975675844135911110692226385671451988910700295025931833150703906757776089007792443669504668968815722216793524154671089876130438876135305600508046793631546551338383819881561288682729234507523126516664294930480109062671961434260771263454797969170742180613726043479316131726513919843437719975547019007224772927699343970711881109553724409563026075479690666973144204141925932458102014977381552976203606540233706251425126336899450423202198883965985015521405217999898906478439996305827704142789775532201925449673412376991960133351431944478241781926828634129559141911729721780897846315580745591077497667919600403777948560708769873442559639877029390189598363892860744773634009363564451563613317795481561334597389555653325524507209989475825212462358723426300682046852577497003832142668994542870253515106857467632796327723533948849323540127883212228689863698983094379814894524831739966680595529020180497530738037941903097017276212731496825595306608244749659405364347305576473276795834402027499589007952347081694238064741615630788623576322773858459041068701989435739921956060576235261715911284664149400283949777492321356424057420193671438364872913909816144496887576637085366861041181496142746202208752191428347167562467006317411908401266142386924277934421164368763704991824374566223365977625282780414556132525757722920855040163056235820401736843346360785405478887421177537777303037060954532837677807306894441922473093479167384027726730789406235068126794181374792553701954785240211569121863882122671164178097825073118204995047650289792476407360260680138473609961579694359851150641878663962321244932620160445363819858189892299258765035861185309353635093012530660760898591419917790087316492275507609059293776557469806277817810059203947827785359511327327334136731669019330845952470505357459728534661619805996579763954064180466244909348308587179737589684850738135419869632761830369479495003564262867665282963718766115615150959818942711750376780879112354467727538453257839265867666219508236108315101536923726161086147415741057129070706897402314946176061941924325871313141290802545180713808203007974317652372441208414276212572582848471692680010506151142711729029824017028999081090125438046404740974848924223069223961321523845792616231219826375086632531475887428476029244479111352143678794612759948708750645764549157029418099630305904463968393167318298931478825095168557917895861026800713565199318250112839524284108569811757322599545115503208721602187144683423676446561198542373752443433162806989504897471742444224890307193682586867211708868815057226102189205497546538708735192137293145754321934205574941270952168386644770543851670417297946430337551810018512226898570909076195663929945887466714238302106965312288289351033786727234327290935208171646812053028240664423181340797608176500082437073053111955191071038593143173720352085749737108330631967730287613649751801303022956922006194678330461552385250884539491028332512446622744392223323882504140550980355932496840526893856620197070561337228670663421422308823514636174624469427539047668655961087707276933052071981501397286448799225313993441188284298127186582605619998616057631133532068371218320956251989230813756946993651757697332312939369300850386730749024982993182623456173674548429010775618696034635574393839980445545927697950033394402079686707235286862377850663886652656320669131103285222844338858977132781796559875704378331141004864633695398340180815211857607933573816635304719110067350607610634565484344485234977287352710868367176481558172528599211135691161618140321292378201823874207791688117704510179193514342001071507147236731899433444051823868206865622666865799332716798298133374021785065985193471205166955466796944397487510336697539326655479176353345439391976073529169824039939477059757123917500249082966807849621064492360489565675729263464506766793284445370071986718182204662984004045432847613031215597664176663794833268049969040422155207111902520809140781334498360361351506090582352697358813746670131122721823510705191766111957322177371220944124197926789009652059802189908418009216631599571164896310416349118687117769054878752749770201796612346952424750743569872495530197660634894242209433788624509556219660482267016266760385175970934749937333900948806434773125219334618724376671575177586889548253255255488517505310327379577648376414416562615423664910154995424221690315751763079585683239583452359945469564636765770388195315487478156927525380321379587383134146133017791374830280602859547330374232770499841016837108813062530131264623389500344958489190319787725320954284194086251332576557562486836918149142447634642654548049545384235705456341428727398617110167637285592498688675729075901083895856265929402084917323459522239181095218462625298282188413252652334490242633561780635696793846910202990448692596726244316324700507763414717616488037659879094125935498779092500476802831370790311333371156647615779903483187155845501004445956426280207312157393007678457917001158413944109802917373691603110007252680519595158777409616055404102098855862730655387279433391174607733084648445423412395054443526114349445188148898834853605903970628307719005955349770716108965702040042750993565943439117268245139335046933556556465340378949308066678588431747162629791944062206639457415945959590386748958992012373676969443279179405609515913181360433006227980399862362569662178128751252794875155908490469307560914396235782095839991623707769983946034102898221933527515396428613101770185689545526710507469853075004241961817474098963925674532233848230147107201889977272075083777164569649590019246740907953476817669458389789489449144678729177358385301457654842068706849318233685643212203414812103970110975169043752516377931558676871132834079750771755648169729589762253857092325170374544042535827475414269941131866747525511280538068409546028732001821565151690121908466345592132864288580652008752991302489896818551418709982952124266570359445767098847475166101052119843671065195905224458565448725883386630995219863771733998757950810918842104103309489775757032431932166462189473574721331573977507093123715991736625951283134893877009536745974521912775274908270598627152528290591286145198033458966246935967288088981001560994939309586058779425623334838497565938749584953911893420792801839706641767025495634057821714574162831717171881006344919074046031479558059656988543508454653967885220002523992244813498055281826387378202303551250591087968645337450641600212530949847358561017208438010562396915806317604455598194761225070175786196289595094898864474560029019617096156854963891536406129573037035394635346777812217253249178851046454676390995279151049183426406942127785808181691203144419618681670750265261357777432735347467792483114380472594054892716091331096343063874256593878404972696215263082212000827114473895549789887748556285073358063771063126646269530311629294179721853352259703122628636785179518831114851875113627946763450945082692157081859413554290938742032841166091486508430739235021117428309668442991208617896908722756165240442241181519480634792048832454855992517670670854919814625092415711621468441086312075354108934284953525184261619574703614480634655072284854386025951574175377606782859122728641535441633037576870927544837912761836492492004970717895518796926479991452861671527656279156931103090729967634092891319806153547888963137286307452493084857224492038518520319533630055254192375148632238280545311322948773492105606678458394855005089334145653375793816385381001752784213486370267260227821384864988976935716820151802339812369315153802330565807577095953899350098284938342001878312646668692906920441467782579436045439696251690158517712257145479092502368515342045740187986541228518741645878975842022266555142808390976979985580694705858464364947034884586367330700768071133262980760290204681442761675812719163203649813462318779922972278668459974644243743637708406793852478732328941035915408426903511294260838284980565035005508678048917157722203921149543166993843131305629044362159677524352526244345855208777775594778066538988609063802550796223233436792117969861079339670568227243828688620766396811860399884749088127267851613296458158839501531325053095760180448746523779638922010415377031086445779671809515114665618187444906614020997941922868218458711243143576064178126269471193753800591906368405447405827627086754906125783704196247068553246847305861197364660318144022106217952974347033791479253999305389922733047771621326716460724790107377704434734923849309341152556467675984754552486167445838118739995779002039460253756937809166407678944504126902471205157497038069054101298545865107834997249063885385833728197111488407357333420321204024293116184960755499012250897795080652326861789439932522610005514214585393588443904766910329386654278469315178501513648845720990249100400348885052397432300676589093094944303736463189173102689380984090020310580062011963834285468438233203798718048914687686093282155466379131441360680350548258345878841509521631019844497236826813382104415269685590840366135085226796608517958523871195500104917758488595112175267225727091891474005284579552842543382666011000737389969766489937319241212829161448866885349302134444151079503003938248393249315179212025487662975503917535528960151115319706200367312579566313424154096372109004619325654853638139188231016546773000399114142795947313485087958893017138290568411156249461730050867752760086791347413266372981175335805103260998210044049684059571345154942884626206249103200461562659725428669772365763056418104274742413489558994004255110329613922292434565770201741634232830570251006445873989563816969759177914571774564524956676948633174330366671901818332030366401306947712156793451194883708587037860944142312556390289254848028743281635044515286193078627927036118094276964751535731889983313931317136208875157284289933331270575674300512568685253012923548595726617969505330770655401329458449371356174294278552387946261976373550225811925008788405277928792410659714612025541692442956325697199032497401990708330717500504255600307701537046055825816676284838638532700690624202178322242547051449951268404165419417045740811483280750904633399500797810653116759057185804133941677776089812255575944548231242905407259725174046798932819291160092591268532261880140634100198951319329094383399796244969471506774914982503289318609455727095482335689941025475696111191746940714817895291180017940603318802577411660345842901060269139214200885182822413290529241343341458277377190847708429754392555336127049116330115555846854709191591349155069367758468796567547091501234626360792623737328418111436356429711083257129128495215477833945754161100094813788488727172227284332898828462519683203358574799609787460094195955194648775253659954220385095785317969814854625535048708309730897418480414649561142678781581632396854621171354969160270433840041697606595528781457038899139957562623107896277663178676442351425669809416279939550713073759461594115491585525442047733529005395599438278043827566984601804756916367830535573718203491355963121679148073702406621456261508347801314282056326904361180535023493038804646021520325491494715186262847196635715131010354389673908389566966362307974833073947238222528813370784769097335438358358151404402968093770943659279757844169222263842619117859903167107983537056462571947011346724143689282464423848490800106232840565064635557848005013782123960959034790258551709471260471523482870964617954156328900294527945119328023547945447689493099392000340524272305450539771978073454386858994929165601967789718689769484250595258741866068290855402137339908155109913118071713455349818172398729339873015195998911334628905265056369814574789447350652147857932061900500626853065209039457733335309820031463153742562097668735519043865751027103863507859067354345494541622141010388974938155136443672702500167950423380153460649594238623766848909972316315102528692273526684144990146247854857092996956339042883964403967807668131545113027641067646702831106874152280528201634084414142142485690105121941512042217094926295342979430344171078562928410615447550671186267096852621919901056314016759599442908074759085282592454083851041424679550645460780630665097617434457566964626175466188839150905894504550684860998600995963297030941475713174711907368708570367506730870587903437339429054672820902010879459376141714786290013649168911721411475919120448157440347197314816490465913342685131203205568260993894196146101239594948311690000290003782812994837728326672882760645824957670614616408249683818556079589201729885546457642343060212133744605123019363149466908754135130312046830208006178293241858102048714955148574713346806590266143947567641312770973756463092286901092305792376719619235606279081930831557479732624723231996035650094592135608671025001667891309037063114028509887711778158958849813808852846641823851357798857887430467783614061554215509017804856289995736178746108510673800926142263076284129478080152730038363037460178317713088058548902374298102649283384058513543909121104086466953861461120608566207480041076912263365001439456949839787918638855111331675237323882000950858942046490980246569304406081193879558735880242255134795183034210735021566174625427813078198087454009076765184865082946089787190267400638133621738610098334915165541212138092158078373468386824368149125376807802307230950162836871252427097204350496813901618427538299742771716670497696679068119434636676172386675964267081644750041791325179399544168494235320613723710591618042344056149465898615396122619772613971727098310700595432019666052241652499356227563467598930646282307148429360286504836155311149981031152441428037927682313813039698148888110965677281859809207336155311513770783303083144458678222423349545045210497530906548732502652280223825309799787266853222551703949786263428266873179553240557025220704450560224570505882043047003515125373076263478440641473891745426491930564040983715838895335193497625675613557023712940473845724344597684383081538081827770217765310276049930662257792638254781419876468624252286445590046889355480878936664839863179899940698083029759779219346121570681543004419873539096186177604345227470055194612188469886946769168765436774761171063327086398352252043558611170336470958689700916686396030865156520363289785857821341877645222999878235099475393510386822792915036978507365390015750076450038210091512122211748005634269173934759537018351114367515167581344308195574898362317008749273917571308670849661887067150625530307697869397408967817660524852875903506178554462192126741640256830782626340342717172587144960563138495283944492678092526908766127231725288193005841525397658368715590971239854664501593959352515517358592931742727054961110472703300583458433691538055881962747640167739891412029633528857874992746392590827959642332443566978441490212871029001727209897263950570732022194612258020201447477277370751392707121201429875298317322026140380245153584426846994996361206409312128098653206200367572521608581829181659486095145139235717628313857999929758477558305897871424416098981338613869367407354193623639510396492494574124527654300261542542287840641665688091890109599034056103148440617548373313254352475421763950175525436854845968375472162383193032126312099672125279008814984332197697695755195340358731426703100064264527882331181763314294754724233880839372660744168245939647081388014001301317166252391242203353478107050642516739548826846627580053835583655888384534834027908174026914689019923234640492679268483729934276478035685489139509444043351415161496137526421995489653596996429013877354700506978360854188248879511548045271754945442561859904818105903649460684257952464216753217562801281213696722279188169148335485381112619559917257246724962738321854328402170609464392609513586615839993820176195719918081858335493442579649763376758930186544550240027123797860547506894009290380563734180398739702771673500271745457874658156536471947974415453999686458787937611849587874178890206164260546435901702815212528199714281581784463080381923468871981294926769223310901568897959017045742575104474356102276563280391013997969878441525658579407932795943395426757590893515439479490535238277184175456121057083348030075855205771488391167660550342603837801248131104621024104851900808318269717341760145221910400127784919283655807259843480443461602563134128921549832676330314072051223851739987987101251203851112734025797769343754315009787243967528832948423366694784592076595479579402975293777025789681129471838004360203505718316710714814556227116660796937353178323931990015617918533371684669614583803543694313859245071224338647847925065197001437736012424692970525254344348174476366065608573698334521152155702620913721731863406232174048358033095295953026300489926580367012602843826666900345630043178248344833245114329307659604047128835224565482106142863896681325996429517998774403199574943022340320801446182926622004750663151345562437144060626392073359282999444611283709731315929634039831282347193089180512199323946746424797507573975390356042646513069928467552230293103120413910126471123487758152784149332113532466293051669208456761899717854279637169438089170558848353914823682972064547553976124564301772429045758604357945570956599349522630967803070072243703616722777122668254806007558144957975257148936608777595151083407605514770488784992684160737868163591854302516078106785533836345556586765726518791586800887870320372758753266157897468086404333864364441046633941241965849854888419081745411924952599991438171902946503490438695235058041893902839977899623415215100782128931522011214508083382130944941118842839154728223509495356565060211406145827691143488876926439971044778401456907242125376156786394223004705107980880211831236960125255894870413178475391911427346908736735047676509277903719888814995377103787257776216334020866598517649341322974634380088704285812935439900396707454119175978229236944718534402699305442963248268595597797098199690516276594060013595634720416315896676969126081861276077062460300232807614773246498632882650423004404211671849826430484191120463874425821697883832659192935416880873467796402033997937707684606314866778030291607788841519659053519771404468366544181070804164113042804353352035521104601777015439913890373952466409897276649054382339973858572761538071892075206185733649481764568823468482356570383257878101183643059563263978160664359469529287132065466189060494293669193908139076436300663301776768214138306892048094263548675762839173783669437440867377771266219215247018065726864588302665960901500736070769111842639192508480682023928575685415091472650712983789072955256438079924154849722083077725984006833085367429630574007810220714796399097573170712982684187323509853744270314980683604580736296799547191937670793366676798344193024511851059158982102680993514347533001606754618788446684221401932286572085303792884294112344099107320499633984418388702464803658942139932711745356287395941382633260174664218076369497689694354551196032888221180010820525595569553255252322524826456454195248353883556153718439306454023378327693162135284468778054825029685728907166171487614138067746220185661989404051938746743801687125570594755395567839672236047052740737692446186607214808799729275018524560217004346151769472300520102071324590542998354830005434452732236297479367793214300036126030262852793883186922568117023028322764394931736992328988382104041945724085886628407551722442694776343474271763887501735439786616620500731571104207161278043733246506397116575102455566101016794366014931479180145416826956231589619593774301069181471963890597824977946550668019128672765921657369160214200741129228934646139838206450077599175871370937956090363347093439781558819740636433744511009943686274791018677217016428381321056779405562035936120170258636177317427069449647996345220024781503744087132526353519199011941904636561912617329133131644913813166663060627565966496620749172358561439901768635449290668949150167713918133864859894001610881748022031635167559457298221175796041793093289162922383568814446071744745557287674252113347926006026262586491866529081406952731587500907918246972943607269187940672660191395001827395211341300337050576734642891370372538761679625791727911890038194508351514702875736290760187023263985909900070028225482708023864536286475289580578555728925949769502212035992193725661710270501722334812403888955757137714403656642975648161254052730569366950137155132411700673028347131718943521848760959832347023305705307940511131590689251644533621346237165999508748829015193823124423340322197116337846062259616519362729454403006266537667051365416513631237016689681277122814703340488327565886382110367858899765808091009000791292928000258438048840403166306096838444891053415077082633163399690147007209181464373421001129426491742321398181333680153817491415313463940037951332228027764372542799319278117696823190060941273823628992086370825467548699416285642339378765707920568423422773606177501191490202186161895053684486338586695540019653503909535864293686601014141470479065293159440031994766907035677429266230366802811131636733983087876621293618330210688283793645382948750335302021047200345675825586824984562568928217206255456622676274494092239290274225551841788440242418780107911853779800418820484216873217449423147301083771902711785172681050208920301052567448082666818175779874540070144508176947552019195570502280534270414382467236058615054372153084115555328961361882168785682336325743545332949365616100697646210970012293464602517592913368927084971439244078746333479752800304503292986833734828203549579155935705870029765433212135681791094764653906388447419771547234823570473059858890458479190142105392490239476591111130611064892385578046367068465945281665187253924656552032716867104512654602848057021843645783880125647995159235731944350155179588864326187130266934244963757097048404356852984586793591893106356123306439394977321521158959990077259200059996899572539895323828120369836205864627780399960348781343465724861004154804737482644150372776850702049376325501946757429590724810416620959506021086175567024598877620125379465391512731610365982487239260037667511046937184027944264522656431371108981120498975952892124477000927452960677258243580832328996192625836817269111361027447175245324185368175965283298947416507609729600484152630957437337270795099204453821900632066233027010883366472809343554971273315534251124627126956230234992830854959102460496992473560395411868769398467377685859258532255310278727569077237112620151576189137707799842413505252117319176452984153187318595037595307175484633035674766244548317798665795612537791735011090495569528996254413383128984687225660024820814355257873302861840124486094779015816591498240275459772455098830246091724087425127877562074814687052856913199610983949526129226716093512113497404234348145409966950782452160441022675850829622863635861126191188593986352572664998218733612176969642861801268220268809093358402684972152495561986172411548852344721291036354764795167510968527279806640574327846608786230785597415288924727878945991461540306460806531887307464432394828430954677167127281593512184888338403976099152606917483080689680695227880327077141322284795193887365022637332915648957363304878810258453762895976580276220291852635108305196307361826393482568853497514890664673326759652349837840463709169842200667123724713963759273856690623170190680362429414679685342972689637425704657568820821110938085881955274607285676764402748609947406417620475461339028619639482419411295691593653388023296071976362014805689642020093796641883122587931129798198828464892612017175196498120622420434926979491624909140559296415450138326004229548137336735408299353300950188852579695011572197325054511711212884505818913080598255793922510888523113197359301791762555281670296317542642427359132848021564403828114489506117327229162083822316229218808112396007622634768570587573614887417878412606091680618468440757433014069722515039584031537421227713769902408953779642630891104829319742961692725752066765629936941051290507922442273671234663820211845390249347439912972464630009611441372079167157420924821684042388770504811939400912294959422182866984876126740287586649780838978790206910136122548170646731439220462072270310425610910182128388881860494354954124993602734298169936269656626994747071979807907768285824129523864963261118554328872727162558719147985752141413368574961738489516240515462591841899571123461746991298450403751601712340743210022982621744974447423404422145353304940306505373543618976013692045099919532791716410251454760513579868341734997151530116887383960117181401218217388330219683659577037792878024662013541513581559924372743856950303719520778548487622395743523091804256407308308101931614588994193389024405945688066493945631697402179937210629541762416552652294831676750077514766806952808103709350268850810162901565175612315898575030288349207478372129056512012407225373051230333522646903346545775574760470787915584267199728807903576358569197620335900059570988817251151571394002789870310529645069020352100461641313887113828218273034268718760717551340052857769849187879782189134840794561595054475542140205753923225371275074559507434258714941054234366824899648415480816670692231074083347268829942123543507813862145203483241155271922940544209845412049723996350954144654984595852720630588375259313554510660951380466093610659867343747909492827977965990583990614274412941417410609585739351359010120989992630790188231563306668137335108022665512910763193048749759110432387707287030993229687372635253821123011392609223988508018926425875036248695532785848594347906514465798428040834879815769613880474120886743916555593627765423248025967371824918372565252213220347476743388560013919310450404673533294319091688647267062634362549865067989811160210405921635961703580516483676405256337839490007121913998173764987129178727386860424933820127594843461401084922631478993017667588205045705719262284794089911378734389465043932679926493860695395527179431219023540716160910859393248178034084278126117656978384656669855039842077750676724637494315453557221741789247746620499536380706505756924059013840789695522649835536337132391196782534382361596287070762722426143762762032878641614630836117905216677236051697549603255164338385883983349109590031544822942445426579590941293803450105780892875639990600188765554580796353891057663563150749642916716934002068137927751877358386074288803323139834845890607091283313295226931046686780140455946732068817783557679830530409418107468508259511060598496126647267072080591017677559834047706360136136827806390901226438281575901093516468367726900613591934424169840578952547308264956562320212111917420279834429877631065560994933573768648224461948741908380240344268130597279876269816747616364901756196728844943554713104788559515721668103718155237788904434839751205686339299260837451079218478539347796455702298621087889122822025051989575782638973005738797059108418139287464799410440716758688724890190252404353569541170168268038551861822422762558390468446208063773856025613755322352613261774265598126196639189801786434427550286639803258951334459051665910991702951592452506017829233124610864398266409096380971748645941704386505711622174101794932710313237162619129757097055145961121907455232207118829239061893774816811318315956522216769265320407735163880178836716979032901611222823638621448609183766405030177638625380565705449689144057083342137024398669785727430811862613701139332270240057139775398739360265872680267987246518237450889420395079323241753096468262478872946027200523943804945776888257634955710099703486344228152624108977374736158948007386336194370218522107008724718845301356511401044563803395297054108158973442999166902756065799461302292805950842896934243957347624083522171642023588516029456823801396018829369972471922720512013317752562426268779306164434811067176373642721508622546094228938283097594188990570613437044035589996412067481747072039326415872150953582418597184435127760435430959693426623918755618892808718278565277645649708566176167838145997283447536818333486388576091805959188595559855550453606597683485613041869615449656536330955702512380836550269502924896415704682050569696902249868552641898484572731173124721210412421592648366871054259768984223628685744597911201049374971037607680552126052945961996323123881360378838714358710678106260993256503862073218604101240825066254566602151816762716697691212774603514597432535722236623468431415813557711147554574318200753809860371024866490165341818357987423592967455502026929834563527316254183974027348913469387446042341483135058485239107285171758328090208825155503386415949427698591961904370853633902210938854367266511709914475802218595042371378444461823913225411756829965917963595100591791445049999318788835504745995752307938601679274267755288608093501233062646306589106745031939378207595374528051246287929102985891204488001175374936744699255598057185929104036011422145819712953282740892450633692646574957808371182073243587965137762761687875177214827275264822106573327349600139069567665588326463444202853382763580429834705112193353696104205922466756032781088856501422589007934531641094739547504175814301395278565271970846663511400758940224052062183255480781348368873945787491855264897379298577747878455765660823944746134329660561270411113168843338134776629833853519989125957654733313260158003270360692147614936109247706271359915969913630162296616721935553135222671445256405529744050627621354125032821903792284919583794843146132846996737387468168770031347651058768336836595137029886100511422507669626499821641148202372826298172902613442135240044839587459701750454993358376423619739300621152071787731513088484963766837300738198481288724517808730529159073865006993919631325551803887795425026907100983124328933067723427023727181558871962951241000404113039491547484688451873669689124229884455870562912131568127214007195970964247128429932007024411569213051426674911032482846794585168260975858522203246452313526726236886058325667468091693767782863573857686681231664971437473851765600196075397375649881688103764844341872396160005497321191165437287776239547846216915820413973960483022935955038650302608187473898194476591416615814067095022065233368911818913789448245626937370129184915549268078697518781516645663404918931950476762045543719770166005567601458130084815522382271591878250773785583091582812343604344738130498789145721584299512070053675133048183614607819901955938589541015002283570315846191763639930169343147979021233396042067428686178207397724599819709129873047234071787301553147604531947038581654113571381843209271448564645402723338146848213224274597845697750654062823714129489016181253921417160160134837046056055825421585330651260516005301752211247608297106535172921414984823269909652744395368243360349738729447499568515576744146075203719246145722350654476537015682918124756265088194557913721780177147122117843390200217068321578666249609251845858716303248893492664018537771322243960439754078761155150449311136641932066265901653599357457999112286455593061932517665755720860258943260024488533456075257396716896302821898101257454655300880805902270655441471562608030135926308028398945811048749965477501734295657238464007931678342467277777387521001561635127254054317453310427454624031560469272717264184785715750618812684636595037737034917455342741729336955567200944921361938181726325228841387627448783426615372441580902183706680607884790462332103168886775016752061286786522049360235205511737700204462844012617343108228675889848032646631624985147653970814697571703743646033996713064479527306564205807321611560873241721820416972637625990858540115776447839511881252279368154910796167998246414682107743407785116611508746195458499096525808483246688225617247483786955122429438160092529044171471225458308633393349066067966551632476588640463539906532148230114306023068358005887197147273654596065516360578807022429002515309341536923987922719213280490906493768206288330616681162948304219712551784085349695632766178058753222153635146866918151834665922043290677537738980748899319819850517311677647220098060490113772187725569326302865070784841580861666003573191430629513268182042743668116756395924328607816353040051478689155067733314175881893409517251040183816437913289303873977256769712877202397950684033093654237961637862355185715929450807018461294996417213548684743118359208768206178443273844812595692956364757880660656890546474803588005878473227108005735122407137442396012620357530679115874543344156371607990565488072140095827074404102953557292723538399169059584213121985403779963365115444836949938483934235408594004764364500978844608891960866617482223130503905246650054384330123613106194052715175900350546356241687506257692203370587955343978865977706504107813017309027143017892134152826174378496414256457486339913431924315877732383453466506123178693139396483757822131722159587570483937413655141309557717427760229358314441809166576090918979082220137104830265514545102635280497730476971956737690365898241025146451653701547780116099915795753811231322183623541972111957216100725947331361634595004227060006686355239306492730107952992106961518319347783961134133973136444418263681350416171067723536095759724554936259625970015341824493863854803867401530953967186858660769140539472220423684764447180614891664830827619292573778202299349431612496337453345802241727416417425105131933283106093678721871681862603963861632544674902943031903906993726969679653818262482326335159137717182006852206151866723293775281882380234034073078577815305026068905985117206218732795826264547643170682225426187745359153793858088916811989412679631556932454145427794819149502698550319884671556135945292565137980526614186954152439344950816663630546838523365259103632219552090259525433472888462279579932715265509293312172049720294907090210780455746123896038178248957125691399962449340984806776993378091263727362828186986452087078209514324164939917628987706725017385519447986787634170219587132855361652275424827804458330193828592603652998024124206351339242708248846445444087851586281647661889888587658834828048132221395230671490929378672172265328008083032108880525294112536581750192143659156384167376467434024270018923384566080773547439746437697860883059622585641621827728308520296946031886709545044260316206534805057927240163133079903917212947412019055026222052774768669447614894627282042631938806879556718948664811684159417783951440701838071140281366676783815270782080792395918107534132445987126830471484726030135162371777654245333995598352033356728712298451827319797477190149076485263497086078840611173025203825350190284974488063545172602496647351196742317394822449952541047892769055549823935469225488613404742066771608429497855154953384923828753447079697270881233776205647622329493719875380949374956599388210417875459404820321498472468329872966382096666921824184950348959144876485630401009104767301339845315280216941221891072851709540855359651632986989630817787250890732711476307935944211819872923035297434888722026812463194943134844836242046447799664938409107316671019404776923957532793217677796616734288842487345915900325661062444779823730533800425492224546826105461689922154495614991454148714904205701974914244115868608958839164934841528706906845597586915088356517382047065305338390322067412583463118782833149422073149411494400588892486754706835171427667241574586427729553840770815018001739086807372901288267379928726990990501955588611300396933015837587138530650449270781951845998495006975683357905235096772473156574445899335122675260774774134416503962687306909136849327469303061730295783319736274044417152730038718281080598384648723504864988924537229148924754311398069067266477131606410880121614427081350479192059752016410933869378882485950950722277877848970175712032194228085967560218719677179670092435194868886632776236658122663666254772145328211069586585967775240154697384668611267093057207490106127639471185445168269550572385538820217923069835121481369806430704927972430086219961243460003908945014030764250705773243737958240890589139437178290751712108622403914678903036680926000794909166472494862072502907368509520475216236205984125928128404471649906677574927672553403907792400705642135379157463075029276092381075769556902779109329452898404821557987228438280975369937002353265580295366889622124166218825583995504196063476380496350455879930096588002674304847204507064501187638086434357057685920071335400402073417696933643184546884664974019580448866088398857051863775829727960885686852173199350711898649841505604108072449209372187585080002270705903613508405526053467839410209224340932468503262073296823154108049799061624053562087925033128296036518341770544819104393255500623676470918083457410176103718453179729896652170845904929136295424603066207817182409894611055954816747953012017647835285860361834588496411624983572201988587546297254684282515021801777140026242115441951318513865648448383347258002736598096948710994345270388603015760671634708667290966067776974559290478685630277279736881290060264709122034410810451385697259139953895190245092285955566880184764176835370582515731360618530037628396082754275048894495080219924583498847592268342188201061446004165568922177371079015566523516241932986605854862412807748722618213047690989703341891313254602402446074779057318240856665549853293780772107106646341994967269468382068244471472252364331793315476877448706707504440359906462286330528082890960696724933953935500319578286263419776392999713334288655736966973371948795692991692592737064686597833620456474683326265594441334811813414206912257200657821834384757338597952816347720624282867568672401519406804309035489603706269360619099427891218020829639742555441698012232660720913703562231830905090818530929312799764777159935250088994546323898470043019751122182572574322878269218008993136116141672649793843027883770918700725516927368964938989831925901196468627120964871536862434107677969786206508170386925208653111877969508238432895398164168025109087571566188692085422423083249365056303478163095667960447743545914971315722755064188572743544060532550521329844144168362407541939477305112770267042207783139352699631175923997437568669217525565326454160985310438271044506927777052579550578623509738501501831885635998997342936512011160981633386820404780440667612886958979882131162418484747252149477605718527533281031944553528546307781065525821266816001468733498321847798692471042301977062572240520148773947616234399818014734632710143302433806146960142499694731374563439064151993541384029962526940516891135529200946561487747362781484591267159994440868997314027073518097744108477749356934448525908146723912868164041285108580486708953599631270396777331680008921925384198274254654617523956952313865802298665611748173526293573641027553426508888501751410204644680857781066424616891383606134365741488008312955234721570156048512509557706014264831424109798440435566409951687459102533228262233058525094099228521341382817482667351727043933952517317644519547176367033635382532264947271708249215026125603929998882661585202114583938917003146381931687105978913693691337038083595697849648203586967413271978229005455909446657943078260504415517467089588270436135938879750278239677920902270731761484001629008682589273650003826178755674143615509089741590725919479762428355063540258919899225367564442624806636329209118995213221487193413833379659683336720404633809842229635619243662216109514268076873205959012679121802871692346621617178071094127403366933046246817873668521652401210623503205144024422601842189396694923093190867383259532254708166038255314740848384439260318362857923685288671871425813652537100267576191814677324536616845607814250446778812352187362486327210162245589210301145014294796673621834889650653165662153923986164304132532844188913178575786426098541564539993197236694995325592015186579313543331230124883077245622998837600250938298682527898337750721593076637312690264152341947520433953160115116522839089438266399706521883306975717449445847879273682394275703287418369104377424890583438102826460045343526207001577326879239754298796026464432227574651202136191483532772311515587431858310803219028276248008955631724346088478339068250209294175917254665123173495228024343826207085819877187394477847676289797971959842527664759878146172226949493382225379177301213702275040196233094100190632903430265572717968225879480941288417085415292115895679204338556217400725421403737285106594554103924750486376618933682695876645079434880093465754345071313309551115017746139258118946783175597507328635945206211463442470737438232357529422601859072513417749285713077368922786209099242924800965703959783041856396450180256847391810240738011215682440690267882187555619931577923742029447195325849122558564815878498328013456597400353649281587897700520972532179682530172780663118429079989355876555680766477369743963060185288248467182393292202316928868040328660589267843063783485911063145824178867677424929641592921560409835762513682281037758660172578437917043250914814117055566580985149599753667906572876495576724264354190627744609757307933570508896182752836774853844372046734339289767425189154756175166310887081994947135122408541233447104345430182682628725109751205895789846537243531102892723495002053728083215552951434999376535814762255135541473338592453518544885696497916091897571561815243632981287418194279308927651792912651040179028476540235624215522566526256257747602675855685438067236013380456345588055218493022032278410594005928692048918563372905877059118775715847883901782852933362040560008072653441739379037880289102775109356763631332483640534185876772666722519780139879326405501788032421030478184962700967373682996858518693032744585123082995809813957407609498908048870315719213774182835480431524867043572865182736043178505243867576400063427212178202951401137324835557093045478377946977903193152098411571467261772402296232109478952282509459868495653162185173439825680741305314004157038852004895050657895336091728165256783890354637523432037447271142328607085807891818882639045603258343946551269386857396355234848465152604753335141026537786310854830452956110659834537439890783321191073382639904704490794927192676787359273276086794092876324888843871083134102134187799497787873225925159935190308412926128615175004758322764808162131371408917697102774329384818502843961292584255996636294747530715685540647373863054303350158507954340196073676544247023209323001498715919089696735518758180655175502276711002587675540780493650792396542188771065698581295578976543986322038490107775518076440805444347307265949037967439621774173769492299440848537207061996953097053989531518413342718368359899276333444997410102392684254647765676754239981580170938101321879858782014616161789196689826171791838371760806701280667197453188159086476843620468823139334855835071946937410368142334497745230034684976921730328040094891484736002575183323407980592102314573327966835355574789897747522718326179041790694492437919205677745183168747746173519241106261251990184413713546883157709485809071829435794711811137129763598564528009116441049595589516524932784421928984087944400775266570611144759312362438960849070865762991791544747206432071628221019444733784402824632124076206190257395264221266195442623044626164273076268577498762459028152202531613666434624058606337570841824248505113147070212819812899270019299152442113515538180484642719585094758152276018960465304013135806106131661871593169421499610951218590912843513086413025094302659080712332835280036666596422100618680519148501978140327480440063899361642217735178195880689240755109089905391711894842316179499905838462242778293454399016083058111461434421822729786507312147692968193294361119410875427360621358179208203677938690023855573418359828719357502816714788001466620066181624737841448696316959933934318546054340882192770788397574774737934724561951668419679467482176794722033623738008683243758622856582837271836147568256080732215646137726671371803518508593637568346143012325956808664684687809799292333098786351973768867052814014817295892942423824184009128633213256987786820302122668949917889571653618590282215311809401004244569778758897239379271999543430981209069099912526078070933583640219750124287177702816055007587337662623178738168730153212136950455481930525353127197809809469145576847583570018125599310253302826613979354712814422397114082030200214282210619161852191046724055002776136772928950557923287202643256024006087520117237160249044572536450462095357490150435920649979159660015102370790461654365754713120790165956569458720021092362692784244862553449452398490750986180017845151318813519841290968390543053751342416031696995726520147194247669023020377000995547595327637296667835496405936795007833323285881387141669011390137465408075063780253918480840645892903227536322412591005048519471052504113106086823636341449897508837591085799091360591215905073726362235842512004627936722613882020894367078545783506561195139371905120950608798456383305403559017876800697567270422825043900662477512086534671047058438237366565179328911271456026371894011880838138047079364303317946681647593421671675028011856588649987725807512680428698598562260806737497375797522773005326537716100076673512100745699556665485362688711888512780359982905910554960630677459237764633469073090107090810858856804147754199160733755063184834266583212076191103526237071398831218025999198037651440239592234232829584541112670628535754763454433033122864613504257783355939526598557988385913030907937252097762230801322621875816650109540834182729118081927458360562389059820334755676618777061374390590155347870108808661049960841032250714135528780859615851473559083378961629174825430744894490174388254945039857888372519087194293065871440697741995819834663552586554372689317293911383870005340324007992235546392543503833863175321516028660345252502858044306457729848813621434467170221515525565268388651646661294305393482807949903220917542995678535880823101114043780459943968330941405720627879656403746760746662787473597919915792683927183193668205312280476422839583300676841373247889335426222904648793857377977105304184515186358687234234487479795371672497142896451776792055603424299563841623465057242550030614288176612539671311868966129681915182044874440220390154450352353221351949276297427926477433716525635640396035653785873476507930127010363472689476138840017449336015574152505320468512462210541167922329902539819338282326529705371079331781152837136289514639023762251736936253904869720935505026584059187538003386380485304642908011669406624490765799291342432063715280144984015674259901050682818618268168229904037239649378489409010607145329990709184377836534889064547475407438380199700291841831989978650632747513092626882547291386650096041733035668280940779366215200279859907969129987971897629320303947727238693654119513623301605254320780028056135640045869652833482100807393348551081985029646974687412445963442251254225368341538950934160482478358423759687510969669930757265874335677156730705974844993072898837797330438811660948136699064123522780519625652032617482322487246774645868271097669570052549090818242005952089111178539778263154209836495080029659872355227804644402345223664256724088036489038514004817139795223801990847123652573824217806445832331453654644337820418035475440626796062773479385667523483414648442197099519816212924380299402660876504913631296770877037059720620552877882634929490959461277666562942532530416707398844738644108074285987861551328808989567370483445890571739391112931910696040247684865689096465994925504153277414839336612450396890183527839303285094508421197373753981784581669836015837635497103511440519493603188375900317332112060778541597917659708164644819262102627993807058826530737572524573852065581028539764291805723293498687809399124107663284719880264788744378169856516419491873255802651954621454051697867068732701624011427247691396269291031950278575678379931346002011523009699398082248648357204682155982623476894513794809271563878535888547321776892588191499877854761723182858166260972547754603767444588556779554663495901391874615977019923346285470736556680351287118315963694376862475404935942951089598610452560274484412633602103608017527683298726401516287414087361924069188699222398392126487804850677113770945876465035409701353505126407633050261292489148702875658046988386576008702137272552253037720041495898155311515816487602021705241664423509910234661243210930364759628985257815445468563247771218690650477607849557055451868651024331870350546603898777000720576806429594451964328857050599948829573071592029770009358926850053408420747045287217269493420243629228862817135843336007683843026422110775499755697335648533253938862738906183525895161765561284018897620988257082989982685965453899434110626306801715053960417005656787228842711078246123335650310753147068958766476452786433308881722356889176194629629633903974333680316542760099550482856814765842488057067631283758461693272105557940705810309444890355424595759337244730305543804807585517553253486404789959774732755838098778819500334964548218317635345329760893779850593538014197671919818102831835855645294157115855483006750749934960206790453936678659842559331250913848447587343633666094593482119201202480415723039934595161067701055635163630918064139437630413515799373426370143719055756812622705639503745260913531581834378577925085185739294870881899424332193830840234088726734894049313000177160550170667195121809118315070326582252763920577999324411583754425147513610655680581960719306551738705447244530671545632608729310050100211428899535741245935502462609180851582361867717979819839715226061562720661098116071922266575828778250569816302884978130911531688452184746940278105012167113133470565510358888928302533079654992860712567501249939437203679078279254526117990196566965003284170552757006630250512259805769385632253302975799873153120545237074598665194515812069951536003033918926731460069405865311092751153037632532695504854875038083421939198092587323268154412473128505474532479970453320490096123649161485598959728678644230842155051641193102589364087049438574324102329057929481461458195698066482934553794794810207645010663498090431688381832907381793211941635464602739458059556036173089373394526802676135958550307287450005236943081036954605233259404935019015649826097306166335606280421064120021432651887221067107987915183493392859169540537578314095812684161115044498484951762874049845549598208417070838724192881765156226220837272289965448078510570149944207706999047769712946772341513279017750532836992619773289252356922825416285537926629960537351569510628116591590180144721828662479849412956835872944573415000601555792430678868376819238724968240178488576944980801984028463207597695431850948495989373103984082106229166863294085025640182441535066907202172691361983836104105076444203744048911712245168420075040291261021583437989051204644106495147368286876582423270448283664148711826794276415372270454956967712467410686241067162240236216989114806281569415301280148795218491361415705817614091180566228264646830956279433861762818448153589818038347803933214493239818186346598769748802829049537802338795632196479271641572460422006657892384373104080482213472450033062736717861914628416465447472589390999547080271860462992352056813971181275208382048209452998444955333171896158011366988070259323288386218031848818690565762267831681545424239907865690837610613605520684292528915745309599807122858798912968255374248758304035490042396928057012564308627819475613016502546179700516100377305886525236909310933794135455202626579210531284080167024108045890038539060050590729287541152355358627416852892037149794517341824109655484045911941619430737946058079754324616584645643767953451508527272928039458061090229816227681622990675344717622961101060951042357889159047893133627858068545612284944623106654306403076703684880899909820346137994234312337101570205752334566621767481806363049637805351277446903701037761778066493640180760191238719306384270929852451801120558721138894435589728968840763474898486937256061815762278114280078601786695314608004708953886688186517643611977817077035930173670332811379349695397582131936983794046751374375306287305200790220152440093293261630610241252086721783913292337229826215269816113707952643950823025958258920245486073775982809520333886543477627129725969876504992478743701453415042742434641916899132828116642804711604412964130159984472849670419617958195858275991114569210232002560018231122404657261277754894421439208709786798037732303112672074595022934636519791693510409137480827641038828439148830298966200171710123742439798243227117632655229574939804771158507489852069350095696821111802378128004803573286935957492097003539131779496878968684349680096721999672689833526617737424498568119807383624541012024804396687050527335104761197029721630337162388756471183357311402579873776455834592219988745150307383771482918370159540299389126403500013023155477023449591939679005093349153367020139384567291997785565327424933499740942294277897267626397354018720991643087643772693248102232289394357508498873535620951994757723962466658974975474500572349459932229374807959245162252026503158383597093781379872433507691137309295894309907998946057069430192528187241946869424442721789723567790580624390099242743840695234531784068831776089029355053982870094973458440475630183440887737715993132709120441716067819759704317360357137096408727520372837372900956272930403489564951541994787792272644025876851442798348606606939520557289798130259983929635683046772961178817740794656300756126004746508924898281755397010682774799970136475786643668351946039352168573626130749762159491607911640088416380185422078242916847021565745447562373845764814561406894726515041488268661112016173942771528266833366629188329052025801052663593318340372788201345111175591820663831154264158057058671090429293277578027883105200305941516952284119804571283860937378634850308939738469817387607676463550191667888784549512453986609646174131963128274189223366766347795056036044327798181439651565721751464744219669006385214519857551268937156268284720182289367902872916067206546842932316689087656891940014975992311224885620698291494463525685419206337308630926817249321239042364923351749048680684200271959435858039090445943605917751359605985670829914482506772471488204111630296273568803809633392976095538780216029570317051874449541111880122896695282913809553938030227953485789770721319429020601400068773215468757586839688424193423599695363059042340018679665194014319918751907730602614253987881481216846094360017826715666029954468000724165564947483544058164385498259130020207666612909597852618907002971863945766267499449115590008082074486243415604240640104682547034306982579662113620663263577587031618075887095198431899051326317053433595945910064534465476328835930392190808343893705626766941447325799221087520241233891895457694944259796781502337355150973544863248888186645126690990063148338702990372333611430316547347038641170192831985394598392552763200339030515254896160501924290191985891117653801535309346010618789378416206250100810188362734681031646725481259300354038213338311587182710391758388679238292148943638427159896301162929804092437477666310381618691424590064760288457099325738026601329764910566540808502703244685170516922492445647936712416824814237149702313702701816736234334711924005062256626025338914922756818669839738278365049455896648725201134680667407030884761448268875701544304760357217319855164407305538273387524964520125458102215171968219230388297398393443990761262435501947878628182986524341524069728441107987112338797962469790907811496014558646133837657187332961715281405265382755388733429424509641305752141271968391515599282774270850396444075357822027233547685300152045549939271285300444064040872226666384548339708605541601480926157532196764201006094354622244250373160404919608662196825249901266356689625405119593699716604869487513636511329751708946761703993894820801380353652440862358239541779098757730062073645152024583710772873409631577566583733897009581096134383899673093382454549250609609881193130203857495320004818156858733171152939523360205871762242406370401065366225678251989310766797570468841802717087789805613361976904299522633930650206059744247140903055373346473108220763255135515980598488406676972952048377386282737421627034867139606430196000820686953327228438061649114929523285367180267972551510478547783841464080287992000165383280752397613131040682142257449834027071191104756540748032120796036600374998235349542546427564009140848105770318418562267028104543153182978486398707887169591692044312870169731540408699410894428582709756468680341527718665118277422626094622749632327383358891647427253515389121439649711559250364295268796495656103808700119969450307100341580319454288173613567846043944213461759480622638499172764352154918219446555917981902927552746517619406482214767667436878279161730300489337357156426514411321649845892556286560830534964054895862265600141204655843507388100174132531840064799269471748091860554999500761109053248659920483831775559139119756859860796286372436192686772989922096803523027618662169486893742587490531512562172767624575825157327400589455218968707168860254703353836642613207555047016084281295055832987136390726799962492132763730733004424826699556731570407374653829094532179024335843129898417799886728948205663855518753821131829016573508295866271032589054043931615945737230547209926968765595684497960882374270534727118550713895240393957993510930545225910675766313673252259619555070330458918521060520883569460796145619769037709986175566504451175951707331965290717279619975727567776710560850130359531678769570710750916696113582617325144984251378088348334164242916452386191683228546176548784095541144211633916930018757440097989724222109974515299134645762686729594377687528570526995140385431980505883931457600686339890399519966749335278258386702093420271277858876239697555818588465474835289572103274920688668126437461961149328623689899215847828399064610353384104116467916082661175667389553385310023264483247021173999226106808781973574715770576494661767076351452058082028936492260077892267545417893910398295180009227567239164169957844081757259650025634105711137307321018934597873242289774081396485350336293229510485430752972352020540639902141299089443587167806567631541586993211305802298497205749778159199710248524013232854827881608046189320765889739142445197347850521010296957702861838516119661436025810467765301610073776750210130177646994050247382946895979816021012595341465489069009913116462826520137785937380814376650971336200200685091284344217340366008793783438846409668629866601602322783117683750339380659331706022621786862075673150140497638281804768086918809630784267901849192593457169333898568049333863242067007118945648672024219405578807349696202185262162759457592348557455824634343814668409562071857731244519026826830085085620372380959698807697810699844914186213094516333211657564051539445849374928547473640034735590766347630957571226229418566615671186068560216220890829386484212033301657001742069953268268692250819912628785181941679070631137332309387664125172521585100806127969410389950860473306454899234532952418577793761769756123598670453935776611431675820287447188560359730013921764936340922216543472597579510454801602831165610090678403315873038969146138880499492293622063305173347258997735402612707092767036981338085870000433156687698441616807678620201791084602372095868043522967208700769596007178444226001649701649226419196574487156103596599778096023866599441339662352553503056086981314503901159143124915886148498847500830828502645834067879940582047125113924603857326588393513439605417791676710079105880189112499005746507720572445888986374677535869922451275128711797435013194050592648033866642557032412618077244247741822823868232814111551628058145625759088905281941164959823479196407381956989156102959034703008263981639103115440918778764667972759165363137060929825707221589494062324688700739382713734225677609657790108766257221642743510412073660560400799003844871558340935711690036924006281016799193753829340034276663564953183163278147167834888098003743546851288656097877456942756310150284132663680015072836941080412248757866958813984266148324809878097308201364080097436184059208581797523321606502041246083115714792710362136762647513806007805082992834632730632295000453023365783593569752356542135768863626632145126788426638613037529804468632437316775042358810162384176907819259864067814960987098512439192725988717391661864578403179801412099186753238159049629357644302706285095719580992122575122400803076520530581214478369140184667392865563949018919057065196397412351336270605502942379249520494258124849883629706379615252565676758516868573119071217782647204469657079770096485910957348212717312850370307254814357444531752116509431059823271694893779993283914422372135665049939150484245979640665238121303127512709410531857689586495321602610994520937186909351951953618719707962248995599657986073715839989052422611435421381347964972502823780681662602865076446644336534863959010622209098358425345109279806743020561067821406398303900962480472435960847609611187304820290722501029183588074197792663558044766999366978020655270258252446181113441910502781793066721110453901805176337420159358297082701872936509329191376471478688001239386225811751225263504814139733684042945915929724545335261471371861682183111998868163930555850944943726573492624093824155501472830353820143468465357350670903094927313821638621506869628518720537934400805568322722995630036456662394240143663222596505297140969602551870965871626164140952600320362778882607585478700051882469847740034881011825599279707264433098381529394128016598802353963487612477982151260198466126044132367213600261161270255123784398221953407994677978595927394293218003124581405891749288951952207183261387044571872315655670298453516658103417156564921956703069707995609081640470538234689578471484320328753285548088495930490773098588243209556548178713793115108189160897708815461414941800461218360028423045387759897598250220192387269077828883675802787391805171379110223307435776655065846890293904993769343554874422952324095895762631474799462820141637666949785414070448813589557644754449206146677537136473624150734467629558814177855372086735906181788487752897457325293267363530875491127077125533483445990408994126926911843391359124767053032079390729691947316139811480408713188408379575026009466870381603518229819339163956717987568424192681195297813635054413193389042633546511023231653725295009637270057353454442385316352428324262566664019714023356482342261031435676266443236563998947026186116635733241845351960096154608396322663369633882884034055659339261239129367580109461739926653953550474796464779928720530660650038059010459585361851821937008031110870274024781268585527015897846476265442087456200199434694871053609198717777625607916522619721542642056173843948870232875732675124118563395709579214148737889734501575928725135248465500576195914125641954074195875369831604933155845640569271175971475600660517233217206588768725041518032040916239786223589339373221455704797288327004917016918583079976832070360937305338179467593323032340636079340640021480272253761843552593819414575919092378661115706289114193191885855408070982570355167254959033597168955646640398602538690146852498629611089051458480291619754881227731916604064274239589506532283031810450197033208169148154441305035785306315237670976740252246448281797829852176234121814711382982894952918329825742690704537848719846419457431183141363331940409261230449380025724112198675777242092022891842046495015909853141992353946827752720107898016116336108986449707741624305289991632957170716831717723007409334101795727894939477678022560574564498689508375759487793814223044402834675240480089543384364321625016497979219969495592957054462900104563678515422794580020092940533221504475825387774854449723925011837431434476443438777347009858600239000432806768266856098424368935624949829903209271840392531183371220647317038038490566959185719541240805590250128464028399956567632931574770153031891804854555785464364320554621371529068671496207947429860504069325465077261904230095282199826904240241199828064625503860034312891044095220854885534207010611351601930899229580047099510493135942049811407831461077950596138318243458025733302480639581095992860183679283272069814833529831805519727573407658412515315540567842174710499452282603857966574333237929904761238159087907281383205385214606548196805350640008444976769001914716659230821890052888240277854465317571020450024816671282398964444090893541681883914836042641052060479058533944960616071745073920754806680910456203152914117923075361379547467141176911804473025819353717558222198932499619833031686158245303929848578012262558737075859096259864451181635475978992086101728866630871584157797181824652883096928137043811870252491663818316601683234806647129003141700385816099653350895326725585041558223993800276013368213434433500960425215855182313845811775575346273994195295677705841367330831687787302808137344098202097569980827692048877729210918250129701425293845163247822512360639090970179141785485105263147521010322685828105478241247581928921169578699753650275546017765266065624567003335374058021176070684962537239630053630802048930743767881439139776318120115702090939940578617430421319023656220223790294984395719705680944073586142021779571340887034698621546639367522365289933844057964657914364540940309074759908886032890578599784917644517429851440830975511825749500248372601300846890534481918067466901252976935595679521846070528647564165933778958194028928583389854458639237264836291582155326840960288879637107568211362167921325521246726829025828147754213945753860818898720067074343392811997522687647114072061974169654005426345517990085365560502758281684272453270113665289092323568336053293184474989534806890066317641158998810802532300142928249056147292468075489194826243458276358065428403968009832604796518149068740781515983023906091656556820087146668432659006782422060767348566731630996142417578309878115595171240320838313805715485132748706299800256596250247118611293526322689312061928463263723500700795945094730696890931527974236288572750286782745336776688333949014260412889010896206524308159633981576249017368481709809224546082313185784216712494205811056207104183584099929185837653509453871712355563590163382019457290802825442380453274955080392684260447197588441043116927815095577283293385062151924336398585145239667723719068263498271225662339944617338594356147059612052451223711496053296825507745740996259881468867157643046204551155364251365337492564261204961839516549391348223961883531914534142294819676113838802139002220691943425803995556165006469871333446490789767359820246840018693211655950107819324088722510870339014284432435266371192494679684789367145540335312366039367420719226728305183683372494691783506466857402754375853384585526769223376890221094195647540617235723034057388086697644527556304207852753085520794047645552333238477417848325459967528683253126391517289898035388548251739243444137411483019946753524632598687499307161274626790652024025389627175928761785820464691534635715571417001797136115636122012515461889269386224750961296561179805165964665260570404246787062556690117340861636937083046683745682786187444093132555237489243089560371317286244780273475111665095267997446221683687945079455917188759427473753539070205343419843479955703091580265095918194451578465575655658712583478106422715554295622897253117426443544056454916636843812887180578841386259783280965137501886565663842392550926525195313528108420385112609405772820412753628184513093003174512031563633342492941730636658689733509841037282683061697590120319461821589790611293694982781736167806337961172192556299814073354060638654436251607491153512413464941977626477640012385800332555432959463623179635353762448637006117908001781755593155619734466124666311709925514057648275149280667852134753829024379276756459521172994422517295944902259552476627368150813721197810328897079803148336658581110733354982146916879253406239969490426828351820649738166519747103680796927796075300458465894195569893195822630315076512368763922049602478717467454875675346745945248719124526351566471697737291634886105394332854872881568238928862480658346740124206233353135769354050884615027162457509611854585583144142936251977737960785850175514977033339623829279152271850942695378923386491504484217909161265479169766256735298217838896187869152955005594018450551590794301845515591951240203159338668592940279051711202680852575078256965054816719070264790539222737534042154709863017540527297930244265110546093033853785651045355845815615618583802420937873807776722805034789037651918789658091087956348668942751407654741384937325213991432670909475090342739150401462446716990325597587628202449007861268725869341707442926362708618170886023725736910591875349582504892665373196072592542420138848013247927831256597274935634388979907544450849337717719338699001732542619081673710143273876792393144130813100774000121452535464359371656265864528008050979620369086765840905550847818935401309681397799431325064556088457574208819633269528321941780288181778422092398477222358187599532010914280585644856847588214871164939223712188576253340995134473445648670184325224220575901727618263252910514398463159045588899206943900884341265853725204175134537464229876268193981800806703431386736093880031345099285316237172508022545124363446572712820437852985752395329252045637224173663916139842735382016577746318996490964554969120726157059066999999706555360930654155860402449488876677939675835496325022236436242265626057832911675052926216086678704947277191052377123314309285757815007444294491184292765604219851965496005142640261488893645770806851864786679698789857463869933056476711660277900721813727812597630716731319279783098781691943798211097374713322236302367771348129920206807077331112798100571368869405366937994969502905496950590353604854049704874904584395604477511000193467928296831183258276217149381552546084093795363659552725204753816370473461590781759805820051047261331789903548237616859016414289114192130296539452957470638688320527312281922420944855607893588619752636326520161138173341628253826083273731362208090042756474283530913822824861756859474768342364194475742825032371070691684461531432601171616618268732939828725363173898382821515355415210307076278357470303734176335601238578439502695082462659892564589532308494388419927689027841114069396492165329110560856009466957951440037909177515300807763916767833869486279602553713418975938049744735219557857684267151597881335475887405616179814198008758664803963807372921565876951137627090381446688086015456855669359742476550619116363024248512681148051039973016296470238321102477649808609416610018881168364437323811191181171544431017356947795503037987660679127808484872652122675683762335960642003009190080271147327762580746201507723547015147726387087315518415324816474613602146935574730259930251569617455191381723458212054470194662184978190810553365502161941219303458562160731393265903126025483339063212993545190248681347515789586363034416117061627408495739558816620987948954362221503032021803336661882017746388398789687730235228412798074623356521087764469240816194878738336827683560817334441403229529996559976551244341268520331619082499628698598755572923813690495696788486430077395947662617156072400852483462108647106319248265516748960811641908663974811378637941351439234134190691092103209992418445339939073984115674317164847651989006958574195184814155992253270777964671047901192327044176020177649275228541358123341543959271163517590156697452268348434214459478803368513357176374208858271791654134253112409843158932874213482930084658516610892808971389800064591601643708472928981946062677741549990267263060757940331354954258896038230599323891014544934147668270061519967019243786906120244661997579270695043033929420644023957623551633975883913921258267044388264148375303753691106102590637904391004093485433254587401209185759023578333300256912397384738267872245359213368406140976723187453504994595809780423077056974865092817546144271023968892204360531639135600868854103773283890763683038744610299102514158676950646852318894213351562590182700337788198548932547408726995718152487802075292673341262847573708048416404587973106385338393452898900075391117949189363892717106519893661417793435762952898648587164865584399775155190597629739806314177024760177806569396510236810221210599129119521557155849062897439096960605426498998989121511850567635364798477324826761240218887777976185511122040625801347599739068852938077405311722225135720840195655823995532892837887580720662085541424929148970544757424495394482202418050051319791547972189175670524666350102362195031384160635393419331888579981783371302205771165082675624548749411219655523801412329573157363417031882121168769759583400186572387840295105853066599178433157755293662125510481489310470543949155830043455442607409980687536867143355337422117095634511265291085786637920248019863684409109763793893344955448422903077915390100764820791793758942978865692823881191962108229221222057545964753347869571702688551895611500243776208675913622621322075222634814148669264918786591739121637491179650774595094998535935170572007148647822522031440206152180051631140875679379259718809249847675276764563202605360817355219469739479622850479523543138490596257408706154114004000005107846859853847869405202338831490079699865154503631940478513980550498992944626601079348204547306082820076744781059381866845327900376585032646339830873797822983764965361805500857320684460063229919968621464949379204532255812013398053967936897578811030710756693293359472660787780865514504275079249597754099462701828976505322793173067501959736736459832704522184357316633911721382593061487309734209248752330226319586024480180149915651732712595433687742856396443551083300530137181272113226516846318067941802015318746752640389000581034850885767199816029388164416561460655132386063128521202412695716575257112768185699037389951333613976447881697788758544540667687536048683349863682898349236219930903912789875602061191560938733792351867158965454461819022851621890815689803191176420084971221525745697221792089336744645610159610903891866887908878774784597127007812615393516157120088712226353653135328454812647620903333027109828299696463409318660050920628004758799427393411336105284434887019323435614880697502526011238136020747955566499930268170935216435603677253831867329992035146409129730467322936258908013387861463676686052030252872010966038041123045232807917625976774073933491889272293497769744476079650671990298733262068924354349412623449973757226504927274292558084004478439926130829804744464303395492283134396786870980768597979898109824245140711444850209756447845935530424869992156123080089338504761208021434639454629769426038621296064889763661997802588058849500033391712116329125428871858087249571049660698825661284361347523675946495951266928307923454021434018888823948432165759460494753838653137432195221987542758275300236854761327157045202708345866073268398789216544992476217153332986585102840868100715852744532980806586563472450044271671031173582097234773294474168482870530579645256170304476728404988563352770508104005528904769997585149573205236760458619964688339284679331371725782843266045876893387069195543925963213054138663597797693343455077278634651037769191131391785435631845055781040317731225895093030761649859937406537219105356942623760808191722452556269760851538799281049289615708181178835233893679686727305286642256984558837257147683981318670096476939897111344671760095485660820367520066237090582897219107468478879312779406194165720382769384583491211670844164212540033677486048706550547189869494941085962299976287317984965238544409325041995002266400126291652971773425091955992467880423284578372345391906240197729842078864269154246405770415401817729817669342110648162986998281508793515729637587134047817699923158684696042122747216691110566921231175076581368943420973151394131420109719345645250979706822934072752831957212111342715097281977320281961769414117452536857182940429199468290598094969173253349307910445639573472885612491134034049010096962613155944419266764932721423793276109627463600910233260432874050306544715797198682298520035462145859280099274339881648660456577199804833087185897272506394861564982713421826732113092212098392588186327381378583559107901207310265585968278874821533042857590606776254335766063776262581498140043062436030442484736498874880929497379371273874686537052601794703152547784129148333378627937353525989816251545927983175001165261818088802483622329463486075041572239044062026057593424898044502721347618558949588981852181529106956918736687546639991287949836997965264323928437654172252761430471037158063604946308651752607969906681132101366338992470681015916050083194837035058681758238297745862891589416549663904104019903731506114459139929201654786935574549436481433311355783111467662001466688051524476749342814258991840726387235615119852104501012744979861531533336658285974441532298497572412531757243008530212198140997527954306444048344992190624002420349819041939332927281054040920548076419029276706827789727186857882895336833858214220440882947270722580146215293841948642433324637911291508215519092807015170329623131986952309595569752679732892069756366424863852517321892254904020005273382958623823073082382521624632862579210443862573082946812583938694678809931477685802948153680405900014878895697749676968171127698183155804354906352109942591907234690656170526258751252280081994034773946762592551800362063011937298601800315471691585782035483680288167637791173526606601804328160267807776106889870924158164796412287046927448818861085670122379285069516983988178738431253741653884081878108998620059836198289141005266910188945083394872520527835684948971333263389007002475605143994039536548713204225932957514909877430855344179367879911491373831305353769197734748525323337680872365794679741897351020028523877696481036239225824966037659846590564038002159137557708683990497556385850328833232633398159851813748718983796093288695483740712299081175922655413825600713019160925387910157260647530408007827926991184742908869895391060976657892475340988826741779066451722973432900230199441542461634440790450541968220059486456430174708448582218923032695183069465606110979053987662697835635682977061093119657788730457867686210383235434039291905754753528784451076428701816998075428821860969078861553668717628782149007008729604859476527287041021727117993142850133764895324799399702833685394503341940611474370079450304180972963706286773455999328839625517471239355013284723310069955124712094817827954216868082057595748417065717813673094329324509920502875898981457218051278337684260223998813035244886024792955393981654545468047563593547613848300931106482545911508512950461392552484543389291376922199256126097295451519908590046575365544698909249404387043687978246704499742145488956312787294609694505642063572779777123433319617476199575582187511551449610417603458877187835365335803890900419261555209358631438713712418682734783240579076607896874358771274639698819229718888869139144041779277496747344139000915933683470238228259336066805994679782680632079225982305501598512299743252860038857288139775057001112417834297943387897758148079411949645105234701630853540292572550885547288821391458026125891790410547535550209968793859349499049949939242034822839723844940137187041396989113815915272639548241301833171318664533234706695079169913169971355334258387487857318673306722438539185255627940128391929448887307817203516149126534022208680127552391407381672412105624053976410887433627767423008752293325220683952067942231241758725556855975400286257355635871630896004107406906896153275060545210349050622813728755052890443447839645148081059440587903341553172491357114679980599572233325239603607731444693099510048684424642404756313526950730210819582595662083020098465537066663954252521743050461791050989941914383974053840261172441608108628776639076072002508367651963559326045243604298801493636127186372057862398794175232560171152275591782220173833812417480877222857799247421925122713231194125393861349151796805792874736474637118063244789315535114223344223025129051747695939686344340248175481360933462156842573846905810889355633148440185613651413444272969330399052280342430314453437871448225641487776943874805466812498391888323567049324620641937249706776746267491347089118467674836214167193049466752993907597520177923457181364072327097528039650853606641068911408991987428629731422071801556642571925107590135428008473312115340181348994595735937242264176917666869210916939968666683608150720106729768074841856358688636672033470228376773218522637268852351556393966298459844618632750972577449766096348128213329998981044893839605819515241643030181766033328009799202216223659133350131838817238078828109571867528699080069573228470966367369359615617072709445252421937867907004305509220300376897339980097278495612125686586598694810649765595302743252123116413215189969258918984818064869974151289245415611450705438673304237110742601906172746217463436104893177554375345836350231418330498307107938965381357280494736023810882064609645171977268243854898102632357488382826083280881313696577568620722049341155318429258322284294980756025190270819891323329169857532058966935646224373122174828368257494841612932116974142070260650888515232478574635133541558539514610398891728992001386169760126445644135974795744974773193277023264939508860172341856775473315229409646879040485503978494516361343078578524247144663346101740908215201242849548376915053906730246638579390647882489245760969304131609043328288545981662928683920678240547482750689683542828524952861242253607836228748956792308788017152800689110432821547946612539510564837817434089063934477309223471599032835698677017741281392953038522956221173871329945181712086112104307050683601518326335816446398189252978773795122407060554582975955721244253317602858352173623706652737787957796129679937290820917106481952824667632038740048607947771007986303390018284692725113573442854487470597930067350544929419966025397179698754477371027218556588053123056912182909724364754318654931557104077198334934761181234229280141799602798462368833435968882606981962138176597681575976192037854117553702432118341797919011822963852842669496506213955089427320553312848944390472559711201539845383572817632409716038713470992459144184388518438576662815295279288940068358031908578524886843076717480307482258928624996146595327375101511985561055720832467139309311384969848311467544397979661246702493631127753116345887144014456413313050326786548331163861331687592044205453681394622881557714750961184625196175758446396562687210082824257928990117604228977134379196086345461667665213666539160889339878624156394916983566677939809412615247858065647631459226653576139250091032181680976199075168029136435786491669297790672265614936429634738121428717585421347013088255890612620358092617651382984231228124295710898145810109928919090802147822730175868340406598039478266496827978255987451186874722027013378643532030219553543204622613883175913307658654844168610444024605111576099519224028040451508630373885256781916758897200215064674451289528594917373653480054286802570264702010711954705935072889379577388237498914206635775259793223652098305995689173886851315897404527590146357735474811795277788520670967548054432710366928466767943522334834495233372198812453621237244345002635993226472758121966882082417431906232748054565926742123708177019091399983771874711150596318972235296035365571632404782526023715063305547587657544393326518602742027660976582654238901803075569563744749070135547648986915705036892655669390591960035033008725223396333076305229973522196849553867608985429175560530323968777208863661979471225303212305568101721079419296405367201509438779414119616885645104167897970151976014358424798135859541816590832329773185295100031096369547939282230312138289684063337189450204963529900087121660016194912448904954540619172765288123822526876238568192752927767233211663056119849220568902198323362238596813221299035858296876066420030879426254428025868636762639937260933906354269745013147140676675392475185030383890332870133540359840099356553007175100881915589724652790596195045223324790304570849044235502775294129649789638046083027159608073834531591309022630800046090279703120673907389472758742879159499723735117401265537545962583684620497929644777493828037809503802777462521275974318071134715137915508989261625399985275734395085291115183203323444184088587975322396800386021279506114304404884662986213292675780218123809288062097393239847390420036945430582306920346264681413048249985050150316292545645373777380232035338443897652264821055985187164017697573566026339911929823367954986491025312100076292074733142721675209291830035987146320377294208308858569806248657904689986362143876359095223792117690155655666021378965275508210745881567350392207887523208533319023603015615526659475790773544961434180092650300350517158553648476619814319172732885297124480792420444065527531621762984497116140809819867686850554823687953823597916552705232060932475337804009023661622352938958898452097710790921917026511649353243492920918132754743517223996600156328332743424908970535933371002254017269358048821090057453297256150064582268035922466423874339987203171447680609572605148890996979159897905892767683144574340802422986545565690776346784000366947690343900453920853580822387988470303803723999616370921653489643570917183822561511420993501391973197279726835484622278261690183437171192350827545845260004653355179136641668373136770634152859788188682728087370281186818015222892493944544281797215935855817309564894221877504624049871836770787245184040126570571189431560251438283352513746060444447612454941184501526866108934684076451932337580493869597285481202537262436752215458704764308799898917954249262630459666861665429393062034608366656844256862819060917056122000711734468236679680893082653242417452326237681279114372479759956099827618523802973620251293233422721642410532982380148282018942923301537262418379820376953434872942072577689105482146446694735801064294984285656282182030663674953599392121100965307423984991443971219649383095678875436619650381611429299252073352998276732239805098148861790101255393424451850212968216989721228619840902478727965668695422296057770192658024463167825514413274254087457520476719410179268003209159059617401099526259324546314356097856098642715491509986705811350187402769161641300146331191869361388188197373065147999583596242811686717360913239948722395930404982480508065928836664176854335738373900571016268416418548746304732312343660096129838302712374911976182128407681409002639208960992750095847919032269822251148251649970349244690550101936657574570719271320321406183931984069250496408742753384481801568423194508828345305236781777850167066072408561719657537497607456895423154615307886711115873172365012032547110411475676827431044484604510214385097948943732667064552392958636875845409525008134472055315149018488743266097750824885621365480116150908255343979620863376966921905396317748207915328428742696880095539523634450272473428919630891848166049186074526978745445341452718895270521037673706293294300328902716223058336245958978284841306483111703354059265888858147184810371557596030386314878414684062436373589979278684149253750754216437475612305967273072674863285366208922727750751588656474931884245375307678970577418085524489525644150811143252502683597113378694005320880376242159171621426267238656843216028966584070326353063488277028560463889771402894342649733402612137859009895143099485564365207775394336025000644549556625703622927117791164337542517530212184386112458688260025694721460136320912695980425967154903660884967815868215845269637862567418014734742257049732710659830010464619767306769456135277938629165575557086063567000476842640954524611046196707287378563452161117261022250001760975180988350446931107146763203734949409837570470713455668477022086444688478051366097128569535568102136339736392689622756483460136805857565395719411154485167926645363271916180496221398002270237080073998713048357075660870437962317454888275606794277981396267860849736896127652233190561422466040798706361126682790625464860054538426903120753876655108191598447108833055748938116713841446159087370952193966794485519654761203839450578328940123972099038930613997026853582663114106046044731414263552378070356381897893055145265919453767592484989687688430727929882223812059134808324911664682365934308326295825132295918515294351316416755129837014549210890107926686937698547838230739984366928609999863157929701376638934701587383773683820990825757980377563251683867876410292280453603253129997424794234351925662032481029119242488027145677241042535471408191313339316642895968165230034559584090608018816389528528835298593630378811677564679465624815750396359700030375661436536585142558398581430077798732116794056847452231997546222341354389878842536674342442736822159792615315886735318490079611427127008908845942740071941876550407102972531533515473163257126880968618052025116173056966722425427600195318397368776730638540977381410756864012141358699778308367627854309825159163388847995312692395285583845787935553807081098847735284827047048641708525240903841641601821003304097422637221940939556235183359585004537212874113098802927118211777499287384533022461828775538136703195160557700384167618362482615265236155752651066307226529139470456393559723082215146574929794947980639499365732508310294103129956539111656257755466250736938956246365749450085387493057000515811042930150309650877621238078103889097003957662566667480383582870326613108505734157585001554995852482997470479693304844523319071695402483631408651805723350887267171455534803174656062774002346967618028167819823457315133755016704330767346371576976609258038030861037046010405370351786943688856089229965619029948619964599976529247506141340248782585196646050686199781471284658548303454475499542506781919578060235040140142708979021668383837994922245283276411216868045736219027054510142742752806898325829357305208864494723910383234044927150914239265315537234184580066008488980559011488632156579153353941495430776907189401046344520835445246348610270443154876256686116727380717881380577236399451586705479323951719255339737846828942972290843087599431807309753142023406139827544468574536252790050118439371389289054412689990515181698538942222191852531720562497958254503000251745158971455307197568317842236343329717248644825487144258453199481702826434056279625153632648236707883131704346267488476980522848730330869003175317993769584462322598290964250031201409946442692792560634760274831773964734326340066798605960982115284604483998567607632485412755915746458482008224773315781104247644307983638328904427727372604458228552808984529606473590363164074373931996133657492260681525833644092611828810918733253926343023152025701327011252550991667895782360621422948995691253470968417785496249040152740244342841343186914877981036383749420685967821078640725446243157070732514196428564922661999257899040263220902474992264013961354956760503197169281562516143434293811276918602023155219519326774288949219026442824429669501062053741613418519173377411691306411323812544469609745393115164713258654533288437479951732128907779595599123875067928028966923217589624447100958955405877960662879246373435278447020320220130262587435940761287215366035217515371809110580007369465476230771624652589625479800334156912388393546530524337512738421477773468583390691550523934190621342461351525241087172115947004404451929928237923584416970433384625439030966483141150715113957086526876501411642182619142928445387317680838837164293225873946965034605654507077179854849243914455598150468727587841755310012099001390014362603236034226617158808794786263530496462833753840425908738879533246659479366213977451715381258232785765888105072637834132712278833238890528849475924705939565326877929803209871834729964603911066896685129918336029178976044718245019316747102870016371345281748402386014752697270426885736826207041315060668046409326133194976514229209235536048046612260668507396298404091914700375350828146971056860719485266248010276383310382708672540957028826627726930476200615492775818483275522274706535334226095893692380559069423327629087510622354661632902182432437508579389592952504300077072522111405681382445240631495929148381280154193630858010509514340596093475044261588166149733619875186805722971671980788656959531406816816869581421751119462478609735585767960377398862124618419670073994174497342899972426360615501397848315807182174201684586928175763230919578060546624284285085493132485837536793730104939243814983487261250061983059094202298378104137497269119340905388939817238023581556349971109915582189291196894919590983610108026676107948189627287492108246598580439523464697745531355669778463220596664162168124589209219293756760593292676892756969318935148785673413919996731354622711328727670779225089649474514403710978448876397909565166061563169395476607830468352457263307159380903855912602004286907772404206783816687776161047364415326082697197712939116557267053106743077729192841995673658677028979544082719909920970266897596620166174208492096941257774087100694364328650580035212261491077541379847561860256669177377570279096052483080946718644363036891295461745903301195836073901917948102316273773325990545332114347920271944456430534471687707805830533729653136087234625586974232545641259160266294355679398531812751293486115690440769745282079888400873043820594736314165757773382726800700008739933002920105777978661597951001757575353641938610637986274533984222056319665768265230689656375530920626069345308197190188279238478626541852415332860203423500985863373412314321962214369747215972509080671994577848973972402775405245692747172539326332228202238886632988649104628072245920940867883085570383777203863201505539280537020091639600617982853345009833913611623927108251255608201526227470462645598622999757483595809479971636753117335917418939582974013576397405843873208591384853480170658638424185305650707188665737217046428335495836762630594924583902081576984811745482882134437901265924215221790450666389635087176904490472818173168813527214404786491769191706427065333724234812866577010976401368600078592360015435261976919362398694492842033596165499771402768246464203715107273750756615610369522723679205586495723842974686158288577112453683752522136268753318776094479879794188900695904344013903090898937755208475813841570369970291027798932813387066439825996287356541625828792863454224561278677996144227441870909150479280033578909423513115964567416156480674963463053186355314773531181251796516693595505358903417721729097868600395804484436470524535603631725656742223860909234906254491216923283135795468751725984116066485415477295965208902848062775254233414857676339790188234075615824494427845524924515144650952531484118298298840573072891152006251988405235171770545552045742902449117716481393719905244883212178859178025122412001197132371158801206236738538832743198683166869405972883044763553173838919707103154878004756774139680490567648591200952346406835423276955882157390652089025608379238988027677985472125207019851635734872423492651359633985231347310344436445473207239224016003336253917673233948251557768493539744579373453123468107063129772846005368998987173862455480796751808751857706675965113303620734877036136757524646156908874747522986782830439608661516368736010676814082617375370988060360729366638318971921002071394195778423010259672979731394843499140468058352152969188976766187256695483507944742351922476213345946984585826012933715080246709049571980183523403983424491621339528166201073849389091938428487825978590037151682184476160306635397992292333057193951693111271524587994992754452541273678851041064961389393547819894034097798049316349609313140336151066978881543660281687113389327360965054390686893574004111408226628820055114853525223371574781530655826232114485786403550809275199774494671986278787965160951487104058277598035016502496858650628505254456098103769390169576946933800771300155329708190959482125959036478528499159947512279157214866167385303467532032218554421985584963154049368569721214980033205074052323948579549280839442068168911941470944809128349367484922691102367983717944029057478409235720659779909295921463064583298647765048860451730517432405920038368110656812705430568036177544622907300654249017607328748259119534155080226417089610750944254659051507007402504374593102816037190514333345035501482036977906912635722785354151467338883277380139986310499690256901674030056712846836275449737537191901222275596754157836788530360390749304055112107267905302823251301844796983233586823920451549643203935628728229219496828612212517081317017338666958373692924795965128781389578343113402352209238590957790329980512527834747235599477407385875292478043855467468545683297658941196835442422620647309006320075438993832282992061331909920488951104636155251469969059808282577067719634873863360598945890218529653169033779542087857803526508625165292924570232222515460843298336275598550047981821603725752364707832853740157185032529040162611382716473681320733505656755046755223490779141484395603475368336623084576054803622869157001063673206606979687406561953107598596353988106261788425895469614012417217080127458680249080451955456085894008061835401714933778176841996349370451101638844100248168581081625209481248850306221363449755194514287799948395530072317712468948471596891202036775590152525998409930012317643498409873292082310018271122299025127483671997481842987812425413398302254739739382097473780247649840921469709382442884335647714159241493055134169917604676086050814515205106788532015455150380637374689293478939483385771866408263897335408478100622905754266716154851291830425082314681909866536160763952892070710908858806914383141833816240404134046612604322500324662316670089601861170899469790492278193080589790315945804777832439379767878308929426480260103475332311944660438810097672007176962129311151960867229102083964970527376156718454977163851502127241124633121583591424652858110265565651848905691200235003553327358503316997668071307219575346320809403992395727844809441260755493165928627278575675689006236928976100831002622235104008987305280877762604075713324783052373105974299084555707068479029609610178933543212458274685616121450874457478486497916458125420574929438807029437952941551672896555550301571793190825502452421177379333927305483151565774089185652974040848048864327661923594672994905258311487696320979628306237102572739064111231896759934058358522937849177049807892462393186540105979090364462895073660108905658190387157359285834888293274864475991037262222760348046297020254096235501802738909656209433964012967612962562141468086134785326247009328653922182110513170218844666718949936596732719855284450124948374502136461718918940444148089240359714021730241011465460091207724347189901492651184081571826894151659072837373413107618949194746074583722408382707096084738847519763859028796512300291266100667527269581692737306385291995972180942115861337911423028111991895817956264103687005838912338518526966600976636805258428895999313771800613792376440318163251254504737189506999971290883840213067019420257846059941376840750560113148809067893215133446810854017974325081900839565083153705055972746529493527140900906326101183886640128392719936305232406824480478024476698530941143243537223841373961277573274795027001288685729483459370225026449424977969686756303086901374208552574749203155638546294429238452660934787227460471093773951058284929964602232713101470302134934706813934716588342189043641924942638319120626162718476715953031846182177506244974180650813067279608304761705692722822604835909781444030598131645849598640964875751841601260927913762662083978607856461155873778981314231509949886263205595285854663024987979982457993486310138635408253614485792622658679391460252757062367265275772357885044385488379432294269727189237129414058704577466701956745766317352125784910665736300127333809411848663249160897691733461100398745644147702709498908171229601919849581918128674602462293105438605076158443392722275231192917469712192257246027101423560323015560883269038745035511604027430158682111493557042119616972189666339661576502223372080901209047363331130091093651812288771343857709927770151095717862288162311797624755885348489627980252850043211594843854627833029698089472639902968315031130923882226353736595974780345784200545146100708789894671971565203930366236008337616490350390254121894998679887692013184777820374841034202261922409516302637754903446446131044989106437711673556442447093801411609506597553734826973216218307946304883241354787474106297922069773943856292724581841050860779256859562958813767389820512785885174015680995953292463244054886160414573546776807898559952528035038229800059161490250043722817087852343478053243210103876999272234144622964318643771949400180313520698668200513807700791273855793965659505272919978119848604464185053398086499854219110752377524336442185655318773921483664900792044878241831164334112594999895703038219359688332994267720354503930279424781644949514939291753319658297464815216767809393354641071076943704386807216820616889504483392408448017573512344028909153696037445571417867100034919828130107281190017212484737357901469193666345877028075154755412435265135440260077825508494933017648737376921938711620867474122809146445902696394963434200981503898878465956178889537908509649644386357571522202948384004900583257069231508345033758898939327008705531856204909170104661462950821863191965452404194239407461356819484929868339103492736811362590484419861114707252834127256997356051923722166976551767519104918769660733185350841749830233337812803146610814097974329391901875591292143061597833454862032378495382300568549816562132632948778544591886267978473279910296531650684064071818914287785064462183015926963733691079666921617472993207251423151780997337082807618014555887716150000074230948360696944647481659860480822120745435908790093064867716675451436364647393179967135833791373266250827400139141724046536728385643476659913034495905636187492837900252347102900379098253347207437976820503063885845421591046299757810347359195452662994914819854725979134801726627375304582314951165872957312438475874553442544629506827714604192518371872865283425729192341785686363885225222650349932739369262948648120826914180508638630183694829143928626391760971305639155872676713450270404362698845193946426112884609862879313133488228394134095249619366433040159173436825425290363330741819559644781774690057358529124250102825877973551016232867355103565979234379382753005246366975727848510125613568108312218515555288001224538165098685784890377418632429283415996899777194064775887944391992612124403462046126467686557451660488862564962614240019369385278405614171115374545697371768352659109705595629478640979542352040671338721373728963866306240783153601167888173548633342923548589570684588292042689470404845474374792366378562919467853261646553434600514238957367617701128106029630195090510824578127738686950971175654135022151272709291353277631740406548942120372773375349981628381380395331294799630652258203604618211032586589248225573642665775181526288030598312901394793174744188897039604165511027325045046604017636765456437019930049103502258446533584934832350974223465803009415144449352903555142509339689394558175320619207395118581686827337495178393801288777992079644841551872137391190732686387749990485077387327685788005205203587062261570183482687385186896048317091574136770988613231635647915674685602810682912433220295893448150364499906990632963910121259528426252014814848430453037588465393458196234459147255119956942008379317949706204760302838415936808796822338512010433546267035052706849946115661021650575183595539139424145788823003545805178927462834429575941932431132676603654255839355549627218496576501118786006136071082555690867967351022480444580618735129761885621615323534713676976341962634031817219214594255251765506979992448400802410490264182173960287836746587390895060427489057741694408479784093311101381875208169713438733118903363648462340660583289468154736490866677488821780581368507891327903772244684549802340834971643396541520672435234921149646841731244813036673420736403859210081109114705375458896711570871242918564659892667476661627643247854374810322632682476095337970764900660055548924740988822833210142704101336153835728659354765526990163340446998705219375687382612489376102922684617626597302854109265205906481220324650143275475351242382992373867642507735828436355361269701633051835519336431049707480106735494109034218982099507769257186146967952665386081968109162133049797245959048048438842041866693125730441020837419276789822570813147571430315615319496955267002072349295815568261847537514287682622288147013170171201911968144427401802329409083273164735649221455635201563461602927533736120681867523901582645474387527128597720959656431263675294056247974962042773410542966721402125068038559895710066455733454198053986991206909582169736443663006094905766091670914166349215306474655894949491350405559281171640116603883703732069174482886928019961279016891691658896061035588424770037113358340537897172862061348216005873697851424835554796095088856940233720779902052574272543292936945003373435331167529578339163722872516103365039101892655663760555327090125956511044122496049583830924982155362195592880413977872140306411807837518393286691545683615145170055401785641674022004315213533394519697297285504037639235955281469035522706973053181161605902468722603045278117168209485443551897127030765840167667712824491881453581887290949991369539567010549672895569623719454215722392770538603593838211831637308212201510482140666737448114540559697333999198667294617611813671082550455609996980040014222222556988617736290505287672405717279615883941959041550575052445491147782327380187849073047821219766231843134864703857280308105760563161802139570034861401650911717351291817463605213074870664433674397524982240158569616959346521136751242206290137589756469573566927561975139929380439065091657246510494184048644262545175425449659035597173335499508410498447884211611637153413939313363506370220647675950986014388891885577219113533669680161540059849153254521611976995111854513445692570763643812078138297378064703438227613010090990602853353048662595261237042488694026657863023056361445874528014351568284907377603454183714273692300935196527641568836792655683732104787094268473222245905248832620326975312883626478394320770204721680011776697223521003435272588063766630927408411340922471105740659143700724437165804343630493198167278268829842979085944413919195628131352416758003169704138261631272450351506022371336829285561520645553434457056343621902161640830546283266922507470295071603684597601280761027662925627810517604191861595953944546833874213594251410887502559445487136214215956501446514983291591419648540725937803257891291572490897258719909614256403893154958930387279158733918147104434175160484065439438842524580787194167366506208822802841100733904880431860712366971153029797893718565841707678559069640509605048995534738859592860933501399437678357698880701888664850242176037114762466978726120700088805107303976338616926949531946132581687946183983263896026938843799617555446409296377031926210311838929042536260490083821376255984813566685635886253141428372550181472347244055803583327259391350525424739895934945551750507402798579273523355830329571600304019994188566049487190308690231761225126784422373958684725187789472345125935247681137844914118796439889097437925293854188126928864730127700589829222891421424925736743452978260908661055782189817457533442431335175539989091893725904498527110881770486595123850119165067175868206662356174954916008045217074149365725955081853476505169119667801427990811085461042892951148420765948861216824508003972222422688857045186338791230434583604791035685689402932435409950826401260131608944649790328062687952630844479710418853556803980273389705660632026438717515412647680086461255012498770698307474704721376558479490340764580919376158454381072522149541397460763994163518733746801357626643041395146445970003244475613384829746672926291147397787125970250798969589389739817665610295441325941161999934199421613677220173361828476614753259488487664465800019716165759471546972162753478740188386648479400215095600081446339602731643676260519718097731028850910016408586353921410813784032898968432921086856331449110958943447159137432252231675933062551334704598487581209601426758991618535612094644297958463550628938256117270202675676061389405254756951860007546903282632113812302565082914088054170198320306366917957460373155963762851194290917738045907983078583661952981912757163705238144618647071599686561353199723416856432584297513037180302066125916679429068951891542571997937472098927190841113835714653812435346271583940064913708643928111216398906330365743535913424347999832829762542085237304145734274675967585183649878357146449132134185326069448696076090583728687895155423298580944669746996513001387451474670155431358636101843911928444886841141909754366293096092342555927902737861564088873083896548840715631960129868020559947679994451347586885716205411458976703011466584761965799521689879541819903508550521981387493877551824415651064093079809859571384976412328287314603645247746812335175264683681355172120264183139984726938056813778803765266707508534418851268859701956839860694211986056882266440253591650538711804167603971077354406613941430594683511595586106400845057231962031436008421971953985757648736317508183090770256333339551632563373083549284457793895176108460215678607466952995093569506727393015623656086375685574126074968563084550613847037537370852197295182521900380529663015372049004709969153497974110126778717372101060745695425651524611644726567435405895493388923100659000065367582136135153240849653352296858044159655631042401962799524868395246830675940839357009527546716190706820904015997709324614906865322007088333607897752573095619796317189050333523174358151954787127387256884301728801282615422015837908670116913261651303184162205992247050043045425439066933308428124011688467878007597238878247553196388527950274602005139610708241896228445522392554034317617230056518452810177910422799063455890466752039309173437643524798192705225622972553278652147377177062371885309890176659092440789075729231969219058169034686674985872212783443159081020324584922797285867802556652012126486061704736306766399569078841744997349251297990201609125763782356223422132353234290808676284047477796962261277005381564192466604162219448978863848842514748259988224494639013374520928176935053047153389907034427113697412019724342273517451025952983578831931916909355631867456434746735309692032159102961196332799874315487921668074414017890979407626828523570888794589690591939304486321321892771993153499550720254513466669692761757336738147396713743053954591157976856345001910202395269434446741881499478265650215264045696999104153743274501389219584271802523968914561594987249310278203467626437983654709886586545487622520208448128169080312209609788816384969334563450375686591052161497813837012847502256851472685528100573465141333741444784147540104228875876903420814477459340404233310029359282023009377402090776431820386833523098848376823333811555119613514885519757575145916253325916506131123589395960506295958550602233185843914698971867676962973882404649402554846774825141671846341759360453069733769891760807772867390046867097225193077846823128831157108284939877814639224219009423585776246470030596748983522260244773148348305542768397889567450020871700645305474713466105505588862131721469574742858946684663886514170563564196805257195669971867706921824161739540924057859401246522767772892955852504455787902413800243429432372274667678398782407379859230110506456413473904596452173396913814517227031963676189346651957235543048489936477581707610874773184215793957762125106232960497676390073231778727158253315953470485124328675353706792386497124425075945181936246711153971205619920050374866351104153802212812223331138756689292565694753741139942183568733902731317863669795027670467682616467375690620930340974152281623417265095904343825875089610695214176337762368015015503305673427203526113765219217792217488814651581098228088029155065191638216925683215440869380136656812886299066811420076184965102785436579173305078151972137641692029307085633671530440110504184934015064690168689554144983124368481574122619961935920902092582262613343330277664125882523048977733461125214277614985854982882871032639194426259120020973322613749455346881589465838294173418353912007374009846925944010210250616626751184576759045746076418816803839514093094793890301287655942288371655383291168373437145510423571300806897089944715490720582367168575996998496797801275228966936632350852237047642608482001292488832808415697196618806153316579448223729881618986311517096529795143741778465242281863471785082601109056463171371729789184065041002660691564108543807111323001957165543298831813008490491639852206223037470343148970549525942295622515176664379088594831088214498172841536472954857365860382921206911065491061529934952017960849327249973841442926491120657939569035754695283934808551644214410499756274343136333997850674849474538262920527835287021307478325015135246127103765681287502741474188654714313107691073823244764993598612043140194237026333791486900351421096886494900315586080760086259345404279558304944003482305145064120959200917947056303049876589079842776679748992497476288736609201926085014521473692098603363793239253079117949683942232364131343720603467717787493810230242154357341348654826008183895829166333657205359832703497922323971401746177339115173064548562689697181345142953296630423823478398926500195131028927838193534365376689297461415175741896534450070991825896543637858664034792989624191460552606225377911614091271784111646780879661274102157893883161819463849368671446399750714448188089572378862031539934997198332428805291065244556913544147705671452408147558772978925010943329814497960290851933643113188067661957960896481427882654997301909364578858993725907054998016933265707693348526063306103597292354766191381882844109165640353294062639969197120776434400585147275525490078084809117332541256083715979429265235776081238332395845066707081350541860839268307108336518612132422912165283380677839168327705816501168152519128184549174465642432276477194771207386904130379332538256866225999246548588367287744537794231903239390471156782481463152950988843524669474518280154234136964193220693237662430855502445786461094704650497844107852083331131016923562861055731992305721964651690286871511258801312231520225327060169975986441066558656723795380323043687553075529808919533127428357237078275628149494254831058861775879896533520935188924791083156156975125750888497053822134031201964438244603806648559226320496841599878249739596995993913657304557873496932904663613724516206068078371309399736996093931985219531486718682118756333621413998179538717550409159919406744855505422647666950182083568473015612000146140758988150019648736071090840118179486321416890653658627263206031356237875721685941984228808055713645706574501917361945572953306358348138072654548294344561910616911662253497715541811245740648338613495013579013824472004113118390803438024562879759509283021754810761919255846460054641907419528326284134784070790937570929887697753694199140083738465002877303038209075170691696894870608965031624740423129436364448208050150642628493762913795199062398389823792105430369247475964649757585791474439040129045937082517661508424646731910678229147881918168694132442627573909633338174470832327471528830730765503907075216967663081020214483731308126306279381928984607927054908200746337377411491126492592515691922195199742554053546300152888231120615756852331503092103863070395503934456118753520123587158981920774654990585010279684824409178034821633208561021036990625797151696148260626195135448505523590528283939389990022954680183944271821228800726789142492587877960336197536650415795355177871825870132775414884863008819572449907632080093162450490873549794535751852101678942937324620215958856120234673956174360026170077910438735262272043068586118235215758687753509463105406626929251466436993164870859724176812405032991860403798808688703145770542473644802715534194943097428598721835525518720835489742365566769487645171353147828253699757804642097871975573035701410889836117134334515856459670475530920209658947108604276292146941456898821023995137862388210305804918102546899686025903446862514424733839886880084944138647879701575186034875883796122964683828868204221279649798115912346321224085551835218792021745442465455784537843713553732544548896752123836407627331246911906770688405712423761686080641241108882896848136628360893564540126180814904757320697144022623506736062835486073563792066559400760523037026437123514924871621825495345301213336494828263066481266344947406388565977802905335094642560434435591847654108316853641234527556647221081624099530270763040605807071098550690772021244740814295966495780974205220480304314913018573752801971974884363925205925588800907649672408390488685266539062118326487597441613165798355363035001521164676471020655638849291581219455354000436467452084854020043657729753651272518321241491734960380268912198972045397113431826147615548046973690583185088539412738852560312965436880876747781728708220882409252502824501045023303684634758963649426460954919252864588022156871372961850587702596055113504496896182617237100974641832774136766806523657964506188218122524468448280134101961060127953983808453780826985607342100268762884633187032181055912408985919522388250051711629647727336761045575517711759575284438883289888750760868935636632812916902755041184201151202004616219223484270850600055647364756039897895338974882101229906438284780190240992944273871674162724072610658643276305537607862530517786276970925742815836888737369527311946661702737566776497632697323689590136951595191455792775060941263935481165272242830724077385011548255113810063109553230656177196226288060673939277592805922024801876406572461629629611898629189966074829754932969035176384133630515270192817524566113626944913714078590574399108627251082469849695749511211912421678030830147632847786949444352485996468754477503960256127322569762203064895488176527025193703468816950097956518159192304555185389499291158809343392342455438840366854546063495336452279562200731827020349291689793104151632167266384036501885254620823919325125703486793075051782792460095403708318014803973199635453314452698363297765592908136453651494715704392135875679872981466037655225270394605109738601596020516656583783566383368784934281362044434738184984532483363307241552488602637942745360261481823027293855166301796970817702691056284747658643171037499431521446227157923378955496648540085304340218486846279993692399983881578770708843875731598667484485116298947966601024342413603029726483595241317889081308585986281932595736491072305711823013044942900043813094149995261772458153835128817958116495112146170968249887949888653859632518106632717808778301445319579682659926861988423174400164299742781162469367415371703626354841956353655271298831989828268110084934257878575659362188082192012323844823318131278590168489088954526865557945171444964144233932563414639874472913357881285247332908478470398388491807450137382126404420197625308229172097092079145094559537036400061406329607644873287319693661443407446867381279561688996846799217596807033196218180534004780039999321859000836645597716515554266812896789912387516472384786681782479061481122081867302931000687222101050037664812931981554329321808086567334552378037180221320264433445455042338397377344838564966318177145568013350418492479063396551997322663516346682440952574026709526612608030147611509495674627772082608298652826572913612855746901463760058345661857252447458948730227804565546171429406363101538984598239629459550470483187468555163761973828565791542015530028374256514061039532757240440813789351421335565756078992893382048314178393002115809424023793510160661151407106283888975290092557328088482083684562886476289724872688118429145321312441136860170070026437196738979685191072987884543982717323083433485890557421550551463790620785797808543269887646255713578022735025045004925454541635896502613480284849154716999584275850551534365007405882214218757501463444086979306500518548771129585969840704935939107578051234083305454085895760738974127631955420274428746457328712270946469290945419061145035835016985747204713140692362049226972692550710628996839541745262904471464625621523841287976694694378540827322045809978321770405896706997752086700897992319631438701597143306031142146032354501314318689021805212847692487743532166789903759126014690651722952693533144534758604227959563165175410396239529350122605209163153880954817762344389038295112979897710261682802504406547424419988286755653329665517122053314773500373125036694642182420464925203661830434647689801044033500837661381727446976713972343757400953030221638387327500099406320521377459830845534576112858248853929605774270172284938884318625453268725865678563067668943592978724649726378607765013882973527373476722799505632561939330583997985698778833302081785872945280229990414240123256717364753522767128685616398521237684723888644554867699943823944559667149202529074299598832268476163977770872767700009719632125120659070735838549093334622319500077711699460221734879098740277951296069265199800774152338591565651385017779310113925949115585062679929644225995452155909206633876075344211658119917541498885582282417826284885305600524873445025153718196892843045977048073350020388796898761038470454964266665256311621589395728960677445512807216079583169675990405761520486443377117727593515587221840711170542515249314347503845102714581653789060210777892547178182058094735227415101449427655004101217739773838749288758630481335698719626371918128440075587569461559718269260878500140157453784333661783696925939891507359684707235992747493479942756367352224018233652871355161192137628693391468710635459182196802192439608957975199989400581362226384154576886305759107283354043512691332037443076737409724307327424607254423963416194308053880067227351351031869002407749463392845828753547447481939106837017902132798363929168599066180956350889794383753027204750857569452797779670076485174869066710465184128056603116982185280056039420485357837715911765042101972854972434612936432388714825791322723847545820959669709168401013122898284545284114535786348283570587255775516327621127484440717333670352223064108863525734921275797100835846811586659845147693550224630190736464109370778544247365666787105724478493344989848946896535429629086618522010230108860568721907479935723730318773364275616913530085075766874859821338235541046990306788579308395821861276441111282839394489953387010458538809731593509613000902253592914434811168860396211007063988871916177623100396017472671144038839545629169789351445558891638906818517301869379446437355352438068479906213141011328177207680429801349375395606453489806478678227592873195464812031342975046678495800793068171050554243759862755815550968641313905158524411273776207771627448035244517457804596336165223421232962626082372157891315099766672431644174433638172993553954809760100879720003303433215730415049033360156543196734365653434809954286863431680686462920833318052769509491831274413574581627110824130776834141513178522940988698608740918211094314438008541231000571831214091074549987469316285827040063159871159566296154154744176626564756390569712046724832236127797485779631982616722402817499538319704402226725504287083568445432497291035610428911536517207887602456088346055740765607141500646615364630380872993368039124894584679631230659069170118961553718931187986108123025911082483942732504408809910799353094918650594338527211785166820057724368055254594799431846199016182809732177300155902324353973052657036263698889994739782650774549200904831401840684803030609331510013602018079514468567845918530457624716831566454947985079099175358739143005602179744063491601533058664943352532638959446371367394120495041783866153642875905817321413140257000034338565683145442971448724893807732729208662796345446106294037238329187993495891131785905943338177252441880781171414724295266787357032443711084500577292212575082008474442602578722913799453881555144189762327807705643630822351270145055962741639208383754489096031935948086947441862654314150970010635485845800471012839450084724936225225270880224431245869660015233785030972433139186182725924318052137102690983794122447751381641872791035736728792618956505347946293773491146488302787294866866675253149480747536440368161430843168218712704581253085601061522385838830724483434235327954443278799329609125931855992512433101024231736070981992198834706841478842964941877718493324894571130446022173935458101597360266677185221073590637991742379107282646525324472115964433080511495913683450782411045974059282109977704431814358627145770346725137483370602098900899266535089818671173998116214541512782945624314351653986794122791016933779703987303506220125479113287257441830656965629801811733583088156548404472563899433712231066577933817072282282212990501703760191708429394683071177025791698195531285901532499525051890962442914255380938418608427913253403668200753589759635467549404990132727763973721577629841825144995554227152394536747950838257624087061804716756392756823253015910742349706292445391156854685475784961372793049293105461436107071281472288513494812428110465488038707019743589750273546109102127625995086865197191278763105609944049776470491639982888494051782111767810519589455272838330686650822965862112674317251871006557247718723794361425385511381504487910314415402210925263401213885874728233383196150487792615262542325950697145387039586116135319835926018804230369714986459148196926017440552701066267223745130683947489330171692679126140388728112154337297027408996462680985175905771610153724712329493544227170730164786204486681126596140595812502262711922943039012684133038331347381266862799875708108466818679882921244612862956706269988257300461246762273533775121026839434657653151824364505233590889004148988767144638848637453124618219265227870423615013529338349395090530508906115236885624131818878511479470668994485069418346674730184780585388448668925194445840751352039600804993755099181428610801602643307174340169193439142658028133384304842154678784362738672436638307839735529961217428649011081665706845313993767859316139619059356961676572358165175880207726410761646115005580756921316649269987767904939342504561793172922475861808333449785825866170174988399507099263813159247808264549702263145970235655428691771404999308793618186253690871659644861847517417627144719862463423684074313026388106788806292406767519930746351709904695754920991473892793788682985830334109456630637647027527025724039403044141637341990297020189730051838782213220319234526267911077839789401739337676624927518433379483446972786335382278948800324388122899269305689968288040022686789833621725132877071819625950342318465479339183523067462847546972919455574279282638770267072581357751564810894957947164911037168917730138054661376311837974581133165973916486163986525591991950197354571957746268278130446397617970242232743207503160068616847017028424487707568278253120886089564348755997991840977694542782210254293595717931363435028925699275229117717995769687512071629977014605303169023018091708331165538230766526350405391611604983724368394071186014910519640966463620141355655498147758625783449256878387245034930375787208256466156645952568857234265248833335683297266255293524807149826998270420190410938301214846154731285019763897211708531372313849100151666032629396167399686898801021533960318272740358786830432087321727813982706344546161650942871457498756439672809570895602070285512088715219477772303998507113661470760741949827322980326525153827579604678697936856676455569247581526584245392375606137693937872457442080715928396238968621049065898076812213665279892847549262572472806890249512104433797804585475522514200924473658100491497682980044558480978262810638306328499619971883927159292863407711196120617809227154619108136640153413754065867196880566378799281330488710901179322864531668276722346907033419075398619831919112049943702519873783887754414845758027826316403407172171462237245107918625581476493551206590567632191766297248844010183272182789984905867639126500057745280878088626308080846611423823255059327903213051174889094626848576137199874852642669508036917862585298286817040995646896736529163668776153452238833026088769553238549329910721517416517020616656890226690661757445901915087972529033207332560929962586649479983406273321476743938220675895341633646873694558768089558690917178274796068017309280509286919745174573195297884112933818644098440118066039197314622455771670728665745649948380011868094541845397115255086651279459352790059659631816800756397430784883573046841296367980171029769615163609386931313249401170619726380716223033216407351824564515560622441888407994280424319290956343691732092982139373937538388594064375492581023941994622144683116630450243217112624906830507215233471738029875827799609252235996838312309518435286902580591085784792086727325557449606190258975369467831478048765824765462589214735701125538230247579024578445076547226824602417336032810617928655357922577009429237687909614763045805574019855720633790627727738814770117465795211457598363927883037295758990526381577341439885076000160917947806969574908367417459278921192854270289586998651939338322473233620524606034868660917859883130201252347675091192030244048527099665575512858155975729589843196630641772298273585516305361164690685071477140234327574736791805094806593903584026352907994854085544067489167678325050798589868914459257933485394040855338978734196705491106313456349240436642961989807863690319137926009070146756417937396780274855358578958504687309604084473741884218489840787969340842032936258979828229806531355741026027243825372304524970845186829213071964933168055039032647314947528174421937229437628955794369286776932258139342570309410097335690332584652691586907934246996956534379186909200904894639094363972430009006085949646671428502320411358423801672218540843710889267055296991404001202144049999478227456862046820831647193912198545708306509226565662080776398882829414212387629296218671702035251871161418768206473948503918112266203758154532380031161017095965523815506298099513381219132573437525102539576725876187309889734463405014228365061792955397030662096535289962974291974517233241689185288656313252559423586351547272383429089730402936788057270175366790505662304601018744287862003976344846245524746821452720261215433794330623083108325586896811072551609390626825647028691533089379348315651482477263539245589695029626545506264506807507499281654288214853078741602002676244552870658917821733952005554514145118699393483659688392274063957672658301979145185672621509516077303140339259701712528876633560540705575518696557507994417466654578073525603708357154334370792918289282644893361630193440850733121069028039791965502573033224883124847164269651249966170471747432638123585428509755824682361073617831706140932140358573226246517366740369941687092596933841009759894333787016982047659060135470134049927019931125612408545877737054450963280071081575030997296255028166822638419322532705159163698410241701841853179639819627831793377109554995960518984931893415312024212520769483960028714442796757578829052093616130598569990925558227181479081469593996950293923844246624891534731742602870552134941739524305869946763183203503202258895349156766098657890704832799671703626224706100911151482765089966257868072751720734599966383924825990993890189026554065428887355452458280079680388471756543405382527420972979061839733616693739270556675164062949620697358345285340346287160291677786074828080578553484436816097778398642186433145904916354797888715421592662194075944532232790566244285668910541698990862795111527236576486352672422342995260825350193878343014440839538312773291863716988934315766546613319112181682067684943116377110098878258055486309959179005656924592033041841040659692392153658447445428942257028908542978254801772780952471272438886712136183999300077010005937364358825695499594627857831750238673001063222070906681578871394446623973983021072745725304505313772369787884257310927992762324139960242682382658586979594535470670943692489294679829977514377119906691822404635748100344197953851531690755863455369245719932194814714868978404093632477301921140505204282450334706335101889312758125611059327292149365140418240994872998672295950208089556880211570557158425952156128900936965386382002599911781217068042782937887570651724879004849183849482922689467767736778675108829493642173068209274600953217378227519383260947777828622944026426640380081196515302357634415364755773676838008761984526699914150138261728606996557789591971047452450217965633363137660744352868919992591034928783417998351854485417096473861579948466336930181697755034029313002895503141052569056292447868983701892521943074193500242019007485184365230099855672918650941783858527897250031462844809131479148716063361681752121053967974002986283516350474353512731891397243259324609183999342116368760170918499810837374232417720320782957986814171634550166988021671715476010201834338647886730330724135132290656067597270441929605009457701567971190078638912827735358537954820232227918392911362946758528648960717886178663353814907657123586036203323095224886206173018347206623355240532976589564759307453502999636744026883759684949966483664875721491091571276656843963504645152510429562020070533414437787323923275349764371266161173585470903051896028293360550074469488974420537306683882220133980578936913309902968347845205352013076388356163978867629950973131185465309967465296425870364774202874036749384540805616346543047789483411083182201808562762363034078846478303818496984481125675536951128609282887480836517739277201336372878189671343107171519807317514720144501258945262228431445889510293779458357874004906762429437779319246558651772449497684741638230971839876671749748956550086678191223165221645592752311569425424197169812285673740379815184358624422536701505215734938516873003974242965035365979728709456720915310234541453376341231151243624066879244255515146032209793181540161410843203647535190751415545162345794219705676256701386964898948906511398370703372090823161095812165030713678814465172998974929191604005848086263529190921983567955074197504579898584907493391404250597738287162518699932213268146697434099946030164632450099910359414905470354543523826837998695504345137986362689603150144383083550227151192689030758464356788446076226904251070574270964245669396893144391780903678168210044160288685651611871317192914631879896299248428305071461012466988311741026723677701960946241334559762830438876540061414482756142583453128351617939126094052296487015384143054471265592808877890615771694140775511469583979930383684380202039358249668211053794059523407641722321235017731680623432753679129152423250561155678404588333401128136169748808214541901351645666535178937726265189933356944842580215417941630837429621517308633491536764600096200129252296461963242137226693399157459679761177849771226899719484244755610948911150504292470182208457683971379196489227286685948875807885731876821977970602004221267696057088656063680063458123587268076010946095548983645839353889994118942425087047866610096511641066204192481890847031263527280622484004459954147246503836083751564420328600397986395195275647112821627459038331342612695303129868264303084162135587131417930502969067090423824843652619075261646703033391184520159795034313376154737221410266120710619592158480731640002043640318291713017030701561807586089722977356836313358242203361814357041557472525354021377173531242202142022931926082367848019070720883469711299593151343367414410861699377503579010796239172277780653010295296059908231906080632889636857300875664501831031855872971207553781923763549959693333268099622446536832745102851309453125310610929290692203661973275661962747793887853696908092042615822224787642839602930689585365722806702882337677293184822708006909357387402824939743131080698264910360977020942188603532283211501992610184654049548894069590639289679977867295765523943730209217920279189222452929717912429120328179638901148591768143577528798820992860869243310683845262605675306281546701974766694760180831337591747195202859758092186839756989975753457705696990371879741823427571638444108053710595301908301494407205057527672960973719208580798317503147896058826177019174815824983447615544094607660453969939100748018499322657871519879635241643246760122227426464799395603009559748766092539025538207469585079413774096871396972496315801709928136309333504387978510598842083706517816599534907403489579075276651373412870998251660518765350173936669028705024036239651917364818595297622365736887952077373269594449224258724019753094655106170184907819423250476984576562523843756699321909960052254826265366151008816084188981972163359365360396002553396941134815417202112837264529106271208242430696771645433010370776594300219786015297085437104459379448520364413386117734378153696135293468300432268933373464327656054990295481201166345650543190439591612861779159056105373474129078695715097996264702993001047314383630340061840186356617040542868264267210384265742725554618594112740402797191671065360322545904745336283225483101730773936422851626969006902120001970202859063374887488869509985599051177496778636569435311514255346162521266809492889654012284375799952149446949787240000587782537290160895639000461331078894221463354809528809043049037490649518867594407770588531968892915133497227704512304946176812819111898293242851775684676201398138992769748242651275150992697008540771079962824657405050105833321122055864821849566350560063983048733388563888957027255112069044992883683926878564182732718178741013051468882420718431369716391210158744481942407756226710289800119304393260070430125078749939857719069223058098047136316948366462105379034683020231764042376154251905329971250793561115191541431484408386325068767277458959385792523729789091292896583219814917183328675939145825768388541748359544495125845057846602374931664570536372634487814276045966392796781053176878737985113805898182506762625987518976791715630270520529837081039740670837868615680791482445891008032453584313579358816314800744710062978434771726373194993173795766589397029751204347501321095197932591380705403796708752490195852611168948135187944400517539383613267356147134704343314585530569836568812921870938413206987183004038738113867660010853180579927421503432249582197870042441603489322335880662008049541245870261235952758438861495344383807583623670486115647241659147248828856072587485765540552979377933310443413332740168143550149715885143786297017867734863324275638678956410039951681227740046124740852571439770601792875225438924920367445040300489159773980005911975678068200953848754334149377831743485448432978078514813597468921747711817672272449413335189211638963021055946285667019526171505265476042984104372597048319210845014640192048065853927928971808043162623234990866739435484630716409348665569542377356756292370121068330701858413398743248016051378159674349800129263591927480471770594589277920303670786730679487928186745067227705632873304125183520768097692240215188519903185591022635280787194742018496758881880973338039000985489227440539412752373394830653591569305181247816150545374190393527903774927801610417947415387365653880369232398103280966862228831730718036350229174989070576742760803515349257739041776071146452535179289487000731675853471581800385791543720108676270690090747662311630182972167968154719336893167913155742927403407444203034409653647934796302746299264860801761979170109386933006840656645000356414817591488359655881163846997556045364350635926764029787050466303513660347053602251438530423878849071048549874441660858043624902696429787760752502782707255030010821425961908648645485492813309825423824968114216658055431213281279303274876197573594928415428895924020212548188475570063174015352199384124490832828077063344235897372368629365015970215562004813347293438017539794948790080086675725752044562769906880182396974443539839375663315789290767533036307448555928926426951464817725809750190070007694265676221756682475490130829903289120189155577166042630092948563942269564390533269066902670422895945407194401594774885896254239307422105289346085951214874865667048141638270549721100646592767953075137281754973464078847175813434014138335917288574307823278644754131014756524176282577204530785327340211113603040020161408540750591974929539875752437200854778533447560610581504759253009988846864814455942880355659074289385686611881557300528251916306368848200824424139447544951258417638352242331060906061439381320703566603276453335057718374260273330700488324544862885437888482805207148877040333521644953489303157347252930979272005773416125818419136277748526064904044329657157476081805042806805342654541392343196233630512923935571515685021857018695258571706580408256223514362605584790295573507441908745284023531027036917761203681503224701670617467914425028567785341278494892005724836903250922192291796964325104044443682862796511739094659749214631118381240455189525338356814568556462006846298369009160854504948852606689114663614628613359601338222706593012983022139896529729690042102220537198023202995758171757093541423173271639305294658010578035830081975591062196700057607793992490790828987955556387873450649586489931120918637048463264423041535379735841516664876684293008871078016989225209390058163475553355205425537238738247210803512980363816238546730025318473950153275821089352864471785970379082547049235206909617777957060345327525162017704520759577367832297916820244565169373834246298138174974281980547405443679428995229105310735529554593417744225558381225956827324549592384236305029549948212973332761967421581924899980861815865720680139480754306436124077746688742616353291359109540569006465317050738312876442116226354963769124223431637819117516315535427975402324217243710902320303095646811230547486415240421144545380590537362331377426706469772884560916624477379519996467206537101384605985588409381741687641866851893466468447379898840404230548044865738784865078186184139405954925970639879452949722627196200903000516082973349280552362086759486469308282459031577712355545095361254651599038935247918391471140227272321202381364025828703661677262365060241161553119273205420569200933022567573850487826685626822248971313152283407780766892530973566210546178655668031326753650544154071380934588833875837183114324798939649491412209810303654951856735291819005328819912558477775234572978029700676392880790959531585296012383779077942726023987836239326982797360299907586014787568430686670253445820915981581252880664962515419677156760017046319259039583338875052225259858917970492050455478989113120571230751057769062885240054888213565590155611280966528824597096038350687799373574093392286654739468147753153433127829796323027311334256370036341808757226845914610029889322456434860375107787023224518949035417429926397058081729637542831265678934308018850619467618443984755875367161919047003527945873137544720335412109358345501636266515052144168656407628294321773538814587725206443806409712256800079448623212300250430618641594629253052796358317624883664547262160018659923774319416174665576292708379486463767305564195040729125226700552479711147354364046577127693653287552676409959036982790696768316021480036154412021635040539143861306261560075671212361320611035685466287855100581740827182532483707304035246269862856405528070661123795798744548023654395354293862863375675831782609298845131537191212533805125327306668593984857127689939636928423606083943762352540256149975850608624097555077748764651766770124922382395878382903675380633956589874547073146575630509628734743411996019152079872029455118184392526014127309094404511405413410550701867723308031992976584511828041000161933076127436019546353258810377956496852359845689636734047742114764738092668606550820048030223214063368201970333977825220715802642812640986315572363813887489126267237494270551810907715001292814194203860817644000055366568557221175697731288426584977181451056137193988053378999714791554607545473569348317172585695096691311680784575901027781442102473781904603732208633753576396224228303633205662804665369970926404082355268147197252997860816708466564856495316164325293458427273819566291133421104822239430481206474666626740397925675700696649684990266386677081179632069010896304763847075279514625400094875099696652581797523306518238739170233506533694679822791624628818328121724029905326165390386135054200223054434195787640638563410919134926486987800961051065761923747696305583150563908521595396570207161800298441197699734545260820575438813245332992307825589860090057280841939275433458833596700571272187908348720131503574164599921098754652184585001325978124135339146832626570859613594770023974815855729345819455618791382726863294408871686898326129584660844055845087532688785185081074578137289103211672008121549346998902887784343575979509985989108650320603577510186959449858653350897838621778976187875574502603716134223201921478440967384387559584695272488565731729386202505176127764011698009543551717897848176398036732571141778397207796747475414589098468559505850649914347407856494250312114704704921550787733285079057723464315758990069975277958448689321648370031849086820620847613727786682572775632381918586629123264844643778260099473922290019930732366285880150879368507023312588302288602956949442421832843881872817705667897201805678288704403853750562379925344078766949032125076289765619702108980054736725034922922761478811271264751434562311298782124369094330673103965077009913558599700052627049210978267981830019694534664837778765576725337508877494744067645619751754695278015262451219459268406056986780407466561111730773885601853559706989744793914625641418015476918735561882139256873287696645325425071423032747628229010670053878887524634393998713978908763656218281471651194597679723907531998884590584788987056198217485009529939110015850541656597371837564462269695703847381431857119979739462006305002839784105222216164247659540107196681301196195954933635367931029319344354433522816901663101649772581507388705885127605870274532318895964785927479728360577073363884793715142940544747871127160344855671156876551841193296497301761432007000416677383177363376735645185372344724105431091975812745600478082827770372265523281415273271925296082686741994986984035860204580607326405723730746286354422824751903990047696634395641651259261248743172775798195303104251053386899297901050715761575215482579766911882555499912753517315372178362545393620395808994746203355274981834776442611953603571863170777980799471361030354547604627685585415001039714282702038610269975647410095625485876624205115543807171727311135517211028239871554380822096515360178623076179903826919836868305168499366710424663095943442288621989005865363580214474230232008547403866205902602445711038550169075542430342049273470260732785609804213007188559086762539638114463939488902672008977198269528289505260509073237204694505660790350449716349059069450775784583656055990235977068215708720997211743286066804068246793442635687089104019340539707380297958762841641724009737691713239153642963843294257927335601832461873035099937557536574339324380639467767952335677335453673970158090894142035262673756754254378829110884418746856811034692960210200146421693869086097356111692458540463966274623180316834752227352709687469781028064512767446132303517916013087494407188589984638136057757912685059664845631597055899932526599119747973776250518745313389697575369576517803209332966500267029085645842825618892368880596169558040271078932676459753628466358850552184611560423820597226024232336518204607917399744860230191482798259496997223318813956132974576227168343115275706390941623121756589820368004145221835047831302228525515121140250157083317982254519253589940549885368264944212360775097787446588482711049861364387963594806662632678953511526728521858141573524688241894269380240920290570174880826877278932545464728733105028126940672124044275786698943889924257425837571437474289225029497667158578011699856888389957071149546060574015481263720216220271212223557483110578266887620008784886999563014624885338223319804620217585595106181110745321382546000173194210603538335972279621027740558376829062577220650065593205552988668854569697716700201824701098968203104074196171720511436950050117213037951403147908651329763138512232375832983989097150885426888199550028127063228230793753268961467243954426531619044249434396048250191889958857975179847535618202964114084936197001925136291470400321786839590313843618531978525245174300656075793793085892636472917914246322434256842371152251651527061339928959437526448780892226253338682475011568813350671759602392198050880284027101823118270699704698326970145800924577145900685045650012028911689086022237985019557780815395133888831574332733099882563566208655692750560914361611949228005371347708425070995101631703324439602562518825516653776733465110077901052717572452862831120886830516572581167555867677769366506727105403997302176830146637194905583464415892616902707409277624182073581819085727618702895322345010830877794795207490968772996515845385086823301291026930665254160424073283779105303667258573924221404217360219180474234389080290306120616512188237767534815908765305921664358996273749685210986031614911573734864828477993621451420167096645777977651029286277192343582736406161323509703993847634436915586990014172781673884657515777787884591396974560755537249304860232212878771438435924023830360322644455234226425530649519653232464968573026866169083061554804164307139778193383881596352067071694672581376875939981711948523996916110217289151232158412349076292601911805426431834680858864180144379293770727124404142316096000996530855318368890323729595803221663348496248411563540187215936626769218967514979036995284778230083109729691611158791947684373011532176457172458451478099015274062881505447369623599131791860765978444181179043770527079076116379399991070011700497218463130171814427825989618048083142444431147088570281167567323064125057431695676388344152535472748670072907730332484258447703584840359760341128294966330320987534617304815922565561791650807260834148253503431652430650410701857745461857075785104272079013388001539431411610382652921522115331472201030599411965656243685919070003461756142007035126947017245198497076479853840875571820532003700386959259891236839371364762198898596768133237092376525572926483824594578320695516749343016527276388379578074017699111253665518578438610414889670822747735959269026352384675940219307851727484542434568963434048913256691027335009376244156320608716899296265133652478466320421822808880319016826059683797566219762340983512988575104144617310489797051710490903360281366908038192158889797212081013062767692669873343572644401106874432337050634053511301819211186205109969638387624304014669985881776077609659328089062185831008120925133767778495563723047907326803018326986160191755095807587486107165065023635077243797677930713858457608439467470101577183943568126517323288087412968836079615179615926472725719013677322255488271589759436188435330633777147491127580165768857209860926395791146011221917881401728653355488551163502108409973877932293194297841808662543524185059321887591808100719351947999713283250718257749465317820689361821137062586473192500393163552960370982388128038281711954841361012152308691171914703876570187011114860526449664747411422369120074771926959082390606636681787198631293035950985454696156397436554355026416400130890742197756377907459420223237880775709826479807845630131423098516918767120243398848402189918254814923904513609572938368228061874329066871872179010316490456100455617860787953057232226756814620594187016312495183594794880278584304904173048894409385155360801948296862696116310882501505453954082057428463270051807742229382724759427473345947620454736505883748525556117346896746952034609990503996782238553084780256301904785616912877193844577481045480072524483271151569350275104493775819058028503124112575019118915067253898806667398588777055846701582483385155956289512838306548608448651171163547979045069740162037020313791868909180305344556750202480868746670142514585856138352519219989443835220833299441339993726123660410826295992244753973882179309410048265757532697401462962840542880485725613007362295519744516643094776224733102438026637925125995674852814231368577716647140839544668428361107112917384546977684417637673668922943782814277981160104996867254388329124511713342536208326903510384594762190692587730158553497374930521205949120914055892156686990138626676788225128090404594507510819488193081363831556465210990856016124551299315714145687816275553797403736938669081886732291857118478989907352511164646395947968721022172580344756732420361642461106320618406907642432361272991394630540476942052379357079043215241460957330199793502852822464871215559060854173334573819143093453222785277558227853689101330266233888002601666482361120266240667842968576385384799907443279207195050654782898919161227436493345364403813898777208223623878006670275835267458286175710060726942040235292194074404015285307703445647966607972061185235881922225530020560072672531469551703283322456854921190223956246023032094561354406400764140698849038899763162812901512642764532034062479398845929823066113305961256225529013293059707155756518022335772491732162952981081977483976617834738712249925919924474787351516370457394008133565947333573131123878926522542711125097902315746516140243828529900424175300603610838561096656963713528492458667986225198654064819300557731218798880163346425870374323381007903162578925261023784238855337424016479257529437988020296044426841171596194760155591103182651951562285193144560051850360806309819183402891898389778660138458301782302668101053609203148840834535172825355366355039409662700708392983185001427349400999747240140662238817394059276321829460234750933164352576163287108789680524018442850344101303942179541071313254721422419502423851741658669515530112143428291557515454754844962260056666175698816895192217790956975950153637648922746797813401113768994599113285649855228237665585856467836003144541885637593506318214516079747032291230520152532768553386339541257792848651203309805997115106159579135732804195134539225863362607144432884490958655573365372791174960447185393654228865930214136012571930825204772231790292905041384468706252202143424720549828216355057969402328502375223691831067770212679531483982233406534316495445983276006347730316444619795937294358853602872256687553743186591671593349132362054615944774068569374446059235498875610197212011957874151551818855142430723103824840589237500363396344362255153100180504976818714512748877817372642301708682769168933748277141770877198351826887551317701837139342623440212040650522741998306680633136747508600128773381122451973041951582538551070725074673181332299150764287538030791651360213630453264774637265151923023483114678912009326522864318149932390598929148842780527949053867132703150988330598932356613697142517222095443448807569355780112295232176725332448519327171915792597005492556694577078795298502253864243256236690411532298282668051647345391489337469092044987621566661331647155472090988478369507437789885716833090112380417261475340237238341268099757769389795557774142441355613718198505757476413619065082274835906218175123521516791080037910539473848303310521205159448238634482875498826579795985843537750026447744470240785297662150517660503360188665133148360008706813989211163432686937371976574223303380055625722310244642488547640809152891281759106645769828865051347635079453048087133487433369296081776015378168683466309971416811827982062833186301548168459635777388061572882794107859224328678289094794167845984692411158830838264334327855232012695810758986568568039959519473551332155114363389411680149611187425196447457399415860405787501668849474834928215025668935855338008548110122444752745513269078945700413556901545327629002833556697905575528557588542266214563902059725256892191031009760268578718286326575159373427749016135614806104201153924386076634361529323693796811962362600958222555305800550581270048537099170197170659967938223163504616335097433902504331450467937509012023787897666518664640225268128124017300970626495989848113764873572435696677028952668389323723407762859687162265075663657724576256070194023946207671515702714570086775271316194157472994410526500446429694690604604070181756440601645338806913789139997777258404368885799575047739945609911452794403108047234767475260517060633834204130873857857978999773330090642840562648019920712084888926357659392276223426899730894495991555836514989340637710047619807932216604361220076846924603094535289972318396060463521520786491952557307956723339009492849730492605418553497552874287299579663698311671480227980639598804921986800665106537600621013199500721281431522214888085344053650309543515468554422123501044127854972595370549393975676447852163247702580654897465127044936985513772378164723308258379394523607527466862186156507558475649084834214414120799486447195983852941039937777989939369273431481885261971454922271526179940741830030124278925062888643240369018500041392567028354805543178523293673971218847325454263824058184375872695843379406169692630748452674055205159580453702503233185214266228278662655238135776365130027465252378879535662259380790986948319356909789733058195361314137492471685106375037722653177237149088368462359198458833218752640239425253454850865551650000889135487520115530981739896281246904352341555240736524611333158014926301283609693689157078383040795743773563523053692730173576865135252827801661225702486680979153370605016912502256618006016423728478057474014687866614927875879348473137428120454274718590961418677979708019601969252830820449108177958268416180155843443471935765104054631753773132117508447352965916417407412096481859597776235321010921745069351892803943638502121850091676467291696959678687416294841979938251749119344479694950852749760686575186410272079301768296776900106242693928822952825975323805488978735230825903674758490440817997932757143077094114251010752273196392178588296502554492348017974565322169889336732949123020724340574121505701370884712450579544109033099492924238543299053256245886915435252331398158918849451669550288903325812866470567407489511660960603117087111261034724030768268629024278812490788087031366879475107874494799404720332391435743600275320398907564881791272673200053296378427953051967163367296846429599875589924083263394325671152662520368000792271555360066952146659617709509403746490200459461622234181580086021070147355804571208232047257333792965561781037554786008558030031377746203125150438221741219936879469111333022217426181975209272516613473972711295604214455459149457539269541503395021076082170084741100580243872702766697670499682920350777798862652911818403672712825932666930695322252701754637617458287704948532427931701425450919243877472084390180211011829546699436902111775211666372517740507541781592688222039977945219523721339633946806615484417968493047173996238968993837676184281934483507815800969943341000303752533006932986686447177382128126609863383323815083880925359588991477204811229732261756977512204737017709441101414022920276066909485175030871813394701942716693518711014530231861140906905117111256349187827299376730107759506436900749127935362676379639623359274319147817344505134332789801898025636460861054566110079632946707755208904461490549274654135454869292361715282350126967763689187384775159235757570992726086519989148122858448358240507643278813978840991060581914331181646627671613992215743347625529607911639218000810007123436880759819247439791253184959822948064655429364942169715887209875785101056969397087650657662471323618511988792496180165938166085721061639817385219722543962974807276171948872860226503023781531478036993298454510035798445060093448182836309485103359034353007002444223843198677573751386348288759698187473342985750215801576791474705744341547199182736249308406559961667019405706712437596546124846512161264882401586574423407583754564002620133979851672837828814099156945964322655857536647477007817826031260304399825891052339968253599396957749751017970517348944475719254120806473645281099102099792615361394437779540049143985656113192161170075011805678432471442293632284237252841345651348412917502937849275330248498805885772214115851981763238204373397248883977966881316244599956128214246306038002466933575167074058188511733184952893357745408404440262539353377446995732245897444523489334806008051218351644460351414888675114778008221224511585840058501043574287358874973137775243458988824896243321764681315991687232093847090278291297114972055925330820808787783868126191300079247508469729094163362930250182730597881337482977211956479796570895860092250951316249017575155463044636748829644372203964144006556661384541351432270480775190221151039370569451575303505004634164165613184861658910346698664443245918356245297674319237015657579937736602825913413659873184954943453875755562077029838363115809330520200089861128728737362782677662992189223800957947956780298933997940037460091590413982256876906569445431458230178075191918033633910838922213316798326805663550796202855962730251563105850897842123503981531697446290752180990473752047130280430212980315978812407185495024426468665220188555737661530745185586128480347878491372032966796639539862736162529228863498713343823699294172715287384261999140212203122048758391248064595562550468442794175428753700222360588541317611947749589601860805115949338472559458576147269006943481472993818200921584064890329260089691074174422913616133913595932177338635417582357536002881480862727261817932396943743719203235175763573455776519176489288770739824590566226072401710827103938292298668365834772673539637716744141458949876415351477518220850374404897169288202354931800773494225462978983915287927759590114351500124669862047565498217738279485635717178041898207364710636449621506321919424450401264492793167372272392188561875739387976842251471925137026079600739512806830250057370772708548969388373482402776562214081873023927573042718959507809457333720150433144101465667602814312093075124820720882896860557779508620440418172094782012602817581738928010256324628603282508525778028982211477365393901245246008315114855321199095061569784433816167662364398594324997173660965486682146128531781514836038729815112733931648536361792278329587215249165950923497594054034283524280577583502094408580573545883501228325779573092848500528905095883193251251137966607494523754378720544113996338593955814630331550686255550033411020168049915193543737030620910957095511363246286631051556078879188494554894933108099435929296751103442396298413812378667048061781434102560846542469484640369463250750645274556407248317244786851631584065705926760097711064395592593318175674512323837862471895926119794988552083699829840651503144582347591433253785513285898686843198622328712843856530989161439473816648130058675748952396203798895604543836553090462356014752366093055947600607391414082999816823881081535186807451813539776024204624635089429023050410385522897507613858132986150919359162803352687991296374641033706649049570663692063571502143780754473403320523701718018201302352679625416172219072734535440451468608980126275109427830502117674729511848502353100438072097186928925777731581891056300357786863947674682681328153395072432371978004779584646039124543070443143515578915346639946104178230406779792082655597552695787318001500522308134642476341666601580321155797294874583252512658460678844334663097199097910859786510007794458347344257057155455297635777541363478632428188264737041612704733840028332686476915880424292305347614587218440573229682886117555771396934542568691587313096564301464540197436166848194349202205142939205682110608418235967232940225249015057873750487290293784514951596508962178054179198130373869457168967867363983822279848575690836005940974505442179906048310180740683391349750957977074866784556847558028903038215370686173072499078478840822720218406924422353641030008346549869847441685845265878367801304645413603773275785077951420954811274680708231633687563487505601347041397284565436315833598752133665333862137664996837240596975232207505914952393719086963263655989372382378974229996753237319401357553288763296137738943901038919267146022030545987892851181583329884521873570225084223656448252721720078750969358973781600756150027989787862337400596493876924962069984639859618113003851854605864140408691991148565707521183279723681220061567345127433484087208814888966261284719811670856535886529861284957567839326862474458951799607387153470142371988144659042479957371446301041214261963532359711869015100300010948950324298355786296502297436577961801832908968316279748203599320645406055847611395089857008873235347252610056185032692992613788598914836467936127581996582224841375639011515674684058825937343011855526999404184049349701924544356612213932175986489945284904873502226206727096689129148583641548976107156174501676093646166580733537858121688065985398239859348888130273422319413870039279464028191143514923449121056544098908234700612232982552000470667541646142999835700136264212669794777888470221284104669247730837358895185504637689828853565242360003292930305467500637286303046005909336627665312327932829923602136917464702655505256486910116144038978511943328053019994848748897396719390822350462496472495817253370572964471377077327895960225171705463226281111219614869361468444721184861619755472189386349956066445768167083738526887049921320640464703292858096090262740171243559413680763923479126712431448026377618722627335707280462652783226327309292924777489036962082825835583460916556824551377701097312950448791054916870912820650160395983222923517147644217211765491076719190060647377439303071957576241856254560888230179426866084964975428251149784909932254233199561310245306163182208131066814319506211568686499456892248880310517440607446754772384322875720558549223131403802955664627588853120476892425949244809024963450614125226823704280778394776810404155646252646258815178209340133168740140383267751182944286354746448763215181370819695856581201642667940914489550565963263058551418156821683723808709655262431426059080278786914703482185101304706396451380312379315434634642168703851100618329110104173738707511914330042154269333013383547525139361783136818624552336234630813894591161974114205888433704255784518355963793707016140563415190872729681027803509125862184175384164632867708204159179834656507909124843223297609421612953878619828161160533348501438487171736236172136228227078895801384436107176028274376900673163515175112227704477571671088435939483184894133995784161304727715815073962133312801332634997866380595589999393488362528090801334576539976113805677144007677821190485658329892531099277378263425725809855187863925475517062798119768615158855206101094818543096151032918641393783287529560452480558405439214335546574893132690025632459266119538142158891444446589296142284331536888069565338799779044759497816688595035450631960527146561968716744863432893752071000454105810532637628190552064708771345707568281189250139164757117135958666059233527250130574338894131470057127747788294378910846956592467774853312365806935481272465552513517932739513928167458734199837502437074889982915947534302834589812101482689415930008920836019268522633983520520884084671197178470163820499571346410870059644493912263327238564750767621560047474479175394056383459257109891054841514495119923688498679892316612289387504408222699538189112988420236233841362796323878331029114390285832898110683510963297802089517898158953197359428749376417292296402867224826999590827530465300348385823184929288344067775385281074349563828821439911807137466228034109246747523551442891058516508500873773407175841099124070393803194708456992635952193429307736759631700058789038136644410951851442125188450743092416729414079017038760706283672221672784060947546496415131461666651493992943124205181316883696122637371462696709973855164387936370135109138589991945932529269705380977318206704369851590601244086735755775565045422664659770761103174206454284125385298967732524381752693216859754344921935351235856757143148775225596354352869472082870029369654194233115383421375845952045936934175914154048441706105045654928915382085715476871878669724572909296191084642312002997603656616016926002241016498589452101877215089146732052582438821836741597546038480635554526278831061672354321840886157688963642759818247849251577673472848517579990225412960369571787424086244225933435311934437672674212049362472930711252124267543587163590657698114202059273393074949055750892582798535962469459977006854308114554937742831563736387927659576060877441614333796806964473886948040926508314272613579933281681687546654604416369510657277569332066799359055610130342246883228765476359736462782948179567144613392629729852030577696504709226799285236475602894588852417114628612587780665329133488323003584683308817416923081666143925691738306168942425124755819551203682092836821822358823542079226941184818306068931381960688301358338673925492028877619625109002811986612292882438936038199489388376620863125244437455579662839517508631833292652692028311691616603879406954425359526708676763052689950723401285786355937141403500855483742375321213886354277464826600967432533746647104114260716238942594598562413308189303310330470181137119402860352701353517938028025452971052338070415282652492125312031280596621975722975355877821767523417653297041611485349016639762392017353547029346156538201564166549774165516090034963221462199083289391819472914763974382685342193016535389474950381083664693113920030040736741931539024131867303769406403579192775232068354373950009829169518430540861696243500247950958134565271407726986548198695486047542472521567771047789583892297728075651051228086386465466382008422225000941129937871275475948680802792350015170664821729651987274983561900654666685642511366821125200897188845362140379891718395139091347306394058044089923358353610552373055747529174284234943607245468267187802429981216178498755794203657387387181288158790434652888512553614034735797843806196445903703237494685393880867841616377205647092602597134188340197327255552005525349899404667448414131443485081112893466645869960952750419586584559982314302112092722482223786956100894267501005776362117033252569752294357189536772026116712708357599832327045425192172370651181316484836370463084048927354875621772064878810370620310234010387684340422840482814343277277077595199899241864124076125210675404946296344616270340603505995222366814781254605015317786237133889363514421990403452914388599443950705236169768208844526066193040738663445209796577914312837332703273010062868034935083728327812427662933830424307295806311561041049140223113619628943335082999886053952032080716570354118619681695391248932909918496116436898107404387149439903346001710826834292476497510392787666086152019517957710916017277615623013654675033540842454382461094003027997806264294496879612441558422288415187962816286275330318691179448670915123394807791319278618023065086360579062439348422471769460501525978152443486585073013786344375084147629239891878061335561850921333253137036892971755944400987102433359937831463162732578258524793264770019901713925898198315016981875977813695402106886302108568932433313031592866040698541094530060770173644391140812898652842610693342943781599724581429291527084416231699759557419920385264167320275423667075543795795525631658667625998663996811981302130081538804369027887568890947903818338088121859656476404273497752884684671332188425400624270385459642549029137293085980495077504629770256301365089599387205147165490071145737829441426468908037085593687329436250526996220669438148630894264004059272089661742960762942224204094537394518833155603557417355997134240080276803596233467561325784629737288977955076310291285785054648571135973387373811991716210737926354454128807726986708494353432989594105177668359925854695324295949773363457228934686310528141840396459161619929894156619208596753467487542155830883777351391348780789473364795269256347698760235042033969120677290109389022547519481734174036819907672497549422991753972024636932854783305462600189041778536465819873702591053000121721692749346818815273448279840065317139437145522943815208006013636707893490148662754735053135500245706502625492413553135465485987317504488797715555876459437520577234907145518388356483140027033705165414369793512379817147897732633900048719840608768770674094592990128557495192317430232092781393728812127946238364618169835511932335286680565802131041502428352172506152822064721224848937660917789496367256174682651353926612432148580246191751975112493139353039042958699552206844974438355379858492954684753838344947554127029923473362556877054668063485538179111711994286913981272395613222100922694819567569666194981624612079205655214772391238346505170887349520247181693060165296854479380046621637359022183161256060216751973312396183758813902827620354064061519271124618410652405880116045493310608190454033569368634526978350191657366780807091315899184594256841203816726540651639716867940176434561107179139440661187307184527132711308243857254921034479780625844966557630549837782005939415178582260399239023679566559899579977387237305357569166666077139415307795841970439580532662825471865067941870949265289009424374045537432553388980870152227930595232846032122147220021769037423623734744718398442905754660985563659955375141166272476563540211293338738743684910599776773102935504986744339688672001227964084521974062855297590547818379030282518508862946295488280232830085088233678023248372010985903096536037104966066210808935418710845221438441561874456955132926531859750333881848209655153593876563370871590997357651287456124078850784266580964967617500207952334548390003329560338477975698948482378410800730060425815002488505512510189476863136643441220049060557414585112463096902364445896336433431443485733939221865505994360560496014582648298886029101576864312998509092676231613825153382720731534323654057475932481018871686730869379095862530792724630723021805003999719084297200019113648036940344965854702282140784061037374863914226168864718717211810579538007301228131533239005468060001056367216724795728296213269692834097451551185460667965341065600866275122881221608624084493970634965169599956442884485279797761094850816465871333579385510903769782467080994816629037828610177632601646392708319120120416380867178845134165100425615711627754214182655595051087607890053831457428036153087181233995069297657733485127794922655605139936324718492394167811232841886252753510536854490555663621319983149679145704765014644502965126619004509215879040193551370624476327181665889113743586120078592873737179680520779445529516587762577829844826805824401270382113049072031350667059426512119552413759668185326521085214779040167975879386252752494757115532530570371988010641263246228249731931833515357170027445472658483386760484169910542857519168633352783084174444863357731175808142512621905607044773739896516382004399409168796381368995015229808499069674973874734685132284138973511932131700957927346771692353246080105681658677270309956350689945868914358123822057646401445258997474199451190262781152387620230383808211850855643437588636019155368897439417192966188456095380904339091676026793244591226833920276245348673266740455354537079791869455994162992957296667934052511356604250228930314934973097026230446709408744716829390881609659605713800531070434384738064654826146872765403824387872984712773706154419997934717686550250634403980150804340352055071895381550122086731574913788062313603313072766064374858468275752974699393363246469282353738382040988232209770570017476447483152258569517036268040217927523498551224873250611107581783648407003927452983961159041056008072659698003747853194515536021442839317218460282487051412060827208128575134200584825903006796907721312002787495553978247246026815526951965117292681142669118602649620358226692700031564994382943041478469970695398623655680210979154646237951350563657704228714170310853692569423381808418107667677041496268636496465197568819938065625030748522339184295629505909358960385134989388929354033920320132649494011704497452685030613604047063606862003867555760978780257704464871412786163830778058198731162346684313371804733620138278682374064538831224840084572547803997805930886897257216765805967526866426494654031487118300490512608242847520753896196254773748345209317876562922216526636962465778762076320888341772531977220880709877819117820968974736826265455127154118386370373902509728361151520131640501749551230132200200113654512194403378712140566708727242778933503199078202900340167252819409881076067646983224338969278242114215004898728983154117736334514531025253195080568367411131518947639380830581215052488963890611625623008743525217195086298157507928175582135918481486302571003320087416571159513124753057312539310286297108665589816373344916741283952251422305036187885035315148359052101183178549705022207874656349937810227185497805715434285677479937610854108860399508880199986281105870568386525939059347835114399453379460789234059688039432102918758906540850869401538409686466434238532437680947379866032353053577263503861523916187770024532323959377762205363247145302450527131540507076118677537556673035645492739942584677461724381055015081628249188081820238091048725997047915108029656685199397057101399853804689634240887096616925591474163370352005318758135568129916781980330488836661228445403640331608275597844997889408604968855590341310795478131251613003628460969387438770138659649207780998665886901015847186132520938139350004035427820892054526494229142079801226758064695000992648508663125211743510126726015679693371709378996088234385700516497284372925494613773848736162970256513385573009553844987100799226970991539046662341478591970562212874249233252526859065816687518039761232574593999180470800484203907256646150868252238443691671477674127378151176009443364744465012892394337609873945584184032168628889697789054057055100044205939524739891607651795852404536916561325420171432912303747435245956617820076850919284900179551209615470980614518459191202293035959546068418356442572737713327586860397899198742941619758274669123521629715889455186790862711005871009136516277148050075264737826726398458728282136102874714628676523484155990771250869913593241641020864046780733789933618577760560311649012948962482468270373335004756294933128504097681814757578249477704963334927071771970812542181353155889462499907660463081547438899189183040287034554232276793936640919007630673348999948241036026656306169853601398387809290411087733729698187753889153616212733048328000404106659270979477899809718631544434159203035038844285592602202207726615818250829177079932707925915656982245881912009626534118561610617702718285436197355736513717001026746196121456498241838895585048603221510717267423936526579463486461258875640007054710147595746776909963304526598804097314404100665984983875004210669815885357730588444136323478802293719325283284121040712479348388961393297995918983664318071893818267102259205132167449149690110610008194522915107535283079058568394022115884539720316425388642212256150266776701053364051258524837595149916833631488650499581920541016589927047216819841911721250516758089355142818044113791580040210565002437760701877730498288699102016044520922892765124433406724783421059834914469164607471774996227810864616943929849186379912554259588589940710862237448174715477974010323096186118481417547028238213988503654510792065545030086437984862907635903699356967480379732030580603782522249800645085530504323850764657866988155135626776767871656166025356254455083738217288679825056751023301921963324592236614210024708386381272893429411784136652977869908241629755636885921884329621410737202448317194553059812931770811347417587992509217526604507076387746607807046616056104112842507269561538286879107029982451128189359634505229363459233792314009751050858982305078912085303765965228540362253259504434840698434137368792629079450628391358552759618203623343828311502623768079704424066701927701378645320092849950484769614214217006769067513991580526679375099198053302003080097529457694946495879125935465012471320434596193446033493560913325618154165178101756110510934322038916219637083503840014754076379726407597526632224287009666420635196796622042743253247089256224536252393250349061329344485838263215185543835934613671590735273310473486083709032478765879041883689105076246333558721199762296568096511760026378706119375548692368431834961707771780572506406556907743445040517691384377112399366269029811154308312556592215403883133006419349151854712332932974419941141949267356083212195111617772261596643144558234642880782010700928521062457843542204218838075296570620503073249212035736523354417774798287171322980446765536283127936880988394063949359339670624502211499787579461880688484744206544590151201784891246611164688208399071782254395233856404697909641768715299818805133842772831112376093938187951306841147108053619144570293947688269072756848422278010568635933767830516803890685014378388176394416632558843890676996051818777180817620943091993555129233172279613346768329352031676714747548729518169492503091153245876521979094224917574455189330986801166786480585306684318305014378801144530524465621529707482435707609225434871198566099517878885865293973098359788441924817857350673327693872052989296233187336931339296160662909226428191567555375462329265534423431051113960461018688829305643285524912112514267920241087129965599992101629658539750563441066893053618099145728421279506426408896804856983688676553699083265906244187315972136759565898632156251847854191794643377453546269187998516770820320070472501691253118503438839868045245805696906176355006090592629866722440601277496183854641976215613433366675015079132541164358945276808979274945089704432447339288018206477095996961962722094069445438278085940362874684094650711605657154199916540113214775813120522538755252003889667172055031554049793484013438603461540079169418929118506973352097363085977360119194103143479096668732039550240698789295578963670518058738045379724519477650337431776910929696023164813700403303224571937365916027365317512570592585868451069736163867077557436757891602818129628601623785331067352544399730804135525623248952200913027500479690530634785215885020381385683284582802323173956215016336405375995274990064505640969864079593935301761569163246018388848915176098694925973731784267354977384720758870603591465854602335578915376007263392174228979412068705939140398124827739283470618688483554744148359800312227842487704116349851746273501433570631911689655029517031570510739303998499660389328030119512090058855720395332047992110631943768266361813047111934864781825336877103675258634135728385785117364975186133123312578847793172204737836708650052590672300574503135675711133354110119141049242178107883831925575946019101382575608909013835311976842542226827611073237178304660443568108032565054075730552788319783339394024602597884523071650104450554630213436799918234229096860902325391057443942415097270971611974270350998580615606745349342496545516900620777971384646385510098383561440488584267626318675320506610470399028945142036110608771123693720852833121449130164894830728709351123690149366739084790480258310812004265192562320019872214005648788423581420814815571547580914903479549178195525819640381569916340312354679277914139644471186620498463301094664239750380836714001936176108020924077237087401318174237338989386931608486999934440385781116059042733834808097985163810926559192601506347742252201177390384755885130923391170709422493323724758322164498033147384718129677271556132511346145961043582543993656400039117403891479387168978275209129389513068723189843007205398367740053814900664798972614756417504747238752440699421894896860795740835542745789623656882948227265020257443713582048165105923009316185348783440015173251853327195203036959488737740009524678292335007367935758505224709575388207677338615159885437333606689042612518862717440888064330579549646415317431148147455287069559287267300575112322877829965216406015742363513416137106704653202734523312923474265865420423934296340064663453047960311936727581030196364231253288339353581161833781743121595476006739968077872181213303981476117134454755527792626667282464352759135572593253271085179569001143716817146215369976308844161609183004423639554378892077526951535714152369746548988347670731304664819925976068570061234572771025660826857824937236070150461686741847513047291223541655871764152037997931086157193643398116802823490213384713361461267713066527232796310208120130891665800777003768530446486778047655565744822096255962117555616307141011798105069207587831314004716318566173002719725411514469278291362700905773981267270650793515023750744306738221544825776029266646895360042743681246867106839897752480206940372307906846051254094687680170217839146254624211121176453697503871376130941936717360740837566641067396525595686720083179532328245979562774392379553426195647652545693077249373346604781849096202854853928335975133561445633336692864751458904844964426375974580070409117037445292211869048901416570232144213360240436630642327880588780167175483431585653320005964825879080693254331210967546787645877430921311396555378440885700955785278046812466349297088935874621657457382239902762414091746562376062305759333917908451611177740343660957819874934274665787763231995456467987488629434580426720557187698801837617591196001039847521013409456119985717275509932797825498162944487201295483541159452042617846097966645649807176964879517121460329743650228134194748391811234149258222640700262874997446217667622241669345608762635018222402178207354331868978468470188490276687342699510598383586697235514400450562795314683253176640332126280019390148849282830145858931416525088963968467667241325213021957833908992910283557905579811333236421519988005958624347575978002846137236070107502675200546380197548240109395250851848441074849452936339987764432671339804738176564164422552198599883794346905294500136311663223786396623461556729650802040711578117043941854975953961167228315305983473968513507057136218607443645430097951411961678896803292977623744497324659951485704849528042404121601993790202373777554645532401342517514373521626950849022246166267262043811301635418735961085076306633577453351623304697904832636804051217329612057894936979774308308886988642506788645087266941106218003028504956153532815211790867998175267146878333038706819468347697687063598597517254179178474635410806066585241567290404226482130664870291445001563826900425356794334530644078137748663997008918144754080101029502139157563263238489077662117252260521728218753812387312037857102958284952828225895259274947890718488143573771692187238120166959325825099197968294609382602587006769295625377416026701018090223004846088842553126730970742547971769040333494946832680969041956877409325255049758740094296911624471386538223054414268456593060155701727817673662356967872645674255375719558701967610345611788075053883616394531242859940400403493332304628515536985654667888239302697836784401646655663120037064976907170354472703347530669320490714406002468374582449412841775245368203189569940795425542814231769230674056350734744328136313332934379007072204597969556333672950553209103552546647334902996263799706853028210595767512571520019301502831213548872514122203470987648575286949370667544400992163812870203513631849796117855923386818474230097383972555914886409873485218704707783816472372238037859346501384379565359222868981437895661017847073327733641255481637233679559109575367178345370873540336785021600117108931031388785514888425984046250532039778439274321365526653431207888000453712663710107184008235824148153611916793221558381635063816256321369271471075773012402695236275950796778229173662447921295105196221222932060402891937193636996350865298795406198580647566425604548332929311394299905678329509345584328918530704432772087351096807163242609455925505581955140985742061062218073727751827352192744467188677498541325993280265053589455991622310598901908288964651402629643834766018561456533311075648129044726172922574905476764089319574615472056317209347031862455960682837935632856245818956037941034878896095088450946437861140175411193278771367001292941315686546145294810736116151318925553669873777048557859909258402499053310532998124239234172096677876693776953348179527473475641206078888806018675936892191452763722063319868281829221953951711236938484022502737348121293963054662201758361810417340539536967139613574034838012971849447560503087684649985093168720332808682784696959277245005862923454344524951334241729445238539688216214830151697138881487761652598899037550455072340157939211188963104786324854907216125004186020637705557599038357716472396834005377919788417021269085796112303969347959790683160593423358836869402171277335793767533113864810361151436196578143412358875026820429121043296277543391632231346028116834626314067468995964267484478089709904167901624208011565385140353917182066276916129805015234061666773485264860510924094960121110952993437970913463030571367282062132828612371355203101234020927587455549352654606953975148161561433354083961831308626458947478832122101315733089293522099296535512948373982519730160841161248807613002443175806928031427626077880012771290316480651272452737066595509178140036089123606167936637441945594594181833963127981926406156076397446389230499734498311737747345862698597313372995827287737185960573371468178872437686367215434178917876058887867157078448276507189542999519978682068808350085396369729009056881670358921874984388935013947956749861482778080465301215827381264290029895906567511507996440002942968672814439907956595398468092115676125107877035613136524068180951071960956529467786592321397764594554723807412699006638944437231514352725096019615191136525356491582447998951097704013796419573823271208638783239697388131964905130770905138755720002532634739953658266877341208485484943801127857587598897847517041599403566987167093525603851809790956175548896776688252557846445905299634854520860246912752755365403915798528593267186741991136986729772069482708811344370213399756945547747075734421282092257970033487014897193632194947666855816256354534847885940186681520096830167223382873647830235086095963444278035904088634194459052085588120135535425667952372562461162098294586130208390805990898490547420967511157316811008304240984602166878111802238349123124260402881920226919078133942641992200975369066203472436389264391909088670113478365267113308004091142896971404698478138205876478732386472872861977249840512004719219463591287154492175332753772940596705427503493160329551559748689348945688758156725923853365945824307041878613261540463327889763937473894418092897153920096314175011509089813823152065857915020050690630591159676674827749799521436592028164188240829248470843838117799473894259396551484871589526017297263655902833841744479052364764700235602624928041222755116007540764643744778363403752177266121862188617871707357285975126245631620635033683503429163098083051517622269408619608652241956794144720513373658043420030483392713382339175504692941535239493669242829104160137662505990970167962223430367098022602832460413488481777769451307839881566180429128573102502712769959957870109787718218170998821517696055166157346506796577694764754128657265180978792571612426090293874174702533400701203921025357770608229955102856096270418295641718054417508951673328058270686639472448223937628192354195909009522899384301940284935405092341581008741506696314770568196358523102442931190738449291010112970088894082359084315107676649281902960561850268876518949542432606431366558088929177405851633581683944323257229367646154781388595215129769219945904160674201359620947051020944356580652971913941854300697506761172560794510624513155916724736418599713933399580508059127820878310930984639702347128578156649983197551840886179936670893673416108786476519086376816182997363219943786967072825503916693660282100804073684645656448862846077054630508698663352954396570254550567754347593189581779840508450025396893641234560708060790347656355816174916529579066985259722411006753984504997868477669222644342914267921874095472008423044912226811261562580890914640939393905880043026011349205455183592103691243732170552238497379336356824742345714248576949975892206153354271102199818758828159650057454197106427288927802768510821969583391824788176952922989603391975547383008936477286079974864689971411495757467632244511987929595072728645183556855479392647902973083498799338692657823851771088146912174922414169703156217203829369283298265139852084827396046503848058424866963565119789442408472887613520315238025799578731258790052038676253272199302027212807155591045865955655382918775046635390593465842167343333077915467918050366189606169957014324541613273354311576426891709052203782140580300267554975371512368402448181500137112778191459062108772170336073900616366455419925549369997833646214162478810259619348956189188125355295722861599580704232148453910593517213968886207226898392548307735164681342621542767029947532921948860581708008718269525467875190259201279702981117036075022618452060199709545603756459056472052283497425698810179191323850616329773780589589052331340646294031331010583463149131607062848738872155083053993384240775477113573762459001544404211864393459675910381245219554091137646230188677497891512278652227295395344162714754989820750511935556418659459006987716557063681830319503863552123513208497945559413738691042300863834582223794527037934732615451527341865053116385636257717753904776643228407165083398246437386422227754389445611488040712900454933357589680564733051039455634348630760452394118524709525841075941955485917750962401988570774150102890300545571821491798574991367879987292519306795307393904801675651653775266651980026480478486891129890201023586167985833007743549270660055921014239178168842892808821094739228647004633639139029492415525485100476452379564527107691028254117092414910737423323268451438100995702164156202417738381405222040079980510435468466854572316219213325470686776993838530531425083253258431852247729463553323576923390489834417559932367458314076224190990882524513210337107715834830506781583005452584317703607321123442912392780827308943977771990052951306630244976613845648191018220454580953663388374343588547621608992185242105538704892990655212885427580020894056071617577071772842848510300388079288494661120432408529723338840289955568129560852594332251302840142965224238064768922716797776342574392719194982427181178969354506355413218092034051226545728357242994957012137349470863218453540980278902268958764933005650039566997674563783684361230821896988376716837966652269133473965583148932374132901477086674367016104766594199476255014531815600623919300824953449952556343859457323518993981579123965957229236156294978667783077597936541917591394212303516784589791312964361208620105799528604843275623056877480837530352786881618163343796878622448566813019181476501319908277635554396222677952557051617539093304820130463523629975773388202917439494711233141178915999639921083670564706481718062023652164337402363664401286896164225806943715222889681823004582241852509284731056250258062309990714763599650889915777558025633908523654367282380426198187686414035771574673799266559084952443127755913024566520011287224888875892732417792248147597844430201340823929628101795960082489756954761292917547189089749124111833525415374287571857743064855537226204204889566941893342591281676969672199094292052961068797170815877471936644012143897394199631375551779373088869615914784207519810379554986042736393944993206246703926510492801969874747936230449929523488000664117859871023608849822264696915307400510121074932950284519589912467965032253455966654907140410242833765270433221028610038902997952982375434812682493860044957522350538013184920551940334228644999269266949271740301441727457025066056078593407872042771639835335906304299016882750556439472538424786788765036241851348553568215322766378339100924290951819870263243468212184007825149061250081277907511724038239332923483363840911333906972112626021804258156304491923095611504344648444734767674101076657595281257644010100704277174625474397176298174944805247496484317516220171054525303143700756383080217914368707177897716374818436553404209872702744351819482814170103611158379399558852307440023577146085105414474342950495604430501963539259258973409447286009453240822874422239913664402616842191779942956577940792847966869207870723438203742707588130377361882632955730387720480529783987191680503246215358772852577385160865298938754275738430532137482545394663330037793278488622370913702104264272121349499114761420302152232079432428671781113613292387238067265115915968727129036839046076554133079303549680700186492853610736900631270497981222409383479656010344963805120168160034744422947579492258174827504722105037614437720179164200638641006915809836868350722116730011675415182700866187290970530349209009350724221053345020754501084656887361268174435694561041900309503875230630106976693917009193549433020433797573652678570776935072261639101037580721339599971812088745277166228967981365201289370078328800974837502709225006696171141868997201804762620287968724905021832841236195018737451213783770298873405502047668430462234529372432431313767270935675152924343500080910479442154534116536309767246406867071897315309538782396517024413786758328452283025488313510952963493223631656236896105999295024314867973769379051618540228014902436539134515371066521625584421529575080922342913617830893109887624026749279611879942524722995958101542458767405549880744925780034435165147204566139412432371339720411626654335739485072560171437395004879598240036743923273783872351722191560221218407385245540281114533968313480259119149564370448660365520951985855655211408122367966484977523259443096517504434344049433509650092717206115061306500107647285265460888079996763978076985215238597508022374583291415257709262839929775795460533126274697895346654747356463403022867612569745216911107586825180076823698636725963977206127360370618612657242187144485527314187420592653204916347171396012989761887323315732217983454271280654857212569796161660902630834067114520881454567761718483211629505895908575246699756851191935117747249000320871097929170056503134805918602272279684685618677453910107073700992419637059132028864931556887416216920412283314457861856082574521741725308822395859761085028074230995450478195279968656354615340090851631741116727569384836150094758308755728292966647624378101487995805301627940914262994186700464301574666241149350680020376047071941494690775407466058329174559312395850299577284331523336843345012308165375363109689624768563334195733716394907444747491984335578627564136046873208033136608376467579273433112355074067561546436099022641055369887827033313289693370527860455871879670885857573958585267023524534360132636532688283772535268397419209475229012098321866572417916402353160605426457454121964114029325245786127590688787171213209676876770180021924686683300931632639300377883481038632966228962360280729356136874094376405099438136659604644019730128979120692904624066129829580469645980916107479927701507420873021675086324736016410215989591757775215252673179781611720615662317122224043229270950824901267273677981676380965624846593031255781385015020189983869603531613908271984678756466351087255942564802840630272838076140060917543219215510305901303302481200068560935746186534544028739279436403760023074754002676419648319276454835025672551502777862696934377748689993882077053114397936500624294864604672720975905212912917333314405174453124771820972085893869580640900373371309791363882336427755171346402731567550500131394406698009412835408118571940310128264306550879905944454911713879460327742876690063085323840291513450829617258717107890685164857086715939066206058505025708136885451787702827003913972409893222019563785292482531656620431388292567312090418945438824355225178323466705992319786911374046925361610966040836945395399031947013120945967099102536601783018586699391244971606664039457045427314078145841059313745872656734255114921518513444575466369254557483891195466335896488058536869062792618319160695374069199704429158275269848108506980632385013449379627607497360916850345158843445996547816686192423082768262915125167217616027777839825771329255387064626953459257524817205323092080823183749008993890386144306742190797297235953395514717010490998516227362422310433398487100156375915990671231489400159842819300757407258442071930918112770299356555084761352674763227458228327638851345726434952661157201047390777869261806266560029461364491832510595223125640409809731390803553612039296262550346052352920994191412025757018319160278501673619466831327402342399204437397436298169370315264863275192946285468276308289720480893226478696392835077605555115258918403055552353695957972051511445165229927402314877463070881610007780370949059086680946021994499101965682107967922524223720779569546883996264879548915135416748871770549802578114239842555441577689802876429712895741318724813264122549283518914061371418994870625591822738252505221810947171820035625773325940243334187249509241834659976378690191524221715426416860910261660911677435072308858923153213145781921461560059349307896306200595491768792859369960123734036433450183419562971414429784239286293073306005679688228549708159609024800919979714716054459286819075322877230261222802183159545315108880633674073129410250477043523651589158187435302301185602158272863682974509794047947958038795454069769250388388369873413507873446567466519497435983682285718301941485102411156118463243092825809360446223048709408650339744894015315596061470830052665025489118277287295671605225372452101178842128794359961566384310765506169605057326698574823771212634420262337792275581033081032131175544411340887550235101609101578763110247764237091329336484641432567522898910896260101435125527037693581663310231580875508577616575052339638929162488655886553991464966140848495337649865369076913260052845544777771955635489375442011794640722969285158949206007512021267950582127115932453310558658774348912535997540068729343660729178781597711228395955100286305482020287494770189015640424956770613813274182359794989855970672714180592864275764867300354059782788258743703423899132824706635774567913091218113354333544133010563217723870908885376190539555171038290173278010351549292083980091380920380934033729950347488571166748210546691547897226579434817066984640513711680966376088807147811964336130273393962577436252780373376534073587775558403082021035371897798247085962915000696254114572871448900801019577008197202318891678594799069426054118984073406708343386883028057590286555903730899502049788809243120035796012764617617885936438426318973662540941443922435144104855135174220413971221019627235443947541696809807213326089847794005303291553991379135261347466699551122841013728758522309792606596317162693283101502404191571257227775305302861818456905825127855229537476404514999516434951587368067626427425000135791675467323541037811090457536868554811777397942904832562930702369943823518155020142885975949523892736279961041986925904362595604762172308237775858192558498385421384743596845526544710438147090883643224913059749000224982672950651157419102115226151064089791603127166484790118295142712731964803991451658394207992175299094431928588209752765473565806750209165648238317118482647277300580681528581329397303741312104969466774205321655715194992764543746173859509824033526439887918969183541724205107574767089294038718835797481675539641907008107109970620830604940907372969177509925604355347339028760489632251016400806274189494051549040123605697102471634913755831662527122270974861509980539746669721738227518024387944127012313238311522740135488266349403172912088266775381242181870894286226273254353154337530901766915423788645782043719022302624712134265306071246861698669438929103390859941594769889359869716081388357997732012534337421256202171215968929642933184396513030831784049550394749911021452796010690788596261322546215536803767574871315004073950035148468639861702677691557381098930543134504601482268847106979917922790869985272238508963483159715435956929681882569572752955226662453710132747878767949979131315682212734437096346033213287458861912301383532265382963725925872784790440999840516311052607339190988516061362463767640541253133807399363394081120216300809662128510886974003530659689078377766835694429746095520808376234552913112635556593161014442952212963932562449824700667685572264466971756806547521348767009490482045226242876138597615074589573112362596772839212863004635107005003530610522424026291572734094348460188597132769226908696796720542323155527609886468200417661393774926229475203936822887050668798268313272321675733280944757703877125846041872001698944431776903469959491579802319153532264777660688839241597922657795484641604913101140770772614044543732169947600603775921164089479168894828993159277537320310679823369307855139308108089192474103661359460651823254300483639081982347480299686836394683358681012067876540444048744879528626814599007837680892029795027963675480763527899348081240195311110483108576238622405878696775393652011330504193275360484640232982589674765409248704336820643460884352428913277773301480601585224823171536975098450290463301243921142221517768869405371749836813299161865100812510292884882724880666823001334367928799911188110732299410333218721530831053390816187184101959812705992348027551947004592481092461885688029365120302453726715963139940359593132642129277850608873270446600797521681190259063660423587893950405742470140515675048718356303498987618371616749184114092236463047423712554423719220214864577057077473347116036740982248512110238757837665420005481690436093009349600831233893770673876424105663640256657655176270426960975465348554335053962161243240213869823972514032421390928997852094169161204763828578101266585376110879546429842562241839645211430658238093370031577152589728406421462048430356591021929031900451915121027646998792815099391724716589243828930439031019866047324449123057196510811156505823673300747442610324893457873220696120946312451277400787433357308461533801290777027163776364394253658947015078026547026336030067773747928246869082041247327239704714324472810874870738356901787344358899398888126690783545218596254920561479969331845561881288256711567862696824089783405549277802168768188941333733020904838885431161836991027669964843839625604503489444887444541189132685930129323671221608145860353100916808474713838464547193034649845639693950382138232841762246014566036822085794547762576085329552661003784280217027830682824398249246837365308206133677289168946479792524877914768185251589861085532452264868402065865935139601722129851736646226279518033069648572742030624711757023613430459743410905340106516881600532468280866355142704024152317027338903214784076021807697334641966900162818038970233176367280153805827159785661954617006019552623351832411168369099803767609328377979562953861314545250015872899621326628626501113951512150256957010423498157149454552386787846185794347267180500960401747292999140783937150187017550349279271514409253348986041039090680048611998446748868812493173600507896321263956418712895769635285647474321286499656351637296083628651297972281756046552785587327098270097572815701631857733059378343615534532210792807909712666226540027934844666646483814075760456198428125984654755159752828792676195073179322055188220344745507236584668991948082036142296452654094755347078726949183219031529929953639690857826535149473871041010636304484458653348316280542323891235451628467571728126273436058563198754851678152352979176106043643407897095992894888161929081675750247836289580515343847928122267590155448438112010926781786719383111562950216918428529128208563174373375327684749211415966264545410845062667661881537492245864868626908466073381353935868405994166575129517880739418880756922751532186584451520967353269706526241044726245360274396606928688371806627557479827804499548233317912358944391588899849268220511057382334363731890941360840818724463905071013965217970768918074272400963828050021864829089843993595146338353860783927087349666271159662856472056411296981684404919136909061562291928376782832544439831032954987769269329975752291562264161844898061541341986732764390714503884496664323489846730443828078704359851332952527177449266027854755417193059829801991392142707401462379769779631373391890719610060820873986586725977327645234913484489092104224543672504360393967680927259149191952464826968068739362192136685613701727268777308712997140318876611437309360296797338676823456346889637062755592331290318192759251270551204555734112741767476310854157561805316163464133249679403793208549754749477157827952674609231108539793543068201781721218646295867287764191430894982458680277768579522411858893349278510479907982540942498399955250689942698182846178586618620025272055011175653222780197542166409628705611077059414484465606643730923535658150232453552071435373169588453255859682445115839576723201596902769177751743934745007676169312369608380429572750314777859982110856181967760357466730404949866717603132746411822774292213163214833151623053196365102862913318689558514588968923171431004111681324397822951412336886464185672863846298577091248620048904993786331854353619409671536161748608156857109311412562712606339221041996768053488739327743667019210899941055525974611636310158912078491253507852158553953199804419184907050938447896330668460305233727262577454011103285521409421492724583987940913151113960358978754374216023515460745272751473076363700403861151537713255566017285847708343397779669243944333462209077407687337461430698972900390228479276329062243832304351198088043412709059169303019332337663810671921479219528431696138181392842924856449997625091496113910141446267945433925113308211066741590293236726340159983126625276502698595326283083910908766373297780126519791831591197908837826495232713894836360168469189863441028221267312814633837901395862496887481480017729125353284575251586952868564368596883450733848108677647545607642589212215767870097709719697812997952991372588973257130125738816284048764723771826210550866610063705724704051273240896204946301562409517454100916091840483650054064617662988747332785180810415643827506588580090490261752758104336494739677995892986751608472409344782636804676615762494359206789607834764731175699359606565851126406404074346515906804539013538190501423509761115463127726043132642394393170735165025100565089850612468057695315561696889071904132683611645695237401988063936689569532685822999779040783595681094723403115939788618643328469092816652886356779104085149287931755454358419521721015487234847804300069116112577869595261071990788724128687094037382670996786982794100121473842367600107043853468420560097482827764171805126417205927829122776400167979816600912105403449270864591242600571010538440491375394285202072293747499087776474602263194009230461543530293542003842603857580793299513645169804755836551264268703216566120439044242244290515327906652740253863058114095652033435054223638521182201304340795859321467495918496507703548946358583156376543150993966707512702048741980159179987584403570691931162223196694840569728021152938961253076987573746343212813845429649771907664863492400418182072468540637043031739298655088772104404873390403657356169382272290409554048996461488169616615465810411719258624191411596764124045673664186635448853473317980574788824805301909487430034264340680943825478848509089429230767620275643143587043791207955776390432431361853392155307471877309280889429711644244742090277938380339584097846866707622971332223841689385454869039703770810766868225349812519076359861298133855109713323467016844500745739205992761331483022046399730557853514427744728519966096113385288410250435642780199812553054836101189055892983871669841550162234253467908397334567794377834938992161449744258539631935447365626621839926880133060748961224133771151849343708732141690196511780796931291457001481908800799639956369515640564947901102103477176397325831061931568101328995894382098462901459306909002695256067941253656698619254833251598196783442121836265886534102789685859569487742089058952319503059113378671078718014060426033932277405834165771314106290178297736345937689667162556319654061303957657788345757161247263243705471972764699498999021796553857531459661262702691645401483438900424026446008829326859353657693463364105696585420370891368259452519751082550102794683837236262623669148667356018379613962417565539134484143730440395929612089839885373944255984979339942826916605210885146753517346367694973118238589877810695381244529977704983528101096197215659174645620275239360152861492398299929606709469289239591534205328867514019496910743211943092688000068748798311357006471519693913209035601405450832528183421652807462411644682273766926943366849820517101713962491113859562302443215732720265826499271461903807363152331666143297929669938504102932984127302167846939272593869042989545969439967869554803613574446762714407851452832405756109600247942513229696651045250506875586342945639811901624344134841437825974552467732314658541877565119521005999879506940062006173397809265974670509020269860554810926048757462593191927770534063735558883508716056933784573149143656724245532998214791209736452559951517247336753300657573174476149851347043743055158032802283420584956610915225869199806130485828818621492159172018593699359204786228484568515181121549625963819944309630374035881517439692111079002109396655357005568133925280702482306445715022248495578674074210981130303347026049020163188405374118316108263002114111012392842478423517825801052589829328833508141506105498418261791445176592772848749739515537726212541336170565790826607753594492249649919724046162596016377484400914236188420033174758695181246421971564216225595087038912214741062703992673042586030564347186337420550942352487144555080042022555003382672983968888656586476881757876563741297974242566220120576965854370656405870599427385983283530260703257645471732119772932764497680297685956791531117352574991807828420724285532750822309535182766443157343194192798119122596165302772964192096681041623569252597825364157118703629066217955747536539163115697145841733475264977352129901822392763180926679864793021271370225302164161600395415967238438302318633155166601090768115830471046993196320340301507517299239362486492496847181080359184840611458305625093797398265807708285642505525934398434731477285198077346380724959842300573293089263871377383191637438426213986631964832900591729112021501080447538539725792709137141989708134562748952266581749106405900862470136946361001822189663284520386856669505901746718700966094392796237248204703583669785812040221665316887514407908111701397954042469296147598126739388110755685544380197217548406314930179098133673263961587260683483013061095249768191073134789382971575073061293734483925819656681160351715195712825812858326516835366029161052802536011644092992778020071738263463069221476826417702305881880511857142846556483920548632933827541079476015191205584054394086774171050036487730866629453241532894855439636125120730512750936838839179559490497077563316043708862473111191938300091887075991889983687818495359896313991960325491708386299832100190893530109562040896195027548738738369945169987889374815327058584293468278204514113734086811025614571358561331222881281022063887243482110388360055194895820799916073895435079387137521585554959116626287162464385285023634078236969256255001126393220531482869051153508359725103699590346169868948994360551591259428490726647544699906557324791973304657618627338084900180035171460192016908719843608220422623091836769736686576276976724931212153312693203639702162342759074553176174257403449955200724167912076637550893010551317932871432601206383008214866032772881382445608372841387926000718184937069147497024887358571445352713176771209460910080089788768978078951391706218071176064020435562516563272207649264704700021253521863551348782730301026828029572579128210063307329536916239012999571418755314505982032330224384576314136076414218474432341182871745532839943722742359335162775835851512868967608562451466078821772975535591778912813169981877345319114908374883702324969237439099209942567784622903704777942269455444637203252603903838064438054583314069954006874198738260852999772172198801548051376354835769985298000585653957383064345035093099352149449396968755003738718463201793445526548560543564778885601234223025685934740027296744644087686215997152144671735557708293195711330130984570230003411625776631490474054842180385906429893040869539682554555957479374329176702495284382970468055022482860260046621769434264369381097333220414771617395324939626275167764862908452633335501607394321847185584033260359887708502374676923032606422341098179804292324000839459174941986132321445162006115516022226144087492422727634315043606065069092076382457229648532873815672013842891884728547853537530569960861377626629167948358969780402800263027227399173832595526255475704206218669298608670409330164398463972633076357821078049920573354061880413517471077487909259269998758018068462453127107701307784222361166370007387953300685828251743143008031276471772127072942516997688472165085142185594634275955968937164299499590085262683123258703389861648971727420554801519152859908576845478878952072216215516377665872565132114622735554983053837305739792832814039321383309440086388714842321620203056999231491724184861003489372703871582735568543875346250390252015297721609143885009249583679197802995072577399033227944336849114181840460791618308135087910265902607646225286227510342870288938672661094770412660297375622824109319552473092182831043554224818591524003455361631595368446143177719518156926387101661223716499290978245535569915218951165119863242488994555675959706887119509391611342484318479409657838470235744391601700432682526994677242585006962960869971175903138237161080470174720557208978056906388264443748657175595173304822936935797320200867979528595541068012667301694517293929082863748724422411998084806748437907680962519312306449701068598843020130103485518818162867414029106162169391763414423828664293313521738253921824126943374671800004465192386362766552702736104044989016646675065323776475543041555841408822385353125740570178325477242256889926662336845715089869859127530157877851342323254030349851061564107521133451304587214226565362713950887260206592709296959861641260975157330556697641175409309573773679587568744680584827016971404204266256376247795802151255635606830570405926319517202899744433511615396001136430527921423087852582336502773648335541696138386752083946621706830608330820352634136605190781067030823635697402516939461531582104348789813153945839770640742840303824144626547852390722580175507237801081435648520065878531750497276834863886058917496247025314517484345859224023912619286940595900639630812687493108187113208375502814760416804516528684396144707802093638301624397859802171688254918659415404218943716197005482275306596433183940763512674644077427084113307623681979703361209244270204741337546170466644675015964586095340779141434636366817377590055248603562008741063910948220835712387304251587142348930785063037543074951622324460508426231242287137178349699032121785600032483398852554226577142188257726711470576031311867809267471684478287303469415639158733351738849631422914046342109682942640042853547898030629639227402125135976269282241844050442375304502247940809487822853446049789487115214379919267591026935392064988854907029842752040854874261378819809967075501815277300518761674421644346884546668193785269362425300690776196038830577409254039886690669174304334495182014127052687283052285729465403444603720939903812768280868818943396121187306812889172529101800353453095269526275684442719939448118173312029511545818276128363005909279691995827175969141027003998318494946948586985046042579985896747104968270116209854518008555856592598189458725626310742087973212760755490511978218877050603730689210048233660607573135665533415290576243043256119153772164356806310432313686875592730073821379462471475430774031425975344177685327816490890339115869803304097141607954541724045801815010488638676019671821393439665711393893563220557310830953346132143321549712302209152482241025354321083710844351668819030206458946898518845116853470510633134230892702413711339362734329861346837898772058823143759661125813902357419901313879380335690075762475782298482882974455969689268898126253137475042572962072817680557292599393095076696228175777875980473208215360137086434840375513811407245198626776952064533974548734933798257855306171249431248339418004385546617664897659229201470515433418739036731107224665826681840469995762665055866178699970065656142693496568927644747201345842222495931159349686023801480260962357643464680841704094737404852861704036817407109492144646234498995914462728026642602819206252679332747761638946985122965567770967549602890697617119494174709048200790661265390965826926345001122211883036152925366170046859628448325749853579807911196116244900795491663777955267529259144955203555790099499368295829615504423649673320800392441775693334079985296131565184781238815547178570737633046968576080387746377149137601520773579735108774444494647494449303584809170899217149656049576018357374124340798952856429956849678176281420674499041126791053514583241935606247170119838083489766060670343810807306187578611695623155375777715660461727583496110621540194577551648600646163254499358103910109570239478053004218237954639837618021049382782756513727019060065583892752663410894746011097927209773711648581667412792569339523394736411191318447111508328547365842829892534927803115807621281604831263438725031189756932240951905071992925271160662901246650887673604119644085958529923180025699418740636652291919981800398981950616008234270899558943446181082196654350537174136662544287297106261177489219222979878879224603354575386893986895867913998782865650985414678817121452896331203707424385645339251887565964285167656581210896076349549970253457462844561148501233352876829511451965583921272535489293918693216939296931369965898438750676299148846196250602861889191583251082550748333926984700328636153615799980994202024955835129618549381327379108987838505158772389402388275363017969619040130710536849445069005074377641359125669309537243959124520080882103627391808619018515099429807957659920726634854619238938028376527937525957750846731087434230066679841829573191237134173006025594972015340610631299190604264016594668229805672089953665303605538071274044656095558788999851679609477517508199392423497851529688246816072277678377935968116858690968854948305591320475772241589398059630856534962720030913426397765794179182366801181589947251609429428843425300570235218400807795291036746868602876787992954045157830073596526843531602079522400591782356021398189179840599373891836131037548490578911472126626845506210905077244841575660711606916788196036945295980722519845185953088589241613525250150779518102629180687212192474552178564531553680324873756252092870233715116304440011777581499366279076316466568633043535847683541981504881087503341423908538215808634428108427163499976108450866340649658010438803115441732160469959240803263631776332597339278099012145486966953887218049277009768405689612847202584717880138960833404209683212164799423629377070304046244391816485634418492288286699618393273190191542780257093455599654917172990483991072556255499503409090906777350749131570847203085297451453278624204022802333501461880587386632739254960991650703483587372958350969147871912427549915783946231804649910156432994193924492908293445541861803672571559778196232253388683467899407694742777645399536956795503075475795631844413560735041449747332429996987588622919577539045873331133093272300426109701037968648761367977933802311859000846319118696705670143691871246342041359683525835136955044037926727385002265448649009283870058148678169924643962053346733459206422728381696859095424566597844338873755064726441996883873570862215876581355103836696062239185192708495928675426848486921935715126703356196064019409582161591443225999745088244496247177198592569050410250857671777345851167333920953959971711261389795607908648007410245704504533158782441455449133596734165769934147749314605306208229097405122153120747688589404817469135391331768995912592533541376621564820597678753695039692887481174206876235807936754081103347804881219100995172636270515871295363760758475796494981114641014768327321636750432767267684687411646780410814585341282322792584481978071686067772457015539228008083954609609591845462739001859222043419663684575407272703188367512413818529069869805507017734321619776132074274609860678776039573214303011518542776423361060977155480079872022096704449818990939404061413215717888621691545069741038287011679961684959657144225601327263018541804420580679749231111033099967925325368859052221877283417134204561637295822500286896434305090493610817271816538605395442472929411520816089866829903972023129728870279490240019456112238519802493265992404387550387261063378022570517314612546342438721110330890375201309680699461635077229986077199313535213836226251855378967696246364912216917341961126168881800965246550300322320118722617216574136450943506489250494942692821248995175358576992649675108508123091835896738454513402807340749243128961209217910290668966357665926568839282051295591159437944080118187688936813565489098372576327489995377296464518128694419210770712978679285350509913911931153298036548704700030835496568617616916652871839971517948717645784565749546323378191674878850858262178731519784643504905554965875335632177723294527486734786638782079532093145712138697823964939005935839068674681387651576581688904936193836596404618111703860149262121280104928837087937120510780611166529714194648033956121244138237465692284021334091380304545137104401703400742541980053134802598744956009561780701001336323499709263028707371416538662882876341701126534722334579840679094091626116624185516960442375158892919750115125552071493984601509872528105264800919672595856249036002781689279135735748642572370027428892835100262838524785645381828467588722460494996722898033478279721670756853801668397529512724021570165913644242002598956758809106112586577471752105487892914164169257989636819019624980521920880703833951397500726902181522159079158317078991739574539471794467855691989445268462262946942591067366069244841323596526996127502003695937560321079459216829153806472549861761013873314010833488807782057728537350003507973229006009029941881020033418102360200743991125282817157587504802094588333798945683517042192596869010554934941329302244491714065359102606216062404107267911611996403521136365928099271341749268954652638855017685764458629639698454785963895293961570813403466226410316179733398906810329823310255160815787532094411421552181126151731628951494633488383588483765652533620828141234820242436516946868823746017875165527158168511070244715013580692813421512118677606544102656004559599390183320512234535456881571986728283313175691939500107471205094286114425376275037353951253773964250035831269709808889113086445870789526766478092806010721461303258883725224573105366156335023372053104922379701352538801055273686869443502163368260479401696368692164994219239964342111488578569253195431600782395281614477398996700014127049133766009282900515440576142348150201857214663028273294367003105092278243303800029804523726778229145727686429977888437595377331324974528896813854522910925718806717296543694808178755604951654022339122954474964285209072491462377996600353652182525321471671128745622179447534666295826341306685384761155361264882168137925831940938092784573672626658170522732011781852774560509478219485868899881752803280987591965996336013699987184791178654298942286657823470631113553588558837521980062661243082454952701489783634202935200927203220685778899852728189739214092717528397213575775283255438464110954046154165450695872338085968695039089522131526707101995011689400698748394464691493130144538113480768220459010141806256200283818286909168384645765073202674813660019058774861016769807348952539760083887550901836216357431071732181598715573434093401731161488640539642478944604135668137015562963647836373890511935539660143151077385080876051458171515854276220960025986040306773488771022961826895744797631596524552381253100845868125144863365708859847949843725109169452108391107906636440757027571946514366444167695720749658894355656393277264660120612217798491242846080039145322891409778583327820975622691668598592293837279493751270119033517670475924248288873340444604027664340948612693967088974147036045975631087021405119324244066798137310882092302432605416853512031956903510315831730835554183802863875896682993306754643506797802690673838278369629929624200763424398099329639393790924537814346407339205982183849333076014820924356680427897486232696307910335380654364680612645026645666465645087479754291157444794565076291073297342662695175550916706623061878581548400335390721460229709297553102002233593355909840919173606403258304291022879149303821572300340603070690314517201682618296218257483204827458825013142217691375289384290773332782452087923401044463152745693405566698830167771481942104564222073829838074301030995742548200724260373549501748343928211054760801632833342227669136490729815984120377838117458639368519106843612553504824969301567156999565799547448898629354701010967653131662394985055581887194241870629269618982253184087459280905129085401577163665151403595710851553946568600687893899874157077252513900365534845897267837826215599719029469129362071066992706511881196602401223758622900949418927356339721969924072805115753708381307519073225669923084101413803895877519145137461812483937462587699507101100121603960844528928062899957394554142178004733810114095996435539600663248023429205093129064624420647740812288377879487096192800290671754701463278395699955070734113238333665512664562539305834543792506905441574246776004743505992716956338868322997230267131429058114252010759774729847376987379400362268140596958983501631525499316770225455103636053349726265565770699616942937058975310333582700993501766208651363618098353880014760901977367282581425235624896852735777761363224841883742628949064784422246823530744676411482139565772960222734834027762104118810046843571432086943386662204198376274861531457469557042107759929746185581738439297203736369237818558830519354886067392663830739543545394118356025081480681537735002769028804478467553783993481233011485865552099788806041600065306956153679385243327830054196562010822355769518663938152212143503950074353714088807869848536202872179999888601567175805222624951070846663465348363541737771819320509343689426184899782531625004966768793812424051647265925062081938065998997799497724756288889268700532756226164779770352733068805212570874347089808458963027955726650221269091704356386872471813863143159920691941247067783878075651774775718521985213782741393048691907168214300021965828955237095352805370224686455064996122171567350394341817527104271496840913170433835066288622780679815770377440691242905581016569971182601933263836330001480506572050987847301617577791222681802655661762715953591334250803763314605270697896625328750054702260480466287669723087923689302816155565095053769684060702564897530887265036045634202191410473976391821998646553122439544300204818576981798579815171380320486266995133931569901733174493659312535046952809097148374393760784700091825984483756549790543498263019977145803349147057208652318775473386330536983194646298984643690546446537795821609802012026383456090913531055750156352731598929027988270474864451324562346624491061443152561894121251675557213433708071154105645767005761665997780190340511420856772228403569836398592463511350757967192066853898251992252092098342394442145663693392102652065635764117301430676183826135104302106291936435816727292190601938040160244968130297181120284326099100429046045224397947155060970617504007814679892841666519823251204469368459533359667101517946899270309860931722450859502989197256854967686876676936954659812784012145031816773537098162987951874938638770439187413288312610629406546776932230280116517675642578207347850399867145176588206768754134719553978916463322420771774739752227533514050087217727354540495549579819556607280672853147051543933098020695408511150120998249749114096354999606466575148296920167178296108072738184199433511428241820436106549587558227071513848094783057004358471674407567411618833410717453593682878481084824549795773338452435593862472169511326043132709191601813567578062595990182514978199086839643300546920834479558231551435141113429398631954536591896829638237912512738007279841442790137441234739422873752651973269500638757856171037781857782993957748642746501373312094074716407665242013745906025851641934906646964225148896747036560934171436783303343536148758251172025552680010016291210579595632672939183311471454781179179286936243005955558892650552420735980564269517468795932041008628023273170831068223767872508190088249184889265771965088745137382249247502753233179734024312978217466169317996467934458446025846700823104763564762357038473910268590053140054343657620598221570983794394598863877946017497483976800417457694592475579050961212099098899569686856041281868033979716611619705637572725590412817755527304448628284390959339749613606994601898340901436268663216877984068914370284324739835762688251968892315642254653637151094090675408589272437298892671961123048384188214140084637030284989788584730830069997774959593528614016690426512721692429591533601929060235068673157769340665593870085114008279946386509574837943489079345004287028984052304996406170081822574250899122546784644602379274566777428812700614773091634756341715173504158203387635149056134003077388932764295326628857685099429582014155966479120984726066294691013699414421524391369528430073777972780513812283650614402412245631607004822903680733655849551869841911580788146529115453435142315080676455005763470176833824799130470151769354969750829496011097594081309579066690808502265400061857222303928170285320149212936806569217509455078722856362799035742311424485572030160460795704298958264041857911633509743604931656445559510272345223757775147710837455022854375451111168042669017712772587036775695779163895684356459577490193414709146817175345582222939394393002563284692867477442145464662228630593703637206971672606454982221169117066549646429335103582545681516968251968455054874694943576219549036727819284909047955031360571938926184168037777034084323475520742250437059971319975085640202088497096146791324115051904498502193024145652689628642241635800434084501943733226697360567800526236100793331151197024668710111507641616069761583816034884141910361447282657762382479217429250564118218480493627822955175192319695288264771561872514764972632261850310257793230846214804438308541549916702755371932791752762814654703542059325702055228275126444079779234682586180019716920549457361322880650066188760416948570109098175314068253562930881358613707808254464044971155198699200588492067743116637565897162915575301046796441820831510322801249070614873189289959966011111839669216169524941894172312986929460619048824639914597015313283240516271227862354265305303115359471176696812912076488323869299465577109288065345049050226767304342608363625601225370595262994292640489616445793366637713006646323255800048279940564862476233890798557505776496014001498847208206051577672080247134571554421771566781008187361376757589161400635364459269062376666358653241130075323197397674861488428627940285853748904419103406266384459689586190694860075445828678137348512987656932455694436709935446334755775521213854723559257067804247023558701283954055143372284996155672182672451294990583594659807076666205041110389537384033313546593808585849898275074522988269937203437790975767835690151559002461886078311026420644627092559217359628774532817901001836828861683617017820210678854418533580685409421853568621788023791629798158061604956323377137160232643299979089135155160634748814522804862128577725173840780274810167346638943161482863825124424379603294405569746824984395467434578781805435234263685796328584207279622778995805793751651259684647195588196391031453784837748465689132845321280528356072294576384198047854988426257238920829980374850234842581920808290905401409549669221080980057787276349535574173861417287721168046941225985886836183136877801846531190490027304402407258117415545614362561888502278480967708566207480270382061701692707505052103900786655350643040659666614810843269011059634126785978549233797203732932507542873908738728160754096278498326163300526879156586851775783608912058605406286559526480202196723858818347073449341774656845509081867604926611880934702283249610710639055461474778404924722156921834107007870729144212940187481303407867052558992700540770490348092372771042736128737120785695946826583431127641285022990020618757250780987904312726735845353497267305760806368016337965494040844732852311716825511830367873908904205881438216422915266196582418867130823408522518166401879361614110045512019137477297556514018155179056081915373983269600920338991236754719013025441093261412828805293400050849573868054379262445597575658945822150028817370608298224520499917515650745631032631314826969622091462598859691475930254120078897175830917242760437643760684105174745096335134024628011117065845570752066220838659316647354362855063352399707815777028140160354526821400977141691087250344862380917538513999913045582115161100442217520937065419393814481485625064887180986731388907388467783979435855211183584709472447979084543266237984819334254342179473301162917093448344836628853294783027391137869471804839464614303276235378408181930402038548250154873214267242472962723620422969100185284748342120648667227163372247177398373457397777201684097379939597176973550486762991169255485095864192627361196723260018243525399451859350937845307321411808220191553384276564365456782921967199956942139322232062660617787917620187522625647619754379122504298931531551802167544793236634034838752067579332287258533438644951224368171559375090073648706538812098550092860992416675900855978265750436592435562578555762868996984890619379284659535951912853083988640662620233018754588714839429825807701588372146001575213316573046955668417165702910233369896414717139718164501371596205860699459392614404129161960532319492738726668884695748389814102113620792354702158695125282916493733756754620497710986036076971981594596746282870977068295214942485888363418702822882055177644702656937740303472135082053635273605957124576922722343361067707818318155255230574437643313381365722176445944723669777627622946501342343552963944780394334715945842828647171793810937881876867530741736121067227916463442318928421781730457360045231562385963900638108986331180742703306249615881160325708045432073471857795932914374208426567971197121279995945342160237051127999084635517752955198679755689058941008171808566253295870663875428752832477851743389707491251949999453357363359566313674262620601949522584093182371312967676070220445829224267102411421764202547375288780373143186360352121341914504667724929730385630208942979865950174499988937852774795013044533648456150570970788280336014548978825372567479070779766850894661317668455866512846880979474539958837308452648571696292550804056317837164624405314375793324088112989667183109211407045858495786465436522569878331495115873254628251001345785386038436195480769988202581573864443348788860847449251464830364134825390107452502006488252274763234405069176577858274928192723491807141948289210828450141473976749158722104340315354002447985629844602216762003616275517380313040691338463035752358592291106127886199484715911115370739935104155444407318676561399735417809416088744086325727903865375574792740833705592410172759165424785673393614449188524467229545418367401419461569440203506213347099696797725797087750650605637565019880363003626634309580825577899700041482420905800679285604124091268753959173382457224995908069934266150638765801228739838582267942373424814371408898242870166566967556527772110596817536036798822324935727867748901355543275443813376940535653664665924562611564877378820380630381762990331998299887269922480045138705766588977293775612591470459458046640987778139045890386138582970356738789474907908797082817996896233695729535145559869105978555104972182769263119018589005006990170752015140973252095754244660325822422878651496804708577637032844389565726133311382145025525534724874026471959722513149186507862215145505925157333217216245312141646550222820327306707650431511541101749290116955467470341586074361937238649947208370699258474707780063138866740870583447259182914212318598109408175553244095100442391958945402664241254187469499962042558916436756098935432949843500839273713481501452217567889744407038198087442453033912332166220064620842971364069608068059926168917384282367834139716359546085020245516400309912765003556998675481171949727653520963886876213153358833888894746533608482755834702338472970389151378863261255016865685256868474747258405523341220881963735386260116272392472987725185256433449009168543709901836011464901955940393142973358674598465903308600025825608026455265714840946362648131985885695362219052531200240894535453335115953493903721983646416844205892235689529733889998373185991176632019723308193659253153448057965864037048970130069040529095325913823461349078647922508886212950381207132678057596158225089050204012541633617862753180216496118969134599892438727367677418092768975613025417061073540268351714402560111828329457704364389405811566771130528074225093518125243366421250082203400445068299241434499735692193482359178287087541323023663858743187411581538073313047675605133986530267199446093700662533661715863107091758282781074994903471335287686163655061038004269912961529943078302458473498287275832955193666975989667488492661468383257173422664707783557215761792607724316396994236121377002754416143814199749853739077388389720970369514907607309599260723014118218055258454527994141213208743054073521689347271253192912466157690063133632935094113203673294789906680219902204853974998917901911387030898397346248745534683041767612368410232404789617730392773049022928250984639233428881870484699186155318028896723122929686532562401343260420455623666958456193362275534782335231111377418536087928191834741424131605168007473029197371837699392952756613270785389291654735712707163527689813733275886850324012382958054805283047822698695728739686150487276442889810631523756953269371951458644559513057080919990259929690050430545907482855915028514051648908533232096234863219885144532751769727260789984050895166567007905846832779100326713773899211415091572332575850538537384475660353831349441205100475767724481783368141825599237336203232589159830960448817114117410903236994549050835024431046054435911818648501661566364388603948423780398734854504704264573769477765829541305906080940362720511322195106386623634122954929201192931127480949494607026147909496480370828666546803357249184355899254913870122896936053994723511434795144848760229006588189562572212382870208939289814365804019156950384807048656112978194147568409199769287091534913772564333105569800865977665185542277740709167017880697282717188445094641428102246268736815863145541397790832493575663315977728524208765199124458693617380984830499601067986131626381707694260940592594125918526994723271375418674371126000197620687055948648119818372736813874334624589279180046608248894520253391974846516653616621454556318452056822179070789687024630474789178234213767511403316491398270862636036763896794075045208656894809371394962711796830232997108855994454369682843132189470048880813416759204823174816128057526487823872130531904018576051065358565659637515735746192002033090022855801208299511801802378966825688299146288781363760751623957938490796415489762181234108307604912754378784480578702180816909980051257775259735847598855256256544540864785072292039767953272306999623716317929830710332973043977637052929536389319530922708733816932125663993606558054145526919265907770460060944685731933760019119790938804919521224453272285062478522555562014236676301810098849884777909442342026303378480251449096617434802688335200841839179797041768840904626267048802324575002935507939888006565024375682180343409838665731635291574830090521409609510834109320311013153703607107841918724203486024723657752088952215188734906055620541136157165067951852420540019836838417254312408312592819411949840917040432220137356146756804151544768017214067214249782858530468795908948396260557294912169826273886251220909642821353408968606529688441299307306018427011733006894689849903823607443864889881219795129347477028919234185316811965326147917079857442410068653048091835990037992421161385296718179725936618681209462033131309748049687303127733618803654094333046970657013022348495697908471516081374045796312134079286672317015791246599423749961115990138192405935801924366600513961891619296832446717982959013478244026955004320353781566115475326533293185473621353535915742797731982628642148895073611999206358680572683506465337640695006689019955932962944336897541931641809461146846482283000560994873989001534181840256283358479113361787961957824161933739023094903873409810894700696625138251028666358755649165035297965069207920271454414404738253046702956964376553827488613582792367612497072390655477108201392398015597202551750842817399197447962798392032090060397860039083696417423419995759559007204679772640082344531362793606326940957651281868551679481420855468287234056317685532085013077962336211228443738944981578699910290532118405781636925334788165047515164184612442549957807363646826552682511215022486981867013116436338511425071842434327302606011504812690979791449072043144895658766689197181116760373998825198340032229463978215427620523076010562157951082335807622792411065600714531156228432564795959520667947683963549837801883986395682215412437086421887326342211368106713068476741273196375171564732074618769442460241834988067423426387060680911580250290251418540068733580713853296143811797129966900894837540150397490607430899259418351515763903186273033676197390860029761862898128451131886665514964124151058121838722155915187273033384538547102389600229944322268736005337725122595435644256322683302323269056893403431219150292506835144423225160862197137898915789424889467580998675030186162261938539558902072945482284847478287286919996296189323744931571075570811542856153039095751203528827623727287638406220744827565405494961082891960636554191761556806744082889530084012569568964050469940404819405464160939211218042598423662342931195235527790336126190278088478054957413921101584518642536382988120348187437389727888850979204010830841845057230837925958359320634634353702886816810137550684299939288852524194181066036951127452048009464633816282172138098888175756410491028317269894851641112011769383842312250185526028184320054286300938806253061226755513869185473180946908400158841489075860944927024193583252251221121222517889282153863211228710710466609400458351549855479356729068035951777571943916697237257125496061602321852530944940198291266091527409457364410687025192007411747506610683449654193073460916758913636797177705428553961802164811192095340215733646787141889153464531620299912598021450996054668900140029670042370232391090028271170209666551175494574032376300916378681495903700721322800251545539049500155817781746073444579041869178890975934396625167534274896809359402681829194692979455247805238164522766578507181124700346831861145331156262520167080147136882310093178449837651681240824435654787175742915931972983975124311825948429891250986655037492883060221936167293445971643171773314653442496512094322154820453327259637218008199659973548788954830772711036776926193410964578906388003965479957760326506904251979381401794695358178144459675602251591702616274311782533163645840661327362742165490181332792021089403781349002748794086643979160234897146805181942289434074504154217576978271066706291451012353040835909007952402740058294841726472454483552483575458955646281738304179912184082389812621033779349953476030347066877144547400399882113855218254224213507847185225585227178691227571675195292013676525700225010914977654718476493901360228729428838291194772816539666925522744142360629785614032938807064938836088157952888454947736548822932372651823204311588069965719773505968414169921698954690297844681154652703182418506488678528027124792072988336315002693599368517579782503020901323973189564142465771360256894401541342009408990464646309169385014230277260022409672403348731241282764548141004095436978874601810315530694734903403424149433846586039720576227858357297982534212853364984320424765455350913710155878365152522861275055400107494530640381198887870167588108845934449661698252703903830146867770894668023475333753822365690178812987954439782366432101343002030398847843687019534479900937366043790909008101833494162278091194435247815827703120196711009832512599672396884105586943926308228033132825001783435640117569961098169637833067832892524200730926899925197754723080902016152280442434133280036604377406018533298767549673712396018812683514344382503549231997179581060478834146536000871319080170895418088638536064658740852894330914906032221013604967226011469778999959484515968441094402648090074887101421991741677201864373481537621408739113180245429844496093450311829286568390963634352463840542473983916092040961747218557203334347129367242771864187102176012339253244940246524500915118795281743208293557060170083599209643336866017819068339399350630242339344927032377308570063821520675579068512325611756391109678737341241132692489108540643875672241309275886699713113103667081499476417428994463542476068101326785735937358962769944424487144686653158071006993781783046602905976371321009616295301914101157401084643776036451460524557925810332316272731698554426282206999725951556480049821717975911613038183780490245933147874740215239719154883993773862013517900992039655001591574575973089785799642032689681298245878402231626574956844127914824294633501840996886477768674864265597159712872525657220999993053043797556465184817034584787927022315060413030678155778309636580262337033444208921845084469960684753089247450181853927607187687118684653906220077724116193464924618089437089550006376820566384529234003902545471029862866602820526478395357017793283249469504714002515954646980083560930158781530536681404269826669462431706862652387052680140363220634555442062963159894737118096234947508209361156716904708372616439297518302977232692504028376504061874957737043307962968986541579415504829485609723128865728905064997193572122672664892411201021991461450582986940693714685715198353966891188498783455906325816494438766710802929779765117779175320275828131169406409907317300710657991463901442526990762496199447577409565890808800600522007066559419394924267479690118569782401531466749003844829893297597993847226556507359931498195348494605460072360255234954223079280971844130251406646290552839164762696618166438958246949477998613354988494741563498825741945077466018950383102742795511960355135694410655867035209842930678716719168455166396754015141576807760773137438427471910595490375645790113714952636627384791610470085835800084312293301153117315462825262720668139297223184496802246365474651728395197397107880388547921164712264401212427775978728449510710718016944278768373990945587400047427535511273700346121077709718682857635481447818215828315311876311884687084643302783916811129418539421837099327579422160107211509973540905214316761545702518897808797718469128836044648490513240550092323876059671517323552470424252607480758304460284110644885950761328935677796863399313170409664699056921258530258410698782622157510458511540788919663124157446210286428306201619660430833995254203926131132058303804647664439299449762926342457431593272298234541307601630607115233094158193294416241265784111290849368630906338023587153441918722158103896496322503897643686940235090078163775756881836975280687803167087071221811733140699313275436476030029365512365187747566263219481653604308261359084372680658926293163685702324718450086203405219678938931304324697373392813474606820450789510286715520807281337513717821045110727257998295511892348517993003282646618643697056686805317142095063622974516877673833043756905911329340548562141673596674185109247847109120502659037960179511377718191123774356572667941407139297049742406694243544421244692995880417569811434942608361947293376953692373492877656312928147231856335229072892984906430234726799917630173206404604612425837485905314233722803321878427472235044715954445863777199772488993352249650714728943605928507172911873880464996204991511396589215068846192062744056318169301663065710958877096601502621163775730996059342221256484369205018766702879198463292344408744422245053571203144657789044027639541052359165636987729690182717867235694539650515687953347555162311310853958758136026132329929005360037906314378241053321187459053735766345463794462099128451205866913359896300516836521679587489458572391943205204326288156208899378058270932854047258807322167423892231892145408337088789382342899265466823572480340537825322520935089482539981528072280305909699214863221939820394234681375158442295795728297169497167833142511930868265979417041193539801666178699185160520101430677617197140409586666370667429688840613290403238240298507619637985135975015565108875668289268387154618343686235190479584477030388531498407456167877486581409516851737362242488579651236166993849396188667122557310627749672834845788595681871599910236509376619086542159901878439651139094227132036503173489291785282980834893306077355946460487125352142814969999200754366883792131309810331842119374080495899155110126572489551651687114563215666302375666414851208889173350102697434721362162476348811793465696291156651128747773885537260037218901509990714072540325199535013579567573532464676695307368434825100179097314613656516119189233304483377733298155768815825401565530274981250462538730773058149194773216503189992544301143070937857740640273958840748844365476838169337381743460191328440000652939736173334274231888391968681529701224950487552726874741358230669066828311016911672050022681348110725229461340025805421824278941194117569716394798362987344906880716641550464325383920533158957077409261586511353121252857073134441496701528229387060548697606395319731604749351503594677085259989774796587573480637207811956591070898621225175010039035553245486736606939421094911176001800693672138633411090953193789550681127877918165162779086996561469232678513856400652100800582629797615834398767690402346860476849675139452946377533131860332378764042767299908290098557905481419987741552011003416103991012285721660544497765721714110849644439561547488127750522805703490829481170245012575451431423346477641818306261693489423722229638585714992699160294799622483209394418754573832793158492253767411099517751413822714822192938330162549378817863530544187514446393371097986669619678961969324106093191970772772731308492637774043149182840927409872896384693975320366645898730337353200913643683020951487734561265110080125614914475757890049610308320426125509577356144694640083809360726837030966254606248864799879027563178497856345129749710727075359120614517950577769053471104543744856961660599174951292166824245062855175211822014302529370966007506204898230101805230200920668527262655134807254760993489588739335898713315638700876225976759430668878851469968238734929874801412309806329760473423956238548842888852473297546995023073612562266475120554466797865910993064242819138915209030514546586421386305793532386672989553152683109841941690341336601016985054469794037053985308226080988644693858506830152534744139110783840755864334445514133650624564568501184400390512573327325802255349419429716342384460727240201682753984534485094285766743097327290807723497341672379585324745613362567113015917736423570623716915397277863249205329787703910431151637292012431208411831113402869878920212204519120759438358299516566791774294958409847589606649049999379810597171492503833873431204068308298691753291618473551215348695966571976076906014005333613343750668717923796874435409564964403028672621557889154946600438542473012621919810382662710908992475733670667663133335870529417079075336353578512844800841650398125611366441001200936932980698098042586492464295281831217461973532739956036014657910478113120450248117707998900034686569652547953255264280092131691747605418994712110003063841968147459247775062724138592798602607642779724693043190428408564180241382543936099648926696989620868884430998274311215195053319107904842710589860431638123314127930875634018946112586741072245438991854991236763746059745161386077138203196880087735260737986832530004854853249302901950545695281583583579664571222361234270763903413847608885533439601124344231364274192283234038705251095946425846714477453038257515153958744641603081050357345637247714065842430235709477315230149138015016294739097400980625571077848012649504373111736487360775286273105460271356885913348838648191861429912951728536520938927133446655387327101993786482109577049008879267995367560088156743844547270080069678300954912111609608556092894520972867707085602735916140197353927192725803560953407086742416874777995751767421428578909514171305110348666714257439860902047538753183850739984655150158278151548718404923491146870317575856266309357908879660854020552118988437415986079982582800468840819277184489610362717288466383673447050690564604040301756054249655825846701371589110354334758744872715412256744192240474074644957930570645258803162815845130037049791156560304067034400872440122640165190994684814784151389444197588011369381099561773468610421135860111520647014462017401737877185324228479809138200694839217049121406925094768193110002661168276268005870350796642658468547240445114434804667430845247655938063864562001737646665154208368778921582001647418397042088646984271311457794672014769599236418863087064306753676417569258209674427863367431917536765285978602095073051800848221325408923356346856372240891784401894249270244968282764184064656892192594835568231788350107398012811462470616615136931638119680078803845894780738108208476358256594515515833870960465979331018464973886674154144355942164787728040412501450306571143954766255348403495003786191337602437549575410694644982514125905467534637185514452401997375766827868778194351547582872387063691067731760277252144342321597421956970392228904271560105869696778492795122815827471201265670690291387077763460547143867278185568590559113199932657155788981783277108203558656422965123642006976414434628416256655608313292009200059848462487844180788530916206036348927898750277437714537642270262837031778293930547906748435276461852700738094930345121182321273161886137112832154211643153993983787018495324137655028836758048120358513913248410501434308643142470180632828803680003766854394434620115791223551917889715235195911230029006287918956464253795870947970095639274898908873966440505268370688875317644839921287643980972378962702034451369457525807631716198976125254198034440034440137350253399892408423917756283705952952720191952924407891772058582257780095272436389967922818771556284135015300722160185809950316036874858985703854552713851035782652469579834960272461057386059737744419412355178854564494487912504328688480558360797331149180477498838737053231228675572148556911573899094873164683301532717657265361849950634724203457579158246720986218559534122275825461750331128278165912004628777028925646899228423966267857320239438877722363914259449214177611390341613567199840423468356779385201192030071373097514179978943498664663508394324563508354605966638902264987563455184492438320828829879590388719237904665079937842902726951375508423056848170071613008870030832305974115852253586753601065281822387898525019266343149941682416734950021449695567600759918330924252635979690502918042767685523746111609382678067349859844758911980055193313031528770082161378024501120053862329365508074099104174007500413459697719256496438748688570442165259440562503158602351853267175029396530615146007965437804667412980295298193678724185430681012101765799422731677135758718560551904832207210816388385921752935445617045497175284133045991943653319225465147686629498897468965622304063963273730811952655550067420129603046523690196296483664797087163494841951061204437585537037759567535530958781046791887343380583484202782059841150626671481387064187951361668348097186190166095489271474543941563441036772807370408274257944449149067993876377589938030224778930860585556832134317856420448911843918286001395139177152519344077246602565305966418783153618845914884351281746241235101980029610622548436855298918563106419321266573806461175850134301385920652206974000313705286969998345259167814183480587442123339858854797480540810631644452568064912523422913948895220700820228686180151844405224220911326005524033132745102487179034574786406323808222308779308279502702671322749479810020699870051761096858556871692642499487107596236017392447069493044477500656569410872254100904347730713675632100883807496477639757154305808089832213486041346470222895539513656146921013231988285636673703258264863472850855338671886147866191976621433309630184620035771882185234160198710067530988000060186391373407310919901990740586731863514410629968582662934073206661565181109436279705634853496357484441637439695316461421314483079382488837586702186998342177962421173045190697124285212488036499445099627644898513749494827120251732934583423405024826176526655580880976943420405719083701093932016488645377604159156243504310271348161563852461090539014666877103277212904165734620490256579051911542520014542409844594074767153157095023744589679002494122204187082548854835246328576850376469146134083678037826831736139007998094395315003080108082389344947459705312812220880184016566156285654805146174887666832686248269767195413824956660382041795236464762221677635102449954801758082298816382376089355628141710718708416721726738341631320895608720828257425432185688543254790999632567400661622338724141486586017608973197651930241925889529270714468523793794449427107985939945848491049374834114690245374111098206876952873953590473314207357971999898685394935094827028019548222328831787236115049607816379653142852720874215615358523267919164784786341566713925680329280980009283537125978565525315737254601081952818523527249300212952311946961479506373116977746925059627669149056731709013209104833048807326486389917750244828172979510356497420793840907844466484340875111581287040444876213162765119257369713752929168953380360294758471014395071612144154618472769809081728873667501703766213362156517752143705820631223710362149789146937796525519072708908433122105062408178296190859865357036363328863608042465887243678957019829521650313646835691170011888254788284178229118091819363835067810952478612780491077878607151400745134523391713083343167527343885409136191982019052280162211586132780336177216822488222667016940612068403778702629153583071776091344255066938831788865911712648148976236574511348229817980150412113249456789878916518851516877759717094670591950517939716392874985082231603395888417242753873206567796542411128334545434470631612454122328762466508666196407839440387184845801763158796024324607806332085715881745117246203482206390377632013201235874442548169394619488218938990932699131927384336281398664019938723376504697799206080917800476493849078853546913800747175783294613162184020683607215157359093679722959611998526695436366452427611837731410468922639124611867144946802415924548636154958477806080930307170303927864987564036805469375207121649889493258864527160710326765350811717022390973309087258831094784536828867953634010419698400108460549148464451661256701704904822775787706871335492106921855739291512176022206701446821291859170335583177775989207008918215270750117957556768671149696912951645406599724917386915280684295888671441848715714853864939492766632998836102337060475908632524067939459641832583459805424503680135460437969569421576169242811733906003370655716184189142353677900129855858287028427610870834773018597727613114720815420279349015709063912807739988465503011387838411113243435718805157552146680614739852736096569469971675003173768056564963307242364583183420601954690389621223911145269793838233460188573102991367083835812436514604197522519104046720720720511975010209064689636455105509081300850021085756360357636168772252000719845377990395187388246861218057308590342581295234202678888585115853587092612443670565820964086197297956359642803652394794979678253497455947203323177033729662881419711034531552945872053044490027464310903750450460016786851840306333638471199738916271357096071631677451824851594917009219416823544593208329130619099759850814568649228111511881367365621556677744775711110620829474217576026312671574430577906093665523355429283990869254230092400453809982511367498394045271619446563596844391721625508519203818647413752560421939423491056553106186811362189659567365670778601899034513743239257969840839136199151495898689209790129330390068546575862198466744395650582771711657455883562215231514110976027642198668130101516704866592155119353638826516707599277423714220692470080675199945205421765766261376706508516782864733302692594770124537258683035640003975178030386266532412831866003157635138840154962734789810467103780070073066811895911484224971984220854001012047219277170864287603274979284084922909048998893687286963442381687948110078051185652162813769396771826988439093478730517842025373527341090465823492829325697128301178357346453888528119724925081341049324665829250459082001759396372036420506520440536826339954894553614066654112141797501061888693708392509428141251411899922762545013566370727017268175090704376322028635443596389194843279960494737410083895256276103766804119300172537012117643423322242260468695174698826774694143767563507765047120903324691967792532690790405272808992161770583854263809108752695954811598400541911696819943112135413022608713717704481099734959062013361731578834701004368962508727352070266200285388254396768228579292480808790027311483137036863491553063395749916723298525833256781425773170811491133646784089077640599947259346234554843934950200459497948139109996367058696501615403228886545497246555871258428416716049731607626339740336404282029323128910055345550009780432348516202440462544570292987270176308671564991057393948711344209125302419921425265792283343168970703086308421531793122626627371209523647360830049645466294194816581739581216011948481545518439077378705692655510499650262008525439926362152693517034137638477162908922461235597824740449484383543452635411884222211645229937236978410855175390227987256549356111409301693948146359896987145912266586329577650437246577287619459421847424240931872466212401793599787818703637001421893505441767155081117973888678230800585684324423815115351400675077308626243959778447681095948519057990307094889721723885316267026592356616795231810005160704461845631738739029479666493686960075969822243577804453111003956655804909546295875718206031271620875553782909976739071024369330794485708696696421315661732708755107610466904510171790741323912927880958893371935235455844099807639204068217217477176467432167578008746609295372092214978395218245851928802023083625962605221518673000563773476297882248127482757398446911384608188554960202953229533003123069863626949399010930133323915693597515887904796505577699523235223381744596219248809302561201879433379551577718483301244316967108066395278809744913991847908294074817805849327567484756699230625583028155949402605015818361029407325468149562327624043692276341692390874430072942230988684696555141430463834388317705796050791176586544941471348891611581315856527782493092742153812274573868861083863270053423109598493752154477018871936125716588035920934116199572766833124461021970654108283998713337867507055225072502045728702516652638501477420405785946842575318539495934300034713663567691433332626533395270866928394545933570083689794380589754276102422606061759906279198344872749294202709188772997411906291748499912706369611268371892379094313789586422349076198380653977229966882418492191229953572496675069489682259170571398136444666155428801622510186774482660521989211366198256944003703168612817229334919284215516992217050487418559134371593194319323230304807089766906106113583114382124180427435817326072168520214603636935902949931372565189740024915481824418165585550203007140033148235285622048926705521481464443767658789371582302413574588870368567098191920684711182336590461469706635323101770270875261624203065375784815150922285589763702006795342029346363920864273359678816266010609784813236408182366142741653862475666800708619741793049505883470842932304998904176065993972592795266273329888922247069521427459450667378344869049432858080541511920391721665708581631454092144881063391439969972067535343049376144551016531418103792670520853806410046264173052596113020951090948712550913867757238518421102046458166769385405279744154554378328157174887711413989662283331834071724022884196626931747479674433632806198854615954883018302413330422441084848507777405826604210346643059151434436541678846434809251153748628165235921536398241719128185280176047926665903063073253348793547800273411198578560894484772300397656858086386690822470590184067095617674195661331443602922836451334141610722444987321494862485138988491171268202204470892800527707298565364423290944910145469396679334198280633369187418800645695427353752732795735564968588704527535176627364045314938495446399651306321306034442967433982354012686197589164063765310354225674042601304381968579002906315680351210860659829073515993624969539359647571149098580768471679451549832618306899485420422087477422386762057645214512782470359946145451925681783796827490030253694449140984737721641930540930775478608157989336354517069050821648212701291616371870583579992112177167395040648570737345946500483147599835882571671819872503057699538237512575956723244040225962160091077289632414596762503312692607114373488327936433043395928278461460126994070757967342158360379308081567599244410444325324670718077746608999531226226054877445510777105983907530950633911761453067223495830047666217912160525545320149650362769848548469776841693452046812396504813812954237558875985953470191571691568235195088713264163321944477247390568528713984831331430734747088726644370359579496572538768116069450181675782551256673434789857755342752862891424575454281312192457572008979922855125253447114523305065640349895556837643526562558464460308789574188910186890023308714893061142684125059567568424650977036135155911697209348638651213576357177375041176110012245741599501379458253559090609012143065968061984810145623042075131703186281307076440536923680270897938378758921828299516116868501644828904065945871073548827242827951801499983991428124216917884806926711682911032079838883563051098284750195656214852249272850947151990334142474308017374232438518931237200188077889557591058157145017920371965753360417419374308649970035989082117197576096078261207963775042787304805601273164077297919561927697728623776074448891065338752691910464686984010767713725665572182713517894826357916620467486329310019774471685148326400598037135942753422296493031746578986262414384650529576949600520509674116841468676154226058968194738685883731420631218208868376477118992329923197575349869350990521091321483067329418557296572482116515120778556764190376081450216996365094925302731251998347143101932079089703232689886009838672252320886926198132235632988105417790688482520204683455505660044565153293972135732870189289980305266334425771072609697092076030184336032695912590074908841474724629051379089234672063423113558579785928929529244820363979453686292565778414587570686783736416355836251683470270033369581752047419734389788994991022779057044377703808954354316131836758208403382581529137838279480950998892388179785767904426941171846419026876661392823047339060793822066904275464210250830447134208013088819846947847133909708282730934727372505038451159789685590301997604777794707489606306739345157204571373858120668494780078123917228990963290472032786405258868235898683490440427892318932307103943298375196594967115726327304607819245523877316179742558092005784188326500199526643566000513420647711163610414284267089864298117283346559093542611703361704389504791049855240304351176250304416242949941978440661614695140743479621687163552311482241954442509881519755529888543360761928451932698173176586246761125651653021516348981649417360813205665101719401621120758678890727156433432383591195785452043524809347066694630776070247479273086458137568995879425121436343361258600327512208483357826256122435385282103180799383643347747587597246013337633578985990136075229111941630364828429382890764243640653194437052266443226668095769173232953974821535695557313413063086845006861896275499998043065783162909765503621836821919880713521365065661989733439401495293200120546759489651160171490477986852717447252509215117600196023445053829638355612869295097434491339743209351479331175059065435804073550242934091757743832922118709917500228208282341540716260448211583478451950930560281347822706963638843079931653414362500064510349897148992384614074917512453511629255213535855412345116918843783453615782104099003210290718637378492190340132637925584024688870971689012109718870401557277239645025054416481304594122998871637125674617849907572449515255210066577830997956541554640113962571235681855249015983197167592175994323771231911288997769687838417502161256337098564352935845480342737792912384779443063323271701365591026281642398674911137494806659215072110746997773250129845997155101423594787977290890625772013628989381725096247790682786979188686511875940339532871998798379335007102356759948774217538634304479918018067293225868263268411042977031348565186379589112511971611117933276946310236052869818949311215713174357302502388484438299441786490825931217105581146455227519472078622790395006382880244553571574004935689059416843614934888945634176342979570729829076183710209288176941769348639789206527665174691500321969133138678690912906023699301997000264659710015699627886190094934416762995513774894473081796346190951182744569668151330669955693634092259678556187323107083396583473727738401976432372093296550379287555934177285191873628779001110725737693379629301451098150657899091237756860897972096444060429668558016659411570784313664143834779902320753492293601281117902996000792034064356204641850069728976649812186233106393179702320204988765008949543083501582902070820127662113919122712168733079448013089339967456951598540870036631993799875284230095842998915383047427070554433260157147969228372397628659114084989684031553788108068106651495049178669538292161922208246449030882291529391310727364291166027575973011083047292414062437691371300821410140684874235055992540225740251132548902239670006922065375809885036658229253645085330062317530179853113920178625445481408784821522999198869554455958533254871941077403649853868690805054241092291880222303274449196061112944957272394025605725242092686228913044242159123941427273502866989083407692615853294931173831624500381951395912019414840461683428082085422890257212864162944087298151303371546951042550662279260235444472356201986473846506586693123391321637991179240178511517719507896140525237514082159190284585471286671142336866688289456735284993408412547021342808112146565663716183780843097312292780458639251542712136989475292784894783033111925290104737796720853747457150335506644659690836928899317009785793683107646865720192444456683595680715171339287349179275231093854060231878620897792683478483192039166241196209684411906560724423988776168457820000972224599122252804789647095068091485527600682210519861378017433893195945361146143932330602552996741344145545212032833635284686830852546137654920065666676703033012047522129172578704960758442371075120250826683490046651284251886164804322363003971212403328978216697884900574819065425542515015729232085190346838729124428361570984133685960476615504599653450134251624645751945753104581668314451546207773137618518868426034523563420609993993588462637934606880212112226039130633080706384902063528965205706733544728739933679738434774271280765937131481369423638762147759846553508477198797899681182331417884093265914773211744566359149218809149180994293756767430895647877745379573203618924246096962639169938780704824821462209323493928131777794146369892735910638510040391868716241978007138493097745351858745601772755501458497341662287752176484394903765498665291799681197978148965864314917636832366460169174146642762070234697714593067680978308431183251866952988979900104244177281230702375271047660811587875421208585335452805056821513687323546339258222635951101907129364582037601116806000048967999067023686224202692405597386373002261785733072115806965037899574202365326526514953698135413411187741900793021242528998393908185518284317203010491041260142625603379434669456898626374462147806909155606038716184301459368083914958124443989157484490695377432183925787295782388656627831401002732456547018083884236911691687802215496648537450767757063735208318777261101742529505529283954440427093051121984665159863998957257067058489341928197783702144115486780048207971960406515450855103668932585607051324784232965672188347523250291848283381468255292422095758915181807512339093240405565294306995633210514604421170142224256122199031290098407009809592801089992419038902428745133365516492280599041389329148515344920421722947648547007585164154524199062369300697750516594948382819126955697939861199832929753153658201787192648586208105471304888232870223751310348578609492972226732929276948694234430362739200376303360772299689222472038182089154301983744972548482233020673724117722952663932478272705235763509194187264855671661815130054701754474323656435607731949421428455687259370302565936123356737176416007732068993598023918357822571123580843226636932902259700323987317785229760603032611249917832330854886847507223581939792032826472724319873012367082363695561075498867843221613539635523722860612051395061186606652833730345430479658113955435929612915894602922956619151529488385792831014846801998394880745595160203099521508787594141660771214096460938192829599262710592187465987478270903008837564357295279132274581707198099127584615293112931193163425222491497707642102892826621887891843415148215038935511188347831694711289296485456747609162515980688110614398934321378032531872775785520585313917190907303055063541942790998643934960237607684975617394637359601436362226146095013604600589747606529530641599364532303007730253091428010761487965386777505830387799161242153817850209186523999224158055172164411605737474454853677481624160105844542112816665137495250592857289495348645993788870011800070364458378587268674402853240051509766173612488079882834603475342034615382149493736256684686806752457701241074141682037188113898456769493240044255039516063882613605987140023372340624609471736924583819913479766429655333383732118963324422992646761464039007976254306410183878958665876058722341307845160747314928794211801320180388724112013202987501652431767529733601459364238137176986702308386642130336794965563108540827652029336978222245606449368392690128728948561919542553719081692335061836398896225568713013074766313367552736184468402868206826798938529367489769639310522634143048973806124302887281630202705821976688346530449649074054264149303420811701134014088562747026974748534124888630519822887942562866210637960617977675039663148244478268265187241596989860792308390262004328544105705524425297999672463771124211116756145462194031722058625497170542313268148665005701773271432156055614533728811406409111847813872436639510804617691087561447113249871150966452035946425991602953875873525471952846146027644491273199957913940429609333947653333468515521125244681473780973170345400133442833195597709810168011695419620021864120054742554460920496258208774992158351949534935818081555295199258826669784625540586662810037561970027374752997582276314152375793209708659589299396612114140225997345918727554890295349392842192771125964129484899654859456194093859000445061813985660911124481048296187536386129131499376555096082034609735463554255252253867604961113236197508268359064434478367630640356349111255501307080141035452908988087133589569637302744606034716329921437088736559605757646381878686848013001093160602540824458755770786784775554207503166454087211172621185032894533434790349751440536545806334820970149359178545476470388465529967843518669489051129081456871223049256602112327784005269764213719894462018033645587181681690710494944446312617146338520851354831738448472156504323940930186511132582048790987831737107586000516462239823919171111542897604985266508441696616925501939772561902616018242931811206270473173700409016857646251119163818494641627246027279348709649035602882134720689084179596957563529251132678574244352835933872392400492476828817905639348567445494501428532999614214314186161273740503148194680242419161493110783631020676716623935615907117012691068742585855020113027206027768394582689689794298089137705731157192783123318821626762944921195496868291367321447450628900012683565699379793216539238824839810205450105657178157114920660171980091272325015898527243053640797409990898076970689849892528114498293402459507829262597953780757313673889821907641110268426432116787101508107354129664084347891816054086847933988367076546951224069533449087948305269144490110027906148301139135272138830171311562450384064145051928700911485417169046148868852635747077396331625230270315674505011383575789229101598038458920151003271341812428167530201367652362931601611177371658085117457180599003752041081737451432856875649151354638385354619566624174517113786021475485728548354673903770410781673054863099611878951152296388239154228260506721096238005604710679023561757614174845933267096354661914016927741332647758038461274088649899142648358899910214729895526313183845450842754675417834390810291657263019893193971361944774873505927452363236343455060085232116998731696054105313259144039649666968755204205752699164131246795212693405558464830044307942799848300492543552476915657402736280106789010174231071493046100900760928053431213459024662915314915972227132420487054077103641139516919862133046714295886205394833008942335478240588154405341184430059246350980590684199032640161575634736563390728650479270505540200367885137522643231637257762454958027818424632226136461730422403136848869413051181064576280394200544522245559712924229867205463822750365561894516113775904357417165494314499424004305793998999876523626871104556926061184299560134190772336331260440747672676205087603842317404145550057068429534757431940539884271600314667803407463026240266341132755225812371592800865045115420566547479157849307572102730389242738597119522045490534940230120908208565738456665458612785730872654739624977994824226944696404567230567514115566725645503418707937791865985419192245675595837416056310919688600034164421731847853341129715705728561675971596845036905858355699717315754106850789738127928963169972360482115612683061602909880849484775202408954780958441539918255196768078253500517361189383558478577268421531637371898494653548928374134990604079048810722481496394241123142601336562178987616159148374350074294473310237573518650077482178812903797294489310528565959891063527141107364111656597506154010281758026262050574490833698704812634702850538599230130159403809963729118282128071488184937215785176319772471483196080502618521306473147726901554630827848841501281828052615015568293104111929155760310282469050466040752815889919590741729037314586651987155394714104287739074956577665905853841802063273303958743834236214513059572454148227923310959314907981155164636526705265211985671064525117981074950275724924354736047820085452566666967959431235376837588163398477070743587323325461159474366836836514457732197724324781092615419315447627616450067049728094546048017416945838287632050231535247426268593964269771256456180715864746089085680747977958357578718783773547098735408578048102912269779098476855017631577350651266459312701461362600377813188536935233909834530806651322501176798838120403620027269167943738993531309087903348067816658714382353147355792499133187364886938302566155277014120173039550217130873205101448942526517464573066355793864994474564539045256462618705901133310503003485703694067987060883636217103166024983651559786102891210859107333983560823639760106903912835633331936102988343738837451002655781705876001183098749935901111238552557976028320796962008814144591222310520218000791705523934960806135473262583744058418461755910778338286993903994603285722322136660994307207091019019014808130653927902767857162640909291347113706774281499452106266428535649412647270113821261310647100885057484750082140209177462154304398848743647872306120775903559368555653405226147089167205407893895888668074845805054552548355480074974262965308343865134856417670420018853758262092820979188214147481564957354328403259324026075738535517475564956173059619715172436679047322573275975495247080787581066779028704196561473212278270501848997250061934508510885428676849568775473221216993824618502754053722483648263724391176511397305314105347342349356890879981970703637241588727279846083431557589421501050129267780134233251184222119957180840127184359590280474603881224353931500017591509068614195361890412663391683546332570940689487989825440479329420191457782311394274293581593133323151857320094521162521601139975706380391421028703721194060192409432260298043395158845047024755861190753818775487323921638435776805038913441012894387272527004489219137386549828096007690972935649035508660285106483742844182395983316645908707615610352310503015567970800407208088931827383930468298824906795130597069154372955338986462283104284631765338719976863348557133680875667027633328274927308107697499147245478287621941598041166451551090352556244017604854208395148872077893998394863475955708654783667628805931970424265382639124366543816598506234259335035169573299296216059492278664396740616278547447689175122749112757826130616259672297002955617802168478429217884805750922834386699332776256840740853107386642730266999857469300729585205100816074091866311354045424202386253918007688413896035620394436774882964646376182201040927497500226951922073608505867633318188499682333738121682536419672616317094100018764893187704459281103823241986441854255777563124247131820602235716200484788320445053784891464261592357217377164712575150282519795049835217715374757570745650116048593326137949883491060722823202947385767931201466821330748986504544633334172812672330710308121072864315659011176646772087802061485532970977162869744556460712786364807743717045660035449426502280563492327934369161331639485357074440674663124996845539440383943503434159881512693985930757892124113578755690942194273833102746704684115554978421076156491223899664650006397578584359478929839156296798281120128321216161360194624273059392666754036245936814515269547609639878517500660095133931541048477277058013422731338355204433581329473401248116238885729495046783000279340700751597665949965890297211690486081128342077170331447653878106760884512667257683974348167816234997530164252228586534638882944936340130028267014790206908617834687132747693359691695890007381186454242129894915116444278793122240184231205321089368125454109484435843131310519000438404442666537524331368565199792091675061479626558769448544051313042073266673230439189526192913152340628272611060952227836519578988422857407966595461385472635084154729785677704674834425912879099253936336384762783004531155948211792876402253177853139461180785852164987349874113070341019512901223143125583667484242925935715702358771503497552802291726256136078687595326777283704867945993591740209251924114189923939887707972050930496194389197514110332821912308349541661043508178109874425407642139357461531784803202718253440104466890279490926777939188637320934640378894131711289555617280094604635392580250802214078616849442882762211768467069582128973908255319093794005647189192587774549305106582116995655720413054897546295802816686498672136722646983541462762507093842415530229634011656458522758646015398485105153145145704429360342219183409808388958440319519663852368718069148570429842187584732056592114950433948786727226127112120626720182916485723862774581026095208457174444077223758952844170104820492982463471847799139310140695030701372305420547176845013452543939860214085940717039692426479108979789988346222874762886830924922129271260262692514017935106350551026451234090409510970809203538128594383002095873089413920296516247236688097925641910500153834484488888426106141888690334463309140105909662697362211440076771486754164738410661163226116039970879544481278951279807974394796515318836469892289673769564162948563816342767742058550843409357933679350948504083962923262791626897529711955080227079401652795537558163289034975174433661356542091279782071133216425892619008886340613659331944188858704110308364766634890869676018671032152150735664932453589293106982192953260444024360132287511896368546492850966639059566626527141178212730317350953728605307560444891499527356231165992034570017262530610366799452198592885396431144904058656201403673231058720161645350462812906359121333652571092499690667570077097833235080870398917398034561069756042801612344432042280139786804232850892579062668082544702758722038977037124769034909716480959699140169558424055280034557775391806625587209480320184933809542916616619407467551113592721688008606459463969620671411695675991322011386440326640323817976831759050357818134855228438921569027558396427549717332327208570006537596353624689730160931922397893747136036281759492738282431885617012675018090548587335977438884581414790705844156663065020714535091092290419629486198508112388553149597764523851110127979700999145955178076071353801933314568621954643995826791989216433487988550940953330968903848065927656756408649355761285762504236830092812932915273494608810675567402742652678784201482422553852910029183993288897698367535930664579461735745318460088679870671084388018045928100252968856917756676378107347483629991115731500759352816625778639045682393951220920728516878455909444387958007879385795173835609448002524747003844220189748172592319379765981944001910355078687033639201911289816071481113976136871503026844552105271586889244741425896341454576146776202750840873127276827594802841718508358642350131192223687945831146661765928844454017191252073474764864265636070172130912906881385838193884988169786043121576845829885301095504169108547827904426127232289743442598101736411167885059993476884867349946534602431303579459539052687740561997467552484025576364630841359251661242522891865977826126681571592553912038791576868604038475013127654039354528482848702839202240904269741800111165957362272362230554559993627158201587533132992782623426739483341036803749139969869277134427714825909029157449341507235067282381601900794208138317716459795187197055273299905219851775932655836828462598774533342660742479177546246627465147627967179985533856486533500487692614231483259798083570233410851996607355397351424270626283385204802612817805639027718467157015156629768311931674352462723075766552280181468881390027709790337646904503707150110643358078717936891309593500130203561604835856687833387739867875268023596973844474641073658203720370486526568916492381393993407640964457380128087774680404785167207095762444788826769053180484265554376264867294011941249033935675181004775815980249157852739913204846834099643381319768240306311853377775228559215825424830485351254863421480014312950448562302552495580405735183028106501677316611514556401263940062259234950641035233382458430511849567698340699176306635340626639144875128450907705472283050762114429075943171349858998041461217190424594164521740339776418445334955726393026820750052708216233294373664757312226970500778549780982837193445002889888355433828461498333503776216364206218624012927650474653127277354657627840127573165392368105128286011197773282341643419891557566773161886314479290704137041838380066742719193769073828708845611783622670994630152490107488145678012086763487842195300243840600352750002398718221934420071100257871685534101773544206920800733016603162698302631789866916034581924178448061739038616997649641368286889976396506794074881677757197570321878126911355343215827730498021788066206646340633475990425532504757268831088223589637956734449233608263271353544609630941205537755184811892341791388771221958510690630088907799338662678094993147189453440298656649393319307725483168895858361832606562961781228025509668496967996826050338070605200641329225995640184012458861400172864526174729931143217242437892331193477838711552877780126175442701703753454366408749029646144316564832305284994863761210028404231314838610043148882125142634504087391758303739597549989778451625344221474853429401976331858239505096385667021158916820364583262136051801820837502860042334709764975200530765703887771977543448724858444343793033641264581207914177653983124608722462833487052045829022129348946374879082206841632968067108171476852942262856748484624854821778615517541039630004624408198660821022410656501020207271403344875615224297545502045653093607013182929178641924992205309912350274404138360675101996081161289584061131734422638771313356799262934972544157417475513228385879921197470862134404159575553391964625581629182045793521966429120052320170427735103237744029121633856482844129566231638689339708188247217197028589272181512488140661378920077393941746271277217797577154970824038190138713694753384261129655020216806567639142600167937843647987274626512693048613552940399981303661380684634341154813840293466591989861637182706302388593774676782928425434815507507701416299708044511933723138365716805371834469599564559037940406754436421506557669573129435182258080983916248513002220505061837593079233869949109583073058051663166261177140699727113420828708091260041662111483354889368248280017373879406908150525371429852325713328894061871599864603205476131257713204089868345464031350368733525851717685809695006082795315251591877464914094496028301720600102894573015841176522981995206868760893959872882445168154759154237744340070236390636209641799373154168478190308999639218133499062019842702169258949414612806709379518117074466737386000725122313293604111953993812449786618983684491222129979162623994881237452438179667740317666073386112945309471959996080655935614250712850264974960450079632749926413823414916773924777394943722635602930761770014079613447763900081698179652344751552052242004487849988823377670495478427155978808366660336548206940740051287142841596718582603403137648870391506211722915401097875896763585151194515205780517168979382124039472037382618204847380411795225743317697973650590128349596655838508520352524370644502466590778678141943264389061512668734424789577729336222352031608671902667881914741623287809278522556210495984036865482479032966731636094185204516081446482598348722416988974320642333399989771734869792552453179792056507114028338565730069809319625445742561054186883874300678640263298368622172529709101758090739941224066480732342450577424345780461069724517590280466141165107341770581340103187972005695868262512961462700367377739675991430480026216602339359981230037260104658408277361617102225870358693490711054204573788593263855616531892951121228109691027873613069846609692805274824676381209471037102198122382438611089945717646447633795304853819531020633310921256765188868496513252309403960290139945057587748785269201736494344961310086667875600559814568617459246151634250746723722695131704293658568421459510868663846375282801267249184002986689974115959430903048395057539508950427436078517960693522862867509893045094610755019967432154658227881153476301383896565237952535914687947132282196572734695437865708574651151255590544168051916683811398234873315607352556624234653696960967500294308494795706662959236358042714732517589200894010932111452279098997722610378246870447082127856205599974954685505275464826160216518965175377430931251122503247907836261621979996540118597140102455314725711058922467105463464855898396742357511419994275480340283684118065168487757698619360307771912181117764981558041898098671291650975755525277067388814525040067505040462140446020244668478013887496451961068053411935764377964710160823704665500071371798522695894528314585372977385489183102840730534997942023170290694534918785978662518952630094935849910778927930630680525771338349226839285533912334583686211023612529338255504235284673422259329951775011923843646022918293385670852893336359477316779483123963957861628639618246398398561202555402208472691886713091662357886983435579789804581479622509576458776063082779616991673997233588066001646166497409333484343997478104567391026889801568493970709274879604494777770140282985961176452835235361662610426978252431942222352103541729985448879332078863414928400930070278678511629964834831218441492121082125504144652731017578257894556547292372014921712590120797680273378179052817787068950468559145056163478732658460455249513734745399516134137016728033857426859719595778329886568388876419182736150150132140833493592481651554985835344494932516925025941629304951290234524300040701023074722261097956779183276247712921275396779529910813633617189364496607746952815011340431540717103984939217253741592469455938284276442089422043420462959525078846508895759124750302801855457545095724150765315271782997333474047027514094784038337950801787023282547847265273527188581933137720212159293844252169083060886380130153253505364943134732054558141684632546834890882762490162175235167099346968894854630655095447316308318969825122658337673005933818037044262897941674475639490921470736717496200200841576539990751456916212280837018541857653077369057636040981822918463011188883528072911094443474543810151836697927474632294403617614425481672746757185292362006786291643519136426789195824913564400976204169942620622154769764629836897203912383706227985647019446864775199838606798679494777606057408386375652321799461362405323614392627571941861063492715732941993500308873721617263019643761777440012137030830765723076491671124227856406745611453913672489815290531327670973639170642736769174902104229979561771660461679733211062886217330863789091352969006309158746377188159407690588388924177024238371864329619500885537918317063999555175341116691119407512084573956099075991822935641551793806082062660434842737821113084408553799380486468109032427340010970443073222821033982040964824118867204923511743323408759228078827473040846217466587335393845312347798119527356506404078568426190891725107828080277697164259239231339398334532139061196770915542317074633006088124602824214856661743224065817890883296334863888372627487868417487043803992585852327073200569261423836374059485318667195124947114710508883860303575124243034081576700614948893883192823591534061090043640782440620331530028923898906433700041995932267179464395411811360243870619133817810154106606434363937829419589230625706887988965927054039954213653045533391882321742225340365398213416361607717031655800015805332109836659194589118074714256157857165885764296151695265593863886432822778157990821193875041397411848904298511968067953902400581134464440330028231355328184289384242591054897873831876927606238514718741000692690668004202617644791752478611986409726043702050772045373068859921578722696287707790832980660880216707161606318596140161823282584712689527475742748067377707393864451494318647053811324545283021608619426510374255302892187731828326144394402236696642401480094988649921730322939603825902291060071618477971275350660236491745898218679397214539307584629253653789102154282414798359066970035366728348794076582757731023591337222780476203968257017448403578443533708851183309644217594488829950258995158590024137787319259561299398582949702346844905816136939929579942428155064340732372643616478984903473255605595979500332797719173636715703293568150470577036077370054647246105972545264108285173932484892251648924264274372435561133815701798906155922050398079156046919372599622884359265239559217616799298041660667803041719289275029200527978787090685936031886314683162165180924508213011354802391344563403116143384336415660632405970550696997132956344749009985248424286124433944897923391529367859999500134280093758341819289148873067140312674654360810911253553834468921396900327021089620222501540691269003056749265445970785618984181936516046915895582799104691220538222088543856914377876357144853581734499520084162729217495085772984991021230118903854114231319180559547556192519942484991804297466159936762859936644631847342660613274442906690840702326713747225788687665613477254070224234176256162032994489472765476864667181015975218458512996090303831701122897322958200352950680964244342468419461094153894244130775022199756910681618727370990830406033392807946064602120157266655051589656931255593587749660481710462478885821882034761177304086701252327946660768049486140378053745344337718658375327899573702399110026410391820731547302586750071735592926980881066128277931361774411942959409855704804086688925339962378696072458204966741582913166819603048765497336359532467212513252160474027360812358472365876188218994399837841997453394776192911186318660481882810542216820217176821885926502529377950647108039248316849382837363275304312416367969083770459292889407749035621786190300937068351998681950890712948923600319329495029796775650373920102631816713121285644776693722729071724938958851575843504866034616654107909015897167297505772148019222852787125678125078142474139189471793516600593187940418497109844269904903613690448226035712651390942596311756533014898420574812150662434812167163013599174598693037969647081526093777375477537838943256802825726644576658378266320686358514217349244442204071233943661308039609481319734595397816322699330246378272264407726831189160884622061632703647864247344163748738473228995464922304401860836812003335162911850565782368550364214709797082332742695014350430745479699452769606222664412603955437584987385949986164972121665511101851681311478155000528417981212778375236290779037545892598454404471182407607284798064930609796343698614795713449823227902622749578379377924252575335130035958797133208361432519687305093278172349983786475992106839257712593133218495857720405603707850110688783418239185148757180078372142887362607796936153253365859385014868674743770716075977644073622230644609371190399058700313140731580882281689600354098280243857169279174701489399541400516218060069623338985764473616251613265668172747772302100028334583490372431718789926050972135068349061937818742812695237895403401762468850538565008570546836085143306569978419378768880256833782440498226372513016745893608353560496041419807069425259465434404442124761959928403560140551708879343091215707779655626286366436849466380944945898668835281121099415907724234319563087818389100683286788817494134839914358975117347616497590783111680915950849613470015721364618028879401097117174665285953463694223023058888474692990447260594921743237593420745719521189855838558138056806047590897519472309962457666558898008336365662289899044628441676727026326908731327190866223713025752790028410716048845319545563826800654170234580242214369770441050213362287475503958515235288931948680189530334325465617906392667309029100256576740311820422324170360659782401078845789528701928710846248081141464786042530047341800816626964916032830103648661012683905610271851179372743708497361559271559290603337896190146411075893082528056852365498414913365152323863001350775162994543617745670656829630533498844620843262000656420263071881603620576477360951512504168986549362384578712513196455619558149398017270857345814955130814561332451635149878880812455306723196513451171426539459163052447070291704765299542454434385076095647634863727513514037120984500357449860817810598094269549862561202490546227004234160019260034509548836783226768586209368332549192326957135543712633698830928629477960403163752244999273084349778789110668303792555406152194152815152117299591207442496069118075296186468574501952783770371440813751854037545052076640511052852982780332053880234579366360571761791473472806839712745550772277540785344126549593403794313065157787331696045049123763060768734937622504677057967522194029291207515050466343968822681124818488951442846814441219047075130379073082508675960000780289809588827195014715117729758860682970618012170938901241987205982416992983827474417567813559255984261363843019861700365051716260871596300556953847278858707480062285764019711415016354957414996343037834305825615466520826948742734724715631702409071806814040350047152921732131465351333316152389829942335810691833544551624261215701740363974073859994670832387712883263186659190125919601106175623736569367861370593863889432617337678536556767885963049114807840454460243422860466434041171233249814210355584713522213681432415772489679219753220238779574495425856381887174155807717560856729412239199277768922259656572982967103614582821297757828102586160534892859921355126015570186595407145583722450267710546915124972297417629475405935658977486109188236047253516707877845115435745972914384437802075335761504235580182869214367916890649027333174007372445857587948098216076946538631717692286998726011175339538441330978618734188762173606308999556186030057097959971552745688079407536712504509170192791152370209042767052983934053455920259739373737521380428774247487212551176084292624742890114627493519246279934384140126821046398307164183011361985459498057227606649444426255093826466477633861247375582117053973721820172448499442345180283816166643185478092726304798298193402660355624064314094889848613259965990798644122606268974453632947944749644046464698994998244652896550422965049812446630818363879112311640985336542691947651615897072832832266007603955749492233212079730330365986170760695830867948047202250264713776737028201692139531301570064302024495612921674723621051890858043835681852536202595962976087556649451218760157716932008699525814777565714357102525555095671534141099132897722333506363513838380983594354389151148346290638251279691310684460112400864113136523476878967614173736766756092951633842561380570114480767809500203089725263803504460809989599199158664999378409295670004109596811221776107710667635777906270387783767294077908136934378656480109920876008071964527334060297627573240242351623846814817164252848744347921973382857041862826148288340500420355387845891019598725422806257420576230177425555519629863188661276424993400486103619603622227393383130652241174275517301768283273974945676457637060713115252737990933831506725002200050479047681442368864218328089094799699275472023119229740788309790004269317434890370472895433813286676080801582372373254828680850756794070664992616729090183353864350762078957371570114265923410600852395811839754013718236586411450870509773599234399565486202154895535012428257635808595161710414409334293477414039198391203763520641901675384578196722008133852623656211424494791552348827956310531716187617718428929670938109602500884880921324668543903016425477296185057704582480322079575459811122271905076139922634926705174472638577420847144012049307630447136141096487252302220749020335008767574170487655688573676661569244441062024511803387301612543139057406834228261390467699975601774106068375943466050168978513487653455807452240450163544031394108158025687173349924845044739664613032296055360762877332996091910300373078912020895769508415726982983355243733863122261723391902415842779458029015539385369574395181589538596357227910869677979339518389106947853714382492898931527104469598492772929047402871582133187261819454767400789626867312558888462827272341094727590558503362201124722924653863793774827332162103374550336313036655631737244289779326633437148808184536897419896863610825497516483970285280222168487640822091476720154555631532877843534894308441685868017426898026124763276990041845384561106978484600174431539818137064755762499395283181165832541107724230187998280593466622058509647412649919373608043525712513959491719160448420923134114664862036972531099616550277159325041956488680991403949023515303854717696873902151336242637945991787140865849096923842961453826209007651972129179470935949894653799605582664454137314555326882432679433884314462639452238337004494441502363186661182008814978556117753966539701656282162836217668718866718748719255609020456971351606543660129761456243713855466831737444117144532724481737995493471264434476740578990062920863950842983052557765083406149127938769762960781264186361744475647254280230724710862581722231583103421362900104319342800746193731646126452779062025201702846267414383064102048023324622459516957628207268294655623957895354671714899547021887959268223517436621200200129155934288460978920743352578177382567572332460352961198671348076541498844343556408347381248996907196837951974345239110987182027224964429066404742700668748140016692774354849237421449029407857792616088663263381962619808755436329979741767898784767303573698873798389411504959320168365747121654835323341985683250561203545924952226584010433260650172921873296129685528764760564929491688049647306465548404425490042014243679788529951621377859623905541418172125714697687681732515942401625998657853057933716453207810025811514486095982911194260775437790533336996925237405274057239528998903660308500634248781482969213437909547386724487626178511198573093613498496560418971215647229293825069890402579662701197446195754166151775555394813276178185782812109543252560486815360250978150734922818078883650064744455534867143403732348059311152493671178671718071102983778244421951262190841870712329788294432498919741373300758069536482769281133152600939936096712847088604428622561667366391332945716142329286858979500993815070495749268828012534994245579228233348619798374142484319168740611869970957535440427740736601583747913647645522645489770813771500813284859287038104107546479764412139202386009690941863499933656700381082749885053624229937330742658074776029794766001078685197457742045777079160241436105520744490676441334762126934000156971491512705437218111490206746391370496554795957138013854138128515591714394324288886811179791962359668981149377312845998640755937139362201002806391543665700206972775815375018006570396490363107498164921991825724705863195159169303941746529801203801925812513339590939119952277011130414008715353754958112340430874862444097698224421463017372150823281336340490976426609103275983898351622307715063797246682735388321231411771048626902242372317106139041308648309083978799203452193374553615860969641055106987468018271629756003049772676852813316042396175502198215994059566846602406269408262810524250190861451491146774869243664941359277790552337972519372737903596355945777680619468141687417102740649300762162212414175304814084661758017016862509270826069288732724558419223871804567545785025917025925682564569221107159185213064406548428079376059429183647691097760639323309891029415271169515756718676008760151944470554173567391829054953112447136367293614026722484229726169274610537646679016279604101301640397587795494695008434144222580694149423303410038418022810211957837467081461632028820826456888109578704179744156728821455478980924178549234369620009810771764893928661542124257774360342430928692253840664282919543961536702062920026752696110067817833987165650444829867725790801486716080730706135599945729898477673716154498321722059271340242656683880830714235645565746959729243885766711399879533397410807828739254838642826728037251560964508067649661529543932058293300546931105222719156648070932025838174555014158557725659957582512387912601139285488380947034589532305341461208323569268315724930522242242892239077968059829355131071282626173166147846627622172922940675053103833786257056084958985135837711649295271408199713315545510686684520866161924959272949075994799319865778561213545739880420772293785157849779275386979187242857083707093762932201702105049459226325088311910115155517593775205334273017572813758133705880122351921581299075064349688189292290903265101126205419804716356968282034754006385450171511811616300218257359983622564872268733613609855278457687126779186251274763251958539296339019885168319506878147950685349757188436681835772152347025349923644983994726627659076353884960478307808007836754588077727278862227762501130819537090182215674152009142662267641305705876013206909871940101587848162371765194383929526377288676157463970746613210831688722001829552766784308636768973849933628745541899140712136303756594656425320230970778277390785633022924924552834540922934629214148112536931347992177749038864024929318417777217107652266383586587013541823257551717149310612713647798597466662967775891130050752954547321066340533547935301993538811676564184416092606990842354635081385169302748039454004097354440177088021082530922267977370873473570205913331532590866563167690142879584872796890816302179211268667007862911428290590514376967235206506796434954530565576355192937430966694798380872389672527564847425807174862767161363583353895677773932556205902775064601188252240742938653822934958412124452700170291699845245460756550398458098169745879520413740847769548642246207287824886984014298452780390059288535509909963800301706875917041753508801543148689162007723105517422445583275812294971666489630269333734849964921203801960958595105016050574674518068100886782922258393070389075914803492558465989243205930794389095741711611232104309525212004632149430520698282280424519236942007244492434304651814071700536070897507868026902630606773572675728575183257143670485062317402836242991269784146229052390468464416137374023479996597963048100358529923277659610708559381303688785116403320580738232391826856014098410827760150092750906325215329723097481745348206098576721381944019223771502554812224594240566257773520726547607682437489165461574269004359406014785590787360135218459612779367376067185634433858897537486840545162624853179724225949492274861733154791898859002774922018335282583196966980064894983948202536139332756452821735089067812745084829748182928140169271517983992196635038148081333244329356007068377047394097062273878196819674491569921474260142138685215479313146310077879840639235743384992730266285170779069704765780609877314476752677391563346596050370667048413273806310763226014645517226016651744808995175979551809891373479714292291401096372723800211801032115253718105203676834828427861005539626306977922539296637861402222514615149175501616963919091037543447299289722894392382215680566364586667215335252617587891392447986375192259154878819502617631255988990385580946471694648159509614801961206263960124945668757039434076405905353749050041944768617194312564382350509567945993951205446273748123199681497091842873597641814214336968615940154805404457749591844829693982780957664182176071425999596729900885062748068859022590808703535740172109155284710539639489571642452966756471588348171308504352489063491739664800031957038491661478975303932145410477401234928008086452678672056480025141565846904047266770423646035366422066238495267520364230951280820163770626045066819437733037196723817268706850489341103419008581068133634546857373299717150150311774005588957197721008949656733814642311756335238338471370073527008852716887749907587581800914397727308652165293951728849682324783381326883198341859762396865567176421978203205712992091198694428604583228159176123274954704529735671725276711187228021469918897349337926786918823470824746586612591169002355318342777586309479231029758023133110391324771740058490611435191151150623514078386008062399369802939764426787707406663236223918564011449241803037794393089112183473532170414399125333967884027482857572963527085621827164259921774401304133395690132965706059077716964813761633053262546636645855591709807898623811594132371361536671008293218410048343842477641526395723672152275234277029032181190876448359117984718773889432361156614337917123528809676962107581899401965601132643210561785416888000124128612494708334373215905401659519551223118574250828899417794915818013744036068001051813917431845302978632489779221444411029945511221501269678033277279115422454060014511877071708390686870794789083808384097828655225908325751726443979742337350661764613071545648553173174662843872493521123207010245658216495888904727241128652757473550582361271276731814359097688274900006455534218485724739142155828444117328628267556215990350648480553502602071270020418171466407738428268701586798973521444824954413034647124395384654635432250344965683183155948122938152440491881664679572835474711809670967788511614974880666178363951274006669616518834601134078999281984766248884322448777838811562575040845140317842727462575429442080527746065333618708815224043813016591550371317691734021726164191531733642578035339458337297988523629499177768391318147518991752157527819049651002784625974300643479038910756762478201993707029289024857209834691147120226945698728438066029772742787651502383097741816332255927013375925205666989939793905211551705060745693379528933089969793084083073477418296697177773616937173888754596101310313708763044774746025132286046600153056026361828068146443957488361049598378349538253670846396786793800657721350528686257588818089152682878322512037708969334529769065687254698027872454726335171514676403691805002032220515348547584197567061893179844270329161594991719948727389805548363618360065427171465566210413595933592377003934771145717966056201795825949067225076701722980439729592699643016621218545678546115101845982072233080533752258069010768464861445722143505233833646411361738472269928089427268295607457824510118082757572502190175694256922708149892882947635441128368594637179838172126795963072545276548118525409627037915053985216110546137788841533195805698313841693698525839973654752442092353456297656297386074799036532080156504488130849458921653022028475777322714266427128741267557849354243021247220089165647761362365119359831791740866186883801330868070454012733930145648557852910579083534241236364339780753397391534467202535536248281843109834969156921633609376322898915048168176666574946158445382388007304064966375785651416629174353184704567252312501686864698026867312548881866194379957002826809851581844906161760030745419855740064851712890173132798190785469969470547447600447543869976292693183963462906215133658252919467137023800382961429277625777623346757044497567976941508608534021267857254847736973438658024229120903719486801098453599789305354714257696520957629498314601985956533673257600836670123546065238328229803649154840870850639915276570629220390678031131781223676590355677116405618862662295722521658181859005700733832039477084218407995458982542034447066017639140528507670000430005255521429451732868256245198458349798392677198597115420283057828388706086408596470308787248975562816669059674820695214192309407830382896485664913910506334238098742475318135602220320804156325908351953242135962303905262300186695246909042777318899193667628786981920659596850913515375423751077511954933161216873533237320659996733817481293242388528691198096225472759794894266182291672668654110843277857130516839500266287447239624047318526940323457822546830726973130399251749515542320741775199441159278445892859434333514741093021621962499149477375944856194668205002029484802751476376633354738376318861372632567179786758785305909684860180716695206562206397878041056055308607661670631419991927982311136175412571024969739554488720521859733548657824213370994172588631727635035062613434022749971226068255159969483985177860115710746115404414041157288937385050816525688810893162756967014058715116139262406504203856640402078881404273949432160008572100878970182905127276859698482600407796881061829083328662280672883179712384570778709811019765301703211126433011679823428965509722817560976548428966558014595941673020589398054512671782786773106532211886531582081235576454391044197154226343113660639594862843940985986296455755293441752352318645593687810338113098865685094106303683351426693369928272147723793833032656507572815819986126227212699255093685311144803932065155422813433015982000491767764637035968188373993188489986437726613285418012875466976537017094917562593640596589072864952102791730134779322292032198688256588552103847652099000342682815388243499178515821969453052554287133870920214490928858897880772535080432513359920890872515289082221612753079132495330754523315041847504395782829387982097829668923563432772848305671825804457622582286283801500716110765276389644735405372729012599589921778670025570538320853394431208475542178563492998243248990526712156960049830602383053631269412531020513747820922784004758790939065913926586739583768242439674119585209748169327682713631865048667789680392677773060649698196960466384192236698051420823892054406326386890410404175074971661514832077739971361327746909256500596043907579580270514643289797191586991541409409232658691347924112593426145768217626595618199407421253865886369188856388503676504651622811869969476300505821019288699152329144140811001161237724336105940949279699726802619584380390731644217099205397433320761222980637471446306980470514164194766188797602581571733989013722534692353113569564975411485083858546949786448963277043021407730408006830776976004435345843507757240762917533656469004090624100527403707333132637422553818318332304687217625582968383412265264612202194963508966056162110321708616664551753420223345737442799514736186638789479827397166106161631904845351994599331009322591593636015821441313201058450945831255865194198071654960555987629177974785706050298690322653456974358411091332679634711360834963927385570501195884280558083122875115763069083063142933541528388068619849467295943831714939470208732498319793846156996460357205361665241881864089357486954980044409465861025917317502229991070601398604656351408280904638686071355152674607377731131805420103658309066715066308326959357876492418615450876558778470191148645664663758463195663979811713329176883138442117547983412264052921026450281510547094913161799474666186121538446357543213685553430939993038894746422883085757204413078144988912164510226742539970909847696216796090123646727519640114267898635016349512105589943487800096317329641816068237237016229252102192124148545977192426805797494576755748099798999907856330309716608307478577884561982206178888587827030105690948377364294480667767935413228356029874227132122647365289526222128287952766194712882460011243423340643125943230677699447536023898970452095091951402983742578584109167778319121379222577980100710245605137369148068043819881274114399627182462578244186174421761920951780328185519561493696709690532576710355600200637905849239903288270766143331250820635076814955503605325481183611528455945971807039357136021931383131836285515911689875544295678296992858889409247345057847253808955188555574782041768820498033969635566364340657063779522294475901899446644451844922792048621252412781501904917065762281215896195428764918833211028426969129342967232145508873861021628862842965319374684496172966384198916544870141615761219465439574062139182456932440869252805123468979467923456493804456068087896435507654761171915730140300785398700066197825905992530118794800921228862410918537166180845525406398836154194862823822614661283126360720983908268135654938423899388902991374414320320428189329925890450241217549779215289481683965129658257583231293463667203465888511353514938252002472358641911319273659618687491485760698004219623206313780536744639326540863546672040549294170477527564419380009287135975068517064612469449496995204483161409218783524805946140875468802730057397220574120261762376126129265290646567722981679445146811500563622917745397434320037895313725052064116298529142204483082162334577710013406613317541505073722974630428244681252092250438033243631566869532063983835694549103936301926281448271842469769312057188381409691818593349155276468168101734388424469372695519780988729017374405315873299831659149174644853660420878452706344303539131003503810850893655794729051207005294507771160536309568554894837471218125720554643492735556670777832042907786914386679705652635026803894334330506299833687528757789693173923291298027363060438319772186278988650667171639327685316571164394640642498114270446070601381511683616485971049640309858598241262614457052089978008147721707838417293923377778944626715175074505760840798482632330775802487553844945445862688540381740289378769824161431701277660077170871461922221481290010694132133471656768567844603191338957144406302521649425348122500661839507672698244377368851283727123100619418208256827513622251201787021339865601695653567883164912740871859422764150522460694422505583402957531643518478086674407668916626632760833518766760402679747100581456575581075911815228098192538931132183647777647117437734137098054494989533314970671897035460364883285269550548010598522677674467093171999726109886095967642249970879920184059039522287776767728160017311770079960208009278224865489089527126583047906716793993339781478819073071141903581704022344225361544125394393650585148044253250683420585333106486547297910533863399550069931191861906082050462466593885526878077025671148821950466163732344738688022475403152521716406494733345908310357079454708241572337936600740525106051249777501670945989230545006081948436257988976368918636540129305558629912948985169077969380343437919207784575944322859887320658525367755053157553152872034866946488166614376229306846695322037259382664261214913271359978025316047259145338315007987393614611832057411831485544424595329480741620705205433372567069971938773220278294685479917740338436911667980358142275527944139363047897610826451470939868001317725789070954278942369402574001334036571597250722019821804853641016564181113761716922740725926712491973544560314285202555144609527802817906474092950373323752460429666632393339304055086410175133633520087443777606935146172743822140686517927582447176174442941430800856425047286500827920830946922904045200868435580564416396117088394974018435839756264370014982011017998726557746901032793706451289541302195529169023043062297460607585635287506709375897754934884389819614691640538531235765680870810971001432998986369147017613698247752154597510031778457157006299261894815206438796532582617996894230313320958302741387454073531719729572505852832772057938761925925877602033669182973769528918349585317756742013919004383284543555449302257307275146796267144329161265919732845350754646165263934462306521273860450892347330256619277752477025188232335100203982136497033127636455541883007671487531239774386393107310010193733327883017433319376117687759155414294693938062499139915141108262363604295473733861608068948311896200282411650016614041107524344623709109494229221741883797055283451981287728668916815993262125203256164818071171989813505137894163470684502192614285383355555869201491714244751203332451300878655158516465938649921942335613405396704789043845862708166122507455189445708374455439371090482824918464735900530934691501582526823360724767797918385999810233225797764820302714456007064853715570984069388841676419193485537898250305857447073239153267176356318979612965091553431292595624089071934163868462883830568457782537316981209214774779188205961050349406391385599518191169658385858446205325407409697425104846427710830502386338299189005834901818400951310882772242691276558389262445621835431365986699354256451423701115578870581451409840348696773485783567631695128717175369209710178800416151729094562748990710058759754529205263614753041926907463271346996191684533770560462765843181289020929479060966463546945272057179484668911582694993968114142883249480434936646412920147393656542997793191854242793902880274015641042871542735784009219566472317829782624799494521767573851179210276129384636484834077370386248467124224696910578759523778144424687625234220929058067621827301789744454700396237498330599943027985364588132004506019286432567093770960930894426338160771082328375828787595633397341784408276570361771918248737500511935746914046811124987954175976952038521055031732199622420979933904610400036207476709967984162877445387613828241758073201570337391004550906433893212473179522581877602146613628007540017866732648222919733342619541357400458087310610391308237611505060635454878738460614449958390691347868014325108371461203592737478466571253487923966430770530966628608514947866593294462901874930191468537977663318152084639477123490257766007217284149243083042497373593200733145428539517703138526436600879222133614279901636920725626475577622213408168544092859389171397702835578497412226048798639442422219510122678716536362757002357565647309720519266890439810060967709623025228733632635007385907184649309160437777238904603363578308233700396462260037352817413103399086838757209395264945189057483380759711130119673507761405266425654689144861301894399215755248611852180065615994043885395464422686480222149382975808602298956789391689362193566627185138347475844165745479122256300656332483268356598567425260596198972278952696445747807092525671507452588243848907109839913039684927766147651412616345815315516291974362011911735256015434620165387822570684947519300335841979147136750915682254373619265755782050567827733785835140728165785919574234495573252103871801322896857184103000147046415399583918973738291106769591249584762111546390834085423794452382355831679021481047496657138234455787670682561049987271042786048219947782712450595325552098528912695819612777774515548329144264004675669707843575464919946693469614971156500842081687612441161936020247175239269688957620090888608759260709057772143173280190117097275945403411870970863187089078611342059214731290227577644650951292153096158701499783976596708865746845620107787273214280228807817491767941780638977141573618171417368848243821699326669532522789220106022157445979807699027077041748447098503035814480355077691374447601326053478495100730797464887804361246512539332341717006442782500238802289558526811024205849035591205326233827284689198073189358649604291468461780498346945221473478128258854925837234070227424297006705263433883851770224156095026635549206088111805175574567518931520269559990968663437753356703501970986999545821566686453952570893849559666997458509499578468716589684451633980716767530026724797554339267160535361146304533999119947812759153090398707237669217273987466777782336642258832407652993807432571207017188150261297073708640781553975689684481632552938886209246442615580496891111299823972108929380561496539138990470131504943014092965373796948731111354925100451397369948718884665910071249814355301359359918931525510265468659372245145138417363736629684401336517948445186100004680984954996793590049375250166797064240409894791927926775181925187834450155928658205268219584430372103768349166611948885689407555809220828044300371361327417740896247336619717811134162868521041396312955250101177133651095530908156786101136452926142422790914991249775335558952320454698900240045715122473433618512039328843385639514649082568232370353715284170900636067802636285755453755140554051708904225768017685261350196707168707002147216978610290498690635550234696194251607659174563557184198555480090477117257819392074571874062885079205100046101491070913683903619926617438797413019148285640045405424381219918617487597869407622488557880372261062299988939715250895665454089130633565461984624870798825867444210380737866965446190421674910792917244818944429526395059920710598287405395500662083036462809753710797649288625139850895391916027935514058848245330267904510501616481516650882398384862412459781021964121319898579415713955232900099825717664871320743131781821809735635830823556482997694311510930871043511533635459693079887334985399873326116442936283013055942761738821309846790335800275278561098042591564863012107763799382779466930409280356432465726682711587542116946398411624870562719750112348214961215938566736761459021121759729498836350553395655753482290469200414988497022319719841514216870161604803318004864073273926987442133145881573644734518464652121276165051799348790647639897479305281832201518791905184838438730709324640554183086997208983889737371198942746986957928971708810234405849056771061548056722632653054775799095547639165531423538811185288961211020999953373914870114165678124005983879648705301157993384877086448771941516112479580262815257900803876051126842822576737554569464817206614002593668723383013569320357637733683417316554689501812935577731918035062020237107301671197569728596900527196821235556274044497368067327113203074262168801334079169974888025710419100325040652742102440273583119248922768461661744715099268075267616236042175111372293363987919764823839915228034186440608251488300773533821539926107266120011811112802291503827488622148809492930579592579670911342036712357033352098470365303859841361131750684148592325700395703844837752637143622492958635975539013196187742808104418735356486116486451797157631374818490777065678064084440973489990337697903257062147131193764719758802681468666767273881944740412515903930283235976076907103357598522092853747123051225312238541061015404572702204151657789162860828399191692555392632291125794024322194407867410813082067090763012353258037765796217371953260824387499936979603196698002761165213651391441002911653113424569110268903114027378427150970832398606884198198252097271901259374063042582771722338582078136316451993386074039851003484887444825510513454940516922061782204905812960533166709168909496344165149192144736868699235538252095685031092778468146171189476105412938274671103176658836935357055294234331803850224665015284120208447673859524206869682977203309746362725656856705078003833946731227582709205992552566131080577170554014785318743331690062628568934243573612211081326176179956848507705775062226742568726953542413340560597962772243603628396388662535695024422390954844361902462361266601864858528291909678406341577793084380097806785625965027143492382544319098091078017869076761792018400224510838698044670021292385523459182037006234888354467924550928488303451618572554485932823248849747025110280218240136155506695036100486010804913964870685692385927520331455463752682387203022003434476196717240419648323771879747647666527790992583964332914165259189314088938257357725106958183097301689022561105891517629674282454661967609863620184757654436561508185261281988861403319058758294108474795053113858420935298179970979345734867161018822132226049741242419741840410743750412063158764773555045295349510931995343220573919881742988925604444586585325029135969406066554420797827026030156111990834710367785826663879190096963746826368025567062733380891379149641878208924076261161322457087078219040214676038415912141344875268904066886608719513434360539032290330266137692344621845322786746259403255441073340299897241987214332497607406533892415282116886561818388926790499407562812484375380295190247242464683708098639364824767787446304905545363442281764980471349988798520281280733770007348331336289667223897600832364212038128457819604872353987114648819769677737354970424417353781597821508042193933883879797231356347576446962033294277563303717663217605942924912726066564815985048107099842514017043992110337023194624083358166978234034922034505374721403907570369024027312716566561059756129622753371897087801642504849565050900727787014346967525256070893194520742623719977365182581590027748719782007469679350636469826406374691244758921360162997244629526687779165121150908016394659941216053482781721545176339590769178423405037900036171016155020776360735041295387444509148054387329458745528129456082842975664758765576080413010488446536149523389990467674553295061566240949342627076354200362016332032202941254913338891848815644499437994061472902645566005900102694558738749151473829915555851862929985850324385716060422606723944249765517469806720752042794590769047229512495453231413460717113554120407786301116055275635031527716428068116573619990909009794853000942757220129621662399805137985629005523987982307931109869871334893155320748705743471967200735440009413901364859939357722009803294889958226616774470832511929373239094443973786408790773153005720575172915428377367125583051327877139285068909812476177700619554550372329712363896091533212441078474177253946313067727127363583979478078090269083304760595110524906492977797927445448992810219715677505831108145024474871826171508827688500408207906912191775583686479221714178224250380254336987637140570201811759317903256152939674059819463764694869714077024126309640602746915025270264350998658467366179214384946765597513243273211953506145081665669385632051498645849325672120782101352118212357028806090603098760254116358070988040692514393724825551350338391024760595941026835890988584628011614595812813173190070492121022537663986544312997853001403893452377677379566690470286659974758463312095053101903782774616247105006214254313145444488718992253785880149714956248871934278777748785938146694220790350055968575029810889176997637895731552710335493469117151535705493451916326213020149274027929328472593050443771689243121376291533705158076814886281159483712298185479560059260388460115659805486064800976959797780360306863226444146497053765889946706663193925785107982695476396174432476733468027998328654063014902977052299952330980867335376991095805845059500930225247028849027436351334165309447173835007516298817797240144418540883422174030132561676666609409042650905089656566389687668109577491796524482540135263966874545078564854347664682844808536577669464821506337170189152837580590348780375985592552904667501969041066860256998134084205080159614899875839033985408146520017913047427936379492015898888089563247393924771441171128305033165154872542232279179899430148105122837297851733017066900494953363107224142667547514359967877996270591851736036116085703519211685513619465622380316744853234567518359866351055194596403252872056325996063236306657674788672443840180845147125632149696512844916823472047199343898450959374336110062853008583756103120015477235506222268512720373796022089240975265794604466387746442169085082942578707995629221185218667186829447976505210854485750147746124652191073860217142731016226843317252848700951575234745838976631929980991279347703781759257801758485632139242490453026094831201754751092351120181799427463441190401864237477359242398487321037468381010413751953960149364771308031410355408126337256997452409121887910440082207088526504891081504412794422392094486443974803448721177282999765793383113596569419864596972677440126850504896966526738770845768175890731055965871464360469823006479712839985960936321513140704596591785044198612991209530003463584558251750507142735609448004707428858988375155376237722558120193210908308239408085920641073226559539785308082590684711788402276904312704702328740020556672767325112526726265194309922137675695949200858122207315664583034128122721635413995139473335743088078986489579836328133699408187097843511739229674746993404317860170195195140290021096970559477026199493572764177800413348531075975831028787052112056208592957838240477116150901520707529834187087852184238405668593843952608011551418372194059148362564166832345385417060309799298672548003789383253543817685013302351678644151265403040490433764894607626196315279411546145561931661938190607750973959665948283135749990729955060736375413013251855662006236884905950096730344940710245598815560389066120092074722064846170354083441678306033214698611670034446045595777787994520237334792326703187643090481019657831632426699221986508843150948650329060140163477159556212191982924568725619054181155783382725680465432052304974068905643350282296183879893706552466519934059677254476502856392777035797720555167953590917868075913648974646829088185361459241138640967777060393688657215004992136656131112397896069833432462280459921409507048711971258128100083074566874017668240336577075680186374081827076468358176425879769154109661602258574854467392878280086051521892746664247313918374870353849675305219861229976946538101596633761796825169825222611492565577360208084337580895574380519058414628469253804640063958938678698222190860148091222448331996208755453621102816688445273334777659370071417773329596138068400142454236370217288403979935562995411064547943530715082894510729363520971758317151221685591146599753577224229188973985154586051837237946115203637014119508515426430944694027984512983433515335248696284329600953706620307068770083876825631340796950462731143405164401263708782193653093943438360650683324991274848092085069240361465476989933374615425985710755527826990276949873125075543084388829113407106383261182948315456744843338508818883921000169404895849707332076915521703748663318224121815163101862729608701157255164875948486839344128477178135773206292427167985729208515055424021204301150717685327061181943706079403165997159733588327898128279306328656640841383855078279034811758386266482023332221031705290766929261750822977430727177636061773713595476101445277249402009711244728895208828990604099004808728315282826373735767838490666638641158905044841844973183253845030007384056367142052343621770344388988893611730953086723765670185234920060130352728431466928107756153657825416123804197628640634670802953270461177008580134376708305062566218335418702496874907718155616536910530934271615200203457264856184528589346354552472929755015252378999309227896471407368688567652325554777306468628667933863056202617934838942102966260685487292006348396029515360231688237631950127506823860219162192377390504108491497407672106333306786300243182593433623380316929178674466489854754473549113861664856270043228007166784277825078884459025765371981190526391322885331521108447275563365947556337524542651379367969860969870970932349821834752543206659528627898445120836081595890987567721739221323512690728652733706323944218100814730146090818081604327603920130210839068370102852709546458112119345481432848810376161333993595477613627266906842673268321161389039537608225829171649928298947351489780534118523518169643863449814320825152479853160016097343511608905207131663105975554471315084496486385058678197846940398795733870388730988148343103260988152035832952959826252713802351685209804773225459628850155090483160960742053090258285393064711919151630922023458924375495179678766979300849948506857860296238322558522778239964732548299160645636749932050763719673499618860603955838862686799634663407243074498061922197594362864098010447112310113510047330881693349001228952403025254039719119622826979183784302495830430042992640547866285599433831823428243410333401733129024783523611301480040035751061681405683943818501425934599857014917298989302813814282525494231078847257621593985960158078392396459358934193070605556248398888890491800004514935339387003413965489250521704212503654401935334807222969667041156405402808138589842671164155363221330023828454571689890704207886909328034999746442578544152133615757837362248173682388083718404521344429256633496209319121678019565987752349409403332108632473146272149142673162134717286276670092831777270350569061448694506010277795972622772203879609977492281787730052706363863899313417752682090433274170367991591204360969861520343001626038876119286440287202067132918204364441723875068737237649687437513696028202681840379809299727443638550698293751014402993552833260194426525618262787184457194514523457738526284755067706750302725211140350548251831387941467593238204341278082177051416428563440026144516477298662536038677923967021279471261291005090713636610459517259770097084978578198026213513211048447447444769269919259799518652814085502279609020252081082034625158476058737487680763932166143521309183420105379172664905061228483172264028619373294033176009184855789141848036594680482742771225246350167030660699980666465383580071560742046584080026806039743570603087789608714920152010605539057369446623781267294973053594754479134601050059926155732086813150617161405305959061513228986127255677574067509728287868326638384165255060559782750784669265856268987406526561004685389003661415845671073564948887767559660692527833378711765700048198351987639294273275710282528316158541910513508895475056093899696838868390135624941108859016200488236129561167420142484384909314894278495982110896382401347251078369366926623143101079081255960200697072494996835635575900597737034984526672134565483545390537467087220095132272105430318192882940958058120998203103998528099598873563444419238073965490866065618832700731492811054574846620314004874707713252180801452546994494800488359560014104533304635777131082714899861832739004205359238547729798625329904244171049207762707134396504781007893242567404105981955262727655213685839319799502056085534918414248690126069781196636245390315189739174620401965991863686967593834586401397529504994743822890433335775421561245363592997861519491316576052809627356156782891074615619338808200343476273168870299792013814929940574463512884213871974524751738144933397992417806999461481529594748574751585263607003996070783514277386982530977472412519137413292131364238162021358293007939183223578039316523508999935515367381367599484831540493217320924777265369550949142798869210377339226158347314623172627929990123836381976076390916121878661403303139317129339460151302267335863495883500195551566097989749990317885241380523039594374822980863550952886194154463573807085867503335540386302681387306744003944436837835662625273552771269728831528711941379818353621204274166537508581504464059495509585207031188936143404655391886315498413423854197146811577062621002194379983256307409813000496754987885387591975221857249673755581337357242228853122700899181079218743580076033525285765951356116624657157340737923819217677988166045288360928453964016622011308831231836130123246527369466854356993540213209913363463728714009787968377694285987601235918195801993281143802109695239584367008522499529175039878752428514214238786740575068528733090293231616141256236362059685503115885705322505163719861228177051382718889629848653898841602687408291489558736573858123918938778607305463413267760100390824545942683222421723925188226391535276284251337140259065207425608794078392935943639155641272344793916050938590335192763363428903010610340844869492432528495754177945763277030925473710982194996229807926444360123993284656282004617714035974517010081653698835492746072884385401086047422144975634400572733071697179118251785928077704451597277778035930921095401600811536270764096363237511891779139789153633344875191259080247010005731982369718503022240812192793979855403652621130984444163107263910051476619359823098977260653857582301144027034232640018650805785315677128881053836786445451417565740667541142127884837444438935420522488954881425150285444361447586693907285902861215687798014710691327036606432879646704784528140493907438384179670730864552016291549210047860669479489054922172083480784473209035133679365102418069647006445807089517876424040846247235475250335744614062730469340460689677521424875039805616655730082436467563749742678348907299342476522607154180206675591974732038021133347420338762217004840285710224224488718260616394350689106823077955911066067612657371008466861328110923477595116381365418256730074476468408768020781512120629034633509719265487023061309679750343873107395806212598340914812775544252138706611987359091660148762779548229908132692621443396948856010191339901756962885893445474594198898600670744507031043381299534355753206778617842173365383324919557917088597464585670973458545968889327943595316239757178996111591463836418815756701458353044889035523202119151786132491611493994576235942981922113366459964565796285769093385546718863443538264042243852351226907157723425414677615637131389381876042650620234175156897978452840814880604623342472984894994269689398457196803880462608778343024857873362726118714559868454383130553294950657251975707354612632355994803574146401364875773439298729539620845153380952524248284472015287656415956175262937551307533130016101151277700810092507804885493837350352870925167293434302459034421006068751019177950960166538254771443396576868700803364923250459307700565797365804911872852417263206463757913774591467013285950696949411538735577751148260178421622645935887123557250640972787558236323767211210975630911822487617114260738092904446573117168586382655817935998001286279851915190978382547404041454527056933085270908496497794027623404097034151280759052789572262494701816559303839753373156430944791915463176372003837629865995376034255642587538524703514959782993612855224322256535593725548225944513453406854852191387237133911024867327734285726191858908064280588017458362283783223036790877027673218170015136639979930611709243735277168798819719942025165147200434766157081510472429343481506787363576306431580056695182953305733831374667011255084929493061387568708169529911487210032612422075868470753136777353122442095865897088998618451173702341130866635071560511935665189837951170730459814455874575500428017382006027063202020305751953175446858590045373464478681544718030267078229824057877886075659093394345654648695566680466148418271122905557743259221705229669038057960324882044768879467440117092617048816244690871735106519852410710445436934263411746291216268549582788354785693878194906346442524341573371784179329409129532212672579094230510206589980201009516349497876074510545100281034465387684392485563418086038037849051344561393028083905717655053075454361560397904165442625615540673121554725356537991921055335017262884287867670969509106504794429962903977496129851405942463714457730080072493698963223780361045137046938488774784778246480529102100627476813892157851796625865578069927534893639869347843687143500466860920990131257430566343616509497027017214501935389912255680319880757634805519813943910168176240673976316807947818959951549530946607520619539835754643885735504311220084252066808461864628749979675701694200589694420751722427470311339019207993130721882609366396758864655785026546527334466705450554564260467986403630702022155521816801568481547768123475587796426473071375303219433988852729699328024597360917768785976248052472504356568041604684573193258479348041347062866305228225719901049649876799777030382237413604924242704982819161631285740752510594599018096938952275183547344440186763821724809840529699343578236361032419419982125256193447994140359979128929088661859710009629799389012490470252347358182957475033093066556119246270829049411486199922251324759622837397523926426269554500251732797938839165603345690534596874557379019550674976085253645434734190102493839163346351794977826320982332707997416026042408188991409494905196317135006536952931707386715890654061696001427750576519943939907068085675191134090911284786074729307693067262552205472046736480917761269847763355387693917806207988881918406066627291189882260953589389158208241930529923567018424385272854029202031572781230269075954003528185499648622635607366763652781233901967080978592207407040132523953090710461662137778578166498964185900018157797268364136678041444994985712569341497785687124065031391242608955088127267081183910745341621395344672439730137852125211996535337178841374341167280072430269792123986956205378782058742101565932983170301537796732989835591538992365251376253162276003999907052316820547328662687844266551638762504615723761221510392669705652950107622617813762094456083556846851866148481909120304637762136775373751346609121015384106656197268932807621876195576464292098070360693286445689563391168492826617346895015479671505635777404073991592462023941907159731239225833820454803544546996708199486485741445200264941350973937354299027204780737914589940923939692891311998850274453954623140151950146878092260691635712954172299580413571317202901376095636509501178660444882642579650553818429620941756533591971580517816365969957913468620712760037766173739197663413086553066791199945153443649771383431750020116342025768894719347483649832486022245225940063762098137873539191367458073113124469137693405979755979488651172652737533821746964745945502010105319223453844838118713360414673682094491587221236212509275481681391428797494413937319242267240076796687528786963594526957627282034289193426569922733616707765721049879369809841992356439719111591552127684742909346964738257401176878671269083689142743772472797595194400986134719944773507694353302650093829988059607240469363870447271356220802717167083447939305181480967454802242022351388278132489633319149957250940718685227470068695230561471238498602746626646355162377592207051466284645212303131105832889329892325993883564536883202090013447810762670110639579027082962820197164026682044108081835602117916105019503903901360304953604889181746149915442644877809521138978649258239982734791074599860915004894666048320251186909420256855900661511179782552461896923711860157845165544564807072301378645812510187547759888631552920222162646110443192182170590409488001722401593123495982990638610124224506861717232410955959386486824409216125351131199198296495516633358925862133316151719229777558379319679273163723419347311466612434953033161609919321994705234628010703619715560006328330743416311012945001811816229417283406162291337090544638047234519273087890009222275655842188731142197418941927153216073678988363727408573223076863587238104592006628778825572144283540405477066334265680447249264271873418498612782814312043221408361675193950645004706568346301933881202813359972158311244009694421353560521156756374220546605430862422206792062751046507648617714689530165514947741871041403493359865820139902834037376592274194147224572870911520993574236545538087585277309572348488382179847558156384578680643863526558856729524485023113716871365451147660023869618575842200590915795366956528645248985379337830929364401864690203142704000037850469563027272088775388734259434648762570156078412440876472264542063723752582502915212799418617976075304384334136739860341673708998061112849299506692736676629440904175339463707594275241785136603399680409448318024109654417553922656799565079113679325031098899779361874914345600079192712590475820432005598504217747902495247076962612949584389351503557973492261508303776486713276825564122248263916911207757366382533282961950375270980452974452983471714697154916353935521440475097184515184373503860345000566895366033276327780395617187781372614799997060049643366544428007764946092516378034602853360394770247094845973184853573940166281471364608894421809302246170292592770793363533303393757315583384300050218972965996571010809751297889792837158097181612877713076196387233439145336620956074208874855298102480074277610048234371720078662484382852894650488769075674138607085750348390692902899701674300698481206019805983355545145509786615572986046136507122788529221924381422246715911320818833098958984108975873687406531001518611832359304601725397717588362446445502316190512552815155092488802576886954336684306732152470287380839460961850501350460731218072659485622603190082406729371131621836987517843941871753916910211193500787332587050214235797016685977523502611032998742898929179320857988611356330701718821071145090609926787470611984176695536445406137720756929442508422805403036828758244278201822548747904435672151358297880870657518145217146840571317459799088855497693685005861312695668129651751827625486004484618824814833486861869802211245768340611640737228284467734811890043599397648068876216862605527628494514603861231370189225593795281469379716234912492127246938481501175012146622829381119498197666276945964445948560483240024247995734181142548619511776439301736761522859038617096834479903592207533415239866046512273223433684287421216703935106764438767335505195725575427493188312238453257451470071879051177739306412297607158979482458839081283452406932142667084394335255964711013959595633882114321048284152926633114517525788202285937287627186783616328577869919195714778198059202246464394785514925639776605310301009815991132007551161948429282318302775522112286594624002959887846147309036643918908088341159941062004588785219397636591737022741967458067430312965680285342934237723048464143416319885190884935547271190361890698255038795550155398752106073393239826137967231541844479320689373416660038533045390119317930045530220843307428099019106583441907648667349600840212455843741976813127161110771861318664965348278464637356516089175785930523940855398002513246141989120340260217218533547427974511089600969296769166717475971841292027090015084388111661724633201494639420189382681554407783396845187094175460723367116197946057789494094370474707601764280796145103505709805368834964669930415529816240632095723709529890474491448760738494453840496719350098995992652816269031814610229834954756256404236889121326149889305163488555946582416921812473888137754757329766858310261045579518439990367086735781601342159890858188469569747563837411935907291025606005624850322783313212491433077754204813598340082053781219456528844333731814907523062289401416259743469626805476820048799197355290485883203722616102996672426825998824557446933249830819087576745858822042282025989703526359690028410732756636345415264775098301276889888824729649492748637095755597118919056656109514471006772419435292529936638566662813286171163882115872038464344686712442882458543683161323130322341880933536844275243677257853191733078625695145049632750647928739820774358191997602521087866263924167216556878220008695600357615429919706392600944743456674871013299639211133031899729533677526068527911816897294023130713021969536632508981964491197522118802899839529496985716276306599993664524694295135365813358398266722091099984390246744190814710271578112645983056070563289212869401880178624553375128040928864718577619684856191101815227850809881351844660893012271200841842522675014675527190130497177323671152402855200584041128196137974544546705077612586545322177172331342693999175689907496158339542652926313620039239128221061001642016197218581420402173376839971955615667684855294485445601483363566223946344809885513389882168182530530565944509216440132064592119991938016313914817464909335249200799411108946161580367638998044301234477289802189828967448410982553201522551310114944486896338476830513790281657221252052265552850505442087584297780782707804393345596948660491319156508221078583509971039102990455938564685891021891762897556119897411015121104821097655078733037490719598879291541795691562350048601291526796429412473678606772098415779314388773012525261632020933379584250027522127079966569961943812006299740582002146339017999651683370352943407327124157836361128126838078621489109571293769149739057135332056120516894633625156593954927926596997439009552168791485327711777902804262892535553845589459070942635900729328028718053931036966173818207193852894393214813979320833218834722272364880940028893458802659229931172514543263896860236840405888431992741414017248446121662147705932957900457319359929944471615873615264938184094258303771462353319231286241966801725095941956814823454599306146740158120729572303000622247398185371914172193575239820798492681747640350857651005446161773867258197553777387605530281755270570987458734438218708776490668521541118503394340354062753307724312640649214597851385890518400598301161959357219884899700281270917408511499983983125923192650451551784239662088412720999726407577170082063991636621944710728667440985858994782006724598240416094317747886026937997520380447435744667267491287983947030623165379713992303553351511874061263738524555390557324472736864502980196462089608394058480645540445099473217383355238028131652091015881860571828178476983896972588640203487275378422607957289288863574015586606882890607893996806116937616929840903211411073704628108890205102596794602881859942657711259800227783922182742361202196976999125609169119288809928786205537007392361417564012207578230863449332083704262716306324393245815594924743581322015226709553354295581127482360935734212713794821944336349664305355211099088506386747932614863993256046511895979486121723763149464477267315617711084610666171372449690741423798018227453813753544787472983537148527706763614635287032064860979084346195185072041240107965867444993698814327305777261711899079743368828580766182441644333776395620110255568069363867313622352125622248157203079620141639477683097919635012838908211589169383087124972084204031383022550154352232670930352465161533713005197037220977002966849780008721815120624189065626340784819216250755509714325475713340284386689355177914697128597990736917227984820275082960759009835378326654505251460997979361204664358017403947176400113653447413647735936966379336070006089650435529520814690821761796715891932625877224926897519754468001162933073883595153730031231395514952434441132915930699129439857976294197897510304493164816369847251742518758160718713885909289242071136466043409444208125699541955398107606040624182499094093250915700886363907229385826242391812388197678155876932328237637841769625284007662300985074852968984434494854209174571554710577159254150707532735081619471516002342374433154130148427877110224578760388481357334227480595498223946613207577877595833444425950040367946353618172262619385178785701912701652418041427440266476609419731452960766318042700590248933164570372998713225844932375431420813761580940913491369668891391486576945758222708231057603779259328514120782346881233423985562925499520147756749633137079354738189978266905391964439566762826801038276176803286346507563774857506624545884972639356306143229539010665813613302801708100046421285653690489594964762947170581309769271770254375251750172636232450880914546634526722387837179140483166750861746733359183600746914861314820602151746528796413400182216874394969606783226952672613645422003434031850488633483038377529550546562757975326272721054672142863941823774600808571465016854476995856553924654236175905582868450150247139192704031109016834789613399039187442953810534732778022786828842328520698437262156665534381107842669014748415463247158489954050294347195157333942454851587638819316077367993226888924097569002441209965801934403067630518148725900507475463351570702415150555453347990135033384534780982167572212498469157388983963328795597639276834998975552540467683649188985441305924254220099129550643528505751293065491426770949484607418655856827766901446009968342495281567258681189858120953307718488143983270110997582557516964996872191262981145138131156869985107553290463982341745821942354597519539197595399771231801627264223063416852462858935786556704148492315720205284054878453497758556241274088844226087226717321703076770825113677169531474429127265897347575104378665519403367293507666601716183072514967327398975159374048429684588300176583841688008010337139379897711954169390020305875600163593284276382971628225158697260605152336398980156204888430985652208412102901553490616175410885433309953495091652822166094488344828583876854501645667304493477256322997301499535523412121397501606070812083233009701009061847263397044954787049610791507413981542974226413920587133394415387241692316540528722188042763487087217952483546292027578128715744317028898897685335699099815606723797737414424063395821480986142089059034298574248706572623575457093091976849825949033967014023215974459070882464883053324417074328176294149567662456228452637673987402977848108284022955546049466709495194799129863962975872860114230764732851717860762852335101057845282502543122570494038162378817056311565909639478464710245808709085455080849642271938027510762168518359646644491429420020185438196454529983376362269231314300591785078669632583963577550456845746752249736725068615769335861869293299051152351996358768151515522747126009803500283475780291072872297464639840638266561477847045490474194345131835088836429297988962481978344391369949100379951025122848150377009034338203995926980734204959299920694010597019296991576170732670599990545873757460856271783889904209558485034351739165753975278136819127672961638992617295790582407723426424343790509858338588925656461122864005883957936972937343587738972583442778573946781716151756257711911730737120963975845281658439692447251540325550421799475083652067116964573401092409013942609416425420834968605794793731827821555902874710289194614828359809349410257160811059354185469112091249952979645934300925654675353468759989526536630464064390653482399248743810901737496446937533250723860005863299383622889804405529458789007104398211061746796491877041759992934913819611628723873347153493355870649768349007906506655895162962227367336291172270540276320935679298767076568160895830909850564983013585151453080381771827989382611633132951725610702232526768036980446400887247793522317777618910703636442311609267164149432759468194179554634380668086416730656102119279205624678492581236904777541965748054132059463493179991815866221040910493431496130006577528837491730479437585545055879199819108484856041277303776763931890977216593277094766792984737133793663257697432677453408558590288156528023239735041587708435710585304247458747019934128080437721841010920682689240122731766037465230664845070563116199680908747279270655882491290683213089513450376012138376494955572184470027306742005097799031706753170102415538464209679691203130330125475603134851342119374220615836136551964158903308762345397403678837310953889296900669913758026529654384511918834730339651978689423327531542088237261760206939981396282600722129522756660330687540190482391595877230909141502758844565177961525260389471838618810115171148307877559649277500998071501340801719989216499727739076610621481712685744071764259965468797438445345182962569461852074582322630528320963009870722552822858956617689343812789564718872733072017330390184778659565477695171741977386130836261134449642758657119512133339631237134112284432667418714764799996192007904329066613768728856553007096431569645813118565741958871328545645479751689823787588252592572102715845047848872277062633688545971238060653107129812589032892150499741318731874538312356207993383187699625412677090479356934319344746786833851778239701057036227269321069329479434450008399341480504417312555781845024897279587640443127465238905200410677884761965657247278653280026995302394451980440023878479061416448193030061068806136001737485021911266689123691359788920668721763376454737449565767024395405020177768319089805142736163732314721282470821298865378495926392258553862860057076609172652314494331362006819430721733575674624311232033748798961858671628270670811306006568500344805343697491121162146054116309666695494144721313444618336534504813502791725940111274400357599646532152859369837731519309015700370895832130455511071642251356952520181611481344009399574739827184723929876688931218603297089699668865119194281501695150668175863087829470873368861657642258248939206746523692114738930965664363054416403730041637397400963881448239881635712635048699580956162821490010757715395005893757154096493987593117446465890089233181116654985827327887622702681213905672642646485988771903591259718743792582367134220546437286906211507940472594594689186370730835424208513722452327597075111875519615735286646058959878380029677970962350885471593095377811140520037974785097460140730891477836336064602309430747595477765390548472673025367979629208566264006869456782641584167953688721666038831040954874880526550690747653073696943657403009257649129731044291596766892912692604071253605639981460829383586369210050696552277180069923541469158782195841832775749313405090849365824011382203700108880388481373054932439819119018381138564003821615492326680440641296692287743780949838683610036027274466730381369312524497805130380039847394733381044856294389239283623358883575290670855508048632983639768115887960503061120651538027247566672945437416628428980939804733728363950813940017539078857658133453465788186396270567779094638760143855586675235579856456466872670254223923590385668744833160074503182978320939785803428585488847887121772985533858143128621942108303842884385072070744375059399440135147486047134647174852725834611287446064013695377124014517198045109047845643143790191994017679489004581971380348239469759133976037990256622318054595310458661433112694325813956999014522203789078169192457244023843430062351193430495553535587449058606052111720491822532252100386314108369952277298298677704241669614786879683183849501573708208900832397274340189298908324096000699996433060214719050359741823377740906594369099967778140272490443689027118612910494421996175381812885246841452313600872956811320923521274804105222941089935401772666936258883773089376506932352082551608758097156553684594921694105314817040223744809744640861624550639599198304487857894979575999728273955404248153639081849749937266272201858992871065899014356242750539536049717027987110057343523535896288389561240437324871436813951814246518533975168822535253017343036114625095608377884155102061925292683742986161717995381991849610685628370384458989040556078392815303306643379960589517277695221725497106609023408093501678444213958216464161990697914094106366363198236944190804092661141138087332116391674820367322378585409480624748683260991687960251858222308156847099101343513729119876821139027367374396998934283540706050939207567845448267460781234213962443318217845374876708502376421697994758027335070472351047581822471075439236482308785347739338649726068687082038017802764674090304885081955215509163698489622364560013785032071262833441558436756346026180739870283808757201365667447916158924010484845374107953480469954991771790515540626049751444339880355096017886473733996726973397919049774939559714865046915718302629097938746556812390553365524540115389143584357436654146030507578802780844057214802961169492928432961779606475162816409045667044596168993772030032965232045994630248646683170044021567041611091139318896757261653598170541445924722874123996825372494924504851844185011870940025812264705199119902483237095058587350763303238120771937188543422153896469197026811648558870148771882744446236379396167719115175970540112276911891354611815114109712551767062659545850502867297684505969619016817889179829227036546107517117446173996175308144926973082499087669351524403800827493577914352631102594674223492017334327775717113221704422413727697236752588807378904113752967980853159105971710507879030463107788129920656351997396985404316283861951005939940134275354270699522771641908767127421052118491610587771380993016491764313458737237738873356532241442724670994446669729361943332673793049765251918258674298000933198637626015021090868352370287648270615802100035718775973897955963963549045136086429228516111093099102922929658231927161650018593471887798166367217389666753356087938817064448662796428157210974064588385154945564371257164264615417961696183429596978518294082239227715611001846247845981168538196280638274016739638643208539973333934570157921379614696885662121598114716028867252747213871022610409002979192056373597338324742085781067596827602638323855952846337747420574198882143399756425524007957655760146075935533554697310424497659669122240052034694378423712282108288545476508071266225445969176264461192145625288901278909923470721301770075400342663967612316794635574514738994604877686961010820046259233822454096639128760322661558864713573625465114531979324765391525180166644119911707687426987504177713235157630009900095154529242630869167161093983503745979712505151910727639652582067060199908525791033819652180917481280457726302646340656781199932383618875244162292614934045839437962639339091649622954199296228758253214279967343066157302066234862987624323947314358126271389545737075183383443698625099502540621355424246921700930847393475075444804481602053752580022977164884057943882537387749195486360522062081388951915597338845023087619139429830663122980406563404472391434991154042593493714469496721210131032095258441770631647048794002588418280431486977965594725534321250148745560545245542632883437747740438311127931978447535728893217791274919609540970173104587492063734228590920670664664297584126615320190031860084746419216182044482742735484541837249193999092335610814355652854664931488389858647872716636737867155981919855155311651376895595091224078473031224736369364179924715108881813906539654870238399839241778212422457541385371943004432289547149138499465631090062784811985906497817949666582667500999386139754970753345534930398341630128404448175219822033848862805400445884732466277414798352083851240574042406735428564951032648958282861541159591439565684512649425313115165623546494030812151630246427735858563481485599463574970549030436893780383821609200576581107489588712917238635898218259006888542519807533997001113321147172485945142923579225129607519493116625979012423293937218983220538708424188793041634034566760221626301802983338605814337164551456658703358743881063873582536016579425431030377488767389994983954332348797736931194878469916874292936986008431011986634200271078884888659876319834705221481246224585396496547026814456530254121026461064990942713859792137781559138104411499239574517124111761817707289220193129577337154390753995938980960164540313072002586591745910873828585520981714280361609635642755346130611689652578376058627353392198130846750854301674660805753571056077466227726197920262166498324650990280543449868128212146623074862732779184739245732093804275108225290039675347244674961731162613639493287454875324543834987389695348339579501217802160821848752602509181515894833481855869352604216011006123967183115343486568843054054696975773037786725059384269012955716566824759373587428037539112192052782597202148006116165456921540127008281603574439796545058164435569854774103501804435194155795366436574481139481956093998867167767383050619126186313512820995991823530999133384443824231699814798732318848513164060845253407838930717495320499220442411996712558974881798271558003337324572330361075134873602901128021307984689504842980963544963053904490520401930125254382140216918145369789920205532951002590975360219651497738863676333700013428465704002994515765909785446917512625493582712626610015248896293903291663140929074862210586064921022103831449469763801126601836813143086581742088800432370199943820071000801669052285867206881809849240955487920012229203354928660375062244644768084725553271167357678580720336833803642595953311455103044336880470585563008535899302228971915390766783344170530390971272283990228847488905493797021941705817001571519429575908753276549730147661979413443022289488264842384725826248848212440760092242501848926582766702761061490079981755584501712386184240183996372947717514469951355329895372785961541113158984940965845251280732605399272243617451265950196098058044852859396648986986304455992536391660846396822624626893932514688364626703406459237423082645281930683231200831584103333946219147031546614247243428618784076397919099954960031891798698799107999066750693929453496624320729951258346544611631944702463292725985845864455167171952543858572440310237571684003039827022624958042404298713562692392258360377327836379212745908464903361004014449042435785036670217169546111852827248387445755125105535905912208187544531989722062987767172720207525378590162815205732303556171946564140629822978228769881012295515533211595486930295123650523482785540495924533139032204745717039949642420969557701458319845545517999006574062590616059888240128691941174428514348194880679152131326178596803191763826473260820120477089214850819720748610382441847311382263661033639970745388834753670229227815274939079735462806511395247485460230092612414562198066168660831233415289736761880624153347643271152145828006433245355810204193497854383179518892275535365444206456616486370841027864736595441918691485937289684156825051049367067011689275203755324998770053114839912683349235343814854796706613522711305813161561292970004369496803329240020847065686323547926036561720796348294773923263701984719992515277962167088340352959563946511198235989978252706129457521006610076543958402117462276324344317190716248726683119925798137407114177020679070486180861702240151995354475966446982130347897015178040275432985120472086066627038594508059796515881061870524814837669508413720918766468862177217867962198836497714107703836964344660677080158701170541648909924749586831438487259139666355497421812566093819323671609579036835554264348881989353859121123170595087044416104713902030322699389502111104898786224115816860966588649074599303644316187777405928010816367844140121687406306510949493851741281162714783787327952681354297028391827247855819544978439584186957625596051734339966462975752204311544885129775935760151334759935633615807298322358001649412907285281337573079494299520692711954173925461286627641631949343909565793785480734931196373903374027085687780764510980907234798709523149905094151529885819430365362775897242413740076336614109480454644662947247825135282476567458527237368438384860221816698039032339695393783484931841623372297083437817279467287369386269005760320596444832188438419989850789824191643124205757225772453487076917316621578856634942584289811739469141350470962107150052295154085754652133455408058712310705929479252133375701072511453260789971655614387383373170704582770064065453081457025653644303802637256565393852036133604533683314225099082202440300639661418555365280099500134655629418459854939541817835917225631044000492096990829396418676943372354191163515339212296953820582875639705286080432293389158189207523285391171364218320715909649525276416342085611960004298315300143399973493758455942819451604314113555034610002528030632747044766228246196623916746824163469749425558878657213612119579849030154055412723619679830069460225248949376372685076827399017032544597846369730206711812166225547820726799660906849791193078502286205261350795563285597291723318378075918015973346612727579802898049773947730319539695360710091984912461534929273045497106318160610301137783150297787880476323192717810188656522667621519711778989364014593343761412490020576443908877229955395917983346680756989132928330658835608811321570606445733619780070593929457070579164060570843816415324807515337406253516421739144741589406793018463276482425261980740260864652674612005784233698803136939497665350004241706641499564006290535943084372223064174881346395545041450370028581138544482284664884313320958441847141799528693017925030421277489738554588976993018264934643786398476140367944449354341466122969418846977991503781799430069038465783887908559150409868077018669744470040290375808645285486459690582455345339500269099544456188266049768741128515253050006683685327142347843203630775612939915624866128677999169915250862249546819469016026167075754098715803222883203912442926530566234392758188517809284728575577489044787772088720364234128855373816982133604004616356081129957275706840701644996588534644154191767296897488470368365676924785377476478875150390207937065771781715936261730106358237593106358876864837331955787526741307005386268343880908852937289019654915227227629828923772112519102037651752489376733319909447487806754802340581248858498976919138293280424592008811126127475872419493412549539359981193115045139757552352738658649518647179175257200238689703429479099486317082136696092934395509302393915334392796548364346541980724649785384569126587510008937267249435006130490079459252984663474458278905441198875057682122506072061141797154047752313430183481682739102296941879996816620711157260990817319820275594952140341522041752449348170708238369144393333293042780048118143740438865393469634007461690808823585896270965963997405717274150773366703118661479249938142108818504063752514110993693604958312026870426520490876751323014174318245175320138776666018562512689363646881488801144299118789546389453118481372575787469847469254113750136021035781269200288099792947833684079757721479598204272069318078031616869639634790802200892955111102941087288004561663353134547604017781638225581381594148881364778685290320408929112016580848467643349311112970248263970358217068193890217859334724069180812515071006765156825868053015758585187611646213949995651747039364351723369041864968778512225365387835983011902054565759256131841022359235122841112910992785484392985759555551560329884503028741831646053077085077679115590548642702444638970656284233768233191118202383022444166086824247040431318499762158131256708311939756012919509771403615404648827737930991303410823898571552307759310404816332443264325161548183794619183953431742024508141945917915870438343049973621767465854320247319175856115641371160443382778006563160451927615708633672727480378867951598823540495372651376212920351003944298960884535880362843417034638378386905556958722161584805936495374024037917952750009683143950947387737056289166902531924055452646607792460002856159750638612155610066339362494253702396479378586712194210018498181355288711137154930160421589757326521120675042020743396295693584692679995942168219302746455846126274253401896835269251579944706379903757247401881052608542938795691836070458086246271866847472426884722318263237860538168082530734993139533211739003596057640453148968602305049393379961347464171578678996763892241861360843639291534797629587503080606542285782623218058496525862210367239218785037498632776580979079333561436776753358812785275923414673440192749205781334049647042101702838464190514083924903581904386696378915653419154850232139401440880040103985095538891078955128725667177511812163851458323165816386166267669625022483886627157062161948575329938014449477046945385188850579592410776733091574869916862280804669228443745362358687441754433373014112994408736368069758237031246658834146818999125405798051760094601705750108612527205461343657208377997394294982373872035812977326038460980128762227189243728454508994451034688697501614651332275696888441982315123429707225540478487027645385874084975797471824912560200570991923568528125339805433038563378550214141819912595600591230934873161702594754373661865119541175152581881047516533468121681825606660933017950663496871167758600618614761305662691381636849235345324731934649059979857443531659456135290171863476021185458715647475715030753929144322859981591481918249692124414982386403429838987208764198933675828970695882626351438820083737651515046202165564396510117134083713373719935382655751233462758476328381365473833000069368756751124850239853483105041271921708627252177485844838606310485651568470252738695326619226109590868942945465669140481904888454179564520689120683532027278368598395377824423985618910430638297929196265774969691698622785591868100046867133122896310345099420760962348249268128427486174761021429619315851403502853062424271780703573162328976771435739966582380622565571485946021017461648403957947213685419050934584618972137161596651169432265649417729797472296575747777326875405768599329778345956691867695538537119737655880597725618469995389879125994824625322083917654523731203711587773443790883978499598909725532316021244094456735844819091219847802877436637679661620144026446250254043440228905569076650009355733287335650375804679988507504963930474239377857894212299926657376354078228137098408970847042240504474417385390288357974339108782750541399192457678747555611768656717582924837120727310027570377399217221296578547640189111605281431742880601977038484142240586933238277597623216057561449192956859603374496888617614542466998215681068312261924263139889268552981927339242896365711197251897851385579853738228305005620265653835606414308602742890196099171525364430376043571164479289607294336742351213777888720832102156651924430784809652574689419581791275765046375753001289125649799316169998244215675788198288123551734538386594141590779382875427851837461683169388008224996153917646442940872863440442825741321549766057958769340271711146013986200485866618052373781532662766563918847520998972309407077207713268997852865245124009727393127956723885624784252588914573488599365833652462177153336713118295078674423473233807049362584532691192450163407036491235095722313974219485937777753479735600516474654450046833467723895499760200796823297846019342654702372592567182376477816407996312993915861698325651804128611119328626757108601125318410002771334790558973264809464577143813088592897993216065811326227644309377701726689492203341386426276463725996199695545699877755905805607876009865633698264284883106030111731207323001059350446090856228440911534359025474061826583676218763744818919618461938477918064519603592906644980130258427393334915363965944944584305056033775492741663464912666095267640556525213428716961360558546186993160725234482817595917333540418963024861251974480094309777768308610413501039968189323578205957778144356427072943855848031231063007855501869320654117936005303716038354296332411142711682977755124564861436512689992991148370004887712650889650920394993792767683367140309619605975655775079383046458002433655159466500229988680789223847461066862599517808475718037325067390865473751774544823175910785151092754485975091146771506102290709486232031250014937754248668078328727419234176688809947974268790338621515447039139593429587756627316033538357533797452938669400844297195431148169510163303704091080044913044841781528203364196102924054146664411784887181455782513167746762178419418529878090467719258361419872094964465816503594762842699025677241672279631271987441876055996413562203054988372977670720994209927908063883693239858424352524860456680542097775812933407344099323783001289580154072804277222447996904184555469684015558025289468463789390505290723498524143622230896679249247623726606891790831115604458063960989642106259564147015791822396378460731848411902398879287111986916626056956905100559897774732131129087843703132577850959946779763810526788080950644638990974425908245016028887542842221622668573034441148351079021110515384339334917854367820776878820908154923723706844685052691463763349502475059821690793694287079907799222201446891568873339471812651428314388968070173256657810965620093149273123659703214014194428931562751327362725587473591040088304823023230353128843391324415882843358801250025489095551719320802051009514062889724184898029789134741750146215834536708145054678884284844323026720198463342049226069219409466451970137232856477823252925775278763485112070826934104006813796002175006145715134531129579805134961266199534531088980571110932197366897118104675834816071783612287649852624503871521061514389048161922285501951829913123443371946045133196173896264950384777485664820381726782362064564872042505358961168439265366096668378266827960655471220516795832866343502520854069849409385984964113100853420590528092601173429089322483937743901149800649443733883664141258640963569130422296653324283212221103564158366884743160462035813971719182537597288117951561602088307369081881297098902842326090576791918137336174381820644026832788229485927207395529005030354685924929941347006511170259868368990207012891921320551228089098955887299948543150629457701867782681935020445835326602868058544145984312432430769975069517614590593745013975164350839588857953338734617863364538140759759598346837817033165268764717135245020105793665451810381173469375448021670748176917162383236576951237910346038874177590906156289765992789341988535880478956382746431462294722492949417074514943299570240079146933857995691369986267870701636624083811351721779239556916848664241137734864147668989838135149329020026195811269635545845349470673929528739583941815675245548171486165066992243360641332534619707308718841241398387020872775664965717917477064221350580633755374280946539484515402690226917739026269812391202592193287896211695015011594081702670012663635718717787245572986231221307769059459879796546778987994874624085190283631987793268097108514514122973534781938879827877966270933891951297471544025357092785752884847221926017587477348130671743456640100022211892605015270969779531157825174855708289496211344419296725278828122318218067741194972525371427113727493300697019638385024441630755142950684393029366262951918451463276480807902994424425707041369835201995548034967409698777710807352318418304178666228420741992523536678775279947621992399576903067425638544026030452362843854556943584046791644711933242027011311690899546189456544181135764835842841155829898031664605457246413696994620009241556510184176530649984162934922793899354001402698185864295443665757099859537640179943009427752391647626377026020514447712403389685859965291255291638630597279633160051296345290249111324947422436116884687400223013767216692697015308830794486012399108760920444451153948189077239059890635599381758252302477499581697127799156505933278069710382517405299952028467396599899435171055297045793495973552064946596869712567354458997766020439399483278728391466574325429409485006674279220937598899533197574609131128347435186079021456775597126736609652780400429460484178279961125417745471973803390894566536821349695014031098600717411339382940353574993735509796537602457489149834603220280424494548260781554705485268189416701028432565271110560404319089791955831370442090509277145878234280312085399248267201097014477838920936635522729446669463248123651176544591618869594663792746394897543227858633283675931452693623539527702590517646296127571431880338643627407954019438165734341724511861608499512831234039386270881755231053024349412173706860461331589842130187654317843500224911599992374232321107387200082775588505636103051502980558702493339940394672396899231863965950824488562704281244943637147379227036036072600195258784397755974630552729645319428791933819884692852638139660256283834503605717687883118993484135758018602916017688964027826906487341899868919669161391295120895029780822635378264517072115063239124055263504642213240564259496207107378833177037004870643993946284548774767597469200374503050046387763445522827547263944049797973473830937423681866074938440844017945420387725861889015887069345425678725007318101365661244914969203537139603454014311649881769251610903085239798952405624769074750713099921142621621166366927726312673887300988041838576853620281480469786061571227368733378150607874885766402632287937504311900172873510297843663125961867074117285199299640910651901980976943808639766134058535664169907306542288087533943203192167019315681201062485553597806050718621113651003287090469667667016837868867168260500405560407366670717136977348019561903376255111320697903523287033252634586732199368046631338034739657365139894388630288775356419176444599442437612220981479664337198011420090822460782800767078605438171073811348713263195676468481317687837568345365542860833195014645865938125085380929159904949456745022721114597551000561601628622645083592213840433732860380326300154616153562766928283808771055470210701026734659653649590736340746629628398393539380949217233212609536879253276926033295276264948074844117756118407004016673720095270536828252528397472418211122888964084751221420231377637444616793767231794964211339158276991021153400126152342090753538504871971029333505999905347236710561906222678262040683185501969068236236370553085193185212890940588640045943512928810059922583103722370267130332137548538582289480952234363847665605084686159362673433230850484968686502778263302767790422058814810251819067411727957188243628559443543412873233631371943721398341528334092343550839909754456687588656959944971071268251852883796464284222768245276438455605860405711889332235629005885757617331728040528967289953462546521511879718731616420362503976054492908763841603417335769990028135182864849298650268736136390321392192910858267198285698971459827624132797078298211817616316975893755927894418880019175405421842219823074651897481453470339424591416657655957978807533143713756112787920383737789728600907832380191056996905248795897831435981669048959038529300272034671087807561007202980982327827720839761078454607360548742375494373354546743972343187527942491003248185038625810614062526071606050612292889410391626182777109201600439701841963469113657689176933489646729826146068595859353807601293459628536620460540299312761122948363744365308220677374951344776994786593030417921964512627651435142435865239594607975563762409470603031096935766006754596706774591907129366001122907253034410064870294609187292836195462972349593118574961279044097431023694796929895686331843634290854401578194809052021650460592905749344821612359940474276182887316223598932105590144602458627672592103492164243014530425546038387202473241009833998458787282470237014383791871999924000917636412963360694954123494830952672853710024302822790518017261754427961415282753800885481266162258541002568736508784340204546400515470289829189352414139102327969132222610932566732027452336446989094407368938866191177238143405229263514031783507903113696677302496096594870390844657492108361865526461039640881061865369284875098983615487326043004774668810491478386571716256427843057956851254748520876319275740988846389580560684276568946119397801808328397221839750137432376605515557873742555384392455953062339275479780408967334948630009289176785748774474804698550942779526515064162460696451084670015904175350507636842598684274788507815306642670108434999200953973012769558957858402094862355131392215665678275137473955194356445854784220093106280784589250798983311156174597652398211690834432157037870301186203296616398724353782171407394553147951507778084404873615919179203900508028447172409008237640567564733615151586275740590837322479723262167297486302280607703751184453663908303166022510356428687770669727861569346973539003908367455043599445230944377956603358170582934280262506927356264945266043344195691302405279687046948116900937271604853801040254563155635651312099661665228159263089046280096837275513159311165031217634469854357044334541845296019058471960632704588438764495446872426369271628470583909453598651123275559382197159767893260483329797449381080536708833324210955899202857028009155865450515382903646272049205825521757994692785474992262736455220707590501629299809441621947653301999689915289478199094786506381299576459062481427160367812270823166381945809898042081045142548847553011626553137288247690504514148289270331179227831468850532184316667367416634369002892125120328382388059151977901796754452705444699320217537200316659171373804194994749883306406848359025781411410135856041584908816863014936855896184099529081333864208481576491742582363707962885321144437848228752180522145643262312260762559207816963539673186157365087056895641571578452515847971150051877017741631331690487489501862580069824285471714364846591496668648007840396689671597989638101804601160773521628919938294736295196900268771590230814671074749714291250887444769099835550500156849303083412626310817025235565962757990674559604473551579211098848927265137405711753484538810251710801395925434538867717144175948579783252658737888198533490610738707062837494093962162815177770470278346642000812577289497713943445575985348747342377199243253985384950565285209568814980840256859570100370897633361623635585661110315522637761906034545924659177587446510780206751414657307949802467176573641927269210310357813728160872253116250380149914029893283190386650657723800729147070262143304857133644890977400891392424371834781603733016164059163834173315399357126044698728414901307531974894197518332582453865088528885213455771863350814128571985196238962731389053837744350687156114229440167905193093867651652091606305956008882185044616569675828655810533993472224548812528329765843932292307120162247350598111898239061522368480761664379162380505694430197963972824683157028537148605612886335571616717938235151852836728629119781255114859127123825646886338883229736040160884994358505665607959655295533475410308745946466890211570670487084167285767236603996127321742077103812662954426469908404015502000869277348243205511936045349141005679416550831027923952607632320570577544074901069986491953874887615258540090852428428177652748840094237112910761836119998726923691076100893785379421053990396975408021278171803610803104759733794551828457996129289446953518240713250216845556004029256371114579241448764911375778922542341883755240231278057212226679262545007007854562955258079544469408877930945074002548619592973459107024324255656223809120478889649704283355324680321538670584564046965361836466497768791656920598501024773028322004244393485220474095210753612347110789937620139902927311183673716875056718374338687024676913446415295134766170637726341128207263338308830999712654969082684897525768809264417918351590135488769467320551410088071204569866980953345799398869359370750550987585056684375928315809808132600755490970269579090920992653768245327138451077865254902971135747169311476471399666333243283610632261721769651812602227341218081430801012540396767816311732475809830910821159523443083191946035855874718935975028895413784671813600739513319735615497781777005324208001460717172092386333034071038497911210801887444599004146932620072407780513143963870560067410162077032536477672840569757868004083861652901111837138733579253730522332586250804895768569744051009781092045994698118974610353113210570059816410763414601271083558719954857703502793375752590944844756341181032021588382091356909716153959020144197117107351567229722199081330478702982395072512902797114775234157145548962421531086595085905704979880973337209948663906277768985115947481881372392321983516758658135292768852136539295784234182985647759402413097924400088886540197613445559518375501736723286120162979256751466336313689432883998959654274741736440326237931048589423060991113926530685632466682441624765976539948574133096796864771692573934012885576207376225985066915734371974817467168571629693970669253573471161338880288700656852037137708004011130667448735964108547275822539391370794742545245328305065141142385706241276232641470709674381135299472980419123505737001460854629883000793101715282313450403406513147866180784447792770332802207482559506136690270502826719873702728151240529071968988657682221409383766022751697840996107410305343286174745075763731839903328375769261977308481453784308308708421221422771805367222503550298846038700934390996391636523213246861297311538833732493036110878362807104531401832520139077961266124374611870699583991831183757327593345963455184594203090707452481849195263685011019564791827917617844304992728351879048240124904205181622819514723618115558030508331417625628027668926758751368024769756487433619832452153670975547373842891972401107939023473560047411367257433240046292632327588700411868410261257564885208866242236626188623041261745572446449641782276940185767775447923106052306620542889672014175270597208820216080526707785797403877639199178201743631174048045249485549665248302527553946255677827516692997798882816890560840074778539761209373278167053048511967742248464304508832608274872256673416013516500261195576779222337636013473644650516042825699742803988451396060994132875419477858883699089792175039844927047382629284496700281043437613740629290224353293022023474647060853621302612029136079327158572622731949008938005851447004967952936398884362651311327615674837604262666549989013172151653697942646934833453380849801050242530317227258961017522427367980348152354665900102457875994069374544702212730988429541199709039612458034424563013692309442935226755874859388172293518310641133545166658238864545551801074692804360314664383330663989902705180660879735435148672724765135529240324788710470034281415890691048377179954525348075929932098083365459559156958835588665576479762850509156317333257071065143833004208568235130174141659163239405748571823070545709075179154337605803992710472760739666102401487867702224790015955565253170824167653900121904745102846828046834461437905396550553522857040510306619782968392599076860000148088809474567032141741927563903085677430845390497638082898684651266492812237323650902218401729404340287388303407056623802001958440683268281161977877969701115225043383574993506748120976661838343634442727442040555980581091746353359982458879139644935988933938497857878861933478363197113167055051090268186737061323106368168550334694569205505477579753479122802334707207147920891401991116153298138674127310540059113688940828254261785269776898006266079727236897619635969371621039491890862439445083491280012064318710873093533917357360591643868262421366141396313329109731905558309582425061633639388168845372405286308709219734986544697696805953684626586337431138946259052365705490238719469693918422793378932174123022304960311963732155699714923190341097535276235783003291328694132121561952669588275857144542442414305556347042395854428414805329096783615532621547077643535780642814587182521053951358618721741761389937310312455676487810343577135291275219049933296233025273189929687626220258798661292338155798736211806986146647474341472279195844090651055290869985867588694258137458079708597882875315099759698037160853874999943211163137462764024226242414811751520545561808981343744127722169988161407158289459385806310366840558638082007304797400372422122095415820147556143406245450109666991910174559738511452742350177427127537228160306923139451428416738499738457758712264664716061903733419717777890615207889248035228819549646475691756704260946814466571239669821152121082054497684052476686411606644894122495417166374499528816060342923548466049973774091931825409888904909701980023318200856216857450905668066841397593077575442671816863404276748637232990927667997165642249630046599016458001710239293128670676893809198412958653092666456879572496778791988541486889714302730603230534971377878741745968873002930042085822616970931971104344339871658316361305521044143569838793018470687029822834086841005503851552613166846690293889608864405066619102375421772330683787939925889470193476816919949730937298111006778041305441477082040601604207666080541449320846005233384009001796740866506675403285113842469464274195656879881976368645536186123556437415053157405852134466525964697653840459805701608660386807529601243708311728204419569445165952019363368381909313722665695561169886040512180137950573204955398347847030261900746717198840037971957093546164858830928349906352886120503096594653626840367453621397410367946862573698525311424952863386235459223143561262242272493565331812992030375156281474296277230819809951653060739048624827668629964008484982978026993820724908623683215713204351934731750901522668303086939059935274657073258004515364329473264033253435937751900529844213162902301762015423163945312504853105347981739560659027691459916664843248744405731624759868409991459070643488778840176393365410607182509307068323895171016746637351625094897978529922902140953993828281957789974514692336948613884070021154609837240960556220749572590797195539422901529681362207034058110781510816551654835680785862727790944168910642512667310472812534349756819089267576341207758371291468631243202387482252345926744612298626919764556665713790569994969829540230136364820799996991082146587255520272743825155267934196403643584251715095127106418194326289668671483500968856119466326270279558278823650028409770231497282796397491898730256132444048760524612954050881430362820380608816040733180483551457170275201244101170468243223270359265447867806703601905565822336572393509728419962466702589441646656551893931782352764899797190195542028673533164708910363773339398711708401964378258752761188085280403112360946757965331389432161250585110642350286590405112540286421185864033531193090262129602109741404317908271621327916423555326918794572695546141738557820215030912515826943410024948654315961549309169153998810188467116087566716038197259548625518831028399960810724428134422834619756846517529721125537835154356864630904326508011687411372048146095502933807470594164135322877196264979425109444907533899668449657762223004033738701510321698351348934334926290084787705340551479411800273004730231221905342503322446720686008849273412157541777067194543240501694093098278244700797200370780074280974660757217426355093987746425939496221635154692051102114084647069598901952120764317172371218193122254815238320202289678166986979234436750367174572978547156308260197936836408998140475910894950994887926554412194773939766464684531791642334772665992608508918963309513083305615377092257463740657107268159932351932123507569814105544818555566823594510691362526399861013527425442182182058494656742833835566712572245784491705812619488675208831234864899230585650312986118655235304423583467300012418702557548086029877678316786925132714404224829006995560106091428165775470229670624624189817937528025855177439482633144816152174244860311841817626569156440802157921640018772446796080626054070057722010911766110598820266502953306480884654646537285786209420592291452761108923697562663055970065781849904753095144869811914950661297198046554222874964991594606282246893085048519944121193261513216203414911508093128175639813888464339214261268368184563407720456368985944910606094231061900221645432729096645449802741659115277998170185306322312227147992412773447960450106436832425139288701417483432414016954273644767999409154240547238582957970027886537591339796431728271031517574487863309340882269453152712980365510654584362661015832258411612900006903181831736979781806741390978713144467437561356656404955603361496338907321266102840577746937519382185886807264638832944008513867274358984313427919560067149245684059901409955225724841121839150247185300990804981112146533528639227371362789305078513723557976706248120070781793039058539519121844726426247893173192394748575200137552509147017258401945317898271703180879194933344250354699157988561382153563972716071867082448943923160478067678306173543915382838994857180302758724350532271821151959173949856507290790136644075942156365769346910197693162189535136035784764825203073126328188509086581834232203901051640612496680464616074974931927138120344251330411580977979948969615183984610959980594814848713655112379222501510704911735823864259977868570162299655373447912840749926830491054214707708255868359353991817168534770386850718803965087266015788389877066674048777108758157649493841139338426114633826530326348388473093401655932522938962944149452956303556865770478190076105262822369292757105534413489134794510135745524807853868727968651636496882575555635145834936281901760610148690684283374257397014503303359601535969839908071773606647594229642208134583586528299676692202677071377874556148389238865015538446016898257801769366611512981202632161815373130083528461287033601316548038772145416066386942714469174059841519998483747934128662351202730131826100955195200532228706883554929087845463883858783409728142849723627303343676790485950962129275505171566441694534350335768112557039728510609197613261875000996581160343433710724450193941028916411785206938819233398170869494360822507229019309326029163609146666158322307766403105872294454695174630565287347952281002095151350279942800050597777256544628378922285640630484067825464741942030043799845343002624525886849838923864190727269344271839695153822679135251536804694201894582997729878147583929923776234991756027733764052212487565578491138515154651730172662042312350536216217508042863413105550211280744792958359952138488619243545928558761871460565676202968186198580276044503468389091651851835223406321470322508053963086971480178686375412442219299889001082537326136763182243134114173415625325967165547367998897298069029932404590402905993752200885333759236708815770853136201039145846032400703686623573848324470834814087199570299749605854932666297607002788787509145770463869589793546652774456240857717283104703296746561121964316899919088332330235882599353591056159854971890939470910604098263562828724071269796343064225763421031448366731189457007758622013377168553084933455974320364342542614072599282955234773885207924079556075423283194487894389987411132196885193179220724060320920527839956960020110798973663291773687905903568521786556131238444888817621580465390588393002139888694947840182269474313704391567879154819138309658497379141732106528367263326351774603218900464969561402973699245167264802463564420546078040367526251414953590092222245546199183664255558678802857372850467666311256607778390827053962573747798497608741968213713668600820934824966388594971953661140695342447728092023558669365627293311289554532997145966088778585839972356524292217039289968393534206618288140176772387235764973468613183983879388951872495396523239854868631403881193097726889269537145598470599282021326727794250503741875517858622578333599680226182665510216552738856087993327323022020657756167287494362017891948253917131053909839175030975230573804529178931116018200987339747087558772694306844001047929486473988552878505664016356324621791745347556145964775623174782400143893912543334930445574729747860088550208730857490166102334531364261444827742140454399369699797876015700853873723832738884839170452469607005036612228792539453858354632613930033597989751401809083548747265646078696789831207863875974118183823137060455039157000882465364805712889026908685475498202879728373368727945655707061582854136720121551061931965903271457354007023773653580641112062553159954281637031683585813455000152797586766809581209193335814336173953106451013907109285266849504964531564719040227751787602440496617747052377634871357625981425075494287578206053827822256731083168788385422407826036760137487680523489849857652131777726693937323447386455708145442429688841967690215957573252029158009014026688990496286292361759608806146807967203964241051367952034705891487043225385183258377014834975649893518887746368882383517891938284130572591114090719386730089335289394266559630546432952792716973355066945419012629321578417760473964034223249009344188196320063655688423846669660443088572565906774775368344954865973217861378826728316835409883274779524068576036183753485933540125605135432409860974166916782131330525254313716874421217788947230580780793499982467157116546586645070012971352046965490292245145387717450961404488710824794403973628947311177665249483907302078078906538702021760083463194194604907835531937611253554026662266754928975720586711938792197857603909347680958935595735836368184633662985189904309428148477678738121523341684015247271136831452970444839671629929237222519395856594876642238009408797203984133851912713072930559093587889474053919870121970900981626696829500479879310617801322062213447710673158658000473956413091447976966036795686725791519689779370424717386855483146732945497686824011592352454278519066331149106291796621855481379261888052026459545853015463801901965175331441464168238868623337848743839701091911434326265620037864868120749022530431526949552381321544179586432891606886752844984137359523903535191465272657856543789464556718509250546406650620624818431563075755805836134715708584446893114008998914685079178845269641693202043953209182805325089293290867582319902385988435470760290702327814983457298811576495385099618426630574512678881286669538896979407187820303026295369290565224781613591479639116178809488756049990681748851698274386347434561740562142816212295082895746235216847926908626662750308512672760208818360977319820948040532989055212801755678722690968270651515064395431071196929636664723756609526856346058620872868024276028561938230387853553690423563840647698236316074929181702604863227405880087631602929604341006918965371838443391028119060793881405845798252645033063534089148665391170001087763229804235570122351919287583122951629793439569542777583167996462666466431021880988850814156558410003159159952189944625012930525818838127852034504728702778429760245072935779388050412240417020956339031680638184269411730181282925689708020361668639109794608939639399257648708009091573050961103359991807942293075663974913732714273742021544505947592628838705155033419341601582796591062823305307780747311698529521842207916737450953143953606279958959508365747587684829602391272576131916790285526313910609542623580781587865690748280236385113962721896111502300364438458260238992871449286833326257731512513908200433028056136554086820239914463525588289127720812198186770596690665645018356506089584598570518063345144630260904338450712621588900885781545003245572377840507502847992515034316315020406787771917855813687847571106059025035077289594709166357965740623546387462428005417996738925698734289257051742550077358231644157691344617925823870286155933626175377024863870214989179103839050036769383543195652253301039675533053924814723006170942524942225890949649869262848369259272081510082540236342974886568179299361949547164477858881283613421730822454993262729908426960527317055226264516321659842867446914820072663556694606106799736091572946126619275750904665426790380782864687304540563456809126462354800077507731133635461535826002340481823721592139927145100125688804800980480955903661832719554349104273994779032149667507940552531339998250602319923793527422815697774319610314626355002684572575583087679758626394375867028731280775770914208042962037007552466817734251120035716344594713935407634887103790227874305729036015163567342286592037208972795413566085854528770383404256042055442396672834906161945001436758070957579688716094203550684631467296749039527091570618261141374980039181461929194223155171980037452274523771716864124216567982951911995664671894931355283447695523514699463053822149358099869675789652372089739800204287963641620320243193930914432347287634255871539441021432337049252585014771763101461473259766759947628146786867119410249890407786635525197641991581578829621896864608409735526879631825243545552783628096085231693091991362498149409549398473545666172465734562255518438253900128188793656041952808784842226412029440006045470251231125246791295393327729554715718049436540062643325009745187105495763014505626333835666149298549696855155021077682997640621139715865173951803247108494474373757826602009731619760900072042156462574008021348097415145432730505858595209617908564428199082496905707217023859209096764108848402111079536891958876654160944612994671461874896909016101532836044387705271592045997288218431784907720876160191656408589654103772130255779845554195079074679243945574945806340631900634373738887133877062660458830703405031640619335271199317848676678317910522338693553591444044022975673733256996789882530861216383667266380068891810483527537635336556151976348602752186571771735199702572776210957616199646621971602516008057240446336512542456454904932926920443767905531374407420908779020981520316165900412676015862056517252815760652576871644907059309579889390791545563504685299436551161301977787013569460305201373443341142833813836773249400734923160952627890862106331361578064547921848521186167407001849089617238430061165693318942346687145840734659808124074806629871145363844364338445199345626583837429820971383839830282832762788603387494896371574119216880140395487422450907815695230743010061824093448124496611401066840301982370456193155347125746581394184958591086854241689634682669654223650646028380067307074494463426710416737706155453737791148996827737342612301890008566496962193361794505571451130492161629077470677639347944774919462293761103137114075388078520634330760291216113826280741732818591004191580175651293108322223880250106042861837584815939847668431517050707716720942336003936971686804569468782278224858140260181100820680680618263348593393632802790661350528445566449667303608229663356469577607060917537373013481070242035387051357198088313252436509660896771270600007233543033639209671430583294755956734804963911649390533735188011406102157019640406954991936862338162986384004696118037426518598120146657756839829963732628946717953142687932884415317558180139861199963698190633938280856548436577397298334820667640555297327748213216991550947208484132294562530921105538341005531082039973928630421473803672065382849827502977203552814759574574887360653323568041317566489873088388268805014497137180398678320581293626190519312525910822927244939501257146148947782817864160683977988506631479099901394811671431289998753029000261013233534002934484971172910568946999088234286484090573589038853147341822289397155836905180506068778889715511655305027417409866066372289112938345805894567014258806024346073089367543527729088745493293560718067774875080189737249584930793190255262458556327823835124918808938858197770298547487070492727177665077392903509932295583066174038458712434618871518785972591799961320443672601838796184188462182323807697776595250529630669935954338236546706156693180652464480709608969161995220245796425318963486028883058667830322080010064685929187867551661511013504565564145393409680816044442980882194917932656571931805657573709675902787657779121196963126171809239303960942526272505529961397271262193737376372083132054466987077726597695033970250776970850445812046648675118524393412285136589136037099686019170262689760427568451136971651858149650108857075668028237740709971749992427477004467903337975737227919967993325286133507435901009519503524311471976587161087711589200474608933377551724230045196213406662171061748573502716739956981505466058204067256059340217567637779806253721289377215805040107305472014577791568897074258184916618648743716198281471958581660331489395861068366765812870830836490041217926152804110030811569272400710404933108581521876410633104308172035588183641656804918406258268153682167015988300472614611655140521555926778300882953516610263280573885386494934749354554279228059316523491276422865032854086704889333124457889309118133951810308661410121727941666774478732934244051665479972821121719901716700463194351034835841149895196218655196519917133393381261715525569086568296425284656727302281408933889657703678794633175978106214092843124558729601314022266799012959282643245353936980104163509170132916406274384825245354933073577788955795973924469158053745159918421633981764922551792148850856704611011917951209493802414754528618279279490676837430562907575989195691535709623444395293195051150074930893472010947646032327121399499142181673045853347773852331966837459354534563965349254334083957556312853538069868668143478754561354505011440717633570741758964743351910367531154060117900675603514356107555332465206616186258456697840776788759914295105703205720260269531775385925684124121998078326578331705480645890393231815539446981786616979514618727897783854308934100734656723451187113422446882663704821449586051004052464780215486803628455701022886935107485513294555411984950706482492557265254655338290892099494861897185976413555944194609781234933604136378773680647291116403439373667241277590630142953207640460277837916710169385497643977543586118369322731309518059760198987938044812891328527566858984743678647947752112775695831947753344132024821979499852688313916710248396047486534851531111021567943152866654014107939014451222345948134928387252595975214057174352049543031882903574151823808411967115539977117709112372715615584183574261945454779965036744725347813684886894071273916876711769562640940772981600959617585413400544274056600716039841448223042855426886683762525674120889789282032878983435355666791509020924450598049003942368451757131445229860197253254509185284852638600091281677158498535322297484138737310617109857181384869248246273713971999679205779105335437539719228342445898571264733513282611934246439961634172169975292647783677471979245541555198561571522368870818375724344546560840145256781358961532365153793345911044224626072789120187655694875266183010059839908241427534755394804449083519114207191042913675578123418686179850594661296447962178610989491794938868395152558059494897475869116258044219912168447007040038605909149261088068813833708479247320210942831847529864401185079487783075437425253349148401376529899901554605672399844931681204152827501761209068824331371008521669902526314151399792648607439043444610057035060320684102992278406403243278368611479087113220644653813589670617276317376274250643060026953245973539227821048254830577580752134477863845244414778757695404111820715003108992714501664438032732239368680520822615988671534606676011548536606301872814668735615337793396211675379907187367123355572664532990996144617872816186093644915215177032518573002522972085067668789238433445360313047561006867376608404331192954749163408921196119124598566954546333748095131034248070261564850587969099676518742180563328757335506347028302779373459349185756474077003913619162480627102451708161039047289737327574280237872195759345090425397251197221897994771028871644208408439384602408825456387538760980564308217774644986276333441755709716678095167323713120316084504633070439985112971837190444529724772920293028511691819603851347881992536012192628529780106232290627894143642723938075146712271001677225364741397567828970993953421250506894674934478780099016051658910850169865656670232958578741237711734118205315258358475780405169846067502904032007075821518390098225462538017682486666281268272414497256456204909839303432294817768976029656423479986861460542775372406142080082208776863737031679069967326714952543367381465861748979888918603250510120129558097509868200326888040892313006234925927995538847554114430141150842733973135461286388964351753783608489220940896488012946812867368157812432815642207873328167057290106005139896666912558513138779031464311978048773451709904975367309083810693968174704259543786054607484383181400848521985510538560687734089173235424926546216752680004059407371112588566961457647424799505434375023086544741229191585853759437113288067556758892562094501971553845562378008364947406346944162013208561566519680628299009793075167013822471320055629244253020407617505084291243311857000130284660904309074868701695821055376241445799994713606912237219136503181583268091419592504285832032173248188727639338618575118188039544814512613481614115882579961659719244828221271103705484760496417424348283664774356320574848212789683301801394559394564459258069004848344149895108925589132733380563772155838146369962459303048715966454878631729432366038428697107194798751712299644122779505844009698715306963815061457024099667040672172016109298914705348153044837535012545240204236226194740637568531377285265358626290826747333013745982430987768020106428923966210839201296777006779306506132776941711108411319650701095570733108252649453444924791594029458249750558339005639145979789219365578280062384623589571051542098137651730274198037057925172564840810912138535453867031292262462157257764552856728678387585710351696723192391743185516506533500913404324599692975648778060486091960876398423845142712519295086853519121676410043672852136861088560681150729131715093098574066567212904457228930032964712535679416608828811231842655016623366586631442228944834375041989486338485497830276199686869590260761064469972518292882936560863188339861376546226640278872595054303854691221156406617267964825908015672907819664445204141017443714935422347514552233817776564851571277349237497931742138082724096154376254543093067313934452844052396622918838410767204341629768529999470970496416629052918652187916929636384996552576688279840604194491932040445304446608672697947309920491339035019817787579805620260755723327086695981334594352282369412676566263912653918404546184076063652827380868464919542827907426995007707963127041632456946945978208932823355454292931996010307682113020410492156821607016311408985980740944341525913332212014319205176323598706511140344213297149700877964581119663939185550530894277755480688062147654664923066836431831365058452827625672646469291533729013873486429684450619048807658295711982035723991975656160706245152904038529426605927940011495181317000491459714425410326938761072794589761509435386273665425107880013794790073708654468529465361197766650480982250211330056882757780674401422186087657868543116684451591742973864921802755351827871769096021006326669025458869460873361596337557248701449610525171408709474838954656390409521446574425896989766565829619055877191178391911418952036297685203695534071471143988517374942926827566903761463707542055365955531971794301455207584536881169347280783886290293677550249930674385558251018752449446900370748175083698433148624527549245889736456216425343684444746157996393078998396341551853961431344218958398629148872046599554833434034910878669241094579350115511963899814634854338419752281092704201071581722456356641183583170731144772766032876016160719198940218783179065370953883404951424078085926864039702202884942658331395568243276590165729623644923592786820875570589960929022994759943387175846636903802505447698004520651119478625750590855815969850818010580767485497091307681525216922922532679889860983966461392977110749401976812069022189891146322015649813460705553332569375117727435439314358035677621992204180062666686750538271283762921473116213469201839773429549910510246624962428294069818794309591109270849152158233023683263998162105202794753245895771109313476978394225638645853860893220252999779983892801823282699250276062439924002448255745254981737597312907844551098362658804183266958724744317097636064644665648053514310156821616821730425473710386210057970022065817599053996586466462026988446441002160011204130999415483962620984053040886346395820905365081652216429291344193203942136479390478856923619263524126949544984549391206446524826445431420241522156750729685828573876306874428415117228209636731988761900484248602928233817570433604326285032723107735942714808624830824551458869164771863072020016562695595392975655604245408820542963784431225581074346604331022523718598931819374383998948182658034808914159086477231135404265362706780983524628344656443716666358691535624955004291891417799290228188905101309582378006203727892102375863206653803522527914322180768721435068093564259375815231505263846035048215122729173793655080097112298479602113128513258849432135769691497973320506074424771308646024441125206616213163218035386724688062641700913969677525542466078448125180616820890811596786495784898832019439456060722536400050215090033550292331452121125112045632432306063170216747555498019216860415734505904422299512872641061535673992292984758646439741989377411538727560967210913481143843007249966889031251898434675630197041177076546586565722558483140223536668432821873648300678724485564350298682356993230574528573711038016694060507595662198484764681725299118136285636757071596770459273095797279223088950192812056008186604564578186084243370695483613535863645239106541421823127624069023874843459811846708414943786846085255371605845046535028430375459316215471828236278028539214915183903329300943805309151696374824049974191428445050399984665229996275665186853454291146455231956804269070189009236928279836563900816766707504688998263038789101923128306820920954451912890932774131181311583965141825596958603248440288131868161222830569556732258114650232432668706612085447058769358292813612300902897649362890821492777698858121448089036405876864712774155822511247609611262191838952206842366087364992063958167160189717745919537014228534072424664196041342990695414831780509523284294345711337489890192241814009620418397703931241070071795136306247013594380932410213119502688338748517001610268603531869245445279835898366167302612264716696181385840848818599408369015550817873916311375008415261132333298715836147719103621621260068739116334050506053094277515140307456344790355254999029486571054713552517671981723849938736095855393610842419984282723270501198520175137891455495089546747976211046508961844671276917918480701771787085473432611678488911720494048049167844969029382037952937820785651618146460567268804411741878845880120380191813475171191479007890570661737462963207237161723136238793290722204077201053911365816530785623895752278852198349423498633044345140933849731881730572503578746451092935370513389149207447364208020848572760845539949960784330251820699339987669507346127367185706513568217758806168185862929105050925527768335610249636617479642327862018751279367642298748496277681827103909042261660322478038467551930903990688303462335284321879376999826973008877753414986227993369449304695875638107773286499989921284114620842645123377524902501941335812909710520402335304524587783113057100054151828779359673401039968567806644917982288017806345141274335652472264284386337075195520402107014145080000837335162350971094008836597837313940643489270320536035662850820440871884966027542111200160352166039133609786922338537800136638271014761582566673001613081458016813295070404394038598416975947136899353107980529503972136107804044877224102171468987803953787805222759247930645888677715293239528607210156325398323189921369463789187610123474648882641001461690690206526228785298359182543488437851553411324090012023348901022803327112131253902705906630992638285185497345406945127181961917813111600254487515689829257622925984448834009840842046097649346292868099605702264512032995255318212103288666445048391990362110253706847762626960213332176414489920942220464361390709254121311785370075540069368485627764110984652074865118361799114903752665718852133450932549052180194194872664171686467119308714837922384184909669336905183520483255664104234523731081210691949252603635028234511375530865766405393172346893577861006227560149143560125252056066453644515472608871338827797383197595412614980132779352587264422235871443887366593186837500048252737228312510591688441225601455433510136929163681752205282281733176728150700953247152122104581098605597218001802679396021549404954351585696641980959098151180490762910976751455556796614466416706118383063241308296821854389213176911525324129327568847254962147581128277947508975966766873307506952116952570207666254267141978758136327711671069234081835159334544592805128797265640245550615192207806985739352282528352966984217992671848261459386121825604583735205180387067815613432173715484905770871407901004150079215470987650858312236351513487425834931206230186311598157743288664588906099874037994189606713800584763840095616412484195623462710755818557464042255051032523181432161972222915985368400851696853470663511098956535011706080096168196512202587630166079495114351797116819200608055756829384368548141598268449123427000788091233436094117106526867111280452761192190550384953560703419409926055303960967020033418921109229277457789258281814028424506548418819632841752096194498111850276277970852553028050125295980628339911129308368237504133150139834678652328078592329515352500736047083783086701102065609739048443563704000445745145185583272319240002789157491066382432277777440553979388716873720101771090870383137927537812063668909156381011410087263633361731740014533194881066127230886164262018305015852342201221042013431067086395827123176672215917885194516268995210800707968220141032298622348911802605850733918489188876422446263655314166051702031245375981162355544262031621540997686989637124043476334367417778033520255322988494101244759078102208243742415656001855638699073636835275981690998317889878411438368295871622937223906687886830142856443932172209660329392621438265560016359103187437646345698741316184544805677482416428542716819150958239507956612402133926983632944611276445573066484178101378066197114005451889207390508388607779247883985250527184216998113243232150672726458113027618619592580340630507683419479890818376343397282871518786149949908492188827305876407634108829300678506212907310973423007424138466982502945711328910261623998262982464908122610715657851741377037808800472033722308087776344532780997820476240526456909736443885735740679625328633048938395831946547187488922541915442645259435607099728369401475483769132116860232158593292804442386683549901480955082349898363549354457753420868869119638564877428885235010865502195179516759759950881886250122059905853099597806848376102852973343198824769334640440095882645979521383729564006406580990849599642914767015715555626605712020609967377090712023447319605117369997504644224290311353155173034919156393587822244922435814347161883999831994452576147914642983324852249635912926688899644033597969641395954321849219592764086646350534710674552429587864789331676918174271969579917105612787826544669300239634607954740949202033351321214234985587922308825948499171545310495608165781607676633250771458373185687358044180322486144765350737888313242410769940257245087361176265387756991945264444418291503012478468590187387772386275202051222477573047765989591940788653155089267072604467026977018231644150128412243587880295988295036952089284201051106118870578745058173692586131110555525228093445662166932398765633061522215008764386686236683554282112991438298987691772905312583534625147914250854917150091392553548701223439926741192443659993794068380651363922131093747858550085226749540411177854548583382992984404514489705462282587481981081562792500456596617946799800975626982881217936421428253550364757579838372988912883027326497653271547145917464905731159179498199876559339401139375070303338640567338385693288904117779592841560272413026323970235725047383768489919766554633849861676584309612421490344795722026589961710686694833538988360882690253730692678898853789181793756746994990529398641894500091644060294050933280307536569678229176633250907402335501470994112198268580065036112321019511332064039693710477267972475013488793278480404442487433810795144427928476681914293485618509559850978770266129880401335085196078442056264680648769394548470063978927270659429860526766337893827519891098684256366975402913365276265061860344525762008999297071071638316245890262094981314523495943818029067871294071664781876278870185577122084203542882977744984395872632950754298462428945602142877266374069026324259181429181674052707192738477687408352031146833767936688572961728082843361489605314192885680373789717661808188708880181862500549201353452836164924955866733831276721690069961658897691058822970411430123786243348397051076886905299737086012249230235482533551112943673037894871975145565179977829221817390004238849367885646304518267681174431646719535891071843558022044479982231871317749530617878377278655980609549081420913588219659719255580369541549549268435629449908209278155621620021920812523436414863667721337667409331900779622920910290914752753835736678644732936130031465636573074921985636707723443804084255244713938342402796196536258063761957777114102212716187267984268952886087682502135594583971822166086485020673886443648725863570592363286589682910911490251167572973109344946521737204726453342318959023275119179594256786449632387206499486269371655368790414821641154624885229812804997034695912792755908248515741909794958486064708578553354647383856532385295407359084383946610566918172400644559512522918619024464173397120191534896111148519025509073383973226770167770134464728534548411584389054104915687410706136057912682154828674721605489589156649926212515265378988875855636117253135168807087009054130792018863344049949269633418605425154369472771504351118608420866439524788245640309311802831047464593543804851862917612013197462810792068174764709164194804578153840017342005577851308411695588919801682898241035314330367211889200351056057522025096007681155662721282865487876585677867653203327091638255035779446487923382064497993318805079591935068095877602177922858911907452249862138580061574962111915081851389924690885407961564942585907710536649570044115983826747734038027383786702598219596010096374218831104269530705079913177423806057924608233349353827363580171034050910711544034074962790839041446473725485077965357952862488983169768738302544668622804100373339934288530723854351871160816057046819680680897931405269455096204749146840564735842688865337762028085547006820173992142459209460974437639539766457284103593120808904468987498564413668820587006695831035353334820900789212662898699757057130835667551293417461313689215644598778911597215003407773965613870024646524529891429011997725222630935451262205532262936658407717105765220341506438974748164042782472240023786661977358332446862686580643226601108999294574874821126077519902676604156212003857286953881698521989659845154573859928575547900531973954284619378683299349673111504368752703406897192610144345982058211599902387762009137912379327450949850299840509342665976837439512897393344659181774857186213282375055272181728356272696617527442490016556358739886223706873810925174852981125492987186258479169130809533778203168561894568258133916792316345782983676427085268384208053307094254319519449607674383779830448977256031926329680053759582832313870680438316808413955554426814406541461443419469489351552792761651031711331726319744021203754530800594570468374784098577795522603107799732005112534531450131648413336687541967975203653552357746969884589272475273182180006677596190610882960811271945975308510538988040407218397286547380512746865001845992109893373792591221892305896697368982393616885919073014310223584765362349017464401934830596228850009032873102647503111979635882978433991688098563173770775879234270655685193034885348799783348124676615631868477795939084057997847980228390790120699532369499013363127103802809021177656397066235890730425832391450234389356895804489317916695061260605443706269890903044587640712070530189478588998831882663877224125587760230223915306186566873900167309756394379729369597825897213470855847670456577650465542997273252175889197725622252754436915155424632561108097552342681031694479042979559283845486140963974832239029482112688266289170668952431850749177800009711701756643815622153949510531321026704144577401101824521126182927802213812310822387869956457275512904133474044428890566058977688714333979051597944926252001759282688251110171537588566978201349375138365152566273798538113035709458969966536344981179717143522994585662226035738681797343635200770991611502683026679111402539064026645253005284216883468359878790091999004343637846034704884243758114250339081365999048524063520930251741510023615534688008590588446044239299983929862262444405392444437286286517446167593754616803013488936318864526783040825183280713078577101842493169274506714872059189056379641075549726651254288936033080216056570166291463454142323485071236984188470103379135467855555644250349296139258512274719298544412951963670687261983598502234836984923990172153895975865074768592685207874147949578671310221878042178915088417373921859273782206642846746507886374505826043161328458809615914160475237348184377403688174803329026543453125421253371864826579058175171475975211214423198371440369643915944733965311402364046592920867498093794313643574509288152589336494351389138111847600074232939245082137295531261312018080717528369113755056161208565636516616357755695826171938963580631743078799557169957899367679023077271815304660397662941037645200572876606192597625893406009448675951305407004644240609117329330647849165675985334213231048991683416290028774420328358913410431860497821534827800093545650164360657709505885574185338793855553007022457153331271113688033360325869097727507508683071028080699507810698553216133952376994676524944912165676814304735571576294599024425610952694397825663766138252046167488054498144289901056105080292383948127466863132506089942245592275506039265490025471519710174961133003348452803988719750424065247461022418208509174171938114807899086757446891990669243293517790749863709641239197410515993581087487613602143605811615310734428753727930393410128992583977404453229004833273881237112528230909001434281642660123792280159362295591268270071703525792074917868910575285345621014150309144911225117289911892170943016016596507419923850796304284122968661218419601271396680424888814923566113643924883254953002488803151105249032319293540250573312377785397463256878966447678034758321780303816673728296966575594421721415312552373738497016685064143847481396908890173161798672904820619656625767270225577393824566966462032873600221897227509080918005417205350592755035332979203616857349564232493812122540808545069627697767934114566420555619103947813734674191503538873905847154430071583711705561069237297824528900773918726709978925152132568999501137025237913882314679453997522008383653048857881698032134397672889375973995801477188300847531449032482970646697260826258031581493424806649991403901992397925882473722218273076147841015608834677294933244229271304477550781032633988949197335656545794056939545821689313431311182320097659314073242782951300489825022496296762977704372808029566270416220070238559932834327555789061885487294073099117340156663773001191095396561954526464170274771412558229120753155057811999622097595594205479213187051222883879519102936481785231713568281627364265937210646546552728454490326498020167468696898353412272497260072892017573593508119582141290123591941547167288854266121780899768352279956930764002121232382227947755282826432705470959044253264500880716024608697702410788882714151266481253247324727794832880012227663644842428285204251433102138239728529022831037165226645504393019453592780703598184895770781642027507931934618792938362942038181385632818831441575856654817473779995978655510963027187709169378772027480226018308435102030582930090570611498077217839584600027723099145974148673607578467912900660220339785836363524548471010229990115438826651191587282866493645612821923929877256871999361380732856619853964282112881827183682957582967489144425791392146585761830029910257586724992951863512941484940447718589820196499580838944926460895918913528607616566299096007450002419077861854671003260676857979417640285878886314929408706365941610409890439964620748324861068982685305238001714952326144251126696981530380487348739487166912088784343876526174107747056723353642996738773018545630172722397627554411507980214633163717511191086930919027458926230195640966233506374205434160282359330471166355908049247868536756375546957232791563213816427020363166297500792116288052710892512897338163466865303692177248085401420221801835090386589106493030541659355501656004499975065098798526588170589500278983061130681943053513992195312339821953139942863349734067718541183449387753449254384036879521885222315524417005977320816708469718652972506242984103020670149502266897297727076366496724700061711882041334926972932296929000958848995410762433978728958606031638143136784956784194414298916344959255859161462885708907264490509222107360657145472610401320776062543211970895291022205366666955777307033813477198703994849932221465159660630557502850721555888197563596566038268770064576831301787926207468228079629349806481875110102964848918063499397514095836130001435587032623485708868526786256729802571918568290211003926967127452897834483493526975508325084560371352028650395546284091569024333982918188970556063157020953621642904853192146951888932002813328822994138700424786301443616646428503001915069486935613752338223100643256579249941241878571388947559071301983097971212285499859027428126705158716143965281267612521473790503667178280133178163279941239968333720719447326185760710143350738467929561146066901599797425774828912400981238676010331521854270258560013785206177034060478892215565290696079059306916996356824972479767551988681386308311228994392201590166519963079378658317574886868054995383558170112505993957291010289589457247623522684065503903855867305264986224520863389463321260568541684252414707224204547933271176247687267402579546943082581619604473235084810608423594558019894684668356144631562256639520047840363703906310889294643426359572285802458288254246456264490850422533895204383184622125182363647261146414399829293626008816745960091724519848180995461586615023193075940602322687053243815306546420824319557293795241235358136683620420507835934316334716811620935898528254892526594580960580778119545779896079553341378899301169210083059459289503880064453015537949450489656186975603036922366287839675963229853934123423139526532653619043916858585084690529465034448973996980981623947524953603681937346554399746911445306816142271044916512518565537566911582425825853284592643513035226254011561733818166689286738074467891973094018418349680188351707102471856299557354141671079825403167559342558199028655530880652346367239936259622604693743851986629002769217156700138769588681315938613893388433259120191193934524819543129968098429832083326747690552927194366337422622364788967872097188778120286879517659203312489693566647554569383888969031557042562526910905165736237589599681146168201297382560665858189110175747930651705839678714728500399493879819971462164179343564318680133413770513409426476750875900102477202013420171447645739457342167141530019229595053977122344103217455931292601073395184512841204093155626951229432826949405219521444264425503523538047684901782637246718301053225781000742387922408717706148215177817587747809462056532092904808781569473606566201428301938098805715510931052838777620307152940480461440759728309567531787191899868210028413795430543316125623540032409966070057607731604691525540245092703235857225522926336466675343871307850823292502669293888983218256845761829586949387672224561099654684336521143389385873754503827634194909750694954544171316432330794511605230971024161450666726881756933563925088273602200433977371039453745724349465193159825766367277053562404715278991913760754725209675888306060658370701640408640009559782210608000880627226761782719956294760307848542133814454298436092559571438221772541967852223103930641809382103477957726300456072810784115523261399184038915726370302494872307596104793095341453210012179770657284306931480468952400143278378235187179064147152414198276776970751911537395418085415387393608184771492250387355955886215720423969514693113674568318461453497715787503136166969893930730499968097272751044025408724801569706892446552037749397140822196566595728316973297518644658517429304323312246129790551348458591316843494906803300412400455108747861208288556926967079273841027800415653517968650417459138504924765454784521512740450374985615958595719263078008472257363443205747743206458160984622110192441005452496948998217534800571666182477070092451284941529443088758339778345345882406140594839962407233283875297472545080367404538522787725935261809763980395380548115135887226615374358512255557774706014629735282195109997046106117147089224248160871428722194319534573890156394623928784238867475648986169938220191140903440663569118673922595118874939556674570094182455249332480401692376142619715593109127523159336972960867245480602380984266273090112786992883959733505014558374856887261100826145691881594458456646946443867672352411267559030893977978483955095593139270693178771899346917602528851068701831436837999984854586455102748219159277364086028821949296800198601669200186203175125591950160458034845942388687664849413727313511335366394002276461748588359242246826789342821932384955993533842119596872202726811139776902421128351112782489050727772748526325437625555761899807405304310684747514218893274751825182423948369058237650176407555006508763435468122880637068837390053803841627322956985987922971033949430702770385478960845250008979047475635698772290396728372518100358518954427653794029861561868678945754500123391671486847711022485765471181173575004678489519181272705685986546809546365680286647851048032281000026824293545819313160314396207526624946903506756087842093470598456759615760684087426570608133665966856805198305784816855987761085598912858823406858531687737710807291872813246824682095766360608749327188449607824695661246658807978871432887351329309644606972720492841674128939796668159232689114425039842576944912591223376935544115288496923283392816748139549928916510567737253729978019039731983964523208115824169939759255287194505468521649430256338239148288635024781167531405808143282952416241868578289932314131184521249085739035322271620702676689465101446645778708007371263886407096567485213274495799738503642469037833469868838398334995455476552970943211866598471452722927631429085333289712489587040801869087775077311434108864920990353508665140465930197691394912640960505103287650569450454524139750757598619730467891072799276416699931035973087923698882197164618622160950929442699729475320322208664376155718988103897097641656054466286387675002466959992879930366273751665660036415219510660373986214096602561952014525897704137668704158148981094843635774579661985172802644727477548940638137954181791216412597862826028273512319311224175515713659594763039118122099811041325512475928865342750406368797622950475598897732685146402436182748279641479574263068559356938319634509417947785156872586665724811190336126827166096798958079730148845188253291690034378989778913331735022607788289031408463715995315384527324392142021220728142621974617680485737257442285926407384116758716051066688688260072431030219702999508945020057625705501091832327538904370842587661100264465309746614077281299771442624967473925912064953662437190958858251729459759938225962192750200838009824637703088913596134975464624070214008200465455035128079355272625994307201063933675454835278049112279048008912625806892577617460241646939504494614993871274703641215113666925787962094074289610378631237104790253380115575417413725959737025433015439359210856423204656679003849368108632170559994554963814127968043857511440449339158152730071702575503260370580742423609630732790429076659050698245820542867080024598604235826824758725829345116738875142293392749877103726178915659011153549163144324799511121640070506984458731331832309287255298109922622734656068411448052695710741895801021449706623936286792849393178662035067883965873941135139575641690606267224977239719067241360850970817123798749058376155331146556277598287269460813729815604978227925824836600101241442597835823930737557462279951583787444793083815923589841826606083245907835672336132727423579621033818177715604552469036676993253703956423540289026339755676874841854509089398443553926615533212778231576753009146289576954622665992822879171365836983226988136819448532419018848878220015704989336994975214504922868139114417609164141558395530625884421898753205298041800122045878618659347127342214961301828581248011263438279737861184344626852831746084560843871749738923141242056799211765683930082008625873621493410435687295953345521237915760032688108691349304974085694675656079251120536317012388994178231403932675467793542644739810031504475301193003666714298012504627217811098601297583361486378871806404781519493276213075849293953460630514842721505705818287235991346199873285416903351362761395677979266829266781733103784296999448181276271183073924509123376997022776390331695927008406081730657719597127590565371721075592672582710158173614114404065940316899551966166533560290828096788546834165015903640785675632916753007208674895451863979128732235357511288621967230589209090999134674866864215012171174062461573343793614408747982396613759178200577946111541557150487756201556119611759102744864226273985991674431519208103669629498882081266597238934240860234802449274813271240722165940930852781569236468471678038091860298786795805070715441486027584602426055440526087435211170570250419002828446603871708267837865893764795084667756463070678332972325194486833774421756572688486861326248975158974495505715088582575320925412525144515553826083688189024249660032927117858842276152321722916285787334722977178659843039640243087604393964285992769189970124939745494428689330987026162512784173475240005048943584697144503347108694891788069570285689785835917420061109107374121238765976945045911140524737394121543692988383350827735167827979675817975601937077732918957978789704794993392389782545022680386282363891635144749164404519965843100805633434626046032177115703150008330138118424511903850433104429522756936523213062661717616926323898463720039334621264980724976775950949098542140601176891405301661208854643119936374335528175937887868051358723484562390889814695562827495307297222744417646472347420412548191032937758035684178303841288357020450157893519988390241448787666885816881213857877536932068036160747297273250163826314219854313411163124102764594281023811270724147580787302908561495910973147906685617657373516308049957557650206804481369307908112623336854147457183325774123493886364480547260770805235602634791599926928728784810907042252037692293984649905268017158885779678054536505745941595842672826076134701100150265214629019158645378117157623246196351345234065118565067061865562600072345002338807603508684783956654302083324810198132339076836700177661970042796598619859863770826871779843879757381992842955385080203518303845724550335554536896354799825465164027114435583775241608183623667414693374041709051350059436201811249284134954349720995183203149735846829026212292185894776992156604302469146063241572142845934374243989577911521461839940919567776214915734679087754766334030720004009602362555947750504159759288391744612689830374027555300927354289307302198613279502018168183840295871902633044181658121990679380547233002524741731583722359102059939438534176813388253039106600447099117587276050790961735162601249469740083489671770780366556082013383707656167893621833565632050283759167737145399813918079219660159485344294876298732540307880604462736177094433072093668181743681787086515578473891979313660297856167738206117925621105880751063432125570857734609115428645156241191723286441944548312436444248911451017997411747643503912098367366646902348400392913709264099657415233848865301054539977142956356267631653681901450398707272879212589066054146076958132952244717179193472170942209322386074434137954023103001399331599939554666313658137583959494705320203983275320720201718457254767981725982302605735597623505577864777140512496706880389778742549836101712178842723432964426979163816196161350705453914477716697728622199530551350381856107507958933017914826229410014927972870127157362653740133349466689601824147109680408797314479421169583699351903175786422383528315320283829672618053685982471392593879727589602443595876072562857144549312575929073132269116635852235463520146256581723607150801038494684261048324678069116290361006168937612332374882318475140256985903195306710500439628290932170320981498425272608901395658426206649712069993233918225972311386265194199495929484154351307131885061824014517933753727244492266623613298210577495459045886619389547593943923616346232665116364692072562577946142049819369409963050611882752482662940455924838413485366173659475219168570964230165862257807356267675621256137100003197110996491842490270964547256064675081742705724892122070776762946012900238764710521913182706162830383237612410673792967840183113619222142961457930763686858283226706954437464839165732470726551115350166549783280319901581016538870409468291671287302977785125959001990912376763144395705232723379416490455369618884650048676699391996035040400130281149901497085538823022647411341313313222948383425162446196552918790685054870515672656293692377335180409464970965447200849376864422527935736427994971975266470794145030678965247781546810975869389225958395720553275257956309086903433133352770979073492752228112396971417615349161009454814025036561145388548174511920480323382787343886725376442159851229453958755352447460929919318382583736674524830404254020121577025675228566180704026672588021237066310809578716265130070348824222360456464538888138918124366597877479603505505769856776138383479038175233805733600562052215282290197209776430359544187987464852153065232258309448490056450089418928912609706870165071630078893345389722700068069440833510166910979845068878683944944213805314019498011076195464049700122542542071341633840926630867531371990196413016615257588902206302939920339278868639951105076634673130448962636929099945862906956873053078301319393735332097353923728777313679500532229021696985199934925185940988867865843434189718799029511846205080462135558147665476046378066705746768684963843968339098379201243033277789565080109778607474949961094354278842740780505752232183663153071811533420940665009927963331985975538096561260323814431305614239474350304327929798886326437615559489381076332752756277034762854432999754765758364081637039070873768925365669013072487257402284050909848227503825292533534806526566347392764906750261547635222545380185486546023815398108569774122673810170628660405532827450969906410966931502621838394614780088305544035112700116934306855954705397155266139554660433607371273063910500196803503382768822894903776646598190250446184021677011020682023190401871127127662537336226653453578366009064779468769746352192291228742382024091399575720803426553712796039756117549612384207733562600381672538401060896086701292685283360703197266655328151759191653612839088041418920968944261864249889800695904172969673628611968011861984193197503031100402037469800232280636946611684629024557728703094025014592371233291351567605527074133244509983411120296952177937687436745787288544583059356135076533223578892552358267296355873774279445909089075356821874364120428402195188181821959634082918683781707912224685824752762974879749951806339383517334990772423069642278937661444161172608576816650512286411600784593269543946343843754404218802016827865863050038902780802251179339936463541431621304649443584170691388946007774990031008220360347978492394232085700232121486874799860881124172980997471864404124992644976317684316904226876202898064963175977323143821372967999056298855241852291888508429061506790752867128819440512556712375167510200087209027142798014158750721751123674947210103558270402100294941956060715760893484249077137603567248201841057021705570053308255694203273683422298067674786163747199514705623577039884221149436191330053461348445951513656442198006622365955360565991714484333217705432775334219917169663058976867703863256356808855634165107623064077117734659292690711763455706206233802869371345639540387688417446833967360365671946188047754298307705434862490967649918104360850682885237107428149326525680287994489599732303566606756540876274080963824239194210982379613568132688238018662562636206788448344711072217327502296335791927021495874357478961023899595288098096754272916363677624927104500694013979759841137560911592679221018273931942185613997651844182359550157394804824780233065094359807886509964059128575845237816822414975705898802093479203967817128853823244246006821015663626196309643454417518493533097139723902383439144301983043111934529233254518282119112396760009228535549257342438184907360478385846610138150493528142661963615355706167815392194953303160449278512584653269922405090540614215379678199424101860490843521320554500893926481792339650760949082575712747705448456426355366195882698247154613574433390477581836853364316143238724900023811241486200445454067289590011329272077110626235590996040214372322715222437119816672103763839917892728367933574388485700612872057198245817021931347144951370017297933390951068788868840551723178974165969250229829647050609780689222839872838109309033246459524923465572553847824018327328184965859335745755316369224736320622137261361770966062148603266362696165496254162542482927012129036369973504106858749378571869654117263145595261783893570473816422339031070890123955911672955284786464681277609533889177784424819595693417176841862527432116180290785000626229591482193223843088885685075913484185695851345562750498998324611801494456288553153014349016846141466286732618892756634078686689639834071450997379698553931515160689554244291418017155433769246399906867946012916368404968956137764644793553499060490082177747212441426029106230124509937944738591561633480059746340782800732926916200134971684656474521983880980531703043550916646592232728565515510419489297388582266325569529996976978954011638876065469716873626294301473515405821668242312811142208386547971617800684748578321907259606352997754782721168968867516201379477281518937928321413047332137367075327524407014468305750624573608210311280703422775272500512005879294408538993838839294215993399982378733001899263001761720356696002291611470273446996566382140989725025459129053984884595000457821272889441816083067004697268843410849331561044944792889200865299275533184957535453812772848543328843583374272421477723926630265651505437371250855207908993152910775117737956521292461530516742301413423844898168610040214113480658304636461061593415246788307426998881817865046782745839320800207922659728969916130639282075591524524602752664838610071971972141142834487178499505805155226816639455607926405821118108246798215271969562943205831055273148637074491183721175809396463034278083639259279462111765134760038793664277040836876376954206164836530586674890916292652095708138926146490899073176431209429485456483050308954583704283411823327436534053773062657222289732943072532754134848794145950551616564278029144448377265344212898307336050972588024506879644051066284212282475115190539893888370413863828376006093750698635566626677258162234670567608426080916023670045989303241134167017204660670017662057181374657034786016174855859381316136816129663140765142368555181874845067325348787603379445524105458415237427661664114702542417088714860522534086110857416630708314880657639368999946112859170972524410228493256323902431602812714631942461834223288516938110483540318459306623756308967127422193663709962392279155370244834232395072235213019182138014843754722651082326993708187729491255369734356527715549783485639269471053146082022326287202000575673042628032620016196635637225298006785497907614631973353751422366923724459187680608217666677635394420546137613316531438878721526303833248026630797362162539942056322607804382708292590907440475352599939491549232581509325423674374797950568577410326246315796797235009473126479748983027513919510447323668221776550420167576873880257106905350419851616434370843988237348899073181175536644687865783175215846804799534534836107476691598907030434098091585390931047698677233144170930801234240843854492299367931856451341474268772956037731339639002331337754197635728510749588336742950934822342307049481745410587502469724663813531701941459191765840076193016095843071547937482953226371013449630809037534168228324043534120202325654417970407599196582744243044754276739777596511850929414190849699424962910939259008733890388688173212902763364309623295133532552299149377969770730539547507188904540764935344283073172467398408548605090896102440818966189189542179595805496246559387061572182692619735286687101707597644534213284846181549009396868469830383361268403881193467356939014745098963149662682665074374848337685220132943512644859465409835242430895560594555285709223089890673664900985815149210098426760278130454636876157466696522246346138640742635035301898149440614344874740202384029361000135055404190064192325007623001463400721651912007878398220093879017787879990572087792543056068694381873121731787307861425185440621282078473115928317870987618600175931110806096459219960292565321400473094453004505188898959530166782253065856975117386937241650230529040853230934248901427664935752254810581566331585730274215912173678445055384705525356282446962528654647108294396272693324537924167092399582241198016004987856466308144322654125837686899231229139978529703894331341918393327690814851118201589953764519386937815335471827189977096420954690309470822879023627152365195077741557565888436183402230354586617190474783714491250680471493024288640814608879527893449602345378777742208302373835212063268897385611510563142513830906615413797503315347954224979957574218522549364801987229040071429184952723787355738533320383208373260118615235054093959024956536624304173738922715428529019302628345624327230698396838736632798481337190236740921971983860182006241503391957903359234316568607002983134518146196781514467748940147905409683459797098440047359253528830324112568283472904267302237855777513766818620900204611297509940816313701216563496383392784568101719588078841761121890838103234542157099838733097107568579671502350660955917551711127761302461439956816536881957131302953083914164605765705261725759287239633620746111272875474002687997909732793419881960400096507973222500901349009144369619333540180158088226906095276318398267135333404462735061140090943120737365439098562580386314661778380153100070754265929228384830591780989470995288569436868434402405374665034655866795473441539337536315264803178018504218861590762132403684197694110804457144755903693044171374257075984952234406788239923235845667316282014670119791453515559795382414993351381701319030631000812236084370684367042306561936344602150881043582962841782525596261779855795062608035613151669946753757762234907968406071764511186428030834703220034988497687566792089986726824544028500522572999210251964054213346436152161536794565694088842936218791683715555071920472471518524600529648909001007382493419413405346010033950611680113460773094586854498203794936592492969613876818720550858971268731310167668544122845985325615731726005099908758708036218454737401718334454507276369721097899209159100940331669439157054161295912405344178720426514239916256870430733129587219912499465810186924777644554430257000592915957738360794643715260601929523483865032471563128197194193973232312625496416008051193578268818134993532717636824132594889330763838590345879531541289533853905158106593258405264248864319608258275974619331645634629231636336346904536609818593024574949599695000099712984784531007632240706213046857511984650453453925654840069101308794486009938526241031964407777058726942720592715024581537556092126149642113521867317547420771940305026946599350074307509991339575369398803941586038651814705278162530100685794106886934483294792461058569724403730618770742277686818723773446429123430268143488320162681119645639363860908115610982998580528516714101448117922997974838048446578842070559552966193617994044437357471515416553782358830079344788896764978585922893163365351942998023204622039271348529807464082433450249273161917579304177632266288807371606730053322267233964371633988334657570257376954171497959080653744089987742798817165821819312898421575004820912010999894843274600830942579305071728920507695339038083453116038064108667862841604647905176250625526960402189774052540151133142839104150166965415144085775621708803815021467222849905116068514805688366991356862670735492038171129796139273138297453560216512757478471149700217534821363258841114018551391502529915646756230219642783796595227344562239241418457993113836848386731033775394850109588133335274850831865032811609830503701747393314693405489048385143614971139990624286312018264320219408636932830125131712735822728462571402574379059384443288831262462052435395934821117674205215913584176867573314281530797162609853865909560605551790189284632616542355101590403049908882228975179262863753730795098962699769850698891039307843146038574924242042944308216338510338163918807678469603833423545348670443518458675452643591299745735499343560653471905287951704176348811376924422704619317639528948815922802885048004772559888894365809872696718760076614301821049042898010014676453917676565548205965902409080041669544452026358624451948806043754120090727865038274178028184723516454459894887949400047489634615242938185917007275325214496601465920328854143714664120496070212704613204953407935042112463603217726837422220097235901635664765362367443673895410999663007198949609696148616020465857985335225038571060121396176325729948502598723144565725771123814169616463164562137759470538818719720489685751169013880255366592603666002647480646383686115698526532639262014261805801635499233554854892014880556796716176871328324643419361725062530712275744383199127331487137261839165151730056183926640531932918112853972389657052930867105782711099367067495519320244170892846456766387848278606951640277099515173861127242560789118129384398954691529804861986390331816662226920417602285735687901747313323899192376176792631268924449884938564075879391860827158944968334450301806376511647129044444796107945716902996974455149877706057025701366728771316519070452775933061188967225597392697058896931541403740746740892424946452978757638936810991966020405802194716181113057750781339140142426354330372497295604889761572461734908105893252186343243622490929222912964555007864575422243551125902245343398836631550073520350523748923452895671259781792162756171095217153870110626889848865061807086898845468973625589886591596119206800799169856079262714242557937727183501253018944958848574629354309469594719835610584870002384271602340026166101464171340465544457681814967173182383254105570870760274732369836490117374101350646463540725133855547452708677886067553613012006989957454625405689042782995410782793631623110142782957511184668319339886748232665710418568464822301053917719066820729709194320409812224906375370762153198771044469810287722586696804722861483067224973253332719825325178010373352259531502196463852661395403646737436785246247982816041322984115567892683112608284659394196359143033127223813274551743207286682985275415652801469957274076382597199831642067360966418761832581202089194868418207560555718819390932472367921191018565860606384493193868112488520385091602455532466558044145422901347311533234059917162144273453336015697756342825855751714335631460247042544907766106048360296041614023417132876055599136449802462757464039555224571638100622876061006950989909186542557522959246335543105044349966135103749327935699501984241912837854671119364535953435878991825210402093888190292851181400040129289554803051359048189998857057868255874233282088871581346339536738912650830603535158082105797013627418801942980895079525813024176069502801853496709387174791416307476184883943905802744884861521117383079346963080733293730888159254593434037271357052758339253248388372537297384969309704289528190516612048264282418020437455593520122757795500709384955460617082367613034084734746346954750309789771809464750331293137215371732866034288165424105832224460727622002561812280234525269551454678932783794241299319066867543343806775590458457235121772474795346991701127976761729527999776957053919761474533846089511033992532288079354270289743866512107997137872691998660133684354242998615390877807978801919162022858965168068822450189643147472019270749461126239025270521273000374378845845560058264343931891468661489971670834927013528342708781029827951725011080487208091943439736817594927813553229194712368977280045830827200768893026262062934732237277825289912981464131218656590418351264897208900995807361036314710682027429347948522206164370262502524393630702383986404448083460179639243443947726188591211555359049245530817717940837089306214857040148442192674745297020638708002626301646163681260863177048375759797144631400570853386499417964834384513434246160105225609556565151392379208583035152198820677843281271471292743672008310313294613750406533071057720882777558504009969710179031501891369092978753924315522459438764280999103978563229923656843450957266579620707783263795434055851949230277388943128789888941703526263012799483292287809372690222579028731861253520129798545676534839671780058659074519880742323181295272479631048861091292661107246272229997047345656411710380642536107212058229869621897161165166894324462958855922232514879393195184515893237395158439281859477909019702824779213510633236439951628202409774825620570962808945794054388586843209176645794124574212194771994147878089263713815427269601654163432647750290593395966941094407425928997171982753513146342142972774235717744107531898770113445436263228415847327496088547776310891360978444112682075763358540938697901833714518020502056008574755155278117722093029212056786198488801400157631597853068185676804905297945034055737939477137684698097913268738005212046954614959225096359058712949678438748009900912729535893367012775362317962226554510653979107503099177406396233145566642076811206044843534518826077816758845380018127905131148853647750987885946912143724459998061024475250665993165586136210375868429037231395555823388370316565632668814996518557394385115390995876684084510494433973911962205567264684646842320087729493716270337165531404603860041430407828803952429014527171896609890043804176761983213984005216377426211705697084264075650221742844143872499844065362939026854747051273228373024816552337084119662842244731194302247020675900718065041391735975935859836963194219186214824856762050166004023144346914628569320283230136697739954814231612711381833514894929727115855819822631195728833070940206859243468534258758181155104555606134111046209775631255581365794626698113365488372390288447644446216861377386218718310621129658893280175866662032833452934247979879566660783536031607576454910725833229452140011290866755399411808427358040765051155360025296976321790654685226922153760741518369056239750712275043251327678140498863186392290028679013429582477978005093103127932922424333737693919839083531535806210000564277958042144620728812084897182082173628519642361727552300754191829998926361497822408950749890367715990711287191039262597573921216437878116977263110682710416637761023804754066772805739909831144629590898119738761418861818046637091016731152263602953947212387931802253984607963878436940344544027488539191432439514243009541914884716573247277024408216780188313985872322866226213586046547001431393362868471523835187303473130842230936585463367086317068526868650620293127452447063419690433513481979946012127329130958193411431593543451832970140376960345707498582910748097655809094650323174236684270528018253624799282020980850821377826287284735875502012214785306767041916156091967998527184265694820406834862771823321520864358290225920142309529852445393878859984164216977004212398029250074194778694355515328677221549829320226212266042445302580911687581479100311943467600621323472223160542327682071789607310448363660963394620820104532682403143145227793816819741464280213550472795537793602556566559508119118085502630421417636897529446560546479801629107734729507590642519452322184937496827437774875931696966276381491997145233371366545934481403976590156203730673498370023808761610051712808469244783599197606476233377926194832543371485505560500219029362617522605468038653521970591964702182691660218806228058035642415181613307549526435555129918454425250605125714449440025765027440081712230957915207401629696678657516210884781481023044068261019887459446097517245317405279917140405908348259413415785042026265758000944620019969768256904855098515521700053458126650399944943596632108452160989667362206087380122082971848630774344471936857623259067793005324728414506642061618104756151848027670753441414591656405430635400273730882846912036252733388187465652288312104610012733983630067697020383345194433806855050022628512725192016932813948437833048301708078411675172547055724479768114925503080111228410962416155648974789531779919511996807583882667399828161880300341763501708374556518190966848691947766362977858771681616408895362326905087634523458958098531578890796520648847163246111266645933361743282557409868555802509786414871533046318477074010129191536318422401063723670781647652765428700990513818767620187646847652969388355803288763563734189334652487547173663559461525868785216324225560166042602759871057677670753904582627858350146456165136987324568792704698479176633638483650629592641656912398001083052391855712518527059421631859279212917007449957537801384889894873774185927987905853389632911571941423418862481096285684205555905126878581542463077193138583127631710653260444929868442183977199822095491159525215781887465376624199649394971073865692439040862366326769210961662626399864581378159270145952359492793472317611617678969163819779535778103425539703585961722855297099725271834886705714080238657789257832658423686166987441383190775601132363318254684431977862709277565685255766298674968968393790173183761258105870640929876445851476957147435441322993394421069063351663357793760510675657391992141013590694274819524019214710820892700435640468288482915130652039364823570522750798438761456584230630772562181541896195709632023790577259852364009342513134669940080396402531211485834577243665001649111246071341417394661119147033926150110010174364094986096185132932201169823125444144753604842656899302300188843950299612855330701280439163573416331818460826320837055451964014290204535148331762626266733383603991014289103039042650039660441509705855228320233097173930162330477480720697952956431696304924628109856391266578608539358495952327556764493362335303847672245984257308974969517839740056932544003547248627855524974577576235287508686867521404405046768785382524942366889501352486732130359836456626634387794700407183963474469157964138372093905179513750065092423822362256477801353470043079529634794044354727349794235550714943825359407070550430469373443764006044726495690292662796402223122419852208833567774168992284517790494509373069210527544108897981141066755342870900949526821074067592927603743011371705226126719449312196105443304913183026371354536110417419907663118958428529413492115829032771277639931896243029244508447345567763499762501481972605219940481983157555375526676631208686359755898476224090950688186122451144231594047206114989755920291295657962503291074706967524974052858190718162434130492374167489012125872357644443744428967584497719855327282017289174101366621976838216103690206182586804161071473434467538928867776570576162796447518725921219829352457575433802619559317043328719160622941765576461606018892884755573746657603890713558097370887765906067926342810040551878895108032114203997393861245121770424209457629055979790859854771558408103231596113246018237199647529820690918317819877163463687335610036400971970027912049900131297276115908632338421135018968243178105892968808096429844819459164078492031876202472307190109304452972231227160326966680880736945449566187046068090793065600917760278737685745621562020940753202733929402328183449760409107075648069592713710848948210697581541848741845945869550362438018593509672584604469062234896307461169501902533544961950905891455143454955756045117794641059524252131608896706238535614866794027429990257161350991436300857006056808219322177404960894109763748790079323096655669507864903642471684478767051047029239929344012109283293285691921222594730992656040059104276625503622264091541509314880970162061895564251417633888256427221479008390678804065469290800080078509764449620454536166337118238484171006458510169561555843060467513494903778330651911803362437477496678110060996609469799287401940719228541321480004241590078578334319462637355758280648579904012344151977676694401532574855060203808040306016319234282977248052358860915591231746312083568929459229281654170045898249309514015115739888620858086280103124927887061396103443162570129260825074543999884112408984836576764544615521113831241219392741482903742451228095909178242118268154708362176273525854240241413346059322988077984982611198997653406791137937568365753043545447415747411886100785320691297977719570969615404654612551599567966062948287643327744040251477899565547246197249898847667100435008260587460183708432214680898560576394006058085846327063985354848536931371663691622436875853164540059791374899856838376723499872795739806405157052131892427889292817654602399021532381538918461803490164474640353707088809176455657595532886222792786276421920710824170233980619504182609788316446529476461912249868273816848870545342940272883068180562923155661968281957665864731920216555141479635791382384333962794105406103716408061544286795898600232032750857675045783913254878363251567142444434571597643411373732504328943016400277097935645227854546970206882684722108006223835662105374067815242145059865778535593154340979580764975821971306269727554695750725650804876999419310685440551040831917253612796204639895402441013387450184143146713596481339816550576833587404444142637837104183541125768573043780753431787511216764098408114555122796360729460464036670368472616527501488005352519706662476577089912059631180331444610615153053219590564642211948572211802251695104723656625389682655624671746131075187862193704137355761234644307868222344654328873834073324946192603041680343850805303120731371825571641097848686983027325025497705111876814919214985081863067236029516078689569892445502969080836424145971538022042808736547633981440508298333493087142886297162050544730183206929413409897978785082656602294289924215030010125135532522279193721819472822138338535897766594953646941876559248609611193125426719438327860566254899488717817153232698592885064895104124597041089476498643310410898325610815759480969402203172008884628482598328194596595283133988388159639801878399437581443171270551830339933424580857162582378449713015076420005082221850780710116549108366649020725520471315811319488846131795553545982657790045751818246658103779962912870173005660325837922582309638764359731512501897954855437884077315022011781334800279070889960096625246531478032018457605629550559496759391152515950221413146909758815642489207327993556121072265874153589700635404444027788659899304796742808278991983677456141100980120185432989470529512094071798122109838139711915282089338499005011911169548080798133395154258097063373808420819166311156527976894136403247983244922930158892453626536845949235376556450879113087221970876440259987394420222578368311021171719155273901105109193916501522599523720085863941547666155585594318965451500374062676898357041792457241821457043411089625532204493412724670549192285555143446518543907577315970622981212604142578372079593032877493990469858614038041700428314682176510574098764044467348673585884742426612408036005811958920311782926030344685861383724892074429656862367410171576759558458132120424569283700543878680355197917845583044951183258788114287074587111234356262190920356889240417418856251609956751052765623812088784912324407282656756264642101562037201915091318467151451963283432663411802831201427953655927517886624008692105411703806716599952832158034195478808284204995570726220530888764755917541316161723461657663035792653319633640498814393752261889455843762170478921048906267161767313846053976725035534142879232974261385678107472260547151966619041520118465380028493918888714394940911607700582919126806585094451703788744486854362506819458203795660886788103487761745686891590826960699178881163305081621861189306070084410945150278792584630944447596230931006303054753809781296282949470241623580082727088276564231820505228165394668813109436185986364998605863572317156199699607986408029720465904514473139040553474260307671164447067872310797527878651371729678161906981070174571075756108886337535510909565685053900504047968184308174443778783876477712471297072172969670763997309854834743743630932526207573746882372232365880587735222034299483829296559625497381972556320243358874651155353314577082839120968132725591164018721437355529498582303436179722701140109687107406032137650230110819588061037676935107025925224273206522331363992807459008582425477787134690023441910560171971598997716615279652820716785719090507408417071786382217978463536997881281165992414331520408100303408067984590284210952405350592071297511655809539393567740172287310930022909217901445061807353113798331770947190084321828357830100086751816066385888026926997404858273358096056096336250733636278652252999596362619018426847919191792377411521257182387372074017622825923264644488965459531678212354525368088331474448033628280204104758391686181639400650801663413068346412718073969083310102662851025955012831842849878979971893741371658732155333449508037685693006101919797535627223072545645504148530626394243225382615119088523796622324764892244334816600251061203047149834802771552210903360155268675313345593915141767110921846552354964119412827866978551365810626136680190065511413269523930727417002125688921042837894482875508492601603329763373403829444414931792660983675383437566603798491339710437920986107896320423821436559670606919267680608520876979661819472223964581701339788112367181488402862446488989545275748976471135468917561639311815134213619991781024694232660426565090890372866506149857065944462198531494246611610078382850836023313503022047733905468441110989617385764571289741799394758189808809839244318009202573324048912517768635876667832136408740964585180458433024688702481688956383204815470907942366183104564620312452306834144088815131503007023724570567052391545770572048034176975862685085355014489295106306237261379681562867617947099889782853987727186290013819493723644399981405568214876514187865501082015993565203929474159668325345951302589617438205940774332430160289096333325261224868677580143467612568898343495602119057195412359296863747608585414923663071645469253220118233807524206495338677759047444771913880982921412360563892830172879220287451394041092655167670906701557494263905400966276405126596914256164282980251311020853966664324668998840472029432966194926454789331982302063584528331951234891613284455779088044536827181011831535852400177225536916979540874441276214742604355433768275026054198551988660792614452108376077003520452624983833136244609166403577624927651702042313063464225500898606640151505577842482382803009607834786309303014178735192028527405992182558278137116448196629134270458052118659439420709187444374767464079082737683002302826680839575985214533710920684786914388711284896470544533938595943694770869987355942916240595140222399703802353007592618180098521253457962257236407289514845450274034548410399215897980749496922411497603277415526215787757781839394248234107714016756256138875489033346191687081948678426645339929805341383910108596394597175056210545469559601341177016625918776156702280949513335853794348705667030688812468388463878198318856192945818951260528338948773605133283332288353534857702764719193326992355578839969767233772990136810095342332372188049046965029509482940524869080197109589006618277837527045668622456199800577065009487270767775285375752979056026928812108489426458379255078253191341142546296012225771543557611378238643652200343277134353942429118917297403652226790393688704627327375254256472055173230288422220650872702244326157823238115185246936157340159564953091926884954576882575542078794848394402522901812892185907243845110703386084374180796547828346523966748278984725440144472308027836596992354462666830796352547491443461981706838285542878626635756663002214886435951341094102219599783803391489063772735003656810954037818003017330629253578505804577099865317417630546370621046875665993482121581075120462832389331469461182742126117860988791018791461159846801101927796344768831959313641688074296486666717172439242153321525580619625516782656323609326508043352242770410409052832218128872883318988358329604921028458418150308894550375360065123732295277909348910131248060901656635282474866792941095052423180717749285321265744424405113534380711052603134220188045247097067269143660050881919997707496754087539683891521421390253273894875127964277234275846773330169483896977995840729384579294483634564347173587963174758138259713442576465746377081239748093891261286393456366365989445518343226624955648066087276402068420670339480590821785136999250815756346116393071204062337627690998978718816660906001438415124381946620503945567286540992547240192495706496592842028264986589804193826697083218723102759397582461888520897622132177338362304643151886679716112596774746790087647961749018596121732027185645659779044734895531411735107915130880647822026419405509993128924849361313042640483485635201316326818654909212667974059411703951783305324444564128368611372705746448158843694475779277851285907900360472521119260303716688389777113262549504814156776370221344367738492767445483553139575183622275416297955540083397239584754761925655324099586480703739614459433131061630591824695519520335652039360031236501424474210618700888777722037117147409456744094659920022793901736958024715672690284189813123795482208526701707637152224151336041021140145696836950704371237483001940578362038108832323738587073920129051386352891274600049538178219442840735527013179654235701848761436015147889544899791441602532202000357615269405799966704384874935987325819969464246266854434885398418765230692498525499494496809347286516384967713683267518764724498283438382723848098147660779764135885465163933939499659893444835972220093232768538129078315714737553004758235001751722357340372001030723402395266725549502940234701510399359152109176597274651061716594605645977167939844339924925436092385075520817695445926284246484778743374527504720595971326902140127333695870588870806984673545257135794085738247628457537792731757204807018082566183135890048959280247172679248932034151066751802563340240058482305471833598719804939638722888879376633329832397508541162209844051719565623215506173933429034540078220184492510349657213381271204794240298890457184028923211859466979259385389296344808849603764912361212472968919144782666628271340920008746569087942696520500044835066063847053510122485445449209562252628194009461550884085920346232846486651167703328828865895320651617588341595063653159432587932053898495066073490768324687033191558574345801532289490580256261956831021053738601609207987223182731956265084178754591378652433705207560228812671832862410029216404025951500777387331469049439029977164783110513739067968025524836333967956390095095762636649826812870370907931791477477712175664336388666125584967272543039545085653860317686344509700403984341992254499625087372140827388859271497105894922820347723047226185279145111425650544725874688265910357182577822028889937336448361876450756119824149674841279149985075714516400432475173204512251025093328520210460361349907340200004082007617172899939565380538846945849748224579403479121133805694174452866427562440426006911962793552290398020456479770811510662164402037578783657790883888250547625296382211565096569281390600468873648401113339065936845121081101197777451318529338336762546590713037180245553917245267277578284620615126911566351509845650700156065619096244719205025538849073476708936610014352772629597856109671857438810320857553517660302108294891852171889820828554826168247962290871196756984490069729450702040265035401584075796839979105675962364879099301429992802622494785774922389407532448905255527510117530004450673332427156169380656275583926285831311651346327235806849077373673614480234916244016605005469415032543582056539045681950811539188946876344193371783818269635294045196781806795785173296843506214134021782372589408364581180582649417268457709374321573511551214993784737267090884807080978791248752979498754861180777337963390274636930731796801807065865641400536496284116879258037920373628257677162697612771577125268055543063900314215328704428342704838775974319529658753515948027079067886749044561769818434956509573655665815750771017520476291362302606367757201180353395321999594316788668323104783004442885878497026921165302346238589615367774025725662414295845375464800316062105412763831490785229008955661012761489255335075674434907335866702708954980328807945429283671230874163601326748205633633691257938270207130763621685377130957775415972855072561187839585621576928069282601048582165673204281333201035666052766889962766620787278264526392381393954678063500325263307829353190217687386492243777619210279259607975087269241947831419459703259194288920852126350764960126367582979932312897250927543092819609489589792203817277632575765709310999353447031072452942005940502027864853462862733393508170863497402043422514150729821759701303479984015983753152341993400630648275149174403544912795838417735845619453289621343681469193035597089655894146960022110677114159572604299012985452339710537515175924406582979645600738828283770537416213754231233314220937560807381751435100617151051783770665791240513638026003833713513848020144101077969186609540572540755529336698173628268532784163734204445529198792725804822132250616243221982083342834676160998694795977560002284799529098940732336181715045943554692765177995004905971730927950679953137610627626588104783885021459037338524801419862103054421565614950792412681735892198754705041708179467212721147164143456433144187713469925974732646457119059875310262240294761558590011552325007879331944860078340250255665104857286462615048543614841005646865598963735489485797987598514432609400055995203287140478154558245818938523957554960581707793458812342404313091508578988413394363245720800008243600263436324731827708691958229842561974580772501431923091445455279738874149653322931309806300696443520435517934910546008998047657738599314584085675530029478487608287247078877227700921250024368898007573334763754311326871816109137934018583019061940850847504752251951131246407846992059980178594029779049313524493984811917525145500076337125276328397426210107760372147206398390112146720152635310112709135193205852977654981544042419104126287096657673419259173731808297697722199854082737307028161047143257535474868418719807651813082393078115941242452427256564655396081185047962214956365479981773960505767734904346284309427890738176637269864963220537801112203093700252659698515497189163073007526099839838064772665348784593421868399237270098495794665928521851870214498428229693952920104229000948815168194040442529662808015089940458642625710619355869465466210245261956650084834731976278878296114108554587260998448561688248604325443304694660579924331680158561058418928374132266360959410551455478707212845534193755700035065253119380631973110097469793700797606549932568470383721002989352274735681058758218303518540064632260122590050261294215073435430304437161726556715127450968749220016428643314494072498312252530197675633296140286022186788283160662771481602308814760723606300807805277843925699014551508626773765837997808212195641032024299670522760566861900630015208547346447346212945342213565375936350497822591062011208450757246278097932479038400832611869015259402696486959526179040681772041997127544188453763560818622876501577532335624516349656374926422604462660672865979584634155557490306540443168799771319899339120586330634627597676737843273701229680809849553806173868566768835930732197865753367961121909809271848069948111669803532176016888893487819235623190331154212339056461756813986093512185010175637660770938894413948362057972747310508958173174338017632956871387730230738682313423673964949232842245792688392162158612609580948679353226600918546570443358346063666083714645059496128252542556898745929703220474580554724327098832243139784430004460285994769671375733547912457413197122894315633327425281140973467295210194051575099147138796776878089830513104860399821746053387063789639040389373160596081039250183081024855585972305920479384263790295511191396335914168577276988572829188087023664568148646724288444446537122454348152252735293911671277870665447812359836048591017423476443331413305865888985067637213081708592675865888914341902207628598405530150494286143488975327093132638283386812525787917966183540879980806808290713186594552224502196372795165754032620473101057754791220034010927400196949810416018967761674619154356513246715529747074681038831024718535957099124277774177084272392235128617855239031295991096245478927569077839582321768046125376611657692257934598330646111105717653864383969937848499617387114918334886458432505850187652557579076837319032810059374313409509044552915046503665033274754256988599166235657708811010660176034653169776461736724782936160529625451074943950953132562012417185208366949713297628974744045132011755878672003487484529247311510633843932784928420876469391299326204373750778648144335862048137341300276323247952225201564137506703327283207034727103588466604170350742586409366749956406083216818252456321794580693234876311767026753948600773308513650273718978143273982056379136414535719786941530527561779361051058020110588106791254465835856670171884882821015768517406832472634143278889620007876397806130370617945950337717404918767561271926126788625955488826718810077230068972414391558961500638967998441503844362819444951529797994258555349984233205164430871333646353315863840167132947453586778537700421339668636779686415337113837533058807753777023377915395805201305227240477979348400011750014499212390018537290989793186681772491256545380925242257627690474137933560643974464192528855105641667384550905863765781545958281991400543013820876042679905474195686779905363754773648049345115818800581400984599384053601098286748218787401843356191171609205707942018953813452015900804459956671386494216395419559986752395888836512651189388255354875990886149501327890737224791015399472760073822117258649071841101161607155906041057669663110265537767755975368901283945312985453091644625375193708249832598299579673068816844507265482702756759940539195262243353331050159055670337816767988557495805497324911857324443143093938215282765978372990599146652672231777031582504087499347844469703235489790508416777986592239811520486513643405924243875123517277351484259815648172078695886868033162413425816211139007364746155634287206768291454464255338333803677148073342407892088214597850687089968868640985184157968571363233483024866345248305770050816154155640141379580472893415783192943345790300692006830871576438715422366963454906133339273341184983657992667659986895673655708628699215476695269493656022567513224586713267304690931284579291182926638862029037724358252028661949412080760713603376392214535227972754541768711011351074944804705697746574281655405521583836900020302800135484744174055279843927816468196440493641709777788236473338672437565414934578531570712283952782972362158415998822545655853653020969615002998857248121885814323886244304638458552270082439299918600906407348228912995723615148287161916124760627013071522461071299796209703873529970803535135535240005096458696084024906972935349263891885703191250253103413872648344768277523227636172294025487233661000823579679619942744690728678794150997072625828944335709482071619448258965387891133590049343338948923163912479394418019208798443242755686002142377668790319853817736993524002322159904984877811949677940576688975330314131889839291547040956236703974686786939292039466794653559025998565206428052780116949886220529864279210964240164427183065765957782258625786022848528588884461586611264885258738730128755608148329650016588950907742421313594764451672628114129630280925374519109560364081425333435733218669141134771084958856252283763951499056245859944286091898878917081331443712129704208724361791595307978445489206145311371351934048278027043791750570598881107890689085625349068674688439466740328481002861617817730074048600644338656174718160726997249125621902461430518165989216614649709063634890280435070207636758689208662130521032613476953554259428773212141670502923811572878639072243428382252547095277967675025570630235377453585286954820482371504530320190451107998858015246666495548948720232586766291875384596581967927513401840203526694969584841827167926674474957374951172957594166629132416913733424955729538962896689951306828737073352606881187400313846522638324707835244211132444089175411379011809861982974710512574801902059201405591185510142824230786054539080113231384570225848995841228970566827450961129823433896923257964811119250463991955260897156128397397387661215442319365135838438965986310319715882765145445823673197636020057648920947822075539929345449222474510191036655502959678909308611781381074160656770539309299873135534235968761657086282960195074857933574031763612270639576557435372705473443584869220903083992066600550781420291114348992654800085658252833777106686309484052900122993669869688475306114672866376301385014685105811810919585332562713726143503583783782292254333236215324919673291716649226486822600913115984970118205553560270724537020624894918875407083057535694239292806837046524784193069097492404549915896084367060925941872938318859280010174320154028079447244690757801825322814063317334572537130818304360420559395748724705132804762719872836554885643606522296790571158051593026936907387099109919743531796512416133326820690635681101274758679181987482821030207631041973761478676684909483423753220908219816937289268206817358773950309756455720484968662339232502424803384702874206813050609877881751909982790566901899857217920293401356361159523478383777912374787532564263647694651352475065551216904608289681172903593605648907883743863595517380018974236214869899442626112938718913436846890512541176843931971110369327248820895151533934962308256482314972801275075368110650398928489392103341854523377950429468507066886184221651427470675497312975795655877291678064859260249914903787854804025355267084925367002517994275315857818638883482329105543242011507060879444664041572882709038190944340256079868812785689328506327895132125849201914578604341407806659396535042961128239986551085200921819434744743311439307232649434393162157592812341272110540524188863124862640115933830020536822318074965942012604156713728775477350522527227771254927074276218728248397724432258862528924077350817502720889485080019454613311169675386464318691721626637366527534157766533020349690341071991816283433936191194000161169615357433599513677030652691607136062251051274109622753106930644028280814845131395535193301493728315435523352798347569571462745667157484823992740516486093662333150030152372689877269350026316258494415889242061623417122028535036385490493438036925101637416301396107965323325430767807728561565008350146737743779413074310525075380844829368135758081074794036519846849908747470432836062106535973321533287216318445543971336810247210558903876693694243769460441043549880699589488515064531060672237307290376904003039919290069829917938566404004718740002249305259799544503077578017819649603247738494220413721914567179330504097776707527236655063984576987930179888365985148162767646918906680072498690519340282715724015862004564960483096808407813974479170582135455515041305347766841353738444841733051537046937444643698563855159059691443344067572973754495109406274649644235957841886127740663671106035286838727516616688429027814700427892966904116007070604499003642140002730525570368712319554706871956839447744170919951727223583543601096068911641139041794389057259779365120675984475431963058186483529192423780173095556277252345712889425282063728523349796321834477963327750769644655392759247075218229380115841350754939234619939499594962524726906189712142140246839853916213035386793938528318614501329569117100641098407463360786540129120859587018567518422916806552107147081239124228925097233927070515392886036728511682602178962394472573770594201136198102005275649083232846202970448406981732881347984525418456617862971094075602033904647665211898938923093006576157012617088636641612116147960054618992386092435922704257240554948786938480533739683411054257644340325528773678565071673698603833638998567621109152436836776446530079960094871046983776882156683482418439209755323658087218469670500255504633000999312714813906442913715598868462489513146284219488777563589831077486084238721445370727819798736656758442946926365512148064403019031601302170325920494877995292164110640784898956972187627060471130920112695118439574259205069371431681371742251354790396032315065937196292298149858449367456102527695420606197081243420823407297214076997988311757964646239450220233311496073957089306218482908289966169209048411447091295598266132315239267539900882044820300867356829222087445120614010531214383164608028315333907931161907239037932633616243604811265451866928553368551019457410088988974279688497114020265970370141407103066753860414572428967824368828305299975174990384410967492047156138282603995677140274698813673240738455617228503805199196142133196494904628959039787247690374818107690373948960623848499226199373757235180745645410541812188544626720403168960292133887623678540176153248281852307411645827274261055569047516116496916695044432385687067147745645341101203510054677609624617465608713965454184778817359196429533628189585089292660951285522667606951826810030902025583846386641688169355970996254273753332937554239655784494382543373412466400674381817980366994441376719894137669591241751049053556544968081515022478787507721540413192727313920226842848803312852823767160014055283535683564464090132650318706751765154152336976442903292734021283724087657983690148341485109953573784855928836493876614726177394076553607766839313342134686078736843710709375092911182237981421827362853532081629787332626924319219641095166403113781796248482205788039209172154707244121837947275946708321127913216757166350778439915414120074756221251829689275217053250837332435161362053429787231197728128159836671837958866483652565200490844629619393956343992180679605654514585811713033434551777734821178458660527439252085391271070439275750491680047729118001247493690763718294162384046773558984562088100011861307106411087309744030900411482030707728057861841459853779822199172781554119786197711242541486226986887300901101615105370562844882991262105940716185914110681340841030051876119934127666831812895622840133852996310724285918020640363056532920893760146813146216501564576976025361056612177920079297943610895483480392848472681516414893285917240913568965882977300848802693025170451768855641735525265382107157768423494690368267700084237817130960341495890128197084188723999236769785596199005466215670924535485684964671689566380385685461476823119096031385204789058722866765787470658525899594064747606970163329072692825079945785228242830166582725776079391510253366189776591459726759136173380412897229354244615100844342968642906287046664311021231776658818779738184658841411176891158333485085006790828342317919316616860136765985274217250930376806553859773108605497113292594660789356015125716288966127951084760719756598317739453550002019714052030765702441959643251791627273575508955114317902576620964269375261814066209160401968286536942641303872560752315653932399205172325724434145926162408649318327460760698135701480507949639738364380769418221175910774164712914412293507720307125349822726757228776274378834606131702841414160187772202653031570639738711234422205835161197546939393326610494375947762189895591912381586581163236595546371833562450812524455334009121705296491247168485879323877866684619178460158769514214408710031365748363203137522694324495576563945944219975621026679586878732959128273543109842103221944397685703182621928997892822045310987985049812052387467627298532368252075629843908938532279897117056386328474191353984776297355419613016389835091633627057474652895174065414311952009506115333877370391496657711232070792374524333472589234793610592796565191431945444706241940563123545535363363603970680146670887836560046503526159650479511829037330327358797156992923479123724894504535706096477001231271338592287844716458882141948643049052876501738632745117553081662348293317576677956297890061031490977175029587888970580212665901028655204353345088999680451522805846869395352594331191379071967664806064633736701740095592085919809105851307233933387349142451109810446549188190732905199672748132649178268628507808294884503002272801944315020874545134033175380139935035053199494947268025842947174596193807428080054493880533483759346450186277154331781602590137755155626246737276993104139147376091521985758128651161081627956891954772864764039557087649087027780853806058294484462765824258014839939306255833729661045525447643945302424775987624575707428934199869497480505680529130827708479716839565140686615864703052985213797742646905871307271418501433758962439783900964958194823688230418161735815039927730284246548801794343342138927655061667556290982104276898549780868873891758279071861063859095639602058291572937438274124253175630618366692525596328046436722161840542573772713891924833788749789897555698094763727634927114897874841151732657964858435108150190435721813998999348546380171523004749016587001737013563875410950712376936525256841004931646739037019715471236604557283584697571891366171490199327035050424768596086544829615448035792403836119661194904819568115788242289197956075478624679970050410693922939644230211295977621912573884753013582419278015252474379049595542897159561434859366700682105207905474907558122217544682194509098908273264608752549492891625164322213098178834813518685759606313032217652478803071454150700264149144954305910806803089024294725459296284720251922010392805910901245758510762992199666904790113285326540813380686890687164792877800742326680686794071873728688176719775715828452558674613747134086395144996892566246722047302418258001281173026689742985409781809827438243797807512927757770280846775026821997576402733779158579795667019717294779995630159888464806040927772451918439481259727710321612397362493114088604428405337740060785820272576362740970435026412496790156071293121837742560475770945803795359494578754114620180733882359315562212746014355067906642213263441199811113041426609885710772412045124705610247457120836756105211637972417753776322733093394751631804276799601444561557466008570481103836255428903100908716397469312789351819010862328483347621437192502970949752383343277135404193552399451885815178397870943486085691149819309188393633069941451673390020130536519376823394677459654931135408637199871527954189742226826588357164797622643272371862914325377079478516725737492393069153276401544274568950382668749112837650809853552606744987560510116859102791197052739548446584836181584780170412188645847851935740595679087623511368898057703831175975426747823149507772543039257353600344959341250112321559470333187343884020156143707043356165587016931848961539567763540125913363666361441935687773723686987813216809488456727826413483562546723217559317132710178049746807026096423719442151449917269788003500282661304520391922289034487108586799660073514638099911430143234320439586067973298640926298210637963727025661456077829951719901183739135723714718925255328422505363935801274157970576890174934656589624504866656516919000531902041959559126624295577097034204831464939679504976496311360999972626966737923996702454239445631256093075196477715948474738594928572529959228136653308169360433416303459204670154703454615650232006307142191136643373006511878860436349632220322702319757019366888412469423057584967550679331483950978463343344725927725999737017859855589294737080903035152700575719930072022160703503632832623015528157040773856659725033193975501020412173156310357376904733292781842358134644747882208709140147690839024319913992972461728370729175825949278671531988860039358158446212481972566390729005229717292953843820344525345306868845545807283005352167459137672387147421621206041761463398544074770825414841797920074816962383110215465689611673861112269137504042014839171703242658084407058317448404588146933080928358371949268650507045032891400037509387252341072587615847952230446182009445590709947280357784205094653896064670533795522612172979817392725451571242399378566001120082277171037636456200105982762713576009362590883900723647907892590872729073373667855123732536596506089642049714686800955081020038673035334478410484345294231681770023079862279555613353560282402199553195299377326555676009968116792339216181449297548066474195419961247850980157316388963332677473868216872821523202679221537187440025303769909372797496692624714791749906145097397141573704423231952713878102539790290586718896832791190134851711907452640623523601491577416394109417628550231146511820190314807679897554921829859218449462019167853582505360647519201831727109396597322953043939871553972394148935041985273685776000349346863857914605110705786319459811995373772215042622305560365790046519767549403555659697548072121016490874063961117803684524839833052342933446544303085258807817061535517305407847536601179082900815205348898389608628752182068937250114391855331262700411877174060390360796236812874975843097625685906310449784412142504450158617956877213899691499931232922990657187279757341814313321574873220287880564246895134620624974994086035350236551867528041307956352675449129940781501437411921649480275246389061487380721693284075024681984212173556442277608923603205086944539565534313251712666316669962339764464864493076882326723238312457313575483635369120030164222736966909298589937965712890739395249466028472479186720796746286901037246961336132741544371863488434001346447647468785255580218039079729774028167791438839437762195536077821356241977802922614767874307418964078696360061957758159835755696283269827010833028129298931113129799183467355918106270285158443315245023634994755022733085242828377039416592101097636606160474983329764704392241734252466302929209577410952229817181291639446005128681417444037711608364784916359202875632883504195350872219189344999782911198211607928425784830696602494033630279443440982686531805271127316079951756172909177501593748691315845159190905509140982495485005456454211956693259435433967928756591019045054662342345680574036316650586946991154976525719093862475571625785384955715126529832200088369931331413827652379377775486663969280237957141538354261897030931011855004777290143834703189193202161148123478927892154283356322269895326804138344931496534983369658611883658367157040704177206193089709728650759729946627668987464631180864906009317353307203417094288445629946808671148821869832553811322481057527283180947550115247310842592134504835685696676784370847345817852170360757021749588882956326127329344353466342783047700997351076365083431179815890429702711562874919418680140737280715393516814830435078752015855644567826032066232031297163846741758337101049608638187451274908018603950074550425880956746237950745783472303115726519390209172953950595915307458131735872631076495135091835716055749910849742028110866742962744157353829245175918953942667047785841637992411826730902801784292074918060984533264847374673259020247173963040319040117271128810577334683473871247963524419682108719109627881740656622880183611927634269791066342261717484477486793204705644945187242423647984343285196841353367938164894056067892298436425946460938353986258683892055523114314328896149794812611273425222780805109828452776375148541928374123540506754513531797783387220204880161962435418221558757541903859220350803063527534614038844751003724537028274839447176413656825167816373585075120099131654541224985340973640966163577651031636633590617389064395420623202365599599648796815241718678525903507704061137676772719833060064286438729465576919914446469413331186304054503625323358582343177681063845412359772687539317990838263398770774602527115933353116408407597157915486600730619431201408090594388941622957520646967258999369895025960297252271658278641090202296673334086504076623464626831790341808665822669608764371640888355584801379771774902573493483394047621614613692633029358025614339810758211686735455389831317843639058120871946805548236656477528723185558787133706928927209503318050841614704457595231429630093763414009639882416028973278971050951155178080370469342206979687066284660989371693345946578111829446490574829471954192336241156295016325740116827527106946851931190920621746579041858035330254689124003060025868547345135981742880702575705770912458770210626908470409739746580732590656983196468818849818485504850925511338739492753896737767930702677948909975160618413784566117341010710706891498939305902859757401247186478967363739411949122331117500734192841531756054433642285274944448892648193555086997814106430659178206076170929516516736020898136100116093675344001282175766670490453527284164385554488851912509008682887419956303607555991360842534997824609874720063316788246266141694592242331459028050654550746150464536111573871473112826966800994544384062001183736661293218513644403887795414767038076286634495596714443598420606976496591188948481930899801202570743556231067301371225190740013905146184492120322609398376471502632286144580437592810610244210114418607998915756494280464422021977284661285867374705925285436575965935270604163101914167461513356503100474550254578028973586727328607708468282582145159339608310985116637841959804426907500761879717416429153359388358819878295574018043229325352083702653491645546078879142756727571301534699403853244369545143711227798533564764276423469115729000592065067413312725100071349627412477614806977022222275892050355894965927736376064200985159507072329527385615290887445793859604848072459179659391029872525670585969366702884029541404077494103257503017252560566911078130748144338867582657576229451351275759578296519911803934515331263437095050365263107306155601605938999778109160239425522907236698581981764207842190686656445364139710786843066228584695151525223684505410147680700275087621103579028211199932832525678176937464037624134622952794205039881644631370016102247188016717146838902596204481887197831612989034548885948927127809041880745429687351421815201930554962715042813572187141434038048735766515639666990059748433102295193982821951450248149384819258759392648251884172554465716380790872340367462991401868531094378194918214760045326851905548431297294025558103520347143094087349548777968003393580972339114463460669091449135522729480015142250220704477006323282247433171752573578574607001874233530130800813429825897782726844668959709610862382569874498462680073026840808458890460638479727084411803445170830253080387360588346871665637831596091839702615346545154600768115815794365556523542767079319903595296129583402031429755665919133524646367614845187434071734446563210374072127778352037190705146143639553102325116908452114052760306717921417014760738955550736745950913514816571656883886763007260651385350931074376511955936875292334725756349331547923536904882224213145384348025740085134723237698951861079217046916956519489970603578471506699507907198065943245688522624361270742742789285282315923853537877286967943043002145895444166121218447448233527504422252746648817360226769989182831500880079661051013366879692873890246290272269159272924414194794466638787323385941967979768952589818472795446913263905927597505723581905159731190202822101205860512654454930622198086326383097770517644751860678340458497509666679942638007820730521885644045366742497690879887674121687938430150216749211605437388112162381906806179737385960749319259803680557553354558041554090919936633634903283927785837569333671730865953746842995070814988781308265008002871307517177258433792403707583876677123609329711367533138544083924184352805162586884838169661397693737752372526070844344287668172809074603840030183215615457455306076892323166602319040046858556427803941099506717137798134768414445881792499335653284275075457136962250569192920744695609456073561019210615981171792301640812664020939170422847512453432199804568062460385546634661830069710174290007674666673317982352022194075771876897365013571993061282435036615761633421093111490416287159416840411941936448426407158970721973643107129808049523761987605845964966906034204055595951902355444477394414343819953717056929795030675302698305076798918380397812566595398449319388832729555519146296215994322608609650947082858529351209361121531731590369056425397831989598322040890625667971451507214671275875204484064354568009839210429778256789962478956390558268709943162211529994423587198545842046556894577534555993477989657974318928130577302144687087659527393635128329585413512219316264901115648211223512142368869667282658391977274349133241180164522507171715522312548659100685172407381925913096533816759278047634436503284739176869700769356681972798897247055188208822795447563644323700541860071590299598193113198989500203366736514294634858226986822065088639771720261565349862273036046880613904243332109815667353822509603218986977914695300089272512031385325277427180989862485165091597016251219540255967221581201787687947680094789510970569098396068283889658087706474303094109833538865353666110056734530956598760813376373314019734238598667190322213099927201216429581283836721821131110036153276999456428064728244707867040235473737235637263435526173011353068232300361095518600030511141511392602979515002234911389384055927944541222006966381292543450390835697575520679883809932793772807471093917569859909189668294667099396610458601655175036570370146454588281150587148475990771304361424967233565708378140893065169902535596774269360615208513185690042241778935328627587614105792071744334573892845050593825838948310947662451086432837768767289766452447395046029258398869498493554590254248247334296271342611019327951172785804994268607866262597184821625904315966328743724249441560366533654221063599649553225688410620659130845880468773440393649360550632004753464608805376294113735405443158185264748103953223253322618695173909780237010855483048980973001729740768066609854315983283733741130898465071164955654802225915879201392647755296378157663710714609010048581097599880820653519626674263163339187152780680502262381808209167105867243940697421296198953448779383101490749719184225948800395478706932449914495721809540265743177192531431858577652856787784898651576423836283444694964886425492691386301408647522232756066548291931204313038829444074644572824052320510796317565918465631854339596619527207590659695457637878117770982395603194477896351908532922521215853592404539388545314760958086772117698980766552549320991191069611020920688394427297672220054919975428349347383646542893326900489909061176223866181390085675888365252319373555013921621662409494335846195565188844005131218609269475859300561752607557760761501830278930490033535434178696428152033308872939523433530824959238434982652195870264584624457319808112379380802498837886449767184508593124277052784718543154179661978973644333708912156944960023874777064828071119701559275434331216465523036284258393277905400054007500788301350745444968264503925460496554352311743828012258118359581135413432458503706684624941292531368729830038936669229332692251936133981947951710406670778872945974664130600373059401532360335507025073472094484642141562245511543810069842207434999507147967721743848048957612914207206177394907082293194009941647634834423852190287144109326966958382944671235735084970716288693987494955458844374609948966525929902701780270878533842545911463070355503498817226488467164362685133011266516467768662335699210328057554595790418950222276695794716413662363519774184244397918790157512226121639566674607958653142402662477058976806970195363630742387357549117063437368721967936981695869533392128818760445459176283000086371136029339300996838566612994111493430474396983428607024687155592126019360400592775151197648696814668878842043154813590069900574372590147780532033754595830054909409678204353474645078415832137392272555532827287574252242372932161372193823334144207735389747496537354862294418888823249168926888140910092630523077153516687966078339797676642950808649359798131387275411737011279700784127000862924193991779798196941595353395334424650441945721798222745699391379009392519178145255809199080736874460342752976745419368062772596930707271887343125713432922079964742785723568461895111559612616950472882681680275811318617240132073813350891430308284248056081973125294380857822574990655992212333798293568093355231706863459574548473058378837629207579726906534675914733630295939926765324106503304441910790183536426981116386238032033305030970988824697773083644228636365839805159192872008817926137112348412575439183979876659570493729821604582765909248284088541103034602593700827857409448650024579548469106727956371898572263945098834444907322632679205995104674763048003786637443876601186946273980419660986417460525731913211027598643589733086285924776700874839161426248154436128130276383258173396325767722608669764299022952873131479245923047257408468893741425400338480286219678224832281630010653084920799604820868932421486075035256838071273986535656344975373848816583499800943354336936770954461012977225354686460675133378983319587235104375363405311409618927663214866214794041182107022249839276149000018142154778884059271586445712271298914296071102325617574209852723463365180869169681743055710973914318461195237768795115997979476840502981942064644990414230232793960145762118190834430191701025010956329197121297216428167798154178980797073867966636958400811550510969004469024060136375723259279070869034439463696420831727231712845357121390016730661119522358642453282574738622715466764113522344533574053539055973278495784740187958392759944494427387989110379058262667405622694610317836028501476575056611332555741893021318260459551991142872604616501174569200762214893356566252823817363133913940518843104150687969572389762771165884094591400692289425527677848622959523593208481613854811391006222248963277624945374871450573816869463877942023854887198135621499834218956130734515132801911692010078194626311582521105203587132305708727386046326785110225376399851470734210821009509791801707215832852979339079491621117266080552058310232601959216525456346133288033575207230436761595135423454605751446827723609516047813423331212518509751111970241970374829775290863011269188727938985400265682912674967637859596094173750873560986907421843130227481099947211710379651979022306848791852281036820849614616239983470368728987158279826593521891448711397538261237039429929765476993379517151150281824220108971261076558337423045971348296708770940441452060454529787820064160563119553526759037730968761202859072541387193401524600610566076537069672468283869436066637600404304465267846682270590975436240157233106454598967645558542756716223281175555048428136074737049721464341377513800926745858207624978895250708477968163539331638678885700845963017541899901061439656182236021403833461610210168584201085713081381867476103428994408318843594663696173999151731611390930637734657600530219443822994134358399797485354268457784901178515968351123068145160545442730190210047179547710727107847844034654256818909200225973959671284075387696697950704131876270239196491241156723082409223587966691385989406574662511781710687523404189357738380763457227430211392458454723173383256225989592462330587027604929105076125783522536094509562361573378776985500898480915161649717797613148395859278894528839667375794572005902853307541238912057741237089485174007143102924658117847816242673857973056958327240000833760122725372367403160363772977738712800970918653140543645673680021395700159444570733651642968814788629824933526885154493288722637726838493175862908888656279148996627999739401355917608889960548426610430183620541998772246677895010258088791298180090568201612696808946334856826878693897484643734814837259950001446354750443843909891537567878778138385071291058278771809201604301794604439796422937735545743796505115562668218528255808997494820361077494475544856472809728296927948488476799299425403406226087852334420821359911109846929431703820707502551736144260097791656782247217540153665262591736697620722306399420007544107764779138531573610354145799997846682652072962511335354626916385240048991941223231133179463615079040886952471037392028566634133801650781248582945370714745676106192358920731493529658228593944098557289344263789140798386520675480595178484640947857000149446959765356579446008554360819404997474838942482978939498645458788291491643507247073525482388990072683589236696457502846718062854447078183288769726548137380644705232205584135156205216829169577851673232091080943869887149809401421094309611145008544029828788489987127515606636566995283043754230132055835067200953851231563647994471185697394605897359405958957682118793317074321915103707684095419844155592456485822878915127244322714122557721541942483065193048099115018975912935285906616090139004269567829520696976924167614362178387220229922065678486805144879168712553987929610765749308151900892779534027337100880304498566260602183550958792516844618469272548997171482894934982585191108820611409724759093075092946576124159691472913990742656313589675685660510060701892905589080529384465752948399456301238684732431752336191319654781977036651964234602402906921083021466144124883210971893035045803175304285378407826720510800585576615923701585757778719187853736907941003364466272928154321750032036034109936021368356895015232944057194188560962074441274551078162028624106555884109630463174773499605128711423747107113361568298334416508188650441343589249057538373886745637482634669618712093237772565734010533710558083370370944137748565056471724774456991486992526440525408761751567961781445785825523302883468990141320163643930998433425483516219104297993642693926726838481611650336949069585166039258812968316510619447035403586963612157270215217187042226085648513267364210630524360244744481178222721987081538736971099774206776693911560411011136927329847446898290502008529777186435441581076432968193326140300282985212956823895803927813187833103225647252814114680716612255989632182587094290158075337200178244339786122212924548288864861626004002299101633648920986648126180942287739568632837124600151491662250291624161446048969251285345151228890792878738853175861826506699090190826292372242620522304116322960252541047183954413966875398329146557166209184319627530436977351316724686896579387456727651006424233605469632362057058289922361576796472487966292194366845784571217767988783324433898377820262341792811146879509345419698336936410819057936330976232756643425459893129791573781609475696939591279032335726548902203752404052979421380788756278799869089492318298712897241949949198520235511040719782544073800677722309924969452379624915957730105690393078383262057332940737363883826089690974757236375295547281801689499538686842479558614924674271416438083017697450207121638111622233996405738070415141576006357058704788923163108573247941385913949179577850587667639015697052043112855451304268794709161364686994689845337895317874020999780310568139516658992401114713676373867136596063290092255408562639083668724393204552502268700422319595930692474985262560225074633094469407523555818238429941544214278017437858552545769582401531317766140349172791187158635444958824478457156329889259183201538973855917264349363679643137552757125455106395419046091668218834247757080745854645418893851209070782682598759734396608028607030814741223318769305597913286361076027204661461032942602717253390362666479644493888079138123810492122521797888272001777366689228044811639101839692439565717164703571873088304911254767250289760711478058059422493170950608915034165766286093065978891308763204099944074134158148559843862760228766957521296653834142989155288987332521229183671451206927239825224529278639808535920385863892999550100067372883083603929423022062812973055863115931566393688148763143859109407255792758687111523324523780367950390461433045709897168898305466711609004566238484492762420821222574383110606676960143482554678030560953558996145229271283793328792387508405406862430449174329669049534907005768550773005647436929698569987217229521320865293409055663411608912560661029790813087656063892980394465303443896654282461581351296811902325313948765341846851861470423984345845069768519086591049432292122124726217402456451774618487176961884372706964651892889457870604379063909384527796940394619298076709826650358331470211751844456474402671459405579551981289705553345885224621315834375165679777991879784426745899434454133627578795986194102967297910270493442803010432057510168656294661421167591360238016153870247375180529663912005873541814015013332980893659145448988571573088333458016735781998433713803831444969994501074658043330075803348396301698852816178153173886169893946187335936748111778057941735601684104277431131739512641559791196241529031619490150715769048296624483440625829343273462821848788334290109806365140042159405635438632102731790814675775943086380710133609545326567902046255673109179480702474364780720738685332548233225106583022898015553255280505171315425437233512413089215891600837395676483873608589758351162595518921261673915940038224825555486577618718655376698246244069445294194977663195520928946033766041595711324290324600671143944397875593703533148824654158310748088488915891717652059022004531761113768432689109207237005043861944553397388893944314908253144204247373360232662067570267120087956192335429253389066694726559583059071026184642215396783223074730584028545826708198422030672923133276615647073815852215345030522349943268866753609964355132485405457307479035449208871938248007901663819356122723818882932575366382308146566554204647992429971522482232334671734467569986433443147730357035498581063548754124670725045387138191811144637276315383446103813941812974096631532405555790898991434256615838469300664315170676662031760064466758878455595543062866566720613544471531539277484192114520328043727539779801742379070157563104669254492882448350270532046486005720566396268403698880929711777611486065839496829707363194877855351493314566121361273153145595992388210041138804336524071987554841807339289076625026622111281120190983521653835620390928085479039400410887195186521207578701511756164573754148151956551158361865148698568274871607807176240284645872246511026841832045635611904634612581932814954014858035858587476170199397607474465301234455121329609248507145701843999072384283519055414038912651890766239906750790562307186824545737362540343183541156848166088054409139622456747584789445966660535053632345086454660845673592359363025265823638163592227972137676137530015044929177213271652767130469252473232968069459558774374275458113316617890327904452429892970006057906488620583453116575988901055190422118995357827793740192972692597691670909476511772139886084527827008635138020109420720252494542607879171388886172740656771690279557986959696654266725439807798290429285846907647505093532510066241436734544546974918971381870181383174846945478784416524770879346248748568255467876611521438822911143731793083718325667158604568650091198894650490586146726620732606754492133052061961968057705464436766048422751115167239076915592616843507900906491920194127616624156895427204694175307150293666870113409761683335105516246487566265905875365067658938151738834924015359080048883858052167233343883510072542641947080864821369024471018009359493688911751150674857424960533884761519909646360162913755684618008554115171322993518135633087911337882739952504504624337740921311215704611554005254917448449972714649404232239678193295507701597216767130973327888236586222585090654697270877288036258494597204772624397640328522270986028854965423068487535600738515949192531574322749508470632133845602277214202595371750907465945736704806088500037891414308354218379284727750077443196264396673411068689107749546009260061769387955735723572498362037305076581602232629393931724135327450351623516284647881251690596435781075529784569607030079273195157679538472965722046377779365828902118649426953294663819519528860374438730860568098952068486521056435193890275096720940136000115390410265343545600515496772751875646795702307922900659063731996887792614265979559355994121170696729049613965289871261942258101658401401031649711681693880882264042549543085198943724899967605866577046900989485767511971926067185396354631393300265496347226790260861545271829769192021973947873950335407290271395949560207846758325609256285557826659619119930025524864388948311166060942380955405847252061182698853719654112331102117239403059012805897757250815717198794666295462785181619237164926863979795517518316022847345061069784607835978610644761586434103142245143446290846574119783542078833957788756708426770344177563584416175489800498873898989494008017490108245968301111505798579165728740388860582021293382508515664237288829360921911622685770399706986629315291204828264833502002214785736744107438815952359023881954248080905259857583331260307796228044845024552094552673416620712289598687782932951599751314939487265372229689921755224796380311391623798677834038664736112253710225738757315189543222823725573650359317087422793663192342369198080632686032155935212117796537067868612539049412007491872109731637390723613610450282741041130850058560709856575432964873837235749038569192543106732004802194506719833965650375900473616398353468037690678994495457699474649302911027585467980941618909549635742084573297882112039117959017735122444321295320628642522859276675816484322253075836441910316232046734888814480206150388941140142820793818527483308891216908384153496400611420200078638870870343198429142225047085300817724409544765927771605847347778690663453044066321451858921811345326470971179243192902075954051979904523335982813833250633856224982091707278141512243921678676466864282622206170393135726540546193308358479260638622259739307723619231346300900594309393182972149798817630033598425793473174978043278224163289802552475964998433547681875404494686496015877578391585303973601316602142736172079902805847343757480890103870081157103234660796707631178558610041813088368509301041982827313322809578625063482340326477255370902104538818654961906837319091023696618084290091300379477509234120677875391402654299015282188884685891830904934461831302344004141026096334969763111330102863655267323001681581820276951515004343276753294538971856284199075112505551187848702969699151197495010805584414222470448699785614469335202361093399268226598044179004856331585681498314643327150537637380393797873065404661093334729564599365060622296866748650595725215724900314871749253950910171728567221795909904457030981367731476442484693721204987113364117400885838425835553271747036688927821404516404836444271717456000939643591618610713523884080304069449615797242308613696057966494409749833522275646248153839022947881646906041777510642856357771349875556081010243513824419931725000260830668267303607258336244134061921507760679988975766685041192977729651996131659299639726951135135280088281508253731110240497516053146800177221865497759277182512902734506499776871881251240215459278063686009919273785154451514172670187989267744222976427924619219208693789612778027045381806160392839719233786404231680745332022109419906298700872858120158047270941696755474626315033639487465405738146002596722544239586080528132817775654764567145460603262421381687521647807433566663920858434169691214973187626554816905196548422510197944421242325464970308983188285778887914511784604505185097159034834411200999918190435937792855803318763236777415113051471245541922870722864517092853141689663880021790992567825725086086784858177937518018096313766697792048034365978771443781024882163722578041796969687581133248058798834189863813604865311935169705695330723855425363553043598960464437375357393571724748012084504032950656621082608839165879898107059866268850650337838878588153154642917795165897469922864636467353080499463636187990170386178731184458792775368956636568572446099210318988898721134942079940366704793097389144894569247464517742813022501740613506423496493690700881969574129715447225467893106739444816731385237316842724711607126794628188562184623982247919202964702102748947782341351863373236865049816726726883691341445595164613544118364068319225027846854619285268461838074054775596281641559545416029980439234052832256777258105948445603610516260161390914638646252302008037583828282744868751361122805921546120926792813153856895705771313181333128479521339506734237693243204398516298342369098614653717719816037405711169866734723360444236391299695806323372070001751709421998786748885545864625560247373508871854658679773961724424780865237102553838579257729870574866063567725192910327461169625228802427546334577152819804342596386476234745745968624523487226807160048495031116640402081425434038253815568424725049035055735363857712131460085902198687053125885315109452898402751146052290319358671765245533622717077360871960559795517765963460990786040365479652306591677991893400792872163219128212112102737090304985084505004457717224098883116717552858570756039370421174442769900840366385813381700726701967616080765207936180703080462199310380986332972668156832664898762314525126615090803864771806123365412307112112612090160671527174124275379064624508095181290854930551732660314002943329496014944839594230768524450682729915873731588227950870127236347352321076365863397184416102517887910932553448219391376846063964802830425450015361712449242740469249779384897065924623235637390532353492105436083909324538829161600201831398477727247889472674588741912003108820729068437679835263220044910342362894053604091972847996848739725617434768456042455137809593003005996908412280555981633015752280280310276520555101485980414071495388938402684229090991781193956442584729302717516612682837244298816264076887805455060884542616935472194506139164987763493221201347483496927336472622936644315920335497194143856717929868839824158885700032536492222669570821487220765325442797799378754138487110359700971119188278297035662704109672372216337689844444697468933384449711652908400705795369858791008423620884746654890637885778646002138295274731137691235338103351312859420933530798153404263786018799192633238041837036636318891938460453938872148992849188319231975609767611406356113104021724002144340485504488377893521175263305425217266335775376983982002190239663298776694389546123217651629797254571092812259754747580777102761496561583273314957636878177951875668336545596658756975863907193695719620659294187932588178064767948969867381526771296730072667629599419773092233331255106663012785909033144330487216495456310324551658823411820448721382297559507634379655835611150870667812140199404629310768159589672488836850991717301675031791227710662428454491358046230238906884719088249133787544021066683301557931896109838203216938067098138346671866047067800813799285689132475210701377697758615591430381979712290580519866106664316100313014989379398935737972138774073816604829010738992331833013053776879857421626963619667167640455577773626306133758143458150666250928364895686574197758742658818879419373141225036989723486227612276959880585739346391347808909773547905535585347101695964915573510537115361745077058133677205834753023022735854861755954649286122520621177296372315281698412013584826073098513780289365814189639579940973948708121737844883496088163001580211824450697752270407347792372650771780839109854659218864870440849784598272599700796354350400186883976057237009259179726305654897470480108310706781860001756790958307117154292353251512381792887957781850562201849247914728326438807877064649436816800365521403512676244758077054486996590204286606835738977074558803801924089445644420718757166404636636886135910439597843959564751192282369374590848279168955597276975025140362094299289785830572009703255838548194672866758825590164812075431713021994290857553956942346824018730784824455771395567696778297494134367340230820335227814439512027545960187377896567001403331365637057362227854789209608261696666722764931329587577178482017375475844525167513924761434109745019406290526330254611532137214075369438272965105912046002200603570004097843673883189334254785740473358152639324442191721604104123742696605254958977367329708333943404403833995232712879105288429581555634169393770376399980973903772884114800248169006134827201278198797385159664399211064640976151445019222077997698281413781961379669182430878803473382437743787790133620638666464956093445819064874947167810831576745532778412450529044201249213486717928071240301890811743437693557033122500200854257700699742048140179942259313923942825130641720150659129350656636545586783784279570457795163072778427103387433514937005171756362730045418785075910064883022232675992702193503227220689182711523427860455865594566099282849336364252450313458973067274970452530483598369245297579684277612316941924478585635119978192531002723640263657574414972762707813588801853906839157774062397043325681279766865641881429765333904520471585745265255102109358642304144053952866556619209710495198668163012900987479016211310167336597559304279415762400334791390920515097606758332656803149621141193131703412102999177423299753196107083081142269795625432059193013457288812645552868576800349288356634740583324320670735711635240561184711172690516877229954095800944967388365512027525242571725483489139345400433591911896802909005248392827075805859812311906470787137979433688644158774237066574835674970227479453993508764118950414330668296574644210267312540729000978551006859731100685313993554877086046480549595596199892859698139773700478366286505733998142933067647275966530455482220731971758763184752181018955575692757335578796598809466831473786702304181935502191895664260390366264348474008831117621923281891986963493822282289843337014900004629240392539604765197714481083437664708217226039948898515021332845382783038249693171932430336902385281423112207777376027814541606505757059153019843163204458937481238182324327695014681175839937812445961889137893467314996214134290066180196295327779386743781428360871581990840100809119792355388194331451104891261688625412530439028161541722173026628910849864448084456678647201457452747276649396945899056483935046202313643348824545416389231204852799670337397987196755625478711088690246951635032762698492207009207129007659798891149237296063135068691325487676813450436352760608168359324382307584888635820944060711132827665419865240623326120891361115832441173987841253355054483330998145485070081387044151981907258145248009744865680789980880406123712056754395660586645432569268877034607033984633187139305230540720605366720145053429871319026511784675000898275962941834523753989359319474968831514376733265398252880787529931206341248509285145292392538025118936131212856225989699436818736850341012708127071099849880917450188331037544881911237565916401204963450296731046335210281860685010689830105745865149232169907555333544494916840178324112265344515703248440705998324118056059867472313378451190615557840468590877902499783056844223599873264210552324177449307734899717653335642226895239014531787913256189818505195745726683162170246490085268093964687812439774264032304920245381583386869108935126903473582678866214070018250387157479749759382357720953017932211083697603289338479694331278826225239268874075048571537704382675759595154985069583876811811264116871658223277334817546306290753140842111916836796996507675637571698112659015948814526925083568623199693808312735180707295258347855676668923579436155278828857407564172401482252769358662715335897186452017912713583499037826369307915628767767776868718136472456229309066257836405779675952536232947578186761993129214506439191347975207082226283863399033263246239646269741346101726025429820753051780073545920514773355974816906424632840129737574751764340626656624219079879506857427454100830028378812932431915214766811700621429082782042986947648576039058718415446557582866284554427920872051843206704350872434243128000006490124041811444134168181762518905189310324320048306686679319564166186118620538578419616983498041115693420913016123741607013666920165136914134005784889945314731575747250239531090463537337096610960822507159698934942415714163383492871139392877457673994455742889552884894248183015151986314859376587931553911440849616481539848480984429468298250148599148739432364263935706711120261766387266939045935997853469088412813294396281670822775314858111148239540368524017629723500512350639284355642226065415425449250324271823787536737917174289597711436914095314572822904687662355491782954290385002687657256259095848518891358662687783412117934315750490795679640317530588836034398095169273222864772585452214511133093671803120063817713272781756397701092115479234719759244841124711669820615995856981074018498871991792284722202148335190666132841831161314505639184043649612366677123521267695356191862644088645363817101854954897224745754985381585804300944975559236173979408540090401671941597988539436761921004085954257594369965946771505755428338880455488549875148354972642608522257460626823135520685269613676749831015909498993994729731713123094555912677081975816708803845786594249127032834956689043656956378672713468994898133341312014923762455428501875566881498623147490935951815643754671929148873819105466675775558961041301566364440604349140517583212296772475631059638996247300470472628647292766250801026736236541130040041721693230808135790125107284276598676326558978533376998150913451440179380409296003206157569292303800412654999336493073732036048970463206991680082926422695209618059177422656970141782145762830693261157646202169419120216965349677341526028496839362016572261750433864036106284103962321445747682065457522327872558028738930594323071403838108278365763107994524374934717184598047561979895771468755216451536824721922560514859030345540190377885246402759423444020415783736735230552918806979580972376016987160498855792964836761211647612877591329528870981090714021401880258564456097868452625155074456826429590613719785945388910575760424218303231448044162331267764900032353638451462000802660367611487137320992102754651493254646839334243136845288264156062740353424077263071622521816462428507681036301599858225246595278076437744575789244594445117415974596205453053111147404108822978723864036405640131681908477148028758914096497358661449173980072104861520091666473369471787242318499633066149176108110400669852736240407915352671274888408145472036840032529347305358982606681950969747591562918244288094014926264365158869368841810284742898995256358217764335779587968478313046376051540957159350006150255260687485454116772067250175187447008541259562497630642640699286876618389876275015319961899091096752108715269104766343877044356941724327739118756187047163905647342398895379068626396146461305017323692663955330664710858404654937322685697587496266263298028591420967912262738203594208237947213841051311166390136354187656075346894247952179880535173576182258873469865901061556810813705684587285316024139998037153637783011920091617059673786013716269050344751605822557514417575411194240102679665017077544558741047085904205493133533545393413512659984099892615607165546484043357680256165780801295597292100288681616511168690183744289094425953819589989316436181531967789548154677423102119575466319756810581217999594354552511161809810080012087421911191625342313577125708462282591219195366077341628130781676224905230690396202689194727609251150989476555734938678450740555043811649906038333112253273795994590371148168044737112163679672808246633544300123871286345163236560680620424338101464713216030756781041109424294437247913400543857223046176732689584985082533860442943874922288594891121122894131313852163566151321306290223380158990913878443677725033240258463465848090242660041642761082394791502356864283734889801820214400397447079691886785661634223925418618984085174460446905974472622013641655553253003111921852922889546185761715374811941231146546859414236786375542756108769205894588679880271252227627494950359186970396688256825979831014366534506549147999048563949298811788374444429488760271999543693959629090113339096005971172715572612761044244698778013542535639215967452669076903028654542757655242109415142152419695179242141590868207929881770564410383538340373202872938447752072067928370520472117375535557074179389786411765924884516643955124718321770358714389381056167202863749450317026394758708786470755615004780911887139294550791759618900537610475834433764669255159083257948480455883914687725566370312687651044343705138510047958912953902727947350377891896014124254868605277549112749719219909711960798340170592467157055605190176355161360005628496996198609059823358781516236985549022298824215825804825431954030270485950764403257823267555701090814819663995401657201415144128701374756428480294032598876613405587107312310841471255364923773814274956799828110173150707745426908389881357582966368077272896438663515151911829456128602298064770220411039909858723331584594768704544238141222526002247024495314221517490160164929544411087090291359144983654611711549519234718424962983265033610698584843516608674709381344814846179934605343303074467120805556421025510871928368152383718756756984326638983122231259457415972862374292382473853864680969321373416708588013096901327908356040922776781621214104802904025111207650839642877885089728622810698788620286424352217776702398640785068114082077902571112047043374645956460191819075784529687235067152848567598308238667590777064425189784512725592970840653563192076253171786215676490946005249242193844377791178237955824201373367127926612461416928125221964096056825409615739119707471825907091499210612158668406847872228775569097674281930005554266104255260940977481766622034949032134793316305634525310732540301529206457708348196887687958832375257033353993561051652586786403897709656428719264673445185605926877227233506603760631840430100669279628794003298273382718524437121657920639857146885575709327157179023637609468614298333410981200502162902111477852149634904267297481516020373123079896159654817861222110555026082455994741082175401161515535961792986380123694251179427442406890424902183260245067959314473937739693564044730121487418659074692896098784865583682239114245887429157461161084223032279895617223620912056467668853419365797441909027101723568243876011917049553143261521148380984695327660238667285509522936860024566836549122316097697947189770885109978480787754350764240298368039714815866634840875252754646732024034411003914458377467859904961099090694110434206562314971156945976335507811922526777164740854534283181308046296639953405629976301886540997915713705472298670511884442738100631473945439546122204188696228001779807976992641164300849663988051131266272572607684220510930893283731951024250469260458675584023660180034304352148160722464853600884894393198589400684873195978995693468837728179616320772142366948595702609329933127325454017378718652679510246224946176903394192742859559010178537005062180552241245228616956854318673644306009275396075229804432717270536646793738131862686178330028475530883534488765112431134591746785156408371442359307636069399627330964351327207873637750752378954702659406776856892827507578356477849785582967643474094244736560786217730475356575823101821042493669726790126748842344353070831437120013307690786390663917810543829743608703494608103104765875914816926598714282526355339650945708068010961749379871955104547917348006967727422165163678806837241614460549858355028253395055411079692053548830568084452101551897982586689234743890409379717447629213083597562870390415155534047349074203174140074370974914134652418748758499534079583666951156396104857051848190006068950970279977196218004169279954982776182942436471866397391297609203067141360417403422397820210287456237254637691220970418322581338632428811925020794287498292432220131057073529679393390995111521454687650927673469485174993427864900743228945631922748574433820603985035788888173764219911331842314408968755100500792165993268632065168298074025977054821376767279477088160715129107997661854766068838069475814923532045418352638689158210501614935587870552845623404233780659564737982968805169799129647230190382414128293613581777897704969134264579695363924896597083055055097530420339177770957502412650879399010351172189366876668709576014239097516150000803596541585043901554796565103335935571765676813492773416948501255912508316421520485004406756663382281484170970169997986397291107648786861230641050092243493473006567050971918507185917889117770465672172648920376261657486465714846952279074845477799364548183513227646720813798195400897815763502143666980983718495399196743086066425833860621533909335899717914077951863485704836256113199173692961925537702080711927694329439152615326304026195478074453630601912682419732312848736494360796696800823697143621517780839229724620530746622687569483097721443904677568006266123835012489003102925608696420054869674556588283258708584180411317229243393361893683329045080003620115812185706986939911698325524600677045514983329393467628090402355405215041320272672215737397671033637321630553519194614589741767137216421695141297967702925476732582950576247573046958468564178902364170742999478114689681922189926161828228366983315735119716806938729227214227411807616445605915773105734469768592752676063212477904201826194940008347493177609811674703974610669431999117785555984079600766724180152621613678355284905168046999066629170801715909438803877494928623645806686094734521194907844339657880197368999540440797325147399681159981240478842285659558016550632354364249623758776465243027540281442018876180185565633372521946237052163768998179523146821980383265739341945248470503662507513764955197767621768535686655834802913675764550062351654759468603516788953407110805045500068975149705753501027673276200363713665471923998062914264116917657280276878123972028035302214110220653947684415430604065783552079389575117664526926770819257811508142360700811200897717635838815038961566232511733774911267279965913689223921566870246023025658265173574714237498127763340386578070931548034135475651828953919691537655861026902173486502021950227020707485206308830262531768623633740537894923983244299210057333170733875762976726264895260468060997474788574682165467810297397176909394816693467235495832201504352707292572314071907912853338144262689995336053110524747198928480325831416202140646602837461607781669453578907411096791564723515481926616113540566552579222297962963668547819100860897084103698935552735585352557945275486930351145500942467898746452567914309991756073413997042129096100295378390522288734891786517592396153794647010426821602838472210998306994753043042230595920223370003201794994653923341934838984844563207285219025680089539688223851069931255205110605304593174576357844196990174307411121467316310941449201813047222183189509403472524936796521862009285835270510203651009074592340592688709175310403113073336921587382114357268420635055918173178294540130486178152717809436273087844663520968394379690887026561903016780815197032861364576716785174299681490578999235121186660433069952573990618615013309128997278511872920695937095474470423135471335296198114856804029213489833000039556082551847693466237728637132564106915512200685155418543891271625340955337563690509839440299389808247053717506745476905230025186262978058721636583016601039130932928146263514053011674877289781153309710097046460686952113308155145728317451221971782426537860247023026268973215425130309530890097091729338681287983995341979745674030254828709106268417384089214616657638828779453394967516324478757160535825623000534338281076485888062075797465867800887789235377941847551102929899022419199739871980732657376771547168759736993447624178850562091931148003492057168384147367408082060894027110760005793587491273949179420956396402393150545729818649895325971345194838111798866376413798981286575794608904451723786870004609450270427597842955837474878428736776566046756510603337988937518745441314724612872759055700268449675297474485008381448591694655045386454625281681912354240178165105091762338124401759573274119725205322196023521247341996151175082684327556607475579094078390379778234604067125176542524006927205251224714527684282248633110529008306769067056177756493449576771839351993659216581884827607752012403970683126913525019100605690138942343720350986292340886204909986532332709999243061787454617872829308703305421143551198434056157308213083880464367260481304145823806908453785927860248894658577836386599887039585222118860947894837779766373514704479748267280407245571431875586371488848516247428082166651647500307249760987496159550116571341489520869374916846898143426726332984790163054092918841661580735811600100665932313388773332383526265805002307795242143736631299439026963575685890952290039943988446652790594043546847381492835120348771327371225961430997468274766288165148231431206060906458644615608690439558371854740541449615500155426291088839141363511562649240578868250277543874678078952973817049130791635502323942278502371849441489809458006532753275898698890502336594931193344863921846726653981223476556999550373813016061440758449357005232130336007550363329403486002912893859501748719915699220282865588226165134350121202675423278225315106701742507538038754015660728890144853926424790044814726715971446516810631102918263686254912631573874018362613041894260857026947398799517448077775257170294639214740115520584413490257063736944657116427708792524864662064656532679558906183735656088951111258341289173032261360477801375792448556000848434048041345219473096206604439744637997753104708562862640390886746633119103820496868812338849291452474521256346671953173597200073446730088223689974615333106324921520092324500677830277583638374046739646620649894792589401624628798885317205546568908678365462733328450320560665858761055811896525654975391710768583811552444499736270234982646455590073075401498041866865155390220771340813662624129859883115428085880199245361897244462028023301462437405918323544285710871712560622496626200173717059184328925295030231150622457294694266098245316756900520267852845412809303163961496622862526751469471046856142053550216292113584391936114672324819361678197383868698035618167675325903501896651399025660301601488069567349888969440047803243338496134814902686994024592434705422960003254079723037396851008505739193158464249945106945659425355895643408364139244097680899109545669833452679999362797682946001952536286584632126615506985471553927482411571944464909855628040099916742754931341292843282267803388644936863577564276719019335039679172754721551976499364638388138538362016531256717567358973802556895384883788770751895186901409934216061900482245025468835206752433762591696674030759005071528674310252575930412745500576819394766245862261924143718094354568786980567023555011677416636108119122123364525730217759231788982257671872269394094510903962145501241446969558966944649468221801546411623868194229185979471561860892082037137992276897743980148011630908596485232460455030009518934780328525652015554739230833138172212477110926893390962226632214956506365333357747569898901046528129381062985747601595174433485498295648157050476088569608450760533476745910224461551822763111168091356944780259861302502358239782871753951871944412295903670670971139311813681838237344861165359692379279872614387249063009345743012897192179919012416235337287015860141709292486744813358409621006747807884165270211727532225814519033662513577573203123665002701421568350728696588873070352498604213394293515559074984167909163700789669941540964251709476891679249332166894167595740341900852797831840752707953279057504385955204708743212017436582453304438923543822378380182793319902658243921672866094990743070973532793608982263034710508728523392621848316767219191128732843879917545080185305920057518516455503437394249395827899257389686655144272630891971297666957992656731412683165089387674087326642669954070402986353964368795928167162028054005703930780662717504492048434761843042707420205106695492895283499297671586257052442934508999146545230376707419315695206982406718463418642019957489209722583248083491850486915095833910116670645295129428187002249766201532461363554055361384342113858167442391062832714556843193566428449354692125491131776966720359482027506788698478263455525231424616909460587533452625229537740867431074790668252374142663871400683366352061211361433490244065270304925257717594485489009133347977244752904815449692239660196927909702006843990544569650608626515574429662511087323974184952314113486114076961169857475514823123718646198829249915896131928749892934918571701361743842916995508144051379623430229216678227485426895824735532885523899510082965875037060628074203380060140764340131486005175836086552109231159690298274707448557009224673286181937415701273329541014681871206118888799288107273238000558840097685033706775825429156435075879425314721634795908008076338381452387900424548818850083965706244304647716221836760162938262131448991485642199970090905685806820305246076600794826544301923700841174250801425387839249791310836063678407470239027584761338483235589659715791640541333431993762852673379740240426360173252750950425089362799730643930524069904587183132863948031274908328067915435980197081317829271477854844735828978888196073862583730634624967133614256656337142546434564937625956180857797238383999765036309846557509882011690100404476800996368280641548745312916049944024229765193278682263515256048183572361893117928952967614474278673920793408959911662492478361155808742873646722322854741718096436190986189198072449831910972724303535135661031880288140876481703219205731847537853155829046714254619861947340002295149396316096615855322463552929269567235152211429115648330508861578101491940418237662995102386889724527193787009539144046366887149680255370212952682561938671328691069035894146479485116681855146836770485952445112330098316289838273369444606284664925473912329858195519061901875028119827117661112450073354180308047444119971128883450626447712834618947301302411899262343849852519898457923269296072969583840658679213277569349348650090319698284055938099171383255570247445847828080547540949612551497936746331419522014298770515739292615801996731076237959636130318099266795527297951614097303934043377788048945387784089953501627474609566934493552140466343449127625028175821737379079194321256720451832874213449337397182758958985000225085013576663352221147855134966327097162562934223364528620319864016840927524599943093116764864434084101061688304829935084670740735195788352788867394550895740585763710468235506857068671177619303211668677696440691987616587646943260225640190369615969163901738035158552444969402738473802776410920856501853121186751444820078279267097313301321544731883297787858420280834473454295631670635874552120547618193661381107050545228816964975712274097589660666371434475384208864818711050038003001996582457390942595220364454865155462690443442269225361863424119366815640783424404836840375302885130411538455621647212591475330650581926832655344430919101684854296478442743257323920208995370710681847098615290275102476851660002333027450690199209506032158540479965720206312439106094769748495613997151256187863500621111180184419859829025090672609546381088801210680366971165789851864078105909084779494196442650910184619297013945995161115225547922410928718934605422457424346846620146701488694777797668897015583463352770265916091690722549259153540800430819823813646172179953371723833105156166372364730810440131027253577662816641803382153869288488397047131053402196677588305963664498380881918196197607809570290966505199156347597485282193562572805785802074238628701511502226683905177984820380123199506050969390990965611749703306291268466261926756982938933664303676053829055629366007362802359097927151723029294775788419626260231608928078660709618779876741840052251646181933491192757066897809034564204576512478936879364020715015449970964044211541604195914197640895388273555085462978352294264317664700990430768600781922717368193416756480355254387425889031201595020303348569709968069160588594119739220507863851609074557956565071643771554414541250920376173721602032022120006547001938943739464632656040674588403607358419188445534756205141783261799250523056800817239708590780019789426665293118151824834674417528393180437476445204219871425987739660452418653922443821035574226277485697408116734502077858547486319525747697593478423494082419510119880591020774411958205958691527010097542326923709655956092527343224905360148365787376132640612835859253990526337126381292964766993654769455920914414821843079563612987652494896761433683508080953455152528735103982859570856655916105981652522939616356065735607443407206509246848934649976456373825394724493725440099082978187234762347605705935400330836336079887121828689317439127410578411764660614575228269020736164274132566880955044221146755766595211233238490720966661914300188306349712069676377950350969346148422889085793030456420179474952639271846222191717039496036992078184204408560398896432441880222819089231488888523082925306569338091797170931617158808083224568789542464036419597253685916446630628711544140298517676755157871684604836823972259882951363831099951547703828629000148718289760600767367003925398380375758069015111532747153947156984483015300283856467946756027197494859882682995090023661505916755409958214331887850473673972440577949346700479745802515630159442523128414820736879267521155718453118690151077074922228508741348220694571981031309796438125389866993452748784763453621011792610791536056951068063171700054704567373004495518896415320636210668353638251145298423421592567897316358795000581632638603318331299286244073347070752375699165921538092535130888518099875295032342914116423981847071739687850992203089125023899008911326502663054161603782116397803762929299701807802005892464792128737578414514288224133717086108502535823518932281235488557902622486957616715530820204012119682251822583927556095748368809126939271648594537642902544603489001501844170030095128738036540974031154230682304203253900404270957718363571217451761572045482590114662821410694546880750369097786753597775764378854776772488614994621996911569334094304212696067098549816845256864010241496067079754596824551268452252084555944378442808512612649536230650129612037489558057653113572941978456572982063008947406459276746536633238256271590118423648686632590566975037670875912616201343637438909925375559238936011909322769823102596194177510624890132730738705051013952645768980771853869202627458964272703672348745224121771921088112039831189711723555741993780430055038568057257790848854154963103295233506954892452787842887252859225477370285941474887694505465632867229066191156819473750045137065352848962414720424280042935649213131923338127970697335456014789708746450209941894236050633438505035725135475051627789045911440067076307407162336110334613551384534404182183083175154232562645120324208328674486554315172380285974176290724116909606390155008275837535336073610530165575394660464229281925822730639764476608285734243218196111182798165489668280076806111911177618730209520557373159929005075080408567829959565363973815485922315474057081604857140055031986077500830692445487764946841334645563905455402463124269062729099920085986193878580577025243317355790469579859618681377745893467818690237089009305264321187283794692930625576804925554441588011458533929432009629822486936287987398139318320213842696832728483288417506570813064958280208832108154874257746214419821621680250902612120161591133247812995470008485079372934696328547369956399171628906709225357506726820850799981983509314265479034635284663096031632805605128907023761886266884333803270675555124366299846953758319932696859866638390094306739095897151452920723471507816442030013813626317573393735044219130706354101392491054159323427955065372904586413633796209528424243945666051049183822919765396258957093773873880594798029771123479009578252908199535146151418119247216063202968682093203293197192512756545453273834115051440494767928314905846712911924645888484536052763337811110927611451605998502164112315518537564647974446724928002372384804867480792730894113843584092033533851207022576356886440585546860954355466649308674369147962249921239561252889896734202560462370303197353553959201502593779030436468499551977698339121705434291854252733432730529992304830207721608126105932554395775313985669145779607555694290310305283636962380206396504488440501163351219700029627133686415887781897297099481875781007248434059233329083079344581834761547398935961747757680531344076591406128578288975159168728166613796430612769859820808723602727204231096696653209969291872788671683941171186332311635010898906179158797322802014459780096845794770134367491469417845756523118173015603000548508053279181082707406444190017736166404549212029012564520413768933288388482125506844844262958624511018042362638024290451005182175479172309255068522970328436239419238421450999126213079304451049809208805705331557202758750382690256762448600590248818404525370328265624888266770508364696791649508944259414009056205375218292597799316651151855168205019769303865981501304072255442940277572081389898768634173877180379861424314312057022362885209395213417482767435964793936034291507541055377362621374412468552139450064837028179783052988928406596825687888115631651376663913825308803768887324940087384101419654059512740797774467381939671517234586765280849913378359204345813909133656462625712007669183510233348092137503278921150492173090613425719721775179525696136891459836912960619706644694332677392815176732068275268130735747611106655764707847628688928435242849498363911815347214240179479885634280578127073685562787321146115191206428515549562862882139183151469277997134979942009586864045768143863093079003893533600873303505829977471548065635743091574794611169220935727137682356705373412917750810444304023502438043429120908178610809895110757080481839142582319712560647104962085571109359878474566858998598813835370420920273703939631564835560767452430565147224194928572502808574862997379560640970955552465993068004013726479433640354331060833139037132740652375763236245929387055860722876277532082924485819740827220974235958772334303338470948050949677994302029801087116545329886629520162645756639771357904165641042985304429448033349943568124782101784346222165932908386094829793025064101503553623771366945348354599733048516976395216308221538320391097118043358931973227537309627441007235572212611921119420170067982551246432094602652191065460311670315497599796325279727060416609988785132539026757245947872883352465524443866956079682146202367448674557956647320197789564973775238931468388494255180114610083100602449119231870384365409810194565067571597683454245840120647577405495509220318035852350784410771427877559544466453437378618784527866731061983614161896012661305731844298391485967497514783040247329736950813086596747815324423918287665915715436881285494200533934115277238250257825542435335028645821087079248296583043437477377098486613615438460977662079555861085295126548475763900444859609355232952765896762632991610226611796543352387063317142884096209010946987505152038019837323947590294423812486982688832524029756388994620232998866999057995538494958835691753003140530562250977454247900143580144977449176951505080325147584899106807055456098286359309436011281555218003076332116652862666239599980310580480577952715083527236476117029556908936968147662963860854290810643269885926744725030246687116616155089638062849123262637654796129532204361718037377032713435506179058700578906973960560922674720207049961683495616684584494792087688866058556946672831717729715338396056989205866443648485979247089598026862863253383161424185919244127789217143125551321325932685308117467440667756852716970010311146012451777157917580142059297238017355268294013712115968579999841507468585894968231607553634744589552308453979178380308861199594176554706775130823777675432065675534864505298708171836855135105687815489565189646917074622247642843304041394225264660688781161079989398856557062895517003869459533039044244661497555405507184451333883297707461620342247072390580453433887858916816081107046266426955975404663229993353731779335989291303464892219712138638532625575919934162358244050033266659330109969208976870996526938665158504889250142676664262525302045388373519806446661473184012495022911972222570479092989439021257294021144449681679325341523946855337246355775995146066045944394561288391371707857033864787484854427578161388723522743157367901706894983395253786375179279045994921445497488958250959986964081145121389822122480237229086521579550935461647645074648391261812831643909607658238342309861854250020171707717207058503995751043396949442941585428580807238377981937868907653702625321196391608309224781438012567110695883059630565317100690020147531194533172110965484729577110145204840088730799745501833316050907007293897116393128243913902658104078477666306057381212748170302890093782823679420804040710810232008169065006160011565322291553690716484108820956099983905460362846066447139778805989705165383840170577059860296191441840132320164255161255440331204546122082993995805132738315684367496381567655128091903450749241913750266626244178807912095172638415146611774772908996608663656964950175190938744462546196697021228990217990401465953967565798234033434374856114693948082241862154477688419161548501431465991875807926191088677265754541598701910057635038838604332886108750470616765541655947257302636015527753243434663391188860116243042556432367330140276753895267701279758201095377264969836253837785973653079209195453114080084954276223817475506295988087662095872306401661429595931083444982148886751328775737482719484909674245797827797813156145839662081385772897967595743581850655351766014375220377897582032116460436205712407741160731856805584061839974500032143415504662949480529946361805401787913801133484823918331528471186676917158045267968981888488701324146388233719064994271900289299382018044794331561264010327672599587548926343650515263368660028309418102092219789316554331544461267528510867704833644983370578824444977676110943617941516624263694814643284191662614440369531509403987248031569094875474354816307054518656057752340896116805020913142804419382594223241284179154151945348609458637480745069496934632346228811665882042527551727658639922588659845208884581017229195984508251266886015296112183963309751848158541346632922591686592280284893381058115658651937093097692231668662480944620962218219967666663760716446872930445148592300033940295539451431795631659541928367170832440391250520089921340060540150994279049589213618655239301667558546843494283751037044767618166243510771216952180921672621977616125011562696066643881023365726219513352620656205894385872659532735740250745555684336070686097595299209532086053681275591150750957017982928126963286864972531074185114948772326930587912861584558686925990681739320787498173948447928119529577164747984733135581614161813235008381566966768169830364717288664925181832166467471888109278216473324220038836855110258645525493540073267019295098040783200045424725090261374366377554683235956523707676863394970226020494677522718663768734348601021052039937435177717998418633682829084014625392724229306204411398316939668254224241894929506201106488472790491291941853245255052688743465391707219071243717264955298689027504538530225359872096259436215544286226664629586661970514063064067176488186185350582668334898788377693472349140682853535447111346586794804771965434570308821075383806522521147733838311436729288731868222388975866954217485450972984423002758015546795261037698721195404353371257714999369597352579397382036600253982683546065241540096832476745136069913405364912849662883939787742319999635570402512668200628092776266238777253131292888717051785079857297614635676179331994482048371901784414834438117491009944782046790606469649208272038170110161339348055966435075546255705592282433258006704804387065528201232184663418431835672270547339196843012781818586437736490029179186512546122745388677197993649194658726015784133037175908318405176034026075366051077707192914650622724294807934844030301003313013160622513009573645732233632554956198524010567682488594179066719677753125357068197418158933361026643713461723715105342895765345663507230533521088377513987453711052860000524951832123772919504087231563801824544589162788927853892457070515517035413495187211576216743125789624681618488815065863259355843294201340828497595152063731175336002862349988253028898923192203005459259300881179472603636480841313398397732815709313894183113901867030954514685345327296982455227638348943760728209817136263631957560207965285206341588508448722197778858084722913711125102216327665607134270057422768591894843368007901093827280817551861672680504560102407022214918122608293677468814500059160211572345626673517786878272143706307106013810807157321360851212209702034422704983836333968164811617419755222682870647201282990171317415294261392240566377795858650449639110210649909616925317597216411647586062588456692650226675355281724108148025793104573208642629805459919658940448490351049021123571211152304193193984782144137764765982629234650760835364043607962849501987299307798576208561636333109611734178124989953020938321720972457811395185268397785983359180248087410135193702981180005855104687581725416897770277008413300582431481407959485508542239711745655746121908498248459950812928518949313437048134841571048117615171546178189886674761161919836016857379652618529520971415592810101334781686609860584283251296478129800754733565612218259140478372156170308210992951033805354384065802953679316736986118740477540167338761326508422103487790283317745521086793806226493740722279159589515537508756887996762456316764428853054082702078563795495686131087358752505526227563779302566323735132766863151037871341955663642906070452350940368132630709358354540039521996816986726109176301439733116960756618393666537883863527846531102559170183276300691061260654745096674080756107446148615281860258424857179751626457214210598307028086366713897638595502450861615764435170463239202485948827081037838710462361911785603921731918156056651778743265915723231123043408592428376506904026438580919426326615702216367731496453427035202020625812959521076985793746102852334709293375021940976297781732593546686087653516092892828574484723020308858651803721589180401193356493031139284938192071931733044537953659062636967382709251904250643796663886214138530004314973141209251531089764144121779266418197035774988605736128570424151243920944507098147356411513041968480041244917409440009494866357883705193107591123996921625361995407900422188224574418850141896653797292225832820773949776268421766474605730587314085579031277045638807993481054741515526376036433084968475472000264714616390049585189181386707960743837724260746882776277501051105199963025178501603208862437990842208632248239169949880471672661184603480853539939212885715997675214145542382344311730586023936649662566666189118926630642201303165147037354305481441416726673637492543196861989618602108509554537369507848959759366187172249256872170915215192655694453435072198937003932009313156107383324455881262671349317096631077861623514037274046066079216495625329560212746699321444780130980040023378992556260827253873880465431806828276042753285160019654009668949794936472130062698988715863036177131624490010233719931902462166253654113616068345870362188338538858332072446701075842165701161994808183104827367946076574879997093508683118921967119852066992628886843673684481415238682170884331400334146498700506673544354024862407801429935349316870261549137607346101018470258421409721380178207224883625126306055242891475742778228956304646135127756658121148988598432707019606892014218173674328907742874193416514596001855569867166139693310931014615659462438681886332279491002417750594117786164743999117004912072639394154118709240030137855131814710721671279760297984315826068461816587205516553300209636983488324520568433431123570736397819654152547913518378821783759546478637281605316780719382781664464764872804460299600419595675763655329755285031606981931949018355934772750580662075780753291686311110618990295913881051224079452373884551037710588536031087034668001567190952387811592432559519070308452124858075070221815384429568982140523022767768960871201420150619781467821110655577491398618667313395090246011975294359366860683370049871785521648193231464367956698349404807463987394099331667364077717257204989013381797785989976140852254541594932794906767556344799499248323870870465545202864466511929642572474893052581746186856261876713099859557163179413550498469213260651581733212244772007667260078759289309230921120431830062537140193594329347439040552514476728130587684301535489984684584585333659157579197072193881716755561676623237985825404002371674351845892345393316363050856441924906190674162999955882393349511615310247216704035011267395318354561890231384259034864874204419431083240189725064215554452101888786386171292977122004420577694641476363371851335962523939007994373618317861511716874515165064748907972520602347217932581907696098688176306784189182428944478080571009627319054196453276156583360007998417318577374395805913278105185751282689817516648577610811644298826035994717837087307632197441082283550707942956012058149995017357803704477597724306219497903546705134247980949239919403236243886664093503728420268528273989088038435547965967656405274148528717396255814007734401334941949415730970323306883567490550780103661100775420605122831083866498229687140064605293516602297240815834114286293935742512287856705628762309140834978425591194770174591121270160855393237982342210390280045486476404178516958289334100751347149557897908469564005700962261350510064609717277727514322787005862017198156668101591966325794733455086087924127979326025506541342236120727302969364477494775301596289127650247825193514756671621071702139855550624484910461732043921749088523349023773532631463705043101822915221418525775865542152322242351316332709000331324640453295231840722386413604259782665953837661920169650803781075357882198867910504678295619001963700285973440059331760849211451495880160458429960724384133415624414938345171870363222291244703749821973927753220342022327821777485238470580283103507547003816728175250120014094741793505950640650748015092558912698684405123943800798906081494865012743303483847249149218975200058280272155919882433602178954309457051417605087341693025484230093201467393071585048126329289962062443776354200728103301182578227963975600514999195045268002704913578491903156022256001932896953297213872122026718452909087366821331076548469605111708066656395414831568714251750782461764076978950105379436271775052728585483064933837752251737408862320053991228692574443569483832227915718526057802186865846567507203731611043040119271851612848777535411989398311981755179083208318282902081149032933324148450108386470463243795305438819083362028097284971168550209370667635331243974073087344008349940953162875905799331116806885546547618720043919255588021544698153631352730830045728482675264239530713482723130108089835783478564163980568381244472934111118265551671205896921578092954453955941079459317632774786516238689125106680064462665821258702644460166144197382092824273897831189588026400692100548047160609089622987045498910130717716358977235648963767253386536797758308192086721565896757656373939745693234317527185531676313504903489107750146976364540050513312248970758127243065121701646239822876019641456674562672635150075307769627803909293222443197001982829850461703526958145940112034579751973143817613190520081493059994065906990155744511701044806778592721968465390053499703265877922647886955997696682656206854026180947255968335786584537925677922996288404605186486056184178649000592222793167508997029038558794911257297765568329315685107264158188833956234711153292716393457109923479968368168394747332979108087250413531795143391380605447789449753213678357420886760299374045358529589942103102802283867387135801416009008617727497265596737303817264942892713575844197595319582996401030258885252983753380071618270636299886918909132246634160394827956079751979548335669474254821267020507582700900429232234687469392784714084091736230445354233247281927843192954932458195817900603616403955557279749442493659666235723902741172462149960707441076203968913023091211061570554254711938762441398367275370325365903727902685870168158473333351945235983600721888699288487726963032503451989435171667288751784671930606386918879717464945575967593596615641132579413275276302186288957528410929409645551141781157413239274840102688534227948958350015470808775435031633894432659708171973778413379989067407264838256168300661310563663485072225193152483446811643535142950037979928846374512273721546810303990970294329283654074282237107844174344092323241036988587831592807615659452875255931276506918573255110737427917929112386779116299047807106784965865880481122664167614296571113778368214969713786380324346290897312684714262213824202243276029960147471573466918333602561526011185867231680860925592767291157662291760476352000195094194945934930206001828655003710415760664118073953778992237434279671220497418237232256031398595139313098434118323452382194091681708495841101878263788933183142063356950889372286095909287424619057896694795032178272448115139787581522987553653282500668315306197534611619839704807288190830446990003714135017036107687263506201087263447555132500381127326217575047901208823094454177799857706574392868830410854793914740238971769896197492247378220849096388402515863438169985533768205980199368607941861969001801325568834109515275585491816235201072549108176037192334031205998383657665084033297396953347779869888691063068824088176956812564016401894373831574893310760476373766072848846574564454394801335288233606156465560918772187181813692451169280702794884982476487612569565966808465433916185531136901010864000717923710823636170990271581433354283012454046640005370204237083006180596654705729562715333324023326404017003153806098588953230744568621260488118628485344941060784477581725554852417350639108174206279899299193612792238908586627902286893291205224070323487313637916545908430235977053446510212512159066872223327909348302761980021476302487271642573436295833239748122069669562753820178934673374966036268718894239534058930033067124770592011558849767079439256720680017072086661877233738298171199419748771592687649132564469465435808398989385928235154016142780688300903716003253438863158086945698894840735457342683500163798043958438202709056734081395007223331808346708678035159474979495505746763720129362432633208258064116749594775633036358342626503476604669023114242564858845809918904479851409918049517809624151793726019988449526288594759488580501173398781256336395635598424862429691591599347457272654771705397391350895341553931192322088210990801647540780966452200806742679115028456015566677233649201156543452813828691483281291840232605730324295012529729411573071321013647217923444585278677866554503136022799113596694652343474183569707323786861873317667269847644147935642103533093920884950788409850211412794761351780112554210163575509761933558326126865897104566372653954280088079124893428587635948012809636873162161832907717444192375010434245649494211478070847352878442784267353669155060756004476360009364040069146252963115982369110384966577119585846465166060973109828245903093056428611409816938389080880469867469886473130139461654863956382932269566653867063946289607066439733502265902277504324872652366545612426426740138259977256664299164885133050204600333580536884532380769742614931415329401450822145349506492963503546203617682990212263056485726479050119011558148163590378923903879083685466638988704811985122614074936783954750335566373459875849467654280707542811623360745776315871310440318851908241632408121506510210507612424867562733087586537205806859060303751231326134187432235785932242332837016176281206524575083577497870615629036775724793990284556930590778927443605645655510968794264251530141941419257722807590411740233122846589661936622365994498810263785183098605778956911048559348537258055625946219004002158470620032199793269377794398727389113750541940568350664126935404613235279635435710172094768918870609124659018827658009833654489187545949419412281624082666848693088907875824224421636647948285543838999456047502966564992517776874217607576207160593893154358696732222315453668498855965012622819619467269725182918508277118690403303067213975269085068839114552520184136490523246871992030525229474327918794144955987086502067261260712516080374489231868210592044625232443281024107768330950552939114182571398301136926682631174498023898930876803298393580422415176238221412557233578767128993848701122422656929977646221635536168821712562044714494390332651549909590166952965492099043474505475228297514967628378320154569966600533713021583031966866112161832338339098506270153165176911968117760526724521750939383532330473577364074461072512069875386824160224397437920532428812746069355119415358206331038667756685868172359772790290538291617226883328855025064134464909977809711410620628961895975142483693190000189374158359089659518843503234596076752989164384950704169848231260613183649873757271282453184433552632478266219487261070657645023856956691978586281471098023992204273525085839671228922024576203534808634646990466901412460319245523620845063930682724116150344466617191668321004825693517617912811546233354074877594053555509338410290200113160819523056096331643859227796099250051459609291966570255326321657733402587541388901552287822562710179677630242837862961790075531929829078691675310421508828140565417446364111187482629185722558506724522673861359259928653544727935912442055416285298054789310269574510413422021888182590867078211698182685416138166620885399192961998951578350931724267485447452564396001855273889783345242879045733976105900549062652985981663102799954994762452138814585317351753804724692256576653907030699093913207296547596372198031860434208035539315943419325609737455419499215974955506735979842719445372217247999790654543127529437619020532441665333414079866995385530747403157188739185388952018585278905337017145790461394040165228843906178739436024394792828650184538656166092412731331557460446565103174639017417119313482664490754464479068654677336416933556251101537568004269334848099765043389608864891422363550053537463993348375554752603775911514607537861544636746462239214017131694725224294984488060870193787060469085703794845666268184746673778777078851843300133810955307420809215470228758807407581664473255888056999646247287149542033799022874637248557081002177744032756379033950977866864399325168839016170674938532099988634197414980825874235881090070961784646504030625149215404077718594460992944415864323931155020351557443082346351396278957153143428352476016955539341174413107998955837438794552978967356158587802568988913842520957889890972725321921636973664464336433460774793630113757938625745858149893908468871515309029881562489871286220332729154345100489094192394311874503375251224777580155283106968694897013640648965869794158258589776098210149768447048542498806762887468007045853095927635124243869337850249729760112237046053830792417136145347266593121368235801343553664543321762674108560103788568865501781958638980757369281636876417702645567353886133351023182024795340457203476004222173951040287542045537585640065566972674260903253236223510981161142741224594654604333441130907354045432436442738977057589714669567393469628177439425796713456321393095430063034772638471483395110873152491951322081409154696907498272111397578010751339048811760152724058624703474417105232055816452123655422502402223438355539531604388143018241384663593395842010371496925553269355158753203898497643971798404983721571647606307858378756928192822809479506030745422462326052324816722300601589034424938032024833560923379019302084593988709474136960101378419721091152133255615414621654381317627565920516150095278667516814546457317518577353096923248111880412407038095621042852764819374519034730854228282436490980366409350545903902371354091619996924870069926554081149381355595455219839983929954065584035805313554305487407740189937696105759663952811550664134471021653426484583002251116539375024247572865607929247787424550265160979548826982343262419025447797688419524442339711945625348520604664359640207550341692509122449853034026589903766068999847510084680257560893259017991279165027387724056148768424582912569802228983206047217757250839006680019923750588078803707336065841385004791436096465635653572812601630294654893154385466823121100450844658091331668259825018269462099133237522754147920910583397133187947503320677791893254898668497338986948102448195735448514762135749311548727580383041773433013858790916242691408860377914120409517632591860640492580434960045764555803022754184096581863967790443299218413690681577769385518482318769211447246215290512728995623984078338872606605825333076570810163306304040169121394511467752320484584177888766071478248070389839477180725150945815139994823096879028096115777871512288625815448420653007087411579235265161399715071180102761998116263716805085149761766016730497443197439603804433063577659675427796508081682678344466432201038095461839131198822128885238296053570950672589208693676537504323981571861242964526431654048687721934466576302491661966277602938896031030318253098413199656922279636282482497025864554414010428791023225180314350817184542607916420140459556115827640823494562329361083380738920301144739109977164136711160806765878963945333470886165532577016066783472447741142019413206108059737658579003088142024488396459388080790817235808114439143260227245331146382110438589704359349457643667511243945119155231230886225431845598161891531968292656506900598436404385956372319453861283642688133988449717106290728891090955997189725873783873898193121233248246702465052175630803028091028431326510397581224407879315302842751956227593966564552000336039007223895679135122795319651022922311554681944107801553783882159412602136590311077897279691782639473016357200416677920151658236843601583319290666516049025908778719766557921092071518355703383015275454621962970020841579260190464251772310698126874062176033811707889667925356807692402103141838930089292421407107114473899311053760518284652792491020700365619238317354841359047310959639503545069639957165211919673713087296449674525548874242559059496657046084155757305289943875204975944056413952866531470129042354298053651872023222389785216384810015831146549720187203604497798740657181228289234791113873533656231972768368310633501318378797966169559725718899205543740065962763955410743361022804858509778483476169423993461768173707622748050764661333299165867887732603357157617521524197810430248659318325334627147106938193030009127272435331607104944713827492596771102444273423793926886370029220500858566477256758750553962590416691284015398331722721695067368930352381491607770248442306510875074940130241699782709737093963631959017145117091596353932864220125613954756402819578386556633107895672055341087737963611163243725494869169923057673754450667298751327118004239291303899294424908068339410147329400937248395220558067285519762900166789479769361340029647132432638254744807777310058762326001664248059048592013603735361787290592699949066396411407718613798623670335000560428520330175775324771981559273221168852209448001514653276521491159906183523598209469958130648433422233001661018851666917610090585452263507938160464025961536324020744732140598473167599756590186301624012913116673744920645862017890177203623948524849561737082910219117043391473106542964681464382645889410999302616398426986500254988166187462740790187533536127003399364112866466459139445367931817569453032869804269527935231619149887792766961851275395839046610908868095186855786328571040429721234362789823016681935912648372534269698519406559281944546546765002589243218682083343676300643111793782665851642988473327744947524130498915870880217715193565807922328754089737523011045750847686480219375701083999712219149977238684722782971609590646812440009553953908571361936439177770151221085267921010823306453961557875876511736148760144370596274213620070116233964645107002629549231604324694028259418446773675548918809670177635334529531525601899822224263168748941648975095711964660447193643688504845562838480909020209579925467261357082781752289464532312382618538373890077561939003463201940822598509947360709374198959525004800826871671341797181162145617423476409485346207456017673434872213272093218223303075978713737938379701721598197738333073386776839731046813057355671180595548641503717384083518229737100776444468223608686890149551135054407909742471743440771452871693165421422617091367027369852376379438644670557496902492086463491378156590909679577813123226810961644057644926530820209349030895655460319544184614119567349151452964688042541166691442196973653138446827023071151106371651317207520425823725451043043720086165410176784179586667102112129950908384476583931286730573991634454487090537917656397665591584268374964834241193971302060464588755338733557210254189833999393121809379019056216535246532502455919208998399604395924968083531030962318553584338037911967764567291420229972400942226094826872948293203217756535560290502108435669881558444842893066111833441382505880024031110932212959349513038676654549131277068394474659602728798512557852179643447053385473206703466502281559414017229996583390527276222108661558553596581694983296567101251767737441904235087406955646849681582096715973020259977639805309336891354546029960976406053385170629442247088700837414262691935825698567980940868886576129027753829466560411523318248981856629244022295541869978270082294865296206877113360880787259463357165006332412964182746519882262653070830922527288360139466026670134407756183163511853581371233155476912457214078118414898774259522525392588394557500196483521158117558603878105569208169228123851963330285114985966148622593516984653372859067468000859133457254656408352423279671662200003655270992703866044605718692161466348019945417926324400035046553180120072971677452053339040174737451495841472962977782157881377257642783793476365028636129218573704597326889744922679108448650799001903073160186089314753336468365892335242362897231264374600755002864122070687594888453558831312921340601836707382340683296313987002962065430887851467188911687694085071095624080647664086716092300470971103258875669463751671990251965342355720044272244935223596067529758609700442104508900272869815934191703195241909494009659602346469575506769888928210299831270220378714872518917588079678309378015935172955893662078562146234500048269943909468493307660061737657437292349648340832966235001652148189502297995326606627266444949226510408462993582972225856306053806684569646877412777129636860242594294903914123520149070210343031586793964655097262490413411836176316731213195315548530544683842715884401021081094092676720380744845522748640871290924062475229680918740636672540760317085964502797159763158376006069638778351420116194320269880017986949801727104565578137559642731151090162560491400257319520658556395749372345898862905499088105990553896981717969436712846074354160096296092118143535191385208983964461443115758753002876760684598281798286434158181757991707647552199095386430974711876684619432301051663116490654112357930129477631165569088931933589371101785139623179342869917683183091883711009503301796917250611940995383125581080680615767460481488655235886571525595255832783894261418072360902056154002751747383679275114085453481513281138593007348004757912089932674173524736634945451883144234104151073933217768750680045459640948546413083208352016110725833107878480035220188118812234699538897184471580487068740197943599040662011195033463348724035365831655155952759505119511525369015240740622046957086504180104463748417751139569878243163904294298885226176793525375834210658463443606795175853907156597168857644007208029927603183599721802860300936996975474183048751068018234461442107268331957026959982851969177344963222799612697381973732847447368073545276831456621761245986194489395771580474238109767142342030597088583946333892972361319795646704696279767380242862040034119876753151140849628485706208592249637366044038793737434807097680059724104029790707131170971048985127079272726203650595556756576702694367603282691079329652709089053685092109447013460687566903540104793756325367930050633992626397093586023649086916567201557201130802784308742003876589564226935391701988655567824636080952526325607177980332082436010820997832953527826309255644172102146915347372654754833322492142649920788299032897523946707218356801868559920036240179347524243895190686649449940403673972769685102958704324782449086193052541984259043121993958036241161848204898721214252516651962850145943319172890047389817621497001876293337826759816087298383185179915453327264693647511611123128813662386261292848294917697421712879880776160986887873519676648029006961358827607322311330361872134479441199840491561014334954229464128580767440517696508524715287068789566372217465308371592528726244458252023212180373748111910649743924561731049003525640446748634543761494650226152959519166654134228942497342129563812274569036908995354630108439046603442672217193934741193800810944254925069867759073295675318605663995216995544663921259526461054818875594602883544072997274912749388959773793908091141637833618166234563962892454822299761665539774670034365772002177245364755543091923089937116892070550468298874767625299725313079723226966136563182552760065361648930286678304163625856900359422054041530659075385651174186178141396748866620369502760064504107007326369808306217147267602674915233170823761291749194779598015083941633200699258368652103985068949495309363328359886324723796205045171986697201592684235590712645852760128402347315080830843929201332524613505748412065289495215285560554778017098107659763233862292591058907044781538137537762403632429422488899642371891092963620301269773119145756922764268488580071253573215511423632918312961690631202740896021400848858027924684593924661805856897053767454519779849291661903202109051914199003223999821319605534834072876802231596523094746537541020474519390243840484535989655478104085309197973591989268710402763606231572951717896341681407523604144051862911449558191645693535294217713081336379163664383681462312966564144878676443227648097418177742841161176415094585006227512990356068895554941676885460835698821455647613854534905555094988940753343609943174588410745741695345465992077122774739113368059504643704021489152137203151984053893598754360669111992591580170993751113383106742250230932918854248631953335545837839455037360639542776461804661798117117668514885992258817867052153108486190439948738471697442538133899399807239157901348614715115132530654746026894891693423357997913439738045627352787721792618560948033835449333549487551579546186084251322305192855505361396247297238698639545557097679271850243439364587895362557353488823925668241985641385605584389802059020283440406932980406622712781423354760262529784712577481474254654439561439770782286346179677979342688532894098522282182878338131617868598385648672729879553186775120748081941848464141397740199746499982759872114621265586370793815999687661472572777726802543931480092188192434634377107532447743012880417886640280870969433318881551302398795151911788778715556209221532142082639742101565460354019719477097055383406688561512682400127571287780168427069099415396142726724615971641249514443503755719245410109394071022786170701411563975565486324337232657960318263519233297527527077687110457305791797590292282246280945958943118804414574171183547346775939021324579291930523482126296674157966641657833728500199174469929913929771828942177547926458641200065565575769552192022016607947182958931918469710855120497394651768618757025633221993176354759639098085117518130606378173620897826102135280036760136770491196812147396090506025540332502539959272832408331791498481894647081300048893213845583555912063172857263893635271046826405861665760049316467957297772748220471762690525513525651572481331389847271221640526223742094094543534250507853025842971287084255932788001022907110521901380578315122024995679313366496898749614880950596213286884778972724633380630993407546522819673554663739870881398163194976551054166994063170629815292300472567399769565293315832481995643846281582294698463868245631861593440327589805949952956948531322432422715319155566659481388290334465114688270616691161617677082281885839590880855470985409735696337729916713399757440893135595469217312995382390532229609955118366195591096391606119973984134519424432277018522156790332662273743617485748893657950506664417953675698667376147816489817720341908420424575711214656286417370603972550067919032213081133164601235422682619137466080953299146232171756150597510754499600947255673018497888299691350231486069456752385219373080150511812520040686330995995121232205169550761450194421082037815596665816207729678146040701934981185794825500891796554606560320258598738710261190310535803658017111348188346916708798164525243241101563833113652684742840635239711073874597531315243442939439220896718115779852912463120960225710892410693851848647363326073041459108091108282283887586503132598099000791142577947115465620495613240159661107474482873238610006540398200256168531077267129679033591470541364775725872543601817297101416329948617260474933778424730838433599268668853850920497900492292526889585777467718836983659251780866534884442793353121537717793948730369226160719448663340033628547885397226176126935107571972755172923215640985847056110087246062712359504042674991003016904528727689116478029509378722527455268975659775474822699426668738033091319065330629542652169222650607572431440333044949120445586940585716444472378750412095975846253221326033047622917127629033486975728383335746028885688772358310527184949212437059238316406318390136958713742923016998481527523951790739554331169173341585585346484999191317525272713111948842247173008339246223489989003020664109911614578728129481597656508922641066023883573430867399271758058516864842607502917348440957596496019651144246286123586979607662386834411186505912383884312162005710832493860691601070847820279469760843666811598797393519453794270816607697695504898242468946957480750736539164255229833489656019863755821051156966969586555692855167975091309647428417925057822372282379480429498536141919908892882437990681316115617893240209850116639739067829453794247020850042541466969920906711285747137822820322427518331066317017464042785331769906588096176242958405730698144270796693320485159024573766550770375807342931868478582888759402430472689110002151396083403649776654878998155372028987321805719319226549583761206666716095294553614817272416692413241096604006468927661578833485602416181761688524103379713873735507913869661419326632937118086721500360897121598909402448996926546150039974160095764839630460038092412913602522980742341385082197110709321512987139124160784676689738285828600173242889032394275569416358416591960134275406294820825636820980310727013881933997049313716031633545206782573803456142134659522293027177722800129396567673742269989235837773738060277037017146802502669315572110423414424781315101749926237353835304577596271536993593010422740224794210090894955880072399357039425364575321128991565660721090292883856795584044967452045337540083294609043770366217479846470369609436248538164968418606850386936824318028922717878682202018801681528359991899095313286834896610020327965291231287627294078096599470714633749599498106144938986506975317743990635657523410484165896436342827236544611876532969454538534296135084470104866751467986713092135599531483062166266388130109972525013507228852339397937666298125705230136688924930972615880705791454236405812319346982410610281353501642803922921079158674380566647769168354173173734347293106252262859363152707986855208083682986388903766174605900029705260250811017670330497300270122324894110122432154436657754299897321638008678178328356828767944010740363449169653914137790990048632091707901516455970245331280305112404971774282838684088197030147001129877353815401888692563397129775485069112433218198816822807522714182668461497249362893920319293914121102137198570384628580806706124558641938897165548122291412770048790156452254122651243809386820192340350612140441975547105143321882450410837770469124667054432116237847391543564218954137083104786012553902383089851105128046813277115975974596381269353422892138007053881599609320807066283444245841047858651627229795676532050442282906474438684974659653320849384675894618370935500720893054822936051868914980098952742260392590860274238597786865034430075569960946700711907724378091705620694799113422633383966166076346424487574943472101401904973679497324865014961608714280731724937036859334130579556735750412137495406421753305935215762603637160543835657374460442331113340714545057710235706690711409074729897917464086906647230102512132159066180244822056255897275796259450013847883442317579612673443970954156083290023110295599522585422775436684835285387302558283941993500872908069032036810226456995301164170469008710458182032232392449933523077890691001870818388524660186036761280815310760911624830926339790487537678137543082103801937902973789459507681395882303281712448638586257973454691101268911133199032004656714646501990435511303843895091571800065591239349496664923713659269756366740725703423106848484313404597632389910054537086215795105331891643749536770599157389682927722994291665407668409741238354655080722731024686206725945212637288034824669488514660303714621932885894328959925676038661631091824506804111814820971132633364671132111674976532482800244432927768780002218195247851334372212418617255321409087270013125406454784930095373261554949421635199251216259956086449240507958486855510879019407615825489706089975289233819508640422327604454900984511510451082421323984606067715635054285095588237040097167330544833809999215008406506325755449024202784221302843456754829695826357319198909561281277353767751873389190766178712938122129557105815863627187854868650722939672632281970980245369651190040700766949043701172881425645004150707172924205602719074340951570762118775386543870902757936697490931983812109537139185783299987437311848395601361346586300063160298399277526404990550451722066475218617030035660862948253082241657553667358709811320012326853509221666557502310594862658333453950876578321139797035839529719216346074972128603781403823297296251830462736566081372514493123980253852183948722610478106462933230729352925868229852187772918339046146465033897789677938902203679448415477190147527166931041417918556348764834362035146222027561759934080483089368260262656737513753411967935429281145665754642172805760386253595453401374430279474282893165873678835424942734647048271780385052387610287751314723335792493427203834401527861617815734861738516324686411364396740949655963790092127459574272526261211023713812391661699931065569359836168527337379255008660063754189913564674756557340261446072541164749009577741339447195004386330926723816699599525490512262873296963132080617782660816812419142549051178858985583540653764317149210591768880585306997480739224431151298821007175623389121885767266825977705041288487502885645860511429133383703031391092366461919311034468544267598445977547907867467626180868492702360070556014076537837892177127207959764980900566364380345016521234593620347996932237214932076699296512088718151123519715070771945124366736766993849526635473868768538376718650944053094920575639562551022095720277561255905576058210109337204165194980807971836054011605211325660127512562286161372574040269910542703129362539144213796637913487504679772155265812131874102047731533610192951486603866257062102310212535336442390219142885557369981186146233506885644976045522500330132383781593810487364820032196727151623225802595539049733499383681079802184743944743936730918604307016855458497375345161197078848021538704464597530356980327367265087781559078629512462880172400646222410178163935767884380509071134861142815476253218280584689027587616369965294879626991534292079156452241050942719376158611544807349483994400098463199991873005042944963845811505139996627854513312694435853272028255321952788991089345826463411188291431306268407021525766730559564214391712106504722114620430974723741040905130616979621339481240661313985754582625926869269392979336078146979333089344189422945131273473807339442021877833610322851812567328548526871507065430080181712206642820225883618643986417022601228680653326129609564196598020895387298223845107250384644934904254457676247804759422870647623123751731967331461223330913750545646660632534195243671792360929185135168209010890796010042954592144711431574110007517788524233926383346399746879240721634587724077745961330444377966590971045907165041714267794680087996282626998865535484071702371695319211977916248514899368546830494568385128967440476449233860598997746676887341303060114545455409395253929267907702183976865989913589382165865645268217567092744291595921256134853550875495087717011531334875706038576124151310752536857388514478593901085610842388979543362387523395148535656584022689463063746409957255444331216991492617053639649062992957703045132983391851607769292735234348802597845491227572905570014527746739451701770392622730111036529112266091963335542157990668704604438497066949138796600513491353155043252863626662343264662429661057442363648546163797855055237288683175581271133620847769909306661811012765708161297491462222792329248498123703488110390326187380146650912706782118429627135384022456193003023094341965536077672737217655832971030884565784186649680153167614061290309390419055871605817470545863464080295430899290288682370292400216811099365606581209360575938225785320760979258368365626437180023351103809571717536862757105781484158409976353774222407569643591055658665251478567245262348238497024546670118069295175058353941830110553841809151244329721230473543293851206188629048030205828921724510962044838770821668140692431718409349077078093364625911486763720437401520674639421851136272583025259232947819003988774285836506423815396752059714035481690418724251168761552698545990581071336142202648109753929255744533966503275956667804875727106307878393007803346720126471379679574451853630327977462738135471621009388566634472190061851250504873845169584180814346264388454131791208899894232766278026599999531136541496195252531886983774688134600265070451146077969605337796193515111010527628257106655412945468246833864943333958706102556638988200411726732649904933780123705963857145139595432555519439919296102915213802646568684642912904068655155353304209816596404331427204979959558752975108015843453066417021646635716632145337894790333021737834469169358530303832657812326345054163344199975652588753672600894715123648888010388747342929631550259433008228748549491877534010329183892014615839941207122479169193707476101282988974945942106184781902707945626430854415963823911551503436584509011697701540362601308998998078221857516051694503918433645368496475854165910079084120539319077191281561028472256845759148409819721849301650960227376335158932962368038619231694814713633385425076195193669299159832403546716231126783293026697865854702368641785467224278141171237073232256017943072451712069887728101994964885231501952823305727367936024602375131264680898379101337739213443678457463634231825402746271119136359305800126832904278306098737251104417303949647154984312926346174778482385632883569716903976666029104695865013796930681144601703574609394849127991701697579954458677620590958583514282426036661763039114267901870950790361296301802580689988186154047087263175155646678586499679453208997592866275877666749648672406674298758796149384931167880426518750851353216731721470154232181260269408763017915648823414266123617071089008143040133177803888819381159958445722989201081584591738225713528821933574936446686981567611868418154096206250199307147868149215277677394599603535064066711392042336002071049233669606032749305629186916347557090559492461746350622237887973952612564406505458754264204562440051041013124261809762851054724577291228468632770128759806895451750720175341937721959163777542972485497132917327248695979671555738805679983660124677331724418534590234700937496593452028398423605285438338607196783396009384241185283967600736370229033305114118081919154070790019397861829144637073139020553215532571520060847410927803507810930613587281566043755400943539513986508614396266090032748916616553826843195951420700432134756808977491120140159327193165594883575270112153332450084278412136110439280498662277249555228998502481454314422027998237440452772536761088806065857160330813950402911859918896178933890437185790603221520015514136082456510173959763478265685025584319431418408424429561359279888598528273638001820115675613120510401421177484810876732746437135971828688829217167702287552193465408175198411020282393340994456182314713404190968947064814917348674308222832998280877384010801408122588141545744510900835845545591659124141127968046466414948188305731383943353541899882161983462865383894244034239145573986920935556896546739886355867672018083072181496596037642067674036176891009552606936255412115913481655534708722928129619710213813496291002588222021915504638208383500068840642755898779536185284552722370704397761867422584460203578774779963447329611517409800676795733005837881196223116760727060208484050045081311289450269617022510185723944541080050628856439771191475930446400034270289054887189655409333572534681673071705328852435382392432764600927437504887506763949329320233579491705611514002909090045703959294916779640207067364354346936352548810869307662231029417697618876852660179366411488212598335959400724525750772011512359306645023662464917239876184680151131924963495701870813722621422923232580592835824496909468052106959740991502493453996018670943865834594614031539493369394792459037448740581975642411925893615082502083709659192577018505492643016010655966115574934247906069062494688644448847942995463256277273882476127589661855664341137741217398370339468864067482319332949875487858939766510450889133945407256201625212242689383927675859526998863591058935377021604065801997621655593511418610674717096669132434884342364228538568580114185122761380556531499996877774738203902025743656358473037837466511792537175189559733619154843346889694291612702659633901292325753963618058241798056626433284273396495144613650317882185751441459783543964147180300502973382599237668794212470265693254493950295721733163325795919913006489314783970623872789244383988263173472149339225233147653766313353059115196424212793214817638550897209682608541208239907210551180111832578799782471085812509183282789842968407958632969565556833132304990018689348034156154118228884817530358504461511230307893447866462607877002555726350594370146891747732901271632242152868493520255857603712026122987077325237117935052343049433707396259806369191911218161878923073499309278810423088850460233950697910560566688779410959977653915746094987721084401092049883517728401121154735650454892660610596666497929797628403876010202387603815797187068653738445109297187361196426639709390045816867839701679019265727929392139415488826505715838757516968616284997019782500349179651618907497827502792292318768262081904406345557427125245907041674012211554462414929328675838587143504521956989134213022977149346449474643752334628799509230304757271740468136350412924627786971163416095564358680433178111028671852440464548340218944232365713941108728662346705782193949219509022649694427142239724970015032164411308588426384559551380364127797113612712209250674993022432850852275655956523480752853835096786844108863044388341451506295949832192887252625084017339881816703052493670221335754424856137144328330774524591910393527430176911047270081758194918108673194312627130523473509174580083698750035961373783538314955752385998477248072164056168115491159675273806838757577087529565523810734197031480186743985586079121552005396106735778494825811000503999786495976243270961343690168441249574496519735046453499996131133155503442568178703339143133413415325002717665770634526480667866132034513623775864668763405333743105214113388432073824957216856847245713226982457339473284088298252160204217008727169380737177629190276615739624567856680783796052737527683978641925713587992287043611533285491963115009217272400879774374731012035612174674396814089105911540937270839826895659121535736887401354519477751249448916152076968748789514525397796207961552170134565230232722888303090395802140509353105824121622211250016949888724531689429990746297933763525588506251339109382630555827052555791826255880120590889928407240923544205088225356379528734205032305124721335797893050778423963516016516398184002910478928493775040231939010563508833783995262132150233426785370368110139157740801509953168479316207669400691916603501310211730328432694981807130517512432256164295035246726529950157973111945000918954193286264033070294235175493850176159444078242459976624103856516476644635154217103261181499191964926860372509638181736572930686695963431102500239085315281781040085796252598143528516817619813657280077092113495284490287749039821560694579882423880153171466485298654443072390277388172271803188336034617742439550027874810083273406289522549794372528867351017361509737945131817384173235010346465144190479226023224834937745222557635860576151880981967937464109382848148268826909823021612761088489279653733963080957322505702873200063667352446675355944959803388320757317777499364933484461388483642339867938571711668368028155107034749391506976776202102448466245842086231748267304943475198862153272844911798155972974691954458824769178154725880263465716400717298702200378909824512665705193083445987938775191113635755360624541518875665520359817437892414291386710526290143621192195842811233589018298071541993967438413625584622778375927661626604316404249662326549742455715320546308995041303380708459494117599465531699675315482639524844107707794339052121258635426942530063350805707945444921666726913044274796310087519837309338912360709467291597136290796237489802691089351990288010749984602429551886898193324911291372484605806007307154412734470920260323629245482687534057010155692909308436453757086650891419157746085069006432261785561016949187369544914072544543755997851689046406548196856013285536604042123895825171897150683986212533498787079441773873395343249196234971979415035344516847291720170081192421192121842193332133245530371986011405724107892435670973629323456729845415281280541076786559143248588091578200739469306557169593024804441006814022095840495517707105417538091841874290420152872044365770088570276842945005847702592777141144053668752447455523362001371463863404232312995354901629627644831902304367577481804724950440566671777361816637465634462900527713076991447742483796191742761707375101506670507427509286160515438038885166598434887518210215010305425111722615510057630179053326446817820112576950108428340992076210571185213596347755417295839710928690595599170540044879222132689726859294790294888530496067648474501953326744730761519889477927781984087046883501674174175400305060844344826067052330899785167726212432246063763967023248968513886538129971796430134618456347718526351557940563980423575754198685235851769546148852467637385331917282718556593865071304285343298608124093410473971684115707190394017225421793651976049448564004426703507717797298234746920481036181531098223110117032589247451939421960580613328941506708388683617003396479884581410530467311771349911231998644694781642488485098967192226025325445375656550365690549775283626971068701880589096479733287311308606754164590762509210799848911827456519975836062323517916527583352397348986223388816719088901592644259202702411132907839959034773334500351962417421386014860569189432521498039765516600962411680014123479046917782425135220768526905923709126180836290097407449663130536362822010660526834106258902059433253626363716376889835533753423939500943857322834898311996687941632883127574233071292676320548422268965870872092540689268962063729642129378374591338728707352362182295606773544231212065782490185318731104376592193278366037512050206243553614455433943374276984618382732957429313807265637416911207429459137826952100029811859610157614010562090727453261829691303622461602070447749530849805930880683444619989250538641860084381118735733377245521108809517725870418285921286688853135539895511934862052186208090087917049980382369458188710269182333355203800881613270861492484338294985521555660422073328163304592464755713759213371723952083644889981669053289328325955672351001579849299692038326048432309016748278128032460671129001390139816351311138691665956806459472041598794222969468029220343546133193716018245174017439378191319451998911526407666390695561016179820635431845228655262516174443348721207319833368305158834009587052728177186308480466386876222013538601893500769687890352803063608916315441137811574077534100166136105002181075777551802627846984173427476171193286530914811442435193735580105273607705504866164548202144223280872495414256066804476959001729828084858726193612619271048324880373383400242436363150452237804714357215340317759687700850224685498855687731734366952217132391879073331372084291427711822168013594873670790845846864604694691640121984687271488936135633668534282330982707344206371843748829513473468009270705790886989082305846897560427945214342697958444036074354313871474989891863229310819493366202854376786432130031828786112403292791782782993657246767933910889769660375383208121550310840070902903517474537679797981055986126416695784085396928915485338615309294380062521904056218654250902326930367300577625953378095407518368259412582486771529500481649364270925714964182357060145957907745917916215087050723972964366257462428100227798090137089736615826673297248960934652616522361123431850215480781972657512561432995671464622414869055170253267321539046897943574753440805036670242846191317565325443743637619560225323191130714914278773551059978680148523582245484470705068117647265228890058197959965407559386665004563900923516073160252684384916003060505645922333321042483445036332492178457888482334848966687708270173265255077732290967406432631154931956264978631883687093115758867619202549046041668746625133520660836736728032165137553839502344426092208905450073570926335241664135496974351835427976224397508655229219597997446114159885987217459470092540066133057332270573461006344091766578011393686691706339878130351564079714315426687285893776569496428084968044260681562136218717438106416580248774936154526938668880983162360997123303290691036961756646555374304338723611679014090935277748420891782515362888475127638577728123977212655920685924110401662593804050968037930490749443264623898219705698820103712426555578346860667390414604087996003711363795143036879704145889844353622231449473782952329564599885812379240119761476045934425704999832172083750139331307004531243290357317997999369191146451535828355797968578936888401892181994253729112084610748559494447819472659063435328225716799300025360048936980925504171120700765045265294054585476303090661093045932279548773455774535149613389723169120811101712575418464109515716703370818514371114217862865859347104157354561536283521123920512179008569808515830162557118023512806975558539534301857496156354070166802435771248242720883865528515566957100289624110881037764238949764104853351194535510892913607276281948604723635124806322131997457562471239635624808949151704730347270285263785138959470849760935886234267445236844620759760366880827892580525174375283042891520144823601789708227207220123034237120756287776081329109416662810006748014559751021584446527747013755394683493741625656822434165948202562914526221196809890725037143938018122016096937538204515125896212122237088539137577281342950090670883458671143358880239877803178751829015949253167403286341519894613231370706042121037517133195428908584797045906861167129292518096521278939238033986144113824805656751681471787392100486652739610263642330977296887513073772133351017356215356090169973867700608299655037460427870585954061274226292641596863964186360386266132098432494834197581831820838398100939282703392143018598917571022136355554824453967299265084225682148952644746959783490453707855517779330759845327977610764735990199772006093267075708349846629501284679663795152327295106972326931834961926274448165765291199875335456280204695555489703227932673407662393449363159647694105230544294321430657769997153829452733661404797221712964046162920997456232340610107114040028634810377372269622524475499000746077612742458141680910486148381421187409414226320681793341524865924740549222518637676250536609305645189672329229775535705566667393346825940158775182105233049160922590826918768794652673336431238390249555082317757418145700888095275272358940651008629815977945296931415318015225557139648433544378708022559627458050783806268643187608526558291072574946672786646750285740189446821416898399756972188785600592020487601971196131815651292593867337809761175145487477059924248030295861356281375234016448250332645290770280482774585279045731291834675640387845733389528007809030049401309158157405501654895054030438369165731272896647711331470570242904241732414692139936339228226953086538866769130058471937240757338360219699207768411049800936090576939057515507705616008275621102546880992367241756177432819284897319043656752758252514686400214027608729429928553203492202060334781054479009452385875837126965006538611562228682112739300035689071892686672549463567973195623822401064243341868147165071907541147265006633458416610582471666727236987547329772769101987377872250246120096423710687400115317026669862942254455474784538187417585989027806316886035014881653849843484853613251952262476000961339485659061442824134225531086959524644006233221763797613191048144063477652078755452830176451010135670529512560907165297884355471964975721595477918328814716009955194786672776801805696237828651595463238153635794652948155761522811024903939004389010979645837949388144263163183187653131580446192378369703104028320750607486306689413024890955775556046888306698831771568189553718410484463183605351286775677925771351507048580091316178919750494943523316074048359839040964030835904691563476057798811735181226656940294961731338435681853876616716797439811052193854262484014752873302591824304317912277752817960534436225112810517169927156458987990942089584705928139367708851241772842153752411014929233262040025984004823895260120098139334933148054479508128408706332285327467140547762712070278666909333592570046426419245187839327880437788701180315324177169068647068701527476216884726660623279145650595783254586733971759170098321433026096165781617251795656635083818204731565509561476492674698612832507616447589325270576583569189336239083275453314959819342740715373466809164067150398846858186087551190699794463062353607674039719897304345691287508810251021075749412112511574436245137678780332200243552246381220354257393252560165740750643226265250091845108513120714058758234060604223592659019293449072909882630349752044992766609258630246128101548122789617366600438137938067819045163494979372658179717622757757624200750393405873977491028382202057659642225226780742081797878253694881757841508537729262316086515718961246775521241541782130553954295824869012976557560241027326237119192493128178045096268967606063240813293219557472979432426734030281957006802566465793184856577772689737349881098462459559560278003160777761592518780064207045394984176807011895501911164822836421033496268647698629355285330925077576424921263962824338481321647100697205821435213904413425672702169705472767575236171852854860945231582758528415602516473739662500847775330384719620585588319400477853195042952666195128908787487997802025627622281190516077396727734170384158307728284604740137189498467874721770987815210876824142676572586565427580078464103507720063014540401974334280765129394491505609422733536621426222610127610732529738473093175288436442008179096292261229742086184896297333280866240564673352282987570115344982880492957275759249078477332087644186000873486249551083577212344172939112578427891182167307872312555494684057538497721995905732721727972132187072993937975529851079078643502130253978193038172509380199520088874461024873507543079910131144149709132224012788213461843362704892528056183301524389406348332083021609838251356304383124471898740430056147773991394728445801391411516227029194395138269267391384495272636620727588348788895285300580966009422487505926468380423338074023939179402120720974365194292801607592533139551960498267902081702671160017943596116750154757857903731809763891291048226117139832119625703200748586833586914766899619131245187644876980299115185684475755756198059785427018941493191317103964220323113118604574919033316246402901464466858199522018435811682540126888726458227295003238221297991908980545287260831456685273879385915910941736297802336019585905455415450802289128502314778735734137810250456188128820211664143411621205692055020002045038933301711192079112838744529465066390796460133227819244735861510412045343336649653504024928994079953519833186554860119773458201198737230893490997029778777322913214301790749962218147222756044670732426766491522174038419755046092295592330216899029850919241455481060423875168105235146643147623372954185343555007900886996737222081396461590504457489419363024972922571387101418372435656410438602477098807227933690060795930861963078104689160163679071446392650904625307722103208135960160225610364502452111025017932857043087114973084576150267526504465363919494023928902760587478735513209575017551480296809998595680022365402903925653535338477592554499954006438939124248185766420537231020414961346698075099977534170527611054723629857120716961822237882016942541229748449697433187639157603219338507427305101929739682619323534756743662475499942324116024186311183875039856755629865026261657904957534660617694727376003421998121522417507409685315016041378319809811038713063053973102562993330408902971173055564647331728278474713809200046867817693938628770749087474300915551012716741163228758731587691005670386043144115578927827047997403575928395814833468446539441050265396114031001109702405121279552915294443595856137174399054722468477309035185424981502392904589007689288552728056224022650151398382095259721350465533028878581231918704102490787375744639806129610869858787670384242288913019190795262202943253752395974145464941633119154003047086858600834583004713644258583451305481269969741186876118722505487310850498677951844254794686424343960272121185325096924484241603461834551258251641801480122783770096183793147751013869997928377174742335349974108806510283064864177411197976248825813252609452441556588173769209267444789616494821656317757996978068003438359470604451415423667887596608957617706513870082003088872727680211349884989682738401764818435816233079859951101665808632577339364430812628659691339580074940792038598885106708933494502671203495136743839370066146525092727319168719564421335872537209716945147026700217691812674035681421907923803845335521665859676912463569288799668611203499657976438429243284427350487686075894937180417493331545818361950821132865001296433411315859734658316418939282422184960593483485958830874324600862698502623789294518916388775659265664746331585102597420768066293135732467398940960146441326247983103071591016291690278854203092091384745686663719903069428463056621846280646890671943379929154752168864524913984749220549684190150353535918963372454046940945108256371795172546215363317821710515157473756106391280141854913580436010575951534954003936490805803447568565039008280814806937576194204913008676386807482835142892465198765879473611007870698558440949878699767574015700795641087822935490834585404897379610265967730450201889971404611310424861991113028096299308374220716242612917469314927688295326086606898691901308712616076373604785125601600140327196729788667603316415910844463452483783983542826124280051928306792088107823778294882513513619216046054396579421069091283057547426556838305326158226753186664318518503293466110356734648761171549348201141950710151221446095544131164866163840026022603044648125621723576209174229195099377608889290675694458650345314496869590298353489971488299709955758050277813036421374881161283181512911320421482558524347649631724501280239174542415619040221056464532427929267618508259049747533096072936726121105149994154102175666240738331495018113984833326328624642210038631767503831055185122436988532005219646859365819194171244015748253938619988829333630860719055917066111250155882252561400453310823945066778192198160740445314167661411719499813708032670879824462480122835061990738442379342203408045825708173569252848626399847902865485897449851592809507996435122324164153715496336775088204427122067671468558683357833359956292751301284350319190475050433203089376876129546945476457985571498506377548926261420696546140309192187882432217632610233305603251381713043051169273098497412848796794234819276348292619722774556493905344300267063190140416816031845519050374645680252600865281544313248444885041850240654578538460241438460405290184630794920487058316200875737592251935702567120375291922726131806312536985898688293658728697231655174604038465733348057818193710601091717291745747870956141567480382591621689214685546741718913981361888347110898652690809318287719284995143517891293921128977242853074966702791383823866827901896384333783218211435742214575585207211726230236426290909541440485225477130049766416986417031992502085125784327276662680870001019426207232665633676456770768523767211850187916941539067196287027732410908082648995878688668457901158850714201083880454491923924092559624028646352794146967355420813942597444320446179917861616800701679395045092532313007217775887427642185402248210386105872695826276269137324021630793891242058235716114052680202700944455841968811392895167186068834944920477602819653503049270478018966129146403224309392437911002493166565752259597731319320538210179077273770057199681396484142079694031113168116630253608150057293174211247216034176200602589091032749371267989519491730587991603605270789575647699762609090771410125050036139288734900813581403407248177742437237840571395728531905929018764780812114262779895650135148808929422514637733304538685121201272793054669701950400979879194052183677601365438081779601438547792812572625092729512226772261858701211424776124271735861906466315636250270139044719308714720097757571036706302053194692072536441965396021132533281529613858730210067180327465439490226489137639847810504622455834172155133378623764815087895575295629832754920917002968411365108419297671672889478729430127639104886598521974892467259908692453196068867281951968824185192875154118605028744979781449420557149743588679864774908597946126309006895696285226909660038691680993503230063435248967630638608110928536564053050416081193103855665210663531717762790413420231165859729762856987098049346170744629117474054872804694597898998919280651646652479108115175816822277163318738709223417892810289142400253637151901046884487578991196901686679115545438108331246413335733044496067201047434826370746594657968785568382600887693643374743546761472226830322131887179216219336108117535393877678062421628010006977198959353819285235135310099941804557710785627528154433172360563211137772185411642877041165959635081946149246377713973504088362049895043063104476775763382383159901833338764827602399705981212249395154116867426980971914417842984399037118297008630009709848771454505178389235407670166664049075300399026994939068470271569119822175376872967495974911162632456660241857459402169830799627792973306962422274469001835035122503724896773443150356721527113364325328335231821945672523304942014989623663383593711287468146002057428054508042263343668422705766643704491557303299998618723309004007577682876607723260054619097368718213147350860082478863416661506856832538935158915238143025360779779646375620392024586069675087480786294600610274455812341218839219977470914457782524269764144344038347187742428196526207322741991393179101933769087216646087661491866061440078510878213975526043387529387618852582958758808862570980554588061574298073808230578705626298314061898560209545133716156544245602527237808093177421364887548075045093780545390620057664156810621722814997583497165402172465714670244657452043228658400093648284559567322085288589702192008021735021625363760229589740474489063038917854474763970147844646542963765851187872084158975704608532975598646486854631141520326119200475624945994205833682697457330221304234704088657593865449039828845587612233856846011079323501728658919500940306400185255186651293309883220535977847617985677394788522319824855903073980494354612225823891847422865506492758784704677811757243718581334677232702876399040917625129339325549164080458194462612622931119927054273962374936929872487627451695128519150406604028842809290861523050316285660427051644706249782589718974163998741436981596945628229477024164966142365550279671796925752888354406297081061886897648011752116415274529454905515531696980882958383295844777429766591177933244294683957840364289197254114236726927943321271117405651719898750703988287148350494434651014747477233308547215415231103419565938772793332332712420006910740195838144648009830541798992898495580466438597482970894836978007232131529687927630720665621526083242775019184333693231730802811193721091466112187048631744495544713201123120350977100496339223792126079123501472802574876761997335003165503060227457659276027911855677023541481136328547334910340875319269984430654806930373838129738812848645014888934114812513533110395881497783350418904320006958422896507283728656952114351960264147016424313483252983865024856374221574438342762587499598872585916193069747990577841965849115914483007978398445838577051101650701426519582779310847154828098666169286841191462902619313096704488921514430324501305868418440709682157574288919523526699944771558183082714190672010485951623374306365335845261970643880273940167623991126384326510041750007894862968838836159964881628779196013410093701258125662052939838548563971342109751506898278003836161494855364490362617729707368260242066667042337092711309363499738344209729245158681991162601607994832340106942984101189462732610555029373246026858541542489589043803316676977034550301600914339543458321366749335211674960901015846673035070329564197084555843471037835178606176624948190535869307465116469326532847099449565708699104180805521653554400773970353955114518666765064665906987382299559929064171426194971336614374488854595397251894690949113934951355143215236108855422701446930220023594049058506901091593577633962000271860465625788790571934594199467829544177791188815951819030346441598270549858422241828382879041159293297982722711994397757533499424235405498576910537563048276806382643639679613158349417775148103206298912722353069244199784092514872148612664601329377979733793277135912221146114441736486716176924213207920823152864795431162231166866874941018631393776712635556394173325383645879462547163123735556884851366577696547788485849573830177168865194267544894373106950262377627219028341783407476394674174767847074823211143985445954709606346657024497312548547317004452676653920890423301283199534720130533643472810052743963046987594657101480104794713559328388647860105630086457902544005773877633814335982891145511088538456643908720669642877827382819803565224207451178471390193441290918028675408611172151651597217676128694683540618355043199125830421092697280165588230589962569980877773880381050623780529975429950314782840340472878876809877298475791864708886417175471017611124358652414784591036818055281161277269134995602791338274217664879415494120217544370060114797728284012705315823448418027117043583368740889108496385465127440299266814140006254820518315610230879108507410476793390933065303458807248090000711418652712791308553486295888076726540906153539984477636823418244734825405002467859903135121916108063744981150929364567024191201797098698483191013949407256059914196239519009099392173887620717492422977440906179782056076516432780074795975207177039692646703976525794854790021154544596559275542308631072545748595862500324281896765151966047734833590598443356046405667510830230253181352336363326753883212731007700032670922383450233720745201725728930269112958552991645698529635490539883406329538490087332711987441901240033571782457731354520492145216438589195506552040883079342876345419527168721891623864661142103275024864989249254648695017925812509662408512219011684191420779059345439932909715988975672037550393094993278858706167634480748323464313781310093175296600097244510217633888359965410188115788916261243889634027543022187278568047351147186739367001229171653478603883257366206080041512119512970779195748009137087508419256593039094494315275377715824903041857556768787343061010273357994557833599782650171030903316621059468722564562964956482492443325251669043400097762601147458249581308394145625387655806304066856815369020718481291786206326890626962588349744805472485213482021702618675270878632828285877414889614615076683942252893403787596768719311568472611319548542023970158045009580616723379635501644097494862471809010630634033830590416468054853577523445946158333128797282722385601243492105703373317028716211359229967464189104198683213686457859242640185628649297036196918696497529000718475376165301877551046169791647985610549082886988549495726719930063919866492357987345569993567228643385962268930387579419885400571620484555522193805966305444277763562607196941567407001284087024948609312318257326866510883411209323620896328797958069468458708554559263089758336137570099945410102750618172026099593223906509702416384281800748756221632643025093174371548552748532213108911512718827532433547625441118988066347215519304651380976802510914854639472393972617949504546637294670302671526594005382021673746738248428977780771781056837428583452160224569808460247131285824305787407495656974222809689912312970378794659821226993869128935023130700644098655175482650078249931239860049584726593394375364762845891628008252058477664118465646919767829694760582462373299155793921903279709440184213424843897160945194362071586224775495356070924071172289774053165709319603993216395745841475809120674345684949644202156547296078286909872093817393609028337838124855160574750733295414297374205355912276276773567434325391233038269056260214977008943861691895326855258371719277562485100515406331341149282798583515381490200630778875217305571032756028455746930840718235539131611557214880896364922389575627870331659922375189085411438858010847828484623620094929649892066101241688105398703714551727064702815634267431771913686066924790299099956670066891232087911847563291478102601207748497205687526861733040937525832859957883939212601770175189596931806084552052547730392386459162171813976451037822613738814628137172954070521182387178208497611876327449081318867044771378883684994415871523825849892641156110926313921450784690589055518811633316674330248709595426257453138310132804075333085290581449208781392309312084261103086970035919738249972350807064380093878286628912711058100814965232607725518956371830960606315577742561739449623947686482256602413586334871193053420963701169581943076578222483620922601727678045207150523019020214696042794384185951089495983153459030863879093230261217388315702554062362121535125386261698647794322889801224448074732411494468246399070419469435680948825504949926961783609464454984205039327007767470104168141111591993144995815116263941902880033494538548160178480689942411585361371799387087038338142226106551232202865072376007151113760988849981826747904690032419162375497497724753096090018963710547665621532152644604463287177767694693178164732667547156395132367318481729678176154606488848847315997926093235965528954899755760550341497964050228428577626163240354520347722631059965766929370895354326334696238801521190689496214227770044817293260710192299277518509309012369149243468689953810870680887346513125394694693131799479843051212669338105148900747733417285164960172435762510978338072179064589221907776005837871105637573763287982717371797006678930528285216109295296066759116721849007419180320373323221411838556041979421569310842922572226524838628141938791208663184558105122695149291598062519391699058350640221542628114742001743922475151396133117768625808886423107728578097741766040662346196261939727787420241582781865016295551615629618504516229796544974926172389847602299614956118820696794735303507158984216868943517601937745301888145621938633234319448114203938962116016585948465013433159685221507552492565739505657718386539092002017574995283649815756960112270613084814706360735786553973045604301497946998359803187898838334253085217492377221088387900298222303076254798123237964630014501684917724293474632056673668429935448908851269412677218002931282087537530904190668505133058302959592323987563336368538085459499707036064811745943560077898869177884540547955831056463281829432723701464629827643868652642421265681126734208784464902041771835721403468950044227994677449910833806380070344212068234401632369698786115754829179946312724062080195773218684916401275370568937518350630970778592767448880179684744563539882348472491766512488706255626567940602039728687110671000738763305382549197967653842406980761884291752745036878423822030804295176590272003340139631885476245499200709093285355347987436726399653813505274044631936440934535390660922623835267861587251824379829671291659162173263452044418303100693221125386608331466812847400502564755703497967786762911714591286737438405194064585989209392519168406447751456417163753438453603728915557123249269640858232989335641377985832740660276079510429124987027982808683062917340820848028195011788613730723619640767763314827505321254496974104942195176176350404576904575384117753759727550723875587635989130413866780839612730345813407904137393250667182374816376266463914686486389558021356486172279571191497584420446119844977695221144387535230998058107742532972155302378852074346795979456036906158553597633855532429489419486975470231704751198564519415004277394774276265091752589123793785106155262172924457656341054824087357349091645732058108292677220742607268011574138480071915306561374201467111914347136267766794662983021861861354367911368396043128097928461540350842805753220840468175155733523291904519984324849105082169308294618687906596847102934078425333132531730761924745501652583758695301355780895867684060925019323798729673669088165265804841615911716032881955711598904382045357315733553429569897109227587179501816385678271222352225601302642380917402737835086344946146986208586260439778680459324363510510871402624918376437399496718932578153538438265788515928062952323640821682880568420608835398281566591253513779394099355379693592472101443549662919264844837156550497833799918946939446658061244761070177631590436756243554016287159194369447358021657948261159893236729533092647545690401920388431786564015496159549914844363404925918751667456443040359585548796207504057091997419246663810310938166843808146806083210760985679915185646963428438970145310750545865953728619596238445646755713286490163792215218735996581068226187773281437430156381114215273262403474543092347158451370081078718158517805347140050167180710152737327661432894151813877165215971743501298466544627133091270738807120438670710887644688184157703965657971135095635171531033532099689418921792145253581945607813033521617836591779543826042482096753131326041180238464190299041958267114168172040641049849431076096511181437312967599300490022083056067825001653579276627145282358922347222848824760586715235537455357465726256300263551211922443902046525968335407405308803487891012605972108730552210984031727260039060371402690924723793231373479866743179359612899804674614629485030100564406695867888119260896444438431311966677556620139599768401584020324660957095447379764991237620819222472774367969060296192202742730368353560437266282536783882228291249351738218398295081710382248197508610470333838180007145209987010729917495983059598192484622284086031094215527347053816767218395148249017315836523928590452585304175419933246662920634259611531635322576107596185246858550693893687816849460934424279088041113688348057248769626894017646961746289351357994055870887576029819291313389405088523197241240875216396171381267301426477588832875774480808656039250970652791821488745140566650583719654667242790817791846126277092152540998719851043781452968828015432840176073818076397233266207454017745923953902850438155521864873998224072747472132433824248343698620227255693844032673776418304026435656085827302917820904606993752064293813917199834514450435490643591841222096235821332416899980775714311691042073994828788172873345273741810796635141994494385643886605435340964062411367474749248203651072875637023490352234552569338517971350372355555699113597376997628626339477482135415901720043562487688242740511488426101063071291280564941471352582531298438156565928399288138429071264170278205319055410525328359012280749071828655171949702626566123520195000259710521018493305432384983203832448250750819987358728408053535069053398221227608068234377038009250513374428037917029183398794965062174192051796478574663957130420357197441627557693504898929308900919487451074797905141278416161854681568476438350936056884104030967223102209002501365685388378700095589891557000195970700909641825073172544819589611775409394420653141272119397395698187205392483121877954765761859689431897645990506595508938296634397218682474496392762733839957143650927556883668854998434871680351381232262808688521231408869051404547587961846141448223573872724782129535297967909521175396506162202480207293391017160265063538616851282126979506315170344110389475358791288391849568162798678427746385830645408226288133354598957019288916224575851026070504663119638493221172689940766892211067092011088212340869755590080944186880907041990144511454906583851745710715180943789556493698287339553433610073260056255670137661016956277002764785480764925267251832715550848442308594234999905488490839076387145932274594457222101647348112769636216797136773378853765610907254487712799803167435709913704345109962324065440006452034847450263944119891520848776001136233057357954799850407603687854168818624217833656566234280127003722718031232006286750856113508683277329340103604691809826353329804366797235974939311814045599015379927642002776070771875125023452145142506314165773836353189217347164203265260623330504516246194533933756839291827263758961059731757745183999696015347438575585703079916432270851051855204450039852215438872327742687356762609979996127807987809001490932479277170345183597117054678152821361123071766493760084246906982616951166654677464561844371201646374551788565487810531509505598207460938880654745673748889644530054225819680329480376386825365646368594976494731593477984235625680837616195827370847588213174605146829316489523962747210310463216276296796686613047429891776426433452053288000939737449250682964597712032499515104445540982022467261593114375174654097158809854654765446530385771974338802328045572469046128988973762494115544048393483446210227259323315618382573542171133009442861843031051285160916416007739839969803917382712814491151412456058871700530067015086072726338749343187146268428771387251901789348394053205298649221191581949229742713282524601253162804941331244360787095266423858458029746200611420268104650678285688501570580091089850811103420574943648370343742384182343556738448822922910623054698695099470052182985224471100738595221094905825595604498787520079912378049608679845206775182617838392247715125557600958487678098708649050529902088322016575339775075845154035506520226788408601640364559099066813199025769280063482240892394493803146354156082522908854087185269718733790180816406248473636011647734518615901020715687920290519259594211283227008059493755661774756634704668978317786078697870327106813865028557123332827917896735352714406424702401880763506524061459315835502016929300610317363200965410441508746228106091433099368459489473811401015229232087000353317850600958692854390896889665788569437041695516323770703802973731718814677358750719915285840167029674819607149192344240919573326851909318610126767196748263196064869718386169551839030180479352426530831323290630001002921287077247927461643857600030806754390560311894172030710538420712042328716927931857653645967222729700718574212146107781875296641124932473680365623080620708557742963576715766023410797590067357709758480047694465895057129707193177180402607140381726388041458698683443557596713562540342939351768048137471182647755651458001363134631199462851604784242124714181790481251746397569531897676910535825210835715757842754655265658003426318887976829320321642915704757760782689918937811632601723222143724310265964563274976283526712553629077238414834259501401931343689163583855970472270750556046757004421935783221767940757183508366000199467967952880462041056897995797094755131492582349325317594106004757239142035908334697731779450186856330134237239194094109978127872289507703828257983602495598932171451444008282812839962987686736189122032154066590764278453037705653164544898397001209149469166174116985800986366779219533536766775131904256074138587148975638009375047006564065801681210651760088585556213479867950607036375179913316517195022217745921628896009385814416480305680033923450894167396402660915457486201318825520976272641814877487877225495031197142550234023093313904825111167499492373975773131161958422453046746944164908605668930098703415237725213760389490713701181845211823470588329402427217710582196235945821635981033694006597736529238359955165105041613384599373265912996724129737987185021483744097357493837908424936461690523351725471789883620483526126842214264810122314560629561621797835031769336667572394219466126648739967973151758588537037415413812544992058999965381961868252178451284128890455252480142427464983502567176713438009255828760632257923056995485064212389584044136321829016797599136931470090900982461002166747245664460839104168973409522141588467950738681760551369220070273257564015650526813947748371404309727634369515654561975476451221573413541251748202377891784401993348009964047161156070951098752426284871914460522265886791644944897660741559055293331894169938918787035836615801133243291823377132536600106574495997497291481388923463322390301196837670909197066392943747569238547256095010409124638483428543492788013820801088559956902094413800442701365990480180853713596262221982889048595596617701795244207876271260043443644001033828951332666053057550366442804210391680516079936020692228489842051876024862593679946061051919656871302630763967310891784067418220491994723534672769699255446309025357490143297919814381035659085332309435873900555125062511264715811696147095184596985479744468649956687693497666758980331057656003937504402630329742870654567622612322376286727836167366788581653503973156534797291128639708103484819633946651560086282712337499004999335090528269084897871627083816060205559732249107418129903448934848959951251625643813303651697577227402873416607369200596907676449563856007859654348422826231798456888693813189824421164364551795770006258700483500361521775804971128861989870827499699700417936569430483675305154587652633325798458502748635104657890799068401040136826216158208758346985918829112661595161834478549202902877304903610658840539539132189607807989919594475483094070735389852532892521616939529709744091992475819220488774628119769883689170507011888477377331816392965130119005580964586579918438923726526729195472514944228011482539834398815338175152744510428675635912591375163062147539906960514469802636545760103277802580910135136331914888179355341353530204949643654148691569580844873406474755420964884775740847806506163840634197362619389836586868042986183948965665403402232142397661773506443747840995625650289441658048297558160420069366731554461327907244425188437855330073414465401308741807655604544025133096644440296130694540229915615006716924154660133896172474033238833320944159920151089125600278839104662857823646145680631027642525940572945402745807473723642701929835265952008837735692666268455130969703170798035855851047843574094374128009947091073889118089212573713547866082094063251181845339860322088809880854587019265070271313934829881784306310968730288789980385700543844058700319494049349438580780979907317655569530688041199037362618583135351914097116760882898088978385141015956413250326780552558026450384193552991344896795006559913848529201236353419977460321299710694615014111637407286123790667344763244274138029876739626804102160231421940165501815556153492605579359232465227067159199674451521102971926968139171820020231045313917397469537191418407240830618776497993488226313211378092742071330608750357269793316570060240033658153451666879099926950990016091302114184015696510014022407237100856452157258947166314402371423648526587799260154896847517514028543718125782067264434525903903008666814214810169824849916444818542425776833189139978430505473786812893390332997021456906083730479493161649617705292097945151848564670846642018624695289625045205713685742908620129394663274197945497983839302117096331416106087606072082459435297077480395318078326700645595852216823547136919654216948752265902065787648473744385516782356303335627697384862939188525800993504730281335617918428064377163003335584442612774410768336666607902393904435732140595261226788116187302865089329455880512899296528725932055334736471430733100896216728838147047624708338022016722944068945067862459609629951683300392421264218852456990539400553957882701789827681701642053750193594785864543775321746115888588741070846546698846348895454440702717704520990617890010208919745410299514533544537289212050969626340466603756904721057658108777091034053746643610978375925797334500362675930313997744260358538673795788474390950288751324186848246123796364522830305594484853317228348049224223754687781261045781438505973319952831554559714679292657581857562164567477578729338468300561953807912820294523750199187319567736149737106909749567994317916483425937220457708626273352836016095431632090490244081919490042143485655431352979200700577381178894647009231420068766230110989558328450497792040713841455279561133131735706089584313503375058589438133053900816083292570155709527691950092906554242175804089054359572128728506750077084292568504204741030380457851322001575955274217871533499405179023887145367082273753246454181164327139609571835552967524769376317115534323838460775051572300684691008306875946109500171457821795348309301333221549141489131908491994974065505815109551366425201032882314589401455952455787418164161184365314247503441805377360964990801428740903633159977837096239906819166225063165497140350920768705054513774011302491305642483598655333413158236040950578789182838955932112461888027375791957912239137074720757326001485239213341462522397523388004259193744752558261728084659178072294089738780701297251542633005368397155051126742834897237935792832280976676056095629434149763813208567552113264010275004333368238985318755434510725048120881019478517094660029233915949912598960134832356071048253574482092990465155990292655066776911956612791975140452077150618210083980634207742032294573436317830355201774729308943633896519822587226211013798784866660147857656806427928558331776921271334355802292411638736462996242123311635490757545202878446620680939397279977950430031108547522130020548155512516953213453751176565420703306564002417541786005361762474142201324246567818747555175223284258878481274729579448325544410808331328704651973909139731674390248357694288087940116633643000351498464842921282043230059156778442528601310952003344551848818876779026832521522393096456694038540498460839581136125082298015569274772198540455575209203372814136483498236744861550814696189783263345118856857404250420504133851514465298336693639062376993493388753179240874584628113221052638231218732902881287763773350608644788374746852708377738778637481411374945836875685444746958857655439299046480198169625518258762364059888752160362136730195768510884412514001950776165396093511995711947806324843660545639857132560407737735847016544600550775433933488358211260324304433390618647779905317052112982798575857317774215500206027189354038475946291918600432482416876561173984121492098721517142099021175924225053932718203828872818027860488142963887602039027159047150129216426367013292582055105089309983556552086485348417164755148121483392775846712523732526419707223393734281183130023606891447728843810323918386096633685253890054477703321966022518334335989515752015343349922080324972382606482221005822852187752620676130329742958034575877047717252545168179920775463777592932104259711009020421085583457241648633293329416295633405698268567784690061528900515450199524312887787732583879018707354224986304629347533509514936203834235102512987183863480249149187938862966865334433050998076384127726009662137819709436901845093732741490096891895690630183863739407688534887704142545141793299690729235620711750341321555987604415242120328781880204907862081292020456268209100791912004313462839674706984511107606282147912981291929066349336055128200288027728689745620816605356553971835566033831436006538162022463246884589384395516067492165231945840304309425583297372708584201660934707191825853575693879620561153971818882437982002550488288585426774664825421724635554441004165094699308074054481865166330100082780432887068404090042169685627882207824762502571917297299488436640677108418539688838111827257108705280160290828357555264234375695047041856244858308891290559926157569098619868601073259269576329088614627272198011408633184729813354096834709726634281672839726256597195834756730890020174994213001828103874282379501466849626558880265079831163065553281688155077191711678404348688097477513117751946206163061406988782017500270754682291146367429522432423121974957940061232561537225035717206483297709101239664147350676761818498522868204853142132131449538992083319869236058608029276862249070012342484391229044828107112652301842856429030190349255665016202231674080841461007922011909130164832855035468077328882682500957673598743150891362251545716337180682475931648648272216072865553173785321504750805437975672739788591986674896131218773490615948995170736240540845475400446317459916502805014191247931937880529330077538533087996977911489848702978046837413158214216510565269927245392425439807572176846021752734426645212246364181012213567021716785833433572331594924566871866646976618664657273686371523537244154224764166255601526930223727351363332023080278071897481396595010258934837543796561205194099846454768459125527353496185454162324027702857580740506351419672364543439792354816717103459892025427436490281239082797947207831125170646337211852937268877214981724798368741819361202429557273596282354530457131866270862082538156036874123387210170746904475451121109280427602656959286045493728122855605614673256609150741220122449669409548457153310856090744078133358443075276087461317756800024421395218435603138615902345251235794424814002476279317256738182873032379495202532181912168417081550950490640560322822979220896513114322459175987669413642468411980024462624615442334226780818880182496781576893778064710179438089905368234868703806602661010255672250618046542543335491573376770364193412601088753679024469621476981883868086591835220705972323400881701326332606121785299611856714346907607700093981257657691234308083818291439750661609624727666556764755951185063386731320598701195021420320592663845372948203505757820568191051696585440485528162764733299969313454737138002948650343413514573764668729158198312454098491774430489253600951598188517158534850176381046945568922648532717462832033549594245341799128983181941977281988175222432159822886939826624534343609071477459044115481920631641334961833233991278913412267548542363753811199439189609756903652801204347722989821348019833701934981319606299290673912484387888518443627417089939753941455927530082210338715515503056692787665925965031266020389460524374242304082442831314504233389282926969261313089110832902271316226951428655460501193164291391841829758850071292149849613464965009983028070550142817028136707471251953567934117793278421957537030590643496000042415526862804478081685388224620032309239994725870129181238584139607076853646330903103410836200635120128952688885382717723805328636221721972914556323302229395027628512088903789127001563980079521024055877850435301224751471344784418606006835595712460552426468550808012354541281147217753139597869202250047554908944066557969030813272209059395263877499908979042486738338864182035254069916659480004030510716814770917592447323168944503448530800521763948620228047445416560388734786003284220679252499438455860634875951589403046170061907152806304765984884010301759347656156096458346544248792831963838501698974739119318925151251630479053833953920846144127141023429020264673727964776932899953706075196520105306886844142485173989728377573387156034521166285831904479179570756720943303215942385406160835615196980988934413300792412498244992100525525723897557861685964025778624761849909397707822828202508555454512600789872730124022218728765223255896291033522610982244404333845617795032559127133603444118105344224468640675498825039757739767709850258769029268832683709591365433675216267304125535367133346184375734141733254693689653487121727477894315688489805708256437258225626773223689929778966986146166817037165279251152073160324760766802405557094009649741464090356536080159820294523982246546152046803809161164089370932780313818457519618376467974684465114869008574243839714461640467170309175554849334618910353366699220912991136165578192919593529363080213272536356305609432027417176633034333524248992073192648232504922347877786170036429089423788534631834005925640608753535107921975005802397718740393607383609838834036089474531299574395825434383437369462524245561765604729465390602960951421743977616305907766851885336227847093571803673383880097682138603660097067080471144197614081787372257781743469480302145178038218067144363320237133730126334263135201695259800507262192122830697131138492349756824644681948010781971199541263174842161242168987192459603029328977728882775727736523560767034146451965853733316942008979930368415080246955495542993287593383572623361044272061012177989598367052807100426224753941573687484124810154294031740534528923873533232933758753304347604692168212078769787499813018005797999886191005427766065240886901610282673682179287235353193723632417271962788667506612136687981161610202574802584303450510644960515871182094346271875686811908039030846221030004682786086051862047773796396645551539446767852407688172518793926420316931682403567157022768463915142729065352306610710714459238391914745895227150643376599015341523891401184963304125227679677502796599916315463820241520474815941660220724645391784019281114909175206544851476857450100690341755430281268456624465499585507886644291358112829262244918925923793877152906003485372846427662025125845033126059415111547780360019015541546249505913695310843042186154769142758998607361444604259205142938641871679131345676035509934633328350763449155235440674153760578624284880093362185688742403081010285409720819311307298417283206475766524937163733787284504818375769260479025714784747625415835592841231283128326508782590075722558930426451173981373748002207277038488639216813818859196952088991179018899099498852958754766368510519908602836439518924942126198117990820406252717411753312879622736365430833882870536111305082259523975450232581474341442819975769833428471506875337627468751637820084799482140052846826174197945171280722477350726351029035186278386076570782132122717743322726688767287461576881324124849456792760923310480041153977819910607645896353006623436360386796362268301466007963869654588824572216471358423409422072762144555030194599594519901076083379223755331489097795687857108851296411397523529574008807082740596681757336915755603317883336763254625058128316811415910015075163575503207364213702630552282014011591406742080367930857849059180352674858590056989956217891224210420075221876858344416797515696179293629140796533616567345575853113507197284897884770227750059506303752869064723767798845194177048020783644572789746059292673167760540464266138583168348041489682204099062205946364028343569601971680488567563496148224816976112378167547577962647869436094998955099194868154593249225793202220201921081637857827316026572873310203478663450540664451666810302323520503294061854226589498658790433335667943543497981808738269679570911095957324660856047082626665501905405091450351977167273737229817938916701412148083524124428620608024545671648049189787502586667935163824256564895361023612114404057535599920461356581707147262243093025901728813542528463608054122146982700539189639219428594981581191920771688829979139476901406843378544268700566010198331489502491614710501837270640996438698295946191608007488117469301451079277115713232422313601548209683901630258976419700397222957492578751260066752134270147980167018390941535114943493083598921151700435908428905324423032654837072678996472291410935706838405026588753669757417448886816318453209484366694008160281714132409477488724922948542479205520909118936815882681742177297404051077580877841523958055469324531528182873108639544711791484299226135111598482967813214849079166494719760103731053409355689514711789119046464624989634667733764483983903203537966984444979070348465946688581634765914252877396899194288475470918831254703932665017471652136527064070412822006298870104777519705770677271878341481666785799577022452655208567420189511968631539483905297061048605015171363981523453288313044400022800461823971714403629583450665293945408108815977351859667905439431404806695249095136379062546179719085300212024021948393723371993995313127740291811630074269084788759277946771389984386128826138142756677060186757676003209997055880163080169731479144778332850405878923392319194934079584879529749018196742043438972810305320193194306178328849656605860469026529035050102043418931867048496373689723259674406143841322385277543832537506520726526578464495521456925048388575119897239144860100532707603973638059750748838613355590955191737673432066746918789607814733282191405192718608796915544130050210405933721906414424405242876789867559741172521049434695459975887732363443722583501272072456159788235021716191710195659468424183927755552504853933405980755795044143377704161216513596852902088172095070733892334687996077107193775797117445989576107787555041190717478536550700155499513576903705597442423433456808162115031754775358075297137518839061254015066364433559720546296659523198422498618784463545516434873357081402418793975635360125932228744689333104472805819389210589307193309143303416030243879070845260909149192304332619603385225271903530276806072583107078920091691420847759868244150803717823176095342724481007442357056808627622221118772518650560728839845538436374618937785999427183880185986674339511162284866016681369118978128313561412991450526005754240800080974576693227112237691794724967972667401553728650273309863346708178822673130675817796050984024909098035216126473398486943941874022176413444707346696831900553869261111685915989003426353656425585157733824594748380240029681088792454066022144138787405212136843758881768139393477922747212308569473759453700855842719416516807461893571768931750769325417718939271219630080447732774264812597622290720709175640882775509137755605626320627080352877601542664362133825101948422799931484265818186031529369785108611354125692613609027075970565559480742591743823141385601839664967019615864763839484876319106496190884648772273346834610264326040787346328514736300424666707013395931202115457414663149599663351042660925171380393867563626094425876265186144828698046371232204369567245180976436390809356941488475545809376291309025359718354390118706939413016270252294273185000177979292388309349082942271447552046828678958309572142269517672474654675818693234010409729199685611217355796520627229139074464925011299260778039509524568380968583900879442371847084314916252067910422389359790402923996608114005055871367442024408430270849210665027593110137228854095746254715453410398493393328259104488206620414380859361578914266419425944054128930103369421387053459115980470148647447741799467430590176011120656471866334825243776149551185332409720845816707213916755910699905731351252154675138627376051882798130173805854560515569626040246529228161820971146457375932777358349073686374359648050579509690097420670048587634628507288116311459264109819654237739414459726791786294268085692883685648871248634651521944351319030886424205470413427356527394128968826499301402693336843005722832090739249505544826507893619030918511378144779968154135803130829830625421682906223235387852918901992842633743382917665283881715981466863414856447510009341971332199792759649785976871241465454083735234447352277183942198734065498193014178911275454373121318987812041618176255425366821850148556360164000095792466687675758268506528072710777691335516234944359340037668561478270416067066496001271414762180322868306099205469142188033644540625033340721433615836552923171641450356445710856816693763133122770504907685441240502324863069548236336770335981909524933754603601106639340426075193703205719014552028622989060057810546468791956373833720978745943925919953265077779019449703801870251310805919352406830264744580382027131034974057379780236098440771565356981909698324178097466549948791756686720489324012198977543321898003731639677504581134522341579435397948081871324293859052808963022697750801746635958212728042846026731329032984282876372647059480076229797462095706480396011448786549359753029857125882212610409552826028042429625815297795552185122195755957338238794811267399155323716404588899175302154652645569785624458859986041801714560499953138723129415127428126488412972720509485231133719428355177832883363297823026286108778138580686423461462520908116783268589180546492134640901967997931112519469248956270159805197258453458340686638144627088945807128999894890658728890213680025095257960892790027108277190289079717914846860582091888027556228712540788259816930025119313240695745242449692662933008276040910850745095902225433549551562515834171763434422547898617279440024705253633397785552449463492999854212841788368416006028273385841378661618962698252148721458962378326951434637742708137013673546090593538467358018359767916955346209510052142030793378333472512711912638975996621188092397604788605771179615305581793634974809745744068472270920957960231608067786695981978615934328595129699751572684217690762792677467197271054951291366309772966464749309874214498756061419849106707988964878516608567411329458322016311091372115723408208912538097237642029702084452900666022250057650367543128769662252457035361786847705906225031247663319503596016974286828058024403004390550518454404163461228529665940461494322769174862627909339011565007724483844550077617528336312194472928924222884185656112943349913358698695205129706286894519464848986762387550675325151781063665028012352758086566863557107515958743038241787620569744207296391235227913438579054228197275046203354689285327885302870530172158164307158689434569287019376425168598535150401303383957068696396735562293991535303499519115220547411117334586692317100965020676236118062886261166346492668363683477388815957279811344200598877465489231435442606647994213111629046290661720007283471437445602494496883608185592481267544588500654520188584974069593277601077622956840696931179056298208228980967565319261698017223999853956454391953773344541285669862028545741235116100395349879678131311842897247766997769595825479030840165788904964351059278085306779199582632570189300688878572087389876484672258215550687785982532825108773232839277143766681475088087671324060219650749354982922544195006682590446585701257512089952978774821933412499194465803117235139594243862845710105583141815177169406687972654863959192647279159114135353645089879975522820258557369904646105689785647551556326398273084608645888289580903635842910502088364887910511019619216342352346016231370450888681859087998027706389462959337532826603381900173216000603858369483388789864671952639750203761021758240336515975840367826143319927814515243052406310278484049589804847910544752068815892427732538325973071712570940788984935981515068267484019502487013050987840401497647014888952409312952984038597263146938991664202587894929062210395828428690184271354896693565757289184007402496441569368837968670829174165907762054821089697938859637186215605180008467657045805627357264148608643160057772063822389474816550310069195442938963055907613693070006972324347600648274917287290578675352712020850023262537669582786131153423026661107196055359485922683028420285954532575059783424848951028819745978116556070930554664629384084194697640248148735878725512878913196599046785451472281918738733932827839370126288800849987219243854216972343433568052271614868754710117129559221619372921174778087377416309737044351076000036948774159388759439538920091981546403048417164591454313871535447359331079868413435168140929270443294660411693090576495640016670928743632841320185186681658688856379007621384843699201651204947735582131220058147347384250012827619476714593012366636116627046229278597548445794108291637381391280524364083314709875680052327218301223616375118637094920151971372114456064184588733708180253474922488400133353620575303262656827630799042863909718823810649272609257216509093107029561801122239187031359173793271301475862450588371136879680554568210690410070482178995117504556127092223013754674213692240354398214746874908374823032016859366245758763795279473540066457659746892933420596514331338131989076057464763861509014583486013147485139254550598962680711483984312567501380477421403515761764490747172559400111480234458740138374023487094770097189136074503186094480697784367850983576424421222390277047140710349723014783030136071840779556799662433536191278107576912195037273947964755932841162033901986405347743851050116995007147894279143938396436998438311581897239673483193193332009687236134231127322390813986689013916695867307178946853953260097057995919435745939919682398777169656923191322952358012061552319814433639210667599699584339238756108817064613057371321646839536245998936283014741502345593392462203573440105183380272156302005319324710412093325180581805712752768539731134817881519560301036114069012669396257017931129827320099525710243683955789609357281262585213703008348691109415566753065071475306095558954402860860503763894513996461632338720936092522861587620899512378144365252612273514350915907932536110435145741126165898534490997270320531228856994885980790581948753146200460139346627428955252035445974172387953090102617648861862941422634251598898632357357389694180914197667723868104593315252150361947423479089130329784663292509727024089512980335558844999080897979954476967517479267155388595501420278519638387131485792253729276466715758519011021988108532798866692186949798823131309783252900762844191336137432807429571345028356067629805382159993924540189074932648830656947511505383215619824774158374802663644152313813109431341793765180164952358279661292487640073002726994256800496208277674136022091159984314273706650975874159114459744243020846207197216721533078953899198803674068242791020197382122247815455525121526538323884908653029016979987010493789654420623412691754705894398550632273629015805567229023169028213096737847696310758037005919902755381768493318462068064759066074256094189426729683367341490348583237654694824588864902690356527986208810854561261184027539506623862214259217370405878520030321772763208871763011615547132125048489715950226711424348467339602764018115129080010253463303533164593472891549765296161183644934203447702715303413893315419772398644189678938670927890171576033470263335966442762984648320456964893391068407090286971934517359458771087938350788745983304680637371923298671868190221284364636265273712692195284658601158365744967589796194861790119537169182132490639419907197017169915463578655836704471615751400733059176842046584787308451445696203848630342428952571736725181901922799653943838023535827703455823483646617099542921583738471691929493280906354819506126280278363225587435336239816957808232431234833993148427966961939749429707755586605428587089037901958980679476484966734589394815895393889707539958672608007547259979502878048631170710293816970423168928684710035073789037247085027139503752804001844789307313675714393266422804953868665463408445918479616539499092814794991772119440085708642865512608579827180168385757555851741555829700929855475936797601023281408658721479984802274388761507584388422382135506271613504294867408991938822494515108818712885937644480453619154896985485372848969426197612929928479379419871530756707255143124196126402899389476659148975967516399452654158453792674807125056373778811226957351559205907247251429267351252501445342193075093995745930479828108632934439831537776147856913881454785415376870088240050188343871136612363231283592172132004174302554705941018945278890618056300443428563632727358071075166299802287212957822569180251401185343046258100124462042103489221486970357464307745537029320637302302020596446925040114431847341947444605790627659355825188998943348572015306098738988797073049398411521862606061580236003054627659209107225778881714322986342482834906835350894195443623325897759545549156624318723829077580726788485664604638869934737222022178165205440632384230571181238731597974812905165150745853692883982611115835845470844180237570647667732976761612890512497690298131213337115067737602445904205388025218863948483617403389316381890611231653693203744570094093476067054973987181512863569387568820078391714391574666506653912565671226000625178205699292110790646108913176588915188514056859405980409373140192983695467153254160712841261650976092516772200556642047616222841116857216544884487900261619060660724186796839221342510737927043855441386203229542550303264338856408651455891638240845343647909655820282875396098604553414871937023381663336128350551593830520880123568000326619126673451006116519915777656488451410160044467439343297302114806660098668745020609263474569685191447506983428040722395815470887473716280690689693993071977717162817996665114641640233961975847239134002422176491880215168187769876229737383855436155299658131078323762974144016291181837572257640715339643985052742140303553113827932291930403287367362934046200567979607411465933746993569804431138014058088552614587179321615912708727264491460325108113794928576422683699214452704859540901140236360552215834166098232490608150544886428089635716789926591470204312870763804568999600845060681616799109855495538238527678756154005177423362783612809840932684134719015821611083439758488047192528092880104720966347198072211145465210680147825348600093142417713093957332507877403491381136242083313260575480994067237165152362531985648228829370342170065809534734840968404861721600998716849749756558282560072464228738235940988895308479130319589013547950023155919694401677291891809178497752360634801031329881516515627117594527272442042090268997492638027845249374477767256170166186263991547008058017498043921750748865078210031058792449810666114021835798142599240718414767369543917561286156093105922623614781473704462916244372471170376488407455083740333062591803599806415647265265214791859377515559915553596158759710712214932698128486764808995831446966854628669821139659259535417954218074917279376893611177625039563165166811873811945377734551630187487615385274932264426810129180313832883773324315796879974196333507146621770439655633281315060907370945594812222227764956273822964989094959527436050870296262233316988364514703427508009137900884485650549808404887348351312573792049467608983923731319230999111740556656217769158015673906164805712098021124818036976554092639834357099724034296503150940865420821674467013627605826111639321948558224388187245986975820695945541688462416732611019156203745054863042907946785883805782568901891225211128418082040878194304581258397048804625081947030309974260285346647844680992209382335702917358127268183334114530993669796701315548395857054945094052485087335122605940045297737104328828786594208890970843701988786643584421972293165649066380096268996895135948067814393672820306365628631974783230311900891094411645295596905539242239707118723437595900385975952436488833958731923246191811920077845228437292455148310558694512997284294072778680448240439461966173723498838190585651191873091033298540569446422850617269090937623593905864220573965894749698312894623610382108845045833905240561141135022663169894223270618640263075324394541012685192456496919760910077267196782003030647234747836085329871085526362154010838316017126636630319002679979359483111143548198934582394037706941295520599616497868309173261965066878962438518335678256621463470543316086995095053440836749366889897797670834834459677609886771969854750257934488699463018304521549368063607744511719131287632858975736950973451015617401724375215632945737947805157341661189234955378102809727282772940606409949808078357593544772276177563757546399759859054270938254737635380741075186039348868763206081037886417221025776465844830126463788287629933946209718558737442285298919263997924086218997473439950768611968283483140324314544085879353061072340999122226573698386579508700519705178961682761376193077895759727808455960088948553764893671966615039279559509056430909919861067859278314035495396142172085237749104395630128735473653601033083335063213546302564189984379898369162662795013889947944207877811608203188851033689928339801378631179734954423372518806521844035204869917076551656715141654993034581908281841946884161799509924672238772230477692277992294908578022946628233232412323065013746352066130402263801514841664384049600153694891260559061781664798013882659817055559502866943391153732961233372747788526017739933533270023595948738676979156649801007467628119252296827763263054500925029236361309832786954690537167814045029786507738659696130147701238802756376801653292967070892887429887770489297730355295396493689484220790901937010053515836040085202911133140603100173789758974989160960840252675365500004671281895282269417309644006824726796017884673806722506479321087145095170798292091140221791938745503717253991532236978122897216912140793845520317988915574728221523060399384812920699641124415984233092668611376428947374903965527629652164639750102941646908079033075767193148006207567970554021748405976677418719561952296851646329862782116368644293662131113295932499696334648376796469986328741511676135760845318592719333408894396758148864573139631093041981594279292015295139583991449507887522251585764091972753345293358512409244643065793575186294746708083436339673809182899236109889989429081110457855170231965914326193523771290290156981278993578271883731239479866221128120332259453625534990469341598855354542074165551960551973024090484821210569217133992960199972886804035950556745925322769910717019320067291227980691073148615910865664816250396384472094616145764468351078891331036326521379028714006996645529852974059205775886589533195316069497679520963401841475796403224054119569924749388259605202409384961148846037024080035416925061978570986332860421549844613183356550788104954105823964397288676699344087736344520385796360614772015470222515569910268161322420760423325569145719727965402727762443645586383927685902754727827015353990182732421486328189983234930637094997764144432525096332796831010089577629282182935842920230131295526042487730893506991430499825422984692437465978038275845691136583507481815859089592699028283508697467891232266622379148717250351078155221279605363583979067966296038704198315420883462589068745648436292678686325708247252928865700270996134904721823774260152152527213390698131879224276745098005752666650187259956946282781282102665123530840008953362051233919655797324892348677455444794029153188241985812145638392922386274953402425434891072362482164711355309216042193570567746806175934773770372188801790298019654668278137062336224013485489882781442301938113611545192598264244720535451348942864710475010886910606331520128490664507013815095941185870600471637708032374214074411994023047056076205579370390857624801318458658287576781245124780617283186764715035010363989616857031543183536280773867768982563676595469184276685633569055651296627319945568587323230127611990998028933009877780114754135178796248218986128825648085769347615884413331903243235038783974666819529637660863868084841220957322882106166035880986428225722944314806912513569099461198934418215528685292051837020195899785167591845785730853537438300805773894309857614243823836934428369489678926129645530613917086617810979091758635886234987584192700096600326765462865368125331005259456312288283585504245097954815256257487163754135259792589780088744226690388802085872997223358292945197464642014607911128995676587827029456518606641388854317605639664262220663417251808943427116028812678894005007646739855167464599058385653913366530372498980986533570283303101132806367105063497277250062626786355276460962790553080394799716756607670681454771540189338911436268202799730559963696562770818441643439497648335197324938522443084240214640678376173812313596717523663128253960166289260928048241314933013283560314562452612159582447933310222719867184873076665721418123785719996326732491369271104641865004715326726869060589773526536267557126797416700947937639130701045028659976351507264730841403709584747462142905154356470393662458286659350354178315672122117852813889174231561043987634189215889709119905170390768100470318765021137943790082502749364211174013403640830786980811119383530316464789402303709525628956410913037044682848219600506829778822246597607488456042106047768037418934370987637599786179816417582184192643134249289647868461069089939568596036352105246993066953480340052146411931691396892364103966983907503154460415029127053156968533552612395905048126629883272553007537540782524766560100725312202500896520334008685966093914136972278236984995595674196450211765158691921917968611590705063171475544586066960419089233058120639390365067295650780563527432853663691117710224590376650620239363318670147984695120110063553090891874170516231127590152791910740406681856655547131089622212430788392139970586171137130893740468757238922631212109070804141007638221084033558908516400826594437272659032983633346361096865021482285832736536486423347195266459712502803962471860833896101589128155790793731674618855972881319898798181451484487414153553792356391372022727085887230633585676001644101001441844955720612762015891772829364272309098166088716001419365762288497797724568655778131930643303547400521228488191770391348562805920238060794332805226365642935157847434561848095616757208584544194203177230074857140600868382276411178518820604638286135248168587304562789822997741049963758425134505558938173209493161194460299510113662677495485692277726714156581179376404404231360082882012830474266611531491273114976710587822615950665350595750656857517388245444164824894815417467954485669886904185967908443251044178707302486352150541408907403597776920998626404642291793384837069069486956129443826754675485296245748956410660582155292855960636554293723920533096461417006382524518260184089185155749414263290771451467814677603493040780963892444085033244005014241680127121832401804369360828349263552391194563959792774898348074256834681807523019504497240229937853121480168479796354270415486641627276970439121550675690641141393381679657497733708039296810400165342717741506879434518272965261314879234104688195444837019561782733829192009618169973111012333604453296492683777101910163478586511468799084653060069843422091301738320351324301462236250601191087640203206888587477586687890437860526815423440872549724097158187695881010676236209109120150001006316221509174207877744870007818860585124170652784388332693742773631806232082430117474015579476109624885441462214601198168842699677808437778021152323787739767082854884438744331934931732035970687548840617897790928133489803669259169576020425421910790045753890665399783188445610754989774029594513193433984991443853444945953675724929128015097427931846972853385481871447322253648417322663114016997875339213418262334082120223306047904322250787042043940673328170081619580785422057614611491678909177445790506452508983852865912406768980157837570456382524565612096346556977085069340313875953075359017852262401872655705897332470208212952015758120842506494473235259234383265431449609076013716545477046203486271652766231504111918106447501980431672627512965056428279845635669091673772805029399778131338157923208749026416205933229242786898754536213993109392047669380654856348726463681674623263817005950614505083971035479772685059491032889185774719198375085783400911438817560195974701404923178846814131174396902932969700041597674932349642278718164982818903165024722607922780878537522019432190161303044666633009216653262919695406915821182594265507153533416641931820804492670179577289491723352105836390647217167935194692062474175311299293485252198412701836526945964741920306917612808890027484388204651400948597604791100282402888588759695414497045302380446291420262437260482025523422718615090630220098863729453918696530499444981026032574266223176756672305853317555970558769327849052655756351237424037052060864222960089134898049289534304197113720211013916924680683675473504908703982012333079885858562675802783797075270431955897097496046963632091134544185748415928102519409881242005560011034479168901469743440579656288876021835618234191398858464009537357481954061516497882404738326761927961090240648134828847472494538614720390692708376137128524394236947657781538453672199798546948944947043944799286279046117050730276245235673247081614673967890859874781611904818680937396766132874714074240617522204091884892853899934027832394809308086575934927878277992852043925344284837940816973120751648478094999164906737240747560967846642511565529953889740045109634699585209429204297705270148266581063762771748451674172424135841239711687908261777098049229496075739551819777855084270269468150595819818150705502083281995474540271898871368354250284616448207455234865126369745325046840582251039728849378244799270989700500753620751800794829842942221063012098314166687589461250286295016465278002905960455574770368921435651725588835714424606417052415380253865561078883320191999048467029891666793760695882655563359484271333657477380281135969774721282201950734391222913050068502837632844599877191466764688139968052011837522259381635687271731835946265226084439841911421667835428169606931159188488059835719630010573848068587542250119911358614238967813475666633950422842479655867545492162839080351884697477339638255796489649555511496506608365256939680217856105708508686316597502529570551464348634208391287698286938289070837074846478090488778765462922916810823577115088408387738379533066454513378193706434266775924366090913993917414436909014664596604959867642843490741836934314923988178914119706512272752865982181531310871931536399697897531369781433523421153296183561294652266366462652939054750422147933840010589326618165475936488093782964628196213559795333897353703076021477289677062052187952725227071250363550285851828902784406320084588982365649615914499333705985271459104163377133498428067254341788907916148701199089237750069784790192585385040310954676198140938523250745650912800648975781211315158001681331168600245320225651703868332996458716709572693599426163158733118857155536144161758037576414976460449539673984611657445359578850790453714188925572889160281969372684467532975679302310115507487887783256100282380643144087815262743989777612288728841656512548332373874805462535669610705534939441096132997995115611334627806668938030430523274713509587088532502120905698859604448061352330155980691658215650541162581974379801234852636996602514071352435929412676258882423772993122801282227618262723327636534023451124628136026334347462861448448087368137616598991003071916973145511862216323118408276193345661614480658860670514266301366438914126236234489601885544858987373242070668389449221227577959175305101353891397909404922160036524996569357343933584011987416143107632955904497645829873844093266078424373236790960347893117971256879265458691099723616204894835612321787509113805477485893030816042886051570075488898755397859921363347533054144728588396074267068267360797102937625516800740703842444948530069807744532292999187007974933668716827784858733002152649883557039189880605875398305705542688990657638721507196241405480195544532337681624356900222165919117676359770173509584666008184301658042046067809335714765805886085611744290349855612265404231066313966341473796671927155053889375528473984937395845588017199528957862874770960839067734893416366663235747062317679996314953565452347363560833994219107315907287995544657512977754529637109361126968034389222730865180875826008017568559590612174442797415639677893854824691744459748647964460711042410973500254141868217558308494934941975135288125938026753738881561247720398576548575667997085205883478213060298239514408678543476598527932176110107107134898011031254839044410842242423585767721976521159443277357321624540387929440020085230077609793311773367104884668990224085312296756300168166683030338649182046581517536513679764524876019800409132146826110739126032563157991818556339034132285818253378720161500289237911498307431783661810353419283459426779008811493201970641347624115102663199741253186321670959358344033649949784650295701143036587448678208414592018675862216020696186840530672442075513923911171134299362730991754166733226700584591388636283986593248561682448581888005535436381999456607098960844045556699416670469499203603980690769570555928060946346357077023817406850749685661833104128752242795309367303844064162669794680111552650177185291440135753284309584117851714746448956250233312838170506753055030985441922151765598599428808807368800408192308834625156323452237203275716315715033161596123312139420648543903269869215236111479611576412852230878183057299337173048814554081075056577574795061646249244741695395968096852235547452382243563750033598957208444796096891241608762293923592259334161290871607613414354670841401550727664515372295226604131449867133879643843666464332532711215948840273376112066883769022098145603397132226798949966802783245879567828122658660680746785162917197997825390296187162452934116025946316105426857107934987167666919752630509840527114632353090338265869689685927738728872242761308349889622272969163424165077623972927515586227065144320041851282841596034054156419201386194729254340303063049498852025379523367502678402569010813082383750819887764222912906935817896470541359036530765983397612597091321971613720569071187517430831366063482019068826378561879469526372748286439956567573299090640447839204466453172952763639520950459591858898097088398670148973676403497909604568058358852706956427715789102394262403271889625766962821774404603129106849378498051738328194542834697524055274178826535011792649376752471069670224639020164603088009447248187487665801042393935913808668055452343454922842727658454652731154774508007026309191634632412812631604658679471132065766063024256381619875000162277883241824409617192050624082809888927245601220198599188213354016068531283449204429529173713168947950641272013305588524052842407235867418827183629969581004118386933517549121619873996696081556368006768589320696697861382791045811808295363957232063234515681511102523817643782909260017153635723400074941151575276387368234871679802767592264604893256186855035112705029070108757457557474395270074632356318669649554259681089464577763448562275140821218647817655256079043215633523330427076365398312565870138650013941477061123812067189168157499146834330186692796205121243959666362854968441369641992261828700030408571158261824121335363512794153969188091740291502443068351701298748372464291046367746980401487481399189418365011780886258397081278149432815332261038754761549450150725046074724093866382275311860900595802935936009953826477833768040225807036710205137049374663913876676548195577011126133296316318477576960163980003330649830776401954307594833650019886100429282040332662538560774577158272520795914046804441553919670140637791175769489499619619306204224260591415095089819386836393389799949575573540230510423656419422603729389275865447819714948279365063021344632489498643568988236855469758364916609808244466178342207078341465845182301922494140429690138871079528098564208515936176358220908223144636313861517795111186590016888601955028055795882214949514200572101121334721388169793097239304883280221188901358905474835426530598357183752496140860371737768221287734254195746602828126105090057167441377025536794162484820039543127112564334424969688586581348234951160106813024715370848120050214188548448974744000020481261778125594520487794491660525729209637256905039112395322404993959979849911272711984834296499805459439817874774116961784561781687393752730654245598184092132214273849329634936239757192644898490744238225234691064910683769597649324942823692103911337571390562825728305453152472494423249962748017695949510477259587122993505566582603478960096617910594256256262526638502514741128277606330819119329755488342155338050180603568853962835772060509455531274314530371918562672464761705196929774651031686254365488996281877804167690550732712219482001979473718222771967717547337530873711549150235324179115149645075244407572241098993290632329973444602783641837326164779541375918760189295154133868938459653126448890876932198263430833231770161537310592249450074853765043073019098709608184850884794624185161566441867013104149939486292783097908474344588438192139720923318796579732417137383709059708713935939676106740485541154537299844141896787228103665620070179949391102429198003441609137716943634673909902558836625508512383229191585494293614616202792724830536472285608105865588013436419635651855578413772479338957199903339486102503999888264243264744202421752358685192123380762887988157388810946573670950198918140257648758587136262034678781109433936384501878541905222047307725925259359836473045316724340051791713263463545927105318235753400576965154291764848737785657458918771842538143763779353397381709916644728609613754046475364384856657197626332966084267707744498821892099301913136945210377798103676359931065780794182828831981687020655364841303852723670251775510887864410829830746516117346036386987374851993526182650292275561217872433496780741306670359282669679055506411434498003634111398226740645149758920184821437791700739053394406143399709920736283271435178192321773630835707677070399818232272860456207322805754639093461120391049327719320055531168954963811771446912336379401263513310552567862187468036684324864859224585236678419716274000599523950621523285191337405882704138669301099245942564126108507164487752727910090691251003057962934368502886282128378328238659107865745449589400975580298427662030925163216396897370497130851682728281913368827163432204410019807215319617943054926926183725402918672328757425592323996744128250382474899065670960650708970875358264293834846043273556049360728716133020057247334439455631608242047800969734392796690144923508629233705544901936735626986629902639985127440675057203184951384025639518927182697408711192522624501166884433440017017288144643028750146121368835382674697800416152242138553987892782750850906374894045344891274801306670774653441500223780585636727023978131580594291852230121754221381077383533489743673963397350740585528792318299454035308751784395794180284803143590799384591562759705031769412174676035310718950264913670797876070697318165864135318580368115375780206344559456449264801154401108361936673204048259233171415555260144045444187567683484052956710718903137378628884957689982991684703199587765227072943512357902542473834822709746475322387570467120254111376609088189982114592613038157723794236448243688037307113483654590238758647854000364848219350165982077501910763629460689174146523796967593786849961383450406636421447088205924732487089361630643698941194238314692639248224499805828713863497446946503252197154701891611993849388808826624262408107791873428866758098000778305048457288602800531921410396225026241142893669465389997701720286529920652140875904176293386688536852429129755276682641763740312088380064506114831114006703940672327327538815654987055001058783789325432871556431641676809409692483249847622586140167373867149513769001962333806436530404107423006305709951358278108157806505437089742841955609488639148910476970936547641261531734821674501011627433829098566514905331357466916156070842794811861178817775489051825011800194058296398582493086609252571750331189373993592733032005585169986344808674006499661605370089987398800200737484501705686132173087286826261737158597620847896289078104670665863735473684895100201561819655853063592848305785392510558070349349885389108281050290225531033530200948032593197473604208882553254557579968016311181490144441983480438727810379233587364047803568820490517273696696766015963944158231804989549275599357473684345533864710257725692455765282069714182362610044152347039477782468671923538231277125526981560951034341066454287236555729649123761800992511966275704135544401346769479717740387194751774010584910386317318686815771840196219276851411834168000333130929745771332091389443321184487462645843647091574917187393138108019085671305580937259783595610907158647974136877360511949129261709355128829187967333998831601930539714579640247918302873261859818471135278892498856569780720696590340767086662149966665656226160787921010323607741827002507311443614650860796248689247431086834110858375023082062536453627618183431292374415910283472423940403567599392185883635260445271301260349772009143861395529428546834491963464999523916484514305929481953170696425734440809279626805192532122474583698167737690235217652164508706311033265849468482508241130254926621070454785016518293348881577201306341519019291697393290897597637213191792495404686701479119974367045204729855734919628822024535000837362915665865938925966556940179845625496431222907262398799337919081711441183986392306433807731084377487933494375343859643756787097834939408986616847098312252111330893262963312729516027145198523084327086751810341983404022893141091011452887581966630440094171713613504645132344007503111035824600697914907496136684434960484086589690944514037595322016614791738339025126186025220656913476425357638239424590578916779970168945153802238433564953590453458406513656132174005231773728809402779638630746145418120173721912690082485958864163509000752008189957207597098899150348416602398713887432819850845483114609116978407114520385396456070940251931281645695353921379488064312353899892806918613218336251514145049376332048412454489486268157272669848296693457666997817447358291390629725568461525722201827381591751881730845456237063813507063522212182033949931861076515954636035230906585091951804569578170536026869217695688092037398689959043496844004085134730840576543923693464387444926237438567549904226242895642336795196494685861216151856368060126550564086539014296356202740591813267081191346201283553456514052695093927739876240134981834229615463009648621336078242337365510267634916684888148912266227388203308396907105419224272146883060357215677880844896094229741038202144981111470681243322581654565056164170303953625309264532509048062009349049939226934126921920973253205804842526579105317858521932747386671341470210199999177585385252008356418073474773830461064443746691999909744576127449388827276105334300803731234181545513323735753328206819494115514976192039378051702207199557351551954849281598700032133227959963270443037041343706419821870192538298412556551448323878439017387606544023809305465212154570924727639940215242783096361604696513215512019609215746966458701221804281528209628768640832630898129785230966846557732261883741154392271148124918717401034399881723472003737397801988809914724100355203029635865028693084610761204876166317182933047162446873318599061691430041720402719458901169100128090136720346337931941578398212530721857342717274449618953242459797916223042499670397066668182147412850590442270764515171338944894210490309381185987888725393406042937948735002309307433294188367580287980469171771458920485244184452531974856732229391166667664575718051766223545488500765891299906364111926353125130286189614246168611957921336104208300164097502947163708906029004301219236086489148848147265920675607093339690277559197121290682620091094700319310409241039944527499253934025380478912468788913066294358708352711679077176677346781836875793551600458069900089405459541113625247863153760710315176428224706276254729907799440486978607964413926792236794024678588436061552038216146495815932209763357871050394032789366284853621271919840501210957380786617565332143305024373460189893141372999385328550730054305329158325731174153286759212221867075959604360309647542937683463144639487964246066989550527475517504615731190559857803598948927308877306673695402211887897154724227197552083282347082162990744324009533578447081976383021501200908682059403449519186061189655444602152026344048202168020442483140185329242251821702195072807837197780488964133407122457177509771378393412138721253787330979710765355499897086755932479449107469110688858245417943974874625464493041048999370402566260253191358473419673902677995351187412437723249245881883324705781609565600272854621691261970396644116739323236548007359802909777125492239975141320725820287570820046530371971388379927352425755884203850702432404228393624994937972449386284782872135985444944144499664781817313286257398299422471083334471089416284358665994586484112439335803748553311543634163790913206468098416620996318249840170007189770699453124224948813427379110241765884257450467970488062104653293090255317959792312566600805257771301210097102920191413671754021728745163427208790443008019211561851922370109247534114314174982251432329925325460798425542308091009604104906967086781761124820972551225897639179523202237068025045415913479601496589731588394896186106913400449806225299650952220864805953743624306681792329497488647088968021698267262700532019962148691029384204396894655790051236306162968842027326667678827315953882664009433701980966174580033708520035758766213096743999249191972372937891233095492859652568986553435031248436577217686071630639880788254242793156595138160246922578070443060445613756997198907789244055131495707636583146028079193003835291382842516391318355042896765344629170955790220538945522388577995855184485603830147410178181869532286223698038474818321254945885552032325720303579694977613747713400525771347763429581875853583118413108489472552638299664782025636937482023662850274789363093400161063914047302950005073481217451232566968775202065633327981061435758922414588994281569340708095418196190065515808045214349370061667152594991046637448252317950849332138486772422783586322575230863559941368846088554425040658649537329038209781670645974722630793463360283709781686410191089319160492629365070779473511715281394754967842639937379711803315378047871452962620287958959384600596837619996229339141047493700669219803124227532477258573526315408696399701998540046582741646771065202206078181961678790715746878331098835341620509350605837869751835985006066799448342047784174148094641850714375255030769456693097864647006873337307120482725540907161667842835722977281340927882889277724764141860650525677969893988027417860996183202276836886673189998377476183490394870522711601674454775956249212411313316373920421959186844485901104569473748274312943671836142401776134980027758941022957987613574529668651113296402255796306721877269646369701549519577118468048350370988850757784724017632981739197955422763888085273501312150472183759579800029919500982597821733099171912996936682502413048453248406243922428520082675838172147460058643537051043283985678393914393233744011949366410093869736697223470504169565848372685552741551989360927090701363342148433647364500865185677828195455870398911329138009362021855876529886518383594550957332594250767204641362952055838517527205332901593056569427728144844113903225673511331954325147244971819367139774384522807969579484983279562992670135181840293366893329970623268593407787259231179817162501276878227029447405806000504580483853191144399288358302142646227318864579526402318371153659206262700984462113893028186620879553887530203455848308259787091184123084618372434290431838264608235011542493458286923102165338468527869963486683217626865175223498388656723940488996826666819226228546718560684953653209455059641593858325917009614131235474417850299348318094684243033112754875649378263616656649197836713883365810387321365576165227798378591140932440177303997399527086832504543333080496461112945207115437294826579804835308316853517604311408765684396476842473507615346672455677463839252287785018932858642776504217444173330524744756070754617965941842606775829720904808569255811618110338943842516783563064133977183473071844559126857157494431425967990691506189005552283974981410322148864126137116482794373654211574081855382402801091718597258009571080187048386707253848513784140985694647488000472598348620731470684542496021833945912618677515915469820061815389186793414678212262513452925062943272933644235579236967639647015237064115686499150444904013239882145212518499014439946798434073599489188103104648545233181971128923944011214575155111609521174324511176998826956276743719670353576560844784490741969612425534178000804327728610739940684549041226417537046473810882350874607034700214428170891916008640214153188622506042451582831601650420938923745639373952964417716292518275436094302574630836475164819728605501920870735294511248605069351342995437892935719840416929483657891846283159076177346479974394534842867574135707361104203022590662291161937393354876579878614207916667495089877438873449016724647963311156035258538757278052380432470548046892378209824407008165649590273238931989623077629166940236908682292592615807441172309817538753285989956996734898380745737365831051311253977424220886405012161641287113577616737198653990206912540928789168734200963287687139872626197343363620470462387180722609007614998851738528898449249610877287037848376966844493944334060323761149664421452784100017981719970334743310985398333866117270926570696749973997663354829891364283701465361643359690145375029530741722185664399234436899322710446361979145941387650538580122157706962150671826954051712532872485212037423705371173959373338165668402647985977602552728361295574453781637036145830859275285970887136711653161574921899253573533691154867597880122403927887998672538070714692401480886823775486150960996790572605993353631371040248310056104998395626980392673762570246140542844183562124561738954243912664945860341379691035895800533590340888696647737904322618062282932769179178890557201497637146198210818270753169694295885909356660661978704733372284651087950159622507074851596975492329359547412952929205969986465003169576543198915939180678350518133964715722675915947880129313842316095950086833671127123797463377463743510277787283043745646828651043319163821774575383389318900726958074042252105727085708091581276708264952572409737098167760085656805931071595450502806525644193143033901703231037601875785330011819257105391637871696153149089495585501943258564595612214043575778407121771764345939146793003170322678060448034983591984954179807114604946742882313563899500768028268656934971545838080444319746248222515792008717667735744057048622544377480968171179662657328383318388079162006202993384475552212985098142849836644419866530904865179186496492491618670808543769705337628977096745004740265507244170781170533724096643597120973338730415359222893756422880969816281537212921693776958467292846988700186535909802245308181420135052372796695599837336771290854011605905459304730242457575485781318229313247001816992589488517820575625735182311621752416830677641193282256654096278418076592730404286728642963247137342399837277023184840295282838637520844304543372036369737045278885155086783617032876812241598928725315162344244221632201732393270467404236570512308689671291557528029089662386559651024753264499343187154987136521994950382988067976814053489124628309249774634573575848029490884907170538819006972282537269764491956625175651141857730170402181656496147947349855016558017614788318415188903035557881329030965413174076611634962099799081952657249522280315167817036178739807583720328809271036925815673514041147696681356481744837169182568898680633504722424784187407562203070687210692450488838823766244701221610376162319495496340355952317642581915932138833892309150934995522090431775244895270791813280077191625890380489212357275663389347458422948767375538593362013141292146615380946208548918515191584922206825622882685298088898502063098369028218339148561215918528934461244174857298754754005503343807762827533324413592027032338497866776601209901748576621657995491978657299599757305506393930173997376033125667792385078200655354056220061339404123960740598660957278696287737756978190112776752049953632661214162134187210556265649332228714767865214374225099128574433847490208171149803054016892539425755131903034093465357842703202464198608331499254045199831914407864717775131844640270977038725219422064542820495504591002152609187897267775681022419350295856769815511590415618341372268151122554209270196991245250422368240002562947387364185929382218872685482239636587845136305513261851773072720428000065212808984648685223611285904205103183277897169187376093714251094807781890963160725328026462001252217031935512388962264656994301706821822674659149979244697088921687711971805833902756546217037635871038050167174824297890411749580530289671315351734224835356795350800472386083741355217584721315440834816288587937174822293743063724444277405875033004182503285523935869478657546060640569156659908310480877541690407423747179144940815468603163764187808339399769704209925548683279781057943640681607592642740160098819658343221238855093787730870314660235373454611694532310826811559196922426173036989670401532291940698798164049428790878480843434444468635158676380476036111012294808192582242660924896662331269551694385036178218676245440155148644985070471986829619165342908757408676906146142719301606308357884973961445917871211749218346732278433877425940578922171628775752640781197793685821170446790330771199448251254878286876458545745655694358323051937162885299067063139163220990115811070951312025576058386479851734589293097302738889997493333049023001762202022303667865791177609156744943939338397266313893301483018143775271506489981728544467860813876449951103934871096053191159252511846406634500466917723483020369643809787695866447885750330753065347044623175349420339094627696147661538023600965930008742068282997608091508103693180866496167790648330229040196946242692747485825399149987973494861289444681357155392679561392027312868306733223134978310252724149448283280093884781646000029804923359714786618897239249363143765340400231723019640918257439179024996834067217853036817626498415222858983295538545313719549874167495530650691719054129227192156144613423482661503018547097180596425086153007969617248942354865454662863076842407250097024047551190502935308443424024588449766758665831376591876871431202947975815462857280610035874842485299518301493611142506232350809739294907594961061537428951049074603443509374513691420107867838715079489976828380550270222015633351609427676652788174486819317791756217851790744547605793847949922148057737162636467556528340025804964112104865514085145272880763042512358270335734119942772294979702647728116556753853238683475295226945077859039084390139524568751917709032809769669509500141364498325179985241419191974754768344066815409154071013746997971367012020095721365238581483083362923178773035441737091971719380401844215282012442657765468535643116321265557007937079213880953932276277332394708466096174356078851972301568321638262962284519594003296666533333987514959149103795841004358529124170371449880374953865881162174438651472354070091454257044782771943916049539883256630497340563191544825457916440277279002062810002697653600151025058599158791843974983748303865490599662315912281875878627294406707896691508960004507477060842771106620620630685352309985350655695637480905154108860896086168365014801721893485992657127877766438903441590592352877428840867770702128653531585582172192718052525436259442213903863331657819466654133998386893608464740502347221976384518192061674815292344188159720189845897097601122879243959733829849218546355106607360875673726077286550485014402108279713530092313566672068024832508117635714707190464627776149301635807799036901514513530747402992224279183693959150911882229516639641266118185915931636872082902994789874264365186785350240293545008888483376746778408078149927663599624291582667389062420626267123584439064121796854935877002301157519293170425404842106437929871812539829205059148106648614379436865348120310708954162036511250161397996173617563288158065484493299173866491621257709292685898889291457160465959946386628922079582605950030433654013638587834142950556513545175458713834751625989158765032262689894448203242085491021601429161688940721127861022937327586397586331101066012267220257397672878503336145465328280507874061555109329475945001208738834542854586204645577398704988208130489478713521578389744466011480866882068565903041716491019235804352271284377977493987924395833867556361498048395074829491290450254920270962982455517352732689131135159977606091876391516121225981701673111237842282483339211506113560747409742701448214638104390426460058682566413739436333350816416567344162469496492012440425090905976621307411153844734990226369972132846727875975416112060983779787705877595763134586340886501820588768675994484013679129354468076550747057133581139152665094995454859270551483166618651256540651470443971175398089919204750830791704243264996584071135891489171024374882489628760549904397082932430599059496741044474846886342109723780098772640751049702711399049317581272896409236424807338488648248526164598999222944110097632336006218833682602868480877136297903059904529824737719395035847731886197528639463406395270072415733668073066002317183664281737039250719892223807655152365927198631676135049442261438914985325054572776131852434637874712270608324049752135048045869383594729110050583509420404427991756386320126665348005779101187678406000703720768234003330292738669556653710606509611881250402770717835676185189161115007039258408396648757052388631980329753400411856243734502442044549207270776574615036992678116355605018954245238104267996506548190380056645297562026252757332273715954942335446146395977097239814566264623465060722628443347394373215256867577242959104301321885551942125811521429932059256338658915920766549877435395381046818139964242774622944303432266156795535350511959021007752524036659968410913249412475636796635414208650039507410485302091511856880041434687630293765683867439984991369190424366947381259190047279299154453810656657749882141628122096521933033523456297142038039285831085582686031457133013283743410295647622855940760436013663394867881897565246927356033814618606889738575284086729707253991539044890353210104676125763925767082813141109927482045700265713072446438907656069432322036675226022866923941573969807208134921647507579556683852947239773509987519611899071473208439213990989378968762022889604787780227561118895679761838093956637161499753506523094257675447545049771089859514335994931652277455982946270411790264515636491524985250558807667976871650145659550787642001217563596668591776181601828046779032668514432552021753249825979105894920338201588212139844982923223959949625500922106052496320533157789969353016044793628661250445132182203021274185148049104452802701226997130574498749405435955794162742312510398307577773802979967160633211080513690554778553433390629881962844800852524398336333153353746949434024754946863854379493058487149236481764349573413085976002898165431531734185387571921284834125650494883704285834322188822850679959395558029341374370058281823116788107876064061709725054425496014938689452052908283711907401665436774624161823461280789138159379252625458507554933771789440982615591641975169404035645373228486078593674825153779308578098980035597869815426284820504255212129963581457889123228314364457427302654947616588647612939708117443024016224679093552886447882341246362864668566125933806961329941326208088631365477468782172300998755601510290374348532291400991476015683128672557830589711694842917936419221712827709704416343491845604532672541226413040722699025112350219771138992583342089784218955977138393105697908660738347021156747828634132992855238590105285390819340440109122048303219836422460871194202260969894843020576483261098825803828471477471921028760639988405957976478837212758335476100367311611588556179714385950472346109098403411797322178476492233595989955146759254961458018316836234313656366409003231877326574776457305021259954039371378660185952175983370076490211791992628804824825554661046566562137766555779824696429927610525992158639197904112699391021478283343068489010339332086822178932928680858523645008334661898268736763617177372392970686827687688988209018837100529572020051493762768493193285902014281676472750407879706041247693694490614787835268420216763493323256987283937460667566106548669145033728919644492252629394919676447345390999355246607164262369942838468234110863537225116561332183143687149883979723040324644055726715875003356390924792124153249607018200527179734080235367527771810147195269953374832986477435274710824308934297691180288910578642062470101826307900274931282537953028142392255988659553887198469394707576056907911989460727717977754288977956094159139802169285828071032885074915130861177576223463655151271898762661665371433480799052389158254566820787863975552154370269131107277249343544558701126600477018890166561278263381528808007651102826291472306095129003099601004925193951199103303440886790906294081509080397745317273947279814195586968328407225331879591780483210342865765575965683866437202119739984766301788978603749116982374069607626371290285958064573058211557141347970952106264196724607951589415136347604353016994250875033958980641097189744461460162923941275755398520145917838151304226147513045617590028447676770773861812504337004904994678969454823353204991249733043225888890659390934082146575996148778693611753347321649541333669732357797768486554356374529738449387361622437013226468899843494050052539536981147613315756621924335022065002177654999027046510542262901593750941281299157291964742479559714607745839266903739588163884418131197885429616996469216594572743178254132101363270389074867304958337016827020590217877981890511579799351717271200988865997456631545545505670965705881002476015042971815940701853401687994904540837209464293025792302027020718279094631200777229973379447875586749970383026714026183289545141490222353870733552477716658587973449731072326435911854710029242434990869992670340615372985073838067699584613039091050770999854056896844378722125742118557937804390113370215073602694057054197165113654535806574015602858458740919573934110732144161126145258449771437310974926525059336277262119894431650377963687853714936917678861085951348381368328190299078831218318324124051606834691153599125584477054101360060320897310541235961242369458024236206720174738938332303005213641048094391709510394833004776367643286434275909511246997812926443446013922292271957425927466395844114202090649912198889497900992247120126147739719961981793845820972386078525245561716658268137506518191623383267558018211409210757091149217583724363908814957155637854370262371978934051244974810480671918006694265878843020163298425401384481195969863542249071141927715622367056377618094150743099115542409582595359486247511691669564448422900571456695947097652530821662074930633345776727363746230630139819750909678261843096973314886157407125250406458801861192375982984360004387174619607643624490188039247012385256789183705059837986948548581974865852952941211391283581434400654784187367574643715916458487848936246597662420358028873094199828368804668249313489843567189669662401566610653398222021299938317612427061997441300151800950460040566625147975892905711271669383175830011426856550783969723194672859832569827094261637116418152503234883390180645292379049985047875147326845215642335794621933615065689142491751000650372649867120626536167178827061853334021137071301338108050080224298536643719810397749750930795009532596542440057040012157618144007671356996033706693627117738881364477166158358034788660242826511449486582285548909527611177008263300898016504616602770347071670309759921172448335301516504059925727997370418053417971794587842289048415305811750193231414458562954483412452798155115950569476595856171468424259916389227562577959964426504405613030617741281179893306431721127020277967550981579006201908181538765491916363569866228738147685331399637861367244326701854997313078502594599318368284169191834805972929999622079682174653988514337978869624792701037484059781987234271752148073701925286775177947000016295525257004360475333529781618829841239500817302897854089903062474060624980695278675540938999462820449055877837402190820717085396225050814710152656874348753011113388417472399316401634782591058134806488857139069199659549371109466039919911030004390662739106973985478460572027878050936301489138735246208013021554678613258724635222067050583635317371796656534732604971573239802082754641755413510141845116499549611807613051846277956588442300282971116313926332509291890065619453532728687512053260483546484892360166628014898805508498157040165351419560686621672721506473562196425596921737863007991993303335171561211652679915098755972821396883701090639330374457881249894413389508607955610688803123824041700866322599766290292139229359543575003209568123159280741393123227989806885969209184468237123007293550481817422836478313406824416013009216302773939811317900230393159112243524778822565872576873812918665545115153524435137315835203025804842796007242180691103817469128031963469334269431473783943023017486415142516056679093281581328431504012422156212561102324199778868912203001128168662965472496360757311684663749833018924107246816927355820688622144938976987823474473214702420299401691060521547375607808731492508626474608022236529592186119635599751566470548897786619931137878117094634809900427825648526054487940412769088005666092460267157449475908901400430735248063832513603326431011313618916427190948581862440819098711213707362642597934545595037873575197029171715307872924312180237773407035423271425567740125824002223973728868121569610593635313992818989573576492364439551109368767953767472324212274082894145873224330724137146755164293064239702110402415406435065799580070333275061969722255121261194272335177695892230705611501138542872827980954686404946990541373497486968573819286630175351878703723268460327793167598077720051208010686489796529640583956341361063850325509738897479403896385787206942967049920946161282490373289143765020013189688956966434735334216017542308099826871437528006710136734122232607880208839448785225267807058585342749727667509682457272254065984459144449954266650980287459017886212047014865519153251182480115453762921399362246046186812075983395531580477349054641836998101482184585910076649330340320616239698541482713088295235724393975845131499445053382820341285933381303618475112573849912889116879466349707817396295592789723487085416501085894585597548189286539484241327863158186066066522627095145093094737733770357394955795913899028082559323394078471417396710409457242464846974311476031173368983392215616147904077210184810296322668307039005063797821162369101778243004712547414680944288708050784699864596756200559673462869063783294383345674879107607359347713202522825321016157779243281766181320121973912543701442371370892521725792942312762058464556339769449446063322629236828478616519808529739271664904500441020244713405378436695506606525795996177726482249167135320599402198176704265378611871601168128324108375352481106889000150883718040351000609404424991676894883705895366036808300553630814159901159253155473675048832183603900084277216384686765908372262990622710456982546961803536729550868325225894882197344900323158156986127985757087703874803329264242421429966738802397146658849461990879998338052490535558195018524555562485891791408967114610042182053582090757644581839698798355463521812523752718483825508700750814945914816409240537322454687625186581052186241189374706145530698404313705026340889504826059330620190510543618281325713938267752118900303723127592184929980677382981521001882551750872478742675434254017965597432000163656685951810580963720420498778485634326278656514465084485500877317566321180675506957991767423990935482576686276116138553182044148662065392217023840711578393143732006056917299452077307481635603407557929001658025566518126089837961339663271110267886022204612365537350949642193425062994253828850461076595894291231539928181028847639738396741202796972798064217365084798787875660841022550177537397972756643755924824254413891829335854845639545554318965356324978479025305765249148627266718629089609026591451463460306839931826635231417859072113032631314985767920622981276734977827274154624943294369361086929511736874392074757599878314422958535106918247963922628265186946195001643555006671302999985294250142393232905480823729044805111697867969080082310588521749905573182283252074323423385864399638339919018483924848941538310277004139392418046430822096461922532820054108335562232426875245627859776283133651461474344931410805660992753106919860548491454727391448084288315879677562161739059332024327104127774262298439113171414813417611406667617293260753304993883237176411790586177147405352164781106234891540903418223979695720219220658674545969269100629728058627114809966833450196431879136723228338557174641691723269399419496155071409842993235214951418046431058772509149946692810676337364694720403230909096744600623671732742220476379835765366116564374222149837087349161530761518477133336999045099428823114859926235225483264771494849703425762228536881349520926288457559424328991070498419816196290563698994464397210177763508679937932367271985153330547895364844657186073431859454668805435853430532649472302431873091729522946831106725859799431491715434146585373571241614657223140857513103094819086571558709063485944525279714069740314368551863544961472941147327621597296418034693314053888567540141508775417507515902255261018015658197759137757691417750450928808608289195500936807596098412131684988545387613677215571078105608582154070386444130128062056488160890006838046299617634907229575664805391330456073847069580629743844587722268112184495509452967004559371129960933647307882338780755909568113298452060095183503827115790737549399838911429730021826927079703371960939643154886952636429589974766898344366560851886842196771362919723041983642406408114027205834888574643190310591099558793458711807351393188501023489909428468080361353634584902130343048270234961117492779277780623890750600975548314252134384626244068392243458477330841362124814089541200702702938772963111644040111117016449406765679443050455561424616098250303071131346219647961930612365098140535558985338552707990998136098791221107397027594499333804201902841734501259109509956223696200647860416158022755854395060396689997473749160816174895870989583470551332778652887762388477963572751281260216916892049312447262178445064168558640707690615111456639605810248672588304994921814187094703569277638251660011921348376337492264944160356955577753126557967842473981647888435436369253425276288193148820641220055253866328688898141615444263444545545849777719624252089185381630847867929233547325258877697341302602862405263490647473294507041630900528328632309636674511349328311737620595406488090474934514839888732547929247761696772244796604654206089350199318165146552604005999242673126573287060428609801217022942384140876883727383670909436470400297368591708786945328538253972566741384031956778602529429696339460107863419280602625631895389041171776316677424218204173841835138623377163312098333193617665836958970195759323168319690853263337313683111674145451315151115791277410639977123645688414510598216828972210386428006796185798913240094464971964774457802159491475760955145148475132735316093264602601825704130606580485242405319833017400269444174482973365383766654148552346629464673725972525698783582094422273039983595484394095642156645771245789997904422076243219582393209463373111922327935652511221253535368891044405636487254967432569808716404078196734661911059616886333825630776833011905826312384400817175195003533224705446874300201776275989509998760614384570191259708981434650578188141767568768107379968325216299832382138975519942569196196277628148489472966773644155926077145662830494511918177772622649221620374675260473114402305707445906225780370111274567758153155552981410729757275074798762187612681954689982020530269870525828261368157991848598134815808696027109181815658823585993659246638625827359627782100345547535563123989101655852024681911219230110606449869346123740229872900602296749212169396729624782957837265561475248054685051701376277495400758509191591781527801104221536045646861858563275327146954416400500417873824510003413440646987276163115960227411421129456739886416570659813131444577010084614332268210640204856116457946553763008626421453155971281388010432266205268557073512986659124144722285246975854650087761846128813277264403494759915994563848966976204437654303613694826798535193581095546531985677865618752698036239837359183689908838343211058153630874832757608181030194546997506994575141087121954580517455971082498902397983087662564165035386576990547580382495608701153272414134798765269121023338832973742945393189291003293697915760450819148315077752394600632217412765103980132438537989779018610872986711324359389163002026666499993417597920303424140984599898193235766919613342864990393059851946818199604283459469917777880084428394248011599681508133555866425380459411973361694659037402690547830941926902781356557113120117238168557783142181911325163206880179152309468423778113332332477003831742989703349808480586285653261309389804536289296850049322946094084578081474471442233680507076142475703116371181052070370767954974889209935679132440023591064175385497792689323841380550496690275070487829439912841433198343419205223702347072949236543402447946291087642792353103743926676151433431668179525694496331935798976976695579852387233613747793086549008332504425407511084660153735682683729209589159532227160420369437087436256477684325312419808126173897751244529148987025873005751201247827641854846708674047426110099029932129354697089002055529404424669245506493405918842262718428129267888858187107593099640363948389574058832255961412123563714214015621556402153712546530981064096394090116386682724368758185837490308085177629977290085151692497189960284647961458415986494960053308320476794701840131089283486120801317314192879113966016295819018948242264942333667815416540788718124356575384337794037230564971749384377773317361154997330965333050335286250586857077465109764594630443882268229081273025827219178074090702953303819228162718539279232524219589865144720995879392808541639552139139823923988912168006860193867780841829879985131247520891702654799362503081288123870045357852156702407724812123400850589435175008591077613240074776277695568553609923164169474997147347460929024130556012914999319526999186243057475287317489016971721930047557527517103157641703100299268413149700201997419827091071111675537631042459092902932676670399689323986939187360762248826758117148825699752809006648924500947583712215709470382220332896516751406690407686932850770914116614148578746730847043082191233960590737989828189399328507144731308141065632619839243418187438344400224256835722119976742606346014809103772648300634654521093180791108681713099431418334027585890291960401242409609187277586448579578350590344964935337762186816220128507938220702902952846793858914081997918097311130208565443507735816064206519429240029523624863035253906352406403595002071254105353203810724264415787775085741003931267474102277447621371113389760034099139030080883922335255703713171231056749675603605168192704073406294137319395590468299489298942988991118480681398563570142222358729578641287553049805628236822421848086129023954916613299781310821726368970016311779591206276125309649047004337823326177921359935604228693382277885112375140318437136162281424912858206984511972983239065646777973671897969944562458091412665815268914236526994639495089193592340415337355587199554471269230342064917079160592054508823323906201591984186497384870141399581511010346364184642058790719410539970221932830966983950941383298409131938191530326465400656417832555503318572360465570501940341613209517132715178030453845595457102248040818028713492395837377834582572805988102793248972418903558958798296144741526544590333732365853443864377588768938643658697085748799642875776478509212542002181702480579414368379682909944263260178496881449493032816113456399017205552933494556802102067951726452855740510963639142624013391368386593701920452354340251252201669465705340980903056797623752303406137959812131256927382722039565143678028519085205861245388550109216956608462580222019608795347831965664938651488471571584147101131042498912309195388534987414602141929023199207537171982732636163934769853157078025883120050937250557535422278358167677932251255915286000097821956178683842315056049430553310091767078734474753868557240615200679227586340403911829518837453048573815251319823081920463930636408027219627899365614778868724583885229310927869129971333217126783252343009725086524321983147998367383985613982114800645047038683288052213705173212200011859936510665150889079868851185573109784060992550055407099389967365600159970089919554266036210473146792348548286767339853833014625113775405076943798726193853623989170082025163397126957958367045704222304528143859541182325450473574078119159481064198244386621899979360742489146562709465315792501702331258529940379319337540617971551151203938488727954230900300494258327182182463441698281911775614282134232459789108938483680867684749045630647191768139869234059337420529320813625689986582337253503186531260085309098121931833498672174087680495326440529545372273100754798435733706945689982758644576447113603775247118250243271591908638328492113180647412136842322420952771601332868019755145297284731379523398930654920662034885246760142532343397373714223131528653826821409221674969852263215302023589363998733073044377509750665780192626090329884402919005164977277169277741123304037494464257875784914295413588399786308999018670256534478645212537640913227104323733650385839449596340007680214580239376794353927587840730534585497151809983205558988734165427100500937445990784387924401712591328976917682485909555244039073661056539345820595042211095777598711576562217003350864561406283133009090264904202580193055844141016502906621005050144606253836174685848346070387080525049829008496343046395056237111018009679201991615874816055789818560646924216631855191140693354530555039897151594388438609764441201371691198712708250819026135055515455989282599962288365063160930300693010463670637150506952447528560619970047430454579237705059259752425817457191008654226524063763281493996066926367349235626354105804446157798038914182751828592460895035712382090766244210011253670133316858397128017253691854562294391220743627815134621816973495837569093204622672688021518450957992129639711064436943503523209473342778342762384192095619473914516011338156861342790644130271805422912678847013677270401419323143693732903964757494632571432633451799166702143937807038141844361150648462957136592444059540370447485907997897963362651890036378304231450534567612830178180909759590395882479391928775841838331721907247584866893140569305882976148111090016170733426899889848887670316709227665357122372707743596667703697476720622144104664146967211715280996477961147428737690535581334758801477892637651504131122414954605275325786857082921758744010379789187236127113697718470157983428020085934320526203100275293856345191344716061029141454044338302537979717203132249711482417312762446762037137515027075248416653352284376865002058086331811236367207183190171073715471353025558773237470314015193371973100883100005832049396932337327486833991340812386125525837841403543559637981381628528737588364373455611719715678771227388831344340242262055528262209105615938622716963956633670703589318859564853503797010185304672040504971783524873456079750395809984975876814879005911065848079132215083703708699149977274997994287285903900463028543878257691165031771127047379755137806795652496145596030033056181102676507846888270859405909929259666314034054926411890505335650463886826709200801854045832288864279732935845691449741612223809002124274330489896561572843459229519087143076862187382188791685544584503557465937739978126965823234849681103498993999864757938954885307170358369957277781284598349660560849846229947482207748079091286976300693496142977831104141094686972234040508153554058338989999919029736511471275636637291255262957311696237338853596182534865441659732913728844474930768475303210524988390795922855157677325659781375490491831174098849344552561887977053829199326819363277881324888615405180055842681480730324925707002730489266823085138016401318981567315872694855358622691097690194655941265305050725602627097090717875192204629352861064389374240453748917305702604512804119625867742358172718123237154166003843937065514026796794349876351078596776484438117464999554689933629225933355694176567638873631521277664631953605839154792581111148937286252795971918259674851188328588969807515389793499539404411414820137757039342612823588591586371347000179598799489044035226520523637669738857819263392338804971718870328139771654049475025996721642761094438481991656622578486696963359988843712750906688898471356014517996310894443916365051674907593179746358846236043725792734328116532689213331651474204949799319883017035803022774814831553982627443381385197663974376674923629767044292585543194519367273794284684395642928326049405497490070779601649167534768414600914141250064048234818652428141652362048672445795593068490660999137931526506095814695081845418314750638617179666247291407672710074962898081408259835353635693306705682503896568280946029252449859883984162015542736969824394079139588935149289808612834375944424037918315442271689317772619618987032867681174917302168947510706701898354253981571274960190991284819243877272110547870614835034628578995387422002874942591214048294783971379040137788638936758460488348197505317047985158306229819513167481566111867515345458766645585932213522391344956077256714103659113511158831240525298125140383952411390411107325331592194706201340979221342399868661077349909215557358708145855540365341266778650871541847795313459359423135591042547973461803709119260950730402340705349088766833476490294845892521745730370105079385869548712780509700664444004835716292442674923517651369321051953152102336865732074176489454143173424705228978326223027266222516276890434647550523412778664497428897142721278658749612508352640866530353595002258067972118843665492759767329580500072070433907242573647585672171714273390501966589643819104166448234890064008063251224504034718361368374027664880927271678584097968021880759251348614981478898456854579937992848261435868891032271690398322651671948124190427427539306585543806045211981663260676687585334557263620174408038685530695138596301681940131739653415190215490793614510619038208653693987408830765434391885234312378602363248731899396293570316954423951865781885100891920135301603324212101093731464101397824375264664499809558334337614064672026993210646868024882270364178884427647791506105641318676423912955133136771235814586272285657850070901866972536678395232059341987908150553765494698990681142771838098860963717132863029779810776211693960303907287239849843721082689310667665922506500928557285454348503970013268093445996482183566990791980987748596556209217817343057337342194544626615156686818558245669475143136614830330516140228786010086414207939263491480520610095490721835735089247454876935524723138578326096991674512853876151740469678239927405156587076096497676258710988990235042984347555051321451468096878606301384122389076447623425812407283842326381922015371432307830953895214670521601340579552959729080385614931556739973624697276678463529042402248681886151273087694733873275830791505189193625373209666803234362151003426092057590918267356773898109205661541425631976299843124291039794797863640882088570190055301900003573411536869143144043496580542337810512733987340916352625669658909487489602561786766716558631177337291171718138467656460553179681394558272784339866882241809034264014301106775721824727362288243981346003520683413086828380567073272842934189009855248796126443047068134407897144692801244652276196914034687075036216466794271066877001386519214148500516730524543771481898079864456724729044837923013094811794307068686834191465130556296188335341762034587876811557553985744730646956012303785980276440977636405191686744366096373127710778711022068436282253152843537140202799220227659732985410526739741303494819798880537705725347904128166018824526162744636771617453696635864618004267813745416497560615203665763344504895997551576889972859284384563112173570116580408348470649968887768343756582185697259170848823756360419176814144849202516722345375522796455056497883905405104695898892459991646327825907793730083127007671463504269432458853591363166545030419838899655986402321629688148511089668839962203323718090377831416419653414064947231166080517583896946312678807257789148125901687801517085986170968042426426874933314334879326481780675473637480029811049478117130766389245129476915741565700392890932337970065303892857856326230376243770493420772026884847184509800783837795308260950617009462548677233215153295923384628982930754292114888673831927027119811439415267529546422931054603905690756935905179739570230345809859771702547592691796928360679481328075574527012129096984625510836807011842023433101565414841520269977826828278539723947183458515738013280184970287092954124722450258098263808651344677397256253934083458433044325435965995475711465744330120061280267698036455334021698447168396667001243123396939698189992705072460146000095419630797457356061081044395670653093103977946529788083206656446262472521686266894178987178007814631450443649699739152101923320584437421498420350080459631014967604305294316505742133266351411456424833964501381503819659070213947785479786550390592219386627268263822743376502768134257143302487217585619918897002009792799239954168763336889913921126490167304044447156556512601139710224036238967625921576977864544413284004473874458721861122994722363318193616904230485734423208444185303595326823483281050409985759129859755074792358910727981986748209179097471035060437437946686052410747850356686028458896906706535885986656637463327421628861234569068224655182366503822724697195227644444197795283804936931914627769017864970968680600905431116862442285303721154636360600811502321196211974733341005134489619805659019243155566157609414318776200805495059993045165386306614670944609342220155928049940253042011519311953946743027616888278541680649442093598540901732015234638436537619329415387150241186026429490058512299349690582250184367349939776212085897231907593271656412295033263310983993121188673771212250384516359953030780815507804827222058331824062374013642333359133160584135124482981595997560224449501288645468765322557849794383546123952034344927751383786702917912990387517699795514149624656155606960080709791879119636275194361139599658764920284272006463379248718719332029217472174279229125077044677209363818166562928537093353492325651122818593748864609710305129864116942231229128174576218210084452941038603162603357880738410649770480375078409727618500700674248883422252277980426825815507772017732340074402068323346678334347551916830989734134730168858925103334305712076687480055246688688476894670651580257383936086879983577828828602261489434425835923397076659191683394005476227206853123333161878521153846628819743430769827274754493974456171559371277991549815849111747169423193011812609466651412852267252351464407678893903705109314300482259279500116701536366451863483425613785762192172940327801220844125411460579264430113891047420415094297113598404219681343709634874300870958257321718955414674244893376341333427889310943829233653370751757719107605587861802086357877391336789129921933504134146297322656898810218472110707964883674539155383079137208871494061245563128056420957988581272684045481768050709403557494417708471649534291798764871976524807597794770734791502630492906487011366284101365399479176130585595905397795454066322813828675957251885130704745589492512218919295529159449610069634817523410058045187518863520357160723956364577637191724089512847464951698943103506362683585134614513957726597074122899728206480753774987096381899587321018610879481497519463852708687072611917399368432824408171936482236856795574952464699800930291609965793714976730268382477957539645819263355383911766526172888004571947890474588310587676608406311425540127993625546329879368335323539071295863074635145350238118273370099438620267277356826017750844805340260524244406061971336017207308611361955742783256460693524643713060342390968409570063455529050535668643356180451252591675304849420095066483060154069536415422382309469238367159451930467301237391560326578851710312155578795841961479183169579775760776233463088135008382034222191099265010164316818280683682533339090304865429316189048890177626046990751088838271742248193873436792189174610371359503380463155131288979519505940741409262970975353875816248039137674327410137884184722240523944165954117055042120721572974997364249460012633454356060191546628748649540723067686195136645479964682073095450925506975090927050481905579202038732890733896733833621272637880347942037973136420893781713914778898198323512910319197068476403607595076555962243675763587891407988004542066416931218390570870561622931815123088893598534312060069319855289225261094247517415333164704685625963494027504389775982609140154461262895872026450240994072898871044025307690139305334022928033931266904581547295137493106567534153519318138854717599321622071530056545304288302965266783559140741572831681740464361377523428991710592356608304556233260924250679430142887642434005224067637610140890741511437421791863573026892854192754955906965101743752032116380034704499058167050888665626623843415499718979126680405843960078898810833151104114575036303217421616573452518985762757331081291863015783012791409410255286777141285616981339682626423012611975203816793290465013445140614656921422006335617736229737946382203007641571430249338241048299495042917636555532796804883493072405536295861224532882075746352148212657591057038266920607914709928146596587126938985496390918888716073579258204082554324234079590060697596844015495175320985499163382040422855850430559129912293484626577845582382235255262403005439981660005950891371666804781244924740367827171710762409178888980504345422454590254784615774760871940966332523986760028142613413475595342965171716914697152277886802343872547663520528120370725036678933784191670868497428735294877837448821901001885984119927531204925682458091482287174709942733938750644479476917328973810727306501318217338829205829536104246886842438283297359993060282743696609147891579699238536648623579905358670871106320430850486835049783312493184385361059165671156227587927374052294058608185301591753385696234421142136421675182650633031881644529793806106864421261790987069880372084295401399386068118710206189303776712285881180948848893042526701213570823497824239065977923008672792540988232547095184776504890280123901962401542657368336687306324922409644365534410066975436783165260262955996252175357544741398754781536305819422881698239730892159903837534081256772171318191844133417566711144321058308186299679155349947255231716802028446384918466255456749920894230734996985283851878674465304086056595776659325317833622212034075148154858446847584805425548736709301466100161963471434663263087963515129703744313920896851915086064266758910745149907951903917194495571996279529383143053218656317910511335965137824333538199187717141808492273124216522594060028450932075129519524015328023806043417709266842495176081291740806223217689682007385590272059598313378927562503230092731048354125163059201804227205088272315004360803519654691174493739811175353845713052655117919920842526967330347622871614556603084823201845898627748912898899944574201795551766424388423411907985049382866353014383454762768051597414138258706566138804935479052628485240741785171348057513300882444927320482462930854306471009756425969193391709684741244354472554112625934654207502501160908584408277032979124763707548990347586676182225538308187927905446996029722635798161079724601046661294803769784636672299053596270225039902786922739585520885301441503948612050843139618222022359657699838154968446734334006420569578259712455893707407084301658442608111858815444264619009012823824596769697519830914439295691728698704360197560674759685714117262890977468746276512059955268428052340273159510538089673860356101209360383097878816176874824572405606594446038102726894253443542076038471521849550857385324615131091584424306773792881902691825885711651926305851466200514469474349801338960595103000451589646019102126613026522633360338221055285169141060665232013246530501687397465849159382349758927752858380623846013869875165055594395126946526226406877411856315588569024878072065504350999182663007209294608741123204952714756268599798436435809358385380519165914651280366503213806255636032269643110591872408618203029931953705657022064351239460567022413884885605150827003284834403288358539581234035600441934663369073675079137559032095911505726756174408267315007976673039598507641151944397286335330125550920054033383711022632681745393101722729187191414298849404330586247117246858978485615929643653556078387131816081391879036665964648492849091779247827794526898732825052889352769562975907912364736119258405752182538110397835458835737914705348108927949946713862558047752533037363701319682966024692981434858219910266459728179353258916490292511905504646799326242982079315357982973622048706257481562413573363730947309600253106111733832048134335936723590041694961990829855990006025022299817141642004556041198176927493040629360119422959449621983652459859487186549428286239625501858778249226348335837411890659946669473191570535858112348933504207869996439035922041540113420834084269734145095772624276754078277647432119508555546539596670293542311311028758472557554285499833583497230947814275913104036004971295380976852504661357238132060339841901717229600937797253686161157404095038880017686288080822614934839631489766539899385732125365238787403000016356739869723050838328250521575562201208549302138447842426936344639044264653358515906432835858954978130353685978748569212559403819247511319954366536369418820184289028001433024999396662023652163159823298248549554196601541484809030007580694724245131176927813254710906765493900469224010588963000230747380898038515252590504385549411330723281629585685197262179414123249826591774524286066256365176969306381307235756014681455613594031999912490850612758292616211921213471547893421822608212107911505552824566316848653799512713338265211818549995024683770899910534826821959190310977496474162070897487184840808365409386479237838013886931246789602177840343515694636494368505625695008313727249115958155711552147185580779112371162615638242260549446780874953783538482618365393626502911146278043794603296427371269721703425911462207063191100110724419519008126871670722294321774402544932581038660443466474015257481048531779409502582661749779334097789484419481205468137538727958961246157795398984107607602816638305627412744311410003715262262247124510568537404660673435431469240935340385616194038091896641328963683601577232386015713279347212134306495866622195379128756472213488950559815954152033954412150845140655041940890923951905288429136352076072087950864467496550858831858616087920674621434955955710415095270496119392170082352938574833133890781010823924650863744910389280717433877704808360431509540283222804597660790193028569624820049606839533309117923023770795187662449788109832102911255366778025553360370106937135764200226799254595095284585616939633830013708136567063994924208951937333492564700420339716702339789319235310365806567301785759568622124956152616139340103601298578928165511904370008584153037134401527284000177928595177743911507082745617570520311467258395829504045794533734014181204859569952341046536222537099852213201585948396606518384726292329795461453424702992438993322839229788498389538886076715282556803461751638034549428885321733142200516505323193691757256725237715115916513830776598418390856761508355960047391537543140380755640305547843587404322267424769380163067500044847245535360459114635330759666899339997183054051768329722491257599602495843537843516294993597705786821823962129841939856532924232047681963116356899628503457351461193274620039285546562589837907154443222416194077150152308184013306528924562247796018854096000018198614492291764748201192413302198098014872886865787485950950283230559606034658839677090215240303400706031443057520753270195647296854061287443053693161164660630207668282554671391084575253719074193653701578959184912051787975131841909493293390407160385396758347463790103195140794079576154925073797277022136470122354095776285684343973186559932143853835320224351224407720817277051200785128590143836254619624351734041462072521881956279327765328273984074889616339183405493466930478810195361085974612626023936566046611778962059118784838287186073256799975613614794210611112222534345859528654414602562779901561118235782517977839341522913677608788695149058464236368640578216865124839879478802321437160181440182301541894155404217158893230530864995446507006168362105827174031804385208002880117527389600923318390259371448007468945358540012054242651055116889073811633270559884468202520346402432362451952669447147232315000188776580002851306328290464880271094043215359726121083590369507975218980771966050691836375313540134093209660410645119984511719868240769662766052933140362606136502571718458941722541727914545404855894515326388721250637570199888398700105077136533616372637239701275967527813530995741377711045402701105679525971921366346089318216045636438399298348794172580947887707757898610646421020805132671013213693180715115957723277498755005576948027676272246009183846027847435731590006716203811863349434180065057387062024340595758724891375784335366741437035214291228475271484615951379029735612267915695609716312638315660890535279059569198129714487135880547601993063279467453110850715649663012830119148357460838191323949683245656493525113742262879491130788995419198272182430891767333432567354044418549811362726642846423318298897990401141344757710870752606952164471087710863492296182932206894817225216208354184502179096351144498317872506920130471120718365590624776802258823974159428399981657164205559918000279140706917927900254206364084132096851797452770115422630955634738013278551672176620805847993157390405025578458240027021636399569921478658212983861206163660681057785069034944771308812304726947882485765491554517830639289311025130665897721610031601300247225549264685023150009538155088628686514069190252452121545758494880586435052993546669229236256197962792511820901940593299916587113044505996493406717403777515821833007282003076485515000519852372661602560927457137439305404017008252238603877279702814652383165679347313011811266825947989951850787205703625288287725359747999835435103303707103721518569378319682930396156352694017831687094291988812305956301811796587883617206789590578931195187699895307844301711600894049716132887305103881218564390392991826739784285931442443621076042809313918208551467336237306470743676472077626897478875338481414094882929884986561715564046849927205538747675996971123695535114635414286443390986050610833502105157812369891733850806177286091531619665013013984637183825704194622003780814263316856532172387045238572588658389691901106547114519046090783185763989126106440162859799607551320809776054155334475205756703778485808383971581717089688672212862791400196114534058919681330227113254038353993300290098319691547844845017897449794353927348828235279664051269394279223718951004862805402820869080506267212393045137914317132977581225561739759854915663869272269253855388933940439244703481576256710357014054455180370040812152660081182562348940407308948889934586973562043220669349814384428072571395525352606680719243248483929736117218812101618666606720016378735254560416984148237307186281574122144477990974703876179110455574128546113738080776099665965294102741336150713511069261172886321188194280473302805241803784677182527907981065216034687572995261611767460391774090063774055693165243748621990391889285725851595720390746358282839929353085219762244893300722377817265884207740534107992473039661294177348853422545519588095754874271244800464943846907257187067463816171231840991932789621572972846643867959210287942068937576553140239859870745506479046164845973349837512813983939757830683113140883250005860636626493582271258338601803916154526555059835517138715539568437093615425400275690723561084285393299555140088137148863093404212611927375758190066323161721805525321314437722912880295693979516517157968588059690682444549687466610473735455237540983896362819497774784125086308271147214641655112714807355488534999594909963391599551359053399793592514476144882119440129338692271600047211132601642430941066272991635364472955874603059613858282221715956156669733705902525242986026776382146336924319709714720074597370230718507157401433455816861616894030237271275930696810841106297378984381049684533668079945771887067267622626803405683792785888974289264400968876550264093367484310185374795884333725478223070274473322653609079749756993571886963886291307042310389866853227783607383774249164014491792261229471814353456960216752604061381465833295444113433049588168901324035115460212995100201730783851989573256450368517860461668346358677666950369775921226372791627929466376090574360551486691093847224532544117551773839749668509417761637710703991796734525923891426899974089306581113197972334135346923368603973299707151289102163461881592903381966498092254545673097257215078641617977535723931812297802672453462495305611204757028402697711387382903767776028974095152639008942347177533281026354177219803357545822841631447646230791542007135431424924111920445572860658206860524399177456671585378701866246267221314743005874362097671367271004967011171138855645670861182570560013631907723660954954835625231776704016812746734970314013849465351364455879690242137416956149778244931502145384919178081294246097571984965012104378468321960268885132003426503702941457446402464658473609475523747301995618575718548580396760845838695493559420807785596934241211844940778358467718940902750163066916334184093658309513435900471330920727475824235424125497935712380152082724111868517290900654034330045339019055741705281605872798512712498352791072778591342122370622928472497869887716532502671098233184862821432960579974177094553787116208722421592651761046313110753532234460638450180228756433880853995462980475822683580825339545008099111396640523285191053833917334786384008146230493156141162192532570805798724780303398628460873639438848582761668271182601127543602522102584085238843313644874034388951368151692051268486027473191864942987445226821598580309683523677360563526948509938674398882948498367366466007909699560479394718347363609644261822426110506331230584919326357592724433169418788689079765295239382911259349101749747338615889791375598513810405522230054237328730391891275621414405546929226385681353969308503056260751551166558250564993254325080349246524271297191148694282503592382493955647045436155538759797898882556623280033180593292634869484075854068670615040165916007445834992331212929901648925050350049640044677748651323899780318031747681822433923396980845738223631946708873734097077083463322633110534884747899106744451250921809005098330871314809878986085366518965421879686138234103950262485920937432392405999266124680072990322932680091930438975507480357713601504586646255895097997531514558459199135884481339548126534456828840623149023049530096106444880247539497596662785210701329082606888664334963308331001781881317155186694378959123224261653656570988119256210974648798652697419486015113254666816086972168078537785531328037771434246166915885162645160331619236450483940530972351903951149454177707571203842517041710977455000206292703110195315070826610070865358079191007429647896045246584654508178017348658099257314138388096310610306029208902228174123200752290512821918532547038137442786384876480967439634509967212735560645580393506178844710207838551234670588442226364274350037122981811109038467368879752883587342159410935305860744941373942152693634710105966735857000057980966890523239014600799188323328697852074563202360177435035381709295826383277390260825163164024564904714423112480174625397509664637298708527875979221045031110556783165308578275229720208351588665805015927728532459920262465096952988037987184416048677045207269773221441491828075321263632795396066545565218495455373747970541263623481700047523995305243720648090876916603738899932353932785417885017302543624219920074904412620288024086318832542946747070047526410811307423827125916391432074476941177811308824094811486505116782064660253532222888223004102883464789224635639436996954164683037871540918032454013811454427393120203626813232785356821256838593345584863844578661894610772895619443190866708112808101299351702056099978358340450951778153131845862981937291960558054225658194673457151803023417671995769837518663694764932257828670824094732894148408081877493242736212476231709358476606330742875774984819373021989436593979313627675213298680698426422974813660015963055105845709815848242335776726909389013308140331161643232960349921118891725828016066525059677687271082335740642296813189092851968415426434841494870232938623083661667525905181679231014997770377967973686380628438170379051119489802382462068087639589489500169711606125441799594996792827294345073684520632311450635007781592622868328864976896958864333152467308747824458195445132971899663301699966108381875940912091094865651627415802959800425257735230278070590207341951394413362203653139756591229617043188263579162444844213399817262074740447760246611563199735405728895733453486673215078629071774885031155639187540022995168389123303981259955920675549682033935565111234479085254329218530753815556146827463875094113560670462998304334057884530791330116443446628447477036481073656386963505350477602217486240345356466765830393200240669720070483486360979889364862646936362927677422620616895009027767353697101815039469784730528086785531121990653885436248803386295575218784251310495601059621721378044758990977712458615560158384883827510702298664347752963073506600605085240157626874915877904398848873495948124016720441083518787663698995379375158691234100611944562022030117074293179146454197959713125388310232918254622996798057812499178239255505507576788621386845139583272378989053477834670100983693813046613583509460959771398411525989170904235308182062302851523621413586473594783844748342816535610192362285723489420211310039673194099488153823435623999223071770669805071306523139318472088283851722194857692369350446369580900272573947044100395089370140203897931872125931547779473075954965350387516394452159758097729134502940908881873445112223754070919224724102335594285461908599697052197124814550435641647364947370487472175724186818775309919792312146988191945253845612601764811492780011598734400644498638010211491662476637502243228994025513174279529436611646179427651318353436415493005295465925288206975571538801962103505141129718124687887467948778527007085175994832596396480584749704701810214907656594858860569032405812238540468727993294144871228338735697262755977979894622030160514438597988353028719007824574691221667740685617587707810178508056157064666576490536853546941045329955205997912721335694230011428641685842639104184704704230451020121419788822200316054737213698182674405015975004724784892429922041322418071302870442177461067397636196064111917641528793589322460612089939282405335336771710172511907148902567450722933852271857311598723944331765188053155702204058621423062486736571583837782282227409759518288602665155402746028600671789347367770123420994407628381089149558045579343000592855522171464960261378341502076607746934497854046439279286230509197477819589942291457744483313154327695647817843799644632292098192196814541356303270283890688718476426173601918697422884933241005822230301620394481243635318793001358095916681740346191693085113804362880129720108623805306428972493067077224565744663434320118827390571170620979148877860587725224788225344113424002648535385718287830913226400455647523624536720920744949592451122929021965149539498675758818803860960940337615471605838050234765997788752844760178879727514317719549128114612172876431894846500077626405112788176843244907151640869406903341670796711675684102045072140861575899095895608873690604930335616539702221179985066219252456482629168942609747422328137812716760972131171973097412347079621277334969483004005000864285078521417529902887032648856471401876471894709867359269315459788329693874140563062102848749749826638281335022837253261824753920874313771064901004276909900063569267280126710531754908991646879467324209271931466161827731651295346354124489110563512597377049466042970618746672113022287795925816872571803768479758363971419357637818981723032859786521284559809039005220587063966354444856112212883320778609543841475989322592610214576065063640533720819048866610743591936243302327536871195953409280281943100443869125549602233675137295687221709988007881183693967908619186128969975783832193231993775222117653846597739843619909020385987051663481538378454954431448523497094289300000190135325023851782503127300677917597905139020799818712681829298504770965050497735957171529844849897309654593279982512076113553741997049641350535092178533049495923441021444376824305662422882243416656279471790819484849480377264267439178746914202284829202031887862098490820238867098591262268904942337769069000258797660924467330642267292285318554285249634228714966080785219007168535749496863165944663089366454502762431511490702681863460707252941846161447734587329180464386729664921896455217354573319401407388287036564537962816510325907577366411769988759189551719132059202091737475350537103760441140440740452923167223569010032486282198391161630551502693980047327673695638043295379745721802355726294328223533039080997514052132768551206883087352854071385534588196093369747486174309398160978596302190641270699343177427649505036389372389683509342999266176970726325033555803507337506390446538405721088577799498208172252284377840243835162876196491970716995292125839101230354873746526467315321349526216322860348282427546278898582720930661270520099493750876833576859876438863608230947421364701977895054890921146442278758749944229957871801008726504342118536598438423236214504243406065630960456179355189608936099958683966477896850445055571546945385358496369634798087196122025507023051846474499335352745149062478824605673582309063572424553621182896993923861360185381291967234072374396292521790724952881750119971318122424203087090854059034795343104528102910921118360299478943017821109677018778502828067329968837106059577171784770197118185208533922719401293776932489993639333590638994061772326493766139938572770567091365306501977800495327505751591181986295993030936433824688559271320217704882496777187749918954193950231659601754436519164680879097738104615348428851350698345560808716131245270795924035790114382387760516351024734280850186939568398382465577061213566010237160793500792471784050046595620061931457602094442964302462937027449494154232954086351965440794394234837672321251489475055173052662219029754305483803207882757675959474050509872494437587486930401430148201087294345184365481847837244325013732683469851932680450254302813694704257066835122937033538782150794996047323642695236185626946501566650424825057110536390888142071763455296340726238844231838930291828368029345415778404230539724312361869685966732177085585284640473681855297405749555600275668549910559059292001922781029409101416103331884563490599154523565452386295496546812784123902306640813429144742052085438908436375884173559739888659575084611649445714149902694171389952244895183351230976221341869396553630967856110261765506067469499926139563115573277903028965588400922062099152234471587804301551410220095592746355514972103663052646566493865068260128452297451913725101967133253796709100488772878233447264128655784172565331648948681840727131287047256838436826134960743338276984308588095234020043546318474095454042429890806189625806164293762522206040597892167052639884510722538810475776998013100274601452016327402820727816749685096576838901566148996756423239898825387361850008949259303456626079823914671771225085742191803378456633286387805204967787982095422438523325360765668251538713005539494209997110566430237635268889640084334354878827146861950257650755055380120674596814003251087897262754870634372149311021953196025541178629590737260217855261363808492895730619211035071536941282629869674730123991973905853374870086536466895090571220881083248469090984979320579327651162116126998864047983356072910770144949645442485181085850921063167185343946812282854922104480751298324918957064728838711712176409038475810339389270817798916232148911819622074888560928305983763293394723411446276755235185209239664747550242094975976604533137771255263324684561920880378601086147153770524388384608016149467080831282498738568543421865409137632821141749812590865282639463067023107208930051529593630539108644452425060825318500013233098076847970565436116854226408771015351454310627009465573982781217407157101783999092966879703211267713407978470642277114994792225863246446616135254676103299449015855682933243943577083937295420271977275006198438918222880900897022496624347777569203558771826754730652787993460716447081733514944437217147046611128828138866007552946614145857281385174307194473783250621827426590578288531677216829833855859338665221900815839173042458349837257816192597774404660270588989220229384174248430491154900989517734644670105041790902469320638295398827390055611151931692371160513071285643635846169163621866411744690616111621824130079268670203577977086442386389129132208512304707965789824830434720414900420332863250914340411873950213193361995875330701723209195189436494222163942009426311444667332824468580792083908365831999141805898309497874252881177655974711522367792838903834033666301170044122598504169569427233716190499420588840144541568520959018774943261366566854401067332477093580646930000484487174455057308590590421679513503124101546766218699803539059611577080002478755556743385121127406527540786061466902524373002506541455410826064864561767032344708048838134042969877259319237236900179334452352954070221962059663610929617186054083339590180649209104326538871349858766731351576538224119838405281344525706575696404210281478172718048861658262980796841013691179993457563362484710640038465206921729732696890814938405417315941341159856395559506406918460346647790532745705161482983648536660428097120562305526550267678903293059130921219654305640838035770118221638440357483414660934072220660578693510965205598512830271576622193074911460626746426080447266397931911449408836381768682090935889182546191759972403348089856712180637361388565707608914681183049863140434802725911693885488269545436319932818961138820811883406236904834094717180146694990242267557008307983587872946316026697726210754815009929593701408575755683838476103236864989019036868983106755383876523298554083681568138390199292635396257140229048246931417061009612740421941928371033383608342395838884777937805439948321279784396358135020408088936595273423389554424310752740569523853612780960428204566034075331878114150357271707965442532161813372196964170223861248143418055761454286056767027343417507040275808020232089019607186312045308317094154910002807500869659915095680285816895151258767289743880164774066989361321211483034297849290524745211753820823100455016611025588457440641228444348405540325885725906662715045566182432072648745089345328135398853705991672994563182346111638144996463764893133613513452089758267004044693740606949292063919792763931267338694520836448886261888306839351746443914975470991850628111418841252935796705257257062388072504346613809944412154595290274640006308681465310986581561513498321400268317338720772276573806552622805766852211135236229411472179732352331695502350291556214029031725880980585709610390770562224886043188236107431021114693813485816041464025581096470142520979459811918717546332820236525783349359145248437264056606265277996778098236909696179992387255639982071340284092266320181978842274338939186160445477308153059479032402893325822928755408880726019743550156131213129457547873698335679337114832300182235547035800698387726341349885274938007520809662287889725718733941764671232308048162716252324223215065742362579651365928549175046443990932002273574799996128596372359145965812622287294842987239038350649532368299489259314026573523878906238742318839791082108856483452135334427111616342977395957923154397596787780569437094485857423464606573160544836807919293236522805810762344093924637718676635367639516243286099393829896803751486430412331271652681384733481263876164880038271903917314086852063034268148956723193649592171335855483682607779565404994967618947200340083713703139255576256633587290656776494424623036778606185398479826356759976360717599038880735193451669934505527338230788632883718139070216908588014255515141727675543063737137628869482463782074553067825472214895269855168536644388552289644159766958835325676714034021874020039497110826854665368261523881754353698985133029077417487206160059728815997773053641938647125189765840391063598931906370771373604324464423666356115524739908636624443004210176893260286065156675338890574917383087597359137898162955109164306017780044013318260052026757229317492512320024818931390270598076351434074804038305172593676073847313133587590238315902243243720780900526617386114204185706250680820823229277139347173266695061003101416053915351519882498858599987879039223803271455696188990254040247837271429830478370185985008301184093859474748930218792236300331545932123509534251866632782688325656851416405438572168702195648547312653095776166910065625158588989904473918928133583479757622141782364845121710957623196839346947278360647726514438700685724395617610539041568315315434047297403679759653913501953036471160748569466421198265032026924962990143437107971063206855750728738790910598669918489910866577633797471223633012797615211586390884939074033539518644692099632468873299004313991054964413147646766518030145703386608297829641512485569725429722925708356536748691539651408367740642739145873488365654359399336311512819572061172720279296548332232402317313476993799071211333473849742414748256059197865837290191979875775526591348589153010297074039931988369995904098950089500249129481370245440697543104295249116514111029498679024485706900987129612535648373478983490986350189408395296252645440638001592887292516605958250609162196007086799427994746530857961668523210666706034989918349356338869144548514037915537904698391163436652684915330374751075837737894241349221910945093772565919578994468029913143114975891866942921856127018944319385422154725634370161485020275257682920251873496652576685813606211097441002702798573567140226030316557422601402682369973746281241259611811530053901859360931496489804676547598972957870186788395025752231655209809770270589642399525107327948877965270497424339451667395216093732575009535752009830706305513785276950733093490428633600320015693408695844442472281468382557388869763830024804810395175783470745885987110158265757815278176821554263132299927459426761998903063415431055423301143556596606367223483801085466845788306816507007272046601565472104041360520743724044620725035008486451803561118481276100580070920141174523562359860426747685287623425703531751550169584756534670430317127358935419463716790886309513738278838349963343581195436982534458374581452454682997845600010882688926535498123410895614127429398535397342540887541725784453685388546803843670536132563124981128957184260831478050178408990486357452767281689192789382089264356844551482200750981914786032814959104758716648959437822198619033686344561703594752611564344036332054238249523488603905366877010493271043800191960742869177739556395691085091526373197297727546576858632466443853167501956755908460588363244142538105190256963444333975543418117172819234288747833454596053785299011038984157303374154106957487272610549467138354904319217419799699338758282876422554946134938339450178780500279668706038460403217160093518522893385514799864683144778352617995233362189872040159868876591464046589834908160897944162384471372459834621235160976559176794208853119257365986806295457571985922972824056421129986571122370342755101671110039543835199840582720393936453935492207967603306153743613704531557640436901890848207653599272743633112830039695081769154489991519560161444896399725425386214826597736977473672324985369915990254247955689865461691043417104760504455201991815315096095866409499013576119933532482318906158155470809336393978465543061187044964863989505298132547127572625923979009329630842881233178619808597119779314352495171896822707286719921293296535830193833432095420149492974833275329495853860103738293291411892271495433948645425709492967241195315185955936086803506906170231231312791447259909020044203956669213837145081584410658156868455428286577687406272305325612213744288366860914750433329788396398284336764242249764086233702336217656507754191961495875969336330285152774489676883676790967317172223799409499248195159133650705218339785261077580279513936036029624026077850447729018677808944026935031250813437579695407497696635429476086600313032787762514887903131876141439372294668572876300616241888011499810655363000291409160686472019322641452747558747320544939323963887734488365226576209820489455701007489393344393027722691806053681578002579334673951672161971123317116336455790963600892103026785600571287236798932148915000421687585801065873102358038834846602953823007810115951300956593744318820490548769647671415887302131073729913045270093052865014561118747260079281030027652657385689630666804703728290381105066308420206910771651247593306849424041105128907884160321535883698977886633139218195585580427003211154127642118389492330249260351703500695518242730413127455288949455421081781734201554088429068095734516282276990899607398863637200226265043031858745964861832683818843860617786776171792707362795324934876153891054964193386484212763327501832123622135877152399669381159960037140631826562877525949850019585615947462973713612746218695151930316346045134013203309531635529803628582608775252329221003713207176430206626609584122848213204518991630002031741402614063766951728667565232379931679744498185788659213073145762092251172755731951428611571232479730275332186428764232527002606868527203448081089747909968689407429072245667188621793161262458699268767539575756251729487892857187040161564707070528427289346498374035898289770500963729436025087283645331856087001069562238390490010250746360484371226043377520611077196926544456648087803429587778962002119700313905060195551060455801849319842534926726051604124954311978632881389972858690602973542709740070055078016253053653915837003352005673823752674634397702673976536689047776386259034411873648656741298618414753764525279305594446292551135345335026734045736007990362215895184554788736219498091759467354635917863549837512692756769937425301802565455886220433095875180890099255415876677442643579586608978202620405827402530446709763909139205880350713792128988934418075383307893253184339101253551244782463389090820673201312441439243437993116679336338196047340291261676294646191318518068060512325443504225158741991257095562573617434032858122784516609804032367236858935669634524159953687663122395035345444157329547886959478072767874413546881898007733137487120261269147071318702062282345185275865471655011239496450943000022773295547464106960658063032860649403778522909177854132624825591650567107283457320983505375440738163558515414111425239820433857882801597518208111826897057726470067307471388454467796217775833479297762117077119978085854931391660730402397248872266751974906092597873523774143111882090838080862832490991881547448164210473672802634313868264540872202397761971541477434959759619889632450179263867698829859217654772311501704316125205734818108469663726085134480362809645628619115141924958876119846619433381240002676353600065876389679917668627079229670677503035193833143385376124932239053952693868494567834753935329735195195117272459647712168563971036778136499207037240092188093805284201121380283394583627164636077539771440837256739858984817536200601117297908159857638443069833201217841188433568651147357739278836972346632665242346228924315779753159574626419209794354219397397600160780478191361960102395884560049373143663193909151582332250160703875394874453918055314048528639890342485506513435096942498819917060826418088321573239654396849507520864496469446979499154722745212184293992022770397124704085466148421653638347787536045175481133290060087504627008461323850406196808144981440563176775524778258013336855066219030496668405370671497226464258096093820975875074443236791539349434948776741559802368999354475158934228691284852859446821458169156488303780973352018474287831603869638167560297927825236795249578266813696850001508303035682458278585234765875853413793137118412569645520232028081171576235627367995367129073014425577254452740655171027105253045125877561740965456484284169526845190115125366654112468188599087221226571365196484635736770231166316540095864586553439741105533837368283084979495142603572475459102871904464923510186303763348420422819458009651454395358964384590772251007948042386368129976171282042739873047359981327835241784501617668267030849403098934757139566717099639710604853178633669978485921441097090905824522874439282301648245039069769181735427995077205840676648888848886793317505331538645369311469310517867023815258122504310604324250008941173107833730888394870744095799133367529492709934920967989675135021176781750103187341232826007411012471890868068410220983963149121022355063024178065990439074462524921253836914809590381783257445122229608003647191600848367848614223404419820368679748899863001856885859155968470452636042521460554716847134580384825219117737505440915780118011353544523532809948869719847392838198101523081054847122963431625408507722518411260284820742983322219142717612941792649133035020861095044284638182667799007996058239897185149132177285512019751988398809482855912037694795585753385666195581003169485404955909230118681259616891793030074427373594115323993225512909963539445017597451707584181686916669651448688463693505035367537768448945363902387793799525049618875172751562817413287355183299518476618086511320194914443658608514481298294407837677918944764835097338082871831456380918182441431182073914097054454400584078322325088255538525749685132958958437137284859216719372538672121344462620865914324658829696299471309424109507259699412565473287204227872930303826433366716704064462272911452203894654018779181485357490685589026804271105254406479146225028499409777555280523564699707048874133317199193266119147966059206639965148422145893331003382974042275424255634939109643302244716818883440192552457027920930129718539132576673119357944995106558457455374588022204359881784732723448750685217147606373693766337336632081783485476682883023132435907199838921962266521184530276112585159397417941196725885901702462405846114301688894798972524526423008491569351628154904148161921000402092212911435137800665326878594756432022934090635495968705593661252479463921434309572071146645798255658160151093097723537440687445503829947905291093849221078629306769147019023581738455022114716352360460279048415470582101846948162290739186052264084940300085310543221301991908706517662804669963490415372349911672561919815343563875028310119569789619783087448945896517238230113626079270330039570936512271045307287068069542469960429447390571471494378072016563519685581566970380796679142465086663390853254584604756857524438430427960903922562135676848234639642703538864683210126190489566251584744051824479572471847437456515057406378933045112349473675192138941487755491322703115700173864239032355909925966681403650550643601883825474692571149583886995675990374427789573460384091044205888578921273093147512404481945888750285959499890382426316976267815530713636275436777664316513502465898741862624686485196759126072127933115240466123523540439919744571286395540387651783982612979485414445340644383767340883384180639675377728077159658207897517884205254605409873310509259532404761748875994394517798265811211131434906768751276948308257272683912844525986555142553381551171153917451200003176018413256331971621565706096739739291304717477517650275947013259398712827925703364929431980152481581749551956382342858757504599580620211584353296393918289797454808503635068506031664622404613627198478333091518523294897904679670972663394043044588753581295104413080960807674203397457777596482152889180169948490697990737520067571691727504627252603194367140471460569879194467704472585823723311802528052003578400975847094890903976818472953767017329800050962631997255809792186543557944467256051846029659831543429356813952099602832356558580818391511926944642128452838440985385427778530050571482846403227334766684523790302958836259543983827681942596029652255201526465844668016939290970718582332267700816869595468665128796551924593408451003539624669524617661766544968103089315730933977161210963440784439367220936761832958942921325509679798873107756505831412229225886347003080421029346418060407576294987355903072977765600251738159827864981159174412199905949730011498662913135084689240684578396984146506682218290386152361437757242874966147612802288596391356489209456997222280524311552102114480621817298253630395982745993333196359908692883498957050583966588602618440224651409479379198772355586596460669701903952429378475701205599667920693620058726107114042548871207436311340076892911970580148498293943355689956889713739671762563290879957102178126309089483792548569191505428827230529658465927783276143052998590402814008987324795330976870466413367563025049112580332982607675431091738737642482740473664570052909404727288966871430337926939845879527754703191110856365421380271815659605407773494705522485976337263261431853401298035111147874442226747198507867561123099703478827257505462992054342172654398487265978316350949712239591831227272416669568921764691949828733057266851489496646773982747493544359500977621901605059458518795651729451725200569091704795653523958817441788732565475551769381197223878443021149117779904733129312572566585074914762060763014163511241425200551747877545790815398093907401517563194839809865499654113742825179488741714757341587168170331413232924556049838869970616105475734303911606760577930913867744026959996208921771440364268523412811506633769864847350872760516444452350350984721684386634897388132047060415852148105726752643924028069765557649932966597222557716161924271087922467762011194497692112473327650627395461566229209753627762455081295364269221386815533974863418187586180252394422977734241071003614766424757826718386687431535378255044552953935052200529864144924450678345984675924599941166101788724958408544391982631148909267581209144603633112473952505784811656992918575002377548933905204735395823781257300592276119575758107905543938427625975163662517425286268379152993810067670133448525435344736969314559232580058100666484521522530392998534227050818876448719582376297224801577499523026119185445348234433116496994401865573223184494410031682050210327677432776760581523815130464284952365283208816311287376126310894878884139238736453895750629359125536755069327028186140661498416179447060013600215907426020942214092125417813789620431043063935789869744640120915680446170755600462208563302697412243998202474401177575196998495295320316970528608381288069700663997375328268103893356060396489564732659211341027461641517732237168958146947479219118350966485240186498593184965421059867634722107733727530782554705782121552751498056411369582692064055095195259168354284449498573885267179429747773616972209890350596440081797832627176849890545180397871384355911699146781503370106998305183508536190025773533273653123712456281300252176733073104676380244526460794715537142904161200058599483112767664695891614466569654480205080885149438494627622553961927382643357074497944825885810437860785357569842632881571460297266922142887724312279638072794140715679073158932145181297497082778348532096294974393386738038329209473021298708335924059900630104305603511265758361476534973726153320069921905860201487515460446349823010968815730392907874621209600621260740528032788629479454116322926847451712295483736855306376359939879690861657543006691030482782902004066821591638297236984887442506992064375049016311346526068944249098547494640110856839561916010099579269290616998355275990229000142495214333455581912933257169425305767145095326276616449495563554311248547288880591556063888600919232892682207500344384470542690231317080718993534790459747660568105227723417897517205995990945139314676317370448853428611256481886680950614068136477794935332001705852903437833525594491767858496202065432276813687833760347930867879878664431869662684370087913118528553319449907980813720927743851279132019258709687532269237539655083631336692458964454975620058942757496317949661098284917469561970681832766376739828722853671392069102969845162776540345159252425417265190659992578731848124523227352141043577267810155676416971063854243673416446631953596310124483537162672281244422046890843790470548700698583552938493393089960062196750401494454218032546825718886039912040205274263263175146284300746495755163124328516491478894040004381013283670457131648326667908793080831958855879179563246667957399023120524958916068117674819664913724958946514088653481228820435849900807096979624010411194325401491841108675186203653151759093297206296050967544382183312713464378878256418738708277131126921012571946218458947190463845581094383371063598439749078745921169253800220272421678095830782984060844195695187148066738754394233396381330878352571274696342309833142628604941295627421331111760318473268329284351693078753337603289250936042505228806374810441325123741086513478635043255386121411265338289288471765996183863325276891748608587506852522999505501155579479881676107784239716906030913425262345985924177205423260619197968536229144505139178952418351131925415540487115606901284509622022927958273199212758903087131148093369047252068249441395533642689505587440741121788570713099367258679771010867255480333045642647904937114709301654760459818420814532809752285753806191426324710918748689167583172257931188665608984131081556974397801364347379628516926471626981029920530176293556594450601270861162919887979835708465492718832536618826863099630942002017612443372717104136748861767796381552923746659415393163635667676466857338012731451569361987282964607583829819427974796948045578827939870316768580318343914807770383062602555616206466447927566383643564832798233964389321657287304920184881812297143731572507583257991001948575319119604455736284834645136030342642176429041629209856065319683170444433113689256925544533789126358561756098060510652038604405467820845368434074150810049189451990474601310354458758478983290814513370977401264133261568579210873192208055190588174667235651074636908992728520649806256532428092534843138555527355639645758197288028656825781558560219596953646334319463200107392116953528910864902125165593060323087387423049397090599721853470272937709201861946881803051352082185275265853300947695807907413619613081812334818278661297927037624665400537284868362132068329750798161161323333310983757512806703269107229190271720402612853263025138625244956564273236338585622167771347923308583224941453834931050059524990564211222393503664180824459002860930882925308783521802562654677882349269203102405253127466541098609603949256567341871966999619415482647451014283727118959391591025565878219816113875461702585983708037872079859497406545038807690920372397762671178332130218021942913883534492014832960676865077216481219274170443878497458103578537300325228763549200871264618404892946244619117782077091569650966674087830859094116669497976523531844856095886825825088058329495816747322170884010632445793151102048765895045464379124846062530040564872960235862252984277251648629924086029471957845400829919542742809480056042540432318898721982920180803614815905627879066766456142466684999111349371680875709500542264348777255882111598517160168165828960487889789311638643543914531898297496163959438547478919121990034422377195750343001918225852579741491093349293727088951228912622153915312454894307156230722407124844901476970194306147112253270035829583085857061921280975997126140969685951916154133922903892894934556845067346929209593054220432942248189278055587653192867869876865219799088378617085672401166503940421655795855763440156619046051518115692127574071200331640423299024118026979542022662796387650261497048994629748262932165961584890484350666590406594725087026584124979273734462005114601583558677909131798616051417225960023612244029435804626054702626571626091973170052958270704951115887558721251386562739712303607213406365886119709023351955666878301241154546915399394801864646448538683606143178107733969355423625482211463183482715750293431376083420010556808980014335688955990489595460301388500353102391668543554316156560645243388271294429033622577286400367409553307065780727426711704317684894262289181605732228639539539350465220335623707862665629005229843388967412627268239533230321545242277990513953568107204135090258921857720226865304077650813747986571305092359898585289856423156347980618938499306806895662704565174129065988711504844751213265823427678485401817753495313678561553555775166574501178207734883785227307292796742162475129017984736859566766586243333567710514111018112061800982137827092014928309841364256405842238666795206616954831873792024495299101327617324291681211711037139430501619301681136312495910890983376129207800632261919998518531189443311018802812634948704519620410406140554506622201921655330923485660527818269986603283677105471724129611010731527442400665514419602790603910521186983925447225644029567992588923677363400534468302345451260127810958523793933876360116280898402487771686298380297842379344569503969122800978251576764466140602549986288377569445417805654981288046805988332501283778967118434514909325901706938212212538970818806309918193608171883328334496132384600090008157269058956834197191338173951526810794726946611657138554096046177037425912365617096797145814439539857737982747446257429742012375391289349525015746288421222107694955609851232075605521692135757892989050636282254645961330432122562704046175996939710405764697736670887546200094676021945832521556960957645278923981280485892508311844675948002793314005216963305416443222514073361357763742260655423674795560777862431208548825441454689691874405541098342236582122747153028988476825778754990270524769034179457411916562971329297683311027314784292291960399693619981382552665420417284196510754813813906246278784524439301686801262359845040659215351438747946438103560456493449430619549313174384433332509970493059671650136599094416499147331582978789638548853219736332423750731534253509631772331840451311786906159118562575317381385210453836038088120549986878761134082696256293737289466991802679129324524984977897842602769654496607106087715459556064422945103309632448870331561547733428084296516496836831212027655003109690706088274326375837369454716486856042986424672386601453205385163647811880482922655700229846740930311089556830183467155169980042844440807655535671424418114426461738273383349544318132805185146529332051267448260963522685891277114184302957077796950105672795678494048303090506826172699098636036828393200367451842610028257136851884132609185043775933128433635361920020173730836091136589461845896450072148443400545978305297841657570357287113665226971667167012502052955149946739890375802713336284793609805193954516333760796097375971795510721864145928013624229490904731487915904163749674759843526741645407177029449399120575183924957694223818350180501969921908128080420887059576597460650343015630240804446147691482409919664342183778479599511157887155735843960583085454504103749082550814448759017144583500034750802443257378384838758720864138512490667986206441665565632421810394350870360706831191970548584729547423612155774504070964196829545302483379041753682266000788048517084351074666273523447709698314337095049788091302894395280341654512912769372178136642439402246809628678600487424771472550971917665162160223757734823264686123392950962024018225282363456391270195875370927051740382535275393617274900928411501409089615977636820704897723499167209898764240547913168673085659082053683971488444596841329809322222676656923819209086814182653495887396571607143296096912942870355344786298324607448584405679812006517854353356118520126271642362722323909181428170352633701172509668804781029126487179371647633180137985025104502812425136511467849048387840443725971205647997703247138012668319889367283703153178640162546909254657661037581173735377922795755355923643983082890517393662363946364612071757976981771020281566207559641933696974087152341279763907550157992887697317543633109068880058113925704836072594491275140708096112655736595730536050842803579003648563439996443496824921942934846908112644267425234825085676824095695831146294150599364108283192824446809676717522432650601218574096782351009303404201622104821663645596844329235382741445360235569319404453209311371409868998983449256827622718042474385307241106313393930969656562735794648024990740615592933843462243095292420179928952341862635921987537105813278212195126633242399325054088427075408222916482186693373682573060482479172685277825570106267575800004760126370536113097628276011068541798432314440304696456354187522197612153724114019531805350273290443657734897168913505747155099329650294215168510552774297547797876724693437971631526782147409981617324642264276815313657106301314960704246386324258484515955549251305376523294721140639133631738625379673636854377204495343230235534056541349234835329857309036020334363023187468774118513234937886731121311124725703445717576029938398863635044393472515984371652592042894939796621324092473125949920558050191536399832218140804862127252918786006767493272098769558554461522727561463189000716015762371438960518519065284669040626059707753746636035100549619765191528043278864617662729609126022887063339521164608645808673528344113661226840355087126814178151778987860520113630551724824268925715903642924787504951786215419870734467235134562002590381706771622507321922727366481175914137361325704018463306004094265519551750935039978071284014644884457591420312138444894875393642430607333201621558353690229220313524363374379459582032873207924033652522378047953198846558411816180954512402192940191144358701660700772927922647827153238992801986932317981896985972129165133431481066492931429895267737597622732903350781135355368332914148575794358980604527601421332167703080292837074276621212130333670956693341275391363406186070632950631669229941917891742391067777954281556353548227143452454517307789422622783088445259428880984859242944086301045769215894269831339602058577954141570628606857461558152764016934308246606064628935467813618062957816949667886591048422459982022201015696803818567024481600842701508737058627376379589033929219355035593974103855683962054385768737193237541138718762555080464095024759127948731351541323562339738309391037122880531031156671207968066396669561717226134538244402225109952207512674533471224461970685100841133773803257313834556773982672403615843553304697234542551840493441370575732837415915471755668223741905432255226357396093180462173924267514094994150547107477901896363012938605639153978718457599965717462180328982232431774980097274527609195558705432546591546114258889125109188079849161208490963233483481992147497734670430870279017347167846523805294826346525895628032305453318252946334852268368875884481857528076498413539844003209099136872378322058434476475321466687553407146128634910440407883267427496338960430384678829620440339162968278189358316318918544554630021896891636495115980170964990747134619174880701693359127946731036236296717330387225780707014166190593445910500185030339799864154394955531434583149487638448629211178923548241277708579335080828682356328114335891137453544056737429165843694257314800260722129672701034228488628935648464772211950357245394654036148196254832686440248794338651178672864671765761860060392433834180459646914780338879263785827620765603460659821848046996095475772946285633059934257042187533503000039258367475908131792897554593936310974726718580927639814871128197794013952660971376695586580620800648238349618158484636262108991593541317497663358408660657027638941307886558359541452947336676789527116795468958308100201667816821151397569321615370891328878649688735887536311343321896104516722228372003524028784623137444409035801449658768388034750580977016661450303516382901270980543293033042432601863149225600122876803426831306682096400855354394544765413257034557671925498282234646525258987918499919292594038457594571712234477944435688280774036058018882469050958350873838447394402012248463127259271217053054645500697552972550733290050893126092269858451230866051404691851284616501322174242536859654841474829328071321590156149682138560644904202442075579356740461429887587200265761135654610470666592147056684750664171441746047981001312643534536843896039515281967339142155489982763049390061109660855129239413393945449275935607138997500866083840961691278947268667842773031948083060868949177731379301432836636405345596405527220560604602674628666791964924681896045261715826124997127257263671577881354806243688011750548533623729252029798817351774443232171328310951289714027482608939324331462854799697021041346787843589769417000739894805900690365091399436035237187127510059489646670944951739690810985984026779894571230964779349569150189237364427133319944923151001832064728056453707537128247134575966954934274387798680185000410041800197200210395535642634553757000957190162329585566412089653864010424876392253546891100800896982645041492187416945649094634579300037903229383460036144914239745797675678951414844271678653859983870134056621907594533735173216485332323676393749285142765609858511060465286879814534193480696418816264191590386568398982230662491520117255677067205094284780750096266439420493407785166067137804890403792432658755871291325116333856660255302446891820379646110290416745936904727713888108888310201312939508906853142488694073035525502740625496066864226688649101520661046259060408443991407255229688766629816036330089843978597901079801764183619883621492318075552027335845721883767886516622895773220370641306986269896050354383605324088652181038273940588637957925672718306283289608109744186338829225898332893479545141947135561337001560602119591698041196624923264140293807989794023585723313242965542490747619350790493800188691789449131251325603214942481333611024526576262271393886322164529298250303634410045897982408988653962616191886216265850398590939853237766310231884238497037431602644536174757588868668115592941810467579874286510678318569695387285151266074796365354492067065996833661112642621376000578775335861513302642449036755159272374072801418036643359058883631322450818123293091804298045664775609180829942920735973957792675291396624371395193080028056612164535431546585131324440349157446106106667595211724671582568161829757150978746507608653563186188265774891678377980773566434268285467785986573951242075624508112805519934727566257256013737520054563768217205447819490508063816047931055104861531084279692757509926763002351751579974356670399560068911705315596856177538516673988669672974287452799272927525851294176997837787553091601767440731713767747768549073576221984056463318271081488209894814992808406993719382293514875706065987012844433045307949003789646792532394264635991226596136310903367060374351208826114417190420450111557734248581195111093908216453763498694338479703740249690332695379547625942573865745350502154344876718586325033257036485332261524382920950964574207921805812926029234173849034059881319157413170164270316619107064027988820417240402033323682058650706282913326887499733392178934522625179548351649216788622733350906287607434510548826704745873224324841392049248065436785110547709461426411388876382577979826039457879628429267624321920805514487798215307308441896752578186009344251348472646347849706632360959546788848951714642444949192589419962760417662097106908133898447253883634755144674342753106595350417975798346987978138438017081538721287590224695119248774959176699787352902856055584416350370014381477318081230785081417296702709965785222586186516395508447087922620723572126306168721713837418838423651119757264340928794666867394434005136456557684841795558983268409391811967961259523460756502661183775655264628533512825185292747385458897785807802298474593735338793045652522477704848725284570367696999772139335262245714428164968294463492225569822291425507219774155843216899588636325466416622477582130046245949412634237378758925753829528244321767976050343820921674631081430964471192609239464438929601639437158462926149308781591613861076196943936395494003795213538875851040153913166283304166428546661635209112473355447446041521328407130956131880139813617363097521499415828173045408071077854946843089318537596709903354238285385038426898333055983401827328801331780809253808522406520002581800629899300453098066728931251703457539419185095417234820476660434772575415681948658629761744047766294431635141450571025824752260563406650022989285959112241012417566288495418816762100611857352549682427433991197269742974120886745836120673781563756812817923738604280684162985644740349330314758190760424756207305546324596248278231603897842292045894250156549501559855039520997373305134987865608596611765495622486114531840690782562070926195171488344978091407174846126988039435117579224467600491211699852140601725126114296869112057256788598319280428085216092539436035532606562458402503328964998206899819708389224394459312677200963562133220475657302002560238814674012489884349213696751086058786979516229231435823742802120144293671305649104678412319348662501881999271434393500310371413579613200290305446395983766318342496637577801867058347605071963951618532415741990870679414679284649159211091823761132239631610312106187481392267472348829091414297507482023430272784938765975987914302937973911471088291871931503341731807819534713504555651412344300980928338279584414071736568158154602242430326626288613034942231039001665805472286468115789470868217884666631805430481445880617144381169718042530380461722999476962263548406914051538730355826868834426637466096535986790703000631682833151635016384441222418615799873743929036252138715517800941550582289825797717098470645830890790793133204467815780109952502022278505235742332621911981442255721169170486044047761831607212460932082410866191562859803978227645696728403483098149748524786647035633383406077887642375722529374031919487330482724174987792399615808854189658801714146907845779009333768052534298179828232680547037335844725046359135420259697534983194896007162991006106521152671024362450886235900696164267244258383864328483759456582806046222935166091183084589233745496877004088660274791856768519944565938105220731040401342249270801601899577852565778677030618724043336087270833259979181096664166667055955542997377381954103215968808233536738252782524921812428624557314452216711784085324328843633216964972114543363800747473980162699409215543020842074307818027516731762600424168978381387296327909228593574249556793210146530890829344681691386998488071556834033351970312581994951350497755600503367789019125757574033835254868015095156123563675809886926877094622798339759400674126618356510795612557638978211909872865459348892213942576487608391373449769890741818270941794192865315493725713644932210930960743968336386694140403323811690303600804158475362663697191507194016955263800637965924470320092572557268601191245748227277008754917571946123149061077956417892701147823868700584367342443302797618238718840365181979638894522511912496124543031748375375231534319834113281208358723204108645614999335092429233069326583438229098713992590989138307370690342627220730829861744251899300694351309495228636101220684309843268070476283082220817417954686288665959312807187952905883926537563334825405127285712324313337736824849799522350631184725404485157949984645643965356459014171032811934265701649852270837628066477600249309741385565866636257371362548743506940040706307654449427220096001091583272286645690921046062539836904871516553320223268477293737518683784536855214203284358012943307273456878354489182246942071135181056262960270415970016045504676798836615976956709939550922323366360476388391143402898969739562236699025680087744912033315753338143774765449349370641205036212653410547788511166189192231012126848579042618642745539693104142446549755964383970704203577507935175055379944268814469801146490451076741571426614289838560273814037385729007381304628403623490205041728410466594742386252190828468598788020710781462474166135890827025041957839756978739975720505055862652208931416999760899307537195820740815223531902026262005647383480246304650722037475526341336338326879425180187204819919889522619662327243641159038880196541175535551626333292594801365079441952604762301131742616745480746781463963820656358295243950291170292589316686635562318862403722533181097924856590540639689792242342472475457530702207936841380449914647495188661210047584505988665460203680352804961143464937762946724385283918848330545546252804700087844154506787880296916905712733426113024665089151673271778196217807667547734612585810598457228169262455275382363931112829779876878472842536616817024852038965465727945889434108179584879847296364426078213483232389054280736784537001228889663476214513893197506668387169485845628790108685562630940056247974532763958714264291722913351920952860154273545996244447404878231467447246883115916052557147808176625720981972744570338646711717874031472604798886070178702431675741386640537040084207827263141123146578962663166204256929010058238702274995588304876403856223221355613663076505230264100456285771023519482996167491877831676882146301892599490743008204408710219772861569110322003013379950367641404101579483198857736945332020743844468536331605569202013788045284581170403775349289292627954911837514324829544591981922592906347129996957901022746362777866790700706683223394310268484442640635833352352699146453891819196317410212122470199296378018669745253683993654739094906242461698170138310077761798046599167859985328706384713194672428481470635824397411658386790829988035372866586367660837605940127536940581077821734134544500886363645249885691082080085071573876256533584785207865729233064677693018192828064498125113763704199799401199337587321935667862883960406230816938617436216869569570907408468267598627357022434015501625803770708512924133757157844927603792042092591882339748364855866637408308261689840459874387756180992703053845775638820376104041248960220446390515712652496533090958608720649938715849685546837987289379028137007064770672844246968185737614444986744765078225770852983081475876044909361815801807692176731918430261843538099204206402945944235071940252946378987970557981823648437144090691071218348583132246016163777376764918502380233709823861672018240106473073570565684882652148055989967707745464956584815455339598859309011091046084406381983733098234756226242151867223637291848226726920562893917998860398962596046038531233914350821361940655939826071726197785999474157960077939495404446501317516795780676973107435581622842553594714404620004019598438189164753510427702464368668139188462846820999790625849153140615487801711867773051027718158025358123506593491126148810838962931260936326888289487974700185501626603927916386716650056368820036534897026827494929368470125511006514372934850439367179640238190298396376320435467175013702023659339631710396935707872810033461171867272884110227734278306024699162758116699775908447721637383493508417984721797105981419221533032415739033528142826323218686074817840326455858789775872570578495169722723361101217156841840159563674646228534355467054022190060141436993424998967715706063000625303963331860520355490058101643519891066353636789463020795319743360416187917200016926866996597387277753645319461444431403020234411557228278879463905387379759521786238962751553260527444287825137144634265128312663768184775900995209763219957114359249325441579113646895270748346270935998046315003207405518639925681043388362600380222091054537121003255709077970308640211811183377104736476228699362986221200671681385512533434512943761437318465208708403214334384423937492963953701031424304564700712208168496448311464863998519746543193182843566777515925901182974686798729156440424173201433285400569908218286946437034126907364104641995161591253712711764504960239184715011967098764720178573932640025711037660009067207110957645247842493032563834247410986320271047866189195202259516478392223048255071850828662886707312893468499586372979973614664490076960208201054505392770777855158239179519230054851135026259061015485802288851763874122880100537683965053393477607665202321541060444982629204598354382668464441061840434111416840579500861627003064238566721069835661568289316511179002244602283871452862196390149481299791660761417877244061042192488320283818797899420981227481693818448099815858915074986355095092819268574967876918684147252799243474683425606662173528094106911085471316271947449290286837973732309288603161022038343093379545468951167568687162322739171446933396597316978615889046325626272051743687131586128485933310342931189440405182381480822373484066995362878935589771912107738649584583582776607138244265522777470339244710258102425240466921278623012151285429211680701584086222302451791147936944136462364830426229438638204960927553384140048118494133276609207211779943772218478836440992863477752158518423255651235554581103003080702603568677644688192479100529856921902532052026887245921175148636766710758547841590304895747823935639916651594357227131277125509776196159094969200894953524236950754395346523909265772455932134482936725109579209332520878544072311553068137681235303221881823938629256466978592953212521335906318022130809271782856259616363994154370224260344150799060293821051540767592005935974260533162764440139977870171127356070583160554717883725690558523774062941070137811811959959788590262288755855062640511052873957214873624007856619364890529073441367489714316083432083812462074462321053961556024355680325635846335862540703784101670191035669243938589210869151845451455328651541996013650115652008779964832837145071930300201559119797900153394267114494136744297012838611910956376902728925703017567005064672783527353641614147383853767540812033834472177045718106743321571577823676472721089702961021907479245484174543823295472071718208996030437846348533794809978069606895139532267581169553756644949799137042608000881699258365379222335404061088994421498173150047276704144988164494409823650335234199977018883395770352696596611917421684574686853305553353513085410962898289374575371383046275848122051851384490300255335935926249307524233235959806066551742789039438103591402888460405908939292274546063783995500208097324729850585881384653489181458329606366821912685258292924824983000821337106376504131244631883507766180017742818163567987552177006912809190843667822857918638186151984874944918607622136252821930998117951041535499426829938586869116155857612235006741206028877889565270732945332389269483135370307775191946682252152998405055083943484221176464313708632630092801369753792240187953353005933388415163259538526585757140716520692613420202137770704646940216322674958644373958290189438976711393449425926637287948782325227407400323643367510387152608052133202621936221374651569696275114488476348334467847100063780779737780100022802727967145118364838938458215656880834892401759178567047722874899043848382290591779748664682377972596711062775589141588404215783801260240573193999008444403734824886209241627920111799349160707521001260995537854241545219317361917702154038638662996535509394622977452404352397103038862983093559142937576108167991845145873203502436826074416371532539389916926706857616973540090548288275003481627274355103959245173719705784220470705092524767318928330581480509144096026952691978890180117196997939721776935930392528760446964637660422716582963961648500796498543236926391358749056674072895577217682745652444644463581607338273869063317896270201033242918253487656917515661009531350451559998118979079542092202687100226024678102934720677667579709335394828843544809994934996882389668267845741944067623349316543446176547846455273657478385466439745517766545648991108423580019327202764509553637812999914406548125486661350282921176786963664666014824280019950258252298776443827810982903793324032346598211864181926742450413940876812000443845872301074164637343308925923618127863419241995406814780887462009635804912157367692783264878969117281633571310015040516495786582830927514516971216351715405259988775999470964316420040604987266298543059672522661725945634594514949665557065497768798425079120631745678759648986597868041744399429178899714548856499088063154231062222697882874922342399323739563983972034488313614873103800990756846360549444686037498195443921592015449932065770741204872652005858702913426038336967283355947778816319259532626362162599170419518592959152250849954106201774011457353099530133405834656384567080017502570268604724780545949227097579588104526615965419401050696147173266693695211217434596397315323123157993587123271994067007816897843138574308816420341303647339844048353333636870309395498619671019653319859361203212201806452009601141832598229063604883452024402064684912835665250712178873886801300069005314769773650391359550944464403627604323851811333538970973688703436035927440320134224847011866648501934950178261349231028336251572444580206495776074051864672400528244145735051067772257664363047852664330266006274897861432646381554106472995201954801435994581944500979390168762871085196182293988762428544286429712022819158117291444697021940898500057400704462628358204333870605174037245544324210828282771761536196323213168955207466283244636608061365130296280840269296463728839462127079361992852213186968580840216001434541070860810300266203009248621522459096553715180552074950092712104459592887892281749017519005436423084132849272528069657219815827805639937997245714086212206919549810887547164990041978588842890380760106564871150186070510337058434650312613149995512471245714215755446791414346769039410431029494968894075091526053900218441822410976164725480089166970498976622004368334588508646834051345518972761759509675241281676439187030539927313906528493743479179053404444551054574266472351834514630272623414337896618009695903342726490514320002207527755594334436382314010851418470495507790972267712142300937340414911417476793259565378690286390644452377852584248379077686032632604708999659435122678707441327990895852619698600630418679040758504369149646725292714293011832687121213652226541512034512834961366370224418526748234223264214849434081888153881408691402894285576872893930375191312561428031271820744188416563975523788679921131295895402919759690896452663715097825949014143417226378711603965673164382187024734155054638759818387853228552915500741355317042197573913666642468882895913759251530438377610808220587127395926425054757017826987847985315224032872338588264809079575107285105624244625594483657346941664722766409928800408917290364113334377849170661280869394487809075122697517282726447986678676183285460049229001571755790983784963102450765962557391114322842239480629520872089240811051577428414351460985352744258129732784740597286449805227701666516183021407702683573589862432703375078306445747463759862253021512756803531575475449101631994647368073292266629218367854948389460884926407611368929807140035210233992385858773509855391774386447350047288552134965346494896097169797599931077091407011653943283441188423876673498532971686548835867242978704406872936906205065794763684889021757618692942668746698671745910187890040401150105660582122429797086690538090058834357763967747065774652907866993805036266007476906772854838265453534491999013561341981004473542369719836814158196923084143936461463396927523238252039299131669983610728938458492681528272945167759213277224684965928759198403265638051176973849920051573694102614142841436957979489070469295802869506321979755321451700444173422585723962527945043644622382098957860160587088169266114565492277881152464774457403705222825652118159460531380937402183389005357320155448878274016443718236089347522435641177339378078149573705828040787732872843302174230816500817680260088215135086128591238600718835669616714534807640109097498330658927764923929851785497787738374712558219786924950371834539748353383840323173811906199214335828897526669204839660831138937583057727898351341568080149647229289107872892018628931890005469417822737964522908323461669665495498828459292433507954638037628100456483450677460241993833379504735499030680304383806305148254185342472457682651591648854138494111545867918446164404794044813698381447122766016760306558220669633784356500687091436293640090472290433820459747559440940899859672645416318763354822077368175756298978676366542310742888986389567717982281009905139745178444031385711092345911515662934724594673878565067658496016817072253671072357845658099317697972954504238666888213191580361109093622817779105232570518384854523494877945617151770589174345543969746039409604856792193550289322403061736756626890370519753680989037122551752757669008286175371887475101486006886419114129242989208085729738702756824315700112423616575272773823873488738126744982048638266570833917168925307045016139869263030886597470334894395940237997407621188063510285659160333080607610899961139204388580642369397645638150277567991547148282028137494862668115547098164861036188386929277928981420863034461236287327842976309755160213865747812085336140321605266532195482836550332751464643586736697238251180293812195931286256332686640337108994796004211130377156262384769090606867613070728709707604103377230050046001134867923388115824082946486495619638635620727295211632542316681689077762989978820784563890975193281701683842328585785704695202862768060390576710480813095692308342165539130196980925164424277712437225028599907258480660544537559503347642592547530296084128412904068832825795454381655136412273706075068151030824328326507045767585367472182623238254558310203093080331707934222866296955572492352724720098598374625027494283592682012246800368498926419608547824577592345870252653182510555474688938157090020874640339102361319241112970878626568681794567375474065818971562371020457845049291411835135033713952508243760916623259941655942938192269252184416822379708575056864601947139757061878636758018447539452604801153676760999928499227109743479605384508085965045604367317824717027713172408768427749906243346787592519816423908989410186471062225536525142353835662160782184076168875216428832746329651476179362605601030783804802626965430214097117757540885535112856086183423100984106342160246529536393601839606281778679147666069017354588881904004775122635704285896932072781619314818748339577014436470499612619471499739029962264332126365215584948556143888883900502282180442112716593869958415649545875640441233871669916678128230797824679893669253274866163544213656441878289674091533621892463806010823145348294606483291050110763960744855808422201906871689371159742747304309250414855943330220103587331496681618871698704650129218323205768278465593137709974129258615343195782479771427275671703317155986195508641722740917452766094315337250622609613610170824045578956619824714409176436618005434046811390887579498222744264146406695176749784975833304628573422800816010050451730588984840309812103143061300188268036789017505752679395064302825352995442906933174132861544582865711905603635704364941060869855538328175722573417578860051123501542146538482148984174184745082742160099846092627644497480091550844261511717999118249397827827437231148218101179930559146036039861770364361398936969412306832898122118306897909299689179804187414612806102964850155548547023961620885027761547888503512916006390025379734354452368202909820312020230020246297556332484936852540056320415209363978158053763582331274388803264718608622610483453109379911733210864975577302702549396102398673777875625468261197521418955609140703653196611172884238380824352573636735441933628256656341154143037079479459634592066451913966657102881013485514107429833760604616038115865083089661407880181720294580566210993761799351140437659928813032205557709868860970910163678564296955751845650692629447486080585765290601211194607512376379957073664664246456835092528704911900252389672850199083277500575930872941879765168594579208037099153899196881896098036422360250380669861513746706342058120139120357761313827995369952799149771075156943070871403247581938950951229784541380221531550177568461243821364168822604763914430492130731230503891143223777111923126104900993233721823331773331579613940942537294958072025942527873722753926060091867829146546286626071992143145984050642650605638295919698442385664251295459321240061450259858984751478646583476738174538688849698833340331700695058456775568982658628017229407553452628867300532702648263164397884667536270284495303203103662430202880192937244041620833710073521394951714637063365480557764061672941543546232470943929833692467772016622233429886042132211101541037191065581427915641757276834261328849570653653890411722158463442853082763140035980669380412740190390399735117606269886794576971481597763581991244663148324316605946076253155952644673260109020963619061404946012759464434295395014805492561774094774780555599270016385514491610268394296115598967044070206852099553292869575855252381249751494025975995711855627112164888246882473968654573007327312098179096140068598043661972974904962496586855068580336507782252030985326040587397191190445479811436518775029674836800059259067189706111371270615138963649972022047955016768569244885564703546052337421272318902362066868204542453788129374729805937557620954155048691139088159818582721804607640115913729062342636652166039867160753623276788540837191167629504331295874494849880959218979518611347352658249582418043026577296809022167241146554618792070316609093612828014012223930110103478038988063006238282648384485287432649203169970000366632084918571652189634155824329673853535779675574229616045350769032300432698138774932956543225075275746391136881012419250578828137706765108259632385269003723321008104764064585802580161401273939830649229375778649363361690997099600770212229041881775877672202267434460133172314591331339495560922704031277548444924245421196564901647911545691583259397726272929738064017499064536597038648570179308738375329775951329477798725798787588174999798783670824287606331329644349855310663850869045647000631969229007549208125602681504023692298954313884862399326996902405649441832040738909128762880718592243548691224358622715809567986765963048413668381377532447057879096261145869144614279281466243581083010436150952512595115160219352440635158261326681690503908586768500585697370953212040200433713867882856894229112685175047343163187900200008054922584643876845100359387334590586209847359052547128706082109059022428559425425742317046012729422890985759009510567060574137427605059003892398473992938674072452103048170254942364216923950286783734114064870369078059525058249640494734691988342368572435352226114314181696850154830895072800314211786259012979593074475392027503168138783184896824655546690088766776713448369144300115968379559350071447652081223627832949851741191911717065134810820432626176838755602330814504042802929004207280822462252879445600312735814255830922844573106662950010723175688210659975065667220276885901710402002838467964427678995494532485249221459163509242407302245067113386342139635927445067578972506443762787363896741496151791416840747506280857120157890091403066721640199194916594548559406114303192294926498953050837547209652204199828646728381858375642602922718242617935029942089350201333147714124553188639607391806291413459088045814520240228968714085485510956532348346821350221417281483208219942641417538655132987352879835488891614446131263733510707188852466764537204814304221650654792510492759477181627191737613481109463003909157259198235698066322686695874313063104525123398512781944406717801872609908189176489665820714174644688549265067335581053861242615141071241619666621480009800546088260696728074283559286577378214583353747860070458281422290946620073799429929015959053829126357824390731102335108948867104917841952865370382781161710139795284286397692560600309806123045640195503239310933795730572688184232571640260950366632196819074877628399186249777397162726705555399157294794838907825279162129605789137969679094066993797397269453990964782806570062789197739877057433493128436271566395850987091387235636175609951545397747399883319828976832518455186009418391820208048061255948056120166773259223713048657432810805816717945091292688405202231324544796167743693620619794412858722933957196406106641712911319707547924219230477143158762013973517575436387718723678347009500843959088682617111862471455054204611993507384378528951146439313000759453539596588973181172448123325417075189059013176885328824986767478881466234607206273644811804657586479724940551162347400745767560968725948481179117984681032262916741806184369172642352818266685851256292650216533827511629541954347427025417466564032254132404674461828337971782194315628201879940102752375169784051165894805267944464558611032203049964892612640844050723107081964183649976756567156146311946210736250949057613964962832947064536140778513330124345573397450947465308940997700546319055255513110355154179707036827711920997353968076882712639362051623257705572255369936198680199567301322283215650143505373341259372350271315414779606677771961127453914803521323832951745907662412911601731473267938234293390349156577316164978499941651302177651477571431057881610186082342858796384966746177573283326106526046500519496479318843771592078832645503436864738195511547065561275921289888412968143673795468544793935449214222980239333188010735710499608329723944042362093671176975941451933958080445296707228853231403318996031583047085594093292681784778836655408549159187756934255861906992030358854370078710378146608660732310518685920934294745896302741674397098950710405001477951108411726305819083500016947739316045301353314163027495365253763983014635938489248650512136740336939713105899543702917180210388129318622426363342619315325776899253416590133843704029827985266880890741421533118211655324019229076593387393131460836168677691869734461192519487829272808936203789942672540497068386676233635224434275565880782083508058200845003902907561392881398255997217877904452411049497864165339341115222069164086048135001304391862745456841093515200125114135826606954298603927793118628670990516038766142079769479918918262037294100783171022164595733789709322410385501306367741323132726584075328505258584136844686403098694044147401595978016782929640757886565317091031932854018581831721323165437518816836852383335856869645233898602598956345253072111209028269927840906328624156851333641382245101319131709941885084530928355993203392183128452586340505867933390311077807989980689809606457736044948962032990984046375566827184915696608873625060314277310950357572004226134830665250318833271587766294441773517075307806481955481213920326912238458816227910510929465734419548042042541769031128178698312947021043328589829318433373707267401775138299458950757281671918713902108926077964707068716488841773531233477751565034660718602520053291024132752987086144175549047044787066545274940359974297086947332566746273073399461582505017855397832289790478849028918618199887152280339611924551626123827759767400501211212335046782114192293383065412084953625737013586148150845530215294958093365867969415016074142553069068895949046050573052661440992490602933658047695787999011171435435715911146661647972905244405870169084174156643141522787381920834719384846821632534375259476587698240541711655405613324311785019011169506161801740658244390660177631800324144440389788853120044712850316412338822144126479992962981222219835369121402949860718757442147755895458461700163824411303964095354810468639754606986054260412170866692990465235112304416722169879800697786201673616040300917921600320703753332820485794339254962852828872698765375643818852990250652804664644753253090522355941098520915935407114858969046890919592571688285156821905742954076987289652232348879467028699114476486283033266080195518666533516623786199651060148597527782093872423165859272556331146339262491117659499501729686980036131446977522606201648374590538276014669414607772525803764786427629811655224492477457738431185689183040525861140001338848850464347950062588269461624490361592536282278518257237368793070063753034253489462660269333585645535827196894427590677342577306554026564314030289174692444819084342900540940737248261105437965872189883233641756572524782527563632993733720706097165091840740968993401423183471037197971376266376634162350143889772579916984284711823683337185972982307571853932022579076980488263996639060349433342835423824136336705244001983132270850550140161956027529812993098736051836984884762328684591697653556871044769694121460030143442551392571333546826277023250235138206534130504494119172372520350919601957307389833376488701226332897398527302926712660142986607177858230350539822260935600782249386561318099056698698264388792363083330424594894785750008448968988210726051670196236612737160482853354652023426317244640542906476033001044794822535617930949270425743149001103918977083828294213612242663665227802648484634911883272642402625518599419880679518626397028564818886707097672577850321808198482276695693837563025259022892912432525402158539474001678422868707838994742221602699169306621496695809891656202744520053914082448466307581076021664394933931086414252985517081214935889087591030965492717060822042837657194675301194099102681796935244042214290301121239705738743980101923831632757686048456924565961711958431773772216375600504676403508184587884774554110996500589691441184572492419285680099418423556001516796924451017655171367321374899876233203484925051249498113392452522554643095247760982259617865009871282093515982875275404057321029263089174881287584203562387033485642411252616239655548023925667521066960618138229123668213784062393020610621891039635653611527782788322692480090348209475438662071281807405979196856269408910054464318500400160983939193991374929919186539400655340571956676418546657279315472439530779057569141921965644457321538897514655707843024748257201863148073922878518232570351374856431351270884842891654417706366069443794635219564018818335344002599050695811970534918614373567111320160596273861436221142620114838948635787346775279473720248005067654994581601263528067863223543232720578008154218321679976117110238491516905084399992952825756317582371450146190726142439168564642458011874898651573209481123013612112017705865717291096967556611112571230536469626656308015762021258394282694109962019455220431338112000746285576168333750439538020663717854080779400023687341285067642475728856395349229424052602168596173700399589518906511211438143976945352325595337846179637461239826063924552092859037393926247121781512424298480780642629483071817506258721259277301185710979470114372123210271707587999432111239082097844759335032161201893428936086749572841977147340623947456334292268362993011607811567779377831855782470908658431970738086559013014911031908159471826906179786197726595867878321037173749608940165656901117536182053727321211913893145821972004777070205419415714349071122383717385376075295658321582635888092109294204557425951421929446591360456562043241244325408861817185090960707370576597867200944820237433462232882903073561144599342610881936252291565208742436311839249401726390195587966963771419367099570759975412585738141931510758685183718690788597443594088050032335533210497824395370768042055118196723970126673165682292090146693008602920069934874048620278965998707523325060627525307072070332310619514315104325469344186732395896796182740010804334079887659413064290231251123574154234778302529898572984843913349294616134772391797573480452486286574329200809147500071504056866245129134795154518161427790038831915773682531958558465863154771252962127760575187552297811900736512956836542009833115896732089362788728553638450977911005554801884272627759169909950188355238051261620845205436889617925727832938444891160435732988615276856501726312833094042406312787448150342708560122579689097398737631654864009356326579941175919688040704895101831975079519466549803987763750567891213021946957339762348306326918318356245667223550803181920610497350363918315354352319121508806642080762627799212502741067267030070290227678902179992045437462421395646650544455954677783642454014743596355179732389848147088907946684044821827274707506941878842244621282016185824509875549816146603659714001303570639954899394035888175205826406765097874217203262246986059320564124618846307968309188305450564869019399616311683310859123375118938043026848410970793635471670853858068488044485392762185200741188931274797519971576958024228066635189443030817620424279572232249715689054769460384067577799214984243680761800274256057534262224230048276299673519638745237236169719203395169212636608489760213554974032079068791798836296495364837821568310838455000886448881415942799834031205843779911931254962835256886458750897100418728311489591208730741807285937075741207811669075809478513486392517944644028714878025234162381783318385180639671024564931205582254822275107684742743496083718579190112088721518956418114751903645158322888475637655565077246457026861673625138519388219790400311697288867551236026236969228204943792782863140039405866176296722523693531201485645869246439805204055435826450921744214452159602144644389191101997084085400034072877802548356917859980213024224926736442559168441173060181920881840529079321423119386398943758854555204803316686895728511997743172518348648324145263843803054143477018033063349823830336709283996991369415582624296781545888557879365187744515268089601579517687333376710775943992314712628485286325874617739377338658695640146693139701530740860231252392750437619432543070088973398861900618654064403382549049833801943737084326108707609294323034611530566527897699819023910838936732215610630803182877605405513641877979399856441627883102546041569935065017889868193948197912342509462561878584402612054690742177447118116108605834013144592905498489450262196988267291152236732298519977603503147788981628411661100150304359666483488442716557891448567896730855473174339924952931907237968917601719322627821266190378178727903930554627973191884084353220846783219843159761541192975295960132106846890445029489320365804137989940328298213217930830578406606886350530139718946056411821603896579165397414421655649264105967662533633293115458243816490166093249089242733756895989805331939095166171637126664970578815614253544004972486034138404604178895716951293454251331396471567782315647963556988721262213141744733353591709988908957475852029923222173909979095124701382091123559364793962915831407616042541697872605415504285258433008171098230861673462497364659684449996777935086881833760079926449925082271689659599556690147160208917653107773075319536044554856123529210207026007824454301178709385595146842036505381961194230284672345219827563875369267021377666702530158211610158325347657870464767942300264977805818071083872539302633836888077637103538895023541036659614064747873360099944124672105235460714309250604775245752831463233946112125075554869689360668653435743962183657130021214235003714951828195247493204518256852226249128280638814438198642411639353832305116915592832176731751928095650884379120045031473225366955287704597651413019473809038268150035524792840888396198052605962089786359569377784275804491697205303737454468587337718360037384848867681804522138800873190365832833696822889611099556424731181191295517474004941048142539396276829710170861609635621172702702771765971287576987382529854007516898983274842743443938394530749950511324747208918149844594560837891099497720930277547834766037828193379232965910474645414714498956846864280449719478843948587574652430103367135036224645100724019362604936626445898340973002293916765674215384583212421193013735980883074190357970182447079374018503670826417445052405573948409457309723172381345794965184761454425726642089559000654580070523558419683065283976663008828096505956086645644669016957061591089080837288397643913842285621517142058387204610853720508735205862790335152270708885238693702354415432205919841860852955811457499696975656825545556412983428950261070048260360937202518776714400515102908244288539617078560719831697864825728295250035571514579254223243919126135761204888976886437799057302846661389448074947854138117634640578849900178800121513306738776453819571914792482760785747452056879012605104561788490249155654557055212288543622656740213131833757015717952932047716212288021578740250558249803849282679275267159153695913253759024501494841782071212673635453096964941460779422660217263357467879373873545232420944534490070912559318312824287349176704213732244787129059779973593489732298325978582910047281347664385597908715630030341350062834551072172185380304656941689274411354747282187189233951575609419872522844074743390829122789977456534560733930194078458699779052597663464007566949484252431592189307136528961550925185891680578083036529901265483618367923078529542423559763261021785949128491321089008409055484020792756225551259965258862162977696611035275510681337469938708035479958528956695447886072578513450627805286992004521407908977646987961431547839645345462560285062151449286688836879273540164476307234011221405571290806894405199542338031744747897380304753452570402792117229487144702800321201858266509520902543771832829293332230783698050917850130935882216354474089633360655241024926998161360139155529031111082136419880177545844310027480251388628429169021560084824210339493250347725276922638807826257446271857217085418715333470588900671022100149366089400321055268809142666644979410043489539344428589274647736837961161228657611400051611813862501468507950118603871119158153130015827717897303343027768593526839970853723123300850399597019275860198414440708465367979666600108366979502351394173952418771659142997343069716217412040852168083376976297841926857400373859379946879391324072677482003499826591824393160282047235188520420769636684618314452642498096350639259441234292412859319510249402646809461014671617833792636418862641937925350083349688359112781679610338546076407435295858596460854698737902125070200206884100309857514589647982316459853903632160584969529335882664097943124879111352032037134601803146992380882191100206761474764001812422207715360539681659496937557583829079895805438888064569093379744212903060135326051810159576096501117700767427271141178088434321313919830809280727346180808646292083255699165922805967646262980650056264939044874699635827242775730926340274914512283102258751511330620214038869008382492246178130603877253499327728038754140683274579538825699222858486690196964984010053942205315673174191322818422006536624688017399726762628363487106244741488929990587735890831588229461359672803137120377247239671360500501944288911219123087368202800806256241115744359120393104802105906736643771248712499849315025815796687034114538049578876090424076228882768358831765055081266909370123600348514779744507110618554685765815667184251849789592071240080483808658603748951980060760313183530074741664383215745860164400221634718921719756440272840694411299258736215971175068322263261769006552415645236027612607144407307325562444212434127046336742893590337363693005263886931500072031519686905237587564212496334427795758865818619387201825634297254553330110338991533970552658197077604800791005738857241028355575989989969197485334565273612008034284760104199196567342938689701346656261117660298820432139214170740559712701371184055189953047160163232643855894019237862466194135340971796154563883028862596338909724853263551626000849991099835096523283841709904212497786903962030468698016404438927903850055263975013860657661639499752722098245997954351939670772991946946356540444687668955315575364576086257186533094808676278771289817881856293047282515314594252419328252360159144853540850192933274338445119815347224587310370678829874433872066814139240650461229261396048744911214381130409986841261911345928754531320286069933128347542488262513596817522043640395368821184004450449991362463667951782806486137047790384516851096800925816769993470998922848760015719670745274497619954915666746583482260618486596987884140252459258831857681254344667913671431598661864243855513438227507881187812746083853642160880921930914705367638131110696532814331110980135143138775490982218542350489137147920880784221381625109073308264473652478954845441386064698479060004114734919129230314483287284531019553152875633909659792576743905503087911133864390218167634738676861353019238838878936804512266734654778612413332800944033446829452287905137044407501489312115365659471625583755657060187594596783073396572115270613713805301885791127378685172857998820582908246308748598060540061245266805087440529387715361899131087083623904437810920265050086460893183187375944673315306548635132769227695232905302787335334489481606673655410861715395762904561567217835289510208604784634404687792654210760446086085782784042177000135307287277918204986064131997705222760331412453996820905862694918640532261757987397426186214818930556354066548099985892039872509775848390518009150124780284562247746098350949070196604934045841487567336277571180193838668197298238143548692914536333496553227074098963006655817399217454177611837513414818032568542462394104507538836683419725050769137983883556513768417977770454452427532292487602044775216589064521754239578419495457792407636060118447101003938069727300340962745306849368056133144691884783283011181016632797092716223570435787284239022114171333229224126701640043448812830226728338219758215482242191651907929009758176203225085373765174638698481518988861717406786768402912221159352850525355096583859671683353053623080338133840045416495269843124283222429329014240193444350049249365374431180175480999793622901545533810179552852045740863545089148052089781412380490830722563139811657229925998920265539251728440260266718058664340810290341880870284125965673686478575984348562035642891493745426030289964569765451981021439193297776489145084591093201470782624419165010245873167135164965341972280326629349378300190121146748171670785836790571589608034409687368056592315063665362634429242850349258635990814652324278897192566760385079715762664629076779971224374036738580682088782982588275715877771301353286047176986397827010031530018856665716560633109901854226211949999268327089570482817412745500941576767274136655365510063991482487631259829248547805094930988274275182144797708611410831565611218241944411886864510752200987319184922647367934748037738849112079476664115770773824801289769769698014227374353862843148577022947230103311259339530983914809718101383459610700125383527080211562375755254718694746443911510916786606520102046214576924510031468214103221719934502393347735912566348449584837414760430248595811803621383238987990040485733949352151428150669958264899754063405059448922109730968688323031572347017538129451517069895584554694740067485905389886783530871784738025893392826339991242028907477450744554042883382048990511238895957038917032359393970591328620691970348250951315973902286178232378058573550676692791355203336628456731055204267075648425450280778471115009492573443364153737787148749140992709533124739963153459360511449444865170799887540716816264223494908160688222984393210722438570369899503545499295839788766702766598327395194947681553318608937655579988558934174581352160531951324043553288780101448729839709962480062158578425192802468476315954626022484424343427434859631999283223411074559159984923171723137768729223536428553350259515430344645765007530755694229834026386636838108834043058615608462450096354871899954607875938582756354824967726032631032423358550781771946249275440093742217528691152241271449460849044285259898310766266479244702798142764272440021165654762468065631901926361715176072386627482445041883226905605778485623320141499981432675513730560421340836562206108259436740622306991234454639108231096882181352848932407031551269149277752666907137951767702343139016179829720045814049845865137655629869470475622737226525389609398140251281978546654292670996526609889477412433096329294657721580589483036652984056355614702342699130275054886118624778124351688571311633921211940912956447692253290318102670447209509030658590581727718000401060361405118014061094662674242021620297938647749555697023056874075015528815939653585605617906964262262671043031474311973688605239360014203227826759562456550488603996634846039960633403001472457581961906657667526386174556097181091623792054481105776568937899747733874548517593685364888531253303748969021639130166315208174102268079005173393471111041681724345519259037922180594519741029778152551630594191466781972332050223745615353730482524333140174416857898740381064483669970194430197151942040211955604371769581896374187957137460649081724861807504497888838119992919983528812045272176283371821113644023576764923925305891265281779337816755824507077792442625723206178955324414128306127388401397496659662479539922227667535007119365710336269021088043674179101012392839913418456936464835519589098522022057663026467968952447207339055077068292227338035820551462079836624850586725970168089982172220351151173138786852629092432769894095075481700780044763107543286006964087020203222510759370842383308290704146923859920232069623818432995889762837301046062450048841770337546752584191083519995025033341743518117184408920687658393391447765418103874890543657318435074040013074813792834858707011391755209394109558344764676345401979157467054177430797663499382027457333560714098796724380872450453297851901456954275708908625089732318672176628651121595131480810416327333955793294236008706473049970874901075485384915650783854904548090181566185251349160850863297467899338385647364108406964728361295688581237512702807238920404930221999359032338649904121163837402910884104066672371583858587040032214365478598834201713348928298990646285861422381104883769733299711572809624621084518196059172540532634371733322532792415093505220971717680293444421310981316014360897510507674207646651630438611901146323968956751179060813580784682430087424632172310789084776208717254889257208105115139558944185312248962606278606186350956250649682706606403516416803654671202756535294588755209264888143188354755582604099988648901352651572187451544599091737091094568844776147778071954822599664436992214729904440103736672291117031861550558532740718895720501886400561439913118090490002252699248011309139147072208859404309356884119767156438748142833561102585051272166302665556375930193005977679406874248066781589855991972107255960860824764125197892834526730380162472207490627401882282727294298068596519825279471119635461003828332110583574933183595273496228938197821520713402845656770605659101720427950177739541786593350505137076601015593292334762671348578084434374625151888291713799063585393014147859971508139130253947884126978442962164626747679232438997672322386196169221937324286505199520330718407926709804596077819062465273108050253479857041220976629468090518376108320939730614458172228465608904092955601323693520656248146720340039463177534973308837408333596096580295200328199076953247881381255470508859480852200491908889386903038252646031607869343442945711119895734869349885313506485574180294494368288236539681394144776868106378141843402371338381263044724408111830169682488080912296050666814947665200087349985202878685001198652238334543481986695618850775100421175589145456348915252828593915151738674434356731728759795481613221604576233209827441922423672731894759575875089395192559056418072109752644017849274974896626026168758601994103133763785831989852950001992452781970733378496372218836281130103801427969964412150549801968483065900829705943606645936165595312837207905403424168718021186939760577785119521279758814392210217648434835313253313675962831138334523011290308836919256033144706671714187551453430641572884107899392825494187699160798552564277839635131381097435439102960639887915140217226301694198236222736647189446187356073597262477876933952438986278400550581577815578479289310543175161444063967227522884314311095621684887084601035436351016355536010395719518894640562288095637852304812076442412467568534949082586978357794699062007063624416143191010955836685263082064132982483480120490484204668005327896868884751886818381099995753581382168624534972269084463318895286761730416269064638812335068946647593753821500528639502448489103080942210374112438204710316711533568970399333804215108547241816482725745822958641527246550814550224601200515427028820872788687595970817593985175496359785220507398724776777294639328293101053619345325671463232337910311359667865643093499467180862012351949297791695016684628666527640766318904414952281572702722213042190287793937934769206185507987833836953545948969241414074339738927600702145050729006944112097744155031904841986670063419820778206206784499927327311248289323536126470372530754847780104980966760658487774021324854267268524565939568993913251301075943338079063017420168971646086087194368179495033628503850856173643390827789560683737739946534572843216542899713111073507668429526869790686840059468059124172795209663832386440441208406387561783813980943100437646706190722447710912125987579232600943494031195701585838674072374433326578282102388009130482893926425065032955805352248244883902720822161802043379440982621823679824392136676131977041103370055967290564208017637838521581331067694750311607983109916023893426084513602111357159324313579972444636138113304308897824004500018773877654588764544388554862973482423509508542252542914575665689182164187015250460032044205569283361050291134729905592061734675905680137049147312109482866395645872371975612068583362253526230196049818675615378208256408386655895287914343508186756651045579472201672246796625908040431236852284223810513436001861154489952049321830025751517355763854603783020278036712486359523829414145461123860443958535251447137390448615184885988126853933352124240815497412171649970930780479624519244206115073897052764429494980259584780149644403238068556174726734479876970990364336657056544687476579461970686699989711426030293253492558818881088013490952540885483847876943701864861646443634796789368848477805389851192041969719244379995270751926475243906067692498293401641425520744154900268316637077341517082271446906870966203890504587670678892470845107874044250896344104934859152883786068818589611363935821734636518451457344931546679919504765401226798134515210343139212657670085974346930086037559586124577411885907935097908015894552521204459486634426447825852895992326380736499237667393904209161699403100927643011146353268017742314783498158375635830896473475324119374496945195215278228856462753138647138669185495337431147901452186047252156971770111240682069857214142215124480579339433362523830595495382751443477000331752094767227113139842285427123201559758332153415662953618505668205717724331978662834857705996723349729328831680242156161724869496560047195220076634007781061852932886266080410526006300010661453504732430779138547499602230268125746225105221702115664188726546214525247773937161602032190979950650091402635355684705083424230743296439982921717399287391989845653339193939392757776946420925299889951172875376837801563658939905425614794323501942045944567503760364960926938662378414588868293302102008671241633721042122709019782631200175198114361169374624884592555048714886711987157963498408096184968725993041859482058336020970549515603896656628253996087382605052398576696710844084242674706030517069991267159392456064612101328095641510247662259394683653875109704916537115576700180194596299671452695155513910319563082193023774932394259425965298084062576857069103398618340388625749481111722809306067126892479937374417798212465656349990239284245320293832434790687809439287493289690209475238866685534158705513549131856769294894411443687900561823169481163201142475223445368539814100360451347772110084080183419784188852850230510349235719536840164691951306335566641369000893774702790340204296174725468990697015831258649479207958504174919866207493969870365179443375984988541201301225397336040775771699877154942472478511153459068430410028217948550456124875830694890822606770543719636928267587807993969513827541645175014992399905173897600424394294119788524421371330962416050287806384706356944697717640498936067233372804100860610681682213855683603556560659521829873049481225851623144827508851589209671204085354430000873638167076153024643602875206046913160678419541322504681146470614046554839194549428079910229556707937618905392687797533565025032181609167455629666861665532242921612703361095518431220030964160736752447825476520129140851781692785261696879538716788128807559359406240996247492678958134631911018519070362158535304209034088136540407615129356249425938360406407679042853573948916743346604288264479194391410392023509760890776326730771583287923777569998113799750837562272337964095331718635582075416673057666514201229412418195094707179210314676060002687076425631250066594700198261423287665435875155615118248227805814431020976950211685417913399546998091917395067244097614220784007388245188951364337221286054931945513436593119161719408589013126306084783188975546322044866792933077048859624408513350933962949671496682750427081368569804959421812201403052788030424175076594104019737092453800749791086446517767242320631013784134733504309393525775003460986187313436263735897562559433888642699655890395066121074894444635044087350738117228898562150795965527060405028140342427689189979681509282291755493144265247170115131936119389877732078433041845876981969693854291112244657488894555059160103340570683433311095840050250563314953195216060015083492204265345539892500780912770469278435808691745661930463516631459042901819835437231528606284343576860156271873934616275958876040671961738519486181494301612699252577001496122806142136017318068402296015454666695948406022475715791459971971612889794449853205865873163434159919461000805382467279837638991606115148649935309879616328825000371135147109494089521611880739632637651197320939913698165482721032281141665989417753560179919066146511804094268850788922360489542776128978446472668238000366841425460852901837945369689359656308844580136107339363544880681971560229159459161751864592225666886534808807467491469634796926051375098693321331953290311213699660629672064068424937245959195222357687327306727440127812137056768685801456529145463338448981889168652683352831691904175990381288103987800661645630561489590872877345090329260360374314301926462867628427594499085692473410814209663733622729461261592356261545437103199144429741716627397256302764917364100048288640115011145430448678300161332854183190016007283306999038818355292746950821832085041009481318827468881597954214975835493759214360750179131126875124696919858083342735521406202193382398502683951959608370584722471243615576513216427386030269094708280809406440371813594340222165321566309062980547177269674779980199444667196768019080064302845625856391863036751151101415504990589178405624776674572862173875214535961550491715751783080143874513876468449877453280555559494955153546251519889586881126083523361393016287014925748881044327885200482415357349363703118113611112056865643626856175230301385359449274007312518045611536417073742071667366878375850943939733675636140052401737405730180933810341161817956266711668272879717926049701806426206947817452627495005405709005531962247369311234316585851052014647428443521591993971757019734447391810547060572171381604462576718682648510014393838739377394005938189885880060843396355531310764492630827675619978549628747879123219933803481122174157715962959429197454834351214539843320214613826721065470984920817208936462941553647375505921052949051879613427634520524698351916977459597013984147884757958216643866643201797912226338129024974913983476227537008993308944251560903881665964641226001614513851207832031694385723687405476003467660123812812042811842316123031672017033197897500513964161812013577947219618056632432398104072925371237627529726168012384843765192049487329597006130109393333965980221446961954210738996398106136260462665082315581899406677229989360077516749752030184946271662284362915477319186576724658021912360654956938987763340615114616621016208910034343489851067900452641714608997203110730518957324188082417518158722481519022888755174340663839798333733343709812718818303818382434815597587403647291917436722006898841905172147299424705722560349811929405666118594630175789121137119747933836514229542685737242322552861911477110199359803221190950859621822172546509050467236019989787992201956729760511309661375666275560845085460791302958238114739543529496784233187486371800803203103344428459079165491028343418586746770073798725946396914828159046928393725783028972323904802005118666602908707558616336881430747404830763350412124032729841830415594284287444032430508719160204933660292510265541134511504382654019358613725118565688836879534471098631223543306574876518972794129431242970388478283668737054427093004136997051481622551661716121472740880740505266788756715672159570345450761465747122031877639291354945154659396161958356370288263651197088915187700029565840811645764720289992005694995018066806056408263222261868683867496621616824317243870135688093087754505194300557224683052377439276288594890714959925454120173775442979593358691713554133603422558516407482566051919845679066015727489798613411999135093421220621819563412048860958868029785501024387505645558960386343205625707508666066273514127104751377623343564655757328589244466123132506345520390706403281536509866953135255232795167087440780506815034821778536115842958115931621856218921569474799045343104795709912983132802934712195698266661067539793248839926715760043127319418528712792480774195618318088266075209929714391979149414422303446558876351555359096058303684738034036138482610357990093092656620620344408982413200893736729297627115721440007201724518612510398417705320664470924257016012751708780241958929449109183809667050744423829918380756038563776498617754998191390938825542600837315103782974275631920079741875259133319551725068145873689375606405662202741491393795196349345567507796232684437998005035706093238451003356281160889361087781859871910129492949656772628878626551098553833422084431476201231122124587447972920918140305336935298763695839838674734330665409205949147504165492296595693269389049219632044358128891830607464438699543049900385676420522288381695888440803035353623726753909230592627717472885281336486065493931354310189180362680313605982623029620162932546568560389929213653761994156762828383582514912572449645239499934006373961782771963746939939740241814694432662346961465520254222566300943784198484266745773760049917925254226458883693883671004013859634450454952710859592232826969551346922612426839633979190716575521404944001032379998807026053857321942068945124670468645105821018380814634936980279006939013698496368052853194671356102709643162026024279233533941981761104499449483986779634306158484735445305167428036780936571832401542664827091997208094463871572525948366445954383312659693326338020004143517619666942925349476270890699657053923385385917187281460985939003516491353181601850997171293167966135326324986395355796275351583335479484067855412303746703501645255019712848978453244363597264925077726788731492073151216900673718592014342005543614795426630273874581025431080708130157981729228479910326549851286308494883850835626461357509389078858291264015507894575138925828939764249513258448711283701759204986367129110877378200602406164178293743791503000406976498895553763184921177606189589611809130038956055607427805477340457843229982861582247975553244260251859479558208120999224579037857385485893953727751029178349176112177655465507266158886833880068288925073892317300472503823898502961228245408022643709684987935164456595195831355493589934771692623676396392615382963591800077306092424649207923371665526333217635825141622623522524291522159143469914344747279339518246481808728873297407077383183755734209646199326044797518186792955944139832077880562000612701107344593365885972075269089342846301267461167052196730397969691946817530234310854754669876335808995333050785817637494113385372213472070957248263513587168477741621887049495512205217631852959888475250046948201749692033691042602263765916212120792341671954526930305047378400120415107563828065624696046331157736127617981712432304057244792050274751789439778483922112729572462651959089888541469607822080376933073433595886808825867380347030273588040538323251504889624774886572486647586314308306519434862619787525468731181063442149350102345331504592262866794511031117070381020171185812405186063140819812361229594962460172505892130513608207039407314267137654663307874355894532962237888050220734359397472177234738253244071368106848610922697391956377003248207378717788686507413171177663492521588390396857316918003708933833071881360139900528270463439344795890893415172553810045628330267695783636579901225410617017915228388124418546819004012144916318273364478712788271306117643401672054881719954866512298497376181440981427146327940426964386367558066099470090266125700831218330090393087655277025128554106988112444005009129069066787858137298035516056610477028649466013973018772348882450428403006162314818153593047727838314534074713513927115933857284234887335041495675888168887835294413601244141667412801960465488256617481015222575022193766429740672784204719388168976859218066026641529071402067926994531920922381810910871653527054360417522362919970663550693201763513405328704977502183559747344050715128948597189767371889495028120869400746395886068140349436506563243642915222465656381236635968675348906877238048502096504592105501871238173569405764606046507001548339283770463401435105110992282411348987167588007736306146044245154752248133360368709166075867995163986310929481075535520333402545527027082782734336947886527920754901300090390959521159208224118374200469723512898244996817744540445052652286207937677337434326139523903045479191185622138626641747088089788013184088520914624940060538873284931494472924536583337890881395917075599840634518756950294872884190659531393772896345847146044680033852765888702538645649102583341661542650401600129757314707990231147700407286484963298377264284753059376238065454235553141794553932592821230578648893669814350544200239977183347672720471613351813974465156669261816098652908527783762406716394234355781152526195709523667460252676302542600948999812786996726404582396003609690732459235054406097844315462871948028891251537952599087538720711622570962339702446486929012804517498135195596132212579069433935049024147478330230720602204564617122301381585323659383047287262156971298410106724710650297204601462542909528444006998646151161241970881171855249827073074442502933929868360920596535001689175600297403222772663870865159650195872752535897262290406085826564564198592381198497241109430282648152321545007093079188556279148875116867282139015581933682748447691463232565101295876050321432613234817951915069281962566920020062197350371996238635891200300184493166289525075088866076433909314978687141000440338304980805858521659621019080804320677157037923526308197367524044010179421317915452702850384828606683770575840045914282189338095889496283385465061328262403117471529175103947572304916670432618687150393205640591056857026970406657284782348423968039634751836644337307701175142153598845791629818218954615081452842690731464507921148359469164706753700952365753478408899680344398985859879674518121679915598072091866698104240010712518858402294492594946508835020999621272909672450445052797431560825631634116670959007325767853252936871512206708924226528653563459696045402499760475067788624236799471182893319910170864941459787126996962454130256919172444404742826925202701111189811351858163520985520851596169601276357410523495539853397009642710295863986932429349735345534104237189567843254736997459857643118074151293809286737238787936880693446799309502112736045644368476651573131129074292626931889491647301387069433790589973946525460730995332378261664657865003936449147670513119252863358935263476371645551314836867393419565656983240572253099960036388434804313807574432999538576008492907784564741428877821231282008730554701796195985282946406044693748391760805883395408002650485357435509238075074562205552077797540023287189509766529431371923890723709197763394031775757840982362453676615944319134587159459417065264838171132221162917487165087228475943255575579599792692719179887862668537475307397468226680799032220040226657102947559207176340542503678218626270481790810479895722320449127301131075559334325682868822529303893331483860691017770421917808869927927526396365341657115110498342067736770644309116811349974231844340401258679419432154858581740524351075091234174517666391691726483702714384899185749732672044391041391685593141328201951859243544927855674012099372503414518749571598619035706376047488300511903389450334319036875985071398085626183228701116602683650837078716971348568645221619304078022922808898940062693888744177604045328770172909674361278881861424419625959167389974226719007194485011703185451555172706884566280869347867014904580554900488634038964987305236774966913497284306691198481817689523135097828068160319075267447888023756860042805129869194265593533319112502901743478296041848313012098817061113962906126848505425755995107136847370564703553103480977304719290886444635941596580310621438322995050513505526451295284476477338989541629178644035419724742549783645842813391785600992326932901947356551335139661681174219474539022505202726200738173660897353118559614617519086277598160763079386164362737890301113042921791335663383575150933601570538311837031952859984644961939397731491182459547779109271098397037604733862814877250417326528448026207953195268406904991033767026257224487376638767475667370603007043535847094567929888913751660586420062550571356051845603475345827846233564781031992035478340784701343505227227514782828643271264389232805762200055674499489905375881886319955630058458933606589550386283368331621166926285119356902774447083217271011851412103532137398259330009224397657812522174341765465804940160170388258945584343563939955920133301441215243322696873939970550555206820792659657809646794647422453177891867469507719634778681106805878722683260756408425610061273244654926708964187695166108067868237617519309589179669833429978471813093400453840861502914953851650822286786401532920717967855004234442483696426295732668411175998186419478482596005839429854171436956909965138811806914665333077716228507194099118216650387793524191781915135349404783403007410488531798042966668770754112962529806872876239767786995368186906916178405925811461856912521471684134444122594333626902644518746276573048837497022312159378460054734492880800805352527101315677930228991795292897412323006348940149763584573761310745920135469083606769064343010272037581297433268617566394109705219149821756561426075663205787415488107140182347492974491000372325908738774173160861878574984879379123078824918402285684515854592914188518548333410183708418429025649081702876734296484623498923440900174094933492637570798624607645409607373978980355519899293923093350043257678497537596651759110286182794585498749753280564327635780027709069381087206419905642647121443291554930391844957204043523321138350286549725909066627871528728983144279460712059840460009067970606574417782279289882109622388954436928342937389385200641136727079455577525326223328105925592270627193381704931232130620000832308740097159240745120549206041603484483268501074330715259024466392649868089093292313943940145198798735203150523480530875848095843773020099251564374607950271594730590542044434218233271508326677775762999651174962664535717865966207361504326869345858273769724355020170534142388105995908539514173196628110887539532077903426857216494036668885728314105576646797792732714299574390823548941912821194979220342324260473438138568900225504291860180280859668933098674411851363398550990880078026147751522284634442179236318851831230178595318864086817791155846467271908622340304539623556187485258356760937454946327426626613215912123305250085292874488171282142673359162797948992462441670487733265493834920759782243860181898335357593541570017367933250669561765934468406560075566431851545401980589006299509839551323013675787246847420999054079080570627575521643797118128154495993137810143629630739813986423833060833542437520428362326392685492795985696486503214666757086761898254636913369477760027937840258452764093377332992259099008436606528553949180350671374675028277535800937279758038943255826869310378492489307988356039836704790795322080249101772010331881524667832378381825599361188968270229278785957108692209714418915200616467770353888445175603407207226158641740323015626623600483408451793194952828486511876463334256945590518036445431298464205590958266300045251888021708183057078650374982687349787021176800735455101944662498599744364891171904817835256139833251346895861194114352789062554955953078244246138153204598346659956111873358090068218027564487821658561233223138501286620451903399902461227334947099521232654493512361019235760110124520005530838175814809826773386415004675383506196161126897806257823475662600644052620882715129071305886612649896240796997641080426998614594788034557515853862379611740984951923191379079155531123081784838000520017771348309398296376850493274528547599481459736872544890769065268786673283046560194222335543423331782376324862169452377729553382569608235517132132446455645578669286263647473906268419847378410731219085441477805454852607107093285428235669237274104760518098609944309149050995504807777410352692145782504925713267417417967033773347327261096843562286123845154106970673621761592468914997234313815714263192655531699553616140070807084177382594198719562941137373230477770468104851325827619951590544701810761271627476151094947520893205712389386334289632191699627957690424375197847150213302881584049172486212948728515750870348529241052550934183757632886680489538310974740988989375250243503483443557246116161157628749018055412020830571852193950235038611442437835739604520121560169582135948876681653469054965118195926197433195709430673016599493329424651083184134869031439180003742225597630491461326206926946845413412666876491397294350429954414770031527950098245762595745576537355107086807390142016504911605303016589590142442150614701446014533260134640211027326157077934324108913969226559317955172971078935373506207509243170236361430657914208795756115600356005939615339974163057057650238604362160988516055234461123196016623999169584292748571913591902112044172621619070961920541652696816528176955845451908496572720518601364592383048734616179654691272406477677575020248326485264440740094500976379960239566610386735035653760970909073581802272502324060039355735088723407062068812027188496388964273727848690373373474281244432048779530585958861557315915638467463262950786870540235209824415254857843538149427096297286188317941406713958007483642468507025100846376398770923871766957323378128804581465226275079976016542504735810973045809053984135261365469143248199892985749240171811941648147769129035632369993828924808009952438222427895397407960996815241837787582496041436561792824815358707262406555002626967467808974349254940717614960895261122601462530808322386264826433322524639978389698868351815313380327875190353615482710083546682409586928472843705764038339580274589496152940635379701163555855846069383369474524399220567195680694989273605477411908599278300767667341347413873032886527540419041033409019227007197371380403786037907304567222112177984775348166155760443771842145818975276411870717420262017624427705134154695356414953035666357067804724330274527436937660691281015820755195614293807976437404548302523820984973083403400240939815506829682943340182030734666610252243743286635735369102577147129523584738114013712358731888180553967734750253526001580040179183282012441483044428570767456012615608746808732270906649992234835737967388551320857933492925754452328468064889906662156762005894975276839154486154228523988107787210787816722775219157295681729408200231292381846966362933604112942215085220771388862050856484497665629992352684747986195879173270828308101700687502114707520356723887730980353286368969431111462736860368804976652495481938934967996028818496466543728532612250805976451645747891114812328755770136710664807429444234792133865172237759019189604538716202059435516244932542506929871830104152690230406799827578588345937252341064658163970110644504160213198892129666479006163694160329895328562770189933733241856506583754143035364778531952455836481649569242852435334361439797224480112981679312896732367263918123211429381922307773827451762380819061563837139727893428242783173045081960063872716612538747177906776814069163277289049239042697919434306243689952007565195291949119995776869740946916701973670850197931153246130881887181693897575588700064004795707388505517444317812188605719367739358567412549795488744217054680953110380470714439506596233685200522248832595491282645499655871776527226108728980660024964235851300368627046793419645584254475700324893753945799540675847903424146974409159209948933557124943547120061575290351908636651877576971651710053905437555703035187862005883072024235047263844609579711544982994194454249215339069349352704675776225927293797407263012057076970753197228494016150724114430878107489019179069940592854476832899555635938630089334314845127957450882521829729996286600860533661506526117587514493337468475611782039900600355988901826086989876357635718023152248744042163452834034830012673348709815382609500335942813512891921747355591480490337903232897644244312611702787418413166350457609572501170430942037953975658878262210325312558165269466682954512276291026538067499817280884895643112965599024736953365513058276304194377116583312610107665708898151728214131298826636482534971717698683239468386272830978237030415361014225982603701224370311470589943576427015264081577417602439688527257745846868529606682304789354605680082028972629475420253330568185437014116234093651285552843918662178296754117430433500346085533292590828944151550918430026339863489113583079997903228592004786679507688244996017283759579546248192951728243596801595288208904746479538381621354354853215248326493655411834305981440349345771325271251385107403007032803677685548421149264590772032836249316999376430945856088317264384421049905249107169841568819724600995261490730695679426481425763427679089880478033050242159332417902880379522817314265360111449596238540284966940954567745039981650390736501266164660009494536947068953836158462620224883600613086241583026649740127320636742394724783968046909202394811195092335684999867306005901922068489746875842987259266678577732790165806653460778801828009460768696482726837620859744285537335198674716222863001712844073283654144159490804199990375668490523188719756850621243721455448622342381059804977794806058299540474313286698470760756292688512552760613026993310716977979269155567211525876704041549534544065566775556911669084381669114573543883998884018068218511041658155122799738377240970979530444649571360074252121236480460172537038529488058421876105880040954259513801668876159629922522426331062134065584602908899222859474329373440127615306293910155105134131745547995881152221550659064158669439588096315867248604517550763520925506711414423126066101541802134080204997610254893921715863971243924886218850544927082323233507704663818949981624312729344572532458608041133915095476817875832661766313022697290487748146143933562169044678659301240305111450254160023077790253489152951733117563146010194430420297187034263539214508749602780269728180676343175150189960358016088229377556986266441923143599687828399214638662597929439104020146929318641096850825559927599633240674898453656535341049928958992541898611710731801760278486163001187305542091553470223088024169269709862820084310910182885473102526678592076184079913477667269216805276742093381858699578130422604976194750423658881718448701904922822078122255129874312449548276433980886329920057459310643749941658402016814646406721483314066537538618600145705324911587775540201581123110396988933277219540109874960656421855610263617977017250011079397548729602623250207465978795566942466244126808525164621967081858292368771893384616780987067968724390030295510527147714558979164857010896900637362910742973608784693186291383258653925284995567797613107455842271999962429215295496238703634975051537258527932602504732254154376244714836200735947554531792261429207662746871786525391221380742071427898939219817598725184684614089538841299930611577786735683618767009533176035461283998305422890238646950150896585264436703956768193362648947057571293582129092366276987592606248120604736218018843752617423249699021374064289091177023409833206777066207262374979924883835174953281663288652200089554191032751206878230363655096507485219090705224269664000193231677745580768857544779580267211265672428895213277690799265914686004670891662889579571745418747882160217847429661585326984529142571553657116839184997993153287602205291202288117608179723765408800099181095971768705884491049391222157868851313983405117455152232204058679233191209521643041625917250899125845356547538829186355992387550379229198781747914691643638415631190521565165634747441640563909511013521722850451590439461780705327592595548981135440604895156928063200874527030226504514561701277423776134337924898362126001907881085725184486457139983317480674609495597701071615162646821398111282470075845272706339382139262236545783643337436252177443196307875693045104886809264480217311584850101797987754821639184820081643955216100764740255338761266634083237557319205373606415717205415233582482042540054533744175578609969166018870373976729841327934288616112433490245462683796943331050594238737443031852393830575238371522476190109101844307706872536898338123065384743213600815699729198444522794869020186505672393618584605462862913744425528663747659192044663584635622092843838503298109236274563354808607462972380464962758492268130093180614173866143527760859731947563429783856601612106756000494091446305093899991205800945419772825672343464576333656395851893889135902391966444521285240549023136113558450586228150246570146204232713342482943428671459382925084872701565263540767258714755138100676847427768158565157232313546404694112386934329461716018994016131883630808074208487931416065154404313240606022079225075939584491494711346196505610952867515782226836202930314898314479686357965465158779823290803512686253951869308041279782946583862662180694121093357973011050382849260669564242091735923551525788974107572151410193747450934807197333489125154355870833854364044381567571240290045805499132922241015903058397029500431939543754605901214870260998215792034473989874561352425470437707820199944555924047935394179134301734049015276890613284257578594522185775585869673278892417326586364740576563771229312830025052779886411031634356224864200168333676607895019727076961310186928298167080323947678335545357576507893284475936850047619182418522698492669931125757852532560923966282697058244689533322914521539406009744966595026284161154186541994634808635729888850136283514895920749602631774424353774567916142274618272802966117624175716254097598705690132815219581324662577017220777190760231840435333778115357370514305753909218897676365148921784400293500535318166482806468246652339191814773522121344297682670957023817840144855881861195207632610096510205842056057854437642141151183633701993226575286888586956073190790551118781804200231302019690559299219382413597610779536250698798509588389923995166203702407560455965399097392425848649603398152370853135493299521751561973013044350831151613103776192264203574772380300261492803168117750188663097801823250434739748186536384308118243103430179660458067474722577971510786970472380876478285386738245011664473642840685541886216086421808946035938770079182838651324620258632833201568384299346780982563786861840183818624576086906860483763083078491267198065521729524924548595613294690955015643173989816543912507581687191189034372974379122095294480923995539029786119750272897872196115404368838686472571516393366125324178402307578853490696994334093004869590050785287481216065041664020754756646074630138735850303595021067230828260632912014310958630176048225659712077963121965253806580676361032236328301831006299237056167715895509764571857566526920544289454385341983829293388247645032011492958774536770442536199425391853128656568581637210499131896117011662811434419511406554445342284599167155577940806594972007374730137189714212602851022971295731709195409591204100578702343568137490326568057829550315365763994957820942743176216258206522726281747076896035633746470592649718213427093699636972660862628029299539645231589371278241581017948437559466058557397441217335456256484131552162228473985209731275540030171076544556008710414814669460084600995461367968644252140169135402367646012882860130740676169229384275838988930270148609117576663249510619728959158855432759180329265164921666556486995559429041781089012133325392490998926684135389872396392157757881059125793951784587549741637410625548106300619652883433937626514286228486618682503584716793940182438099741901739733784523880086728160146116590781191283002964199588943042930973995653165845224211569198331335468025188851662392900888506900209985382691986916661749479965430007697732805934289212602177497989111463703135681836130994697732283530194847498721183525839584824423266835168935129121810401069052005631666132002581000838075086084172144768470565695249609922415815815336208382736189331659204095529796202002626372331228851291685502705686796385541588129635786615600554272443460490195615531131384575365070114466065051591345503855284326752896674613614623992051183254414103876394139624347050757911086821002720562940072051037121742302836755464417240296624589281451945049645499312721518786912102794872697177802597663378449093498601162601974923825674950761672458400084503628098581899878363760681244647738736290933160874495384348601602850066358672281447536723247112338771409529538471517250562992347664500698857776205095565917240976196983099170144972602355389961659966740719575043082514462024799007459296652292705233958190089092235417998114461116155622389291059588522096235426851135069892227746235558432735491367459135907265049389492905318602897452883705839187473733101859465798429344445478203946040896621949967786685068990764899240038289588195093558719885968439417212984612679810613790828045503539740196945444589527343532241639231536563122425493694658999723780064621842046921824491458131105900569196253400892835289102759893350018857968463065182974401797436342078978561475333618728350970412837130147114556065422183303754584115832002238517444725887495233610969352390934033761312662358483970067968826425195453440060656864143448758469309308689652238113761989780245896747617254029801207342448378427417918674640183904037399644066857471234164550733802061787640075228231864009777219607305091417808526416217764416832049634059028229384173673245089818938251229496276484612281483739520695087216992538899225379187532101562719361373624983470555017663432000475032722776789364647878192869048306162238659897252755068940963460464147357275909041967249808281577468830536178840732525405325879453341124681161591840530969224571635881097972719316688199515874234535728532103279990684863100795632321588270129799257769295773203720985563993640678457587823919640911754650272916204008075461088363100194593836636769458884750050186675002505458295034900393655794047416137642173528987303416194991227664535044680829156008124567600879983812414727596568688276525393333203905241052256420838908534535876122861473078691243283193174186586631961523795765093952741105333134722125045512471131663467787516455497296417709625356771973459790216739792743540463983101374777500245123099897375029570124887595358968204454932938142732647396605967481699847614817953230348931733119107532672824134608609751214867784929170100089986799982378858089960358928930238306936864858206765850461134431108575439690758072244551166536344079253384790460820817026104500745045504391102935311542424736100849982350795079428738614114067257427417615079194803899845203925091657315060347312348373068287457444406777661429485139232962675652256749128779454227593266807500863444632299871424444675430840867999864600049832708140053065665706014462454485692831196247485296424689738143288760776481537468154638597746532021773016069409851735702554882679529592979181705618646022302973128804139226211648698758278541320469480725262182366559336688050256645705030264279178078621410700630527639892755812277374632921903320944463488409125962340511643311180129579962874017200233894608907687266995462858581655830972989283862669721133672866059084624915639722861403676469040064275942202960216795077194155611730382475185427140612709059948564686743515478165214581380825716118487435977584095555204134024355800226253805294753120391416301881986062663833621561939262684567553633815547942402954560274036285939401686919795737086633171801700662788065414347680479152947291733970848028055680064011330539032592664608561994438017721946750768831500620422324302578413256559977723325144907348429928423008953161426433196302801093371998510812967256562779256632306926839613026639304891596109434862431546785395000430637001912890564530840227008369572398964016923732365294199650796642125932807496478619558066844124798555102499725265411075779369251277556884268300823693998170024155697394397531015764251678925821988133293968116337622487523662179805526722626163672835106560466011943282423486390091470840387415884120050147013867693134910553310208497500972724983925744211853469959810882114712975919511443476990375560373926739931271786952152195947202180829953043062656166464538884767000454574027029838814589608977273011915862679343440015172539896017830470041835718952256486245234546733447925125118950945756593360328675394768836620121724522829569391347796576531528895296833292174361164016032031012154234746117726833983264623389729486823564126917875205226904450900853875627658992799106782821536098814225051492188016863919097653886780744045795786916364212072091717787516698378312807195289066174201554903103921735777581934084034309866105573878540251586156225794133494026978072106608444095348715980888050736778628097943150809968942410850416944104863378751078555798774017554986885390211201836415068134745801096382270747645187059459848127807117644320371208375543592679454042464905046844824304547554851085642909020578969937151139719255472368514641349351660904915910133624446161580545497509121716496234319486390233424094789324274751056987398077470822022734169252863313387804566006803449906981782435898877991971081651540950657756082769210425745144706565145021501489520048590891464640361253650842449670225199139724165979716573803391806988422312369417890438458238586400509864792658282720534904893848675981493016983508965199769203043559272441519770017476512961655555829372152749477134059159717134515956387186891786266657955254459777617497957029811511976648688399404238602834726720032592110078296400346845884503116269977130817360326015592443609153304368458583151687041309444985353415220238572858951517181220270462015303095587228385593906570014042588096398813933420203125509339132934596451407963023726223521584036163741664402548461261997981469260321692965545315329624874580613836915812557872478769126499198412080396271568274969731839956525539368436386840305979794657289413578882067946283281014806620107893921672192391950274894466000669373235827023346467714194655817217188786412225993671595248403670724741338814947775124095501344456917832544766779831533202065049704108362719506130127174441185780540535343251429260809645199210253453405822439218933968331381806450347901056393741152255685532265766545405111181774748150561923150194506660580053820370876055015370545571224351724140948240451635125490282627795530090984349907486046905040277351588341304955213616666138988019719659705229710401800915080471767241512811754124792095031392060314004078941467247239266278857857852319278224012661106000870972521904240922032177391072684286080581983888181763281209628313797996269637064765502187464876031218816868820705942243534967300746929979392589146115527995405620891072931821953442565438787009766322057374890494200323362692779872163934096426223579073093705745283214811277619299208046922064138969380653673552517252969463428202991119095260294353685574845299481701946027889256634818051352846886418197247617300776751871587505681749454613691551917721557185041789039618208251004332799363631529088155220417469644895245444177609433243120450857449062947207435619875295463614804569508308654706813868317630183377462360041695422521014622919908511679574288125086557846949596778687363381323331827382505446624507065525410711645114553659081000302568735449238058940720881357263307604676913266672185723875912612842560409192873393397116316715498279302197450415956377259130450141097496281310315859220633512085438946344000325008719566801295909136863675057700886516822210923838154610799101504323530799243752244452428902546515301985620512952419196616838184154835033557904110817533245967514755985483957924286813751599347854274149499942341583886414020203352570943887643284278206474780106923001814687908498933523643447491676076445799044092762560658044911053100704306267913939183845515153198365489439532756218277857186298211456456635117381372976359074136192058914222081311296562676385806611606161095503337482101658755507654285390054707663467433337936053271587776346708550774824957839293577477479180894937045226585312205828608291220246468290448512528267387752489416957513141886178889103185037393014028202089905091901898998223590002373497724615037125119641510568704464083060554247496422674848494749030886314561375225211208283936392387228335066634680164001056491664417450107605713911735546848944722987372288675129112656435240812766362519294182052843384155547020864560263223106292227451589844091169236905689790440264721987521469108680586845296957929467519764543676329358896220707835273978588914157683411131182640450568625713937489428964055982716944668767767096108475770119553529096164483215551110607390815567992291570544976700297021242292485856910549256639512791813104389348582702678774522850875981914448400877864156948142877556576228977035130972468654087219551077935814595223472359015517388603834774093515034831146692038885359457131031518834725482930404922352988416672134857028555867199769535442528308619977569047244619992647178299349295156409292713911716453126276114374490506727463937890293790487204014772531634923211619221165481070118236737797583600542211397141656928154030031562993912960482297448557620676568463561870497393363957626752483540450883411435990411251123691662066382306402269537739868944273319730780195068066381183005256463313562928648267103806638049048938488395945240013878985804737787456443097605243813954583341434637251141712604668290184196219832353524336425261656481381175758939732184047665931543729572329004551221584497448220924697087460348310058005588111636612691624979009584609238713759917780221524654331472025534687924686387149172027397166893701713781955477378917108369997005577932878686742104161716858304516891520166717741082818562630352999999789342852157419879297161219276566683303166003354196955817967043414363238216718582955185914840489193674455727588666578973990059046961960659585946556054422480020788949519723413860160982246998919609653806931436019731706545659003114563999123022445914513464842493096815348270563177760271005972700302109777190161395885772038341323674641032311387564085228572419508304014057635373986888822141082954171133665468316278036824299517999945144773409437765027293166395277984541078330922361583406745461147199866534569773162183273169511820326821345094856107845359431227561891504819186069104800044416466423694811441095116264083279940059457804086395329355180779598305488378042945407103550540491380271350868488846716781911367816609934552481666100294311644238701387732064230563268106404698047901132563401476764793583347609403423685590395152023870740781081237977898818160788922067130774420434364418790563886560181659558596074564796711421782604892046039150339188711856471393915518080845728908888248826220942774702729615365141108826884678417091652990126321661046062626425285618141296079767038644590955268727580718866155131626451521041000469329271101024142965631370714755431967634252704720417611787973705934480695959111096262239649113848167866455730085565717937598639826010554246685753403091580785649912472574148406328359460379115976609341613044535723840145180972941531088780827117027476810811325746325166402098609868412335845500812146853234814439192388067530555865064125951720872388842736457841990278182439747882410114415054593717826039664785633649000864078262492505854527126703251138010339456062432448568295942056074929214219389451747787050145378141679100540149029628252043452268204495361969139074393560421308420047510614069852731555886965922988525848862147261096795385110776814641545318423575255156205360513966338923225368729486766904782060393552290282743700197196122877259624580579461420732256188809802326622231238368320579759431052615579928329762074431678783553277585986660228351466081530990146129746460525618561375125352926230796831793576611584674832016039893715608696201870091295538385335341029539638139258386902375949634598044384910016493050360889240522696610741076632504866115832456629042736791748660238467878748778222250052188041636641003733629896525143882944508900882980935224977716313192326670944628493210838835598462452549367725450704718696185851301851295131808910878845891039967687627029309164495617841220719409702258638476256054004977165943840204059799529265839008305370542077226266994549583172120624322696010603220524451432551732210772577235728765794004856595052895586572810813988106969549685382859578301418194127565325426392868060337288735568450894441335089842306195994430302582152283240643626187405863249164731901892400557662746475739669183744676926436608362210528439271226231097190435848652161708900494495573735213496143443111666237502564608881593066327754417455503957530902843543646881841126412581752981505875463592748426091620356424703176549799616788683255743435792001949972323930720215177097148942795040161947516677699700553194224007734403758802266776383441098712959133784098423636910068948511799094895589213855068605819680446913708284224841142191211290543194065469687054510687171518805248694233581981787355970142206542719438921382858796355080718217209270999134503056632776353288947586109760513554645099424851370207801478017763477875373235672538519887771837444843101495689938407345394009702385129096695771276751064308938914242895782054194647682926065655208334030843084392701785819625168214295919069358577485776981160657824201398051224475204714400907236840217916239229032379986538906595113536454041811875889687727877201500964245514585457281825950973530831780127713466306797535175336425530068324120694777372533536961309390866961093714077874354609782992250008139180412395966059362271063642219355283941198516073275082752965561485441860053101535703949775127960424734001957346154279985714941527783563497846277059207546350562242214951982950602604066622427846510928343470573422971457573602409648594331510256077035135029730713642789954396503056401378156037433644138015909311016892399993835901400706582635611486847248158054189838513480854463038466067712692883994556029776548601826345230177266588683171322234507404248429820024740810723997139428556367777307193085414464665292205074078705823067053702481911111655268698879858059287130173120848538537287953892330724884902711887140999196462392598504568386008514316964239266337283066585362855898658898212661783016459454491206736757942212149133423060422536490662043222281718937050413367388940981335260789309225257451022777201400271577041112692048129825455249357938942145565263162763885180843792917040792562472440637799805260217562824747628671949998517315358180996826736201126594191272252431734158857704477037652804539932841874852826725402798530130026481908199816129890392014733319000420969165749813898413396322528903410584478521318396046732425394807630511020858788194425021876270044164509306805435620759957076021815028711693448281305457864665946519253846054913378822288982932006793774393231075797441308495089127607168467036206378140972428345612000963430296464031699380359585163442521388618197916274535404306106051131751458522884270416570963841276595751848630054478171142471908434721884264973786301478687001860378609589498968415853408064650850657649913482768921230109515410253338682688220490152172104631461265842374643937858663997730319350664841671100014817228092738453434585954329786293419096449909295614163879212098108699449274779410843023411999556667255984044270901771215818070082828782537443740407146307520127397452625746773356663863311369849701863289238376479520095889585232317661890469034927855330759399201720874301571868054580047270810156479513855711511227828573789137750938228450901277972622952119699043512923440254570953974866441968386051826479216715761705806911433377677329282590041230510085981946802539522061088291694720506684683620536154698096418170714883630441824069625740374385974785438706838757812471075830022430500170729302271758747741413971574806879050372821858450263884087369601417160240974554126104347705937795973477061378342962178133138264902312948409662514398995197647385207700531170399783888014848120328906168704896365789275002199295144381964859293848224191334505954944327427227717686354225681838253261320730296696300317908964750366093862362671385044256070509535469575477890619913549332707184855907036963001115419729857111432071210186716863068802761026139463427220052372388828090045281987589546152336453537764094450905285846430259457335608182274454127898458481079646877730246990405474039711545580491987285188472379886613832673075327869467419978160313127355274766508481450965355066837330979724100394384870194373201976732274014416970900404629060283734068240842841684427640449524160597164277217295085086812290101436569142424981036350261062578805582375227768171831569624393156324188953324963082263764054016024398075582059597766357083796339205045426718413111860479331508244999408967873357567475901924296878200430536859360266507471081430899062738731102457525014482169916038895463864059455177126066172246175759050396415283769090706883796292310124689742853042042482274965646580370051090446098483837440174457904581720370949463784758702280860266968426550020585050583258857219773845753017188553929255134572064057925997374805900026335537604488706898080746870336156224524188654776719761543138234087538860902246280382111422396305494684728285366137244653667302968235491718735181582949315766322305219815539757865254072538634772418940359276035351528857671009546550966642337270067070574542109941680148918260141747029685479226700170779130232260610547385511935069335021912888326076014518616556511905003009689289881813875130921870638401321659643126765533853174419446803456636410039589744131895163284896607062913963167178332320792290152019305841669835336354475991539706995482676086006684871843917261323844593317771407032143161334377515192206403178595112665361078910826073298362716730202706888291259931298376484339724007574918844600161323682482525525376293246603667912010115254107963670823503918172498339618235561657268039491986159272650433520519013319801555428702669563211557639533178056155832847408257462169562711703443835374800381314148828610417447178842454120548524709953473697606827603880402863610104323516293787310242780448501787817144412432956139618474582306235074424449100259777973964174632139519032856601401138295052718849152758455525715940978283967543467515861809839422326889499224515590644724412183721735856276138953024378640785637642436471214884903257668509005513729492735970743508029755879966450503520083690607752632260515036693172722803930633524761590526220150356975079024076486459474031643999068906830088119579286337329554623431795109271375213836737788717221427807309774442559980660106363440480585387830640510201057061354035214707801549435911823865208808617223063180572682354009119560239438486314956431135738905917686478456356904943888021861322886111064399710594925408211991334319248682741988226950724023700339142675612311295547361404808556189775889146638461899578447373921940187400031535313075469722360097439754237416342777173486851803077235917795112573116770255139520999100682586777913470409176231254596558738872187226095202949591857672938331811447707349266307912848368992191360976069764061208581004821953581190429452073412034063981696989399738514789791713219604455637739022379297410217838432291890644149055932644671450910873480325834249626548810015139346954839047472925363009151375372459737561536792836684420454702481890735624193126964785196926831558548114139414621867446254091828876207862584803392997871261816009989881624384254619174040411433635736162077980813561242745971023707713892348513997786730458232577210358571746203643088572907211290058527181054643901073223789923440995487541161904423111963238846684991239328030299070155450079223822566568913215829924072280952557568492347873203956507603305545251306386781723691856924078632464134327399167137003557923424836132295860323583240721553120229526292474545751702694102656326089497941808753432530920541001103139020170663862837765284875093418745019590489321590894742779052004544184583042301939509921560324724765629982861152126246948671638624028173774110627109396176243515040286779691804929558479543497759095203338242360259828664192152380773545792469323481921896395509505805658218537866933199939101201009247159344702703102487159360718340950983668389662166469311545740744916697925296734221735019454984128546616475312584436676519988505980516293967491986900314748405777716540431042681001376545131775629433108347918258402573312975247060601547181873860482975573338906146067659204900989892411722255770345307024804407768853233612026900663846250975615556963446624473632553584043984358766244904397727683721678275153933288201472829822747230073933219918876241705777457715981382992466632958930027402039333760236204098516109100085926312678573577653033978088661588604978697369833998010204922929433106085048316185499193863840942364997865322111388867694982378763236022953529907314891167977120634606966515562191823912259948096263539012811932093668442506774276439123779733092314600817613242380868360832398064608651175110346771556912928781074185928784284983814884266183233733357612750428477358332359649280087602924153933336561211806437255271993915115610039124088068825011710471756039033102471555731298816734634873223525895340079561516347323899628881833172826825345070775594606630114178146299801955217753563394332819188671320990595110064444087519856512169992532676722250456268105477255137844927784191817859512010122503205188942225391127888705838942776361380774952051772550915432471151667316698813092025607900019711209134805233578714877493770048578977162787655257809216367708407827049672388047636947832355623868923300562265903009877267168210748110747753772388300213478960182761987565038943498114241422815058026598354301502440299279526144946276893927584148035643441146863883655329627172218276549308058227456543846672849826888391674187247813702893780030359214798975634250797825911367434761990313328647732130027750171666993585139402371993625395266898288119786935168826791010087072879347734119595403681329582859946109175215459999333594251830245172688885611246568874057052364746827824859209182090754822528748212417036141442616642563513051141332847928650733447534011530090949364603862049156459651754849337931260584728328930019437308338288005439287909210841284916188509419718688068844526585256519144764714559857698106453832765643294788445995066893979429411659038573834618950360269140375275293276358030480190465343043444871007444003707359266021113654221716205354901550669858644617801656427305931573525497654308250112017937044334450437886861319035021963305171376073401372031920337049901609967957501837075495464446464553003489964387369263670733315707103241776489781383217465804566435429421359496518530060545762498522739253843953426980396327546965892206847029121535499289766867285190588390117514454023914495737636002103700971652332757694955210058688916131164153337863146136928263291104000191625296383624733368501000984054832486757155292757845398478006932184529443141554877640142116452169675513074162670854237354257280390133551123013082243444157316955864121431257235246354579406757627549273492674682060559593060534340655805628814695873059959735112463479635091256379299950473321788159358844734979932586847617975635085992163580919796764051644478451523759746032518562356897137483069451108491445668837830490201114156516212636047117019506829547319413100900389087462906925354027963642784901558940047819228103326829876403495344672320603346406673985737773372659842558337460119761161623158850080245330598520507471218156904777941336036895868895320705341092157533120276724311640633122565755602694003054284960943200713739324273477285974808610725055655439849134725758605672889143715055779619478312830387825765719563880579584840374051721194631812880310879653472395764156386774631118679464873524822653226038828649018824881302562843536576380358620252566442128262633094617937684283720990537726163952247472421942822087386449741422923004869667772028119806449577412366773730233647284923179907158487310464477891571017505550113490418903272560959323134382744720361232958606674696256856381059316861789640376390224304941112786531279743514728779916775489332309232234688430510531790014442945187744606785919613290634254802377989690172835692299574816662456596731908267876179292811001988834004006912539024252363872262940691439820849657311159802499540086493017343012968368341897356363412422681241737657045933437274943392020473677533222492348974534788619627563822665273737725341771230661866108027260530410428747180542769383846727502884669281219827354824476090161368428409643771126590062477988347627011478881357537698890251321097859413376424932243878224552945907493308072939918384865594672673952819577250049018228178300048699029427635225072271967389434653826680327536384001223134595923998453650310154845470815053477202912763173881423663045160147243879675053870135408093867765891837799968981420595822888255212346681198419369204126364496620170739989724525847667497331254711538206248191798809911739018540717297211830509870628826166815876184455590589522641283832565169522803549599246893937537027120998617355805785152968186212799906785863163414420919147519306848073724982837159942725486279542154401619511088123013501535576244302365407122528002511357360001600725191540127500555147456006472299994238654584423404210337298266281581413863017053113262251691829181809472312456640844827802521631783716145829931992474748383174166589560019896110152600853612327616231184115529870375526409828274617938724470771169497943764917164226713895538623613656691219811106351206106673457215507924476803450398020886213385249017760250609905046374332944382760747213597230156651652656652198472490548157794375720688613989224897132049275470931736059601871858318298328114727150878189765779724145215066389301694330086593981530040524249634625323933166768757480341361629521547771662264518758120447485516687541655046815029743001761405630478173710229241785145078299718103091207371796936181800344288178392872268939334015546864447711355356500207649913444076197560168517611052899213911521081930354794094704179710755092286514974044953519487736041132397413172496746216709427159103663084006913679816540386435401072243166398569774691883479255243894046981471465979464482793550029603614129173699302409279840808784759342449245665664518551546172476522262993835860953242322648705677320376478975939407686812328612794259038704621253014337198453814010134106732965472120765483599644589477206043801757503536075332632777652144908306436302910500346856825856010204479392313123347563537880264170371846079405593739606773576726821387870872646482442185187896429739571731655731381999084195026182787045705491615255802413731199748608046451306719661983244385993170765666251124464525084249304880909243994153471715591273721073567233012197618131083032946042657262303132775392959664735304149987640061022312672370154956818113964748996480761479149085601489042921144664124652322345045462630744654353214070797789929478832064144105684172432953963403124638408341149543626514801343154681520091721004544311689693898343689329587674234384195247102359911613203470873766969428991560249182448535364558942016855602428230148130697856213248850943900601629805302421679415457042067179855191229238196293757702785037682151083983344716489306231949927395880532962902169542250778773398064202674080767966811946620392988025163096964956416556275352166881330996608213305540372725028824229753870843556035947256980650338388312640362170748701402596913035166750088263153563695131574474470405377498375892551593104987266785073759619935808636097658562727947140261554305741590587102636430790733721741704865412117499999003658389657830656942397583539275209689853914374572059304683018762532552024252477911125477559651465540267786993220173187081031267951388552872781174991430273990398672893383120896351663689322609105461163420821722793181225673657385797194989230018676237436481359283944297038259025683119567493296937602334809140741451704362401888100830075347613194376712465689006025325428614026406007381883119162163991845909929795909439244987929913105287988688209416661315476386125347186932800469954872571060710567694267462372557286635999812782713876977427053300594535982220785462150914513812278619137671834735349699001617936058530858223984081225281993848683412750577238380450079592706463521807185570203175088201030182560424697431661651091967915981505760928165419440577317350079238291532660196333848759255664977319377695732926037020130794393379653967660411532188397869865211661477140247141423978913474232616984866753360833738232083212867898266079063066536764316309293378763564059857517704163085881436900050548067359729589461018428140466837211252787033516497383932843842548229486360087049463950136448746307401463032198629597638119534257575064065909447269337369598033403277283602571786469509072457354284456840731220899426635374729540784892212530282168353664609426047725150577704965654417701605522628216398822984252886957324051107145040128308653367487045097129806587710414632547732668162706954966779919915146863848750659771814724077334979760865727949491501642990916539875545521224897163306393760495104737065883745328104640392030360873289830739340856422116335292980487627245845559223501064805225430524343286090060736811695688054672612973436967262570782536150120595700801485592710806260248730333951279021237299318726805648121852105068205547740446554520608620280580847791804999080084170565150918892817985662633159181010864787301545651368602143588999361783279697391010029606641699031227949062287075483951430637313865220375814479990729543245345116025713364964605606503174008490955845251566544812799971270490167715438551753418839153537523683997420853613792321017349748728529967954440171223636611722214268564159730605446544489259274933238170628448911043593382924675756696484699634061595328337064741959387396015660083405275823764988438755078761314298192932927945272005646264272860495824825228583893631001457463763539281400263684960005598301078562546650603024619700924087637748637783801865475644286317000520087682931924288331012582056831721388933038300005393809554015972950336835978645849128327406905151612510365180259989147606405899677158740132372504119765377331877057952572277870147789795806347103288726117566610659474167672401344037174712595194001474260863056425880845460742024150831455385178461576639034342623046067737895841601338430866514322511139657017951960514924660468609111335420313918891742722485230796431012259130501888499093521147287277374843074164451453766499947580442332138664150606298656231393401012589590214854945381837210447442538558013169760305900286176378261137490662876416891807280910427238538639755432702943088108492259574508921930329190807659529390801719865077561261422703123009960424309552371113347239146497022283321892763750416541840618880014987618748925555664597403137534002557750560666696361424338532013940895099082430845204854874378935016613161984579968861434326884755226073320638043810641766192270611483356630350765731664679218885017887037281029342405775214507674433565491740717879585333950009687041546780568873276091188216743189055489987946117026566864228189757369956319414292534420292391474033701692448944110225129909996069955700829675348799521298116839603937470778575402729085168449412482857798672453211950640751788166651841384538504199454914516878045093342942598086356432765126063847682782104041072250325474432992520018096546332220546650008940867891950957572548745332502427778110713457563126541552412198337412887512477778930772668974411370555119520606606848956493643758645070618535005268903650743265589500119979715544698461530399795875451399126255124890626341862604929709500440212589296998535056704201444190500082874802081666796855822783973514994118170943350885591389626075502547563960824854432449420843151558618579727029091861028541008875234206469981601784222952816707284821280071355914053439863587013859038593868093128125211436840741568521563095477449736808027101192517310750526324612408778881077897599488503874293339011342516816251703073919278475137535718794572924134382584319379308305477259692765714649271688008829338854290575618269160172861492401622855362670524101604575502840133538303603795374476122642875896350579204620753696003932495368483016188525747005534958404202831778463871242877058161050068721115259091001267779215667186295602067181633351129455182084381316054664033678102053104695234945155340201999839629452920925149276480651712200077083511122821609589916361671172101706230968609044245474574363951498785157122444666214885111106252271025307730384028047595801786184871076565604299138698377164610618933887117536376823676117951932271524112121667456552538271328153124284597751717524830079320515423395693263247401603413251526793909428135521345588227066457512755558483223868906281966394913519507864458543669797689948189960550560611540574660900571510977825333123561386344705670816208041438018004810182281303923727813518668484879392330338736332536528058405132003553611216264325793550313497827503323748478382470582653340483298267764225510257423898405482468250289197273879540612132954643593672591190640830550742302749324984685169976477985780162280792402066216528861290231589909092286315255933834438044454970088013474388608228688535329914412917550842186999963946244967438577586864604055246475254218627973526291865418535462627975525343789274114711545450099524541501804533052361261780962706367278990551652893471354821775817211676957205165559186394266845624981640958750640752545050760504858496939797960346351507985236826348238733530930742854464510895297692308866440621303300030512312846103930407228852986257510130486253464337577206559651748526652682817522944766546137952849364544753447161240270701836246998464686383704603070541675467921376201295299963497706241105463374828101420924913824541499731991744944947152241740677067382806225427259372851543676769407256266088456755535345620159966323938092889988447856061420958585445567064485377947365245921409585735395532688688270715309698039915262949924525204481902289229900754451001308341000441660138780625469971100986368125423214454914620941422233414164290492688969534031014849160942146293572670664684209893358408309081355458477286430963673515327377590886134420782889010831496986822715259621728862015005651852894114619210214343981625237883342458994017237803715438388661880463620810641205943243447999449476840324532528171440886138125750909704071150753981996766437007603106122422746373146334646977923260992617956301577460011574614145049975513611645155726091271991302200903284166619170973338929329182839453999917386618460185870342080722637107834711773887754809602659554224535300507379715915036752120720091602395681524439582921417251592546685478912327827466191931419017016293275879853523656223680321038489929489796094369575093287426499431519702924732361912164575032336254992888583650011719292004907099378059564759388226246111130944304030813682823630070368944227664451199735077526495343873506598180552560006422236207422979641536281473856254283224630624660435163160976451937380199035493400492812603787291837050371078048216282788605727268094669599801848699313477996042322281335544757521840623097474611107374342720852743350596316954968807962833998910449048187250807202243650960234870769455356727714165517694834605518788568284714516067573726650850023107231155537764454446878836111486879232644574433763470870410079334851442540396153475113360472256420272191654125537322681721641932152564100858534954202295270579602386702457106855656103015321997698086418088127235277915218936768512578902971417346629631316857130502821238903380754514414469657307190246022069653154462678347968767350737135247179978451091199453297094945700706709046264357941513290312191396263102971509856036291939092509690543619044602043338985277470952509109521123993291310130221744768625032691271847914649233555599337456474503665719497380404028738054263969923416449974277819529379910205764868131457841703238793890944359711244228574482925259554879542540034828137733235910703426759073614376641540132626605277067377127464190400881842121839269523387455505339528835632014040629191979608781950062875668370484881747264713033616469484597359711000887954926989291312792785055908682721437548657936613122654494867951403532851053219628472448095362091573675196581512237235896536425284470236880701000226128458736317925269262024708582235474443842774245235581916771924052329810291047675120385054559997162577333816104323391725935693023146227612194342014797953032781378389022744945087658120610873321919254465271872342038905650814861377065028422651095102724791759385106036646154750158944232834548311131770929365018721209654524164217904914078006304677676039491355437400457862835931353804928358251083192210065257551582314451779808782148264342579832396339617086688468197161384681908219327503092349710427127541275653020026226320470361518554089628095027739831513082639501778385953932117393858285567645185515683190779746456790785398502855651425531893170331029160737081186374679382748498395439592997220944394943231507485825208566978087246151109574035029849291558816529288542523041799912876376959969554154190219060495369288312231962613811199198499314933588603746324545920486063851134578881414768858211067603320311815063913824421520579511306947125266888426631987903429218663720545854824504687112938188075843341373350219862207779464404433375939747041963266003042840544356479402430543852189806108643786284159183350184921568960150849290089545866090794484841601099844192793605912769687651909374588294170100865445543524855409250346446730909425094231800047414024144975504994353342369719916934349109852710878074726379777406687331617422085688692575267510509209987853661360830545459899291651324575044401919710404399125970693441395847077724544134078356013529880086913293754950157979907249017912615816175002478315720713611330010947808374932009041459647694642164428021178629948318443750465122279013264351062283554291712043285628152312271847535154648664522754952449074982369677239286676071471368740461252935240961194531193524142519646609915166189405387930997906446698809356644317653773145374493471595924196273747125767697746969821082197111784404245714076460662445632321199262382349601669879006762029233302382357862718986219115062607977593342974210327690830608456136869367941445093036494353596095576247289140324708423534962581618507451672308871680855859872255762856391207497530301844928633559119882293122402470448427988719256940670881749122588489738451265639102396925305962461757330595562869738476979440654811010167278501183369302410958538867976500631822156134201659142440068407937673377946614304130163164443838547523086070764252202388481918156839127327348846405961209922099407505342720254804131059856690262257835457684114765727279635047928107286478802921099915774416001801997384941711559720087234745707445924404287700961257309807460154982318702108869581550659877039535024194749668216604735471903834328456726686847514212385088441299753045929095749414992547413920616616881311207992600157951302068920286210820183247306289759212057657684168225164699338159729893271418237191274666677795692586079126376580618347140693252211941467119752676194042397656929686943266144089397631285602258665628687717861336179008397017589984847564329286986540990414527501007180428780780162956118607303007452976672531457079739885847382889968353743531126589903311383796205410357104286989439431982052523500765055220722269123100074170334151113597671972204016095514924643423340193085582919539306669280954853522179647837632652229665813598859478580058610139276508962261579138783680209720686561892163378758410444100650027463388692283138399029839812296842515041915531689952077460125122030163505610303576948772968691228124321741382325923961908591664719400782228466396966077682957495098033117036451175748353109523417063771640569015864637345585344329780721420607685756434787004637534911736159537046387768841000238244189090085020582162705479486104817345752850447752061372186813344681977509834184299201443766599673663585500753405204221411656998433242226850130642139186369023850036874469792547569721062377122820965090250901258003250203371971846455285006639022418590492393977669730556458599620364159813971621077951073419130416761102885128085518706627426375100136628507177245917977590375098769847207933288476382837036311704741239494491920108573274901918872496428202688361980111768556033277853231151337443880347336059123670205124122213208095381658092375896013822130755384541513183827052814049616530486899751760038281438037118082813268410485946261776515514438242453471003887647119248623442854267851667216651769560331505244888748102254737463911477041914971233904120533549828782113790584911697126909166075718666178432698356573169324061279807256916604676458462972550425285331955320952356181139239629975352906686605082319200119317320955551951032384516578670755240984658254769930908397115856651721643251013369886246790120903812126828665377410948045094568210682396156689677265229277121935238607186203972857325363771427952668758306089982823661241058764964524527810686435888149575612033575462694756714087756237038095274065886266842620203717427696325751348236053655969317556613942195713196806986836278750520569465165713763749143676025646729896734608994379116840152518189908513897988314892993793496640395772494918035202755166003473573645149218638362475986049116187487532786743350988072763948519781416062999802043042300757283804560587614086120484550743951390264878758298298151249967933181918774729368184148267098450484551484062029729601408256474779828769698686555308540261700338038357413371644792539926698156693787092937970465669360110890557226677209512773499717532276017558795931951194830296535918122373951902328583721994362399848437234988785493126660715795492342131915423237752066035435640749107682844692382699880011450550784539069366873416652411471027237915835795962724663600605831018933113787755228237770192242659658343097093421086951506773472325067053569912957931749462895519520918480175539275626700969069594692047256861301400403315966745112111224159903191244926172661330708336448782772371422277500015788692620319755046588649156090447646852126345738244187910107447421587234882355138138646565754696877069149244812694302287854082941386201580932190845423453933714413980400766874834240893710475788108779081151086198903765833568818532470114375742976583786785035891027701923626733055796993461673481780154477557914385916401023736998938140100137120823989119410056596728983137079423493595366548847702186153535366695056920814362189728510038357091583674327248090788908869033216501576969734258898461705413887986836607841042598775719232459737068019422723216978427017861574368109890961697788856064085495794277254948409626024173175528543161776847093311899195807282669606300607972144549653770799888659774349968593799803604360803828111577837047886975423280005578904173943040325513377116670564801609400346375765257679382128914824270065343448121109583686300248090143597417262665825066756250575743874300368194042622990094550982102121991209605768160361099727633943334822719768368587911958759227908846703693065315615947134971740633454392936080569923031545422308000827779080330842284259065533296832144996419027183242788223309547248177940689172638238499769275205727318671045293185675586997912695334299943936185822901334459468717427252832118797017938477621114926477616931826076121733758816539770632110214404871020851325515203233348872437574132984722302608696187084697640171016025816919708232654204691466702616888307220721000884084695754345591378639751588478184513619957312590181593060336529654766992886693826071399174276904781523911242508499707700177905698591568673312947069013812693705552473005533984193505595736037766716510353332474862138275456663465533447779815534495565738009899973650401308359556220134204690836961608295223756425519877287872602238317348925355812928084467550152071027303606350329639248873689903815486191784008492289717484665430187237421055575422559604097374994924615223965388983500889477938955449130479627184983047129965784253311289421592867047865660352436008538763830630039682482864715004587412049048620884443083408323768319246409849851417394359365904453523571019180000320332536304247806797981946285435520191938869148364142308120705202323660734924198181060705267384571272775760838895490271648130871000212916581875460737552150788072806798141087090670976087269718381608139110833045715317263875979157245207982753494335808775152329170155461376663086253923857817299140302733344252863373392428387120563684190811090665611111483722689707089410725326930270052898661848098652176393983494370570650220262152849972253696291169201021367442483675842557195784414189795827519434533274536468657792227259182959470127063176782726412198985791050543138126094858445879965837057189743115159643881942222058847806353997605039142473599594357697922556349921269842738875445012363463087290097355356995564945847092730470611857081380580709184647195040885260043632120039008710513299442161545723100579712214735181986493751348870269367221723390260481906095596312823183162807687258085414759766880403617410983193312548578714500481762241394041677034226077634756375366335776536221876981355444069800451452611356925844975918167417277280674856364457244080573496744030660264956800230671062682672429554332125514657136307555844175449740327256315334614886336930183063634850912153501904673186493413174144614440466373124198140315413190587666853564714875123194181213534106818338183963942940277918197594146415397283367740781246000013913712883035991197180930098049577995674055589880821115061702879366149345757142892781113398273804680891933253206685023715173885639055058061643654785073098285934268839777270666214101847619736363793516526852716645075067333619152836040046482435085360268928267835581582321134724345052515193722831189484775610026356362233311993131986553050283564768406059034803700699620912422004305035493454308351411966421222681144416905562498067615957266549612206410437170101182299933011093845794133639180781506116184895632314703851464705018980397609105995201636146080546550431092376958780034778572753021791047534844409613440784998225389353394152714094649670281171917603680333292934878994364576120241883024654631899167848502266396898450432478501101293155040261125892996248753816342719269130783844102168480563588411517292641726192003980484916193370844361908817292974916909813996470974000356870483832909183860195700160169419629338547870112292312687895898824448126175831147685917126000451785953501480496162603147708034639978510686903717241701372293006031611400859716373352880243876952048611218316499375377293798436220914820134733233724583514431792992904200400726669039395072995301834376344491748268532731608116217390053960883448518437597020316620977260242501092884839931843723241119899316590665305179762213076517322260905256946984963239348564769664851196992686222208853522594664241136567253466692730248333190407844283585604023489042096487365463816631743368707828966760730777801263531874404211624809125244239769076417877004933533248298764999433222500364175946077324384230967077425409725951026096261814384336608490508031830397137979658822144060322077319471905354253241517397803391787293703204285359439559491273954601930679758379704096702533088507442002659743381148751616546491699503960881102875851490863927859984010905893087530217108689055395171875152591741728978771542229100319078734267217765383582991361997637821340332815283897987029182064947611215639318254301285764989736452713565497156088113095190559443922363225498690824066242831636183050858254521755716780191310454343866063237499298873495394300184088444430519071033100455129281207666777204860105922508529012990795875750595351016155082885342478861880451742664109730755213050476354489868616840178353618655903578341758613044202277376685371631913683056790173707021061288047373902044481618208014295439650526373735033687023416688527075580936691165462674688061542515381483241001235037231027735827144644411759425597701761394401084234450167942352875418154044673022947796441775193072057298596899939205412493328398388106536057224506076128468792394312637547376262422769024811781545822997549422591483692433080492893708829218229572494593784618256496380505040456383077080060080006419787392687514438830699959752123627871210692672471269502164105701919672557884867353925209850460352412864427224689223543067161133229185479600281198246932392249971629030987569206410177410565943938744275347640567463247307728194715066385741707177314490456959533022272180571043398088837746706773543182287841264632766552325986725494157096869937161922288410910938269171136529240506930977803456969554616791040414114234140295974711287599487543670111919234712002874336080213097419887630733734581138811683953337022820249519987406038917082278307909640961845745751559382697429764848341114901801884135720891498974054432613383726703269971218554541537141753485549068436518442138211606041482132146037940662319406538771789451640001477376566073264218197624144028048456623291163814605199085124935475385958076582978804214570255652619580789638201291129276322341290812647791106404235738254589450668089910400755020419450727433402846874247212609210997074131871779256942798867843336414990008835997898068462118096035948996213658251669161618009002731139980935740295379645232813265770605408062018686842766479514064824232908434453660935183414014083943422745961767674142767263847207525688857830247822005069796642905396243538576979950698234944742332821375001210099431662309536567151716945094914379036535313003911484824509765975945599508797125318503177164809389785234293585682971654507329778948598362814939883264939355402892645032154470048874957385887334515820660517495552151271894099554227108121285239498257015308059185953757577839438464091453775219875729276802521365337957348169593866501014074343049664138848681527340427290825861295686954947607414574440459788366869851721117628804334001831490852833003281544308661662891432516208290097539752717829731184851961628461123435302980166606627642871518473301020053461525844600207576944535260003138605523562005678046442007063384267483962267273000110901560747985080692209030759794625087511679388641697071644427726198428694596913045496708055016751907758418702591426793193836930738137229860996025174385533411221431509519983290730325456297693694062968740273259332480787106869712808072078352211546873531351590090332474859963538190502246100467328270940318550637018848188124906436341237873059108770902707375649514859013781612805106049584446347039279372082829536335537513808712413422065463086873156215167453137016372351317741900175304129914896695021924242854953087683396488803959097215529070681266614653370176185863978101621927856016748296118320789405308793869839550555472653251043141360534414737806006359049927860048483560008308135907568658648131057261212500507741531891702356008721727596957378176213928888772115012442219449544920470388833295534955286953960450891950964569846733019441887735722318076541056649838200585777920422564777182179054979813866381545278449632718035327270432815705189431474758247556983976384738303972351379735201014854792975879895369097171983858539824188188656055083297733685528930082878109694796408527559754349788326202105337805225322404338342412568645792605737840505786181580532564445042911932096424422787831959957043163231870443409862703727577874505367230478501922134669449271825721946022258715704541141687028020872833470147551443538201421758069500254572336113732303398423451339955451845278700411057649701668623609670519380984623542744822066912177700677784695019103672037313395791254445235370189093004213621980331193320246165963664075133225829301208703079275143407295094137686845892342170800911554294536878623792783793554832119729947643286290047458451378444457394253990989747382059638846104977330302825698603357700642910050505458971777833167630407022456473215597008234494480523150493998647209450187168758034141621980085406595908031599153831306946019454019636899997096088790338739840106883481410208124310927999529163812747156034254483270632537448821550744205142521804043338385685421719745263014194249997204625477073731896502844932921062458088627881340174888592421552682306992951832300536137653892956416860101329403118518331592403583893136531065377806733017638241456505413329101453237069481956776870547920907952510166835618208602484228301385477256146121930279151877282898258476907958977092721509305234802660610848721040393762471533482502548253759601207502824311697890774600736548039027279911103770918691106586905230234699090170639304592228625757995143437986906572157846843551169442383069330868376768439791690776916140862122238471269462859799595573901929666690165806483070195192153468765931606037771803456820668939116489614872304270275165129027725663657625701567301888383275452680320210637293644626971729670091403102917500411183928494101067251338306810115696154491799638328204780642320836220197774191621567493356047311059015143748263843349750927932786345547099777272449774545613474885590997424041016090327893256616191898998985061849335605569104761006531687557270135815822540436325950943979728547283926224602700650815944354350743622771451351678156863754604778283739400436768359696510523684139619055808739816018884148583506931192846040627081373151926918708974712221341612602933457746898940717356408669514384736416489175154925017624535841837467617348259902965709512975750358815176128246871642773558562359822230799655776573157578556624998994253497086620028869557385187400350321276432502868005208195140964289054742885177954550960340798310295825126427917310023256802668487956991603735074843512092344069374884820168038612365929649514519186582741677846490700621901851535795362227462153512659548325261062508377544250379057902750381085807965516711548361258712581048456690974927826636231072850566425119019050413208158911849766107632043934538640368395723934515289182323762604757260746797107242842921009646289446670605617892352438915792885759647154096347408739691858636311728873715250409452663512499487396157959105541624970282504900952737408382098886971631317433171411138231581735968625623738181929185746375416210133426848254989837566676188251470632710138179701392180126203616822752864419146408453539948715548487252373303938980681518573405852268775052237980917547255232505900434747258799749766595073752620307723746467838577935202472296724803638382429143422490588605241892385203723764625984240776252209949610018517690900915044132168976933050511575120142829063667053068438761287743386305240435786181235326489188645744810179814111775839741301045797112959831734947913241725897781278880504296010931316722286782440393647599850695550168026079061048674973274284389426949677034640660814504830496322192456370785765266488427922591767798986143047178852436981112333581148073767707132834064091774586250503699662842379634714863412661671272378339485988544908256725140017140130213487556466776995517101616842174002240747435389075488453346781429079730837109138761261813312780862441989603487526174398326549455170815635760336380953671849422988024794147713485847743167125386587340871505165277660671721993171475525449397546101647996841487275482788113177355412921222001714248508504813990022236090763108940457449444805287559987008426436996785523691789682538721448874222771176696955795113775727429692397311225879759231191472183263543518811451199592956693204229082170722300865241424301433316659773494821019051808901821657049160218858314686967016293012417888618158358837983135685271344671997401009555618661352708591490630756474355888374104183522602244453877568868372443702007464278669636896544824230812983103708232361524604136928738535171516114161060259639001606260992327863974416631599254567716843021398804146509217461358709439715550172922868713421973167488336089361096866985003048693877800361292087204220873794928996163166983964059238784919656535880887505264503288902380501240841750349422061472016190647103428274402544355837085182373092331700647254130295837322426056066491273659061828624855798683845102213128831916641623947587876752636127489346776154259758421075762447730708764924722621491218920567747640627486851613050205827285492356232890324300704125660577360217661980308240068281056663198076558567811932398032845430731088153437344352945100801351149638212326704855777347868667813870910129849101505313634949959371303179841806581662405679189195305890598549424634174645556671895190808726987608680761621464433085957171262767620976902883204013083185720834676178548465396095888718602856741492447555003067037087249846865330770090206169932427898056665293308605859954419639639563300858963314861302246099858895806066984541647678837686623173522980162431338123109951323993143431568796691652697833479838400481691095778019869767739314022981054489477836333954706573022656635045090061670050736972503938067177274595870546712583584995954141446156053295733411901701568640997566561108814866863503901341065119315004501754440913671746621425615047014496532636217395238293995717749022993837241910103403408112527646134381060243822780898336483210576620034737872477445155482484169025634203175686870354882446575292478278309198434819342783139399335741747921612761423703261765306672094845939452196199569980406451190531188269384933143300726453677942754983000176464214585260028634010207957910698216329715803394735543084599109597546426605963225864969229581593827894607396870032937199929691672837525995881670334400152384012164291507201473423171183603126784539616695088568952243650494804627381534111109250379798328620095500584818075854361272410495664519866335695313751988993878055764980881494381781432451732883039552108611529686933137751773165252749342674036699615840895032852838563180578471258552251838312528608551848820406323082688131986425224558441991392076341973694407113782086828057266415955841484780215818373175563130880900948838054413852946396071475831420638179681808602168913941763429262749556881992320301430906709984284627205115973807343998032728436894754572751749430993123955083708736052611058616145906550001638572931286019124357492186733244708326777164629738030047531843486342334427501443717848764152048626790041209052311731953176388117745983575315104952182168443207665035149196953293874935023995495576441486377916769519461733698007184221862484906078336236063453374261180881820307334816042201981063369387009965885656922294399974896770316915942913917341134579831878636239203774935340676298160568311268318303424063763794644421802450613790776977599233347785026656265847299000081099391202485995112213743975824972427117218764059122495613620151911479576034515255409865821073973031052721315729313938557598286875010111375516756116860291533986154132882506024479681577373700026921531502038890929199653328483569390942729905060161702921979936083134724897840017189548114953584755818378481421688611504498475979265418076027629895320888214429890276912150359158367423712596024696276842684931799368498548459013752274295754102386743376295322509315867779095488000781639706790884731066063150045043287885421506559847236021979427269210919662243667968101201711435330302897820018345299826585931078282861029036814953779586178108966188932696965663193788094384188433344532321939947859772959204274766250603725073716029541717000465251145405803119255701877118630645299323377731100107174888738911149677390204728219473451619417187881984618524320917207337837111540548635347553046070365952907957068525146778728877551649407186032897486432465786493279593930579361053038795085459801030980689666455057179310919322201450203897113580495750610902403975958263303677526818659154682751760002111927897706769001210444824287282906157553944387830782027596601244708292737398820953872524685955550838968587063410894314761531846150166899306247167334335176533405704281860341591631963711945730281577545211058496120278414640832102714506061369615486884476190737476999977804809198652747681816881428646496692061966380578551027319614721882536376700632281328616371118424897169356937815768347094176720565218248752568391719284308755929618768541208848909784306163030292611297677482369827672991323352317332457009721031639458495399334866699489131591058995405157998453412832546029855022052378653227418300748144416238749404129631224832252205124340311853126830954208916318780353236024118542522919511196466801638616123889520619180996694316721894278177784939234998198121712711277591058376741721700667482339105905405526532852640069370892703515410567738561077462148136577961576608786649950608454067491880165420693063006806923265025657608004051724669928198569924058334462999328358570950785149391455459316778000729162386949784060757426102113156498730788164193058932693054228169868138764297748165164992364142641352409295426938948612215039474351968882229806159884056319757536471722301385111656398823651336482288060012827930968759270926408171902654914710485089211442404563267857467451800379122131616545030324406558420434152740341709856486947473537533988404595443934153175760055068245888286917812727565314303920138529175110016806383250475227866017135059048245163816190324412332819600366108391756977097719202310660493066703035102971001815415688568144199276210703441649297300532394972888797887885803655237686755715939222890564917319533955150647818952625845885374823155667751561530488369636426782067514902848323254006808298877712951390291584714719128769832572093783507380611888083814752163288457901828693769867675959202107182171199626889792452588029163669675162505525447495624723753760709003777538848176203913004150936445419868750746832511273452722205110818608751593001144136976903968968436724541987246818212736636950940115557531795211822141598274645597552984250580308614174512013918659101705503928773060273078624825773716356500205626079344003448977429829779127617638732198768207053370535337539996851036879497000755936635553015650231691579039027876260102664552758149674184194864426583415293452829402932162016282712505589043572517720891545505533154161403506260761283934878193942438824185453113943686705416994302904686406583974919763225444569898201027980799538339268198556279054629908431755929089919400105337090603941491390906838141535215220439426622269411394645442821053859479038973387370021817870084541847013892722900509138830533115468655564968227056251784764963030806729194659137486738795430718448598823355704443291530392640686892875042131084840900251846073262549431804407858993290037401084172206779481905038209680903893967759813516954531835928122635364791050742268322000649821904641870288388341109960310724919112812592499225663844016160748560464025263500548040332422100651462517296069958644007249678427188171393885069381160022334398345662125504387794463846250115247444229792388130783292772550038362159944238911951657378921652036331110637242965797940364967329812335488019004992003510489142302679715456379887767428913772121229518893675145270646526957191665137733123382764302485786522144470724023330940162755885666353235876408531014309463314822389496704131728121928880938493025970029965155751082950156249660066440922670674169659290810095871314939768142212106624955271159294521684896772191815822443434683167289831890441498850736185539409943446441037627394720619825434351939313039638536596412777024057074148217398261955108273918269711598202963908617691123366904842509246248209712995061065566668303049852923405124430284946944379411312112183018929498822174439964340995916224689034973223019375073497938759242374700107467085435584796574233814968303926520824114745089349620462950842236430930158011212630589363575265025672680532177582508867376953109222476585650684951641112148954086669498307364359908805773795227324987003706067850988562644400497993183215836310802835276514915886733052891122873142293520374312336196945013003789755031407311676722219495851300272877933837658431175138522692649679531084366787986821696339026422752395452894860805967675427031214050108028461024060347220310928023366718576513267685271018984167918651881954240975719199601551504200533146363623146899244465218621721199663662217849815243942369760496274644623526289189408668366932338400675008653538605020638814118707824280394947504167254015513186050438293117847436063575701056567121292889140731287990955384850709888630814074235134598204491465567240763938778876540215152899505396182564835072533106766611290231600219389768481725743551387430560120359189572918668357750976558507410790791591685327048835617863655032799881337833776189632455710395992340144120859379697845465109636245387173261308006854915913191745521494360973084120911355531183236681446625782114860743849061537355045773027262340661690663579114684259964397519005922102020048929532672939360214103367021011075266987397357000128602979477462128728981783351672112809659258121224552703670714084627543074606001185307893720145218100684394888684480786542177385662195245674497392157929271395690474449758893138354303540025231058001002823956370210492268288428874588528075063748491672535754653426267976308497178719119132856858845555399273270732160679045867974724448908032874828416814493177650306379360827054884746927617923110067480755162923308795600030703186146657073308306905743424575131550945985373751077778294970492885355588511166398016976449384249102203547249017449035352535218519938368105318212866973561865987002011682915939325692002238507695028829288911334427316113855747052777617617348270680672529375795641677627592400757272433992521547474699276345846935723801897899016646046016347021780884993583326605078800800220471663831358225229213804553730275372983610522605991400435695970776036419645646228311154934241670092912255660900907512807414094905909929510152115353537343959845163555299591149852056002445758094417252209991418336720537097854960698418363047960296887844727553738525286686024576033453111550446332701968852718711813166371805165256125570076952672570517346320153846819838182488843038695440518815249088208380677052749680682038283407454353153965601019692050431100016330389948062313866036908046482061011942744129392225692789558298060296612400571335214395395751501267504853318958114704701692807558964292352846742409991804926718413326254258181617621197670116081281581562426616630872462313214234038606497769215354305932297311262525267120123566875764022937778137457505330458689625262087836123165131718382142596741825751940057378334769926691612474107614295083037045989708279712733138675567741405763760187696540366628814283179553590589639759954472627747833109543211143538258503216467088177613994321922718604233566111382287529926211789718533258831254713515117893505614328754739398204854027284205261823502490012534538493782651325908719611273887852899915264855221740985457088670651368927989012318580098205863283177671868385201476612958475829992394467248221994880373791403774474894341282095414341687954862037357373128635925462541384642991179422132064947285858792819891794972211999336063105790675099840926375841055389707983378504470460439466687290036009701616848943862517054212538628351562343148132959900821288700476067739339191115631894396264171036152439506226217727672062558732719463646453449509593274491955583445644817700058851473611244078687611514381618704180452194437347510515198776865197183504212285506900708260647775650753846273803987308168129942487314890065447861197662084543255803882522369835568126268797323150662056820035039259042466795074012058946722681828671367398597071588854134507191558434183659004592542403407403910112499856475982809173035278284209598602628406971621158831904643071258183993923400667716872845552435749352688758981037110869377463746846561355005911294324193452919684498676530604632045313164851243327398215228665078002817286013833058284240417789896042894494584138400169587126244686318207131557943066604399789195071967065568614924319146133430972992035976521265070139217503885364742092482360304743804563925697959870244201420512233038038794932911160508677461290330781787709523552797653318095703588374149165667007864216393128581355123604541273630901250309567247206949606188895898346421641768993557620670735754702804482967253750190523287502085398730910776826888544724856146097284534295089972402999206168539170209037069231883943635723116846974534481246683236669052285794757594613446372124584750212474218959475404669668251079912798294353833869782080682420184643933404164625576380483113575932059380251270043575192471583645399998830120448703928061917093976629978401352037464354479342341828694086276980716589355476207119961174247826939453977989236433482242089373438595353258007926358130035035568509660170725913217885822451323685428487278581943097284568486266834202890774965096171241809446855686254049624449094259974152431582312736080726613361166166205481989292368797970522964022557939685812910164258105554532327159069510966420081426801370649525202508510944665115751525351072397434245172514302190846419862896828458952306395672106586009202685108733082157730930593610865470867175677284802280173673124085322233151813860478640682903582095650061045069843646804522079213505794718913588747249638833568999125062598441223802742425791801258148775910892469369341981640340257592800637721502957638259498406045973898101144222208917632894506619613672806554836510241216100077456947924465125873764266272972318445357633359990056684367439116593139925051753126041041599711475006693241861280709695553081360634263777076396561661377679247262591200038992138672485382669377339614188860276429249402268076170654598506861759980164846502870294500595316584907702374018702225316059523881529273552385941781349425502034779832282440217775924312317987963813029080905750121979377831778171741331659741598454016592216316423290415346271760192880376734718701164006288459201662016244630967654649321718022539014876134939765417067808321498558898518319402004914789640454847011970625592014002153056654047919294184644788365200987392690294993010048065600413687581456805243267054332514064047025118669923042027167112019232418195066423931264759570798357384272082785043990302459841335790288493615951791439574623748174368797055295612323920644574932788977364057131593045493073489760177640961542480071794089711195905191093833452678378425060745701345801296498518691057578510129155993100127383952175891283705099194822898625777306876311731707817714120772668221767799647041763140790611327225250398065190697583248158567616475398126872198356180257637585151993517596249340749512132220050581025040770513025175305610700028815875645596383225857667340865957286812314261993362349767398584912029493313533189795012826416942979787451946788084855091531693996830581913805524449088807572109405041192181342198504581692718196984030167457888211739289544273909144115894384144824086591013059858655179940859550098661175876646949333263316968595567326302401187286790408508308409514678493486590065247455305999037249152355633857992655312806597321937845618902026081300058745927840976739073815048242829472021029038430082401709747574093121890971378465716260999943914218664990687293361942270391134822038603603814022412492462253707076287545505325959271424920689800683993823749282146012573183742646639549929637341092146952586073277102616631014481692915609828293020563094645334810241065002730349678789743242277520648786894445709660528598736165884838022086785690093205526900425976681702162242693751006044385252621017496995682376320689540975047813369681988318721299611268134437309187684800254842616808870821213395720459350873576405651617056679572818068549839475625368644232485763571091900090607762641093901148482152474940247902306028226673454268091622877612957074951747458589715055625817987794498894448301490449744191223114869020192158749434820534418178672267821021778007788138438137404697386833778036819674711203537622686424277132883169447416133085134350036801944461869928986557289914593440997241005915208874625048217794047341719138940936142095447969923696243644298410099589235661167693720616229023258630891770748969099479899167650812412574747318521726752373936329461367213288687250009235668894165954198793934953991877625267795314115359460551597764445210861555543373065877962431059281534945588280753527057351024052260265849842827926504035505177172495766252397888632845973021598945820682505753525672203158662588086454557746296321772492536983624977024499724151656531828570512391527061105123309590762982896996652200010063395838707286690432628825070038995620154789894819911119270597807580076044123428787135671770342558088043658787673701224300176458076188690959868613804903048148721354975680754612751724616961276470601637709958544118600264812424979315808989507816734930356622785034393623651831121640622315477288749304856522899256511804025238710755460828869075830090307325842391469042139037709677880818513838088141413656849283490433219705795182235749878108940429543657826445301994868413691951919583597622360254970210633963279949655488693480701030692434278638449626094352964644834147991394518865360971060041904495288089403628685467300094758902934600141639301876459155072970299953808151504608756498552701631696922380354936075342590921708711803083773240411961268677844948673312607846863282235576701764285575581616313775419652504424836944845705637582877558779730192109442981730951855912799210395913053325952434393817171110426088793124501790251898832108743017548697365497899920460059725652475085769124209089934971073382217720164456263670576188267632628120367060461482188529175836072285737443671990614966256978598968870993961484995757776962547764618671600401955851322344428921678553781313453506234360347011520597855782970674950624675950679904266469088818628058374347417688298696569617752341831889789202726492555529321468785103110918479278548246838319603340237594010523000652261322579093169667455816777394175518878284978880218695832456674387748256510941065061044930967150890624455586992359987000170814048457442472496778016936450817521812030101405606370535376414023880279172462354332915422732197129861017206034669253248797914800407704245085740815046900363554869553659926383462179921694231232021888137100548753808001385373365166727986121085513349398260396242451211590139451381668136169466691119124303656126855568217911396461897593753085599520590741698218149604787074546013361445167573930011509293800597333230822555278969953175544877579854868461357856331685221762496124000491992323765047650921520308693003814595437263282381187102909186007076126139533910767361781413226933864116236874259068536505575499508798838957658275246912180825509259857886102926806807320186016948756239135603474931600549839011655153878581946328521566179522950804056653293725340937475754216675766834450474198232025742732130288473926837003720236463736955489493663374257730866194454016612391934238256346404728227713920157581193728003409391598500896512545435044906951339688723597466940749052892371748901665662709840985227989125823657320935506724655561215603891003648517463719584757255484018394891260109981512358317716961819382721709854032015189563401342200944721887937496237180744692964640035491005998530492998358570299136719176954805344163722006480893480003664996618753124174825010723811011220664184256042912136217736676399637706594669733964174923157130507314686751330873602546785959563841620876423439368369337987193933436512748590263059308699963353473801358293952429680133192416192135516345027813670298824074899594599580803513221972695043255887458031649913582067549509733594735784784799680801616551995400845498095292455438594675313584465131732631347584399508166066344437550163258555598251132935215891455715708978758169055109228260731847463926232177015048205098895364905236333126915575838548987341620799214708766207987240110702910429446228432114461176326035963405374834868974500966022551828757582982897865370397124556239350133822341765448436980521452593568476202731591010731942107114943325697369943846121863834357146118996016400636267654342708312705754270963378588654871568549917684976082380556188585506249629003857500312773903540559178665431263448244023260367477253544265109369394658179590771793040959143989922439431173159519382324367787807725173996884998063843687019272906304582802182818019248385103847913658750827845237116332570224920667621051352905604021267590575887724998087722064868666714582867717828511488131520669396297351159376767610426201885471686286455159011948770379547893533607328564243311994348942176641459625584824389615267217019938246143965430112672450381233266634212306616189453626888804676910668193530112218656983447299048756530849267924216883869319550140047544268217237017476063003546727738858746577588431073725086662424405214190823285632341591778799079106394023944256700227507558683558000856488268324607146551065421640511076658693761750709282220830956148339527183065470313715842867839753705588800020487768972226205274526283879460936018896057981793439728429923167288391613091204231603645830111076148759282377847937357955730328998815782706142709718700639203305093922956933480662366494975901033486598516083488212983248529534330019953429112941569195531531913116187614422656282293341333639652964640699156328846269676076744218628267312546058101067281139550047504984422887938457236771062935881271659762166060985747576159386149120842510827844672688506637761201399546652827816231299082147579560635384519581948452585541127014228685372807230569707716269962184107898615773333914003464542016614227201745168944706058807368409314883702247415628683154925258090855222621515316044229704943833614736937419029579100224352118003477933016977857568540663529781490022213311686000713961715015029874723771009520948800562654810884530926529075511949748465560692104965847728633740112235559363624463870131290707563936083248842055732008835474519571498298556931176980390913841817967462519065164294123443056029503927647142008493556544448726403355430611373191702586674191418622803490760295656215092542953155331676385355443082714818433305494140677522081875819828906245147887243492448209627123560386800300854532081452187366489656484179248664923965762249908601479707730518055245658291660618525043144530816591288752794896711643674470673074056039731589521738639637710172831121672546763417432454157913911115113671660638539857157956976846614778755655065857118993091666267121550564292758498437851806325562717857960794516759266294548499162733620831138255908103877383812492257650011256886297029891545818663526872617762413889035418102656691643588377080162814676289873606113758586962898422625989992150966197776009280692726957491810131482847801294785975666527837046857343444343451949953948592479674422596481796003681176474328993738155937227246496703075394555829527023294030966280946926820890080453943914237953233347810976959061161707917153824754716876976997588984317194990007746352955209734765756871066342939497447124868295455193682348372041920680057404135086258003373702965666405380389007493995847425240921514780778765961069367371527324548238276996042195444757851965042568536830574925723031200416573977834463545253593785092483372177028537160575991802907621620426814482740680249010026146707530531428779927337872635504279510451022399516924451627577648807441684803456003001255345329591545565411610103831507026769861184248265205737656564982744836709395952305559961518936356132702646337102487069927388498089714841576020661477053504070092535518583528299013022721858446943375411679623223714983011931082427484076736478999099303067294030807304556637465740912107206127430690230505992531059581184073010082348573044637157640005941986086700016574126066549745283906166570235282920972684257761330101222702961195992245697869063630389574038751121741523531204622315171796766135115852337196708254171933522745022006324648915806889748916272699767956992956476890436146903141214146191157143049848636148603411834621096079081241990648327067525964875356990545018614327821905342324017280924582698071829205211008655346047647372322900110405781120689827908492000044057735648379792181678926118854540852649401381180906372092062386471337981928748502126068125726761086943862463384202061413114544706331404261033757623704616519424632011329145926315503378406387983864431524765804915060615772551085138799295540617553336387884529092419137059172713584519609915766773540093149074049205001261242528041610663574212405196209155530780743588319780853072143151698799162920656551150648607790575059925824068419797775861182663896647749917897144322085495415345612291186531110675839941037682717410510721590159163137869820260054474004766175831196728768611113312937765763363158708302225816525718090339926888327141460209196898104139031108147454864585913558047938029186427340886793031692499716616596007038487497971797737725790509473143444036547867306626707677104371442786631726191550992795681403400325400155464490821098682705272679129960309518719949087688429308172067792608277681788172649931953875819692606428218418909377526807780581730171654605360632689476159127570121086207797670576349096112717608181443199244295179459142574613538710896365845276230640700502744220441326673991149922420564091556183201610249202131902655168493120998467888374133639944120434863583853353991321886411257105463320944310482703176645342470517448143638101374343719792619803230115645537155155952456431617192325928148184067595865293862607587197009775153644982411489179810552067223147582543710681553545510144925520519927261888516040777786034371611349239671154938496025704783630156025444170380112853037942725778538999355444194144961052668140971967650505808066006806678848135410636368096636188331064169095530869055240272840268905783145695782175867077349122485315623700225233697530481758351202990691343979019721079405515005465916038135661218198857595014093188085507585602908571036747197321373642667044269042354142829041942352160832357993570342804104855884647064896792953761071641696126328330080284908103486296303773293013279720740653190580220394104305787357598261560766556973443798908676797788234356018067113743918299500679697116557232717911702814509708655367229290597898317449755666833954240711173966231335984184535616171302632578088906289483304260284046419491743000111743759301376603273665448938556211933119797249671774520363484084485534732203801641147598448911016729443756628627666354159626405083700386243375869927204990050491448277565371736477925784228089480538032756355820643874733092501187465149808264984358527035858042131685380322953720107855464714559275701133094957800488202343428356208349090875719995017734932247856549117509205747198486297875753301194937892863974549426953571003669360298654508057584426614528269275128640958520945114045016271095885962483450426084097657395887892611309817178087223261855360772192832058238413861864379435836343846447083021567502125649488527771468746888969525085776121579822719874244073742601853801050241907925112176868764805571793818023583449998832866729291810200175158562258471283507390397714135496548000055708749307561258007231806397299332338822007673952071981304719169834454955349107738569844892186112614209324960137260886841700205640168771437828383854682138298320913337949216705563081170652459135606939308002597868708490260916799665244954702504824005167226488522649772171240147445957058289508589453582422723221886456053059828913583665199148655087112369856458138667013889912513815281321103408780038150746967504184684388708757559103269533343144291251770745053138212678317752969974560303654812191365581142929027601687951412171927861452732738427471481130972433391069827258310689026431913409713646457731069069009889503477786630366992186192412899637348133227754640515832374310060407423618359263390238040207578142745603553802973418348154181946085540770689917570457096282872479418888201582810781646153508648852271724930270449775287412510115265873128777709324588435525640844366711370758731096045429139300120866821287902862067950841244289791980061892775077410777092409436782660012182331831143510766142832401312321822751776978861113859961844293114104298820519929052930756679580260919819420341983018656278084863489224064478484585985942675540882820514475126148628917379820118449497819664947493802914455564455130305980617573143688707310706840727540246955736313551906313949607736580708057493428642323466715129065046856419552540803700286904677572293446352522566529820741107791792742721825208479222934471129115926799137783798958495927443322461334015956371709840970345927969079542534090911730006811893502358126652585414551891854942385035335217819376789365277195731832459466478909513492704206889656989779401941539235327903102024693394409449314137909040291577136623322040021423757731883726868724902631066131001523596759865330101003806118520841258563290620634226951513135172177751693408981769451450732559943751682340120123142432688304882205690558589493458082132819018884969840829037696502688664024261245317804191446916631445127022607999903139378761672810753985521616099367153266733971866399740709547884805289012394575353760852224910022967569158613269191935394542116151603983321391439961963156104640523591363312875162940850589935364599169681698965241326513168297268911589823710258809450435038968791039940810198104093425061985079788059766647046920635694886161604528309850457540958356719473855905927320591455153609376670734621612539926729781790524283118631604608396865416006544694406213821111877559129199453541762477060643828068217166921870691634323485076798878607003076417529386825747254004365445330110030929175881456220314316721906623831714781258994688752948107785395362910131551251087498093500671753894200793387823530358152067191780763950203299506108127941653203696525430071309875957932182572726224666446576822630874857381188908009599983883553052988142153251082404440364281904750050862341933695114628451280906045216002605816733929472398879382849503349966574001095050355905195658571066184215900290770906793322844214289814833100967793947365690157806228157554544775013113417554534684413815254635280106418253206338932104538536021792406859798618276043739871497670760705004673678911233369592261600425598927927248662018531661553675083989273263176677945525824079010934837135869791844168571048470213017703940943670922287389521119947324441365567072775342762193919194746710616491457465772593915562696999671597190927701236532656976569622287420154333233093031499632500929066995335505396815702152370844389172424163670702680027918388767067074225047947845539207405364269104771970363248388373516470416481431901911615665972014560157417550060338203032147609942812150144821281074693766935278755465599505729864465757079770339418090207528829271901848735264260705580769303690209583560892495318010904053195209357411462347703022136825659030277041176080704804909421635413461300578506027337079603083856685031721933658260068285888363267553654334432812192583910992246439215436859592164120278220673414197305486231298450301712362538490570725721722084322139671391127001603863563383182252545292107379322594460982144974527083736428789765948863364873542351956704903826147057227585625583132689235682807060972890199469768733762496484244516149419869812224492881988596772931727202494803603782887964836559396958286208270464167552354813080669265225190486783953138039787453305992260968738267277114936906923709804861708570940646417956670953364067891831165997351891048817155755576848707290369738856324104163823483250373626923448714010819826690605111576140727942401182181414133784994742997702478305873215042888674886168062371552824220415549490989983615430078318035543361029021485234276431673305598159739817783184208578109116661284852887347970478611475658059245305077566732648626337027215195765665033527553742225999260681092072015334952787910340673134745893754977194793838379205024313919863505612625583908393482582181552411261077094816593069914560206466777441228670648533545012540390391469800813039058391652171061271937456655183015684721122508726427056788244245690479064085361093999320432331355436882750983662426232493862607442302337570186834836129526604231361583748695807481954376215178458314173006921904257828871283440077689196099176484736742885227775619783046181881587012299105697500372965515402033915537893836419148652827934587129633215207671087031039570718990018888207829932031459374311610029182791446472712922200339702083402850576464436715272269985872904785572067951602345885004819313999342204340277831658633811896814944773243457208798078729698116548943052266026489520313387417268572624314695890003380117866916069474340649436177584227151392547090453730135753140832895543371918633148485741271916192078796375336303938391491415013474303147869320329816340015444763612353287216697060691034441921517221693179342900209320285033371458439886030092633582098621361856803276721702007462001338422933562385481683001252143894160393454797751419411053615643039855517251310914000810481834675480426508301751660188393424534130044515457740302784533579433822680399194469480213214319198233107497287402878472539508448834393977055129988011063653019844356236127856336906887341499550685295961144904943790765979109691720479489788439089470572254900731998832985398344555918805105774752561301170819353382115683776459339328050462585487726953386307738049972034424803792669539948608499990195494295157165770897208397757831865762747536102556414203164170430663636716773268681570427228655918525062136001364871405598685712585418832450218752242128251739822284452628012659804501582580633510554923011516881221503488901308938037624298326920136489343363579009826188940714342054474570136822821607632811875067589780668939108876911881553256367640922641455360307110028305825844269249685461954010720375420363347806944563939811480359886059593158040124097226826797716865513275938543240285729566120078702527853142995202571030168434864966953381208027939766025982185486083259574632815088653160494736826396012464845726905481124045399966422760735709760635384630546153264166652052089688438458775951640399718098220244113879319112718029709152724194838759702627984163015358679584970024024371925439822636667891358928632776300761814388236835346631263831902891363472284133590243012378058195826205682954255391605339325731324765217449596994149094103836389029949961102172638147568418848213266701354318176609370973410762774471166341289860788850633097297316546557870968591863484708820386085709760117340681874251507565822668360909396711355680309891687134404598510224676342639226934902143209470264797055944078384657994526317093269613346396289494288754937035677020097136018329152970183982477322852113543423624505395501159248365488453524917392699330453146036921969176747399967800058935109887553520409886352812508360580487070040096423749828186553126121188111826498858550365279904439896814095020373331057600319375334515893763529773873230201162302169756160433024503083756643709830032598675041518918781605768597345002673235125081468914554371197765121722790758085393549221789914124714872164687809494292543266854068887904401433915944079483218834527328628243941212809732779641874100962914430406705692037052588799841131182580035162131469557007845084746142278908583491956981331683349073873403459571224010164231903704734185306402988495977384574077545760544697521511487785959813141616691843880367383608680649387455167752057903284600524629826182724140087137016995762928508391030673046623154801666193445080924772427872840371263739222678866514350783180927284689507952006811982152670082227704168417603573146894219249716186133733043436362695632728766388635811215278238388568362470807273104302037776953596636835725069612293239030545780933036311846384600286567091325634197485099010390419060420363128052251427495724509855517051395843806607732316443467441603883737919582978677640391519351212334352518873062048556451357633340058961639777503818385441264404588782556193972709226208709504186605048107699000190233285168315229728731586040894975403993668100504971121108930091910873918556368207095668018574194539303880409992233795340796343020690728432409031610272785461641261416349903669601527471205259889574198279857841720412522029411814035000642723563007243432172606836957388726449693021016182730300527080299737151258798419408844316201278920767773888813718104640457104905638019318844215021703076979504383231325859856746913938141300502199113803279149200161533830725516117738868957580291134068429305732700107695964958509963427006106946161941998863534833415359331658146693901486899540243423690260672025267454289942396944806243802255412861739761037522332720594802136021941082395999365371067561811803811057790621285024819717854796463678887426685735337883752736178965113674814249722572861140344187344355925389344887236288014905353345186596791220512886236167055470150160359789568147859511335739177463633735521964075592305499389019045201578445834723089736714160024237674793281417641257950409142405806111651691172365777164588312197894626439595745047067484348852549640012337928390991347463168499622534809839539737771664654412477608245280551972566985901605202180980020219775078091481218159925968953307334469417864951976219997314069846027634267332262931698173080773819404671432237438306275124276845030292421689256060200642231970747172707659835319843758264422606272164828879529949773476419719562110868666641863764004221871805230201391410403811778903646542635065026742494165491044216851623044727057635953734213154887738052480399649750544933727910996235150685620363326530524913135819057008235413108781358142911247510922355825993973278321048927513641437776952910303795995979471516182507867328784787155097760735820811342774883408204401412078222157253078057090352379522000881963849169745188851240015208554100712985035471300456694526660130448956726521854083496361988497393876017204441241988110456309565831623981234782896876607043258795439987773235978285916758033345062538419687842851831430312965501417750408579655771943890206070982819365190620954349109076004368441293794990860185780925429879980586983284405701174734921970418061736614642249603753909065381169648201138680317337249428271227693934488085303991679760395365743359851247669687263483390179858035146495452567691604749959356868061452839103705437122703615647710625557146805587298713912014430452055805520508858199587356431737440237652036879960536953763858546537862372829831874262067048669504105261126192451981943830630928194224826956966330716059136806296955238948915625701406356682133685966724646587756714636876928330639243213506671637979139718973294984893287236307604323545448453664852650362305659423243549399948095185191117448866404955160806486283890460862555369871623699598087966501701562414638100850556215071479207841960482855876639744789433175494223596641729873759597906157509072421687611981576750157585572810725232033694051664202765065313816875302576911470329576152458775775034967996931211699995535522620010938156483901539176818749511390539621951229911033532795783411045037001831067712250921690160447975779687242026843571886454049918068795971557111589474742322639418675320481692780483126408795531677628787687251860861621629150770161749830557349500988372490079503410946006043771142500476837671911347865953946875985161143614916847435212773751869450419447734690515934672321678379833756442233693328756587040836094473690839700561497141969386375898311741562805503743596539195960891270052144361795684405740799649089976288460281428900436758686515956300581462735349743727164886086299818718702106692070834776526755300680233212098726067190866173417696132011851395951369352464023243093206418335150657658596932118263591202044400375601212517326958010242699405623266393553065848755532954368577032093240610820118457179688669050605932744545624530073316184201456799291727319931654212187438273000438216387103907843493277847343899485377301606102691663725323430721392493120758276215841413456632356638743080036710538345386346646353906604822234343922353891519749591783273574566849159228633967254599666275251492578464103325738353814730471864646271597584403599436120575897430064110159465066656903830543497583786890567626754229840987884662404721308554404097722730336843603876602593402243917313975589632076483214948975321531335195962992508636643052380621832673452746737755788035439908746538595784942985597979055137680227321905752893050497642493276953625024192534391024273506960980028134787959048115657930586537097964310910923849978416094442500820955037723924416741835264840484908304919405542975421607173718127113398194524980619910261281906354638551731302274367147475901351500523671147673434576405593392196448209837282995081414675429731489046742296889220171893665051972384479809394489425221617777557653747485414569845402128234456374678654098780989159770530532435010598516605340900784826812603380357412698136869791205736295588420937524114723268810715599156811276130313509274975984788372831585680617424400909048825548107150741864732619218738662939567405695461924703084928957572887337245781894773698002918057048829054696275318372208049472380998797304420757055944872554071559576268506354207067471829001710342950002836220916681040407483468605787806649268550033097838257471163266798711779222937887049773261671908160656543659986446713835367422128027670106974097173836666724552538979827019681151738134572087794356588135998660424265178808830119241829153919971661214114233055729325247626709106795880840656692863940140261476795023779170117070936893893014518798499363809687532613507879173318658766190647876309328090584795648990562082034784572693818370156242297655355765811119225757236539462642938478726279348950189664107134138533044316100327241364726089876706919639356295116267851739635801925674543475761102488869109044126299905633453977113298295506253687267613417053598346000094890890649769969567419345060924832629337127491744581988486979379629752291952231176455161079253317715319308351201090420269081027874192028333174841539581060293219158590248776390990759011823179601448111058291977704724770069060106029974903366097934040984377986420315177357669691042130996882447647068655660560526777648959477225910773598816546191901651778502793769945162319596394409905042248731554184917136562658632687447744522261692225215404926397292087524547875843261304391854802535681034158490290185969441778520215234406128904780144376945401630593244173542524194926849187338295652660594452071756442578661080576946538577028043766205457509464991263934013958075525464349767862784238183488125380924026091581011343336591071514733726724154387124823220891135053433696822557584663139147866281255532781139904790786864705640874241476484182193180284299419051794975154412559032783542138999877298270567443970616724312325030157008259404469023700860979140897327297807905431256543870937354319721966286960158458481331984100869352712572575253694679693472154708795707066747481954791720339630834189306811687849590240648176482642178744687537065156997811349082103846007306415828020842019228233174079148373367057929493278952418018875845690918798560507725406765574790688458478934373755786616405901432276655132996010269351912918482136244110478311318151840331313560294886070205479667739165895192480018168996799117155404446489888325431652882511886093244733577725007285439382265316382429207164924840947573404064820715990762170605483841309545248936904151531723980417470195525667745461517539939108640239399698834902576316637389035806269264414795106979147537191653344166844912872112513301563284154291971658654702717492899354186891014300037866825875439113077890182692582846858718972030066303980521296081214601894815189663172727180561488016782643125788886668157844574517987123455674774894261112953831235916451492929964961584936925466061613836585263489253230426269637584251244402174740116848360963189900121627852452285564165946656668056826317660724287796596717321275240367107211624750853646973458104050427453092023524441885077800417865621122248545854767542559944135189028991070082442736849604750965706464827903675423965005577666385994201067461394131497826394026658648435122061378125819795225093096348803642186136127379667485179424972262947807380291767377785451434192062878132450731177110343612316014613090798748692717701203294462263069586604752702644104660782425648387211082158004903865343778893906167235627790738381658264226599583702020598982969484322969081579682476066457627678378222006046432666830670383550215686978133030511312897503802114316519021881073875255783009560738649542346913746855018932964297041591340122023722216219225550074276767975408262239184531147678855136770954508974747519595228455357157447183278855454164453249069814156723096661101711831947132651211813226235609849652695304616468533149411392265927370516590233484965334332834129002080997066148317168376647666304838780974921563103736065818915777599359878333507255035639151148003308629722489934096789826960107907582773076572469002184155906805248707239118077173480716958730856936885207064499535195814608176046508134188533114217661651913896726671911521120056065678074013863203614657999309319990248449876585916673255738987460002571983991727901321199896522267644199089364248598803858085906596725325397473820313396011090280404015742669556333003424371176715390343740148454147396925680834239167600220563449032663431089839380509955731242303727387547356557762144720473212852644450001838525621686693010728689941043416533049929289228065576663388826217796887653850014705348637529238329656834734527030870646380948882611206805805553005434289470339417902219054846385459006084561535846098982144945734205050661661673501475101864051556548141924944441994193138892494531974574690319593077627548221321421209316918056669946426077271614432770541851964241111988020716502556928526272782724393737541719445264584180289327559433054868415125972305068235752190675316920655512712623938080961134464956687602809867044261160233357004955659407083390547104963903800905192111094391091292310983864056204936369262079798980161260717328153410554878162020723045973027103106976224167736413000234319302384438251230805649960318885813656010163839328676544692767829059861680135987567134146301254705385089581939854602950530033360287634688436883799572341353901257296892120116676727640795281997490841905434095913497635765763242254976748105357635264338051498308863934875671887867209989412260504061008873786988042991497072701871852573274573469157412567283390056358337958358465732757875428854295189666858829871845612375380782867811704615791359834895739486286792591670250117674930765324042385221141912814547445446495820255787714934302586267566981635559566341404390380291453876397944907604494253967082071669623021639552739759201089434603894859884704164206764666425372442028358884980491393258711465186898270700503972303144083476583261660231965009651617211335673540362163637650875549422298627310302474346395572875605072428825452156263802883152787941058145935885456154081625114184926936224782987593964034644419974374089010177125997482571696875795814986686633008212766446855037791380427287387266429167398220653690806046332570182971269218533990127549755328011859745823671248933216791380040308839764957590030509146770992876523741675101281366991096874553274987367905130087700442302826231032684052710394352066022940508439383502681691810583133599537415287027020886440483074308808260697543652512814389806733408598449898150792156834544394269846258537629332938591719186746178453376915223346105650355436644653317161756363491177523574691969528955255132522186021507158512027184886672103239953280168446223836009612939566467075349155904132048166631493452944338337189659118565486046670259341292663231851264118821685581896175060704976457437099425430282671440357679222119670359191512868640426941315407037593129908082693684218453229104876075375365530036811175648421637721299900348852656398068434152569115307539433417406646437963589195909492024889567590280593161059562986381348163446508390088619664922081030126631440453864266397284872256648925784560867837256914824923026621872353243534186000872828477605116613898472473774059697203902445537672907695603287150169520342500222584362214717212708466089109870398398410444789382018611861068358299253724629649089011868162548640968445254255314742833664299662838395824652142601599751499665893607554524227616038542505386221784119372452724053355309245605220019164552342165308544181523704374246107611415906521436842531945022590619750099415234284656485587532620594673589723768960870243189398719363896546468585722338844339255310957663445035150642593830866246938975274652149295448616642733087524859640888165473411958713136547798494927709955602115685441618323663454360302035836097700718828955287470348535842857568682886676273433022594232200397343405856427454187657213140923691900745691277908791664246961548318413418852530095295621306187012489220580790304589540934456729054143832515376799150236170884998877050158611228207636483946501178673532522720010385564440825974240855154671202044989158991676131241837238166775347179726501931417302707462632925373764723231050713186730985834968223434355866120145980694113571083422686076894424472613481413115675057234221855068440757384535585462363098867549661975277892453374384179243377315997606858162229001332519575345873081718575603382839800685693744871094216266758048624856007003469030918176356644457986229054683330778023387402050932279044234791247521870806582684885985177618499840325642725716983885721010355372598241389067503191632365048437653099451756542946986832021360246658660957995435066632189186797841028853456748206643103045465681475021603624148230007539662090756095079475093970968371716377028281191601357075349775287276035901169513596348349543193539840960757263232438734237937246127244929734487818338912176498643540522336636662979705339316154153281914965374615509365189836379669744294824951185454144126022503780732263208211672018308805217771040572264481640285396722113315382382751205416044851443807064354635571426796664686223882593115224385204455105374426163457698124462055210131217741773173958245412105464088307610257795736594186915066488222285688416875844347238968237180017193587012406379001892382715594280835546293695592167881486607537959768027518115699870851233947368782337674302767877756068438953797312226256373621804366002155082962931905676111421140857662456101874786006320709512582578867629135714461527911226304115465422254524034057052670543023331679650155363156592091304777326059215480779721888648133217633791555620828178260766516141027895671347202271939120024828655290456492571227359678173637721127430697104474038807790696488652486451528969736289255347485803188109338353990121941649851240539186729548040990652073983536626716214908681533058768971791301141513829651633891322926953030590986273032105085080778437823183841905934281631682682402227398891820749829685781097739315605311568446800836213648917103907811929515875951535003163715539632460819327765596174716377144110834079315434932988451002868459453058378651883586468911567657680278114509179953033910049906310429866688793693209807682945841014329780909507014452471421045804717204693241681854884728966199563217967532282077927860513979796023481001619253190774955859165694090195659906494331792716402569210289911981591038014184727412990112647542181007299241758620817986436001366562621982089000545275827894813839717762882895233645715500630637711986321908607828345998394637176947941837935349486466733282054855012468840593135738836510302293379423296289104114783434662678063096967933835211641661195283989532865388421237945420482166974012338011328506806440211655362698319678476653044632537177500766910040348985282432340584251999089314263109382009261592462511852387555929102954296853828602881707653356492626937503622087628729993325677604222139337754986875903767964862743013264437913596821938172328769125163045767417028391078347129356641696036030967670243162096742629076877798735327897991052504319466631011939362344834390549930035097152849489225772314575387152286945609229649279266411775305877078061819870713812557260382647204211386381457005682509077678590736466027255381705792598358321297131524707140943345323391177063278871222984986537523051574886374332204294043457500094474833033257780974078994600007657433127166335147506730859295756371228536523941091922629498297114877134617979754844988658039290418492096898796754988332898972528322098380920950325541190154480601117761538981252181395499081795548178639698356562938402777143266881608946330672907570483492634664283315865817889504530271587919551673454282538090575777171737709056209537060398688980123568833645894788257587203447681230645975157449271054210871820206186361922836788746737409141756485804484566831721757877754097366935598458239145477721403403015469423592879974148395897433057347702990533215543937079168614164842092391296442740110623083907784432971191353639443285663546953399272937806123332301756749929785681432502256295036233641607617318836720614888153672740253487381165981995792240579302726084222706649532982671901427716299640985899726016674940462923115016954506106733886388260386263697954471595286185295817420177320209385632061504823308442934020907452224069944977580748627057734876366291139752626236175567341175618947247327895402121915881495155272791827342218139458512759278533683534444673587974991516560653500169643224077830435028297398390231461758133419548643541529376314996412148191666282819314210997508481264733861857981628811696126627920931053350960330957680377610032792303582633911538618511374343808377695260805371981060217638483636453737940282377705260833670429559181673269796071629724637622836083348972266365243945250377995967603024380886173890322989952300049883360682604856730038447815851808350957536871242013860366195374450589869607721538095406045722820325827195693825905046397841843060924564407654791795983813088653466801049053934881977072633214602640201179189414440974265703973871570841879027279882128390723580484790089135646146684577719301412046599846833856176156423939494756646004979746158254080793995365427858450911666198687859065803767875925482284845561574174815218444911488127323905532602856851492195463186325717996701172057755499826107275131305866378159545808508699430397048436750434158280062278331178935065386534459644428800783324591038480263060544428609206498801409567798984690849141629427552463177549955078886143796581052983171418663537227550305008859431672582759096585524397635919756772141606495658371742891271174083970850039231432775089846166071432574775126746983535582221649341752727454961371610549028937831345674374295840807320076919981360414465532998295287224437009974779350026212367990633333984573106658511018774633599307930994402312076205823619836038160805970606542266058708577069121818588390369875321556329698409154520242748839248183735883151434498392856774200672666138106316189700795347133689734572308262461633108141728028055023121543044953376946403654352032358458690428484097287160504771757067285329154544192010166283187921098141041235607539249048349593726977471237259785622591124490123736906977776915962063061041939277245426469231536973901527246459494212552018075173108278134887329716438473560299497882592712672569529464843398285083978643776744923870473183089018341247774368853702095998153618661223672395581924978403083106507938334115386414999381650756041394794947669415949678381421451550699260294445854368547439829888750487200467215541446173184139672066815385631689601485840735711319864929466231974384861985177355670591682161169864556496938971930695775035222996981631141530976175684146325342582068759419415711124189481288848020325728785004449429666792588714356294475380517622981475010025320512211085152503305763139789023201814337563386182405997829155566147838636678235792241447985177434799150442976587537615739827984028678518008486767459793478575195224085769019341045878451834416944028727475529751148262026814535817768569895419519870377805567387144625194859136948463955884159207778130289527181598416735720039821528714632137034369308530328005431085496275372482498386399078335902217292222867231548006520492247400279636146681718371842729524689345928392836999207687573876547905743477967963500069914121674807114537264424757318998523108397957128705999311197731443473039621274451637963531571180575806924921984826623920518028486754691713509069251600565078875802735311638318647846394255015418362404597492015060692280719857175718373487322775661697662532612955043247782328430125948442482828894713238286919567851131396498693069303542310022750941854824396506444451126341367641253488380394359310337118833591837232648859897768485062876787359886013779124554188246242486014720347503889600482256221392383296258152848172754600884427782502076284230030220305313532969609574537845885597109341063730517677026794419145041874958805062587344798604433028178178557911144730855898379763383674008042298590147119386567344282052228830797222506960357991778594051299587770429212370765460789541500034132057542230499102453063339051218624725778059881370212091625229444655562479946476950394017065287073563320981929106730748621766780874320049334361688568116102913594619876110887172431867858941451755669733901093742950485561635613236364543076422079061496374508419141999715537080402857281404777508034606617156076260929850150010836601538471901191402583969156492690203414882727815519030829770582505504634622385058187757781318804631719131781519471660318672881862479696634875644109870157112107147939495498313450641003173159216812946480193867832171621696889235465623777973877176171288386455180680793270868509633481793186998580131406410676390621827131286037334177173386268232436757310934010991030217959075773441841835821694858379702668238827668010724159313921219134412556506711072052037346658452008306212678863204868639931345912148478682456603882471511555535195815154906690933000034483660397222003974702622839233784718616896098935951424269857068921288786223937212290726290023329318187327829023290429200546959159032293385513613683267212401665459442894915363574608888963953393494444143634009750324926372016823934714600840668660641848343812384741178194333161340206498569218884431176439864298721441774269181097411915501774382454898902919581258881216602343790203255721649700013614761793786883221507469014323105756085949833070434946977477804187379689861611011953385238082571690622683941859406386306961176709063482816654221719302219341521937702934056819665509729741637556918772137591629427410933493205575773599209097280854801280748707432223084570785260551603979241470997497596368722638662967041690915734458580011317502225900267657429636108866126529502859045543452217942321483224024347684136330823085565808411592637081713417836062249415726374437537555587596661973409004749733331255911111041208880516581331313069505100370692400066190298577898910481439938255545220194674086418509471809368653539683633053495549179287321173430990782160801373691807801347459690192189127720868680650977644482021590595364916539024262432473529361496530645734097660613688842673804813888960202939911340461658632579244696691667389848565060065433352704519264693090539072195677318783389233711548399778769378182316839475685666832176704391855114692363922349956948306058564047220904622598579523972328830566894532157585310462021030604547664885573198612501575559933573137092534179439602427714450059425183781503665272156245388941350465037435527840240870949075305832254996813777014156438562443510549036430358328796952367375880688824155561301660387408388995665063051247106576806999828667007857944821125873575510851712355066648567833791744552417566521172826459738587736293497711346963113955167496752209946416022752065550861264472989626979454879225469339980574513928157104817036398501140167682987102891127310874681765029614811457306738921051650745077742842210392359004173611194014310569594609648072933263726104686455209676947862443608008263916225848546833098335246929063136284564145843971229965843973212498058755157899433128094184791496673212821682956214244165009056923722508540145755751332155519486054157146849503760360060341848436304144467553255926470348893794484652096597078612151072920945429546360375871186858335988594531348589992482759212972450639924279682735261580371954152076179641300626524133275253974862275952564528145491490826246028225982607626366379534630844603960273851818975444812245757041752396144494510268768880369681170659781668248587049294140678526754936130619301972845359091679129246263965345678585568123830765051632311371818650770607236538365120606808319145928552481865312800620871485267583415926361556277805051329129171960905654961918437660343329425662929777106096654157776067653241258587895284429742320219227893113629320860439896522728290425108535079242830871057418117416444412600171392044926858469400566905599358559364949611929402547892778488816937590246574910868039562381857709159464652816976541927458046777672236880475285609311486755187877298281989044949864706346038653504260291961620349150295324868154433016639770798794112961947146166758264181512189723381368128788491917830439787931530493069148770556546857732977689015594447519791613182608439519737972428050498317982637347266343804581789737605601737432735120729954907588347684237879534282284644752561691711553154947534653647872843563052631029796282241577582751418095540644445144288068818825495767561717175167640395098142801792299460515733813042352438450714014315948078474097720934678010271739704841537032937935976946125091895609711585567906546645246537133334692866031644495004001998973884667681677785743192570708674195049400886350521328327573806072126769559369394280350460373315049073064175281222279189520258738063052053568198804940063817177854878636378611612220482012628389989004593610743673959447337680476901318112400895302124408417356540658756833478891148779812722297365709804324527466998692192729061182700027892644866870841665830428958642667212307076456609812647748671229617449482217913242147644080199297183768827820991924754657416927635908899548981367749104074281542363289331576153541151478349446091846153689540724988109873748904059998194220802400778185735748946531584166061832101047843946565056338936677498002753629578235381147705149032477094713367290807234737044542950508276275996798297443041909774906207670289510552235804647146487195788395332894970126751643334718132409975930442090968699010156100369004236472894420956707833683756758902117793934328867354650674324849629840815399585966115871216710548257613062099501461647693308949616164869233569033230068314155200710390912086433761389120456487896181442957201399900531343686710478084618069604504787076264754069705043694117290921569571205225830361775524636328712796375568320584062729389717496954974028871286443059866037033867299128264209855679874165267367212576878384218652048901564184067331249810992957128293179430843394832555483875486848268014138720191180600394041378663371312203330456631198023178946466661656217469856405264961692907799045540361939808554468947704193086509201499714632117793872512902994567297200867519841428610551945947020283046925604578678104179142800638031634468167113311971309409488887010546901208216357332844747222306845018003454393961367011757650998133100321266963368307766144840892921154863897909787549959809932496577883536696371152610581101265745185362300567599705171485053470958716948645287039953167615574423618854558753318767311366679641245079180965079963584249767258504628752111390413052723398914169471075807427968378524814244648933367459685367074068747471900343152203935348100282413496950502834106105247377567580851508751397914187324491994795914777524590608894958417914659500828233456507809093518183780194538678421554019540157058891004727883162572959937402814779646926890771003737860805366571912642876994840862820675859332143101971341647384439432025976114150220189864638751087799317620609460052002509613961565786439428017635677359328366282344169859041712043521333201301008782375398396246765678643379534191764494131214389846843772790298308480797944339098142398120888694819722861755763684299578911996559971782061153153458175220361381644140247296443325994158895876621145431723758962667085124030168892758173809467867903533677928218985481268536453517735916111908467143543714811466538690254372916249873832842581544343036222722494798775787166143725584608312181480331611208587208435071104473002301878224949924022529591767771171833038742169360863852708395104874135116083814044418403640763333874656142243035818453687187814156916518796351199679713992084365288082053982706270461467674652786790347310392532481262641793727408710975501005760789373112558592636945109965683536144232830067319401018851765539133507058846987861363253987869403877417095254415091104402623239785149314050569391875946878122034074875281909914103995687159511381520455421516588062862352874324753560915377101651764202388507917167384729575430594579343245041046389025835430662084939760450560594876870651653934652830777952766580843391001721167438938391529470398325112872581906604339264830990871350765750081125032969776823640951466431933578496174295276677288094808932173723654867817826679459590080097168307660933105713807714821839136591949625822212650017311731678520671623649468519814480964481246232863259374410462241580543352610895440738997483709820450650299300369556070867215941683868428693380306297484756315717111012962492045465030997797901581082740322611099380501485150823167620355268225288661951232614327585420379914810474254235833444967209568467457559420936280249480888671203891689874556472821859146701908003334555757044549673769477882809732694621075121224995427677453842827254262330446670437283981762409889336294504828938523767876502254099405978699112017913677849992716232031616480145266342097905195615876968451125439007140029920903589333840705439752648255170491284042423474981623505825569960810859350477481015974203832973105297211514386813727139193870552962233988930326489630954557372892855460045507260752620572782403877158166204497238035829989582832684585189577220335805220265332818270457296002234671120844057706447135979444123144779080522617954409850635815806924343136333615886615621187287698825276812083375188429036456392588888805090422097804936193147232758836053639705077700415785308412203073215067033386468962503910603720852734173271591393917561592079931689885611503378083938713830023023021499962482656036745778555088063224093248095341723851970792396219426269828193616816414483965461969810773079368742246164641335380123312794141617855533312022756786063222470825670976449933895911671340700576110457531513058169247255776739150834341413773539919230031109104975779185781522343668587707772759176513642104332674040935901516856162520519082758183112276057669727341291786687967946653011517772171785402773851681728471340663337542345604247756625881025396628829725429810231431796166130891966769016854124716461723855639849605246022698817432294239863637124102147307521165042575374484907855220126596576708126475209440512953916550894157223042404269752460005408240828020359926221008482266620039603231268989812169359511127788922708657502714117623309067362062424789420512396438733420690013696032514884425401597265900186434366839881590510415574530419932050863212628457522561795077988725311811499246982084239010693790416755834846892085072360855643789489648099878836112379536088642089630561764404426005624277158660334357959824129285234656693648922101235158623630898424652929176213804157785426267351805125622652636170359167252864472663770040665690690924237690230196016346922251912768967982102972866959011570997387442143486063841600620181479965313990088538855340748170152676458706498356168033884466734214068372535050504173079869516375725990101744328311726311854718957553363688050015294788027345411965380821985074079850513083096237962204736628245758722608990090390525059295393781914072751258402904787446283548917992727201239732523587414449549976854565583731063514130471330793082931658906655607068715841523817198666151452180486241209440247506488358888102410202560150483139454248689474165988912182352697009166028137896858423542631500470423723072138488314288483048505018157795512151987764049599459407180877217540007963072421162825536343131329055286208001439655747444677626676885091265497215691532610890003670934612533023350784100437750818739897281820588807833353214730141918987903935495902325145833725862999209004458462692550434983823033185797708245312310246730067721291310078848409403568306156975785929738497915341261052600998765613486328157962002321924214207239563247048950561545617269551220727232341109733270481200899438100877327526022946094361466192185217827967323490599031443954893721778531260559591952909761104143073008409598245992536130581505571326021784548599901665075486476179229519166492669677027863672613779493856694802142134869676931124182444710497676726568219550914950765137825789890628277879892799695369603579655589185840360879738757668301755050086481026576494273260285982450821154423802279209963291126313771262303664961225523957470804009317866403657385376576318380232159162384078683476179844912338619589191901316594973640300862112574464273375535524496182151414780415135936470311716301975004313496213638924443486827205498271261013570748691154500468133933603193008956180797515005015510940406496242929793043080370934725000113399110729414275846056055376871189176634977815599287105324729727514944495109843481360934698639134246326181501191083261091348373128913201539552814466533935545112873753091551415478492576232514525952311221275309958001511207102382480359864839484704928293877230851954483435106354604554641877266908116203260089061885673722519098492672522034837559609160590104081997691760833090328510564733998601577204192247986020230766138518746402970112268919737520711661409220411617281181629950933626731697265186711659799587734271233490487221981291954121199850642321043501941979424537290215348210166430253626629309649590947216850364229223473385467138892122898859117474139143083148218685598060946723353292827136857945956736773239785355640181216566170034480256009822070376717018505034146450795339362306882030113507901251491425216049720625309547735203706092910422603464152271907955930728482473945068763422398993759227973790827823389642833644174741081767950293100082608464417473056453945081924616491826173925748577880415057161894098786546629060791394562678982776611521830256064131053947050541366193281268178832307641405490000280538020188677369745511909770213304982146475164654819099224533871718208609212123287110079393514397498845934971549712411924457150130410589897921874077321123101676816645037957680849333593410175953980990969914837439044168736500729791832256254248444531936938067288534143195998562898905221724292454270032534338516161785237571155462046127937885323012249209428931003893071036074847331053532397269830880501698778206697417867778826323396943200615226298388022405067104446738355230120664249943370729496074567071531155813947509043067289950965229970928365247919046774864737809788599553152529203875713775850521290503645967243069948434619813740287258195702899267614565061954199675486457019106559577676560108979147361249113095776946407326871299054006172385190552017447264675954138438272888662170241742400096367755066886693825440648831458703483495271960459150278627381170671196746096427241957041041577319441344679959214383398187780091466561252421129717021456156581351913434238269436595171197161616310907658656534213241601603207034483207546153603453127559612569286265487535063821004199972334807723271663552472616803842312284018336493757768630015155209383412446570745610710320410864337431062366481222829500342181427666616742471538209241258638878543208858296596775005891102297548142950235238042317219033870846485655950575485539997463019538793309413562293942163500893830351625203072138061350394328428063344633788752504814118394309158284078579678764036098789668048463564571282368158229641456906221157667617590320456821487478809715369209182016698764575392953699833820494860942178388749226452267148946463219698700080553247450242406232967438971152501553372965820753153997101197562008981908685685024466283365246342534844471611841825791784002988380311858872843734898223797840792020592148680726573582434274524430401276906461138494915674371012922547539297956759693238227499477021735421565171517915347253028339517730737273690412626414716873004166337892080223160801349062123302874781805546858532350963270201561034314303579173166705390467586004323295093034095610990240060269458485719829484596998490140210190013664708442019446228126184862396468377521599852497923867658799912759828095158711743736920330198415342189827129673283587478034011052913085110889413613073336078446296036091664780296235796765829169332298143578452950844378666375572814130731203098483659323928079339279027016147749441165392577272517375627516568017781262091299168665332652571038316478954981002043423008716770413501077644400762035174917345637608860104061167589209613117987241795820669373553288848403295994278467263453673226669553235039437682831201895223707844037641222883930715796901734516406686686320325821285826737031256716814785311630454670900535352243102674890180105775477757645918612194621271332019695912984603318252553484714771556167950624591391390420431638363529833100703773654727428988849609664120418226972552002895261560873601933127636903333435288391819286414435217664900719814215591738834530510116032870449862607622831443918591008469901181213601444609303625017045112216682901509614826466554063508553048001278711102169271263987908469916508052433319991779505148539592300715855203541755472151636263897483359124210711600686350797844177509515818264490806270235983945860983704258264970436838806471978633310539619001816100200002177308201382868576508771187513613890238983175691677374758615137531391562177173631040920818094756929402519022912415569784471836699916166539469208321501978278946012955304905001262113883623341568993478632374377153661192123780476407425819403517169213494141178440974260889390978076967808365677433075555105666857503236953643658848906202503556426787934102722337485053336705757272596263653676611769495491090353646216868122266217202403384636089102352918636574730642562401108616964012949340435421254492962170305590898649096864449376721715127699637100019672271543081930364903004003848719672702003359699792636996127276494845542398926229998728917149582505526705755947475995887982008916516234767832552542590460199315681877735750274553320698494102553553926651564847286428795657384964329950591309443877268245807052181509991594531969867520584611884901829789664072915338195143565210403951632605781887609668972800949666677631054617500761454800361914728552751716373926868737970213737696107562302862991876693295833458168081821433004147933341360216629328293567835169157194064047943530969846004883880825631323455397536250452034897398146240901730509725751082287722425362487605292520858821356138451686127344048976127015770644904514887618015104565169895879330924396251912197243254224358889774944473439877936362026439047213368821496598343211073537450257121724526635785458913801660775635427881867196245031265270588531992491213701221609712755137880961917357152233829241574712541155465379050534043149186942568046647852922305064421189731494006944202907989232688892451846149696516761795475349221516537316002733961774921587813489009423647795513929607174450889473977320537154654844164415739660021897238310651903259107767617039535005595304675572808080238141419403844975924623044531909134665395333053041623095456488799634842548557609572518211266273157847013097811114965576916319334748104690817470140789888808302943013673600024461294496228599009381442203705166680789715858220586770914813864394770106281589090879712702674431432220087628355497360738828287077351488464686716497319224855081421652682681987425460085993988638160786713922831051893023657011420389446918997413587199212388680451110146844835016924626826954078840275983316373393430556853612078963648530055631931065368489960467870429953011337537002927608439867260607865020840565417115831002286549962698384600272411996881641445780190594113413089743704945070412331856378372183617737767668620284979234522536330415377391970335898245631349950950327500506346384239234460057112971866968467866200277029665427283030480283062739980575490459427603790894371901028621611844632643434289661455475149482200637197260822337331448415487700429122351096735436403847450550318742955452649382746983131911449571110216346043054054388234196609284911632592942096177835459234394122376288317241888887411494300502735084670088927558951882982186670348813094314721300298347580320733123622771508782092096200750497266643813567255342405291627634320619093260856752477661816136888656839033874645714659474906738064375730566626460512107366493015557158081167428814813940519608261383878683718358369985933230893715791550295109695616461245848827773667914220493013715334194450922867163450275020835571546874590643152962531669719437915074515482508196586475617927063547664493154762855653757548951196004670529961535767760716826934604424733424393182498682028824024093376615342151921585444935655700504942189409917181883942463444784898127235711464808333242106368108012057535647481574424489186891453903025896623957954908806533568390023231801671225082406911508696709197768079015681855153112289800664926216537771007390124378519626573930380104260820122993345061965533272441380270429389033671214099441588178331766571369612072662702188617149992320365787094511765491897518476902356372283651116878654893025277019327525859798701125289796870484003182511641958430132669856593832925961344347336507268804526190695336175749095857881935420302385848836246063982183913757278920368918989106553932554146379470802309193920390232334765321751344750645094076931101521309745965978788624493967907060720834163229514418031555719136698052777050941738453097096142886652241336005490738567639661453144691430289659316638672428741999190644766847853198804081514918135946252725827838477972448652282985389568889656975495608098223297068439885536819012102778061712114246321938523833346615727141460060340892122866523596608394540868371231009319815045859824131088560013297246587363105853626966330535894335633561722812125612443362238540289495519124914888843429025434820810395583717863360797584325186887814112201163896392418311918418197112966324681534522122636427271376196176582837594557129411694620410550818927509763011119560414878061347676086175759889702572970427394968883157171086991205857175429124860175530310109375983348445421742972803631616478136606082048255206986514006822858692172261934453881774480117829887678217182105533953838310737240255142323099745426445066231870553186441901407695966150817731448629137133760921128349786435659548964194327183963107977484996161505110337549187161916119000492928476352389871096696860783423729474601731857624759100210253953409333447480827982635425588968644826406364663840066344539293116424997831909916449124978554516722198441964066936267527126219324099995242692770668264624389888142634655394230026848191571454803319409792818646830666832143961268324436800014209010064973800960588451702654495174024180709785459559189251354456980464501015486854696388429751000149657690735667681690462581862219382811908978224721490819191112947187055882274636215273297466635387698967573820517922660080886327005190914965229637676252841598664882455011498911243080895712291966188783953382636190420554293846006593301236490333063477298019519924993633714147619857446564502557332342124592144384288820370983259056994676030159609890233955186291950497761359670352323195190018226320937373620746950895533294424606214691289360940709339005183631082162944126972055758053210682114202880566362713549397558167065053900767567514478405510240034920197643672531875193233258471423247379760835407551699783599713257294876519084112500853636551387493283167630254522312265468423789902057966573033805517867955062504183355511530644049158505024367393556267422777331083198544242436919675419545952616960493394183288419266630724329036870391263597546649171749874670559947810358278405836139211073585801670043691179507322916099044496195808709235977693582023725938210938207047208411230726846198577067356513408925550318663534824064745825054742079051938116706077093101819547104985281527322592711123943949241189623314786035733450141146615553341016109641017436200974020077663104937572065811389238292767005464694136096290362456903512814836250495608621744475450919212268369532705289013168896185772622942993701192669521708435254177254840383463926845976552803427695342410392842736135356660943933331400927820158997143071143554485715666523501350073233232633660621787320830289434277733867623902255976604660494305622150774411410799450466278035999014154729079460257790745073224859558896904921897535595636336791926814458871946193850236935548954898529409087849081462140721980324638021148648021278973851419543794474757956273264470230552322289178433405297755360908873838525526586467242669229736896269221140531534170192245419310983140802445690078061846379275952053766916304816057897553558705541393293742941263842551225143586812676692694856736864409439524789551361979535387264384009953459637410031334050024244730160615635409302511432114562412740348623595311799775516236589618009181024086756076338026415289111399885244398063703205294427470989416344434486151722578560876401051169815839215290799054171381983867704855978939418470914146190257778713180372837421093565668326379498655983084054331423864881969981972762833145756731185607304202293366727327879267581913414514247400940286890452327453838911628998319284003249918806198672140677089173011528874923149645585682505545926775498743062368796800754536602981298653196557993867696308058845190558019956930784239247489991030303778743160450081890348477679287830963559585303209156165151739024963513632115776851119794657348022085854643692189116258950179046511540344792439286799569959968920336121772764841017780525006997107940743751416701463277289034766575772179340491358586277203002124561289289398556955000187219981224909824927997616895051334063492718129091036363384160933906123161883097145217887788612012232321483330993049897557396033389703896146649411768651611593728461485955083496684666663259981428138244770417564030180570582237707856393114679129725985811805311285736055573055754354708413477254135857225885946323875342110794860958011269322800018591247638978851518060259982068018765805378961548678932930335321524876465534252943650802806262008402144960187317842249969860582314061251379419312095960359043398330910363232322889617724777871102025124870994554201286345038224913297602238323422838441674462002781894921157727090470665719707958061850023212667028631410308892915610093691545603009099557015654853929413290905160166189326244692713770510252501699385225314876398058082004317617175638764913777110341151699675083913718644894603801616300252543589896941944087671738840891435546051206131260461016561258552741972677939151999774118969047391165335071741462056955743156345734549712219212984912314417603423702604559064313527455888388435426633171361816460622212153941282379627622578609204587548315382217775963879832666344819612403088374608206293115785956471887029416340366026546402061177254402736167686189518930514608846105189035604475612810197628802826442229940065978573225905128614652551529932762406193151981619447874425367861568007880513934991683211358485845396392084667538046446037711051985567239807861576708678206215148966825501456088382040023449104161769131425728633248671249325220085744978208617291765124684692813643603594697288878962807135772402224384007543205570368845865521706520735183148827881059077142961137832807337428683197142562175214016833456568121450217343540983833098347822905783922264721056488721007597320336609449511991730686806794413653953527920600543152565690053206355222953299302832250547162526919593710063864469511844311025208420322562069991331795046471556979932839169941304707759524535206410411639736599164937273365704856938951371943675191963833480178194884575925186143913067443086377753418599036833031036581770436155173743004109979687128164780623769886923271042943816022150233538878386536687185526688818753387161675475200445843014724827480020792504742687999995595564051965438959635272162236108798432453856461666516966191608361212206558223635096163134964514104783349117210143574962552700281539650703751632945304795648299108413332748741895528916920342658633258930090337983051506442988657206237149031925141691875019604174499235269990147512298654031056966828040079819170917481622062073738742507884442623023044188324974726749314235380866275605763129139502477156043512732419974310372467505378163368981472681005046797599968707473399693097845481833443005793319456744778606324240872501990762656733492893291928600864256938523111698886911836661580503643742852563282262399245310076403003879843772826241716265720844826626053563068715140365790732070311829298815916323221305987237059758177970846518989588677160725297001645514998320767212061997248647920738296595700696870947505449983143047435893717478089131167497943237837688305490859118807377448648662165872807183820488204413142309004103871695901507899174128736981403158918872284672146816878203631050886707598528099588182988058739754640270075350143477436849137906497207952607199407883390805095544990122101443683832685320772256932268884876179330925810398741371750145105565166870011734083249901130694152556417861368288897660691823521735473809297887544249873487630345166035305486314813658750343659003397025270718985061284643176871045615848543775901147381136283468879677885558703277646910955737997524445815941086554195982301679526261305342834447861925127986960212147946416054774474984489008187309330545402059960251811365650530110811506020025996152188821144293320271963604269597177379267826221325682585462980798054128889854239851026311410895418077790734033992825908167261463833662182261847365653894196411741383828018751460377444483381837101527110650289675076136284647013682160545136780860222793554916139618220650746102963960819312385749331172632239279492930105739620937303447247678171445380175819626673331175370212736748512816929945927909160848087584479532966190427181250800293131972350248167155234810619626303904659808199613203314234098858486918741044217733695210659470514587035987661590346942071882900119150638620862044071890817902738145253183600488279478318263318019369289793530105960657353905188216842995794768418548124679788946188084405633873880653558632705112568196493370252033941733125252241211693376152886637538053584426661656119622398906701321218802967875459840846718534963330274519358262147191408378822760873715718608611262998975762621711198620226910473550848294288870156540716222846656167074587403374499373876602616622033040593934014455784634469534925184392318551079983682222696669741983368778048429127480176827366776241997931203563269724603041576668201010068549356604368828456390774332941662424958952736224671850616160105845936925113285199323164383037580412779887239777127841579421026226468433473389832490496804435711241931371482683117271012173467404761477063249383751141813182772393183823632181977293929695058927066364419383028545729897908136912805321400382518308477308543586339110019358775810764310523946670928073841922003128700647406500809399091683476321118938868675830427851874792492670548515003827506019236776491004668538685534202688400658940334672259188254855570327288848776280988307811045293042374491975628504001246259207310291646150272486040709929145854611867110747242513196119002087824707968875444450172213119649586618057544857826834145370818231307502802000347612622000529711143438173758519927024474603100446879849033655269118538769763937263915531989184501522467478597520159520151572824379085354924116938283010916094748086562500359914961968009625760882422869900037867087712009369972160262902899178448758797523468573667638341916395172268174515161622886554890600685631208824586814375510948559697250955951089264116571994673801096366510388325944106276926170722873599247299442800702479959853183098775155300654672241392418005380826621147720205939608085414449982515546064387250114830821054636768961812278573887738876419001753335778020223079189610564805606158985289713104048601953208173561604748385959004137087927134500000034622331168651143616919695788082147024589823521846970392653084340077517066676160706867223025949969837514901969570876659236616262568761600469153062379588297883549611683937689389953091288986213678078853338928189974123159292081990461111191522310874967706918957960445884737263152893520219752865483894454627194148472087783241282154319355094680017247755837350448279931344224736666671957926133105818943848217812296018325211964842087221195294976551814971326033659093560819456078514999731679000645453242174415227553712167655080052672569602865729610556999722902368763595711062652218461085061597586889635697380962869750500633776426483242984502935885224378300595810822783993924267261147373195756843679570996570454417295304719380730381614052436370501496556028976661843867414106913519588940197618234099638514740641597585809060280428160466273418264815354627722849079590500299782400065153814138375610462339503281790036886513592300852910524162179318967821767940870169330816465568679483119177619942297587457811581759864955408746690065733496604934131996754174371903565089129992793770374052419195326181588692977541268982084136919312162867362876167219920424989437004147731388737985156674122988514231151681299268332175733691020684210494221282602362670495473896273457576387313657130049440406322603499553664358379129440065122769558293660561667286302745340416251009335698130886172594196321024915798381807608949127178675505564999105471063271186842092158637850361379002685072522317748687784788974734635518763056657324360256329074086738684584060168973352141102408439428949416919684853463987534134738632191810696198207028886407960716083866690444715490845116315414494893172879723281043422018819004858599829363934301061967901834660874198122572850356230124688106637390786102659982182044674897813774044373015153742841935661832650418264318562321510587024115279754703453472692687849776450464953861905463931738607132934237627402128571474033380949896848185473558273221521938309980491188950425677002320604542586399936479560517149793270863124589807091987178615561723837227992289229716451888839044694897502313108712468412909523051369566248607426812034960333773126260508054609667999760480427409471924723280061236350898467198141768539299327979150874195454897783382367451730444593240102483311875785181254513188503059051311917487960663376337930463673478785997938225529442198315617070966227231467861405394258247228394380766781020409335168687655206463307446986067734843561517244172870886038538610716206876015546597292673108580587033661652263086605473220390738642876469395274347332392608456726964182297168149947750080392099673595766437680343832813006335065031850910607761727633731205405334373506471776948970855422072973412252831893625387946646222980841361099571212681886167466290811592808287774295004621487883774068222041067322100236923602839262912614859436604513541381018377559029655667239714011466675668169758506311181825401662578710655242680307638537472359127181404576367429053879218476281336598040475005120086813702680308886059304211591315982430848259515541162745212821622797374443123973604382984477837268396862503139853455944326331269610261425842931959847578366802456578842312075125353968695112242000502246416180599835736842143129801922606830435946728850785839938789790115252598056648221458696155390451440829448274877397246750595593445355814697759349014180984511352353809781131386839540733893858379219442077285178252956365134047944778395091090171520819874580112429649720339187549974737252712016661061636918265984894887421326919196348505210508217053046549635883731686075247772581045386096288543159888807048508739773982362146885218010261175262655440810254111346380852021155545545192379446279711740020056718372886667584786703739952060752824664065434945780473253478587883686909426521903430228349469676997169025954073940565986529328539179499432499355873248894351016531925559367444152984122269995864122028129433683140437112325364530855168747437503909584597961387103247029323605346823984082445317487380861811842810482844435789867671212718532289527912618576253803943680379707435218251909053404146582845844281529471526086391571277781259532865453371693679694705503849714468106207238087209533787244504685366693006059369200732435842713921078332441245210077031043787846952131954959201544971928829780440114548837296951511173173100563322351422069587871283839023652867923316154474483057885416141708672574918166831288358478479307791273332169971789604202365187631554304735383925536681643218420063991412400294287027387118181140518600170831226344421512863782057948264355090248315965785682364232154090861522563735728319207824629651201919531306393575706384667008376500181820106399348624337466361662945442154529392907303684859889887622981211711791165719350643180635451126938258910166093485434180911239277601759849137333531008767448537069945637859152104248623743521925473483093429867761751592942403185603555993671363747289887036571167726216691124469871651303001906141087602033416850351514032677434444746835870528663672041591571900939672341736558715591235579805600781230038676515445490261201765110180164440216461746468627971610255168474690478917021642441502667207279941801407918020381437946743822082599733958996600661052324577306082534890999594703715227511855686271318148736639737229237058855459462494471085001867594978290018630640566152835498031745918535903394137423544183221284180485315249581137022364247552291362289225704122219923764591402275922473513295701508059784759641904647999798425241045700807339816877078153202014347098756816923853542317734258298552527855324981057232546732630699901566131367936471401505312973882139068011532731510757107971673537208321836434264897366421168543048600002209615870846375302044509063476077546708827591441915086883897973390926825186743227268635693856157936048876425429396868353458115063932964354756896587223236964995501554043995643486794130740061459023551453828126212196392269787470281605725388886298342910913945697410636851916806659199391727632236774952254481053785537906774007752624601715605196610921491140375802466632843696708976152338254761767953947844485462969607444352417137154916675280783019083965726119674546807066422963499297229865820258864830745250828860679192656909803670645073396328130967006984938090998339509007656859369724549190894147925128416513024023914457456847330620532384080023244477000493142050374078577869036669891641306632433377824390764606923810340569097063000121778941199734192064831961433065103139775539267879421705746748339805829677426030807455130278291941218774302372238371656261053100653255311431577403215066374106798039738519583637430772350098522086308438455090315094540016577618515277768905616734545925065021343496270425256024706611825880549142717857937658537107114777719090333925761717764484698641901100733893405054658176691444877268720004936297039744372235215607044353631740394906294667559012765278650424012779997207229015911381594189345071805634724704615403708021053249249906536574296671993946268119017544060630554222365462738325762076425295153939303439639219737384793024841609132972689469319744347079940111019853836821083725434365272104449131369107788466172018630291621617095479226680089959694357060533124044964698274423136493862629532670459150687077567807650270182828755457632744384750744580993237889348260865662372040800391057711388383850749241035765664002660368975192242679896179979115557621074858989667168102543872191628410878842154803096165949128336558225539497047020156824397958962671420654862873526724377164784422505944754294074186937067248868843226297356124835405613473899774289566014191591581769108459782650102044225076542776531866503080785784894271798927108341855820237136400663509494060785378630566309799634431669410256140562306570050335418482725195586711675169748308987894297055182928917216252649177822019137552039225147213389965627374273391677681107386097867331242331681061964708274738306934162440956270758180981099467219034431428755625780131567293637213915340243387893442569683279400864176253650365416185601488167962533729366987632631898441922935726372915409007249779425975703578047578095233222823576196688371541306219147057947851969519462531008473023362947525493195910274392222848436280130952199320908883437520917278280106206785627331043642298094860245065901152917069419425945344101229615430216868785757518239733565541194528146674183806973230259956177018816725779348926412425074705051426813904093787241957534210686388199977306712567432361539729156123596662959221744650376851196287547531845834114178153804895512455499313035569311454919380997371550244138194174764501153041753597706614089026927789214557331741295673989613882682000728484602840958287474249927735759697891320766110508711490698862416214487605253856730501745013332968856327864584333740953926750775261512039289408142629161428979828611354509928939347485960967209595872612671413414433898485467718940573003227162384318347755354898204104699018977302878921094718065932924256174001432715514816914990016510148863036334232542706300595582016553982994505791867794406875743359505836534459631670436951457800722018494609129136386132265325313141381612193001301350546190733726743160841525027297431825012055133401138868167653854831859786600432577389687733529910931931607755806618374063229592868451543630763912810813525790586552739114561151698523404465101559154974737617751285296297410624720651669384510766264915999574235018126633142826187633502367873602761840589495367390473953776474613602369834508194576700044587872887939906193598916387312138437768256336088407406460731553684551171146385995051618368526551585370223602420246271338323643417490704155045313576789238622754723050852067814144462902167267194148316197431346984017293231340048309289010153744782474157365140589538824800056896194141413079819519384493116654125689270100909439076491876933816629403533363855302580850549856712589451382195221997163731083524953794235779188120199187947000531144010600386959712153483378668842607157180469040015976948879790918200728592481621353052978380486887660523732564186318303039342478380968390834826409759275592628882085051690745030060471741032809333870381236107702387139126474992591571504796935980135444858758540858494973707688309070117549877309854345930673578098547891400800554461714050744299419864077203031656165529499116277285514655475607268158871640772111289245823849007962388699220344058579455989464571103107084133406427146831157693142601341378159640007015463848805051200253997782407518027491311422403540415553901641531009776836060776026575640237699526696203639797925507674714186474914376637996854281712676500411793712889833608428174292579484237450177794415675492168222761860375169722552812152111825083165281793286694719354234751869997045899231522347140754883808129120835892950024451085323731594934573060883076572423078439619084603434633309076750400039862993962078067428816288756890743607802578654410587479535692950855698854500107524289941493025315222271051282268305053792440492170509204034651293134236763687620892891993160794820834264969124423864904311423307365439664988934492143930682997061120942787620210198075563429216240355444506271648231148158789033025818369236775182286009671846452772049082900272296625791376959155427227228048535885935081397653997498845665200932692727508899817697239568012124293379574228744288316601854353200697029331530168672478372486730995425823060780290341966220257809867311512954236409153543804264646745153681955985574351163365464672658567411849681948446425625829775009577957721186129972978639249575354397263209971715268233078882060128193843055787564829245143527361732608486377500451945041096644800453685078913349116285047396337849089503768588694400116354834652351747642222880841622152157210712159283273362752264658188624119909694452351094954992206627522626800688455063186054412732483167763330996197372249105203830094193962846231407097481875754101273802370985267720735461999168659711169231515419386359064679109569695278274578982033619297485189436232214862355211251135166232224031494609107633030170127232509451231151644929036445572292337696414884463239028668822100673911438015871524763754704105767361494640235646433437034018943842425054913247529491055231560915410584122264613324933761168227788967373017159602887688315529844106934470952775812869162204725967466839503469433114419614617762438185948704176225553082706005920785348364715621172747152655590971216875498252967369097245457055522084010301495991070434765900959838825864001844607994191675639862066025933690446223433008776996623135464246095295183856321063511548811780737558791890534363754583905773899626858291371870485359222611136746075409326541314738175619893932444661201595343396611351010104423816570458077441004727647561031696663748285268681730137735259500502834560558351486577066428301673820135711585863522334234790063612833807160685974998823349321227189052615155826333842422914796776335605720485194019547081843045597145556741352806795757277274324890092230050628358450701465418309889401582740724669762462144403992135558522028603293774558521757569448672596258111684891597837789385527835589938457981247356005336905930886579603058567702804356029390515455813841263665861383987189641682144458447421688134414762041970335999534395303967536411796066910078220179837079233520505170750931502510043834387596801184103104348308595113480133986116409613400955381991862969371933654373446087233357850569789753695417402062713105845130463091851878281452221126349487241818507742517122529395533540752123039181246468512324190461705529900168295794741981010464964427636533635001931240572817119819603198600200230053590764978954187389753725047943243990934393679840947998372865042023415231886075349679777491119420437261442854057509102478526964333731757567129856602519730565598526882011759592291464334542823702242291463584330025976480704775903251213843848681950672769930857171215563459364771472030941355506473628371945885095679570553629770944071474426579747351288585615833889836275992602924325041518044417755837222719400598991094734743415409416787827703764494001155744771080426737687024044720424998740420291726230257504418079558232271210637117357469188495001051957427294164642007534941912893604207361102983203372716556605699701573593513875616503181844517421915890183653355492013015465085059787230309146988076562873466204667655034717788858930016977331617956712866627939690261369270676562627004240314915365127922898421814632784993805046650858309487727785923278641293587685775855590873465433130517281010243382244679389525563306184439573429515109789268582106518897731397196797497265593481632197410360968507996250214762986779154942093892019732557299677294883519740569825131682252776289116951839677547487306359574693481608246531545322201251404320469096834033935212533951082065201698910574583435963308912506862805889858369423968800233600097432479369814574832898854718902048731386363829304476857869014100261421247033395110219181175085527397140614990953988140546220160442894071500687542727692280069325343253832940979266356020246004001529566552004869263720222846264351880387517628015238894921537227485968529348735344327173083749347222083052598295041676837948362042390851517702195230367881273034285046987964328613812830213305638125414538563336162728614081963694045572871701093867163106456442657348607803041006080567350355824681985055959437301544550128045050734235749076374680664031684706601282620718274707629546715208986446036992353464174560593016450484362494666718436030884959615950451083912997575598231889825134175288060496580944522643872945653976562222263163147672434176917985522395816641488045802836752613876085903363732513872155518977034722521759006445262525500649430216230201397439230327886797211594243924728087983738027317140517272079816140085040958029398774946586701752170329328269732239700264811539176187345685287050757168096766360615056924011064512372211892150040777221379264778638941200766360993598244410982663129181846958623119210058634984149160233125533887288094672915170872330444100600699399092536853049134662084960647724721404715057480061188469487468853453921183249438788181157076421501894895120057904952094799500089225925602357691831644011208978373653655482250349347029146771492184742829840705560875907448910069538414429028788116557621078233870999348832042394727746063717223192371352098497094918932939150490715535555754475956313395373434247558232938875849246061754112953087766737533487246723233386796051063276363830054698931809400688997058011779107912571810859021334503822961079753437853026734971549229554981283483629304137087001491370007044272095424285007781573845277519534369472691744761981297302504123905055540208302360732928572983286056778545577891908064097807144531941159923473187703448221001310565534351822735289151662195854446611794468151172347805132217439116404661116827340989081019974265187705878664687667118143122576353164544354193908460188429114147691320236208766649193858334075219732506870081354044253748907555077680269278548875858903739720924990863179247801219845623359461570862344664725547738832973158411781974084624374630546653482456244647004614582847926085336233596957620608968363037592961597114663982851143232224559902748644366323761594560952983266118807577438584902249216714721955072260777267648590828661978051556774370218798197970192093446634149234181057434943000979459099892078009004096172101300600273129009716531107601100116705676342256892436134617807045544831120961511648983474267281626740549710285317971443632971906914665094676567154704538861802084710087674771226221249556692812690146317324736413005470472881443716628541539730994306852764154495954856353494797804044167248285016553587087808121297994053210884423708886872000923319169240547213055848089560860248916441328518432736098411071828816042271886473089500910069407260926469733678150353017527747489101056730380870439730908329498362731295868250616155909139549454767550447480870398606888078538845541559288763714677160946397488199314101171149677174928477862547470443273501370381163798778626296602843621806552072846029888671128399232940351042811831364137267845762241059741380696545164911157363386057554899772029488078969234397502191965958783907415666277724912066343234772025317102954928159239442004445022944747052712038245877498673104502778365653758895101989073163066351156650515034156086397476801774957399340169929002131988191605020005515683157616443032630708244867267004126318281485761663281409547286325460852761314518156646734933226396309944769710810800011846726687249928724404983621240416056103752558959611506148469890983522069741446928269590343343203101154854278302621565159350298660694559631657340146308617304273467596343940571202711179483060263942706658924168313177476970297907800400708252176156743343801120500957726257769980041908113132238076437038036076731706657834154491775629332820829627470938042167864059436293403994404565396251782115109504318153962592535707871722400576554429948621105161857643171144074275848199068848478553267756776320970552951952785558263895908875664322956882323187279830672880066435594601498457011439783856502108558039174863524065471100845444968605183446084404459155949548329198952946892228819067449064183573863183147817771417568508772428642351723330977385195627184288451168656019621374691230801888105602101731265561927555056029575478698355103669115344021493662370041051973597642369065587090456761444662370150615651440731409791645248988492250630313426649645914845138309924574909843053829549229259711780641126485195059280786615847505657841723586792111410910191963062803779715354798127906398462737607623418751365751664927893214514386214814112437552623360046204407366799205812253965506725247747903651001989374900935352411774375036995731661287730969153631347137106825219273493373907022871440891821567619540623254510139890737997934750640715241873796149909981264183885664928025789594186016597153335889764635371800559275837502940960207063654071718209314940381346916451342046393281089767159806749406682951527272524787848233303269388289547265387375460100275780752154423506612946426265000210222823503204778493893399483638549703075619090943009031785877956919593326762070764407336787846987973970614251570321528976802374166454098507617234206599770816472791726086366467941198899014730763728882234445780641339162560274520877200755524850935520827543343588294878825942473603573288828882057072856705124075331867382638113283913524847930590050178246820668653383172685971084046618419587376187472175658293164470826377483961266484343397635643467475667658482611109595313998484444144318214630036016566270190246100686320600398506762977420664212721288633361040099104337388076663130018089774931281355809425411028951333729962387732320847403560560443563025708597793026456116270481324655308599488618123166633979371868239910433196983045773999837443026227200561865495853863637816080751272636788344977983051850365529900595116892382686224014781945117755267455881389582936605331966323792585489985501954438228562503717040012426952193559567048495494029435415576381701190750333496207873350291757952426074438634858766564600440512070602952758651905821129563836726017173643983039363442712816167406206579749275100816551695630944022300359600876767278036890239179672114365446755529421298696278578305834404274341479391777783008587967011801821949039392427110586070531008247300329960995286981889455988113365226244499269587856118789659094523582622958985061213903698910355723087662924452673551173070329813443747300145204795799209661327368204493163153835280220422487286463748536083127187638863455443421614317612220800527601881029917321315109040261774271888533601943333741594626506152163501501936236112676138835750833561036800697730622953944451485516370992228974230002222220228890004299706032425608279530153520022839457021826406952521364157867721670023742182462365616527313584019847255552075062566164978947957995139205644705475527274734849064759553381912748539285463071320168167467003943852008320344044063107168437409913731822513743218046236511310838528469748774070067930334924032688403167359434607689396484639219847838162177757830399303111571281777402606276919240830491718703122839784701147709917451280242136705144167835639802900284692642521761766266734875453217316427940971170875044171028971220670718275720882559675390923893740696872172278618075671115733209808618092416775022334467718122911582148758276601958384135250702463324570424399175392195606434520338309336054870680210371047707893243075849242284682544896697310861877584769105362864739288774657294373327066954929299343296999115636515581640941020297825897145544622522385462228276256830101265927241636744962399802078222280681661590794403255410378828168469194785674424976517506944304196943150739206786090052661540980643122226722816974647507337207546028967034572100936439062150949764278909990622331265025597560400340626482843437105247453112174976377313245858039758718753241285344038279905654239275870868839674216195057180062183924792875907379351921400620213383896731924885008778756734207698185329432386633466891856833595232063207003980386197814229972908121942643658511360112693451745909440977288076350340824669039007708561033260555566411440915540110523345312568445495191367572646920516164531834808021081962323560745106651741592048596604203673704650867111502753964935479417625920377676154580607442156845642346509564896555721845846978573199828976083150497341702981439156662876237395438046725656884174065989112328474588165989387836347606109063398755050097588828752686259848849854633914744985141523735992844992956226612952482572448846140746174037998775180699193735958455795183027847222999574596988806023643289472713304210014911432113843755364832537263415360593807387951352895381799044059839497011442065022597633007199810100315746617642275377686110557039366398953060552492084680911131205576135440832618795002005981809788023106680166135369729642625958945724286249130222437005096544303973501995676660602696395616884561154896124902085077964868898216642572246136751522224256192312324295030537116293200546399501931949786482324732835729841253309191810653661953935146665441784318558693603182114060697998561149366174105121143070820278739089875334327954993583879334684445897708090317330947670078209761721484089511819186831280466765171906380539723537346810384691637221103035394261578740442505640694783283423223354038896931427333943133251431189072786920989646261545104127158496609057970602597217948930228813196690587168913868128919075337227237371621913588280836345299289696845536621441656884800505483166562453427765280078407032628025097118044639436899370365023929450750633068023266945534626647880868774574851813546582256355097387893580011733416110807576975927747383578864987800975256230681483480262681886519375588153835735428660776005253391127170462449340538227573613297271536099336347025329573257146802783234769095762848713740239591946760981290463129716645475413902665145751634448642695455641840074906764255149893314187059850617454916594319611294953749018724871337366782636771202689207750944261424824821224396319535256516968315985736414773431195506016372386861122337067169641114770684983008147767674515435183697998750065846603026939774104275182496459494928032223304069369200778795387820473215765193990504233889758514795125877863761746673322228984647210389060102419679903619003499382423434023162051288845329257514266680579647046615681955510594401180780348214503007274940263038190662202272158951147434329690054855166555659337369356901651409311628515474620567551119201925020764680956001322961279552411391125058754241154759485149552997139106777969169483421872361014876363686079302294953659577255241436144424366783922102854809683895986037561219594008680526542138444915374446412807953548471252602860035899619151703764282852808135406115131922014831105037162743906840240922600703926865097638977664173854215086330647338695965769956674565745591059425441656492906674052147158092631445246716603203824328672856873550863173700117285650640326209470423419753735322191207168479315395142471506444563485710428736810718661689148326525979062606862289487885899603957599571571778370516499505487620252338070210703633934133355640301890954695765537252824557507318721767568691336275735464683188056305972699646711154968883731862553206601096550728050273620779216760881897466323659924365257271648987795559356624027149357131397525672747393155829004447257961296004696137030755611593464493443137583893823989739929132686691969473390649646539960282713702518196286602389284573189220090934970073028169087972994249615742368915592397322166658891341205576214008208862161184169234853863892496085479867614762426008449658858375588192217205173820610562809445529848613612436213500934617422911844369945522824660556990500707068759776193093387466305188493074819955807021841667151157499035722534279544032235190329128533062312893063474080614977628762148746459092391119688202736382043046770144725131440859679103889422953036093314518139753189787411632460640365910983830474479996688061270031319263397763474332053814702702543663029766777879313577548363956363008767026696948550108206020943180978544733297188977891628990837602416647696579648334300435036003402250185717881471378742292659836712525602132791219085857432740083853884458991762019493953283894663549526167290898341014189074007108657364490099154180256843833074983719110038364136648436874039275539472627080224210772941866771987490371064788813094249380056152543178448031287165234246155826321768905855782119486143116878080056537252983428714045988631913473198500546571455841609016998843069596176692624191049526430248137776913186583841648657686709264008862136221093480432675272226291203822951585028572247068917989039517082033425811682406159714834528187611202542474332195346775325976419546552012060242612749579229051556810113540066379389174818872337229909417574556034792559843394359799694369273867448721101926595196754373263608460601435912483945600514013356107746132022440086074078168487677678627176575005644091131755934382192584144817961611068916925376432855564357279472121673682786503852448668840701554616588572991431805777918139305671337185965568754213031765310246815971479611563707549711915704066274906733640671735449796736782212268508001744771368248570310362011205531699120947823935696754672580300458712290760680752575221694107310008933700892767958473604959595705642358917803130328277934100118564834989157942961320927463655988262548544389749252494983502990753785882547236560664317821410953494164812796353302071944749351050792569234493123129492294747190648471084856847037276226624749695090051903610940555955798812018294963925606926255614152166890924570370423209425882227230749742774697334961168335422100637779253304185812751384018725429750617927617553684570270371881235860988111511172524999635456084636751513772261944118924201494285887912319592342164947834721772389729053876134026033550621691742068815761716250794200348326890098764433520006651433132072277179813413600825926704406373938903035290395376556982154554868973839735258075675039578281947070433860080180821492581448517679155192053634659275360922571949097234789583178901960392883906712025662844636261856604022652379614229522313555937467405187759582362854925349619311167216927059396391275148779001449535228828676337338825592757138619423866893734951112899880311063285276380460694195613145434950109645355067395842051362414541537829663629599304046333814477436184528736944751294511722144236795204797346815608526091500694381456502348913102390796521356735851142829892565157604589282852602606010247458667753485755680118781844417085178081236729004645839078080795333593750475174083125058212237244435271316906538211740563262685189327340411241980369988189789293961831396958628872743296707295920536174555950275574362591213938335216774144088789076540553602376856812384815862898371419904485570951658963251441558100466914928716555621776888458965373945320722925321565092210523733729432786467727310970628024036520587247998697515806657386117203080960164962131536536472042964300710465244462273816636767034070169412600589280058270762056805244284647697665027102451678819771195853274733319355336364468004910141720171541537405240098915437696047307075129340703240802135641688657857795195024663053706187568338490812489874653811502784149347879147291247688452065067844711223231344491735666970216111511577250945832170807775156857207039258495996966990397828614365590491463173423738259669082567427388479834821459630852928174960535324965279085659098812917092957073443014834791754586560355434155553805052744510012059125544380177419063394533511194243783093856628072401031301129280760719710088439227461117015827508312716879033375732414793588243046811213088992757226977502870694673780088169366809970369866244631509443022958620305176374059441332116510167993744071320648483695748795691892238037336858702343413791400915593552528720826303362908924460369573273752743173305175181242148039664197912177686295105656543413954296036526784901224356860509134713374601393890480399307278497056589157352845255012720859842690683760182278093127523085194798619612023486594692112657828976148493076336239849084440700569397688346737391817867292148117444773734821046108321287387374869128606587456046981944609585605831906778288907505855808978839454374137839616650428795563119927347026768510254387479851717465280354762976229491488494551334319482454941037953073170385944169462057914227117269767138822166242088234612785657860014039601673019229866951590146875653286443985050421212658506236504829972487820855048556065034967130959445488869945126512961358505106523809615493667626270100967334931546512177843715613960055522518614528039100225968402296384285271176481503674463137758855751173964515572998406249638940963669189514448931883565834705099781583457954364460836804696748778992688672956468980626832084623489313054365509017187464615772417794058247182349632421149310180591465307486221166863190697728165066061543751438040872592558583500385318721668175666685568362968790281268518110613791543680712536509643126185192178785906201334313325775137823581932125790098980904655756640284065806750670539808268540679428475323572387844162122738821352703581480015179562969214344462009109129778131131892367664818483579316295430084490665242418962356068525064783444203641879738793774223366618131004011667659351470763611127626801646554382148295803983211663194718837538012919024819022292446268645611887675734594902098822879308523896443277026227302193591186920777150122802147673410813057889533150197344876866168067291716873772505686618804582456337373197889578026065709609321857743510244985900627074123998709539919067692933289556279672148415435912607768640059235678815137291015245345359216736546925603499943351481586745930339947061619142498628071602977159584267948348195089771181334075371164939815625438534670119650556058866522332063004506071154646383223908625173992651042956764538905073272981631739950319387534294893098557623278145153965971346152588541542369130791939924850709255388551547058545512876005232905242868288839904956357870190394443981259650138787742484981913750358309724173054092801183369492201829301088492202099277299996357141135568559598963852237473514818620122205337049180208081659226410019578376641574933265991183470498588991364496572548120120635584158299702777077082643704530450962178983206627055563135457789726862366572542229155125698810239078579616711088470923361421712672260240640566872533555228092724233928846588902780797957614202291210016235451518995573225775349807489769834701546285371228763698827842898972649862489675492639459628878870920891159098932680108424799744804013602868606026351926802958153930564865486531590191568703417609308347346215203752816431248188730943598331225699336782396508394031361975823539131775834367912969043663115195042810092855555634373790155607080538484722269295858414411503379316349892410751924458877871417205356256324963593106149692262924702993612567129113767935223260961969018499508010030443545025818302401253437177525481922470248643115371306268956044493562186228643377374072396103724223764853850943481953801793744396269360654395575488564717170430418922619247010253596498567034036561572061383405342703447629780813027261178338826952733004901234887042502504887831867826072008102331678818257061224565496492289910894255412427999709893833400485892603780526434275103959244890768758099914489445834031624344153431686740605689863192076459750654544580811304583206931871917507748336193531106588917971172264002464810093129343092210765410132176180641170222492268849282353615185130915984421431818857002682062597614607399715771915677279518627436637046581199639682076440013855511522410563924324665297113956621961452852621047413707038039588941893245265123799980182840921402653875901342473548815393085279896092679520150037904088698960390591599745716315217178033728165216908619114402541554526995805839423112048228844647995480540765419644392278037506414585242482230996462256639998660388824554290359317101138914818596201133331168814108566807639370484850359624366332435813587231909966284806653994008843755570589674935170240647358101726703631863814472366382910184050003474125930642025131800557633152250510282886001466502965713086688930779330325171811147948192991638045901595573643545394489057448695488065432324182884687460689366394335906851253130597590697755291422173307310522695899293745838874657835322234596344829973690232989098045469367485080927765002901109569691223767833437571210927032775177641808479445616039400322537442802580584363657913884250912435858572825368949512170833651065337975296091648594544680894576113387883835319871036391254261019897755789330438937042534224220738262677241663947013897467990247418645119136057194053388036724865784715223622651747732922967421664784156663611733372118088880982738238097092453250714411668236589024355627928270537031244650182981856275244842486225205266464455185111449437916081239980830068695916034779238201547298848781990123405944481833189219291282431489583292739296543431887965547540030044796602547974496242111388985332650030664349159931117204592877513424089540940203781464189353440640371935290858321413269562722001866704914379425004204634162328328019891449336393078665059656308992219728830300118271008925082592796337158053259107688757470926618978257450712625366882794697813946215346436018176751801448934018631709466368349560063752519628748404280640112736648417647027033712826278816069862118863359069705843653901346685746938181278276763125089227583260385127442943680013005649279757333548019614655443185138711256435471505139560667886372016058276665008805487983883738728351671731004219264931153267310253711514314508864658289840500625057857136694228309065375228120540729901748374225993223244026084040888879454865139895610423185809121926373414535825400919716312691410181754755889653017348640143262716645024549460706978594252761298713270795435983034766838849625385303378620669262537475252980098958147538199740196827148586580867317532404818753535867998929258364329353258019191660979287892323439513632230294178179335820335384169286803381321461662128736970068997526869014443146594933228101313059602077474161788588662643985655968521734455170895816920711232660892473364049875440827324702249544799024927208768058996207822378412640547602170260342167663585899381990814084579033631632574339280211692196378242036949976357136239073637652955202951770058354314098164480165756926182219909160095381891933827379601851214470025637023696781195735997567443108464322144769383162870884154156728370573661274109955312048540797429434482064546087263710435123913882396774057002982509282894875526129717963205493475137045334305971433603051549168608748713116991265404710472190615832976123161386781941235422022518469886098635478446225697756188666002400859789381285697742130673843701859305112540410791177767955548577389194809478626998332838179759462800841905013923524239287537114351941636832121040139654976371458409777857598911818519440030579760343640661713084110145068246496370523794772469837774912183915923972994396170034758110747121711000496651074128328900895241765765195759325867101026366615123720848493587720270815623655523983906519809961137836949280628004043880947131885319976917788104090638029322985032174764971542309287965192348306138458118459758035587287282087413407703778957180874633081359130701375068263523613378143380309875811879500733911318678525993238719284645708143783112069885812624024161868972896575827940144215464377082696326365619680352140647949562668258869193053505250388029753192572107386633630039593882781458028337313425217190406307670127350571893804000080096345162739847300457390734589889514981478702328757000778800427895026769558237669030331034716925832386617693690006832444201620292831683607440127877821092110363271481616327745965791537300638769712629323085175047726228902295034005353502123285406551264140459109867776984825383907635185692036822906356916621398295261704025798354322976123199500644325712728683214072975323135565190926022323318408099228135778769743936927206173293447595726294890490109900682152926195530725772491738245001320756612233762539415010574747920399614313647418072135467708503528995077032819373497273018597217724279519327536964182437664658026316902379120467942638770462892447302855896623704583593109928191445799758050621540506897647135738089015865608235857539510476532060799625186724502548736250704612666328241409010427272309385351557024203320128858384335614488188302921633886886129209211754008286119914807593949009113718696203764029379035650313288652208648480149241190135325422970532651484027455665666408644253261636047243236047225087056284058206483086168511999299565883422118293790331259184904903152270260583396607780967897138941606790391519687765002619916042501173428957631842876088415430198228115223414806069057234991385265352676854759602988210843582272668803137115937329346991516814473020722533111028758416343128479066602565914064598908138522618356684063113283765456336038079455595669507517326789071473870482251360923903144233456197948830110492408157500443714192322203305277337603982974176313615754432066221318530607432216505194964434846082252190059612821658155652674617455431993090356112712740412767498518501550383224768144044203622703521461507003765114601579645870169419180954857882173235703244964363429688412904911480325137071488417173713947484146981322708484416153609840593159924241165696427909577155857611099471701065053273263060212513011499182583770958600621531572321199435658423090895116223775228928164273526113482043623441444776020275690238082233032077004477344520272159247852365922234082383579957509974245373139379654968564868258034621869598585327734338286832035001888266225048137376510222154046936521497886852360006897113892788436607040079632894255248521773974401323838221883509808266507079960185216242049933782007145184498411554243059525436213632246890030181804265903244018133491850242139329463534543310550224813284744640111120483611377633481786050198757625872033947358505171201428021417064581307474168521430128733071126347910758318560368450607992543893233920510680716012209378607138448425107051441185596922178203751959983099247807169537853851747247526985904677015082035659419208435208719718095320906680745168969276346210472925233196627783966859778443503774950104350398876811538627545078830853918596083340450012862553353243226228507132167413614927733492682929410337126887181923781911092041268357886686222055590486671294988174152674257818839425298664615074389531185036215671357264598227110259814508397569245986757091084188471407663225844525424891767114913292449714754393734955430524791828716296014685350658404079544372254889003318972985418877846410716331086192556040143859874375183128604897569385414308730790129775373227089842133007408767553685498614223696133059722169634406109342986320086546512174740557805316769477197618552558125652575790624352849648863289169078706643828475697970885365157080179523563419052691418215813887428765342921034922796539065765767023960532828356714652470833352843436879755022780163471087418217955777796357854090060968524275633474460641213271492192803397519925903746436046634814827244843634850411998628817418191524619903322546447946089834414835355024559902396919660594112477116923005687576845691815933739583039429519153532911770571214099385917448085994417311509876875144765303537934709539545078666096300157964120630893609335593569889199106791991431381110466701705519657692664596652746442021208393370465068952985944269798024496590392818068071790555877959242927641132260394535225029225896099189974884805310759687993845991403138513957501424970054377908579968414664311080279972078118699137544230699279071001603792127963098665508358352858805704466417054189202272238852465016014695491415396344157224016637774595019160260219001043115863183359948635576679427404540615100505590245810183887079593542477539674489918465046684893734349079943422325141284159269113978452837537233782254425802806869029654268002678632038701985561555115429070671065966057368785552452971837159561862313825431080083159457428189036796144677239641481144280568593584946808065305554199622038069366812989061027144799875327932387939748332274306102313327463415754269765721969171507619711847117865912353774488745776821248175509999318920072449463274437795865062862525678910988746492985092704631142919647894959029765417553642278273329886119318913959599521078179638511342871700978973775439514417415433816958708110409646465880975758426883441883464317425239750956950890127128078967712384522871440866659767865596261509007311584692358398331021966581970311008477375489155201330295384897749598714534544205850285941409431980498085777481342791922741065627125452925439935299362688760342366123752920887069754293240312146129380584409757500263557305627053445964946129739480429190740745876593903505840728816103306421339440332417231626254813821336836622805559092510849940057680915064977738522626016110696091077198635520380604155089855654040847622531271896109913050287597496858515541806689023512233345507323552476092825302035077675039688973612641188298912375788192718296299215550161158862066581415907335185627201380795732737829092634431122782410734595476939438113102203872042902180306368049354124635976112095000488432578722139024990422055582650209233646383133337029137732603549911054434843049651554571770763690717680567497682456145079829032957486310408809701969316207832982493719273611109958904331083083583269857344572379498739155211375089788570517200568960136105012035636873496821803676803514791240959209701635971113968787515019714866470962193397038021590134168877382822588766738433216143399608378015975949854954995795672297187163564780070717206901837335703779529926206867711752344754955569850124649412132858990208229857733123548590101294146963482704751205952637551355191838589081375833400881482638907563119721134257647939565047198566498078688265111067774888346924514281313353699802522326832401028517197860537301747200479972838589456842101924611163428330653198107392214857717088407312794965266247615089436975121272466630434854301437148418328315470144372516843758137730526811869707203936091587869891645618018245647515157890509728838848285982266722667801538008933247780251230982199017194812796806841254277432254113079920864600342315761356148385329681081851316487974132507150523446391246907275937783815090727489704213867170206504339277545761628547620930725836794957461758096967529245594669881573017692819115036394195935856421234948693111575080551091596091167604599655420733637886268580382366835592185266099162679150666056281115777037616737343903255035820615487370343869815270621141362299945228843689609993383580588690468106315564188131817210229032687408690606301157324500117497992485786547762245205624259815714344262625242502748686370161675925045849724721678181001156565537379020557995859126659026706540985280059027934364674676080331946710686803512916254385857485020675587509897538838440563234897699590556895130820596692229191519591968391228279367297935980793657052214699398274303517738864450787195900630098983941495409544170649361935689983231835738655279449088450171236398634618964152925683525297749463484981542885364207172904904076217176087249773827438469805678834687232009275548099891475905503280454204202282031127382875914108324855308031749804923534320774280459944363207295557850643736459378140102556558311068317271655967753119779831795321539476465443071865506539294650245124863603371319168599859622687769015906687578206609728818088645155865035264400318107107175379628668324587049234703183173262672133944869980587540634115798483336601703282022231810498899341154133458253820868853078613400532681226166985637577034500191134760758838232646340868262342328294048081059130063579518895795668138748860292270459889716582734852742805966426230551254727589583241764817785965281415536745676369332537421632907720366884166944130153801238089987350942425991226533922524594840548333106001578469261939327567490211548982911325619894020483565028394398633013396959048647514694026573799650104625120072122267067377219915525780413588139649947209660365168944620544379035213724681507578512712809919896390017779013373937580820410058948824453911745608949293410122854705821288822685601415430325146685251983128265299502062480593831654099622953981671285475922368142895552125706350619530221234132557094880941161125148611891431261359978010037020077106514813581430870279392920536716818791493784212693645213408834157040011555400014064017691967557942406003318042414093236101267280350515418464451041366668149581826736654166600952129309483543944892412404577773507335010145195279424782057897400985854320898829942764398065471277147662561720687136557058372084881720972125476653237571864173448946659990007851924196622124784315138547533808101990912242893487966426634355485020415982097628404262895721066980511617854209767343121616052367215464177014588044322186052387565241193290645058815653437663738429419151361596080675620063202269860385568084813079756936002206263614621453070873597734403408025345377183513928621030558451907538282313925647206554964894700159731286536077248040230546473333948000727076356819699694795336639955576063387306057249869751148059999973863336930813268700791111856914475148478870286679003261485961182941090967903343204580108172641539336894898115963073850924496567308365151232122443017468478423444606504835752029098242224151536635027721600050965851732893445640010326658904216223897533702022743554155846546436705668056624620723741965545651225605313111182326072362886644246778650388131254509732358038893194823863748062594857852453180757312868956624271662364727389393853400310449015897760454367663623285345116330690195180544370464291094834149958449087500701530606239026315557903098168527327374513283847658763568501090417676782257216389202183890204614022287607460830759876969743201266055584129352654664213708178236330782721285271052959924488567708346776535582282130212950506892708424434196427765687763975233377091429840022326735305636439871901869361778509502702741165061283600758292833405801111873394201404534246487910866793745804265006560539180055343171370719772153131635105304749721708923766839127472155259938004629909690523207632283907879147490869974772127523095225590630493028857097627528970156619163639230785982055502554717327952640038391687173472638230505769328834189663598862113493784723080549301457473743155518568263743747756981103809264932837721714900121726135278506202863545304842536456461936138990289689803135304781416188155039727739409936310263781326701934173577254346764884757946999020843718641713744789450470019774881459017391266603669863583279777751386535946808331610212263179974216827984348618774407549556860105699620258387755227668325459981975157908861872681225436504728363767787423228553325212024612318816950125595579281307585274092741682882612941217441382403232006339262567475820083360856314833560577016928436741489106138285492698304170760925268700317002581904298401169632750559175122459725229407499756526689189105278551468543971365803930785329285443156131878704191030624741228182344136431851440858277035760285477159247095014024478724808131199908487463105390686100961611788804807128629033924990059278184159859729446551679493117603212703676461416369060325769105012544378309806369114609740544440744366107015193843457940358408462841425972092899712290196439798049402084683744707322153623747009175119324070061085147541026594658886350426428923595625956692034766473973488491151088524800821711749509641323089799349557654979108508969724088406478558612982324344395712525448031927006023155466267019743229505474657253759784183666712346923205634697734222215012222246846171271165401378715654544001677127313371983534424232232594215289870518899999078470308278314170929307532884321032858982406955732774408342346374784251371925964956472563738130295876034033316267974491282057648659855305741130503124770725730336677924931276948471918259672590411315843162217878394462021790144029509284934678373815638036744883736252185726643483739949370138501962912055689131370519533485642142194759848561362533381197296117295767700005984890220453651174582706471680426677114644880418868450153361072557560632879003828012318866721988068937128912912336264317336811216753349516875061019467796555012173752217140080968357551791182960227595596205073505160430284231257479529009560233281310613951154783199606685751481648715626736514363702441463336889040694984671641686783709492860783938210805024214607393820469366654125722837184241878654073625627041312524912034443052792906515630916410432390886062300349500033075758889886932586234321764994597247803563574425220198582590501071087447915878487905189537206279210485909384304298185285572553126055584207235004982365562649834728485045811259158614878244033644723641271861496458656447847796558386449359323810080394909347491068977723753374692169135471553492629018857664377936915492871719426358749147582684954745185256197314822809846969761731269771410906873303430692225171470392161160992336123508112869244031277628559781444903363342190778870103786663335867954346126501378737031589119936589335985935817787474065175913009929262069644312070646586551339220993541664642865937620689435052871277917671734469190663854765495083314252399399346316652010605607123294398209581151398648273446315212429089311335109230456345156829559340311116162294283382373833472442041298146698344626877417969642701005695117098281360731060705435872416862181806914348384296234844440645087114274741509223863985853552347082292331195019494411205026580538772153042188135544152596895524731114714809606015977997139039162352670015022531263121069397883509465468612514989277171892573771046430582892316581382380980880534332521141854727511704906205125149585279207083561555452420959239246061835113076158796355594748879437445664634222364287572165357127788153951867207992212874882044306257491487032644451798479288147269872512623098606661104892061590070973854263819998517969319270389763716849559820556938953229478191270305090088637973769768427320124772267763752425352312302226506977847571304651906857254940047486411460577110562551221707541571208503161617844205567514980702378064224808867744761565989956503059046409779059707244250158862145072910709463752819792632501934036939101872895795428487201601005872403330162896642572006269744272221629602828239141720910102547858210657792397526886359747725578198565543853426019542729704391612177372938031476594807206809898654140724158478901920215642638563270131542073271701503966032397176395152131931441857375364706483156240096047061194724873978001342944046686465986618673412005836685443074503604598552621736053578825061912440934893142861558788754961084075980504351997158186753785061991210216730404889370655815737271190453338080931888107976768062701536648621005851548909308524642363822212729903482220807721887293343060226266266495971507869928074129675481390999799669475772541082659685007037703774086342376419457124150474399802603175234212223441348858083180074338411685452682657995383012616947990972144387383469305365091616464253371813859651819916989120903962146493218434668907999184302047715145545123062587721297624756072690647342490402951562406063761260549824266658637776241707870504472775679364563618652160631405092110105640702402217752086436769740136203638937591259833459785848009808814504621442984900880520125605205072569194504040684807719147777202872611295945771375824494692279783599098294101492069556660047813630502989360478336156207836845399395789188774873347987723912630141766063048377069061856619195810026935749784707034678532832206169654637994633048997011787312721376017396067664268470911771148472488489386193651615654999302820558676673179158540269662642737025689935303087449959136817548465962430297016464302326579259629892431116971088090722019050113871737652571397529581840431620190842903227584716623778654605152777940511219874053038630336662455507215214815967788063307243597538567473015715201522042417457632443990197174720104606947085976984451687652142118238765762035775732134337053551069601161640061481132377135443909447177621618642176852776475730136365271891829695547315023340775496921376860211510949596448133617600133196129177249222539054237110638750040402046128775369395040299161304248068334180281635242052493810656812812900443765912508089694152048156246654685572819065200547516817746160191520402415686223031377169928506499052741026370036746549789445035924068548042754570177461695922317300340261679466235393028991050697555251900067505181096099710912800668958200121364368078403093655111427465042679259782136545966097348874509803661521397477761305059050228390611661913653208004383429666718765283598947503023017147639200299874583795250554732005876332342911093928044529813875067255238633599372961967746848407168767117681150444565170217045440920036758003864910660411642308557058108937702349617428179322026764478292410328074326252626867240791450830893899320557863477940278651147096852963666419231416126370091109611331833784833408294214603887298108959567000410695130304712460266188482807634894548042589079724709227879633664010286818087043699366090966501011066751281945529155523716560282981649176267820297625389733831574003178756010488939034247459962622209962459392868959617661427680947552293506155490196636422184846186506187989058683599363082316046499737084200424999390268398138041161233206841387841656213851410017569154537083591625510127667183380076118153356145932508667768252319116899311293734224715525479457204074494130284458722322439464765963473505355402912550281989978252092355183440091983247507831570640721397071577958082616209474286355790610828198781538237660452926941847500118252856174706729279885526433360933773920421379741332829478671505550499769238410309858308073531542022451431891248271953558839059069379553370038798620274447257089600056392263777292628336413066056264976747564721580054998766350522195645142820586971006000580718359438855586843604079525835100427940455733727904157839908874995097222509360422345402017208044914836845725918711278795224091882549213557598820119892356395033276153344684790262369643098119943757042618305378235133249530027510464051099053483321085669906831108790123538812842310069082125932475025117691585169065100381780301310304218425879955548631972458947690883967684589845391105743159507670382339561955572643119597299408205019673138298085078268318923613081092492633553006597642892498382350588021552738231561916363918134701377056563858404102008780932649085692145878271346222092314080626915889435276909987710049955634983276155918853184807417199972021697356539082664767876823733233470877490989020702044830815888243184237001717755252447868839008835476852696979762699527639953919857466481221161706048016835242373867845224518557672874403438179516311309178578787255013690648316253059608294545632764456405250998073682281160963889835176798430144017777735578825033846085532082635917425197888152098614654419026990791193530477727519240871973202674507910913947033320942444539090445892467063063504872504434097536059060481847832343137097845842126769853724496417441124947927773336997418754232970637834946251091257879687391490767206363334794946078282850163618086375143007544462771782127203909905134557000207630761501034981678249598980297191819065956385406716974900048320470009291684051424316287764233275061347573806825182706223607012556400978723569203456995608890568714908651246103522619329906201581627145612845893558058500001943822988908022408363397947893771997716450046919978972813867018913503689599845016341214720776092709988419946643767200684655904113228751422880583848363193979045043074654487276955810780269824289543583447229632672145628467048046418953060054235996667800517000371844323478003045953806641594331544531049948876921428923695766894405021778249231044038203717077083925887376137614447524126431905591409209129557925070438560889492806997697204280508277784738231771951126725795893789431673722585678721281028216138237006763732221429726187960941988117807137508069209544535153154235137549655245675027879357558129510132191686429562689720153765744386043647166486437645349402271688350414205530512725587341526877093634050618648265184056480480596390216370576325324816780548116556950981490899574864522437585947176063236653200815275748219050071451626445185652886742353689421783242896079204590406529196805428991600768677550939911635391040539239403574891630220950672882906002968388058735918397046229647254481962173420366720497883611069350804662492103122446418740994584344033507017901092176445492306354471336422386118320891773620983823956661193439144961268565601224927157737202244001937943835825560771163085450720382603214423530179029480205586106072235874455911163176646959860341905823791154468717048809269106247914597025440741748207441957249979440531951855307702834084373203904429513802421962458599059029145386836355585442236706880518323221103082805767438264266314037827408552786356927945482917770371859753635271346842917872619791381376485025066239400576169792426772451983960230415449135625313324824954941387896166831933050161729357211761766931347410564098170058958459730795498679632543161484443554163477667467945785410320700918917613298128239695869909261739984558254945551413816362084027155833286484020354007027599715227935679711373247016478759437836246973703010147173155086457764118477587650071594030997411003310019897432802144748664425637517793721300293930540639592146750241103637511887759475918230502666780946183096695062073538134169863284297872853025043088818741556876720789125724818147919217048936498341887632780082580479915428361599600059575765324231711001544604529810485220765871837450432935821649747927487819794904550164308020703663894424936364197955145041453337726150811575847653845768616679724946144016989895902235736832536122949303956076298176912956832576350595648435348956617519276841511004618320444274648866052769517018688217222639804130490054490180510435051683108531130967078970148082610500067316033623777770931676623162194932872023786531054387753491449372218569161310363327428915005652886844276171497897335355610071773375094441084843953428019209352103207134248515000082080783464463449925702167551035245516062690906810639883365702742644363477821358820106476506704495795473040424328887281455289202409715203911604103199990164153568875289203774007206497136710106963118155201023610189329269469848294754336183362090909131289861033218979885463712928765554455183780597369499690325446644660578330621974266936327651107405421236898657562567386693191288973492717073492491897623719687029609201614749894713112410316589594758684059523472543002339876535554870848468635391314013318364398586425039543290695969088938774128006740280735658086767816558270750671943583375128961936777417846667994118177044202191679415271418124269170049937398123153579791137272141265889390304787662603602038043372335292730419050267584179929180229367885794414398668600074644555304308209537333224442694637311930240996155714315206173420178054411858558028724098925504307801362837436263937148256930487577610540187171484572790083797478970734718742766061497775864729514661645148164753516151914696993160564937737713743211067067421504085140357801216564478673035475183229014438110846640617363966718580749822429641752809588434338533289052983690980000296561829242129761861741968061730295723510072873573904770166530506930532365874989640395236339125988201757455249312919766062245721053915558097638295633418650845543285648204648712067270813668943904839156471843704591317315485005924238508928828747867893583788255748130202558431958352196577768286651475452175238201946658946382451287173097954829231384309345651361045462216653827100536869297401264406421351230423675920666904541827498244145165832742740571086822865143914377999337588994021962122372775736056477786388848281004931455067657266443769958172423364547693832067084787630626427553713629964397941001310572957170997096938360201031617487761430672570674196206462067584523755616132354678903859570692312965308407996606695748386297339435875219737527282046198508755220128542235720910820602804918699330644553826088771058957503315694121434006952019017509462516562099290829277110704578959909928007501049671554160078562067921016837019809167200443660090776911659344685952044828956827159555340925351278214820081704553844160370334951288662418292346745004908123989899863937506798887783646498634920552587423695077839864182596873168011423666789072637572859082621858109120706677047517065998541221784094672128160569034918433399474881739493206055261949743713931008446822362980901684382103732287057227494759491684601441672779385845892222071175825316918079768757168359743086437955579317840458958586021473051470738566286422618415516802790617585278381780066187942410455887881926617343640883961721715161097256984970910461478977793078271698035722011975419434809389636351687412756973910997956924742142283141373799425272709731383233839237691103037658662987994665236726380450666292579323779101372240131845183106494659496754381513677930157029701578372779773985328533117880704162177091496853994248365948691460678466794159119515327681084423883024177460801301015137775498628917931035526293748258750783485814017421313578099160318875931418466697732501949875588989233102491216960961555659914245857558230233749971907936671493697733564453363730943695760667076737095864563057343698913599799209054278850274115098209941534626790032266503585323903008405309400057414598976081065162373453362423345127968606796738795961474527697668137239731696564549299440905558905015388728751539588905739938923580052037110346055506252343759898451619340312083630334084281259282178450169988242476600857784326804185437001415731182649595927578802056422186392395289069352564050842681619740639082370039143941202216011324285375198709507241066009083634010613719888067008744287431661077909296365037942670795127956234728150435041565823282116569724107114952422896990922798518470162215078305954672305119305987652683917036738357747129992921436064632429780268306393035498435272602034691693639374257176148914977912738311904555363427521101325167159300779281161442321033809738185620036730890895419590556534623573776911799643975313894675008313223474430280842088118141168169068529938917794135414851263916637970178753127539176805369701514053492013487475193576928847062006522936764169991060384321815660547144024955038500585663050858851416049504522583699300109038822728117092962627561196294370930490887628437393672551217687227485366909707042119747212198645112109014715277169957038503134382856560824450331045232580896797577259266225359729038765275960493167569858237817035926416543543278179824215951673054811138069434249369484392832257379343897952764775354960629181188691106117670285543117550558721243282934149968502685742615526396468982599971191926460047430871390936639569647018698805533081078059619511406560306890202007896084667042817412811735710404795755338712317385583670799934281355919281198641435098083065481136091464600682723283903246040234676235269137715404884322234093399366874495981505733504976331881741301640572928367180565037991366613402487546015945519641206249541090641707399871921473840044111319821771419954000467486618491066045777754058491572671679126426156574529165543955565424780005508989555235891961589882529246464081288148404923161032394981976121726946883438299381140216283356171295127454760005490293979936126242422144550284489601436518633092452025810014193321243250490763949850954194904619502502860462880685786711399644761123494919576727586109569515003619311675155203587331189215061726120021393739314627974811166349427321731859254025080033917768226611558217016756402464844277208807464250672608564785329696319164043698065519552235834872850861640905491052095551466110090671423530439729060981983263931558843635922002745433139407596844498819851260739436892824637650279081190941351407110642988613152287319999689203858537774430880090511613635646903338423988697664573538004021311381394035816265602456000232856941449552391919750719542472522123505864958971198064895219482237312385911194074371073600836951151844466372769995745150696443117824034651697744801567510795416910652529249067028253813779420618365417430961762732110384152958511883871243561066366871333988649269204262288709968197640204282326358042797128539196997521264250135200734334201989767750942062291516088421612618086463345336916649310263145011166268617944683056312551808021304305249906226343857617368795775393224011739614868405475921495133152670698443830045639691139590703820343271172042984611740456760506554013250561969551933780577213167474514840124021852244899687364846712431203607757210639311776389126975495978629166494950706582989020082343960277031851754689851209724289567067417956383147334345333699750595839318393271547055037663981103564461019404528605688986158973767804036066073969290542464132142097204150533891951622259285113404705551964543371009481886912854257659929419577445012140728048073043017767389936463079378134360391247205305786363360266552195135357618959658712065054008784243428052319074213975006005039519251340735645582093568086633334516736073422744978533665580561204346302505606994634351688893855656391152425454853568016066987148067622971816615942996216739012560335638755148262121124524822499858783101706718156894463993689034342760302817056006304971781773665551935825364747964818258436361495990474882312580328676089564254395257431610720278144567244309813910756242584432233825237793355191111378657372723638634509906713425848900308873188718232172495603741223268258108231949351059098441404257180199419132329908332097078649042074458573592324539977620007353904004578319177160501424708692990507310044143667347714781424584671323715897700076635380236354522601483545259267883814790430454577985261320890136540600110913403565616437526815330277331455081227703518838958367757627005323994668149112860594291849910568771302103192377560968038283513765720544327134879008424014725072274520196672507612678965869405915327760840906348049112407851892288573326419434064164171494147335844309577014421029834020677519510196908079682510860256520920466601433540506004138950322924549926838507405354126913071515365268745560860492426190071204511939000608279728454207917254792967931072444427796173716444461994265686805782367928093288304045541497175472866529822573550400166148959345720619150419656358104679935604175877775672023563458954499907877652091599884758248982869881335075441514938575972734125467266322458289363504707525098442542616373980853054346209566963220486050998564142517678703139195691851226949621677799423295326284774876656605629223419520961847586392495474833514443534215838738514146724181577224396578634882053914085157487333348497254542431826596251912521772450969212327677004123639466289465227942597428311555891471427030740965639976511398998489205108367365798048579107552320277165897449781339178756196361909439967293075789873096117122713982727053954591977720974046597051340853901039778162777309946781375385052911159334891964555694344190125612934437751044856873392657010820813890293700506041938285813049263240523441337997914078269286949097279777271327057140949305076527626906915031116896562029142969813815205723951026433081507132691288907744773844490256713193667293736703278230880200465608804353845383725576722526188141352141919505528552305931399725691290526942997519913473481957158498989853041570280485301876551518840299229217241652964480246735695661810390113525960748258616585462159882692305575905378344629165052752848087768536493620646673751749430056675784846892189494773621693526889594872823281981685975228016673552915977322848495613033813774215222097378200745630839559198822870790552412238054685084127809076767283588633118864118009872173792089407962934358073705299860803158400092350443297783057030113873304093300211600276442485778506947727271808764701295253934333844048453722516862418871471278443064987807041739389694207661961073283448894659329598413570800193636809423385342684410782300729058633600116863254457927032613082014360848917376250897363975464611935949367583183757716518805364242685243136664744187537631120581369495441398211216760998229597985215215712194992253813095302854660182284152849493331443456119558392360508652947473039304342879792715834580597028927910453520276010762412555739426224907783347662320457859912882220772019979243089030381852616520638187066971465613580660693898050502755509612350103550362174109883988198369301485781289083227728232201689305798707094623304231345826424690175197370726175769843294358588560207158911582565599174118139245203071327673167802082803739860447308491512738358703716811810168152630262712788394122373557728481727521248379099489373377999938851389374824633272592999335501546792067269708838688373594495111191548683683036177277870041538245584308645014294099287872073241861432758919262525145141880286536046555141661707770650253197430608071299478484751190716877236112842684440995463069255588444022384812270785506249470551353023072424270072572783001314833803459914992383611428169909736089064267322141398293078453436623524182978250603345264096231320936310589174065774320268620157374963949564105773288171468171988396306314145418713306070040491891673824244913014861192719588737281930508858717833581325086007569151500716358977281031146076679570947256720776809597102119740987248214991650176263254827641941487833902846116642649934984243451959112379927749569053203785496415820820711875462854241830552004830443799124089435168239736883930327149049543226284594351738191203937094714283953004086879607646704183089156559603093903564456804335485959705123540281335525899832410996240964413077506637511137344179951457971753589166971157187063904443823714338460702931266305230063469435685900472475817819301605911229885965088424219302315889458050882812840381010423638374996154888232249527110106887818071431528335200700849765544161913614717774831542074567170672007036440883277570368039815803531902908243654732294229584018966592076923902066343405987420197596685676669861416969746222999369777533851179546013036123671979598305834544956678158127331370638342359184559296168932892224538979029055418257651674130412310183448757634728005595815448096566902152585755520762633644047430736168372226421004901519883334159507954114515797249029030313118377163011452460326366051749843056070998639198782723541031436002428118888135488817566420337699829772335116924937112096804583614608383667254386149050505700804439910045251619207152283176337128204042052921189860977041646126007791473282930098160704961516288378571812652511237610364042878729023581922514957095740818061404344818313531589581304047942312482459011901959335648819466764300106558819853940888663112538371856441795230474409127855512517910696002039572756562099399254361469515685232226081809710079045425884209506326081011192956879243800009662474817634738004145028778402865226785707592970021895919879161275346987680424496386035289315318571934083226154283434126654611830938851927100733362407932011723111266333773168270878987856950091374397101164627530429302067697514844120373758902747801553706405413401736857493522078276129499504736920663101890363727424942167596700210474318267703501309257930649860120061526839170021319778731067719104427322276877775707893456508231181187844777819229156529218643101596596125688003456608155738111505062755462928701470785094985662289114227617305694270407566678494834004609647818833562827229542982504221045162077910469029234940643403227844870951824541705474649374067646997215762401073059552886472212102194224095015985150790256100193781010336826055486077522572054891527166267211295240922230953781482349152588132309239999554696666362854058374114369625742745692531443547181568039849122234572947800671551250660084479942585176900317795133300051285379740870158819706504007355946399112310122195265714753285842820760796521351319980245942727512058104316380491073347935604947123033221676353034037669294442198069741807142761689763275104746928227566905886943568726106202145422087689600121176189948281307802523521556821654873893083666775848567563236205691740196066632260255065188610140270652317961128905914667798418907745647138940400940506191898649846017705484991077666454862871720201649467189696793527037654115858818977484355313450810416970531787522251796311212180698669488833965367500267265883118003959513519909772072749872396252499682867982444243273825592243277768292253247241384282570772289243808290780608378655124947684874790192375984730313890454477749856067375272369059758342230403493048551383983191375994280158516670631134277887711281972660930421826760346991084763600699302110377523686401756602800779154090743617212648669016712780628122180126823160512013082469471496252538229142284976304041976042017814664100663350045810025474392936846186598998718187672139602619485663408009787249049629385780806708081422208168609618279929014626887127617333854394597705434171664093592996652963777000755297908034515011860444441010682133323224746596848255736760441285270956397995352190439289054163062007972910701186121204338241194916239499782611009052825956951821899570694397405001011247514363400273614888198588701929816959718606727954792509080116577023669380709661331450105943929730861141256370915369261967003037257055251664761615673591393140214907224609273291827682643430664037812662635871652206436986311429310921214378652845308533403904435216926430106175189595533740167343743878796931563654605620094631370773271049469204029051509152438158487029150584692791027943773050388277309295438674431410591439427844503305730693983418759348648397138121004852596577815801785447971087856628081521501029508730115188560792960342835461405933489777079161036361422088815067423325864405728659843762378366376388883928530804658576846812635604959935746473422482032710365710120775710540720548484952290706643494196090538198094412421939349046677171382972441240669226498887912660963041978920852992666463032124190478605901582506136907691200451161004241207593280719420184477896771048735028568013780236901964452620786558035925047733080958046176117693992424783505517606055117858556381624178440257213000657380621667340219132398631327650652480133094930967378798267213964596092220337770624386851799546402524984014059979754587704054397122237231877318917496795756147690413287115989288608702629458640731827220789083256350880454062530850149969787666284273147631904657875871813722687845539485504393847032482227255855395331630885491721894860343350958840466786377163481692268987610478063910487787035747428429030345577126630493169579596250616071792821286378075907065062528367758616990378516018668191051253324689021412224424903450163894052113826382711565941805360461353309185243520933610181637831238918564745796539732768973812287966908482249612768382922307395566920294228476207792288532115771557884240802239189749011845956900867113769983145226962507982418304757338927424158457949515140014285997916407248416711880472148420141030607220062982749632541804675215596893062916961270869212686075255270660900123218748414665341673256525321845074121310074967798370401947491934087360632016669274143420949821006685342714793489815650154433526096756578383911103928862476649590535994323506900237145570510511989279399463392332435094165975960656087842251605089553166779971992873083141911045274485213543716203877861400197772809865745689145973622640075938741173273757926394073026185855814920139077659033288603509652187680426293756251951844039899980509650954588789357864902343534373769383085177301722750343461332185837189371318257057115424845402674186943702457690061097300740530154409590797558571851713060087709338430243515494910489248866113586190441800493494469156851906959825327562942755258577914445149402655153311449005422655631582214789183758841505616889662559007496026947473220966643114411680765085047996925035238483043903634185347631973499782726325706695876044757981365106238036472184713534568890130311712157316374122117153351985883800794383911045357998022920944246148568157245682315166781412640289696637108032380831916574465534041795070797766463419802143117310593040831888709382064217500087963797635953726965765599926320823499078928921284278902290028061977757587712302382144693524780901710147895590379660382078253082020298331994079511137265722241750043837546095777434144843580546647528978360160790849357902477079489558410081169922747659635515974831795710283896082609246727657136024686645921206511450476628302642032763938122372574446624465045823208686889723691233202413965144173602713097255663972998804313816030954796285164247214966567485372948809457539203145909216341666429696547992399035528561886363306931842843002186658418058116042464474337443581847202175271375741707398128743337260541396842208984838153810034674929074907563471878849203443631021769284082114900467599602736500193965451174445065426209847415250021922697890410606113439057995818492319806908175571844446392803923440623335154677696513466504351405101384949056714642938938716091889657427976451863592494484031242008857877431997156736392858283301951416748717148174533730012064794567669471916429267705311356409875934791323971209433056911899901989917101168031181028916587811464304764146289267683591524895016067795246776562364589718612923074930292698807832169564947259607834430152508582284914196304239851625169915556287566060780228802049221973892026472490112753735285211902001010186360654381449930736817387641857964771569455418312190465418871884535549925738829732226399640517083455198859904600928212321256686775458115754413507700228446748786369997060068900553957799181369997632869075330913431862800736494951423464981988723099602063265551330874684783406265089734179630989371664137457360557732330516620521922192282535941967975592608715037848446928741051220735788522937088517275584163791926114786264997351953809953692175939415501656109641538353008424903018150886709561648266403114186196384902779742970638274600727574998793243041734295287363149690642405431030816491411509650458586932329383671882054015544479280048868996390510500137359552780107333271135434745205167012022635045691896395951385386086996888982110794259828155208662316295767251608143414551897463636618157817275450678283097522080118408051967832181105775039859533129638287893568382273886920591094954513559297437401639291087638123332190774580703499416770935600539247828431255737015223088528632606756697317347619259060358526798454379688191102142266527340605596359199138459550641421434635365596175764443795799267600298937651600605186889607936337858658294964014356276358853880147245781520118501530517739707323264534113120540333625025095814249913960950608771728782247813820247143265259337114475326984558944391594462350075017748418056621359108892473774024563770153907146820158003679880771058102863464261340472715293416310941069901484781205632986980645503301915001610729908346087949786748213074527517869027530613673317816484696919581155131363136679927026560346427031667571813592542820644344407525918459046394020301696209716291582789673099064361903878766956652491166755930096368599821841192955027375878805386684736238373564680159255808979547573955945107710416108271084920800326694749522594828858090887767658653173613625665456817792814387265610156704547931908240425274142863916763667425573400284340764439263503151078273516170950616777258750077698319727357144615321737061237473193295093320190592359209709598618788256608435460818491137821550770768602832149200770379275257575806680392385566743967804401878284821235359119555642437290863049119832702338920097998369126187309584391691833409064657931630354607405183714436684991965290577663892713673671002739551283037969442027720770548318676181789480895137312224243241151436770091146861484583295932710165234942314146905925167647929386992680690711848357847409615094653323143832864888624219281871598801347753196783684708125128827272210269384139422974730678818059044037364192572874345770191597737607132713448443669077772682608080137541604542529836244691523876026950712027591587251918964712757638120107197292445570354621198357654273420559421749859860650078150522828593485487096031242760863591180024463590089073511577047351074812263859824002352272574568583549970542985433106643710505148004195427596038596477316880122090602039878642206923935448725649485198074505951124921027613057656859519200801481101585138836642409750672066897096904522174185076294671544062992756344117902238351138696895588846113989227766354405424652507513184428963600529197078203552546285448855607450577347610123290506660654719863717110145037638335102985385961925666807573862737332242070157760789194482166621843722890542676183224613571454845856869581312489157721513021415206762395592390951197088597965988302576314414155764001642661386345168745884016569717159069756550836502033108716496635018299404861734665451015703136393384447765462458589643870524981887660324023230085371183912251563537643922039722219417998558950315772898476492281141289348402364847034062111918893409130887653250399923480738449578553876272940860866103483934023037909412532716370224178546593167845979785901684654296309165930010885082335399833482645219793827359099642246428785213819100700003229735129099601640892845293713473529238341062303883955102739306694317696345960175957122962624244434671806217622464472539583334218562836038406096829177098374040485784476892046076534282850143217093925021059736374660395377904889542539360579937578351811234630556696261011909932459040611228335052139552626582873964592326699044367930108629969440400024574751567346315419662247869800811827941151789695322580999083339113616448159756519955097328534251397742970048173109627468784670144567373311429939443002702534819592125971875946642959840475688787426050234034439635714457405630403067667783811304564366344346019875391540461597521942856464707512358812811303659973223223695822504495394604174666330872101147008140068637223524760368122049125516048442609922840861995304934591662387765345424006463997685276662695526002204221367841303403633321490126207135671734182811531012476565144659637234612487590946181984075753505752324592706997362048663857465238697500697802025676436351278866780802339095165442610573875691732812898847948168385567677442678175603210230779330941669957998929499900608538577040251241409479315713065554177754216914383987064953782222098928606339809156950488732728864163183740931084120779320454323547022881638585002139079972543240414277755193040818664093008952372859487562780598039080715988971182036801173440313314118915382695519819510894290661747199318098130937047133026053654470806950345880780648770911907992953211208180227280326833398526531481610343265784698045446586536430629327640422797402545118493534880699703371069620082110122265059602316005255784080019338514028858721315454131876678874663588529354680964766574520515198353886551972469128922663859473856666577351877540683909619568674331504640672886902782527257606702991173122009857745872658664684359342441294886360494250815977218434359162812321936056942458015256225167302782711779653173631646832773536268506564658460826162289077326500755438891509805230612927042720427693738100696180798773183414199086036084221012279626604242201192825085456793808553126550958375025075643947969782144697882931330814579920013907743333645773924039399276831322191127761172164682351409107389769722512832981638310229169524045291138234060509939929212987349264637345712794004664608186315156186764824669339711030113790432743705560638608038828689718343669836825365037263622515042849285100624976809482332162990320067674526966747960975873919511013606807916133620890250050317924268990279936850767150776566297849504318115725566495408892505578511393477204326576931820545554278957142635917305998916539273024647532858351765852558730527581000528337108176966016259412435352032740713219450817808974105593871530844864243159660633072089133443318502123912319869962402896909200740336778140125871923098091471966898391664321633784349871180425342787581111194450490999671763849582133232177588900403195488723320522339973439004194407335438071472958918340808197144612366102792971938935683302120238601027886528316991913791415238006109155907191236318670996541107266623160616658557380266810548775232321586807352465365871852947402433203156389619891164869142376080796144628739055982937023507712615687152221162992618896504591766640367746913414156318631234596774930003395137345425438472743189375737092267901457239029128339089670740648280868103987708678910968584740198773611959342020861244260930811114866866359123443044458435784623324396466364558959444065065778103733688164390019167144863073866577864510955841034959262985442845977386754839193549767649464135269429903149920139168934304839451870633349366383271293466512393717407965418030441885906964908263168991894058638326724451751155982198946046997028133914814112305928870486765723632984796109972205126173890241583495244747429863249736612994520119145832275773500559817648756200896168701884975554905274486606175888303017848596435990340940953055906453928939686625175752399456714271615960204939387629311675435904903956273977300685263499666697965722521086364630436592689020718099494260180907022709199372564405531185122824537012437504964666059451968155801051538418250517172735278782655953528561938990261568168752558835776814878387939479960697287529181812924731438256783361914758534425115380673879362091643617718188139117749535089429401441884294688556880733836855041903752353803892595452178560869429949632247219663943424591941324536132028209416102152751216445774396669585766020598202303589892047304394095379097632490490531384095902415245299689008476116965814808806537315319098833659055447880320553666238259916809622758717910194676554490445041476339035947092225469481139966550564572573121501379093948157918394018994832107486403126291809109929941988239917013261770783325679182862153548231207916488935862574869151460091498965047172960184457743355518160162075923732428417499213205168077916367061919518805297658256992291768221620309889942520042993039880859604471519796342979612251078892924059563450328711137401546616694154605410774810337325038080266562656367900349024064656828299179029246619766290318773280080288210000461652264166540705854561697086475914237140655851750206756010029062263252813444779406184624878125440890569031592014453682164253689426156285555499548452753328979281772285827932798576080678244234061671494253934639261950325518574184272706719672999385190276963920853465434150296260853938720817892881114243911552744536894727937103079588846891614966014290268542586597515515403157963410655657047305976002519138870477587687981151008270655024471603947335179446087500472543466149586009496599756619759460923401184303597224584001600722424116396386067212365781173942187201276747679141346065728201270408103837856584145986535037299392325861836939652538073060473180564509851904792789330523911969951029332565713307688409457612420136091157269454063138256119232456942852886787278253665871191870300912641945197371841064141489685862491465355409576695821374825489748720949283872412302001736454071972479874812896787955016694721171712893957605245363514959484534658097767284831318226237563481900470062797934391830565047106435792012620776492181322997369441714158111719781134952267807720157515940641513081677378448389272182213736747191595453940099024431260317781087543471478506436218742548651977163378693545396626724260643311643780178369993155502627997944280391603694425587048133007341362677948840444097515588756405710672561490229629934499274566387188926055606891572011853337170472458530464923141653168070334606393262510244595246343251322171345628017045407708738736142334110125061721668734202197781598563190571430680247063560432629433707826177258861800834715128863167308498463503678763939789776450209363366570103437543856062182497654264386435678263734766449762412339377326534083063825760743376685718783826495821204593800375727988177479176070532846619097516392736268244087368145371046418971060655099518305084185929985320878635778900407443487922612319378599773900908768589036535739383620874292121625275751582331165283205392671493052338008180945015807544386294843508600561421083135974650152930008865493104396688260984896574814760393923933418853509067021865601525324642121189429397495144475593976659365241239918602552996754822713653608007153532262200570834784394442027657007291430969212322037120697525696062729868376113783273903933198340600582054311881102783785025456720793763114572051509643118220372828092606240884030894545297058359673107559789940398541485514121245710868811682282830595879665008686327603484626860475184714859957044036703287757425412961710970212511097212681872972021596736830564389311486377073140693146889435453374949395147897363597378470824544880019862718588718953777271551619893723138366468746497736147450039020074686833220168489590169240370946479526522681957335076663108449056310301228196194132491712088341754812528375715929698009721775385467089798930376820264778373228356480730837573808245770909717007400529475720313547662857158136172519276470612717996716868703379530033993042831602061291168704804862466494265812216422185890905427849136711525000018134175949340421368097909562179037767414580045975252781377851693959746006555040211713643889388544532572713392453585993904827720311032075862839276292640690109434599525512216954032584555081595664651343419830888781925161433997737654399587556471598252531538888214658924120151805850645042749408438734853569237863384321495624989519469486284659011502294500672929587532155733861602361644230106800334165871870667889107541035762822159615860689857098724918837297103775708529699560814141784945594773368884029327953809238242352740737884168346696885176820468274515678278554949217462475554393075915438259785971376821203037043074314703994225036839465072055863571679976997823262975494843263919405362531509569832926902001166947016184083367137321631716677621860593739739733706793285947321068620324370800642396656897554523047529966041739667785279409528142789220998073263856204742749194907886276639511847563467847563793120493465136318038349002636987325355913782209250856480953789765741675387214185755762754634233402829534394182556873496656779393476406838746810196194924705084157681126476683119645067563656272019925020878862453369678830709954633690300326613054813834613945920230449052831964886322890423246610013788355775194040912327427111570920319218383377701964416168830884408194778800928162667725965652907578692127887884117924214944700014747650349305140642452408681285303156142920749049083006057100850548225795099009100320989383148188092090617811113996612529834573945767064954133162724857274256326969475958768342093047401273681014118140482887568539068544222563484896304674519164100871646606950066623864944404864958844529823742137500816218030676400400205345931873867806180822822144925440587470395097012393138000081208614422089702228806522655923955446427317418384530121981095603727590563199827005896960432961357408524133394496542840971568141548382491268376891109871318181179440956791344928086581990856314362340241877398045885908091446241923990235219404445026227359323060620481216080382465007388496086534987622114875622749296725371653647330066653235714617339416045593948664835659254602784273448909088743376248753533818921968279797072989425805393777050576787813905192612486371706335663894908893090580822153545284452929445679199869425855762788655307172721701587432707910773673209799164267839139593013310902690985765682948511709976946473824671837156802633489292375541827443257129798037091071016226992978639839730474608281233222219559100912214286084251380977511513582732743742991973627886756684311830776525432540678980864296639041603531397923229121666598974902879029066866545209291993146840994838142456469513230908089924624694237246877281436381967160020880460357784424118394245655851282723013691748353510566413236831979877252477008964408541399301089996853224285514653369524100513636719086548578633487500878725750169695428724608352412289836919288277521000783290019149350793518473864756124004148943435289533106394076080785154660110369279677302624945743999818105661074568728227042591070863682606304291277508906491261078359195694263853913700421629425159900123385001671557671765483535230533179235331425942154566692808447553433889499554589395626357303598364476983953473101200387291393208878050593373834418471104521046147103871651955348002650936238586236609562059288140918564359686676812334643812678759538371830790420439189165700624948535475321182568068399185235917198330855414881778549067644288222190833090205905276422601386273538119884183981668124124158799611042196699279179639884334804587645926131525060323278476826944156599975616843982639571389493998498643884409357979530229021224255030172191193981147214865242672731361999736269237021660193891191137989902813925291662520506154395654350717189540970407173937791369866851782458334327908799786195594559971555279798527479286039380706835665295098968446671274766385090458758542091150357966694465576955691117236041797806234115469558139262871460477437547495907374582596203945691509018091281114129954070961046681569331096908129722218479754144895166053310088980604436954579586877973203239068267195544585338829518883409487906506745811618893467484930334401575742528866937407746478143365063173314541385094232646244973717001643230335635938413236972450631465748165546838242815062875750837647747002624474158164005728394089447550260429863197310708680664195555069166093312811367527658897612605167599425790814829341005165994352899240796963792452155312628806888393157066960955803733687993683018135119974983335155848635009494879826273068659785206586029198682026465223342098116046620053763012267363022262575579248064425121135242759872471194844860205274578509196406848152531325147199953681855351996629622906258404786333405321766190267331706414632100059438859838362102711163026221124642149666450449687905183829759527394533907696966800956962263725011727882966699249032250267688187110012283368040205940349238615671420909139590516062194284673139271840205329759479807628582614764227953931623290493593057371806330839133748658544684094716428742644764457583218726734329316369490918662390230990779398707512577078989329775130783537905006432872083220498389447873866534288430200025112986112090860288669745584158592824308904417450145901151521531066252506527313904226451701906274359526183679526677869864118446153498671211776293088929741817904964597216858309538039574149155396516865424317421842263704360866320687296688208924970077958811524611045573261133877756883470078037090190058501431551379877766421715995790047541590635552618198442581654127298391041746663281874320462219337077204711112992403773355592279527712172562098424208989282167598150888193105499411494178374617727621908064739155582068932056910682644039229702602102791825553102595919883474983620007284660817496691775959090533392324039540155324491334690872093815175627054654258857463964930722131004913817642599872933067939479438724673096794265236588921361641474021250415466467662462629349557573975298880095719547225012511718970676127520210133740892933834690743162989588808378504345329307705039900306149232343400837784201813919580852011732376592864825167543889679884006865107853103685347845492080807559983818344108036502337051174930061887359582154343899713663554639585896808012090267367652697228701968088843012416349571526036117158550099825363852323257360213913295486607365382114067767040591412724431429493157817578760866579695861906832700137471257506857678690854828198684552438045861384450767549474783206987082448087884067631062727207713635046371449464951454818215657259956127871093780033220911194093619567498596089148822873357891886570074830029552925444538164901864371197014775594479044335354761789520221174484923361633819859313189974362096532989653349552177790132820990338309547934009488521343767512724090296974871226427772382851902905782785622408711894586819942048320790682123680805985492129906432576875601188545684901087960386834699618223028244746551635881603012743990762099985503969562371177375210826936310017855311115216989373390233743197317877974079287037880149175417886907361705930152454762295957894759441370445875585010451510340006953994684393236765409155967388428301213880976975871414795596393747368689060861016399848047421660689857396829469185788459909582502603828314887977154201692592042692900414760363273929106258678025416009605894855211100419916452059829472193081511975495506971473315275052550113894563504792726138649227384074521025924985948591555196450033641610722773431121357902891808966507826519558665466617082524223289828001209720140834147523861659836476650737508099686645849415769108303906747043245658140018315615841444948453712329722050003796298560798740687074890839429385312921501231065200295015749195747522399623276173651795118852113302069318276813455936951909946860642723656509588696978659567902019531294180707306074426832219049235949232796198659197179633153974861544890960077086364809796738134329863825990792379787033270006891794037125526957752501013931615713465047197724782614629754153710573867175814821018094964201421637513836132035040616800690341732745039272901381377397174487097644583279733229745039036773911555330957398412258137521380230632272116942027844628479802470449037719988325023517949177768357748074946293512633396749026601401890798445912578657894661362935799806876964788544114255996529853949063920633987729689396095750145009468017791965404448220029789168565884419074542168082453386665786364612057087684955174930929020037237059150251434096586548339627045318262696791419121034886502313560857512984103901686425725667958611602265700892149098022004737667290120189426202723144866077152824587462676111344047907774188346171746419818622986561127034742359723000044983868947323481349718902718864944598038425542390879560739983094476204262548119416727752155583163187921300739283050996860304891567548139854896401695510087519849698350353125629703427593655424049110713852153415688019543056584391834689331616155408704685485128917679123664703608491239053053127992970560672924070747992739121531354019768300302005779345417011706091533959560052525614996331758579484748243846674334474517168320335204825557548395879867009786153715575066900640457965754752885648131252262647689986995228518822089549954515791490668098050374845003126959418654229052716147759266449472530711293263377860482204630454006275868835388395770151498276824085749238604630773516964230749679047675344758593490666119797829768807850680732589193655062624990304757840597949230543556693849591620803857400057832688211167770802072472462771142180516084496648758884899691817128447569501585438640076227801618862833660289289003999081150387407284299336167087612305750549767272668539862895285543617767840934956828189668323218250287337902684557282080907932289453272743779700487194707697632176680692186776252732604133657629060537218763816675635384245604489849967232343365994609557083279813830186092093924235105374408332702296777546139602608965489527024535510882382169354970568820593180986376325181735034453546856891204798069067903571656407847068252679356357645294170950371171709441543678526423116430043162663580963718553453195814491675879483060357250549256904837651222524356209865814395177377959410854087693696321177589697400776324551900755853859663181275982567661500945960165637703094460820500285392086653237870844259236372123518439061282937529289829279562637555089053452265427334368285663222591513872754236359117297500754754665745583212509587685339755186891973025293978223181278420069171020197084523061768767526350427139150031939761736084627033129063284703455115697698754417265609343337927217877254709130832637699971949855315284536523745209732780788427663402414770366703289790086302623968857688105382948086555281101839391116536957118197009813699108786425698497039422169955027378685457433530934118958716034282803230470952421418035123450870062779089123542863840818805837835721374828190418639260591944416975720426350072375171383099321583169075608456922039201120168479348693093209348891860152234099714379801385484531268654983413560564264682272367203676211971192860828470757131235306117366909501663087256566166133089422137908173239315840652274048748440057053823721116818838625922740470326744615128413802478757755477129401783087024245071401095303323130865740130040495848429878047301565966437552956725075430131819302270729224591988372026276164120821131960441201658299799160640084624392190321044928985690076958535984597669080284421276622533302425755900526816961134833162298768859018942195631873867744275110720623081745724141931901111422985084714306877239933060350967349404129889939878067098000690838831158549278570589123342175259740045028607552077785565928082788782868637459049130881743797005306042360951288037069864861851536276009903892240675342908982359628631203292446429746433401402591957795292726809185839763394546128378828176150373861659032388163562929310979256857037984542319279734967605931037885786153243149028573438899302835930136598249911794035322572432259417204547803658139672418810754622217095814268709095757067456104687354406814314444079236519859766124346192809850795432388791352846218799357224486638195826174764913363997355834051518610593657049377250991898813336856295668288889258685280338241312529790534275882607146660862936616764776482741608696161673271363781404556842313307128281991326709070005631991398787589249223381277402257542857509447063852910756185744620731432221966667524142708444274038216994169079882721255484024659197582444693721168092225287807582307419494244758827939530285722213696861666355071605057835269854788524903509034273717119122545187581547171689969547256555447640447667922279892003814913198225266016967631818638882601345087881049874345666175185190292235706309019376977474330962256618128208676602646083111491920358493822340103663710054724587632797934778215972723233470080779051670127306273505966309561898761412999845224044601401434914836062444376964528765850103938193441738595387230276234160499186979139782691418839237000167525050792670090779103846983980037592918895621509341429420201992091096486734974307171661972601850876417654599402238464203756111500291361640593638838890266509699690624104352845215681145772891542102472137506452411627450807165013594507508169362579155939236522530431449857062113826711618596051582880331619762766061151263597390070554393146850869854816092049958159585060495302946661141773588095343180968678406988605559140917776402743000491209204355813042950369447048916933994789059788997149932294195840528583814551814566680250883763832303228904771606054904717372747593955911631031932821460451686148297204534735492861155184048170687916578143117887872068783735549668079073506451823542567981275648757544576834780312250695588407471953832962633445565460654764732955964526589971023641496594850085599813807624734174013080132456952673868687683322608897207505303860765397576625445514571430753527821584797757996129026439994269798200332510290775690067252394360622967458711793564905555098837145019116470022287852807643505926581825563406241090304800888121693708717469282492458088949311232525835714993997812787493339164630695572391690283746542867246082859009085206748373240089464527549819465794772901436743253054751355674011628147537317604370232270588410353943287453843874023053390940989287631886307305173715125153350019929898427987418438180042187163872432509227505315727850785180025289752778875202117814211829844657957120475507658409697022024045402632927779750881307496870226726164902939464215651417210170530438454310186803368473052262488918654049190357267383957129767690906204531017410879000574792028395246723296593700379268758135541221039882884966107224316310130217314979109974740351088230343250600352504857516674011634810117072410525591032741998062516536044306991774639084015452187544244006352401424001823087157389959403962405402554089618246104768781552962810214674014076487185474933344211456498808194844995668809673065779289648022199157794211642049480407342082129881371905723869542766169462372153215925462918109567607086883787036388192020164590488834891378934131493696835096500162502891825735376079874016795896608305638412695904769885102343805045856017103279699543002949241351318719215477764586335352313121010939183659891036574350087867284077781090317641276495541692829717214242904669805526938029473305879262739680444644207528650609371745807695122271625849638560180046150441323576108636827448719960507348597461260136462134137414757565658455809631573419801192431197394188519773063427165281301295793075570399027033814521028118167741507318989248102104100715704842994016682787169820778809315452632106635349437236832166920777587795807958105473906833083714771134331816969779702635906696688877173372144210467006288925027084675994730919885030331645020332147044263770810981525101848667241449452205668957916583536866911057621103455693340495161097881487840598749752669006410991463998693970987674532510844331245876704985267971782655643214090148206998038224414435662252777543933814518505801316025279548965236446120251553333647156101283700016732919194071316128086602498938590158037589025943611480952165490665950040390596256162306009933217151836633528660960458673885905299012464489565199248301386443715363770439310305786563554877234257851404854766218140863533124221079691860651951454929632010072244635981166680994754805980969303318049352822894938820765440887136305472830933926715746576393091253705975984151052606303913095407435716835109039000385009297035571637924262887721780852918316363013952607637192231569181765379957654109237567663670995959976460538195708326016650682847592587103824461699325256187279329370416416414052778368742111169613127977010807088407884901130173869276207503176086824966147100756572886885571249670681954082779218692168043201802124498811631821773785034334722159357369162513088040283510260635407207633250031819994940314144683829597238278319832899633603746504197949464662686130632336634997836458769774529897557147251827308077275126134281108351258760906460299530089027766858130007392477086043945521132055164992120419049556395032400932764357802683778449121595468927573577874209433745345613070458744466133580944198370423881595357846099789396979069445383800537923225585709429596956417933594274668011848642106888047583956815357396523886156382506565772095762446712369197783544469752177489994774736301375184779350423762318928298956287353732376033065195547314458564695319390402804264859059008380874438124579483317428040548520542777613356951635268438842035967435496625104480415818852607782139645145806920664877050410900033453831441563381399877788342836487477644915985137344762815881168820560867469911911601082584117067188905803313570791367942545095738704664136284549111996993189937784079611997825023397356290438210347449408845055285309261234921448508103412174337951134291132758848331088625731510038690280928576082375802230956434913503817890894592679998286806334801217228173962845770202168138552665891880181760007604666007312555587218236285874284378214963352571862503381335644497949096183239474697568962622548913287675525997605402215396734213645588379306232548003751979818815396380501817754147882308260614280994089551188149560267193826686818953164536856176589155600965405716147627594386174004073877815581090641527623622705894606998330006161535356277628260899991442547685897775887348308333322282553698472423838734656321113762510096940017047533178276081829335081833290089414679476304064826665382988966518647140668644916070849636209342468013631224899720013751252690609183452821744011958565576052068477555055932277086531758895049911032956798351251476172824250937825922390017934046063301495415374911796688252512408145703909768274331729428524828203483470576592982730422751960626179334043284011974574742155926619363859205728522485475923497980397292597255865539972040540283960317829886309109423105571599374940010877286852254887218974773314826563812109246865105010861834492216316126252067394262424303799575162897481572486845591388820060784802479774390048638891827270283576370055656098244408933038651923301366779097122608393568583001640379200120355067003763656732763920448483136637163012923748686455212055176288832538091587590496826215523750767311691917106365888184030413813639889695497903118184600123461228303356923083470001871468531688037544689155485654541027967726349991291829818417732312719092140880121676215268734026232311798848732400289066887853347434957972483274335375187383766389499797748965729185602142238871969904837657063491470543319083395791058176732584530608514386263806416369980025492940075677906676281025876477647102990821120342353297989759446283549425849448833200232247654981094469598898123013687085073308664720309099324019872672586916959304220522182138092273176395285038877227805467016910029600875266489121540527962547837018959490357997024715787539175204513732666328080367764314962515349291829374176242528041055419532667701086045938011215117892123438970242902332222286597406750306450387469559981091954091482917993994529392290172524440671999137157208359812137506879946065498695948490986362445818006660131255759565764876011950103248566212028681814105693691753450326805843037350102303067443087738684377890341255021401499828491398779159731356218247100685852451808217296069249906718371882705581215413245010443258327243644050388014356380076409311468485182636632860354602687694783893790878942201546007416384450934960284198853148873979029844670051453139746114862232897552340671951149659013668105905012624126726548042930235193550847436060043202514670456337959185986434689531016564433803266447410430455511426273150333865428387224888227339769118364025621044774453048377382325100302139640953224423246262414988390766042820088885381056774677856583443300422552484481320044424848075615640878005134340517627207627053569125467333929731086445938758358899989777143193288786805630541804624359089801304445829490109453463071813584793684737146261964321173503885155661501800703578186540433348155190988634472440050460906416801825122353317220990325325067231672248759212608707321582486604943269514159302263450465045174890394456471441556396120277912730016951475492299807545728926268454222387347097997242881321479562337182301254987320523815684553907738161133059716630514764497938648179934985046723169567839192994525949270372827647957183944351193308820010372849980871570802151306211229396124276695465803832025240977833743955688778990085562986953591813194729389073249400216017602679022742786273928874937161080327462954794605371724888400952670057209774723002424548103077985181967683375262742746674375802934408425984371400747743448211105265294514979409510820885823710705572764312322909760208557299045682664625685300839922395892025577238776898267396899906282201692975432660060132730496163057479767710183133016773892999620524508862599546395320506139877816303887943386653107070367000431365916989738958796643704080080705268265868791964691706114714752550940239779107902974783805613110000034715298367627148606845083429556377732202671992233531985759615290075968939168287780519419608831813670273585417534746777898948654122078502492103255289582199308003166640982195424831544300126199428640976163122353738811008033164797339631585755361835814180936759110602007922659353140434420833080789664857265480321802298869179607060605460970938483973689876660192125240412859327598077794811615932246133075851249564220026783544142789898972870001859970716761507708936919698514739225206372424594389157254924485526184900457033320197506205462157910538916659632624579131638975872619671443265090525066405992077221591258442704441465754822447247846207409100712337419071855832737655257415708686545099712123437438520651324738502048069641898621551681930389909105906260723030804349081531633040451276922453599027548646138562176036895110601900117387583536211414745735385569770779092783406509401013921040200533736466203519115550024316575566950541394043373801425118842141062735314405904530410453756643785568929610519817318572542364935850876774457067253076300525202985785984772716007446896364511200431985413406041714137681097465840791185307484578201566849255611122223056322566833233493020738457638582927291385582707605079269303269657911232089813536575769483555850542175361790561589703994414992455941652004642159079458507769273240493823297127185422217379330070655178885558407428412015129546308064987914014169567611422149965697657566061745263639006643479178658236213708933773805593615588572219676209404502923562196840051440678353324942084512339399168623063131479598026246269114447568155749554264647022606684618436069688450529722234019822629680201442857954232413793595875622869174812190670639037303551067856919915796648364640315780697458957440090254544508797053863346885160902967260939530104716027494550562475488300523009405977562881139694341377677242055026245017086596697672212954454834954390778791601987729643070385815161152576205413815476050902772266902844554767750225748048160725528882328561085659909320037998079901256343913922380173397095452563581371545998912646452021773908454762538329809756606545341347438970907335821119961713750791674076312584716808209899047925468105720635235662940008091825523282903034716474446808808912981881936967392548303329710575330671644269659830445321209838462490501938298715609081672732091176510561154969795323128833755224565643253677197077394816620012865768229038070303478359662481152613309311575986256903952261948051517664128271436120289877561046701967656657263107096776965140640937507391835288315304855272244993446096016432404871712643544507680074718127038903975036544046607877562998857560918046449668432651741907423604189414758841770415932141827846212276723897574499741051879559941674154116279021497424561509330951954253835330946639318957963458061185519029978340738366170893535351201762817690482806112894642418985346187941465743276210187972525638651309594897065047364476829003392176567452057359034927634901337528265501455915066796325638535127465174321212122679505124736889001603958899561554967919436995333346591905626888105992915009914076166591266788816809577198185886749906034168143235201372177636856848766312493109457029443103602778849314075372783164347387023105611921413783408112057654453481224430567076988230514277212995404893094770518608518210579192612114976019350163916778267477179140365493615885953474874327592371420873430994081250633070885319768616125861868114329300412087278002853383667163563023322083977055927881608257939624964244580302406788687576594625637111705062498622884510730477438485108297553270740204002461657672182477421762085230260994092853615460087697786864356147843380791428452764123141292606279208927080089653531791186762719272439383703615848714985783896392207518215071643583152808533512604375350670958617739261317750070939870834638282373280377627668424072460496670263836259024052905413946087418662316121648852970628520457885431751639949977666148693153095660378720598626391989239995814584750124900605679596061396879921293711556896611808716017652394355417295195037506897495545374450698566094163248765304860797522519451993499451138204416337701348926758717209168997624136963920126294652123948837340975701735945325529716992668566074807679780272178303801056288245444504495550360519200548486188534117143332044770687348111417996721869997491340289266756401051890951868201975451528057733525080650713362567829606263650186829122675925526467276406128455802427520298833520694870131829845927478160779848193456265589511682624756422712450643411603920462346188484066789766636957655589708796989881655335089487960860286962649186243066801436379161746106819672130572709053219763291529982890446496880026529081386127564894546198911341380295671401492751033083530159146195606038963632611773623143307534886429483878578506590844048946900716043484479405547433026011205390666871888544932623828247733016893544617092610549311366756956877996674229277116405066457388744411751046673664213093893863213493902730363672503563533606984679088698740517427467853116011078985321218222282386882816246801383878294155522367660782329293535214065315620981480244074995757431840709690290559346568323893205377979065922779177097293668374241470842344716320582559596433732639336709569363140342286778585141428941251330098283150989101592860179160717294769589206658165645664896680267417561292556337457073390141292962066421139273094110131029355419439022899284851684647012701547754469417835177720572172639543069301261427702924270763569786441026810670972240791602087074907147068943719474933904023384753076899239630756484434374189514645184788204972842166006190309704565853265312760700438485805104566608646823048838568800734053636886236976163733413221437439751953203923287374908864405937987499545612552517529757909276059188064143860141761793935677074709994120195344084581299299668287780417719310227430134110925876061683049979374537909747587674570518586069835782435727951158669564622619682079775430795184366591292914260742263683292800228760584963376609233568139830330792236654014719298292581379683846400507550613682708308325934643207720558832607201679966220516689292526473093072122310732608525720994198751175227813212142241489845883950133521708149790682157165614623824403324563354238991985647019267499818404919071366164277960442439019905434251829389697663134166703659238260794304698625842251806493427698845028996475331376392097445417865966471007321748125434485009222816891639182600005370672625733160873051565201147046501406896720029112071037612784804376910720906520091390345190362999300841982282062227753712810295952437382417531755174508642430957360872144587239658361035020671921534969303161660536126664534662741594413109486604185755002263480452726559461197172936485094661194702419778578289448304606880353866202248413672803027724146367878517462839479536266134769802191811046143852165643785717001747500921872669439459293746175030033938165780335785691211165457624939925178552319022771265913345256924180381537354647288848394892302481661221597043360566877325747820394063126282614332722110347965328119670061098291805461499971151689346346198582199725142826321352086212691746968950126769102144165407954314129416431894375446943936678517801902525860426228568396099770097943513035233314923854605239080543965392805218145312228984102432850601203236989999371418648395289505938110914752222748069760518222935890965215884188932875503778057193703075968665395240651063720959384109270299811857195832233297216734918011163552536160726546726891689037560823045220328799081842220482078116147419048216933028547791224743384950805412261382973933974278945635022502567631512861690124549043244205666273698878454210966669257046659263199581776080935281944389458749234348834733004599075003271793999348733478722191217288485650361036723941434333685434512313113343769904670920716728245016696470178933642006602309911569194989400956669615488255322770806653371358222195021197857962632640565015299934425993867275470569921848202290613307907805895022405002386280847757167514140866394963352786004001942135186309520740248911350617059487405728294074760721202802486551001320080714690116103638597264973488906716857953798406779688250605117138663142106308753417745044740163855423843530304362274375541106964609309298913717439387642920684077776370978028415028121241863443315245265602614014020689927412069615454958310122971227299548416500883030153375780663474449219629270981488976116418603875313045048742844507283232835745566227842450538814269805282549552091056640514238528667523220371585025647477429620285227686801991188059457352193527989512474717995350874956894575338685230260663854402988704136786765494534402290062118647589262611179827976542991976635276702310525942731403590834912385643682078069880645162153241777590968218155760072552972477548281361593678812223868107819345579604025046998325741509250893770126259031115984659209153569022632306717408239485970698840463830716382785803968123889906310718605987589438817488933020657717171429657563529509658055386749902808670099292470880948453418959168305525483650348081330025879286940163341794085941451200545344977582076144303306702316242816738856121971340888327385056006562739793988350372037543683670377008061117204691655161652873405596149757570909860399901524479229211421103982134552448448180746429287403176999194894292633465494502593091075134678662978874816080019123546963532852288250608485179921576604716565928240407265101176033773591391529778235521547510352177636031946736227012337738747705848275142286911692938990798260843786973863146318456279824956467535737944771411401492941383225752555923571127734368012496258005537743317154923524744375813685537535090979082929157164699041013719859935898971787162668378128431890703178785520656703926478153329490454193191248145863704694046534878808769467928163509284746516581987862465666272124186478627586130855783061553580834764206718042139225502308819412895118724294816487035206193113256032184144298500479039162852563266905508354278455828420073638757213395083019231196929266079518737507173492052211912225872286262680605329932009784163580200924514002856719729138749660232266598205857052405389937853252125677438077100575487032480225717917311912851200618235079749598263447232119088348321951097876684419699666335721066082689683814619202986600583024618619889079009457555109883456017236755827014613106265355163162080755032846703168292334194667038907156026554482179887081816305495732020161653385380749391938102939703356070375082317175713585745284041001474973472309431600362997322225284090006735753760368361026386360680839965277207934769693219096425243452857968064418651723548985247980665612492240687609303538218852633443021319332872547285847602570297845985122303203960540490611986086960684007690858849253044863354987781498517145386415655967078211964675695445324293146310704995781993304368606484085396997580940554006801501352517311848191496335443206082468729836794971636922664017380998307977980563769699317992516361077077545711454494254375560286127423574402634307746426109649852581047607063448096791042467667552267028258337675644591376947333935848170871787062511990637981133731148860199440578756140964721952040795951236309293155870896406955911513362767059417656629237314771465417874797716093012693909074037276277801176165624234526406536956639954574776857430212859262346866178993646918181523042795362588795785346248026414293725066865578506761770328108486278844135511912787574950683241995963669600901920774231555585973585572457094581424865450394621086950604509346158744367229567317412674021675373863142527103860954833836766968056692538359221325674140162187580528253173675791202772380302858425175369409951694396303314967629959648732064847351010116355511694549997187194730345867428034528581233431318109791135221341922419655001000134404190236587779282622615192866584128504275010194058886470640927733669898225849976724208936332705937160014756771270444268805618049489431804636695614222548142150384323793805311183534030938644340742751973509609564495883766418840658193621789815659993557584508057979502980675979112634759921806067085459555430983179689217519495359478352954876575541580387731128149709191796417678076121794134221983394898952081904219033405326949015749777463229719504645739551743288064713691736726991587728604643479633730785189526747480041429289089959958190300370610196139425830342552803670666853633243217111710296693519584143301654775029586942973750854300365702604509324597591032597625883612442645440044636521957826894289277154471234067180209090209017464893542747724904610151908155510023731371595598155252242730484640737433820971025656142764014547973876487420188869868013773995614897653002153614801811206922203342306358898321266507495598409049619466031028692400882648347415226543241194796778467205839408958757453330840441354014112962955868416240761705988301599797072553802415246291499061539913450167081730901370418987658237935222894289679278494735225142588557261425489224531114886405607043873333923230794573958487657940213745106366786117544225612441812588126623077469610237902988430896459401693529700858429736967831312849932976519022350577262684873553172411325826854126807475409970308958097268616263763961941500534634723175655658875893704750188468412181885049080063780600584785613997803492707362338336568150955455134128901607021900858131623122481176517713547172979632268252888231076765100524865199636635611886353046403958689496338053159661141185046048072267033296454351521290068517867490406081868893339015712582288988828168484339621754841225393001854802245881831046636515918099774354343382598042338449062178473324505223829613392861674319533083787131461078118161926700030008660496552238780013887984562593314139464601927844560317207718999985162290557247955430656351525590523515484724815487807228667194387958966355600478874189349535022454657297413455900591321671401900563415639279935845101047489493156747285464456282414392198929296031749282333751666830000029909710528959484426333966351707495637130302396079234148735536577814167144504906604062066919365013264104111451511504857117853168047368311200173332253387309966214097608566955329172859471867903535506637673733920771347957729685880064393770600477195856275089230859458255903722368361495112957852727821916829711256543658437973223283780930139903938169809977630607114792027418085506761230767737794845957133251056294959909472665518592684107668618355934450258761152952746755025787886948152924251532233061327504971008885084636236795471678470464197477918608414505631223613982292192237897552796443403732732233101049431603631854167200681555135940386669039652776198892583104469228204759826081502714959713170339983317824259089822408910852113804056188738768104320568142597853817833952153085312771157033025972697784118263672341327017297007991529447259417304620982228997602409870220189268428665027924627575427041573395454135434095658723671830534173180931540419234832734432834660118576123687564540787743546690618737822802325837252519514770167235219453162701981380833374880425057776927186337444837445926995144395790404120825940328173378152236508739551719075506376484732976056872709045199573374774836872633534272631981231314835155122056708934711911942181988062911031279044780630530859089238743521744680284847449462105687296390312255676788840742456322665977829371561194648650870302721708270315344762553444567848064954019565548538847072957362491745700798174664056806920191156159422953116404964042483355220971123369203803410061606726592621243328375930619908670726113675660188159485504165656038194917063650858606797789588221288671733154766855652390308977694061729499743029697746869092196753843328430942785972100734160475702904066134116605395720841735325439741212571401712591256811353592085450859067782284830250359369123054936182326135102643774534214636522246034802371232603968868654231303324847577569161716745581308911737328269720248477235403033639514486728360170018412347276465044385243698862247361925709492669009044925405111278601144535636508274997535632472745294858609586341880728562067442045084588920754158561960192229826797520295624103207791299326075659068823969877838215221926368778211677694503506139997156297524391088044200677360657553857052412854093574573882683854269630230463068031568280999342439906947060181458551656332967273998111111902344500818006895125189060193922184024389032848429866869438902196954111725299625268874129878591914412142139177272701485434847368729599878354324321465400819632794792375126911154375013762288373441936680826883418838336467760558459932331473488528275846530994067009871624154126723802205391301888347556547931123024516360607867923949452804153333792214598736666249925638970489254775268194764774102422418429659770037356095190595638584702402520068803240598489772595058446455422400204100225509005170715872940928989349528964164499779894539233208176113161567255769375492372654918943867616461504580040413936832218576034269822528217928838578485222597920112157529726092535863100454066649061532812322129796602275097207692124956660745941110679876312031779441236867791912332250323581378452609280042803276098351733656921567212871904103475199586291657872704725422011007438584500710599589148581625007665067204937427765243773466577883718727991270154519817037157739523203490491502009977882974111706780850196268857138973158488311531667993897742377900949336425096426947455069856633160124662744999032273679325111077523119488586076083938976255511811570732787662327857009054525020891135747749641061674713064571654997301144511632186663062378461629816381739903295608878038655072737249656004509775890313549091946296646666716380420695938216248615088209530873817745442074729143667317871693170625808341364843832348208535754546903781311286250911315431133390965676561370814160361844692062935914930351750563789107565043528661077140543654370667097929687253173857180376418335141803580518554857887438264965359997838405591091647202792601778652795512067487529545822387542098736525007971967363505854891663382202083253784014552023751800846670147090614841272525475165409200697381476774461456905196685159223060212803907104868895014172255009580468766529898403551100211092905149641822532046786803439746986364480261457773451701301576213656293523155766558023776319810106475278020571078294694745006268829087143520091065501858299238027844874350702289826158575845968332155017483265685670144493418463125116998606755981443457261559092859580603683033063140634667720696816006113216347300911499626394058944633259999502588748429167262476788328829602979473782241149330944715436821155382493603878766222564338089383755964092175614281467485688661809449091178412962560666878439521596721214354693894518753731890669914960032431292497390699283767905079935322990203312300047549212564383931901027940118702953882932685740148970768704798725456686216357390617156222078237884933089064962582809712535228048545116413844732798264398787597519875376497217716739635570382894075626188622342954599809800909929406193500749846133765425039558207486923987520981310565846915885435861463006858095996302902836579597910018789605908517496425088286554254976805360787726173825066354997419895559626291412872086551108878532422966824372765114646903343328548732741309147407021719964262220453981704256009922734946161282918781158793897102382924321447448018310319990534916439367072851610445870089349285767978205766103094124239260888691258704777571240447322065572901243330150437425891685316575108297966518612515894075691217932767289060996467434171204629011262998992416343851946910194306700970363576464572854209524329240370123626282331361652885393409974923938841820977943066745918080334554582247601520923669748820107553375706048258490611309770792817678669205412973897019475183052276551819184600287761000594845626416074524386352451862583903331109152770402478558112537429053746532098578652107877669205740685870405524459317694596793228911769818789275754827129306241662080089237498185671824869654620225595558453736766065264629086696573110384303741688593994869850354038259063085129896635272030251732303512283240345271919213740042646279672057880184569581132167690875211781497656834703436973652246026410522769243669327030266062393217149692659185830871014664164376634457818123955013372787379883854922991770909864929644317101350052948402710978814639067742044173149454629047166316993055650117984838531835626969130403071606577774022259235978387490282447697210517973547207938859932406009624614258925147687678081688957336412602317457601853396794277046942600928010458705587441404580413453062312588389599781325069162198115706181628314535570292019195048784935743778426519495804143719411833829198632858206577840161733316294607053240955398080142044423149784415571670475338019170102215740367620775762460208650022615318003078663690612214692992515278366710463735888998664643011832188361545087240952713275043559155438182493017879442339799865081791139649910164129620677316257672412322575983414414880907609217803042733881011630956048602678262771947368762331633766569565731870925747248158645817154807563379373176434103766202409219124034235305240444980356893796268305758052050077319663378981243642664866598487179287627861663332091693498941324240506504436512381626832798751209919667894095218289251882695480696245699179177892611870088072567743930261777913073014427869020531004942003000797594380074175044757987867069832215177623344598422532914432848264635653965218110643230872915459481751465173115738743157549954502400160802089798193008087644452695712844697712167191055165599727916596857129458683737792018064399181869072147615595579707354935796738261140358545180599286756572374073236624498728613551049389157614100022799799409660139540946516075494357659281494443427725815036030470115755041188349793615522898746275734852042165809592856943914386326884399829490483209297241906880555029759724542315191092369940870777624158317784605448055803673312298435859755968395709164913200049507268642346498104349878277801167363751371643142052396877744018065120045088011400321102041444546145275152196177015751002977058851473039826123864011861977102333269491024037865150032524749062985014962046691892487205957171817171388414131804712457389616496919906911474770662916818041980997286330088838277353332184938675974380204575523433387303897062513254457350875770419986823774223112730944222635254476489905591088090706710503227397261416877104649520444623500022942441542561597716939954228811537116547218515725744273242539801736456462456418338459328858645995977676933631590479245964903721928374969987930452936631344388746232135052220288332084686479306859440187428830931251414682568875319214629683389923968944112413429765947484110714933152528882093565905658942273255211334751991028347070702862949765320262463421957842220185364472433899619773516332442898606269117601097328781930511158452450329334427909232407745068136798190816536987138464641287614501675724443852008827190122458452057255811826413523608153658831240687517753223090178932358952322553930432552345160182336681904757981388909547917746229545363291333636944028405599832335533822431431539480280920266814647039884060397356859601986865591611678751246176728757910790560635152747002338431697748247421430087037329207774501335349674881567551162792634735045726068461037356386099481776970726027317545118866853506947277722608449158752842855754702791969496188145418294708446941859817606130724546598553775198585452377377781205543892759579454504355512144048368302955182262989567626142520439853067370330613343908557142579692861454667234108330764986389318575653620634365271868973009444067652273954848784112709562288526493453920222596917448983509313917652574631080327819288641285795722034057800293877663864012039904587581821777925961996218114754273527049554858749945877352794891832665689574316475985362574179584352130855820363316733492407948109702902767493656967856214622000751480324453343712198631188075361475300999292545651732313446258951533735957968791641510988505117254815430465130946155338703668969404264858841390554935500887353470097504519269787129698571241201534794071183912323112628604032693915672338310304161727772344914956087208917337161439078957527620256209288105963898821759024889373764051738771970790348640298860778104074283993110360685089902481473834331829743649072715572646887854434618800540269914278258257438633991882397192060407808415944169377233425740818442888991595841298411505253789179651666563121784553663548350349353600239277514399997381416637029874340212105700351494759167316317889768309079162524659099122977624738932651762190130876820480365638461317719243930689577009944260166159060665330065286857064981990626774365907619303396589107973790199585685446215941130213003190336212916703894208571225445537959462559695051559649121339975650697326400894977803815098220541999387132567898710521187790994438210865122171835631130258008142269338027042625316152369598585652159989741235449456775670399937157591001286598420495700011922530533550790522170502601250842073874568680720198264032307321876292682437002307604932111278323088392860760280143248135824047518607798614167051883294993763237923238044693504781742829454109702987095954322037741834731237482684733569439464866377893629099524118378798466433015864363329798436339359371709231111984382647739504762198682470052029096734925900328089548111789670264799367378637807731898052208768451638060837004071541979944077395675066576060964882666666765420084103859684332085597252089396315703112367083614268960072903326421909629643142355988015040229668226505083704588776254061643403960013553925638093226487157791438211425131131696610229016036845735775719071000018750826039765728403265008119887694921185846657564894916472026341005995692016701090452163739933885459997555498717280098885711679738261417206796255662480840673311715966593636247219891018389511791563829056668701573410999829186758564704550269612825551453036657808477597595828268089261604613753618767201250757004187672428696436328604976646931441030908570539213867472402045313211139714421581080418813777074013237930668112475876153451303162515550790172583511481824071576025928175463194414498471655168412576402037246560322364737287141830038977812578611421432675651002471216622539982924521093173418927938808360416391317959222574114591177696002730100131314732633748068834502272951168410875634067167411248360592084737622262160172850963819500903500803852003871745871825233283343883470923714601350378052499422148467094980301175271827956775180183230560051993615033485868367902239864124150123913890802197875284966567645129558101877427999029265241148118202939980058863571430808678064514709864599021877778410808502335875960559650117391668601060755922586187434044140602097774094781303766335578900411665926543216766062316963757176746796693966346974622229678786006898531492794090988114228195242132866763051458384347972282048360802228928520170211921029145894538684359803229598932395356516696973099188492377371213435854187768481833236529056875667020168122625880152842820031145261852361207680076113486698479259526799358749609216197438656531543700506581417529308284136578152533723150147886699512502727775066121245868044327070517122251880156339095947756373510817845338326771976001834379168237946241330046729610248282387789552888753429911444143139477039419035616263535922287127215012373771164631785132634681916252734295886811574543470166608734441555365413739480417856520005031853473199570310154157838373107825440718728477155260815539602478733294216536928136895436286571904753381295083072936614026188273939766154011516790850309241923597270562860161613602780204177482473727235080155031076868293377938529078587297535676836685577383164496952337635380610572916450481417299976151761307398942043536820058862563847651815784711116006583401653618907344603057506992466964685194005104645425632746802108494384324379431676229877436598209981866042992793420116396352237882137856697189181402139128455524439684584163786531336474848944310370470838078441309990246478033575877464669760746533184653865535078826120829513423039515495473803715619753961760827717276548599389894231057097932840179308433441310738237359969836439901308210492988999790234762556311168757255935669074926716673661872879861583051344245068499466447499740101856714780780943936703934759663311977059891984516493904266709949359136038780436234547488851830554035612446938436724680160646691030058527384510941975873458572941797380579873204208357980465729180292761184685353795458529271120579937530611651283000517638322988292761738390289025639089730547817381832433660335495856201674951923020457271505722926618196480391841303243217018288042713728935016103674316896581236754103225669766725505692331321132338183540695555967781813254861938435537210089429943434919885357627910565136971051295745506968838439413243880463017256653967285762782854855940242767199940202386376551978301079292716519378448066392505996107583548815039966283822683725768587070402179918129484337334330358975678738098470055390608524263816910533666124455286248366101123516356106375368911387565171652240292901011906582777819853449758388405113867734109936472894832461238962237846292293472192582219773343273738114597858439071178528835051096452955183471473634209318887185277392478085974182022347116412213376739412495344564453959044060803910096829083335023150377174587742165229846834161222261640685365665382288162516518588475669421004509379653161793805764436847151532063512246888238251784389195517188938961458034817660770201037620625150818758213440077375407469440339393709349404240131886700202779856254824409246875421971987299452445313453376622113246673538803289406151650873067172775998828256254683673520033060578347743199785068740673771599373513858136069406768674339130562152601646760128940804570203195290817145431460699975138712842589237503415488678652470920427932954773495533983427140419469007646181954153495984024259349205578840876362137238194582678692105937553383726001971429307387241197996237106238119249942678992418598561342781464387295971104437557754229177283972786885433015233761351151509369032683393893016266526745950241807422125836455902619782501445476692560507182048036495234735735087356235880232570436372091594795570035431900960213177868010189959622870480933605357152809588579133837175055832775839685171079191779114743155505224429316547571299928093427455400474526544790967178365997637284680040821619726631503796607780926378982490491837288828910805931253474210443919385302327016525762252079035325570133101217032873530160559467873338442491011509123694413522709483561858648014204911632974406212247080525883872907003684738648946000334958131983366739263645516675726651037256625517865216784645580300459050741645963425989718392306951154097622309260496922895621331291175666719098485026175464419222397321800028023568654352390350616695904829458845974022336152327598229115819898311897804253129425345616187128876622833593005831232105673076116001362343568201386850710092584791769808973478804915227204075288465009639105273422375933603368532160605996822482890766480282863576643173326503799778776525840180355572111564729592792482468167753523583034407510788914831623563619993719722449949331207023840312310060624202563005158406992264739168240320199279878705899317988766108516812205373950310367888143156520530023258581861493096641732865985841873179782802304580408376152085996693801529198866743327703605531633921913287390251882506612427470577885361694800723956455941156261865794340570459686592123089915335600787605916474968833130305374766298839219110146546651585507600706523615013326261862702300003683653371896798775912667738803863595062294490354807842309384377818098714215439159904404083508300723166741210680496889393884725106988741426929947744577991587199801958885487619990848226871325402030002811912321363510595714627861695119660942844959496324015992896109133775766864730941732871841969032826971991752380079852349029852766061045435291525720493458734663759787805121901974245968949759798507345562375978062619363498834993006025255241988552606037695536947041038432837138046251496472410520961599691744517079145479358873719743323375723530969829653651740384049112411698004874122416066816245274960680755658182515224004951843156121973045545032900619686822672018678444537681981429072229566499149219511159930240725590255629109985431195662865115434817115147343960368225298726087825794999508267806041342389073651487601328848636155538106963895345839494875410651802781301716292603003631740925986145271230099399622599148677805304661876210957776290591725821043112777277551552901240463981552183229248426069597669549163850572027905584309483161520469530370848753175888717626260081349261598544299551188982450482320767717030674518580178639721648578933044884598330007970778785522982831287934542113445336064915798096370326536758043987189849660633671954723396103418098556022250812485003901916619306685759904270126007368590723668609132788268620682235709561298823416536376582962265009181968454872641370724491868523212463787241569134047659299767708145389071742207053947482467885798741667749256517324826588465919835434283194723144231341124407305360114913420235983927484628849461836171004860023234707305173447443645983694908151101701042202423757571581447253166849881967425442134276643215615985892993768180779517209009960301792405027554983231083505985552057190172016911486155361447729276263235928849934806994665725366492280201390491284689453619431496306169087336877049048305054224514206872816312484439375813518674465485209191504060013602459839236055014255314099903723825386332955011678128531429332161710465130779589489037265266856869239233186376814468825199251094668731361170287594497530550387082721520695162171700223096611354673065114210681325499593625450374572125501222804945156844516605961041729459041593297633480936918780951119647935420459795925459752345447896810646742295054658843867315567012722418639417887382825924446777935611893192334441360620352389626403709182515888799157592422435990599523248181326464753330063144860160427989343653492489130028015883789056662757203687799275352560687337125970634142373272785637403308445973748909567532037607815088720593314066773162092229135169693037161441483909895818799247157762363454646183759816514359538323886639396022484579815622189367731284625696590902592258091440067921511603546406870192103541141191921963480223858585633284526813195401003849739508569337267930675283237946176987776710710969634233431796888634181911041089260352731382788080462077740129003497239026575581181970581544306175676906451205408456966258020412750763585244126480540202156849338531181747484549096838000186612498140155565172328116692246843544607488276395297056327857962151654052031956995336097148351868171487449338817744733637684656276256126906931301887986992342409861491454325111713502948235140951562302753625064716760564862092445234919535897181200574235082735463271585444110699509876696056940023611494412258742599703130555290045207835957355059875057738595680116017992675445327431909295918622430714407704998528932385836525729438784255803169181494792018736435656169902857836781231122116580593378364663666779599948632220325052726580762836921347547009181872110902505211458973614236732042726699587978424127901907182020257087847750719296238017166129758861854654756627872669091552710152427777405601975182572337227839805816900792467301125588961141521938150329381892598020399344750672417092966753087505779894976529918919769545865654863233662264104024207766366722427513351283483696416579199620245894108167959689214049349253273103366482539738461575255314528338913112907123140613758821159463032285840818365811315804570659210520880365428096871232992983031920407087442594165866735319808788057130086208137293616831290648796387880596109374417906752769230083885618215776804842552014473248622256466946835473402946323571138992239222592878139126042044153207096369384481542539859298293250266219453906045920001351574056365659138461684257244393053743786404501100540882601666374019997293164288182903964114094041002042047408248921840925046697543242869756563341696317756498252073867446892481256070584441352751220092186525537259080072810703130294612707161005767787286140375852836470074496346286545349804589031275671670270750767700935761708782466923836085042812986363620542723675633866465955330085210875496086256613305806754988903074675589517060911789057319121241769580522121873431285989498969650626294160762121227283710212609507465337605922429265796240005796888995724782170378338468649437928069654408544311494525923562713949151378814519133747328101531725298816578643250895799308277481147229602997125134426185237095773921736809891835474076148933063159298565970238862807098117995983093987606132993386490035515957487102871063122451041696573363437538328769073813105489543613867986038050320980060231861514622315413841754280373090918596798952375392099726121400215332364992767177410339706847278248678567360225285847574173036283635075800627166332046163093595473072886338853179931816118189138952041473659010642755639688746015498426491894052405173493725448095505740725879825518594806210663980599618009427910347650232942223368972522320380935221414587854141752391083880607243893572928622236484013685397400814680408137193436164182964571683391241132004032869374422088019743926187215957404593886124817529253298701234528458989456614119576734421815457945816651157646597323363710087462878071955497332769148818685088241910608339450853739740189467906479257277241251932059755064461960872863464631887924956347563597393385523469192224635967268975142875374595738497099045946193663140403950283296841416426324067827790666536222813563413863752938898110215975663057389945975910628508539295063612853082616586851227817139678731606315702008197805309978979476267949428669049431564799413299099958339972897290479231166801235805932638470384347651062855792463042696006408680220862109224600885407131395682832472634108223843774877084448545050704490366333746086661641112299287417816860577801215647654693822058498071151046968676680606142669793049858145801025974818991313335182637923156402477287963281607922164694324513785213546392724458893999855981247464170272228139298163285794266768070661243825632447895510741709696120644809937966755666707907605263650917543175682967558010544798144400766888071217323592730573589408212219351409434619106453988391435240135878010008488700481789541562159940122141804016401315380468176952161227015606137323188568929551547685153848244896564481805338676170992311264448774813763418589976176520664503477876306120685028444040142415282662872198923564377121930646200526597172734734595092158550419812399063658506546236107431960439428788982429084265418342030933240075753216509902482871320780422762749030589565760797976034773951231034766736866911709439008470423469991269050874464251356251750912953493783365447426804774061789164973511539960029472321052350865591514968720551342649183241075141128804939263063766302218130669024104384624588789262054685876177525236161451159459986239797109286650329939322343192136364123709675806397787290697510245784736843270456977893976417350404059718733158367521135714681445938255354239345127073818954857292580132348619659984068410690863503767518516649526252234650874866332527481798815971944208401667438667109980349502177888147893515490316179004711129572655769255651385185477656619712956081727723223877504460497439689469060149124325113868736966721310711843635153391197471750579674557066543893976848778582452168259816198070744324086877137251717791808761272666960835826650307399462437013397434762813182903416269740621453592845173131254098252964824852574001545668720371671651893171026572625095001884814107002440670270560145071956939145352382791219864718219437317087850900488406838499919594193619151652069129181258439500740352434145212771613427259987800310546235040282771925743198459696928579632110724881570103796706979023721935312928011861197549619529237695571515576776327486027614561125192266468006965913868593731822599731757805026304886524256353956738844392085628141956570094186807788913137396824849379185064935273670908791050243001898709782440904721191906523250637468284404644915681409711260008902379916237490208943453919825808777621618765833408354819010813176470351207803880435672681713192172549163093814637548465532494227102495078400390630663067195093276888346592499813959670386858060800410291525727072623067884717661285975559846664252392778942061857444971923571909897151019503538959111263021998077787722450368930548857977521424988803408158246824960936499103738393301571088702619448581349513681210548404844904175858690976977237719316542052916029769189446208607423088330819400513943698608021392907236145761642147683429829648559961913243131819587333677583476791498916531757391689759159199472320473712402709809576958152781185314903049911685465366353654845763779147150753098659046242337122538992278896181393418048577872953591335782094604309059673488922101149971984661202841506564621543450607274738792645992669942704069925800226723829357690606147428352109308395752368664904692589712286143240859446586038062287205356122266395399977367930665818628078887723292388662068847858718230629979526961086116456345492723604440381456841367401372792867165280079365382868082888920080855342793315299938831898422005280996571367993860034246529144207709208754977643664774315222342866562682236676884693441159731349991445370743427542478872053922866730417939988188728329531919805553860831041233384695207655869673850567835631435605993400295477122540439793254326479756735418247361247795003690105200452705871715431752870200866755868818927672071011236350436365525800125006275166799082287657816376106749948685004532024494757800227179321387419419234316750438793467207200353757577207599967977254363739970346943167079262210484472332713260827723904755167137290969971663075115973807058625469588698558437396891002472979999723522868486462541198303735241707095861873726634957497041623978580605093433818827315778737810597266148920783070502338431739645251818088685813998140574830895454403342496570063323404024952495856528344236075864617511557252555975571042924835916771090508088817477296613649933844979554525362535526907368790797742197507467882307466828093522413787657206160175712123356296075646696049604282085726626074086567987908441798599430438056961892470050991174398165480560348615649126166995550477965356451325700726353441822861320073971903566533457314015680309344217859186210529159853381826787913142809790522307832676830335589796860410773378610247898040375820593070260704664072522480430153137189623826446268487542345556045709411607670808849221125880871587726570241851210268912762892550027067765216200817303820479694686185112353034025227943564444513482849331553400935202277327120053962627770145281701085730658746376029531430180603771124982241046797772707296802884157546597277150654300249156849293418583798058504887188601011503284651429346193957749022726361344851457877430792994835432726016183443198035842479551869894633918820342462612322753116222762765858646443952206104657727534170929162012155299331637507918307599631300751421400219676594596071637635154746903999283830640367626464675002989130645698587433850415449641639284259882414519014578887447219550572922724807053672468867280606987057090265738348346573982761205431348963850565363565492263689799199589797976283191859457169702731401179560656492507765019754411469444216305827529399404029473514221678954141525320131440815368182210140819724075443341010001023606942581684335649940104263418236756336571878961896910100934933596304477541566233434318209904257921002899221704707617350844848650046102104171443093399762918628980659805574806327107429378158571274943542864369993745011947795134127719614809076593221859669893705463836310826412080363063141618328686266971109091641575395168460205720438795582825618195492604426591614874495483991291372073908770267533644165498742403162303581535590221711482205104830250263641153484866360114161686287724666631565774905071931651142980015102838786357389333949444845513919542172377938370410879965001443501766262105596171370831241397219734580544210119046718337212394938441940598847716663601997658494144682743223993863698432190998270484675211202426058678147017902314126214875560055402564582556143721065203327016594390440970496186749813521484763468648707272272810519789247854735217263825489987048356268383267403543362121051345949213394708562579923459014288823476570319058906132332120553885015257102438532124782966142918296970075035852161253848642138241477484188535568536182540884853860531652098688393916366431816111343693620333853860208773879163084929137183159404172482133904014706156633995868960032051148278122726634095841358174391480361688817360672292458729487255770591561087028417391879684077276911738257248013362423302877489206950725643098125861315485000413026246500943508894645828510468090879070942924756832948944386511535992657376360428198697935293109252163412467500585837314238557261502762874241882647744251955259877867025860098255778035678404996898712316332150867348847974413997758776105667437105753063673783430447197661612552597638944580986937278247480094573545742619404236200527214403987771727676890433538498398640458391259254856513998033352373181110518901063700206585624121161916546170656744672344077220027938124795336472054020004379536830826852285898300422179720020253063106715676744033663757100040420157103913064993886669557238837203670832692878264272739043603002469899563428792890110960084272870375775904851443139243984477028818368427174288393103052703036700173328309194879245642104701289550545026794233167560125045830787064487446835841513371315171502020002521814287677835164654865882593290173315246498495753292857851216651232152937713701997030401027372927588649989009554393728416951150926633801762043895788415134278987689016170848679787608135502093506964455786572269113775952415863825561379460555635194702417575439789717223875871913589498208127826788206545891408564310720595658234913607953090109948454395286686196787087187904401611356746337510148205011077118364823910634784946682068707747937134221294619343085000441531434009892733590808778885767422898108895390806157479984631498856656641096231687108271753719169200658105425508643256926102280944070488026720177885948534516752607796882870358576314216702065458796638315486433613997377977662568249889649343323581095932763382604256267769260358442562527298548711486732351592897386444299234708188123259080055995493350201697203569760434241214601217204582081094072939862024814687200802845885664681462673534850576638990434361956399018132506367207565220708884109418763391361360262003198225557293885936044649017559688357785652289925932997497890252254513269957742769704292032643802046124848375635278223824714119661695233788247354170483973143869447810323560963379335854094357953963788781994967748202652149134377836887560604456907848225281574384219634451967590482253433245349099075455328564079072087229314115871233218787202737461546492642357549477822554075833864346223593094698129493555914931535448054986032743319161331529213969910381512322950830277136256809529140911176190583635316653195531655025493987244395613029739544090952531761171301500211051695565494296791132241838184931263092091431532491694238016296454250423464251088324637316449618076510397320907216454395561355289659254506669907357254315375052802929878636988929684673037601093260463599508555895146316387668157288400703010421595847772489600566897771367342446362657537137835150613202688588157805774943768752691049632440019851473790178545849671414849175843350542871316980622186003792324604022419962043916289318330942445501660908517078537626108971230974743045801322145543878632038956120464440328292069430406315006609284346445933696928278700958627415470839957811669557380543981382020636713377867816664712786735959079631775883742897175736071400442422446164948892504683274713494520841561539245505164029870751153596076474934461135945694408140835275351492985290567756957917856606795469649030602957730383359723382218100640116070616439110794397351929117488069299932968531418538394101593715497253029944250449463428713410497063319359626913464594575345761104378770716322675381670205282028036403536538821183185008463353774862963274678152423763996151276296591455867213677930689669170489998361662157696380912585191894803064071481958527650347827073859231234175480387067201330063252830365272742719181164961105326743723878608900477417216629692852204288084970662094871780230956957539292773796300444912132232443608810177657771668481604383510226822908733453890436385905803323445758737436246606198995352394857260501543542867883651608732748956406876751894992937187412328334926158587188381538065852504658766692865193932535670436587553414611032781338917347382419258727857647620169185473547640854677182139164951934387028954620842921103020033298535855604386518098582195527018513252774627787517547987046759365104150636521049255140551235856541699445907566153653564470540415398314217087728892055538761444354922115992722849462808025440184375312955888358021717188137075528879784892671033126300342545197224597149590403267548164109264013815807429473664990042748450311256163393315804309461639910110549625610401029403581514598810872372961436170485148490872788448751926803535353137957677554561710951071247904801674755107918801710787047066814852134542285182055130771079841454978845998320226401068360152057889375192004303418703399691655807455769460331144800765026484031014888513725729745699402092398285428704347046673664246187323418831852406895237141295482548082748338386754816354385373367398773078843093698561715485499641012163501601527734503149397145458197321450130462382741445185710025844843915027592901700768446478066521375002454433544573062468163757998556276045707141685553847053423790604202454683917280951668816680425004508448983137278715471832223792041857380652621420237807031903215513348823282051322437727926096627501359329606295180298951595605850511483880297027621716092858973851344677239647856511369866428949920206060161680922405309856714603306435579384404908905593679024280583451193078080710849695105565274154221696452062006219596614833267906558078873160580233595209094454282504557765868521456738710443713818062057517180059304323127637375671149643493791146094856887218204442451644382847593614584781312506627697639204938715490413861682765440349676799509521296729954977078012028926972252695311581415009450948307446808991530024371755458574661357895011998270214798266434119431024772969510817062779969706819987001806963206904664282322789658615461401746905559005082986462186566962896763955631144376469252525810390468221770538934474120542654100347221100215771182973540238054874911147660057681669312660717691794084464822004617721718296627188145186602540813738161265242064912619403942595019987043131078844004227595301925014035355990419705546129113568995870036076789684856982143937651706240908494901370044392694166594762898236218936324376530473929643330215633661915721476530166800557260857343466253638508172999435721363867847623041372878311792245447932578819967266358210069037104126624103009703144787469933845892533243509478452104150238881504353719023446715375543828541883422524519353743283703490674266060559271166228936181221080724581015253644502738548773556738900791133003302647320077405899982643683636537591268170338831982915674365193360357036745128016970722941307040237867140068797598584063811251745336948217529935608131864426631209941198074047462983122993377988385619160369822894363334169856843463437431133140420110242440710154448180130539810473983003613575385340787824526970179653857078802352644711175628320214340313966117066287932142298132691366213619662058777528258098579747433218914896668949667889069415571315406344907357501376687943096867377322460197304139369331153685805685743062264711453470504931733051456182926470208731729684194618241848920702722666372407404478065028474662335455112824244418460270060356354361509993108603733831205583541503902167569488131145147651552256037261008936828191051244378478945260817659936543319603090019144885767963463021587896260286275540533462396273124957389740134661836536798374976651041374707148248036915216841803865768803406235941928227644500753828382098398999593702644741186746017978203682315891190149124943400145557511173190723649076869595888057330428541482157743982442288605602311447305120101364327996183312436349186433265763990842565053392983207429338417586123829898412997347877095554472499445899724555526102527127289471824752544059013459972218236447718637207437413189632344596806185679866487123852977409240234048540572350947096781176869380896879840379578544811394178142909867259956203413905541579334592050462326326603346953741958607822893702403992967574639408952431033553753468072958066735518604332604251442528954713337129831324555134833228616579805781924735616392419409993680115751025509661207121726464174589934094688918694640684497965640266980533346765075721928075832958624423712836555179839176515750017536292457399265788214649423112367351458088809610816384154288367548287232140569010377475737564761588295491572354926320591409109427463012220103831544918738479194027637661146429236723156727999466797055439334438865230929361691244608149776739281332072020521118415533578491879689030826869189313944347643049299353976707375769806007221240454947225542424942011317491078721474403288508880712568824959917724016724428990294477292904858448022370465827422597694873866166551086271147573924888236607063439213171643767666624580127144720693416896791547232776117822965441421131896590300297727800605731430230467609506567985482712746767574109163963786335445065256548802237545520005403598903884535476410465982123981997346439727765077155888261951081525873335141246638093907954032066356855171522583161645023507942036480083150739741436200813363957301177192352199096992156593870774878414614288720214984672538028081814521520779296277802609353080303761312203481810232717786257778860825617162274909234538397048555297180915351402520767460497516946901775070987093061869640995909379190382150172514300542025861401769678122621502009780067668825483630540879024423022502956910466260724047398159271757590777214865950533534802796815763898350079807480044194648284417786191825064394502148656480606282813558579745997040363921384962874928012118055542193117169655412974715686391943703040109615740042266562676501303988778566051956199783875588221714060710231704401524097830106693704153949678989833552581332970220007029094007552348992777649534090786390854377185999228819177335128676406899839735907108806999208491628557754035506282746578592138204367636235389094293293730312505007128869022192538726899240391589414445534501460659294555484840682075483165757966040609061080743742711300172057370351605750527884832511181654166701483888574141966153561066968493379140887243589589801721388235843336515199994158613195368688268733170111450700838438801746443766023975703347125571038021077074136769758541522817119753157587271562091616314592709439272874543790424252911781372094900034256753316949508490405427418213981835748466629784793810341550620287303044574265467200429262805210542838519883625282726963311082143407643208395285278050729762567716002700535072355020919202048147496271174724732052735888009415383363241253584881779622683020970272772058262198389334365850463733329234897341782861499363607845587281087613542592065004428151840079664639387958332417227905078967567014462644988750413962657728156385814400922388253527861282402767506637969035706429482255366058974514827711418167900942243075396259011269770128715193992044212462266670080879046325427786466365724956899220874515786799170023845324411306427208174871139918611572543338817505243357049716801634988049967302898872738736129518782054436541428851487926302456956606295954636565821605513797291474051513298000672226012343733111320605701430343173929915810610903741829378675016290446861236345614120143866182169275150297075874442244407784498178899431860884302366544004687963603709176417966624167789613874679046937361601801911255695906485194315084491446248930659891777676544484162596339277944235305081313403971078417374125294435432650915632931886113513996794037906898548070840606666654870559690319934048253784076184868837577874360524432915937599774401103023003314949580628611023290019876115100533339702511079075527828005143241431458311095866578467628287795978264187284898138327286309375264638160227339248302609991798466708514323567890578320210578466172750077473321809447673581296343553219746526796720390201686515287828312378436578101831837729658624511188057533753169727041761802929063130876113856459497550266610605029662198558437833782958029132775097085718942947372270861853129582416439013890914710043189870457237291971226967807712618294789546228626028261600019941293957114302007931369960136216478041657613808430921927610963923515775990992543635857161882195254734205149680121757087683351421935466305930793042252704082338994968572500489549695466380424429056551775011629702937027769545536092695472007107203629862055693553646959490783628260231978649920267483030553935836972940651343445894737246226310526738801441238764869110772528644653253191651832284046909479503304227836457034456340678610778874291690009190637415119587333980376114545088061368259106981534907505699302398885146477003988434625099842158498679376719245603954084953361128259259365464390601877131707544727745777794637369696592141355341108978743795601497685972973068881141093185330953462888911577036807880422403876542246935690059776379947478998481342751358517281150958161103438487417146602888492260477539023815952063056932684568813396013521360991559419594430592559432799831289562335579518848651009179372349722282553666557481037492249982349291826494280079408912955020008047854917996714738290217338841250105302274188469321353703846635092279122577103154315871987750912785784606525439062046922621268053073302170578796181397624538127473721404913476909918458292786717925026592697963947232595793467623017302080605923966858617278531997738347349381900644958650597993571012174551018118769283079445197879784795417354608846931679989571031576779705558253308999210322959714347642545579455715458048561807344885142788393884358888769780362304208242742989420250624684569192084655676439332821361827418062494026280296315006631386500457621490441266815867169318609908502541634438948585869071980062786149696437225672009425052275260213318956387867266525530350329951308437956207580656925652113277527633801418014344322579803314915414314533070565132469949793787321592751230454400118048817445402748093136578347344530352391222822161522819910522669111232273873677020743899518821981232462493803498345135608996482590825017241512595364026810401681462546989481391437839013110774648772895866378346259025159085594253836454414208857340907823589919479052878802500491024578457771000620831961800141333703760587664862012239425749334058106762486110558363271616422069503657782123608108089736452520713424068988095181438402349391693553032093079960227468843956276304571690202252177465106843720425177696776013851391177191242771227856264714015717145178737615701987216663418828830027844657383797021961905130791927423892991090699958888822338377538688575958257814130162714001245649176121598787971366222682192868798229634590692290973810252184334607921424366037396831378780353671425256480578024842343470501620604110902946894518755180435878869016837375943218146435907783263166757387322806573064240102615130961315180814682748493224451727838064834680774867636575922620917408784850666066209250922850559566135184602950615525024649434996556444946594121231143502774088843139989024218960172843776749760726933225306794625357903208956515724440329505637606725005074061739456019398778453797815731396062143747586197573732184365567969363407245443432178973808122697244640038951888786239051939424057516731152653160687518934671446595798321534974685946389616547076564661284698183434117219193509256209232286913645078851417231241060680055004377425420089938355522001977422639108652009041702679284631010762457135255966590824824001901406064273813099754817083882188867842266160728787277661793529960417830304271782327806730700753002294178873631163423128495404096727182661908766523797770547999639236966597103916234778053961510682979707150567186040866894153153067354707164793662643324486922803588642267392854047844252322636409975734080562746803740363453841845855581904116008436721333744216104066091078624637566820045420659156415444308511456225288192144272214298619736338953546646120702110637693477435708512081267276806220953463265631844162463168362386408518141679156437967561193593963223048102697762907345885422023796280117391165866740024355422100205364574091024411421180117092518247876870041876611724846446893236463881535607492840440850970780611018767409663758538595242878154149789749957605720534911575490688294931641474682553381330575201711122097919263048370979468155889566692059378756564869948761709275250688896330842589222553188563394251735371294716457637418568491787708762322095887247593826210540186396347679478494650754048929732132405985953267313470836109896995112490278391908866644324819229236196435740093077765935517913750962393331807818371788439781439815537660800241861338843639436726170181879017800541854136227595955091118728065523053216949714526454590774214793575886823983154140246753533061306571898423358838108420481365577946201309514371982371399680516445928284018811420836295754413911515603835085628288668937032201376170838285280805510345914728890923909202655729453045049024892111969638426795912184736526445273832797326149849943707032309610090974730478605936652977356455636500847364410837631891623457493949526030489833309065741293234097793874876336317186051873985161213463569065727636270687448652872151408748317835183834460337600341261596787129296358737228956721422154432044244213156021310056674179648405370149744074603776037504626622071626695594725319218825302635480402121108423438892168335894931781592249838862259507422416514843374885854135403152167935846418107447675430844284721816262814432482536761517569882994079068136199306326065859862258303325653072767333440888700191179234400499290890726128522888035347080142766201090114936839362009489230541880077931852367108053014891523641804839291056203346853523099101814713355514349776019902202236716424873848954481745539115047541503977038256715366489390758298386623219460420326740093511272217281720250394116558263249020220345529560467350723453513087260965240717657409224499770601235419693748789947748323457111357899515823513832662983446478618007314987222009997134394502045082455539754005970203616815826960206717812989736392010634261363640623663172348283648938069075067897967408444259368036527651965205910394240295662704342850522411027788824904277387044974073894147007703071278694843838061573515453638579170566340375703216377940389830803404880561152107113839608666805472982575678494052086383082979613789775698654080740907679628142318593049216062770187072360118294253490395705739033965064361735321301540936489398023573936108794782845703072141612876378852939132480301934919711357897503718467975785179610382739034230264875519855760809778717852086405785974422376271540838122670245653539900532500387925724894920299655093151330402536482033694668951150021705964223714867908214470244719715370483487528938455895271912494946035933486610014927909703470654223836071113060108285857033538033602704713265548455233348558645139578526272485811682976720933605625990992658316781803434700942850867465810347112299048205290635699378904130283427175716569733129968937271913033715704146787514047610699938121268924814659031428807559728654767959919221160273017266764877600722347647290444816602483574568990136580408801607655361239700732246515107115466331546896841991741885031264023558514669197496226673435250564115256993101324403416120425059740604999489301912350509880794077642385251156084501641465532976197153778323069377535096474212239846550805399559897308717054173507381443472629269270813863401797661537085478330133784598676467046579172625453060604685752659294363352735915580195148127861776834141944294803702890274927355910300655458211793517185516672110084851140415206229472193708979990108997224095190690116558858585850512840374324499694830073207139146378934004885236994078085769597598330982980755048925596685822800440249673518609922906877986667266465415180533168407693937895826819198162127734982201057957011498485367958715430222530065869528751654629875310759820910678573913866402795263720339507123554811179302080010961699178568754647721244709825373608992072825389839593432449878988037458175008324456965457863919117434387287315537841248676014204903463058974889373899678522628664111672940991988907872177708033937087759506952617374620309153671621320433321790287974087151069776785903156759773361558040386541571214724147534572017896315971620178689296609585833612488251592645763907414828424704499875581343587045792208126022565642624743349269080224629957947905708213979662182603554049753765399159302482842896445530250775926753614063028991190092367065693227720952714610133309583109894893305848273750380191528053796891673715814904567218346238349538727967325338136147730882173040393911694882851283229160866930691050333420326815998206570931241689820294746247614172418253281793370974686677346496858961964266809392217647787969850840395491033041539382895172744124463879213007737316233429118387968988349875973594865434334840441582027460602686489168269490776683434924851780333084864271825046371206150510307359743126845635539985861860838909296637680190469036925146413445005616589311553473218919695148254250376174378416179076940272289522854071943870863771665941665923013284928792596556743498228926358324707831954408469365658979638774925157230406385635559435424804475919120376825020145730447531604078958542953432897050627013399281179125528841116526940367566278153327536576366825601633420510139158866003049026297004233759328909017623770226843430589324799749652765327428106395903018777645372435283666281798577391637453310986981871607950004363520495923491147257168866470841745187891219729484636619627560633181432060617614149498919570225389200608304390614142159149221373870167056276415600424628063632912673263249071182123628545636944505274361231171895448700137290275070087400359613277837783266931229432397565748358897409353494417899464441248232624168262160543706832176173875985453178116254284238875120667371350572037840203488565249115909865164005861228739569984362285228393977973102761023718892390306238995027672910286459586669311342801527580036999555863011207642196837004177930038778551254667345319358598267238215585155715328977170985591236235809158834165356087467090187810043685715171564099115550372015389632393346630741009352298153602439086221069946995398476980346543132542553216474974963454855328539112726129633322575417739953351241170766541770401609362991915108266421907608368380887903414800359291502015453733484629335702726305475328959627763668140448300824267923483154144245117765939841210399886256363911264763110443113079035373851851047741342374836239372522655440724486735545680107871959129206425043542334178356375771946721535294627033327593148171668191636508163202988571804159499030586744442547708337300207464710443192418403223961957539937412622878036811497819490844080478912562710192206161955122012843476258312233158196876409086922742025829361330596527678031290377880839493544025592216928286232665932272959408311480354749078895251725545443172571510235903259190193417117952531219406175717239503271447674056040397544491558859100050323472927914546197467543200982613830160528649035625046887793819040061947101599065726709387014037475948951356024518640014133596290201841711505614510024157050195498320093034449411740198848740362415228897638693938076640143135340590662728716880807339681041657770902945219003926780549312197619970525571090552958120789127729386870884053535905889201988764285005419573655392688430820164039701456813001783445830256358509331020613471967275740798718226863561475855787780012043564177994768036205955234654309366874702802127306994330009891373460009096629439266574041359140200310050940717175018782853999299744181896744286409639857821564883718147094019098693622976570743220787574061663677558162205066702765181321785314721247774273727720988248634630846405589538419088814115287105008731363489842909625625836885019871354863449751431807244253009493848569251703157325933496168054008763398850732840277283519190891239358106588049410480099896248761720175688162250606446998117293095262832672634424440967882810213960920646151929934732660204154527869924835320545131942631639704623157361093846127425687771584457785135037569947124120649514022092170287321960786073963016376202009849758158320276083590084126758858818219358404687760376845602819348457469742487276670470222070604614907185426709585071830680420518275024683565975667060984120543443308299634722005420878008400122022718853822276909468180649485285824289040598627168474484374317061998598716853230336552542931891739087551957370632793106080425321805165602538334583132800455678312478354852228181965694250851159544508836023643916317959809921198766099869097773803029879130162117597442955642261854276891805473888314475751690562313307547197188632063215401569395311312223620755133261269156731301909808494262167870718006657359532680773131293656130766690398374685521606417928042766908444917162118524516096720938069463999479924368479225808673340360162713740913929950256792866038660659742583303864014614765495570070188078178621308146885997966173066941280797900386558286292091717347659492794447977124513807223948455807740717066269502712174306292662303797073912132826987762712680812767412163781941106502770400158404251608580902638495715745799984090374489247739495105427115996958849398907982210369985958778007061369280929881203623710701935621954823950918588055845308080096965243128408371067872523113904435075258340958735720510758673266175370545876356361725409971043771315950262630374539677363016465647435591658648331797206928874503883971966358422804464542763091903174596720504581112257596507900644192797101520137925804439645316904409498466934897825444650832648310720861009818561630957523156268353244553140595770708594945014717697769039535597199381050648024822581699918942170116845933680598467003791459831988372781888011578422330671202549135180973730671237916282052066801683545434942832167096663149020669226279496445376195195291628892412636658483371356277204989379853703714416989624638134176941246137229813001295364815044108090898361168243949790491005244344267725186889097548973537609213765917248488484247233086953604085738753485438741275978670560569455322244565014857029206341862134559096458672826768358561197866311967138270124312585592391913775704849845744186442550170220614182632047141860835740684550055610318317406615080125392480786129876739609484658041465718493925268958449363354142916320149749926942746408781943153262589341579007594415336595647432919725515535872755808653047770469640949375229724415412520123458741187604701623369315435618580872818446902905262476110881904495925674975490309398071166101024586291413155925149837656841963483586589436324187296684805917680839121196049304584419043461543590220519913759924023068012800692476006426239866076227677033238933746220164094958987835495710033689284152853871252130039802581809036778999936549813797291264320832626392453139226006912831731565034860471611701472975876285174562049026325303544144511196857287554504472334336943882642402869346282600020378217293307496658554812837755794549845567102469748362312932082290989941439158903786333503663619128498126121980938340093581992362997984289501953414491563896533557845855123315893738400300226665632997306054530760620603976501566436017823190070987449480525932119923884224673523325552705984451314076700842052927740402397059947371863374932004836525769651479410608716449008210578025754701270212914863735540071418802160290594598161353768933775241834175938286309928502814757648159561108846747093690464732391722555601690053974545588422556922057507082347243904555844936205052032836336131312993791948134955340015716108670676792743978540861754123459559319345689606132596783059536060015318959633697871456576449193411859906458957093285982395645067079882985759808054440254817423959114105411210112141682711930459463189264408552011338730632095322222005852618827450655918110717643535277093461143606213573686704156175154605180257924219676093152724620194872948711299284107412492935673843373993162821400337060439627238953196736174476223179081773526166522594098523971483010467223776978479756814290455058565763510929636245444043726441726173343623853993647340203484445834860595944615450753414731072999838189051504709882438790901826602344572882341237100705044127333901279923246907156728983706521251707257920810461264760638227092346323903866220814367583765191547234387256876046948624619018737092444027370832815382629284347487974540343542314449569108765019201818972454521023817619448284013967503499937579923225977712836548492258349315957190673602422538955666535069171423577144453747584554827391708948978263708416064121350805093717888540720226234839406286062601010825452331761429112135297186684370395816052908877036179044417497353864291869062569134310005041912637281954178239771897427457675304785720202289704222672157701851200402617492251082901002441929292583166924571715231134570679191420089315109313177968856205157530078544803863090686994802742141966827234472776771824354773957036761539498400577552858290599502711410844839468898701182027333992755712834070756468258405679977738724442130451501077585883441964027739939451896803053781188770788098105970541201535254473411982733657544847505732818486413861178597261288424863971861952343655535024726092100395145241646115380909114880964582349226023210631272311559850925586290545014353346002754451395522267668553479871098867562376263532939326823160112560032097101982032534852688141685575474099145902912739730245814793531730133899179915938879366233886386155910144952759945784929684654982575093292705414840848109360754442826259551902097883932464320220622148212004913448864797716148735435882811585036622442661364196229998603127213401242146151490324789395825945623265548080171891665688168941464957157912448411548277343860792968168631673464604554648062617114193885347464148522040969968618475203121345884578953031337522907553645630037295452234621156892517504850112230373475565614059670828025487174498371950383310404528644408889907192126268748768901602930925618177883230103786476024030955111640135031535213833519904268578434119166383586864253704521206289056047814152551107249636432215528701678019190689453281448392861937417209722698414350558096263305010112777536484235242539044244277218059741419933263959082959339957842086606226853660153429610144845361098212901244857338997510005568779361878619403082455754522709691280005443006716152944040631182911400421026360648112082089814052682758450648267594785278249503451610085207311436012542171669288219796299403391279080032375769548960921851385808089134724146236428565654625483032852013019876166664699010642350921737303984499017509964362718726978788265975845833535525133290092549785062684065237005251617906160799954465375942561729335432502079743767380861118588773546414922618414329194570373315512015278863133637128725297637418017965615754753281193689617800705392644688382398031643484014499040294822497775068389692102487334012896965919072875785403424145520455402427238508553774123920493494187050683464100437373274751865011885564387674929293749691709302241322405086295625105821844252756798956003727751020682745581272021404986807718333614249249540065029043163547123285140012165458997309442350407948939960977138829469400450764001374173038958738702069560881386512397753404075075085592832794543318974889675363275970833620508852762411827629865130030973865947382330870249794886536101043761548714360589713938081381484088561797060877539194600123698940442949951469082793595150678286248028395470737392029128382072170193174564319685988799137612738135852684279247334672844873691074276490355027225045712113946099151660637950198036159546998970941631102989098424947419970429303394303969267216290449779168059076153584075274673006884422653155750562428434455154838264306829618052772427970796147008171967231657722319037263220028881374654003071517073948394581963183997918874286465063122355419048497774722908973758142285900977106930355840373683311874459186728755695870047361414232712959289828977609054325771864486029073663401548480126706159246125875555607532405693857401782143537335541882458753341144379626389137596391784847926491379121264240427195035215895523678439448112236239062257849214927298179492858950515006494709565197227591491122860785269591371186252064676712958815470373734016022982393626702301508150448077688312948535188752499251137301391241832702262054502630911423733245140844433469189504391073891995817807323900290763230540001026982387104209043064003776695217899160565220924876069745538021724388331843200887954387490344028076832853734969040754022627467550955788122345191394636815318701100455217777864257832727289953034160772488876223148263794673713219250154547445333734137915427194873592489869720578427553706099020946950855449682175059857795835332986767634043027371432798368331515674359545755776150511149457224451318283317543794963337418066320797996548727425996109395811890324190822699902346093135555205357352349034086599765153850980138663286386463376684825740963923935266207700084273220086966346738506087741346901299418253770629458620728906490385658652478924145895475260776531395883836093155466142845205814750695451858262973574178094038166628234500188284325104544393948519729503929674525263641277196276927062092715801667467278600402773356697885753173181356309590060872093307219320391129234817172013459837194486273548045475608844639086599178550606435089403106538356057223869087073716435988676310775533712286099837864452208896843038044559303984021102381518905681294389353034200721542840072166026725504560696841307402423179564551887456308307368228338230083814997687562242067915159070224289454733629144783500329065478151238066937450313760726333123639916340499597088610488627870821892385148199393629702236051197433330886374749846498512807541899672409852332686186558039622619400573927911148732729832785985897840369770241132517877722944951807000280868102464524657355390432685755365732088591345658134329608918070983703002970266995810819558467668997989422343721638436731308682862281777222291814380986311170956451724147828518251043750154832532491095535624904161433714628802812355030192467579720614654623369725464812202050463607197621587194018940615828599007901150402491649285270280431030993542184788346983478076689856447442063997116062195567707864793981314142000631718373852465804688683426590760454569850644818323916220641887577983361682463101363331279394011426216073259359169031690700132869582716044072333050571183343961789945471691311815293834118455973830385949487175331419107552316311736151311050822123347767366577829375332344457164017111216565050119079030335252239230459183466426778364396258977470341019180594583164788101575487002474311365657266396568496935204609491876453392659624988966812852870115489113824017766470392847766960824215912001179269573703370683630995930547353795551129241330989585700293002302140525044246430998433712957040964113973084397935244068180957900795096903282785458193588311706693524589653156910797705079323899623499646793339528028826748723169304284000787714444194728810586412887976185019170055504129986499962628773953866228391342319755692372343089357409865914607796111140898848152075405215833196266762867475985074263918580683720007689070465396660093271067009613998929279290696892188551649762100409737991217957078317388282440271198035849093258553862333549804909910510851900072655130021959862506312401389296860346928385560728842106188386576811162030719637925733337758296683431918994175715264534152215384596252487661823049442787491471665360232950580313822291491211714436582435451093436511557628951632150874071453407183157391466590690477039020854674190047125859833939335656582827650987925925564315801557521015404884320369197242376158791019232036583597732876683437499937162810687072910871903745379312155355972666638251463385289207162196715607961669140996060858865001426200462474017883532650836603668287808226893777891990768562262521394507385382433082640970604811006298326650585816478526912068381717490388523222268262642064168931098181764878874772101285007250466487157028078490848950796141005675557516804959498121706472554313894039952178189907967918891461817817514811257639745449250234085882078481459227724697934300826964010894029212375023470586208585021562488694992902730076296564778312078934999999458361131257399068089870974620137555437729848656520386821709959245890405694576016124037754754876174753286939780238576232887356068546705925835675101172034024980354230351425331982759191704305744275847753452865695049216621296382330015804235286739875042114317760428372481568854210106819700258448271474583561444673474049865478341240339972181469889055696345293489203039114741846282982353815036466406450135452732695739150468545864189412282601017620863201489261713640404367296423958547244126515297160439135992929100675485360217029228786125170432969236758280510881195466790480951709437018226030076347224838926806255418362496127252369430006744164163051628730754126970013598485263046507825908303825396293080697169699593491623748681052187955396027846959808212739772151874235879537790741302171691963836764837068520600335463764437142039680447232281516474337473549523587072582897247189456801275992452068949612576768290332452361012144119874422809524080080972277313310915658869818145570276071352531207524015902817047239690443623245536261363747451160301036205207760320888892899783378205408705172284401028841817728447636610286498318377250145238354673267192523216323121403732278260816157462695939166480664127644191318524639822087259500800105540965731838040987880540016065595794997770025229195337932048182989985673146087853246450688499641471130751850585945793482754985093149825699556548341135857923341285175760049019768945834816481125280711040613460597957862913361739709306031612331551243593908600189604551504831880014494323602350670739324621092351046035686702013931787358922540229863889227989228879431780199669676053126623429650312046625500276534971340936622851540946206734107675620442741989822706667715978186646794701120052052298486637617368280477991697976514453626583244551991233470416648911250615684803893041237528373719249270669297092854719348265200614596697044633879222700726352392995623333998173174065324769878001093538052784691469596879377924550354067673483411832670479149170123495845316985234906282136871910316963077920556662575797449134906947754298355916899413716028770684832849654687280213303933348233519995095134588644562099441173503871042089481710110681241440738185160987152961926128075718677746359546690560224885976976193479010620692778176705991656595138583777913694200455242046762955736762817839368974587884660513332675421486758407669504570836021110691974582423685878051630519030660845108559598166974871429021976943174665358956516952445960706236225908507177330914563920328157751340924817377795684422770376133325326177200504474126618952654476455971147255515694638420774595614830453972743945870596992750577170215875666410328030472059485434095595386282170896966705046464284110352818938396930878468561855705379139350332296170976302548510048754761710052976729466673091038017775991436761434711484816674678690942794882198937870511033849610868782626645768511507606779326754347655424489892628801487663419136525197571801329169009709453731582396466263276887239390325093289252182042007500372192164024965584170125472348816328084724309172733493978176829050202661884275640790980220121220455902661975088700282894850095535643978866468595816590434495505119432401204314582261195173601230381159679194491267025868675233692808337982671507063779120133723500696033096593373955955106331325150457607349909216575331160661862250282765066138604905742804998349639156090193749173718016041260014798178904443267898402940232166575676801508383971449033325704483718568345182452089884934876827196498439044914868032237232245187505045082201072739295039197521747280020403613881364872217127205004080079966346327652127415572665351464379095506585239479940176025817307761713343710949938313729219296871565842988422455346753659549682854303407499821952030746253545365972403138989720992673999719035595276367968148390364101132914420745506656910093848965712752366310773682668139456378062351944894166803333011792395925553632137143237502100849237480722189515897162570155428241090164260694387817656082251628997624201815761897259255422598950335566621225911834526932588201298595776548279276127437329051403422088207376163756248860977695403272100064647525823415036135412336891616313311819243479418254455658176231562395972379916552017952566868557751041142348470075971273545536537879537584820141382601787779337010358300191364080967484179940285448770580429195991954466629521959802121675443960828968426367478208169329349673479948870944439156981159036879792032413100145731057003880279262659190951983754806089611846089886749971771546855013452461969964469457155123105006905510642448049132680065597976585335365904422226478337932526476830139724561253660655098650104140143729032923589650388368364002464673569010279970012381720179126622169266981617698496440191423159643572732343747115402268919179808003749948238567256292496931050240400394257058441355864613985398801442822814197684217819618193381087408954966762593244115404668106445857394088790108121688681552719037883016008748526515427605837628086321829390383042328221388336364815604041804142462668973139965676761332050510808595037579316915799660278489346571691026248590475121887433664211602389168111916551045997249582955661421338540713347019202084562479113448767952000258579174045547291048401799591387308965764285770207024522851438890082442933589283221710646379430111218630861320950975802409095696928396490998782402404050144472457249359436746464331331357536738593980335676396895859548628712739089541940372728830725880223501596332501654447502736776684139275791939229487840041573938631837818186551746518047023432963234564698304830810972383973845112593473228172970660464002843112481933835983572473793512037236937739764279751390238041875446088259844313560531017602758151687599082085762143546787399599742169241692996245823800553965260663253834272625478134561525748641233852489260605207486621505223831912980174231648460384348839996622781277746665251139045270463609856674460603402626318095251487347486191521794042023621960865336792859666822904061109652509157801146747746663327001107653857861105563782822156905247481891720098919331608983495079529789996071933902243971404573560553936291187121503984317134473801402669833475225459733918249370975666608317338744596823455543320363292538101453488046376068539512879247736014369563697834333672260278614665495550903859005992658173567511487792943839196962807814707130861525745474581405224681607246464515141795958991367307679011099489614578691647013701893267060406295885265676224706587105526684234730940268796743821454294913502450707702008950554922283954386320267196230440923260201804224942582636916076785480973596932367418131610610139570193917199373097284489822014762198340556627824686896002457198156250061626999942199649761256583186522483266278145766005259951990495261055138462698414417051285688416379494778257328005581355862722231634766069309983717286215769862693044190472572845352241024281813761617039055375494435509396983248600254053830990741677786589592459304207082942304198125248752964590963669663615510502624081606763933356689772614381331679033054683929329796637317920191476663713710722923377204525433507594015877335319357818930230435391926647075975910414617389575979729806537411607519863591322807036485917244207199356208558582129672861670761450399618526388255620440673383598681292442755994806259008768301005520932213989929695144493986504103482185452438096745969287405739952140898949598115891747504811967220201053052288538539368849545853432503454953521435143632569186438397885216987635724802806434753745632973581573703237909417009938778750809367637645298340299319811143263676638947631995303144437535277639015372959286462775514129855748408835500641887956624947360358113612768828489138477062932737700207722464698388015214925422082257866280412408583846017051923881558020987877246777018151482128941459637838721134013006935929026313410713412198041032494257196281321972743775960297159773728319018069906318613956394519594573991514120207710138368984316859063920467690291418393539550808122592509830017838737347288981391618289459347460204265845423583984066528277505954694736832657804938899097119397762462134268192819062564162531373676461391777161983988255189331891648619353137947791469779185883431308682787852673938844272914809836139363397844634153016005939370457809564335230663077499307700498650907260209930525289020745460031567678126528096749778889683658977193694647955244352785214922652772357111291550459133829547482864325187362068516098325881470959977835671385454137307689313685150714133467217435914367122055659799223503999642437613404297598282932184497052023850573367011135300615809496993192342052904023401107025587181644042126376037835629857510977565615328951995024057020747634375530755687075053692655198420060531127099063329391382272751075522726217726010310658575857813572197012381186859592828816055343952730239154126329500462482623458193927371232750647305145447400540904508228326682346158965820821346253961686554867402334028693257266472938845633613786307202021347098619399539321301111564995021064481886995686042777759267813627521561727476365679467070643240905044076135590131044959639317478860011306737210701522779303838323615197501258284070054324067601339449125464330746261029107841808628771622288545145301091911510412517488978984242520883015049331081765220538921171743776170397518413374152341477765898375821939833441015989609927005966683496574758413267264690316829663751820713033928419703328797285332109832699462365748499595612104865300430300346261955980987715681212140902973312907742599050697064025370997318438853931597788978942556576100010248952707005965386469130787851924988303496643334292504277659667135791141706602325931900932950296439586603862370483798028036748812374129029881396936463402671640433196826097478828276902052034356131542425570461005181004454264244892448510930454362157188716777135120329326244234126055326507781549417511900849909806203586276189867387730893509182051214146638523796474857264259377629585042755815632274921550572325765307635668200116780597322175323944295012934511116256048368194567504556163242879933113614487288186743554864134570229928745131085389365390679011146860791953952334947557404750611564708142873519330353958349712566028136722019427888619336722386760249263722865233938616300974261342164872983708579812959973731600876327125461875596589779585947070341058620494580763837423954571080707990475535083841778268792471165761895525981284520190430097116237643153841679147156338614751385290840412697892252143577600657781883587120603418314340909532369780594702090506455573129353737125784091703457779232687114722448649804128389733673362208801020767895008943949035215137200996113238283895207676513957082864115162700127125039118814667235834679701563445008814939696320546656668316320844374174558164552913597683160018148347268492721377467777206058774732184065590467214627728455691526793573955863347335914934808496491100334908785657647225650748643848924847039849953739815854055378647161845190690430212832037149244995698762084365876472403658579030801205610479583996787234109179898403488739117378714146986729216185515891086492476500121774682622749135241431670367299000831598586431547822504134279076082228199017976762224964792396358858555037484893043168754236187865502790115483448684058054702125734551410591524478671083737071816650688376733409037876132160662049141678639236207092318434236336413722337921212789398163964989334598881260154333960574453468989667369324429618997881739408505980784083792278353240691773289331218867661275137594419173706494755324242912546327087351426886231538125511330086517204112958496564233384557460972494775051945897408925303970421029083312751330110666940259858680068505905102015030790326366207087245320473963173803789159751153612171885142018877331323251054026461938796315566531808306105380752326037465579072370209045944092332145648751234538530059380879032499299641770927762464583541404577634422326969778321177489266591483362627253415635382593710812647808869335273043418030552868113825745145875744167860129689444483138121404298531251134315977308782260933414218673391796233155601250636039207559174111631626318450472758545571588424804743116217413993601008444339736147791463879016718733233114391576270906161500736699010078878670107658823932107250779208656895838303271930012009176904416703004571740889987372609133385234000793330556661184552037493234622995587689669353707187078456198429991366745836524625818492468023315004238140998251814243460309925231007422162596901926809781425701771315274348230861027621269599294710084968035581024159325544511477738707975442000257820651586246473231469778702838359011856178112435928426097114440629012352639855498574469259670392278628051007889909044518192207611694798630995537159175583397070291504318497763850649782256397000148822274270516381244968728469855378203304081606718292022274787259664652035624554789438569048240147403133046141892174813505899834858213868784194021317023340587099808215023921622563653499811618015301250222373584355432403686181905052691109136336240873129777661580227963848052646689793882142098104692649994034347610466645277734209333673323800466400988574323287189856404227524194501216342077847543418195907605756321607143107006833555388839417781366790181961417957140336102765705518811975399327151784544738797242112170702119717182390617076179491191189977040509451446434602517112892304331907528152561481711762772573496139333247398195541883055405851750293207530996695877189883389085910387429968501767895258621182566191739066201045428855348268871392611087807602829171064538796792320748164125976654478869811035147286050585892432455531277689061209601785304827455800461052876761035315491778367276457232507311203479210793592841295883525768172331655725024933258745913283078679961212517068350268614528747785898511458960196308112376564704053676728168196947392329358761672471114905706805793934684923803881106308939160912575122951999268570127392347595910616662775801204403626744530068633502615014886117094459661607788287668541918354164560564962622890651961351282145775923052887190125111977068479696065449018403779930474066577397594693949179801364909471186580109300627299927312583682384749346556431875750140333215363262261319060143813407662098034284777992647260838950464188666409149372466689812976770876438784579600646060591422088336242706291112395581438286776322593382286767383089980034841867226333501746382935484116206054903631571310338974752475701757562706463345818706753363385932416331004167602133704444995255666537649591106835138198137666778792749637077136032822469145186547180700330182076938804346665795215510513643928227142754911599839464207385067039914953861159355438439409875582654375148224476825797801357694335587053458766550509065085379483304927148399046424752601598448184688111115558915321101282030112060784706764871358672924674010571880534960074348048621429457769113740548177371705920227787089662527022859771919639890223748679942920381347192795931877966375789347573803131455201650196208489338594372615438033440497187883961336562975061028887014753145773083435264772130783514294293411594310423642639705278492427775647353341675764594913591900449891042390196750937675895860607763132858166401800976556980917356343987665069960073406257490587623079452217271800844172962039048113193998037540349320769692577293091486974349182046158792405456435395305215585021488651962378659989393714258016953639744796211479629577324774201930167240026344385567074869471217357150128923415343648377733138216278291841470259012286442930623799646655426570046716079109188074455085364077227238226136482909110478882083472174985039442384013285918263772076518789444595850509494806027631965262686409454231290638314502946023539630771384271450292603266232706917004753488526063680167338344976093739261062828340072831437797854518619936587767192513781302668025429084277324062855390200180748315177434977855373522631515682548890217609933593410064998808199082496771427330157441840443841904291796252362076142896099416684143188265540088682893214294454136451241070612348845251696217590008864177197584935701459709477066435566788872598690232137071113148892931775730978907304398103627199548632594631515226110108511855457563178446245309174993306673182847909778672710632911020840881014715559941423526954482008717726912853150577446667426208024122188832755420630851885619754113990725667419358960176108820421490562817918124809811596449377658287621623506563592382869687577588616565012637321444189461694751223396514071552203317958438275962520358158405081013838199217634539805584696071773943713032288009522985987837914588784245283590134193697636802595731267217351732936888338546322201720305555144116667481244136592673546422565973336196633109479472148948395589402116699841985747525391808664094276672060589506805531765959764177070306448563785228500106162509152395326815604625667062929682750141127607241507314479931037718116932809759152415098488519345537447627708047002355991468878257207007020798387073488858419136971500156536897897827270533642215088672665689423731563072252230239232210661163260342787126964837676839946283881666366082588524870267605105098532901016697176723410236829880579589914385973965753785206674444112769190391828864588084600207797123821010418089663438906785408472364316976659962633780027748974317626835910389520629942045431673651855599901485165823738658077692050898124660830721302150283476234878733072033721303929719022562054983455074139414817128414373687483770003242493248413173064113926301692244777600951568991751583433637014875172476444815410433643602778079839129632001726405759771209159280534273711809061092961052504831337423428348620401214049882692307624478773378608152086293571765494142737333139575349316284176419851894241363182959869163098810234130108319428189741811145135816625556152728199550867595972098648496107967406293360725046244517018687244389200930628223703031978763256075957493969151539929601457835534174140258286875718757052299213995806968376370020859820356952350440429023375778935615098121272583450942847729361435289885169377321220779200382825596603394943854678519185303512823632819741960745505701432273572721631149389625371939808895128908736494749163609902996209446835685678485444543169209658634276144940855674764662899886708260400886537072455061710294491903605183557374536432480421241839088950117301678928394917144453669040697678343814324602290663811344697782809587885821406547529063742823801012761414932807504374199623191720155513019086755278288818238464802276552960220415968599064508865022498292749498224829427574572462391516906959013109025388578982755370870560593031889649979982596363721204288923442206069757188091968803835969370706257956630146747892548532042800789676450739481022088552163704168914703083596861806150088485418295462874306827522598418787053790290038124497541142199335525344949896629225849660678231721111514018060006906610708999020252840023212506333589938454383235401576825543611740375880764145873722279496485010820045913244661578890477303305878470264828963985511858095255096611172485603213557908263660646613374096089747615279607084441353259722662254725523413276131245191608296922576003130385130025763578916804398957681842958532993280944088778882741002183724153376037325309097123026223161745346690193975784796579455452704304522857384664051829104029014030416504779663060671194113666054467617872757866852990026829189919406546731366500428099985335213446528431328693788950978136999653405637113687065439814835697224079396129564508770825950927869006530941669293903780705267093021423500912434250368202291297469392786500281763385676120092315138658286429879788136863799902815083083865870114850799012641359132431366084537118739891797134708568609563563923977387908057231141953368141965795784997514222785970287352855503201633734176119550940478379880407132075000610475647117738947070509140970718225489013870932400978521484882494323327174346864766933408353884255241156190376252354876320324248878405548665548220732807054282084239296463194033726847426131520275118584113997948679639499359469105723525535220683797729531994714369439714213980000594419617067317061826746172593665205097466642743535635422824579672959048534236483017509553229849089100808873267619353090576379845686142040873039636820236952941776393660923502126714301862066520083788574104662138373495439997740470031364150403456320704899299561039413129163588361502803357484948370327244076575908524495329221321540492217284445970950917079911175841160752071188847465215882908588054703994253268802445621650203324030980315280049136647613112957726455701374910915786913533607889654554038843984248760441368974333021074043359869752541835595996955613963543096721407524848524608508256034896247902125858220954551018611434508516984662331115829538684665555354735894226976866784606918279549478393616816868545399885656191186279149448318706674492489229286081107896027496261153228806208590491073889852935194010514589715285879621714981681746599303933168733174537970619182813413051075836979372930693459498444694570308302428073894488246146627553554940547450620922254990887917043247655865723305985730105361599159267462331935338489090866646295504950893763102501118892186327314900278892908465638532785190556640722789440844256688939528484614348324276959797974667786462343259341954412930480099237276026978617796661758237506817181396107301300455023370434049698537625607396936397130195396238035641475539153361866628517175619749257337992844621397030301490903302993798273617942640175826495165437638293522182704983854159186047935941450629458037615072442758595485755338111294531349873160954995030221220014808853133541329203311622231798893856240933155835477390182021048923665089262579496716496052691428819486627985198003171010401997391500938385114424776420599083680609973809615649671810122282942903955249995108758269201048638198780228451320797342150058427182763774136194373831195855071692183821900835122156723288461878393984198111903723985067600430175109487546479004433840726773672819855847349453390422040820321618261086613286650728684107921095748903446984907875692575079161392450766300529283859292219602300878530953009189174693761405480842127477804822735481752978730816241531473767742205274922711108701183977195936259678830336197217207629703985883652005101261573681380121223775909005332325309385235357729641658887180035279397907489279112744872576532377936958032716971377903521035754633510223932150185385218967497082200705171295650094400274185838987195017464893199453368002713532612986200732354671295456012279413255750621094573262115374172561533064965063862403391922647549304236264676002338058397194102836245940086134143923514206635975784766895057379754323353373426855491067546002796316128501496912920829907948316428887303655540688678141409112631566905965652000350233047896534606008772993522822817554374649106657372386661842061623027025198144337753211137466313623805030564604469767955444970651296232635811057626300572484278648173072290208074334384186528344065390100909378293298892220575495114478813003518579579383289423726208699607164722633954016391126049046051187950153805912275688884807091875556129961553042687835828585681540913128651528208656844962545608027261409947944899010708290643369142768181107808908463426319833450802443886995836060360345236810177193167514057786800183165826814219618409560843328953468722569775925655936037252855820137657784263899106210056900567873460142160155791579469540398586774207222844035360465397977920718962709513478898241964385168074205134221714649218906477894283733193803213824756390629112336560483026887190283579104658733864020831437062917192043474319984472284406243308581187012544516843102867303947510332340248731260233013342362386074928637556772638545662775613977135103779551598849132847024498716050015914850952676658823028087968860781154300938917736266769201458135658660443613873847518958359423181463529801396031100104405939358293274818899380851570755678843517297219908347939896462404934681489299535586157853892971126338207097201627977874985522138747198821986158725811083876310429548114685055530954048781469063456019684466595690932835636244050727999740907497693951498534057682198538572377533036834302271227001544963092579505598867423105899450585408703599646890227089752497262632159667540152121695570133828328051578068087619409265588071400254597535664830360883655377638739063457138290909112695361115818074344129525701872591177144114620339840624063339838562220809191396749173709170535499163467811824299259748547310553487407438518718451974262861797150281943985501939250064342011374953936581505949380551041352022031464869650581667034910144067822756815520238496876945232872933502827067815074342887994863761798880635934828908898368570520676517211502943512128002571542626602981422933260720251820512624452333412174783409538453458734916533295843507450128030924239259701844488487356858584259825314710019435053499525276738827560292116469783187279189362490863572745147996177235117711518199777294048884940685017595040486153380525850891208384525995568546526424327192518763831204626354569774599889267756297852982181632833421098423459905681669761111584072201471860046754123522412016158416609748825086902546938342277739915812963617494710482107002196559574750021532481067765634378644752150234084574476565533119678508590621092129058940453489750181994448722307139840058799915472260042570242562670435847135523646399053243055431504695095135286074995568217649396546387182036732241434651906554256682627375381485076682834143024208002771372951961897690278038354589013777560278433167317702732674859421234767192977313490208766562280318836118371741706953766743262076317114198934019357276336446974190880879954058116464291121331490115354974439992077497194439520082388911267063402544108762763473781684868836573059904665848775727813518386011255760321113333470637327707452809802652205234943745195030305916440768187555432799742278977725286833239938227659002371051474685531538818129144005675829816511073144620839835778253609563531829759305042653266082185955013620821511052653708684888740577115650739102121473874575768194095682412540712008157313082721827914488240502767746221641207616806871579064973498653014532654571893032878897523435380230510532049541802287582404075378650331245818584106632304742427288530043603231655702712845624549555869082588250786462576492126528650711648016832268895015377235399228647804239669613242765837299225858446044479865512968313891850779116218236873972742362303271898258472776127097912659581168402166755599836424649256468876283536013647987120279140297396174045815877019930973541768578895932834772444697555255071363391270603059414779283111825148428685468592313674953045999498278231419320598775926611234082518933454176003234859660648712555992670428439548931979972303431084438956054994999885011337612844670283494186491845990397858031405695333372064773005629812461680043063579571811361548397165914785377620734046406053664276003481131541252613326032353501582776574326073966088834468943627451450708573258608264729272740982003864491528754700210066064507176003299715893813502774655382477786158520210360079134927293264161245501116663842259528444812963732342990911016965167497849127273413287048824726778558213401385920507370519002400892995757543945742371841905455662260759971853188885442737252932240130672496216940482128414531332491294298573854882594810915371961426495220603011836318408267922784836004499228081138000073374296598090533359321916363840597472423035449427055242046301493409465918402188271020616317787065469720318701063639361726850288053753730700802958561631832134791420620830089933815284802020602051081980446569800357583708922290046680873827470367482573042244276064585457339855419533037004484459324755285049757204061660813450582395156810482583504702470843516058988841671393685782363273550868396220524640827211454117655904630384101902155647227876278695152240047353085218288226379786820767308865849579791171363222948551474566011464901592324893007866405110576594741064780240886352198288964858208363548725908418984109182291778864787766081377241843310734215442554465636644686222248842878096702181892544499427715251872773267463733133970193965175589049393167766862026463485268316950654267454703764964353058246759285776834362546095834999204539349688302762623538898007940368109409214722021122832971588720305257743363872788589952995860653289487603850473413438517268795071452131033876046388332791967540662430440812140402687383131080510261134369816305676064406838261535713581923286865030828113562939817585753192286433995997161192244854979218357494072594724778455744392512971562400804249996959195113801220605194175992075967334222972279163391743503308902681439428193463132870916714197540028679002212145189554809277688446049734269988122125377708606050490895339718684832557848924716312350768347894072726737022875188692024113898315709036914892703162529732135018795351740796754889805512842493768977388073521845155059819451972774530797128787859418911500549521073683934975204997973802500628547544552585180086308701063376411768510259903406919410663643653725112725373731438035234516088736969246260177477028990219605638658994380096282870564494659673942200398199678275814457410003082225470277258236109679643873186461572891038440417393610361550958164800176207112487089517221563809430721517704181206230396666406016071747215821482006185249632004262872561598222241491432535857541818405532135306089468158101883424699898039598399150038090881073944971006729499794927060197473238613958026933234585601276184325644577733444065942728879279395285861949878830490316962585453338052852735671205020131408776951874383948769362389879386810981191483881518419528630820230031849923314521242688760045980160571088191813806515113567240475013141834267534348709181303158825198080291636882333092696865432946532649260037659840635784037785629498286151183485043215341789470982055414079760764830360929577608749349659272883347303759602088084233847617782052783384050262656639484636600122300184897113884824879355814752111198376056778768612359222708635825344616917840058505645579422915060512948518825522583940548160900514098214561083639134612324635540364147938720620433238374985252811455207855543059323537180701372650196890710291486657834457673228702754845590377722713946112278627841762470219358065844410404024795084902441012914770810276606518181516945120875849490528274559894328187382715527495810505369409968585390041987460445067269008366635498701537420610631262442553564095527735973911056224082961765715029742623194158798389980647556797402117039214137559269253314390360371615144166299118074674070175718139861428564404348474590525598477473546812620875915891309876654604444973570180834262131202157091916435349999055589998137066979543759743705809015376920791403023542826470417880009620477801178382561128475723153468026202876504121585138051697551373677471153873718134008071603194494251617279162328107520267162258229135159785396307491030751769150273924173791427397917686972429003142689708924934237073614809450279534777158567613785479904736279199670092972738326633079817877924785833496707060193574292463761345029762507832693540486789710844296572353993945590539122115884751585561642477729695919854183424816790949275484810000798815739611707387035696952607629024133089775696089437600517105350663938199762602056161910979567497101322015020301299094011664324802899018539853781168261470477995181059546494307535931280134954161068168880713174147669210340269889015151809509808600732383473892070656586168294202342098014834250995766189225040368332351928006243957080084117967765182131602224239024950888781289480441901599980357983717710511377259391009588864714264068221223701385633769867555218826504102254644487321053586908877881622785561042998026090907804738769942557965790915603865050794415557585507894655647811753768303111558181498560808312233593787991569486349546423138609637983546513265896262372073789766634496416734825453585437365190443639210470725312951807656220571989541564914564775103711360175070587735843459683688096132477563313036642297138293195235583591139703009213328397264238526950770413278936091627338841875142976976894226544137211925148731747711422981252477521532706897892959014751858981852761239953644604687868595529660604039551110566401680407298567215327203307353883381677917416566122148756290638148559544487297382850956580286195443240554171070077922902497166241844380416976384122657654671235844590035717014017032618648651828855408228234451170236799688020799519193991661714547233634908074268690592503432425743395341618844265144547439847531099373391581959083968493525774856756667348065531713268635583844864280952518157592866742495181033341756567463829169929301643659015209530720387668622777335177428696162925076713026428107602464768213101142514019105417925392765204214010945440084398529910346868665146859510147602387180256807923250851246152444286657143421311216466487971309762866683387697195999605612480497178048178671156648431017584510152762887873056366502183336171106489003577797442939417984982866771982554627435381200765276323150371158232681664264019231627666897245498571127846655445802820987582056331002392473404581756708063587980525126080773056104110833158620693745855947679955600914998390406287206732577245092448871283799846790050494310458089858139059966726295278077060362337434961157664286076291802923658335475723009137192550246573916737087917250081999201051832089747772595668618292882019796824062093636877903932937790465681328600492846255885139889731097611285555179902725760155375055708066816791915236985172026328596137633992546061948880871629393106931569655781372280821112127592234086508978962030574773824114716663942318071677016470385594854550062415760684868983505253917673651577918690705774778552876125474918579381000553433158668309131845726990365898669048898580453456823708171525916128532936133035173900754941281967577936097978837377953114765694554992922084434689076262206546400224486492430491789538611978880950298478329386214280061338014285224771680477582452192208752284142439745007398389027366916043619863303051002567106827792353000380393288660728295630982246171256991003095869666225893791875553114565571305312003502704142940163549140861601705644082525977775870381884553028797111614583495777184434353762325906077698271543630420456759162130105319922677753390862185620242246963798694388106216293134690370843746438796475287947034742285664954311193733434622209700335524145909657837448723568794257529328601931367372685699446759756112534302113654452771958160183882344852926028229916867685892851819101179829830384307253913112803710952041835601299472209956717525062846287600626855550720561988957862937364365307105051203689076214630672429875886625326514654394661150990389592173313132879085182712570099318331651567466269096444748310980445532334653629310088423112025029409254625134578953199958766876630479818404077491224029533318799945580795163227002962541040424644713767734831880100925694691953408618835780372039126997733941005790709363178202589664956700753578099699911355168823717230310638614926886694206949425176304973705612485998462897466880908743275510170734805206250484529661351033670196838003218713167215874518164244635644065118541482000901804909168582837058581083732691160248744476424888054003355119706089307533471710408760461735099481665455843247758256088897259685761950447184570086821234464361465880831343848004904097538013442560540329948368912836094192634193585338206402406889063914147222030781619580688212628895786266658954148212519107278622661396756253263259102368026378569317046259703984835703203738989738546062347686758936135679639725552650147705240750996026069289605347582579259014620775117878482293714081451237145720640650475442435500690653527261585325480757135017834989995863699504046559198333806194061379840295467324675556854439023934417778973586046190905977937140430917479198425465235454893773956705219021339390269802659166844071091470852063078797694489371376653585683316566684645666130519450776549564193360252186659086139018616928253209129581655770166586468105472077049214388870639666913875199528089901788497855388228249281412056100150046980121377864385149152632959461988969072870388940821283805885920629431272192760908772565940937501454583668489839356809031112316134989353713077411699121239946884505803024643560843158087266621890024176602148446688698635241146082761677277612430266504831297365997975910571994791598690656276860856621294535925240514580076922503168420252982165528433706142770965465427619565857208589656280070705733020767958545768154011840573186178606902325110969048596945566797160480753561561701577155963598353893114664992179605377764916587397933585094362194165985318007597518352021489855759554392970968767378450272913567891267675850324270050789263261089580404836187208326564163288375569230923447564773916582308290057211033793834103678669955495620706639283905538617013403672312766934667027352160415790097379416843355146051343156286970033629700528369623605336628555363991675513171755613000351975394097804787426188538373407125477362134098177337373564734441296869807783808753576172835422783650901451742280204120751020118727393147027833904187509644951927411406139668484347472026360209950131712201539906233352712423609166166808103753540543088403628982343856895874333362519451366109106828220018158535266996997739413663246620536037029385273331404697551953476831879317639135680951915600796631694316751824024501603419162910233291910253852849335586585213356330109864714702336472399763603534333424409080057884986275957451434482119558136648817380542450813429023198916883405135712285027791523962786312509186150367112621419369667917447413086220517252073095616110264451026484110925180679637363849939867146785311058258257073903778122122645469117562903673320748600999985201570833912919815859170414962315252357070864713630031602886848094752890188175431661257524835096206117060656053634393222753605281491588324161487625731586892071996910580990524930030256547641958049853101336287219340967423986933371763499713829294646475314695007710934549763417420119787950438540208540809705395448791947209010415889552775357046036812041407906898199703625164943047315134091334214996511802234691600309577489876276715456408444117598767785195383475408493369091039767278137717256821141421393939952981992455311081674509220592299739431865024446153698755877053054625063305903920099053618955198855378694921588153204815546055538360469414622452013077469789880151674472532186649774012972076971555731716549942402630309364063458524628193305017384332428047975737899370671018738126511343850015519513226638517662518281682025571846850569749546352374727435041496474959594099927750628263466496361597885206446609775012198167741877272191208860194846650969754674821914867667157809212232266262281896048758640074765804918549625724525659416642515257115634045645914607200724971354418806966538166801313652656174375889390826510222099342148013263713251137967486274644070308976898728932555152787328471781333161260390234530654093502155618546634820377066913973206768575722285575228631141762231261819845324172165387536879709459291383992524678005089134968433038990822755167851972408982104483888551745575193242782267265583618960451594968133912034813299057110482609809461378483684169750294198866828390619992671641911552555334567076292447235851360397009852329309659291538144999350710739909597995616138281719425664862388269722519125401730756897377618192426168839645523628788469647983645378852916632090751376366428326225336020063597115269037040287186814801518114838311954062450853697240793388034265195307710644410823700193949016412212293688209591826312665958434071483552394449898187729336940448441534930738380623250121678812549805750866519680042047721076744305344272411221983842156196905880964384839658693667242378636138841853269897132863060464215134593612273135916676965678484227397697635259091689969195734532966607852125006773851771964273218489609878149918557518379279055178480117080139108856597380175009948548906278735440484255946664247525247760923264383122437308979621601724171164674260154858140458232859737439935920153502403516697266823189075372870091168175550027715553029450077167948190599775295934573193722988385035352888353157695362289218674135643428575488456639692899386440134632873076189063636145800974813974947620794353817120225751329151734808844836734388003901088348548779491761810087421052799624592759618932539937160500647049429701366908193844524839560215205261843441194436653688624349846963228785982649009712021832056126465510505040993936727010980922514889987063968631876105165724335181440474444563943740911059364455296884092076493694503048214905143728997835902625710363385401719768797276621624754554846066534016073240955800230079052519762471847206103478436293746750435870698809832480358554846898534902699716060262585608745593592721342785436524506620274078525610536770528834230981665236932872422489795773124654100864472800711369067330646278809181014582283223655279088597190035443655822803202059101667639130798298988541439120841731041758726311440883937774222789399244892885954154894897401834460070841815979667879452567450217655422784410542261402289368703482023530592006872210398344015234520918758714136397181996809806055234674568194752586239516960350959304055536179247884629179338129586402323153798768008227466730192193366938440307216403886993844642891170127727639255907608852662407529312684913150203160855909253898257965757022576352180904849492725538087147108891944898163167454617294126515123759003056395990432214105867985481807617765770569710499397855295456156090869821502407994400655433941463369503388761094763952168792379355956159795914390773019056733322095479434245327733351822646047986383725264476240638657475865611921977215817013521053465170752750592229978854851932423758925204530512414485946048267083952396891877238949596296633118426414744748758396951016930119474074817205062854746287711711298584631958700955806244731561819777054393580937696677720978975236878614796620263168560098688029760803273108284675620126757688339162372382040777558289480470420795457940500846630238370947402465317984387334664648344943888691225127079938215727053307826224208936805497963925408154543998105336374967100627128123873917724185176702419957257999742682160701691967829795787954712441533055774822405043394714343643711649570156579871467061005733125288808894822105114441343318420626477576360868439482252524572050966070068336860000667430487925103956586632098451053307435751140445226740939321395423095177150679550964920183189964958071716300524147683895791619026447366606693219375615693685961286235565304697388189646896815409941066992660510862578220886787510795627441380648598282095237256365651448570482867670303547847656803541830828077657037978015974388531137246719420247302375069097168648731659631097568274485822499753932060391419617115379993687645222645661878023058199644370160394491974885147497708533674883863664639902658817794159873330126165974619400997167733940807603375258331219836283988336740320890739728737975438212299852148258095754439340987120136954171038090749790421975870638304589721176091332064852116116797023660930223306660840551712408026775227775789470449942824225884987362730065299209404096135907695042541125399382960260246601329683707335848105098561741495262719502480416026479954461300346330720036134776153855293222469116241349409344265956040784927230721053522069167395779143081212826698673053621332992759323226135121745685012686506509013204483364102125517781045334817245770560257449168589749578778165756930989208378090089830135519131566354194337246584663891882478309915737232605678774910279958314681118555728457294986563985073798147458044658388668041833596336930506893004376794214488457225987811462300940435738868793483314996695905260819338622645386173470882577140573270391699938873710196933695874361971131711179252282936601378938855776639141283801231516395620026978472321701753159167750330518817876230125026347032332079006190417342394171459586553076877442646560714308911116425954962049267923762847063522341831942527019576282517303645745917299735146290894483281334597891194106847171908500728247777696373321781922672828803167109213677566687209928546736845296467167905068541605899921066438089737135572786489586606707283264772534903910036251167715789274233032882364683440617110603120626051231170100441057452717381693527723326018906816244442530976386533521508217835871228401210687548905251749575434369463519005049396243781184698556795783343410102001682446213725721096944983721964506336978115100129840095326112752323385980423744196964784324493706749953788884883863059558064897688491868047827090131249052201379820013306147485829671306964614402027541066997768564441531042009188030281694753754842202405301628094535611817360860731266714787541512906236447648078017252729909215352231070412546942344054665791802172039310965008773174082820242091038849639043891924215390681436701980295045639859022911379569808483432260840510540654841977468579556779037138965071145048100166320241352742814880900707056808843383809472273483741390259752356415465672470542860105932325447638224563886429155025364889695970868118391153477485575430142680968584275881309461211932733948595684588773804569163963293576617136427553320316928205617440860454322652720246496588231837888583099669173500724773649788503995873714908784860831091011550597578581446462551682614945003514233386609696220135734130707564266591404521312621533456847360850402257779345795826347499129843985406541897491230714436313584450525778196895844361553126548816421419959763446189682722658510305196198801188661162078600755503331540250023511755024692552026122652024924511937286512055903261699252632517232674068129043280744834984987867550213967387138730053725421458339264912902604816676132181913982067888255288303574766935343564433532536588530636116754140498471223528716348153985935606694325318732034055373107257589479116407095068882496337053115504112236316814537434178425721462039337025197762145412237517130981755572701138030135034430724478417621874098749504578164146542284875150818472471245251103480104846936427946492352889121722051162272206755539503941319469802575999127395600759527585392564324062601510675436915357122142120549079779477199080175005599013967083167024205898859850659719184916952633778074543354536803092300784620040733756556927515178242532739594207328852586597810205263531183852904668101170102698612419251022058346066232863111415141231904595941436091063758420639528997878492417601841097889575476725267526031681197025400571196392492023166041731805116627114031457670722154669620793975314945479937153242552773636625444146185794550932233489861011511056377972150192875029998678217948257554930374562390791802067121978103436308162450451614446415598618036182658214143812211450166896924107395057578972203696698886952973931469910076810090891061043954736305165598199660606716252832795931126068144263973497467429079674345025819418826214875926444182973679934099892186902039490917557957201957002397896597122670456723767940418056125892369756326321677810060056328609387135033931272505306394434253667531098053276206260195182069344329803342473782974423694973056229964140866382917425195403497030078258714050159921825225974818876624549347937847384050307090056873923603917279561626838608862068222331367397643603878434547831016592486611835623875557448654698393805541851289932136846989604604403699985661472901898894480180522704615169530688074950843899505154001734168271521753508376087292177230205656695279875803899520910237253540449695258645422287285926830961535790033215844040375214807169290853495391908703417319770058840191273959362232412024874567897444182682499306595658579634265839213916717734803149874038172808127238083285706074569729680609116035859524181982396568724992740438384843898170513850941815242412956131355699450037267728584281010902577635335704335058700801643958821938194397389064139379612454761715570446327326934261850590901875925192314589646913577044191048345429398689625229628020415138595344220801036211731325727383774461109164543062757068638707013181658566101579735955466807688150334032791730776209047073515255740609704196854072569909928075818704904467505671832746032865908219599470263267720367003350310142644160279551463666093023934242698454674093777182651693564523990942473189992590702759020620612432323606810496393210936658314801035253995927988350578496374023867331486890646292679495230702738422751126256105528833279462399840202953775779380263888228572399684526800022169570025312516498597329742812655576380081561615432960406663872470732520428169125943905643303623821862271806724991829808519643812017609294866656254399437860394534643867951605859866927964248794359865115958437222598014608803265297827300293047577745818431442356514351064632213932321046015295826287028154392516417837518129038169408316033874949687856687275041388237876453976718824259054295107995592582418651044677842375633954773214144082136281900263212652055588750190964022753672631760886044698420450570645570288390489223377306395749322358915026821106392559357593442664733877341355694248083215550261472271398430790470370947192369137995654421590268700378947304127061405226361360770980075926565041402120096167622312878863517507828042499281450527845932581637259610644792870302889865622454041054858387237260847697652568783119363004711065427178868966299012278901395882205966558975151299449142185557700485916378770628185672658957793265489919288055698225619585102312745548308648644030331730228606857485531000653475569489739992140537879440363466244821616788938796926530212178052594552285427594889129268237091013270220167917761578673816201559310120129682272033419019017014043046170330573791768551685625395987067498293357512642679433723818213392561282677259941443546191737280483025404673805090200284354221806388641618209151226024321043876951655497502952713095618805621057937746077410723334064920189783060072405919613109398806620340300451489958096571764143350282561386036569621877595424685521611207963681081629574746147147931208138042977726007818367599009148403223583210292363902761960091397423619075901416023723977927447505227598000349862616595685924406050428561792941017933448905011343136905112572816047712763454208773425807586301222461032152916290994807824529953355961059937253939904275071143486738868799721897020123286424068493828111139251871321268367276549404332772769155233215429340412375533873891679282492503858629946196751324477505019392320269870119579557768808560455039937732453408935598814539893884125564918319491987133810445424312113220643944244188991107344191385194064931447756262734499064431786929236924161015960184062943376706066147800311273140244144156355588358228842107558866566497466954805066529779365795420379258249120977869965587342373571084576286889965680120772621398558624641113848639160523987442204817257553006370243542974814789422038865762567638942802842857864625427582614039600226624814418253371705549497744733250655189279731329761101387813615898198673395318264719109747140631164377195202210515194757387128515096356916377968080495271306092818193235606261828735856095772644570506700044745074320753827706603243323422901486643259050433996391462863933896661395036743216738648817648785831903365109011550977091136885755102136085655477348223217499189232496623324211807090110326232333417784377931107347357895719637775969630062365774221257173218836499025135620301945690717181672176266571880664949474918178930705966109872772251358813883800135327386939284269974103244627133120739737109105895408240691197741026697385326081824211525743361807019240946090916971594812225512444400733622986215889861123706223136633319372256730208800600223236547992467878574184689718909244775893193480146782936503476373482643476542570872224599517291604266864290421150911173215747679623545988089182663679036788499051190629244898921237935156216803805443795706662335375423366376081848898743964187883296105070416338520077040584837750267747123211818157469581580011677115129988088564108290875425771068994724985096010943841448291154192064683992410648352150214966492714378632864746952585268928082309438869662828065599800696378473179372202826087177011943631931859568232945435806927335775331611652233696790878011963091984326085633678252086538408620879366681102354490405785586249929539900981072491654582069904281127504019450666837550164837181517799100312077694181512770554327050478912960538899297309691949952739692345423531187814087558162871579545772539492476251035475823679875405293209876373806659068753511647093018062108879347389123239083220214398187056946919756696002919329356948009752357987156294502699964101078210357244511587783138165726612346875472461758579288969995688845160009785157839903175181579571956568502504751692375478022108344857906507525567335146189990070624018233805779110602400182242134905190547100311715317564953672905980668731624463504018456346306851998454528480647476964063541121264063010082094830736683567213116613798353771848500397952307326447508869716785460774758574591788734312737295031983512222953637490681533523347486763448094736744718052430549476217858338766952166366431973857459719108782820479221908883783621957250408848096839475887999755367538447081986551063141700193403451032091401014174002445295280134056126427709061698055998839000735981585804599262312669451042313581413977337973750228348459947864709948947991690564237802286294514309092869117002858579551995141169675651083767236303407323200924638374479946418895183966456641704260390095914345151969362984420660498912719303292063488764719830319242556238137965125289083455201165172826230767766836950641515942478453486784006987090823145399017966412970194573627894983050486841483900180117603156574070386286762578860677573644327574299980221527927180135049590517855275870729985718996909485498868756508086465394936047002943708389035020856674282778003645612651191509678329577813047812965795136557506644715840655460579546845551319184790986132866200389334975235497379835283977687498197694719985361586321298232777498722257734937720289999468977209047136740877053177037679930999623422140272136313456364711384945544646024224525233293464516795003460461952386605654281728812283087229036280596629763956988435191279654667769010442175573377787501146781152042680311843604334588520821186144612580937494008363342589286449583795382555268390996202676795572282623501885673462697793004967411776546738758500706961431599756567320191938122291701024396649252052861307845433456149858310875602935174458905822421500130478636334410523028532783190822973424089226956098165595347145853461231527495752132483919450442372278727607384250235666446093834794126976667781709795901270055822896440851612847338915391207265802379944907804288531988747069097872537097698217844088622194577848336002661638952263962173739059092578913759366619723462242606884955467389060966991399266557552873062050455587451549581081399317189522658626540212447053916456498882112365346302408600201270217543208943771507845800325859097457818620591652941800566930804791947444349018100690698737804884000037630436785123448259286356607060876143124909569585462581582142554092817270937163214088851851415908651539766968962122780639006924027582070123148467988014430806266446784507549150593179683994782717466849982241963213274053754535310007095449140136718428927274962014923421396780352657263100237470120902493362865994452975832019413823822193092736906490612046038648671819450302207834953428819404799263154503389454324307656101601695511583679150057225400009805079590585077043117165718296038007521316880401462825645972736667223341365879576948162816189579082760060140499600248348977042941031806588424327146293778256325652127649854802242612555735887467505596655675927594475940051302548746100824233322150734859291792308839760197639912695742987882944137669017149980639602615403964965220470817171847676599841429058303671102773931940014563600207907060163487871434537756923619859962999764066355834448422255093478953102602854281881436313613927882478586658589125808770573186597974159324112712733198350311150127285900942035016175778759533058319363114750134194072238602244415579127579829486266764822583921316627228229995140589833765871539181715313540831143462681958012306594672451061067458723289849314956614180802418180116942699876241993213520044788097826066519467689937810864529198345923275179902265642608499476633554586065802417476270851789943930266312060692313991439968204732785962559159774267942117367553340656012161196097664900977810505051702373468078326461941671676522068838077473493563042854240146852748308472192241362401473260294897466162603870257330767105281721647677539316166391527364702200702282829561290130741678509245147476020865385061751566101769285613612439862465065104328576182901748430756751163028868205286067598273207185632076735724284392496847609704830533541582616612891658998413374576972638525085870662715163078264707753082489476824769139081094763296125734722936798951690751115480838470690445246525704427185391657264349785594209702579115575839888641418419315432195865568143937111504101500460695595575129447655345201727253288111581213799818413159516052044367037173311254042092600331349185989343599220408220784214134554137794676528444399369004792536893893874660976426171971447862355394963584626041489721421093109368108241022030450895919668419746958302687959161345350446543597594693633386123716267554713342422665064352120188411201032728016022593869551057259480208935281965932121322601162851169162565617063110586726112224192240954824378870995504883611736869647223567140555433451821730557662806127410456961031265621302333277824710852414086168382343612365106606716245654396793256796472704788136627641595628549046592436828049008941333331554243556446221456072295424951294758509276386283046967966067686454331095072963057871320923376997222639786469863423357535327269636557813318372952926825872180479350276373984852192063023304316481431171856925438459636837361909791954337806933900917714338818846768303569638841033671689233708735321266431079291881116096268113417191156787072283194566356346943009925073250247991504845959934193604627919942311643961229193735503269478019329295041124121766563009614292634423066823082392559461385166776222889042758795622340633255261110315637747804592700894165287770182938249507833045665351916734294146259506643418086880058014996946422376478309135753160464238893678892337691526576457142068955497468248895982907691933049348812516760426906631097159021743089140616823893468482114555264150726073969350235092261104192565032367042782306574928247144590169383203809674460784030439135975460338382496029075547625526985070919442837006875998291136813139339960473645020585470664092399601684602406883353021175696935252668730467235846550249723086584719274678365689525785290520284182272867280549544526924671210669610572897589339013865890874310592259788294017724704389246764702789115938990217949316442082631150474102938518228350636786841098997069718558437324173320548854018320409546004065370746334494032229911499914500402663151001972120124350976393740760598620039288862222536366583668658905932311644391618826797013849945618260200462019786715046368246671070414526662700843274748051366729886750252865531835827721409331278560570232598504846701579939382598040651337407561080435581405214031599684349828831550672529193436152270806527330681515290285304397943848770720667830105089644584674438369883187878889721453674044724235425986326428606733456021276595721936010363386068128193736455949044864923486772111033897387365079703828065625652934330055660740541422089788582551250714317900377718810255333884737168024014041941913302241406029501910846606638683927963109878034433834133344450009115937663397306763528822294592401984025006777976741914118723969696119256573191444641038116020743547996156893402857179098538267573191510001183624974298720958441418082303066061165273438785385456592345185066421845187051200498974677156741045959857315196008351774756617868942217894061437619466282140938782843998593223546638692002908901134701822200898869236631807263739135674396283828763989825669444627417320019062962085302467743570479576347745089335344091327582934153111298349558837823023493971054945769112708742018666613377051619046212509202803065649437902314888813556448348835812287618570129593731131431413417218349310733407853954412177457865941001061266176014497301144143277195865495501586660042275875016671220065100350735200234953612172861005459116084416428121736144255893334754466994715923988247190454544853659256993139312207386074812624740557867518533568143947988056264199078109350624424442689646842434029678023813708974759449497873006219463203870936981852976985240117899087236777336476448229833932230956118279505472099594490896709409796269246343140927605402939398893805668997553959161902872136700486068035238446173028383709068697842293339567246457735124201981829951265876719061982759095781841654210839303492830484993986613005221598291831001735965281622262079978179201108989274182488127522139740487739306919439116557149099908398302205935245242154172494909808407130314537690654096736329778535367451579576104566530198268997071071476481933942088253822909763918017461613411668422929859927553085024102784103588338840957667881887349734524982237683275080823649714301913378094353283990702204176551819858487519311350265049715456354700211944159268564994267926493178218161652646122275105226207928451375666459372986522578441689870519006548776783525602951865533591856309558463636571962311397801977443712163551165409251683007192208581219138726879403189449072324843349625053937751229991576697642821567588732692411051659966137092825019996340316756756067833444562552607226822003764302258450772055604303369943091809716071045845174224763409422746361511201283346711298867950368486466251687437124152535543342938684767533477130833251245083246038358903135893339237730143525213979719177269048656747082638979450530241036814003619108259953425957683166713379293385547764803786166102723825549156240035071220539498283230097725198087802854655704023250246669353472535699962882244245517773518951262854396949998616414606451668930362508826048278354765673740572819661376176020967980505820198414904240046370657837681460999739144220984643335852583404520829947489881502544503877812858302318961387266129768915829621900086188145172355212767449291580736365070296225429750007616424275221552416437013813993930241526649539853437187196735125967541762766100232128992010299390849787430488055585889043863063229508769053061808693025102456301470697553477756485220444405529390804032926713729022426608230759209269103682988705110070275488796562639977520978706009109309708620737799206318376960323144734982808987932683031186295374281512775411494894529766727417724073714759090515407609079391136937124954882086465105366845466877852674817381475632927391000505394188170512232101285751386594488770279873381567962898198080556403793957963706704946273228142887760798183941785189812881481692542364708910185161814248022637237651892259926608737013486320635090938652335947353727761824251741271390203841166675046025897837452552819064144281269385888233869511256156714716513399134370120084371104772050817462205621709686085282260934717012045958330434961430036610249527937643782948991489883750457169805494170158360798281051599766851666157262017598324137564887373912642280437078739670656726071576043825982308615509992804540282145488472487639193654821864529202667225449097283492891750737137278543231515648706060082941634099123437636061747698345830499448594970156215477170242248434767142214955343371493066907252998464366042504556354124599387546060932761088328604803110622113662330442230385773053810934697992616510887544641790480805529727816779711803816323736433073414593525161037611393650866478298225605233021178222946619528616493026357964607631833019099685281321037984292787137862923562871893339435382128768745222746576032417815279211156177228570024643186788616317415956026138856465465133451550318590973923565618596180373638797023320961058667992948748491153791201902874784186977434033064013143490131778667629736273631398051943599032908053813682295115104395748877502094883754979738130068464884644948017050290281174758376397222886123620583051324395609405096615407010589754414115697577027535693329092017632087531681962417302116744280084147124668038969133648412501361101452680877802554195142205988263679003104982603487020314133435325955490859167746293982008088472899666925022547963254871791579529271536142697151400836861535341049408178965502384011824261604369864197885353972758138560536717762185268472101462961240817278625324267775503367014496635918133972895803774408753886159846912072386429645357790980605877551362398917007520982016424550074664061547104873772388449249052400409577403977458087331722527122329048680184448507129785034302242097721230778682421077576483268896658048452978894376213326949095693893022917465436171352596341243485327274888634333264884927770846368159032823417820306165911485784594933030488156747601893721838614615806872502230771160506634436909879459862863579498767182881337446853096161324712043598600225931859274714479903472794450910013392161886778549551186598408628564630230523835614135928496664338763956974196895272945389616691399908604348071855694131185545925565081076424047037904229909743262526425866713636334290724187810914855500069904439066090139331251166814755280728000193309423341172815904903153988132400711428574505268428546656763962274449699050851877946258689664552994006798640306989076615250708223377392085810476525910350641162213927171056864707524901968292834733799116028860848244222102492338128963018295700302977150176139375571833544798332626196885709762515499303333211939108075010647689495320063503600540076231065836689531082827391094748882655023877864495166967111421305786080328619621515407183122322226013074482880542551396987085345230705673799692424101244999855491303964450186642690253564552115244780699708781321279294401443750088286803525906130991023483262398038446272794835329505929036356470020045860453305260795035046228865133540011709026069673192756242916121741341596352326766944628102790854823437440096521800075020820144088546663054968237901839311339142069478088504231897085531187871950456604255526699423033554560386510411612709070400392448492856111935158753735784390991553972349651906110127305550707455671285810734360418723715212419523919697624804473883235410590507171671828753401387485592710365397367546248233235826999445169843226399775464534362920604682988393687472009397892684617703635321590470125639213617517423544935828815573338346820295165909176738053946307087367673777509326408207575790794700325017341951924700225891929989318047536223362960819161130041729708043179988866907833581587680860275939912008837485283625137844592090439803524544160002076108649236996093214530087074067881424474479001184011196704580785153098726592042739413924324627607572865766198418705592938775124144256660697094234990906633932620030124925888693619824994234098349380405376436058513106763110268101275965576403916743162192046865360328993514834493896169489209726804243642819391750119444089944213279204320734087025772956381306513250214385164402052746689601499819902724325375133718290351835779870434958119805139268947914467721646653787907467986738366307561310555438838404529616198446972099889794229642314532927023108835297392277419131631094953089563187188027553268441370852496547079923052211108721886663225032656870363482188675166017365916661227702400525562548959920253511116314007026138020934605031835650147395520868901059373277179731034178977295761323742206122894242537123087603350209537887324042286667651589802624278791622652852946835290003397410536956953021651458038010659044364147716265988108285812054825423965814649104409859485010211988988150213748881303398903991856664286847913372031845324716140358580328443225184896880635669052834438075235096047034071930334945869595782658353177758530281669132136667145095600426342708196991087311895929698495224309041263717635549155689625041299943373071520813323203516359293528385915331807600122849573033897475718074338954420949128789326774551464552012456895478396894474279807968751913333760482695820489022680535542061948549829123053445660708590697337190215918132645064261091007305085995968632579813785809128888524472838759760831143750226319149805951286186152945132420661475220532723247797355577001217893209689736183685577758489993688071210559797377376994769710587693474218981155827877225284442452664095175131267363463445125837154083819926883137128310086124645159788425537233443493909692032919034880329099610593849503160214492884844257396456633568864017884843697233071657890045419595312639875081345237008418542793894699809474664022545663500424514025826721452126433052295142485478639665847771323886108978366830821865624416541745906485046874393241557801532540302031861813655063845153743524532266627983652765820915567164964267217777988400251630440350979514829062417504000492384794696768628969858812064370907548469632158038727923809065368906859453808274957492444405742782688604510353313374413941287081139990372256494933016039816607984439006004886524496219963080860393794112270313137026570252437530522182493579582366154345131493099134402104394398560153486465368304326445859214746326320608745870624834032667544084068349202731946346406150119519030146765675204791883125237767883980188074504577627881455042277584116631282425099740132245027133470072111374316278581699929386230590751363104059582183423945596840039948695459472711220212134893280314151821918813914762973729086594420133900504368631166590646851350130797146762748075644576115299383122511668216957793619932330009504304225725233976402668930651095424988373045084587062586031883714521947720129190681961353659437887358944212358364106707177191024530913106035360456389007043179099985945716612145598416591394664950671682048417288233195366893756599815875772325314521008861542314123644087641866321313629917253466745369755462664832991703837889802945903905356911101656441677917915897487454981531329721484437113039091726377263757042944353384224648619750052514605736056667866527819243832802988794852584714563261421735492921574238651168892802349591560477040866463085257038921376056157607079599653487799356455567618305893587782917046797997770876495087107933238436947372302505334214899549551460178620481410725828609889628602592421061957570414897698152322779080119058057603337318486405148377212213330820497920052734119956682654435438932655614858950891802182579634941183829200975757330940777622379991434368523106708917188621880478804312034176253486401487339663349669603038179605880329410143931443641727071340903127136127054924966837260081445204815936714937259902556126759406913062386290611304694562096859496667551765796438950643954900952281732772454556166225582145550330198116058968413599000668990221163950179528855783295117792946776401795048994060721914937406188612181183681647711495204965095162475970007237153012307166155047396660176631223297307795706098157801383045706559322268387101843507316243883680501239592811657336859596246217373146616390447256338588732604907415037849095105102281918767681932382652595524101123631611445819504672344848838563833751260455854279820909047107254378229792318617066819924495131365936883252005502755492601084779118463049302296603690114969355309939255655852705429832804439988503967479837428340036337375684522715629075065181937503471408476679559833767598807306289658183042760283423110380152268005886417271352802643222592819804178357965891905319806592040671805515956440769836013854699641842518706873107136910225670070127843486041293475371326153757868746168359166904635969060038791942517341815192544653677004771906155365766186919031960874401376990915847714328530429623562500560356630573703789668166311452294194701515447846321848045862185529596327515541491291793042533491946884925637379805949178202626937780317101404149134352267261033468773220715042901774248993859860365753945112221844188626037465694467027945747195290653930687295627280131302869004630664179935864349296609790930214146676375486828748947889705589547469121706536988022972076131415665502057359186382164342155432083244257685077011333409080583511037714055768394450009579825970136225822939253641124233537323277196028358068984177776497176201641520766905498620834954023849548904834056410421749531542208205063128174482862793903444401700007979048339696359383893290124360319612903977425976984221413271070913341845010852719275715887730081254499816643026104977893872917154812479249684104199719739603624574148659235595600088114763201476687669536206630989710439289847816127013860802453815635882483319523004133428615038536250213456818880243785529014686924455349815436216044772432695589640034746494570348387383739545137009073256842609063705103761493528633599540298957166843455659256628148207985759833150867306860734440631986892855011812991069792612060797208200987031226339287931227067085261059997645186234374431022707340966292360305365381937156922438298756435267054594284852828854340635982998188362245407010298135956335485486124460225603431553222223882024014835037556744513081276548303665234323739581211053274171835157807044836407864363556929503738085985800766416816041340833770172303802371445309708239404439197454335927957603872953972420830713379765959869253873514808813468616801427433487259311417749678779869140381489494797881467301918228053931684984385726725224710872665267696248562449443879335899273645295929912883465503013839640225850061480697084750891653754922002599298446047117593076692812783381393967707002893425187960633072895104518781395904686928298021521154862449886052689519429835654900797400700715667131571136708397211792118449476353041454689005166969898894915720008278010126645206118477168281221960403829720792382334971598131096980881595880275132372210210547729427147266806963783082133553787644169167346828044594896916650003392198033955747686487686963607582706972586533885886853272720747722549110610455417123268652713865896152094389026135580900029018195703079538815193733249177975532762962190916363295340569900352583243740859341123780253864461272286108936507659793945871088193540996901978074300102389142930118378639016169492638314506363052423462747482859608531396169847922734430815561774789451564360380198014852503983381373613206803260264521317371849899560079688836847203044554805913966145045049707047148667366718843633295678588166618761077574246066960446376527353695948733473292404972973957621924517831268953250329652158484527717557536444632254631850702032499267516247253248242623388932416927029423256173935960084640131721058165791680291309082612686991080503825848964265919632702407190046920101442343541423066355772004868421845911829592100254473677584567297227979104333343548181235468951223098009573217163281782045065421182131193586148702174736184449885567867998067964883818265034195607379831301531396374836711592813964383990406022002601059935542518649546054660667812114731944990871581803369095977820639571920941214329863174404501315155708796680580963164170357470812089360800709839435261072123349098255090854772960572138181879593584967995235769060361408381699690100963304904473063699460129061105327782217579083893625682757154425216205548367625616332352250430092192174343904499387334339883331625276773533040670925542241087438361773513755627593506232554749694132089085525523373923409655615503660314000401762651721618702026120422284763601854874289275166773280917512358971794140062466445147946881523359647589094073691734990795184229002559921313123209799012075038435985392229835795018988558025263096642864772186464650712981015837936748191727682119211248905480770180223510389196732281094399565477895768045897479389629067477966820165005875228977289403761552518673864059093029821728577441690631121881756377831946581769717990515523636809250900896148822204730809866342344690875944422573860343948379441352313711768285913668304388213424876895290262251151558372565666103321116658148978827543453132516209792950207484602124198168619887256819847895219310131519126035552148470734252994590241213298422417357968692078331822651343315595252313376475126599544814053026295280764860824590458437536248373080485314410652779788121478067939598239249453761911926526534967689042736646138998793001604553314768525862374102530060965364969389340641314597826389040745049692229112367099810965892847497581520189708796025440045777540342637371207797854855189623049462943997290912096895770419837543104501407904586160497511748646633633892669732890335800890000949370407837318192620038760173577456965729536818985893777259582905162145814670784515832905536911349055219825039961623490405648331828992472841805476663275713626168095528776577097491605055481604266708907997044368696748774973905036512858828798744232282116041434431622708968661113874458986668858629936951543663208945641693964482161545668178959176248454660437394641470242388922460638216739637713513548324462523104140495716742090927579911104804947037221155776826814010843540433615443363799679471019342817296647854463438246151752645835433492771021171688086368561215710677546525871542895159429311894010276873784378644436548452525705804311932854160383721624514036781967781503854518395776210550740532954476392687904602050418355085032076670979541059172283284063670426142692515880738914014529740454587618239509602072560730497057080106904803595980052442037135998578129284842549653053832704035553926948557395054114613382788771353523265047835278444712760240899507266148130706380252083531390323625481185571555196966685861402183714116852296704938222424361316726742667484983485150228716256689931866602304313165045312905715530432582734031267191315509425695747947137405985223439155357903380641000385568738443952817934407001428458754595267125389327492430550202703287728233320321487713346547976906830649934676061084056486463259301612796190195512329244068222526930014208406462800807982316148883411422800382498113464209335048012560980538857372867872506712917628027761026346340029761502559267754454362527291635978548181746527794467967018821162945852982023912265741979785302362230173466487078149764299215473936168064196712335360247794142673197598298718157371071412965685214300843293953331833881389728173205752059485020601844000901464751694751968175799833659059270624168976493071230330377679677338832959286528698148611017167704091760559932780911527015918382842001469640575503952081864385179456435083584671092165845684337379454395590260191731651019774393515470105833649506504623819746766308359873616425382534628710316997714891022620018520086214727351326846717835329477787266098691067022467368450508979204648643423724495115201512494586053841219754331809014203263240536157685191840131696231928711973447684094485968525131720216599920355042719695547867579180399591124713621530596870511958328392047887834935764138541622059955357827210421179994978473473875928221012496232506168111078638670372599782479745062643537963649485881770049324907640501627337919781329616303355935320531862437857733864766571182042184151843792291384332371013922824511525150110765132377062085129591942177706416147366283622759306739384474442960944737847757788972358311234507325344671364387783226024510962945194967028035881606510909080058203535007916687156342131635821297819867986695320761378530637648661003133443833487272860693156682977781750780256126848780346893229044707067260521143060611858495603429067066397460122147128793270206179327270698545293413476711198892012221569659379960726450316075941230908093705861980314308368302642039878330912078809154000946042444185236419615688631764760485367763790967901408461249709033864723163006353125318783929091666762293952960453132266616069772852454972709565747462503619155555211132934730696885337839906973999654342668658889002453026275190887849003845664121198603931144985836481018451721244505530039710099009732948879636298411157306841205545357579480728818061381039526515837553521408184806233282816431868445778159804217712516383784011968767291666799864859316208872782178771974098199020700516270374414883396190233506197269797853382766643124042806130887007485641885764157328615755228874284259414563290852015381816387975814126730316642004983043864603139138072961803032067769426125608805853615349812361358390496628424355220228446569176266811603837281646946594060365606193404047092442415265021578912991439173646604261521249668983083953789882535883644257771963915879906043513367598783119461443229066600995204927216991837611407165660659654840413975378601997756815191027141311973160185986458225988139286670173724459776781157761299177046314923475370901491643755453829049207625746462420920969242846075977267596556848266813594904007517554276192528843732241976505338821763926920279259219630035696488505438893291506135633386891319388813702460879883237050794229641221487243042268146926890745837109880561338842858160812312010133264667660188057365840710917468516425087148874141863771805818549324267525567543805873701264756187312238549911710853294855031555313643453583913656861840529523611506819074786231988990558453592314788655448122050933621060444593807766953079223170914134272199510356424397594143863957229866806514622907419801397321374092433957102994656119221709572411805414686713790143537796394126765781462978785396632263149801895740329023245664027871613482277629554657598713354957390118878989668597720221531172509032467184202020423239156459676413457932165018168605799545690185042351044439733031051888113315472483620240927405197559018056362216421341952387432824230042687373927776342432643567878576537673332674211569155676835913854429070812875395591587795076976569314580081193980468640466008392707490003087055941975566098470144554952423840217672897103015213636449849013135818772870729512755843371209042554945931983472517358537976841623117861347745379348091929799527942205733108321221168666913168292877639292802742584638558773719053120275924831133945571321003369417818240461963354346172479703382573050780977319657448474326864094115523730573139466041433055572044310333372863135850017241270832934193237234204027260980716958106526212214786610863100589203939953188463860593873736301778214018022840759288120691686478915194601030599150912950541391368458958103812019240555822760752015137313693970368686355215243383550953125869962475733846627815864472785392567352871520776123021923545956422869897354620083042398883547257494713216916555919360567148144619152118146338096221146642533466536318862785952979966166710377310041157633991471948029709329223102276979008092064903346560123936980799452160392482212265618571921289103873365515652884933769169557229544252211624228260044793345174468701310077114751619869244396527512076585541671108988844848807961896437196484913824620877081798153202031982566784814621013343864202661896521653964689279200142826664973232915877312902553627041197731064565332130367881717226773413141514593689151401756814628827568165094493236748665765100302234971362270876040099362586172689008527248591193618227368985061603911128021882801170010372668633664329996301849896460559895295164380040211304913415063567001750180836248484825635092847237851835143011393278544404740507503462949426242126288671425812922819446571071391575249815773555840555975638895203922300762505612727792145239494535288446705129376207452183292802342756198634649829920793617009742371470631644354190427427402991681558124454705396451295807114432984519833624836334671956698880086368682541269994764594871808123035639293846018052111738171633724863147022714942010796962876959237829253396634256532920992175881552413202115966561027621351408431493650706494259922237544910473799330585242439792239413819034085570389576486667824198119665456937030161347948274685831104172247857965488761633652395993768146974482724375550660333831660835997967307050982350922551058903774062028400169847156019760892771200096498073476261690224165781166344881734184674502288364556721757376540716080495316640736499842424357065363591726218591739283788037201242889585702214995261900365943501868922159718447018299870624612316909877921472340605870031708235443202432772808515630809625147668685397918168956693957463542070856338873168545582629230989842685238982873761094738435104328010798228279867663463634989229154582326854768158464127581757494356414711951518899180127208410794200541252935326272327551036144476139132188557419282623636096480980939880730310526871978943082983545020037762434776735373709791583703882207123845999603759577646565793050633199620405743029822512582326913812446876758496337345918560232005338788497348581082749674963325696228272327307803797626170797447027349601741156901113131833158778038894080645400214388105764803049901603870842074836020393767796695750975066945752742799295985627149130441736963995428310215159600654334632315809784151945249888387325982248593012051442647068433024263907178929167366282604732518038680925639551685873167695441720142884674024163849261407700659393453016877891260117887456076113655675388714600761389337146438967800751729449083989108367185887531171557830975951856714313727594712862875096468076818326136212945232453390513748725670519670898906181890863672159102199440229589234703088651212243254433259799875316027879269461390215235340269303194198931352907853197641548975316518845685487639798792109865057888814792914795462330190959368022609427399447342764847548348764034913380802385520544730645672116707833212763006509973231905341437755357987684871107633901370793114287897357979588850390896400191947689511912564618170579112492909705798992120566280746410649934888015533857348907114754746881876209641197545610310484163966768379826408253540489684759002369565766711043164944220718871580726261782089123853139511956034627521383837266982849074710434834537507728978074995929626134732411515259497481861399656064668941761599515959793483312314522407708686054019237839048866130660056583869032602719698999447058440321042776015980710433806481789686751029337179527341590085263618014385606589597332554535956078243144772875413881603830473150629021835984180073629206017832690836603390840581481881405384520727897281872579269852357009645447235633932264815562493541359333812830660800306577231477325693317928676716891287723424625242513873045095621050535065850703439284514505777209513966317036135131965556921620768331975239893578564633848859758912682435284973163548325134852285186869183762733278550183564561729710925378147406260236226207112408432234002847479700913286882337435217487845685043083404260356923302629967036214644371478706242980431858839923243162902915520620938642367167274565102235369478031251683332464181836872930813124026389087831731645227134396552569752429010134076509647099228656627981837508094214886978741687841878133926370882135134349842788130082208146180549393332088526333293165646470978454665164117179628555860079170354394499255795707411102146267944090883988208300930471139613213581007472684581188789174696457557225461544320511209462923007750576714334186668984327000502665604092794322994109422960439129810906622191078887910980843917036011736942003444112622938528383127074242200328249966742009509165920997867304644493386598744924570727108282685374044179707628800321575632777212437486185042340902361086847482554975184388467337559351485463154161409742407012443364359468574005394469430405963754853851200423655696113052096653566927963934731382671368147177200284524751457742994979106196673333959367967720925278141949297183548366593230821577831598880318754911939157671250867534768523372355956158045247947494053293504941223325904100247782277092710108213677122330131408677888550797317962777191058975838332767662167084305736892680709343647777604039730887946672779838486810710332311756159176977395111915178738185151663898316241345169172044415632838392258499436701339609060648834801120126272623075206799435983163415090639416712810193920917896538200441258026271813963128932527287583863581523977225309657865736190487524217276840271717663855793275732255788158901312199772619445850329300347052507993747482394744652251058942807843227616831913586237944342199916997466272315223992130865417240170089019192832599030322027048624889870555052758083954381556455358386891614395743027066802952591012119280116182543096972343953076375590979412766549506032253892365415828641940718754156676213801682276987784559676247029833071798906017638190970837157540225045027040477677534714160323996506240617217433753852023445833481046643710416439532244389545613642819496479959458317072632785608658329225586346507485072431298235012698909717818920464069851960182777016074796179065832893702411568498712520335010275516058441420348637917888950116050564219383608067176694483697122902643066331513764831898016125286937307491933769799005166276930806729050312906152230473769062738227727231128934774674907480233006079687594236301817473539543241080464993410710195780576345346984306041439581269316401516478049631155659583638123610420418544515437697184700595549035788234735643373609093488405234530752421335212516451195886162925566597555499302155858751855953883717645330268425689616900133390102198208398426140984863225163574232426731342630570607712861092288953058650594767343961199604133113415246005648114393161862259330828131591781726169686615396179584517980584268724987951491657065271010460870624512926794913083205563966907846044473078886336863846104158248597233903788005327735714034205148830956967032661631306367072239455897826527281220868422165656057437919217148335630337514325380563650116723645686104065916715315876241859274899489563154814643641294765292987931334502703053047918718354934135578664483664869136084335028784335465399230368219419277368721483272492185259443199456137742294771112645801538159348288404519405850769743099560809534340685959696342878189968838979562948379501997357748865320186359795095729970800654905932949536768927024236842643370756316022540725404603091806613437101542468365814205595058179718792866340755435659786846382611478440524042150221614346581511344673845573655470425798428025541270288586884703844757925923528807661898761027691978624321971120187853856272296669390119764830558551084612401686060122916848036339305226289820934339046869911514532920837121256673760985851343730359513977639510894623614812556807024065603920616713712517223111231562421956832052115969850552514964841363959463560230805036288230311089593000506216711815617803991179049536420583651172544472796999577564631096049105627903681414770246154255547732666502407805191317060356108161482580082716904544029909898164850138570382889550763551163231533402103684337268398337792520424083936793905163072470515745396127985464308871914290260786646251952245359640935065112139586788705582476365281282820053007157471315395707348716101133294174129925140415351803830984870573031570395791361450729916570069328151761343944867320076195536462874729423454574671519922378085773163943797971628231272619832485754579684213272798294876230482686198135893597267311426926507709094220457806085485063465846091421542393113667430752844076205006711704646068331836673158477733910964433474105723128841663963304113825968728123759087354632274279004902842362104927574667845652884209269440154076086716772603022012702625569203294947514287590493015487002447238576103887767770719748110852434265945366765713767608288245914663754260030689517882210885712328866657681430206979305327364465722740280468167668235886808306064289303064937511622169864014392202397167425491115653267293469657591242021176073679665126767274942284414603540603099678677772787354464694449635361935622324112004092433370149805166192393077813539709227549152575337604364449421124982633518467053124675737949241133266236365615997068388009753061038591674975313132989885637773206833757723083610671857972735538912426773610247131292039331807948964724739896851552817241529751296521597291186175494985135392363011457126390659834340281047495006373199435387754788354594003733020587468113930644604846297288269726169015154277204402913082072099708432433624325578289437427111366040953779640659181633928546274516657231804102496839179079582834923860358007409393906111563494019380218486879713138992375773874475570774591995703059999581681936366951460475478873171875326597601019553237908146221419554224002255609244143915588361595650201617468312978700735699695092520390553132122044367973888266902546827613385876554668928373173217701223310916083805509616371038599030327874218304395662291827665965704392662662238106104786973426454988694906462412029277986908862559261825703858737603175335403379243577901360571919327531340215651740476139527377085209520487705964803802254973427309489076682302871508740101538719899865404882975161761057672337329468933952583221611109184624003451029397289168132146918672017026771057607607585784499193451821844712649910973793334256472932202778396755918971102670025296640473467158586078758055897943401179510444367721082506938045230630193206011429148645000731689739081840798297512829254305155092962273285747115771941009587874645842239905398198268517353393990104099308188305324529950102359655067808196953917479445877348646594325225844707125602198175395334968323582012337261144055411038516277153304113265193534958398509148867226488059780742276464505631250125788691785221516877226417715092229210834589431414847374387218758239882282135081801170892202022286909037691553575171642437846073948502455690250597131489421667856494449241760587185883712835228753520041732260957904336183977180223854836211862879604425843574089902054132318207720579600746609813060499197272661419388858203103886580594144750767953337500550716414290080479161139980026946116628885940308063817496617832437314911009373237806200560800684084032542579291111849630435932065870696860815165955307329829346011717100233027597283501397496762334822211503522609128236631603761123764727086217983710246079994225929913177441555656034988002559945896091633168317155260346111651091319986281394818934174303551122587288846440051506595400617674189994792278770472742956767424067833267356667714309041709817645236626749135081646696301996792914274520600667864017430912907063875117012966333810922672558671455842734523459331391422264950806094172093133733598307822076157018784504730501228751834215920423417134005479632082180874967138306852061632078946745266276217484105638781795753829807139998591641298497890439873793314961670922009132654238422743417835423181080772200198970175178551735583856762549815016618968786315206476278222610362605497958953396266786424464199590327842931965037358634330138890254965745614396355745762924928445495980258164908716668075917732529944106099929631040492786688778637752750445597427561540523748667744584896731689445520669323289164364225173420434160292128861159450896769022564637506032395791895736399486642653059427935200024158326932326213341625990655093875455346717801197305054079710902521837572245771852940527885526135075385809081371298637259158016277454619432747550399610896143911333907248329263576256565404296331613085210118020116541889434388826961504962706013305549394786156579790969609440738452820819656198717907177835896624715667915633785354687579093938364830298755269929743090051023138987896422301315738596066214058507266812657481745085445176838637841275638850311720730527243586788001585837102530157338700652411090865224297434988823158803186766441142161864535285162399096761892654603229377562456932450347408140356239848828114732163496035592223026946357334700207030761970094568349910112248572553453021716194527177196240710062739280226310570683038918163727716808790419177674595527262330126976598585946977135147175634044718185639131909344436700017468462936145911860726225350017533858760889055845703912032279658015118729714569896495563469694955046887365088329566164293858981266736586613108865367893019954067420902774593767770353340282393204706161570767314590665029100797113543493668063125779656354427872840967240651991731876040684802200679406214381581861416714620568096951227035969783490504841175603233629313397433971731720428139593421358879171303504448720891579317936738766844266496515996268107530283166708342247908786414931897129309551369319644705819506367813661834425943902867008494878153493629102840077173619122831214657952248901549669005761947526350837315121711642991267035425766777751917949622785365086417376966707416644971483553543188359202072146438922201622449109164599987433428554033462438316714036898291632329343540230374320156534495042690983293489024457638521728315760570777773846069366021358162916923030746782912183427638591598175436995258938847005414162722971499221448977747747458353156820467849968909880780893221973838821087695675523767748397230355528640156601280406901161894914052344842914836442282344401444362097280060966981752296065860753780208662409591385917045514601899845606213669825394084989934492131690222668160907314754760557793387027603718261667120753407832035312236485161712774947910992673788645529196685440856634750514586074193079903021765039318900340164251500796599348651887972636668227012522255668762098231041927911398483535579059709330797100354818987860806813630869397571325098194178515955186403842061078106630363395047439953162485898292422050701367612846311454402755397608981095876777066645274368827013667144166371425143292722106850004592178516520610752299675680715017121085750362594436858153896267165298304389757759714037957508738692452900216324984033689832328576260033824642877917682345685980632963657729662650796982159949698544659601859207047166237064318370383784016522346912874697206401416177890146245795938173487839664122646475858442124559309735511574596744031528457454838316752100530959225561389665787949294590422466470262454111886853764044613477884032468654733159920932421554066386763091699101794580422077536434229240987159488489408933168133501738515137729178048469653794828008125906649570874236375191405134736306100419366997114379135275985607388759785190748874846560720286918325109860992517855489722988942336886144841603851531716054833656052017546496399913319956870999291729532786008068285649623357347785688761073500969086225719937846325258392086972307431700649627186116188746826781610127132556141314024982866319288988403677431016371400795352644449373695342780294544966301919580287258811674955259950070222894666326046102543034484651883040721281060161418831689329510259361267596372046717357188964221815703104760703880668069768666880840636120568202721325479730841782118714669579614236656219422279717968680566805759618754122397242883356215805943065957261825868294525103770825127530772194627252400872770265797882442566528997887731266575999399570654556030880148397267162488217813412332507908117985575949197639139229298475836780540295370717181680328154049620021679383810854218396531394439734687115967646674974769722440080574466928455700770144377292641061894718500974546446194195816114747312024032801675655063941712419858455432073901305000522632546943772249849789311890993173717544737770891278816452075458539310144348162246678599869181739753312679656452608935679974668687430663004412942464579195135349922170873245429941076584365655412312190203141900560910168815151083016542342542413545947851633558466407587674460861242095116115060008753415530901176495345393531141375524647952912964807647749242718717693090547577332679846426990472579808778715809595455149625676269486721628219970716142737058517247221359789161946108428081664841557190498299184340392785813381292281381248798114408842907434059515696027593987029653035659174636611740358469339846124228106465786580098446775661546286007336752748416439974265306028314506268818807037714064887094356527501064120725563878288311686039001893158233126116135977304188487651022893651920304449386554076590652143484464281899329019924973700190689583644557685281790833646177220892083469328245508475067889947786346102962350286900592531180655173114834607327806495389119575230181206301275944303905618036834708324239594442109614661083640419847413257224058892685314329335413688729793146190028292794402060419102962355263749044661625290102724546483231692502399169988725225190738680110082151751752861928300861215018478640701167239384158058701883639574656295492751703941785429006583853880256122096490775515674629058461968081670702369661290436719453934737792071576158296167671263314471444932884843322228089239639082680960200359856125966045157097000491651148283732835374609843380634871054712912009473312400728100769449416099550210904735216428275323138655185824474461619290245918944988935038277079634607601840661790067436701955921256682259107455206711079873284834261537657431825323433680398868996897784816342441255377327986771947580081968265602730639396494704689100634386671728023970241591686756251719017164395521466310162587623308326738562211390316274530087163504197131856254475499166240547675771059933034103921547770033521739867213092737663423159404531763780415098611994915088685811991362255971211797063880770878822141975578628712029484568574893929575309161239286509484781709411863159956070842838712475760425460632160904681122876959698016389718748870480392592255801298081381926774831387422292832126871334646411842346937822283738461623174130902452995590014708409210009259513168401548345623390516991803260815330852608589111941656684219551768592416324521741414469152217918720240572804710859385928884900865225363716267367281365366471942907084292994715543590168384496167348998610487371566891986482389681517743731966967099389830272580445643622072438572764779487597468233383661313195711612418787687110348340719298301292777145170996276866640748972812673893697512197718093291543932568975813508373585579955892778728377674018087581018742829466656090453251273894854952084272763375261003835879889844648720857909173433457301367485669683442219051520144822569699052649069395103356588309155040724121897873933729626425500615245271924842828260911792833162000343020795171114676103899323226258479344109282557043440748611930360148740857828703258681780762886062212764297125635462090151022449913584749019155967856210533692608300993294431385300597819529116152097979780909923203236093499985342911286460654911877408222513337406715131261719854253594675991134797992154258394319788086721140147479730169507334961808998641956180282023059630863836593048166562345160890214894834644310231244464316776409841947269272139372854611168003387895720238746906547400871680232435190761650451861041018600591193762909034372363397138246621403412618675004778962349090703570845145203795640874248314402310564178548776838404629766389845485099111025911471459564051519988566064253442048558610152185256051113076465159446645848914609872978365671107842722979159548927269070119303720617385565571920987943728003783602116432921662260702292135504741930586507513911899352669931754187682806830640331388371825752264128366201642123803482454098340931965625633848144940863924723674363660375353430480531216924345615089366956190833638885676047391509326346275311763274430034117235158676215549433566018757892224609399156243750222073973877004347370720227504770083228254421988892495025102392523269182094155300808269692965802925529603485448786859188750002031745571622900016182860002215793241888185120658888209343066899012600121701853674407747711029231040368687316804257692277096229574283764052770776963901717255649627026736476430193212568936032500590591015831562602911194713883578206031655803040390497963528837716602435897936880510754932053946802944037551306565493877222787490239241291719357074526112340181938326719742104910429078798770685815230501111223254719923803549698734752025969017405536694000478026778860047943575071255790036300386367072004300529755281188033196522292997175541046301461451303068629176955614972317703505265254455553807453138617077175063061707277883784904057480198164424281958861084600738366018362007041573083485490841278617333591723847247436821341816399206970647435090181201479666036097531945482736601974022258706460312672240280128032222739870000349723142603795367347430943567346187635381283898673317625032062718656444821814095671743423618928995405908111882773028026114434972277838280754756448743144870384442820265282257132354592348412554816934504632516392362265092984988560414485961968797247598838466224184138274556065047353897807592683164507789444443631133492095972968571048811863152259103407640740654101697462336504900342131126213947852716139678405760965679498221599035041684783960226249285867270772377746572119002215337981076307675522482816328541302602814959386016563208649681691363604809603273241049127234183527210452761813258481147218354683213885735755765297951624312591202961759806958505014789858455576817952933018124681146318094077152385156808606093027873124955860169013373271967151114212993309908035817375629264890121418557218995056688440312188131745910395569605944962003050097520581245846385113433421736321442396707868083401328208115706781830176225545209007921345469962990560696237425329816722520420827107831434860086106263996251552551443555876022418118357151941682847183713747754672627618152952576407891517930425665163969291856058254224702127766456428512090960965353238511669607676941290188238127524757523877245696612886024769758901643934852042966340335137510346116790576212848275981063717296828404650533814637785550547468815071406572923795003583596324684540861400927872491677618387130608836597862309863993144683407846929803405968385890216650404299254477754196590803235454325933732484736189109724091730480743203318174303457101995684425455788160754685032978418867767284122370126395204957502585419879868073640556418323203860343578948082041131888044813112442966899545259285073004014735958244027608000693284108326884812165954493592648943410452625392533247372730737445137704904194361563389482630510965844429762907751490112597897359629774406834192152328031465267612794884895806039743402842638921333749214438215971047005396439790405641558003767478189538367311877241846125761320868480407492382493842279186120650620550074174632371625874331048849157124500735191630049378844621554397099260486266786440053628654426811120188985062947884791448116390289431608033975766707282102776966744996366511750618851632971948121502617014724973964218604895433903441156004174683752827644628138040791747429937621441941705167200226099664763968739129958607592846226290234460756409685722440280146540994294186765587657691092799250627776989730686464370534055289484146248697740586043465950306898352596254154342753171842207213594155749689835409899678028458073941122391416312078014180357830495101717405177007386604442357155678391968234818414579072838074404317600557274755594746900856879598261501466710524978765826564306588446831330024787712132734092169406467995322179556816486079437053103078010232992430700653271414713374322765982927369000699239778587599686075777607550683022899027516376087971670829919222625687686214853994820649668277687839138846863933941145906820776400094617627586414299596308399447911310646517026628671251935579909442609742069468885709934240969658258093298991890168179170787770171633600186792118701178076343474776503608686837711939948886325883316790170107581956320926502667457695706038083198106259907563478353480943117315365320220713202362574256004413827303106227159785901212294826498319393119468817859858024391899405402268890905721614024541592165364939005449389478003183690984043554820662769671025986438590338558183283521928751462125116869932250346614859909484990408799395713670756034065541055288170061240997972029990109759228911401890724799244599742901956830668354141917648020131590317615774997992691725462574360336942795817403835614546934095774409669678951722018147286304603908048442776706995475328632983624774654927459119592465672951612584860782501994958597998824314929962061505539429471707835558575784194857109381096880357486249637681262233746573420801333223813535947999472389207012458224487427547800369286351312805009668625341650851940265770160679181322482286063390571069204949298966787013204478100647566866821148623316961448952317817948435038521967084012331067042729112462361056002868794340776121792436209293299674469027388048974776934803326819303489625979643748270654895603336788379861016780741499017410635032976128477120025451736487821463074122262501469233638709339739067773432765170885849371108983562876772514243414306365778066593650005514747978362381108906859790128540654349983933464747482325816977773963603976378526701467145194061087540565578476291260032085105008873108152507512910189760491322596000014513245133273057926218132505749551151764935879469935037276942334654572398821523958142699301614796369269621882048309962261119421105119116957764460420652956962676545286697851332561051862144746384280859114547346626197521055731767436328380651995532288552246545198536308127291693417577740041022237712158429096686006908923063644153355439990760222691312013861472753195121940925849921642130125797596923773407827311728714379628179208066641811429312686998573923142827558139107647180224415662782920360288556919866115370599199300015101405405345830043782400142743805149485897771270869042190327380830777880322239132045414192179765567068928856803622844283812291865322646492769363459228194259572523796392901316567049577467737570088216484138280895809410093626293990893464260998731082097202888005800690619220359410610897902582217565313242477548406948665078159195467538804477402873051934845977801542271038496526441315086215315515584177284071202995977875651034210290348501774112530916830538622184391938666773791887805916287343105533271517191821930939827311149805623143565950516988129898014489360628357831302162442247970627350335727925546463199214528382257712494552108125771155576644007605749297240884666103188459167622789300676396283762445148330503447647255893383028422788891629524801126728075188895262777137650048591685646080501590933422622167635391362044696030352486040685230235499974605350187595326576823186277421216670904385975377006961737578945746181027741328372263690969524919915048617525835330321471131646347590378003064764240095544108494204450519474600002657315276830759379195942105400208715092398616129749745433246892111716888197479889956964832989261580437914562331930708315051600888873961553767160960443123629324547392658525355798974187698279099891916710998234621879312981002798294655850575435676948552176140553204901494820136714844529280162236096017162683437006359568643342146350735656221529441260840107105608457104553647996904417015075549987758167494873105998469195634841552183934976982185296452241126450077282736861026326945739194421344247788531269130876752643384887810919318736489244048903409280936935722172026200254709974918740659333802544763363193725172342631344876964963053171017222225842926774032126281722386309740172787172577811107333067925743815128558796553696470196619510821474979217127244359253170392252282960235074855060807276341502929849712844280031414196160125663486648639077446701356252954816664577416284670047421082103069703793716251841041156081669189753357201848606715127571191427364440010475150297052663390273393558305617924311846827708100180034155500094779341539011279494712119067376640960341129919055281244321103834236491328017296120218422314138729362173286116683353979121212690042591210971231520934618569898526786092943126563302578233214276723864119809505499732073320625929876493560011164742957246251407901066174780489170474191057888043696824699855753882966221024539409798695595474129585020845104344975503953993456856608436652751708763462039146721119090657226983415729547578771894640721100881222818152689150793576870753152666188672164341612035532494470789807614886714012816468214247432910046591755085874665252887708218472261156266269236107573437629697392826425593978735252711166935438108544171771152840562657586690438947692172366247845827994959491995495038806436106353826613073121696576816370670499955960188917830374060879052188847304469074295009269325428795913076500441081508195034765517975635003535076044870164093378623072188784949840788384905827427637297697790793894249229917052339531774310834686590136224060136766171636160922775161108525275572071001511194640789111282701005759252884469893637982610227093230068766047714820440293098276871451380597507220242620684513180568816612234196194405625548045996959137637360328745750853950229310146545744842528367501756314173997680619521545302550209264621377755132321930923644231822777249896728036335013199240216805343563320860476755855631081613790703922726362332039138352486463869450277829953207577234137734874502329968398991479871539651145009978682648793391098853876454123467971886142231650164862071887343986636735054128446357775866596076060711747185657601780002603494342157289091750621880622369309737369545510320631239045577673163002849283182749843826719098427676985083157076155725271074883219382724275741895545355671569000973288577990126033367480016144289221133078445722994434333517664395517779994218439290752115975111419154365836694494894361123113223970907422376922594470953412888444725527166601425898286463269065313120234734545282669489027342687220666099192748902408093047470434272501664859785296300733105444274317490318364852326192469887705231734453037159150717977065624444944871348515186170703033816317767207980603476195244052391859019976105011312671919644225881344740878994933021948823473302121600002498891604203848197565249341813102421337046908585529584231035394692360110751624368073865039225410256975768787160981707499816182575001817409280809169215334035389146785024988356661928615187513513658745384017116431658364893055574256464102051295110351905578092256405276309825099433337542946325462084796309039821717989796958463993348109134271164829535068107083721684579962624348690048490394360104955370064905083773104970767247173619547213817651978179818221177461606043323289481450048856607431756758807335920361849257710834166774041231176513790884012503121193064199768822105245330772578303570308035174357346787926753930190045753443964116256350414428216817850232020876313135231372102023937329297829155977355641840693489484833422489159025045853095453943256452366707508470563444554751268205804956813205562369991365518675673486716054733677807821990395599205681597057115052324359502948161709075293401038289917976822702658138427418931228481880274361686185727426599653113341503688412063609584663920029798747394623592275866925361308769066828846346063060150569444227264987251430255586373219058110057866264647616228426004432272819789615011368552823936552164393267019685662861863126758451600446005752701353348032408908542665979545570161838322801019846633585056147233173129761305399080545398447972646763182386128729128450385395039792814858593327219955702583090100769883076309073511303142580116599111356043167320409768520552921117735831713733590206024380058274861115619044572459967302026902573241010761378986663947155170853417324850277563783717453428891258828477293288766807228354801819575304508228715976137908728389787190629132210517034640860585709392460904738230497548429657407424540691979172937432030639202427438120522951733511848730616787753706958639545498352567660929690083646905357707876425017807980917025999616837541218885460251551584279632504695218036804351576576936944365701723626619666340768568694015849552896740793853977534994488011589517217551552807826722230984335230255703786059969088971970278390288712568228513215774736509790992830248705863408969973446835050260191630980827456981615002948111439871963338736221630078368084456333869526667269404116566805337626396556478427100862607792716704589868466627188390299620022821971858005320458978108712549395418499188915168086364868694032625240784922383105582871179776464152504420151372807862540844573972192230430059510839863479939719330714416699233803083976460246531824468395762485507688944337046575581020696176341968089394010342819838509515429513684935221374195869303772843056764911987954596938703084846866956031542304214349714616324860938338884127339655360188519335837999920239690424414125943068087677608978510305216795681474142864012762477657094081922451188396459365931164083409679251389826232669372671953356005035181546647875822459027900938662831203755060599407874440187065565798978299632027061252020982434963899756032772627882630739425764559233289068194526340501817757999410120657138686659224456028741121452462710674564774386753354421537733072270226331126507695575760526037518232231433452384009170963862624530348930750765718728303872775260977786748704943064201199905030961529193375569466745915432896260385921275265147720780805009277955451718722229192615677625177226778812708399964917236699725234231253416893315425389627264012350850832578114593424434050958689064109814825345605219493231424590596023960233769373629259529011047828543352516500785461811547416560910223915363025475024986284644901176526100873248751588452300859455090151993155932946427714686731271763206621402877949866582701623125984495345603192976196853990824475656010511754014480937975785795495135306635911982350279974995558388685852866848008255769398127788914621247331783972752270903174941874853908232100821425296481909614670420217568223788868522823949135473639536618914354902490768581245884943117392832408390890370688956749935882217462709241045970586060086884233117105336434821571291911388914060898097915438271441545931705833089164200051071163718857211324730652639784042633768291567150706284282248386367578506210469914794356404851148824148556614519841542317489728228439495419166135956049524148011409400694961268941512459999651586202607572549770069430516155550041358241238589368567507141092258855828491580764031312278077310129476311214913876562750332207789680337148292708141084904528629835345915868125394525469252612831639988943537991365799347864031151902931425579005388365454873158041287469428449442310671434140375437454870183632797635762573341429096490096289116369582055344179393596051332560103760768723947944921025070144839062628076671049322667683617901556256718902516230576907938569862675884789805792117154910383256951891458497041672037049015187832608491897151746883311812854323955896597135143854793105953668833190097193778975007747509886025677002810006308858350542716589776445618067068071013009805158392394739788313524186730026567962541679279696914360279998411119325753356169258982870561790846758620197473845087860655886990388751687856216980362752158963968695971985877399335465733218944002596390299649367507399907039036441788131921723008889949416625116876101561686152044155480162435497386256870235017328217859171982959697292278324322089040108499164335950645871355125968941830917986725763233803684028426895275773668851680751989303507970886480046019426060072096434732045377382651387398839914781750167185568386296866815117282551646217508547128703158868287929446422830372723710367776645353049418256147139608470172992562732168798529713709593329100557583002975619383762802260807099849119752059369890600981469059716973461148150418603429043199315775701889874052279080242083657115986904484482879435751709028724035747832965079085044430242358291326106156579088438400639305636333938517480159660905895177648839488974420725875394170509638872712296165704615953639200844353019416325342037586283674928447321717385432384188161612605390009744770864930690521549230529731263838509245767937797374304036502531252083087559499482822846895774912573780055609420856097518479397242516383386492386527175709776038280934731147469227396746859362291459911416320569535893933407066883696291356898230746527208009591882369286319194330945457884451420251577006488871746567901398081018536306491201679974173705944076000538975150473852239805289908091055339755391922777920789692503271401026801134250108998197764958024706298389781041138483370908732592973173723402259613302239879533148808194904951396563855859868835850010715527296451457443038662965811667531285522401230983852293552850521165062885686328902386590667004151555447844031355927537679859936594256972351966895822605259374392336548180552098846260796923501991189715208997486544018605670909771642115516471938565397545549410640722612689623365345569043684400458220628703309283465574101307054930993845342725255766842639369873696054389123295225679380942063323991091073820999100524074702012104911870996074379696250982698303773419584901945638989399237619370405829779765267642918264355028543620335831609418558995957948109480323489259546194265348904579704686729224929575376079754778621972857434248777720417952787014954817600767433305101685563947639512208083914040069702648525698442746595175144291565731969660793838977975048660018808732988939511534392199730841964240784672175277087669202931643869845643158111379196461214193739108059150313636975490379693092835889377119214003534217125005338711060059518708684511956436117190510580638056800192733516275503841557145830302885099305599219741262822191050800401469610714972233081515928703925729100040589797947088876166103817643187611499445411901438434162490329309966195656482842435023567512674614301941573972951412759746172115649631141072427415966801436744613768411298111597462605046914288624726208447977914469246586188981503417766619425082694168025250704644445423675138934891020157783683638598166634067933658928397298030876609009103606773185125888375686954693050244118462348329918224122063796706198491257621052938000438164327431339858597008936521521447898703785510680760576107799072664095009889014133262856144368388056069260204611004529442852835206446024610681260146393988801235521972749750960102935217033038867316310871350860675737706448355947945116345527999789125745744300607061696859961682952421251007751730099620771669219061106957238498256014652684152017024536220808404796435878474877057199655032713969974528144606608466472948087446061818623345046942960055231993211581364206631867349235556344323679660223720379855739607724527232110488789753002198504599198207814152115434367983362570615504984890905355641827091048035012995664533278344504305917923538858675714051552124829106383520392053109000995112071717305677002248794915725215291528184707538378080285732124315953401639399680583235180720786882052798769615454242340260509883411292184829463188244861154357271481607070441928948112971965144838706826161643907076872760722064025002843435780467336930314778663734260840243235985935023708209651622712017146575058265433880725413588720474764461073632942400404306106365129138678004307767777195705485227005046024237489095750426060870083703348490413130721352176891289652858908157885845719406773659653600314525824116311510088266298420518526630583066777293859735945230191067138541402908305934302203619285973287713246545472430110997764510125629917932549090989072385482889318232046670973482817808059273029586588367205444233228578662232784130286575438336673594470589018660440381949449171312736751830508358931966434602400204788121120770424535834449891517461707373474480379012697634504454216136804486995026201608544814384195415133796916889715211495588203134009164594022025877196739222912599434004075346488730150490350819069030649342289751889869908855591528147944458544230040416906505188729320441315700187751535730306965717677257957412497751960230941626827574417462201642964186335460235534077416770962033594991594593938971990750085748101230201385185618062159500938122074298466745017865322795691200478096595552540876813425689701110419710942649781838894193818772750213320008946475076653343023970378666986995602375169322177695236495647950764544823848536893175247345738209562143104492965290361578680102861615335973121129146527746610524385690044166298782854975146881271278311279054455658474213898344589066063303851309259464906792457028004354499222440897598868878136218582045112491332706248081713506707996155849045151722765953641708695316809561004012912610654579156275376787623961890347883305178016126890660530244947680666455428429919794573562332008024401629059533758053724767561413304778817387987653863531936698132118934240903541829945081228918054768332401970455888188185434458288324922381529540188576425802416911670296523764709561321590003816968672911081228097979999072206071959586437086869542875658645190895349461029931426838368339927269366113625382597377113263695819918041049689963041317924806209158934053517136655228642165027248075609759120271716747497950362375680959584395314724707186589876131630939742433502134072535742306873425172555737107628262634538826043827734787737526895658192313165435582878305218060951260145425826193553980790913915645344331928952706946192106025486942104232725154529197736534807981510610755379172100772565005845404197130761231497261285636087665978055567008649501550227509635230941670507461495477369371844371871671046902303417526049641669985765393551922928395946365768870991010102075411425910159001932143748263833181861684327727189487337556084970047691427299619668530065180308215675762424899583070361578000544866257048480944362138269124910525546174523607520150933806426749978993778267402341643932955715470059954561792918763832892551487947141969251046694469500225705975756652806722997457815543877993968863644345706911666993330715821576134623609873153965367979768561557098613180124478230417958341179834402968016605699756507944088768395621772553720287884214971678802354295668931980924592421247595842927412343541792996411202862965931913634943552851493113630827590739252765164134631290578501540349916886792489710985112437556704197364245995957434666918070953661884419846572749052664934129692027632438610592565928988851088846566618776647291022311637343818345377208110475517468605830625421330319262300376532867244655701480722727149575862791778405623631579152377673487157367382548514066432128352059707358026734321485188914508417613870913903283953243911207636307564553360990378256460138826097101131705584188795702532935455368246845098417197907697111977883157137147794625737412594220241804306400130571139229933701331575241616962952595447303413453283955916237718932026261486657605373151860767637585226550000227746425454641595088831503622335801427414727589728448466570355283146748303885201564733234291266104564277900102988967510223375178988436567866953063191287180744432285864955292518188458082368499347921853195088176342557826848061589483714812029576191376284752015242456658119618739707644084686309761150681823323881543133013020999618564480618130203644269325701072641398314626356673758933956654792689563887307920118175833614081145968109331067300342606184944118625691302766427372705908575339155631093864750800602385388751534524811171695662961435140325846271825889834807003542271393742672776921265450066640275376241009693791674153972927892454793539150223836866068806451773331554102384243625261408983125407258588977328420514359119711375983861738468496234142173272412915991966027819013424029958370390706183224491290926203850125314752596582540725277478076453395452686153353053520945661902496235260619613618881458548478171550718411983835885140386166223573442399919691363828975532232179496542189886338045640495590322522622928521938510928374626857368219168273079666625430704113655371825354850319311179555319940908359839971057637095578300498537066828149434359466033093572725630352688572507435819911517801194272275197504733834903033917711245338104948015560962235312536954315077937907274679999374707911590152975595688407587954810130421576592385102952345336921656896149723879233714027116041721665100074190033453898864092416338580948033872367101933490390132705014470625784818283041968067019826104879715007557697707797587164999410891696339213507375143102146027019906470197868353382628142721552940075572937795286671767551789244837572503192300839310243816765632092202724671718098336850477288422667015060300734906092873538707759843151587443967905358467951593556313404649743500688158873797049242849482671973252350530191837733978490841854547766101123578906675673222950723861007212144229983562946799502162490606702109269092514054884076747973987750504714382383151635262344086011835913183868808656417088920869830040546380243036683351837830681626722558145213636766057144535984317734246956290022197662521127526863148760452347028388488263104296913013397664552443373303445777796941202939018502575142891542414057409148147739957772159332625385345017035383744147872558671560223163374341860775598833982362167412952882912276776124546355169834257481118891967769473070812399545734196163871224894699490625715371117054403793073317770160548253398979240389635019063459905840682649283825210909604046367544095077280983384394887702371067977580720527965391429938851353728694391338939274827905012742575711715737427843756477770640137636385547799745769644508524967287797594593950932269827915792373178554693926421693791659235403713331521581087265677219962931384779099089137964352740370199179360990139554344446016754750119110840756615305158672978836727373890538785500989748346912642459710181852749286256309002733474450192295249971928502810478375526770583021388698933992802657767296893790737016110332523070703422857530421839881217732546319175759637706207381407799242167820479062882601020300454645832941758817095277152824237277703417500624337884370131425743860905200876270582445950850474299859707396677120993472222451363394285803326947379253130708879041635914296473549758939613014172564230753692291176289470759478154924432397263708260377158247165624498940902509572127038913012097735755018568307916639657924439759501248318524136345225403424533462192154299258455597149587350003825601662500716232294393337115530798279518782857488461078721639268224536261329601000195311822042355839849121532286471956000857119984984190237518145046181507454865545084437424177029356996080243636060136648633412400248638795446720613329124000013383225375333256048042956658551593880678304720881417018635519968853426158251388343750353353083185979836910545994819382955909975136110625761486354507674477743545867027550596629310265288416438052293125300499806112880580958729868151604102488909056210618877900552094411329834624198628242094426991602701794520192967948612986607912716509499481186621663432670734451881002819019375275336792414427328774972693054541844662207907632699990308653016211178519363836488689027946478973287133930734154097435699244430666587371348750989387627385286079321429935149003823566261944735864975893627911165156710980397880325151291193411483672572851013776883005329822733047156123967509782783429231202231891364024782267165549544959751043547066179031597143114900577246072400939580174039674282818057052245073041651509686116179695561541079208426919843880951667905815155640713459506686062975546159105785631425407015275828259195409647148585782722701706882852252965319339390919280330965297410123714176620392825945383422948169047958298633291844068949858242261939043528589880796106209564837556382045663503428853794596634570717505260692878249311363182357032712755287592232059117261540876212444908186537848735747487235674075711852766171734989649010921819106589780236288359793244265955401038414526753513436704275144927245055926263750356700763474906181188879605151875371564900940022420052022983545432266423119328920794590882618496501982955917831480286542153526422779588286996802044885341340125697170235885678960580911504954567559510626900944476057818654542009833494120978959684599894548103192566640077080867636608988333594695818557038701500406636585308859106049752674776014772180484247049384564860484226719508295318382069988573673171801345240706775558906961025234923611170077191700320331156911045020930599928501360610559284127894769791655591805846644127649337848154581024132997339399770035546916321601195065429734491368915787032556113947608939500615783754804603631980192720714633985722282376273379100952240617628746516460114552491670124817569125923905843704685530749847423309489268989063775708655431483099851989992577910326379480861815493890306341064161533422173971521631902846019102250443683350543958464363696612317010126372032451085544979097180377561057942924171216159093821858704278212786303709489972220503783843171369326241031042387106123836421749588726942976737680260506282205315697644644076285587843127221777328310155218500938467961760637646892868809631832186830787356151337149155762757662833791594903161738718796940865928557460346692861009517415806826733612711637359640491024161717495332206507145595153892359411189054399882867058186024192293258988008916737114663339333055848634353450743025913078936251438544883154269872858567925525808937053691474538682404433311651053921411685250749659398710206896476879567455041247650218388253374382382541868051880071615479529541349611609975462967356212612861367111639778929387069576735715618906443753538011036719208032275519271157186401215987740153603660112402874336515515338345811511555404241792487247495087257427607965919230720733768189446448448413290298719850728443829318186710422698740908619006111843107907819383239958505375599324416509729511840630072673966939038049795724774209700272724689395155770060810587609267124206177359981648795671829801618600749125371843377708085600757379066849875162588586579536753919082029195416879368002993440508598454527982653668411087227518866306671508224260083780732969336726113564042318824509030837653352314102700611260505748337682418724772576296855486167366894406139365501190818467153903783744193400240530603072238893517556327066133416130576281490109917045393614274040872925168648779174840779149846921542160064442043383986556364368256747405718168453290385795030543829418283413767312770326095854015867509077427506287380706544380263793274156154078410994873764372255051068618274728131088516891509325512708966658625849694123460700675972888659888459739364437876655754727347125491702194413034094640345135650735603513639770650928147448984218652484670771121161526826520404420288072745982588158340748890514557752333908849341337852255399397244412515478078039179681200726468225681374317377252665383505969085665315890531054283810787862891171657335921360454187178472748373563102207891553480436563912300310052500386375439103591105388492462162792584253621908287402675608075206672885828083496408222220024686550119181170263041872074167716158387115096962739002004224929897999676136367152261436042555309523914778866385775764512365195798797208536912690209553764383269238604344366239318894811381140530423958351423028323600325227415883179832210042923276852287654462110595196612928351389768975431871279042771734628711554559396868202819946749849640139731501148460271772955422895585890648838415251197183348741853249344856999558114083318970057982241251639133451437561115261757568672894228586370413751534220900152778328834943950852941886953756195066169847871417150450007175503204499306548916472762863311920597306344688132190351939617220218537018281041269683628415132700714303454511929173011656418146663412077893795231199882101991997839174863332588560868316042886150859990676793146505205498027773772385830259341239830074283625400526353682101250911428393100315607123043200355488526462909640020648188271538800583592409041489447444820052853719227155493134552743965585399549870165305463044522077722327683457733640629240739679003203939898858473117938041930058687176584261108892908211081219048434384958851725274713991101743175155587899255342999195667555010936689249577254908701536410423842089267662286614491407787107124983934886279119811417539605459589822532620246326697839829935780069144115584483738935232356218883712474888757991794348278618993747791350810425197621129111526347336551862370703172436905535982813012668497667550853883221185121741907512321256363493280924032393243094187519409445894364582520129610559010212409478312433081374629342287184627936623315779815318344548820017031919993488099578031779552196383985836912767602597844034236276221496993284127130772402646195223212025645741055404743853645273827310877846511763867783848842576019034762652209423868696535833562530311991592443635256081252707351133911957381644277176533197189923884538800298378739676730243154685417764811354881772164618586130022668283925149574635366399725977350110707969750911468049536757820791186661863480124146343429311758255325476261584587195443650865082000046588632414294890174874665536995254292205582176131850336931992621762429429256019715473532998687373481142536576856729505524153344249739740628513891134035564131113377893528817849961493430248343248974337336415597640232107243327239504275344030145918790334777439373645856249532842437219273072542421800034323309114239655048601262545687451591305809523926819896023106305276469194521015255755670484694751282669953323721949223435756453908876648893357548422317186076684314414670783507361857456747677288179305711184732749316664255426758076529100834484270055259521631409583514501240466741706364041732780717239946369927352222887922009126831646270363375810080809090261665644335449062848827132408815180591672310012227664199037860468146205708595007002583848321300952469670772272966127108428143609348992932235657684497443452121931928926081387382362678885901873528022594078047393208777425258677052633750125610350520153156117300645398536699229628191653978539199993103413108966227457848206255981975250042847464950762265477844907480508783652847126312009285954840389411259282780348488688712595041674042448501346649725590605567928639792781520630776232215200215245900464432897633582746682978545058038520326826517041796436500132604993504832369677168456342104002239788013004712244560808631944864981676076058418971129460055122868436693337960676457383379574819126014854399980380371499345014841685443347579801462703907075741449820579469207003802064823093271591324578748715965447049717076047914866248683283069756516269571784899735578167918863998998031062633539355107221140421685247130490708415464568207522476348961955204464627096888640283908804927982792355018990714185996180140189234658737969013238101929442869312327270107240525405312905309808666701732807636813734159163212691523454260180131153738876263230109360571131234691876372817104860039555984165173459749624228975921188856562154942073031810035464137843596843083838204852419389238059458500764104769734423989745673343913899701057130755597425843326843309427586363232094781103612829457713046066182527792459836218201360252294505706426263719662556238410661617301316835145817840062321169707096893796227757144288026045985299671217892167126487257439911741016412362437834213177976853309988279843965839024682996495314437488932664177982198678065820502202881986894674718489744824795215667824426717068304549057965039302041203298600557548831900652551869024099888539252934046142271889968710623538708663390874216863204946299443421772448868172021676479050405262418458984568986169195691968500891409804985536641622749959853805055837276295974609112988642051873115653875102525682678753032239283765642036670744063828154654747259457707656194489918953359451201720033582363045332084880245309655733186829745454523811813592165448773653416068515270134549797903921042057161889401440811587128150287521336902707778019676069639888383697190028261300674005658353124719358174416086341832668468234202167493183227954629243909333446914242421219669768866605286921323870632594141480207784238806391022664712275603181533011050543615432756720043352770002076913133236060013195790777919172139098677028057394562238641609393573265499481711180179383226278236366264551336900489114274609708019059642125212677426794815756772328679233407932105419763152370850414033974726428083231233847969102980576337989366537508390101734247644760479479155175258512470043391302533590296899582069200156732309603428482038426046901181815693869814828121786461110402684048794905829079978646440309474000922515965030921168813735049948693234689153981905615477413710600854362104873279844292105272383784319106962939792408990000069961576085612188997299032954866702655376065677209318139359161730073084747975947127561768194225915224931506534109090851561576706594130101729224719879035308699886623292100567342319927181186270305032738434913142205976887858048241475152401239197904477219823400602885003400402117213068603152954366544236177632346325173369894124502271965784101667885045230411604862104401536371400558133126417618428826418149709505772544330333297375871330783065708841069179073062368889829181745417408696994611826473924337880624774084736223662613634601584244899577268823147032852754766461848972632821980175748339337206229968498536505166084748264882625218386891371889903502552185159385307854361851761271957230658525036615300360880794457053350162926971895009352040693450275698093738772482521115942660058816901547430063469568034271044104929347225711333057752357336577756513814782788046592726933069261031011475140416357771446747569936342956661441325417863042359218227055914985785874511379908934339840283076768752537714739457331765188032422489334924839382351784625427929237478983996220905471515156236544652440636629724519027535439510441302958825405993786856093504616626714107017953955915197795958222755791057339906677064893548133594927259638139561864765807533560404920604781701854609176134066817253744974028189641840162319205965612165344771925890012172401247850742673993872334172040075221756946694311061017800178823725557879954591190848043640273479757951046471444185788928402196789184843013426733735670925877744996734702456335498274758942722122467893651479006883343187917191657997966621622358744525992765623952369668047113831796025672660915298738901254171952427630722728015848008492639512902146527419353079753396822202433477113204717367034876114560535319792754069187341766540691014420391945427044333111973155533064223464004372952776032481921457288837084789492395353551234975581774800972294812534452031995346623237416778896031636371212184472603773996663016568472577416139591509340373469789650052453076209354681015250317121690481105172992739911497962089508321812944437146545167032722238425823112201286920537830869380537610429626276783638676107373234947272499669030405374280139820738178799533974879422297116216893299704056041861862811781635469833376228960865208475235787784788027114024006868065514731461259476956471928181488579455020602695394087424240943831180531977460849511854392963454147424888471053675708499356638980774676724303528862174685596725692862584334689379931780316848383367793196060321851123283313551270760787183786055946647301575192955862502707069764509090595965249511492813831190877081435943360779496480419931466407160134410055380724729707845453105622988101657418200647495397570149051641792447752369314028118826801461991137712946964220235115550213327698915975593339438316295524772735374908100255393014580203520863977659894933897050380736774803272758763519326203378952764778765941122603446604453990075205195946708018709985903917890509480181471042925906277784592074421299984717154203366031200559276237230409835965284177918210148501143631299108997374059607666377110470617113901638110389631404662227400808308637419742721160013319721253457679856493607022234826900768824660515187598093205794161760235438940876524084711098241804875270416098501692742917717420257837063373130892134327220514754105956236233206822127940933877580111529104834906082412383975592602954641955645836726503912893986010313900416210305844742054282831424247160341590914886239755566113350976526621447797889946981841178481087932575805526016004844474524878667546657965236672523279459573424520219129490570135722304507139533202204947651599093235649812441730410050050112244355629003299392195180016008693171060087542138388080770010495442443888895089386450092152321547729360390153248578590790312260327373891518237004719470077784798298513351256140101401096275644826259677568039120817651113111676538800221311597035220952451914947877412290172848970690416428932549394530840274138843336555386061618947568608428979992457756528040700874743921079677565640408675675052415450887088034054565270734794196326582133259421140128244567813171071690862220334266984541348022859307848695832946656626407543742384538781335085865473811538147240898907649645651784438747770744842195721463318429273062343016651428618767528884863424421738037736930870392540758826649342033096215831319651190131447317163380747741219247113195340119217351024172340174755080985014367425557637949701056717477586179250486310772775127154120533154150567199624707113311993196052478038741100440822048942602428893018011779819207533119694721707852575937147242130363434281302333254259810363247699722247024725190807659214223116588885303055248243728383443670712267596555656452323566336805460872420144957900845566020039887709065577781212798820945791299888820034465219713054404592876912499630187834132286447078666326907575470243584210095080095814403553566125670960342666509268066878098655026831450529317268066917869305476728192148324407385876593812032559913751712492802410890733972192887618343423724443779784900501703692673146402540656939226298858980122812696955010396637580263049281067896102901429634182091880764931346643458803144341183448747182092766782545362488536132984471588350418095148477224990785546957308805953248984879718737880690436136187516431984359608975021799325969607846561201199629145806849751478452772374301912466378682886884748752853326584263162149392255112641735275899144088454698523827385650359065325665717845425180215264039265311037209328173524591253517116716237077114369404324325237426948992362451688139853036855720214743560881558874638425664503019883694061837878809310975201896504524211736041339036298574300608122231811881517416769785561385277886168583239232985930120497186226454235432857237730350132807890403835099279142984717542747353426226315530020514574042612491778987036939834620626960459981618483229272769544632278286753316639823273450608044819494237065483934345966368427323390533794309653850845580907070217185045439245941432350768408471252958587324143764820620738834702855324927506356362713717371408816120540932658832606348523134398961297539388746218589258422067784256269110456924502211407442416711002737577075764230155677115250066782489547399299542972619206718610128802750390109532324781951288868917368984692410836664519447575555944102045057038352535847693501220225129837517201719264431667967417543875900203425397413501964136260499376648557291384535532559864318805440716510373838609806038182051991810991345957795318802944612538501677834074446208318498397918270932118812327140310744319550217327131667637563155640770401706718748350771402778660955824650151203541860996302510628948462465167494935545665660334474259517718153865416568413490048215889292321506338805401046182158801087506498474887452659352073882542485760448978804343011791884912870097479555080207319172038894924436871742089153038260730540001556247729800188763166929173495953055032855769511432106119233448271389329889946975103623687625793385719200863511750196741904623727438019982359629024648116163492974315459454776250188572491445065885888362452148323041533321723129749742380848673521432860694723346372650563701978605873933987555527680070495127899170294449673808793421005743262259824799209740781129928197742000194660203429287545965429696771324062226979315138603196749979784743866396473735527572659875390968564822050345505108672373587936004056971787561458020273470682207175917064088976289314120996157456366221848532564708506111903569239506895385896770638274866900703750542930576320205721957714352758109062612681912515008872159828868769611719690866514064747514290282029922296353057468567455056337313310548221614481146994524829381562750989524308903115757471974714695863467902543282153977657904469248071767320435256025263746021843073548033712688633586218667957368468701939623995039057033832396650346141001809445257196751153557247416706902228156391624812532890416831190894951019903507140033874854026427754809850358359729802239723211146172400907133496550305893111145804552085877160044483662668525135581943553451875172816413851560403885237540199415120508358761085949366551754302364776327945006631477664726503949032834838521940963815017863302950484480160558975724417322536205591863704036208657689459870301852232559504854313836969196579270023211205489196503935091675732096683304005219182538386257815913594757202748538980094349628503001459308309987499913012020372109262298515862616870367864505024784129776460653337714915246033170714225285760203440687815889502431251645310033119417452456936731355627881738155783614264748290239099634981741258532146773396679992427832144486249380889806006570298945189215210828723201743217194741056233190441137882234784480142024747180154075553071727556487227111905933102375631420313350340422488893724991465553201246361297446769995336872654216401206179665902986208287872520435273489553067925727232569968827335452530739324008414387517877144143419597636479444838146499082287023540758340103646317141857597209394837993710692732242087712978895636237290370593378852936877062826531703726344154591318146773114366432893693351138581703029520842489996124673574883029770604802541048181050199551664644305259786026521647558771783806539996325181892695032367179811634677689135900862101304620677312252517091900383322792532373461406082264423760577179082613238971295554840621830255121573888539375361918935530325587973050161178284632403334429543523230861247872860654703208887575598445348246752366993279605115724466839459314692640900053105588870703148244284392479604440287607914955063811412924968183402747419681992784527757508353053377468740058932685160085448553311958958232595153686391828103557563770535367924381786097835961825418646481161249997274671575460652403288735679967105769555827605449404720098601386847777469609931274990486486191809056552282234830645968306334249976424293983006491340446039651235831631717876433693696838431321087435959190694369117110539646705990686658423217256685030405200866639210968125492715718993316174983494387054346123076753163762711030697926551104615637239360108405906103395018046777987879871645498085629449023835338180460323842650193059446579474448587369744268271046327639096130248442112176795224200094762943812715579666721597060214387903851137078428587396088749547647340132875088637291326487346746145078795295676170475168079670848949439354985364447513299664042441609471822193066614599105807211403381330489712739425854445677421220067769938955010124312102792107234064253030541605758080357385912493122316133246215205565359924789351207074943729077305221733329876884196067458032087842603521489845687072794140765041581569866086190786885180498684553094786600751235077197865720581696924525780581856937096042403257125219352114714425631130651622776418899855946879335407625192906241000284357960250269144162513639086942454741009897373913221617803337633689462502129402691359929792050775788317747927506495565499566324307919691494268366288296711597117047952008844229607317744995082210902811411226569498916653220282281187697466356080316668411758356948572059247472944151969776577302410575028254723078850208447417518236533201024435569389326281569193945050643738419284307571080802173592232807092189527133136571894545298745023703724573129006878081659361750508069002299010116020163209542806775657724109281913335195043843836220328741318310839533051831198124271279730314045625810487233063142821497756051946629287582025263363785165976848564099043133674404630436917846919691889537787254752900442450451506616436116323597005591741322864561950316071245386929127132457813814623297021751042707446289290442654157434642968627558524417737341271823086479649818906019335157713223425092978892600164956117517859502041341897496805726880019504815557498721001480211084399137627366592222250964370349368224978578899396822701682288196954614585875570379907673425515641196103925923111628798503198900840436964126439900752498224377624249378480920352201388370447185380664679183902037737941485230114835625740305085071350596302077154840732174378778323353063500607403867108672232381624225445073970878687162408590345961722285041545967251486963020463915020224169910870135963560288618041913589819542841618417009564538582994780760992788830762495315124404931538709803652614174923705396899989267370772818935300152968743480892426662902072446449115862445811102087301504501513126082736980541707069947660913675841267230484962176626942627019089635727334324670419729824070872802591817531407976523777696980897633993219575270441690759685480041448958762070501439833375986395260680255960607773130825469456430305578363730177140942637812223904501839159964280564784333733105553419251406157912006290141861834954504516064249900391767198444166694571148500146417157338710028160858046177213823352074632931755571140246760959433983058565042502419101429170556928715687034191743755364228572636323217702805406363263411832031871015613402224407359008318347371554726821138721804327164816618219758097867373752629519722635672819393169488749800370191955841902901669151452080465200412918060450531795329525293750428926491999623555784262604828783763173764714515769332105634179040706134816177360436350798026459460351014690470245449121814318969615397991017522847244615525322699794272787994100107142387812653702188327046583920429440076737563076771422296762935802367876300543448955798493168192669423020397616109969076227779435042257894975405785004189647136660141071514976969428396224802377792437289774648245748057520005967796866494629122800401651032628260845290136061833307708609049762195477925013162610335823198987056109113005297563373729854164930461508484456722326999246828197983809898577384371781199445613767996387556992311022558688296616685286601023962800617197553419464440264308435900199659342145922187662815096882762404013540703886461633753534824204011452240762836316150009072704421178267849099099968792070249799221344413262259875527954353707163307929253468789271604912344034987663013606177120512427983367550332541863817627897198936737705848408518163132423746383145902893381722821824114000307238338967599030892706099783937837494656856397497200203294011670968719831187249151715898263964984555449537267846741863707660920421615055691976828291020915315556562122123283768581779541632193993775114078014256309788383697714979328377386047248592695020741232109988403877935922887062504884292138308047457691104223730878105866354792024101682083101860072896969704103113735426189285454499483191402895887042685406348501310719108122989079633106850275596171674089332976131662810552386409428267285059835687912129899441127088745585488038268958358755036382130808174548348508951476199744159142176818845616480249988208511002444337357246265152130504442557995694106068918178540448077645057099248642492656973365950717803560614939787414028096512170025809952469062705316765912307343294701018673501314869843235413278398423422729294889378658179417395924649244097571201655561639052605388305771617239219356406696066415908537005353454211935358968761636993515467844611421282709270510659354194545631375194615121881733632214987174558615836717379151321831700020294382702162804339274206108041261110201586637199278332578390195965026957804080458441736466941984934181430607796731731430662089862290774169186839529020911730125240807546407661777843081797849822232253231245246583080066256567249656730817362404701953988404748811791233519209787397328107160133608312127109570028100700660117721706675280550041419321409886579158352589810089545705600757232253685525058427551387804410307373435232755345812478113566499694155331530783224780922971643666767555766925410273966831665151151649973052890214471718706271726328948023941649991487075468570904010993638131916754260806400347040193866082301412031553688831735716012157718564400476840589826064042420502146092400831919742869970506124892367472499755876443418884159653946857627866318036198588603176466277205982529584871427190910099144641308749011270203124001973248264982155207925344220464232413666152399502270531928656182945230561211716430029976034065389892881241814140765617291038705108528178156516343731111815843364258369020883612233404085209802410628014139986898995030455892405315182398165891602197884355466455229271954396922336216657296278859001817028625398567823122031368745337422553052980082957366210157259219016931160447883215410407152325655758728522681396117199523741463737123547342100581247921153212246785374228081813613904244708334042972634780839714764615219652831172789588135895299611808293434078255575728553636926221043302124750145479307368652501391123499178468076985292502473187485423992347305230118723425510804778990948180567041034668515018193595040353380077673889853621637483147969077322013707671129717140668311851209151518977174967611681325997144901311253275111106660736140681366511479966197599647419591981683222086592175416341228391382858622536008838712799943588346049179708565198058811943563303727974303477996715979147142793167063102844985253491891482362925887399350527226320084341770972374597949735361252595334098372641666682202391891904471235240123124998579458746599120194568596839922603470539050090497987581325226303037099813077768231673942813150496986321129900224405201654885535113440032575800605277960457943165611784512380138044982206107804351881979165136147108662651063054738579316699962930709534526568494122294005865299415341481454495428514027106877218558832664246870026920666324120475308953083446235804038566550811227196873090492679058067251806424629590288014055763727510220198092835964869205267203658022943620024572968498235240548278774407723568469805865329013872384814172597558586000576749968668854079547736743440302340415854441841085560212224303025616807069443038763769230907563469160295699386350314811509322412331914209316632857210702485336930236138783983471967943257627200370303490177129243643822770682274137362700386066861801941007797164563785749540652826534315835833056675604077173304381093585985905293032077752698894960604713103543745943223651403325521283404400845842337039930716656108148914431431365775341831816233272200379895115286196995798374998206849038605662654513138795819296774616974849603972822479939197400604844756387070471422385387049804108854078912059990547507176555110266312869134649964809732158643741179533296667282938138146080345701410381721463333635785332701281187499765269886024772375194525223398444233078067700977899229809154513022379011642216892050237958753291160896129603430648104607686380572599950005982928463366792872578763175205486459829097781062706011627081504492505534949303354180606284192525173175569929132369353816135321659434949425720285282550427081084747627138871747552153834141853956621939181217652485988212620770135166865405162997263218045902480041415537517530897086618377301610590509982842808078013907993823770383639476941871916849202055609854796664290063509100667814288682135926970384037064055222380075989635658889267750107073951947904773432448109229105390191661270804262234229528461154456364031520238221988863969671821959031914171155034763988081752610648491884981144221056729641868872402265978349134253267265060927415530654312302463125912831706395356270704259917990637596613521933116659759487092113107327287895786926254506915516587175967995356501939011779744674380278409655221676614999649152574650526722667245988038991609223818146797648383720156780822218008328766225142101021700956820858874458135063457272146439570622764119916465830811881106909856673663518671458579739101945887666757082230193931016404847588600094650162904941141516940026035542686136288910239646609532031210952948501555326639388175422467644983961586078677589366149557954712158023043750513664292497972866564749587207447917662236758896385626602279316082261322594863872369795909079666537853554894753586622523440236363173311549494208373073536802963792328266018279401530739908042427557769473015593041821491353114562885059905010381791488349656301773096373245594033895912106466410712607221363401194415011301547540914028911564691188959906432110177474577886429435010153718437340183713926053905628126729132527422949846065685524297744440013498813796317956527974185951922889857827094755935913650044480942639308048106015126844303809017838285103091344417408581181353285455651228864582530197626064197728325542528794860641469311565059400732266745650713822976617380672799568172530381283012933960079308589190702989346135725792503951240489920562556481510767882194579004532407967422820546288425004692007854678750098994765058804081013615740889647125096868366046699461009908869034848794291776518608780883444613286079493498341030667375773570887063529780878784229002593455479703586067344860852495229434445003080586219257950209814796639952508161172170770024961530405053034886423224482110534513761571451473117228446263582797015719202637628273892318761857005797388875061147853074082283489378459657893074654070869263516698707522559132879634328373906439673763374814702635413029780369975263686859984054547316689461350772752488421881769808053228724125643116343291904697945041422506617187789264567338822998758294731879638596486449073241732096042766607147725227611771020932986348584756947283193048267259056184795607487921952149706428296214763785023420118970827926968964806265637235004120414097209895501449443394323651825060255897251827163112133413735022758217712953862255218584202819678646539659300674044649223339210388682411990398370846951691060217815977837252248761662636200733216780412792845736566260539339143510297457436349601978907842652411558332928436624983424133267578347222292026495932186937483457273281008688253274502585449650541873414044899629744455180245766105810287358853056777806061765726533633393982063241270606151009531406915934624963852267775394968918273241067665232329978503456133478027499204183378259051362362802501252293961232377155885200928806935789442940909269722779996317208072898147639217055370312611048957142746929568385017646723412275900963106911671295501336428474595223367514375726798348158761281998576819878973042004027897545609329706374578364645390178385136744508277107937206513672707889988911055680079156078160861226352859763585041284061652040284849071524062861576906244519852517779325261016436460192474519125702608472438422855134767913292511381014524697424591026045398446759066688971118185569972217903035469752702904942013512141933020372954453225524082483630664110823940075307012287299777396928690909258858065884552741161321264339653137834970578705943693201294508935715459498101899395361817207675209832928705294844750491856811085173493275227462899347729763850428717480666071739009467877482985083585819224523292907296847645730537365351844976798594376648283542660890888153623989577965257796927083912853078746527674454096460063772740054600264449967055981046248381452064122907585887929374613405766296957935749149301198535389937456902329571001171970750587315715200913670390944351121826097082541476988449488161705846665316600982398427806181404166307466274505500116204725798897833775986023937185377264384197560439278634028354090549093498314226111806162533629143758665760365036096692526970818743262749247068859697013969738931617833416568716629562996843445559050413985130992989569891454561343965596138961952355490360097957166799043003551817818333069031309216788413462758126895516718279151889237080199186732935292281778235421028131718312767453889806097673223550822297423894739777985467294459604547883466796045527693609321343220059051835665309945687574979470570114686006543896442435304081782597165229587841384354722129628845744184455992979173112511316448254825466802219887904032997005006843585791715498811829284039408163373657878191645285928771420490320597649855239857021662424678049803053415117287576805191047258012681224522569920349862627956301638750771062687185801502727484225402413830707149902138529257199462487777153183697812883406899486834844924584228286505504837041226288603054553353852406561525008734807491547523764391405571992076039048556032800855057998565141589456619272688594202992131153489266304859918825962285643201006740004288555101005254640815975570011266393991831987093096636367512949295731250234879262283606344182008036292328905547827263868543434074819798831320763296349414380288627815842503651904811459274955450270164456257531054987773975844743372470519992083376255419607087834898430783107172150618227760378107468966615566646045677821077487876417297681605829143993823147040263638422062525871265659398472555008991850586019072491920487644651901759488663816749824420677714740318266527345975937500850540956639048266981299342586417343648681546216095923840875256722418073918350748920403095475949619560696350268677846518201251572678114118275337232831680682642174665407091042602576730408085420242756446174266098425154340991427979511933022102019457952493710241535504738288256846645822465170035213927743943134028365376862022350971778013957860869745609985284971539581080122276801958696378157064594213907985037743047894952099541132699119186193894551976659274802419574628687881029002785215833644015873849620650594742010387006326706174480105521892940636830372480332155972815159728322391644255400190244238335117127026161709210242740511242600435529473132832834640409291380852777874897022590146946393786772979624578715989696237739459705000018551964280099502638716725181637767383041899853450075073852114495310240052473829598593058676237681902812847088442422284533962876627899363423605505977373654948793076631003202198747935454824815054628281096749112139453701836725029148797390459627446524643226186843555746525654898603828061700877307922028965969710486139188323725152827416289759516206319101822051755911633659902711820080304559515759182072301119902909966672901645509606474718553570244131378147672966979649610594178553806392603681634124653836589264900771668313994292566393178818899626875676723588131720129138195334632420783536008566604966524480684101351978262789173777111587393967038842708312116323727035435208081937797999482954136252589748689816537459093873593510698127368621061071848488825222993296325255334646196909264636696507748363101897275710187417973359174933045731409659901439027724841261480867756566498747644267024675058452739474022336005433020804427565000257049982343117875650050544835913115727615232497885786205669249060582154946849074121374362888702739269002321535481312886511295713090252056654541270199983867066885271348709485032119418611786351841320084884130108312592389135620657156724681255096275702711743260550697853977713714132678826531247250805434829759554014702044979623433335603271041350655800788552430581619477271926165645583029925610424336303118681288156588143741001894414252477634399724292176236988706833719989907449224088878037174695758486464277589937807702831036365887036763149202666636958995936799987980124683660740987057687065218600749040314761509246932666745948587828105862586885252986790272898455819460044647065478790761570165953804001077419204862620409075427407287808800023157985834288412180164206094525280465431349753349383755150915016554243487041697834630084650098032589749848835128982092418198208279827370692225346124771458253526949983652225711885568691188446369191183998362483949646690586129280813209072658292082857635317054687762773428935769086027806803869015534617991739886079635629791430037026618883315037828446260024905841409126134157134831539359284156593700172478855590791998520990898795454274089231420791758316173366737755001561959777166257491938753066167678662247209793237490928274447649579542233527525145260449621940686195048868473918701480750555795504637887820562726534715950338388919716694726156680004888437425515845117662073214880518004578689270568883532184698454464082971641651969926656569697003607589620393461218786530416856582533799032016104249475620547664212144613168675824972244754611860023603405131356673245090316569129192442272230619831501381637970551435542033915956333289718235271840166241083687402452267999775471905125586458268923977788605214130641713216704004006635012347138267619742003030730996081695836120725219976674588822214831117063028100186531191749583862069612970724139537369471707888841007703323883729060062699184732599197382397726184628370800036361034447950867823086258023244812778228722052973635856920194381558956272302464732583002850614945836324362643268015369152790289413454900946816784024218459574615758043904523604023017321779778876685165033372582887074408482504350592032304644266599685289950619772799019292299336834125949303074701415807432514268166800378990927635122640204409046964671385379137743518877761842713098677147660823709898835875527939242530858686022404889434599708920326635033186344060649183205141016621709494889366882156751466864584929827213038398947814363167640356779557903485058552986914652846955234157253945864447869955035521379606672956977129803127275057678801057242328322685201205797801460330925885384930716216190485231043226858763796698861762928894894997506330272593945790325209613898818727071743034491889105697443353031525986924628562246386564806345672948062845106869220295804734938861354119404414456453383852062974121426439436971120700149915190107465818869837515073796045300611645175676209702516708269442417177003344908268230658499332089522055225638669553950507413126679088667923460413403650320896553831350803243884040294287158462732838570037093708435296359954250706952831037493465965206328363036203411542346403467412015709242808909042026031977163190311637342033038417432994497895414381676555941405720876594182974999877631270740600035123530737739909290960607058510436689496606993423567052957229850652617074063621743692479200586608595228937899149580607069485780308723913064168393475183761043359122447615336972179738004786049788649944330289706468103570523307876244393327468530092367702626349352204287601519859122692850251563784380612201721211238156420083790751943923440726018077505412079441760991652800677457542919685133776545711327272212629684602002240407568957563521188425849629679524837108013567271044748863126530428893830918779061603571868428519475699813680074356506904993638936653991741999487345827650269920560758157792296301377907866234133367519110408229045700929229510796384461500739318930661560908685018673330851568292731144757092212643643678381206856352220411592830535441420350184508060320079074768187194925918653927107964254584140179793333841480562112535526706719365506046754775885129747564118584867477612590410303057894037646700220556332479380225624829967638243775098849645382592469465291932055677316914366805879263153516627361011575649331481270614269589127998677879290266153189578004521415069853340871282091161672204529445397625948778318005555177042329089779648557616223442906919248121569924575978508327079145823379751456628659837988435738627297521434331550956268562025592919382343912707250195601240013452260348735924076434588407871933731142767755284835467137986340574267920622315120099961648789534491979013089948377569384152508672763488268728687729427461065788503289626449985072024141811190858347266195910050823952155426039028169777203712031748378175358491413694814073318647216184011859778339821267012009590822407775895973417251325251996799634906432129847837975689397212163242519867697064364922345759519732346476537569427025413999247429165808123330071074070723312180649558955646763976108803338917924233337271926636417403531964999608873011275436055334478093496004548908907409541341568088009025253249963211939662822082088398976886351803518715200228623611385682775060503142642929605012455852720604976826019782599429859362834430457274556737137773703748732987710665463771505807953973974670360852214469051740652011730350030706512616091165251032079545116519594999384505764917129636963080948374139881983054715095681033982339787563825645497129726669882060376849626877511784228564628873064237662169868509638406450402630231374152777977426632969585190198567935201525699147101108945394437527178395156523793229301190762792915610236979784011385972912156511907439638194204846270636166598060825228805971230207956934729435161361560749636291888103136530812449753742313564038874702205229119183914975514543760323958681316703567774240437398675358821892533781265750210090082701907541311870140702644785842764201429364917295910653172435220025715602608117192232632040929547194400163184782996958671341582778750460986480688726928459285990019629441897610722854709312081127544839375976159393007519643978209285414879488379333656417694453031371317810928998917621790787577407547638844143759197352508290154877315784682627158747755469047223636133558082398831830906300372994790210083312346785403100989819377097598288719630227053213579312936093124768143060612347408545538755854669902765076478706688789738419854197033050140677112607028688425167906579047536114732919094993526880638880792872522094636655393127453730629344716926799978978982733126322034263890638235851780329093381203358682465997140471811611401509628635334929256879984192199624698453470470951940935043061993703676260989975118173012721260143008755435247766726110757593308412505023396374814403481267174331816783426941476811045249643280294029542155901491272655039090355436505746424774982711148660413774742317984401585837754913326251120551870294223630124064831788995413003918629482667894984443035693748770267812974578403665813500562809342181763652552181428444575360532978946017000646692557734432813015158691692433563488327285343340788467753716828153186817180445968551316912232345151445159933028642474613875591382385710626933639354555547724223646355875793337402121271606370003374206562959438442864854366172247234821819920872697565837156075204195973365264384676040401983510403822658105056618562932209124436538746040936841188768171709213799914388320949720196320828056536370501689788054900127998477894485762072535181417319174095549312454512713845392171756207584057424507962882824585967374659598422455912363065579014650616605417497417606869608903145393911161992179340243310894061319546781480209799739745707442770209831347118161915074948879721946852133957409780773849353586947449050037190210836521543282325823962936043781920425424663630497487852739210119285503557616699575283232441562999608801493334405107021975461043452431388445318309428124049489333988071701663645166454793412507981146594277520091387155388031878209255809016002322215069841737808536984263117240667273974598129388611885465851390158152094556357228677391342966814665197390034411686148740825161511907208770334039215841091920503343537821416651939102217984620819754737679266127551537628183447559261485882402362875197841733381137814903821061063020007515327212736686879180490988763870895700071328620764370146859328935068458909462392760706886416857969739771826599455334953978586689444162851631818867658993270037947175942150298712378084753793951007346683473441498804991876405123462645321295065417597912247922277541594831530529929878686938268436168962602386027266196404149509941526518235800238708302949078289782523455877217136666290642049401536577370908676386555889048474873894786476958015528873237619491822089997508662610808061804496113757405947955290170942576218786693393501445436187130946796151506934602938112666595373551693832174419845199827627458251604796621237754816738325184836579106351032044743897559626437129276752434359045901668083398749586779951596318875991591187676532302739703960199365834615810501896358521022938714309160377289354194292393464743684057666981293104947185656786885745235850000976905605469411133697332453600350074842869116900852347153616393134234907410069313072144726906702880355779918462596185099965724144088197066385485930977618795116500676000901246497560434126234984158222101277072490218705313455104930078714413549774064290401658939557862298853104088099445029291108702172609466328917265317281915519986042229220767154905220372283012025344273391501695493357799525802413339789791158965181143626741665816554146939152331703995424768821740116400128707558191583392217047870086314039054657640538804612651245211338186918578698738306090907319091496663676836226131448681739051710364629165670947962140803138799763394828879470096735872560309663601123552897963051709031207384082976827902721364928165999451351352384431345046450679827096684056566675724466118095622305186034063275955559575221377702085690136881998775858558538371957907377552308009590144731029743161696488547281394004843272170893804733007507540243566449349012856358023565839118464706837649479054427420425121484215349950983381529835356963559762334010681690110336119020527986925592914117517457588903608661941000735224245999502874761309299819647904190825858052724108529727685443599124029557055355957755272078171726414154192606047596994171356428261874156926313002706270688102356733381272072722168631149000386116776152971860661015085248631394062430571781180189929049101909337335561094586799585689327068309456412981480985899062959450308021273963494515530244496992502417484658609817325267183220545489902362025793698132102563187027226245297223016620171918484237318858900193253367764845576484002310633317912260944174787534983630931354164215553344857840486218475345488115548061575646980304039273854183473804941536641534997365208131300503976211557253433513529848407750922703721492938251285531814874411543216937095889554304633716033195765120791081097471764827789739040661508261636078311827803041493058640252026432535974472983336497435991896479390855852362240043450429136412553905979556860516274271589357238615639100111028578844655616055009675045152675519670535953621669386218580963478604582936505842144326150072808554930104980096164667218944532593451902087586470747445006481362113326157985165057512069672402440641312992149219475040372021621062772404000073129983290930174340165201432240863599697114803544661911666676235774347852252065051567203891250821337659614510516808142723984406296829810874900683642553529096470067244684544683139880424478698752139695081102375322501110849879594984133270975743606076305725747321202057846747805058341073061888856552869037930211585766588385252133789017992963309444745107565894394592831217879576301164508481661759198038106074069658413055951783249583124003057139985177844547432917497710351939687926896029598663486616959319069650292652937847844290552905966633604491903152431900577361578489549287702355540112378322259040018187993036256293619890107307030690605685615790968974111930293229756317521458176401015308642241143690452170002372363363112712033928834663389319000383212038118783061125177173236923626077952272643262770680128250129709046906595058186929860443670786724166574505592769126805311424685619106520738419597111852640220831766119882593572577632204644271491222656855226807409692053359886434331208146876662677268721203547704141252083490853937728181178532790421940492023650616341833084315720611376999769067198682083062022985677008153394468078241312341822503528357546266146389574320402878045302495874832277915860944413397794846824905887234976226393468172508602252594206460874586646235479225619420205249648724496558876867275679327726052455719514710882616114723359445391256409399720757515908281770277488944903298299391435697480233036878593751207728481038893213768755235616095881460447535101073954928117297636906199737441695268198587535980490249064332894579777440421604938895190063767899614830229230928168813807057499187929132303000749919034520935197237988237451550033003560476104152204320216097875632827432628490357917106277734575733670965373002460407433948483994522549737111261212012334933599425622488984259212674816332571145655318966668625998050478519037405750578065534716590227322325187242236349757140299712085364395461709193493279281502206460231804695141140973763742969153065795957479777743991183720193228155645780694134844862766845719575623230946243529268815863444735330313681924329422973701162650534147213863214556893421932526031289780095374076830611861747666807959364864137176907182075005100783271096951611006912747967536872326851851337806143580691893035491622942150650199487493933400802589429040690662221857821175640899618782096940851027471309664146129862477426614358040265964979275259814243497722759586591069548261786450398894875579094409833983872132313640532411417445342407607871922992608868207899978533998913054634561285733729137109979898378113358966828369124835987381998102217017230176245340772775863575649573829403406675283993587269852003916895692959550390105506848849285737293204356556270279382723937044034861304713298498743192009693169541979016582085955381022346190219163671931275304158410683476016258312058128178961133088182360439340223878583995535260731408664474889847911683523597421015799927710739654435659365245894270976030735465459900579896472554737943277478089217221438291910439752365540663466285822895076889305691272811702341396779084349653984238765722952671462277100073819675407039451016312824017666093250687730375988494924180824608114750065986573049803848649045787728675357716621869025197677444136444440812176638899118698280292835450961334211404145998371035928212800493983326813161697064726970917072122404595978824025810540959216815180495368130085282103055612471891070685773456605033988078200038878695312567338483197680772704806676852604649279204272697244504570332563453039542499157865456284141298578321573459217621886965740912272931435148536164081306412026799132872467472397913304670835098997502482144451660951576368504923791872995312402673211093900427008755419076644094138234671296459712336239908005784484963289689834572975214762934592495438568379691577865780573180518131271190936076177910742272243296491371341264304098242969397228218942243504599906071088998801435180635392624650234750223294365730621301767030549262183816062172125652859069690905447265967570463414916010631436604733821083145675205947263550918833985475827066026865076553217006891981591047916303110377832870917745749080079649405242035775801183732718874675432425940092713733639295501291814837402842021563035657420788086972114614725420679966664320657649316839885184507622823688880511549531814145375562922726153368538512883648029920270167634260268483830269461509777921046788603354309153581114447749661598275522487126631685315325345011137395236637328816842564116043268995009177416408652642576808206816288537532293015390598387826463742258657536726240276421837636098456424908414869279045629501981072560009557219919666094153809256791170578753684984023284831830871815860850817149223217450864343204668985463589312981096631753734349813122360457571801685882632963239661251889256981842623962065679345165064384646696830039619498264181412217297993068470614387614641844451849010053872616601563992718143929658250811517953790039549946731587128291529094392400273148225159120562533357518202762859693113640595089317161962811214172509657603575709723553237938022048552328892315039195818009127280929288267089107050248578579752050499287962019105144868394176639357014486170764578773395330339849714093767005167857569126929429210145344578132817235234046150734198268554607560874035449116906155217635104058226554884130693207085704229655453365196456252642924358184122335906440104022953180407385015477922737153474161793845958138431571143572845103611043514959701234729748583007075408990991595119995722597559319333537733364769462569887218327734408229031427323040859126927393344048075572552264905324842887547878860663694623593482737810394763045546145057981503989391827274144593565336171927615456554452779572711612660857293068915236563638148749531453586836484035076105313827150770954460746710662421065775745081099261364364555599278620660492650061493625910360565223587240107458024469659302201558572769665173001005069464260505543213737617551806297859640593563638769966418890477502478845374986678219605231767856255985449240126244067307335267517658402541242569520214648940175018919883510362479329802833370831914778279257144915596055264145439181614942991568589883823219094289752583486568248904077482010216291641139422469372302111387037644802620519098270413107804554455064520367581382629682622881740917374111728959772323548175543774673380930608494020730883072885305737921772519718327501041067982795041242804615402607797478688316604578424214708775735595837965613012171360698984267896282978130399054017949882632686885883626836087450848925587708970758805560445478663933321525182385600071583195894962077571522037522596157432110766601970888945905666155358087412712063281415613086504020213092480201335054062825794653418987375978546962551603545550242236696972075326541865243433848678877544954257552147877275076156433838691848149396421416433204653299500395501527044010216614593937018118311859738913295832680519614758403584996554626631081010312669593486154950718170056666918624663730064286945520627726194722602317073326726535824715686138212101601142211601345295061443864302150183102301428328688919785560185091839838951250380642820067116513037219807856252296773902942095600831262807144505807241124210420377579439134041177730170202498740863392373229081742513088933289816896946461269393662812110340405714253222625363262097876468875530979489279082008878071047345983049029252880262152915461070478707683911717487536395550523096297054551642926822583125413013924231029243327533142872023453046011690823637709195665636090979284953035708504155252226761450404290501031890180262885872891565139899051005042340788009878094566540040319901486069504975355039723945773521520439397071548541797207514614555789844603984007059078817994192356517420812962768129360346291791630698169019608069186255000419472947594720896139935484377872047770853115465536413504961048896563572384949938363622581514212330944804611161987804589199012417078034786436841205442186386579502592883457042894786904809745827863411715373762128810969733221584141249714257662266065242861032193060732595935516587431324527151569483128113536312284362031497738088620774599293275437455181049382963902263960119398790070107027163863240088305398764188393044040810276520763912255997179769952140573822009583165461976756977280468728572419483067719352388069018265488899578249604082812102880758226950419510967194127116439900506765977166182969661452979218192674173100269087109445695504855259718524984192646717467339788106244377725286899918319712769840671886723560572126444737110932607756096045872451291222215592945185380067065296289976442941931378885649998713796155233606170060291397824925470634039182819410030786008538497014933245016514614595966025025328143356544700140976075489956157626232442869322721416148010960397144426187466588671428180315134373225456153276342003534538970097843283640445571032549462027962805854888763399177294757479441554840080798907470096220558400197908078561264557670967667794570634986010981718396520023917908055626156115397881819400699323329592762864054125293023302779908948563018237053051222311080844889933834283568890819384071300799486378571295239530616433909332647003268929263682477336697152178248163803193992317838362356998435250981615062987646705677767753984419703906378501385810582970353604964423945861637834464161555684134880354727932472291825579648889118039885330435878434572947962047515437660466469368796664273564750457670798874560839507576704439879895096916535692949782310969738227832409349367709116001488612843777709335999699954942170444467427677946138703805300135431502917500483997837823203191808895547541037879565128168826193430195348475431156360330855982173866409937307605435760078240289237167209206299346220185957535235062956935597177984326382143603652905761485939547807548609639644105644299953325800714125592552019602939243252844263690799543061793422861541787121061523960691880675924839066556227356199831565568586457711335244474475391692360028291360315872421749867037127454412634825727350353042962737706103776363511484570703249470258276240471663443810054048105603866071525993559400757581937517675497099561144943119283752690733127496830717276677871173709559023403390364625376327153364881761756285643050409330913364106100033418214963705602909293685826413461465329339055414125219847786366047492778175226555533645583909824169203586767403308961713141622045913943408587492918845186184555057402912369069732531250690623127924453639907766672636408191361066086677181801593363648928701949369474016911789323383219149493209789515907741200154478280880002049855003979604071602741661013658044275707145226721274805969953349286308117900179281027645733681277908959955802069601353666859689300130349547092701225007562901209711463843665868669329830664625645745865746779250861590268758301888561555115267013325718308473085446722697533828671525905135294710087531666791599535486882096311490845261323327759857557315609832155665286214775617836018097872680616705371531830423444062695660913002648423514589356467297888659297576202827521538756630958482269136669580072385775899957807260074281529069075366289125403916999191333554163751912906594998574126664016309196484947597264901433760161352515080169095940064812685976390004976673901992384003281811688890801052388386336385389014854378592676138656839582284122206897521380674148449326715073337801455362877623645717599381896525332760399648515338062536841730274685396984887942491555287113275416599836273338577458994488698730523463506013539384889016047824230256145761350356319005307683595344429889972719972328562428392484297165869773505702688377143970462584812324920260440173661145022859662605462540771467472411386744162794966931692625306338541303575388787592573808606114787865712317104752268402001169674734971570000311253693044422442597639260154191361022576370975068386320986311692995666387289286577031100941166239746014800883650096951292775528333911424560788549120258919315026072139520634813295989514999829072639462358461357907627743461148586967329201089811702817423396311048534495559665840417970863309859797570996505143328055931778135338827205458153707574098695282141755965507343739646068944833313213089231861850695429198609900958837374189416906593415215219303458822465695637555640936876421524549127911611694806368715127010148426301437469561786491101927655927145794560397743129355953546565359344009268997032986222545463985925477781890562257972114102838041982098445185709511724464451653774927808621325805735338955557005998001580541881399165903542859498714879605843050106006069485785099320691529229684126442365293377441731257125284884777614551057730332615794120018222536587550601825663307924941850537817982409975900766916826220646876693394053685112778748312789922682932158575644512723700899783919779239125049358679422292747747105715774689667102419988890203448443964602851197475084728842323576449845683640644803287243043939160054324434610500196118385124867851566763837685496805380580473529039782238361960651602928289598552992647186483851940939557242445039164941230107274631785482378611196635434323759848749216099185170273639826748548833667768293010645212125193484304648640330125250269244209064454861740901476566282340486987354931962210263143407564442258109294438315258647386183818242393804960105687994742116398453476254328885137124940980281967308201610365148551952969021142226132665533615343568459193076506883174100593256713436696179867795057203374036432012990191530064447452308074319408415749388347328715404558517305007560035648204029525667959209831696346103979234479028844821765726232572779542667130788180085145766722573029248136670170468186893833384951383580862285999475975012825438045879760290403482917814884846799594203477944648415570922313874641679527375609341494156021946910750746023487145966868435550993226133266023179981895535993964056012368893344262591750809586911619891435440904593354470666782943274117562966680360256656446349130980491760259229355024706921177118804457311614736889386658736063922625541931440493162842241287786271185894160282015167002908123068596495067987394888945835065675469949704248055388346394651154884714472569577820313261473360051700220639339944913892025863900313835268700091445712706961963435112622300671445735333669306528151092899205220416337663148732338161767111637915545695977909333098797293327665970827454696609648743500438616574735211732256094440922968771492838496379793674037981832646653192683119788334133489295124958952019353603584753589629944097056006857864152706494715236178338024866828014956160320264748729483081683275887106040015738258897141892663569742688086955024021283216400397968566863696632422441123219349680514513110791899753754639946956897502380420868401415724669213011295757699611639525809342747191221138303053736382155864399176786856684461419923446145441797034089574926169412907345424515581308539378453011309736538933419460638019890056979198920604192694002825473309203863485187233847337577802456277197810035071472899542245289785894298675919883782690697393235774155533817395567421779014283836304692822550545680134548124295777461070915526176995580988791589356252931097556617128197005209190342704810746458557523761772016631032074593197791616485545639312266328936001290609729026383014421872359719721771129494042807078554855510374246537460533815940295023895470391804318534264613737298571843831757475592921867751205266536614947063113256506209872060175596114699307445682847626790119657278246392705830557665873923874011516512583493613264618920791096907996970397075373734061889713565101139930055592183284605735489751046904380557677365017659119163607484568695597894371395769637902401424250211268818269804712010989172701949606713201366193010079205615846928995255348907526067983795661547825484641095218693202183908551309434910434076938172620712904528864090123991518255633614980298680796026495973142211180492739276043752082926925083019801591768688976289733390875750127244396466611645916498958766339590173045733094512886089798431808605724908474776961041481861343645227352443327864498074290836737266715194005216605376023012536320636275434335223613556554214974082794622498314431451646941520348685517197726551015119600941526393263330693727057734993065301045538535595400218025734968461404394772033592385679213962104152054973481813360352994286954040422648627461002253154389469915303249935869209239878201968963777763498671662931438298078756516198889695370874159717463284449799096620691855181481794582353421836827107017698619169895205357263423462140579518124474738883386703901947955688142140787813154547699466548467817510623675099012068181058889450237363774615992223476497272380329493242524904680151239662946742652492205112437661738059030878045183362393178561153022564322952134443033233047149887279974928342214260543646086294181516929055071815928162979721410229771849178030039517336662942603625999502437121328226148732586362335935747771849509989856391877894044634591628717076492391249015185499269855237880664399575312290928064884482397598874471322689002856368623327548132944788971705945604375619745210017899445071935152930554478250655919275068400517367520279368797614252907262475432684672513186280620455604711904294942320346104232135005829688621401380123372259010400233622946880837638807520553670809433444085054284538228023384746854510156591674471125450945032713229939165134803531296279673886306672151861080463978667088868509417681938245131394690098895239218943796848587765093165112637094782611939885046897424711111485961843943405278810158377321884720046427657591925283410200505116835326880428040224843716867741043685216724768829709901504321600416271165138884776248402197015446496703171423523254296543761526072498881223739211421310665366935146102579933953468409795714606910821420581430014961373508256675436720750730014441944335461665792024649420652722281373143608187954944988675520838773541862635529297892398814231734889015979810488387045393540798023039255271877967888156281123239975074150516656284152268431544351568979138807089687710796587927895292637889033851419491117729726615092690129963705161058442473395783488493117517441572649644780514425233982975161749141325280426949775558802929556895717741330229763677321862407212017701548331622171849606231006473261504867419722290067253167393440666622033858047269162774623871293340068802463367925586281446647600984796290733804521541920354103583712937509838493758359639361035564371083835263407243566766777073095878885016693446557916739972326906759940640147566736477822581292364573367777673992701930571413598210386356706778925071962104977902049498320554096205543094638775704142322520726969006125296336698238639508608432352872820219175047800408214180379969897328947308783258588727040519541293423487741293163508394052661491004857626309918566972659235382707484196125806904230922835536800214656073120151433770515992176669579449846921044276670302629595192990251099897358944196132196308148787776695122695167220455886717880088789378653687903661382697270333879422409677386599621353306092850685611501230841858984900707396557496755340166822752239841208325769391527596429361951876772034281416836395205166649246197387882661022707189625704233545372145426236521698175151238351313918313914065276796486253097953356977314940862680664305936646752614971812470874846689293022109600526480686875682087752162193815788386631806024711043248957880027185868880845587266559201366190433649664872501895580764951874486023964786713303223553557996326064157829455948628175743845380062618228166496237509323439875246877416482452743945665624358134909520186940877787801544111157799254005195077242659894958257965971256919795905408470889344533435050177001285861605809941785521823553447115535126544601199523751474827903992638767332722403827735642751267251509411832844033878592825690230189977181943565220283235959039848435683052788892520022043594467857184881056244966430332183749839855619347503451487483855960301613908659290596890973247957064994858332297743617619328037605574255362351779433286497577257213225223269808541390714026228622231006897873123142935048387389512457981273843008554304897553077283919793937402632782071443230477652957932877290282444612589185978666755218603045748334857650641087807925979575437926085981802481291683083450364240618601129269052982708659834738701379619232496970799967913789141082087332042107106624233700248682855228039219471909179156890594794294686103585512870872402073085699484429206918950449252775066811039393496118042750877089427156260884640244977153290206123166053815484433169660511729000863769438397502063568782316569212090379825307725486624396090819832555614024667719826856654205992194758885987422651347043314097314975023906782681106436066440549337531267090027203735272859979945802234901697752817828822224738487120037554517615992394956113297269246952383654505516358886993474883235211131492774054070501181260791603975136267055118353218044325286345865267683432764376303952289247831684708540240512601271053922004518918669973437681372363019347166149973011625839009748172208334295475203776193168448988133144208698433665923850211392954167393532947892897462204443419705699509381878518844827568059698138239951476538226215772822847817854291745975447484977221332820827003580059512653639435408166290826221338303049578346539058946973138948978855682080790374005327526063378910774276498375326995429362181392639544514706416931652742289891821547713337224954520748460969143566509156336952572879773301950739038799760080399989506244881456698659756075382069023536957265312580043079559209025886089997436805046131667008189757334823355418580036512937178779895803399456916602446050903976279165250212945946411937569664113923861722190160248094512203361850718045495688703904072734665712346645794043801123438918535991328233385927468168546536726225152679506786113133420433641648201747972458773055840638113760991994328504350079980403967122445100391131826433619329297782853968611593991452010696927053926436640101966287739809445191064159326023055404220269957881986159090755031760123151730018572105798536627919618708500174446052485593831258421498324783119060646581372716196147694175632947914315545972139627722722047947455448100403224300676997843061393857923517279676426289726232494667270654632308373569957128027891964780123252136467694205987997815928907802314870142545102176211610814888203826141966071068822763558024650422060416496333110762125520516613614970494828774279593385341961331520217807277386038960053941396107782633191814384423925618876836998144061019322867346764350242383339070763979294610978429037890130162454579888608987696002448354424373636570471052893305062034571706125955503719701510087706392173978281159636743711532457472982034943623439782768933762199903935476373877490087933538072700886606228984613469455554611170126719889934856744097640614980413299044557717414784066878425601637365268237020186326875993580106138108716422730511236063992547661163260287167056036495486889971940486845293287124458605049899805277590251592512023916080637983356057065067876944465106025616743897448825101069208504846202543354674571904522331778052242665955757238844154564070492732375457188919871448156974206849915775018467708909553189054305190332445020066901768339658750458800951218583717255901235843228511601637691469449452975554641943427225128380848184705224308706702744642813111712059788061928579309465973812326176282088900178824252623590025446969825508918004989334737857346416566551510623943842321178984524223730551519922415078541490739549366542480162499971656604024733468047181229671515482781997046604898047609313938674200214651825911074872266039269349295540586856516687400015105576459006353173124399070434175019097860631912220347479202656641151535403596972629265609722396951058037964007119464819724608692929607682032212364907144969803334379806853963940472372026387646276935046775944360808043723896675170301246392000450012190631585374699521715073804677459654359315722327969728868245484047372725490767571129819492853932260627761312563178830738644584156732159665122722241860037369410062719492860389131417627933000174489105662905911796621095125314170527787834876316837445903823535947075817784552851359363457143352515523152223155386137202885046269725273638754157285144831269796760911162021245234343979788681829428161925959673254523913922023450058791838050783319174089972400765184850079902595841593158535011228118712873703630175306637732722648455032537782474991807767320165651118971272705914306436462028420529480863801810393875359079120824186180865491882367372120119325572750145789890679853914066876630159036716653229164275233623233872025360656271869351701735637882320593317030565599446944026036904041178892296566228458076050608174780132143188670759978387468668860449327945912273570679035533639329245496089973141968140329619127670032284867427575460532271349498853662832089515247856936286696791154426585780369701360152681410130229766844797488048446994916766296814683071547246070331326725802059722067675959515103635135135466793263429487460049581516249669941342472146931835960817564001627174117248542340313054489514426984475462423321519954644811136031208691281417476698651257641457461378347824531453309927148545049777382160207296295301990237607800374776592341162534688393861158774372334924429845317774647631796401702584221932413324788376533984615778408091292546431612897919034390674911577479664273054331145317275744814544428510744441764651087329081259935866682058773270937778806719318521570068277835776334368277281670010129139347043808830382364422112914474689107755693119719066061621426408022144264690883075907566482730147558734305125909787033238450566545904692448309568914440370214973379943377701123879470710532406761279693352207310323073764519178151556923732482889278286873615537287129317344329983447876121631712186364941680769733657970437590111167210125168132728633189629183761231275744882472030244365690888173832353907447831736570331938288380896112746507174244085055433534799130343494072492414224157107296877774934139670258216739022686342219416729885361555189778321899802692788767606724374410877099092781742284128389603838023734123861422960672744191353315924579073784800056789784496863527590462362124727569197422653894425416553188212623274282889739138629939710529382194783771678375030737628628288597453416071991736974805102566265231479186232593683681709578753343348988083154370558442173304274212753356877676453489728440058434551343866106959072996019714334510387132583949952236705027466605350268577077140268921982446161578423029566009480189126823155998239810849824002761953451255291134840513756443215901501935318516928600628549509135842876872131751367961089983847503758341890767349218690862540255376819679301844711402144252332960291294296573300466541557816466713479022516739792112819409515569427469424847678693282990799166183423231834126697505598723398248388148995070842583649695643489228934705777359128551675212924978971512098111133908080640016051293696050944810281770983457348468046979982686435868397091386810688462376692354207515196963481189034969395207228771783699716688503468893401749768496106825065813203068324979297414588703648001028373084669178776671233845849903271682756751291603859999478673342110127296555260963859718766619951486354622342147757290056839944820863459867407789416868427696342627740013186650692275416637252226790949505169518360033178067478618899892748968815953983383502603059450262966100645198241534508216213491937211698751869050670633212052926998184650274496193062507957218342869411418764070199275256434801908700198823475367335603696903055075385887397791912332473779452402817266120178624236727574422284203205162605782320676090175664658757626088131713414757174372893963173984210204828550079678238243561358269218110212275172663605815709608499345531069787220995007833971383062962619210296203982206453058616284357484866884936779650473064644494323711623131124714428026443817511566881329043193870918267095988803645492649738081885809821922679585031210164349073605914473887569300955881213421826137849992081987750020110625746235339501504828136604535648029298752418449604820699445940290913850238178076882780850858618896802026387175469795366956384377892185099636304971619919573867763295398920670301129673861002669827155081185482854515523813116651242731149400422124053867759687932763010312346768711997510395127450859899763224671186660555749007321686807760458029547960971162484307835067577533194164361822917822979305883866965240618362742767690671300074077678253146258794301912973314089113354050002878399869746331072151735632614638978144361137107002923116026070269381596056130741000147352734388961485271364740556778389326838345559996063944065589615329611449843309615651026767298868055254395627603904579029833873492871691715251800501810732386892919239837014485280251079374895915250599691837717341346941347408732851042737642985720144252483962941355181035836251655049685282065260739717644584292484210571077539410454303206202037263029571301489666384761712361234431956216989939682537299901980152367006871842358218078453723520535768656888891369924438524524850309168457811064091274331274339777916425877955258509231356193869855592898691105360665062593036622728242459502319320616352466606461112265541978951052740763478957952484815836213638318019035766122276716924188408130864378879868623619348846657772791363006979854680333241382872175863739838265160496465301836643818561921602619523990099802804452471296627190857314765317364310258879275881058005193713062525492515665957527039731487078778023106505425599815749833280546716693580557729384371163632324181917151052585740834312638888046482236312292997832775635929951665695718524730200768320216138605978173978694772110883835450741529646694814321222411747193735836757004357902647158905595848023350271737902086156559371354633292497799884749388131704086330976449144515390856130887919282963942540199742627089638313293733350360578083419835282513746904725330091103999355179937842431898044134310241622180146584226096632083387784352870360085343023041023677332018109949163744648499643536359311074376244158568420191104538571283084343567894112905231356455788160537314482132797423113324926747197411664823142007678411091509549138728809362848773658894578268623924682105171204231218952719670766180283328176685979129563047315484019407204216991660406236186460408447983245014567779735185269246971475047298973614843074087101798967588732015405176433544566669396457661481349691678460535390315947660459649844471401060528218123635515373074369733396604381815272904894221791935028337985691391381273175692028118727798896185583043727176309779481826739721126764869525031909232681655088343819293989335664970042580265408374503393379098540163368886345215876617753202605899474383132761234447383215064643953180708669515523061953761952870983457583391107791961659550403410531708540538895667680742987318762631724068830486053922739150123665859726877058489118603259765918233744736221521567481694363460408497708717000151949526103248747938338832205593798296876133124986016848186340359846206197355387404381875769981347066272297757024684888972340400714199356540308727606377152024517968037976020597781006596188974768903584003097660780084336231110777599343996454800506336645346867217676282988728763979319597303832824369312977006599678012293708165726766354332338846300002554819429227029496377426567849203025915562888116882373301782057139264543296332999505998862068440784044506086833660901352884658005120601825909337981986588235795173345043644839813063044799200952164937627032304204489419914216142075722475044629657784556551085971406822786434487525889627547240777591156566051918320740145348124509103552548338769106513974380530280906872674212066245997074995336581862204197752530817901955982580280570441185956721315401552040031551735329690523094540846924899815582797696472195920823048714543720290529794822895090877855233735584114631710382646204989832468396246163787682634230639623200709380762819433752243422780613976945572739322688005082513806542367611631090777481258634485575060761676088227236845305657389460520906815520070229719489789888526811379714065932213773342265849770749888154012835403801703596973307469817226816434415078136566593619590066047827982564571883958208241511199946261374564792309902237018928275285546028688007245311171607474997671992354773007498818088756759112201388486019902291970925604988546153447055548938664615787232269868469822176380865693036669628133844789397854698959194492180264973987802611955706172092783854999534677433048504929224010180249892317503955079975421425456614852916028319531185190800064047695223908972017894846137187533940876569913418690316122183314427466617402933046233700775680522218212790889703280129020066626917301836813283480006116996302790127276362188090881168055110805731999855669056123234004220252127060061252471273620811612820500305426644814727610536714376830610207929474440890987661310306026311021382702093236796752582841832806929519836158259568024153503687081393764193041790331930357424930549856310223878903691435174291160147773400489197056946747538805684135884317883192944374688291268989143550866335245859654530461947638374427026954790381569995065139867274665889528984686292729509045421593491545993683666372209755526588107139628342875331692276813309328023344763651382205463178526160621057110549760364686362527947229440390509657288506789086581611451341284115265678755719810157204063825965654831094219490839198597557874015022590557563754502359589853440282008298790700776454934735205611612762390107021723782687038646862590745677696089456587452532266020330136622046167986148549901572766186091743685954637345797683587672007494328450426942832113863548364239316425204844895320634386357590448489545803605748290620368960408865804644905288789851586019172240510548434726358130059992716721024955346683131544064528194199925233309163407298827446867308592026428812787102595885107410773123320945146349719622479027053794119514963593012735860953192956731335625991611716911478287972040789083002372236898061348119843072061688073264504164334402251442844517209408985236755591269784049429278151534678033968642105972918524560254130914316883072907232377794056782104746956751864033579013749981088616372473225017516772483435585138538380991181582306288813717731291985179637260704021550458270304081590147097519604765401461424916036783689125921715210840200487878421123357562238564061405076917179697093694198213161241233261732163436527905263599562015504429027925766306565395946667361379675119977458612425578315872104229341781526976728032353497346014246153210498368087544573537640590674680897463998942124144283265631822012171666020060396600479298653269929944549895074229368363794511718868395445463849089583221746623564327478059968133214644924476423972701918683102585966742501230692277820978552005713500091332275488649149050757380255977074924831893605820512191606230651203709330755237143228634353229844658544444493197781787221210582601387030652746510526703226163567814095078849832486583256716045457345101177576772099326224578441220929814028509930778532746529031566373542491989532188902338277089956009366450546139025611787805509620733101270780305727937661673794302647719915611969233760156746744996986248772613915017925524002655993760008518424763605629521198867701415527316079128083334863373765374993325255321996364249707186330716911802942168911662133928172122559016708875388729236457199527322607684225989645371651216168509386548060704637870068976061673295614822565872327795326777784180584360144714120365643424279288420660008383933405286277465697231505640864045781728235302220246335522250587771243189151824318318772065076111284876035212701620279400437151761435293359304823633570129106566774074586364789665696068601718653791419027737554447250044873267334368674928109517435090394170563523267564539240323553212085975238193784981133726950050304383910570001558287255740635107103778969161606890802583416996532283142395059882607589166454518168645559187532792457495706258966995773148921627541012399665128478815228693336964056648994370897721935991471213033113995610529406594295635153229298060851444186853652269511387157943824286852930096353427199252854606249355263409962115792808379625982558604057321647538852276229317542391729093298678195233083217285915880259775723991929416349255015347100853726711336078484502066670677706068309885205505926600949196730652737643830446419820522129828438090758902701564824342865640633931888327167558163120769880010392460415804904994428550594790375966577049468286272012050137341437369474572702757803283920989282957306661568743757253426166628357104216127722288114320967138334723539867154877606671729440277104325340404418339122809508597414567195387496853794212628837421791648741940301637943600417191024367736590932999450570200769742342371921693379717774255154520963844773164266668313442157499456984866091757891209171618362839323347229943860944525655196580583199911986653637227962325108157825835631621320757354871752121411276927125717271316971941893244286874155774844326605659240920867357234220062546242634876360741213331958861435435519265846335387157683187239695868129535863645173032108853718313831703227890023550306871770729639645808066383332329050227808320266448048987524576361695858864031080213637698266949074326786369937082734892369777009946654208333990209875234558181478751296729941711281328394342486513270746961147845531020682289651876613800229857750120682729920303893181098749720969022238675127907042990527893510271948215306186892261215590900333028974600336341223924654473068972306427850830500841437527455749976082128385422141790579603541380528764485870069192803653920327867169064057119850151511257768964142940065181350422475945950050169463634320817854358120458938237689361265580851754826179127770918058336056651108721420290897931666903823428197544201487759051545107495360447928502754541786537919907284537550342108297247717394887239923917258836855971645518761625310694799223759901910321631708481152931265661076846521330107806408370922387339465096730564698251570710263842884994202175808560628577111736796855926867965609644877072963329132757670441137722250364856756075589983513548385972073692673874344364587051437337484870374168139572980075413085474025012078917570336549227832521188210152435074184504061423044656156033985976162495802923454992411563342670552984634249850481786372470819033236481170405216002628529353124053029710385286190471382495579173463733922480526939488807991863463772790938118717853882551373865353886260667962662944272354758411371286137503171383601778043976603632178434445501736694781326168744341091885705596332770204509318928210834473717460648506889509861340126888693623617504378679980863142029367824758348384903367922247878053224556376524658083710926127319473726495710253844496642569233053723584127571388142842024460238541347261316216070814288886018304685250983379015457860500018905842534480248331693425850685421533018164027930937158433365863691396902615158846872476722166582568192828009785262023870153947300841270965679168096052916975263123489253911886934153426406742640573476044255127616372150552602145969510564996307936395506128845813953830326309025547361008203821843820019760919663164638460339272466545354765711894014699352442410273361949953189223506514440312550487457598179819117200994625977888528297598445971205721085990364971618530416924232668631902765590740053644842326326857865783968130591348798206284334088753691420241697685133609840854950350118463013159592042714361000616813043596541356980097128860761813942315969362175674602916427948531407541095152538000258563734367558521581098500986240062134124620812961436100375817350085410552846294894600201222266651169019536160054724693910797950474580873134171728431059991702481393230825794038458312783524244000765273760346403542761790987339047157648705531158658950071230151964865254940259733074799481315379276374673981729210068564044371996593424838183651971285519073730609511491272799810258061591744412598536947539014454116342147815838729583311384984036204112020148049298598377775409071289590539735937567573548175286537949473123042623352047663855541769186253859303548382415688302451907075613404393951815913389168862193049418394105827616829444919193582865947918609619147197975637800175277282398288537176655072134845569597678385094817896761490146093113695507554325504036792295925414705394620107728603902980206694471081669861725467077672855078017736788032198012343036194740673748015679392919534587437558522903490627458864438175390652523443866973310826463359537174476367175481466291846158360836634186395894129538741151573505185083531157610779478800974508346214316911507105967010204912306959517784251987380493777709147118908828004415186494495170820248154588962681010873417766628516880886435092563877292579621236751398980822648830913784597871341915939276465720602021388043322150514482034197817005527826904155750939735106587539552045944249544152173675792639801288817130025891866798921162234477619688969329255992628630253422746594571417523207641444143073624096624746820939657263465207611337160199406733194014109760553885164070177383325864428632021559796262701732331834354153970464610647979326935978178999201366998559245916881340744269173422323004025711769903980663122651780844630968314473150637982922039574141132061736961822424233712850648354084817488144098238576530058629826798099844761459615515172682575217786536572446853287104907249279909383180359421283682634164419607308882317690267637711786777876504545792370578047435853758811534936943709796167753584152661847974257715786184357410614128841108822681117876074001771103565335826928057165484589394539720061667457300641031859024498194652791210510044496445310995147901772122771170354374347217001733045909123228690626945926504506534515464954309852334329289019690470192674309341231685248478073049152598510989906467867193406640460382780616765228206243241797001275635720900094676386186131043525504885330741371974216993696725092078948721844313932765546967127860081751615844837648772119539941516735433888423181684684746941869653073897535303477532339362580608122987447414060762493090539813490859572811846970936852150325722820704353081529061018017135558421385749642110193021859611721662216864652148288394654517947536789043859017645402508277354700384832543721558541323577661452910843697373644562912174200800355583737017483435433616796376725280003909332964323808612811897000839289380938439382872453302443097441896657679276179405273632003127308669685472562655792131370808566870683927196243555912652179477498797766894037101297198664196251230536884123093669582240777091832373222513364526952723445634959284613640141259702925507209903674591656425486718480925385399153560020656452055685601748202853913741772841850201884309397539696208583396686674689473382918267862477858808489199528524369951215617210621093877184447293179001115492497553251082661347540109862917500067705902680722122603187685140443964612142808040254713205590955097168477270114867036531858175391389947607848466745223289849196344814884001270501178052210606826230413699479724118162762388995796149715204188611114798801884152037441321676951919576018646615190639795136504454368330241223251712278834321460206183655572976171074407233547768980243679047050533836212650325831209249497439528839444692227666633034332000060615000199933554132694126158275513222621998270716920678447478809212670676819951227242293011938106876148797081425610902741833821912548186642248371790330153148383594857499341986196704392999100725804550351262014062732359053860173047560023785777664703753145835262612158673619861557643569382832535331827109689104874494823556163443173467659297398535663801225492802208898477703590342343740128147221093525243126542886477717438035072384602275171353126504617909822917376262592862628000581481005981218382696337699944439027116652655577303098233976744170797831837128058348063022034094192698422963427655185398241035681933227847514068531448851664771011293208163744663569115141136818588563171412321844605752737784047868093938936662892447789190169948579132479680517447869811567096621062371264796717817321344480596776250544805026766102950053492218765777583532347157029353914724550590001620727471084375507471751277661510984422771022932552302885770652347552287685638752402873626103687407302090398672786819009673851290431901432567571655496156038010168979730404241219331233437900926301863011078360628384921555458031059368834263486424574856775024138434067274412093721392711641135763468096903234249337119539315972751656119686599593685050978172819870184287523579454359118141681430639817902184772683787094478884091028523425091293757188816024609026530487647208709024542101201153299737789190462249556192396037842555146971492067539847762898965777801016687737841715419607569339074514608972053984385445952609264631320532102563644862495075538921542841331367410816519952022018965266859325953158571546296333548453051679201965983000548679054545282140012591144787482718080660518509402890063643638976228513085234964150430572336838679038929005072943532993374512652145177063147824724088154551621658205520856934580833538933117555674619332520392034366155018262228075902481339265322950840321842295170055487371300870361259427277807953555672434415519775586457112378002893102048135815120635022357837376026120939076811191249419586680452121407705270900229748959429225491156587176217788225095743811002840707741705818425182558536317152605122258989638572190369671289442503240980816886625224315720186545524195911918672890486387028664581566576268090335417778479254112546208305075200137345045542455622116662100710543312112887511352832207564199510686056106956938291886916670073166404495444463880872193423186968980090889458834662235007329532377905866009586184797956899010655733503398795042521407551872946451185823998155695441190785707810306779890146276810462072298063830147176820723934347713834571011400231410488404418720474128654672156950866435984731709335903783156267965716889358247536608822387816806330784466569411881886685922186753215839187124374547489056593464902698819442904701837653682793473987742632740041829305941098750531779360500457258581052528334212514324928881890396923213283437474981391047574004608672985372234070288943097684554622585961144835186527078420210106232353866415902252652690564659869905221890936761231041714485925931056153147819041418451914895240144487496170005563946409274252665381687409326645164377452029179102738921250906498544618319652269293915678403719036745088340162294435223230274655831509784190367515333028401291484454001078476436282178720151637237892104122012581331830381750650541980345686083544377414882980748232124167425414761095116944595854200052024283649975637497445386070524858497993358113141459143551302252603648746865646103332218896583531197711825687295791967076549520497153095987432755836826694393736834269128982498370371305942930056567482941188092840069524496116950303124933208824644846342961273461835774169338954724211500352738771037804913881168474680619025505431945583749262374909463144119736442056618181652471448219543204885380765966331678019021623787557844919688327081901957240693932887872936848604063370513807676217292180158766716046889393892039314625911312986403709218072376023477615018348069922562424536085192770756682365965031947690065599407361946577674816725009654431813845666150260280447735401750245216411364557736365496218529182828374299673075208845615560947587926986039634939701764778507526685604555781195588737327101724669303240096902915406898807047126850586659261363516215642510172848561854423983184510933752761520368779678505787126497200945137336091320568422822783824328108408354311453760084734919614437998479937150886962715941699344399933861368777965175770869877192958819890895052632590696184583490701346706390991495227201592262568920016820143578247852345294412072785916426366755435331781920341612832438100365117694020324702873767813579992294802439449415504000737050542732498822960253899268451498854104214614982430246349115166442823741870711265320776461307070127464096041397593426693639425772911344555613134035379951779249016748137309150023603546454953338965828839391156154067336648883353105556386719227427000823512717805150931238560917101295368500911133707274071618913362890994963650354347608487328950028488766381550991049124930065246689733182130252798899101081416304019313696530263009016919129944570634225700512599295642555428885723047863108891369142260200382904436408291093751030336611568207393934272216101968599489805071353265570223492406646678356366493791669445586582656961959060176825510827261993534604217896671566348906150988283041099866115089248479812195485452342047186146425646052650337972279407828131432691673263984130940211037998116669058395985116838125603938583185104961917718201559890658685684433372044266474315689198539472842154223273645162536380491206635170464777093587952856048544643970989451004366797966039165716912979781624927452039092855741225194105366244227855485660744795900379670424420884712656927483832939727755803549711710050587223760038809905918317860597815695901289238189356292517063873789453017631068712976462489719216279562282179196240997771605433072663808793966309798123690989467255077552180437113379119614951887039134115404334269021535684577090751431281247484338201793446734521879231498932658656482732550060983982583504682127971751456317483045602263116116611481782161198840532633145399884242308914050259600352057971693582930564202512199153032158833250677995320960292091453040383475403438066950560597266802535517944164191466696676854811623311274304034037580941366926351653697776458368906583694580590662498304784045610425329196513492230515909117360539990147751726230402401493560976628736913134004006072856041821691373776025777254661664930360161269152431178239403250962691648074134907878177459007564183168746360026080508822337907725188187523835643694328147532487755564812142693939459391719577557161998305700944000880294216759381322319441363992734674378410117286035228087795413326442839780292810265799703716014629980941997012074718540188670820561894001324419119750684129102388410437044267953342105513575616775789311576003941239125345649499932297641303757776679848711527881183183539962049920106783292966001116916496250244207864924432925298916659985622578038572253870937696751297378053342057854895601793936720950511181394103939117010343377645177752080136525806936240006913268822204689505960812412075892442731371534577925895898918301302865650236918840198553564478525615557162832663530276507956664135707268912010764135363058864430473632268738242361551563903573703343871315897046396788069693582822566144461156624874344716787571523922511880392920045032533053897140599724528145923452766625632199903546514740193311645750697225240223826167709571828940866291103640957860296196361087231591796254914447047508051382971345648672102059937076166795878001546223532309820961219963142935547097988533886746199101119665386026918797767664045724775317045852717598441013915395519509929623281920576445311912288091799863129431716244932312952271461151992270913663495304813570690683018310842717699679486993570610739121425761943182502180226954981256724588416543423527234702287490429097003965720293685103844972579949538443646817239554871416786804012064904065985932802572519749123890295391261188341892060862305162143365433518460618151980173833222431211593945270344913562270109375913108153132435344473676429295572411728040228132665059956862173308225631069597533477041202929887033403159666301338795567613742533016170074498217101696745455232277141434483263131083208295351407464517921272630669981779728253140039906917495327069282253395117322962252701904118625594522864493051094946341706599616733363913285877753256102395935593705952437982880450248795287428284573899838258175914385456777310145900612039647317251689902636551685226020807819241128850115882224424691084312676495487401730673103053441479891796866252175042660937250167146053340948374667409915453390017053893892297173617016081446031716861543966807632969634732035201445239505033772666284424560003979624449559392907254628125115507270767324212449766180862432217239191576483984034980500359971743990453412977018312774343213814495218531278092405799276219165578902412940213528682642076490317088488595181145005460011944517719995088552946219975289126041126785119893678656049928374097930684281745641001588933100585795298369331028119033308133770122934445665952151706944829887648039179068049811264226690934228497982017954338781015223295239120132455794722235476477275318563747003380220212364027951518561977376903280055482726658729126423409454873100230113769131606644297830729666537129800425021727502193097527275311950578968703586288072394599571071663643700978324169344186994082424500158732593181563562042240439915566414541012208224074473768890509440254399124279656205381237899559259826416043387705462213168312885146515933630651859389172118069160819870495636645585707420058747381984392232173597786745385356796361549064067472698254779393703089546781134855871104479272353297315651623377390770419756816781047959319979168458799492603062464596717770982874380688230828606298422603519776913566411242219989471470786190038397814030799082166161105855939722295535095826819072460190881172615470207257869008879555514154302420044369792230636390207409947022772401387004705733245301682278476170393837850978758274815784108579216255586798854362742966038705461098367648800033368177394561485476446971394335936243183354514237524689318499482986885920814588555107405157188517313079548208712784442016332500284497187679573086948768349582112762788567234067225060944769381058522052794758014160931025219049422926965945526836795890320642393557870473987030429550286980281555948856702214842235739792876771560326963359184106212077389335021166014420227695311729912125119917141384913690799550755992303117461431055985091110637163173432173184042981981568802006311959316961655787128555057955571472534616650062996085437080673546560300496598251775139291941218819292927784508542009436991527767895767441877253900283605091779912161091971733834593676803714102132322076116285308202071395831095046558283330703698345239769346696763429077144206429189834609802988959515168956159749288111447745904687540831748661737406305359282969444305747936823084344717066683859461530595431865926868360144664115185365379531563880792813392193907612586897508337485021904548453230195915053472600097651344407195532010754117632838371981770925492938371918626186822196770491449941701341665889014392816199745354482444398934444558636752037800127051095481941283884758201809412207243223217949522627623023829100361202508775157116779216073902023044565858251422861664624497211177447237220743099100632925984104283869541106790274070314561491601996161784094309723917603949923515438607708276493824531911707915372161665410261180930381746862850353374214062283446296363124918471343936718627366614234156079154270962577648101015081810839867532183394989171602873595418128198284020474400193472377635405147196637371145534340765115664385966611517831263576052659877623725430791117667956583953527253507889480768802530183328775886736761701648673176582725251174820283735261453820003758317305273475608411792360324320124287450200673460337898795539910239800699748887952005558453342802009564934594843130098189001510928778084557567800718845928322107207373385920838349108457263093275310843345230945599443836918176400990975715012893530710142303490796284580194566737757127848793133294047657809496111312063201267444962258752395945415204168967983109125715387500618693785519960389504642296313689862039094263764788690429650243116785251703329825899944398687641103856744029246727515587417914913879677549220253913501520602492429578345797152702428674040785177731810271149453607493397391980555035557933569837316101743560041478783631858378957739554344313998796036385356506878178212446596017271184001019079310407369291094572781668309818118652548200006179115402606866947897322100612078771907059177155600088313548567419900069833725783908105137578195007645930027167216535628259889111524482241469276607918597898219873622770186472268731205583876520819942042660444627412200684834546300994726332853494224790586183880239647457768452313546935204702607715456833717617197037466569546645485240058802335519424420653233524581985487741307820797270558836380524445021172947834572940598581937951944467873677250376980935681639278689757712654439232416941980399007134628761498891115569353372336313403311951762851080370165530326674669783316420435708352650240784091929439477059957716052836378521388942814377126893775655072419016298299924984035452799565899312024886722564104381092151345597049771529656511354131884632410944911883917194673641424212112023537518014933192517815319861889055053756424508966314396524842052635408322687457138971823571019966065606108942531442700719627766858387925778004620087243994777036376024237877120864592627727008830215315982671733401792767975132018511165831561406646406325482465480109762843152142019950137607013401463824520751947032199855718719512486087430842431223159526644705065218757114016296400923536599656098092620246811865668991706854417003743750219083610080846755997970268963021091285202373967214749087872034113446623310027504846075227388106373692468667462424862245797143173977344954095071385329022610138233194300535074251426379519233003120763618569561045290100710968149746248383754428935007968883067036980375588304746061441759831985614341554165037918768646407664959823823744247328122987489763968033665127517937971571352357015745967193036620869954008751002376189442974085871735116437107385895732177086480683221227680328423229740328186647849481721782259652898038383903565022731088155558222750697039408032129735280966492637363512757106651893261519197780329648424484914441096797247018758987915663416258455425403012936595384192528656805490900424454385880786845939791630702569733395089938457229830446746307921492542963335395336820818195185774744800616149843634285506686301008336517708790397935618333128763921545180191316185336879592020263587106355177516402815230256839757974574608549903339297429106567024687335254378396609295480683296559538754325537960954714319134825157433059543756780207298188805636693075754113037129126760772610012372658899485516029334211417299622442272437533160797555871005234397580110782542046521250863152917167595636899559445446120715120842381906199810709519052022723133881059649891075325820360849692746635072395013060921931626259604677331366570884830244929655730138885058010643748328940714584966732825403636662128498068595920138689637093011120433421365116363135873603106309074776020327626908430939596932753901900140292101824605723776071293479165901567459874214893444137411204084446353781630256865831970049261609129102724259993579937550320874874253739745954824646737793084365362489928917940330639941975630366464938184727822546292873550515310710841414046484554213586587582632273563384984496303318644523639607579105321887851495267981068394491320897372442856526767051413023592858737321743626112884490977461025846966297050835422705889635902418374255505006472914363826471964743786362216814599659705093063226863788967405291083264452008041983763272513253549941350174863224084182833235333509971897189526043393535356400677395598251344685825318184233711273539824267430127018315935555610792940562283406664967451507603549007523356911893455801054185147084278148035964678257125933329460439475524705300646816175588068825275793753530878233164838761630749382361223173575679978692020746300096297977479828504903622060393811122811440681844572512094642203304230770433735485993621342131929683838852314580272115365189419227821269012074515710058213820955646713505054786764742642510780807558754281053183635870763524549521379154840573876844961489866457821720703318253988760611049924088017167399045527147196391475322392421656908484221870094235564597345832222071693929163653304843334613293507469480018827436647216346792744579454971470934202138861119776187521895831041132093797688655213913849940243811823947173682778567758533634073284197384259444629219211451077784009873270074980511886561394428362382385683925058873806821601204033294811861159463557953287541620591284807019228430964231764269906599154570701905870458615726376804267066143946629497211535826599479471561364472886078485598173945248746487572157276306428689765942357120027064744127954704261145172477910629110523135370456671562016454087947128182784041730668943577753295695165179953425170088453697899718221681694083821843091353853542642689005459349028682223155076146451548355846481624457801567918020282853942450575621343597624135423033571602151969161784550310657090157094032223621476040323699600799468593159131468235965306498166358425073560028333751022770470944190451656168880049845020837823295127994222548928303565249162791009563669487737898953525160129745627528986794762105557227532176420258653347510952552934555222236409386724923131694667779194722041055056293532671500425771166070366364776269536626305894436132773548845599301123122839796836073908730508177262780294940948067901935077106720079563018676237112494527175981508772171446236695717522820981255553161202709870681802597814103981317665769028444612799005283151665437185396536846522344790572419523486608995348205929533492343326823414609039405520695713341337884459459514042628798455048086196353557870574107198578696534392557546892572495146580743027462764797353390028510009297463422842828304439424326093813184100802197731107376464579503492621053221545447928186880286712294736945820410781830604830463202908325878017476596409609137577797205793513923214356497866343431567825848132822208136834984359095531823694342236415761848998607298949277953528110984419549855868516000976700555472131612363956331953949845556424407850085223017634925391160492264971219897673857355212362492423017164671667818319085572291022548367685924194909429974858510341226590665147293241660309007512796147446800399449056436775988500402483022112877458229211155987932829877815696248256704195488419401240229981856539458363564842683622108668751786487841734926036682509500524912261963761873113113251642723956726154275424607999142721712438134019246554642642735381871915171388613063167446539664069680735201603217844309976154140375480700419626408932173229877676799335376328508051398987247469454951854560734034365452227218205215248972835354059181305659002744180064992223951681246213983331635398953317670450501845821463715124075049478394977547745702803476497964263180678462604778150781456814252392406064827846944852593943097008710964365105061610186988468838200650293989624516943830135092593553486022234908394705255379828630876392138357610160840443256318838877775688111803853150370895945367376355528490036298231936770031316210743788314103989978682562788273364197021633213249827333210505806142967188362749242460882889917524543351689131838964395832800687830927148987129190677870779240768585615354639111880065472335785334451675800468867642199482534015673938711841562306443795380784249320248583408918653883631388843842986210840728703493877481354129781942311448626128238151674744070073861108952267369384978234153042510335406531320795681109374838147083089307873124786458122977991522777208194595708007842167008792458209379304630364632334717951365650568551097440210604260061289265047403162427670851142546751013737352587944464174724781128197281180774335690988292528237266952822043871361022005001658740864745708514515576524002373529127576359290779288168044848021535328123640727654591481952436690394010802409037540623190388440375842086489464348115101647621269526597788444023729161831312633872736882043113846641088098329841177616610086887412334718179463304111524351174470133240763621806319465932784739044350552374100373657388163591649669305934332550777325083984183910203457303031585458717725102661738809143753172096399629131264586245767076378754598636866027264912966126559628115928898990706287431971930744540983875478751962692570663214917331754083048359620213426182223482452502454412568877482615183986350078814646330314974577029408941347040477845570534908421250438078046123612882854683602499964565427152154013932589383498532645802887791984766037238219425969282500613599565972034701287842044553182710493352294166350517104447362437653943302916738544959647311380997697600147788007576046383034794505370041045124821571680326923707365790993367011857039059854303200606920059959863929894762321176420045262429408664268192689139629723308366125323534685607290623268484355730445661952143819360634747817089783017431524504462529796107279038023943199494472567449157667836852756062133798789445293848085633160904685904704423314621800975700496842152776485905144518874212533310670119782106010137997094978712255657004050219918199816509308044665392031478499975866931720766618427788554263865891448165826669814732088633707722676398280523404881438988328645933059770237373522846020632129072653778560920588251833017907262041161378579853300257782851323145594727307381397866437140033700816843988036729319228788617541830426397654096927418287369786539598789553270355488898211794038433967226188947930889489976213840167000442577544602697305590597795489123287438384046882612419472153055489690284543734950417533634593490275617675919527652036803812293950768692985144976873249776252559363328550576746581135380460706638944830565697505771382742049481437043130587958431535558674378046507328416189704530556051507801809914523145633883736981836790933479925573584989670035761727718401576431936320127441182347896958136651373472575789028334033854539397988609102466817397514383452670913213931696333281542016256570064737710913330454227154802632561555811173806289617954843424496931438486851757517130254342685187088058465171253266392528382088354957323633552357559522296195734564923045428015420858583811894226665956360528515069941591098096806929404102877338763901112948490132148140417790272691262691511031190445477500628292715713025807564098890617892262899128253769066673187494093034506830761334822586754225682397263955370192724835804880341251976958217861542786303399958708937598309516023982768295858909855986173722517206306896445357908700142958618355993546731682779685737032069906346338192024976270367097933271001928086572160243416098608236992642077050398214265026462631865779740958080726763938748699498954745848812712211011161624857247009963885744161154929863497613434459946708191782365794156220557066959521114742779451053802411319612590544398170654155892357188646647995976942035935797279400617345907967402913642217584396810480037922535433503198548565543715310579720834751087105533178257859235205762585264029536659839306529125516962681108442499188960287247247073703397504736065209695549450882894708392337110773411051378556829931609918599875520730121346744047578117222045288817068665712113497611349975219029887286607232196570245730351381587039623676130453272037842447627073771456201914728952550726157321853407610698035988897263187177378315278250111582109241307937271287479579679773082258053095237340965681324519351996352626892460913278810495296672272692074859008904923984400940191064832880456129681669308957180115864877784725042461967227944969710022213955874826177770759474996319295567792734542033650323120718923670426130050938428815215868806027646956298301773068448254353473574298359777798011929532538244098257721946720832689375958879892109719716017579939246164537937993559179095810223557667996192742445860230085996887089271036070764229561391076223373158321995358043509372946084467308534302094388277014577301255623962398926454887615174509462593342474154560200835740665643703371687443947021319213785337926668047422206601357244848879577232168256605504416902386746352422814269130522367653937677418118196115362431948690370242052014005593600873672089681985437888237559830273453443509971723335379124346519943318931296350230101523460000629248191655210350082762671435568590930185529051331191230144157477461351575188662253114276669030096438564250992730362647717849540493935812408497731302655148220432100229939404946895752086669388678856457950277354702255765687799073765245962381448329361147173339391103098058574681175323874160353273482050523062607117627982628541895545618052296422542042645614514761279282915616124547350546267084758203966904071354894145913541087082430227907046199957898636278538470388052367410804995421474771371788565669214074419230326981160033351396567431906367846685497790100951588341600076814212336985942491569811201045017391479237841919711285806392537233676280815211588444371176370247960783214272903509188628375519537482752602717735698393939515365917728690496983321624316970172704313412655360571488513250515446111677519318955982761880215428180727887488038040196120885045008930002863877681807895602714665237715801699741061237730386598558211559313589714257486397979459460009083489215847453868480240395747272612289440323952579515644958805070837393143064351521374568762196592256923832578459355449942086526561088479790429072765363436663450819196576908321165015534683584249511370626579498216849937024612849261196809752867151832361729167619158789720589179461045349795579205292369069770508556042471373735148706320942108778532059446225601446253554748347962986355917345731695389726145538542284758703801795030998734470903204763047673746160487635790682672756302281890424619992908817404534337169632317573845809091167556735530516777080071247097015459135218419846128959352366908755910413466618168145158106673065500136656784765049847960599876142571114033636144055288486491464348930092601455053188951251711114489189218974992160719075028856628255750560866993138186737191434822475781845107663551092553723668418272720200148559649988864643110470392586080496649695072761740449148163875822178363509372695930956235617533637432680661392206543305776835216418061760869247897741074548983111598204124155751902029530011345666926289319303681243905585910016924705248847212661601179779696719385437183216090854304918771435297446042480604602151098016969894274499855834920740284754300575231288231003644941239344244095571702969174684182800932778233359355078109918188162115008126167505088783708758371097392354734923538343406917786357223004069248885696677546019035613269745982729214769946692975344069680618649766937943002748785534565380987947679639077623592326715689938877742964522337124834543840338293510251919178899862676003821238797680225715887860496770675095275180695642629759966340772051455441598860061219598104088358646647071024694373833753704047654692986162932507090657039005729890478055340729582048977381271634686342311428340296963542599614905704780996517230858476224051875730744745868957280513476937386744182504198985298034385158391803511938197556375354884189872525188100056760385336475983413458911702032809650326454942495581792546085948162669455519482369040791491801721189981860622387987757903003817916588617549201625351843534207992862823578436006210678802263500875751263851300956743093339209944691232194665510934951772958790850995803622675899351597084599593592533748037854194570544363891096472768443242809875506202137414845126116473984377418446285394454590306855468761706981499559301533366994603425337045701460175462993990683576492616225115828751373036634422518157643411125822934706327831809377439571473452701665372950413191435217045729444060013165066939710050525710957799752231586500979774069339348728742030272172991443454564106777085365745510006663798922987075593054604452040909234262573593491027666633109771029562538727662795712176429236763335844932349380453700866223355552150222521552875501695931723882236803782683785657817999748423458648562864747870322056918151720504337611277140051832505233442447568338858955244206819273061458500803630635852922573469680362413241771944097821317516679467700934601359611672785028894889831613646804986352079183585605082004002609475201690704983206851325990917258238716790289872425629362061856832282027693934865267885238423699857324495288946898812055492261863288867404804173913628261272851423332405491184455809053335696184718192192088644714081802084801704758743278869109987483806142434763637701380251606228524755404561531465517880963739281877943757511549119084621333842672099949874165254550342301944868839973362555852647869669869305055396498494378507302121969017425103921705234599863152475289810585011166007256290624971842536934287629588477018173132179123769362889026703096340211912397528274191465263893282099831729677111160075105843805297709312781924668917709744641118157756332327733656339787472079670674222806641833472927565156443877390023282748173309714944489429944238383857769022536574887825735792185696696478589898439598950935770285227321511990780978368708669133984139314036560643696683783673952535511965014274586540470325789522504129885798201946430044984590812462602149366725563955311438483752104570980915361859392337458982162270100376764783728911332174121022522966729491933381680907035352185170050616528547992042014587359296688024271578452977735834937557108451911097546899622627953223870830633795266743281755504789623021111955923887102135431965900580442855648201991492487992581790883148107521976460960217511235622192429757075193613677125528257619174417311319853672841353044853751013089845158991913662303172925604115502203273399529627482621600420357880519691658332338533333257118991784539440664641477813511995747077612821929379850573725248798311818078235857297644194797087044023715271799113904868361067739004701265744028295114774527436207418124632223992323323326832899254898184770576137973854974776089431257779011277567861368191006637427202062646296378261145524842902746840873202571022898598277013506287988385089932808878757391911013225298974276913099369987161565475078363980540775011825112927068928033407143073343226850689053896205696727083542419103201800267589831035140627091595951023991510935647562500526220370545708752312871279815326069617602990167431045130734764541184045059135382373649174988510777199715958668742583066347167649602564542507931335128318417542350192824593511231874567162500004200362952945452353824476818739013068669436379195984550382668011588500699219557463490215582303207857908116956399940002148819055846097329904483402335800882119457486033611532146800492181861193140230950423813835205551116276221160339638455353824703937756093776254873887296609475760063561558551094293061722691972131705258512514656941289934866310302354788287058338615212377700709628208780968266188613374867888073955896515634642371249560826429569199453715271039569215186520498557964447888459545368836113103245466844315888121858916671952157082983251741832025694125235578312262841273065114420793188721770839501924567375889686396947536126891306162157975313724187012876758827413317620163396889345932502479608744392696836809386414343773615051877899083275206662605988022840962049063539388585626104034718206634259181685622113194592643433613316067489937789598413793846396968752647821081837671423943168111080997799957205388637609884493090287909184360883290804928858676660580201895303208460155628973054859450581515405395789494636310148261462587020663927812450247699293000931888730831358615311984238489906380155506196802600332755955909649236190323850895224159846955612246456479796102785831003069507169125706791283446674604104610494029407511989768708921017565880377054219626399339283192843713969725585264294000746718113085391449388036824956849073949362762840198785313641968548697693169310988445406647420306084138525008081279064857827219146328066621933149834821976738672220123299128191346870278688643827397483541729872353706656628245903523274068142449022538582946164864569171470346064324934870255206392281324137979841379358608501542516050120116523081051922828065349975690413819489739655886160362726962934748185604320891824252360298301455088770536919498483675627090980267039619447149460228639839501081346103574669453118153611806643058715821395493323142562728893667698535941588770832748755880946439814345273287138179162457312777650179697994239648418366279120689586046037975394510336484832962578182960125152494254766358227458677944577048861400695033360876514581375816730106063096045761046356938375333312347240403977626872536461202582246566222883321382675331819211293500688332367475523947960219348171117195977311451875873377797464939289669853614842115024343726724975746065626828638972050469048884261150691599066440922964266623681106368939075863117181110775969634819962308446274303765703389181285576879074755341826446583399896727905333838982539808915054536537546163933584717462465452957954794490067363838796719231166099861520783700125931328292578494206700958073395060040168010252258379772363401615444867127729146138788312410447762481982933279842330141026215849181452723373890227841500451081293984806086637330665399677061025107674877951554142630289082554300984722460884024230063924243937860385979405982783408466533060771609251159513907737691494538608866714863505113858140150140166854259382708301906770972448172081628077127347319390404343369310964887662610102255534463012372583399913426439464786928262007540980353732678440703855500786280988952098800520663218354349757941352125757153627892322625976806632604692403633854072260387859251177328593564849208136312551375633889480217090078959419193249900357843261067370854257576589128527369628801606701795897452520352495868477104296955793683245173123962333176569009415809707626803066797063458014336024313101670229430729154904551213641734739481225824404008938746727831417292768426608101297181626523159859653504347934235251508264135784979856311475256402993622702440569640803295249552825989704472191304869218872234457404476968533423925817212868159407786369914104247496243030263853851150375534934094382995582908936543871509224677117567640227600824319645515634929415208735098182083899712181593595980306930845839787977216248674963102156795577134606665584213601327380921364112972727196398171313999336694838702848363292517134823477995506721345419757016343521810642542773673369639373828828251579751939407733381324728999539047564739481082055023893550515677451837167979668596112027134402170295987555795780426487399368321955311464816345256035081354338291551689679640055963293567354495253997358455032492232862846368368485402094732915314045011847879524348192792186610703033884794284324762593024983895043792808058552352946650375763252559876216347984958753335432833860908579419437816063248952728036463770183842093629227379015564903129953201608594713796473601906999766774020489361781921859677847473746911122280344245525656450426894624100527453255837210268978348552286460728547744896173295935638643980603284662788173712054224545282867577066698011032674467528058496815710269757758832735733906848279229046047013708770166607712506156881077007899180604637451579944887028572220205450747527897843762357832966596018308942746638851719706982012565470956380337952210944565647807803784161365400908756163902566992281046867579073272514921052741388653176332138478932988878431666704175800907325683654881339474869354330356678041921511164936221802030516121062317444881681153458315747459011322716852964756176143951938549166006844571866351109471283160760362066824340557866381251307417161439596948657471801244621955344338234301086633911433856236312973092405695378070859271526280056119718637231994903311673272857233456701696370298074662486250052381692586333070950581884940082327470097883658706592231237778847757305826898079895301533737593890918888230740248736932618464429666627917060709554708913729193624473766152856199657549953902341297535646569606790129422258965251580347096033761793781674126968082823169394169556400058178862679489129841540142271466962706686715587882398066383123661122119404553957317094553461642239781761127318370873386310030770681419137006400731370301050116894610603751457768799276030635485432042285770443047752067884692550450019187159037540638657933978785577043440330923680505691935812327677149256621399940860514071920671114936137377342720648822713754025643105779508508293774048665829489075923381949912672041757417953350963327880686235827001354617587479582941051225492368677426973432628069169661142892821823298501906366950031224982487074356659827382075538947708250507495911433393854952601169075621164557467656677731044800456394743192936642817914371608903734409915124928761747661058134901784444981719666842981816788888860449739909184130732921165090413036853533183557662671784924684022645478462785683464966934914949690126447999352629381108014069123744185209708467343374885089852132649510662874250823432867241712867501300008726240001282284763508593642682503665579416438932219277908758392887223803821581189097821015852429388847075513467607682626288589764410431881458144633671028699673070323266429424096286757450710618561101329187534266367255992848415404677199286726491464523666867251816868725467178708153541979325506664026890143927913500994971019244145207808800637469085412357616107030234537223350631111176844398032995966256160027608825362365432086928695584517799690808996730117902577768530237408928102716316430665496574849071836542805581204048759247798898730997979229467156454360101851848312126369084930009378754776355719579867614888754843154319754248027487311520777602135277044523929040363539928548420618847850392461073848444158977913251069106145777190437785748516044144178699917281386463524810193845438133387743601812395084899768665654098573158933887837604786148040780048663252594121713461216157185458606516385516500922279867191845347759123920263409389885098875078200878701493574141887957378691003182789683804400975250376961923325024997955238182165602751982135935035938135415550180420965825229804969912762568132280272809518145455397686826163158554245366918193622898542201836079996560797150103140512335140789236679689374495084550876491234384185729293205267026001210095099941532321032924501957696986522629800876093858696738246716433984993133716599215282894243688143153186891433761970730716899860024666297751416942964025745882306766114686868402287791576475419656255870475034648047361608418243999373602630702151835952823233172645123933878325684464478842500652321111069470430484489524350850507411250321260078935896826368759571939761813131385150283845056665362285494602926950431291419780713079582978048215355770225329759954775998101231475623144276859625119504352628410264019911054399580722881092239129840898956090847833387397193680249744459110017478400371437202768870735467593860527070225930399309167555256229229523734825356380801647082933505440522504977726870783370546031819222779540038052050391580862307120056776100700834757584999436794481889951063479435238908303517505697058153612280663862815533716831053829864022248095080008061310684881980915482442844594414240150154661622051145515700216955182261572449086477917667930335389630166282279861800612705921397102260740235859767136888726952967804761013008671319785230485989055141737299124692453273276391434596198224419448681247940971928606285132382610618222083850906807343215729960554041491388657654805137333882556283883848580244580584589948544270915081892437097835706804463253748697832778301368326968931214648501649025491466611444367178240099633718555388293927832445859995630417054549839361488020942560374852929727245415118886074281368305814307463460435126418118515003616088988285497080846917692512852202784233362957221627707971969980482091754722639415899327086811589790947740437550662029442877317245102342970365925070292057632468528450687543850666952698883631440695110770334700912891225684657045113131169783557041027271353812190825393689939667148093125511080691067961064189882251001489275230964194328055582659837197512981490311416930719213617027327918907642502322154559846047432395955144190459393455152844426036981026602162110707857728629780160129138372268884839673925382764105714954728916640442443737632987971171371723798919069544013810944202084493153133956939931986230957333472415177275111555825743210523240616416305731156343528757035234999092026656880216172892727801110836718476718133337251780957088071919508063888044888269841320304649458619542299856218671349733151496881504370614386538199188819841409158171225556235083303310293172312121289628860881408288403838629976557712367394023495128127616285743984518418049630331333481410629484565118687440073412305026769905913236728972069043376550103635675524059852931951976894786562146479978270467681994539550361047833122733256712850259759880707724826820350715952800449911499822381408140529561626226711650174994710421251313810152848821452133786316944262624146578322144828596435803293571006395296437421837607128939242557282571668396953788808475386433889721823039917112975727741536977640724036181809357399858989292306877686511406367307242642925745525867362779367970223539915459142657215650317832903327763910434692530083172515067546941839207559204049587620453734021961521970317952095779634675726777962842657510301601038507938211298814562631738339539283645894917748030185295711805571759806664422154979021144543098861502042408385271347733974078497141368024931081134580161820316540428307740161536182045090619618753016369939400328751703159054598967006121464127911513628492211290473192938911846409235498289030116832251341116092362861869694725380935598841046586643676020233762546882182369360245042893194150657246029723469555727278886645397022132122552852167774082507590557300123651778591501745272552027220960447505202733956421143608155373563987478161963617841240583733432691793418207103520814190923377945854935863789697405341849526927530879182793535089444898594110263208817489619875097057890651823200426772166028829065083434494012714701239629271077318996668501964571708428268005524686553357011071626772684414455827869495438947729902192241554187341387244521813031088739839206429656591894407047117214728428897993807469772590525744883546637670052221343053638450327346175299935032667631059973587724182896297728665485398198635928615207485899158021619907924046254169821263025967208302234824351779192480597027794756803401107867021408677713587127761452095471254482100941036566035830660368602565201866071544643763059809889267188336535997849982643385557339800846796162419882782251912079523798370859584800790507975894236996529183038057050006115368847275141090268619059222749691871089773897501749658432273154918770643519149874911773875849218003541975997736127690650486459131866478075455308509283334562836938515104831483689152587991436694902587255834651663743043952371810620343983631120274733405757283176324141547016860486741833607752882302997298399820042669683930959217124031266806677201501472483916677355911939146316149955193082286936228859711648901132144687472585501031036005556054596166596887995553015475547913884987673280402616571058045365044751326408557351116876458531839531407469274203160230778636201759872974762380851714212063799818723622774630289350524404695505026889768905412642711867850673817031639357708410990005934652055025399070574587999153462069272902436808089607679370542432580969028361946919396669920621142795980778182103019454457140780244695643661465072243983661015759397345173108374598825413382544604762012506183596937202778421485151778715716026225234565164429707529938091471344254316764324623711248727396210911121564055035421382318403935129129149914053230003285351951701896178505168345146507437484421073369256811137575350583387412390549830409106856432344475249499761424616733594845988080282961501548591679051829578493923857166614944443339906912059868444211611664989641795099498783991298445482372482751492717331962366990986006354208526875997836234601420579554074079535635010336495892388221444184838888857282962305224364319859225207957638678609250993241493630920419494082561883868551907797243749611376901764484649397445652876564538850621279137926143707000001616607127055358359205316631771551658448069919300801086549466704961515048882684154793351282761423525910187803557685407955411855516716114595757711175079176670843879339067530721251182971015192807713676459374054169517282637506036183307232377169476544173809353201938578147348260447338550435188685464885238267467646897079928088052146616414503534663002342966529192508927495726778050690891657468314909219972352408198875948008925547719270309961957092120878505213080458368067742658606260257682998603205807769826032871293601937990025037552036356488712740833515196172090752846822177490576784956544565477713179915023098447275326352016251358781770518742622849806891366460968076817631161325412230788420092023356617288796982777984185045345748927107331426752732546990522596664036291341644135491170763459571048162590986727658570207886454842118904736241350777664248692142311780622163387582169707870619193797384028468072454206200146675606522198909574378419427406325144260058631150312033045443564249456930618268121116831756499485971331257963248687378102588893109862925830846250036925921976098712870255374471090134154704505914514034718654380685682921602825003114729967713373216866544439265989737914420158346594208524434880124826855212757076182330315816600830953168920571272303075159557046515612387607531292819126116372281458772431132500916091838932665403809788923231978874109056713116711082860506884864650358607962536191836019893347213271696583043706605572086949343733589228234447456632218432009406084523356288479422673525626873296935807381014949016098310744661021374738859074061523826675388132685987315209980095637818872504265580593919497844876211653542325822526656129332813835570703872944477108794966075981670085336007352807261995467081340741911415896450249409255408062410496457304665712191833341796845854148864848313078721946258265769519436738088633366319490506083229528399342027319583825410614505466366311227304684431063720226893325560322776136926551508887703230106178053793260581648581465441889525953565252803974719925111887913969815951093794776069050642388860061791024109661343676834401945011859375637167409034281264839723845621287680752809418703347145205423864452740708327294181407294535122771385653467325539920578279216087516696041479610535491214578203336043520751124415130684942845828596650793769587215664352807940303015615913948425212619922538450955256624108196749436490225376429681284091142533706087165034208254950725225612584876966360589110880823081973309082975275382877671470818203098162501805399503056703319859041631795708561758276916883229391701255656222232650045664864617717680830422559472379263080544826112449309324223951128243831804768423346499484581987122120714246462758943482413252123965675398867084840787710950727617316262223908985391357659428614629510083206276970904520050850869965968770993319288784560566076616049707479554646169778176008963253354412854739031103271330400518716212682652969344777999418898378767297058974631133227755163591045998209250357975260149140886886950685312787349659446883918289648301580818728580421461064506161071294268607646014813006817722980582281196764514996672881616261078951738750238277021024158299562967641842792656455263740090650733335713705829503895368140715413578382147768513539189465920813651446853022904207614702906036431955430462803192224730672063603916115252359588248754200133268367687108046399313361627370945000775338487293991307631924898156426797715362723641411171478743897279655793391300366338095193855249246209066420359651697859087634830278956198068644870310660428983348926278435847284620316645227898929339940137482090707930912272396187791247630759286144503334604890687874528354830580197154390785855016328182139908132801589200531756903578962767638259912436872520084984963599947070706833001263242257287272175415308552988788317116126264719152742135869410252069002737460278634313488373425821233821611958170658543343517489671320554962840659323433189044286338768045720035436658924704401499197989493204982083919219699155217858924825959571847752866869519395916470781682100144057231066691165771092362393616263399970585591730775676396842522881109608879373524031650016552837618223133350121339355920520404094181972121399255729366304543125781527993470532305968113098750505178081545567895285110323110838234972539474343211142552265910106922424272915500108520699875521125742814159960738122190533020479760323754730899328256545450358406800612779478312935883287426645882623766702669327894048924437323859798177112139246256465437612992422707553905642987455845849263588596056855721963889554870339737304944620786603129948625646351750464993971101668320632005192820926011885278287411542726120205011849057427823352429506132818622817943068304778766001985852686845950895983512848022015467783693417727794275139171810284566974719754631443958629907067661146584118816225091439340732311984923414398070160335071614695425422411068569193501345294800816780114543452548247190452331412569777711412656019351456567595052919208429914562565770476182579219909213688208435622929125058174242915967136203361626211849037747983102791889371936601388683550881672160633089549088577528060896611630312103363110669663527412658956875272448552167700653756997425937464019431949568784733141997942523985545194349963548443586758939522680572142194926294045509100786610125307586388973617083970000984923571699935829634002925463297780480218851051242850255091120789227252250691638889038212106185515533416453435642924470078113166828614826491141027682576931886171629944545052625938645430731939533392505577607858058287725996607247282992574763363533900900711619207810890787722985851585608696421538389397122016528644921495692498867731392251509755172861487313888847018831954259731022869534171478276059461229787995057225684826962513928864700361807823752209470490559675906966424419457425521878206797755105388523389644384890316392749960593454018906376945748120556201317097804016945262029065180080348480408222208216800717584005700403171901759396791629024281456068282189898514162841498222261058513329602702736449288954275235192335541670026486895364065345942944305292804707116500161535781173322522473625539422391127664745802402823697181007830290212563391201931593310438547718056858980068851096035531584049228344876335684346234330392026555616331097227820978828686315131586870495740766997522107717820360030189599494845983501037599122248466124159816342385351955428525590641810884475742969678345638340517983557326289575682736202146634915826809599176092086070280026883835262564914083454387906970866725870588839741515914879640077228254011552302805320820475947030711855120891795604136643525699844845290854563463260375040141035583729600179143931429648764810997936664909115735024236863871665771959001027364410779713111026938562129917106398282253612556473050411297308473091161949759307887424499810031185299839480751458613745375578893776190601873284294376527670080767081083495310040242396192551121702444750078043460557805140083655568119694186855147380743649262106776913600012999815698849388920179319115713184263098700214016706502129001945698278157839586905680738790342792944002170405292046019577986665420770534223665779605164398548016532925360467290773033343283754048248367402100250969275264952305777116177145844205562711724504679258642327982155503489296460485571909611712192369357959471455204559102768645977868885177092668507828319745806289320206323885257000098895122791770543871027912444100918115025174763431195255032527705113327452037494947793996516885236733961010974189583576097087284531043205096830329070922215182691790916616223644478224654607713443698199225495510058677541708803622273953462187138345386328535896496631201269667862960021880959398643612265473825944009225156925388982139338946340204086402083276652505956456303364006033255361105208692084734625938940687747068046925595118436671912229311166357289613877828265260130816007971053465353766836543987852555855049095266498415240282975583727798769371839472555483338238777825319126105388746037761071554387531323700326804878611458119025981374207916687198951173723481853004468738774765410193233005464884282263712073907643992442257043351702998702949761163163294828153241785599772164260890869608042732004906205739898956637071784589672156946007865983407950467897332307713007187053109130531063113303211740438116836161889432525272979954663522311134455566613790758973041538155130647522003925289020305658606480885007977291070249030440126152467884966353059160415846895786763283714890121070453492104692360439671830733476976885069582263454281839090511078991997949100033896527711528719227041883261860007025521034533149086807178540172475040086056001500349269811007694124247716990399664596653249605734316478631814680318654797002184343955316765983286484364154432033927941021463289706814706996270238624606955063421059813270919587704401689654870677001985997933702529453553407035308827845055412077645194160343039904376577443278968952686172113185168256571598291248936651846403310690272001800299356050208474742534328638497763483076739945347883276001352900720397455995199790927702136914147778837312760148953814245617125275747086003448292182142550023115652907497016206151662526276871130158605147513950297569502125350934807926367896952265592263477332618731982875297457192317592516089336242986761073966220608855009499700605244339101434926749691833448175593758766001718745342104281310542103342162855759456652804407521480550744641533106551738752091498688635287798857860958324722831175898087917527766921128142384344881225683044275709091446266920498769299641044566893591861324326076109957900568216569828221023690309118122611320210428451024710613221369219329680098609028223935301410927922110177875237738434660915737745595168877121354356192240195268569901396387988351975184285099843848793588144611703857834391640578391057753890216668258289559108102732703257673217808869907986633345397166519463065296250581366585382646573945531569331094164732616480647051260490948387701435911907184453245482796580438807397427347350512675751547411479637317038747301489006089003689763326113588203905302141418885170791718580763735839459196923402800036608898168594050207487620273809311070219983614579347157654027336914396126462519982242639617570688396106773173310912355410350509911926251514973535892858215707458877940359074327941228480500113196437722597258279515629568499214026268936100621457772343874111728737922152099483533669695752578985178991481384202383597889091718011845146991436868599091877155414926904333036957811088820216194794983756086466600622547323957440124878586074327098762238730435414734440065660134574540343285785406275207492913434098861468668499231196135684296459818297322303173290696061847588196823751054063315379037305828136212988626499839634825967255701729599682177785690448814642374526170085023974805239176407549330830982243353169796215924457020577543591189514002226409694413317621722981173973821872685886607831861594510852519496571750904113144779429013696380317212933450552058470750007186273820510416914245161286857040333864951541471912002631682723211808087506126017629801415729195038652458783716030285754276886800934184706371336593411791643250109958153780218927267707618332810759601161987371903087504305440280811151327153383612158871336509600083668077701175743571954980321858981685392011579197271868681682230984187183283606110293640114833151282961409899191726548458071321212799537503782268394631547396103436261576302559132727395778579273727187959339644346910829319534580918171378412819340711070402804108624603397040555528988705845726188682284710240226207512569027974584644638866685466740719057146076205366908309041817975238962934237001827160857773185298875742611388150193352011493317290323078203326081399809279342553257325556717018990748404280334147589572538844234193825457757999254046151241405482497077394149271993576598078516250606095077627918679003126846307117526376457853912630622420124280679026782531652199154769160198070199982261754792891498716816791676487837137836607656969674529873117887527846490043602368320747113174942120681917438702707100677939030690322219353141696719521118945020002871537218035460503536937765954888714376433466590491145853667999119487539446369821536654984801753662982994822202932778285333127659314101566338560627976804161882975474021680731911828786270891336823155529815884399003280186261811631886714270144197559441279273608558129004902183000704095719692722419579729294010349850871897213382671035341439306946108674787949433649228235563372717310651229678634812324214829634481899587597281426385970999070245539156984156884827156152693947129104399960840592587522859120774139309941216729821212120728474745758330596658444384549819869641972865316838460342699191483019357421601552512003366127710856449509323021146802894010094070378883064699155523744136766537899503480840353238451923335886826089755976554323497302193874710941592131396841437767727096708123904921634955480591942210809538102606850884851721687141204313726733741081095059330223358134936890477895283567593826082810135762477769509357372399214443470685506102250411744742829003553687220136329697159445149947584845331558024417636327066136419736969878248177921292151250965407949998975418025711853128343075203838230897189540757641485262432678710103453611299118873859641589497640772221201905264577491924138531249265038623781609140691672255978666695035603371706334845377412709453615097783112984241405237431832219575168733801246994241832956482515432431114246321797003347775305112539064076776869689628010328680165935906118803697926349894165691848087742859486817763396564868110227288442773478659760796094733692095044679585876454774743339312058336905322704410311463325352645344909101558827630534960209349129514733559744622098929562860977145727583676984307816668866662962059351512316490705335242533066314976104731305469153713856370605724765213014921976402467519986579500320138911611500318025418590842254078629142692476701066868604284225229386874093929241468349594762676159220623425757547801041310601185061657946836763015596576788553150604937631148164164574270028368871413857412860191256772214416849910457975303468189623598363161258893008622939577004487226422274216116814359959590305706430658283438725380608009870592942805071657599074710554767959478133037525994478337013579707843313689959327803701407915967047523470173185332242130499671615776215631952037787663645319794995352157342592242302454327440540201911896263571467275143213629044563363591178695580731593644231327792321316088025090617044015322555994072502973252368840185862899421749226952515680269618999187405458586936234773906127068467729169796562966777942166206885975649076235125692928488775709925351382395294542571830116452151094995491003505120606075550928523887661422188650291449081707181764695881812703484627173339385462348231102864261681711003246043277888704320845924793749863836181134918878335239502299090660235424105318221480754985661229012020818103466721911512337396464163841700332816325719799577393041947386232300414513942185656685822411905381237266570942053608637802826163131543647287047010873001675335640625331186067337958798448474744718277174308419261961378889273523372547424922977770268252342288536437410398158182684536331264762635721829764048574220656457974249947628692210047392228680795735187441940793092996277865785016205045326730531031679529681594747317943357105042016726143062689295543625890185887349372243234407871549849995566235628256572036224238096107197772959104848437750300719648020636869673941370034662181431589778474240564022126178277509383914308585996932188563149500879706374944931566835530926563125309826092694253947991171024545931562346974360454582183222420873686149770142650566195762243479451386366136609436686143891233179632332025251206474383943840528573409551376875274566328916370567526483079348076426413539867259927584446139571988344844582346534884972463627022004484740322671951005296559723377348456786438280721757436460725759170924639857461473268843078746036526695102854511529990212887449008689216608939454556569829701122732595666461222717219331651306740205888296965601957141930597224006840799778200766520704720136211387525766750999046537827299478825957542590292186155632341016238944557673828070712678912933347510262073765961087365821921051312391361474038310110887847823677228587510198246919549376366017496740312792375393389995651068819246340873567626870118295179896355937516582091276360194936006636275279681566160939407959704669462546451608246855401006361615095147575967897948400919787905440975631129257078842856528806666878176066475686996903274075593606892842134309822654155592688096802674969490019172607495832600210395312439204483756793980855566807181581017818846670147280134464243714657063797533694276134656716501722027356416349948179852201458682173889326683572491301274625031214895413808631759121609356585222604449066584090337445845672789474629803008047612529789327046222250933309823705578850619313628382893382450682696386468445762464473325821311127940430585518133719688770168640638300028589186401493725491107820696755662961002986892622626265720591786156739114376078728751374480816903501110728561740548065102071052541576323589850874873768263138640323842200334161577807768273374907728936403609455427406374108196281257527059205239416893266736740116052633425815184958973825547962998514493419146807710935922983854048296641021461115973129516912376136734996683925741476191462776144086435106959265146394693688552463387643194465778798283823554494331241668916879305644251941721566273947758362493946829787832633334557253967375633492990036274900401920129775943414477654070925772755625034162179799175827981521959016166630181915484046536216603108450348361380213362687277009376867409405128108738652288872309739059115530588883071512829246711785835200702711162791287190050805979015159642890256961138074473557176614252947933971895726687118924897287771116201775549775298762439314739255723542414610139204359634342249269386765286069061523372427939337755988327299723234946822575818722360013199511593633697479093288429329574007661334658578202683210494936998081219050499280693575637909305980072015731951843247100862773870479339155869831920131193592834813750453069661773051820629993286547327941138294842624509507249811938949026987317207737533480226996401182762394115020918468135820164355426748813733112169521827318559555121068932835257993921063479930387992678079442548668287526248943701048233856976450665839071402941933939720590872929648246090404363612788777922468393147747336630864570173682432628419740354589747042150934974579181918404907841507719554273561583604555965735475449437058575978153655764194190637672996862815243497751705469139698990971102604525132968780552287009457367414103989927085982181088710437473514610408462965286777996857851357426066981913742470918880769613203184549627676230995588518048355600970743476197939769578284105383078312461811852427374520501783004537504497697221312719747957562666947805281020433502445359946058502365133469965394553468785650824060778434610854613440988805529969038494100317229422351323330715245644244136920065856404855500479402414867012546278732894575898119591492822830276753113574839734426727350072684801287403332925215120443349598013844819411857361660571827069792955434961308556110142789169712986071525064107740165697827006514777607054198800649871089720568156695788953359517528793159968588344160178395824136121661092100185525439381815782247082728947155822046176975210222023315153180209476899609994061120778787463378579606559515730343324788547269755229943751060012854765081103043255238897085166267788168391909084840091222815162982701280188333966775958792513666303049237857517424683468214940196549443516795671178585007732037345524706355439214215004911452318177976300932512417074761365188476514138288151148765216652560800334192204978270918321345668269454368930507331008397557239084590224393189343788401541198857906562198078889722147076265249133925904657501124150510878669011125226280801084276809535096013945023549859940518444641788794393019803371126620735446320027699027794337022352783814851767408210300531866005568764624256330578779518731868144480592061174354386324900405060285640830445275321819268868291864847394781656779165110989278984224428845713519527668205380978019850536440018813736859403419744831073506881650468493389584281625438278489129268997921187501368614725040150992273155684283743888268445855982436826837154565485877088618751037859091313654451840964895635257115486381273209759552248045471113237467900749767662195835606899102413896174014820173207760971878719528714227552808638939178797494581365924864369403194380536367218756687324527512809614993627232243899835308331982456406787835475366438023333480539889272395047718565370733576460394151015251839557839592409256931503714037232938879679269994377914720791510726568908112341753539568589042284911956795845095083786438761368951902595267018861470267868894780156600029779471560017557697860187645749817637806145418402228973168354355710820762473935512251332364240309073538182435073862178401545602612004682231315285961980140693245708633814522037783578051222926696766508456459186905691808697375802517613846542159017172425378285862400722603284112981465677664802491102841532508980865709512531267022513710404166583894640410567473167635567881085895145669353577826891208491533856144278808398612091624494759214297344366118836291728010185481820692501394536342122344140012743411659333149955423504061368704717618630708359936812908532041011968048566298737198713306746212402454884492446638276905656625768301370724704831674573367757458862782825698884872099921490776113877934511073576591605976854238796495372908841071880646546507929524497274414592240210388180191384943745343209246978705377539353440288334507660115788719767599784229196766625234644193633278737225468168017010745326518585954284652601198412702800219648114601407265146253327330949052663649140410293338980228697350179370027533511941559672813147328108066199077456654055679996137243746890298730578107122744355264468733802966433950348446894586301997308924353548062466550162623449831661494216291251285597548455440768176603026415638153129106380351063971433934968343887021617450331336612466490783495211462097530505516060505196388480783139185276368170350757571519872769723960971892607448286608529336749519067280962875436098974156557602249011156828206620315341938200845169438003683060116575954568496608126208816293499374377420981658153924683657697112909455249938375728670390971976640205302881007196094410964200435098834854320456076468829504055751531500223185614828931502932403389832534256880487872939051310590481153471964752553377197600419489545226767393190156108072427914597233008292942583199086750880112769939371027718526542427586621029513020140505137727138501820359181871206307750656942518018353584702086488113061752748919927567103484997462796498281887582646071821649853828206923707966497961894286523399851458877861292747957919124254616064389696318200056377083919889512916606018639952692050710464410043847550054412549663796244829174137106180070628360577028391828577653608936284548701180115061293645877278901890191772305370490403043236300219885557653330457499252915731475662217997807569550408578096925895419724493375071336147042215972667897784631737490251012899011732058334791448678167635248354617636560244861766954520211357164176411455313507024491645240496913222945137261171960202376540327451219420621504932354640216733893064613564674034473159705625044613333185664186928845881331032173132058933773119322381890422606050848669892725571607463819043191170406504156481581084821224493283144268478909888439990772509402854464560537252715762090005583315892015756998200298143252662079545739084033651429511329220363285844601382745835151494595545149236621634901854390076581079170585758482244744451915923635034012611207981446532732704782070176300162414971391786094937464108318176486408114761238330934630499483430908546878837002387903725401423368379857502231337587234374706504266319625692376432897186238088125989972508608547240000710238761787025433631375232848184123121187506692893248584422947491519014131656319442754716217988688087153910277667358241827332502514832745650143391497236472826159225104773551773561845734265949641648498579190027344129863887956054493875367944362145431996957539645951888166147503047964431083905519675075691603496589699527954224564995835719821817093639016799307357259259223191199225516781740928451897521100859850851043342645016190175884088402585993083804992087142245649712178430894977477799695973566873020090543698830110497326957785071741993746276882730445691505396173612448915103191140943438037657875683903689879496673147195068550745162707148664967395637349439291071760722262559664809503916295805488284168088792780007449375522863033707417934532622124215219016805023906003182754832492385457695935139397019007083271213086792946666326574917351820076909800686002740878740420035324924177379909354457206491903884419896701260772401860579218639355578036510320531790999572687588141886600469399354265738862740077438419476113053622280373246253595631935269036570272692416826388338452754535188635841970900589671718246606699044630851587163148299695248465816720012795009866578986715420841756746547217732504836783676448220660089635382606687986898518821529522714888517636427977605641854084008423366594910740874057407987105655269311111224034557774970202311068057135244170705190315344785862529864706279352961836583189934679952610623465731174122093927811929541195523946793484529946439218992896260550587413705812323510014777596887352259948760734908106891986697369474341709588469763634120363821819158141249322899213846050085467481198525532915857744654429980654332363358058703878799558829449259989360724043846333701914884943646308541181535529796066264583744801345477770498475889052534997244419794812008713717757431165186915868582764083909690245064224038416974794298705044587903235524534283168827376231696696291827093110387031885070135467183492652364895744324800095534726560852146588473026422772229146173986906913776439384282667842605370423077060074515611151422912218289158271966066155441298259331883868341388221999798847863875324717299229386055168414091318468407474999466572815239195895053665739187129938893988198210755369906971638799943083407076822775163835911135011329384387326991392680898031416371020633141012032542566797821236169032843967311096071240790787829452391641547674953632993404134046107253251527277387068945743525500989517685891756572937356871280581415716207935964070808976721820498334072222087801716359139527772790008797785528526953948387233063784109998330652375573673018201930161089059905622019671012910420288564507403615352729557579765383589423863672028542714629634067982963550985060276993314900029594806051015524929205584619292410799495826753809823290194530684741005277553839934825157621856385662111152169743520221066006561498979818585890507574192084693792330255071210571531157347376113272497257053802019428671685136327038782052485353582714526037674701298971418862811309170124222631075802696180800435986523420389752813483003573650653225434692865430360875879231924702451445795040245733670268959538279336624433676027152575218534953749594745288891924392479444080988580101206433775431541212813565011680665064289775784828646308368956779451047171340464178112248542713747421829020027864394371061471782208380730350403960065995616682794091497460982063268064036962273189696878344648578629075040483089729241047354356564029679541987993611004026076106505570897538454261950872012530833173604910607961490921351583621128984921927553232137071966810929911512366345013128740181998531227581866199021531315508975432946772581270413007261745044514385561048715303746927818115184296218650270798072131848993231333228894731152801557905534229479969084306090029726347564232151268847691525247901703212700251493547242174413506895709623073139941953095659405997580800369513126514406590983262652649225796816952340595017923273175717836866153351404968165333258511866722355588370369875193149407918340091541921977175818619765539376875926594714863015347389379424696941349242118830855781342073413796701633238103572433776749157894490973256155540224625820237783113635172600921032498087789997179126902178008420573804950382935078552685431364488592068150912058195120168501304062975989747725616701895978004848984771890009371804782010956753650563200408734894198706686857189531929406367995904708358528848752208562596873311955838691159987916982946001604618971674311504920772907692082265754300969879506288060146309843912409752267447882043540344274411609101120811535919246686095484410288472098939892341654100724701454578492746938559328482751048240270341929161391175222337132352319649842241092556312010444765141017979114868072949809469470541166723488146558918108521795072163521331913871932437631988762669371431968550875262950840773784763832288781525761731121965738177905016184513601259001564502527904607935009718777821119629763200233595014697897938673040894275705965033475184012315736946319542623648236975806988162938757823708790262487348549215214099317268317090721111587989135818713284923593214746514814736304249848341510718594431537170504826873956152768254374582969970201920353442221935564580143056003457367503858089566644095970365838671335986851128096847839053012981423028679428050038906319251482714453940157760827506572345885120434582303357367941543090093875952938022581117399725976451879468802098695690028558971455216599173321450768038574569542887332725289740896130968107830155527681332407135582319290587370890006508475739528766336315242651342191120280596128109950343535446904399953062894492333819117324256632240144434803529003036028515473216899705834520482537695142302908013399408888139725968881728236267722459775237654678646783704982089263200387493716535809308596613338664237893048172446324607416415519829735879674822879613045394727966093408886275946563241209323941742911689441121831885863623775036674326849793711884212694269186182307003786369230117048094223964977736038370352831660430404841172702646346611107261425177474942525616033435974482468204713041305280625078621171118174109211464367189737403992497746951820951520190635835860005890368138851248866910351920816366836506130513491923541835644793189368778904276970035336641579330023699591168382677382311827961470972642595032819503618782898187960313964482625112731777078530783822523563492445402392281920295192082622474959546053401268110814300678956988223811638120843885617361056140405622959098455115483290585601315011953768861212304352011873293809096274719118414092248132024871915650851756720493878426260325447445316420830454046768551976577466323409329979672887018226344815803048268980452676903164542259846666253367345906784142199577689828064269591227953988061259331193489693618802376184340621569968709970665509473297316054420418006545055665428743568614551621926199192880974631939178854630711556489574092764244761412355778431178655204473139651370857291713145625029331452849035063000967672984113207241768677330294559630813499697174412234140630785060885175317253191253419712802492834354079312574702731225091433775509427256440910061701086240529043859896132042692022490154696857195172536411097145340843431011142414421333215508667937115316635399252613390642159304153591732188413952311584494560794213299393949807912175446816817995217287399561716853891411598269331586626477435575736895832642942845283671475383329826064987215677234675536720090444193974837910344429438869195808501137581957640785859185178061978571164695756580261154723791095479896331915596374742050300829588069533007381543658270748126782112583995255034186949440665627013390725034859650895517528467053873361585155369879289393494165543163113384994581374902955515401880264662716594224155048219151483192103566575109468501149156084793114996018847359886553894502261186907375596693047261260064792951161199170088694236556756319991862749507891165411306325080357502261898198424803329881275675822933120421566852738375284375616618754960636538545748445213650583902017833546093295905880456984134051715807881760189657898984589571405395287111725407039809976681960652313473644449873124281295605756283203775315184325435454491441750819830989735046341539033401788920518279216361364380786701527857574391018000920795760655320510329209292557244654319602553273394591286467180264411207299486806746871084525648859843381697556449010270273571997588336207347103367182878697229985097485463903509897520784160178515163076899027203382036365417149908832438909132769751442143679123941562782560105618927737221496807995662176831735959322202562727896205337432656220442920309837235562363004046586344171236989028479214917155595986246990768748086592637310812701789297049691297954747744966617153790783013047641996361549930876065237166920257025878744000870014310204190619295124690346262709560898083634346286158860197007095723691844671457202230130766572618140675021902022737231964966526972423192830743287329430527307075843357205204696165394042264481798317731160902327690651423248076720810480809864642903429013771252712671754185832396471936956119454868902686446811306485858666487176445326360265754756238791955555886316896781333716416191383426136566059596161628747153127141087341801547904808561372740570918699378721939323234823709112640760980848573693974910199075532226869207049862398768350420732241326574985674830920922250220757341850557053886288683805167184619326619847883435427369893786862586216368140649459939642900869005920436199106684992610568428289066484953883831570530440496984379656444652157822817727785048564958357544543416825069072690685890180978776503758563176755399459307394792257266617102205839091360104903263109137129479409338112152734265885399463542549147638498753363363823051612382583408012121563100426130022913269278570830456239004437962593526977401164803457046092881787075243247878077919844991857282824394447030973619381604810860396231398188760520660538337423963884540008980067859798389434424593415039513049273571393092098431666422193168448634955473094573288987336971819999290591557066285475735144911128377586858568411606763054122015408691679338919721757961745778520465352697201869003031769093728842546775729002719336969321351363716339654468764465368133677754500133157788692236270161204218636743416368001431510489674619768669256675523358957689556369228522625112710726804087341572254458866934949337451026791677133917990474390535380592317015763612433102656626473372658858321810516905159155062469077554766594209220157108640220476581303759372708497019016802609492525986266243287145184133997021969248138736692472701135949196213844380408821660741293867726403902040389059845720020244222841129334768507378893260203357624338892262735039926436702545110577614791368288908348461471423317994363232346056433621908975146409635680522723864059025025504842454169588751481612265056407334196575930221974089757887227476912658356896725240183476949890577263098284499048516303954502120207379403999946442434166081101542306178380464488007001288542456599221292433333203886142798059876024487189739954816286281604258501603302250686936034789067551832632364850315410388510640187701990062713302987461201859893653733373499597686045391017909651999835549853851335942146604429623877380355339057245835132979306921707301508969382551811166445294423848326868513087852055974925213043863099077530111420357404596500101518528649204896505781866132312700851438634939396037135706538352554738986717591983180875611321964750181432103756327353494875619087010817298676154037735925420557819777109523619152837590409110222864911665048352572444595402841427253898911227750007462594208335402600300768905735478352085769761629951428562175275639320979516329780120904703700270360514160717404323655671494783079791851513922888442179768678732273879406604984231362430924516152240434607278581525371893239797041334895616406654707766553240072969563111010600245390180792613868333309923357777656899174029622978435816075776129497142069542509928491341155044141755557983967910658104267580634546569285949502315710242657798766506898480718368417812889160066411172018473105261512190997821558161440198165571917694486199187167774142716828813107087370478409936460856001307538877341827218425865499824213792578383638691164671573721789268962760069834019951786495680120392260214966710179464599141219384755358234482814717665993590977494052874202132579534111823408161902257806746897259225128848095997864293354800960543773394163329510932910848936593456497847999926541404832888026975613018994370789660657688115895529325374785940318424244161403473484614182728498688551078565027379038772700962053306400242938265618650251375299366682177132336895858835605218838914912792844542791775061715401685304071754599264599516599743291007400645274612873316374221471750283777937914689658953404366037797329467179478277281205022850554245313424805179797407770599209939888073734885219169832637364692797993970152740500833975635079157703525573552408811175439317507820700109554452304367205781268433858223782495391992316043244550504524341480089397215152848670331130788769382284102049260809598294080869560458188688175369616046201263698448517793349156542233569429063032551006582066178202342029594418499068493986785718141109740650661408940701471774699005775845497869086271033142053956766609818375640796190999891070187295333334196575223674291546191751348784921305771696579406154190850092295232910784446305024295594071427642207288994632040696176475933299297926333590781861137475746224441420365412720228487336411563734131421323915228081693240331302822166082949061812451413927181560750676629084174504541446600336477882450653722078441476002423170231197894493573621331101631980559766914158969844740502627169478189481201511915010640581166378383713846707133881707089783757183060024737622122108146411259938291799955644507877758641692721422917258282964602009833759176255115200947878268194151759175764312054188696959837477771787700607753302292158216723643890105528920665908487981436742117492809468296966528720433121075740972505835018718444718597625877582600641587260135079650653583188897142078899464561338630304025323811016169725709325844064755348550779400866761965088474601868005201719613320590680637738931036455729191754501091185879996388768680470808850565659368783463242031771349561264862833573688425900940550878014067253335864601405157014813995334255888086128525011854929847804564513228418462579324507524511210177383364330916945935729471555066947766820791145085450566774263816800170819319861098812942954314492349631796980997651189883414267561158108309759416980764190378545656011022919517293930751926058411354118398317155391499991237182738473415916549964888598053914724523233220707833830022026659071705141833488635959872970806780224208791291010110654578808641140399985216055020306082995330563095895086278238112185566668695964351498683957288762908342749956453662555474395993128428569272896903182685122548425868162080460816179613515126801916469595739057470262472187615226197910743392919659196846064496337309622798139876669001091458464268934221199391384168131717587561687015789220215455924261309638209763293226725215068601262073408316508236609664544204015957947734723525127589376399095926483340557666004619130076622998092385295650638015822364422851815212737991390413573693747598569367441637314137242886982729445861748249177387844913671766281988281391618535271937561538679386276220577455503499620179403692298950577391902497650327368442703629602498533610078127652197838528164042020453992077332352881454580929464962387616816790162253368234956507339767470926259609574619753895877584208472032836620008343046591806827418889840425903506974410473124842357666414455145029126220212613072134842008512744086231271001800152137675572271876793298541424091572470230844734707496694600850684372351619264211133771164375119452651807242470432798893334363879041758743995500169213586682330067298124767671998658091200333755809775316499053138387581400122714733072667689101659885830198777729840160889526342192257484639300312217713139875697248724308543677914781439994173697932161281134759807475971660665387571664368579804352668097962852367256650054778029959153422272012560323898975239837868217023530772296217712103443615410792252365364567941644906987272086797420989568577594777321179480979623444525123157980741011772869414537092870654152306077059605158984624036634165262506231151386734561287012266147572704343795885078109322802811250964296596490321020087669118740525640841733467920425820955003400828240025432016802244368115275404874218764095000103251688350239407326428508198838445535269832603818484564144044543738281277529641334855801646780779766510648908016696488185604863124975996498982696532849386017560269107971754328815498852210576901574548476293854519369454913574534056898032392015492057402486462236376796945450883929835536178099309869342389587929442557561929109306414036003677820391817306460365413782576496126003455768199857543185840436498171009866671719973132437629849663988993458239429780528482916145982686772769939369147395825450600300928233878951020079562762867929517234640768815366296546450900675468488727962606491050179855956560230603245058983329430821650243739516980454382185731637100885907936974416583128314324690175188536035021493588849191158820802288310644281082590160600186831417538225259331094186422498801405527146229517516770492447096420734761087085085035336959372342208046887686309064345373169524627173918105961058411483487411853135787950494280814093479169444414816834800993625570219425772445489751889942453226313435561366818670416604840089624737545563795655268049382368234811723758137934659837236849521211203814491575794922474195256375897852185139162913319141215929676313984720347672792031158696827648004678649251978052679450342579386230222765858387150241225979782767867835239184489153748317328201840637358085555824341608236077930690140540554584848594898956793995586793089630194661283551176337793906629684284700562476581586092310897967135086019512148369899071732200912730411381910362515823203890899448042296795313294129599133135951692517772456785571787325411285775942671212702927009379972479884594570847795073987426465365008417382552179894736117995514100457441699649010762261055158942805370358564391554486751222971711977223584850946010644613175262300923113136819419297601894539746699610250667009631871396988857540855604544842066378944585464668771483122177307926627168339558385823765367420750893934207274854878218415087977928626747264003147672946687165028498609391175212120757921812424272642131790444018978123267648827850995594920936547360726631330436828129895173697784917923679853560133227592364933773187786022574033978090048354499328385689109830660747522136266595279241496326079043622040465390137421252052850088381143293563619081097533435648039466747280162575303028729058630444666474356450279823627505434589640574228445568531656948251138262202208739223155012535171019510734657280055846938020067728063754862078945403453554079518178295374286335987376155814512685299363968721028549441093908460947999717103380330965163565382230509854085429631378122130295429597657612831797013170498739407844685318221990448418404452803802428004501004035064598651236844343174340456701805047318429994172925042680149853163248232780521793852091042552341864293382168371337265982196554285676565755169071470828942346928497890162525293266684319704675067055175571919310153075710619891245306939119890976156265222452073160158427665492664185509838713245504365421041406475238062565514652435746748268076817390122893603209204277327912239646698025741664430900570526935638711745645030578987205606075193292968901002672893284113197910553843558109026635986632016511912365337760987553297893138986889732824378892377031261981029918764085394005073605717790136292019426292037560632969384488076466312920719701693270543381982070249155026214902417406954413877132311627905353807206215586512445848687804560923691040715956663841046883886444685782650452324888987636923247856880890796474827216196460087882503138001249637479147943288132643383979727622344436445778294659179096659201399529777741635185488064434775798393118407992853251483022894474180845543862464990913363743933051221695533421476585401817929720127641320863255720145141101864341877398412220097891517306529871727667953851113915784842889375224369507717471722100120543453907400731749288085949449229410480498636213109773108635398441455337437985652242545345795674567429865986793823076375325787729436150826407790450301261597101460654024663779712786913009209577997749261313536923071573061619517317466509699859483721487794152848037730865842340897215889964537571395847786694979185770909042050236306980376297918992807300802457038701845588756549534567680592464688034333248715572780452518296922360845970973636160352685890239051760553292179481730971468215609014869641338803989444136462687154849824886498925669219223450132354660548483503583915564186123429694324632132508476603822787930340156230962093375692289639647171501445000141491925477116394652657139090600057911260748087464496807341217306830587793021242761614214951231781416884396729934074299197956462757296578835355470105312417761453944613242558894564604875459067886685974593064957649913347568504104714167927634082958990836319062825303307006463132812560630840327514772513243812210187755658104977424052909544137371239111052283985077477835741835728222193297298145111352817878657804213629114841480154846029065226172683660152965875953141233988760997612119933192867584197317291420771642619188675299023167930041345466080062654554778506394400995115118029976565238611786027622907837920242574799224534834286434412396911944250584150564168204336735790103849351756141112947516809507573057894888317806079688386554274480764573392532358200582463916285365984598482540678045072124415544785883502491511806935084437762743138019928492015993073864940086479923522544308284737479868690126525938112732990180068997433388087898380274811060547579752171708941003954340439476972763378581931936495140039927243181274922123634411899293398900969809855129256069935220161530437161245446056929385270847762480322035809879652141800313632624104081265220613169649179759308162249997410925893146232397034206547725714649101294869665833089770092961587136315726815839030572574658743574750650555443345486339605278016088753329237442783214026779109415070324866910573907800942111278183569342710346650717359555152511091431962983695376674329308315791670633608195112637584929789497753051232768958650326045832790059036554686281149564545424964990932795342728146906893232980881752617504444506934575525742709995873510822452250314522940292934662636618054752018410176592773299459899558603929574144508470366592383833105370347262723025337000657579639231195709841122332774081764953701387842409223662092223486948252697469913540830159877262884803851615589923586133947803361910359715709371927128009395580416235681141594664606917568435536902656897002810728158655774988799305754570872472619457085029023005169080617971631707167966050613761045811992187581845973518996718310249839834476195808608484731243528890075291853613074487416804224382479820391955058169820152589331019058084008984064043241211894125544824435377198587990095537274126981602836247509843903923007386619903591917374245063447860837441065787577895477761014104072282544124448234403073791803068656558777849050792834174509475126100640997214199869649854934851714831728465866387576573183785068100819509103833124193253714719307452011117895046635905029347983890137444465825771058640114553146600451224854192849012519861147346943603339511790880770890021976924706090879543666333495499952111960040800000591685989719014717498070379198551079195298007666961069063749766919098210860824004536110573232364067097401799671937123036546654353469077353686150314487996822218493109071864789001639944950510251249482299311655711027045995446054445912655460007286481278231820619365834715451440452413642284369557620838307062538538005738068233832281247968022689640296306369007904537788027177070401537150493770587529723775110499141825271226242746921876607002788254184277386796256301079885653734322660399430051372806571096309603755233337852541724442215433156328573311675772229836897409254429831044277667367326096449664994887809840330817594798923134851785636536986981119226236133944226865914722734443553668141727420320889726432334983795623328578414066455621199631709732784854446673699357784169257684719568614333323117220003374541111431735842407883367711381981785509085314134198596543072103861589731185068985243414283868008823836656556807552600324169163656614225171249229823539851273878513707991453150052651532456255639323820334061377812381654248756674829408364177884069427761507997099494653685420536764137138787414444208230038687487766567043570305595792186780175322409734293167798312411202917140204826266440666623905267609561103382386253294471013342824257647077009114447957319922515924197435958021059429956651936510702141665629840360826608195257428305109412074150743208878318925766783117052019986970629721401568280068591750140264637415454268044450050039067017386767505968728372362995998185564044640669611449008751389979431494895861491313836553161993894377841685102792840687057110043950298735588808864095626585710136020324577779465264030145832510464769523325384872480482835620613334371253868895082569051084183440475258472231339146739874688465615358093280789804148153801190682759459742515820121070001805484147871358909829170714866303175686225352224968848620495059091887950814602355567950700764790515605023260890227270890157967703265212825116047363775245415871352910576301865225512187992702619252903215084147327940765860616880931540901454648923445420646599662584835731497413870452222264952561263524422294656140805940631464757596788071516569289777414066537449708839928608151858112116165468798757876072554447768988326530440022176113413375318334487652808362594902727330674111501250147737824918876905902916375960243323436463743852610642468236276781750878890200649619834649838235945786148982217673342619686645235226053250894976786683011992647625086343112513297969710112235845511896580842763560126980638700205935869595884054547458560371751278309813598274651238302781951918953265101348965468251364924828048786852282108582831178469179819251913177385693797496530591029917617304400611529879499749132108391027937504942469092361263433354174999503880188068394537135376621514211379878352991597945950823035589551240558280555861059282424309297668012446196431106670379760259710335493387932206884318208588657835862368248187809816517052109134783022367418543746662482455809527355627060482433459904680696450268264397525618271689187884605002304297634108142520137533447579563263048795015083244380737217928988812146100574463719487934065862963836923522689303837639884009916170327115284477296920912940940197486634163441229045429456958184988812391410790271477177462203499658891838068303871775438215090941521571861159404553138598402892436825749008918578643100508480755760224068159591619329966215630559459842896455935173020101548103131299688373601352158507624290251875218664729538504640862468313959704656597088513618311640902568511484414696000421137773131223376972445028329048639353021288527128641573072342938285141184832271119952377974956925052226413225919769329739449185880335945568170750440056271253652147348650802965922768842486839492724835596599279832095343982435813406067761817527548431860116783854847252987896007214638908941546085172083209950573635283917079011073888265905920655461484552581692457460893496674038986239330978096462983519713892139511312641638781125168944652513115033426680895573016503460984476794533274189660828122303637168461802300512957089198554577732510414721049450151753140475335767198994907989813183398253663714319151328943471380123261058616930617961433513874241433059520721276725269604179160175771283150632712472739907346711726510616737980270173619684004236759437099512206922831120816760671345163475438926960215325560686463904586128893516572850883518694615324639109764951983844162429561782691864622143086690016551248988023523811306676159764559630389230172775816620293122699459877801388691231384197785385899265120292764745470253592012124294020371559522124512446939294455545852147681117708806358934387759260859571490581092972026072656017163853545713618811520396500909920316378607635333469337236015301604495879308839976034598934332454761224869975747877646453199346802057958848709409093322698539546851908349875664130274528048158795209256513110014762346852724332561732440208710151412309234110056089916751229082169620012045635675883592742501801349666134150982763504269434768218495849867203142383471376185792174386654403293829571798676297464791049381737611817730137604723252566354199734704704928716401280157821357847134156205057827820343829148447683785331553299147037265316041041079133055735194722296156987685013055291122593339606009568358369530896497429398666296221399928371969484147089638279020605522871100268582979399154238880799747878864696087163431727280938368743054534588533859733426949197766600863635498491369178118732583523970305097968787051064281820346197362778067581769460493353761202763565583912208707833687656476496821837208260292250369090359189028525966019380249596796117276483387727601083491771823298732126576484474978633792878060838379872463822101964980622365108698603865198180316150496007963804754495565515437129597113013441106923432036182335205479546959821773230032606184209747142255449838816744730766226314361947719420035433065626640613398877154071322344445536538727789591519556134525261670341848851963498299085880174980936166236830850401948508024278960274541188811536762052985834483363806712282202224333470163300919958115895958925907951509528084618063813012888180308398672977113595764335840645924135565523616263989515875975015436141535002900469404473773680812707936812618777681390726862143287511014015749077667822266136266312627587148441688510093797842208772886869536684905316425043306348249707545320139367206755528942545905009776890269171185387127350226693843232965020236881365399981741035505102881054028755205989799761573432163315658466480587690413107206906972188385530065041698793688942360261368247589595964783381390088702473901125296344279095707733472534486520516210185186460286644286355430890073341858130995272378144733181994380669246938203929867342506046698720441306089831699927228779291392296138905189179855734248967870079371087978854083709784582045908853330147104411162258791389824156042436877655146418672183141377086130575001397589278525702446298492412690269804391001657428134838306516884056141825511732078495397653515309225532276569200331719781935719456905500627797840210825568351697007274783182600935666113377860400586529756021744794436877693663020907565503166862719531535874768153585149005122551091315896927380313665335385597687035698844310934455622806081655203750811058951061417045773146170933688093596941901237903961526703049368145841880466331174557460197637630620222451925809660643650309847817326306842529711660761905352034825479958102418305990829686578395234872724657382863282599994368866705220778639486696949941702293570303133005855217489963225717051878518027791665813063537909901234739508659887495255801916962841519763924305837009898240514279084518261948960467485802494632938204599874070047811639545234154831767746061004546599529428747512515001648177070966520633042577177206038752431705434701741205054283894788209831143873373900637311208538818674633801730561745635906833396387719407866761422792181858028546373522002376797998714170358810138716086153700998745479094742442830785828860288397409012439248555643912120670455586092345764357155721416015809083164032170711521614012766304320750306791113536668208298267321428699701712202443553149452375060826333781114136616117760446355157133328367130850937976747433272306925395951089945549721539957629301847620362159990229297804300247630485982486263995390185782569544890428472116488348998918501936675803134270889757097453160596694137596435351572015212646932320283988698956408671977831260164474262294752422607777369766214723416174138547914327772948665813330709714332042487180066567977877928251085955426118968798578497141994529487354710153053822609098592429879805083035203168424201215545940956191804336336456924874521291245478903232013617906139302190979484305860139901474189831163165883630392585678611243254243334275030042596183179112800238222883209401246372921059410268484761114042906020780923186723149824947590252623764035914755351250363715565742421093776776219791659727084063134844859700507679974422402670542586628118730514304517897963804623163266977399610063472171285314959665746142266262018886745381662746677678675010849594143206896039827961659910009118604168070803834627613366037291585134632260989523636444724646964392583909707366120390897804369465742489429899524082868142707751952232498061564400470105915786739788729372499860125852691068930364365151613868392363550214390728194276256220255639224204732780342296843019006911159610934503387064393831616951760573898606349719246674543801886306714009828343920623565041228264474123252543120618765604506984063690870712817491399263932765718753046706605255917318614900385435501180271604674915516142436930320045703731722381499001733092414519450295856747215110487538392513678163276330328936663293033749735012946504063140783179156051241199774514961377779341471290708789725711681477523728328439056626596255680528222701025084119769139341618362344509424400903530789979134109570308932593386410641406274295413219707705129814956565472485394064719560256092715513073438673699128053694990860465996748920473247672707340318930442992958264118579507258262437733554808555468442841035300723087090834504795097800027722858871884822968991375461880541093537142078099385259191578157567223104854116585034327204998584810932264238694786670848196744403048988747876540118672882470584368447573961238235196928372622738177642403824793203645716791716720463822390114733674626086826668532668309136600305732104359889072261573367085684358781041358844902541423811500961687308862871966035635909360322552577740011447842573257822877058250615509611707653449103611504722506550412360513056041146844845959744280570330661836495146440943720063102896067277182814297626482518460356357864365743595521225972079872464233185119041116921132723346525319564164754239615626508232517026892293783118198944942392521699627826512267505954679632341131405874824701984465924527802800835818523950039908966059929489458954386448866399327825658854854741751823644697671685478272548822584348523198747659442114605782534422786024744021418248644554455208509140490583447084004298075084129674333023846644211506902497941811950524472809365085813217050536362191892545250704701830074335904301360586762795885371250709351387348015419227971848045340994519559966107100749689419386404360960670229528830795146579428933297755929004201789282601250744599021286122066979714001959928363148448377678657015334230850712622181890232716548945565095191421169026765314912300453653521958583059630672615979622475272980337502714658916614305328640899721427610309720945005376885636963678410326516623493900099020538081834432104875975984485983633623563577055184340123741597119489153104480840471910242297272472315124395223927725971084350893234839868534638943228875232570952227992044344668100790654107744701834056189254126041874627998267283953104568216367783592616553478194297948190444787451667513312684649854981719930136135789506754351242041397305325499451000832072179067213748169920311524901937880270341983584008155770581146618178150834769213744887110722695292104017991966179077789994031598095108419688325079906298064439491030849584813347945283366037701478219707055703537123463531112399201896052854011461103167966120478574377596450957763307208879260975960099295400179863528144856576300998076661418004527409598247526406099040073220390963168289613305251824807586947964998695252782753621924531909892678837064771343146744811919264733968113244404976481639113483121065471381391956106960502916864698757996167526970674706423365074408324588567436039306351053331448480287782623470756568376569078683619801511236471145725804105202752757557645433602622381622235229670180340014540369339620430473058337976079906696743315139105891705350425326900545023706842890967174332281929201754673199255064089262352593317757936402851375389738082617594654682424817991054479135148061479113239401291658412590923484102891319884367981876118039769989590266106427012610492858107467216945192046821244332445944469956814126365114307065723446816345808199630364682053562790692861812875768349849065839821926261361907387430481594824028426791380821863881739919592160737586743190683900698101707216167538104177007062759503805779149055791578742221014510642876558782213077566100037208562807856861196565209080716124107887818252657789851476574677030004636879374256742432476939336072132418414928926834609939825139477257357017363137500703427897968609220121389381900127866596946298043667316871478431749936252679229139263459983451719214935361080390126972520261860600424402733485392868841823898097683362096411158862815743762467612541023467119384039126211056722513225232691329719535991582676121836371594491764169135703108154080973067333530083934427824430229317427069016549638286707473549240874628790548951041254210464354421449127978263190630396796757223007706446278202517511557292489982484523200364790917169193219309364749984520855175774236702445133132702601351992472160851792654626612757313785216028017297047172593099469183384225169318405614802242307045538375370905845831736961954442431250052422985759925713214935550014305025710863922851783994157664106987291541739864802729988276841499839954480213390004404728887042278119191037003573869084960302529890583155753196703854325189865921869898291101915302481960366125587649995422715537658759907756922741112029915422032744048927041348764284893094916617482876305098604812079254322798980723019660941227638528527739953880702356011043539218729782666949812406506500623925453869660929088742104228209649711253068536761380388337120842288172694972069784515009628027365038110570483273655544555868923271033399574176420033127398900548320015359239022148451916563439977109998217753470233189922199079210071257853164815074184227402406245254964167506393907305465009194567592678362014969453653986967653586431409210414072817950848183939134927088793281027692195748223479514008940255570738235354436201962109639240466072940204707382323691830685235783607602331324343063589653021723295404138367850646753192757249904084968108997260495267618487087774902147767403372240036536569324905110147754614210519498715776019407474273521058277370425394535706089807158083073573143522690387165398371495700510694162435906068967958720261250939794894148743546591781230316298695452936688300971793329953618722992894186198500576523754351985558193227184247647693585026718087950388346249131508097533313443911369989895504300179594332253875893406789470674991796961019787833570247371660567760648552298331314054806797683378317697259516599147182720794791033953255762784729990795525514372021448578677816846575727519674477235165009537020059704606094723903469709176113462686165042071122347344931120300909817960890224382546698420340390540791746195018321471290487664260766073325311617954546255000490974918349833629958625411279493833182082963831909097441932968446166198479409329951159705459908361818855480810165742512842992140112582948922087375554353599504852546689920695105600088691206005283195648597977713314751011218775669227144013465744624809470566563229403085948768568850135705082733994783836762466685758680417452091790972044445030520540292070304080661107247930487767594129103317251550132536275986308928785021208492739693556952255275989598609328900630415272037234050417791771244830498847185615379429879063786608668218681149996118119756174789570952988781310083233659846014136902021950985170795676732057960992092408817738501425646733349355842714922896448457379152779856763796372841602054495336740440105784063853251735543926111315198444589699748580952037274810064642779569794755323477945164876894120670837189308387369595931121525511606104045468470132436124210792675130970423337251684701002063538206825636110995935431907214949968662358785229860417730678773976998910143371465480531911623126252127387464600090591412358258040345698233638343786117352709891152700586786021781168071014306706540043081755803209052893143434800939937341362593179969217852782431061717076361351523713633040360589103722445904281189307040195740254618178684774392300905613663878677242643226778196704849237137689746939226013598395772911553404811050707089161540819059167767430170200465941965112932431316077493088911498726957145061012130440705548977396150988387235322864591560337853085669106317567524754492882853232878041900226197768787629595593352089214090286389158943769757257760953124200174569257621928194899858739556813689946857334111525155619791581321827347380623143019318585669470998163443191784625694447159577718653995137781759929350754381272264476121374768485094565178948182730690018075098746294412144036671858730520006508223254697797989027592002144136840659049586632005810066310121591748131729986111946372521098998634425884240127068348379412671930926921736483627935287993067777734677814618431068590818991200973588781473400457360623452625015761914997625269005969626868732447113533125053905185983578464155799861005485450430260365155502488226349724128300043176269661317211525050208060617019311013165415330889413088696810240173857862595046984261681698134227624642991973673109428335877803685899541294808619576527434028640874003503255371156736850725823055339806247711007137541795012557791246029966932572620016723484743818197614527772858749877409690347452935116188613198442962181409154224480548015129673525000361770333237437635662898917809779166451762521468424131623236210239899228934446355619060832452077901979182288933642539611222634394254823239601825860174906978834476711777708805635871183094411016536307309141762387993022660043382688436909512018782198081335478744393282015345630178764114150895545411327488699854026536595784999948181047746467902735131148352910657925388503216556371718727374160905366873091000960921788144270101396053665688511796372044431990435954860008743388907592775997066376573095394832329634293387431818314800913417639231304054837245737206281835568625526582353261717492365276320222079146982337847304528426344644498090380729103130997112166663246576713635314674437520763666061820207122976860510349779407221435853235086642673876544976541194291534875366902181651141611929474079258517981876084272727849901363207173568971951925294184040362177289478679871479045033359043046179373455942247465214766916085589636880157325876710407039255725804492388614309713447055474249936819624296241070092988997041027473925092209182329596614547103472142818228362074121043166153592301253409222198822950922111206190584030620495968419200073914449167465072962233101953553359844004247888435679777460426381006048942114841080804827208157111198510060305114255686091287399563143757735171320672870703759236734974047410236361608165441566792150679172609508098490296464589771820154697206848282159767415172411716728640784299060192743423627754160393000879317492636344733953930026477450066616100482361183695049820085611077532968312888144371941165016523026491077000602145186406360978383089106548750096629164015641587611110901704981123663303795851612899290671471858764442268208684527574630168583507240904057543842338221713347342524006399005031104079129008501209737034978077523903857319208163702351080200168832014038498462998764269362124916975144449764959493161530407014686509207726654569852985249651714918713801128336374332637009478692228367060492168007980249667065058534800175475690193820474519499682989886581623667082076003147435668124842399003302575430879127877928962944324426212819638312961390934296062635714684479040331859519240106745355057970267448937976145041116591715614578865236727542719920905032976405000772578512235983198223065883530284497309026300566274554438808435670678762577199038886561840193657483593070594655423728654066892761180734188699941852419267861934917625164807504621577595468305472858137204695400478372814238542919194684118818955466141400668225989871462447459644162655431516949166733371906685508197305772104268838849130032643283266625746294660675232773787007645531965625795489065219533431069259638623071898942309777564325852015355368122203326301604181123219112164387353351590406359875893938237473699143823425201709314869407814213957555447907681777587934557882623393128450486937966694594570005579455674360877736063972940450708145099842682983724644199792253647885954118944782578128875651635800176186885195646128454587349639903766578621430893138303723845820814926645921730173179631091492160105844392689627188790505729271122913218484848564279519500889077212866805255203358313396813006626073956790419388111443632739138493953989481347593647193256606268274170175662345264679055960883608541260955314712363015077707784034521036296101700184189055663539037034178544221763700147705603644022745343543296248165552486612915765479007605217906254150784255894008291936024014671553919823193477245929056016504197673417814483041782936122663641300435314899177387570188902396557189473390687075566878464014974436492281367516678398564689248152131837632209222642707527738444511007222457499975195017106822701378249551683581135723153759346714036519365960307737889696762578176757336711153480076314098410509331271051212502157130712556714053854048233327084431263828838665007190024650019457106355704952262194595542260723185809917258879928208958246490312362432028708576773383906431501596971327257752058487373974843268308167844182391153869020307179910865730416568440526957001634942717167974384494703337689720583348463361163791895123879114269070833071562474544234939443452334881984689322226466663944314008001762556311964829617067339326846771855463255046589648716055640731851127493515193742862788782731522647146494542470048836141677988939433506432857645802948374190283776283528636594710971437231699251558377266250114537444076626937108677899022396160033345275196500173784316863496779154991752159460417874781987548913903676833735883346545029197883685956897228973317706517021046427735036866763726290647276534755799394242845458323796699089100921738507237743058876209797151398949787452660457109949686687630099790908172760968828914493359482147527161654422464999956885194162320160799812002902569684680138501329912411101885353744326847078689310861438113640372608664122251410607656844561576506581615959288860619670318742314453750614843120759865107056554724947312898163843742692624932920905042826025224401704232166136040943639820323045208793061049470427745005892114839528712737561729296775210164141748070592927926694760335536838097300797152645632907663160412259773687863692745239191807074285670037006445623190695940252002784312478983166647325697372598190414690654477464141275934525376520809829674984038074224525910682027216854416789089098043076149670017751399088479686033463331289861537732216170975682959507162349463759624877038584675252411381893937786296033279216686251105175149369682568125230511065379681498172650946112958330908311591477637728417452559309924334189475313543975095602283596397638521881684396160257138741461137034582869029732323207153516473391918007490814086489038669054354751359831067993410087084813681551565327160806209828122333752020250568690474494236380026751061899271301768499547935080955223733231248245316556719104030917637165731651829919452236618944072089179657358373837024271880928737932039717856726347708039339853671581556239470123136194057235778622678658328490762380059935987272593336162648031842333082572892349959108236090814296160461788359302402622430571142060917872926562629686036427534821706322306550017240347396291040189464400918054228725882333582402727014203568212961145659211990356908423017071148009775045762163486409588720998228463370006713244052312684667318894985531300930175553322717549207854937081206034720390324973024635143110470822199057790753841046520924348690149503192754560374531383203118378694742301565553862280480854783074203798264615824970399280955653816256454922710791775431665676520186927673433034160480246046908432583413902991708230718216212581864573172437570586985785093591822431682423478429981500963521364845625220177051185766178122167280580937110286453536198705512214099695291795296082373282070189086051287662023864344625522399355697400824461508273960579735763576047518280918714270795731390777491964136200643118852355437375869213231904339382788657701756670143594744346819313650804266321383555345033270415270635520787620013703313206663157006220945407238478265393810685986784298731540001860162065029197769480574186497069118777898448259219255836559486703391625509416968899551367274224211959276107888634685410221499360682249129570504075099349106933150409162886818966559232662345859709071407750756036442107115842444719750622455258138078877395989022042959578008084415329396580748974322760188931702286332734131422482626862622647635626221921793219919379821029148721308253612098701514874623028880222717918167660368995765269939309997125054742472114139809598875963933408338005904413451542297249364056275774108929571554550138292991553844497570463701981567145669038026131641111558756813972454043512326994623137234719580666257527505551880845973842366852991394205662763703664007547794822132119149373885795788748010867666570803310281430203787339021218236059386927077586864891449546077501601006114493371245849557799510459371308635987055598696963280647099015357525470272487945295257477740171660807812155598168369546142985249343045250545901044334197014778159809085720391179341459234494994987795413994078968791191954091932051744939399434378621837051158770854847431171847244857803175106040448279033856327705010028482076864525206723115891149868340772011586173701549866127945805813333066354052596042882590674051171099783775752961757419868605170223629426816393997128295337739207808430031158184842425884967870630040177475061448993203547948518968888979636553253759245726848157467506659752022101877228454752004326370384040749371362389431696901710859484980504840720577088944507855308452860389376239003377255987868115517957767180904486551732449294338153175296922748270127725566772614348876647880297236386714838008148390932451760075452682857103703755360906278783505131868701749364426842015580906901967482159457261147813488704394300532358431969810986407445405404290738640152000489190626920360747996000028816352314601834788475143265327230150561059636686884667305343660536384426308596977806444286796744174379815000958398837229538926161591256817134102072298060102602643564058908109812126059666861834168934666599715220417294192997933291341638764792286676969690913505529641490844339440942539484391270258162226493180598204769179022696962232487750217271607038969302553119110028223551203617702439052389413117550888694598472643851113074432536198874696252001055515763327723691368309534276919835424028028372916766971523358324150534152313496679218295573761967052649718612048142069602032608072813565206223022106882071908474793057030786017229766200766325351977473034223018770112920950684799038584340355732054470065980281198412295888745925251840569439991814774187921424470100618115497751620153944642449225971041667702118558416792578145460733001460262480772988577725610849317329485051301564858920975294600640193200388074923647462542651781683350222368449225801689811321388747528513628641373301114608529614507593693151805045254631740099412532655464003670024139222123482179026691238686627380877881852808295219840817509211361908514396436671289620562435555628471698823225731093086039927487360193038671227001434457927358961287840020894489776434070412974870857373649387672973557911326047174462511856793997251430293799189554456521203910897220906860290414149836157524217652941818845741167758103962655373596844714259247390280763138983894670958029883663878715768065288335253050772657916214603413052807778926813552505148312912220357912537816213594634890922317449794293784273021950590570948725230310566515427608001902532420723629476076096757461290062621926538247241718719512423955918525727478454316792720924294082116820756455792045073824439975872327076665211053579239013501935984532130150450153588728104861330493426902401126261429592444413995251081186095585977350527686844667921510604671776492408468164383031203705090266571290524439443750683194091431689029935705816508794071135525735327323577547975113138518039431861081498278297222937733442055215024503138417038056378279993994238545450390904171278911611896177129734094517486931800272736144908571969379883854484902195889996070673295080871713600945617444687361421271992139811878428710764253963136584055570621645059834961737000929076539002307649202415821502584386663062193710459715551701006675594732212560297516891011090017636692939929132930626477737716032931349679600834255681847471090087469741831767417572831217982248126244198148408499188733912152076576762206448127671012576326473301506565178276608969553404163817296975968905772526297925509558934856443973677048665596061248597162030103421945761401286019216909501246443167408500353112658533975021039666197927294449480709950152940432614304637863950534658880264359975789408947615279232409910279492994869110565534345798060394756265479707192826580242411716327492705835019951600446468622897306936684644486954702009665856670921520319195194429768604041707710612902434869757417399266356488174019652316987915943041477669508707578138816974147463983124056071843573842056045102520794382414307368376508933995607109427200166462138645749872376942632950456012196297135099111360640774909263124287127013115165434279064714822701632583284133470351764769493563227861952070761987773773962486379487539946399863107339443515238210239728158992322466455711019687188798117533917420230860098392006700794543952552315275417328589392679146834169962945799793882791766450160316834836490522057265159922046655207807663728412876447606558061897146346851508660116744258935401112586215290952428144647180057471982624256002535440890969180828303342181966614429248185412704387918619605004941540037811730914000276315232836768289579808306245683748655387061231487913974947733940529610545782872181342123235055993340130233940751391787059684037446528932567193307881298838829709662548563870483086680422860288603818383149113295334896226163496360827627836054347790575484122558314209143719031672893305809421899418992068198524355764846813123808194178603299968555203871388503263145161986760697777081283978150926480152538645032029010356271993329339231699024970484373223516277193141028169920814575784019838515335546447728978629285807126911839773516326118728457103553190816880064936519229920939857618873330474689200045465037986318335504714761696003677368842867615356851108690516070552235061366393050524242165413012649845483004584084053805667933558294447484958615895295098134768438058395119778972696979444043394805705381457486133530488381181137702862928540308036778917199028986353185011398400005099664139698068291789366882810497510927042818288053899948262047983641329058228504175855551176768439917698281816597278820371092252911903552430419759289810483082992516654937014463880440826296167547676371012860409407055612843807636387098013430830798790338440864067457303873892671026948360949547163131881879848489951849239998377541401597091173298084775497687737861148835870870680854344318199335298948242265576674752336938646610741453026147230915121332790231522412042378042550957202388045661817823472854494530680749426237267849535745781445651936848093903355999321377920395045128745610807507842994501516152939608873436803251555618525732453742816572453643072622196103631916613267427595892032564239371559443164241778362465776567991708659113606834649074794872684492359748518128312847244642354041643602659267463932253877060025142715535996128882381771005101189931942984319636030420143654007731620833754317010994033545015324576278058312015833139738456170964580505658431273259906073412745105628805446227225957304036923004571750354531277721857504845747748747505517243888712005915667363408657399146512929991463358883863921998716366829037703322761856860809006565315341549660123086260401533945364147031016135860669017103247503558737530769759595052372604691184929692352392614212078109481084783670669072037931062335386986270625422736389498399065824037993100462808131473171090134571798415372234745689173626425960446256272841439703595527426343316049283446316852711733813976147106786054063563182089780300318811452951842564091087649498775830854144193621901090389202478915137895182898668870064153382150031434294133204410317752176254602971678033688971621950797708446743595713013713012435970280023477066117434196296742983020919722557584115336644946129678715812392591974555752573393781307131627418656098970143686515089695664729502796815546905348361131182016404153639424989568361732026794158001597912852062725479592527128963801094180565888756129045505536971489706010034376026316749850426879607145393281452073096994589160131351545133723340586848325962698007697851271331752447738875599010775041884636390339826039911222528889695133615897805405692940994477165322123934766623134826743634749168241261850831381199983442267260854412751276291100717902342445241842045704053599818268310512616803713065155595659150216601262807288741290888364703858954474669149345167499995349237856877846055759138157547956641524947099540317910078778398094909819390365247394688763486683609120094574277372570337540536124125924290236005334649321951841160728079849491333738156390913068164007095681062191340656110137006641178914281471400062172465153213317310111049130166604432543643504123916250965606061180572584503282137215868596283850003378597542822320368739474894382602048208368808020114699104210454465552044841926837852915879334655179992731499524430629698769755909632398005297060886960885793847681076602657815002162417720711584449542415117823004933973350943985782163555811282955137362391260714712780434538142085032523145651032999228875810104597265587220754792548661597619880351899522475125546087760977281999276732350496088661801234937765332846400919533011894459156331123275211874009498503508796435785977133081156478335795701765600722870057857531933141933187594066832863877140588861489402776017029753217770989458656953480170359480525898843129087310557462310509238010185579469360774975519026700064407289608657222819144591811594236993044382214830943599518535384199487481769243130922526413889372962657910139340792351160463548141913685839773788044722722261700540429701965678861971558839766858928954648888705504958047677101538337425029703916035295645427207900469419747824029816376794700095282648466935814613138726306389312706939283727397014786775593837441948154482615103750484590783580416194572901324596015558602515280883599857299128455288987984015948358408034504196791736236615155015437495919290691318255824473030885136557164875705013938518207706769559366930198028120085505780642568746258425447649698501892723449588308479109250692132365400934677638438791832360137259409287221010606447098300973696161183673905740619106220750472342842554499008272116309447977565317620446779263258940830412907349098124553237188699764664710616900403458055908754630193468815989417228311726272873073223167463194778286035955095600714300609892163903308584901466644844191257776762520548515110763673877763109343823730698899140776792687399120291146352137614764210446306289047161130530171054790256754767342586146732027044946664442649886939962655378618173636748150662054472364369964714218420766394702069238429261779521112621672975988468186447599084524697481395195043927966559359899092306326407889326979962181825169443882560125055368586886085141573084242226994681490686485845898438971090525734304183752159216958259298412986235473604522967074762050619638825444188103010469624912351247743917954407997005799844026921485253959721142406570151783979973989711573259077411010072098642292738151107597302492982369980966706601174515902441864812758421471576579667416685573949766678305129087639927102579152388994549752621532032546646935499902564512300406357767995383537948652598957613871239757901324474637407373219187092284329259083555290551307905842721108281484474792732211814499500875887319411844692969332637375063702684226412867603041255062543525374007072052235569903242844629544063741075149571813818845124191254373412382425679705115778765759934356258350548127046235282731141634976737961790523257391533060403166620797252120438364633542208326517973617436796051647058024367643697509877034373842706630478354944307350204994966413648617504412985748610953362340078766580894471319851001107375393780470020651092178871323875085613877628680577425607845234688205273696978526576434257345675694610321951256645715962556797603703853826599363421054957925992428366176666271283114114284840132349094089883971226364617311226381417552262528882814769892357644026188148276370091083370984864011235558026710016835166973031694923701473530619477645287760228572990915338347352084880278189932565629362324919156769238684475411306704890906698391478851027191055770615888524933857508105288603199618685001374491014874292633534859939270195726182057734711477004613500666714095428038825019230235846238967128596083094741324609034018297117962640383242235156752801910249038148371311483510846549992087532351109677801147888163100198785961738260417404873171125139506932183027915034456990865036180516118166485104180084879212631083957501623548180213360732673243546271084947720461002543868819036902135899586201941648407489682108388374708244596865004996861525457466997516664920389000812708117066831861255712736795734160991203480049294074012970859689763851090585343327619327237882090208261964578600031519429825023544957482552324924447826082086185661200859901066669053823072892499613447581027674694193924021503201160988478437184421732843065636187694565242132629376401024709319158402463641461712065780540298694373332995145893520756103276939902868155253557020730044595110834038680110423773602375761604199245156551193849127305519099313750361473807602689547385318637105388113228123705758024880822640746767642011673029687242402010205324268629573262521072132918448253137549437636921561954902747906643126757268411838727179852054751560002859436049316274984263209888411992341770193043798897044035252808993951779402821001468392077934970166079810955400213775543934920751833095840583494855436734662844265063823894324627736058280140907782695589271849427042071359203193058313928364507955481325179689892645098532337989212895482414949817736693308791700001633165226505314402408535033387380245547746571339159275681379002903174546608595298315793875199685563094128257168045412700420107014041177554515373045401672513572187404365819582674592100100344658603798070784469136661323851018536693724031281349829166643266394155059871965004807747044924399467738318099257346044459706935184745190902821442918961094769654114370845112523171278532661058207500286718990396924740026213522332579855855507359546517831515057516796939733429024849633949025816915522841294176067668582201144311729737570205483918693701898450840390391168600229077411706007705272506509041300809498722265035701402610886324857445539176951309918605340687236640927529343938640190499948029641633099057246032886583858596605668645655772021037078433831540622858426929298672174678850475295116711658354597077275122282050481887729197689061979289512769441151745574596266097813102240732661905750500566460911433037786843259577550987065363943491987818762260115921692266564884084446042938368558826377848745482996815538747851982436334664536225091880131435160998615637386880450553597692175478677765255521358560289660773760296095154975311582126639518976233133558277190518622688315410407127557859924006846850822893464303302243881520849731238959277568209592689094877272267583912453387088450913533383884657917018149907492372072090036820594213363320349473122419732844490488103726165206888204416060426354585383182589398282774200911148147524863971619486008395960059910958965241140051983058035591796865549138598865283638829171371367618921003802443006067649793022969665466987134754001137417689164025185512756123145034776451419570169299633714234447266699960962806265715272154160089972124727315681058716793777623691601084191211626635377067571346308550097838409429530084701079366056049437016726500068717843270737112247906720930659653188451097408720120828267893505059654166763128585839741634675481494372586760938581842936741737591587040785883472044467717194429899567148149303111320331374698890656707909464300666030823607737612855146178374831500643795186279378981561544678924051874398702866823168619068433118810287357165950249855885877195775888465766876734870932887376510057225808871989437966108122228706018734312746907696792277464985086948184306860860527573126492252910408818262827717669413537189954870006633010904778229174157217457062057552989568487231027773756315865584051893376586750224104390870458575497513036982691830030284329731270688551158845541026137018322515447901587275811481883923472995721718463260804133989840133954211516234233588739691982169132310780986158688564759721110657834276150955976865407627620297279768656359215899097370520570090087882091295884475110159225973674909472195750049580367994686580240264004983583901815675149782771230535922326487211684127710964757804745635732229218502256666309914707198127380571581779769422661340831085381596220518219459661460924890193476481350234154379286370477472246220297398298100328388689350691615224843201741004448052860346904292490735693218394962452983979182928994607515611015071767725581053282256730927478072413038507748102696549697425238400369502572591670262021070796827334826752105795828266638068436735479671125244349261464570327001720204789097648692959071803257523930456212915671944110618587939251331917331260741631251323952225712332383761212396582153945151288837138715312463736265609001874140503467847798532940269826976496230770877432253614652466462669935890121247899915698233960737330667981914187819500214472990381860654426766683583530967441356284477356454554484544957720082922210098817591142119972552041466067972771597503603225793945033893433011832944734742164764018454665530584768578210279845467598576579880414803879806474969588525947000860177295782963129979071423126573105785939935567263072471341378683479765817451959729258594640537910689708375781582037029128267483611030024075404013290590028128498532055208506650493203478776201564394422932859980459316738984905361842925902097684596404080205729869994882614447416148466432695730478059972857040908648672852252933661272807012444013355317675864508413216290200537832671290107621662298536858747666224207258003897437882059107392614892101933594200922082375584493585894843266435300042072272168661461072488988208703730653546764703992618203044122516844374360166293328178335388778913117637411817371634530328330525285786016288440414667369336814735516087663400367846495972707340093505595217107018754557278930828046187967767979791523921126985816156674015139955086377512894559429809639002761104004135811059408426623248306209474249149020159946995326199298760116957244793276967891089636915971523091383932505327833096523615242166401726487306447888729532860134780788728010922123242926558724596684609071133064212931798181262444651896131844682884329370825190986660631103576237257618181502341371373973493289588881570452168789196907043125466108592302521913363599149030652273548868492083304161936920258009719977911367546971668695178368405421682542321525387514889926750938552513458397767578582542222446618386416700661339098656899681070910568594288110781035233281721226487386951614900752070930084027318021338704693329158533880696266069947992821344188562823031333222378047769215907732900887086699147890311686252130561623268289254324457106755926890788022266606990221948838066372030302573477968073108505212230547107780711128147668145281589059882943387770076159991023328460658496606541992899888857454211392140935460207699598272796907021516079763103199605673834914441248312733301882763349597544166648049906289233934165487546724472691364560022147108365484587021356766039258335758122021486768261765843036739715255803075776083571942797791978861905180397893496118864430240566346469043987031339669101046393002534768019368675154532244077129283338691438127333542591563641214239353105821501451345953737582966901308759057887891652890043487362879695449510181380949021246145334750823442220098923138758508537029012880133331520722173785051273720236343192174456452405398693588329208598384125689387767438847633804438679609729597052278591068178730748994122473775310982752227826925966771810236284168852678863732629701451415965983914459247441720347035348936266992616704074212924152158685853058790325434578737927040738011970212502417501163368025667190408068690679762986922646299439055804704430509919896018073652655748905032112487036873170832101169115302552891334497351776057698407532469731767556782725047392141252112552921524265631052279423444406790573225988008222203990511988276216286230287680698361354821124857747162511788609741740468986188168466712337518946519103043923475232447228736086094993048090282836585943912887349959088858795007672067057408882719423795053203873332397321198100371215231198064635870611334368581875067715941127725898255636840235651210988386431187968478261787269870010928747262431056593044964882678559239190074002834698770817967304208063943438154036656694553284757246124344393130500520056454149991672897221847847879148223381449436666897409065982099833630691978269834902678490903537061560492871010265164162996450372398443072898001411239287034647626017358349288244171351674587713678277618353898813032417844358849449195595469202245174639722476392610640255944168509480080634345619022395248973088943197012334229246413148749723683288500195609653892394844853336803202883711364173521059975016853418724616121191937322222554574180094141435104438607289334158472419521036327435992389536536617658427342339598367778290674628235707765543903817690368735407751764508726143139566267589452433149962686211325160153497664947309665935142495029891107042635368309789732115975384546542108750402426757026796202792577043188186331805553452083941965655542110643318447762319239725202091216982084660745945199374243277738872460191634534693924855974705877555319411586765112538046528732508988492640781734231422038692582059651189608353424792289612460765584731714085769128288791507557641197113181768029346244419443318227582036981386039564440838506121212061946033858848043170985306337343626980096452351514147983230445791946730400378514547993836806176056812995756698991019549282930601978662105309819754718593929553222890755794457056243926222614063286646139926595840178621958382528894215739579634809951730983086495559710321278581127582205424970630412224928643644573853420890696055095306463510096479576596191100230859219671139056367952259220903832884992504280271498472463068386773214773885459746309344266279539328222498850271057204949001658197668943978175370450142134896254293820090846102597276086115902768883293006435146171159021430739729711459662616078890271088256118152328834125050185016710379629112640459160879541820709966302873497777796294342295220794642029771947674995035021384170902131984088844040657420919488443197342134841689029327655782289961573602614986449090241618196169739590174881166395725956456331757194978752272892513876619303269732248506979488201290216560266781149686211013128515784798281481518765700240862498585798358555819131133337686706146425571123285663318776246595785206169505000990537639985093684283336709618964107493492644097603800853781397734643573012087024201024924112485939870429144205233035699337947340705088828016832957714770294898489199615294818158342748974705879906958967835168468629792091726282032324878885766396323117069131389926119621556127598506251955499257877173395832457501761759028474149652735270982776983508964269407799231785892894914050804521417290245437630029884945138345430122955650982055409951394380756721317332732092850732011672024001678868026721404486727612491630432092258085735217080228601547579961295514435224714155580114676223767845515252183087721280775500234948305271564135080548560726782276470334763405002310787974430977475709137482369372810911477011887260664809621804314803403617427778791459419937393049883710067268589111988047888193248788494785399593937556928114749101122417465931064458661579871956799014940495762433506591604681250021460680928955776505647622964709044378468935189971674200822265925110243036033184357166803357168980058121318051914391300782392816135763944516892931108801094774379625314307361102916030361622541517635503062551968338313546861329414086320951736498959383554219441001559670474874680078260912024482904895199107627871868864856122813567959380740235023800588613369487327081730627259815510192011759469074704258198636704513322062563528196854198978910669482113598758341669499582907139265871493679149441785014124094619270156902523941859797190703274267288290385907313815767195270882639700604512454928329971319513362874626522546444962500825816996248851665076045700775447250428096354275767185789703964348576765125386839101048544140063873546641648706750202250287416798303903773930590437129598577185979122557330529714034899047812905050964069021069505737902853167256021449150183664362437206987142769425964816228502447724542597516531673707635425568229625174930416689617835352801524391781803104666259090671927576592394136367682780687186450504133089008367586687536425290133423327177210503312422140372646486952688782036839220526869436240634547545909203189158987162350513953794052655834481635294657299258620516371142456788456775555140805960497124904764004255884700292775746072413702376007660302059814561021781572465489798482993566206822240310517348525952371790338186994593624841925105781624913717981129895414066725792037082758760250853810371931411863318284802126943416911068866497809769796216125340956118658962786044902689219648394523345437306424314183044323704944786751236698788756289843730230648506824855932759092152339232000427591493675180824636210477773263480741039434840474699381813141458866897477661597695901663765708976211954167961631458838552276026577657816193615197265235271771935457291451840650745735313627555628033739677431107369110031176742741931113035432167527008445581622606178692733330951185946506550891263606274304905957879350244210062416748236268385066645679534434608255776943779489021227512298351260887189614304851634382520111761732312684411620094911603190413634529418841610775361342357842102361609489257219744017825777963263162855195260641694748388373399421849064418950276386534256262629022020622191118859820463975270290210449286741692737076975913983500013204411776859128405347552324517382030571071247918641983217336100051130857370568729401197869434170983676954869844933326355043068534407290485933346874946669800091592076922016495247432008066903635038195166367758797613464218410546953594784196440276946417912094699171737476939723600248009453168371256149317264144904783180992171916142540476882749852121160279210424146068120996287383684957708445377486839940135731430779618475234027433370971368909186276937146791796750874802314891019145664979846395991705909756856606735122889392990104031503952581569275535572936762457774890956161672213642208749406541048900114998335689534812736278583262361644078498668736812724478800371289979252891912993144095748994590346776809831849880478894958688424983492619227942969723282298971303600941010876076530887731475441048108548229974901337025670684642480857235998440432674783653454422261767257087031742706825790497502483624001628522799889818849271369008350143924902227808520509772419917633872371400038845614727856524889260470305768169997457585586829912668317960413873880544353331974681582147951735882843850306201909625075000315356725250496049580834065464751498963593426785849505420490984836066104300305995029897951999510197432428029001101935903299411326266735683354444567866765723540437861887320896093681498208664956699068506085202361539243470574393043711003795880691861571010952398428672874848338116756534558103182774362222220681963253307951018914511447081299497555545849059210094270983639454446284315309875619434748373458320653824283630693037357899589190434174167910139675172303035710295587126714986715244259946850594671979802803538967849462913531762267719011241662166075454633789898762117592121223637536338910263200516372769767552154367238088967888910255024721564908946581381584367894769221773532793835546561821178081159041748298650678445172153244846297037119473261181751429353468628096241349078558775109120024535229795114266150356144088156512648817871527067450985682720363625598805395132787000208597841730195016197851280499709654975175941070638018602485321038613804723159339430314829197529075719236612539484997878607989600655201211339693642700072094629212130399899693690623418015459045862163511587458595610280244259118066035203934644848494102892194937849473294077184349659081378208578009817732894391281180077051799957605661360288414518735580477912709972976401734075094698827567491857153924721229885355982185369436954268881544694699333381243531739250530448724390648992177726079085705596248638664608027420641461166556740081747191697639250673734671414002354364841139340773419233293578665960924674160376505706683137082209505226643344310194285318273305210812443404164002596661484906977669930693642642884453035812719907426164245642320194083064580630911105049761890574920224539151338987269650146231460949149880671939937899895811312943338592540333238558010221328338182318516662603294728659441608220421579986690071762382071781742115537731095255103366743115397710786950592767065398215701980571210869039798148772233108401024239615434424940797149795119527123616016984681032175131360812460830434247924991544614553677530468549144454163996885136899355157397222919928757644399427024589049623692288471803183544460651149019641746882915689113398031201633321154482382519325595612542021569400530776470203076350169130558983242248760074493523905641456718856397342689299540637368244997270945152111161416636230310072027335853521183885642334001855686843470015718033144050589532243909672444200667212828166006510118459878159870539881325805631003581063978355857646785198047982689685690215872497543209814203340785374282336668082392745073701583958324449359813412424649697500324189355866158506668689436845253141333616961936933339127120131152373819477524979829008818331615209941841514763458428015356511422353302930506207882006018872799602558137719249115112892032326824535481518566468523730614280148595262399398301377202822181441507112769641718311163483460737794333983991054942032638007698245091155564950167487154942760748485067154979104729722093760589097821784697260553357790851526245847853925562951079158125428076686558044345530962501641855068104596492027075959246931241745182140643247175778041621630799129618264159291810829136154387485743067853854680996394284378429744243821415917980467193382222208500754044679471367354508888324633406368160294161553760546341018381629670349577037199119667948361150319121449825720552262073799058658899118334183018635039452839698643557091644238336544847927663171161549020889957409459476278204681601276713686515205490715849753762051574702737646645058236124258674827243741971489124408695706800594987272399174634337654842088912740249039676914441503850292025892175038479588206488865009160304642909698241207381099160912333461598415834214148478939591341943225962417104519488078755241764430259416951475346492683576887181674349630226401568697588432245797978434586309541283567966820020281122661006504738715706100608941498001507825805634552427033906395639716748237668978247131803071256640390043225827777321692968981172262242797277132465786427620884403304888369927982540749784415978377300330755292816373505042425398657454097481881053500981483297807489408662955285749949284250023237310612492853032754596536666050620123486128668934662823683888248274563694717013120469247220034297634718870729388999813718215107405835027558126616762977149239430931216573491268554551128505280321515697847568801937923378914338123775518031435890042318626149350191692324770880350457840706018361832236983174254465672528140065465489680324363892187570589837171276426408880748112294060930232067489687642029690473525993230191789878821357669989695590374650495007447111989954276589430840290655214991718669613188059135509538952012211939606926860161708461014105987287084295160827953042543591929848898070865631605978636424418375555615084285921443119115744642490731362943436038221068514661571147347612841733711718895031039761855580497004860161370218468518490091453100241875013410670691673375763779616418168741791080758095444173675046479566794534622241270462225030614739786619474965410081900210402002517572393360545952150127516081406083362628138400629200274737487464636070528270527603696917628214409147654697308941438308570368839319458913959878755310107498487961585937806269995914391539917530499181075583627401970936752441924300811074878024147582202903717501583365070378202882759056980324266685439679441224466290823235848567279832422448177794317591903417955708792830213449723114316487784307274777647904483721030476860386729491070097097623304444917874531392256201800565262718643440254198158308039573647746908659996587464471073266879829727183155117848161019172303699450484237887858161870676247475082386057397462908075523416945569425605688636178502877292510907693334727036764934188135798901070413075982467167115998192755464923498784163386117429018611823167227926852695277597727872871664571443191434480720512168370258612608002386202942001665293780646597241355357032307446746286741191397234704507103453158786706288095900987170373312838621727374541384352047952678445055109728646988957165866719658839150824952663655587299454929563610101904190484097605001097121853862849550819365692677817632558334221192463684610269198703153934906641042704810752056125577375427338248961346726811635123916584425672140490437965139545025978559174155964007633590786987300910685671158853395583565467868036587000075651884079340327360540548560313289764422185722327777022701145350510206753210320997076330939805832138666271073440688690241148114300866331809744426952170182568223363379569735928466793335820908137518900790573950157380520076127389840486057200001801701992079792347076610412318288230565115948179466500985178890641568585079900027680546111264806594036536253335008757281301959274737689684813468748533159063210169530441737210866289889846433246285294740554808849556138072963845236982839750642249414625452992543740053153597922000718277840139159479321949964845744339733151960906660059272256681919200906786141478328135524290200452149551724927354162388077294506752246647725395803123397011288262768565391441356480183633783934280021619400360570992664535340360114308188016570071121091187343869334087633642240832969646378365605835115539022203381086043517251472652684496704616404356642033663849657318033394035811586291820703938215204831567275530769565600205941815372456807776826963438202711669982386429956459736400525009613052900557987490953917330075590288027172417711400552755934980093720668041263273186117555525349972341324614742659730673177144799453553154343343816451532009223265991141007077468493697093870956412631414271338231074631116923671358219350594286312623097325121428088178621094498077577344657302198163368776309911348235892906944847010663484200393402187575486171482748873894426208449970716532746318342647664268731308106914340207120614689832192306173299647446222175201895370106978637877763192932822660612085381062507548983631841584457982657197555931234874995620242508204238608775040926558561819710864512263458557296169206646349263035034919350994266926482142110397790215603479771027439495978816899965251670635513541346173543761403231073097771002669959824466442909205472908404761095514623924247228933023822528241462584445481207631347520889678700802940826841452264478406211585324225291049612971608146609951224610337165348655280877853642589855738395575601851526697181959933146798479042325956776081128712093155186557074508929655846361979907621338309543242211955929482575336590176232878875163184618977370839214872274980448118012130962304349188463750180569830960584505993372055413047320829639567049010012373994077496451370959786049793067810998245395346427012865551506508134706506437231416998662421660268683852325224184231966137054543616777799741721772630263668386175624769401365589380767337832361073978087960641230058978726213993152193477150982892657665261990052337080849844977078951546044496768313237773910393665657223221531476220724766190486844817871164059259954251831727358137180264236542376456890972541949103599160565503475155879054860606669273663845349944599019572627722270001010966778571370758216572418153661560746191624086422563683656894989380744164772208408116575882198747844758804616530099405546527474421742104128019597144665817190327120815249436335957143175026303136179639583337793713743699557039298246088098509315102815628769131314405881132177198290191911600198750643952008612934164146202477670404100861139522606084310888562979691954389717280475538397046624072707702550441706645912943972123622839418115811671655939322798877642140075822253497969392845895291916174779701244678045122768791066629877886225879107852937446702397880182901896754531851249769801180909795087161861645148319041596045792181238692097293250745002753922743126099149729350392463529388961101643261450998881559282507772783528117444564541290956990862937158393532124433458923443986230609482883824263337137278275590063592988055922882704144680702662954222392587817981369759086089391409834032936074295860617204198888938148881171923965093956118700819765195575101657032739665963704174905998616899557210550938893304441349172975012434353589798440178112360045753031512003657499919897765124089215270954768443337706906585288941354816636882437110254058999371089546168963920842310565356754193132373625092213208497513099714249292288466503751947372222835074048558974046037650942721526931921274374205296107146004615390934816087049953862273053128501314317863526912809981724053648460572866305128786524239343175651690124141357535245244760919281398609827024321385597613956778873118009633719847620089198626080485709729161677923965109899923452992148077057151767692022375286846790947160985675711203032869048127113396969057871315937642101304743918621478972779314245099640238412203404410096966771706879976037446715791485997990249918703739290478439047476060066159903792958652046255340966965943071157298152799036025612673388831305396735191910618336399200265347115012556205361416915351055548719833978506980392718635123500392732159618013423964328806714018515899963297341041773017428538974092682109218933913916835827314093322752966672488529363646686910768572613471679698051390256362573956038033073632095598267451553457000641423183547470129405904071757185749155360422282555600269518602477488185059363119282406397708219580542645350901638534404507394316390739286014037054299417839862608916442266849610318941605045634557015913181547529197854036631512404356264842609690669408991181314040588466346345510950736634731722233250520382281318569911755614356458086805892740188122647248298376747531841634651144528267695130236049319409503709229506380208663357300205446196083667404249232942261068707034050565433309318899960409949968605736254528678599200728471618784159963132427066695860794041166394641301056171772600202298958371959398108333660528371769880338975050131503558817604052615911161414699626463815640687219692660322758970996440957858811524874571175641983756661292333801159394035113369028203217101817054472161214795700471908653991762182164902706607697928892295120146543629294575903765538777725856297952483057670842042617779583558457451842205351099185236012181081013677201120555955364360268482944640137462798208007273577904314830864363041685839420110214138320454297899999984296033891776300221770883777219210689381012848546717023574379006668321097711014169886204284445954067771669987860527871367778410160602165240799673553735153369728807675117532541880587949808730917542073403964538367238256754469893059016726903005387116734892471346673381611111492988719061241096402004698301721021721621977776045155690909474365943611087743378861268181310066847045209767515276410369034762182617761012944739626844145845928335414774190196397908703965480492557480736715658741736777597727807657737536883439907123780532171612804825266741379009879427830295552443984520032241263653856931774890687884601020844695905076291726563642998551414516126950882713239432383955363890298457425442689125481408548128031872961507893204358764109558576594576041001760915175420482582983332577017842070447158386123497466592325308137763881343910052947902716642975827494341825352594993700415041460325132096313609492501743274298946618692270877277638715519004621852269548434632741562358189885067998614345270529156031818682141781290757785513522133607755461616528882281327806772335306370191502276193797660565355478059250276505889294489807909109172536302031923187453031763112785074728333376570941658331780084971345786840827644897908349327283206207601756413465892096559528057541701318317238534144450424673538942507355456403683347230821468193864300264476813395108305483525122486450900771948114740667364361669127448078632807391390589783172286937547144772737042523913730313407443977022124301609433848923801689024433735986168284624626580928352909089521611977057929669838914495966652302522307314330689488392196305818032435091214631445585795886433846112621863311787072488233821943499819608402952538119663706349050179162260349873650055631265539425284828869097267305068233376330690693238028785536584762850488178367273494823063758953137545669184018243607782354127326828588732692138297404776216963196770160755071059403776348958014253195766561045444324636703330740122866088937287983728350763456842753660656176219505182532674100221771281417143405413056298689544950211000051821207024017569073273532377402269757125365502220134844519627873093833670351099080817251607333573316538256175299498621024298276611414697707549965978764573712020150461051002057564630071433270882252628657356757602505205404200532243418631216141075956395111440472534534677078142176086347355375395676860945201737526284238551220251739977768166015494494499171000385551408584209618002771144586982985137448068486509078870053208372815136503556638707721591425826649005173020796283082738719217071849276421734979871187252092951213984560913649436736930514932178221091058559106570903437900912432176427920056756609866021513885524966695622526233632675782493947548194058507100020893300734262465568379523212167367600562579463694345646557371815736078748564441358199400566077421652975201445530958818790204193038080206257259610108828075770482498785705190445580969880467408975655986282730463933497007934678307132976292780649502701414844611433788048539001960992459943611840059426364274995660773749030028550190340184436210336688300885179469248644591678846518261476670976359855086202024113867657756186895826037522385500896614387768861261676614387538741770666866906762711313426013814826646441079096193863927534415484845234810080135229226518380023162212534057693539142255040595968875791967579847675984401222574534379428671273788515680608770651106569913971530206236620694689294396523534037371689216797943787705299241871073649120732242357588785511822826139773893798983410426852037915415209513963367715559101093018591096738652050535391003974121226016822938521633841291400521660309351151823965589958001342506053067578881681658354482699394191456845633408247202293743758395720081337851691874903329740310464805639324381731574565361483155307208734132583698553338726478041985143993492193401856201712928508185873404283636253504838596370637395684886997392762320068226979444913359528914369452001174982087186821364719194544553085813223146950560329206340020593687929544895265681991707312629027377569434299512052612996899608514122360131395236271496889653587205562064809359334005530993403425130702640993422734736563518951196828873668463901639265095880799324655354663517379641726901124754701899207252831537607952694641679920717850765070576035108289819590045350078240828288658972076314137569615661959466145817932033447294549870223692655074965564941781951646982016853352175250770888361632005908288382668213302727421056154160502745231023016306932077728205627175825601625880371061049881813970105130433487120295995792158304071350616886426577730119510927262738473987787132371267359566727963060768982773006568347827761605421346886348572594893499941508337747004484511744938975916673793951269233058336755453614831278095602750396315905054386218710749620561315684516834305810507590236896551418885829081417239603855470240227398616598242408188678137318152149436590638694126453665142298910157554697720550100961421071892039151582429552283169864905788627647756649368166335404111853121850007174818982377919959668093848924547157638116420384167632490481428107906171281400300541021725005904821625444731200782483479324067748533116380962578137965101079278424315515060252238092445598860459148166659454181055606496047122398922555565147109063301474403802024673837447827136978227540212195209042764687435794420184485554647852428358470669697767163087173517115616055249121350163302961942166344491103847022025772748898946078941046341394182756335774829480687699691431537764295921776863462681889319566022478396520615584403368376710651461803345762715889968724925738449922810805832059062979897231568046343019547842341628839665747349754133855079747278998426632198353219763663406743773829641265165596547055308920557299481306200592788390978094354333430566572605160977157908514064057398778331560891754889647222493608056130186089689124982471806815487820748323664645569778671031919567514300655659616040303248785062495845061366669443443405336201596539316440740941623466737011400124859928616571198136384653753730017997259471101042033343287088353725067862651182785981333935048933347674131383488794100689131606577442260141284819317582096557401990895072894225937608329748600902884216327075979134711233738167322534562961584118922299769132803894789279725117260144386325412886506373422348187401664431853264443603735889241379691055422213989211560087099962883611970660911286224689796423184845698370839251974731415485531881924604056850885710673320446417583738321287586987144674511415241133998302438640704899985105332746457437728231501410913878804371927002557851573198482552482211809533863238687536315472556207052918005956524542502866570418994132528784076457362355707924484347329917150552198785250324693112192412365717079808954596806205513036310699191986328566603474026693495576248798820306132846028096874568343624275170569699240663537695489393653020084630843832593180514259912456433710503382445414162103526768693355388135155373464194876527902209634836821677808743528658734075870882981725864060040164787454196328517839585211472734526210169918909305375623784399067341849964395699022989179879441749674749243178781389743261636649465419447843408925470166507325682780475459483151003173848314616386460226514621416508078278147829870672747866407863527098136003989073354998581260898514560711980712231320301209866973158904042589677632374471993230578322102780326026582103475766461851949882422195873160301781897436677443074406312610309642857544543174284455472283190305345160242328471476625146952797168475085936869050465230860688647214547575595620430234013411308919345338119356942588576061918686955133498947142856801087524947064700995359613671627402026923454600006254514856796713468218281048887494435752902297836350730866831649718826467575683780023601645769982752122577535607883370813431744178258170297455190061658788916448608938001292398425830097896701834696792653377182302052482182070453135096773573395926977267585091591527209340878053203231176396916290737039182772428752197691567896298877585268802996033313595632754273904597618308349891679237670764400611410037417041474233539843039010962523991787167156778801558913926635117084811409595337011425178395254241154065561656933815429245569496166162326680806787701849722915479713276001936549637740595043390878011524135996171048457844180487913860163736767872052853700149096945036524752501591459957529720290445316271967630840215849920877335504726266377596120718348890449620889214660757261270184644033020904692293154493646592857892261559663886086825501713850243029351291824370879965863749161990367266616950325898200005006328148308142451759170750114803133586546725164061325320573719956873667256806719255370692184720723950289410706170936648982589306421285409142200458427181002496128099075356093418731563139382938599656674021489825000701377032754822188059691798178838017991723263423795689410835546691853960773757306646161862968557239448296415356483929506133648721720139302170798474683292795591021024452354703223196246041903770276197010314047446419214580269551222646295399717786085290037827917743849720336762292539245834081156750525081343176769850106983598515076410744150996605704243392753644012073082416440923873917614552399252633023454646175150802540065889466541127831184860470133735652647744010701969765378990901086792192059181905387904781035912638880117998692992342550419907090629682519772818139820779345199706403884228515520165654760958533109443740643849953211895578925627726477605535575211996845716572135709414188743409359071935832093556431553491428682044315357899349342245556229656942295254789165228101549292666251984887758193906488046197058265271814700022210088352985382945578849334541004127756059161903385229683886148229504257383044576459293263165011754155364800695978847850407297162560538989013847474696337650093301571910099668493353723801369826876583707089924260068602102464191565341095341091380781031637336693171116018904560466315857999512221037930283335503818295405399543755736671762704675544992065937759192362792085936262325805605465369652816092853251906355514737162991325569303112829963631125737038770165263967451794625466621302284524600919287670958132797275439345827647648685105253289041367128977437795691804105573909606877031545715133766390009370638819603465014509425808398584759691930586112718295815611181164842457013053533064520243276892293110085878074926521787378130768615923902581197471550115328537991694075238188668644797705234338794839628867613841139838426068131882025757223758054295928633110157045639969892224756658011829888976205856101677563850150106814788683012521731674521355641535451327340764822715373229498632105521901858494907467816016284447275121518524326886061805199583660200813654485303228771219318288474880245499475981340195726052415950295110586053987045089977625293120647309258977038981128874085167350040951963833883080283470718633313029625791486552525553676158013716506511541093339549897743086096840764941162155807193991778940808822648761989633743976244543024134700654076533250452884855246158294796986958024959206182452944372723709338777549670975334028714928425434142851992387560749399869053520874206458622713427412387594275728608876323950297795259791281111330280532831883027627550465419670678731848277627369338980405432649301910188870577507877292305071584841913921149116182676413522933125591186107261344130039524171197391689948186858762592168501999714466487334130177829757922529050388548870533421830294762785833156935639453560670220061458814311022707092818085529886062114137052670665098868233450447629534772277365887216424655106376618031953497971529329056558111068062805908360049610216297904505570051551667344502722604489912187462944957092067184587845102832143263776865516215399918469022295859067919550645380522297346884365831657633804053226206748128678315029057078114655037771073351737439793845779550295469899363301695657936906791029777014788105051801024055707245350095386603910535758512250939171598591731535558563796518853559441665650762978163018135605945746556178376996929856783570982008582668558224935625594970998877374347700397801438355521923440183076169899035416857354312839154346534716724798323361494534563781925327055224231271932324875365864263625080310799257650737155628811610976771856520992490557172027592636978371265184316661710109137533992010259851884831835630728030816589105752984079450331303190158493693746522373382258629303370910954676727381356753672946697536499815312285983829429268433660616690784677918440287999972820750732506152388106183792783879089127719116999747483622269180060888771329755296541589166494624067370471214159550550214886725538486843459221575617749829348587714914760682080516564382609043219527393308739573596792777901954407657040510131705225039393352812545583466834698926611747149893526397533014619706642029554649957202294994395849692377456683774076414157079907184600002597766229855734524763946810671918571743473535425373814987361084035784472875039087240634580065579862918205718269159328808752373439996735086973589231317943550779749002579786809409443799647600929102398433107215968598870732374816122834342683468349674248941037772262970738669621057919900521190992443316083640221382786611455755112151211086576976023197422093182320448710499614284858398035690120632082573789101320085565720101929431646741204437730100282119766755117733885416055214331984388994654931525227075380207850857831322389332097653254695176556172078273760297999305878657356689881810015628030373744263324837419094067434495950428949625447910924169665171534822253930214486365185945792405699264042286948256225761709004552713708151533164402022485740630899639826269237207638700111588074086932140035625758844039516937232067402573242183611850283192737913168503154336537028902109159421329569412222629678832395950222370229514735560312281621323336207760425585982958098791857941120567578746684396017466436139144425715931827188527671405255511976288066697911024367208190902526383136622507018134737130853721580060466106769103282210065542087931981204494632218454175006141290943945146867263294829474661030896874045248104128619860767028335206028345076122282212974131163335225530022689575578498908340709853836629037823719113251105989171124163234572567325124313107327799501508128303122397773609455229641726130289449562607864836289612909935180458909649854732314918660803914838954269345725512342405813497622945711681979891296100574056924542518383963191680975280155324022627468931505886147801278709689250933704814819517506840148144537894784624800358441701372650592988217543581068546517384058116243526071641376663068021169906053659265328351845260428451235435773609401876768232230420193136151841118902208146878608292549565973520569347521060948797895216122608365885813237193768126332254080742518886051913487611817520648203008561035019326786914077372505775853077667098474492946760545471986868961844438174149062358125287258345962954987432298199747675412543016650020256181361534227351029780776322772244752100865620419749264511950848199110706746986236477271675638406030480669058953738697457033939356388300624572835249734773405309954221689167681192170978352489718027537557114925771221602291205512500822212001257173258066319711754586453268670139202495008891100202510606579574958272052085023357771687411945127606344942659584866254416951795429438050414803728086320257414837484342880425280909053112127508210893805450301408699898183209056852532256999869176028947293342232200872542955510140007586351372443665390457919369850064825265606368853394961950295765335781062586134868546907904690754871446719087358283384887760116891032892205951489857463466219127654292277638507370659660727699166725613891850709253211602240277263930972410462791736113378800542033465497406779229519161386536212706702828308884993682260958438007072350318278241113388006262978903790016695380547312254538543981673833757011825362337519711316743820383235872018033703330195786822042682047825999127695823605531479816574001978366045876397916207355942192010226553029682028077519574668820939309059956552267011706287487559236307222525789760294640267160737119465899712452271476148028533585243165474839540964993255324780908437795767691659139393209251662307480981112936377847800067274616600112089413180331938541394104920266824465022585149784854874298574733209500489774517720351594360847401730032949150835080070261346597316155323702423287544397240487971190286811327527998809733781693695763248081594812382363415335036459797520629872039135102890529763666268595880600976457276754246734689000630957481996956271728334833546566587050382585713606191220848885202292639394087121755739815857422611458044739145087402140139441651834945708289526968179486570306343600259377230768939945143653718166163958227331910491059057176145354456563168571935639139480969256275523923679432872791704133176044241145398904622188051737050206717002827353242734894562676331704007742741707492153189275178799676171933212850566402964343551413165355950724862483419750624087744510703872594199819153575009002781430336528751099175220844469965832557401797460212202989916538926391818673542195293247389120617228502291761600686064055733663419307690188267476451807836261258172649034556615142182349247714724269570883569872591688708335088475019928046405053803494924773686175710100623864935150979370717814330845349926425300046940631110914898659900106846044693634537769846067823616620799143215006619888980731883568225174487540612209163029671081248181117715189552950697468017359038032893316691588072742358035354843848960917442996042380174876833475813228721055565582251557778683065463378815717189282054230779004049753336602261981543344082310051015722081970329918020530217496787853873076484934475801323481870031852846815495389595993471192001304012236534261156064165032310122003967633860347769561630944997466039932069031378268095872680377873621166159305951331860912091702868300476674071659728385359328769559161101782607688201384019764647938868933808582184565265721162990398664347013068991456304041866181735426301668725495278586751139283497500352194731488443082730073755671255794264462115773231233849904010006130574413013686477170458684513248009115560202009721902685310408283118363031256603364692517341819042023810965902206168914909302346482397954614420741295893153824220734633500938376734253417422881682326425811883089891408510391922302327134354309647493904134115006460798692836776538777465999411148408722714164846320572284008464020257374871320880018615984995345083344758904934878139322339762162832977323779013949749667724977638951772301885429140006511645895876581346896706921175565346698597496642933298894410771816896929494302715908813909728929849523300504480545515711773746013660096673353513324329806077659027399808771820154462466693359775721569016454450138098579114800759981404214992782179630331628477554552227932372722983568714099831527037101200871639902250329059212568363030470553622071722757085047203160337263926685313154582023263416484386430023977961975056061360048707881784045551953002512905141558039699683324670410394826665091398871512067615620239734762599813983650571836941782766816864325873099222612037178992578170536517746710297316196458652986762408097775525643663331082098799739756931698823372622277300737254929704039802420162475697636397765538609732429774578302487811000265129094890294797282316599698078733962427372185641108479793344530059192511698113669242304346057530253483648268288415139101822969799090503934532231915821637583216267109374758717501271822593244172804651960997449222811801089891068050524405472915191130473676576847241332384757781788371716082868807453831636858406857497659176133606438916281070946042147778920073549305168945093061479526011695106471170653868156555415142296992705851804878210328002188652799870037909665024123767754537233109976028916276975828174886952611911375957656918503564623923337766549638352325710854539461192886311947810389259020866632283940430759298111043562958443180645799605554103046530985100273437064013390699227475576385642341325416215487536500380250978114287786423065922329415960281070357661610839653153141079317890750634568207208130160503896945028482475421450784035865157911493641681184432886336098973555186336764575634108178314786980366826327687915011300127566521811308821084979054725290163313941399730038670572770391637190108805344592622140912476496839845302742680690962731835623329319933662669937847299827141744025955957526962302479352706745303443851783002622343651965206462599488846511126727198261051085948372369373902304644258878091497951097984988660988791529406662530119951024619882453536536364397460455855840918033464407447096250988519397317364683439671241036244335037919336739349940607536175109100718142040517046152315613621363655675745373915171822176299616441946249810654562228051495706565792790815472768355913080802480033423554755211077496644581316735730663266473019318584897237373988619831668040388538572544595620341188454362548998870308348310073779445784438689445645634404789165962722304423610863607866806710579858248797015506585362049399007689668452524133470202284922619382430888861068912457899325809373691764469957697285526399435690371403722471862550634478506711350040027566087860007956500990986478550952723037387473733156326870940149567270199041121768961877397368924110221811344609608410274572941067948983195414439759062020407269210051463456746739898635365030810711329002492771279880004702905031596067955754819363840966391907493632499609386965262924968915487252112164018665795907861815966256469764120220107539787667078165936925134114959494776028212960089884097110974809129883754514069830446877689963921350590781290949113546329909617700245886945535020771182947701013695785416760764241044221347164486398991827488119635387263096938840854306500823408471267380910637035863008163190808970801356106486374112508001424890937968714557656430552964587189829849173151155632037063167523238178822967179046144923508953079553178160124526882157642719457851311613981335483186619801947612533693781701142106584478481110465196798911181668233170447129246800132042199959471573578566000359627832745217465659651514874676452707757950110269141831127662778345857076073777783781077227824267855871305896142785126480272240684014888345500330563742087680394174535635348876876938975441141561952018390824327429108711655319096742655617776962738478938499480429097572549784218006462219165607219649736918401476409616403343918339300549382912373082879234198495068393448056620546363496947302757217210722934698585168462815048806823785489668212404748381909280784219559250793644950913220957059833036679100149442482178952066979979476104064308985415292002366085506540918325218006602291820095825570666427177984560886577095228931041639177047099519838992764443527165216200477207230589149970653122677527525108938447900889657696050783931013221218737375001024697409537570591004424492453267311306671536351153915978929385330116495320061477886064940912485541444280056052661996176397530238450374285036844216955932126166594494398944805490693350284868356846777031786925074085272506953095557362184920453930517855049801822329412318820075716374358620383867426380981415375332261297336483482340537010576737879127367380986500678317631267607698342360162979865505855602329952210712762107715208864086517853621943062824650080400178102921277740167725107914696229252117958597704890640378235584388184722282441755696261969030917989686070739492926430983311961001864309847426719279652824533365559375169682048952804427149073505268309182286273302555777583468123013097913242651911638921229369881426480910426711827878988874752903675674338259377689833951964452073492184075474516128179361329441604897463360332858087134332390930842705178122682614216666002399887430304292655026435622486831203066868622328838933051150839584368499391896649864929075526464744874607323812041956114751654523297039038405896584495593532055496381913430416225553898374406127484022612037362944830915487932668587567445717218754823932421545026271459405509771412611474915125677498858434467839547060133157412639427706724390601851841538348446988559588409266653036869256917853712461874874202592893861653469105827097080628898828633097421078263677751724798553341983014620551074965622042345028564696221964614217497733180067733710160318984553431799185353921423079015447369447893334319560761672439977656696458863685669082245809014219336961748870870701793875798522534607222237074091519882219829955238277621690103734815812066321468039595529761623046605201363355291394202034631195880480442513493631144347395249190185798245461049739747423345063527418665018081250720654686508024556250730990060285453649687391972998587693795811659303356358479247290405935837892144075520143511917910510401155874964842022733786673755575105217757990366617234598208317483610649202759251848541877774036420331054451006398268824661241837887608916602814937596760444309899961470299443435653887326052320221650674860717262565178374645775915293168978200451441826281510054709801856960569548635895732574349471285769065837462567699732864715944325201233102657011503391122238889445477120339418574709757307620101953967578874702413266836834347712149001301337592393091895013447955964925976251558628762173474988525271771198444333152013461997665851174052280012799206511272233124736470528956496212086757939369545022676292291844413080000435712690336438707307179015779947228555285423020974251855580755785055489892760322600892259829054727248906744007142199804228081611202228531133502032909436707599248846698110348157153894167216567905630053239775635713089232477456708774196361386997404326863984592022564318781425958260228284306060584825242580815220396200010706786137749924029116374281053011627586127265511147635971772796260343690467864461785643758525839795275701308988601147089130272969212205226087692232166290488238446863460575684610206433981895236268500932381702603110139286188091119431436016040141444627481983960934600901492458766039703450732363519097283994025225371160013234751705789033211266894734206264904695809472143364566023159730043089536946804041183376749781693918835675857913966888610525266587822478645362069366011693272794326098944114427829339354408708639373805667702767243131960329479326855036781886336501776978890022837334199944932162222389917311074730598901899891256675796477202306118929520217749239748510336895382667300805539781779170061096473107304537795610060449705287362926188128848749463150260613863054623447012516421538355741396240026691992857226385674642914119126309777659125558715453765635377477752802974918634442446118673567230851972670736250825922218561314281298889414982141585635095800864506303086989222158137832889213065453165431258042112571630150771917002970283550567136179324702760412477073768797341762666375535846816179930689069142144137334913963286512265609172399039828510737948766755909889039805164691224869380361779060907614583450570693016542220884648496517561163225049143754397347731736554432355054982338840359423574633037094427317309227971060482687202545367574856542786273258635022983289448359473565040317469451706034316829250327207220508956737047088094235479903552884524420513620131312801519845551452593004433129159440780185109591369883587612853870684185279757730461108167157313676563480708783018003211081722393543071356067874415317479446144368038419188585138326114248885414062218840954374669371772360032633385774394692072365543351057660560080132909778997257444882113292355400221438431174350058063895998532042112571485457361914424019377437880871038077063131645579297558088089527562696232026869284459013357015846836524858145219042350793247514601537134229671539506098226723479380538715395827750963631027304206449886579005799672926785497195337105454792520779680183069559856969958458452989716487060951687584946537331776158256425618971885800773161561975745280899699682150875402195896066310462538798759874538475413899692842566343795312821165053248446038644878734872906689331876151011627973603757880084535356378003780965876097194279458198284569466086054827223530907799578505948211558522880848097967618271347209995316032967351490902302939639757952258325837726055498401325429324989519449754403817723049931149613194517548076569741149523558682492455177475360580723771065952833621709451224826433385864585544695340344518656825042016378343940117964720761264779679253502209681562138998743881372656362467589865534946200133202342989749741370433616451058716131121546277694259392334786572044481922084794860642019640892077457053293511733206958633812165492898830473749917548875962446180255433377264711566582228468032377775653740475399821237199737396275841749239403992437170056555099725717527718861075445607039700954168117586870600242557533441713311529670238624093300656259169199482428219853454966853782845490945274636112953166631328984507976956071547988399237012973078664304193618387735554665147827099484615952827725401820661548771041053113020064705606823791340143208574884719152207963702477999044949312675696543264248565092471563383491073465731019051913182839929995212748367248856248190174472550696259132392538003346408124097834075051437278450514621754463592494272703874069507057454925240445174136339370115895779878710656079639541255868711161695804335015256713109918123918900004333565044763017998754723877165475856421038022918472732752733021977966773940114997000564824667109272125195602032573336102811475366762255740631174970868009377426134287757358550814792876910777329910092885089388944167222725460905642171989321750957405361757245071521689028673392071555898986119412911383184173875555988415317098572757692958173726406257972192401440363330549282045696578311224718437799034766262445378503857189413664888955266989378713072987705082755144446221924467060711077663681054902434798592399713550930897909405725143850298280401419470416327360059200311785015214677922462039381821412562784438094461225300763408534547404650010193282327707058177727959754305634638036806637116850017780106992195440595363037566905119811578370363828519444896174296186660087953426078121094493324973963687093636663321337823463891303994702322390572654904392310618997490220730083025322109137488712416534628691360239717743772492408624029318388267946109521351269474303760701733176743520689380270020715357748254669716813181445981541479242793270952041028783798103749739777540222080361196357422128497407559229319654768789368139844603762950451278927157734380457689818628561612464958408329074773417291859601937383308406384003866125683834625087316646961752730537406395891873702480476484352359539564415937069995760601363522802218147924775765153984780683755628366737959976790105834427438837983073576093378843025257231469513321138832750890414492712268563137959019853023440738184525672399017363181422629892509196870714879659127882864252840543294753881323760221651581332419740360929727038415405082425434669588966478243355580070794101947114737531551738966989200617148891601458561792955197381655531730258409130152900591676096322790194092968528530962874715925873839634175125129501352538546745958093175623429838192610057578756966438130565752026991142690531326599260879703700409337332768544968205129116808565367629796959648094533171446117383630035166935017301561121068953214067454916336229129507891711434049088520923712603767373519895881121540086007881407403776386474864752458589463488730699303877805661760268446228028491299180281235257153309086900884588977006543859524067273610606989607951098443110242236895881355135903900906265493868073753718358223873718304397634922763013943369927862712514254573536277492562105215285473460784128370244832208904890986000461733915545249771684904504337386295077950898714173715353332860713971266605880585719978193188239786322958441717469711537077470308346417699778320984078757402419636154990232812701219988863878068157653331465819013714154010098238320625293943296253283498575765953776489880427260041245285485950001005742054495654699612325358596661257894083608456788138328116980050781843091310410136318814001707147304317529628724797262038004949525097802108065170775126190174742220681160017224226526107787076739307905576906656766725725388222811722776662204924039106671446288631953714975461471054451008801211633803772816319901993782684771011885603551143892301980621644077805189550570766518677626872813252487431736285652925122864786347837164116093185806433120639183526044223187883206334277631884772158275382444583684413963627191416077162177120516495108479421040249358317879040471112771150385081804093394669745351793238992362003106910187691848658326659519574142423925166094702334279709884052039010458396498964009065805122209536972243652886101275018800297757270791108739787028030242251004203493276801360621478333782095685370158569251679674919559075947176176578930744588769655743075326599327907943466579879247600284429079415548995847776997216979137861857783940733590348439659434391671765276293313169256201442175404112588961872638677714288918081232788045291531116217611590450819146138230754933316400326565000104722542759913001473752385819104379545404696931079677321898855287506172874332076579349172413393878677232235076929435014015988605604872007141878052367092775632482901328208615782593120652339291367985027825224649945747091716599327188460369810496487766383395852254871421710623544921257990964359079630852495729697126161346459042557877174373993697573728879856553219055691395214275370878351892983413522273402468327378405730638191629499192121567266939825273719762041018658621145335767421235724579417911486546806498312609452217005033785738849495255836768550425271041616852367782788902493206073873462575865550883888844597325412132023730881857964508557611874540015921291677542617255967798795113244760442303056454777017001454697058653084940465794193155646860752996023001651788510554177233167455884264089512315786253085834457953303374178622273642191731990635808827268801212868812264465435248049914489928424642367305336542194882296452626994366754371907224477297370628112296139705088015898868575922413694903411273613461333132407481359582047715852726575506064975687609993958417476979903877684814234284958768941076911294223799842484465669965498952548700070292348624254063721894265627272451301499652767030209509846257556715379508613601987017244387222541715334735279283497448289942524640913105222050295736222235259702373303242488498357217828617079812837506467493725870339159940422215872332983144714314419501230162038885954997250699239948968743718485624248786768427925431245603523251523922136723322485161331042398498045385690491331514986120109486431200802014149353991856510575734949601833750385660700790973140686406206234623881072739423408536739954215173202548405520240216082462048256572155784890836587897352626574330667750734695966850904324817637182786085425082351932086041603712210198633164286818663960631177436701623332018956115145344404093877314540590704996563605176434379012921736830446960715290768135863939977895027117862237931885391372333156256594436887983816069917785876942163007074292114652801757396691626698962258856419592993891374371063261565398235067327010814945400816144729482830518166348006091000949058466652694860169678854975682012698863205083889144211711730665613507454572946406226022268143407386006709435654570040062583717904933353324271006664327497309727385288666625048942003410818424587496850998674460714554796988218379017027397719650105624993603337024429423337338307825998475380001107871227623206846697895002267507957126943003708239340056257446253037728426159396661333407383768476617325581742804899752430875849061179564154269263516306782695124384240243076456872121442885357565996591667456174659471404883080798463261978113263059933288585899914142742223200713500457115504799456661377768073762880184472828001203026855314387268543611814078622539489375809950006825715874178116890890625249577032039245005804506529457573203184897618237819156448545214730717413272846324334503415386195148016796272550505117094481490404099126658954152783176246425824675599518835474150481774952860641375210720345724463431663659434716164698004283006215627613675636771830386957816583539498147006966327459465847096526696070411175484120290886689974520145444957375910338471787960534127457244299015751900282844832098696143481642510893327480802769437562344532510693036317773252531509850810187002532989247872624103667547287265675904337639365995759458952503305525496613223507260686195426466324688070435533281824468148017441679649662842561172975510030535723287190452571780605802132808712982192391479410252820164800497124572895256774949534034102445850102355096465339373914923829339746135104136946767504438781060116871720170845778731038947049225861867128879863797004239344702528356357980298284133374867343970898591002850318746377336118951724559342870989912014787209518694418743066591570972728665732060377385558185382295809395245830042150429772983359795488042119776898689349343115717956089448547194044482981367300297675158519013136198117616044103046366872736549478144095246789968820656901874002007592418071216878194063283076492984241418426569997792186671386349002679642923514571061037938643115777506479219670303458767535456664698406188862445456091747529845333487930652500074716700557441147239021530746313553820223659184314548849669071300865693655333910512212513927710170436581897715134111012998132469855961429520634891115991446547417731175658021797304848915964228797232581202086160018318294420595645905293513435430064249331158511996795651757151946971269655416520487467017056369115392264247476287653058123412320596004985883597608946158236046053486210707473591440049385856132743275203603084524246477133715398308278987795968327597331017709189052263680831176025359903918392731749942218218122887629074460096922690482882297649864565066104306900542685264948019254023920771299927386398755332098563090952928037637372447676531251187261206401035744414501879552794902228587203927601742386960008105247636090160833384174359770384914072992296515014293914363160412038893017835881993864035116975112124818017388138795473870695728589092130437032610126133842028844131314812032039342693375703328951244813205533057220055164348401037049290043595127006644418117626358898320686861230491735676901593860137607583720360102358480437291267744370466983150332812350826554781596852364162652922024120413106717545115148977666343318798265314268947595743068122485340454993043882948750321130690018030884562668527960638109849519900535857408354660480965542023507628877049560401475375030305820077379648598067532664480353137118071916862795300687236791506943279781205861042212364919770880378178147716198950412067315321842444127587076026629122671644037585545716448231407739825394789791438372079396515068000683954667326538427674791345110521965547027072279426336748128451814580250270759544625946546123446485921399059232582776294971994548848752653754810160202187881046585396535019650405065667283116570181002677697471735348828695527958379320522254620722025843216487793263274637420779712058724151391590957029655464486774520178305218908539435194454094601030275332895100253140286503871997825745981675213190037317250617054591442883768697633364434522307300124625730578257112608595465640576852552423143728988113005076266678453679620284979182151618247737772825538793522583881063005147727918005023949155222513257422915247835476928467177959162735648961801289479069173143592624505469849141510671177986409783658137096642658870479071060046954062810270377030991543330355643469466364192161771307503446257485138395697929027527740262728474665496778731421102685381915608584485562539803341111554251857381496381504399152079242705047730142089227200902220230885881816864043879543136184721525791073130114616162153279121088523854149925064913823787494086810277291831191751025765837139369770491279850796095618814158710199688724271050481275939170452075796372514180662091371012224820844826331555708589069706700029562711229449565576465243534123917354591603521055971312669399535460125390078617562058101973525754079936306744282239988354882684329744529205715301145531368039271766731504168666761337854417996717348385897600832102274118543738323244190846788798248556620845089435278428869406552534658287059721624508685741174065621610623573930396586127629607630314817541966559771451179492564710287249234455899711085708791562448980815907624142372908207361116220515376048842368408248142040175111058653917628486977402147287381587306592513293766215930157640023854615952971097413601786948628220263911477952547232601954403427696778346641324583939053574940128899503526686080248776641088894985718378301047136809039501418596741667063354771944373428322962545568093886389751552443804006791154090260010183147728210071222244746602731240328775840217593787024761730601669233333706488862476576704735913706961154475553910005607091940177364761155367336346238925762625881644150563127563778224537258499274320690092424718723824537160137340797121888692617929128370319212001536067844123970939958745622685075787346480890755743164506786250534086784859503797292548428652735395201362650844975811789120969954060103169743908365725607874135026221276527850407196527485544173201249210004454559616374287569633378975080876968611682046598963621226220372306038661271618783749785959056345683938074065850463826290016218219102349603832835467284960931731852519572201020283225171441906189806788883092721078288504949190839774757072296903281287954315252708634155590004388050151196314453956021941739591395248174765175037226912985347787635741092721109932644390990519373873434352764590647702457620018642735791173825865279163692988211725582386169919225999061680165520046655532181256037940246090356353436300382928186943978694383725845453468777891011178364225515103851540810994885388767071220944351128508163944625830276145685402102086956622870648688188867508943265092313102949980826932703761140875519168191189436409358780054081574236678019403014011125584379869905423384879336607962373572720506577801973495736791716444072885416872687384352729744546511703829144133249924143689127471641368679138302429643496565352554260976046558001446013352383973053230951656298852306023831698559456942223070718783544864202827821016363733062955830317724831910840633346081197001085655913327024584549839643603009121819812278006776292583830738654828849772434784276673512353792350386796062002758395127680891578310558300956761752252875193362013360740006021150344269688104858483037260813165351230589881023594575749084748505286982811929411712751067558338054566645472466234171108957051401923536189763030207178088599882137593084893060864405371772250607330565082089218409134470792712613046795871503004525501995624379429929105657786294265918446690389835530621100656194052117896951382016101948947084456834875155860767918535872316455351303461678044448193973572362653829256107958670328427017253873440257153947629033374786316743197428086999220155231442021622736781926894461385080574286774070143372584629332552560403607814450197047918655650014864673459973311342061452359898450787381803036217715814600872004349049691491795839698296905740567453827220328190358514050324333375249805084364902754089124442471339873182616606581326263975694188176225993816686010416386191159735527769709458021126445423041136934557413607375593378404531264012154544866232008287956168193340919839667299944519041834646673696719128042896871661785693797019626807160911130009047552075123471596633586479513164187760036802751196272345286007870411031365188438387848925800115704136537316914752163680482432298714716244688233382808684160710387835077311670457139938197235901217448618374509410980169981863192732855547765613980624455837037722556000740561785401657760374504565409600939571323815692007920173111413059669889629063410903853585192486408758939941454300937751198980971355475755480895646704841025453130547891194468757691719905885658619198878437602900022796019462486294471006705594770543175107855737624317602930590319403272264719504401229663133288986801943757284316015765983122157879353889117033857571567427779468716691165657934697661691254570083383524880925232914082370441294943719795326905271425473610034081897659809642770649606987544722787891665418525769575449848508594607680727246623125504152510713013945609310877885099778849930770268418959458967046553903086072041474654134119606960960140244352968167047076487570378513675201923730690784197414055239271467607550392428512128427195099249890047985231757214711444886444579968341532578363192870522289537504092741691188334312630329020412696360890078628162187363982643850466105109798762218099879040749650471570925182479974176935643509998065909723631798423482769096773925815612662920045753323474049400580828662216427164813779587409491972873326965944465955845133168680744575217580991751459514903700578352336576628712255072200868949745527041524344904898272174532131273899320734814775709965801375673922367614103687985372850929806144224310604024853320826520345257233878122585085040268132731563913200658535145791169597934258448860824291467164685033548933463816747974342612274846775259009938984638506670483594354761587576891074958627585415153965363882090445198028151371726881654080991123839340573681543580055780633934311967474809504789480461022907854548760975389890827647298470811536724473302681331692138353838977990815465489443973289412224826630549347205153591987307774331420557372394932338337691732212141649565990823135165458682124124471836708619193222725815812434240224989319738898391335278489844050784805616618832988297495634393141444189480884865341699716783155688130561435306141816215710855225833657265011745479138929818265231991871964781297768773882652362208218235529038400125048166828844959188510209190624044587167683528551481468514560795080026749264516515569552383880079080694377006790034324599247906197387164194180686695257502523028666048724606926014020789519617211717386915495859527140896206127431492772172697297077677797535203307062140344715795412754213188782682335126855423381243563513320126232645870832707628464416176989159886762155447607890186293089258283485657661102977259648600126992146725939397711816712662682468023783560502292077426151344357505526725651042397786996057346992692583420918938573149545259583971060836938840015750833508844926909357759128310191807468353671202324082499591150461271160706563246762468594893724047976021398554342123124899504565254725997463765418000332960210600850059279838525280022418137068645230285302032707552852688531648719040314141308046917582344880944681917032490666880120543578586378317192257929447703459309911526568154045639317528738528128134354359520259847921032255356976653977378145715494039169668178978231736220236889745905708796555602959240244384373561312120588109249911630170406365270289195158779098409744369462826077572094808681571136866157727355505508694278903011973580919335900916736274522914135406530944073832763973301630349676373533902285832865359119567208033927733846489138813248370765706547397876607396986701127279343353487861602277118299129287594806440976143252148709633034120234941375295266171850625214481757681816038497226739101925115286260746322921750354466476037524137632409305882834324370670025787502843486281512248329614431118894731751855232743310107830539117534340424451998547503073811591097093299063225570495845188010983610469624772911987375656861322808571233675327333460427786919322424403210067941897076151512461482807606778534500411590345002300570515644168990092284642730370276013378873791217945657201688134968310461059361483869542751071116356964685783867039269363254926111578867354051627506682249981175754660694690536945463318501651510345118542586748055804298003368777021192362082495096313370559344369599014925573924351600064870816684125034861358979019121528250933437090976304449771565727114102167982231458329705144064823751618345404602095926589554172632589359515958000216330188731060198260081972992482629462892990797415077169981628964614026103953616226956510546798756385380584716657286370919698676750572470188429269287240053945845190715955566239683859236188938291931948522622617485249596011331674799678831446024356410690014602551496281930918589670654796125583614468163791465270611323873904678551508737639721651557346165254577787101236009794748671456553170048808468282805472304461255437232180474417533974044381618238924234950565908442317296523531214443696175241084979482929041827122699602442834190514831769570313762945081324173735219054081932011533918978289532675300219232721669589350196114348445302688408505622727298783262592564643502840540964228630048618209900682700544115438817332397529546348558376220505360126900728696125510126617256769453505503524545181785819704784827024813200097698567648521075115974478657229124431244367956033889967364469356584672965121736540313926232506455554686261763700544758637251883224125962991473132638570706677043585340690260120774419345125530342609445814103152267008696058061550200529088594023287425604074683857254049552068741440314547312375849967224430490593874710235096930252013640187930871591621270722306327570109712591254072640313299981314705305605528005373175182538025118628733080294022093440073434108435195791416417212844158617308535591954452681753917657296676472866537232198993030979880627143033657857772740806085983967231654325051650397014342472787088844388172175520310442896821038419729326754519828299286250610840491592444729764859520531833844876034173112993882303481121019631194991719395412946688471749588881092277337646251833964296024555108148911009869181105004446977679867386510431477605303200357955496870047071115928911287161445822779313050911465202121752083273817053908460135505694647536466469089229823558125452100858831878473200460510749486926551227993284388856413299464233066978146612113365436295061326374568711937373680427506612119007973126430724356764845881636337473074562125313826891572326834173127045875801092104510795476155662531101630598550977412769713299080938587178660129848958532807472757287326013682759348510097022689926088840094446298743896383414964695706254072923755442492775496072661110529178838424953000312575736873774329272038946841012992726208012196774795489405344720269320249594460875744792634721512449854606675980871028708775239229010701855421920669456769643983960717401969609388395273229744976536761177503265500005344733297319078777002617545811981994513875802894204437950317361411631827095479198252911593617262818365210510823903599137008908754005750459004665462511494479205100697366042201339606220356706011904335846432311194107556311140312846659265258306067244947420370056979479270866026580193498623905658612115629289127926818444007853838057541701041540729924160387559570705078225049176280839425062753407115236020426236594745848221570403575897474119905970311023300942777132512941858028056918430828719877726355912293692774269419159294411523727533699599761797233936538077875380678838286429681431357195702123097972514700999641548464544600902271602927541121984862660083673697171603225450834556479446725783029821878095052984680193308408875285841600036782820968814528089868643059496608710998580324531802741307265317010309013644587064903103437955055129333014265257605856803650413420096356039314378015032635647848615830735010683941117127334059495453929971492531618354126642881675620360840103885141720116303307589779079313450717877377076651832550536056987666981765327490696745762632994157195661768289219700244639851499948965271780300136192518486580080871698731881783739155251379323843957688231583811801279725205045042205520716065287971198903717463775147305128834011653309981279944929796513314284005514560166315386495333271233211523764590546926065447975663585453590646242350773915381019349423650622860757576512343566833786813207333625134320955155298328838414206664105518958619815234188050946830046905056207974362070038271100121829473208522811566689222873414962876967173835270555900967415825667599503138703150138092831602155802428766618379778577411284510882284718990823655389461254801647456184517993531256925895052363129977493860593770485143987482768262568746451298823712752497430367754326339560697577404063148965087008462067015560732469802483330217527310061405498721947750393226410471029411605777572451653526874271543462767515802564576015525566238776062527284239030793579020601802482278459038537361871271327897845634156073558028912452108030813035035744698239031648804539625305274220517992610439345067655314088205349406128159849490360775256987860036830480359504001230348807302453261714657365952104556058680869073492724060423675448840487634425340779598888249964926491641559888938951958433067611720897929109905203647182515699726249570774299377604842264989747974081870573299477633869466671329265824103460279867206598538502170465833960618075340618214862736599693684492777444446875729371814809008210441170539096824836614304707771237745835805920936478983343953253768603475730521561720380034283166350578492615167537690951002102311135497940081702439083222598996285889617680758120029495975118558521382539053207244825094130306379481094677641831982892323034518429902496032912688747107601835535203135198021595278247061877929888528369496896407186347745528424840006618914529092445723254607707097256432594068254140762242516384978125007079802219776017587105251326473280115861037208041206109061011056286521692387909698558277610688068583657231533529736880436089520708132093898182782532257203996685864776042194775761661453170071341943764111510398991167553540429446179658041087431065818011258849648533968246411095890170159655065878387716648379891504605481611420430113397173894966746143114034718498761829532686602505987088641990267537528283271885093000296386346803114907759337394416702052920914072128864737064982481550259904546659280838311350670184923787727074782623498904382419609950444884564657242337906014895446452662132519529307237968909495206948827955809190225727425551176410217603798228403469632642213559872655721390154446026011953929096799517604243055826491205415327996230532432122884651424093124397100993216692945256561982437547814822494165467013065812461889047612505788589582625558149356271143230026119837160633659426115424019203974897104569068057662349896087188202967543309790486410378023544320057887847872580434876015732792259464393930223261282805390822094934406405324661060754328432091325160394982092958605028283607197946547484092385078784912913798525906892672997106442048284782330718400408841737788101365598518373100519364069373542631420012824007550376286810103677824198335451475965619993278087441205718605765311510459468364048432584552753246456009009741937624903438566740370345554901828178054701736252587080197525020865582350930605698593506470768247000345661225062780398437265000248765847436041719269666352244232824001462081995116862271297589198663406663414610499271336195033391739428280794442708385154674318280319948709997621626288164153003298217706059257042083001271923161439299607711529824812672203327576859055763812031769249714252976919052516404905789415926696337861850152606680537865363631117195253221187781864980191683065694349020902433245782966688104038524808912736734794215601647658153255659893419334565502115421114170898473892642017000915094897473795439120287986605618630887563131844994982763164051018613112116643496468903245212070874238941148407453510942774735014156026718393127186228302236399382082118215027868751244090208411041179234886124773604968515039476587492850253932122802492423770389351302485887286535017175384137398020153040547639416918755969846701573378971168192613352900333228144483123484922002645012419650187114568410398753858144900314884630639809236773144600045993178346252494682695086114336650326744466087082941167498639621032130403376490364675503255011253564607566856662949353770485207729221242100183030198833597417522979899755922175235368815377058313370645989758834941489160817582137996755380653768756037979770061099234171575900157697999253584478797774076612357640439566529428219696667570334186443472565923916800105333994936237506492060785631973674092587725676318442371621727976365568645454242543764691877088714573677961930179071239444265660859780158746535383711530615384050242751213830393625296583890777474730482278844227346336067277909588475391778783125724781920414804119895886215758511083510877379129448882386869148377190245965842181242772515882158166448909741872810413481239333825074705997180512493096542962673360119175896763233895168042510464709177775168235263162092831030333074210194044341025969871835682903068380112973514013489171460378007963239686830824235726827637607302149972008768932427627889325489755492647420479004814198368119777497091131589064809073714461209642646877623191841356292867050758883455156959174171579903121494439514189037147977367870514332414901117294745493264709488178995181986871601104943153715624502034695802945852998474340313833060130480461213738462238556842396795312779543484696961977399583431733145893464458948366570398998956918876158296355747649367526060300633113681373563396057963657839423166613394025577303147343664192582013070563993066648909568361197760214903904904522650164420031800925913303008188867629516004441532600489178080414561954294213410870409120556202473981930186422392352140775700632451508522039436811133021069019053150918514957258653333718060198606668511481102170037902938476344460651279523087070950104886326428326995347486541777500884138699439215367951348930605379880232354345638740096641861358514076920291995307331378901412402589616402697403590625057894465455160926364402759813778119319924588290845438906885512013253523405505234911945840888121622269817622500751293897106174770440083327684997753228245234585090473128770085567596381174440136763936326726350885327492202595265920622391117002757330384468535509608595719758749722514443059020787806801427435302890832576578122497592550103734181712535647775729931263456423135443015249317450677528449835733058099922756494252211668316724098235793775203331338397952767113093099587143858603015005268834245997112933861866010185518198392332541982208847875083925997465664379795657312628860296710628673716948252782843890072297301454286441400393445808777438342715661748770655693442650826801559723840906201333715544305492621893278960178518846496312390093979007720645690658340984862018161483173335140996200500738262337128629137115102985748638538207958714658689525132328768399252070811702743931007542587795147880586684175526817942682190763194486632708694564366368288938990441696205381608309291385044150886595759363415770103923687293398007875903878062997371512409148601722372182246138404643460948843826783171377915903616328899279692958910166786704368841426839498185306133521399649156705590666634314173607802194078038699822174682701751287497341709125598855558721651010682807295974614842607222420248973470713947838179837523256910041834023979289005761610154101305079361420057142551069165479993788680913170794724472775416676353114550372652179520892082674746059164621096559203991093764618511508819235964269432495579882356783191580316955466071167283458022878121202885374922404438654782217680384009193557539647039580296965185009747899932308347530068059989617322318125024719621601085027299938455031750723351293436300947133152085637796026916558553681220395558635935234650481584272276505316678884467532960063438441356591219223102524487857689832581513302981119204779328468255382269106777316147975498963726248313871905173889627738908536607521420351236055791347979558226705733715599986062708460479745347016863034551486123456107182771082869408338108414431794194005175352424632095846522679606443230902062889613194195283315939429133380176999484755943935473343012327224813567097143871428207761693052217760680542705782406637868396100084583243222427696771133311181254879977392311965556049823275018925832448983440360496803114842518799930506986410403703169881812713958561543248478053476551876296383949321702994392545788544029672302704097288259822161905348670292807026562545094456188528450500437963651421940828013286828580201002530921996707792977978471251956025327295140733469730272653239926496593571469375825535833287796955510850654985273970099606619297506171752567925498285618003185296332003176321061279948940999722619982381115457323633590218573262898719990426339686461721798430507045561388903935070719983448289139956775749887390098738024473565545098057544633157618657608650117952044440311323431738481172978849000709020027526191924643476111038997587430947440990585944965856798106845774800400707361978848214049382119140786976550863761140271012054446507631387783096888028687908078815965999761341201283497802490825936546454273722512995220478293770614529113122858450712216111638798650968097177617687165004864030309276021104990446837188887584124504342647187847570600394354033834963227803184929543399639142520063337677801038646129577691771121303188103910264515827431499674181524315608565251252317845404521464676674067613256189554422675902421843588698920008883809862591236058208879184575115566937684359432726352186322343828148282714637555775269071412887839714253143035128727749933688432491686000903907037073892043010198802589189237784254323041943172872052035199357660450875506208877950567328304190360754929410915447335673617484894221917577221727619770264793059276793675313086868930592791103382486230618816666731404530227933573741895900441284187204490044709794119462782750736424762303072459853038147683497371145176883947558362976585710676704351601587680727472587016144121105240413993388119556257814340620625179389722076190925180990695224702532721938776163738317816482236127127938388260095206775257436534313231242613763589775063927741435177803699682732097894737170068553513197833301005139725944282706013297401994668893190100551507538076448651014465476692965691665483720632287419458984937282717443781726606561609439265208796705272505122342039200679283827150079936874182875893844511141284592046731931032794911984611215003452682032565167703518579804510274451246896978959363107022012655610720521352156118482253449502574267871710487098937369446842488815556789622456235713001229784348799496823023997125514633111106069914880025065726835623454270930211769041805922357948502321796044889081045324658620911736117417568853820597068140884249264742324458868736102481023733435311590573152425195125622135492314300040038260964661126219555621981121771716096255658185463042745248072549936766548214792951449692532888133847492947387698806012747280992358897637580050273537730811519879480636696462572624230979811935849589144831453575235134524852851630148913200487970543681002573816329038230070069716656657305063651844011156800691413955446335920320190127415629402777094731087176888632927006332318761737879171621761004872644038123899219293751740006550361910314415354513209884509922631545924826417538958765342354164492431949658823264767098411502131506676170590702621955224213004322035863944756991374160100086782280936280558645506133343968712639836212419978992910453582281986559990688085633611265161236418099911097008284738440787178392887787590763638143501457325069521341374254512426934830450648717938947590490526523312258192876150183220939338714308622767991371998553773383871015843311563900806950977387170465373886659020415866259087587848074367077422845730340152581238638154523333969457666163335528008101440196562422551389179426198332582527342284400688314638934068125439745167609229168091998788150938428904995191246271312235013832966973658663938183225274503953908772825238498931024814164837776944209669634354157394187405405114968561356651851309891200957616475760693498492926721177656435485824800355568816609498118766161722960469157330888706517758405043014173652365307592133780126410588070975556914224394394331109667003495828301945018996580710996557779792113262663339842698266871556307944741414328042629270001725928245826119126233607610130501551144223985231617103711786682531595761003423196953198964860723343792786314838501885921313006028036572577737734471961731702754885634458088759810890224864792837279468982000016503970109475371039217723514952145476918605619373905477030818432911327669941303774412227571626007186701556279876567824973699839261807657970943820926664404681888157116393343312718820839742763084320466443823523649161666625031524105080921121776560920581880807734886692673644796548610563812734045614963691316629879150468720026305725127921645895423589649704209636203773364141875366354216237374319058469373046327586156461180103230395932775005555875448199690594888172537240401886577666273537510615778595685389377039634169756701617858259545456880392809775922175578939193233206724561539872236497972157174278506357100183937340926482406337114645516242076475069750367252015246160183152068918002730204369991222438845208121025291520766036787518553880133327471557100224388886588975621398479172660550007704446982701206045566547360900066766664861452768973127813767957736945252076000143550813554550805489176721080163542824312021082266468894737042923956177819340136254496093930734590822575933203537835134122912380075817639959218256657539622954098523181668024695072845652575009465858225378273591353524520853324380245773931141631124648959635248395509965121393467491213739742483263869626179711472422847336110247887572666038181210816516539968770411079398242015279463385488326396482892318108386895226759558592650025665669203958271609891856144043889897409346149793728845383427907308496336904337147674293677741927294928042160420122430626545089718893111579843133771685016407834563230287547907957522138285161142057695625478751752609363946451295339854805782404577467916824835617053117389920318567215027158130177399944164511039803557428737786474200235231557066369463702860037824532815360602309117895325273458274751353972771813900224522644969590895446771622914761496452543265058762709507396551524188189831944628644150814649722696791365008306729454569374659028665730906712210426859673607415174025854173573099506675196883450891338712841798329661696281632502170859428383064874282889810374436632226692463930240035441257431510646836910629197870980420079777923856804817830903786195504263316004194086478204998682905060329477996167297063963138999647717638505798873909868271642615041830704242893316293614342346576475613835104078043690318936248682197322747302612571476951473772261375669189401876808474470120141711632507515446726337037630702278163186386585971990178560299767463944172798396773914353196837527503377585029009802521276680862690412882352936630467847845236048685616442052759332330475993124215088090659584125178115599252435167769386918745837883953245170552379005627561981566682950060512092935428870600669641281544211245255051907463748749530321498298059422437986789564051675004153507868986441133658648109962766565833146274177713213600003643338887560767272418513069660256806472169470546013637563625009047923369662462378358670864084987787654841767934004141057175305690548333550159476042769263689316299453251943571638283335357951085861286683373421957089368133202525865320071004404877949935575714620798662246756887241299261547383037538228388720332993347783369107827611158105002596063327506663536574547220032380199509690381313751640573363303172895113405559399087711219110435704366772327301344193927217523491416997856503592947091808485121484018742526730572482156845592504268488515500028286295320446058933339272446646870450895937819100611252887213427941487964510248177051982604207324939153888810495941991363519685122686387957331879669003845020089905553715552623258422519102795304223221042765931954676121123257850714886732616414554270870393633248181904109258754484582769471189742247390148511544794909125872872767895073427425791897701110449709371311107231300723397280921882521275960590833917411248825389712870454738781330974061620925423258535854229783913751675201214531802588676512704693040508009736016012470444710571971559863422473717432405593813212197307013083021061091758516106438191620268585800111930857640691174085789099753032595328158758559519840868245644789614191396412412635599836730628285491234339301550963063892736799075500461870314720398848277150981664916470968093816430792926403998147129013793519590507973084931402350591691662247148728531235875149627259531009300471470635588574591667026013410604997846138863488201610498382100369879950372220567883718781933922549634017445422416207255138041948761407356359484774973439656903920459098784296267065807889100423016417376075449380594859103734023592446071284865784009805538954944929911973334732035005590826382858871908014585614326884446331239107349971825465583803659029149115740789875701579989958619048842561742210787101929246890595858686696092454346539312838613872431092622797896159112229671517800581202301281271436629757008114140072731976646820720708891660929604459249487597593791750323401851220122788577048943607533053685123583715504060764088850034163189098851158146137019626525657030490219416550093248025265445212816404866873418074315666691394388307473105596936974949875178020943236832552786525329687530481568219343346975752540729213638576113725689751743673941082970620254742816359644880776197842678260085223832492594263870452317873622202508102747988062175596748626006651335148158683078083229492920570010689287260468252287908768491602917526008062312692341728851768506663789811534347461921479820141864244999365996048759537798143889481994797021388044341850220390914175459572836926520676373778561972601130361263936903619937513085382931342935295598335370861758610181978753018580644650713777488268209961092069094608206175836359040750789066600637344583981728900365819934425227246117993577860371667974286213607938704567569460737207171247692155313000528695943269463355522987409626856967153378056631852478077166687458595461634582976181412752790500132174170172918480600217931940053892868524605843893895878760812520927428653945397514116416566594991136917494031389783653634901947370613263204064926020497031372147714074924619028037817289833032895682489629852258795022659902846278753124343649260933024684492621216837453851379384564399509325810552458920977995909500226954420396730360077596965402173242491477475115162555610968841755994986082018172718809249046386165299166693533863524349631886339088752217451672369990684631861757362577334532219830115077380716501924787796644571680351523813489089154781995737111950385209466935915385383595977391369519933124235124911991420165633965707683359197321707919827071008934039237716889978433634079985290656090515119879661909520770974054943069091721221734712603950172257308416904255928693701357023292186911949949762527071564090626830499741079241009706155816586594397995245868528553312309677467925186959847647768849406263757395452739649647782853114470316914729530869983521341320008370722469241819957469840409592615229410750592211973887449974232534058410043542514410365912181638878970149895886234269923662458830054397286809555595069095883869993584088175930179842557658462778600857945801710263482868173928959194676537517862413817094540232517321130033535712246671306630976183149314797488983705295324687115435333087894937551295885613181074010440389359156508842107664018652373210940405070014048711917451059403148881950898846479302513673802604598193389670373602556521351901679997106613595779907710144217880824259986783891215477133407126788840858243916363839783212794081390202325352710000226529595808547523739939455861983798810158140629684042876909437062559217056823170336808712298487932426628323350643496975221612037523404523963554878563466871310512608543909201984382022938389836661068617587354237091367562655867141431812969694344328336441180616135055369197500984792574318659427823050070778222662147062545882249815402907378149569712524203794351502878576222002323925006225948831683882860934404429838108675703318709067677945404599068281566799104725593798724512779515369937718671878318419883952641523625284607216890033193661448169014540914797508696742059109249906809824668804287238344303552903455206211375166986115274992423532420463529252642026134861518048610857412557875743332559393022692852301364115304710166262020189665338837512607138393695911367266473975828751506620318766241173769125640504101735834130564568048463306634263767192644410059519831582261584846203976409233640356723029368894871757350888189006525354073338634597386088194876678724681968974318996421963001544238747049529598475337871161876248770492560873274175486844722959125694408119006539730990403809701750337598541172155394497287524200751321315684352704950882042912576258799374115160392771578874253435687798942572010451132957704487281610019564227492259056081226027729681458766350222262077363145172021511401047405986274614327607629280759513215491815534345856202976114566141422805399317305569215095744687468889658273983127641211986646229724032128878251853901187965904708141628360424435366974064991436558192025916763952818578756854327595501392823369126107292890119661077875973341693137320764331623477848614811150018167010622113269299518937606902188712522671997445207636926981050862684249506853761915332821130163491597211967189653149509882535565112235077685536584230401946592539484195359902056160411700115855706907970629638776713793597664015740430181429858930102475683623388553555436480601996734674437331161262871306793628493591830781254695917151698634321462340422657444412309610285101874317582908776399180418041474172127387475581343677218976490449891537843907894776445456890833792894589763191571979524610138706711881021140066766047188649379096599153077647674412177811063922796332431992772382592497652341802443089020281064445144966498960202950725810147631512322413267273318906846311418353914071866150267877656675537951022060345272793796068923051120947717511643390708138397484897947924930512112005042818406378089683331881154527260392010347785474638062732855094506771775635791378364277114317212059629003096364034863546056570149897892402276698637609099209466842405452460874556948176422616398277021942156243782084484426242787427695349463122746861943815053577432261655813596648757165926322415063019850485365527301586680153754173693328226348343555102902013718757594176426980832557470246238320076951502484317386510580275463864670783976364344775565330397435560102023676257737304173212522256486673207361607051871058990344562579278380576842383015387001352886390256013367560339956789430796608939217491828237457777091539790077161762448463336500859158035594511234582866663254026051116222586370360363846914736752136131703633887652791663129365104465373566713948755340226283948618049713120731451004352264616352318075831931864694079368600898289904150636704802229853675034057191374246292381252810000031268106467929946985682829249218728365024064125537317399051152000152727670495905051726631962783850525026745049372839011857752706261782158468179909328073591615746175648474011773444825764783491770137704987046322335463268823291598659278732004993417161785907415816883762565466272844193221989486083757296736146940935531445615733021926866516619215061297728835374964389663282812800233821262040611196856827808644343437517680487362591531589512160802591891116602864086009945319597900690112198538599070579906944688684967900254083304767609061410765328591381551479060674995305182829136441879856399756754796738354524730509821951058746859158539558639718030278123196160152390948008441770285991503906978222106893686395224070335734404883075317784511543280420854934365803346701718268729555768765444870214632657501477389095146259519943390508917422587099246463387838037556968422392731240029385396583251663191163793299500957044945610008601523978782307952133774139051943168123746941183797732451480492704439468836732972292092637403133419260531639560072508873327447511529628355233328047287828317377459799495961219211789378776716182305859470053756370187751945134892752258746925594650068029586882767700981584722819890344764791580535723049778848944670153074514578523864658246014531557752712422089518242747105126212847289681148961722430161716441907388514603152765068601839613137603608397068493749066565602436592164409832489725951529653283469536543705596111419151555314192111303792085839526894476475771729830986001021413489598835341894255600168962222277568153802211988819363259253185273690341196239231805015616785851995245231418255574315675437619001968826496720491792420936757004835448642071919076068227024438684619431691245105216858971456972577033281830175266966293114829129370231804837717884938010523540561501107654326358449091361254467133729527682971364517936225793877790761153751785204176436416082949310827947206666189569658921406399522624408113604331315446315509661284033073164318030016834058125748029681049214073206452990428170751118224978195108282765961115979741292532859450029653684370931283124620845712605743808739286627956976575733314735912186597611642561129988493259243239177957860481016502962432717656483431521146883949453433179012477975663195323854629321929606207732326289946663384956954013091559993418200360446607408662868362844994802040305252427786172535249112242329320702465835016780846455527007789079108356603312855787907744046824538025190669652604234355672019399591623802629761315502835143270711765416489072389188416093983180866942631754046333853850308195472101999765639154787426836455305466077142122784561206373900981077463598449882739681182803597233259011290006308218006110281267886042065079128711837889980465255344872458620941499184913589653434223362233095861408132659820554648499267294829419989780851712840241940629006345262127675526267032092466772942031483996504416668209951472306856215064452891748448281133800415723435862950046447757901209375132458891050049981450321049201280015638598472308402905693649990243604517270638107245494188038735494922995489306859467676308278168637603190060804677404034152780136371283115025712305120507626323428750003126090633968065788396443941403554276455151704080236240822122390272961940851208579600869863047990926501694696076531516048788500691627410215075497632246847555158306018897110423342602233747353637619019812744548817849485352056897647803055637604306160943902453610688763465969629820052602676744949546353303424537685880183964663884992575143867830290456527916856008945201526126135822961781551338989697513903473349870169946346299951838096076187920249091861453540752013385201121415608353122511891643468667547749240925234295042189027534334641889319187095513202753059916015267689790887623876601995942517140922418747601725004885118096667665330929722102742099207458066921414322794795883195784317232387561599261726767625056918714945360480242919688943109402474606538010162503892948866336867329823718461037808981009968096552461754065691578910241942674461051104404422755844888665832583486655138059074829021208845541172511522440714212662108749334510462350467692507929795889578282106887979143364063385375433786114260457294952771939498757416234644019545167306223657269117640292141146584428573728730198878150326428658833010442087078390975002554869734216960614793772995656128761072030740268999037286332304876844675760072671991996788522021518398980933604551434991478060627740410185492134019068025094335092695142197692590914029966522928145461142470736747805448716695916785070412927720566447547606721572336227903361057365382817124940550690059257939838005480142370648369458796529396847439698233733267137768876852523401824394157950188310205873105823985249897349637887447594509676573107289059281114966378452207859218258179314074653226521826370792633500320075597744441290484973565682078627973020757736427311939532221809974980890308239096983935309817715284378847796292174416833693866774132056966864704432325411312103213959918752404729493168683844460858787958997812116980783444716813334294903548122007993857230356657221449103718447578775726848509391005724113946730415071058934926310689208957611634793436288444581408375003532122647763289697750190653563245269732010667603311493235122243413729625972060396096194080911099515041492871224177105598160183820054003837389020124943383987914668433633015365672487336478382753861468092041765059610970088520534933103107643992315625439334597220462260905916955335519320409652869111149038867346235642902558183022858941206335251174665132022048324987812332318295130697875077500345627126753930128175207555886823768026777841285011239769150016640138382584196329744889448060190947921686106460385998073309777805919116738815640368682872407705024721091646001622192820400609621383698023078304173689844550823081531827439853622707765142347505048755089440342405827961602427904596957592861070031467413962635068396507921951027827770041155558695535435153662129195838167674040047176024654625228011038691861683214992343513935052548605984853564341520640728367574252241016192284242926785083278164958503714256201604988959409799763149194042494735077381029426908277803181801496685233975281071841635968330994112044085277254277083340545070982905758626923789817509066743861141567464472675595901916361690931179570218899942038138050769257228260325684524340747177419687747883587052869161282150663058550548161604822091351555537110182608236485658603846990277939578784906424498267892246854304940815037756295975776266929090613873537066261942934455285441722844809481145080604189817150500146767588584280064395163746297543728842938972478814380148314055993230505485068299457657248669401903462744041531798603955872650421347809657087672242830026074495905537655232110390530763584797400843719834937757530492752515449433655845743832404854158572901031940879689664929875570842328826105023428641355490529399497562759006908318204225652161912178532955851422076143982355713563197462401546030598450635992806402369574683418532898422911860441454778051619605231923800811322640693461430969684629778758433370863708670466261376490407128547633914779365197123653866193553669828144883644033236574099152764153961751908950855067369058869907960344394389364810381929375746815840696044172441610178035476821118736753682571734183882771853921739412540192621074726223631712896188287616563589412842604075532365817342810845832050800797762019276807926448722461481215638059786189990508273605935527286998965891916369410119446267522751251570664417406788972579753759177701145540222076691568255433845937643148500348647328574720116058568918254584657438216658124740352502884792011489901368695368025065380230793287848890631927401851028779414504595541681693843296376862252492470213361857298130199155541393324069481670804793321578265875038028741563327623094254725344893584646044018619887778104796210134556835900817741305692450459468480728434997531474315608726966445754650609290840820285079100276375888390610081117599647536402961659841516846580812575233474231482112775930385268199275355460193714528484513980931724377942725761211247454450687355321219139109294255653221508260581621621618874905134653086716433863200949438316669669990008261110781481276654337554299966461750855042801471126437502103522221453204986893849434154916049299763533527319410117198526279935778921142749118261481842780376769537703477912025436888850465165835914725989223872111429244181870595952057411662615379812527220960690487151420621449953320698495330392317026253728251803960902118206345367341302384045479133322520495962067960535520309473081930766144204173784282584507501796170294332593256371716398180972860339141429101274354076148957122384508594549264311337507706310710947360139992987293087380409876945028819405416536463495851820408926946801752079715057650008238158407769124367417488988199788381472262421356771435956910445709407077932768710219983626971901595954092645783504513019188593042678444917231390361610670479168523940929780341984546879431406699393735118403904465828095193062511216207773214495660517910999295441562151914619946576425267593330325057003038627989416444895615767662121285736083377449351748234540756951523578238123087872168882827219900345564868978626081841448490190172595639412785557101695836403703386972767849230948464008474054207445245577120473746450895903233529715959935836793310279279656739934180505260198418233933085472894914857532125233339398365521763185949882283058484150021624120567251855530179191893643592665706729975795796165876972458218001091495494499873514551158219192279860181207406701371088872404874224738519137498313033665383358651556998003854509640729323873263824281709955871176562395758914451864028799121150672852067682308802591701843839495766877700046534601182064127977432035198610097541769706896630773779941093749829536969227050238473548738759319629193023591590226646062189437910190854259979190495662073616771453234258627257159424950640840537438600061484218965375502549121535279586564868872440746355906544068087853305789083171272371898720312062804066841478571736387681006990787215871815200915085824217203795247373900588930223354158329646687398365835525164667303207497930594168997319754091887094566813075800436197697640103903845176972047553073333586465371613893547073505492982655084330107085041281749275305508673886373624328374997270654985858485467851136550367518683736138919031554271222503088852096320591819128318672220727458824572396685174200802025265733138183943583433283057652942368448131961243365337761174084150516007958427812578798673467358252043719681583771254214714205679527420185609669565746240938989980657547769515067598776280295536979453957705202896795295418636084302212968224424668778634397728778644450701494265871395864122402506635892821392415991119926703697344192279380367265959619871651741334215772079329294565661278334873276229927017484499954766784169976603035200439694028331041192266453596669440248017206116406754817804707872662868335759489874368501360022373139128158905180161951226807940900548924842852424335348093416993960600671084616890049400557663598801303692105006540125776739141285350930290118541366821573470963485609995505192369547771786150665075382040567999469803677972360590643671265572134558401508664505854511464113800173087425846841198360292218390828648462773816897711227615768763687372708162059933842445220983079939670282471787711303180292653664290622040889445764450737360723811090037629828538253666504297250227895390898755177470625989984819187052359801057149433105182128395158468926917788969122861635997092800787481657631193942120477101715428622389688350771836460746245268539759423947553154907833425548259419946643396281355780187047920542967301009013801716070163748901602925308968596935597911227780330056926804467226748810969668728188005779795625722583745031472090615497426542672411505142030659487025548360943795139910133821442709054205254914448042303086006340865890645923819309204434356461582087479087105388493095358817213253192318073867127406713138485215953647263932246682005986286515043537169617108011256832590692414439117173342101767027336672816498424696808948279639758082492295088702114560816459050722794459762498528316228607962217955237423702638737215426461172857983303816978934279344948915926158138416700786652730613463566319210452061563373140951212726438685484442223431520907613634278309847705758950648313047973894723046183629927139239490361079596228488232316778858950861339421834315229153555688312684319881234601109007822484101950708455331256322659546164163056796444614509980824828136774741844063854355918106218877307468510526428258998226500129867239696681142989997349140322536579890451347577700688361656583479439015896563142852965730419541605669391818176404844584841288208479288153443056451364514478475289797314265504868627828176665894645897906465491747723324444088218911789102066731217578124433355146433338144670281737515095031206567403157533013103661124719338122803269026182115097775099030973421580314302609986067143779109605929220040475467126714465314164799226200390591233526511679933004189656147527578197734922406137202591766928110974214548965392884636142286919440140025153783278421042789226361559519646156599434208261236241373904285738396917231936134623775156602325055911829714545815712059945128145077942360920127945334538702835899188614481507645519879246348803344439773856970920146103840081628109704806470532919723237913455151049292714353415003635223088985753054910583065190036341009857755344403535478654063774477402387545278983616138369617605424030619318435513167348770526319160060569065688026668706385448321779750521180623033599128092606355874864071215754282950086231655796262597150318053623447950737937774892264955801878209333847372196837093753992767682930625036068731777656706392145312391328501011417191420630779109917725648042126853845505101145082250976519195277047712234489980305840226188436532325276618217585256310790766710427068636951049309949334937675629261747017894288401247480546419916265147600762719627646878326483491166856378276124050975315986497866753425356679172388264647162721417127093288505836868655774530015285629613641638791614394358800517465117182873403319419702985581838506014166318750028056425391358999018694453390102221191469499743347494717167119900763757848549304910810965976590850527000464139455143922097400279608186495270894572849625992440371072544827960530733178945244583254415336150603423433437506123145160955460404110074793945726116892210782350102325049407871373474849802442392142166056446704195470405361005215892975405505700200410569955833709970140567455033189752915170182022751012239064990619671149155067788260051130810753879428415779356767911457838282115598781134920067823303049342207436634271404782984820122384201020057954029406231267407260570570238428865483896664050772387699092502963371422089938070034850439035141079094623234573609103287394475075130515573736066249624603680483542100330644340697732343795144467678626044448484364497503059868312453083595669024018840366564545251953489413144070299429267916093839209119691838623790613595857927060585008137781328863320342876952048990258390138643918686991457659802919195686227304254732211543427461288268351605694699842309335183500137324047161145459741307530078159085729967060003614499674368649184454293509117807937063535748125354405505675433605949040970810666170824932637052935867962355129359191348880964876911503633989179462399456110785030064991501861490827127160026435792232549617214875012493972132396599334817848244593191113788621640474405700170249502100169644359612547678032601701611109101155682940473637549370286563712143444633943418811142715918155431496574161303220110588396558885809554797587493207039631695719228275534183325182612217938408012431716126833084074005471990130350886333395027784093163585233045032856190138955149151994922063933181216180357485818099810107992845937286800936303688864269020772133075541004510210333737122451085479004983755564450797899672287097221338957860106855398949675459461169370487892795108643778628555581736151046121194682224881705175008230186069085391118010594094907936819064383623381540758685302189198001733815103784686430072900530206226816895136885468043882136399282274602794294536785016692593053809371945803013510956271125827863610614125222881196118071156003276167989469070505351667914556367160682733112018312414372393492817912473216405795627654198185306528588331019189949996246418409997694391035697579002774615123874174656306843495993264158163824679074456690865443054849310380227146867116520994845510255061434838629592054769504140744160502399284686280397299075967748296517240504200896994072615086533283616123420255584980750834035351116609839922869213517014395106182027012520320988571704891422609988093532067860582344466267792354282031501422635782490522264878673398233097396327289957036727351457447147558365399806673695524173267752103959022508704661216991783009878575542196907101936138170531989039344416709782049442846548834206541807523600233590755697304624313178111694043865363388924366299487222884781560840115659083928174405648895968660237183397416241728297442793658266078794657144961906902236944222927650610424865782864242979780336777358621819274559980834887618352209107673473964414786469096810086406049683604833339209228679717124488880281329456506936171929305275621700683570700333367788480134014569849260131542447849110601236279067222828296083503147503815433213401226090374377401405195655223175506626118120243074562921413021416497813865138731064182533635918645963295017963391161339661018467262305992076942698605906818331144588405263156790386419142037945340960412281764010084484386620100708208750368192864560340618393810523881364135355329445744787042881861978886201152974215565549731925436527349801477336245110250081810321027933694596587507566401681380664567311813866240206732234173021328024067896886213432932274660880766269153818709431954421950675940952294419231282500336582360415551342660032975948290565211726145136994669774494428086748744581749172142846648641120938485104669022106581647800031367793919823117708196212493076664146560640085366509983094740804539790578474073409823140940096928171521489811492176102602000252114238119897244881090561650167932245565337870604750024766079673929903383029069396634419240749351594155614050634240431073155614235894544476098223170576870068375085959777790487413886296817798199605788684824235951590659623335746925171632213780937750395842729055747889616269727773601160943201176808320417732472737779247661788743735413295570936383526783569422638208487874541028960849335867278575779906295157704541343341802746058898989476594557073060152485987983064918146312538548097430641111226003251251704781504528679402853561783321251418595847976259952643301510068316527545899910077953884840134700320336892251852785731591310250374853337947954638782976909840692967907188756510169898782036260103449578429424103812337926422908688698947268768466758749947665804323180133718833183349250204945305634608666535480487419240410097504854762477569041307360232881384221773585121178743817731967935065004485737065367621572664025769737938031287802663832854099642491176839031705789082333657705605602120227930922925120952202168847370640461021052578152950682117924128161301692364232815303782307209888494351528353012382100707705246216636241115260443106802933182518328040742359866589246075922611440295959729024923204182981645246164030261781499491368747751211878881508781675875152377883270758845678374940749972757749158045294699011635818583023123548603935111511771467353662885680258198155925340554209281863859050533590426799715431718590274609728455775990304574723939859222002320434694675408057396505969759483090021724205309538088985388512628454042442665334063502835493287157612509679317709126669628477586676404240739334284186179705421029029287227937449365110330055879813658800246612862715946657803085880624925833109892572602338847937630284677040263091552090695071956303730513885785494372960084099520946312823592609493179425205853657724400485509185656725637005198930150908812654688899397929076584612384042524526612821198750808746749573350158776785784393377897680446343387475073043601658872804405809609577739222186954781547167609254541409430838841800674213836069687051777009211552306260574169167425979662781806785132520227870088166689920795340624272315579953784291707947900280684842296191187438519649608586198490028109176908659900667840577711224945535469345491502119547686857858864787871758034206241816808808651049580575521107239277437990539773272084829243548503731316505609442601750933220428615940978000497875624271541836037731115656399819485028082461369538862933660906216456770167966052317976836643496784850734479649997917587989241095225246617546644072005879186513161863001736800174376531686755198743551097745392985833065090520131075431870444823610636578032512323625147878626941969678286361036595319359781941652722402610049372991899203875876808388274334171522204340721614212027444600439144920140580238339889702375733006767092298479987780993687230201975701489248451595412108796622381711260975935237307457426261386614654056537413804292680265899141531532866188789946072911504948311543906753953367120938751571407342782366137353433987966936990243890174202018959286500300464052085352744513870980111551303424934093697335653850615341067541721639536516108392077744986579278772962816907866900158451843832450097130301428660505941914765951885613904867926009059159753185342424775407223663836029481309554677334737260252068694598671524186823486665943501394632629035571759430872112064498243323789543977091138646232175750774018762463218521365368730267620019057137431869408594826107606007831712414518977648016004922889669970586966650370439593379413988757797592569047812819914380406020661519796637903534645278505742044987126852313615597117505676767358260417867080175629374055923868864922207903300178599345646322453194599566836706511122814515750187386825877418287469353408784772804728619990945981329468555406833474143565891114763226963570219759686046396609077196230048683496315987279952521697211037130117332255214247036402886748696842932221937005996206271126615250928552406458792768884039195452668066910767290160749816776356629396706434805389502480853311376598771549436991045933902063342586478090486194578949041060614230710939936444423592581451991779511794025088389144637691584596140213240588753452710615319292980980028773967835190503304600756910297442683630843256798468576627016744478356741584844690481087631685498317336397088271739000527907248229606164045253035664810143050469962145155610018289355031106302946567544364764607355567897260840617866497264262293586043422694821567701252603956404954566796903804029027356043615778444772028985497566793260010055450533194749258191521163032803426963999872849305221261839051315562018200025320530649871641152247196624771756775191621849857606992125134227188576665623636057739757571021248473290942214299529146812101775394291844147625412461645607185387438801831030173768585870015779803380164868359654242451737019592737529581468342648156390977709462732881403827414795884469646477751105684124485510884917466908492877204474600551341428091028481232238351740440956539426059297492751306975048344262745009725986184704345325381734313502928031071014146268288292988202986058251060439245068985445549841434843410023412942406774156951069598325629265379109041236391417748696257326328848819193867014823474853394189266064893225190602926851178766299064840265201813015882490247723707949497277440246157519104857911768547573137548450680717823297447701815955899385684618186888189218892555168253403981609675851569305860165223836840471814850847024097254359730355822871139413542482296574003940191933939369597678996599994253557785186798953208550051112710087693777087706276874112587198478012057418465209478384069106772608990761009696688098313628023563271997362905681652573769874529886066326667852557509379835241382661969826056761497598069755205668925338309911638409715766326469559325439465555625415970597977241614292779404292137998165979175649998659605337187250429788932489798387653639631847068266074671372057828921593654080730373988794262809695172025367412719848967257717161121949374979806278490231135655523114423865850406440773250530862246115546245593525948667333051064295656436217185233834899202797423241389915040280839572332981313176677019188048895861972421606659524205440043596169215999124741024317674882341695799595211066827445887406800571306667382267310676077928653779117544842188592630949475868849593557151214565784914101834822357563457136614839613790194794912423936607335524992471242180799151551549422300726087200368433844050799226308196725476904036029612721570164923454551480767632597712503253714848230697070029229245032717732701486203337564354083072045999749144478545084298730352298445451018454606272480446497029810083456484026520846015848642790057500289871130892354706860894030762368255888635890200323749873076707146244149528484170679955009912201692132762222941570353335480191116400713127630927098375099743372810193922769509134774480519647427842099338659328052526068690526273818764521526107836493849430398603583255685631717710146790468137667275153031603314312268061033064707320606920853569546412277405447141410966083083247978141420707320519120170369744718017573135892721900808776088061777299255700995616287074398054387622037074102378477546448918786689411709660142187142822857182332654400298372128921247863022555944211979500627668853199247012278057529325081183835413937441735178315165623958416271199969373500723803200716506208538821112883159529115139872137875612919376084800604747232406018799488732660150460389199535231514675839081856408509004665631092841660255414395960712981748942241825503359067084300788900750327932481925206498493689044329940523016427009220321781328881319766499391993101293642560621545967554369317048379555781409057965453935578395325786211910069894059505178349884460783102815287567921567219616458270200111763375041940334508557595433988893550478554551561889952972624550142596620575751051292918579309632677647430134563687790128961763569754924431878949863148758678219359238295421659813337387730005387225584268758598964379049047924232232342079835685716048934233205303066606298765183253162925693747921908995253442638995005238245708115666700711953968179613510729153244243356599709941516336851165466766746610876747029172370399611428966944030932899442003289611585677421282116958638989812596356894778104528161984535712002832529305468440960668134080803493919639650197876088403567415334060121573528841063692714298652424395989180304576522514257289039277045385127240592455989751310786268217192937469234778743584149291583323360125539292139909922758603384480405304228105911036638247134865390021356291471650880533380106374012018981836545504570731248607356057774753242942967067096981683778533806447271316761095878269326109637852387992157045471682117465659123156351690710924563821388719469593938415714242952748385447170024825195172737686771582889548594925447184791645785481504619453242452171574512055680340099130211549039726136066473975622157303994203460587323686850368667637266407888774693594383363267463060019287915842578513756365232898828491233655028309169984066544459372826739505362023768292387722720699050470290584729849625901087192970601311832254946677226739691855517678057846169895286330433075130498180955905390558211151351645940405127994032928990305583376625176084557636272902983546984491131359958828557359220652006271365250806066072413990979601585509134848693060643908084397403504615951947733643845526813665452730403078775290123998656999971332587392687851240932249152374373958046793137358993448653466513244154626917353718238353903014449467836501409470304963211533423166586541143838061886411916276002018008095068364341207948022616611410242971760412132625478859691283468972239632179781260504535526525738681694175099652357941621529047923173477008860503728086969067843721817630822947375375317628371258267139870447535913350575748689008303121620103406025705972903736377025840614320235519413667803117684166067488327659742621048045544508798108459945250687498824072435786222026712168102353914467003091308826364138926822503701857509001051141083881465795196511448141097246473209143318643082082206838674842943439542794066423526423181070736569927929994286481321339464385084619445246306188948556557496064887591936608442382464861078808282299713571296061294845904251582451355174347256856761581936776645495213117792084223144463879016986103209341284693457740309611782538898147407540423162270183621892694301322717600990111667224343032559447912196186509976344662647394750512351050402941498024952851853720451890827955757301142290802698630006427925105007166490555786145198724785613203767683093431800859213112256014157709931760698491827858309814308889216999584811645307411832569432039887961845733038270416082247903553757320923379182164467033188915315402390427480377225719500498222151601251067241277249599630695936436718583099882225033322994214440901629298027481906605620445885065005154136912204189498164116888744315924366067921675046828067713226449044856493765437860102147561055087759711037251035579106675317167655586841818742473814427688072681169294648732036644144408881854097233252122694572897282169677934974780668025710455453026391728308694899938317708304383814703425999648532687569127822961249891890623632298041360414148117654845580761323853170660442472901162674441977878771065100444515008829265540490856665512083679554949849349415488105838295114615200262146175120300773737819252362351294361890455276579222640345924315538130319127712880968064544722292409524974520078470154492235141625456352858191246631889671464076459726803990272724411615774959736463903711879696898130165491401515654381845567246613630508212446329634860375937294135729354424706082541750926904624767553861606075289799314164102282348352749795886425677265844525046233411647837839260993118641566364167935996696588624162500824605086722602997161799830918123023955273648862321744440967342544085421420167375588242016971516535461512118576925402976738306814422893012652403566704636795293649642376239869130057150279158795651095147126655548905391194206639165588203026065094955226633536514567077311777240305145596629178049134878835538707600633602689605013487200420621470662013475166783829664118499176642178552128543588711154826664160476282668510899400495576939246133737220924620918045321736336479196135649068729657462288435559310681478111227020570294226039327868211065121499439310496318695584853388496972209866100278874122961060478640567847871446787811504736995849869401824771408100971423757762438256683335243733499397285271028218702809846730312087266955627154863491030197821246333245888724705256851330067326038274977733033201421339748957937683413170311863246296221406106487855612067797621064917962984872686138430186640825590351928333844306588861678047823428638512708446374248541577975301404945577437640726891516853747835455319778395854869270570578480535108681710239987142814507462436599472308126132014465456417347967781978000137080394307207912737467757016758959822690369379998284847898266301318704632264168605484034260206058756772976274134448027762698246221866007695017885135880088625919216572467522122591485380865066048657682842698730490511455271406680320414425920138399547169536151058884854949727270124261885090271287756540069662024713264106292604054364071515819455294637015600241330713323739577537564714509579614444961010966485425683600434452987826203678792428008877334145624472444947268158384274322631011888829971459306373149350473989114566785161773818406754995106117386402353541626423483074530601477146911153227106248930233562043683114366276893178966314344294586283364825896262995925362370698556681386252899531717374277538456364172838739974359069344686651941477143080674667296524299184888787015464682645908734850320976208273967429899133830584293716326099796106891393952114259507819419550552076774129707608342597480017025821893654579116164122188486849117999498413098913143293172898745142545130048478785744830418215992558164464774453368193762682132600406454959900873318408976592145370843460816451872951577180412417300900848277124644780663106536144549360043886804308369772913737742373310056159651489250725712009240783148108684013555886921137119118401856545858016845940598152809507981013590889359312726417742260607647788159684986747854837628958849472244124884862059130972861194220642877305863004158478257685916943046449205564698058559487521506153286117771041958655770561559425776745325372559298104695294042041716774214295198665242459754321246988843199536057171614962720950046221098949984711070471847689064680760154849917846290994651636126296399084252910083276529871617539352467775901525957802642844668052459960641963371065764799867784448977096909738170592670508259761273459217546035035210092844662035789812156958626297724054207663043574932792056796457903269429154843197712911590817728824760544500581023176539484707140771858130134370107951424757907254303409844245323249998070636379112012584275528762609187759788251667007860958454746617158115710550589885764235639057991721089870513169132744006386748190144669639639570074900893226466021701723155850544332217111073308798997331728065444667041677241994132496610761746958091561847164429523421834005726832023511784020080022540990693613841863734968764005075445272092766975069221622152699434326741147583423023567046055707043535630897192530772043122493213970429203136299942941299090061653030901214340706625335285245326391622561969824843972251281869006460592401789315432024585501563463698282983289296730371447001271391951259578299531212367239013109656753113652361762069164611825031713611768300393778146895701670095298107033442420405830226298433433829260401529278329297660450957829562965719125808514207415905536557893620466107980795855836068951915283236375046234484321708373384781608307146726451616716891765155195743055998639477926086682663941681288335579232477555902557471875170848046866334557780816079129179751440328369859367173661925722652220705785758095187584402974444561130065733555746603406221686579250386038429753794767369927457926575854354610620466574894098330466871266583444881825613792093941507650193332865623852240051128951342880896126462046462804578712065931303467341093072139946488421884748169729712464014967040883977740750417772331289185639058837549670434100694410659996227274964234235474994203921476197987953856888030155676969013668391543793476664698048370999845719066957616113651297046036151768814117023932171291191052902840938068869255288356247552902999311090436145332554894602840503419302086605960191499811096981837056523593414178939467895334779171033521724479491913322794803948733694544475506194429119791796557849806731312005663964363883773199969859861520137646573298544355499076073314922643553065838898214894418338358198542632771527104735477406854842375285011416021264014656895555860693290337333249467679896663831399504307748494089179991859996833590834114158237921310092023658810060808110156526667500658248570408053108585620587247634833321059738199159391333393066612073210737879152133165015547459410162348003271438052125088374950139118036308239430434176908430391983977765316050351770550805963539959341457468713102618799272966098725589710647487125168670932668789487726990559859616213017426688442664075653476204728921688845535205134433466854878769684414990845990968555419182433140325305468458588077330493959046851409782873203157078094098452397784410706396941679789321422673140874169122165174620558860810781906425561420585396648759009848788680441765115507491836914064640266315121687851377860873806189179987367859079922272183917741923462533304849375624121894122827402126958880738386217388724113685582179236418834490680807029951416500664532345371599575754885570252973953290213576258150275875284034945878592614844985970940242601901540583852751621715173657148797475855425003625339989081126106172135222788222260165510329435183160146052106660831535293682502449695664557061800155540404307402381637413845789912338952292019881016191613760876843684699614598993911515163144920923861237912876072356439596950351696483027139288493639772423870904078545112830780720545085175794561219961572509025435653684815568234130982717271398347201395260067290208299100971929295232740370273337595319413847275055209671942264992369437050731870847074528014751565074204329664396520444709263058442198206834594691834107483598002628939329061533391910281466834105006273689267497925260914041178423343002819473031129785773151701418207373362231334196278567419091335469040340130011108289099929403176533176619726380564086376610974459070134949567808715336073966810841897680135651449653374378697326064336757018375951611141342612761878069689780465499739113613779399501782753186733223546774550563575440881666215656335350125043245044329822964386358052913248238985267919399318782773901178826482726463299904921763303468654095896791071095553918624456344767963171134444064746096509838389565172957117850160374852287571696416248630559161711810445809215016915808896754296286098088475007862920805818369112123322301189053243603349069193917359379956590954596453652114816886039711202616077204825861633688207247157702806145819992886066970539140345901728792316531338443858934673487969194650624053915825622894991958927710449774041951921167448952518123619218618469272803265489236984353545859466272087106017301902931047262168585030241774323378692066092056306612793264702423051337066987498542834959631305836235652528753365048657116411054528358888924605147051992167999793314646275723176068128079869632055800456531768034808205986117681342731512820699901111145991447802594666251720302225023090127494799546594722387798067467391027633178227639304456242549345892397900743903194168620343949769015657017071042736852227727102114049658749854739454445204168931301023395496185802010718950329263011862546511600184761341711755666361408299662126330528835914313314540977150412583162967771954376266648276005436250168804159945963411135772587937771043837782223555289132194681050454256280424292595009462336591446330654103456853600468137032094008533579244417183984534715922898956693610946759028679655069484653226597561168475644223468303215158280084450296514989178558345473320409042490977458872465641455874180101854244916384184255441014884947431143556671643996626483977960381944769639796831312092164176250389738953866755385816616656168996476566949801781485941067641423458607733368365078025437491585423562463295382969767747565673639226208835867755467085255471385239229702064739702755425064015990839352927847172458271415505535453441569708126934275736979404955767673810588659371557112020792370483603609740801635838259432400743196432506044966384615141623895499735668541030990909338245072474052400428501547057360887898452245377409918464080931683267166949880385245563486162554872551099614427414268982448781219242913645626728967674910750673044487414759000209618907511901855274262696526610523846911763429880643940534711514018779358837981323309802379926919028174648560649966975371265218003874656656537085845740786852588510731281405972908420015906420648094375091429099861065296693916282059664875806772021057949055571272842928702719086962548500685427398165548379509280485254930267448835816220770226250162444263734069898566652274474054355691724048492469199733454858740813149566784507579202020324740153412874735827292958731004678828231593746596652252339408488503350633526773253561329275349543045450650465063850879328637640127007838521007673273754814197992461223979196454604778607267214180261202427192613526010807530584348529000769648006287273645894739735322037143838179559051831168565387636383378846849234665697563767882025486092086759466038053496597144314678752059180658818465817492391204127798400375645177014425513903243133622435704270975302298678019691379147493848983736775283673193740094863657620711494455122428092339859140154305864954246880773559188497480643541609451404359010564436658758521758499147132666369792691708789297953093517985924002491447193500347360649871436377472756564657919063479042854443758093307617600961270046842267366814842926557671546243958365130360614625236853057383792018233210413536479476244229725115260780185794313259443317052867507347955046264479968014484510606254785697188027436864679161177568976441427397150323881735278240591921202928026928385041045581929731491328126082430126088224564791653028698645696018987458031379617211780571810362417537446579198870899541003613889635348121637874032487093876203855127194366475737618191691523398947979170597183825461798236493799989223579069756215336174835275770266862391534774731397956467925945489150153641132554579991983519207725826788723165895888175184133625327118250077519168603293664164877209674307380910392023979744704639955156166615144128240933637474374651970496153720289913461636451213331744959226984515738416044626359004080666944071921180480826307302867119632984104905653776569066215752686670472018949437355410314281132193415041579051058446186264549674503316331077045165700834766258146510023312411170379182894793777145593402599921099328359977939405718446842939372144899144874312762096143672183704243592714122651214883738491866540986087451384869628333610322786902321156401985576615075431679004770136017884564349010315751844173181529581007574660002695645452513187700625802195584530501997058300150134312300792990951825895072517146140460369291980300355518651036824649302005148731595883962441256510587654808996164411198380707382582971272756020903085202887387914042203401254684952492321831861620409602728501511752034187192016347092480149613554127468829080245352127430787482399638085690769141521569994575014475667560917480759947832179084301589465831584014384195617161995223196715712104337936450493801843397366721486323524573772333365885526181832418843882639746010644923195778250431342466639681867675526842604152438245187131310574775517884516184621881313678230455297412455808042303607135437685153125937500164905678183519345783080150895042663488455574061010380546253217120280013922776234975824800557633060709460047250952033644459077670554056056417848445875737457822348393470691453837273693830925555802013640772209466565385846191804771323284293144297680567712316506559407618992366000825594442677800430151213255968555043340781217722996998630831610102220279474271064499877894249371482412335849310414884379657141832995733658134447845407399190940591122090570884335785949621958278703559021373037393997572193650947348589814922934008924596824557913159270226594191057233581943302537822067950883005453476576729050617870691144919532739872781915898708195768761458094411626149323909573956564317240348744273217030804169159109662045553926953076396476176848025558141060019912223134902633523228185827831286828275949056611416327011767261224713498400819260984802079919864873924696676966155193110163324838147525875601120866006873481942633030660264891721868781380724864281587445732086483734861100771243229394821816457961747350137213013843147649196133044605180837215812085977415558192329823511480987359593314042418943069186017232807986384133342143556154037182476595496532607025310022994039856949468665883879818675269203561586412463755069897201428776047163532145606079220922958975728533112210622734454991825903725656883133229606492667272848844519797518369837398648371410600699488603041891759881635513169200055224321645741813585114936479778440538876560616429970734600870147764883241516821538161498605473142207049979749997107897108104093222542503980024030621883544544695580111572626336944508401834114118191476141993410241089311772129900674740664368542645755051981850851085473409994238719725050672030514944429693960941227426079696668760869785636170213740127145017130794570830598265676469667708873954166654373231976263518702709699928995964732267538855315758926360142943575547927854628016050402494695102450343225729663196911216850538154622833780851431424159959888629271710781037632743097542546562592700424806950712528772642465506149669344705179080217176103115663358150064444298040262924599067673610029773170896071320357082502908802710740680839315225834786904703540923285483708281470252617865680406714864788206375012481915851539822728300590145739919846216406760880051891161044907235032614962488086296735971629213548789977439379705772377209324665795362738373336328780937404754782208608743158782620808889341538139595379530726800598990274566560584141047867237553669667170226096180001369734012580787856917299523130582604497694925840968415560822944685320336601982671194593791262644346660626490226533839454844775583353117128631825802624071790803742430004806742687681171105237869487086910944358114775565037680757854629006455527951328450661100486366120335290691336868600863804517091937516949594639355443310342235015200813873861424111616740792389433533893766286933805337097705833509958576370411491664714878710921604222315955261962567406695224705488382855100623606912183407322449100388613125383301164043913795139268354978556766342927644081892704475119951074800674107085236107855539080746883650210621573372776998445489363366964788916335933319210252844348143153957636331402344242688822820164549067053653412694703876383748846684240686905890601865033528273438032146230488000097190920363075627948432463824523344566447089001611094544012745513702910504009302694047605151236143314848831370199279833780532230511324551848223640088000565406849154809317816338911131497071284714605254338914979065802411741683467480904761698848176301424912541417627514476675713851834448375295218926425604277667658254486888830741311702950011109673273940616169476505393225438872735807556740055866570308326672834491995414456124895594089998483590987816578066460702453344910140353158577772135428757796607460040376219165938462473806955431196608947293665710184223076887400861282730658789867883467340407828878787757329667060325744299355728694933852234719646117223548153016561661078914911290485252263833226497380046267536682930066116462469793641394750140442162203017783652568402013979569272031881207612260660400505270339650077125758451232337075841688516790650225096319449472093043798377362024175941769199682833568301370614997725719316422794736127801847121988542831159770118107520594629105365273180578193360204459589298917692306478584428331212105157976619324786740275588739601629942288571689618399139944144797997208481818510906267491164046631985205176116437928235903408369684845501153490502632284607578133309645071233764865893745958183002904906810354373407141877829094673658715800954768332809664020595430256268744788275324422819661979128906753482068058931612705821934776529808524116443148665946906552309917151530496111789874191587205552508318508077684060467071201789813834114111619509022164906316851125431263597329171619251258625487907489442564581690981132041954095560164922424611087219463820584835185757613696672800942818577464700199763566217132159620925848560355501351200886944900888789289029500688791100110397355028827092715915438836383633209644479224925304987186937607306663078556685124867070202234030984507071969728290766437450662716221388479655096359698086758905628196420482734546480788229023947482134311386721648897849421875601983879818318466036970179185926673370143449930304564195350216346701642592212928230474921241452615406222366289566609326588279783600762117287855633615743094047277622520262457488618934160809308439133648258329829947254018085357572796413031712388089575497632191357674849530934880515712522624145399670116410526503502801289786204089126747138269300763210583173258857607637269554300126173461220780483026152371271853054375604540870272933939943061649007719028195107925395279379977806594007618824120662875274924645017319141268559014794803322325876393710930458253279366254807136832352725387190995894362148656130176336241753153036378134888175857582920536091893411678689028262699476503417960077066002457380151478379995778521124835155983386887257426027242383797106560235201174767303399710839950601741456523834800705563450058990195503411746304428144055193522557955323743749257175221866820535817216537996912069653807056122693498931030843972819180035822136308045705772098599633917704627666392928211685591346238753128381476971598727531306656240009143686397798084254683336065314602062204224266408752941272758287212103203329847184118299417226451727899607884801576900678742444444842447639649573351137067318882592877387071832787493779724768170574971002146524909187893255812889987052894674616618403970650096311547738854166632317523625030279935606738544520713625239801868711880582513354346861610062296312960529210974571621850160972482550721285601766104100253834790084681068366767377593983438234865867455305046995623426220586865933825807663856369784104982746715464341778021552997301822153560287826873900970780483587130117705626986049719949899781229356285346490257095784730764992294210553004049951440723749298638007820320544054849384611890531373045184354886687274990268332554214146920142774292418100209172434015879167158658135898059145363221501283159056521486148389376874367878109693503710553679385601762078379787333706104467162155715919300519570255891840433344051898566018855811380895658992792714346058865368373494794167174851958147153883957879166859661595781918483131292072124459985210968079023653751111489790841503266049338355953022932892516951647238220121411736560487083740207457696599799375073017446623596481313202425723528122143483523990588811208611686506451800427330264382142032683350979643910114522135658423214577469231361254154789583385148256400403366968340021837028766039511415208184986763242686601740626364619401903873143620535975061710353950556733757157253992229833236865463192242928748700482883476395305346374181943553908603828045115957357339289975276741547396613210448750723305689050656004221614172701590384262265254333200918513269437896144992069051957315791900899928128235436967407370441232856809384055370152986173796166640985899804185320147912713398336417691680315647909965136039136326855326951314970538063183443975425991182988626615936346365435449533866253306937937859140863923464574734247470788762266123796817166879701405190286620294062203096969308246466182405607966723462293676896689357180358898634909778582302112282748154677559086283325224317103391193629026501507858213920935542069385084814657596058606665954760696712552473065896814339361677749407756078486460528489854060544126462766591974415812642249867001504777525154114373657425091678521280728815691951084140278273401085713242222472205705114286073767743371561875988723754447870241161211322175072739058108367787556462500867007088360234330328087068396112870814886348308170583943297608636600887465834477275109896067504141854964669287987670125914799416085359711239772840383460992504886005489022028490685473852575581062575832665521305881478362262944255212360289384979888178612189166462111071062271943869539076961655046088848301525471738329672212506971054268153069363134016521790781759487829983047014340786422763854880301427871004313540940089922976576290611237794295734546463213641542795730479550523846454724207157152622687923800497688113655733172682310182846935067360925670969338019763019277726102127269344078051569140963658218324270895535592993562645152691176354468253694787551484706852207149638756252467621605592476669347677301690349873558269630115778147992211344412024150941251920254022319214137341627449792552126584580039282162400912497612892699176060094472532504063462483148364519709016946618326194458619236968938420236533949084732792797011895408397146707181552724642606805812145409639070327653115492021501988521307960658972766019660435759957635078662283730156337842363354629649715668555310612024121081599079233486378657070888236355115068214378136881926986284530613127315492740074393682895104160623996248281401713082712713515926701595462190535559548659308554627901359298156249026819979449082295803730862680522822059129268016955257011976649613488064875100627995465841077089297318257256213565115488493319987860584226562164194077194060030239568969321987188045242417331929383506589149649810677608771797244222052960829002406575157699639731590996256588932233126139257658101235573524000481472149803252485721670494346530352939339136006341469234524348828965736429989292654180162992850812784280909556424814402166762776521367235994653978175759050405380922169840154657873797019603603726701934047964664651857497611131031290686270129128334688523817941802001267285185905525472792615452778692964833019218159720087903881221039460927919913353833455158477238008771418451874837697232657669657655164086320280032661459107543259051954393389800031026684967156890088392567519027725133752827814394932959171495356099544594582128962468897377594583121892448168037243607859590458969525197329641074308565363314627638570469074529772871837686122369092790914216416818769082533904413095929395993570381644568255925944491320453982663997165295143424591234237789714819323274541299957185922461865124340359024036292959075658641258644395686556974153764156536020968764035734681639193682052728031401219289490512164635755702717573701131524219236249202688180686933189004904872489483391685625046041292092942084265795546192949460884818334274234268471087398817714828394765851905206433488856071404227868613877851716938324028325696303283125445084182700131860965070981617173251399522600415513240239186242282809284612588107591894481358077084616404871489860851764577625988293380126062321838285281609592831694516162541405034781226451028334971097651463060702789047644503881361384715280485393761938828822144978036057512837570952692839802723550538115396209355387689513850023981586729293702039575305668715140859557661487113031828383226772356653017840304890277946071227692143705597764471651686144022764669654000684236601768215244950349827627123469326077972012511023095616521742307771078740163793472505244708764628007022427913071260209505593487930990604650097196796774087272668886122982334126090688450294504273612313870902060782425555694105582168011077007310187459757002410122931313002050336024285527787888528683871250885078255511885721391711778950233687631335308193040357672989246437753660015419486441020600103955889122510228681872440789614543856729385624782421888852910501536719248060616428660690473287098247477355031333427009111953399192831106227348047815353707203022846586796689591235928182206982071994207727536047548583975166119771178436859818083731991955985816254979776796195135185123196348434684277210644360005032880936974775283708691661565357626803870749378385955513499720177641199821391719009652806942293815099392480110705135412335322920486513648710386738422934712288044716347776987161578896587422551301819731022397640270533356751207511806320175818464905060552999072277916469182919794107243293324498004076833284276598313953013026071053925400132871711298648349946774413215924794956376037195364418353012933633181284164587059969895871873251273514774375860612838733346151206995345521177208384960206302867181934130553087098071129209494132014299246625101142142705635230852906642548670655799830155968040772752340292217431405412439605908216568728806185090285992359054017335528166285671362861047101387390536210075649898292615691031850392891070056501683416514463447763671533502178081384755865294918461288254626747522322881851680442535259833868800829326369189191580885740858518998537128265583569220533792035575035621704173092643992235130722146901543154850735069783394063600812684070707453091161579065138418920046145810097360787172786242662277991389171424036782760974829878851329442722352656225870471968483571886876093763958585139809275975536711245194732307095279698648538756255403822474687497548427615864293513062226251995414634647143019384915689006947268683903969655223078725601187547322418790428710742424381634595578108916221755481245432430467403223587531905770285161266290385083541446352179604607939876077695215861161782105239718072333751007278820748819229449072029099882880657273370325466474072206868593531346970169182419801586966403523284766950699231326424651892928807140217182554553657964561709714765188790700685863893910067365765756608628899614196423109211241430370040114801518007699512453142185149455091066701854987254618281203518158689755516282086486968540661780426764746522639193072526791212436299637890128610218717294624697533539836723741768333893762937977319928002892289664425704129674247833443781656914181829453914888782710070345492152541877842888952498337050395343418808206275763105222321941401862964474427402289985250163262367891479208367003368431585114841125617193742421664359388471979066953994337427112856220006721558087364391291092130618757808010368254691939798295515303352620041326849965488118670383960901358176949339908615425977788640703253545238575587898160241070937382794746794621310461821367516272831539165168801319879735129646382042909486182014440713768568613297821133520638671082010229229518495156295645834968872192290198341815135946688231208256778574151825776340704704638118672426166981145602074791393146923087540889721526724152159138335834689529644668608559914127177875516197215992230601148907124618075124727273143564726839029655407920377898339835169259304097747950229883823486844755993302068145863246692900092547624759243583320449219496404222806981086173610249632760676287518402767712959886534170010737647129884132361555058719253175712714162325049509479706520768773492019586653565131168966479694453855071089946631166512601480431871354131416329268653834811945151092497860815471409726981533514534327313758312351704910815176278024052985810948737753877288562675321407572186702214568336962248378293382811710633897705671414659056330167576146558096457697158870999621919913681804112043032171488246164744681456045567495612452494614172441548622421153359092216565820294955443993194777783410696334868116398905551570098303826215062654580573206101832926922541795769603126615087745575541166632253155578280714611327942521902334125003153642335728447213537809320752809713446719797585172079626518533602104772946027729744049293239630361855557704549294678638960008267009630536433909886933246519502891270325545330762860263650237638701655606225302166273390692318303943632134071768622926813509334545357675235297495574021993447760736812420518996872791158699632326767015897967933162935207294042811599047863985571811410784325720296131502532808706719715160940375985215976447380231779708986873603652021259447730250461801309717329034349841263500156461407274492960072017705932149479923596592993945763383757459782923736712351526042739630174438517028520237248085791547765661434652994823366778590722402301444497443276013877509507456453238274813902035817643878417808625349533419725057732619529049763428247189432709034330237063562465688507665522308318388476808264380025074321111066209522351131544565618119334282383729734939602151999824037878501104404603059143762095046974084619091248577015374498246001086395178854372108780523392944488088304798592331935572656582801183623478355078455239198894436305255715869487653825973619349267079973151003669329617653504528906328416726912957001337860287082481420835543149167164421106098910985185843780720758264318645460691718789643042453912663521329292041288989915523413969483294612787453400732561185843686245665968365320073211536664542737104591810230744947380402080858306924054063663372727974531503626363913424585730695380965927362465463394373308195479287283498374481774868183057399507090931937306875328198038098493191166513638293303251549352635047579143925655763618323380761798330073622273626328897008189489578451315241433527416360576109986951807475551677217501936737715995774781876767329830032308683505987663338877298070837802713465571757709516964073584222163838370929595914289043020205266558238554841287180062100654003182397665938059773346351969227093940037765803120545602651003666681838821444423935930193317439014657194253696046013138828134340455184430350536242263793022053892124734686551113523674586081614832970608069004896344057764683680630119583240762262823542234572584244675581977773430619977793999568620515086611377161696952930001293509596025407590923973153455263642829150506689864806047402197668711882373115297344314969824404015718437271446344580346644565013427370306588578493347158306004649891686464492613619119395021651273147047054521857113285971229954474742749862240658668430859556337695961651436698792009547111425923021998845873506703312973120552062195755487832512270767020296759078773903457972754775828015333555615944005644611113311819244687130526812653844187774292640252662431055614234609644518747685940527255464667698118182197794018350313769432940340650358552116502273096615160138714181148174768702064630192364871638444410496460917454311360174654773163292315207071081554483264962731987148759518679688772832012805165438208466316612243555841262530943033870977552697179623378488343739148502919972602248829242003984457349231460979347298525699952100541139723858758955523509620229661891191141379200528869167774778524948278527493773560274929240900329711115319638509807890624763726127648611978094891819188232660817117246834778407693965704533244810993079957631187762249746232599016768807969648479272931009689282840629639083604721348680815043727033464525537542977027589576302430197035467375553553064530569273448714102428332301539801217058795056477281837929500364233879349778017403858164590510869961203943512758454487244861157298197516083418726751088984650150738130003264037565814450844135135519880512162855891385527778045450921747635875053818324018654115849938502302233290295896765101063210789817056836303299391183973951104767116265104584950449959452532923542358113917105604868038218748446959317772948276072812288202239768436371724944392495711114571898361745088017637127450797664705320351949710108936983864573213716521887500669761356476595457922472954049873499592108847114098892416070714050555957761049145981327623302180557506906976472640401796394925354034217689516283924776858254422382112330410108956185218761027251494815747695882618835632292935920942340482697046119477297148755894683998146459255523074407112166870569256527044470093332285268856725148752937752561853705501972409539719855357785479123596411939671121234945702757950309869688763154278664932537665028928602674675937718252510087338534638824842133970201095012089573151747940625534898666805097250153870847726259325975207318207519098100726140476621127784807901811433952626920935617821539873542111224429195799581153533995447299122337108771617368831010758996705732931949822168547278257843679334424581408084532080945893577066221150258725942651362135888735469055005372188550943937163599933411142455155966301580229119354948736730958375909612360936084831198709258738472324197313861093547952899026826319027498689639817715965809709585959560741788936427745858957473722110406317986733866731469652192907280443738034509125100887439928826967825745513647214730195059061749398315260857445875441276046395502243460449528526196644576100483509646462310390527607935524647081746855519079213458973626678798502904808491213939188831718691899538056203821590350549581248773637996366191125259916343595160483311317661115994813389539799347835385021836730360370155453338726424953375690900922465367629103744363256426692703365863985202891939202036082993470023004629013124724211501934845545493608681906478078071462667165359652302067189922714367200978793797418335309737263448151190773126303951874503424438213241233661217925595432217116618190391428465304550625747067138696902946289222032421554970486378196130745232141361729680777800152318327521516490439884454179335763955238412847635864878622105199993377339583221207006357046249389523805042251753876444082785127647070296541835971387266076726114039333886584380423252506415513353202238475646498678215818871834768710955906581784638898965570188751599369014524723297257550149318388968341750541851386585122425066879069330729797366685337206334814023225327402509255590785023249159289862347222938779427980078694441899360899464696235380805350327972628209100615017120837377693271433075172844350351581298647188503009486714374325788998162514806408015611895833506202239222802246507505802908023387534552441055462590631124615219208193419781813142024196130937665920336274202302152234197451986776349549790251502713210221396900774712200545219970726286134294603880735702624947797920882285899670344181558152140948089844789804010062976579678160062896257799511057600215043841915600273482679507114257763762171636859742410967514756598576060702512741605527779828651263028353187394606081708639977595969840377810799680154445542663710889330067583524351726378132165442346688524237013549962386142297454429655376727580938429770374102190825731196576925237543947389243852804097828974695363813659012256864301044230139509281986857373427361990656012176439776636352920410777710158491864575584007171365971682579306301265632737342690423739726287878119831289482888922674926964128566482827851100188837870677557934792811528327154266258078075332848754725837180179992945064243558783209322390024138691222438321016635592816792086937403198505788569839994283899307812553462273795992805178812579037377491976654792816570677610659292061991440335939942856395637638768626776073442677089323078851638372000524595321735429513107678127658860113753368922196974938989583980782689615627755678420838427667908149918700315285411684270091343255380027385006659568265951121078719642843564233736579057671342501518520727527072811876720277032443848626673894284636276126032765472996846697556558940404409680598012547644480652900973692350399081064987617316902551813133614290255408313511665365079506511044669346023911578601760738077875205112145479208945577865281439396192122543150729083518721777462311672080247736163792592596761864460917088653828149947412246817327378934317240868245642135104950546530811207504510021314063558955684897311443464573940737738097076498075309893725431734880105161721913434946874785327813349723282830275469865700045462941357193334500353470310774685143916398203729044459888105694452102426574917112088896279850689236055595339954778892785580684757996260960373354241568304350575574897522916103537651003480722783729549724332592704305047593189466466466842379176935361176946609941789619441602513611380377862240330014230258173426725245104421133295419427837478220490740752361067545759209718488684730772976438555659829006448739402195184149509909365187888382193700776931008715372845047007745095991523960723434051842974355048448967625391356327409035458601426156664605326845738531237879212477435934915795626513473145674316855301260054363359046965317395736378974271142278241815960006604705883568471980703585063822100232253178344977914494108121670572406480364179571379010474414075911581616706991029885650075895274455396544690422580959857589857047360992636330117898478586704909355824754444945265888689588927147420195690868211491334092222166820342792418225671443836794255761306663882176059248038825534649236123728871252477718304888829343048985990371332448164383095448623084184362452288845571226417059464531090671181988882673242183895073537681991161808182900958342237121407265404039636342755526206777848445066046225012107476849167392888382034232422583681849730512124367892088766910421954323905830950219265531592500294489981857494551537077066641210873600092804632662532860834293441998532352690639033127400605029182717316719178500305331914803465674910607911166531269685544560112426142496175511782867591529716979135254773076469480894249443289173520816609433326748585099248072198368594760961489312285951525759758036931379016347523155330410840281578083418966530325035463771246348911911257194422890274703889403853493175607641845498093764313881194313134771437926930144122274779371640376494096745615197919536945783380986417662865813493991499092631396913028045476506290148044000801078864844300764991383564937917787144566037786028953514644946919750348165416456966664158105746759964086175505652215230980218089037859642906205877519903090723100070116076323006613963600371404993543367558226001415673439827559127252808681304335747495457171711102870109800461825609401312411650748187396233842766197028128172109487554360277345437981826438194490024900273776580296526764510034922079582805444745982097921291787798400005487409321368588875014123824265243396124398358197210375371772927824920746851332389779023765140457424248991666961283976659427628564735356067394583770625579369429944466224439527885963217913421331207104690575043523153488854001065758178082897890463065976364791603240814140750674876175819255715942233740189537349024111070305926331672494300665506632459273011378905197670117572151388482837098587047314843466881089975664520197918964511896472195899089425576459473528526749692775483363181870049731665695759116671436231299868175630859922801209227346113729514217838910060125082398381895356674250342395148962726436194032699611186654872980827028158168396048226506227840601092647691875700555814681748260016145420926751471512057584325199543428797666163601866842349919339823209946324638238522058276266814204097609676701875375266274412563963207608574079127279082796510237626980895070049204294982728021769997980014449268944682545346354593919905196768185225751031568033298207124806458772413315224080798691162169810183230356793570218423646545434545112317761121991462956639932594108985153112236497935058417286386457434879763087730711511970474989377846619479288018810346661362633013201912178923891385718749758453922997011624862468135806995671698451154850046331114256826028510899172138675292237393770414878120727086640860919062313276100884555598426975853032902716936847580537030942549732154697840478581795925670513590699609409444376774101775368654568360004139118025694364344136756901945814805706529986681410679822217341219313990288580250757842749633992796387619009849180888788454927282687123881576873262953835277028729335231764270309035870192110245573188499925461926924636144113044448133472431537503251967528921943686251465575922987811232925621054775298798210947348732527055186948372348315233413595936486450085791359008968840036388701563354592173564055617476081882171925105477624448967651087140755560195570436367874321932614271211500074263541459467703823304250123753545911323648028387391952672260260048352833929405878148292356187447113324603508260833985999905815631022128725772637530374980534281707404698002286027630134177815216167830871838057309111995741018012325671591806100123439211446062671794350449176990722512043735324770979351318808326355884259476270418848374471485089255165212153808929328817339177546012459640544095237308175895077952584402696376067878918212400198197567487374497079969271269571721436296322881617428866101954044955708339129681078247820641298409437619180258736440873241270966748883515494119083249837723178663149477941786147868889557169884854088250907992424374162554771343627098130355045695110616989306673354877658460733422354646884608763146973827268408149087451099161177957939715069061603426318189634018987657878235515105329661069713830450513641224801849026295620988293436698631608061063471991905845714112402570805395820224193686904332945984339140299031179353507871943133366733712834927102622670677497083171159451575064551025662810031457880196004525037676292770829015928926201784540905678793304831786632980677337916786629758705125225325145399689471215525853264939758355254536586726395864754689115122178490857542124522680527791243944860048337515427960313397088683556630388481098635840668898357001679101571656898202667690339536996984496124773179456161922092470570960688411788777963839600812877008534287206333959863365034625995213257055060645579548753130939978154800829982964691667507167700037964811965362176301253596067290758070732637854316081914953462554807224247898246985543633104221465295382579174293042661260647994496843657089326822897656244810411215063172424960246008989025792792550358936225793589814659505363800770110235369119619159606665874426364414180470572679408977535579645687721220002031386053435829697731101054333729921250696477433178523557468149720298192339257396951685772220730110866243392324739164783303979404744382228460290191718282246818390662947235143511829511244374828991706748995926070396759188118233618163234050140059933336940239483059686968627316606973563883865321690878923261321858166887939648519384439940986611578710823693267068829415110290104918498544988263308486070325010774287990116345909558847746916051900575946173367491923422977970782115134550243042908647620539158673858267684225217884735946420620807880345885678581335345572380168606209290108845499541592338665099422230879325824343786204529148736359757337781829189161656672323552097520546228840116383561662774638606759830871038646321268526384207073299058566319400179101941051366817165932926321170892930251913065607249245511896072205659020559069578475871823614297133282377621382660096209783908674544934313144191367547601904710873581849371918061295500859585884423097630299082102072575383970205555489298400977928802616268579250557505918126515930199176588858533873049790418912364529042473309232224812427211617968081292359374997261321276017457157459709936745365038149957129255939073590851007578045884215563462782287355805528684948311822642918570048137883517111110247643217692981445546612507256603579212669738670938185718577862480032458655019819688990416120714907140795253581278679716042414086227379272411556430423741956578807609135427517567672797889379827964179412123673465038506988035035628344803519758207399744129011514740726635756252831550653359793136452569110166285135489297141508981246939872455843461310344256728324299020922702143960166155763438849540250525138061850400973077553518886129452844726856569732481126025887229483314970923301567988774875190503055432689397017243501854721695211276465653300664360903454855314852271561961086016100906837701002894397374048272521212985901993683477626128033732453807366155866921940232246216976417896664487800282616034486847535875867923334924489359773064797700004949192356727744155458687955090109998020834809285383740943618062788341543517919790269679528012574052906661184513406960560350336803069144339069458357676930422760705339931171969253752979300114209961738876263933427475847450328728293985979571391408199098847812528284809857365084549799540065844782630551124995820574753633114280100758820748057610074859484921848130828259198174304719103752358409212741951084237367219245048882226505954793165243929248062106560029177757684159555181241994858098864893082258444559944937953704718724623498347815219021120146618525806282211400286066945071017552955625027734000403173694497507371742743467171583333332330366158500971526140983910470805854833928269428822002132971884954551693730581246753355022180058932145323336483150232043148621551300005258835448099918959774541899130093346047193878551188809859413054769728481449443220278077246313863619269101760759243631233171661215209444595745047633576218308214823022556009393879909179758839539202748115023041528903730601741941875232893514475803842934613023656255749972833379874300480885592383001307445472716971998047023241565930438799160771675966853109377682728268241833181494140917057305272682831312232434144246049817109301997065811852656290054963087138940940619632612450512094989924881185990863334864277084839241791606837328980512482148360431730596009838858362062880161269787275128590337044971898941080602856276662317191993946369971537318526104848783614100432625022463992591609071172164027142308632806358771162304265721424605516779449665849498745876155951791981790085268475272621050971242639446965609582484855070152130930216868684563879596313058088863659807676268929960201619866096990753664311097144815704670428868803040555243448679913670725630132412673031867875456548420321109786948273732977711620175752748349580386542979820166154595191692516309987099053433437474517622993838838416349681753113674101895741373482719055246112742683265489200120565338514658625553109518118535481611857987112107795031679800087140959738232457855944588423619853840535735382537060642697714448471522046293788282977889580344204790306251132603635398574389932981797460018951919262128040240620645991242494202832528231409793112023887686317018926845876514197925063600204591728921077972757541786676208058409148404207956905739113017971285045573314237716579142232883760182704366449741314746451092856189754424673797351280121504594353687699089783554706845895510126564571616004797854172432578283463474752067939883869736798690015704991475077712852847495701535083926072105570849294362994375742562297191287747613461148892809451209991250398504510294161008017148182844451585153195793655988174838678151712447312251170943363462995468319954712267375425052623108605785034016608582282782985994277218193462269019587156604137774039983275497507787354562753480149051015061014408194627878101426945017505030197734949381462344475984625165584540800719733317537980922438278717198617294624468450922615919696571077429199408648645923114447012427786717490611931722053997395460391652680038761252194997776344415280079904252929148862075497486530209426561617153359118723694175010886455548983398969639359198943019453892141847627188167669930623125523390629309169571932053041627645583240006844436798224863953652235609525210511087160674962078826979477547144033114800121774952690266731730885821505055622615590905956842563451493106279452916159397199717934184361377766204875413588158644557233842124797521768478516219841013240109242836160383796844763135642983265210481364594475403033314149955969031794517236720219156968586731428225617079940968162963834796618726883696711952173765555360931709637742653384310107728888964275977910878333866909186569066080983618526110405968363042781446237637432820041357543421557267743167810563145650114262403102925846001512425469829675866565284809197722803570620690903261970371501574401605698043513685474832804327684352441682355191181678097801728535348888597376317497125065933244304194307606948385869911092858511693705850864585505856546355304545407223222150112266517481706976173400896128996567115125323664166754924376659511577629907262782249684832632410178542738605670068274213283344758545559639777098039570901902276353728788542933936460617126752927975447234686084058161432264261146581766772687206230445036610223502961423402085792557942607867054265550562777576491152262750818461408476166899372643493837669576975194123303835054573170190943586458288177955501650273985182294781393506136342557507792453664255913884384379193794846728067234309269002862086607705886608362801381983579581948423268166850097002027092117000887418980328688571348409445273747384684563222193454546671611566976960173625971902416260633446945649245900421411080509167325283834788740323483914588173766886836004165445499041278275912540252268872970683642858586324210330951774061253830893476528915856254568639496867747463264970964902687848631973051618046057034326700537762336277530300428184440073350102845463945441159309736515167943650547170277351757184057074463841279263782663053805659036309987626666197269934916065312779191648855021913272114736977176105429608026830723610335446857377545823410610984056946250958453974598268277020769636447947212131287324217095273672758541607124503949725092409232013945818642426265392549753115493694125827857677722682419619740530431750747475955728181723830019394824721859493497037950267584748234622741441295304131826878168903667741351911053828163163831795507434461976208626592916561300827512309771549334708091812379657952035735635118420142622255337485834040054217386667193518962675230803116264494905469332692304419387015515843174823970257156562113844808879863387138689488644238258768057251418229173089428713612122568084020541312765429448750524166924337645731411877668535061343196894661015866949667771329329617434024593007852504294210874268739645241504869065719764678683618379894502038136859234932440485973102049916643996503237056847957374178682313564663339698327011156503129408000464217869659676616058690998813518477699749000236292416461948163014744146303088970367968230661871593475582399456438272194088912427634430952614621747581752804297408614741100265621296461360732947116397302519089280147813241968527986518625397318360821600812934312749518512938013481443469665424284851079364414118235170017724465103267422470588441617869447807120293243500305051291423408271765449458710864181672020644720259631515623764994825011298193653191618816066297303347759051261202488024578558265806985112823234769210252134885761566891858514086658742406147596247012199814832812296063851016074897803015290194398297189090900525385072900505804546274481572147732838653035647764937726292126372644405295303546728696084061763945755093438728622892097041758383112479887227091892641663700136290845597259477741235334413039706406387424805194168540934465978697037406880677610216523917593714455787514091446523215486882604502013532058683575300161380952180215189433886296342111154495695725404768174127115938068278802354460541791528058973998600511898204415809072602505245373880742913158389711490697979898937801176540276260092254146959956487485788676684332934866908296876789332382144742306411682940067727261141237128976983033886953022537843920782125639105471123553906014042125053576391134945769172215383457043312299770678036908261248730511885654464135292782874779988866516234669444139403823559913971850126113511400553260893472508016931255087917981351941776603714127510756175974006380480128153553416348787896972253478549222121158421410897908436520888845946533764499120731582911384970310799322643050159370524354965124447058677844825003497482091780764579178846952254682656389056491713715472682874539617949283701113965536880490418397601658464690971165728419394846083458211124148536538414493526293332520142032563618060926013784384850323512401866247869312310983111699526155308231693008129783758157571398100112853184356871206592524102986946585308698337127312906869005759246727649335232373596925047346898263843648851374646118784651062577033885368507022041952693391404799461843592771523168641515872173808262770032954470651045613620075568526692456056953367555999566025597272057914882250747589596027462855329597296907541395897059821501879330219317420394203404227936019990062338887470791289252306106360488943432369368983883584491795205512442885563501233825884070649160956860712077656539704916015404720544353845636719379326487942486148681755351840591960272458950645277484183060419278171318974120704183539856378617849088271963727280189649801224752506328326580163063161729169455356155766595516542731926978614830388157436491854074384503784285182724242386035458252311409933545857140343575560016826259889142479475602837478637591595405457086579883252611335195214098393758899528535042739590151625681878385191278271330357312310073222588496534462194027537731580826749133878014420852065774338581319590694875172864211082896125278523888756850013595155953529977026435509568478283436221621317826124766657902029935287622918252308203619013017329873749961839008530223930109537971173409201767463032374632435421629522635333021497300469879192826563806801092994164539886234304024514939104080070940455448427094414746401143320781615403926922984113050681823978331967351594174648187773009989056375344206983660966597273173181816057914626720026925819508097979852387764238767246478773897884913259538084508936739962373136116230553287141724235191779045350453763624894418929679674872161976283019744431738915477894353798920563037739000785886158328937047523523569792686073837910998839516825110331912897296588542047591871362274133009138541247757083499150533088257374016688607888156175699760488302063479040734075956141517408724257044905585287987004941097372449853438337784794120382997857752610581720106393488557205375209882215198711716130830155702823645865463897404445184860166803049721852897492846971814659687719682738926413814785480930918260443633209724908834595126792752531957314968360730208477447084669323108589847849412257897274077660856220017374767432645585069323651750892278351264996184093432226822595316572234835645821510048777458954691177690783974310637388431489576190091200185651637308756608430740480243385655815834781938562565566976306478161222703453124072748459249645234850376743641481683781904971307686253829813607209808184873073936052739094897679428318515032581637952017403719955142193267231976648152027061630312180273842869341508049283876329158660031154424387134146569389443409863049122407292020188998678371621368494805557455839958867967030258301555124677755434065362770994043006882668057307257420511030285916278786579056077079148133442490258374734502374546454429257612981731942279912021688615591627052717602190486417053974495082090975816720364653303680045889293502676052198611899128873595233057617830069467027635613177848487792236780863383495391951365939174447690402203593312544423040283140061690080698009982030594120422254698499060373432367079934978683760256636870756112991514999263085586906088024114361517304360308618069153228032760718501502652361520732800930224019078475884802166762233482963274894745501830077108999471801038113012615637525877991684332464781491958954082582340684915284084829571203193023813168276623485371498818261126400173764070527238824304716893436129002448713572126011690353842252788934157984723677520615066970438407064884503500992675410181717415843144829648315455728296685600502346315476795710771577331755409500822602808360186058350981596417852264119594077859441651920500502602253241318141287251539135710244357265865968868242573796624312840357263979821859367030270575384512720361904451242769498096265441735362704062853834085060709925664578291023932461603367702527191766805811967522723804975362066718737721817776616934375075566434573373131887550057220062353736657749823575443065983390889576269020996353759272966842034148472072646953893718200008302129691413371724240263690692599526464427179465543206488032975801133534244627128841582205089077604834683433562870390221872214379740832510145330253423316432749224155217716469557448658462522407087760814208026018766788559649154189389960940234954015552500472432552934837723208412534349449346006312068745328342575956836276649581654438935386622003141023581950993647388113152525644158772962690803151453873166396663145835604854044866837519825523349297295854672311704216431671255078745292130164780824958256626052477304206625331589650777065844307523329654779388273037245973737179639032142155471168694389417753979529076495438309676628953185701628655882062831334158982838696122678416011871222070599075480777329719363316717368095880012327467296053602800382794089626142530623231021572198793595005940391500662206131610010677036327026073838756407658065317344291302585830001190425482240047656009620647308554148742202225423214187044131993538039784930161184496775851991398155753071412821362609974842248148682217797326085672466154961759503300008856623904337115333554328304895908915249273810576199986091287932347963028042066649892601212391299878488156823198122163863271257687312324098152007247306407097818392760815191095890544589857191589080936163299109131314070896879147386092703734003920137557453749809143452470666175952469453318876793880377577301700588767965099550686319487437250998838896179572836052816110533704060800263800178019690258846666509644079828863364124625360749980846161550880442099353521128329074939507733484573859976147162476253361477796621000524489558810291802495497691383540248462870506999388701358761813603740277656258130669329033316546701906271315114010596738013367551009162863026704772921423242603993674931111103479149192519047062210860581616375461756207030394698518674612371495892719155187121859375717752594533288496611470751232290884879041500980028574533204291678154546551175479755260869934114840358396631367765862887143914579803781970028753676578686962440570979025437394041110158992347996961534810942983127359008456870699973663692518725908862190111625671348916228517011737768449338454564867781487596259235509225476398818566827985459518604080721773776281027908270388736291050319630799291042555820030563231074458008782328990260544344917266018476156097195678640751476704779862212917643006093428823031177897744433663271264635098015491932487339064769967528341044781380156162437093683379318114194077542950038301374640879282294826066576739295570118873897897307252982899511463116621128272370463727198151659333123700435102836896118681128285618169335825266445785188277911008705154889505273641520333804773472123499104428900327207569859401229277383972500379812142783430994527029637864265995904910718355945542494424518370277106715559302906311840806404835029375194631541237890258065002776363257910771195616933494746679200572960699864955485760194784488746757373575637935642962734872471752296287144944382474026693823159760600399808859791451176464379113608162183197403443607845593611364026776176067085190963046822767969658406245162275731354828835583407834164543718403711852095045174412985332503406257846180634490504512151492448537774995015622423949596326064423815235200523198856383871156714032885100451343237406253742240874763705772528499113741908792131038395745509379611463338584931356973848603919172972639209022653724189996527582133731381950679330171955296582414706635555325760988212574484070337673673693771201527657272067204230588027936263951822242797929275761723449756794501873652591483307860691380084008382032495089118512697779683828841620930273595750744256649259263000378752318577031295106279083127208385210951547344108096208088056816362680743178425581500443823290644493391440325505767290972727753370538536622148212316857877345532684608263532795032795138967974666610910633986667349836706913605801669600480615069595914520628789013229928512297511114713677255646712571894435262497495035885747188729669728594021886552005998782179415255412743754643706007706597407487689121222644559014626456731264365517241883426221003825542583599921462292982243734014099880778597926780238259980086827357178294418070849893762630827573275454470246120431777979349433852422291788756857185454907271714212742606210742091881787787883999368908303928999293855689379967764113974474177397813841888234187258953188585526058207146075677553841534409133066081964620555665506612526241928487627881457725460665428710365236343304037023738967990621782257005438616589532194198652255963190209787529566365942732686624040348382621212047708026592468236455415558380786952128414447352041305624577065826371946530750121336829248586272971814811876240214671770373531409734459100605508735156199201114118256682572564644238578626093787727649467699715104109216395496285859709314304189663383715261654109005425402013766243424311317865941232880001429393974322112699377805780504290466493346569851276585343736481333655971857895398452963843568296849009116202010387542846753193162853291451956446934803477876265219938527118744762123903656233039286671176002260676457781044566606293788715324245048667512061242256066214111466311088210265266606375266652242312305353689613969288711054549943245601780697265490563651691618419308539180303429893191667416660493785527206783779897963535770271388862462802599151914513764296035528910262512102023780090396470499443792273787756367264594590411268699787547280260889362618523313509073678675768433046596065430343344808956724296670027437230727425385539879406641676845503698032482958708077622207119186758841818307686458992472411691985062535674904158621815300134503990879071509711534765490475305912869515859710470690405272255686732497268807899436501540918382696611165353177058316353150904711131599445887335347688185459325774886474893613887165508344515691392490475279309698069369233360537569224319903262227924393502402869361241139750934529063990238589712665900655423003330552945291489821287130907858148105864747347683436547926874189252315853913575398023064524366289246867168855105028106144123831565012635230868060911614771278919282939080735141779541526615864258736866037445449637518443187029729696823213620055805980393920697390102218646913865798282379786421543863008265159421880830327306851412206842940405229265511053556206804875200487855263380988350686740130031037165868543723558487535661659730547585217848354088598582829365086007524427700015456830189442212130416942389062251281099985830763784238962672763705619854744535174162947890538564862677724175426090367237475863923204600535078724964813823036206387483076566204180970256569381786024057182625984912386762055234188504632018214601814000577422191260942598204910588647485027329507475592465799561492346079826066521533528435355155725976499689437016411102242612897014845266931370734086091516648685798835084368381779738035958549710812369004441693300882477349803751221768376563744394283403738672685017649273028500832713190156103339988178102659907346196391841479784666494664559970119096444650770260907430497531898057227680794189728002890711758555173419183086074358977224798160464442197888742572133153565680343476735834268038316385164336639617421855114691310735524305530135967227022264289034899007312724555390428941805105087152893364797050546667317182574818445512169477795006531341922032741831972125435237688452668849423560327747102605699794063054924588102966139011637742091177256014398261912241886103926397739693173020131221805103778514334397820024019822257809061339766890670285909557286041884103541816053765195506015461807406783408922240153678650113330231983547601348270075666806789942579390603556168315735010659717372492146825689309795657423446240708398412725900712755972553304549010905549850044251329376998740743028390601863449789594243964024065784328102144374987502342215440493449557650817227194740235432107720283428527198261153199382801257542402990817629894336241593481665685230963153978854844952844588553137483072977007529356357648189653421309565243794899745233175340785073518004901254865902393797810145041579193412911197318258675844491618409509088311468551613881346183985678623854517191797956070026417832560597826346198784142408140919124952830817527035614573022596642224540768064174182087175543118291060607837663188760027468156843035066024575506320276477431076826139591508536465203199496449395991898986888401471294940268816074822756601022953206224308537507571348917836492413044529843546810048594531533319012668448931410472775381014379438328298933077986032678755366138292342435329923830797473343338793520031760610843294765345892579111561965574202334790847896938771894963239078056497278976107519048330676176610626801302185559434152134319916127194909947019990433759658222119957524783338180397254506655574202198903460358065306502515632710004305202836422522060916386385107995535797257432703476753950394313671299053881881298716980150446708730073850491620632659317061745964194234225490768680744726446301367212949337494298684415769662728698305667616337818385238297407491479718216920498395758768277829354766128806119609006873358146570852717728396398493652461543073655362099092618150118520321128196448028379862752273219398311854613941289245474539123276135112800806730431752120520265601348310986293240796260139469053759522628323893824906136999697128564041754763786408423049377213543668892636181945957624255579134574249381382974748672051778083441646275353391808201521679964546588145063497336724819781322129895351568879040664207299843243157855465827182999230532179022356399045099194062616537392475400181610854320237903651926475976354082106563540811888929010549487384174102404463204659363952238478912091013320993918219656306867130263227122901696100396175416762519639215509042549193895538309675847232547946995441907276378373329030339923902960836728649740035973207532203377891585721086476177529169824920605756664537452801203618157480849762743335395645259083500095234522560760276997064359608748539940529761277972823208109325112702838140356813281816972726294899265448918125402923860176278671285855141115242886029222357007060329066675435311455558821555447865432442835279122848183910568817062929742234321748141481821390386659190491290543174051546153310794471397934461508008402756723733121678811984191136631358877959933419745537752497023599243515230059648375394842217042936684108270043105999144617075360219419289875402442172708264982049058345930861948502334126790933582444755706016140520720393101930038146378025843029794885425482336203505148159328761141876401577386789323738989553960545772492953508356941895616403839239948780817315063672521678808792869803464487080474906935372153770879970496638811492196662507247078227656451005435936558225171549461802872234656959613721833712416444120413866152341672670824059575424802130698809501047293729950085964671056242371497329526429436671758312321159556237474185878271126045305327306724777125699512801666892335167175253458617058102665251679399041966230375985457881165616978310334775580216714528222853714838436519468351569506730903547259833940814534296801303294762705866749521211491648819425503822724811638945029743548617214720731416288284289799342506174956191583146406252110841267536390517017178281936391624979489935283166238336317760653680046975559900045022377955352604686591623395844411184594791556219183703809491985386005801669283400728454896385403196917899291191604146279561772772587664318695148484192451330801705771206828739458175196547358799453827014297013937170881152266422344923296555626269334161114608918451713737657066454186946070190400422356437924309270946983762179517907435442004083713984264854750654109406631545792164864196597831820823473182049789958121212779481072342199014572896463280766310781291505720758662073126432320570803377336990627944675182834237097841921858382939952091506260957594578330694579123438995856497957315698252363476307316232484906829905308605625633181801089206723645748013644412882393426800137248012316233174141010763101142233005082691098560610284331458205323003420082862931592101989156445692987097350724489538742669074902225957931942865364301168986056408755740980994510959272114862660271166052845037088472219637199547251050509147673837653097429919866044603454787441724852621046102557153253150858048745868004657705769625300621360703563155570561528250801933010454472603635757005926520369092911369669180739184333698932300067623449855191665366559675189158195903134228007411932016833664761174323840810210800845088039842506892727182104634928351577118507378113495802191247765077946541652344991004225666501046805066415998517785160411060843515570892967253233261184330033822274545532764548317816651174701603195447796842584193317115246983324245390315570809172154217914486038358960820759823666913476650158522794284677111155855559347655449691730736471353647133194264616177254482250254707943440777452053594540626896122987911875947801669282876483692160479230053053069616144756816536436576950801317648610582436424455223415095601248301584574783058030072747761449767628846505044598267448047889634977879654762337226830165834303400775673460637118823468257497258186970383968795545043328576493566108152533082266836215676220683977312655216310419201703804359782300975861414637126661849852597339932634849006316322315878573522524967436064195854712532923464610933161387322136850111896743052869026679116471162802313461659761965574332884068197908292182929661392159153387685167756772483927047600130542150223355197472173658575619663930122181129976739716696965123503182752806407065282154494442321309677867830289484729579598956838207757839729333387761788079918214541003372405297981896845145686936693709951754929083954229211560453056962673689818163077387990432383256020041086055139580085975084822612474290192217323768275546025976594759859452690378519222312123783804990212097134635540682253574679077050999001868490711977799098806491398723194842057575275357397916661485184106132562162422916787861792479907859262577631771157483085280359309469705561921135487735932638518608544611955371482942603388424199672589722456670213020319241797618181951297351436991775785092756001561721928022518642792374499655393288987331425988016497539151310134538418389017569386695000644079202123385441125471481221713500982478882680159314998213567924102233267245943167711924138846389757112072096837303718646570650533018894354386915751981227598915594352065174546267124628667199730176636791595766694653862264973493933055811420146029638785952958161499965763948388513886850210279684599863134002407989688683026184024788305081841805557883486394302224284477516923443926056755162394886839433889173311162398459428410028818371212736679080178394709958374460495474248782744392548330515651596175981054996013690605119044220856640756678234436651016816905817799720154806344165146271505558627636147830425272000781624527824946158391013011714797112791718330740295446498419342656671498263226087321078097941724973190864297113492164828015182931166770895020461646997326423487166353391917512329518601117651747864763415262221116903769349016079899249527591101488285580739074147371853308781926125075302155656350537622265283853697849019203241515408626347053603852120256891932120518053024263487929118872811980279504066393927952920467382208656571552890996591533975846221697877769250229111112621437708193268336413055641121498192426309661772367001570143600772279868913397617924813979598607595414011183765568980637001076632263025299160476151810056620700750852395315461048456563664418682714478373315965957879211144061931699909633134460241676843160653670812772009561825308610626781892602791218129346020625317530327788226089616161136339399582946421078089671652727508413784397895641895647967536013173212404464601565821172971896488496185754957697069476433571809633837744445047843500221429691804060075952014450301785567665863907650193177171179574432107623769223046770161019223587951025218553063754898837513519774344224419494371773442180882321424658103119900494583431841200148917935604453748066489714569480820547899067391818177207304603119138214706603786179994362043135501041907236045733437212265012339966856385785676809383453758157690091064621719496174498746827180049197977205536852013527311315985858372435640689397389492968699582299418233207446928275567306872059516163165862973747578291470988234074068324934968251089884472995246619325196594786210113876378356371783949958332428715911551320718996594741168204049122366749180233725755146058609418041356269071070250791487454028661593703806947158196051215059539537488394046926609190352705943805997425318300124767344367184543389934721502303724944840389821688595361973579022904379789986944097579521526565823794298087832148672589249026581057477310180831231937522664730288369845500915783775397368497145473618753448831655954110760238898901648862643837237571501793672847858501818021062760942105258459857480216624610849647460975364281199471176764407591680701884778633505684086529282138261152222824296589467480513072821200909168067716527035315683387552489185830696497856310958445668564856866942309119444296394591824590422989676809410807284141486917571075514886831849954777734345660078091565814083771024889688849838966218942156302295319750730973773690711413043646759450656701623374965380364345665875378107668927602941437800596123634927049848944869900543908451417393329531059532378720827934057930601149750661608148382400790473322302776347870053835253090815303876909862745542115108719795805393682382461512077669596636425378730830655373800521709768536935738574449949669841209383230197563794969419342847437938908668824694686594165464320599725622207818282987490707864627671141365129554665166541305999572393949407927130757428487924330119234725718714515312179907970021292199745237967917090919315011859905267315289938897295119017768243864351594918453202727851661306489097400105707070836618438971355199163623587981006123643638570776967889119550459592012016504945567183436215070651549031599564078290208447963095662387955572946429546960860212636691960079701522739140323190320724808745812441640975513248531987121033511101695213888853220353806011549363886623047405296751972501155421880195471925436312919655619946957054343958999791252309510789363837785806680997478341048496438936752532089391256534161126124463190033217540452772219535199443670961747186490770880677169763933278211204320837227214794542994716032032910490074125856421364475840022018946718287882492395785697508494043576560576256935829966464641334892693457213413833963926246885751633010221259768670806943394535749293686647385335966123235012816438746626668225163865868486447003910804602284243407895342627040168580978647193137808106851826803880047703484369450449843762023039373003973617785249407501729556852001069359820611934396513559211408606926834014121031079751302914533234131001381316282197287222832150993931737128699569507644566391686445300818248938162299312147785776028911517638633597045915983293007483517248034418775277128772612896887873400184361360512611632306934832518467664205309496961968523731910798302057066706544024622017307840902482604349738172222642339355045643920431438084397079293687102903453306760137310435894247122824296804998368223277490723635673585310645755837628408062810502880123180040901439116135190879386908609721563149736680905720128850446548664739816588198732273932630200338977936778436951512362644377369503984403595789745276524558545066576454894125047916545530948650805644058075557454044732661071036726177709778708024682701281610622912203016219899357906612956702214277960388163233940244066450457596211941480426116090557293243657347206822770175499312779677763982123897918679371153203450577606424281308959191605033682463819956843483653242811231909104914927513730806141184435390481426411458268894293047975752213276782594469778245415414257666307321382245050520584036883003332570588774967474364375869225329776873078822450254922678716883466269860741407272652867106801512373042359013041659503235248548921561301444261113346408508501319151453945972925104891267682314380597693995356529938500400356848383159744024917817958274697973069743974340986723849744819704757740720799531989821551156439203724725190110332000951205921991523731671464080712481737955522881186114060743228369174882470754701120669130971534651127698935712327701779608149402888361529789702062683321291714333312590081009590542176236973551282074935133284702244122272133636013787397250097704927295230306668658450451393624063057017065777593800868979109493519557544372191828836571715421570623047975824340983879992701385629261054376241365873174936851432645435264354375799182765207013845445776184988842840233587497687050680949938919493302111332079758533636142968948963373765972510186496173290629687796309375872014629949822114835007376850364129766575229879822497090508105561271979662003706291870002136152987935317016757647966882493800472093642436692814477855628130670700652276621227904038870179006648810092946307641486348305764997093656713617901385543761587657338033361781468730958548241457213964038610362422350378398995715115601512329202392277080239829646079432106638258885913212031339255550169250116641972080238323294699024008515466673784169311236515659526043740910798608640675815367865418776179636466177047911897309099029734903143448931691538691390061043881224123000748611927462283212593879882498864231637565132414979856063044262159342269304365238780754218614162681943813968625192026015352389054894627542611884367877876259263486395350664416099195833174489139011029880696073479816416891025675504662150369193015421867176499122053874361931416291579810577899103294701704626413421839203334235344602566123870960692882918199798949109959815640665475375053961493617817446544714076344696728427351135882819286411264153237826513449216351544371756769155290893901650468530267222095984768015488782693733906929023932889925377293338509658545465040777374549626618708341109993860936524716217828755619638006850897653196990037681669371003974857007372143731375339620620799103552936548437116719398269568550486968851350241127855244858423497595667737503868946789371091952533424350480340405330535774276599680857706380605142633636496114540982205224472155884762906321444156266078973342632253046374539611479140691512677565498327575040077890408140643788794013540607731429168241376977539809717736129113300495195144505137028575750122999965210424747684794374783888125772106569492879521514202893103716708706567645050857059402303877907202625559374309472800229928813054574092832340428028852742604452851465872318590569404231319332065080418590848656323326964805179479109540256323038512008644023366906779682665481060792796895098742837407049613357410938233324404023619328546636957541822712205444624208154018854087060635820479151612693847180140255982101437774812868859910075342153653360299632349749641584448527456332015670624438430687136980232109502704627697264637268757792682819803772271512718977988090827350629013672192082118694829184963968194813799513411509019465637695326164573800007595029668279140049709434083652442015306570093570726630969242156852800955493002717560799431136889641940056845380886387918169706937667068741590687626249644747100496188855979695815272851074519403421777404915655395473209580649356262296078022204552054699162199401087542574418485094652920571511581560478158981890782935356600355843593081492479588582622606379706523762275254850509834565774146362283146669520150759706133884069375643460567017278301159396511456424496259784236325492073588590722736876637217746924139057394968097631654144397645112751314555367665011476244512721332086637639567054929765940501858421675827759827324645448474070453038122991319502896394756752570517918056104378729264506981968358855254382135610691931818780298907368702369598792488668112206006615227950953290071945081898904269056608861646945665640448816116576980099385639360410342159941446575741905717958053620663567777594921380433437287370070296162684112361414500220650797958339412778142380830981905327930510884467062008582719901482835613175688691542702438975741975906073635764096566741396167803182766604187371399050952007854337423193726308090618258908100215113196851850302428272719724442334926745446136818205088799427864617691902928603261158773836040449047084787535135172586276275267521512674767441146935490179478653022070655743876507874624113811141228102805422894141874443224265038100172054269080296404053977306130933587606026653479577964187526983892511811395971925514930503020163621796962226422573394426668199441937408192017106749705366998236308021823154133172041886717260353508162417185137777900487565424954424773011536105294688393023695238464971069788217442911505188870218047193008539224329118087802401052744107185470698810431242785363045944288537054827638789523069770231264231268869703482469782161681320760842757433386045867229454308059242125337239233155447277550837643121493223461950763428365682706798545060681660111656716375434541577496886493874988443073636547181678960288999965138235051694944745063838380500229760240971237529063377174292240897308768122358840986657034224723455091590845117693360431601626160524430852923507037021084306326216047038518440292485621132121018984211954290481916571125150378060908686441694898419281838641148035957248941948495727267041248291281829689073945352360426314836667604091294215416768286351555737335129434316894802111533906437573826746363267857839403201158251865497868618350641208509954802430046161410454851819635147445846954396409526469943044882805224505144828349688674425301584017427366587050183449978071569455875280741177018833301162036244384150754284231883844624075942270959230806528278482088569484732840434196139539348189716283245686997053701349597076886801773664389163908752266124052536982625010833274984942762265456890751421040826837169744056988369080947572214188203678437489642545970315782531514277903123498766932175772318806538701994844345873704936683190410412792323675493264083276203638743604051227919085669988277569414150045062664507246116400021170712861839035678410238078576812939537557202399137361202835642487971801655734848784259876580292693484584481208708054701950302036885280603510127521123842872536020309702203402116895537074187205690196474023325734773082193504790206511939298689216135484604970562656023402503229149538309330787987500483639534825603621815969226439043880440242375241368090694179253282648120274208862906392441420440947619910727687907880867211825745726260607880552295872029099602893750965821258769335433171442418841231786809087566829710722652525338744209889462556690342023387033236317046424023565130361686943431733606629379811764214095895539325950925349484362493423374359262099287341684502555629782492563876223629131203867470013278010752070641448327611665703656539748365771910363353729046393172985673108866376134533681108092382711909033162530574627286987715412498589747670241674409991547703292031680684110225063531062217801629193189168522190774158244869955313991327245259139545399935797272603913864546263949487351637478812717642982934515659972187335936247950862669890723843192190592269932475756953181373360305633247184989855618737896800364333902727015825350318360825645103619315651796646444128895441962039795171988301141759610646264596017814366351328643373717945765494989062370440979265525128281383223426669235620230877547639479093846990905856512069904989829883083191804416894946782311983124783845727831419265566382452555083740061310233105652118810554245122248364738769217773404479433631340769147112471303919479880607141425717407221251143902629197490291229916259770338426946949652307019583048813262203709934843360386281873996740091290852078561705388323724595950244199261842375120489305616110306111983734783849216885522186144256024859201686436795511048918804602184600947741762142359137275320158265150157692620016151192360242483028954663210139013188227807532268250901424206406843382305018595270934470030256988079600570135570195324492908187779602044530543457522262857921891180157479850000814793737175914712472296235008741057267229822400019630659761752656004756310781641627084186210173579303304272059016370541371587603258426679596044732593060539220357849468982663999189977675389202198578488555721430153041716500860704671147406823243411375724292234568773695960179992767596244095945110455506955389026129672639988355053905078831986279698224809851350532529521157707256820538416465432222206939052483668617986092670494904374494199468151236634032370043273590358588116469597901859068735777981908478421422844887143197929853233376660311253782228289348006286694985902990718046537975655828719907785543857722432333086710688589307031901181384705417409527665092688523589238253183391243748742881154304625034290608893585486526820744656355327304613611747468617911373154564726551635311110042852208840838898733348979057275317698746611029614719220572209339889937393580627146522108264981085482680671816361159206019912173188451504093977483856884498099128972123293305146491867549244370720822077440415797892107566811504125297576827270992504435859316893221607506743774911474128079564687353545252562276026883637677158555675631484425205995509110925616293233951043970693488189809627418373279453573148707933433957833098651442303385323504459085749250002834540329927116188292996546829474788553402555555769892191118057975801331388772861674855283511388797214298915914581163105032655890286006486499357267638738027243259882385152861629570565964892644226740843716324907416901046489371301503882171381682203041946718021507865314284290978049964435213808659219822848618391995761965384408352154110931528187848643948650917182356276533168337444008565809526432755052417726645202174625966476153530743684985778334451952226650849072253017640937345764893345799461791933978158159846215423446128417688649152099842355842971430236816234711514504504163815537442430032592862454321802940129110651171245546727612691554926771252907585825748016472181388613538963163807512647140067998122513537772489383564789915685342185124624841627513576350747264750607549919597111023584512404207570065699555879680448090902086577061229291744264345431690734535986931610130122398655868791899723694948819030645773320106334837373556317637224893381354585929839750340779803698868715218707075172530025719354765711297403006185239445035797349123689892810471234697492499183260518725317537869276496906379934176556166230814755192518057258127125435428104084321871465314573006901264417217591226994541941593822763360320667180667083387895699265500648582833793204562588351272437186077592016215726115957235620991228291536756587646050959883928458671717057462610157627804257201118943348303449649566062722253995677212719595586696242370783958311209221035715886929574750294023775819476306672384353520451253023070177567882530469966900740324202464035346745088165406346074619783363600406597048092369034554414563338220503063353537808844863147003578260699709557766214093341261998365191444514784930364681914458973467016110850148362266589041585416043085814634456870795884138006944368712069826499788791023617549137197550821943430926123846725994201674774548295946560755703407845605098421028615417731986732959231872478010976996692349052998103334711344589665153307743938993870741830652087938322913609869350589330867665858459736283794169491447990222872885844371934852976807390063848204211434349158936668309526222430455782324017271926391997907922841231577680796956961807162952501340837190951380330864600484507730982924621556417154326770171330682058483104226054452451754246133697688982660998191965164510530155239624482303705267554572806899251566521992272343163626335477690161725745187514014979871529861384087803227926906347987130011439615373851446874353218698065271117731935658600901961303825115414941369054411652483729365932530791922145382561023390983279782921896334966927932906791936961003511881379627175650087693179662400371865366297283196152080285552409068988008539329781413514735383572829059726805048014875593029795955028043889336522692992292839612526555099823970242708275981187423531666096086141050223847125583599029999284270958128435006211712108481620469829731201276428724161345116912407909454090785303062498103329461205464875849080933383709346417858320515438250859841380680366621818096077085292602872664496924394128908314215312561488908404587389372978645669631616603842952963307887562808009038490922721735972390242951885830621255722261016668022941441571987993559491834216857615589235098076955914681169915645953857450232092704759516025958467528305638155149640916212115173369202075894251740277202283430457338654251571156073774437332018945491721185705554512937835465340878808826464627671831919226887041157957914825392413203555304815813934416795827579330923885600913172308129223875836514806607120356342656631656681528962141880142973009267558078466185274962757282755175334709878787687374184226625614255318692470321801962085210967511146484594700832852549493915472760265659835321924836039464518372005852578492309482854701173713613855651750068049635639775266234980047057927971459835425613752786446365085858961034441483626983616270399994389408704721535801602482301137692097058413927824119197530689876968546654857724092142082745616857805687587019398194744520036750075067702970191019390018864015336705969394339916561133629974038465335587930254180398005620189905125589721869028166499198020630556144641276463558444844253690722904606146160656299934286011146070685232051047459937187486355827440350643895524326458116973442780273580287651392409897708374673949854829147134199928394994554398231077181328222979004971040714132226608285068886466571583644627350629529568383648523713504247788160475453676092259567221004235244353874609777216814750790966615607670843533754625163997233115416308830439145973304960424668675431092770165267902314525074443666611246157690959180346983506697466552516125834254910160211545891887496359837143192781713697534923903128102557629724252916561611030573890223710386621250437462771758566295008313732827223184480760066192287651929415682643942762762373435618806875067522685339432665355963117930457470440944686189966832010172425461994848759113580248251409558082067241899354656109027228481223424322421467746130907788294951703660596414098674131091939324215040060201953247623776432459266142616183437370448902453905999097172725415670338121551858720413166332318350751366043875593585571189590608420970881925423386802545894628147719920411179251924121437446375580532740016398416514622572295941164687019297929397744032110327534009984030870648938388351211318698513995891776406360091670299559099870263193676474789529372640480025532226475658986488327410510464327167772806499336163853017389522512481042030377842413572181368727914933892612252455238245892929867451323357919733529209061376577509452328271461034108703030530049747343829905120977132663006411490309667650570685401589596877428060565840078013255510671053046863481037467680827580366350413246943536920185366418511523191533920034684213913600174938232551368064610135828088206933466342472279843007943903394785848779749669781819166374109504761136778331025689879692866126868385266306189487893282562735933538624894151356483988543038463362503295950716279541860422091616324100449216976739052867378991430543485367516864303041101328452686557694130884071233354846996568599059516358984862895438309476147700867833020558242332939662094095383907098322481740995235086613314702802312867873999147050851317845425614704175151364910339518455473287997171433374914652108866822497426824424263504599280535106715435546580678773082312882470589552005258055356984759991362185492909752226265772772256336339800893626294661387400331023660274157674405541318423853101609006904159345032447891616630941176914481982532468928170374411872097548840016174931053509897182504999324018462858865464514597654465552467114059155926606263793622430289241593101032463394870330105117328053617114315106658046614245868282879012877756330132017588557996752427451066371657310144877599578326321576129391867306602580361268387922543702209026311716750914179986427055501997915256778948765724759276628973843048371905145989246321775717507788477976221392461531985235139164045083656695723294579734017626953264546995835488245623768651342527550795797140376149052967879174459605454601656933916001136064946082068709714446529481107586532194455265566547399745039884281384016905286667241669781713498902921162696257731644681429937121452859895869181664945102001197257767222898919537592396409255573692787802522299376768037246625974263837080116261510018922199581968041074604467276348143053958199294259119760263595397054117966150633350439580983835389781670180737941315635680554654450102809682192513557609107556192966009784138590190970036897279553537209487085413022540688154856151467227964571488087166145713776505431516145254568855179176588936177149918715225159774641043292965099974073231568002369858454636354007222079656584746603259145390109729148518750807348309035845579456934871126869030244478426338282439420626614259575369970567461811395922632625037171730240413750556942129417168206908883352959062159177917577245592099316265987991671862478659698721102078188689533681896281254669738579104501657034367698878681574663334588905053234202218174300861682555287352722545808969671842180961405706126069297573581924889165053480304386959010568176713512224775632188972514485780505604988288645105102882340093764278475347349126086824674749102814788314637814404588286853482937870434008725844193217924762415932231776772410866042538713128842141248407405407099963121638276960392601932198412388960358986430446069421027179904554554354983032967412071267863916457247573829239314027194019007919317888140511891040413157471947864215799549027474510765513504927117453816109725779066323287266685387970877494878191188333260670921918982426666077657197536546783271547520015132062872059582491321131048489649410614084869281274908696744208431621727415614706943786060791040445666560777406886404627828876047503827678931656121547827723820560710468087445740884133848495221338701991546492063572320838234468501227951357151119437411932652078015911256051861468366760927572097672554625492611070642641356955628614021140037596245585819091309934073515264806125213415744306205864515542784662740489832372970565835920092082179395524038758412086606268496494753444265504869734975656802528581180259920299117362406542014995356396138015879843061195270700053646217219978324162871078346145809610877652676352691427493679308746144226936300019292798658089621775110303052647209295866851872341692374798818920728145075303649138807319426255999897626346956388272598125114119444871056701228763943868694396859516689689986415540088465954436847040973621903520958089163125781077113556983757893733456890703685592091118451687622664990778579717714494357096388203737270059421532232101149987545781669387452279432073349786364410520237456314503963865677494807736497889405891886919963434108414588408314311778809882825530127386503295207368031537257633028465718788437540112751344596545786092130163182570571982493535090000582007416622021487870215645485698890114629791283494212817815410552726932095513438362801330999250606090010358983536033704264484866780805856034351205675149154428840968358023151590544364415100610710705632019831593834486548763106531051291387846814917048007304738442879936752885672212111565050594018573535167447764854222235863025732168889054164830135797914125291689710448649995757606551678589064262661313642005171973821306363056116094350178640418675240812422153540344666515447038217127319268120110090322218891667427468184791070318048612542538468461453355106996669027018107448733675367292768397234072583808676720232184411585862001430922663205500136615561628546070263051692269194428561205858232580528739559238948825546596223819980083807023910967472590921559943630020330914719659124088249152262148168997200678991281492056004172418257411154133732895249361832278743214082175393997522243551967667647557964694786031641042919911039339201025766427286333177647630914431784849491709209774377618830078575245136193936340375201369586775348965607616645285912603040962359890310184098802798737975041687656776030792526888594221341391008800893209062445773897684904151403207947025299956956779401170605590569714268378701983317538554255868218328610965387557885628686994628549917733193606711125430219434266680642333610315389294864486934437226189401388215473486683486612108005749791694698473191283658984438725091462116131353295354010955644957438047155522286855936319128699763395975684693765373535163725928596429005435367396539254912223225811956535370335190543531692700491723968113810824221528497934170346028315863133650581899968028811216053648996237008413002317264598507931971009125653756165424101836530426856231561139157697809113398616934971299074292111303745500914046471648331242982801266864881521436249948791729181038822823581091630208734336102107452753573924944871869692581854803499792817393131202753410910462478184458875199019684504618257883483415142919881876758852481847200345230054418824937379198403787127775136710976589436638646967437647844436348706690039295255114801944124268258508143437668635955882932343485656552221292930941647007477134035835028742813317605129714130872154971270378850209740425335111391518516755964323418436191787206708474874964721444896308096601099787465790119692776762084823607993426814565309806330074154598481821892980025074179669313311957366706656620027920988178941770287120265822565226123384374157895791538134830903107247496029249496863862065482979076346834071521426799446697095261829316160852869226881405421532942647997691982688958225942439388313230950053773255101482440201763713412077070103765265353049855045804497551690581442376218448903904822242934854403966761569352510460628198272456684531454857936292264952666463905091842387563483231557160855299776754765947838660492343112725613400684090289243862911656685435699866858563609614062424291146290087290987770033746540177045201379783202939467353364740623944429296108330284201190342432868555635533992671629822969429229904733586623357531170205998591332547541102283025070905089768223072885467013395334383387861000671898132474581172874338929998012013889536275224863808380396705917850870550149180796209238917338189084334003913976283595983332334292423010951630868462583739517227060628680598138787501417295879577629477784533479330615683810000669524751334709189958336880513189668071187381662597639495946886857705781230188658821093095562888715322468434200769322828268955891914930280848194449343704471701548493828018437039476781066984489650594243609858393816729048873348237850229138534898209562677520613745638285679325242368942788995984036359498901066828557106950063246856457935139940290524426974054086487961222312882919533162640091532825869117541323253163819716663124388409078862302140193816927258341956651608733118036690380778044418336763411882277394060182570127313471350628057889919399736231539063611405781286719477734483403602742862782965998054727425773711597171278501796867542457454410908915496737633755483938962285418106939918696143868529798222891603608016297665540567720020121957224501944996172546815578597420198561289667177358515201470680643685802055323255254292567597685445541794226161451667392339421198424665832060391198811155646519327764130996665494121182148789705306304907404375691462687155693822203352512129503419584922901147373763808626087801808094300716891051626323090758746589207795548584135090122308610936888219014044899084559296389046810311832751527659862217087321793728882416248728024477578964026780147139524353790255686749597607272670132244125510571456022425789989859345527036012380060756968948614161547552399476132238852452286638793082532475513610514267062085222496480389414444141783071388670387594858268621870233131704895074522829596918452397771774521992612627738728540783332357712878552982787754565506777605982526596843314070329625525773335703446881205424258307830986525993939953986768273621587415119882285949282958980582113303265088702176865504452950257591876660346914992765356186817919798205541485299279832826418747734774184214960997873999732246790174584747692305360356916237499001905081737255563489447745388358306548169503158117461925534253266431488728370811698727615083045329425329490729360946050459765137868758700396932899846737554171459980545920493441841634787308548010033434400601917129829170409035776478087869331118686636492237177957773858106046406568461700308682938375053379494492562424593836365425911918560510303771598408127962499102992020487660649720740471354433217809004739528016264257812560660430785990267071794090134199860555677709639089818598377859778923791813144413262272629522411416704039423519360961917749542645931521251056962141930178941966537932665847678738625872553598384988517833537405449692551660978055363082731294105688294779289865041653416231251306476457102938210251796785093581974459292337046604191503600422395817758088766579261077836842081239448045852879431806956164174880936305887518044369513009918898170088889267577672928423498898227290404475531845203298819670252487345829447594854509795683876131618264714548427273053547038251569964522220876379669991063891620679338291622787772531891308054002802318723037538036894678108991067828721426031245031574649412059589819791496449668421217629293013874635468017160611693141813153120259114907860848624047225721081756835266263957859655924782293395407512590573877409540850658412540957753111434200008023152027214780091360846153590596579970265125551806620280787225352131239255182160614716809677244417393114549611702216542210481055860257310042366367814945219152548432894532105392275751639331723444660201600693753169090828902356718492913707315092275251994093809115100324576752244206631540624021996117409063952688527853127631288009668106790898423774867975289861229208649142923313044029884093316551347357111995505007613343313275622081171448248122203021125004630737798978319674642995189843924656878404906861966779397322144876641711024118858119624150536152321670283041977813083269548679223947047743826716578306211899630439079602908400720899585032162911181694506588255861240157032556596017857150419667949245400905392629926193628100152944445520985028478990312496839053985400451272203658755085748900817370156792170704945452686530616789947092348269423256011191291233246278798767257686816877521702910706782500206200817207557181000699636001228141851702140821492964823252755650079650226706982038992749801322582775095334404903956078419652300173618957597401018915108907310998290434312646694732193820069127385431481502479307971538963618910572914749380473758833537588529758783890450440116743206960072433065735579938899750831031008295877646244325584287222108379028171279270782083935665749946009944913995295125256993020729887627052161887456337830270006260684024153072651713482317383610504386812917244047909464874456597969914386666032728958050369441012040867750379178602513497483333886987421516654627848198122219530098191130517382719518872055742219188078277723179378450035356870481504458756529829729957607390302314596530924378404568698686974016569032655571290431093926827716847430113350531318314612843686283531881758158584240875255912626390085505420229107019064069537095253727101172430318537643716667405124900619352271053441631785831897377516969486989226836119315642294032726129406461112986205903985647816773185548932324950398394198779965042127708231605518538727221064611545059822949389947114336844757019348205225385266397215737383836006182047867550295994447000218334799434550406714164263133745816203975713648489336649687619324510031810850393024336906363749160022156979057847013182873298159119105998579019628054924823775573315681850229069318982488343960741213804357106361623252812275022994374294024798326380591391876001268418565707855795931884148556231052681173604429389474412086021528647891277122541119358663066158489802424673500004394123366746411960510572091053357392999659471699903216221739560488385040874828679672706045441777659893315319525410147410294131304243744129737955687476550893936535087634632714260824291023396819124104055487362243316082212748062665509118267033825113112832538901489244658339723560855402547432509035272504948808017487890913860054052374670544082171049137100105047582781930896509796231341067544468388688981106292298667923969651751950214419302697651218132748057824949968785534943797831699706068840426392693542101913385441631537263153319526908197108675431785641725158959852912044048935592695996675218908730196249981901814936362882101667070370347317531175247759393016557518493124843305242019365688278973890638204424661701025759612776830142066297783956205495656978000571522689991792518936494831836574058223526352579147204934069819162098683642497595542831220713970871875593985760309959869816470099161620058779978476628017429693760107383924098727949178418824599231650804248527652330980078808109207020979715125661309715530547607594184347221739201021532127096096636772340546570812518775227096226910988263852517573322900180149214055805094157690605936051626361996884529412026727220357601740832574599924661287174013934300054107226277746775019980229703688526755468937171209643462128921580874989798570295668314731650061863658107901960283245996992695365284273828365192337967871337175536569212288462622470920849298231089309253353664504705568472944413391025113744289190073520367343480860557902596811897004196814220722758656177206463817503578258594423654941972939348069651469686282600046291933734092716223565786825325990631041545089685731112883138449982167790325018082241273543815899679569704758851767236713984003015829745292779155508047742211327519627410707388097708834671509466088194445102598179794838511168467078405734617202671482759716112480657863346908827375304186253435566782532827369471511034443174945008333920920375464456453865575616383632984909687848067146339700122780888223256132226934866461428088801211232164246015394199915187300365733698652757542209342909204259516206900640866159671842572854351464695948486021134455640845481951588266637077869560271778586418633304947466283016723728119673022873477181857361943068190446761764967656292736265036085218673184829868933368900345425602456927987714396614561890096921351990147831237605204504004506796146791638029871592503353528860627208342307252959029716920619929692174597617677123710064549525871026185406679789207898933938282786423994684415456066733392905775358776623865968805149530335936616377565543374600962665223410862323750405113884853975780883086536580910931311356510533014399855758661938067985893987130860920472700645393361976769451907725904822654213437780647280702096825279362449540158960777672616990275251555709538993962692222413248574552531460056124615427251197206224588690670637641253537146688409332009407106929206136171137815663007962016478331036932776139418829240184229287342240643064057066988962707107977430390500436411453604947509127549939186081610083676039087815051314021175788658746359846860759023268589061222051013143556321380374781187423269358748583954890953647150416831982233663017812842724629782312192012289127173380491251920858423048388621402573629279903071278580465068119215673793943024063784362578333234392668377964957966541650054343111898857423151773900643096179051404530793613846789256650067523404815822929520124443133217145970032148650816696096059386978994954032607029477195009196756398706554980086236535846254472452755376363267003830079949602084454101806709060189253195954099984722200390800403927574695902062665515823636242999271699690644398703370199587123349862759637098409880331188695283003726648530800138781457948389819314590232619217767377527871334831877559113847506840227825443019448851728556699449204968391049729356469866276094579482512044233709744785432497558822848600621011070800064555489636680603964262047009428937689316912296437365101245223894300188070416580449431202010653247087799682158609400254399048358410235219627497296425667301849526843797108617492274559376634230629135741881142889789405564651882545987758656133393521828410697178093688381567230405141665464704039963072373541668317333046301564305962467716723970213399559698725014353541828514061017321429627419202722414630376884686330354455802903568860494003140955227911931729543202660481245161420657093078081459278750891321020725340772998932000231971504890065038388740323156677576011798074741324346920491043935189614320911788356238578700031674909626125962622211916823280021191009935076520351914499910919349611923797570160363245755676478194860506568940788311827076600108614978170601068820448578462150647112549962705459249847547620929147428128612664651522214490245861029231439391148995531182972789201868968336682411416514420256012621901880008464183190861949930777400465511413766649505365053384011844290886461851724935244724365182039818958946544387330556459577775237215772838151126355963373104036065578885284974946640884844737198990391844868733776668087634926025626684843531088842151977832038592923395871891402064116694800407162470356673771218469304552305153992922794977500520489223458967835830863455424076360964769156787119935814497811175455254612423482974114963923824425610116837904460997076711930455131455669411928467252564179698586049223138391119903564509841542615653041651882434969351460042702776161638332492030152164262836518346826456963006107542740088926845637299613797867079785099599758633318190545120368877058544675984591715455306394428054580989183987839483638929395692096999759196237849121014982397854307574377135109031680784618527004875264182689086302834003179134277207435241435319913410760509364553440644605378150482924386163771140338160876052471735384309650109263692016391667350410601471380312396550447922154581508288053813885589566865228522035378257374564001402436751961396343014555941291230487696820172682152743683782663972053314359604405711180186246395384389314727702984987234178977440167760499082290299062164755041937637310979202388082490604114923320726208695225574604649641994923692729471742752219030732063350569194526309154700817390249636654966294548666852281796229519896313164650346445145135941360993809065041067152607797826811739305679302168402711986999381416369201550495696929066691601545880887442678837026482375514028985095630996186226588258187541087043194557357876844214991115394744448966233376112523496190515578889545430567435814219251517556667894478897460819257815744774267463261396557809902694284375281771090122947997429221244267278059896895842835000686043914994880534886309465507178817773460465390255673636857177220666590326557614260662002016334047347746925725685036852169972196284062093417687046052795059894238846559891435055386741916520136447767146972242665016426126498042567771438046138388151163117763568427764619985695157424670488641861009488416557821510851619884852950490156817645050906913252806596796955145989317249353135166179000633411746863947217449527982779744358428537491361033609077896160204768084170842435881740378245907038463111106757267915020431322349472199290285790428935594875345467622598796699369346393628741638114545780359290309271186065418215376360770741449391948305874408127537302843203103449377244764142909402318578500138932545859898471742084592585293479728808792126642140780386940216657820770865583253427347236106165932847677020201694798924906980794462604751299397205402566716567558182020154594948137253500718661705614074660692197092235110342725928834838175540711195864317577530314478301607426252741842839601897938104481026640858262369109954945719675736301381266715385861066865482769103420641256559864756906107872637189499457697752078280618867369905926394590513394121125436294594473995344776302827774550692876705571743233045944815399604600863453597537555568097328341176150428960165130449212091110331481700865829753169073297932199962449465384526809189435747288892608157278071388577561825841297250778056870057930268082387270412132699054372967460762616947434797007282358179709557709938511939116001036668905349739013430297404040977970113080851041148779936239015443913770875873608496290016878611699260104081044650251244528325617125508482798680565516552525302735037028914669226361113706169771815320441632999012035570373562944862541511759379901814558005284226945824097154782931623798189492469827485412313979297707892644314159269594534472357703730302157332205700444198316901141125711160436059841359950342398714467452861375410240299002061326753578482729527151510037007225068524897648315305250084118102419616512025475984069818513710548177016716298592267463091649108622119598343394560868316867135314057152067053097195231634155429222169914671817549100180121249468274822420993850646251955439150905633584278703093101400833954337275012158554966225494695778117613959247307708505729619636768378815330461497120286370114215438134914475992485273354864714595311060889873785905180797888863868675923568946306158908199066647590271122494154950863392147519131657404505788071484798886247337767990652393584543779300371167723672197599421593501963538606881623212982220590368615105549612913635103792047186433279569249086341271820729363359468849088253850454728374854525448036129826885642586398776002487239043382565933114126321406037793376073287476922294169637606847193011670407776158214478278577116241017504279128318090939275745582859719896238427812500669146993332146784838932051370477264567173513505143447061217642951458404647137773179461862288982437607812386017880056986997629147398262835597253909151402964590673004482763446579932833443761126696346859616994874680311875536779551698929021472198600280374653546143156769864863014306634499680751729221731557348550911776040975494114584638222614812903144694432260578653773127987581269297467003834085126673838967634182857676897923356804356696003273918123129361605277374558466174601369584015233530296955181829554681123917136683955577504784024547223912106253226285160105241951010248847122070675718136716049300004756244915323106115736641918306261657654753442960758392827569638735488232355289413984152495750925313417387278979536120762781042361218635112249211173805468234694581770959236564247795234233762431907731231427758892966453912363033261180447504425464822097603855594618337213601296842430360734828662327603666863151379774132412198020303966206360521574617879820539038066394073633106378476838812773715177919677932514892135907182845819083002108084042194523269548717672543506994332212025150671406017489160650728931415571549331001290469501285436590022929144896359523985528405442636680564894737837085503410942047507446880908886199432316415607262316522043521330138310531999017720111049419616910719811934417956347398279558113287482089548143076318927173468755291408637940935423033090102046802705865774771561479511666949560360139960947296003225054289059874639629390943107343587691715801856676610750544969909782269562405954818651295617808462455929466805785556378365273993658195592182357180008913846103641642359954126040880920159051534584031305596781114415476574349597226741875888578415891187523849800055597800591607585435555319756960582456472467066046095248781356621242276902662430568429553909535110271935193454425585737996054200987723845578056147881727392043112575243911112907212220442732728249604905813332256464440905547399268821774446763046380791954194953780188443991041119229862723970512379729915083398789469089844076129420030880665071819119139008669766924863225756738972007572309753739994308751917284401732144122364226090402650168683362310792681639756174900076536144309766275398511501824098678812883708571047993617092508484781782286698082494950723431460205763780548095613818982985845908591213031720360061685141481608056578080287573383997235397392332152348519016793183047118392285590502887330224227942466970103019290078030994513390653518869119764978324781595483244176637882632999929761334845158281350132833194429120927074299123667615423482657996965572775124730283437666313127946522501299195827340235155233378029833642905729721127638527314447062711290527474896712455813045627113295123707634292542595028727430966558677129595688088084567536623717876134000640593008101551103648762317895533296603171100314144385762868037211595739509457342698585954978292765205074845452587322031069614800525054056782191437423823113408589695522675392769702965074491005852036682555280835271124753625591568656709749705988036195496687771307405738141130181150613997405167695170742340734953344698876773106706498008039628393877414694796266052513468483667271427094620066291651556241377700201244652736533217247873590091730689511954363969733085896273192891639802514531096391554408527778646304288590062731817125966859192939365496788176008760127828035428718463669930716145300245008393507296782697058317095649826258898301046723127277311101357572225897615920301445545819200508136827963885023795260633512992840119050545510801898281900598858712517565406059404499137522562104956106515049965508900816623071853172300459540338627677063310390407359947257977890881274115819021755990824025367952017076246472253835123149748397974432871677688826112228547009406555788417182159484648272476890388521750010408402565931605072653279561118558681711760974306109866399158164805703991999062204009805515790339963105272397061866047478274828510705926261500681268788560186309935284733324965759571928385750484854613958477414457988635802301326849304331004405234154569667621042143168913123045502953590723217779621660862816265126490509137866005585796248816776359178662923739606768547506689269267250778314114188254111111701827274763406239833645494047529290595746430806365146909731113873265057192604820037979483288380251759418071449895110843180838917823612323389192660920287377610145989097442382578678279731343794313094682456371098236553800945243457415189168023479481396064252844935014708638477540296927304820486108650220037716207470153609648899458624473593057941218119314459947231428150802991971449168624770856992333226761569025600564855724688131357312339674548109804018122452829543294157230688993293747679553121097014686441440595023958468739149686489161770674373570966166131592922652603056708960183201494097669003042929880301585115614388427188252696961607778030476202944024990137266492525640933290941167206620222385716744226633255283477168782961822640937203427016308307451575971311232995673866488713093275297213357096914110921259060584306605451001575917331565298518221304477428150473162588266823250586214641898871610024678045592369832116335641628171678238934935005358983344228810460094316523825615037189708705372618719649470945399806690737736598548827874804684804706302984609864521205141662178431137028895458869372229940761939045947513206311740216307838843895670679200755899627349404137496219959770978071000291641466144164314315768786460032578483457200520396370210659394300826211032856308299345924136416234988217674558619036705993877330355217193736138636132184546408879137151160550932936625909268996750386458499537776583177735209617017637133336374730299748280041705857445303977667790110406419915244838160134545583049918915559666427580850221047681935900764582975753401658361641497180480991147093371592482263078058330989738563451018864388068135167571910523997776792935404153212516868759672558702355166015278480379377630089685439161577763057969845539346326183262559774431950034705765621931771674910645406108155424220882721343345286340242584032599771522688114549325911073792657039206990921843052126618733535793125874294181475708370643677176693560823360763712908776504643416562070978125249101361332885689412275268350082631968919379614311786806418081049968193367141975008044310252337893118903035356977034497365639746210176303033951814889980106228384658685501329239007323353280200339704412651604464785843840145442277115660854323558966851241799574223038953066436941321623711744248022769962618099173466522033590844324956945917598812999757211982187182134043616266042793292768890241707901993530165675179966336368282591052440966724930864041467587188618653408242590680444006143295662427973880027897564036560391344766819219713999717398251421295099480930590186364430679813785061501494687553016054891772943903180581376187728438383941086116296786761420742721005183929514370677333557524858950309882725594903831803950367051649935933442025494883886427764256133774405986957621308882264736344637133974976313290242915203713752226403800978000437725682600766393319041391387568972138515026239741003325971555809379315168493194422076662633133362613353306871862417920600716664550931668294350707937212811262179096913881202293971492596605871273548826194097460269190676043216164376165617973204242563327432688274562190608855585717317277307865189473592294771654095831652433508803094367149346431030189063204715183019594545373731263174880922065048956052756759302354634875735085212735995211955966250350894974709657839671023660512848327395956348578539846351699104695244075142767366474868410669805267765508142784869587656270674869123745470584102355836185019138648474094201401707218393714001806668687615422021865219935516325973746536486307337990451693234524492665229011923289916026455019155312351681572443426780615109004521088526150264640503171812142522050317294429070387818350542341969910766424477443616795066483998456194909283553751237478888088998225235381538535525570882703882736635146035486298681176704817226459290447372917571066147413825989228108223135984006627626534202968120585865390251635876288633788797984470162958572342133930356470833385698119864247019341402606453076509866458861524467223780111506247269369619169594268889443425495615000449984789864612636832501190177436352269725097408581285333811783283307753319199213857592002254216367265610451242726882181348175026361341315311562143589830248411219915807037193056203189196780117801013548348041069115345034829422696644551400176881678706732470539173100630023485416187136090288017593903510848764626539881988350186966966917941364809890044574200226749365796439476414257172178208397720007614943308236459533506322213373586581926507024831087185175603782882639539207829403518767239188667399425176363126377012646948455876016183223463035972163986749250597275853076902199774887478009810324408270152275036029697732749627427024764620900750023566672342461273794833861815483581578630877565893173234963050296925015180182271942878555642837099594346666186414030286222986537755439230791638471036331464343399791472046162525018590121344909468610730907481727160739376203334076718314119715385290610071326681572281177206646986259523476309794316427271896676212921045229379168315647790229255819787784748807459474320850588741465009101905048907088496970614762477900466063303957860586122530364662391075548876587472246449089679247369269075099293892738068814808572756588779921268087497741792282337360307305036165274199907611083261086703641137478636668772187176234968969736642449857037500451591748399513097414888423324585614278305416929108414221186405595464862688042192583099237925418200152652990235714543529466028577213643903330443037628818347657294735269752430746153466468544429628810501425498173250441619842491524893717117798873510396319879504063447598243055081469086002073704363486665878446814266695578342886526265942415340019118540696206015105000304901503389327393958954273514736009790539711123141436647249401357199384729588281919267689923590849710803979846462562781593625933466836570302648465352977151155482715582155102892480812636201634881787327375740227476278925739935549148850886809566653236158865672499069814571614984710467366005389464000984465805360255611732122742634350444392223023222823495220627947841872854489594087583836378276240239514459551157601395295081773667059670797874443367105231014756581301574527517167461563589675116025588525781887198467306011113421548401769240649116260982235201212771238120505522346630719084706968310833802279579620752701402395222277256055354823172064065052730110166810570564914799776070978302401645862392294486794690830897981664492748413310778104567716322939157957278256467263069390856688755685624843538150566808311996230160690541730254664958257765999731755286864909132316929894305145371244125757834393664166095377883484926042170753252289484099595869130310297314058595132790252638754732932578466189568893644637409464041890624035410091575886657603224347349284417477367228180780053423355335135384237279457070285792742239586986521069547352758203779899106343097020079541324204899441496619572941849873977077762416792694628269509601533701001931217647310700726285215465921539305503367148228231133699263923758342391505883440088252377596364596868392606430395627847676748946623125167968822783766234552241353508364037660714476054449093094195793790738216749273478631356971380465045469410074355090064272793392206991940258707935324035670832626867573602483646824616036233583637837553315410616477265641241571953210363677848553895704555703173590229856835186263831040253933826819070808056197417946140352049268462615726254737267115857920685441991872536956546409542026087018006972188393614522427186467804176021761002486604581294497802350089446625147131313437984977956443517703866232322073135002898688008037597447638213986349285079720675467552187525816423860143003546851922877341477626265042019265617261957256729200699485200430857251952245208499448509925506977592871060524568687244312794950270895866529677782065174832610791024941752011561823424284064030969707378036686771581047223552928961328977476950225839484151511667600873030505203371899436828596878029225922231658734842625637600391380362061196601398304380425910776750255629242322344239960553683713236411739469872986840555208908522870684551917019170565701190796084128859668232248277852401634088115764364286454153383731614459659735074124769502406078791245138123438642293988957037865485399521294004814462134901633103269150662198333949431903278710555213147719606479004497253573996917772924662570285839683733050373708883586773642553730151048590909702462488998874908580984342654943873713729339285817940071811620702175617077531088664088178301945683956239160163091098485499945991931137054086373436173047567842244776025002917124979191112729871115877147954162132146906627261573881182866029947379368926504567780335135814523407246807161621689911361508444074837201401841362346124541725919307571285359105153906929051235289943812996111660180871109668384805735247571526378189617167253555797951707354263761408248877668220893975907797123324842124763600610819689879276181255986770147844216619819718093041128227749354301128860055333862478944080576477975630302155369481104833742362789779892728387666271036808911579532930993283532668630029063980780360840965709909066595406188441198962401732953158270828502747757733910881970635965223423812225542091054268330369577135090191014955410113386542604652867059678468783218249446618111225503991423293320907842575491209829650189965254512623106813585522761585079430957480550653475035390259783753688697227481625265618624992380094684227224031157126033125312418297605638631052021133807629238917921985519351572354093922094240467872072963088911396076307532764597231770413886097525927740399351425583043658493150329851309987992594441851118132717726743716423399580154984099743185400262778738846272291740041792336302382916056564075344600379806627731333604838089000489629651144936035940882836015956420124483204016683845544919959705989717526127898414321450052617220580362550972054568016346115190500444138237833896755583875170966493278776513701232648336683711305775690873652740392756502124057438389413377503923323401980757220082323536290568546084952061021235542010345318050969339348113530351985973871108336619601453192726575799035586704278635603600335157334383720989472769719402229671977013561547852092444742149290476216956639426959307205741577390552616412042537648232653248805182417230905614823538719799994150415966821528937096992589206634869417086326079364677639467365300487423860721510189515326669601277937522617950035306151099809251618605517950089318311577447159926874154509835780125952974597784518510211579926953117875644335821471982808579870312399273869339739576915625224686681066883565376232594630218879675302622788387241078706562756981118959263777863958430599208891739558571325037812478157886757610786467872859555835012116541743670120392883251742507071250636978441321405500678312963236042417875207661772738955240613485016234033977404549747053879769845547644180189503814619091412201635289632706272967754636520698561954783685081529683584632954969238037920064576721962601222001928934834827954511000602791391972197734266101241242356146773758547345477836391853913705710202235539839898487959485341020060711350274977616709068079372355405569965402980757010889935654471564524676033514702046087811000710827567382740867977317750566410568973293239241141193399710100765143690679650055118999633455666034054601303807842351033021927931889272612917652333503943173788332553490278654379137996216213633222563172697846857189671600635374905014718344540113585784598279460494410759378445385091009715685191346597437525139033618349579576272394848772561306098232152848474287498660923845629113136810505974887214660256232352667928695640284280617510302789156294851292786769082184122270279522863702104807594889532131738682440822786269154883350032464296838412361912109491184273903521465591127305779031750772111303110754613986067261257529569000826932217219017319935748339536772757425228831608941034387806047702452316516413009405966408363882097639677669277021644107318170711898617348786055393017058088583529603912340976025156305273774730020297561414840296669704588515131386118599395012828105286245802056050256576915407340956062817875976516503121364717497039166993794558224038930921714743730902585598352366879433640044732249730925555474530876417194815586134131270061223042557999574451993765727550009981969169575266993055131093959089228210089253353694207136175559271099077175036542325416374179761255662911757807643979895181926427682883935142206759798140255719527834729484604942294611745447416357945111707620142597661761705825678714488872319125502736726017523634920346924003673330050399835466408025958436280644556973199110661011801972026449600503857464899716751757725805413050475872107875065177351726049141462714522822860522797563963821479443140174346347617962388051438008084240999548901525008357355067818888401038843289291697205383619812589368210433200775211745838333331598813140951199512246905589632886721794427966807760846628689251964984996576406819194662036470013517858379167945982166660687279106424755074667098474830252106686399170147564145708793890385836899650931570778732963341316704140942585428321985695490130977419600881955656969702837516282487467657736735508850029395895704023732733268716200398149545835416958008415188152390048555128231712707993995540894815535646939244481230169108329437964127608263324545070029275286000931656406914146866253848495535552659840689434377867322845169040453959854054264416626085915031234812365786475708850378090911787520307530502150042440530645730858976151745655926936107173880293618179062565690933489218522754188794345920806370669522226761967746456360450070540863869750120486386748046328790901993566316490061217511089774784912776228093442037536647348315100662492339779848540997726038326660084251930096724715324691402615857911195008369883421601060793026073260526821573910481098539152210696883546779128208524987026948240431511390591167214115574882626556536703830312738408833335252469056911431484054420485743338026754671237889716346562400366535070917314716003085522738128835223773207247356818209252393412553034600654676192042147291298373166437977710545188345940780921356866954016231018125784755928111863871169038602734365000910829160399920746605845523152333385263872482902266668818756199912672716604264241884191908341504665922600095944259443839790475424048049004908891628364292868121502859098118068502100479890831454247329121115225568237850359015283037355915392717866086640458771963371838976086256996916999203775390408570006857289737172272897420409834014019516649960754971558748073665104031244447041529040799604796636883070964599099419979377652647619480921951039687279691897277165102116451966268626611435908961664543706042936956208772883468364409060734880174682809188294189547000452048741976143501065620288863656414289605833827786223532984422140841417745150641022522950004069786857255562049364598915196676202884875155467131477399702045552488969085128781964564661665558552634282430758172710727153853073601262847469193366786828248013425553720879239714918209253099785432370568409995829299627376238126157761685233725814216410423269044473268622017453913945839823851414502760977709435145696725948354259371597481004866089228868050761374357253166683422850071061676585487805438586009531994961849445111082803756625474460317725514119735750175617892562072141725742859046643585391626604660084485018183648038318138261751196472630904892947916528666373713769348126853754638555136602345211267981329988852322484126951164352730340064306044968223098202169430775700622240867729580543771569563239436081447693269554123717924412062193566241653380873569931738574525588518393009606023833484177513011624524307475491300116881580603377656307093010799306248968217462582986268470348342712782253569983103150862609489010855172697887234848190966971565982191094263481554320310985941818892830189946555430658728504791577549700496877802360624431386867435866239029959096959188365716856912295169131542776276148992982607670075904417821264576784429982771494916643759737372644539246772469155989165965091505150506307677339632563698102073481328482438860259650406746704573315030923392326528965744779912074024578748839400196406781859247027194228215996659729499714265291631764128269927311183714934625866026352872511297775464329685971044122412761669863401634136938041386734543207584756291746873321693637191732337884111604207849036879989722951736244821687717332838141294374936348807160190347679788458161449411814173316587263070694163610303734918509109450700415587413252429070223884642134538506864206818669055450423047497581906783151926638036605740349649415897968295399665709845545408517346676287332622644587660365782351496286161263253280068442679695310241127441340948479324116747275286803659650449464981145232722997989575951660276317020562345731206609155924105318630546137732667050922470409423130797534814248169195508477180895197954163211817707085802463830911405727565510272110224656106466734048724273584014858253794295022507919027600006289033824782288099222413293350547800100343349812085438394931982011178137056496137589683158249230847444249483828590432277676170626023851122665012444472522898590587681041490876093272125697444673269861730645596272036439552440281366937249618679456414901041246136886467475130351990156269123951475432213918069348879002279514585093227452920081219838781698368239442340855296202023775241512361583760458632521948570292618120116566149066475673977195669751212856712753475445511068714157355314937730104121138465085086381457043574082511620604764215670142488649118571556450832142308323476422335920219170307047425585856584275722548068063671619215931199953487924456818503013335276201369133281843790376322391702082707497401260796351832108743478258685501739972441615716064024142002144665084704248612232885570029774355121416361628648848449196598391347106901203589007092508816854878963844823282120965401294504381384390591231623250083203926761056917565549631938310127098960394673393578525099302114098737447937009301306312685277588389113152089339643137230880824213585551550094714057823983820767964239355082272549549740558819729732948103269539604726722417193710874796730714844559504248400805947746865739212069908691612508258118495077635224972700083987033125909632570658725310080746241530107737551208040565781978076625947828109850924091951401375897350042017384863977785680939957437169955961971262421290901097419723892909924064051752593470428810364623813449910349551827955146570958819770028496745515879628418730925925573487326750939538808686438446181955018151002768424859675660970913497478193712834788363859939210443760636448402083513046577122235976519842098779243165200134013272044274363446077033676921628110057021778905069830253920845652053246864933823406433836929655514716058406646613721638852025781681146060977216637851315917569558430652310150355969730538908667977939409100736437687456722406443505369361911187049745430213856009411447594220339748040789232392438942541642194905326096303535809394322073182030087762608362208686439343104829210900913112499730845846017165865227434299148907358313180223936639001593685278769572484316109036087678053351740513946386914426331466309902939833793780031345788626178968702608595744088435708372972145941822703959492208259667424906806890450603552611048611648269195396790920015692954389147829583184267046192761543588358376726514447328853906540181259927374688058796037451823254382041860294675270041490136480741211036473830430243319264877255528106967984711170974819907617709467934540462486370004322347281930470260544154115743206840784041834743977696924789147532488100485298225579300318017723191390688088086816787532479563259354290764062779426151395087014706954944649809254657917634411829502930761410578877659025793995004467246677164422236443351178914592777335669011799030574991227618079755937436034695710790294925236810580245560771012150849101304770872365853725232131658235510799334278307231719297993653490480936995663200979816332630336538120035747016318576969431912974816917811609090678485075609458939682034717460379096560927084739127995531571265004833298365343176362799394734081643667361735467261673198968590957542730641267699209602458892975612764306764557995274520317511907421623500152417675976250138623000647196971994089058501809429624480113928066198191329437511298567493600416022884944642805670491613386434272393669067533039424689959568819146439236410344736325895364023562230157475792045620171155627686498923676236444250939791319077800544559385675492257313626031732322914378568769001051675052946478151819277970230218267339135822784416949483724165245445508332090000999636841477773135590064424078023300751701939411637148661465377247642255615992109285632866673123470389584877999664429171725842239082984031810087093577144900822643212156940782859002692054603056590170007177449782386675786022799607352554344494413678179099919999371746816888489736904059007230778532773119325432254376517499099029231025637833711177374542350589971738844887868605683758217513665063551338870683342315681057062840860964535232770201066677835270555308695728581600979558268506051426248601027509701391125384642893183235702966143800842422679280318080608433894729397982295034323743131746123416012821991781289489728949854668565968716155387425151861178236888141335614535903664611188847245742678654893568976976599523471105962675140537998573683916879870458710615591272492890046475664876397671048205372556233749315498399585614318076101229453001874604960998474435628449661992550414526024450925386504542724109001827968590179302792346404678125725215418943429600369730184673271854716271191514729571133515029410083582652481507125999853898100735941670709315225081561054725592942511005348700382610864335295251345601470284578223892568788579583697669947473274744091371781802175979165016849993561124391012936969416693796134709684107357684713370786723055467342535764822207633215579025845501569250009591892876341142913215775038434905117794936032443774103472508672855932394925096398913094449511373333711673801980299919565447937667763466812396651904903870192768149261764290358690449545348040295534808170269429928791556417744463997335419771715304017140707333795869446725162607999877187609783570666912220445162668612421173008721112802047090546856506810274046097497695391305460045429877053398791194011561917906984617475988311687032802035487708047597640441241769862115490993309426305478159894717407530420940563595500150977957169096138696079077464246865885135314645407020206782337949061077582018249207475191983777455998123342807406810364830011223399543234946114205947216513628183940013668393265122335878294710565126582345072615707334633081909952577123070174810344515085672245433992448592428784307717691802878319846383735094983045016096484137905943175698492513150060604395929851787182710039504901098445534732446838045563217776342087916194061590627111593263510552284230835020947408243782886127477624483316575201632425604838042291782401125278976464438329563869874893823186515808839565780336851068475578990753690710967362829197308834695336926304386321086072078442281372070575487093975875117794556139999551567221494654235941768593621270467994120183793225073758340762513861097902577508194596030205260407569538128486870727788699417823610635337481799961644206679199135505549996370768296557767775884706272405443503333282874961851120905262228086928289500938541115600686752852623813262593133852011050914081693643998689928474172340532800236600530843163571671141853938712324684207713678508423621909733236085790450024524796789268272227103393101305042070451696496967598364219357281442263473301612383867098546919137059112263114187443255655824026113010134173309454343444222713106916356189100124321270623275037719650284960429803859089317491329077830254175703135935250191554346393619111109409784521720744830953552128448359907726847942564434185887914205590739193897945393397654406713273332950054133677542165256567966088360905027400845952615752218043315881835221283007303443541565220922299270716301703054443664713264232795547353129518151096931752428836356437400301433663315143780220423752359064785683006709815062360076756303681691388921659135637283418575669613224105753011338536582598556809919489337271832802449279540649591758822103154929897545029073523167480139225872545104793852867785336440582299911274409612307102660068371962370615452610062480729840309853581240579514179476493072768862984105723638591565553123089968291305633069558534597369918493317192153761274962711750790236284224989099913849435070890925432430504417671998940977497070555750163113346424887282166937573523842771390386997231150620152289471825400225907334033012888839779842414905492055128666059423811578667432330240850971375048994559975407421295086392939518347803626871066023938370173802043823826094813177259259450616690526962897973241894079216247253129846478103331752844836775599990068934397653103340758723186271303862407429980771290908611001816965980310083231614685398539063472186555293261204969669426499714084705284698081293005536524931947135329535318047970100508978906423710873298167179871896668777873334897309126292369185393656453470124969499659631589898542157086907107067292300712373129332052759104725325156537130742330016432822868794433166440274345486806240419618411166907007567007167079265712097368439847030889084294009865863851611754686235318768918611270283237131628358565384058948341174708188005001449749262634906850393108614716705583009210448725739096104327524478250104375442519700477125174383663781656607795761986255076273505565232912145169956977565354830978498659100112660811756550811799294258050524922009544972172817505789867426634039517040880036958576534766897448955901831301309139338277813528721246452178185835474682243170649362604137626520086931605439478907401561918827055020074021754141083086312941264341988944260807276651888352926235745847533304375029799626353596142957378748838538638359271937989980569576760590360124509227934128407484894361567161527935896352829225123061306507888785293038279921519163259883910344767229311405946940686303713791167474477666625513985428880329741820660152422683487481390451419093767294769007018352647765972965245506964788513906411604936252066685504836206419035297725563823972672488694768256263537155669957462831831762011646606566895126865684486622776961678694157467646108862989163164500674268539866613623311513334424372562387008283309262751799140361278083134815967170326853646551653919705377208890341244867502002263776925991025560706426900014994534319509412724912690818425285151509790342111041191793780661141496618431323653795974048468089129262719972534898907753598594345026728070696635261698912985671450806307272718189281689030516022293870779198743956777614942700104469051396259238880414500496617662016264054632552694758551611440633611377690570060421833616531461127922899911463985467991486700607687365439672939320005058278717242577748555850665561793623386958387819510823733092077796668550423277904584526501302185317088297864217838989668805855357369646338575327682564148194265519296119093997724206767412560654429829243660911079102631231358383436024674519196277706869178578442353169693737637886880296497027247833104406649830218258383713089841147626573575611466492377678682103641622081777422331804368506630445030018197321903954872816744508347275692166901851600508714972944001430501396785662759744538072586820313330636780851892391606397944931484538019188153238686613156410600426411240626850735113124205589729028797531671930004518705942173516702259643301881099586562685302973565691389073618022143736684610199691144990626603802284873880015586150057636937093400306496229058853651272270683296484296707602087663859824875244308779269298982991625590644178585300047905183510802831002600213349710839748447760004268556776203993733421976702203007159123551949832551078921102247507737121148988093645504974422370927739970736474206917742630847212153224268132483139102070489303075194656279480732110010065364302199415996458759174365163306389407866036016167224730571014212058039626501991692572136223316262345657579140426434227156719051087168072753707706219942834704454435314537214854070450869553254028847596651434816067772300335757145832715981882459221976704684796196919340511096885848860076426458812615996334684325955672642559327821741818492347677394219316938385817985286448038863683962230077051950114845048317667248869676980222368672908984766490974974133133131944040163301542363616988378045365901133570399423535846029506342379799513824325352922305358002988623216969353936634197731569211298840011551524788259007693591187818645264392374539985309013348723699719258159238649754869952435209796894228457802341216040725096651983330225375216188723711229852741708595608493767862889918316486833537228677958977872438341735003326936646242440029138397524077434715698852054431340872231409395678618693586597618128072041009167928089848072146724532073183202448638643120878593248649997453348751849923432990968837027431831723408238348827747824625385027409335573869037779509696508366545851557553535238641844924247704713582836194662484435068162446963963124940132783562983153617827577989081907968362038902759026182725331668486236866898189348311520232674204186998692976602759859047836117632770757785514844418029759794646345551279193984918479836010809238187507370977322224547339768194022293403297458645231746190423948967363309205825591466051434923535888271724481552381584737851380063532261894930520683123509990547112711108962017078652462117251291957419741274355876498914512055185272556403280607635612269679148722670391912462170407857656592693915500635356565655272022149235350600700850321697970617624699973450024941341131054176052775081269272916825257832733507488352637577694760605261979644247278750761385605242054195747937610455384094786757661325714679195396159130220802100223424523934069232626459959643891713730890884743003436060001753639991607486403948003451411677878083418229417540736321992787911969771725521951010849418443591707149267509535026875751615543164083060552569230576150601458308857199995347890227838341006006295520220936463606228596983756701342536680964952747647417404284761269752430716944721503564920292430611402139220454222393669876312464533084763084540824765567025105312012514525447452190659943991495785186389252739712659200148020727252389886207136111265092166393561268666189699844016063597477843878317453066933355471968691594553301229260726057413772796970393024479937939212267369017309350248014486087240730475574181143810089795473056202692587581478290835233457491160917585385559070194158333271347199795132277459304464934919881594994017319034025417404266132998291967596807660528163877913980612782347762131240629354260884208204659567812337510469796219185587625488881227839718057868166497058660297237039963548563709704798295238558832676823064168924237450324356265772285033985528795292939558839996196123838021424685404884601915941964127387719880056239550342470836628563503452250372797776389661207185645575774807063282460324003532446524677888441933841768591543478642127983926349530783978662825344511944776629603136515322777012329135009600005254587969842066532865692433460591467702842063246324164836222950586945952194222511750922398083774340950941970622745513627815102284309806703123609071058330917870092086852187695600991934415354781276770154130425527953798733845764250782292951462208858032845021031641709414093751012575798449430322946948167629597479322537604031984340327617933963853239802025479796649646402496780789892969322214149511430136183398754917962476318688895663930831228289711841641443264058513491836983608803237404533012406244586285012607317595005482455486898067759629169908731999077635567032790234306706505394579775623673076802779130003563048816216708869789823158958799279466582933490975909570548435306617439175675204948819489604062086710098546242402138390764318535034738638873390391391106760362847104605284447060626462372041535301272063301946741826843023225547232169749501186021264014966226490900532341466591694444760376192326010389402612829528183935889768337951334616583629778850807512337615028883073455495209653956109365722662006951824897270606665841353529448617630968810653570300702732368441936250290682921810726845371694343716176190676094066411296159407754126256662383532616339960665533538977799830889058983319343498874122055222175162258374953824370314046106491634722415326657008772756149797623205459538976884037786839433789079064037129912983425589600743694997410863264169212885967820753142538725095644605512311874473431235305748699005011306574165112065028295453420423745514931381394840605255237888314133033841288819650220205029132965630308677801253943796527754850814259972660145781160969308237410612575881917161435812913827443998554791230148507363191294288670875862219576961796986054652996274173453025039514239999035328799688597448216996694446069845702190969136482568963746703913119354055021850028014774907269766790769662114389139182531669199955831820954514423139856654687801082000531790874032576199316294037620293098670033413954940766644585463870172325032306568076150139414897152365730379493991715045312997020400401502191192873744497548487904289177536640904220241861553449369288604965332965312992381916870888700778506008885038284041801120398926158051055607671973417297013329571916626329247997819731217776647288855998396309669476852302797041526725868084948712406124387531124310540803619106174049898627738471568087473142523918158806336127506792392834584232872290108159472393136310746012064553389752210676461858421943470014860430485875486153156941131261638201697984586830677461097343356477429948339334097726981559786988848617512532023182779296113850144944540308180664415466841126667648777801591672633000691494181960538410141477576325362731686809740696480456342080281302892050544621315992983821660363281670960921010123431647466408118463027883900871121317591923512729606978007341744357076630508268081230774212715153890088287372846309834467353836699617647008313119712259092978767798643402349241841935707098983795035880484546602151379118936849724257559315049708083302490225565151182029875530053047834799673334690633188437152057970197268497421823793191750208738330690655479502450721986628744006812122041089496327193930232444261092763476704943494871277278778856464667269827490491100851548829692058233728423882224554442813422430057298717791986862749407342358975939940489702617548417616497869053007950914795651317105091974839478348368589764658297110424778955534701080294704867258063419189477471854039814770945251192461656734085050475896954957752325652524989616948201884300923878433678151064691962919135097989144867861346684745281227348198772640616667524672779091528858277660653728256913951116537351671811147860601931708103023059164879388392957463007203483418007129931505727544111975730999033117421188334839604309946511080617152166032119338232844539154805977986664282967599765953199133260202368226183376360197845051546644015457491984074646111537420108691350835344289868617631775731639479493354923577617751128127599000409855939819297084374046053489137716883287891161785689643716834235586777335665120793191054745698864076120549029389113615983406856912711455564735507969461805210688210066678319128339028677629726722562134675392683037632967117038914045915498344538497982309266208546194598548316874090539952268762340818184047440893063737816630341101547988158213967814571062077076147341222520343217664792890538106295089490464351318003772733127130612101450433332665533092879033022992347800308606240761706906006909170161444564245866274786070612175097906643970907583695703240087160807657945427120640058558063859418567260198068321721796303228224063106963904971404211140417244040854367987802499492499756198517068851887029245466309534906967584920410620646702519836223692147593650037116505210920711021791287897360825326968393172175866605663429386563781916151634681103946851897678483232718478500577821981952288923115531873631916293061486381811994843286760416269091755190873505616095189527132994032064726376827070748869473401566450404434529522110243721730497279699498287566797782401880635914622406272604755623336096459028884748900851419527878168038157485643647386573296553279818990021149441599143420888532548731581486734171263180831562670182534290788099032575727451705558565988440126354851171922483197707232982431534302588071725144783672024821478185948433373268647727351010605367695766639535396066544684852938526961752399384214674245250012728523743449436568892784115536057555663641415160477796421031087316250667896251708309028773651566441496415155949081293972142345023524836205722004076357406329144413652724839218630343899906194444105207768972648129536696675532300967961042806951293695695889183744056449374186375306660657432413952676953810042860174663693968357541556548653639753805462840002556976136509021513457698437957431797513312429534840026527304946962029655367840841678146029479462818185752293671596033026673269813139643212382329439026370689433621090295643158598659128946805667304321585182338688100399973297397945481109454451231491545037922880734260153641766434981523719339670944386460759266312059552320375846617968853508298579684560150613231399412714033922092781487116316903692380593898735607944203502295464988316207505808461368490466994755252122425988283727659401308563539929270656999442128337012889556826990429659124311608863028116165151733293214861424752343109570320723146097435669731814376881052193110943167636510226123007759294439509808861863266651826500367908851927088811427000354100931569595035137251442022987729848967934233127203941996234381410745614042075919094254541364462738852593639006760772691060751186004041998493804816700299040852255844526872404659544465655225345061900631870846398576341524407972051744219325164372886731508123602771854437186392735789552735014405060002682414246396646400555424491909817173657342177512341611401260930990536591317139521732305605954713984072810481087208909098906878057344984007113585003324886574228016303387207496461073358670697180650547954141336645378525490655436247927279840015332158689826287558459011268572400128214982308117926046945972402062099497775862949577894982512716931812038800960675434294589492234381400207901888546487974598807196329851956636392119723583641819553946610615043034286290975686961900117456865294665199958378569696935954475329048232426904672150482133153825081640578291709316607257388173189601366751882106042359817012012384006967495234803749032277224365535357913897651713742662354021439777006233199851018578951289040062289333453531235068362653197539708570154318389628123425324740108749285559551819496866790605657319622486573348517432594379388999725634530213634811621172660227433137258696605031730129205077706922279417340346309732697585000442952091095604219838979936194636434283194189827333603771487355166850744858356061034661347501369244693005417659912212303744648004822936080113361476528678793235503896318139725131205783276210308146180799102089582701188734532983350632128706093911013486554726002585863145665265815697633973108779486188556504287093680726851354668609576568036246716788460859225669199448428045136019061852387937685229261973711660259419175988938740439062545569363709161555773073835253768074749213181738397339161918016725028141950872205196087316110988839327735232996862879797064056125488600225554204039854030537438603809417998936788019980496144050648862203558319786283277192234518426409831488633319100918295670169264116111480059010428446373213989805307595212312888825633208202836165400319842536350810423811309633185069400437869702439530141023981320609495778811615570531554972831417308325656930438183491556424809185373531231078088314919078628240761095826774250759348735274671036238544207355323057113508424259903893472335433943651535080112498353108013971333930233962924204766987370514441582099400439451715115016741193382330546782480372206326142861871376367688888770349974567006909100876856752910409843886883389805003079158917941621087916780429987443562538979586416817471634275342483031868541478716682270337324179584475287411370833437964739192293441644815817756736618365750135528391150317598659494327542610151172523544188809724878925013139243812079863000512202890832410045062766527971360920087827421775423549252592875791557050771040685261862676158232583335348344015507513321149666837322234867574746018832221079795155139307414359643878104829369321857733464993792497597623219056089066828298381723903548102403035717754315383697656471705918617665724079438833478308444549994261720888006235978183145816632769405025570630794019262427121538735562747991095741311299112146003545209874671470310220347875453804957369422136018969973360303978842244480209644898969184946734674341061108436312577499204833318733305931194799385266445610658389826234145256388459631323587685206807086792869702824126572170498810649403736267904576415482049550963892815905886618445874971296789619115529262128071066999926344902772052241353714977369220830937723867462792371383593877919250444718238833233192001087565477380036945417679003034157995157269793774879893048494188942971236178139067871339907291499713887842375494895311391725156784519848643637679889344114053179731731769090418549251492078290362967929824366067656080038803700521643950373328374084511505543615724495717743755294995677852665349467708685125473555452782947037890915455127988517319572544363694676379248772946847467248676681647076066349370500858991453034999336203666151505236445787682901068176977673427624935143070990260524678906967232357836247491370402439179296668404732490247751222882802792717815845030021114092661234786318296680476564053000399118658260274778136153502525889637376762743051809813200622365739873787488724257839126656674295677038287370644964859746115887839443609453884450566694233978038020157905856465826987800253005700904776098963085831936624493329569651085072184266746884392233172468265160917220259545446304328347830462887346612529570677687269081737827876062832620485327017195742564817488109042690999596621115126209913405458632763159371466988473597679542879090048509889026502040481218794456058084406934637357584314159970006059850977341029947986610571318970558868879061029286712295202952902964721905912680140637340064840535352083908421085622896590992898475339110055319692604695654765882872538012451926295454801773346910143480444824426041254283088880417960360607426931264009202269552406581672969551875597066801868702270482334517884681538115863582187000501298457672005666955343776726106223965811887494848355142663040898462779269085873563400316576221034096690364793166617449488464878411283751423913892052703395972066409212829991097312015908120145117320648459915860335577394532892937997272881301598099647986652479874023466797327998331021283007809384570517191575112624233100358789012845731658351506230949268455035630573148201799656839283425400782006963054848390671091574468154633664482579244641147827145647022239025988923404342007959672026070860460552877172015822447416761817220417852400919301306902448371164034977818084042909668707715127016165843832287062578956146273096885149631564274886594222779074555953551618560442583890763263393858413117338895789328321129965735735211535065173778953003874106524142681891717560945294526480048801099178464377516370750053352279307419738004103581564047225896482684636818181629992926675080012180303005114988753197396216947963136042995450875396269000829234221392082959838985132593593551084408445848007873981246917357135044485258808565562889924458118186656087510516929130881378742592780841537812872643846791687531729885758837230693766573374867693242235597174073697100684519001307369890744081708207499251652785200542356164849491572541094041709239513637582395103931612060747829157959626793627035878598447492258077864115843631530907808552342241604267247003299938522083315781434663279553709859617084271813166541238677629910887411003194923159235318599832273707025742567256331500734440693906713949615272001114177519435104486899051394729695367052195581337130512834999598978047949168877426712570816613850840169058362632610641667339833005824369546725921677644592017480317500245479180087387631717854571463827510976265654818093060060079141916130090164588795570046995229599618763596739507410048168539714956789577436921334264464884928056553238076001702265299249944161832018538928942734343703555616247785512516173008820849908341209621962188613738733574785092069201819505339424644856441219488087393309717482262823625050639048411157817781897710837360051201466974777394568166081415034108973273868247647795645482181957915366639782191941130984124875223222175518443572455439726558596190419346430117444206554402423477611800461805178196021016154505578206447819572093162624529323671300097670310859517793205925308853726415882600673824562873014227078901445844332994623190901546400966073236485370334472243729113125351411155346729325769025110292074603041471666282678679733283102596459816148883687720838646132978645766541642850745970939314832066855653119008197707584556359515577129494774363543104012089950915833125247576127122670262644397952847042693722419245357648855008316778867652676678482120286194915128181936908121603772408815592499957493888829896376339342690800225487012411838000619753531471837360512213374986010080335177015116148636299004600528577745721727341899260193272218122026862082202210780900120295301701555733851521250468259212236786774787458794775362439648013486892097651095125916435253841331874246777977207034950870164138655309630474731909972605986350521138018441264412845490273101290663575026878373768602046958220861500937057395175169535971943983475363902102372403487147159748447355986096611106324925821799204098814958169212602724835748103966167079642058890337063247884734093887893125332174494623898760028223195626794525777357077399257063530026507894829182833626570101275033630596344568842312303176624637132478645785134245966968682213719195597041139483904524097144123742279212242426548379288745673652470292795480807204103941849421224750495700892697895891898783883157199127823356448496462061078763743595706511118155351356167971840726050843344614867737267421577399402007810714303803064770906459485236415948128142469086920420661478575175611573382795032024280404055613277750078437820510832277331259798441347872227364335234572585301234011741487070307417086541103396247677645743580569389850329477775934741442061317632389461365585840586119641695749752744886097429002288077510371020044268261667106901269137828195971726658893795835738100365007363235418670181620024954298230181708288372106815268264366805493469355455347830751141293769816530283415024139574378798933399177977638226491451518016402164482602509909798871487963871918348701595986121315164425538109580185402609392548663040449329016903698372022020121669535071595063359329172477133333896897631954028253020548194343955106251204502400405456065670280300041361703493742915327493706692046086605997255642851628659483978443894736048728142876897973229651848833659347613668058197966114445236754842295223344174082989731472786490707845643691277616485950035807461174286272808320774918460230960825139258046110473145967304512949415567805753824519120963946436686552042599037967248616414885243056525900969952709367672443300085778474380097658270553112111237800250711437177863992045039626318835231532841836387546545397676386559847234385719592088195322995006218268668018550704209121965539589468124725822001480742863190948040985728779049860240196935539773949456314406545889388230386225849192254817919315199341058296823231402369825179932621790179214883078049142023351011273522297378817835522343319607969631222362002882443903096890135305675526388747591774181267457213038208468029629294667519183481261123745966499785042467323229630005573759061874317279735429954191094880539767506524347925766979255365114237660314151357305854616976051780753667363761621411289521465592890888800858365834109506673790367716932734502657686680767050178059639493135007869743221214231061317307483707772812105517618482396715570092076208635011035082372018830060999380392915378713911165534813976915736750672866850386005498862327211109948726253198590957167933598295577876083465962776671208559825711462292622517148994599425038564290474059139515997133195360651290584075234872772787424896395105699796591543079727430039966193029892024051712410151164479217677808616704762550401704063781714416877835367933956551589587054693715141718581852549481417954516820932707635309731728599825848709849123870585915796779564277027382094304075985435701546126081318088517374818529725859185458399656416441945768037826540595848920889315013009936302034373062715701132370779339028741229237282365734247290449089940930778046015044146920904556393070335843974175471289565791680778710937643521636963219896778867500184485735690944719199657334930687517546122348606971085573708412981017852074275890485850321304490584814105979507658732985859187533690264728362606850625768537262590496992253718709463072054635353639211448389139496774456966605399693535802984971805104747558062163421126533362796115002356364192463497718985374734445174250952159196317209573302707265358239730053648091853606416142563406445905488891114410101538851243206060377320324430466884224507966749334052351172287522202139829987646849359718775543388559596425166936781815993228903584118169745518942331564719314030064841632884414476791060587987467063756814090025109231110047974839818172815550343779180017744103344104097529571988237624920934876017250095524346170374801465699164123717963666879839949473142319524608193112422631935870349897121268430739549419212018148667170494092599246762405675930976757017459121341571997115267757063606803761691519596263554579492921286855950124671884124677403953243494016570998755798941024430437159448855066485922149023861833270044780412364727203104594782154913462824956712745060410546156209548864263767231694645130939931250732509323005791597172369404009322729102503812459442030593223127852384509919887395669031507502808589198738936999140878357272992970128542490731027800767230276749132295081791010292651892544045625983116645302333778152526795704608881180286109134010887154283122055938044283001630596628762275558710284527787590410062272261611728132441437853464089871081870687532441506494087417747270689030776629641696705523862144015197842490530986017180461734749788177187723236761632692099218479744102316153476105165987337113582294723105103241819923474193039820702253993604616455665076258926343271820349797731680182547021442489365339813707087060218114972914159774601261908454146516970184633047414243285674401915099610567462698669487555120597202869017265127170990784724533283079459588164346175125115467140028356185045105617822155191843324036773789986392422901064586364783492242823925502681082615460352421800309039173540634600544710334768999392892300412203117837049151401458210970674057936012418184712110519803623625552049336232642521487051622202070706471161002342233111495164505387494169331672557360665770250628198495284476174191994186792022615685919415253660686063033896199588999910991350076394567731632490057809896127726058461339858257838709413637435141614537147856872654862004570628123133307725150458864813000112278790339680560371167415652386818322694905229942162409590846202852131823763760252313869917943395283711076497161502043798289613927272454187212884591518439083741767587211812065197273461137907343771459901464557914555366592722408479296310199189320396451354624218378457874330714375843864281115484976398419118563018587187934450692477900702620472165708822578177652908908737897876330082618841825601468775603924441162537714656354785236054629268141712315258482770826443074512731534705477255801388805365269424543194618571742973427034028452620878525451992932974067411114733246586377384197007892933231866800380958445463499715582439092860777359220364012915129865773600046061023941442382838524945159901684940071562626247112812867312757173741080653513379219432535561756088495787712516769320352981630067408213553940163760254703755126646331422476301891908988119926154917277342105343346935403563636818400091949626115935325657666109351171604128360928797060579179163006145445384364973277396804773154536997180483183241635487160685911442990774653761687568454621944526789437797682840886061289704498666783920699276581748271117522168823173294139104518560878808710401621027202526878810236311466000443048389879242015741682247555874903671536348673975294628827499517470316020963657097910747185442700800124491149142378664613489929937810220820626871680320133648928725208935068693695684844261349262909537486054356270782985968134822221786146137681044167119681217452498471194316410940606292372963517704393815870623444572383533734013218535472740508107936438976904016268860477185244535383029678697254547825844568581707194914210003889449987135541664963819468021031569636621147687870298542333580778727474578228863433911635033176288620003979702548155726105457054250986468801072272630547738622383109824639518031913180685686772310624854063626001937472927732783892329336718357119315348456720432993075964668976655873827709477560998133605981127927506671782857700118358664725650440715096010349295040723354137333740233041811756386464241238084322998045626865863147378328661479884766654039285522174216759018075447122919070407943009609559918556812088910432032152302069208502778077254443008652217125332390788532263616986032427465481928848385488608453097488233902637023623839644664740345304582908282386392664247179476779181267060109943930194220350424297125597334715319853231327879276310497827906438745167850574089905293807945536727138989338393153893748755743160748528830184415828467859879487038922098580403444225251279482843292916236730147980794978701036267835466846187492672668896483458383972130760662909623610263336507735234839901710324001393131258963490444993898780249434849501171054612481345827756073350862405445220925033689652276832458834632608781425797826707479289388014673256586749483786341940704006905698321288393119095875234003831310554339181991168477316185829946708266765131694591058398418173235493440948889166388509309344667969912152507396344407109332133120858248247152884132949229536307823941768369024205605998955303931761671497480340934099999464942117303798579815655029197480462657407802472623761997300084124855283539547739711602533634619637695369918414333942281946151270852730443704976529275156291415646201755682294994921116996595155844762773461347189391038263289776619885925538799709833610894260913253261621467846296088306592141355702909870270408985332536538089596313584679041785272937427326533447456149626061873420928092061170934555916253096013085762702547035659267659285110245561935618127215760305899101142486647871047476130843643578208369246982954842623253059642608916305194925642113958918683491002453556785322736511211939026174497466822659310677183667615708667485688529522135781552478332446458481871510161965932151425671203002679813489144687716943565362000001511248352198978958697436584603115886804875685736573604023198026720576279595984424007777378082869650249504439893122658145119226913428390961265729248889586882966820927147973529739541840142090642507421981894189128454779025705503822358883332810401237160037606664032310176575520941044192516170895437462446201447365842302308659894403521505883745616928709309571268390130682284832405410564919231564561223145512096895906715129755358455107114698908554336077264980196117451277201736260506242341505864308217861108562055930124435810769763026584933346985049651673612346373525907896026839788888343999627929088211598291520407067872536379821737185725819859102852677821812237843799445491490307365909001871317921625946807124361036513015104402468739018795305221990431065120280475428485384082318866802732297508821215889740451755643924601398291191283552744051850843870240324387095837006592036906660137486713338855613060039604609678215476101673941370842390579614597796056565739901991303815684060692014392864868685862686471444000293386790579933683449183529702592343374542219754045114374779811718273239083158014929084364116477201361327359674707016788540619050801979287355654733208440815028065480067012194496890852481502866299969647384267946151651868733410606134563279093432447027903421859504974933348679542840473392396898137744300587523665567059900706264620392385519078014240535427897838314754484467169726185794628632964497013640633222383621530658242042918298589220904629340751156725186013694337666578225008948178774471755834204382404058295014559838498235368176479490782573550546526305338176698599895515266017527960348587824710721802835494453552959388989249086008520082884479230290936150803777082738614659496507709786067448817755229199644901248769731044038051412439185997233988349587218028797499737387058695286027263836662216137461227827312394280841460063452325141577132224867275740559352425393394594557372430875632164502285549626780422998487218166796898829836019322770511092235080612551171340222585276041453975707805081847895513996218276252033591023250252123756361968572386375826932542290956300507735299905617140114793176966068193614195753446031517556154432904499691582075204442334952235581215204312303666798807810315227999084846093878646829463810905821206896031792445148758286449240390721989278363763952752322725344025616460041483895473450556933753849789336318377880919150612147823834789032788228661019844690786463253348707211298049109128928656057111227905982718790044674895282002559598548955750541166832473742709547261515183420443211664982620084788498471836770548964227299346168804402667104219638800693713532054759645764218675199500063611843098655367556200421536717117045722696531397763243810083077612964078189413336294573261118247545597856134382954240332612484455036846085491060561048389180466445782410219349611367878271020170240941803253585671164654233758234410478119893907272943915398732333732409186463920322344333802135228154645938714879514262208962272102254501003350934356726629366918990851490100445594410562183951272288869283932501220940470896579427186649765229147146526871211543393608576966771591777009646820011703067386224998485309021468655719312778771234652300312043616209391395296617049526329570425163284061979974387217973365802053817177347596640492150349739025726761907418349950019735209711765158716875315099722748003718123171275593053395569745043089690919091103764453358121074635818608952422295580891635114753297916618984122985878178690042836762909339599320284084710724350238441480756045268990491496524087761643155642841271371989925336416600413721423507036902733289818577415348235432504913638838560872489738520716552338439216608795744416990625892789255115710555020501772554129341387511315392362631034966867376275594443886458305761989245809464441645012415421557425364140213122565417990263231461061475758458547330805984754535482432040832830319844555520984210393411316057353732940445969124915501927856315981689812918005253137500694438934945796219461621331680846510748438112794518155496289446459160222656399004444064636226508007003738508909222611726433836598075327192640931628337826496287745954448174086887574344648077192922042871780754074890085976010557985384322394634111554584151656373003156936013370393300550313365894319968262695338773839441972551193772407319870243214213718094875438479504754627899128904381134680027323261638828583311739828248423354277651075246800562366235332196589740471560656268658350792211911424201597235089259406753992868837928810535696982260624947630026822814799348732041003482606792288583326683268825814200285833031917881410837256182020723171501482437801344187274080404100637864558985587927437632061668527297188085598822891018699155321759573073449490753071734482952752722754589024773328128760454074320317706673997874845012356075124959859629046782351294002809637708390902309699240213539666962589210693424706172966044939909600625796379140999461547148771132473039652788932916260106646042787717059256550110107297854293867787232067151393766310341659298451260029997800112621096561025899828695282648785435056891935157263536564288815985934322884889883125716883520787682839780243038291612980940757452614089886340904735321689626738721349918814575415576084116369681586664823297845575806241501327969146992217194643434875583648142665888454793106118380773995379357605214916288581995754212292322027826498454617819582180824834715514319351409936852057979172922368974702732523038121010850325300321193896230379280480427496466752663420360137873524608998384134947827164752233663622627027288619856933089516920495749058210967248867276204181945597878883548581989146615794800655992839373428636145981137263724232373510581064573867858992721005148957716556361713079825286163867520405775071707089319509407941147627954338715117079722249556501342192460209672799928400111472027672112908856687695477748561668889708228940278694522652630555602121019339935410610489304659646949569468751833303523573367675913865663470349641176221553744553471751388696765333421835988515395723536372928053446361720509161206560574131580309953340772393177486900807333338048161234213359225811352703151899947093405753657675476554518433811231637277646325046153804766713506975370110049265410867919712822602095728103480303630421453729473241687794441153110836394627988750747194219460237226598697274496488193878099952721167271380750576909966239120336202496869490396882239967608658048039667379827985988350508607226045446310309281327283940656733079224539312845585912224529742844190175021858643092705173596369606590229533434632094445617077609906300836966036085490841700983048559470572856842831328895451507520301373720256293440633218491104009651805147851452556854983377565538372899658386913396867273457996068009212370044197899912990701231343036580607941950957392541046524087581691819901814733622784258595346399524972386539638707153617093416086487776868254214949016170754297151086515693620679191039544542676772948709971646462682924661704205540714649122461113787997085102761570953355818096954610646571161345797976612401141186646698578626389791088598742996018542615859197230869968175016131926703675556764506613055008485509225769559817266836312862311724321956742821000382207793943985334279589794391380123621459586753280790418123165851203871608351023538021810072054941128860073699620736920381561503211769952951307835614015883599265617993331667565190017007562891439387942847058428900011157263548447665949425530832609251982606291104376601688087868028764880654324299230367183984823985575441491058943334188602622011111881431346809657273891037641099955802605070250625813948159621952391585436795331172941744130645316521711267376051942049457862429156906714399415793717675932005743703369089546060661119270036109850203568822267821181570395061820964430735385186061865432027831656117642773896320452036006250972750903545740955979183965912805427480328922468694555793754149451918956295010895508498520598780535530435104919020519916994452280174514888632659946660782643148265426533175285927403080030085004623970507323067913093499138019666805559936825140556858267031315333185475208663022696205619667965473014949052836325430493930106217101202187504450435435446739140056291615432241202952360330192088714236118678808796201964140812214991736810622306793626594730960659977009526829881516000552034346892457397753018435987927672741325419029917251349801306622956027726813315978719183020164402990989483232915186663007758542128067087586524387779698943508411701780855954936233324792032685621485916746653129721841868107783451982473580852148966286624099649554872358417942078630848957076889788825074506682431948183907858692625631076938118730812146236646007102485179013150859705475779426573323075070791601703811499698729685561032987243562660590838328293147929802502028134794466994932232432589827528486993623995568185922810408061447746650268007402333505965908332718502183773902450775725937152193976943184280084170962013936881457110800859798732669655772288007989893692743602568572310263910531821060315118089566205152202920701618987091508612755520956787018548266284517986359641557052781567704865173620598976992412312767194966053384681403359297019229822178456897054643987680369278262450375611796750017694108021697610670557904581877169443104433200475651890883265600772243517524795103241614157752377091902005109670147804977923258767533604793264914748485527927504399969218839786686777656480134935007128432111985286071554226429379775991155092424886078783562213521501121248235036527183648895968168044637091810698853300156329970931767751194944788475306908379352339046978333336325978940767087148242314535696673683541509202399943348753276362631963668849597289585176908005030731878064603522762658896150602851586440530171674385512291159531675787763697930750286905160503206229866575130653634495134472610068641663362710014774403983687229629495128538504151860797297593762225117912213729664070254390221086604873511245620770387325565170634277204387131260189010495007497281521217429880020916715301847165055832737011425584537513052561356416264574778129736367439222729208033748600829608218929306858830933946112412893462628503160734678663100548147898872155637049951809845692649979237121527853680547770091181629758836426162898923115999851010205954301798131090985997453703318253930694321793048572982438377167300883273592570638499274215976725654284270389175248199666359244217298947177583546667984300678343036614043952582821931225932137002248146295931032516652658959793219635883244763145727348260179854171212848308927581469075912437821141191043615351031814677267484227084097272265418329819142761139744398622187142614328077065946859760229884064577013752752824835825500700315087150121318831056525925436399972991620687542822907582375068025431337719526522915405448943337723800406859095099251964946008957318622277811669190791201656252400758411492477869698784919034803662172269730359729401042744314973023286801708231364035429532795094588257256691909610780775302504207137940570441468157387867497263643940547742707896574826030696105160844310001618745691182404133476859551606301153803519113072433332493381307497382100831181009584030614515019522564832575787827155640642238954666634488717388279211495207548039360290808075547285785702356757925754016650457865589622660378630715064368453589990702314164404887762335628638792105389456059015852768456525060637211470368750078427363778154482299712202702479476204045401832343788321105131028736149675341413610898141103074552471200936935647424290258504554720431747722155583791334840343096524471643720306086695395595365148377145925642028465824101485885140994140981478280677056802118700759393418280453045697531502445437783335116549467945148606324334716777652658155278644455989822903632199150687807022279352472015112092569444783913370100579402358977485957831903867188579976166852733814132226118972067687671138345151505065999330602586236197053065995510797854403654974092008725157296689513713039069377340497191612522664810092469981265157188252781056013281972267324903750422635690945662523064183090602440941644715610941744198423110358998650307224897981970619632078871561590782756001540455241953041138138480667980376765114845826788910175980820454122578418481022539543752771410295768666967176308200925600068157937046382479140418561089664518311913869747332586471604670483725516171502467241796889697901307547237121233899757420399144190983978164649552224819207986656906380807054975939955717389740560010181292988851447021347283114253084444761300193674092927865063252170706983319098752353893022691852446786060904285404670909935684065362060471247784922038801066082812261191753037567666593522899461314339558221953174022275216418339187750257329615351035665261299025336326757822781452006742700182056600265072712701451191727367607162326392181470468288035783358630603703617471359452239922145232923918035760213911402482421720801875667848623275122224850545162267367418648763956448386422762562333390738575756136026337358358690609132865451849874895929397110188786525713433820803457616063940509289009189964904938377440423787389952886225685544019221943338621620488116674098971690708918061153808375440718587635298444200408237602143900630593683755082216200102239082316518146639635618690508373454164025112120145531141452772143634908853256255061095081525459928560905260590244645088551667034087885023982586205301337644994008716114540443304944437423180248795434271721961810900239220144500055193920784205860247084015223345436000314812911711846727187612324861837670995944728660216464674165441203284457452856377940278468342271109349481807338892718861875536965191965962112261953145098918483761057275900186816749062802874044171031205953936065069178876084445721448449992388020130843613246373027903460119263974317063034484013419314464250814700051505478462308761646157972762526972214931198868716629592360390638904934874135426472445845151816121205857549883506078580027742685172301958316058702856365019114075908642453142340696978659028550501433961918824961642901903628613488130694331303563385447609058651242781394866724160766778670903870334775452296259106997707386911207451696053205442942229423501841047409769489577128910840688690296260596156704461446745896696864789616688875725293540782989240883018585742668107515228970726133520013483467343367495127872812577706636570996612523397854477917154164847321909560107651538033983356224493018726303970409698503314053758718693292359116407035561649041665670309502975903309697057305942459031527012722875673998172830095662390359725035773280727680305013198635901355995785874068581218949389358693807722665571820932146729851153710524041506480279155270494327712084826383515492099924646154318070624495968686422980005716014490473239857206906141014350420547511913358197840190485506100833262189863051692462041650160081906250463534414158515024832378841709430358155841196900865306073110287767584031256669168231487916289114450135279835766829930858318282899717937125034762081724190390438896117950197910524286161690836828851919846428992928550269447661984069469389895666255196435475545307327883575268465771392106845651934765338090377876192251667417587812428861218057579725014155594516088811935514226229414887441782722042196371862341840149572056836572981655482686361172184864758585960744368044221364056061664506528861885763847594685218742889844730852850812169638958451131528572492579673339789792484605815583854701838916251807409270841851512862100221730080314552440988816361941675280489066809580093467426409668309715097794773192567169219728088118722339604068017138525190979715744049254183646071796221454679611424303285803284950654553150902693810426884892611480193292789997120152829074181264629102581321042859333617159386508676679203564800477902129077575257675867343493037703038389890976513316314301895752014069892855273110455218914243016258806512693627278181900253448487519799633517285714849468462226167624576348302631471369964454561282761247347945016484767013994656701589832034270360681201977210297866119857919578909653623789144569482623724196001821608579230921530556930409261797775322671952744776645385670364576457562496667377696867249838334340495689333858397721008567736578361798331741788784243279093086246812143904398402271634236077960235719685572907168771210665976587995830576984340290416267357130676416959565924134824270257408729263227675739724603959168454294820425321043798774942545119342507461396159258508965645555198221256658624975618859115139691545308472282077770882349185789594087765225794226238497360810040876784543114678428748801734936879732592242659785217231227829683365480866988311271648307757667018910682405088802876709512765469868138271140220381633213807900392831111732994166630402873772994721357365308033065730325009965702302782589133576954275625933503211037987571082892394308370783107815401815483581485077905821886718878719782683448149273791482694529322971027555418865790879573800761128188966520972276253422171702005216749350594815133434641615319596176639083714924095972777260623433426823181909877251385916100813760342569736474233735326877126059143123113366901537552838786196090770768566755570360683589209459627965933336039784781373140462121888978792494627859938793204287206257049552833358442261582528369839109553740421044139488445934237873367077418635850103983200370284747126424297528230620263293842019334247160922573749671722419526725373310486092439338303386077376497837122835590385241524310334561720237089712856842108785080934788701542660790818522304749217011096326021920651176397647560147385503140024915587292408763953021240844688682995318956171607152079552384504159027486745887387820203899468004464126950272913257226432057455459906535287404987654608615447567414182622190228287864388212502235535264441007323218033988272805789680921973284687479308955704388492766475358211508039207155864062329393453287666832390442975813377557562594051038134193578446920459719663511563001100046615489260043189267974204498282205679847759995481764004673585562630995489115960682656508027746799813615632659534438132471502234678282027868131907469650240274528785376041569070258166453577466959508449588439023814317762958317860975168204959130144541623595715800319934338715883897224333825842392695523981081087449102012242201198344618361331782616108962175413717188939487883415525006881942688527647142590315948237430498440760372864449935814454343678956835504024252307660095985791553804562283141869708644638132895784874584957085932074179348817391962101820249309700795468326761258107806992299427239343151287071034987700879204408531018235083409612929693651792419294339177391669716515333805827063678475848147103668635429538343346884937956863586050985183823545258604273268831652730352086669504683776595203179937024710482317118041844886077216285515447997746313448611071361685695204091950468575963371758850870174304320874496466940308396546293148428257829310872710203700395156523801776568861301275890119842560661663866070319785438761396163521643152012784143055716090436025682603919359814862792126202169920367483661956067473725571519026499090755865827941529956511009686089039389254203160538318546027134098278404281178770431446142552153868034490314244153145701377872242907904767339011206481836121633058856699367391856038255309599016098991489780055799559026605917725013638719663758018872008019227091959889028267094234272577966319563097480342552084483922285763061298345768383138862898230033412794808874594639980686637601846229647471383327766892299077164641660836427324451105363249801643795065894810960465093427017233548866327171209127993642447921269603417704469472026510912802468798399880825055220741611703180470478464852926978178578087291053482409516611016571044705719426204667175631263134774828086367985853358819577013703596614689711080207373385061016089698450332558276712815315401319424069769472621905984304812484149573125424754135852315590768187387865479042918479557345478559729527431455274139958070797817369011377867877967695471851254823832197190811778710193729282476682988785096589660706321968744835287487938881619733716129975114137766230392457511156299996534947832037017044316765475745851504706696285546678507360654783838079590586398419487413013441897015997006866984959841042979269141710711649861248028973548509271171242401079791701589590581877989902958665017169080481886110166463247797407173615108596587479320613415304357018792559555221623417665208152549666834115800144156948753811859086962892605979387218948350241458493648801850194788426471217371656677511454905496727520389987868011749309415120367375957800765933388903428369161265643379006212898622570344155684767777173983303831063062575227458254548691751140045425703845068375839919882736923594400387082791117296717561299985550093824184396727386680298425506954036700581522138826730138346671482042007215769031115328143912074288961722141273863981671168157011118546797432832566427643685284808581554674412393558388610307782666568468369795317194341578287759361106155887211148056236806766600162447690100503936327000234820474667573288001562921177158260232530591151460186331596054859742912693433815965059175856223246487352827775522000824449693590653525015641645935962044553444697614656334135117368654859612367429760140430875094665695515201054255659273425548762342744649961823183521902518141777861461112047821433412716986700408389100064694735051982826180755860142918922966399085425236104653662077093696880432434291845032498001080343005614665065448987476758248336325488931423339377673734060002221692700225677603937407813581110063332487380949717386529505712560301201715740540562847616703867439620841773834785137193086134074769944120487860389726547778292171906021812301706512139973766424942605085141186103734741150256183353485267632182015141315066053073978493301566644103113841647229383383843800435280335714379960197749963328427561896539070337600106482023808299036568466529342551266073280169370230420291237389863461686648608632765453507438854658055621328920474834979593296236540173371431913497858286063475308224083644760349054797310584248504493062888922331694404339709781211234179131139351648733565467807027082439056031308441106252657660904425206603945272320157745489945346865985058090022105001151145275104496294425561907824203557628966244152957980540276517467990285077196978817095276623391635503267028111164491236245669523999771972721655433604518830951532947434418695684271563800757401000462598775564138445580686433025312603810207304700017279006508343224137804269215274755652548856049360152535153512559998104572603379719635409780986801144519161502131120059203404383653766178915297514998088974869063497943765302453405906042325089834021824571459438999585984133518202048500040770507350737608233849318879248580073495016028852794766724029340195407807638658115190048166767729637560336419982026412153651439927219987316368077209512103613330540363937091273917028510955845385393613735259022594626731140415133938385327027238442820410540924276994871345784290773238648741573399678881857807751522265886463835311453893791930690828614395520343058731454779529281274341677838445912441318994445134367949179725588922704074793970058334460226031986976620346734769898968513955479531825454729050197992696953032921609264000943606357637485693794157237170444651872277239136291518730751851776949964540269758856920029659811099012304698259523346790572710935950935537573969152344355008870448332999025211613794434559722274177245963061615869015964063300689325023165043742584253804773212158762974071392566512705832792751663343534920998317687106008409669878616299885719255964731443452578203725170019523415082943414044071089065675992239436448174880773727348344276903914432784076461398682582372478407623966307303216085579263146111964356926171017569143685360375310248432192185482213965010510841562041637822772368653042294515560828708970746806472193471761999413403303056816971781036266814113576755050818217813016027715881294328398166870861786224834065086066185624213650352585625758676514494453397542923404315145690876081278001588103020709342766872666552934187741191047456627728455220804157977413249100518537816017984833668360391429433794814983423831259471900441847764077767291905007392454458247887725879166340632824294822996033754350990960218678601613364509837592417406965912026994507665517524593421461894128949418720358824076596158642163034033342449986069482673360560750438712036523460649414356688280931906741857924886026430624116823350848555417855687858433716791503152753275612615543590121230357662448447051287989920011825100959628916572213636705074382571279934388064441510068383941143966065961802481446640720028527563546170596445287961189423434794577602295694078982507226777887106879927053816255727320967934407607232264270208148206332988171960789015376062493037025788652984607800253320893985001154980843358005694034817747348418816159561059854149238054295006691600578891573979490221629948943440220270994001877139484811522945613569048380050239312175130261761855605594650867520606971703097400139493373495624880349847275568794696996244649220454264100260845562637191660055990058917069421082412835441388470702677099568563315560601292658809248691507088288667659420035976921379268019786353317340877528402480516400645010626545952237175535486116001182206174774340070899019833426572408348679714533419111197688223263757364454941179997543152877333004745488323407103877635249929272120012312489029619383498641296234659305800395179157496298979977055029310253068353790079625889774449909651235043141220717553155668348481972451765089122846622244946044345372795864301765044436401231662273147587388449312807305105587961880017004718642234692252710166602463763991156005033878737522432344350900032930578927310901362814820504804267013407421717426001370079319350648241319613214860030274515774423863450986688441147795176736821069363455246139368231189340008031350801024227328929343991834997394301725191092624047155072439530455306302081489320443792273291417170069489721573167778670637803589770547181891509511826068231025347953076780478545454194169649050041050665612417668543947168500846496104417609957658644384407182024430384109760394265770953118628199536783841068527946817123112791525252360582649782577167011955993050899182342830679235204375718448485671390794013994311270457373433402836168494203379533174862802205837705226372432442911297013224966121935212039244554510658329945759841751424284133520238598113142384161699081313582808725954848333989466271617436818956239524433723235009945395573542614567365937844934497863933705325365879075651675584028705784256305945554320636053249596588733188201266853582170199303184028416782132434825768251870450322067968362348650329780190546362932040279381563656524831577054612369378502144614520632868554657401542755706086363108643815487183823608452964009188546976538714986533341771334250847596013665458809838568685275335434482613019474191097803628057944267285711191620557441408387473263426121187443423713104172864712090779529157909816392109411839114620017438362702622493596038118812213322332500549704055990913002064858107217558388634265708871812294505255637674483810622289434593608947405352476809117609010567272294765364965716208985606191283494115080626953211734697911146708400069667904374879175860532298729222297004677168561968684403783276804203298543711598789698936850345723841063718066803031398517217307953377014692531922624894212676458989275085732950741288744554803035333099990809069135666154530324279050916873920445198176826537268260622188735590927545641886645417562737264734443542038766322075849528365761163821428266186750297298926849702927470718797648497885661463598917593246397898505968927463621980285635907650692656526383515228274662192720139646070918601200676688792938595542128691623541790925844200970790204320003596747799673056424067829865437248939557479357930617870008238480863663875360290098462668386584392135295551589019088471341955430465243701173191518010097582544776465325029469123120126457070242437323661475754196626089279341193453070572101635882030173059820590966609840317030791406234986458864987556874474597249225297646969785169102602750701305826926364034392004292939605918077823697587227947209695320961608521947601207522957342906311174899039178029525954008694850669879474127229508839064956420138971730542116118697878261430722911068153622940855030012692494777984668250552278027249164707314510571462476315679920405249789512208975403054326692881105603926697014368694233251985678881665520346385046060728158929243908822091665476178999492374596900768208797911804374792845537410888141470710072749506558866253308506830782739245612635711565950002050018520855720669760786561382700030335233841733134313504854315697258942481478526643835585700129526356905118657230352418201888491071996581112284084834618312587138268396228671909326977164677029846429012145176573188798933231263188354091295136384832912404292671648085977141098839933060165835185278600007063770647203680041855564996936694187265881532338552122148012369282679114045008644052239638492501222494146353356568077136305725854667064200273368755011974449203962183836647065803332820877951441403937893360638919730695953564304864534116156987610240529023226252653392280897871044543359157371215159357004445627108103994080626983072877825126146821041535423894175327957531615802914575508571826586396326984655620118516637681294822898010961419631752665059268237117209821243468568227256726557519576421274798259718961525856801106761523873070632075038881952098065149059800846814687214535369615879494689873563396988458908378600580542998370989080357370008452040706762098456961433968318600827091424755167304067995801184755967916687077927842091714939899312120637496400859050967158041937848324843344988454781661392635965777824412152403016175796175241430485616744565717898934703644961567245294666085153224361067272379133416927202972001177943296622313097206635135425062648302066226813556753293940333105953771592542167088474062453559349653837200770550630377456685066834403265485360076732347970707191046507444691674317268711927270709039024576765979547485678913802961209146129811528418551528747920238151834011511097955507548208330667377219885291842265636650323725626759627618559763350939592142108198371299291976755182738309850632557922294426026858168290487243350662686755606356812895036926467095696947200286583529866522515303382150472118776519939900389668007038576177210069323258608591489109944433054649285325156409825667031850725321779188907932691753600779637373185992427113347621667325996079071716785997028788026844607093912636387051798414642904811604529263611011192907034917067781699678052698315590323763311791904713177544864448569924987003966954950218368829032323712217323132756294553463863971076633300146600438910286589343036587948090850761237205096001001115763331804140797227627408571970911326972394357473091685341965105186860075146111294456899471488098994534395386559365445969513147428472408713038203869324733539610781881229748899857989443871854894629303072109474045728902027014777880715876051822891667387653743848324248980221314969275677833010768773308357716881427078501257701603238074525624555624148410518207438709941998875458545227291451355091969463379419451813962008902598773009716088061251736320455948887851124525495268132434685413783890555375930397481283368008130901740598204871166966528470214783804374836797574807413437605664013386939607540339390726453309891273383169273346721922537878424636096345755345944193428987454336587370867314093208740162809928583070456588845684385623331567966075088104797599479910408976132894683779794961829588146481744176485805477085187887340817699187321152505074024595300915916892740344830364340028316838488670721898011782227503533584943636413805797134619536247643699910020463320797729778443403817438565482378606315232660799268285354915467738265103623233943631512979643700419477999709060593218454997941514920420016035116624014440692856512902454063813451859103236701131047104313912675057211026353261397591902384270922929815822814628781484985611139265442955032720284994179442054749456889016924119539605956961872746332732010944875040669711931918290871531658296154106062405805464509791034953961202123797263616807974979615337764962896133967350825533832591765452019595410442078274194486887514301205039250884113822090890812602754632178709567356662865210191794367402983620352649997109785380968960191823672416300760556483657735440567330675964684806196012296666856391003374017517566237112320464892192351929237066961759404256257783695348184732214314892038584635151947440286681976154030010909552015848725494963852408249199598233853716995319731072891180638327572329731212839280840673406470135211111217559841094564368342533893307241988618453180305377976818471352836631770650046923417519946344711359678675433542623343737101404282959721539120993755261873474546346532096922108590624844249859734166068355955122310639247220536140546411945709985622694699008304961602717738787298671814584489118901992057976556129016434807161145374640627772261759178744665369828163725345430460368709670931659799671103534688360777705717375617509709138432851908476484419584285072985386456329099990927857116980370276826465160001703518007103487124347763466297335278422181246723409122945942764682740427946888226850797355867874551709859656017368797321261469442180184822419375419225470193012247815270744639108919835814741478914819097085958982119298437241205567544958497229284767446701986666032347194575338911401756473986192589006348825229332719530890288949981091248257929361280967642228170029620881406677391266149363839595706332509148449276468052291112251179187198212487071262597640271899738516644505493426458695232113110587273691061707022156688558425280289024953339305730864408888696391239042028046284242205978664388864730110692096557842955564878228031724152493287571946778778225152695621352870077489573017441403697476229267614647455210935226398875765225404476641537966522470701494307033720659436695153192448448563094897934584724233791420238208980213865017288514313832828213790587620524169512010099433846185278968324426200559354371268794204458628929486681397984790684382299782415251932391578535892887361390184592163569847755320843956322449187239482923872643653771330361707332705839534895829280904309174263595613898436407410444696829001428674005390013701339014903979319829707017073332916440921095477401739389935877743595693645226940681478560035575305319993126457536124044984754843999981079696207265253352899633488871951188163894120875821718295492830324227800544599560724960311501497354070928371237066674883485825959411375775752546902848445347313807562225412147988141129890561809791741598803966502736773690693026208072513841155600926737900606887218912240997487627409740701075946897709984745687223858047830451523800442724820894632290083106124854589108916803446873909332720492962016733477118760515309472449085799480384588439237945961803967271199991259192782136073924350338113215279022143402005820385885546713889519427774767160537165947831575575254002188698983310257874896718042411842806182627455748311386208268560981706471815971025609685548627624543134184252116587507857493174852443261757159976526821822030806911939566551271322681584676099025713400179097296927280102563079551486630614725349423263375937793604752020305381714694417344006165289545713953042521774020674469246260020062400006838494790926802887294983890209676207393769112531712835660810839336591744622708292085390462901769876032920831695623418985254737327274657069723589215839818893669268364262782407816896844740567991451022875785286541163983114581337181162049595639627663090131362831284859270655339135295533530125804833174271492691020523621083758779586584800357211775626072371912795010463114289856306058910549213268281399135878008567707063212723119684756306405885313514357064118442202691031168002007804696066802743351747664424528005005269473800733976712998845890536192688048767599990897546622631778202227797021335289003198942935611070049325799484637526083019867723225714113454622981157300878803287276642047741349266437854288556867357596935544514948515734192450141693789949932978223616247706074248260404309751311098154534232543909447844631942972121325702268612567946926578442088379573402430606892163194919338143320143149215264579653451997694431501792686885189994870611731718560037007136833598824387101951380702846314520660366160945467104523983691871836843113913727178828137223136617986805939742154501889347861553707110924090647420765151539195268461753215620891805275599385913107204196765359502573485249607955705893162704662154623577625215795900972728762108493718368229719057021408796466802787877893220197974643660752960935471196466728935162000580141498862336787476270294281433248521680473712646754510904151370290779317593997313749183719969968589746205774336493258280109027449320628591837707404633039079439596042521786477745100515108726747863861553041309188797795811500539087835378391078152081127861854717463505659812045340860173521281266097598879317370775590825298045756146635778343261461797493405050485677342138862787324902992780291648016672173414986011693587420989921225466530317580528428327801895670169295617015219470569314031702432514621299008749133414004864448036232673654019608720684955980359592313617822507750909032984287740232546795211427736389729244611844272103444517758780375240168909295383626896916119514514551891909949427585326137007250119586630644932164461261413652977174154810649187845224507743292284062013646482775799641882188268042352468492611510835024395446527653310478804866366722888233601635064358735987448984169439688936102352457416726069136400014096164280387468364901965631672360228327008396813835692869238563257617711429446757579839218733853927172776019396953938985765146951737995440648814229016775657532712856783851233062346065907776921239544845351554040520744402224834338667643857795924387552240727970398779067969573195956994881206030693813103128145376120859099739410867515796725618789388872317307666901519954312351153279959988117637085821094792506103305994299810670576582186391791734644491528562465723314856085059568721901201749162968625046555967428118417374324013554903294401506925944113662971606793836573764163190505654950010390571544023518933021632601351348537252610462797546972726062566091727642274264008882147970376188628138891413758214164687081324390188800288121770024957881502689679671122269196198100320558096367417667925801589870473191033627034514009631487598180112266181160933724199674215268464212431839979978798530743208660857218022426690167788321801763201774072207693306058541937049904632411874732698710259087706719910872381093555356826865348226712640864585748960758471375349020827089105721988390318996590662052728835149819614317417058547861393516956046581489005302663984989072523234551170402590997433570890427771062260358477333556051433453578262176878758577165855275867802191546346533932319508826967694358235945227661073682282517272087058361429997820108462169327136249850920291465989253457911384179728617316699320998514114910881547731269617664063806629253856531796384011847558706561006827779728269904446607816885317334054427718347365910429009550749106463255958001827050321314414729227185401276894439883460042675768707031218614139976433441788149234115446317699050081894443604692899680256203114718119587231223086480498811554852613269314165591476301482540216205379044405949021131475124170146636007618502071145789828378487281393393858945454067103332289071449328792226393687664729722273191173563171799505793434979642579369479281434577827032840943277164736515427074057103233745256862310889729053009674726244804522356860784272283880745138378093032471964087948720648247644916394695917086585182970211970378869227819330340504999830290770397283325659444731600858489207253320253082170716395058490759105203759454961801746723862895801757679088906168134506379920401602440273148344733385726296078351534202655775377634830332170625120291189314690442288468768534933363616384326164190043206884168588705090907306636719083207837031294414572164660234525294219561807859707951095214189428103641869550771164486538135629324931478390098011817859642566546148595773668320653839133649755573281252298480991252461359302370496287659637856174757823234724110946559336719876323281689384091364359281452553145949458451017001688531841636116638202579084379094172794699572944967808400645007429978077859017851754939315751077460979901924421128315587631136178859487925338553813304165933310813941687300470864668933852735101659668782795595524995500214390075083145779602249070360041862457845232461072351818578131935120948804014060038705130013709847971517992256108715362126746099688115494411917989113748227155031594637667457391199397234319103107585817165528968600245514940721005099513597704014378889108608695876996314489668618144338028313721890170753220033647643491377126074653449876328028803576803037340418976210393582145168115751163540700085934429851454186604872375596592792530645509354838455952249712025565124762641173095199743411665754969748293571466936702708539542104969538734983484414496052785222995188929852046226140941806781979215772311752886163061661564792978684687676944424077722897614366901634409355441248099797244937102492074203079418859365015867456593584427910233142515753878251869927306996949528302016882910697473437366390840799986462897170798578620241842538616432579139797708787700581387925770213983060319253588041363464239889941095294062903859728251182043331648365771677095513105407831850251336348337010254636634202447584182071246161566799103543579059336414375963779188982521837832794895542343312321900252546287817291038396047952139865699853771337660534977899685384031260897539930143593030142393870417919759042177626327220018956102552475768113941539392198291213437226528050334093484969525759867178648478364723971092692739272377435293892684838585771063327921119101863511293053048287336272509009134084384486619869977149050764074575287040620401185943655372395080972666012104997215964570014689504497458679971914199138830689026906673324516012144135591772910139489935091695126803519311336116903504757182671495550693155414756542276247912920491637686040544320407198232375221059243075108683423335800526552829434672918966944604379887784579869896911079679965004607248811208319007989494006684200076009775905084189698275771981718166429517483507546497559480258098339477758418670837595379851014662776169584874591465430336364672393147000880018014402276048579230837278232748336315587300113478875206127431224313813066679290011576198605313897521579010589611724961430685562267295052416920896485620363315893199988341914236399157535555869297985061456471227408043976326003160409298376018992612811338793481621735103589754236367030382244252970586875651701396989154973875633091533362613836047743434019523903197191127592469586124559317993001875082448824150759026567202320126068124043121341364058465424774017525948842280256793679611260105506426759587725612791130464117141701137512755222364535694099471839912363223332840320004624535169988016714299235639043355174809663574638168792650828873402056116606414072638785481081383126749909508175770394421571390364235642792832198214297025960706421800168235053519076710135130776543050288070631277505890540738530153008815190183546156326529916776689278035316334928767201414094588257043707401707910616399245593529063855436423374572049866433726346323537768518789096295771003141228826451234167054149808386956073491153047812298916282916279211445439887795075915163630695814772401472956209910851273081495591756405192923496534967173441990308852720907699528916927875725904998452683183675772856178008663170389492500968939659914549920860045207711904400027653681198134274008568492380834421144507628688572248848767897256840116205451690974830556214592613667302751287224373665914685686306501533519615921980009853572563018030378835335869562311423935999576983896313519202574283334818200059167927363820783453122565768226303757293902762421290084191966725554614155182320785579970181864897358051008649383840585468403325627161358603016651656284952775521063191344256125086413395190324860179388243431994099332760912709122746475131635040561085710755936387810239881754749698322107575946709670500713321883803194668180087230810117448902381060580957848210814596910965513680434303130609772815029750814165194437955602952336179942380787578085209295838220987719383209636776476578302074932285106486380840486318720732659249290129890618122002447047138708680949621185769172738102125653600280174919277431746400908313274953598272112183123849358501957202831618889803776088380121593679790400711178689455941591561835363993263453410869855221914272204728164739391424867378411438422193753807691570740528827667352361324697783258065301594279916073448503267285171198636578389664637495721601480082208198446753943045182919823631517422056380828825336196344382742087027892060172221636191454197214464742007679476496414732983581080479630861365993595570363991662169516940651912627142732849158237879847850911628967869847890860312007753035348183693946371560212233347721717689039993256383802680677487204448863656442759813209245878990350817510119476141571935517806352601197270362057894481372746142177293682854828329801033569012725777458293082733014839657247214807423972503169780939187716692677615137953761614736011663127837954639068732835505248736417196712601385884252461768995497720624695267528985154441522479296054410615780438721929602105837926054592583414484180819035036466165424748919353388470042381585228289715021372405309004217203503460151698370929078672825458528263686479564343362326157026743777102284873000497184523110148247020044486827314000849417798853563744850861786704879558958851588002381768469497356386851311088187180291655193198066641805044831206949435044255688646258678452177450984014414751537425561932757369807108545376188248674129171195781428039340512180726647605164519469246581790491442535740841912202866293091461734227231723951961478894012548051665956069911967979801556301748878086614074559080048782305991823005334802652362271804038848959457802623662142165673933075097770082767906033519757681861290942719563178239299409180690436976023837690913809858711647853808550643779694425504387010383828907394466849169869896127871103484194877039907489100846259309998161017492217053605205966925912454606294761468109226886475418570932593985086974848980441712613957875248631729765915942557657073350943379596819673732772555854344779773030535134028788502088951927560914968672264325973676264100640045818578851401472320546742507170496271540611994117173460185013793122287871465470800856603466464879616761155385399800518327034052344461064530374381457502248657807651162468576621970926168141372421532429622370482512545622647591699327888761711150952347760364546530521190709694232427008383294525528180304617861819474144329635836752448870445119576856295883824064621000094602795424475261038492464621735343975484598186851884717562950251507959172959593663141426699082140727558748971257677090207078834768311073794971323216881430045133507501199718080306640749147280399920591198327250873591632023458136450056549091246223406164832050656579859508201318836256285605012769028332778920227179446137896634966946726729132439235638017157279549867342380878234775369068238070594346689141228318226738692326708174370099840704993980887036269326977777933218632793225400179918689603834100454155001513040326842356651069927557328850262847635588726722069251390461389739772493083124390854217695028970845506322786620124568677996337556953968925093622761058582907102993693557730017384410389733432308632289953900551456144465406995114175461424228582461370104807701819793944560800527954272908848235848076785913023267659461456904884509785443472130725314927699218635925830840678073100165099380598347914326468889104244237628404615088361647383536365890686469879432122630634886520145710271515358311397872942403131160167369369134884287817881529308461669530403603470458326175306146856958581137748486211666922629897260030966169440311336254361136292166206969675657149106729007339186177334083214623320023881605219821242465772506200895129185575033130781811731898071686539609014323732464888107515849380712287029720794576182354917745321322012166594276443353664123552597712371096945211507450379403298221915424190226386747836414395481002514949392687060261021722823011384884009852809232561068571988867363537443424681858138393957932122236149320100422803538930655706209056069698028797119472186103719601294147265503369767652164893471365689112269977921421540454605307770238204579754857239726006428296559326985763208580575212331002228299553837613990389950890090632567676076690620597597059241142376484677884818163263442049258818249909045610021616871367586429769756402060513303635881035324970434667477818907859156203461908529788776964168542357410287031866534934894987440972032812742588968476726292467820112136089505357496613429879710481831301983009622860534350920813914164541784858381713683284425021716739196770877886090677070212938316426019449546274317261301466313183082322507201108540607513784321635503993954444547312870746246538898447160588683381201758352306203583303743359080905918017700122458849659539747455406332977979666655075047016158750158215088690179603705541447210176374994916478047858187029906220851634960480289983772099546197388935622846602891761455634835806389152398276744485764521906131912566455265096367981397454962360266497852596241438812661630110763162144184478916253898065379228214703574166896817593922217697727920927565885500541197043013607081880970926303242543539096207381145887549335240552773958225957138177553399376039526538309936056894644706532848419710409639437190007124321767815920928021805968932314295228749121123352452655279971019246318606744313400040349934958581267994424634252071053739330236586838507011040613977223635381270080278514384787611028148776002404671078171053919724057915405133528736471630107628797153930148716599871080901162054973063597519729682072855613965186100202620226787407210471921980095894518776953286374972200533735882457637629756838642818015792489263010641417950889363948713450156021595810695138033781451613476014481821252786127651166350053369840963404710586129037816921005718364069369672528002388690039396910047562845176280524311403093345726354121920313426096544681941165229369884300684167921893461626273355079730957250840860472442514907077920075863120073639341296455670615016747401978578245785177179523209510615595399469337038076427822062739316008166676745026639897584526084037126184845249338611512213485850787902524946269054169944941790033943152092871242116468670724574789707073402717008016852638072380184687908640590989879735036741062172161086915480249352669318183355856330138951481308801014223000558088272940488390851011165787362302405038120115886145590321576503761818755424480262001612216029007519400866829717069167420261383191871366479642790741936108339088129921086857339409211160019927391477416193792115348837834630627375674164141207188404981444707060074864715245013481500231074485247316325774135682965636914425762694423227542574685116322633748992393381268663929973649066421844785933366341519023970674282263903579770839607280388593265596073392998134445115959839375385029459875853592920348544425220696440414083173924216843585627267899836579551296167032555637243816341950302194950296769296570357261355199793854621384215450505965888176573465552980206896794560866157618812409342222544411030478451105433550601373405872108517688519110682376233903900624034321562158105929329950146440682339152396146087832439436390770741143958194819510605312525039197108562526726646908736852810362061653616541276853934283018527679640364613203822885003855013001707700471171452572130988852880115550144843426360586240872897610106795031960017526959978381528896762010410608126947903143791769675139415258843940070140568613418512456104788411767181399882498107390247670221384564494290407209017125894314247791689004723871659166467422227271060480192830542599876509517184973917490049558398734576196246531923220583516253046889493704409344790051622058649658838982045666464919702686582793649320100676143921083675500415463533375079955169768081466650398090126524142166741443047392857681894349831813778768242128379229642123435983977921696416784585356876529597051367984818581594680168299516218552119189581427443585539397183616010565568435915542730838462624347002628114819597290053414685039942500527716084442334783853422740794641666212597901074218126296454686429492334967703085030338656617588913686067929362677614779366892415893346745317040880276400098606043401240057678507104589084594327500296123417173423917014077398759585133765971500449304435751204635210195906955873440867502793786719235770262699046330440706539669230692536723147911604791761623299576483339102809804605804332719030075546618427936775050548692780361127980256057205105001438134778803282840641250443087922564854604809701703561138577334949725405572317745053515189391879777920956540472251361818211751350246321228839680603839177301799778586110735275865006863313576438510590518702290797043160981555099961591986012987516363060269222709475700263390081125432612920759235465650096143847884756378934318454371330693589399369126152336753326268460855833435724961377911717833833983710717444178325829163837725196184793285298632025217256102649518802849580096862807848082322896327891390491725314013600555941279873496464334634796274228505534504823513006588484391384315123724573224824950028582543259159955854756103715859976854151204912710672302476052081716015022214666801130099266745381205294769979294530050636950203642390579643368049984426126519576422231414416522450490447126299509243256497498265734499647172398934870288180742339639853687104427699024832717996206404825459579980203481533264690512887758105681170397301073402399922824867937106689639363847672099733806298545210985154074346052744782823396743680842521818194838058205301454425612803993226955119082273014774882701942806209083650533891652141129800881084787109955164221778327374478350897544362572509881060280426001704887425947386395452639700390066500047939656122823914851628641315186782617910914110350865656097213226358798374637970984366784715320836134540339563930521055295916945067817968776410338252368954087680644983956084189159857639645308916810675865002685143458771134543882528128578535164362881787257883908360670647998683369428572651341401480191608444797757547006836223249808041142095390602490829947970073811645713625600066992276588678312295026355131560773861573386704596269966849045117456260266688970188758938083692734615511599228892775444233018828111663081825099982429173735053212256901774499412124424725749756927834875003558278971988800433887675930156271147232224640393480505157256541749398540396806160366104285469441431983360659864698614971826808705734272175355795153522978478082279431872887519291999415367133943954430014121548475765331801134264924368508420080006616219459734775232282779337656898287896007924664349079997659733566430593102922387542244076763070065002875411863814608509625939683634729013965193330794246764076955614821613532124703002875293592758693373937155742570068491462062126225106751853011552357199251758428576671074933782953117131464734351714878783026112163186984342245797789282654295997797261086189701835172799402682100083303984368935286816440163694472858840015873945525381187685033472214661736979256299095248200875301548781677699712122172874665159329637063541112064578639834236621528868016285496145907017289412588560059839685226591311067884716896515412714243888717357827452178057982866531539022094082548461912234505479599324453228135023481225240163894570966141047315237127711946151880490812688003001709882419559258866210327873154048017887671842870030712092491048541172670221048426678195693992756132310675304813996139902055976049756231775723035673149068585489280493198106397905018802612786091003170213985515113825696414605344115761475102121865690757227278179579162948462706510523916988066203292069025936252580025865987951617835779618500481762623079621253468011787507634875412715211137449706719736257067014750286302175404818656699490195303271357575172220552822698581423919909461808423025027721293433780974411784056515690449118499549539842965239571185525885453982001885548168637010625388056325382035523613191231587843235204950625122483695332487482534223092378399106193873624556276516584618367792502820464444255024294233186231731730408922551399839028283361492112993848555314470322767255777508234981089309608054091156639063935106238022017713185976944976553538297117140797387709799440626728219040736883258028818553461238186490178051794799669398272478731510081657465265145154114202209777593611554662953574477677595088635993304496628905848613595418577356050806390105564078420236329706369019184850319082128686042369819338221545379435978770549937187117447145414557999000180190927378835310697736442359956826173701328822936739106651491123136037365700158821914649204744307094279932469535779561831633534250620530298129750165585066319722686700912810545088290631467870845656133172842763455428983038999449687270116845855168623780043357804304384064493468680957144815158227379543080392709083693642187620417570346738693568587166030484691642030770861828946078953195296709222864943485448251282735271846422155910771072526546363291416494650763654669669217910265600076483069540118683646876070794571854660475245610570179391346989763571926613345018501377709651677128963667828656771444219861316653416776928515242603700489225281131856195861486436569507099111504477121803183515228135369542640380844324654302396037334662600768426153625573768830000547964567837038705554623914430558182618008182372215892811477798100755076854876658068901803843820574040571651313372938859497661664840811017399669509254721059749695296362744367056498698657084561554777812488019760212200543356383711317721080907272901373147876841559663390688898391557832560471692775826784341433128155127731968413882491534104528209214208192642804296599671316059457089110325415812478031205594286322421379418120030178841400799430174562233910189111786476349890038709511312220026914977919338100612961709272395090254947773563100805156577231935649690620505084640139260577317089859904264889256931597665866212604952608625808681057056250925633047149380493334229837770731114206523792259745143274569552446270712392854178449005141831527907316096748662259456734889663325224255056148494964315616992600001760770854682247777617335178766084524660994674252230509797852004656632804729099494645439349701691108105818045559776406184750274144616413518326079191096004283308066786374274560460217748378780250237541497175438120566075034470824674646396706173943560179328994722719896120886265808530726173049765610527546830926839956692392695878808867916463510215663112141691556277138437845949504581421521120979836765267012916085249679396921551432527322835421384605326056466113650815657984018800571053881614576071172055657807605051316610828533625677726968802803198314402565703679514000858087774246389402125575986414285892029347403909274067730995576783111161972996766209080478536486701714351191064483683064304150050909487965253233173027183899694406423703703818496181221193418514679537679064818345195648357660319732634006917876632554624227875941365291667498750786994310251504783138912682915225688999510847957233730049616191805756935322475878710798477189200932471533365408446577355968707684903826124751301870057791209592929770800235652990246895932800668053051834434592820369550276584644098480489517940020904021872080319285733611327456066750419562670182302131657593159126135411455738953473889495943842213999217128295338556030145054051417831985823432674094127603549251368953662522009485185308909251175318968849052080445583207606619319579551136210869458488294973350695692565913381037927074872093297580447904616991632905630444000541595766413843957651203478210417684837949702918141717106855742732350544516249419094027030574415231003620602288716200857989733609012371344793107419710473074187190562860984753140309088319130554521118813347545977258565806679480713389911181555319734871063571992561684603641910731281527363999065458805663365277747634579310423014884802404546093935090733169849400614348390459889903020692117531474737571219799401678599165904255447528077727795882788486920521318936035400319470002695630557786345486966920803345784011664310214597487287338172935315465568927095701766707457893722950519042818067360905369133739732053416406908852705533426764829668684137534030050564231384389658876168853638539389237025492807331117190909068231671098283082447774707971517842032886567931898636110271623387311575874329518181067532593843933910347943016886202072313964429470112584623026851879107982983349286420474903494832814956153484929408903809238190938160925904413982143331835069350692085034240148757711652632708610190171627423643266902436729987212411492602106641144817914881611982235521859296189080150819832918151387845387109941480276652662806676313858879088841341096298035528041694063318623207468468522410298693768502949310212635719946566294141904628423458585397126858200658424784302037616973593930206794450998732343382884361564929951606491068692470735108132295551663220226795419818459101655619361555261734063827728613658617618354969861169454834451210158645471611869431562111312206956572804250455160444544643568034197442227665126827626921704121086003513871007310794413524941614650418505343018546510254318756133022667681326961577771605419345774643795393208593880824230560653077095441465610157729040494225580477688326228310276099339532641861999354895646842184825626176719106616546210608158829846252522431449154323415292663406024708658766589405439275815350665756156045998912151049377335252202579932617313545662703679512002347174344462877170868484532215171219992353550617555200731208793152533769471482276556850895575119195907714308563523369405113001223205666070741980958244490124152692195214904170408690079972032293461192963126654481321342640250952430336403960348214386405300780098918742183499378798514485463699540344280545080639202360498424997380770838945052642925002441610777314717427384214726942669304122802432235144470638517141506996363019216813515016569082153246846329930897687373345584227008831511707347070681359983815031368721061401511402953093335982741008057360654163931544791358218836989029142250943772407962221048356102054448207647228778030609297337506027122901429597517976411259874301549211460147114379576460074539541049452989742533111788686531324169428242050878398643258052746971137222888696701362941111821487463616311673273581455395125392026535696635889255268751971097775216842820084749069330791847705590878674480871670174727715850343918331745371025274108741564164322102700603269093188351976043236048749339330016694693031245040846253092166362511429890732344168397309036052548971127485047885800497418003385499550045604146826610064174374763004527577039170938251063880489211371762365147463111321422155888084819568694089704052666354205662573001193060564348456663833527965182350838917470409057624424592963586386678823317161583419130736834830119544248344563945220024089310121785692508563258333527141397093594176746284326325929666619474235264726658074775202140022147923075090871876734270558215783617574104047509794827938104522876820210376306868046267760671946588136389837597914475728156824707435179837233768231464400524885196798179157744439340103025974129147808383535860858742094618430725271490277901919260982463629949888522074026092303525374558595910967220149320337261830676531322935845187181616568400640264757996346925677816193193803358070901304718764385263420052516000962002245860386660807284278869724885309491709156256776835917142804546014595113813815450955239705471980715171158545700718265311094676313590209580861827302221628663049750772383065529410851653610502458631733049944795829747126459170284068754837147805688170168604166560646418790339114967475303313012403565355004898644296347210959486633638633778416557242732133273120271465990603196680441728804462735321854778165184827966668247774046491846190228921844990427180660047027979771238487671740236516749715513338950925815625078832353367207388070558722826080914336581096899544513601242632443347721205594221153285156211055422064404365795855324821027830247837755391632764117656378456323182197460933418476012670058772598476180718608350947603548579172488880042641630406206237907232039548763032667774936528693353890510917554090002598774924638328559509420252983536353518865803806076266273941755202604264243316862991908752580593955194476164960019788763860539383879318271356529521945545619436697109188209689776970361136099038161405785269117530526974425183756460574125635316021565804038063186358385719567036674692182244909035271860022462077909715213104726837186472113865582851921933888982376732400033627306641170607054790449449665513512904443068845485044192730128026313802168305578948709876368822991834329136968886039825198445754752542407908962957244387858524899107204689784676092151590543596077683532418097129853986613263864241246438263348468425571746311444779796531509134969604520224899027038916698786512779696399282924487688969806587822341959529874850929561252513053665466977286439478311239756989101599197962341982831391566189070872598376724166195789767940832815236625400986789242852108688574872237665552424209617428896387797306594368131471623125125031039682055282610370075111151880034464752482021524700174683048327183510321480268022963434564405337852177397334972494098753911397948069915896833714330186130905927846433987245622983092432001426406500315133365161557789483612069031701971077361205441650514527571510946176033088915634803874484067860303707734505608218503803956304008297019668368479171102061180865449497177075755193269464261789987170694173500000360573729092917053673760652327546689918241930492689255305876711064585085101481324656481282756659438279835701912328106598164212850734063969935473037417020951258872128250283363966756206770111472655490689669516462381424178906955358281860336788640259892555975447332662483703572885929897640251023321015502289351012642821610256688857179804591541395430508533446446973815877064051286897821675821583403121303293489028952857087120475124962891109516128566579206534966646804689618028713043508779298089879322217559884644483855503887102504599688053584847625188932863685685176878130148586026486873733880424918424220210123450811173020109650598394352397121437624797173542395269754792757205622832896485594906978199259605709238857600115747684801098520124048150858287426336897336714551412378761644330034628381753557123601286567574461511896711386607186709007767683302687894195993642486263162817858433346426220124997652429016137775067631976495848783970959243351531561906655403144140328696585726208245337073266071867924063537379072620816877549323803877527625496470886705275537868275776411642865371329778573555090663734873848928330540499505489483557486486774248182782230645038109567778663898830420889648784454922183199362680823208168194308117283440115338577200798885749312356733086538694076754256830438796336596457791630747567585872114034183916173606312116961547354604390828582588258994821630959108599416272014981415917498514502254919967834165183693523787351238051031472927202699042539325784357469053027292154337917004077119413124310599662890002902741361311538752413822670756857619639100304190626099961162854348172078332818268871771023516562956043916680442104028744693337849624623298573125513301795986265505025298235281422131525043305744578302104448965583012521114107018881153140037687595068443604877346911216240068888695110303149195546019910684173326690826618817267511417107270635635320820784908341489053171859369111774626709047380177870425033691887394820532373372275720415637031458662004382014300295371481539786185703238546408494898215787572295797490750191952911701941485107946244273442675403398211558003582746452106224408221599042914013956131099748105416878137631219630097536924855426739108954729448722396094332784787482329657676832028007935248282490890633234505364572443249613463427153684403095651733503312260172497793477104705655982680702850768821253449688298559414699919438142823189179382216743407175854964971975558799799863394626542965028230748228562089701660631881043867290110037153035553840622447594185491371754547055694440581620178052047627272399197293442179125229164320843718078979407224409038817329914069178160843146394633272227031643012305347300599782674694482875271251843622604440142378637579927545951633656105024508381766572795590251265694959735761153460672130413437073202915021224490709817215519677472041025757744841988907921029162460171349089914821833514366424111682150487353420543869831021199784696964669558685819522229233918892202578828196019114943505776450700907571488699731862912841315172806926125992340266331757524633051416601167034777850856472575738337044099567772877174130156746922078698685488181274910239589309499342741123519657787182405141663358060197632662559897577545585441900499521055146504535728060691525894358358788439009614670928955627326785223447236194712448299659053072029421578988681425889826827362045612343353892714839980712234604723502062210417305614726810213143935566299920077485119979285166763543145909903482878853155533597894018747187983939399722391610742290586379697797410713057449309935923694878281651755250622585893801039398281922558135071192571181264392931730098429427928754407110653150227143014242840883555928836769745793025545280978770065322385171509153296486282337539864988703693811935875150820650011795777382366313482066070524293987202765504319302454927877983818075171143900357048405442390413350559293380669873165442967587209167324105409023886121043311840801015338177132726122630434375733194376763589698915811430734330404527914655560829295844059141743370260880962540443294535682602828083985457345833488418176023555607087551784504982569645319484443167112090833536723004674136902816054111176831868940358580039058488876423383233873147019573544155440613212515148605601970368582945822087715608294978236268350354083608148123902503088308842209354691992074202681996158194639898152927213522447988384556731732534053832326932484669549566331910864701532449160366109657728368744953518744751245598881893695529054545180867980995497368717788927176871692339036944442578425762450075306447633301092654363325594288380114877900417977787939653886752272217262859009835229990981733363624455014424016680796186378584546666313606175505134238638360536398672345859182753166568801435652352988118082630098414485969265686014842029831726596366929038432847713742501242586043092649920198207511366439367596079347247685310395091646917619332586041370738998388655761264138524135635601324720524647305731513595173267077958528452776395532912919976452086049568450674685435467846817272016804587699411734285301754780322838024030639963020111960912488386523251068369374687536618570347768506150088281733316164036184591919869194004159670881882178409888589116682859832872761886258514677172978394958605791228395982178580724595353108428342222978090807907434040285076167207191007704381747162734803142503448592562198475709460490959397802607239522227955979009256178539537333097995053437784175503156857512402389388564576213229277974019492403176751683406231587494219648110055842770261130745966405294798545366080162106555940382338650746834368562417530354788961671517517874824809022602764089319943086215006042343150379136631074988948749917591265555292514187150682212214265448372627389840583977404723739875905274176869237699308096929894465344315360822556235766599101333293871712127036843567459313857958781676793187647477064920229068605489237014117969392322913031233278743107163021510469933832971713682321253002995216726322588253582477899450985868285193367990388466930178204730689411342166460479451972063513620294760664348688217668192577124727957060920579916788968316939674566259426497832975617573578492461271543010359058994280150337320391569385011371515787811802143466725699571229306955088226814395575106593803986235914184217754736712146940183135988560337520368371752553433246345727692096409349513592628757139069933257769805534886136339417272488257620090817442667616877199492532085326995319101734889126437563826839656906222082076000511142853250361049562052033327484453828341657332168352132861107686502618550432976577114549931292912116682098390994886949275403104878960017463337915217528886645040883484257789326271260348168869346840222387451587365183701889638096996806689801132696507387347282433372320534689392511480404351567812449681280962111738727434115185973916328804678385857739919405430202464475052295965172075967969390825802053902062947113115937870357402064008497705889000381284540880336147757839616879592758508223868835520296151324490087324218991961827731305739778767339206855486063819607933026879706087143422258704141854039729143132861144929848511803209262190683732046706492958106773293318124501746791130816796601724271669441670461315570572626102478043951818248176501650203412718516010932240842438253684497016378340094010146383125502228119592336811711169478091026735854290216815750983422772445737970523931008244680386081177439059910247833729579306419498852862952614043173148353707089537624064949566826607735993055900205639829480242720557890482941522039528872907393747808670260143961835483608130962949443944907452686887907875895542123388309007146281533611868523413540528069569512104939951970513288933188963734491568797857318168091643751001045091649351437635178420826199665490413631748104779921257358773367275631154243296952819410981748548277735256741720063496964882743754064712597913187594285483371417450232823032499450710558819273430017949458691691445987491901865965537529459271841179324234244120389216105280913127626061901562332607146646632271073190423268157961433026453911017568550370974439449397360061141902743323851370070594029500174998064504917907493924279084625825156671716885498438470743301343127802975106668480404023031640858276944757815671199396152438277434753487950611258238581928349094581641833741157376166144553866322922936527084513766072447424534133713606490366120819706344243842072645779506077478203687575032744971761508516862805622325445282257690812292883851505468503856762749856469079500437254454325259568323549309033731923767116915317325824053656700416086587837213058583316685023346649181794666177287031488047759369917148508776958267563104520907286375835385982361316257989636533036892317850714095674365464143196562028421815149660882550748952363430864308732044019304701143063020527688792364564654008667501565765893463341993280234526718896645855280105622185280079494743276088598073519538153315050632545823630974082180783148309977937541905852494528088063582128075878973227026284780890879412014771281265321489235722065651728813155060507074148476455044666211992116870934017997958117014830828246603614451811999508868038829813959447277809650899933641421228063567359373180485261479140043515884970576331329559971022179835091228963235346890282723930397399641331418663802765600787652108684196287750945754777386875452928146347079271224188068972117952198961812486348483911371045634611480708402484568302160051800315197654222403197644047779902901215958044559480242662633733349377385961104676345928530993676124742238947055746046473075025621839466127454021602426284073859287160446738920247445780949091297905704016907405325711973874745042684325954200702261201262482369912618618001393994545479357242066223117452869511339826786776468670908657334480968909860223814683902155659729011373751684109188869348505950310175051271309841418444906769424227641429956308154723689555473964522916800843928595707094328665692495860518548067650988548098994629900775598402834189524475681380212104616039664766423309872651641650383317059071796610051019892738941194907062506516754556620265936238459250543033136898812944893403743717046703203150297191318186015498730461916466693456360158378194312305590391028811218028412134916328483405710794384490836296450692895193951523649238881943832363142486214502108362371636348569656609110241632891194632045887845221500925452082661407639850805909740378868207534502429850792652731543842620584034970509474166006015075705663647295209886615443369302261609425464059432541662382628695965476201620155508622235490257867920577035943441435780474517551611326105697564948500396445793166141637980475055662081020212614655864027885079311884892858529942703354389311944570342368309980061257576050099484222440687053539616031866291111694389123669872569820138913684920933634551002390593327329747810755751879765161962646315887399641578390419057198945845448281468190137202832079567633860516343151235444587296072930981058214050522442300548834822351326899760182567677523894666080603245987081967434129723659035160242632259153471744987701275237058076746988780873289073864474944322262398682587037384385494634049931600491168259369128725461725781464836849571403900286867464393752062471250331924734974808028153043018411022431665073443339016047996206893866273669424952992877478631671295873482839100716386225571554548564681236395811575263108827996827580928156351058833481824791333064509665429917412624267141508370291184756852978889186745660299683376027673617050038407363457787617303678072755845936284265182844184312102301127043825875406533714109879912164777603461632273369629695974845757800266872745494768030030336772577055644159222829959118174763278376271062106109985459817173469423397300226060551194738902986232143977708893094734625309753674464860497587376951479382921182648822743390569733211961271832575077891930705587007729726860430205303160353899043524121246801952226953607628642483255576136454370331669516298648811644808308157714381298935322610460070975607494829087092048365778205105626611964641425817103549696254610884936255275285217557660592219226737279250935826703548793517325620734105237402501137805312261242757077832728859759271404575108339103797968961452389754415957482161760388697940454428714004614377614798256936551639055613763587917017956054733079407028241610791236167011071145559537677858960586287473227332444721467840390347696148820036176676656055504863666197469984308977170440130529652118426465641301914213332848274350468781494980398858092466991557853237676730733836449013387166162058057237887543622581334490425963285658086866781594469782555996664944270082156030828030200084632401255550328696405073025852019898736562067630348858029445957322713226646202447422598351968854016957705673159656059670887083323032912682764403006317911919929413481835792181619310223403741640834361826721598251657665876088578010609682744037628860696471085605113375254569024409528435142612289660627516191219725472876364135183028960771012180319948681469653692493588424352678890660066185490825690432592231002332771932116867372110488652121143747894254045881791841711366264752585412776930561789586548165140151149057093429408085190568953021042570274115853661541868518622409512609779396624042932613271309481998825734130462464950189403697776068175937373786795721350611781530122215183082208934426940294071353250790657842911169056952022496803179549969774152444731349588743968806978708620942235696616853509427701040967298598741089473292708680233122632734651782254153535021671559866063586718493044734792990060733365572193746300118384384430738121197370653960285985525603265172185899614131410027778822379423628500935479666412206666843115376356273390226036254602748508635998830724106918286160324022773977469598829903041970970568426121647647490382560431381214688146030530513155006357701104912169348939430545081599667728055533236723565580218668069709975461368463064500772031142865988795709073362745394001388112690918118601233076431472826627106025816515492189971340359491688033030397076495060327720453889578365818848775475094055731500525281847799120612808217222140917376120504225194219042118179015589556206971940921931575210420209554920727823098475615728401096942460971552289460273029848810934513290980504666237450864941618778523761241451633817934584433389325832632648036985360490983547741776052998246988243310466897230761566292526150055592130622712577236339748049310832599402387724353609845444029578055794847608476333903327052628453224295031272919714788386808550276384191981474125395284923093944468688371945203966485212948404472187012252365981768661519841037123176550265143883282900444271193790184622619362939353936181970511186582110131359188067658367463135421143237448218673874903714504230789718068860282732421683590128977125639660242958441978089463379816877100210784089219921753262158581867410537123663325519225781314197491328110130974554051749236126929553827249618493844432951886269265366097190277225760740095634972101323459261766987567846079148432147928540157363922108923888953756111086591293596898594072729762812386583755448003105109200579770169639961423698742427278368858071069864545741134240835865761979718570905810926984404546585863210423855304222213811743609106859689613105121481546961752725283151220858559487844934600072458600953292331743529802619911161337981454239313382468141282059998082841368608325067727520945801258494557512552331308824452158368298004442218881530598016915705902906039107170487195977046307097001570163024035274862887133196123541002069688072868921171351027728533297070013991558023035963994560826726834994006647395116184419756261233652950513460343283549767379418724873928256187193952329526849692959422615594084076393983087292419934240405259046507002944118226492667519784273153775359857915663877004232975513807559642866135259993621737348852328492968637298529598081288472519623396857743195292142892659961888356501984634935378989388232982284552948550202369683980413598948224077335918418933401666661680404335568460161903558778304798368649848480530098413748856435578428017036898542880543546890516469206457695908634618697331383458156093850567700148521637850171442092346045633041713094441833325408523343590961319647907698686518248673666948417611669159714885659671471771617418058206934988158212082952628267917097881307236345380326461641371495295771624885416565373346613122262500142669501457644053826181291331893608214452790447457687832450135990175780465524179268944205235600663889066877591302139940212682713263673480635863493018410646735764646515886819098860010146697020783054147182535748226904774656790392567081021826402240365804382319983433154546148407810958344505074879739305195408277115191558251489596213620954106194404544990556984592481372494074356617286630086615221287315836399977091863673228622424313947537394421231042539973989122101198574199774765230213192980610497893492337383509488606441522712091296779788759898248715157055634950452904406699409279764051152488828145799707270749983280972626584698835145309818288535750758512831897872902672323308101336671753800628870975268532723066380836278824496569679188607195547624794005135277958813701660812200458358893992717281954079893349944528886016024936212368216500603120074511735256954525779340778872742182922535234134741164498063404302056672504891953327174028389803214509818317908331662870168630599743410166974067655256850556565696488500839250012451889113674105352108864096037419197990177493748614019353346025536176294373305290468001712299602435118738648411272487735482795224207396099380271960675918419441511537081641981869838405915286487798175737345810378996814581552843856145879095130632023089267384157591356436539655161581331173863401482022983975517100557367145034270035508049638212361366666389603561325571406169146447548222800482865474405031732994080330973910835351380033224827096561530957722981947238466327803468685449564453904417112268889980861422363083875339398766918934944564872921335196296385569461591981178241680529742722870098252315542268740978540912394615173663033093351858663385368915048562024621231705125692318089647097224021834577114237277086175321530880726606852627806556847417533811063553791375308714792195320670969755795287886720297063049195344551626521646105473028501980543836558698400248453882383623848063889469787039672756683790921350384136697502532976005129452395566073208236123852323579042965386995825324439911765362383203243589419418631388893911590944486015779966015081604902794636027617546475212282348190665666247426281402719787214937733998648564918649012923901848292610670533866748464649461319617505547914881770401190772124718805832343453143931815084709543323995080154324932367773858085820747759864343731553413813125378037217294163435307643225537625485516769403134777259212553703638006376011280003457334880541350050175319843378497991387526012450283705868331650458896534036681704363636833129694091409417093286382488949870775806531292979771558406198570206336113408323329661592666277603354269842404251292476893334047587192796020703887669431571693006977767785828540893987822671031463150479669927120903989596492013395554299426107918866962513878935388131770402223183929697139840041300300656668727162224930000360992384195934784330320864165951349757024027919961788682425018131361092340955014488946100169713093302613469988016724006059383300550179691143830705713496554088084039224429044589093038489031143261376210893386589011300724834509783533766137776318376807476405385127753491810482085869960510301999166744491822766283165051813843370693707523713831955232815189549949377379613141056654479826994897747595706087321403855003784520576418051903802885136838547111823736101903527016091108258541551465890232960812829701015276824645525345878334270768479523423522380898591046519876922291584058107706620048879761466965653567587294062520037992843491373700064604088156184081422976929407795338835972582548152977360999469946649509592371070929968483645233059679609614300018437548671099501460543374197700507226356287985799640074226808128218460456146324473586997467727194298542932959652308376855586002311292963780081334503112227025564380265808950681333206897276768007216613520455327530704106540092956987521704102050317959522063064189967403388673869122324898305421847087550046217963140030929719513862711049485523268608154935920734738837958776399662073713535537439969095576447711288891531681710641979537849869522940140262469875408912875940763338221449860999409941277855303829175402928839676210065513042189060914081967195605376018188798047287908447192022766982857632768483372117327294968277576895129900955310068600824807127149245507806547657432338009381336909877586753641076177258045727473966639126969056774586785950247934825319000516409206577501497094783699775496054972100397247659210020898674080520266206553960424406862276337886448873753471613644340689595141317744355917176743633990689831201647894793537631816102076384653240967063547985505914372087889990907136961883734106566378756272613725036724366329612474117185377128535247982377637557314458746804239363014913354906045117409497385424095232665488521884527265914159178378665623466422411792834086233700052954644957076751284105037209337333340991835115751765808252919753492607403926914845432286110162011198403212365629580041058113390685762401975492510590906373994156532184023681402137574836655162076247654526931461225141977562200342966510121183608638972575606005548782567779639923946273600207367064185199670636909119881856014044449019552656403083607788220736305707523010455128063032058817609201544186523089925167512330549646610071906386718073070743721848585913266255924958007111110174148654309223294937822233342856670954009991037481308358322358977779738711800354049921452904435489239518439356712612380281014150645208767821875764654718636439408316473043385355166402160211905394039169634120974646277946787969336798965798725487227984968394818015325009986207006383431239556577055786321012366987281865403266397689953982506423848759287316570636705818485477839535126261184540849428104951558500779070123845385701343224084494577011551950842275166902765104266622109170597034173675399296145584634435736546621985998002417660221819008255497567927781548186685455559172238739726563313145985386742434157063691219403996957038034488596867654955965279856442806533502115223663806997969748375825245711147418033200359223711019907399227039659415253259861099936998947894295839119137098425754289610563781002225630873117654282269913841019803637056938915279756631394136738079712798580267501016049244315776648627962557766614586750323409496084997722414129695895217154584204570907614152055363898253810964179535291232113473602901860803307324688406004846306593510001352466752019081950190974258246436117212582496394886099803873167582586788853569943932287528212192933992187438180938139758623564826062225007472236175664204314897795372063210008602774975604074341116698747050276398182828997970684091677989916528368345627674036202174544399293463818551671211073748688645743549788549787204989790733407177265828391339408386391918554838624009108706621906974394150423221979201387551158418745511081024298242401617280614140059294009098939415825872771923585659616620155479595943802671732862962672693857538631799462864904882866115763085734820190374924542243737917736823256759261985180066087925628081857616977700550487278820120323769611968700500879268279363308659287396322746169381792519767653578579667503432464039580819621370766019784871328317028507575841567500122087706120366661080613403002230539944194331290079248913694898629731432822196225992718137159397215453279786606085253055489261010907943167629574065486755846638698355214628211132254888994752387864656364967868104308963937982914390548592483467887149551842619686463133849130450486413383981944184328536217117824175876383915483803710597073411794161085503104454090440130644824113165730314189522898650531771307043517886761424988973367632535102136008693905998108449957189964801443387750669879028772504026770907164695522699236195148318608938294942995565541519170189826504125408360885378549049810764429929452233081844065106781978068444541225697193215335562890415394430142331079874225577970936436052218254663431458430675250015951483060727665563522912401151420502032400531441684939849775865511148544822175303275103733164758241570699526217389597709360101645835037001006843864441247158274008987041061705229443829129265312764236865668662363546950446365116188709870124681425416974175005419793965102822338152508688561003836121631124482928969523701382111931415192032660125292475584054998450808284884961578530502573673405705133308324480588875120649662747028145762543355845119116715641824680339975343117383593729792837765520882284090839812201720899187609730360465545326382944988433959970493529227151791462124987680992107106894850954633245882531947791805013114107167389844070960022537900213040499236600510516786341105943371232470073797596456102289839330143853742749892135719529264741272530864793841083748973781223946672174062172554566549871196472654176532618163554092000545758429258988189288598941215954030419854921669849382266192624180223996541089777710164728577003506867984093360781205558501344469854653710258282802307887447878511162471075299192619859820980794179600106959862521571329926060171868625412666032018451975509097614378360410622159703778256285859497838450931143952068756051644881151508795700136994134701886155588893893852969803320138394803953974322577694533944143066399567484845270090746547303240066018311051561735005278144669748144896581732196306335017951944479852906898816377207099233381317511131668162925947197636244633152881126450662352389555492456866659610426023615867092466248163363714681867627492611950783808273589510574190597855655526190534916875243564508818203794984599138583192433935098373678868912023130604024681155337180297180508076444895532249967762504042248103962665787135032301571579254565560854416020583920805092521410347668475212581696464429576815085853232101943092610896905457887611266189486716451041304110534819416616044923135438589967683295361939891105483176725681972176959065094910587459523156888276570122321972081476519840463782700557813791771931758122501639014849076186013130886836602186635773581300468922778687940947046866530179666944836430245070455214590470672625079080723154626025359224872490875306994809651090747894756979422109195428843264502870402410760292220322975971181762669951250761070706569939999531973498096745012150442566067571313286189170656566626144970949716729313499898832208984573327762686978860059481632119723979714871687303324705664060687223548086127497260009120883083777398910686380774442479277123573781057815813023950709578869214805676117242898026792399265212911815590402820649753048642854839320874469313942287633484419977765891068746725336560623164614318962187822373760569906246174188792598340765876621674432825921746375802800707970051363192383765361187400324303713558964433705097191400751312299803117832158675029173315636106642809447059027123132600149308854907346566266903324170694162986158643816140047355972031080025748430930419103372246353672681145130772985578696293423638827198462134271065113228470322961946651620577489330656643062721236252956024908210271181577383910511692718748037546575571295565931826699428485164111039699949414524110663837982651476453945472651943515185799339188233306183538869624053095675123259165234144969079037847294018048293376722859255455463935210521339319200553167537324186776354382581724432727296571180254748672963780071740150561917264341311261622377556175596117185376139998554404695789730025905578836810816195057469207169269490553306943298620754554766149274771409785406347342380091745425721453268143166639924992034479734595858303077380991382198560423200577203193286609168333772803308811509178084206565747739260719332476689128195635663852071053608006368413302938352249381236430284804883002724274207090370702106045369382807418344985872046290040320878243360702412076551086462401712770205836330757746498355590989926325643819914354209221329250647689838500375496481293520049310624061459248886325027390397664507613524154505279049926920854780233678764941785382659400497050499774723626800273141794085829911069881824952888989211998161264912401086861328078273780508029715781770488521734973141146533590322017736523215704035826038969388060115017394426320307017117596680983712178211764241301160525725467432512875520372878388853623405715692760190029624604432229772068604372129094985644287379618571257218505408934890313006420545767302621952562603849007933595705708318555059028955656985207600454997761270950046314956929613636015476740614340675753244832708193705524847433310373467131691106274303653051367759389273632792783841580129511999018784492946095613139321785958997090354670249976604467714665459053036065597015351389708611859818630474694914234726188547316516058695836645551877316507424873736904491477705538818263104602647549406448586517711078317076764600813024042375682728600324092585594843246199127009732273094141638714394502166176746788601845997075612401008080049241304407332838744340357809261121940318359881493781739606590872061584629133486491852047897446171325147802389438378566208792821891103553036796098893960315334849421690873933909438236352050479927689401859472947397018870460334426075915663452895124660650123945474666400718532300716504981608339972949932224439762033698775902545587117897783504026510076894484175626488382008637284490339780983747675098891772317133599902713338045046057645701583733395767712352346522874013399913080587047106091258174723852033210418242754102122803345914623229999284870145652706461133551711229598623251220089010454033772194392362564722349044795529128532512102249112958093406637731809943184645891435573754646387934096426760608627253904428630988736934391976308952316989658158703733877293506690064705832852864771538089772891642885803134636489326160054831216742033203307012487219283851423927466703815633017419800437411846038764475542005814693039655568212166119552317837239263467161994214144222851813211160749702203547880701136537885771389327555074984335720221986910787669469771243667320232030770018186118426615008291517105158474805939857892455762005021695909352004969400589690555679135528139354304537156757524756478432283267049943153541493143114307279273711567044989336910090516204288917628305271455147678846198901009472113515756469976400492192600593535672392198926375864439982770551872281046354583786183832353737739302257355242627773201549931203208920653329188837333498510132902829121638027052484325148448145631191940605543516594597018468829102182617840880855376653729112174944549249018570729269298156292100468445484017097757065192589404801517884870297405688195199886199793171326288261148737408788280859697734424008222165638351261421603849376673463896823377255439384930290303831227764385285867976442470386580301205189307098148228122809264305857977412311609008369246573925227464028904939819022098650706623156492224823878032697897539389498679769907014516163625300710710858090656284529455017712222218112812161825766288336478163582208900215263143831682017995777204534492687637821501868328236854105068160747337216807433590762618889564859886733046753451857122334650016403296727761041370998055505953175300864692420190578393335186405438524660256097095021216486676042740408754962755345857519824213408445857566484279285937025362776203250302860916640556454350283390051254050868132890517934010329668546807673435405471203301515530307621470613726293784623632186228679481811541111810497647806668114056421849895410827631248926888112409711753681294990616945787622952362862597754219055045127136664238508456358671766227089430465309223189084908170868692209082936879469326603941448864933991380823372748699407288898378632306579234542211883372985293392673290221211479608641596105424689661278307875307599296960614805153282857975695054082912116180719519477282938628966709358427573386950140843663086020606701218838118266406755678842463230060094563562225782059482692670346630563739810027766679820932505771308801998715312326859090682214183299396202987793890736572624856194418465542746638284528351032902533383257400144740359190141556830832994252272863796030985302591906241720369792352442235021704917210211122615836052777801060121291972682604296956825589857288144800482032551117173169310643832745271795537680056490746996599499361671460596553471381261762858150028334471348560659790285997093965398053439615249613787083494848004411964221210852009053266444987347840116829141358394872718030183374652643173085357299272518426390603025613469748904827962562916643453137047891641750734065016349894965949047901045017045308944159274101135840648292001417456465567127724837421461522462790458342554481864652244563770403417534858927466214964563297943711123872229061929969041592978489361406569978742386382013321718016430290792235945416864287604760052420976556940545145893720049687264151986019469789114888544036077410877747467099364820326870808559943718127256074044076978026283509609060324150706331769557382140668168701945670846983565418545157785515365389541984491199920336700057335810762515580101401750541483296258351055375363651451334989556273258849232978923033616664790505714536816349339536827748260216995755064672209458919264700512357091425321618797090238523956806626649826254199236104274382709483854931729943017232422662542694936504929510657136908745384404548886603200111404538970280791567109129013565160705175210211218326797863910619148797923266965460948859576859770487415015876430614715732833714355007756810611758159344275355453355927701154338317889042255810216846808621478624046604034851450896967296804242437099968366990707215302924379285882613016812217213673181542332789029697328339753198170924037509890894612874547181887293823459212974975271455188957871819812923853245930302203145247143451324151863530445041796075196663295050588886513462969214371352416601391920774246870430669305406910478209980968396248317045565517314411950005777806825654371322023757551984724285317898812235813416042741962231102151972583924576516721470794231305811586273194273332695550845631239497429412867226109539544284032059671431763526912397961537412142317344543139633445302931941512901498805429277136500377539661563095613173832402852403390916222974005323778612627488251443607249178702770810656314523880456864738579336745207472792670875631350917767958127157316526358078323463549373488572881288807744076563567470292768658762703316380522030177289537848160807208104960280837510283825095603939274677535617368344578262169459404536662437510338412983899608868411000255325930998355834887581311339381269109010723315233226612155074213602282611370121597573304352524943409467382501156644208681851995086674422213507197790424839665774942949221664859486602434648195927866081077315905440265942541776052735588275582542922533182281378554690656980046064203305048639669906853309473644805959151320895551045918396296890767898526032003668171398621865880917144803067799619932458547653257250601322874957493032826018751560174996836444168926785961871596086517884739614892456030199403168519599407554058923929710421505910778315153936608360550909836956654503007160006351644055605490417821312128063219314087304130516682359142857221754590491098536451025472512621410456163852065697917960055485860006168988670518622523781673351510939000980879974971210020809363719837297083438988940443658914071544911124594266301718466074404742310173510778556651691331834580013180402909509816453266093692324382524953245061949711516621890669605075698334152568661820744226057295795677738825784602467157037923032620477600509386113002760836152488331846127316255694802821028065426427817961777656859236253726119843401200732114386709417870382869683440941893588042435237477634565775551132624055353122316078058687819865502036103393078458607033413026862613992544900549249255817703000028097881552161276846512678272142996309922591611887772094975976462098074276504334574751057960093972491102340066383112329661133462608138038703310079295763305741840363110541078002737559528247140645478202528380361044221915738639351317020245251507662089942671713612512565095966397977248859828066683722482155991952307212382354916890751344033799536796646467260890064151199302635804286373202228204171621038203947931978428677808313443807727120664663303239214371993119891949057843089605843683704987949752197146341611136175767068962498664287822006922569418784605275342913407174309011901549838589623855624158555141673883297917313490988831629626981339918435401894002820563185221232635334709565430950230518405043590666340168829952147266378527143601278279460720104116512285688654903540068078174827947794113240682143249316911604419168435740716660947204556421752376670825190360572258556349968267442364433901653468663794464611661808818602276350111608334247078648495346056491702973946386085100789273383546872404703748973426883004576618268606027915724801715751139347078548842024939850649768441625572708893651606019491820893023921484114796843113641856802771078867372337185916336710488146249539620527847614190932792106335407757846657244945956881950580409614701480851420716788534908755979139641443958940009960925076719407637543283730190117533155758988873144066424888146351534045707484630567825838039079755077650397216791217884862077688823213401835799387751586112833394412013134893605007544610186366794637579424910473557542678606911090416188665485071072424695668183403848336852948099689374452436782641609252175067802575212196415170322057323223241698898120558367231561331703392908685601639395856490482003660114151306726882433748471362530009267987834745635514284929149789394440441361321732313166721468481789882552954013031861053897957446047182327489599677614310453384797212931064768673061863856500301548425869879276443712929425614348533817373835962287848075419418414760216240688819721442201587227804038586490901843219938325850207794032611151971457775089895816507516513958695253359787808608165594524760148146554478235776788116027893960618891738187317542881276869195022041560685594901766784110180907626871694271670730894282245943393987941486155798254404539788976860808429236365675045611503961568861153231759561802243307025978052676111154662177784996808450498250819895806404862694857727213255760753035012761940497750060433934352618186262704706061869606232511374941302236029894855402872124743402857470546848197260366279229611030676148806857702961552408092497316881202624866377530324194182433992194791508857800083033072453569234043812883456498972242665300812802487656227425028273644982236379011050751416984053244992844143093174706915322844556407456412163660133315835153979939828503344814571094406003566865314539564775567831182333231558401230359994640252412563651214629751713822693312692295167083650112650558488714492907888346112531624597483746597918578419070828334363002858881982993565852543941352880969510586221297934908174781788647069537282922183567231600690083325934447364358583257837408678884873093140773655100635004529644062830666097822742704491939256165476829988256424161872414362320681176805831449601110577732321290219976419593730417956985977446263327804466894391477063303222258081424483830991476364484494014090676335325779234921381182199598707793693496901197878559791789966206918946489545800886457847158956798876926673972359631242185207170676572570022550370842319435448615063551955627741234863288194179892542616643822135541905763894253325315712567258693142961005905197878634247747539366173891522714330948653748984464637813324156070834331370407772974788756540579337399835909055476078665902262849273090237337485090812256140775313706464953586686567206046826655979707608145247144301129629371340838885097023283262729338469879296765338141645656959586682943354168391063021833591377999265957814927787637091900533821771156020257731912530643913654903260707247114637484805067588616986976786386807424849328663766978775517181737020793694152434733679496101942433725391699377048682663668751322563135391075844570819382122399121167431887698789652536505482747409071970049609313228147441085373646354916280475268338788278149115008203061686325449521265530419526201778363984194376103072842731926344978747893469118887025847997035228352681721948857142621060776909063140764249420735433017469753933020730222123625641570351942845871167885834911592981116155601366904786968533078339210160162464854130598623246397458809790902427878127721689264740993780700296616113612189088418521216485105583045061836197370297884384200592551649265044158759596974101240352734606995495973101845550111712237031649125862568776184401924357379587603463796557888621482668514440219534506369056906630251486002482138193481244772422939568117866044643551144263867780875761118839172599927360721511221602467441658685001307047621214630759272345195278807661049761487200371561232124472207556885512797122431322115936143728140286491047128845625428086121459948105603182014467762793437471969137465407558743214803064790859178577916178473650756217325481798154077242342996673583342626841047894282585548534669791430891647722270073368751474122323695636082779514367569238716654488193701752334394558428753478207251123228866429126651721444261411196036628687340779790618193401270457741895984143043038788710939224986656703944940831390751040346612311347270100197228076461580533204299905880040008577613676344914783969341355081519764320075116463467190385548431032845978809697497565116514207371599802767535068769606183564214308636601084536515486616515052041501862664344832895230995489908645560618830293095406247261144807417417325488681846621982296100890771881549613199194041014190963411648032898392697556755079961150342890015218087998457941609126627277681966190515578079850236936378108279073365933903868535312526912380351979435117323338358425995746511007043221544131573915163119255690733788395576586532588193847664170856984177552545544275804044030201776681572017207623457331982748699102677393910857367262504924728279689803392955923705966615234307754492065198960877458203204150190014047217957291249777822931046343654851713318038415340825373489019912484647172238023960308446207970018520956932495900620919544684995468463481165064405321242273114883805857998454684234342751541756559170770617365765667189928617251476508957977978029188319151847569056762935861095511575520323480506205050897746473929507119537911727828194302239169496835689624589776772399560257494975516189099934700356188340204632293964984426495046037097653162834377249859606964325883626384426249432140231642106619227070484080667175948303146467743497208313830229225345008485967801568857456011652148720425473546480128762874698440362305549216358727168833497368658010706487087447683121519790781877109612546340205956234002713903419407412108020953010237102567070274122507892886094639815959988115772720959273192064440193830613871249154194352904086548503730606330501164160077430314980879989713223581957905234916527199802274531149726031018942966648595574441482562035342233065730440597043810429368832881687180779150369257922282255283065720868657347516864596781889453705045594970934601144662764816276191840219194218718660938971604594898624710968687814063370755937308076658882716572888272151152333986603525517501336996891028888726937041231820712176387760773719863900014499337371835330539055802171282844746917498598399144395511599075106968186936376610640687841822125748393687591288582757667602275731038232286396295888085036764491696414957711579277703734943667420251647452654792024056161699962401322648511525320540864751304179818327124485998423900250631249360340056097892974590724577756141292216548354185871553606517577169614468639932910375823230247830940814217401920803816219004670892819719407749996748578197310989192994000596164512816745283631885489308907986746466349739466570093524226598125918402675883551630641959441341593752864011650549283535011562060882854160597292566226250498168322985643033762884869259167925375759749202670232889709296093840052282758365154201929401561865258715930703719722110536578418504806532382478099666877892184660317101502862702944121858553968821669917220916641829606163929460643842070661532577671598643092644395739991463253366028924474163570469876211191204107447685389237591703305093798607852560107084694879753219124532415986846840919569857286900288976545659095925665188812614747366219868612230943350029617304579888327405153341943865553903268487720948949623702787670849480196911398282534729714338076530457546054933671864573249983354216575010429077813053158062062678465180288245111340113616607084596729813797757729151724774246515021054221358930145350444048192906967814734595171539518089781109350656255566002372644648480369472521623639236350488876079463711149966243649259709174317861157533673308687067386570599649707955933375221205744269451460362597989645477251880314560762994008674818538334014223896860923036992221304273209411044358065736248166899419987613228118058459677682316513965887887690335775536206583221700183662031973569184166298205521461546637416405888241824693802796343100391007697165076356405919908633703815757639732749600653404494184231148013205311515216686093997499304690374923426853303138407253937393675557358439886569150927145580618346372808572368459923397026341991751110746048448813516090926329740332348505559800885239970825340638196448092818679477940321788857805318273184252279762885516780156419138368217662354663329825580301726135394705900229317188336692492781328354163192096603457768105168380513288213362381819748185786728966110846810165426505475917341448010208828228474095459426777206844695473233804502804364583062516398422967957147771920501611783890112511945786202690088173614299480134808316209187013176695852797025870812772854215890200235484781073415971033888954323770393255675601155493666329458221512758825008174321725001886307268250329499636797639720177499731876982278676846041212052915819805776680095543239061984525059612023686345434025633587256223661042225796436968685729744840350293646800584034325716380756646734765792178013550085688687182328487190187920908383803666986634365451122577133175405185817212020391929520330173407781761085296151171937821625234624078993439771768126327699260148767736640391099454471024108626255743719890722743328222897975076031792202095768688002867827473323447987387221687953589502560300519226485105402139976209396570404862686600335235222743051833039938858713361137165576528962848962606972987280505221096981122056164180104776921367834361041991733081466446653885551599956446169670444832999556916505169244506610438688016381446740455411342573292566598808666615665365560637382918020404914675521199651358830242962625630357086333914934917713710132746488358588444584830332705815787473707399058203432673683783702065480751581875363472666058018884954921587793593192247025377038466923902464043152825688893658462642417306509606335135981388768661651195203216141208696479155316413593752597356894370992570502476876157736252493293358139957807590900161294268582018709296214339399349370084603921115047665060109012039581356280664549854430186695682898550303644118474817914100494713380310023529800873377038666951184633221214418712280347328522076687996150169143787063797146297972051625054729059072690922266354636061825353748297481964193436274280464243579494058817065518693217652020867888963022099510693588281371139799930667763972031287089076846821535424236023369052518164517113401531151312504468237470263050667748668064117738214282048439300026877959165318803957439009264653287466743370588735105201002061727676110588634662378895833196538245891246435894815739659588566403164527836535639540244293853701542086541037683117620771606136566879353989977844693072341950778245921036771220881246080248325160265002784367887629353651655807352388702299091683584768719474579564558096716316044944936042492983150846132753239208463841225667428325014586091233067978734160034671637602578183143629856988617457292274616134956559034890143960298792972385557678642853735260712955355138451744658885900215271107131759333926375257844772639177423611254746200172403843765233967513574632310276709510180053881201026564288576903679563788487405349554954297959291216265745124657507467734718179290146735520591023726907666154817377156530368776906692803914473734021848570054262804254754602823798492278511133177726481328772954514928156532479865866886451515216004109886855116020380703380513904816289077987124495181640494077574250859665914496895257450694418130100980785322220234412326746594488110903648617780741310260738874871488606137556760099463467379580879626898692137542974435227011921120249995743741925778273713456409901998953774609514930367534217449964251643558856721521852558643821624970324823351645571979349962341667998698791539272245479304508201523605462207008195413827796087192232344021174729691571498749369102532385328672219859851520407073690230268973828425575613215155191316881993658045188297333786515611086359801905840840436085263300879206045150900938833904316813430995700583406860499664803789482515801211272162412804296901875516020207766674296692430340786121347111556112217076017902918596471918882793517847961895069320808505238223756388220341446029271760537902394022530195644913341693178639459762957582998037101851111632773409148745282101910494853164338675174015784881882250325707886609056692320635004963534958864059096770874298206288764999383939433053870896038135312132848084980217813050789534969163764645368798139521462174867392924660503357008861618291565818728113721814725479402444535414776856737340063723134141454155482318101434310321131906827983368137827226670773049142899452785085804441305044114022661405044581146211225864687242836673375569661231966651906833576154761435009802537848025457883572513092681220488033813569670798106614232088324516347835519067081789782964411216369190920763683772005165039734093259581456905531964515566356133269526506487468216649297057243910506503820274488736944525963465520741861947247290111938444439624442879636266650299486673156662704770210437555044018719226305065393498490843026574263666186161935959351930076168321130439581474390234005956464161605017509179309586087839564683265162929655965750305198997508448614205930748158167602343795100538475762478589141141493612021367398721289966237286423179535962245087642187851172359208384656324156799380911743613632334243425888055942068481880556263811997993878081754660075397342966448320274415356465894890472520348611671894716156312991859180544622556195970216270162036702672763279400912954878732706423984219075385377660705238956501964149340174867112709184849097601257227455270353827775582296457754593347249573229550861420166692059917995411239226150785962942665145237892259109858981393811940093863506295438286458865624190631858244412963312216274878546071490356301023995175363558028339586136023293943252630439529291562314112761351129529863139839025542017023161321682573343163168906268874198255342110634309534475999476006465890277877612624934073820933488804550480867328801803811056736307031974894211433107984630221671978769282877875892568030683484944699004397526017256522101844082297238151904217552807483864156116920840433600914236975072088876638845337203028931844067966785863205482329396267830434043922129477941279711655856181135446105657983836632168676706118142428312648916966874543788282055787348795274057806368347974856348329856339408096961988161409479670765595382363567189362667929017833768920982267351214094989455618007374823307613581948075669066835227754931000846017486154244871653718714699231855856421480466960852944537074658630949888708801481109528157305104915628925731371349300439798887939141169151153849647792339152628096889842557713786652988282441507786834312859606103675034163202232185957696983850503118122305681261335475528754066623317033899509914321160149206774092448832493388844163871340573806597319448179205367570020416436255881782005189675885133137640599906089111988268800238235196541198044608999837868171325211794094738099010161409230463605887219037534171606903268195076063186384018535855871659804807041690122090802574029062283128742583731755932680633788055352455021822365121885185144604179032523944060651262849310030323453046861336173570281186579814601967008008078243979200369669139084579438627806232880859106011605519793707052636431046243818501947221065285191773124810307933501075580487797032580687832786998044058908517738902977056305018328602683933727681870400869201447499942173312392022942122033048575358655476936621278655158884840913076193852806800314234138277372402619114327514103799424959144038285947807596311777287762334282803880498045346024177579000634441391794377474231334561695996128962805759121566285858277773286715648037097647897552903319957706847783472496177878857992138299562031311214158355310374865236960167335734546466730798191375626784739314310537036920009659688394996939705916617013544175490447877026216053166944867961955017017350642206961084256795350095945097339253365472980803861536475508932911623710809722114222257463123155785639799467203798552652994933062284114681183844488675885034671130895812760638718911216611533392723843966598767038238412130773261831487023905384495855526579667988431849476512898338835128907667221482228403747887352072630556238683891207918512293013849963995521640152924316560267877147720291575568563880647223584950271446044494772049440099799280613705961909433593458409331895853524384815422996241239831728287951068589007897671216287850644833804466267741278430157292959380661952747656142314675594344774562254233306204089747042263676694149826834719440447749353384208510723002035037148230123704785082524602455655198785646183305131966153266798370173549310907152046523151145562332640780798233157012769952594795463803930501027408423379646448448226216533455774361542552286190242806045506203703575609164148506995826748626742286725063134907801161285896078060977590167900567976571699438294482574705956682337703853338224041699491850750647800397336887885671734144138178957440308820722353398954546636713682052952945248794215095707711318236553447395681723873275109817307785621102295669326487888529967760551620445801301491859848995265493598482415713424408427737452596821560723321199801740614067510071730234983646644784747899508431630310067327672163953976433737604021799850706619037310491969943461748201727978958090619516268147203132280031628759815756645894936804984231079810447901406619218787272914647073281659123681314259855105511487480276599769898842781651532761719191411641302436051587138635276864825030258395479365006598908841281862987509010639002455271784221536403388067315599994269258393889749706135493300181516511695837917646977002488087148435156319473410292931015143773085226873866188504602929619631775230908094323013351945757821084855201904017037921559410334821862030263278355722584560592246114693433123287404405629880823069571314353832860944370807203677597757838476839356605257932933586984130993550045084015156858726988566733886983036262866239407747963544180570758062906263184320903477953688818306797052335516045350066323022079924092883689219443536214917294578836655171593044538002554199081823284131458623663099907153065264298913285403592389120972600293668895144555255074258518954602572568199059864789564124468200708552535956888656121856715192369005379853529755613142368017917769166354638416689481700184660837459456607185701418741019472468372521970402862405609046551192162427778881353667866014203385648816364350962425078624924460218755376977831892756784228708886467193985847446696639472539895109291093422515069026622297126195046648659781677289433012507828475697223759745003998901777170704751025363263908146727148350346497991706412087749312428362990308185277547198006685335073265089407651634956105356170558060477742151956689745237324953999505263061142973582172153390866775543818767584361934773283176976227478787853175049290647875553861503121241350760449713079310863639676385659894630840082875585316312688194213991531678109493406413316579771953364003841699172007156859841315678311421020347507803287884260973718255385195247323009454209417668406321187765484320289761550362693252962146064388793784522975447427209497132576329366635973178190451634404475073382571115105003313543234555692518012028045408148133008051886160279388642519311153603420085401189410987880523282786074935943333855411454391708956506009303903949828372462479388138653638498578620198819627954077212430302536471275374497114124882768192629580372945945722108865588810650913113396722469899883167584480683303853263048025134983839902153194930730263307022261075727690716704523565664114788844204508584267630180683562077262782208176172660530565144559211865036760294564911897907308821862861478357862893955474822843425422645543105008123685158587181148593365268299588048988070322965287288453929969007940410541439413603952093793505547303462346558957597513686558233400338276916465420990773071031471087718333097111294787259823882474019353751836080913083036634913264778430399508028515978046085406488330921832099073184613180036689713544408595475319397962865599449403279907767826791731725968538124997269428900493906461898500863111909378288563662717154179803773203058680838787806540605372565850202461119203225287373784928315746679297264348627560012142218715779593247626037368497742761855433949966920856202975754166670976599502326256202324244373642992277246228134277299318455209131165665071808342053400362183607653404155944890249889430906461071016793007566415040801517002294315225352768927087844745537745390867101001275992317426607551488938487848598235231026534282661867535280731987722289979098022708350646015999818685410315599942927649525533908868552586541291881424145512366952782153288782312857422787357606758427119135195604174534921842000060110774933480119865788849049090561833484630250953446904587862666396496021012626797524671586416847185876507923517397839987595113776432290710143141237227665467349580826509982398341804782471517169121361975077797179881854301554574205997208359107447083128839261139498579680884840167870978279841693059575391605984579575939198625848030496544094943384027574751992435736046713114549078882911334859210762703730509314575821747721661621102661129716970958049967798914824334295336484600211931632113754050507171622296548682016771146526113751462421852185657374939463179651519765490501548141632634187442075155969978528862442189475087082050031065302711827524260751836635889948411953549237582097065310975332153170315135270679254117820918823243281846606978178056051228527129727158394546612082387376887396275927161390425058618860002089577145265266534017448191621242886178708739728788636900569405894587701630661231447156147745891753187142600460993012420369950514480810179646725544779966800341687151922743031499712783659251662311882102263966550116960204361852195125283853534171346114710646546184573688574779455652446385418811478856580150447304834723426444350946464392577924395248879720125632431037346093810182684153448234025970592029470730290041576861547565627741608252589560525602555285588545282778697842513788112766097419501245289227273289940840274811226623681072641900862706253453668580378465106171461985596442348993579838228836035689318602055837004289902039573385072112584375580175751892076052843127519951364932667734258157007993295576903732535786906356000941332173679826501427722417175912541105768483340188213803302509403742662312175175199635277211914666307741529004700501282849015689435813899562646787753388550722053204404000510266859149343038246365688560810050595332558526259316880021081822615054775262402659041945347835018774229603561471230839641612738456336863243913382010424250284700949438785421697427456224253506138335952103544491469389876033989402941421149017757585626890906539116754402986741577048051101990599284443333622789888179544208820311509680411151999945402255968079122960304779954457676472637714722203528800912112098546793466490703214992779441182504187049154851621038406711822552038047851097698216448710715471659079413063724152045617401328675674031570876206057302084368075207206811307429192929234415342143226788731819619803594046940925536712637521430838205490214655850354606952663543315935498716788397875729523660150858185625024471308371988601886557348798337467579532215601196375789380636871230390283819920548751092017642730610589549404665871885999925798602110215363304535078550845129022353219927601891543995015074277417647384944344243512233618481761350922122425136950256228261652311290741638994452394619703663604956573659060664383499081497340099082073561356741529044288585597332384206314924708531671148943158259553353097919796833106164093162007361235667813365074950717627255357180458119700604757851994342174043311739279456507830176011398620835783854117329653649681765335926408042261737079418673335304610512675547336750592834886289815724787988271436399430959706786928486152317271327009776490956406799735173100154983583243343618924575647696261384325220970246102530344639203494351712695318831592874282152801942768430301567524065912594918645409250758069226186109294131573895393001252169192888804377237712498877690355090496024327816937716873951360206172035475999276828800267487363007148880846925503976568889401577342250986088031747577700716931317041629121408567210484718888445051718466440177354967748055332530047745198069116898929621257436222211177819319948690387677334613160788147005601198445892846084308096106759681718079498391523277129471108891646314396336078506992168299501484945346091346368066850632296555379951671560180136507334709882744334521524052909699762788726452335148645398884880082608933927723464166404610500710823045790205763965303038843239198046862562147421487523194025732400885364880483675751796528428529258557980978260662304122342873808687773670114444903677939166998627014140930062245686087899218260474702699181562497935808474544278726730953601599359506325323938108556241965503650899325130809392686449878714747864509864792192557549134571750829136291693819520587433315443559935886571600909047301726979120529593656868858563109233649018144262790185444506310593320231521128355543400188920119298647631466300102125038753106256271615375873235928539701405697923350224499191573304546182557248618298195680020666445528759431945478771475207493477318502939424144698885592959274155958459217646785869519577972334985143661064224743614452742283681870784941396277053560501912915761738269377208204430842449600418674343064061934482264780118314291954234907436442437419829287537147964559019238166188835497473609909452125233457113984056364652466688933815806244570119823936504321766581930476717365793400452137666345619831097586285416007696665048166606932781595131495363423650724660463132234249231072058957955770486778089407386063436834383491711442099261464111331396119703085822624977716141063363500344083247477619769968504999765686239461144426634327650189338595966724643294307642797622771397890231435975959578906611861831550716215014980599739054891120543227286281926086111525217179966007790707106176313855292703180322411068929692894766003189894010669277437207243108650652589660865415047942125950578281290480609054725505292722923262150001440027400648759333247372652989403137293439722561932195361624533876907203346099756009838092904333299044509533315027802408570234814898899801145486804805047507395254620423713829392957379451278579913285438093626276498633148874772275578146038313703276468998919272487012334292563263415666049743024606430326503774953098698626615491296266245162832886497662928783406149257475603151607740528363927405942826231996814927404029075840986087196696429031836767050085340167872107561217479935398250000916165437018128482562570627927281765389507535092483199763690067968513091749453063328004917140680514485150511132633618058067291798307599042318469916130301688754132615225955256964793092958604431571067140736995521227308692994441827041472463288559021466670675263259817603234061835923766561521488761781405627728857452227381471000087285149347385404204185254556179925256911521488847794180456300117473913552400164247492402970404067935919788890082464190955562128677231915141279702880259457320077171444463635120177865047932258207178953339904766351602839939444830642320612132007461073189558802701996226018414900867591490330689333756693756113052562839564547382380463866530277914377760337197762067943558550508477905126025331343230416767786526997390979834542438711330434183828952240880287257539399162156231375542828539346637477414699841000523870367610843490060634928130128843538324100640048056688768763357088391430210163338798654052870329342108807536702561338041921280757267830545970400885810858691742989460223982339597297368894700786656855944931179827454992147555536016890112345848349373300148077340394119715070853349735397491702735060399796129604363743672187804807787320575568265959778741076427667453184530282638605746464164371379400493839069207162985545311562979839100235900808001536342544695826840845801732515042674926520670744687730120278380534164936966319157988919130810682019840474553512058310989994602117544652750979688232276697124246803074650397766462980084988654937164490522009808651187936812777966612325680326766935289473539946078270225161722501774416540720235600431817644171138221898185200485082470389403290156915325825710659133077341245769579933187645066177196665267672986514929022372507686703182305915005451024627517883556417528714235382846142887126347515768064302493033390618632419654767794980366522098044305051281221009589474036874268594873164566376940290173173005399563628381175405680476171513549440541249811393931142387986531690766392027010898978135630991124138904889376180796224683081652504948768367499905271339330447000001247331545463526927800467526716847382869680102587148805829787437355778057905544093562407128934346469066313276721955647196493955683435536168470639834889795225582562915732469936542076282216216791959021494883970783234627209427834381766760270129092782325933949710734628053937328298790831966340994010775318496398374137111260972165161986787132768551707302582182651374049590045222269707351917483475562334907004070180362979588994013056615885700457012837558794684804801603654592498626681251999004747744633343020658798779690133234280871131046989248409101242298871842507979467776241520419430564866945969264817200637574179927239766366461107779623638074669907336546193666667445045476591586656746773559035907888072471042023608143895304594464344269203374846568337994379526173501579125616320537181355792209522763398131767215592565178245119922051673710322735684971926712207123075306137159617006713824891465960811826454995537482926488237181772031614867927986033864822316536199542152433399336722019210915006644311499791463118988302869384908365020912108638769456723661717608532157979202980829089531152307528479992303441295014341964345633286317695733244600072730243125753192467052310141156554624879045068741528886904618360847441203797937881988930365131679843094899484523452751367568176491373467738733481967978010416956021738690882766533174665127614606129195747792898853562008447088669704836451772993952167234948014641790786196758043443020923096819956920528086371474548619465804643363466487430947036112444487021074541305035500700843938934243163789089363987721424941318738399384249396940658851536329877195774732776607268394111470077334312092899062406547912902621163795511926902697847618003801008620480274928978072481878446966553335972467584196959886497971405646354045583367610885429422967073288677253272605630380248417507650818373818009496045300200268966544126012211425415577212364589052479421025382121838373764854545710815929536902572534926585706056288514675011995299520990559668991876527971166740197382693768938278296701881894734560595121873213054870373724503839805955302930836927174826787344845228712954023811902344853319253752134125769889634966582943448238213458259013088960298183810650703844766762088126713352549450365318972288874740966302235756007637249096895482629877694645904628036102336721997008512994139159668312764829489702750746170672165649844335535101031970096543037590057315300518197030378622413911032419683728425163769949213434892108079154187097221336866239775589793383315246525940000496656848543837641251914319063282308179746856642495587763350132344624773540170952513366780359144889126341613277664784872478992311645433654375269171915919263848828757588827367057219146368538826628373903734423485794474894755767859476113268423314858371574084714773408337627851058381656218338047372935044260519167575906452072120355348863950691159562542113087204112940184820639949877105718911880195479369111036343269565993311558812265739755777249869198722141965039632988954780441680264184675319194655987949293342177953631311524670659213041756445162424232533705007043671491449732640965307025316890479439190453106731118112691609124517942909199307685812426820814077816383814526379300855213746425989908723975131356093398728112027769956748785627515611214196905911255420172315178521312137556583899539625405467216901391505736725453579952277198222925308400580090946150747462616398918201797089613951125399919035126447862885967118170950457395973864791335950915316530003428334772618206995814941734910487222868029913456911405457117718846978384992212481658673801592452176810567386691689860708551628873160572136971456147330022717669036782272725269656722117577911136057221596767031752351071906933902450953157918891838325760839236640174988836737887880561440598900918873056531187171295852387405977966178067845884854875721047732896227108837815515983995829167406563487711642247640718376810060700488644579573256131649787117898541333574342146895848283787575804992063906099505734373915791137512437570878425556086416403333066357731032852481086845449053862900493202958070320776487924890301923732010040119336723589701099447680684748729304081920668878164513352414436574724404428342283634016201104512331144165500631551617364918241531122340090947284668192595862140345551758417264374587433095746747646242173538380267068728758101164926553212952985923642571511326178827967519735421894549504437782879936162945282835265250783922127879501977926651694804599733796468446841283007156560862029271667483728665616713931035636803805670521783175937791806850102900508064737623954577620745259988148682752644708365039541390718945407498027458656501487188324738712596841648693345561664316430583696560448793329668361827480571976757107715027772443231681491319912140862874361381868100463810618465951511852186634997401597891020397085384235606498551760188006559876844518949637185750632486011850765706045230174591634362747077222236344538841995164303901006805293603615878439270188454928629346627002413836110354304881397040808294809049644553023912515792035738942122874323189125090620045834167137453601651560417726618503042026118714515809404951094449090990597569336681779950034513246793315218073161237656114370999106549777859135563590037335660594488480177162981235524717919611129909231195939986252994249441521903399749128050906021450814370593573985372877238056925534722131446730816085012655782686073845791232885550680616556454955978957356719881378040542004713134132864065109899179742492296625587576918376368558636005868716966380963210891291853635387842483145235502503816424625909408330786973887838043781704626790152903892395483450252747707924523131292087699781169077258404294636741687690007221963306967823781362765074656193089230289350259374722992804947552369511698656916113855870051121195086302117223878172402192187544196561280226430544814631733804515380234692516014835898124328708792487198869075895599393174023139012802126797467766028624759586356251558401938275305447568385741534628726715509846148909734905071393738460251148994509693886052130192226013192464190778312629198541322121720666734810669747788895574866197893022632021566580187990693178605012351696189281526049927597622193551463319834488002846672497004985941755638914560215402664779559623067758495117497570145762106002021605969888490875359643499613999596067402060904693785601417416734972547089416127063704237684916115679199726560958614451974337326189402466907434003828858803664459616668732575562335286351288036852516454541599955768730421818622495824164411006040448027120337194531636901866776440884903506132362810150932699439099629773903981870743640484193160748541673374230790554007853313537724113836452096736065977086478258076187975408235975829253704655444352308421384555017913965953213511096698205989180738425974135270546898506968355388802286592698349414879319461291267857832051495672563079465170965374323227955108382093676292764810526254644092612982272356605909683867395367060734703544525852530798535505114054845332164752817439195129213532017244428458146411337182968491348416131326215299233636238132663001331886243685421564514424316516158017598095552484463744775938466294059331992545096275599091314009977344765521520251389679179999207505585483019786345163219759013474603583416780643066728917441608650526893073002108320766307208491456738300230247053730466538208228099291288229592818640380729515574173898925629826076286132606974037842462630067638206048546748194205803909867940874316502658920843477136676200724453195794471475473467184957351062801121496011271063486359259498587915901509823394752371261831894594268767723207385356334133044864181332427325928475083841703307618026928017835848237645874009174103271650279620320702981568988477289116588475753069622327487322933348027099324224298527535131648709248354949148395035401206842556996417165317028506462094041472709362705915831890716538356505319503228095396188508209198429068802370326728443473755727242201278247715637703622530439130899168432718531808554399089307500356659974593346093968649773184644583183130036558371829740692139118271410481365274228115223258824729873936619184294315753028757158860904458335288123771741983242005714697320475012357179038484959538503273838279769066362755234423492393644603857668145172509967921393725541770577040866656254056615463460095472292104489239179739774724920622199439134047918261209573716925325799069321313226030324352013021855458992029116911531219835729335268055998910037969420458755020928939005408572805810518304927990900265634094541883258127798576711547966848428330881003638346148565614924954872531124627872632510375757687291166548561573803621357808676615492883440890263987014786954712854262310875491702299473675697099572064866575345664722037564934410915551810447964591356546944426419696132169708768270416348975408173641625256669121321543313799304166883592623170851054479611994052712788056532322205200570565247590194918896057026500469142215746338294913771967712291722844706255468991872654307848331169486460687706742374992763863122173504339120975066615025072525025872468449196967198927842342239132964048394696717626946072962903315008429524703221900564104243909541434736313968467574388757907234448471763159486383408237614898616990110522529119195056748536367117594460999886749750184762324726475419433944229641975833631764014869407582745287960493123208117851659451411337545747765758960807322410807893402600633726096361388798818760905282365976457653661027691451740316370398531015406616389325080939066421090036335109505341350747279651518389466102981811889332016874541424307964584696417359828528732774146426120556526853468407644323090946158873876960242127456687896022036488983426502841585499212577150678233040863736357548866933599468466543367164188329255151921363619283567852140865626356587105092760520225830053632742996458431994778038598977216703923081187462303935537141188407365068416802809323721628517438940321074425911462314299424498881898175976580799004498514323212608601740453270037750387849535790181681171309465874452643239396001621688963281085285879421438147121752625017400197111217070360941341346094105402252609689404518109463738283981786545695754465290575919107286931172204440954690697345328622520283870428533368040179134219754235337476204658100514553330507281301628051792178376280095544968782405870700448486316776888499143920145322940656884259130780538969128858234918538846716791854322055348543373249676023831456141888641852988443712987466694940812405610758621208550133120206855467272066413089817229032689417875792788022275861302501364854168467855165285871390394032920787586602007304701705756518495406610631540119103452148699112622831125224952167550198602247392039755403260270467674987860808267360312432170071136597492241452620797548671411209033777673887122490716974729235444747128762428771596029215729443455726513404548379685649635102965504793620440926575556597723711002235616162596124523078395662748025868464736261515849602970549304508028739235416267608391251176046508453588854073326549906715270980004530455444255586720401233856502948695908404335211501981831859850810458826765441392215243894932090593596161421490957451928991920821908526763157074788133149951869719560622871976899277297635021075188665117871998307400177751104926252432457591018731954168611689004831059582169576692213872567011066490753066740646722385349839479390118191079728789278851132517259157910006210461837865696101368958883506974821373440136447201629359975379235991678482877456847076871731560751386348565049018955502641020686010449618562440994239817870295640930750815723050766458509783342044393260354805246478137592631619265780100367872901309014286266320327490007321409676727965968361312692909737003956676174204438444501532087064215653139519005458699853802211749784107816111037630898132479954265533728288489582705831251692654679464919647724210005223997945909593513584443521393905825523621972837542097013598563136264320017313945206013599912150890026042914990841582100121381373558089522007513819090485903123196411529676807566897724062918426777040392871524573051171510406193897629929915370946355228936563541437132316737736606905404301117135266497852951880062614755573253882458956943568669667456630413435162110317074547924211416819900224221854698070394203321192770781825243260098776639511741851756986881838326962638487894144583625731800476602699601583716775450315097739075505457861235268274376328193829378088155486396781819220099501488513573763641442360745367505182330322565248835157539364943732981504764038407832986705251219832554695926045005883401425360930139896073186574861892382467244078082742862861311715830611548720061353336611673401505657597198203787382166651825372561395732376696859125437410911750164972071445705800719354180888570050286672076101001869097547856732660240295053712820836117216305311309321274323908693814915321991740634122651151056142163739395872909866104605162675749699886733384229861393461190584446469148804941678135512060382484136989001208162743488518779030264980193787396499360509376657877970312818790273726985748533121021958572465378556385190151481804141339519582925309249500716351681927246273274264102746166146429237850729729759138135221926016134985786687733211678140500776896370983906915236212621930154094395150067102998574479462409383311483424260547697677136310861917243025495895024049740475715710313982876125814701129702359690170770678990035770210814620928317905558956176011757989681787759909210382689615767877578826516497149985546081851458032971540343226720333673430098450726901458331689432202833880328427965221048702189698029899494559636514565777830301775496378561526401964353634942734168950592567396863290220484785068286106515397985763741372798551176008583877493808017500390690320727011950717632089833780281832384237029072825901918362673071010560101748960453594822856672794662795452744324860348263361987960069746329284281668367875164677519539670959867709632206879962491894926872066691143817729220020578214053758205008984717199180351178184901540297057257097878689010881275761823287434721474612850760514416033691140064868858999121966708462457465222551866611077156353968360632626929561913507619847032938222914348703966112723995715361502663758786769478347440343831376754077441439609673560697287589402165079265036163070056710059075635146379702246088318723004390480587697286687795717802845209741548549274014930309440876800822269473984414692597915433063017862939858480670318756563761629150174087221516630385303523277299261625705199797601030991828022690983147569031846871113627177094862056549208777580068926818605389256228441330451610351555542199147924364051007398548319771875260731263057133440396402317448189582087415509782904326717764494264170022553375784374020951364682454422788999042747452307550141209633269834991201301878757802845811533732185194790657825319077354438098681872411696621858777177878432565177020395551030652380713376311761972280375666099745209187070802749493030790781373835540861638623517459715256279388984105920146888393777992952895319806629759859767928779573766896563806962455441693714579561516365185643335628289537665258864432819180040788552596529742756827104543500417666082046656974982916623571849836387466504035136815577093271277757180550835413961237322473165846499468892439616950550558481703758123407663326998227667318669836165029569895225212312456419570473699801153197244132191783932322024117255224387281584355971885288318192208173853265898866180769014337399846496157197680180917898784729391323990517134369377278932761915573307691838595373766392841212493691586558461918000899062570005674975840782506836355867190412760801356488421400319607024927389823307207371940801980802103379617746459816320291605462829734345822076638131326344767963109219559040315410541779482142983492819808779505271741022275502187022139827546262800239306942620932348039337651327439410600167084153417384553275596002550617753156854310567947275524183608387681322320082508535637752250229279206295426459199681198438738121850070727550640753996324697123516799391178380453834722733803606807083437839508211241853410317338236366653428280966372020403215112702427010703489581394482014873303230010858011653486013185858610854138228247580412068712257908740811424618948613638006398157711446029871485485373337707104387240271382534978151683401481058695661074868609396074597229230718741085727359194812105817539894014638057267463275340680885299065819810691961366236002511990009640307837431114140294750776008200509491901314314268242833089758968148513648690168265573175042722599167401751623552654907848450560394150478264228548642635880852151899847244636061089523286187774769808525941394990594096376663721790644751345563538814331074961588943160332457220413324003092659843907954390552313784544263187469094133821486007692443317184658182709357818037304091720418663343450628697788794742565737486573598855030833538620253148998209068341098428875263902093333942271187666194905966740569725975141616638099452582062125961472555968118199081776459835372835837937645686811526468538990152457567124324462666067758658795775134804347316520994149669677846255991512055410568374231374825462362881546963354385873925649533365995461340808056013361982780598335383785454759164898813066860229912247481527516179454909709342492483267301723855212947860592384062962280889638043350985008081926723107241458078974060249484635980066172253533597396593855777422550581866941644354989726075444744582338312286449209723371435177914602071739063139220851184272451186578562283295532442282827230000093027711935107677455391192247833849523932921851042233644102882245703994322314197817575679984836440337057264726677132992365896583705636894408106510662476209154057072403888099363072323781252068883080855179832726286357008175216365286779495857050585566025500808636021750304486918056582333435219080103171106218537771489238590019013846743708511254623378766411556371050582675397185299944056980362731520656509086030000732032428055315218234846207062175815361217437755097962680407633104583823858930931789396300253791521509039530726609009608229022129823264397831251462498929352629755895246581023360637224874856940193663364283558338079480536154430823723009565596452297936356398836006509633081472409321268539003366972646241258246256884839756733570514269590171983177350583634225434644648197695443187158538158941934843084293227640543277788991433511670596123001039243904676186809782597813672972529204589633489458522239823095216166024432341011524476330826534862012266514998385877299192331059502092228160706381555746772952603199885659058407205192186458723917949749501588457834961413072703670291414503235549348783342916359321099637388019203621887606737970819168725244741383032031811101142021476161067864630041662622284392356221969333743672883144493488103228573156577621958336882031962739445161489869549623465497162465685714482976867074950849190024408141613591685498121549880860786975807677336348684025545022119441602793927681210893867943164702329260342126980995894206041225915364368123803085633904668501007005692934345957985822627761368861968225230273717144502472068773836200524369957400206113473455779132445880921092196663421835629783081727973125877501702567339348448092767768432075636900322541139536003591825316888607090845443132429326080017511445900152746566425656526966639273540633313442596021017068390481720901978363751114628209709693367872021799756165545694677738513744409616608862095745137413645806774794252573028527165462708007465516694861666505357025882432900975838579443069703352604244956318160976660157666902717346795305065762046373222033597697514458322316144544543585604210383895932681935627530026300216205500748860741212653788488816649445865893094729393473522335899911510252368451014868601882392210273629172644312473990586987708338893936960535734277002768303582512022889094904861094296545134237434470936112513792321785238201898664444649613804407548284807373473910526315914586033045781072197685749699264864823463112706722327938549497320732522565938653437522938151616274665746058085262174107358805628912583300927537958078166496717118523407220854605153986759114031462591966783450413004364839587940750948851241622466854578446420140531615424868455875354677906293544595813067649077739488752430792217515864480986227686525345621561553636045765940007086383224552688161592248487792619667365776044525730141812462766352359268056706122193194028052683569943374096922550771354282431978113926369280914749755522470137654360900493178396026565308362613203742231472275786210150040838354873744558494890864540221642092834236098108816600027684086440352493514920190308739810071620126469360506357367393534263742573979979177481088305717927902433100636082611890029141921355442083232531098724091836918776750900471506991013530334313766328187409548689389224676680831173360762567073968928892512059760390183749626814450971167150615743068543411199249136240250864639518356271542509051730806559804656052451150546402724437103668495272153882576951243445979534237992274626081170766032877665170367040847530415596466649324621755529681601532742764517969461373464095892853972946250218372333902737522797432630252629536772393511634503781385571559005824640196197587911177998513791700022165991357462624841721251161624023556314440878061334209329612533113807342566802095305604569991763811128524294789901921950418283826686066355437352591117754396806193565002670326598556594029919158752698322472864290191622369147236643841216961677032782523016277770347326514787270955216210722473013225965167956565976296291647880961820095793971392554011503702154022194042203421469546619697242918769685978689714157861855195622732176850076299011924017090303001791479989188980327077104373156104970544297896819976653429147305702426845857039307056459105248640186527136715968524817331459071989080563395364215407213197901337870702231508850799284272489348517574814018002186050239058498531815889398410954553925800973122272628773808193614628134461931689785806700640911480036994027140741445606362717608974597675594872530244966964353389557602458299105718417304044228329661101423322494765852005837997715772937968778266387367826238961301398345718846201349440559325208886497972766699074218988969930718179945488906597083692784481912372832516101576047407644190475078491184624678553413862180273723593358112463605587510862999538227067905590016178906230256680799418844067149449842372746073785164388716859794428410856343487916464868502038117558940029033894475402286172814371978577213684630776024589087660240556274034198640818122778279550029918621594965100781258837681213677440718787050164559216460162264744570502527920054048590006590418349930521446462230017679773244952680598297116524507030536378628895962588661136082002640754733046086220407055878404851435884163773045735383524940553561309825461214802538344805494641389169822912832332638492751861312600661480202660063309127560341243909837319157987785157677665602348182273946989957321421838763392042483580201091468134246787395261577386166146089971362821248296971733823060560557411553127641209308239299325243331776683173051248541647225712949566754586544865359014321488072578466045897433622810808104454406568559064077866834893901263527058969669378879384593758893090185153579131994122662757660399089538126034804835296128234174808063106048054554592945893094277104673238575066599236821810245241744760130866325656513958264541170143531683326863619191300989877116717597134596829344054381005940168871154879093435617399546958712392795312785056268881032838076988823221781854131786751601006612978385548017106786392023457498342094407766144271624560663584367534776505073208131733824719857530499659381511837056192288918477403602296915350462225891660905642469165203560904163944948910087049243605764901203877022099284570564117508466930349550236052165424952863429117769396285389421213795175735661047831425845451983821815441293228139856282130240669744673567375347384013225351206075804517084847847827948458398123131060856595317328256737636269878859452359444950999697943088535347368167980221910492682950443378928787370162747425461562632071840313110976641514499798017675630507219163769462086364082960513199342431446498223844713750163183620192599688037119526689690095160486702795071438500711024608426759816698339417687700866373606920765211612725025979621271386690937143793591393577266378233477736073481211771304838471489194423324492179551251844271902744903244007471022072999072812576869270389300977849133586247370678264912037381790900633731676898055938355781174823575891090091156842055304207096080070846780444137257842364865753985952682476309656417505281831704124268034260026983231234661751295289586400338507278706334837845702798597230663004140416668394475099436592655538727124437084419822094407618117253375200939207568676208920439809454959699367176851501221248960278753067420754292624443169741111844283201832961320021635427333030857910598810362734609592041371762840329365541646833963277468152636043840440945606529463576092158102336200033340547837312621382783583774315549102088871530244146997081477820544866020423205463777292755984418007515633552857112302851968856761913309128231353704029671084074789490652350259148041164241106019379591304340776060642747410118493398251046704006203807019286302394518341502209670037754790334862373897744372104189801284502643679551900869817319350792631881265971931047853130442857102962848127120690215481118602876075764698838783418055407974902082140712104982773938116228364418261476541459971064813471409448936577851874287059438880369711557383467376839290381718777621940485281797512843416213578062853848435595674511003479804632696335780995473301963873128556743438915509370504794410433157825529341858528851659954411420854657931794199028952821306418010253839992513890778651154392744356675121976332730964257580282159498670504246899390971450315211020952553033398929155707401923984815434332611809273461303916430144441430959979256384968048591626338712822029139026656493761758508732042486196800957825389153389004375665108764387735531879560995563257062427540797539726917385661184190830645119558464789028323747563911717628184543586992188323663120067606994373762577519455260506005806812078701033316000978816075962245156069925858661343737643277540602082145392424692629068819713013182671180626304868210562632096141724980379166850461121700507621058527105953243086214055312312396812952476707631991354545980296682586591850324916679550811258438038987355918879555841424054988727864925274854145899935153458998000490524752945233138437148855455328421247568981764157154089957675992346259325164224305946071663672095746113162406368379377744067459811065591143308950363388581779382134196685680235300901527514886509389141874162610014368389402833383795441048342108256776356857309740089454612782615390904475268568232292103788733491368049199822362702426309201200146157277567649381743168380424367449074664455243973714963321927193183210083178119148352255584617295640525282878452933120710217648536001512874001402767378088384505587593997109239216153411883040390046653928987400118516913835324979931789507287722761716992720759907757290946276584430985600294570376309681251756408503598060165106639713196785485062001637748649247142947302939445154039483574748533651921289460940796716475461824035752198124412531112378168655090489692337263647304822553797304195157538724359910630704037633092800231847416627831527771746356153783162473070200242099137881603810923738727507808445772165102632454432873245793207709323727476343240313275465852095783404655901122999881582284246038287762217992633798387935010596808605565947134769266445988782736372682495529132244279860028096212293893255528562960680740593522485156192818186549726993563690207972850972738758030546024335153395798125156661656756285422037071385322845806628643884428841829242864799379843505272601938119937439884812047008731671627352939640517281384379365709640151824702666975006821978254056423648320748851791808497517034189122076698147966902674983818494337856525030730563949583816743828034190165640690102029394698613717073074897388640320741009826045060416162642369998877440596037925352318764475200850976958903095077687539130479793737748125077927198963941272651833186888412074688074154679433212661192957338208577059297602661513526839087367224961896401364088532603646954427001146979102664653124758097828305586219552912134924000559042730174044797345128024742899081111916091699168370894432517998752146319901236135659328237102782562471529139409705417549539886795977445387947456527698775894460489563422546933380138303058843390820683696876819435303767539233685872345495668568316937548394331429906334735120141167691855974091202744479445440942073857899956771873369376657536853406209019571635696820500847691996762023660776337917886867583538403611385479917508173479724415846750105814577132528766496246127885510425398433268196050129668412705023091054846132994316366243045482366152470287601361519152749448976931690509254734200096995302008533874902179487096359431356602161537198780501453350811892808902720634814732986902628654865416932033828554359729285512643091354429850846917711316695555272099336162597893116737726704762600835453136455666558234666549795058386108225351036436377855501444325562260331073596183099361060663235395454205509614993775073017021589104287728795544053988159919741758804923256449128803627228163538143558107112411287643449909838797629601166611629685427566657390689855347881808381874016403229849610398311290132316607887738111347159015817008862977641672372311829124201651339292924562015592234506378139169961731530259121571105334964953385377454152531354674235366217484149671781597497576114546963233273615558182510176173518188895728291145404207481913659088970435383816308826976076481221233705075579715442105598626705710381792145641686885512671682958850330742451866919446344884570260852445654394671277068231900565230105001569211763552938802498621652794053445821089597289516692447133326699265291284341633329726729977752088104659822230074966839507307038247044809064293873701717223745346194598384098030241959741928373146911920424570563219798203529812792477634126697452852743721902899817311619368045833074759463060820202620901397486209910766915618732809887480746614720283432577754127524542753361459958514795287479418411532885465247761839207515325225694190685443374904351594667601257093767526560029829267397646217807206989089614594447739737340110620105277800199061493311407009219785263215628150098248560068595923050598777352831015081426169494302956058070499794626384654559678513044307269860452436583053494660244119196987209285424155226383521539542298743752771326038227259767564397857758940962343912221218525613473707566584671486980809649539255831596360095370718536062642898864378059301655639882468366862845340390802977313445298575862775924893282245155978709615749046629466490434599035818091458012496045643224861247112002637621126779993475818278593952939714555618525081661275388546284524323427792792088187477854963044536206498966189302759382535957641699392935721469155700863652467738692621205304442455882191148867799720193711778408596642663872395184101208692918194925461512329938472232898019802490864454874665710968882546550886303579956134833320150141730009308082262260360309869206460764984010736133354257764211218673724495852189229848896010856671926241465395705270298044157036227094716265462974537386342193680909005480641249476443982538705391559810960233981859569622066604341021100749643023293238934349749170390145753525041185197935119307675298447940558890328049256319435275443568537912918749681293061540559803633052690992877361769195798965479264077167769172974789599337509079678660829300921454887441940412833441046621691740400351954021333949632547917962847060759232665889286339563752300886389180159247053455566298188504289784447030011452670062053479835720396026140229430319244829446040452519240064919151352843764793931585766830758665458969160990185616198832692551036796913140120677945918584387573457291498055188085893815992529035918494821047068413976618904772417440156003103959800178196958514431363091877893281364249050547639511245093998441722253913000883767592780599956347548337085167333630357780637108528210020965125804967712168822215818407930418674497221581261850375431609041170832947878762453803334532841676098982139176372706111711192187934299477313775024762001595651912131686757861592311748166546164685056634173303431285509059848360751556244689254786473652652453728767183268991651404268985552496982560801303339209685465929373214542119519774388797949437501897034978556798260142255944920236808685713389940823378343115597960594574671227640651968813813634523949416746033673071958412716519354638408054807805897239474163894325311620324624305101855745533451164464129444015508622491748724363388097505828690632964110774499516725267671405605016030199087759362320719333922124503454624471609464047770925215459032447264114992210808127925460267528312260402057403649680295377845387374737943153480909035952908268612506471710418278025381164709532930483925037369378891474915408536059403460659874880671086196558452800617333639356854022391104921007185513815172072396152940617880098253316673087568940843365650260301314047754946887243009445714494077602658260509717579878990470218949559269641222382663209602535064863552380847167063120199191911902904326195418875517227778677600664855608699278077558695781080053971688404116303924773532792519090712466596985148259367254575785652907067600255319111659970031365631062372797916096643283390127254158615030025830213091659188567051619848178988356025794720359255193650339455974622513062765162114999398894371412216355164936947378944699322765897730027091986539906111512126760993503463826712315696503672221653702678396358221283680828324733484998267241401631279864379373250538741999342035204765492310725213980900340434124399902163101783559225914393642770072318795964088657340755154037772182638410001298149541582844350755814723873552177784546578982344723873644800354802605422862547143142546024119588066724083288631075312785380741918620441618866795068436297438184591562681717754595111389187704766828582159083229558347549835460341483012267209048316482663358499339493058816593337076674227147372763666799825210378525326677582950020678515569985550293058748227906189722490005223992286190635766830664267591196500767508948609151771892328690123934044357259680522004899894685508300600585146440388628452739885544972423401093071087799700272848499099490216134379861287785066655113070201737137536301842365286548595935660753426506640552135625065967234714562812255802038675670489135553948385890030594170191987653137217977365955364055675529963846083539703971040321901058831679225895170522719346516797403213327544376660213126699975943570047332103763329544176392021719596215830023588895992317197868852880383700840668612250901252491978845900379698939832615662601085964693702743977459520681328189874372600024423114404122714421896123078939927229655020980127661790583456151438376512360987391174661882286639222906005703609373658739678642357265739520735061824603424120289218434312060141810519157038890056697593552874550362012066128836090834654286575134564297480871641199732523581407689784297539855097266802546377530581329600849942598027259883803938630892049396963975925392476195131462529505076262678400961336807590908257235534563844062347655323777551443104810185088041730287406598357064649519565294531853273979984238346309975766720480975046263582222294956253780848793263884927496862975208479323873174105175736853022103765044603464696572921879767636275300088259162482317211999350497824721027776629973474076572261213405103042939176650360724278429573370264823168694059597358415217759714952317266826152664144714945906035360629642180068212894805638770528296943654149655896749019536902352999596653863435556985517855584030837598611143102840870069556746250579815896996205193669826947387439036582792959853321353266228279707282174599093783162155896580018732195244002098247768709916709122226754114458853119645709609999648862049744710394539667534343982983964048332705022469097744548232235386207031907053498615400908821234781066456407600761011840399552085311954175458259146328714281414142468587348798117017983223737637807900017767136235081532025604796567368011871188962085983406236679523269094696855052373483824871792271271413216548838848308021733038031444373170433579071993643033584147315062611269405374517621190882654430133800954260091154139958396681560299456663028766915291471490218626688428437972205025805623131275350051752628575273661444183748799325730935823163278422360999823795390381279943235719453077742617124314428779840879896018828566707056077213691249227811925350108136580461659113911796808310567211674782268328938002455145880379646523320946526275228269080192402428253111230949517283867617459084001063772299563325545742604268874440120797828096505832208631224320722164128104409281875022177413653542317812731492576208492267639074526988112935255116203343863726771949976808553213111500589222238029974666136071045042416262289285717865466665963283336816223963923930711119694546982271553725535856330194087460971368868315660306587958319385608667395588214268278433490854803708261609697207931801243417809425856396487003316549642645987132639857718519652746208138906421711560397187075132432408475031620132135929997375070285543512360389648228705302161303793156448115401562605023853442050402267190218493456267504082101733321940078754432610961497464872385715986810146581403574060334707865240388723730632351403792142413145562839530231549928801227347078601034925537754859776858210589241001983361903655525693944991168115554504788915893267694830801569531717935056928508855738085443080865531738028782551607566493430632109443959543290781606204001249058286468738925077470563910316791847448619552843440997187475932153240858304823205946854462097588596551387069288880477674068709835282009580865722008941552424887107617431314448144866597387803023098745620067646943963464026479433772843009412000957578165735697534210067524869745235755540149253003013811778129449343818183094198061994700610562889237043672165159270432622316230925527746158213957551699812805862245604339022347356078443751318658104634883468669806020225476749945696774054433556003650783170880479499290714751174976857185031326168439640623045802207117751759534506739918710559169315285178583135712319985994196773691642528308815489768745997795231207257068825766458886692482168366698108479362005955451559755077566006907318266934745702300381214312964623125454566288243119792309641243807405876555547555598613777411357871861963684983440247781040473353415529200879122167337656255280955677807284619009062496334096082655471582536132354491902714411870475666075571603996116292594755807673014850818462016136551213390617894231145648039832119795030823386518119109588362992780109233204327114649391418015132717539203114650503143007593359551999165224690895512601850702536646108044368202021261132196005899941220790446659525627721607113222905531381484411984153818615421375232049786835638444468232122321462182719390980964983633235787670444996238028506682944512488578266086971808675775511006893847415754417376092512903141725050962605995280564878303465782933000364664244336204497624879644119190349832262956359709662777564336649333144150927515530588551996732338252613924923140584073628597594266340796643094552158776072168477170077661678744232327144100783928408242443193476775586516959752344864159464420166348722367494827736499513313365970500661119338526426172958056244065568625021312655395602038500248890532454309166515832073844974981685634616137831070744406605884161955927637313019031033891949515339711472591310574983951507086501558059804362543604218825758998477902582401981811795241715137137788279200404323232240107688516065809969918711370616682230951200200349882883712502915834855433385098112940856113487701371974768936050750302195354308378369695210799177342423766757199783306741804817708745773228992918646291567946173779004470681615860575515878649248886962353704022778051206842097086204441933461494338656956330381871688055491736787152390886028972282513170798521800237481836448976644100881191052842517959836269847265307668668989990270948543997945578125339225995710236856673862993512466887000175846305300444948456628283890656352105391173295948372887396442481323009460108738031741939086360245995042478237324448659832238622579472806058499000581346829136449583843372370989814173163495144392276307136270208894932425145955151157747436360412513056550548787598191344245264379878631936878554379235641368668054779963890664885086003908583853664956507311331760917334359151652415024378694375884379768161145529470745253108488651273649865416133085141701102316285239593505029679434876246098030573921174215097800749014614526814091232884748762412861277018526919196991908243177200433692636345704928087454965197062624999651937587523425547640601188968357044779975254303291059973950703706379723423338174096325401277339083388912149763167669258304274000933886948514778090999296276868161706056436892087471757381422940843007454822411330658944759210014343190209132475812896572263165091027616299953456463674701194168564193161003768588802119802945566780320092309274917907144728903694147221449808613439192233965541639452493121943330474157734397443745100394297781221741087880445602153008559119126199008221884353276741575742889513307729732331670652233448240830855386275559606583942567675978580806923656803255925897161926757981001865200095258452559537871364647407097230093850056521214941729458320060918206731831194682358389363330093220588339859657812286286904787929978595365618562140723155950138498615747228890171428413886009529330800193580110694549096299043397414786315201646514738248114871441155685542813438002505787816960926411115430567918100678242319167835433426586949108936348443402846560431046748079435533739456521487151487020647582157781571252133320383474640793208065636556829855360950538236804838331594165474831903624014623075414513444547838678773026130264688038946896833285996469220047331192374438341879490123719475090587839531293659957708725229980986734107731858092076087280949405242311970337806930104213974201086508598613196970912736440677318640495686503854508040677563392386579233438008756854434299252116645633000278336109055220318941386691618104389577613989849738622420923431561740167895583255440761900863040015961909248003730537724681906321358190390736037523355496512858528733205674891333854899620049008368155700956690476744167805598512147471029640576398287609757286615459344709316801074570548888169730602945111978387764015625989093455294463559960767463427527545113699004411065122839796666436328799439838894336403242000606400207333643811011470764386764298045960321211234504739135622916265034146727004304202920890409945834962705408629439106850691619841174051488459443370876235684133657655067488961164571464828349243199777843721966495178106109402175654222908966957955038347962046410239397914879572297958293799719270038039031511953676615118304084841332647675505678251445128259622459781217680613417235016330819863502698489524576706366656296527624257421139462144119319078533150485451130274010741746403778328654972950553383165406721886737066078077518493933342547976399340926100455867671147527386854835782315720235771322054477271577731610102427193779021104192497055837990939436003068839778590880110780196453593245140459335588401772986590052500908746233043001915442125925081992391557250596055277645135626896056726290156218066939785476230029702876837398933082879007345675805416687241536876530619061403342165589854013195298838072541549183559682296837854078345510329050982435649199101434266295516422260871506197622477319141130510908891298262149689477228623216621663280732349770621033438806771197248862854894899408968714051773582627703862936418217133435068033205132096874087990087972337298071255034854907395134200369977654815089720555868625048194661499922616695812144249056419153959675321900048676136554485120863886308796031585500420286186242721251983162198879947756944494066028379055183663955380173257271353493459993823326153170292470396900920236722543892893990606108040897672050841667035770747982925284082213033908411992184780399348107962076658614927981144319925855995547688189003544540123671040096037834464574650515427409315114113876010932167233228805542377165572683335191163126945259930977546591010044088945826246185182901563548651824168975356090852149715710530744956815530905150905627353220958993664807641787075468046238109277941437369804186169196572553627762215427226614342472465652847463380163035272931816013714003472552555366580771429975945473984502494922442522019624217876665689243724081823632580233004302106090722264771624396452066917302810964639295512953292529733319546372156502991322832799439158977907186057552244748295347635555948922805719461000748067581906805411750837000160131540663887398660747787214219063936302687529804748862340896604775021198024947063621518111361640049886401432109186605664888176040134255105884474859832962993284011861979297920918706466554742863392294767655225751908171012399121835980796542794188547999601336898035207764051897972994517422872639457515155086304525869737166373479447241062844035852565981077446649210499915626761361476837016375757293561445843840712143835290591730880531600570958072367068312126294721725917181411840415684776244538062579923621679590111680832724984435980079552998261103683691468486829177305207394955995215121222748677514539304520531543305985132898231773026033360008798153291800991448840491349110593526134264803684964699962606453635926464482834184625133637085817404096681449748417912043110218302265308354695502382292846076758595150190473182598695205997270736715106461423848987174031952089405847447970828224248273766609899268785087646945336443619901296247667174404383158981773720244449499876611456220658900383954083923303877808016159804450181201371639096923074897401431776225281412309274758910020924595399789404190809890839861620946002275915824537650305954261213538661335650170247654299324305236411790936024149694290352746589402035235723680080909635464009699790052124586047457781647605164450843742084558352175072720062083084304473798280353099224586725412962694901439122408659269448646565035104290324664922220985898585519485983291330703730067251010529844231777142972674003669644430213792925948076710117603529589827917301058129626275144547017373236552255688339781487803582369470063593742675468722360848758924227115859840874846399485635200662224337145572565351233172714749509483071254073197758401632106817175328680545855468173090402595967128658537318851403605278258664740274552415075103406900114868280749656579558892474014866479658694015751333409830340034078479467938051548881159193547270683039419884102914131821273469462262973251211056386417494219881843365554124537232925584410787672277334632968915928330833590325920312771822266450056175716659558232051924885966882794062238342638663640156368179788783448522888834583726795337430426410610095173057217037295180276335299595595981189070596423888006109466534646364784452816479261786003829737552711753330471298300696076012013661425815599346058417887138688699837806806934393083734255711034885150444267945946493273910140377967045681115660453512760879809791515114703665915498792383187483894514183436820218126884371104645410414165049184568265288373897862356543162174290808502841598823663390511170010238826599441638365949373788902819607511502776457820195262317226027920350390502661200084480871057428656741031294424387128390141579141881086532597260973764173179543114534974192920756812606094440868156109370916875865908148609871031992727966722881438187465202429641064921859329207891119307866019483903970366588033436414762343504476546624540563039285861795388504582560910959221303164886723680408747238381533785870855263949646599697435268911956194530869686832420793577089564786154375787093903867031273781540263323840257328603482180690703093820789756130912507702263176098738180446137631669655248818886474943141907336956363450675016237615315135790729113422017004021444524184714276143392728811253501730353990498345405473504540707284107182197841104666343273788604203587715826326029395942668768519110715415132249313489343314027250962280708068729296636014648426611471830547408204892232839775648428200723861563476420600264474028920097962313292985591829760887896001184128623824834250924720217321335766822193643273959089995363722431381853744075449921528041217398436727728065449423288838009643415272280295511591912504731572986426064763994827592473817567896387408683626396528767215232388699050460996555941294206834585026221875905711178516332613921979615026736211880354399747795947788392449670796213018167706989368667463106897862473818455215984172760355284472834987962601020904989618394285113948962122924137748476093559982177521737077662254096233272692118933181961626757401889893879731693161186122034902646728367090166187696057416627277065143764509413506977102742771697666130111135088001459967305996636888825064460645931986611173470063697499997468246501789820312239738571692823193715505821917656303092773455949443769452612360287504422534532592593898504587685927386648809732785238027790926237442645419363257059976266899188745827792800208617121703836554802480151640709930037834064431522877440681787553539978432201278784574122954881709173768109157845355277087717621495414582968324566513639620364603500565837362404635843850110674606743283661442674512106834248325133583773202921329245607589336455269045414425819469794687610077557131886007883581849830912615332621457791964218912536899079251123164605655911703282617756591970522832454499697410192336411217523468632164363308560844315277255599829589965855238340730949412165688647269559853423297631983617870853797180421284411723015511265448256287886985667617148715428481321127168029805313562985351591394598728854347317948041687848140784714720064280428111281639442508618834780412544030779143272140737833205570813871615181893670817081396076404293938298061969354515986709447935119669981317585325077573103800655813189147795259621675190871573418358826443857673360658404590303894546887653919153497904162690231866387825179593646817778280156928267983849730018833308243488028355509283492473491988192360388545849085850569476550483679982554361980557026597852465863225654051121991862746171264457658102530841049918492365670648530141707468413500562377352842586164104800866626989500002259901766971455797064996947140053001233180397096632503168014944829631445252401568516599520276328898041512520222042693703920865104241766405907329204386800309934018131461887963748366596930894517784870818449441725796076008723648455153946827632734575953989153138142998349071876062548801696608795556490309816052858000710921349348940217950655336971795061191606105234081239311732668642848090210462503538091142558534728660356654321365122495015351479656472324802821517172884607323948230040420700564433856232729958221151089905882077440155438966540553203671149187314626237975825791775789122470452097721663650347712178116380753950790362880359068566030497373384627798071480030013518992279963259640660451004398833136951053112762102416496408702332764674227432785831570143726527911170740335572653494966952040971497270454575011426328680251080885579800679611356348792324545439957564139296603483477547214703428477840398906651393651579778780279330278793488816001042569464117415502025282130835666021425677419923194562704100236524582252776300514331507531485062546905839042899288358755113628177257761113720634108299681485784624162048463186082458207417793181586262357296042032970295870393230368052623542224893554027520810278926653530986668146385784786574931438594667913873872493366510975894306460270244752059225709780697225350113617181078920451887231623648248401617754109529702324997049092829458977601671664911121849669554110061951330876486188864531231377701418926541942758545777714639387419318720431508133054133174873717660760841839295643559380365728433956023052976894097452943148702773030070909664214744715405895483667974587374849557579312217492769124357425034399252171902892617237141606348135695141578437349120334769787076794594074342374006939082842004400171744348450630471114277342164068761520700127420539810859323140771742658654810456073188386948437416508760918664500246705130802136167087464218315433552947715369430350200465653381742823569898830384482546094102530255765334216980993289095417330588318910053007419919109616878909908326753288919279638072019766815135825225194164961945730098067125302482450927509309651328342335791243257012353106892973357462632738962122601110091849734961709931502255254495828371805453278051876244683189439034521008554761903846103641399284762679741397048787051736080160023196394108611335862944404740985305267381734234393091893138054177622689035296837417209639494109530773074468221939833260033198808686198139090172596747076340195167967443931344074795776767556139604763658527411700526259539822662661821096563171952496626271327243244880244240374461887195923103344482686021663596749355744111589909249731415122213434733903761564013810524802946514092479631764513941579695931605095872424040528173170256159429278428646146339871689247001657826486520982023959140520004053551974905579878665757505177543326380828077657868604621147482630271031271277083734292613723906998938862127352070887753198869717043160280239969226885902658739747727219414250575514840653584983082115232705056810656345715029553655943520612918990703915041240595479717226738703981570678208782528987384433337704476323940570268182741595298548956604943204068153607415770006547247585637273310022915145879743235063159061403575234508232484961269096960793976463843337573204410165867771840992201752709436971652961654686981559044960718333739662089724843217255941049562244770190198574341919717178339239183610869354718766084886325874396686312627281502531567785457910470758741047859584232332558861847533031723634437349746020766559175126493221929060471246107357084183956666829339803087410696291639628483373890609603658126050817674172585881057222540245608288673786307423938060307671194745137916674817190758808320234179642243465868151868138291220949807607784480415670286444009585705223980770963464503598916783410793750186741177046047396124511780032671341642052555372392412587766847602683718951826192769285818402070837723928046657190581505929962790736370932741706915750842846214167675261497597418749779709217961501507155745206655454440240422260782950768004665737514185013231209369130286325843542092169834813337196597160885367095832592758588802926113739235988913348449860565205874720081604368021793721334532499583882682899554362805439088412610883008502362567418244635391100693102019040117849748838738858252519193447836075467783205172884182673983083078151012931782770636551462760741806935189330720736958962786555801205048742884184585362597309455195189911092708779130736247338226157398450578686006938549736531484430343720680617020811954617658188210191514816592221660132560681108875575866467391280333410440466720137938873913418419195046469680709025590509583577003545970959932439917673752352081356599827565444074737649796179139719449196399425064043341260921161809235170812609831954708746381711305079260194695921912123759309889298006592363749497565337723797605487476165367655730585248610078074023405709959613368622574955760760145633992036575708673174999091081298438474260209523649365682723985668100782944677073225377187213561057471114527848853318809569780252737434204360309817626893545651545822377433228464510726792003517360179704820942570514931927441764705724303838464517683279336362184417429089762758442070130263954922337802103378856132297098568482142288842624635096449107560982748485805757590386699267962175131552048612147095553009774237959157242429089329495308575253472609212163748506302974384297513515204573362562549412467074163960489874914168111384451568386463057852691908186425631123205586878803839366781422422850950278588660295696045487460509446045959701190681334526514378361818020073885683512491520065903361325768108913897396349886642072496681862855437190638388602639779951725329835311851299674064482547051646961405318048657635173859188058790480585293274151184563688627786970227240934841724247391862879497913067334716913950925996753037395247742165879191390402281214204692766946443984306378168723280845651934638805275992649121747763861695660638331236103872737645322337161551021828125063702118737321664506944119292259221916490471402064890659412832583649546310285679517058524943014750101458527387599266472066223549437710091782925633608356586563657388177101323336672631647786905765137037202518531485885462235245023101071482068344063270873079259955990824062521565949676932888564281083742432168329875004587479855552206048396920238080322475098864398538715899890407333519951026320039110853375397405254889840982738769167944300457578114021472711658671117341086748841390551726267999661267454541630999231323681595307485990163083689765045876872252617904958293764628503498095798504427766813350279602049277866174662549672567364019482863346574258437371446190146514772315301836800655469712609311380530992057967759667287093093071336421776808688149495584655608853928311952291653719972848176848972354188366069959499684300623385616618625887308218619166897870608643560090758365100180703742384746142278547956195033885042056827984808987797865839382730984859387275726325759495837962782407601240551916267616906024773818370014181550404601638542910911178018981130572430880190674801111501602327766944680735363997899811133700499671191043217133107225332046254227644227868349043966732164925274354504990245123123490582114078168092884902369751644120268110169595903264880354529473785939158233211286921065979867200588697893638730139226667273005811650908082871874908606749066021273707497349830043746369296185731325151106087722651100822441668828171456148288363103994919797477981848436123298731304194025714790431086482582546250959369034790676111211933711190837050673705217868155896541201442544500265343819551618841089479772156605609368937801203453786480994383889589175860452713581178251916001752821987840596462665234796628402219071747990918605255515967841602546082781575478866428384997014658180814840704953900203464415929878042057296878971786283346158798121083810460760480856007475923180624750915159914882830042480907296797039443356024997325864486730277150871869857729341871734877814107876222607851732924800106920589864604752949512319185052627529268373530591088666490971645773956984930652591304441070553731691087747464286290486383311604674411872300231132741083596055311534720433653672379997895313206984383020069827697219076750610218512076674457953138157849260318868963414418369332341517231175041034118726166146900197318176263995388581664481649910852255304358881812329270877872777021090234227828943881265551057446830923608927714180900465359162392854978144244142068842411264407352449863907810916826894826373745529058781432146548981209465478686068231210135309434359450301864588240693246672124306637312024201534349774194654145018424110476572181008502074387545767220721381710189379734904310620485408982917815464966023086281854869849953540161141509802869852388168729398100949004673956649210849496689232495397102256049392936791822655760919708237739654392669510955530969564820488070062401709136213084192375247812686713483067070811550431718712455025514501754771531723662299940641084300919184395667328028429998927713349966828100173812403901403356774237496999508735268245333120635061968306169000247195047938651331446110612638161605779655486706078674211481867510704124680885972518698060983320642857209069835563783957420532822477498501300786848514990194354545537986320448031851178064449353780176608040086085609667979057500146275233810684833551833126090954238893572214911259870472273259254838568879681459245240245273953716807843481473212356910947672183112574266941675807298878354001025912767079271088862276733921392687548171263151198838637981546155367567202399058292385440098417432798139606083975678547251617268496870295647577902668370890995069218545296847397227102311258806517873352497685069104954787386674701287521755309685122693642315757792320959719882414944512057097981484797738724791466752301817858441108226585071172548213511400131696200638567965457261908238307706315956327031923193345366216895510606142226960975237805088698196525908569769286437330310259122292940917566966924253442314684146868274469295816964404131441844853069120336684357445263810019709684465347551589681129197621655244012693476120751845993273102254127731965210035147160225040374850097557305983278292023368155018742265401315683931061665679353649770581048205265420641323175928775521055696072512517499533624671875567644722414832380983229670463030159262853104829637800837167312053685601821657514146574050718710824756977473116876847241764834744515951563036068661002215081451255142779484471886435471496825768001612260662835807399752894614664156909901730048421843223117752516643549723442759664677681704796928159734398040431058868411516225384814227744637250512350608413546833257072111301762893290041512329580332008810599681590171914384377527659095590067811228279242706286707933383623473808104262698594641694648484098621740124369519673757909894119134420261030192868360166622344625125814289617766589479325621199686320796514033223835284257349642097323476461080352228567679483615614845137440332075215914584423318564451118884944194281601325547524149589723708633893474164673561223792619921741431179522739920730543008604810514897695560111031993016469172999138945540298427305072014483580396246791371209013551275616826642484671039646472701430147268474587861325876346129783197353801929327914343995623937444359585324185785925400196809276827443027953778997543559684306247629685250481340416901812152764955050105433382443416168872121707086446976166378393808542920688150229048545124584933216231331171442421364471973502733269024923529961477395367901821672556325803608299628938284045626973782412621960636586113112468466446602539786890379247061362191466201868698298401668584247858648689437879854092683338472659281403789098799632087331137379595645230828432404952409923896561152133309844473258575077126612883169867101958629682169341370119746473775836451821144393291553523373830177196227923013013236994433677148940844140410933048766264461608318452794265440667906457033736165322374364083323158465618989147370138918206500304481968083999572336914191703468397182023177684867428347777040186344885749615665979123315228212630397722750553666939950316606584228309777399511669853657769385060874194326722284791128782814291937259419381802975133999974010402758477548576053137507606969656865110418486509727329146642390823626074862545824566751675182181621895258838025969907324669304387638207574169301049905288917545227502560170571460382072791830872683046265372460018340879861046008812528559405773737005889397413356464023514642454309617582843652660609324256235166528168492389298475434416659636716553115445144982137930085120527761823924753894798585372637305878478009651877287261614597143923613312845620889826606542745993445556901114203741108503607351961365963261937059220104520000749106170719017052366380598301546130007164627696974862510919215009336465567580966668951618949322812024770516080949569855976875894596573521335218622882536773459533343354618000903230051453032550514494017692235314846326586707514228186172260508145594991340627456940443096364496444662884399574513183057113172060168856573536167121228509434566200808017978116279711020545798566237445178174530236044147112519069330378489238323339585199844039957643884543306883345554563481584326224441827538662821399430249153423334463642503602147328001519347331433743926606207031783642823886559429369910798061946695137603944879840793159520627053579374461369577576831203041224126698828484907802373374604274509745068291754699237541029614073131635003500825255859083357099268903086144299602123445980701777209046427707787759784809767829740905691554038060087250334457758729231041052203703334314845773079951476391406088261412409211549642269898692157781647522527028012227275516118338128562035712333468607433168361504440030119440287474985345223024721890970406842303723883429494242299739909361009793351621258124402825609948802489605390611881605655883169095180015527160114517325645007327954918999467680227891707964860453177654454544663595931043362082905156477103140965583231298399691551596367732738648902059071651037185956356237925162013834984176187013474646937739207095212198283194521366026306649980785048559758253324373086404893023068749899339566660005451407211177528148901149251971988559358233384094404398734080588425210533130923711786855767558506510758177905917878624665245049251819858301974687219783800337056049414347111511878630042583233986293793159553692157496952700194125491657263217751168842417749255143843097440168494074348073225161955674409313240680654705472114584933415500170850902304466005234087886024213428163176769762985620895475096698398479326346812107592226415518857638048601662896468671741210279111130149434126229446572103823639501302028190847957153660452143519332553304511074196408101921970483995675035339000854194457296214078348757723975517748575038277354104797701026754629674868305410839085137163676348130988588843312786246947176738451629902909414493428519606726473843767308995577335810648200305790287288424071961026752759415326142310412230531629711796496176149855610024863333226720029877754211672852148632147777014616262893009188457048638447700729000660512931357021926533697383967609174497953668139561053802467561518560815690160373222844243686389092874057557597732300018924854425942260577928025953553688246574822402778112869292564845812263802488105678046394844938710594020464568062398967545416585430994347832939800810186850687336108193489093913425240138248585254802182609450588376308665016358975333738383679112110410460878480222545721735829328754688151123260175883054442466490507627051972478637266087715434100008933130618468118864733190737712462563361521208595111874470375881153803873616450617874246124363625690707721093726968718425198829954915902582275363001747053139567736570459486809305119404590551453878107285804593404219465907436653621700826373715861754376647820142553670907465348573441252766302910995803790037125827409599199243420179092360102110792905664033773831426780058711362074189676965883112372703940575890562863349536683977993381231933756017540539988523525154102222073469029031072397091656318727934768639236786243752593176540046717370921949673649361195795767383505882641483976867811152786483632578214646003140148975689888920590699243764594811911851563565140489782962807771905437675729732935293530772370001755454519784122685115208171864684105115905306112103401400383329195037158624491213453739640218391874721352996382801372221627909195957158622405106715136674128286325337635151246539425497743886883396816421984261720399326285713376983579741247860339080734962584594404214307563460224310094839763123618786079377236715344178333595978381378230370552858730882003467759033253467804987409264489814896144810126949913835460148750895647584433025129690490563104242303008829534713572083915924615107432307211002990238111513712623192981476856051341807503852380010088862398942044691745928145948569760136538066916988072770758034429528006082442931338832289611563560461085379745066378163712414079139561830795422178543228793935468337407167157711546439918263026891772799437578823496766787529557447639697984414139915659547412980743928907180924337806763818042712904248308988364090090176235740049993234517367783148353521639619646791529110644784707285804460402531092099125114397229164791569401551645810222891625626888837724448054966635280117914166577928319816537036281363353422833662360322633407112795144740001758193102618679893430469029725025803398086841807608539698462942875075900636878863526380438002000712697012578944228221331467936309125407033816052042553521722897148575539089085909480037263675907891310470026889978994295802106205935272803132916055270528642398901750902060404161738507779353603221125206243380055800933416899091581992056700031199403673139209768547356096949652497150835471387878378661078270358232326575789813579566184173736399611530804708591078507804544026183111979620515187831633556266103686842846581032190743327100621462098072971597415365923241941177329507798832844430977526282784508871631493328526891437113603017883708153292243210643320291022845112873596676629276986697319091780837134901141037485423594119970534995393737498701458819332379303317127910798105192608821385670934372576692130148111397153608854762856640724268723477009828468906634509899428404421501978923960516941676457585742348175314376110472917199590406506533272198207775310196062385487474517243590726608752537718000004723928789998907079356057765358422081973673191485133587434406809626115224631107027425308375551330865536032392019086178753657553067009953695477669841081872158244823299593688033606382421566429056953271422882413369126278084643757341351049759096204867115646359484255995014136492449878453212142206134915239670093975198692541087280082213858453928818103102867550544376545922223681971749928292934099123889657815776997916815766214220373355864884372337056165494994509610227724621504757884268623357588342721342124551548610421094094737459366836772668811727093190190448413068527263174592637843960080274890767069557229909899212122015381898405478752621844767955062206534840132736438765669572968579887700142713444569535141771722241869338087479499743013146944449265612226415908515313994396949316987679463650681606175472132011553586829387387275178139928510615521399798263988172574408622913175998296710178611070756139288509117106080993311089023577194926805402549973840929495188787660729462452881361548921114436332659086700455591965188456055836150699380226711173018833667049746825519504512062303442094310092237358931834574910157630788678476106137840171034632963647585168642336658728409029052574990138576578068916295338859327759275118366285601583474251052910463916128493157065204403554114117220525967812428815927456090739463889031138089969642364430320298786728634485900094607470633218782666299197034401501129787610068314268265978581362872830998207223204675060264949244679433777643868224864018420342816382058166954966755886910769319871224099365907131159313475658915170496593836265421701203928408032980504164944620177425348797032918498500640652577546919025972177395116766592276412707254742857911889131231059143626038601171118087897008993666471326010552106593911149262092658782773338010891008793204725339553115140157028557812240018164569589779925963015332619665176436021479931505445925258487055051684986962395932356900585036192010470739238211283396398333011361576671897283057092768457746598700505587152921051941156037723510067966774145012901942185243663600103790735403883561734068644477997234633188682958581625252154323842002499949758500945159886534848092411127758415450063083600872035580131536475779830627348616816242226887408455554506358843254420845811858329865333061358488482350719906483363386157506823910114695088564416856716904305409069235999219913769338673090830004855644236411488944606353273155763692442907954159377691823583776084618302653404057488135613417589169370492749457613754471968290283692138490039643609275943784107840628115312328628434433565733427603216348925843052623787008648639278042061548094621696299056477067028875656791269226701334311537985486393093005736459297822438568878588618541090821216881884750125438925920439901826370608064031629634600108117420324260647614881599547418302567587882350853879796916392436652492546342582198345846372590424998367927640790389586261935406662078844604438736997489076215853254971122997153183894453591269117327188734702052456767656525648431518602830366870630040468222289953018811636319811079078596425516583098212684007759927396952259327008647661220188779386987362649385519084917849722667999052252256774048502148707923039118012771589768844351746856385263455336579639040580910485375274311163261972852542191176517377757905628004001976824907846417208729282324045695503573801477496162154212245473148971153294814245456880599840733415148380298134336923941415425177705811627220148542788674902578227233080553683583459395737019403894304757108265416578354574826528087560796815152378739705709865891823196594675722653677845869357394603526463573768802956850806790187456793359597119204302057095185485042532543676013841502693648202768216282047266271021826039793022066532877009064361138807302688163365504659144507069399654652796850154907097449721570053766963269560601300853320247796314903604380294745915936970276876590971669962088423295872894322833447039932965037974944499371152915011822305539708124457824561590338487759130083565038124318140383845675395954149893690783535626992993315297690101307601176804308998469019232316264879758486582593227179700550083000331018888241924536381862437827838728727672381673656058955879678851510537299621640652756737349906225987918922572696072460771205395358474037805582269905511877015515839241203238495316363979289687906496881049011245896090219996655518434308480209713183017487104078338564641909671461028123386484220925436137137883870088295440791553429304765375243968269749793854640522007647592526220198619076057694202444131899608443263075788195132293031718697459037297259994134965756909514370328466473026351221247386331581648759965445782047119241675911908903832452480555060113410221732994819475854298166860292090197001237793904249254651974855402975541925062521449149255248059568665415252340331010911199083545555935611182815403832919137534610300389743255812846454392187130187194223406324093570980966627011749349168654779159381073927562461471437726427505384967859446556606494422841284697220975527548806155953933241096615369434858668968480511723906496721625332380342684835748966922344007208839060473267098187152181419605279138959905208744820674914170968953472291835150642745753103159522766018479050697585663512178409809495689820727440062203192509912923114528178101087772518596155165582313505133337733447247045120805679239046947663369282023193153585315008500340033939698088932674400469535664555060844301401175925826983590028094270048974801145619628822695737509496704704942933165627327595570132430576926978504021109730588176030542525969753227563487742983867360729230456652885147970452205405922195591519944319620331522372244871714547706111080936494613771109268347868241551124816871240438512044222542842662298248913097237684425578474096516847610276214710931096566146004570337692435034961560575879585263815923272831575572528659844996247355295591122734784432949230898025643134816978166727158832716609348211577123091521662137991353029488065972061504262774101916521956521108740345650552372274357231361422320190340416964629278641704519766688564862517055247156271938235875448902299205817485220125444137490594427489894130822470017910057654271754081164299986779103894892581892850208957908092174235386787858972214683898395269067009164990670392312652062944080120732002968398458459386571641966933767449201493888864383596218971306859325466863491677895707063106537229404153859712396203016466779146895544778161164035923933994912303150935953328214829588954001580405178780867167683317318864976615929640371836443350133005763337364065504170950596872248564085384605739991618313859373325806343312075889129472541651658414435880721989741455994865719752310748308020390152652167276877573258755164312812077408661858174186071789703374477764454918927856779497766200761621344487913862422132340863181057556615433359337303670950419540706715328083622081468481584104438545761502588964121651733433249700050905301959692330739622121364513498969051347993657460985284064371285165707794862176958628858031455026633136230017045557644354620590406423176431443732213541753408199951182692892160979440607656702047682146962053965602531317830024535209009491646154520373919401049933490852690332467355127636692816787224525733327388302079896903003842288259035295424415954276484079822296332651675692997063678416116806606673122768909539177339160540090530672946442159110576174375375547428264607908468746081722339332156825061330691573080167939728620376503637260448450634612706242275641285472372129529645111089299269162206827404175483802901565480275826785439166047035210848819066836458332180626111729386438049092316566486603953047486163207547699768023221711769800363737694934618701896721292840395000204729420230088055414143732219425847216666963243890804188132477912311864542740582264314141876136209616138741263670673692455807606343542348299578837464787563336192771479266564841920693481712344647818671849464175897746165370859081606442087063417784628532414636532082532543814968346041543529574516181233716902618096640738157156028008492615722582856066404599347627585420971833734633293580316912212616163943291873343221992307229051539567867705903769951261471496432939206335347780308002279789645763062967692261598064049385549105417640372806869197016220967487342798822907432824292291120434994194980046853201031668528929712963393674051477261639385200489281685055317061170054910296841421110621312795344313987700160466671739832243443662087952937161638090464703474666708422249007978232146436934173669867560387368028576267666298831296661258674220195642989164865547343026473564393015031705704784681657152755986168070218067092013024755377350927622696245568268881804118605893401613929938174006311772553812681091633353298599108413392033197769239408513609552522570761967663537908857090368657616340107931968506123332530338163990174348690159864414011391350796720642857005324664506262284663604858833866689984754126995525570290025601459389497334706999810373168233717335346089805973936742956464817792110746536357181439848680291458356140578703850975106167900322162039984114458001747780931603541827897604002928119629309621682411806946548658219912979324278429239521294468047701163948877274053324444532083714315386570704456101019918379315473716750985792716530021847513394367569056669962640647397515629005918596586295986432794707566923335960653846286670472708667193721048840815240586208993258828335619708884048660413743630523761906784769041341448101574899058225252425994201436652153500057861161847192126629674268493846583097907957970449922489542143985253442138719077711963657227198715536618195836353442262636689580144980600636144357681745979204190098694464698607010900622964728110294678750246898420747641318576613545343952416958874292888875779943207104517498804694058477668374546602496910379631071011588083365108857488927747246068495793215352905411801131629784229264904108007856087039878863317804534006130449168627072839225206728643690523707993859942543266036699936021504433171684694998780865831608336164957395192144907573705260624614388668293063031989469152905318318780791313303002456855587191640435368424317941287426065312601032977164822089584295873811926569831130550873433053968494482886066864763556082158705191166462429824800554749039733029868106469579034257842353966954458854997996963155820722220648889382167336293386732222254575766624072705260901156006619085730263530784759803258626080481478596715956728425046585821524580515162251209313343267603946581374352926190128533000640706087463371265908066269700684114295709881102617218490082089586815302407535373502980981815820800306435662084452507551823706096757868497369057168250956331976982616259563402383950116090353581372879366333313959636981257131328548397532983600333018595224121112787117473919096511637111760026745202826524128627160448787143148406185592807768525021965415506993023349032386392485104857749828747348260472457634562525351484477385391446888429808697302106966258096488870764046662941851834696672558939063786263797859549844418409823319168254829281153436362528495008655148817574660730532801556129163293695659801347008858932503535079116636045977619553551478403359041130957434641145785841572981668485011175584402686012239778966016873684321272585635521835927263336403171701907154839614107181732059064539135925408025791360671123900098119228642722798479233869637723603964003428423825993501076905560566981706181784224520793934902310253771820529505496664158314581975447667108102947478521383065108511835964314312890720987163410970928287417163572268688945155104447286492853233802929940643948465910276036514346293921428195570405427148307026187041583400023142279542767052770235176105570886564435348293951568344339175425622893112693953464004164235460797596774748052195409495990216393012249812619072446859743072636268705455834966624294781236115531798599617302681310033192721468773691459932494794249344781130622164248357933251241930100370752546743619583077497688481489145317057071220925506360317108175115634115321221382191640810069568752798462303136423887178911968338782981077419873794703261682106725066314451669729386994260892166035455983921012069893957065530677677416380061988137935435628120540918601058926744222826434371457112122398200503624477542033517388773526017788596160731920878127876598149856220296267459230274930626720188787778916804534265872076304686573370990839124748528477250737723256047337010670181745799699696002699121468372357737538429407862706319720827102630032672740577967509855403705625419460429622696596784658751820019686442986344593714713386338649286623321068057370315953262069069541329906032036389335447494307128964180300051673976194669355087080945135070863484724798663634842458583111132411136327340832967186274831178433956143259898876067611441382842447147162811905613189226015166867306839775976335437939401881320292596152889117379281758433841156681100443007820447773381531046410221647297086410834371959462171197874708332696195058885953800677251682763495414067744963062224547192673721258922557662652658378696741443821713311179240818810867128920957200471215229038135466295008324919886287934135488023218701393643245662559294352302743959236275669305916441608251682606272609635841218620075289771157426073998769397153077213806134930358783832427718655475935587784590598158198901663024871376644733426238078629902785601264036305519041970656162379717608051317781644274226572871033177636971889114741585976174745788573452895891329458325190122291292344563698800809061128504729171004622639684245878122613978434367466713890461484042386020122875987028355958758253540070506655506063851069743379111895556836279561140526303896764276177362871253262367755405950290199487440339271099293468207960088449523545843609558568836231921494306355539394310763584731192077530677326226058271480737009371604456279496473335501374044283578011286508402486268469165230665404468172844817500625789767438878677896898674008679871548063915765935870337913070640182592166163053254726026928042005697944488054521034335625156323655087308789365691287071348410010639518618858405936074289396791093326930425912088955527303843940400735560225218943178427163597265692036558282466721505593871467120000894587958300371518949199420119796184476462875247431092203833235045431464594106851036095196191428530751187815335584616985494960970047709419975190950155824446414792470855460803550681250561184424473914858596317237566805771370000090282301287680506973506865137032348933894577518716370950214471834044673032076543069564850669608852402263719953950259664579996376775068170437274273734205014201277147029456061537683471085522405517565834626031182519762801429706552673574494808664021677460813564815422811514230911572021260988364665297283886313078759922320593535651978598461896905489814173812561160663709446771301687397857683069319109773480930476842054997290739443830634027304672209194848266744928465160362998394943515265954417263346135661998261223293817687390820418895849993476716345598957979071384666490404610620577743227164733998979536097591502546432423184122580648184863377576833386253938581515522397818454146713614893114399212314350065592910990497486612154968853006155682298108493373547701449499178400476249276843490553921171593086321525875864707137432360467839312980699425632236700345848378762549865183246827558587668420115755127401480148320547794614157722187836050331694739565910988793861459271001326097982006924117983669909051256454669480491048390897041384445405724414386406533125240670477851302105734024581819048721675851390848567612448830488882841735327819672989195490392644495416294675427501608314800682832924232010573419767759488993376778868135409203543651808809430294242588161905337984742820063936002042541212419736118493308341139452752387898197048489913908288343712230873784052395871538626196228601055500403759058138971435544009703626695369331349775296057410058582610675185695352250341144810566996057281083477035224681343073917364271983305672622716498631883897523891769138740676965398816404278577994948290295182325792549809064082703924602427785477443338692485716858058080915192540667277239928373747092410992500365962193104915008097129944254830691802812308687236594890740893504199479085543221392013536354975447795517724450462680983576059317488438978082141369858501670252908340011831120157081109363108072851194566817309718928834997363186163725231394531715920348836612967862622916430757577757175899619503392896858176409234164894199045914235551062396781107319124555017730185347328682251325767229980411792622375483648597956390171037803256396488454622983393122382302461931984784559772147343728930998407864446360100242247938429324697874585368494534778346651209305812194898355185115740636934984579377884385744549738838727945679716598761462124097507720656003846020557523587160983889889919702221129524169554379947457048230331459850228320463882403116413328185693242718374580680052180493575716541611828477892256235704507686888214126034362529818783420999574001500361451745991955192484222235705454903792431797877410582333216460559459223963762199620815599939824554323889406818732142023605058172532343664736990589212506062904137938122059908677596577831349739261314714359957785345287975780693515560734155763989506778858535625383603146676215918790031246002975578965748186806458767358271254916642275415362233294649914930091881933793502110465406791672770551167739365311149569952126888922429130342054151933267557705332896190421030841174556109678888408092036333263938667217417144547595362740311476039975818203985741892191533340979197810784806247410488816265829354314055596238494937204988370327306883890094012555336641701487872252123792620167915821710344442210265589142220284572080175436598764712525018999512006269869218597238166730405035107371797251775654228576443655079330965077747346739036727784106719865617668091002672263467927839042070225304859025293893570791916599703224028649379088854327513927601899895867196626664313238599769445184526192723568230613250867266941818962807891747478833976134003581649658925542855244140975997805949289832012442742676560042019954660720040091049367021061048432603249546494165410906894092610396728567282125328468156458093341256953017197388903506334467856571582900255290020404307978610937419665386792353237449124516834046214451515665097372081844784601179212104978978628853627837611791594770656572699943706160684091367485299980778305212207182433630265627648509087952500817859858616436705334602741861987675056538393016811431258093291398965136880251498437534733274307964474203854773043043627442047133083416551045263140876521801123495712015447094408720282602638504363124443373143261883201268381919456885058535271351773739982706574407615194847092200119639196067680874082353149211167088286523596074549885138968993549133240436404944326378314892417700145976271206645742728209106077142315697078113133127978736119613066355508204955824707760123029824208799885037713547719652740341655375921567498264326055686420465871962912211231374997339020534823727781742448348191560596852881816908929003197126615644751961096586192820042197711373570839129629183492412397056459371422180743141718572185925179309397198607359165156553848538396791089899336237145640082857910480025315434497956736005168273187822227461021536302726836869413979206839971413644615200936413522169050334922262511156453702330423445738002553073496843681005639025349038324781805143621709651811840234263358407875745539030914222499288969004030604364249697230553922052569485375893696831794885183969757181078601084795781947306240978992590613979835215446407054049057501041712981288966565028375348825683316083677978937998464026694059298952648355076688895847419466844499181722457150921972948977318281435041402828437445287223582041978747808391354724856159056541099585282009134049531584858595339540467041015334556007869901552228563953532550826953499846745397058460792397709359008893905951401596470006179006616581701333386950245929758722733437437230808324538322068820139447685567869261722546482400698522715693176772657394783064785888161037997335124401321465868268759971592331504844986359285359177860302516933976390809213034941183564344892028909933858772026618657354540809910263396772471298026890669892736381100508776403024095782060196960249603655351475315731853956068602240215261865312347812172547351433361516205775430032748672235344712684734633345407247894272229247511438723607119628968805493627028898253707287134783151159945348007403429551191888325828829439231849593043784059561085852859260286312032899751598322039536025786606603648596338792022453565518477326753342173951302010329652557796604789364407429460633056405837864134644937601106048976824186352289039034021329481779982547867183608785880911699412821889886557966536588705328777469401741284058627901409640054334435605395535395063693558339545534131268789557879815849301853019796968324990127123013934853298528527615221556023064668869663275183957194823550759393461815382935705116051191015044369960728351814319775030271118913528881802841763072576126925313738416233333785327418463085421997913927239130709208685006936214874685951351170755650080442655899523187449963149518950011236962152463978535516225485747759978439995410186047077642790751296825060385945755533367709727599314385508600852175192185347835081731194031184623027145757792637728479711567748675188126520362298878501084449383679307324235886710721903871794585646379956263018761727061449663007003056831625150436697920365180291597064103516469230050849950033560930841971381906603388976063605544141170435098934000270134602323521087983978751770557659510967706434278038095576667428445185169939029546581285232745776586355978707214998971529987276263113216620864557001062330563643111482427433970301459708241091192870153101658080780612215904058960320972593255541709309246801629612025703199898478182242223773752182099064689922428657724747764757609977930440196681273190128640723530777965332496298830412245228380198400995993507794531017955731047561271157126980822310486939310037755253961249447605560989964905812695999199790486404924679894032848700053966593861628348784043621149995043799507974790027746175777253795366092930339963277521450679635436398776403313655018754046162907977492362859927098228297934389238576549085033845262480088038159602367319052435433388029523056530403048341567102759899885083779120075466657307671232520378526756780522314292540506170358133637627719719995438840760422926489599901319641663606455115209935074881235768805880002783427906014743498535891205208336689403595352304991700176655029470371148170494634226487931427928964853362775774659117296861330510212833960719017033730208192996851655789427646952387757507379079816561530413638656449743124678006365942588526463478891156905182650810035086998224609131863997548918315131524741900177054304988291148108438241299050180437203080767283119823984718783493637800516133537030360149244966789845534536345202687679928738404287482900891685542073005233875711527730284937784372577922974899140460985124072102263719792205803361256636106473775927659453495718667929583196550847223609493656242519030003135500851504779457876577074184240955255576003559669393161103996951853155956885891536801311543343030012117115199725296750621247741708870872798079487060842220269185691525236304490192669053789794457690810849135355654872911751666527322412223075466553276470480421186373382765321926552522860366378528307312035386308155146758909208986912896919099742710154040854439406407344908401013758057621764965793826463321284494561050506685020245527821543107000313666400885455073695401113630652113411986116425934117517161498845980964265070116719328067827832686193432596478980726145373753581526196427223730211138346310687094975094607432272875285572917422060091535023945771277828171397445094309461269875210167439228673332147314873685886177144165430607084705511987582488276308427545391226884433855866433991619164829654769457561296232197775284178985095794129541931339652788948478422757317277860283808367379347449224120333546911191609876428063700398734846402259351879782091919428823413407806688570050360889923753036943168686625221800851123163542341279455455776891733603350086538436081549870056499502126537386506548381178330095394318636820412626356968455022251724048812324821554302025361179646455215574683868860308631724231061796766423330186697264854120134421065743397930201367886872348583115431796251614974144394247361263371984466676101419223033506347248964349907628131923158137946905602159514813100117713755861456599968735514679113064949002660819961951676678494936760377243607923229104037446834638500873633364409434623510947438576207793789417390454939988417047670710603370880365131915369516534339691618838241538050843961291667651750571067365622475210237637162057503679451125113030646569007021641263676453334474054855646967939714447288419587838942685901655472381897424500075144484852567444552423979580894810646406597925193023213324310662917580259409369487019535938421847894602426196562640289612600946210852141725143206215732466634662397667728527423473028195851126497054672304175150926082156183368411208174347224796750593980094117769032831115991787590171677107387666033386187703458779198917688062589155205169571072309345721930672250495415955783346352608757520364136841755729990534059195139110715912493147659284664408296183759044699501349552916771984800188938447192972597859260533789960062677740828382787806249749837390811925861919633868052142741550615077236979984983176702946604641521230499341451977769044923560887056657164121051705204655965366456157216684542452655195401973379397500523154301895894934320040353706723513927753734767830434891435409377948117248091429205955978661873650743869868557038706661919004710914319519967699722965955449188781023204355404554785122372111038346133777333461001337366292751527294517155283907008462869549159571426605020567715782168379854040671277055134447908675012458016789563873180342731257904420263704320249656940569658965991082451625154367498282519826511081125721535701406220377467065193880484747762806923644856460464109305358025659235788184506799837618574575451443464464699754935171513442377713820390918494037959435015829578980186539186864163153960821837338431903438455421119942549146865273648782663619114255473794139721121576860638313097868741807060110103147696681766191845264658484576676210833014826319066377006413816977242469915882229957560111342808231932785891086346959623282075005341667094478907859678675637395956642338245942177278579966750149882531941050286901662040410846369674022771784958124929693479419557178678313540555208774620469670933268180292236325733563532696500448496962794638467546532909144557629000491026926618343094537512769349947595922560659813636087349393255311993124874180679852835603943363597147576293451584856683890768196457533849480978970815571180317531080928298923057268718667609792525678867698538874174918636937875036025470336429220946901455656718668905505325300721124174973006958298714764053941812205030617862933273936722090270785980462385518862798287590122864949494301371185614020539087989570495375559141169428312241101592470004106613975753692853654627796130458713817081042155872525169023392894820490558047915081151235546298040810610323920075910345285716336989342707465593175545052624884078307103287180082581656664083608669550076692322272707789154825621893673034321302456218155794037896391382335881485724921197886104305693257349607349800110205244159388212095333123029894417250150995644081708144252325832876131179525768485960191465843343025628389719325192889810295347314715268523285142212960030598089061603498136318275128062202152050632293695055210152613744842660827165457089293539936109894611382013588170603770371158091130299072249799772224502921593855794073775252766925198921352353843184538822118322888466662699328917344872622308743245396666237677526173848740361641874994998640539902449349523810353205193950839404695315398647977277766698915366576982335721928152225179654063752443686105349225464084874346037038246329904023737511780114992368416328785803692923605058442224349853258236604228777695200095653778592182071480141829484048148449898776383824575154316828854181452920492985422380770273073976950852206433484707374920939174587485168397827843637430370516400882133424700822651356743046655486698615489282771668927596539123352610432970579244862592909305278274550530105215126082530864289965264515203410552406393953940313477345937093198562314737771986085523290912685548065883461602465734078068070891389157948415189464864043785493692044857465820558372808304161455448241827186153429238463774980077169251808257387814381957510567481437298625404554139179320309254130880525860665324509450862152624181547687089812601886648808283364328880658814350088233275120797761348177443620030249308886844973377343123976830854683462953487164275766370355620746775898890434220164638520012438028186497722307660842142489182217894184308911088158172654318618437245423171732678043382471128780888517159453230776484107418243323378323694862717694632505100950208753834262975920970962791433291301782244445890395248885824867341944666947740109606196986946772486541117336028961191801477116218398425107967202729847254918713980158027062756747877236403617219049139658498447916123097269636399035096087050640628144937491769592883659909847067235686761922658574986927450250186676888550590698664514100020812653964856643877275187229077672842052878957474752369563156781624262675462909203937909589421033198788582886924732870272895601260374369331412291168300860629696991925509397810288518866408905527795421004365885541902823692155559338938191613289125440508307927686781445940590467232738561614186376658015546191867775110839626550739907862107091446687509260194696121500297680718789032583077382110239654921718675528082457095201727454792881189940601462541170132041121483451610316325835600386789213032486938359386416577733005482936053220229199905344340388598875021821535726701496982142262962858270325979111966291184784510713897514005020201901811228433662120079126042722149732573555589106277782194057147172763671110771931590078061056854034588536092214920016809067057574152139773859019223139039957707036337687773235524606868550211391322970233575497116963219412871500627910762515013422493867662401903414308031901384629949305641124763428602412623649273861589709632286032852387387963596431644513908854954397296957882463068173519057762904566285875982176482482587550064710143666745741047763326131359056250650950766420684210531500113406940927118514174512263003463726815142369826366987147225538642167727457750353222873068762881147031222126576715464610684552191330876337820306281001099287966593752299932151996432112475051448889220858553779861307620802410469224482561335154764176378431953971967597239427364701991918225140907084539592726051990961147146954338404807483157957317880881460068446804090992903252971424554663031898644410303182284738197045194753561058819517833923645972790630949805077855926486840663338070374541292387143994490488840920508447965585866166267286456807785678740858369497008912534458707940133095793718777042803374278403753369735763400191911310911253480710585455547406877614528104334354002748668759194792015700954190081745672684661706450826453507368663148800027184733024933389891537254734659672914317288859993189252373996097561090952651409002883730545882633538066133915442543397768630195320374988690415823847499412387343588491942043094330994090888356460735464680440162180991487181591552206301521794144584309394192323707907864093470273939018766190707105260369560667464124234408665677673087575561042590274557737661289677557393161167642031143057414028598579892765141550568283309689101947287713230698004145885212519553015291440281047073022912346754287569395668536322850886559099652515793102293676561940877728106795880775611992629778649796561401881825999628872664409408092222900294011060498016525928505492868825340946479744376590557780390136157404656939360243809065017308183610884625365582424829647561144122036822457180306123735782926839213631838747145131326609534388001717707026334748903871543024816710563642531663752173290032824991147089830507888741465243937776066847644366246677044591148523351190539538786877965021350846316457320865777151909044605352560425471648869364650394294193982329147691354856476176845134924195667391197087391123461102656013846153051616870600006038087982383740763490591974874531486734119092028625905530224353438633134993935154884391732147575544641439847231844431864811439971803383638648481922905523800029047662816663029157409872789597583401508628541298871773664818805617824260518677478510097940157891154266554512287672051101633428563428308117819162578461931539869359995555963368499140824759584443863127863608803789728059504206504098184696356363765758732014600997181908082720155634078909044997371843300320997698980800179887377685409960138318015462670870611993881574580167712586141625458979208401450846560807159202252525412084261514208129366064063332159765292970227124049287529541532963999792952561908869309942845142182188503828293548667571794016576411253555981672737750673763389399126269177764817466065724292345545889085347145455158286290192495672276099615927325591920831927787245139006217664060393013653798514951453810384334304600840460095482959698062435267671981318392152154899786272550989975526465524565759906769434637354749743035206444030112175387282639580501138386555195364723086182845088925977426134229093861920567442327258994363821440437917998326800782328624686287213012809135808856026046885196742799233319952342910777943811444488555784550125303811972724349423575833537414039208673737882152690695260995551160131550534386733859686100739565698370294251307092664704379723481360111062420618596814069191186802848828693622350221457908876335681767618401204086414304540903360370532659108041023302012088208752390226073097544952154756774862966892169920364614405791338941522992578524930272320663271502557783141381731977773855215635695204753372349578453220804849038629168081830425841587329911153024487459869478563112316302738440712519606029015260408026515141732923585465523693154874639796372289519698718426555167418083678434733701819161976016233999814493815522125878232127384983133839209578091294213724745492229024426421916477628946896643342245271495758724849749499157425014442021578871027780681662005526932202329558557079255648794342446339004573602237666504237192608556736582392675327258670317061987030607496214907405672086189184507801142271478752578003396743960898060575040765493775559953447415068116762000503976968218285309226810280194600920448849591373475912528433682973028960832909605217544228535135665271448147407149237569626297920421122413068562185776385143591791494668843104819086516821159228101242981665529685040173188942885824337306100452543213845202330199966662074137296265014332627399762918662348594610828893192041203918512062970022764711298280380147625690620153543419771849888267828434704833884004388195629312827301643175524542731892721280537183929494620620298696921778773984541647153529830725056531577717198906093547194422969711553721933913984663724515635704454456492551075199304147553862172545764259677037768235371600077263571955267591693697112048581838841844062639051275668765330694238807379801605998336206966809320008611920997342692760266827572485356705161270641325783634499768161224730923363725770037147574482723200419950674071487218733127760345787496525932298067058386682228384030408184357057708215172509098381800712193770695535278349427117767896315475719238974182693274853035040418884819021962561210504350575523287051562889771024341995831160687417607302720170116640054221101219195318372490991900872242546930595255057392417349010251084995496560521806406940478374401463994902993075243842312552846792246665997150965968610372837327788698758193144745429786371759607049738535715744943734284503009965703664855788149558775305317813873523565698011150425171291871817498970487826508530027254709794181152618249815635053407520752382293534418941519134054040621609641504239040810497524694427284211776841671905493481496192158726343504803845432213570813714389175555400547480778751877771725383281555696777093044074656668870125805225556941842207108293838142872407600256273947205489290781919389742827789785460553342800028471637384506695423916037699024862925772396690515942209440071911704999615775703757905921519025252594186114298206355900103605650032907771453457076579361682743093793549952136310434309050988551837708424608887274671735859978695474179568259630946966287559437311607952970807681535188036365494329870724303708420283139590642953030548665383408717244959645984519458011542723919395071585640804411976045216419505142017399440911273333662432853683600047890848453688906977461520896074685578221679203880685972947370533149638611516125935876025525787842363535375585985744200953268272632840496104135818826913159184635415094745221977967760419429571249494365421744673340622847390417667249869514555361007062294671937101650412097984314737450328348778368730997954170931002852018768659239238056760710123225867876850272511905459584495519522890354168956469693469072308965863152285032080856905906300932596235884894417323925626709007853644390315692160166093396311669437844772668269076634368207596616957265205464636359146728598869910267104223186504582665900372967908843534756763938905896315330743348603149534510666314137078316057733948020307846050303830936490447923141579938341300423988251346515929294804486059805239139591238540222295339656764458630168010589668901489293218772317154866076505997824477658545632695685628583887006738421561522663335072518902370942638996593053672284592552186599290747146941588917069739961003916551211296407878494155421824130853966011200718744690897551662957311682292861462010858434385528946958335229738578698425392633789339603440272280158464253196783490432083800755581259731160868342667801445097899636416431426121977224073080323970469715629937773863509341334475999624536446025373482061518136528726350902292960553121001243879585054149048467028082805574371281119857532803350293639420831158514625241444589138735938270669239457664382437070841744720486590901228406070406508086794134353407737459667000506459769965153068820304170681437148306207475860261229032506817016835739124552640691396050818630725434518360473048987735525976349341883172461586716112714763663633485286162739707351831043748738770376629297857688929914336888989436632977497920307239464760322297583297408875066688609262709168817048421371122746172708061398655198595275132306851318979633157190945401306601864228387307230608740499319018114827983569251658574693892292007736337831780520916661430761415777106765338359759201955758920429670338496361133687795210443448180282407294160692233290291709531913998610686288131932601072712535753369427156898905804355764938647623953955178213931890331616331090714556263861108634869088182614143080676542176626333250088442879705824212122163309920077438219265081746216440864466646013702064603029237569564818837874647367044763089269804438686865083567735977962614245772523319212292003268381757443327527886846935431883860384906968770377350679735389208395293181747847058526326162758622684186834004235659244429182866325447526241174320675148110201090228735671270570282592720188559528342734879552914647160921321987512202751907680499663662592388391263254861401032797333141635723284777060747897261372182234725182379717797919268090270728259776959125565376417879735462484040769771139742094095595101882605189034813746375343284947525760337379871517381343184375146625316301529961921830354881099200688933875610565513480241377442261232943569855851041380407994497535896581059220143709577359025911305054160048339150402753886764084181112580310670466851973870584683631631646715916500436967624920618666139524280527337081167947141718944822453363542307858667782960415746765780212757693755840722046580267230542149917996753929491443404412649491439262973070245387308592512886518293395826120196390297997418124655080852864513299407025516032062869967086891725045651532879485427783480014012146521051534293132443604185037418390726429374360425554201029366756467185398425300003412628116932042741766498154318228992028936991614056118461882514635416378636008018605196574919963291216428788961037884286650983712905888945901032955869186478408957348746471488232759167340605758963998044316303248881996814983377618111085282357570755099384870637771608430188305188375666108538541998550626149553511323235629319930214137567418336762865064961368384329670558886816019673603835764175293819995799942856557260813370738707066638976017669409787069332191144792751521727049787604944052951067782775428463790622159139309987852596764457032316517109414767350967913210353462058716195338973892976635509211358263251113925413013830852070602095893480428299921037017910007964303914186491880325759013745793773818803254767971563890834064888549124591752215838796804762978502949117850973177416074132513954898116351317029996575735717228704142905201493611324426530922849094185996067297735961403575189011942702332397785439769332699179594503802506294048632444041379307719935791227802146006990409959496818394240162414944277360795769843447611069084700178320401662759623284076229693580098485283460961871640631047626829484975933460327045897986173882909257615317293911496531489483017033467630321700407079061671902131864600183769600365946987545561006571988694115817534447678559154446277125166925800797142657346811215554519740620709610123919087936072762636076971560187373838226134122096948644846625516613912862524905337129083461711025725028624634170709254313230345137870654956556825731642563315490058186595782690672605944116019766886052332574443284781274778383229814124650233071932134298285313665797529445915604993286182842702068404536723033745613782610892514533007265865427612609847544015438875674810296572172297362686292807239007660177639454200497674942790863915974289612227185872242567257423422867410928499442610063760401206443461640657938475648712676888838313595228323450324061471904684988813611351755004043512838492465211076547434711469227465186919700883972685224715682627755700570025741111863702148260286027351120239250077065893007443830702860125400223687494837392561076151673603690326029538770124618689120861301780817515955308709345832313758948143585526839742994137146374683954575600146089126948453815834298668209152385093888875878925858549989927613178232108573456070145373396401253509634410268894931236121309195794452230508449709269367780912621429360090469757773173747400444615083108728771755982445494121836828456119488684901119438422707062332878093841809025976348437783147173769740657198766927270372713859482539158301223535758710267615275357297654464865060237264754852549241135512796733923773168899065719290140380938682053506406287820967124792778064658634295553188412923930827238800927323387530796437642067761041048999985346406124128904219728030455597282378440314467504105722134937394758841267156015154843222949734879063371293753624378707224494934109803852829976830864757161141052409322613382185669110158193424419305661519071841753946819816148958516713186641543563729124144851215929397438507024932409374947727467727604151602817455732616205618566395097303059724515948342999598227758554101337235314864318393839347955815379296876285442270785559289620676547137565879227640502910574838876919498429310043185284154659671092271754590923241346391865023334432624481938268114133111842569933014647765916184483489240878224145549216586808533177977871230450376496132194579863477918692504414307008022250311204473568104677275432875693715883824796405928130438591259433243118794588628718604197039400783085315209192737257418022517764302822082458949517194563678004412680647599416069155924769994423759892809848161205689719699996311271711186417610911016188764533413221386972126294213498157642068709486503539783026760963476557258619573483477787078732374418268286085560227733843594694695409527107539187381717765821167836159837173895202181577334678974456592405439309387447859265328784960849857800801637630849101555811962574336115061381332488454158878851999452381676663738889092758424913229410457463751500325614008576766815857611090228620749519689371878732232365644787254577622254052847054831958247096170645586966874285349303880594055814048783170915624271932222385806642097628347139920260658268781230824266369615240808031331051356237794249969005944034307324710385108892541883654818701935025924471140291463298142134304789987232218069553505500550243290295700495179309925052896136278455121253193810209444887251705498745260993140169198641674341427359075172162639627286052291196573595529670607313080038279933572626243940498651636572087985489234416383933135907315954472789657918655116527296764874446602824946551679324001677560941998445439372497140542298752580332360767922328553931494995015381005092386704054734143974496011369920458800034783102375847094580081803016955145160865516494968475636962922034019499962543983685108951548905378792515401731523485950464415559656150675993108795373244062209205076506428388023819625985083869322109715002456469105108345348180458116925373607961218729843428946208324106752061322238866902676015369377875277595431754125705819878560682441620091773236865762718568672157987098856020432298963119289136444537128903243917094935832500233561366422226570359079611195403439815477796019419742081408973475886185273347590828877129277423305085731298424427818258498246052561460355182115246694320761814305797256133272341738065860450693294825660245458936386429977351794971118339897685780537201672489191126779654493754399989867768147327886605825902792758826758627886833709666943199565518116601362315559133474192724116372739048960366122635181007792844781520670275451580372231287494104167372618473064710919777511745770636602891352758528543848079931986520294320393836535891813500810119398467192230207134313329053664006728263292038365979380239926656343723607817883677613709873563952380445571772028984537319048728171426371538825189590565690035740224835917019878117204400291386832052583147160354552481852500396668517207316413646007537872280543201092604052310732695028775486053460315783781613335963417914436370274832173930642239203351109548435454437412281433406404574411888575206087539761160078003439575960362389888731245927577393129222088341000571609130296279920072701263491388115456670583977402718484065226432560981074420198301017915560872227823428739512460464904480924163247623414722525331118249954661418570637996803952536936711038886513766955068132604850669148375017826523158039676401297569946338401023782175910084049870248821828292837569482291113098573212714656824241608556072054286213272436216893452547156614959510384613534775843371470630388399198754460729278907854519579034480288965896683069522476465619426120066592437078695763986020788397002571217024733271141557556373035262698752397480870838600590417359227989332004681140011574919270388609356961229046889725130835538417582285584521353000835445818175429782079713052068557274196797098068823873895526856025132802691610671472980167961497061689118492424556406569217038506134670459343687459236858074190421955463957877816979156795073059986293230348934880168924725571381313065969688303809114699469307291341688687553415923113409928359937582384780892805405755632575480379083438490271258820364696477893967613071223650360557092984611637289460255200073611286722725935295075413118901357701836483798044604009493493007319357133293408649999106988281457840536346901971587040429547983427062241546337189354509869108817624240253178494802287309157738947483826861624093355490462149515453466429067569038468183926333771109231436970601309913176665538857405029810857103654773634886465382280514023449008520198950354657939892503887383291592127144830258527790652196831163629498115659362491120519041890490981656227866241816984869284875158486526997009062758759590458385868881824215631090613175252110909575124967941877356498846244429196384643045221141566236714190878724706152626835276682912861349029889982056965360899591125151765060332171345776405244600640516359511789375059679283283681369022015827174521406441937913063247851797544127456514876151028412581241694762414990098448451695283392695731844645748280159399260186282338047386078768306162267247572078508678666234137665103897969658650841021743352464523925537060510873226095240415084358299028411642354285165894198702907499426174605438555993569338693620782783575782395722139465404854739624843264890083361290082180010393290664888749221434658368678126310186382669741511115409935142366128392522951096637445242527071676598294297897471585551684260978032088278328376171173622967729173555777066877839690245076787582981944616020072926844130455073656798228520082397591275751558269130174097158686562006433449826234543222109534427395241422874875781416803396588933794323035489130846040671826722897952235629567811549666314320712169156196273014769797830328541523525577732660066725419248596054177740275859843213417729251620941378729162739746218885367412572651561868238400947573747107118832690864848585188731198932102256592160046665019596902509532531475269616018363429335503673065325188666919936554403083856963371040068018829213938977177310857537296942557907175668690698783338349456205320595715200807208389938813788266824241570754789126371008235007393079052523149949630415879277809990498125814367086483631640932829452539939759676134352346499216074593944692440459569102599889171244080679001462052894070919866290142774590765209812490088123548926620209846314531558820954546467557493783548044506918061751778958541540699328683691633978814846856171782770399120818729582676278624424744770788127272421651110630128234532046507535628352433186298289092736992714757580946851777931094806493819012443330074017452089508788708540467402916386943830680541341936097084156368544844095238559393477984955858027146239087338353895539835240668279934585461878990791900936547317937225875329312418689382798739843717534549455269389899574175282601343685275608661999655627090651800279453780100604292447711265060923175910610018286969260634952412615416673444895219066585859824358780778561706694115312375353944638000086914414650970182866903229164298555177924791179609319918956692564960807634856697016918090152694349583046615612981029458329715344190941011824626927509787267776408285512716772432619747082050819446118517246078889549205645276360712314294562831827845159638704763616290717488035586435907597704701467548148913061809645153367061109303814195381572299670761557008588081418060723118871757593657012957531623934998583024533715707491838892415753329138474282466872650112843361657144344965121121228566436008718123702446003313345605926615077646470211737693516448502105816250150500943836053869830890164932217953796474617187905295667597138211507890147943463749180588021432527664004703852677676401278943687466941008554578741118069723947708922453531961446401368213185776573535076485252852093910775908689892662930992951186447850182592362582264454167512313090626067702712954436219500335554971641541684908756268566479111883774127565487523622382509476877636961511862105418215250227109275760271340344478972140316698589129492374676775908778912783454435415804896477660639134791325037139674015576037526091541566962875249670086306884984863084634823829948515137718016194599707096211326345702688830668879128521347624767907087212661682581597561241917109189460542439417653850976864485693167702659939504361654385654777804273089580891039402198673089810075104853510166560896307440412061274112163152707947230207468164119694011155652896975483922535161283309175008929715786202919976460737865360558339033790214907324880770473494478039084376086839507744350211089456011163581041204635252108319576344816480298408241239927789008737444514584683967507061333079381631017134265634565896791824005099093852141749719631426888783647328058651329261682758262404421904193415318348002816915576221489056057511302867895060978091694085907335783752339204013121781942980803198567055774266128417385981332590648433152797316114119472537802834764858093333394773029389587500488939643440479252390239982696594285772203774603974612946125797222818643708161473883776969802899179541878469815951752214288874448581469777566283264013564179364014778765618095638429045979573384218634446794926248769292377272704111954132317404264533221835417187636610608521282416204039718932561438337381551801388276164324357367542155590972594086242299066684567464844338786324586182914320529981363952601999640942564805077039738027759243536002618588173366009146781142141410477473437113548150335893672109893982887713278461615554701960554760116019018590522178173741095438631307434988037906610317403832570395065115402917027980996624949532090661248079604115508832768432780826105447225800615198363374986038699090497410508436410929386481728463312397874074771630393309551925062872396933680727928571634336075481165305407741882590729649597903336854355568787896917895150541029838909940812662194790005317684530791876767501781890611966816310644809099040590258203302632561882303241220856680022908636679403615274253781367739818570222414227263983217634763522377641491219092745115702523341985269980039257885195032546569380578170676246948367306971142461476346696504982551846086006976532537576649899733652597517380533994397664097568623219653128581942826149444112706039028848594619728366935474067678175608535065651872750098801901552367751335483665308857489494563742978611961656858112222310288501905655419632036325031731150560582789902845590719769441312882581091819102828547280187905704636676833958055660822826247248954228548924362203466167012097246690369055112919841600993565014713586582674792695045186255748666175170490754832811848533290287818382488116230857327004380634932483225666910133213998789100101334709346170917597941123813996532336246959620099741148635489244056979167865722494981452825533419449097540361667395293759846963451172972394362148713983691471387974412320321850749555765942014608334933713299106314467617802197481978308453587582860600574377011308019420295936372080935175799213530541266191832213667633643355906357955925978417729467770262578895911394724892237351379727595060498063397856601612149149280354874596079039540143640049277055724334800239965970545900631752198663782167000016321163459787080498972367880033630480871095873281885421539316060944346049187227672140735525437543303027996542206971515302849682581017897591612757127802131185726000654646747123643372739149674705697088845346249846573737430983266185631254257409934442692566864663202344390845661387406846470430248859055937227624519419500717946028422835845725091421425690528471933726240173394096329971795242013820075472374855221907782628912446346596563803849739604678447561579127117412418783004548794927490398101812208129985550626852037741946766817934420683235910625629801671221954311197894960089373891872027879059092166683845549905120576447475661110980696564507305154288198978275681571859001883205019652293137176584988142697042659856883531034762515825249234924176664859158531605305861994913658317889762520715743380261963247473221863442127621864066837867452271600552744909985051377071527044365336183569756318111095000096328964321929499869323281291361819515903022856884480795573797086957048789799441621211126136620288728414408578870706206252485723533536349168898536761966473757535989082309508066676673557517056407547511838769500816113567496550455366848587561565192838856947845247359050987440318335046252165332324814932857804619241781342536418345496296735724525820033964299757552616970565177261751105125024970271113833316875450587951968717566848723171985974747614286325232234043541083831620764518942260354989441663665771966954341685728748240910896872999311809705227930394675565926144538293269504942419077251667668089759320774429314022045769582802724860975916126927088907247254623237316714711200669020542473359089520425566580551244986569117608777314529990004028881329308114765416121782467338982480149022387127142762628730078519852035708143928793484303923321682897274470057785387354040240163815708220480413832599937317850346359243527774035707773439916249253167069588887351963534585214157026004927858465543551049020290902833121284752525817316669959376374927987715218259037350998061546801957614047494233564768356041531165107337142605937660894449913567804612867069743320672471372620341023797311633542999905933328258708586481045853184460337249293662629891149414277674256351304722049669912216437312319771258225244906303502881568362529104443552332805790944072315445695880610297434933843317343214441259832817365099217256969770199921401902479633073466878156954704048540739486598315268459016582083868396057764957060454960683884886142602637748995859500103908289342773607720936591616022014700693258659868358510976955896173850135394649130221670947235226387166686952139443603056881013650711992895281776973661085017299106028384708568961197010740602276309269847879100332061681264664670171774294367136615455565736109164689715247394813423096113875918034789207855391468202480694676230582073647085427778745867078055819171431355748604484110313847754030211152768764274696252471289430114545144174336236005369106495325690994045453945217033034627737021996889706081763722483582200658404895320953876567225304100750390360759472085399895263044324069487566774521816756234524841940257210750289836743462158798591433078776262012805324636392053276843473932638059036020603835741644419374702104015984019066985584344924477146622164928694273271868680020955724682473232042283634327612186772861158573376664739287761716192411210716415587043666659261874348085219771265322445047182832130115557539945610065023274324415017006462364704961476223724404763341464060307534459972948311357768851867444356376516199695860167228493566510304767676470317999264215952085689041598697977140045267939275298333419459068595469055444501952890675460854237922401772469658861116026504759689067905224947612516569139751503092271948391055549591790146709416751294957411698116687270933122377406852522723300613513088122448647623065532831145726262872550147098442966467458795688537761588288839400408993742751800931152907006137024050219200567118880481131827269319326422822832379987040567145842737371976184371886410528002967128779068534815549877234910230266916530713183855330412830915549289893327799300163818457495034283365173734814242518055105879665216318403622548958270061654397875602138797533673332425388540533048120751979409964740684183907966534977329002380405465761290655482306093834326371252554913038098999344313188466289147663816151459387654093534392692020612519406319689379548732619973683225423057395418092233302022746686006582316887868980501745932329930282185335536015977228733041183903889379684403550320761942011393911274012033284851444399565328883781334303160213672996443212062394402207631892968267347527949185360156479520694376468176504751683085114078596467611714896687837420471308517984911403016906977739978238139804666480732770357267045716565655799049803135935214488472202963374105797266919968067248487035646975346976524193498421525318323607587262980969942729251204827626331220051919989487108612174804040348293586263014318102922070360383738648280726937747258807579781241883480178863242056526480592883199133002613164166386888503806952693142752027921127714711522300399820680320502245798492718298909948713568517830304535142710888990452977574624457786810085622342148919771852980055132820921388070984706892921792159091315208127781381370992764118909776223836314079131027174285616370862644564756343423739305328213365026820934325704169365371898090590574783171868373145411939818575114464563500311815097100287354756587859637496389332066849794569747623529521409773807217135132037234055484343660021772577236615572173063935958658173863109360465547011341409683528660156852652581175974684864681546137615520113414356442532283929464153693655172525430566395255159385916510620631164913204623539888631144599232208393531753211200145281910422946229455319918920901804302022608175231105886184366149837895666360529203871872506839580264335715445868928906928162225030725442921739231528092868068236160350182471030180763794189986923372052096086486701515297009771766219833272716753371817843024113689101818647196699070999444242425990866460027013378848265250080266950244332620603082519906727901403558832744219182538289617934738131380146463764873062278273069721156925290217069230861254040445486377826357424762968720679607127537431396835567717033627135407240900543456943367283135840892258152731348114262694333580413988881456766452867538590868620167164787055031282389722056769723789167074277392410477042432826787278575961578837757563935443836065693433824656227075590971674106752124770606225893945743284859889432509111269420179536364319830948491653541665509263976073292637095501617071859301580196967555261264663987579267130506488240274298525540606238173470913999013296550018517348548603063997667754670683665406246111918974327119836580074326157779752751730810497620473163867066907277200313466029708502365184890808466036307071744165639389462105960843718794146546007220529088406185339449255841549861329223172444129713012188771584748465536132947386655644516877961367591562486648626728199614758067489190339559614077237542625173981010589194277262154403291205787707219451639062200001549073525564951779191496863620781334952990559682071404988336287538212474848573438571845240284140635454084446310701623041552064587324583134599368938380893851468581117165420727574687277064201148412110473656272331595558465628707401748533597299928153461380694070217171010381869383010457295407641476423066378684209704027235051545734637932487651054294882355833978721724720529229227604359939909591628880829211015740474019799151400197000097548228007307910254764888564423162159410142742466420752441794079539059906937451718472331339344320737047037401983652115300629599610512840149315404157271583203316924236969943374589131784550007091739981954775746431305676635351832318215603082427792142446094823712065450142281431605248971173803714292551797714718966280012655792213728184772218173206871244725873435944745276226914809232531746771772310560704065268538528499240278511993961051679900988643564700913910465810471069029726692310232692058049927155019852360738306066007812373758268057966034622240422761472153400768334933005511643569293059147186642631371867790857070209480151932511400521925301011360578985730521873326134263033656234303345973540567897683939482677771315527607868489731228436359950819608225075927655953820540558646089901901377470520680661074180498705817951721882689207615142245755222996025378945251111990485613931455572105207809782910863526847917817396254878935434442439204221467235118222296285696216262226764809081564561949659493580510373874803331132426141614526587054090070253102125926307747471398563644497862944375437470237083412784010446948296748493331711982099319954647141522206818066739090250543772464368548858934200491010823907224913135956239658297322469260357607647833730140540607967659104685117295032944918102994553744328471861769408037884791397271284031349155209624014675413644862110855484223102712767501382072005759142116706308777779023106086015175520899034218625043683294793335680457855875309933427902659573610730919687126254712788952388492803663226049826235586810066053358573596748726836958692419657317850396846740706811289200671173680391371708671881938771527945249043218784413631958129996984799365455509543281182652042873855049336083209533514191986450365955811357648200868818825868784631344185380903176256280773947566333259543438427879523962385034231850976065677628331131124929934658133183920480319158866397197210728908317829307329825553980354585645789087331788864843592251757562811357965189521109637819903929914084057354498701164478869892642103798232724100749618929378999615304294296788037239017962060258904267177854290663587943531132876511580460883401637589518097976866078209375952605461838135361603453542681418361877937883434348982346092364820037034490685411435984316502883916759346273288311777904559801068427912820880865806915588420920842434807713992343971342046394082022698294762371788640205517573856963289152569577661003926822381936415840748020503539239088718584260285721004761627990387317047898726035059758302670552353068437700026534401612998176978917827814471090932757648400088335495924149188854582912278498765897023696435173500497253735347490811868415951017216429795566910154773108405183700476657768586518622332852858592409720663049472587289524930933829402440492435772955264195267950028447436817775599512136875977755187984440377858792394782172238460354166309655315025095092895345758808977096867116172490181959516563071913377857293686120122191155994077919688441799756044056630823540258055738772727809351282227367658239643339344365695004374650676356348316074652220152171085975960934725518898715477945666194899772921389817323231332644379459246974136669235469828059959032328554711690643110253820337638035874194631668101688173393771142694721341550780765345236765888687013580519062528034252633642091588190619449430973824515493343937291793599995291491992423795588103256541870283844577384302238505045695507919976147881816761883170504498855120856532349654424715464684824050795712468353587060346552154617018579669721473022939617772159451381389294084722614139370523614055154881367591563653895398536081898482697593212738565439948503009826275879399617872368436444414159168474432117205955259642130776144478324191664958231413141913656648386462710056675005514610047204515746418963871769258878229886035866039381144589230711130676335498439840003779225074224084140204746472429638896364666619059050791834987873490445721864290587420695276036467905960965720792200626806197944564123289082228886514243729347517893618553520042795853508792644344612717242972342347043455802091611488851173520911643985542690114412343009152467233917052636643076027874505950660244676093404766119997449695121217414729516415259209155638953919146407458731361697135404791692196571826912470939316036716657634961170718327995047360630787434929654327374028295034618049046191715984233431750048813436789589967508263678964154623967868362902372892161272202679367330981205884588679419296733147275846167489019860265512930719796022748693348334498537635899313937290880392421976016267060108840676740096761117666014834627978380327602678944331583133316224641107405838965926500816919527099732391258690839755697686822021603562029608913321156236573728520571463413243620340253382484054531116047532458822385495612604767224138194423556703647970772892119312179918502267983136622664328430979839800818886480978570930950320335924893164442524358151229796745782131814535989840394125893709205445633551251066532408896024851757870102759038779364361799775767868672573574071441186051361752767477084909244126662234537845626965206684144055083559401079587820960430835178400225608678157985533656135531858020685728972514420743662241314857616338395963623834162764093439335024184621643615555726311715513440915517312212389869124882989888607418462158425546421052871809727722247333005816171077101828547947984871869021767717424409953878046427004845812252504195956986899931149138443444282194646428161255484003420438663108551669074663366403194787914111085616069702061180832443744813199121906820019571528409571294085331621170058986250095551111872326045666298822743906193987604550956726391192370817412850335619642677730313405667245362768456902634034063684414566132272341781146307748482400693054409495297508517581964831974920519412503956781451997320008351310952776174945886701442518079973923308782693113505873703191100265080300781382953299375477557645278317864969168866766575183207503364764073058713224639397940472610766349024015050882776804413681742336880275152596261509827116160930602503516235975038123745043657084256616484947957664696539915494549839494559687262031601101850208961649187760115477603358768715286095289980335110003945399193888446674804977080353618077623100466394865148986183072783068372747414535720171149256775716312101649484372932861376172829003990126010497167265445131531848672506916452987499056783396253944545295062873435026929944577443858883005235417135360600932199523244809408028215073220967842495265707686049578485942394131553755718109526356526320994810672114197395577789577915614758914564733411209813259787958264660940326968222322806536359029375829593436574386117826777808379851023504485820375212615602986438914657218999747258411642475436533483804819808373608682688015024473982184669071139500738857609865014037401882055679784841283612392546615713768317735502771800032892955952536719293679627664428172198721041680148655617443567411255771313026485883549908616733399283035192531028598776119059021372274109688963993346414021111025928729805550688068952323729648869200591159083251727393301001589149726041965590994471460474292288864173772634391787109933963878411616710693538008866127361175975950768238654545754470802710557995741139519963321562233033246643732386809078011705264465720157305608434267540312782471608920685056187681582369484760450265001706564492220058030596345618045801928197218877963523970708360755370580886656666589804276621500929205433208254997698536380936962922488924572393446360671940726675251874128602448248922612728397380034640092316270102380120862221643763522080802033466290873793890848511767459395177874665698705529901675579861542033772107503423072884316882095359132939168980591089825377086488899398822161930870811866781581475722153621409107045514568563455345410432812312198248440283970973342268797159326404032071590420226641012558152155569573448313816637673315552363632184427960946017356841333790951966371196983434437256445597933218212290870577243716520224441143864066430723230911211468401985675669904287766258639764896913132589289838752533420037836455421645680508285129643204012675613469971494275652890360185966118851709507322270655307641673904585145364207864108257253522140655608339792605620922581308652652727802426651805661182741430596909576243388018735781130692688628179285781442546885723235638840043330526774998387484553144521296036736427950267255696835913134153214527720848090268729938696785335612181643882358165221569092752988256852568705863946737595408180157323959096977150184038793400139234424939829482484585128043056666463204585998273143885752648007310544636444653441178007363617458907138627890695628190080303973898119653258279030103955925481219674227438391389786012098576625986424062668362328440210354375872332892361574610225893421993724968658476599422092811155723328231014809351843053619695881907304529537738291026854610554694305254876762057326279527567658809308962123387426930186004684047414030494895035471659463697020452109998566927971625049076430325161279021289869719560468877493496046502361073297562037667635251193787725898117151076335729188070101301057786872007409200767741387933209471865788199539490639852466571896173158058565409721112041815061450938637712424836975067811396652865244272118733469962993125269984057090872315627756492792719506917044042647545757873750017388362992436964359409969309788369994859484387772098192982196196045836223279568595376031744228268333536629086822455354431044982298037916671342707481599022705166242892198806315377817141500901188343643627461446579093242213819047629333656311208300984328216969221815833616860926143567608984595804452939066114414437610282282360840479885543629217480206807758803671626650521140541376189234120706234891534529622183490715767841817125314412435146152207403796004108712162625885585501035472791785047908833398309188622589684854174029222249266346895619963125861548163753240465022053352784866080559012876863463954168145297595101966726755947956129675408403387357336554657574690130917010800367148357034127393190986019924957764352420549184679768538485152886513006083909499093725372877303154943772651556628174040283439088442026704384871124396538465530352149070535305264431910497496888057460055552559437812308518212890939453416324629809793467149273010304860849709944595882587485299198613002942437490297574273588568009621453874330203527803507568128036848004802466055830967528657698056895578617963626990038694695265633197638856874857413382659228125471100802382158366762572260058429512044340659748931396756897527570342245659561378810950623589414548471543326577010447723533649053480669182163961226051190199915132845510002398710297052942615589545411761763313247712502832368182701818074748197418620061777489318448127350509264742438293577988336621741976263118198808623374756114356649444681692752568506705197898114372379225864267154667931551784396671332664665146337211478005897567784004437147275342668257044559855810571821787086115876469521107179863766464503581132897563804368237521180114639924812783999960553270263051170351995342803001208257871420404523941019634938131148675765536194698761382981081513347696053672545459289846935243989114201295663471999494203544208070197136497695034261948604340234728140455729737669963475997139974129101255984038703469500298369608870596916639501428878365428247682254177385736921486715418577808312014924679395612332156743431404862773198512862485777382012530194398868694705740280947540967823950957972528792473479999147075686095541117786101712849293289752309031563228813347307804116296920738919963452980575667649096351682225264714821488529208710435373988150997890606289240553033127157938922115520154127133936203181962857278263814137191218583987330650149209402053295335779922091386905143869932075094475376390225979969302293067836218253619786791596944269585613035318974273623632153099224443089590284736815372895921659853327516734742820305697448210481527384129775902614409960214767226882895320281716038319875354412656481641923754160864339429037514879866701849838206115061898691951748373415380942351545146348226010187642731859943863195319203258574202675938279280328172161946909872159148587112926332933803714950423600018281907599984782088173021656537249910936554415497577797752697853735825470695972798567770597777742125722639618075482048425898848388212617408006282147101975662349787083789881543857937999619491845316960477561299773954982845843577006225515170010687216929043355566919023433697365383236011957419120807244994523235760705802726487742473212846552987677323811234795670873886352981043212599041894807857471272511573170828330002496764179549753485862940138035912884368906916371384877482822704553840148484056035931528961605694233173158254173899233279031062046698962796453664154082522384355139814753608437588002498084272436048097896087136878163024501658656897458102278779439807933605001388960284558638458498509334050001952665394439321271895022383607548546042574355617870846823499284538615353216235136518231120648665155234007240270103318829205901320856105238193941906803348831015670807940761293048019141830232552694781020044543191278608114054408216501678689330379633799836317816646153033616162602783167390766911803108998075424556323376634633001898958827804164295537755790749386541410226290142950808410523475536463838226600550723039849530210889900323674598758388136391311275775972166352998348602139337251171339866472003438889562913874513245707588365020737436021924007234812653363242177634838991518991254529939245339709547512142361773613403329423711349584639553659175038720590792942806619514352399507650258910296896544749326242093854575493703032122747766611479700878680793629812896952105187128621312561528012889969700755116203516642473462782871473641238573675000561632254972426184552754928253616385938421991803088533578264319873146645198489895309064367175021954250272337230976731563451550349046574582736862228578561605054770144756593542177503162960899094762783377481273323536507556280424776167764654031193919104680558977804507737396945661592877053313460495427218949316127186393536553018631003165007784723081020015929568166115045902008809237383271347811506410443185092529437898515058667267520962759524069886724235000917845160938819256015907483806247593770201002208737150119606810867020210760860261047296774595621892039953723327984997823616837328271660536140786646254250532758810950604592836373156617318228133873192939790355026099986457943635552696588017920968694577846009971270532772471202496626883578632962716793141027050137453316566646814538448163128907174042128162688880445347853251925133845555315902313287454530561559443817134826460734942862907378462740175879166570828465121461491434528485831905281628732148526289440741195404510430683853209046224352513019625790723350195104820322445149737623314806498534964840026672232606134443041414004495720199076103903343094880248530051361026536368299404928986821674249361742176164676058094857744220045475747278825042619690508150495795512492999501012916275806221357322895362919739358191512650180928076918592093589388597499513149875962064110622809183497199449847180598861406269343005339993810068850356815931120946854543297075272298797409851142288970190461018329069219820925392386416878909281661220319550599779983777125593276980046066308154610376139694615019291958754442687620656332427195104159929606388510555086286680973348109060543389283305188683868112927863599960913464129610869151795345824476891282678336705818036919049204450107466252041621446299143467490967025933124808363625801650758105501348586426840362477408446521392974183766723652788477952094045546426611534631052834135603619911108877828495818400369804937136775977460250149567401863425451732600842233089199610211800343865646572498592000654980427154722388943320764754993006264050709610689601831673249266948931927482767346838014668620466044904085389104117957086904827174156294937014541990289204190615848872788017030398551940148494259524543904257398269352899988345414393173935837828699536086384482141308446850485311750261006816316439608915308183285374870095933193657342159692329676999636803368461497609446838904258287822351095014987078655248199286925070119705694216436708092168920397687211784771658668412448770937444523990950295448323865277013330215180684142647413521613237465457189404097973066805908598899604204533057102867653701432229109890483124255888043566297184076730362527938282903136305650604460296452233982359871621083554076308704347044016337073377813076675423759457457022198138863647923007675564883031304448872022550157304285587532816540066322374649154435624714237011041666231138942824215500058971020661167307243284620080145968727625759035357403795049947226420380898261549242981714810863636578525930188659043265028439412596622895074999898812214944842090002463748760873822497391390944670680856846295236948748675157558233611200805761144259754036578645122920812970139354190854707523556665965327436244094510339897250263302043296418913339951595465180329093688554925488896189470931606320316818000741291825413819216250210801816293474920130020710805568807306023296153153765054281425296515306304929418728489796798927640101615626184836925809903026232284990355803039695158168535327648690649216834960289152895473992697606587467641241787582612145783315487036407628286404006497713725741959175191460253566804073720798068148395060264477473714796681495364532425549936608261779279360766158047699953332801893874765158659114228557663410230598148888417602817754427317172782789406054515102414507140986833515305074899624691019155997238646531098573194469335542263828561017851725783616725226629255552545926333064126942836968265408259261008104204528962517466732339272454532596070534148206194164527633880741767513369292917848633058138845707856426925262901039703720582312932609170387718895609820935052851283462152791414143596367165345352164298080228360810166994245657620826848874439646423964811482618606357384398070966411783425792392706681835483030411611678765413048695953437009473587249626232915725523671783529979316969165735258510610723762216368111545506266730430296599943364572730550951433588431397070125361457214242955437554386323764380076195089467945057949645143757692539992272417983835535812117267445495644971527497195353422054585495776424246345933334184498411954812046652218195372595910571399496185285423755742202157058113340765041860436593476783022120110453516558718128615805389066158088166901832752842434709278407426121571184823019797893531980245526578511689165125689728833037071168252512182676532503294725699433083911016331612329936136007274624678838701254761437856953945253249000281004332053089307259365401789583580266562920650153094928807782404443317249682893815188612298870234911269022985313162547626971440961517539599639213086837806729414544113639207019418868756190462010203074535371245911803964267678067830725752432427180195289290415988706160439962532810147478147283683261375072526449850188530471719638703459152192675126081830704759120675709237500700838093902316832002442274984053950378981566472784568266634840910465253422964125636056401102803213119133048294248481800263955223208918436579387893570977767169705020777838154124026784469279200237216462962666058155723974860540373196989302114589413082299660706545954204853678684067901735208763221777107636097425813039724135239968543049477899076874245984951394165981250964095765673396131772655811791468805921176864577421903715969054184530728449704049081325518743988400387669345498740312483059827905975862768747075730680830010712970104186195624254980407576242094771554877182660503067006555062839225505401234005178945312859124335743867384394511224307590456948772642979164381756096547144210161960544449909809802451534353350705252036720372562499066925330371070554942086452650567735454090042416594800070465060221647679257327317111610745062093819580911357805072669284710158025300678213876874993288668354942448341089563715227297807968371812375744737875511764688542915391048045344542217663735809150991921491897076086475571943083904866984903968934692360624139214924375338235302536823970197266975364679270772785561777107618165229219965377433676864002568860578385080306640273034622086077564986330375697654938242867786286427598645741413674914668326608423640999253643100624049601281689671952476200984419759922868456796702230921413288368665408483948876639695437945622600738095207049939597829579360643334853507375051445757769345502037040889490172535458702662819873442265991093295729167595542749874622224092950558438271640684841672839284947580600977735934060316125063832734062776803918869988623439331264586215154752543676900443088042909859249101157370164847903962154154734425702179830437993161311544442114284177038325142147476268911907500501494341295068203413757449765568375520197998305436456266828265960596635841593522306000096118708095846622099324431571432822661043934839710063230221804994161226564447415112428112635197205003986860010346439152133624977286492336952165544519431659201019613901617072467867024831916980216257394735909725533232664467523992389994379260683792303818754700800209819656236507655376121679763749595520105994248786484879037153480902704887734283901571489884688181105479294677696445178497837226486986172807273014488448164312613630101201860131269112041613991023369027696838601344656108664941625974581565155490502341461230113713733430067863505157983626322375251117534349090945744684295241807780607732791417088871589383368894373994858365885482437210370721361379329155886780025224773974411333390688721135523559355320780193406973571500345792657465436114312078113054542663449062917698401614363949292314954041792495730625074650390659878131781178254596248647024217544080573979195726298396941976155283153878705469817531420902723087992146669901030860664298877989975209801384127178830913055769043513895891446414508057587107471629856913312362347591289675209555964160502606924111133901293344211993566040090009764788495396256245282948479742108638430321764651448512375083344530963265964975856948274532583051984907929513987352897129653145444959430743379528454555964086896371104237769832073388051335053658622376122650073364460205445971459895110004974026713111216053491789049754545658681262254012551650844883557335495363174998269621892740145782522713640636105394396425655588758147853648743048655260081476164703169315410851453574262985986883099544621147758471486193923782153503447113253941182613391923669162507444505039321386950001819205157607662894065754703465239523093284304660903086000434955086334672684977342213598176385487318995687360919368980771808396322875611430424434048890244751849391355463362753784018230550118930403506542535604381941860101877757237100835275330247170898629194651202613341673426029750647440210534006288067744323469650062897294521100161075839569543281812908237228203600532225340780946521746331542181630647877649808448667080440749500650665541170043950225397285736532521336384689057906853351167500984297773440871401247450634253776716113814574615414167195382910516560516716106092228326453162339164014737363832037425490696484150014208594687801649301188331922593247899081630892612385492889159299893571144653787034100687561874353169174082749660836739668088032838427182627113788955815337120266380249482041012605330248495011966552158360504720663193298719215309086353180333164374347767106558759437224808366387064777969942241274153653410375385791597335763854636270935502040179990105582500131552635316700673574742536887767456282134422696525655362639937713297603208924632249432511215732106119115931342555461416175805276003081325136208628106351076623226335622789273157914056206590313587829558904303530695882740092581684867264133771159655646977392353397819848642403144484608321004123270660044796017485427160162479889094252371414875386178930618195242897795078482016852912411626584607357118261706379752803864854668757314567315642699357256060534048624658635053402301063911718263612914011766698676868816213088085257836113264522941183961799211350322824228590890782434735675006845527896382483108399349105094208168998452333255008088435321245826582883478574571701104078103214677666903880247190746956151787685339998663313959824958160367319773419136909071814841197079066641535395785298085576408285344918738218811680597361652205385015854764770322420130815840565966079043454500744387076150638250103679126698249760214760493501055602985505782496739862776935806060321475078804012152868041265468103930594039438930359879656212254609262830817640530309138012936067388411163658981826941255611315602406361656125326532077242244035178669482745612547660092409151818244303680661637046017647310235615288679867009491703991879323508301015062792172502746180856925069172443532717078850609174521521628437167869995030319912613158814051537063200787480470318963959310797929704883443647372287002437305358869331077691668011189378813956316470093114054948055878319914611571571006991076574961418077435207405256014949523964687461142070817920771003889900347662693964622018307266974685657873872933665380473954276047363541060811174245358816317794235220190770171096829236122683966843353244756168218744008825814413468507489823913666256095695798527655376111217223081205641680718152430522319228426646869190692359304800765387844439511037861931226828131839261801126138526841012578704803046134141917182634668953563875157704429818301554267924588560855595618993242638854521424465204497866618051706985584599564721180280989559315087368226217128797547917985502356396673175008580889247633418786211068691313139255355524980686032140223700143404151403383383636706541381441471184160079536274985816779421615204407088835111264637625988565173254792333442444901125094056246970872195198239973929839360748727298320944180649553340248717551177514778505752941214821034822913528557323507377364037725526892396670493066778975633872822031608602864822331746087688464410449765366273158155884186826234921282854758318257781148911480681394123845702394654693976443099649591080182788977172540133813981745069073804926721006917049089399552589870542795758121030207571814827422556646254709010353293944606426684605761233496017589114729199584486147134217520603932381880381603315631636336525434010432176409461665160473234527763457745952234019026644399882943613696575278716804435394123738581384566386441545522182477659462179671958370651780347736570247514412731928681720060705767343629151572894868854196742220172860793230283620673562708454009117762963192919771562544168290725310849805135807257246843795880805564662093831645930062364269953856545892188576337138359167813229881794747565509008614943180227484511874565929765898596478640127280800167079385429893906461842269018950430301197048212879344251978414855414904709996974821535223604051947071264446216984704458774578901661708329257629491857120293600838693805751618831439362482655511500946180000875345443852926277683111231681088869774650851771335535191695052616691403938460286154116959527325753462600420585073561497453219464390099025806084713453508963997652371159947847193446034020368436016721005291216993141788639755260216929912764459140935204809701220482443889351838877497433614144210872447535302080809524324423522230433333991495588990255891369491421516638332020511356582459526369165148966673031248155863958490230513956380688065517462992292071238985930493244226543232625065617905552549751949931219632286726897144625880758305577747904157754857624306051732442180816387117881300529021925767250276392527100926474145109847510949158221707743563682763394241022376177374986091443229570288080835272614078654416542482520392337196868331103745799032982055055501435554552984270639880912985221515615749527698290232067802741014525129680633648372141530766982386344914096922742980030167873210779915394719661736945741765021717414344561910204579401443818520710736463763038603580555292658426184847215562526551873473666217232559114760219175016716747911599083468294627022993294242144882333887776218368300486450270024981554890171500784147487319850926963797580046749134365916217121607460797604745767551965785475635178846523989110718221548705772336706565450322456014988519032877422776936684802160552660124327316443627549303828225265072152570130331954983186228876100060567396781702364889214456800882287366752157636054765436481986815748740519540622002744473081417181204063424904440283295177719495868825374356175903017505476300380585362787958752930619678211377953820076268935420424077860302745478331595184989976103273649513852873140327987214313804169105730887843430986877587304970317200749215823287734863236567925707447572725105380780235911968389033894869176757300187884813218789392823640010359238559232183801320317620208611858159435558668760684046389379347343948585826515140107831468927415794813340889537956473335924748004680722948353900101514342400323809794707385858080263080604102745330724432947621546882089376405113794959193409833190273434136314722492775998160690912233922162093239790623048839626649696092844660849814055483378353684081597986974313617224894328698939066022895640162367036275603340885179062179744975739005346902333107235893940924773405816755735468437371489023689935293236271015251213400166340239969198425875602133530080873367339131530834506825291002646071864245362732230779512750327967669675645084391807644565624517624314816156936375689647791797698845385480610652583036755457268460296029928714601830874470294261426339420497738622761849803397670080972720705581500411951155446832963811695856888516362286200862344511712463844537451104951994992635705021928215434953945424650752977844911399507197713503610187613314545739626676495876744575073624100107227440682506393155118542308797774655555501925906506073731403036685600462421082699951459596144267095638544385722235877722929770003365389924447811606085355805797802824576243569090412737578832905875986329743346193827663046336942168668161535879032250631151400965950659883669960559265158827474566869848019742181291787291599993548357070223195800574975971497736911597857369311690160179628502099000866342447298387630482914401099083903354290441291358430759663233378844159353671932595353256849431176305086677318739119442156198405702170265211340811634027168121582398753785345672619712844806246197479576043331690908189009965040918826395905303518230844136865389762146968445585017982839950337930522470595022535031946788457360802381833531824393169986665108234055036741727991415905052376323133979083187312116964392745484482182228486464897975868549712010594585881346962142636247154197380220256738214544070105261580973874225927185401769607690489023048922146496666237534768599125747304687171759990590194308479013728595090509886702543553323771702360516977719805978544579353414959659743190990393948605448008997841985413669463235807263098523584184895584744597666492069097978451791032341342178697375001949301461868662331769623413767274528982619175976156722064496500521529241761513704899524888330689978685882501282247294017174098077167905313550721598883911888661435088058955438748772912474556863124483142376254613741930143468576895606565610786284824146169509093010071652572324780949238132781160114454574250392412159052894750612258384402729707159749079893571990591640981491558022737629734100277974815344529339152224472933936534690654452435136941109233697561376930748211086013274794949381067190862123490641523091875745310063161781010551015876612211686325892949566421210690672254057170734365223804229543847182355280680580691367473733613472299415744907394067131654261358319385360868052325127475085481960591700213718746544764486803631450870290299896870834615660647376258739928629742301782498514453523968910497991870195230446866198198702029307611502823592308927300895525672251525074967550483307476730412966341893296404101363358219234667208790223250512516374023782626727134591668786803164122266434794730142320535295344653328069937905305499604180027744820546733133601954747684552822242922318642912374574883462009801203151650607667512798204053329876028960225413795374201714249729829853896184274453109683256803155967812566982235669849141422627065631197761990656134901470841987099997645904218681416450290370115932674821425953663819495066592972763137607947928958029845903904542984684397656278488233314477210604692306289665739823648540647978127225408431730168666444656343017204608355132374395031098823360218489602663877628143127049372764638074064757139629410292719528908499430107635104427291408653871922305910225610941470008092891182320756205444642577801496058375768139226887392941611144365115045542916087907066357865635565760932317042984167802675794369827940094497092446934706561153668156438950573211765362299242472893088428942369755695916971928496095097473080208736783499122422552301907501123692104925043109617824395239137003769759860045394697192270177550306639254506089381296574115456538092370214152675947761948437953155037497331068287335999207108408996319817629548417052684225792508684051077355030118516795408727300848179663085147435104780514467441793665255059753471046893651289702796835359642430093028774982399212847860776236148616060325732728460785996770839543306464260282108923595093119418123865285855313212172553659470263970958239598989032761221957585088639807797951708871900779767180296065450474255661363815153859942571400204737506525224816826317499988249806381146594429201204647557675920060846080160906758431856983458229425274864147497180250718527089637292321401389214058831195209531229221410089480965728773090382969740907366357768170532024511373950002121171788679733194801962985984470548962863617499489331450529515551241435189747028619442569154988021593591309065598748864572047914709683581348240956199879171204607598071249283383768752332672215223773447483503994764103875896518800937984364183851559529754481335995659789317673286565178821394357960215025711723387189293428906221549824615027629628433320495079396071919141953403803357655506670160820840225982220200200395644896862733470926158127158851738767209805832315138158541012355892625230164719307979797073217762039243540067112926243503891610636774416714560470906626047484376368176618407557495097255293307928102996931284292563345309559454088690625572597709465342851333541998109537537745437056573880858468930974927749791296333106009799720578026406309247262635662791041198916614028469450088953149038338062796377831568340436830089664317989354846569850967735563805080617865409107897822119521801259789121786159974985292428082769846236226442886310975008665127992077109474441589939209597973098281883333602606470379062137408157317850554333929231684960281174863466533305916910818553002725422295184733121136411384590646038055139925904812326019170253920502051685510279062808112654120390779184067856916890646037685269017621716772348804793970120628754652201696583511882937346217851868048436441251251698596903532316602878407450162470370419437665972368503903817397713219520951840475006554534430722005492992198427371764704761713922545556837387383475621602487168721742598131398901350939395330268256465122414782365303905061114891587214014942569399922275645294274287563310899284165152948552107802419628784019937718816304986203508857112658350785422714893165375025037773181262232627564420741782862490294574632536965617780220991573338930699547524498827157502754208590303366728741528167300928392146279814683711341759080600997202868110334229589973433675006222439269940916334139938049453068434336833033106560569013151303623693088645173904394492606290575767465951215302472655687983478409499391118891207016166227414207827855781709870455956019528286490395864425799711008299902412792930851482629047172939352216398175374574956120908085298471773305935927534671411136271787749120214486489213101270770468037005902860010409940357032684768513592970020849764697683731334549966702924927536891440574814375178683917380244565132800758072428216768717472065912918724585171876640823412937899704294873050731539926761769532419554174689992902799568006353558018259815979020488247308547303962930618384559901910870482689023433999928782545705866033710639361838379735694814660865314007557086547729777919795678973781305440382266968334301564378126185658467593967394302766132809336409289964727267045003002410595330106766380227097715476649751819354431056030800824405636513004849958562185018596079272513469879538574171785858582789084048175492074716184275351312534896220282497207555576393622965571597372149840431009035476416250145316458507724074862688102778049104106251670450929128982477142224068298184371051208745181533688375205584191001619275940774396981425711971678499686329304548253621168058208877825217742395682087122299099639378897335576074910702062258533111415004628716816349365003924467831774683885894199634985381149022441878707193938886094988207831844128157341836510475128715094982913512177197591525977412079456406933024583165697770082796699410196912560691929232905592430380763235804670459381553791533455308790067351510602631537491078363935176850672342028476724468424528658359389427199170951729803472060545088095178680187413375958385310803636436786642908611605709605524059471434255797830681953839929483024171374021633637675689730151070932644261829422999473734092527303684070582607462949322187348196236573032219299909223875933031810524865919543325539135875480737532470658333037714194735145657007391431168459626590319460175025726166559831791393903293784119383637428484295927745586764763354910087948642352586363474309861961184165928491022375478819162975093688927983302671896369978956876965964815663298834647789595356422546895411568886669190166446966023386199316329241703460602193072350546261576679071845281379506073929640917301386838063140441888367807928306822072390519248652574894339491164609240343093413139676218195992687534817429933558241073082484737873561507578997207242667307612301458854503904460328796867804550978166960415997786381599808432533711029391011549116373491593542283377233493726510021118402856530652709612526891560740785165750382898175423389723588008355971813985408057934084642735906170592990217206029471679710461252841066056155586295600683827768960065069041570791224835682736571731636642375662797802515438094590879104724849802641371828924900169984256365320373607535814230435282049835735329448208654349001695629546764632562160766753943803574425192931068411152525607161432767268594995755256915020074586039779183428284086456158693481523449890840607220437916145486580467985830163864786628099842203106368427241574925611395397651227082685038502221034940460030395434766535232253717273087646964184369501835119979645510069288204066710383782040377656346548046689703239412610374579900836715430384794925274877464431981479128069653250895314168630605452215092336158489327337496115371643668668711668397848565808267455751196215721686856452034363870248582729352928090871771866005343475955774557211020611966103420812119614197183151687755574985572412867670135888236147891978209329616313638898798945285458808740192370473218784354431730520667884868683955562584055559573102840166637474707329486202608852317093725971566369731553800622002368194712607892911443611732520150448756259992892587202978478950384087514747948130794548589431688201363327920118056327254638086492787534959281129143881631915842077133078045527235415761209016674110442209443028211498177607329271083657651314600573753053664941076888082311362221954002244867632353761904558417246100716997250788542494812274179288434066352683816122274961424724201281722804405478041806919823674800716802052761245991296979642565231804399721413293009150428422612459284888330805101585855451591580434411213713258315091155691608772047264287514510378753067845491174907425029908578478479410116689404669748674213967331305659547763853319826281024370418007132147592813723675497816710656764986666119104460422707696472613440787391412824376026267713005905975335198877735687114189055482512106283608772020553463053173703853325435734788270310732515693547100105380106074088370098933979150842375970723002597867860482135053628282232937300700920331376485862760696236998654105776922359904880721556024524302355960033562676964670463018967226384728640514159004107712700765635871959522600364733507535004518373420372756711506301837648410750436528278500247387714092389508690961771473451426945146182145441108784206616638283537004118725794129564081143394236494641043471879681190073419132500531237490158046940342996570753505685913308575852043195056493568722162409962601356327331718678767313032787432655977239199932299937733351811890304719331980837281266327036207414196419756548063578783274498426684958682899574275937116420814245426294101695336500911739811093440837428546434916005532359661175612687344840895203268270020740226664405612473730028202082083192732297407722792019965737943893451170839285080371881446793069459049856749773263552229147353942790950781528619820458085999097326166268172239433022174370233173999671768277963669434112941577016075152139270585706681547950103378641535019944348993439997558378968848704171413124218549897549854656955336624395377635999259626996160769511306907755617315607514441362875427496182913083458423207313837062919646360470581635167632619228231986032087990577850614163118458429773124354457243036218901550487654659698491363796557503617028990632623057382794794676888627637132096498714685531718607382784293865163654100422912386561856578276025383931550222287771476487607064935215736922689559006179651839022600643082252432480670225309254017266564476741811855053722913323553785164851044675408352570101979807945292562762542301809875975079963574358062213128723908014696977047336394535131613837826790350392065090653259886866019615357757980832538863404002045748912400051955635128130858945446853117643051438810266279309357015391966100745729102047602204409807929686506477217081002485228044898470251244988087685911519728715527149826099747750514412521478789089913476809159415859942433117185807160302758925239420584113383425945335599822719359205321543878582598590684098782548804816800900823193620538922814174943339415128467861006848977779347177815232089461792656124265375283344532472810336365868260368729965302347377996820233227946670583852940284999621334493648730229406344738505225303195195188023140229814931974730953312346146219537024602755159000375512914440342350662330661173912156612585045040051389741749655934895648680025479323774288727250240448047936931116812126365740141235616606277284897731921305459691890008242697894576731221350562536970226779191260929920568678891606951838870868340868393745883936542190932621073025719767906491169193644664893755021784220071501900960518629559089270492018425571012582561749360778083019086927284502288707012985007684361812738600781677279912119675976924489784014876829290145604604923321812170707051022270769824520852040675908540914252002427843741067391472576819092329215094835251411770831779301510466255881724033751356493546439999169609837895813337330386227165610656490755999288598287370892580231597230408364620058453218997781598081235033846252467363470974615447928840942473785103859544662744330960786450711268288793181884313148243918183871033886119058721664449915531146050753439063201942066117983993966573596969137631188531419671416353744301068940373995253771334436256788846231774512308842568047731240877510871701575717766719833086022920102161055572247507715643545028496331190628135755542186547974514578549400688955401159158223072593567944737157817182529738066915069208911534306360540872093418645394073188052394227574998091501586302503453666129592762378593361958810232569485692752584317201046071100265290250709935995798832584661902672707980293679104392366988768193812468162287428066861760137947846428359039009045133029883846304165981484325867205741455267794504978799205538746034085939074729249205570750994377142768564833520615461481616923232850260188455401361508589213321149529434238944819186817188098764764571486841457317085211107609148271295990179860434271866198368769112392723348493871988885741148138149934919203474835639704306084961999927739631899158590944270890228321096522166795178030634383096222691862761123054831790590678917568083665429194280494183799366807155359803597920381614265424167012291965019652804033785618471105332293431179405261398593354615499554418714570363979916591643146462085575802016677248723111729275732181892737783989964595525376333731963958118514790525178383028741968697454966156515095301651316351125736235815862756608900488791616987396865612223587922874978656788662936677432451240579939553703081315755282730497197282261058239064836796576743317216769588312621941449739119168806109545206670850236544188287453271488715996303157798136348073959789132013189121505111920693460683942105037823015298033843026596841627310391322300971842828158250736478759287238882077134447269675631279231055378381459031838562512314172586913427991007877347484747961611929920949510110942668325758768785755740858098224088946980424125005926180737683973037732220665500859643560859231402557184636206418791694011740246974453978019551689330010910663560577827352518768132156416718750692076506280785592699398917820880304583340441232016620265927807574907397632575245055314669645898389588455831925437600966904272731634502981608128581254453574748916920088561384680849216673047528260241549448266921491737817232823617845524883810667251556074422085128435651707069923037648328463945326125673474220217048157753612032283091630162877868016666513047351928175133265357343943598019632893181561091050002479814654459800583181803097663870815819380657128035821677817623464264786069855397774672720464470902060839397475458974849378572443874564062189338275782951325733574028274980288026884072854440011521661120014649115296619390498855919552520320527454815441971718118502302182592388015662903565415215855685289870509750700577540142863550922681486550688563601069209260898059379970006540285131714395282169048036926928186883657309640131051977384130197013878908279458749695904110510710708951966548853773889010439452348700530456918084286510246662144528658216751520682635230478340653009602306954065673748031159697661721445452842949410347174706081599244502056410126898003744787103252271338876756969352053452396339227524136788666607255136856312465365071303957292562645236503551715952004400832139827817411696951332220552715326833028365479462844995671250191641569737154447142041352388963422046676955676379917679012778331918613393495652530815565846780301971064991147279706158930191482678072898781003786525111592603375186657295378325434141184022628137863206249283605528586609948515312914423387753941267826551319598202346869412649493877223400626970852693464258711044020927089826417838988395159248546499211788865971721615319796747774878963678235898359300066710141234368115706338374291558344154518898786444137989224020359872542007636382283735423337931776541039928613894569853456599280664512285458369129622658392024282375774896509495956677793289248342409922962922962038809946656698076330167342957940873932874028841921179121036693094319341627224344585220806652019710382616780085038220858120157765447493929638945873042649032276748021270419925510864441870291931728591118166789975058349330253827194139719403883197628886924530863098785871945374228874213736076879879244479089939555311789164675856533826856716312762729836197059859632064068739653036271872358449853770644455451367231822865280579955212447116737569678381228119144526391258774218087571051778505589189339524682802756787300291980902431053947086903347079990063219805239163421268367255081087105324499569738123681418178865806743450589056476527606759347270101729252054831314499498581720326433197763679307976085772718842630649766174175532705958580942738876788821507127273076266539907153083357481848908595594767215821978465459781731595551431266024924634871482602449582347764065610302250587662992553792530321977903993921285509947000157753801273254232171229634692852895142068299563364218805759523740518836539945136413986911381596247849620047851154246663597854559081851896000638121820317321700886214745030715005032308213674072330176704115760643522729161967801238728284360946921829829281702115209816656820668356221564925186939534406260203958773203853963342898797962175320838680062662676964140428735857938158333013769719740087468751536347874684517019119172811922380896927353936076057757337910327262856539958121296097628798803681135074172215689407592037787088787598382635242822940987586303968899538513424171998625762150860734981483180309637707670774536724032783121844643009514660603490031292363238247564683680522317468878402682351384023767102360917975720753392793304167119959015594748523225389782991622525453884463950490329267926119096142033832059084380601956694007085712153225212138509776089505441780419619160725042666135591005325080698254842207790138437154217725598353606128756162364288744509310997997626713343204069846785695263822701668603141909558260201816281654967560741558193355866691721564346448156932397141789320153287300800004057764624395235947464516856200059357065263492188877083170875748492681572672964797209269775506003709892187900967349415764093450106423663259778216928825649187459458726146503679201698004508053251616233608171481312894162834326810656089983964134787020443565750766891578485290947864899098099996637830155423576801020679570711767702720198079145432005242530773662032555572771981593676713118593128022129606002310288709877733936009230796756579268017455429953677918261036884914635169296202116393811794254027992928075465589409259291334688050285641654751374231675519453873900998853794559297433197757780863395001699286263429944368432150314494700723678812103238591607715090537377087765603034421568733578914256902227127027273620260808669969453620496891793795761167869700593835841368761542616077197141407334234649069107708950463487538280251981461728469353047209563327255793824865921289371021569679817552519816232201393857133198532381600652863960450523985291791479407846830560372242467097770836881610219264354122968483222482389778551040605590692287667789053152760531232494570138918947036262812937615102253606385933273347705809390180469782812872727360033180802165059357034290149203344166544992627781490759514867543135025057248198895463486085896468885119396282674044920613010067948978623974861468937542184735918557109246872607277289847683399670447879632502375018983638771379693168156220032485062974253922815565052975071942173930326400923551738194097638993284947023467203886247303314461223478141609972411751321082529762004961059108269797870860119346224469398869117628390984098659119353146452708598410500150479379527871838347726950284936198448767489813506591300848404054654136586758390702527187953676500379754078545927329429010412330249655118253877475888611647202003641004874572718751843411664912895881400772279901344530879159965468203653540369286854485644377575412808513525077557252546008982976029802806997876972907274020726719207087718695403834030923446133957348884195756834530795066522588162506356219281017782538062829626900191198190829495561713779287321143514371922063046481108479277917421491373936430344106896495839225084181705756872985044722563890821557022963928017664897158632189554836285709121072405337523546454555042966160025141440919676059931146856257646141589390248955537856347295105705507850049835206582116293747880936685521951825774179380318089616995524640721691752876272101606021254531596072701007071500516238146447677227458614283993966905239272418635800987353151387513119847532408500711566839881130860514898075723665687205227912836658473144131237894912900835750353478618485974309671850367273704565985124891603222487521667952097805968327356019999981348970532198814167864629854899706486626796371687197593706351667493431154866966358076073036809446453159624005610384512374565760857915164397735550198224033991157258592906223927057293621153056199631739894609108480365109492815573219264413036330948773961789600491645976226778255413713747458755974037136500465753429234472521415296304241513344600579292534492009723151818943560809518106289481446136052341705131494998902729086235066800315290518306282421510405296009639351394526482080287716108068018342765499812306338740092491916955902557009809868369763933443367763562214981258703017962265429067604565398069526545161898665664140578813424047844893142051568998342951709701814560014188642064763796456249466729951958568085658104039518775812659612888219539715167771601320267322552126147964923545678134242891351306243718157342184581746115831496761182594482778485463243098171556260115503133969725622937662786513802311349170841273208994480185925825668669645272609993566650744690299300935985487597973829257038738087157983165566912588036590872361175163035915293553693411831634271297977428968096083429320995475021447282917373891676153050753112471704210806335646407579785741539318250749787002554853551381195069771471481860031181609167318768270378711489069759698418802971635013458571526886062685324316969921010432682571422932356762110666401817798949511396960355275777673537389358877860985963891299780602369079948459678053674751399347871971072711941767721649002792810036605926744463809049951956900924529106436225602943218563737531585245174120630183867400829891307839842294456197451425697770424798146892850243996465655786807526260767835259853226249315359462897559291831558205649512649752336810740028035399990497808260584971942931580166987593257682263100761746682022212561019687328042073443319346115694015464018865534070196203780888093918414890026900911576601850476313941203344885392986266161273060069489516687269826785712006060104184964857686637606512968115220740235150921182171650731052020077992240065630368100607280540364575811320585820165805480371827078294374866581290272938539208027446053053140549210194867979742545033934828742558172525547824509686487301040525222740807002920938995000242082537364503685107519282749836495936293695120984350869003242639861076433277989621643460529346585420803429162100917606300841732800675407480556924753634316151102628236988255615133727971688961190833580806811498388843623273301372487282817672208990831205523994310156805072780728232638847277345929394355616759232652509853942920555952898988015661679009361808099632955653066915417016756363016630091078541287222357018502103333461892475949603067658094912808381916443494220787682431041105544573164872795098229742222413072618482372017480681396672186165066752102999864979435492084745736790825892546016423295700403264445396737726076938127796204025463061009475345024821300506030782580250439162207510654184218138051238765874996706248541598419466706615876786802855120995811949300735067690922170542159954792643519312732886959570802667037512944103696089288234986032946227445983992319592777999461953728524876952935025756125128971730620338387783062987523188920115159556479315298734448983772511194336185396130644687737458589292102917757004138161809992944274298352706486180764010106566688807125460654036157682449953747149195736643844774069794075348360433605121068212109163893125051511927121341538068237346728932767492609382983926826131339089038336173754407109962799204686673221733168974725621289766571729453980871889792030770651845675494504462856852756074173659645403840434257907476951050673855585754600056169494342594268435568914604282586052429852104655244430192436106909533511555954345578222526815322745817766757170583367889648940470983796446193499889977592440971844155269423328571953195891682721852556843045964995207548891514983638114065405545658137442954317000249825235559547825322919450301313333208264767802394542206010124800461245078231381942199711932310815236191555980763542855643327538912902632134581850028389662364365856349300432865662171909944106460279742988189648936525638812048143986454794708867825425786606138474246550668272821683577112317851359230581716471343661540316941939891506822285369978034360632182413199071503400963524056035216927322676513096824708928150451327572653093016518778489115957038691000699256212360201210228304425602742946745351342140232428581540863428603396056205847792766824968518739954769150490531973654540507208136970950915728273443207407788345527055506909658241515457683687427269525493081963615608937286341113901426268520793120284332798336307417760873119846540760252447350264921388802469554441426317918346861248972481822240394993140091758021395339921249660116031806883725248672978289293120158279112056175545515174371132953246685294701930071095913544106356194430607170149214655235354712194921469163387890413608808072941065721456308758870262099808058122419162474905836794414314889333998126804701510214626694804299933040102013814870403406233166986958298518506329737000712977075407573011804425270930447920247540751431762025314368483057401536391624095785866245949514804780180694490521819472110312070367416197200613241993685177694026400051781492915165141915478985993393909714097035488077167577549708435532921749582396058464162271879383200617129657734783853496028197967834494916059643986306333907685276395555090144771277457736670259478710504358617963027813750544537527870848802266089210910641983129731612155718507011648762772360184159920382741605378334566602926470005308273321107036077431232629048056438774621025543329667339594897925688353032154428635318837965662899095072112003484292211128086708970898977570670325334977709094224657663701103452520525226305453854150919287663850763343266574293688838139790045053957389802639035912198448366208691040738124871502212041553753398373094751129638186299632476249496601481895961082118628060403600277263840952494475575210111883137091852043789400691039935989824799602168343901127974338309250522351855627910811128731322143941215585421678635717398474332638062846463577750090181899721674407211592011739619793746303223528027668768716074849096956635241472514747883695922827564835024844905446792079830536400662806828706773933432837307933015293295927323324678880891720481790073143613548161357655209685168186986683053336262236135557849118951880826070342793014391727172682776649415538237010933017700749255768828021378675506429320549466967426291263381332967835221485160979422150951216166552405850256988753756763395774451086205984151216320156649228846582574208490940298956851514199460014083473621498627260258327732899224736595493215294175871120866924282968905969336183400335193357056260741912684434906579895717760173145688642277612562590333475561095905529349024081047112498127298145334075741015530921922010158701570233909262219545595737050522790367338755206832704755368818488979060559048905534553892248932362636862079469962995686687256002713260165528636830085773526601276936891123041567669466394618469833907279904886364043011520214053179535111078096438368166883445817134532915337263079673676166338196386659936707199498869400888500090400531063674775619301183335086586302756161066772066482370257112408077907463637056403497786524509185376990431426734160154169689103600249694338977910113977017952210268400071419756591295342256531953672327833010458929038587787303835774883665796096681062141050671785009837422414212202430776984893931746947306697160486807008795790471717383880914233372728060748223518070076398039040606823642617737611988195925501009201627643204428310155778504586233882197254904883951810106644052109414729467531216997703842416655110249577665990962439485243932128479296401875573695816407497179306862726547620661122297775028845583580597619670940114084744282159980569446853168177776263181146333826739962142498660118207505852539343214136249318324553722306100582593113342133163199395811879527649543309215003046467975360223030085470414356551060769673957932492591182983326428752253096139481692743557039178492737376155138502286853115927878017792593005371586199969789237805033232056184983598127300486042022697936821925896534894953791545349024671666422107619903497934849605470848246294706319054527597881166066946341004103919974753276259172484689746027730511819177502686337609096680572898589265415341778094357793089644359965987621174730603221602672429306168330884380037987025482082167419029644812021567614328904822390564726145082677973596616327023746226773625899970175687538208717620734743077186715716094181561018535554226637180351162640630292267838170540470761739621861470359307997230057843844540729664288133973304642915666159024616300921111697412532021583640675310834703175357193471505560648388895981270577874522022870885390026219333049002773955148829187071517119742637446422044640862866738470483606649411055467279933122423452656791234432402557419762052021403977192452296995013090900802369323601324508222533100842362577520843851553270796375803245981873840998933035813060136435103121178020296693998088799623089367056160419511982785054134199182487134051814509880739616577508990536623494248075924640153140387119992856746871183568569272152378192352268065595359577954994193653768970318918920698666007005351381892932250747845197352953526502615503283076614264159500072027974904998932228681348656980649969217023151089976492447418820218215738046724347839204809836652754718128809250714016511588019342099746608012435362154714134792546094084714676000557086100579538135969132477491672909148303050295566538862849667371724167337416668737811095761610885033634385512675232963043032583876727837796710929087981466630969448478000593993149023978435734964098138639813779685219452600277325222036423930749899662072029739237103742549757191630573651429720023098304799711872396894708459160808356808781515005051192816959204727038500360189949552797730888782520555174828376069296925212244769182285926657794492220367255395663296743762664352561727730628385730414085066851851951167710711802861419224868878921476098221648726802278943966478264221226608063451356406957864986009516633033853864362255906351480411614671033602767754963782835648253280707209498388039433701801414986205936769237864928813261968805264912190997396077005962164362067451861704307444203631317883945200533199753298353081945051208491509005235340557551142619613209699428957085616623306034136390641599332379141822528126645857657153803835463372374576207567743932527542423720820596572059406498969723390280566761928230908367727970577541509910212653176773444127024441040197475605211349266798249392895490700732478041844287480805360909338956699197710883093944622964165403548886618664621629791334467662117887827409217295875559933079341287427846367695286793812849049222150959558082544637905541324678774260152187947371839321351296108094986838169249201004494071549696720800196676981771020232925398988541915727903760823139543029708866580576150700037485028599402634489204458953568372496211623076325453348648538122328695592637760422550252178589029699007452962316419009809223464480988025488699673442187753381099595746893655874277322558871933801140627826024566524799470545405335536889602941569830597794225592610027451574936245020786840360297167743689459289790336369431136448172098418327401613344190002239512878815639304202742365778350494839329244086376060483772467226630368692958757217710611273199324462062765272535684375139953049179192051712671236717220973180252705324098092960912899639742959507018639508074091165153312681009227465101252245096144801863267959850411384157468627113327171602091562708303346716875803208240311721231988819290378252873299905997334910875133627612369365440526710129587271792198807732596525870658220299667458124494293274629865273073416625281228847921644608458013568805930182406900821824178482322393692896591572125727642867341342933172869643869285167524538052047489149737806907350838241968619350843767513863091392989157912575009943431330222178444668078038801941126543448954065619129448309761193735960358761039515286377517976569066360393684142925099779260814944100696822022142621182430130225575535249269858808810174659585051698299939929473348466580367801179872510095799346910392462126920836068668848296460867530619031544395419353523461566543204682439399669651218805343543638119635171813285284628137032764936744279071664959300923428191622998936336227309704960363840068681750381514157289576912755030597131935703577614427237937545472953714248375943578165282043344521283858932259925334415760750479706027679526534688377784854348489088112752859603624629261248520367872251239016376967544831798381792525297372381005049369575103213461151617314977527178795463959888338547504592039303961541838510011917732520038590008907394697259379923773508812669537222587382629555831934321317670631161963235700411010699101417315060014112213112964184994068451974272095112248906812348998300322324668817920534056279810209716956778267778889104485585536722527444317009619740884599013707181263660556358794104174756400476683214415649586486512437008547248750646781660385558679579866058818635403022248133107681592284413251069716363850216415219907984332269898799562432586871609793094106049313864728929321334211863452993565516724226523186510800716271378679054623892708118557484989778844904365097477720299148334068198491142649470711961562662611592675898411069711220907171599088809132027884280326869132407421204532776755553275774763212880312064174207301397285925344334862150905031620006958030123740896809358979724139416340347513757619235650849451995170675680060490068799785014589159139984516337028177558379975639110507902876967624495550854598886238814508373358862978086573294710176639809698393440357418771618854558463178277347742694158247593252156203858171164664617617615665257949084104154123322481517608384534456990525517584563282001087092726976071340097911696039087735983959339542893107623573746810144100529271147675203239264254786381193644680461737157122276062853415438332992438976634003004921462317854172333525196452010085367123441044779826400857722461201324365722473726057773361614899781334901168222154694534857465412704601824258325519139487260420107848185063702354701760412980776894890412375353846071171747759264665408513805189281872024151533569701120775214091374295861309545715352755019401858800375800868844743903221048725995703867451835459208068088485429510585597445482808763821199546073057735013998415790948462161152438685643845414739752383748171402620488563781146992473286853253111647850232593642005368453560285877620621799305136588467486143615483040725094998871593896284245679684556958439281160760901708208316262413914697436685590909658633451975938037813446463499126894134154117530826891438937264499042483025040346413896741276968611194877193786011001693608036503317954492779395647167255589653160242236309091106237707785373641862422009684138933433435988886112506238952436536836422983993063313561746632199989111082836806874546167467980871867189077104960017744257042220071363049686104704089906882198743291735548810059476004807164602488798123338276504451295676402193983798769961941676045231964932199407079528671731322672199878704680402318458677325137533781789039874915552370689520452710831130534723759146879090839100871343880657489458212022218890237354164656865220204584317916504658683328506241084804107124458846260327066469089533093757343687554013939620362585059069090373417524997405491126175809771124362096068406692824542846876922255251536331783402252345604082699406688224894488932762424205049142588151254014500396943107242483375166014438770990227668750327470854402453796914699423156863434627756901635352294796512663608618128037635219559220167307794309119609671801144735124971476423884359912674445866643181975398005071985848423840693395556102426101868145706274532391801839574131687558737115246733505413579809925250019828597924971375391436888850647661247485158012176062488922187303610122419607257425253120579957837822915392001604438582012392154713223498369848685446717749212641890574758227350363348125643364739491124723689223594850893531291637215484351916182726813443404850993454312341867177524319442262211228160066449592471210025857956816384908860655766797610422987386235895609487279005590281923014848152845880738059227539904331655689057140939466957613933971767974426982306652832177707565204184407727134429234282233821724263248297899354387920607883969846979060615391355379481678264197904958790118942470499278112469191092213398754036852142229767974332617429778871112834712981416171428057684805997731018311075823652048519494624999667007590418223814662232589879305751708885813880544928613609393228056384021302942963373929649404211693781439123997969404820069602850966856999696431320199593510516540536760762876361349068091195907095446523010128781884998174496261051793109978727725741158833947488402779948966905607851404682376200859982929658774477655278722486404678840962367172042234482856423964445434809688562415826977113229343237977437211010586106878977674660367562380569767699645119823730819710258540855438602698795150068835657929185716501414454774943949496930762578827380170307501822954328371441144184073026956171942167836027863987822377356343005743353649882386015563348618165516217058080918037790322782391233550783005112261545794087812666824398856431920490090902475448657888377996230035040548221826660811328335241141377506658198581152008855500651798744542680515186777737914784864190745920809001106234729294042283461497923719057757937733159966669448597456547596315845640288191831746956155597864682148389386641500449313674000934263353039475399027014508528102733433696412791474716828473767134367714591269532484765140262428685320624150250603364302184359500444353351809190723318508309295402654891546808126173434378882487132312141257093866552177523876489724779898055039449738928426077149405553487376475018414663101222288276783427341186223766604874441594341671059448302056815913494304137571131985598736262691770559972085610485785503478392207119793009466909256244316817242016331473116021192427175002015838815449327890092734022232663313888798592223626304297957260802632223183753253376121610269844299427243777502988538009557805368001846079460400086970171853799417939270471381208487445308887094581498858184483342344418466329279021018135176922069006460780916683544942500833385111471644078011068685567024981683256197588049884723019037362285919353205310066191579012192016217977084414433234910732916604674572528341596564429802276405041138248930661112676669551570353102270335656134929455494043113629925679167571309421855638061973503801955570301562077382612931870710543233513990313471202721491700382379694000964792036665427939644979247839629512438571803257047224552689474858312576924452225242482596381669708923299982607723730851105823468816414407251283428556642920212780039801042816532205414631000517789817585357126447018205142776415026084035368577882876928661067944276262899563264789720175110996026813428003499184866732332023580252944618311609362636688143979387042371135205506286876157202242560455052210360800047073896071930914792662734425824376206713628650132084618496032910836188678203832716160241877035227066174928852682141935969017395690353093838485988309297874674694370988621331536181154271029859228149429903208346546190603994434525542746537419235436296640951252358305655992870611766526717212876549697902071655603679996077612563168347450457549824274432839088456572700349437539724782831013961694018087374933537532693895005313452556394378452301455926982269250744966842624506006343365830224499616551073450161151205393142238481948581428626822488104385954188290531829164773258072398216326410543387247370964652773030290754312648848827957479014687997242765793672975590640148456362921169379369032652836170343190280288830623907717005327694505004966990808420487467453885597369965947452605391445259879897931301186859772014995658738633647964991595782268230573578064318106261656196053717079900284111534991622908552244232196510701309890677890839746304199098990870985420236836492277831074023054872388317766169688656637151805941242008371189230457996183032428324171653298771007299024562047085926387712933267932666922647494206025657772761820244176288519046333603885567666996670904955900470715943560838248227878380277919165517609925757491973197762245574118981020137372367877442203781643018577724316597739004739223705290845791036890175406051169355172293870625261691901123394607519684430949875078534039529838334305350947045067658127770692996184043379492840337475740579930589123231917500907376055576277430436497964512737477564798608221552850560460113764690070930429320526659979167940973666752812747076366175793410924576661768433864052978634165557768601053393633082366747115064182599962741431217496388041388270247220528120672742273258142915276492087143714981078079548674673813365266642131432324108878887378451399425042549570302680446316388068120992652951714844506627531679997290951805078622993497240002964191822653612555655658185032974721875107811558007490845325057847781717924487057149912119485044465831832464723129861727082833862089569120465680037109823046259065539543093819045906716132322060637922053630545479613489148718897693600956285535278100643148778605184352995260733556318876343301444229745246519998569732898390812986674393549734432122200977923951487657889855190840424146089029761245219671862698399898933663492654839936608658432213780549721599577265935270318119615863611993246199661233256839374107179013741449833002492424616515297113076634582594223225994272486747568541672647223151235140596596143808593431573662036311256358223004150523364486997818594132905729972605139485660155996069236413676362048530570307386987400580284020050458686056417778401150620870611630027661718048175394219959547548004982440881398333778770844533139924314555328735062224555499327050809347645094237430128875681062480160178246155584227552424171064698043612403250626129440863600818919438765507221337850791548072183381335044951318111471733083887626795812348745333834792298174342434363973580377337475883400812307209696285055741419190308747162542687529106092952246291558734354343520189541595963660695427930307004060547394722095957159598241920166967157561382097439104238017784104934236646139015120559256798291539817844844415247262785215695423928655615660801498113252076073623358576074395465198847735729947353454419488055639631616095831549731860351367181195829206479094691056860635351755930307965350951595128982963923748921688497138003165643668196349588829541442509172526121317859054745189918281431995091948668762429005606929048093448533732773333749122617727738624273719318395706035838627356080258092289455314616546516642707555111212616288009688408107621509964750203884512710355487809052110152377379749727916419839659426269022731451873112999650705073353707432418249573144150018147066136042417514991887179315978372473154782871127658249721299167528841958414213924888829749405249686907220347893358036608345388713714706473612822705630060676359786150837806432366515337478794960650088210769609032872187139163860870084533540922727666133095511958611797823743628725437392385331051970471124016474702209091640386136846354068390637378994481016361546838990027387600146148152475562841719320651021767986729976444297963451665060086971772542173996330456533462202553603566821837631315802007781522429381771963214144093664292338138205139869189510317179347887074322616475083779853620191810164182740215769819868329505964908201845621853819348351378716728120028581638116305467807132414869032232274993602342038419619836570929059770840557127473378460753706801519999868012723162319825161302325860581277865249135625057392765696523750961970703732284575241210612730105082410106144883255543671733686686070910024203670589850976133348177277486468705374406493793087748086114094852834064967510127505044253845726636716614000718623814519334262564448803755582819054543039568370811775902550451580477382984387197899985374978771426833015499948492222262551158056393020002395978226916031577559104333308421131183068216460059908863629146482883182708020429056090572506537862773717807145312662912674178941144175833617316978789422349287982664239109701882787301023741303159489228189446545044553313691172604286960348737464344655865988307361987445620436809670766857856177831106886951943861780168762715630120196075259976666370776853563556105348063808434694821086006957762744188855010858679887491153387764502672605581311918990922689231461697543668369996435691899898162949253800382849273985682211757922714589044458147865964164880183974368761860223365853925376987741233918735832902610940456264442885574659394157450356363931627412457758427156486661216300026472626942098577535644174320486436366704933101329791924674765489733228950501702644434807633800380932627704482476784238256374133518908882109830640200673555258783350546779177673273323857915044333113741311321735360532287158030939557042525173623215806921908927088388620098553400446264266391471459824092146382083974296139580601369541986809946153851082843988924561604563034787701155632835359857122333701030767741405421927045201383411791767093753971435550580171551566721919594323918908133644972981528702200773626037957946074820323115369083425947222252455385903127558832959145839889146907891798887633000871491375169022453391733610750016351253910762325639710251199479154243911132702299717412355879233476470382381642456939445317630796976042951608278344743213473858495382295299182938564241828850416726498815380990091260469540794110134744584196946678080558779218720375479250311321516948891048125462211821719764853828964044765659292689906090550906234875555502288420173630745237831864541865828392814079586890042189940400911484395427877162975441131122826177413040672874017220231115111715207081881384697450849040713947501094442849058209607093684911136196152884093406230159640956273629242923817769445207013935751007008538091613868890139926859997569541321564361806805518698018542731830562213833027171888155705109950434396277695134145431384718889758906761300392404719668917980040350139503934824038212750029497333444864507891910844767181169000314206007713918555883547145356861876526530282043889324460736255207914577702424191467704333495347053902617467609262924363707079140497330563687169413799816850702090353722093885485019532209756032192372184590784570330361799321836336030236657224579108039117970527528314911886070446891594639722720043457334713433571947745106264152845436613077075347054262239903986635053624211398131561361729940250087239791288868089357401008115266798868563675517456891571516020582520650281624987059210516459912326755362255146192501197257179356178889605953562742308003380504442305844589076429763861211467276917109695655708207286599490972069116304951163696854411876904460271708293947046515274581380829899750413197905453948673926924262538414059214842606772180252108584470872057593536575929249689058215597170766080418555672133955294182748010791375540416400481769227588900537339824754526183277102083126197750627288817400863243200010394505752729575098527918687293218044530085879247232975422013833468508600028219865721702347319968138696709840641408002233750007745279520621242628157637196405810596975858520225793730337276449541714842749797648850617936685164118788454943952631700688910631350143348863446043019040828909020757268092774530541102578559755624805961866139424035306154255659479274022946015699688539195761819825449168628176315149598549515982279728375356990588519688255742234301254593389989442839117821423685196805879326105226361950258016083026340638828560084993331937341839930486717090444908826794699856528781883740381625650025200169431058085997037087403371262402843066465900642674863773394658792225789335271324951214277317470331076752673315814497452259027686872522947805847789654605785249895336118477575655748450727450867442973686433276041448374744759075279737384157636663141332481702306478212241932825157719509881408860689102634250363558452204395807193436020905527354932765430945064370010408296153760554637284307497573565807166957016491763635186170160995668692307939176086743426159699543616603305571028864858556059020614486343213384140846668120653805959643516104301183254072668053769652081692369164979343582939490624294605299806274209325157575481702085915434107441461040100749895537181759850394280620914009862153306727561528479989967439372786996931684053395213024962268002821278310665320719911362980010389464185543545731728369602610559920819522586204155599606494144451800785538098794982335993492706377566841766274777193976920800541169874595781050858898265006480921701445636709942159938736242015746479655797089447793410834040683780942928191055576253853182030705967839829790227789719570123859726428394997320111531823205128053144148247385459485272740298002649809467628776603607483137594194285563322614053877056255718812139651184329053459553079214846841410595589906974657419654418762712360388530481379109671798238172218748288064627601636944774727096476420449391651260046947271552219319926481793137754246656644594399205728739428577511640122088980620409157055844026883591471133045133114268692039952775216135144250883789762457260763409578902040460024895576874389085750951890360304371695384136875798328399805547344575912925474240836055649437248185444623440980682352758278786724503444853549021656286062187501272210934380376899435577196805119220319682301384921032972741437083619428489217522853734696709254242764583030238955982429753225822060698798671875989859574798848018885558190436685486485150045299190722693824781502549232454395008151480396923216341443716941731680125460907744870061306874657498737766446253931640772812330636068956415963743269642581365589357363658706213900577444040963299592095398342335799872530973413091371419569304463363341408064105695184615146861457543382330626445852033436292483777651548291542985959488485502568128795257908711585460772515827446342726565623304115414713279205240481330446362832259203906655284451113332549159903257402997439168630996389588572070878844152350794384476510779809096889855416861562037437539620625934072513191427888306023599248811355690602343581263295926836324790976643330162645514415164359621444178643475243369758084953611298981525407905459807047336890329360738478698734153935750798337765702380866085052849696951332168597626193508691524778571893579130806163443802874012242062188929063558744322792603638715787267587239939063506473728870809803773328469621112615155175877564748756703352335032929428432625478486670884423099851172124998555867152058697734071184393547543175842553466368314906868819916691259396420352644595439044885464387209669934544840888225425810228648370774009036496364992954613895751358570133005088806569313294029614518691097030060143414148172009576599054841671316487893413689035406746802367440219780936660486876709381033130403925409760707155856309537654297281503724419962279946883911904247881108959659009894542259037107877080955594699863511294026795165431160665372061839001476256008733290986627284716297170208979623825263733442399059255459536315774247627651214271705632568004271456744823861160217136835468485674029341219352693917851901221572138777586449631783567232222607998046828726385904558022795392414146684385183475539627903966286000563170614176679423733713470152123390052756393188664716677463085685300173216946540124201488623844887107361632171049769087473406452328616750255244588108381236506989682588729790103246973776369301922798659077175570718164070842459758896416783503660436022071394239576659109579932327616058552278115854950628897256456849185388539362297715358922420605398566210394367754674510377893392770073663510869831901748579379552145342773252852720300640563138574415691746937006618298726430187020550308734208653655244033553361707834049704144232154989224805110479846905556412287444080065406175789833582666728405959844407316358137402769366009491432090525473495795847218661419271553980637827143204159239577030034339774180036881087816968921754074090704061639524431623622747892317177693512017727985114709306905461696907010676303926976089933188748286312833318376178716415919140375084362127486523797036744347067900113737974205023034038379693580013008709408074819483394069123451717555283370102118972803528548096846111648282128847387860159599448180471698006531987889506523104860946413030734339276690872686756277584053124771552724777877337124249125030009036932272481566827437489967207289999281735069650829120748423157212432940794265003592778718913956502158741890993768189738899777876622093911112257420177959802960921004688801369670519761975309822673174176701300270372082594594880276113520033180180159513066427711997092604675307101252005046428306041453316380038147413229052551436608858524135203194093571049548143389647014988909218498327367069584629817347438192268616153371743752296960337545148201597936731169558577579720668538851814952821334278681021517855166294113595532381301634036967265269444231405488884221464306680414406301714746098599204991436713637010492966624890878662805010254156796445641028657193326442704166288178840209377783101283787879850278629566954452512445678175968761906186008407507417526595251435972992536023723235388681811364748888124054774301029780519173507377218774762877795697705611116847811373366300961508144074210851128802146981672388826362292026218473720656926326115957650308240029484314703294847117679960227557196255879516598924461796975184019244490139685876070355276530253695295798990796826228081519899358342247490617663413664674431267559038994575120682471900132155536051529378887191349047936815771390786553442713227434035903613261152985941256634917418807922431603930861734437452650966257928393697073444849883719780602031066022650435503827938028857380049123927659414938412164167052262331874016783709160697645191190510475328820458023625900315429419284817379600572729923913880817570461035539433830306925363018558498211770928407675262007102274182506348296630173125734535363281062246664791325130808782752145642224205103505691019380551145359546775508715523994873148654759919446414117558403150626231838062517510888716655634667167865016329776214056424391135937699081489896638366537303596650719367050063649415626269866709761707479220487193373922417713329230907837227343883185219953424436970377444649536804032563032815953982807172191252921900702272687368863558671969558146501581869102322719616538824875329347798199449482210141238619307425200192908555897227680931740218086853079826432994436394904763183469286308170308740410463466500413407494700007942159730586711203731213160680861160967486190506090558394621960669865464448462479306673741887223340157211548789255592133747322430302268690462726342076591479922840896745592837120995097402343590906427579124950055571033205007948551036180850873524355577330332211454671933316678575143005411536653091994710995815305936196304811866313121782353145647418605110383001736982589832418279077691053539364849214068837267580329453313678806430008059132602594494135311670060162307137215588616148919866107192827350693620039656764634730102800981822428496417038972504436083817834726335046410101226285685030251318041159721935223782762590548990688423847030094364276423984545599549276091161802597998183885965057945525321191175557699492317234511024689501955491487108245572115130387943779098356645842089614738761969092183723814564050800875623057057879729860990276697564337452787572849485736113943091608326436776498662132026699859115469625840738891515422059316475328212135428002403291131519158687012139266748730300440656383362270896476630017586946307510186359268717684704204035302518129591478380145878213153528790352608855928845175676437510805331268134357082981310163095423627159850213571939554516586145379666951245132707325092553742384890972730692136564710087966117345774565391427227959651242484331479434973250875716219881041722372730919468822777245167875824107698516845801428578111937997359990971300315075103163452563058058193967946815708184165173632738217985563106040523091145633738090602904379075228272930426269947303120119190567807751073852377447157705053334180856567098684530770923803672953869382927655206841337194561567252063246828796242836748676467077397018538888611634076746156375075509006319967654332284846983312474565987270530647085805663289625587517444356059139707008513565899461031658945677162325232349725840729390399025769510656343357192297557727005344311603565781356491297069357036553299977843368717111297164527715747643819571764045233598163409146053771253789404577458187470929774159068727741144342536575811880805867070085204847959311399897513295783753458312855045390865619583562443625893552008305807666767209306183696498033346748730924458904959358847942877634139390397993711565440499339662717335897687071027817367228659200358000290402332283261985789013164302471755802581122829208689138589279497491199842118385097785042126583668028220578147276479385248195637565147868220520220332670190061300923876244467789888663150625723006099210478110711387195936943135571394433198309632473229310036437963512939322698311788054719848267202226189049593112051203617451438628824120557172332405939016359144865362565047128376863662980078861390829722162982434782748498671552587585167861161510247983315730380183139123196559959398848266697782598543239737115230615845834141760896232601115210575486020996913390835005065504470196492287591480499294794322977186880014777840198708466746347504713358957756990002496393823769198642678533520712698885545187141372689110336598038678866387822959756452592356906237552524386810097621078666087746879035373550141556894117899397295326735285169048990501318918680730687579574211447071450868490265487047491464003902536291913382582092252660160367585195235102218071640402992396575570141863708635763364201851665245451302400074687683695328237114478882921584498629315210355966105305269626629818599541290285946210885288103037470405068005370378748003031322769137106795281608059977305337805755921386553109648834328830075159354423889645211659749090702661918613017189992084851676403230027050671673110732335356566389772776423797704946326640965568619410290547289060349582867314272653285321097807120000854172229164427353531088098692177067366040140571862614964822067353354142389329235636772250300394376909359485203602388696734329447201635254350372225629448884224670208632957966048199084691058598668289933113696024862464837877589647553790911009146578033652693140732442597510982577450300162300842280454275573250620077504774132510477768584883379504510645569879092622532309474145116618514864612936502564839676972285631921336259534024087411590833467491119207809621366927237707830245419179766617205123203387763624405152688529753244795771669198075869095192129893095830345722735289815193407685199127944872422488623786783644044976927654885858264467185146469232438418866374967535144607590294115660368907745221648965247497216220607764383633504682568417948088581824112360571899435438100491216369050529458350111112876706139394996681259370903792485917230343283281357044483524245766637821657746624867281327267116970750600730786128438500723058551677328996083049861520383566240989770606528635987220934256724790089271647691271973578159596437001240349724808733371152602325084504982671002329294882999338067988665441983306921896236393318814266605700657191877716621132320479700643663369586944908597914592785388115341575175205859888718869820576140133492948323080122284098701364195664047848653996831830214689793625882369473906574168013492639463692012483832391206671222709971972259796076175179681564645245161562243336281307260386216409095280473253200477995604420797856629791134304643725439984035082345433790302926769348988724891580399115295233757326550280890636688257463840234877795358256743175258220309559906988025596838025074120916160999060735955605956474520686506370227283913030086761719557660454136784886572117481698195743907134499596571444888506931036396542433380986482910191110106168303921016128225845106237051948348803406798851163527734505834705837488272722318400297666031943254652712079705593102155160598204619582202682046563207795231827389820803466842192144596214775083605135496952033676882437670159085398341683665957904497629528862982055127399561171003415707781790561386431520344713696057097224808288768049933104506463082427635607243178261764322099585544089117272808355132614862097023244580994563580003383806166038687822020784093689419277734914027118430454410238226555207676551837827112722008337970351267797333096047858528972643740361846074131247748639438783258604537499500631086503849464539012520239578990999688488866375558521081294660213684012391407528188736895722182027568239106008782453328309791650308063030177400840282344970192447706786876192049137510133391734181388815553127731743245875121603750789678171150321886926828822912210873263240173143908026173806465942605306876466625370399750288920300346946511073009318775750270907912715652926354851882382280107776437209409607862554580602448720643304890784410995435497785243696056265465322775850586061753180871532397210407833301447879683324260574897913169617878922834206915736142941201485636065653543179281487525776401296940355614719017898456198736627676103720024060317267535388945511484130055290789439833856862053009322549359148656013825000608136898890733462280522734756203380586046025143552130694937116674283711504809352982080751401181167053698279066253086406419150306259498221544912190983674131321177684789262857179166265417668350332170841652967628445245036365734259817862154554084767514837979296484298491971252675859197802163329700084569704364219232346146042062528926153742002755424052331153793427710083578045975111027980803276591406876814277771884540588529679204461644472169879321570763247758106595449307586222052600978673345011923817808210109249847325997599698006515477709081937175452311817246255958982607466688646023067224733770404807512537917422609125502118510231721963739070243878076804280263869938922703273112383220687338050034768369459013287011691037913651060888892705757877039701125781443051913644253319302053951202154099782114107380021740861032764765814693948668267417740643489395718322868654970369067830431849474535104163509107149307702898101743284431970500895465295088187533290890303610770027250344805249268322359475966321770126049858955260129629287254095299707634268404359273672376918070361021245915093462071223420182046049381236225140979083730957927762654531668251833763105594336085198195153462078782910674739062300158834691805262600270539348579313968320478893056703637793723487136067185749938127432198765637049161498953091978711232650784039945841473356052534392447212634671631715507831395832215949042477504153884531668244960097392415833998149007910315912585315081921966055938548364005674173641831072263307228099564649720483593228660441536835493392970488089266386161901246834960301285728003303567282141434522764207432901003025955430320720184866663719655157134615956330277817548224952472659347503628965657314450443516465619643089028513141057423782596122003012458401641217943656209069750684356695589351760324655448056723528110419618915284812779762465729376398030327345830795196740103780677608533304536670862017332327345808823051017197278431040711175448669622096508991763807029490956988554409732517655592653241239668939327253517151336500116952365909925426160904955438044393071888679385861959588866239224604470802252046290686202415279352134935453007883132232768507291493246170339012837472619501893774588168001971272555818879809254256861790389112949285753380837955492314422594205177834250178529967170464305640634136103287421556311970257153772195190936368907458353790798624158940047261335652509249936947421371641146729942900310967820977370628158643646161109506264895082866230296797014337849978636220628916727060483910549038729696717468996360955773112866650213326145482321715974896220299340532814460691086838382255905482135785289357812031342108682558542944423528300166763493233651530078752540517265715675884494442535209971328976817395609643522341742208047613389685275179384115946970393755368122964408705892602668258510031113868271731540332616714986280191043493372455878279529459728967284698687493323894966860628439127728073103692927284483332750621986757375363849624710549021921015305736670812375609606076803607644259380969033406826089535542577096201697895997388800261358822503830723011604691851298969854891821234599834628864436675426663134501210053349572684102918929459684345480954709080437469004442706626373278313380947607265862820244832550150574950587564254214411873690857483561105860926316196101866287529382785409684427787180950903672417481419325646698194278034292964130151814412986965992142092652229297131204345824231874633693440155925584737828092734201422698611880053383995926059453923022702886394862051292370709383164672978115045719775403011815043454788864695093583428938646442039987187512327170087625751009757916562732825014543645462837264259067933134424492266156632554831724156920925959575213972977972656224430426380130968679796052301828631250994451716272574633253647703641279938263417976449358292095219001531623758912333698370261715807730607409311049317257549916116921675759007470799439668978457717050888640471086596829518526062278448286157720657727731487223478184479947208653363803082170284003453024353627308045264855726070660362831509902800463650031052986887983926777170232771064332791257312163183511565880299075829896325278086791789007937740396650140904202532962463898976316235234317678515043516835427296034955203533797416362341218521443458391410940564529498048995383978411890120543325193157391216237251316116592368659651829164396419172528544206103721012496538455803846875284463861905762454623955551116613972469435317451513159634792230149519232116550848477360447912720016125082296933610713699855847179533484597942298470347943570143925349771034906867341347011685544359721441494780296236776951080614459887413145598859239920050544202406790697799844524187378169302877471701024943344933486514658698900953691869350711229453850900156134444801144225799041220558109996305545974008278957912455230363074351418156229390802689127148210362493130919840456181526206115836909766790720974679561338790008486294245867530839007017568897809146181949899705280277266700248017804842258554254709571256183314504921358254945989391096365577476825369171756766413988296452799959332715352328822028979466246464391918098652844352861617483235514162059827578715157409505869048848381118778674873548069713984999210461438030102589761432641199254487058330972442727342359032637267985321289527216682980161849827839697064430017315555113079207773217154637052165638782197945185366634030461736553924579969024480351601308194764719116863328128085248294465708834173535394699132411506550148541656006015645152894710638350605708287897249976525734296929559769137685957022679091190452991181514452433648877523678784190215682924852348782237946042531136180982156246453119853144682227050356153069351230241901195575326945628196135302306519319251686692689138735486009111023209975431115366764938337541557225019657172815236663942756372231237166707023628145174837506477822039789362741167879087991152445193065510623354691365569039790918625935853601627002158987954030524173624627712742460256111638146695835393130453507816502543305764963653698394053849089190311959036493685074798776010345920946781468664107434313248350695532546095622999265316201919841511985662027521870117038489783749763820207959479546696919010884065074274846822168162348086005527436874565225990741077793652577095144664336133220868400480841865717025206350660703699957761336378759289169711432337366087442856171039815903000473465324766366545260742005881815364578619784594853838582897861829609582006588659796737339111554214923883737601674280718834750356440807102237672368343101708019976239950804196490989607487828571211897653574244693815874852508831543769667964013688513667445797909136855738733263948717138475147904339337497368013156567696182002998316837922773937660857781009642600345691050709453508896648333658131192040561064751626072929205663480363924694937196193324078453863648842816251866530932406065626673247192527842312678617914919647468938469747017992963988251989491181232628609515781845038775562663904569194443815066068953426934485677810667407725177317583853740280514238464140151665409472010738208008940200916491432843581092186175814592431652164651985998534999104463489881641981794430349982339106148677545409124500552378109287699563272613927223648914373072735634269842288724618355440951055187914164130372295778192861743308178630796004684420009779705403420764440332257138603169001739456062765675802824077728114923358782075447018805795873366202873005223706024010807092808805176674990972562343572865004715485037604323111663225532078681287708464071387666190423316111535708740406497359866711649134812337576707378076673852260026539408644571980050984930661230822430028363384224809925637371493897805019114274830445103709423710060112508541634013737691656268012031423359709577584989919772743949215294996825768130267577409809176136975826900869421040824637371639238556405893722287305640878299991307842863902892627109225874848059051302405933156973729517612955822141824121406419039878298537128940592693079333974117276890122505827506759065252277540299547287043748729989510471144514959806281051782630755291979099022511935102733668762524507425868809643063498501289451013395365380930089545384014625752922102087883315594307053065402961269167859439663188945402655283575120197259240708403017520502356593680855044548162260338563776055537842938037929660388397728211191201220125397789174611269679336963341742228636348865569039300472779162510260946118334699546669084320345912441035012895027737977089973783219953623672205475408980953055969411146886293631648200924997948004684387591287103703533354825555959906870390020769146442296066642885846449371631324939985389928847648040588805344414673630241494170899160077735520100698659086168959609322375569312553535082700194095139266861789233170438266011632523173758362907913964913436793008550984216947858175952833979663295678654238304572573703957224980226147437633709691606118000135566074050283944209713246694695954926403666757627346186292174198984150981646683861605318362367558977914894703091215893215088971160528228036700469018412444860926235346374717119695723850743160924611731864248050804510113133220195142204028321446099283951568554663070329965149283557412486603968515460299351457248630378756577447154673090895304392559102992487037577785448556225095333512744854028783404725712311436635215450740736281845421547064697706887196569036225920352462977037412800977142275610612287825183398161891674360086917805953919158328137828085053021132023479939415162015915660206062795437686489718575275951540800193239744704267222587308836234429012876176210911017044423441672945349831256756608994377534599441314525095872246961906271988616675547768244821835994674505012641072393856554488970894925010727754792818746744160663720587845823360374744477870210454246304841139786336659823559765640652791157068008505596216757014739261963162788174460262319293685067689343183422148321299952557922097529682751705474929737266436862871229511900155019806580798617333965758441466284862281800213739459808247151524204876500596847044982351812607124984632910870824325829483088094697641013169660643249571672505893318171212795826601817548717873702309569124885019633798356018135590204217718946857534573559048109369225442301180536251689163577652295965667190504483764071727850601131651259349062617817146321191323627244381821657335930075066039824269082110669595735364768701761904313163151615273029786492537502293998043146538853503631498747632066715743272470036144843089973742805014158252324421109493131755642822106212264742748850920519398267808944641434110381781654074972930001209122546393120771885510357663150015800934707989817606361389399788154856561153706424360476412483351013795742965355730422672961450225865937522926756002733698251838660026616562355843541336231855209858508925881781453987254802665583905054952369789492866434135086427396735718330030410620151814636869592856338599583488407218823786312587984027160462374855728511500578088357552885578837703966156495568340700172214759136002630032497568731993125825087028468778605447849077066580213012001912544860562109195725649803177534758739276001117914936434426632285192916451206164104715529989561455413018973770016446945218725394127542558773413434620851746670162656658967013800606542111950412897049313573530752861388266547492728674423145102479747308754211151812181205010193208954691828635706762530230365630681772086649075178366068275704060582423067041269697367846799670913053160677950397217597546074812756580340525643644444605942497175894793265969392741274801704838401857235728013041304491843527752381350177623503348494984071060678792233733797983977387454106566177051932268306063189436226381313960247162440083812214348845890685481120608712460259191977112450877364614193736470737844098605136817831380992319766124148131320544064957243027839270313633088586790191611074350724619780358303592582738527087024699486981401280981110797014779330931666957577284463997425084039644896096335715646814754250016232604399938467384010329941444713226132869530434868934971127125884414134535195779779828304000776574953996717357864832572669880792831450214343737789782149723835205228535592806772073662893641150649950581183017533233542701538623291385711537298045330278061465735098183446722748836871502258960660725121477857200535773997507290678623664474314544714708022593550262937088204499573633744110002087622616405879217012409030403784717619185478840025040591551404442356300887489162206097388523912486297094567521203382236588606095083263359041895646777173959797932461691508661388989261635268501924782818027976150954427375660393313094956735074716755412355370210468393039063894098403771836368009147446573715532293349770175433121326000274912197648647847510354549304233725442199018892159848258393120490526570895755450778571691583172501817345282140362342515266844650331411924876562263174003656360141669407751617820191824921621293496987496700211537914034846625566622501589539152436446369278740115844252729234584344402001619518965453502962110958867924628324092498231753550784581796253100628256832741649561441929537808263839581103185401790205140102500611803354966128480872416346647168293721956083682135093003457916483290372351297331565036535751348816331943433762712633777647668327818798397151399863804638307453781996242480078304526457144534734505382744876962165804424513497231607944163455978865928355199458855925849803318167387810039289326370266711910889178898519011349617790258878364085318284297027082369733692167228037210387988687475308885601541318011719309944005765706018368960325686442397650203121897968012565181037578091391984440651037892954930100984411781359828875367010699961394314951769529049370623536826657090354896679837299317227991654146953086819418403382340030341352126880129732508439346212134107928965411212532677417697355323804934514607323241588071597943692341090816028644123137540181690820543831670284486356963434682094138360338536731596386185900761270295500970214421241437421314840436181599662890247689379375062998787655741539661805669472884814849225006542219071273709119890481814185129665691004344372923897941804804502173698361517654597892859737614201831016699428601038200387640223096479576028453347860654151511313490524256316546805502746723114313753045732583787285173489729054024845496895933710484431287788443754422379576891522237327569919911072427044351558208003949142938124334389257965756153128446012244293757958969224789979213428976115768353717104656323042045131331092094170837141787527335735844437169796380064807745676263042128936536042512747892967291401227244211105262968766380823178993880280782003039306528017927045168237582026062688112340779577477813223994566019527369246452173986763135097736970490591436721358623693814640688471468257281861659766782940128567991731388248265304978856603359085603059110457808553057914741428990892069514289639085188961069604770108103895180595919301826933600954311682084369253754487873173641848962377687758223014743633555403965599502125359819907036079688784227889566254332311164770171685047556975729894520515656284179171950964546101523714677264063509163199680025316918225547835122738671622710765687538943932964562893569227389543579343392178588182694857406394419844334962945362922676838377308538611968374508563471086683570557088918332012416989475165250868012352489713596948142562672588202970463322143019035338603203166694708166934374067741804080755704058701724985787664166552731424632135327175957597980653970170991011157378724032329380452306441995901749257695024423010827693278161898358396566535901703189490433158743528296374891876039155779515584855838023202884977560441624167623931560632864368950212354206668074192479525073569367983762797641964200820306532366680107963526852466291364796014502638347503551772998326434055773460068793836308050929691256415092377336780273434724234715953746190210167211509078700555942152019662041399709543108224390978374247751350524321415483315040094987440192700729435371946843320644046239530923421480198084792204302900919772286922868342210428244959005352467916636772547847639043587495950671240324057893293950238333921835985242581866213583133788804318706588180373656594677455662443702949396355840432120629584025437188839291001143618925231134941107623777388334353598634425589929612403391479872892325326320967004248648460090732791095589848154045597416767492995115366613940544689187025659072683450116359382573434079131883319071211662947289422175473089374332495318528896265446571577896716443676743435849727761646486261839872912282821061900029072693312225074388974340740080749121325376140279924168515328040060640756737547637330204341778328798699398223881547373224357083529558649478161224158752326140308392775817355580515796348751282139332037967903096837420974206401621828932558355628812515020605869955302592277158707460200966476615163496220986512431671538415892552829009115972171857750721236352750413976955522709663054328273270815874078544850843478368182508266721496934321026625259490633403498608194855083220374325975868654175587626866434022861394976380970688558344813865881631005673111827071027655439898813598964628646967090845706602264392472430087296484879880501262109136179103459193873756032485986673421092212423962110466589502154827395302269585300881105806433121158141361738306730083095198115143087989697857597908025940655114731423509918473365370019273772901104042769058473878908233589001632120920286700103157945780498629137493839706226824426833878190645261909758773598696927081830288320648668505289230664676573931654754898538536792689350075381563698087593009101512948560064828324649207254305214676268868469703986606938776401027167006286415045389102186220134698125922764779918986683390959857917350315682160441619609445138623653046970656808646855420739730459846403715589989698512418016863800545018610628821070786356636052046919520035482970687650320688173918424847630057852128330127413963265533575463170187569109112526296346596492230281619912022399900095627647168181589840390380697891736561878626245925840453588106311894471228586947338795644979557215949184341995912978352601066415500782282836279536259501240867884262773484405386996432941862078110349686345292777434771092616257344947413988952217605298773699500489604272534251015979435127896907430842424996516753027514891055809184425382781855545158012157376635182952841876724253707693099649438412296724273966215523522878004826138832728722437239914647214760599717525433648822012369368847281194406924059201278187022678980552344588869980540918438627374541654041192641610744922156814322163530748408633382571668655796320243113636461494562183387346368519144076680111590708856527421902798912476303884033708049730287249611902461415673420079627698425465118530298072098717025886383349930539242524335416863396564470268071741659780849241108478344902184095183329408279593192287683987840767512578307874717227299999256573639830697488959105115381753868479336865235860508481022426673729566435269357629757045993349024000946701280903445687053820748476511487235530090949005609221848473576347365801930226510443066879899172627837804163302646992413986516999181210136712565055350065217560376269756627418687592892471887652917112110262708359978461997430417978986328352010269910644978753916511741100138954822308800609092488176627924028867308913547973409886389808407909965718519430824164346052279279353253191623614522401256580051845433684071160168713662138753331265207942187205267256952800847987774187616741948435583603240152452060221915895012418045178154238298645330813437527708817854720955945503744110573332670289944646021262899921892003815302423865660033796066936585369146755544609399505873337223260684815185806099744747306522777869117897571995450301103906214708114298872781514847490877824336868008961474092185221548816018651988922364155653404403575101144073973445059358032056321987163713241468116759252985060207429850247304987882688231187884965589403218623645657446491716555674985747923640974050560278182796143380756995466216398229369004518785074100650052374197251395486078009741218256495632094576033319061001811925739096972373726889169754665096505805804802469115821484958984884859903396057489120180117526997110868804624447320117654693376256457388456472667185755316599996874288274911733136214618525169144883838099230307328648631951329894654346907378433235931927378003791364969440743219930550180534311279766347778470504133084739352671879318866495320539854401678583248960116271207184749005612574500919845346980459553481345044789907539823898878640641955213950064473047073233535712572210491523249390121636212751392504182413499121684229327690506120974272666023380473373757746440449249415473015264461718173040461466358058883805216220595293526948832510586966455362811969946849479596100689124774090495240110903911569109968434360443910703090831668453561657532907112160166176124747806877840598153318238073276382533544894983606768550904478986867115517539197500553057716081299329265005757404573440418111104252790009320306127306791906432697685201456870782014944467169353639957432941612333880562141133426563209473794737767468387551749935307051390745672095863085388996727802601989698867255226830656443394627591784623929722991259516177211933743064447975884837992140299584106867525519604018892148929678402998378709059380348545170866694275202319667735196184631164228652678065715445110372023453984708008570340080525313384066514421979011748967129237018853316684718611450519263779027360775458449074787607685282690444324435136704701337616132244587981202070973960220293942495794937845522909276740450826975928611095766158442227594474534957837287494590606186319853173566242397677057311858416978980821366593258197857447445751325150282960879870875862049800628712800268589193270798073022215492321375809702099138751259526070746584181724325653831460686091907535611071872302333260510397583360151054381886653562483594371750134292755431327629074282169066979272656610262752404173878881762870058115172722483045957953788400031229148416444492603728253605858183595746662803381229160395874780842388471557035845070657287437894550403182636403341009412523308204197869365638615401242695048827408323708783338980017052252845207291315782528339173439136161286764452320709184994313034777363477395383649980478487902604799968082765378527456790929767192386636108579761190305546027015433387426749311875543702474338140773993532676848880702889376987825024608565948760101374130444225869093118503640926740325545252432305778406045482249710549413252415414126631563053822186998481068567463907329318444242339910331003278167108864817652208835219240869081615048122291107386154058772751391421776852996316825738607186580240820151323018847716196742596854111447454765276085354197684225000875791024439690134603686487964707560678567326540669500200456922704208179544562949451742841884380978570047228936999956724078428826894762351813889595150475934060157092188855190978213311237513724667758420522062780862648140878702670825237772082381090931930867189701232491376936311726967336735676201641012742825986633845627291687667835558635314040306715281526806361008287316511698086942434147188312960867549872662799569890802298152955711046473575989525733868253487267697938960760692720930135468455832773492438370368668952104534577085017708373525881040522143581193527380392402084158436803216265339801869560873293583045637505975583925445839449983396593074804261698252901841093596960641829374030873973226119878106645165575334969553464767341472144525806447338353150123148738328587787507467889243852842479323316731148356786265632587563364509886483848040592698742432484106338079241635169594687041482466093495534252898286730649797760526912884693414426314649848926598501091633741578021261361246441583669849361145539656566212484730149783644600933906176173195332745035339622906034210178556965681395642204860606081847359762352447677626757980567125034343261142621424212664137399038868701656533506328784220039394050616202789491119333434250757643108308754595895644103948455966508931574250326010536309426803641527201547473274206470870332120155849026311268382964642478918579330351419770412553421678061117055710150839647461155607025701449080010933814756735537467807517302754955139248322862146446467977958520515683471298470254487308772969965223880411304923956122776570822578578863401791156493171173916484962258039955209873707622669604053063426955266029768709442757180694227839009717179304287079685826053393889147745894141693976237443674798036794981274533842874072688507078005592907948129730629949917694819023479393745908780317660640172540545162851525053474432442423018950338835143895772868045022370755930095083784443228126772139043734798518458104470739441384938299915434807892794434934622565329976591453645573332452548690694122201450656773908233830001668702847772128812932785725748072039438179128500080660056498397772972556675404831638095563717604783692247396184398220696845733982158490837999542922078669629310281675603663976740870427241779374198236176880084911077851896758586745710349839179797714303069313626259151907343229149129121163501592537190137207997222001339002492565522724003071517968682729497255227292536007967419686273490062379651017571698310322417875284947533157384108946304342086313303600218163940589200137507664555879063546538999213354293492848792675397932491706732712022212180509227363859774524088511613005007756449319823955433418931042735236645935613386369403192831134017196149436860734435928705848270111693634921479578942527498049810915548025294880963502210402828340419233775253811971233215712129241287438277194005320222315140924206130546177812322981089393936684121964718138884032143386520418192250763861104811267383485021859152543271252801827816057978983442898527269988196331431128804296054932606988346291412448175909677287938635041710073647758623570036874758406976130774104308574993482582089082188018841115982243269174539703922452612622225126842813993683621130742914107926423710501192628948166213330256335725335374779523593883595703133646164031689243119051348889822003977090498937859356468171152392308640373243594131822549248867023406525145585323073186659890175891827372669711048809719188831800984265177514455777263854540666396523992070952204192094356070621170652525420523444558900084407137484746782683071451774941120609151265529354849339629254207603593400569164925520998297554135925826953304688509859236150774349995187398024228627849455270153431171332673893035764340422382588566822222550412154054693194031889533896620321378215054926457143367551595268825818659817107988440271256381072392312121072925696085772451205547676239970405094261522058416834171637093106109735386833589184756237784260434785871484020393138831084511597710028422083318901881261252649590971958499065454196012080404241425330184428682178537031333613372903695783181094105961662891025098320912895811274451880271416282991254756528262962019039839865208866214556500378426520669852236662599262221918877101551529588549349556690050234894348370117519947845871793341800405826520422157870774488908307295668960510397988430329505968978263653173391144794556526546172605618073068459975576301907150822489224991789846801010786861103391419071251269796566706679444176290085344414725945853690948991843289504859220635038755549674892715220735062442053241116700107509872954057881621460146621662174869755422209365889685033541356557869639891360587656073575468718680040501255649434585134482146375534293148566096969391077530425304540234822443692116555038423719761859482938419699762845786984638494046117155834262239308645420669444836776333173025276717276990170135869714258283038149926281717541563387566749007528093222712052825691975920223787453182550955818845933716367254424713562836259205576226506703369846657810841557670376540361111553973305867903721949237339298151565561929989950806001096929673181193222399045345367265779367695525910697238157739386799855113985704042180926471214009234821951238292465372567386822225626124558188235361534709447011613831217330260350589790287083628339495526391597942634077397030402730096412983927761286971563764829185200716369608713257558636730955566439131185225105908796762057949320482795375498360927169114134945559516675754860522799600286479518957677041859049110831205808933562957948417051281245848503696652977237056569303098919289811435099128424355211636564417121734995360451629618590454575572622308272831843785485059531319487112465056062069827105669258821646537195918660618968722646208311645377022557373850659172169771375711242309353579002197277750762569399779325401062290746823567685467195606980942588321222881398668574025134299845118189106233446274774178083169378678658582449506568949015977262630126092635427655253177190572694995738461085255021681976744233956500838416239657386174306818367293413720600799873023153994350984853299312952406943989763286757940854702627989812972426030837699322592948531774076462491804719679410253671834471970363709047437012583013942387166147944763813844412035870307030336251371646783496790704788953076578663587343949833646936063344595392258080593233392026508609357107794855974718046631094317856809082869365465620776622377376159120350227424400341680812823393310916804714339032120111881920551607620746789924129408209915066726979976583756336853271275015905064018969381535184035439764209177774137750889605702852685869645462807900422752068511303897304953678614718080636032232536898285891278478215937029754235914966702680767590778412650684700325765157883951727202189858274789376974994016181882897813372904935520790565477237312960498172933705125613846170045658550027395955409687853092310082644368667647115342784473951973615670686139017424959960903936502870213798863646874657507019234880384649075534289002212082835093042670640044694576796450496379156334827502857241030511237046451869704190865780882022198002557250864181737423150882588709893556326859691774286295397790907007154308828945640020795586506292617525824262801047955102680373930602999801643200748063158764187333546562198351335213695931923731959999273218326508964548061586981823904479425693745725946529735645224563447796980173487633166046418186458633426385869494542996087306567546397914382143402210999460288016180183939144201006513986846264227944614630555749322481509116450776755622418895036100388281340398283150517109817237266750109308865366305617796632931585574443512061690742652669470143681498642911863916700312926131993188788335250861062857350983269522947616719746902461623204315974841090581509688792670995362643034540865487535151828544812059764128337487468106336793032133872795684064468577791552218170575616662586405398417066634520184830437911085801471984109110102435343814968024175484484445306666110463841454543856359149060092656351140306724599217681350572657468850512568586701436107412782697827586459616580158777012410895154026638554812900915290611280694165515161468726069854146976308492686108378128195731350547846107271432086551073913306478769030269109596686236934859907369501225969811615259637620681185685060238772892730021241078720661534352413166742198150904596268776684003654289903297508215306143411222048231367375288432369469227308051466548455151123298288762419286725485016015910550446111978636419850169749569874010494261804713764048719527652208371283960234776376954722884126235089545602871787243921835006477979190173797326476604960902191218026567744923676288555020165318842399561231239458251525707037831953821448143143778458325594149674016684420948736509740258816606992873831630505385138965634212354403859366121495581075174920083918718444072799973622740056951054113866121775426143436818271708628334304101062495347284238331293980641218589027154490098854301296890143165552929578474671386147269392724399539355609473805504399121872036212215168683547988158026158271670955751630076981974571292949371171618750955984768547516559697041625252752257050953406002203832176155964191459241701041730050552278559571628071482739630908528293688016515606232721777966673916261476167112866535898066214278475370016758364857869376366735019854518440673673261211911191939954588327634541926667466592683446343399121339093189745017321065172625970335024881569290964137080352739450694213353851549420869103649627226148848102657375196503318399328939761187489394117828746954260156671954690062001668337139322153023295540183841599421967340263733151171398438089938450386402810294378715280778354278925377721683006277665647474270694085563894658365944864605284464021029080976949182338607581297183515802688621493596470549711041807214874633400132136847397034398066716062402205261240520937400607215947314340567878822567759817655629335708879994428170627754847358887279256765132677012105300550463249385458666807040080749309064031064956137243381538594209795051606866063128225539022512531609015468277467711444132019554551014355725276483420224278490968486998831403656567427507756495772137352899160589973664532957592708086510709642058280607826141145149115329445709242562957983320200029475445879874960553642255979937302491134988101124497155123397892017698103367465929196004360089754357753774070274440961591497295361094094468108469182166131611045296787097748818727337177554802957294251302358587682391749781622338882702487509020429588634868820976980864044725658251934558967661307509876411392188009788833503239538637906302651194054375004055511770743828824604781991271320603699841005497234573718502426667194484020744175708315557460100960275887982177492534930646488002759060523537340731622741702197100767262649975768007575009474300242609621449153180095187438382931957301439503131808269125118583594854756180829075607112754788223298696064482230142591199798065546954427348281270224992908104507255670470459813031517309985397355956927296268105659027326205915446579795288083844179638943938887044934765511520760441364700079090658597934485920286748633398508226714955575397151397794434615956365400429608289546215700088671289928075803538824458858554685455901858089001326052095670366610210156281386814414058725995694776164667626366971228867878314544809947677635354961576920864755254345002228036157523705949503664056048141608605441745211074490720289057638937166431313763657718312078142837097254166244876518605007133795296848066175304625407901390984916471101747359340365030469764449451477356982954439249510265635405378753538216951022180268454322825491524912576092800995472841077527855361466670964152684847106414947504111890595585392272689360322979270774637974668903102313162268996286550208795400171005424740162307155613786182363454428013667395359683297404442371065392214394199915964744069692840305862701198569053377908466447589238097266217375196433711563042053099916947095950866020617496972166614669532446125011609102019765805135948143368444624558791816555866962348023676828938904677193116027073978109314599223726959555928113307914943677174976846665340927544799674441929617652741280796760472156550537484561998481776790989318136585353553182650691709367831834435806152335398978957943383606163215917000993136369199106506814037986279460484029964961186077567313807310335882262389507087219687028962388993733137021070117316091748353501672578433118786980326476193283004916252129465461671681122694103784021861254544853829733396846602974137937308061467492818235755450169967582799574602909099939829594397416937330816896626326425322997342379343783142741444218210394411953772539668963978715830662353257051252995844604898222842831122576460271134117182292105440564025355715352648283714933407627269540436220861168289155113877489403144064039423741731329372567962920344621763894441122175073673197606949281396874829057539757996197315562236555522838198301082418566332415457072231049519149859962309126970265455598150182902801045056840234181266659691366105578874955860385096176747538401025443338814592706864282083691719994631997794214720716250685376118108862277111255174414964651927769243180341084381751282997705842471315209971174103326258718760506087376863900549364539617739675536487629097422286010962462741932903268051808125409024619782296433297280760146144167258896773359923230488312242365465356266466023917426099657794503917885664168910525682899192650492543905348032622623641761507243287812912029626288824334654026523046188766967159425971270846154141554450705622266483330981710632455119440130801961143268303414226471873716291314506447279401645467822833350847791566978824449195404492285202072295531337963043438163992422286065959632007505104271653529630707288010258071984664749964002526149723242264376159328835168477811769543466440373970915410824239879073339439462882942884683645691531856589634685403532149828984314913104636155769769789861947562875229606842018475622873449786692452123958747770091886142336454690035332692865101238954583925575131007239747378991040013987323868471192854877818778278834340676247840493434224686153106470856705536265268010197443275410944040044283426719593620843155467869266696849120272519528878668117787331088411134370190921255544264823021156372641341255537872443731625608965585854440798237024704980699409672680763324526678234465145826725163239905925974232017618159463147250418824206995935099263923236013531872126073032022756482037647443981075342454986248528929122592230184692006530461425395860316405234153762494448090790583216808181874791605714415620433017761663306952463821409361566539371449783893754998950429236291897908137737746741137382334725019490981336615215109351630630479391509764252368489536349776582141650459346404766622636817186675463629372002856769596163040364449760247900679536123520086259940024887514191656615934569288047808194592859419912168891747421500809045248167072308025124958201380392916557455032544580161891532384591944061712328245301617687841821435380752316473752621107601200258864831069668771268825730172943146178298596972694279747023590380008330694154447331999862171736047360082644573044592203916333995904497541998607478038037927174006474161373578560787507485098000605725544263233574167907246358487549772617371711389914376831683071051369678280676484483318230109577505236350715738998242358441458521870405318421907262550184952006425450482062692086343170875259197514756618697432404802876723200727957355294113816655078205927033844046423898077527887435535782460470535113237029946536591868897757515093666039863256061074385478792920949168218326776121859328930204034547763460353589846389612208253112335412438158933098061091873093265782479343902635988417066107367144084075312253065846673314975535189647966911386435778069481312647414428372998470697411933447953377011162106906930100103603347572540284184289488558128759299834454728306929793242196913511742654940272980688515946782603522100432417125916376856551352920677311179317210400916433071698181276617898354560734028939056390169307015326543676684974344185609193562864755769143862994926861020304230365183616089824245513720434725094711081183913360782529696230172640134448946284592969916679517655089682255373429140836048279710637029042082613470388564388704640424909925808133551154273134875813688002424448167514917531402897561458791060550117441670257525328089206908620340206590302576100417751403054966918335721872604619576097295465543564671844742069520202406645483126134194203850296911300844760939165247284126991603145926265955599452718846078576398438316154660932656381550222175195993075486506391373314305140919192286109799968845108079406817908330846710206738564285633748866423961557184282330790991333892236588761713304509721658399948687827660319019547110421530896888330517920042304753720391319949790645150130236319335307726266951907195811775760954817085210218329373390465344101092639019141059673427033668904967680038630770560243636375774355763822406482535446973206759761489932453315217316218884919129368113236966532906748555780364421661131501014943266583288406922339171809734263649057251369919172317618129853387664267252991497005351195879396897953051616561452740055685189036505002680860429335529855631455979325755572031118655894899914485799416812135837725339977450709136873766359259184520318397736090556675143516692754087381824239265791407086465506890680754685652467705587062991044606282646713252018911494564449981722422324391267748785128728666079914223123235927689850493047520447186202815536047323447090330089543772064144473763028370810431617999960351615234264194170177014805402298180493707320893963917508770277326715904985017321551580055085181608875981538484063030625442707980477971358373852205652375085461556239369559078950483715044167034794493270921624518479132023532800763213736888106938986876158048112452461746380227770856659271975025814954072172185001748651473841782469485420943247615353413674410341959632420398893838760574121050256654843224876012220391454285991298959767890867701048436661867462737827112340794961128158991445709844457479507997045091545072192485091700682785483442805013987757499803231146699673762243057467606621324291298956113639549903325170832177614278228566605142428823833142918721923428878987829280556329432474092035426768561289827349673912576658152427721019717356220140144282157158064159407208766304678029002296419796663427841818491776665273426388992651656978859011097958573568607675163544259805498896222063340677066954679419589063693390550397960429642894631498461503334865497188663153257400322718882615705287680793831720226107904121374547262389758437706845057013229210712813082671345129920820491155263816742425949670046086779656245686621056689541718478303847976704112969705246663533455306522533931104592296798729387867410608073556389689768281073133233430032770143695304742089239621440932894172313605966850623802925840563767702135627237407504380243623619915524489770409631922916975720727053828717759503568540675281011690991125311431975122112666314443416316438636710783542316804282679526868734358557412210678034073134505778996876700614925247210037227526919928344898988632372950559409569745230244914900018205790167289615141058635448282357714607246912575694940864117772417035700410199112949085921570482180028489177764655488323162219776352450275824817444429591104539619562986086107222158732383120291213240401762199866184102452562880497977429754308609824043516428587328948622949428831900804643762349383111969313285947529343421106929177820666755614104294577723124823915836775128731995854591874073105023311909077386842099881997804664763530592685644592451801572933360174026395146454134405456012887672285856260691771034165575842032041912410982432276921174154397289725057659746041397431227571280845687741805889385723491227961038335556284288573715899138204808549408713831326299223382084670416140004429907519962949018106199759361850671306024932021804791765685726838057857159616530320833238193775644279924019211892883970632582095073194831832160546980388310204821986663293511151402176947392293315366522828398429307865707839208624429806834357175256659100929279760640171239774202466276179528100689865382486658607157330697374771483103866783067800686019787438589294751932170874962755631925925393162802704694263206293232322292309162622052664927074770271963591003334808358124464741571329045250890446130944702138999127594133441129466154451324342925248232847263742702342763259456143922277619091517875850496745520075744167790977517207265457300010913679813406559589683201855844176714133717350756102295993792921695117880015227582047046245722555806697046376388694119691321450049620989985886400519395569836943483989890039918245728870177049865534415197975193040018817137988784367439007968147195121660174631303556675578496610433219580177206578976928757495796404461845929655683651501092240279713314523355697492167780642525012453161510533683957386123760099224825351609806647883131721326222741850373148289348494001240386336607130694642861687336757367993975332664796773148349921916970050810517739595567325707804042785547638708012970259916005558254573157172437222307453391189629088314876758295753852321701710481499809266362270211889098445849563351044972020596795746947190252382010975372043016404903012638576829243636355402859049081382609499226486024503356165301639893827017053882847289977873274842927835174044995900519073724912213420589166087252668420095420831129907213676446232254818325042392671342905015284501041127120180356036887196900007011861460182813521430804596953367003625310178462472742782849456539610501269227091088990945444355533246698132547953511249904272832162042999706935853360791795496928899821456419140576665786002723217975114918987439659247503142387743200493486164206696546291028953743791494337169219277015201819026420200125794295381517313975289475292675394725449340504397969727686339206188876380957483581005019213598556454629246659749832527434899680456684288666710799280729662666316920456363246740136069532050882046205385134798645488181117445542841581804395630724317625869006285153767755001152116860837789279846147273245835302874717802380296608095938915745252382185576269666119524980984187960001900501036671673270742981804975560561879510732059025778874461571648240454603311310174881818019461104550821671035402333149273520110630498281780824271544049373919227923555541052706095535078537463988084454557555830243706169834132993633759184527223868639540927720400956218348429957341663483244768809550384215130920664712359448594754727542804234971394038856959281043679303443585782819856420997574738571591207343789844884782366995290438848351500040594716359540235410017296545333649225150758146133649557486087825876794140388177965094096824069022797611357365766685917590876114281625836700837087408861662766664902245624971262479599634795409803034793160474369235833347098896011373630184576136956071612108086570197876135555923376665846009987054134146420820148325327404810182278041497500046083134956760795923487338923838294999710217033015453227478686949851987525391000633118367642668575564799357799517371443227411869362295954572388185817335278588003411846140268407503635263864630887206987389104538217387035618890901762238445654782148535312604392998396740552503596354300386190870256029049994283081604559230614073418393013264389745597524281738447424778996395715456186636498276274835721246030344492144869166282528068771234516374838537068813830307378996232917899303064831261652283294270923693555406637269486104163634619341952502765538028864097904612749159882242606515338777072343394350373567875628298008557260994692438893631528837340302646357312849909324760118460427476002938010043703444884318507984881722780032637923025397875469884699074279894908017565686788972507171840932656325257351859171118900217898607740315847392038147531397076615263409537466336798457075382040009097069932712942139255249742509032790438091099023850495071107284950380198608491255831636864851058294236181648567910755814421524141878954542479219516326192536141152300316146214760664734678419188054199219098473393386179833093988915746164572366622986647991156111345961073928723496813782026869650900442320305481270405664090390308426320387970936844920552190341585785039603368423136610048863625138549475540349235121027339086583867373152863880941322146161874496122625637586145800821333538315221612866762991509763866067420253201664414982894559623177061196161127153742917305072901648519972962600470355953225694182479351732135930613502304288882882141634519641321153148672489523481762016715093605490275117781742093460777252545621251171627457738138537841069531006015632172301796151555907307835391910967564308046194445873235297860119368136803945544296812096840925687844709209463113281911288683317026825663082318443025463523929000154811538166214913224876104823227951553840312687149286447900355246548205173451856168631814461555456385826936259595515034754419996580191911147364067261900505903498701533915048008009774989025283128535166834644115542659518080795677604459427418952054162405064568180909635446720035441769613895899570741558841179872603876688522423961225057976426097300614878560319505376115774288282145902156871091371701461193959481429728858827386576081901766624077082212009238134648864118438351898101087874200037826707274535169119017100086542690437590984771528015756282582126470049867967351469438926089692480329304610259500079476789992202649988473818591011777016555097943707252945289096011078297064430404181683799891607414267869032836156340525282328112645880425743361770554221590302833831199770448049865384030038359628836241572431715507580253880815244177180121550470592328122381344590458997599010700184262310893126519505777145262659495631082175096852467010687373817486199502059502942486108444417771734025947675357978391957243781038013889011177680431218165984116567316502054543376281416158340499676907278291335103589547286836477718318040919135833262899952078508641430082214947826163248185084020787417543048297584278818679632589326438643434806448134403077163990666095498039108215173978037442006764745475391018968970394182465759953088178190847698819137810498921764507635078198251233111697982229457211913375222142794745966071879476457245362641767133947885676017360248028673063062529443998800308664257970531302646331475614969958807371987361904883835848835920935636029155564229657379102662208717822997683514880862141381084623249141253606265099520233319469049648089807828985436818811582594449561716303887069921524294988845486978998937054647734036555451208834707515040296783631656776276505105913298253475477687258331641095399843112772624535352858564669212253657960117904277371298392127969275710644443225912890955221014698088249284627804347276660210617863034418657715638224995329462113262980507949805237229693181526350618925662719082607076716768530284430640605276298541170571500187747417062442287031527764054647068759603645249290194483658906944422266357852989915109817860384486664982073286419472071120234398171229411131520652390201136535869332727317313946198881443027375675391510237076974002874122099547662327047663829701628360684646672905094264461664879545747284229768655909761163295760108895819219323154511033545780798212847860996992715793234204347811930179295470389316320625000892710619906310689366165773727533498230975061266784271908223933854774187300402621119144871741193687289172259821940906879684395263751406437429683548104995499857131004941127132321889840139069473157333579181017220570206457562952515192984569685777149172155281562258073120630165046399867334831955368135384776571505346872471655254003894590435993326215509100047804100139235403956394068228666026643533426547508259527235480641684911733740365227977092316458864429222245446590141669768461160723820654806221801747522672406132695303659846841125950878013537867141586934553774871282529561735914263939988533914977248010346726762254288241746567119003534252956685928535348251944821075619802838936353741972423975172511100184455069358936605967160849579412519967466385400458560526601812865810521937086933964251394969977322888746888217932320064358537493375009145900525206630734877892608422291256547548518843858353690539242498608083768018661302124223712830182297582887420597367308362504717734177717583092284861382994414244851887330282999649333874013513596079889333428806091803812794397884526294330774105235515592369279773825679130785498973644494819734638128965296748671555249736086424496211578151828403117208634439758800142957729797018382355949239858447422541816487820039653770302180821246270267906886352560299465788372415001352839177092901980712732296372658834501820190830783130864170932858863994347965764522814576166487148134509171679017320450207613203793172345622565305249989372949377458934715339498073299052149528663321956638979849114267295470321844303373858722069133048811119688721671484520508756103134385358407690752589503123288208319405620696122044097429364909696017253349132166164339969939994535404952124909004299655164331301659265690385742574568131201128250105059535244109415101289514161657123855496230155649517013023353507055360500635053638590755095407409508401419277463715207071170464715697186881546675547438392876770024734164869359350621459934431711382127815400786445383714399447048565986299643284498611155055182964696754971835620020288173452473296180237100968957751285567947240343032364637830136305614578538060226494523626769899488094839924423171639287246888837396488581694915916999878931371375566798606528976784528611224965890784198445859999219966032104120954814616263740787874699720043585806943208802269365481757865655144576788477536060081306246202108542594248765940859630146599982607441792575964158805626021156335379244072993731270679661256956596341793007913175522478749921959730409988693733721739022807451628345756320764719018419355664958102549405029111966645910909395000120460859165000922250817797249872704669857848829435568544499104800941085877487689079818186418816282761787788780669587590677670377872534970447751433281565051894846644890067191034028188158374433125019462266652690268530488094153881902842248826210951021247808481306079246039046958278814196291293117544353665400419361234467459407430186515230213295455023716107750235672426903672370965175114354147850237690179049928513249948865002155511966751543288876703025765113748231288074369227000561184866250400505719683264709720843927642979532677134219689220104783627862959914534290446729230173986312710703501107659156300567593786817425421164460613996143235819652769080269196471755599785814930523433489317341078297418848107983569243860525397517060496262301760892296105222540556607339780816631478415092150351827401029202514709411937145025028734059495744598145134797410264656786738808016396294107737433023583311548461868280359944942467926349084935276471900750612909657690486667985103586139635392418731141008242732152867105059120043103948542752062609091871610444560340371381751883269572384157093317961577888851600760341651184088250707056393647215657896888418095123076086178900660085811069664493902734644265421309475219582585398353065782002870323588094455307756348218020272355219452860352546677589463991008279508105474240159871474080645059595287762508510281111586290432856433278683115399179409013913020786439466331750850786592940310045184928806938042002384436111446089662087576460508573913518847009130785229182376007329242494807557361659369573369877370972321743320505561768609078808787598886365057444824109211185903073965663234077184570558700243178173277784645678002479212114346245384493042573609250671623677943886884756173555108340079417691628166084723224079365567205192105507891434774464092495109386529416185099999290530869523143821861815975745434213148328802390177036959515712622753628156579575497450729160236345855518675626106926097087332577091292491797298621395203801483701777027639670138549190983475412766979990979760541941899543831971990618512330778867716074110400841463785148936213784798494876369589488008925295574595031053020740910051522067597176759211675426198983002547611859081081009280668253422583295709253352284584571059222395194400190957001581579191484670531283570311212668426879978216620559504846977069641867292612907372582275216252933711540531345910567423581229228140339137829795297059131684504330306578261287663793354216041666601347129275776575272283600859863887126225539539839990421742675051919969709600297753280515133852198646527253203560715197753110510659533301585801426143725240161701364445060934721636678503373496462869709734310387657582031558856745294974883614927021128951385378747010129969758123046553604545132771484753229230358164837104368519062410507059537997490784071007979199588300387798084651427775381021761782345852969024859068675052777536314770346107054021842865143868553096083486612992509452043341630878117669251038323675527667152830493481823194659948362426976464332850586528948445973996023072550930597306479080172474698020168881498451480962243580823743658822318043648280237690230283415709802993386792881252862130112940330631910362996967390064405903032164732812025269360573611391531494373921952728475933508293631839312974126563019537901021792018016932573222465378060309023455113860833428759139474021820051757458894106407502485359944536033989034787349130503029747143257548384603918114038439842799697752494049857098489908358630350097540506777412510434071112067657896278917725754422012286934056646806058960417656366170794328511963104269644331128997235294903950963005252398860537896193328680904411646929656824366563677969710762575141620879317890944070791221308199347900100393451760961413108548313443466035338555190854050858593730763488429990112897726385005619915092732296039662336028466106374786449762368696973398789576818923232714661459724552228147560769177922026536698389463221041261802166496366870106599025772363695761705934815006837901435096030396019789452558000587612517002881745576951158781955145150105815723416859840207224241992790176959528323288565503334349403511284136852338761140948413468178144768028402642200180188342263948235086460523570197730719568932797050967334292841772670333564302974704682651310698447342289020111690739012104859717658093438094968074961715846506066250958341992104880890207267487644099949409483403742270475387945313067309691468644614828118021266880828532928708353999923600981565884338334493831553817712490837748390659598794172381547996045857005289288336714453787308095190358310783971320479648218321770064387875706046488511300484826671942709998999240685910610858258398432121133884373300139222034290683266585530307350468835417601885522389583878668866749393512619575759474189178284294016147506339077716155604753264420898283691152726478798754043346979635237094084719140979691681000083011617299115997132238727913341514032359143535450929270371498233102873575592910463859667686117590748550164159971811091091094315224674760327726367327943340512712534701812707271399008029669210942307644406124801958885268978032270245425177401234320283134856885647911001622283131215859013416430619259202549729298674669466090875306534528220659270653545273596868455655906736923866081241523874079218380954821656029420868655870041030353533216226584842551470361554383195190680527554700334688838206836799084748830629190065966992483786675158884214434851958053207341280106886428703141011751934682045761800811353087494105532790287763723990670704879747161481181896128422543326783838713419728876606384731309876996771945368806797701110317067441050113163265513982534910766969892667636177551804931564087619351752263604772540447413024580365910094478664076626358850583179606205323527713487730619089547857653331805005382152004558439331369292338063903735930466910745125865591514880840630354882145249654971807720173787673963570063298713868384426898925270101976490481068222113428558538420310265122215873837049901315057005511009260000429721537036607288666460246487348668348999104321174611744718443028358480495303282763329702167780509603323506065821948803703330892119072085535811914414287264996669232697611969618996585954616837300499037845636841661805266513371901713753279135647711577014571599325497724338158424055914356266736136512935739069851217851406011860531943186413500771381487554608708745028078162610993000594174065482130688428507813764751292455961025437761985071513107288399317920718927008189386248843661417749893380524194372426126377600381755904982085287450446729228507033300530360143401644141556247550121452617112174460415177320778734630193652583581294218486467356492931140283198575583645550094975132947924293579602558837629193914945283450748092454556141054109533614329155524364979237345156864852809238117803240114927926793389548852219265738614223418354855064204303559163533390749448251247505634904926471736111429108112207816521243665831210247791964657656205138804440141266843421622084086677849248668988818651357796872650029833460530647815098871579623209125070498335269905685874549780714623553521516355279989095749437829756310835355108830481871010101180557030637570004651618491187774018200432667222447226602793790276809011732106249254109213565841276097008151751683021542225343406234590198842519006419959572841079398900058248611370744325971705529018409962815211063930408018260424472614012209159684654929775414986660089651231947837366222285999069106447802492417521496820959924763117716097740949746588161832879876046695363312820848616019958819376405176901120014045215255615099505778354565951965809467112250093065695156947691439850037555774553310583588055695998249882317341358688387312198272700320818713950531527736767044329649923444710050292058980330973418172952674536904073121079992154336047060242647696345285634658329692406117976461088054055328255713038516231132525416412126037013203949510597876996640189935380958411375100489224758278481560628034589123759141587633631603290508958780661597350536213810370783158923874278649115732935249632994248844745014995093138488133270749367379448115712114330552306883508766281614324783570060479817229959497922009689098422874500744139005535278293730852663925364388698352378698160299981873249254449693311386643480778233836484445731000376292066811655338106382755333922661903297876194251571195990568400727030522675827498567841178367556858627234748054093297878091768241232122044434244207563577263831712226538577873668292875728036603993768748236222440710400619720635313165133403896328594839337879227067272870696246843723550251668205515864213985158590891676868762913611744568284908198821394540459082956956082552973558657068112410883800303930533186252080898574570340961557246662890153332698007152837587654583297068039255129250026370645537259075957905918231326671621400697472787092799484320464401766674721177294562645844453689032432579809517843918502614799967138670378989325973270278085834218211848296501965206181104104972897052224268497487086787698869510438007318430771457091005590254429272295857260006564599050406704438753459262718292623243124059535388431725359601170057276730218052859260161238113686189847727729660325306076842935409649563370337020034938400722098219882428816748628094310702909234620500652913617512359011649012857037051576978688197721841866115046648222149156263046917153247048018858407361084411799267286106753369494484639901863551773185394360658552462119779744671369869127395289777331226967811044465133281325667822731437534195065519433709777631020958042674395238990992844277028724864408239691106634564809205540630184470119290999227536226155451117287955051060446330171592472428495483423424966299922761593980145445461102835992189687079736969117079049439075771118061312256719037469544734879375961210024808940299883997245664426517176717726281965613366722799207826502292671072871331229881749946035294438675067729892371327728835991712117910533931436214855648448710026995003807209757052422032854984997906406708555495802946515964732274561768973005581571692342979372769235114312503022967144111275461964573805542466116372965814446779992021448081576116983017656600238119764688922554187851311943584809306862254249783825149705511995494564717857899485738838667116705316938851283451677376694771421441253368175515619196039314274429727872981891963158615352107172949817097838219524248728962453061182143475562435948174619898747044145402448749699694375162740909290445728121698949282527366051908449675338579618810323365291922146411769285844547908885017426988328398092994167079596697093697053729371103126105601154665271563246542526753936387082808430024255153555310548563030817906994518538999050979681076309159520986687028197738429893561217988400051189135287712633604195877971751597799015455499320597977674391639477105387579410781067556371386247446922333496242469457749450188190570078938506311035443111004843723829142664596285561600168740501876991934146872479469253156709030531905549022693152455892026295163080160238842672843957540892407810791964089205938126893818442835995228754500330311362715441335832848826396896986094042164404362666803680770310974330869874710057353541612645772324551471350885557595082134503147261540509100330211946868962464832544858394059347534332584445195794197308584936706033726120325844725917818729653373168339504963292451884053212012938174061059588310065697324104117681593835397419305371212526383152831168097246849142578678455408473095505468055965697265940856939960838745711808769457760943430573118681002673139920440529000942348747962010255916158620755687247000906918973415374489410960729772837308326584929375135582409365842745791345349393752745013721502283564655732991628238964997988791167093708433096777770828664950872818588877360679807385405120588640536403653893119671349338053833105716416288020312214272656897998596482948902324399819899643718808370772664087769645202692634567548870940782430011671010215683491388632847086882234133511654795663885524768378258980721339867798014695265597199752292359633760828320947645578590338450673587213360330261039411181366785931072797632328860417303405448754064810049090107279529658296731022973339345967872076484366539590940395279524117840740337623469215167769265006004694177701855308270471681795723906843896554050580384176593844316120249466935437645587069555721424611914167958906156577880606475916382261653480617488211813162088536594984675288022933054355250841795359446367054625911839989500672869141798694315235647110087559546944948077758055096396184806823536267214732269363829871368603005186806356548837932729538566996286800703065992970564199041646422565030061572535936810863188567805839594280317125843938662505195501010046597629712148911131793755129906056063235791155008530122874314092284672117365517887398886206585422799896065655400429319390365374813467927318597619951204975333827521442809735952666541545263125508077874331931246125586775514599142299641079629542371637468141046491215198174657514359011097685873702533828142340397854393147444538775669705008624172795042070613373673429053004379697206023260295900266457314088567629338074476637671918056357913851752788241929551117487657437254575302190635534833463324862249839827092302256499945369916522439046714933456401607937764392865670476412276074669447028754045465753918928203393815607779406910051205423009723022493486624130188883280658250812180070208415810674005329525534674843139907982449253109464945687221868610370098050032230837279738815096033744476194465815418625117996284209255319484270269351487167766249057137294318918085020874054105244885651591146659239916363953132381395203286562592115669435095229706006365863581298831764920186255691493725182587129977517972461621493111000483224048105490912900454491588056186895396012294333520355876978067917738928366063533925389124255082631685894336071131778230544534088061707715987229463881710706736497008207154172996661497291562580211313819848799232942176728191926277089076133284773593972302828261076191015944863300690284053617985012116617936116682106066273346662581843522965894573444136705966935775004419500419513152886233210325512512864770783094481526883818650281344610759598759004425655359820641310378808128305447684947451736917411385988676216537070396714904316912398539552192389619906448669354880677458148115712854349566118214061760120751445995950807493454998160268319641066372683380513806582479846686439221428254166881013154940490887434149826784886966350451628084006458338160639605764087683291242681746123331345819313356110190715508246439252630114076912795578330333892481152774218884018950666851717892640534522877042292002205878301565377842302892665760513786469788855302030834849450502953433993588548360828103289498332163262844811951454187601527033234553179863492668311972327595042905472262242205878963303332721192105528103143243758643165593084239793981116570824549513307787448590991362487056701562103152163223256708158881491821932020043618214270808336580276111589480921578165772101574059238478261579480750330357699525252121502368046203942813947443969027439038958984913439161022240631656718405084123368508472773570842714856515963845583033734530586373951010269976587323592691620091116623227622157603279603874001584797264597951473853403068187825025787832732263478640844027385941921044640999830298324635289747068480098674554647663992066546006191714050060603772908479886584363957992609803655903483593783110205532382368055313857777566640070317213889606190013324324533747301039606665657635948559057052236463905231027434127893709405931195177721529833689410043264943077561483630131913202285125727683813390348374281888462578673538896472851274092360479155113856581203575157890631686160251154990145204353788968250920535422804961224849258870153419984057166302244204720417474045930138361293780284983889770282875603657911176055477638439897934548071376085545148571005642654785802232354462632458206567541636545408825336679812944714729111849637121602524727853839247286592267130787536210126194752512172858333045469818548733787325039809530464361486336945827613421326377196330334072196688921089652488903624247658109416432108648618201810636147033233114432920981950398212407958643958062735847263429714652612576605396332937113918027171935493295517718842532284669628608936065359372585664915637518014987004188423802447496077795479168430123614392065683371011213342344620123795039365691288938924571708989681953634342260523601382382664410286698073660700784902219137964180180754270043258154596178181422273940012542208453083933753885553893013531489090322932741671663086894773137512439993197769173345705526392290563083931485028536920373667851597577216423191883477733752563133729321020480883099272576639994202957096899271387913842300132464534539892343062823961797532592012191455246720444190502947062897382210526177548276291514244310399699810459055937808516674241952789057161482524425766271322449685574840139249726286239223146192529889887930033984855124495203337152876112351756455135556367639702456690416137924349651609244537306815478043700913221767531645519571557115567077957262947293889141064977208309560880504857959418907254541804676090190722680079518544982273372099940762061308130935182101349751641001971609453855569235913503292072414908220707586342060974237179431934458057110589577817538438721226420001130355801921664185165538706927901109200219707871415456546323119969273247161592934279751392008795076145570201919082552797696464739882053883730386577981161079976684696256579703471814784730648739445621397372381038375596167750303262547562145035588288716691942803076361200312799953021160722791664810583144826616788147611821967905410589154686071609577500675917503348268133094270633597701760539053050689061383361752183322218187370262086821085175189246269900281726459967694029193700426845658770842393372095632509726216218284200064385263124098379612909465265860193940842978951924112681806153652541833158560232310835330033751363492395353065517288824002020730898275699404345088923532764274199125627217541950843726056327699237426504939869597690121245963529043792227796114444286766779354040767560160727621232394625613787573788775172487705006391868470127480967617382572766571791989186865269484446099495256742134311386412171821908381698258807675938350734864275511409735207232880228892096103561411780352828523960799337735357039783642648856358457646776822695081459747660872111629289340368014064065779051772029287101486653526110374486134474786034435245867569042159208844075735737244149690782376318711076436786494705582021200400521958274503677096500363495205450847223115733766765478223003272998514524973623382659391232485447875481641591766981204668598661782056098192619465179334264431770388112756622041316354888304196796823283761259743677583803878359224272649110852637807907831938160668063605364319235644250677649349624642946339450157419695603272651958207292669081414133368917727770934325734807746898078962697181389522740096960996181151772644598827873979542453575693081006601333711396939412787512283528541484029654870819059446624517397509332561721302944988819379889119315242286540665948559542021153072999412827723339775231747959121050724169343511317950664375007241741614862215948819809559654293121396792055268350958656868595357360079195651345127837571979212772510417663143201412864572785435556770912984964069918859645347724839218130883470582974759297833695130359742112777461167349783382965651438685032851454746854786476364593968645418300242138496348607443626079522640715842305745551894167978125629450404009837247658204361974736525743478836961282794640429379572838207394851954987855585185070094589921988628345942565308567067281583334947867983620089569854070001674130641796681157063539004567859365146078041514832135963557021009450127659189564458852458001096779400215909963607365813301269215182175669921785045385068329190786808759698308698541408692950798498998163395272102833640686730023239711926012950761940334483093517791517601315820350676534628682753279752985996325578987860764820126600769524884106625973392460922152778098365440139722708050039337131477468444050916343728044955724918697495494272581471423524858190950785675562005734337211156577008938107609522817973837197359341755123414542830641790160671915459708193168236041704075824467392508615471141518042894841587959095592488760493906073290314399874988779673920991736374499372903019624315796435167570470724147845372035978186184092818799904858413613522083423442393724589574398859038132881621099804357540024929108798030855219493965721288728007587559540688063664864281235255996492786678208697297300037796313398950692768705910121439792554084024546787828770865139705148489991644372526983962084995728743378642449749344150693064703960753178234729791755001538869267721760822645896867114472268578229004130222673613313716014713380235898343909310647416794872120886550894757789786418926543037232977678415648037569548413736499828666761135167090699008231688881908552320133856600974557415684465337193379117270355373642364603149637240180502610889568319150232651826134030218751297529887711325017089965348892875119772687201677496819992894515252551007785753109182553810783029689166463613406251700080449737376800461691307640527438961394660563371613021289266867100398305806443049258176045101155992161148472831712153813402628511142773162437633596222261972009460750266214297906709878938889172718047203830307511093630345846284894105693673288638876016912068254591855510708196072969548212145925337307655125682642706682393941112055965768777478832650738097470022892984711573760690506760257134960387024492569872305585755383626072753617257247402241946626086501889818018624262554523312780851678573208981946433087622970538176014081671315816323387675631244505970317967366427537168330070316746558482241664783802025637446352517823661127964014571229376243780389707102678040623500701913922621852241235822796170593755217887917417211131453992737158914075903605104997567110693079111898993270021693008246345959803215143884563833327251050536373102645979320861152873110193044372131043550646800282591780131577952585722682374003203203098776991558748580822212341778359682069559764252439136318602674254755073484549062300127018760215138627510041211586516223597944072984012518655594624092811259274687793361737606793581728554241524330989522185767670291017078078433702580813360758889841321407542680559805070501889143533584149600261943712793753009116499067232460878136997948015240180957089311236158041860307703020638041461358800576994408347695132272733402331151817993406171492916671273323349894385658974553141890121726155742976613427395711027035073281881470790402076665713372696573658613847534986406539724873569509168229145080240180801729250056272492734929451686365048855924779618085317800792687072901089092484497233335937728451372636888673667092714976720300531296909336125342829984969230574156011715338507314799919236762118515033840805934054568961255352070989893023334040960959827854440442287854143594351467116223766574839261454232235937210032110209352686941392214790587823539216262146030391950257017433383833422018356545227111698850946122516654758925922368317254176250443843564063064216413159757933586114402033653117226727828079393279188516782881925839753066871181648742139375428627855043960592793224046820514419517868015147829614526210690257210271486567048176171969881354675230938874837235990456186975174341633765020195048251946773220204443940962469731142151159013539904859265029876160091777290022639669383707034806508426164232259565878930721318072536893139111221698354092429906418783265057267710429198858265396682258402840459967606634809111965724245572103650168591458011962328547333032332976743085153961779396843465534036444162705939718456123711352807934211584394928583615841853606850426819386148229219762128381448325236611730885934390661852020942791222524775729238952736549634731792796670748073479874104412833644137422171171544068125856229647795953888768752197383222578538968844605667209513827654677737229975493770886851350908876243151120306760857288748858630174633474128465995322509121072947782695938556756579015673338038561058085989193690606383099642917755187267144343399652596232354401450004249932071931640495648892038325107186952370671979943535455830354972763250239388057163650210589730542707083996049974866157867067216967141145697715845821630034845338731495885061577751426029183983811369087808997293640084264028739364883930178339706260182201496326878246188622004492492395957679145880712990305434325307561648811781698721944283432360521715476933127979731615881914092292797146085951580707030202867153740562524396305203922373600856228927619845185933599524820829560562415747548006892712135187109027225839044023811761330688142067083060825696815227252998319421651122386595325830720911327050136805391444410264033356585131932133989010810006138407740174608869622126976503843121423031701288010278211394187379611159059780791901906489957341955882097097831068746447841609891702065547331314509810270004956631478629523336155786370641830876690249597305725886515785184823169951227395458142887166302576451994235777561302024108609248405284768211014160309814059908632189735192087403356727559351586597188445527551952590209032661008251480108624953000609546546952401696035911848325943646893599034430744182273672557010784394229523245298673994538800683651631090023640343612473988675919760991627912238869427314880073165182302311338153225301645837274999135854575441893216924027784938843357591701217664314827462579638569876331044262795321415112160440852715444702680452846771929140272210433900006166158212620361323896173130659915672093736750889957941688103294465619419484463385890986194257186080473525966931840916839039029922194063314634575099369173885164371685700794272510484094245146946088547882054958517227233315642215798910695335622827469359987006863603741511860953284568528136442214857249304981797094558144769371655833312105403527641794831057618180075964217350919437781517067757666451938904705840197465573059376063048714454686097412187070300898607843789484333043498148477277627660638485592356249232473267852473317624817067627998665653373563702363346687684496813634068250715487008953313597336023923444726446132371140851975680350982056793939201201175498539406183205100119554992187904411336275410587926141084830496695428290686351018502492666138094511489743097878830533536154167772822501343077073208546436805082631019454003501967727148783387192033864222617730185633638234665821788202137067283635465721928911963724794770084623457981925056857657900000609810632316432248678872140019722250458990057013602347440219010473382604407704604507756938916044363522016753638386694817578995651631883805600676964552856016005798483914648669494798712480312582668082774513940937871662373211160267343622283628085003293130807575337353231371469074891091687666805825368904000554299911575605864909476377434687839135980007079643547298956823745378050639096171139909508614738584511175671887873897505975890594951453156339708504266884197368942763657182255068155737660065750296341819230192450095897107198658050875529723178205360477537614043062772415593120806935038136917640293966165662150402874400811186011447247239249977285549472979628992604879677850976210825066212327010369138332695391783282277759966918364011050587289764887213769450120629510239212765875346541306864861881723577290793701164745598616149926029610028816073759630736635049507762377024369104922780455358378045899740044084928679369431116376264567319347420061298446603130506529612118757296539825583742780682522914913430830549868633486045544108690112789901883523111285896296703046551161123901767386243839477985287024463426738668912627214395514291084785031665756428905353039501239142035939606402900459407121681547759722023127404979439789823410064552693302614973282248445712828571310336011057198395384442558739740399886264899157256449976665533603273357601268695187939864442156458681899694816780627897025952105951377518618179735279524441906704626661204897535525405698696279870294747176156476407738670722701958210483166866793868852368899469911215441938692462654436798340296911895699701752581404995892966064829277602680394537614852069303150448948539240273338642654734438835925916087471078033973503363605689564667258538171120034155031098552142606500494719579851612434196477545682807052121004011016948632826172968161496608910086291947274320489395643952040334254459839556352019417649321412751635861699102937958863720018371184643270840437704108160815877839098812998897138403687498587175011054229876143117812945646795561616018482601506499967218968693538291630350565292642982134418922569833566161372076058704000869922551373317868751390120379943079593660112025692447589700845951422090984268014871386881205808583298828322734505293605885534487960613869776245154903904013185971193864135033400987198217508894488752297974612033633891018022764627167578009988668717264326386839958385264159056706103600049923903429942230513945342580505294191041091829690598939518465931213619960348185493980718932695157646485600271279780261816535549649239366897744281115342318106103300695522304662933431708069731485367360094815836868309049331304444399978730889359840955967779729133013102591604009694317934037995766626702043700848235935977509503415011850289535545062368207906065947451317167636425534342876628641535285404435051514325668995647296996860631012022662864523946364896323561451107529613723751721051234180751173788438945715243620221215176143187374313059088222408119229798366363021227448774523576165540374162790953926231328061208921069672783281366260383601904069467312801363145677111286282583207393509914372673197724171436662692427370192221313998246191528820749646396962604375728962213575212831138769847139162045216281708049352266174404962867722074736511651693591471983953477510476022722767616514585770117391819781203871080714849203490517060704953432694392686143933171364692208364865283237738766584200766793498290902885290758158877619880553989972314389883637425615631906176609890824976071549556378293957589479616317086839821885724454478904115215532887424029910022025238925896136133341877768678353350971025699875551068729639187104617296225051451944556202682271905326761902259085627825133138193620411215443442661056033055607713519089169147812178148857221488981054808713741130839009636386253699265604522242664002651459238943636281533428598581999087092843777546883236082404999139204614368208765684220269616688250713683556976518161278255424554827297704654459685137219534271375453250827487503908017050891691866648386289262440719999244838796353233762496354697307370742404765495546555908379369648981423976515356789009535514225035698018217579632691427297762724323781238701089692230101530264660890724182615858306984261933209509064630809729375542042107539336224361728407089582945173534343242599424771854637716572216584741978564320710855967928437644523253903095578521480936913223656026267533117881078234822690285083815585778192152357271229061822080412947376849404328816655112009037289008733397507314223934868936020869216743240939225552397024157309165619760887232815366299209467329934664900970486497361168757206870089669212078550264284924716600903293903382017031381298149334376170154070891199284131590574836491599622576139802783922592871621318562754565438326102266141603554742189609753963289954470347479964572214491619003791801093329486668031222998625279895475933651026759269149647130027718438462136468164794080117684383655733083719406752439368623901866164290969045484414816697227286999511385125942089020076790128100942679652801393454181256152232558303565831210962622928860168814809479774756366324925320730001157404302211767793454705149292835560066268778434129804074851766370277520334973708384271392810845193524611087277800372666001221588783002247095485266140625325349451048620245546013139627078049429533588739042845567879312366707765076440469721316191479677641663758411936337522852039919611957490833672198940885419657585011916066152981912773506215714908608027631546101987000768298123127395098792782220392683736424873211086658024212266960603228031450377954991647515789555303488019320901622065024655428048283316351556536912571283571787917624233167599946173783754333452416296360234617251805415692902673741243851014684515606981784722886244337172622755750465051813649233566951997727893871652929521655749736579714785479054811175879108167721019972861730613623993571867131429810615291617961615924598667409804457211579092736379347534441454599605714611290412065488926911156379693878001258914672078260051430530202891905549437094019767604270893400072503073414553465203520693349710223668832824980510386257719263068233209494536106192994465321762406131123901698497743541923510996054245062713830970102168342040923679590550899312310314740994867763089495385249085463434423278994776985245221346602647136750861489760858029221434030433727345496633737879732036832443385144927167711549895422309059682142179621257143349283710690239202265859421112875096983624077034198885778883326052642091591474306518548508204653064747259848125584545323492208402202262767740750296251895792006625749742655971430967203820099336775262329344763424785837250052185912463438897831909536710013256216158205937393865098769786859893960455787208074668454238678725400755348970209398458349516293356516366216864245926465259485575175032562716666776719182029266728881750249123552172304990395336937955353786901986626619977385638957047973918803863806371155808768887787146366602832635883677138490158770195657452926184708257710049165670053835424265505999621944592386102809642523057561574083327788347678715686809275135551683098455039965522178220129184151995870271664158811407621931725745923288572004010810230254371617016702701388375020928510113758480890756059842580793680432057654507340663792787052651796784368548646579473070076702855460472743264002836153425700682121130671546867787343842425406922444275607365665149758858548097955237933552157075026375193508089454154702594718353942385978024195096735613853094487941451563103565562957471039042800443423802154684513435340007912755248993659321720326540121899841401298007676005000489851505358903602610978469007979234514862286397643920995796990046486459140179339936242426093111927869124594615815523496029242776454181682084336772800274152811411300902600969477198523057908126550648963313337799128876215874983196178713912614074625382119776314287695925585208329843832445716959163466724746953762781777999786618542138473063649738739095590131282867610937046430829891191022001378431045820525418217749296692217372892219054319048170534270790099823042830690071644580860319562454877900579061327357614048517479302328403474125402669514706377535824754529543012773751388187994392041572213034073154912606162038351705162146405592138384057756502482199695162423540392148607799575201361783321563185825833383443407959758581594425239452121206608381874984289398579546964396732788902366635293207984903567755677367610360163235274387505556366171942329010300821532028291721979731808116626896001411635848411274381685916302371592261454202309968183642814962290170731761395993657292505494602360847424295330790508312314564340583932690833813129577326929092212222731607016464189368826554349871541595745897640991407505881248689555444953484078901498965839414150430258720202810561308332361320668664409022039357855176406299286297615933101004857184759616864151079191871796586415979944629853540113634295225847392479673284272381075858263634223154439374974680477892298271323201120787515773585591818912568443785547004411073672980805486605176055307860166944348468460343892058904910558936294459151016910487463396729168409064869218461867165478994951525580799171610332069316923186638457929189523949652627167792088332340095059602003531861775881470798577815323637320167812188891946730246222384005198388328551748852980669650781237380957153363305675363305782772825324322937436172821824418742840378489301923905789404805143336554606557589033908894039741644514403905367304116460297088921580269805239309657110165667145158720698269372323488104411252720030181163450082922678791208579918844034556678146654940545553037303092620776100796296109311043667421743199884092846142815394947164976172685573641452189177632283590887168437379116367250038725434049434101421586708654359123317431922062062312483703578303813161844346776165072385261997559734706617710423721655931329239640721826202712410217082821005939144574982700211820817164883465372049548029777057882312696341702636540510510156154218065415284543448192567513517463812515474326318046982936721162678521256115151646891178647076566553018416099130175561303301132827764605907940260016064507094910577500773584320029234065243815552524446032267972730658590622840958196189776006600913419170394717296339315457528631816512202193037951341270765155673253813154379821490040118078541734294208294261368941257153738405127234221602590142911059222153732251692563548025902321745623914237409104873180232542296046043618561634923713410707726286845775017517819204527542631179768411868335389663339974845963791425676320494704662656930594983009251401853041312117269671635966744304648006041626237324311820885247347108129220032906554371979043598896344315762800810732410698285721088727800421532369495142568671721085265056922999719012467211759636798919092555691048341102445288333958558054072837207512094414753389573549413541142769184061039487636188438199768990523398018700831283030984207071140823124930377015010756915152571542958666254948035087447785554140351317356387389846477341913353132229408472269452387880238308702294776625678364809625144626434427425252253141083431074199492129390956301725782868806388098770759327932521346518204858007040298089052031893287768097391562500796415885237440668723220688097154974043162348962237816709983716139892061177383707005509709184889836257809533503682101308813504749176560487531603318785388871786419240669575751855832712319847976745940147780920533250700125918169238413555065719036668933608588957525775202525404836389364564945067894619207982603007959784080477893320442984134707539307256501375173479720090621037764181170698457757737295605199883395403226047659084425766173081800467083219449857066464011478720564452784906246978765612780322986553064052304398572949111905032040735571304868170542803635638598483416571179280210192742911099320678176645765227797290514116046389002856356012103308040860948455395367847256773470248731093207422565544441956421915893387861456846556108966668376802444157632002847459126382153814674167412415642731788931725283691206352312061330324238656178846643086721818151183495928892448089078515082186121036018381913159694268233316132403903124681395675878816780121157263508338050974420715374972596825431670787501783460621747881175312476391226313602643619571925553447822665225536711855080489610347691680942951943460802724009022321280053054243736232866237865549208282092409672752010619811596010791393047490465298035963297205348112825981286717712571894200134538103287718914990260841680625150377815721426479459115404174170444760629337964269719437884607626808152746590324550027622004149727841380684746009873403743746215536687366504235779468030411845466902209300518428015237585113895270586084441896371145932718599588690570392902499603971704196328503732908656839060047145001324960953732768991281135516739936024399035579747589431318107143642199479269936176304582768943911111270027761215256854593320546767899881121442459280890031942267058759276931188720667905815909553728525210916069819590521941566713415807080570172000994573266968941721130521612489107364738458375795440157112174632350821457323056248974513978033130495140081685061548673683495403286189857826755042342631579108638582404643287311267605007119162939869810203734836446455625187603936645778951432850215699844438889279283073694190407581718200013178791296424043068936619179238904237804479865657408577076415684113738705423723629410811701533946968947750376121960345726254656196762793759375021201094418795935732278963420995236420305780665466184021664913498010707821892607804679087808495104111735531131611844690541218296772772927752737892075265922353843415395041183270696291621172247601889253380246818979740036130484904455811345577485168719152193407752574823863024413358661602483398058664752377554142334932364512638873561214328146876412982254311480501939552318317355650853456020789469837250088811593125934986685426769145767417173564690031000711937368231135791962710842603153322742866861917385571395084256129523922027452450563102947745443776524958800780469402914741641900046694784528266698946574746705662975685982237107085150448029013972973723754327137110331089791677632897162643682822834409808440610079458834336560753243975145946858647247145741995772700192281391871947249260228266098842952012049397602651928920243254207924669500940584693200903017932986288800415516934186265026658758429294176328293883188484734676987395758916576418677934801869683571749407144869356790430950254688657372206040662971910550104971363676045418388833056438464627243459713462401454626623951260061432956454199391418270456031780288418676103917300491032581599380842223594131673046112515761537886822337978273497332966157459678979166831193919419698086401515826813027329169230814562859265409078289139075543585788586534908036256101965074547284633372649919971913320739887400592669454613327340858569743830110713237625095401709062281784339770972129076391104596271926493605714519264799781439371873917044769595429220692829126245630586741274819939047332073220876322236183524433620880454957535341984903572613711666679705395014673568804680660439935856885175259706397526465482423763902063758345007470751547892007819379556452211064811833194632907601184419656417289511370591605849928162244277356827617600743383858289123293944801971608879200991992341100729323493712438649024375068191559719532525170004005970074482631044098012548814084558058949449394748314538992591864087041270350912463197805840876351356928593354920574897375261277798529705271750387676306389098322583056106724790138142616492632153585940108776303927753811113368616400215071744849426024233634289401006516878446535086038270862012191452442134347464859863086598352600929361389435011336493330820560561560877019299367408765221423698922453496632002749258977733540841609476425055566684334001786227662963968118598166120618735443705555170596637176008567664878552041127984861594390302940328316798824385637071644801199729750569888395836865104899900284973307203026193341758912979221046140431985700361594008309611757007607654833496715176482382680092068955520245986278595597067256139996411541618392949286928262955511998888293544503334913743543694778332222459426178767779320028359756859718538066919391728110080729753609468621567278821936234502986100518936534320265067413400530663079421173572837265351515160330560797841262111597348274933213867067050780709271393012399407895006158424436804680471876228440516149381859214827075200576753830341082165628386385474957416140433001302116652419658634173717779712146832715349835338194669538232419637019612305857847996042950140975735944576723075436437273960115472870649417272320525808894753694236086372088333716188993216229719856276791425266897201211842303736951944983926247782737337920977000853365686189721742270196039834504959820470568807625353570797343655240096110633970799651385122360023567282333381387301626865436247773122663772342075421439214395949851831291990247551770703004229187179189539076047946677655566191419186471326105169075177393366943581713713036791813224744327462338906100861238769385779508359673811577139598787051464378197969669425524181530061404527474112561579880161523747009965456921573371764780680592626956009971897749892061510528666586126993116742954285686183296576263638767174973920196256054986971390310940703961411482337589554233206768219292694611909990363298985115249704244125014761647787207583823155814828226324068653315634653733715105191245277650197713657218123980761171800947253852363951987200820552991296665967983322465381688640773312075368040151218492023376188237798667974985297235923617751712864315555374265920001625930123809727056689320087262820196007369781108441978271412436969929980478464408176350261583633034386497415111323235654392301905067730967198364408523651254235100329298236402193282417267743117522427450220106416658221396732606817410551236825924973368561760061068784545746914638179548199677350947671610690982840666313483709034822888889433731222031726997924712093027037509974150783619143677596124092988495085453371581444769252561471065418153611848247297385458871818021409221672823365081622415087308169745806025770090651766409688366692431871423649444370995934593548559645977137807583620510867725406811586824435161804387835574636306353041977600597723834856091796926555184483085636949236692166801308345211695126390800245596030441433325990745889038830406235134888818847612122708416459471117738965645376130871678394029628142759094624699089196677731490080224258345794945606569650660506936633507020749539385222135553807528508361987167371189377738817686204137062879763299997169945217533654281974593968173840971324819971830340484664564921409710350826342137666423561003552605317628704916477182875886148830184931535089274011394790883762942905674843138327402663875738603982612548273342348762905999986136808912470109754894953177180641447991036613348026070622624396264733203347262977574077955286599776551019052035473499113798063249370016169542975649588425138570888499796004804616105971879872291214287201482193552842827492364725405473268937622052292169145939448288707670612654773646777258550218937681341748853319936885175493541057685135196500907224641905014929779232993505904950516617934714535756332830947440626281477516915188009997041572110499188274796863264765204580371589708440369204387505244658745541780231203308417209417685673364270161439501234273755853472997974498388717096233715588249455064961008819922898464399419343189603304321181543414526380662986591095737234971825389847173789406600286026308157932447699294447304082251245117087675546837752387519647792112524527532140788682206895969732552151434060106885453807541886253094200268758704747096919552765432646777067606223354522760676539942564679848406015066497241039495247917581858023512846976783237480083583494315523463725871713905483365150777072140872842453045887939498729311508732375947450702091496279981321250995489622841067581062793786156641051779749856752549937868653677313237819523470139274036245200191182903246595271732939235507455114223288959375096862385881521666682793959473941547712684688977497742014986277127951328553379529609208434525872629107324058812857644326236189403290096830199233390472982755229753235427075768186184365926112007252087947568514421228613345668532093337483701947736646049416517013123754966218822596978581415860771117967973522959501316892879723579160831686776940660276769908261398434963216166675769345593408731471563521800144767562322744539270098661202192963768651529127333913873963906611531684634087844630172246982349632536737275892334153347979086956119634848037906573109089990518927693748152875879218876903293953520354310894211494652031431181052502340500530056352101878686897379563478227043369895573624987309919328864514072173333770853607880169521944720482150584702788144015760287942527007001020488278884611787418021376884874740486594114006597737855985484441182017461475365026144097274383140571522719949593239723499445591724456295160225917443444119887453025744017837478232338796163277613626154436462462137003692323213673593424972956775141418384102055719448343005527588116291790600718222734299427643990827220162579536945904402745202311511585190753250021808411160872682078581107444414172678378446796701390777044313045152914450707812419890266154556963519225458599903949222437639943933771587008600450472489971169647258210175861080452760310010603150877456976045233030402578273825502020149488828504755833217289078124171712983325241959655368997169322689505775582682783750169589293431815125845332854555690061653506634795148852348495723144636988978296655829824476058894378217212735669201864321403068086446542048598218557340027764923521868194462358547187381197900923859257090341614011427696738213556591984447470139969414934578099586358644234758266874426734291586512092257184149161485157690659390127128586208745821454825862940817834462704554302848559703221862730510961781987840861717115496752573879801497464685486427210377889203120842139307373879407537017628176178565641573108313247724922605493087664971822645850424902339265523014492865505944727558648147226110125396957004685186434155957899136797756613162094081804382787063059854323605327138378926310027248704296421238534272420152219828661361502441916572895224789836173905125456946251760318628069693629490452123561231855423954220560092658077600843869165494530056111441222410047268271071110813089235388344244528455178605930597699330785458314592247116454828636665836697889615468119996872983241127376662756447616665642740110700574642640689248184437049400830848414171544686186716529899905825355922844675624725976034054282815619961626770499462606755918483374382627049361630694449370689523160508463056754674092303860969798260596130807508604836817992782273767922087308173196072260159905190562332254731491720806323599033448050352980366906524260466938648431364008791259228565812904978287701008470448190612046626547893946220309736341731132111286403399975296846906448214968083100063505915736809393460632831343570812322702225977336196569905508881132426630837274738257271437745229658605956386750000584528503533239756133694979064153044751932009551124975442227624021009175841571638262184845276099981762102988562378715741495535051005563798025299452220592302071149672928202872146693787166155065288164004926941759531081797260835741046521847373005873363634049218411807805438892791447491965073295511244056345735093419831555282855743267230911161890742175965432302726666791003115759584005814588079233119699501647866892601990837532146281910965957794626047934159446086327222487005092156786546128797054705268635152388375391125669656629565116975943311814090168330724355503761772197990861964178200744102471223888751600268267097694768405483529112646807983581397860145112884990610792588810430922280861709815626837277688071705079795152293919365697942959662840037180062248373194017975840207950131737077886261299695035499635685144974467673399892573007472010575212699019688895111970577156257214221147635839360362444709534408778819635630134342377490137048476273696348533461347706449588799169692012615677506491880570866010821447826872408540960873699554963688358546974525159896055780420326578880022718548413923881928077766675591337560779798240559190657414056451776492267146610560692765701058881693742433150047482265758720547612917562668616980471969146663606571124114347607227264887084606929095542358671659450338568107016414149001451512610362467890582824547768500881498604446769406840456735789618784668561654728212029181708777902479720956467185455090942760771995592753512021891576432310445042507625871453854025334630247852483159087783649638894880371688098874981480394332861284942681348240554783829895240192329128591256448809753349139277818076791959787853465692977677407166363499442609825787397014109225150428572751343581691102125889343242668333772819684911165265490171755126027635654066719324516390903900304071878050277872042949559215810599152479136972547263072612902654053212211640842322833756128465047356891287741936881027942289254702224363028341808955806771771058674228748704675230958407593765098813973344089527354675947229920135720687501879412942136296809191328543684016526480495093968145558801373121180834731022878834653627315522612386982454825515396248403144322126326323932711619611374789771403225731087414722831446543055826613388182275854511372786403071746930863717795200573966333316385784056469195619856816505768626062056384162525877342164966530258772942898868804102729267387741360048302623341961891447155391732265967817447640417019010404575999793452057186768410696018409934307670905576148644912046844497674073454471753099390004226489436631154509812925118723870093374165866887193748828576354805265440482692079409932879360075743111432129139068052603536310011261301085675246797552798427502672947836535365096491351748839530593729688937556934710974748019287937949553326439702692718387672468032641268076817546808493558289797470842244397248487497925180002725731081822825221399746485293784115873122432688648888168708807302327058556081600339989192280338089053946141067178458558757340305187485874873687967214779541554325418853475214929438286836864481401219603260133760795486804398835346752143281466477277831889832370209239747982194851386250069129585109805968345040652550139011875285295666809537462915077778091976093061806362172374461294130462357300902837225983831490727610961227250648519356439192031756860148812491812492307635020534231097401808492164854379076654294673878838041708194742821522838533570653907335304834029883917601034911640976147545290281725719412272271783256751204106367102511333343846613109548735651754167405567778755684219667583127164052289883874125474800613202633213674186470799145797712980734776104575731977401625260459434337569432206271388675480955432367607536224695142451575925584808517019479726151903380529977977413096987990915701348877354092386657861080026101134063677005297567073295115277033807967539917433039974029997259135400436689662150362777441955590528326164403115680548837818945194298311558263181118667012932950978186960752712975367238230255708396782911989515603827859656065920840884884971781338364361141289589284288867536424461761127083881209630080247109659122923519173537162181395579242986782830711421007580186027293671397955585491274617820515973654856354372338954599647078551913055973220812762360699763667381724882835437896912766630240258088353935933357791504485347019838107171200815090569502699876555702973295256757437637356276961078238395687892465981562493500629858563227955280458981245553714786129854966955229777789721662336876868340834620898062106868059428649207885309035514436894711717635459894425252945648011752155623318106662016632055302492304820360751176297179102848105520141852937588554318894170762145795137162668986493094676090263907534388646251501183712254820785704502150710732753098214944107032142995739145530229435920204265992465334818984537110064649341727825159237334703501153675589373864403409299044265598321126234092915058916934291558651335958283360612009559308813724880965043536983799353263702218846921742079800101382910573728137762457958153518361960367584735262669354651923848763838947062479623375932105579942336441443734778758626743240375427870227208949998604431833332791497092382364822278721352650245642554471816704713994736463006392003268976100521130685562080905373721477014061631731851397859611927423868288431530460653857103251550691113036083148185332502072547129996772942789988670302513046445042408170735885091752941563508539769130615546064282906960813477632454763413946071013012030574680132615651023823155326203461084372328801708592796900021207230061522865129623699178279211181986706527024891410031771371515883839275809702648170997078893188116281522542434635039165931819771361708848912321067444916954342287373338900885886349294342896526007048715571765962551115738761173615064478189749737168533008544641801535556336589569355275023504777962009252059618113521106995607992539593096919061495382070199824713948512946883764243274548944134384418744471053890167234430443349447015985868897506858981159049738627265111929322907004403675042612361650701630885255217676356708456891775970688993739953385013644096313171088322943154042233253438710340610546335942672181924855813551158856999074904205398210832774948975749821933443273309202594741528353549197641294622675375705380502592528104494412684184626370650357512618204604637453053847890748450481209575941117495402130872021503360052883774696768504957391083104509342688303056644194838316646083000612073711809610424721820078451145952523294902647664172813922895298095624530755916173448398994273650026567565447311576682154730079002604000049231716116177080067909705088880787942152660021635395214129169583543733092799873680321583011868057715762322510325274839468128220634766079742429562455744984945068901173255757899341089038884481343802338519551237078678035701068386658963638309423009836724092050833252213416116252079952887748440417967855633936126979526087636610365733520402454167382979861091862995706822815165980473345123709235195416811151400539210164690980927523619029963437362137384816675656468194255308591146631333300576374932120907914917313811485594896933255945362427603649354438749109830712638556173286198094404686364321327178774756365347285675618106055854212348070405893923263274673918105481757079363382943869317269151466819387272956303935822966984986506542804772180768768225689635755318043258496985180699657429913169151956727752486031346581104725795200927432383947866006691726492077145783093071471013208431084165326965437614716687611629520734950507479304232086939691825762813583553630622041965339806583665689029253777369436859958952715836421136135016848888103064453657345293086299960581409188641482409617837524930690937638920014037673147072695562525643102694069132750787664088099853667780212157747481391198363502324036386835459755128743701111887522486920095388484621207594712615329440311568739410515636086420093477169936104102909578784705732936155562287418931994375750275759091392725330318626088228260351193400242090662785597498472294384643886130233857860515599132445230124472232826765446318806493909758121817971393892242725847264748333998499187721122026355058781941861625255389309847610848214960016735518872784174115639037220485967025858834356808916971779954207306027573778015802895379202406751635539065048510477487446851465362252157143167013001164680404564828112045278648302276458094996066458197328665813987138781907235004431576133155887872487160188647956109166322633907292559731578705647571922868080839461914047656616073708142075294117440969539704427097214922604288129091334190825071307152370450321373847092432699452904934268490922209788248192579361350942450040805692662815802415072726345348578784578782443444965916137977731929240603630522416185581678398152070561391853752421842638581206129239788428817880267029106660683883541185352213799092518960914356869330040247784115057681513425497094871835473738344156869295993379393444620520103490011696827121240898814581181139075721551675181843605856397754542160037175971036257275167079631628967820803385748139231494774632410765126335015807558547208820637075483254659385567169153696519750123731029212758118266549088487119431995326174274642862953226538373560840806066385557336237448339411977881585399667641660782694656535586478266894377568351385661385886246873503225005134356856729613166785177657616247769956452218162877994975762036631847681190403672361448799402724557514642063036699960774236508186107078360043828850202291327656992398145048950085716903715179593947250697998801585109835415761108749801288827607318043573600143448588305800957250502565121270615428278556163887581691355803497670213880393681223309496993162340997127978801345135389523945205065543132946759932533880035329725158183266490996236388907435823490496241241382793983002365919173942148281021257064670377282690846662765951468402470772388126896944025723021987892190315011425135893729302736231817971371511352222267380501384674019199492666566700987872888334596169425680801224202438299130203896812821417106463010929412585984999415269677318706766735168926368356986446780862590718169453135754819218376265534669746413321094390328599324219152734585359417142814737514374921020019671162961039061611451785870643196253839076434072479234864298944033797810956040376682939312061338454249512282324835573912318925137572405808514031057668472514074244592682760957022347961007088346924723831312926530546699010369106081969122884624818799938736321284202940280322540782542642539778298845705865601907280397063884781357428133083115528972181756453760333383090344154719792267973566356667570519074143543877289672163397424482893064361128978410351924347958410574212053022505489442541088970165296817307250213385109732545412966467703048397844159929118898256815286892332009347312066138421294474010796504128017231754583103219300863062369489440469369561406241630761367915919166045279508632739489988976009755568884898082440445227647817014690159984069004074668766981842926611015702377436921565457659711616951970064441562397935593716081842587933507717736791209384692711800081473934080089554170440592604554072627073545565546800925248583437592229363825810550710561298434431672994562554173222549923751886264448796598995405912600438347809262762182727073231974754171693135289112577562578331570803826488069478843013526578855239133181645809530057307685890496890320920175042304223295944129271004233889869349302480025675003994205723207932326215388046440445658564855046085259795595401063600751943858068346511610838820702206592166482580709372350717545813431119303543979708278761589621922879855777728354780825184766170301506564208288400488225173209315656592004435258476036541441436276898465422024921174224578484397032729152020107609969241160054256189705896600787411617940079882067077343049080999562317403015369330582899456576317720354312629443861803554472833049378033734503906021193321120511243927086756998066918027522790354752296259165606980233674266467658656670285790424514554147323395025265693978394201091559846376132085908188249323432252363782045080529593722940376242251197991169581211198974192652711709773460124529124492223350067054891343676623821596211626011715513004813354225735366737001235336740022354208475000638161507087315132017356787615072437153604688736890563633418625680519872529461073793311004571153985932056021492147259883637193378526867373065556962230136857968672361845374157767040030011912744579276899288881099697599431614288824725872461613352659334192744076585263723783904717476013873026435285840228766581641424605446414001958643733905280706783549497317386964029936784355287012165827250244035924468918213591735874297699117587198406894548034049282359487465734453318442349620885713805232375374057713980768372576969275780105455354757385253053088503015215597546003220817850951150431240973345500262270226240583874283760457169293288446207574980295232590760576161173800532341111569676832688674634725890458428110071772394141790855189592749885191359328129967074246220695635653747058602488252660830864874418195063547046799055198654591318964261544807756532665523858457497520824744338313200752749829613745319666338762625938685795921277357980543221022581694136816996358266044269255948106302337491658935910102218198052828007607958527776787299951178096774568732543451133037973154686943222243549885457692115349241702601346346914196659110244311535878829703814318452511010452049064104793393249424166354834683088306662464468261595673914935969277660936989669223940030577862439596253133626824854429105992736416670473463214263993802686348546602179059410106838455570102809323042970951326770533857154091223113078253927368360031655120026710053886653706458602040708086224503497483150034110045716034094776602124862373066491937886259455135244863631228179842769341000134173203886345491056937387282995533921109262072371380490868869834050467423627871203067763687411950342441205344328053706113255934916701570883899557014167007384424546449714894382010563380477571446299284641427741401419672504133984231736082464712372109821578207543302984580973641923638808306811625080907935568797299456283139502432697386611059307789838666785755397955253548986143195564986619475631555567375270413384575959436659908663786728086833464959046529188628338280146630374841546949656562653344605159856624128971057820246411408686357103117373542091786971703890229001381527421822390713576486517329525411667056304775515693830832456964922487459587993188347601412004408270535284044312938750140055821631899129067335902569659897041657645021786737407210647688202693830277190838948477630632897294703431228360748024920089805152981154770196591070268531604801690823987799745466078883389632677899211819991633320410324155742214221678896817073710879898724824710491986057810691111952299678918825104388813581778575382600691321222674348988748147715145713684939869084586709109422085382779875906114395558181480681731988774301659419065399305222783515205206168863880955134578289541125255799083346707354798487914874240627481592984435338833486460889453614609758642506545139217920651823900314728236845695345576711060106230718717155259124218087081774637190607962124514292810405198808098740321460391444359366528288596568745116406583113324541774928686415981314137852315682904083840883554428922005982067695667739878498618758029170022605430087291163620722911338640965612839461349471191743865580513415938946929519748373884393459104437727170909414062472239586504135531288943129925966268406330385725888196199586607642992641083324104190844301693324764846422724869528850630481168580909924699729475457642690565090001023393341822384002302639887759537000667292832192793746736070144059689568506528690651942361638440360631353123657915680506861353137638432134884791960965405419804598667992053765340876577610500875610598227838595635058509369958712891975202504241932506263942022509939455375263422002916165201204806798793316247411549657135873053659772911736409413927010544291537550107604731352507949725741698883413459184529637577594633487256846017745738278593954388940647337377305490987591479764793531755819883126391545461553531375957811223088289085105357849863644523750070796474742753866324037934826904859935201052588352822640676279920031151955824117881454836318422032202585843199398289307113946731581209046460810654823146858553534678706153611280000919248321622215469707041112445316797829212602993750885002622758717914954560944489292743961892922409216412450720062547813380686081370308836036590518256179059631493493632228328319176373587809200674536150796524288826853041838396996006918432825156715695649002557374272585081487570017184555897938995076569152725445474616850469611882595775244352762424933203476823404006694663287310245067252080676589150739579849035499721907809712194628934919889215818677009063037834027266179598838691129825968295193896886600981881542231081277827583554688043262200409541498201976608523976603740629772572850885991798253554922905906152042016837732615705751692379625690165097589215491912929509931072785496261743924848395669199776733053923296213098146187859426494644788546027152059939294405579603363249383610567540372254898560256324781836259743090631415565499792487121597196186824350590344532940494110014274452841840565650206692858584495359524976335832247788445362816072228245423453862541091393410703225034779305873394303049300356590576587010519479706452149289444029209872647523045330279762129297950189802834539491874655147252123965467413761367494709327080721585352656076114067423560054421958499147657980213841289245659083836841636757062652852540718783841290803789486847037281311057167192527028918770349743547346724463663489062791738789362975190716907396991708976508683891586256046905952326524452413055204787873417350867770286527973946383606704243586218705769056058318446924140584094637853287050969423074213499013983605881977073256631445740756706623525689876811557342673789800149090256672870219076278429995278392195028464051136490368953420136300800660245084889438345269343693005457968491876634186258737936621153867240847093618658160070714229062435392977684631985298572254988846438862303012984270561029060677325090080404847247245898815549347740766506472422823038533761187388791692030386709821351498658130765389163280942863611856820517308280548544003895007202858117588704209376657354502019444158772046387868758332948078087584470839276507700543040157540930679064400831117432968490502569590077930997471554199647625457492051718668372735366704101103005059042398309389109196514005281987388366622638458287577797683134099504698742998378271194646026703440773412346024062343093371917886696989307418795153699767443794694435626112454529302946139922951746088967903536157903566156609243915880687970117085791718868358700477019046665095643572029483073338989143774245091005997961036118564365072443316483680029621170607712832979288907153704189727954237549876957209689714784326402116514892038287482174188037749052081112019796436607308815774723970019865796801384877338768588137723004529333531168206822462418649177420579701839825774994803090523073799382834338626302146900242576593495989725485828319694210468437953669490053695910995393918734353876600048617501059782433002998123020104738876301375351418436602996940996383688454631432463770442995241289646555000135712417426300212998213888723048587767300256505967714905341442292324855929599990598526149006346172932978972056735120711175881997044184428777183154466519218188577000825093570490016027525011052552531427216816922009560710162216996541159657131954847750194995450989966557470934959675845031017914627180066183523728213713806245271748862090691773820776930124786192533927330006305072009857618459489094114030013647921829991866083152523021777771347752820487849077662347050236849172201034658170827169773097529617312307698554599162478218587954703690628415912046803222053881193547230386071439153337328191041184917002214688942487457579966003554191814794463425242066503682429534050784901411146040210731123907104884676356779851846965730374267493938065340459321430453050569576515923517947841029603802272864982168024133771043777712308562381807708543001338226556993304424559610391557992531589487063333196928938097539952424154997635936708850839578926770794968113151899174975715817272378307188352564936880830175662572512654291558036035103333714796981279939250619922718566284074200136461696835423615108872916344331270044465093789011341237268977630114426686380962137829603576241373446219719555387247159024780276812175196985533698196634001820958148177447388519374594109261539596308268344601533094809676423523048453799318504281185247047363232904477807434897802559771428266577405258286624850730704221405232146269852398525095829564455953376692784098053919916299123843946961452815905116309776210790701453565105921675775382088881967364727867944793736590986051921663900061437315727803013323687756621895503997860993633691317509220969839829819479800443661617990390062648975281313374751286012111722732916475307678576624170241188228536239738498072417569732170756517129795857138577287415270192635567818758450438314868640987968397723211072119015414618738115237241559029305596117584429133913015606850210047200551057871345108269602378866875277680471022344268528966048828918143736892756869570264534140676664899203264301151428236372701872333311309691479714780879051724773241778426113876170854030300229268262198420257513920305668029061645201284073232106112451531684328770352587228645118764604473390479130022930433978676583085483074758634650356152804512095623504672302959887931673703154617332654714391219337775481863204547599171984279434797504084214614429612512951759585928904418432702045299090932300827570044445118274830489567244115979411166398186318439249847781464206315550499269234050234564512837286644169847328862404714029680217210524743505069491548801687168371785328079855878408872484034392030485117209323729863801393825419539526226022231334725896392433756484771577845779286357407971299969715821665601560988109102294197662863087961199304218261001396605811456173492731481549898797643250754947003651793183285170201130375028265974376523182335219699953579146487077264057306809378167778077084964028694137330416789793771596544927765313940800685099047333795721703891153498090048920589151715386397491929847914446600374567404222973959517948694451253945655251557188240851411601664550168351103078901760262048562490205302193872488368690303733111451669324860016690025759130849672747690949665252184601796834985389049545572628417426552908957046501932611928364581770913798447599630605669272073982418005890527691174610890031658638734575499456382458264811562208239549099387597566746976549782898774410120144005597575014730962280087897153652055340569211022457958570802599685635171608464174514338282106381580274883421415049220435825862014695323437291724134566682204583759022851983668743312870993232937249655084031761490220201987176400002085478871877715069817926720098776767435697638885304892216652440125884995906388969564469767365852055059577773258740663269980222995839918530725118417729545791007230939234962845952704125175102402637054389660784607155398560409111344428667312386613229106618236196783368691475735987367240543128495652352862109578636299987681241767299188967066143164584917814908001730672104491406095493725650000862417654540191858467500982179755980632442103589372127026348297680907778295084681956460200379343479409894685593555065090552236316605350028883710820394550194357173817251140327857533401310534039488469543271817200369445529240574852520927078321586575643694136595407727243859806367740554384614398961128579839636455428842699370253709808506554796925178484994953132849338220949586725119027683292366464930867575307264813582535936717487376876893742771217386497827254085758679981738954071388232017577048763469543821651902863909395805329152594574932664704139172235375670628197161904518351138777602503177368832598737079711182232405993349057144342012058496219853503964847174544328750284452394775506862793399446389181235968536396936363695166654409459515436106491389996021153243075122396687655119945408634933541789169532017551147478856257303459589875291345130431234946084690336233119925715577240334851410934718466507704461426484481805603634194597897241993028991925995287710682661521328304642683790638953313898551406722042179136152655154375838138538545725688687664161060134615124097426290149668784782768191355787697542470800433073889668025663353730529683993766766642599886994356692425278735508785215139259511735766547863946942491547683902891350207238623949983565966286379874777735637463775216551198219263589874990014244631737668687488846557811062379916826832551109096123243826290843444688047707892411971145851038457971774565529690964122799043730932266260760291733157468478614776725064631408161681308376244615236126542322506877524872968766441936707260596775495189754682499971959495258964004696639027359075033892421726438103823973862153943059459920340403120410205971145873539689640117489823651832575253257565120494894987609796740084975453459501851099209022501205440238471771342836846390891042591667590676561264879150585103943836591174974311770097828713323200786958976275170097269630168898658358760247790932214687255182892091122146191634342970729471786951720060297278438727081548061969872204970335817742110857101620862893669357921877453511448779863233738583497333170196765603767037504188472639528026233361050049098367748722970257812023221173257834387178707608162939736999416567045219165192259401903660527424711448138266980551080387262110013452053946006457516109373368663604780734449055794656338253328693175339296701854151919585329556084507332775107383587494115500507279767107956595390276520097918634534001256980266417451005385507709110188675668438798524464023731704174390735394036915649041324228990183040973766445417886116243426226874130596231394335896114559535059284539249653396743315986106427180452521973969413371619884098933522391227147819653706796108516542691699513410385298183731327512144582746255904349669567990333511155876622111624507676792728586205743251079031100987578062823639394674077291289733161810413782581106435348793694715878203839758432860367908444359441982438978448109283137644032004714482764645738126854419237444921720434821135251759725339942841589622726933665440167849514281403427025177145199237202868907842811962549234040359127601777073988781181539904255780899937442501321833739041058590441942140156535420338595849429689170858477629970529206432828286289070730466491098874067018248763830915362259532037074266708841554974232384749072404225000684378877371281377336134524597697615640846171215832169445505775120622832494435290821944248059493821492765915953265430679039459590361192763943147987140509595279397940366213586019481577432219888329357639586093872108621862175117473558531833944440755016733754964598230651796148194788201718889931122759414750869481657977390082796090710590031514588913779457994683534007262645922781772842319371824649141947724384799632511662976540462886734164588718917599112286098435945918832667963452100995573716347528438313857349296028035055070341350816982364468985684429396766267805294991269705006483922876426958769117615061284628163235090420280412126968851124134696300816832978987510817445898216994965823979502633323650392865949358140024205081218460466403710661664129695234818239978846202785394838635613696360001410765075653003020364014484994318377953380554716860714764417652244826322413024599901243379389304739656282752858046617714230980065066675342091020113362312390607783381657144348479705424777500305919127065745880663863546980803083402375343739059215508697083816710293130950366331355547012607462337479006211969183476226414524745282809900068019933515087466663632201228211273913790135371145405190701220606864163520539265536422569750146408165698794534633140281940827600500302605672891325706295226017538282019520323171858638099234194309922560286165557897900773868223781915751580167837460815408599411871346210264998035340486388385901946594496712461389308057054612632659656104274920189828916936692201357296025374059649906513624476256271748047216084524243273412535696401280094837109810575171363512751211616763427762182582525924161261785090592192525243955146101878696686275360681617343201845966264183056207406987336423426797920654582014036122556787562141021682511165896372530209173319134783141278271310088552880882685087848069647663730025724527833799788011560320628618991484220270822913300251141739246845822133088179591595393856877029964305197482961761605483560968839174830940565368421438569066557306674497218919858978310033055856674401715027609459150901578961987726055686854039108478053217093781211089006728894671599566685957690749853479613007298862972562869857424738746988229011343729455967561369168284002308877466621219657190101988498595172094324686442255941078148624922356334387619988403877848427194804852584079327642526365500247393904986619653142488003322702689483254042709056877216636828894117866666220151293998914905737646299229758966456304593926631300827272160576713924058398551315924478255229385088164115563214988233105668916385668439455323963911589661987976663816064296312867632126472186796016094713175564665705360273633370039453680871163102483920634549300207281810992093745846587088547843981425547740906752353991469371059738898961826956963241437219954081047421630810737677041416646626583148923430452513586553439351396572564451036560610766092088880958965245038250521370700667698507654338767177764749033577984801562759778533641127781943126540103293736980650535539537621327297573133799570927897940528699972560513563978268151042075912997101330950565132036642283732495222411859885762888229438776968482021205246395347447256911828682726293138105161000215607233005669377928768753850818812244700845084647682877580317184136516772624594895752500096983573816105417911521542790605061177257610677578861131745129806152927584202743457423592666854094120874559866165693214233501790836351159014342124966731071077470361239911228500780531293493318492975741092522055899212041746367842033092159093294675612928139118726432585033863100737308270966574871366031064641217989931046807093836676455315282291371343352133159894948375742435751475145263646842782897911058546135720443670269706024938388515342414564053469993253296807516017765776626513735236113699721561237280310049662857105812615077683560025299568249259830114484055993679512045060812737426205737235042595374567221127409327263179602377224704528787183770122363588175518977257267105287832520934810804666515760493678231523700588112618907210701489822919793344425957801279337344993880192876338859440760032406517369331233979484576337768129480644620828980605605918236507917200035949103304066493876703901735235841688263462351013892869075366156726429360411955126807072335857319387991064482210161712501656606986791260173343731783928266328117136141740871239049531066564723131223818433684219165982185478275749961082378712373314574633888692428027024683947558735627146791290358091862898442339638781390958841781222838115967652083868920791731192185322097060276496834428396513546708033094154636361365740628323634701910889306336469138196146864402180335352171143729875994652554035671509120586846794606344802101350238780188116300557197313649885806432158976979757845749226511068667247855729264831788601685851973742999463853133892339677521110145018539769613598746550662997050697999992911390961751824190180027207631573102024883662314908991998983046769385898666958501901762914207381614416070568756702027137086385475530840180528224731013451486967126703751014600981220561520521665408469890784123298558814368422975116320276065326513355335520044545162566558696478380660330137905494568925692516236969377158804318979249535794030874584476152845796060238583667277138728308536177424954556205970603068092618572946399591429586230485550968252928626339099612018788692911498145901366523261983521256460194271960297751740033562676798536185220014448965286633370850034549766133122877966456816210329270341953281759267186750265022342324433070824437090559664079120288564007117760722081621747293148996957689049153052525742412962268011137697063952097542030158050844770021825335824633443158248202139530260006899066703192113329916593299698540273442156123004741922536461533988448177294929566291240304820982713078213418472372294083192761471535757921157330288558430957929579332896665443008428334578913154958293698719790561804982159001349555918342374061740803660107696550046044274045622404978656245653471739555245589337852878121981162157274358754954372761380246691849604206815648999777359402838046035671952855962364187981403399383697712802261872534505081468209235450697180361393407508152102480873620428985935533417228118557910663133341644755177474118039471631973874638151479169285107935170329440327146044527207198229645670985579571885989841494367987723518522369698495779605102149538525280105702200446373269877433234341343084557548967277041781276688931039031598973966477673866014435057450720118099750697126907539804225102299657881507837532361038397674896083459754533922202319856951876333165258413110051879273368679587204541376350202555649463816291449541318696208142750927056021456219438641255521365817190016322127593559893651360991373776882159302863855978648864423583240129001889473405825903935418746056804001932767329113916256861084444399469112932057396415958382210406762281519673916279785221977369558628658092798906642035079200595121415001566198646679382514567598444908976633067737795464379335097726555443922719716279913333053916641807118718753304361431362000801202476009708770094674113090966576875328690553675894275160736677949459313079998972621329946737703843410517958905865293219221431924269457340455898868383074708237201280069138765590599212576091076898369304601339045376161384488322578912223001856054575481505046050729313610543902669824375218883046283519699282455800808148606764250231642238782353351499636396246316280060188568481866915212979106209900727421799587695261000162941142541182902375595098441138944536175406088549282988779072144253227129582488367481468981504948400811173230103365260644005164439206822406564668042423306299597347083104522766984192030571974174329496309453023034824780580953737591282803113872439960404215549656629299922052977495726526664581966702199254733461964013196147264029767336853844459163026962670964122050274025199678384779925481497143871012679621750232003104393676147187630930243929375643568164866302632019024869373515742550403697095712037103711576244340183091438814673513368381637696132788784948376499034916780546325546486120119079855863929167701609781849502522803088311807490863884437578468233573752127993668916975257282661129326974154323577405152313423145922820778499782495002956221838439852308284323520704456219152025932388697550245092846930424987709767498006195194298517546830791722942849309479765288336105936132105568609882210489788028548942238057920265036380224149321475498504045999522520158115011038223444565202583122474229972014141605096617724857110480240279277943138216087203413791558569849629876973624831963286920085316437452153604818940010209016569699557348309468329654836123296124376236000667009862391529343118949047659411622682304693058099626663230801660737267418777637805732124743980554368946929239004418740934562770541627017265203674958098017620956886686485983484569177987510812125943279847843847058516787049254958925853747410647476837788957698538935838838235818681583782937588782024673821392077351960705317356343663851867889955885540829143295896090441295909335896753937530397022665802661036610354379461178352309015348594066129574617954803553013083138425931017811582594922149594726062360194399712255820984241202436063377212190057886551607044633461702445863093803836801763743408021166242550028368697282841753279740409745453316461283001400592453573631103327846761026133037425515706135941337404988355818786369658151929438270910017703156176126171220461781599472958400347321179133594771439831175092821375007687891997397251093184181572731167671246211058823706083513325964605241234132045316021698497787556549807035132440777719674066923057047724751269776779603956426711218287227742945039226002560265439968860182059846665594897422535793627917512802051541983062570121201684102703164069958704675700396186226283856443999096860464393777365943514659810522399493491387256753316877093470443243490896734269976342924932038779861762808757184567957337726669674211953659590173372680159542636798728607989188048001845567559621801084890651106028405436088018650457202080172879508372629834295074316386825875561659833596980690884729852450245515707088864717516676823484170857130411309460594498774856311749178131368814203928361831268841789867271312181320148549844320638947389337231889433274848146475170214964942987417524308121516773420521012296750974954730987938739325211822616339799216052948048161315834283863789625323236691241225726988487562683355740656301873682421355527844406510968545337432996070607260260976534848897475478870365338623072467161848547918649165194437969109733528301655879080685880211586228557146863278704485564130601482539221081499865490529476039903084237340566857332310462826898258234292128979794349182459460734222348841160632442364725957465817304814316045876284603996166656760254940984355546530929334973898355772853110913818721938560773826839117345082700360308633349167038856300677291246285836550989026080651225457807265213690392586434233655401009747747015681940733050822050811378457343584401509382304942488523192200047361789959998028802392095939547661099637706610870495968559170664120097095354023273998723836158152562811477598259111512401319233771911512297248552517363874101253884166348706909952069536659663216035824438870246926902266348970964262393162171078866053743722026521480390950611764101004820920234793834999970938941235637673062674334954970661887673582089250234073136662587324810367018285079375407248863716491710129872491676599156974653327154060302820422656166247852818332068928598245870332219728455507214614850156806138002260027391444748158977841772832078719568475275177369056935314620420103225793978235924765367976417969874556660719524316577800145931242576049177865136051772854170360037742731556178784486082282670406478486898042335466145441446629280675645414128826956002307476892349316777740683400472244725843383931532490440034328170834991080770029894393538694716683966230046875001370712553138093616435588412215813398991064581527797055833084069744254496474072372053402056018083020887675491744098290161107562189408183835918275802469483036580069431164279039997420530393356778522518444911037710951317860178407952724374943633029496347697482649538733334978327414625938753815771157801765689247933563545491679970956931847273694667135369665633383950719937405890826337385243475714625295186293793555286378709980583939609411020092760890111688991525180926004495624173688251022338748723227577801475525638288529658653430007013444808886912729780648382106071342885938926624540885874587779378021900036777264548621786573396766312408424837289530084855199262784984307797942517935532113476709688105037730408021837458017545140777262468220839470426313528162286612120110937885501734963314201379964702597574083195964178415412978259087947566920240008175469092315307631336739988573134443862870310800011220896202489029721896123451536546516181366487954039544653698070838942756299872157258378837178386239605536226413560750497858881192052730719854672530741604188432216118382976227322584690746252412688592816218541640529818880640904081845338095708925841895389512110667813185068636229679596797582783272523078044540345491446620025036730319587061484382097439185135477426836702554294236443028647547698942673475082366491446289440399794433395662207640420426892359590996035995500110554067213143849467844497184706837703195188599980031668187577907438676283111680038906463837373732267738932877374416940048082192482636680820393194762878594303889132116726648753935736109462347853558788774857948907858594103218067002451394485887602504900500394279820839385987799285895255953140065608064397665157936966664142528943347757743951794195658698005565552356544757863067671789215595510195705882517277074705292843712209081134511397645070190312803952017480072289696692637121323637135229223670273954784314213348888034660428964573666235556703775758005885413289603990425124767313965579329860879859304084526867287603866096908028132235043815005110879956471219883653568457534993919429521888316259600755933375764320396596464155841990359912885692544419713781078080906201293814899692190651001387297372435319280186942543945380846579190118874526601633399772090459782614976783571549319185531737839823273028731600073751737792612756847383258066946923391746277130080109058896339748343709966188199250697531632874920527785314445020055834206560474037441616793627898599833204073337109226231882656464212281985850557958923750040646617245354668101755040205219237126025058948261371939094890470809778442178473798578803772377690770044399513859327300711352985719052667703885580020019583851529457540585019999272652245940804210753334127548692630234136733925067255623093788548713623561142426746675816181238186001196732466389264249867469002100602605121839163503459091930828246003410311720100250894545747838538727667488787661778588956651000356503964145187800205757246303399558962418197974816325002721949259708207893267031348361994465972107607360351010510253788992178011210607493969457246563356020785993950296614796407232084800240187836565495371168978262640269157607922896839415558918004916491316411838002275218133123381738965090846668350926611693506568268308696096370851854721140441255046798395819515746199372507893526627180483014870510961781701652647495773720042056625607935676223076384981734771384889822712201286817062002023459839633863467747668893452371678439954677032133776253934230071430964016377423461849376928197535307249981083961848099216672140599617483597172975676819724121263142192827960193899341234782482125089389361805937275825603396462152027885775769848992031739225138059754957147070937316772467279112136104847490986634188940542525623046791580851703231048057077459676527263211404641803997518593517146506475288388816331181582238399514864752749910657558168298441336391802935203691631940263102029182280400978877904392970259438971424646969103424734178332101888765867557913754736713355505177279489787287499622218354078650176803788602265716469189880186530451277838722513423186019808263049392784758864407676227173549460439053741154914522130970613372650125547736550011879623067780492141142107935167122546912915901960214687840667062239741986222214784898312739619326971147663023096327234001176769625430649177666840603440642997617929133429470503860077716211790806076593331689041279700893682859876793611972422872045078621409150982948480912071795114716494566288562854264483760669764167368497609924264937495530108675379945975878772016375281665198724169213921749014583745533446620195923196885008611504963621301458363185350342419792664128551298626434665388853719880633013342989531774890336464151263943039931935898947446775473453145003685338487025984769851714794819010270064267184277438248011543198773332412818601072063726274513855740363557008747884215928145005650003220136275601930769583820593669835802503816589838172589890975788230832725102632311823590616181144907581507471661116266909521658638930117759364001862525431737669876183186733210557870751375041502255832713625757917036321726243076972806043863834692949487277468440579078102061776688828452067597324671389219078764680574913320551105954820362067857514287196479952397277445926425659084818546107627465235008907134701898592870405952954291369903461048823509197024846648993875110353231621072783338371396427333864180509153104358789321552470150984504017364009818527306351565808239767957384193925002831289510837380435650476687305266728121919471888053336182786155775898194867305653491552593033905339517393124869390284085768853112877418662905256895385616880736618316784943219282089499283766131705859068997722196007343427713629876699688345487405572042092324230345648815933517202296047946870089215903189572142430542342820958826623914785863139417402609581146425923279180866592714035612961307509674494998180667414364440331032651777667775236884303021002543240818304850726907018307968555682100829505978406005827494635021363391979527585227771258810557656274940792470216521827340208275233116720093748065882274852727225008147763771803436244329883844294885745208413299897177604553283942894660699326106301336501393482003556447022860501457163596089113110842687027901928242473077858746951493610532294216803417021995070212633150716466100459112003055148162286495724618999260995572209694163051928496887710537678087453902940763081393685419742380906208265262750879220802134793851183586012792297933226807823779126193228948519329054001972039273588579507408454052181080693980056670484756566855291816682716169567373898977117404698885929674121351364035158402174621594428947101242368723933838916932124494504608133674266712383286054669689118322599168910374937533731780761084990809406489749796798123723399160117732144075009259393693156898881581993393106815534597923429692914150121301914070179058412718468747564960149571681467481629108366899704871589035886887901755315690098797058306800362568682868780536361871692267335068126430927088797291896691694362338043662549456934302818769905165928001060436616727705447453088360097677073422924402009969270975663153469002540901477761479542761741692440481436868247072954454963335141529228133396834139929849749781201540423804705829420291071605161027929263562952708513810496208411532806010545653739571954834355657465739094607805229612328318469273663687744051988700174803400860432607567753041394989965939211131602271951185986422345206088194455372820165595610658760380430373707694510937530249587111917510433284849108558238159231472960468907588775400546122727840513584062819515638405081842443746685663605990966605566384019103195384310517219729060001947696120887321075249604664405506279415321484826951007407527070496216769939550962243443248509527571979390581448944542303435279819206461759695257746449924112571969885089940526782252853095704297792055549114955456772757197264797002992146132201154813196449195126840440834349331176026780146220796613497190088516476699671843442031523781823081428869231959483702813373109828845769972207508496621416056322374858489860578648271908708041721037577976467431729391513321974382549014784278002709116475737892012979488256034427069040698606329638207335701430816012654617743065352117643403790019745257598746261697861099375226661988274935992672228178495745879503257227834930894077648597187491877781173920616741145583445440020546941407473358033177588420600312019571784507341664398562955888548054783241299324007807642830908876058799964902941591627685437593893930656012826579121796544201109714783223016859706587426923975227114440563343721242235075984542922567725552016026075707187406781365038700046854328569489846942698730013726791516320976645996798570750361893710713614996615043107526967859411991811750630004008225084531525729833459739238175817216134357678179768000194005365566179901921888739551100230276531755747914371144539661348498550447642653762684876361453482063746252993067992418875500501032725562086216600922930413741213499524840073530879097937538748619724203614137439592405206444973997049665685492246557278278026782912854175302346349825870126050713802472926380948956393336539736411892227966487399800454493239790172634747379474111067173917316876366025053040160469246924782518239458056341759562120375478817846968111910927443068755515618995585598037972868939914036248049398348305717280033493065556360600067709496018707258966288070353420887015136710147774062924808552330528791864067662330208588735447911618653773208071598258048596344546430411943952544581312177610645983319111991893570687078305409719166510549426207646289592482594828998807217886875110774089343998940850547642206753415386072263176321401544014823288311734774984894856590646931913033924640109200085686034516802427168275704874551192795583783512616826074419789477720326176006374413492989693616025223226241271744349199252475415046426123410399773243035258286418050937216158271090319971444546908629651980035933624680719808357416781545259536525180704068876883798404894772733651030385213161035919799847607017871128104510168491795433977866440596991206066845438833032698887582825081892131230649060596352306759033434862461259128260809779206412904420948400892414811858453466110627417073372771313377336081113632453395817389603917829314844344873087368970619035833255138071137227447888845222805758790196941108304473630838370094662106902282276174743069833657949713970577507524502835946496407986202419556948484060445167620000608899195035513932477564888587236277774098201835711927945895379303271299685942967134573211912631244459567315719104343952086073805366335784743438174192837236301291898014520936478330218720386776449367781637528772377872012078299120457534120214244657545631939627524902486908488195121935821445229709740515084351612132477857133692277979253901467844809761865903554231991213325426261888965691009151252514072609366299354718516477479606018633686888823724519150481610291758068509832160109384089629645060104613136743772089217057950541746052960006080303362493264093854991802866882350151512288983518339300272228040990434661477336987704244515676215527300055247445389700709962519238409136133589897309457173452776823223826207625825073118240635069224000847237889974393244739982404848405062832525632292016386006686956111128740544676493275363510197632059774212918751997954458606637692644493563116666185510110717196462892385384613445008738797833779820866761435868162263816142873418791206111693057273708003890869174729751381311668825831469444360959905287437788236368707176044967529578058165797678727510668418662685947436252893997167232690896126587443623935339357052579727741727562197050700541566340460823763388527936560126268030056671883653506828804862470079355938831590310002340638592321136031808287660192648833194309341995657956547358458192206296796864056586875353243190129987738871632909154661908244073633613613403465661114545863894602431419909181860904890142067513881886423414620679513339304515344382175202269647420535009838150641493349040388459637525579949542900240704267965048818825251357482553955259634125951258492946952317273805706572776172267431996912947264620713951801230092487949937526274116639620512444527705127179868659870361212627171918234161475520814528691419888738565418194725198547073772315991391241009457238730650624882360554821615965068532581405343496848302935855393115476411409640643336697607590820333625848542786398386320730437255668529615727582169998412622327339148379149506962785438925154247535797883837437289699233158299267308228386387345356803080459571652270042933640094448416062943999896672130519897667053056885707682735256971586699383315083407148236936409561234639933675676538496045409235072715087996923839722123427796665251042042696846740382215424881452097490603624345454566360852296995739376197565450012197699142343789013220727183150913776076827231547495793055097820694743548651632433797161679902074620656509792441080998984994650385588978272021140578913235419797218742775570527075909127366208506730974197813426357535972323363268775643983147383341621932718763412831555138509680216411682309027956994460754243578012501192967318199598408389638472511834383550033504998141486819649445147834991360350876164652958128884330232077282613303578157510275602844651641607577534196105750221800189659643740209547083361791358338477003581184917511497623844538837551168894571369642372378205987072786795969166916392765322363503455482764545465103428730717344695804582751153495918938604957417550893907037979413761171395369636191018190160088828639967821380916963538359061439865074004535910278571292070736681197187989286617906632953925054196216169921396528024876018979084090526447308857193110058274281411899024075084188168624744085361762274901093715753227491054246383825407933945404420893915905491711972498928786717612626597317195009880954671653023659879663595662770861623688824412177848627943947157597416869981678896626714625404736905832439704380468761736428728351152404029481036485951591739929975486768762938675984837224704856950768076813917902993206824883049071934851582540894679783204484286489305490590712403303484452809178238333253517413966928286739832954914162289286004682851538345531771078707987140885693473862479618151453379803439088186118518947366998301009096837879249756431624106645201666509118182224713621995711029335506854712136371353753550543385971187467637797901799389871820615902952732584532170919595042346705404111365375623047551052672923914907508043832608147017565908661801274599757800638702622282243885244194601098416906149353761808555159617898257365693329242356309999429624206228327896678566755393120256104209829858687580274027307740548126673313089950358212754759414657885729758009911150036984061948862930493384403726262843424532753937126696900542645804769291844158943823671389555488407531919038388886802886339104894723747908177346605781372895135713701585625755864901336413124604489639983286262248703889098924270249871613093417585880703287104313012066656396413485923333833446619236604246346024147518857229944249220859480369338102024288365671918693202466904888827284984642802096168583172807936264449857021377856528142125511062614848722390376278717137062191877474723041106511647746480411966617724043984216594654754927278415959270017696678706688984867685439564466588901905277608360924875067636652968446060661737376302931913042690420926809978179012046079740001249658166497765496147325927769248842759287703287020532431876665751937269508525587737490718829525047289858483408422537575759332746021923348314341390751124829952969703616973697624733269597196950489125704351275426687863277000656694450527845640394359373337498032288622732423383653240356119078072078767051731648881390080032665104722098293725178443469595207350494694438955346377397158039981727075365752517496902750086120185802913790635132021571096757694660355949547034764361244241971614812861995495564757947934973629243734429284945579883999245614939576892095957736573069409646057051187714398382280366796677724270301677788649188335262179393283990642408100795159054670053207799612098492991139477368013146577635438769872742762215931391270971486426892266259399036859803246915964254457174001351668484710900424074948199407968675735116098116141943725889023055426282789168618241525175653452147522458783877430331089864378888689949326653458508382976100152096084107304654629724361894295635180802319230202031929090294050592217529280076952081462786611252303699460847986072455102301209798697562062776460819980219317309732169220713586979327577355429539179840290848625440840459286673179164645210039357832173047789918904067690395508737168636051314062421270030348733660090675030786492691669503807529397695764211663326533367233140706310116040008746987231433778213268708599724439106790288846062513778102950979210020917482213245644585974869830746263905589957792559996298438821804622805119210115032141966432015743845750648581914346969824125943992022833647142044495691400470905384367583751176806090405101724239637159328418914313362964971719705721944494314195245240691206789348609117051444455251378382420159937028639188504434865531047224288258731323873296521386464575300617876620696228555518866347883762338728970821471220208005853763445582208549020702859237121295561145771562435247785752016663952625784119290044154635328773048638126199904503358710048312359616894779754608574697076763629811630528035283920920560360740242778604592150804344989075116069380801694834031194975061090513878670103277211508904317823281395330454039363814925701138785753526354753207581215406402000306392096812344538236899310989046511993052339322733094512963294684740898681979676191077156828255058049877112038944760509967597572081706294169288279408731356778446871135669006124662922185538023371476144420331727696291398594942107855065362264195518373576376234340361135264554952021901884738405801266132815872041385245295867972322000779421797149692697827432232480511335808268917651598896645653003802256695342559837810969358767508131387700815686139005202627238103753062971479096830568011671554773318186331900863239627017102956680892174865705390913844021592488839700197233550745920140079271505667922370657965279747655343309102653180261743029260551578296420761595546618005170862598587516219534903852344536231613471097504497138611663133996816222047863716652484441893615740287354669616502420296592078610367895042797803784638672338965365425617552115735314217410391621899108057934409337250672152158491703318246781390986005108660373184966454920622010062507825120915041965290483632240751292047149168506321331216823830617384034051869113863845999184818125257225422746246380425262395239583980015543256438043492268003037976018168312407757539623024991928929970944798290891264370980960081826337528007710781012317324453732116577377799430722367773956174566693302341710610215980098313576537362193231204100711652997355252049596149776337220948115677870614829002000604257124085535465650840083179059278579561835822000445707454038058974867000211687225266104491496958436095766899947062966342907388154288267267340734135554800957290770355143102394054234783382638248506155013044816838007542017273391018276715778659495633123629901503853946882752519577096562676068277233901729190906008066260381872330451772764475535164530100818706968836489196879445214190002770187153596286802349722681510468461470785670213460295238163560537450249839839791905685135109099319709813790155393439851465483271706895557312314853404890467900670396208680442042991700647201933255770182448368381613341854767245701012150418606688639125456599961874492697589913512965583106021721339722259096314717414535687225727571243673882340642466080354523918401732534303238693634107129548741757419876867727905200647028146394538279567137414429134676335523885787934291848539573666761254787473459044580051640173524767211490270633247056563385517214564120059450455930613350999901561162453063282339416398727939193302956840870458132699135814062654748793154003503529914704790380053067602615664666424831020712992883052951295465729015412990639592464264593383060331352201950092937693267656527508297423619170677316314641065006050534120181309647237491848138048846478010664436752192085437612032720415251784093600612726196311775485090335851112567516821256160852302362526038549884933304733153105590881788771438151316033219777230553513871099960721606369199661046220949271513504734233561928915096799538071526121438446405038579814650010601176121323996262434148636873729459165262191885656912405778045445735499302305868037955293266165748633564426710345078049455276455336338209844876923243204961395732238775049152265322627834099420077477227444107011059465546607027220409947416315906432897303208046440496358712194324374802271462395119482614566690356874213422231238695814432614367828466794304388849836704259246669471164122307629869809310427711579486360372114633281969438828884710150997009153277019551255751739309143176783521805324823246330183530494738924908450531516880581265396352712927914206299676111537141075223754337370870632097536182363403596074424985671590045435229546617148366026748698799193941790273135700142731587364115856599842036521366727419896066550997669052780297189832938449975478718593099972435769771848171335674340762030286716163594543034386854412706470423334038255488248539621089610075730172765432473569508287716750892754002095097644625602404555897037126618449529320305299082827257013691612519070142582453004465803694868901690478256242325466540185454330217565739004909670892193694686619584139833253672264791913600664887288131307049990804220237112442691056184011974828583252224500372067487837918264934877172364801228471842939065296477490045208957202785607735452224220062864565901654191950574589476647985165205363560714397992631771294414554750452522499533172809856415909529959655227942667870545004983580751214437576800802683652365455052605735037703227724251473292122761054969060403927138207054217230581833296114260655377466809337167646901700210021458670363473550484952970084200104507298169679098145243394758813731241265478053224621742802345440609260400183511760509662264001103781206443884405400455615333009768537301522419556142771532489410786339159916716438199650216690493961424526586970532180336634740023729587338316195156400034898570635827806526015880684900848763197820697404946423328606122295284128193927221074702586919015337576418854030278110302153722895111327322757504544971573908780497935573674216659364372224514369209951752954985411048200601866704609700841032389450341426506783505010692485412216194492529268578381586500570002903017096727912504346859502930270629224140896346609923705541748150895868393707943420463547183371946726640712418590338394054624474836196154201799939364994197406055167494448308936924700804474611553690191272294555243047215778328914234426649418648151374521027287109843752943309738724395170301835601226547721148128714978501099301203036290770499014914920616282739443009860601121353905890749798195596631988453657626786759347152111633270301070214805357217273236408928416004215152082818105666896639329998957768807877599250199525169096499610777158751292753142084610391844257865527799657167593527881262828428167935165248983909585369573484019761174790262342174033958214371987429038263142211864093975958768583006846896389021454945570544647012764190322089192316018127594406634983683242568306613639273273924092090660405567684890925568717137505012645805862473000710834105938225224580156201198195606751046934270987553230777910436010154949549674624973515818547339234150580978649505562901104562663398540692101955424272132097027312111809458752838029250853478017745727482233933354961119811061877133614823368697228485589918824423329344921206954998872299970127428769720799598980190086306340021032502076096879372009453849673856522561198820698477677186572432204478267486837647212878043057020896066637846738793595767758471661415847305124972046770912042282900337311863594263878295033912376661645112423709469909525789297435678719530168684088033476416023658157895139260558526096346528077012713134161577376037859884060810546203132027557889090141081177677711730509489473866185916700902729942502642636708763601559044929351704703785915859331089928372319230927259068700161393543303706381917737024137740299255902889347203973286468265850507417572509506324570440432326742925189865275711875211592593670010365762986485023725728414272587746990175699693439366377120537777634406511709578819393272539709009701313632746723610578443842474185858921892714691564859427950556352488984780465057914931971525949736418761375421975747252235533196261755199752338167660142549451664360695516536356635187573803587478970861428266778829842389889005451507122971408495709228747306909800482020527312970326401348800170237599619236770672285607626102246529197883109083094139445738669789648058656168524249417168367530329464288484060680552044908824778742963054886364877066533525638059468335919650340932614432317528199977262700180562516366590891420095518879747315290368510707457500814238200972237211833244609342449124284164374333432987778455886391548731124715864625429505495711604665152495758862652853681796054325577615238279588061365038875570543000375529803194238963040227953542348993152147420971303665365099994069859724157929278036591687359899743634718298290252481606050608930143833589675815066827910383684487534646845936047449124127421573001470587693269182650092597948170402677089368666585765016166141496352926369946711634876202677438026373534131962296602449427931060263570280508120771955170108120553798622022464613968076595622595613777670845008225997389575205383031818974584372202566231794854267454908992883636091048786876947193974767485415595554699924522335032747479156399597786309820894337209355855976361435357953739496862115863981887066558957011082411456323169546589666763166559442813234974640275916310295950805868482515053324290713550867825095869724179119626448816523945084145993798793343833734042343987444840701207139731537408416864764054267022953415449954018462664047434921337199644993080850540137482510167655934750151422697213526253948069859712038101715503841201321430272384157939899426466706145050620473716936849333576646124816596617923398178435540595262327811227841006703241351491800982241221719218085014983979806692028557247931446209822040972896063738834075631741130562253833775477118246974115178578350140685201037449142414427301183909727647266440191364972315276997948015443085094432999160972140905611515594866991018926392391802293796919206622951933975633782471801395014154391493969366476522252256093752469832073268877840396949660800457826250190745791450386132344014383274692356344057732104920960838353179445307760951793677625787972369868987883991043164936773235330796790004815107141698990167136422076231301214867522361937132040749506888537875766209767997734555985113627967575064952032520914146451741864223766307311678210931002580469221189652768556769417106059767931624922546676707955668473442979498305711334378327371978940198392994663637304097535004247782071664404053705705427911525297187452814515671323838443533332350430436205557540057073399668349165918610005163664980992504733779058026577453640282413588970032760364399460414729774690665414191215634168797895558999063765155344286018529158950073307519907037704747635195006117960274667311079984461671984911106739261910712178128557409359622889178833294669616762867173024459174549071313859766615198120457359594804101960475682611817023666667252506963511718652247452772182571290608586841823672928285067383229602896014863736422105328212542482696785523570110117344571212430864231510044280887080542648199230338341509289972294653368663046817097187914453307386665116951509693237982939982613152825499670874363863609080350142386460417234018885106133087171474994974678179513126378868935457936961151580500133056608485454183125979388427101537950898971603627286229389174862357317539054498541546931456774623504189145497761189970456688947754848010249825933907742250101180943468503273582465970347269328166389692846886325676542350877277413359618238477409219563947713001868804810936404263923075732088570829447914084373459782720292632491170281052842944542432036263904884720199328003771320319527938919577911407010111825100554092660227633761474858574564829167732630109699916535112484209724973137173234480165344965322415815115944549622325494025670922257166856278036087267804131737104661389716050798694630998665510086118618375749356719187309524770722934397457676304572785588337939253227678489631439903357018218930661385647631479183998495034961345634191438278576880638858275201405604878585568949935635789267585646591752010240343656935259872104753022525756169953283837228493888694473792285042861749410619775704626153290048117698130109035692714695913976577226105455400762881117594263640388561597608930091808837066133955139909370179501597086677747975477187648179142413928579326554018889729681921019212365658602250348948670240510526243319344175534348348149679500944065251716135149180068245693364558069819229154769926033937164472148284973660729140331893261727521929380791017153614576945757126939126573618471846013799352016015166762606594205826432323957883100608692588808226073913867614924626138655605916876621474473046521892544800868746697112717165152176525038660507244028391193885998960674121738885040836656191016166013826110329692841782368141941538439068545095667548744218181946226173954246539448838356070446302796342283721688395926039698400985712933373756588166613158869617094205961132627824542117801705178944838702364705969138093503093241685854593038519872258964565811133210646833227798959706792850042024367581988417421809833651917684457528887097162076277901401888662148361928641809006944726978540589333954670121278627818926822360445879257818254872131800167126614550310009274398029174533285462267322732770364494649805955176602195525361751443913358481852778617065679133600938853887208626421834536922575126911801860164052969032914298581599536578670195407483273789714998363420581990589530490671232854575481205913526001789816764447632456108331750244333856686500286503986284240595247267727677098268001873590493630143384100762943660465507406794197201708735705155663504685409293648242899716553065191360422868827367126301433740324828981615921448285649918946931518351181262724209476499927851521700134686669822149318670376933427708443826148764761728780049123174923015295194745955761493473106109312625956492575596686482622881511516051107991072228413157986844849077709392284813754585046663325116584572561659548687904634826277176012957851798921609738224842174572170672044739760334651351799889918856427511351816145048075719211254251571782660129638391225046590854140995686430903866133951159953571050947736438169059378207854517466860249764031164268162569128910447248471811170963627875740128050839141379632954159074506094601071187881308706121183125876784808477698785865228234212206617224784734174913050824163175759600830255865575784768121413978078861136923047116400167192714298315072431503517286247422160754397545924703671915535745567975827528890965898248664474372700420847405842211738547473994052994719164890979256341591614520324003744214497947449659983013565808090663115228748568419252357656712568477242220020449592293299879812208511041889987628111304827809360193439527621193750641334334487302766405231916817385245793380997993159952213594209556572090574646082653450819100869185228997601202955987966153780252327007468021080651449201276675702833576782540337168774826261860368049282276094900490106009978931978806997196529375135642743584405289830395483772170210083103882078117434442480549553243965999591004616237267423593931004810339342338196613227306565100295740999804759493738462192887739546708954698343006148291105391328118680723355925068940108879563989285172424746950091910516434437617807721045751472702084653103344281143850936285336441319781053061999055898510132606182891943826818375852402840943794544270784745459964542384096925401373746532735090026205556977756731230150026587951466158636837236172097603627057700506680212751287542269827676719230430763219310042122536426944858917402509064627733165547084527833859089846292158973090058311949596630538039600332100977528259439873122515467382039816596968515043247322763371942843672328050409955292976658526973325280385203790899598774259099555957574600368858455867053300241802263020908718911779811119871834708886001580943271427346023155903860403059962421921660444079556709803204778230714307808288754824034915990071884969323926013304971861096083622156895607582792602618117713172446883170849874220290751955139629490787821429966769296734925769805326180914545770879885910840846940519532095042877066652144670905889320281420067812992760046399481089199355948680978771804051466609724237965675477748979616021273182229939822167452182180665141239782139516858448753778017812827858112872576490918249322450446405063237104024450390450292164423140096472758602674712760694292694711141228579729434216541979748525820308764277699449266286100281941313757414352070834176413314730828667202290582935240941176195186987289321208783025528839660312120389213130916722585000159264733709799933806919666770534081092039249113542861829617939690183084419640629371979878716408734244202184152013389298288740414101009400499032030504679160896141329635634124339932769222367737107582177180139129245791295845585154806457018786723495329880892095261422943680705180070124673543775628803212251080068774990209719163702447130799626942903701258219616991864908524605818188928739730235106286708506745267748898458869222014321362104138756953384997842638923680627871551377518811458835751414220149633164226226099350990239283496143078823681629501776415964373064340808130002988407786917439883871563423815225408169928382437465539866557469595366351232749165998289299061835986034954512781598330916142373620327986534922298857652577997262581029874850141537760551115014284704573040895581547627762495244217870066806383846587503040615073612703113278750784608300510419571812426009744669300448346447080492981024228588411147963183530495206927017964340240044184827839677354198828367273628240412810132643112737707835988463890929220248608880132807260828089126538216779714238463746926040883532738034327946765394822194584275566480746414781046860565403216400770986684949913184899328993140215974957544529380241595048818846999243799868717110176673636829094777736047140508864165138817030999046845850859531095412576648720136611445630334493408483909758212413753420970572990559216060584285150915486615158163247039114127558371622622100962118220480416006792046952648566646043350023342953087211603438237970863026718479212406172459780666476759310812945767726570576962783366523919363020960097803102774718861843221752751743060057882679484107721673570427993946042815507895036324032448580605609856213216848164124500102610255781505211339683585792381004642428597949379970313617501405516077912844423498531589537233282814822597947319799976736248040612139762495228192418207554110094209465812509260164486995624615779186484960523204056100875514964206622030259768616099317090667610446264531155686810959893209634532100587223965441050773354784498794686193910668422769126329028364580380148941006821656210458119768722495738628278144190986040892660858920238113791508653918713162983029577140372421849450367553768153003345330890200494294864020491324133963525668436061155400720765552153371813473473927456073698624096798748271143083133161492433366692559941254584039231935425149083275574383381990823546842945680066200862211519609569493131038375832498622577217840274397361687055323386371065609552588480926208105495510549701055263067843584082196188798456838595631317432484715698465934388476365764873241050325480212256597993894113488476216352491704488266384193196994899847472063398211660743901116013108815898639034387687153473228342135405528686068599830346752453220312514750891378097019182005786703063923049046713907851419543533252887700493658014157503501602108613670950802395706083107513264964297295993029905671574128267796611166946087585795606396189191947254553981043602590896195845123463759871900829877818378501302620580933341623223381846823932021708726703641827944251905844561960489102006726107758987285515595118752874155694621199323716713401189147217460429974751364103026650487776317039772793427682248070046342599025525084970971225731380472387799835979814154278565885988751075467875146634951758396195462054231334354007868484791557016058254449810415231891270047284665758393734671129052042502583380138932612434832257714028718216495490980876904163425720440977647204671985382982628382436566230513562630808550387325422969719723279625181502297622013554665835719157260684884447968025985131341290797881950173884164069473229075192922851762173036950365758413903509107826706503683289140109268576355502945746939443676690084143634104484431637143093970842211691421261834337980688166185852394478318109315122908381047619232823580151351821066649649090515510007079074520446662115198292676946503395708522965245413058577532249610166616879542802885228317173087578411532467467138795205530983273704271588065638538781811876688446594685388435023448261903044821314090697658972747509409692365282958603610631888473016522038858325939646763546104367410095045008910518791706246244827980053267281947080511736379880462228550471125040703996899528418714662954606888862094719036080348054213895316327764948076141064215540404996726673715957913889931034936327969122522221646926736554160573878184370319570299390019424970871789617816128478537327151745828020508232035883901464806345057722834422487764511945138033378173692296512721159245034240180349351018294317836546288623585648034421500998221199730420908916676779116743218274000693776735736726660366135638088591446282856783734991048371380780031297740455385993653031308871524306124048008893086251950908463227775481374394002051986274541081418530781195497297307751417153666034004312329550789380898296164715624527716654664596872087963284794464993194836657625451906926036380673644619558915966264830517391515986078604611137509523524979755260784557824754271803794356489473709739432147768624006666795341520865165946555972724647678222417157887464944763629175053280419607452832076178591373783030946349634388784869108049540656415910025972185528050793488719816824898916201899722710996378306521018619195471240364618446466176640645527121546046433186648531437144239598677539174922623662955761868016278841005773847794611652456996490372823143136915171050547106263020117840065351742705731066803468137552393562654820206700795337389463732820841833393269635309511118097660100660636751503262178432856844858016357609046597909470816459046668930626492594835056501512781615749719005683549703005680182408078246920976331027878642687217901599279386134591749410132212401178791809607268978611987449146884559288258774752638501661464514657174789358599712883025318248372521094715872474922418300862777602663869685917134143091002483891011381270237453210184219167469917515013599696068800046615263274875011501375892404910571288181423654147917236961586290810672505792621024130965285242051653699121094480878941296704260770349851136281953558654036229334102714620789877545161757436180540603269349660653824657388104271664547081286933347621529115769296629887187335323838250351819774040648128387843145382122408934478915286297307169654430059506099064930146696143084926716924808489090862177426533339592753187089934010242771381948489713114122783262607066624130160237976622798984922401713481250304732244431739363476967062021771347982045444676600658959518074048890749872933584483683966390850009584444105188037726170082998725182881632108335772950027319122048496337932148351315025765464498164134564678809461782958084876148544774204012135505653322724093690277655116446860143837325605883214391386358760845008194731851765570288471728119958123183524603315425215486160020275931635096113186045085489323467741074132638514291925366201944180040003618783343673854929252612921949504628708170361960281853444382550928808345105013172754922695578932046204391410672604524599654264805764349539458187636868316110470038601156042539317694480244589086073331031545997537277056349006661569444863766489667761625346860092757652247253387799607736204056688180143805070434663659346259499394661178574055379620170969201433596396671029041446209745219349545791929649144807832394822359711446287294483736092641442466072423249927577330087565649082225358155823908263477946960707781084684039972662016119497119876966579125584883689070623327612253129839905072020168726280514281043866237638136548811314045717152210172460147918166964606042515814568178909939975014402832869506064815784738993052742107393178470427998680090426689760310082010520247659490270222406532516482144445520186171430849370410232177639024775821720248584756638189047457889566524759777982645708901926166687719716653055044312896551446776825569671477632438294030041056111953780437429594542646301235637449514734245413618017115934067411997051255326296032564698144039551219214858700710086588531211303635834145227555131409528804249304568030170746359765884562536177959651897322027304769981095551457392745986037515594900510748232337731289957071114774553154089360449608063680500988106901130263639496409406666769205682203191484570783882293797573903097428464056416459496784246954936152341312388503664924680165270950339689177712034365907305934631540785621585067195998143574530690621743129347642387845772834229321783678439828138564282554776559331713962560557966836360845786985507819062235511493191143142636210860728718124895222068746216733767392688740292254497772966069589202331013718007883111826865804871695397068625069000617410539981329734620242404422675773344712651287354767953022697861303222535508695505825492500731431622898508401280838281388215162135150349435654001730811956387960668896760104303514827482223973793907807264017272487758175526769461797514809532727702402645495414520652871191169323115803638757792579736246468767648984485553273064254621154818408795487967659360426346136589398671551640638600361185264139013396216917855173651912111622704655802967124958030455539775162095511647906651705937692327863061616632740022016231963871944833590516652522210164247641348706160000974316973899349074936736735572415451176969582640925602064475658880123448075303664006279607425094259801006142850395502410485348776404883288653674716661920303684382665030870252193990939588985463695621641262225946514920733922191725499713489170840304829273156547070402279925343411638040913751696791690582796095394521069354603745026661694020206786544805383906729409508199616866265699665480807691997078565526824944084449411964791380180739556236442566259299891999901321948817892663878882530231153737807975092635339284788025590232183727550399978550425974479045208115358845834336831924303931016972227342811708642951541464887515895727317239291878655273618324647914149026120791705743695230404049637029650691518074278146872546041814402143408930135051681096536705028968894170207771564142402204824901779739060441138225860372125662615972784219597739349477876603637686633949863225936149515778172796240436680875055609314095548472189285894118255097441367576971823741028580169753476481753239472810743792164236330384161587391885899860103510649793303324011149868485363285909091951555171562202336355350822463000016245016713699348583122255226669971766614154868635366851884543012263578971621241066489960197539375080627781545737786645447700117649883930351449141363961713888897819048972868638952635920814998068390105192940310815798504054971062129560198643855172691439872229347761501764113264689290722528817657135257217616352553228324746587947016233557687690309824203788736636010268537894912890710442225922941450089485252778986322578076662780507774342947519646025264664529274876316575234044365802928526163384853526170547743291461934466059953470786991826934804384594779238799671215123588178732764577798798792790519250184357256925412559125892503226436065798863290020150193915425624741289611133330709183849851431079379282567665526361293963231604222294534171319654302796130675750307278273563552746931915918749999383500347095099280151704272330632955169470548959717035294122947718340677282353323495556107242457063754524403050833372280732321967789913776928509230558587007311947185823581772487739920936062213777715140616394329065486464545829887871014720691807279019013822233936551720216863092839799207681111623451208161472948609680630068093044443871122191851581292650682186724302317807309173419690418264270977073925253125195818892522797156472041127539333653128016080572163457037286687837770826945301559340756742080850767728591827440501693363155106340987030451685982904215760597492785658502873600481851057672006979729104042466432258196410648719692745408060867575091740985079100617430889845955051172650306939281135611646536434755786386588424355331046428319718333947076227068913179902262502480113373229642262731008493035530731184090710537354126619514380236682374983798157441123917382995160487416150713813811711493756606963774267713920121465417575151069839389592823137758871627573114787906971775829762602062716229817992500819544741660000392157976569560745950735760949600815989483235093555739947405511188374067168825305957094916529773124965294504969380743607933870846722593324763535623721980597388641806371589423151319960290655195892668698615298473369077632217793387389061806532018582297007689749068096515812853125961500571818594295931114001288934857837337670233613462444786955946606740791854083497276145262494090820322550339833488994753829300700137538379066861013480651466389551864843510854489973018424850119423494286458483823287921784164588475742361852176151621346155205063463502935100926328756627694329411601293858888701024556563182062351764814587463273500075416962712413677500130893829101190552960858297826101162440055395732501148731823889238017808092477577106224888344855518974888810902418573146679638911896136300885803907659520192985339455867144090893093591292113417876518586608189255048430778530505302005220429611609673237323346415714776953095882291133510708565875034811748787608169931174934584420405426530458359799222791616002332930722499150760268696298156644780382661083828312973174319062915464264113892908151203696173916398265894434459283109810720890485050706879678902413831860191285347313771083964002361161896863289522801241399752526973015288180990611855436048664719751240404133691894839954123109012669105312131034333214134258265682895019220109206798822444917708887837633517324560537933995039543275562979121269971366299375413692286993515108794256790748704352761245786354039901774106482422632458929689964422339932319775402829805740751526485932395202164004382433676171422786221956989940831412736902896552239406238344992326590288744642588928590057689613171512613823517485485056540908559165082872169814678183699714711573218183677051632757276443571929140300932863186030605447700819028845158272802624948660126868963756620106432217478318988759234363219587379680006527627840209781865043578688089521236527991989027458932454202278074878324925442607961522039810721624976314557083271104549091730216206070255301551815819516226960657724975351170370336871075442539878350462297743117065115947762048778371131478133765832937652703996047457784490867400444524544979965041231883737594037841725816749763890528467691356115269391359621547788794980584918221979857116116049092171120286127216486711822254506383300888163368135778146639150087710209401246931584799311446230662318261071978818174789652132585763702653000126159356955059640935598514066385140016228768237427082817942302417829371816352855222750050342692532895696596515124806697517836850176419772697421570831563878264333650756847253136071653388332623681697495140617532956363207829325861581940207708906063281657567817657336544812942703620307928674172260256007587292160652564433222293894421865090716479195105186945224736016844289915741975766693221154154467179082827402708596924757473812269040147315851355391649902019087465232358538288939480062679943711765262702986028200752152182496057072171835575547917475540039064636230553156885238232388516731877746141851414492734672196758435789371359051735395806708580602091174636262498108672851933786866588182136774666566698405337847292061958231089007627134449173586621492730071337235596987885535462949304650637286780447696256740496747460935930815894090277827893348381385151494548301443097942259650973690784175872367879056461419605985399325158667028927230162489616887105505256339083232851060837100836050303224798192444134496201772482221237885931257150054674836256525921494417941809087592468504948576414493645503181090536609755616864790635999888900742945089476549012599914957785699408407371058765808925824305645855606673107864233833337698035703808042283031471458516906857169543909107981390727152312415964526749583779338185558272362721435188062806572459288152890933176152807931738609800186275635101295370549931029720007142424620365207802193038352104713398986285214242603138095020470501142079383409310461859246861440693241757738769910704685773814261657680897390425999672386595098946188622441275849867078427279338836349972355202024373715929739652052842372556495281370698187332303481112166636206485972292447866571546107442518754686920220054876316864337607306458696481875962572163045446320969286499627793933664209232526044325456808450503591461847195059434881480555397343648016939336497698821262032079996119727706151884159271041910713388941750961188361033517846477984913641370549318486502469377253818419648744599463370536685063898066093278962470191336732018843245746355604072041601809179398256072556410258744446158064395820825454554807041305348285557372321443974837521662255897736028617821886519423788158816781460432959768289606748125772437516714963539285741429336405189354715867550942338442333210543724292397800256449189749675658232571514233229519348299309688267141510768743953449443726882385871488661427842412392861273709989913842920280818374860943833878171499323223773781268331741397363245344226879260001539727678495650630596764471481526904017095859310965989191638511937188117532230204452892496801177600171604949229553576914619252066756130273309786528687860116983975524946023743220689593376910903304257080980327712730864668267976143592945138742128721973836625563339631993877245956979710033817429920858215603684017731042565719388687521114427255356477310160817983429169654369629629896004239105043014717631628190573993547509544805912075720054505317582756434169782212963273803440946288141608610519816710158207695851289663574978706029167507252946987171429291328563908701710490047261010212370123720323919603147845376937483916138200435605875125081218609516745701211151548330675005051743023160370465062844625393339555372032230440510644258962894400281844558409394511462698863491605500257968152945178598779328614319043645668186219783527538473467213442762914904060781983104006966464060667959677791221811500582389493940623695676170319046643194218457811035217353709675195340550412181062972767287842701811014514045248274961503127486683692779099097736369670708417093844293819122445235835920301884080745904454028724397403074438942065462593220882419977393769318147601916362286044174259074543054196601731348797763224326744177754451083014056972052477043421894044297740764451035503226441068625040868957142548540079384721448489846228866047832081084273219395345973486357229305259029830052976559014085855542944854927656459200711646290644913174913668897152835688942284419895137631374062909371759847533785046103978978186998988886576370855610561379468108609449469304818623993215490295794827164033453303318361784141832602297580616829577552605323448845176757585392751467762980615817314598561848173718823422261836842256463926818140326688748485121420217654126767334510221002893331403718001104899729930850257414361734802602479139126172457859438839470378940363180146445456424326158384461254005780956567100512875994183588695306396906682238529112653877636691742093640588979066669844492005636164076167525282150793798460741965656452999499815900330254333042959308476079648711686085164348427406975883141083682824585871325793137944789277672372589732021248915635526945454311513611193045711351316233321441989215500541981521917878123880634954792529416694602410326683648247412065211520343708385847103438314184152982630425915164534985575052788698711442821799732631423281925067494217854415089997359761558212549654309578975765417753488824284219352984272251536427796098162119544790248165513700394399250885401693172770582029574888762632811025756434478458963881036424030972687254707439685364267050514855061521916404522239315965390979332449808317735493392707314761704362516317555562957747711538109106580493525201319824802784215306808970097004011933352691317891365242024333493617025831588103734320838442380268748109754188330976236523647053086843805290437867792847829775133881827195988735417437252723070108466537362120615684856471180706907539518415981606378339299416617320061706747966337239415676781361473988606993040942065522976220023104090306866286200635936702949046628415818882933836850372751542904730849873239597963179613680779223362851999475352113800010844200279837015506904488427249370510214898678537104935445069970978272364116848615712275794546896853744486712273898432587742105705583816659399272643445184270444020418524233804060052477106328532132190231694074989621275954605797838951541046657092799728979843903617671134672193354423823314563568737666980067011897722752824780684557749480931233874424287389612511647265238541597028868686042605388516242086390032184056664728419150419713385893000438408029882047655745689270762554562914639163450120440758329362305420450518015401030307984310700558287070208527311886892637816973061349301418898255549853211748111541240490036476131617035226346746146352590912716198382994713392209704229314700412522616570282786802216119810784838121245237412115244143927019962188939547225420083134179795851968433685683106948114686560190233549425665812361218813459448020913217951612337046874297793692270868976016670900435325727855167308427189510233735000051978427527316892102132647891042760722282609511924875198007306601799632010247719597083905855512211583257302530298942858741819212071293585619178786024693805111459258528142339525544292868798216634584379210387258490031144619027540806902146945674885947795312239082105468693585619428240219161665281017140713295952272539881444186161234902889863333084460606412853267844653732687873291182088122425599966435080839001963647314162360399924507384365234850996121372299427921376711089823786263769025297378954481960570761633610582649130701872417925837757484350402208085617986365561209038088137828847613635497783089231505087935305429808420733395176608659688922537735537231193209733415417761522405293481121157707857150155475989916385778833114348217279938789297323267500791783547526574848832327746004113593299680853764772981384456888649453867852372970550946662435207536589553524185828599442743430892811216614726229062595049316757988206794778105118826770695955256621608265349359186177821621792093780358420091469552501817750946050017751471853995905460799973689819964524177730946811159347645498922126669016583491200993469741565230490163184033853720040467751153605633933252462237686491994370134533497544962478051150574499110203306207730851369726266582079948008761601904685653026906686826527726555165930042409507057013222680524240684687573237682625875772335428131568478275841493219224757794040838534639200782489076185396084504305067851440394335091670197346426446704602900282977623064484404012507656683299681682783836300201907965184977714628618872229138872223991385748222797095835410180451832513322909951912051572462835626297740049203647027631105603117612328719417730239818077026966152129008711515952634116628598925613968311313885769437937064338212933693591748341681548516118560976241272938868590453969056444948744073295976395547471190398155342004656333584633256140027268775749243413072605612644769240231299570996622459684189247799649980122611572834991100197699861579945779198219358401403162589218194547557817127732044708229240619144767347949172320574823241252308472123055333748809497928692633041414895165289152178537375497564348482509662365636516882290808014272433137316385681589512587356232377956720674543003145747937962927108443266810634278084592836661670972668605348737946273762043493222651235427784464494369842256535145471976927449197258840241061792859460941954846055823940380499670518131387311635321305667349075539427800783869057887880018915804800309589825688461171204275808347877679746715409121828696524326245037361149654175839795256917750381844639968510184158489569027157261777209466519968623480391691325309933014386243128905175303712096224630587100228327803551496927591015826722885155479624820869810134984134241643989486090888671447861955733677253584639673853040549151910192332500954693239799712863321284459173048274791054584393498230326946634741061187648497233533527419786484667526371352730107954110017209632916421970642628906907065786731810131329318574039602407368622841720177138012796632463515607874093587043177539735833352873396561067468660726506019750002572126321172647418116998129989754497842418416525449524005137051112608937083530062485574376929945370488190791487671040800978068509828172430362307596322350099098080573367410874255131242728019039822650843386936202198435254456736997645049037043725903955342681591604527219475476174569666405689771816450490890116246172421919455096772734939541899063610639862502231306306101286177150481229439939603837493152785394258214923145802736040974719230491523536025369120433342314995057909426257861956406322980971534334327362397888789663021777114640231186695314350915001430599657698087170031026328585565839270700512366917333302333675916974808487045151629256358764538059926813226293305709491177360271178412283838468231701940051557735064423524288151832888654633569675878206367005276770595817141780003567434526182617371212295030072916207534154100649969830667359945042678743159631865293991602133865477368179724753298589958528792746777760773434954441349054036883361763459202470615135616299510500257282213783599684032445253475056930105158398307507119232625871676462415953059237615417097742599543126317471679727399590383358007654251569324630891077494851878204381370585936990183507663227599516141390389944653195889480916357134800492740542094664701042529929772410080527116992009314188126665258286594680793959406132341884206817476711714037694174705451223077088080334859132837576017565955828027785546827778701045096694480241978565998365829594482137406452644466888226206211335205321373511073148887138752587809138699222068669423400470464158583070768077680547069903527487203845156201987975831361604303501590557405473351846328436013758246447286291941582425357284722354704304643936947133779690745361733645675121004800015079876106191333786058046852259404932371739892558952627419961917805837309969831580246774441776514131988095045403079276531625285163444908833586794123955093459457032057234066415352075672723825350104426156092867322227100635692129458102189842118929716704037898930047358550259465395115223230393716320192416650876140340714015650853357764573499318562714116331195355512104229080305659298708410251281831028932589540905402154853949064492130943669961025631961080251512586504134158885880899703785401914853575093560445876708986237357486108312808974491522715962990570927469333727273895306896425593387950621060313614414906604426271976771428642402612740193616921518841501404759442793362354876651710374876915337825201291391731421286573856445906164144258010211985574798905464616195947592550880847902895515873079186710066458115932298385776141622282285839733325272486879859388904874999116848236878017932507009857022783533205515667110270000177366839060410773138113414494589087945856862165091828038782383214352416566450974781447980509776768913898491415877945282012759347608816401561157784547278422700769543891531475100865943442139876873899200398779827447105549834804546589206377850314784318795162547129722301813139815652927890207172075593915340482516186221788304531441409207018655213108489880566386249283717049935327467779130281711374132649793481212405930333332405155912800215894438761925325791437451284044910844893411318167828502767017502031369942602000176251052445406555881088773752925471110897858594170951953283545070631191213222912566312381035018972643298012905208612786336463957652741975932778048362761331876586817336508896696731220439913000482755416858045501986328800716617968305881201442205578023452138745687800660236609270615042004094078724105021250794149343708371364801298264930386347669612124179928151332018251921820818430074566357453039905163565854914153905744449111041512552721060388984553714275767711398384276794114734255554728391223115946277816009402250728549123837761890092834507849593135777896270466790857147970049696906786992053267374934250908866739426291986315573059678595248537748969053817406403144327806059451214821728374280350586018749830298282885556022682676941994661808692668933471794441143905512475620050815378344386612465457745620212771855403413305417028168843236341130079645239922538827651534034086550479587851155404634939343225619095090097872047614762957878075312723895534256250193453928954757058397943133750972883423442914488621145403647410018878821808540658961877356325824746353178230701784703452288839946006689296874035636369685277768360146392149807740917328502773699733648990269771254971971041194805992943796844780421075932768378560802584736909254580060136015302198217229668895601844713536171076342845103570783112270958696372954302355057055094255684483550819750229950435640740551519947952539459689544491843097912949008809734418389868664142285686860849224978326269300530402837354496518851466993605278573771970251277727644240938837370173994457516798476843343494121082532726454891186428403517765824019405314064314867419208123894307704060183897218421491398719853466975946955321782601361837731353289273348740536676629155846653717585031706436241042384975786742136411647453873171304298199654554652750467274697979041091611893631185911774385643606391509169954839946304370691252861021825464672170453514311355407877466271729042848763886031546781256984667700187442323352168853071459833411383687028617414100451294401443290163568868753079229017208937834625681993526886903838071182892259995203521984474486807081467648843300986191523542707842304526745612996270754287933240394426813951094672792253364401129899796076747362251943506378227068446520899119670383055023599733552767673089866188335681385194151743787026690643796760625116846483624896918364253120626219396875594586389902996724465691781472248350493956547944094194869235205316543571282187131818858500401599223163682973616843148568027533917294682130857778872665734371630197603814169833642051803981779540862518072287016103393959955193042176594231704051438466428722857230304820060211321708389810147304942200924925927418368563212451848654175546511487445108965636274077784554209867441443173982071438605186236021791749576240902286189410208538837272150671597496001970949995124725672241135627020899309600421790991003830321996201057506639827855869417713778456384074157106103808288869470911810611094202146504591905300993999434593523569279596172324447705827254189561182542300938743569397131942125762487518049267147411025998064978772919478107019816695128879888412181801900815492264606940734715261541532461970117525581577564771646820226368194101438191207553075572405615889832112884234598693859091384928829923436149228815581278217798411234781310860394593210858452195637179803653036509767730024237073232603429664134429973330722759640465290128425572781651591434686384633156574781535833338088715756425137728567506507097837709120463189240249410319423548425040367910405275766158373171962605566622912485067925544267202655332935320904944919093884178382628988623656523522716156446561971042075129908123049044649121761084892061513660132358230650048446786459269277772174731965892252999997019239744434110773846383159695203292832987363767223762792695664710264718972090039153361644662518168576301140846757451377327567001816228724759019418215790987891315762960233791832437455399645872365695469780244119199761377259251038976545504502418807490517128542896266918387730511323909876402486214777379649263776081620781839449992105316629257395931595223587978833519537395608398969696842778416303287731898614837629282790416166660355609313679548234341091806214321518105952180102772262774948415042727273973347463462786717211507079001968169284406618129321974301840599638265544833157903757674280977460249054471248543087966674197793066110366462025643894456204865972941544461551586158201217567005675360890272624271406213646041869988296726802266603420119671888876994858299035499988503318434108924939311783815269797556896559794775803592402168404773142527578549128506844515775897810237812865989856643781840920149508136168485666502725370495293745584508829104546632522202025627156134078610774603564267225016831831586332409742377148965389545275480745268089500885035204464312631615509850074114400073314145056393657214483768448216981503012723109270718761707981159213980526498949507208217270169353927909898927902203212738341279493954608918907350414677737213023684923110003459134073890819122841805351389723820599900653367702767201066005801316774996855123802498306052115580901720151665034241182941348962379632525332507326459503470459663071656528343105494072008650687944762901441264581555583067043775329216172444974573292587806211135116387575182784055264207127789966175302338698544312593489665309669112752939323419309099493887415798510762209682477127418476629634792723838645388442659510133177076056228578030524075031281921271842414302946786297765178034242225265973973425154862837536390581638587126587055224888508938158297115730032201677365902672798624957747874596472627651411902382833957540017240129372396869686470063859255056991350867503416995977367466437945804872727873441474596558190716526042322682677388588031474180024878593592334382841898033336085571306301480630998225737357231191674611337931662255004819169525178494504874989065397532858452225459886922440112570115779056111324639858603826444741218832815561445782315014058887063870448801835363878684313721481023246857188354458672024496875757142747109543526292537441455337288933687570316538866744121169266833964034299654407520037923540813060723109334539221308784943211119792932310237468467573398216846273560374348014897862934111824263341549039613941804681981136135602526276471150746366449108511729823818617681973242632899491258786838308218816951246476057257026667163395128041399233863431675896020944919820969576296255063836553477890917113681161704329265602765344133975467198125561055691079865048822251728816420397106295602792095328395736838429499572559832954208860351884945427819251741038919551277746247699106288015026525227515549483284319922886830240214103800748013076984768906758570326467628872612905414167246642988412482889957205722760069356495091290166255883910597306986859555970927500268380861075757742629949464653148021730463393420768643517298100386034030274661995269165501908458881783808964534322542043006721391450051180441185041338552479800452302774947497234459774518016635089480326827465283167446746749528178570819331384339211854165919786545230302266337443242968913483106061084268180112922081828425024573976812168663996828680778870924112530634712407714818514616115544005649890385755572096787895174255132720257033147105381558380792726497305573380216812024748351802061512819567577100092724655287704942313314301347038386825030840371571391341527148271478043223190866792429809729908603844608878754437739443399676495712550486197128201832014103606383900213060445830214012628205043919557507963605397127487120908378477695024549992612604409293250120255256882438355540178277919274379265182121176800279489505830540761301511866471074542590226105515398284615292514479780201073216838050340003420617331874459086248312432107874423237744891831365075467704682773118693008397222385709768799934714250180196120793817998570290564904480629217929657910514507853299218753534755474863721094801849892307059758700026583274625693274424245364294627835740330041017943496836355290827858393945351394921105379984826275603949218354169286271959279485415970573778310592661387487256475100918342950266090072931994282774519312077547426204739550465571465684069232693413274570382642270677013257903425367758863922238264886725279635619292049818529035470693675205416676004882367152822908239322315799455463837781378357911410028945504442069286010885766742715737391428867330257626023679228124233472975036008125005075937963846643521510761105741518338941895530377350526767766528069918538952797296725427902777516375753615604830031511791796973631101160883839576429349907974667533753580607482027316546976868271055660821541497651213688170179748389531430198510422157328221587157357343404504520853934375700140671241400420073415353803088214669323827038693506709346552922763120896794021133059304983076391576203213027694420518432856186914135157416576481388663993709752233559460842729384988220083067342726183982763268687255515433562937995230537991055058923776581993787582174022555212044607299052246699948528602010229319185356348925473710317692012124232925274492214764480515046933477013369301600570419383858144721579230291723825610958607807351539166116946848548290324886926535194488715635737556571280324173702245757198330965796549999565947962852565679200383435155745967422832508995415732856561038096066816994483508572305688730139105734513112389556310785431264387864144030494213175315090902835849151257967011446002332453316632432026581395027340864678824908411738306733858782516351502858824252604244396844366578668807782270105915147551687585562009172462147691841237708578750830215709890192727522969127326241028215458484481756435108922643293530938401317224533432010800552066496460427528360786681961859571009267159816788417473446025735604385221995996278910232884350198235188417593024210088716547774279402180415618275261196575562012281028779001838345742203629197755968675712146488702331148317637939597025394405418120249956719979146243915129666805282624988438011286970610788750621765341150680368104837106042254386539927894691867326269719339715010135713530276523689599275445658216078136670944480111479758367672577422064583372724234322947622176790153369034603098587541056859261544228403078137558875683449501713928947767802811311867899064869980178243946265804133265080214631748947727309926104548084656896822411567957669663788132514834196560607818621734117193208423166894870960891255282218548498862534193882926185634193746258220241101655166005750690695640603079259052951954431794296159145854538625668749169193791916256073656998037156836439850666253011965995072366857008805920147618036591034098541451625728632856409542786976022705473336123474920757399358817531058911826374432850494704983289397850711536656106447133333398303654422176657609823150238342198199029687163026826274721180507007054728423681913829007909315807525635049764954219623412997807387871805118878586395136647023788995199317145547304281575243698830582396585583981870966369357416328846906939384815723076627723314405060372136777482705684355041877638718931370164781081924177324063889306946797568498375261427087065193942621877714181744800129624832210975065439230493493301091564673535993611433872565424825501922355220920817797756235541939418879293578954698720839586169667541369849216309133646334503852688536629011466011939435970978623691044938846951048227297422998989989333331847152484676493506457974182060208585663717608529160870954355298919583914124813708065575095139767536288091462605833650788747460196276132828812087726783656808817102897387970226467261594803475023748623336866609074832453411853144791619849272628684753474024116842481612372040882280416054293180274889055356877342406235916835210103523693473345959178065199965647050462239991756901571898035565477716309025834773517035394489224582259550749567117460852875265924355039397354424826897716790610811559490346585624342529099023995627881270003737927962682123012397394125116860438753103329267758224205616523790817373545268296382255994336653824326189013091028355390323438161546585294530213126100660305077359228804558888055151108423865988544763466892738809668274906566376062778417512475448822163537758447765780402113322625741730540090753070090159598575380556136357861706740762030930454297974580598147349936729234910968026688377140879306394029148181322939997442281902922365272441201242251261740279496452315414433751254096714562699566158854758077893129220145373328193352469307872452267838720691326887914334241285360960505543706308514283061332122270773054685815704280430838020260352981049327508831823068314346490156451411979589455719656853055536057200206785979461636043041424653092380090628878685678775895205798052052281113029152885422463429204894778795691186919353565340005870049949179206020747003510965183763440492466191186009995980744973553372917981101654820248286321205768094092741237784784743875056834825798984867795047156420690186212838558253235324888915288103943258622548542932889264788440619242054818594502498790396551531892260028062439666628736725782768116452114313345041921392789453567995612888192788377847878484180898165244397393863355619432231509844445080228422104684579506861773987655841168831425992055963590178175874111404456908937206333568812200838767947670972179773631010652505004484161440396257295197961318451316335320818890050931542125584153170703453689388736110805901520954105066545929497315184242604393660980602860742930066341877569570016699187614147679403493573926151118338153791295242467191245023932764621847820312988719924636495456725461930453921605603623439414638745060255495451439308854781961494762517863881214377517781374057806412724117523325555195816015294880989526474729271368198264627696500184984506134151372770270543962210011465050486365530052464784879092341587105734252306368207101012162030349307764164758533309242774596244621563450990468430925699132392114100815281416717253614895054154497691315653395152700888790451924213710410008193920678473534742395374819179263281365943549646981883122585199553108800109061099726965051410466210901414423354005002750691190038219545191182797990448380040111232393907445062500519568058711930528494766528716028895219944141736382761344450286697328853967485098981643677423782732041008170277270100928048686220818186788451481699765550868269563860753621770464718857551880613913850987488933089651995749553521310169805355127548178808505751233495095764339317357923124516249628679946823645263480614877643655715641500704875131060057290066630999943725168322060448613285327099041648619572555938695988095741007441475791822473225026757920534363741983956573854729649364117020527144546682636116433776047055174859485996743427579041325268898841990976850433547357535531706477566856984581249087002736047476886423874922004445408332221265896148230231785012524344401310420285297562104969562413857719406199790535171050915611914213755117727525785170243577845462713529258938504803467805197799190071445783519646511018813620921039991100595210897351406378116743245347762895578280735235110969720430687370137191539078145216439753846610443456746617632293375228116199210505246511161599459138481235990424008920330870578999566196709966777770401855299672734588791624890178384174889151192800198271154186435285465339433611134022889492471124176027134068493459578416693032735017036518431196593068232428596908557802043974934929410567067465496123947839154940693194548633519427819813401598092802074112515254235641088285280716375287580820214800984031560512539312625341391088037685834265595457669474572863129468197467150017549866708025525360272431441627095458720325025335189722871230946514452115804966642302917552946160564626402162811394608332237691121689263567765672643014973203802572035565969428665481605098107300021048022853440408966679778425794814486386932844124621261635633579548773457122007023149730354526593289468525600973327292926898003952965437431458116144704038628273669741945906853790730254124354161432958538041616719074379055986449317043136144757279259837473595070525345499505375471116556394948408809341784057411368943450115054451182722032633666341637577883569290503634418514548166049769309475726612987391105419130179498424916925946614266654116893809886130310821457241356606893782339559454987332814248094567220646503786910221269110793992380867640375779349639361809937276503404053610419730567514026853115715821013950947935445780668507489386902298505349871722690341616979555040314283740881592585184221998677629032245023425902146081383078087720727711364068292934794090763701927383209076973429444391386057847388725513276396057590499131460507587887364865355756374352246409733726060043520562215241464234389511944854963802381951395363335953042181376657573225511096825536160759438351941889808650310577298290853365138407983219703816815815729682291638464174734403935126110710048778277292414197167054619897114124577553586312674615913725918166182364949199937717883736342716774787804672825328497136815353107354246962530187618705307778764375962317926137448358487465219625054049910587094933411076491423920063898812488729108970073364228302223078493676595014689162477528533957726640217189433713605017101051051832493301795409858332462216446869657231568107845788241378905804608805647545402965931457436439492401397192155542041263582606297811664687640023765191141752164867654772560898438798454284684352656436528644949080817014849510069096866737330745270246680573179678260213032478811968066980818606054268556273147976981376211101542305059862178357689246329444540549220220472132095182192873885104821457929344573316261583322297589371702356847757643396856231541056572634080291756225754448791181112784858786248315507811492428644345609032606957661329951743696229588202586107931198998808634210714890213401346615516636845535754735698291077874473342340937981777532732688866059437307619806142116590164737118779377400393012582906612627198216641965452119647755131709831296349940447234606184263100025361577318189192089583171318129480172869256218467692446761943210681262917326815736467373754411299302208154910007421351248026719701366409851305382206183721277060281844487183053694134965037271870595594128373064530039784233579517895519388857270130239634697512605799132516725291245095895763343150465950666347185635389832046265017967332432067187805581271835985881029074036930574449690169963779309644190331213045549648314306537194139029811684003437797878775959090359815956991945656569590782045287334981400715066845139427828802578347929096111177891328396003466104910904951184710295747476166407543724886374579637110139190909979639997973768675633622287392118611480229645457606911943587470982617661959101175367414613708455398245310830880799350131556108381032977587474734978816986560511537678049109210648374105526492755776345025325412489992007186718821089238138927819946900062034257218573713022014794072721101178082526861161962372299204544349655393812429388349275491213458739176037298174846731095190247036592305772252384865955010414391722935638503879630219383474943285476237266660809504870205555856394009395560528551713496433218794404407204712260595928058212970048865148534265553947782249880397601884424981608680004572724526127096072076200822889333050751859039138542441165471062428673118360760413088551861737018302680737147387408249301966619817413842842574031693923363194165760277159213067969653954349666529715248047778665963859494512442858552738345405475299760803686512496465596769744551267092823470011057159555131289132623220864527656500152705264122977032370017535332575244484911206575931265704984048783168738401532067225217061593433355715851943864918183632373642360616696402418900482441904421708837983334452618480364945180465918900170402818582670500382268072842382555937788766394873381337301967563378045718274106926946116774003012038921896496943767535199923614747322655941319656048084108527695305408468051964920247186459247659945446418913613506962518468186099484702801952298224286793254784928246124285573059767071078603524970034842784657174308119834188209121556199771603087522451417233055935992290388884583447767322059009860820419310575134952439829065919378520669146643152790887530921368043301567775849813623676365400278521666982545907347686455545052330572929203971927473445693518146645239681876147757480035428242154823943942775321437166478063598117746159431623542750018719345790012383054491267080973651954655095921312289893932839567125649018570645923133140774467361297392082277986193057116625436596696370103408579457937471837070623568323703091743743665413765124987775748653321384006050489357722609244914672128743050028590601911516717402730463406871745483753021542448126518557056121286711672015614122844554362124488271701355388672339411679985291078221528403022001294972602884915043769487711386405491821370344385862996374136202389092086193890259173323088055808833697824636847080034022510523254517383463885733574214246961621431123686749668482737953609514445444587874802981794542179005089888912555435798842452919837567527359892992183333536777940750861250259949939445928361997898434815418381976125290918031772176343967689646062915611510330930343769982047147494918382319346515587467697078025521395545303457804668866500143339529226311364725909017701435904878203691163375922866749242108805284465610131086399558084721800142754483051397475884072261460053798245930640228713012431966362735003233709101304626157953108525348892193886228413252453418573299311465019958417072603972306724544822585059142515635960387336332946701421689801636164829188486415648007091946820210502813954567729831405932527926505904921163523981336609587494029010207137102584395003521132233510787610504036430307685192998241911108659177604409837575909144274884467085038115857708452703162879245240354739064830985149547047581873044732787579752188277132876408359315906685514263990088755225548084511603366262803378466035722194407068427849323957528189977502937574002931259738248556667870603665172747226440365616443648693220829588286881557529544133478963727284488940686254790924420560618261023278009289326400313581748453922796182488317826289811727512491590826849881335362106270278475631392014307315504829949055121209210236272493370176644787228512090331053442775153191516727300366936582342013912360934549786283590594017023443776126879537937412170798091276098514976741932996934628560667868438304621923561206898357170719452652039744294408045276539613883491222756729073788034430048796636408178026151425710234118143846202579482475845398333857549339575875794568427889377908954321476219152543131069423286685166842832001208128448235124730162569230151720469595205855303511982366376059571413174320416079258278249603155643982552711776783818433168359564689996383221510060764190170628658766838093780163711160660703730991231899602138023618774700041659829404172865783800508202921872360381231295122623574294885359212535350797573866401431184208909926308264967801136872909391704774082765143616874071525759585726275131528479264816457976070355211566540579442365165069796032430560516219532825793802122735300948594593448863253266859272062747924869996944048255991049358420507322884078944591255026035581810249352915737338133277911703425934335157336063243352777222006579610945843914905579653511417910422689059727603207765435251791419717335356021300655768815369602844478520280601073427503114535442082011247735879004689944413343440498537746499236407859006757394898028958820376142701159900372979079346659615520888416206307464792915919257772150172514050420891741103005903599511737205568726607654898325838697397544164022098762095183179566620930405516132508875909965236199138075975232941750250520988965030700325963775385587200346120590784433678498450715333929447466400143106128855819304952374011355289541068304201008589716367628252241953972204119379366457833602439414397304906300810238581051341066900574462572519575160053326053402818525034570298641844209948923063891000949960752306323131795058502090373182177134418793775218994052839938434846695220585357818371794843085839785785464676962457782334051382898242054288605934839492667664725524989698881336610292537051672786160491587457712185636116982995517971656222769579087069590543485062263292768360693348771319686058325827002187678314551834696934658175035545246261037926714880392980051967680474280019608422962138105149492637199267541564865864030541788951215905792287404047755639588562641434114475433697775155663115343769890998404523277589602947326025774168602052572584694580680977014395845809372235664270876955527072827672460559645225857999491603855684746989184947783409080354546323200457092383710514397634539399580630714303673077859083567840657808901735504763792898075530914204780443896101931265640653942471049157441588611229431818514110076343289206360041968527517221810341458087534125049255826725719938449456639975954811518588666150293331340192797220588183989383247397755489277624546246727881957826874139565271884046147025058544199200642632997810354787605998920169971192052529987766197827858591274633577418607835296669073952341799791368779904478133422857670323631784118863599532259095892321304461407550701116015316689933700176677061497124677500161791046921784907081470613465411076227036372038237166080949793403691928551965331655763893126647151688082577687856119097107706467775846167452147893556610603040367748448667939987413030648867971312708899515340371122498908095141809195128960664652362537450143137932280798183037938105176269680615620451077913075869054928318602752298220879635190018606252949974561958113275271845660808931066635168065900730872172868488585838103024043536656565528857204797796417774005520726071140582650796212863046546602033697477362397228273250586060652696840762034607380580379166248084943829040153957398811463555302302677720355494224626715131755816883886979327876838094725350856677314656923428027598042086654222123123288837951555913464248338688665305671713355617689714263103209299181583726832994129064706693186624531109626429338064370467529426551371858764613616161550503604864207278748598399329789722701824388311392314832793830920397307115254840171526604710221977857545420812686134551024807118761231043083469589389205407272381882039663204416690447755688456575139479451279237048825830648460733169817739902144295268632936615024517837417024930816673487922304535927013018406729439399640065094259143741901595904365740131341483684342949805325425489008173583721181002813255374718783479011524118866577440576059325980536569928685965349997779515915935035910764187108859472767114249064404190542986590531605282276830665268592901722325641904361689187562717116391357919905594506440712526237176865054539786765020199374965922556599619773007760494431824433807962232561692983471265751716458464194071245090873366660511867115253640096003578895504432318172002661933957275833994293123337150067376493275001811909926965278566290955430821810824150791621261486217356256300883440095116836282370385060648399586034788261497739112200043288312854095582266989539483233926532354019514899909766789639912485461301995675289753462581465509326185549569808200117136870098371569943375971648576614004540746097286691402387844549926285055967981681002388941203230282860141512107719040173124947874564362452892436281086113775522265297142097426470120836693800024408411512260296447684208901537030668793527265239302052452676824996203576657179588668311576443070390558094120699928743255765578866156997763350411627191697730538804113326154572172829908757389422977861486775244824815466926011712645075415021142176119472303292261954084761724449719225817987840331868733207342468377095993144223915161060785031289592183569482011575070418875447335584644223986189896949642546133944703365297001270901707673337594142932539615635968152929628501189942946717975039975628552376187034069176392023428076797950140531671612230101931445867106437692682483967106453958169054049833434551463714912898702778031331709213268270509074422339239768982359332438584404356607885542458589618863103156197004472189951029660384846079152529667716468600997925207417872891333229707156134346018100431256571924624140610032109551664755304384748823301166231394339092952398805626969110219358860970977762821585638425640030064559627910820992828581803344785107998539456267433840906089376545564951264042753445045002890762147363488947182006847766623618653733642926742796626966261941940787762995956931814957929688579705150092596652169692271443371838417034279497655946789518901550517690831599193861302179415144876799271846153903816239667378639946797882570681814791334419400922858869265050984179621712109426504764117965015120156064599751093526418177149711864037875860818708690616347640117562173541843317453391641174258787439790137862508673753581360595624213034445438564295781751595382578166392780763360702385803433716431604521205147977210168258707456062531139529211026811309184578860849173192837122441808001300105744396442767442134758308997489578503340764673212920523122838458053451946439385180481674937454619061692133051134939038678130474942721657554535268688948375074162285192743277351741906487057813152315281992492715042798338583975826980083766996376183077210812895937605622684967729428128457059934936485203443424705138603875129673915197993801632134339559022475799715838215099919642483156751734484495598515746402769519596406787955127058062773923853509076422329599686435823978049845159553596393245681197018959483300822701073586474069431302976887203152110508169099443333528239404390834105535775108900121287867680079328811407436364799314421876573777092797344031775049838426567281293431776153099519504997732877593391929450867564836125382996632209326364915965619744788269765246238849975911513728708922698067899380495812803289158634524752129981731979657649550714109239075777261909654330648354182858842153428196402554089183988346202513992186673528276738863568960298476711803589885217501613962319339676803367085731892966553696154313322489409889275066505463304678396220309698190417686421690234738638240064027413965579097132078168857182156494458969236216560922495830738925898350909573014204981096796190138335261383946544908691941579114480844151679667287467349733040092553204931335326574278494929276294289945192628743511821817037498572840167336701492578384805754817949774615786926508804201719998687638591513500373245511605595498609374937832590604194341995103857157310269419541662199597398347636250520251370846310103859662828168731224775184971025797544101751701717227432628934343151764917866994307364792484205013593290193614497604172766545646870936377114303589139950671190409516100442202763647739714921610044932216556571192135047345325616571597766455628928730831867066531591491310764789633053018730484135538911357582722523116016860445335846307824657032971200438142349958522633121524576102405759199076939755212972128699445710298607842663281113984106004039609230552139025165828779339514800620400674576758374440542751175348930779925829592764894711590476997192565187528596616739843521337725478868485034948508836787653151756850120836764973736672395467457424135316092368506641918117968600048034735505837289315375840909952993421349588058237173619938042452680545110026145984497516879831410138756761852597153391942191590149854145838302874075426007006572461797441217179790785554741780713997311901440000107996727748111368656094200636729621893223119822940245835962500444411965073765393543172959308813642870870852424170874097465161405490198150965077418870609182122675240725998276121254589638771117135894563112158816239305211790040548877656660448727790911773453607640026946287113881075093643026819272952825618395630034026672957470698233643952367821965488796632961243913801037153519490994432469721138150772969250844498212306477593300420865289293482268464746323622934961343571393564004860023258192572439346617797307948046344771106964531084331415496967462504004800937650564150214345486647979163634048276221507970504964901990787153408495840551755236278895879638167469939407025414028951468200773594402096670735942808657792027786151730639273093660969737732162476533212165117854271679299433472338818941592938748612499320078526557515789228358210684594057685502487831716777610743598088035918216513547621151255102863312179277878379901526114861652105581752340162447751835443182300157613984664886419214376425798320222453214764485284151478910939150419683321623565197449291447865076485234714027664931979396360608398591083491373719319664742215129755146082235146416666333954835103464985269305264217126868605388012424132054610266818072426765905431453290240125983735971049792362624584214639290479863657015718917088573474781003963371780195328002323419238529050427593287445827599884845085673402087740341423983966510332990396906756178842050352581735618853020222809815254307307254278854128856021761179497206759023237420574565581946363215153192327485807391559960379308374934338571559723455195927444859100294958576127476514911069021226863973624221941348952807280711578695205702609261539223316404012344036728592110001139668559109879298248307876107814883770636422475968811309412281726559611239550273223616884521766935798852015122320554738967375213771476367675287323660574479578269485966522828339987374542416881302646211086566025761402573180029790192448940419744772310078444782274715795230021842084798918720540331155150333539968553113009301676525610075116398296760289180022101789169749497929105861455180950768710123810155596914004266740460922534466700922966146246013418429252777745146417508736213606658170648283004574634647597554717998319126443547282985712798809555523111398799004193041423057267401665795137808735775060276294840131657556924477943356588213757584990389867312555660208509759990750636925938147723987472466657489402583610513003280688267350868670238525788866605286248987639288391866006101401526953324110985756156947027720173432072485001668910592777401404002898679116045848093786809826946511340734219794014687134907374400547825504233834543799811571316606062839944023692025246455769642772901924693817638360834713465598364868363204518083633576881884850239255756879309857084940325825872784625149330764313788357669243801921877471196412125807642432168998986441808989693752671153926285198279783188668469468261948502141673010359387674428732139579654723980296261227400748525602555129268266726487381924874611127055319696687056999678241868366336476635381565437704515524766606968519405934608173436902359935358273837755409180701795127386995171600624631994833105396422782777883252590182194469628204747334327817809384801749752519006953105124980396625144640879789108944988348403280346126170816550642031566449412518376487691169029979760593325310204901285277254340784317047844624201363517972080642426967153138455261163454883131445899324708947631366573517281591366193054962023739546541780740349354286689725018077988630547091307955520484738700279715534096592802097700920757144159533108933239009909847339155598528239446550194050646806806646941831683739579056979287529153046459869068134692401418047757445864863607054412685462113006324215251772765713583725135234572866274181514399116972276699510142424693337678759042457189595426469138845332979670399101467702309936626422597991238459116333529702580106124537164322696544014600098767336099465009268722945807568764734193662644961900218787766205880081903347225301130538522617268114525333920800173248754192203908181705551862319522560293514056082544643856299450527623149621693942982491245392683597968362524930407936487392709159231030927250845311323682799941434258960005227658753184476058969649696192055020340896551874561176475511883322321765742853496529674647892897240208212412043310197132542849939676746152564316155210234160756961836538143350046878986595611770447236911917213345884475011104329032418446266027847687982749609370786406586284802054866451507590817282726481604988743679926963573571727459745480538574553994656019288616191488584762280073165420569538377130689939427628672302174797311687119116913755098733699392825553609294638291369179997044787533653921721907907980030286224214150055755298249102553603621664118272178325728565022712469420988647095151733607417100749080928084545514831620183805219793865769975256738801298121716682887849862727278007905666634962665629416271575050887226535970717374753105267870439395632239679443189993224064262269668742088123176479093855086231110788127601240843062141571387050334295543931028468011204482108734636054126458741800813648787057131873501181027400918126249598421301620915793429687299793904069297100812916531989628094358859655706873158654126274506756248614243249298262682184499021921547295278924994948044163218189469843695190078936574595698387520521209637257892884445950429847216999595626495975504586375353643413013780385169826226066280065666612991943676980688461734390514593190317332762539043708652448712810583785577013985939714453578801225793995375968455703174165269441918648430628300130514367923740493305520844364546058582012556505352720071852878515392926526439532599205507705670195752468081119378951034262940670494583280667953184398003054166085898952681773370500991513408643552371495742065690611542831183786286243472715404344466777358063645228477636973551675606633293922375592103386152025743552737919068582768726370664517358621197422588638466906449995274284291499484799917586945334499710639582926607951431589723333269968007234367950991442197951475635387667659272573095833843018241801368878745795925466443215149876088877063467991663020235002263419024597439755155264001865689840626867631393034526639732712590896642003890319631879066283149400408216864065731653365111116912929503794026192625133616670296806515752044656577823572285452398171323664624911339316552769209780304078528568761878344276480262638414459376404007167194977381125195965059543837598805550110771713073852310958699379787351161207829408126466245600308466710104677442087275174577225542572370091954083110457394500623339328179328101761100342367711967209493829657729845910253415667987630888891108492919483350202611305992225618488793399896503012354974724683373430238113889092454864145861569309668049903310800472834071204994148579729895301338823775896380914278833015908264310254127903620756679467811533747003501816016931557436318346946601230524839600380971167462194672731672914851554644470560618962697237147163414216056863300789137201876181667190348136822825705947740732864579393947189291110364929805705135180168644047577899411707262044699756441101049468032318470744598815419212634297238591558027391735503801904830774676730328529240459921750278444724076893086779454899350272008321127234427260598181696277525143208027887383372466566701250385433112935536533424151339080193330283791990136539980887800493837650178125741794045322015935423898529550460414511720862298042673008597163338095837803497076921501631951967799065163296196612951182495983733991595558252707961261468348721959602639429625041137405429065397467302690856938722041275797685772050355326727816991235321751884144878517665063425724461004397114699610163470445748755911627583781589098977654872418295454132758652089244918175685262605528410554256916539054071475763332331212379371667721195605315154889510474317022181147147728592180990538789131623531084399033931078251760270587269115108532576541866494248308354499254235542925734270341193197552814112440262026259658689853099498932738833264639722834529613178367430849926213252436915475032027454847347739674525148499088739902451455287008659176032478129690936398002223045896430933994799148975870075477583314855966121325044034959980951663548143495631726567728459255042964203186191998221063410119328073763594512286907439845808692548044179573895677304376971282642021368874820548223369159843616588194454196071229058729428002436694380831684447800655436282082514465038394354842112375594765770402889442464443280530276234632015652244752944575110502810201330427042638642860255819823974770678772823727865612228850201753276128963158984680422702558706227760319574714078825449745429582623772834262566916237885160013501674465109041709247135738228964004330698170106252596774396978430875856661157514108393497196285340954134669745099489526513661105033156241449606954988768397570021179726727654543139825287264807535037349899892709977513452932300466568283384190416384971319329799575622991689771175164942457610509156140076978229495649176611188605989198980971330124090227190101787401175827977848335087149225163995549121981661331770165283180822025648806259214266679898424781430550824510819952705704341680031569588410224772706679095049456383989017090947190721503725861418963550632379123968857998452227850480222638478185998285657009637639262022404080020626007845887103249146539646671492865139874118227704161638839139486463425410748031284581793802081503638021452254956557587537709113134451468089130706296205029774423225246303170622296472439940159242171506635800674755739315813237331790592022518490783579392167281915695570524630658689395019173220416890845474609960943786454495594865905503640489644977749601868932349665746854477853397136919809494702101119106469097481733511542525323889509987877819460595390735312795134462997436749502442189979663811014287049172306087107701639158278637403424645365456364045150155661599412244983509204386398619233053031383773595275690008368856894477767871132022006168627414473073715064109615442950185680131832527765988469975663686740395618836688251972080086804185289336331391032474565027560509714029226897167337175223034036757676436054620328455969795748501874156248862960283497311581022779459263459458965931417936000059482657343125659839229828416738530606868858646755285480785694497806790933933883367308289102694133300708348990705796681826739365413623628175991946066105501843662952584336543112940337843496016641741056404831528854756520428677279766829530184076521859482207130511455944325459653361987766081845018002362612423195055213534782589799525391122684221989267856712801261098900992688757480717929016933235158890784017007098404933975976174788638595568678845546639019255751101147186968971104871790605376188808595083689474110092081145281076990606655719244942576470209280425684853652437460564500017875096405261037849272228889090223578546124645387019267937023876530931215773188470202322422854035059927922360767975687311663425026960024962446997210006804592817869194138316061295506577483602179460596795760766903763650062674095512259380410630773506403584315129826651904628238013657599728290252525335229529972713859398642132379221174842464033694892304131527838523873001626762423620334032260200165031997486004034165517011758651928350633232845521423647649233678087688571695416579597356791590041616030345607140915037329386867436477832534555625288063737031592873115439283894958090319789649806367314665729557495538735383751102526666973128989005235185844377787882517809580015964107722752489242612599047870576544576998929210210712706578917367820099921811054882275147529150534304678918495466381459030405559244588003440975600081842087182125528744938605757455244139280713290260547380746355137448734576525279430487262127929287578516459680310779575315590466907100698542348941025159543908713220103343888854332358268901003331272460602821874356912921037280884619880294681176399869929153760864026795589949715228122281794489453874130295298576495953643589952528618909842799190454734934799058377485696124725768711994574219025576114188895227300102821473813973566673192848373498155045987637286114140923868853185938585138145621895283130430993025562865622220656599141905891126019664936818826303437474129690642183974281154176227281195560938995657615132042964153090191886601559524741826153950885756373676960063495924721711128686716403628846853743708525228896013320545561400638404897176012438326904064727326896112676087611268547334714260236892445988530288697954110828448780687097429597789393386918828376413143817420996932783866695881969904086096694071967166363264467426650504564180332213187567640818500845265775216306066269430500489946861232069955954099077367905740051557547949792282105912778203409862815840964931926150542243396474109443895312552516647405120722762467904768789832733045246104357635532417581333853670646215133584532751197133481519011936112459810098354555975206792055159770980601219445619013448941788628771804970394040605342572101805119304898568978216513909306507195100196579514790464730998821728988508815655712691826934208965393750700837239886929145604957781629777446898087277274684305105714805121497730686692617658233516469544532598490532072384412392280764932712965738389961529879796495321719720044944095655175724314492355800422196463743847555940233929159862785010751181240279032535888655759482538380916295223471332246714460147078420404131514071493884420330737906101066479061219479773957874648294064056683531119180038871117322855277182206540062695024407447274785963882113783114337107308095540559238106508493423992940090143101218572430094937813399726649991440336912889860552708675294401168611670554643474692543868253288241455393664301820849264251313551682781169035416083773502916129927406190209369648759794905056686447822953119543234738843421380383373407015203940436040639736108309332250484608666840955523177186254876113701450045004873669762432209261692281187643545035862643366611329889471141959132287589179868990532588845709360457647562221806180236116216034631447365552887455120987914125158124169205877566380023620183019046297544485333960609763169571821829184108007327637738119553443157606100653867747049210968692174229153021345748780699311200296798958979243949306034611428674298386756466725034007457031851450201751592842214768708791805657147548148638254114457017318546386008225012478281142971784320866934646060541689027863120321197485364624472560089380431477008119019357135396671689050577736783879690629735836409945479672725184528383081222336200803251658761538974612374739409537004675531652234436630576400672599837474933529992536381573750054463190657951878279873296683590955522512115352877545487122787147399667268387347860876769860624173176539785091326068713415372428849892737448690444294740331142323794423098945510314479620845943699944431367259512018370303468372363858687050044351691794999387746233610435488223436172028941672215057499491508354481558855655877695220994590052292663054052332617510590223520285330307852744530818884477048532186744505803079375858904411225058003816649978144740661653167661710012588642101976426926483930368406800239891693398263580610403099542905524134220495395533278714687325652190232880238240726142067494768850132648137478163554829121768855239399658521531413064270547109968634716389508221412121432552646229413732345177330207902049559386646293357270613243850124806660979568636278160966860077048063202690012034671156620119787759458524399316657841915273336154534614468689172256078668189330231274263105338144765159471026390281116192174795293339628476386301791130227307127321782960589705980346848895582370548326676849879901917943137771104928045950488830733855263993114783414336103550588000339947449384137667511567281225053929407885455012347405034922870131624669365408502272271514477612142794542262953677127467201509797490184131022780562982519538060956946387260249322071750946583100794409822605956253427695614245194718106191238851207621892433400561452779541878616109283465797392501783944485062663761670176371325489285726698789110297778117285657115763028400021122940809559094376709435701068776424338249875104996592724797660064160162961455547182435934624303878073134175582195613184091044244919944753001869836736029202880684545898203069767258651734521858349055834994636785364535867681015237533019609139003833823038969299113622159209229494322082892402131437791389209191797277992145766802003675167886615584400627184963065367120992972829237625593939186766531402638806516187934943369752966781061048299609067186671799655004064669978884640012641765558501388929133363850680395696736547320231205063263323612070958626302213863807977449931800265524351612236526356757074386059458678510143715934955084558909479732965714684028810225822941662938927867372825239717819027644919499949246101240423963495702082688453446097249367135043222125755217362074746308482736472736886001610519975797529972034161734379845522242990278801642943473559210385982570409012337562173334818115658816702486218061333487469963259053290252376238543727681982907988272283202287968101343687083245311242182912229077529317417896343382009920195810597912507601705933943639251815006004003232096331904273997218806865221255672629572067982085063703786257181838249402105497782974053247474090113127703151965905673657987341687314956017097389528050854170211963715467504381850399327199009829335367522534682249365192185066489657216083264994753281328495869631798860230844813896680115837077992043321474029284667853560538442452344254605139786882975163330246198693010899406562319678279634827703634250569278494782788865103272542033595812549321761594930714747767388257469093177888551489076684337682101184074923541935500382828438723032707125563485279592797042993834663193908874366152272243008985164076087046032359782419556437401954563115403165602210686785677676217850101598877655354161987426426179005519917556384543946207834724274882041038232807526763375040510790710380184345865911666291057556713835873485162843037251201263535766000930277715109393237589959400996611339545105162853581462900612623955245750653229658870775800220130331604046817945387448107163900657227430863273825552354040425211887666598254282813259866857833662756661343431429480779128385170469109462887641395218276831827294313514845181238605213195712647711546227408215230123459964707905560934685332178424969124329004258188855536987329681053180599854504062921941719947130446767172475660449258019430740460556913044883283778734896694227484120317538949429062443674893510983053168694471819014245155883358301250145117693717496760134796907543932740292618031756529088380484080748638017943715354121402133563979653209964685904086846461146551675078610459074465401312205188713038269938336752486223266105748583762494539879566156662128594291722222464094831380059606693564832349663510578187471943966852139682005415988421496543926698448910740825102064813455087153340037674337258076934963556175524312477289409982386948264418484317663669104187036213201099067216199637897929412398047818305458091799427370803772666074590269321164291710449792754792803744427281147657767122529234566749828747578193656998128609669088316024126071667658871063543166159326632664765300214699746307909125436893103122507417340117196714389342195653951533328160749935353201193456264502488461168000586241543067205683705502247736903127864090853410615554067804036686808366980894866185822918063208055453992135271226037655906110792432953493651805806469788902039353387004094944741261636528691277151519306314891153211658083047128434907790773300906192510677207301858594389203352867028107788841324250318806354825298084551319940112507770377319723292360557976410693606595807408241196545208620522287807413355537451746481847431779438055080987814909588206134946999768292090665992666366757938151077822185084064413035934050694731394224123289454917223511533969668198602533563323355471234490073371621303940749613783678764332784978191296133221261068704278231134825719475961437793742381738433929065558600190643199448963417641290949014202549614093533522905858709639853271259862906652803473835954369097303864714575205932729591888757931903297336051089268954929820532566286334335983862492714871406241888313835931436792226225069954196780913791102642588180889304757826870290030609379905410372086421408677771081146878570181860698549952159693703771529629678792466727741220171011708120007023861666015342103655374638769738442851938492969792680540178385136572488615981647322418509826851159789012486213042250075120034003089174019006695955343967836957305801068818153406365653016799565819792424395994636571912072773299732090202213047553272527203484663181434709519260919293277732091021344926483615111858435129428885074168277790798447622842651805505135219833298179555091045657438563499021561222075505789786920952245743459047635788769941879589540340524068261552730204266913474316447224590118073983509798381051925706013923420233932065825965211027764896512838460577157060847333081712730219648292563973450025440591695682455257865370508407510455851846757209501405686574975333587129129559654170360236075822841768976433589083855244376889681674106092009491610792705950511840000608696969917335175906370552353783794209916074914616597053031226989538527506984510166629273537940927885835742018161666012122475387993174333717110111040015694698813862554680575821182950548267136781023867362165364564783599211651271186674658899709959540005013846635713656494733581817092209392586887580960473236358224259513366009100116086442471791736553209822614928001367893186460544744240658377084965936090919328780210296574380501316537887502305011553089804061250033452568375854493392164821074177094535879367726562893789827980157752117814390506376961745075439552127892680726019825017395122194139405512765540046781954784461470291804282065417034005183106868804981674399754055881709974381763438017240636155443340173872187958692320319367867556660373972717702986095792102755187866557211949398032055028788295874640120680396764078871806189562632024580092296324175213504899320825632596513012819290773571870179792418769559581054600882968016833126006344973523520760618831242265790322018814481785795602009551700814667163721822629411182409823295820856114089768042299276071004036570067981659753370729563515708242310082619595162437787745784515500384520063505733876680095559285040058809241145568986021762418896428345626242246286535075625440086825861240749066814587938511794464315115305151766696783830178386976735724875096580031471117559922730782363862590475758662133580054643822317106506215528420789716943013205139976254838010942162475284198734182034615544516255617053669635320325159637689523764031756006587932720422668668480623070604380243275755618985961059771189730822531288309822820821018361523147017104510438385700670568438224848357366888111593319162089940421720845326719331732209212809548308753023873467790080424182048936050518241842745627516900249559688424779287475738338078350345364810811839756931628979461278864940027899341950876331574959078396831115001306928570767440476512183194061051090880510014029028842986615027110028603496218551603846202413108354701213465244742516260252373824543713376084192718082698857547805309396519714573312894067693287824016968654024570757773537290440682767235965883362905613767866972975912700713286974759511637864086322327841748432368837268497918224250892009186393963441586676053304663687124683884764403194789654525983055866169164950502008922475434382949750895463902759703759422594517681764888227105056557127565280878648655774281635219083571681930922360863590556840409434626822408850973686355357659051647283729158915240881384883553093368859259551866832120182419676153163145964792261495792953139150470207074776797575678039576325445354132414748525390374042872373930465684747021963847806699458890690271901322780315662800564330859073106392568846767569393320003433110841244021453814512812402708904403864827457651269638807622654306130203934860012476030450635657259069450147553832264061885101878731496310660482109066516199053663704387067342925347299717639916966224367819558398248751326355102159330578541311441722599786784266602908688135905215783947759854106237914809878863301491438140391460531724193033243628326735127043846542939529019304309576994036047182925143572368238963886397384611301897342229627931143816825399074677598807077377014687876435371193252632143844082851592089745856644184139092131566959528489824385668112326280603648462663342732231948048345998103509769041613820113901894632368264436484390061777483902731165722549904406109281048934302640190745691882768556076226585642577636042434787249219020606012799703294888649741696055686492524290469726926303051263434982444255693851656866118295506510629045862055049907021339351536979308568696135993326577221175559623389314969323170865194228426726565277779791762181223067501510878351813803790822592800347151092331225289329645709481489974839539355264965082648393810312158914622694199494634260644747030774047780388829967582336296873380027468923808436083429972138871938060681247303955691111116456287791518385664820796025842323946162907653170890157578634958967876280734153649174196864819677559260292240694877133163903595237122476382493212413846706430148562115572434807571037848807537884243885352649812270973112158148118634184401058782842818104102711196594440652866052892354102834291907986097399242790583143268693432004780204166774233863429662351296413430140757885081880750916209596797163069120788876885960227866062440099858036813913131242697986421991402679551418284680923357758307234987669757375799037264177368013777152490081874979444204959326792509337492900083150222458323743633089802787918496947194369941686235473428220902087554968616516853055292741019754346267224441593215197293216250566685176530243111676085717192524193753461049035750360102040591481178636661800185696219474268991904436650554402856080003506984383933550014154695555606368438407994316426231927624778025846568837050713169916454952681026839825247702328973625265678893659659659952796427751260378673395164380671205954402823592972593397196165966329983198684091156024850465284131918421912883882874610627325290709051981834811387098160386292506250392417896908543100693398699710490107367530806750690245219278042868179965442686592262053671679118415647544497823986622709350237381822373044265651864667439487957652185678212361043788340913973550892761237998213464697763761195584939090490079189714274101335304166447113216675022639010287738768200218206513344017624082332952085190989352130917143507418000248268834752316754949806280572126021438087907296550663310863608157524013946102116032324762897163418703690230137813811230884337085857542637927492137135441108395622906303960728575131128573033047998714871990078683924722315675766876926647308024809557321200957522385585817679978690951521493996192269731259146398077112016579351483444745380441343012298661548250199720188512283813235940727757528672584872678640130825435604086700269832900229784240860840456688958433813292448228628369471357677055378376377597393149544098180764835680789579673296655391130969331352757130811981362332382752842293602904206154302996565908917849951188358972968328445179183774418203561511481632112533710931627403229082464621885911926585977047707302047122823345376400825902650506702666896856285188997768433429465154456165221749054353085606799110729582426123302793360325878416049782684417471750445727465018817036150877116364050091793760679140686515392055247590674611517642691155497432698065769572510435962889254885338165126608110129941237221093291792022928360298178785073829693652949569631670084745767393302737637041647150641940503572231804447500826311597103806771358106607005912124673249585824045399855575891406434402490743273026181022760178413583177855086358600089740106378895475203652173335709959935923506176596362067370585620132294880854167262206715458022218456070512450291322815749962258787464430459705709252274630712080110895739883161020624367317892700491126873706305088506576405828910577359122813109624497370401558172406619982958343779988908550416539153820973326010749365987788194886743851135646720636445446670637655789760301047955895241981277302536036079558359732891242826119756653786198697922405448191985479270317235312316720431837984537308149278899920116701676504037213194438151022656778898090264555852942115185715027655427609980390040596769063585348242699726428785358441751520993993210667882678855736569616174848708907292824962761622924403126800453142863685841128015150475428619021325593392498646989779448624713250916817965811530862592893969717931889238794951098400852047886118090166484856226017854255557109351348702386238241665923906026289635828491271330543259624306243921953321510513333233091455661735717743362481509024707550862361829645334876471603689336019811982312615940650105321435287707866472694603094714586394254393088943708998064983623963707133353920291409051282316251309297151581047075248804199157876905340494234270713323761775109342685194789462317716766545503397790969636773340020662222347444504562171553111566847983662446499062540652518953506501818079488700715723159331194782443121284955745268058296114024361671758676441659888019734681361772636237990648524687191298378238318853405352812116804737753311287729553809911299574658937257932063040244583050826458344496429986581285708773881190594066011580897417952970067166720935334206876264810189822113659819209034220335493365994202078857509839015366057790377029796889340773922513479013301009593717579551012084686355580532155420234927424176813623162185655045483676102730505791486529111811434138330621585410601101712114223272619820745498675860546365089421444232452678300432204146994707855794238701105891962458040088366488475984992269935650580468123288089706279983169914396250359716803837898564276450377691697043877965166370334273750224185506116156418729681028937560701067961694331415184028399480482933016336461710590859486736186064112209087601102821202644035050084743436406218594109111042912457849586080734078942602234064036670722869987660075736218213337121938336548292218254487542661724303838160697991022088906428496922060646492103838419821827398490439536023900427908162358269023219636576459779391730082007206591207024349216874717188146898250267458120306124790083359503432611612160303144159155009793560952455431112039358143048887602378184267369188096180339215686244131076762142902567675360782334113382165850740312675806312900372351199528045587964614289248525289718901237946641864879268374715761424019662650028537033774303995479816733866167630993907065441475723732019041842662866156746607034780272055671464519063312098592984338313809883384968298061787533809715089851138380321996268059039441203001437367912580224496568663197345925181957114762998823882034838266251121864829452684917921528918296866917578991793201935422165069482416781916045632471675383862225898230845093188166018669701754044725593416430729401911706210360770646055779600849521006320818389499369872355476445913703890522362821539081525124194361279951783310660955516446540327490743416537715010876675139710667633629460593721982246858293656311304036201557235627083945635934151402766055098715978196788140600727541371225597717015743310338667468515655134186169781051042835002015777372207442803639562862237404217129961223910126335117537546760997069279764864380484692405056110979735967532226928265676281577202032804205704286901364013872777281681081749704802048871563357630654031281966693738558906114139466696818991203322483514389637959073229546425653786197969510648200739549611302743736830766490104419140316525582492020369625178852955727581211938813145582621550475456154466814991540792114137385741216826481553095099321695408183045140739747405118844139913182140934912195129301846151400655379430658100516424008204483415287625904400004923276029503781849409381610735104204069456026413431528564393000998006833314153032076835975673635426104422887309206392892283311827409823961190667870644615172407993662361371917179587456170072595367600624610716374138789720122733606118960896817393539502051315934685966015489793067801621260243988242599707732052720548753942486199963998790077249825803471590299285234421442887738415238233893019995020508868775525911693301847428544590589635356195015937318844569174991428215473164663926271899830644986023811045824090453441587836237814056395705373466730448818867055659728841011834988524824644470931122878484672669077494643638570536350505124863423699196018707686118763887976982726865886437175194569699928492101037248482756090693197165815652763794722283341567703639290684588956888334461026883649464592364939166555885183748486669136496552589117374860985438329207248285151263723048967008739558959294318273656600869806138906991745037225932371036107661300132518550400092358521315418912980680389836332947928063681084665328312634711758551544734181244483729135399430056849452103257202446170241710465930892322863902077834168986032083471359056677277199982671062017016037966780407252918344356537518453571310419863287702523314945584935334857145122061166941077627192531585645582009303505905605258875383714576558167216590600540734017172325734077131397723812898880292318612094472055569160940056262916925306192352890000169826283049784207132299741210305039894550839082815127854515246738037341885389841639002472227606131766944402410719108224678845926253287392195310191676861516138542400200102033650515661912112974987477950390750069959196160898395667882530467563386618430219052235062996725863904716056230294102323583369218384315662785304208401855838031745167783322418341497223039155434702041522898721531994025279764001532490558725369484426066880897234590415510338858905908903914502931100344779291311352429951554473133181578447527565675212680428950902324620165830431858404689937878926072071472772946440453797161412281634542874610800426442859751074314622345601198390907465409993039226082468633191408987089637881433495479143811239510392988990282169425131823394023350404426981800993514205375893151784025983174838865339256466458285553880670958179503761497689879655870948053590042918434262692888199872243755658370540473257008685566716702573922169151575363272732082206745568900493826368952281813025555022572708560455867725819507274037603593937019258517652796475757717683724553142389709606885926853564290486986397237898708214249855394954100342436746301301702708879596096288985036467427100865640140413401701112185902784395671535863364543230393487092384138125045313099415884046360931256074032751333064495158213902912379268314287179158743100874508309009724303035270478912358810771584732398822557509625911149192043452206947562033339407349887544935299643740554772176247554226635177321945819676362979229004062361574653533781459675137040596132166384826450344608805987623844648502264703244656534842264918920972253236599645276945202390832376014306435982713370555942874809865365899296772407246065282862948444655414190618964828120202903107532512945825722420062177286817181011942029893198782056901953682503420581693484902941074245205515500542243415712504806162410867449655575789382606701830313446508394405558841881128342187160026552146320194275396258122182794707578547182538018300867937352831956067051989486774900534300290810506552000214791382095847487839821704240840231124063109151286488501672040405599525279615900782720796944867871443654803757011155081425323966778200679290553240040123876528157015071619688550611326474313872923942614238516807913577690409385593793523479922284858744256723952709381222766384814023326817753087621234295821891350448082372184976254439882849824399941837824727112567776124664221087632205943307965797091620750273438698583423877283237418155657349560635616203643314542041618130793143935154174433076054779675838273266727681913883343505189054140206372362704579844966024713034998285291970889537135999805582919309787237007533186854426124741896586589443618610263022293493085999067872319790327083562777941704011805030507813603483462326748395188462275150626766852746658444625873664550522896798760304187205994485959534510498766784734194971776237471320645480482914780119893597740750418823399517727054364017671678877128875080127505163553955960047064422623915719068639171986195474978567545974048186269507262352546837135680335199527855209382209176321746979996606734590811703103106562733654409241484580124958851759097136593097434212675556210789114925959653005539734470046877094897082769235620242620095977048327665285123088996801128903595843225017759698810706182360460677581472822638365005385822749528318346110575422860044608235221334058870549425389412212387203324677813379326853658370573853845442094739684587192149272510836518135552678337583368147785802200155076096078760015474388549284367652517403296859961701507773093709248426778097526592277317689346137955656807436178790977868246314927518977279478960994620058820815916758284054154783668409366895156827184056295585626277822363219475463247149315567996725809684769097819752077274594931755339223652709984493488922927393000707386666116367918432909802548394676876252854657803375053596514650962848696759818137621161019980408032042331500221803743011439903235424032544490058238316541157470819511201670506806738633761479308808917283817155625337062698008394626709498474033804652749331158594815621856812347522941697132865324529160728309813395191198846796797399538833749005972235280550072209245634317517954931274104298175531260519941663434811947209061488291866321476883194077369298158431217277157084632342848116187494165716178675561749874284456149976277023943683844525036514770415417085594506389467476174394504745259994308563403455326639176837340456134341470504614884163287469097059169296193180418240519772995428664712606144630197407981384430542604799107036114595515285823961671265165316400225390922184905399154982941649119892673302769720728012139986197414015795476699096981686781890090305353238347269498899867861144630808847466976692233881891975149969859839777798202339345080272634464858017816347089494496206263120897060616759534065620804380816078573245060306264890965560245632280657753376292395056372524535425097219777151074564658071648535697695116016581067944102429443845003248156516121193294928429666633797250167864731193251330095474645918613505734970853268608029784219232849465306334903907522985969673051076033793555020215204512135313407164432054285117700172329884183369041149614492993163796736204130923416944831645821511865556985042444236671676645918723577327937752406275523339937779447100714391899791708591042923168939720860005132638877537105246659622737412818200785941258725149392464340189162361261984221537567466751057141404928174832852670125020535536133828316619764323235693156108483158855552698744786219752489968872750298550292374432487610885367605252202523594683764803336193081677779969335358904253970554520329609495039686191650625423530386309642616439705339501532765208709801805761236723797389833187816695737498670646857731195239759933406806845547674440654316137726563944460291073060941569181297724982146901840104063029898309228907265059850024452453264005393215638116232566640790388329524028308701020911781701117330594938463622153826976513163194952799324588472248199767078065577271156488459875117276834909181819814598904155232135801594260117854972808774712178578154148400498707930734790754016000004326244112690876872889218166622539006079247202128551424705394047929420623601792530476940410572068479554629871298290880380114362659675324116846669462252865431313833807168340748135576893590714832856826194496784726862921122236926646469196033129668329007683032654117452695696288723143894880605767444089527969530077820149452397330931466267806975545731986726267822370938878499218264042732466002820849509082545961057079758555315992768155381321430306359836831922717763801982660107881071260949822034294226638450866875184388941803013818313492078905654891590707629339296386821906719425557941643650802801137672276139099673614512571456772516509975661583692597874200285632768168582864081956266544008082676556857005016954280707624403196148554067904061367683296125038373398012288082698410793103141973918262113140432913382871900585034170504247775499108616592121576611747515966324323413934973267201501898487164443551782498126560297947206022157059839210964956563952598900431161493193428128544973864127395217312643954161303959587805465946775614899662864177261992271209303734136836924848217006806592368228411665205728095828485772164569772698156329390897436942118077284940448501759888598036820862882245059959261568560506960284796577629024452010849194842513677157341779795544790720073487091854067444402747931947572981483683770905147799741553377589197393114276052035940561220162943613552280086509022826795850691981287369701376136588123728630060506382717318027575830926448912613171738451520901495595372713287696886684659175847907447998873026100308903919592788337403734432080702689509247160264396005419151797110138134972969694690475958861111866279891255019803340235964836182164718851733438813803457350502803029393871140820086238678321472199415166942075824991470047156389783273643372289958619004221910225674661880027244286060068997469674261352699216937355627914237240045026727940325218217283839172158640498004146202556403092328789519742576084755963750553001895215381722425711386887219563494500547128444140344164696044855411582094236060326318867841469025937220289080231106294843248137762501597713304224682098640066311844188034489052932824516931071556873186221502924582963290020145285953299926934724195636841498804463079018189535586419463758991424098588897308175645369185092575193852249234755882218206784874877335722975369162625260191036708662844406628142713853124084169516357628742520799602154897091771013788611046347320611657117361939642230950124635894866942649108836828216903925593215646647022746530078537002029309080775241544601894965629303919797486674375721786628702518786226187509667429710146889742489283203896546696512635596611203672314950758606867390797551429846706775730719092985106293248878396452118980470454183879579816048462934068404822122096537120093435702330493810689341329331032003604828584558036674978809025818004234608356428595468772159929408828725466661972770935780668756456552724064370445982172493780937158430927266531016039945882366363175996570423604802700757808604972608476115843103439975912756500006551924421788345185068942814713364442232227772127884983493549924488004484638023439486735116448087061716167815342794048820299873179865108331384242274586392274528916425891271603655379365890837381919664425817595644523951927956151973686559116015598932571588757356729144413135272901019952385825559603476595222284546149078729852205618977338298790987889729369347805219047137108387655516639096538495994008468520691844441925227055705585671873246018182775141861676230725309796342557493758578846670482985276718870884385440339892446994104841950945421289063377270806941678826332620692477309849427320816703076429781998712276962287407485540468764950285674335105082942637955414025817932020110279526087140323873130357920791103528771210002651076143004584137472520396714323092210216524611205627953520354791068149032475304874520851120097638975050673087053073813506166063645538724048811761418984043278393714774541818254075513213501900361311349441420414788366887152723331513283746060809123687222793377822184539280094335803840473973900708367354547366730311737313204066535990834288892110838462235875128905180609189734556844275262973322738046231044630125676750946841753062989744753034855276993617943242399553480727899385513923904678436554771650837492541062364769598437060900613065090354747683308926615871614011728702674468415252586904527411100175168661098894125457404730391749264737151340994849101872788360106349591598044379373267946347393629346113063311231959191456223398865434408786574564580572920755147342295893812030636260656198299060159321088113526475515694332697553660452718210275172221572852648976240929252028994244961018512628247982864498193966395208609715201216854322599052070299939030386488507004350214648499727048694106408377368107174615575203744756273227364547752218803228841122015575493143304536098962637440097058803053937281395629374380931930475807099333887634489442369157563099520791216353466457943895821238983307869403699978562058762232763869100559575496336509916976729379210305039492282819872871929645428270597561137290298248101072836045604147206640712716505218985004606309461167170137102503624790743785638875889914138529766620355629987740610409933504279505069958801569473772107051931446327820244556228687686960234807189041888560300191016189421176853453394430015201805493021612189000442610011779537527539672258085965711067360125681385175554137746851494023655619439384918181918626484813869761713596586411594180697661098114752055349080525989931469772588756056289958523115773775113015580230226071732421776406399019128064571959286396045534736983913316608647596168506639838779297604157741423130840703349613078770020375632486459574411194278711809611661531799971216601502428615897318430271015580730282213935677194630382988151987352041824050766051171878772756788105170275628921389924665912108513228921950954014736545143683185479928087065639015756969428529900332183495177831703101365147342981355093034144515045739384310831018098254000911944884983544926042949608204475631424499850687496244873532221293231744403291646275812612883673906247088572434755870617259705011248676469127733539744162288375945953069822965495528239387445732531497270667573031113538886133013447217496783600777349230352331005589775491290832799889505724637253547847464264868117377631242079293784135974444835983288667698914798232819218579415381179556500458929144197433106906365736744916958176642862041717540059350574240483047669417761016253081850335693065489080327477142891383108344990338333187088362205840738428573643018636679785695725466585373639279692359953711084551678197215218116219085259603515594622137298073597098630082156744055972824128453844089343583789063410893583364751105896550915578420947080160766521891448726888034885425699815187599852834457290357438008180626469414646455378756215769834941688661569352858513595907581610808049732701336323848344418988974214047773252472037284970399159480928884162862031025610320450470899243827407986395104515992904534052522407075459996460535516362936652885802114608220527421383544402796124812622766918297281494872148631210032608319642625385572032475573651978675845899655243524761489591511409686787084113103956598308206948600795671112168103427295287898826993016121163788976493551689305267366272318484465994955951230740432524152777486564477629210730124469158407031041257457821178144507075890173676545018402666354926013268924546262194694799272123448107594848729092256338376520086316004881243017315583262283768813294605678363928944725560176291269321996649744973067762112788521057421083228638105496380259947684443845194468568903435423521201239011976393439700182721482921875428663944199308436873477721802715668405770351408985607046201561356954839525916584636442847921974369266649544643267526372202841677376006021413995717093312728025319857627379808673148870428739049826453518047423643103569126621981506374020382298372506607635999658552360281354900492074592922106344611240141124232606160220445714154556944595347607558530872576018830416549302231695327957062975714005101397526381491553736166885692197930752203227448719885860379479840872060327792487562904400324635984862572613665571024624336005181844968567452252072287650324486397311407854695473987376663838152497520466480759127872388142821774160704371910500449256289780140241214112656517422205977131109749837619096253812300287909927626286406891194980958817771537030931909851301924760416101296478034370150140344721786819379420615428827838940672014519070641263153966789767428304354298829322938617989209233601134684600851911175313920867520115161198025056454566447167153652177859881809936338088950311096472164972196665170775091874055919039839642674476890290194522872273763218557133407519060205006353807220059126427067867985729043965432624473981410366276204215135584483330861746421297216480854670531699252457208071859899425336122558316837998699091978749579142789641691455505669010075494441105971116969977826979938978956439283322172521231592104967361554568210358748881177050692169517506668555749326513251861240341962310874592320364268564388191087994460031716380523192598864071461901267197043859879044850684346377717532467304482820786723307545748182380134710075846410969871660457299120855289470203230636368710852070581698325887959889075576541652514151105386627915833287067177541173025595253645046011916615374316655336700610943720992160171805258770880237545655040150061079541057205950678147252429791482600903250153511751167263052874689216824675639357705619318068336574572007881529351228520239840830761120827817475509030990071401973494129521847197620633543184028213874243522259240971193109417889142595032836597493075693374662645130898332546450081485297516861554433575482443073131426360586524876091821673223423344427339833614577133036991717563085216425118013943144541691393947906403985671495255990808095523363149795581213621198326617971127883103063673826349084001789802747726548932967325591883506877925720754468400759150613750561462570760075341171820600887386071818085385040938552293067668533632344056846256333972178899443358623541877966636639068728152787635719634139103952619172931653613101198871202590619494137688186178202057724284058273220778446440680171717482793795222880487367042920230915345495174816877453836947793664244216292037540010896013609835059525725196658807657848222028419904944646575114749995390004856722031443420382649950807021611163843430711000930679477866374016240669950330140118364048886305029700472687947756462529249898477547882111226496308205163403296219435981611625720493254334472448298932879618598211541389623140109523196966184160778930732727006449520764378057049780979168433619094696904988203931765203470560725539201802833498180533939539524563645155087291146086287475174074864632530400120998373795794097090602604203470293356147434250245367258023304123365494445673159634040646131873312902182667634955270587550832262360412502296436741279743340225915330911555189363363977086674610706747185064526386917905793460199855306963738674496121870363324065834213149181146357676790999406589221320861465888187167722326742489456462411565885016791396232396012440630807927351187023001144951884497695630034310683279462533512490875378230650541418533858083685393889391553370174948789163906515832190978433843897320218740243814498120623211478792550739717120533406405791137808181454578013841818913790658439606229439455890443508676101615352539172196303239266632686399386109870473522450809645129657906965701778586624522786516735398203264961575417230624276770283213304180757684909047286844875742191064777986766715688198387648451670828718224452884361591299959030884748210429659045075799702125743431700621605538012249604516326317463127702812079987478683894866345936232266161422674882490374729846891310211439531957500188019100925997276416756779573315230759826479054767704444936514314344808291305792045218028998606073343870067288730710562301383724672145090893314614087056241577440307236054462523880896675938100440013679446951349980950877582457779864560573840820392850147398694716244672936547059331463995347629436927376152519424834998092168626400890811821066226809675671003360313117611995181771407203035037099547526828455438115655104635785909801780389354331979482085983134030661934995247458043108870810556497743546775029854739172814166672723196134205502976806870735943941915196081828364311070811915571321636550830420255156571600131479286702453304211207262036922101105406429026361011534879148981904326133762011891280714711123893721987543261095365470437279410244986713956928684650173032503068845542215163871845701832614236086179816348944136317117692896777175632258189166901265684749403979117568668387596085436705411898530424809041593554156002075003162497084691917675301110069878177328745763845899297056942305624192798814493449336732582060538779030009817999235424386030915725791626270980949106755466308862547929787647301009304543048023723123229296152538625425128183667967825405141830100367081409087670213610508997673569973654940566466894904265952222212596078186905160206260468905196002865980541061315351538077571083337414027341926202845788647917108988142855866063454640672337321470933925011129148937330203068744130988855141942430303597887545273990234667491212261056736098584498761710104500688529080215612521733972309865150545627248976878424429755694093602372168079135262235911890851156108681570559211334922961962151945859545565349514396337407214266624462034997491414781718112848493023334475020444671503497985101886765487885454149158982206795832481868690003499522987922717179628407593341406949007204795892165807598076266610818533983701431313648343789056264200352649277213401417336782752431189470032495127988855748970607423111521435039112689397276252341182047017235331256413759810790444441948829401816285441495518023941979338581825670533415495287237434045445689946579243317805490783373477256856188054854673074646321369240431763328066487579491743420525555315925121378854084162964573799548933918392852993406334732398041344080543922317598337879679992070573558886229042446770788269957686491765367381341198473213237335933233986689153132590771267238316374012026740207851588189363623865925360036058590657293413550849977869954775397162975979033502639507943573231198696245168161613650865301698512699126774084824579543173973815631308853091248230827689420296480899072076286621876908038296694669450236711901400454488148893955084158103529162788984526648586648461820707290840375288378065801613250070525384904939607114088340747134720782513652777470214573140753100288388255876224657303675712097434572190394000461336308809676506498128374520908008599807721816424094702654581363201659099860406839986492819974419277537598379608349902764592449706395988957587740578555564076893152829998510184915926650661043510983943714434181498053292154053671278515750048876895792717738418979601833872596674248526613562744532475464538779822558442710921563190738746796062984491815607449011707973652621349657473788518025455851768434988100264817210096894193980577441550164977600041983939821573684901913104061635870988303016680739962740138121918349078787700030295801448879207892672363923039230991860916949062480315173255492834192154931972086355581638799946771786215872430309523835391514017859571860331086609458768442667228155807614848191572407492978248974773850185736954223694309918664370483599995611583852792182474362727339096328409821941269122971352303047909856841159197464970618773882200049801715855724909733765193380201579480084138556255629339149053825728441634761902197181728351459037185572867928800630082414623700361736276905874571680775555771246655615175742462533098820891956310314001146245729932310579595271194546264367299221911674457241046239429303484596298306521556294127837852243252699126925719878726485188012510677729960456959919339697478705028429476998484976390155534684166196599402214039570477785398991760368157192628942637568446066255469605202965711222399781576086405618715996544805883126399024008683735736626023595633265277505548269488087698383112524915429401991832926535438998147042791800151404821084901599798731175358736640541846390687345559110655356144364441523354570522887811101163279988517219858505189202161668928091793505790117226275406106279978875808619989647866347920599102083718031910503295190338567664680186284322604820829499868107741728489222503379950005942469921783628371451075493699452005387292271038913315664315579175208307854120390445185053829192179461567634453170781138898697796038351936874560754465331028822145955169838371092064876489277076822333710065446202389551601745031760647285265782240340563410869879401146094258923156412230945117411684859461171616820687046776556627032361432166947917437480156610163991820710099987660814248312884451106553096669567311660092285030961207448025782409695958862469768666946468251416817881106532256910595137278585717520237290427728757491727755954055544264649693097202430313086255391960348585564091822873957180083835174968611137615871389199259008795963432735068740358260947246100565540745723316490904349782490984302560725868551807627955220769859836850399002639544551908296260574836748241675542784193740821889662017809599319193150846583614837925136236897613066433932689604025815096572926221382028575246491791725993714183377901637710559020654092195052664479388246178376727063315808175249752910112936895955126584404391493283543296449392003171018861686354073581755115570606837732459089815199398153332514251933700162090852432693181642566208398320210082124680376967150379845794694334875835846896305975444921353849357906611662643522671788417760264024389705531085013273260670527470317685923902473803877776511205778693741985871078136942447843306692493688030559004247223934536484738908352707386639496501518806532163085432014351804111564648815194082890219043358865731369537086090268125532268627066458625787422762536250432002307693270383638886334755890791389186654242297439058126023685472129255217716701257985258292096515077590336943166155614733135181006174201920083879928399988882912207706801057766249965985262521259207828445385476268813326866415461543632996739472212375192333887406668705515948777918696251218439847129824295043077962556187596511143808008812758664529859503505800102900240002639264449172743436148812738615838543035839063938299149808465687665633288290637805866030585505382856885094938403207289868361775315602422755495581679687150350881146414458272850926068975633601292895377611761691986983168157866325402144548629398628369269873807716512459720664966324153003900667405726290023320455892107354183138147673403435406368113315130441469432910852876676317269595179014659935070730497532708947240960017409061669148688846357257865297002688575837631932208015530050399846544213358522912241275660991238826796210501060194871599573397903205393810727111604353293446547796411778465649630297908972314957160379132479619143861728360974763040399520216855932631619282245638214193693148805212609794534327496638884271484366789524063127022932202081449683562166795560385406748901639336714919388698221239341743708195096361089623229546239466935452486006585666348941624888575656520597182047495567048306613133120571470689052914473726215293698584637006586846627100987413529012319047403602770109051590889576762653305310825917013948177789984863544506333477665931838432108040269965041354564595081651993389983007110342446440458531555801973812918791193419075236423092567738438574356368661665432439969757400369909335577006876463020800724669353639968057886034904676040901015633997216598954662401989892806134085811511488744621191307695155816051570016537329803041310065938233846338594377050168290280118793164744510616995444703954514053051899203203987756514023325372404574823513593031206263846883716473297926071825712248251539390020725435140881179708252621292227166039462891189864003477329109535597107717805966221757212114416829164673862915383635322408801147058363378599311498426362462970075628502339780032047728564148306955017704513133995946582406412023953300264046720622550293772000882751664217525554275805626173625169677511325451830236783264036982588420655482771749283620255384761752373972579096599732892997715486569199799340405121990276239755927258051335523646872014045944259047051352092562357409756398320187522734391454523306829594852647649940689974867804405768762942176991669733427501710672321095000077057834813375154153711250086931329483205200457004870452146265612952314220363533817663614621537119618006214630470885716259000133060392908591141564509194613453214811368345181535427306267351130161695720183189245281595472987344509515464987537422314450447522661501598523704892947025597898637082192259342878169216903271230565626685339189553558958917778767737112390729811797421182973220455265578968812202710149620137662110949040432105675997088689554374685450053131752878783017559658914556578387870213770533769654864653012835121957040469598892244838049247639032945382433453833649339509705315394057115252074048656101874199044092593006926542081038156651791016779416059307335870069167099580060948702179812608853114841411071424061480176973382316257600639720472593704657427294730169413144965264587548568663503229285763814975962323300093650375045096096439194062054970607514989147910883423102911613649800601903027292263363462005891791061402299324001760854640580364386693130114161109535196129070277269465701891834562621579032348102242402296448804833640517437316686968821972472933613169401776371502684620636641783812565884317507209612166998799749388266013202050424344206413285829794600864773988404570550131746116871823573663197245612156193713980830156615289168546887277984752646421551610389621940167581490466711675336808930028621086454199546204578566763554940888658555300141627054669079468414936934124358079966173051448439010799577413306575539543512788550725347588455934072219192437208311377226757912867931048550311112356571937511714473314535541596562427986954120495308257493313215745921621886164785292489445039347356350596095631673100762356550852398339166855224075354957949757428307817241649045894790022070104970774970953878779398141347824829947052493084918271480816783755668882416184308118263854669015790496046825705829746940164649727744312329651802871960328457649736756322219937088405787913595387141147946090567389507803191501954317775129433780112403956399687009114810179845216741889044389306610321179176440445784071047305074500375421674741095741002528604244463179233316773396931063452557851700123324978402962612740230566150206755799871307902878768632876225335527789384077302160354323721068882437149223188222654550339802293673849977256891255122928543650020656364258636028648406527219482659652755133629985569150803682665855860277256734285364037825401635140055438425552955050554701783337341496679918383548795087551209695901331373172906114128173763765020673604197743203725826814314094418392844890470233728707779454592971050829628124914041052976295124998905676113341722262281513347361975924209012595353709705714968448018784089350349555685043782968025944183182888561230370492973576168337541446294165203175360254415204892130780918693349937386288168815590413470215192259008969895049597298732234508487472770303478372273118828088039889622484475557971000603081347195082352523670738834501182469491917410643330747588249681983012823289435254416307484094165566864625747885175765240780567198202919977111511998549934250489877827245569321624982446487006631898868426468756599058050298922286729376115212101156161503814896778187644942334169682299066339867585580449028854661400062913704981362735200247824358437103495085832357254897826779375692670938191414339428529608777215588692433146035138720123838068265377101549342272355852122667175560574760542247608184040643754745379532228976112340962831455157846985088338236663818193923590960044762224578156814324839285211899517843991631356867927969131350290571909800727435413620186835451361503735059343937979363161332045348837289341007278133790014134390171270324709906612133417621172137176852604140188107777000841642146422752675480043153657601477176491074651961717376135444862419539358547762798593879627952130021489054211059038484452776548347469708268060963166389503641904263283194887284810650262610659874165107415210567664725077446039012819475407970465180521295724828673807961346127021476889390544324482331314914633380351668339110441355718512804019594696055785390789835427050352393490624414193031486306104175900357910955789812611861715139546338561394607882884760742977740615151367024933874910420360537562889830501610617162619236040134116419681533876815747649838068466526442112408556641082885710239685718961963998704825164446866529617743270853524724088887454242721503699540169347850776682286217858452854287176894837780597227849416183215656760039244367945909513358468624347861484277978486578077570911655912759686140357062417642924829893949608905702431976679886194513835538230014532810506973692252175966626523945332535118926910641406383122823696648203676587573680685022209331022344460116276327842298642970169142263906757786941643758539044759350208983064019372146486637664483881252491690644923227634749711936324321991273503638816835480901561536704050788845516434868092685054749697914138336606547417742315747737405146025703619546694636690930959954071357164255631571933337183489003988910219254221814689024606010365720948971045534502230417935647462509476321040736520880480060349097770275143084830454629468552128005932006297008314763647484279278804400747920361628290163546518368324656279615449804080706919119093737822783410759399802018062938661069587840785363721803884891408288906702480913796324736294386722427402275502396595932592301126871997360500141125061597921198811211267415568939274547277134912057332229608171478067858807016094065608297719386381036510301998043880308880874097076039812845210820520898329654597931515806651312365586444622758201629605771085950421616176008154117644196209618178064366503944125440755976133457552449206458352738291729119197789707264835290643073707436911622566800806183173048249930928998788892892465678748254852647557839511401237036164026934361116316094306153808157590476438275874308175133837446527514099302333348502537855130791513808671861134418866852828682930054703730914482367762870788328453659058328216121224247637238588648824519082287984677655491409654535885672470772152336432066189273387340125767423435003192136908264412555872598250522528190641839286700487581094021906175873411276715184390664510933529268621123810073455199879239694230269452826907228807897873770977261914943264560104174108181471859764307588153783460049972722406488913192064531901042016483146796060992953294141869678646371815992022438257948792616511607447281977830908733481973339101774972281442165948538665092225618581964547994678363779623432167914455891044112470445014674604277230402267308578504526206013535717313650263717498534143799730622839034213457692118755461555807027690445709868396048700038040450314141767347942436774977176858038124687854727217915735620159292953371122766418867287053657160778420703915175742418083565967234285582309010453290880695970156992189258013809946448293671922833706373077282737015648814874895692832810382183977466281378911786827466840349300499813487220553684012733500611360623480978338425316070338780554339218763193046679687785792682780432857964896580739613207298567175927738159478563312782984784866988273410213566417661954399617734414311197806380841833020571865579137824050241935996210562113189430360804651643516102218386411830879203044714161299747363580791997701610384481049048623533620293446755176399041632667249793852742266165012397570995007608669159748251871633946533003638407076213526821630961438953002400174605713395881546980380299240547675708311359016082692785009861153029600824255515487878276117447145877277211220901375055710314508708928184181257660469912511501524467579349893995920537476987418195822270673392156304658612046059031361715986138118827753047988037139137672713247472615660847508085024324221369205995363601349945610689344151913396345425421645527014733608640899741789628868177049510743836262806847298338838340717074054700774326577831708781204051272122100211199040931602161059270580914468163159405116723352935953983495095731600342743594014021090864113928756671201504453897409730214134472347061082925302866403772358372829122791860764715175025582494901802512502353128709993966052604003512431564546175697225096479407532468126159451850176639925128629803028955090995004451582278310470873296384552709543390598734455046397945699201768125158495768366123103333814438356003446264540650179764439549400318747619738105467549906420219422307663267520654887092984592403949059470806418237130599135689626333679005516056953786906700415947907227767209316801602712274544055413274214235673190768199969445687494205687056769905993956085349479881325411408285214929990973451831585381952552634351990996181327447143692419280456425949780824085881314299040159932432396069474812144612171130999543151884135296255326185946331218758081375864660204530404392405015493457668463990534824788975928392982601150777003074485122693826036813739927971065100314328610373425982959760806905419313667504238784262816754350868431102974937370760330276516280917915579736648556237080560184691089103714463217486514313276285645675094113687974142211003645793418324461368772251498225189222157486980488211573889912311877178001678986146871556644760990663963680745075008208337905185201090039273805800853977630783273563231253079944925769915811563694676712406482953674083517391110691730480605557716518282848591911902156165180856819716750848097329463225295589519225300053712990855072360688938136114803004924759141502298684547484976934462986187538799420022182705214552870233348654353856615547200835233333098305122837684062563091808064617147203513942414346975456393132694358424252813648386000360339493031456968837431082624278608171689658768894500320546128510823417687005074553018178186852530229119545727022079695097319802673701915236003823268861715523966670835625920129013588106110415554094583162896613379982094917388649919790873641899508088759970606657592243645121598688590489764458402832082652563960851003927807778919547504044059267997467046323286800781693820916858742216023807340100574056046869350800571117988381119337465725290074753071160541325251027815386776394789983363537511916743570684265008269353987221720547397396000542158393277021528888970193021830814148393111752293920152046248382670295582858392213255564935754394868387156939427493367404514938454328985052686445446012180194296903918909387904508338520618837664751070959331572551292517009032115511914273717638809851775512822402941060222721511627868458728488969402525726179574633401463783528468905924864930567578772539451731519952549835339551653035197685342738922455480087753186726975794727527213731588126840672162392650549619337179224666481370705280661595644320208067483340301458815370311652969179482126202175615063851994285584047092925062832295527893356838344712406495539801495326156626417644891959516708321094839983966874431485386691895385766734416700566710474000324869225137284621154531048867159726007219054147455146971436347768269123566838846847865803978815746414285257280046858781596564161857816278453231619966555028594419020093932339622963238616401927464587824210474721179164099421564696762760383469620541871052703861321558726148491409297402803619405127694387127767569726741728499728946504162360621804691358466519888215156639307315675523980667035792685483843155677724032354274406284541668634894019873656945429256528677709717933069168772313323485922134277890642110809365235993390228510739194548568765755243286803052723527436442503015115720164102026791225856793406341755077178675915799634819621551754915693775543455081391602213922642731122698799329359321322264108274933453897216452361377862221024548211275925770428948234395742260434496166994633209571742031907337294546947741112824559652972148679587387042427244811010251811176231828470798411070936937006928818006189433009887867519137171873426025710126488360103326112492008403708104173116079074030600469138993744697435740838858207596778911908306557649488193632998879236614859217532281084391165522020147199075697780022642812081952001116130599585348231046991631686968462306039558402599208715012893938819534091306368132753167169493516014525856410786301549440665746701883393331677662640980366546817716229379825494935421973463193076725925798255757073543312924326712718043660782495663035951367837225010897360684408942847527220527021423380626865832106501036625721711748995727555415436731207871666886571026907707279560751526373690682825747788683185101749072485951961609266125723704298821536090523065375441858935132791610542733480446597985016496165092567571235684056026070317407101963574131357846503024694349911219068708532297773348511945604192723176145182398501398217978837862321661040698170511926060288443752570703415714677806079571660893156648525560784771860306989209166613001511599028747369896109994182626428704569478365038246652733568579330758528500875959073627166068014557325673211746067526480982334093573567434250376811785389292047006400249180348249580295657144273575783391298770762187571888625685885248905120905412499220362230884555102118099667831091870254537203373728964529504452071544015432658541607252028114428270998584332542417951821899291392786456298497854215827581812850731990605308731469954558357087482878994435937459632058988957241846594123951094509144813468327669112066417859773150919427768349651278882429700460151149925319605243674891464086927147114950295475313198955167465018332957735093729839910794196900206198061679711235478050116929824827319672297962898252737898964107450293412331129412031869953624270757951848755375967259022140584649474650988071826005475902619748296343595396535565612852410229074157700912730687017549179756396957744190498725979392301631936008121659932924029422768091423285470799822036533093061517970592243046240540119555265632524413346549720318541581638269702392978494377045739933073162155820173978688896888879971036833756610567559173245523970426139069624953439570008046017029943083347098049431136869567522566047300209283746124749406477308464145215237495638133916533442742831452854356147789729139683922530968610769875067469027707461563277632219157282805377096933020110152840651819232217547685559638004336140018035416771080985667432497348970548054220482923108143756603925164188069818535807587340775199714469091297615482845795611683657238824271786117216943995985174631692760477510829565852253376432117859477229014505624039164342425197152661708357210824583235464452017948372992151717242604541515774166577607430557761695103688377964971538165641088762270929517042517292393863341767210215609672096154463107561016847794128079672169102887866827155258252657982160797153271030118679585339988212729926297234751344673096462479040105127181482775780077613878538870000981680866460904297225551145316353391521867312416492560522174051683560530135361027278535450953127724917258344662883003225134226895476191873673595607070939762395701794274784489148141546439932512579910623353854739344505909531406656992208853669478398583260529665176461513978808308926876282103947275700325548884757746156908576975579740620588155877572317823101140165536190528318746061492328549822557218481570072415274273699665159971433033437647881888544907346962808795384235384856965917441553536772837340189572007056663393013910683421333296855594424970224468888958974454779617588459456832399553648725074687815535970807033063534318778054312308871401393014526535783623377868451540185793762313189699563991772979992844979586074153706589050992228140122181612671042656017249105750127299307260021754415632212805224404341632419696033914768147080014860112023799219182157142210774099391367881456322683711240041117203788287651999024759477294442803584337412642947099323407337412622971633398176473909635225460598024382672234017789210250107333142839586591831950360920013357256206420030590949894238300948401910324558166287876927234830837425681793399040690880281073258767129693428763722830429168970802143458887192130473348415230846262874912452523495660351698029601002652306885118064150220352131779310514941141678475328276851720243447081033716236525187369643136034199847876389025314455578056008204000725123195479509408172940214927033539434402316895651633902729537366030769959466926485851304476153669795788224199567621437948875185188366174245988060409031746973098346401418993847611812799028412688691786638228921349191668401669568471975403850433620050028064007469397977100702215034012631448914023998304665080185686967524875242512214488543522341426124520511400855479593241316162965072295437216418624566929503510999882383635118300096631182208114284410865785592608491877732613155501681440196092344042899074608940655062893357576876579511138749172892849866962463914202654926227595123389717914283462030288521385166125815257075139024488422051489737693815649044233679091173392123946461259448899970703574953813029141307973932860316110939587907853249670123091477720927526159354753122040016780942626995080899358526803579306145804469219018489624861571327639224291068530925058602774793149353907865709298039797951426408331630165530346578200332336069446530263811104117466868180841290057285562769376654252366426745469043965319274724475790328271914144643262900401759386638863439438906611578405906063002713928689079384998731500315496844955387909599593389126738866714867984537601593355089959770107230480140753605345606172630867845190910620391109168835330757188599961754605848245559064599264168451954729214407810717767006615738595567725965988969269418829704716074456372590519198313300026957179867207436905521271470635116709391952804575842754211949621515928661687850872287655903433772780594438836708129683260265909164620249460638378192606676540803506069109727307403170815527513498272669059620670728836145862073033341650753692066263650145560322447866909412802591251051031057399543187393997879776008093538273085380212191914955118313684140213897493310759190140279139787241833374775036131844006864089326128236726221471331452272905492566788240483341200587695388797805940631274835900136053563770464799101045201395225912191599935031389533137128669341558290543224589816711223345366486815106734646168541207496413295178570807162673548226580463787902792383128985642863516039486301120477325359820965316855043304366823249853651554772714584333136366817668708918486867893837930035482930444452501085561239589037316453864034025032846389406094303920302405599593220577837590856873020554545307223152559351560051735874678737197786379802041082695715862533949986419835704027504683548765601319720880868558987890092193496559683830258790385736888862545467605480900871921487722545820940832988482954563394127573955578067030660473337107445982009347660696274277839596653730318815292387882527816242896064514857849791728035077500176810930266507248925779977089221638316230665217962063275027518238760819406097595183295499244963231967241667088540155131136748155665167679443621386931089594323814695957176916643135461701317383421592126546952306484407674150442139800826621860388321270644523175857725807411715181017630964522541940685322731269981214690263647709929654187024934364467890938134318962136703819055636990867791801240945386769909476132670634762924597543359600092561302482086091384004445580069155904451069684746905691233912105497717307952507707482928950230091719262279292043491727318604778414736566545700540268549309851932137418038424561175190019400906962144744523809502308785198867212816413728051144432194941734643587066093312865675572765548756668794773581937862920525288527630746262115942334018286125743332313508658612230271671851802657518190757651499408669627159664900028520548888713676097214266721136105899277918504345467219443747233604464155146286929635592778470618127500802614583692974613226329580454279853889677147985668521780129102032665864636103828810744895726504646731448399617655762111024101262353302703296424548250380898421615452857485458848155801355221720886532150044897360649180816791911619073399904092262991221933489456453366846514705702326645505585145622916984119793042747634621670554567191921346664960283698124672334096031275237487480207047105430629113262947298445645371635140916477919761486589954399005738317701434581535090849690415225784432267507393300450540858573938447297850724054822994504197543236959718581027842214387470102031010475750085950476443701869007419631376397903797022227097787386206104016533309131323215411951248806966237020928115897457193491006827358878134073741163563737258903363245876430563722072785698714854519211486569321942754766086131595331618808395227415891105415728276203778687433815505306786825806389505624451295820068117460246534619061794924053781529495706015328324442297155082390384541094434030030715421029744760523529014039024106852294437822872772380489260363865275744211921214362965036430343834083560940288910528714571821444235037331110346426193965447285203683214183566124140590861434059112920184187698127061598077118994462879034136585561038402445176963142365866546113456557323231347311420131604592898053542947308888372789257721812250582715655109346898351180404133749663832962174030822422386888143806471038404896616622592619218023810023022853050176708681958593061609522863852196490917418255347606627897470278003445791543577259852152993214301697539770054031137761342903663213253054025277878968832526796371918995849500903374350185106544800297884492435666821101883842303298475291149569219808824213448059991743518647913401384045565431460923663565302675816349857626644946314691351985881986628455365146244633175465370032238692404238871514437134662085602601608964636606740423463291237660189368491808786246737659718054733960303937541685984964660562780668398899577575425865253817707651756529493160883608691107923009492359940292324342389132059135768946368261197286071818749756513404581329571661684191489836600387037216897484067101294009115523040624989218043804716759617310147889114679790549240657643109322019798807339568250223114329256783191114770877155636215019342765535695679103367806243985851786306549679526737847774704479839027454022709793407167339250620785654900883742767797303446757313953448804940428384314601678424966434347882319997532545788529300472521795752118044071492012022999822409847968543893022916320457636479886250358211569653228839815852084436169339220619486393615067106315488246816003770703586250014011181872609966379207221358229069608711874500021740628493373621767142237803133549346678909945723324399934499597198126126512866498906768945885678650421702238684544227220618188536460858248898664575679723880463493430215461048350934767390380147980977631428218985076776553758506757805784628760223191772736522831316129128954451267690557301959085476342067831170843208419239654520990022916380245667979143550861140060529142888347655201534914203687643897512684614773315216675950817786825723905609608426001558046153939608938116504119288677322231217786580121748958119211447665333321436518850086214920087884365580118355779272332543290052759368711906152939085442957507099264881786087686104059587999361637580775792770253157173930234647889568715602482063903003989514242180743450446479389738581819353587336059798568603352585664233563183454886214633608127176019906295276967242921771988351302144254430904306039535918600230043310716089866340525389840882296578576112146049692139006185131346245079950987685554724791852324621091604813048334763952164813126885354382623504067790191096604155490813371629398714190875668088805247631666970400264586569989429620687766274488781672974171031364953029342244298372523546637262981146961591997354014284402024269437163911736612442706589052162140381496121834729271625474142366999709847735181263631490764106102151506655475082133132599849194423430114039597437040687507129753500781126386613954220162086569097667868937221789343208522224535366788662090261345012267712115705784791869876937003972129223073760700926061386084828967982539462140329671272999910652284792485918454416711557633309473888862026826403646512906370971439570594311472866444715791989407959979976354208033309690977305962718139808094437410988428909473343888385030978085692189566927208531367376882613935803311250140300012576114228346413381435207055421126922611896181832843672283815001677756201700693195111589840008050004527319595052422145183314791272637115933915233061941605951988679844844552455494758458781387539396955089043164789094564595619674588553462680469513263223435494742507122014184583595711615823028636046787725517322208191934524618804808587287031133460390241286854374888081049854715435267273058332464813463644234383440683593722580371285550852358956326621774755991683246242998026362191063397200078955338279804046128677552282650013494617705135810388293521678861992402376369418499048238560940600882033959300131987040723309490577218535536645032414825076871019075185724988205833265702819074922251420737760659923596156232801191864412867935224239230149009200277823756075615285184519288716399099276820672508317521271337414240265759465071944761211823839952656184068844023884310862531130401810372227145468600980577000962375356174773756853661429376898144420750525442898251799520867711489457472038789729352463219549823143938175687799092039387441974438859205130542773066293799313419082651045178489794764118795800709266493296206196310150914779423183368784905492546156179857696797759883967808562441546189397126240731114627033875989309879980593874563991980891788955564120185897673120973810219145103063337758222254871085138402992202724564989796001518374577623131677748638186453022138050717274000952916429175114446921864398878419019967496758753402697431671162611655146125269030887393634672963531767199360169284875116287030186641917574809510108110273051593978420663788168150245055993360681413609363831097475531031184025943819150946323535535396084780143945856568851440930323265752647994249872973123899300800198373789651140798335034559228247192380676309577463661095145823623932751307712009637097802554899500596494997400951519844572071243531544638280276987027162608624027191916225091793592432405750869401180510871052000470182367792473645498307370981253141538942866048311405475233845407888605468052756210557590618174713508073404782738291663918726406357036736844890428274936115986193570258897822145668973548859094572587024194606620595373711526204808977190269189510336206990249015221312717782038099162076182164820038219284659053447665859621908040003616546341373917494707030974218021929579619237829995549938557346248001000590180380478604860056871187711313905532971307492603262720304395783893221003916268125427718560769571944573762016149971087573121516912159768819711666667712054802069249114677680702487083997826966477399421226078317732126102759199662793303651373168955456934585432295624612404017759000007995996109118097088515007500974902228728233616706195369182177072342238412084080773340230310220324432386114204394930715993086009957406237357599305088532566771497688676531206431313259806328683317522679256483314484892142905971041940955880606126843676704552745149633207230111908969869176688654898730908270528404706988625166423429256177273627740074396425921783854487311004749620599870424902803313100979491598810198723287483274824563539902918938283899816400510812833721389497700306412569818834880816835963371635064805487420483691470515276500980153031673867351238538252528195005764885627024968837101274989643548097190675712772650166634072885232900392432172293992235242855078746855472946699487228657376453546068035461075811968019034784924213127494560843414524395532277299121303990871266927196608464823131035666971743021511401004382027581079573682201384117696025802616287370177341556213343423671831346109485424561154213679272176010260547444155995002587493333215349601797395767628010671005149203923186972676431449186973967279992685608896099452683108849881023986893442484608234417793374589095948270117819533031810088890051350068955207581684413170976356248232559876803962031193901010040662066046353936231747716539614696134026453758073264840947880792351000610612620848708945588884707135977077368459672203666560924738937884162760072140515197980271076519411351402231462125266652322359024478895473753701285234155981237042339234967352740821984214790695160669461103877670853531458609797066631455344829608425495272521303454751531818840916298971216930930357956787197570671444835347052899521185484541104739854873991077325877122076418614571718064527689449433879066022465633055822198093201106648723535604853268178771534661651320389810056197293206740703418479262311575376436997742736651217522519086796565942638088928241333651555849873399056234521198001238846487864233187674162452281639663524888424518905461939938023026502775658703305147593885613738253241463099797655233920954026068468531228363559678841329311351770813147442280938203568012722650797155270401589388713809492734125699167889838158928386647546708109167583185446700651669646927817948056224447998466638314872028337752415858761299493529727033498372751213456323460084834738212674162254631288486675119493562348564536503173022413584515239508202266539506523423438715638814472180694327435839444583083062014866118193469880983492643427343787924688304462206928140701202977793524142482131445703217998151028081737193167869448848481285259499095365325345605973153929467623090737231181044662325170368286233274765753348056218550742390823434740685351718453172449870438932023906908519263919328698538660529053261520759874899968244202626064609998793155277573882717868239823350032166334866497771710831195570489998332522164687774670391682045453842602312518577908457621416477308799699479774572950221626844101339882037848207936810061611509061761049914500146769486150698743367544819385444222638233034284208752965913529720260511946871379708265036569497992256003249776157834525668073569018293860887232010540382580361341142319711489500985727885108458546796888926990088036808101031070140123901203808863189733413516580848745032068807929717363194715237798951920739472228358952461922709722007520982324412707263063268745932509787858505370535975587742730933505230595747663858826668814751063705122380985854879119579616331935710655567120368611352671481110695049263822115654029892341510110115576795712569857925431784359191795624670928368899314763168032574059904666619946222994596759884252972193673598156538086364135012702947364549852537029501853020408017798790255249864730346672333655699970960381039474315048203759528431761405421678220414707171586951579678654483905354503923108540371589334652259216777780393551143093654848428385779889335803357990178677326851881790312928882672022443942133935246906733289285438842957120641609511990261349409996717447755850822052461759604564711418387384062447390145672576880416760227122321654403539844539574134554232039825956138907420731490976456875736331003974829932154197635201293950551342407875917775657832665040606379390510263681383260342867266252215985777409014654678156301155554156089240396696950509198706555405065393398627602594651773280737416924487804373873808279339964570456897774596295765715173964141009831574078559526928015588155394170470788837505853449770267208096507582476269702985417396134850370113360381661755123758997291946760943052587662890074840131998041735691653491463356553468391624962441672353811354847566407248922662482861223451777427972756052733736960049656886326441282359356188082952172076694393697575899776953304567430100418673580225789559798098612632867898924361117910083083634736443398500028457242417340997084086421598286309347493210042682459734661812071896374684327074266420699906482063657686761494559420802589327242727359594993721147593280299011710328237626118753838641273200934619337377698157165305699520364051763408171799049257837239026257063828982641211715258869127416203227533432846603043756249231647841616498895476217116079774013806042049914630744179514498326333269106940444570074409067842788373422696616729949371301028737352549643009710215385521141328774318386475785441969901706520353217161024020675717315003232080790431290350244315027460674425412670354089178674962321703084403460336567386563954759354394891166683607857889636962974988717513643703285238208427438887025796179190194141846094504080297217084418449920421503901916525986001177116820414645300073964589652450020534729943864739295943746516591290426654086662852059444340517053208406261292770750388249898424383421474512837835281980306165494277784234998985555534473961244097086711314690816600788623793202161141787093266018748132262914179795797295030841682292623060399173351472736145559970204097173125370898847136755435434286299485638777276315374773816930475571897576690523984456253010501838108207317771283438726777711611203864587482559306581991180563575367919800946224166691867650213861946426844027998526842836222664244500793833356332560866687207817833131704083903752846572863317371725036469994073155181526686679023210565002555832085978569933561992202349686606136987439360994786488807990999241710247327768754049725511918661743123036466439730943078275239061644498900757244045667977685811993964904229624268992437887590124118738431671150037355113907823575177647989686400365722586785576567251538808446121091582360510151198517816407033465571469396691258556409130807902880478624989858706923801910809665477694751097743503005888410417873390543985123157869777641671671977782588258150434662023413641281654232484297501594019645296009687234864786007562440783600529866759207223517692307118472070760737016709777485063737591637961707609805255106598104153773105274563152585488448039918832803406253738230392322140053436993890747033472983175350180421840310611785523489114327869103700258435121246186608032338155080498399694673630164283909660470893986773652316485299095499868863243568607738233755630094314744743290684888107365634707075606306696967113861520288817047053523917324127828473434596770007154938073227245691873457108660432498933810834799636998925348198013349914612615452851359846311326020432730271926669787510877849352328117669920825520338215950527918306682766883472904369297621139628224282991521953534226008099982567522322359168491685180540194025063724958886094065181530959340688040961921092006910289881777833343795138639614776544919919525905537712689341368728011439563377747381527895545486035840456476563662571699242187814021456282734549701843337374864524068808897967229199793721676510603081310012876775167590967284257663493292479341293435191381458314143768413594406787366697603548647496311752277339780828808042486085774420379510431549240473102731651907094441516163700947734255642394325523867176513493111771838992196025620794249221740550360001001531249678911898674528337801984788846041177906327404028931793691886488649483793365379135176950077721286417283302087378690964119356318195158151068618767306936847930264099480758232865830547901178888206294402325125322908811080987829844709990992724347262161233755467687118650221562939436954541338657668011438148876228785707923782248811058346600940747332317114292276874005226884698606524054386067861145154611699160193443620805417757905899815463068806521859040782530850730557122621292794121931333353761526366308248783091842762533703006137772564779924313806922666105630718542491557743501376124623026866101394867425503524173755169384511361398982003746349902625393707136252954741286503119208873386769511605401969065464247729048699897105780869411157952733773787141686304515604440874093839046710147748373318380938406080597793332004225997093115258566197144894473650756733755432389071769608059841783174558248955173588739344409476070379167249224148087529861799664424486566429782913462042402233807211401407738269883929362687092634456243803927445236481952657454798946056900981760004331515916884761809916381050569195865617519185665323357921690782513652299345012277689769733505141178454672667858193038978596977737199567377291450877060513247522389699096030795803431348878466546807462521744748214053413482894476774391207891147329560353159651661729234360619198222245092387920706052197917681142049673552580930592557381972089786512380174030239396529116147426915319154406812476371703277664808369110351034700807908483162151204710653087236170587462450438116642964509240656757522833612906160662317434975016496427098880135422948375167142793508642931605067787733570633217320296504259878314654000544366623924358758581238058956136760279002954532527283383610740366435649239236510927862700813432804327843684808966304395887276645544257959950699601751306483861886225202786968230629083335566382249662055330775234912536360441979914423921218286996742329318399810360389457106791285578987471137164626314854912963964134677470432352791389238511727869123453018432355082506491012146474873509289616915870476578288124798650461752539191071077235855971202692318011122811387611895114460419730124115964253701769320634254810346232295484169928426174330623190401082375684335426376230240316341586766640029720557042572406188664814359454159724637284288267679694357657152430868812985479738233540772672306660690438554743790468547555232458911527991403514270994741141636016676615525982560944119943943686548687719525768617746528270566204263582253076289708336377505628149992009448354936018948961476341716260299410971627432521575517705056998385417974407749586347036993757804962338640808840812098895663353713342728144361839033743400068098538471587090732925454344533322631666351776003714856057804182512921014625033609609990484259407516643158865288163901079441125092919969261996387726051598801027935659585362326891207319205652263409081134817237750390737674694956600879079242625191982051716628171932140487745829990916813082367038074092236033581010157824655436008951046648988368707102037003384043410959945765328891941025114650242488641677170677752471311326808832742308123332379963057117584420190742232452464213449501188225741873636743615932905764193289135246711684542355199009862534747101511082837296705704919068700322414868446296996568521210214630419099160725377542698206667000641683848302901381054232910491297172457903112740229569813212737581856073315464733876618717691004970696555027471084755909152988214772826049294419984179266506028647914490115520973934550702839672187725088154822218054665520037930475888794648559516089143271506155291263583518880349145178436804881472184124660626806977777427458056423728457549469474088839557239337117863793145422727443730030743007064628692830085862408031251870553623438775244432084729421454748906289351281200471010230110196110101376628734823280352992186399798791496180228759491168039285848161996441654432341106747753362492075134271313319979867775875081190969518027944330671474228455514421504747853988875655263973777731697059179645099163600420749562877334695293963653456840520651611140386670214350766043312269639780998123444737446374424259454962945703732651106659192283371773773832513085847171837898373973472106073294255751968094311152143948243177018909785833572267975535035981777286585453028744393031792394763912735250727727820095081939101791442116191452295830778243016937473751744801095429534518455252228115213598237141173188531902080421203205389321704410978880375057031615358131979984378991078757751290821759879215975998844204535482446139881729351604177013382906145134423617884999668784145864800650921355570843922258907125186224281821654275075220802999460880439022770364281360395272473183076176061514130102966812813482126639355773091000682377294947238316025318832756504782837333106150982242335282956075468066379255098831849522007077995351073357923149148889624127073008787415162053587103717569132503970622641272835215930292978748035020940423884718342211938793784062828742943190601129259460455350301539402492867987369098310615253159899355301603912414809761265957962175573012083349531750849319886334396136425874314810144490901766797898265926508502285451827616752661017657302224021462978870661418759245123813931922973316040027585649271844418938231700629016634505443913875382086694941101742594548327541440334232857451035938338428633718128951613336805955270204916280967830368168244758759468295312591177433868008475332455189642329747570262925088378527958454360411614278133143615414193790944714019776303814052369369327924547799261819797457592461543357546190036713339395548465593365190694224597741934773448028193481980053523205558186714966087830432996392860449700474114239668846795387530526548473348604501770528790053861493672862532636276993938903824227698750139746060580914360445381846542972069404262762477247127347588783085898414459544771341655153595933006628370942200167065966101078329559256623679636453112093084765504826289560750411561254853470177472075492552498138033817413078994909784204361642361555907174021698993168554504877448139113306863587768023447864420640831950301746754316870744332069527487229943987208073910965535734772941686259949116684224667456895800708675051049911224825530155239258125084559711125111976889957726255845698902693863284723091281626262036609373649745889316466266740167298408563054241269814778924964290732618045868154734687395946027864235334478599020911781636922763262523092083213298879520328972393893916393978853916337647999235276207147952785090250250665099557224185225695687239602233378276039109430851885529017573785710858566392574556816316739543886690943488357870865056052540404271423923696859690474305950981955594264015322523854906332963849065285436939385892310265296134372832474138911447886376290340412291775572796382983057664880465194941463082435658627847681066543562059856198645899644020485125437983050009846122382761655592875218362290288782610573861629674972712922179589421669157177703741384761466953315533176371396089999525057080102183807995427130491913526431388270078070018630796685762304545484177001168392375418139172318581268436539787639340895450472678690496062307685179824745198176010468778429916742844023938862550280780734385639232371557167842776502561748449429273351004918264424478070633184201503484441579831897699344929778130206482554628256591393922068836932139551774230141889179574626814542002533264707186727105320623182591494572625358408805831235634951327458713378808841064858056239061430251527379877345061067275513450374161924657330298215976054120833267553716718355014268767611494907420840659832309477299445715482469733267969013013654093030274147969755649377553907426739159316829968713397369332416547750661777506314257071144834229135997667969953044892254501517810047904600813250419470498299251831202644783722235039197117323987876434200353615635841657698977976017499014765851204458596683873420999250784345707719454027504130632019187281101765282920396407768612439532927921185079752849673256081922886695950622954608853392057202527380406578608722707195170703009048127304534720306297110079662223286345094388050183031587624953287279738088337410864861984410644711439248493823117003891433365685430454024447456574346495601699108501160540334049617757061462579612793960166669656279142849009250508814906194984343374045711783346725357385848861286015284014664996258639422248083978482088710756035254414637024792556310538545812611772850662043046231809052247545927310057251605795574215107043302350523599575954198809577993925387799519816807068971282581233151179714545574040581426771663736581688673784153589565604958737639255546610621950929036106553475663744880741306658961063139929946724186661605424926153161732716917751230472341684015326274921854099415943860673673161733202762753212774203428956204757395259323670350834037489265814375138478797656239777740209820520651765882167090253799472022861094536373370369057549115225599444768771478864969834013619582068849292931722391630040687129869933740848476492327034996868344686801056406834630446096709996931153168659000211123164725252156176814965667692163494278086209187848235802375997797605402506844617048822709426626713454106717135942615700720894127836407181141080488385039509449530190975395758821305905863183225410831264591939354154799318531745975587070009874311005616026341198964304442037217559106773895430290009543068401999457440502010528889100359007027271627003725702291013472200240127640524444264746383061692597614768643361809493082999051105475607467687612736884438412217996563244872310702949292387523664192219363565058897558218028208445896715604384078591202445676356707315005022484003429690722238594995803717533386732795155038589249211018363777709327711673380014914773488864828479968174583259112346249508281258448343827350583826771371379052484229786031825475609398890461751796541869064523899546911172205482924105903472953314722680553636269393018004682078094284377546554313445163202120238210771074176084799941763123569192058101128322862553291702454692939465310929375011619740915710594921947831240736217278855968776954356717828117889359076741468551821134638370117971301094576733110264703872841179884036350880385932141424212351476262200754966872487419919804600813750393887256989376638416779019541303325907236669434117075077962219940972963972849644100810622446070078380666321888769799617838335675107688132208212642520042542414836991741720697385009972805713118445371594715553117971446486312085536912632601480884457143935388939520644869028110459273789466502110897927687506799277470307828512715562889647396689849250191671542269703953162177716625216505395789016002063292276225123117626792329318025261735105700526433126354002876517954691082583987234358809863699691923072436469934058260492885312340022362289526357994111232283630722623082039974081564052711529274051461273272053602187205437997232642084532974377757037917773215875678843011712467569619606811800392683107338109489605418684715685311375638585264837437158185810090696693829451073268939298497855939461546537179561427708556458364150690632500778166014504267224245158363704605326704112507293222112545945961866822493696351870729662236623714330657475666577264571689870557969413520748763696326858308802800488451903846000653472885580511315175353499364997925385863364120003538341877332519129220078458959610594499096940146774420694492226361189609670922215862312529653195386897814059158258365971645448788072903098755747513942573160933396088454783802723847479447501743480160429727181736675245331444513025378242151780313165414098211838834619845695003844766854103911416072101933626724680795438446438879018632130531836118508787141776990954961142750831413594541830658067556667661467346542714727511294959765793157611352486677649177659167747359820299455853179229560860658426532823440277335809841796723202082507746866657656547377439847764234291864645551651498023025325746800329370674678432517086745382165065108111624072951115077300795758404386820712011419985745241646370277108096774851849435479788805309479391473221751168801068676372223301414802489516475539995593461312280910782973320470938680044509201712831495180672321559126506412657648350959236444202899985234959639140277866548438743560744467654646114801582486842251444179068754406504755016093823148310114391093309418411538500006537846381598788645309077010156879595058212200781535313333261027108939597076011010946612520331043378554329371400955423088699684937026454001385756752339103775274788872766227432545859526696569373656414163887982438497647677989311747723805707175436416866541421904939973358521205155233651943202900692051956743620890736880677546869074741167680649035678008314740525727328037650344787216587535976733245136492014083894508485710926050076138709681848970396737030112048235681590376178339891715460085862598667491257412560620007555568339399003532426938372723417680868570855853940852008759871606399222842549836933781706053624342504249564322951289038363013085612384661605202787127668558627850218586963176092679890118133038402538718448028295063420286089299753604337696813924402842986679272593884623105214355344176660678288165353338352781850506037309506539618640657345209763149356196178934337356163144569238884002991046903889553874140125095616931797890982988282704009687930996606303273409893244833101422004343193822589792381791683436066450229555064158129262550003687599214631788601251458268595545158760992137909238754599178518723418204167045569331870365844659614284417093669583661455986527615008175867073570160687194107213408245255328895428527510316222062701589263064833837772606338017456817583710696622330255306039841265530713150231198437148051708497609677958457813345182016496083047342102851785161469893719966366892455022513128440642139865319029843352312600699476235622474232274362250349167561981964446948612224499923733192623748191101794852562749405410256474690997517167292630794169198640620702219184653445812583375216133772057347590613882130923793069589103977976280642996361024774397664239643781009435489299497668860565186585281683009937228833763977048590433898259586987732176108039049513979092914987185488396213114156221372234568556978957790759495365132898086530663459568468818340018340193282442939142598121201769160281483390755698714600658868893847670064491847431650901492001583307101867460803296894687765789307620368262869773552056988063349826740780361085329612462163873402047598215200923300470594360258751173362758465792446049672401848800530365862356585787039279732172265688028601598213254670868014430954748410124010346001564777826861023231372091501929532032225050106737434946032128493265815808493449206594229125562505448833155975510210863118206653976001302226326407376596601679760313548143359305195860535485574859483455190532368265778910077971633819903247131930387775830183257155654658369548986235761865008372013812932482591072974723025579915496667570823129673297869776944502992964598749071424640959338943072414339837482751509960413519646530041962343046357454969662605782172464048629688194522089509388923965256275390256972694100095779509635225571792951570445347387592725863257494951553008518041281939679543224282286109496729722632983214697481748187539101335517023750597722778172454382015657247379252320258825454114671894756903837272814033522939885236549972911934586023049679323030444918825232102028453107662215278989816480954780642208620964101785337238249432845896901407671166629557517172339833108648361317516576321183598433225177088961102311762861788289503182677486993177295190115537762593656219964589003983264051167058113987411332500377862515415065287094559038790688907602899759330638980161512192053580320117965412411868144281810570137129701110780771346778734072292113306731118511464237440289112965976215414517046872016891573927670179965887898956067160613324928875202200619544839219540971838714368523262460937553572098438999566711995961599980169276818737195786620781883331188005181811275900782796670344110791242171796940045237568206532000203186998712499162263602169780321137863804029831256097346118125699618291449075587070143786908789440331870322541915461046233661880358368535074339700739054027801357194815236714600088718890115179747951392121667425706375385892744901493629660921509143601090949052124334460216439087376760341088838560023689148190642599884913797248388750410620359969961065330389063178828081299953806224324782707755238897685914544696477195741025893176621050196744171982918330846987323295183063349987758561910871845918722999077463640558106058458564648283255654021223785234311446395086126240853205700306932968632877317048299695000463532004149294153050553959187942857203162621341493053694502768876731835362259278658780091267202859679138510322395217466859406284082077773049688647922043899003837453323289457368939474517847644103208638477323381142133291038736171249726882849704167423309167883236102644314763322129370840658460229026116645775529217969188153821447509798979708495862107796849499318237753447616565717803208814348280958189155658705969311078688000283858524504476412537651277949902480050388672700159807060050238688645507309955439356952912397597859475619144046792561486042595889249706998764933466797042561383376978183300992907715122232205298426702093267373410573736661808897129079596955560606411697602813004387883300780861467995837197526426188197452095713299255037376280251100991170546610851077091029496355246246522471405987444573249195917800165377376026514985223705736267959805758510652694968511879419506209556263300464097130948803942192586929175818455872724084829202753600096088339160233599541875910204454618556153036278767552114691655996560888852463183662900834302452420066726605510667554106518861638897708737533393112817538336396969294293345061804612939577892337513049627373632290002109962417562881017353528165809337351756167278036248801444859149007027019283472509959247736923193790047956972027228165520963085226530504303423559606750269458037783932844182757788430624184045475447589553339474908221495516677730048888201062687354677528117106623207669762456483869564639496108494530305308179024933173174160715441568046155209696875874440772126853902238332950431428360416257776119466156487141146246431228388676244224928929437691359400299760909426951656308923264042859751766005490696970875019202303371801589568745782095565262757005239615055949240333562666522986141775009203966479317638269084260605406541003264764503529465584569435506306492790163850721774301390189898802172061473807932313619045216043471883215509469943190330909833524001944811253134662926395421443231444668915641274401853720372622102888313376436379572550907690580783914483166330935660974787506059176321194262056249597986687867509916190430168543510068515630445163248927614825256494809248558411315510026685234174542366408796533865793504730802564676736834184354407871162069240782054040621762610440908274410035164716783666752847087086577871328628612297073334044734482060331306333249027258403002870492080078967993894868888490666073782689301222098853032065609359163544297895418344196756037459600043050411737029669002942824743872122217420541837105697374062980996360479928897254984390905922566130882315510904909687291801881960097080638255081511810280330580138984037293225592163548450395953147317129216396031473289270196403621071400649522491155118285721248572262448889354857201795345662256729303628290235799760167461690362470866379472618593318347880275194013836097360704334984115132177455255592794572178632499964093686180930078140114867080676365122495292698082124607905391792053765252855305958859457285469241101013152100088083483624765137701861609353428460106198131599246534641717236074692069107730496693047547265411440373357664540817825791798730291037973487437907974465522697731159173740311074294926948732368993971149253434140100562918059308226367002658236451266912003840756228964120310440450712624355611779375043660416005149622773067285246265602080413262571779252584708355842470219859768188297494964975539196588820907588201718208108206296115982553053379415243476537569649091573044916102810457218372377189531328057585433955325598400939063657928103011426315526856417404178910058445359721663142009316876805995172807975734039817418744937432222944445468842040202761842420247134181958135390140101369323362583791621646020540249802480702460879274252442160911790034834854869917056923629446428903904685823720015138653640069663300253237824620783379641458967080587210960247111183952297095027583551668566771496356492863981206507847245810543624720607025899116678448089330286619293964221041281994626146090727937343103101188181137135827154230433916370525605745931864367234618213502188942473131231147164323079213744650918589351234530189603268842905625184998250166063375579014762031560676541367945522300192463653290878792859379063392952848392967402385890389072296774667398149727003593774772453469067291045562035474522417698611829324932184294185550698407885206102809934185562783863932000360243548562551503245621450702031416445770096361321464588434533682017716482388509604783101623985461458383947227857560022192967391177789670883074580105638200387852526570342470679056663448935738251825523218244214529331014731201187599828441280917972601150899684595726901863208132386072043310376854943923294098378379471295455799808689735988554664031660602355768734058229760773520432148939818345439369116365685702483628910019736842715592978546712719759865905878421735229224484215715982754201699575510521305273080546047540970296184804460954893122426246206880349475102778409833473850770567218819459131898722923774178299533377943818102172367819000576785424308422669323548387015057447791810975098550742149194836746495078282611072606596463422574525560243669132262016363843457838525379517309416788816846662203424847218623866344590161386240069876203327860203509102840056083792778731225250086563739368018878294202411490376798470260037667325180080323430443616491872694420654695999785072410068472909098462661780235211966860512623014449244538275111250857332585053513225022962046380096374044183382632975045207274443378905562432696055238791519153035778128140948153304746488669578267201988550279700357536047459586371568125853490483505109778542299269077168782190569718460998998639922308166236209634859123593393390017287016897500918777794565046765718497632737336953070499473150906236546792506894112930505107534641802894277499068938516274868575550038431399548102568763810949052919156275834929130282760961818404373153544064790764998213044837881377981535701721489510900721974211319156328059863562322580972063358052379473360627306716868208700908541897045386143551081982633279257698190564971439701880778393966631085265863403713069944542019662010022643322418011983896262166232778075006995803292442746970128847769965856533211458167110485422057207588635139293448093419595028395356500984637954369869171544880086331185558350101855158164215397155203888841288725938629385992980745300308047746821061732060831115957635227420832924532403373841299808778248694591422120292960754326133037861768713786039283399147490368716167856348499890318089143519069905413778130368423604068816241253141539391816128199624072463867607779146310547183998912115435326415003672980131050375750493265351716558486484302977684959350598235118583202917618389308441810434232845696933633194714669319711282617276209520300710018478550561428805577241738318652161793892448205369688943640102304159016155906705050362923732918028285377334664187939256450567118664769235168773995969548742316476700506576485928166299930866164649706084361673032514197390646094927049453985951435402285571217095036110601126708473933286203936258354557630051885543239050021567978991243294410722227675680209791039024406179983024585636556268271332889153615913137852652436079202231099298639993696155137814632186967309732510507050479560133498981043117552378675404335992162245561157715912857055388569083065058071822400996219308606734034788157614610123223141540083651063001674607972288497158510792390220876505186409130483443542262499773321140303926903031920667589240428971280337550274675510152889241446535712413079621788248690859894809990824023330932480690629935566554884121236599219900031260697945719042869847376007763881655760929475461060686542049187582511628106062775680288957081064652564170683199356426633624586222987867083324355695955121699633634976714265857232472511018001677679624276850561582769467122344301341291979383191993162228019744582436633053939080887984143219105466112816031579049967411648433820606887729856118530047403179102623357961852190743150167326478417267702761248425725759790078990797314293082664285639637135709442245041726032488103470411552242334543474766699832545142819621912576798175121609096357790130030632485564663970162942029970623315086425712407486111310765872603578841887372103272870697373395210568934779331442688557295861955408597000160190985284205128419063717736088075418438269053161948503073969055008683476162083966831787689971630543509098059362816808874621860864562037537621273045054937324873335152279299497438572209603049080128677850086392290057449859971562561111621661884873452635091956729541448183071329071950068777472442965361983349625836305654847069324603824511801371521286469893883924475336653650940614107267713387425538103936403493663988422248896368906438542443230436692963982642948262725929933339559499230117472664935471828173122582110167123783019335976088857580358358690552305429459127574222873447161953273988152108360089480266056345903602141320442812087424364980939162300887117438951693489821040972760050644439344708054858862632013012142508478362982533495044335527604993693238721940403580403094741393541961512895695945944014801346798429525320939781840826055890546877017226432891276708336935797101616590154816461182393807399657344776786819995382737093375132572959296603897744082127305511038788965830498544007495303427095502502365746756911249000922213415674700191238368653516258160896834616278145806193857202151270027633885495666898538005446372066785396533153833557192262299946091616661109929500938457837234372363374902382967450735528170656809615872507583290679196038750065012818461634389513255199579615557670146313135784143385888013801829906603433755052757017793793369315292048284667794407047206310414299662531444668353299597715594075334101912414602523153748493861626658430104848954193595557999543054847534968068559094608450986123495499334777579229239478423309606863145958286398227268765878359759393668190349845639562324435482836010195274146495434413902875233853552103873079607934507785200782206062061657098423195493098929689802606558387387947778925942852542044721106671163536761951936081882216937906635036614458791961325103182392729809899886524654296718164679457460695136638240379100310280825753369867687807122466783510324936645715211842136434184081808019729291555738429640216224583871503426745715516181343603304357892282113515748097926437695137674243694435350581953452511717402166850839714868533164714009686938147243062515941267167511701655121466187335177659603413341239834283176997546397560389500668697466100100525891830510411628515288282155710380673821766197335037444811189869179956451163240967697664820217221647647222731833588907420131789726692093542998611381892005522889685914762616630365606564331284835098617714413802325427054154098523328342733669659612309067373277777025926599751925074100237070658174052853775748374019840034892363413017973761964081371052069570368171104123873640760600214906233256016372330634461296554654739317982905251612479090524031350044036277132594527333876176901937462377741394456957128103707937939952643449902810174136855455471246053058281221921660635301839378676340481477115136267623974108682661293553004291247218050932249667415351389366651914603742842177083720133520401007185232088221225349864160087229543794452688504503673080309068709531533959863903606351460064976851127295897384791874419385706719394238090773202838338914332184893408692221968775897371287268655137819765990292017263839382619174903282383614583918236481398981797014514686824469902196654958345665997835453654838193890291213934747577920399620809903811223100802839979648276618882078052877850118276273032703765044597212107363653664674905514119491643729706802364064808737853386980974435385965377823670381122863206990070985840153949363755805640542226777056269684829008502498129584886204034226139938229727132101200092385322865381056660485785986667900392706127475727195664950971141459749654614715894477628819367329340420629529051324910334455140131718090748537605851256643749348501922070392226171852445604287886947370354050896785701823168602375502395361832939497052877875453192443595624114754857652859946282531518186897283335405311881210092176497167582314873592442895261285386308156420287758734488545055707050785915893017216258087281119245048461971333758053112912699561381291987241593052692998371316591413870847627406109631781221656067639665487762339868075441586901797419643755848960129666153274183502350513028261556161089253884172733748833852458796514653740275636810285938351606322400430563801171198771988354984307508086318792825695002236123090681458274554022254325414223017163343532990418238350224907321779837170574047134113278638862578124062633057156614113659848286273701491412020090406279175138280718470937697031565851504467498599724895855070676483337884312953166470885852985200659002555011587763182866463373258034474669628700313314898712860174363486165356010267311238459635651754573547788404780191447407009391616729484098934080165777861984152917846836615592040058838882718934099975636151691420916724220739649855746164846666668241926160081195076355349124284681798269985836386793641849212469150953134971667648897669525218482302034509382370926980715823329954869201480053031684535906638611041642316523648707370462840264547514947203953578836747924611309639486544461092959349374512920628263948476844092364914773632157423957082896488120775093759895444045928189562507423116401023308626406473739004094853213848926567330259510520541058668476945816640235696757386370084758382669594129909735117680071535071154921526230154755497554479921231357384552715628403851261533017839747718283151372610044512997807281891221194336813953401553330041903629189170944440649729262647267454631792886282318843537707997589272839143345622931807405035786322189870594389220146824122665798959616187332427136795706539962997937445903844522239239662643290780550058116575660480981381940114804211246315958172252786592683691451919902421019548057987672353462625498130010335921814910676761852521276845340915914502929944494428005634124424599576802562333815315403039117845486618130645508682137815331037639071811276181635987267387765297057285347655163958233578230447255478048360875379702320920351198651899005653015105369993894261785966383198867156138179288833837143513702056356832551921745680847411399563328588086196876208486380654935131817373848107857311082822396969094360255057970509215548394683632733061493913180695363671979360498789051207543849582888874870383452804557157823575992636460465675846889157996396861740234668983766863802643751128409175602575767610211205189343600116129434873679115640340267766986131634065194962367286605579005684893502021644977438622901386200820204107860017955138511049220645327600173700441882659271090958817321778111247926527534057217599359422980079582482184144542926717876330672726072893974431433639546108668272170069480339045167966809808377971604117518756374376490358788333836742673258513611210564222318239898189031610396414986297809179404150927461607444212362314699308028617944526152760320675453686089781597304810288479871158813158061029106851624894545185420481746680532692997862840675247633575176094863488525579650228215262808159733024733133553982821753057919231964755632356105467988616339887400977495371687545232405449964844415424790845343902172934345976623949773142013719195059155774714651599231987695287442815888523276790127039482084905878355167880151812073484537842242948664025441449545097452593993617437591882027244438792735663474192355599535195203244749258305653921104664689698171392783250016428760691520757783736696076629463657638162176942849162133985330793298221311694254777671190203736103745567829158343493206680193854350166018479065221170959103221775592412784017739078668612896709384855273781494448108351245045681995777258135456579888447686337489052961740787631440147885260300946615439399258512826962300549957651940694221650859490337174741160835332461100671350202725853777359885532354364546381719745562176762194785249819597787296574099106818581789526046870735971694594101139795591020671245642551589715940552935210600358436174129787470919284833619068624441569036111672281684473696752976126389532431190676304956766037651639140102135880828940681389648312336788848647733182284124042288984310560775373412532358224422930357196028242624543136202189652291688591029878521078431485093692799302250345294212302671330417421878417873346791413503599428935893419226753703271077231094230695845290282885084826641257941645002582374644278208458074577073073724402065636560806599221283671492115422214619444552340103261185048003594236576978075177729380373115375223277164702187478743053275862857985119493411248082380964281449654561594719654276473273563282638054116762950051191231373838026046911744322609405126928575477448504808644219807749463051791461996861659107595329020928139995178423754102357091696556265218339442861813346752343291620266603570669618689740522819550538665838548397237135539821925517577267195893754966366537169533416184838637908193856418076530285221177303092475866429260970645295724803376992287355184301495215202040647975069311702039446116846475083989944488494278687098206285933106649483182247935043609151764825183100490550990567060396060529005882979519816296185390977046937973342476762440229429609198163186487977152087255764407214987017185239777822574722077783376454606247268163475231757593170935860960082267025940096426850639597730954027935908303268046291065857047185742353220641625939328163225672500614865666180252555895038460342312371407368873455068611400833757114261231181327519577707710179227252512867923133958673725412954003134283161367428665427290792709570510844157989377703976410672836153391589500247892960900159581175969856149350572323164781499084238120829463273509057405438310828822017398611657218316122212354168168946219082623813551831019813625527420978867254513834722594143601074460525206580468493421286674925528840441629130930341499737046553829946871491082545725609327341399884218807346557169017238823742790014592837197974390564022192110130163477848531970954136139498060545326314380219182190394791944202823783156342579685067127553960464120984812327388646933935729871721858163592648060548882353346574962085776325579702496294389058625658037511923503462693749423268454086316633360910537759217953438035842523231491788269409472697725286092573051147423421988493346843341830911830748373564207768757341071562883925146324907524884898030035946988699528145475527276095769925582405339429830558130381722899412422054893839409217132443248668530136930721442056401765698806360959820787199986639407449710093817741408910496093615866251315935677230865650801339796223663510721693148338534437597621875294608598893307271777147493223460661739365005521596255216104307316933327955952230589377097058613837250347195598899722840958573076402252543038211807378952343730558413797648231329217197740469273898243130721540400673911793032599953207046666754059109637039281087303030834788010273511037086610602921390238833968219645703289071109970872060531150281658182481091974861377218905172696612623023321118249539436451737112308828629727778198694637212191679910514424327520524691311425768218652472620382670371206894543247631096735032416088575798514952219909437051977430046043685805479630593165187081638702043186421777311877885925206628608276176129788444634849440215659882480329316874085478394843384520717922405589837426918882939472902624727695217840417240484202169360194794232171503412948286175672383235969467462802015881554035851568125097949380060682453807468825805481274146959701027996503716281643727708069212906140811408839353623712822008635477409991510730575273352745511467666654213617905089618752332642499838284177779683464218994284120048184357643794323357939535214293712475573514898492917585654841696031070634997983362976898425793879049598263775950698841826193340547542073104243240807035270842287328195723817602513928724487759654412134815180079174416181835540119682019010168688205039917455144595065125416885486980314508139546144082781680439687438515192231830941860486399230408536400877865824953737271482774745251225351074314775570175629738676423502397799920717698336509709510652759912841334270596263190599050670918640435641399466604513676187343888245158666138934009454273145832482333121257189757796234130393356213773649707727901221471929446111606675617159820621202902185291559251625378363276669130459480413745190601159383202294044443629236276777466402136492478566355587570090247134981570874021032831661230264477818744381300902276444549678814569766869581802722544559479209814656026457300420905313915594790385192156482335774763245724614643329618988603800345859104201925923378188832944519691427815206223104496255461970928467508861575641120245291047948407479292300501178272913913913021112903499613088197291153309702303031569084050438119463800600071157331734475523610661411318301550177072242402838478525166589425556635178992158472540219664274490101584668314498121345945744482255661307575586002890652082297080871440245831694482560824910434118595235739901197491334459415195013795985491769543960456843958787155789818901759887265224530358181930227992367110858978402552544180183302921285665044107613535923224662915282951419468780349769774093394046714932688029337304521422477354325221478628381332173298963851888418856529553988182318812033988381530170506498642772602470881367149583029555143973980293831406876829587108514477379977447711170620223956121089337678768170513838509207764361259221464433871146772254557939222513734906521807242493144571463194025055442553411124767166322955856922765717296547673868150377170132998290633343189561144850790603134045918284004388822074107627246890953656284891715095586133041161322228104439328889170218631255967957084322861964679764210713862892297077313336789935111433372809387683992249258352131908365485774849272694133535821282611309237381258176159625750979489057128326191545614573191482415070464088265605899906100163832152914195539186084956566788774912263893082705028954525486892902636636774960111039874291301494589817009062986106289996449012988456621166658419013621644186764074183766043293767122331890081637836784444685006934996919905724833534025921297417935984835958400309004285105911550313865311312038566768643186869539345982157925177703752671882006631670060479356877817136599387180625320475100486081574060711386714238766900164657010448623569330156605465555558510227897462892876847869452556804990453381713400815650606146073023254505858367730691215241024529153159748492053453454510731824873427904894789605849221662968630210992134968760608522670371202621848258967154231498313725373223051462611692640463172785442738030337720337576279753576574972757952410730166429685676886171675948432358130575367279796316691541281417093095736554816267304845649461394092883489740005469147874423855271556574049194797183177310746643087515047691054134784297449074496251216315299637329684989288058765949780981839039035842665253787978276372718698920128489714013533420564231839869435585232620519160249819877473337208809165351343471596323776176117631977433003294773126322653290691968344283890684611360834095630763506324077166120814874144560413823846433255873686147433722636219447419618674205473458315725880731298306411637088530530021364186525820132123700810694995178249186934118364627674058865792105358023368586755220772598212504121001218857689604336329381888880792196565135204589402242310146177849251103690633946401722601153588187271644472956963687684495236342096626151853075831683175816239467046299528078994151871507977743138821463285013151438016439370616633394809525824158995814495285451525506722514288442314397289707004869541736749554332666346865648370553513206996338498333755858488298303867613741450956310947192668701241057347095948344595153769782409163598549611143184679369400850534968287574598423556340944933168570465672137563057797411055756975995892016356883285048708920626979613940532050005552471372297437863415781977143581234773647051237355989973569093559067495266781755940815720723629247063184400870213041202597924685581741108319427044716394484356000358065792941572501410612034182476226945944021161497323228327864474356451433114108846054380167573340601970683252963582070604809016172418628796566760660628995502772556565337963532247731826566313846081687260274196523515584709704777693632074563570781535191714430940944657894094971132400207856269283723741306208179573206378573145040648510044915028226727667283441809564740172549546633657716984973454521549264802190085588105435448899167200469880970582396031108991731931782229368425055113345437042171744941521007292083021251375414128660221274376686103574431689638128571865757445578969315432583437121060519201625303743991425907113929946242505042660873423830913075296900695509655785420181605986612837290237163139338725099159613591404299275333492392034676772678776618533992720334493415343821159493938932475791765674058319805827514164073303495389054796894869466901791017539117216477496202254140303508905098542889442897814943844473721696338331797780007858149002984927834771192658736652486960425596495765069651399750381599290786564914288967643133820433180841408991670167745196901506373267426504782870982239959092506789075189949866091085781906105599774584818889053067488320233154228786138533451057582078850867223372916582330380302215858297267405421710196987815190593401798839924772243806606123708792974082039674920299889412262468909032538722483050439306577803859232961497641511887144411403220067643883829568451802891645432952117219991338660978765755004530061288290791022891058524052214049692988650228917404395900262371837285750148740352589256651790363859994707804926931653491735747125518140729843694834008252550029369465950197387033953814531060672969477130619129162021114476125935246352044425096998248248466529793284891097459700993749668358053902905415031233527025931321622385761009293795498066238817338659514919521772459716606686403732896412587819235981380293274866950733020199084836727104414294096311654309548484075503449546771759613827751709177252275310409854808341811159990790458281800896321493731248671165706498091696753379494939593747779765252441107417789274661666786505844269925909029448870434273508255300950378870595692507670539732398824120461005909414110788990364210124735123924596040742518265240077592369735384161282009197385632376265561455604257466712819161148691904496643705451597232130043178189345489730818184977832333687838998155369603451895834423129329372992234772684503022118039298581199342903090381270156619667879125167132051341548611297010860555503949172117923268521496358104030073485213114370462470576957796912862882292375327470198167544654704268356352032570121120838779619691506233781603799826419581439120126900423318859764280745790550972328756083599947418297109663306508575583107877205595775287579784666876409903694151115888087209854671388045875126682543752500576622450014950939079192071148343347524634003846554303077222571297977778396668317031389326558706720043913601549739228852982557130069086517150680374652531193317999815502751465776753527995810793978335982977600063153512047929530949630057977979108617394269913521285849342465230173248529510614208430610354643780633525246694347118206480539148118146611102710719939312305077011585385270430678108602641551430314283797496599454331460523087224668064192452819715474567927779784346375892097639640698385393894346393136543939152466664079561818646014296753415575209752662659059258196274839108915746226854498264644006607518976701734212239511985387305022837829128870772337878470421682482063484658264964464698817977856557900329598269219228212394288031368061144624576718630554799690051008949638131573849757927675684681906875057360233247554579349750154813968354467558076966801879576839303597113110296624459159129476445458382688932884495998076745054495217366498466086507517794724151163846531572660758876434888498183978682183627630712071920923874047272645359363380095372647979461753478107810136907677089839545590824145874317004998775085700183152765241776614810460524194920541388954890040674602018780558262147015807428886836457214001773549165409202912849655030477555542475071207552698184255567164195193296453533145247742126277410779744655639412955661847481094336053664324431127621607054743766641466095874831303832163536805132563839078257762744860500988720404327263330807850225988364540490890463921681562782062012328222197535543657785538995496714997918050809127815739142919766708426267911071290859831051916517903361730250061217153450760183103229318319258424088663183540549367158267742436591890566660314821598360787765816229412944138917508626436703515519801724443748680490657474915314001573074593888873110993742329380660910643856586932951467364968916079219065291136464034497234248729526183947298192758477072282186035322552404906942189099165940586457639060671774852026374656745117606788614529572258596547840198322385844879301921536785381627891817196301580118504667215092973714288526288124776757564846125867601406721347729375257422137290453869264893165059423171936261921364124670729948789095815635805084707768669836405369928840190401982853173191912264589041434763914781671275248118155986591483494617885861938901968338034638357595889637876920751334076271288109917864448287967842524744916988570466928484519872211890137391550173850481528389202532730728143497924548278210845769583269936321213880891672267792085079839491596353619955229939441929078968092616284308350709684829235374844212216914789108693804580319735724287433275358448351570759899228536333402124756164797061433241421079120742628272205434605197006143809381076848535544267986880380932002334258429583218978123426242149552682332031676836283860989841549997233431480245594402680863864842634940345186019305033347668138473307649234254822597552719547301645795646377694061539763855166560422127042427743093934455986475801845469175690477775999603157408342138738823426593208379572176175642129221108665724298799604091634284507013788270334537616456440136959168642827626780398404965223545954045032742617092927569586466762153159129000268080049939897891036406823113592745892840837796539047304668552524787941033973709633194988646374341994168445786521991639252348438480791986795671618727749112406414863631745498564657297080037598893146096633243048500049692029846470368375097049177278566773699634894203615202070064010193845155713894965880099364065413512088562753287118634915605029015467412885697424556395047370359079183556240679260787382443576067702014150044283632501448935453140514783079302268976527771443570909670190704037977653025869531499855350199714092382604923865928008070421478394175847680446724343094725700413825404468473088958823944096923870830404476374918633403782242077491086307581355469334631655636343076620724989484909884994047087269413533485117556558746221288024465190074669195419875396976967766424561767649140714298217613212256829950232222768471782293766778035567681514669880654148622929671723047049533035028005033539126057778507464604786827801471963777333560821378521631168400451303303235139565309673068816316262536574562849796456830367361459126572446797158850210684564723605971521852455723309538839396123490070786035584615191181272573440845696627857045057389968054141066484480869645474806533515166646649131992099466162158322106359165957826580406044432270873047537317907325397773410583541713056147535635326220598445094780242028796571343895725184702226331689375388961758234685236780697728487213377051702990039948332015695106382368017445063051485424025766257308972425816456431401950660911368122028868603226546801489454854164528381554801974887588571533374630847991076836287544424216072344307287607039727171597132825721138275701364946160919511189254526404097826171036060583994847352256038452154255116944272661212269593885753319774251660809454364149140685357295087234529812166910433762393951795383957305319562121466239589912300540072269286281743949540564580924115915577982635317398497889358064754336281014726157890675986802534596571887256685999856864417861350229916479563967681047027327908032539812621300341626290714915768042707560846334733197669908720630499574264914237691547309233441321177613494271258963848902101637876612519751230067133707565869724887879478892240014647291472800970446171859757461321570007143852224633938341869536960016891901710619119843251983837090383740707387765991309453555503495628495205002915575216038460276967409335804523633264976168460611487320074216822092322746546627220039707457237587430595045207475946153570140538999082447639635788317010381583697927823273060126616774852228419383489831639330977354034998070835988607379941724598536953110863262046114896655096241136693056805113260941543960124368489814237927353180088235428514187006691112189602975246771543675617842936108800610544087184288469349078331261961040289632214934488785552209102354446994490111763620311184644600487399004685101974503263425945850049965396397504459948414947412293710660031797615222030050520075242709607592606081503336327714134917602234115455992378041784632480291948308631126632387916343582722824190258537857663714076724815371429302176860414821952343273003541759811624530835932134923728049337943028120875675154182870287999427369408396205693570815366136623600273431964625085673818577216576267401845406239826171659511295948986942859313310702192647161895633973501640635959064802901226852345409205567782679362079577330133730316385772314557963389897827357991740151382341245178019373456006800484668603096973951357114427112848587319312925708479359163965775205281483116799540977486241325633092223134208728607290785254432876815235936831354442960412603358015832267655839428679970706497524117479176838860202735021826639442651849209703527436666150560106173892465916080827318314948912888192722231778972735082477127035376503485438106518188120440291786643445784718525723079717252942277813973250863807467503820987406658174216876559561504732347503385830213964895283639166191646956745265679602696906873238910406181550854350647470285637021170983203776440539789701003589596837983396147239021961564528792282100585191466840687291323099593248172925915579688380468343345050415226237803646453179339876421836097201054398076297728833098221326052451392835312196258436056580698109466618409971340069541355924430087759334971848488235309920642739246156025434545106990883947536065635714322188602578072742830358758775903319706907043268807618755371981015208021153209047983200820780395704464027557073847297857433091196005345087680978575171439681296565031797091743227090507845990817655517177009654728164875030477153908114125082192593535682745892216671434713117512879394141898021863280043565508807791619144100826219362575364651490157563317020716112570201527563275358575956923124913559695587544608540316250884044653292074640722426111538212170261765966003488302641218648820880994784780888781526946253685912304272781187539934248464447088213341227208008893253591658991340218076954685499624861493141312361941535852425064586047525464933892717535521541606351413029267850626720079507563793213052505650350825901477915337878650905278773802159871920062884674157896338235244959333878024936042082888247680731444983593410074642641791776373171691747771852621904116345801778784695584831080095097856961411865803480275016968542587178363016909613659548078416916758155412884479155127965220123194360075477943319755358737757789981008752484432801505511954251668059051080962772453527482684664460333938252588084943425794311926787340839183892788187201096547572237812113040195740359361652453507649163026309966737529770407137548151289892546290910524358752394448429248772206712546440336942676042528643509144699274255495377522984435256123891686015029641506725594439821883954129373769609240677597730863203722494032109018796474136042407488773237180595011865505464505228257515734562217353666281735694003206904714258651902344220897082628789557661135026932961970681998392401197148890359857662014708762696807569751330611200148236699333865830723336825701397958657007493325602953458818854301315503488528057899175116291095411577714947843690330696706525710551515989998536137466980385092389888590513085658682243540178499766455609102683757294187881684547252445889570702385001454176538251784180611511754850662325555208022666672601915666169935355580658239336086317310539819521947815757825336464913508298484059542547001493430181026589466181878088081515759783383767641434764741480899880617479323051656206228469695740378283845750947523212284450061590577784740739974584768519741794594053007970976872854335292056582765160511085546293629597767508501731060224670210933404567219528265190585254175028602068704030034745309032709409724729309060601065182009965165718596197241564463087921052529935734091569911920650140484903368192454828977427890754909692444169968272334870760654985194870997420886741808951473824046231412400319113309556679993967282139110786218306001659421352129407338635903768242532935002002399309835996106950666969815042054288987684051996173547760903699779245634195224497837428843185988034378316298066586089067399171794209787603902199582564807245180076884997739754676424763469477641139528272219765452466658137383670318753010623818436935537040989692724762902138566959928486910806330635589775812436742047303628640044921584502035565736332241193141232823328245565659187278014420645067189455142325080059574297698052676856078701440299528926336014800247404428373234779685413382004207986495892820880845856452393166944595385081422890259904125253865498859528555911622343654242591809187299514776610312127735142505019574837099874241009686293013743012073255948900329369442875215007757854244337865589979481968092218380188950806952608573019882598083347795880058330942129182498444041339888293677782315850104977602363099603140071308805819973508052740596000879110156383690930733919452913100385830799224297725757654422751507037331826879376338711965618780109874159053711147514829776825169324683215004885495946718608280052252743013936266440980149624753733824647641501855593388495926398788915251165581063349046781165975665615598029571966889280380434244673485721531733907249500843692624374967458419474414814209402555860424023914470192671439943610414566252814272970691636430280561224725971745892599541135188112755449588727157832134679339164999543738319952130554181092958187007000181905911611599412976471002268806148904935549209763441115176216316472922151140212299173666117467788316468991105778326855031286372963639644690089303711548958218981365002822027867408464876039996779791533765885373381062377532707331743750501600631282889701143571308958842053410816092809381919550368272890034932961291875334344458249116270590110211110748159676707685815060396987913587083214228537453737362655059639936683285970967919088551165332847023150010522703170335565539110800669081521687253855695322829981661242993244805347353913887694416636710738042395171808283869472412129468062374643985147553997639948550289148482004389129464776406923214212645396220292274634644562472107960893992952224571135524811834469650277997611456043308808180258703497413693222157935512025740959268133346878347980068932708395035843407995007274441915658214192877510513021780361074425348877079890516301499059460117754027702347621375346089009732903841991839361582918564404085593606267589934430391964283500986431157814291295163108142913633798585350471052045655870550089597114058743577046482268812449403133004739105629826684157573658464725186933799577647555488120052738173135324125641740593922845212850338658227470803666344837214343339947873557529180260939287064639583605282250519531694923371502418589709878172176584392306024520600045664720652558891634178804868494775137919390900788821324765922094483598219439785781901242441562342551277520774814548102071767284664136277211515334797796350165480810507081026730225797825101215142605881051231118164873948482689478299222431698044946097977763688890070187270239326456672780155887126009409449978621832645925483212467652853442673715786549152791030751087506961066666605419033881670356346290675101302530649287534601097724118274920509636459871446517127978742470177685188411894690476176643594148103597125832488197073809545312592708490046321831859768340937440173730513467386613386758590145856000898742219360539501742912945617397711681313557782574000450104979412331635424011952141314630662839748225408573094359614130190059164446965593417470705579738664204575643010547747230911886825693824477605849039350931769993105473716973021470385997132938177442146235811052566105153801286075337535572345672723243820303707585440503971396973766554119956334327965423483951414618185349583707048127465764027946174237924571264919705261357183315376731330745788892199853210913995269579788911194311770723233675297440015133455741475959542945863702305238055370614002732405426698491708208713151366719705944967498843774614860131894629974472595402846730930201063905791707885336283682233142542468791307670486702201834175216666237978479222573482535624377231239862730610908391944292780782698597564398220705712308101605709113908805528413580346442125034090123471875408402644483621467984976304740974432693434286496392574439811628454000001870777451348859624956948712554779073369632105901878142278539315425392825241915398807817204127219084684905306863903819782385060252324755276894202183398948981450694448277144859442205694247758565916153493446773315454527703365783872228770404698924942351890590782269636561039175858211148820571930917077443007371122770500912664527045975633694592412772623765107585901180102412859679929358236588877193752146603088983689835144246956675309731245110728713177629014022653763387787649981089077326934436983439382558644987370398815369472283251394621349566664379026643018157580347327214908824165062793867418497926127412040120520427102959747828572145153223906529176750427122401364514605793504666915035764029135394096327716316174087862372714053917114903447677328583411259492162001125193861248158677107119476869536637394646922808730692971832356132157758538575972351793965515661014357173421063532330039164707130120789262580601660544952449313661532825006204330311129726532980750324593251546967630175919021154323271625022716774448363440276330707085681104435159208861423050839646431898749836387557752657692504275386508712654896052037309665177854698656330601566959698570077583770274066015468711998384957990562558747363047449416292966841866138180847602259300501071078647065783078253374300879322618728063306800020848988228624919870762285745005905555698352532577882277191329033582868104207341078200943359280657610018567544203755078708563515449559986068912509391517046471837122671841930256227157500244694121349907073934478146899110614864896132900167869652417031901604506476730893079382237354473973435049679766193611870453877132505443098360031532267350196755280845239955099326599007899481038676979068108706729859896351666830133303634049595760195828963985198052347729794530711072656415449266304522229303373145146932803759900943461479990037658445761806137188904858819024226839254707644625926872301248987746392834944603783440158163696117510471100645017198472099053662641497977810150123826319834803407496716243975209185087053418301556652380739460473262023179693824008755625767023945014134376939905476914718137236563966417315000216769945229961271602033727062403835305165239367182826215695702526800802097225339124377162499372328476567493771765032865231829424976631996954244019018153341831643292208113689573479969757794433097603071597703122127609384382911945385150658205458608324481042376122142489102170036874847690300454185973140015177030503859081382978912666506015870324377094066222955753377757256407194250557320831806000352953000518489835551831510151284457649591152457835741761365636940234974971844247914730429574981243881784128721767613340366181321393588453266067615279763170074039180428312954057026063666846044383030782923463314657470692268999352801120554164131482324074794088382158154035853709672617222838060025139721179645916251419938797929931212844489121169812410496545569738797698072031421137640330851902088998675095689274838362001504555969437806565354752521951685862384303055256065704739158954925221694068547675762106037529656415193323320730396635274698935493995463011368488809235415217371179514330420627043036830838188127809059438489744521902743573200279473407153094461905249948256417712270594726985424979958796116386011492319638387100315036867083927162343029424674750610989351413533414993641240723586098907563838300536266426330496906082226073398650570479136477870950074565040465897527454227877622601989689201051972525501673588915931941118921845532797767417399401621949251093919018878557695889634773605425305164446870421229110840602571095315721303162815630002651389384075220831640120033831677381362369013805221999194873334704556384870870046803007633969912292240716996684627101836915586243181071175072332458757703146229748329799933475880384841306596917227732074054103672494821905043825168001452611182389832206303952758340379592550224943928800683890561866036305925082239230050029790239965605098603273870108858685498350743036346026761331455854562737173397918982910470938025794400133499622511596155364013160318564990855511635729094552119092556600094360124723669179089008465783273966041827255883298334247700350693398898029105524164089985295595979968168517440450459087695102142088291410749529986756976218241782295010180698076797674881620436725221011833704734966587008925984599712178340535734048241974296051635219736585824446867736758391521120543984789102535403712598620573112069357301680452209854593185880759813773461597608249644620097493862133497320427726938989670358230786066782616902295967048978628278887834281893063849286243909564268229393233192880911241112194730546986461547078592256276545237408294486428111440603500933326372665750495090817680965012053868053594532616564382820109112859529349672381669298748245350054509385724212553425408000281508345646888876542241303598879643726553187290292292036789066909336499179666132750239456230109841007645859973630759078288844737661229247706943918497800147249651413261805588373546387443782726937904079116459951367685324478117450360191681345422564188666233368107875727455478888704453222643899389976561331894084964525864518711279731709273907502012458659334192099986761267829366513655778565654190980133433345963755713790855545243806952300571995859664428062433413515737946944832252550314883417270280763466519106594646082440444145541390616149868780321293110506195395765897764386545532563488190658856726949435523611923836147091136963218910397566007419654114113474244178277771961769761733020715852794248930788315426773677663843340450650386959653694875863823610622290740725206531809455198413673870554492453124138671276051418930558563263917566341372713091936064845975134158925644547177632797074757670455870154155496244392173108777082860681807019007668071508662985545412086863591583414125403729768495237365406223779503877263577241214782060172692385330517945327546842434428065080964322719674168245569924676724508343848518077227844165465374636638180243482368098124692895700740882298443803909939536336327345023641595876346224405396020128848410941997361973993924796234305726552912041295683481441420603762948035581313956339315450695515108747716931302746178736967604080275178405505260468526841706069944626479796229990486249745180891168973051284750940913530219980861679047690423556783918848542494161072155337959023002536477771548674711614466426348243995427217969327462057471615014802683694709640494825543567285512850547588181327278152954022772873750061291895498153301618202819594496541141802815246331465886548795530994735065733463138571690374354991345281733725770420357642990691645779239298231614629392570253642864414557199299416665070189024421767955362246776498448888455249151663220076864274392140438114927858440423378680574848921219591883956579762253558941573454370273438010160017805831830592857364727767043997605455562489778640153747015711685521972959535369038322263073886376533441629256791448711961588470834258352192811596272777785391385467398840376742913236027294839969038961713166551528660448120860649711934949241771599093616746794792495717536700009475756114250592891978680171054639313263099000727296938603312266198422625417287732487365029342546479520187554199529759551417208754453658784893360730461774438187353173970942737744663200830540468619985964400786729799458909291244623365855033489378851556575306990322916836178833981381367627222644477487191019079211655383848445920870058572090389594154874176341858644328792430807454169898931768790105382532440466463901717008823625491558281639841212491053035578975789723315987199645976821537642706203149823997903791453477629279977502406516594685948650041992866297275271232020411108930496704818936008003513532524470747364212208752984294927305721400941903683791180223924419126241985357619419320082754416795415617202321714440300144627311213486964611886226336427064653435939183923604300364740132429634577345828835536426824311079889648749806786129210826790910431269056575355959697873766882109608827419514063269568147513539002905850366725653004277836123600279625374390567571543128323140717474673514598001177469655525286834998637650049108578735068258315999387278370417371486042268866431976475996541579693279269843287825621708374446903791284346609195176824258150263588375350094308769364966783093395643201022437786113365474357819647179034571320886821622357882916068501158407976046707726316940686839755140990427760917948860348704718318651761271755891157483942430585002460966145847120786666092741344023941958093871948665716089563580489398333534839823686485070985404860139851672480380851725089552135971164318667282939624008364132471316219326364822162010898262738201210240330522333819398412560929703406647364732386339348845825379425236701771967075210030685282226818765537649274350457065390996140726834240278871091019371405970978171942797294778872962430621631593481199695133205332292971384604123395912253076355498794402368219889923985738260005056230830595430054246299298123575550498114898833155799246025494026407893152155981890168022457810534666353648087875402520552084874618903249473801323924995997926137811269565358556501086590199435033426450723041855499397353115438680952813674173159814295145530601973685157425179184851042266663472549798121910512121967144006472677429498292567593202186578793924619604152643736006155177986143903690298116155367530359598355049055616877139489250935115553119579519917997478883859886963320915822677620601343121964078847606869473465464475029059591707065947593044097915331918769636875540510467665975559027240670497565502099176089670707040898515716466769216764468158191220423785134925072636807667922458576954974416483351772029646044482660513580802141237952184924599888256592598567287836164163641248583307172344459224233696350995275227610727199180773913849304221405310869437044153634310380458516524320853271514029718861216359106686549690534859959832761236274299737988971914560129625714954412520871942415763156408560927524929533301872345888762359246261003530605951606002703530967053210089701159582581669749214738682153490773522184625172395007639650675736742649363781581584967467801796422876964062705426205571095929678237931202033717168156458690203803826528071783805246224365338793813251755149830871602693550347845018793636228985872160751529700432170562490701142032620909427533067211187727031927927905407905993032551913334491198393618268551180686118377298708222012549262472553400972468420872569301074699902198869818972108227680459315894344416682342263255213345862839856221910831475634368218038595514402271433559226915267538275660935560259905025043786357126863889922840930702981098944710701555376464827537155072216644140211338814023484090453200523433404216336641153386146608799020363296681225756024023522352645730119653543521971880333680755107745178800982227051690633472039445419866682394501763963291885279631799460037066457880187493276891700995461030939097332915330217677807790428626651405402830308585925777899967472517747008793960924274910556049645274929882711095656491749243155484893494881215730963155196812280712942086121903468216991843592846521821040794916751431180803651028795600717587910421841253884869789351103414520486425312859202069406722960440886874247376879380482975995070273619376013669151994311487953895018787717611821178089803287476762613980263285076084191050653341089735808618434360152994065128400553599312131413499730696437492075315010126767329962269824775828929097571246647719936214706374839698292891507621898266805414683130777680776211117963194937536320071683801014376180472110336723593385997070529563176141275243507001257805259835524863668467962593758083021265605004374769323154340897115878764620748594696166667643850491123904012145484597904107341060625307642820855663110037828805881297201893713363206638662453539809185597317300458891578157640596771693795544558347562742450958130105640213265555039380852024132801775890115203418768027472489639224221731638351281686498943027536035766145606298422413914132310958090944660620777520193533682959013316188851297319880325717502250721794824158247248086372863973535924721871512303384469870293258276200140673641772800086310527128881067657254340053912777952087478473055951464651754207677600385245323108092759871062529084756459431152199461782519522453079530450508670133921141790673335306688759781512365110440117033799328030106444158635859653111977273832008534544691843662556753501543982878766167821597062678571590666445773526562476782155363047709645270664416988711640227411824849753462998707167055758906093470363501015658505667312478329274996022021241401830467311842376814443912427562641066764396929624810899090400883362760471810708740012869317600225679715299724190034592119036624347972363667209891833649270380333654905256532565538594269642578198181211496278412729870630645605464383528797893676377689547348294728913424037468548978145630079349645731120252106810915292718722265859500586778216116766583715581488409107494166920277813194307273500314525589272422085507700096100044135512612861570989577805074138101620525198861823063847358277786786826576969989360700515447713291596452092584515941836600534473921504413628902206517601995398208289042549671730614880467481559821010109223689395224584446536131725043982570454985071022647307972054908483352117283293316457699584226109209454953998788794410808795812234359054220373065183008993321811820380896638119715141874913339989669679164317511867923446395548251474505061420521960983025292060342459847102658084677046487613720900106223955940848157351682323133030710413439133439327624474869341112114179678517993453229257316139635050685880160908683171682913716690800253443230890513181705204504611041237398393572633269915557245755524096694097409519716213396306963440476213137718570090276037384666177548164551794086648606454582855746244312559342754452407580878911546040732122986108831320348020953790986678378277121079078479519745126956685389477711699725769269931874063157343240740222132576958991214161414398597196180218998496233826630387329674634908301964653940005469509967156560165216528541415382422442928709286728050495673592900321962697442747628969976092762178397776843175318145326831935080705883010151562862915074358773909121159687079269015425022024016804429343043061769924125564578552055776691542158459497480424059389827084465967945336186090419545049907885274364429765536611645585266915802110873603322908318249590204315836999836565000924497080000113048891490364044338667337551983911160619179977325279387632187242184203844085022595859357463116855761679218146124674643131723669620231496702675062470861315400191069216082760778181887832387344568251691833865964981149347221354061293704195304816767314485085236007420483895072539018670036245454770485368276980297525744725418507736966165945580974994064976213993192469506776010093487362396771258103246096176060392440631469682700180832505750338379736916807424000062244521852383479071840859359925852925624982895327534612486020739960203828605389057184518791129764827263746349730380653924488176377560500131095097547085878061643916982961209647165349943181140244847058788857098285291644017410382939259227857908335549012025459451669959202865590603377735624514086218821170073458433728082404051632359631856178827954472966706324436629197979129115245033936637829043079765017567182952377323891520429533813155322764713762625537897113643249609379495917031771136630406446455377664963033766902571700037914123682148350572488198837221273459437672718255205601102044756588305413422929022148761092850944357626170468407038578710283210338674859496519759518120392640102768696395953984189375989966396436209720135381867202873123355981503033754164568786882984303993554177153608489136056653097599104118771146100536187893861951968684051426563731165487266609846816840258715723387715109626637956904075252600297132472551024301517089091848651837289870924862062272920680983551194766032402933555454030147385922608505159540327962303345531270669185773909293223900285886078683103858767995124898673686614478298286362363729022925350821901092914732874227366716449074629009669339383462335999490852707073935569849758252628283192352888637286920466540480810294018238694648026925730159989717707886339088472147286286489952210560770061099744415556191847871629719790870808903854166658842377571851020932872590070410297823994161232698738831127761342367175343942151599112348454828290089566083575091412904167727410677758517499540209959982444453063006166351958350067316480228173636944433943532477892505446569663002201226853335021818808576958446538479739284007276436333939195936588501987098858754064662748301875075277913731455906144116044936507065544684052693419020866475045466235655930753914106126228500383945505042629495049401455586813291147761181776520500328177102171479711214676702368435875214723823960640707742345211474353608044617620722622984701076538545376743642432193505180895863750752806338315283542510728754423165477147598297403505372985583136897035262649415516447031017216835179857191803269325741501203090480436733266438069394703084505838562026142220968178882205227717490135369215773163964404819327026260993556750726663775819167792069662537800833879330432247831417650865742701932222900372466213967614179022715942362973761408306726380061958262587859782179057763563606922847541279868720326078807030293563649760920938444331672373897959516601575977427155259123670768576737121306013001880975686364221947198285552230580240114725556801555558640688966473365847277545861481664646675767775016190141041496888720026260461828668187213234435585590959530793421693410432456751542381196900774260909935798507944717796256738727554220520185207104801884173807265099613311137497322258631320248844892204819500426416751239175220592116454872564038543650938124427195384887202330587962914201341897360594447432333628990777505953127781925417662960088230177676205238749003635787075840838619143259707104659836478350759620255529320435915417082980252152309083961490384824728630277055343021897186951104641867069064998912396271664872210614975576469342031507240274909310174159550877989686408412290014035227569067753877799079855085416380893193056964122312921936447790045971787635636545628605066274409466556584286595280523051334512934986908107652345211666062798546987346026976185672892098164963650552079648848185441319886154935197747004386441541867552124648358936253210353394358555076556261023669692222077241361866966581984594461412952062661309752275804009941979505614957128780955078368138754056204776120715316061879311139484379961980322788175513460229175271954909134985313692104760537718867963174519121594589662678949159250956219016142726131624615312533683400822531103048900394301822632249716363432377593922483696550797813746130499804361678519445651985492567852048865504690816454175044225132397517365410824539500745348821947660069503450457024997873724323246858371736546035060993039698356833402535382189359262433973698380644898658116605911002945421332901249933627894152803236464871793813391824016767468986931997806044020410962512561139967669477924873019765040465773466693410005198306038826457918704145817239830560683784888251740734544804230435647447305921606760377030028495665555891860322069359562525840704436644731764679208626673475064690384036937733677243925525821406551967928310698306465723837391076354945107708879465082055077430189813121055309238417387904407195486249093507450837777087625106709462397025435793469470197324142127385883659464581114831501532864406244918284164662058433457761517142879763841231880820150638181306384272417375178622595133872058515823933410043627717785096038338138755860136626196859926713208358099650452670981820200994385818604320559355752044381221380338446250816660363545259990206655179070415819810805181240202916604485333285475827598360437872123431331391448031537980805093087968872778146685553086709182474025176386832766628520347135771789739779164449843554133242584261675731197826446532667465595207402322618881733142282830619020399625346982310821848185655847668050231522246640944030094467567253466378935473912848656588494706922887077853545667008279963726530043511653697357203472655324919254892547113874483865662669554712511516010162242354935496570674350650267138611615770817569966151778151835821365055033381528640522655803937829946356679907684656621358867693081659440976914117626364875662623962122682706434916774484257309620147941319131952420758482610009116910019047969251933023181285753775394224703815066682980157709291892999334581772619894702530071416296195812515046785398791810376222173969088227262075640791801134574077708486190102155776488888989613390814619344898411146755623794971016496540679008804156691399002150550568798403153373690237739043461278501927750252960518989461181188237014034866882977996679212675804294041240474742102536738877271550033346142690335733091014367701064880109177996764523025178989033785469444089945508930626430075265344420724471057758105388144852368029553349422857668046631560642457382936285925050826743088106671134169770611272532622219070901051411662440183767913874030499817801525205311182330652671213114257098219654956766573909199127335395299230258644266898948988256816864897894626743327005691726321299548268880837312489570906363198151188000332392475070043587676886179854802363144701775116888349763288676089815825638459777709143337895659264403134765047162911115835950869199375766227390867115609850560318785292739827824853842499816845198782578776979232438305807431290937501345677896032253962913232159153806870844048940769344068592009428568668544005442294109446217269148810430919689319290778793604141040993243218372347484518513498641041845567032725918824759035201728896270400224275583329798765923346098757937207550114241028919650843301760525635461432883757260408424669544829052639649949362671110047937616339227821229505328133113684768653875117112964580211709206806213428510654811706719978049574975818944269402413947404623906368798440407835303183279114198650352698158918055162690731018566520375589912655921148169651542284379804815132743870003373531270342831730068042598703598399587392824010872524910629813050727822238499638044020334408162910612821986971697191872306890345235893912712827019882423021761275319373151405646242615397840814072966000025448759354868167774426666315970680499021302815417574390618524604408080254336161664502572262157890235791877186300843869246516439371148974369492198531571110073449157223141936471034916913809261671360884999682775439890681168793081825970303713841645479174222003961530817875390092828817955059830950901515442704782662776354642684510474073531865289734045219442454816190892340837721326626630632816411142099504294737255875225679800449948800458361092951218175744046156213593022400011080845286712350614718084517381765368217530733402349245873622601239887162439782294584556713972537434686403643949592898282811274709847214105664413098052460742967011977532909490864581613385262811052327684610583026715693054608796165595560552591082093200898337501846614124303405995623486165680253453424116444417517674404430311501943447135723565491521506023274475121084479771708976687681904465979496372333409019090190484443445392173737119754316468515993184603922401306632458972727696862857115113655974515418905419406454367316199606146774888083461712951584314577209368120146460239152175627877235885387630709029355830802947047658215755048667496524777132339568619922343027066253903331404648035532938053448436301311319729213202219551837137388013808278981682677065105252723847132406943196976912946793263514764258221808118166544952609307012144402974300608914058062777727675828930053858690355022845382072664627637784941817383983018147855085521877227843941126525396184146908554197591776899674418273922809880687186853084398145762655354785487059254691113024976541138591708711408299519128232236494950934393505218347250540143143597595098118074683517094980545653030432408669631765797394439202320738783933919174906444407466385442611441287698315769173750666160053361291051756422428593598477565097096925512585707138888601023181790832692776731744783880936597766504215193989480304280687562696261145868646244560939671471685200446381981279951922081278552472528006636253645713706507362182057633662769621677888335154379007180191958564263628639565657562070932606540171719316529517566498741590968931122377135003308606262310482416172501218781364647343370133781887358625366411034923913406152818358398125267322493524887024216354398109926474992002068224506601192882492919549227445230698497584535406295004614920781108354445506394349263532240244451478411669328806550680596449077216081780131603220955697643347252919693157048916022851416789319995093010385257527021819729248519739567306425681420133752196989082650527266144512758875399813599286021926192352516362810822676372199551609481625401632880380888605509063373123291574471808785001705075031695024143687074502636993356589621749580734737157836253894385450078509053893896706767376823144669139272301331867037340363414406256541727559089573123169162741349377909611090645754742164196112678082790949378914459568539432685547675778081540521648354579919670592189707913470100068245257177099425472533297209932493333816522948950041462839422966533674444427759140719893905475603839815880492999648337253614746046815133157736022295801603435248947565703972364647206396529860172391715757659601361013732541084354652557063288465720464231537471530145091707054191278791467567718728796919203273969989957290961673899470521834997291644758456298486828462823958340637077588577182261382285080557171920668514552381849651783768006284381449261825210618221796303626783410619512562965597183784979775902684199576642038830389507700978719848206045683579461425956396573138723354565291135220444408868736479524911285941004799221156542823500996908585000792877137788987492699129034054271008335273692069460370336955135656039417193533911527748836132654542521408065235613216588696723567766379073984865942295088488369813633619964542789920835184976219849806714591499747312681686300198105213135064071670956606184757008431078232505144503714256923151984466504640648422109095876781035208711784292323665650519873372959906469489902345679243023621392384185660815449357895949734666013025531627776415815817770006776397070421899267526814492011374136345050078153559092844899220431845524332399816618824224237939950658079662069066182326471414553770920794126376168526926840443721283957007336078182443256185558411442268916759167495678000845069636919294140022220395111282012762205945682687397619856356714308020897991390773812664389512691080503751537520514250885579400599192338671538902466584637003921747884694707850610034647879387442878745585581059410562415348679585986992158980031167425926058788681930320073916724973287227419044328392580936030505442833657542880803947461379188190995641939823535440194642887378336860492425791266959993616512751640131724885116858936521098785260315814179449320393444723366951074293586331609603328213687371897561778899522732120188131289071962585268328130157071087579744934073522935334807819869471982106555356836404401115208319012102299085646573224540243251217558854474016026418444786047426800345308193447880736984685251776748625023633526789990388530761402854588843015412588685148225991707598961173737825986653287789043685299466166346797983626736084037940234658118447528350861991945463608143822537150502731191854731641815068383887551123101343894219474007204668124780379588911582083297740684391514908766642108382782593025740477173399666708460772850928147424879095544997176331276064068911630479952241596367870724592285684433343864258019203040303881731594334366331339700902563131680219417195784147428112763725259249728150836251392844851919792052766596152473013875803100250407187525670579091329676955185811312855122617669994845749740150935259894356748467489202867904651008709431129862111823599151046875758736900665203663745105697299218182305484136063287987701951902579959667165635179242873089187303486378532365021713678922239824743138133196912294202090361858814750989516004740423234456205407667107370640122960410661475151132539340495917352683778029072998810040869661121601471174099340244531674857843817384217791461036269238276940255897488339294403307625135461019730941663847723110775958026990462244740769147201122190481868802659930798780656158267232385201775476544211883856928759122741887422703995200066061856100427568709533904382016234296200902527791428676126781941497164481489779521876118589344008842018619603690944442507238908607485631762641024874083113144189995684281036543568085737087523122888497382256107622351289242723412386892404251716597409020783838560843856226092820707856973128810024671779917785708404873104111631132219679556186387194657015076210968727229651211908981222709058361381494503450425280806385037859572722955188687729242310953291387855706739718818846497133401085303072671564039286073496671629261203362604997051886593598003485103928987592135362959443440977060313167809088369119131210076358487031862538576865215583236923487632900161756741676967186123376921393135289729821282211448486445150095049152949621082070332247659276108946813086536290003545695364443646739728795226394996473829398698425650052764839455768748016661263730587088944346930147624433430717272637060233877939131712892877207333233162070310912569437549321984551342694760621724908260916100787093825603968550443831315685747958425527610616701373523707518330437959411799031982250976868079266963880319327620057359481718921426607837359712212162323929910229960778809420283602300741351416917938642402711173850980843257746927039750816748697582384759523947524628517625429844536395622229859764756242873447164854548968512719472084752721700472231242176177004168427222353719901454867417183718495976542499376085339334960931073088963228897973025600954993257139437903802871034985289687820920860757510968812383342783387348360190029792735217466979637921250629767287329630028829638702715301316259448831349476649413490535997768001795666703155891006256274732889125280216338742931915131934435042826405132841677994071765667291213391073575956484345172759269491685519232099553126805704747436900935895480047054811816366080548737309808716138214959236662183801069708629753841351422722717677824151928856445150981465323351174781364363712992077201222847264516708224324818211160795154581632816151990470077884235770004932709195111580519377607771007015354497868756776392507895588219072053216234526585749723213473160226746253816550619204686515889740992384865104525106932084427841842647430173450796634378736722864870660701557903566416019929340300362824206042216732414592490530747450730963002325193378947599575571154032259545358442897148839519807004846400610977966972657976428771724223506699886009984892632939174507149041475808073289663152764773958968676356459148829793250942320366530634572753291007132359016266313100115426824830660661056500813432808198002653799973317057560085906477090423156662206171300726817992290471555273635036256843583236880029463622590061841237239207725017065703886522041578388982638742502743120446200362875575597753933664142891502336005361138658297531418426019741012051927720298362915943784993564667824656091907672986720312689429425652586195213701373553309476992002341943771751786479036914635515119042049112880142404065153438027998338753759375992747839582641180774960283391739325705665810297980377416540945765273669171810671548925153004862431260496781432656656234950179393281917184109931942245508188918410777068696256202347945145182503657906924926818624243088355200797687005928851236866436896652766491214258453963828498007572579070389718076791316145528676936745522421526473982676007362630844018617735380119368994377314234613049373167247712359249451135552171983237860974247278204695603500731921157506192813336327507928085616385307127748758369802256321984444616368430526581299080885239823579032106198258439268094493020984871739625714254201404149972258108724088420637595973420951956413323553028460417346388905813758677976473443961065910878844426904732131433461997787330726921101957512079600630353235703740588673905682744821934885540116779359280167853845749408280275285988202581384985195785471854731551334151103985738793279850687670946092614130119215545665135372057947394188729614149136087242199502605545608870394967906506218661575955058955220359986150094696952334164078384230591965466692740143458795974828367804647590756278603049850226335895004425911791218258832940276650074829691234279641757192939999943057438182434898364116333850983819542177715896017967004669458762865251824729659725967041472186957331558307708728520285254998116141738106739065875055545500574896114146977604912002608995545169389345625356144018478631552519130927728232374709561098459876592745087953622137874385360033400913090375752252163123081796549004523106303217552896838126505766329844465437446005670483644586200628632361981387776200604025175169807105025717113033731471472854635714304069972505658955338693355863676115656147717457251883866182364743499686827152978127881813283978444620280457986861938957755264927949779791657567954196390751773321644481738467410389980520216556359005911860516048265231539474002038725174426820511001117109989363703215743516632211396563216377437799369196938797231335546487402539570002159078268355492545490174982397940225624385540608529613004451410363632250666148742485882391957077270434801554649234537650002034598025132513380715364846437776500996167524029708055948720275340662966477383221623687361490622781841395477398140516223834586276073248571386036130253299856593965678409119927849734673417832745485310972024579664511224103517040070826114113732723731142163436539495736671619403538666877702340611893873297968701522776557785753006670488722788314290346936440308432551531485018864813254880874457013754591129473334809232264170658219894959044371457666154935095038362778316967015859375348110499945881504742840344142334999457316306771740937703083994317681326948393695236217246079032968376726487240864312058729458540172318206183053136060174281238790402264923471440068058335574704698468950109300812549336679854171360424448462701165273194056706680179133120224232482475911854005518831588921373437742464154229587969660668983994241404093894190868625954254809669667842429314133906851548351261573844640669824156635807129083796074035707251307313879326908146013764420527131157909308543026303491270876070746673614042261380744964819055247975204626600798269567544053658638324850914731259009730196432329679453354306196425765859165882731613491539980634852037843453996814104146816263900831680730595864634086742848258907766316264879467852774409147230380840615550500403106103637029565430181309394841845034757751003867776925054147014067932523361687940352490040847412583909988276302551777456393267907629058881292127280943306124536719454383665074554665468587902679004056264765891648619762962853287377750252556411188901777111276001964555011041058060148764332441844264367169376181862006103522991547851841312459285727341967053682158272043918577814514212820864929292517529041291913324608814224144417567552604956761240696835152841086933633066123658742651532710256127620955214605586656140556330709652357813383408336522371718206545377661691688053415663980212683177426228506764773545049288703385563787465248762535175264932239262452755217177042061259733695804161420579910104755784688812875953669597946846166274994310249563517528916684053967027408056619531359128428601511668894709356854113045818185798121089371508576979130083172814071010731110144928504303938143995171955589421836973101346451743677460223288851896988648843110199355926273726125585580580578588310104418905128765887640423286263453307438689369370492489586570689406493453990543833962697728732296495058385918438458467096550335860563200172085967463407207385850117510545210244508220629687466458409518047960882562101894679560180673204592972514176533894316581270249051029937831842155841391462121192984128044810966650979529788569268969006017867778238899876056062207749235801084947447692634481239933790458723679708697508404040932042923960099991473191761699662215349821397520589694880662484373999498045502060184273395093921527763660539127561031188783801377127909810103217937497165747439460675462124101651036199778411597312116749451436203376903027989661657591628945530910615439367576081261441973442333924072650112385384285444387590190391007711040192042361790682369997583151237731528106535133357512328332798668015520884323371292458451686243941031744071781632116867202144469072282161366439195197748814338552522664154763613838178299952446812641585332008665088564530334756271473515436399992511165639289691695787053618812045557073594457041716300879943652415200092331715477968451518997748320495667583807193425050954303932327229750377083724433224225750106695037772843355629400027186740605776857529932193131995735441376531872728602670002716896842169245291515140620949106266041148083934683327757776217627517608760240842349691776501435238493993798043957173048694657873871878449521196556962900796593076575472296010471200429860605711821121740287354353449136694185442908191591895009739281348406123588404357124956645173902300401834045427325836776355698121084164207783913462847230129698837555298542096966051147414047166532589415090616507613397208880420214919961038540880081782505900773154431972911183248436468435809610519544472295377484072031488180387438031167790405887274302526594928708729302853674616321173993449672859707528874998081349359223834942246560440444229860333623557544848331872645597101427962777593756822450397627396362162483442875433762085084563136935962300967092072846046333203937246529620244871657957497895718720732568396784512400058203053597553129317406188678661310898850767843891313913847468638467862401587692899885693086713454083405747942779772533158450099185013130598436881733250035513648338565804068200626344580718775605387343525943005946755680480398407908425406743833276405762521586527885580500616345592574056198531566215434638636277669173341398899291640036638567511313897113460198096514863846911876047632038708978489013260105895133765050317390882968160589248888768839398121348852587296093477351577286973831330344136378493301545372113004941847229523274604938232886300802434933248464553300685054106325731552682300443733411033400631035857046718192396333894118798202453492604698854593674827986581385464221007316860063859182900316393041233675340167464748286181735455606714838691451293909127917347948792163320669053236730446935539212644281257233946799404009063583125490755184906463092267578398095750051219576519431675270838192391867391781844244232483732134803370222932523508197759833260866925902026002487590279172839480792235546136682522919651070787337586915352047151896822433920071794460973424518258665389668579459631187359018046945393972350977966729003576719414440025113157448775805225883313872827748075976929449238303612264774441762551543906889811538823171090880098303819727283410233080409146172464099905215343254608238718208296874504441754184224001692062797809996184190780734161464550576889052951544675759815355721098381649570858816254620034761762386731635434118666230827051615946614782053780599855291023016191992360406864975710276885267616014866207422574695672564452388289518662153994467012075268176242196364244552392661298124193970651002623514574612628133618002584212260831727968803196948647135357696157016154241424416799840684395902811500063580873797207597352474025691503797319044784431713105008261788294697940804336485727894887278018134678200309029758597618971483449147973153171138692452422683828441312675576523826356032574656412311010610620773686438804397212100081213414222350166096896885798539210441905016120552576395756039646847919639720826376533201490247785168007596436901896683961245681838239108892065746968458262728635525838648507807556850337493273880322317131333350350313978304486567213946516600660617255904442048026077313373463518672974827368872125926388678082770118389564933740462238556468899746345542391519210146952693611565900222650195253613056369287249105228262411012973895495419915605232204280773635302626081515900141646180288705828778233925140447833806161374931528666031757148069976811983589153473534506845578961465231127369934130717095932475564459021133548490260949656459760986668561196420611525103468558812274497471573850836063113090440599071273664047580463131845752094546532260463786357493026697199155264188410043451082468797804964238847653216746284394170959870053078362394650469357818156788688900607435991275276087840148935645037194277220854456671292720890091943703109489480161954538180715933110040187535045374033105379657919845688049381688998873674187171276438648403984339371384908793840636513690631495678469355362808907973830961317411050437491231087071433275808694633983369211159396394941877145734057111106395634044493739295779317453415748828254848509187297920935508173643907617553175459275983765410466656702918827866087166080844920514404021240788145092059221419064240666268897309984720918153883728071503254127880082731454757836309155159312150322800858874822559756214472139798652749037824634702218818302332662175500012073985511336901663506740326373666416772054335568428665321180446644401731745893768054361459137493697896345046758945294919266668800444863837255010767615924418712316837586806845845617073881056439272615206028023085985528268593577371464083332105688075127808153789471619623200187770285274309499405146439279718202482362842537345694978839134710781737077155849913549108748501031052497680510931718975648182138706376301190983686555289851591614084531216822819259046901236734397562716745505534451397333437744109768178738581865519899661559488160032999366929601514768184398228854284845274801077739366735655261273824971304842183929609248552476081118466432977726571865407446952636854656144350891484894844254514441487279798197352130770774612714596984124953943731216297934825569823216433986693749267306041248767664480190327184476319918995071626804521510332796624421706553209318621570690242881509280994872653779660798042107117016094157725929349460034520184414903555515927282046142038962572037783223456822382106580960599522370485276727893175114472398084852961904258321175724238927562160680588311683391206127424596542154243609502226178138285379757088634852907708904337375441869780498814099177542815494432489877063408012955453286083435133395617680826910078318568395494754701587694926030131772560477873813771398516839686990012131664829368985403147745718335299318471352315009684786652400129085250474543348764302772977946157608909517619532582648637811816436811614151061783354067463002434844024937123650161583344006253783823437214304355004768455666391868059136946507346658973085620192534070393367214843412696444465445293909894923061760026914169539752873877089035824749190704131553597727176531500080462869627498072664267463021547987459513611331910436887340339738261249607158694980758374472293926549944340104959435888370156301134071293167111208858902097604536792090950205161959398161647339559220001932457133913546615145608019287637778150923767629157360323863337017167980413345835116917866764439346613069616267729788954750359830475267899876314903094483695216292969523682558579998393339660730682952850278890507557966753834112979685125754222988869038481685037719696143318187790487591697087449874936531514936588957077277367742463007666790069021882673434291651895100626122996393203670966105653428596193710078933889103200656013249325532313923145751080752239576201237546548507100424050834997555583583281729412226045049224539051718038912444915475910815462589772984040763293762418045632459766776934667900308091313277346865648539384206374119348747839123193279672455917598399805994245988747060801554213680899541323873354176319446635511467920009614559054805509878128092392011959439970099039395797655546436970796116778135459678549920604706791230394852207126242098896129633655939542276397604990957740015822748255582403748905782431130603726407502095881865223292300212996517967266223438499228249487399897950872148094306710295938596630494259848383137162881851168334672966917946897951281590735361755306737890029889624686368491790201627648092333885698731458973320082775444959515099527515954612429870066890168820738097975378156609642754411359044938356789382537081320703154447177647780690263576243509331425682706898620296079124249658245884725406887029412147913317870537344553438719217448085258225534873146304725783452420197591932551357774471708880240423882569174294891289156709043702793581067200440315015370975125687196595193425788154170826654956994751505032530342802478948132097930521938896684341854443459089553691168352391357371642271112754837680362581954563646915428100936042535872827894224715118140630829861068795616194904102798916292934565518166975757788263434481802354173406318669290922529629757064521834524841201477685226146081654022168544292590637988995490749558757570297764443300536675808976164360994371013164164915910580436416139952726843954709359423598485484946859582041925151280095739347506627949918527052311702045560889459847892047500530913210204183231089534892348875557248675458165488466306354948212053777090044381524737826472826086447667622676928793011941879591612761421016731205091515655055796709603648611186612261230437006605009142281264455411241112990773135489304099496997869179752914585840295764030435848054160302934803574601071682882557885717769775216978317376521469744841479928864402437229065916482760442464800704399749556818459518782814932384145572759927432966604848684456458133745609329316538772476501062499846063639516562865711780723315434914194829824638064806415739434262859411614600471210155748202799152237597464350770014079448067130112834875997686829490924930810942841180345213482202465302250574792402146929972244533822218692521981160283316324858722246262568667729171909602347454989678693209459739469982362301588712325772787969098464812359955269870360606810033803298845238518210169704526874879576802207720170547262490644471608023074033549999339462631156855157023251108234252585871957086986889530739520221088437372674216271786527257120801893027297273712120468885209478340758596186966771413108269819113213601726933186886928944299279088235794887025752669772136416500120115932404964785154299064489343800605801386540506045627492572530747895450662278821988755318949909758125687714697067141134263874183184987124694887373370480918169014837129990608829104430527939340050190216125187250659474486725250199402930109923018138204696675453995651551798894860578629219554930993305870840356726067250316218686520214453002373991602707661778758175926690376466178983535476221950371125451586381671211492895017915083255821931631067310739480498838847393588272945781045235634896105755404791342938864693901547072874973210801811293186640983388357776428376467616040212692492681648908359783527341462610285254022544696841684390618480660086360911823082297681846317561169645605200132442365297056364603045654837930317461424625611284196731659295995189351973026452126279130487372935574773188188587685914087290745370525785726096419778100463625637297663597128947716111542501995870092167224019994461521282821285169159343852004945808255002064604454483772869765115274588449117540647896758227668843666087530172492322486161184511588396697176085744855517882501469911781303052264488979096457778444875934639250582662751617771370012032582382867315465461852952554938438894424768121304775516340745692372985228109197428573111727089173370339630727722127689485078601111484066104447680722649349772892856146074833232357980186480256377327646848849207342997300753431010668612098279201563158184356353891749010673505011355323557085195857135336803050776877233259930745183581475370179639157598806125310251456985356089945709711586388916849960658327645535104989701957018140657177423598614197227668124791933384873682454627673131743051883923854668260487236151260977236245968709649060506968471357532654530368383798475113567523277814330592162945846962022517371196619918736853990805490932864460303990620455935387602570590398426999869509181127870371087830990463248574507456847385507807772025940794693546429054304608655433242863485827025157072048804993787745012130705694984262131764020248964422183564039086904709436989092784853388495420983565875445616216943898258067713568624425884238266676000704030246641287356377465684000270008340764930444190553978420867905575241137065518178718848739474124160425547086984954486777800626082373394108748706823416017222703489507451241143626516248778946041844263841694420023549612456165030976665052946463279199951424104522644312688402706226211158746384011415062099163935292938062791559347418046983028943004566204542321305478977130490214802431312970541277412103671075259954012671757048648077060021437400903318866836413696309590124594248227895711499719710822598820072079429227113293102358217392968995482848017524670670467375383344484391451304569695485552452072353848348061338566472792128740029565497609537085870083505266537647989600495461503359733590963230516315794113856312502055582256718082126755531288822786412484313480382038340210730316651338926631087123617763203528575344580277874481632623278430932288879450072617424651008760856780803700606655163641734093602654822560559646918970483305219851077900762763879243387391440773585092491164287564894490218383949027958771276157680347167241228489832381624513838168353659342247116785859241243352816578496385942178015546162258053770708476879517197446779016267142141498078760185738439955348779300612376006460287099297976665865031169056460868594473668765269877695492471534069761803361189730774512261044424170487012414662274554250052759657311682171658209988579263617835849377645966362068959418333030366952411302622822744400414206438226543895356220975180315677715647512923012979776004114061646194970895282349100666080715852415000150779512259538818130573891828725033614611081987307000655281491426500412149253616938991803099997398152135058539754413256583788652554866467807067621488892509673166589275060050913298017492803821360233369158000626129910056263281678399201979570113430192694875949131958842923666872470061134803456038885543501461750896752677596385113975169269777000217836926532759022391996526760995006671055507634993799514255806685730463238220094988032693292961744584690903119109074579934764451684377728046317381554301796550389828647674166151604360555654656208168041476735015791213368193242577401716605786192582149364727285388500361074970589425194829720596550533321679923878195986488778370727015028324397493672602678271873085965964514765710707830305553826197562019064414350612397102337710877850483318351062089694654000737278394602950287235192621213743579844007846983425127004356053408360296757585299253139772977637338051851213006522511004323881290101782535276987676123272395542002852693919112136542827726105483511914395836933915765179585401416579765986280701648590946951812085951643573042738679356182622503404011202095009581799468252942225565326435579308331247689600688383567297885642816222474330689072363399915911697569683094252362570917596752834143588457918462599093898288734709360136295335427218686750892595148721637485678545752514398620729197791541900303228016725495094655706285871465717324247320992975836368654214227376590155108166492934012276701285925882165401118260697121318175233317777575590290679227448262910574055313177013510777665896924666163327828116742610603660775442812491152233970851475533879215283610086905934480758407854099445795635713570438818671666132513837919191236867978239356152488023506632501045443101329091068528662583535030879108811382949181917377966305474176640926855468837686320200026755630642940260425281998467779523675737294392362466135886920803095527092393609479047739538107104393761609814909775950116462059536777546883052300541787490735831227966174316685297999323049538877000201022742399203816585321605439589579709388426752940775734610250553208736244453438947320913287035904372508906793588253901884544618340943380403918102029156341217472368676933922519302242320192315927088784126771349690050300970514993446739717292554332600687170300810258253138341969317634065004550251967846396109735057057150181363553732884603797917167211037880598071556894950715654560832457836159353084336738928149608660774477461331242367817753046134055417208169774517996410287901997958061337768435198991939443259548603366320009197282546353607477491289821915248451509441902284147893950545657503481725681012736464125334924145737167417326412868603804378879737074856689298480783811057157766424426641498049398293943582248184649795942619394040046459828204543943597951535652424298203941306384493791402177858756789097825315085468323639754117265523312103708261547779669594745656978912029961411129599510369561135911270326293118028596454879244351819660659552351150790608902668814988936813624523664204717159521985346468582279082124730886374541853775317182957520609454472400806419998415766929267330764096612098007707713377498382958322293780255749676415041095890088010243993071276937211027621640008230368509839896434169697539885538065195328292450530636568135458636867905248644107335889429132811352898080031699228277614379031438411391523564748122222231001531098126443393034065343972510663185387140077762682733809179299302368671901157158933825123281892958392017451484238303899214575586627334436233595288402712130981339043696294616508765675127765801737122547558538985129017578094734208685209924239510423483170677880173607790312000926910037041266986800944628785484743413406390524729726174637412567063452932609664513470728196803333935312469824365616397110812283185921728315846100386699944457305226037824847676065941482184843632245366169970107779241732091629558563907271814745254564512857202904586990082458868792645241668867207700680678413110135082207331679987724539706942562587964752990857596394248828193473503286786428501610567396012092444707114492593067955358921641195283180585923126814546516379884849026764389633358977450482137839153094727271453132758485009444293537419367656150041235650016122285717718654753908845941543720727555109504308312976219937331638412404236286586273671000321873873224448091610739853076168259036297151474075493015946624274527265755249873532591439303505548084360010440873121585031103298451839483053635912030372966868762029937311309260214063204583738919745932621029799696633687490676550940329521266585491244060732521738190436386246493463539023793411315840152696137251068932181579224931590180049168209189208490465373671999769295365420914219090507893311370983065938066734818558721112812466771914397033521669394880397597721459764966837549333112880310234723926129417120546510794981715998794218543024701626977753122756584608483295654551224667059135357932315075894251713913735581917075453475462310281933610036884140655950183563819756584501448308303442196893863576621075862670640759747296393658393706075901487273256682785204893114164331922156932833100250138255844245749773460902790786579745689979707192825689547066852409624016913161017390975101061026786536327015399420832410763918803458047493637952413676727292044440821768724097428342499362336619218168558065097224888831886157107617374102970677100067973779801102039304677159412659580581055882265314596778590641971607633107343652070444990721804024881493361279671381038624778281554417042120046805051226419748414943631360706885212453633386103528559566037960826482240482285499387873422280673216174800781552337123318023810976416929049446417270025462388474974679115551128676590784036172271428776617541120405796694283149303703243023172472248818365966530166495483766766176858776090036246739441113817782672823643466827820687939944207148379085903438568820735557334738987846591034865474858260828152902747500521989747669821130063086053646224493414002420477024487300101726906545447420655101056867330753618374945345120190541456402624998751600334743192937366558300860388923319194325219579349869959213812341068227511385076962432997100285827312528386496327926600994328624659913723905154394426660252736967715474147768681077739247480448893221115716891081411540060208538332011432858204626935222853499612227309151981794662435471091075696785506956122756499005517541121077581741772677731506740112843051437420576278295484419200339431619687972309550477583738476354897575154096110662331468684248449547772076081301119247197242707889087914316836315579790872947821453584066147498046210372985092455518063035203679837203540070102081173775201096785625923879105701398469199163374033230843488902753758169486568957466145435948688863987584284596407700117646090965136376596430535405058484484862326392775802224253747323754597321867154202001235972124620972862565959041366043478002504595321692639327430924395352829353959236541867964878196609496056634917226038893336444493971013611328155339349680663498705878374195374793590715925162728527491135151126986623613057986481612781963774827316847663555913412678327978043554457948155691423062755454388176010570762776378979878915305996386873807789070869992967462472707124680549500323525084804303876280200313863064104428297561883308436629068798991053142917979443783928367907207735454222018117273071524425575695949274792971290438115744533957792555271479246538370249305859088180436026951193833288170937321030752746987871653117257909195322251806395357276222771852676379237198273159293020616058357914071737621485457106314722713951824693903829191290914033121462230175814548435757921007345876396084862091312326732399008976177817451786269751889423602611582563445422510418783057015662506732506641301683832973151873278994412235354588068694111775212532720951362615209810023512095896974980578269806329479927436267220208841059966502991582028858424456752177449821965502386944814348883194450884843722484522440474940113059824937153565118449870118559333020546361144038303449629775912289462331788322246369972472170907366051372338947297937839814709189605242028058914276098600532523776931848893822695529788632079525115299179988925975749928767493306542330732296789092343821269333248412657471862029401065796558868188196843178164506320049669296333613493469583755549901873528991042198518804387938853176203712489637916709979214201383730324420688284944835035837830695442591359047176275223164590379833051472682322375769249991733688740649388778315911918015260341339339462820375155107264638097910199885095650686281420891019279002384756396730816518053419481827155125576736816279435047022175014100475851939903919944500432629202606198954180121523379387989380194485156135958759824960392418493778053789179732068196454364869451227099857367631719229919700045840469743216449452115162054449343055716840986478175045624756003684304027313990288182355304152880111828321476587570748624699624646703989184369897044977612325938004776386264725352922621136437869472559756577928313899761733009952679771334800208030906336584860401135624288343230979788407217948460760166437429649366760454951335267607642308357735510369167328716981956417061193292993165431209035751848395408106315802629633828517859605441206155681067001945351808954267918939191231683719267325769820608586042532191895593924876566391089307895314698805717694684971349708414424847820253774921216969335800571404285934882332358110816523507445694139659498419660784015787707915596920807413625092887725783867126080922834151380549307357830411977028541654626596026508611045326285416966734596992477149252793668249478347874522832263848842621414693488549193012426882610280231777410343241834262031020338189929780195946697884252285610113900461357323136898551059869491911046903505271381080397355878172783079829212451616652461579106547910610408447475576722194184514683566865747706128691492225035209296202404773278558024663544433014343143345349996652721474067681517781354496565639893287204431893454439229790403513374440476051268786339487726124177668090432718958161605178609277754709547416736584796917894894167630699716472652516270442622625941182314827856936908692582626580868626541821546046565401820417029600961025627574137163409184016929077426711715853059001474197713137374370658930683358788153984337949882167223118518483553362996878795034571788147760013904196203583602831308253308043037527687570715075291163849041497360487116904716553071704874504151043069003566751941083533468329040229708492910417821667246588774956366413295684414602864601634989522153639017119565476462470108942524354088881510637835686822173807511425667056051762111601020964180589798830359392234658202704660981817164055803809384851845217061061984673402402417691657662310901032658899846341951866056488865093391468746360482424302505651696373791832863267238021535277616595952519865955228479177085817999627552149762884221619553189215996358802108654779127622727357745749954800364027047506830315539995244503657317148821308262959574674179876001903947470280635726708024188746301903508148404322341698281727958881985919953275742551314812829599385874993947335703077040013971063010008339867293696271024634950544631119529334788417752352603066427804859337895930034751832200603385131493146269257874808819805570487174416597232303631351357537403616742531384462854728962079940297328890223249644034243144113569938089891959995136024814588960061037021316464058413322217678131841194233728741782221166240803590875380968963618877089489737047686578052879605044759841435390615595980599606248956473158161057576140725317771713545824982137755029245608048817159355981640474286634060859424680805237411137416313166363325424491283806303030456852505587771033098228324451488953044033198993768198517739607373593837696077714567099460144772100851410639106746935374028739665123108701818185522519821679914435783282214581376810563152434991528411177111547998936975889672488311044830367384558196119363404073656187247954304276238833646800583980585592288824272054142784755912594821469159113766428149845547423584231491902432912893559646048427424469504701611608674065564611640124857228150752415164468750764000475465469921055176173218122850108471661092898912487015196620465390910083702230823159108615827954233104876630098133769614540642358392043201415387138974840809515095555320136200936686704861053286037583247877641998224124474427931419799796632265378714337023383871503902516915806249519279665233103113230955159393864853293804416828519167157119072125192318047025056648346844869610561908993249687390290111340163939785544348455666060686681875577332916197880594630488942279335733925995174646558310983999441310068700175195772327141093171273108647756635957822224907456116326275676436802515834357377472101867957335252785844357138218177221370516729567150229782120285177090475824665387433079223905939311178940525804317499301819167044856411735719865196901941471318747803410665543228158623471972792241501196075770082497800128587458762691615301096544773283117005025083156683286327686959422013019454207661337273358535677260835800477402004164733874083008233643643097479870560215406477171295826856842184921291364070742077355435609620223801104053021488954538651819525850191695262610869389198880556475328090894530687441011733158487231360033493945879426557920097628271857168166002431761462240882074155427966839890006499431610276084249147337034754592612005842390476079960244518433890398600640771422229459652145314002081565340563752848026512206928701130816728694711183507422221460270494222579182526998551843954920740585216565463678233516933728242840053720102180485103715524493956147897369458168760093479798729954753524778828039161873051063418331618482993748216362519003052472421903407844969420227846302196712943551234620236237055984404707285686677632237927185868463461859793770258349957597815877842364632295945100718332908793310919520200598435732257416513945993347397679651610579485991348404401093761227458266490035284022103896811158855737107130981154577831461355906269910317052230911571071924473046376443378733810569709304092014976148234242536473047856498517239921738765257497105280274509214403492388693111342374485923183532401295228970550282603955779849001239617907764333248019313150067663873817604450190045367213276036990509356872297131553651671787643572680567025271525640153663440242791508599474593837940006150265654514354369204783924838889948964689129705562095078538537836056275068194323926984213603340968452397901521438803028446252821928339961103773067967675031750903101142256464595663835447784418108586663925092054728877589652759063410643638626963585974143730222974162623532466885146698898946331977459366864629125350120896825291787475606076363732837053310733312286912261572883559637162396553485895496207958571363019495181065181151906226596985399923361526749004650144491491493723478848793233927030915614090854273791196331414692824025886840409084525474744510445361416795359271006115342500012620694717051233490514045763751349207040958578043780286193690938558429344820145160642212805948907145867164901388540107097961662334321047255232561947838936453446697143881837627168042956272563682755646350634718151930831779389393162898484080454894680767379464651898939786894327215137198995336241708805552028418108275677962192496571949915992083364514215827262443026212761943420757138320833772421537711805058709439138297312348301276113663255510699337183303371245875127413654580789786872024728268106826333250778442134993185729750486679116473575879347691822443474804921909241379411554595539017753516765101026705777012874598955376754983295268573911126141675729988847071807644872207138876763226792019911389080495353682277265648399072231384279758546967311059488750194686656967429998563047158057862646341490685510262725215643711895093821599766544197190299182193200396783710537202671426389088605306367666393540268796696676649743962523513983479813348360653931128237089762435510521074686558414385193342081234920614746392170350794132944342697968059041268506629158215452570714717910232112700842660719390249426942232897587891628321991055029179578981856876450967563378876424983434069020555881814130054058360763907709922845963123579611130443443554679100965203445853065637078810882375289674489081287072467429471698138036047425116569646608060279456735933271971713726420706617259709927241145471547355458325808169559184013781947090953896273909197111113909592100075774542191961611849771785279506802702306195701168152478523261203926519346430988840416225580348051008764833113601153525461488379661535996728442159415506963997440345119729472001654777227076482406577858033589486938889747777485439220168768187154188077090683027328343076752937066507618707627565846895619034720854367015398890863505674485258214931991893780080050682253395406688334216878251049075513910471426405666364186889909238841961096046985415144366711362202977162260817814740466681007720926216152586006735326931982221153807532131230589866951370126978051337776653143148732088533029186565705490743360000824385269934748016069256104987953301414051688243621464266587798572974313836633321698205569581934484261844718840619355849656648809503410955042381649260804624256696490408721032581412089634425061162693754547068005952117088672633542756577860043874419277894356617668782289032563458537556827381305599684360201411793218770079263948581683291253605257022095813120566923162846522155195533479332558856283587019055332878423735294186766574865098149463750855173096467532139853520475285816339084379083541999897465571014601047799191650968446110474671197815369544229820818615403536966797182098204119719037969516737339814646734300931577577343607490694879773638401946412912854843408530936195768791785576941000856576001726110642098586494125408119872338295025482216703896970157793774441122405673423812155569062745653119272513080631560924075172465285404103539053866066588367924047250011437385666267195288796928868564019393073080437705948462564323599092075247984018667955479601489877779339745035041726990021326702227622556440002214506339832629518681320102438330973940439881143609015176724715932430801244554660842611780011792391093673783761701668695860146014647699897611769410634127462995373137654337661917202752361665655701491811039481265587747459944979810386582362067003063028026568700511752640658694958661745954571985327186747839349313620862247964458248400634265245368795444441345146720144858386975998724812145575391965456810561599661693351273033864101902636103896872616487748033276423824429002649203564329656114031403554180199859821725107673403496820150239007248386956408642128926484047745511894475403390186522794885403535836377626615097563734413611024340649672616387200974856055568862664060207371452839447849275034424287722459655309122352868232436090787621710956862856924242732161475863179000456398633676079473018323837718155356844453665152274321620370420767452981937147290402252974616695153318775886521545258608038360745690821469273766007252910457174384445871061124523036266876369010396517347128180705593890402546543134278657815716964744159809499430832277212182232731296185892414389873473852371620866477694933331327939046935900398182879608110643351194615249752361928763168396633741423052200494755922583535507815338495371748114690901500844821329939141584208794696861694517447273907984494229477709965963600492274577192455560511933723163568289952780341697023184108659050886708735538783256957086645493738156808671948873727251131036533775542670482536797690619332719239022722074343257108088898875679050776363319770371366316421484860034142897096600517996017967347382066173456012534856031409314434893666127771359279551168418941420545767373424053918080208112971916186168672812699917240816438322476082678943957284224778161769941271076157092295089448071592271238322344300653101305892709902858261507954695473616549054273335011987255993955936162757485557898868645101525360461936725023878342471257918653749060291855151130895229888575823529336560451534508511649303564822657942834873810940454232824797086499993377282637020447418497893823038554588091251143607540935955334090433140869423964815738487733553695698694245292302209051629255324414753232033333501187332213387661343099866981080848834664929993880218714275337892676254512041027920379285599625188068869783624607489960575422867550656627788985096043407575983366029792053266935882204730532656485979683174555793330836646636023184233053746157545599096499844523418910754337086132901744856294265135589551433893123347302766937476194677951095466228966047759759808265031373967268860414178306369998723108636875383693045532008440387695189353338776567592505276009620668007606700529060683999234892967998449794659157866373913781874628763362049288727755394687725272553891869131288844033385110164280716770655432802863821785102497913010823483110708568113191400601666734112336195095962457523878369917610899073164200872179393847253207305975776065804915272429858260842160509693636307980043433140805134160970812477365015542360752867341629406119475958438032891072221801790273025373507557171965981598698212821011150214189837720024595473932727402554343426115973654591613971155829580610942057426150814991553651796224876800796248861163775776545568593800699511829745375049731158803205873106810579546930024051959824830601967663232815906810524493871058725271663927455721898046530853671060810583764480586294475238120886030899625952258179129945142215417407338566309799921879332660836517042521904455366790231780289816581322246283365665382827938491259215435267094912887779516215561597331019802156179624524975863065159339522349638741022164197409360026273894363818726347156407025352830448550270610428441579387991325057719213077951436156321189139545110372443728256005145061716721867767082348309295761591963426966919770970763492761471562048775381327802864519174628400945525803169256831505159564614931908901439500579976746459604620261360828849749041538795846998251863848779344642226478508698226279661142978707212050297627972733566913516850827706535975270984892355925256919481503899987989365324505814422864593551285924789794493105463139433353301434046813187657936860964504001008877689487826164447904360192703765134690670240350962133864070844100864723437250166451213848014043379845710739609028133516413732169203045326599190216341865037130807472623002455274738100935449297722927027955620460892647384907102286904346265926597663459628267102138311084411210261815041540657136012195790079475342619027658690782271335225865132247913461398612564903972201955214525040897700710379268401231366224272753804229620105549982052640727115024038318368718591766607039709080071133299021354733544219149796093617285662614148854900374794980932453789387845446781962382836084635463687429786210093389662796243033997087952652330854893362537273464609359690458225071174749645468123374782191131336967399064287386833263807001235100043078112548386120780336989697075203375050375009292813063492075331432053347875089038807704544636528389298880087289786305548880408583115634649705336504614535321281779061730305377309886597384949174472070739884967898576733145572703636343174705581004479221336602405881596214650755637605464259275746522590367997750592040837952843941873788073197640221078528394299270831460859559915416937116342919560766213318494619902021240783844506413799049522499545917913922663168585423770437270264851654515389968783598598526681551686192989759036717472618119691917760837809655914019262273229735767022498371315796685471748645542843749150989937696644259076901691962412479969201551843278955769935283546379490034568032763634607404054328408436869890321024272964686192189273123640478521495267068846781224475864621356840897610331547281850223956638499381501937656167034050431598669784747736396230161164311587609458350479192382138787443524629733193250504432192438326676911536654056565556387825376960866229854787422306845766959272538276734705204063217392762709728411271422168038483114389019109173500995823651337474841935188261505590014510068658102831309472865402327617559635151754885934048333819463155582710349445854564085995660485120487660451617144854844864761659487098728589194344778223136722317869577365654092694353275822436201085738416845128859451576436984536278510504955255462819701308372690697641227807916761413534147306742937458096846093422052209166153858398761494935712229066070646848406015867703000032396641425941641251828104741594240817191284337861635775746896136326118835722939160807644191636033841513526471578339853779878938487213322438453018675195946591943080420743034212383784450286784536669248313729932408982442711461003226903021617154233329449101318288883554723102937590580165008040957642927730059639563359840108895145307325237114258921437612045632698150184742087932943121561828783242519328822070464615505497073445309332754409894573953555805714409864358147084638524474513322449808006994512078433560963294610200928638531517271468258996584080949521166055873625821104739943669652218292389487855475434960092182242174416590544239049497105501414856700944789758065310313929073427862943413623877569184489688603244764744400939233910758393496303189461951148137443585295343636350001087305678924577111991089935732822811003765321241296894201075306805058575481591787871801562230453642532026479618840229604295987512348715220486120494728991593712741679513765865204283087445953719044232592431395031263836768952728769111422242914367359682807597461963433781202306081306615418895996934845608923032413539357182509837682992016206729687630476583408005110923832800673069681362755074913923052932946163709136762311384830600654620491200170720808708234846101112935671466240806588099255203042561494702827358718320963347911543488102147688901970781721025480274846950201362324140737061570440529595541185444061907397232637704315795023054873699427642658750337537428154893564858156387314408017553387077517234414448319903511509744072635666455228494827526735161171758802899010262230093551465449335299728485965842491056963486710621159267207009203992902491231204354087118509469781466542514761726310417429170939726977022105568173857582750004235741747646180031511112396237266766460730893745505198624054999590209436311181339259750640613759651294275867868917203626780871864252497450671616897327061965360572042270309484321344953442318318328323229020963643313602412381420454630768494671897533198746621306117763738621245492423786744700800405696885940946549552307153186961982737439500123200001605000612208275539144970752481622990615149716822606311327886086139920246745896759778207371242377499270391972866270445853792856623143760846925698256049545312072988167001007619542451909734848512267501665908720234376713663206394777448360067390316616856914826829799315817111545453451747448168345495304137850479115686501701927137193512897550274881749397424249624225341246704895932090944743278375368105618854874040947596030955121385336469037967407551125330454381152832218366365056841539098420520700047435021474348478648066151403252665488278231569387499613741481100355802919185300902012353406950651408819119211587771594318527093612970378935597867596308566810025799782470066236861736612268911876788550417223275495018129857241106558636199838075384691355610274554956478825730514092507473114151573023709245709166437325660759110406137587040432272000193286570386242854816644073447815746792842620566550131887921720386554278721119288939196474728557388408792394211367678949758600555269072337816000395074517996899991038822039901168603047173717707666812080167523891075326298697580597462943282627815976788477959347289331511519280543291453736696002336195504787284330061742329729893943377952547185729716702574665892087899364565434226828910848378000494383037377920833075551933537928081462801290020062548034061044309182946134633408502647214127293269724885473602186085307110521706974051069641914849294603354568853636048164519837068914221063572141368437780890410253727291811765389817718941282290248922274236906235455088157390163060884075040223796106055862376053169609942738221611806738389565983931071480658500365728672613859624766185347666549393672072613524789930937664072102747402777499676346151161676310047546406209272531471153199716471477809215576974915989533730838225169165319034288325596796336705250845322362286531661505439199372314119828720398926509964810325626782566878068223191581736046542913983535791830735663499470972165354909403957702248539008123926255255246708195727085213085845811714889502740445889462460443900681852662676313091680871112385840563042229428624778285171935307647737599109545172181592221797807577988441346074397575749774971686349611325685566037537887771781628151805102026235316266167303572230970573984661570644262199686874315021449221182802661704226931578920552983389675758869369392908232206605812258360859428740874155912689305927291976190011904251676315088165022737478975785527157768767483219416182749899811888994467785970338932969279156211067895815926290113170973302446499783811950850804952783617913530719587856468623832226216697504041117697399621963309673764322776990736987817381106861648470652047006401640999814486968255849391396061151921196906217745344491982375816968503583581507745938558139670044614347529965140934941001454005264760663931505029015624072333887444752848116096376287863743415867019257313020355949634689114754692691912709108547119273957962554611206389378219570007447116743485242264777723997437436466648383866885657624165619942457583601835465480467864449779662598673194228768027357735500861153512137276338548837879065521673009942335813540696253278183953719580336622383852054402648511751892213389281751305941183449449426279004389693944303864313017012467957323007854675611791885817689763299099632227948757584304073553326976951920425184873767552674954338417837084460572960481108922376250436990590807894866395745398927063595256583930269777219049523144246954971557134245387015295060487401206129064482445867533451930692029346923429060774269909367069902942589771401333415333900240514701006265651792766502468410276049980862465755239213017258499699129382716522858405692165353482707271413620885191418456786520437758410439690540229059159973288657835421286849892492551249655676656048398063039445544715369817443914545185243489472424432704658470558157781704568097441571725158580651277359930545421863699256143271615223084746347560056433347254646802000098802143105236197583385057831935935036378206928722681578125498409292683746851795038703380797073856742357169217359974764326057525036107563898130285462373185493607405962483251124805655890236542880908695995371866742956329581325929115258011761347048205848776811927181129779344394580215351508518608556134032794110660191371205968372588437453476837700188482682115407641715536163548339978999775721331439236967708536200330031439597968983056818641869948257533309326702316185313414985382434998121786131889552407826658021608940500359931272920030975799940654697155933967392571058579171046473700892349763063186803447625772422619492047608316462031577927895302292086223691600265969813951673610986564593464288349368446561928505672247881555441974629084850539309290203035035981955255586924979726907228544188970584251438401390283264030453714575214911290648966972907615161486881250239412678450868595534637322779391914139882613214718656176998310661038131698071904612104407122807808951228102672545642558497290315509915690851597972892293560199120175303411782291574800958142146793985637381540607469496647779633256920441948600103381379257764392092653128993326100676733172474773873285652779667157130950333518869940675548458807580929873233569739333548068362980132224140699957674384324510891118062935698838775990548737044916404885146802406431174673871358047258142977953729855084036923140243940864299407459810884766961668616380527383867446353000168952244375461727696597024425029112073879183357098038080552445380245688917806274548683476627892058836411740670494717885041036514188178537895305322184497587392357251203517552828483032681625451496779367711645975311279400843030528496521123662466189919215499848850530090924684778157558661229009969941959093924682885910980182121060926617425522973792810878028238346214458814492875769727559903689326128961082692290341359386805986067051945791124374741141714068841825912066114654383278939909498209742439146774763336712975851053977695160216730582316647088951521486980599037669392688451023381191464779394841088997131572852683879050271655156949241655686575257843137155843531779327789992626894283546785931944610020014835917359714454516046385733766098890053986199078597659983105294499265852603714330525353837096778257876798206181046633199467809614326908082795179559038686489967799249967846905483084538210349753226917118679029121111565071448731282814523941652582485224913215674412862674989420795647968508695464004069314133360288697429175715922696526204735262136094132777051869968933504394830622559809286460640238553938960879415077278008630039694270439812141420772733039947879925345060109209367292769174819513027182030588228281409789159452851753016497043359244391810986329833623987692446220433154229652216355176449869444609415012330701736578689338818450610136226984379270567292624829982970114216929593621446270611394633852593184456944539385833428312862403876262345255024252809281238122663073647984479876452030844228484793053747207906978111284699961073841976311236703292106557771476052267991186939097753482945773772600235995051320461835336998545401546656301321486906404904783511080518033185613031020991676160720081175127121597306106048767658485184562395625034979745129571429127055934494118046608293666584700907784672077596839346552279558952223162162371587868663035138950117324687441704180496724727815958153893705205491512768946351182839683308354523970724669530600823063753421648477957210527369273649329335765420423928351808622294836383972258373590334284731276365696128503911472838043565258823990652897533247108720126975162290468294125508463048742774141172303371419972599146789919025705863157362750691163050093353599638900500796878333118247110976369988926863123628582273067195480970026172972231478071070413781231795775029493136904914000092997304963010277696860622692355333745345288831187617098843060768420334312595702956109625245009859631391011823856848918611033407303747202409184233359166563103279322990345599607697486072537241178793423191982620567100590979684485435790498757214829239139604292620408364456628219534016293386025339404857814522884776521446229699682242611087356332023584921201648150407187536355856816035086525003179459688450106081699962193080479059291760095808995475203844924004158066764895715176764322094201589003387547750223381728564289869566699865859380295883360326193373362128402118500369379996588987278626991308511204578272417129795454829500433879435118534797654208780626801596007366774376552226375428579254112019931493666541031316305788467484381344374914691730217721649026701222099650925637918871281902541038593082410206040130063413389646680903169018789791825655924162552193830937905484080940254638182927122913555355863321463112395827460473701266376380135380153937753897387707728844468071195307291273842429998751093800832973168619082126536945634796054053968339494314479201393526296364154218097272013934833229672276216803636544357799205488236952940363895985949508341398547026174468063879117198440824584289367689078715856748473083406137640143087330336393021812853118110612866862811305179014928799826173442094062594853930724216628533033516292415415494957651731746153899536947301835976483744754393121135942138433590713488905789322811845229544193282979249218425059662248691130015729972501351920720642473337399497772070725183937090040881005049227333960315343720012882209801757604144345575257160572324758218788249679501699728525330435651220794289858327110483916350326512846809221615684230461025135024527549980644979882586673661626926368615975038591647568889626971673312013553007132769961036428446518990295570863770672197886106648707858762313788443828646655476186191956521234940077759346924677986890001903805483054953886621712197488422714108095401158252918781027826521794696488455382526176834167001495883146307470242748126636324731171990701532548768470711918815497567889645871064821389741659033140580628296126425068039256784971836553031254855905778364448902797892356579177166340177365297732225561146614940532794242274926301461426196390237255361966357705744457690618895370288401712805372970048468284907633679662773162620351591281960547655703230313608248289912950135698162113539495696047728136749006111054252714436715923994692399762655323021100860518518295603237865811991252242085074160434562949470640102410007471933380699165362027295778119200475113726560644145014560154705016219457408416967380835458538039579110679690282339796328831944162530541910211158959955324459036264610932337196786076718828089535950667618111425350586876380426303580049743958404886205014688470329982377157986728555320583611131328919713150597532569046831971936378594461738381855370336691124096209817450995577902296958888762343793402303921885035401293416168081290249307903582109685788239111326317519423048739608405186716816853701967086041652346931408719241978456112912260006969660170218777850857971097818151120913226875051368134384923426793194660870241570829805175132169417295160260327753645273647401560411428454857064953140350018376864553284479786316483003381080263821805328920611661939766382494239636559023311922721835088680736354632571366192085277348335484750753334927821772887208816472360444914545955963189269848948978274636540856266833878982215419535101471735897537197413248553098652249998463158590288872120250399792321136512452573158544838248808252763312249319738632715650755032901149006367709475877705786075064999987244073378473298210859415108588065743685583746601233111009812239029074704275463503804384876036174464747814694330588667912400295033241982178322560567197029906702589008349935055419872909648619306068647379691906544116303819219375430070929438870121852437353549535912355848959747255634527573217604782751834690337334034654600925534785158917411737612639840059554375426181524942463522470160809008226699398455783378531104444730940027196479752006860422713657439102199598354808437292622871875000716831183133081290781581623453102215382716600748224097400129466841383307953193512298191034856500191321429871205273739234824133354995500333066893304315232630681354652343412377054626961936539338777253440448007220296634225144890424614653497013220254734545710899257257354316935185291196842965789949779737445196152170108356901120391382075173770178575050851666553447328950085479519900229902114224369539894436953523930303602340185521468911329398881302792114557047064416829933850917166303986843181763863816651369422386155783283016415149450648323091632237821246405763266566513026477489699475860594645728512350354238461104597877911140177226759000959403211835842149289405936764539633505742199376149072834909404775792770225850970468240332497334033509251245345970816662562596583017425333774477710459163381458655517118158732786511798712675580608411614055487988007447344229824806040173136766274255681941948571058486694008441999967846727906789816093285866924797124941054061658803745720364914969793523554574273693454679403787245278589615259143697364988408217959170289354661582050374302043778339598736313396243157481067090026387858515556726798304357967739542988304777015689313413409172965409586971305825022282443139878538138548468017510692675960963677297144777241422301072944144867313906514275581580979769479336989029164704126470998717331773332288448745305178873206069208918122201550064497451833986902868041031529588217392655134108184085893354965675627692751656837810151832930674618723834480822280950775919391475990233330692425635934736190001330552373026734429610812312798409672865093076625568275220965085046708655668879891034544724613790306203480973679501173049472693345569800831250388382560650550797131457468421816558537245982135935349557267996662773642870286463272137661351946996609851935391688782271114390371402576208225359076481071181690783401754417847186794803614605163418718282400788143352098402559797300484095955037230671383488308406837963202520938042788297710013056063083378702637876095409219027315759203888012912255964812152535782650548903171592020822414336125255625037794687852270022254080740691499787136770043828991972574771323143548522847254602892753450567888956486643617017686662516094278956341670212171234820821109415999844241482277834592429890771479647912998581031922726219706471013783327719943494067186463936673917003429778098475103707314419182032250681116679736899739429123857422776346225310229300195589426192377728264144130222593816906241151586970863760296632645972318342008041137052058811666424586794378728100944888278259138032149496291347801732101243904309857197087855978004400367235183523552947562385295636734530419679359602928705277294548309377380357209197607417874674682154128823246385797492674060257518305208309507465754974188193250688508787253721484748056495868132109603920558755927278374672569840457120501422166929600360951530385942884106511414210003390753058813427338584660001380975806631197918382716429433925127814221620651584560215152069294449635834792286991054511596755908822658888828046840837457511272076679288097237030738029459505275605819175455115633563779348813752247707158704415504727624057980115771204611613482704580045402320441392816685981993952721655473381640978069958301758206526735312200608239707505178260973914777560080567163910822018450919812681376585031610863060431310377944655935218318888021071417304092845178919647082066352032280513691970633555915660472497011427678066810043781287355340090552138045536459754241809001805291460392363607218992941165033503468398076879282834826348907390410197561063006727687718401481013734325408654724417762576348583010824288592758693495134496485492412841820083888691723169220495961793777207035948887047916709071982759956983253123739849837380755525667670869253410802413896377930764443847653608296588553275847875801525415287997149786224304084311996559847962849995915871502045122705302890800967344741597579885671323497198327551812499641183003874406043966411370459697818660488956681642811294057735756143428512022402751079539926198416459831228139268193985000714628013471637113015302842677975882619487287935649204222948145579176328751494497319623811091998530723167761062054144076010005903531757831021900345453595727508576225886193279484608472929481587599645084927897426680163092374857120717834890746493849843951883407542956882323244069655648622100989306832519978576616484886658659296694307303884990063391209722156176095495279136280505826875861716114919452368656906342407630470531009638619816733874024713274334902472642363118496743643264710184400120928869251535347724306637380024751957864798464138210550171659483936804759221567909606751151752647681829194979629782847616212881851713366661930404527639333466560492610444719975753370617700647289392998698414576930355429472778033801591106625030693544953785544125560869702434021424272998382484144536789441241837720196468682755447394306631503585455413596942398967298567903519771472123594214705998174302370060060749917431610673966727219523866334157752919009996043200446087248039556446589275346988713006569301804429602975327887885372609952413957842376589341890977803342309398880272455306557280770351938351171282705724593683299941458954082734409349789090701169726924496079573990320932947199274882796759957898526191131198196993076467804842041650409990733677224895596140216277842366477352180496163900221718190132620748347703143219456829356697579538361496773887610889401707798097490476814254591404094884820110931870902546044785953142848823428560159597663399753975218970779616681002129809175257646403357098542205637785890150993803633446277268002228583204988175864196148155697978872248301528221647113146955838118658329046034114128973171492819632886035128718311172915477629140423540422446059304825181060368870398511466908539377959350710425247696308577070319931125237380518464297955317531811357213097473180634070686929479777244696750748554541422373168560808466832481885639925431835664224986627161035418070572268203434659343688762599086426002691117091133607042804451668180241723910747081193551071991473409837521277939848136368564483403667500198291825425279561320363314853017995112419956519923821832634433353729273020902130696070901873592438754421911798800217130383529971801924782684464474031301373795984512356457721044642947332728720535995514067388341814594117957922920489967549157344374468938582401657144001448839542335064486148917642089753880373677442037920229755655470453274261509965487644686399481336382843565029616875996375345186712727359762710701466668549434842331732023007802553455461102358355963341842787670059781738631101921577540133418807355984039042041265427781972326749836313846661329415677417038067500008953134174547959764828714161087634830740283705197037511963533346580731297682251370795472215510979068510231717091643487357667863085975691986951620640259987526199635920708338660626010491878866600907037790302452923916792748966545770206620566408658446226822006211499129355316079030100436337409389872077316254336800434582947347841895877274704720346317037891446046667475313073413433071243452222729246389698133120171250365117550365931033778349237181877395905913957732035822489982223389013932153635021191510109258023730462426808445953341349441283961428305170785709982641389171908760865550072361970131006427606801667724200971656368967890860691442854829217932522181335638716589432208813549681253222892079764265426325088430333886798329329141399143789560457168631586534280477657931558927159397807619119658301386972755030211708127827443498587802290834006498824180639335015085494966478410715409853613113534460788148907241465905257762092685538708968907117206920753667150529980373777511693383743643342291189310016323689136607122889879205612154578917959020013390668076638225042607365389742160865913555694668729469995956091785393700718098513328716745682535734594879875692679022449220565905951466786570497021411686683202378606249324713875289218671973537655065977022067476728989854587885060146749918608566117498173520953742887829474021761606116040480192287938965163514288009740408402530764496043751131844117742441178381090293981117244308280245809918058011778179289747670715967675389836577231108491018650477892600236792137936158346179275206780981991274073454024746813167980099467855733701464587533033476474823905688017211766906900899982806332975187980042545936960019012451449610417334143782784377600645766845990231961078579804551889859508469695398237917232106528148251266095952316680956370066984753778578393186368356888756142800763464067747138498864497358617360265368421418269033764949134065443582620132545255791643707474809583216060524756356108734352141215803228103834651605229322589728451926172494510757539547959677889254307859421711517887393966758720246534412994099657369235458548155113211658895811208932797902996735725764649265194869770934936044905717837434460678215381111120301782143386442770445786231623690485734302099132117676198559486597403700915061898849497536118768519453802353280778478592403306764878121262576538840645566726690825043764632254039226233640133515285327401020764809789873755039071598114858308236110002082588295894694944885037468112492067052034493582771491782122767677717736247440054323620836863388521763414463083343065074990838343617699926329082637445680644187996200327448414872718694027866955265245087113837441613370754106567303159236479896960302373678663262441361602150600789845286199913636843775124736932473951252640282019488269681998103743281168446364056338351805969445568430716290760590235943707238535666539439548230175117162719440954225699392860578562618633652022959363597347294721252165063726647735610615431944699011064939070447197335109480177239729535276478483102835180382033961869394743266681090809001387970960140535685913474608188273117558252637727355001889686153594854268888208552276812557485035839098539659934275385298915753122540374918868433081939906174131605491439516226490202193950934015538138769863401416140590351620250963259651025169658769103121727967458845975951642080867940126653374918998421272005316574566665056643919622035749441850381432681231154443079946598766600678379111401804980615926163757028957261407859661213887346452614551258377712055572867580230123835184093196042497756995491604091122700863102395206118381638582101711766349559895934836282645575655676510633819724802997839558901997312869785804194158408711342716611740110140348919517723648071209513866461234555003658467568703555671334953230747591135356945437702321006405801715380276042274707764664229726871561347790178818279046844644324471984080798510196148557245323844838661431499645808714380567322708927854742198536050460460203799520768130664487259262844629648342075329293832634924440488757869973909591812635146882534969298826642476301792734868704277514667439431365558268072165531994525527992016771155818002552718370981452102239089648638254264942090821210732393214143579267667100475994921087105685831692062066346258793492379317957014229323222478550951532467583820255193346511107234557886489118208086421188115193103637254394000172562132834722759424275604620915190459221239300918347019119823375814126313323527384265719063293816994723018496270217538759142688015598152074098551246248637116316362639531592194826344348554176534506963840413545257988191376939141364137299033423576741130344538027531525821281327633197056069815081738946134639546030726933638736568265352007996678267035203063348914390439544609388063958422664610116490612255860883877777859445755649423584785327110805035672977397960466310025182889731255988783305622778390509626066739603333134551000579703428317912637182819056900152799711320569215051328811374898340708031678956831625234010020001097649855213901590416645134343173858832118980474479933483994127428322429105949203517592235775332196554128595450617048768822205876827812139354983145765299324456380576924337718804910757472956993992287370953772131035029747927330263850417161187734068739440361596361873729512658746142457794728876064336957960870319737141165500070420521490923697269888817364372762077958070229545004946460054334867308368513651775011444787186108184390972653331908089623702942146367384937398293024502814335213143655962834852413152507130667208665174923225258544870885936302199652790451069221898446578362183194021653088317983035101946762270572435371875331534084419560466038159553814169328566825311114283326421880584933507662025718725389049548871017331313667218060703365407767723176072844569676765512398330520065462685440364325801150871933938009730333955757444927408344282890731858484254814286555498580344769405894356014026219687742823145741448617481739932061146596401513540652257899598217966444004876026873110677462595136790832760540323138194114912195056783497982889033181309186124177706909623024423849753643755361619285042263071476703348776722850989317350127862482631136089562933479193390313084155135238487519947316221009421335389904330831964096259675157191741836799118003308079270797822276800323639071284747495918235235825425955424871803229677115327858477960019904603896558178729251198017899414785146409239324103076455742039965731218612665062247823221725788473927971477393106767752350703870313839274541211799532379686562345125969031557052763293667738780570469465370597664682881287495186562317062814753193701033302637735824560540704894894043641138104217478748341050705072334758074015297164424177830476468558779772465639238266636038066813209578709074610889582120250547456801175163303636480805995014901377441816607435514656877685684575065651525672505339625448724116555604877002513875010240751937505248834915160918069693218697376203222759126068608782851255097109124572644953934338305694683186502546360760813606582274115948334071552589416083958139704564630978476169046127528404494620086358429202202070383196874540594729249565499972844628861874195012094193957196906035321693159714715753438742785114849172953039657798158938515670333698140426976166230519154070719261770503233645436406264784120388767951215699498858905092858375517683452150539373116936757119595812592786532787669415895325637847799674526922419107780493958329079618285672093450569782551837789760799949731454540453633386991267327512563696580631971007075136503840080389238362556001732605344935538766788903720398991594849753616035531555013258624987672426213432702457296568588223272337958923226999246716978721430983471248028531524375597256115380031762046560058668735571592328656019133509524140264591097552069857754158049677540934618942189987504074576329476835671667171971098551783752180664199366708779576883144318884484370943614728847558110330152978860887331033096057843404303519428509098836339855618644462692475609691816487970352140349433969728417198537616373546853987126489476396736112013219522878777632503768681032004812557937331286427217439207333270525783081678581876306738050682506555611468666477857114117267927961674547391950336261538682118375534561755583189828300085505667223981754507398875830107597536095114650568324717283079023428073333563909809709906270415168441920249263552345337214895450199838426429820598523109062906854647599019826052975304167115399842900153939620189843417650201039544779388009449860264782862388956989004932215009041256488424569272597021534461077834856696335441303690668316254813022420205953303557280723235966705023434931504491153968283874448841476294812289166638067046114367926649099168592239701784024052636945419913294750666254279011304889696620865734189709344366947760014831137565238821122313964853280316745895301152315445779512081625734342112904992804105683196867487218859751139997839861004071099842599182996821377016641837863196297087855414587735752936541602210452190596627687191751420577822803645428485781931814725202752558706911563598847211284867064430775524632753850709419350766048108739924831346879629985613921920768325532099125116183514917696010168286903277660899420190736706966053266176322075055761455573513132703162985298674747544467524479038087984027999547711238075206935763656421479720492047994785352126432919629846924622414705808687232733550505024581162500654267915285220635666232100079245072263151825449023243952275629539434525913773118859180196667913920285224493366061556216673235803399201831127854068355347232197891296345824653264283245200274625088971536529262934131898420533175090244440472329259291141818911212048244499359071984999247617906315346745613337687460854529303851295174186347007612515050230590191177748459109646094328401604696709616884362838842515900391627693219007810812934428200003658228084431707405126059242647931004077515719720598565023480290556304708075661883513611042569961569385993501056228593780660466027230380176151615317641062634736107520659606826713081112526875275946178924971955124119550158109869798463978324834185704369394385277693697840867997565117407176906798233078051355076811222498126752816381361423729634896734752042071700041744041334522919986581873547274062910561936040462181348026026823236264144656715636345644061569675917958198750423629253274156578436097377940799888323974340799348209633495187019702179953001640502736481958541338646366144209698568496024172442993981248377229014469660388576090354447988689649008858915138479199067810726043679825166556552786298130686598943757492597647682774629614083724745302050412504352445747237646140036833604648370962158038426857814001017638842565579852688971475768722777509334126078933037101902646527110626007089908158752857166643973144479485658011306910400961553600031172923986311279737473298986102851533055615124828106044051691402121040606215021470374313604538084342195663418931071708902812989777176577231659235433504280654942204680282381289146729198034015853924080606456187401725431209432189607635495655687411520369789063191555914834339425469893930010495946608121793428751953023740991859463574818566638485757047102404959105003243509157868731729737121903941412822263461361347043528349524633445098738595948138727768853654378587883242850345112823883166979392702307888916578247608018618789995955102419221766521403128120016200327721524648435304946252459968062097419745108581372337028115041213924074411667968212934205680445040480146601313332393116941226737191421357392753147466511490973744214600110338865430404133554620471063632099194307674668966796578550003464470990920487281865267538382526563104692249390456832097863163698058463527637010815166464753017486175556788247395924699987546178148599590211099239841591207586176819475565695798602339327576707354814191051902315330117504557336652587688813931461522624579970584102147690366326796307070110642414779155992854686325859918811667854895663309153378454121765276472196105718386015246209446990666314273636821131933086939416019848878968234399554634871252092883475648474882521420382375037679554308855481573579336985175111648975744224415279340105028054910834871907188766710980016076659419638270228855354858535637973930319187448207784702873938240325324066397239211232826661508685043668640298447183251319304856010066703254379252023833438902248939013950922237842209224458497224352142687755866365768872127012830707770745574336447740122175593763908852270552598292608488240528998271064171133150345905976012497310492935546786670393266709111453312378791498231239373467025920051027118058462085265014382789089492598910581317757999162731522743312774570013066276607855489049535594663043299660110094569372345991743379210846337458466765527359721769234622177684582227404698689838511469648056805499034599970553519916409748968622910576025275154063417757046257262748160911086947205951897613204103017777040558899134101563768216910142463942734762403638749781891366567273712093484336866107562114626908772521012374580799359111670634468708603460287662880377458923741019426417173110813086669179758310054001741449799185889583209985396732947686188691784802663193311861001694861021936324145155980240320985552107693230288518855122185832774369677974000460886961975721305844566666587403484541999772022123847959789719135932198340094842482510032014353068824182058343640302723483379616787573756502883777491567660751528166298226101255102546344504532867873214069014015879222289755498813286493904503748976744789682792504906978850189986385264275361669484506885641235904244587015713902422306723283052290170311614935503681829462275345221794460216803573748107298286807417055470775931144247456066925507999052833783217335508294066245211019928815201019401607145050282703009914825296836294316530802901158793984779359372071620254712372877028310894795390033801884740010435468575140880126281802441074379621667312511677960147498891967819950888041960804958992268971598431394601374334867762466163690066241938334071138082417293348467416877563423519725079792996259716374423694811462290069364572736985625617553877098202053557378329202206829594985786856579337595948370341451005089691224116761958243370182662745459635230081880603221808220279542252139521743986954567771583165076974386028254455890188490502768371721801552397890958331345614488183524517495202959080648594677296103343886744521157825100391068274318872579010081636738762858664720506754557227326081702828147510716397046345478794530027452918980965758275413125911047936395972211453937857397092239657990301023955844740818123146957110730589151990829298493026131407686101990452525189381804127204228681664953105580662215722291926543151341406218761189758034643046442451709118426677932118866494671392453157921849739761514834887061402934926407288040910416677196857285119725089580705285581985820225794513042837836441017595965371239678728676328605592810119038969401720986530428285360823294352136194517581211976346671402177962837007801038918053767527958323008950648779519547258861165194826012400742152805425503859225043748214792306965213550570537611516549508726612787084676433985754798804899086384551508424489105534165339433647025459267445268785268336203201237753946267980900521246141308400485309069413118952055817417424860427848126322581542781605811230986390576145221205196890058909055824190289520094526275129031461210387521080558092075701195719111073113745094196260515307816865682005694778793818532433141270249387163116292221401293058493341353196937573741749973099922227642985633783172490926276510254619933751927075117867022927618607390297539763410449176953986664194435128677839496128210302129918530998590795070323806063131286343072262984601698024140174894040731394270282442923364544824632618087063869033551444875417488681307544671537279214283937961831283160225939352508909394934742870297485890258545081569288623820547321251659763194784380084910950255271922675982091357918588344087547713799284468453689415287846070729241846932465547663051029891764306126380449096990220410862347038214763653355555315706918646437302426232989276218956716061355343616103223047109179551834815682547690836459733900593774801252917410023277826728187341780070205648249627947943227024598344483305788170842122323258709527326145921789205697962652161161781907311841455492315262050741129895730496115239520840965212624883123605061291224564773802326410991569406907699102317817112993643094018732470553199917430476192736818318370417935014260636407522249702272556720644801572062725203055946717892875661203219267447775250497029221273233573459143516991463177631123012108108346408414910384236420043393137944710000670224884236197988711616197258325925373726891720065847542715671643321053394945419181723975859500247964937696888858443940605279660462500848403598609599337459532364675377874520921225594592471871186027162238554294270764185273485071067631901919262191076044248921393186521534500883506432912215914733374699741509594762636247460958886142434191662169846654548081384552348996611055199442200831312425201461916458060080438722310352512179239452334294004697010615772788266234897390815390560080611493972211994947667101019881448435419415442250717374232621088893728513176885672008313193766224652765954297161197860025861840829801161769345311055256124443228818548579478766778111893151696354511910972360316747322420499869130286829894730585845602071574614313581907524638013504960733553673640213831429230293105811583454742131380388196619230051811438462086503444548261981680134872273550549136638243056891836857132602983255353773592163595740837165701207182928847415977847502728959092681293911229417655268846538803255053556170903872289988759328909775322127307279419160102154555833616009698481147090866460450004798566914673002376647378168859301536733759506919311370551868874446408032453759353978896440051076761985911115322819153551082504209998554489583630669152788302932661828015063350820815817644189033561995529285541808557009824029514193347087100447868220010425644437374373809732620443375582110340764939952538457367445666534554592451504865819241598220538226024455061192924439315870008880202206621909192408240372096126148508480457403279960462930231958905145821267676903422852983109404762237749600418123600433188342265468781529600275150969074972301058984191533097834759607410855329193440896275898436262952678200783509550584730327623495819675228612367792675756713960101469571647261028374984125605567736958451233805678027087538231060180516084574419235352402997175296919309307152059521128637729434722226262786125354050358576444858160944369938259726622149573317649554167483797050984232841399136351724640496483738302338900739167831867919502287702604167319421335753877587596093075749640176911864868533583943640349480242337267057848293245833044877439704032360315104293167115745976534212582087456844576965756473765078560453350269151317207388438650357546291401314258526164957878354249856333037400744182479665029496705312832706593968245286243964683086342758946976190388704078151456404997016692275953735889320947071311506262325616708324995104677480764163189792811304510907222589176710128852609492417948140347684508605350684515641700709980727191002300079709551362488856336564150562555722628242990577999439100311674964161354661797245108096312361602351247362099280961726900698618669606607464725029551857520268173976333271780585915659859540902247846069224858444487790349779841900145506267538033371041979588833569345618751086108877577222616578936718940278422038389683922450506512425820489420486553252796969661139061021220942649576186969701744451137589211517965779111071751390859847030765213095666346502936672845867661056463219225525374075385859163840780741790157987763345753769193965031363615786973008681623439222348777314137302879265853004055294720853996392198786093202730482147478715069138109285314343773060520396436958854507597065539550121261290926978733088152831258055697463226073759195789714521278209618008825842275660900865666590656278039811840414935406773527833217207147331325111511170966882827477878522035829067141992211717493684616624055406043165202260432946874040744146749430323537922731797624351483475243942543644428993423641991618706364262080234260674432966160253011074875047804244774413631489965613673816374499479402443733405524525561740255763178255255801137553704389334179869602459785787863472475626615020131754461211052775554351746849865629735412157492020630501899025657479312198224679491479939496571694376592272541702425013045215727627514898529449946027881712731232472393373108757248610601461555177670894720974217933190924221601233599171608878681130694419490422321662794832009038819867570564448919038217474614576857635417406951700355559804527872592253695843927031766739837269968624605977164792998319002684378631470758297172304550512793959524868429296997386957013632754454820082182736160012484567975930609251302351969190274145133097043374513928790262020421761060396370630507985899547167385603983177043248128400727646121927681789932195919867168266612749982030660738483958089768044517229892076832486882039801107704940371606803909899563149294397133547368043466628428971209081742896128571322749837986772690906203160866815696399351606854915777150107281258244698404180193075643139277681625370389419965882550673886592301546008911853978904422143458397331541717901072826830857448945627090141238171713598966779457962759560312725896462292747325763661684165582598202664710359324476472179567952438485843983421026655215230873916850072981118859394435610270421937221842073875619080566874100940670636996876999410388519622723439687285581883387594285417756531300418074539409618398619670563328214120474081687438786266999804100166144329287110341960997359006558944719825662749703487788356845342832683930789586247820539442719261394898276926714001311148097125790159572768840583931188537509329821687357927398668501043476996500487364385828992761890331793092494351589406943044814890604074623644227656394032499165069379826719743025845451453758905494382821072367557281936657112207027383098027746845529589170817162266439534157177734628660725535325135399178238710243772901742722936856967466078044783893369984754658372008653996294195665194965788237538182001566433133823487036903412102922355000728650267641217045973531680848117089705873268579107728500846391128007648336178691130689280103121199780341027476260384314609171235553904491982258099842690549768102294325080474617017489906950248458160051899490215487777015387941758674363991418272877682504145662775396459497173089370144728348286780919638008592938180310398474368445209171174533319007119850953450778455884176227627856586148858993956782926801053150399381444318218722121776587752805416827635348116484384134791121553699095121065030726187611973733205197170456363279841275047047688632132877656017097677439060712933101629335724628846449894895036944696865716439784158780050340048185378047132286986675662801972875927301655828050540256470229258637947638667317369012256012123117336893695895539384189795403676752799852971994834458893410292823763721123926125299248045961033314510802585618634618187096185294514533560773335417916557163650250401359661862141194900907617873478387397915002649641730347374638710206861839410073578959306679176918087003076029044808117407581181081453083149154057655816510998846449732381664009259253095910500179980238658664961431875229545738298783174795207265552471379356465822544634659588558091786207627177304271252251407822487203256218095640914096890320835217885400528714607619624951870863639199793984301658374455765611143430352538498914961482784084629369546298439097683137773233639341529236110072542578182090868513632213368267900324976166148168371947715132045002896672392193719501513779800102944371489838455327449365984151379313217801984603098874677415222507547047738490636929934684840699732804711721209853357312921609321871641848595850403702326714159293607723208666980079058972407728378469616567458249765296858606085248234553261965155241507682707068538102932384201353352735823450168008487995464454950982713430642947628787322503887188913816404724628125608740723480452997808483573747696052013336671962191974615142853596088534794994130690324058690670740762538404895018047334038531498242506754284769666729212180595066911724250634653346673214745000866891495995387902150149658358900098203863601314357256893628537200614043774273731389346906091238150321022156587326298630577118060561248463634491602705665083422036677762934787986037740659615798110435140268386533294951435590923162088343621465507653559880630920293171202998904692462084474580554998057236918642971704625492760656302602448593322520172085620602214272331335817537256095872880264267465737067060079697048554790087773530372505687433071292361129367713967381048494591592289775230107670445123202454359027235452312065503138393369300124280784936376233414545706191704677254063651361417412272312443740355886365115588136502781257290720330977698229509322106430323231142902760688571713015766066802806584994977519118094040911384943315562526102839545279188015480066291081610730914100682606013895385266738996808757385186397388490680467078471016913188200604659171714233974771260411827815340001470362532120133351628222301680792160501017955320782481904009674236820069558432228862251359446608602212969533168806634130573604589979871092421932777485751054735159406113768026470927855300846132997891421959866319455712678462513715559936152560526306051555205072787223243313829176326890998871699281910856815490161452363078834649404842239862514052470679082929676020978247071372811127089570520074597143553999956901109408036513805080387944294113592746935427559889172994728095006255321636189579864445544598227376117403394611933960946542233892542298382448404134850969906266184640612215089591759484151556688109673450966929896806651704089245951410530923137234445467544861448665548779083565880568208747847293417571907445987738733520554729199231005938991285247924961670193830922262370305021343948128500271506370427040908716951610070841918088610278399596208854034815239213778167502731594179016409123954790770530225591616644553318360354490564644807244538339709663955868095501345020089892801102063510127898509769387777669300133747687159195739835020254643246771125902595884902436199781457798103804883614092348613552137998710040959953677656611792375461438044894844115512013894196584874928758241642290909237737175950281874190921538876314565897567671157208077465343616061332972755631002810798023462767736473600812793436438146651657126711082295342015841060101983481864309235279824665450567114098596966991113826791008427189631685448816189303506899440396962363785874253045093393376262432631415860592941244175490198147860825310108112518646998588069382956121876858039836277329733963319318005571163184923067906163018669732418059720249193386349501082256624832184516622381020191342021395372287515488934385529673881107478125687258946230156717536985274559001287513649494766983737328264500970082310061001027678021792225614201591381792357518772607151894077760254930659426233864254858470715787144194151237498798421407881764836659221606371329920187408890068527910180068381324384774160991330468934140621667885738213038557029500331335280303559446648295282417148043442345089057524850833746349734860914466683558477397161038452084553942986316874980946249075439957825432282972724395226361908876999345133745505389735329200518456957931387492500681990825586906681577010488073783570408744364480088074875455054897461385979710794059953737764726225324813443841407209913834706220543014560465288518691239690553503263280423795647464249430575333800876593123517763447973305648181991879363152995470784588278097862346803863386640383654504473049515594400998814655144123336394704429253261662650557817995039253159503148616856520967870050991547346835533929463446701571973248556636167777860989238954108909210506139467821389587183482870018797617154404197092540325304176668735622835497417428714045942250314801969967993771740868401221050877784936448146521427916487711894207400296752372941501184233651428097884382325764478520911453320172595418941967520447013203338777713666030486767552169684752637926078974350321373541140025360683134070947766171272048505959749764287682681900699479250748090623311325836611507302830500563467747640359622031304303809238661417754656925340559775995777984910835656481159133668449196255439550286576267756259589132827536410353000629222699305532552166531529185892950737583431221017886953505662045598187664622809236388103830882130870308373222801077655250560288626810304003884590878136467252126279823363442127067347681401127538769668237544127407898093526403340233174861870943019972474255284576340253579529401360508158583990856378152772009217102525036967649663078608664529394890325861231060674292740651302515403284894886180000194274846925206060902607993716022813880654010949602067305485689630125534532865722259303254043137684031945666947623502014323565792230133253406692798775604533159297480408061466530247270413654519894604590190076454634418447613157106805906463070575063250875454202382960047848766350308669503923473995326025649166493979767625383765384138757460633631491329755700455387480014977102231329079411033175758268430337147621149700752949992323537505307686419666239103540445866067463812657873254945430973322681153852637655323234700291177058399969671311014558801532242900457321152166252513448679391354815390506201858421025950833129166434005375739855629473792412358803957167182978164412683613453996353562552096908331511785781208992835364523256711736994687039217794094950877330628503579076683689511183252823865902499960177899514992058623782858180131462198063646251799500553490952596611070529428969677798186269468875426197178663708750120408981228637443468586567997346412589617998936289667373001505626254555039864573006273079696155835575390339971654378976955648929686370570653323746888968593390802238558909607975209520654198367494266455121231482751964205660931118670146901659029281503185137441957978803451022976641321782625181237181546309450233673438169248325658925600168762409228789135675345364268695749278617666237509949718172354418165354333959675214661502114544815175002080724908335498652312492184642845632133023054512602607888291134376178394021344531874768945009227115548573748508374137321299970620404984349116937885000211129617871881387549758866577468011017381657404182324686766049918487684599940073573033375090084367701849146660702670079597459477954504676073219158043083959390197682499245154298520511646873633189586019038894788943685719700615416931974294922847004131120453777153646684465140150313148497018923388082034794207121796474589899698980858997223275196121092031937273385605583770002638346979326650510355599238126151058952853149376284423139384931673872331287243789363358626848739002385838857188216282544062376548650850674216561102584405978854228761346698268944712863931043123888083311553835057197305623721018376949156800195633255111518749766307341866913068202851739308505248084338696156480945480325485534480064133352839007950509898192026039426148004973048788578988419434979182414966806036758894755684294364952068762629763696124428362601434179341124349617681497177294734520048608616101252090781450356180750781435979920493704981165978617802470989104995964320886381393539231951247994615634992134045977066329310375041398085893007131359568005949105091434290818054886520578582888170319344968925237474982622391244728557660201744361879624692523445438469303503348044466474207803309729815288602941252213294944951041461565288482115082393809828623023010926678432902824301166309173306481568784746913870246415276800794565675622889610154393802234177416263924284135023254186003191704541396637326065911619527332838878040326524006700872751626299819733379487054057750264005396346767676376596398182862579896911446466432089630233411076998618482778409991007917403436873591828291919985395793332405232574058255574911491941058210496425789640188910674635903122729580684216799464145702457909320172868265040748517053750362624009951292127823999439008589502505718462347843231571562184519752866610726543805672158929021723584409102640502376089136909298181382876311175242118048585597159030400923134865446102974043377761730172241139412927595379051339362829837774068135410950829837460075095714077698309215074753757911883301327226920744521303076119001837992444715843751541241483515935857162868777968773938400740144947294133544638998505963413890005938027623333822793733251107323870329443953308730672750555298720148403818793769869142813168292097244537736411465745483188161614674274892842545108095822489467031627955243140783739410715800267195952922040772209235030076165331444813510668620039371482017675777443787213628561051756478152523369544705836633262980092744864082976710582677271634127797685602707353317347271364190762012195351670533809998233798826895170509924631084940665492982049543624519619801389945201632476560502372319031218667535236857887538805151083237177866263030456255455361349111343556299549548868711774574384452023576486726286036536130919708499335454758794387079568328697587820841530328414400581265071319020801921321711773529611821948511731177583124367720416093919101476000582913643588987833317426534618695094339135430513395327767982599398203134423166044247691015672812697670645960319143144887330799081979885210432010054362399682686779982394551816478996202319549412958678439764934097821662850639964012858110137096570312230585437582039577755227608703039557227042351804049822122852913085877813311724365006723572371361221576268332072351877280908023941092752779824061884869672987968355125359810575777601844995834966127705962830632779003718537727797990202681927459344986428839850313444003142277282183220403119838858503911045834438319725056240869566606507765638242748603731570969071549163746688241539140058862422296715544911602867171554177693964444452205523224697233287827676867355779006823695764196544696243597072522532344375022468326915731855710934671588770059686253016573669158200387080841887082520840360775507717705539297949732464480339819297215794436677442967027119892164365599209571858403692249110344640626927774886531383439527729184350783013788853124929259733381094849137981230399905894766937369610685840205318772012211412827335199443462735823996830077705390750424206403904003861532309120120665464885017085815371426626075105873873932854024618341117948229511241203355071354851547655797581169218088692631105285837383860237059795418312046885988230042619588204321938935277140777534591148573415480501179484095221827003577426883758968776723257383499039504651360841490398962905838056614315210303876881205477576304232193079651244824734000280859474021264124591682383934307875134840729125029109837097284175727234379870216062235490671105233913696369060848212426345241363087085401300864536897803354366757727414450464962734993947851270885590915237777190052235248921667347922391734288167672539534615025415328020308470217033928539059251466707987169472840267355323893252450298986678967506898726605441619364325700371785040029911088243376549976609596399653010647842934038845824212691716137239922898680835452836029001496500827007673114477982360503388277701161926698186340170644508224624507372028583645658075310757337572001454591242616797977064257691818822085451983591480542602578204885744420623397926680510867970370078612541701336172464139010913663857734399316672547146052005289997658074651628918049133340692475392803831386308172726633048825644964854172121274768512583799498963221127496796711990791660401111976965428421562992005866280966883203914990708046378766297260023474695000007819326555070979505842131243837485286226770805120444842672898108796255409595608672981125188311174758352849362180727547739626370415497084985478055225649037366272784698660143951728593734379776766285745318916363763701740470022675433930082819590747366018279642423111297367171897981089145466313487065908835084905220188678498714051589636554686850401068588791750307482095194044996805392309616927431248798853563886880728559568976404634205718769779306802089698245901485108971066091815603145051369959104604583599892914098225779748814248063031845344214284767897999380002160498845890555006168743932777144331475185633574377028652087999301996164025535382097444200404986075166906630710472069017423875870015025246656325790231467943865223319600474387484794137582696894258253226261020098357562774690249877903428243392622759679887917427912339561322318501376073410637043361454337808143692974321933097880487712539167939650981689096389522605769152779097956083990566845549807447499144749015288510202202855591380331321688822708266004614833152689896578833492379809428965080252044628672858741192784140911342795352323058938095105409077484766135183486911386706558471594473548232588267883767534151252812998163929011707417323502753290782596546066692280865080922719600261713901225264819813771255043486136654705243787860686258380953834466572191577617006627023751763306690333779448277332628090292206099344959112698260918673540206704111849777204677943698510114719671304724890537150925914532081505212389311721755148188209148287891695374256749071670304066340304122763287042131882122907330526667029557896692261797186348764970704299225727968538864261204622254190737519038608073645076397402784864275282686457658661985166014098410820803925215059389671417739810818059143561939956226615595966464670278770233699279723543618412230428145299483942386764509859238424543664319805424145062558620463703170192883104264519270024328805966544501329442273757317791239822901873642030111724682712816107906929359441400311159406576962635587539208166114824042990308268456257565914383474333279985939634251902808827601943288652284488984725183614727350397538660204665872620444306090838250793744940512857591075260705791036529637770460261705339061469384001291258721078237085756486542107920120124521006232763032328887291007964413762254473118452291078701013043783255887644144698001145066639079568328789559530275591041208860773109265997218749418209629663812563775164046037370283465686423275497754066914097114799682233924539088744271843448017519749514314984165303304212251520214976517173210021234755372845903898318440309559216022809159515555700213750409134731305636540339991344859113205191714905905483434687351753543600203188583681301560191736187410819076585860865733433362412822341696121940619508365762732597177295154686874374133782276050732029366735532561366601686060603161080089688250462782543475753213439874694525799538869922511385687785382869346686980593466827155359126247580943851635966322785606166071486983531485574820817653232715610392093463968486911271176473210599243457527427636985107597219865623835387430421848160567786787334625572090214026288316278865970444706351618635055284492297438567257693341085309958255759060600429005692576920943419099375141925048009090276929679202008677386700024544692592180050957714426819754955409632926512450018002911867875224484400270800330525340345087088810114974821340505057188859550581669095771480793302083038654619334015488917102846030297741178797037221096036622581353025462926593294595360881076755298427808736813526350068663901336347216900662184093155884338058195319973895879446100848164492573838689048281978593287699971020430845363334150554465663969625591837702167502992776146525455737239521049147504251825636957860406041460485508575945627018909486191364552700652984338335232905032063908651923299896158826485223651161657126018628979695408705043641624494364461638078690042470125545425561428651854167262392809908579211784870897370005969677921763394488613664675344801985099626915066784202900604864077821744526128897881823950634419144665529942606253395852896534929888217536269066786104234488625043538071704955098167171960127827473781421025119680082799846664346442777254436701330609481581801653987400418285492550448319101452806436315549522065150679399032380936886980003820533150558825080941435197442307002710307866149913153130049188106606035575623535257358130797816236719985996771215461010147441853150546107739453717451983434655066831588822445535398481154208938860965002955088245672612073902650839843251573373910390702947567755989180997780980360330257461951806371376672555275025514600787640175660168727272006154575562486174548835332882022304636681800757375891072459332374633406756803866632645744469806431042301565400402312184545808118391954857926626165518859589621238887006229437348058192572931378644511917872487687374690205109941080425203479049860664839237593728982241296329761136574154060049475952553221514836932611418717193011409098929407114720117304382033239153784149842869912641676432445755979910549953139223649517799002264170851259054593779601474400357945520867337699910016853316396725366569155395235128232069060620348522939767278995370043526676765955108983156354911784423421685865925837768416150791836453632631954075919350512493784818346716093903355987078227953437697444121494337398901704121110805479114040096582030350455901700608202682643642694192964089901728925557776487906563028384211801424516038812324985164897959949011786392883776762323109934921412636796811697490935499424909800661521251743282849984964206643900265531257709751667069788173770619547512174951569070564469690629322154635916703743034639404544619539797763782374784334510928695765510732702090129128310849861957762891369291103935369463837576965784400775986457290324538486852650557039962063676788434361202841125288524537564624931922487410210728999657022129538142344419388770113295902027496675440761469749477947217148687063908129690162538674707957167688776855567750347468070718436571397822530641208521340244790453149742425378130164973796481387865427241833749451267794599827385743797150328852741030196675421160022390200511874325166572628496206829382845732637927985498976914880361193890116417505919272097036023436515904000176125070669302068636098058490057355991460861323555725831263738963438674420534861259581696098394478765186805155616302053795199335890970865323235919628932684342490683760057774460401609016780013230189475011087071538840803404530129156765885394089101513667824931816479416855273827971056720286535132858932219698744927605883813139414961706830147425130560054518113551139147573199259361414282695028197924489097564439533946451035433972649055926913467335029505108423607295408397043032298175665708945756262995001241891839901580344009948396589699764022653068259947143187560897441292538042163376682433364800408351976085954630718272826497009855267088457377843361920655332256995116697962660503645954358650615285655153977933120050706031466960648245383569264986883869091360433701347411682289012598183552783504751918852111782369864030822300083003804810251165705911860802602383601802143842062850440285654776568256720272320695413962369827145900329859686132914318752667645380162572656762761717057374869269276126261354688019861487952330382637667886169700944188218799296769020212546091817426145577663906293051280909115437197580743611472060911005155227055192569506786267184729821470852442026427968683113394313826153873927982929939264567551350179588829676555997661237033602831364758956171377625577584074414332986348663583423650416577381539109141090107217944553410064495251278134711987582798846466908650393298332007093943993291387663339295808153551171465600807989933097433497565393964024967692309097953310619633755825196819893911987624183499761451039860441686982639766046337989845678789007113533325049523072371307381928443340414173090821408880287699327230967888393536233129246066317340348009396833922250289429642766533831231199611178566149529459470917395568572023522692641686824239396487918330721479876233736592012677110739479193952266067791851266251799736287205435315857176594467191773123120717293744096495747050323045829983088772812757056508012027146203424833610584307364405611266036209576331599333065997162934828113171811601506948999952980261083593416511284928100622743748602994022957750716048731270205606839469628969337086251255704202419661571928718133376472378404562793475108612123326487998305984071429318780811641653795138535797832988346948798819232938574278281162995336385620856978061933958562493271411583451156200919347059993622352172361851621462035451779378256476720535348554436764606995649965143617553567707941225892032019802073395928280501699722115579911442061042647221996710764706445712919044100864205017350056076284259316784555790886873268568980557459549043132781069814372680024467425261457687309848512578872350228494814593368773931180065077667089673823280533862278149510800671250208072069797515812502643094128444870182605121381758798949437368517932396761317658863816678316472810245153049162704530272362288840823538114682000887948650618755726706952806009767096708900144885627613467030661913313864926879181861207955816575979018467976645405835340144814590882542783827928762649490206060354718456942601148026834010967144180409663010021385518134246757765118330321394774316930874546536491353442215873594451902493171868542442169286795060508528143513105639272065793410673903921711932133725011605111264867524766170087885441153621008853935270623375492591033345818532035952272137628911613476106563053222861116427966819809864825736026629835536518383366852366048309116957090790304288382041413220939776394924270120308957696279858526129153079457373020015123135449504564309595483682012108787062336297288229587766979367076572821858015190697866701776037923880795211459243704787307119518254760702518522532805897681282364237730229744119014789871801935294412523217294340249866723895641945928848914531483350013625009127188198717042622347827341873915240849336859870131154335120515376063169097266857709781160363802776367149358291376391716473653140997657379558232346152466473105120424662756288525787779162208523615473308379974525336998718674561312246656166465012219892106723008400461340455748448538012101908376629681419288514360821829011570127751407389372380641861372045860927903271711832165618096511203921140931265759818692889883087368436364437812627578894919079183481287397244562037960141247679870486069420301915891301770695324098188832191000944049267487609638869537229064069913717153354943813423402699063900718760218781187628937974245010952144645806110782654064788956485382020465335555709033764123405693025700713078449683055450724628542943894347454763571846736925762604006407659399209792081526626280405373168870051013727425768282241263587642434570703587273908877525560756321418462629806927880590762453745512169923075409883741609408910212369561428346514245756928265274995525454767557549766293045357382570825215892739954163755285465713253166258971560360218974670100082928955197493377054122824816217988914260935336489430720475078057500661176553472757289957963826018328448903418070461665724557013069430474251632668814466994371580787355790447953050430825157530793130867883051985849565095206272867336245358922238777779597101392270514315549244431137274801223369363863297212722071150933674592687096346919885232915852517959661064087785646452051899160957356330613126959257026832859975984009879157295783346878529871153097972449648743013489218357478696216541419521409732467229210724966172064822249895110711132631903356148914631884997282129533074342703026503722841808996963284796839676616188319506806330173667701839812115486548792529510496956163671198236819977871213031687612121680431132464016747609803121751602384881959280755081919384299406736533394700299658468928567289167981415992223202459415766013381445529708993162256205428908023214996064288167774247800145285595591574149123101117254393479787710769148558757452409833651417117881238660745576458259074334106787189849393502373404550277201602206275103519183911947291620855110511992241275678355825114181030068656693639962481676208292862010824492983244878322733571027206025929553049710518532732332247940368641767097073730826453250111193154877305876045033277746185328095523026457023975759432734544942160610277595059953389011149349915153488621642240079662955926286908704015369065115274727552059662353279916339209246560614565977105626450286809096749327035135238276294191135040574509315309401094692912648279109360383272467663270492558141891443366366280090964538330801275832102040333826250453306017892909095115823518056287248419805315128281518154072107084926458283849511861642204850346496338788193911272749958985509927825308210632882975167038250182527254020618882876764995379264251705788991643570194051977902587322511389838488955699621336942904644205945273453509172338999898070166931121098639777549904612478392776904536017199199456321481854575996281193218283371573514946593525663444442948021198263598386504580175237497958162447414756666720577398971521371750830250486221333448749859630384077450318249757864630696437570526613350899657559170661623890987824866870403658191364677728256069748979068290468136692717239225285430016622805429102351509389989144769140128004730321916355826496355214538755283003115880153688214205000554152279962991807622151532220788184329270795974480840490833325459895649755016613342525930703494432005974030267354540708042359022738293053012549014441099469562041547407325160505379215228470276888801135896822564082422190918528817397456792499556379211585144268398360782729252854659895847163481542044625314339367867832389081460440970269985336773750010117049267594360278584822892532129414529511743976292829980280758982799260798819482061284915313914515094908043729794877226675008075373369460354750876981135854429098944496349639846604434433716595717725952309885126245814710906032602770090817507957479613086053614486516481247637030444840341469097186335824411447320997400973453570015948198896666457228404160471003641246139048696113575971937711711230687649763186085992192209799387320173226883418523729496463711396428441798211931801429208262883241699439705592815210991448764392106477235278184420217536524449271534303002741806222887272036034956826403398139179405303255729876416723191733447614612076513015090002462723493104346260465887657718183631953315250845812521855153707731007942379215212789701488940308580098048540713224324349740353342447821617243989468802964651552729684488848271095426645612800969763773936541639993047433891194324400689985056096813166468874706626890946504234496029170304054101395573465822668067062868229017901286495366870628243594841347118872560994150438799137803617729169191883410848152216998147809514991965425960291160528592466876093376642716064568998911299714434115707202099193194224384931050374669073987795756956755332271476845093127760824985747549610553079268847572933472597785053548683463011205173855364285974061664116323958943478303689587824248873566526087834787526618074301098569844079188749084006167272028519010172006698552435553273537954635567895120187548096229678842921533844451594308311280559333778729871493248998788094682210342667954640915390036707278816886756544334583479396991088708907542197922295186910860325001231405537380558577547962764208657508111468903648599847177107392681080552776191154699860413850578721197492957125984422205449722884910925722055019406467228062122896099342594668519495929542722041066336736451281295140200266011209546688112346830829671919748705934563414481679136879261338848437605424017050820763443191323655627846338270348768544355074731016124141370958160960624031221117640536799038630520616698261328965978283219067785886820312547156651208746619562353922843853057173319201089833344278225531679796830940560789801270712957171806308334842071615914924784790247370949620927541855658628441711770944051578796074649139651521446320565330163928779520724188681556866991042862672195079153580334858128873138440453466607097286845032789061889025495253153683487901133588628193903468574362092358417966042149332302448954819427205135870411385965392880709848095659006846689118547893658659170217566084181733370462250978416281454258483081111731121653687906030274024969496373477960073535940496787894319491969383656099657666242770222249882150098621096745601020019672036040744605008011428754540794261975704347674721291536907387879965623845959014149973202259927609303814235966779658537164492583084985019066494907599883181759021547367242271587613288546078199939910669484968968170774218985154290844765093580179544435421085964427134096011255120766004059057645737402739227617222307845792601651032190920841527246784347167977681876935533425955134580987851389565546888762615703284801580801029211847747617792349323567012971576597044761833482880612264311922148235228115920297696524610597969248227047933344169722897945534071947039736080217496985729996360627451366298902685610047227358739101741149848555624039805963745166022973376358845631517044696109989885585905828470864731559970534731665521575476640434191809607799650185636533200697251618448731812385006144161655653190932767853536076383579544576376527857948141051852082205733998965603067831649275964877266777503102618688011741722420933931089599518889269958923151592438157500867500014988919858611426865658941454368890970009043221199934199956064262991276639601598225407512958041495424065687052774398598366917728607242843121874386087200222696581559282537425818076625387582277107318757782979578012296409906498529038331485131928314172539392634088740467437077156554690966583063630874037105306279223048272854329076512981243281540951537295686920000910774537243224160257278221535383430841357061520529398121160681949357266378209912517164598789996652385569954546464546967871789472920167251351690203375544571860207252386401846747972986916059395057801303759745802879794263652018736248184201270733875466122754734696762473941260794466075234597272477595654434330108251656053681575394877983232991638038060045131833093637004065163745575483022475935113979181422637202938921124091566517753194897546762603527509760792134695482354210561243891794373227456105888221463764122558549038192167598817505987043490115232584266351179052176412141912121127264864074677704471644956680762294816256925446963840300632394108723151753101508827457067592605623560765949232359286334858854574036569286219969400997889914742268396186902511753936002320295366989714911329237894170907923234090591956493936111642015258869544236910518506376202265789844377674899028259803990021234865114490421849582887950854490312248660063569977286634376434915483192918912668028345716543847891589890353932870706655033607685981362029398574028643825208395203241283225071686386794810021670838875138107451428033606753276697999881778052108372749175147855061581568153857769622980059733449628448582199758165896057885451166280782285137451724243993395922008769363281671516110107582371107277467283911947249709411704649262918581733851824046881339579213009462849903871173345376762138946384888809230992041715970550698246413476471326090729077443571816227680117942120689784303746003783507226424448195161245465619878487143721079569308058100202161335840008252189906185398229372150641054059649686097402786864826167401444451017253824361988234777955023594498423086770917832912863008223789018019515231414378597716459324279435994316127838456246464065616172178269956334378305046472225587297475081087358558657299713285171371854514009748013790310366177209196809833242845889158837158426177808216742468197393920770585073260039065884813397895060343394485982241271951327700533823446238238241205067998027365597120571829799865264943512114367127078645457413697993081823372382605124244873060173025307360155883386240506981020102890931342340672285437455723459288221750561455383020393972703815677829815719558450936347937169174597177478487954826968081024763077565183114968727390931180002146013478694686461453555152985204270962123781360283400207048442538892861492894815416003962242594680109322959221147884503048903557503100485197726372834994800819983301181912145168267518180053391451317258094283652751309336187738522955245793566139637410692197568682167418943662012923741340691553812033546276749657609154597911101894746960204537375510249386154002064354609657995149384473089265609927980724577196796288051729026944733872645329599831224472278071151919189374706508130555010868868113637498121429863332895620346661237872388734095574317560482181888998748043831744208325001601130643543318683719646295521554983911001361039238382894325800432837799676765459608738866223510709297753712936035374357042933817887110701315912556003149366570345419319634084040314340445881982613397459274383479131912807501531414543120749036593835232920739968945111073352095823858757668298743151853969118417149748067693369254789455999453105530606359395818871258706503784569523503491123472117177688590849952953339887493792655237184038199943947949123712716963366500231816039321740970858900952443510797555551030982542229351719143377660373818695396631965324377973600983941232462399836745837888499505449714131974526799726965688674591180477138457398111570551157445727754734017086666025153106024602506029794571095413540681233488687149104141975022526858442954093666332262226450550357865849210687166627633426726178234731031943429986943091346877520290481535533086154648618291954495766879197434400827314875988784729123408412341646990861467239135858720946086272984635780002068004646909464759199794157486836203427510034856436930816531229803052008968232529485605312450655832806826070568567901914072919455167754607453995848368316883450476516743733350037031038634021874107052806745202288774198154104896361011600935633092712921456006495360537303768491914306716098599440743266222460523109872369060869941561624707403120909618421484919202198392994001889148640738510345849655960955561756130813318481712238266989929429029546900042206058326793899482594138589008464087518760279519197208269634660864241053656267267472522819757318561622138065339998905796802141364954345811511314682864887465268709933364000379702198354595937624150023940570790860517769019878474633685392174619610444703599629224902263716133317344767224080808189805670233670729813767565097535690133624857061063159274356227691244730174620791372888164464911847541974854979006313604733306363418524065329736395634002140550678468196635136710138498696516370770737485498275043246748264424424266776218233689487357369295329719291961976868528783389404645908731451288707632350258048713248106516862986739257835862859372617271407313074506514414850658915484997812761082202185548771593113140461042065437774738687186088887733031031196936077884974136905976031121979863063578339043410672012791119293705365854354012242865504043676288456462355582176959066712455052455073709437600263325549674589459728041458997761938549949605315065358900887648820594337428093897963355731514312622845159244900524485215577346078280565975494228393648753754098623597932775044462647760129821329027631937599493937682003894244371742871145884637941566653670115782532649837173994604421178742196204871107238584990100981513120933792232564756326073782148180065243424229739274519698399939245303523735052533960981968252120610604730224878858056063104690140454881110684711790560581128342096459662445894243461408059062059277572647411251888573262170201100238197179109020137585229229110976294575224181721969258768477401123384163639410642547161676202628665061341537718992117643925358360643082690200168550981764630398510737815290248625275136852460259128504319203691210253611634325776856914819202001839301734304074192879102163433157599639094628770626556463905429504643728370808736913653207464537747838906515234568852976465120398845671502267436213712857360411101428177303885999985825860094485544153102480883958538217300891588131788890109760569537000494511214115790443884735713250932106900881347742796290416650847221622879249220497853747124814207400964459677575514150467103729679072390716517644341541182273654892407926328612353795653148331572711697396179019430874831466434901252077374725494783198218205655793859418745783819636005625123901937000299978888463495857401011656117330546833322421411819680909488641008172342781579661675171277169973666045696326393225915323697458335415652835294494247710046895108463720970088014444724385383494646027447819778323464766326767250012899576037002744901892479213307230805886443305952126436045774220042065399672072401435377505013607004966142406328154377954124477922413480962937413466763474267540751431401220975339097791690161380428008404549198738341388557118822448959346300469030398728188215830190401944317596164319351840860630568510503573325966000480428084446615918422871151756272722350199645160696996181584188297969309521397035775286495736128280050383096760442528223353515448944996347687266043358794919051939403713572613617832634926148846284622453474159903151542719835657005818429694029580383352103775965520480874566806415274530424458991004512759821241680126394167549146145724598512271447288503947618136051927900729968049914361895835699312657506391329856674728003895555792693518472827757598371864616077369608415413294174632805521329599062953247431088325119900644442303990976014207589179621987401478871212507223726891601792593075779284207631146710912480699402844969639603613284085636871848689073422463798518277807022302843223783494848929804297534536992131968130700138367065445718561391069415306472022538280175893397391641847571695285895030693451940273252093904155484429469051824379900618131068823510817089822189507885592069907990200215097629444221675876719728777278212534289111801725824607039733953032942434924539556939081230084815265102840209068954466478300433283381341944495967816610878044530227080808850075538287330870169362512231781451741424077351354819369587519952391373432567118437841202977141761499881702948891855309039940120416428579648693118705857765126404987706196344210623346548243873362707143244939625584596524073958283733477344886158916332592618145844393864522071751384208313787274368505741300945403829613056485003026202574269916157990975560422109073465898883562473347589189785976196301122705974499099711556314142052933851695670121612444854578489076283927491256061870138478336742381976701242021498808520813350714203915998317637831726923506757059192749675983241975116426951916880402748509171916523777631598507157619703071547642264893755003948604694157719252222136626926399019269221119756782358208000021749822413496989334113920617097837178937312652757477605866380906100152198646078858637596802561299289083105360845593784317408978963205552532613762353396118186964968821040383054623252727743781772431175138825117866517984548234320819412147608171360425202274513434733911809177921571290909308900442773818327371672485073076232077451902932878172255752899038973300938633012516747576421105102094992730509213681601684489908099327342236575722140111502085814687572692167900047402415857338887877725315209605126721499112979330510094084088724403137425992259424457506822561773097595599652254079085163594748795821608850119988288255185354953862415190721696294674479447072501367338954389807132973903320574979009292910165673692180741506903717948094967245872538267791419743344403673450455716764514854507307759611826075338154416296430846837092861360785165964404640592226774752775621963856357229656827302756669926482349172451781383057716383950078556424745583133189552655799789822009563268172835424546344081001920548645801272000494521149340622026230003587104062703844546410181754976217311214449903302077266589570925011769307415170774190104943379360914761428531152936288221649419535866506913478117387964824879400296078583080022164771665779644263129821743121041728395694689076689986625390475993102547704601169187692937885566133497856950175021480555623747042926713316175661834284278028865198035073100358392749471199509860914435599665010037387931956739861091432623960932669389915703529539159384073658232072570018603720940535016837959614464570462173157370923061345817482488669954450825593656258922248874064543113451655813271182862017758130904910842299725226550538511751992712526472284969502732030897860475355733967280967836774700502190562942067363874754709267724082285219294705764559426410198488586284309154676340880147175339061440146193670079431384518209538908724795219303268322404591263316744192317759686305980999534080847371843249099772815647334643367250533285876664283454550260103010307742779370800130511081661005967338569782430727233337158372813408291295813455896055526384697721924582033281805022588166479880238797808162221193889317948791298231445682250773333298143537359188629647859059259510342378701339680166371485483667896400244088093242039724758716572465657064349399225342187738406571468064835685044810288166991345852336960136248267991335289266715271510834626403864296651178868408338991637447144147357127989196772038945576202145442242959194710690898893992515459874095358992200489178813528864146124360863678767984375484076289073359141742805835410901497986974695055345202525503527900758118119789491288976772168645344994751406928242176478072342145586748412922048895264827155015179819490952937950106982337926523429239878976595078648155004865557930141017570052648590091818410683173108733531327248333978119789254146126673025944031151511669881515193424133993527292596605666598396828818809743310759810993650187919574464405317288097620378539261077127532903022439608517560512230204979248580913387516700628841324389453520492571366237430474455999638890932571474327423079226612287206830886708373134118799496433259483130762556319963916614189655058352359707439728615454471297457124192288669779694497901173618092603755668412398693259251112087809128028676765475483330794501372149171313469965748875382027341556250885911217669393193036613409074892109139551835606657108524685375304120094730022261877258860905195935958722227271162988475716661889952639578964038733484797868714018978700392710617345581169886575276807955214032474259726588548052729091997314626147616396622349001540378774934156635899931840366669664003808685871751672362555446960172800593650161562843208319827620166613995277192642118050751582663473272190323698819526980110517000263134650215147335622021338039734030640177003071308670442058382022306827796827938052404842067107768237471138359216618965940233941272785100205496959541016732704162498810014633959031036236146841221725700418817185718771110522817769365360516332312977269798964934199887072138485370570322515634883649588039349559225170902016661747540809214511400055058294836979735086250364676470195945114061859018377237223795187510999316637566741036921427074290092647321436694609816476234999309910555096834447335440239514305814974229749904019024868207512067980494178526222329902128555980131124216917863768861553770685091805582237724223246323349647098203489730002385021824836914273711264857227629978061218921521737237739432367430451021637350277150455454002642390641592674661174867421340095681724585002420958944664639277026896156105597790113821136676213490675989437555670089810726089407012509628241709540781523162963869208891311524791707622360592519483717952652618725565766111832626789871702364463129764131158195894782215631620817284817779234724156260247902548566137556298623984212755157188670046841049610010394383654078675437962815689802452909646677785964902326380563535085484539237354022491769143849077197147098882230800100831111766867885780542107007442101288714315069347866701152479786153189613229123043749678717376718861342416814582344135949701965956623583863983518617508868035973615104937065689059796350089410085321452624728830861174036820628403874128372165888985467452023034133701525096173664979458967522524672918268650197871180487013632515266803690507598330142745709006464157974762504091306003427323009715798486366008860559746598843400606418315159409868375998653492497814797152760979555694164438211048484042328049608689323427020303023096620316906594719138712417666086997953463414379916886465981536519298141101501473759034942200969696328775732813203277524439031927246775205477074135416826279764898972837924413534337956094627842855992384311600481339741737341898759081620187074242707969151412760520772622102067176441431263140078912456575405064196057804555305430757571264922829218134212291892616539647945588464099293023944442402553263045427896076962762270856307321941983421770266509246002687785718699125095714150035441683233508023818265093696480462934432941352476575700701388284714432764772202664086620612029658626456871823750679502649832882366554447059731621106413185583745998443380607612806884960902785530707315097287214330003277831165172925533403476572771296074317403509115341512148008914190352181557645684023775454865089216105967699274383799015923380542303939288502661448565420791767617212776306627097557475491842583546038464466460603656924095442454464191030807844259693443410413316859459327683155616335760694518212997387081955818926833698069715421894666946710240134861056980106313982754878485820610807217306366291393644897552213698841662890254673588261928477990953038645561057864322650260335308515810298349214968395302600405834773291186198904373108569249365941272880411975247419858086058231736342678239164311122204991842505537500711056403269039227998878133101605355016075465189703183836341674978162853577900463382136487276764259991718443231865402540231117816095668435686276574814805491806651247919990061244227039985244119381969451606472421368868188864921698172418540221055701178928209365869142409653594435416841156904969122667486166724551851891384056173041337766844061790049895776192395377383021891853109647833616238103682005537994793607543979872299241198267206607671705578627232690094826268944680189673842249835594113817256726083111733329734817656586775862452085010903194054457641106829240501981030132075306526281606607816623013888996749616264315460442966170049341544603099770731144876749435145513051260877614840783134299720958526891053278571333671065443560728959945194278734414909819732314837079329250436212574999527013923114952329027751466497905273981345766052283881331782759238809873113115683027414991531630632599430900165291896688977145078784492013941885816006863849927500020272104008282053184341120498462688555307419718135248443924768268193037787514230658934325728536287994988961048182493559539740450110746664470893868923806048650951732929048474807688258928587401357990025898598701689937101200863148449891956446478296149274157380162544258168256375484274611005457250735724305003525533402041357626817058540828039031629559295265459587027567973076891742475793771653166728785400893406017721934486518268089833188312132713135747539844889473702318070846703550631869713760073573150095250334604498061053387008686524401400963911276338742523338803349863217952537362286794899184840891614681603146656706591026767299042042795702155840853844779136215265611137938144202035668971591860876522986607622781557291019359082890850221172736137775878517807282035810014384248346556404885604082295586700095289288322117284345087420342733305063085913101567615587865743097632643754383649444914876022497434362132701227579714735674816755114003788515001877615838170611723369938400086562457539619554518715477673308179721956197772122782934745070300413405084285698111565757361521667452916610568065581704658476243009585770932312362442501671461222484580518076628021165122927341599342279027377358336327162140356065637984797712856235782754796244667125740122357735178917517326119554267603834125206567311361314195290816171346861247522206176450443036161879443009361448709946425752083304912286700905139138671992926957342510132394073090284392416294563260408572843072623735106343549476685790748480463878227848101737677328966094782547887495533253617613315521233553732124240700877497048448676291592495500520779454801347135414190782306410927228087492812281894681676239168358790922776553535031887214027506682494815211760295402890523613078759481255292618958414990055985695532935840618773492119143513059166915234551125416679044523940629891966436585494625779232115392648661055476618597308697550333819942390052191532289433069425412736560533750000731688798997731615540079035695194967024451311753531462002486122145272194287511952747951724133380536579060682986366030662343521266723272971440822976355965464381078869974470973490308019057213642724863213142146072174381560217668902997747482661891474996194798353479414766681573913781013883235498723204102285951826908736843126321909242142663786169605044207981014855273109687476536946628528701830240837501273320234411373198524883641443898811502345105190272271327504623408583007977638987712982483212945661047299256206174466752827409602815277399638602231473707757251966827145354219597452253801619607533317902479988447676357282534948956797646094485813906459032321283090290168786014776131527644923484087588182130298484318713442786038851270171371935545580609141122168823679459204744104804746149738350459599374007885768603065982770055774367910570025530017611395071865090345558168791064730870509017444134048981450520725564716373178753363730952249313136147978501042366182404615348452225064671501088727987437102581071088637590144096824582643935119857519542794713703716626825853823231241987637201436123237183719862884759711867356195305844147500814488626834349690590299314824649066247444095943763313370914147890555793402765019055249711649848931959498783782485833876248889697240568368033111518047545109922189742940117200006528175747189539773449419098392674447193130823488322433614483501390201450355426093810147871971258222686921406943416652093617503064104907590980604817714511587543227348487250172832383187038136606798211535627484453882013759223584235885696044667142950029234932518396264531402747939345153270933959186014251030374963445068516258965870633059644463807809278797500092259474252033050786902771658541063841987801656880335178771891659226074031122009342919706758624339666685588142444917967352300285600497402011484736157802956686260979296022642460516513121902146041572984799263253303546830107601441082589874919455075071366163202809587101939845368397678125170920924681835459725132625431040788649038234030574591312475007825663550643285603985632935046797361197377620904313881520737432799628548178152123733635842544245224439000436350976685374139252115620458835442912980257861167312299783412769163993305734204470096737898869678723764287519719563500320556708521444017007257939844295536633064151064941020364822292575834478510783826158162969803869028798374833128345432011506433326138017731466781600873717429426072578257674080451336928683406747744987028421694932128953626675751223472075538683935963939992797856449212267771249192914541566143588204594619600446510925347130559292539432806690005057055267891694800490012996804584791439456589378324233327597037422175838619788979942865203205352054672338153877468151992773101358435972769714133120945889787887688050855400787130760739221968111078885578230786665400035712243312371140100604238814311578168026002980067534577533012470226196480849101936959139934327268840756800459534843181765051304359715235091410246565361940582820888043616830532498718000172570908163027801586950590132724758083443007175675096488447571044220581014581247921538500288836191470732643451700970676322475798891474048696214531738957626884638320598151483869668220981834573452202333517253635963999782905755522332537736563724195663985091248797116033732017240700421518520550725097902356615382939481898012638197997789795623799409221656825278137484280168992967735694432036856398538780039357580388919919519753987246980436787769185470566749156263585655868330249380806235017886971751058937347238994559191942648720471587908747379104655739568073434188409779567761210431089623144956404931626550579657698628481580849702825512253720125817978909061679300632362411766220721451382941928559886083503411938453130222436727402011328128773591113166816499109379107361998187332861450805902055557835753707232615531840590834063170291044329244264457961172211677467323439214582514785162269857352130640701309215463862725734289531471307695446967456012893198950264847073891209677852991477089481932403377542890859246505087882267204668452289345336263524785832135689463254253942482363280982938262527229035040388617831491208079141888278739927077921584290889097095518674846697344363351663017361568980750539703097088233788793968877523835943076024335246652473856373066976250942644445872393416811472046173153779438659270840970954855728972499585852479498060834495423354104693143647423980326292325906728841300015710324254891599804933394683140231058721402446028790066106903578592314569622004095391337320490234716179127068058779338156808121442965512122935409957415207763796445765777053445485988521083836508392283464385919604042721593271281186507500925073866604879031683200886136204569573157146713626342091715756210890346020146126922052716690468647121701916752223391021942337454971900374903968121150108607003294247163554852529085657591036073505719950844858762039941508173746049952213312448608963558167577130285306779289584108630010659741643243565034390165848881982603730138326083350834353132366761835186016131895833268299574191301910206321706262327118702173655426602017863014996842293279678405043821840886320757443297380630266708558260910630062340306171446998427541533326455825694261887997294310957757020980977011897793467567844686869765254829415519760648188099259204133755280103527606677139543510526427780237196927491170127755587334487720500152684907478068796276188617082289149676753838392184844704697778045116011661498938584771469455724771287228426058138814692629949196303954935798177330363158809472602049092887265919022529125611580618637899100457493876297878668520656246384888214446542204245197991318141156426036428139271004221418963012300242232066728184144460935191523116586308879103618304272396423819745850657637690082838345877837452918897294551929875285231054575847003823383863828197118681839344347516337790148057603100738653637071232341894359215641856243877356496224921169697921447802367288811652669796245859933032837806677274179556059827393996565127935643898260044025217001715151274596935310914976208594425418575002532909461171002414374541119645796195599504182532645118808835509470628684946288568945510935693841254991833942240742697089408076008440077919790319806682908159112370813311132853829880394580597581600655377357715593710972909285688206185180703554581993778899104433875614412210790391052436912955593279576054770832835811783437313530033141926837903319995084044231121226313862209419096833660097808506954258182655560341946661241305800455792002534741305310082572621920303334312177869985466351251851489120194648359542246104488283821975217664613813044237457768230026331477322152432723147171466328296183081103868377629590588125949927389436489586558765401245469203825807671473002259619083440207887391282657107479910256968603365112593517619091142775785870345364495038005100794576650851311135513105840861299719823635009290042008297077726415882687575061287844062635699135893038996103070803828855947047116974114560720803705182183190619029084764877806836703385957850121933755857561055394459836041156489082730514995875765523986456806291263185372948607119024672490571926427638933661960999242760321058665976310945719213021455224747932896905503592923802223545263511010545937274892634266278859121324112031803698054894028670302094262959286516028399533336704877577512454998116649724072428383203933507048195820896390874775941791785576622460714481892562288325962955289317591288970478748437025902431873022433573323633209887272403293982803124386237123092120166122707823681916775545335592650430381979506016654729809805753529815463928780606114870039758963148402943755247208899525471310691287606688334263072868342031783339327697877569391329848841050032180047019028367803600652504933461459146223988392567655539333814489664639724186313182669333375438760109455256439973783758429425060626239041240080028714245785144057101141120831186414774530006460220382143638786170135834120575309094161527358721923435724500016349577388165905176607799125128750496946695986431910368370954432446758639694713120216191179080593328370208435932334287477795520637542142349319981134912873240787948782296606206646699601078236064607745395730239077396901126050623385013584867610895303724489643361148000709313479347422113142453060350826619794497567791292571689834557467312045159573854666331640034286136712773879297142674279504291611992812178142327432306787928912383081389232165031338115854768302349482470432706911664699591449133854931063741469380875932664295212263202707517688265711940407523954842121137855174750125485367572117159820845818390584740656036900865522731823081133969086889078203802725155298650181907335073220845813727258161591684425924504767782645743177066069607370265060763558470323534890380597307096762443258577763407666668214730370922061495134306497025870047913969789027315179228128801379151963642843904866810887786488490722344829295758299484698286755841209128057781958248117802235827133023484095040146104766144855866181705660133844873438549299063878285134987853675709095616812282662746441921018133057411724993569440013642297877599361237198948653753497309853133887498773286393815770318542147878839658712907240483470779033338587642829071549394388383098741385180068681277027676963757677077916380042834677969115232453479911749242454661636376401607272947341957112879892098472014808280730622049283812776533806363858122431343554111834602704705223816852821524807964736912226855141706170328617260179078041373436472574704471646122278815899958656145543072947308082019285983504891119688362461698103476716189423005496005158332015207483035562151058604561078875358236229417538867294013467329027791590205947745994818395002571959234846387825253492021744623360531695438637406050762824727437193100829599211809640859521874082163004569718594848568777242450038154173127452960098842225259239291972452249392142536419867040833308638565013783929143370825055909242256198607873124923361389722804567631334925945602530649872276950204516130134207549599079368683669737362705743033403566764631954249981048388094843388359855867145289471317044330769276791687741317263473358383948194599806499938110968634409082373293414666066011053539924467891240749443493642543802087756345807039380367668320254353386600594625168057576190227706846990773786728166316052050020381230767573244246966649524880796394174027526172620792255746654708989240613883487482016327816419319586389955015349529341461018048877605125083176938884644743890789850129965178300997181043375352623972822894556502581128449482734992692347027804341575043859542589774323169209058843606646231442927759714792836422589656876086322109848282438528538260240373175033679364737981962265378279803711519025179772610709057743923717212414306699129796913982156463587001116560639070417399373284427564093082008864465517025168724017791000268237114734003839148364370191763499424142176781888376434701798213207463736475463289883476922450333142206551239926721436306001792510496028985199310375440158121549189421481101719090919157260918062928201136171100771141995125833327771389000947672019691289471044100374176110952498436049112626586699111743117119671756753704934092936015646512964936694183434461732012892277643507356750980747856177705330738903737286481304617391490263618828562038529084321672063679415146641736643357269467878759051571593813893178325839446913360639948405620781328755370456783233649261054613714977881693224511227306727142290754447856339484158013316882424394418338096093765593915063738445534455526316202400509964960448075840025203510569880858381322829616043211452216997803162102143242353851532589293815946475652839608246748041983288941378842165685874736841871433363012324371565985157339977600006961520050407576864871132957415927622203439353015198416325946849634780553076501218679563797339814843912114422106416679044774686880367418854246516100719730974744730102326911925364343026519522221730778402000713102006760326683346272452353097743920267256444022938284661247644680580908652184720070200312941702801079898654381064481688995829485824979220892883147907060328269107088606384069266590303695699804341174349338698406827748431897625618909054293769332205015186640295682581747853998437283403837011327373082278818911556388456619794338555870106941719790991779629987283568874844771693798643880996733437442436082017814343641838515551769834665658921844845351700910438050175814991853701370989446105806304061765532704236645649270319827268129965334837534553928486429491576630271682946230513049888250477133861207959894923854365945456089240894832294938149730881508964964079298043499019361435064792267101977333185783019980715884775297056260616774570767800020333166417393447029498152006751042991562290919269319547857365108542324657789727848968619035243287955445817429882760885747657423009805972412187469935564209573579135030105476002706538571335788031293465319207683677800286179941224098890909164282866850304570774714984149872851341397480841080136884400949504506628255272857156214220364813917858077615356167010797508720858381767844056238142987358457714880507140747405013319648370471140417120908628323964016878588705561681353913407422492268599992839526222731887365161303224488542239909018578003182860309222932969416978066562337804313770677474260185988572777880773334717346073215296140398322024379109520593963937088380885599203801138913764938857563690458796906510533837385545762249459422400659315248450440911084665380845330250913203708603978497562563885121622930515329644912384486168542106983965072868006877166129930796853163374424925227513065228343089009366934751524754089617564912959462628405580518707669502047696069650740225022338234164728549263388373835160415805344461363039030608805983848662924893042407514578561064868483031175577131922526087849541493995288458988433195011153090177470098429994034744419482841412608781153544670477265386861736798942282613395226577637763959896123207450880874775859313007705850192181665424868124693604812161320556647027248295253090563054960760942021177352452595108182387507214898127645470286955121562174481088296490223623566444000564755123581057596754545821026882322216080410455487765538101156572401339480272646870176813126428031569552604027582459791842163155093364827959871919057642106143197676702970871575358464806768849513747515852274863368121693731493964937442855721879483780886262224024198422445582593025593959644352655564122724441137304517483808380447580278923334915682877311101697466575240767516134261072204990853788395404377235313675896245734391271623272853078163242277074702678694098251991828708865131262709121675849047616877090082719299385472654390300301530257292564994147963114699970615047598349837993700806284191161641454120467968013478036787105318976877369098143431468578397174970039426072098506179619501901207598360345938457242247934984047760588283296080362996734069449269509465871481138709749140293322356663929529288318378635085172435784018480494906434188469659971095313020807082648814677214958919442550897793654250846552316854134317989760402153385957855370462922189282103969243152823667057937467240807723891726138522171221066183241736955061788031062979139641424665897608372365709606048728056930230997206822288890457775945577791588944816909000805395186417572817621262529756652165184247777109011863062574613188184839775968136147505705031182750913134996629088137139916154062154215957424429638554720970253640799453269668284969998185302618705254967187131181575241568313200148455790988446213757601947562442882109660068961203514914806087728190135036906796530683183129902627515258180807189020653309768567980405904084519042358757455359268149031521515585956703605371674401438936524035070779858908033347334724882478706354312397349411446284801029266449500482485128683255356218586217883439489142000407197539543437995881017715858186800674929243433794168219208028013134485209793218355005329846877490071402923135214082804307819410335634380801109677140740939386542206211738074424657448517545774737345247475286350664733611376138514401795226712415486364460763555133960982524401683721087390747271464050091918185486354973840254409565520550566859571234973929264837328829462463600513031917579141497836408472496633802362253801770105604288433868819103909554156803749074263742081157632508012978043677682544957283790404761896653646205129492514693049337919797051029149665913633982399492755797492076960472825305035488007486103991569083617203451037821597738863477886393631311817117548546836737456897537271969228659518439865301398308527468851637847298591441227688326488712360160235445239548578619749727158434357106892740747015541062298218056892147672949968647758628791398076623267391912460441399048483494953389868824188268940390136043106910775036185125319268135539778376465595711538356327110862092018681566064302439197986199499845808081048242758371139167677116560976189249622656655967473766362334058104725883792805752617302815228066833577538333799028795774911659998831140925672031372583276691258498772623755493854793396900211246988534126826346857600798857669485074936678547839061418427526780085149075484272629640563406696190994509665947070433296682779980123132796368415218290093353597181883112527347233881674953054569431441898535974212436114012240918207343780530463998459048066965233668079561084324898374481847938027144140753811863651213332236436139213530931844398291089033423821668078602422237311484030133024108423908645584070584852530988677230537718377837814227531938896995974718088769271687131268003033614736163135661582147515360096702666187335007424569505921695812802981871582184133059075586756726724294167218553320394976119116619437017423687646901988532548011591406432302795628096524855013919661073130537257400346771938729856896616996131966543518379052969135000581214183524255230845481900655495124925325853162278786210461914389677068637021828289938588445698247108188262166784487669531621760087236675075771271306219912735917704823356155082392882269179882480055138056843111992184607508315237391944687589438444667100055078810415865012341268844717838878250013133399877994766294706491904667506360395550284684054796403641752830555786787717487648574272914112355917423716961514665065608688692074780954476366139841023612304694790364156131440713839219444770275492518399812306320250061876110709732332273342937748952171397583442388633129152276427406395124736349287648346516224511671538437107231239247710451772914902536494513649017478058286702423449757035823687465567592768343904000045620670848967753341539959431199704138208670375117201562433520535171196367025568460071176879713808119822858448691189053526783115303173255733528714741262698883065105134182559245623353953632148022053014578827637101706621655651399990030677063519886782626116245696265553078393269278089439268860213977564203299664948068888779263104544422935736539943989008336626626356013013338433704856028393190187779284084649790926575061376973858913403444873827752850346162040950897362207557510380186280990660535548279722881751980787698507298096042797793827853012305270873692455608893118941938737796147066696756333508085821149091216824945844107583492820004273452508997745745048951332457020112921209903857832140389290304716177535337836514357683858863004325533060573344136116822777905272413515966354909279526407368405512211252692937978658521414642984224891402597410103012410296417351174050998426606924764140312051749592770835167147889648121182059276527834095412619821272573304471561796984025961194654798227240057367657245006901288284873956927671988644546888383565980752880235391638484451432908760350078500165852654334463649256846687557297777031061242172689896370410747831778154741410405758499357127379189157742573342443773474133369537674569711081359438537999886271452737693198137151450586261408728300168287342747148398155388412934503021407063576614475389355456323669195768660648345159458004106254826960665276517272401692106324700795622723270480094967985655003953835208704370032551410042878716734421538324917529771157676574044937301521839770223394026172815185291157016454186057755410857735820319875827486130223933172784156047153076549662663333546081320217975961134504220534289551796036873418460005051037124360573119757512662881458996703473955273465964522495928473002095081848066288397211662384624403224847643605698517174856840904566025225120795490151032663215061644081423034438951140195308917490002155392919107263584877174004483084719210056398713174422237894538659910116589391500170200958791984011938328370277833574599739697203628723685189768956673707621726795626291873807982551065944918101234467069336842418054104883741326031618755441758807356900490399203154934766650188029343405125223241406478689739197265912698914812313011757050751455475286758712265266845494713586348297274761425721096377743687452470168421481332655121167513917101776367326496142501860574721392031425000347339427217956921842735025592010734450804979912679738826886023485681052144619010265128714917146653316122014909232784255408041565316240877279763739834651125830740925392106708396124785856077335406486904312707588403994403660234699743381608722627111063885977260200690408747121224762861117624863055690901845305692189682932879861147113332082238724653986048897952150143272807049873526218452644261239358644140152419606206393509619009181815652005950743054781408900391702684158065936452514476083933377291128408444816024194575497697034659743954629097721349193194813837713567490883130277157996514132763332414612418990042352135264859767504399933491764013737376212283339574424393181931060488939447043208009363508765038242115759400053835542020857031445350785118559659525709032110445126565060665168608990013970498992088138666016099145137587415505520410706436870089739814420291205894947766477113049000999162945590970119602822698965499619602462962010359284427562310364281237533084433496978691716274553669182300000825991716943684778990705167436921161961175882787676913033585592924476425367981781513370426450295939572840558611440141351317510637695506095523617183442783884567131424659234673370232364356505919906862831039871935408811671971834681703727565596128463816021097888116499182525069139804634664799580523222343861653530724485169091996638030273126869705750140327412712782749159396187165964070606494770238632807472111731642739541620077987479352232804033835204332898380583143636000397345227566516739680525236858863938369158238915677340764516928398339597686613145084450658210317168660432986550909166191789312340465765329164725910395223350989485024525851059155407906409644550073492845464071947823713925849952652809976516876481103087069755068875912586858233357019027094716986200769121408910983385376705718414416771541763178053930109744479080935262258694791957551232953843990168905153488550280547155530991874466074056711226289840559020931361347069889919984474629718272428013198912875142647046506256814758234096874396149437005990820111108429939362083663846046283613644020269451696568607432035882468464400971540760970046974201689622533270912036734505271298500097504837001175223368577391207292132952171561770268183072494899121820982960037274595977904551232409022293344466535670020698903809387596885228957439644279750434057470934839742135705220146213538686779659317104288510858101063772860096296689474568189176680164419145225403961875973145446260123498629491990044410507297034927107544730479271645858076512396989604466451335627615554870306253053642709930244539786264629160106649191603233063149295703190311328286534083542373460961904469461261264683107705056274824863795593235689199764665806881266984079955410338666542530157540104004915363426739715322389749505013499368421303807882216638704872002221484511176014851406073667517357891718771575516131053201052850131781652749302309452402663773356288956605990312127110780600068190671384865274578226392679177121551179892207677570035922978409554855731795839617292517447144209507785363246070479629490301548757525374555574642477238826329912617062341580975551492713371748768972198596540249435375360845579714304465158229034033454045871542752280272900574209196495572438685903133396726372958382402616584373823047595791068731400742262406976341953595882657717327319313473830704711181549175190468399556306317497935276329172779069668241883953286317594446091038184000352045238225370982093261576440758304647373173217159606872605498501378790496414429831014517498415409094877672197448743461932345742400492888443235154236597107774778316410301196271444244576187038399563167390481339392865149771364120459155293730615802444939365020321071458288835853878947429567143441211642447346981561913727471677543514675864858546330650226053922169500146157095696571156076979528610409016753385244688616469678788669261691132782758601955299619434328945766078696368874388632810809071691932539030163335607742314173037245601129570690755246722394914675134955099544734562201835124101720076436100138497698033021554433778573648150221807583851802813668563119207335900415559584024840601411165623235761638445269382281970379031583540319470355978000480906428217631754493605938755311323964384889268822606122232067369322265895335906706090268322302939356416658891478000178317381265373969187447724532548630113336936770998038677332869766557096902721351437509111630369594783159821530787987594560114623318205562777974767755060053008289591186078435676646878884489150206295455092743264988182037437761637652321061247139739988822347940608793398250234532279061234116995117354268553662806442780315913024794100378969424076104853917700351753366829105358972050924618831431441264436853368885181907835333287748713286683767860147261022917820393067503149802550634370965948442659829521900181606807769499221931590238924588123225611942339838669147133491019679837747352509930058718663202008290062948987742593096884890006725789387183034344284500281452761497540994567183917696063007071928800536564048011799442294422090144635390710206362183516187749739812463651534079802048228186516003848239020081506277671795142227163502973895275247038972829779061721522829543331772724897405846353598426249109519673302800073998199858979574199724288145187724226769279199416496979468560239676622619547549811751490650087550004669040770695134633615464761583806901688197828229481990700679279339195290503926348250292553563366771808491578428044608567635329929745048985523468762990077667954428192268719817034222055815221063826524584089814314813141818541717868121179951129279162953343150299160121910104833952568250085768743302801430469818123901262112076533403208097328350916701924958845903668400076949001516077213372637207989697932632933862237688730187756534746697546134133051188820013610037064737306845608680479163227746769867285425882193829840183410171156782103353841960301322869001583413987308974232505728137584327450436918213570651131591852227446740649878262238758477674106041677597840820439741561969159690362443296456319779325709959377682676451100652043807385991390252372574691823522770411536160846115817583059864944324104372130187807488446100747200765746311149713154214088010623690556984131223293419308474547590202446200105957186814930897425285462583296292541085224025500404133452222616304944213865034029575518272245604073656433308673627684222248574507971163103383676837439405766741387071132396558014123844579302814841990290540896944370740569652324297807833441483402324971323251309562277039227898010550868493245187422909846625287138462730063846766104455435807179647789045026282355246922950950156489583625401453326349833584967412766533601881840090931228602988116756776832216671903088523655559554691151674425293835028649354642861580767377278402699936751179215525052718836953101360142948741613274823282553631776739630038769906048351427537262196575504844236523551523529741005317425247405042668906301367154180095619219172764930447247841739782512127814718441114182053412684448339090180243558330772885381720091817124906708234423949530985296162919854586420564591549674993879213511268346346201973929702705444279943222781249878210572890564891366694113316094459093316564612298898632793274864277385773824829458300400807913179890082224187192592271433230654025370542969553125560370224666621826100603115244544208820650605748456278842853360827864333827235030436743587215382773105521426025261404914912123348933743045062848751819682754912829482102853529962766620023742259352331726380855263894467738885404100241501888883645778527814972342708790519018902895610258195541124975974648901632010284399963282713488868772770577002495098813133009303115689219866891066301711659798941448553549187379970309358551667483210002079402234319327422086097025377044906878698692199351020070904960668974421275661188216129583422764106520844427773136603457968054386807615963627774467366279931371443566209339971562814731424966187432472404402105356803250549965756819685981940417151361530349340767519898920235221436953296793966018495359250497112984873621098472779861100360096055168015242711460297363228861574891796456406072772526662004672529983897997888771832088742255296322816709232719747112732508289719890747066337868801638021814597185705792260106906413517565992154931363383691698737682314688562052798335977449243803222120720275595377970014338026405420175407976392067200994187247399993779466773551284688788696237207763387849130914321262586167557592844029954209567005719339974134599413705528148048955675359213128421385802918444766419550367747263052616539158744128597275087265915217759648527083470848418859810885742153357648811083975066597180603744356627898901712729088130918889431444997778816718065594258679355459171550186244389391896532341727053021449693140896296936968523120661517307661775051944820391150406224974675912072662697594567822334987894065196234512945721654521050399130488285605417002027231971110243208922039671955993761082801534239925089997092886176578187287528578531621297321865690883172764096262788797495605455890748313473755844231567916502505246761286878861900495655573896521992073643496083280419660685920983352161227654378362325734448083878530763459147622787413043151360798676688457826758716621429305334017491812296224869409491594183771399313034345576364709886172899300659300457821890688224111452023610158285835622051825915185736572694746959980926540785665452766765616744233029012412487558149001329066517575106203826920414225775979734866206292068979656445922799144551806490924035784813715905595472321536876054349036663753736750553240883024429947186263989524747445454617868686443491703676938192728701406899274825671969176192798989274355889654997618574526137074373393475086375636741022619633805830340926444421718281019710212712526628931465066270690449653287326173288573656172210399309256480969194399951147015868157567952497306496055623367896049592318311116658741289344564578558360647732584283942740878954361258044095100101779346304710009244421812176540622480854379414858665487326564945898413963717638886994940350134612724042991162619409778373708198497222077515899835085288918542490124514616881623628624170788846472434646737411193583908985285229189705260803611006497142573944749041790205207750834005271494018581478630641504397148051681002773244080245662264336943024795177123166027983408023844020942612305561108827564419013082520554417549697084469371032513446364153057966468268086442151662303572566412145746774152567808950901496299451017082972327936368532406309783789464993172771367549765676036183646285209225698269819636403459195757677984184876658454878140043857875419552832364889743561055707344103305961709195543807054582168157281463246199518756688190440808057548082135449288666710033669929480379881736608267799631877129587024151592526352137727630593511453191594560621050113287147777389985439829653312971966062104212704448477199085750994036293197017523151693197223178258619296076971653401088404159620328994336104795477361074577990699990113349333648863823827287921313761758904201377171292365291678308042122346342620792937166332893479636304889095317905979431592547543705746627444242536713142753358919717871668490683472280619940767002903845263279506355260414216354394275151914337615013062987311265992408109605797705598813489200128448062562219435313166184955210060130111422768490021112420871550334598080115356032637797820293132718115344049440259835079581631343816531056476743562204565342165327487874572344595777247104528981851929530836317460736053931066233375825843325110741500668685532078421476186357635396343288393008767653554722663428264408949022710826474684182245521957883197644904793195854744937785962784839373783450161231147216553834162131419403073558714200410535921935763090668687086994839227959243133921228628864584728770741932077879639874981890707135915597069030307537434732776224068121663975962798517898833046130418770119644052721090277435003436824501070573670148692099214850992319936860499218614450285556282047192761485621856458093574079519149022631964068254651863909255183372577755864917676376258213320792770181881628321369133519724182230363001106005683539418892199530002172707539809504660089297181125055796868267107356021501140412192676805390467049537836082457656087494171896376465137900007163829829635502859963445648613351850250027116820392014987023763842513260771692098702850655915465334480739189993996089954426077824063700027174086756538866443883961209380625702076483886555602075107322251598913408653337281392241617690584086749405580337596859540903362168387739276472151814813633497491716895475061770660545137707220197825069636662046243128495025719935910369263859062659613849275415620853607420581554544368369307913157759202411819758709109455390591810801698333514175778183164130560806570444642441192931261955373287717201601536720387768416565774084644511395597159139336233949852937006605615951543334086128974138602629446077386489000115075132178792504274229566094225522536938240375764641699632714004828185085225801411357114904487594976524081615203036928941272951397342468661346683017043211821333299645079930179119845232836455039889989042567188544907351106142273648408920343430727636847283123919614124528779133343517750086722069470046791561888100762234220551176257856540982676227829193322224400826497274366347281537048898432090006111308978776483114169158147311112679556467392997114986624860227356465789118085750694842878692410523937523525300957361993468528948011706693780690130013796806690681284666233658180259917274824176562010545489261737741378278248099335423008703562045883118753398256699313302909828544814670552229699848097963248083962805518588458865341701632055949122981307975155904605950169935051012483551476935137824236700665008364491221501175552784175973773839037626977935370986641193902658913810001812492463501534838962540933606565421677970210991660464371162059461619159874690159982371173978956894280308555974775327002332944993259664476341445558765894299185696401908827793399427924090554590940599697379031818096233703266715316472750369214531857583836246776066172392068128874954781132404722639212922859545823781465546611864004286912140826276057954540398785281227243680688814137268619841806499310380799576976123379816183827092570506560648881710327241029495695704639804489629937695631932378041511153721387273475167384253962282042494585384829691244943630156949968486121419078583470033644938135584244173406032571760752080239117180813525225478309177654834707652686583466530397584946702872355698985935849852416455330951116789381023541914528681781801966116481607343551434231686852876103894059954834516718115018568615098832858210888574142226266904803160294940495108952395569771957521603879638995192052924665796315046608838224770381624754658533783052418816043626588045575113081283106099186913515711772295032378389963933537889115347106761677630768100214485813801394671565615704492173633991146583348839878545991820150485771305690354691951403144322105775784170034469043057272325909097114502883466937623893342683512455361067976375318824242858668482208318313592616761381159508379759202377215000343255122023445644108691166841445766097946209517893251047766452657519783607263214984074833823055234160090532051631417246523838431105434332367258677447490290278839426487817954719818609450915803196066748627618419044936672073259357239743384400499019665740334726357119236843818787409433678218627914559306287099762986250542860520584412437005434276634489476713593644081565700840998182391615595352783403582455895280797169291638081170841406968106640715451081126821641670077725900653658984686924697334820168542125912981255094928501400588781995434011430531139636527839086272809663937319401637835641011358825636562750038421976869972860188711387388080832000077083528657749261602557374436007051325415082698760633048687596841853647227787387748752886942478315283337737629961307538164949478175241976912079633561198665083088590235719238149981508899190743385935337595430041926312920298025307908293107792232502674887466153429118450585025948211398185162663857337682693818332579097741480186100763665867124240919590990962713385334942010236754776514486855278242441158654237309623069486178467827617545709258540476953072380538030367823648850217627195491167785560039492458595282652229587679698133530048591983610217112412584504319095871314876222597776240592499770873541898536113402887189614194228812409662642913369864920848948713685220290464772604777843446914690429097095782256368086987682929583885985509201353080809896837954993886099717498641891941240982465831086332074677796192253956686305580284365356393101510000543978691218765361450063685729399468689738149001832089346683653043292356348112457447592714688719689651648043837659472748646678602308672574064571060752403036790076413048963175329676990942280028032664285519700559479477786952943622248135323401429181453157597344902556363518703752985571548033996887621376201995987282387869251999112568508648070203207310575372947259253146761557997603663224581251699922195035221995256742841826176053998412563010892744752467402382559376680399332637501075659404979071283851693348296342379955028465585837271178653095894474582361161253796996330612373156219094711196133339344997030480151204614214574148759986618397977276193461768357438556030950759874159288133251626863826679973611085211574882411096581218980875147957634418724501758084064957421902956708996099508844631177107550627701938961654203039375836554374249944750669966981864078218455830171039014315998886343113639737124409405047536136157390440588705682612671560638655336820381384984214231213785419952049552321672136213570163849970003048550608730161469955165375118525096183218838905265741954294257376334572966085125835620003291170832925255959212485777274152629116321410882208190667935736892666620586462225293668525125785455226374618714321186396269585589068016587164008740410278618413457306042823258488505225525673236794127903319898246561874439644512778038210177279317960288738387473466778411838513229533754125768212362661492010878322275724941591288403692824733192638083415277757455192965264548359206350545677030436885111408186024319417270741460572558122279673717691303739908194130469288813549911190021978746093833277282644461935328457454192712252087862393905887908164565907407216845635275987025620297290735289425828197128583953427358975403861294247364450559945519302957287559621521143395759880918372811836462675677680152400984750404695172866264198351929981934950252335008461334552188678339174184708997076318090767670407790530386059516890537107127535101144763147921112419727333806074101185472773260946316090656605667475064149875370130677067835690985540592246161356831136237689941718144470200772024951573835829956880071587642979693690237552899056320341500269555738452887649539003147942771076088239781399447679751704562254004434186636894681397120096190021238630307502731641977576108406594420296223916564315308143066079049609670341240058860398977083461324723774068990627609013575877229698306853936058402873276411562197186594373026980361533168690991398857194564072306411706807490205491075443100398441521964360788450353153061482494792280852943055574640897402605550379243213432144745735578054601043016288128423987907140314768847183452592406735113764254047708711334781053941021883694651582655018827168899985088990072607406327952466380234944118027067293823802544520401937273448980872948087670362613294487219678096847275752327871188928684431199327121746111264944176987120298397180449910789324067635575691587105975870267464999375855806953354237499979011805355484580639270703716446641644852357842744899066490567417531447533630972145531574933116439208944607623664857897386518284725978137244658624178053513106795648995629085499095770873366923010108995825196198118466476138299492461201910338683640924162584158354697859284737091995017732904408341422205971294851190235937874394895044717844366106941945953388310741066091833483598363631830121210326393668118530226970661344767222799594227198721807654495377808600611325083234138393607470884811138593540124738197379090357663600661863254805465277256137708936456734946720011245257643144398430259286329809571843302903115522565850742007492508349217569946113304930676843163007061782276613991196616896012641522013737728805862587489291002472626485683420278652745146240676365731945446049172067725024733582821219150113910723200839410656375395646883617075671089911430448866785526692185246537142716086022373553451199719811147611382428381319546461878320101920253330482293608115100410109294640212937801666034037716207222825130551818958791917181391370628004591697347462747139387312362011046488630109441341342985645243563353890177307970079742700447206065540498853938642171683771038717842230168372307841403161107572647721096998489297533851178305838408750764692426292585480354413412603694402850156979197226858368851379536341897206179686940436466189438252219444816080508437335354121934617286068933331164754325892189606746198862096674760253880904791726719720043318104011243128264124809886207997961861160938680548867004391442219477542690182718038541237326247728161909705639713395548697197896638929151526392531123975115268786464047334222487275247699942743991107742984768058236014771652788222495632473975296426451062829660678163223204654554924670851385482385984718169372813593545225902519800178425345766330233833892548049573467504823712967715968953719538142242938896505417557500683829561795560112719329103065703116302815956016575343112390142778864421964805005228686608628708227242748494274177550131430781239635816813550713976577014107960880729115232106854344447139619926083665455111356542210930889019234590736541324377158885999296975637457856849202341534823390203506301452583711300670846900456072494626353984912915462884799753088561171751297682966478965106500598525577453331813853005361101119094985376308550233422579515840329645259123946563982853515333275391398486445358999423513501160188808387565802287173535343653062473874010121054475537915491833397446896597900314205236479414348744569510461594824283096377656967082874761482376267947921302808814261602443419827103125993135867858236160697586626711324002997091724230613952936096428422915473023255344639671861355092288155634975358462037729751331745986166619793769271712759049076438335629638130466462260234328320665737826317299158786219280600329107199991602646707610528831331077043942826385666598016830401194433919652718927731732356393068223009231106827060539794284326254665642321450762028743761334823300523930834933160530484658802588734237546165090351299501033490987595416541144424008648479541315434960810462347332103885963404604518378747284771426033066794530367209711997531073538771172620652449587447674742496658015830530502146515463398610279194728029631315132238874531752385957967234815831329599396866150514000564456861130722000534368513443063086584210845323324500269880108676765650126350367564118713346739660879358092549317399729309647463995867613545870580294000287760957052608585319192993539592988799146734341638255124795797488586656236914012788849067849107799874876965879265938106768953541827133575875762749410209269736584813422829000891702260854779971440532100919019730859573330423757450100672007245046488870843718838545987000250862851892089543777946583480111764847082797432664613111768157227097817150950171411407396386649083546996967846492225665642975479311996445258006181370530431694649686639449965776524215223947163488120052209522502083801130875174804525654577590913047656088420047857980881454898030860575601753198425379558076159862861090747635573374649799735566111248041241523946545168076356568757741371653630511527104320568885994255813173832487390807934241912832270226684082923105560770346402259229444120579159947659601431375045187379909722553269699346032962690609626898809133984493172244600884276215117779639983232860386675191115915809311597140950254872010634754397638656844789683469316802745092107979404199578159411253763675151603203992124735461708536042514052942401924122828748369329596257596562810528466001102569091710271202056459395385217281421581053083928477317105719179652369716643292538829146356755209331109251459685082963159278538508505847107766512872215657662822118092639192455564696517495112686221529753641819939778230376819779346449361117741233139577969865002607318507037600480522835136143049489222810900449085182935415009931380203802630905673697585521355303053160585726274586345914190504605601908848359498511962487671008680824685103264179692375231096326730213850323572757815833329440700768998450027181042343579501703077415627907685132515776105359999065376705745102664005899011553621628996773461390425988747136006554664934779406821149204790585700085988573772132212206666599886222581364636909615128147304952758834527577071353787839892817247607134340200405309798065117662080658145156836319292168162720677827857245950185674491431983140337845394970435750835614168991300388629081479778555263650553051391543875284678605168795374659070761920995593370984464833774406534081147672747068731110970374877380835110882484199776811277072000943779041944428665472420292422072493127000414861653203266155296811151220715401318013487038529919623835125960835569111185825781489417224564323699331071551781709629370508424969464801602323151343854817140087588087191458081863393077393321032598179195873696933084659284847539990276220741061255263865070448195034221136647115859133889737844032493964264286743613543968523903883521188439021882990482103049119500297301551125079934910573139892468811090520344624933085556881585752467928898769596348729412694718186117205363224892998113849003922150918085754402708572091029152278769144562533727827376394091645404282944651751512573529051858572424748026316128365690836256741673634296510881864195319098759897593185267993875819139293907409898247574287807069371832469281295943441808527686315176952773658871847656326388232565396412545732265183511525999499285711784018690090120789572954813008009701501821911105580923931105677220853170914875988041146799707330484439546746672169227170150846096720623218087834716866896648715847881071726558606338106199972290133416749432616246874644598879060566550521452238330965276971311759369870686003499569356240129929800956604011703134792707917104144169269837948914674685489782863577568954531691010486198408317077286688145043777398062763967216786410868862177946410343762148695555965097767443955065395798602276945499013347271805526206374434535371407605288214958893481089380670403866097800321411405233255414001690426006362778897617416264674405275073638105897167858012764724582887016538468716021204116715723344622122621436285561146521356438806003045555513853736843984943653215245952522402338678014130134688287198378136497630364377273693438495218975132390704104828961815716334194348592311465064185999700830187048910988973357514092575363784369382126629559435355891292353616493368340172157944608606031412738608712945484073495221507432473656362736574333708035313228285445081149089668338998460624243771399815177677121685749056445304574905148197193444281643798914608139628480339884160893209639357743371794422429405323643033369732271417406396576058276183428001893888183512942354889529704677514308474037286123466585834917761554809302508829613160178742766538192337283024166588098182474292581224850243821173935371110036108581982625608218423693974104380008999583061255219711387665314600080069271849964464600892484284449758928220631271674226059269795285182327162763479744093864539523888883235925778179374627791699398710405917695247127337481932871317511075464690289632411027960363296369974376856623191174841238568543179300669298136296033501774762629847228101809890698293976430476009790869639678546065766462696099194283664746260864977712278771831336896819104960715642056005389420038332639323246971142796994346872094616743989037662589402109420378914073950331495218049944527354271011593871686558646802434446323729710825476035757518657528763381962693678829896727975722844862314104509214061178130249321172631689429828565425212860730245206539049048640428622703141049683297629376309985752147223526388793488342756951950348538951114057245324165771239069923158615878315034481168152168847967580472969309920843933712497202985820564533424845998698757353513255578892500883864785021632838286671987254234788181418180740765973555977362812747795206676220416103056546740514274290589558365997897867507654986108689213620322592218425080345022509520637351336074750269143964717853138707414340578370759910022663675716839029698719695943518998821562356211597451940102386311514633068931087442416691621035053496874295136918869612207464333715419546253252505074788897522106415910747981337726444434991923849649894375820497879379496262910997980039566062050224297934902524464367931752223324143566019810246189052294195931604192767873476777512950213203881124476077876800141357528940364984645143819563804401759232473471525429485066377270243785586703094287494734347865386621631617860252048332378887298808774537220365286203794341673388297544227921958808856192256658825849013035474952280329741262650188543199846184594711093751502753789874805031533521858162416948168347650158829218571352906415299147868499816479325250498022069462916228458807545090453350880274558107222213262091193008967475179032595625017994246132611473658174890037353241000227102917784775575006443738513861123391671791137743804850611820826793099199356094823777585565061293128617905279175447777155178375046610904350365729029790652163989216370991003175053391825579152064518973809863945525230119487372031414047071265173395176267483991670495617914303428247709210348311953950065697900744132288290442848882669239303639399361509611600738941284325894309035997476959372094817189226402679566114334318262296707172752835092776265952275710730752793994689517995236715233417676753845246104543804362339578232301553534190284705613465547240035458168982178484791097659600719229088423626475657327949954496753761544683396989589051076558799823304419980379974480487490006757545162105971148535721299405083002711554469066084134702712428560112297364165929254317424960165756705056772712873467209217963119737833858279624861212530025072967488803252463170324612777990246855970215098541178371228906639981379266241464153080387315636291066466223152880279120497740803993419961839896717178973809951670058306864542407399789149930890782404677259896373720301441361538537878914227078388694076732221895089023893252443535434195424402661278205336700642502185460865898499518560362985013743136348390471149559681932418547642049115006339620744299646697590317540877698027740509382003876088284190134982851949535802543542829545280429019693124843908182432410973690221463941564750519309251385284539689600017571275378579140243185735245199299181543250250225699141278538418314000551558505927798459632537843089012051629930022667611821088227647770236794912541886643704294209525088485778017905877003737887022515628692473896176562068978224549683404619277643896631638288856130478152197619222691760711532409450511159860814153185376055116851654648603660144573043000797853570660306221471592579796683171926926726750441211389574582141214629494463311483103439651726456321887224483077360838348910283597901674186886846210124374241009682795820388250471273277898447502444627594980612537208866872825191605059154009789109114854696024535422900650751403932443747698686314260968192947747368786395432690333728448262390937780438383220364924397548105414578966238691321470352923885561479294762912694627309631848005930938966987291109519550396762639642122438562556126518215294890257266746229378061989720334924549816269858837653954864046646220766063345052615274469734053066606251830939809454338120768497054225603719664047550848103096843004361558075261924984149861741713848562899564301110456025093946779713485486817876137247820227522182062364375457063856191204926984534023482622354736344463857045291206379222388626447017639399435228751742591589704789424241005604658116836314357227656541925425923607799841939022013784540028143892875398452958730996663423073827310665228944887287060806406451097882245027564299913868719689757474554290145402466998355777773225627884527064434683491048570553649092644414601397643388924743600370362372419773249695045921527608398248159530986419040972911133286253578746737287197731454292930274720488441396113664642115214664776642361950484096111839331722884506068765202862623682183041113438333402874445625696786373401723807187787083942872745040820954449329323864027747367940434649086190670185364630543710478376839943027612231841723190890499079359942218281989048553651226825216813650854714984609587191307175136680796403812544822716095260778899174572561090929667408674312789594725421288615967413584493392050101454411572291211906539962567807541376320094759509510762669211825927671144105489678108050522558473634656835550439284345716751221317609513647095749630321613685110447544417642810223587804131365000991566648284369609208231484026237291365529644097625794685994283722517738939810993033794886325924257433472185595500723061767321542845559092389635001640618767283737039235985567304774050921079194980465717091209763737920660419351619365461951351405306540880019263375941759761308656833611124214491856854306741524015805278822817678123164674989948633145908177644164240654659455655700636652502969956461818043956613473604311678974152026366605913359437457529815121113100543796640300335753218163818397978638099082140627833699368174351345225337177027924965704744943644669998956362958911342929006362872784805235409356928160326301349528535375472511124388732917067379127076894404959833223992091439813002397326201433223373446861659665367502713911884408094724597747929684911670527466931242222214266159624321297541051709988653871728009483948480579887861293797845272340386276774998431778139961397782644934664202093631561450366359021974708488633274112218602728718643732927554282686883795409925503645523052605864611186870759785870949431363803145224862873236434002512202569038101182823870871424880981748999079544204376643904594751157020750330528628522506752607882805489521197697339324161678883428390649757657732226883162360237982514567697507665283000306565754786883723325930672974026742811696791531584440762197948063564017971084635037485079314815072249378744494929853121275933051004549360649313060632592023598914585592311384747322006876201990745398458880416628701640334426442886762702608228162067310959397569064160141966267021925572398679165870566402689756916976172679988266375133280454236696967121024500853744636687827997595307950258730783248609157869750991453431921744078887215161857338745621158192672875029109295286684500337768762147187119769715108726992042409277887533942551027356349389714933940282239353166323207734972435205586914254676566049508491265913455992947561907344206347968854969896453558604053053548068839268223154101428125959686809297422334749646702467168453843054861793069997466166131210024385179484148608895385946000783589285806691153622301197288547307387663377563415375922805454401821633101059885194503027832811937899251672269626075348548514487875893862076171488498926048253672869930504345832331875571681815120944570342090869993186410776250203770933109315424851573326350504324798324883083202228482637684192402048585463768571340658077918782364943547198821769922957572005016103208206380760040906487369608924526375763575429824112640357789961174642260675342936997820532595861017130761439808978430551684671341937396996147179042708743157138015915194552329427277050138731524637402477785747879207407523847421008918432136400688966160712583412986792100645724557350777231500891251998158709682089700463137582894144154312122264106320172305073006172569689125862194567652774070895646175931880173287462650041136153120181988638229045104639852794274387207830866025729013300321813970666423670945228741903910390929694362095101113998957341479591906956145056651994808696425655960152243815872725300251812459205308191723985621303035511607234135084270772742232756349515632227422288389234520649162595468028710837678093598887205625113011257060107513345064291695274964902280715934558541509210724886634880018127979177331660837192207361970489442890607489431300979696913634104162772003260833231624905258402156555556779933708048552762879978406004256629163799959487015432733203621505823354548251281943672453589208006836302678049682961551803518036343458678989119516794521432842082880706884368601303411392695827499930583996234943801079696792061800068194002140329893484711256693104180727347949368693369220984566216970681238296740430286088652263152616894028268646422530468794596549940020227783576298798557238261511161861760929384606144501448009795172379796100735459606222260124485106784008255575761418820528221778227171686273558048314487262990398099824273994891149523455356998077592596353239729964991874423120054471021298088994841582755524857065278890136335645093726786852851835781670384684939364001001390098436697323068036153263345970353941625517227762563200562795133225614257393203946986238496579278345986071904999473263083477816722383621399758183792741875583273277238702095250116513279704374539701505740621152582721166988972696183374947129416965883514165096066853063918676535077012934457587790909188725269780780382731269328848183555348464159976164130953242615319633165289232230345266447386346521306691884607264025659401837181949289493162970136862298626966207135306539183998579912624336313715932152235248062128672441391427291612530953962224553164401058798700609889253387161928590584604588061284559199803989265907599301148048376721589723206820289904455448020480702565051252265542935476231482492896179089550810471127667253632963861458262716445774085748269901954231325539425150071832205657834604683181106840208499222792584194102849777130013305655824109150631873986999167046123418311880349401432026300517690770057614634737981433447741639297156951643831800747180231634445679242760292814593207054041475428332768299216136738536087099631044983305658121435643205566417000891764238166395129514759778535461765114295901495914778376339518229841135356466091056590890179602009625699833627756760462653545325306274466424423043666851886508356013600143937137777179045079773338223746551077713714382749223935877477415668415683739053992230149284970297670287838407846246325184035128205378968335433643738386957378673582725655303915129277465998816777567142426780495768415935534118597899687175529810697817342338472065644368869087130166424969744983711569895889046649052854905282632504490036794309067610629318930137849894523293055526681653092770814420527129232849229903567986170206172241363997088130655056643185817908005177336367234533629399433727911576186199155546103750503105462158502727391597326468215457284457658264485960878960869702267578359876665606469687014356671860123840183307932150381856235606939138947039652879725979473665916305365130937241444719775493377162075292670376128883629932521450720156004349404086796700637268656238042388295370499808212275281965363101404875412361474146451545146423657205690570624875051561804825923963492437144529434900964578276283833129202733403178333023268094225723760401849806576341621528369366568219319303654493935809417237600186846602322778618357781074805776277050788563603783438935566949909622097624874189928245134482005914424475771883718561417104338177393243962178445602425492562581078759146447454879667915480098628915098941029513113417097283872818726394353727305785245237976153689365643750177720413960901339049079970535379906352269282951339260679443618679494837452305321667701878360124262676383350409201767923487736814124743630494638957602008691546221276930155056292060774419312095047825269528540803188347377461329769777652805541179377285880733038263758207122722754401757128608747732591661061506037278793747891922908274483576418267152055094993799467221989844179164341183733714784034956347762615990720954641150528084174356835886627316782837851642162674259249742871612034595608328291757137243577248773090150861404969051243077234028501384925364954893006051363829419168518080604573522267700152747786644709120166412529861667537856859565212039945305043259806086621702719073503582378093854703239131775316731032544199099920109956202681100579012740960925233111336581987460739288360402013956650718541059960251949466096773989635588218845921595687244812280986700348277413062213794974427402547543745817624012508499188436804479070083279952537675379610759544947544964634533753905785277597843871767269421195708073462393451946759566195820020644300595027653493746908787427323053997037030228811859815651557760801890162488858275084514024339972805875930901549930695527066636635348705649514996778904747264044141537050829407025606264552396357926494997777036347192712194157682334658680679204985253788346455821591154424520632419301055411298779913512029704345257398134295540650119469591664126629271847296032341393317743296701694485377441885607088468385502822309716183711179328887746567972351604021493348191588984127247640506819607291986983285426602592380681853316868313623005043792220779225087568209758686457078698210884069386266097692897553911730392317029079798337350943841082661263873900693386070017770139639483212336163322615307130000425088154384454829221368043189065660447067645766477843907232533206462292011734965040155896026667728006038763279545101853957275934526075918550688841246147655822200001957201488931292791208627392682740307384361520331914602102617061887449840129488496910252936009390149131416460208580009064051261087235616273054083475900011654146951228840575761114627771551518679410589245702329714554466263076963439768161783519376000904962245562175686272886003363589807676911226447488083856077536311528072712995493554821297098965535814953816845908042177047399470886095402584372270745804150049482902572494327185841565978960317680923565935259629725354717404182957703858719711738803405208838147060300931815265452425945719099656926669597293367969060223172899496728064832577382254189716757039474774361772299378903442558862262578499174908068592407326769891447480037601548434124686115217231497758258408672098667147912854138889908571612169572201492980986161672096162485255450270375856518194081890965524975579338875798672075819021497774453065158953537183458301662605083903986013101081383526608579970091627883493490040482098474647634019358653728102451897933823169691081356430618635379065301841337315384859383091199955314385156013062778348253996550470954050020302497812482253463227889820099040285191034197467438551042619228270157091008203434573528191193271977359359490998031609457135590914167656198283268585527030956570057327606716270036941260900317592708808452058697557937745214349259787826878128226243494383724356767350288949988127015151844977444580065431805847711403542741472309744887935765157294964929815157115162886787005265418163772969784471752041695156897979923728859055677159128438355782322661103514943127257469849350917791395549298239498083153628513905818214287906105315010419987132296867198122400561272963089958984653871241584502970776436986810885387706415041968212936224560737127111585421605746334416027992910292723566254296214869546517409725767342461695125092556849796842790455891671951358948985083344150561836576843120130618945689530512944344291047593270981904619929476591024588083507530587761438163821813717157655632451704322245790855118825022004650596279997650687848755988427091823978678588017596050991016455580312222653868426803173516752279253836424842822479992852999492994775084640768648738267048541777996159201288998968861493967683549896953181903777626401228154716223239147695444988357221788887111336702676218369841106342353316759213393444207043311554978872732291227203844936350699185736923004722724190730392643606139376824700759184997861785430259166231007657758453639423764687207846077534281708465154460848906265459948430721341936898147811747371575392312013146237544904095951694507104594307120994704045846864334027507682179797116008318994624417355331918806281568418839261630772714196861844542101683715446222903178411317894030591831969643858258624683995324901389939687513176533354482244799069463074699807882526625598185951323724802832874996824492039658077559768050686980853185736657938925881499998067966415510431032666832091823936143878095786846765873550584606698017434750574430066095291070465224967880177253007647878583846530663920434589248854354121861526591533253912531725259804557675072385139890940893687013764291537342685203934342566574317820139297358338910909393726009976027172053481848738232916538052251517036776113881606061417568783802645460098775519604435013718370964944540097902716839059940733179919489076443302124376564516624579909800047385803453017385254580510682951643951595915808764732074571522124748199658024688083899748038299334068219383753993440246488828752034648669644033581223241902985435198912425923136416917345171892664533227214860401748754703033624878284463930576332732610194273729956867455558308194334720446020417329468388466412039721995624307599364717569668676348634838585410020588238509786597054933788686259203129195540073034670072300505982875617200956819774972655665072509719454232448740959277928774637833965852148141122713468073944736246007657150184277241503383017614583083165042468079950265149176053808148927996559136293871696423158265401895922993229393383570451024534256084746131723901401311103457838627603513343025768343215921183055958927718710062566676902443386663105354002925792402338495666049535583581629987592472303033040072557831048510385699973720659028792182557599724970030822326883714915203842455735942799893803055594842816146467356026772729917427206493667521674153200971424144411053312231216567907797412156937078802271558124373675933011772037972673364663854686479605832777327192375423100337297471343421571246858799962002891986754008532656000743267552721737780010198694676628474744883848853523318900426320216137671617097363207172640474171463329404472592620433670060339773723451995262525913463869285699969728005474163280640286049859429570063794693755724174704862063775801287297459146870005829034440638633225701047906226645631649192252024030121311770333315468341844877839179873374037565391906580735963182260442665221133604439060955318195790715996997983485756771456352197634917554363206988769428200045248495761075395463533435202046060526062908556053232209575868456848135166882658172324919909723078765263343798409766615007082265613012526648565902556308584816079362027560354356021229008564710664344614992937614257624832815883481966329862006136213512550969192720527630323012837300879596728839338404634426203299456082403094528102474993952594627084568242936984866814851291258410058822491900967747023683607727439545413110583805543275726494165727470962297179947859008877905876276909904365539375040207959198377547459566212855298376538015974362002301922256357281856742744798755719643328589909002613326874965200396971893090382558159539529034790266068512074084145766783428600509241601302343698363283764398353196839207368865811025569821058823430958019987863110050725708548273440951955064596452456724195745632856471502340235530999542703613227591240648591454668484883194284954631293850537353474299286017998830296633730488912034715690345311947919144678352988021990045721718108165835224032856629526460572578123958071988073719739666802241698326282232651926789943343330868685899395889019942487318322639676573040988430578061119533047353809915272589705072693360236410107548172639953549867051384921359548303610917282067879063562178770182968106211354650724935587577324305425043682499347672134433697210699297500407005630318046152161522374633291626842371553804219996242260361816994307036592374942465696526594340113031157936914033314083786914087079114582020753025930893826551693280775571900727315637528385960855077541833713567835419864944039316586434222734415198005681965521812220723350350807977101136674089839268587087770873479074585765069920231764518708080496506670157672016592932280770199310346145773488222561957588954936514325431894113699902543066780248576358685631281113546098808064094358834972203738159421626706875839010810273697083027897843444612832162607402707730617013657929870152753256782920335615598708253424350423714174106113425582327098298993593397943718134476306366672132611736271375501091361640989559721251547011169849460593452376431412963983020603613473481809321689778877627731753407089624316599158925769152280261201642860591955399625215103680723469014037585798857682759470726663532142666401625133365083604029868540683986063984247131402485565150826992044093890828246757769208837726046573990746424778895798983547056338888088518865713512965456724652120496386798005641151763116068802443370778547498915039776167714538894758815778738060296213660403760404829769437827951955291685192705446550952586612803819509380144211113947212369127181937189824273847518230337763578981876036142651829134609780812819694206078072902404591107377555236400724985107811438464020255345466591640859217170445057265036765312934117297812297675814925522523182052141340686389327871502289525554270167117237221983768050261874591038183203074073129821937287293747046176780705621181001686693484282620467203888249056053739642564894126226008734601982631786940861048411236731469596355214421873378359654802559018548690942580004449211195504210462429788547366227979125701818052787189411250244479821986352134670995063787336063012121255556545443403974128412577333727995700662853803035588196798319928917895256067945104845365740219944427333412588740977911858392555646092463712191171815255997384080749079176025401753341807601135963433802244709409278609529217817155502741030446042025237906125672463689659782349773734178117514511791984478419658749197805189005954358311394555139622838418531877439467430539322503373800501305046853118252615258801933532917346330226553909473350843821805146494152974158700201261679687734516660604300166018004748565320163977972876603361128625447793592963699992176905568705911512460132882286647378937499285175654851861137069338556268336794977527926349273972854056994077688004419559728530822602567834270059003196308311807867788100275249742331813619379829391055542987582680700302241319839886884629235755132404605078975153053092218214528031716236561684068360780551210462202177127205204943737231884297039431405879001274424126585063467960667743318354504034081767854792509364080961275128494826342078363865497516259382346153105011524176549384221874705499981420502799545440589132944159439808621131366441178973894649594016992039395996750674820866824838413245862387317902952485074933927759713334371023394447280086330932350898674887393509250032915442564257272541552496233655450380881698451931718964385746220406560884069536557981643211473833381745108895174036693667883444421522984916214191462932932317997974922039382694532170466359454053787710439311216143987953758421727238279393258178027085659598527544777595548202010851857233553939355732451096635263013760519185180071233654000739452353999094028714895231675093630752749339735954650111877547318258389495406974379000308609842487236608421648157116490668463216587081842295940737817075102602744115399957452534938672917107755088860605078162689250337810657996375930005249553247871741772946715639153284656493136271256432223890994974035699494060685857308719269218749416804951801865356935724049137590956732177762912826117971704776027911404573729819493070661339179503644340120572527276630294798309646494122391911770073958726146921133173356985000093013816929494190917921787518436077891264980269637303556757013041623309988799425009649299880281651125187090213178490751249854275650607722562100112117842900325655929382419118769143728879326040279346789723893932819279092181274025314960363926069125753265307411068806446242780155868206580253951218607526011029513639486197265549123242237595816829891958444695422541271232539143370946124394677699006755383975447606108586510995015647014150400632890861365641081251952411009940877894102447847479346808073851249081188602673385848222149252223001444379359571441304581318112238758786739247572206720983435155576482555185959956531389005235320932667764787435176920002638890014270750331070257566007488679719370666427661197255723234722456353961072506747756541253818317866957805178849462555736490284894028139043883257642549000278463440521405872562772851790807797199447376455298234980346601349781569022416579265621312300577805498667115504911915333654422702653050040461326642178791978873313694626212684445990456962837327319301798920001677918331444787504522590047545010720790196708468041926692609057139870002649289178195245785648636088739243006305734405928994118449343024757092490646213623398130286789984011050049515932104587695070940658653404051763537260111705684065231247997808296034188122198413695163751493149927358866822958996034645814842849912560008608132483881533141040371659915810682931671816597364123981344759269411695413376821464981618305566898597557176279414973752833019054244592438444945692275174784512587887958358436698831802787986214436611722301858506851387163719464346534031645669464957674605367496244751544844746558681476625714108498006431642171717794310272024962307074370541645872692237618308354200373058210372648179958167080791072720563867582174134697240723304927136714843165886286415510687398922796581919197017775814170227185003617443220812443272287369845191345344642213165751161611050525792988149405342301284342974625021734409358674496262129817544006486790205611793517320295487281188518582637591890846696627554688302958244748816336479824084981816973256237604270348853459092688197505537207199079888834013286991127397049017031835607931385031576475348511168184738683563822947085151337532202584079664697215252650632976057409464415073790354013767950410581249686077234009364469069446835642316624577938488999711680489307904668471127157775523256238076460388119246467622518910834826395892710272125947953448802020016610094998014857227944818850374411286703220311591941727956618758099197463447255152695560581020215821572275420026046081660809502400721431584867346219575792975914735187943400527863449404598427148239556176612523514799726995034804624210854035086979846507913431001853315408407153399933031711358703348611555522638160211205552839765877320686986748474050960496091543792711006058789820353272317060469981131479871081242503443639382084635621307668605967186598019270633229699652818158206531940365172032884993716989916245673170571261535042647586628108287105526860975184903222300426352421415555808211259547026762596013928501620046456679653674121527633297105487148487994412994718350610509797840429124806475241003686805781163885274592970053265877386724893144286423888193314377500456353765740130364036956593378048509614294277706028488519748897559957521586904817460254885179708015180961138654501983515460260191417239653833931555500612766704000808771788490700399902595308458304813836545161832480400862627475893848409807088386448354312575613993477634919105605112607621991049777234346707858544565468255216015059979399991624749065607174434986666132028614213709563355089009356401223092566469388146551852729519211194886705598426084910513419715082883445117588677772111101133202710587439982509088710656865044696198443829809595472306112602425938230333868693433339066826842566776028705479723071281627174428063804140301678934802754842978338143545376348188890861474777978720660942473485227768406080531515784887548310087984867150544362489375341318598494460317993957449131944388531553659740150547565539823887836395685191505553959924308223790426841953414378144852763376248199067551306867210164237386692579793903986229465390068832527819753762077888606835161253994632783856369424862454969305662929101010710179967532433721648401771818444250066835039108600070080115498571260687764237770849536201763407877231606291660331701358778396574923701869358171585972584004049639730258638373476950134344545970356224273275207065913778203121720218053607395761640252504282069229901803181609063223056501203682185378078964002902313539169001042350295514643875407151211844797197103976133763434040128793983063835663098590532878096058277121126173480091948302698204369576962342041066453215524149488984286689915144470148379983717856298863301063814314384351452888358564051559429102136589800104441727267282927770758282102436248325461974216154503658712453931610008716772610370296242837955022824051322357338785858255841186624659201392234975922518603586438806189690746900824429745156640319118385827286609924617309094694739701840214649838762313567491676077807982873682961011734213113038853114503387847664051622477277345395754645990143786612702413383059887120879528521776813836629001994017750488382932160620662407271838951287496504762164729575526661290367055047204446332148332491203358873894913486558136363754123160539328973285444095328298149926926848259876905011045888421021109703067386023563127626953901530333777740046511311132142334007073856849458317571951242027864505113189521845504031104225726675649166821921742164452432403548323572590768902440549312185055517241471597644983484808810808249059006782367828486783348542885348182665074498923853629328559040290350436350203641824900449740609135311708672161157424258477958126053741379590764407751390147478392802026086657509178603732267601659829560093597176682901824436324680367856269514853088506466310060889385056946067555915470952633495635158442588031005836240638478494960600104090703586014616840123638800238222353393610207312613955154063115718922645675437648758054753655973014467436246425038161376692113328269082982663548142681733316927680826858358670125901964662903820225702993861504580141546958556528454912419231163967172156646415655618830840889795962695606179083088377239585195054260616849498176028581647968051666732868076408992920189542682666358014491943254632598700979135365123182900791586000367231708875002756848896996212504381667362750111614377334783863314874695420825550880641505537970836425733908847194713603263975011738779496707077429152539735575315438608317093246648833339233854074427614815019413716338389738785876664719750077102803196398300387898949869390786079144836387491169723693797694622317558256392734607957771371752970784805178115037606481182018794607516384061673150255874115505689615392869785779883984431356430186207490499546759688819920768041916448891480182847594511472387832708187601195699579694811303234505696401612089408938116921593469253073382296689529011865211977588182370348937712607743578410939503159847551014084124825187246922298261782646640108874537435794732146024964976234459334828910552645420989910683471935563590796875794779652206148822716964978631612250397233951958746341327516980125337200405903577908877608689859619355492940193774105923041880938394573405276534939410927394343135079383472779088479042097158364394286038956969179000341894096817202197406239171292686576554367480446176460916446431696839244858034573889909063401046999338950244322388979462974546949776419078167590305464281958279472177892543434662288958683847245812282007207266708644243598313420017288250727400574071664699660441021124767498385662566477420780523950035393186034614049556021261740906266123801893704586061105533830466007371736220026478406859645270683978274505344397828588143687556735964332749283755480908223567293661851755055606934183642484101664070470925284646028215180079963086295129621623427759147361133160309848957021245289865591456101314491045674483879083363039329020232547643514002602042760507862057649192728849137782537852693976036364252176733902824253280622931626564318596326291996764301329619266647597848779646873354857178861639715102495215250330916226857757871849934111712527299604527305922355184075201479085787884197584734099630391347877215964007779770933915400342859981882084086897668488262039013168336384603836092319440211167272762423594400326851417040111319055417371273079594927141167314930928819979622281459079145686536037662710214000520561983557198544222595108769650802179856381325091970584604844339068991416890648058508535084665561917679556679866000526199045245504490144996601173658538286472735185976486585446225878205132647332317293099108020674815897772996452072639794597574652521831192451645597721749606982764161012141571312891204299882439761810886768073126227963333113971834222741154434686598763829613108101775591366691253007656008380480511972087482346707709510710309127338357958840606430328682802861632755444392824232901689170975068169686375084712093771884996467633597658103535781464054982617298167400718792665569453836775147690396570237955329449828382599431725839306212128163603065838785048974526653462840420687567425310125961949211405364931493863402434833077379450048836556767551612153040624895168808669115812288431134348034301370752822448787233496450081626848492535404871495882585305996236986285923303905301940180501500015375062364043425391601251191946123945467463207918998310220965433186299627151132544168267244275424919970700905214077774145001454630128113904772187189460136624450602744698346769459685574899543406224160386412689120754499787055902342475296149398131174101071585732343686808634642339493185985719751294542626473351199220853322113279194299219231276337319414843865653172031596444423320350701921146800855427683080212789409907924279733067376494450388730011359985659573666006990373076605374819515474740128293111019863368860103820638018746152130790930478437794743720503414803323605020408063182197480757435135283433299846886116655136108997706214281086639094898236927291394657828601510077950363602803076728834865541453116215554411688922245383772291631427850225295686500641853121059099575374421294860537788183453684592068211152866903950937733960295173272954310264003914783871653780215640339596366669515695356800429916018701387999770627221379869091690099422036763949635991777521335088078766596479829364883105468379235310392577887479612374237774925240417112826702370332698889458377879429542208114592606106328848835763172943506366514954337530430687548869436566284499627785156315792609758767404168411401099153816996033644687805104470291350722393466843396477018207235036202618692615622060145411970052956322179788023691768843090953839748091248878890926886472670534915404435152583924031851418356155141870477264888165451354156246353359058287492048959386496079610452764200400443173919558724435097402320197144368665103970778262021711435801471808317841641370217320533970086427620017533428782961976674152863702312240470339201533818403360770159958660886862555073494984037310907955463152950426417381826007529005309640981850810800301795464964878415790261727307586766810382013776069933097928087033148854886261720096960798069828646369520497014525946358075425975576327426635643913685036049908891891439731778389855040974550499597255682055991860215902643560062688350437503108048502819093044533081550815404129345894138312628251807946357978729457065655421342055203583785700480938069149140795584037080404700286519120875324717910440828566459409965731790139818633317422914603825190604582861386197194531198821391990693504857537199185794520780144860977654997294610570826668489613946194176617559760080909829796620277674411691376330509300863669561454050391881845261797172075059884423794285564790340253333140994203528553425620578802982269556257640654581307099862819802543268565376166976512121060002546215024771681548952238929065806168456910082299105351380439874261708428398519819172074440418882146209242286976254835124492189064412443173456498761620284839432625160319342667355032589994198918925457491548005629980144468903178343076213045492971936867906369005347996105052816714102672849194863380878665385057204740626624662726133071876489259438056666433740368031970260770024727522707176962554977598945918089541569882734152767308627210039077095277808964867058269730208296551900074494551773532527681745298535131385405049394486007143033871634430925062280195601471523832974926890342614022029706618499777750515102736121594233436749303103438015412782638813731134060023471193464738975820675546271744391502871806286188837560983638493604706284221053054914295240262542375717047138632051151850170208539951841040266216661373743628966976917770261671108664407059611158954969734958984934722969875129150493049052638289042047595124773199768975747913922996576190505334589465213318948355487854608095719685681725519615624468294375711631235658045390916021396817921545359026544990922572689269317403443613062719595814113804315309463694027685088087111506487672567881029277253783161861135539922071126869677574153860236237060525891464236525884450826639185053289174631600395161133462697904193664090197509365095162921878029734999668356037814123786896597774306496089988071674003864117784700698872890880477449138633395798719054594327177088701800265643882487104511662529451654580609258730750889659369716461170409555982463329673258052620705315521010414055155350647440359745470026887702760736982651934043537477589547918022603800347273413775501098738748699130615476108975555292055969497485521574284255030523357330898510056661515413088505182538601055989653050012917105366106493860095587131781844588437360303555285365077108320020269710647122994265033804365084162670953410668079215408595097024077555858870064525782103408625362294355937428055655872068795396679689806801046500895292842543351837734984949208261015257846795945966530741535495998433933808123157292501120060377651832852694048263050788947310965733417452761151068886863013368323038315161136495766379956357499976052098235224924963398501337795000515039852404933879333287686287870585180589817326195067005196505733985188793115589154732050231952869818203131809421119809183719956264260293509488585371339710260518913340702366843485555443582234210743627029251041470594177203004865874803711400719964103287471739949359634078450323989239908970193132310259740127553105411268084213113498351677485984118618037826099367345362506685789127999432790304669345568599804049331316475680570293867564902257030274886824869394290314827614854534493989836919646784916676717104249667175104477972197184747319607341757109860400896343620952886413666471611315682981714370424422357938048837522857173528951691664932641979926154641840690836516971451359494572093246813299811543951196072142674156410672076419462770554997134677628713118810017489582613124136499454959640453205335576194112374879066360882669086677264036451146674371276889306168471767104525036493586049219314251443519254036160127512475408417031022022157152753798381433085800772895612364480773243812438621026998658301781229066014219637979036975925515915489779813570129935443015722051569516276307085598750437779933072092543462913232299154858498509241549595087491997516611862537095846207894162230093678880673717671184392685739208254737284744796007334616159392399567261817826370502571776186752065457408023604553471442385317689787058436940173635924135664141809287700516896174146589047024195459059629480718873916136912078930896108141052869785530324981170078307486587800137843669495176464938624834100854085553821358776265833381784136205689566217319974784427402975694021376443288322030452617346898922126068127085745416229225233910328641246834286517333360844402802778361226010787180853548372822376295037004201938641021986824704864923274713161866016433828498238312240685086119153594485083024118056610070312362213566983421319023218108315158475674378283843996366792490544104597955544043698569061378225305384895372276114125741051399322677552150324849943164113656063096129014769817093469589461819934094547818717257439057221957729102771493337809168376194747137733470582810919120225537095481503234078466391851252959754804935922398716168217876675932525687314114176384440764699397889131444895173241590369684018395106050860433237835009022342438780212642223597283918202532234379034326449116966434579439424032062271300787779446385846622989025800379736467689502401920110009727165681041100004928832177711934414433346385436147713220951403561992544597429927238711101809194104701542409663790047455546302587076158249528552112944435630056917746871674264153747704958057831154480516966551639664011023021096074816971016073680441155696016778705470204617296451149350880975755422160933173474451925684958665478348128109334245018121971169150636282654259760403321659172713301067225697003326215402179641721638893905149468414498562853484643827741689069049068944772093590158975327455125457865064207049842387999578492264946761013920792657987140066095364231684115747539583814353581132220190612549253359108730995655206265449280847017076252608082367331600654256815650670098114495988197075889605711708709108952588702289886073024943355086273304769584227645450307249725704441344742012498977212816545308386090943266501986567026230767384099113018890549506136970999208407033750868462548918603297658976423949267558359657997825416407407963597301090688901485355220820463288387255192023628873917064535471131728186086840036325865726732305985681666962884256099096561681822838495856261244423408492655261256834934130093253150568024803307054782508931675157409805611415982470685492992314582610987075317751855895983111994823628700926986775679123643824293038009343820986252349919839547020401720788205351367661777962128708676860760907424825148117299384137134239995533141573250993418167898384008349270490622653472513912792225052152383155606358672803089320154454844252687001461552589927610754932525970586737684760660683756690777879350891779584810880733298659021553035568688654206251905893672528157094910109286046685774012955777596275791374345853248002758612166866966919445896897260004726361835597990926747660848949418369242052656353898208937356473141252593425694687050017484807081118647671287978522682691821463163545681238528677443772762851543910134008668893268397703558451856036497890544281295588460565270853476028628408105984641847458815109265203249689882017937067193084425497526959150189111655607529722582617921241274474251398354150046074552668032857435110804462005662716976236165126292482011690756041890373626937024585995483362640893050207256484051989789968925380551741291592755326522263780312524758291148545272334327789915575324154335451568942124480137243308947420520327928709384770968486712308109319056629470962941315509494730946077057319843971404892157841293354029150151000270679849696972167550009394435463666138802846401804491415494372583671958189149458014269455000702311609991463205396488933987183817483730880213679024943950065327492715084884719907917334739193065012377312637406988740662137705840948098898352252579888909743220744369170930699622235684106277942647704385353909086888284968682467591143658523826570083339736640752943286982535591610841936277413313880620448562244326223642340252293073132969692049348224516207497558486240284797859534099823487573879368054819175139015263067234893629536662280146536584527701867012799101112342307467084076827635068089148207991405482805103330505072521017536651418035285870375539360910888306823296426659149236628632515531129445671118149433251636646803032339232567601801834876290344825198320606451750103576849264734304716695195141832457476775074401913106406189606262371876805451525369555662424362474439272761074894331161852042462739652811434583736840650242651473119808892358875122340479782527573877379044774215541472350994250711360928006022453400427973530073563399125322067590935926476305731151750326588688694115983771263722424353624410246079767979259289804075581909434996919234993387016640430979224480862815817564229718551554905669488197703891592452322747473830380652983577861346853673263652308677278065863922587555666891615959247342178061280641763848232896659050895786938228289379277342684379454348764011482256778727965077784513754863824527916507574492339613810659241120121936330244002858346413868247233542085292327078439660713953947894821320890645507146363042638334048413526115521974830194729604341821343039083780011301026472983597052256742061198015971173853848238138285009495217553598828379371023295215799914349484751752535379954672220317110797176485438463395287526928760733703476265790716862730246600210345190746483234691685560391604900975616518894264732252716286539938243763851895442223470116617228781991112481074757104026986482058160151068565187053407768780045682447035308688150622700838481899234448403085887725770788401245638860900547087527367318329007355264999344204373821763776450707544875526209692697428759960759859027139805849589908781530476403698708484360264320888418813286543289740591460038501958225148412618917154052822734041347635309141277901868096050173734241043303433826587680246582480264227722141742857785879871237199091031106321198823306259624161395039335494571283531372622264313589226238537177682047046884402026491095207703312038775187279989183865936819280826058758799896759972721203867295393193489365941060835904920433315947329215568841073142774898435174141215591309794480863962076110297949296378392090950866695806790591871266687703107565317184442101898960427287165077852289262488445622875051079811799207521418543387455090210770291257235352055056507815750362799390488442566624611571362021539378270920593466150620611499896849269259716692583165876532582286413427163038987898665945151237790137711283462186704848157362000507876333330874248693524915884965581284633068931005033979618808566668922998151929522395922512479804883528867143770518419477219025936410637298015233882560050504566603071873499242258901758772043019614392944839210151114222389970698566199612548298571260851363447180606702661851821385789964530995879065292765102935506035076170781804624572775787615664682825557040896788522052485751598169068198528983843195665950552668135705580846128220149452950636997953838090186317560701229120249728509410893090430600509078733314510894248520099160860011750649608589848078715579796003707256262095509148646675285378888125109401866500750701370654579749091588995211024285937773298751715843491561270272193568909068922651121507256574366546383536782569076702311196125507278932620026952225863891965046773365788913860910065220151866380027981570787569034557458523011584045476267455097513674001601424121524614073892266413231499930259100170320048018787398309191997472897883953283263527950820024119752017236763185845706453892196796929622679197178132215320259363634405829710659235025607958712323746537700295040371701154122947908909729444420973135460926558438225817479772681319678399791075600431598100295487247678454173515655828379094908417831933214491572204327345176584757462353123675797713241145654244522353104986690408398779491134163652965614934512488033548537049709731847471446346880896941732063776495043246636100922321524156071145419833931186446869750122079654311772812459403583552358803189553472086228233554440297914014035410597942445922596640460711525235274196149570728838510816968159030630994039723722955667364152775127205762438987390491188041847454839918168151884517012395588505133353511808268848072905409970923858456768793138138778418368014808917423361587543159840642611561425684038359207453151303369662527706748917042765043520499026265229700553150734610927002144938236618615766535313601896341169879026688717224740223954034124254493935068882891996207902302419164556160216900673589782716733697569413120994975590448345707830175129495332500723739231954708881888695239200582236046775311670028416432930635121905391292728411937007208893157386174580093661668092857626946153690209281181119993249179007833116505320040911220844791271191594988350820025015183550287371112497660458148255486064581945458317520697624498153643245491754445110097218830432224695866147749150604221322815738889518671098548812309347142806228516455353767334044506827372690366966398437296001978646926981378493064923193690065815865439576352516849714523149829415177315313083091064494116174072623830981776212349281394017255092635524976846350775291338886963859692711842905217138949239179748192308797466856369562190767777441194085795195399353565914286026624448319829952277124447333827301194786278617576522148803849989528600927716206598961794865472382858191458961146576422987938127071988825453647641613058532445255096659520333719832901855283670954373561851446619319773223697462311581818881284811812023706218154108571723517491853195511668664801081881833135937478105513150251325098976241442289137298136530021719803443524494199064343960793074644916969367343883419612417000292468629185939559576513147741769652911247140025495182008949887044860622511585027720894608354424610575924707346038518440890608962323511562216397240059991060839227005816925343090690054910957335430894717138722667501197902011816724704255304200680501548599162451166166072922443174643579118727377194998980908844878570825405086441850488522147235868404479771465272683723178205123338354775703202518693932336282220864312343600426610977192141912333316440283986519059704865627507568456860538665825780700327436054697348015559246564326095294367411674602999019803928976778232471192101131420563000401780150625229416491227022022755919679808501403224894619491878263681509067510561111420518794894252644357859258115274337760295065909534197745127071021000013106641638062173227692778456736257559019536605911803325685586570033460300406786985465034051568218820725674852608773004900108021880627557693107750086017321599364715159055305322303391581108668172975686506969960206400895083900997775866495361195203352465972637112689431494636371452592605172102698228951440936132393857619890693713076006220755041713180303877257497486432934512792039234900199547613544904973739734265797940261017160055570789776816706418917661100714872447418205391950504482952638894348925827982338474609697437550504734672243935134569977890577327000080356058208093739660435806214646622436625996316294278106556699526341226015775151174397426265572421219876946693304027021946523718475028785483754389605174836155290789573162788098401320954357623440772228875909494499359398842372490879816610991207443733569295411119450900577400378901885080776699665278624853789524593522214622469365732813319433448977549101868854542265431061877492673382838360559913513348200985450553146247316544487104902664551143562450567791644109262689024669572878170809685380784170415690996568415104194891110049450061369467489904040973250135682924621399090295112847098415476086692523513111744433165208343481027556573982463699291914769930423712974510345519143633793098334592967434821136560214133920694772655914745103236872771798130863873061740313606541680097404881341114198948106087831380716898244965163910611463305671447289599985145729656590410842457890273924486938588252138985280794156472052537882284822923613836403406580699049434273525839777754197574914814354822972440122707674037614211469689375544691667619815353704821556630405260094348886093934755060385764163624563017329023222426721485716337237595201839167271907141718328435491273704022276492018095705231845934685142164809498374010270587613432021589988919744852251605981441332579984349367372281167778129843885900279617751676718122291827711448771927028696607731319809680383140947092983067368471670245143855719030135387522778966740951614158147001822014243608542678327841904027873464694681197308296798601525274005539860103194401359577950369614929027942804441123885945436109221218307462706593963665525002361299191329105690864005063829437886791127374171671114451372573023007870916403847672844928970872755453118831365829466361723130389308220298327034743377613697549869664874809264806404357146382666037433595229530576868055477154340307580844269034995222814746470569311601916719806563448513715466586217535863907443467350435000212537116217749128365082931469387049758721586815847548899841689131677627701478518046706676025319910447076004844285436675405821309683526005893568849309951074428300576523966952648462422878359511384282151501358571641111578689468277254549349180954056942872036194079924929458527617392694920178062991817237435536477286856788840073027565208165278110494915728180234278675971727655298876657667719426450713567385313073370103048390249108577698317894900686856168888060540141078246921208473243964252942703510118809199106397591990511811237450464950060050569674284506063845057582486422985891207578295546114774393446849230803826368229608449136223379428887535743561637084774440535858835283164881258648370823027280789523481502664708003397948447024462934405783844399133851097212905771735546484588516729476077308100124774606956326144709264936729067290813888283688323029087840607395573336220099715226465992050824338759532103956029070897939951605196596765672574625960362604604947766697620984129001360918923817912004104891560972068410580266147556039844522298995549660459222960142444807753870167920793959350007615277031788439818211967011945707786972500905007015147304148507161750182536177048505335654576000617512170933813964761140814523048611051551133902590089413169342353864386008747807217479233430005436773552684883027028521914245235733739256560394587018883642700521963945166831007269935350663387719806578414559523749916905431700357911011804772088253680022077029406656463999765960003279426582450174476971245539114327625264508912399519302586394215136821340991540399144705195885527284124874776946500705913737562604362277888143241699851798096615688821336301060457256871112440198253457001542745133808847655926781573724686194488340724167109896494041528918453770579267138395242568665670437244495115298996994101547003688042529647997156001754064700161994667040647553733070935388000764810673519424611027738569573508905552955655632132505081931528893727449639610005074676474674837512323228614762538225154712677968068179370931311578591855706218403328156262049616607732491225064543073784255876121956153210482175017777644585185153239768346020872399615235497946474342378796132491969646913441616296953558199962521431914868858427031636875896419612008092229730915958693648237836690539735411204319224280810694239774574546295435344915360460909447606955225571182844049679287310301190705595614956217935090199935249110584458625263299028739303066151490015456567079320878123166237561129423107382283462468909014366971148725926591823859251241403897908611878232712742292125705986122498427683929915041078836443859944611692537007524238844016431617903740629349224468896985926417162563470308096818546371709789876377160773028366858172173528932326551720168442865365050792604708293158553010845480867949113427145065390713313353358351386770835553094955776887331157244744528002117025417646413872535775012395078474970544487598136237963318824940817528984039900619124401076152448739108133033609226310053229313200514658964872888905826184982347759056806387452707734333768475375125014092812935605684738781845133402711547471114336074552425094804957641606379653554340464591917732383226611171351270909328985263735928051259025814641896660894232219936904776666697312579073623325797053177843634826880218638473829632190764872460524080494523533289398373820449146221553097353801973169673074600466202469853128232630386222797956963115949423662468916746958398384590633983354046101966740077787673677283024650105202805127026474050988529865095090720676092469692877446412292927900185569042086403829316841235025637512813659647994820937773604641821828961701271747119823986034162910629492297119905163782872224761958162086881966558012462888104922725354496654828938706575256129832840459099319912843411621577227477598600515618210719720896157511343996810630721947881884675314914159431149663041380609285080105795528250347976251748961686938836229048321412436150846071083946864621782974466870174015838175953088091923237108692518529291237867542370130039819470728526862998475930948031579465410579405559142180329654504356805355189339650576668505550339606337917999103719589703943768941525584119744696821973495756881911666590015429640635750338149059444702697454948077017151246729748384449317511433395042531978239873344059525337513208578082677151152338432880602228514480585628085153483695240841328386274423580867695884364018348962458826648184369215567566579090127596130212376338401858879678947869299696032529405373783515231381891056793725626786329799094944181214763324771498873024199504212397729881014138803856547617375106260208417873339525091823943380395431885220512882288533944724919947116596509446952428657239734263307180142764220198429431282515678183468898097299393235496883124502740784183977356129912805726905455578907159288087707341852409278038343785496478679451650108034825159514835722660314063473511495319399068032618961065066937250085369549021654262381463616798738778551642083097471671059655648524421149189584760261832321595499967207218643890358731280265761404991871758203300866249962054098434815866216725229547207472683006516558561625966235787506765440024610598110946972199141668112789573251994900043568672995034185799927901401240455978425954853476783624807205488958412555537094293807408923680007955767868532974320316495991179834015442579069657720017291163719113569469205813343457894709476650422031046343955683096989110511440693489112494573330288421184114822970120350028670451668768419668381903814740626804605274988232637365207897505419930225364447685008256101090883534102174288943576775620550528162045761648766179656381964702580506913713438696754368927783178233414289058625872482852457124782227305522301627602605849958461710895368473559167490923149032376622109198799836384660282402708206094415285808015797380413737731554565036465673793364267399132644069090699356936255148540108269551631063801922207303868497810833398633690401826988127118625061727114849198486112416478165210609421064969638230820660882346145402659546088737490968612287192554055861664110486689114437019193629400908932079913625157430014123288845389982606685876365244952413559440614957290402293445174999576354578458676224673987015847925285965897743328620301752291296077942330861451235901850489891609892553669744289384708571647851768175629549732979424555246719574019119389577300352427669456473714438201849333426898506562988356257435820109372029306290252998328810177459294232652147383207056287731336567054022973640243679837319883238400800425073184179014700066326072436394266705636531179241990127346524757126182216922511578803521626913454722833754515441405893021429699427266622574905543219734251190351318805193126476935028424328804013631005443503741006265155373699471225034849970481915438802385824895793167229811857157428255337371655993231042937661345964939971662340594467700418525905061070155929078776110369587213497776310383389242544501854172993839388487823011849393568748755285308823127639342599440173404524040780982424804874205377911584078921167069544866003644965898717105065825788403433651257897950432693246280259103913449208040083502177427543861811728113516460981209099188649271133630459830047159794131989936867695038672307258306557020931936535815935448507337846783157404506733531389852049289711445520279828490778771082160079309914252294982866407463972647604359976815215644663700931781359712303706291917073104129637141526359368514659670085635164482464382440802662724735893096506071571936286967572762426126344127237870880410892897085119187805149813205374657018474083905441928222997868192451256499952673212597301710705136373136572369777383284319530808966701189682237869039185728073423854643260486722599796225196521353202949836079632304811384099075423579527065005807205559842647874592684042569008813770669780597846638636602092921541521043038307236127771147863059467501830547806005493958335558305726525474082528329271173898326143535649334707622890801932424741922320768839500718341848055080314930153923268217857547859022686150570721923109801528547852922940121797414345288164964242782584949891484065970023320507914341846901346176572782303173164729512002991693605508413531858975008539878873343886486277997263134940152447887870980521972437301704085945316583792967993688310548484555162715736998924088349751218285549885403845480152000702774656838293058424017606581799720060978124734104901395243361769537155658624683484000706487979482983761407885347636981682361427777518606674259928912458775088455804462167090479188465821516108185960629917215636030337096684229400257935129393474415710738583589381642321582202834884416144790066443545054505045494663605829697837797933583626529643842845606718849551904223803198389235817387618538324285671721954241550067448473572018231331861559709984851653080903485767630592596415758895883856014354455541116332615489248436680552225994195978717348877699341158044036276289494558496200984099254988301964425952723686978037781983334009655832239315259797400519623387834217615906419656280774423961057981830736664570558353649148084149188968127445738260713209008616315939061643587268823802855824450442381179409807054762362954686341339257689422734911718424568603576081677750706826547492481910864075963760756352914072406700342249079136494874074536607865986072823510911126257761180282733439757784960545974273481726185276918627602334590266796220507378515193786938287697592156444198363897649830798001230012162537062474629231098818968065426068618468265053328964847425549825464186380291884644342403041396034467044538301073844319992127434830190486438199703226626158217529929881069105987537243953265865295077986238607142097534002765731629973229470891928281479375815482036552249775897819173053526532411468833454358258233755866751549918970480530588710674937786042082421917732923866788668971709027377522517153491056692514005871298528740390453365249713350940566381724612444911053552256848908150589135226774085599358875883372458103462378793385136831996460239463179421898030844928545487958454740749147667267410936947552925383663278734286099766798017184708267338883787594403849247700125387879999965339827948713408767860330808767867414625558231388246295456260746758073910653471243724713805422554764889419684145257350314411825465321726216413735796714059403060663432270414249055616081853852004510535415344979750419638613406831050671910768256340385826664407809090803728442955376231624406621251065966264772082670394121726895996572988296277497894467338563808066468139055406116687910354704925774700540541711912561204025937513202114901748025059523111889029020071337501350773853911828296049353835546834293355329895930673499882772857115768607956338589329614162336969751825521116128287001259727998762116796743338241361709571201518414344988040899500743087463934390267301833507481859422587433574023635381645783657687190156474701544069815348346878084860320503730625454760567721290524567358828571816205047269322652493218410084565772416465476422481305514523878403220045522214102664446390558688407659091972787007483102122658658785838044528742226130586517930550148991411729698649659239666826494203747346079786711058776339320227170635755288588826441506591669270308493248108422914679977059285931549157320839231465893652466952298701947126783950991070998692089417664279176970880670534035631402635692098871428949890810353332164184375840798560883912598603201248388207462576248516471814094669341701095627711554711970077792584755444206423821372314322426896329784431772702557797898698139672587326509616375820299917500796049271412888813675863210242217277913279001604197900060213206012597232476693046771552616149316768704008039997902059547986622228677526079442750986793614647242824673762607614655315912581921148192813877016932878236685830158802428117208477858129120649894060331927350947916073101737325151508005649790847628012035855808164658772599272100575449635161536677972652401533753652891323396284480839595524759702103574401002021861264939920152297259139499453961326612185500301852328745548727724521698347629094059345738822764670738304167546858736265635332394410402473527172900189771839859232673013152336673719274348501801002667938654057485701158853892368320237080154544691032714353327462168032486665209125051931011250672527845678457720115462659154071604347440982638048041483282194119754616726431979341422696540220181572756533603804872854093282729355518811303009901843982444515893169954794880150094508225639288729970578017662730085230841818906300727653077996744567422281282542644010819439355676885789605283529554047953600095942718078658778981861973120753244578017290447485449087615789118623781881342040671309203505627293755223497527113982252208412656961050079085016290199073428068065532459475136335014460229251775737777933273530637521067572400485865668815627556857954173199715405099326925033406074242232791259380439943197989778875134085431072043340719676160160948380033547322288281646121197947937098658758368490553280145516677209565209628042828053608957818420845208318669016307165350318773998349675341193997960166720236917983541931630132318630725929892849131687952175945471724830821758859794798124985616114868496172609856705491484411270521071084078212609802522379516460787674781939845502617634934555882968426961170151965140801744511814180791879866673086252107607926445210294774472455193587010406242978858293539432883585150748349189561305917130226909167472721867905186946236867503580822008959177909791098426759549031025356008518205217205076920568890324266892932922502090116831066611314507839292752631454429543355743246833845837048858842846697239575643214238311347494845502430974826184942424266166971608460711396766650363226982798173669819156363252459679980722517788274434974812032628691817742092497327464423371688907231484123016336280505355364521477981639767444664883984165261122209409356317784197451904137021028176902667984167823449966883785742527068367943530269414584361445709113044157271091847886791660812484788374978591013624315028708209590479465864312677842343784119269836611357049919394869335381617452438173233015457068125055391923020642778797413577257942383802791498658427184158449540513322047374057438915743171431985860233804557390769979161878092081206863315296510387246547299943702186552903528132435068807667306782135003869974374156420289836952790380953095624026471235730069757465762336113191632828738497534672680297548075039740831416823187954870263738138827675012201696403534291178206465399164094648498300286206319428039394788685814133268239485006616798322082702109438262261076846016864869879557304388445318654135474376208623865801591047346469027434764330388921705748804150881755513469523359196917923394317168489070690733249647578530953053453120868740576948720608616555441396922766154967747929751417105103712859842304498804069346593197828180075938143128630848393508634929050923244363527320337733283384625888760278317343411262880954052790356755895375627974421937238366568944903810119481734486466312692310498638188876429226064144242943040214538340619885300327831086162243796424568460016468371931687155696691924984493846630326832832442077014876566581777324671072035514264469895989587012414911310811589800418290643832002106591171347327832052676235304622269653154428405844302425694094282269650098428964326896313335415939597751582798013819640681570289363387252883358797505760600430898117611327432056674835320619899898168006506331460008727432944687669305330766354176707015482491603220679511930215541184842790296983239390441220765891340565888496965273145983613164064641502203094696578273858480991036729497889579849633747205935045316933062347369714804484782164226828708629907363011937727157506903921678834300087852565907573193943342682029884657212120722066402910448153071457518307221700882114131304238966405806426518896339636496222721058225437147834903278706679505167724434293730400204689532820592356316413930506076095602141652854895874155244973645797188939505495471985767310767234539417378572622322980169297642538400334834614642840023170015938480965455543072818228402591442264759232660056670953442945779764771111599601391864885156095735763822247668678947108684960752386954441466288698504274493790570255740444094123263432649559925371999193882731031792674073156090893813068921366700016845325015832678048144909974176093728398230195545443253786369394883909853830463418548945165967522146964116835765737051812664195332854706760121578768906556310535557995672847074921591556950910536844906031694563004713387852333711240589965437344022706138500917421017137220191833193938071898593485287277167364935551892823535067685782367159229256596320495253508402556515346232288029517001812625651160670732107833229050368075729547948907495433149558159180962577653564525698360894625642657448008516334560207637563071503276769833396465433185664463285522378504016645692688602812230323270139838676829713644411018088997600974987269789143135845419075331061795622481292352506138206110257459959736318043083620764459932136605865894174564323212403540098580554719369937101485232392322655346064547765446977478225446179879185910720899725835508779629860425972867107637869654071131525080424728030443010417828553200328316107099046927719161984857493364198847665535110142129636462924079803038416801333011026281098232093855287580978673627712390580212107714252246325144820146089182443788982525968504421010475397871185864962099169372043162935775991140533502122650539313438714705544210982673197454060251770084155016598118073285455139769919670433466140182040806225163934362583822531420892164558339144745466721946868327502129051432982460452369266703963582128455242266244042024934507436830731539602397072773316226918075642175914849715226436872620153210749635366790438048995360800031019434428736046852262772205467751281120578530849361388068537749891082700686508538340519289129789870894139965564631676726599883936391429815569962834588238672249705853534177888396326528470999698104719996330994647528165616780368041529595201558997665125967884789603343551347469261152679954240679440980015614113866521191695587720590086627696325432304162446574936930741339187822643863525569436480290581414891307074960348728392091778615585075512960675425113680098601400449334741346057325746228378899321664025847360982893971819688821365121468129530753248726252503151903021824796336822095138445911974336243957823139501100411039993638913898655542836647350872888665486147114105348431820435332403286816253202746235219372044874778104834559251854446963616967193846457361258888632754729223525526662670558291081345400159638922819671990740951721232218232209157867112030272206599320983695612676978076132771701430878495609295798376690388854663926218964755656236135474752930882620649266327864922525347310916109627167854122131216542293285147499048138645205758926639295664321510402380398565750254286083718906314509595974698304296452326813764669372210787475227403136966611216939556920305487950854970536803150822987450514963463071194736300413482966931380050871442985304624277020985291668626474823715843560211624288582884637027044416899177545210221446302715139555999408848859004969557733113419561883315348136251465044235379159251730579106655107807851136942800442621068268271032611458130629191340791222323556756091152912201108088899709348308148480508803842195136326376617171513094896015751904734378010862998758856744780637066679722424439926344281010798617438195557816938696013970380581607954574200826820125264810477051164233284488208193664865740273418966410759630822725087094456539857385600106310966649225872098103469915684042642681706930535832604866049371929683889343137435107870561583233517709623346239436797817828287797864565379444356009102433934843493995178794278256458287138709146109962829099310644294314916785749284455902893474637697197961646613579365911656076045306086269506879589153060036530780308663866698455623234539452089004919065871224564534993919707456160895475378357073355450973274933566282863895615732265400570098990887680363086037236274273469070965681521267924903667185393229249597307138311060136367024272716379369170305204855758002138697330402478197677618383464080330585322800920566483593366539211466764219812219495792569268326349213557585052415569368108683032580902772240344609373272304731227368215634974665957551616874637957343589050636754123691260054463424452771772049361255039788931694551280585969572009327854777452409411126828354025618397411094138590645512793012193588559482667365345491571656701091049058174890806159219808962103042464599892878358710390535679761717466387097864391631116201399197662748159731626205561367472687737734157131450782267501288730179421901957584529181049336371612844219566266333394768086942436931771690961197414753302761315675774097592801058750841226723732827506428287539660865135949186857071012519654459257030612399185914859257981967523982203136737839951211195254394510012318071823965352216348935497486745092226204441772160643423052617675757130576642626974260628548732963344003739104528048834850616267654241576601191669217529621869118213240812883934767307204652253185757275786112443792158663981925147838951531681179186022232358687175768013120343422792846894545007230650732694617216019038411517758572585765961164393472408800132128501519853737252283545183058515417988085354095940171660889041450727675801213610382696623985853369568493810620783156723769979292271431694081091304643434496715207891708670728827178729755330731151914214058170406916784490340457024165673617362415348622609617686784632423474372298816830881991169233001356399404070400952688703008086606205432705686384791119660672101450804013461583330413203727570814635051568508806478023631411235299889306997856761844351687176832233643170940665220806267670959657338864523076235656293596535321002943358556910934695630028199739020375985799445459198261889273538957216855121220842740825767136083275469476776555544774026012808981848237798738241401831147967876303075507114273014621681527307062725702165546556480259934018604311428696047981094157626414666971985990202607035646667866208951252928051068680622668698707591495422869756723848100165127245547003237052337602940293813693841488891830504344454088260643071261840676582901921247084815166619721074184853832381876279240907725974986537221274953859521867642746249445220645669840624509036415827852742275302282810316071735830233176510007298423742317429763801826062108114770807260212167308815595761785724231983259640818530177000555469915379543469750585651875223868232574629711239410995394651009021717590203077917649005507850141976342849478338156644315947796513689797734699466369867020506937818643471600117288469247726688580560682225834270466601594214073541485015967245202138216543816187335918208840710039023638990714387304065858214345113955474177250276353764656221543713296556301106179888863475725392010192341471306109697085604974976421175276293972477931764606866247505651115212968981735085568754283191942526476458639811306579205330994499789269779640805903556889743938340921062338890968602297557921532436370672913164251242386363357143935960418536078472260880359459716666284597088532721645440124371432019081110663976317355994414138397132772854111308481902817387568715189360595480715863880984702952002165788062486267482156367580182934889713066009009365718615355621752802263399283712467622838087428148375833632793488749979579728930626647826916882806408540364017878036253991310811390295003038607937745933175589467403216941908482193316476394989772243661239977709454301625869904197647140684742885936620482457990060419928712368905548656712339978055937790535425777209455390799198835186587556336119593386841556993763540877441748536414021414531571211863508962171697226316417561395313047142183291657429793336943304700461650520740396346179991239038994847265420939429886075159260269215157179319641483532754541096841609945884191022159022135025457741874285725575430502735975982124732050097582108116466332925865289071184663616365453513465036453157364174435570305963921000343085688630105112676103334317277994962405845267080138861350815173537013281626088080997241585186213090368153549403252622517615375955377580965431087995843951825983586388161025972702905428038923243938354193951403343019710465304381422505380132670712436451940721185275032746282018186659400562413280666165120312755848050969827983812466158463196085871816982155131884737867588151929396593624988415825050927334904408190974841831047234344941782852624685916420192408000163350047579323761318349544032073847664251876231770305381349804987289978728222452602353480542580554045475650687513323260942016395197755866443950982321536225458952754536013122883296857687611971654753842150796065025600074441131242158687324038644661103334447981273033306824860454082888552213623181438305912232061725630680819439578778001484509123440973616355759173201336154951806455729619129699886470857561402985123558912293276325495507821157973395506215756564353058337778667533493637263433129579674145088183532506204317390152999374005939575205987010082124099146152505330649888968044490557063792048026830510079997044739576679386261565505336745440036646157091802286579411770111667910347055866730125425756418368546626247077717954831925791397175076327930267180839387036207448981481098300908702490930662134594419585034683673982063527521403227682158691607757915498769655240203820774548816879808813233142027325638589204948664962990572527552063762778480429355726163569272434889715997320510457646465882956456120789976316432780690592559062751400485613692861176769775898847012340469517237142217494889413115184660205831696960763345722757571806391449170914704313506226771970763377296115739160719069317437169622564716776991411004568900080931078327576159157193684980316737787813220589379594575809758546758157488803712540005056420153810695334100222259139717739219042096530441850219757097287188321593487652955243763885314866236151320294613580192967610030530455569244843912047041488035305798630532388796094779029010204159782006433991664543080627033392359664338818480449398377981102045207298529854920313118401183710913766547186358254763697586891100509829660714420806654533313500837582056855044795065659960961542587756014262490720931551510663766007630986261177086659838950036386398286852399245260100883720498685455790818990022739698770658121542061183746255502337616247795834755514573266067016503205627543598285176378087376341774834216793504874508398588586744892031245599670528362276605679167102377775539608732089272516133343544867642023431942137023806791386415083223243903599432386518184432117358830642268623276611969778826918110537513960118064154324019332975186410060500086279063119483065226152045401987347514619586939348552649509632875401002492421736939116347106061040179805725499854447082606313369427013899450630933605543359408489039356938127700164405664916039395909003134518880584776571116779103339583862229461250628953926073421954200457907055624898099468400829056766833632812000459705751030252022337184873990625043574381550982184648015498176401291047333341851611651057504133702857043434726897286083868692316557962633544868416953607469747357361122720833762120118054808749664189619098086674597814140260970066665408972769143694887408347693231107470205390099082016779118795065681471916891746343982738334864641104465697358459248295534185535711936786592641759788457265153209354823583127049250427131120470412219636046998375566299764620039215347407892226441235633483224006549593031851275988714027290670589963346082737541823726277400781034440184521757618781969953364063517614466297490166270457744621244851559056882789556488112980242890120174384643892055321557913844507985964340752227371594107325173903536331668368263652316352671103152373779964410094985762858920135066062424944710702793729989397377134205729275197835619619166817940486147169447740946448883834088013381821043028719402333472750307183521431657050305547354171709341465853077387401006029764169487554207382067030755837274458577977007737803091007529194607410303736798996660109826304150802180552339448351843060073828862071945692742580399140311689319550372791665009763557867399631661207704878752426239303167948740422307791131940986424284057238222815336847471365867429284419976405051074161677906394826724032425783319216354089744373339517652863364764549469729670495667109883917170765309255480230991440796519509034176352758017275100684538709441813292659929457669921268621079784176573001240026865396317212769503133365315759735130629289736585951621792717860797058885125624863781733259653744186283328694941376841380034996431583190190998312358583535024507976732840929428934182843002397790812332832618161350431104757415173645708511739444369093096289839602559451598844460885385725203986390534826615263426969375379353122334643350486731031436550699825961429356930873580727211969569038268585086612334934984936669428011472885573697832245107146551295534584759550286702603827663441165574045103488896054449174916629326211108419408909215239479552787473986431811933953325770917655960660968884696960546494465254525980738319586639700581631818738176497566493578613171424819660254175690227227945113133879949376692647765632196563083555380346469668854263493604757351071747330436284391177211737710150734810065899516756396660443833786821441996878125843479832190267893106205312810132129315521433221824195498013216478749498086664538612161625881076399684584257334192259059848675523482391545536262550285723751559421990110742760197785022618573319874832708411732502682354044858571271108049430703282811870246338713515409243555545964383319417208457073849600552781217349743490343755791586014333264282057416628647673132726655365873093035286749722300286270698166479572797385575540098091772966964519855582944632306243016766806200246229531305962006488080828129847919403711546856154557867675446491328654077871744260907806655769180145535383017423296601949438223916001369042630124125014393950928941309284997109992026279607175554421357779373320651692578188800132937833081910488411326613048817874210736809955258957033402878603772877282217061616369395900677481783031898227421561221887341918969568112049062232374023817053197251214772143488278918807696464616384099147263690333899201826012680020233011630288089827753054781634953079901370313354214476158862149386332681187601709821956498313035697043576977531405864867594230685707841301831111545185924519439620843932910338020067429338694302262073091179230796570991624176563591677248164646970206932936399520532590121452553628971516508552907860680628042879148900107066333107239111037563308483617496679206601430830082587559470885367432407740912628517466844868671989885604911822178122860052505678336421808366191257185413762130277822732150534059596578048099836979348456293038203042915632558796644268221211672105184820223097489119408772637174455261212572373107620236605636778507246216323744189023873405802427762963490396742372321734367688870771110504440221586234286589363134148009795813154482597933878072683057396863157639554621079878282937853346326223069668883655836642893124912209205463077617991128685183785749539482645019438720138750406400324703579659467656886617554534466810693567836730056853225925918213209576297129789663252832735473203501421578402402804422758946073224407814551412454302823854351801301596447380234772629494798263658991520026062150931234578057187487833583403111217391872830481235360982266386686473406902141666062726751540037705205309125888378378185026148697720916293128856672669465960730081451261419438053573139761458342320559243794636436630434089387796110035858375817700595075695513578484321981632291898060106514020125690120165991470540230547167545141176180453541146559310507036208182560139933148360821705050340604058128138279727435367946914205514094391530635246058979733275988259454661976868638836492559115771235844735236095377814620041749701167182875422132846260191760672087049918653709347358634163753199633535116582480251767029270815199265095959770212234155665718264556065061080838685399836336574448945764748226772579246614897888793833476469193527797465618482449714190569167917013603182878415231770500350025118989777656013262068130773163030629815385144172910169020467283524592463923210505566906629377521634897155901748627721074952821346419920553617258618444713432738668210107043680575037535060610893021408726735604760748616787908283799002643948901248254509611343879206778708582558445391591168333901726414049296317112465748096113857144523941671073858855957702260009048435830943813337339754378460444422288612753040074381976969319682631675505220740187228769052701000905173169433642834659080014549900626397646386339682098359207536947768416231835285838336686864445667204490873683959434382920485861764930091641951188609983801957874013148806330835213760581870987328465884107227465929038066904573717486429796771579928411533413700953962975238365980143470686988625366341525173283869723055690580661765638705246232657802325648272852623117256815654721139338282132058822182584069794261073389077446937302996286766394129417930372459383973113989963178653478602996739774045070863370939967318060289501290472316769913052538855667765732831953489393287733057985558284860811952202682825529438199409815938434368800269679176602083042727761432798736497046501909325621614423591720487359775449654349781830959093624952160194568926890933261515553377455669962871053177844751680599373905847437762976796163592829968930975616013469290315726680131563072327166513047063114612815055529423187510166156120010122785536922954702977098429681152394633013710891842791900612811880415875963559061314733280998883880873575340075540757415764964386559158527209931945813662137082079673517065318257087972733875234155934675053479098078429176496549243898894130410106412094681364559249451977438229451889033711433586821583187117116097725212160232959651700800643183442493918992650054383270478586709425814228423864401383781221913534070740996347126371698957806742815703761467784285624763983333803392033402638308873140972703676039014533667071998773978919401129519501106521183911787495011212577783373141312557969543424989300792342875812068768914605997030004718424130097456604427236724207643930768029031054172748962297867320012309857375948672895369571435323332718608086053729636963037118160939098438505626503871521466436972492923708288160696443866789367569396668162043377491763644003028797087479708735720800146970693305806962242813438439623262023022894583014930834314553700101879758245818587979704321701253432994618294015417235720437840059937243514135119754067467260070169455010484220260018827177744488494920586041178235667218968427455960731896987947087467276025282921958744323113432934763031244296223853064184853196257675603360677553701815550839783971274520895030399055778406548898751551606301443907523558705364066380099781908202864586682482665484343513502021537114668916172657112232565352318349927051777325188900551645779326454340295526323953379686330397281507628950428427709850814175127869537905349508937751460043049231492917086107070548426534505508849866669653571769726812712701081721343785776708721710551234250980260671374264111704507013502944830830637190470065776071631240089143355399646251789191270340901551518153799774625753690265862301148256070677043061325040595616312109149836269026367178347789636091263369565032850361209912313414119246154346232058903649732902182723443526213399632736619881325041934591093449215534971940853279725763973154190638037478727747136526670773140881146189537328600538527382548460546469205678933117996722127380674367645132413874478975598496501713525095110284608945036916169636590223125143133534641753621917921003791629415654109376963437559571339974397493407925524420025397019047609530257282884411429837186702547747987815973565291605032444330476845120393873029443584814651269106114681901573021574872582542256488251763119186212092736421058923388448493367421494736460225197534421284455355257818298283556399698137027409659296623603284932240655351109299857522574868663153621627003360910306903336599743610801965170606800490069041469572688238852114156123562096947205949412386533945138731671554911657438762496643319229472101848344305538184199313657909000702080876547759874050550471633377667441152242989336269571683749480253873653556549239309513630297763120072408986673877552575189675896487908960207754752620984811439568726421407259314244017901962599200631437713956921359991105514796505044744058266269575784476641842603008008198157996426330826893669104254969751193834448814388006418491372412958726739172761213033362351453569644048121291901477705380717681726920732441468724268665567435606333747588300759711464760774613042954799947013996620709659883525310834694058636978289885586794567633585205022211523338331291445589229091978468550544755180421709462714813353594992735826708641425987714892272211070784436952985564980947247714467659025707032031786318568823291019421977625938974401828561136287278307870324455405101121534114807490659579941862255310131919081353326679004777961500461620293303895051649970394794769318683402285276220896264362236832106368729600840651285023907863390917814548723434864348885671557153189627668382441493460405518554904912920236563351343451345651510338420439644646955312901084267431107739877550873159112591745845688570655798007382403623471545497169660587753932646750320739202490394932686436456648392157256820996339011538655144706264627118136374502197700277101788368525202357024972139351682689892802485456292391744747154839231309535360988714382790669865344745341512549517319103433035489381123336197193525878394239931631735071372170450617976057355563777656809861894047304815132554857431552066939419938199187861660834829990552866724476569950983925453449627157657524584631454614059163486133604471723255995715554393794323202059963458282318510519401139388941712777914817272569617981858376485863974828265187378195000498363702427918482477159024088923949467565213970803748245264630301947528267213989360931387940928073609828913603865268593592221051860352337050045576224380166902097788013947746433548026861903583259930720393090160910538360694066746989716040725729087271719883806171433852882778321181136469151880422950734604544531207184213803755168812568478141730939073651140047173357039260750752562413676168478344828559021708000644729712509987617392259103237707566925750410219624575537565082806908799719635237042485010083978073729190415410713713388370618184665499384708004491351031439744858011299772515573161962066172576716498405662403200049428466653354870289907200508638685435432073822877376767635521423058252240019106426153791767963452231832914944067991983211083158356971707319489439473534428478126311970087559492776387955415091103970958900104843781542135921741027084574354901073619749171080318429486567728347084225300597142782374609229950259580790293877882798375177786017366535395875301572034541688312674337666805633658376128521890179943378598968095027351925122889232713189612344398231933066684881104725810444579020455998442348862266628729353646882165686741948656901151319988558874916152813056448055521336227468701977224398182645563541037241832019984854517089448899496129077558008289909735552115866431382496433982458645008466994969386696676823300937202763585330841550126607668059515308268698977553997831672905840294375721807960437775935443299384629571947551736437858115480655383871760690396580195666955955677588343966876251433542275986096699199430249508776027459486577237935077541959299790302596502188560116725425167855766714489579784621642759541620884739204164650309568569976852471198328167576558369184794129446890077580209106639040897880346359540400072593343011772440551812330259812520723674992229799309607140265318941702741778708393292515837603568313811848878576045636267232541497772027939078067690014801070816619634835116603804985793342881092296897440346511425733735233131201570836810184808994843608107733018177411324762482204840852558912913517687441428458423564291315337272985765396602573573584854757174886113098954431073571643962832927526834794792478815509424771447280233421778474379532179491584045794035147224927496678277609902189579921809316915934515730961387440366751385631584878492669861404791579139985803625380313983398425248486528567029254627023607389536714433809685697329790755937291002537467747758893486709117861152330774976123646144335505183287904248455206478584122281378104468453498651294623577697472552535568678773862315275436285593240882088902143332503958818414331999335335021736570517369830656814548480703991620041413929295171515544000749687745281153600560662000844873243688492158902792114741524287491393615036435988056105965777580686737422991861495771382604775249035408626347985175164213284683868178220847145191977561203442057003692901693898888371259909213604177111116608538628513336162241594737092948880091257790385045138476600294782457515419628331984417408516767561895758986000478627510949384271587516964108980208689502018242685277138218519867196959012797955100584048973392292485395582109814466651854654553025396312551392168128934026228297153502990128905503449802907777919202930458536034633336362534093660451961556099836954380579316926953794978798639636810440428198555858524286023104655622907685888012257814256911002820507181879344437973197806064563791316838249381606743969129429943091613379811449714411928007901665861918127365550370615315004342825007096058269176397434896823210071526807949088679549045068937599093917527847891460773277643228707043496482301290363609080292735445594690279150211612855761294341636720497755042055956336000140948841309897139349393717947593305545191437385135699036288011057471021016776218470632996871775408711431059891290117645114391293806605171924989861335465785078894768741642501716278729258703929321332491962641708712582683532179589290826577467140382479066065177011046942395575800139065217406539902511016580554213944926490478124011939200012139391789196697557701847672914656741305060451068383059081399666446171684016682331129089678458740733714550809146573349586341846960353267657022081345945144547303495402602930218817650218874958891844304948522215763766203561917319982598875027584935883820400950668712746692197471989639637030452939079174396794650152578026410393457157248675640677864272362388197579934592261483441210889546872503386429560988997127205458265029038593605743191003978148482978377641754736246183041812240873203221370275555488703424858040255517976700101366644149750241823084109832808329526493703088199227290108833644638563661092913232829506320339043760756810578325600122309141035471516960986602891553053567317281516765250303192773651570354850582450398474422428325731368063279209099910750278567514915654832152225483219424197878212340990000503193625695775458038036803500009935559790708443890569737107494801981110179757517987035799203618278007814586933761824260745841520294354748658015438340995299975855070974224401403491067846386433934756204626867256499373211728231172098509664489060428212526327890195585647595617432039505412417336067306461204100791574445477647637808765977778481065679241895320960955523040618021678613768820979694274519656454173588262183698065998221936664008598096590431998618084753647873654068210149401025140274022439746781065991439201629155224492124465172960453321740895131380150107247717310366426376444410228502702477232515373652288310321607240509998922123780140870405875441850956283945321719081010315503581591308725252865301694547583226473362355082634016368950186842537454003926572840753310899820673743240704934924110946932499706849710844698258169100538604951491035266884380368929200994128901803903686965173950107849545432426850160593181405672687099196428123046184699066583022688920408342946073174446406201212948079031776461150208727435295387096482402249760013903402019621122031291012154560220796829494949184030220511677185173229880518098240766528439093784928874289529089826910568863197642619233424864340977486992967212382836082950898573114146572199835167773181686859646325666194408620744924053941870007263581766206843936802746317161271718888544246196838829416178097534554668267565308638841843574124481833272004028345860071370683240305553479156329740140246331074563953698139882114189108312361048108948826621124257885695081051921486564481968500729782615736571958542415888041598441312285917434867638970027801035222996400732561414697895032141205143176726848696667214602658575505070750727373050242468812343429364664001855773507833837139268040937656465636925059477890306577586941578965896526245936430496835375494763173660902993171910540502203284373435271847322641806166325975987896483643504570025662074188584765314906899508194501717581172856644849612727534008899168040302935336768742293462257810580942359268622480820788126871728717117295547752456076348961139220855294884318264546021237166766415822286752027808417478331670919328616528949815424905683117014564724048288565606897500037936534929895050940924831990150213027534657125114746742421573797116365609188130511832114932307289206781025003995648334843248476057891762506776000899225035336462971991444675756888339444981205356797081013347008425413238033397244453445962655735893625936931535322979083152998908685342783022750810335976213900917834058606709043910159915973147509370231157770414259876147570296709088108278934595834154153459478945850662454563965113467925134674914226303287064979965131405949936447330150380169798717427384171889344728701755144941819877650659593296763605462551971876043747598310073726270087377061786468754544592054112314079136738595987872783588875259303344097888508085547053000029441226315991719795346936698361768499818500761472642444998920797434879362894439252780834310585735196535509935338577194331975095020913584655666991111168789785860591049469442917856767078928352142933187222913236891934804104360871584100760874014034632393747472025851557184556124822406796829450684990995641865286701949444007220923671799497513160607821723013693957339136901944418589933395966880943949641801595366004608708617399356605981940506305558577349207610280677844728626890488397045967860386457633236855901090001578130312890656390569206519403106549936469052030911677427204545043538353101054266835570678714576147058347780835286827922659440009489101338926198910301879635496499621349515819580089995908532857239852999778229006005112184041778576398855941613993580292461529313299440099460065794480316819014027330376998516895816920368069953739524386000881243045259606578681765339739425636627714566968212679889436389765217240766962700490257098753353256208492944798509094219355865844924835189438531378338223904724087996693489758713220611800326348718517840803036460385153272637940291556706123482511507891705092482461129097514988437333950937981062142914685079136083921132559606924672228068157641707743603514614176211116080121290184233057532748416138918673049287166905535624325220591594614916933931417531072841444678691865709775887149637681406800982449354204028391838597054481045635834605330048729778820709579202894671111298359643945719419191095907505014299766947150230901609939774869226706530516252484675743656479668486503957357344416751841726594319579477882798770333539478295850538015928171873335657176028873284471691587632689101098003059482459061051606164101461820602130866753874006457518092016598648683663217020927702182752059630469713281633668796980340362906190258850661052073676946998986417190888481378693193432509581534514946283861902269813658396899508188878821782935185441958791138339157596565628009531820675694533640637689856046998223568029831447101022540732609285345913360998284196538650617900135555106677658145426693659513440247788158663473152280269294024253049112251382354418342970485243069847926376600509788129631945970000336418989347387377883528810590844864388191177918552028701949645264690154985353109889019211246654910012577949100685727131226673954818549241520254192663821693178420205846862768176057260045125445676951968284105920930062129896885093821556792625138418673804453977323065642062964265105792560410971123696604423625636763130199707427523346686610674584243377042630288617353805022383694858370872045334063170815137218926636387967507097235104741430174990194072432315073159918728145730061658432911471144890495458717655571449949910151053231121069770516083458499795261871926512168070436158020643960167126119187974099291093753621810795339027157572848889276438601959240391167409490989097766229275542879203829429475549459523124431448846567309039442398369983176234963529008139773172869675983496809967942105146177255855843484938191622977181905906602525074704254159773139423946451269519203863411118325843855570850385729301324768002136311447570301498838952107091287035284757678268601673238140433892683100767555247336334362760640346983636447121332589308315673957150788794188491195846986868699444766473474695862219299046860370900620739908003651237050562502447234640575034879966555869830108206065550368628464702448331229924299818762451756921624857941176381894374747503112549060445272268624464840441543008549847743275920144559484706783661130331800995420230743143948276461218754623282901669528251171436960111583197852385187334492441209058263548788167799300229447839361039969925743706927979019643039814588275381046603990307692096896651259192689362222364635064659381969284724035728894618571553087334987936573732663898651071170980337537457845203630467613174948830523902848993024486010116166135938293765100733671004243477360690929331277820798996789837173048208871716139770172212695555433454058589386312436452019266969435089745619157302007079998175834878915681073880003972708637780992713991550652777842685558954045669600853426487561327407685987394221984431078467044402590368112770675727170433216874144252102471318074377868092368435455209569913426929656130193558554078301945482786649936952251107760862647232465727421235194013223712521418633477691691587903868574925875208002307853530352807169474421272537754044011288704756772110913919119509686781378527890940663476991924294731293571256865984437403154762275130312295581247348707274317226844498595200357798021274967066736077028939942263577279285230169768334710432435389136986286726636174938017660016310854907057073181902934189905248265872165378033142871163022917133633787530998498972782125164069898334899530410098533536995582960594042675492275915850538187139199984752771580204029382037432765655811707949443081879718592296192525430152721720160114671218070789056055914843603678127114998207038098311136918589413444453683659427441227674243400535741242618555594184708758692556847907263096032298593211069951726783923150178248953494850421254902146558665434439468233450072433297275579310815807250699988444341615919374855721911886998440578375039805515508523988916877158305242362790229684200827594691043907608597329176985539123940683806768097021546708372325874608543491446089653135088894859585992877086553863421205840312694848239059475041180196345957890955942636172410369645681466242662796543864589507788640162392294758171603741628477843562873130252146169583573162126647053006975902373418011020350541881626008977179176628120474683131926923319911771413983429613617558182539134031484776369585974345207103304738957577497423069808158947741622503740460462217186001174502284036255411699736265403769106615370124639188669794635665015276423615457764021581769020575787737217079626178417287253999096550960758244787198711300314150671932937175268015359643746277956904208713572563532185495135255758207045548286639949454229901833897701650382969541534583011150727517735961190116407417847800106241719074726704088740062373911002152409169197588621849064748689196528910056861232594004097236056807475928854038707233144093665844759055057638489098868437165759654876493703555903615488642095598250960248799007542515213471964312766550284249683881700976103556877958897909711761385775756724191620808400873932010190360851549824639287602714277020679932581601422451376909208219133221006490493177896377439070443638800561930025556070769785835733741502773918829259224950238501024908967600471332514097901415729608937793192639088769985943690575863221152008607979819451939402396892261895326183581549580293609297422448763139991683051190042062015769963209932009738414663695693900934282113211692030821107646285851103072832268753987718944871826898467912216593431127584822464082423517735100597396477945759870097469668227484371782705789092535973235773876603734434382253109902433396051474821915958795430303531961686639293198762445149460673289277448306725614010664663371716317181864957312582377699267270888220208910761610521224687711941121146906581742995598531006532560204295728805079923992523798852914182431189027321109372672647739817157337393022089764077583537637717808325971122437697719463326043061333925118455333693806746927157250309361191369617784138572899289262505666526734429617233599852971476896186523473845080257111232877897225315056599218108542886212723928480264010830150569143087478341206930352574232090887570965719454854160127673713654072584759281007058847303224287576319560070263864296229942662396462216100269187746967532556248814763770345418914606964653496470200975318187738326369109552493328534252158882160615195792626753738091957639504513992994321178807430749365110445847594466761100959785447811152963695344322518315575022152638379807757749872408929728962429663221907609845679122155993288399744012437626207478830581134162471714764202795307336940759517947072269336370207711029746385136734488082802103828451026713632582644902059348721859186975957531399924678597779087440534257469183132488492784320257285450544442098633369318189543591710845049408125701039424911955902243376853429655194629831493041375885646110568403702385469700371533454925186252963987172573834031807070440262427943703653550348409852285910091486240102387096688678508272725118609695727137128778343099304408475001661539164591774653034756110340793426349134887256473613438852825353034475778785600451813544787391435231495509903153333310477589651181551001439162591703432249001116053072576492124308217130990831245670292541444467170003003085887733695555597520785020225814813503533350050875048176914105623755203219036654677759287138288744920135826937216977225230632715112589042782457825665313131860894099551410289907372930836073531744978483721953161361245286733593928213586813099019397687266071331835592911855941859089948813275669558969565266248724353932393293122296998704919183203868441108795925091161418442360519231493554056495911524753093156893881497053084508987356209504644782505485443012353132819296049783109666533290410717167476046428932757919812682382280433857047892948900688294388750704246550034156416321413883742451427114937891115112967250408721023158704718901082047493233727965607191632495261388908825497851608739597641675124731716991120060796620597377924317346346818804348322588786745818066546002459137805819685953695125936224024009433537364493005545438212595612829083703650568236596212905158314662501443254593359568069497344473265537324677033990633116584360758077627445907750173281876955148414518248169502510532882277467793245794361715497447439061392854266946994143181526935423038525222179612662231519487622867568077503611764627458718724279595586138723893504167258547298945332075594835059043377415935307560882396426689230440518122407109765786021650950526929944269588693954827055373663626495874873277569627308967510032327685146035802823794102060628678969010911239926707777852797492734135613471788848621765263074722651993392409025461087600202955319657898344039070314295334634136524158658795854981821760970220018775857155601580634101403816375937862427459432339397980511968911392063242087214931253222263962325601915286182988410142785087314896386424070424179536575532526263975340872307338746129703354749298576316030005595983139090720567314350823719611120667747580860587131942972252251855838979114176811081951145666575390103388912127173791166155204951966403996267208803293177114794939789808911648800283952255701379096401601038686230870243664147741980752980696039086085806324620196896004626026514097173363399514186089191803354431428980426665076941146863686260571453540821189540809021225839809398745434811703405199946695480118791435928716434025473611440503660062504125511064410630722182874381392928697869235177268893506081365770063234053501822365534056009323738207660501185977842296785045479845206617000142089801763862258045593490743332542746316307937165498946961071326765321519508066716868752923400907651079661382228356549185290243193516811911942252419962554577819009974516002443327049866521778570257231129025064401463655470104775738258520960197313218774529327602105119990064092790180544942996091075967488226779733964060906210115700622386119845111947103479270481343273962663524790304960305403382839908639758451408977500091546560599143243460052639597249288671408034486816522728034662382713792622314917294194961748414586281854325786266707603693188168893032848022545665342896646902563502354620544427759077046901017926965926864593950347054918205065889994540963467333745276012065975006532068502413625019391231614630775083815700631477446331081453382072714295668498938413176611622779266672176363746499054698229750786924133601448068679215634369288288033385730734236695550606252030544390871573075842933063470538883288876901823901646918620366482856479603658916083693049177917183459101342648885465862975950340458484741705569223350688028162355464711933057670512410601445149340898017346364371336295898074839345155319038941952695198459949086452903463671601973137363116216526237794274449474101441131967450657517823746023882245666226889225346556765268974479178357272052901293309130691988927863578918986340882236420992744335236965200940563223131512624778532160725358585119564703536006400764736665591915514245451527620955450650776423273691851602351064870375084145434164739463587580254863537246316073577068911587045622481387212279867990211562493222199037344391548871343956396098506173107301241210735235838293945912994573252224965965916051930295052123820011294534460011190651825606945921399247336485252641530577312570749442135156802165929290415106760703161613039959003928239463318329036457746607496846581742217647900674655780506241597257892030178936345145455106631133985131417076189122806620170685372936133819267343960051515856214915750961678791715865664594174627630946351630103718457511660495620955272985124055754866225458891018804554262600516205309583181268474830182279882746647540733355430212961426409697842753616188151071837737414580017145847788816234038419500460703138671229567893850285703023940503007489841218351003540620016884633501524139887139394432656886856817099706249726527906260950196850669910991610574783285041951860638606408224640726281878238155551701487825440408184276885354181205362514935486164821087222612862871759073734050220590378624289370197271549546359116216240096139808730238583178657146010803353706029276751360297536158927980320359314776402567598627974862064524330735215033768795222400838334151631867135015048083540358581635515831723247503666441196590434641874030705013588434044779735297178983429906013129436050608503369612367907636420371613356759936304370587070652318657443842873131884168813426192097924391006217621638828804523130376660960538806043520793307287566421333297696428787555728916102842115783753599849913567748560414459544186335818711475312559546283646732539564966521296217698259053789673197956250423978928948030548843305246724691316685386224517738189406716080063970241678480321119874987681860163615892006507826048984148532178554466129485243022758282508601108822418994177857371924685834859347801623631856467062162296240975206285652640286170527702232919890145381575251254730746707755304607139046566134124769071703695487705664299869387769133248829638270343518559617585614508335644800050503719334565290103086901711381701182944851565133771384341398424735109012707652684928596521787520986465356217036453165255556094652430397426156278952612306198625544423064074041028863359538171405980840404418964795776036637853107751834440586682921706152235196591257146757321129055588953011498523867795955934272723827454921852163500739088475345822986841074774552485915506786416645930715884045324444073049658673489297178719444303662583566906336627178477342044135642369060732925449702036339636885816453775822481922874136844774566105920623191078877714836099136089382837135005090961318016296837063888171411836191860884446847357816249953753729468768662576793788708855222738698883605640480270195821945152727353803855308504933492035607838819065136932107610170489289050618660666122566011458221897913185489669588033681726660514168634987413984868561089261516725383142647034049109707351760415590065911997004748959211702583234900618494039543085788589073677733145648845275338768998514981240067550638544126278987350341885201450453568470592029327869674794513536409676729017770109209707408425894526106183216708042787356216986585026333749039696784488525858357126432493917382169508191104573138938553357077966399976783585044885755729087712388555313566695175360019366387675108605079125642532862672437707758216335338434080190555824558332951070631652000350351354954089703496178403709352202059214936359827839354821262289105403075280235844048686216605531456377849412420677438578735801805203843859124277653382895132355475907538296693973556356763841869807206169484047555550030923196841516890675512178660650833792535393984115106017897718364851976922358796345253119081005792298467325631322443274313427074220642459737875212720510201106263510969122873865184065271177741680101808628181655795016001694549634960271558668404598679722717222540219633563154769745305404658506100782035081598218804556707761389463732851217613387330571269566024089348802414445953816649565943358292714201061555531654633782432801548129431795133399100211640421913388111399430604778887718800555280684835783744469074728829033541084343739364523822306049889170936857664744458716075321781815615696161142636122947620770686630891140897601891508435887144002489527863194228197699246655574769267705113422436351271754302201943448166650086137347456076024725233714791938614326009013807591089180750737804869716324409484638465445651559809738813635140213688189343435894203596228605272694162258116253951504752365762500041580033387422441187918210025084063684392197086445805099711315529185518944035829393643367728990812299014376683604423775279260889980116300426975067361651604050366483508947876827424349136572408138444294923650276736538331223154868019910650998344966634176757950082480969371619984777062006143677247260672692299747967503705920133850371124911770761078669358909308186959735412515480996539091609093901730177072213159217748533146606767468619725811533898668996955483138369503798240519374907391391381455752798567235379941072352383425758143212512184602632984320788069832764623358539457782132666898422227523723775176462317762645131652063929246439659258838972119409934618202177575289352941055334508855602862875735193030578174852845844166684342145191936780871173966661470274574915652889437292587964401344784191874880079409790974763554411443642869431363019767937011914124469658871431251020432282619495789727669221658251572098020683987165328839415388198356986031200403233793924048485194249632573642478626061004116402250721653078466649251048329519618976295531599700401108436578002079829509582869112168619505126370369474635769095003260507101584780460930237403400966525889143125275788317536129575491323371689798162392635713279288084152144599574038862561594388204017846797716088405119458860630752752651047358630111774969366872900185662285719624838845892584942586981131540598533593954742974745073997100446449540279637593883960993112547596114097331016646527499770851101435591310097954201848375014607151929971879172597640327639897555526059028452232636116134874054873764425887723367550611243579428703519112791217375366433443609530463991575135313157473960554208742760262261821826393540500917545924143434856857531324860398477930322296543805022868413514190939320264190073979632586616083573018006459544469604179185183844261573746111086143463206427814984426646245597188921819088884129634810875281654370679621082594597170283104423663019585782631576526597674844542266441148598341136498058124385036492361922394308932767630252638347386999435859110974549337121628459908157786190113962605067211230613298187238834832180602750968197188008885598851363553846340246005285584071265245361152667870268387422247316560461509483872912555115961228704540253707386599353608545843732371224253788889023518898266464093298709872823436689565108797764261883511161864356547616653108713535279428592212609744360962855630474821678971442194360896284355239399834418509524932702405318917633612720892354472508132972447342017263784583056019212286080843488987074329574163045812916751257615674361427347318157616037856439768654129865447514134518639282449290859803059253214652316259392889010286689986856385029371965284552396297992862116536162540806485985906877533456269315007260393724587695133466120317870250455814528024673808100320576973287843926620117885600854351424370132171479987907420860041401199697077621225338381554900706419430989372107917177987186964034990161310946513308574382944254165661362567843404189465563967792704175836892236542506192136474820590683339474556346230797202564762159084727745454524637741843100089508987592350002276603524988820161636774345798298375309201137922626903006207613597961598695224216544689938824963461305979710658919561591107954209215204988508895517719496166480735055360895201552978762587058455153534147733661894926951597883666215668579205594658081553448684343649184125378110764020374272490849357797869260049255257661823106402754242467715997541654320823908737376485798789927391520060854993832209509298336927047321512161271324595296762881970806579911298380222788486957894524794373212738571890123821824441583069493077613196761686548521447886428917178912638048362798900184293449867120920406611051124130294185115636415143209014022062345952111322217839423770935345427267675358205453017403932267195960497118696522777840026897965636213363307731405744878562251270583404959650445691553146733252444521178153417466473904422791563599375253005273233135030625415819469894045642554600372914368816444161129717552474280649883744670770306420295603832470932338191442023741536110690835957627398653804820107876136012781083903312604502446690419840247085691653563137975611445124507982594112709932225683726573890059368446225258203563923873389024222383904984612580300287318451935956881594218520420762897724504394129224159100229679320567720328617089128636996047006711540427668366757831576092126710272978847038673040859209966898892669864446648713923356754176771523829359254130156287597092779042253111742545364436083624847105510955901781881220933726807065831150223217422641432698875155241358986996298083269582510929915643194698769358486191692568403903631772053514495780385216671118142980862456092431129105799811804506701481489846618333710155537539433598509399547451709512239925335739254865391809042219680097927091459030785432859507824861909016809102360262138789195356205817538657522464333490707701526848938862641592822308854836711938345915411919075662038089056790039593623918972546223936153215341489428264351317316443525842024262271765142368730436651209102260382653708473853379321807946079485239894220138752951100768376020139154514199257127888969270010792118167661148403894105093521582811710683522081285538138687234099129205110713850901891884286430384539528656646699292692162307830055012722681029866556103156923017166676016416965036845928034874710236267456004917748138674403554093456488364221251278790660311827000168101785706258750831584057753603759164928095667088271074974178011968981621930922069410447516157117420986649244651666664166175998101159852389084968124315206514314560804962393293493686271595679185274571463134514597525421082469144812301800995408289455828306856060093073560196324558377592942144701089631895885040497618980422620771616838073235274530977190212135173626783651796868465608684306647319527513314293772279211225512666341987606401733216396036118575736323401652466628712653390016222737509676438388997990370718109199809571409474635593854953355033976648697223018597097654674084339641566302162008079709797128312284724335352614418636709223773515837576280771454111478844992852984895305211391168847124294034708030700479098256077884946476434637813643132903180852142073573615304179657545159769587355441830875256242495341296813507819366468976683412553178705774929848963046015389969477790851281001273978955793747523364928325791697568041047364108330661121940795982443053324661579696054184092060763498443251017841539873410605541579098357209921114737564009110228341670856742231916549822772998136018558713971288434455139875702664686446393345399007363066950872365678148418776012532090067917656369298070246083119720790705538872804658089613120731946998670061416045039374675079842948910960939522531819588946247811400320256765064585657618411641549110718936902692543444088340326191236829467415033729390462029485142621658987593859597815542085072876058919853616047517590734702030456893374599623814424450490268438638969559980757990084931826725066583499462226078414803432951298888268373932710428697794499221532608352048792879458863946306419869978392341423906772408454046265234208120309470126722011705179896744597191075782459174480864079642357548270411111100953300420184842283938749728095326613965339252462509955610137035027847175811963640068055507074257497844345926986865616400856262998012605882652392931450655287500437454239464739206208307926156369221545848118671602715956997232497693807926201193962497302926667550271700462736669574364754463571758841812751375730334911872523540621226427416184892685132662443781690886070136431938888683290092149397525373484906013844562774326023984115931816300053366680508319361655400014635407080063454894068367750347550913897257348244425552547891446821149018365781784385973552237636733356125086359397505697689312009056207759489887090629151556073325068574161787283058301340502341164745973593014271939844697400794587870143598270490342754772587355693000837129534443680025903352341849247945992499375756106503489352464919877977224771897190024483598222437930967951248911235473934949229428817630897392879025936865378718431709556165579424393111294751286567402574607645012581588132979863402196421274679773284227153484481056369993349248498452584239044660991837093041000335964025746772595641676253608430028737639001301454421441004682742984695028417478687829511153722219731364707064054054165923685258433878988021159841568630259510259505304420909565101395261194841195878466032355559255583401570616267948834634398864313440546103608888317546265085065547733687308594949883799097172269401695687500238724935819436676010766771781088069676120857325944861660887625623314245387395967305563755514215819808025422909866806002827324308197761154080080687014661456697371160675199572543104434919649978781879032845480480479416836593341552714015599416748421192896104981391954371448185346593019417930128332115144367204550227308904908611693791934822845916902662490695280921181876491373451701843535296375928895758605081793184906838533803440916395008102252615970925039640435586628113810055276372113687800174349994676875496339452129560616143686786367627963102571460582595765696761641709869225658015363286616115374526274849756917466366282078916967969279531151450539019935179401064493679593387239755242253769580331731278633219442679507912769958912216671847260560515921874220555414298282941265130481545917272905605929986803439059411959415417440335818557760778619821724000628574158953466020866982961065461790808586587322402061568553709284344180952169470481776808031985765663544656828383202232371594843877964735033425513057992990860135853289514177350368325960431095416122149584148226506183910437671636253289449730411670678493678787208323067951554417477710537264554131183703754178788768510937407524641110450606849188206582762589788172468506522037805136896922930563339154372174033037445337692880016254927276803637943215036480811750700741554796611874171877646738128458739397314170560074508505329878620652139385800045432749879026222998938115393608245666385199441955158352812977795429018434023285650720369642969980092139643622888145252449655622589124294594654453896303596346696400570822407955910808764041363931052347199962168292857164745359390393988655488614850085137101845452559699669554924331892516212726055693309325535825732617410886234569255207932696980816692335807245280209802642012458334112280086420199175873537745577648722530022102580334289885134881427692659081403219873590717215004381698887193801522291825032576895206820495280491428166600706952283563368667698045633478874217748489907308169586675577043875011052088139164813282183276393920268465348949532881444114883883205608274649224787582904957539016039581159115323606420381108189628610329976054490906583950073711512353679351567302812966064124724149542150080271136818823644507712769995037302780855701895910405057007550145251451292061619413179580572730074589907170958356361814190671815000354490736129598731263686500560029687070312697552829671832227440916318690191340154179824243038928676458565625372816435116244961537958741448537409310148716529695799364300654536150689955264898565285951358602998015475572702280928551638697433959894217373945066262079992521917294570310387432199825359444681929624149414756265008282335419902831022419035798114218432462758724428457524875251671632690093722576300084899399636071969810760319335482991477823465869268705536975983190359826049474495125483282822794757811497928195349084502565526095662474950632488241644173527023189539877993715371428733584251649570011551218219544104845661192409431385532534484633934459428700870193484337385136613124485523387486701939369614745872359882753588491797683997268137238679323282295776801410860186397413434288652069645182895656876181311921225038178438215220676648580425898917830658914506467481156651134518636940855382524673739621056737086760899136906439270068500870177823619433576169796811338150817411157396877907032150341955237614498399213332090132565838984016173921077037717508324911336249637901638929281623030279970539179719872964230345042031987104084217190653414614249528283766075283315005796640017241930154263978375905489009539437383029266655481703602978410291776417283052414516924192187276864657454621399667275576390639866525100368431328804691113662477179291686984545219528508893758963881793301198280436209492168802241894747986153458065903384299991077512142346933455193088812466645649622980168506218278685874298311110091543388066857558259707491112902325027267384382374861600809137939301163729753294363077435911269518834239498415969263872477870053178284314511445800786983369136043220668040278642750176967385274740140616055765782766812614849844236925182235271593275418668948482275364967983758664559781592560124398947649253097928370722572539029828741441362477226299615997305636612645332624519243839983014260267385781263733023751325664298682831936022556011507761013448259301852227464458756104484693573979266597376176558906802829979549546888444890391188897579224442208375748604872837135168007590843751480826250129463858811480112113029394204465981212699193997450714457289501801543935934841662554787391598922878673252216589880125473858588898812952441525236512388815037383167530472249137829943617212992058734334256893210002548084942957275685688517234645799281087814269622049232346677573874921997878486687852939726304028151458772878222888252967919210007269452872798745170818970183198805306973735745107903063490960673222517245638971179281699924630266132047427588400853745395002041608229063343554309634342544757773791795393036284931670423714920514886987510805061005819924428624079096364548218008267488775378210103200208279902735205967116951924918576360969677788268742788735458699025798086883334757799432701123837095719307970769360178153836431881089635074888089213433179007938936699426459655112264250757426854519001798248239344343964550347864445988203172314438227617800434551987413611794488881073809274871598158517711228106277187981493380300101657760554322388820873034199510564078764721561761702526731232303410865802470074648562922173438517494540956786715376700619047373261842844852358278291742596991830800913292867433002913008978135776613204109813819414286222462155956080905703391013424328027874400472158448535144728620537414108286204683396020465555214744474870105099965934131956077302024679807648668427126985405683964639206516277300595147033109032793830941633922159247571313930528789098024414168260435908632348850750528211025920994313636374065244243165969117108188507204629541334542547809662401047751892708238127533906692817810945940538442344790351698272857588486834319396593287620548055458125727503359359420810893615353228846573570930613877253331087897236835875417778083729877482444966097659404404206901784694555519380797250049601228615185312190126101252982435963894378027028968098671630216332967264338694632824405581056731953920227820644342105902547745289306894588128077395436317762561631771519909543123646593450308192326392133137755309973784337894090117725094289760607913272122458489310117245662420232651238396856725732327599861701555529444551805590204476354464625433741847795512142180605306165675726879852208149880650225728126425866371832499422526201655109148748798934373399697338359284838628193818540006752089619127157404097008275002391112733148121905877200386694340347404519885120555933222600319885709534113250552529944539299411092599353276009841871263572034984685402928504963488041004035489029803579438974535106189816868583499341614399768677476630568767431426619290627169673806712710012379856936979299429066626822652071219381661288103392219742201444468294481738576119420223238507472255194550153932030890681660930677895674319945148824712863438043984597946314741800619994447182493300144130295429769064135243503181084755711758193867416991611591140636710947679147890143169396243679915171622677946201894241931088911305539126804717905676305197167764394262086999701981583040331313081660279825416409497377578887981705446991647354771583441970426251649080428740740967757729523321803254899606777103803565921933931889035140076550363032806021350295545952366543314656037841761688656351686620280813268941771701860699264520013140418262955833229204604325568453433077977911192542775706245097956815116678119410207251251363045274685025085325440546958312893095596403152352897792109671591484042769266684263461913831389510963675139248218510596291112647237947928392936012978088521677046672970713703105558809127769375700572880743987608203210682714598281367480077600299311897240703016620779236632453131990679789550689235126502184610983598646816185948534366789318352463650328182895672505765529923648841908296665855916768708073330910779762927180438369323230317135521044122021739111739676440608294299907977911696276710492470105441048882107014492560974890606583095707711316264339156013396726359646375147999304942185129859703729043841253097070039182949508120334664872609861093539327355902201667326322290859002626317086047042267548979577554787268876259465114143852467076553674417160793402706605082448008941911064403159163291035588052130943935300589071717055228161076738825614712287406521820391776806785111723253046265546801299510461968056281147675060677413399474987864832920977524640531894614335724072582271595442880061194212236073379979324167732094589876727737761639294503023272605977417884757446698201216397271608682060201307772974798613180372312396462180925410773053424490645044507230586721004375474310600558543422896546171682407493182585160312344159248782518745916458093283233692329805485652480404691595117121061268737486123292473915529031000651853680397139432168123148664780420825008037473599381124019358672253773468713374866724794878813918840435563789849972182230426642487681519707356531147528020505398263961247742784372204358625915761589079257785115830732766187893279480607542937500776479833636179841829752401128179962060566612273709702958799603042971333514233590921854982121426645796354053099427480247140825932547642252451576330342318118362604373795428199057380762782450879845593350799435057490651605919934761679623213627288869459139016872054475929130351025228359073503553792580229270159802395488435400186313605436463030741841012836427485259402525842836204707939337817426181367750316764230688942834829807612807301013289334650468461545831711324821224271171210055929471673505298032023796972535580039841732914202297039775987585789762895859099727950421062661967003035161378433739396466712462398781939238178402174403193026648179226765375048137705459850067157765666477621284990591406217912469025848139325884560875700367734809095195389356174618173313806619093531543925588500006840658131451084535737022971571072708438642689225682885206857264495756988305976844746178218299345834735447701448251335513434924348437423836004025529709615988390062878586379073449062813017668791625943426886166051434906980374907614076881252700585482403632732107213574324721869083251236211923579234385991627892219818138517940973602229558816385146710441892745125276091342678292759110517688111256986900366347762571238941921809480318188742663256198414009216932131931669926375873000971317386711140474192511845594418764073118751323561086054881402795511350673970319317058503497496492664182802390829535090546390740114346399724610465012936490282040673153249144340902768253940022656268061717954710483521727108089677733837048003701564711628076034568668925092015123127693938283446357274556634018394836070181193732469958126383778127013911746944905910582714140014215237843597896983309975801599732484238904710346228250856706982729412199803691761283583948356268586739087719819372043146439827705852256257799643848276162324443478860023222872194459327885611845957674073299433186120696477523126847885398107442846334537449375985129304173222108258422297754279400645719307646377436530942755428211238365160987355622866727785238789240352760725574814622425686800561235542170769372879854076341951638590056292400361193079823353984337708008086289299506646398847482021286552294051971943692412054527886148606191090250495922605563678537602700062826321618713448166105012192692641302925687995114203726657267253594104072469586872871166097412274982589645192624329445551053755718350392715478597947392584038634584404514171235517063309658437596891607724595663335826741202231232399297204415129924841826072773295751861545807583337802016018815155989115681403701912629109284876112844963686858382528487298551140791137105736366134628530653933875307520684999473458874631474862755511285335621122139214066853438969275412904730855014830352760869128509333522771396116057650465836768244554021411620287057632172035499074332455433583089371577063895119691397966330015055989314648909820508221939516432527361995010154164127929645465878872709685988233095141290977222187772342265386939053117138768138251115699879798186108831500270432586226418387089526692278327454773094015709218055603389183264247860607833105120487021585521807236858140362495870337726517365353068462077074589200142622936560811491844714131081080725323319996914955729575139376178325515867889428412001222571164934868312959881351221430462956535597009560931059653702075519324994653502678382512994221017899485495271483348480157745299427521153281484029531376380622924631238465975486006550654967300346002272466388864902194276606934744161836113604291903655799859333131232807224993921402668454251455005968217090875643992885235958812317753733086962281682867765625249348966353824179319051209838990098091835343811633244689517897359912635832091999937906118636040406830712499564361700069811675198151588657204264461659844883529434490872382331277620153268495144629513769119811735990328938507920058896961984033661302392055387872148550088640565067753440355144471865310133932751391920713512797703495291852807702571368838439004386953813566080410243286115150507341049171534301684121504322874355060380543663442464315968828943797998806200970157542096104468143294047521645764957609404134409173986370239237998978211152716040620970677340236649675066571061534314452824137068515898596317844838525789280853683530911041570825585632701000693860457482931604447008353153094447565925587953958151388289367489440504675409584950607827791926052061067477760971059664528116212673260008906313220209330514027658453638783005095601450697479554494407627424725363885233896986298382292780997881635989277389441813782199536520048383047582932191490294221953645226062000721005426124544098505754362541038364247007049108493816843449108203032378133497125066871186685556554932153234017242017791129217105731599708786224213841640963716942892884794324223760302427279161307925706202199325658950972669992963971178947732086733132670846774998916082522766996690024775768488156755394817429611205953965123011720190223415121243524391898935997406933473312750443340135529301643148129992575092585133120675260718466210771921102988864570562162382000634918819297309907257215304770412324945549835603588111478761939554911590390334041005048502622845369637034597363740711539117767295778329951129750751427186473521242468415159322453091630915408003825180568502633206893943810778748743368604653916288831198333863365432257698269602351388826263698637976851864128953807752467484859177992858387122692024369753854879315935100067326773389564765580982151764084322695539717926502550700160137622719758150105605485117301926068861768057631017806129668036982435952195757725026412288149855848973830310010751179429476275782136678982938559575839295199135655717372264466447697541580911978152110257371090667983130802604306198244265455168689649373866647072274023416088105048933172265440749648257421755935399319729732425965322014902030782973506984529624207635892553205387487494222534809470042754912151786618730263870344792705328918870394017241101895701491016093610613190939666264326734482680234281624219947038123582169929503674616767547701917313655827228412700342428443992903486668157821227651083677198000173285897893099117581242480988359918715953210023191106462407465305453010319435362696987826507812743012649468787269487951104763953960996053938054985083007177293772526019316379393420933880246145749035643742972590110433206683585376714651482210515954467122297294817296088890363409021279397071943283192245552288300259735377286139923083171235219771335962429821097900115519643963862161931030530378930558158612749540128534512629331488450530938646466078537774525199440161687181816027557513799226003222994113090873166027847221401793799898695366650982001711884712229848342749264134310151941802232071098761057765941916788524925171704388136867947533276720826836958326766804150696391211020012137834958928381775296877056159924652029440352822382581569190671742317813250398878974802963168594028110393443673395143100442901312490114286983624197790653130000711915615751575714590170033563177692909399069303650406110523728785950056959261380773174458020897395714728591838286344485230217269634688210210436104184721188513528451315233200760919196003262524906876567917232520828386002660324387864731350355623572405721887543160202783773004809907447727985199387711085050634195120314904123860518101933777361990530048434602470563375234375525578226067352588269939383185869672504290731771410316616850810864465119873851935189688069220630532447409118003379085070881990257621111052645969573298253570895161927928334774446424150465629767754894211686878163040381795124471612063737444795282842653134478347667811069724154897387467228347324973960798398047849284826572586395549059258295325920226603664982436420837165816554581880418949073954326941577868936327119901130135777655830005238513810403928827031467284671493604418635129378520039141720392464673351597316579549988321583571951471520079284185281372592043698336490332800372580821521717103523040306055798001525511897236700138454999858416467002198135135221761651610180668085433587126643005475899390968488623159933101473422789919827108691402889460049119980304876455396416386344862037115523832515266318667349494572680762598557874045601002305371187070485091209195763337275589955006322395435473563530171844723539842539563623547819427974713593773532423231061924373130244490815711972980659216324050715357204413404589515758164734045585471726381436228128149351737920948384119845948824404361533323189955240477610457485355812165656618926885009495057248560792275546015197539805983054562302362042671275815901293654596712996940901583529798203628359577920572130375498648721989874542022961301790871839074240180096078185064568173294496750198352144233818220948601490342240022107240710742886224372118601480479269692561690358993284560645659990735720872169296152640232553071382294102109811000719523001873594553372441234775569918717245476240053698701438071880128567986403713822626881970794793768820694335360729655309388502263847796076327723524714692481792784704189744551445199237037400867565828952103316670981392834407116021112048015969519998848966867615664727930231688111961126193428617989754612934643412265073169646166357829928673136589184481808910933253592814425801659421597076039112369764942662166228608990131276506791930915674010976506123366808168338031540639425874307696767613467697143691244244488352919105296490614789636107530577090507210555545569781692899229413057143591342074721980231819573916339575156718502225555758066266837959528073383544049703278135230674778687940967691362161348272761779463508501598464185492169160369306068982968290866741948346069394438255196247870465962822011433550589305343253642796344761997740471732777830681695514031022534632296221020124240722005763355115689040951166583926292006239795054601310939369827805012728542722414539889259180897681654958689259512241824553497260751898357412198025975629930360110192941062478592907131722638811746103983516122201572655132074947167919571235596064331465779576311714556830738903157222725101768243145762080009724695888733530118298968277647135710389422994186742141421498110054577033142812343871950322563639804237186054199200763284132408999599403874649847916728657967759838133975420982516823010316556347101633554565451525033793526195247031633089586162757036935327189318633869259917194786558346636992472908002479592806452237519900308763130602578046529485648594263928762378767467037688910835422697043015455741703989424405428416643050669156556287691711381792716621437380172184753955026088728468740274073923194078135615144135783426696919118247154375152289214277058681448987002547885493262407614229217350987889869892428764716515720678748951325862607922988035260720208290906228882845335610699124949960028761179607327144576630006690773373120323501719384746864944658820200135495711255105626149774900963731417134060954843203962363833188431180381818728031849928434036353074551277674997828554337260200864987324193813213833138650377663462974757808237883042746192520280248119463927824427636916716001510313544805020391559889394312920610133004723501426651105829646461495247273473661641964335752994286029035765914385217790875119486519288666615482406838400155883644236504715359522069133027008967152129388890256348792493298440570146464751688515005228155860286612516269869911474135626023623898010155768792734109360120231720578707832891958897695766611855698345008473897447277418535023677278791688655396177494414690461783812994619951980796252804616639138300247987117895457939484070536839447626541510324157749485604968860112035850503233973142092559610304945168119197273150471113581497405070658172007097525394114191886497909672533435947216277961615267559112106793155001948643144427881717570092056902570901548411635469348648708623022171909672616099113942921527237214294140887368659364543104704246953927371080623038322084758741373669325029906626927931445066087098708511737694449729817853660265782459731523756806017706049229427464934441857560094024142202104132089012976979563822898038289486122166127203247660667472689032494830618912564187020659002848660182695065210940816903874118641288877324761197915882830819286608994052030233439166809847936523795404564440566277857999392611727180207839528225902863520462520226004690125903956935885133078435593328162751800463367864804940812120546543105534942418732666300293459871159841447281761954663418191631042587999343560487585876635028933664213791805218272707660623152417572913111697396432666691539751163562829527486425717618904842032142844902847994853148519929941009755817400550277666089109585904815494284680390646324312741194085491563320865998781452930700420567254942306376299747141466665761691957670559944894650749931994433950119402105500665515644488616599472161665124227844866794486358765783996674957134920143269676469577986945835826324154088590407281605196585511435530153309015027699770564680059145401790146631045412588476140888250514543683588805491631032418460013834051778070385112814761666283647824958438819253928010726710529527319843831013122848495341593039399693682466099171972267414225149898054186604759272289935807970656593258151149051359642703379695063891253699658206809175740044560360860911120275877245091803214463981750947273896002951772007455118978075337302419737821359054176747357313185711673614082712967257831376779205148396847609965655389815655330951196804002862674287635289335473136551136885793787615321737610583896701642077638792829678007448465340784827414991460924786468049291998462785819846041246496381294800704802929149558566871009949000536425914333668552837263605310982918916066952622785530228552158503359652188063087363469166280276596485386097123264162684084146081168906065625774698522335427888197272123118070438926081876408706399624911103066967435653087116529209597410541312170228411278197683065722510325890075410875733394319056576657406430188821477398954053563322308392241836658185348335572358125774052342378797379947628288168986334648758071727444782800734702728560159734266997005117155032441552178370688285016433436557198907303295509689681682876876644562459172686264502714763346672562934408598634886111666837756748603784232392911988241482824944562236038542899036147312356487545789400605648787477463595976682364475400409168753448251555453088859758777403824978179567415161601078423987556708011946203895877678014078974050985684637933300411420669083343452789557070558110928354186222677072085988544199494951617437042015094356173060555490310109238095005730384063077456834298503264228330142966736112590019740969228525296525278936377728459754377274401368186950881425530189592650491191190298702756184204763171659963833017691980565816989174434117898723777803189421875552149878631168231589189173823224038677160995238824589353602824334326217169088546381451849235003708861146370571932564113760476023699777452454424356555583814501493283635034528880358822581667883714430103427118138644307095526037350801417489700150426994081089897704907576725390732045224210391552813273288936923175689484139162320520449773395497605763022023835236584442768228118904972037993541173240153312509485063000688988041374302953252343315258185959334660574932646873412607565900946683016500156234723664292418216777254432119169501925482535214941679514061391606262535432044200086811671762648478460310543083393702921203258099004455181021600126168739222547054333983844114589393255492193453745294895511622156483547740919200895282778231731750348355067966474988185518911232400093912128464111442579261908144793330423308055333465898123385501704021081801772559850313137393274252268060599002123146882705724832776474401894898964261025731460078037713040667800491496573538251906428482593577178320855692938254919151305525588224614624357795617724045687439868602325385268666895615367894268953787420759009306122308007800794272837137199206951867173969204056172065335907466477925219398281860666325171714814032057813069073245197192036811840338381305593682579068688592360646725118864984145003456111521863520741310648291194834867693557529600899520747534050654048828854447345522802854559296680890105374989189393988169750490760830131336136217421049067484062150828372491198937889988471707472188414630360672880287302063292476835682914566544259104259193625842914008611518673758689939857874529197327372784697747087025049547149576904382610475419008049020885593205754016504406295705025733936757167188262962495348387766130016102467379763886945623547601997373869674834287435438739742636442670628039052205571424711127056833254708980465079058494040240785310514365806184143867062010583169516475864612472108166676550187000791909280864253811019753185512609901563575903573051256766743701943582930447031106338862828953117605778244446571614259588678905155353112108911654538810052662361042325441904109631568381401064280675605171119294995439786549011969195876121991481490860871140543858562669705396734227654364372355043792256752096667107967518917518466730764297585346307365225877114311011320260182353734310941861052321839634100248394537313433762134696747122025161698783015860042254016101344247361188787390726462066501933239876505619322535500603335771769109086077521435856289549347971816540913099228043747694991592624387656515492108101597237052638631949245489944850378760323688950212339846029311890131074005765744844515042754770248677494116941928122495450375986240318751379735967695159533265446729850242956286259890721296809967337769700389081065282597267321363884719665234950169706899265123627206057588205440704143646268470922245790978013811726684810996920744343160775658546106567239020713247606851926075166024506520827471484242499187194884331999067083183494683012252549283016220592447360726772062455582390789842029241259931670743586990973990878429186928230869336999838572965428303128906671471078361122869462899315845090939478346993802430597649290110318056117986771246648044133887310164715683770117207653981787858989934014400323594408842268948346326049258973662023300655268600303543567601783930403353177600303430478215865134311140499743575153164174527636650426537713779614066006508271382369623942635455324563167174546403848287045435332952303488145159094011395957598956670913322230239860794738714813737057000170333088109225637274805111807744413477601948908932006536666511946127535320428547764067078992632324641968743778271193621028500550438441001624501461327878765262728263724900245854953268143092620754060489159419073909606526202844495333703360965948260613320143066018215753037571503588035552601009468955740807384751035339836881650709059171707517886662293236602277837446650939398464947283062060207538471216526228672232577677156550885946633204121744788279678776632477791863289852050779862017007760668985683879234059963746442865062175383421099060427965691833301939737728908339969007577473850035849191586634422398021823229654334652948564705877307308994926619632164541025826498492264837214663705947187802203295594937743726244673791428265429192743540719695736715116659868799454420937870845761677949406200862709934285542976272286607984654620714420795450237233600281182398487738065567800765178165466915781017537472879249157821088859821194383980934270585782399532106953315983081910522169209558626051764747183520650894618331405954554426247571201434921614104367073796604896995237280307225903718656974560728081824534468333116400487021934534059922077607713087882653860789015377322198394312197490106585124668059364364072295938133209091941786309422111825536726319405088850867119721507124715625990536016989031875064160459332569397464361737951781795639340075245747129618680631143567837547095666813545933823237468801892392689829846144643177482858262110960527226323833033811378182462862879914340299773674251797249942565326134124995376056377357925828624829748355500452338032488289717591000496197558777385883022682414137152148764275755699506989265412935237320328149787979736773093539161022669368524269992003339114426618645006861753181100535733590719733054221436095642111105829971201422072581706213286578202460751853412072517454370645940593489553715002841456232519761244694588493176204539829008360175965682866049540751053031829863617083044570024088536286244791750500063381701043914282556992642253192069831720363956340178276639622633874247308710365684454996417747251297022356059857825186805988754169392094317980910372628766383950901141979541544595837164174563275131829107333504484934642616325788439502653848040661437342412016467858028969588445602761671550776674645325751432156897029825260851501957941915238232452492804085627434006769398701021351364316681536645710635052745535171889426164516967460282724799842041247344310445663048946818677084434710402941607366829384331341469377272313002616525278227927206485090210793722074784268641574553172850981699588853225157894054946913752017648487109736080110193553489369046691522923157805400161913402103979129723293778804983419425337163321543377206213540708415717117135185244622494621735499683065833967698923945141671496803392653967854422827779797891689955035333070231713137412923585553756266791887989743277590876802080067246534376218723947111979949637931809316485110640226092089076227096959637227814493247409087431963175197171157372373009404136981586194985191989932318510534032898470043533958226663054458501626543600399870971262252191620211334099435009383479027416950581446586046888073267526616299804020536255783149497026046318386442178733655111571358629905123240104404843222960134595886227097520255925149721893128693831799020572187909630564485747825923058559852206777116526857561231631746119578002564467608117286684682508078631572024373519854791425664231851188163033790009322977730294776057302764160941562749860888101951919320677403013242106260474192515345679357359099380197712518894367467133694481903896903019620472920340500021698636194971207214068685126200975332317782172383889025549851954972744231645378874620168324602053107751089062671123036907231965428194282930124609609372105808909638844573069868674823420518134680852588460557785349624414321931607665883416921544125211129330503587147263436317139857021185657108959310445931088325589340015117870665804014527445267585552378280091620331429619575546309030887957145846265859405554137800380171709947933098464616621635569781470103175381018038505093791241596538910934222707943209400466735554814308962440735699511751138730444223500290638932053680203651448175667568455397987402835750001257190219005583082580993837719674917501127596269703188129123998115978848650127265346946761429449692780742209867197281630478921391172971252214158376202340648105029427126725145189078552898696648099217529425187380980776051997910717396959460945723659464011280101274864892569358028480111578858310092382859282077267054523727747820437903855737762831600775073665065172389317276026575639229149426237198455322149181237869973867469215649356106053692726558669734039509307725983004047080319245235598426107840921429182994996797411509993454868448559630144737986488192456318353226319545423827494427660135957815207860751653156722719902312804711928029432915590639140101746970730483812851710661199801317627118483071403622988513906010509303973322170526016297374065797341938243887085777522500937599642154064541995076936648638332293749089981290397937633484659914533826316159482158831169181666972322911256707413529453180707225696011755548327002995547271524003676577758467275240581418808827131680200898000743578482392419074560797625780575862550420183856472567477438972628681740690280765640168878988496266371953148371417841336236247720700323847414151949507542419148909759111022463231651416870812529728945759647732814025071357014539301556904805241621090049922671911995979237268227695706749774499533117210714166394233611394028203574716459660282374007396369082876222453096393926995969089295310223505031497131545917183711332934164646856597433239993142398793241489121086962382734979890302636345557484210114489868242778293093332139512038748368465758469466887098396468106323556295227556773330911527021989586753502538878824153269330658137564291872124237429470907772699146849923221507494186806438691528694138654355958314170757619856743111202230536436663097593694200090252652206640119680028792853317161623431679787789685606128428679824861016394588711676747386479127918668524479861239988110078091700429269738671850462459637151999485521940245256982883867894664282739267383910106247419175028738144264953127470064811259078193795445721688149016446101794426335282654051148253854780251988479761177145676115472267879053405345722741586675776546163331790116519181365075299726438996714357734199927256416781825467425309538564746197379167983874397547047322943656706691797473153210555407712214822468218767792145953782561929586933502483325644705066245120249514748999669763050818594311972560145251518381048937236168695439690291386105316024930477485179278349170513432543169926991058877076164086117021374885753321411973111977793678160102405809138879200670346579726196222843508039709662826283688928399122427967640693414007622237291794141962763141173449436010570048247221617764526221574016938317103415324450309161281350117500640971352117788542054168255992810232446839406468652612587220763322237891609863789351937391006774972271625987302403488586907844434652645865842488509676322733261161045475888874149945145152135181609581288867358892252073467295188691579184256384361893645621217444896212037287376106165793238024422254513553277532382202183397222733955755006582681478729665866459982016584602045766697811163638589419927785456856948000868044129805042203843989853004859360813911475447147457595021203555484008445414424708768835533425268908905302778549233362651156625029133473827751753924234362424497316021707899326434671865561516112637922839210794309204529497515413222587247556573126269584942117501972950208309361326463515690572706926737018587216661356062899317372729572566279293710916698151115454174096832766062012365566846925988844510696348524738232629116907283849345945020594005768289552956567302913122929089861256554097154773361997699417580715377617232695453771164860355120795882457065301784768150606746330876194213279073601429694859513978968821049931450467537192125066059210306510311412095228171891653208529586199870450032039807725519260680199978575011511125340788971665953157987497805743244531701903745680810797414798198767281324114492540211814013942754085071560728740452308029689440882542603681501549713028169736764809410416119684712695058062140300968424456284708371657910063429040333515469084386462140077335703663465946999997779712682481525531110889554338156649705506379981736384443502416428036790239722214519713790293857165904454539457698353584177884765982975282482913785254132664649236389045775767880203928803591586898850405087139390410797197576226005623606236714548643175913686402338794388722231887849946622740039906477416514853832956119112763395300165939419342359610724021570591674520922463167827922630016603487078085499629580796086082551800653463961755714403324962865707707366296801508248534028617532381992151433047243950587909622496042547960546241630124861139529998597307567337996752580775677098337000280838642493499632387703976821743541822659677377676949962516256416756561788192093903731408444135711489754546068695494375238166804372191577155383432221317787225679978986360398254188189281448956231881723103155698241982947160956488348942441956040584257362984648648074256600881456870023495420314292247947871033499502562204561807114580305405555904945123414871361278382786552937029096144927164644487246870362325574932252202025089875029860538920448415385877748990674682267836740331301571251560590747572662401207427468007594988257386552548158155508773542445527440313424627211591781519465470285915571517986792495010086269407852418541132435117644357845254562660631767253418006114780278297802198612571124879638609934053482497464949587759823622490907710661218259735278484137941601624510113937224078403633981567465272199855941571529338371724933939544052698383009333246393647969286806335372326049206399655570176880921917177160063494661456061279599862052249395134036657245207463490766050141087762446480661520094124444760580316061355109691175889364632376009561094239069965148228974854292946500485565714992996823389871735682555679510412953372940511517032544761897700492912613979076971088680699876763761084953419471931772121810181356104081714952634283165650208773906400593107012302604143268392476259182163503383140504483287041367994869145493568205884003813611024888181123796812296617256920723906247088747246417737598027592876318528012584517909394844817291410575648078839784605811473102810493757157386469351734981113600259816835411069815897366749188090460587094642683770297795613397015605922905938518825583076114711220281495348948812011771742577468418956092809397243240350002290219124201171030957925297385446052675401007700665595758821667545770559496143307712178988639266229942241377650693828510610438230647731427179912190270548469811563719924622179020820166856482211728608677663340084623869977385907452406756776558202665038831026750298854432337090148465769043589337890241313599300939153304592702672275846431564178000974520778430824562736445518210821516866480896842795443197228667321085008569900856441418414147722432419519866364911724761565450566847182867324462376234870169294374111786607470836226531428784193249892374125571002691448373152402177256422588454533409931727067887324305746501309618087736810646052967266938923802811960319351198802133846698461850180263099607840009004355253402469294487015118760146747753090461719241193641162464810438695642857021234938741359771519597266237255641830433472275889819945433221523176542947065038153727281800135842559010628233105431460558217711075352610595063247868680966900702649879812053263052637930909844315331510549679983840875028630360019550106690089087090317872883096639777789636099942732148376324815504366252819415602448620690483452674815872304211200833029998374761097154456479790403737214455693885661132934632035774727051654420014621776522608194195881114755387960542916377267330652786511863698614736186729794924933614410874873432131763923869620433472497316242952076119810273909463098632583862609479347543865321866841870292254213185745740535689331604483908090383208401839824865465010491256412708414679394828186720440436464270010392810298349595544397501111115837107661914016933605994826731237624683148807995128528232068272125205917352240134984782416866419973378803474854294400455364758599485947316586949067129967486790709094725154087507092301844834594397257092074480598775666934982607494007385414410619289689746649210174610695624195034680039113746250523506439833975915978615128823544250815377307143509763813010607113091999096555236895982020035514911221917795478165297072349491783719143336427490270712217243826043186020141451694015391566640028875324751588971283729642235238117843742302531508376227263495098074472773049118104617354566522507929501127542231178928274416591834748549693117019469740301786967580716595430755305176584184266152440353460706615848533654172761707730058980029292751749994812585267340220492334647734278667613823186025295322072911556576421299327421864125390610567079290870588583561917274532174725955839826138141054089703373737845788776914611481730418504248080000095147256710201913927542743170198979209008442000721154881501610384433041045850263348484166532058832643577273716025199880451613262521645719280752720685063723700321609800503818370733774700827165359314045533647791044940860454315096224662229149910969148281089102236698019485491098073416729657736349355371765772755364157150762862242639872352553500810655140819073944718321965293638866620456701190527506333450962220056815797756617547374198672240214109654855560501370754672058355872719355047464910813972396735852828067987183026168811682560008629056431850463340491572404268542545666621165996074691857355510371366595652279548130126522658641585494856991594757509130795884400856604420764154773632708474016846191613332157210206207169297605402061387056241497164267689512289326784165647612740486971369789437940141279249141715660861919672391472290406128591941321053739381456033052117207711201645729631731111175319638411244479845195688504525240559819121845530389811704781161954790542447730491625475310123205019290172876650022202050156552813772496436000410398784271881815676826872591166642400564518345607830902234848736193157303847233521583509396381228009816077498300197356128392463624416667805466147193762733886368332968892629504549988182471495282484868787752447843182424882214253197638467337747627283387971905337524474391430569846292483827106739045844723889350339985778939996651005052980765408578515497591741521426810571800777169966222613136195461445907224033331144283174074925729671017922747464339584434486183460061946797574344624780275046512169832408141720840364726518598265296829167645450844172658492746063117974214885136832427084240718699053135062506657682564532647524490234058956676806794401510035929267945908408280198048486584273132230371268321976132652414560649390201377069458773936380533897077022037683612780273656396443662649041852351804283381864278941399129603644699393397056323359772434861779790444369154331133986861362645222523259244796242102409644259297586154142065593925748736755607382407723351446406056185951981700810352447956481357442469492806558644819905625190824876630210083724688581419001526946406398552787051439727597105360426518501043735053823513661231306033722929565451238499541816152333174439972373826510387813158250514252444735183325020307970262313500576993001122829473269647394144484051828856295681204302387241560644571173074377291066766096661695029994413396558019469435111138056799713037249561832745747479729638119793748028519771515275496021484421346837808693751468889617684129028460906601226886572333741425396572459423995753592119737586556309057276255799551898980681252808513782013178293081184098858097694676827127690633622306181112639645115893249503505896721636364694608514520394207596347018319734335511003399385900304259348293877888832370777122170974327617724429295071872259028236112730140752396615154104109982137381089399280126110780775005753228321800448250173825842590125679675937150777235217986208353145059745285814697379802494404453189341003215470727516465176592077426766174134385149226584048968970693726692688979139235892347167986539693443203112381162733196313440182673934101466588585484906525046906222075710159826749520260899990559068999210586572013890334517714515330328102608391999236566455418931159454940317112262873363766579885166623658894987564389398421570286502321029835348745289259849709540057830023830404352510546769801786763029322767302573427492712228719273552690417250355426389671556003325844996746196029358177332574262504218228344449723724375684356997673957674224193565617225412487968470635567278058761741281443773387738247135797617542240335014249790230444291451482696684271317705323730607349047024535461967853479134408016068507020547190455863464296109444835659411670729004805454105452242924115159122113307550236254496040061866377042895081383365473426390407295242800668881070007125597719888116527416162674186687887743498193914479514161039009299972240876754146595535389319963081846833164800538239105276540649218961307471083849456268820828164550651342849670571209759200762707019396596622070415299542858652610409415853142097116508742999097478577255866997416787384842184652955242433223643488098883525680419288195091398046504824056813611563921912454221865360217220909026136856024551622739848053909219069747540725202798435948696041705417537229425008560659021536018546633379107289483435915088126344228141048583530671241468250498801905908902073778019454351152016514411395688181840660755685571005356380486200653644368529994221474630892912891749220885217525881700779398639552027995876598457618332199794062804590028708154159001482506762459983348472788806645161932184094171811645454490783267923084971735528758426401652690527000011750900045664319548387257587797260570493516235882141570708913025835085414047912011238572885801000000544158293233204920707885621727598780179731677233042724714022242061642521408016916403309184115328051939864733184404839992987390877311094788706339283266582183264154918015495463647526067767675458094810746299474426760133259534435475636963603187713895962786657538358650511335950725223556219505472427973409564770471546703882850359985364751065689210974284657994053004487757519891526720653135549683073499604389697687668451924725033626215966597375512422161972858986083315204305657948944796587861346914668915262576917316349758557954948828726275203989911597781095697413141599122903387723212727766659586121991757300429708599155335146846941921687941157548855107525710575176521519560500063411368841994331968964315927915044936894504311606642614553119204805464837163105553417340746136282142295197775522182460793107215468126715718634163193729929493252990323585362421518642391170572755467569730557526822809957571584843753774574555045691303247956741902808941870921683250521842724267418616710863206764758716839895001019625295536383810119611234474059569440345778357829085002920585298771672387797163525513487512682484391405258188288849916214530757335831146294456125227166672671090506235240514744903759127532122421782144883222845973807863491066385552372883077376831954101334958517113246478449573838314696265394009430274489786754821723080701210854117097030627096485817366981391005256314961709958271692810238477387598888392077793649928258487506931324360335850944682875696492447585603890444729598822526795975234440253427377826934647720344934480163645453666939165547107588920667634846220641532981641325133779669205044904750262353974665420449749815303922128918685597372654986302661688266981544346887853636034516753998719766962144886677738939250542252616037690512435521500879607129931915375572901448311770522113687266413954751271671249181977544006989026443464137840201107313055997576801274548398463571913940381710987422769359449983859639424498318510219347294748168051020619736288596008970277748235244432576866842885681285189060963128930149424960159025219088278126948865004058370904864361966002701728293207351975411207024399292182563443899513060865833518087558148817301010133194281543889490757894112418060790556147513937630295122803261261765001519900070711874053440659487347059979509521453955253412528002898933997265926400868682415618659095526951981796438762236484251844965132293485979016368454177652436879898205346488205672610430265391763820812717483973432049902557618020104618636706855416164234105095996670317167093851891124324039541871813174705489557923279474403684727566792047984974569564061199041882021023531794604610178854533973624996461555075898348333225133852404620792346356347200591026093569281398452482902451067328345998411188058871754657921317257676537296722520767567591849341843124359679542226202024172840321736961939517652471562628045687824977050219611968193303239552199243144700478647173937416444824392340286564461263881516716600881546569113481932054794610545456678559138769173157203606087449599060569170615618793832570345674125938518647096078583358051287750776763096860403829409708602033908586091007673095251457182681368907577718535823656318151957391006626764565507954981369569145582794237876469608998917090018168912974995519538716212479398109949485506498996878498277026305917206696864507837644178016571829843680290783115531369084044352454234641195681413857190773934138369257250928494418906398243504264388634149129076681678178784566550814106480900228551945346764066406762013473886899046817645122971007298734300117488993912374735310472165069889794945905671668851648515379908617756785086591071119774488479425518831452138984976914599868066799116611065171338850880325738703385556989936942684495981588453824279096552399935628226306934999618947061335117244841904657280802255698208020995194737998700098555512673478726517896651214878951724848034220222231942722145061857462068268702226223328210129959682691188431968019032806596203641464944789117185505064272871865920798660549222215948188845973039558315094350643292411250898265316657264074657685331402697526433373119357579574237067432198313145421379072559120496945747084642493496017923081626825281529019259251204285381035805483468137166362571944251902158078207254924016971594110943158795085524539675433675595054928059323222329394144136542368657931937386370569364063118507342148426585317915402330800744652096588743214161037395617537194259608572590845749639907878400095596096063792259148919106858962439039891888986819752041745848851354102765116256530500371890185170425540543024493745229833897709919260632996540001293744197627837288752798412907782860710560197692175899174235273158058067821768711080304545292969614117205208279111424360728173360424117556019669448900693560718934225554337818433714695488553424811002714029446746649711121784238836887473356196812289994400862768590850327756027638111256030240835452909721116162255512443764852804572041974803396218831308021374749784271013586436433029231325247692035365476655222972210655840046270152740297780312331406932753042285842998749467848346906881053323393739404951683182344099700515844028974253498414722680640330302132283831458524926636922067574099749425670229491857664786248896668966257717918140006154720755274872427783104375347901868601572557561320718270675330181719668483118212070593819152328150904432745403819284143048055817836504185970744386323205913966693145288210144700090147404352015083478985958419045033438634686132380790400291479683745812059328992324150070384338918513320379003948613923618343590214432530409660116916450573869236314845762339915307184260285704751730647552950586573120582956102361322717714020940050032660020845901633995679303724393851193767277225245399665156943427452828752815668626743218161538530870649861744354015989292900080306538416896216890500289074309442842128671627980431251205046448605034647141854304645074027466127619678956851617272799500399719595402312578118694066124231625780365891467164736202296224087013314794901369382771031270758804678678829729391458198881084065468497952657227444102391243153175367611901923088065932684097145762296548822652277174824027065833718789540614965589548578295440569096386841894364143635764563966531522190157334870917604780475230739524995067779712572824932342548720278174220119048833383637541193306357883242532541857275302365783343995700552749929578879803471538261558806862125022254351982419947327336557021835835936275610045120848187104318354266413779805564424535955089322847322045958509010056460481309498602261882357676254742832211215342396760561908687301567228549209372046728703596195877634351718366147047479162537724418569578556563319465580193838196687165434345520388671061981667188876849670368197763291171383351952875187564550401591726027797301312413029477228101284395008957457209906174598603731232083207558285042084663395966265092477844303837743138942832778966413873241485645167559797136360643066688041005111616191571239214381666367070942641369021128639906137347834925692367973532946742643607564855082062113725443749195096198662735501241124534437891825590511115773329929901209786373489513264218936662942411999907659257392096670970875120385139049798926291282452012044640909029670406060423273525985929989671659744020144881948517200590754941713027219346215101589899266657110443407522277624670588713698090452108094360911109151453067401199924549205409951874574857211662044610683005485425374426729262674296997977054641207116446740832947684201213803413854370007129638316748161999310642983171031274138411324749814899666024091779356721592359584918600507227507126325841495548740082283618834636792160366383721296416339136625360540959236454844469844825061608215922525694638453106595091038427321429466493813757560813023545555655152217865336538384565139961577405619253981304386475716476050393608712262208516175867368642865373261761889459279564900023197552859625576863643323308025745087060779953443481534707038112007956251017585435512011620527296563937746663599287075258134651327939674413281842912726062350554150129878525717621674037287957952338136823821079220497861712529252908784357786083881820780555552272302187170106114064684761722344932530550600400289832800779995825887049868309105293412509569420822842494161259747363610235134731079433027110177683009831826860710549463698394739207468331222019553131882251574875770474126361180100222941329532445434164955651164297724982901494403373374794363419826632643308558098748678885479708699210598046448145237642974094203828063242982394429160018247818804382148583491211589484084119805161794776514808184512104938470714627021682655929253384606165398041659614531644729973098854844942339528557972939921967979528349196728974028032521424123499894650943759088972768264501213377208622311582735755932577815117675003032855215614556967714229832919955546631142134774771052137558928394531149476401888791016125750279806781406578378405923767537280179278419806786666563741514521389880516376172646108879418318962247333299157226870764915323111387698185188908484873746854907890274795275114311685293821431473543755629159599199666912719700273168811565923680281552016049110944832503354656463209375399936575715548620095907791383894600015218086356838039686328549263281969936842840533388438536895779723117579597894656785426592843232023254074718114898984373116444675849760785403057446423625347583290725309828926380794018619553332806735284547686926812112727822407872339335228199709453281282075597564046730905332208039337683727599087153436196793302915271119941996329529792419216161706377760215387854084545714073267391893683347617928705160347862342255873770208610816987479029039374006314336614591380489316210531902347807207740126577144696846872320391184398601719772931513529748707913223234518164934803860936095081833172885190026775906973159241631415965671198935782971197914005722985150595637970196261541498706849988879740165976976064824924124433315099847272235709928701588754345704850862104968487560609887858801828129466287173552789777703306907110421484333211604626241574842128621923194058274640185789795883660407758342788058582911828298793241297228887221108902551002276339443320933065119329668786804330319300778209207687612961802650400581611911949482011429341017912252967827086928695107700017663962050170904412653732546547202999568903109057676261380337317107008694958292901927866600646359136878065163115737587492033274996369824120366864032864983463071489156732461619694675623243033123079037527102840505333464342979231310267106499245537428227177696195597859762251515466931467118382742247465778159452181530173213349234277000680342141343677817305938879389854756180848397202794135323147988801107033338583249013274454171212550336819258910970238630134148971981009020235234066717064696822633994043328899505310435338787518246726512322605653076823671563124011355451300005624283096092589851888676355912194224104738164796002088885796553899444278677330914440938171439370408566715332586978634190246547357292821959461614850645011858227965781482592997539799020635505436337931254606142036691859597324997658400110769448848885746380119279918344299729561724238269121946042804670672539843034479547861231764206180401927844976419741377665911455282554686247103812147160261681949703827393369833475077154688542537065435977978724687956918560441080750927628231938228190987095884461537785702142588381845488607372175255989603770886170008941127608967541014560707385745022909124445059788326102710804718151408516345861200793428485907144094711968265181365081499476847948241346753158178535824858538366820167589129355478515728592132822686251538208847206728907439063959657370289012416227645601955375953528731284989303083958773997110806719213767352098553457511710099162884641117248131869938824328088723728277743100341379929904439054237015927908968877587849465378079536959583393208573160803787448163736460154256532047251177262322059247830676775723290295304476093243515597326031018338166412811726486192198220563866460568010806976904286776773975092694653026067655309065417401733698571014141277563988814261364195272533846015734241136753093979093624477930241731696699885103918187982201295180113895297244512269954503038520499628492818827836007548940071259606157464251772720585918153952450340480946307766798252223997935678951630049059207125502806010160645325300859505661963261627019998317213403104573199374170544995394285832953777960917344302446769969317793926013342907088050685853545588778313621300075887743592923459410434585021111497275088705529650421651382278954213404252793035349946760996668004835819240212688032732101910652628375362184556230579527916452535505234356669496208717354658944247470368051447982607919114519899145997811935609733376937088897659688318662236012296737373132830582433915820858200502695000449020446725597659193207597768286992888260272689800665590678742165477987559092368003800031207824513827769344559922498113328878462004349281872418917403610098785392001551459948718462834517084801688767620121987110612038333742801479247127140458355752690925154158214621519279990530344106474867687637173845125816361202950626560350654859434347876690926964957417366877080395528307385935323385457226438768154383382444779360199442839768089442785508267574601246464924318352464674451273170913746394148835581306395286679119110433305625826330079925582024578209701488864471161946584620533519202801310648569504781546784861921727559241886726217572519366273103620060497631052824029521338379156528365693857734301548919398770484380518876712315386107213246697421947108856949096060435743595243025908367375801064871620474059890975456377531129443615451161720351610191423586683817816503040113678841613390011810019402808403106147071580254778580485466390619032863626017838660659462735411336952539993623701797668921803928687149688055918505710135355445744275291368250100318367621267887565884474908870533468721389125092020056811184988382387184188669836371231292711951714161926574533519192043412788438185363760292199364351794130101753261359195663415212762551681024736488553117366815933924675442391188282472778954953075030652317128979151322052611335066880407812140072184672518250110721775748944913759960085674487402062022155873403952823255629363156832236874640440685742646769553805059767204275010488115862818059619722133502995349347894371474853941581260075627926746821320670711498008753090329358008820390376965969278164887424970602793999197755633581871353528506267671639231286707511655288428079378838082513138190787253893571078582360853817806214580765842342596659630551540495959125576883811476681631740498468892751093774781997270796247050382841465676829520327926136786591430992449433659975238374305219125787372139321271888277871961348047769390368294696267905730340876684616630724238361499052370789949472369623001837449028769957219592212902676267291385471656295504780077342072267887749999243950312238172946735820271498126041098913588414539767774374368936307534327287838040725577994131071205755304376569538476273857848554212637654576917694967321953133350040106134492421478635040065975904771142677960746288557182626190332414914502589162793428105285431769506297880566378415842687366067144284701900783710379320866803646246400525849843040996021401333307669330431651246293642995682148252049476769786640722654813584166519436760317137131454416411043214358649058583608581135109289494629817281611554090654786436663813547147510476494499365082929165848955931058253111447007046984580869779824739446180387997881731530731257255055154082251099117751905283314265440008522635074361448567332768785147586883870128173330677566401446583495154660648088607323043044999834730717754409598348310509318920647364049284261809355671116273206399698340162285488231822164589913737520227103716798719877920516087989549124631238004197635246359472966816500753059930904289271190030082258790903173651317293651868758434337086298697917458319325440968109580292429199665149820319494332641546666974321680455366168419312055420287743978109184964804049026807604241392997927359919057661873497320899344575844893059702096519322173027982265801594804013451759005758351166390465160465940579582786344921130229112020984185488447906947465043449461548329491737654392027318471142915725927065755283804771872819902150636354662972252579966518170507444766290415154575106316187236877954242225936427450933240788333945529920390481971178183317943689858882455824216139182170365674562427316343237637200860764954580951021470970566530211684995428429443765960465864001029288335407666997571568850871467931348933660643105588601278200482123954748095082563861454008317854044283223650980616251178482705111720328756888105812858472040713586921021835592267718601112541364372219450963545615572009811820759504359708418632728590892933939357514458897914461676720575673081949083392562589022581264447074152692182090392253446138966104937382684648068584799548227952521940354605903844423815989200461486992315743395221572739804067596975018416511357810828099716323026857743727983585611624759190666268367176801396251107718545485822031825376641719564687971412381414663863878462205083151284685649666605256915995127568349550336080287147826974386532176022957850062232687066216444090634146281652450832253422343950790959897644037631078099410935864151797776663062024210446000930933650619144127757234760113804427377856391192635606630510059139836259554517081632067356802260222264117924997717769835252499254762305645072127199528188871805366480571423485353871893531242904590199660544546959007592680521988791820443666462776212493078812784929598735217913733040482848470322631048212535384478946137770853896318530774553096209341870669679802946918690405719188505135824484847640841131553912286670354234736029501066635933112627382601328510120191036679563263732129899406014678228422150643174913310713685875445482508496492788260721479583753515334394727525627674749378970143363816865425745364854316536998692731701299898810125041923482466357206669400752456111112171301024272974480138458222340870064944307126990599181440051576149570046888779341861691135892595675336641638559633126768291596712677390252303577084758990935579656360601381296322524820650057001989287968539675692632903517111737330203496703586664024467756771811568655405130290758100259481029125472865450190034954544535446694679784526728463108592875954784762788069291218832832761529291341183163504075097136600316491977414459133466492854806069888235480512441224218281733788480347618039322678205558922862830692436040458388183086173801042690942871730079412228222292639978150372958187472212680078681356215682221300054432721097377032527165687070736477841260256591513690089363183921134457085719722977701045579331619196004125820731622911319367561861273337744818498506161878555693290968952447552664116701053815078198750351938453649481321062163898964573420462245482146577098136014185806705832030384676283732906941932020255200690632925428995309931860192274827281991440896486134555161486299439850172203401184065678854239888496494348726298833586002335220299062531020485609554525388266658975376573339520153521973725486038155963341151488356836924503455395660128807667557593127452627248606756846195027840160130580710849317477525165346735138653459611661780314370050686913576637551232663995176222227851626255186324862600279079342463515551640043544846418876325261989771116179151945108847074749538337505066608300059482189304024242728223286777744328379503296548303980049827695848955508448698514167109019649915463110458781955911237991014015793574420574413130897967041439299422309468072122202412211668707823164137797977454369971190264578263304248037316961064492300650169256478426286138109025078536079045022632702036922797628354872253238904118175610850117015952112501031363122180360695989563321845229344919167710971223139670706322619940457778411346560530409121287844558154163026014899876220199736259675000047502037694585518213829350127932007566316440884871041576364563205397006927200839758187708514276436465029756634440900697679174433187792295181118454137961017729145243071092994582202004720260271383490479770762323107667761505202906169854255787199786123956399268106880917207066701191506022425793123655758452883816329716235021926714822307549212698806033614237874462410649844261265834631933726734453653646507224361920660283089720376877933981345591179890333063520380558894495245014675453042793100694371463587330963960676204988490374920639482470652770246163023654262336164705441967924840481399201378206509402306322578051785718397372405695597035354422632086546985191028047210439068460104011752250612578725288824799103230814247211270210940953849421728171276349497760386330842931923021213009058188668242345871454270636811070921460333399086588387848027975958507550735863266977199552879969916001071153924009904073883427680773877918829714882235940085683347209356011568347376911528926925960388529394240637434372628207162432028575672294452633626679651640699245997600325441142466062876903302050731594442702198594043324013228346750107202117916549079630595881948242704879825469655125146189826758965953221345611971102804317703203510419093235515099764093633074655532235016316062501994242441744911697130017884120671458627521783412011801459278561541451794664991445713849953182340506994737515741863836958400627182899711137889297861743588992472209243868280123326641021961381240787590913811382290483559611726016364887095856313222470383951419155832550922884828240400836684290955326714192148474852227069353237318256797722097360692339813086220266827656406408550151141938275768141299745512156154308113024017604781938248153913600022109309899129646301603414552331127631561792489885888082102588798461401307759967791830301770889336031768430890387831430029477023127330797770368688639770581460691769780345149010925531576934578317122371262739710194504167027531631734226464420635546477573384145227171939877723227493741117550285790079134825788094160748212200352542315445411806627971775862769886248076361245394749496146376732121170793466825280808869753715860043656613655991772068456073426857968491907401178494341508326645943126723624033066818992928180489348490280814793727596261734198521960664595910141931606731078656825356215058913916073478025764871948380499985202796965533809927486837691241417324130187232604966108649075461444285340500918657059924721497513899348045786461291507708547207969974320061682068413899135828346943061212981621636973815757807303898862088159588350380490013314729089256099641917910296618692140930541273782611403969981711257429580012466618315035566780567108680607167592246672927046072206912983842703176981849158362436865225458223197692250006658748749245377455522661164413754679375599170734801635930833256721425777198578127783296541410734908707195659877169576859076724037230468240316378965917479462743877083245390362119319967793572124547325784182071351808112207120363745350379597870451573872583362268912320225997306437640750476157794599535103014259850128114560714312695896174236059128539264621164920011053725620345374185427254329241154039213303046918882850228103157886903707495407159390301749726511623096905571579418121919791359921871603083985699268781608946537664636805430611266835485786323615830982967158904926344037437650292950052697843756970703180457283371900271149225259520457263737206658907066208428270909400043845663803028442286619247686541665495178733324269561462980395802601692227897063175426491249561684015577427672327212129328293115449890577428144521460909617831056527661463742830885968118652158962088916987674373576332493932914637892304079873994223846944586199419634889091081450566180381064611017200628999450799020360917834609589225885972172268797593283890193151378931258282798436535718954666578431814376269885668217501074221311411276422906241094227186381147789712950789020850918127728254078683107342422874652655406108885180702595032054776605626939554241268382817652427553742056801862032881474734587758801864035879944911724004446128145711782115392830706945935407444782190924337845216083332996412511991899633006819345541666468958402565960473776741520997381612272552153916145106520487997904329775313034158271933097980574550263996032521775085951825903027914684735854364885965543459140045845311515969144945784006997820143363497083476153678078072885262959743928798742267248676310764839414225976217179759640167620025319547139791495611333437903519066549172623796875713581991751175811717066524086124302803515782766085040533476189489774862236441239588406703316175455078581538966465777214660779297189421295487179226209135069126812299625502976788589772873851458297968059764607884807587655626829897543729838283000793192166301593694027285384234457296750823374182424636399273117105173073850130122678598213035264559812797957674914687639961291070422987244554400164701338822047664523491716420030248360159656378661929271340231928933602508309733398013862759992143715533749154134526427422621652408235382098566384222198280109064097499421956688463542723319513912296756021682283174083270748424212134683527952035887402138349962370228515150531116382640334797096202887308050499866472110082535715264397955035753032186118854644361246492294234526675289695906595513759643938722737070541411525061799319465856971283862163089631509212959547666458805148005753527475276838993493290416407699509144432621132343790613623600675501485059438159112486432876665036562231721724656321378482939496708446690450744472724396102145189849123691871623064885404379671469437255547155203924041165607964731200858375817254038933969463647677768746977575437898594759555147218668703168248494496843865607399656172013795345859669451988918209737370680464507146746008638033991239496852846156068953569894629840811322416025500731296409672554816191269637934546939452657978908667514621674469401446223168385732802832533133084353591200637979369827082332056610765159168408341524487215505992783294962824329495009067115958120475631892683053656189924334879718742600808935923253340806550477732270896655921603012505490194433555976803625355294196534047556317699556426864351716549959784737537014542769994100709578882743598779970745479099054144881579515355111975261877544824193014589990564088937558520753430173825028675131311602522266146496912135318333624148634687283290031143585508430104943674638506773437874451724228386805814081460761729327582394524584659590568563907956604375785470374351312416806024057651607435794097558993244291514609701662387020361009135594527254403306730402552330298485402648626925259476975827322144729687833522097800268785173008440134359669058121943580017224234615104426486972748314970806509277710003280138580577213203959867618508456877084487056544467914386177785273130805991870813520820993415776857041065440327823578650030806062228010608815064748942776404428282154729847563230909154694829909256921073098418274145866498407546876299731805959930221492856926260205915655780163564667681659583383279913489071004995021409596962884562707358917025562575613452224359463663223070786731295227568219867570952453664376010540867904420917917869122718283420585208672676766244400574393550064889819608771535119353017203136322227596313826950669857824803189637562569081670628095099985455175682838433066146520745511217642822871752323230785727033220344081965018720497340467508248869613779139060496478817500866496600958446670852865670570824168129700110210244519812693259621206599724091232318994327932892619923887876500857066334536882521029701016226951439844093927417839831906978592410327298493066464045771530259755923696865187838108080332467429680513169577998159692670585166800268015534847100721361640533497676154252603871578565589639263438294202845668457038104137085375701714887949160631995978826563976340330242185418630183610414101178744905669869660926303135543999955099691362459275016116473959498553743921797637549895383467594830730724289717005891085900875101668698717903519123024872543460528269298433444563048135488734861386642043348780824541102097931022598871304282159863878996617668370841665925145463282342258250758197819903531960036760676640057957656039180325912668030730886708490028969680546435191380048867280642320517728625039933470240010680884241309939566355344948694513169648586469104986430701250043693991938700543071312139597012912901254223760414857174710269243410593044765415321539489450900222272714202255967425452413411658672087645370036088120484004136722035994346648624354089962820695937424901459070048669403038529738789124541013807969423312839844582034859321980225252542170551370188406630606301445987302043689188325728279881795838672625035468493679902555300157155421153778522446911617858764982720783681123450257950291508852854851002107562111508180090580177299286619622521565999724834795994386246356674766842541201891746629476390532982786833472984032718676320968374278605893456182062842332822059626157560381238399885740835033196106984344743717715994461288148318453276247463629690247113124865822256850574155885132927093226949947121874182190319229999468281405169309571114437917084886017871896825457112185132994263108155401972113700202387563235014529153722386075981082207330595733368754231244642713231222730948895518157940577389015125773560850946307064344491851916242424661788152495490259912430734995982278542353189698787206003884122595763479627776642755432570234466833867733367164838685972522489971181839225066483260077145831416263947139811844743489568780469813726561843185096421961085470166416441985260981809329788982001764603608774306543350294943519213223440550148366952317254835758128562697321323701550261047983520246012650147796903297446888209545898670294466535920880230226193887449748901261107144459604102491521533942282331795196498031583386746364107968700826286867933847468434246301749951819070349328745667256629334133308293735981590268167192143495414759703216999275053114956976879137161645310312106460062503683762990585522618353087726787279875491833913886609333529509822740474812996228965045957558359827723766429955304770206337347649081510701837056749652069647361835343359261811339997125339266948159484080956957190070671284826660135274459201444705572586488740876776218349238898834222389407173905502899008606522113373332685161567413801469105646988860858782473987349412575817864383286683490363340347363906394935620311819612127259916247030336942556678489497236277746528632079465864220113004248714919649180314460817443006505184621720950460596520597593799761136613861582628753786247635974078524626394323051606225807419534149194606239273785530516575077412385100101900896659347823800683792443727948098357498101592312610408602419821513957208457276211860247648115760354489204243536347317775273568595281558791679776973301133598121613718512505851280280397062308883565903991536102207998237335442466635400579280418189115216201473535291088656428041002086663687797753699649372930203667457510054406729758550714508840218725985130514459939951924895473521896087198802568496405873240387842866788635520308992485279168607939198771822756225449359061623597087865898311053307209760629580324551756833312228960048988647283637284891897794028272367947358951573470572615381733171565587044795062418351842969262911668632766951290826339483626851233975757562369075303267736201826072735033863137527314495448165464829591826874580240507721518674407075398453734390854366829082320795682575819880357772966377152491984370945700210790136731502807835538670456016731817959158009921297657464295884118093328695115780806554784994629160255835458167872938707808460569451194556473085320980235519448228774763042117174360937484390610898498898815583970220129790156207581857584790959500170061339635239728747882592581910316063591482934330555646604062851641821813251354767658631040847434924394548581918204862472697671141199294078570748589517162538118887447004510687952032865129944409351135326725677633417837685438619227451377155594141142395528698329341143227397159078437977814373293542436081789591738970940216259798996760255625012026293299133929011503183146352708953352868710428429141041681696992532887968790465316071822968476612430511315654657847576791723289062063398098152377223932263315010338624854823122003168491809161725842406314782794005726637858435116348262796907891188829810840844018858609851205319908839620960904465755608644303661822179984011062117652000284124053715065265222915424486593899319997743787983547508468155487025201818279215056400781654150970915368207551270279542424258702303631455019160422437594195927260245371407833253829134812482398486946754358037578397947099573925802121346813865814365488150915583677996565508014355103144993505146930417040768778502874291614491967754942853804240906889576201765328253809519507818617927444518259088146579737228719449709518380758025557916471979618403328158485527918519379250490453093995446408973809680780066721559740437246783927738973276001719006229383676686691592654748813964044337484739829057414963746343592951448238030091727247439436768447439874911679446404202419045755802457351724230072595234298527449765637277182765523573855784255523253460712430477147448824102817948352600958457880353862341004686530890420193072811067079863640472199750817430790372034276779653838984481058060394286106135325571714791177597372060505021441084187010083016072079822860666048571819934096027476753757543996238586754773668049677576147190376530136268170642777574881545850652526344713118999004586237862756064380970724179727086749793895163618393157935438559198623210288624653953112211209168452213420849222041707013172431925648406547334774186454366265140993402302544415424556342319708081428411735927536538010556990537776614402770450159997177258288131069488333678504960895209935513230800107185939692644014851832567818792525416600859428260556789359380985205315922244201107279904127266982038373137920521014804451023649119415463961713792073962165251191174614980353227568233936379013422085104664728874592365507654521711688784143961222860327641532368446883917823823138412496090008392803982854458762170004222215893572534440834460484910146939476845352130112709010808848810948477405334409517110335007106946997172401843550898069575254661146225918958677444744311626460120739113848423170784194517505745346498616689606469763760740234422798793818988982742747535953237254897000400980544193061862778725626554994340202814016501015721226662285372941886884379479392003195942570468882050253296391052878770335957186072562392993943342482826153670030200975182864708900079726501576991649054285573808590400547374547013648311738692618095900876981933235659025104808114214005353533986127735939733507213523982528460697429838261676895043203313965310663307783459181563532801921415884509624470999314721060370167357360013603711720982493914079624367965903649631631923376640666901481483626068046347218248208613720803044179448934988624061667467047647426198536865355737038814490315134450986417836281402319367089233101296167882718770063776655538967568944692890260286590754903852453514305605740624244459875310516211891689014993035629825205564715718936727611159991175896622493073785813927256171885891623099495319007955730772119027731709295208600950895984852542911098654568319866898376340398264446442026302701734772507624704459955544355233647711625233284445775980256068859901480160219593204892406350547516278695855146583847540982971235118668819444549773656234067899275191815684052207994526102972404096374493736111915335883898703235793741575933837922092313192412854982681365683849664930973440384374582019421919859402563466992045320819079886334726928364101422241219262612431816035424053512755819025620232241308926665769182994943142804128619553367071087478220436140913120227789805372308924297284548249938275009436713271698144480880159039068444304280541100647698361294555647791851788931835017715284189375866136632375276340335781123379834042794149326857371791392182931070566028549591965224809786350908838970835895343778867451389087461439309504333150758169042192870377889435195608606229151851404744044251832894110557635740737192899554762053775825233196211244832315383489327192437756270900496287037360613468473212972745875736911410675990802349442360981585694279774795328702431981604377943538426684686256321194282988654263795012242173622136966142870517983999599741207909490285532554111504050548547293513475576497834403358382398740894282788939902095461082250853922281601817132588071410055789951135611590818865828327066068880174142175322551202344954232783420499308914097440372625383605482330494270764000994084449993552111996211621224993367466052098506599723604408839033008769429723371063508901200765125650310467075851087984845108985439579826888371328613720701133107261991334365793766076840226215903651097813658794299858924166468796141212251562412997116562132028660497507464400589619935243829500955029452173981577097370413299920348436014547598751624510331676837858940833068143525231347165305625414660215952292018476353805503321202133561210500879605513960614318117854822784721238256147462629581528814426230339326149121333125847105745495699460068058596984683806379099348440221427614593124697621204330469863144459113179983895135787475374840087425770198203275726845360135957519527633918051323867650114292851790551189035253519345944734079464910119237289832686790595406079333123666347728179638983317703821608873150735980197883916224090489460032433459375036776938545562219746162513041136953551611518485488763112179469154062451534018732001386524586214507499182036157311756500396148210415975922281431870678230329540361444513040912063828528303123322002706380176138184204258075193138785460049157354819881200050889503562959486818496819162229158634115963211335718818435805923651760817133139278763226755484010696573509574265862549126842486059482067068989570398556502883012072335155202500870829828084717715890970578980872847385533418641730302861048249170874011778228672595213859602087615754445198898849078467190946135347422308621448655854404968267542572776767650593791238952889321372255927454585282072855304340237885883470375691024428752657209934242941642425125387104296144367851872290149050898390190890241019685153755424990492714753732109403628621183051816408069872488889220544098933233575214487235073321552690386090755974312473961115203743476952471378249802703563720405505890267877874013940140313734448274180750415852672852117207846341045499628743515202276928495822516012376107175292219897053798950416406893707868137620769368429329253759593912792473588966524414722390533158605620916385402886308804245995203072589220264600766719405129531628930324775652417432782033968962717844255369666041212892449432814962563188266489859988421989956650195394002295636953304261074183029557020085209452130470747175784454648888438407686138474732846761594924099240533894219527308790450664862634623498094866939660892664823131958516892956665205601196293378124851939574344802236969286854049308313970613347214045566777413026593995094592385690453981410342899081108523596286578352031014236111281652975206111228295461459722828434391855695810552487143158362337153239357690773314241445320521223473428231772439621360469546162957972445823974461852756555993579839466998373813497342359091128114027957184895918078373774185281806831268823577180882759371323040935060862514462861643447311760148277443982368742164667425050392463312745764270128770106498406978244641612081402353481841453274004848207284478214229924693348260503602378910327649869007725110511363567927709782949167505074938343033878860233981031721178209293004454801757264449904909448711882555664562664342804256610729722138649652563912599293098740068245987724260424123293932099872085938587049607599305859522579058276784289358753080560303312997940319541672859010352694912838906459699461941081884320541517686588153682063265640566474816361069117682218514864574098215153254484965832670039385724386359616743439209599998298409749585353962169286851424994256285051165094902058822137245280177694894607149436601873106160712046526407092777835934393104111831635325529476055167809698318748073626612559462473818233737088161851750249502621843594570383590286381020033168533547926239574489374217967299733693805256888560358356712135219329205121403222192378644073463673091863079609393651165647902664253616802314806090856017932427575610062612293027346835801900138063477116258024683161324624414132192310595110409772956884540347855404549439145428778843637193536385474189936579085651194392174600401317058788286560021659790338847073204184020092592068174072988966111926134174347713101818004034197686902266039330129659459750796331765672942759824467389361640801820174248410504632862668849473687124023311370427766332676870069568406674350520099395140324190285215800346281623888091761013144296238399608210087513155133531882563690144585934634020699966880029509622795664952437483105225080561377060429131427286769164896349812499590289903839707274274015185212398997514458961993417053229253001957720421121142101790971498953589410846318912461424638031345473544352813694752307508062536693185763484555415496463191642863828845551289249387837163040761303004855078263880065487636262116306935178651335044966616950150924855006767856717038165262708059811513317093002298912230767432076368191409227326997818507522624354719862917722008333118825634394311193895576446628435922314565190631638996936569306709064138726297585981217298496562656384241631292754500441072391890807444121157395942765584872803032457881249310414922888770586726739737145166661301364267493557473896510981690920474577726797132615119221635206758306968835831641904805745217117545669080273412460977876924000935844307662139245251164953419380770728502630888829433643640874184512768580674673764673058850054347712971327004270257955856648119849363060018679336381516876884378398139565359216711641752992969502712671751754506702343699870616088279553393052717708556386801000466561112176165695867613565682969858536371422242058301479704258998760756179021294966202992722767448749667506956163710579582879393883195756419048994590038276602621123238692032322023442079311166119439462525548116810189372182744546904097767197743935090441475476672904304758506290488692186468331503401450921153614154826913462763232216938564336271199421619250923816062319430601749224783742102425375817136263499638068890441194126385018529776308681807761185671807070034156693036243487225618716557824653720089841432598874852104302912064926570041356873356619503819330314959317947986708309799626557230341670290286843247818792199214341529833767403793805936002109982162396431198075457778724630854330753870950223635636445935938746589036057295440346555699836673525367099663808677874146880941088644596394869451925566076347774440481118618752299441828164759965982994611913879723361298524845106163660736876896347065900128386675752211904162859049554888410630545502587396335856518931511145435238398433685074470697498450660702640578000906754299621186506545219776351106178226051929270671926995669577498978508129545480335715373060695447019967684087007396949522011091983665845819544736541597689677254815395687612230906094285487866138394685598737219366924440028344360257557704803473753232736941405777762346421981081445455777861471354618038688714456777737114411938684754566086861810422174759303155138189971440858548793833186438919074709827962972830010045673154971932746150193896385014498275775204204892733695766342316708151918587125967812495982303352777229591021591639960817833419840897140720147414661995999854482098451693836059868255667645891099059696552187351970642513974823133049373904598623419568327253451538139296333790248192644016543518733509665019000423653580832785351776171132160175798705547165497285381483798104118820740109772489720088588788173446665909057094693629906894016604140332868688090000411506260509748169613224039772743827128838234168922366119243487897280239084516125498950177791536198528219423375693448558612726231417507389358920225370987389180092385724214438083539661774046989511995756875678054213256310176716759564440865686230988859973125139771510886023742608897682704212970791405494998625151889935574653193444217257365809824335830853902965239483785462800004098598618620506351605718047549907408201609769779094730511666696177319223907534965103554595536295654363372799125724400281832687339752541170375827101669966718640622001427890819543531633575247942207845783265770387596699450508518753193951521945135975929690869408147071792084299465414926894978677586619954449315415812283836698715873883399548685289098489808569147105896667937685875896062517066082058821754424724067641934655703531437762289554499847168486380498185103795457622896373385530325292691471238404844465359222184362511032560959661723037214020782674808511012383354322364991038570155438106591522798018154916313975309061719695551053206942916926412625618343667701082821760760743819984280976631484721313179517578969971875415386253534095606389651422408647452050536698076647070043272544703420418677178261799295428450086960351384907602208996453586047615622882459528851778925508285768938706621921020459250744046805756008634043851520123382294932903815570139786649008039231293969708739916487090733953263028058795664526945133362295915651816365707202387508987865530619803685667918850768411995503874006086076371373974672077188460333713925695082327781160465678306333945898301921052342116477722080673448997887332465953016084202081482887854096765508427989105453061742422504728757542978907519347582864451948433790491737353142809756551475242725538309144681098594651363578724282120337021531926088361858038323753898958287102106837902369978633594597419571879705911644122642854991001334255576782111237474703684448906722725487034423323734319119228598150418380302146369368517726884210769820305483368883109856556612480418028556797450461562101548263771067291640144902236987099671384651376674213722497028164473676526478259865962146392685014271552694379220552191569825513793910555616414898499976481347163161923375902147711720618627532596810519782758296010930585526965850508051351058604418832375458179869081208745783075994810389560518705459308909997843875114352015323470383869692439049071560229966623544647832123439569702593562624147647447390206994926957140390413731809000176035031499941148925790079671175362581003010207791682442252226274961023630173731845872620224378305253942738026004471418714825243824071048778572847170792826864722901337724878207452918734553091378967085600599896090704768803427330829158178085338776763059005648385787579623763005555134033232709127506993110089821147795808960055238374941981933709082721216898708178164816277360815242310631129696061086752451912434820131314408479136952038049189608453147153869159717079589814726317007201468611378107791965930053520202864569440578714069315597425411805340883352479668380377469655806371853433252615574143384048607885345358259590285938684168298229412431648054106503741971766055169612652673050514036168176791894227600553042040995498713888720949292036346656341801870509725285887547558710831909398015583077060859860522773952523276943036916308112994354849956820330625741475266934468238588133235468796988464270882840337122856878671693630422031196702060792927235935060164209970554876021495266934636587227292079979202629943995593439302258894427510931379543399871031639970841235693716692291394240450752443558653524608204881412374792970521547548508022317777203049791026825217671097902897692355228874587068040117622992207838518984816634706199048305411186025010311275967902143645623530316736966712428033353129862775567987758072939871452783748657783319312502972855299601057170934018800499730998968300819798991602268209869931327407073936186433894345792591114618826041429008548798255742777507853601148687261038724305612365171852084951049215611762319953034685163721448795413642266183043818042107547240041329880821763493912165223536402840917753591629063289907793549484475906624801253686430225084687321790740698713173776940574936217567420101904877691343194364368221426520924825926541807437473457716077980401273009287190198468667336465039234528519507894556065889705727757642647890835614938786179066655452859112609623954969903874753181614722170616023714999216756858422734980855390517429001096806673185764154290620285645358018649295608105669004936112224513746089782304534227643938055287410505307769816715632698110391080902466548835480376409965749790060251003307336317919434973903979992780620939262310556919052274095657288632006236161992603325287699838211762028089646083746012934365782169487870625517792326203402097350291410942761385233058911514614938766816735524971391930101143747745094368589888709250556545079459855763364357757545830342697480966119006695227088528719579569976448119213250147466614469854930676386024164098072399713146313829641854030640415615902689017540180885018137311951917237519176399458332438667774065450729394586779313660297287889487202066138377450941368362683674489978858482394140105334819848332076019964114089315568685870958564668292678494851769332049944510759364423956183572290769513570659427678996709609510549238205008206210276797686596368398278281512857440984849100975734972033972522034372894874155060504053341752588516797114144116379578050659153634903156610213573327714802015333795026591634373447503413036480913148769347493066039650349425931378013216064950339426717339937370947253474736653961956131328600705115901909242208215468750960688290753390107618187810628944690191645997704811461306614260620842495476090994712053084294401239288860914162490076128633782054355527815735157572917312026607087920687773300702030029192316192748762243314166175554258646002885398326660077696808128244929241706335199042611441599028829875327422946178817167351051106647379885790853280236484091402411206863445807383460985913320757440180721224935425551350834095788547954035040627677207892596430261496985478014447231087925838309744525850837939894240569918379302366824640185062385479250509282729837763075429531536227379776014228538713212136133833396532485906545539944562196117530493846382603389229692972804092347714284009910698463857948021715401821832103235068246007368429180514287870509067211224558329881079997767608943069797189703437444571421733938885043273988273212337294731777864306158657851366549194381659894377098732349875203537194701936467897956046679469616625354644777137349310036467607970286406427496351906699937425802994845815843538156360587208095267146968988532085018634417433489588604210335809110761278761126364363459519042348106743338711565411891590134718222685959757863765509995384575218270961376521013177766136603708305476012171234757780059327671329572825614061325820100953807542866648382021726003149359222698930007764502862910077083248047386912297827950758783616225602992476557326158256287164476188467901449766262472697922368996179337365360025181006597320968221024781330844511185533745725026777367307343678738477896295748811030222021546596321174171053479965272731464410917445613372631411765092283758784973698801339399142478922164071761350276260991653829934004470790286009928631564181161018833403512506422948432028513836068752659908376919869724819552566811043629389855151948097052875104754009084667527217820222471627823312329564944263759179177022571538738059915100795794519870821795562543815460214003160512775074209273546927404439947192974203221820501858005500733337171256389341535629561350113210749143508614600994851449752158445233378263925340078864532469015412602985110217956058991808059671808962300525923849885919724942126673768829143718425378889856528423673670614346232211427531982675843743905541392525125342139888774920862462814304477790388043148472214634276365122238726091896948227025952857926055860989739753902921750950844623145148783404535295758030217808518686255616983315159128992110771323847950403301137841150108917098499315583026023969598248609915080349425468281782086276720205862313540485588670960396992914957946950388290063566037255780490296364779534645072570108643766747710942449979152502418723376599164140690841788000645455603885073719777445666202548057547985154856890572063556912259515814633501645676657845648901861410044704971090812477856940546379417178981988471098243488140347413898151190036946699333215449719093103584366694389027038979148299688383382385671652742537796155569298086505949034131812203291322855804091016446343295799827034686864079999219623512430891078262559798038543320262906905930754036023704272037429206369729715024866099830615315300500601821916310013824965224599925097638493910645048868551651345487496094696884393817326100821515307536245545137749282889183012673689269713561598003862391012808514311451695592904426611790356292478079542620740572539230109724985602958843215791037667768331678144925055836380833187944678446442524524775945020476571175771233987636497171095263619935732417840349912292664766983146920790922548130940124245000340817564658973926748634749633814883136652659608958397424824579284545117323281838460822353029119774664360290747986402484174844697499310875740353745328209754787377421081254619101360949792686249920923617949786887065472762852891898109334891395254157082369180031050805134897643385035933970272394460387238121105005040679718045676412139096134678557455619679955255248886506960684866658675542590698256165290984735120018833213374662489044855277246982804447149675278525149753026750434286162165745457601010046505270095838590934992869433791815573820694196765583304020747701046343848039571313722767689085724371920837211374851110423317985620352034044855712252071656158122282992006245313706112287725090044244005076111842983549357177364085849678089982450204299386534188516373900462788120419218222904816588848583457558158954984387660628510173830589764419483560900234234490307321112982807076466180942249855595414977438992746875010589855857861445282124021437057839580327546485351099757049248074317206933857763657493516096954400703201254269763279545281780116020332215215277431228525673892186323853385865817908121783510808376844070744222471800361954917985931076061308980354561853700023041434737904365480682296603945593533012425530511182510089720644784892168688794230862654107125988812680609358508033666546826979544168645126887072393481322581678832545358013703757436430323441117716832292411333360811935117861344887886480378671330645950648012641822750263852411384263437881657895807585348871945292520410356984713660493954276406471506780473878216397940764178376298832185019737885395011700138544404248500921446248950841000323308343297505781941855579336125878952575511086124397934518856274373594311470220279923073698169247464114202987455520714359368251106197491023195392442186468186203173107961455282392620447848227705490853812158640443292830619914071991364897988377465899184449112128500381152193062782911237595626173645991332707193310155333826141818000370147926800102192909784199827346752911665167658354070597876620363866219699921843170530512700426717103918598922868533313864635397608920712303503100636391823191591422589960312434435568242472965964324065767705849044784173402058640037478461893093237235082725391689282417939553975494211550559706243639893683074195963477893258705876476220221646568480357062867685159169440519815586389930503130974019578368874273624677615750665418266290940477863714122092261764423603896769176529119740282911659288629481571149743305811049962336672573192826530066418366516262263740219818142378943846405150266299903717552096823278501488394354319885847455437042564505511802049254354192310528056846206705029594889027833370427972825184872166005331749686251323113013089545763364618819505881019660188604141268864214478141344151297999666988545934879051916185299310910471014440500823910986111352415588444176822173315770700464969950843482196525048898727205993182644769156041547774354954887555655664259256330874243443592796576926244475242369136313235488874570822592262524901884240769192912085993778422637192418303595770966555020544342012684367693368512857038156218047069144443154748339032874285196637610944542062049091231336318325872110152767344413962784289562730749665499591927376181848094030251832563574373860672912606549362532769687113302173719232536228030150003373870137352963285056647638762596534353754709540242685846381729003886356619561831655304804888940212561094059902051604256693342847726193242472550042336504837428592122881796247505673715142649121878968061356116632374093369261604600168048639940292867643292370581441575230467594588033826864531898516602215401023710043917692947045458453261462125757833632803080129940661139325211655265136289883449914753924066310952144985184442941340995635240867687867480322305051473222539116906225561744313752065553212048826836025550837883257013462398904480067841356676673148014796900243416509515061485869252871223641163645173248350724313435240389838971483539703356129207295910646001994670065372149962346182171832394103071899627745199511488941084413162735421638228734180820518376748012596259688570614808740327455512174547518060644683008748366237562279611904576824816530084368150899568497822127013455706318332190988956526100434175290879462339139301116038057232115268384389633183953013621121747635473084947996058107043138214196766097457664690834157933315815135005338176023585289880539311334484808718444545718890889570117782826308195163432165261298763308777656043720552591729237243214049466370873518169337750517893539578634084932544269111325482545582880625050288975361188713992641018074963403987259434735231969920655003598447028350697663641268942021510039261591898097743260576843581305697068681411716386149148962791869606520532561688018754796556789231586528881300483482225072360687106428020457385533138215074119428113059362674401397243135115752306012212600755281883433427925171650747583255022016159220871062021329838740917666182947597746330030649849557241236694156000594717894797066966090962183088857070559799372745552627378171934949258682876762544058005895396800816165824248028058334814953651253688365694704820369028217766342318929268976640377302672186226488972153846648620183549464503812093386469132863778373939879624540203366146543227588459064373673811809730222064205675808696884691066898504898037849423832767956123418591329939980729724935460780686441460061875740437616920166198571836290602587750450300338900858475759625837999444660303384111886006262104775243955480815553604261706741419359135581831763881090469157945486156723694466830101575357588399682552463256303590219296660048615783047958701556839909603255337617057799868498827297411823526649237595944255311210076640226766071227962119042426372181515365978137045600553746848696079057388528194439048465830939056402578698359010416724776096237891860412895971114545179622184544477996372983884797227289751364468611343321782168803470948903211698265880267524830660381281029289779065138237623137232934806047176550642906576212083818458015173439049966930959001383969859216161784420144714320969181853752740163435519507000273165481235809033766537692984338425556930069350312699230693101426948020909754259160400453704396031749636905266987300634583965154296646360412404756829564479931613321419381733806132527996320373042990048272316184946695951400674680535763229678949646604835117733315847232706745002392450358327958652886804180482750828287100934256194483160450038478948500535302076338711738967143433378423559137613648501588296966604087088585012470653726726627561964494175385090110945318526081711887900197663185156284324879292010868167526844940114479437459356982841533773585760426478059863265273030126931476964242803177103977243243760322653547617485136344347350620400398714288448192859061264419778617008828695579224536734962486994439612166829722178467680983227069516227522276877747339477514695564915784604624619769999833157683051978746836916517196591816238066357241097947740453499464783130770172743245212053478283258464151613828905948014544851233231306240420944832351994731519821125903086367902802211103277681783790334845375871026475200488310555240376141414774981721191218095125715259545802577798422607411612879719422495624972372450120858954464397063933318493793535839475795017300360083421508209767733620707327031730692725193375260237637080918447203136223433868052085049267708538529559066120607089495424654133758926645493762929814586070582540659588124311362668849493761517160632480077510261366859391078592204529276417178919727944590441736741935150347081837805670955056830598957549183154077329301643985254111293023069408229507013364789704028334765493185248535057817160258086924749371958013490530627233451145005995197785732996569876887965232678628424813762039876724662788871335004862869936333711080262550898736454554951383563184035779610805460280753520928930424050307824997321827746413217306941932637415887898817009977588383664534474118701528232339864809584510205425078274477944543643465219167755980521387107578137272369377390583588609947646201626879904236906040695864479951945757314328400765125681200168681887907775168921594624774002637678699490097577827005547894268661550774845704052582287631623675433980484646238854110320836821443511434715911582799645370820390412631226234449284015888242074100710122911704805729036896543035724044387844417625666664441391967161673595029549502757178701616696285263621853419552796556058809376719449955579699214124112860198513950285834842120903095367359605453818769734997046756351997107241167832917311770781320549995873293711884677947840708831074887540074802013363545013748502030220705474544478527086575675258285233162141966747992677620146912936764331776267487738340251242605598074002248297164808578963289169464056481554721015261119547885053671774713535970576412566602205145067900591415111254080017814435108764412497512825907810123819464968361410290925381542783976396301928707455279533804811577413131789011555439265729055897973678854510358490331420306272166003709866538627330418541275633385928772692204413059882070905780298809353995335594220034899168093812763887264705128395711576819725988216852238145119252266131868175784477097004395553061745344746559477115704346475476648888448513082650109724329215142546679886680210749095019275299062126081653601503637967126084119524633384195981062548233518990703200929704143877180288500927656407963851619920512871889312456848955347964387148684019233228845624052255121233708199793640341405604040096006098624963799695878727708834745134215754857069260600827305365606095496849868357027409881552762344137417824123392692280007231879443105814294170831272419597477134753873256056837654761863014221389591602827850499913575326482571028973118198301280917539714400599483346669554332119401559599609694864910602877862991870647886531158738969764375985562241064223411646166294389085469289601731857255470779083133088225155572134383726701409292336625510893087523835638188689114850594936489451055693193503358906559521454969499532744224353793950469364465608049067466044826485164702267792866479676154683832755468952876506122184901991253686650449622452650146458959087741572458096017571154606346130835012989727332910233583303477639460787522736687328410986651222758247810774123733451504316008239465837549164141730435729416765602744032206109447284801536946435483067086714391961799545857732436642407812136156804866550520139153276270229740667831829134364040532243392419979639487005677958769227108217475951160949232637109957316533081423978292251910892828861455893394653901261315644330180881467089007369689071964956031564926306059331413511187571033005957438639213290581810403592183063966136805138914116338670205674190868126170314552083863451226761915426643541169395041284870851034921341953647689111019620693341707925285828584323682850530221570245861660579670414621705048825142943777601440856879925384644192097571532055894950482311114510704132722872646655738651787021169054931855068886891687787216793751712829853957911101433795839441644085097246571568415453096632724981524353130540908707874912868746658933818973982508574037031087131028242749255065492969979460595394819560701197937242953265558588842104429805781469151069601868109925806105085028389973848497969149599758897802640324105534532175423373275659111679857565425477932157241840905506432566829316940725312387592853905553823836999069887567595758262260933131546893212747584988649503262277402841553460415953088909047162221752640174752404053456032740567455439517942509787536862114622079061187097654690438796421633342589639872576059962583161273955348162315884784970010505528474159442385384191595025153283800350227358010245913788646946608660605507656746236928415203646900725140477788470962074890855026156407357818662910328440216404201832578408257680317236597803797017524445758803370804222461927962265429405289631427006911679112876944855057981403886356826953814232530595121196719884423677952324969160421745235901530906594632490807547246498958469987527690593744748716823934432743886590504520779385318651643233979924798690603136073429748759892298752769191350592618500617760148539803668515791632211754460497294388696198813495271243687705101679873769903217565953415832089353072456391316293134870947640178290014075319959843034529603697739312405395573342950730659040460612800756499059711357387847852519042092926168320443459206087466971668383376632009934816602671016351593299743637208581199588365589693244470615604550169471400944836505440361881904489763408195922145602220249159773716657923836603521010349887438494418434891176411993745310712960281337562480186043872742410897751681717909649493270998324469245861312390003056939565299810288488490325442313758968297371572589296305288546343050582966275411733671964084958257404479703388199783494212878307230382811076475075637628641607826255924016007056936790816675958675601389614305790868587973109587806559298500023110448224032137146335075617984837487242978014421512766906034833850795708995908931191918247565142154617579398705609357887893133505236393429122340175619050992941836375029041062186302840693769116910327574543279101731729776459840189477568119568583561064363832041439153764928095647627074754658190469804647642310946698790402277597845683374482861992059456891356599726097709153565739007976655846357439082572948774343634060901279518339235273759276945316017363829895187819872610113321161931177635299054868247469156037939343427743748988431195409569997898616410817399331239326202221564201826102909647192290091196080376585140582845163200808447915505663310168165800977892627833078426439602399046999515062605545812081201946762590891750630114324259146437200844141557505781827864139046843161539089576385824394515591665059501617214105827898469176704292553290805383174512579960631226403057619587391597720271112228772718947328294452438759289894680946322750061063373690165154076754322986797123446791343574551384736563471772256862713341078107066002082553247891450588710451383852264984959895419192225382354862990159021622661406826241220112764166012332108007176556014792853011321707384841010469482627050097967383434146945235265015894240782519203868131301812540536319136779967758665245245470051040691911099054938116913355353699163811912507762149511385979147148417426014799563265018509682288247789562385173031009857821315517815871549371934411701946721799188199692859740538054811627453060298823448462213640441581934859074623863497158703487862048902653320330905268228424831438393497562931268846546246909801383433148135924004791051416869550342631750578545349769631239416304321439566705214782789354780810939487561336374972653845362642227537492122768784091274028891486944107983513538529402761976014167599962020968638893619930955964484372061344119749680316716573578699392245538157318562166283548595830295602185970139111000104539751449065754990878550260576997087674102346214578335587209862452126551265096447403702976193684378532433078977878622472629549583881602269714088275811784013288864967429846962252402087458843235887023543849147689011291608129855210533527306675562825653979259540730869213368193418684969549143528154664598529401406656402997118933257416175575859127270253949718262655589710267149169741600793842790098687087374565187628889232584934717880388918826659198487910604691813409767767932413399976562383215299136836794127732796023097806536244178511765557228044640374618122011222683444052795777243997979497041912380294929136008100165873453980141029035789820350747208797832607655285265683922336101806703552449916773786314759819982244547949994266160495613983942437878328448766931501230355063785583260359873858096245595093349301235072880147076989560241074613738579494625879520078840963523821050853070491148651534610673387839661297961677901877234678145019477052583672724184738661347167906448121576955041699073673630481928712488909081096234844952813753201696930178166418839830423687475741208055433505572462967550321814097754914659879112392468281858276560284723753452679119036811700454159250361682533566608401164452773440188013883377631458449277193436306075794435727949196970218158976346485072124578275231884473729348083691870789974655660436380083954254690159217433607634794482029467891434758739618361336568795700785932191332054983028631349720419607336381203514894570806220589918642363707803788459443856681749235735091101149354283254831152470570117565996891793679315105723609735394141783999705760954739097390603637887047589552971695505095176317614759041259397423022388399347338462650361195543743914389740190846128658847057051650870894279423629715545316489756494791547547937046066135398842022117810142482438766295440578926236283122032506173624646464863982199014137004841989388598127921973393948381014326263241760801937520660961891528383257070657203284954416980040614754526130215173914171139811739010970523473035886623110870429312211290238622595959456450886592044665257232563629739163042455246798018763510934659828294844500311276443556959491764789995579157163261297883627775231098618143684183640979517426131685984216285476751836594058805046129653726268437847017476310887746015298972631241998715273680487043162327732972764242675271064971655655449346574012040490246371457422330947698686459914677708905282200250085253618991283950219203242705072712447839108651838273589542840557841229997541920382596373404513702837761228394333579162770638461803125275260925566992511175119045654557618534509644060896012674613025257597949033936427970404208464023939735411854223022708726953346101441058229760669270929925283754647290183666732498360810294250775338229947994482073415432624610922647394180442482611139602180752242687310848071058479456547695632110559126656480860791842545375536014516316801856404573259509505828360920267696682386501411128711363022591754577579139307155737141713008269352233578829371254304432232461767793129174505644734417739361540196525593293392775425557726792020123913058606726404545757284386790050469077394983039754467749640121669624054231447955637500335049380407038730874472193897497736089875646128565618715000241079616008819788392714590705038173138083852417524651920444558399344999207054480320721057215652215261526043167000052849032602707683488531721917836653005075871562070362670773353870173891718708814725229681143880260133510752017402362835115440512128087461050732548402422184553326907509635375149527377316638508522651312714485864504505842842380729954891713107699319082611721692741499755752804198812001221975060281540247250796424033040310258509820246366338655597234361764619371040806749818875235624379603510382919486921746825112079119830204306710044288942729475494018666457845838173143602452147399269895223524440109408199201257800184405793373753940851652179222692033927479742492272510086039082580959435035941065118581423070916836849135176251715072536328051073617995019747705800254510076784344974248104400291908951245581332310252872158726153620109299230568726507364172972236177278298779076228063650837696052695203743797340720193472133648841411442498196138831574631165594012984164556287753112572298133117758236169968913592385421937978324158374113081454748511778507273278766218426559044959974547880718444616585553221136866853387806795482230283881337564549956541581995724023002863361539261402651996355102769082480147308589565914700567504751764192206569390620393840580849936134122258128268614369672137086067000637088163170327740521545188090273217898468971364918942540701875219168902405714545350289410939878509680648613924512642026041980342949822572572492236403935820150174180069539442521037805678238524940388011779113083876660044913902389839152483368519534909227632888607994489299320492196062306019464654207572677167950855433358711392690786429511760079723140400384427052389014041347538431795457074360577325996915509175900963667269926838003117916257094674983967948940227130212729862898824084880274739273286769173414115495484345577335233355571675896853343386301720365485132941756276555990482452798107335261025776251858637030998500391088715168992569521534383954570368604451025368514838371576686213728055671578231967118284366956641268011717245611474365347729248402197206442843640870167744573270574928727768392870322171221883596661166764198817348190646777222234095709408015115035550973225695679904764100143871486275531029392182421304749481340927945151840244471352117898262368042070443572784703065776773019832590984827508488664886833273445325777090392529106673785026752052199525025426927995631442265853549561465198714795349910292159271184672150738967696708676481084769635319033705609039033039043278954189322311964505236461910789680716276787899074682476582059989873091157159880760588638016050839807602513264862017149595172163890282505892854612087106828622284212104859165666079010881936365423314316108007259971132736740970048255289849262834209948365444799941296329508834821141414441882234661414541525050443121773087947958825609070708525312162558732320098832506790231105960775979318570779378011049663320044869524991994503124182366672648436319232415632647454931413431790928765218007959672489141046742064066553460930612156740574773195134488718630636291031503202546962137178397493613167715924124274781972844100958262193422401792535154026696749327946269083085246693765467664883838808001490414158670635655061105509822734300901409709845742937992919906205404275992844809638915428169777827197530903579810804040008399995033888176901525226337761677550758569478760907422965355026923338713568842382376480796199934820067229556237510847952698619504816197522700092632010730440710805768105870393010416060225324612055127853045908759240370702926127113309666606307268652955572310825888033169671990116829594044734852660183383715334253452499713171931567423202867986150503989381231157082980892097157747080134529834584860237854695745920285019184297911893657268319652581656708188786442205604556623583692693439310109637473332163463378887871832488390466349116200471120637967406242421546830119832490415573003845869721893857659782960546111370501388525404221461416857654440285334663477714936128222014740209264504166239497106873398742224778540672880224404261067155546545689192595426659244098486548691444919888040047414750317524521181019736665136176112284114315284301043023721498164072542888517036201808865079049225376733970628962900937023316641651244024800887653740339507105846728929037747061283969091960780096304213202857815037908619783964658078809229983107702035663561568464730694455968905028161714572422983225515358439398861219320458871424921206828159422916556261639538997214733469004663505870199420780740174184258855216388634909043240505516118544755955219797833647324444091584799288349828077445708160146863340214101634565751199426014248342723434633466160003454544987177248640673169996754583660123380195485141462631664997491576332413816075385979527418092212970619734671052267539408268851275412694339444463115451148980951819981081553581448043178300871065584679604061138063553336629305935652880988121521428114992512857164605655193386125732834400360272480786311838181396244991596887939378105653114853650825661287005079556081814215580055974647242061761912960556705698572379234958238674616442083965190195400443099635821420480756125554189192349974717434731317853991605162231372756043850152431989947069956318762432521684360894401828318759961089049509675475186359589377463782279416068089745191258683809467435919317166384487111110905012415451818370917812186850471748629974947528467744034685250063194533373176892966485557039501555472317246829440842345769147841326778716565430038378916655320179469743222654281523423203015778093785272896750955550405243745648610488300439079107847052511538445905806401421574217571617547831034369617527133325516172503878382579604462179179669159391173208017531990915078135024246640884781167051323603032776403512101170479681825453604167994150123168209415274378201983742029543029255502723006839007766611976136254576789519064284981537016809970061671401593732753690560846780250228824987384944503658579202970240497766626733892745144015821703795447331737405821520404475375530285341330869141259578478435427138605182973390961514038147653552732903658906138901452024083157435482171904488244097488758177129842309354686888559100617277685548172346630058604633629655540583939723559408430729515350066428199633882943103950794408658266295346352936221179412351866763034893914296859523956649902176013838838636326455953126895301390486112543416116288934339624415925435829362540874641454922047641442485817926737500290555869277455140246961437040625232882169432169399106425080878284960520687657419758442581223551514190740623792164285793767536996945981937639114814107983422359579828688375486948267353211896719303871782668998510528502437328350573994957912988331995996260104161369420361540115397155050348766586157392988896985800943528425847540862412391243338186741243117178057176778955751000105120878136849421746355776810203165146013961643875415902423721849177496918350201143115994933682729605365629615295760058589508471137131847906564630097729699887682189298097859787713794873837574766103557890625739491100121472740199393143652933684422034463117125752092957614152932763651484366041023274459085171031237820089495959924706404921116965693150033415322466836876398827735630864653992483527236742317990553552839468862774701027492929763968065430511648690571700970740694494804943956689490747401316274464552401753834274352702382668408166203825762779214469733565777461383427518125324517024402264825876061144249489521677771822659770721391890008105138985078966913311508999271603308428120886451875770347984772010796632026297853382074514895482136790933036437209109526922386158241367356598333621228154175239947761625036805280902973364738305180866390681830717989876379816556529176691316443828268173129456818876883558306978244453591020810437612023755993583807426019639956102998291533004161057670997193523434045921071494688138005157770407146684615307641060088177407026065106685587441758895472229242794065503386923873145650637712323868993517735223814567697883896969464496914743534329277893109371464012284801485645524727457454026706242430290647574230496846605946341063424091521714687050686375575409387460334153888619864420681923624334093730127756563396578789060709682735699996474732763935464736564834159872649337460995402298253083051625750284783809833121646870245592954746657170030763729631774598949398837934905021627195893197254933898034529629561948304647277125708659504880513064194177183649457645745936433021810579993185340941336637354012349702416331655008147249721064470924482072520511758065091477110721831037826967880041841458694335248258014229718888528702172587665926862432999289038289988298878270516929159094407644314826302855501085521004042261969823201410381269368466852505492847997585030143187995980517062683489938092891766332139815117410580233230442096925643818260396410796446943759191721117264854710346876133538110992749829162268326499277359779004768682511296580045960451726442170795636074941486411883611550696278888026829180528404928216996845299300351629489821661421396375220948049734023606217055648883164828381480440617045124608456300062102213546282274673744457954621210298026895281914627447924512565630168709629413009199428424426939453056881503977008530156927576061729068739364972535872980294125938737979629468390561471187213632578168260249052298107397916338716691193143434870858883957606680501933134658577436335751264649727195558284986373899279403311090596011933093012053666672179441337843247918680462947374789377338354832927800082100057447867004325786857395883520825958214787602673666273846281816002560177923428707650573561362925358309342884944082934196351645154998862942318829600602641409624803030435047417264969617544611454436353842193671940570826788728373622272099190947665346186587820238567924812326352953210158989267281323289420843731630175275935395989127828325445097127954029764304844064671902268838714861474157651500719974330282380845021220626123676782440648570060407192992044501909992624390325567470489121204442889732818821754495649404358403413308887128276295739851428411997833930789901613717608974116162536659173718560225109400069136475533803081357150307193131377139765538141986812865130653163506311984806973103658681774465305142318203554363733376111004771870551071589412253921828542027055438331597438977620232246395708996539381425104659787779082853240926789664242497311308066040396819071656691403972282090643977892255211390746542166939535307795177553362589278036195199116627585363323657775381825414352606465829443607135914410518676252361267691740076158168098653076678938262526290460732248472129085515305150722615720261425633927480573082576995632901568661219506516389338853592299390386086463380681300727236840877889405253429909642815853511550576843017509106634672873975460608374752510594452643073631412067549073760876112771730322573166053507185090077707323348103265313843152812408882144477452727804312628270018239550278486595884248311807802908169690440554496036392925744597628721441931128916967072112224551128128549675006553989315409021373340277330501283894434223218635931028913200781239822021629147118011313129935136740922876492602198989012303105789911246850483984312903484276794896921077786570672846785477841298898565103176128981371828437040010312967073263488489570806901823378260953247920854508087469076062314986348236788760690279899589230717839740394921855936258888901535614024603161139528111240522573919159844211590156943098964621910167892362746589378560342098236315079747095603791454067905983075493015803092004634421486980041176479732772113281826613625899274172096973006990782886164712656095056609097228178952078905520417257206387625793053195411323066137796601905862368259961776812026001182872752577227249930601800038354196716354106472066155324723166949126212724141439428476498979029802393042970149147685979854093555470651051896110884695195143503141900583252555090146098488980334563762097406770469044059071738486723688675358788829828347906845021083084464425575757275993909307238157284112458852302808474063442356392181477482809147793600568765880588684003779390443883033593213582586890715100230384683225716299487463871542883235083875864448220965694592149951567639694840603542059459129477209224890781013248202907775934131506434963630039592817653277625198120268255936283543746222490454332504357629293008002977639156347835108022434559817245818700708027824536069913414274631628264845331918339520642003690017944991725991444113256084742106269791962518837905322978728693532836858739773711364840815471990485003756896392471273587209142108320999705597417056778231675434835736480865433911416299333343935349721191487074049179682625671728093406290030806020880771799931866830644962640275735377474882491756790851411853023208574903068916039162715010482875227098781920907549744952110295264877657557681776217133282800664791976093117224744540574657912285287220828670442287172481933383242426442367861977243078952035702556222130212621579541776864350945841442830500931616545303852807097115955287485232494708467843514294707334898484256568423838964059376455566685886327066697910250693706568991069528579158872165107382794549824494821698936499666471361007117628373493967367615488116774434995820020463545485758725685709052504492061797933094619576826182398488636932112913890029833046431026191604244491430226608110625003887745206039533515764119153467028006418157871551597058658908811798704888546990595306818896521827311878255409462862577806518378817031329466913835961094737532601722785777851648904097030468109040870020938734977557121369950015200342455543656905708556877144337215314506685788775013437935904119742278315558724989070421043696530108839510721705477233664525446105926592120680573264928484564066313232638155702201541942563086673785689549386267988938523787621027148041872823790159309923760317304418852157241104257201465569114781968795201355530181999115987893067916714111254977227408826786932860905836436668400589283900106570776175267940305177339608764539211085058003069557730018067668819698978267714011720982807510806927144478731834564841654980939856113126042203319898752221588802104323094768715455865641486912962831638553687535417844131803686057163776176609998231267959255011052435687075215812755395346208922960920826017869720379202230460604733945089832394643093076929727574634477782533924900691382317692142499086945437954650626949564016622904313909984274322605840824406240316215047555299507847327110793825742337680982658896554755232546801151393584144087183960943600115555676664126996350246677658012784100412329326335849161999614939696471534946022326366669535099894961070538702404311849175086912427858170600431162887361030498571050700641289126698438676858031400461695063655612655098182828265165235791212684444596246684120509327982545075880547016761768929115186525485201726098079262756355045930070867596350312885746121754756357893306057013526052028897328465761484151664048637991352043917687172334815483570531865056937330624147346291054243890445732675036267698231186304512131147783894777037846750336727375042479162606994690476719077040084576236551082175022822499422388130773388726687619620043051455613990176325199413693954664059585032125334466832589457061669339533389242142400762869302138549110819127095843711190222609491412074042581299210935527612763200240723717031368998572301876834148297853517385069002248910636137640868112093823856790175023278988678313569548416925946139150571327017592831484914717943062786466864469605124207662307827408553392361354266275511333159357528092441975704639735171612401810964040373509497657667595970926949188633775505599970290024485834046484326947603421617790166924734013062232778932803548177831896656756516650488604525535132120026261458408287180966290811803528208673015699105783364028025089602197943111200420373171779213702623702210219910836865234385951075694867478241056540454385158443619231799581436374386926093032244814939017574761190545301560825846160954023737446599652556643369194581371486133641698894421610843788888869844111005674636411735997019311043727284998599123622690956587994053131688222641667841219638231276040031055463267191374111918472137209006656474827735790884268879940099011658581117221198183737636520420404653275507324751394362940631784848460409711777695479880095344557701934969277369695672247373235147645622645170777025930520031373311996040392458427323122825526024071451717224197966704840322244367031582722233892544101691662036097130743246116398509627838797955417561018151347056466559249625030975569564322785804613070293424949856975785336865987280287032531041694366947712502940794050231999104160186643914418903706638585950732695985746930591742143266095001968631086708795193364400639490519151365893547798789484321910705983853384880110454737855055803344338597942664825801864843211809584718113077309913590977950704953429931550374414948731668682526439554688965703290053606464361945690301246582564419188951693451873206548633011279377341927421474817216341078190366616733993977471887770797678803242160880137625747913737917246815044615730418134448607144355472283510498299325073802338726166558368603271603336542199162518330436684065232044022836445735784299468170289791236788914698307705449087527906311891341306367696453121845206660249493740248461955528247414124527365683517196115484104585669670286277671698164231135444086617843181308329740942122834110330182080722378367964561936211764072505533524788810178940259678839258067445099880159382883137120461299040882065083504635697597713995866351217391963885877249370215190739662697217395584072040054012802862112378965860063968637180254813203753369302231764240686384272439279556255429102994611405104630479428305014898903114608584860112775509908674564117639079169226343755564573923277838986708602958218179997987642045535305473400462716277261177866299365487061251861631179470056200412633435420352023357712088745651738085058490737351726026722642347064103736153266521935240176775636540510117711735435015972603927357590838332047197403627965326643782709266230399336742515896834434800089035446067062387373262296648267194999599005864063898665350969554021121157144000341553498230863424890033605974698055681259904674492276696246376607032224907568852777023007805562823507088340775949502816656718684767600237847029837869851451341255986887385361007488838784192432038616180375920173724207863982872758059900671612188567159483383170056158371621612371682028623658188245123886399140625435658641685400395585097397436828507918023128121702632651359278167604002676787556354286590490179753330108203472058297614540097753027691708923273190852824194988761777744420131803494267256063398196919869711063652824380177495746120455731693055022675584352114044589711114440232317425206647680872497918883418430997957963673827981109842508056698264168739007184745204653185647795801615753072293193996650655624971909559966114023123605602877224425347934249612862948066838945015148887877432186915846824943788421339625655031216856486458477729429577308472697155868786967173794998796169870636744102085174444045471023115645924400785701375553317096114928749344460202284000044265255759381224423860189233764989156947958802425076160548024078972986182693309947846572762724000496949007902826106430687398089442755008770711857220703576793528690023073686880700825503665223616709528273015410881620019250044344329182312033213064393482122083192489407205745316261293671368007669188073154250989894975325125719391519063168517075813221199940433347751611514274712661788440453212388850525221907865653122759578380747596888386533790227305412361065689894915313382964435415192234477845247711196050669132055041247269019399340678468290185201629211376575049778715125661014582231926914924696556925821613110876157416119245796329200630002498273255272233839907467740480430552626497184001946183494200124259411864310126111820253993120314291620633873885101974712159922383757706469915347446945973580266677387762884240605962802818768103933436259826599280782231598543297819003581070228392832113200457609223292240695012820487612990861153719971264345476841153511388174488432433146917470016676776035516151093954084323512022650381223143937966823546376764376019036560922935510178660038110994654819937607409690017229305040812546659535753591820948064971553721962651413158809401914636524011017713801383182740447603737980506118688169758145026731957764943683022523993121307117212066535503851887433509622076223742109858738419132023237479819867177699010242826115869043766356403695183964393215062407234166253316925685571006138126548135041257803112727907889224180997408846460890103250990031830321517019651996567622940417909956603770362982549233983058899511258684710462891949534034558884624247377771698225771070218430738453631281842071212403864204031285259274781813459623903167505785521709306846467872919740612561780846359275045395093930861504872136690458302940728699214333457978254719310704326921403468604641657591547787057258450609350944380811712582777459140177433809368192179903568431701634422123461270022778578063414927992071851336685870650015799148843288006211433986307548807754590956819864700109373267664915735834911496680616777828822496678546127849535232875273095363553404920278480195172535526419839459083164452306109826756415517575472377807524084006547607348870729319877173336698876050424378163825463090704626878644883335597886126996156340959062928552180231515779602323333008060880095783845608208177375448610734037270161721755597218782771262712540891541041985467852493011507048853696337598723095903203769301513013230211021015738415159642726765634879938522661419524614653303461459711951743813556581536773088848196336238569122328505279248774279958037444451669417019227770494172855904377517858429940453245855840150555538584472605830803147080439038162456452841371047703725098228072735942422930258903058151743351845849846851641767898313621857951054008705382222399625565446755769156658978787450999674749301306889596569513918434386827180284322980908959572326953887169175265871163437610552760099702525619087482206315648122604210488650898468961576870016210784017767403134293735361264989413658934792314859162898928428449305570254357343568581504116673869508173638953997314163627721564402425343648567359690253517987719556149550586217599007177597164407160864545826149866798715837196392657051563506707014846486249202330042059667850433127115200259449693086940634097627177495075688591286821747563482156825621067639808798472121637581015635100131535745423278261835510105744093528576404959000382201220628082791397119808665521002332707117548699951261430958296221729004599653394841263709784729815525480277268014070711327187163399277590721621306814209629123319539334220330698856758586116198538609846816022045826096212730357286180249596380262596853188181234427788731115782932681797775147882076802871219072031930977984223051896678766189457033434931162229434234514389856479874749316879314209272254454706405857885641128668886812670778315282637807983574779929676191948297023659073534953450221780349947184795656716376264268006833427587714375942470813415329916156973799173509210627684497772228139921327981533695183088871793808395457432869770674064060027119414238056904883363547887666494979285166532808377510134986940238137043326776081501013759313333202337976691411703459934809942450240077612584134467548792597100236308901892316091960749376740907227015408448983991042758947720482582327239268189883612391606551579753952586487465216050046019092504509493307990427738584373288214829729221823139669974657750358395468012616987587078957087914660130859599906301876693907893295291639127945817955016440845042218604399810175642155173463534690617310247524996247911564498482432651732973140420542562475994473648590376820209645594701863540016560243378560082830959354060708802213351412307197557224389120639930868093425231460315668585070187022440567758947221974861202333974732200095268116996641872670695463565395064176189290857424014185593058177684812185680255146877031950184198286564848480552883752556432382200161057302600727654908457066311999195887125839382390492923560651888462242745312881966006508116950694754792300123308175332391630526990340387999011560793678648474788654368909814562119514633378572410251614387454039389158316302695719245095069780042621588273859746354917783580637201933195676626424758956141308582972042982034748081556912106693262096932228420314554492020304935086049454892939966227958231750261942133331083085055678108189000940716780915486414352316319967576716176998077474056940826168141155135557257156023729015495112483119888400736992790354909225323337594256093571309136231447592099053584760674245140596116254244596257343684833378230468366658413885234288339313362782546893882898222371572361731214610010756208149964816650429301578411496524314625854236798329216102145094981832358324276160328264304743828447911086790694589712291917847481449723622146442889578197280007147108704227160232280778799596156839392557968529223062142718097082382398610343895777235059689785555851944843896415543816484268008501099046333382062709109486175773796167506253272424325034377181452403417322302113336001889887771143406817151392326452332079191428750809934505211698514300330609615469449501970568151224135754253222443928102480399736203899196476574898821318044407798474361221479354500762063487965863592890138297104179858929817730337063477354805971585852860244225903985975254982907903224564350718465343292907297178639157683885269238756446302731460057616065126291337146605828620297419769321016838101179239650104935639758316672076226284738617062922904791135492605904231136738124132398195469878586603451964175802040036778098467831073718778310555333921336920683489742746520658323453937764502798357512769904918760481108962402500151048083631857998325962798559759015911566725151607264719164789894423801459583771890805271551529507612869724391207612461709795897551173923346246441119727563254369750042734744754682644350801989910027897664345005098049370825428442492111660148392955886312063218742926867900617320509062695742819711135376260557569350467712555967349450594342057719296379304825352664983743545783475319144054395665042209689951108369427597032247602484120013940505963445667982589453595016312571274383470181099233713916092950406413695794806679619883193997718964848937151926559125285908524878573808356027208934339445932698197383992668861122324006231987290099402376768737181700127307936855983917952684216356221240893007415834924498861186420067539441765406385411960468838600782685346050432085596489000389790872857580201095969217988566006839497480816626880373180726032968294494575157089631224258956302268822967509159276465865904197450778936092797631353489992828289808529963461125920881740317851993873252484555168822559905133386055105018620235486250584756151381725407023482960229023651648389084347363130880573958949049698256226210350964797376170910519781978396436410708591101075132944631794820285330119142548373727546638723928769698642205686824656595141684110763416890207186477335357109867285961329728675368852122532831487821994433854804283210349444776804622597721194149903068780281665925991887690123906414372047955217477178195997756731814475380455355691388203777789358489929746718945674672869858941275312309267087137367195936587656958997408522060865224456549871787675178903108533893975123252842964449551139465007985913534990994221551568458024331355461164005105141169540888398878509085642738004391144660440259223661610362381559490575375179424946846029542535455546290418641811471610333052687193724740656912177968422990689747175942344904652512929748391444911288234108318967921054845451490864821346530355722472015491516907076197322315723293948666342388738563624341276653296989413419284487470705996014950138742290430117420494751330543514641827887138964428597844656301340396709306636597161151454255223399972983090235927182897001280061758932140513871245801027120963890043737016844431523810274735300562092831555185161566901757937046742099265241713991645894676557102786295850422653291670675465544599794666772446261246415140427255033432088533454952650738089732151348344756341667098659178761658959070127720295975962454794218594039495356592282590517230128460759553533880975918386632554816228955921420584375362580808225375915721760264801841010942744129948787451789805555091736948867948498694739216816465871412026905752580708697677306211179211783968996280540245172321529703445040996015405902468733044356031191855233772954463710573705793994857238402707597601787620690713792346212379971733206692515252042634486534721870244804733627972340826555700937801176966215977089348339387083454826614567737132584764178194913712384919040956533142225351709902357812400986229295987948972587663843614571028541102506926447710656981969648263926524805960230290094079994066694763216386421239141643671302123819353385104154063950100361962366535467890902152229575835649471757476687719502783541938325795036874351573336925256945791130266478498661277643807778910173793209566360195535591533656685461342628502101422095020468703837987217695285846482214578048558599409393064080384086022122958661113360612651773679994933026990537860146691111281055491605921390004077154294509200730900993105430480705952278191171934569118409579426486862941463248265028922758367025595875764530327315830235183077693999102517555498305858077514203682022995410202899328982266866908974694431997642953041028706438837643206927552563410558946569067286064898418371489524264390030226658313219438034362393382348744915070875734635050469322746262311535571060878970547850372880270270213011733154911477369024359069438624356295299162214657993617119863459426391411788893493954850574646300140985230873605044898079182886755669450102697043046387810257567557279571463108873521085462661436283342218892855866174637609722596791671427627154840598941660919586220610568539122543483912432901745474393012640394627175488073543432802618970163308770175744397448977634890499001120650679995259683350370931201803835901903730310671285859922161015183434294861553180571150443953554945882167608818960816047297496749700409388103094777189787994426543266641708990686625880740334577786543944200527399610093290311562102049607716617286801480845120926232541585092939131941550514750234233529742323587298184507666875711304888398443425348080289993720286582562842883741157613950391305101987318310018013748397737814319620595707806443639997358006200399303978343241224181427260969620141065314415254245658518536487983444653214193786640522228128399286843811024617647266511288866074655108299180860250947553930950490887930129022478675833666243450281691293415685781786916326711655158856355585973268383335421564918381064094750651038125392578134331578730085612885570001778084563266224818703168917942181539678970257952874392527429615337935869743320255415603207291288432651511231374235005477588653994895653063578986365112023082674168783880148227691954085039110549557241590015936788758221373173603430488849664827707692034416950524317448363297442613580526232922789675386887140255735617503361998155423682119030761170132657157089247876384476501813044018291012102795454019275268793858163944657011412125844417986928277780285876758393926279210146731956535004536536205968213266953987518769807638693387064078689302079205220345481801430148221549574828126304485996731459972228189020093378618846745378521076944336581836194512382288525545422188547455750202469077334486146832184329705526955997361998897926190981518921195020820391581843750808278155447840815733129948078553349085300146299570972972524821823994797354661917714153618553555939940620443351587557090017567577512064066171369238781396498907223606640955648819267832596281981367381097626723884813724062296686543147528888929540514089724004144340104453271763581191992462811868272177589552429511900274331833408272025699583175153191011418126654450392968007112852339844770340833976830525571931227288142676282355440085325892364987464082848475635806869336863872023411536484010675713318782098970681842677939684822689187676321801380254954584603476395225652075429376435419338898016742236795125578682479262271400163516069002415837271586554195731434254929879921624726907232860704960200706674090542388077020334602881528113957144928007717957637941205885887634344647656411422060377914090239782812405396057629237418539063341555006548177417908772652296706245811794166758235931438340371028599193809834359753927854303872532545508793698647334385323482692885345852698134748389181490283892249562441554910869076468120306083474848271916403439138176404931361930334708197224502131700103132369399227904769621168962160728100004368829683794478526102855851073576030545905357681187305415903478180432126180921953206335657505680607068576189401134605469703835616281948194433176237085736263939959894024554398678991584623739858347923458078062792323402800029958669847475070498475646313793507674488582502866289804337095118293249776463602252010792641793771948221310815177111217491156983229935393210980145935908182071697038532560253187247497435663974567863333376565525788839520471699556821319686134656195402003756385528417725957148758314551247609678275348900412473018457728507506103023086238746977961717070415552784745501661499717940404056600797890637550157696838349615899714693751388762511330762946737262589292488030466603708067894126185854972209231622747807545166486676160009872157461112183988222740070738466051373644197854538319794979205221904599514491689179038000970526714339015751118994801707058255612164123001190929706441262560761814429636727409542996164937629609430142098119155034920687026567244437005213676965091726428017125600220807568202662933961966627557118056525378500467357092599409185330715335852702177071842670785688256579631490413756659470101929949378118156559235796971909194176182312489974854825956356926296140123208285416891657446189442797709361591322583647696671672403302501271608247759522215053449027356929001729899630187726925275108614165620936622466012763961510082006345399220606916920505066610913509212444848255799827680518298182446148640998152487616469306596223603666648440610596816503130692918822388232416785343625436694481679978841697315597582461899938181006208101418046212628631881126731542882278264985239389083355564434065051768525022640147553372572382515120959988009213578997975846753311936520950994780235177465461588170736929055392827103929442077566985392470449788540341943628880308709499793335978596333442038708352641762395991711792945913224434664751780798126169009286009743205159646863016191216104672366399624989079123136227742408803052834556328809753998995940452020146131689348571963652180133635432327461553782630738910339274217640510956756932030800894198253793288413326491756328655050281328183810579786188796027710904356438316167007003859028320558234477989642323018678503876632518762608172951832425740698048108585501013862428529759627164700087208190329584698655913830673035426402784658627762921667512912696686087526623499052973919656124842547873826891192428336937783915118684009785419790464365128999764363824252219834851749633872876823672261965891816011607580670421264974482883057425056873611932244276255349905064124038792609812879633711407622026629723263309698641549098742357914973695878427295023281423023736737416870686573169510804280867659063151302673455582246709051791520736253430626009234009582414213866296603715638979265048936943561453745192033685427848663997546908385363962700993776752702188833634430792327160693990268326625297243871598397686048098389785075841424423998277009698524677647454886334941257504153807187536053300234323161733009851750308106283021282239753889286309660824576619435404870794605935479449760674189366790106794592732253735034367588556211799245057121580587026385591174777361635237242132543023373125164016137881740677942734892024114783514315642285039490236370581146663387569509463220200542886545020436583504836012362819834193908286687595791978937406236550269045749010432857060972024689328277424927985518295894299883559051211047731618391799625859091677938515207304196029385256224800385595622699381725334509260755002009134860731639332960502399514473398680968502729365551035385962701944955563431406893887018831864784040292941465278529574773820406762900543311254583689154602741876906393152269119103463634944667547413196699062389246417579278610708111521122846006285300354559016762677727234972797285226696440203637639779868420264965031435664486438254584527782705013760139034463762322536917693929520984716802322401410558686675127442148341158936357746086952285789892856791597122441945860920087132219678417178973925403633710307998706038325842140218778638354278844626201836792955502931391267267813379952877710116622247474116209069084132130570109858888280259088527465336731703040889485055902734654898208268886424708540783335441631516061298689512912066897623212410515894138082489444958452621654606701551519720627204884868729560641253381519996575839070103332266973511573582738941040849650498553671666489876905504463600866522100496204977469307130410991087435145799015366264700852842534526690855038484815064880632042240641953836834779005531318165198305360726221498223701160526697428702454955534676561331031109025215624404645300516481677256185162862282777964949534206914623816800563826338374159345285455303890141914265736704971351549720901910692265506493828286524202369699619201770759232269374480992076504447650358179551765535413896131362993016920965671798803076857844628478237249440311729177827556666463448981033609483445168923378936229134126312332993637135006866079690988429940988074448622772270686596023234774874780914797808434619465991022702651980199173312787220604468967124731235853280084612805931200180784183359256007332822924910697260506941348050053014455154104598475251867889261758423100125477402864529084643601407658306264993325961071218115135287933437284429954221845676598582455146001066929859127429500396092453347594900871935532451845293971067847281337688957988745351460190806693977938503374910160302623982302458676082701083563104834620053742295172866458648199012862111764195285714080353700370870551745782797034285508170091983937408792215268274382018577284978925802150953805122781354338197196922915986199488986642636774246468974768668640463222246065824338137027597809505921049346927801800337379354570343461797452128092462112693221491673600844251446137329998479691818859629439789887940932674958312587275286276713274480966375843790884263566816475453042842275268062875002784192498434756073497571900713357077999095847421053754894560133687089505574650465266543205108895970290341818282320066008846436309502511262269519042329350288062725003441024855026445667148953305154125822580917387853448347417214164247117063214625410049581451077422907906770420241406765065011510139713727782585153992121812789340848676924243365380908216396647615703155404190340391660440190489199134565637137658600704985065994672973543413619362520639774456285731840743755601204487400575359760772495361614957858395061046527872656530705438992917769314257478976272580048272217912787721165809069914806450077443525830776432669039459725779765462846290800870104803303945811352294236742627322513620608415324563909657672536971373780432357449646204902869464149581649941663499015722267157210073906349667082421032379666890146999993917756260176085302113470144868866664197027952507865956794945901389712458179848078429288726071401710028759856200671808962688037010182448957393507906436551489357750442779439664824714574308292777315066544367896973037278704677869897306301824711194636866813548416777813552996950670367615094856594406734548202447679851430330848673852122699123942324108021927858114785187865291638017475930742055150343111889826108109715783440959115067464515363247835814980553785660172466444337247599440257222441438638859083935939962224932809960300981083416107058475386532718818867805338949799041757535626967769774619844968192226245541216809939594748474683069063502220396863847907699438632843190238989255781859883833100973749177222052812971930955947273167135869176996579959797461198478524117983375174211204640292033713078226027054061761638167608153751554997624440826408386975447245517266383003076958365743229663852912788880382174237250840069688100615444230702823234416808726084489823991638306797189629097644259225713128346199293365877391288536267914115737496411105980187977380189750247809421706488594904024432054547434829293380762252603175035157537201299270043638982938549997414621592509208638982775357604544353707628482245465576987898725070059282701486267190504755725394817798348346660188459965181423634287571327600079720613122338770531542955609212056430467801433562820105509737040303298513445997460946873946436597089485395164097827456903815116327080469910642240005332362386989216177458802006777026855608093908337514450782734446031787231890497850969750851959142610475066391189594926570762038173980181693668136995151049775621595305511658143483457044331481630249625547315552891879783159567794237352055229555498634438062022122763875161261189923666310449894740863504776930510658038378521725167520611733766716978072934714293092398874869443035794364826638285056588018093342621023609366082521441606845973311780235572022361924564067886798085849538824254155011860499876906894856510163058899334647458029366023916192938539898928236325682784535466582827630743517317393487516920773743552533737577114458682022293228489155030351895996437949379043221930867643768017193978454116228022815822995016944035500981301902365452122346172947324067231500996663412998962509235823507812340591605895987809979501738549562633324837025838913421557226622896111271141355343911962908031032538565151610755700645827931231974659836375208399848281441537327757667130460585629752394452565986208270135905906984175275335023134423373590318293894700335239120878059372677617449536033118889797123324767112716307779839561845244792741514248356204174683171030228558050671464164243127353396337283277181674696149041246213067851860154008051511135758711019797807496712184183862766873517261234220477570641199112375804299833556476429140904180431675095604765286653202551693913663983851611654201835455092184930418332019466756172098060780932148568518060373427205801305326573386313855198208357415854910834699355907499719481784517964143446036353557681352652358136675519300442368701439809786676188356536142266150814062875915215981514325862553574540923675898436501683872743351282427705911543989949370616589738810196213247206634996949031010941056166432539147397943996639154730519802935884636251132961368565019715125840796608677171435478848265386318757091156826354068529232833381505262607127449707791249383405217183790100916627094712892194939633660770780304942599249694463174031130703548923293906455534625620475740635536172690350591877964987567744945350648715429483074897197829942161281805361822003294626415444686305267885025416998845575696827986170213164292734779929511996446549176741354940057560641124330483155405643740414185583350367361670343913748879804133900536231236715220663354890479127649689266275750928446967484829440861464578939542636969899247431862799964418589206154221059196773471060625206049653850543018148960351306174107053420765709255872398029801546681086510583158924255501645333456722795946616346174729495803675347995772591873302694830793623651004187522916974336017397174546148410993663951430497677887052183250053663109349832785038765584296703170551557227222494105630809761497130898677442244952925712675000922537528554132848506377672776426349962388930345295377214529574747156366574200480053020043717708723554208063110654986810827876270097287994790535130038823692535391978358402168069449642252074939968564367715170793877383615472620978888238743618060784685315030785489988649634031158178121283837934438908448103936287650001604948968423205607814907882362032298904334667824119621122772658049519058616398091372548439589600831175460342430143114794054233424457306384764664336402276066013142475850933456232069287329467598234064105772970811540225614759246426682456077580347508249410268774909765158711847500326380931608465022449398087157238721103864972865619393962107411717505361652335249412919173253581198543582162042918521167173164167767548771635232510772320685803694841072815988106047089169659287378329507800754267574621484065767742611379671742808036705168904068128463616147620419300010047105850981541671527647295162706611551080854714394740059456167976730879270894172518675260848837057864419795907739228033986365023068801573171570460173720323903758513876380887656655728386219555184312703504853339090700527829744434957221566435289815170610219385740100844107397484636556911628567083915064942288152860969783629128574187411232265908379346610741873131936866026707826295504579549757714665508456829930341736489529320229211978342753661074426234700116624859153126050950666503018375601256692399977925585508150008195352394359192843890395868412375038934762920009855616142213395856031606820257938336517711035028311160959243107604901314862548766437677455925795288263590805409124692707471932041296114466394251459435453247217792602156807508735134315041678796591709744361393397809485008078684524152324437969041247979824440029798906551854639982891131841955822408243446745113760653031193660815956794652907332364448076052408443014528384063862216407920096224726355900858818350090013728032627085355613937951879091583334335654198247858025319595681219680167395601023578199784023203460593046086421177120839892275191552505873311965501916463905222267518542768919668376008411132536595634916693149109517956890560757271935160313811681604387196459010047778138604225558665916181739876845459630207634255227467330622020806392134184320542925934933700863691830027451529491935352586046174960553388204432981208549730409783974786111516906025815496010891413530896554489550428850066793618798252405542914000436934545066597633710378255696464409436098568983727630269934802401553175685648410588088092455372255993612696501877900119948129278732333261311819439243609907671173239255854173455928656707161807619626926739916930778087631045860291730922402309967158283925811154487472688238459084036107136465505819133022438627526878571828088758267882628192218779158850531745868915036967237654634811441888967136421810458982944803903884427232602976717608766960853728339552138593334739516725761223205569197580206453731331768299591231530402647490244998638342923933217819418477577291289100952716108869207358297061556767078165342705278048214556723020297622697441817344702832981548578992732270905814163324428330452683702088459586483140809687344165541460220594391353364810951190838779568574496060940793820702048331860086150231580378268381921962160515517802577236972482385514826709172724688067481586811717217351576817670731044538546541763202616520841687741978487824235620848942268862291474778921063851555988559967192227030388305374019508134623622657432360445544172498355822361000314772935731351800564418599299909731331412691859877074158888688386980728554556383582523680124575625148653995005623256489943538529236201658665039111592466042929029956577629195665461982235659096160900542878360249713130252793740796348415558061921479655757778043171543952307943460986351349972113831686679417055646432246875535584712819917980259339802607384029009118688007703342313771469297175846530091010819392764460687928293681822164378133607999506603220481869906713286431855563209374948275645031440695445582304877034426834185443570709493835972102998781913381408709800887156327615861298100325526256863086897717350705755460642659804340311377225561588756960552863895468738149074964698114513810508643649353081346543143321122610857466051082449834411038158272343680513440577731282884589110200876293117776689923459375789458690772354619546137184016818682471852727813093059848740777888549940743486309768425697376982718336500656765719487464903563011716874807517950979585461530230842523767746218542783773229867040776757767690744030826788699795151325498036030936506412237082800936812294003503510699252865518200794366501612559245609790270012686923074405536525434830834145752088597327783595586979916974887608313630859604735298834386970985768467290818730301440788776045370072991758073521765179776871009175946933424896962277773571665743144627489995553247571980073063559734468518319837548139465397269003001937347995938914206861820716798610336021524606911071818628487318417967654918551261924677721659988626573445611507625795474599706285103036803944409646040680281778194265057688587190921961607593359663440624869269139187587989394856299514777806573484374246385872181319910342176502634492845379559577273242443396115577892985040091545684043710857297040117559440937625263691218727310199626920498464815439219382797700932728518493264337216465977029369091053861222735155826331000732807982268658418652379373795169562761730200716882998102408831736534120878698191527411586032636868868182285329805330198431767938842183490255701840229981866819017762858586539279947019908307473300427833955347550720322026479771109806312097515547591298419318415997061714963425457333188836505191435018902605950494344868799815069776809587121805752181552700477144074125486177470367038837049341208707853752767711332768533361158458274498704074709438708187849159074287354869486149779969619278490336577297881112018304692062939351887159121371835921328154219945368120656847423196991905170462940991065744705196005517393753279981725016006595498481439860964180811051106987344224887968705230548536458748693341644905111428424655555176700951330133176240759403433792398017200802358995524057950364554656991088563614566997744394949500802036542869093683345392531570965106934577492602355500862593862142064546878748292301919379599082809791748474051404595792859647954943709605048749225139201226269141087244125309290001680298604421664467729627841470941940293038046817225323307636761944429717223404140255416003624434226149781789586670379970941662849846750221950843909792993682199870907677243236205643273187340749053661897734265860253809311120743867103662598640304345414545721159485286201977590789504485646104925318456565573492663198101004850714312942299339713444694017969806772336388302087166636636066468221349269815095520217636858874444527386675150870174858579138372611484856119501686911301395708717604360592489274931344513691472828667067290696544935102484512105956887139589259682346510115070589352901768140730382540078739007822726132976861197323522660867562183739732800408834008443561428697154282129502559747943293837210985336447610918038102695416326373883551367680329460446818533856336366387481684669368922964044073336060120790657137867850520154831731734683511254305262950032236636430040197010006030378266429155084574951831578061924894235117261005068987486194112054893758290219521811069834411026047526685500426628567588975226055428452535381918767987532836768817967356486009202294466211717088783407154293830037756700509584368345033416263721691102113281914788410564059411575971494409715988837025661331146221057238782766436271988921761706290590876285949443183766545775385194600047311361311273025835743448788167030662966612645715482833978165209444051703536259852406891264976889636615582022382438127054983041612763162359534276035262184487514399046305560799567728334731624649965329899383331540385962650654536977213155724428598461817724579265622372716992758803899891969924374460638638501527002434061516051447830114919351747308067404707621476409874288723615317338910227013693208959426540145548454706790600038521654512850033503282861075890164876298306445616880488452722593505737659759540637575465087704657571910072375485988546854707886071525593954635105891876653745437889836662411437849110145840285047524787410847476615891315860181213099873329978708735404951379616596204188034684756376508571694115222751753789072033811271550413345945242435681584464196651802081867692105925759736532861019451801172801153054624420650625573508624083951619872881164110306256137564614923983371231882262161167506063218668264209797188552699075280348737998296990051991868109612956737322236831590398314233238125446822451626881762435242467478465021649458942225343813313347815377906450578669271739764633477364301877257222998713087836243133545903936773050648735270245082715742628335159538828587421039096584391414972551376154031290435441712287540613413445709492865912959639380953048852259995073443715669803656014551861142153687073329404509092135223118285419023089764418752667295119059110139825427117287189041949466935564468434385796797652804622217326673371100297264229796252489638801522311091391292128015579940945856427658468610404196315066812658164804950717215022217182977498529406527697567183256233110896825174212997588830641696200347425289528332580663268709110899512767636450878722771053921384447247216530112144021479372470308629474026358881279133506334763437525454990255229139130914729071078963604272417164032026072932267213192349926143431296922200156602163577292876292609238856170868214115658285576927746914627106675135672561651771123678038301986610677291920702431551118885629213830111361847339549156449226909042192149042902483147781556574242618322490992738218119371258421384946474434158500171983747704060117394831748487951266555887478000576964449797285089024165110703497837011182663689370523206678437083712943327639759531719890439958972106292159091255277697843488032721318991217896294012986558702606564866717299093789468744665761632203420288963735906052005647856542383456402049826443378660747656497891784058579104196207609088269587040816110549551567209539675928833021434707337266375631328313970069512619131762545424893162236751853947340151514418348901850662986069142630144191151158854182181627993299425026484057485815937392841977068787850763577585598041476195672613917773718196393091793683872262679886972357784002274089220146461517087015070851426616715727933851269075559923091623721946897360821272419991764200410972304512509669650263127780733386578574887866791634397760405143094265491728561390566414805295894963376603107964676149035689847068046097931602025151270789016557021791006549140199902119609307416625574780172018681863571521676233100297835156220086479089300234634504904889842219543876135298931462463619832294213016817211906969950370672536904037148965334769581308685743317339033880034036716122253032437037504476508808423766049040165420770497180600856003486619565218428974476559577219393144136078142287620048290210161603489581719282246760830815390264750577410117778258642377003956891587481984594436076857163374027960363766537121473721906908135072549032267588200971441759373220844522297249730906599199824708074468930898769869760734543849814039601001499209256451803830046250332396036159166052360980343231080277495826179580282309964884966128215710473573574298084041031284948851022582967525615332961073607113873890749373080920446955244986827361545087609923478551308800900543314694136534640426890302935693306149759793364908242167655499761935807042121599089214826284605514609377244053430909335291554148412140322491627281200732955760361684363437552827799890355859219234718672548083965096401316033713078964830451731237663255968433248204058084606680870875764230893849295078420588696097288020698542098703725217265492522197367005630384715385744031104076302744775592152642754529688499209880099924041626806399087182961354101020625943613232715563086699144282811626464331913845933630876936072145069556621793885379749256062144919220215635244087748558489335118175557732540723688181559209909508845812677354235865549314259765995554549322453805811304694834469759196916711130898701834585464437760100131530458353656642709530667658420599614976058340368279493708273421405721297581040774554262113140326711716085833181253783818146939599966221294613645412564905489062203975169153656345639157355120230640510545802381995210928314109653296532346091102150466291700319123555666817969835740223686323363822805580143941988977448409025285686370795030643412415352974439700333405619882355038984409927923530712748381616438405548660093262129510841711113512749194686123146960819984029950403484827095643807373500015408556844972792642523379276854032748677802531074733567296250481654413505415283202439765608815443599623787288303135366097025747773764558505875146953733231138620355966385313988096213297443111430710626123746129434250114222096349426393954068037008474804525812973177230466404351275181421579693257077974380106804661425011204017462386422638196441147313578994913943842760840338427628459402712449947949829029140639848113805044409938793019650273538615817247287762385652465198421880358938792133730486011206515165597248644244882195744768953639568937236237499622734374767743919851207946094677653751824325184902467582286150793629294905931381772303996420356193787627974218343430838738436828967814200901373633924840720581257383373138701263358641180926790887201265656172296332597991409712251229628235265156618540655029147046131387877878077799010068412001797924132703052640775547665402500150271990858657086148583581237186864084042427512532883929923824759797607095875406368123390406375100248366457357688894446271818667462255077919933770392071844868558694334953678309599140590727864204327420765879992482028542520847308580489907932330957194562230200879389571451381835699739690267496437055384778119982063828985898431074811413535482396263284832579126085478028986844796177051163982109281291266621144484663519854309765528944615635618538297324850236542074757276317678831123306469530138926593634785420318592814886347043836081327517645393964074896652942265600589696781522593234215589799519558289907660781838253892111570588060303206182082960220585891605203908049898568502129613652399845676726100732402858067553557785632080930913057476693265833044320556553492346381013371762456374881311378376153579468410365090700923925727811936357640653445873337471279430519794339411469893586417843368087556895908908035551019990263053942778271510743475104733450277270486813871876668255550783282096735700945640759019507522222846363065679838423755662092679018824058191653557937879168958285385269489229552943353946497869121250163069841777837619187372669539873367829928540111739630541535750095503207439059612315385296124394042322510056368145974673042418343158886733243558321952014553357426252745965273367323511748364931290099785948711959704095522089506461804005254610287699111786105215924811751545069965733856411883518114331465178210488836101736981754857626260286744629967779563665651700211614966653748080214245109000004530412877337143996391916636101970559597352146456509872725248496679884652087683995058312904235264847862611622829196742723311393627035681314055611534092703432998743951891163639745716450599553135572022629329073023170288736090624508999385120865197687124476298592331041896225680458510723176048682194062616009971640888025431234323564713192216151732495018472696920691940081900652216600606598322288718375067563959823876753847824519583285838894817977923340447959412816140830574723608710715459825856166555420627291859905047527104961197777541903917057700443829418218547782026963108844012795384329443686912470876431629207316488282676322648522804636818264229986848850139146277377101722942098770808568904387658668664634490839321802161876361733545464495336576381916093958251730239346818272150973836504333532303219131677915609618962328067150020380041903754603343071418265172814251690555871916895974316777913095544976789128036605108018349292536415902221529066397373243496465568031032149930695143659892712289933752282937233077597136518493264497268014891292895414557464754847231514420469633225377833961667319606301130635037987637754839925698925653714171135138857803236403953323260669236337313518148697645398881404791606459074277509769679159090887192646742435364419234566096115639012296318623016998946156901363353106802905556312505939980882246932976186434466006861598650064426346206803968424461386931034163862520262610702495160355210104839054788629042697649147659714085554823698907363791589495181653647225299481594968999136829014823813056855898942992660774782545094029375841716320945155364544485027922824839318056128194097691295949671127079781718949328312019703153858356955465423131646745182154560482886991129663547748321338009796556282998514632445945082318674926737670930965619471198640637513499304435292539334384982357143031163077373651147625522001607300386197058052196715170622588477815558654673818969887960756567833341328926427045008238117852231427406164367382825285205279082247298816172054446398332021093098985721330206800062663080441179536049628830423432028443635295857430688652800594622038100604745896368776354699608043952340150170858964827516184323457391862856411880915813516496848039116670244805250133019859825323410722353918840992932931432583731983421038824928671615238513019800928464962387338775650636578470059056043131704122447267125104083859241548222609796333494326633197041543518164721373304958499414385700593370542230839568842430112809694008992483985641977132063888641812774047622935277772427942166657692718468553268716116438325297977375339414815363325534633855578607595332584375415277990618095561052801431131470179638174331202580917580611513172100882263869422589720955644692697212516977244852603945609286989324424072047833931253943258493432031163886681127848692944301848777015589281045740521667548711787843123608369804933015058468575898513541760730256841711289912925390856344126508345437964266892934735375338774643786700100345936564828406268582254985067294732993524865398441983089702311492009587533054389888424990543824455387809750885359211841520658112119913385781960560539372893951723816572633469337023763320007976448742900467046933942754053013625993265575553583790692489601072722252989454007988001390274844783560112429631453341825962363683254449920557631293960343166055411264100767621227668717662512073202873781247231264302645252100778265353349028200464777563598400219232659997211712050608268537018032083737452364765588524140275011117271315680139094963410360618872718528722602462578269092006909955037933333688330301018332535037008177528884706527190319150112049829416643322203533914119231802346529821378202134837684470233451974809048468943138928421149197995454009299589864093277218632154097274371228632532838916474352370006033691988012870193222605646050956826060791036117480951010721939323818142137848296323277924602117996320842801531693867181135239756034649030048288504478534249673025523410205334386762827301248221683349954900010609278068571141316753942083366076996047861050188500498069392875954599606153706866998701806008661870387713022986917503332351042956920263714305250157536448396130684575099923615621696284988077059424157171857975611272600305339919780739597952267128049532689234232357364354183541613752830581234454939361138612076285022721313840020640389533378357844933442759183312815440033699765545447305731019011033364247504402992282351856724533110278882471676861298896695089225381389375741278105065485380594584793922208339374294824126101117743004452952902161619231505146580754968576111625881136280765388323465260321472605924042920151971700821745440426394254378575005838046378093729234636616653239367229849013124744238221475811556841738025212812294039223185385540661215746990924774386081675389349704545963552717482381412916978272420072341188510343180582007987910006625658751402329501548908511590461762942506871353459779224982388913392663760914475831255173143491356101545867826362964355391582865058964402460940175305154842824535422038164402666496332516589703008988601554316353008085932221013846410767102085390737199849772172897881983938470934972282962201110970705395811851733773904770232986469248904517907174257264982672525900511368927736322646476568670130499388145747413859151162273002393121376594670778600390231764396057730960912153059243093116103921147581894139181005924822023852400739259739812642403068564521850709593686802866448314733962735224670555824405747924584620860652655686633167401792645797962602510722659903652961381123967674056970849195136395539723657916643191671628726369326655218138114272955221419191282777988516612134236964793665437576734319177671823871646796105475184466386509769979178637118785313107847426202950526689014426673776889375940740908109669225902396728056990442501249794750068380499450989224496919537351950640024582399740116046559670529808103602246605044932237573513712470967730821420023019031228455578034015831877421571175395179161326790330559548466664736550317026623309799371478367049374170805511870677730950500360533089737128346737080874202038529648769796728204181643050995393666878046639214373373342982252542337084062175893137805009324943205606067412102763242257858027909580372084143802395887233725485569793135595926438346530740767492572728090904952263850815141356332297514564064396105895217168888184354479267592428259209378801340292179195856881316688272481143938939419051774288609071236253071884084665278689342939657973700097678390330509212469221084771446647986349223784186335243994781927510044788405099215812481401724594783662905750777236839084460775392037391974824775443591345314977381467615971066357457751829290314453570514368675352473465279119933376635254598244255244516678593096947474702604943264304373718306836519879613035026259100731527588588786080722176058673581397879621952583713719036474973060150577129116930774971916769081328276052717273180584061080143425173023576318971945132670225435216914998093987993027815688595008481000947894003591958180423515910120321544330520863707362484455740335437091185005060033920476007319633224726716755310734008499325328725415918890055681959949268281590453577146398871829474189831827376703992692236202407531751807765269440879400578416872907538076683673860542453522220683083146419946679899201138217221070254558922578526614800800376178491456063639117941173625537549434816598737903241060406372186355028647684566077955109742542452669484741108805427111156405507534406106843242670417903361343253704398190537949507145916899117063860156307719810954889779487131494573290248792756070138018397988650698709744439233665407936123765342101967012544738251562389282827116945978242094404841370326569541547852747985889025761504378560070515908009029791391702883537760917028570744412966294825909428071025555861990745440983784514711843255150352532345862404556151141612016766163728555617130021601186792221364774251330451522363410638469341786700110632699854370659205134500079056018935628873973744572154488122301926045767972921431992528209517415169655227230360204544549104959629706726225760685630678964503562717954675807675573490626561110255659760437720449203796701951792137162903846468629796040305164299598220486347684794080220923597398926170521904557050240838604810368881736982231193547062633611078054863655008146531350196152563574207017396303139221857494104053709693521693983044143154102643178357085565937527679608950264594705389132222112985306358689990537773918743806193668878945923665967499019214907327413035890661954835421253064973861123750984001202555195630349847211840207996884165191389558528191597142013616498162066652190946881773029061777062810952415777109760799940679623445897691951927476783882999558282138282598714264158231176386823139070859957611299609119282834842253364247572222284505520187040123254298547735284730748137371683513694154937448614705481379972535986172097993879788090632266518931565062008639176223179949282710836391712528968339778263379447974041237255173600223738067562419379160874292811654227809798318739939905946852617831413937422061929477010836927482376909332782079974323446721292708303918733204517934973645145239046273902570965983984642635343368028041734694051051940625147468992312350934010616475041299013370155282216752059997147451378542180134264151920285359308455149507610695732205736018658758993349842438458741167117831768272383751962309109937976061271299371826870800829279195952900734994030085142155380116274332101485903679102108597712039384598191253578823277114176111639292668565169013748118278527658627654512728201803342141386152429564948335078109074977626438900606383656665207651650717184871091195591195070411568273773121354099695709851979881818261187318988668390400563585870215752225023043608611052655357557537979492090060181509668380128793605744896693638292080907680542760573075363097173391607557935461026332432982192110955449677686755347366448542985805133739010514529933306415543345447543161224936677909870345206932298376357881748375720608703790258146259368912620417279417068179489929750957677415656229491281755297564687523881794272594110294655635376932952085516686049664855665538486785849379323031803763498483257102185506962580082886070084643827384092411478709901592036951419433442212859404680913556520106827056096528135809516683803685478224796806880610535517234205450455274787773347154257646266108153985017142605654633475400781649242223599942462903098535899840443625245492141317148280830472470504499456068081944362858334358879958088382067543987894888598084187839540362519245442797623504469947905537873724794193371330304808277521596842661669506943443277842592937119927619222692914227158261235632763989230448737489207714753648694651647103750539105614601232888756430744090428377412441543877870110388161950733235728835281244343393548997704500649426279936642285181547809821935571377509000479919393256933791659429903671270216448821078632316993920640777977889684782903155772951866567674023606072409522260249953723065277585088442080487007917468022659914608853892790822793359869484745425918509633744034065256133053900909674098275490824642464560822728126038843752130076838193452705626650606825393087437804606495567586328968778254908892747683976668553471035471130208669153847370779985185281219291977598128778950064565091549912725973623264581985695917964755508611681584321902189851501292739461327028246989145185135641669082725509808978186479307627818204987820184221762130056603839880766716895858961080550865761491668290631298340081467511727958277275322919687468515291835560491388823372153359000206605132876662290791786080201619468342642771609544059061648253092360428535528465596969872370643883221762642696025736891525953485741863971076427990426797584978630962127747069082351968282206588649033128791263914478860283447924115839320335350149748330556918826384502694448305529480665330227995847154186177495022058883463384186544161062219386662860459920053212683758175584409809817313091152498077485580454935007442796236353279495763090752063368737848181369656809668221031164704735800829796872034794901562242005306751369802367109848844937391374886026099739231408565290358555230949690056626146711126428892580381761584794600778966079538284142616470054675928882338954512332196601189764978358967851085139130586794657652183794034274092699549584960671512064682423949657295949689173451500329192986539632958802124355203948705113696248710988611519259507423174272135961276052170679136655437861882379705460916378519834395841913592041666003632465003636015685083656701567064229336081619208098152490648738976109130322211992890748000526954941925921406784363104928533789854386560929211694089742829840823547963926305716438185398035227923944816036113934972378069254412027350998853579865535238971551189766752315004793044796128462184466095408096269282023893254417005093483509454261963599130753037037474096531784981766126745491949510779297568901283671662566410596536354663176914408455908483573567919785874782961532074537022848879485833728816084152987289971488501799544277747092043967679159106681687891845040375028622702090733188251687221830263555699813963716156864589275962717654071364892968580838077330117779825549886073602637724048757917106713330173734017127582782596903394922896977822483020674099070751595321957390546033224840274874066745149492309490062336681369809272857703117565284625731743032800783878616007583970308470415543215874749724555804268575541236194278110606455801181272903710046536117834525899562521061343479914118603037300435228571858578335364076114432746407739387692842289946036405516808716367964967020665641742751660555150919127050319541676101737273282315906515664366381919968235715665074820109562103288491428400938277860423834690385781210505071082754236158984125896630860784276663762909425645570879105329737207027407940286527625868211458368124999217579191779017554020104721976321607196013208581819687376882492526524554972724549933083543243390083054600590570574184806001126074627517503165886367390396879127537034103205460418083945961934857674672190029314836627090798432062086905834008159546095016045294833297011864963160481890135789598993256019874160711250467387359160094904974001031840453246663719351197142037652317745760239436740970459707600032845064428121359204207740761628389679985433853171793548305703923494792313665708916173535448832413118691220193488816949820800612103266727868027264919543743433097863348583955318618223250463467748321317142637879242353555049423805520194452984287665333848443682648005752828832701961630043441414293161648938804541174692935972524271149688090264724032930097578053244960280496754461457446792563904168185873283722188186825035265913101097068234197214490274867784697765567276806041713818841025766388087427514115710919171948772379183409193296537089572864775820293545886777856022110332216737911408472278565677710470108676011238761385660222209445180487126577524338898411058956242529130664024798096118388475852638126811629355442734507596602103111364871505896068168721496542261552336011786693506786720019996418866829390347895404873596415068922942857463533468046123761523607889034922510643969248126774088420499784372744998327785658321285196997841780084819455552774853362289844545490192244562132211969252333274423685152401263976817983191085737589381727172184773637883427788931383560774745175667890203367652940904978720384788942199078089810924373248605414519336423331865234233455295103894424590839938237730807878367523083278466131389882818083676256492518220273495376123398876677570422378290432904358699843671758845139318497262382690576209778702183660816231038911714303591158445687819881989333712520951814202593636195323200508494494507026558880065343696776710613275179747172314165452200013946346754775143639006171618171716439275106871122582046421562034165290516984051630204286854962323779348195788933938866508992352989484779086142189141462911536925287697036917443998315082719253759042578993085641543983962685769667205844006054954822084607583644990663664962153876700373894362758890370439640407561859974570513380501384579300200163719290659209614982158903298588481710414392511666554396005628194958978499857208624639689228011958134629654626576109260588810857814144138940483467172741980427774150307070394554365294369673889396631547725425175554108083926551734818013489891683048238886491959954473193964179725115094783558964891368490348117155211438897952476996111337599349173073804699882691232096480577817635622929888674745424738428253577617547946914699589299248130532077609279638979748821053490748490045559212930268673139407822468208724230959589703063139343757722593057578008804301882644338186172565588676447894735111468887133034871002191768561392528205618874703225546257281284812064451254222816615350872106797415907584297894502528053638593511315833947411634259973959407073758195786480666908118821780033480766889834068712988593461550415182026016705783743034180935379141710828465725311169018699443957118430004915250878578865756948641108255833583778125070554969078159115926593343364798529816407486793921498940333770791026389857392486828321786372963369775319240210621241255014072762583107749727784676728143877888578766948190966091144589326936982663938855306034964648275885185864244117363865857620260850596505096939524732037363129125784674813280414976510002290043913371088807986925750718434927322429933405599970770882663000131898320704333124012518021636584734780796958820225102369538589012528561838771792115518309284111169436027092192717646817456321547513329968531204117477205038770466204270059512024821086591076568907958332971904157882975628343939562780556491626491097113087573075723412555517062203481210988564563516397629744980189429715726386711053788454132087025828107442899140837193072542941897251217926293973193917627678650455744992366538650839775257085623511098528742279660359214325005722318125893419186489890292889030945050448106083338507924647595535780563441683132310516745279755048446726226789524280719934589149400356546549679851830055608421046023423160048055029626249667710074269572304704088718861096669431919615939816038853785129571837694932557104865265397201741677979663918713410373961809721246499287973838824510108700123456988798265694738427942821012732428366884998501337621964374002212837466003294512780724585537002784116251073478210091980555407424213393016312658061797248210094328323605195254725864657871375589009180966959492995334712018660277506388807207566975907296682805635520042524137128260521944676416910629717227388036276252311173341546798723756240448753029003822215488493738328907116694326573744714286766422213392294469216127225281219487365114735953481881809464066044716913985416223711987423769223949493052315587101087852562373416364449624432567312793645771793530509766639890498681143515554482898452343881780958098867823350650640613761227424118716676782219893067908473334731733901960094756601192344949310676362805848492115538125423286016144098390985817185069108300205948077564973561441215845516933748719864515756664107239644161074636422413588880120144207372370094635083361814293591997885164250098100466081583669415280626477652890419993640183117258040707371986792849183916972087623653049932500975274062167940981950787675848721175949157927017090819760010012701861951676916242225977986446511526186345102790198999417136736848724994217176357572913488819291846464168376580402366455353742519690341994853684073531990545802383257908542090171426193849167176471811609109032726723215399302154559992985957063362281857639132661938661281073898860077686781141245651395679866297607950004910783019640560404082334772932802829413185372564414834199806557140696703290875467821735618044623739552705579508547082870726953075041028340531117891540342949362696554682240336042294696729012123088138554543569151487220541690832538465150035213036962502924377845862585533197506085313021840717933340323921097773382072580792905364444694043253723437654027325137147783286918220490932266362390070410168264409046634378172145320534840524517859732640916040294987147023942312951865423636145057142816199908408792493288329904599704622352520501605013259291949465884697511695834538141549000603692419847343733608709544450990003684458863851026965573896473200437372752356179820180163562817419502487044533833309399546542952085788243937458006409347506177469970237142840936840146004401922023047073826885608498157799958063050444435002357741579444639141187402942169477291602816021323978948473291025388831342440925994275506625714316112581199133862378905854567296584803483967012678850376386155922238314904596082948951841483434340073869222022426675076713800726195734734079206814920066085232822928544325040749981504318691042913445871976062674259800648948523567097098997980875428320921422585683161908153346122820301909462516626416522530742518806604632770932323190461854036717495983112104224509893553161528530286181282806818010404880853068712541686979175841254461231919219438000151161734505949697153889547871218743698739499205362805514742894229947250060609856117384522803106245001124336425419055073741491504057612907860571555719736738820149086615550781696159185747002530976862919019946926915647900563439606174875154218318575130972184340057971895435556806328641707054649127205734393613175832758410688177206954437365408007744509273494562417020994740904625531705658152087557006367171320032664051689287773143903630393556934188603832150626490772608531635544817360185577066370440864081090376940899170262115852757948332596724921085237045475836652944482255537345901340294301271841204910651691341847496562525761654084010611277896419852203502766695384144291516180398751016464352895308201167829992093530511107102629826130994380199391563187317368880635428605916436932526043191932574812155311550388624036448277863380015350704730718575303589459099621971425161081266516013235157325378677828286430174259159044212904329421446409531551175550065019412268056179467836459734163807645393027337817058442580405757805484250606125640263421607487917815439460359711201588039660928841713889065662460477478196718353174940374473428778050359334210970579179347478374984247251214932057895128951576863728655492195631623741547345502969147941196420863013474520970914796985310273340083980343630591007149018227322386459851013386337403552409929269635862282176965023591643980058652963233637915412608044305939321089703634379983740153921016037846505895171062045845171647214297641059308208484809100237792178030498737199498691366163473672708993925640862310232965123608785479918337356018419974612774359626347077553264754106232446738711376310888007117548029778887423322723230848799035714342036051671667876949967003772288824094894990818308133793393637018816448899797174651095859886606076829402367888976710001389264939035242962061727558810100020706481416365329954562935034333357826922149494562574596722264077022954049570872167868845192925204549855580263124458796501025499688589087570620244626046913028313229272871302024567011366913910824784957551376691501059891812594239055569256285165513356222112093611770734365680489854727119006316428624955668846295351965465092207101197389694148713500359968442430235323543677448610937423535709901143642858919128331280769021546492528790154968800063197063638137955798586417923382105582190606577522438574275060615433220443328961339423210515068191951133120376054377051296055867457026761875419543695749572948373304459768407125105371890790846041315681556159751631945204841499508789912300795041351395861836126588752070953053974079939815731939307089215647185210629970110279420826583952421152978505660831876211857964686738259212185143062778348695419169891593178482631827611889077274943837999345368367078566123329801736360860347733898486694258690107240646865785558015399979954086873673387827915680917589096754621483739103079313920356350913005936809165809084392930266759268862298580572137019608712434896476797389665506779960029295245917929436087647685451971577500902274216907025598844723739363366004221871831182740120925370837681487359699349510643117417836302482843057391201947349983171750605114873133525016429172834379081936884875535722062316082254964542215437440648107070712848889986055679153393899256795050260055135766520021666202493846001869468249260650059011879066792521815534731424717472091497326771705450198109373469905563930567343034884748098037536971738715788609335025617248496446547377478925248513339886954646216903239946847697969178337194097355810312569663315741429705442350405332218293118667203054615680152279725727964298643389227400268751545493074412388142546400161517392685198124564014609648174240882857403119966169419400197226885728427768078458033480608524514048238930091792403603176598079533264935320820696187056605836003032069538338976158020211188818389545662567494399395487632406319655400150728510643838987591554402472438289632815448347842908112333592806055788037337978551792038561617984148642845216829689484972080452930500222996351454764700073553460126230070919687835366009832164240739652683248632398240296576414379876786629043966531689026925442526756380427050699368896662572288582835516192708637985567816579018742037880481357915661633666246552136199736226336442006300745764395184583955615362751738286963684261306665565001857903303838269732262032224514199425358207758632310195645274428128174866474033475454866224872536128122998047224826354875303261933884569543666220836118802840023033644323448938948815042779598824116768901292996935942341773246146338839334632319512098565281037108431784780181303920171248872682338058207245378144170156736419226746199194255832165124885795844389342781834802118200827807767500568435124978600076377999993965918952944504233809534529135114625777447651078749692828424216359940571828980952392089966598264905817023290197776988732535329049446530867714344330980256557954598634786434306159972650022673782619069690103858623185180282357129013183793344056093752178619353403324945749920565082611647856257892480980736113373472153472494984900770433983211512337434187970988210899221652422622365963306977752657060066228500847132297027189227963638708950287182812585018700447679173284459582737885246636015357610926060918649260796694542719646365969425654791318298964597177377364228004517138826142900323786591817341939011371191156764894690787724766925666048414021458123976722817652696994467035359113239754365212155716389825239880923879982821491055340369324882573486735575296886816504213508569962375327678331118634667955354947033186871932776089019024609580981810856681609386710189210915958302693638886465413148931019357399962071125762093768308141800972497947540728359745891448662308169327975863287978675140750280705418612192953756589048203112936395734026686949133634758471846199167625392541768731932051967094823150275926186370350796455067250232010351789096673519797962663252027339018183673642177432231324283078743379927094751334643078770952252505101892296715544868108844633809982374936338398443833705964436319103786313033471760220745329733161902719100564584177316518425126653205671199321794512226251857063723496123130824679308014412675211640213399358758486752508401813505709544969842995386761644872707615100002784971290932493060656024087241530734595956960444711049494994948851894149725086947669191570789587874319588516608833247835959844761469236203732183115858503069381236403685803731900009109891983706483322148949926805737488549627936003591490506973427421329507889579374316172906050007409939931810595564204335593577465143096820110745152620496916810859285345984140009516410132923810537144621595307593779734630886003979839753149736249550688576464529983957040949454054139177899118639081175615207638613156491355506031847310543135899337489367999919888929286574738403388744232793200778328900242791027579644200059690161273124099966209609760232041213653080244413443708455614310152242496831316614651273902344920708312097471374842396162669380040171725691257944458117503888603144338545832054341462572380907594984612685808334364290072386364567144925664572831352424579456164640848865027480709510095018454115071827691890391831662908863717344104544789472136561055159035830463046715457146842823589279725871368794136504781429261428802244629799708340574539911047056251924899544530084522907825790383236635837215986936481035497494675353325283077019413659466785780191374536843460954243431592538104740781950595816922463808285481627623534019122568802787612940268751368083068313820141075603963126512295967701029425815807621299284226374589314729539446763066216650601366570479021545818458803591927267672298075994847602381786809322239161230048246046380900333827694707019576922826718589049197462960902569056139526831128602719359392132472844720511738453273322483256065407234127061612381580680670485498383220796147160901790424919422506938867516870540169875888251844776868802409397792303895861327935981367190646996721406075986537551448140783346833574400154782303352137065274250664415641976666113097977028602805203372087464218703785692410413943688362013132665771398337750469226712654211757598994345944300373650917043773733824778501557440408936719416698358334696904549099332998891350415037199254703119700009622809993655899610223157242767301610224139986118458049278218497308496187602519716776090627785106167002216648855943431609802947076069828418371062611682883703318491615819123095837409968088961004031924083171621337853831217843928337631013961811530871438594904859194109976675770806019447267265831242951504978983918071799814150989232541339928272513796465441418894569892486774239619222180276772448036896997205044530047540296672931421015802491657799102121447341344670938313332736277028844478192728464015922870136618076089384332289545555624601590319186271727478706702492218688746626860612795406540097719210777297450402167217180739507977476115579130048424676063530925720151099624326560517245301262617988351789740456821213258118238790830123113918028923394767449540789949133367828382044442792267757467865705920335760376371428499640758221796395537922536157701156071271792811828736335062455877842696782826063651842197612270054102076316145728176362445541666068278476524523706634063027088930245156830607970070937736909561368776957779224723538705876367263886628671530926955182201342163315672535402056169140650844279755503105677351851988140363492494246108104034670164915089224439256378997809252682533634636967086915150737321028101123744491569081689587082418665471161478928256752947196810608950563133912251003898721732685431042018239597581921333937873296986110273101321187094993002430541315876629900686154158117743218396345754311394230971155077322726952629265432328260504196267772172829765099072556664354151473527454007656613402065467305846286447947556331849337853854432688647347791552332062421689929433782014339090063723631582953800525697430568199289348886417589541132813523859479713759727231152504793141967623545339054337326021096078343185977941400418685384679319174248580916670354009267166100586692166610119279152308704062028523007838253787033931140609942176605676421889791855119582612113616518012351705621688899658891220374390138084811653722851015329319052443374323752673253526646741649844614638496921081195511516041313864846426126600327280409654526354250147107695215310460906338506176095883018408131133977278682482015718597778639153683699098956741332825761501502721087536412664492800025893247116536888308040067898432143178800848233044101707750977498162026196900173889183575501527436476538204238404772511807054478512817568307053287966254040447734126867882676185488529464716234666725219810471746532922899642562715686968053923951269446474718102340109019113813304243909516992473014460352645175833477997966630011553429939376526752581560060194520121703378155598063742071957977367960598357515629486431539841568487739405342554319190553415366729253325484373596099649292437048880366744204982877534417798183488890997217614973645863273670744646505978668926304995663395254089102159801916074806160528637146178424168371544361951540903935129759799687516297643601371730224926384479955228566682896785902341722616205216791408354543498189024515762901337316793387157570095008476467012843419329628971550062905912082940199414391014886780883318842485547940676434300555022174728852573475720460492441148013327009474158098367128571330737024789904971724179634905506372521082710150129673445750208770558925656951276271270724245527878629449192850717117552319913721380702431585587594265643485752520996695608224005204068108467079395957702590748942301974616082646226196314096410806906253913780070176609413594869365414109025704745597381504349449416958396814505821547409880552690820676242645445123384817563606604604893309896841930885154814235101848252739441465107373644492746129310208829576724132775778650492673446459371712731697400645057631802950018207754522495786043864456054292323304745776978923080229542577975793109406007265783861612325165988227700692607169741083344488175132680969784580606059262005774102728174182420432730163783372524696442200788254316101414678354551269957004359583156238675361322745469951559453878477686187679009868662139107784916064039334294372323513429679996498637161878834378070113141997442820367753631801199832083521347928317292516428133787145859803306095787919197261904095864388925735818375139642565358484522625751187868141526473682830931250043564741102643198725733055822252448254612774327524333261505511417747569209569293400502949041786910091398960801410649216271832967443160029059120621589847339744436941901003901205836166035520242936948139028520405660030564755826484819338845449621377722253239058888932099125626070427057623113684047911369133065773741712529926434896183600399288842192088126136510385659954616598834487828130777841467952928677654109516047588377001934019986447980932249685355358992673320787118723402243968667329953641517422303045115359193682068730600531418913856747156921195567930572235822838469023684506471460768971074168299146438723646641845631607930053692741274716710076579578914088582345245148936813465817251539155523449093105477649830070297491243578282768793741332878557327424254849456251643174000965243213511840247479653209861403846943588593150362903345215440459203464179348395810157489778844892295006157246216485028164095288779852393869620720743592789796681880237473614967352106473213097343917357447426951044070437436490812947511935176472817843430205043802614090888538450247480754782091509019608126227378748339738310367313962558647095849563054239992536600960633351205452698567439612600918393960083717983966656647950079550462830919766771499662482752432159233634864186901083459083230113269571093120323351471628327525385197875234326021168976372444427612046067550663764956468835043868868240182050324482628562565574421970047090088383990070381100098045746789837675331592257083781559115475644020947777378846356804079895204223149006478966613225813571759797129202261145312416270950025012873416105338907680899216085062712151797285608238735171443463765950619739065250262876640135002630040033855237176270041307024356364762568086871667306642158505756336681008733874180407778622917970317866548774700314449511965180116109481316551583927250895604298268876802620760585940611316869636213418797837378682320905320708770516760209195992527311940682884499070711353740733527543567549381593161324732032948472248812137767859483135113168868476687034854341134404683959195995771757311977620758616812048473053639152852407285198596558694986740334173892465505251444814547653084883178417217173447686280151168789657291855192761992530147978322444928198446557616100668092116004824885031724396678306614917668967934176977095430802888066692474434114103329679765609411461306379664134756948141672696319670777109835403244708350494698919974360089521933986394966734934662718432822011089939719223892319227186090146278004046005427047073622566194345303963350315384318176998648951836174348721605837641127356354797263341819518085183384577285938345663377857783321983507191658965942473159282714965294572969012347640132833896767038635964939319488740576229913137492462939991320603684739759944409753837945486695226649725994307024822269160820890188196558724308204207695719200361550904235577661214443079857118253156865458029927061176698282825567535230854012453874233593564063326404556734668598439671461894713433267332552772597348443412690666263582049045434736031561958505904746396307095496860102230325252840864749418979791619516010190830450045598617804144740338371872076758289223796013699648656290480890487657130180044546298022390236187832347378701932219408665611250443934876153354779927255799986323375564802012520376787848950983260535620651264895061786423858209008411179895373754858714128813572758457594048421422753493693437112302473355206182013675391508451190170047935882028569986333300518749608307274028396904773868453595822615537353991594388223994906975517390095442117241435616014630873529997526583025250414956587004366874376551635149200145716407690594204520654378229945890060077733083135606194983522550615368495378123749917472997220896323162666734381433048291312488586627123056560517171002155702989888203690638726671762188658877004141543830723338217157549272842651396344386448319476469210727091322890041412918880078322715855341923244197899009654836878321432553458653483260028238605844240748328917066904453156524794669425512690043184195110846136900587977427376612018797329234673636097926829011337832739814531110786498949313142000070470459259981249040967489688860158283745193740579622273066354271842014138043860098610174742833545975609697960140585183872585330309288186017708054570308859785663025576869967896523246207932731220401613608875239405106309632263987103260300334246797775325703516212569076545518585049238800146956861559575462523728218343470219158510523252098836355604882145530992660297852096499257092418163165594450692052629007386021745090151033810163974970947095556020355814008220724762392743318445397600173693327593462872304483770192730268436888441052253495503347075588866611945398297110537749796625279051133229368573959897543530939542681811044527344297094253336304227638283521427035421148946442904998990755515430427335095017184758746483895520317670286842529281122487213702122595806055380390976460712873754673268121715262856247606224346420753551362872832982252799606217797148297147750717388703167562608471050032182296320821837193352326523189843349410198392153954885433462087535236009228580529126595080282656100508061245731136951949635517212981874681626109413591764015789369076880075854444807001692745586102114961167648503666517010236036549441196722055273549120688673751986450796755295799530382524771537797925423070603072685759495235366954517489238209073055218621961264517050313609779522550818278306201358892037470689694719029924780038462961458850948556416512750012139825051458012963540048751467119627327677639381594445418860127075384985661471859384053441322987398502206350949908116127050992779973199194154250863294797530584399302107860581148147128241260450417344969924645265077774435255521439521558726216718356562238917039570269640464749100785550548185459628281469079257257581513875641751807201912205134662543357903388297714585860573147509676321732709848450441287208029895038748759005785675482051905025292484006380120879729021118554687915241561096479758757713179308634176189364157292154068805466282924176370335335620802920092154117881397270745783113277768015719155067380475798086229998465101109608730416920955498094647943767014433696791342845718294734782996744211073493928615503429016480791194112393990645149160937007755536667154088893303918223121279706991263670444564603435995256699988620222884999942394075234175931965179374767488857134671400454399041664855848293067123648804359300952494466209676935453922584305190243052478492682752293055049120604759126446953261412843353766164427487137345250521278953292362453645350382663768770599030717068128580493777352134692943098125941591614852093061530747846157595408596264243861178782346554561388037322312042070608399261348820026077102772532796536171038107673705840838830076747413257335449232095494910384398254577060634302469852951739521150275503730086716170231343392569740547057988174014672085517624890224283141101565690262968428629705133249898394437728676956219247781407494399016728168985203698988902933939738337642067014424419421387467022981880323882929252956066018643859497874456996508275735424842529231300983659409387882941027364063789884304547062973877280225090625192746821875848381984537993171580562167000901622210316160030260427729576561118260741615391204185531000275398571305368268307527365243516316081805813333686819770971258915565177256669196064776192669937699906336786218376276294182297103333526035702364896635887578340649780949129583686016197627230312313913586676093156045293616082148066477698670325853137945694144755028119288384815526333200858583969922432407592527309026517192482105833950255605192823114898033614328211665734518513633791825189905116005993245379547107452660575606818270345739110589558908123419930903047258430036082173867182710496777356555391926286498000673876229208500003665479536557795481821928038711706703708203841907766338892572570823498020008939835298106777216998874832983185229518152972028708890642128210616686845550012077128413814614144016698422520687445591064469276399703514397079944576696802452852006273974552319754945332325934457774037010343755775616736974612019815444775855474933337090524676138739806221578998882611623612338697119728226590238810275780692009143115763723428645519956930761786454376638737985101545416243891083388476980951724900123747759962832504573878514550164487767789845242521907190879591439639724694986799388184006775729210642853379250043024011787306203274312249608640078024864803872290432265939956955748380779931563754468538880170484726244432728985041268123755979279055051580200749516492511237606045215584824864025091790414544466168151514477182797328917739460510803839278329902283345943941182818312999457063612496441227575593817220754687903362186825615900129696867699101054277260963915241390754520846257672025588859641210541682600028515325870281569858779935317523063241535856302847492813689860212408472675063938494363316655999807041921226312237100706300463943894840905780274740624788026934297929421940308376862312543826882892904420557621412472359349796117983927838892244398291785293275576189770893751020199133120500624303870966098387332278330539132308665924810223983573061827263480766567181540281341580533894401518613318549265293496416594260956907929632374934850589002525923574701634895765353424504356381516692013526111044312484196325151617602122018781296150838777488016019001428355158824130263056515842596952063170674090190901484091610735134405783935547097609572947259782744923883391814272168799436711829397649413683823411191111140383490366274701751478327735420321014824106339181345624631729448516664787924060860870198146055842435638514811799547532991784040587440789058278083655105875505313077714706673612046987584560926299056949932670899581843344034748445557471899463934476643835815573277825294217191144289664042211636458874277444301243133764349855264001423928848031214151940925448125841786001836306358525911829571536769936299384659217311457528649375924258783290176914891545405495468508933163628481346772558996935174576954182782861241829459114962032792358963261461441233343175236653317956694810834662391027537342965918697285804856694404258219587082722692130898790960525467273183340810668431099600188455638601543121197763152748524219443044918121155510988786656841289935136946196498283907026788635249909003772245924225575266598040389661717296808750484411141965376528654848407133729899542156112238599867915537228224276387747460169977516576566796256497464351543219568157690898094614819144697530137591499533869770145350296582539132831423850873718686386719106698763237404159141132567558024757949706492099988842765248143036949653591168879714488126331289614188138278596589988202875332126994849926101023459292212322533017952429696373892776101656809218558397085419158464574770664136468989524293862090917190867809991771995759161677259004845638290587110009531795440341682200651307625016301407242735073099664803196353743355970886612115560437847259394634839009700397707762070488316510664547208364769384224236101061250478339514921282299097022539152386802384703403924122573390057119220334440317099765871650325829583328934931663295667295360318173218162435576605021559015124631726042543568032889284361827942230919280141001460687730685724685619743535525653372945018808910984867344745711628063059816251703890925788334402024798542107695784771527754793660518055751648082346293266046686139107972811430909997272876859043553518425379175669878673176685960176595626858174333908319822269513746889718104222441817607153567562421362700396976166430963372131474848874063927159641024190175886578348824581254957599471536835316760580625611617724261430632879878327965103712176741880632357445772275929281641183156111088676295814610810227077971711355925663671402078452988496723236878002755634149991825578212426424809071699099289302683058208976357163616772206388328075519305031255654705157287565814382971498217865945723237734147773866628086741703006461208553493113901884509094193542657234815544515285213761491967521645737048109996840826841182813984275080561871374659248376258979014786836217507204684830629007116200043955257689117697371901303579653206396177821993814715057621495876619448130523342456628697800324515719594926902792426648777307180107788197286794376808885451334861379066310125075926510104973450142020651395425584793471691908688160972302670202619609484906676219912916306212592781683732502532446710515287248792745199098086957259389495022552954024097074202121602819759156628635013075850002597218904887327158451881162091974859595266995330051336094790728204013980123292948270869412890312817303809079421411836829631000122514790385032758431364271614174760291509650111749016502687481733438933853399739804549184838679147471406736147309713086791371452048705803741974473026105088570596748761835486988730111397723774129252446188015324187241207953884927165390238331235127040184138491081724235657831950732323907367186187313410129843605608678722977366806205331059422895966996291393534797449377924328956376740384974047316876041894560758339766189751928537832069575476670618969364605629524125612054131104493300908772847086106456848313109121701866268610301823391495482199086718016349651717184286792895332612638562317376100186809956165564554151739622317468313459391545012118865308756530411378068612767014606291327427085908798965559266186145655685488192741411730266510725596176978112807262582920329957532157513433458821373992792017587502747263978663661924442563409939888300134817987434309798508885725106610893580938209325278843270532659912203537033741390631518048738262980793383901172669597113701663419176724529120341605616760660265284173566017956740404945201792470382373822035333847544228752196848328339505004747566797018957849851335123479516322443481023460326660528125366152207331872564035795637005944747700541342420012692459901463145044179631230985736093823337387318921997946375709201488873951219841443771114894421630940767067446949976786105776246631653520847497824715607688935420483209635132021713757438504608200541979660726570491260285743576010878879840777885047402423449881637132241725435962401068142781893606393376737948861626580659369020897735439827884167600091844735197485678361798218704296984861653560425769794944763162320055565334674155055562112347768655860642083102722807929041790444293181181048716900088959583132110889797063846297113845174462973867089636861198932047536274979276138311537192310938041254157895552766138093170230830920334043091551264797498576421876231288768540939855096065854422099891135329531480633909553510227744786133978086426708510266788223553876957844208586895984497581513901930465932753180210638853355213356876341710440913168213229655657828702790569532527166812052005118995574369649246278157908090142925705552369195488404730855612292048079669764833824097399792803298774510943478874328124183369181776339491570633942082659090084002933301565847050267341088897316058527937005170288466423182363178337786916464292164930717438272485826038943536782494814158463961212686701824689840280681864995495475347917846866170210644355251512730741911809464813924286989444639809266043962739049286372406524128073124485077814195210153917459532330775850858281953351397478304794974000561981786883925636662730928339494822529153017565198559963074498996610427600506512915169171893679127073918797986873603488617112619395346803218465566341946875636392677516781362108013112985637358945732119790640596718227932307712980339393907797294512025060047970950053438740937577148439688605206962976111387876051427629014433132258165682270746639937928793768980420780854067583240920552426244926349576851263464679485615485172920485099534300376946768552624215557766571863737774022153456353533410593560880572303391104875184961637802589827561538382741303797142537427496958267833575654163062051798012941173637952045152090037147481490291455433307885695721076106136968038204975880104666247610725899904950082223167579194839355662704963335798020576683099517181983639160101901466826426403282501872153825746876046191771142047681322864063429075597063841594333437859761574225231763072306453035939952138628507062783224281034359871995939615187220570242656746422656002785503326162000770143379719471231391408471781318168210738983808715990449842761487284884425825649586219722607015401489213228675368414329503834660791162224917883955410508807691501860043557038958683709811171161956293779063120491616497383202448387652194482797668463239094476766657192761890384786643622156196378432652017854380025988826474742096895532482880364149078679143023575166619582156928115058562997679255391292077192341172804397189468057738351938061551095907603854025343382903257555611981864169235003168147139826637263199614915515587364658282913448157183764079136181441663327422152472732493348910748467019997239776700430054230006089516880975952507592546225195271767329174130459937220440791086707949747597997614912780163788544622496547395879937805327578362319418629350754585489332487260091577357487618680886844804517680037740817041052632299817300449596942514714298897037222029442998073487166136724459656149601727985917062845643940164227911997699900932262721583729930706225774583050430403164435967390859539849793823779922731026711266685733038650977902438726992407691457288702225047354220273823145558946792793621662199460175350047832890628552528705797513929405025248609306205508695151693910279393016982143251656395030641841415575750202964063013569761561645816740441190245290161662049231014153097768582146699998023571392645831437394049763449383547058875414053995975793745964259630086934703302800629263596766998150545782819931394574560458180393601198915494822792953917522220471844020029144838727637415092412690625378230862456716827625549055135838349145301882820318681223954929051110414069697751168058530677705894383394118853001060825980516489179497540867924787709029995933825028536241536336467362895373637537265104107821469084865964570571542220754829421688253053171550273486035401884384246059304517333767204969234786617788316336944209468911440099235241828726690619081140966974320826519326198256673230316802139710995872119442655019464058991717697356757334477485687851310568620869772146369612001022390092251859429240835483149289455901043631051061539747640997216127162270403850588735477491873854200778203237353299013762474315157360560247687341894538027806998736041642727053705734167472749015216789152805625321594564366304300934071065363709567641567909492999894936582963944323817578125571931176619999780633418090894423289483875669833120973996592399731429132651761315372846878781660320890591147721291821145775860413534451843247472461642591507745409644819004172743614265480076018382757519013822165368283625778984974801888129626889851143414231481361430640614156950688662626614713865083881926691861055522566082857459935181657554225942013646269911106995978328234025722664996757411180654973531135797313925151727406364416514565969308855030195943468251790549266974533743886219067314184857868401501637991582864216140673982976703594319242529661043081396502266428294562685201074122011326490045383003191200101800030862917464232930210640749059658993293632858821467469793127963320139913728009133859587436795286861169888632582041479711037561369347023735543520230018783198423829602724800453310350792465888482685061623450356299385693439544381281229826243639635390881205521225182729754213651217108215977051379522228569516477997642317603961423724060763131044046619350445978132289228562886526076210965144412935020188224608041163131192276705408339220036617458274568745162562912303596918135391067987345205988733704309611703266242776747808508795009978544081533398634982142982469892405804077499605430981195625945030051524173720557654449232453241531104416254569851515347199306148946690399954723951798252510601917713174405347803401179633035295740071724984524932484028419518976615501176842704108308431376671743972767396448853653204196136749298972884309871055806221186441803968319663131157037475533749787196377255312702922969352007458712160751269688588449651062269058950990773192474648944403017593152119115448586202748247197883013296005208800412617228910046579924546739120547008062996151956816649528498774278874630473137176204792260447088598972518328061518201150679314154964582672588975154838345285556745895389465624853295393731677927636362290129343238583317838166939021391062055871218182244997347185553305989553293207743720408663931050112988943360716108681283953143997409749390953427113430759729305341736634086930784561562840854501327289186801246233126771955016672481066302442564557544505582711102880395515474014534033683934383074727822290702088922366613571445162420823480735450665887227121137824155958511041103658513851205990758525097002215868106969733286910102409174279471690203065721730254346592031411510028636348182700544386954115944223524530426607502711523514049115224489527627940830061059455322573287553757383687727956947669182938426427166310454891632772438009559990800426841508123287638482378881385017947297666864841610825564580583706249506593447017311515127772910215217068048526034722223927647807058105016704435538976009314402618156675074296915405717197437015486318905610133502395183053389513554203559285579391397836451065175289818691427629675948639777051874080063066105841030532885199232495727327600961358985471356712613490570079847269835434301619086535529020515211716392639758845475345043877615919674744957101477857193529001953590459157734199067653711945726451708765509688900388773579580125313038117372583542074801390491770091414880970817109281849269574739600957917834655797598389334439173823352193434119001395002880586504618895219424825929155562081432009803310749969598064548516830382343125159510881357941489728284739358147698985945939424612676010789577154498628427061009227934472295405015332867637599196349739873605395920075335276122997513157127623014080251756841251763421783961727523393634777740236627783264060339914626339454226295240903462457031162493720622577834199539908210860891958656156377045112236661845394674844299541216053541170207000154473213289516097333316194081505880415835477061695817468858337095082692188487945999214247304609467608306962919511272518237509879112086221622971610345675423988957973749648864565138014244681749950597862844508590679594047395951554887154105642653241780836135458172726601125352526124970305870094230705909272192370803298655372674017124081407918409104433673051341984659088992147925800091835124799509466708838786921662387009024138155672050759428230329671804913648113355234589191514517781245381773789059612669918576781303572792131597777265552637719763396032559409546179571590526234407283928725384735004995827877172455721579870198744494121299691319019976734923821333505124330925560973035838441149589000592579751586731759088451552902452212827012287356403569476990086473514032463129038491529398717123653004857147110665557509185000253079094374436630744402758438610809683679268241851757260590834404090000189073299820466851999849234302326120021815732455470040315896113640999551335792021806162142461376392508943917333196777040893287325499775428247773788850043526659757939906225809391018844886672523753827843034807015295477998106737072355687433106614379592199173324528713719996915441463798181092932415669210411725250433634117115099893876974557416622441220769550746406969113215877422840593445025220650349418381355561676736413637282261116600320028465473373293192274613418037472083180617179369462450676096501245729757525169802300744490534290646682178182182604522006510304140921160624363598662249058834940272004665178925653593753783262631532150088560494321948942954787908591586968793468304349781570911936844843305397758741837554034918087270260950171238518213232149076710089229063612698244236747488639905070548255254344934460144142961535880389257733717243487678414549993352939226927204917087929223949618353219210575443893404091994932829753048357728909525315313380903891498633745154619916564272807589349507199684667676794501186588109927901681790958585818490973553721682483498741025792750819185800896555818211863576520459726360877904620321072408479908608097988521600597192592290672870251053729870598213232567886088447391248552779921568584040926996734854751244086785031302650108185540845512261044348146234670800878768179180428138565610865736367978401669002184109697977530996157632218815506706992290549524319352888115155355818388784625294454549222309965115814017919301097944704382475462248733211647240957870034311522059818883248490605616008742959252934075879921616093345866491788249368618137210217288614845215852168166718052465583500236387638993167748335434371409429283437595030625171241471469268525434726073752699909768319690061628309642996349012450307304932880732245579664600166149413299260323713147545214677215477914030655223588200993815879173155664979504370902099272594802211349932865199420268001099202111838642678871916039882356408413177603559750244764170023889417220552342456724215261580981140461578995726497560301855219692882639132439887636065831422305363684943368149626491837138717118121296933854664827727658835490210174319380115793390416672930851376118849439580349210595064705653503830613645854016360153440557526181573281948539002802237392076725776935565461900269854294439079517181533808347473214559882724089852699433409772343283689135107590125698145932542800229219466841917513139700395299556112960304867735022935681044630535141350826557185453006507488541883031417667246604504339883336178798790286111467928819075499134033247613047642605349855071098233378522292333038997529429825255565265909145674326022335841046620415746959573690070297983449323483883766580165974629123882673277250692399387092263583410646265540995875953838436539682956386002826556487534165419981629085542543581724686445237756531528172484234983345584431364243760607710931568701965316555642056335968959859254498424267328061302211854901169406471797106957374801965288762668549405955554333748152614197788927262902263568754827978533513971734738338863578180992267890023208008320896376768983081760639309140168537005046733408746006886099775729445081886194231983806835599101544830939833588917438138672807223318927869728737256593469918928180553340065149731801527759950991545810887012864185074251311290668048418432727802089758458346856259336829584065375471675650401392281048251255021229245321886057158861337244310352668410798380458648497713270438034731296847993734365223373674058878044926660604430729103988819833797859215144314951497201208063455705140679241741364335546466567890585818822394259415513270551560763351203570394321384726973517202124131014245399916753487112898191009871357667405901447959516444795007165713200552180254374046014154961669006184072097468926765197390209744998570786479412864698754359321999306432516492660611092582030289189759474922323567485244077432334900317190751432538578071448838814375724660059996253686661071065097561791613217912308095694583160361869743987109324698120673847459602489999805405532521203065274423094276265303211162785108471287939710254699103599644759421470560372750020004053378739099221888082303498444864357452387627530051783322633263552539761857452909062699802505459804594595350266507191119976363671950284225477141907499830477643299875571609635213059947595695507606512655888809888155960165274701186106728329658276642895114442367129995094979482040716631133652012626498971147254083908610209545186653245622824468074797024822737839177261838910085641859766654967076736892513360930360112593620114639125739809715417627971348517866273648336280887524245059630849592919933281495543620124447382620246344041933379650847475164659257497406968916795673267978410937479283749441733449152078620885068807398858042997586029273648857239123702333972646154967226659889555216792027134629938450809569945214236978418418654373015911247854191494308676829746450598840971250355912704534151729627804901489712237447103626937223226462004474660224647799941423547619070976704073516238301014771209249477755517284566685990346696167361990886935124522024392915603294617809417017076832572352877114991596498417986857557262009397118296840877011832331287933587317766273592199795112484750358315855495352087200955053829940013383652537056810330236150247151938283577656382182696165475587842401285775830535163848305161074977262813964908995592001388185392602893603033776082809917214930989990478634422691940898391968804303398093471902360085306390538983614165237659702974959024514184131604585275197817907777015207132371369519196060767021109329208619011609746882066334831605746479130678808974503298142504976270573524624742504276217525806709313797038536149120708948115530232039926062141031979007266488103184873259604257961461587919336591610290187194748349820542597573266769249508719292654438364173894945156081648363301731978154695438429197475812632160728817196809262949547696929627571003491985495483064518914310009159213764041310822112229266565072657225818119933141151181156660376012938023325365161689378978044594194760618230743722383285594931133851564731663525433643711307247102891498784922990584774711671368877459196455356249071652396046873378397186782287869350294041960335414699651959659304283620439314655324830924467853013797800269195597759318953488320193607392256218835249929307872949387382778214326401738657655738577023462469051294711897160315509599512137055185173703800230643043974086182531582754790119855439731983014860420617762645354163544066879732874508800828219354615365616255486040840793586762419322769813936454222912127653491503052514281318538121223638184386418956733629663808545943748585038798453091672293287958713616447695827573810454575465763792943189499328863602890399892349787200959998624070236324523143261901713651860075441016286185279958395330199865014338802574434737513993286471772636786538532728801764847307645082432626776084462880663397255978064793383596664747805990743984570193818107913931013098864967004088806608462052432896019192840515245762996487825054395762352036103117384558959601205865635007714750477694641469664102011577388277823117642113013194993831788218643187935621768243878192940738952341422347492994538819609278540689258545390459424323999927386132471633077421884534384704749441078797112327656647598763728012778460389798071745612816638965651665353227221600935268508342875523121915389258841638862980365330281913852649321987865393652824615145870615491114245068471118270691931372013523651568419474114265011689491602576035909203254984058866900653892477189062409764651564791071619036674986498663474494314782772327463506959065718413225535267484650606252972985408217569965777663447315814446933552536598403271993998676285022747962731395478052719226035263946973388185111830202152111099716095071519996309715200837310884451474120137744767289483856620749571766802538269060305274913748790516042027337927617230838213704112272860739423909616071094135878672481240551443974200818259764366094805984039403042251579824277684451907971205456665302023681838753229373228788658525671813347166519087635317118676659243523442710715850856304927343326225915083667518613802780802131104361755849391086785770257637167658307438631341960607144446325807022746312138101141921042998963119156228362791432146765485220066324477849973008899375916788910778013515327873120266392101233496610187344155479955173211372100550862759439502419144235550657488305765903019423868293351869705997297617429794879574719571448287408291010539983207999464064530071351287084139457382175569542655440062836542725594670056599241593510728818812637037824920306080029880706632073539072354065643933217918611064148584034147660997439237879952511123016964215831024917703019648739523688331618488149432853565420082901966201147998673537674705872051465911735229516039150499286101227215770481209684267881450424379836155212491981812995155036762199853167984078103663340681188557811910260484540765671581626900620092238761702667256316407799578516686977657242826244558858095180095696896684299510934437672677369517425612916338632734605562991203819226246541242480601012519233586805614908798420102755953892975411955165790688815433474813320293772287621257691801289747539811097725528434344993343161902341339437250620902138994820600692485105240051787425055246553340945933398115382430255758001598433865403451112382995876514722162287151012899260515693232195506487495486397588860018629332128861870796632967344248507724240713057087436696356627654265481626471027069595049650646459963880199976127840924347586940831945414319895475367254773943956261366029044636192754785708431559164718794112055486459623126545620968044008851513250807461632526265872170714169398755026510922380536470292568663043665267596791899108756723493679155818646074658997443195407800386833360908376001568197676487979179011638108802250500763332301472006884927177155484471624926584620998791592393158801599338181376003359144067289026824348009488758532167262843186682244825415485416491502943165354601415728423984099893027747888417977718269604464079411965419489358528668934579768730543696407926019695730871951635435872238933026618067235085856818249556468906894061138794917171274304305994789605136498372575005889581174786751793726751863057720661608032769871226169259807514854337873113700149436557839903455871379753704048900168811836626646773663290470223199812530324316614407530924650360452490343245956867877052039794572757427531137434317636781772972276091594216982414895686917875440091649045043794907451520173264397758422627043392575130009284672771210323116321267498441125050377565526502448246741565281378937002645873254008674337327103454866692891101923451194897089004261614332080324963545730674205756415875375172762094890603067532450756022159747429059102056791495827415988143248861708030442290784726823357970683205340973489054606587783544046144351649945941060331229854642898634436130441261279602107803605513087654580716274981981539057796011987024782930623930767105583602180779675236131426812743019994595121650663847001705732545661884222432747284936082758241921717296343413323484979792434022893798258848519830340150377252382932049237785182380661062785395041410158073512129819130283173413990132932528784845772325467582537650639144565967542466693366117864303348363441843435030601565014883618389758171448036509017082785854142098002930936530317978876407345472551550112068214929801639321141311336060908058357376549269547188143742026134826457023269576335897798474596813129701353080702706051591268008232293637242698131749297410876261842700405478669950782934245947410883556289541652231655130688433690977402588256324544178022615069255238010089707857980835255420170688413309891043569367832075504717307948311574360468238612164753740428231726592734079468857288804871567428763773827022264312891124855780501550565230495102219360428072278880553931079963352571008553544997165489851104557665439842594081843667133155641976800798581101048960567927714681387576860145858480291050895753996847851220503056599071695360006500014825808533053313633796187175192162459479012661260204171073632131278768740476796819050997580182795226906817906790981812653242886629772709564536542108410128324422525985834493757484703591774663210429034695750766945851526631558759225875352164556163571605850136796959134148042070975561043608667109082265562551616924973425571807970218661491962281538470892530468565901040344611555218827000734208740665034957858199001139908148280553093204555911611648711265778889672642839510682350952921094547649548535652042268257097758047109206879574580405460923516871866728928278690743763741281204170657962605314733078960700936754983483626445953785308502898497077214977641483749936453939305994379146228083594675507285843838136744609275296300865281511928552940543446981160889986756385361383673100155123061916631221630458128928560161251904213989177507498482298911094825430246043728011387102202073939689177379455850719418186224076280757628685328399196892431153660554203867161135481583228709694540411417508910526135468540972375450859056403518660031545764652694753312431668660328759497700972797736266057334839908414680427968791267761917446230639065302112787452557255399609951185686011831373622835364717795382501927020549794078029720209619848372018465389468939502682144067363037396205464377560481743892191870699924435385179026516409533855353080224677240121689852394592567342305826051397147341198401877683476839252841436228784450343278038958509590060595581429065722478605230793868496748351216651582878658574097207123866773488423173621857952576348059899431283976973103804043369816163455270133816339902671083602587993650417367603523439906480643797034600868008646824894540520287377235827671963186848387643343655711055604259962129201209530902357391732979971312399740585750320185588112679760689547248672945826491748560857833319770332062827342755210806110619152234894852817229347034918128036166767467780874785026157814276585926892604684130345287182289151042705478585535893487955507965491672226130155023909332238933352122444545721316714905710848417753285429884872603352448793589615068961393767545009945133197848536695840017043224451690511118039852760450451188276356489296757834617097940801244089032422934415600136241781995783076888001516078044925975984746280030207738962177053900022838920724635263773505089047837573395902380639620096442261573766773485046726564491109932151156026930642683575384877003447552594756702259006004230961910043365896392462611381113772099402574551848385369881164576076868069489656255807702745349092236816929467789831141038098519202784980409465644778736549563888409282679044589097786034651483367215580276796899183371755200458034678014131429695166747699900372753738939060626847135765853468397030119607653870512691143966181048570944253390728865039291644483623230472269790820017091449796318268029756636280590959232512224288321229763795267758399058674676182277803803264907533645103214056127410770453228915270737813670427292160956446819575401302784123978251066734706693898157583544889769106745817532917357456497826430615963486011951762508146476601615765329449809476280027715401709801200885677606057651877155337340850065469454218988541396549109400834121338398499097449006074422728387627535824627115531199264216646962137260381892868433837558414192546305663478897350884906723684566679387429336784331869611172722862916670660924346788207063580854880848435597869426874254924137045754650495300177576629719409862118743949717233719928182430997454092131681457831036167300594599235020884270575907396475476905789946085477853698172550896960813307252180984757967401404918737600432392245973198608897972777075131366490089161000954414184338988436337300396430030081200509174507544608240795696472544161629022526776671415429067168288955103680248775198123088242933053378282997035514899392916533554854980257562651197916326725165614323888045923345042644241563627138132310053278092799220249432312606625451559187127602603181345898264706461465836008948962804084725051914283290808146017874539292650284345535521784086586715988221573304144469583209521799323158007331789396444977232725070112206252993983712377203993437555875067085399584033513308653301172930577447462717057355014908884615408742811112599733680183663053783694846140987418334419522130722004569510834468969131225273677796911070867206397441752812305700844191846121956214731096307224728160567049126734839402779540070292752854857036207351922885432709379195881747562129150771859896532328272390450145373084359252797684377583177325316851751250638743853107291245094244594910848404455657817308658512393292143783498661522076466997610170637550557137903022401746766298665286247095301455286381267990941868512946795016747838538153868832559339653410694672135352959172199546569433682278771176797505136491761827129558917249570657845668453588507378366517188547019306675608437467570009682303684547267508851719926947535814224524986740199737607669681587395472509490525274953378770378240115227375943892861440680007310660121622858897014484903292488188057778824602075494643536481547492908951681188475507716325076715513946873381159804453579829213711742258855914561908295474130375487580394642448623313373837890859845058551987290963631097953581153951674679417343604315055911345911439125694041268974504147999297342612058671771052821860810008192259960422133648546010489811196718340277580256873646216735573985397530397901825354694196860970893204933527433416521145464464559169355672071431208541586312609251478643830755316972159697325901786054680967291656807818513098014832924024557380136193761348813445652575988671109130233063269824485852642355658813836823991024332963794440451090104004944494630943071999987045513750779737671897986410953762595317126041380766431623319478617504625984337972051008299049307822879721678469144906297820492843988927271716551202290477469950566180695601604441578182039506625961944832303926816758858664421973572476480281660070892872737775340211114881036263238114068059099121764417403069994831439264803968451357142881872503070008474128100991689100026518805708608299990717039272941932225835529384668287115974372379028018871186406281167717974770849283469463500790429191161591042721564768330271220737506320290477761023231060950970913551182384981640751772159660097453620192210443401805681627636231146571334407200907149058753207110623224862244109849874872368103407455142551793993196911832907861053436201727457869873707455982192329695548979967490570298153972168272270465082161706075042076465258621201922912353168992368519417514217449894385615798393311618252815246363555110156185268472722254917152476423321537323085677144850825130571018330085608336705529844829503550083140406543743897821405262388987578538740275941107955153468370201175620277925436964607130840888021583794952487727591998695663629587962182699084835654120744270269937128499784218314049914158382991056694616405394595389128441195213576748791561493257562924077019729768088502949002286994615076631855109894224350261457027619953975098378358073605462661521102354321432441866061504858404256851413901718358880494366168595397380441728094256932555998371634767190615788950822000480164531617289265440900706914001586242396632600010257638168419093591337753902894166455830106257150706167172024610563335026246110426004138590073721503989261627116431502373787474693954990970802683162591057911574134698793780852434533457977299901047649549023442198498936967547919816155662912976984162612354484178586922512711941076622526678245797630441307611162786536631118550736974954747864574288527964782924642797880153989158358602264560271829354257845297666567671440226215954771261334263928012446510626238371818025053126157844541412681342851254770068282924521139126004301083635153016392416133758712016050728716693335988157896572433018526136391050810920400948210668508791406843119517523600208600367133687818088313907439239797443849906106544451568244493863409722079708230308813141254075723111231511153344252569343786798413420650582460738867727514398777175379307524338808071699859971480437066009589068968673274678211877286477120051289109974716032537591258557683982978058947501769681013515394178804346896149696189575781535891680324297137449133045051019284429395752609939252284707169187662374332354306162432544755317535145482253885323266963235797808052131136508516954210787733476191625034842469147884971464000281205635093583354214295216188943121649659460012691154117421361540619336963829225853550600789473626635360663250043101719110264556734611953661890352913620069558883846753827784812989556372830711687853715864424624694642096847145384160409143068651514949068361103657743191457757504439677679218305553090447219831749471597397531256490090278097101753417535132136941764980502229449571598860239971761673144279573852765101895209501086548397831900741437909204690569637623135507409075648301321587961044154288568342798062451449210183055226242351905789063405502380298760052793073112919930899295132984576914961554639236235746172822497516300703686783488800746054835983995029170785256869527940986660318009812987441166601260950125166533958322464351098909598064161759321525786417848087330332002461340926004054106141720683170301492656922796697988084704428266477591863319748790718124448589854043765996177361843186502943873665197546809031312575585926076883146403544710029275816061865173726840677189378337837012951909813504027142503357634055748189825964566244472201626801427231881590496551080286070491520619513990526797680302632438502260072207483805892531960415076589249154864686268747648344949464229529806864369050003222921887492902210960243457455497909782785395655567433586958766161741705162358458304516115670581052977118979210162374034368849503229436315179786916859184247896250874537680986485205523029283870948231544567954139958920416714942733073314773500662483426401475664765081735524459134660623268611301894344492089275522340145729268898649338455783787803640409272228274163540611568304708709107605115324354317261743716316162997062578929441169046537983906220913270614441590253568492194790041067899270022049027895238395668940332080827113534200632555214214812000332532529339716570840254260184741730392781511236957664628891197490573080178914176519693910160828114300029188666210933204276947197967776376695281402696427908531774350559216867396444387887138232721235615928203880064499873837318880444294156090960418933735493095942663421213408811980165444089315535344203203893830729941805668610103476059578465786867855815249987092289512708117491225954764808907416368717786075972713237820494077561667115373347475545698265240219095305143054276409319305045771770565154609614128190088796622590850488306679489211239449492974959857876305617247301957879783092196514619191157638235205754825178166639483599287643834904281908986539912617890152434104354057877908578384487064079857452540737870700628890179467521817092887527506009738149703409454415894281105822933189904400614757758096030206287579952979688423232582397721021012277220804367550174519548811717728069848296916451694509075262854544288111622360124141938769655384610029638180791522575776955057923782730857252233168584869890824857418150977096269442625416516069771655127464561704485346954699913626786955944886874449766604329390527849884830627623945090075399295595470304486337464363561211234399828104300239910863535228677370731969873529000562433382770668927086411710719319339986741864045297651562213615657804628114316717491641095615807098042888319107910499675426052240325763707686408511712862023862051720776571482587052501890742269079078291474955111027776201811751583507541656965028853079359211487622261098232342335934504529588394434662313235834508274898823236418241715177598356627131594332141800297912513524990421872284230244422807916800546330084639708002177866445440943557967035828574102709968690956714869323671040858133116004264533204685292026994201339512931571835607896978878258730440657283608329362605246296860135302501304715830979232719634962351379870011136562162367210248905366331187304522075531167466113583592779337247797632356613945721782158589864178377938658495498056423914991624055511917969678787607667271661059989490764341466988253948986371926636383966410645957030623507906966708567862462059561386588482137227297141960377866921285415251330719111009386620155272880630781188482269600744609976396221329559986677579013991577623420184137095813197296890790662975580103284446471849781691989175611837962001081199838507691581082981763695589141939932769847929942196229533569453515432584313025076884160487693445884667030379345463173898162709437815685401199561169193740335822010596675117419175057527239326454478803019692614537807889521009804363910133461537806645424148249508575880506439641226925850727045130684310281353286808367887555298088088876362322792698386977987038785286490500116839984227360533407869758332548183904566318417963626794686129487904354203119913391255577041084899002882510622596251620463051344671828742931724603862363744937876522536165829224458014671490719786438726185916662750930024502094037860063871279306922437315883176359744770040582256648308604363108354965761799305855216531900844936480768737106797717749355682803862427626086767104358915753659266572125082808588107285541418075025000392627004823688556649515618365746458386575119762578868639876474253694458784295228123303726686107949494671890331780035470479385229644339058652627336300073971368334976474576208426669622480893446324785348428505718878631351792300399531521633717150704400902077083346892497489735647802072725560453335579059956750131590801951843532555377649366631201766431729899196925404292160029413430289850610632700657780490875090001528596201052429703755313073172830433156882894359418219089343791204823494252399035763696205565464553661760959406107794926678036601823994707662109204973374794311993647625893804993987338095254334053083581712963369793933100373657097675870356000534838365223501351411067357415827279631383714776635149846826814474317567466703931126196596975594604341573612837413625056458533464367477589220878453894437872480117886795366085365188551459458847134973798283821790633331631144828375734630869757023287962010909799947302652037164898276435668834813583421249713733166267387034908577393568939009644980379683299527211519466159489992721950459688198471811907232538713952119152085413086245092741280335067464062675102203431545223415460900050616425325641597796964331486426763219376221163837329473297515993908439536171039606492638611539503029483568785426726421218234975659001013974661514986529304095198499376298582155788379121119344988736624357735648829939765794324036761546819825432771842724913540114336108567080637713889957896936999380177985314485034531073085427681739058926614111741158180420544760418925595518792959571108371988855139670403450175456834682420245341008540584045017940375436654751699521051317738418759539212517813823020971489360671309410748188129621616604488688350142167893446754742719479900853882408589935688213338616455338077898948809108052977737348336768530835936255924136757146148549588630475537580260955570347175276538002309032142858272771574057663925662395848255269585321899605252610310774368597882223719008139923328543168148511826945059764497481965850638205822567616422149247599143427613030789827465043182751445183868707420778448857579275679824078226902729743101008305250180870504344595378228778686019342669847015973418769283491077513429867571362692228056143755747192018215563161428554958601850356951828347684673406861768951727434456114174429911950307136512618434544501596473393587799179602227892194559596393990934410896201906968360315910621847634674474170048543773325919854370827534994407307246357813108317964917164593969926040650586851807928682919997617512656323332467628813337107184042789388570858437121415400020453815115050411292523641471252497725802234321595028555799568362861033015292838069667034723833267912661010217998097852342401937156250655290451120874132109388349213435982447605980198434219653373569728175784975121948966480148158800716838447509871771759512869658313046424056132219270695618563534205453497544682482957784359193022220440514721885503870185666129786631787832881870641600754846122694063389746456269150029269744766367725463344119405962359655593382481724810570403015836810347725421167116406726399376038863347325898436114681047345598674778791026238016132541681947295248499294998331471176462479856378384428898766617921537970284171926105803256258041393950527736437794237436590690761719138389956688789750353166091689424480019732752158433199545957234706491263687370077780378313032542385126042672097370227748908252060915936899195100373209239501609506093806973204115739678962057547717118759450844417428410634552250440324702820965870730426349478208796934245502755427390019730836034775999411257639384351345534467370788964440813343764295789843006703458147692845778354467808540635063398411689113239186959051060041275750581699559185841969424787374328474720712919728389924570807779444318689529446111840441041290469879601440666423249123674106297062737261954281207272301537127940741980582515362085540857548756826204084469901942552218892241427114027584215890526548765003635411615574716588536310440366946791920870752927219687632106417314376444050295124397707096933907048214445926669503385826757619677322873530198500677536558345913630147409865988779124955880051919568263746965059122854521095694462984150530632900751464232588291143256034371664652828872351092621915243386766323387059759924329453102851997370279930093025427421088222083558513278205187941455543386054063524016317914439753305667506347445564604075918731485580645707220102288904661076690559264614567419504739958385358493465033904705498995641660058843309448537800845572929098182391801374719593137971231069458833745403703625429177735052754536061531085040007119639623758158204894764806570840785160586220216963221217378057802174019650982671358823322356069204446993745150326501345567719437360876260501743076628430748641396779496999453655964346115294675830690016664113403634665524561904250671315786988314979637335053921960295987502662846943969786918428345903603554607335553048527839112442435684114953370733155981072522557735986400691381765929490071148660645004289413491906476124598295643835287370332380661192052270600491928519880237946264447173200786794358591034125311107528243782427623349375689338132157506564196944478419865614248847629389240784101936228983042500898172998851354107488299610254363189271755392944061431955563894779953653797905739182527854451404290860432156510175145212667047837939622696892746745277415426516685074498908158500140995133429612199727000205910620933698278391856399958067373416195830522049350566015766267223289800330851537546963861348903032542328756838518554947539778107648365735374090614695887258399295610623196632326435709560136363601885668316340991030261401194249144601971701132316038282340080317649295370948233950958906570589631034767527606039009475093016813407123053101130712874292279321288484302157008121856469850314018217305570870428842122793804288779516737109606875709495570015044287570403658468866147154958247300101292508832680754609533096714652779715712706285947876388854699717685104552127823720125266064931950267015121833761261014716715815918807451450718129185890585984212437847219793646315323045529219821071064854789684937263030557632816804573797333868356482862786443004667244513166909575819012813467014025022637390264435057593057922655917984465663843386894360568678650597987371756853712735984972381500834723575528915361291876524889456466263870716725123315655363827466284513210812765675117232320325494256197861826721641976794658310663431004033316033092854512358460370950417984442696008779324701992261641317102360915029473843018320543586683490211439819245109920197608513668825847076000311673750215431108671093890983217740574468675438420494141727576895485206054193265129881639935490235336558092753361145553328710570389002036882706119143428920468102041083528569704691824597731500607634369062981310282815422314708193193681026739239727513568992813452608172517769288283923081839982529760226380260574613979348929784857054983437858084316595956088379718556733810882623393700518408638601875844408973494726907702545549300857545594123309985787509574196331841019024045450852490219352755222968705969736412689763664263176178839267375774278946561102164076213829114734005309235755315089482706006934657796772299593489730919246667793725724736905314555812500041496296807299156081268585142799426826480221853813191154408950308845497948204416401690572388510071342427572157620793162512903176956448888855213119938973953973691048233975956739641639272418990126779125218968478602927849294672492388834147523654763536705372612358094031294875064426912305636916741304636687669225609100914817146430058063779233312628806663333996883569136591803513271053952308341084596089083360851129462252652626670544753420697987116611996686593194809653773941564925342260106164874163319277390534541256994310151330919026453556536613942979618482840631933123555938054085836664502724926874702684159385464775756763784539023328793541306967371766313521852799460829891517973617869823327202011888479637568355441205916086105610992287606097556379612734497638655659200442274647878474886272622904503743909201078731883173212860083106753053191776627065118515101724530378015869853287941407211342183877021766965123302799069249664191037622281476041058013869668753327168272406834396631595145223294093498548289412098590580509986621175430559348820402468387761515014314234949670972518235507445962533375155259513104804373565741734334898140909025816390191096885361862587843847405735022688365580152555601178034144603177905304505915557313955826236055256898910781019244395348727191755800558297196812983166851937693984749065259619023966019435742328649749396735027026464922568104965128406014530072813573539132651790886149814225894466145984051193957620541841489102260351858950887097784756530315103247891787296309395658681236255490319118720652620296326080714727275074426562293463707063825797869722419418809365153635298332681937750729803781391212090173937826829078065019715722330492028756553777286324519086135206759671826186855331047355948128754944867107156480215185999737698988043628268293613708825297017730919233278454082647216279377736492864380732363100530904584406766569684379805295406972433301105583318300972438613814691538058434433302055728286349710467462014964953379623908396110500116171910135576846745348900723056862119806932265061468449943408578143837290822705455969739807660944578401440324620707807031559353145641178066210587730371504252880124988152205402563026836967603809371848195280714620742662868321493836619613550565281002662772814398719931875021092060079957065402703122589624974162371987227737834487904096181648912355403001581734943022241935745157783996882541118445635112766151029314992718297677961927970305560694441371493564693288205349694079663792098279217314418651858816647828715242509666101113479151213216110225898535650297810078625333549883307446582342188730928848453796343353440216171035067176882672855070628350606857393940873829582363164386511865278402998260832988383508325162243419155529984695523233171752400576026424521638433461811700874367309901389016964965524018623902519365181723992114769741266295556295157690108605800710936035061363435456522796112658769802693954150121125815157528283253549036532881711313466358045114213792637628468554656562449391696859391215500380928807560196679767827477530886563395019611212440590057915438206697602577768276451429436999541874049881439458175612808598079845934462742367178160545640974834400512065488191981867995987939030528955665170778713395490159770602221371883768251037814220461674263220580262879120270402921837803207591957140550603028578378662314257657200529809107148364989315110975637107578234824013613376865477885241356340548169698750719852316556143970806116731989637613378507351676906686962793100073297803574863907358629916192698245386323524059779814407547738868717633189764718894713635056222816032603582073172140595139216694291556132215816619911908866514068645910676313530838943721972750206923590241086925300765419844071454893434056253409199704070295987230008648299934340126820318412882342335230848620360276881998925978821707887008986900309511805726696139232780819483228390525634796496222678146152409066079303199958014621054761583071661449381870170719355334652786438177598195241519868335784464721437601635440745241971319485639005103031457897202896446116059973886889441408969826593222373305257681660776213618665513083206049740634090915377622762960107711959748912575962280714489341698946303961914116162101302902538447138532068167762318976368504117127648832591720380645077457554438011008933906013853381033748361681780325837259462127671588092154949582084402195362055245997889808256284320330347306308125319138956372894462045758787607417957831798346839805076185023443756625146014165707150384803054353677018124742916075891993881343143510394334709066135071588139503740291352863957027201126742727133832065532978325212785610339581180288578351768182136902776074833533771945321220219478291620026324064305526881416846391364500916872617081448097550091347091879805654075049475061651129422392231660902252134997979301298060063780452023124249519852080139501411421717144805780755322813266898678864238629384978172584730393328664946153245606507975405745650405188201228500543856893452732487927399449805918453565851308288281183984641411576585281456604893864386518989078347762422399088080338874342266168314341256011381873799027013388284697914427078473941205717880993072851493863523135982279361609323924660041673271361655466760440091440017868131017451089635866207392430127912527982384303260443853811182033764262277042877025462752670945497198779102210476038409838322283232151882415170115494657317268804905901092867824069949112748664920016425935688252387131777820758379382539020264849796681735552750709773283448458547696534430954508812810242549532053932457522821264000081973730737623654298157507489866131265371592908207565611281246587589177269658203885193168570479607012266929593962208834592732319147238943098530119856116012881081504807361569921001280443488161625574131736666887492163693593206192160831570398510226191613456484328564951543581433458417173721551273895119650478171413311871590136086958047139700014715221002259260582098990800819406756391834390326045626038419347514113922316199561424308956035976022156234075788003669728895747652999638998418777306243193862872303791603710780797097210105561032003076117832306807126165950084743796352491115750514669827896076773716747566748357786218854413701078689064131787284375036497575876139644718152319457348532638711581780531112439322186155159645571216006516977893640503799288603913161781239692225747547322611135553275935938786589291316616057747338690983250510717807131556878671635796798993663836419235400402268440467510777937176049157411625095917193009697992732189562874165569582913740776729379435918224338745338746987475939958608601443743148790545189031624292484575203404221050728630256436266335740518928271532536218558414459211080292345062403694819791795465717156434018179666510571997470672724384085414551393155571652981650745817558279890278494972051761719702523260329734240290215248340177612879417184750246258781364682212164936996392226862997351355041433272361424963270934959828262490109267870229854417921285994310071656063898510136666014147833386870313578895555898481148279366335677313818508512560713833240135371928567148005279533559056521596439234790817619490906627874423169089071805936212105122445837567815030636601125288836987920225297962037116733231922245554681411344207357199372530833380173749753790965265281109645173656477581522875856575422263767201278931755653821852422511426588552483378325720538550415185742441402710854944103776084469085037976415222111966900158888227563348688407590325976167371399249631374656073379800663238126011647583501319271512026039454661950145606159407540579279856587033459226295673837745234227387017527751500609157099764965199074734785360080702599703441093632519573810524079749298789048322169268905780606319778284788214183328470866899394193115706451029060967403272974445139063881582466358990290794411276642949990582088495138834848634400541849987348137685313568616386696313357255027560382924479276027426239746568427114888186238679476064711733655696115762248440036405823892306534622438425135464010162437611051370296156771635959511814995464394814583118586812838936939119919469126008602112378003461809578008587681737638488974185440647535600108302501179033300964592440103027888172992937294843917491236872239424797792718895885335655347132741516798520694254175068623834780823902871410454143696929600662415198322321463793279299783857809174197667164374588054337001907214227236755443019075834343582150306230395134737379621664986615970652205103077758331593933114450936982772359038905263044110948486099743005449773307027579487425333875014087860445245717817037828145639568419856584098170782680341978490604632455984361817294094610275470642257136549211913832390380773468062172815762374359980562942862719957137205417493402318979940368363552944826581893492254745699857060280823874583838974684009014905738851559220081713466081694717570497826881970104343669152143982651495616559467984771494585175054600669071513749535978214057440126602625377266519739372528720332778530303274180423810309129413991791906938388959222235715658200884671574246730887263591222566146377684627478275873774210825202245557034900894543105617300545423715110603532729198498757849057001744874682501605940809103911401953024792436179232568104318234279004523588649926421851559170635432237259403507703389373698301243818683755191119512906683187908447036535187966500277363599831867055058846712476269030397269257556400128670255907916513152921724244082576986513466234781075859675099682064582683339331865577579698072943310836677012824028431126884512332024060736179949294778647458067871648602451454015898142476044564934832317886833676874208507948498494512868169719063375712600773510875663810671277875620730473059089596189185046956720945262609644939226499075658720108373496972753973362655856193614042781936984482171935132055501248808995009741686956238555481764405973282546942756980692539072911731311252123692459430378341195284252364110053573797061329296744000312266196443113859937980298357301127435261016067597406562254804133633000312131928264052358429647695768521647899856905117818825192382385404299736622086952166022734451206890358315990500957398599191629565411627156526304049450445454507822530714414153367302930771127788381873860699361866734754307709981414838615833440626253277499202573798815890245713821915229262844583913207621652781503018579990933849331831230407083862134504424905631011338431511339878481281716206612228486172718289922473605386566381096703892219491984022364479940151782468666948039374410566823081363549646711920920082442130758044781506628420157306571715780684970273584805466122921535695983946113146851482179092422887367586132632003040144126966084563844190537701757652877459410533424015720514953582297678796971549295736407206819474815242477601583801289736374248725297229593137335002131242875366999900159692449506243515363726244414244014708030904787825233710133062844329902071799574587731119000530699729363493399639748640341582425008153110928158071422099112668400657028601625720041208456493498225930849849512674263869710283840943646899007263222077975651627678505263773723640627846720021497361457465352451991373284541390705653401779859265772209105237139733913251257856819996623017535099745591223758931860243518294245701927748056390266507901925203126383432301307107202603352874889035426266438944482035440897693950072630526647490167947669314709138527888153496019245012538824163567608381574336711485527078002187473910229789226032862113201302477620621787355550916999303533963200170519520119184337277918584028682457264455283873162866582787333142799170194117810279379935073218564837874728772438987456594210805263433867047982046513276514676128840644059023492777106140116826614546258800795193138385768899690002796211616352224358868802230686348827366612557662082193404688703555167551310443366171587258616414828010217890433745204528086343850414391316772755643039018574234987850759308741093152257276715486284716747683123376926649268725637794670354662849578295168299005973831116795229892679128978970647943027185474352719836570367728256660297552845698651393894468787486695109457817230342100062401170269810006983698642143487331455657243208061002730367008483551949289641054952915932675227432594680798554525349953683425132881204044229107931156984810862219938114451357599552578353041530808919937465464106032202972083751217937546721138827859154641843497041590360834355299467635095870569619708388450900944056000084692395251788328421196895243203281441642510035443541906258550867431988261476037707417463944739635191873675055139091500156106977578370475800445604066593090628145650120444111304162206868895370088907276152802495523490546957034166519750313480222616634182499954178371108110438021317779867803030703946662363314062843147798584999465305575421693927113459560713124115625769109734947266665672738663990194918810855678678796290794622547207118649584553918069094856894432623340667794710790540705057993626336847663530333045155106694729274431154417259338574160855458876268947070919070919902194359229172363353979840564787605641941830871629007282334520179541453488021416488970392423041343410430378134877084802967831107508397997058178971100426249045940256414062359994986355809429971817106376308473496810165352115425503456738361500906560642510000871291880469169635514134687084249277916931009642111824186097775693511870760469603139990150403499929511272383113979116582578998544435266915909060201163697514191597601836169804863600335852580618882326570273750313285528761327024338122921582618640419831193204163106942431505075332668295808180624781772246115049643831570920462013504088249652235461020059247315214112726636199572512649361972749777730459894263649534040308107326921043466223416019325096345833097078334584236483798107573708430589693028991488699752151534589758021448208242332772762598265374473339362735746014615234779401336338306934163358245714252802062337513115551522000233899536796323876226760393649129493858933047065474519204340720151175178459166035834125396002153576545377911532085718621508142055611313608035012927227350598267701695544279284083367753994537281490294736025869112339000160892509176784465920335601517561631421922578725187319680825353761996002481173922946194226855878919916548818167069282304599454151819931710757582464380125685182770506787266469096897493192631172144818747976114791386310834605845531660697656211163789744780004733264186215062618956866900967701204901474445567155499440783634638454779274680779348587584282429842865803219494664105750165642568933228484185072316741037334686000082641261962714878045972440162320184651584468599787405653734862513592200267219600032254332544330276654889528150379520076177125879811754849236604693245898374164476849494968704714850750066396242855252676524236559239604917887067122883526053747896355057206217518022197540770763480559261672782937327892995962704179625045320841317984523767717275313864042818456755959676769331964336875002634708542148342896727149242727975436393614674241707944168797044609443629314324247802824879540049137851942791453486629200436869514843770834740357606904554394816711480921216669652091389408441124268586441127071752515283394960864365755555612177876511803800337703662582289299048550729253218894220090323592182310080042208932020864691235221567696107575205103710338058649181452841116621462094958327083038592817547535219518257715677936803957836051297612255635652989380613068269231999981033517449071463493698649513972176125322232338704789080680719969510202614137586735083255366105713100051097591534963446905894371397899151747768246093662976817749170134688961519973084829343127279622984147864314783910296154481416954383512104474427119524214629637048857545238625728950597574114892596842332846335646395488104745056080527801644416094862266076164936488539676423466911322324036159292840440102485863020467399944493821879772623422123368741122103264802977654313021524056687489117015898807140871481807844396538011724864518606425495729649794521778679060093589030262833974237698385783467923064082938638728545781871018573578934614218682715223324343219131398250258060493243204658912378591231952150166642785322109081513260821984344168834996023913696999383591676487698680335386769221000332330226117809076235455527082326066726141922532872419152843291295770728905033550772284981078591562999847407606359152880693265835139773135597432805117337983586915228106584363730362892731382600948894472885811762174652044473807628056508533299244703867688376346335632474389600974752339587325605528367837249031207054980928018669579431735256884886801045843857868600783731480380795820512192846785530894262548821964099907512231648145084758430128579756608566728721866810067587697020262486671489416330095459240459065628256464931849663222873218478536870889018394536172869803356093544603400738768967318706428344346884971416502093368159206981152612856928975565661856550955545588510391410943177193744364809635287747409436754557163073123836899669521663481424078729863245452245423228256783562132298741554857209649970167472956643933538184458448301422083916434463929389809310048637833841220797621347114305318646504193309242870608221964139698773571803738159625698058885323709156999482003934965388857265636351425955491812046890335488994498674487837541899382291481847842015460550714775129987200249894852369049653694814324862760248097578505609093668524058244464294861334680507611405150386081923226264907715642970860905568000612281981047283579639319881245630229152457553414706726327779827934018556278053061560696164909896879957899285843279615129554675420004342146287728187963595403596934558245643981047495877594147320942633433194641312455241766147989323928961178485086290278062721738473701604224971031709157883848119825630273950782515918968177838463463807564829978192736655833888526210043281344786249689388347608907561496551474310250802618914544565886641312926850071494793506359999096143661662153482849532068866300866268839635278174540041709010128503853816992043277135111362507139734292406107627453227499152490193760167831470841592063432719857608958803954452882449545692241283139553782181546778147737553232952683447531781493683250135219195489457924828484773929873078024681044778054211595043525397649901205462957767688431557222715806502762939894185747534498576738476220001573209100192030301930782834885752964420728862241162694440994758208343520719811572037700508481787484431318081486335621610548271572302890066965274910253648184355212849404022022729338862189564765797105947053637700981603451555127138117202017936692395508238425447074918679636613345964607590449141779901488563801898438584570703073808668309234746972298553993614337414536016855115874789300828157153756746990316702829955282067174336804054501293570938202435550306050234758831403208529538070071141514002857327470970914815463729477504288121746919389523170016034381498658190826494863151887072946758529290077929538299953739149605697330302929727877116903817941713750947799553498412987078054154277881533492875965767691929976784806379912862383723447631588334125635878399963921006709399872802497427775779043541869817694493315063232129628377789703021352333904798346247800930396751200881209309208829331640660300918128071604364722927220293818406128314748672468956323407533642085367881502518973770000740012441879884437800823969035752094690379395776688196765288910405537602001447321462642599088176136928997343992411064971720334906491919644211399811752867725688436315919498024513523544181207424304003687304845371970321867975220087187336291852581321053824150782215971393907900794939651282457624532774614841512193135408911601573196697577045235409850969944241770893711002490745721417239246329764033916313121608361019648766353877205772532376811435013390933812452987843985355029096424544968822614262751596867101273505020799610594859630855200220905725643495932392409310108267292674302554865959498512694696596313491998553134126071447623750437304149910591139919544809288928175956052852836915859831790160313842563172207025599706810047356039014901490910403510901331475335323416047574990236839848586426291883282598273948622686389526514556475475052397723120338826712704379766684308287941264883393129817456094160382785259118440956864662185611270898771859154419201763588923580837229299288937022287925283029276392748383888054826691277080863122962037787530657514139283964508615149072230643431212462299578163126114226670013113674426053613294185331955954061790580255449774869576607634896642532534070655893291100634939061515244340365557774045258815734152277205328852404453044049594604832411442122715217044342822113470002629647960049528882893561993403812144157949246783939755302665774492804106540864426010213658417792228460774638589302271678783800286012061883770661857145660334740442615565921967601576197089585591063327871703883541709041793212354660304438174268175684084352561208953850344491898831034406664130414031140979543936214448905379472366874645088601229603087227965116351854755648755934796121942168554578595502887725121237495468439292331297278901526369862896990232013718279494223425728859495868006916995171058098294442294263630135283402804712733975996278812349445069170358729994887019029891613149027000500093573688317911572842195230153186509374656964491977933952144588072064637444298450794511503049673311247556993256444490034523472443988688312926265330338270558428632787696421963766292085780420429396836723403873454398652234931067703339662179505885120668921919229574550452329819982378279895777556099004088652906828121736061628761438644550923250274122965777156005510030150705684146881211635341616571296488445191509041561614879262482315160205222021536598237962072543347053877034723088561359491019890179014298948220326458523153799215571392224064858409302820184073761254208357227712217999741121021499975243554244510745763492756279955234461962458010259770773171192157652026631258716294909893686982895553854065508995640773589303091411130278953492760419686773765298850996188443815422540602269434415276943842527680136475264563050361331516174062715630299043632871848984094691840844048957097130132477574475678123827789166193501897560071018916528222721846830855659723176007254181086352390522256187262158319193803201851969185638262146535096014354217052988403848583862841252317835319479278408483211367756255784453182038747815644539578588702435050739997298252475575088062400605156731204339526384341113285160534568406435638875454980138024050229990197781074417145930732393995233273798713020690278414441785349253276349502423087178036830207381741941259262613919898518412156038113622724217718672861385924398597197516691547157840658758281257159759152038299578744387783972929365227725964459439591679138095938528856656386132408046577328471749803590272223233105766379289246660045732081169716036930414027167984215045682232751764927372773120812293412473379338619609813469348599826671444248191088058785456018258223582605535068715387546684978287362802782095536372519836615411559555445264871727992916628645385920444485147672696962511438792878123976908129489037350898705176893247516388076110565944225963891834725472762910773452401252008236020686379130514810030412780918117618176105267656799673591930509231795054310926719779039055653420975055480026030981921028563962016108540588678597820110661638510992177685282575854473637520747737523584704023126003633075421237009363372792973039206465264219067303620657895171358812370750596195616954886572564515803881341544384585926541500221137011216323179267580789989051479146346104747869543477541808484209625076032239842686200205171189376920657392933543017848775794711518585272797003706221726284754081720484076057012979961649952867826016949355157310070546840699739507003158543027088663174113732525222044566715767966861859493880675382285708989412439592443259055067032187482597381860420608893832533993012706028127097088489861168537197483065851049385756755548363744085235143577905611759968850022104289948836267889345529778207795748144099602698144574442098617884371221496495414715184318352709993436242557074260783404682308770434986158980295551368315938146718150099929633427669404911615770364386546473448239373407314054735072443724421396357176045497527826208707179212391587623575650142443364816069332997446320196193936681853267072636166157527685474013185649227868528825811691647028851337226660691014883235733094070549200857043595158363436060352643382197304671957682473584761126680826741728187593691392136732159641854193798519496102694402043559657354558242569293388086032120987932135844723037305258881550219750841395823903279336174760564773452925085409672836705613119567332874078967044965188039488610495870315347769096612143691798200620241554754460837450503016508867791466846965744112124399953412308522953858704340043654888736398037807035924589834648365669314181605701092428642669072422329771433305687348241465008803749785874576621477216108181224110875540389551687786923656003782079859286578580362797093429003965159365587280131365799551295646436090545881377251007025679505159879308447596593453610908158770951585106032976254163895905856754862472697377251824757763604349627299192225236685713876976239351946853807112010653552410971103017179072246994783696621401925109260365306903086253441801405613006185276115112645611572553820302874864958503506090418171190088561981245263355073640373052726875564222216361583313698994638892882173142605183231284916053964443029844731102105441902135828128570374128842183379638785318655356576203651285042752582103837406041965061443359664334064575920201290697912380548544227654959378520622724783522991475470441555559487035930321788378623161574011038427713565088731436504790986238562231278489821413902638763255838737930769996097140188067230016107859158926181931616438279282573498892553458823322168990391029183818556101589745133841270492880426942170224264210099534254068152218282186644934518145595633002679931184085248229666988492276358651794319606437986019025382694950423810415193726736602911421328167728411552236956111218584996035797316918197322103491766626845679570945407919037063757661534335028188131438923864937767652561413663105846953426640410591929601799640423230387568696478963233100943568238709792717745828070288474610655117296192538050614362515792414256617002587181707521855068229943020062689681698459423901938160757270818500782888500246025038374109697380537995051919666492035448817455354153771462051435677023145750482595578240770552754635207809605682244544516828540571069619215495432635601030890637623525937002486196424315555838144139785755361742068250784041297969201023582186218865500437803519389451243934693610802390938304814952098126117339122992670723978687624136868112973281764041578217693327150589961043686583559722861963383445475671764565400661523345474387681168227327348320309877180291800981057011316219724672395851772027409323165055618138878295492755832072115875516107797013865762244887358213511104399145592590241217902890249499349335201443409378080229360792853612308567781832926370876467818794923604538335940258403046775673188478635208890355712250993671226464930814503645642428699050362385325350124172378714887171755016282581080774704628582366299446979670977909061039652290841853440149000766227943197147902804000873709102123453623711849527667928116277938782508837546362278247193064590525476881951677775935115913869620377298635644891303500182972566317010532312519720529124358610046707476347727172584647997009200550859043300231252285742189026119412120200631356277726594142428168006549120592656243796149677276427425669781400357243197853489476143098622735875106201986247609365380070731944251603905949251754219535829213360121095876493657552769408440119466984938872448754276244434084673724943415437707277676503374771924998979228155875896587410121587297205768127905950422702802045519452713638320857140444822455161339928585721963353656269686371848203092648864107469692796755866676371600871996956521227122904283033162904728721364989487819646333906093125749349498592204372212695018467744768674919331017586986360874644107441731658644540243884820915212396699090629742188887381438457436046917472090558555376121538904971804562813834939780635527586843315071818159430989769374263395324139165411057332769657047801140687274538138120908840532583443931154900131816356570332002510326715186673650523352206629428734911907271577771621001419842928523719726234334168540791256018303463650260873137329902528199221607501483158535496628516687239259028235783945875897420745748413001965488942358100072152495290515670538521786425462807345725881953590478583829208476510293651695768186034540408525788376199159885389458717577724305368461988571260655789623441514443514355374522179874695453752883009963605159351958409441809179710927797361017834403720224781314881360128654354617759768376983264953295054789455939314158100755269691887180618914223554842260577161606668685427933797184450321011373473288966062481971547950572763838621473927074232324978384759469625436386059587197694812029151215838523456795394424169451689844881818075059088435743556007101411180519643156551145057640580688947177590483805656091689202256530433061044246477336211175846830707824560774796422317231991640764437034565285005694711294776924698132476141274647546600558718811911812765430503301644767223755021256137790859898011070773070941826328073124397171279058974099587181072214131035981986076741653672111379157344415560427948176253779934956323342751279497216442342195386163033635994109559450006258767202028507526748849886882445399334418890376718093910317313357545593244527901144878666846324101988089739568933936785503030152428665436163213114975294703620075018431938598879592449338065608248152451159177585363091122231742269568278444302755249400449519407158959058337405363434357882328917345398077851293578093050787350285944925139870526016036287852175819479578284066883245261935095117078077949083454969503248347982812952307966170072684276310172338652279163917904753395657495027122559109698952386908297216100467580951891870097611041786723485939180479312584416078593951315728978383315940683772112606576410048876553081961833175106095136672155228814106134312961891702600138078937274109773107196397280571334595985797405242207780057154578300663817516874475132104706425760786538153374395895459823230291685727116656062591370659679724039224673714309821241903501208780042214622773034028439968342267901309262042798778317760687645388119734846895613244630934656449909067676566792392518051266462451341254793922526044834155565978345987296516216927458023726209300852092885141001619321725925786503260108344485761966348093065530354949543142867515768533921229159744841354772871212041445873047462058409739575328453630639467325338546451125648760063127426485746034211290894429155142280843801912938153332344398706833809423327743754312249833558825384867357118255297415665076760559126818518014503728124937598241802895812689474055400591832903738866790227695587344375766417749996015435079878566562084724646303734705589120159707157004217668127141147906958230340082804978267465953685940315723640590916494461018760629409969330233507736513850050156716822196184172550211261545128929013345550909478914073647450580302905761824782119577672294984329823052697489773033907578317895438470584000011691377613151098541382556395914529923593251603240974315879714242779202120694567268307283689025171929132430804493564775956507558198423881212116884280324606582838266847719115540440527476724001824363989765569005650493303096704348037563797461197027278650988906987526584784945484131814266657401678209038926116811495106669169129437275097068706935969372748888465436531779318293350437865039918973953416217297570485500771524455700981160329382783363403630157320154694717513856050154315818974861788195697363680790626620089927568809927592258792466796209157799663409732948722611614088919338901547488415302117597413248387208019279050846235210566024590656341047399094018242864552628863691880328073996989151505117618955897872288856287610148506279616653372573862860391737502551761443030955761809678532120210740796031183750947168143327308119621306398411321060319118222360417837709877096915991733447841422746060080544931579941992660465060494894185488325920915525510388128152933995943569972715510059666268547496697543634082965335437206908490725815043527419058484719181519537270384260334123071258256101690343210288954205114846696414286250256568925574322971870843010772880017373036568760154573219621903198061855876703955994204808883394470688223300564543285486227910472693576821299421537119050118062463928573058416783852549191054639300814546770298885435085141074449994354221748549857868736560296172291946910500709771135901480317722057901316236524915830830754192920498501353052102487748914711664279517123102185238754046317369945155140697911010863374413773270389155082980600344869686048167314679736227964630372683768854573282771459394364614146358725714930052646337857478844228533558232051818349958970721062546832712955464852549724590419701588202208147307731494036439832876529087911814419085417006155273744378857324484287877235598250792574593835782454562171771595913072430140760962544184564634846515744470403302851192420344011417936823819890258915167059162566839124133135448319076425186471777436142123855839198817331340069581432109599460535846905350527754942252239288976184164474205039493687909237469117517164008532914921375683653990424424132815751438573324078142575445350320607271856073568290050838864487850966465008144317691992813178094185062816812356759961173596272634956382732872486808884924614365970681115717574857238207492698847490263742192292990298066870599225819812942810702157852688489639285080072613360438323207091259749785698853670053942579068194489166536009458110729538138963455313518913876741654309390052949818092702507003201905280526592152060703789940412584732859236333581035044811546608180369331955271957490996696258107711938643840087033620877551667871736109738955356316221687664062519103124238080851516683770699426787512873038949768613166955347783913674182201582068781166869725083199151318272582801684755793494181315730743979488050124277433039076817161511266374475239860700071517280082503175266841326814808678234031363771169775254365901599060788593051139497264139033660386679793969086576947083825541658738592357972540414540821499025493708072482118238490467216219260583374539414942610694086935717051433311049681545327024048178614468074042450334717198152043079787437257153477111329516558297383060987158732811488859288047978786724102625810998465680279113685297753534225929389864627723767256483449457332189140763175018363437248077649059768845235475011423128701140544981988270429530934195566961191432636860573236778824470084818252555672035723329191756968726841883871753899617581368874975069321215468648145044024453782268573871536271035896161359574036159020233864414050601198981372840337273862101146358981698369125907206783000265519239292073194969543302058518924514409879936140801296893237927233980958112106465749943165179895307945592922488412508101532225556832727777209870697652478436363969868136217279611147098226787554706039406196746737325481385015447764082181863832969731277517209025880358490237037682930220053907803700424618340616254044715923404251431382708679326295605583197353153015574013415880247127226026801162225307271046349681908627818911041678091102407373125217155646133278626183258688452456349623136956795307161168647271673165023604344621126373275932905689464670452543065158699417772746839198744257639917689998657211467416089113558796462376893679539810080756504831080062449957719659146220222208814058750308533176275844691033505931586051728221619468117790833738007785383275715456800339758667862339174450230979668883969029218262767355308933765611666540498989933401381402968673419349511038520937592469954685656026345504876610230914889448434796353749251195817845962828803717472101116433474486818289717134286938634876213560262558178416517237036881197796934591412860512785619999350281083895167152809164479217815902502477956527732345922919529445654568177912122647244422590203579455133026732642608748309180870852094580219640867189151949311771284818610881779627220601399327384491413111739302752743509280094786699621873659084368980003841202807219956976057710786128535941146755779703609324490033682436686244597698499288009753107950910599708454270821982305409207309672690478766462487911686631228878279667012554007029631069022446406399465987778263536386172991674430980304180790732266118915084707739155826249150675030493785164655991417215171942339826422980433186459867398601193270026844188866381171388257032443850845634024399348846310997537759270340314728066826838312500527322756265947385412034578898145214262322915892236522728984530270097575104418025068392390256773898863564206426587689469276600707568532981056579284366179501131623633252462728580352348713952736401900527749832021995829757037559905079883245262382244079541701364862949549836239232084928424069411967658289209532356037089034298696042352298718438136619678467062295836769301558184308525168540064730987313008980021601214813058002932325115231897042331451524038740267197372998988050041577870473821032362370544385982974448842890772899955534626695694649573622600103375122167870095690832289240830972335966862456070539161456138411451328032561629534979178472512430383449546039875688996635130328052444838228662814747632492631164130435553533373279491148046369444033438688285809087898773005298978797330170207276285600865217649226561096316443734498920887185457223671412759024661008557550283562756435831968475403069506382868393200433852174806242812716053555095602634404327484173431194059890626780339480977807136905863556433378050416388794500868015249160350275607874574295864840987151372488821285361124123370425705725188075203005763713528793057179936090812919480091207426290592377230837323377198920454100424587744521246810654033630812931914593708361013810045101717034711833254813262549794586531233276382828749404247413831434473480929777306385116671675541308587405914555781841962555691943419854576914565807023804105717668052334807280675012801085333337551933415326851532504091385095685314800526672230773930024904429096575358961522316862010862763332779504052343746814464908842480871908397305704915851940577282466242819554900724578135496278979934037168109418297344264677470233130943088096166250749971851307000041417094883781532298100461107609138782390375334011682730195319374839159771246207261288741630834417158710968673430082442127363426454267663399101706194069195255860571924662004024468657218672856042478260252723361027266910980635306231575070742548618869051796250504162523589032546106553823001241189991529725237155651208746528748282146211061921434564450887835618353634389427445847577609357117875895534523202897221250967978089620177469341951335743272058314270457061620960191911070605483427368780371804003358514845818596371715005493766794559506863260106851301163405442705566531275710653729351528666712449697476197705510296444866892416552301255567242859048185907675520215979169562159972179659836165042362577972258158430766704366892414387025543271308932604438803382772071184508957106696196194823937356831601356604433707368865623900050822420445123432204478405353464974134814135664112943975037818806723626040202351417291781255771460437606463484517470718818717031712692604771227678876813651813813916920927341845511393129358538203548666685149992580097552175254669921547284154965000691223096765438166236298444874985180079344370494810982475072623741606718511384134259271302078985901477182383187072421827559060273373071359566556990803908920637844491232283598896788516421173558781134051371606061237305527364012825613770944679613624486817407607772286608991693863599729492594350033252704861447959860226636330818986843367422359879978213218271493493511955156650526402555787392755233508884483893946819745235462210255718567041401118946571032074819585214654618082191684766570974117343878036838701593802722049171962443099560813788074020677066357524636156641445440108119769710176180964597024217068176344690032252167180072512171251141814427248596499241569098108406785132222168721985957335647110511083886161043211550734783797069864222064865113234911488138677546143071319818578094013839955974711504780792815541701444031770489013407512725602317118156808323816114638283887338803312370082856066843550074104185834764857242205568640819207896028959683356958849279237553089434238041698228684201359606121801838865877559716549502561471790059258029312787977418272939326901489721656775821387195505955298571150064496349758625325926435731288005407123443142817448294387030133906474633504591507680399114045386218011857757687692806402733525973407323464274999162506196406905254202615609108935668748964830707296505531109601339451159193716952582121552552047228895101831102034576961066187369468499664068676532701690993843029784897627436259581540064811723306253905970473467474101934886092138827048239604278979491900470092194073687655438734208499353665574476951094868091660167503425156492625709249957604460884831682193932101893648825278273034517304672234195349017585031435197911521377977447239411976188892483455984397926195549398302896027280340644587194117710410370124576149537649177540364887663073904152682078072592744988672472048769581377627334618184307352698526722816227807885767966212429267292488767720326258946876938039679833823418892693060841467569587792344341768672868656696860552834314470092739455134281483235453596881548345214649455688444004503142185432083515961299203046446300868935219389068213357981440819278514014224426134807613350024205986321351449060277122505836540992716258474004086649587547347757484133790550514107602794988717363170649161496120155002797542587598170526822394619204218621657121493684034864256699208678922710302743828952706087020379798777611127682242651915072253885548922806536904354326907206905829301979376705651004198515619724878527551856628608838991626345946914495789265706831072251546612273266623501646573874538364230730336113076968809892343890770891374724811588552484072727159868228153250631279260600068890399121415812040805478171521367048189491064841725828939611747086964112820515028812133115983131855765052514057021830771920710742108054662357542598324431496379506976556346127980082435715959108769799236233769744249880276655800355753769803463424537065970629842212932556753440016841347194009767122401772558218889081854799616390334190814119910068853153032854936089494458133404371312535754629846698488782590415901343810204146353120208755886071389712760971058124876572174879777570805324493785123051378510044673332565008256226869895717313216142236640004019998464156120131255974536219532826076130699356165064280988500080124576917491856256888027478271779852387912438980559580620192013894256952700146376639748274958389146497183443933503314605713148492245701921937634821505314345608982958278867048898742388452122138747812263117589661088319336492324695403003704501342746347920091597030975333047413095720243179702252037846739126873361522519994684866142822287871821847265612225453162761186747210030164928699458104916821577967635562046787874538570338824901163686850856230186688944774465594597172803517739858302101623800262936819064063381933942763290624147469714205085628629889599738442094837124839853471751156516590575722194765797911650742956861465598163994146036080287844360982295088203992857063294329855088501773727292665586269597972138096417158080203156391759844255406122326533838789427440622706474367033021683629432581568748194638618695937292182912556093639934270427501754209722628081132274206252299038103890973541722462877939539173179809626274831093912067595899257425639824826831648569301494008672501704698858686063191405341356914348298535007983901390149173631904265241369171617777986156336378360677234626259018843235480166699293787440057253116584215525517514921568440013614707309922746543693907608475334269459427023603592069451784091135665342565215927521790338041546627832596204434479458098720633935565821738543614486870383894529625094801611878111495613676885563188726410675967666057765229435002666291682526500232030176338986952345789479491349722943651862076961362644897072144017943902623086241853992692623430555778289202466959049633628447137673991964170153923183464514032808589634803530706604576083157407839525260705825816091066481671228204518271175063996190819152247695706872110062959697583097089588414096060556501339167383495826910784913070433095904055222669790590456616419631292049319570914891455475158045210016454942255038130975260952082294917385363236932090684527744128782489237607625114384875537565657573559985233049614397835632477681753704432765158559579946209084466875142475433498480098014658782674087512556965086533187335225737487190478211209389658877426629456771942936500323929551356280327975070007851730531144940370102483884035809394972201641876946992963734863397885076996555368473253297957951457007001297244126634408946339791920495415552124272032527316995597028904119831839816102286115390273782137078492284321342957079150786150163385155928266777692579304031626187368347548467660918108241121288190588134918954392640722447392268037365730672591107551028865763742005536298320658365938134813678625470948722136369377861866946866926624006423192788343603287089594639923767169857974445308658541973869695030676759238510594028003732792928384839314164430517710722470383641636295203675247236800658029614189236357103046663267773811135392475267492013367588400565816768697907002820593619595212461545693654071042345540647455937406842375301302081766289620439670199502959947639058958430205777642658053891214448828145932810145541207650392331969220245044024101660336485094635348163847353585282921857911827001153694228686113986732935345673917775375198584062079238172625425283463121943116135847075606733916166109791945490154030867591727679073891128955297265344215222752386932983765427676585343869479860915359214269992074777564499508753395460488646366483757245377857098727225022905382924373060062086851065370216704046403070398799802282835818061820420494954527309061753895406224179283866330939018128847534968594316045122295532236227522384101576318837171200594353565951497146411788216277902506628809596681918693823374621787222281737434396181928127146115997704589204880883726578634727026638659710833820983646623975241061305655349312703703290964024528571117203941476353911634576828151641114412259030162151627942662543788232790315953858554110138969688923599493409491554730398020072775666103359333281325680902794097579136870730231068784629292840854492389716656134725883106297158128057937552835133913376308294129784479135280469145916558127669521133392641414186377686086361033025745799208109924008564638967940389209276172772581473475049286660866493078373196933846390296360682308722241889861507636855411155994944056040753975793769488582727540946946227488084518924942041806048943540006334654650385595895435159757385423888998212445602810098764466612135165264163560850945326631522901171873725974509211717190852682532652702145353217085824505757667662373398031765587151246048953598860799994428878831145622562954857124769831537978325756774057629151905655399578089760085399455861756301690660817247002535665785457640036083368062863323477558721535795029740312734169137485292148337021663131805797769268749726264523097990302311356752525049826253051004210588762070781408741978316241867413516015397658866912216437122319505561377586011726150784351867391768946475875826859108105401119188201305256382359493209413927227343191334805053087698495169684243537919870878907559384603024208178786642189749462436929573694793484977570374371173205669133343184207866018383635181783406971052542295189854464680598361574777381758182327968086920225923241389217186563899462808883586412718850657210288426270467157618299044337806412229865046366028965742276046005648076296401651040393264849450382548668946014572352846739220306052508670528444227713753654772424149242829326843000654798475956904628730182533359681313973124299125913666194545952722463339114942900566301893838441267387242500997402374138573407037471084824822618042585304335489060447825323468691243091697294383929506078713190905131449490946078025312539902999443519338961024393718774340086677129784024352252560932158138131751542400284605593889065496956601065232140083697412737352502828040270007373899619558823712144867330292970594641373675572665946908678161492931256863230590298324532751791483704552388777037719011991312018939176961475017116753271664409322671781842203594331769961382534816495737239773077152408226290433189010733490611165672915872622516067931776156033123376907795958636716508644029341966475418047008253226613231596449851925466672886921326720111930377825800016304819878071289310072972667865266811021352800156848480370044537231202030528582810884716718545794702038395392791934180588013445339021841223729120004655189458709935412321343715641043456466269016767361857975726998174826761831955229831579188671682296489473293973502307777571854858835949161715728852665578848266309254130865900853921784233148745206065454189955810422524707493053527857413518603698379233367855497134750415725381360475351322507143608145864375485583010808811334690116866857191557209344978775057362743609499950228058665191657980733274512307924302589000345566447770429196928293554567824185733688810411977183936397358882530349018795190055989247065738300535224377862337257759557626375948395794490473876112367766906814741069700118778771920332755121196532865897088716244428719968377649718541909344857935174000800749330084124452744392687450397630368346473244818634622702397877838365139400516450340244805779124434729292887703114028713687209957802890661380288885098682695522808659101589167102813935349316065884745926040013115620200631607600447548338680908458557261932886903535508583212939409086523945490843335977386747052812252387146266841034069323533957773759787951908583695760834718205675148361966450172030580900404606578585925366455707383049195086520655256107561085738016942862800154536545129422135855828607408658477553802904392787675876323833650008819828873795167428782589776182526366623479320225017294661772318797885436763674900494402310458687195897256428955409004796120288341917978272332654706560322593462198368815661904448231345153957722921379506524823044248946195452685267530604122057760651630906984195136098926864989290464756136967084629615728440243318347492176939205020905405844349148032082831289029613966684381716206145351986100648228636066121339383948094248526898528094853876571761097383619442032251678176920864599579727163287150214439602116259579982329903111079467809643203525662680230117446647876722408595347145539261835295241461599891027612658407240690520540897374775182634892714200661671140932295165287769339666451485356725399575902333062165033735244768673257194589371290319041710377612092588806638354467123634565430099674417705695119955947408966565888397674122177095382706625463391402418805425326802611091958481587553704852291941974866317040096034474417210199920880204845720932125592077455177103195901846910399796877917574028386932629086677991094157871067556921408026037880419133446645855820313023131701338257523267542427527331600087465835678787342975511732578987173945332696321830285173230795306498380286716714641560518154116354916798426303280947014465691052656961989796654330491344260412891249872477246214412142556069549068275339017660233907703699129183981790700629899750067002278933634423139672653452430761047845528047019536776788242550341350350413461448638552950085833453335348851401291690795300495821822011647384825014457216692245307578098791488938923757143016880411581542271594237643019808733918941903487281374670904685344598184002241535179929148685174750924175249950441160191741933211784823786295040932027858806332121153489382945107095050263408632735391299171000453319457342414701267886151179959456326737369614940191903922879202360399872239406664425794856757755250974916032533303743075979787134347107074658303288661311396092637791885708193734303941166538459654855892516643896759436247445672146541810489419339935763338493348605297571339838294922296391455371475456942941519798516901144601523082780946518055783428034885141421351531889549332712661265154362087862392692496018693329372303678200555388474252239938240247837235131234152348004163690152036499794375873273771704798515756011768385430219633910967168211142731761565253347245343755151434247948949059699568418632843369148417174841821112634238671418617187858688798686635461014188786667062541398190566650815346149782990761390440705524317215269174625147981033016939162725039082964169600374714786553965490997224158247431778516147974453835643269653045837090422616407681293986997276786419541597841093730158479646286712236274853227463247471995810975651954392081734032056053733131054366179119538352448673402176366583031885725644412041424979440160288721929294610912977178017685305652930086502389339607974904437811833477113404042412778384861336585461864331727290479812760961026875099212137851714608730248742894881121012764685636580329609358770403401683933784439908363655735624732632649341519280912359008197117185350621713930696789582858768870280991639260064638306430790721799166450890315030857673558611298571828311354034002259293611013024847245758332781523433219783184145440992502356256129867910248778896516615764130636534168184074518850829421792062528627882543698659245916169867275676679144621763451274104113950745778682581862437197071197923060449693399286348545707830898615262167739975248370724871451754304595866202364384265062212641547881355190235988711256477407970684590779570129048321975006290119671953436200078755524522797468343498343299113318869262080253167425199836168894303271892908329364724290196385658440344031029527622948407935648073054799552516957936905919321758657108434509270590468174524565686113778625713178103411071574868356980852143625179925578659754595343843632524363594307545448017793597298768468781845647492360415670210845840405967418985711536810199954776834310927089644717305333916038877165984972680801024618125388490520117265915070838458952994158064813349466446403998305779816052125147498269118540925246254725564852225658182966519812022116243041203155289581642257982503386066525963483856709677308509273007273316013932750771485557927970977890728131233217490289603788994288584436712199284624566501915594629436737925607938483279488688674499108480058270585743874553488769246267365087892262070819242245463534033934352504206261681382681858792059035650212198205332305941069273272654510676925809754148790508427575518888542267680043692867109746946309751500369692332207848940569619722904244347955646526099863765910392083715906189380290246486830481773800396832805166082878250598455790097205889917615670554398850638433100849596772977318614373414587193859667615769899251927052780181630506222796910892404604920011755225049100440023591675566020887986600250851496600434855037303407848464751518376739339428752443803208642067870984819517233572150648955370916438161288218353373119233612163057508466527195230116524466333243642044078775995119548253436939567745129497402606554192381530842159419186405539319623573750677473893930544106749929532295998960903917906749504829226905940574918978070240029044438017561627873013100657033410346674141468981141158255127365586996571460716593224732577312541271371018898194431121223593905225913929116402776239803759025433965151001472531972991847625588265766431209562647267657659248687597310751711492348604058461265699536890020868083462662495233175793354665431997587137265970804597480354788283036089823364893808572464794400540479138487050818651659225948156776809502666361605924285510680148855239268933540691189805318849759379918145864440256551503412919430221483461268722590772898842495351811972079802499831828595297458755352813179746495824676847330864279494907594457234913417949777128111471023318198975519949592780784985249255028183489225870104475972110431819072556806672783591008830593858553450298041325149328714336439928874622102017298036607222190522224143480265234334237570843051174127031155846459752136936967452450123486328475529084800304299700641380640298916142574598730807048517480064755629232789200388129282230429448311745180874108120287083162993404787478627836228091181516682069603952664790294392834164292790925124686828236746815534316691935893856496294192830646152438479859671231572179849524557369835226444794772560464314442573176809603282633968136030208249302142031924116317632980279609221821924699814036548401521515437547795385794565985176177017175109590654867378099855750318831404677847305933103321812837577457379162116239752886596433820468777858477384234732599716319051621040173345573860302736344339737571989243325424238804095073304642688772483238997211695805021374720047412795489774514300571363149073956285824316618989985613619427675503616820024214861764507207195528518879574617754741084873697877462549714518367581553459131382929942662234547653264005613414743700372217918731593267713052118079157553253408952694296557944471900956211151221291884939084197682050726598274464666115431105523375333162378694930622923922284910822577896400013754078838847496273063138515444319314444878406202351714005361181456336947001391504953971850848613950191818982717272897226043419493243225516629099661769752599168573943163091434211145063311510836015874174595286565422315477365586405066219995296447984063472239138019276270590717505914171871716050536790308883968627297484136849088465654204614513916906059956079809273895969505895259080473363126609352141811522160519182130364842936869288769963085113312226376351732758096769685924676650001448185873022345960561462801558377161481878302349642292714595809662449531886693636833529629266482736502954202140943204180968517016038378426522232940698918737104884844502811931491141744806654130731113936789407151014755237857177162378632148966881765090909460677011547159378740935944133027394803922264228818213783952789617727163794740061882112129327671916318971336232789457741258717087529995649720185073134207257632955868928751425216833826342407376915753797535203943853845015119846387873557514610884522030791555177054604697945852036158027340135103754881624293154311704500590375360466221080994445450483715590694631900852570815111124167043083757660031405869900458348183063920392320300688392337677393269124238092699498085744288121941277299041431001030506222387600951434361704719673822259641894646335821448430331429548147399139083012473515069625058382734793563150785682689176909397914453677487180866774826901438956256215206022899815415806766573789054296940240754460928355046505423736922932516092821579331912601863665220873316012544307094791675188152695320428713946397574456527816107426985999525923553620687723250390630548777907598916251253417295187997806500188118170929801110693025867869448397521408508504745610556880313729791134731384915212952625584038287810105892553189759213892530349710797229861039524764110788055915097837774782004190936040309170331363096158993899179021977664534075676723508618240418514103342262854734412220818657320914358971410441260084347517075610423275966262141722988908923626588573104220428611050053591385986261376012200365067613122694098140222078287399219144111423360443536702681072583629174569677349929641816485973314636399595567186815399591752010750145962117982441890793684064869467047308120002868831779590252740777433171229141294414737684506155846706463718400146434796540028640156895907658637739816192267751947568367801216283237353606731453298809615313010167250702287470548172839709427122646459055333416808892320190382574173786355156002196605862176285099610637609642022499653060690243741564295946809753148541787190744933513827997445234654137784710127229806162709398795001150815967447578311129353965140466497299411689314595346199129978141900206623052635038306155622792263560881171231521307738245206207419598154439020775929569377675560583038324851510914884472794785242655932564092718832320298777217640107614930722780852230417272269215147465291397795933256440758705668449689285725375286398331509935437179182524095183855499372324319779702154195818951281561099766778579543226406020585676341139732398556996866844712852804012178778589397236558528262780688059505346767528096529140477075412849120440556835843214353548200892167159929168999009556425894463757493979537682377214253893174798743169959065530928571269576839213964050437628786299724129429760410902988743935576767708314246808392633742906408305139782643618794795933345036991115198984558229572454785419819603381067734971037300558182792015602095186768451900222253481629281886415574430139943032148615908020290555439379348689435340601319936116449519714966476044267904190915911814481553644979386405618904788891005473980604229886708278382532422231425177434053708726946559191537348405219723352100889177936917572133994032181381643114034569446972660536187710034623785096807992657594704423236692946250149069465213448058893378287763588403375932833998527105405678152414741725963926244721620097959883675048074085809459126052489334937726992507206362186770004591569157998800324850373605532721400905086804909962388088617744256399807723958731678305923493720227531330614315849223621035629212478833758980761099575369133826251268472618364877805548993675806293518450238495520876669578654843828073511847645909203845601089466664012019067643940110484524117769133001695014937108310950430289989407803487194018785538363770251504577938798659365128897210714505946839140708318304563162351477148052604014098321649567688438664459028369164728024360771100698136405872372465732918414877606113257878297569044265833923494913587602164156773119133343156994343859620753553138584576196016851165582394835685063792516734836013063121250576125090385082683413148793799047432492448284162632001661054290436451765416270846620077711995805225416037828795605201475190932185474591192589843339615540765812802321974943604667689318722974917298381445403734701886853340136225437824063919127568798866325914405958330611223315548098751119738542800751683233195000484022061906208943272861421234214361004320120422959477989314725836379950316584415636445774629963960509446137024828547000739518426614060796002688721637465440051067486630891355526038250645260163233537873684504066735878543637693925628428287702572170244632665275562278447103309032071622382455495858690768135930733240087050051407127466045135220430063394744346459701801840246657192179116262516988826905919434544190283161014308340099401972379534025660881256754250148777656600155169803183491861570017847779563113176638134196257729426237755006637662842390792702503012488416213648500881976988975882527706115095258257291589882699813927702021438114967654755482153185135138098978901130765345256983948940835313934390521094611014600490752037808886383750984288648150118763085594779908217843057873056065887110390090850883486064168575921544585755141258854983743457909313335171429752516033800661690092946035044254676673447613438552587590939235223104161802037120451110436934247001187276542871021457920421983831418600225096657900929555491905759538403403590001765683358880828738802075818535921608891278913902196280792358407752263204556757890220625399312154582537501190697968164319200493866904284126750138681442127269250212009590561953551642858738934558107249195667688963184090015991775003524743968548964199391248104319738007774266677264237994283265074303645019499802109540145481613960010357701377539234393942373356420984272220102215197931902643761868048407781044691392224013441794451615719639529544882948265672127514146086051337260207021871096442503235989994681130437580541285021806242249417481766441792202543656487337944695887184024718309564689578090543636202794408652437931689058118452844452183720185083999463509765343662041185169159184304408266675550821428767524886977398434240793521762944788158973615740494146489618544941566435521249216269164997833683370933518943445700305696391059018381108694072988467289054161546489233934105197056994996105119860651841587538179183868629577456721472668016562426212413292553090680815417017828764283153639382463346006709308163820351397781146871156039994178344338056208728790168092744692068162949658780561995127690494829632794926791123421599655284916848075196364619175775947526277065148815677703845353762396413898263826368817779553751221161821986312046720809860664578989727009852616068831176234450938248957346531628498564864132357189844873667074559638920982620731997911786914583220375843138462274272342009825448006360408510725550910255855503453628102923061242302687670694089135946377689130308440643190025683937675590766166497045744281051249774359977117524853233841373463334225252060482090444501015385603427232517236453553452574947894440250199871012992774089743549383935811848328194785225484964695166026988090534965288468800809202787477805421646689831202560846644621397535987016247106702025590845474715354728437352508590532482224025411402728829482163315546005112572921140185748313593733432498686538859932271201677538412299684497091795336724755911751432613701460138906341256877622026249328737930908047406290248983571140942669863096042026181484182298499974338360208221472033303749613339979098616814227558673944751482953197600146111651664042003362442286134831036015628301088826813325334833374528404683745031709074973236029939616225694944742742996679850598079594349954907275226463446427113941603155535417435796333908824034142496689466533600214017196809492488012218117564030935152789618906975840508277531365997225484454775760327707359472667861647445194475418139304153795345285576577627738647212084797425954184408004917793644670583580268209528323188306926124058721865847733483396179849672546166062802029042788182176314361934526852675722753148766230460703832488001995780968737157809753115546713342310418071890381950848274985405783046625896958856205182694763324617323983723661667084291984654227443839034713306488500862717550961445360376905443879510228647527289846964483580271282769133050667749709639812810912329276881216879199191383652411564783763154239996841297790866295377059298764997952335602042652248370091660507064521816570440270147968781216562535221125902753308725028578392140998334955643144822057216502560537058550714710333941353269429501054418991934014486182554254012585594997224571059367822212950950539462998773166956639118250397962651978733299903122496570533547746256118322057980857137390426417324199451818219318400999800074075609095449115184087708171906384290106533788285770501902782854284204340370489682296662434101645608755747040364105421168863892647997637705124176679085448685777833806151846051791060805241309107360260220992079597302257152624616359443481321296836521879483062088986409025867393514133023032088587533022915051369534040523605618774568994194485397853124506811779147886853064667082586682891896458902325446311242650370655702929319778968382173382674174507297102815001493205159986371744743739061873351216566217471190880417956383042356785253643440303580061337070597654626656897399287219956645688794456405816367497215859782825531653432250801078194132886336979051276832944119010730876606918529777094292334404737945960238363270235539707238672388003612878593074030282264054003545482340654493636576016758333929603856009791806455436165910993479869951219966735454483035354946597546431145129825361818757132746323134935714240878028134494300572353939892596440955574017413320967392771200511203893339551119930222704988222419616752641572625032983020961666188701028151562502893382386280913014163440868126978255478751273471535104784931224418559774124546792902697577334713471053694691002659246010331688776838237968460512902917219155616425673099402065957323498199704357459478382059849689891193660415299902185225427368304710511360450218431111676457935099210251636974123203366325699715860229358576488354037943502099183630801760597273183365703998652003670180295800282390535405690616211855904411313446578028427791840682868571529584088221833144353319413223684084477294827954680196387446321542948338062429043075303813609768228016156291680105742940915727344614454888664013666791564400671512929275193378897253001037537505917206472464751679025121654053339821228414427670868576993527555703386868968089244799855752003385075916674084482148855826283843875477167025272308432661715610719709133682001883893756324693835217635222374784833871758643987550232287290341627900109435950231065668752018472856565331352947276287296924199210224339064590677999316666436179557298494832382885594335721368067654635930881267279538015205528839897750099109815033196853525402584579892117288512828585723252401618182086363396903767907697201648682679484768671488326285260415427082915423647265799132490636630192274395294716500803836707323928314463569659462531740706561020636786621649005356880360443078283569624268917575114815160030045408719216270932326294120040556003900107735668390227212007531274040935271956519815595460568713027881902346281551081627160271767440215425146902639221883251159543476451865617360626014593187950186117409476978226911436736628651242851682971183262433261731349986878664068798855253440456136338042925035696538388665610324671008810914139231664412424929318782283743463938899789828815735622717121537806359920511636602903938534782330366982987179088592588687405211229085520637817852945911504221896113174347415275390610963312007334460668882154351909191748305088350182338127856728140763298136487562432003043948083755106226454253106197603486666837141963990637513069017836265215378531028771307701920689063736223414660062825714620895343954536763149873654864441298515055973008284497949442108876213912282830569157839698501411136888049536750842001803393464587183720642470646927302498141832111863803884257123233310627959158153468101662213502218626487880270951041765475379116828254699047575349733395629593953070115734556547722706494127025277227745048599961100148157425032535613210446785367303216644519207476268304909829616994961826292242125020559373520402785414638745233925179520689783294691888311685279521006901683978517658204167903133300633089371939213074269287694600999871562144325437657509592264846320136913605638124878376930614138187045555251198885607660315845660638294743776129849458788323801941516370809073400827243878428147798400033717430613312871477743500222303350251831073144205484055157021395441931979182866974308414171893874943685494148679164389507736384710384383131538875381995921196916793669612624508012970903787888050210686410265734156043140378787737323068491703537671534579616984187252873351824104404490685084656639126111087231409817194318484313003594915120350932941340956872792563805967625387345317365402524861111551911236973813869131020668797527040380246656332906997219025674515365290783015479260122637877664700121915748847063116449513582399468555560287325545073758370399356268121680099731340353094262979224957087481512376010612582727501102742867709905996790935497102468183510529669933271018151574527130124969808945919806931851885823604491237252268415147412604357400212124764805646251727132127598140462794712098441085343878911946475355629911131020707555753834204838339794614707444763732175419911395926734828956291708899243003601195403604907498600106972951790462482230747874087288399216323016599477101936866287528436183167256137798571607986710491684104589069758415976022221217457817896345268771184781158400876041065287040459201687246984731080415228317055501494487455105372345740209854361094959021371172370631209623550425829134093256930563684896457735416165254208575147201772524445381477152168699135679073095477170253555708462652841397483756751296173600491862161921598270780615834441690006809963271368680849417805714626945948522896344215085243233922482251087567528087612370595374402828721796326543990511423790293528446350606318654534305049645875462040490374762094652533569796225174619134200094738221869492992000339003178594172232402501216919355549669892922872075382427980283311491838961795223518358508377739612675538847064538252434340536573089617079896603483446125366558033697998021984791321620672657825348186343630748705702586677768203084991707570137943820211341101837784515810428216948770024351301985337744182326616786856935194510018285886291331289189687199831831507422106876329790773257351497198480552479505037653888378767695622572513714185674816306763776192107817645813337306979019754494576598783073444290775229844710390957087321686704464334485981508964916451233780047365658689448187060138688868544818990635883255463099401078927597222219075819064386827003539821050988347503747490097429337616683649610100819552840550031684931883308619198719484232653478347604404820965730977271232527157537636025364303900375373517948408071912543244304546352048393442243149876753379866070385663553653844171306159155984643620135137644070085768674336460501780735558216002067843816930720591880032342704738593594087579655605192660235654797823401203256509544138287677591494815246538510588927350948086956833093032900364535887539426366652540708007924391680075945437574438995000024062579200150828114816457426404642274325818553783877445350175647112327282061733339944809416714226648287066141902311016970241736826436663121873825238454551760180606726104945567515458229738863977875787576486237282686985476197900103636586708706965730475852881610175249237435178472419647391285617368390363067679636980985945369354194625775375199054134605381771893481771040432188771420116810819546451577268811031706777717372647269082555082382519061689876146683380699527401296062573998594822820257034909373190032686215592614879551878509866262449076722284906820622354708998014181101311069761937871382960554481243599132811202287294951779917884641015808657819218081433784983781737201487858217261043211174058755599146538447966740147104101440743566708644838055528497149404002841112272761855093847253138414130758764692814438865587892257252869657491980481836017362613683540799238265297809225429880052760090460445527679423498362466529581003921598558179276944213517944734418189613009851340695506194174743223648110368614639803773515632463080756034776025836330118835502271093912995752439001186212687385844364768752094520267469379066768136832415059777738790446870371403410328943864038091052732201198695400191090125106808077903922562379944878628472338823263311762928203616833296992512879757083622353961999403461841937098580372080303050072695445818570143848560971159672621523016841580869356691821089342165789866932965008247983325434995348723402518385036375581102918264630699560251587113242409134218728460667899685070164615885002093612617534492774043975573647023448649808368171409814203020836348605470432169676013133282653032120764410409904426089517142429469887137505905344427508799839280968062930589504248724478184868035748994636458640335501550611883836231336218522950159701152373625634979297024663615990476726192545587255510846665319852615025497376030532635183021428851354019626163805963318524342006556089466821527177843509747982508776556983202767609835225861729009920234944830855340783613809049599181768158583335087421967287621412694421737549001401493674520691930320370153612719096882073804397283871107563233951618151598704036241323213549113986902419362470318856807428261899122290526491950600962041702713596727490215011154349030876276070273424178577115991038427415005200789644238367310115270355075850398015139577149142156270481399697993424450102788592096514218552704343284515125227333844500573009485507204865569518831384707826974769207228949713124041489574919416995851680114915573320995673049837053817042660665994915458371513917745952630526773616251317244257804815237209514814275962046802576255956721799435221905124360924382397739594329194046235912960573022230331524165028376436566077442855014626668311442596324675137824580131114553018894309044253101129071249205184193240622602819326416780938801738139284338226868014940008378992665426140362100617305884256515978498836831381907417046271043689044254633776533173523435156765254766747411196042750303236277777410101759806446608841949615165042939706933448994806947614390092549411550393922543962773835108478277297222969662355220277364849332601126501450219961742096125440405705667606908553246051140630266732827278482865317052176404719463440032630989353833491518664650589496123699977959031448311882387110025929695517630605241224298197518722971393403116008711857997933429583389279263067560402165496340970242754593165231523394349108643711245095447670897707700561003256102131153377602777013519324802581335783302524800724160599182138545551915670515881583343679752031644796422983291474574371681168105288593236527494029145557229091442993398651643731684795697204857727186331211486805172736262773609260370149055646908890204550310695817170373027986220324895400768158819544430545086764902276745046461110846844420518347689429710584870458592091124946747728487792490546564140580098019171839735227986229030097336515170792851777329364107576433047947285547390366977033700865444698940187419789905772289487910419722519209438298092100386940495067146613211321185895698896031945655954741049291398230132119254459376464365508716255792964040201886296999563490554309358322844844952056413265984827180188469971234039202988718052273742002459719448529618334874483309991069569221002441951258224059958395348687350271735230541910557269478521971222426286590483080631014137855513479958710470120977357745067769109026152500317662600124943917175817407167483691842870401071963858762432196725977149653402452657585120604986360392007345674291322496891778545905009049802700521480420734703839357567295958541576051260932126043139233104915466276465566783851087393630205628563008773002745374463828662620702666252031952015939075370216930784826465225067120193726159729781942707124412691823403780490218890909418619632533981431114427961404457856488599335150888990216041639675927042736175931771644478525165346587471762578149341175597282071692073318482336035270098397007017203239175518015956308496548193836835262071487744844844312565141511972510555525481886641115326683212669316804641403715513210032603800009693965250592295260216600133359950760988991221724432462984314083886312898571786576237343147456775325941144106401284086703673939922630044914728384990783815820609821553665188211733640001022128613522818967569051830632157981865105686181127749549747946807230827985108938855502807213056030788508025260657193781603082217652051684044742029091768461823486296336794644007714203440587143453771960628503324084481959050603480608182024980365573129347287884733009165931207462349175271060428437652988801848208653128558812150480312399239064930395340960826430874150658215491566297352272518890246111429659312417272498556176912978308676188752369015158513897846652768792388641736200604518901361968644957841312540495719942936813958951547446969371471010495121192431945556186475822124039438326622373879446442104496872891256069167428738542861545842891327348790030430832496723629058771157662112725642830643297371212453887103654942728929640870555862054612357113787599345476312941771286528701208598050582105049735595102768410672976896727093571857415367299450460311237195348253873072705648379267241532209066947639433295644885881538411835708195289345382827362485165192279897148521790471571051112431416318444726192891272579115198549174783753128976592339611412023131933824717522782543548514853653062078671327320041631529522047933353396497654973114563630720533261874788851609208498754256604205656526431292563382702767987131653870411528978539217004645978181128435006549494286942707787107145494814267261029104284151601594265160252837197064950564714216722056228321365156325862914814253887789849983652929839759714129657958031527764317249512890159662427830096782950084070032736754513177520644193912415058184279415111946916941635997561467300580118835555375433565743500978044777282384310554550102514196983451829022740196259959557867419165170658355973604214258440076678733186412237547542160987357149059663258991000285334572266088914717468708079543982183767573370231863694828663467312180683206894431769360115197983340315495539183484563161619410264010314385882472250419081979597829661826679616814048459253373802145292695770376578864166951986132968643525501968906820577746730273282120336426342673118486601328351779358750081838576079019042782924589112917375628381451741999684720144328781380657270153431501731038327816544021407041174832283001892534311614188300363931538733841766636641260957873582320095229241244627376764894666631198033603274300049129704891760263343230589354403152528577188101396312993902525430687887734098863640983056249421875677535483544777347886148651752934988832960766512728807678116003603440662304408137973029757188990284789036811749241708126203997499289389394661579877931011134573355431895422211793972196127538782397846109373214418577983281577567854675670498640746956510636455598414177241280292808277650278630809418633795295754449356315676112389979551685574481683880491298400696644092256928274968701559774106679604172013326284240774005848821926701798908421959913009131395110309411063407775421075088220720589097390626721179801252246206344030121176161664776103193954858986104066171038036835836872718873157601645838872998561000187674577051660698109616223847352056750346244809839617321467130890319403746416074262526174238997500180213759701453705632963292587254448992241872017642697509814997812053614717071205030024142143354439663035078680567962837188621511754629024758254493805077475885576300498211973523159150597562313193436774761395963172252129137868081799898342909740389724366255660461448411336494933880453725043084433475627341877527130355330174040218738077015953335944074278164451592917809291990865275606829835878427365714119384249491030450563494900714922288716258722211122842494965299245416637560228749086402033513773482743471031123081535088374011531473987418596814871262062655542448954495463016001703192346990463906652489876173201765436252024619113979787823692456146240404670129677746863452072701276300716932608917434023179235313929602444754921810687317853300684646653712239388200611362887499093037397031026157608448001542089078370197929422325590372868728917263016401153738241616582256140477962284270786370985394840918001796477877770276397839773447100324882237108009393060509168455081820237104730854835524689662735006069767385093619732919038598111953470178802426225040791006069474797414089675738882197076954149243076202147319915498062970875483662847118829886702151323279117940825698611392105396183455520641726497138219490472040273855652608707157421214101705203181077128418369270656327763236615104127027482348743700134351437312102926596111584126513970525024629029446475340671547473422202089280679280214701393676483579904777514211607781829436765098612472399546942881914795402222720243524046239738052949280805632150030933663990785183265516120235041261729595971189372109267332638287077846154276647612345392493900281016798684188128862706872622715203127811034549978203236884946077646464377375269545092026813950782321627185190778222107670373845243388210772672677249623483848886094113963083613429628987738887190159635782896042713053573666034724370065027854158484264124818830107116997718359866788491149346503882473488562875559590058222069203935140919722253096605521516550921792028572947883732777674483669933119179095326007488998230280421511182039516715384009558392403655930245044537994175855039403796427639146196120362404756103186120492384864038722234543136712283930644551095085689571720998718047471003166585627209604900503563376378823292023981983790492088511853915329585391189378303952466655007260595640317132044278074948812712779557978398293422347180975012855707729928037237904268817920895737560424066476998784803554149547066850772171344221607153366851425262877501686694314373451625744356815615717898107702959788098053005018469181673536269668443252974199679618876519307891988938308449770782724160587060550356247157079942345214838410481736543678184710607490186425166303097269342082816696951034567307379094804622130423811732173470270110441936353941548671926858791600017235589110570161945870738897323705635474493823641861222200406172366042999316428632896270045128680110956498285473739076016792436213170205038973560212749926270718768173399135508753734872563313067127664792402276664063534495631916093292985742199248133778943164330595928513113332735630163147254691726239733075670894395553144366712844819129431383585147020505394759280727232653757792986516038841641357477436366556934225499618518953501239486863295069479385581084997451497520096600696503617721985627799612887355055253820226888303406800533114901989460541716086932885225563718283776370895881283842810134813339381958282998549117055466212852292511838204851255943461704116723246966251344200377309620682582740899767029390007265337192243733541932625087613725626264462076848305236360606324566674234454089531753685591262307648552098512960436165805503900513465445938748010347675065978750586806748039568182241707140992823692018357000501586237164129249528543772309153798806841440956298818029951853878299924000444784849918010565463441525397960533821107477862124426791535324781495773752348657314484485278434481585749985855492337383146950150137530030728819384046196376124407868477482533508672923536594512796054066973310444633821174325741233931656514607144387423264034385775984667158802749334813217390831778107182632148472840651128498180029982882556717006679359747641080842045400198184445216312996967053514458684348446061016316055266200782305947218972205336815384821847238797024285114919101575855381664467308510356085948876508217141162300383708328335821994477307241260828808346873612133640957418978272696372066311395035045292374942787400748508656696344636583591243103919041607897562162948786064571126204210802906565243559282773214074869288121145851770568642220361072379603117955636615811171413259164266165056059258067255396204076628126839169223288381472195213889441082464197000051563021183089644172837655614634855888336282316442581425816761615986359556340202533769042767599680683195017952246744153776390465942529439201701062014845959915960706091495207275203992908018015114176304276346324101047302422989166523504326320490996813075270264522947228912023735513298728152919369453058424880306826969167459462581139997852753227307440381614128019910976974274080000136524187409419293364287261838028938460529590516598224022255659128605900510043093259498314991014718306263596211635445232140743647015087812327984881205121552203383496913583539582793664975807917864184646900001612600583806979018294606110264892327112067314113635817589913907667211410207585756217942592173950822028240477431854196328263924270109177606043899801207964372286059342619636188456644606456613930001154405972102169119495010706940479995780262756968770213834991117315973294039775900026677839994341021255468869643914033196791810297438510405096046404867184248329626304782892400487561402039912941685137728706984929550796748545284842871008126219587378268048510362904077274964250007214386353924226033450640698956116771135658296560246304589727646658240350264567400374739000811687515008036136976414898199552213305854385900892058275859851833096270057533367044667850087492944744666185320092458917307795341492304438980324540490512898777771876610043582263993583296161444127029291191876704957258689632388690213560566366073297762897151856258814592282760126416509799243130963313891560017527022094204291577310139476264175410223749727239513545807137713270450797235076951301631718506393860343741368986760301904740346488588708558300492002286191347754374334255387166902557936823994910486495434794218982819917780384099150140415072691058105983657568758470497783079344443359960539220698739762390971262952286674479293799512457464573498377026039082789212177308306604730816745584286388722679927901193247476962544049552736519957565242248761140164434663853734985082026108468449968374078796989305227961430483578618050178030144056025483623690061355166041099873858343688004462091141874327505559038021867067212171334755270647078729621783925205243081319255385701215472251890412855936660904753654689993491556942891721258149007785874409545005993404789537866457395809186223193967576502428524977641042705016103571523532595595763182123363493037767997013591779371745361249353506747979612942123081665387316679757313659843166147364276502496005401572563774701742679968072270974367765944605089379561545321559930858347183533949606770921278380657988079630108162141940526304082107618123281951340278092259802073191403521925587833836851538577740970974945599200813488450794506768949746140778499219125921136130871096448653935478627705169687605829061830363493705434654201827679246844347409814548723025605849097070069054333331472332419568032713211175021124466958065386532617558225340597863062347100911672396625618683503333227946835714115686044351852204006977365924411705508535554257315775511391826451407422051615874911107555249874330123814204706373410443495745808771659159065295011548832996228194665289224191553760536227292974250459420245367699255350416031790542388481798605911164300022571817207143052003253064912445673834180471706037777003351554100801815287628113416591991208000514809453118253215053090642873573775995912093169800443350660168127890873495481129649744203694775731500828194454657991462214587108889602841667907788771207241747646864218271000935195664403586022212404909912778936496554012335283046915958370416060504969063761610913327206246118273751899240538101911566314872197190915918675020656985755606277436396778792434656307260427764547477216024437707225582801102367729964374547951067925937735265600462387170063232528450343801159846453830012451519065363636684343047008958844989711382124257365300569917370270763679870002304843542125086859451281321490449403161259673992495894684200883418039040759533629211757815189009239013667554514391645442808680442163721227068871042718111058203438946231901470874575878513583290689117539316468036536411114215523666986508087199330291179366023868301979152151052278128624910934513948951924084551594968517922680563771490681210321388936344859608529241006000224064907701186413350415781978487040974805599029327864010679878654414980666305540050514796437700141044466312856003599790052605498523311044441908279438772191382176536175053442918979699804577814244456048204343441125365422075192368963333335658212679503285326563191244297309512973201352886227747312839633717133905303343532943365311239908414238750395416118717139809376217916830423150792762522810966359803442919751931851903291185263090435768244100233984763174470214413050290960939239565458577541182391501424034406639412592542705501286534272922974801545762795498741822668807621408308752151825689686039727076109317982418622829029800619163235449706337659997327099232462436013344155639975917397546026274262269485653624829486759033022070017906218365680332158359985453933587967563479259203607235988993124202252843933121168716413834562188896170640048601055535904734720684196764549029104260615608160415419958660372440840774517968508719540701546017212237310806268861835325445201975863693961262747857857174092877709461803801343627644442847112488816606421425620418057026083512882477357877395198816305631234263659939640069598839476158278360891045719638191955806764490159197741521268220767080443389232536644629815078685800744544982057107140113508997427301543897541344292320540221195930952324485122667040429296381423541090021315743564273055708495092248636050753629754692164745393262598929238862231718754406137374410869494344630459095472728032766183995228461623591936816200192524338270617993102011361857675722439914073078773725955539435692654705235912969471485408188546299020932889072481932892496755145881728851966910873628592282406532773438140100405743083220315825025300794089445165122192759790923587536081157352707547584583364463685238639938509311280406720949992604753670265425618960063283038185817830709146841821196092959296430651301182152646013728926671868805353345318149166008107546168951261840745345169777221681246753470780142039590003834800060160345932862775264573589742574855267755936556848231572586271333938609936559088709434788524868903025350724189254022796438390743286891045945924108375097492030748385728143441867041169161600947360674885385154221428902452515689464416268758297561248204385502194369979033354290644615123670215937583681391274622377271256849258981087212393224412431783696958891403785259180527911823077966862686842418892407700433377824141160765478093931190400559941793346017676416190961991553131139872923749608297516090936108995451228495144958829776358186415998565621447132226132246929095917234925607383651976456520851294034690293917349172332689397016083176953131739643748727439505376141858070840193585526800007517537782896160227010040937024093520660842011879336622281770896756330790021666329427127557478727716278326124523538954617231993052646698526015320818739479520560014680507003725627112448618852187397951966023627266398928535909536729583276719385223116805782440929743015300976859185617077265879220976741869929236920904844101672682857491304419248712019720944124540592475999615035348554010137286249982891277808415240009158896239748469260534567148871422576837086935150360178742664265706964682046341504488786110113695288022533627502319024739574490817763529367066107669699639621341121574764138402961209939229042848998082985006186552815015361056527940051051153973701003022335811031635784521111593441204084163585799009982406535965534568146901026115909725424223237376611785013449339032371094890577502514218929438063204329935063081654673618915934607919637467615337553628690451166670678606772803046972862195043679744775001861709231362736297256509542656103898316549637451878904828505141273318437024017189146946683229145461869410110008810391378314153538762582996573679851571228761131238975553733425811066121293927974167988642148248810193174487522554047485101132663964229848164116317183930627459663549716250209141305739327367506420151887662389129278047838875985906767958265541668400234759550886751723574388076496180918365071827463308344727318116403289007032325946870671438199184607781663434951052273162036994831518425666341612648779067510334961594472464184838030504089984580716677537567917074170642551550060319202742749871072454327390755570586218952008330720297625612117538566263895577677780821358366400046504943556105950111249142438633189219187753163566587361265963205748150939685792542784696883022358882873750166444063211901720732589886544487300110526107142931613724662642565321497415752739392893341732482868919388262272775293184459917365285726398794370484404555331124710707212510192186173124928445667622844899685530109097435044718830596654226174209592004875701945517931403610874460153542607659766702035117130202865233548650934602857646837697804305195309161654390928413176181552561976188444993541081751702406540601949353192063150312699452185248836317551521695895407391481734404405407917203869734225006285196897575108076982878034961369540856176127811957967289986625143604224283665255052167302952553561900396885481382984255584042617888876370080152075585690970650100632974244008179209205137097672618795484454286873254294103238021622507475043724327041074030418548843495978849482326629280110721004783189531761121735342965741160319441554561308178020013803732990575795088830278648531940873872710740729337318515344740083485682821822738079412945173652366816703727578255344097142022840491162604846611650447947971231312039459179632571601738914797683773249703212292263985020285263680036235090165057125843645078447123622769289539995355166477838224549622076498529450517396918819212128332140558739432230991559126027777148309649507079557346727273428418044703696873665346079946645537449269403997833108123348003434665573736309045371679235004366180492772321616590882521107391250449485992249672711788691124197823830845199571163776559787271600674982558670697159792622163154595743408671968077856520040460190754166889050788452606967250622912927488333225753460576615102331794685210574331251067478129073002099280449410497938865853438123010171808785988016675592126735348059809301812501941566711607660129840400355237650795753219305555378111489949729972932540090538098573947678006423196642490211859083824660499437043305352077157734961566967242885093584630516447769025147659994754041924228544824916953333966685083185865705095780334015481419995261472467891054291608184894702579236289252338772870490825492378956333361050772680262825839191428320930831834149922774497333076666602801195371287911517446632823035746952317495540232415377718008724550341278764527875261029792752904094638241962511870613711863973435058228305479939781455786731158105467374996232346475007676734544474847696977559309457956629295931239564667129411753193563585706557731831036799047262841878269896616598569583163720767782871684564671147538890115199819297024200171832058894583084499843580316037235578453979907528995921298701296519730007808984196862718741165822782119987836125314396224765886717283920495956095689140474744954695989379161570053178180676073230277933642130043977851627026403440202164296584219316173555124106222356078917954379531398879339608674549884813788904861945618180899801691264501284111560393715292578448764811596275664858385585899761441527113194290653404845625786777946461209962101856711895506101675010203757053147951250636487736315052212585635434653106737626453441256256773723572100427145553713159480323866014720287185546189660835990278454674671353176731208023603413090579416353161645343913886129652658996536286456538668124711334903406251250360923049326766006989142637841214675591124487144708258669589331789785633592676698549060887379567978689199386752892680845025341430309916523981247590169510417087422633536265429281745328536601670453952939231531650851811554142444890076963367994084323613018099004064601076751471649994665066368929559953727825263564283726237595269245646069571113388699442056321762618334675886781218395418752676570458355228085041309727574835163945132972348956744262403481216576200679912314753681314185190470427549537719016540349435723622599424049680647960859225017939619138602402514520563406116457973879953192481587996910780317897958121028245743038050637724956375830841775605091767314297242205758955300828926908868452075636025632912182646423055003863335114564851434814748470016687556714395322780694970434430995142590354093371612586335676551747818386857396401021778117431729063758781380893969898890075628790657281918732051404839325555094730574072137108706451889122661993121840309862754680402612689078452839756173354652757787072789198560030753334639644854010147031507008462082393920343081525724744846191097124515420695705544951146802589596852901123728445516740060664963680662076080597284885134946230147033854952792789069354213148238202757988287747488834252720212743257845468040694979072484948870821716490024975462939852075333090011493900514361468387196720506331652420822773697921148699706732572399675070862306838051214357814831212365193377915907102663569827338362974683719932729295230884906840973621438810974470545442277898848846062653080318162775502111537941041344426097905685587889659027167057560809169499817604495537879956890935630625273610794977824986885934865561303008800111258062091487870867532301540904939280857328398009978244578832759378705435739265747202664168895096418149789505761384912361418224703119108902245740637742032248410912453375904848133617126822824692432352478805726106636966440805059425068163285683845109069111163027711637342866332620942737671473680553714132067577462750181621064516890145265370859239030135197034794983703202874719998162558708630242226609990968966371775307321533543680144467851332649641954864991801967807618832372337086990265393247670131064042027668849661087312550622552164509117228624163954023854915900420107845336444271229606941899597149271120544151477806467047670863218771860101821835945508074593028736141484870981004267287748556660103302438661874841688347046469025460200686284648217674097770360869634966123801625743311376560670895457136926817428306335340867197674827605548650905273345790351995646455810868081635234875304657192644466712367094408308137931730255675987964354641929024817345415102196296212389510707257763171910339725070936305500160490117292113878995062992621657884617246917833879665454913996703992631578460893164144262264828281635654716474842250259816243968521679884214514707810856544890984994299841746524730291998685070126152653226015892626023946825759440099054882155284812285694579792428134928465436460013197186014487769234883937156401652999947687546562826663612261348674395985092405131197984697783955399482113084378865098341909279327793406131814318746519107632148151727007779168059764866169776164347153912649122676094144553960824981802832367169994741296029315864165001131832876245755228566873859461925405902124997266365453872704748517858420560218713381047283804138316646034455888094559603478148919166972967699107448175578667244681084978648406072452498858210667190994076723643828817552038173466937807387893782690523331460390381078683223785009981205960850271121951367829934308867568089645210391875331440215572930939240299390350091684116426377576383271320566428899505835464129723057808887194116732514327369026485672031128600148717751360939664289543317491724917007539207038679770057272499314829732565436280828201485334861027207233903758019202824968660932977604258617701309161419063803298720396158512833627898500122253739211453120300912183708361254276967058780257852853911898034177244317937238062421803264313433074854670018952531282607686631108025874171593714977742169899183871433927251520940498351102870438699183755874641359249367461347448283418726770837318962454760646307676860259431256244900258191705505917427496102660132087083111308196827119397193092011065199962486896315854457942314888138957591209180825283412237609258695830578460857590311733679859266810763910787500191191671109938801348323471570162563108383306078378791810292485433795860781404095886069424741314870766589995942621644546335267825061503101693777782682862266271636004857382610005637043938648500536742787926668441622629725800394110603352225070257224901937136439290527914547203637801372386508736320432443719830836623309068434820262398779602290335644802586589008553209279454687839572637583144093685492494169849504197165265590042936112092069521380116998890720364626075356182393671375476975045248422685067444433480704006319993234939081958213305693063007246454536496214139378905347050056684735018360693181691949880626909650234167989173754996271386748239722412862544479596346378655880440801549946180073431164561065302923286644857979070024942071505956012346831655577228636508062056367586575720083291261110377881197080687153614722538291008508186406681744999632497514670690477115866046377422176620803033742021001612567267573951894386983315450061356830628871396455576383075472703567018731957182308895855563516165946079183329311641355691854849190599925763978828096215975051129727655353970827691958077272253627381542706370006739841855307875809732682677862696011399804209267235543621475703061645583170320715811424289138677540450007340697086233178709476472215554618743996026586341566547951176102488568431042284379070194518161982460041847382802286586390294307555519423766396016665022881991521774398544854114675441296480302427884528319767875800228990307471447404243187026861854565498889849000716245771371596670166157437123707078854537928599650691518655985133659457647336462845281751300007655075785450991190329620668178621408974902267455142724902939549011673378869848983446637511544393664386145177146162019696743905795058668558795259623919220093301820670622902698813081548615862627303148878562404631243899121973173567446294557575545890508276764460099970790981998846505784368860983122274789125272118104721399419041572226591613127885791241264550266482236371916890654434268979724678555237330218318689073185856620348790843573946273180302963532374959550569978533039148358959588044380093663022804860875793354535896931191907183347864392700440246411022140383092664128770675226009455919458724405993997086201544242582692612334962841128956232058961562743853387651381083516742564599343639559423117237994207806393060253374164020638341682723984884103822647593551402436411934201708383982719140231487391394521965007524627512683811779040212787690919523868032603512782189583224838536622267757196778760540173661116394803928605193926782657132660051674658412386031851808458329181606533936467507701670609089305316511651535468325557193545214845142914310830915600520721636730649670827389322446528956980046277519792454872499363059405208365979187045176458389223962395482111168428590859925573489046458626823052658606994148157267949700922119549099397384715369820260551844589736723984927742491027655264156147002983073797825998470565824469402924840487942411460536091602521433592202438910800717455248826172975081907540458783863065493027416762269491205095061039895402752951281165381115484659715528067604313398032415343402187486016248422264051332196477987230017985167084115569805052912894419901852757138985844610767280276807145082971361398012612328020264315839472837483631397998127186577546566755185184798728218865383120974323293002181630805126665188309507423254153953915309647286720325726063746216529864064756306359764574396591585531646846696746404197467843559762812281468549001662647027049075612815862207053552140734841117255396884263109573631400480271456285567766460934280259785788948821196513363688088542603370588069310803876304377944684787323966000471066108193042951406379336159174615127299737137867040138375964650939033260077854214484695784152828517469753226532081392905984229437259772487387725273371310137331635174172046696177544711197661357781883202385877983259157904538707452466053529943447842315019698975358785689175637823667856216638326063431587871581183348624230432395269854170894888309118820068448196472693177693821453875408278006237551530880542048675395875681955531737511254545776676588916291392449774237999537648033349417134872784799725754605911834662003198743285606680781047154144371653695043808850119500251598251812490216956782664008773996145684346539817278423635844338079311586548366049964544355305361100157170918031209481886312390622645692334216243891237219782471059616207460105031022023411446955308621686991286175538807071687668602322036919237763243888278213573529982294182604308381322211008188336433036292556838513807879082834567873266217431794405500321849467965608007245356101952847009085792471282454805769832807853337045766832457044950106755856783580885188231002513019060691404003292094758587136607413928923163782968917420360697633447790522173705802983932931475087161497545339771476641209939769367654876985271399391618302629081673341411422164896265153648386396725865105483354748501107756853499920248010858338892976453039468334835138212422837146717779647540991178327795845242134357377402122992726884678504066091267096423344478972631452569312828434876996665131170226563378407880007893575709739639977212606460004655883150559920707843033227733197013770739056508020686230860931902044031067409171688122175941532968893310817683186745068130292729296163295341178774476842077209102706405879412317260334705058463488926008692288139362651275104348002283629866317097347378748717452405183250499936361157970330851095964652396580865665589242283084768789382509700538754133146373879396353767906542910112798116838054505075348189334814545033846957500566321745918351738746735414879018711555804818756435367139602801030081516217357879715212470025579520451950673101738068050466130011634628389114599502951744451253563711924183945818396960157005469668039014799550718791407110373036939095050282263482629294981634023123340800544662463204120636378311367198803524058160760594967620080575500908915595310654427873164394629386543752047573387789122976267242563987862345222204721302200198406753379234101963836378587640549483787172408374660219115001732013505112446160741361854179923708023840985415705996102172190390355962883981355150846018090880535131927683948276597964755699857052790919250704856815335736162180942626220931095040260839341417955112667638369111076919222661083287561274718920383842717288373316094025618592269947121297520041871309208240145209968767015800198549718341599573210883830204605227570043290060542312171709270858085198353989523787265746083034108617217759950556587440365192076256473794791830469119260069599442875127077778564442425331283107831962104790637268903205273229865691698789241470723697620381991186907426107363642522388398155569456584101016378824479114477717925319201204009342816793672933245400953861061141901064788475089343947601229150693426248666526087170000266299979163540647465460051038138345323412485606627776285098629726751560572756226167357996828445932938706147051276142421851091630791572772645111029832643200282143710451940578559160635643039621592326334608894042963426932837159555710782030459216465650613008917909844694648498831844866863666184953495234907405194301618793460304487992509465790064896225169103893178110303947448533874126575255174867748888426328295162854391659420144668841686647744561806016386693298189547873864923523983283133284310357978148017353305696750964691484893634096102017394134997488980036123455332431630301490712604618401670953968161524645454601017543481194652356887891049459117037760016165956679816538869873544357603502430784154128566738044438509454307551444081430233271708590279841411326121182986209971561245139263005934308987024828172421764148702842309383172751234862818017215416093841443154184522171245914546169635974284342236049798767289394060948557055483263357748156751380442249295646260292929748940741576632795744516947623318691441949531317523371995220178340177783456595747986382681848599718614426581051375765924651312869848740074181268838360383386651503077980748523265461602772324386015579534097260778857877667167933084528078535235911316563425804239377885575204808775633009465649297635528181813002288499541717835981740108498918727462217388378867270997897598239408543961862025241071012421608633656186826605756352239577413516638851123225526761284425971198040378259098301658311872733381730456353294862899694780040211119777400606815136341196905106678697230742414218503538140318715042264349355290469421275779271418204270378012946403999941109860774998941717570993714621242323241734946121718627003435118637595488795289495958530772873952684309457533401744732748362126169498521535575935302336158465281583383473360336629964852804182673946807570624327472988188845060249966769435996824639613962193536060889907116812413395529579875282453205323938310072422834993587800945194866125493164082122491080091306374013080048388468993737384990905952909401290833226039374241432434540899472800220383752696495455897134670343684311960565737970708595434199643293027996491555842227300056811593297399242668368813987231183258416570802338472626427333392575690613836262967228305217635331616576269432014913543882189754002135082904238339043161297593915895311718998944829821188560967937276351349450047051072412265469024795040032881277120325107344445951047650240965408301636542102778474212328558916790353058304043298204386992075966636904456526214821163354761601150234505618117940274909808471349095021334589247548798472886611011256648213141416261862673281403559712507193277688482066601641191235355184648969057285287947894358746115847166836557040348504774078980155102422892530539672442519265722496881719620178339277173463704468200840709392675994693256882041560175526650438512046092800105296617330649645518621341471026677974912868846284240463153579938728876695934087248952274945626168720284723175596211023257793951102092187968312198231233351704222379116556984502615223339923634686465663763118794919085245812467516809572370570252634045618508216654368959565381780647443032637513564861105589122657375519104148526922998013311750231518158126316213506180424549865843921588110841228105843364821581186661466333631909773460736384729092061513864407562877621099632380971222451033542995954212631123619361283721559738828046446908425569435570460770729734379524149813080014021784692678789671447062853167157157131648395666737434630539253705327810053155030953882354271404451670420216422733590964073929880670079597368518809749405723256274821780205229089559741420823758752891839772641961825738279572616251861734918459178166244780484600378485239534385210487299741179710869078622604941236737066361313651356018494170375312496959951888666603751395921314171802960944365500438600334222301154086091826379497176603358109126213124551021789154919898873682417642968822229993441272396865543860527877225803264564955177185622985611672037290969870224299218520391163915552385314374677916894871777344183982581615733359779023929732911779578320849935145866767124990416780502738912671196409441666946449288530828031282813483071743712340000780908751762281990569713519013601752278376041529711924300842844563151594972913660020563572279464107925274268784505306716440739469888684419218381981335003162009941033917317183258742150171916612431847168944209107421966396684965358675683604216138579504809404313174112231147109675176447018326170293198866843849190171369033713888501168345697954829466945556601348570627769059158758761738453594915927445371834604049849197678826659570572797425291289361700690948723892394183901125023252518844901929635467816314238749136459127446552433453924788484949769997325738159248538112640112838971423048601086926587255892906424232019672362265008584184647853035280746558218701457358195741434185473328772218613514996205924872434894136652815614742155231050360318794449296699876717820393057207989726482550181148295869244772431875996041175201662475046889012258589100301430504866451923721298281577449316239104970314914649452735307201787232889036318846975044855401374056578086249575586540238215914554453402504972420849748412156787762396532094221641327069219030282764196039277447719761070638239877049669044343015552348781802156434831398302454356226005909832529342367515968795924780829272284266728649879245564686582010118541756393399596269165079672283246667885264983308034562033608218297230629430348526187621372684433216356465526193917645759875284372603189948476314477962623400535565326216236753764739576260705855369039990744982089367508174699361019257911114226251871156529523972999839487949095726248813598213614998178516611909508841016635832068233064582837711049220589667786823718499722421334637470132172743787698043220479431804792348145401971691493737737856028686778581043786325765867577578430408490335182105233829291827360328132422679412274782120763285377316439393254101895243000904407300145033806734576369671418416301860667944569642329929495483112944608408196728739947313725099751487302748037762658784283043625116668031479616561760373515445678845902515617608749560618854123691704640231629513759778140322034553309132071884364009527244546899912841007825628517829921168508634942513159229765251541873520991399527328893976445790527212842542710316753740107990161603890090147684845311097151481508760778595574366366897295191370112482514477638630611433583545131319314478060627343278347924644951983026202610892550687136587173978499694837099667855686964402225435399527513168707018228270478156209559567127754238948988006298894886947591007745635726012511636344639966656043348254470099898638059267777034127361019111674831417832356576381220579249587898561323171024803672476372310324317982408709540419995200458596612226675232722331658140893593101098792998827973387701562391534607632299392209329290757368630115749241089115228366252931504213446560058765425126199159658197440878073542714838090163566922005221711794331031181153448903051504619693811858928179130899914715403893754315394080640746025577845570807032650096112738483034789322811595957584643502471889642312671037365179486262575332997862404756298091236394309812780425932308981898501451256651526685599782549896593291318015036871247547803141721808352637690092468454414252684262823782113763767067873246572487596055672116939273193491966591683134912130246616321740542582923802928185260268552473520001385568060512633718818530333619796045740368500418865944430095308624086715653376367158828261772420120771932324153122659017182358724372950982958784716513020050476007760542411747159802170738680475746301039540194208608215268160973088675352165694491068310736029749239050689001999320711164694557368716023972759249208155246562017509894121859616756857948306778917216365027815234450276651274895129134806332189745943786255689087527950410260683664022122050145481427987865476229884711668123939681726700752536163467702135538523820701729040590729019584381190754720064770060732620905263539204998746780263295610018507724695783306054347214812592912991525287933604913208468534337078028650997195569738820843669616682318488215111395074904097059703464792387568205708185406394439619971989589584462180213668240827316663242644449825538053631363221613718390883083778640853123545645833557456678536802931535173610131161366888072723541669613240162245376346395686909349689645463636452684860225139103939036964904233435077341086400310300203795261893593520783771931447385069379251111404846998207408311569438291602456800092096221990782651971044629428016664210634112795233839739458766121150807647378455095965157505554692698188890970963289208046121218854672630500470608949030340473120962840004193556615907799117483755662169847345583473159526503189279684042820618499270670603288005904297227327031884871647719653856872366801729180052701353472629181118426610435273450415404068004811441570287180829810099648325899719638513686242864165788318597958493415923586966340642989775946239147156433380589405307726761048730115492069705494777048040277707415920850796619014527020574093891944142764496886790071986370242992493689011699640808156591359747684288450452343108859294373851866039500472328884825656782312916424853338171796507595179531490270207685865549781076447489570827540088053579109902269275368431858869420861055533637646528509368643969298726503392385288539156367321705422270784178319020995059053563417641783663235000735768944614028951867965943060670482541431206875897408742057745603548123931284418511816073237549343672829740463119324664977404533362451850851422471411637942423141411345069059407258410110963718395281052636177280781773663210963319906474546581173358190309420556450046545146219333087618936225018913608458570860980126176513462539299149013797919340929389276825179104444926216655370916167784098574097129867397974556291318918905264960719267950827992709733590804965811012128839100468884988509167354204770564811213176216445417176629676125499931492774925994456588770641461059098271219004756012865618099426968248847126632562317911422293694712660793850932850230331965133960209581735477090965876728270847144831621340006073403139493313079148162182050858775409649044525507249121570285613914330706558003563277551467807239789825243321040449624893096923709756593907373940392635558219823806668837543935098230082717347055100116691323759522821651017912561009811514041784698782895775815142262524142986927187580159840100980432348502730273945721235559127398732619633297887832438550101266213059222532743312231074362601128079105957115968823222698688540830219131279457456696945525815630216173501630756370527304864995268239849205123215082427394344179269299109703120475734756127154534963959631304033087215789439162174254449311171876768893361677597746572875538236283772063323705236023305292734299987646101202933698252784621419080057252116034154435877788403795765418566295054625693725721020802865914501511947093301421820681004227638786777358180864214102551931818553363325897910425433415016513982007530542119784686961655865596586040268030055295313429986064319126578573310360119589574533194469731240413387230885147756707230659808488001772841475175887876197411635706583850843865128378764704861616987274842867262435185899542327401224115833430678918213178189732440334628665756991752831162890230118596370727239705390433026757405272515951588512196720679518547099350414518669976812121464851504419677366431653055006545929005563226003300077279334408923020213157925975574411701220877245509405343183098791384464901870022108287946014099686079006216533552477231174389749207002934124381590141686608101680438890179615035904843476942108928414088755984576063186161245221500799401698584681525240870004497801898127690216024262498106144996643300736746615702711640034206983383716307780000947926453387838977031965104098038075358200538873116930825552331249191706549091486153159465620506998155552716371118670882774355667741804951434605622316907432872170822761267067418100157563807861932109072906214154815610102777638595182239566928210743693407359987260921240920864392896055815027295929561182242975422181650103113371468197064977198028447428061676114789975738262047039829263829344262757872793606793157107581145471095946527375732023164337007919412660123460551742307486211620326498481222291554715386051530501208875435332702192771689264263300909943956262549507304652452289809131788212675565570622070204151082203470085277644884095547690466069220827608781164472320435562005113562249428436832021048520410177881521632147106584490911621206170815751883876805483107766359714279530853270108145685818827133535882039452015805749052666814389769060691593316880181577563827033715212779383832123842975262150159903122326088585597888118469498844972760322504471558946844797812869009225796268665231982595212344651699496403999296707837282810304161592675025388215469309957103024863588392943324156718906706394026159037235435024567706237393899734671862519939820682112017274316540232170860961667951490077764625524232446640661069482093417755561772405612028681907604465816665520996643370367118847405751076222819870668767314459753893771785671870451916906321842092065672714224906241687434250502738614606437870768279194014518106990222167305861798366123669508928419057740390983408600487491814234265164317005332130663418351400485744471087473172351999186184924953980290406881490372044798580835859958521993092895748565273313760773604015007584397935969862755770574267482466384748148293352817875254438493827370355909773238031396669791367721861799249323298957381081305855310925184734701847598244319019541527013848588171553542351643328500016863193439352536724611592574757050437394252237575760448595114051378666416634115930313205394465102149796319868024458592174101616318647262076716728028407701829866976351188862101119207161597342407086942893632157233223706629656162228012462297109438193266068935823179051879156227246514692136535922329650600742395778446752112571888362501678274279991969462831400117652900778357626197061433668273830060084585441376222156141656044268810887102681485075432415369721397718637942711960344234013183570426913585035696549169736911721577289923108194038210888842433263527448356744601098403372875022767984959009989654927684036639270436781345821835607406506434843695079317887783381084315777590000627958058525453716356722667722343504903498770127683649316497082218308031396017664446452930832742546479718492941626906666576810958548764949219529682364647292847102396462132381465167301357410059553771086963947421216055901905468289289172732912598701319694494053315850187588947518593523777673757623346456651097823051300257034703895433136703488006825564846363481062547175538791829293142234522090709992528106867693587031553096835851560386333420243137446598300346689844633965587368142980515368151626061341818607490552786596178577276203093412752205771533806476651797970918133161495351458583963283342069329593473965081888479266787875331570831651123830382790761281071300225778814108821645200608597049212002017193264818770745666150271610950511212026756784387224126074137436311918941042972231913552754247977750980228702959872723767137664916421208934700569385753761784030271772557172251905445785111198480384943185502861989237054791837650610263223854781846774134908754519845440242255239024555270040350296115372180380863382027669246266719365435096245652632562837725897843693272351539579148985268994548809900929184448951760839356939368221633120534534802489767914900187252091599301726796286162512642552813046036580086726858261697367721837242951956295050125015460839914555485219704620351262046398244990246682063784013033821816419785028657151843886536220956166315675423091841495587623979606304257228321974499867201092821912426694802929961917056875914381418822250162287051495043812478320615605511739709813596503003053557790861834822079655279837481533426568467395841704216006411319706250527391584779361756298276841913270070960788966916831294525415347066428841499299177470795623080494595612016903994468245715517114746171663061373900552424297703712506159555226579727772260039181364137043011137300396247337659700949880711626687653501053217058354388386589851832119063965347938483135902019597986956885576839938992996053798082577470704233700027843709607343106211533394934581744381407842018336490369268546285789972593009448311936044881790182214642787236963742717444799625565840037736415046908457528716762734890103239534237025885952793669934372441903893517814921572819782745613767711397397749685131023986608463751372141090702937879499521082409068037044825478400704604652097779144462196609794317756515019576677832038982844368482960322345687281488743705110914446711783203879171614218103806171091680565555315554072580872095328440083262088967796245161578953834743850805905093489298467961745771972334820497501564105093138504992112443337810580915123233978484274661745260468271738756837786515668717738579416161519713362317846846953810126924957244471630995124773199838690499673068509715809064596190443497131518922953482514524399030486855739281377105175398102337591880870037763791492204384874586430879726031045919824403386045259912930911724954753603791285123405874896581079849646272111012893532930569065142683598507168719644000338817703123327100708925730217831663848311117509188344731817920897942137773297929546462783853869031001978776437334006212567749892221016525497910214948263712887087387861624155309412639578678945103430023639533274326053959315659294461776947836879200203667666473140995455881861239543050940399828836844399780499463863520724753508766896891934888325919083602129054109733386246870767081240820485435116074984862282874360089220129615646194421332391073227164584388317099869023293893998939707045091780681697239335873173686787135938812845612887785974418556319534082565045241826886796617244308133569626281252790767858605798053414014792270140152243331807433598513477299935969786873609703116059412272930312330639868343896698035765754528796106601007221852061292108716555691717834524132609672407577962057048948542745081235166032930285435079603053489042867221149163745628686106202474269284542109304350738913509869419941153818193699950974168571943568348636148595656429723669190611953973956827362199618200914281571613831954332598944737657361628945285024894426370087804994774844528222229761011692530328734903809041089910625313212235468016271225574142417774983632228434923194989344608406447087583550440473434909882925425927186179831378309770795858024653445442323306899013661130923066514702458098912884634564449754658201766918743449129317182999753507851816813257569612730321473310124055315933071686331681787645104999371944172218714487441047987692781766892088038786481932282107878712474267372500903649509557365504503639542166693740847255713718657592450259175676711867050210791932195311584556881113425616488071794428493458015247222810671228321376226806509772402106556885237502501465710985108795999656329483379682369009306152840256038993787590640705884387025024959893791701003978135362152947028707070014713933607312208068763491794543829873455894937724196369983279799578777095049999715371442615438238086966931839118397852537413856854783997899211705815382700598733574707293000252465706562768902904563183030101762832525079893283322793328350342817220270388132749308883062677244069217395105416071055799268223663211424697289323923458621055037135568996088365180697205510815916121609878221036100955426850650606709907481823910182296444409321082103909117629342856399232232367850550403289704414262444781506414770079801334002257635582453810305373558495996855000089591327968114817124761712103996852395658022524128650010318931082334809409481644519797366970757526881833031378780945497628708097304439189879987901017822705564647689777038569936581215139244554484101282525628824091942472657666874070514917024094001110635924752429423092216241143218496777106194318716307517540818260046176525291810826011302564514347348338186956403822832836884656303608253962794531015950808258747666796735749866609146350704064656652527787852950376628694281718303137802410839968683538435348400294960617844693398550040419384354475591899691530592769386083383700781454279808398272205343269042467073783382696400515430965332197008297076863033192935670367192464384936950475814236731476617457006891448414930332007729531158123558850134231985135423667321161630971216356634888439190744680340275175827934216277977680909485038973177455711970939956880447600663606239299174824492474926975520475479648924064680033550051131455130778456030630138393516339434761364100060180350241334544214175560302553669973845131846942973078523547864125267491861615818936950875467552863672226374612026275408006224630518133561070679385115774943900551825501937949216459062044678056718985779045927766740246555704744021023250118868900713362983734792978743867563118951342786395715896856386550476273182955357195285811786719872332914925484978734601508525175006238212788969068502669703401410374656499768966432656167907483779895243615109292365709590864125220057488584664783573848682121886008023482479028383655917397133182591051461289218598156992657195754031662200785085374877605373244729045617865665426729261658370509730974607273570496533729778867504660703511901511441202628377887425847717363079128072876020901742877388286539237749368474084551909377698504889962084849419943249255959089045433192137531816992939962247258439830850466346787519761304655936034850656822706551754473830082182489072661829104669273680632031225768116397356923326852734889103706209019628407354089418539967103659390794817729194716644162119349778001857275049893809236858982350638087969652064893320692912260141030967984019679056870047527540660447976286208457908528258422599393711278816291660630462550252077444900473963850961658305405563934131986368822372919802259377986750002589283873787020568725795770251095144819223702673348602488765420711540399741498608912366462140936536640935009207702454160728205180972545541034925912271069477322172986369599669052133521483273810726449787677007302240979633727331049544535014446161941995368686009176994891319443397097794264403227687126716907774219168365973573133088987366129256477618587639037963913305540237943889026864492348634731170237621606670428551770733182221614277322956542904756127012498979421578221686310028075630730002874980056316166565012373101368514397925220277226124591109729204957877008805768891608264780072761424217374585165317767660669768837119214419062276523843364538648809934336135283836565797469479106149137098909547004436605133730010137056582698069177811449312023231796505435410655662389113211964735607494741423261292514182512850253695640373260992092836085324739806389276970855429032631846889304060911346497193559378293260568073836456330153931468287767952312477450006547180995965787260468100775886774181132455523951228079538304953033414147955589864836394664263519308457270017256415630366565268562802346387950924123808003165444553965549378769887175298456085309016840577758797994958235291258028135750946947034993611181382663930597536302962613053104201376684471443777830465872629279125591889985876993383400133117763111936534234528970513862164352648433794546731883682018235107658310205065460572629147460945755262979355515906575682676393024906143502157770551798437472720097981711217893170648983599775788159916075112345295702246220250653914229991719990393361289115743518587809562919260347528903328504375965901479847973917109717927555078333351954242719086618581979105606481137691948212451033422497843088240263145859069964087735664915146309736135916363675049344926651791836693327680188371109938487483191611317411445942068611198928771095433976512091370966937309178569652303211415368530570030878790022809946064877628368087104193217108302135195154137839105190907871703088654899268649585351877676066408050054420211294648907758006942401045986556614489719637185668579138046586409681103547159061147403433482899385076526045568206011887721475046342205198745013189459303996387871156259667367232405948672272812324695925817573900448714547251867948541789540373585748447317448447303297262520352785639552263623916194733394599215722845166869940269087143967524790743959198752656497582347746173451371497909007599600278341351439145093124141349465104608631559626216403155924032673565520781546470914118945468835835950295027078538430286174428862435726074050210277401258131481166472135155566998299516760660812597473546393155864759418864586561291655936961369262247663280266720032996117634213573060995443007253310248916490503733498027955406054026247887374091742490732821604686739770508638292568895182953816639535115394581725768614701006651689481076280537952287758350511472341779096469756755163727335818500968112522688884959974695417707817972821828549074122492253308632519840395537289995739967471436390679614020276829000622203837269855545422700162111782031178310791481551425857747260712521520169664673240891707263316026846261358498735214708042094196734087665124885936219437139316089493151190798536930989291182549895346129689228471072885092000450330018805330693768788416747730364483388831523527311393960806350116101375187187226590396955332905001440294526354514929269053571647818496326285153263065947489517480835564842337340404327941260155449269123711827235824884311067874698877790516226755288519864252585942424685182357097460956354848119308628949053915906586557283346786540689843461312425023309526055015438313880231022396035934362686834393865674181462836137815314233588360323788944130907366632468206407070853467861007050244923109636740893157071809239359672010991753836027206261721682578167654778113256927812008747378263898973323724548475052367559885962114651723492144251409811669463658343225702324923760050002898567780315098548808699516972178322229789132904771008333693831221144609486482217260675329729750156699133936227928998924007145029915340208859345562087004998219993537465815891729018289039895420946472736672049560892107271625067588276475896255436896531753579570108550679986667077030035357011359684015428962688685103356259569475560430686107666567023385398668711112247062789115454858601562085658668132975380225913114744168682881184737356030446107291839039025818667617437353427122393602727490860180666212258602178354032423146843616403622054233947033930683880268269734315556635800098750207316190854712721392487504811263535006415436334548297096009484766725250286665144008463109363174845607966212489972273343197582333052984857125253137602158428623138276635159889636555746052173129987949187242421408928238199387239712666174745963072651794464432531760392797350903758034563153399247029526961183837600379084270727721743457954550707441056199214329226564960396312152526365615456938672460663881249506262005904835617841886357809016766516248551160149278112166789060752554348089413685848174686324877658909753641145440210780486274893849694817555904389676328597650460355246821718261926352556593809252252391419900752444878914635804740150564652708255482864457483798923180124524295052980289584995391032466673975032444131989665288706377467456287340912778584603640007002052866284779539313903743305794390880703053789102737178911096714721902891712457453950530760281634583576997628735238615198353073386895312010833913466856147598512346660377649565236922451912672258314609087076737580891508335296340794723832887230448133626400098458169248169597372760575836462607229193984673048223624291403596283077941815937117458949828705933334061813648003396422987119386021972641986946629838487078197818848108390845192489209279521684420981134957840004576734026610698688682117808985262529062572852700941542835472886400263839151705842230180467720832259741043741755323452648096773115176049888739876599186216932237737594311413257358259908837455429873471893200575323341796969546704934145043191709413935311104528765060201878526756010285857694168335126367582552946452559085337781271227947920366342585573241336817016950453943074331958384347934842571111219903211715330084917984872527468843739877671626932949132797330493832303396417213216180402542167639502376151043954853625741832881183721918603769118901940438713824569381413337159868940647434660908806337026484439654770635463700034506777070802893048585745344037735783542070278611875689515171735129209913340523690119135789236704072610550152076680952504272878227597339613069689350263728192483918043225220955704986143006038831721744253594881221147308455513407943817704451933875962269966824505172324524135202447236380813396182562601228824700201107276808063374155528240632607748945374542479466122473092232230827856241056058252927933875177803972865891761437797264013913476527358791913990780941036472925516806375954555782922046448262203183705044558889691980199136508180153211780682198332307846068752412403666165759274216236856944982100787063945825413384812986507053523927189146891983151316843503787399523867035933655237508508760166791546875787286009996503448693906494936162796753789924144357427339109624389104424888687745092868366715025237970312217332861501258977885793676526562216370303961688451904401990049170373214772335964865736195589761852866034551577993932839136402681398513677541471019186238130567467647822644397768216393980784019901068627968925896737240394787464589157573112831992288993174353416723509727267163342444363178184547006104586975311263231607955776821652524450492156670557665017162960494364688709555626386856548877748045149763136158297301229136165408906938508223705382472430416022721422909041517569895046691412865601440449074264923696191631310657968162414375396272759824487999909697643301780556379486183945397320789874194709348945499403549359181762455903792116189844568204717748703605379381565942605141880572256692116199418759773115022854727132645140777647081506036241146374106364029416508322029839013948129128034838482373864442222683149658651148608983137567009888237685863608123007487509148550616866060164161520267949326569003352558068643513228639664110675920400384042107358366373178553359388530774915140163170593729689781347729410030130417582886962518330488794313195286403611333872985734222127610776713334615170836364013703788863672035712945347040378414264642107577731661202141170638914225519171925349718211628074663538929011786057340066232193325679584547684766006241367222681811244193081117161973534722886254621108789280810712500109895841844922929124818359051872880018778867635931124087492708506524665365508983187804014116134900798580914094531913762179013750587239705474378243809494914325877512212091921143700993191418696920068634820913319369198464416134409155903525444099765421050842949844494367892714509754347466812088211016952241022373338523151730244695367441878600393685429974721395927138908102229118648031229550490585214290184235960426659668076246921891440881410052681594192537497200996328026091120107899124273980955540935198047451653933723637094322227349976843381958535489849742297177209309208394746533959817879008191753272764609970521987668300637931305217617343699308434172448370396765195350504291904890191873875564442301451992421249992441543849457987331012594993947857637634456913315947260185835254351476302002677774663310084711167737627715443917358618755327575714704046564572053759441904613646062515068404116467617630922481857747519616613147402308044549844781100906898949881567077209956355277110957184245054101242941053850646707239831112118333138065514166422571551430534651453651842021409111133663949399569900624588441985778548878466850843615207778723994372630399285804678193695510901875758307359317083984320861363906690699512382467384994882938665715831829517787366192925861668694826577306267450463539729266132546272492358838787759899356976841356959269866530909455042660552561699707258010881139091368088927282241688449316831068586455756250777190407442132909370756922053995966913242734256136055825375441761477714868371688943551531577863478264095279325017033776533547617380656956593858722420811674823041559439378489012517660824338965256079449085417561204047459495788187978036568356403993893034022187770323377350354466776718600447068914711269894713579177671022462363244426473880123445867441173212721079527824976903738248058710440666082833833467496449661930201450364689248818294100231366825882997839694330292656569560213149279793904029597743407333917807148327482090719852047120730162202215923205059811852665204286084971923180735790020869350601058795599137962814693652631633666140900503170114511697619484787510167140713706470370999865078488170053578091939071820776013140118094383500477400863776467798119860187456109062087347258435407686924366309060116695353848987822933897884679343601945954009426410479430408521678016059084156536294639357752175890640193010353803951716834777804763508131961081800388680250757941484472878377204307126523704528348682825958911527545088623004601340368619412819489556206802995010100996101733164601453614555866852289934617705659102127790539488133486736098622675806755751687485217208361177945136041129117189389795474244400814688119767622877525899595782730970837415591745722289260358320867083844043161345755481690273172765203076717905522111303939100260078863320459028297317239485364553349756859307476855207044648338913921134005456390777189479832438608950874260219122120876320713597208427748996161797812180111355695365795368378417490653315311140506939034622103632057318541329863710363170903897292364692358251597293606755393349254691315285821198051563109987629066029087942316458490292934682587055213213655993172114609788589800534245391235340056115774907590530649827921170138256382598757373262939787796277073312616490163486038179768403658001595773978833331816550265734483898127484192053533802892018131135907753924530826990621835760883299071791876504497867646297422217919258174888978130149029425217583947005531223302062308870934850646024777785849475368087081458638459852734676513645301859288281330338956402816481363388619898811261659733284614816761417788412938101269588730635558655632155354588109135301144125639607176289881050509528801329798621515692254855426932599378306589690498458666586459756814866507992525068078583012038510450019818477025606404795584791055307956447470576453128249466621663497663680675613903593320123272935273476399919926337489815298170270288877965451095819883490059682528271747242355720074852484656986769265194536556539134435350257454094110948379953408285042249472336690798028013820869411870576399492950462424756344601718051905464618543542087510926256921134640450093897772222435990677474029491820078674152343604442732734250843582340980302487578676999019753154668456044849594309390763533544617682188100651459333114432131922007410886232164325689379588894634277584129227920449741839096499905149119415116617883797424447100269363145362674363205160842161458867937466092437080475827229485182591532219463667351259461290172133821954482881625175073380134036763405747995737681833112608769628255149642641220510438036657530772493730659716377436711243719808577711899535507080723764769023503608865279112127547780741841990707231542885137595785790355282909343694808644792331973086113759575976027339607753240588997887079890825807691230002224188482019639169250557916730259215654802535280543701678331444169204111356564064602128382392787270500510228899403450011308262833735750737883045407468291874944622686414360309592755843125523397340669926234202840425493526762173483223860018026734075690566514226375939960511552203194703832280490894718571971396560689414852749635886594796679700166418685338335688410058910553890955524593388851297859553385419170549109723939532861898948719407121411259223088460705563437942526719724987617590247301828859394595075172657733412312492439494549494781743427022520932399357614444301545374186761537830637932050917135583876717965777720203448943590139257961380652936662869785977628914091233035298058257343109668751050657748073025921087262965886849970842503646506227550848418531759556574499065682820371544717641852479084032094328434451727503313547181215515624846218688721842676335081960447668081866990388902869752872533670399133137458719653678582886002804870511680484356289725368695852218100004709976180397040454722579364738297752659269473562812098475608566176153109561222103512696697775098466151802488486627939231064329777591319333298792912771354589995896585655535431663161772106101123455107173101217133639663965038004101330215277668251734691714097853810771470250593787609742204915775738748706521151570932201594519920977043663122445633512409734902570080289142760175793764879190034795121110178179263988977430369326123263834090814806981750733833350548524012763972565021188164394039376844812021231087940731668221960132587003350724127248920062058489559512941298757260675060521045574478642197924495515855331342689901783722346317522334792735931984561961189695226333685641379621415036645305315192302820782720893458199116493884524294110632579653374705709474349352762750888901000102626185056749469906318255045459853631465178452906313225318412761878490944437527364025238798600445090815677900188951791226470860013718177821975885287834759328424097389439655155182838846550044803587143890665883156755802869572863644516435127956663645072235472176391547899229347955495817028482218469416709673430225297223239844113824511486904323905604808948533460327946985091931601808907420354164343969824645871511489252350310164591978771567732788495716221161107228494294029109066032395416377088728431774204185403781033528609141483885184436146157316513665796124333421485771693980058324988294596121550936503558905409545629505129948815796238572533997255359755004483690996639628327812483294504446757499854790263272585523201486717102173699532221991239341823276978867788472612890818973291484492822189899855641898469180902223986688998491918959768628983482672150628250689054748819047491664342851554203879963595247119731711327188315379978088245014953151527421796993376539744115733513008100081910761066043971295593455359388840148833824038840246576554182853598753029270472698654841342552017688492264725067280589391440632599757992381467476006428891697907636510917349991932089775937773048051708303771384675566407562729113017002172719118039896508773241886446391383913930968648498352781724581910456404221920948981262843546192540766803754670100473137500578220309309074464928233737014681535055621948551537206721599876547389125618947668170314247056900366992068976699958892020461053098334217336015838822561538389481510534226100427402399338998495768651830161655251482150057889835779987009030060283346622867036008952006968273606346411872361564369701627125695415168901235992765989529619143202041194435058669841002305523680945450601337235084292443465943017377593870525747033336950050576373653414463792622288903090813433483759152836448782844605880862637013340422136921100162040578316615914190336063635068482589373225066193957067699608397317637400297992758512557471012716806587061136811532842924096967532180665917979305034110275184543101364085602318991116073517356729231379593645577535438067668752341869655707601567565464783541289316709770494611382613114720588155051281415644140142174396978008890667639001692421522665469324456747310295368456990830911324628431607351142543844662182312325276703214765215286432195059914430925376869843407653031319467896213651677518433088329636598625965420947810966656179001501565647713743403414261501735830695337799303981892664312262315461957276577786739390477184217584937518999630980534887688467454925109324611028092373495689013221563359889063126504409682344361872943484592077282398112093229400770012219558141516996741847132653874718723842974393430361942130469480740103643048970157287702713130556301347128263408404225969270337012994616641837917628181961256151853502076846124410766994459820000461311528527255535972579331509165507095206126005205504657395546875521788117972835569739945060378835060045866696421588601091141751989661222456444175710851516893108382913809881898457371074894027123521364236375458149764983815647863898100624017242364086684841008428504517611022474286824100947151317773919461250989325175561779594667928153746396035282624886182513825280092504798545782622560442487464797755288052553471063813387771332228275072222253731538147981016864032621582659131258174609282167733005407280957714759770421325719594775071865793108776611450376330952393991051488370994643218214134751077039306633783249869688462445775216399992812950002791470331873910302610706383042642297893913713929478644530194585600847496875285270381360509310218855120406526311586601516485580475700699242391402598807261630770874857170391237490803728843888048256207003693334800544377721513635556040092468870223366209456036101395075836491260126607615906518037509966477991227969190934419870164921076042840960709260935431987603997927207623579001052841922820348622833908572382531781450142884602556697638253430881630629697097692040901833413236850007435147616360002261078160487715073432952318766898125290683517605945721773932661868438049182013457723879027111422776809524085074909987183675766923113572717289352023878780643243434985170730953536719790308247533138759451399006519912310757881180538639725146293353331978779125031581509782946127758246619350401767095903431339817957842440288752098503122211222019716168413735909123889126905927394963419417230357441907845477405523186781325566151970359963516344505860191385250793968426365598797290553953090268934547804863583717458246081398972851604657491689683130347567437943580354850032336227438750198302178429663868994733259955156107041197281864422833157656009094111312336335497915164702873738472058088539094845603680311667364611307949381465223097023457927813081884222563451300400772485680403152835237155831234308369926806026929852162471077269838602700738753660575237123596875423089120226363864544326900143469635127441160194242760211546051289636860845903207519160117349735477916142940349621511736943234354145890720601231918206507247806166164621942901234404530174472912510249392781695876937139172450117588662093803392645966942758367209742071868479951333870028621774178176668446160902882226072391096635819947159844187156736333995459503583613243034626676990402819829913502556979450201331445062455042340674894736431103637311530847528414559604221044033898122603942197100815674953663993251983121701836206275561588899569787184486069607106312525288845167736932440838979250992996931771761319407008040503322621886817645219793636557050288498458831007608826271574684209886435499734887075404904402925943185491229145871298194903947220657425989037242181396327544308400525175667069156658196165794998836545905244316864247655521485888855222553922739345230808095422062516414033479938140103157946243433610855813721895428746668436766974542367987678689752083772777499920487855434032733262879784953134877708527289626927149083195932591677400887963194013719848230554328146139016244383100003696659808993299345641136408453059877067959114489021972530978647342509328418359363725640427244696867200194559867675075408790476452004030801078100731728146072837586452005521017809449227600749069693727262865960422946313245778707569376370363457463424499537946014264962625686084529967312292370516052483491458596540612758802973053579311138944199606009713062473235918621131731673741093865217782055827895340886564280833285260013327971769490387283260073968256534749775024440372783615803605914355856635087872650174257782009686797671169814705103720707360004567514283555588877285995892262646369021363089350596406817161861460452291709285297495921499963039271039241826079890859395752578588478646806734358793602413036042625146645446086749058522559486545620562361203048501139105461613602821103682934078404204970057261428221970677288577679290474782322577647422515558972385579125752117312075648444169703632348697589039299280760810382398167635804711603646823732465090954856117676942198410678569336505788820841065478589997432953319489684653791721074948295732035004327243635309400156514501428997863387469693289048181687512907757333945071757984744975779300369237389118422411138462941269890287279588160508956965178092612123700765798778364711846101954724293855228311598295236318303093374201011208628592459017607095561253902479276361866154509447778177102969933227500031470102537964432242617761800435519901657210027757365738052865009747290658680849901119657130798738094798207192731524102654239994684599758286706271487513054289070706730759688749125650281840377252992516559862788843698101414314835846210742340065612981348082692626550003073348175071795981516409750692455679570670882441971689848938690509079234482574802475292159202673675404257854263959415026592693292144888232996084448256543307240019711698897983812200528239712858603889468647377534470098015847355984783267136397575343862001820480415052318606323097315323586649953522000771221373152496515167931038617635177137211144810561892010045871981802529163434599772423626302489086002907295703732977249077940846920906381327495492343485278926061184526852136699182462597711550203963301002884209257072693520530050750597744522675064300374628154948444383946958623058841599283244561042408746556111602576510682734172820013680904396505510328841489028351068900434584343332083741087612142951309070050349315914109697754695924360752175759188700414148335635864644574305122173254440727811005842352546029866389910996170149794034920611740345875509193693234350703581852583672603299960960807128828460014952011285363650125734489637523426889486842539665014127638992049945300671300695512944308800878870173521507211611273391252366070750445348721352372361734982583554825180062036948667083237447675830574725770134121066342980047225626913277716225655722966517147904592461714829308353827836546011393645197391244968077639850692115646504225965133603665332118514345729716180505224834075009129731267062905970932757316822079416094757430192846657150783669994856704721062683832396244577531110976927893153634925695708884449451683603837380735731100068271412141287312465290869529822215864171920937304841909415212624027475274049953754030640076991731596053252774052958395953547368158086780082175032882959814525601327199631298562795405746203314519310258969781135263957626481123123117738374531906485531589718718650836690448591700713869121822833135978478200392795863580871032415649880254588520813182214258259466742894750498976107094061702455754955434155018245025426505479358546759046380742834837949557998160353286373571652099887703426022339255842103833754777429846330690033056733548158941232904354545724330534135866645765834345601741573688277142031419113336748400703571980679279898099657598419757108224162100219520256381272560744677464688343067775916624623780017008227904366129686460005189403320070913297509034702750111815481032409260132683885964062900308961485776699922148035251340305315110908398302675373156522718485861249345845615052124834524664727626375554551548734215926078069739285850511087946591310529047133533699665153188445062628056152245604637529651973869156603392329977248292345796186495125278352769937133920498523184129432493241010763379389781915188552912118729430935318372708294682089995049225858999655449233686840715581477044039794401265107490671621014525727663023053177546086595758321171048043279761450568040304810122902507985386883227983955663764297414643650106838288095246592194771032740201076127884635523769622734712017406744448725594626745403773212992638090684200524369125865243497929750286587782170579803036907686421430182369914422791519462765273082538454584046689547202528781209168221749754691660551483810744726171249620421166506628244929801129131856844889183137637055994113285104853180483296127418176158866928437194062386178614837752451757918071190698887220359807028441004887965518166131635237413656700811109534818202388266061463087985324701127922445380288534693232199899940656015724782749204387476013705879563412843388637833805554020681874464719825157741903129636357515412794538213505159840364367708975577204734198636927145214647502880304522051449544517927361251097184317311623165414639231881807102093250056917596432120761615603304081140905704410781305622287032643500597885395403160480812576698149540256070411895242615298630357051777850116421608352734777719381756446881901924607616643895925832688534358179046650780726668225397653362514062471392606062007042789266062760692412039997166755596930215206557351141667095183530080079575698867367730802655471610704122373699702910844144165681243533330684321543189834442701532894414583249596598078164282881951365770432413019011806848954576140800941659934569491062347262139061285282638530121040732544915396188779572973137713579948592460576856372181307679349727038858293338705472215029701909415423468709486081795538392126472354046796302300510553404386908926962195585721449605014252303132218257529697027360454147793031077406702794296588544390371587029776938554130075699183010837711320742676238378359220745008474324042829058848352460087405313698546292366926533676864457263785139882565141240537501554756911853315384442919467338135792612236986566443960737309763095927890303610425004443812392280209362469866666571005514920159591081921444193307976439815169578369483413194224511895121468070755852826740414497049968514830480389203718497760360630081713954095273105467165459491289570996411070532470109027170286990602224997107604860018653685709861922622428628195675012285326774000608809894428002764941381724129117160541829082150654679799023310947995879338163421795267305344936619026624671194035625356946394065023594459944161558317371421143523989865362243845705458306318915059828906231740113316888851723907386211602923578425964282508889715671702193967627891052539078271549530169982988922923879735456467886914290465788846831742835248701998888599870637634012214723461271486650310868189162528436687570255418270909811229920459168308149174028312917231352040549035791269881557600999848570593502879731461582939151926368170315069850717613591348999889766983516418673444685786641790251267015322150794121996237213045344080968935696306517673952496530984170015359862298209711469192697479799185973449323786565590187230963914161240565395602055245158507460362717716872876164064706989298106643469003923259609647912185139441508620220019793250117508786918999686055006526935806622707678179665733558236331751247072738645093998351459219742373123512324474479920606356016993506000906645034928038515192839477745690691598131103450458038343908468137008760638926089888122760645214324235525412317466558320613711755288441524060487698319955553264461029860898814178504284269669737984766260516763652708487620499790611621283240954746306271906285304620975158438474624676896884431346511755332189949806255797939506637956958330066332606897089544542593821386456792361966176509323567965143321945657059778360938614859905613682675692073435310316858166388882633495786893656131977883526725086639995866515305430594200800158719357645735707924863247036647856957704286460475304563944359850749875413417113029021105605912531875409570356534423632680748239476732684404638919844008036949904790616823020898652380128535509112175574487350604725549787578639017228014985235712170014045363159462006634928340312200868210866242718946501714318920710551740091366229000784828543926670742302800194947426054081791643292060144387003404229999962073822195028264403867091601101465377448794717212207651798271739066883361969520286920077977438145700680585220776438408015664535349541718038303005033560217857184708152687682580264315870897187745674481623677370436664558960596797776572031661724169208532121535739774398694603519496290473289014760755803337181567397829828050400748050860120632223052928996611434360411265378220106580102931953694861551025428181803170955436397366088069942315220419987763879846851637496174334365567983214532035116223256356413755660277862831724971287923277193849507499319371163183121403626018182295462573221011681934762655510197523711987552086173478941751442143575010821675129440702183111290835882499378706355803180004709123439348564695373972949672424502581144265235932860890238748318971808555906766745254469914453002748359143349778432771061848896711979835205044674291622484350715428974071509594360108820330214343392374286268608871023731455133683774077883233906603101214700237010828544493985067561693606426367774849671997907268489142289268570694841628812183060260123666678026719148670153853462492065830224592553338297685992826507124944518784357620797683670000732259873123449963593392637190452998778285249692364198404599848776341318649811270706043237503070615189874567850787834845948906868742700156397023055062716414912347309713069402354236829553574401955998963193745733376394539412653385316797373848687924568352995011554501727006132416640751552399329857465826670146726615841833752539991879804601134861696537516732134906847451652286509307219646660996706295902387919631104328827337825167218525934238866364502804984700571100075073340393890279161229341306366168853578708276356380250426087936590058780354779418650852791088693270376772725525840060931089981377720350705327446972151227547250658876789144834567337109808811639992838217879899361268482871112752622983041557374152444629048090580771851889563081498888898428121766616035285936557687258176562597924309518618755313449631249769181808911938164880518849375993218167808458112977738169373274454633598168382852765008120233036739741865675285088190437132441486661371555666511774074243823629379920596775235278252256794136075789890767179567869502681828085193441569996758086915814284582710582725989961316376284753472827126040058225681294837191039398411519810617922870987331735985126974825478835184507084522664324141166742772685354077996037030583903324402465705189838346005576067181156096258609217868351163590353827507954186007441541887546694244205028524771867393748073274753598016243457626246450620666944923713885429328826510651097773103512572051121770609417594256581611960850419863687197280890898916533036911914845005253376319140777207599283206074863235514455336954404826998282698660934220728642330585990091613314460784165298861541179131860083319148592443645099964037932188696513113080847279468520696855511778559278654574802559870309041980774924982120165644612324751172845029598673803985662325569508025745727948736524516371144098478041260813706763899581104500776395017849537333094272408901578045745326832310438046980294513290658164920871940927428235018309419633196675485113890353081666397125381157933660727322834834051140748958643283131322015889294929223428745920189462997986577701118044820995400778186392759526799699014037064683657030390470425112103872469819453542659893777786714801620833392185091220747077565501714204493045083258026651059078539911905630093403272524007283476746651445660821750949276988061294383335244685259721804469452202229063923618706748522651210083582384010256097407755255994269105798675713038729409319408651405129392320431160545846941862918557416738758792933019258283652170374718202527691342801771681162613961549048454530045089516032768090725330947667299449803590197851776951373054722699791819536121127381484949001974482672161791229298962154610629169482049035327702178975015259613556235798060986538461043085662432760766160680495151940631053658416149741040937721250264340288362117132191784658675175963537473902574692485221667047336088730434606433884922175715532538343130429937434443134433401767482841408532676366092774525310005617719403860180781505780211466871356040000158268861819568769634240026738060379269659954186303989795769287709545931568534638667839215197287050221890735350159966762177946429673768658013294117493419284149245471326086954040929937428395138823507624267063617524758103621811483633242350400268026828974254837249929128140593607254457626110321533594385201961239317054309970296127202727109672957318341583687506040657297155552745492879429990760584127550119818763048220053303536677418216293767935078885308340857133298318360795921316077944914166547986219658890846884278748714991180741424729747731300397887477306444520743891887405365606247569035894713108107531515098959713887062935054652893395785073916407258387574065531808880040833839424408925129146351852051660311122998076349149145584584210855623430102751383292982652504250597574707072847401456742393111249341388499495505273460444621456556665247845489270768125617343664071847753871263146311688102382774612488441850220133197467031855415745615742064277913168072993337881552154335652014178207953893801888488955998293397948539839527426367105978017754024955131199149982426410999243095193675675974996378420650144834578342121439832574784449617017280068352317879483140037886985360125247769885227904010322224790214648967103039370838228195287611990049981756822828799845441453672151735023189990244995945897077947950709893748260504198014421334714951037552824451136876345135698780536561771853135105307630685264668101115951154505068365656996754813601460411861060276107715009964441040478404460966812756187652986361554815706821813391392950123446035089226614491169893881267616705901748065608968757847111563693039341967213122439723506124437198741262841946753763432704908659806518260128859816054062524036243470179515845174396466385091788225797879932554645996588037811840549123115975773143197582854319278012315926933497938737117877068040091381015058156141937392368396609647656130416921378449403739599719286559302309348104937194314305344263724078558458642670206385724925136625697680439974967763963119303347969886360552644899893095437731095283171629048452106557300129550333080081183304449822317382130267762436661773156318729166432650998317124544438272718296553540467369321310147289227127605121927376953072280538991948575886538285666742111279174117086863700849346968205024101200090877474542618562155334775785218825951697215011379885846927379032141463076157843037600543440315112382355638908992150145953496445890918537738099315591755901513411343017154686437193194906119683778333133647990322326961638496331614389686710309088365663397412909583910560308599402919363220341345959335198546371305370938647333103257126368873966657813703748183446943263276738806009310591990570066276025539284903488398041282121997354946167940872092446189546028540866276161390430977265801446819402806518338560698094601647539982042757198906616334058477254816988150817379946248198210546704676704596831527341827944278119922441141961189076194555132307497488523498865392301580388276190995563112083336853984937778140563962726075762925518362484490605301761002577093829820264047913906965843377795899095344066260362474344232846082679575983071476597055710471740821466705812281759725587920981814913954954928328484233775118441846484133936647950513497755414399078483550506377536858770453141378354347518142654179998689321288881227467245357444674089433833805706260426293700028064766296663903870910491055733518145821244246643072489022531229948838734284711630985509462977473744409160462501816685432597315126490462818317553040982751381008546411792904969672016740270312566478647900014099781213058993235864787953866560619670716247397949259783756532640736792031940595748497890150418937852542044112357800252557147433582219131493928670649803409350781197562048766513748276259094171602395568138528739764985562459188522052838295886685374108109882787429640448392472737434492485658888154510987983991666217032046608866111929286872142750012302076274974257544650329453548088187842839162092756349924887939029348093580238043564875059781420092671674687827417167939456689495584044942060188303437863124304696424397983516518101464668744326906515856109466518707465558580192856334965655040694843430798214967924132921271348280125385986358601728397597622343374232790598662681152163558217454474736409277703095249644804178121937540740239487139600723999606218519169643341634090630939764708879489595352945295654036891403802797295197637271654855341599815345421466527930574492276605892654133057780586965267192770589864492504219995997736293843977996863991802573598779714707761455000667341234178577142532624343282327056163899704895536153521302598184817773193810322376181335424509111937224971734218620845747387376983182468876811848925331660335085272223984506183577948270087895568369435937448058540445244335827649739597294002643571665034254970375205437770293771636432346839534205865567438537511487539466595227774257017671547153218790529287227496034884210020126908495114094274853903557960573630139366087149325509696469618568427890507268894651453433814916431438976064970172273415994239615113354626023419681905764688418718812405829803235455159356928324354061133494080675708506631741771194510052920782272252841095614282262747240956405933541212331653044628772418607145572790953663165520066557365753343588920988502912903038191794635221194754823185895922943944341515737446221917318474199331928831536280816824970044650904986403180309531216911031020235727966738605689435651094783817145509799071594704631248609960440916464486775412062513094726316792750069601354091880293627096758458694691333349311897559245347939193446076988970924739620401911522473128059267211435230539198387471564889406728820037775371379982705968552505443173793151627559959953844279781234223659131252691196525123640851822263569143248250096721676904230697137967597738853890446279689585794697273950143933195819677514266348134961318884833783639424178528189132677115581928489793366809186284469654416705486440024408272882062298494392375120177912053349078709190791265852833478611644703819390002382734014008358717616939462999033080607149103664743256404799258594762730056826833835204490765244329412601473861557888371261348879623011457539013917452758813207339529242631486933142362833116651101232405681612219336974413189664394714505612056053429322843580478553377771851754318506333324742411647520512649959217769915518424306734034568902986574133052097603959569194605790972867338954930827806520459643044028140470019788518156816661598896171208901566479037097683965240149988798668397417552245821954394454314056043153284540866837264670349463059292569989788487852814075013832179540588506416438474361456534158384396832590982201355107777259295802551656183268788825921910344451150030691353802755587774825660798408474185074311568200951248867118675260429483454393034591283415400483505359669735566484257177385915194819622934389561836003764452341815891666019505730368964967485425133620425802090333239111390165714736201132681042567054792018623297540414465842623445365469472687563555844793631892828917894042474989925362923244163390141025199036285297846160368617636812847281520266087910114284806388584420906774584832450262378801715740784406320321181778213909477490461496497419128152248894180409152278082566554297999118810119937129560494131986471496279219871040479304177660144769305704658875323145681704041832497385180822565213767504814161081307797091764794712518763537837552426908527716309894690186192651380122576262967770362622333275120190690627802062952406880326165404839408639413737694944360278415010951192744304556081692479722147709692971018981539698129328883786221109104646733264765140855292926504618607821364087145736785893559950188982947308696463468217365328338567471210531791886128163529669963788023902883029206729672217254021985951706516930426329146654885735025920487145616581297903336302876999267869063661376395901048393922849319746825656317229976180071568775527204771330990205411687665353012347539961213821665397521336660705996929871175083585197453699185584362864512798289424719400099494498828244457151232123529349045043834108120933557661314354357491015814279314674245458849319008882475572563731579226617230277399394903799330179937822906174623413064463476455939888387887351062666693166966116815508325526226590385692493772005359052277533629418243862375787741030131890341765781518962554767384700118942424393359179652668583927931363071787726567636453766168708032974434003512391439796191782028141939433671704182455227401310191060122647957344944481725025847135749282470797200781391320527957167798631325982762646193684974532257585855156730535357452791035012203381597643044429996760274630168189405362866359931812829335906024443356239394867194389041721360717708050628538998427421870863644515576431489358450205624402023403366002010551701565361423805158852157462045150398176812018291364777845734837100400849354563536470341094792887590414132751989400935295144834640009994425970850348560260908877671794396569624628213381372733516484894339189892090068430402711040487559013005140040383148241062267475140508943232764271734675416373970746905872756983672324981965304920535622797258046576256932517838283037531781652852118705299490122763455738083421349233579630699796732200403155514648997042617625695962612356628744380016975603284279386496770398522784707914567641709447865917576174901976118403060287774363014970067951182331970297104540614411217591556556688205240061011139731228021888376203603771086540501802250515770836029997585444562237893443025486725030514857261236699362654918911146292089283433078104414494828431415932056501672761279442466084605385551630548249008321378663886453924405873384916342861812302925176767693374472156113699763327228257134972494024388641858746644269798568497137625595434667392360124906162032119972022867789605339335031191070422546212128444921227633455209131238430312181981804039715395548603403793236888140505139998844169239864143994168364668962810103888819645355671455061858472522116719027375139431171471851740504975272170728413068621640403862332790549767757878069931388312111446279051966550144531650305239134213482078428132422438970357604155190893826437164896418766151606690895522848268315930884395732925700130570805162292371004280906722945000063666733867065244086183290573352949777278345008778306958354990377301043107473775954557566138448436578554763356146575054926907713776139874951963978351743235010430289949464249382594052221084545395000393334877301205336259976784059112686654237341113742988110184961362660155309330422381853723188897790517774457062095661572589547101618811309203235526838230623632069518291919694832050631578012152023885270645079776211852646969273618303918200680643815300528171152425538895607464065530207852563425754783390774874096085877590052132259796548230785991047615806381857729963342227180920257072126900363478545071014547462827990652216207212546041241261535906912466026205633732107298397813001019011738501409639489362637389903721767770263917396372697141193922058464653676702047485238222559364799231363178728064884195411933797108902346873131823590571557327904750415373041723453721682424356560131752637969420616028933976865401393358938389848173478983679183205351986741590508594797637841101331230944450885540015696293493266371392171619380583323639943284330312819739062096857073899463566237077410084759206609451277845105882567590949171132734039247144540499520904591715435841323182063708305717878806133203821816658177987550878198172271507748408710343175013483166182500111666558330211137209740429977043069700043741863849223067706473181163634207491682261926248817493404686007337088719404692056832253114912225884925003975912364452088826889023303262279052534607379765146402364836632823950380983314354071745034875836914334517614356161860168473816724271020475403973615092231487494208522395397874516684310641907478267028661564912718377801258296260432782906498111816485240933126231979977307676729157679669953359650519551668052261695235120777743167144488644501445497375753504658476528274258596775471722073580626665828804326523659897223085324459051062089104590962401101441090466646575933664431051474494101596716092272633146634325767133548255531513947454229892235804735580069532877463395999342015048735508516546857241571107675584862942303635394525752114712335976865978339085184980890808094209086893438675645501904988369019514439609160950648557532767592871137174567945182385072197738348302119437814783034904001447021453482414370837161739158365983293231519921835817284796625165709570628725497693178226280627236799908043347135738812567320091993205009007589884258465627257902335884651966295544984586303761473674908254897024990064205709493032075071467992246987123198376462717286641635603618048721749710174582677786861316596309774284197290584585050092760710439960990453382259819576517872181962522656930411888484158882924148472950458507076030636766175095402539715074661907827432817668826135185533733304608115123334127676724519825484162218274814071521385638377540560170981103446949075770709098394806438171652242925154275151006349292744435456710071781212762292801775241612279608144317617151905137119231142289565102791499726081206466248708006568718925304010145908761704019473658875164161982002334471944414385138569076681897259302853039437061042687776775800075667458738476270864329511544339091519409811369696500493070837212001597250674461416640775871250537535077315753779585462487289226045232553723549220184979081385329879526466935792776211208822544813999572500473836207899862553757666477633892500348826579466490865230905294585505900171123139158756891774769468671822362141428033380731618613449335539578619465511389285002483785118887904555770367585827190514755283396658620272737594480093370710203935116994287357789717477982041932759859621218400798749199164987594859712417835722226483513737654122468769280748824355137819875368765576698578783582324887389651694849063983793353836094191651556506786499789251546655477174026371060538221682224654109343588625764123028562465819669204168662311927631368597245217548197151283800935373384109255883876766532503420055508158272340124679899670257672444662516596887692410410928743195219221613382932715858587190733817667876559717274161583936190387260474079873200434009277642468059665304161752210204274141320106424536329266809462888147861852107264232095155608240918876064594407989433825838845520571679231564343491656665199842187766825859721002640020432750232848973727189816224097254467082643036531413685262255306705225542745839228007284036314987626029240060953433630743391127262627030887991930773041310151049802257949769495984791098982077112941415351433544643342110622635747565767831944550607489438923468336776700733139052510412059412897437950124130009634624388888624290739523261811969810612382645623904933460000424734725395185937915091377422231983062986053868347419725455736755190556340292731028654513559274764739614995870596795014009055739474994146151244130481850575476768775094158502417814788215153558664958064151559278704342793532724116702676511915570259475502997844757657492459360001814798196209087408462890675636462344922795013817827821518293507058800289026470818656494020419786954553555863026219584648894535279219287742236343377561306854485907343575609525943159553210230240161403716221201082165548142601503642387690407524963071297826286306591037155802571592109376182962574913877303329580988605642020822614571482435865223513207065970818313647400333553330508320533316083877579932876590505281829838467152802739921157157110989276546294190402174763127960561036536500092605535927005576084153812027858235301941920317722426964651482111026451565103834282067121285226116042074328896449165841277361696510513141234392129626574271090047791435194266992968136342304794230704965671271266353962575068822274271216997337144108207937995980116175657311475275726952631464157240852016748841841194204480366436819105294212064323998208470105733637629990567661178145304081654651494753536305384903697321623920777889046934123546623878079054818755520508813868953107746544710930474932059237982440684793282196154389290894312427351300062480412592275693225049438611345980924494605899784283259223123358896445718668728834931777190634378161447579777386777916880876093403572158403463026565445671902178802576201588308445509134512775977382976730573712776314760565365037480054398561269146935899990335056117022065773500360061732904618261721049757951716266080958637805675291749869482966546328664794713320085162492500929282326835066561950831628622569036887045118917168681956949090495715056440503795326077095255775893468183180249202513176400383883375786694446382876767482611281629384043048617354964563362892766095842518244555843330041737480707408227196362691277359109557174978371153416487973069147760959195004174270115053188679593655105560103167655459778542609107586168552556061017451848704171282805451209677823871847987186211124951945625752677403002259958425313000499386942704892975307613535727731336565544695155388231717462734352166671203687285646995191539305295790478759366875424641338608622450512630689546287924322728931213733523967909444472429046494713150005808227341682910636302216489856380937015877092739373628558579876489668032085298039951394938091896415316805334888108247243860375111628845799212151288406333959625881103246596745110836822604354707341801701703056095718464878240574761230967889558707666198372752743748144313833787580590538641794300577950961490243257329013294262048217839886951282313529008645627407067489247014273019288270124557662890120233936371335442546718725787423771878901530948970789256448268076104668386267166182940279646831711173795229431805615912260504448529281671961347000340713531153563953495421454099609567708610659622651346145865609741700440296484223079561508968968083137019811575112865547701923354682057913214317071858419672845909124723965353871398910919745040062139653090121091436865966426971686420918131051213573878638685334931034707416244153544626777495747508973557124143007515809509535005219163479279053710349733419723524122363441414162123513809415207755209102348075053915632784405225604295278969087238938924935929791317836713996784561190274423919803970512859930677764908466316946307854166332839043561016474948684727069946598102232125703514519733093191351256207688787800957753630276322602603377784719742934064840514099570120034273375503802373277921988178558292485100968332387496115775969401552324787108797825742287275680508864705246495835970502682786602816415381552389336204016510452115545519728157119272228157349225479452675793421751880381659246881916525346925061040883278312914821443813610286173077972009479506906608126785034571225331577003626811970294440078635936257881960179321584696627726260425558994991849448672811732519718997166232151068097409934184740991477302134733242507354892272495100180137490403536785427297188179510363438407544073918770049853174573616931592396458101975837132250199749818754543802891414633826550880106711428411602280394174408183444738797812359871248959036961096303988089430955361217949887949799253225665525167366912164679949401170856115193859635141703181119656365693262070877465642689489061552200868902561489878508627204569384814463341965355004086589379161335869997850845787343319500591793702071906167702430723070769750514554359849217956016875710005522125821095935297769784155272807878338971803002773206965279791760651796228750374884418955054525256691066860924547519379295544268990103636326352273543017707667798993807431906050509970061860964341165370397539562517859978014404040088744979386828392883244925367337112024835854407016068914001519477447893927042609344363701152341831381781586229040757071572653071002663732414601754249912483937889486435551589137977684430163053093931290071584321709694064247244763873378534629899789924218625786339660523162607307110581936056246280648810213237948170863487453090344303171414749749174640712132942615062175042817281768961885509885570951056479744273362212604045739494279581781155435846567947288485620910999378623860527769016719314302000346841740300656732177202705629451695189263705642930410968835124201638930919724268923371742097920250495064113401498577091200415290283038196798968137089349301506055761741987042576953870268628124365911640750300911883945113611935035794897397062812000473614740412518913965344777149168597859022545983577391721693454453436262688921139696841286022093423192058904793403195617267454602882905760658732699353689243589747722851714664253242822624197774166153264035035462219679496464205398429359311432324000092147956988814719676457116334442933902133272576291160074147010828138297118880896259313130889912830991472134223189732374758783084981588552773783947507783278381733874716956729656870201247213659706042682417022971755733326563878838940376986975870656106502231378433966344220170142394466017758676474165266463344321471267591891287534178272439848317718879294022368180698345105233672961452975355051074306467747456924814676104242083264280038724862402173581327615070794259776783904602815494280979660503643006713272298176430666411523473151704913135987634044409392559088079428335152490257845012101341874541499269460910019707214238274866361268261659643762173389317642936388270518142429456156119466647850139319210716277600866689636010648874977303339249269724401632473886655624204967362470041644029952539744736222497767071747568741110252905760309312772174887581168371021030571684848049760137744939019939100899932198995553226587825630353619254139991192124459344729552712364587081827217230924457231794182854762542479882972296824742732098290403334235469225118662380673027203435105334446294680423918943050268522456466231375526825827263394089858636542295223065265075873905968880314446433378792089953024758359476113459864344826209011898499268688037373893533441442023814929309697846589432435077689511377620370042852028749689521849906173308849210115920615638836272547508827487313806097681330351318136544885087752189550448920629632364249216198050493709882597040548953052450596166279935634984774403612291064225119888051471802818615782818827449178098076050934389118555500271059994548344262698511868252279961395175733474081378284563874223604754658633748448655520550647925188619735664407636492590196167132124139040831461511139744700910894497672688082003574397246007873791757298907994074471806670871439955197142800156332117587725692681912008913082342526999809277828583419806581854410009648497179314219611923304011924631305471728908932201985477420560081348517034230802850822781088617894872075049550356983236560452004592578378840761221941558795998018499441815003403129058593560865380159900941863654637285616017468656583147861985933957052006245560104089799205645242089595383848245492400432753933538016455399355782606947972276834778136182742724798793032296485283778884127743692443154586653982021318522278263945227570291225132041977485143305196681533116980164182106364392211263836544034706303066607290565566025358365219875329513885261529763363343574723300430844167044588642135096975271866683301170421705324178825784635537694148344437318244535352654267794282143923781104291600165582461329584201283636931707574117300712802721448073826107860347616327822307859138093658773409377163776115947142449904316646068334445367890324608979744986222260103718855658534953026590136920109582342082565649946575676384603599413328656059674631224784235960828185506628838524594085421003837551213513819390194012359249966020541619224441730100032457289536635471836217328926464924985914798750590644751184545900527978413450529370549382315311221595159602184425143179034513562167961301320495305771957765280807789891296396545482228980334962995835997637116635773839094740513598058906612903241421565636858762909332482883366864102061057849420310440084203678662570427211375988465560276497548669358325195397788922115876263329501610852882958560376773111391781411844766000622473661881537655661969489698274901820484337905078603782186632406219159188473854338745998138234502702507904757368943114368776587591895160353218289973998112327135822971911341391107355703402139043103317901345600378821049174061672454257016535283542475091236461757225495277736135815709219106846609920755546643639339812379664250945717093454354172592425559115612678024730592099121047214989831124331515503300063274361130051754294438075614407706617856783916095785481662570393781141292775929273173831664445038553214261317327192564876265018470377348307182533685161802121303521563798912255443360286805732971801019488117533979407375615793016158217675305279543299604865142457025468373282889095903414792817283740976105348774457542893532903296982485721327468043379060329235013573091628996576843433160845328755898033995832254254153239438955790415517120644430329323968824901499093396023208828488552588844371958695226577485247778011029566045839181856117828194972722408681645748097819755409699313486616950962229543162565026608627498430775404532496149124716332926931678284315744805997861587868073887489332658475627543964547593683526681857976514312324819287943883761070307449848363689610724441194342394824228350969083768258883370993262586006977094446762909961354449634294185055291914756494732589402275556735315410029660570547984283074656318078508378300969329973336799185444024561408891001589447663837362768035066549208054950157131421804301902908063901351874380132640516810821443565821163745775023170243103542609330329241321131657571398336150947664473479330903831661708644039781482883279844511184369638105992023960331088891545698039736163773078094989366084258715008877377088148596062201903483353640387653429998108658818484688652016568088023454672010282242617704095334697966736183038984936220391455292614007852714866139726422793034642129033394149185982332729477960016541749012595775906113935781251100580062158728448967020393541220493549616608050621724096860806720278290693704547902136479401171749308453563086434931035383968228471595493268127360677172656719961631182464637713817069707770298542315033768303792516504425463375763029773579036163099839616704871403977074105535049747371310372704249726525419210969403255127394872098648144590902925033111528305994833975412497108159625054203528340837120066746879534143649525476016436859872691965495309094668759962778771423386600666125405998596455897957570052758317432385944982712652648281781431302152480202901005230171621090474391688053388589794786970419317556675568720163938613486353872505745852998945169822627616199720580440023676704094516705429546657558378793166333322878552699917420745262148548954517473914111110460726800008588103060506310286792224344456518804391588279586074568466871798603542823984493371895763497671181758237362828665263118424562432366154610241144387193859758499398206496058482145404245148277520754868491887425246875859281794690051880833437017656521929849523659870540036107526211937455283611468353751487209967087917862902286652534373704052775905938362644878598986985371947528342821513549877322832300283944184963656813793190016587628309858351009524904783655462983591227216665378837289185476049399019481520000770132159848675498827645555370222015693541667190979051293975389702453312340896540753631814511345048672219251435291198531379041046657295936683073812916753586556983008549208970566824519612488367072103738805584619208107814809488375343642104966676149663492759460465441916061288401693972081632070440865783018850556972573166786553291218529022352585785187434218722969333971683963033351472817859818120559827582826443608729248646404601708004916191852074467172280276543661593180087787881907169288883251525743434374134520858297042329653422463745319609767416606904611550482711323788257212218758728269100134753582627692184895771790498849706658809829646298491398924487567177460345891614416648240143255320008796393880816545691029692687500771464285076337563805806486436510068321569098645241525828241587187007505149059731887111469326786575055034662462858503513280189132813800261470932982121564117392994745299091120520305426222680029318122865790946295281394305392657301251075937587111010505866791804853989845605920322099628577602267606270336732125510878096175000168816233804542404322667268076830528306943771766495234620098127970663031522413971572826214321000217494953678858111458735745391010894676066159382398549809774649036894250338848088521999573411262537445210835830382438612162658260465659322483329103223719861689539540937866425106686094606179221186980585798698148723659532374621023702962746719967217867498737164591313582432680706378828687702873501048427463449912734186970858538017146905355432333295921369357764116154192663787098649491036459694093366900229512994103096346322653499800632310894578837238050216298163031575161013884196670890059454103048634292110339080456010953770283105679027092440558405163218018677930173727244699666715305839139307540053628490888992007019453207030997552127702963398889285825804375868340657377430441867969665206149149837184669327123335852224948463941696781605893627026418743902931373204806486303130424282851342136597599642666200808587078661381326501986506026198427010032522884776210844168326619575326558631233928829355707157991429960372696602267654108821000996598925043530572707964963064811827152093439684389352718380582377246777313012322364504717983112712734840493786143474702322702095817049601966340599280554898074458829312848640535475644252263836710455266978689340359667754835565187270655926986986572072550738067077710262455747216776852193055407318485901110244402120212311127945748821731816359157619228781655376642499134443615383434724788436501187045300389936617426204790442938681987658487881375591180198969758303160472572973737111720450399491045090266152093175591976568729461612793759827446593138950054812506002253263787579362871334857399954269511796272621709035839666732095011671225523922185575612618367808924720741735996349505573287852147340359951310779144061353229486576329669512909125317715520771891732867984196937040910751170199656777938525050916910572791289341957818504660503405925750687407886425158935550621904999815743153178092342870044729682539990473452076433418415287402380824692088269758710743757833303372411340533884439712447117087532894737485400758538701654272436736573552654430493238163090714558842429490941574254504126838623366349451958514365950924390515322554183316509667835987779898790382083581543019361305966942060426235208297656463235062418193993359153385495376108053576360019734455122877345394897003185872156651824496728485280995671479660694230641238381708050642357413340792335282856236154965398443060593629225340604387485618722782525670027818798579703861033480371984135957987255541662502583830655657975494042722422858166192544485776956974041834961409100176356786301077577794572312852828327073262849531810080212489965460704328623315728098201305017869284339493111743857497102712895233700879298490464011479297733588591154062854080274843212408862550181839069398173043209983415277957241325238061762928055949104874541698679454347146565987873750674802939231339349911234716046627776718934629527565099998591911530907476538482158368310769163475103913704191288024179339357844292647790899656506117536254913091006768967031490814165168289390174879647834123879267390486219177331566737515548784776522871870112588004515607613531865236587573221578270965641031987458738493384224065684841089733252350772340687283685479191644278294448418835103853472614262933942371320830983696028565757640607324212023072573681425322061070180664603891971455727788352615477378676854325539586670863293003787920954672606817810235005315931421911353722840424771570501254420054595306493783531167928645679274327517175421395649174577860601443186523544666162811808620283542965722339669898658079665585693675402553408920228515685704436189991325818198926987764673745675706237009751145953750012541364617812859793636876816234741063826159164075713202021657691487841636053533413916032926074411222742292822286613840794686778365352593986922330705495058902673194594827973211609827466780811368616806120866125642148918605115420061830507579624405188151969756222987249770521589807293250817407628221378126335700768056841220443225239807319873399115175782558652568727361193473366329030183314019460837739473600046214070912877891096129078402222941373512811305489143366122955597179815613497813384419149913277031445366025333809476037790751883735355560645756167120181755246934763668363452890424487344634542031159053071046776304831940641526761352654470676824718329839627466053229637108625206900026861376081516705607517117641222797857039217347179737680805834359557155023780909846499526284303629856398465418490606492645607274827249400551409249243277094044651790874405246595974843930738602195213593153648473950086674754904651963917788288786401710694441322523100188678174060638951341818907941928137414832855926921826636532274016778540263789178284992379479337635408488173464208153964681813792061141593171963999522363484367622800260567319766652961001886030840493578783096454485670689532489033522284052839888905892874749171026014291790082372991382804535504437610348121238548022678282224915773956614361567123641940392593630716190449131171814003014891273040931869356540431684860834905449995033934706002965465810125113241247609236115443706771171066356702363410219940413233472257437381352686174796047088553450668318534511225244793628185892129062381486291122756015712284081557839955782794355922992292530860500789372960570917793297347110689108337511417975019498839980080983580103314153113930090526087431575163974580573883331377846876263932003239179651118527111295625841184431378179269376260346796760580709043446060601893202034387814151260617167638080070891701203672240107912390526993264886161110098171576780371009997856475434967501918502407625702536097482555154401145503440943499161779559067143439005067430996139620805762655426530815330228393093669789457651042964683411486823837954563443899969096009956459161033862695483682739628668239278839068178381857840864996357266542517322774394049342817832738527984041974887093262753164947834656065473808070173857740549618019748892023845097676568654020068229790529282443636551979040216036347996868644741308510632632631772205093819113991626335352220826750511693686877640935309121250133569771161809627453142248361632185800883184063316109322128827275877532397554556827284280268798407427738746988037374629240027667913732849535988810909246762716644329474898536552758640262360765205908314719523699982686689744219391100592289467522636020315074236571583430506524734280555354531786575789563030063791413934881480865746699474553439861672055306749336876494005484547201320381433291846311808832355165285465700239930850684717855775136747419086541813268849117918673163141531166202186692611585869714125238147923858920037837760160751232954726526266655867789867692616722283278939549355732700815427729125106546198101497365947144650888755492844320938309398888753527731801243674016818554515435232919795993187397871944048333498318598614836452902679198377361461563286249527829591605500506273354135789118317153736057581002114486572859024384820169307680581419151620666638484609881007223523908284745244686158926433654802893167938255693138957829713403976727460321391884577263385657565681556013251099781443141551633813693432029204729374823227277156138940402615217179976675848865824057752710419856858399848355919929314676767481506098062767083080898260744837853403677913372767456635457007405596810873727517756032887283065747002178134199893717268004154166623175310276530410774288318899079661950201082785882704753548018709975998705666668775860300626597293130894417817824279495503075913913086290865671690209783381704728822639777967508912559024441206361571568189930532268032201733116239252562534502231776930177902180960215409513693105544983956633948952416332005894474393682007760079758918464422304825499677332337601043607537451416910385767059621827281767179759986252513526670195717291478024097326983881784442470332538924217039235241477852126660007941287661150115544918418311652852955344116057912462320397024895220083089770477735207325527899850289722444974601047458278369254116964686935302442624941553879935418693041779338681724956232537286541091416952110152677705520906202452363226585546364388288554726558058396347432313244850449929247030064159173258612824330490151735547447286355380548103118873181694458955407139350840651612983310902731779908215848781914506325450338332819953923911886205785304048314997497208016382722574211718514688138053867110185065695947220106888805332859921010979345616330778117346573608456122014499808013573215318439947994328932822091297806434175269076809841631491642008454598994643494785400674144731363496834282925982960810980895469364909781554147593152157911853761885371610790561029609951547249021505862607305281699879926950790785167179304295459734512628316810618799599307547969907707834852488059275145773138500000532278394031371219776336832047641924764132795712977669800032208206572154063271681980683243466606815477254442373350891262390670339672026222040544487287488177639113585106997976043519899789349357132902164034104375304370881820837345737228302408891692571927247640060384383562532484300848113350397248148828384648111746386032117174242471650022768090376605404375452131966890988096563464687104093839396909607404307691479611312861582487462431810639078217466701680429499445703853144006863109133714625446408315038365081923649646756216581027331912267141567568270995713688726334311022909546470975560532236722846840599571711926912216182737382587149041777929876079314315244659887908103988809662448503881502984852391581282601686412515080728491685816000481764939374709083514730028687006221546512842573079134762357131662599743877246766307478305166165874116876031246168901746062973032845514751388552682034202600848408964306965130593483057932209793212020117493718784170872577390001466982566936798897238815072232935777465012780114668742108229905968335288612818095866509283021786501466262372770805176541213101931319149062865591251932418447711430908439922663936358525523823605172247805821634138014734496157121626462895856913116114327474723185597575520554691640349995182980743495076856909361811397780996838506608224568073069008225971571869872495012063038588950392719281477738271817319933180703693370855627837205713912522181963140907064944145398381745838568066591871226099007760654578062664123366852674098537977395313470971609987128449714769284966690531055218020960797650642341214052638268757963962458915460182716169596556945359781234824150720105375148877459693552997920210188789061138718536098842642391704796363483803621744535192977909355087752318601839444555290620694436130805678048005235151655540946753666697912879002984027683329626322786615752817715828478037264677644394460866151805855634539254158157204693533705627749141715940116728424135356043842977115489959194459042831601864511630536876046479506630915962599076760227601359959915606737809278086141500673665289263419742778170287828775273325228331534935110343964129058176951228624651643684538465241777581851807812058117932854141354398717097770054148993807225282543296054560117432330054116652759215164863648524325888296052453975546307186819360905272412429093099831893801218843527810329268696060964333010954767811321324478597201149379390179527941640921150660819128386265955142193851954315105083138389592633002790235018582994365755591921497685501656472801091623440820695367495585046757589654773133157752808628603758845320342078439999217852770793421149757610963753025024547964513025402298410294081768204155988120932855518995164354948057160490249673167043981922289852464178631149723144997846708075533859938182762289083736950184625270734714299572957524604823227755030771974281662931874324046619421867502863893087513681542348645191889051511145161611825813249217153664557818482913793134628373614363919171937957490119398647792358462774691715225600397097447611307710467868638659294057017004134302811799922345872351324275645556467293303975475382838375778688900961145004774842072222434883215225613289533821291981940465834151031075197789882738677401363070311282155422834826994582286256523433969073808976297352388400256476797844715573310048428711772408119553989059392538814481803245841780968651716087326051050774513350369655958892747942386715379528325388813238477641849793374487928549613433156385882156231807253328635511542733790433220247743973747795786644280853733467252004725698204088993418435671705957034008981047791136236477781399274019595620183966142652472467467084230684360478369089668340444213160512836015668623293056843063678431602863380918926256188375478973465020973566738502713122126195222385305260373228124220841959924385924302409741122129840101541257418669184137095883313033033981016014577604892055250933642570882980401917944577822606678839906218735043668461209171396171509070698589272181925834799393730927299111037323929685253969933475708573096121089772211072686524377583534206871611242132310275373404810380463393964108932447092034931293160144038488534818372899563175126478418173425151930554323627099763420826952270014189194675080591833459188627537445259249864658886171297011484288958033198353474013225331479308968303987429022286821310517516883499200898824389322056463752826772069315766982349449023085501078493047366036410425557071057854003647483890891679480563868808646281276082199713745923016479618529923098433365378519920054402058896530017947668081137117899785095204267044335627536377250189645278061057029715002174113796235822524141054522316009549018099632422711132233600704109748539398077845207458429585752272859357529135845537135006136424559073802059385544939632399484494239445267545810950163002699210519790197627050477510574867710342035967379614515389803301034352827803837754477707181984582216195320514483938398954218678254798637189311143231434930392885725561287008610238215392723869108067797191008009267676012823117961079473199504134316579423323078608185214683851457122621206411007667373172047118639038812295793542409330827758748776262401943367917646640463458032662673009336240655982209286219098272724523440229993126159336394245188769607310927038231888378798423787719698522052145268905462235601367582684058662803126856304854079690600943839438708798645101272558545681292806256637154379659307247828856410220281871500543065715574529817493792332598258161909699699626719386700102249765525665136260489500026376529043961390857676553977286705226171546366651424024193356597400346826608859426677034494131472824176269834787344951783674244888383435293672172270170525265796231803049471517547066870808398097553185905682817813829903256518147658304737924394387071733202203259944850230660343011402069046869334587578106808537306999481603821282467490674715336998992787233373459715687738620579414944059127466761055714792123593289241817644091159680252373849821572280787318637346242825290635451397428255201541587385544429054822798264021944227151121787252769433690557648530687179804919837557234244613104818517676154284167647139067137881966651082084494148852940959162620686573175429261356599217376981747249099149965945473093122567363571221819123774931118131718940942015777701895713941681123565080865498480936359111815221433587273598779965272939075525000331882234904359456640947104886742600936562849166148969493699708965397309914794365331662295740441942787622847111862550996082373081698408485567854818457963889790205161064050143935569810355120596778607153452610481025388799761431528432897388611573779590245540804036639065969158453603549184830980474394028417642536730569637195296648698569113803999976705879326694103674741908012475770968415664011917457343130609121811052383660794154640504617447788373173190638602432893007722227029244272198383700788639647461737197541935691669967127760336645121942728917083303633967870370876664494350502583979399890186373063128949087187368416939955737067426467004273244380743017199859753523322908428522043660966607350406762598172267147163701423411896469926848120051065393810216984151313536557204888002555601065745796850018550254706089392803473676318868787679961582964008047461583365153997911044535204943468290194755386732416370353403699694546304456597097724314215077690183445218826120782163482023583596111386855202392486576527477904450375979135283126913139529708227841258774009265272609691729588134753417943961094229456708166881500402719549552570276949553332868212365333803998353441455810811173440334294542934418187396522646049396486206136113127310433553377518222418006161921272396456764576653199669800309558917211702971694953517301590184364996099094522523104705690401279287734511205288915837179766180197691970234834010651482707535524711999562902604096341120581849743123346422769474738840747202336322443387046965879722403127587989325508360743861160532298372186965542942584365300482467355246701334937768126873094293035423728263248831044757494324181189530164113501579782922153744332397856645814877313694220784305286611616325414642996160029414239208967480400243032066291628625634139236244773680254120150106552709532323899471735973844177930619285875881454712490294656883982687314557198226004761531496036733959853382844974920042504016927592266085608701751680737412428323244306082124964344562874798486897631645682041571758932728528289606362152821839946001952441632144443533812430649919817704913134719753935155323137810298531569076497180816014604157434197359321065768493240588322905404770038752825386690242065625529709592964455839027717140118735328774156814245395162999185466702577447991513660543364614959693943736189420871640435769911612504449946212693132788539980759337832508857710910412379228209314764549304642652641716528504247504058828959220734129695677876302847890349188146203057668975952575396442785118129593444798927122318913599140194233700412092061557688658817145867917957085968241835200969060704514504440301705083207349044553981541642574811199233736441704212694684818392660101830789582465586890621800934002013876185596532474979093170410681187994640958704647596598273800662041598125922535783680665430558228662468471529177428933935992945683684904039653031802291025815971794631689959990456823655510837687330070612673182302946300529613034232823668191803364760679069343055442065892691300806434247932666451774422896158105418999989500759092008440375808650286293265798788416264671002013943587646174228740776523851077555353393306384890358435136400859877260318729130704336405950960906998155567467235124280330516132767096668648379374130470160162953996443765098556866405674686419236575270059871417948732664537337739808133342028235354073168427030659231121983112652106825857429523340652438576058612662579387337984172957606824544738730669314956299768066146638462452747165819302189486573053321221753105081743147988649136818925728312849140284752259115896426875530160545457785318308023232711088153872001942119499986023484652112041718678755375702843117103354249140124540165581813738370868463711585155414970034644749088357316102421034955473886026755734554026301183865153045842204956032488235857027397575229215374255001587660763379513572347958890539000687443225357198447304804314431523066352200788510127397003716937577230782810422211770279421377600567109354171332205571885090492281453926306670633716389992609965109095229040571043614073522383086129006000682014070784615968372872267273553393932464945487093481836084473397130078490895425955511190698328758051465262065214302210627659254846814786194852531580414356405422005815846924835719591520550128825040943294117407460670670384880648967373881170979360277329586029704661269119985318898477301052144692130186640656115120032605144846844729282254516405625188417082719756154386367543396774842607276222579896506201346263355978902401552170506768484803691730759780238161787418015337278327193103973232018717578252648751233520420355532022689765805068544478838751143869562156985259276558976957440758754570720028590439415098268512338081599833717419647731441670531169574423749706843567729917191058835441827459079624616325729877187039558957806414884628004112776492200470815101483852864819121270128749062719890519347215190136949278029209792949306597941566683196566413932167766188007514912671646661606919679169648019592894567694696384043871921570429916396235695963931175347215570670735082282078642938037252812789602060238367706221954062570418720816861622617864817955403713021877915062743879352786108946343125673479781453599995744212954865983914600112119603521026953427165340530240538120203905584875082668828319199300452287638491254545710580526744929996120803386996648032971303827954969723024305618679614703051835053833008716864788380126059080584174714779515050168683977298925828810982055092530816959039538422165627565444681065708243970178627305036787864156757935303565853037345848927561840785961642519763598457132725915731588368875041795889903476696593417049303090426344853124820662418927139309395868205023654726873188239483797950337820224474809894052870614315237638622759926908376613129411295656424428880147147594056050344715372456154638192897383391041675140754263412760765475931179453035545588408972813299448846903210392339690732526360003281188270113066502365444480237271222924627861126194777218929953656157934994066508162627716372911363950512881097752092543874155331714477266686409610340351924146550616444948931582599353783893866250763689747559677440886693094818254342036664303844042748534386902326437430461259215286711936635332692401602559780921183322289999991308017353486919835832835423786375824504914103994639648548943299856365673840395145972829423443932761829640646612851581957750512634236295386362916252038674553703044996562010707996576906812967147680035441670676077943418585103350418920034049112696432562459551097682803835710594726186928041322086042661231802209330569818657570168385008821119210176473328627249863201373595245576780536633257041645340455528030772474341711342546882974393425806977287428154978061289076916671994945243826720399947001230472852131855431009492818119872885608635069174576354623430751925248744029281203131989308341206733522279918601277643940746210532576670132745238936513733529941605348944988910409544753978629798537788724230962545755028612645286045159512455009603849612027162066624664494681029428081285785926336240074995276449166370642374550937297902577903065002179913783933423563665681244064172806686236138759963729844218416639343966916636318038954619461607560311208846254594158388504326078782061220496166536595962174785366464121998624929267476230158197455474738972844168632854461942732220972901369796169484773538734557154693338396669736006882729939187123598120814649562608854970372107052769012110704082580901817557447175432722301299524380826678404405438076751158748445392926918410692408252430732795712060445460391954445439744788933040302606206883012270318152807635444210151874491901478418133721584998389586146474937727064743248697129603332077086428138362132065653547789556047155877878511720133611802846604434733241473037495124404086898766062964474484083223071133189985806671630174484543124652792339323810025530743991494105515598636666770316255244317009372503954134893200607666553172638709941693185604532372056899088913918889516965175938585716724974324885319853683494716891395739413265573219828628520990138279054421303520749269980450776790124553316354235639520257731795445722547439238801372609125227643102240182928329405820153251511011100967120656537230183123255730467216321259927328663051098131163987839663536683094760612918783078069701517479389611896871550233782302445666716563172305982532618385115682629445805442132784526648859132351481577820159347419206367354828730550964617389482428115968060717533168028518767921295895758725791798439264096055761056216267869059513068934807052480363400692323427490387336835882037177509263308899423503287560919706495965669707095152827455146911948662176211432846299429925676796802542779509337330089870342825609488035101185608914491438640601026927796838058271106720322447306849552229904143440844569825538327021502885293680901484331392395153211198886181679395009508302174287218391088547003163559297611599690899476971814507301708785351907717467467194905313052099104853765582517631721148191700697041556372296367766457060288783964099127816614932959933538640534867559454277755343969476253022774272943595738465264710291927132879442825259276942522483162241002597644829393327765562855460551112254712342916913618571079393297690006651301960849142399607806948988908697284675980474420244051585028486813259809711201830235714451341869735315236205577739769949837026051064798062986987639915075379293496792813765475748556905218479432615683626418875054283708537706241099919574437531348401782069190629721901443793829924327626276153467409648821722827515515189719534079531204105067840790861097953453222216405324949273509833113714565314102153561724536557326490292890314850210329569825981536586548815323385270953707875451592405277493734450988317991368049527813027779235380724075322432329351720634372607493752722147603605835391740693918489245595355003000484535626231152419411522988331366254320348497595886929962466897816926328690794709062979889767806558988142258232853523447026427693696083515395971518824652296216183592853916765050491236203021808408370610967278400603263403397913702665880017234202090210493799668772460904559683418206949859379577139487543747054012414524323380167623466749179818462514856542702114321335528174912497492842603760014410780362834413006314305979655368325273220325495832416579153309426248794348409584705857842969331231861908290648686455208396057535115951159566903287533485577561672434421400344632215825233382789792260287132521908430239086553298967817309658826040561922498520720643556706186346000605787554118056319311247952027469797537031526541834275851214594613789659106929520753540563201853879104884097088050643832104782833336632412044396728304144101395064010639605845362099428785106625533821790287744840911454284558557118078027816343298796853832013782188540660011961072599297848914791344777327955283861063596488690203903396103382639207029931673691254846063198986805765699811721266780350462083299060649197213735293001695894915564293081511365368732494770802690059980119685883278416752404091866075496298222261615926341621191949705846892835423384500467161841187519758122794030627779899708393522826233747817785621158144737479128571304260291338268071028565520550952327621108248521429735579113714324189910945984940364748473984346644933931223081051568156811317269145765263373969355171814510460720719451012292150422236239364548395988935167881790307526272368675126516201787011884129202567001722691704179699742531217391383263719072702962376325558613799125166622785258572935417823992103764305585005830676726120721788021148462361918379068224259990281284970192822668367363276485136660596797278790723818453448609329258663728571181366154844558462148641962098369449942076344358749505464792906820674314825306584485403122820370000136278723898710311907792250642596421638051710321433540129528799442972370907348796262429096430373143200342913966039893314524012769208134231795770604834670481036894222383843563226723814084369191464546826998482506715063532331755504663458691006452869198019892031870605047406479608378168561433147288133043196077060962730804917089628667366629442457487784863674602541258112696412281193497057399881586577817217007228066393311568152469608151385760272042844204288484790944509950543395793070309637435851242603870689486968818851796648223719678621270736169289088100507737655767177490565597528262461080314958287676403490588619985294450768761519784530740442850222989514275752303119778006580378614082634174747075258929833661809926424550245965793593604691728489896448370784063307455502515720516231452241974130290460727080672841013879079624409948523026221669286065117776874315321644334101925066703805109825119819646473655556486029697910182201680575365945650182555584388514709716516688762986147146783638562310062829504576691350155568439674577942340595966162684810763709612001743849671381812623551141891905717912848473536680014909565229169004371619033009415180412098028679475022629038051109054676936014960594672428732174577514091809096841702081213063995824090918318533996025709843318723947221055421739010812220166162510501172994867787678898726262356354150208977700312402941346943538143313525496369865969153414706550364675712322041509433086514967293372885669865085286315223286134270628223586882750245792814693286815048467251111627587973294598066835555714800108917316903693956575880449282621424967817835356968105950159125386349309781122142050933331318083276125604667902556035123437343372757488872192975831892276972223527726538785581093668350849785237421751293196880926987499952350007761794670877876635490278299885577580345087488629505256351434023440042174234042910586727483232633799152323410245774252806688801214906589272677098798049894337941765574924561000937048607399582643207035571792419818297774012061137055782564507150380427469409422436806218155124821026659050226870630118641072061998869952733889933758786750148455046246494926111596151554782234836484753160901518796795662453753454123494363518924483746200441669764236955118172465062602002919009045907565772594596911115296182940482025598662048509986634979789510933229218883027712278593034593566224752306087698326322859283758883972378807810151191917281555619555827543905343153403411545195133472846957844850392335402990655946164656827331789726786668113998971022726192124058474999550964975168450774313284448498129065493705008557466788504719798898662415412749388054156952107878923793324075618805915222101396493527650091146269022152601542789116620308708324653911461453516630891023711969939540476253217442160761747927867229708897070461002869605823057180798111252507806978818186323106842414849153106188078747554119343964555201123774120505016423400573217187606839671191527541769162687921571498308830789721667132693331047081284963446051424038593785343447432464051541079989979811299795200260287645285894412802443602917002986895570270958230136288266686911016169203304667917085431036402350076708178262913097379662051128000222372740813384503598609004725211417983121299773566204627071138224074445359961985058679297011524093682422429690045985811901947549149548589499125908737432467121489071189066082333017598691204887630738641062044033173455446574496993539165165018424064574021522894404236418020666962706714350950518410440377306818085194649110608444240592390052496348028223690411844914014837932747949181655604555359959588104660306851560681971105165032782812469514260859621649731184934216117673161502791297766821508266196325531134320385686491923006004475339193567318537243289346534625829424973858834321960422164422635515610171148008544510801912203755378265582163641140694606793814931285932971137377479201050689516473729814004638961145251620283113697210385780386167188933512949092747733408346958584552518053735825875644569322136355436775288106582791324441530392410826436599819564883829535519440184852335371701135239869661506332007621134425980870415579840730316757402631268935931516846672164156917527503780440006165366268559275465947659628401502771160652980548912618117201920195897225697576340388735380281601549607905199858244733826620398875931356777669902480745925877171184451250039338860816530163942939084861751774816869179935133170806168742858738883876567872439823060663528373033705457838708985139805962722909665373467459872829242918259460874565908169805502202557772483980386931272446153500954782320735821962348453595022174777343562580494763828459405136265306636001798836754543198512683423437229365249217243386162415480304936733849658989193393587220580672613773061127715678365568146993896535975507756793154819733501928561577078156710216799340947869321606653957266243081980823582192257061616995884730765926123749339907054186654947620637822150959385061123384506739328921095747811281337073393911105441926524616668434556554490522140968666290433768306474929611156182275672470454661006867714296960620680734387642392398454854958435906779492375475501907361679059812566753776528515959631377573476407616793709450338518026640162812971068807267360824086900595402122821264792089452409019502943132296340036130501519413124452247367474844192332853368648938450874081804578955918151503123249096603172655353410477823312470768228925187391926555652203805825350812036997370497584178687832200340637548386819193188907737509036209664179765300230082129168507160943733492603438342837294238156717833050497657659496712289576974483218550349659833103530214864257193685674018078299781366154498293214463219129547957675350954397410703290115514831052972965239244107663235544109372747679588458248196377828150183818480919167309074388200274395889721229135220056461443420929217356685273938037605805877586181659274062417917178229351006173886640484822899324579215488921713589718624992312720239208111479429579376837701743826740541434948703279636579527916029579698654568823817485004518876993588643842404723034808645730071633326112989590730524722367156137465562275738276526017277067279401449511863146478243575431701058979453992072351587770916095131540476404970804361613392179524320748885787401570772415144751636047152573743055105049072481960862694877184894457005763442335956438632507933847458504641616665651368613618205870579165891030672273031199984249739904963577962546079145033952189751952886651652533288521577166774763664645827262978555756548045271865599994691796726424256647771589128395008112543173458196137359101433377734029037991094246052071928021084072915145778061282127969179759501580634004583602204562997280696194618726547422892115435960301154798724226350368713479791585980718910734765061357327959669434818797970779585977272508537816766082180684322229500231392328159629400949043276126238270343179700451744103533367309685053923614457532674406101551551402210722018978152915022150552720963191992872455137286897112846359225669284961878945970567771033956912918158286429977382136036952285443568032811954952569079685807679735141974105569687730299737720785285297728130871640019095205428358302045282950637763136948338046136532982865909145885242415407577756999117024144549089107727097698500178335311255105725597888712713886534337216386243486614497583042103693411107061929267001295940007788243461165643568199430052947711434160128736272619334918562829926574960732689570650915666283767827354844535327880185712423726303936975115407268719059294353746033976876781587273986855754116730422908954925190717603414852628406782094287968401576499727469217381672677410307799261747301207743341184114145752098287400313898454766914624433718177583403611132910661051616580075491780025637832098441507765610317355594072266130201731024449179164243830988451209286070897060955400679274378439598115439500014766084635827953058484437062434815171730020697453279625277997999081388017440722556796020526807064062932176637360463409502149778889099146006523737542524361760774935142609466739326946538226196614061903867209787694768069613364061454023995046413353398840386039745080306856411933514069384867173253856388951294727225181414466831079956256725247825344849632817657652485336560422127314922801421621840476862848786865278377562637829864476929672912734981519862544267253951213949981843110851138863637497851679623104621059802979433064503855666894872201627832460352191534782411299041435678400738462318797836257596323890129305035788237011052972130982099193629153375028140307177167874766821852359687886761558608877718689188929406047794352819547945066445338072506263915335219428385055729669468090052467798745792464532727096082710694792111273254747534604660533002748860621005437196072537896215821250409202071899945840061853810013504900240879554297549543256110786130605564840134117890532855563277606957565798960181823004998558533361066710434582693747120589959790502881243601915069724874551145132983882525600990313575284357163347762983397840212794518898757105813051818191571294861489665080647140875815666616661570159634258775805047048948253689796543080738694993973455515776768131479999885546030830320805228057063300513792238918667976063010142257160329535979268405047966691166973702232344176379018884447209382456937538572328158839898446135175850822439008206412363274234780994915658349849962232442150526230059783720433093830586520916396404833753483496713634080973685766623122416539252001364680524062548904949702763577186820292019964711507872721546930118411993321405347302477519037154552644563093685169986584871922963447817541725662274840723852091620370803104145250283074082509094674604221150576576934276082164865272101589723070668532141707182426555089754453535249738092314426919844662143473968438541118907192080702682099903250274532392695617542828682890192594566217576912933985074625589555042919976939261403356427945722775477126693992444502089431184525602106486136090659453591941045684689047019210274137466913643788266488894890808830104544798087245269001516316723976130996798685617546523118586249239038636212837895213117506174725292136638710158954657986916863114225957434262812898093989429610201162396498378411020851479917590198881943644146149929654246823314247851314493976491515604194896461942735174136283116770481778656498066908494717187128947520115001909012965072346144979959641775757969353168900676207283497514543202417531510569464461201809060024902920869722984975508283734391467164439699302114161941968874032534422655482500363888847855394263939442724803784932303399892244507558697793507896475640379663473686985125302080823716462996024177775047389976917810237998211162525797859081033731973309171950895779548696687327416725535313187763627718740945216238895634860125441648552224926882272035298608806109158754487230914600240139002990402592548751423049186016549223266778486650624392599578393219799430650460601282524661812536226781120885049004195159913984842791618582841199841107760223926424251313053979125438975775277475758458519097213002925886169772741573963314597182140264811390516958339584932157333646996276550071416631473403197087310994960503957102666091179258793707976924542388970998695452082482129653605990378513890604429414617428322973990294577330647855142327542260861744378126840007012954245872713081036670401541594019969767126324818115276684751200873155402588183443174714748680419085314228314828679234084906598437381968611996229851104671355053609000499412577043704893272801135856149472058524198172977427333066940734565004980178850029887377909107291305379906399063323621639986812784545092793967389970455481814632984084779861964963572795866409442317213920326695269527208417258273154381404929360695899882020650729495516775482920703095613438735495010448538370709092905015307697724509181728503372845345331485737561120385435103873960320405803642180666187633063475611535075400266059530098381969848490883886489886803174009582054158556004435895690017810223344772877762712010209689144019658540863078670012133233989414455511841603295082617565792415118231881706122646367175367800816728990212886798133445187169177383781484953585864628692198759540944837022288935274439974362764547398874923306107278482614342381801175074077742475036305862250485199657547776610152014726079264624303257637827383729657896737484506231686550806973553416095683016179321732512797586662702306745832558013563632573661308497085224423721400873061777071740129220198701270302387232914480168680793187442506176334721099366417194600044756108009590512484855287639529090341526592075951194342049936583398050847128494036471601219543413986822155159376811518318370653145512559617795717014857798173488357741804646175688685012959186829264439071033624827684901371313712362256177362473357814171155756493285175317137731319717594362403784741041438299107537921090979975718509782518527104923843348836629571619818116815447361056993985126612477070281730107842114170651859241355905161144764153587668731155553833236814650271785616330430510284666619252088380339295164784380837907947731734815537988207713684393231259358110793371803755018679442142736564235744087254606338094337086187157795918087169518731526623794001485059427142964297351938252364039486313930603946299553767538010334567198921822648438762752094055758832188082399319652185061839403519437201196810497361147546658380378281740022066751569796288843590104869060803553448142394053680432811083601038346792794537840103002934462441190277482008367006092395456095020552518365972784073799977104499610879176384429669291456620795717095438072452716470812152248330461864964723075398474387551200862473463735973346806496014740664029228147100733145022190542033322951742747121831124089454863825294731891570767139492508310695965284769305683992870603282209841277835456630931699565339401845627133891690896344944533236288048154252950705465759391670553849825256479701541358547828280696001879425781681321929456888410637029842641223506110959797251081550142590397477883130490718317457428514414392900509805006836454489441860345275600344707611998272273656814586294594076384102383853370773122972006658049144347677205885957318394906508738905619378548594358025489642079766654935830903581287330576635873338357885309094512127068477246320644431240605442218783509531095594819439229027567991710408816779376836033977839898183678149264221243569004216230363001258324568426172318843760896722389018297607094034704846768570380269795878477487934341089116232222951504016456226450670891916661821128434559866720227290641072528160868407344253467561917058825018998945825854868791924663807227389149720532455347455492156556465480213003591676784758030337821800760746507440969248226345907623575074437039983838996426930595621292520429700664366246547489695263836306427423300834245539343660748137059024290035448054135121745484366013606588952551194264047453078500311396162380291009167292674731954448320069796253132614223836625748280677803984020496550766366779770800643117570153739191722379092848007402555815890416680730402487871378528308128999657291116601689344836057305571316864369597060715510020644224083670634650465086879866289171520918829781912164179447612609375287164611336442544992445669592914680023428067127266887633184609488179970144290178912695528345074825708728065342218627133456245381176474042518074728924528245155199790718040643119766228147411861849326109712399430837392658995657010789305542918373919044283405593852236575165097495112005578145277823035851155740100158720213219054010492980306048399861088643049431068774604564652023950567773123481210620418526463060095747569425291734499389586628966645187712904886235996871921374255912044666664369022191874374938870756719675445441088252529601418230635584051172997996739421329013085503007026832376544494430286859715931032581690086474604466725036302323892263891533442877064583244441210384821924104632109398786277987653697524045069757386879936593552998359265723186163075121316750033931655419450538322209404624163423500053122203516518830099598339532945259221907098963653591808910327791605918543177515530770705933988288494602532066245753455937631373097974501960803625689551524131076708371453415352610064209658472765475554070537373127608591723389914371520328492933906646912892092488524802884339631757239585556739505953826109601712648742016527063529978573531250114754262191117290125351533842478297038815517508720856115471202507142425699935174518800247344302679757393264527337955040759097866912595666070457607449882737174815863825759919870962355091364117399795030408987457042223977448044062670161493917841908942231459760126934084156425116528203763347624901729586502785374386567910428488548027879634127599800529102778775159017273899421401842449352709388404404620304324593122730690700320653152607521976663759833037146809559005978935926519419247440291213374627185223992647521842560408330261841088519964398109813773253193225324488468367406187767360906883000702729540789709924484276025162440399471586824485166931680578187086603440391826928348232646039173181976560242320457298752391377600005446773616003540062725698186119890638350233170316808062590655007619705184877111727811265451246868928249992846822739478573511243086807002724367948907154884820125651066173521130083724861855491396147256328482189463836964719571059474544071138781573388733577766966821237822899464875643652927953223162071127390858862391884076245708751678294487730354816169243002450211894197869480036608482550395809141215856335045278743398586708861609166642403259257763160670874111864225912326402392296657405461532869040226855512015806948088798363633828948706644247320060052745776392997123252740825206471926587064293231821084879811628594505918812417086477591597981372291507782031130769528565703171101495294522105317004995157546008788847762177648944473372703148574941045073892291502608902189649922593100730977020959498679208977037235785580105995609163345149274249040273088326764818382970260809820669018531838492665729990810148539144055777892439636589491617340654954164545120524790560453260914794843107215105698092819692248456185074957106022547553812388998889507749604874037662236169786056185210208567831984296097281223852059363415582486905793266193469230715927554818735203557750879502089721083263796272140093523805346667140229067075740666064437501310538901936135272603015048446790422318655118020104360457593124386300748018486677359406501313528469385956964481621852775302553218953477911009209642192905527763725837347050163036843859355397913836825338283718679724575963167533386223189110899949856892070801389225225325569778870083020941022483443260327064508024110558344957174907648972327180218133837187050793115883671482828560459127643322808692068648486904055023953558747928045605334828521778895224713493162307537382087518262347947023767047592691534923013866734987250834250292694970141361200775443734612059133686893300683610250048217302827555030390786478483582888623259751164815824095958590365834699532204450220376107279800607035794451174870771544089114290293291893322544117508482522292440261931439038752253654962108273834306311224497025821767541280481726007146901021240535915973475877638514331954249097582330324008355768165866615952854930280116480323265266568372071678522112612047939890533405630441718302126801269092264742151085714604155990435604718187509748656950737004264293173521392188695077592516144376353413906645644826717580782281538939557471204441798159891828865101045544603139622261973177681087155893843438896775189961623878821503127140563402274812614722900626663521320956012108026606996582238913109927386598157684916379156978322186619358404187428664409681685576137395147594081660876185294122769437007174711863508674809999406761151696372226713892951073824402257672848223741983680222081112894827465091896885224817732149365415705946778708894948628722134301353838250240379771868628615871224522731202980902135485597098045485292310915107268679760429728347846033737102457332868897648837695710156864665945144457278319008786110373614423070161583174290274435798851529178576649237232336483629194048514311254248774368555730058090342713272410223045240235526749802693124523874742938858610978149700112813253424264796371893756346534798350089362098605980769456860593683276179407591068076753892829156250012118744168407001692247624445203816312148452473967335533646008624887611999480550242574488147960274799451325012458105198538726038251372891289524364463131929858026725548165038827765349567964086189481701602929618445780747653452500352929306680842035648132849183247242186335007330945121016315860041528014003978677013006845601527766050510835287840227600853187504657469670288597723200158375099645275549741480091771875612346085075997082203589081851554090643418012232520872232397978038251589746498437725218004075087466428807095884694762478985557423727154118720821443659401831031162525588413311827693366881063992529711443949243806364477093170621269861151032191009643681348169043453419099495951178063052624579681821286397019216382679937916914364821134893477357636248564323094904501101039151280381827531433630478642173096511400881514057628271123611364937150403955839454610522947655314096943037815447677393556615528600635926574088814161879827921525897940906485953808791855151945724166389300409226877423578256744231045134007686650549655363133488139669377235868154200833685785244213162756557552680890876171961785508330613403990644363895750473394559858006160031183984156824817117057310656509042817975495038464427546631044102087325122886267795954160505688180051976103234782538792026097179454070011130526457457754273069642644839664876636166887792539638135790609342794164893982061096214533536273886701306011591634397935746650123978314783990501453109916759187054936028048792005163600275288958989933555950367673599279295099638691522866549624078886784998275393803599955638911538836351477457379615846118515188337386245199602540827379060711845965314149614280644135358711155907970124260775162145989184871310977773764969514226278783462913680819337114753736571938818136229318466779328363809421168474373940100439419716403420248669383653368536661280537847603914129808609922752852388128969921580855884926075995472750113244876357113752715055049679929384677222208460968612924227216938123119637217888143099184006416659321361988377180769653861871040119405162013732077431334492340620111560591945048347182497014465676450458651776783810472302049598105110880290439322413244047839653418775765444879849677622583672039191492465430987558669795087820644164071305765366486174790666768084889586882991011141545451089789349689394760292850206273352554680015329977253131047720353902731312822864282483613433948432902733620365275659882764100627938289075879859977722990815599534131451745066085198971572710737824739065552089684488360148586911873945603614150127000125097399808736270741470452319267172887940793245912581482846907789092887612569862962173914934311758725770863693666911661675198873725436495527734841250617390921299755024050926256217494754965261642277553751552269922285984731531034373066771514817349451054750726903916546304136802169026173839669075890896944066746973170711824856759411526259606666348108585989345870912067768313534649765461482642973600126116168647859476238436137798680660577181578792264326723998284817032256255466703495366766067525108675190145250862432610334887481552999881057187914326573199545952410531968025225980197526555152062899158281471821977443826662428419576714947488127163937935921049304056397061689233258239082143469432550670323385882146115867411901681554808609055310547501502459698109240903693369647372870954467476139152717154447721070798898535679231925713528906890781596700401347129971591773840425649186101813715382145081456826079072501003780679120449494259045673887949399564302914667109960217674673856099257531920192036024987591375948560273004788516359720242529341231826767522617195154799034842965467036671168040488223983706272161819511634747821131155421465078586408301691409096971351120301214174264280099934431751183315674676477868767998705526611914362393902207689894119444270080230786130119337215598223932110875079807417448996939165150846645809367683245102108781404869917645481409914853600549413698901703258360498196994427368519474241237022785056487011700006554232147814954990625697527641730533964099403618839122080555879346032708978516436315820887043997278126853237675918254423321264014217337402098687070010335642105731198782422966838647736611990885445810805407393806332637460446296750319036254459530828786915396967428652517765701246416186589534663875600820110751469658370245517036224940970262111084077708350029578177205841050509046892183674949949824567510614376531816575296626905958061108214281045974667979432697291078096899643839317389204217829531756691704357017069312197720127936000443435564263460538081278342356956483869775018896866743074825113277056781883316240742676309403019115661917324937158489203693934257208697666145202396503883590590855298677757373019331245302622894327646472613454683044937888964481543246116284453238863148942043834238777601732174487006506376017920001275304981308256238366928837931893556253998057882463682853324244816995901701730073993791724664323189235646477884890316676590237356097305951334161640524570477246133075200779409827594999435576217398393144161612095994170686577658254504803133192266304557013349210359689161704499743518478313912911071685334658359792993816660638121764310427045558630454629348261646769542529334050095906937429590687091207592874954141191488899356540674183897394259849762683484291887944747141122250755453840683905087341527630499019566825703781927205737554018670973193049216053218299208778575924027646570454269692581685287578343070990936774847390469305607148347386076350877313661165923327036097700772534831475456149547061426477688297725734852080469208784704427966971810071256947856503349487322722483960169018550576276607590937399002694220682801358269458492118739516730164321281345555203205137589827826775584920172810792933054301415505967182187897039730129107125944447973217131230413000796728916821732103152585670768501137011702633009064657762850836080668172717705716279832984247119596382315687445182699733507955460174213288835357309593613403872794726539104374414659322902296119005784558346675467405884914012819704510641185218478680078191536102787784539771188341780984036272617070356312999165294395887027293518839017101763547241020186872987776874031221528070707565778910568202900641316244383132868922530306074015310275270685080013053852150730321979376399527851387559612571579248742498069797098923811538775422689751392886507732409460833122578441272003992947866339741261839145214493757791332180106282569780763617532847823868970445594734821226128837221492335600983973223007507546107011522208665076392217194749194505754630511104310235563852172772096027354447404816828046372079690873106760378044738225671466453555383623726153793761057332927453714911100588432856399912610409085590284774585284492035006362157618481552304379871064263757757252912076406981373810034644807795110575499099983676811141491967606995018839085864955984497203702645310312823071453525295915348396303318709089857514154005694220612326506730028471704263254084904618476982524378699820626096163260224814560346304698663173580478615457585062525151620510734401510224397983894507991493878308701265100855487907756300198295740747202221955895194140966407498026663920648621136951014556818564494678856808183062239674829407903504213246335388765854769043742365387323357112123513604754196248324659352461030563370344080361596005410479507154176110051994483945026438341923970446486365901428295751931850465712446710135432070797781484832220446847659612426701123158022226177382617657795177996449739077449675384464900059817592415036451755506195748873225384527333300570723852232582981808101285715302991914965222323278647696644608632029663746813540999859294845374492439399494932815763088889292144698524681900508535759679235173900248381956049294270872013795350715277463682984798730646909713810311113056576441128068607164478288457966874703509356339289925718506395255557036568100131030715275136156501243645287794992887100103356251344925618623716949196437499954446916163048544585472850906427184693076101688836836436340529685108208123282805152897620720780062609465733372312342092520041815826657212048079551564567003885175368853893774500767046035601648746441858542056708163588215797653583019444612546105636728091586785646758116332327703510485165455023168509457232438320471496114269887892289931181978891134754631166332665745989617494098580001166602375889692370120507908994837155696176822910784186667101760613877033945780180461751307431997388862190518794221072746332942407086021421647643983768265366178335479195030246671026530174996028174398037747456503330306917666046748682450753764507845617345321485249766903747600045138204792901997852260136326787827555461327179613752539883780728659645775408626957426518322453281697939593797933900859131967014747482544719990636889381572738145968158358557593785759039075947989020072311002162080281077442807066448436828052460175082873359825357857808647055772202752711396719809808872192153813144130393731122965460057133692302834515592338111422400001934579011437717015858285864376657807700566762855366855032288016361509097364889940789937517265411822041886298533447089542102631127588187513043202662527010920851705065645882065392840445735303238692574748573963791889340592692250584273933333579033861542181346786303250093168846712297489159061547863661797522947220740468388435970630750538577453638624863167953822019496067575290271025914145251889630625589874808225437127809132241491590816608663704026190258360768647382212802982892147891964932985673813761408105931965229822737115314348124156159363507076508357676558341127174126311235323164892013248590300787103138487045622066016952044597821879454778683054441003127525086123955935437255893019848623408079363199421486204879592690307643581302100276471243146719191852885672502094253151598140935748481229532811620248824699465275434757859599471766843183077830807002776428991070377345568487509163656788064174921869915222433158401627373162477648239272272674622561335433467217514976071299291818837860455545970612462187365771781002201130933676319494887191507659579302924668751025976493548266811964643121470479685402618480697897196982526670959701571289605368052212099181879165415963748194109643091064891967028777207923732099673531158491104476231527783057635527677171001838124019183334150226663244191891349787253561282583649733813604324921073407407592556849674278149112696081970393359175936181379480399597196622127986028436328222115349481729412524489129930324266857258121661886646403247635763756765073623901867422814052448578104519544953421366426771685694699288468025019881324755142422525086041311129664309825664358643865536405023330286962607560972364480676510099267188883660177945853606932946040491171799366378038508268762047916772139646549347764549822113523505123545119504514832766113156614702295271141323410031997381577200469474870720167936571079732700716132621221067999129448294166421838189031133399256775407111997804585453917860056268379197515449026953676345683583256092620530911396375095393510482560764749602894924425861147295100750366608410165439900623763088174603689784399239164291128130543967625183482133447276480260731263611404628425807666613209644937254205647338815998633818192262937331452342038947851576911834712617461284420851922354042395869206999037847314950718598373950384686882817410431677864179799938940924818628421447397185143496564271413675431380278733618865241197898372676772054537879875683834513951644038221007025999807350841418479326381240730696967939911598242001948405239543354314923471037420526930221738158694391927865445384268485333724296808481933002224026273534833525704293457373982711694003288981035731559726186881135501044383493819211042613658062929020108952450533721212079292205939741916556085789916414384540393046618708701483165305099662341621009301699728172644372250796647767235529289689161518799842484981966586095935696142044377146414992997462193592541601312038690188263003259794679422658519913771930727323859259616617930134369358956366740489323564261102638242750704063053917557644974104588510255544853864572115621969365559160177153222763323997243017658100149011334214683792762426623778566745221888446207501865156817005278840071759073736018084729067587827745146107931850230040814209280366945283921673588227135870219805719932325084621359261750171251903858824144955580521799777634165784989919248898513814655052029817781070185608154578553372703439016637500571780100066047597743148915270705914397303310767900323593176137686029825793714878381597064029792847618835312903930214788210813394414520268120714680473952447359593257282253254984155101034830671379350784207015978003509429120491681945273436805091029815791738760065434151552512414177226519341239936441845796550348940487463826606758517605237187224456635907219195115939652299521708345758964195865934231440117664824282406262614248072386483078873084086130893990042480941394384764484301344910378950518840612597651103042015098798998616028616734039400865681038041111731829401860163527789015527750347383999625404067989601819216668010799908582832357907098108810181594482516687030730003696958066717275235022249288672327387909670913799542958747984907693215640149091476976316101436065634966463497097140287378244399681163466585283891359152932081206732459840025922076718262296140583373944663791869381032118041504262610431332546041958055940946493764127329565696545545674383006937465097367510502010715617458443175677983626425404564324281796726815045645164595752873395251960566499078254805928554371881321394069938200111942281282055734469145377778420683402734947883887522175008308229360886846985254377629168374157792237895933655474070342777496007743365217597754876954768748152094686605252416704532592514785931403249816347650245053245043328193264552939975413702347941871439145237299662284216847734507158399380041148731501943449526784982791610377675963342047886079282773051491639092692542052228771121920401965289493704858980430943102492391691136310568042151698225448417143283537769523742662004930732364130946252459636306415047151417939818833064400895172500690158654492185378706625271678758660166486990644725283648710273502011419188174411404085105957075927763929386313185488654954014076700788716347421596947232265646051845992393141378247710250733522419455232245688437116848188280808641376950696704822251685114789166848620852736892638466571910374989507017397250275244231442318341613338621669915751738029301497178355012711716685463460077448452460746274171502700843993134830864123396492270816280200434089043915668485127233768951215484019542077162445102493446365343982195012544968037761852890845543720353024512431604098095302000854339630768758882995244098371811118017069375622423753768539516703692012027258808045962551064165693875812747066655726915507722086392574646104987689506871594645302229351819462524674553541211031906268997242330480568549536518743786447979460117361198757357725673825288331029750251357675007179440599559542561535653651199001714094396006636721700550460167751134218109167913368621384053194238262388195635525236120581286006086142224116051405737237083587281029223663271259423535638659268035361513777856514484271582215230897321409239840657265116644878251086068299248764090102541075747631344866260340729321970829016389890022204610702877545074304296975442233085980813598381056162846625204164346578583914441448906511527678722439961188276402671393401150852826790254764646408561789666604883375514930832266429909456693850701934176048920606806499481950369886962424957065780387969354727905766297722214437727524365346920010652085792993077282727372182122043335555683715335895069715233598838870852252672479319478952860770517844358148853521007719504595608177140770659706846024274997942853943396650007094367908740210690525958581514686673200226768155140559639991287303977609218134780183629923358747509136451271913892201941894856634799560028381007963883344715894785585188442650683365984854835142574697511699560421721341960345309453195326900429360117460040466576054604297814909349946794797882964647835008744786018054835676686788321632003001689372978113288958673840214088386182297355774242740121214855123408775903824434084489745879554382410289664769125537334602873663384672424352993333923734878994924079484832597606174570248770981954903492043266087741833238083634146904131300387301602397622518381636447082289655109368533917286414565723635457970176498860259104992904742635305145450489671478466024095743968323628989732411464940824203048879197953156138226925767640794891661847330581931527671696909661918448155709529980697171984250672212259353298274273454386913871345955323695296017742672015926563898394524800215453737424087789712224473090011052848644121409180445163227177695939601802352502616322856157636643672383757266602532107017389546929561017764756047430264152255286470626243099747251312660917792358506924597448847218996486677358022501193693804792747164061440614623121595313455646828044182146237416925726529225821335879052089504687794052604023138608587434486990959554957092232935725066040271750613189679563207029677394386207978199971421199955710439336327063719973661437136787473047991919914927118513252600673242307429601767677549167791527857789652530765676392890193370677832077843701673638306863789580963014941138808658956829880850936138148677610724744455155783126646884831958619367679308255715414535093396127932750011846951293934992285948856320429390521245334763958755514528782995910082803714813995729710381154239912046672250322720401541061313992922100887633222655338028938827289778202260084446248127471207922473537834013504258124192404474767961494058982351204037287984128390602498620571153404271098284515595239596753776627856298205165764799958029707152549266511237508633754516385010870062473011705377193312782473430082456283254851618204386022464991336239232070161701078852916555714751510918800267173130415144027474340473509421152999971726256697354840276758651864595859187810786286877292197440303080734676664004375012152140886702373165126287097609732126104968074730852298412618512293790339741827199508932889338078592686979886993945329412465639122535357211738041378036222117632953607498404837043333790658504928530543440608326246116111984160985574772150285564206027792393487960479766734437339459050833177339498997853552721478912440222495500771314091071547733475356053711123275194060144575948923302448722609835990979495659951500276003239104592450488369933074821298954716640181512900611609845092825350120103429444099674044932570700194896080382729372456180875756708946307190055931156332312133480720724494073376588719166195141923844475683990138051223680990566677237127827207504970719738165269946726349816988302219200943953225038778540223238712871017390861916774994275880842558652131056610842461279537623783254855007052080436110055206923485472353866960753602505487590265901902838041867854954969076741181708898115944016639204857132765529195054217761766321978665617659643183335279895578722406343407913639374585277629948990830117642576537766670936264243957991969563710451016121900037763252157221190043256523281108575868330954867794958946547477107678635852738209225691797708823596721118425541489878764792317000262753521839743181433186210115533313195517852056324982104455290844765978331410398513474611325634189226054608406411262688521295988337456894336177531122772451191857338814146432582292162641242150819892645084911365926113609900396630897823525182356133037682298740880154928132002518384458954294379437194935995781468149617638309957196651929566566170699458187794519950196170507022718284354669258397818904765593044408496803198114883751739978914235371175747143367628640106893420311128620108403847845353185441647473580013202996319704931086672760068657181144238208042687778671774317443261527651881210861603882846837937281116025578697537236115614715666923647641595671616843248323322340490574451022587163855490921207528955583219800601024739940691467083607376952769976608405469284940869960679063665822720116342200801354745486449738601012466876375772377527216774951983233075420939722013281542766200731886535982391557126024093512132464400815370426249909459315961903866409257115210293628337262290322971042278334942858405903195077435406532976420350878698702113477897939092623251086913653749457324318090515906440053396929428131898195658588559579840092170758322898583443274807299796103021513525731464005616158120129591278313470544745634631094294075268964722902443292633603352705053553255878531508247699895565114566160980173749045120349326382684773060380902160430695899045600954940253641739511121817387255918667140494748072012914974815764307004709953468795024481262421525586990256003654523196879165945002430229027822254573645501113714343327256673335894973812556161815311492759281944805417391194838285639450329697096335825219299083756407726609141918809161147923128715179642401962989982060853992307269143097306580229673932683790356902634321481024349552839133987705652381149755578752314539298594585248545743497673372187631919715027843288663755125180956740782746599856985704875787191664863135331492468773103541290462757294461077630925766861167135117118801681919897933072688665863382930266500121722257648300809233456199013970670873405122678516711053998356299063614019041471341437255905793442762365955020825899154393679188976896790231604932808028991216328123218557598271377694399910369757873999543250999412199386141952917866124403068938406489047035209605435065052539878588515861241984892450264533744631862851560621623385320238996213734598427316440210706483676271625481651748517513505140851130334883032985928029361108423922050482929738029510181099375283485190075530961896026885125999976088674866389019034662820113749423707009380607413814417130700151667662636807075537695144970117131123923379543153275151872342372768924167824953436971687358026432676624682780539770576922435818104382544318400762163449012640054722156422808177240794888475006995397579207077689116616304639457991605213170021187118503567707465797296320450931558005827018682216624230394897286109039693392804776193973489775970356068135609629598553066284143432774835135335152311711647460912064901444882936917866159753458373567260015580688948417760297848992957545109776671080711161413743735154818012990056046987305001559374754907900787294602887415553408587550276438460764361865656368104483933161250703294166937821369091883766900316247671602920359198758246076750508792214800236572442965530911627540543494175318107647923792256113650546234563304390790469137138425779104178212131910803277774789377748197342074647222437126361572276917223999979051184833154873728030723990327759118942279047473400131879052259403026374470902693855869136343140238364158696706893579369864946182349383964913559954644183037796516400445392779001270887807074800957835866791953454354010875656738107939041187043109475842426503367906055321142328172700879415581714199134016294072409178713384030333529455308444511821699586921343184532473422150869037978809625590773527643370611250058296305325905714855877235562312636397602455695156720714434154718896661735347838408869674524172246618729879236077434289148848216469080488476608361786514667541561946905729898052498672127235660536942302679005630524956802616051916823882352725189102264940965513487427269662341343897337943726101746230303710334074800974279740344025281059582232152072706709289263491043150503330445373038655127345257548933869051621164899517824054615110495459496338939395731144742118444594224170127426263059855885498870089528301468328213323338361356847921136942117370380263083392042739027962581487372504067757380671973364346288475381695498839684142565654983735133405644424986833927524784928428729898064792667731515645252100742869156565888140522752226558872929782164596253096743769959051868305359497964568471466553756296190689060814778183166086153662454007159097615115021481256917368384344773525156971240570024726880913322298063786750194573732771318537538605273143873486226208156833504576091385022973741090737871620709917391596981590090428743447975479510428514284047141994245756019111186148602627306370244598446423873524764528893708500948413129004674520217326089694357950236796260213202859137770187102442891700925372593852427943642354269412820147682730287603805170218295645672188589684679191931184160383903802403371898054696060492384364722199129118591111716219604378189835373274421572292756076919113766482303752022553045504762107461427904651604678832309457595414526007434257441169945838635631158219082823908438762678403129912873620197702467351304132562957400467765082359426956445794929416150657660339234499314506332386628549079904507127030406328256491115549425682984296059963438279727676161844331005464188147439440443055134904394238125974345110482299278410941705752789111555424858515371307627078854506377601585414247034153730940384151239997974941727460228224409244326384984633937989289046930319731119656820050897352534462256005995509220672313653762731968380280636540826982559842435995446430240677963214276682311374499411436193715836809715691677478408811730506698497897000905962581644888248801349881439607233614466733255687790651198005342961341574829912415844938976218130041576067730053135740795870564818119375730483420459411569759674028388191591538248971482518303042054208538776985824790180670506215992293552154914661106552078309872394594837275230681692746810592806576219707475334918507805432142592149775302234479089573036040890058676134781829322918978029683273736473802476296421146883924958281340307431465245501941666835073504240245947693424501778001272218986722772207438792027787610036120646459238513082251244307552585338739501539966903435013207348273825895083154773158884255452158172478877358628746647741688017235274067225033364715033211552993297642843306949017861575686664442479008370037562033325894031312833211615689436460077298832297521851971419121336543804236495266782367479221173288297794806732612553950516707316647060463246638004295303505345716504476444423390708257964418422426602301027398140937475880677493287511356854211910144553589694305749285805379809736378047740190663239767321599748917828014920320638811254886782496664004860232235365256549587434149346685171169905069207254133004882918757056353599517770500687873535257355078494898829150394313229948313212079770971570024489809237077470829157828315175773323880667209965992503225542411817334863035242240003127267225988084290806818901085586819646447756294340227479543100786994076452172931948630483391076038004517768044510330783091446946998608642693336174580465790118159129334390411941159906034979939796936286471930032443858866539868131365973456910890573812930825421780944195569936093283943938179201388937734102792526259433458873315007312982585272521076413459330584830868736204549581882862890008088665356594253559893481826480859647035550349273729925062802671028952644222192575428857950329952585185028146138209827229529674758757024663326501427342730418825958277119124106539745050974682661569547422248595380442390169217824336248204471034242493131509928158456222229019594911365426113858250326041206180437449385605978518083575291959445826071589311510032760477807806115428401380825815431487111591251131312303394738091815522459597001143519655374185159389371574169491791712850450609956196353348700868407638562192048686575666253680788560483663495661319516030801222621635854063938943345349491966901368996117887391950970571478680372967917780276873687828829120544720489968030136352388792581640755318074614314129431977663421131552392937555499161842404227416119688008376076870569187346257414325817433733454963411830243380754872357483002676846722652603537672423821497478319988449352245647930738192221315422983344828621535663493646322615377985108350713097753940409477761774073210508383189886529272007898969124359697272608469005323084344381893275621760995622368463290766618079066960274403270444172664921509920289113630542346840850397511783332683100297331857120550786442144361127842098129956365849456071666109956793520321279281441737369450060957186025089781934379231737832925893045524170262438452476339927890192875642380322605530504985468888734927471875426583745496022614861966768311161304536307842039340818056150909561555257812898382048235553533970802030338410852410660861244909396382950036723032046343378219635939301366364027329702370528279931237470369176949519218705146040310209968578895862202550401112529458167952328465988769966262176365572344079205901650281474608028611844844542778134969594098623591666856171284915232735796193003283800756468117778478341072226886242422109896140869455878309565180249066583785400234286211592187283776897512357163861801531611483617337621947978863800645133008006401905755853678419231731164270273607543681590044508891033006686087439046231386006412541036378430019280542647499261362151743991918223142477280509846534376057733621191623802458104640019346204202676316137136092967743754847385266552201351711507627074395607995794913837225571291067161781756761289821147016847059266261833971508755399968614422845946846954716292652397341296665676005420093910722443707181995757079018445316402695534232162849633987855453474920846341195342081390885503912624950981423384404258144713256922444598503352175691872357147053227616790683812631929530429483391856416608812433300341771414055269027399683598226808440723164645263900983314970944381902688460571832676803384724364411378562412377206193340012877523243975884528453673837251572005540159747402165889645567484378941517485284626672085998760885539258203907247462895784728697830030022056633556946020389033355302452422576603191612454667536547386207665564630894991141853332756822869405653150457588490414370084509281228968386130304253909351302910121769061222115889309746275379873912265754624799479510902087941192580647376812817238622540237548304053587453920536329638615929146342302930433359306609220392835918884214918880906607341455004622364396742402927793277656903628332408036624978644813895304553039970659231459892368441459794464836267525013987812259387170125994108083181714352008157306493270570064643903554175272471677414641778165421320541318951844100977944281059034621517776290051249247523553424009541110294867506240060344178472372647811669876271917258204201419183160843845910691267441226615659097604868966202557574674753126092200880852387832566610139823935308163434586185078947523635180387724096693743349875769339815900222006953372141320594248562525215439730727902328806829358657058381584683164920050677501930598254476198893769436926583694374763581095923264171673142097097059350167592667188930617682344122415127763138305772777115242500450461658271247313969053440123060773036691239829171667013921838224422147134176836021190787647402048730216562532465474386661426359748011132194481007525160781723543381662655029460706451502557952136643230606119421655124413521469617775812509037147856901883442477877928913905238611857701487856273480489532829387627111364121979968231148341826130042033631997099598178736938004032723648510496160352807413026862469898384372380734267131875292695381813777491279162116110299984312462724193929029844838367866876602387469549493934987683066130999581462780735021306369222781397972974166393024743368485840021766939073475975389178054317793470393840477891060315935149041945583923275239422795514172369293030533156333092628213309979633463060569925219200280751083662131199289504123751110978098651337490468228279946877708198067761937611424280554153739757386079800893937794243015045243619346047773607551718790888563663667225503723474029467980510294489876172958016530458987872527071690741890465419104853085258070466671000826368785922849218286455557734698998347289728427464327024902689835722252235193452330853530777609144821596754460127832905314150892844578977686009147831772449168521649375125011948063901974183417643642534101851465830108270265283770869123854155620048482046375267918854999555029590079228940196051385701301519355443696045853529244014497839762586050608075301949346233375585990146536312116020368272220958594942458855973889702249192937958734875906599156203087820487397539482044459037835841061849028538531994620719273342368763566723777283171673891486063484880276131231741858026597983466977327874601794502822896089540475336777897722068373802741532255039537170720986758865349646241265301116670481315212963301692008721416791994908980380127411437439099154927839949318576518737542704442604956221839066730201146306096418515291726760087329085444713956905935142655740305501853404233517465801789284065993602956808659935389182057766423726931496422426773990812488737449741314937841952808846682084041986449352713528111947687810974901373588845891544556234787983630716487374767811598104258548321247535531511781837317718654876509953250896273369068911978463467626918853803276726716243401567211850433378011573644239259451886791503909095594132202053111416348253148760632781474324120037379547493818386968364432512733553767900904274204036365023979193158939693597900065506591185896576635730039187694232500468892686975164857022507092315999861355715570510382656387590228482485513943538991383437082103101327273593414079477598696216716875620477360756319408861973733488138797482397360030919362177444103196256437700333661753720080085843737224262269042135690388545412066123330183160516001381832530999436833791601798803379891199381225250225398950534829694049845013443281440322551335047594182560859626309264661167892120072227284175006638335081127336618579923871504292659587709017043139037710060691622158719091296335022724244262026673916471301433826647694295396654486609574795472595335231039084226238725098626819532226847655391233002487028753392640607053077097196371831840868676601048084311950208345491767457347569681821228668472400592254054466599315795060451831420455340299726764347401706800648928727842748061800380717121302931104723216333587593862516988234359112186426359490723958822027326141433482858864103115328656104865927017582870123321078255886651213876119729847052186135131974942493571932043952009114262100587015948779850652450570862289692114014437650000245695912393535529594366876018637462666285516790024633879783982581341688361935795576801156638007767066217816026952168543749542879237505103000322780272606644725494068460498020875239836733274858690908681288285679427117466023570480372587747410707814008671129088677039633375694584174353237610773692146835311182857678775019464098156505543680593515988982292680042347744668781301346171094094307757234880480683836120768110975707746566611857694696133282522685733180074060412727134132254542463274456991321667771947395236656287601219095780228483112447686894738975092755322655658572074577415051132843492680259247546422179998785995439646535424574811936227689904479465431691133342174028705600001714283952491990151883814484676706586083794900619986110151369514899939541141738767669705204570111474627157354322512643297028189184152228060160918841138013560026754490314789781449943776580812912560288707488654411422512585526175096563459154778168689273996593172625429752929606532731502195817904602209382432151940094224418884568205398218429495188834733481554291803385417607608770735932638144800257898072755336951294818250744057604576215398254781180072376013007926705769230742812854977069395173228908834981013079693914856679096664771126596975733417931298794985223939561011768664918718516208734659656293725501223140877552362825173142802512957102418503442816938411865861658896831430714899352114060118524430663015237782956541947284966623259644309615334391076379265007075302236749144790959518805639898722425571338440676118586554193841731234943344945450186324675305525960560176815756894283415716246230885593266138121577645253905843155607206022688702665828003246795989877511493214156947514567596501442104182438388127313079303193414523855833477224545277109144770924473585689435112163172282792646481472229908041307912316102711472896246019268212823924569268561882898956925228763830379305412816133062654324767150578889895628558540245621044098342880223863185648842423780485655612264697027021658163363365935300861512088890057147944696667703815565773956359067826719047213655834963853601271964696762722788639712018979367887620198403955285396323325939385050882728883843423591738160188056457857655071717761706872047249680153423688808794511536790724555039649337639861100499073511636931748955384521445994788093980313088778729828410438577928273198641043387401060307999022717514558636884357528767853047375920906345850801772530787986479558927511599599547679060078130976686268717492719562951178248736097200537488662994357918796661709389687595899542083843158362677917317036586949564028993149839050960422483814855982010777176535504545983854884972156503075933696013430821347396755069860599138621603804111834949268116141514265010793587768263543692538092567674776827349298728155077173248589464838348138185613930795572012233554595767639868146951190206546770463371403662580035780575449783282337125618752381306186032633100499109223570053181987501509922179577545744558338676752394799664786379598624492392576708637262240991882140897106881203849055045806563786944335244098213469894464032462996712423870865091415583498816924873199167497530194794402478861966238470114593955141458300877978968032028829010244261136480530674955256103263641553897994233880730501051743302384812495717804873664624658705042110539958191666522125871861374558502500411420635105841218747602739140440700838613538733124240036191438686990894889710345046357089133531522692160266107239867675641290395704591408284787152415873525954663993810649273687317925948640201158386919766178855788348776883678388856116639940865944458657462879585399518476109909894941740496648020867878153103190561753463713200461036886370596803618778322751979629031320595238185851401022864771534887237761526420179892871185747711884044370618724996277326895820902249366313221834668627027302551785505898788299366395588016242108966247198033395293946205368194167370450940430136083805953100484762228960167963605879927836278116036738113254040491700785660315190430605512240323238387725524074903091242920623819428308405139038575861116759420858402880128265963264707938163424241739721048305154880545888776217574552466884886005033674925626465350237862492088478318084219373603147496545468265482988637840226763103835072550988717618554203360636980102713407949844322870291319318984464361657948383246724497126414934253133102785366277926301159420273211481632126801358477659930037057808110173386531188989401801535806905650272378472041468507652634486985724383510135938681570837938548512002768770822471071726604432888018761850394117430106192644516666727864997895275092956555918769130457464827284695963998789033707645743984843764732366069653514211114205846118828049589071140508203579885996164840450376593799036955431769496108129240601258894262184583030126927796614269521036300613197840809006417270666663516600447257121871212537872967042856599124649002761105144202414692338637735220950350232974715287384999134459993078704049843227686592312166637498542110011032066704558040857201075015041954491782307858761282993347838690159411248773557343378375820552365660454558361740144877339265911706971041610777994728054993072520557531097595808896558817043079343961802588073660687103999834149540162891502502021636833067418129117417005736587003767973613298965544343668643959157785585736280202667301328828968962050789820830850252032151733364455064653312115750887669298400190413787165689387194446138335884488281247818899072963402288556864537002581631073564817295098135163794202330860664093276823762091929363695638693471684487306148856880167516708822467269388297793509731566104026075237423975437410804895403687382731975434663481084060586459095774007547508907735147781868742137333974278724805048977648171625930850961243570509544275083697037962735136402015040445273805237562222880090156582070804848083823435133122839115929578936955830375047019389532294951256828545921117883470792541415147546436007544029362696764031627454839871290661427101733159703693924107777070267465368250915763669855657127748565887254591947420272703027742124735260749956244631150374404275172389707485664154198327996765236966929602560624419535768957654650552781207055469957135699239799205659313078244790979144828391400307650424563770134557657348802935987703254563512458893167329228254053020549468124855323956769269252004761833844738256687897285413415370914547445931623883737426590433817550677176404607746189452512490586282984786417676977251252070922385568308773438165435200230202990804761262199969967549172471727282152409058298216719229247372690835291555725366997188955904535247416569224943464650762183484589538303752131492773710622784655681562439061429253805541661056984182925984022438347430763693936898971079336567265329216493517926301821161736619859542287978115213718757682993966715165558579074026141623314007481216927563535565566444526634789785091136718874848232062984779682677684945731120808889826942063077113024259738564862218918140165470370753592466688209655945402884091385341903555696108472325161197649379426370790509674788058891591855804194508096193463288308466174598114342642453245751559057590024649402418928327704115976683563045225668421345835389621544583639068889263764884064892684795576352606318281943735393111247575558585451238761139099195662620188784281228982235296366458450033070797633737470471939619095561510017049942360492119717940657665503260127840824102591353536757379577601252058283188518835601775296809748097627499845972819473219480649223461520800069439283412460011272195865702418880159940072287079659292148670921250716723894448680538801996403850955080100649600385022126326563771537998988772409188839388549277285005418747523556284811629801966259241519961953466674606402014986740838488492077090487977863954675037231495425388669057615936134907884911778332676959408749908795366464962466708388058633560986148980165077287500401594683082811110090219155861383926599224670263460026024683009652782497303382011485540663046330827705194589261163294342064199874388679116731679880309015263479512538340878908414020034159582177622204434413665728861573268918986339086656253532270251886309178964345296473193257774844961337015101045071784946566523391034810265107462733184254261638543439302561299900151574683871850116512032026651164388288930233744934945771087195152232017732437747005829698249581129285995548891050330606261162099726861061971213610710480078213388835464893770967947575780478463454560000108126811359831675002614641708486575777875884609175147388165903274675730741209031941529268392629001284352494574714749162883624548099289880249096682908324256918921170109592254660853934525998129819891279375684227148011669939514339097733581562600396205871492978543417753295176177280290320035147644828615666937884319021425985121851460454818060581281395667405372573494562570561467422854815114901302829946018134227029086860296183820540396869571024535035147201441607459646142234463942851669327655841960296471157305810253114016401463334752404359656790402254997035120884433105967632632621079263077866469707345930696140233395332664802500227375161506829022829755485042004245197349684101786048066968052264830467053520789020351252882418019492380415870582731453974811738783552489881927846327126894351502395967855281235106131769297485102548072343757424003685506122329883838861463814595454468835649438600335923313769636425513334229949057586439589178974358884566830561060241107966071460713674099213527018299418085324250449196800196072077213505799931302459761264463137865783857019958847361000808838787216709756019318349101423993431265791105686531188990537558880320778350966482011559278488512030372688672328225499812679823793067391194760483412314912712083892219500389172865828405810363280947374077277097108939183788518475072105560086407391320007652643033788664619499313286659627313878175845190136648635221936032553551558194299112032238836149655729438668426188565146931606549529855234794576270314559042511854365497324015496898896330048976459036867885310611562437338808745399427286597529089942589905230816065046370456598495058918659737859625689791376521805955746983690757057604998541935984676059152152172120826557763774178206846753834805452243941610592376200670918176006277657711425123114266325405997530119846458093488512200735878511573186925029148206423047407537343756784519286883337409905700586755220692344501795922194209853541770446863393524144223418710542588951986044646667185182144831244536000026850698733604462108134181178960522468916876174614065759219408308075771327209964642404137001551991457007750145899190744781730477367472836952018699015855606845300160287820136009155600597779862429301780736513792317322665668511183339299912620329002018793155581952076468399031403510499925599364283208581821517585834203251779620121454284297874481936054193575416025508324587883039790632755046318894209517681478681354613055129273606953220196436472540036762048372826041551111790432219909397330255366890123440512789452852743312691709912876891090845822109683185516122045015548819593753474261244636818357055573946182378873693036532104819389385066412995246248378352882382227276116689301844609173768578056518704762542719726176997125620622382285148141342968874940886513086120624794429332856433710984502088228471568640417667646781264775292264566471369289960875231891267496920325477911495105138911662579050072013375861509216461189801062448412416790350334627869229168217861813534813868560020084446785102770970775490974594428200784539950952155214572628709254916817139149536606942209720551636727008114118505567107723891698382925436349154203545464920413952569915933848870416450878199972992108821169687795090635825111770167638617690812208666268712100959604980880953026479824324570900623706499136464670664867353312234765138612269111314740639909882226918003713630286604950841874076027214998819625332882812118674001667555246270710208232487151126672107994499490137821426551220771046534844178748480689747750997272390399096239584465236282477785709603326304528113774065022379420427115366215675594842867407126304739826662945014505191042681186218632462628301511007040639244504818818789292249995823005224469557912917329493776397052240989894919219980043231324118322024477226945602685647262479129300931765201440974364877122722057249096049615302381493602912753124066087139711345742199868081304507179958641441458588939415120300737260579604216842680076083626090143509361135286365991492353943011300569421153408548672321458051991569325636710931451394917313692310155956271905597677995392458450098706782205550115048959121436323683083473717228980453028126929141301778836322315686953848157685408723706393036904264649321147275311938429579184674432499982540118744226557374793989034355106490767583921729762377324705075975472904977868245768463474952978575761962122431181802529606427823793017139923284168701378550411059065178070346919156146673281292875780602078409895219989531266910045614983795876951220977987922462033864028210611636774887566556283237920998266774738043074073249002504728009305137489000091781193084124825840349044575207444529984045374060018744136685105044343569659856651457379058652274604252715351802256488557007254087346937225633521399935421035671993472693327675885816446812097366366586447102829497655236217243515445972429968558782210206553380825781549019281345904321871172967991183429872292138260943642423792821839274923962276477417599418817042787025606897676236666442879701386258481537811593523186860091972304894846664705875183820346781301028112974733798699996123353912119077330166045034529039248169605346474901251469648108958783394073689892765143966716793834243611761681491917462608823286238570689957195899839283690401953024274469914233332629334767522099162562387610682689271360512268203989000163790723032233408821357413568455329364492642824115353883518279974959573182613303443799823462596653622278053504901154081241284242938227716655974852306518497676240820069956579257965420086542952219486761947303689549259178410490509228450584018518238228984050171407736382456246949696738440573666930014081738677680069781817356171195537524231960266689544310732256938107517578401976935924294521689964084612991577980755631002541586771286566449564380941590898798546395312527228415688877856489353979722290905619845195505468832754656999432009424164516365734027792360905507848065564363532463965986257956957244984399283325482996861053441568049115383887174046102337223608406866941959756061574924120098961961778980597037806384256160060761955828046375332577243028480356794255104231944798652007787665341142299674182928798167336608990167823525295540302124091351566529292983117758976570053989750895165677107188656355301403265383214131103157919849536708417906757377904609580849768450089630030076796982449905718072581050835448157791085085814603940119681279348378524675745251771214919257427469428100114804674988552254813812967914249753147461940372380858913145785862266746155569015216545640833737331863312316408790266344862669620019474424157426672487265270986889071706022491369761824413542950588241900866660797383402149824062880475594163259684021433028157423618312853167160032579756803139523737569731781658965016006531915447517780696165068768791119446380759917661806658734603998197945924285771239674119298340517304333346249186710711334112652027985203942914411028073601993288086681869216723268071420097668849839621048746214498387167119964523191052526053143040522353100501083063992103569187777132646691332794630721595339664465040785539803412506089293608626259305530285017748470391591329363737710818186064016069522483919867630354750621272822921792800131074964840529732248945223969533750648520448079397152182095959881056160387923582584279027776810913114394635368337659460194777822694768959580587007835559288403405080832897748452291785753753857356344927516160649589983207452999351484610976940508121431172023266687389869720144348757866976854772293912897166576670506188220606418303336731460505967229632942896785539234777666093816676287261887565717256538484982071105403578699624267770970179076490471558260675517413974608990088288754636279254497933805786589344230551270443787964117919954403010486715884190353549856238565207878517690179125304649465453243287026656792958505711933758450319983326005621247763983829497854674328347415011475920955925162916480558164761461444283278109026528169152559706946570057846633515814560610015577851321116379513901036603502851259401333889908928911230445097903669043279319321504970032982338504675383441327891416437374296524986716258114132803708587368626363522485692574082767284889189602291055742132916277735988249349135868053727718080874109678233309437950875693326359642839571202184255791632849749563558549660362754328352317513205531956639381664996439358404549999378961253577207529176800624706581624287021995579550225946339198972319751787911878119075592849304399452233918334090422517087933406179525350715461159290134930394884819460321221330353433683013610583258835040508717657063626371916446837315732667310029065698227179160440333758115957701208830121169074615551512900771443788745992289217905416110911914541102959100493358368238800789517664041855008429015638189706020905135556581332286326227404349537378174616974761732440302514362555184661315766435637746905119488732150970005014357651159691463234309960493163606233632233362275227697462009053778495291086468097218785994636930364139361906573540409589128572744244016909019948330439434451822096905665399663851085900184576679628516447580974482735579945596455130094118308829641313343255268937955331204039686778886913978885166603715592354283771828143426939022431514442169340066183648669458857090632427185223473123594706160609388406721397912093977018959568595205684366954404671435500852495574096943956103561015888516840327545818478007854395113375387069632217584883374009738219674124925616371333823739898442882589508992096164608789531731046572590250523750637640008839668848302065562377561140857766751571552568938067880172789379252068734579825321447707258008021576981142365533705803905859891684812888674780953021752125747210914735371777734250353814932016014687646350942342120974133341958484865554499688007669675983378412955117978441198299870519846139931360503475288872351043086513871885876374362614952336851289015439912849919881535745682319929271437719346516252208220166886810802499572861864430256301237251725109425234558022454111386117046054454275154040041119590836763559417702970075197590486351754901171957809451663249141972781514702272555709340149327203581934227800483499952848662836518282215284870093477573944191467737844397245574451237236092468486716290577926926146875829412211548358668798546703512874369014711008768296030694208491790178307500393250163491337387461079087132127879971689004919051018048631007090624241177187172731725780384298879997717857460515661455776075238535371956330305873360608975831941907516536641830690292407854274251823535844186467362013920063482268181216161927375111776571661000090505601029206837535376170336268669106019633844781065232160100314999755889863026600598114291560125208083371913676737515987474624853362146544257533589369519452010278643859020225447152607952310844721519108923427239497322860084094074601616700597701512625968206472337815286601432495716535967078486332887553927656797488813068276081570678784361064657349655097152232960976503109376026104859654095546438627110014714509956508729113179999489403677120873482191459214913296673239832913487524204250022351912296341108116815596648069657381375279911861445960853173344028606146039975004139095391022802255291886599612954204657770113258297458635762451868992218064679825694889590598943782162183297445937794622844061318766819478041494773470831496593011998963202474915262535230285959125163085819352731670003622278627710067736913458644405397148825122250117556503742991089726604324361790945538191547771260454869631733717659810169896963691304555514849828763448682191708881719711473576482136924168228833011092993179912546814767266936914118637948119193461060489880040550021578183469229980060072757936639409546486459166630386857908394680052456183930107212172311867780970557093690124980149678330608246794126224700937843708197055454571093405505183497027895797272288789191454622436245724589932536374223690531751710500572006442279974279759158682661163056333418703813939711531640823226386229352421919232105944588765166561389532680908417233545143115310428808939625510240751507613937426272926250369563409314010876584137339192016236783273645507473194110343176262247284706075578252862492868473873615510693434307018498311438240862557032873741710732948027567330131545341802372780007866644249565802073567619256659870876383955540815001875182561803866175404363727582854073519206126663637330152738936127979013941839389397316611532676713312742386906656309907747034643735753080426644973068794333762985365406826726268551814572941358084388164983564959659295401634189147859616883989057944641138740645169337947782309596308078526296628550827304596399006461588871093709574107904259082803342652104031105316492058915899213183194403281414027359862679004308342087127210046962443797748707704610330396662919168447567192161962466066299767464260287936071575533091095728463323375736203791338889741223083348916538323758628905074838372129268763205295545768585363669917284588377674673907100654082050152286155724808854835069974385280200257781703866515929424719344228632965857545073587527468233789099915166344498314737539338001557071635833077729786490493197288340784916647446978730417635667614918264102839564934323593688501712395218607732574300225233735743009395362559544449318670660750055693555947899907605575357601932558516946729239307578047405075686654106141040950051186588360135749557173684226556200299463074126191433702130715296478933017425994405708061483470942377905330574492466218697993740158708530959764520049734066762055263724092272055394285186647582054407304919358436924505463952435615052091723868437839020055759381402495884360212795839548262257001264118822759653605761471605403004073485349475007495654823706136619239270577885546941548403670577474032538838834829419046184480751859289373228382680880385565290027876547336143764771459985506971057653348675668439481769651291302190785773131443964928755139981890144111700695673114260896733168474598842429928078109571681967832839806817682801113040463574113139471668179361171351514567379973857118709700908098932401373438612161400077103927023681757470005394056070611142233089905120113476593982320623302736518960641230205965984516522061608694443103648597119200430095643279760210250886627175108111777296300380151658692034120534153261497340200176713197894748903569239994691994275194096103655811413448096952977928871206149809677372523823164786349242577653730445150540574953313348876666868624616350389979533324763047280605363510549863152057371509929771577572396105399502643340733399441806302304288607148174405670220938945450896710319397884164347242170789521450198320900648511143390570577130733031165902751238311931570160591061805136762418807871227601840708937170760254024909228809914359866637934733716511985807976058974146731451725035660751919899767517439277522682689832462453496635154705403289528810988506129137197183208359739750845226919122642502487857063985711578003232836757249429025268725951386697021789508949467809224317460964794985306856063355323563904596576235001268590024114202405646708265554530535162618700605107815355110159283903696615774868110728719968910741963065719744871022296191814270113409773325028454726685768211160987566821843703059122116547321846880932109837190907871086679792037350607748509507008882456198810469200826956395007942590671518160114839886223810891030388801849190520493662314979862626824148870270867874214380312023251928001601138413834716596416005164709295694940266082274486065416592618727171276796320390945977809616257064828508765031984211247522356944661391755735012862628427860006410707487168020912865431692664571140468385148357345383469924504909219841123272702446063044660134181878285377043073606237483471772018361368654612681410487261934411340197575980419053434757567996645701837968797743378411682956484083760669527528762286491137739804870306371455566701048424844589607139766962221242653327597572765408730783034534685863640157121571368491706890463922932096445477248447632562637581702325869223859056262528245671982970137604994563279074694724111215238770042652361099499472173098433241016706226127777065657631724662482385824759815337736540866984250970589820045341239153082845867645371024524911657855052977761809465366988789721705012609120660332202521469363119537410036069039588816236936751360663257075409294375159915288187786244955694068870981072689373357613406953040221105109077400251403914157128828857298349028376534275471983673064764086547674520124299123109228587124030624732898681900596647708748081907459059611761736473719555317260646631440211373229401513160732870176035987490656532899556851284060242533834906850610235253635562663728797121147047459364045512063783934070215967985275102907307668578641490226509748318888918379460039497561169700505647724605972862873248505541954044638822247818467230551691213043624967549159974736527624733312623188709375301785311792449876495094647445032242876401608599423785460713700116692441926509152836014628803044625502322181829448630921720388612735140401286629356594559833103911556003028534460800699107632580534806523867736079996931700444773229094837550523575656099351746462145624753958229201498051979506512608865810421701736982742431316185308405069434932078802732364220664342804350158345452830855707049625825038581319780459323244505296964317426282095584690777399401631362905462038225868348910847619325697871288405312858935021787385970071848428706048258512152401130058735379809717813106283200548062403084242837352396004742383746524956892948806371100576332202118904899637080176970344553468109497845065867520121857208312335305631926845656843670589013826179949340159202040841056059688290052510555059434407844083870150182418273422267787751798402280823050329853770753253183296304122045789740566936221803517025868268561086213741460227017051160641257216211076336681119835452492581027149005580828640372504233908668150172611579013613294050692029495748009894912721080625195915549190446020136416183133732660869462234095255261773673599814462131982807895221562000855284619577480035844650391707302084127402799547883366527677400197153051245765031336623691318309188494390805882508130753349983063914451917737501649809894609175985199030659035025097633683343894550849238448060442968995445479978313998632979836497362778702101844101700298212232394831167038649181297200547948043115004961995212557217546562795044241196273905686768657684046126933115941940577927961007014391369973716819752803738833694999335626599745665765032551762672072763179009207389903738726604748222682743448800952684289353073383269022038588285580951324891693556808776085194862235065851419347179240699181522287304747378749451108138649915371409858351385274039087463994922725808491712897025598951240695996641499449819885394208561530703110389896360511221074004846580030517767183263999344914124184338849666266506225374757442990915771177930513522164176070598068504902185610540896494060414460979644054833245284086128286097166117910972326572555539400719753933952140540817531297630457074875862555750883673745939144409904225603491358659338273001928678423295815542767464270715771089570596815125438260753576412358560738576237074554434615364474829454508060990337648102009115400150805368875922831540821079484515704866837877524320115185916155858395740477637486403249134360234566645915428369588140939119012875151023162195539420225959280400945324088280940342226355575454231887078236436032347087523199069623100341811518668847666974200145241008791452145213958332326358598869227325457724266650453051500875696219254139211693761062685081378874748783104037540405794601642161640031164824877399834518472286576690918780133621358080311626782628024779783876746656308041913583615666711400188271140346664511444508602614962995118644835440205653262577858225749945688407564370292668994931031865430290257514324766349349587808050453601196641784307270699409303375828783385607255826703809049583284729210870876517399718964594186572099212272534753235818521623701804870481278861641176895653414313713938819231481166953322931266029625526447758350322389285059198040878442505397364729554911575157085444668258942810662764606742521964464780019724069368791205416444093692936683434836154243693953594358521757766367875005824836995427383798124005193137380143306433791057630645069546050382237578098344688600381117141862546237278585968692322774668323598515861697332140968509164595971680983361251567505421419106156394411486574268392135810885059277480059226066221627087059615262049892437923242863355328850574544246329940873035996383925124964230835183411686854245229634225979367825823879659662030852285744050924973792806180150456495689334907525545384242640473763510780117456429876934717925608688226144419708870294726760081369494037947806542463043391516686072252228702611958527998620966697383079345347841414670147277328543165139916144744851967342731345515972871316069973877839205546707404977754703715026651519411617709610377117048706602934836995135058708027587754826357557812568852169701199235420231931475566767917064554108295894292595649050843737617143980738463361796117112629887031607149322490136391800122407040875301923952447647667068250598174988945578393047814317401550015490240873549271689305435162885495445104329279464021673212171961472345900284829796730033867987762603254922486795166375871253667168468863110501019988239233896353579924630828044270832531161497474757850292172724320993233134288789393862394954393398723004962776104805994653750122334490647280962270151507273514083410571170662782857272948667197806115911640772431329213617634941385440391431169639204013986689984425789217964389092200582499458099743594823606824142401710656439746319049411663008516759908535943574045449072658986244873171949138625109437194786303860637658564231889749801988215855073329590017853175268859619305098041320963321026867541043264998385321682015827401844435478673074776838132732626077231704362326038679710221290960844061130434867684308556822508539839311718784381751302079862096596068803532075214552148145783766017047658763082280467886327093594810679946573970996880726471489465831078279413811393737284437644086875897447528371266575020807124447974694171386969342380429046383638274793700403562160284642703573885322302537772667358410130333119249847187376895521827458277404629426822442012854131734808133623699050379121116909675531836438829377993800225897089973955518277378279950425995723847411607303604990501602351921979489894057934329155550842027565469809675215729377011033160245104959251962672084504088231099191028409259788946586086979530738139180332751360630219396526479396924940401395754023179077238113568823008521623094659673422846363233702871233724153105103026437765113498636294432926027728982082104879926229703182027215699213006192197605085080540304176886404211712298519903069036785715185847682035311170233053060378492188833248949311082587830540632849437346867106144059889922763052444436701684302589433601785677016207115335682430081248554287495771039889022202904772095988607138179638741066199623713069192565599218707802376837313766738483318801120607211924867628215763023857857136736881259394750542378783015237552941095563750954892311369133778427627428399403744335160669159203107611174623012985818228138102947308329103520686669261668666169080004787362712931032622363318229335352417571086594532947993626821344968092465138663795621449637618383033885181698747083219904114725876773673899393619194643845407300790124231624811224248954330073324742471061851425364380615653520576356985033582155388589040988117374963907435568371800796923767001249948505099152649957333983395477699482590316461328798310873926852675428479322585155848910555390306137396006175277535072151135543557426050244009397839422450772239674320310009377025951246243805422524669721342828776054019108773618816417253418572268173823771912427740047026744339750861168045712954481996789739212034313809401491632515651920873309601750922438906750698203397543469511666439326546256107759541921736492738303082406281042520596287129882913421121601424600915489510005791142338103205268098749888917366652635247231581834398756787322458354094419065578926295716269657838719530104270594918638769883685999616737783763380292949744498946555514127174413271668036372608253826922269966080722312124729261520698066528832716536860916052902201364686567787855833574878753795807133698648412684171190901682279156487470948076800485839093683845873237751138173864454595229155735454112760139596927176379531730571895000310359582106633254190543942879815437211589324170380840704391164368723938233871780928498958845747659714243433779583177992552807197123132622302379788647058806630242482949147789710865997250319033753476004180347938885899453779736156795199390690343413020251706076635269896538858854088837281683625904507807792676267140880190322786853556812341192996439194952999058612712923023239348529987210460729684074261345177344903055142376246256280487673832609355708794888234115067670426160605427741512360210887898523557322826248296244180737007474766872715639584255027284235191165991168368344467349653015248926028163814471309332217188373015792824501646913556892682541037251441429067190192543328354202632367688577136151517718221537873668502796653587800601733661084179364881836630052820560773186547459582901204044520413556538300159779513701643968037155788797105751656266218219714745636366019941862979079328087342820915253584237796529652984884687287165250119225908795883756173334789701779723811636733039786674779374393006386394692716288183264151365002462160773978770199602275301748461700342146829447985123635063601849040387225999843564912521737324295288879347896007451805380228067644725950950342906352780519691252651016070205467668647451462621460623442362048610537556755180910356406373883317684499289112611237014398162302379539857525870785584826270152747970752371207496436325833856380017703361089894753042749509869907324410880992363019617905698914865566921459369275499081788003725640957120242257737655425380536478671669295057516167848880262530528683936738727595321395596205087948812642541274471168888979064241064108293912556596979633091699352379647983458146882466298109683676199471619496871707384543731101975685843781565334468106376354788151132034878651955900047097943695898711335111096946919919106459757428800412736827908995055618920161266945173096339493459232151542067581514051539768914261124067785977279411930056670122234368945739073817150874096758587904653432397991924104115277693903813825959200853016108777442451083656976328768449650156307454032641310022950788717556178183152601909272455118440840890933866905082772050785714539116762500744983903772771582001469358021630974034397127146795795615192719390179673275338906763770991965717142805713112652667095669229635383994935525491934720596702087121502834645424457151401123524652326890673940026879694139016043865525024093081499025780272542280384685915399875586044574479890772402620778531208772337618867457563494670100060032833607107803242562285175895100727616204351306990376539936655098978884252862547393942966904860911526538183898118337707075899887148586040816883521935722418159830260418260432704370588291503547813548261669326951439789298217503766769830819319220257815967462858522763582247040445519164179292338991927871232298917952303813967467599955902712287130759852487265736092647581617281413429914690403914795727058118283292997811860095132375093957190784323455692544146231764165700488848887380739725722057734909958966779938378844023903258359302912462190307214166816560273811310657806739584718141642990970609382210710998435511508107197963285669244027895023052954558009671296975785078038501443835201189512979395298026743517162254527212019036092977530847742118416654253882065105428467167575932498046426875946543128201801949859510953617295560547880982251062600707823258604009347842079020826128193050351043580012767140089705722856327977091934790571416547898622709414750159398997662971769381130171194641779857574783100979178460419060296285009266502107862896734596737088546604719308716517006241376571166316662431119018419154824233692209444673194328729259928237134399505798239883871192475763226335268241388397598286216509467249571209622950792887792299654540777520987977536736144579432392688216604431371434250321231910432351043002302943239788321911877570374087319984759763248836718197148856599660237071285963700370289502317085886087930912160809067698158690169389952865193541763012530702094937796056655842982293549482824254791430749762473981737530828189972649386600110801273613928431237875112556556405403822951770599557058397674092349460696348572209953561003962158798488344783392121313753586743903897297343574835430445997515944526865915873299142410402474486937398457063880147984582338873221664277398057804950534234155383868859217895642920042788779743373177992742012627575142487547276643100093066628016154924906876721622505305414979224694071220952875227235904742541180139867338783047858238298348262468800962781569480284844974873947357463517924654622666700335102949988790722524369797024678792913794241495240033198305853060014162094031548279339921590552668726535280749477406841288204167124372861016395554183881304335682061466212838105710548261515988237297723994313277824899359192749962160797673635322286792431051684108631511572268035319219516486509974965859869077747962818299993102434479713113441477974697443430925483063791784290765563670204289859034907577903235769021636084106234640621403434351788764561171174951958207250006037086059771064835576888737935065897455748617486908463030492875910119235367985854185504804825970533968668397704905609135775084604391731346762551990329086165874833607314859677572375132594717328605371446827625275902803835304757953850455432215101978747775751291291219804535695007054465105898127965149517889174800213892327005584265984857472165634051123513883638020211715333272889457260308822290414015852094795323529072783664173701407818121172752040757622766434051215281554619588074183538007270173864879640175404662867748784659531858745140859191745783070680347673773281369000646137250898419797067634762325744006495066847003617354580483175709681295891168736375481517502347282879800880266784854187240097856215239636567444614800722722289193604743561294928851978770264096290085877410839249517902060657185584744549959531879089312061027143214646591517592780378429537221266649538584797328881647465748557084584785259446889896139789531355383949818350058138075863152173311685831459409496903645965084036547670896843857526015979446576824927456813279330277247119604006591456897226564124595533206434677454729342550283345824119504344151861026121343926062675072293083721228674702767311176223428964870156717928819228417618936476421831642160718753662343401872515501142698797973486535689390321452488560043695227889886410973914069515313963732694276795951689303788442408002771165657285118515927181537825734016832889671084659180314602156026686550454877922934771260285842529362584585634732973987061838759467527827074106540006347232720310093909374087317538948902748270736192804585951443303592183411739206438486918397209694720412331760241273282988684621524016143524400914606481179355225202793255017671035160402655084111931368932141601205705706444690859709399196824747201939967968704107871036955361608085658087843085333656074656348637808918617869238784815858014380885392513389010301352481207563494452454205137029900447431354847291736193033564267267232535105242132913336048722917525831197143870576998319837073523827245888218399599553904428211885986854243609733152964895022834478919324356960669002350603856947362620732452956896541706669544425329419210207690448059405341323676778080447729394228444262533317589089945228824232868172197079603780307461356116687534261217787319078981862460876153205890458000886043672873360927013527659930661366549346081607992800867723172237050275348233483541111243718479875061494813908845178936942984987063124281196039998354785204314845343781836622692689034157080917661827338583741186549289576147737027284150442333717295749370234706824702742890755024526993084277009522600077939611686923034871406033628277392923929777051705030668965703977631711683334356315964722300588310866663142208761799195772451379889176705001153110144483574617487551589234799330268776921867195098169836828705229199809088701091959929873130288168459287353342714401715068442719400507856975575169830433243799550775607818384975933505941008494889173124383815921127658540712888413743823980202068626589994871492510809399839069269614347157552792759026184273769237812406538379491750173485300155174948335863796760994632723507302419513791722822743879290424749885887643474102200228517776621254384527507215115532324340626641223511207521595627051007967546045171284582780599983324107597964081508052726837022905130863957190881178701622819245769136590272464635767529653166297800108730910917445914397315702716815713811360431473094698695070822672429611237116401327137794646863637146656308134540614392007423395459783742200838709689863085959674045561824761204297544575230723004418605490929819416914261504687198190525464248933615078032430421871577509533165606388921708714317151877386021022527597406184475045369613999361137225326148079652297179360077764869093345059820385344237254078659678028021938611334737563772839418219623634129548476902064397583219061940274807661499470812838265688990172111782431718660227836401546656757628323189991991309382506234115344994818656335267230130294037398375729672371098293590499835569200502876439157193456648535336513712764630441608265548045634456928890116063469768263775265655414165487763191968949620358197722019553395728561054587573994630535298656370547717522917562881792230874717047353060475722587460765196218782664864596332988615977370131854466861342221017393327532999867524078872990804874582875899098032637565464859754825019587826754190492852490465439231926100045000594791399832286823658400233306463587792378133404483037361368077314176049258843832457568534795042326332524088288621376520903949200392308039940626839829171927040040622605521978791298401457555652340543592653122465600770570102088322839680431342646847963191087955204229029443606877434667575550876763355480482602381607181418032942793069406703051003298581644220559636670326452996032789146651367141538601560091098809019410449351469415460949541865184411531922136464020342376946348533018600229311336674216322421359217775595506449628833908634289939748706636392680022239607645187681451679548970185584615588679510941171363842437911946120888232865821998034431929738793121506883469373264377912607450178525546975620250956702824372396843075853988831040203293448549317567651598024282620606953825741971830554741915878902089235063722554089725496266968019280521415649838165078903355210940217763626139559669757399056492411450319703379285159853600309949228728021660745811226587828694376387828719385694754385034790482276896998215327957839752560773251796176569271924768584646004537376358658798788445235923446859435008585077265381201976367947213430400775967674109575122715004737584863818341379607725520305647716639830309421310370953056631582475533289553720842625928157898625639032769944691995807981787785599472635614018726900892561096329368984184410593062972231145819396400431707644387046268659713855433934136927725707281381800099074443791052516536632620163406062525760641896545069115853269169919920741912226012594814154784549959906096412693802243038392503891513602589055258660940412241046855753426907150932658006996113849662993062623802877244193183512897019448621123758069506274140476931742433443919157617961540492636719499538929062807274692119449588216849567603263084496387631993214384736347769427904506283238038893225239344201151542148682812148867342243601776289078839760510439748233779290013286909722811601028821491950699193173000972866057329941978763511673571363658661588237491071007637782226661538793464243156975369661314076037513378933235332987965673539379869641689304068493421288637334638262086217097191223154714466510906987111486387194631222702701279214997803729698938541945929705506014608990342643353334464080445840065601224794230208795261854077354063661541176263980906477311883158143134268254583087243884793021857161783039742609223093378488722530346532419146177048847926659864059958270594310931320038082794283550239533509985925338360656475859542536233284052674933685559870732102167934141147689383982217752809853127638690111165738843296869727181985005025800305222398407456707981146299436193173409985572145792998884058350708405129558549991149896989298563332405299303846190411122210396594500827280012829022362566978610426434254756589817794263235834832012809563211947602255203943620431731307202314501808053666158701490205406221683577388520108157320592080375510315456333999255325440409147227418094922412245873257708841338442924847431096167839574519465888281354815136761826352526066892519476857364877399616447956966298831301446024745399061099602380014968189621131539356311255837337198974798834051693106840755404749347368074457643838480380259882522937675510795080840646467055543428858056966600640400852822309628912738196122826131901078348669975077030626466530542015069814469237658680989178428714985026178181722857726369135254397971976136539138445203083751865018406631671243630339275712950485526633072754237935318085629629761115551857973031802754112399261032265911386713268518986163552822387648785130574848207451916551928695051218998145523290415420231073489157286714306217156182049451854220484649347744785160292494707615987961311067706786295065094681832561817984683282312902686532212401319227206314671961944024080337058544805609763726642539284380302567883215123049382416413473242341868580089204200625021560891465190590329182363637502991855834148097701863916450535548564141848960114157785315923755484368302528210784788145669322548041926993564214113021575174460830621111562109168363136151139221925881892080594872256574702321762573288245948807274844252325968865213859884100300167189058157788913962828828053832873341852010480101656411092894588608138185000873883783420177610035922998209573827230299903605944743581569426939403025724655448861263219305422071034527235771396551381919038779539065074057813762468339739316487179843994611390392189418169949301446782141378699252076251946479964379712363117398977310366611458519509995263136506159591151390729462835061877027569929378070797844913225867670951339519606356442785655225539789611139709362181002048970994023140831903807229292812762888393655710877889136132751391412521942080520512629800748549299362604421943995186688212712841583911117597387656747555881828915646783145672591941271615341799605900109444880841846457596117310788613607199232901817428882317962821935639391340790215769512621121588645082872999811520700835442487350311540429715349524074885660359853786405377487416387739298406003662026289968461662578066858643583544264884206580623254051452101777959383294117248274550989967222219323739268358211847273534791465968162288601087316219274022908647642276577090254969816806249409749511964057254594406786060230397113949376073949106764374890784206962097974826104664704415745208039319403784016186481022455637628604925124920658409334625240688747207206934591495209827364346390206777517946905875190737430910659780695377748908138443743567910408435970674730577111162535786676987871410755942246955859247605162712611531139422403650921251259397596836255583552222315251384384819139681411244893474667432281710363517374027173234420214147787077352127297441509642370397928991269848109889852731670832143689868727609466894895371593889035003791497510701359640874039315534534440908015892350822343269610064908558762088990831529858714138849198319747535998220729131189830804324799324616454254148134758085653092283270997164714310153569377215544231320013006281254241754784214198200549309587519763773614214033301261369942788355816214875183867565536598152170215851002378018005458752121517884667154723060407987968528824852196708868361918641962643409473893279159705752094845184864376021210109311158240810772576661699479850940969676302986161792806766846724926893624904062655046299255165813050421589834290979434281485244626475919443990577186554044636300015607703624643622377411915912728507619300040500501916183911622580570408365298189556480623618738671668424653419935395560102940478915956213896320273884099366192937354090361352010429574704736597576042947213921031901922063392508115621776495215047369159569254473484224853638220669826164508094226446622504278181227285800242152290056284328883013488456174194122996321321387289238195891929179390591725722151370847901298240705236522110804123675792436386175925278962790821856723255674194849351977043507066079068529783181908127100750409151661113992859364856699184876315756102784109200725354932832058532506321082517188706987097041722358526925382038933988948700894861958071495438658159757869266605760052485267866426416934253106585532104368439532496861258356691541365896932611804275895237711219298855753488246217708799785679651289374760052927420916952074668984755359034467560126312973795482989387338796236939906163503297172797264832677202581756583146487075455659328207106889619515369680386361278853369154230262410980716716385998065227934950915501713660114219151078224410509650152832089448563915087441086472375152979169942921226879159193092960807347410359665529369500751102011519071147244901659194157897121164135231581533955976348504160839581329897630119411289379936971125796811293211492038773255026156577752820891962324487523422797987176944911812974647784031821234506991111891254398072332966606429308966785316257107675578903915708468179435746995875209591280751485439906352916608161098056103939651106166746051812989601513863481269906010683346777803665473207362396359151658873306290374454126366232499207122299891991387140870543615338563755888797236528782173691802765523516077346701882602050646049295673020830778510588695289282471955611719601378334209696142661748589676536363945795549888490536592762232754462782713087420765391465417359217697893586193639060693022506192338125555010493190856020758557997695438549380396886438642917847550760819254192250935949714527347473512293865445270281653356244364653325987657578358889626594995905493343916010347085233531980441412275263714669455272071904166795944721754935566555398360479794744502251076541347439250961633569834952855248170690249661992663559782317322189852453310147573983313238070873677111735552379841854137835436563278274238970611579127128178606468519561622781848790558591027807477726099510063468489734368230588532545359919492399004868108578037603714943534382891637164187177491940768107440704279840830972535120179046590153870091894970285549922826131283768297490367887728474517556847090596057532655211434132511010409524408515200838112532303686875975398423839819710759408040814735142550857603558082852578658258204634710415567414690769978078954078750824603574414538412868475652268793382252341129855157490210830954393181704914852968472976846429472478617638075253309856466176081488192657898069402287242412787120735891759634105569298947905068604114208692743761668534617719471696030749494776663957204117881204877978481611828215099641800765341491506420070823272083420738024642532088192305641091473459344203826125152815500211942432313221862135313709794583411404195848465420198088649894633533412608516410028158827625828494310518059859460124181436168628555124715409437507816709815023968592110570644405074388848891375736018381372882457668203008758276240665471005651201164381407946127783494778781304264799890251076926123287822013364008323727715200713909967829887504772358357434116643519587931057016116742048833030754481444809307223496678379573392781108286367979132528701708861885578727639367488379609662779750706156043968438328869697894410936323510400980121498767954257697933129879244947846447043810347514104385248439317757375054256003457845446809588982407918712809787295388705543398487132469488537430638971593393124843361137710604299979982649083380823275702993035469074690516768452212469916103353765155371646325753056357599361909257168402257785811784719566730522781903406110512365724015279193092934548437321871783152221123031286885886268588560392423413817856763612690237376566742888338694180968820286749701012854472878101162486284460727482926665074872718071132483323714094507943647214123647524510729232604648453964435110336360336801003449189022783761147395118018089684193385969157567512091353667636852970620880690717058376313043686014053040724708935731845977194369947599988519864953340924325619871471508703598192843652484152643872074151687704351521032198993169005463391769694004000455231094625307437678755536246530279309298167163602565870166416257067028568652181976935272528306986523350336605246612293487836441185864101952006337804459723019807368840264474366858155237972835539053201552379755673339125240371427896393455206253643630120161860965241512645272091743739831871917698718556766203244775863987823437058660405131144725008620080527686810476311419380240868984613967540420541241002639880197179353258994563748074651179702246880082270060890260936483656056111908458498604807788441760198766258014535862936660036362532969816723255959697929080901967880149575247100512180540356760453374221220928152557927322988579367934875459690222473035029061528553228666619726437425635297796970522265785287824607396968259987382081123751472721256293266338849109803111619858713337172303777801968407240177784289301897249990614132909494475489827546884071323643008588937624455058384510648675431029783075831513302382494036289847816436053130125123157774247217716199220217777810005814652693518169685733853656270965343584801807716428042214656752122308226863432861029972955203081419714036721015752480844111545793897059595863422019414177681477714482563040749768924642185937722023328896244526929733778137285044890362108776066350453312102402405107488066635996610805998760354427602747343370662918423764542627970192027956856775063279789881717964728771314119884243875733765022098205881831495405501180721127292105789547751657118725633297767630464267663997142166068391175046983969633807189219546117627505003044964908101647138961262999027627462261803906160051638162634263776693047517701602469955265962456399888456688323748738504005337421464481195836510260046286616460443639624800421514710603757966054996082766529418335374434887271826257785635067522083028760153327804955726676479510814121306080146121937854268984674016288718858538145765846190356356951734621149209000733733876665098102339514024843572501422841907260936825717853180907088054202165858618959170895103232356309307213113536710745995741031927202900824300880157848799045762933037685856998163742328248526673015940748750143301675118382275123590008245534774255021829538084044993508992088062739743413833292029935169637015017230183715781179084448628806249292597724745954591895414474747510434060174067445276436375034166706915909007611082894313651816646302849949968946412504793356935903827519033861111696567461367006193532586865846963959440084603278842146197864783698185336232548984285948141744468877104187771071509052533810653548024876169950097709519068479615128149999113179386109754108223542188591730965756967115865937696259902684064401115770703444191364433988519058316745803252082015385535218950716973074578636798735937316566138892902536196431671775897831090567274887395551781697225003207156762073556267036071303558137880921444527834472519002875209285601298847003078429270851036630801532034484054649177612054746483055171474855007099560974575472126117209239896897533401826620461028636582651450901812862331072446162996193253964614716972687280547396074231381720101973047023997906269657603151739415075091794804432292513651274760764320487657834673550191267081837184252700527765562044196934183310649868307812125125460924266312718724453855884533717376769830295364841555648549827188796450447124337177152691416730118300280038232559207060442185746170903803627126650980638660888502926721268621563722062382501928458844990689390832978361460463211813046046007263401772886051540474992138704515889382470661503540766272809244393836233325311950443175894034475270315140953187122288535930200955389372312356991330282493774630086548908222468882508871504656963813125613366835842892186282045013980345805201955444106141390164842481745943589868480204362430858057797116996857271855492727952702768686774685930914174777627484009747195384359464314051296088114644408165777928402994354492158651804265221247333288899438097392115239999734717766323684760903562511829846778621235128996792692270725184818030122922348071685018601277477885931340856767210355895838084348894814862304319467189789166223019284722848819963769139409243584950731755193992458979941401050120580439409651117651396473439043452009061807290080317342821890662351009605898458872326579934740185391586879120710036746056322763516503539564625950360965733884398454602022938998450179171280252158743596249529092656687435472595101542674742348185466190419173134037054291719449675740757435035270943178282260171320156314791730519356340317688975124765530989429447367344245521612253980836460513764873854656205333768992754911955691652282716117531496621274155044255124632694541846419545456431196798946294744947540863382746113811267507185567353288388843302244960027534937167666015376023448522493340440554066534128151697098185643173492406096437928981796556170360474278862827891603208392465718392126683381554268324305819280725133364782134051278453817848603140795853728648603132944149494161167690156592554129475541647646810368896820914833643887263113160930562638275139024432981041350286486024476094862535650971045414129074435667919631255973914905367469629990939262888229164157105795805943671889900875300697410363511066693971822586936434408927942407549439642162636600238680846353681739950047598794981600242691729849833060206418608016285654793457766717832679356686747845104645794732905493567836252329606787353709808600246413832323485308135004694193041638467214273513202307263382785209496728369979220346925217254727329566605388061583365565817612929458540148112041189875772716496418323015065042452231517714815649072156395270544907676144156903317502637938836261031409163153469776519398961730626192170434115288801160931006749602015162394906529632533456123621593300452044252461114580845932999407865290916045666879351922627439377742794416799093779556962640890265281010014432420297757986144379377419791553355015065757580389758806034586775391680879647941887089744618754923506209335297978877890879775099935459794828918273958722723083426673782317889078910100539531630100849244533506256911992248150301012867071772441988360455890049766067945074736339356250463333871420805395099001309162539815747962591853117496575517242727705987464394771118195519287414067505319016135185796213285073248598156696609208116510946437106048087856801449806960131612671871943901690532307100098983622388738157056113628923991498026871062778255756807831364767086307866113222295333694051792402768779673414491713762075535790741428741842979821118984313311474212321989077117156418736339577945933287567425528508153106372046954785877500308960711166675758555372255693435169111174854203677529512194420978971619412746766405075703575432814642386434192220135932791359911165281570383159979467762065503096276659869363853737713602631636377734889187383736411785087453872269855680094501870117532269405290942222164727689134772383235282196336498900889175685326988200440895960880712543044129120904958083225736436698764791757712647111451753788601770440142329609025722302377228779711213716143114446481631075000436163624130060174169966036866222522116962407344972294914475712857496136026705184801353708342226157844921652222583058401646932990697215031488250054614448854810907338541985402148391448027093189944393646499418710858604333522010993276680505093498176186292594041906764290651789343131416842461724111609502978192495452284999192035733085250417601408067798121440235188455301074647333939170541836764634070463682123088770759481462128195771591633542309707690820383250236174037013157025583663409299941774256841893435038052225247927872677746369031213008587593657513180662926864874925800105650803786285849096625700617849281404172306659098084428161895204406452084336984338209119716212506580174920459146023091545854369671323579242286841928854876008545274493034032136545037841275516238738519466465424324049019775126262363598365965204745085027161778597680925568438698562694439333733675835376472386087602614706410679087744179142114209730960590674550766677904592112273738479821505139748515044604775428493296762650027274341412832290663063920838999884684468462007062406279029051360028901150201827066034652265183173715639610566005150521417751189990202453165942735874429104928028869421163420707787042249845343917547325544442399096417567537030760704448835636546232400012620044756233560659454902419847529830131533308520524048034717222427600994762010310081592711046774173800926383169434106937157647789936681873128671932110239693596439496880727568862332976498469188474234833227724784801913787703303243732143426329061936481312813032922037770896887275631324622073501454763547884119590607021335433275990013429318814346886542897913221557311609368437045187811069799260688257934824196835369162914185875592249775373987525195699893288368960770457414669659815458779621537801489559351205072022852215222488378031294995270832970893137791809297755302839930267433471570524028823652364774526474051109027949513754705667333018082668779740747932467238209551526181334381656541916007514313049896058177804707541745931114060795928043978767608249901865848842787446359969293670302646994086008074878615495026618660904433133614682467099944056651892896982005804852657132811706637308257562782381289861927690885871129559539385570447272462809764527628039252279124566130176767273059825597079205506128272005240707936066112900822408567376463752178589555582103315620141019885891432312164287904688202910818030495846745249379894945828814466261239216344504833183839835453599179619550661564655204659315991478140428785614131543928673704356073031037390825160747333906544517949536361929269713644691452656220997624866382754650769990364848774593202225364216066537433724898420918751612495826407698623709916963445571256026339967996104532983375008288127933434535898477459602806622705631020208066079847358563286225059335796542276163078140191436653859516120279675539270017945191641705232447322220304121908019551758246417831657570968752797643699453277495759738508352007272803574960061621245143095081471967006681947207557920451850708735442934458184239591655294324736231468001786747873473026304999709312990303720850740817714501389614399046086866513798356153097470949859127077446099772103572613413983435771118928861704084121222292059793409410969036042444677418550443512057187565488652634055445421217465650861980128037052603178980539533470506645092352568825469988476936550186925369850268936104326265630203264374372789493233513735384570761884469442767905506420050172001726853809347070724660337727229326616098135036735158966789000995359283330067580354531558958568046689106223221003912650319195610695463594110652888206197840074198277519015317495766897795977179956360590142572852133424632341375544902319056014944932321077092503487886323850362732588549458713924425792302229069712376065403026439357542181241412342019164055023348029622498860941945831853280260411992576770717996027808147880843826608918294416400676023115171020869055879480441884240318341568675007299146063410458929935155222390722086167934421154074827613733157358048805386703794891888532401898653455258099520916048307919588091344124160188218710656571163363466440352720102139290359204961918986623441463812670824553563999171811246353511711387143408166617054512487322970637596313636638741727006452651123587277832364321760192149805761018031748812624699095281309542699365632790950786091124786874086340181480522965158897818912467284781150259354499983183095116894564765405319943029320889044025224491103168910574389832222268926302089282767683949261300398702968454190468761210241684133363440849333665924193826109157059379659818826928545490184073477818623077581220896989698131599781139591163620071767275713746367394892571803985177001267834193326194256680851456762477154312863160975263445098995831864007321090995177616983775194979170706553540356258287714409616100693354039312031886524835586214095634377847263665125409176140453447271078274871481153397797651743733447248645724712007487040935244196997685790997740417007463991695173735197687856555013811079611291672056511680110419039409311258952284018270921941041063182437976020857318274241391148587139033882418102530545449879848985956282263576499671877891662908554839358614061183439488702616352152731483285611747370251481073129925304899787888597896671833094047137914228931020470850790285041367105735209825512740572328529944766387313430469915485292928755724069259605937698628900479225934692628524805071898497155062508193978801349637699745207888030115462640710031740516349122802797548148495989554120267249276683507270077816514541011082145089716255458120427470549565898792845128471416281303593427371707635763005564704785876087508600304322181575109029846603950465804286315833536795909814259345944987464704752237890163034990354106707537380488244069508202566807372391512003066127605561926450719489796038254913039690108933028069532471390174944607261253179869427509529165958815325637432639441013693375877978406270445572054596856361768034919285315015062053590050670869501900818030976895780794733941915195873555552128171231571220664497976050088182137116991999118957412851284297989594411508730978926412943346023651383657757986196661523173302931833086625814744413359814975913924335763872435698177734542696621912504487123741139532739966851938470480655448717979198780487891879129491891465932367401273890033639521862487909255981595311833689600186019895639821625708345269413611828851403653504290639448301974403150030634950769523556594650685662663165359571627484181006566978986456263951895040765435827715435180574164085777545069881643052056530258196617740998788415233271848529709865287520785731612984400022634172507553563431567739347203825080127960666293398831131231438876351529431833798729145922143355349655616858990280394403482707568982794646315528721373236122885919526346705344494081387885377237621075204546330798048205811337089826514436469226913443951022397227293072809776945532378537916200853151697116372800519478149252235324162513757318358899578782464237611007961924891369078996761150698328460151473949914554520566470601964405055777536744723876788239738995536306932974559944593616199573753016099914442393167251910497316127862557117640123314049430991973435548348648132478087089495584030980073329626457759788830334526158726340787629143527177868397887826192161353361841843406825893696344987609963122006486150786787144028642553874576505945510698505961983216028061047148091727160816002725466131382010838535653168794217858538263995881222103898852675026783879984777668742892551073487518683951111518051435464580397036991862982701983917187875102850305408183627103019893053797582279373385139035338256561286690931140535035174641634788163163529957602447455390394414042225934744108981731876058363088374954484414682276135350364146275348404659614976443485030693436632254316642023392214141579645045578522472938533785037870255353046396661961403313527394163844862972594464061144776078322177479321041206072313881319469907748394022018708935837040599656318941046641728360057254495425998682372183895229363936788960363751775936522960854466416231767780032055107205490786421396219827575137520697371827064241386676138084137799747539142399900073522189505312119375978068200509683413126029014932994528353984345274477588250699117296395751245335791288094846983065789554461399206898859955652022438721946983931852221206085773038947158214273255276783280894084049756976907467767298146975294406175860587408840324071324645183083945193554594629857090883934401031310894252885512022689520133019357132224309448633901474028920167390868102547215780043121927682043795892711467758492443214807184979936256949847183067337888391464392518382269540557240987110809361847157988469534921435472985133671503189134197135875929861011071827262412446884351216493349473859546103333290794078785821833296773812546789092692129929694640858125034111535500741554950996989247317630669132666031849150337008638881440485057903064095232823891761357595031012879481367056109754827387258041588255902704943461990667239294282482824814415694368400519864129393490476212995137459619695880274804024541269943676853443290866209228183082813825301581280119406551232133312958476663951139263325529781931357334677663294932563001165165484107919326372227744425988629395183161467190236688669180074069468512520052570981110762704996792932174514442616567024661275091660372562813726658855073327831385693878871267739022802521630253760211210465910859627047869512903876327384451860306031281842690009523533828166378465544938100946844058139420830695372290527379973344065893805285968075446968381076744487303467862946481359600649427240339700928880291484119574963684149703479942312241991771867043552308265280422676510989020636383936724828826807472426344232337053453056335626979364834344987878254564954779471987904038477017334329225333992414487919854720222418584163510158618220746870758561032351860209071838089768411371076073574153461680687968734081355122850887900215689325215846066232526622399058834278295978636592011381508672193629439382313209010319580455988164763427516097835744355487355767324414955877372297492718001736997426464294046447090478613601403932752026617306385397427730143557851015104283199990471283287626143976407398789163923650526186127647003012485554415253001656077046465123305052468340655330078449623377795094136941750876537674653604585758291098681410885638450785695954691210119916672267714634160274967890352768697377657621515459909262358820635830178299975197712406392452495994886887369696645851902381086666285468791940483081371292364936563656845955027817528987585781844419200258926318004398173660849049719894361782006395758435849787555408335989694948911239656121679101723124467263589563800424613320039294527538341690144051815404287649468374140667524913328647967790172732479281989508010844992890487980819902422698183920042669420827948787275582782060585184609417653769713001313833066604383098851821370694885480220379866462287951914944578413972087111878424146877903877114374997577608602461270390792154402358704071193192056116269147477831140603269893133220836508787653225513287168834770700927257482238636552863569418246637867785397336891733026576788112088037211775753098390750375352735672791919365224083939118432799686680340398231868358459603754421546979302857007119536842964525533894096420837008676128867668659582936121041481420032905705450432969647962766742548358890589215693768374553100898543287574335312107283395913618534148827045042231320238761808466690537579291600978097454342635647542852863212149996613952649938366205926578103259325869920132891516509012644283099913165050391721927749889740512744182582564959837714258551506780188419040976896679943971220764902808973629288924350165948860287920726578403102722740271731097577218936611771266330409645322936970662766521039906930529856276445553216093354301845503163477947942935158289955083437952408321782173387118487495201686265137859309048550700596557531660177559448149449633645186754228136897110845108468702428407193103652662142586359105157726575968434102021421044342931038141678707976996286881518197077627011718289712774537236933626875221574729092665937695719532335993652011214815982821795341022446886403876069081797364185890430824864121203900488124195090653442934876705093642328995387867788003031651825728979497617128682128571689849171532630953551997514282286819836980998994407333049802063847063718443702354189201873471139848960518807315985321825938249324698150925174956389948035281787939254833483681249214894037327681498894537605828953232634417687622277408385389258710404533131441990142721531267396741970686348409757222386253462370895535690532257681163329522026686540682974215421409834622886603505776648630123161124381246555353518120666901255811019257995441200752377568356311830949146889179163689743417822743057458462625290463551383771955270033185589263854827032103279295800148725952050521620979409696603335014526167579450342396276447986318788845404892426283304775603692494992731879647963966791581021540539311220437991059336743602217942527477586020563102680423459746141708353236607892847214342164581807643629016765361534923941318137050358114972782502278908481149978073540868354678241899790326060767334744544400930802818015986228105160171150958304832169469083580294837851515066955386630004258806966876849180939893373720595062542714933892590303404534792972707718107675021923045472551001756226872577282125390460727376102820840909361631223334716137525052197788580929965531094541190907010866693732319079230817556415923905564341308609916098324066019548930217885240400694330055430351935301480691413985313695151259733726108666323592589718782500936254902300705555808215809369803000207221120175737996271401142933537090769259992536611257446153144512137105178821037125207904031617709935369634133162202110947741009517061640095641409450946486829719354609616372746247627906084541694125445216240925903800706289273221598534138286500097758103150403331079873832235680261594513926817834198360748183850200060626564390360145162998228855840292337733138195559340082512693635915424660657559545065730049731949392673552463845790559249851747714101865745496915105330491008898850791215707657217567071058151213569141246593382208325380616351749829362389853899723552556309674382583888476663785902981730251366317132810106743820175023803006022053305899650394650122817760670341182431072715517870196108228579342073816838029085270432468051296937946251389718144556845714254575548515566415334196162411024729116539286446757635222597092301560228857907690469912575499445415675405801944894256645423504333916423964524373026009857236893962288938728528148053848262755465597806194313217134741703812303121056092354682762169887629437630273470840106917424606954159259818102081378407658637001307103513419084670108691063163060222983016759059788590858627581448682477970146251464178915828225017703026532825153470012419949992016511058586283837711940875129770858338831524684920042330307358575158590093601355203868093245080819130756491788977073821460680525886616029266244299810587157758940683373385506896451777761545246283289104657032771860533735649426354111063965666203855146996372438033360001758959893919212897610819096008328801212260295637805842306570730216684549734109887621529071348193075421925280562072332134825738266703261959499573715644951480516246184040496996784540540337499592973114760914602748347283471050313802117101179374803747089252528860019828023766805168582966734593754127287547066280613490132060584145145324869134410987891610906708186475924265651963505952166114504343699649052872316165461826115253022007759141966280629213659279578410510347777876107158904986342445771554347050439372840410586854262220298959399548671486898855146890680023056007961099927245730634989098001265592260963987312097812369088929917727743348165430439137871483108786306052547103201348444848684029579079865766150557357022770388086822500682495292414484169256093158057813786399105367255096421909258742890787021315922290351983806432226205095965361526556287581215503046254833117304975155275128816795210678356370304740872784231107263056564366174510207872567309146437509830616558918431090107490306470713807552220203688813985707570244316566047683384688166997270404316904203353566015609689160551370053231364428917161861286602597673048882534265477277870838083884320089096991056079886990171567605517786351628890831565574045208931338060816215070289064415215222813169333693299870581807609311036681714716523202854328376897318741249327695088764277416211160683583136309224399263166563399474501985097948936839955735762923002720500202128718074617214540333586700830979409809037594440589054524074360856113544919445477809935948265907935027468989186445480880560567275958699202422299014345869906841635158487132040245332046214096707814022618855959105301580905253677308312573327786661298591760713810521712760711604174212314608305491678037498301261449653191824326969234005304363341472869084679553172977896989853829190894082128451649327757429344376221920171960474658074554994449419593721316031087460775058584213609811082319789743450046479999605084887408378828202161525442105326910409766224656995989477018227069290093572259342179961300762379942795002104700797368981016806466645598600911811956885077429459543139888535271305753133556320285987427135420956469956599226823619823548605714951252550608548555567541365634054916664041677544206914269178785299483013360167295083397829199594606218285307320852057929782217176359135119502144217391049333560829380379345542856887011157006965370150215526440257225841889603354647293195398924493140046696350446142113274339192447955536647862324267061155933543960293323869454739964675652862797141316200720641283067141938318386232451325939948317929056550585969598493433636553774236698876258800104696435660115933427783677553264233355722197017106488977235842407111051040236902623808413531006623605517346271336930561351689678508749128135002956689664336107769263501758310809676229920487066169363734602126790765724208982163799615866021500515458527971100839077468267884163418772871509306049042134522497717603023788122469535214971942343793143236089594575821105688396180265077062956690966522603491615526191825840166653875268050157674994453080716412216931001987449113634140330828710983351151647326846432269753740627310475067169926084551530590077095607998805781542846772386951679097038925793434985425084256288271204400249769454285812297733657176168029810588022377983479585887841957667631901635742174066295312036806820348869314405288773358292983334387842884679379947905422317700026590642645299823905827565868029240922388939345643487675407946990490863030159715177758886783740627609115189493206791771483379202961393167111184154774443259488259968343534734725014927907571574850326972559390844706892672814658388090477551231979546558714622438625293615161162324554590772986942963811380630611464802888025810084657909428082180265085773165869937896627598688749312690604156130826022239379874430538438042769243687058238446068713382044968081647081945037228620429271120792540040510665167489685627534053637842906567712140709915842847993924542994523267491803122584130518085498136431871929220442793865049967166439509947240687059221498633735419258386517719931521111384851399313602565716458860436721305306369757331692061564694509875730860559310481990510558053744779859736016353231993463519911156549644049238769886364511512642983290948081563011602302753962636799764104354310164597396675368472407841496517165275737744264225966710736873252535626737046652560620801093220301677816913480504451430339932182487220117732073416793490513408226887973066912858635791271638163556415834870671174912294531544833065559807333307150924431278290949812409046689627884383604851638861061981147587693600222269699890089510680860402860502483208284626171296779623176238149648251798600786813164786355650577954457407081089593917366281093685935648254311180059036675349801165371354354707458486704282926055349233123794969163287272494080139752392838215540941331453579439181039985812635283575412529851206163178349909623259773272924888996540075243716713102183615551414154227965380179460619445448571092485825820998448982612532595094946532083534749399658345978039350260277650766110633433388208885981040154637783157968508953103534833012001643415919066149720611225765269846156956306475028254527003341376095593258387955391724451920090455663566561050156353373613941447906815281417328459164082559662714491632265991344567985406003919944006956712105686166851486289897424141492533796823284970893244774706777832730688922246894916170126532017441498840533565885056905678783290102141931122978641605934950804436685132347296878170508700826133126232604632502580165992009068757954245933440852934786253889219856858629059966593754513453424294723271374149992616688823120465411193176349128777266917283367505207637160760483687769259115774901445332550648489589723957300996188773596457223165359862426439542894048210739959672723391241522608009196407393810498674775910155320121181368405589144518870883124946291746073934277259558466593007994369020865874674975193628290013780011600206605420572399305141996038218726419639808611521642380482994280821488482986289219669510972894794724748990196645543986731206095197873391906820794929790985353596674649392302188806099691593219022633135830521517392147018616455961572171132413512879734239876687997521154437000717968992282997112235769702130012466362353577353101984253101609413126726560973238466923153427779012455567520294128460441118438577535956441321841309321368663606812538897743885010483833495885327981139290084399684215493827790240949634796645677365686906954935072600609163273727462524172882466123667239817762504497249960401050715490400963377145858355152873607321989326658931763076443829422899532107082432837463359034257284283708844729507851878123433451137014542660533268227468009035386946660641373880379860147054484013234153605381447871062461872213103057957908784747759997699425852362884434835604391220230982020346585016149004416591681154498510864458047406077333346566515123211298309702750275290324690848525304642916313867350042583695115081289174987285537986367406017828136915722958732693681004057613920388020618859331885245386814775891636029143728519635100491121575384158944640408777173781801015761019663973786892858720560273970338437960146031765957904593467325754369079773483735213941791132450237526558746305594410925016247242048970613646574999471878254420398070868942008857224213000828552406594203942407716312236544950216151578207577611041498191408393591489369825287132314146331801578333131196334151552245802061056050629757346461102707244543107009916111439037414504624978733936088458531421597512251152231595809387536159270667291800304798803509544308370418931445842064710152250358113299372537142828256939893218515706353203580610358046570013945189490015721350193894410031144946732741337237676610838164801112424076509504765993834672208146239810522231997663777677969741448659227468511554255703926253776086361938906685024136699572657017407170995481800729952178655834604510228203758405582827876502336586171033589657280603303958425742484946758465882750265663185847109082150069710417291454229553919973089728459003881921284677410728531056873718167721385926885633414041658461942102882027405781591627565719640954911183685141023045344669952668786176704568146136190919665137807412431303874351434579641549836264869032962995793239251127435961419719177747759190344765442215541588082435684040047264635418505472850485745018856448261958042505753664134598281371292703005294440709112706654045799035126501405917090980731358821267164536592140938364527518357771953741681699224315169590915163827168717427725958989873990875465419505377613220620777719850955158087278945791803053114009773750089604564447165277691243484158435036788252212698097445703794233494232283647918971605620958911892823711994618087296349844124059364900112630858529721925618444678333154555865856250301483800180599842715561096771310962471468448533068116410473001792455689377853828263333371341958700012036244570226359830871202805872081013451074939738977733173859613185866641789659361265046025483711575761410301784888582558560085718776418837509023474554099017190524798658742955314510651071521575212906860137540897178494997175298764720181944091168908449724611112095638676468134451574225977736976038005048321735112904588535087523095794045382487770112522158403620391654813819771757578773049848276843131372523785134185991570432992513188264445378551854956019417408587102422778042859002414971809599722734480235089855143436240719174188147559917015452360657511485624388311728362892137901000663764591639775486728811956274012509709820488513285968421569304472515961985343446413113898398868049327046698761119793317310011824806949191914873169061658362332663309434209676935178821802321570904935065445024135889238951675391214335749129029905052495202609692892385542571019706942266580860449442366208750635318288689844472955047923542322982933661961550258625221688201640477233146782992372262197750084375826496170868635657478817942968433691077561858547703230709124906662786045532701851258277923369618270379511467713782893950023669669566784645604781955096052664802596960037611060169314067579536278378700101621821326584533461820490605538105362659008725898727126273546803456697711465778155057110325247093281341411356668346907008171118658397727421016350048473010536441444725878220104933759487720910204651119264973158615848696943247970403103584731657997849130817030776345524212224163655166937537904070709165011654291545557749373606766683136707388064510855992071646378500252922314679369596022391285937465779794574021127626462697092210083181443161311622000796400069832365103191876272412863445291322897371276838314402485958966198836032926014611834503967954268222736953790668231650697678471296554610932684059987472685626523805911440278637442539288552196401086683458230132797921321108788683731355424035928555546087548135705586927984767515449512083232630033104474453303385158306910515311178862027772378180189520041419750651936023857085778666532295423086750766313498403511280691641621298776830910249805004918563208811254015870188163491997756496017964464992703904723128230978876199288525893101992551308950518038852679531261674384948335368126751785678836599966573623278403184966119871146018059901563033258191180507508448847641655411774115182643607488327084817186627336501319409578453230456660769684734389737107588477348773264588429349015257046363174618361353250328255531036043595442474581063121910112807948436787982431130136015996692084552580242519132161669630344251631828161858628165829395295795170532406604526306756712476522644091991906939866729355507583968776680724755374758203318161474235493749347631100387781247856830190074534880314719554916304016546778372234717722543550932893141602430134261238414184085920434503922197916767088992689534294413468988203390827425075471121386867755697780154652231219750391246960755052687005095364715357125817501679293604047451901576289111244982576562381161094402073830945639764358366640998051626416859049439039373900981801620350386636937796546275932158628641570874011180969131586611717058729903295975247449876481541979493943920585723329519852539422833193512277588074438646304253665728473149113062419435225924798407444018150492061703810039767084499335544936829362757166112292453027320640614621304035684168266033248068304667534639858338015084935492343561276021049186902872807390507238327438619687429743923418326250335546552470518391755483833616155632947166490522719455369672352560888089988920316052131764501330246742463587371772583055583380131130295600196142742598300149017656617658723928680265292764011689758229352396282688615279720120018588202301361502770619472471253403519836013315335465447643309085156768709884805184111033344534298593103463783995982755413763593232642410405992382727240598081066973706227844958947579816965499064114597649322165096745178461015920034240555387411791600333442651657488235233079352200007126230083784388827646517807950057096167712234564683118429139123965767045592120045905905040583136946351883278646316503614004467503320654998510834480759648599447934834917134428045346686697238095481552142395741181573057051315283784072959095959155068507987552968270188642081180352002061845129531369954826687324599913437563397368712278635934330909367111444351774650285833852587812481943753060004010983304279128969506252392473019851998288142047503007403959335588404153295786231547333147565570286515387188612929561182093226570020018664509350968347283602749268250164546086005238025355386995247093048108743131179792552941060800673990031452461594759911306401092364248995408493136156091522381986654607234078518750673212120436045717244454006509149136232133008951115864612036925420581334467717197864851457209826030579566629432632857001191137175295098805865690084461358092409042990656134756171702639432450560112356316670142637906904936882953161128167939221197579410445783384009954125891789395911057164707589240374911275553315301791515663381581428331134779981746071231713155060657238986596044767736163143501144369004145507711980809489240832576851326861456897955947732717706319567996090113146041206409074061386218718492452973287039280744506073647062661123757731163233750293948931389973078233586411172165897960327597664608902902007145327848260098722217971437431136204184745395452906406749773304633956030851877324505754070689494880088734674948239745278251994511251924456651348383151931201114141679809516063837850359354495394305810129260419422531128666094415907119048187909029398255724293219806045656456861765748693759140754324617283336068737943786131851154330223111981103425496538453149442721021091336111059110159665291199735742393902168873902096795099981957241161886120980426185155315176028416085573198950588356625327273785158216543376046775717692732792470336737763817778772697352822936095201310312386880242490222562037508689699212607578138183381703295972394861790562863843910662466446569248873542737893661935938238458141406049233109111237665763618925420030250233259295433167025831371201355646850157970136149132117371567299626789883646945949755676327386763436722656963359054917379675591853496442616807311257307213108318847759710499936835788859424198609946238555533240128132174081389760991669036947483076339865131795740406795346675219360042810325365538502728089989546756283248592231437266722468105516952008119954019258206683793717784738699257978911756062163489381000388961018292444793384676799748905413103315722872023935137576450498218714624693590410497534130497982224152745864457076369443349206884055644788333204074194471899661994167577683121973774488506179774820966138947040517506790657437490956325806422592345511603129841735511737618538771208799535013635070702148259635290606582402015757686067384085238609922808890573426965958649581386671126880434305034436910570729325372733861588345343642346091403980927350304781900811341812417839005002048258663566402090403875769334243601732214776869816885998542625727128224274148746004838022435103902296313614647742814068495234346578400778215610472465694615354868711304382582034944766393870346210313329175717640457719839304114022014859504370643868239487964631861300523570354246184581532839630217815791699316323769321598217791043599212512539734446429450598017642700942252353389988905082944836074850776597422245333255953149578269266553862550876161564701861708901077504115738121426185647406618588221214606857184479854167966965433230597259861398440094404358166732837544994039395557869374850063604877208790672869222446582687400785226916113314854879759786911412440547410299644967542416149548871526765788059097737882314269406976779678790418593537127172155182210894017433924953891067817113536671874767822877556594926415726929881545988490231713955497467162364419808699156859332079725875026194008494540392138974600987154987447111102790523056984437538657804393638126611668526151438509403380547138044748981827588314282083922825663061106549523311534923048571752516807226804386500271676851175031660097739468635959900519049729950271637799481514515019815028972703398017031072420746788773923476587558337142968816303174673853382005020799541574544915911436132339223321297773821000607173678779056901273705643937726803728703222453249819170189635377107137253357936879758791057274484286146912929073762390174165361051167160112535569813581239082497142539627139440006292598772362626405915672057888611298574818255668601088062717644013154196204989410751246882776615397340092034664921278183932195169787019286396287322915844234481332981553620891014579709901543384209220352992191400650369904601983776097057753757092674927808063281618359416108012999463597858658761056684807869902727484556378584170731897171327308685791789948678464684648714919446944761127511777861493337043546834781891951664583066394743744460649655667746116580690814405498065845830905891810914898039248947984417340200735417385813561471535170108628607870165448006772043069223234408797968359893234544812546286268105195618825415476273302498962903161555345662765861679107646371701201536263845329428292924193416195531206028568013350003002991752174244396670794200590323313584475615012958761602387776833005760815234983348296186435168863229655375036277361492599876460739546936349451385910002394145639099968151754644596618882895837847589359933737512518947410184159613296117971028782123997724674778537943502991275505963689121824945836057159020940320037434183026188167364730823966694951592627489041379163259162534188948530577643920522171476787978638723937480022388109215759465297346007089858764936160992290351842835879235928341903513419672734277641794449737933767329165880236491856329089652582438077881452353218465243859734818499484712122502822151026184189076705020899379869218921431771596804223766499343334202804572456980480001828651633048663458229921326302419919222947136983207787238149307120637908805747072209509109985115511143324413544971824400057888350891952054322306774658403695667691230387517788695173528455212435438199517207160355015815790893321241079268496054103996817225021287852891264763774707092894687396461239540290584742920900522392673778757737166493850753686743499276388760145528365435556552338465561408507132048595175466473974986253911892812203858011175816288535237204782088705334240973975151055913098380709511184234477293174550516153349296663522531607155196270461052570087638951206686214209106303580358929629694670932497271729067414487921255510157128543455063751147254338645616390244495094888192483527633043027265957647223113798323881937953163158074142234520887690228115327648377789726237237658383662245346000380246365581999806220543399398514571880674780755534178055596193731402315144571551457713396914494269793215347755110987965396506156170070709918359761260520723153210624646498010483360595920288031706257253282852088855544114123422363800443684380194462209882035867453386085535069208479332441715121743915680567164522900904441156514392044469895937507538340206026801134741652939801411867614573339677905990076648543567261254561638522923494975709417353727240537531305272068425958775927384489372974680570932928472496739864073461482066422642206620995509859718276920517483275503364468933339115689705517814470474371330855579213612353575762957516538603389799759140165576546741136478186907872649494320674169604057249994575799697289027985876173703536859311746528754184725444103465975382203280489505434635647636261011095646664092278268304679772464920755987920209367935625485431713453275842092621293846720154338072455224434836965694273884979481412322542144270687659494067966157076768433746929997856481944274516750570787606001622910888419719406157486534349385947446344391007240213558846597141417474787009375853400368207040215842532429353527191364311617700468456004479658429166593901662630620290114113223734870005636025115803219713597518319183977356649833262344894394992790166174367716653295164698331072672439024281661422748993252337737061370963793576257893249516672110980458156548559835756511158200441265113557662511445817598730202899648114093520165313598901562360969427152108663384975120612759075461211745115517339567375075442336638356542592789406211635968208392718333008876389964687189727051413752488797155274404286705522725570597298107092302447689479574507645916012094078729543480773505812130505196405271367047805317064012576948188927537572707747654021284165434533002065501483472787066891390171642774342561265509649034931843373458251302524559484029131359324502603273422619225124979307934131220825589307388444781547456082883923123373933329249455536572780170438453943122340145632491715545904642725184128394916337764036105083338644850908946634779006595544594022818808400506976885220881690938994960552365654692970318653000882968379009147421907607788078868545663718886991514529714688109869570911052836145224811433931132498595514869774191428866922773893160279042459428933140802945502316115394806140347298805767117388847598179815671712153559248510870912843070826757793279115511496218004186220812424320991836979131405780785379219690364137554944829734980413598344869590014740746025275057033563955245493049803814266591193408589009070931099682319360008674401928260115436155626965063337331176347272334202353239327137989092987343468928093358567508435489033333661780180861655004353424669563236496247879171362182229730633323395174845706365268443387840779096575652836216579162885374079232944051511112197664820903495006147272564584711884971563732841826906799915429130706348876537973175565918256653082611167717252045697597820478948574512842812354560673200472373677541194930158726894424795770071848167935439744316013307100855501106790749257486542125983473093468001918439961071116400850266842641251891213360093958102991827310046460648629958802343416668602552303657438657249322502391012831999210262741491201741377160148361274837506028953647897441854831959014663713086188818091509372135544785672591015738757589639159874337657823376810915932837094508340405795018312988188254086701985176643551536064380735306175401582878015008000189956180461665471014154968520512691811652029165344292684317640396703444764026089702617611131337960999079368130587869074857590341217037950768332881624515851000031217559215598995539564577550083888515502634033187732908853706874057008547425330560689910833094292110131267964725928595944231718031796162776917756502992207836889766699633055736069977367611265253078188860833334392575410941049920084125076461114932686801578075836307485750130927037154854323830517090936963753746860564335098702353226076730984124442849338704701787824505331008315305293007826106712488288178211670061154477779755718976789060476485792387294989779401601696026600667247409141236766665420420802822856828815105947478090429797294184391782518334623603701616225825689113065568413502444480191580879659755202167691765926369019076844350291709227959164908921198790426570459963768446076563714668983945187211844991190987019939300034871515213888999059682638308108634991130474663542847416444784981158964390109938972537859713336317559238725824790343313425376575706034136504308113837599930377493715963762833412951178336756536136771882519790038623811842628210126744349739694753581455963909652588993174504758760833492941878362768631408077840768026693686517976257488824847174914464118504486129125913990617292256833136684662605976570306650744181564266913210803145924019448175556349123867005752974475180418698900467181364533700669868293343989305355799470066271749464477064870907125634309474668432581993777645211399622324508345881890556489026142540175736932093793847345129448635703896680220890080284539348031225600038275660246012202610371457295607910295886630035681055277608570849252247159662946877820470623324547923855160154658638393190290918942073816624893900722210929489364216068980141187958555317540973484929325684723830430403438119838766007490067040558723093511356761485100268243561455967456202734873564771596287176186933307273264580147916620158806271773582227243705919235189983882073122141234294265384961565758100259954620022464792173781750982172458815325613401319312593213863100008511239399758866336880271049276914713763727455362946767781149680703032961070118966577234969263759092753496117927162119621754005151291265584650309215308488318399952465883034448646772851857638172721383849490442931736963824234045057090103670710362407478753927446930625389761123781398175227460887349922317047497781963344306787789864703993910103920535353037802141673069048648704390601819712058940204091858564699899175075815029788570559666368539775827530829507584049961284548029477814618828696916855211614473537221979230691099405131705563792829219275910814485159294602637435278880024790585527497084991075200881192771576874918952587276225574751981445500771779414262536901475190547310731835038497608436721500968941880717102349512642929667415865727858259893915513704801383384135366996196984400496717725246859903577315969012646047010028629792543002745216462266921446733816546648156459462360164124575135169665004361640435324249328900240681405796098688735889441349224772968399475762503295299671266220896410479768962398215376676754005953462568516605656834981450927892810074683812046908938271092157935493326038328595287855347213713488877501549320247210428157171355688289029685820190674991496216438783309567958590275915869118372878474920226934786521852993333207260995686470483195065136404585780255482404148510935806274620862820659767724836875732037457259175488312635787964057883624368429747794188007269022527632646719855133239557265007040242310086201274248551643917946266434493641079246261499472581754410635010200221685122242412751124007304883296795889292583031518476327539599772148040536359611867402535769690429320460210297577937517625748074373636087199062769292107263186436889115110696090616365453547657782101553697823497522919248614869055112746499731692051757241204290205018045977775507944195881812164178170424008477802989082513665313105742893130332702811159747444987476291963992496996178793067755517365263431587915310252139641250786503794875430082867458166289638535812868576542460598389619994007295532510257626055240137960713398672538475662623535797023005574729817905059607338502562699993083462344001179363827084719660592792690007659047350721905673671067129142613284224648175578427909527787591204227668815346323489784820471568387331558074265877455743345916236514278249513753319301440334661204502674634916683754367658387252709979738164444766707744474478057626938936263676321815148717276633979576763266084462993449823067428655433185110715761044430901900162078981774099441168065070744350806183042304155591546050767485710577407122780399972732700605848103499266594109061584274864228840601668901858169674533351942705456966004362032586471601794499714748622349992377684729987848408821822037833369798461992848602019656112818664725291666372310008994163632207364794022982871037472975958194324531933951153606782458421060652592742050176973944456610994910089372463900628753704415985994828472534177628969790611304821382939507283954875270575770189248904424658412494847354996317962748580881918870868209873034147441538119502639835086616909760537100015687452263138835702197508240438975027040994609752810985423150270747768910349690050205737412594043637929273914412965162635075403762746583286370457440913132531591797148661623760481617310868714098986678950847079972928402135020199714919968066721866767663973902952745288766285590726623752914046058462163973732012925873767937984828680083139380018425465113002843636241231300090717562328932803399055829671320325824602221744700161499861720021604846722728556836685376799142875450699124826962764911001498849397312281393444890488030459965142176470623306224792932131129614571151300778873109947495740406313607577896349336205335948152363607904451929134025566541517737241946502242484953295931513021776192220055819175576823683446679755511697134590449506201223641417654110840463849707098163386658313789077668352027320380105214341750574121933221175490747561011070405507664788799922688895246605774087361791472814862402864626445247177674850294070349290578826155241445792195890634902652854513051685203557736078297085535163889445108948710632194511715422813161411634996456705831480202486610324875900713802310025355627982244209724268723235419131865352606620031296488982912323272970802113179862080159241950930449914481681328045980149954313517680308100934931875834835831959118854401730122738434714438151526569543900167976974008653535008435395196506141112276415965416816847704316763578957665014162961838131650930219107205646923444614341859389829622932384618169860364277905209132684482110683998255589970546582430123500443823360576072739893944353087089586348783523605029934292747928489420580076769233534019149749286184008466945292456660496036617319452490645601582370082747240379796982463222476457252853917276752084933385211570154495814901814796290071081964834884675168201024854347617875574850715670932086912000121671546442152307336128429436647061896403113823291618627855967372559002189055389748753989041398228054014270192313671048378341493098380387706717885862143766658680455895026273511863763692409916555175641296447898787733365014514933423044589191287898670226953275846335864147421902461976089680776595432368808760581832212241408830849798285963666562837069637450704080010569249294032668100438898950671882059368803249830561825035691864749292443259282792040252570040081531674045736433473805599863266193206509202294117504819916842073711363396002086190977411580748007968832513837245875532202206716486853392912394820093345344977922617288700775597401790091739041737918324473470245766177107441866526217453559454234696627202368400785330178816106247984090584834052838899448932772495752672802488118337545492979829969345864676693305798474883261478420803572665864367083866300015793726799038701199713371658587887163391544225338833332768158969869545051035975516675580811630221158069016743212926281477038046385938611840162469470099181603932973601965570174522363430675314569434860713974774766509475767946330684247872733135337862847946981242993614871694346729079105127201186506055318180979393767132086909293148389721441769219496707179429525021140621829679719339203337137682011203742279737515772573376566103623615757916510567851791666641511316956021603828985645640228140664138289097388828453356138313663955873099617911340080209411807197517633643835413017228882212557932846486963963987973872684774902725272024580959656146600813391404591096888544482741703492774942744481148407215087648257351046020932966618992034825749439531346810627880418275006028396548941780262382223310764930328317653829765565839085963659309260990793903062116314087824176341161752295521908193224196909017287040316238796605981098591671855059270287153576737681062720834947669782090633419322811360896746977658386539315536825181410155344221403274886553523491710457153406656757629597268669477479909005318688890901724541971428781658698107234912422131852818632235852938059123956836097181779400916713383212310149389097150569110746438712024084916999701161531281053598104446847980328671907607747574505296341716137260410739602462189797531439428835287484727257395184510539800824996721542035637185769641492418050524539188478588700930600105101257365339989091857673602252378886471260699859362660877985427522905561444052331159889785124662199826029285456600617683249230596392020144160855542972570604885065420338253911726742474422714911829172262402931147101772037416416381274395624969507451881246682642296170929943221303441541744786744328751969026269742088284858678212849606481034718401535792290806412649627059999801697746768037056144670114299120382887973742391886502511289586599860091279552962497450832723739996276089590159957646862637451916785060721244180705437131213823030953102872794565248140954561700300729736854990594735250858645459361433765145165567441121004024057689579049553789967627618435247426154839240495947320854734812388068422104856322016060968678055507531702388434649743346859553886677167135826742982260120395872498962399426481129927967540728044192567585948818184621836838603466001006627407992880722809465293514458417572401697389164950834603452178636339926295114574717328069588933278690935593570251478200014155701148931835176547131063467846200868847947683094622715583124982252902187630002057788609030919108764770221696970661733239859359180137827184458606371436423259149855641399389903256572553266779605248919970617209093996502214831449798716663548590000631419504911706900407379499124577812092613473564629489363057077302335152349100852433220287548014227490905950791419481604344533788894522620247307442151622005267293698468318359836182786688415601013140022584054179354593002170996747103536590655383700388337148916166347291957143495024894688653349731438903233622250558138517504779366785849036509026243226100024039746865799702956145710328844754546215212944649979033272161505862725491274122275185850634340306604894838501064639506576554318507759785592686259172612083140178260539179219540099175348555190612385839074064368066727766808458933638396160608447656268226607236603666528907448581040659830971711562308018991303731156624412244028119863304235436473256553083227477859623193424412041717706008818373335370751389395459425160486437133980559679549678615577093880826034072359169783832926591031519594024741802856482062258908784645675145678528280749473833315564972296160669597743081477532405880390490895460675897940052741021240505453649333980628040658727306143554642227919656124667068284522319813982382551352316127153276113681156283305435019964215051970015180808426896367551475375971788719664887141869731398910036163490785206515576522978814381328535666333195984879837917907283834000532832403161095459406747500176980748962006768229689101859492699590042267357190374139278653354099778461035803564544195549436229498817076922743055657148262015351540747124902062143240203609054715740636092686078937205700136480973604723509968071990089950579483272857254792389277590730072994911859533549818343548758173661406001058153285446309590342650916458556019697423577253386904597968173632127342839997458694880164419665964903818456602998568107451966138107906559694422840565261322255877635220484591389989460178101914984001694341574669566566198266567898002123547925929529301909900118187080026977326350065163101091334157098572710597968473008414396710895804596426498260313980177326912721082146819707388873427211300007914374864056231256961558374407501020089393305815873201058417540410779085811544280971133466317238060822142316882767755075502908045390881432251262869786154806448762207750542944004046160622883705413143428069119866924821831076014706626733494864780643992231606809045316835802063863112555257771562057807771444472721478432088272761424272205147428340492987611568151388125489622004041094186941539976723002988743243557573483842439971046880345670065975044144205118914367290906177213047378382843298297602581957267951655765773401312400399633476365674935689745780108350386200343337512870738834086494062381632793776211591191740704195745807619913886896454423948409912714397285854999858537487288704809676396415141707508532842088931636964178426520076400493892473860832773484166890798426694351087851780560292760264619031230010788375392653263497093504003731496700298565058579991501171500043018403939871207969499379818876868379187895188788363524419338487123816648476305758441016281337777222510376840624665584301984766468478353599466276219755326779835657915660485813349674920904140780046885344712759998508474340428866763292623259209067656126639329135058791571953347401999645913142765286918143095452394803249105209297740256256350113264478748064675558886166618876542046848057258382342996328622861819412465413584808389156424817105129844740072838212639177222023854670338136657445639551084859495763910732898397887945748988981775606480453615171534845060999763547216929951301529707510768959177046566329639003879997901887695770442363703135980124159001725807545693615386607050661132580450552353179393127516587150468990108186998734086373023891092337631203850703786606361345540626119387186276030053146629681251256932149517314114643417742589341223986014498753358779728157875263106149787665292791144918224932905934618525062080131423773274531276663601977654069164228614809294043929187769838766804817912296797061557334810266338657062993406589488898294616400126875281994759608111185712510126688771296853657106665330313077153891856891454744418970046195136503667598619137516768858852396032621902590401422204344207089277700316783637715870201590764299326164475545908292791449443193638199272052295379986729247146442320214392569097984143298378976871637369269037902014113163899432199061424437773494052784789691510986317707787365707778666893840860046300863783740438307349196203420161674969216674062355517444791327863037791053805683359360880781880807742269047149543377767268896585929459246927168358492277807673524794937025011899590942364590054720964434499155068112195456544247910361035692957046876308605252858640064667872947764380787348619269850944286104095597243776022198161621549733502161845798255619270106188676018633512159817450099337996595724044947680879428719219933426047682343575710731271536685966422783443753894943449398775039306319228684641187926272089093859922014961124325871974203021599108274728186235213039278160297557710157189495922613084241444575477328861685947366202070325190073338375697602771437532212577620353574151258768616769864562742511939456928373316629488235251545642391944463503856274655408053004652657186564118145216017910248675413850203953268329989198448364555764333703862376990675236566701515528405978442927557013067678416976593476244019924544362735502445239620637570436632755315405218908462152926103382733113700049832952360972580556008841848710020707084807473823145276529881304630852340343075521121687305093668559828578090593476014777737379227428168369892720533532372343579719059258060698790927183969439250324961373870142129691705956111747049151712903945150791630856035785730088288884177488831015500469703301975233510383775657750084459778462233284753834402921860669280340334108825658217742114081935456541825808819861007633691743015158834420480517527752186681460862099889668044702393189145939213763550043077310277828381458622301140793771008433662073260266734550778374142242324975911861869181852747317660277429679358930436406412914283027571479469322996918227469548572080975835593754380758078394130235185711875696290109654773305706105677389879280478794425516667976743652084944399007153685310790388548784388557931825651160635580974378831126448555369534176737510062069437551608643055259841285957204124136541118311286665398880045792674428456771012673973791759759248633264627346054220597182137881446225224266475039035008547119292904992464631798320568232380746583551989876945489227694875091809282494963130433813079721491078611980305934012529845994133274212559874674397751363173414683739560865551692974148439321365142594241310629613633164436533433253585126064259914096874383868997485010430369960928192492590972827015189861491861477680592185011597016266562841069446604147076173936193600746586365479296526373284509931359950370102766226975598997897103473929907432575697223126837848962230851813565861463257483229331835860440807002903354748586150504454811817261760391486654920677376233531294302959223628786372458646531019268508324947550121126314008201358762681987071382204112933367161805663708064822594200868549698878446081175462109571568083075866719946493228682257021799138515851140508573937598541812862166437906795673107966344253622442140603849706145413592179741237706403968721999490997047125594243865116343074609809715893210510486577053333769156008665155762413140649310342158005809554597644184457030332904029014893828527617115422535651204998532472593465837914250330294401202755947599584784914513068657864347402078225801326674163542362975424021453062678252926592076130002429410872883616321436696557477930341476046987901531341786416270731948707666123750870826224952102111469835880742246070202792566305768605673960652452448546438663588007255857546296089985839725079919864734910051516106460183567086184966721747541359962427997117819879383905977829231783475068314184852270385981430222150529876993301335874733370966759019379393000145592541212784152961973536983245912485637231657784122668115636163771895793163047993303428757444632537226012509710405867920000102273561309309494781713381309623721276099114881541280802677278036134469183728306209855908960936801335746414231954271735445011180161559305912887680193056110043542321173402922444267229416487689768244633690162711188728814952859899576732472932195332303134259772677373055303693768346385712698753800293486443460108141914621173575267679963431444441020894800225642746985975582704050354944978744411332254804856367208558554089799497831687098723178382972146931372821619232046185023807315781138341107699877333931503087426178125322293177991886106904654213278903077559734330136843450088686376700342636101434415500519650371250214383821306359733756921894025520050654452177697026232280499303911488199629884798434407099323125570599660013297924037756729520439165893294053605412010266298396177449862262068097460331366063597592470829781336891634591418771523334478354210793544497566381619532908333490715259579717659411272113785914082558147188424865985296024160005746387817025557637596889740439224017658173462949674631498539987528927392640456577707477233350888713838915572526054223990340713774545179781649184351874987283361226127586891752242479513181060279707607085158819804546396027545787756769593468339175912607375878374603237656404013113921892736042362319686902665958481511794079597892244227930054303457986330150454345171523596674814465493555444722626463416016530437342256675088623775896133754637631567440845689560721260424121402461274678757164163641190058154578048988995111647647821057371853647706197890191353794006994824482909918619876554591245300535035443734804302163376850472148347388346017914562594873756189656826113756245440526201943171505591505747292648041363149223665551974929639271841184344618792789876819447447503484052579239358863616285378583730139291551708973566816826210315472578833405467572446051183076851350615196902985492048900837459347337479013834354702626394048426686589494041051062556079062492151328027464700841483758021608631064279402010598801887329466725326151995469359238452216186158527357794500327187761449581583499509074700379750409922403686671334948930425623896000531725938466445311663047411052338671253747570194158633413339368168059458097378622565416369475284478726647598003295135143906198467877003830816710581350806235405058404726263220618264430391200372079582463673427614548446698393623749004898759033600275231048636402265944113422713383615777366256983266844190024439929639047929569377860278132703714967719387827883886674847043671488345224202304220348935031015216757748787765746692181126920427460833384335530727859722260004439834573728629894092227602124645340387014232191231071306697066958276483413733843918992117620056625816279484792526967666889367413934568925723600005998210934900570992118167958961977900787694182776635176123277580618552185004460221164122663774011075704301322243412639619610187871977859560624925103239298775979851446597999927277616396720054894810736857520600442245973929308292909360832013882281185179917988819258453887709631299183316645805084881911420986187300975861813216439635259213996716176634290103703824537635162943917231219039374871878518383815938459286660329232005436600580556514983908713453270956968984798582578115193781818176110170070038643715110786072421646781155939490892848850808767655432119364724760629453454812495393137304083688219807676052504205831635849781025169035188079261528094142192744410086345853824722998988092646382160070286223031254801962606379688113772599542510401785337420446076796669959768798274328323393551008000112961500417234290789956511608506866322070833610313474542385803692068821315779024913851216070671821559854966612650353804827369531561796431471057721014178716052258913547840239723542784861151620763490793571088431129032258728447207137669185579844061608861468984004763444021431505183583764431530220783281384095735234567351209132707556693648202186428105009584982695113728036824411740045694285626015846029099576208847792855342249655716614600150160083735157281841577363712298571093918196345039984450184918321294945813695155533460067023616892804612698145459919968416409619027787273842615018316953319049928924050500878209252649351027155427133259967569820174878460861283174197102283454134729292080450396075416204996938712175449547097736692438568005328378283698080223769384248765243768894550437675251087779083498830791328850290742887612092800161434048119237059406940864901807062047950184076598548137109404920098885686563688041871082749060554228707164098998110627527437342125874023222795869933800671487934327496655965943194192782426224806628873415248692715348024362629248558402310495364997502512021892087317614061722991526696484918321276133421443952870646961611252418587580900338500303223113146760858987107622954305096996357818471409367532857050408115099118502592121802631284703273716725286043426707671213479760188454407556879027142837614057875352015274064135867394109583756055585588715728392619612008147840199703139858195292455056642245744628286212415004149480678753233832675382590949181418063910974697147475837216285810847977122984177630060756824338456433122760383534002401891033020454069567516510250086222259996999330605647672681539113436881085887547487942030002204677737198387954971129803702039914608997877745415868587269402656766991328187807213683238504996618660259616804383587960068297993812232177997827378673540550103138578870721032620657737667656391951638029936123156992096098961873390056136214913616489902656904152065744339987546630475179912009890872739186357546347311546990871688237440269272998826273465970922808634983139352293728423916918396847062498486012002911897478093630742469946388979913501132812362277015903034546484881692594480330850315003330592137263162174215312221151811561028652822690065427473305616300226596772952493280875855610055381196494358771437124140627125309071052171177343050578836366121876081934285623911811587323050003606090307428941602954979910379097138671053325283155240622094170263059235596961882610682913337213293599683302082646429262724081657807347226369413321695164349051174745319706570029985428548813473211506732539126752305464534808221684461097130109844356303424023840617332306267280126690548797288165510191073204064328642357021196723964326400284642017851341009258801966695555525959923274516161609595948117015847379281006530748621520876939109466088785294833896307368387012499269849554670714092797221154068955516780560252142581434902648170177080715592636293144062998094440176861208593907724220130190513831053125248851819199717641421490187386199099072153289321098278330383792901578604232039897439625045286128985489416322370167178369036721539540362685678740624506705373870785211199802200074329487150616536662944191392076803687453580500876482503226561585981912565634257273242994491953475536338047850515437583294631358590273398378162965806468053904543418289352759217242524197395592380703071457777684528031247934895183988295278948651242570824452055361231258410229562770462004891423988313255908265088652865744138189467400959431038113545902433758424850515155924402140996920176846478869000734921536687194923322015525440052678268421498938386153368533718552816538619585709319515607134986915269991374470456108100170016190382255894467450311632065483732711800213937035236336679428124172601725981010594094512163960534303287385698337849600980044474466464972952135510921500278770554099246552200555825882605372407752224003335031971763946833719980433395264950889055944056089912826669668498989213541039627329045337418343963981542293431583081740290029876446981084165888600904678349046083270956482925250486498979435402166653544562733649393949539913772437405984383059433307339606282925033234867680382668822747618283588692325277241710985287898369034262706064316383733407403354601725366111374253795878234343593899862671194037313375675563877879541372775747080149755068115732982339187394102571576975710237345007676883978559640248003693273746002764808416850925399777973528500159885584912051705256740280092202266133264658074741325858937156761574440885031723568315691792189449775217812246793075366236833999450383410348419348991075623721925120363544662598050758080753059470437755522192880955923049442058194637340569839002190597154791692811197433887288448593397261110147299634250971547924026296961000184758337347267625596859853829759199712078745207627490505377428555888912259941432783862058222951557950009426905180684672249177516952461288244390010728979185775860512828936762259247168953389522134156643247663496736557757729751803087873740304313229031001629972414997050288577419653541227604232871503038013384994011629796144765884882909245171391498091980047289888820551427586271012225854295082223415495615040911748400541333665622617522688070520405653739497183143192296284966672368822701095170420079435326778135052044283068477830677111485863140494805611221299119887105983561452257659623375557210687473953463618026322725114626543441146963730230320876458989351475781827008649976099604443072393338865408447470350226462550725623340693805287368544617952269544480034671344330276216605855233932510639743351900074639778185166695460970244184974565247703555536361078696884764011880140634399919811133052750930946988980881669045029524492967436320583091350694151699491997567578831199696631276937438555081311298423756542674361933061951718198545784904414993856214242880448356518109310431242054057647514930028763674874654521139619088572846345105753937777869272146646526122625834479086302340849752177340898334380647992696662756277647826706563538101287035078939009201084973605265521696794021261553303460541756776896412018812996328307820090519825908023508703764738468505046614633732426149671712529778381377565075031266060505498199847239078033327409195638703084106615367666644638805880661237438031224296194805917337988522259971687008081060039780940780599934785195831762047334088605028529282612284784384379391616021231838944418546525757735857662647058465334298563378743494394688455168335909484085189377428496253128256935114679216975079385747011572700554811938715337541949018800887761999869824803003274890768142648138545507780069366210673788510547336850513251772782606353284580286652423590908656670817388221867411991003842631722523706199142596307515183986338257355348888503314605551876202396215914608345895268297142554074719170131167802560712296994139907733253052686987822698489801359230721648982948780620917855215637722047595532864426048157891334221349897916168155502917183746020065233372221963797975078345432370801177906402867252173311197387418707558239325947590316408445359715002902854469367187516136622154540713941353835265306655189327610272048275167036116516241219616498360866987612053581634530000004806623019821526385844371046179449614290133807152076908950159997174472328982422512220943214817116844281810399564959708646889927125122551370305283544085474064167807663332970502573992732831708496815812079789727830219029449543147970455136275986977592454044399759239728715091408638689180668736968666426352227607060618108066676536685655506725654897114327595534054863538638549447570551337162609963625494275175098606108313886781254544601894599666620050046452755488006353804139689802904143674799650429199007454348515492596263351487893540540866480103140192093032978335373273075988246721543597719617665718076265217881723950454447255415905985280309807203528838862531949672728216489663637936602563655171992214287943011423892938478285489055179362961257286042773080468929474694893840520800830825317677612218827600224466949541309065412567347568597291482326578827414308014866182617979108663274110988125185322743640315599903941051491479042579941115737651873938793851916038801044386106625655546066166034963358479105270426089592127663580082502919743507928327991450054899738407832325438696276123444724598903627044527487675250685807081754418827408353304468883006944032227969093746874188130343366754903404678673800338323644450376415261075443297769607721940016849572774061926145993028273000572283773813034048464859068595988099970547084420707374019037895524275033568965326795344374825055362224957450301967460804211091527198345875885875170232210754061179223480761575593550098898614746037729510932359212730075844311831576285983676936659977374545750225170534320869980093244784744122655251583904266583497942185898283132167692770507209584214278427095657578034024884650232596530545298113453937264401121170640615363025700452221977254765860694000819089519199144189282691829158290690886301579678087948251551661655412596426737730374739498783243752976260526007861971068498015210071398745641239483460292657286447066860257277880808120934121768779778351482834806828881942009585934171760480458953552345827201574029419282801966926203851397468236008171001252119386126918266632101734546650705757777273082024566664533302967442058558468199150063977834051291089701410812254561830615121595634941411148194181774550265155246257948136165947868328664912810961778359523542784842926122590816110776161111012713629027168933726004135070480407020953381207101185442626225626626352033546648774442963867988142585953849036505698525971614083320874506035188034447485932158840617537615397381232203972983466337159499690741132540122161570415280761043330743449644316746024186862403351843613139207349789775293128104804220822415787569792689288898355632878821464143172094168919144674110433852382990050799011360531279531908612573538773408034193043732814874429465820694787698226772967726243918316981088327384817899492770366590565839798359224235645065049744228177251468051929361277159729274392965818128741754676822224336880792241457842468553044027068583305009238493874572738097002332288414968785700938887669458379420849921696448155131063713522968415904622666623060686719648628968325476567486171108706617351521760597209125513262688802012817101136101375395511740140398013501241475905621499547370815183396379074065296790945162430863104051683720912734777221641617213183051522443507790165925325150535342708034881825309970442815195345677322544537878365744071457424105959837779350826815291812723159708760903996971028823071866093751283352524479277711354400471031497774516976672328785250387858150239642659548015410133732038847941097222629205064328301927250618858819840996163065037275770813177550466277656964780109828237303156969766232902520898807329982755214844858853666073860049198659268838822662718244333473277280995713349744288971396081901705591734446038208461391157111823505922364298711140391071039372499714874856872640471819384157808075326222402359942582573876199030271193720970943869832834918612579831222824091707874329561995083781978882015191228421768239578161676585222553710076004484315287859418399280503885691872133855056040575268941454156392533782101201375508899478884986333544572592561255925901204671779341143680837652767568604481671591114206485821413631456440728522740549344508229812136961842736811623720731169909108265874465709259791579590559297697994422597842157824385097238213186562986350753451055107473512068065370464542101825294185037338491209365057033839639893116942784827005494073638491748093898882484566517878623705373048982886874631562023529367317214902837538463573653348474301339298460533939581816787040623017742800344058034035314275143732655377513125123920505234978696302610955669961519844153389563239714677175832629239658143117869811240521109240472984840276343567729248389823467719989434121916073218455764441823185722141441620442727346878212206345727772882442077001186276063325997655410908956967910157826289547099399222395910966089643173751152615822939251437562578944698095401719211466979673378992713943646994827716344241461847725447406865898205005228065227137499416741198339700289362257555825519768685605653096259241012622583322793770604255194598352527023806861461286697631380984687468900827139774906836475232342083654304322929561634798258044894305789940996331165421593348435568499686196966978434153653716242566212209516440008838468330943161241968655717510975111670360136397962271804977736011012455494787415224504254147869583867695751225948604534265936400973599542454909159507834715917776236811072558828829018201344410317756846116792566729826688755459850344198291650319852477661498478031512230414205157629102059144737368070682072980322497115024100409727540222658933290443541857111490801272657968918528900794594009621454714729367623413713215589985955032719980633539639699728192404515150727414169857339299058649358219252407349523640692607596510028190824733334182051727804009846469948279315843457908725030320376542909189579393622718953340672049484129369733225724925239314968631486550493956359741732829251643521175308071794018920695438158980154536009686230209035703017191612133920970101274845585227823281206341150779015756356229857846607920199428245595097762896034497419466925833509387560256011187134208229690507785208976903142924090709629875167194815736191269090497985248185826840560455336024576810570792807539918496140352941401067224373710261160846509287045538100173594979616123179542012571742130410467675304140625895312021239944512963709507301672656209581598181007197259112231055935572212890054545881234454219523770689881601819678404045022953361011449256290194603721403564119650124051761554393055522906055758033464528021238262335641423391275630293210980128432121532153137230734151224701334261792696953684137095873612016842332277426630794405810767195318963143618505168760869287052563418985075237326290099978420007692930465399288846424811647621621116207782277232306905980221203793326666715503731143502777513721417879309038366899655697774665346767877022385772814210343188054634914113862002405800576466269217634304219579774925116240578472669629229729447808540605129551158786886657663032317339362315765678645189075370082822743571148791454661910246432963954930912236668463745520508074576894754485753864490018663539090445115078096616914176117381724473609595725189640346996755283981166515615848215004488099528354568771664838713018974005468445419837870605466157696268627211657484653413128094433529446568026552289955778008704823485529047671013614232471674160544719682914327151867665716894800391022312933528935711248392525796963571634070090349639647085353127449105438154514129563439201663604177611682181943042052055183054822660756078792090499670545312606425956591010722874670107784430562526573820949740630784879187884614035776227119416065944075332656149538654675933086985753244367365456245924178122230000210820938665998544197725037095700495466004134585302204647214915427064032928903821502005139540390480959231693767919657115565299993391364599320503618726288855785742044515274111630416511402369991152967232780894588833653653098279263764948278640094957416528318358447686492312100015221293904788930220591631504178569969065772448830190904347628472054526378616307449818184718858823745133255153833183488418736653954946715229692374388021534437832680238917730024832715613352014469265408344903305319754059400671315240705567479588234931145931341744494697668399630082062925166756477357009067965474309592100786265130206071686090216841235291468977892863947423827446661506178025703445451149370438618494228844619650177983150743786765747468991498904198040659147117997816902716818563475996165947891436664989245474246322153535231708898393266865810424182720585450299895293798340049297753872625660791182835471641304312326743342420262197062808795919897760301225117684211347824298484322011795902251045018203298531629965985315055880957658150095812847779202104220648881971618205023755825580364469334552578277920817736249168122957492330573692109689132098972437406820130865260460168780085803656700772504298097788791598646156252899992837474649747280702294709051967247256631181172292777111845833020478759924613568876697788400535924109612707533668827498117724457128708294031270993354377171219627293372225720384672707528373063396396629222739078185651407444904821715549317741919917227641657387503661166051683278125160241148548895050024037928316185545328006578563269075501716593200800232355543470053418048980642779274398104572485098053067121985349132636009126981314370474365601585558281065883426669339759168605188743251220861089317187942975107769031173782763355820115221493707861374169232360331418892381485181970199953708308104047496440858071043587482123603497660358886696244692203982951272764198443345956873722990699076285751699450956499800955550233902987661337635817381468238366635512058809050730658670647655039506024249442411550793180719474664929012039316233988698243000010735650614780622370048862873506994083359180351167750076601311366845068564818988308662312532456283969937973968182955865164541619938233254325573505694513690808942888414749790748966237225705239126089496983417677332114689914945773944613686192980087185424886545932856144254583714433141085189727047471573106905213713581841733801947802397485699683422007329038513522425910953806662572820281257243661099631112518579054734705885226384296829820423882661090266419189693854843627662150980924543486880952366697302330376573458320041998769041256949028733109778396072231586637416426439090026202221209151092670250432386515092271964752298051540383576004585258671759637971814179045096852628638195780542856014297164364913193815856075834759570921651830511568984950350982952913276891588926164947048941334660913245864306750014425329715044295244683945249607393739208098373378134017779310258982846039959773901626751216084893874248388871492727197294511815764442446443487388732590026577136791739848786874424959475244885226389712639049526537960967548177292062999596838141522696095167294213801657993534930128671550543114274196003785367357752222609460974169227283395303408258120805103096828765335399330742519564804650064963204910160950966325683579278925420937786200493833267337907594607319747981536968458922567086919008626630685369341241772535537929517860167305786713247467283058985011521185597592544354302949230835793201113562384458187056589480096020936209390078446432240769850077838582793287616749566244445683133350288817060927305768515444452742349568611539377217297746167384832319738153616151372527685214397437061994073243447197738835993674526136597934164655939277306517948002747942359585326465352188524057862296626474523522156197501546756174167968311169641693726924325805615478789177869553834973259366169515901817320352772070209215328349671757877710619553060447227661258190617245752094933715562980187766385903054449733844948258922262421203236810981326421273814960218299782395389868520369900074073695266095984280898510881240915867003843338667548815417782398208237521888243137469909191144371451789172599449667351092110830544583169338495443423371331505614875932374422333484056332664939587111049686072654693304352498235146175709016495138962951935298369004749910649102012012108441060911943263737785748650040807467131705028660631155030986988757734142457969312710951915962812937368447198836919138778377022608780325656971934737527102337166892760006000510299914440258685606783808583423152981430041973423970235493277507900757539837699270581358124224019269422718216281579428657505386664686621383229865999484460251682954007365368057901871790746081116158086228217466186611161527351448230262218450018826890802904961812146990089602117890656471366777885930619558178942072057232966173657780155796142876238908554793044771869773546036344597256261801562485036589802316142771315221245161964770428753343807894298305808450224628253708168145278350016685437269922168094449626198237229221850579221629597915217498420335941933451937619208677109694613415048189502088972806362546408860701301271800985480024732646747942766718940393280746399369133535976209374062677492448848125367785690152423852937957160741530784863876852101865327208611343365608568290053934822251333650296005027000296325339782118429318728879691895122220678938846896795136435386444020109779862437530646274819356215592448754599709910772450702527357277865408659833326443558652611511604537418648432651243740200687751332102036407144863152474113054042725955695391934194165694237133174781159916476851719435702216183522704242881559446253629082833021534396327637221568517807283574995245747591488385016568979996001138900660894048961777053401418153476148207718526704066070445406811343951799948290830698565586441595808318456257421729855283338151624017412754988886698596995369956451371268035684118626394524913698991581591044298679907713157002623308033951738708010787979681779550752158014036587081735982412364368519387237014497310824446718005073652585901583494359710813208710054492405697422209528086312953203863775983308464209079770517980357604128529698868414509455757286270143407174672538301222060379232610892326071613436124481578497950858248097469041920558353486763570906041049441160364242179358943708819564127409640045921012315940809609985803464830955301691809355969931594737397082312341895992082092500384184954636537669680382165829411632788998969528357135405904339321231268558553043712646610154920287236329985780203274523346231188645421891024662163606362996676233765273063835145919172719706954039383075149911678762973956019279514773526810044410664040531307111427040490110438721897864047550894224629480293834494041693778279334184675105158158140240737454514358722445910800028983422356618207724261501723962697896051078449496962208863732443786976554329540123661840822983037549948546539095257629790215762228719812970659292838672234449646626169625485095955702746845706350536768599809338217669836750929284145433521809459063284477865559668172136915415752852659695580317692453899379782692082983573695383853425845407879581665280623893805814140793972646709164679084942578682660536269201679594888364475101089303017193148535009677956068191222192902670119849933974340935521520073004547131548788709977944527105642881694228552959892259689218861246655470870654381634379959800203092065364182103329718814575000627090420737130220715187319070419983366218396584997127875293427298596011491754604081774832376031359079224770978674477324969833687041641025548877693691680178393247776198993365212939503498913210599957612647087584711091256608305762554698653909911774741635442045814758258109341194027825109585174555032646209284220523072460796071719676950511215764040196183094357328609091473207921901990906220535427391831844354720833093965285645610045194626175707509049843466186908520888927323242901690863644052783004854809123930075562873512906068210545247000365173213286479552325778799977773328062090806350481724034992043314908934131674253101461332080960180150962244255339337326889043498633944223476424139474909719936341763189445848427639212857368903953907720195872152531392035262261082021168409021418405716612862885259368417240252106303635011987217947765280606679090945808367297571103695547582267622271556501127827217288982441712132601111580910574409539429076991034644222177148697128075017309924996071463225541750976511304642668943417156813738570692013683376392440242089841691727164354618767747736337774367852030764143191188275248616391461149714015779828273139579860473691437995686618410437211956893285275620165604630994278611878355229095668796223383770610917378299444211869812499232555542024385448512971141951239962407769652920141018464363146046556659590531863043717254027401878678354174594128377566934215832679421659867234863358182637286692362468252448138138798584041306409870912636140466356510615634663398119593058531242132431627744086222138312660400503239491016299935788245750757598922513441514988384114344239981958385242464663075579433693317825902439849123875574390462887450493342507805745050032176736912374394177901077554430519236072408913332484390711431866831164464238876906399501485459384848878365194843677684066230337539306886425845119169335235425344424054727848120726546485995501892490014709858974946026759483088209687752987235450816635726399105392305359290355767486800159935769174466328280605926561475767721145848962194993471902334911056424436068318380712240432588827966022873693067469970889176093612005948543236528441375074017244556331865286208998237724643655708923420637341461533077153799105615428773339818943247907261389708848726935869427766895202487151645794999125507016906308880731916201525141317306574843331154608927904771341944594318802291173511552106559124082447022415751395987152536898965451883363287790852858719572396618251212066267259092563473432929532360364403581338318778252238369338675177097474650526993908429776764438230725223104517160643287463024286195614488794887375776452943429666825552863520961724193273821930663834980160600479751735788232071662616417320225023382320304863605091128128654938925788786229371612488167065225506657147486744336387421751284213015930302228199417900933733767961481885335911820999689411003450873888992263043052160310677984948770679629479172014361020949387929691451359622514398300008235102586310607638536797280666651161146803678560781443929142184952001745167558682231968027589654527649154070190461775682665783816911584986066965554068544160658265139478241790192416639468309301941623529103405840248518469206209819319258565293873860818914738407651802875035093710187044260911132630683475391800775849018790403285290610875673158248254670870191784228026212353153130969315566636121815368710540668397691841536871540131524088158912293844442361620508908021475841669570087307437603343707897909513734035989686805820961637692274038261965731256745446502432021994827757605716048784295599905391380317392232029933796864915075545168845077736128667694232266383631240266504597775618346914818247318716174950911952251942754096956103224670170824612075873786865351369939365956412028275661115329051064206329444860621512405938996339559850100922180753522199881197626637204314194639077542411488183814986743056758638284932118976667578015396604896661800318985080495140480455254355325647669483853514118766036302759571815466611976886069894328013624068522465939185148407083755411876671316049271365763817577057051120527166875221949880845854888209467252510252425697543910279089766766085730164539650955373351434868319531720146138721436138193661615988186393758480279682316154193131569800356850959150685774732808812297192020279756500924559120960207153695565760776403390155218330627455844983027526403225280573749709662523734875156343828232006328665595115471267540285679960219554557444774907323932362910054281222089813880729133313794458128363796209802052788589996515865395123118546341202215408874089383235345779072410815904269599404388015058793687681319796638018428838548252828416715212053004460463058293543501430232280365652713186262465764320656306482647829115874707291596296382432080360735566092397876887774261749036472815793138545480129617004608047990277615876191216806740221134707861234676883560690750557299142063642449446568278774144316619088332540554152617661866130061887938043723083622451624818035133688285743690129399366017767766075958113254274131272832572563777230497250349739393298111376246389285067902154291171113435115982536432323920419603471003746135177612926630249686806767093109383490605418572337216273938812231507263142347721453386158329322526529732726135675708429198099552612229002971458538657260442037409222002348548871457885411790285908595236753183061089550796231686829855429920019588158421727614115885763411625178576008598686485415149410031601718244150339335274504638451510835695474608650184903945599461974840849512439349845315019605971696243144282991252901423438802360372488789721328733110566564123429071090229446555204173639258398644902980577463015750826882365655293618173538256701310601176984091450795696444648745129873294757235700684562684306066774682506922279538875659992345205877375635033713047877674360320991132322367793273820288970652163655699904002208458395635130168338493684735682044191119981986108783937721558734358034809795619034052252750467318173389892616980337067591948966176483204263245419884357903701897331300724439609690050228377218986197725402638266802752612113561494731418895251520829185047180812510857193553595349624786334366963425481523353944237294261411084999360591436333813244681376574448382232915719527838854306761557265578929652949491409829368817685203793222307402398608400874855334544967599969360534686393192042175393805346383738794334942440215459165384249665749508648719856469548248694442822114374430518177979242112936531597645782461780397285618733921532589375183255827978042286099500929696505830812535738905808246334591199464827838673051315344437601655082112243873693367211847976127456310161882948084349568713496792875556579247848174719107361800166991650462962717881052060670832724524457724545337090800620001686052980707884888293107875047709311880124449780541638168494904923115536059809539845652235507584425742644149787825112354620953718445264489295886273507038135558897873250053517989014901640259780261512983549415792310256073037927591135899016869048843037202335632810274936132836467488235018748497699141691595157295109181666423386713534886689700263096045583695656398366934042970466701492955283597614482992508438651850816736948886325395753935852608367895445081766487626150470883651949953841761550755878339943421495232846439873219808624019010043154154036527813605371995185963720758045784607443223948916091157471469440511655003643844104774451230453517648838256489108545184323894620143799492402642402307689449240353974310470703400931227920669795169179985949554261388580413542262636736640457697642568965353363090902102329226276720153712251987734850622822233419928335385898967336469389687790533981847373349958923983379518859130749391970884096045140701755147750445466432113548762056325102280349107648040141516147175864050031098477288231504041200684399850446557441669066635761580155714196527840893034578978056665001648699430841799707638179912328020898248394167266776416623536129767832343196138508402364795201158470996542694034126515178682897125089327853701994534980347048248853824046821802451210438198535510715790859368561380523806356124496307631312001650281882455350022930862759003450930714833341041676586589809655944410614577160069511394598692852504604196086478649958104440056364775954064898488691006157581652380411966671763262175468509597996332166306719988914882992100486644465094544683919678119239267131279162095904925711859633383489586693382832039196061354024084642203540199239398669148661139401979240931302864959158168378891629459111599677226972190107119788851006784186130401871223731116943395151077512963534502924430393127190201878198341556568328308270817052230922286850137379213199680539731904090489654610089149349684280815764761759214509967092298704493662040869018056518589377529945648630075857640130745907009186086083620832260508378207850514612752867697576456508928918878706849709383488934576495227457427755229713790371258971909845687879512780746978215005338968125674321054113154763491333048476258078940628698282068228625075532592383372027094443850298150815197315030549102894937287499711728009190760939025875790294816287414497112182865598369846281925735085547915767470569633912187628454643986621083578896496518838488845501785852851623982218561012219252574249430365922291457419490614666757624762453301733451893544108456109572458661519497499947212297197807067129829182562929287592805536030727285779732373422798285456974723438235070640586321159483607141532477226746076702921495829982234914647325333728358549753337743822206591923903114486285025735868846670913501450989384242338911697632964230435696128917195483540698197114657730247588628969971182681098747921294987420531558463465922820330873112150235464278396024232143933074695675253972710243746361393027295726216780830191047432098286057748761602460985794558122196220207827217570385464272990607106933620278856238362826433949740053108340142935346793466114221171756776097315352025630225233092264412028983276264922886294140153614171921690598534221720705798795194787773258507620703115608628890650829538300260226101421129865756330591058971212149999982389271583931434406065809755548345910967640731913650688919130135669598743657172224091423295567104263464217759502789226137913142474341888254753833517904785666666299343094119385512002791878977823682509210229066202975636171373832674975325699682859510393814086009053600883701423302868734669495207453779299776601717305873403739235054002757784463197757132251035001926426983146805980632225641614280965725680426945611793530898147046946514504998411608948794750578893445700616830294699771451351786318550285464240604803347912020928524336719174562081807260364963370546181344285488135558689308527840606698316832497528768535589204819115464232336709453563299880122595581458650427917994567824264474448947567994209642951537459707905369474077876209871405106241914453504293073826272611184904946660078116615299097139428381732609370289040415009195087973585172892204355136862324000837281684147755988806368835604399784465728808709806040105367659556546208241916636430330084425579139255017627620242615928454976010293647932162383288288895959677227813658659989844188817327946398670330948503198411418563371884269960774748619614878238119868559553038396632029001766294925871674299411892931229957882044795134267902415945974630093387935413149058243182105209471500361665275239507371542106505190083025028649676181589694670502195587393832924886399528811381358955009747951510109232218616021205310973978737183594337100137006465576563770197825713308475374662845548759758556041897787066683850503315384008673618294236664116126082226932188000145460440737022799472467331543775674239621403323155259002196007576141034425332398478403726563047754484751448271825209031950855911277933343724562251117133271972516987124755590881906707135469415123683362974261268271424469597304054490307454518591447938925194523553090990167491452828271278558114757196901903243467153856186842746959851108062603222670368295411612382259009296249448458630669511886297741952333354871707191111025067209163651869260526875136232410636032847682787213120410860743393359084673358094457099934777366489931095080383289119369680884647500109601226186330852761603757061544522993881581813563335569445598556126327985881854944114874420137999605937201144773410533673124484513776240304935936896547593577976752500862066769333795491299411782925167125702137993649235084240248864431595662238840006766370724163528906388138480000085091013314782279681672194179935019151371014711526127466730002624176377928485616701920541323583308825964850000623818808817076196773064911370505686339562554421208838975424484906460004945392834313285013116284912321076295274327670955649633831814361870519461845599544310957628421551368967442400459593439481406551942645719517024557254067785513433407530356278887606235989864047331457521784220464161060802542781167527677124318713155240859169507013920345182791753661793123832905844215401189520023491305531061660951183352142834237357188181893138070654498574476545371919929817821034994764678237314641800375313172209523469600576794468389215323286740029659240269318096181363402107640901648214789203358684160956382275004529295308776385509775701208387836151085147391965929649661062193465963924364966422918382352754414213158729800928539224509669693932911259982292632992527332132049778276186650487754192064192219177229831203460058489485235721771648061143585688557701449199577015072556525817726567077999501901257589352551221944848674177282184853990024951655192782257439194941708707181532897879616708901599731198598579325297945792780469876975575241774620511335033939161934094654855875997145667870541177865711301796284748165026376961380407651214620706388283696525801580428726453177146603151494618381912650913928057493653547879485955682798934406066649660373170213773065026641115743692982246950832713524295886572068017585060965944646003428965896105059313373369926579908679948998810349826478886400460926119210568086099083559930243045701433637587932850491192704179656041741192091638646720965644317302529617072745093327775567802684314885907786000234310145302473891747043349039067492821678809081125264970161611629037429170045279444262667641998672372479280756881622906962501666212740851153200004479405765026601443890157336486865284211557985617021522631413331944856636136011010235763076216977479862049727451798316591169458012165543012762174554210843349928600733165262326052105863904417929395607514495154706671894957792379592568114697499792053119304236985015606444641093827942898826246821129973707376825339418864604496943183607685705397333929101049415142773008822163192307386696005281300694595525917924391407245155115688854913207667601521620687497051418911715771237342076995785264703068702061021156719040031118568187630051645848600930632555874344110774332776251168060967146574259363858585262628612472782971811611458482433066317357110724633183518072210903196124150887686616081659798056488445431777378928608149813109156183107124133455669999268639486595989101316518270798683432796719613840088123305095115168624890736729516975714414179508151399257063143568924416843198931798395712487726667823572453982635579187652596429090699121564844830180298001641255808357760495522174308387929025401720190989362794842587727656228430084070939674167295387705403620585980121157731637844465332908517121127140279396219354237164965585855683570240703244297694845475692651764627703581176141888217152035032204488313067926226921377551115016005262394897738767525158862028042177288856953151078423322029141583940698140723586840516730743299921420910151474116839953768916203315028033766040902608071388038217716289779913947821139134046845963099660965823898403478246502198871479499995049880185960086732581637414969061224937121113863227464664712089796852849850715524237292091507948922508353887601288468726090619857124568978374881305858627486323582326714589048212906244096755909862122017077290343955405929533649873966529111623884237218686538468678173451049991083348730593351943690683582545003502029666734814085654196501523975067191608880261645185470805914964998748086504381273471854893398200423972876542327328931849411794013872049558910521619969118353413183188133226143377251408040743591732280040666314697567810677694289054801915749179368444506702203683623516620921804796081320979592750143590549927488412859078104755936650218096429500215246991857704345536169132695144429757591504480178886531155669091299689229985197154061638104006170541027121207434851941304057178127742835477585398855368077844835817372245656059797621198188678034089626943875025007984107816882460062613989631347377676558940570702786206956112934724466756758813119323036898952057478805676596994864566717970389222127286438011913560207967419052375809409091943152480916156278309487635811671720479946678079463266381263306511477181800202733923929025335967690673196382547441004206141178680139158284329723985310889417447473234468076245208813390325941991790685206080438673858131398454240901252969672053061057793972351683892555966497499704997019021011504442999642326805128735802010717681399709852484670811212525504847668111589117532905837764201199599670275157308057398373612364429819340556615927030693213113944769295810130966808524062194744482500575021706032174368048308964078731702181827057255309916413359756859375394650167976427242877649019652697669074473632688416701555690790829223602436837735249106172883146397918707754903211136324230508223879460108557466894789075461182827233776478020889015641048445762809969005897300324479862114491398956776020653916269417500831874956131979135296706148758100103316290616857857632242059400797016566868243776680102678531489883912155064622611713278925362227725583102432579394162981102101656321897612358236826393794025454681217566324208141862956168496103066180264494642758109932548551384171081227511596467221397592950001624245980185312308462788656636444498864420639879423315996863502932528539562823871075322052725317892416989610727722701917931574261909325913470682901316492441566736200533690152425627183365053581031226702305352150674238590068889737607799774795979911846494863097532445466044981598486271239489762468217395270920340283494536216437122942673440089654028181781926356498729978681771263182121201660016527329748673744810735820617122789429128943304730923030953271470707350953518270010226048293885759211212064434114244238475532204227350063221413775835329690012123791931649835363655636641587295062153417939082146936050919654351320984869557252582493253773056337624061023215717335622518234329002183299353882892668731137516244390876191176232909158806983406900972891724263571893947283310367849382212114005322780864672094205583580987939839663095082813632878964394321729786983960060475573956956927625530767488149267654199548257280393645729494717688406226577370217384392421717539115071538681163928920768294633262135787520796225729217004718100221147888323120092525730857605100243804516172683202830594736893973498817552811548553187388841267898666005692065248249201051171175230015651049606085646328942962704263951762265396480193409693286146051888547359229930429075463266677495953173645832713468501714129031397271726918613433289779888576146146900434570014222044480287574809991692338685531621509886569774613344221350880601480666227169944899768294695480653029113143440414215380040413705113485220702690766951209842699294024961102230749657447513135810928481214282128983072486751138054088065232881429351265085441568715797582789120010552371992352385199044914724820726818786936137020456252979165671951614472918284030192854989020125651672663962293418749018715736917807179575274829395487346858079354503742442179627407414626321062221726463753766965302499961714766067611015941816791238508597108698016006093038653678202426370886681294175293329325114868104696741807361852922862367333700231012723717921103138770765126491759217549382492180753768265967276414583018884847226974704379863758355552871324082987224345133870776324254991727743338085746301123246591643617355874803915447633451761758282338098009117635172983901497057180388617050372662962639961233532613259062795371168591071371692540977619770458723357586631396664232109277458837177434511660255009275174663882490214281697311144410815825583616792295478786262863842047542636164281605071306672103101172769543596222006469850721515789463559668476872056593110859422237093513529903088773246575561561937749212364103200241954535993449972146855720214158466357534410224590977837746920221937394614148396967977002815531070002714106906579881317469552579974711488421912844293063599009386375162180131117913174155037318667948429707345384673378583973934623240965694504553697512180666384829128509021904559149109601069208217825625243377378687177118125265614413770959816412992484949335353598064903076667434013144526814250773817267336653198547074215068283624348244882892600851350163501642600870834936729462292352015876988542141570244913642050262768392290363003175954346070039456976466334254673574665364646240822187596223435308889717477972902868769159209834453615581482733177271815039998798627316117604586383681793907434470536352019219246946260289636589468018541473931770166026135735284781333750388438826860714222999379786422309575501371681668812360291523186849572611011097941624180362535255542952084099971133328150769495263771137347154522854819729192353465346971543052406814170430505657328505579860946473505924580276000887461036298606006987191703117219398132183301863695750258491923333263369836697281429786014119885395197061203124889472408578241020056041751711587443554310043366440568568604537296273822296871923678579034462203977720186181186244907890300819122550416702149646674370208288314379621931518862248883689196914481277859186693075033820271072091520741070268164643371765449368481505784270316119969490072600446216678329297220152049991314526887334051812498509058744807934540279224489156518440679721134102554064271356753000212385056111260214417441044376479359461135639977383917915663604883721607836210149804627814998682120831506172706806647105096891399013942708488050814219273686913552422239676901953165460736095725387498385570371429633626071489498008136179620303517194765933285606997756825172131827045807376394909089692585945959009840874942228616751640183158803938238506222872800118627806328208102824104453322269118776065609431857114081858053891625129657367035323174754387466509110863345277638925338430552680646638144496573278803985722628046985769774511721574204208161775822687629169196327344904484797843326517617237637206573057592429171777066246222805490342289840058527483476461814949085495566366283574030648647411081495916237690412098949186842820321839841041815049245316491182906510535257746975212252826474085967918278537460704793972232946936332071754002327941768059880303501498916490201055489207319728210379006533999120365779583033284153924903561822635786629900325736273603370340765189108931198919418436137272135666339722002584378529335457622868489807364669522420823395214630948126534240267247828377036805907570249300629743673286879312572611133927079582009061272159032567981649045999798835101901739521360874075710523767083491012283041479371528473891752993769854998274558016789377363548239561794281561933266464956035260202913833197758808224706013975327394818644156101480527192806405670120547572839424494871868368310526492746638061733468997352827043915281653332320983963374849269274597954518600167480671440744542396213665538772888831350335322495855948376207738935764045165279848265074393779638831263527743678924887886531959470501647090624404633601318800191375819947202315680589859151277791877997901433280596217761280731699124819372441887908255593497558964531973549672006047558711891513109546301050182332903944091396442806562412861444000564485572737918266610889525027430017539779299894631875955238072421877234516421998900121897770404816822143742349763424629663997538943299150629336346357786449216428895299588503063317246716879576786108839211812941758659271115661726707733705602182422605439592006960430375161018658432105471151600297895462259623349270917347736202747123726091071906346035575231041721493402220916258910038785690267418272952360458421787345864488238764010834627463444522597608946038253793036270027454077609426417984338374619049422934989348871644717669373649353671424310635848139051701535572305461085987184004506071443542985181828624399709181702492947342431841136220921495210037481126514039667345086638656576023572303734503230700423925288752177768380224680097354851983764716750437252728309656202173640151377202377180050254025559340926104952393961038430748097854394766597237863921235103113078960774268559605665555964318212665435478579672134292004791843085432621036974935180320303927841452360209411916188967090343394906552671853278219265276601931309719309682566064638933995546702149484628731889025335426034160999851160988013361255319090619615664608463756857083311902027386220831015333512145057835792473673052303524597301467332864091887045184856787122410908619783994541218051525658176816952043831584465287310785114353036987952598650940837575243479760526394036447930819066278144494807831981391442399899139845621792570163654914477630109023827377719815914484156524190332360440626732915607418112547027860146381393601473786851347354856495792039552190705233499883877530376724229989582646613895649802927970051536261942123687841266525194097427623970907322861391964979999747992451175975544177749459090037700235427501851526330177991845920866931527343161211535148389537895485334765782340047295126895362101954535779227236704339371765308007559239914723424547016909564648594980146431522391352188624241204564372721603026797375762620039232553030345207466201743123033564388625376031554885064250268373014577587176830572341732680426999769751712080465022537854405022756480561326510526599637166107550355633137637356911605026747656755287161786518709113967804657591195555862651884760516480784777664055697553692431113003045230327325245942512413830564972409603795231510351534471254378651385637168560281787035882311029917654735581135462637488961475852523213260959641444658981545481014808369532949664189114549840352507078846624210385314558281115853303856781858531106774384671901919964320372706339417695640890630992175724582525643360067408108289383175744160689415357317472127352760851064596611495224505777467759837456205607821902582973401779445594399217814839600747210709929059900182840041774128688446493683818922786212799286719940219209406241159304928792487485391789957496789445293967226791310909361436541224735263973045421644157597954744534181870693727708929708257148741032406684715789928640957823971915328117328800529722983664994897049059774713260282883699610843786377335398420774613631438882422285007024622931537278122165743697156902254977155518113011821770204055141458501406490704517705181162988300887729393792499035381176828605743808696850897038642896574789151609224973200880007787081762993756737003556267147412639081293815980308089062805170151082741505380941445069320481625718755789272820921800853928185963375326941496816492077696880814165844140686325862373245056861660258128184460173832022224668568177347966094455025093166811144897777050438184784834343947495158677009875261335231114503347419132590002750113655744608714674474874248216829553373271220412029482048391682800662012296321742404778714988737373636980797576521931102736759778929605497718265268175525380168572901153106647579441846132427728498235774977093270373021651697562041490802396539877086455569480244369204085813539903778641262543086925382238766833804236353658668112503224822039042380959161433255931539045379587461357563475436883517680913514489475995113741588096456584174053599436702071447703162045786191772610986165573597482543379624897693128074577558417560492858752850984573316006439936033272455047846287292321670206592420406604584134875468085790707285747723733242683362719191069311908068004650328568661891326890538418440222952863353115117050068304310160909619817883992213411472361604244713047804658024893175923548012763914154032458304447992775326465491817741767434725680766632942034517399188947770974489092409233962864870230156300727748447191014816297951326567600993877463254102808101517479729093173222570279068973904543047953189752584042995652515482099458611523679015252224546732915894519267132853265406358210372410509523008811123441515825578274870428807146445093265993784061885487629957808119809856233369280081601592741859767654362175164419976270466415654829401395068477618774510408657722408344178258442382573834334471646579401156168866288749872894650901450322836391210109175662680282490753496521926270927944562953565075073035908125574009157853224323256671177002555065425952988887439163644509344474430471889966331750239416238748586099131548991040272892263273231218932357430660299370453157341020565726519874864728070126261871100734104557183042060389577137920965200787712078367146194348912575817145891988733398189108028770787165020445532497322086049372292629289898263201963445608511900791168482427410568385368795280438203388286612014687408683571409829769550725033147677549189462501100715352224771096485443807718122308217198166521107057840963593347627068189756237065112352913360333356954473265464372835269103824850874642043164441805439933664258815037926457156375351366120592528568476939251227795052620144909224560876722935348937520547892220995811042028021772508723686557025000128481670019439328912801828529634551277415060685871362218815985449671297480388018154861200555474556053840058852487079284462553814846468625515155954472945785393040350610197127410389901153479145084088521083393517046074828123374438243897608543425699595867354157653867465048138594683500801181838631369174161083308164375975553647828720480906097844753017740607374105894297538231818740781465393551158865116016369317369189820801549411688005486179885193711149679306937581349050368809000903732925431548502366729980975847586158690225406150979288359009956887565041256808316433190110593239311564659888136161156028146057096259496217724361148865380058127657873203284319167731568653803858728827648143574222978317978385492914593976198944783650747520589764299710384824997231513376466140630598399401131018463688949502554902381119685944075730105190458206696001678201133232557721780388176613112525659236833539589948155288213342951745224690896153560452190174938257483518211366934794396525926236492699762504985320352177623558693949253266840894910014705482819169259456771097237668560012061259980482539828607409536865922075339175581829050345902987188100794442973957563678248404048288040040607246674768972753604070629115949392087724818728576955929082005928579731859323152337998393237996528976585394000839875149846347152971808442503577329914953797391270533308495847063928714366562953569920507582146954164979640972072019320586223546827291138915184435939146451219845729249471509288540985721697850426985660374188526264799984240826240477690987220176251444633309475021035094183175706680024716131734386041170041667606927281812526126931998586892606007749089374981928311588742108087470849890142997136796567519466714233822596181522315890212266232348639358787276508531615904312370389905120446222824132556740234756753536720058100907941365473292193124816301674908670343182379560141777936625418417132438370141149677304085593054403972264922398842240586000839222897068413718015491196346445487443973634386029026576681978424469983429232712146901338133912659478628473577573510526053490675094869552264525785414381597077821813770506864197259933090175080185488957100956453345982588655505652913215401194802779398008097985327602278831918161076194018471000751673746050192829129455958871479550597062715126271713397862956799023805661411272605151229368269026933866436943244814973422461589727398817451084041004201500243679893746436357543379517568083129332390655464486012283528159386165770539386878079938559596721125025069528097255414804443858797201602183283104421775524976724153573984963094231308043531124691807156310619880433719995357184467269754859965487769915102215072702431440678896261052131974947445130301000463081666821427415380350279765375638256238932974075710855164538756745047539653584749378565047351471661627947145265123780966532902340966092663882764657007784284874281067457349580861268859095935471285784079978404240133769940418811910047817491093566548108220217956763721972467950478733094578757810324283929742683760941991550338871758642751289449481859058324519349089813867597143465423489091623742134364374587313876593883812597815182557368883897379482506211049410464310738778553799019793636075363734888070520381674050459184320412996652445113863513505783785306955600119712909339136210620812042686061457375865044765809957924295498118394250697627468221076046248853879856389703705165848483583504971670357912004960821130156125931278529828078699709628597204106739437497520562654435524084005545613676776675439051044360894157492267992020935909101290026831301416159309718291799648496024704277399054133593229055208317554138871592894798405627316792639473774684033000145318423916891304694918393169491046222645652451945685676822702782371320698626245419873955042034243022201217342956583972041804484228319670011216964687415862684653249050489334029441236450706588705326862676898591318010753572101135546911655623875342328627659341793706594620645492104130165150564945067977419517554614869299868710809752204585977559345849366528396489390226849466204852114431441582284385945470069824294328103515540719928281210232093560857372816618009274803318530658660098834938788795888322611814415664047583476037220234019740588168779278084490005444690381591813086563624733518706467197382203512580890893669105307926963018672978723143033273423514660350552028321112330381178615856375590208197150691950711322578954614174243525324017869272431590806781203030415222431881574417985167170010208855267755943354541759489265557971053790307798496606957910473035455791514147612859727353854016106289317386596482498669099411304259741968343264704245975729477631121645025330649374188034455468412735218956481737331012190635635845137056072729759071465763600572627162655193452919455614424099023308732718770469492388843082561754344385362032260161188498000358317754785752084628776436955906986850964244995646421757037686553860847840875405403980685570679730722701103819238102673934192765743592556468746713716940116674665197616630129535622396045441019402751527609783470611411698418775072060977552543547892731459849356684169325108708179823966827419207224295144066167743999789677024186222595591622335857195384026049591343035783339154293925113428480070540923943071702167283518517503973508333386914594354232083790499054377978896181047559254591454490837060323798892254615985030099277873154180251918357529758747233916319126253729055499086821014359255431922266923119401895490185696398057496824166872234922936069222699892246184295680186399992843307130360383289667984145679461388855485147342071560248057894396023950068414871439645633116440721242050791592107917554784758673308054648626660788973627618259158502929776540304578239702915624876952353513120017402134370722066002942721464024179879836391480590156182074304892990575914823700764760571132087851767174486729517707944554628991016819365655266901532297616740546813241168733145865547814405978943436846185523509888157057585010426712850432145652569042719245641465028152336740328344128602023200577712655361382026916669392016170264228548482420190276163329656411674441642316527486445609906830787566135134856869418107531847228416326874157697109029192449381307173440858423816599281267872522678185939365776355929615705544783030045692656282397845817622296170109645873753098433252283689448493127377844935086629470143055715722810466016329421815724075237336388424053817521959041395114493451600346222280880747043173652160793921995670839971757887751276141856394143366669956968901325375644846762006262724706845044048539042649283658887411640475395098685746211023571104792716403316052072309925306467643358097752892571769164227065103112112380952111471461209581176563878837538462879203652699214165830092060031593268996791380718795670451253566103441655414322415984076392251706710283654314683153767756424801435863932287365214011607169748455099921782538893820291073285047055944224636774433356564486500982701118746109997059340224712485089154302985931553930564928125336148336831173972785256447410340446779786373003879399476475407907803743583599949935067438693825254056967145637832284223489137833645606178911778187755843413797693843123595859960986092070460134015407787572618589173934037550138874608006072266742085931820186224717817512761011994066558400079804869835572020295161136228275037011516605723778859467637927789144510211768288919245092639195915910646378182744889780241821039033292077811794476429686991590176834745153102725551892787159411555239268368035170395132152390991761283928502667499529351534404535179020557344979364313910779526706262971768137476687304171792153071092799180675360166134226138681795995562429026422916918272433383863222552155094004935698022588898699220085602651276420116396860820802329498445357430345785610501489805199116571476167986755274792805185750134085307698874464773718210954193174273245356963023714483003944153322245878195516073335647650466555951239317288783322132048911133133859448697360263431697196270749970840221666416170123705756973963847756413209776687561096988915539562525509811107749118725269294514015818880908138133289476743721420839168664789772146480488097287344603568307864302172949832793554781905715887979798034540793264590720296923012262265677344175945545156569305756940389272289255059869964864244463331981123390238871474050235946379371738438313981339791651403433883170297514144386797961839707531910815437944188508836002894441117621679809531271791268218944332185796547328479401897651859776974167633009896019499191624766755488518771384885526419616000633023767174369209810206525531674030491687267271534757149778455077289461633162830900036798555611176406726071116066938758289279097289802319189636217155955632161511640319364796249732467839777100870554769158117436278089542523968075814026806079150386844791415663524464041399400702543083971682929578237656756082761956965550455634916849764070410509051533679294392211498686396449149137312609106680917998650497650100606692261731405604551623943881850103366999936486869196705155264045060366468138421992890749598415420875668357681411751951751375131637414326624372373993587852664204416508297861198340633884708199601794579274371757906259293057776998073879944727410050070448917496191776982690389431883440608836399340184139003727804756444939196674388597890113251013853395574564951151653304500203711424223290736857412077871737937413780429902664572327270506470251024307197228251489600722833972668104911737843891140126453657057810438491963785824935171835447319135425427087956366446172730020586120826946497922567157841285742878289010593557324444943097221768344672310693646191920143527497667932895787937581970089807897833168405978308242017350340987032614014631418347649264406370417541325881903283534208559062837002748555833419931104757466104271753711792336587883957828204885184734324843866180924447172948461968126093217883846536714458089558030819235259387659814611880604136053628227644799058822295390174589945870010078091633897037390367393377184517005523709789464127769874951806110256126407301023733108052740251437371793844504264898186280855457002747303026385023012071918020553468696989264719924400106412389869130313578924593433302155743669685050403920918647018638480329992472619957024043885734352175920289094487136182909135537401207963845388170208956025695424466688467228719923207557723461738390188256171703642011435435813003726344339468683755509458748306675139780006304705761965279669342301245836835067393533537201300028448382937772421772953456923025782890128677523735518459759737225478978332676375892803418416340762163178968074924118190880785866943038878012769870245843237849372931498247629378321145370289120823974046415744916729492228288807111073651489448637420605619791177649209934677035233227291850726482914951427031387961181137144557626884245199071765254932044706420778334145794026580702928517604373692000252115561960276714717840832441097328691742534408079302504755293549609690584515900807091263467352034245750241408054142379682338382517005923783624306482581490753594695563199607555358406678348900474793650200986803703153348929717382994938847020696781282120448804049422604994746269793477779197291372525113759578864647179977829043956836429958303010423967871493229858302841567292662314680830313629587491416983955382089592068455568189153887277686830144173750528312948824115001752480565392387264448070560863622236363957504774533833481593119835150393594530443506740192804172754365801671790910709057648476964593680576604911788653966457273600548064447326835154241621159138782170812722324502629899012380924424590895409207120680740931724671291049858953990455477360877225022695128234675272897817234218936897043944061620665027067399474375368682880613015887266235979959543024650861855683597977676032000023175205265938169675286495681377484631813935467103425531290332544580577838262536923906640636579535016086329948998173788036681811210905096660335289653548297444736063083946895884907595072364976741032030258330219934989555784009633903798779171517033365947277850852262282360430991704798116808520687686844305936364497936119702372447206666067656135179983434199386105700488247666597050077071947290727662291262963767330779559976201153875434015950676719758109483299394999213769468378921088472534003048717641376174214440909095594865639863461531998522637368114863664595308076468950529678854133933197233043248703485245159649151154989204068581459300346281053920335790805833562592231712437808206241921393057599258985347507725503036108188881500992004327125928885123934604333787856899650178904680735436661278697724631041754484389121919128422288480095876545721730279782790928390219698831990341065542288299838161491195853815363057593961013285355547866765337994988556077995787718044469410080623123264268810225044636496656968564262891581828214971604839155153657234953687126710768573699093813542357918431519018758053093348410326962357538444477566014968453697414562578226611437207334333865559419814920764273412422167706518346440880988786881853733717264090974806289618034907126019209621847393972728560984061093211952682678116041242071790227658586207693835758567820129938183838540569379848230111741021197194827464103220652202430219729293178117758140226596591694162652919093589715626601167443915724403838177583012274244885015604591147948966202089732927005595887926283960126907660193478699137969734912676527347353768046571342888580316279055818269287055922507633318477641880502337680832537541187059285709896295007283642699784843308984982945682955078724852656060200856768662110998987252334691462794983336901905700805312089127338350098426580376099818808772031366543008659091026703359165540993742525839905986936614532423467323016083715212146587896001675832151490636403227400706047642319808412422680169511220281439085977715179845117570850983985552353731242097857639919079671793174053633640257842502239445633785465574443379994160738394888090489880724982875155390452836698588233754286778890731830413028343368243958394435017822908650389539219087980780282761428319873693254850663547858629954827580165217459997899223480760540516197901864885671851309550292398370791475845110251065418526656758762530428402643561180723780046172872484842269984771324227320181757638543123681079718049125129468042430790627857812098617669519671282402310150757234879681943794413449667855615087201579614336839991145554205157505189311428774380807262510880601591583557031682755867100350295717525346272539741421150499584868697909463763450291690248567804292998643705847172678293101368431313280357872871628214486888114537310348547925486267564278888374628399041427684175214945284206911120837291587354474373385070553008567075574819293609010972377942482120041041317537493260933076222161007433977404372489681420771986915639497498447751234645259406616690448244758934083960264004707407879310604360335155155808641798320778527976614946466274997415655132821028932661631061936747907498689157600089377940127619592249555598210193339371978853196962490383526641124447995128061316513005336962983568167788787559153421514278944033005972660426563852085410728510194479828261722685512681575635409606161019420566204633161487567209059845928558960574390031461684339553567243057868178590094435142211412857736045858375902631372051965949714404554259232918167432027993454404511382863084784960924390257893072224510102208842746082977685526960303911167182901853393280834219250307575322975854465991100383563634535883823398757496380209175572920944638690575284610068973608688221596207847692203971575783076895592336129906858592784728055276673151917632607154408477258648595007267572323463175962237245640898319694566230740553646799145759759389634678108410154020977440131329304190967555733457597905918995036428396219457708978286652260674753943182452836977371705071089725163571396689206986836877744588687498127313598067547359154070914881265176456363460837450330758016196614279634964175767689299672330541655870657982301806653123774975102475393184037822952982885046786362276167422610407878093742993371454539739734302464500996323731280055330434249661127228952913502114678189808288295420979058582834674919304519586797291121818822631919745763706392607621325335744625396960419945467740085080277002726828770458397343827494572549520746455491726721671262659598369492277340171372804933644461561818406294264820680632087163508485882931888092542841846887287819747906418017436532371553105339496372351441959025642079401805445404865592133672992281923112760775695931982096713382542712548314005778870654013156718081749957250885573340102428325478999662176295874724027730752818574886724779919776272952433945495963852811344699084349813628575861517170143882472857621999654541202134806866943522623520467587092788738933156086807069407121121035207649800218012202935589713981887485605207286091248421155456536060535819851248318096744885916785665976758315348970109129230394573121499618620191618543321555072261559553015336102576256244699681877095000496322497068785015131387563237670864948575730652445880251964375572048233049290991733636616506216312747610538814245036511554678490533808053573615079267233169479942995887324793330888586667035231315766033924962746001390111880845861968493502383608072415418829137706762704722400014094945147702920596259448206503016935738548328011093146889059396631489426365432628672782572704637990002812373198503845029797676025699088957734553793397608628915120173951372841599355981466079695613648153445429026829186799170827371902565063701245838041611240898642422608966287411920694396035874107619800680256312014935847434226866618991926018161828530663707168823754209194333061790353129742487201862689624898176674254167482545451665374561628341453985438813523702626210492583906031527866307494965997437106567030950667860626505937479441489829355711071101508347144603210621669112708104862122103659536837474318071610528699002172235930774698211982366318142369752485907939423509630185528841543218974078854252390284929537686528392742600244642488042156788095141090815192229165186391195356833320867374918681915728193329239904803759224841120180845519075139517147963792897465945394549467097542758413190413033195275898359739149144527421317568738796413938574885464349424423505443458779079208608041599176623744415670897708953828696088127541547765155553618125604273486599987698559645986058286496494439886836439122749172759825352646292702812723075671491726161464660097391807845027967699394273231503203245833311372804245216467539086767934733525524856474362874437910482230939674968466337926919488977535900409689273809619422447846162975507544177381896019122072197103607472656052251104965854445643817889014651739752477166255079803700747752191140742918301217763798300247405938747516983302420753841820773088833278327992346092184813776283079461207163833815473237186279277849411928867140022962019341238647560581045774174174002991629867189454854274632295444757479685984267704190013884569191209472786363490394401055334977044638931839304654256851821739020565507137916102253811741046399353785172478675047892565780595566917215297360651035980340870761579024689658426685002224882758154206621182108682430100268100150263148827792169012881085972470492835720319675210211518376676111846940203637343789810119362572429250157618355220177346020394272253487609721350879899506006406623554347382377150565624069413043418944353585354016088714736324571855744615200462236551506829240684011101354961129040182973397317014557309945100432527921069472261775953313672537990982417183645844845730993129741903583859805348258452566135972536989329006530644338121784041989628184028788755973638935301730066925258639080815704042415194499271811239670715730447742938841597693568029447719642382474997090931900351302649608994885447971780809257581863628002455068901262159852990387664359273807145078514889996053411166689279640680957165480966957330757527631305614299077181871649123623429510762326690361316555688367552670351461533438400690458483535083449309012066035089912701043405497678983793193624594189772208648499885859641993443348815687092793434427594633815380204108779002619461427823073131113826332431320674198000802587225100188477134275255363145803321703520633159674296158058640475435243975413718003586213190598657216155893772699461227986504597437594422503338634989232266956964509374507547417647964480122370076130601053322077669780699724210230720060753311233923867957470791885654873746981970448775329248463163296272963412411081590394966137976898613094416985299967957218685118545461850833580420408253937428253954234772045231559367615792202348897442729743662750018992447782955267036657424017594062526498942325730873682834852809442965265532179668746631582094617915976470416680534232291933240994183527508925294775071403870848561335902715316226100369021951612413558007477884862676662438512495659157258679551389807137873810377467584750073668366592631505529432174199762255155421714584519490739682824089222365881179515278829367755751944817801258210739584910626607556350201025397150266641325837480528152349073612547738399646903517910239037452664016692336049557135838843125436207460187396188285163023352539524963346829735299948957583282615433049126620928408412909083034826838996133061660301183255485958176143755292837088389389415807792999105202408220134505880709855570458751597292033666205931774645796124473518146892811625080598062018859788528983225631904210574283869903439451722639308244163670877227104629246951337881652345097592088640258697260494275757293435072473113753605170976411237990822864597950686330803245061970902074176320034899342768293208933369576514752264936747301645069606263434161512784205488883602107669082852818804374142176095551614086615172849274297520452420116252344479631734155273039507365865444061824672876325712059583995155104052658604656632742102797301071553942968197112040673400156125164524973273195601722966456808936095331495696978988110175956533877285668418568520063271962912272089442729403432230041001579595419298153057151260286222633310459317381811724989219781780464832230164432634335674307556005637142266845079051820351465916604424624313232549160562373076496934495370258840901199799780756239992238348460294516923625076615136741929183765325008441174535363042130208276023149638054779704300322338828306740257661202590689153922796872058758236228978019035368098600870335688917201876066261125146236526672848713843059216504198916149612352929279891130115565407462232171549036492325987368446486304249022319159986913755728840441076867766142118294061364227401600661564402771231870422689950618847883069211812923819993179545164048770100433128425607124628193479531246657657128418961663705518478301168007513478272627909870436775654235712167930443548257332578754024025920984099520411556543889102040621219830031626818494992024526012755939793418452901989169315433795591576506534269011717789556360708087669996460101670379780654545941779438323473187408545743818513604119178120644214676970350068880687938656182223933212094996895033790618088707386373872766027370210562767784527903540442126865994702637852663122671168122259528752511249580528864639909129148316528497076896470008176597892541731367578322393774583540751940495202469273802813251946874836424349395113342633735263371184935749321560545062388278209711510985370564680271113934887712261532843562749925601266782993971003587365717915945241036655470795967214343475816661546692128131697952563846518560902023762298392063701625640931993288156870666946652803416067163248689695834674811773774773582954033729560698548707589485634747988632854786271394456850861815551358606918113271007200244747178782060963714066853121008628370287891095372780465278033722620090995752020203190403247015818138512025556655961710783597151561963822921662192308506204069920709637311656277857760804405353743187384689846766493253731326202498274721407081256220793730678777868718635220719052305642994849786565938088682488949523867618971007700564316419095790778205912578852761270560943265057698886506635906970073855649339590645822972896351969487321639088059098740714680717317597559386529748664784257280874390645450273589224165478461609745199197809082349561327478260661561630775293812959452864676020784163297371703059551172333442340270326110469872985176766435093509475439219593041094787876166597396428794574498624052482460197358991694776113886278894595795971092402200871453855135541381804361001893184027094989155521733104176932793037469485708366285212624545721641874685218284285935990723777420450333652089774145021027189035374590254009615418722766124023339839062701727276546709930739694151218893059024878029082603496497935290165603775263129856524269340409507149519843976634028221351551841649079223965566107336265361127370688543001263530588670691372503188974068195142916557691250389576253791274599824789481120366545756855987561138501738677432530857487367708962705902628264715486914150396180907230808458574535395358138464350630293471722978657809853095011801413728430482467110299813218379521785778200753918830140519574835425201201348151052890742073757082627514899427216365491122440549604938862170762437316356132752539828301568782716834545970426911942767206213389864832678991109453688637361308014896067570899852096444573952886537693754178843645683004062710039764380466645406892655377432512141512884205090995025315487189876693449775587522821230445575900796673852934146951136414685112312750486925099031306554281113723919303773664892144135959706999490816183533147304788613545286331792388387631171094504927497315316044970921174511625967430991909343057952046904988216090669743200481555808894584499234068656300758210997988441992435447794646629571523358785541670559403416957376384439282340745360289846430325062887805592036311573947462229229479610733075613467892007987445655701400367044649115801569503261299994147117511313451545299997189302908944554256289832188317772128786931004027624900133045928716520292587108423987309763764722453171131040575260618041094521474108855509621055071003128031901154520177160278422204919092491514858323822691766686231923303964947478584756302092813718124816286532647973405584518619466385619669655719374326528527166254554102911831477965918169331472798985783713126878114445663376846940536389549865951544292196910418328845231703482224027403574365729997321482327901701352773870700208613777351618948066871890441758775931317803253096887076433733530260550841820052247213659439186265600511285194856546969144341381461048489568927709294339446834504534111281750412881678105342454722514472899512891082432043084153582874698383624069022061479387446968957732368324573223795379504176733885232166558239263889658419915250159553707614456654503857215372809206764987975103204226835402487405398587953387972450256676377668348402188348875158559395252072727476440155715039526265292646115766367486913682187634670921285889543165316645307811515596514624808955804975806868884975048977620140546474463741155887726020823403638300136166359469219147622904982590778011160421469413014243048417062836049119494102263663482615110865158638240087331441466942479120683228203121475144721554046365683262373388535984896747413252340647509578746556002481936967120627533675057374205111012997557650810142230256133424609817664976306027601429757744268421995400489018049144194802658534704356233597672536257576743053296582933689382468638717585999474928868282124885203645341305807341611112999197720279766510388963795866974239829668323561811149226579141188395629049399648899952611017912652330286341005315416274019702606283137981300994353177062783632382128666622203220164909011265403192145518186498159819935183625078188096416197654043814984513200384858327158735045075883842281033942488578228750417072847099787730927164042583457291635537912578741851259428332427025131688466180551537441765143072326201274440764793248320777799248755169751680886183734054692133943864126335902976934009515993748428534241670573720670229032950926679276079518807784398411647196203686495582586611232799371056298810647364032028012712558984660266162956673465076727846616931582958924980207067219065786138848261731017951850790862714502789126526100009939363296384714960509175336077447017789838566737653907571293852656136642751682554194709564769140166727389743512228581051229188612091104951519050939043138238074225339008569814372871942731361707917884990959611785056993533058811208649519613762075511365009170612590976645658617525030403712272851939761686718225873518723435474599589263566881359791717197392529793698641499085355252155445297111457607210037413020799702690470594565453414917976419648291015661458612740099329681149737744630837200224153088233299250848577487310946185183441968002373769495947753539706902895237493024104437940654737728227735159430281334191372210413912466742073651216450930086691166466783466874464220451447245870812445227069223572382451164532916538296288799887992651124455568637605498040026366300628009946207757099917854304757378130280525873875872091156425112063271899420169512781450576897517151189569282283204380061119031647481911684923675757219397418760364186408484365259708076979872336451609055585358231719810852312623104865237101384588729801326268299304641178112814514336688308654736786080387236687632256258282683598373730560755932993289406486856215660877361769824268883289219872666342375144011952618767500185448913426784734721342600010223096775631862932236044290370941127804930782207547000689622634385419624395394339578357822049832130826116448265123272838308217610866080728707283212392801752355501825054033841644434488595929434968045029226191975497657515344537323638232420921471732348309539548355305332596873856716874036438482316484911737544169774670674720334353249682031734222793884922859458311041905484280379808134714369796075268936913183454108718225498343161412235958004689251949034767453508977617001380760061615235806942977292047521596525597974407573533908796835687995738430416010229697990112889924703949036421170548351626781365542141499144441420544448366940543180325477453519511474071296626544436269988613105430155307947555009760936451148272143382017113952058921621696170314250784291644921719006969005498661760316286972188975492626251303623480096916877098968034853695811602346331104361577286652409781061020679830728507395381144514656465547500699708728356639221019437001668519797256297863223643904701623000572802990371560848453466511302458806107898581965452883346102284919796642315463305628501768881360512791607604475381053174342566840908653544056073548454531645765299493867332140364297542711067077752094709145911900198357646473992989278944037201359687485519183048336314147709013479557869283805912057547760990898239362154010610004540686033326473847833753501646928771001289668978153286525067740810777774626431145189414338580295696398697610441807710849745862862156216467342747664714092306028839689664710040048922598716244636241511877984483629362611082934934820008721521869394185871768960794841360512101226693687101729355202492909505478122618797486184450404802470029406176704047293181097419862115323938199141438411179332592348218927510184310710707702023348492210641661625457107794279294629984795753195008535419564859514249409320164978419963942039514532776219072385069555591450101856948236238871838635623407424299990460536144052554752608084184103620920590920454283713851996419700586802132868740075091457728565381665042985643127033334933533187411761590448165665953050789474809327828356086510457447303460921239378529168001344440432055252192503833182785057950425272742764197689920274175613060713470474540708073110017345895705100688264555942617632879903422682720838111707921073947413687823869421877382787441577365410023969181144596257915986623779009367117074362304386423740991830821080190392958786821387110538021722994294820057863213832993181973224665180996474960676367927703232580024425762442384540426220738824520958590225966192131280472098382568908446102706118936079210741630772793746172289993017304590229562244949698088145853991407701370097711985006460109031090475733043662510999220527379710193597786592037737475740591855653077414253769248601133741935552453464479609624308632251555981371262319522115872823678186470431024650942557821123544720258172219271584326356193195750691892489644704664250654447149588478392010975241589677581445785330620897645440428760614996086149909421309132702116562422107219901594959091322340289230374953748024745650567366180519903010845102159858777575469667756009752492766989789432560328614911837872275256332774420616327982689170733820576733329393239803099081523304470720513387202625275394567679799373908255669532117198517988509786495937284715409790693757217536927670885387931253777177306287200409201632711918160260076644194285978386853572842877069699889597699525759215214863043942926250081376055928374464041967957962663740130022489035909683774884642462101861081955881312866282257720525431093288854680558070711104132182395985778880050660251522021583419491852983655681043094275626200240117981981182287643970488762332510286756690300304395260571160292103606633698942581428862166953975596569495608697241446418832005836316660718571051974068600779344959828976102913535193924047186903874713997726824446578010196631679693794566155005923481836962449746683074310101906239602535121003925100020127856940889604496064522427294034204888804452160082142515253974868805002317834702716497924915944607208835509843384578913829921574164246208135806189448617867056877441928530590606549065489987976555716039244215104756774414332009397773665616898745469218572029343029154568629770023515551654048362550933815322500037092035265624570409937986831687920452666303793135423032916206265703814614618788950508430246241686383281771486456921837482093084619975094299350800595445063683427047716012501499980742387038641081657602349629939246804670433104713328741416694631410557424158614410876907353536642646865764850140723479707986863169133192261385186039743002470635169738140914184343773408057168546059874343756367786402412396202711049222349992942421943743502369330965898389647483923791532886439475256780263115652769730907059232757372663628164473566248968771888385149078745626614578821321098041559075463283288811588342771298488166773898926544811965410103837491724166339070046662952680341160392514582559136600370070455875078290266267103713855810844806817120784389816377075273733297874005654284683817442064118012351486785114735703087952881061313846795310169098047987407630674254411301358767320258143110741703135336874079529111802822267836961647775183229863168288079856169130749300751925116037779652739495555770884174072338934493638733330840441220317051164085116500511092305468783686829830811168384853943240110868487545193458003074044692937057246831404985446902046022575473489308655044811637349005058669820472654292544047646319440493036065376568263356036363732721315480334002967544557727053224508601458035381959877716801354615270230841628122043723601492564576098995253330453237735292175955426457859498858447785635009720137175815130939012834726391336719209909136932467003095062166116230238607397565360159870544624618102605976135297331564641545558142395730890487395505684383587046815204429213421451023061697124300254878250368546080105623783646823803271672010272948401972030392989991797280688741978865599152747204250337243502024530820644070012382351348135439782418859200519296753662140740922460783612185516721806339333178675073444471755931622166925473929857457487561939354079258928584075124265682705067485545282139844867158049789446736007799480467521444709340825797810480658037720550213724587554612699212509896897266278936404226227095361688670826729739482289133532308878207719463761855474712851695724003483741248733761159134856715955029406168010761330912315118366850916535701941119992377747943041304294708345061201228762385711841381377974445281219233321773608037016140963756669721490859328485296079482316085130961314513834014486311425467019030450836770706728981170149129888801038258109825515910911101579908849655642846832502579781300884752670685313634689545016956351388461559865358188581918055470431181053348640540561196141941392441559227597697284264694860290032887700753224640671368649473014467814732289421155247777641287835448114718199706735945282583257169134620972327830329506598307152893151840415579298697655312026159342042704536017159687052127253397381945104010485590493936608847695846254905698490522784048508335945458611618711762095599163122435069625613895103564208855588718049532269359443048799449451728841557379661726221349746586111751567799558075596650173962838006868219461045852959342228893857038893685376257383261939227319491064378584832400750971156875686618238520067017436851146524874111837236347324970536829713123595170841746453043371556566904286070185576517393812605144740643194077457651914470008967096689327293108962047300123609852081573137366406737003933219969818227489487558849291003836462750406162417843488058544680760549079731161202638461958869803484661706724054888460270046286369509348435130358355999781257185923488806197054537683198533450545538722745866475834501381988651877739383464044226199522283537190745909503693243540754902334394841025503158982305600226981354297215585093941866422933377126049267517025562572472049829929561342931563456044037943736917657943880341808103006291807095945194293354495198456099345545201987566298256602625159294483333872261500600942923333918799946929370295129482390693103258363796587597851122765911858344364289241915192012748828620573289691767342704837335630917665913173874884817940086420347864297425883372879151502470756195261887087133618512671551702580925739686083127146125174943470738785564523392152830775925629459137385595880112697747163409286072378301357914516167795505374699416879584377872528307950046561555166243680497038032840067445217287942427995622135355393779436410814145535429439752187138486675904149640165143014982970311732561640740430473783830381942133129474498523604618399496698923600731064273190121196712735632942156579581957470299179952684672703802638503922088572746256624103317215929706212001661989685309416086029800520353426445630980852959320258335327425803406494123834513117561757211534634704738064599723947580051965924320008163674940721269308246633739386816776715501282243080419656569491422780394473744071435922079800428782012516546453481713898675777520765351012165433981334528646098562447086152522096591092199979241832917396840891253269423496054404251641915847269339222736445429421862124208963572972903837467455537082788843237245415003503991576505703679126425721917986668516864047818646454547391448625265768773396703983970749090578872992648715650778661383522962490537779907796450439406213012004935282659439630171959066944064195443862907696944710296296702561441406259118872481464613220633652258434110758397149362538616783533977076940585144780039487797804452229217879105348873529643049403001507953650238305636361828107895247242706708084012101889921962525877905282564001791727716124327701736714751628097454048794439395827790569941381811721647877642922078564175627439140598848111511709083485639759630243216459725589159213109693948057494547369909398088345610495730542201114373278390770223107156254008835560469928679850789350033500687903810781225575186538940472381777085654416815222044643223990859510131341519765931243105518730120467602038566591359353361892598989417184498666577907998227038210574921250436617398732062418371871371867966191382048693305243578515842170027222473858538144994471916739803578036905370552676817514077939291523281351349952510122997268704806795480838227950036441614118238006642511596530346278557433167039177026577693586394569066442814931194755292540474838584435002061752279173339935162179603787126656832902640237483037542602045293311848950757497797268238894301401973692284475436906670886455620567603941683504340796164073215267148578538513474859172386427543343282201960270807002265513902226415619755754530572889947329099176481298661797973515051258250247606371156695583281456688077161651312782688301030969334571694956987767173368595505158253382743722485508054759473472541945574661875635294442162557768379991487343203893683510405920303289575658642656440343865068599952293313661073584190523035019894035572149190182740453167396648316060321668863760303478790661320905019942567686231486224449378555434001918326324046861915075378817638796686072018808778431223673496558527349155318518507109143649013833121457116877801658283036883215903047728773370142351445944304516297687802693611492169976459037012105159905245034473923285394164379241793946575695992677467160886815077586546829567438234380605751383391503116743775396561414181681781619231549529614014310820970845217398902220589501423277389067094932081236966384391090850527263930147944224860502900551856818042662135463355451959041998221845474015740499438283074549121744318621884289867315654310624623798137172618133617495237659410008056661626788633470859751968346264765037703784201715436938510688741625493454909143908743972194718621223113339642238468745277344189625136030836034464624364624207361046149380297453413704767552065096834726485057723428588922805072014566122120007098502093201761722883217899587122767236353929665820521633446247411788657475361806753943407015162985211352732097200323112789703205964768963228577988243386543187055509017165374198581591464118400586968100548207932918845836773845873484857360363363814964347532284767127514723308735648038963397176172153895840170578792250673360851463797200444314382104772973651749394862674472769018139134388703880560787712010756963206871428510227894756958225385011348519945791527233391133720644970384252488002596753604610799375725226108209796446409313346043620850288843955388630018244694772045092877036295156636067448584173724161066499967852607524910638526846192738554279436452043266384012894994519474084708616268043244959805040930929437599880352814330396374479442256644664096171834697802791626038313510596930075537763807363031921423980485388874871484268256813100489243883606343337620127113204908379533774939139431377735328110682831873721029381408481648987088715365669327423943716126750231104662709005675502158698364416911164958522175930355295123795073467690315647585274476539900008319467621609394052839293561464405898530193848303110300229933829466043089738710862346004349773691928133364766186054700775584673130695558376249697486683972715820175347081699166300268852022112613886583286723470396973100531225321264206678664921657171963637975397247147305022038495649032014537058327004322154490226240067575347979538598885665080684003273220427033817645212743286762580193523921782280428279320601269147771831606587332695239299402421744420200330435371153852248668830206166854606851044251962233481195513623189505914273152806359195169321039256788824460679639722579447452854988203884039774182075454581500799432995729372379008954937877679365149801157625395210286943296855768207947775973564395032842425770580865867215976314660062784843998010077324152224600818640495534918761440360735351072242872817753066441811225897545733625799613079389555821210460325742892116705896148619267211859722085578965598026822505714269430350455312183321541255349946914344366008466579094218716228240223877692937044416708923835199900830559510198087001094804877411813184662291361835620878238100403692828160594182736368659544670282230788833570740407032370202036231687300187176658500160156369213515678341691148721170020032788962256327651431536675823215315465660803424478489859073465217783655256559147094015812125988056053765615607895390760934524104554904679475750318961083363523984992286277577683022814255655394470813179704973790268670498912680577643220938635154204074345505938597484095097493960903022028382541627892151968049516528329549593345251755879935906865765139563961206471175897043195499233201671843578414725896623015009492326475082662785911754581590937343273687483418747794497281609172124248097095029338053360652344674853518649164816578826495585093106892936461188739763889647629712054041755570527662537066484502541175172027230718314865498596438876471673786291926802735929493681430132520108241515593822537305767263624345296311285752348624858737958936465544473303955379566481564450152068313206685896332434364849367645025367488042117439982541296593524903383569801368054087763452674612319227916757220200167285736372098016817348558911401290899231916824586191383284126050446206144291385270264372977377325651555262360739893907825562514961601234383638621457378190674583622839193813429490522410263949902918808911538936520013025405684993030540928713826540695148177558620023206111815161798278453605471767945867136591432209793880399530280656687117328078782439339924998581336350413484687176268564020473981330965823254414546614241342436843620946136173151144775591666750793151426694683397187463817328014573323594942581977226899298128223936242309414524587610673534491212337440163852208334553726319764817249661655093250560487498528141510035172513846288036903124543003571678853098036704876645239081562758202807865895184133263659574181487278916267656534025216889370526092593693982786788810784371807718424115856809795606712311756924055583649937384410566184587348129454797402194372933598879367803332170883204916645875111890134078955486304740914395245452329740878994032898961965598037483871903537087258919114787892458043624979290127356637485466457217475283795366449148427195520825392535579430175323582178063588120322204907638009277618560291782466939677260078967300058296546970664272666431610942039206560233179322529944516074831469934868560203092306055857917433562258842076773931430464205822566534861389621612687619913856140197233006098189415057950647435874260367753522658683681487010326412013725185558133731976060612398326666356561104726207980827087923713341165289248632550543538295258839676559763974481211430976294041183034519586877840735390753894411679811500492965246601183256161197453003172304257235571943606399357314061420666357279231313528199027170226819050791157846773301205662345631290511904548672963879594264441034132818649866728149565496612052812304844776591527247065545048948099004299520500458439862493818463425014407458734451459608780669568533264391336619369878992970141469395809979938359949133937530881900937524940784811165626428863689355236131121556455720055576905177349709951900550468888373620913581826700988073765934775061385312269358858847139281040898801234975363254087839265679822375275694994621930328769462656445345710834074696990213215508867287664613587205384314546728683824279973156343204518205954070409739000050524161475056924711631901605405705166130506323755216755544394824771827591527306280528099015120381749606706202739107239184483774494187817364057266850919546867135439988270364430169498433769017966032894472025113845390411918501425897786259771838606294002766802908780148305636873848850156623092616497511441733101248243751474113262748771733020442847262429742399453624775989656345973653872851818319421421601482850511692769870422036916108081629848042394366432855212156285611505873351593312506934662571539487459274784804218303452179540313246028572230363070610036094703222382791414334605177007120750239942585675722710426810723594561242275018708851325638829013024629194503138850568432400880419768009290134227032210334310263014717000018544189285409344402483498657696560380501801840412955901782113589535452230790038392097969909069521851894874001650342197706428480468030375439787446179798169292324575284646224392545739471631860460767345982000867909555998939183373652157749635892484105166522001635230962628127759649566247586823182205567163446984642266929178370070871491332616978232892695198289244835750263216644832134268253292879618491732465642251568803559737804723919656236296021194639805750764584117599852558341942936453036736265521882045933765995244541132322399451052487511517708453980128311934324769215775697915448774067149880329276963822138462957870737465801032663303105218936707588348488366709026928434024000984107908301458922890242925347507404677712522821246872304636784604907899859833597814944881961895738538606108467750941242951665470106626060160976143423747671991743333176615311652818568367935629450082625760582529289597582186696804177905371555809823185622588838231158460954075512663789791736783940695094296239149544142010091440058083266943198076607371382008657858568924009854120557601393248200942423144538533475387593887725771818328947239543155228545552742572021695151911169015032235546763235608889912918335137434702016352992536179980860151849436755201514641731533710036535692372236791604291911119164147267644314445630573500028227854738387290322743149927922449481583040289337260563414627547794765881289437362430988178440800887677602963541984324164330998843351952406982805488512219194716244713789725032731276651518770908703063210940616931604496686021871973226607514285565578490926777499635903033490139328666969446555917389005664861195702231230567055836164049204476206786338182860425496067486456706943440946862992909742238140324065947379470078230674914913605404759484247908863206719783031005733264941062648495417053550265347380417815974873158566483110014510465822483355039949247428290312279869981335921934694346907368003261371743263498568012036466608228060878404741564900216653686773979021353422751815931120235360995568348590608333575928775977648403186783051402759433755247733090085924177839274410389101904841019558599592237475442197319286711584144831589560567741502835477944189358086860736182083262106510994115390765669918377562943649180362971018242144148109327728570321478793647363190207382803095658183298802991249237362239840956592186596536672104591530569380778765558992856466859755649967357852284894703298785935075261759025891596654815579883936555229296899534431545362106805071525915252499160504519749132141826797129302298249638705206323389420166146965953609540157876786587085666065208267581080344205367851306602538411588760276373042235685664631515728724467560459276213155607996399027649066126237957310580119393593228817703985618742109618752883780567586028511375547759718739200092221944652626139828033087866441430168642846957654838439213969281533302839636030202702520633863959772294026171570613833878261720280470535582873880379462640276604955610756701341865649609679380990971821398525956843400494219737501064074308633034253391234409925335467171933386112788680681419437303699847788329897105236313605051526646578052741059454692889273159159709681766033728733227471073082580673148600640884131900144026233935563825697963464942997421835884379537086301325716269032950712311333068941870265481962524545994510202801004126970285454700583714913447725658228922150294144300946688369054597229281287512775530369585647641527013119706228486935270888100792800018544758865015018202342233061538142593084665438411258114093513900124590585968881369915760036031908517899262275967611508098549570664096807391536843703661711148095248734406708722773211794567328763550104724808735315952235598923841796561500695732542679791935602954239243986870971421921554633974944550033878631065619646510594880108883970212448432205649669985575704146832459628907327961590937590212877003337635429559027761835779341619676225823129975201775928554708506431278940612194350973323837329903140970549312064312555210985954805411101957829298998628657644263480646413294374161109691215132632627612970120396380864181425397889695855619217634051964326687015867224015008003901004092507036094634852918912765712132707891472782485364193200268496168965057868855857145604572741219600232560208967037813170844421824682109785148005803660046422103193404025292534371157207626320689516711363511877497181910618570433759949854963160811098157106254074823988865699043614008564620266860604665937903555200076854475988363592539300244567965791979842907720776428249355332967204376881614966601594611940829083892655138098991184924417554114430555880050195586290059167364677311298717747560255107713528900053022388527807175533582496651856184771588150295538094575652364910811074158651538645924290510536213244214189605442714043721981224832848245639116584773863732980287060943633224901592207715091950063127106053351685283783596182452648067445098454512584073673320256621775904162259207188125662128110470053625859203066630300349574750519672322271335218399220941551341101599103058657520691680293451608744629081876556989673503064311067157764700201877993206187701401616605886897521084233103247841655018664134179481026443478008797552279743372577322803956826648099486994511875315169681297645327657786613916864340173273738480138294276354829998840473116633472734472370109332300175702623646162544694538051380074096183085331670281634728848747714680767705908273324319392191613788100479995921778946573890556233552864418290639576466786946077659905602578321565607852978792108370313854508495718958198175656600602420523801059001591616457442873331754348168144737037132257542817670788068537003784132752042589153833664358532874654881215335827697084213101509641234740615381067566596551679888108274541946018429612470734717625712818456453383404855846365736182321325031524785314114167783886873708474703168920901489837493290464460881227578408203191239603428348108708926914502491376410866863712731690857507536113410795056846884302958546805014871195867950734570466229924429298741639342623079221824654406179529331673984693583849222466631405884935379177333568077110063689383628998776242590540330884212542826168412409663669031105239073809366269692608605345279298729763189429419407933429645302978203512048559536321756029441134993862058237662358681051851747221321990978036973678356175883542460325971933091465898782141180756005267258240590268764955271169251628384641065927503765401505379296458371652827965530379591671364016559597439962514411161477932370615896077209325834352083351231826007544276335854257736606090815890084382435639175507921104077573458338301256772600506508653947242175517864624369886459131214448422611849505764373681004717865103125452465977797007523262898423861919667273088975958810774670482321739993741628052080611015884509288109008931018332391072662689066748245816842784707977013407066031208652721675196575939195578334218732546425295512115280451962723081471460806818723147673732843955245825595812981154828682851164060011212572623930364515056384263819046856155225592877949011087347376102898427466595233422528210887458192385409904639698666815898704630773989381829097405066306509087928251109504226304169076383368535161259305624484116121187083118213668878233076087973659184286688627028236135529770305623907044592602493581156027309625894878982064685561162007292284167235263657355070793797905499709984653774485339305889911575054208946422867210958017869599185011696528000854016207507479225618032960300986913338700644144256050772316449817918096430563266623623457087327905995965287101440555068809244972306995564762376779159334600714200849611740252388625108097645853981838444444730390921259446355600716107544787519584554319312161638726415805018129951810230967346530441789979838144725419187958941175681139086152187332169655005168008112160945215022102078166819967369576232265816871837224191876982412619493900793969612500357681834375818162169866369659720323294338478628497671680453022679453835949742844062699154304416537142367272405076461553122972561069835136571347045469394069686022531141226739215473485949071985524399505515961466456606296401061247105368702266413209924268259282547377333611024418186846295457728577253251321828341200069361828494589984221922562221912472460902473558160055553353109328713258295797263756382693734963737267426930667298174792187288883470149076623530461245908682137462469500775134489579819144677096935516192445250563620563309887045375426830232625034738199364450899961159695711065091150862037303888713057015894115221365489260715407403613411857200343313570278503517471044344799992773627097440825617000643930292722102128832442167917602424049915281665752781305484858688556848730899493719739288751763028454512533833215166567777039508419663676441980468639571819473111510807645184574762437662970208398996323871713372207593472818830471962573169108860946069097894636029402230709274815641715926571976168671191927878822887635758360925080892696333530564960667629377395209158785285900046874394888451859876228577912274747212102400561773087898280221693202217901277947021484222493455968507073439679712450673349807505767038051926759957457895324403792488710665947408543507103645878839564896309692281131234592674291632527252724840565613958061402986090540247149388007869646702946896869927779860637061023545852712142008363284010303923797170616684827138399924212834746735831762100328619033013389871924547729652196549269197780859680262104444827593033913934568893709915084979095639866880321749292679375309245501731829221197782089635372398929798412590696339504006213205071064558044489744352220824236661891042568715181020518115882389318819936108509457191584457797696071004890173727881715283414807956400225051790934406241619362421920982357559248090891540685168270889010586638068054929043529838213572394003629600342748471262447710212528810024528163677472040915535285338750897711432115605681416054829728390229929327667752217868796627487764055428086090354013714800643837737810605047105914240329559648010367050328279290144178699411400148711108692755656449100253190496861738994667785107716167664853686890963033503681878450213286138509933761484421469043369534979902043969870586521979592766112968990942478520528711619588863340892065101679205712679169826058578787000289863739018265033021246808944059681016546409598197507719546531640691579245264302090413175793601080897551457982523706997500523940658579019073539660899622539415954225226577466187252635634348061903600999843587664858311098748870713954737638615819673890219743565463373128248408831965342994578883905907491290467936158656672767190221489439177925109301486064159845485427802072304053478481555859356668910082382343542477600764305714758980590020911695941597259549532762725008492494105635598423319367771143788218574048315221226686403960598316362156530861349034667098357269981912138688471589408969595958278884509264885724242498322518240121566089039576158652490215980177509323745852201623180163190355397604983946781017474017440602860177336586908903150038370372669054987557701097962945693962850145767505997904770766012362278449206630502898646407566418286815864223915601849116107180398913620266227201221305687648793925293569652876313558770160783829749893192178533643296954875840706705062479138553875313436438801115969742954866285481339813019880464840672473787181906932851775126624244119068433344004156171681741830335223344934408342362035640924766768112593840736425873073125150391659843712109462873549983104431944394860480791850081266036369608568079227866101238301213558995731044443740612923000073984563056538765673169347785356497221854221099947815536167335863104386765523688161173137980138190140442923327256286281625661994265999377816348696576059709207356183093735195473377701020916270092740434422655183373158906145421230961332507487761247045350465634736584854144743525087777235194312322415690470922132972915657897985754895136736864114110913713510382921235454381849885095980907395474072230716017586201945279725320249191171186818629859142882179619457049481882807090312678147084818579284273027202544655798347168923209125317147511885501939460486106174969595594660030030388129142836122785307605139070899434908145925274652558327593374015927410814721832104904934613713020804803375585039834495046027795757215151629296610065843385162895479391593739395825942304531066467388267493231028336844790293668136545921506655961196759368157855374594975695154245987959313815543482602812092555898660136721813142658584592247197541809067595307689757575783991319689040293305699656453396954137991550632249949737832475551869998100106312574019126959056746864174142954060157952136680395341696132988553452176141580075511861293007484269209028967744099189568907832709741470988543612929238823599534171707424282338719788688337059644217641203847287059750501862080395992109219505177140115403275384979199672776098249134459471340220453760968001063383575871167599361774575855285045062323264992036060207268658682359707210350704136874748451028194416653409101387508072203221734885566834809867049842302566682009784988958601065516316404390604030734571920543200928598690246936583084388355865065813459338035778090090623050589492701790945975017154221884223386939377379340343940089114551611832737119612997539590904854616541701001354193539336471225007874838948239372644205676782106226045608771391343278821821961961841587098106241485356006683672749833835300156793208640818394194456819028765903306013438886874423550606571313857473125827750507863142383385954285002049822534883334034558810647346472758699046266929852542009344657103703013857017851821785033718840931833631949047758277835934426198784175119197676670569829204713245656655692614692838489711887300793897618526782997748262126394241710882482477899233636515798522879493550602176606506026653932118181874978950404503642152514617258017688157853582181378159912136409958463200036052942211790761941586689794238033250820509553440825538166997331276340576586952314697380245442479651096465904112156732003372536263798943927600815974208438802680419149385509969984982096161430767199089633372937006300089293678288570057621409930386431630686182515831917218112926946130885067385160158938069255779977833808981577159379900161994604972231415209574656039406110559446806695025496895816402978034829183533644690201230108696838129076549549246714474907812493178467899594781748151829912456162984644612802705288191196153758421894180613582455145673489786646863522326095615128918069167902778325202547593978563170835201370117402887714389642183718984913348560047848653793184920281744711207624868340045083192045358737778607478938009693767668578651391933249348859496919110810397093228904324907525686558812673267122854811330203927098979840682691792187857621120136125592934718350373769431445563898387501267836793957453272518682438651299888377787656650120689298680161966622758178943112141451517014149101985664078416417532535568968153661955426684847202221422128178334348231281440395920983364060778592242793153817688978578057917183632397308361019797045696224737213725963162427300640990537616190170967638215627005797334557001529302664999087227233361432042859605544744506327225526633988356612950395759878394288117239521597664600172675257801849093795158985471775781607878128898714144348970746661499645527389252288648310136971398519007836926002591852121155903738035386908774083279572721341518577306143835728265993940912458207914593101277979109410558947244810102157272817796351805618804503853332261530074030245376384017007939330174575642417528157383604007624147254085810473215106610489059435858340920834987982014807261385578134903392734671612407542118679970327272268396867723702202657667059105788611114127283853793297090613932103551840816006453660491126376516661100042349356830015287357315397461784441427113828237545139931331985761795949526096154891713995300606463049119513549308691032276945956115241873442199142815295381615994923972220626001198555893277898345827894192811457092037304393653213306686079272143003890621753912645845903850767476525995617612469428977971102056391211456417277376808154773704178217323002431641048841583828596048211004856088008962570174930262277033791043785496858375565322320162034790330337938268757223854402167752505387508011648914452285332075880115879419755751249246621934425781667644564294395374836054502956294540756013936646537129064364426461677487653442907598707269311128531694186986878105589640799371290517418330780379683073583384166920602978767706426586158698442311143658737310444843242500341668467237205472569213905772684576580617233154164308122198364719664100682159443275601976248064097836325247343139861781622790767084558383289440652660614197499300213646642767177783206628532047349275450289352852744477324374164642191209136214783064913654705186994778311611962420844071415943813747803114212780591172371039081387330401969156320389677025716373093084721380287656682965695413437787719774267604875737477253416436178651214025742710387368409778103757245614128859124021080466681992876042461132877366206066337273700279357013129318635238700095080732393033116681988676788758663301823822535168408011874909199844459657324222309061558316060180670543865345527300421870735771750464787914509001564770985055904850037797944511797767397397368452491737779035692432448779496729145070581436949208315214656738964466873137938013263557595440849871866033324676781813019418909084625768945720509014527570829555331071406160185357638809360344026456023960032526975497164105426409552822856331568783682298788335034827668672330881885173430094376302768852726940944235542742626872321417196651246443936461623585433020157018292470727637788959131813237830474112998055068941405721192322801838859048604034381095077064389797532005888901816910856426559953414958656914450793980919907897717007996736637006445268360351488385925750161271434732126742966881913122219696594246809298934072012365061402616546279894580885301154533625159937407219530396265074708508663874188186352110417686180798250167446828561661554140714087589111833274450413882190874347265665767271422018910498949401026773358341504384773449314429881293548351707531220344421811006876552619936793892844365359371352242419082632179857847532366295058837439251725356765155951850452225552808079264712342653461044773420323593747304628230743084286847272426639979715629239204539262454068811454232436352163284213671351122647998526327513548221227907175635873427444325883425489692274086241171856143517472464331306239513018941551028753192512753507636653042797807601766275056185567884871230571335316296631511533918193466986644683708197089302400789141791668996195861089376872572467668974418412071502366215652566798758746167835955553765442270962913500442096452512233660405763793133448820011609235981215384012347944260671035750925779788513129556464982124588068053527609651834544668474481120314640228931346986797744736184759320969990079334424041977313462746223933950934860210585888525237856643960835484923199086932301548877113586254545225920075168727353717038077791088614426167044636289273917789617869034592827811521609117890210897938998483095388114129629572260603094655322576498911684303976679092538199485731705288190680631532538586120938487717446738100286546139158320504980681872155456919553052204644095236256585484038331889731309887654834527796460907172135980975400125334029554000435355022050820559695755679682186876745293617255093051364549862605886824105580470986459844076165672377067792419275373625112528033180427526511502193137298899006780364737622198881880860775069125461656980932847739359357248473882162669001000147059511830996826564039693859619119490467128728622962108863307867613365961092851168534513777137414203729662857163995993261777607929161142137441591144908580113871683966740918040296687696629909598598193699645662494238257160922591410616627987731822253851191236629877405924881235833172596613708315050501145772478624278915523325499052170199256363571321183220068056812329639020393702865218022559971162752509722369535102531154129833376338653057014267647196816421584855768453072712534179889831470842915848313513765885234250226886389885373363827806516640238194822435377166700560486946573148838259751527157681854637819459573220271352164805849704952720676420372552587999809026058305210344113699669390415551664890401271636978865161379462450779336414671540569434264614138052082976113466570016326314947222157144125912846665270321341321309722963132306901493132445154000794739150266580054733395255466696068780517680444249929454367362981872409283166776001196298289639774783982126110034719616409354951390411255401103307466334307246335055982437844834407060511977297702347662061253098695221674091546992140080245808649799977071861247632712811678555095184687726112685234761526898602770460853908252227772609277137910285259264103568385129749079068499630763754145968673561247945280728194170810042712423215595470822308608134665263962199618105213759543397821493053723079821683163835005086966343125251610448034818764883882710424205376128819936325932428488331777059956245594637438357846606945200250755949890558587942951261271601548161251323389398493931465523517353312286479289330755714719127737407064070593636280407250286210052630679207586597912614678266542771128155611362514834032679382039250668310675747212012900195067894340884562745443954177480355341410943576399469623070142992169952633735766409787434666869518138676224906046398079384397468114776182265731153240635803399326358944521573777786340801068046607906923214222411648408317498040596033403926420468533788551225641419307998240729191662993220439129464076638154418058394451932390799271622482122882495548645201736055739773699826198410029649479815563984410735443269512961116285752269993852213987156018786539446098752546585469820932313749907401601433138067410072701263841441558423760751733754963364201055117874243000198570755910989675551327060581198287409828745223318740621702109059402043024087640095222882305979202506263874386280926939807375329033356922080317287445302848795705099409311716881961547395421051588494830844020147848044897407235514335457959678971992477729642864841356672669123836632305329386079602672269153177604801113932981797057586365275736694348285678285174044237092343688960680423340950550300039983537536370881384859323619489456439822682950773235242608477852025790624861586931738307747461423972867058930341244149982085233626677330947835112635284855410009550919959447289518985910936529129606543784042430529635008381433212626480190825343689840337857330913122915534644939525934129515057430593810785129038861584310994281016151078533853854328447434678125709920666647061080332873720432763028639616462144910792683784628038519661583438210695616072201859609684648764506842508061334523951760798545969549565141482770149067579347500215697523672362524896139499432582281703761778207497067438561821307592440055724129460588032788326821251360077662295459176506191892456288400754754610626261087203458759395237498915651850230573357957194345942061116521777024608050782458203379705183882511308972619113169785837344540158242077064152785128027997141407849535083020872280243103136965180948064738477656429621197543576906030045790156131691802872100712198603094551972884330035388691803528281141842891943515778330087840019419650874031352616853796064892669658354794807009793013658098259172408473408906472785999731182645382057034042423696605030070973722218838940682424347133651613367749707161876719106767053355443648630387213843142452027993898418022702840317393170499091486771687427355326113299488043473003553424212052311647439700857057174720774433231379662449638444404002493924639135586181965633342847239657710237247689372659089763300212389926587319276023886058561296968809350294006545223272785884562528606972106262552335929004311256031801993303679122138933622993849884806737105028016100507426909708267969692759670040167728780198825817263287416090799544270943012182973332275258731986372032539652328419700554006968425354356407388538791998690172827107461132469965678963765450094880656700301878647287433445354241912365873582739577859117769603533117809034288534584921120036409251963209399056942239298111733774695612006960279728511852218992211426640653003256803955559934431612015934089107321278886381408569778864672018470331941322579351396961169558391173441428563366433712262371527054893372427192946055828998395225793096385859467133479122708649350642988829948947966095846181882490849207740670848311225065623825610370657428980234349615014832983491729261057837202747762691800510795426592712052526142078659203471387362017417217871595751116643791103567150583784940449195978499026971685482946795395419066395259843876475618788060709114969156003837091043134356557770300394040597184189352569440378743023692832489328442324977736927434983994744124341269126752692879194565013243200339367689458287567038706612459831272572916306712303884323830066515220281985550245480373137472499787577195481824203696847931917613802166000568809423195059047428850830379667508322332699377753445952146449603427321341749600624988634939033768810958580620498312294344494912063001828259386649439307650022049326657831636438292843512029068175379136780487951471739036054129393912717822621514835992705757675244992055880006381057889859167634313411757057227740086727101268991414549356995914223258134623512442902156003518014115157472918960669730334466916617010449053024830886267936975840533571936454590575211684694376875012632700456354145851582225570414364240238586883566427601427635705434354188878620054946800934615407786446469945152016882807700970942621697894810910579311735065828834382345172977617243944496380296870683535291764181142909288815304082772459229623917254631036945549456760163030882075865066281926607143905566149547568773291648818171401367078422359717423893776786546980316941560795710245911883896829953740786298406543997527560505899247454247079282652582583764424289608192084961599033130661035779925827339817109142493196849772824576277833237831563421151979211147281739801701995577056279779949285741338316919223145010956009087778992015425186288518044427195877746380736491077623053312464081447775446422505092957292913367800295405063789953434196924485537422883598428518206259861899822756356735577604331393100944366671842564471877929813494617218431358560741090338391822826697897592292608439529944898636642212143664210019012863912533291226260583061428624155086244740133323919260585483993596655340160369165879473952299641553420771115805202655478671791641733190558880992215346247049556437093199627739269528829528561398186803679580370646544296874261255979300751536045598608884395512742517290937803722264470983142056774110428243341571476828379114765868739064620150623437680954893068635366613596405123102393078408541558131328676432721566803091950265219002226511350687475672697853836003052524893866854442351831909970411053542779961996391574808111137919282793110442580238238098331963710278099887976177531646197990867443732893396843354960503823583414842237877364660823818873634566141911199980129355543653570430131991823493796245677211097089739599455767561943210075622972926057717228881568218751852870939719767028543983920163544272004404089053545690961305829159722332209877165940421235337456578841872703494084065079361126292452384627946279691004281694486743076188469013102264793745568244780834728021676871970237992767984253972131310677778716014644602293761164357912906970815481009998252284053888232766691723967193883860160225468582163776418332732191030695434503738000810154705577727617723845771417852928209136003936931212184595277562592455747987833917496580300947830709360099665713859699909921938463219588103553430051813097237568400985814394434641538014098017369212590516194958485010773868826860883894537690533778747863325070500117108822671967771417532906622501360925197894613944547114582743664312537401909391733118053169399286212585533256388662754294962550097665273324233004124986924776359979039667350441096249199745255922194530182676300487630479075449691138150040388466544995399355915902541448028477041627862513039017343336974891391703101211093572461826281074742804388637633598758445537035305087670360875439029490295993896527558067128460163276547541354512096981590229241435985793518255117614792752079404427989805843399984615035534686515069776822184349612190390298689970568418751449967265091897197652543961422561413408176831495307051922056636989076365337799858557512402882237278077162963662296593505488717349014343317957148262653228172565312697151684418507342706920845467258804079159397392281803982096562389844655774605561882611183008437988831425507199851040822158946562019486605585295290789866444289816637376041203290573410996986969809145215691938543448505635334091426103921950948215569714654272255110241945510735096109859304550020710944618523263890089123217612476622589629362117624200333672374601699336077144237590067760053689440911431178141880650761583963587735897139619776308642983373050250190691394639590494379271721243443330564100037803026328322443038493471972928883913122793907833363605488393687893007197247997879611701577840274275463259100752712249705527756541782231773540361479702927625281891954242515821898727188634952249758704125098478630362444685273293319299106813030729826729505293534865836149841505544652925925768502023872422972531777006601923611686219467713178336933602566411171506276854880212211630319293377495187831340276821959990661669841637436694305460048441653099944304271665453668683167867778833670854839131335545966669586588925521721260879222664795956719476647314441736223404757893260948883176225994933011167399452017567000937944500662888076067802983226665159519797656307696658201235858699601862599359260669471727086484317117429672990725241232968409650527138770224191313018454682566316973360776207418505454356115029446835888653536125740756913230148915736852603564410175385886129374850204762790308525838290521779491763918879235133110075998779774448080064510356689582277359497580671409758048524466533673149211796043884120859645927613736331340215301214392274581381042541476884991055827522254363373309575394236560521276514567638618670531864153923879540951085743095972039381283055878845284086304860294505614303220911313056959089152764843308993525629170159977511776607487220913570104626261795124829015023745970682193382087046265637757415073466026070651615402451404983373304062059615302914185018982577012769401146913676799216316182310597490986669587434945715590150324567541520817283940710956927802863532899239564032903878623275692977100602895254271473427551895171815210106557173267305652330740167283764869479642438546290354970607664440461193683762590912896439098861798578487263414541376844432131639427973200466778958114330839151901075918133462885655562924751962182267681549082367671558790094868232940088174869260336077598151705842655059855051598173727622843688857379715495188963675565652658704257694326149385469413161059865532728767031858432387008038895712674199309642440070902265695734894085607673801362205004742925431655866556324227571229730252737799257459507448679243526097104296749203051816474276645759722440028026688655492930935505914300377061042908367295856702162245730573419445421167348767900121662605236959059084571176967661824670835982030116989231833409238820472100627326301237124258600768689587853126867734150765779203622514233470976610806914067621133211711745974147703646771107985381258286531882867944774965537499437865622045951361114442633165453370185876807869043958864248601200707408316156678429138573658446292560587186664585650664971592225250172398865390721689596959746358421467175057717873124857662687010350578618119885043384233044233234458769079156197361513507002118343779821584972020952849871035351030204075769495388454860892481084479048428398175504602774940921652974565354442969042398156597703672272144139752998348041299331803934597737401216868234662318263996099154719421069017842639015677667024877344188501385388590270518550842822357834378473507338967916918222521089680388106947173816654587069141183636808761128243570337554993899531702981128969751459694173654969865769272454193997760284661532695427275709825544631365545345193641231953030571014778871955976748931298886542100163505967101276428802808800418965363029468792920669337997505993854327768447921139558891938320434157681990914372376371882814353418404479215180394079435516130209707088558968768239947578270635304692312847899561134345398669384958896736995310714373499891532510481987008276611690288500291751239854754803277348178064582380696126870105245804904348583020814434409705017532154039335317186894314476385087877609722578352300688069899058756124618097014409754886679769478002918444329188821849503653303398562035501784287178620293010632340361096120925849554561079361527463794493247150141699099234985548367634480648324888203514128380770820291074789982306284718118601462253258199031080605138493110395362644445156719434500000924807395697978969187701323936969113308860592674665824356027916762979135178173425344095817381839624787508474982503499329533874689398309223587077344238866896411128757872887039230375935001722841628187551735659762196867987403591573885688200835862847190718460538926627674119843292857817262299197525328204082457099821350587602964850766432862042130967117668935340396194945815339744219064259974984966075298909510961734333036681350893130358603477918686626000975415605334848597440492379818654585787282215314378105515842964594313129088449304956448392462766639124137840921336368923220781289774076708626981357874692692517399597446444026505208658936068831714166746819067420982286105138677734193379971241801781775479083027389336825178621476203605167998539851649244471475647493764253003722737710685821782669975430338910331783107955051873898832953531941650924751418102096542605735595107289835445256076893815733311332940049845292391083736540773254395161637360537518240797757377566783193414209005678740539377617234436929383867355586472889193878017848799599967597511499184626552560380412412862668234945030298683628610991751461693911467353578762426203382762615456153442514817634633575422924220338105066533087315778160936069381578255704481925259760412014459660694173091202032164200621100899842601933840766821998404492003948442272703624787686118303898591216209409099438533752560966241218757267811179756819879952567310262334857970500587274125857642979658831205587816901282048758670938828437760068334629868627792148313248173104692104153791467401377783779692138953716432449453388329234915523291491234463833070061764616421892216915370000023468834432905324427459711675793360623493415295223903557010811857348439062745322251443882907101649712783529370794320546653687888895033658821058906665459262383922990820936978541454922561947455108285141202042668890857696070625105922882161282460307823992694265658878218854401918831764461267704706184477550602522961893614430105977061523618680559316127726503231624171636996955544860991803596945291386464608533253054863536741733482544912715213734729074376096312714029180526858441744740167075615298938640911529908282001164010481862043659447896907708515019799610656257511652990059084207332256753091135467860276237001646349075329353776110195670730935207474431440894322756221588979909357392085701963392950303220363665547445268345878795531986881744858390328744539956293416435427185206390973232887971114083989784510961122884679736999999293159552740879093372634140787431734789079510817329233230429143990304355013691414599724277635292868804860777021328796868600634405001164465720989863301880960705247785676021655533637710067807923136716355467503219517908926924521445308827113351935224725248374587181813352626590155971096036525930584991214217107270958289466882588529488615226397761388759692648768624847778251183526776088561520433978902042783401797524205287070325842014250670710606141334019317571376543214787018649335921568732253187855019192521867930903699105946913927012823680568743837292645403531887425957030910863164744683838643052693678940520087838250066272741772472697589290500915897522061285695673604195241689678466156849178935489850693492909970886200876689332973372237152416481716320908414540581165832388363338232246825209895166330239987126740614809451730895916467333094118072225903640606259290190309448713302215214260224523968330226393529804063662314674168377061350570593602804343180225696007844900045176165094579012935315378251601529998115792575797922310423918562939495865359636975411556776347616619108933562650431043079470379185889783993088433494454287161507794149419746390738095826729454102663817461812843476828664987419776971723024059519055424069089005285343132029887425187992840996933777538522453846247161789022556011530549910830641129333097532279054264935651362936627859285221247867672639155008895727903040923907079731044444637658244173203457595036167239810181176843116326874145014074098409409872793362415680036448726445951929234745932686542961349570025634091798954982873856736237273695986798922755498898076428112700154345207095717666366783105887522338821734592781139371055891648520784257842345935909658324487219656707216840602796731308233803536186671429852770331379653012028684523332674637823275789151574590206914948324585445414567509577458252754006880723539558454181094970462779700933944621650753563931002419785475362816174073175860893550473136827532159791399821787988579935458112147962907103442251643800318706559166943157851861298278424082074443951086705336167586270387051419577696729297334991149367503491325637398688531897891430621045056057246777896119471012959842183384105953865194778159914849357108814087545453202406285051824818279614641669475712552332778124656013356152687280881220627593041509255848165782820294538004729342211955665860276258098328617758146206180035178598717957750746162058644894453908853829454161425613585484664918619302164480278108964672541340049649075272237833307284630013288462967607695891462803932827980268482934630281898280650368092122704422742138253346476415063821111276430777021469547222010611067113916747727933952256521367509910464587146053958390153102946190691765439640008465014746202264605416474016100826931859928705197283572076004048162339845052457064355528858119572438233483242548248732220969863238764394244909949782746993249076864420319843720584066189781637244932833520561735986296793441623375245383023914284534805269287203694178109247223695728132626069306263719780259374201475107964357319835753995112386525949896133504209953879137426908587056424016250511420731160196514511978749731799868791541301999993365581809781530339794575992308749783442099478675978081515713466204177326637576730586961984780712781688661787371061121537660986808540610896233641580074943299595809026926004245777492751186015329113670151763108567450239218907972681267744143712366585763105229371718928962982711572911095488646184986827626383833054029331733976981646313163530179520084506061412885498493290550313802019166737873278977304325699829870455837077409805488737843570587431725986867344485107877323583856736426796866313852925425556849267110931301666438058074516995830977994498336883036097043242570612576236556351039123177702483646620524544369464263106832022364486499011336703274604577832355758346555321787528500288517722535745169687961593914697911726000854201472044370102633134379145038685015652255386279833172982150424720366235642835064750693303263350785670921441915081128317492010785510218691606477269581997712365406893351670385614368628042708593775703909279124644486788692933474681675567670170442449523277624463853296795378926086237577876762455747330006231693296109692244310897887434729337675238481680281279944328449827885840362850938962460689001312858686360750584584743519228297013334619613724551238361419046025798168355323037296843387885749032462063851670814253013891986064180920690503474685157965292388673022256008159023975543296649152280235139107309958938806749105333132241173008858926745813511075558671542675686163886780251052351319024162647481291165984703073039807870313540985659868140742605578947761062721401214765666354688012194243457648542797189637589240513727704887614663821101232795305905536912340403403320608061344961474854553367322506795377295287173444335030990056029411613715496687401706469659025791201853073673233654693541314465630950925493701216926139584617005540877966800145949285904614032624121276192814076721982770424493605364873687625575343406851021077153789042787206806511477250042871478540613565104845577727391209077991637137708870337978633310257739633033396830472320404340970900843724247848920691891174294757968541622822711638290006999101438172971588181026922190653704096654380835050214011479164329355632533475885474323501409237825854573222145980797916760354215896003837191158389825337227918528048871589776822216846101431803946379965520709109250743776864051426442169215044780145631507769347723459461147760528547372811599905936660713579856050545032233017358167647553540125470859154119691243968368730008165952809691051363730232834519387531074639118369877546255846050485921931228837089141904127455969312763854309693260865537453602941403037055670624456646002965484176179412834024570643893779167707757177512650105126042703634677887169446969676143072709968620176965660750604045457134687496032957039680484786944977878970298338090147625122170445272280310054580520696654968041500260909435667808870323908705448225871447704507955228043057785472796571628780636999527309555921262186437533879575771395170324172473800390501821892384878023129682101151444180034112431838113872243838683252007024644574339048083517419590840406866907959898606433305651252723799338282755741587738759727307517538211333503350248704257521137478380742244244995424514311423442870304783609097659368366530746691154738379604472480142216581807611865803422506696139231661935358436646443683040040760797817400782126291011639049403995048893128457789842910399415214061643196691097940519442093730051873940020395581619275307668743776231368168838786716345702696555647756425591224554858747249320501862284303789410783124673455123433484748411768801662345907730111212698675781508597899200174439242904799338667447213143878283724209690958802274151391989841618993177015230518458902511737279469448853552782480097775939451887342664485584538597232991314673451291041193363481137828430891185804336236284859551312262177204796648293920021375894696924707469794833113488884066823204857302614621230837435732478815924256957174661671733150609689835777368491475323447573339079669275120500152181997324195932779172130220140178880265228190761917682835956850431829885498007028152680092492459642823057059646704062225922495998101288843644159331890009738251577935798637476324871572585831030146659683874303295651978132321528073019801898351329985764588118487980506058160650731711591104805639128220759727810753327753999722341428751560510875315254060397140774357282882012964833264272396250409839745458249792775417534322624684008229555375797654153412047415117422252144797884590056710197067984351089792411809550861156478714695909657775587714667146014519503852549841336918093908139059949354517507919189123975772272541977987970883736083037480904950212475669717296877304329334211129725348313579327439978676499471159724421479554704617741064895549322915769276992749675723471482173563368893578458190683648895790909224730405692357419139752902858300250888304106781647274286337007453375470310422184776824386569699517421168240161540811602941112290845459519648868986240955197751086023575881415812795590732629325010619302837947448187353947813642019889185291712802511906502116680352917716702885043980535339425993163156204004247365740065163790804512018714673496532075184955780520211091663008947259257747309891530346802353622511421894730693344971082342488822744638418706266768606127704013553589120720717972647895944827493326771649056741149481250586402155182476120049506980194137375591302476159366487018055024966893391395789222145815938873856965000681570832851140850394209709367785774377671031093476207283954956789508026452975764249964281546039771446691711000434233218645314349332017701434331970857970070346494377865064051276625296926618233469276590419908970048913710617498721457414290637006684668074086029165951667245698711768525470644329735230041342048149675746350535682306465423295720739927280127796118149811213606513145617952564005028416485323531041181253793130908715758379618226936386263989942100401877078541327180663848884963073525453470156920502099274092703055078082196626120576028947759784835064839586175789512464855747870371997414647712931674717391719366899655485061736210736862736209286492795007094390927536511137344450729016151952791711184372497871975068391702952782062059846109560512813407043000520818425172486887295705826669950023330541002091218867585218329939321242849874711236675317284773849035499939412973717446107363751992970304660553993718734895557193496512141463272554709754919312423338102779748459842025655757122984673736235400264149691948948694457381679552849937188969282604087822583260427213699111485557014660280391414227325272075011226958813098956931826079834453687530664327836094941856701385126384348727957277363445842466111812721689963951908463096457791964594130006860471694393095288034119958071990139588342609821565064194634015019941839342286494057308188293188787701119231087441624355680288018660558523445311506013511859288468570816673367199999391039875548663907725303581133851544386813925122014310498823235892870019029632386008570212953128970297151601510798103072800429783676882025190112008107911338289044536860121837745727433567029418631185959275247826880817407351869402589681301478127418116604326205760314061262663989685970075542647242022753032037009362567172412784823184987423831789078557921363025639643180895439690620258041829220947677709609939812211639413110342111434064415691617703960182181302917406859551156846585420147256184648415957989325356192376150569603645729493565072290384529502330513841112655142988627383310881722498007723988984359977414717212122478413594780808948171189895582693193424857988475924205763222818071746036929113141620965043990873578994407112129935272793840871919780000563337081852390855225471043698388934089664761384178295337586328819153997009070690414643084003125012398108826188255349688383310668823321897925537344973904796094500046777741779180819139092838174198464855505964713335227878924525886433352833527190735707768259379859837053176680999344860774426215495075053162835110069164624604173909316937679903184612154823499203781113407780290714224159288648351536687600248701981951529623299896092106840635756712917563078723864309350726824738571583790096278298279933396461946533177623485294836649170096949049216409384813097545076270135479947907888709722881432410700875166663769845596564881337319892194332556501406425848086432182443765522778716223436855978267905335450903481873740756943174749964152052190333271899411075126915248031956244412019412976386930310844626458418428271122900393973587435203221861388683253574896683230106585764252584721446860521882702757021718113203887999511698273614835114631225344626706577238333458956906157705753062190570862277422012818959801555910547556225019444208899700555129182629856463519036471233306388803623516382147388901368000128900490391232599294188525674464088697866183057493222349308829052531478620024812782425513020507113611379109710966748826631372179006570585353189820979857886467569172075395158490273187600114445545475180290762041843785067273977401307495619032496254926477747518736846186125996073578188240149849214654655315886637542579688450937719131599324081915984953564133875699005500364179283299094649194709109206101759276900042852823250153049638838026118673167046459878276859689913310922278245199268544223684073829740909706110197237652612872944773733618869833174367362973107201839836532316698717518796475503320193857933329113278704413277627774802145071162635834799318593725090727006630907639364233369292138819928760981646096151380534854164252959072185072296914234640080661896977710209511669158485890189576879207807396958294595928607814078994783646133203276780865102952299905741338725087249387854905155735280762442210199325272071648827061788184825585716180422005255267862242766571322823367781217479344074107468633615719075503199325981976561772981644217065322907267602285215443029764466368852923973884296951685716537756242678697772009632422427548029109522304218434156383810585910862720315629834855401307442940715843098729356681204355288786506961454675250761685315084017604797131348485464660610077061015381330637088281719512419281000663803907039383784231341952580509611226331524905267492117943282524330811757881137364418320861818900755820032273341664924450695186574680243234768832155294573059961261268514820894350739865524657846732883455602091586329033342050797838545127121424888743838319273078233434956466738197925710583553954472684336861545442301081186806418875129336111079253179943933374720474250140035906125283823891404714540504995713081350983957356205763715242232973303165735386548432477322162472742813624025736704636690255644705419222069953161086324161296506320701553858013603820028041161482047662639026706689106208060739115754148271088903666188887085020465616879807507395424135655111561526649801383668929397092840000129761407923492363351275371851239305063351802934662724354932691410635558436624200848022811747585326196511480631384980735734967713926961725565264054077611394647757838031131152041515926758561960215171179185118351339519098231494420443966900200318661620831318405936302859709319002883671910499566108826678981794285093481755409470283035270316044143371892855633853129251020509875445804986274742352002556181007201848294366122365851561400913339593244787913424710969947425997247107797591823781710057219197212965157160797032406118650797569601595510157961511896997504882902421852555998507289773228416187410023010048035343408251007943148644992177833190869504889737105325483896763389347240447001619198713973481160495435483560860181756234318752160329991774049989297106872609210112082219001986908791628933923212662410141992015447983139142871491175099981292606431311083660697409501909196174426900727787211009386394021194520749200044921905080829965707616074418977618201460579740256642151348482905358654601220569280559762011372560082618220388523447378631931680667625450417506784884683161586043956763441733737296779914279081776114500854545478864716301683374656306999440760777387427048802085655900015742578184330313368098756135794060021206204246797065183122440833349327077086603692343698354182184590803754735283686627278583680915159068406480774915074235203638580742927793372578436605415479558232646496503937941253905483144646531905580484340848707744311876363131863896477060857784601718233632847280094110961843487897250555992003678668507680929744324041033252478201892773185255845821367502972712981808705941748637572753298135523181504433787248267179865709238512710542004270260422233154320206359975231052916689364569181656801695985764245544868378723410233471878082649965203842144203896389249539262746856775346637452891955169171665155314210117850170749081811553405575834813102486021321975096694278113452853837479209447767099430463153061894929462632540661390016632649192805420954593890029558846946458440132845603226685501772130603675377488667592733993310450651913888831145807758357031856131538981041950500618640550668057840215158340466532838043299411588645657274341038276021140294629549909810297989354026352104174294414596953604748348608329951406821970911689683688062391820211208502841260663485326336635633334656227387313967054879249858726026231904416683490129930688370007029680079253992642717970989504714613112527890691305609549848221879020038320223432050686080139062897801704838853899240472854601899725698685606493201171436318982195974569450273374941306047132856641566721490779314354379797697796698929025530645709302376265722206566026779193340953404694201256097252356892198789412425592968113244223654158002510945364149229567477262011446979435504466684638289431615052326380512106284486358009806175325498326499098347799096909381188890879431603811081227042885535031831615968951220176994152431465758582159751283519007359959207762980757665498477159782520614928117517411041480929286735860182839704299513787957649788558803189368840424354473214345672998028369836878681270090758049238522237272429673453447954555501040757154431311278585315411117628021255715788634951858291132575715990828708284835353312773894324729112389322768484209083358058254694760877411845307940596906230824104695578412589669544710949629033705037972063826230355780265534003950716496285614806184584672426803522557201705509750018697433552059803531365191918917660794538191610352058211654876350820975032803350317074183846784594431546230545718060168039249630484503463006547771622439613566497587701331772679401950038925553595719347993382619238592249328409361387178950652886940553579704402982347569612288257531032212450718652662225240882322678639331488113844072550869835559594608390457697895738903663325249311466167329984624106798925510935886586327735552466546165080939152792403150835115643281289236828570516449777538098521313937317547464439201873661787519065458461666093028068032524991268458475465149804306821876097578541320666284464795006418054657680352837685288969783077999834408997487606907185837188657760253740068038496254802130940416178024278833508607910003949875811723319340185596294391483990012950901861882855853143589412275631756834018670011639059788248846323956992348387404249365856517809562446982172079965483437007627485405879584172599017151575434712204430435539765360295785303367837590521383408402867852347084311655787511531306454986524053020715609316920721815449343899811514536547430534092775441716015063687873781694028120831722279110813020924516613244679370082103775808601108352176991466042647060504445499806361713709868032579405345401681603281572107102861873939018120450005192857378661791804907845123892986186816212993285450786317031676604037533598052254048526164382671401073168054783561070486787343299940434173614775682234559767947361157283731380817399296592979816539900136808045305459103728857300224868574479590821429821789245153625007505690128680211064421674627429373106436953806830167076631757556428293786618948557320574091123266512095031662684527684987966204547212788528675046462918887893394404366850283880516581728548537957821956628033083167585790124777901521279370638296821852788171398993046386973840476706950726348138217058438580459751914223644718842679485175736214605080922071418019414627748587975970798270349227856431835044555918219192833495450247224031576997874345407031067451291100158227784660904559884813501786422842716105686009181377177760934021109279803873327521725604142513489362963831896987048007826536195209636031120474295422762193059736897931833944916828029043779345916652957845197238491919326348706554852995804504194455278644951816327567158520907415510508524125128887808139316780748936421111927423261374209649620207041332416531288920365795903685834523306630567601890972856188505989089082465438402617921626625421237987986260163395451890741469055532494624482313704036811801767630922064201189549609963807854441795842349924961506783456215350595749977073052717285254310741723223594698267969559151637647100755465552716188906832873774009081128943204255597377777627524068493106291311323984772983251423580359743708506515212266196624516017740976499658766183633587963902156600548280788678929937310414945363533267759714440344189349921255469698991419601465829355349235983482426399699816096443788580907454058854411894697199694875448756250518884520773557085711441309968921245747042299788126702949399824099321851543319466535793852331313300329898118913292786418360954641662189722009039830059338918804968596957727881581333376562682307705316472554543050813326824826137996733436074732924355651971752591310513451335866722843673138175734321784713403173766954488632587243490036322494522359705931210665504186863233836724442708174462115342387729813815439887708034947662858329787972075881046932377515060457491976827899259709534664089268922715756610233648112096745884318464451143937376098604559740625066165188847664441021571469216766337111542053043497588149707106828132405169620007804278881411559784500270875582411808107268361663767134399893071600458417835103691444271627261525937223689669015850014223206420741172088787429780128563981597889805357046508819791222899781204958915268771702019896127832937683258957815499668179755465940643485819439222990782872361066045238656631876199754619927761510882554266313845902705999442018503066548962509861605856889215932489600092960939629224708148457116814943040202992753138717591506982506489185071686590548782898160453673698277726591453115334950210451618140141122203162042807233244143568850401852562125714173775166429169172073511042259500618133744608349018727203740210562245266706687818239562989449628523523962249012147139741809414924333230190527109871249437839729595084278762583762391376305798041469849068250572204422697816942813158746887510994543202499782161725399435653631176877674490812261156115622078704295295673687733810926303670256143432465974869500526913342179090061164104187926625313031751128459544654651737776638438091828158196374800479087132813489116948085696379397023384437045868375585610254953816055937303955535601766414573555305636185804751398705895695775807048790076660835838293461095508856351295819566140136360475173038385910898656023527773816981812775657118647889668758006736220792958530211884118089547044818657380532619899275981572749019919072341318593456644503432640748381738903558545872320286223853095164438272861022287602121617708203835140644670793933240488038891732465660971611687180166093219948273030820957503383991101044974112935642881814163877548974475557762663171913231077648938963148591258916051294795176411746259369776537938578180644583529997239378526736444120124208214414960376893487651835830200023418625183638821533823911083782978334853571218860464234120498951330775653151151829852862320299367669899106682717519803721097738182047933975513853373960027663568145199894785030169723813248073766892972921505490886747973202324726189390646282688663513210527329501743505624963643881004004788052465858332190739949851770095646062501691860207646899288989160488501289598473368622320050110751233466488799470675729400676862141625549853740405247478330838028397881063219793267743867003023477767833256909652855295262786891834479497003111227064701888235383604839972886100319644920205214055715777756988395749330391875467926793014702431710289200604808111304361919239432653469790047629929208766837593058822198284934785267289696921015563938784598237942501459226514664860227750412786728210512306542699076095071197377649818807285757166514347466061920175394019932915508184286756863453699863057809240168829955868026574852148727532741373654190831744401214815056501362573091598126582777978653536197601871465838275206743052299280604365250003928660022483684106920734666390279021272394872369087213536810839809093883872047153568478981974043800966205097622887388674795115145003462485618888355461032989427502940640809895908129964812759516977666081354765713686550742364407774664677568432636575240158484898232584716859171707399070009228436603624211951204661630080993062991333681633641226102525720757308974617099046972442122146121518341684763539275369412019546576022666930532444670333704319262592019218980001721976268959335575128210590370848530554446006370393556974025485250772833060505610504093865670136984773069714489844991042253887663292380664691595369858696328047549360191207986435069081608200159403604086600497120076441615490369059114281071234065135787078389548172079130037629191737340997937853549995637972362558831236603444479125244628985128228333142223502586012978207798788563084653224505270141626437363246282861744209569787699210500021676149864947456262184272267601632992477845345838382099729325247629825281352714886780698245550733478674036188840161498157346101404463129259704974150765042412866109146481078040248770400088196668437488936993771851715245896829939395669537844569014272216859498461217926090152707014171054554183761339533006045399398079173410388910582546387732431386062900434163215785086795644209090779601615071506632924441371923840615152247970511226190745801230889216526091163832686439819621469539175527735776759675478558653923040115645099014673228817366820005535125948559466980860617521312768312240371523387814511920733794719601419814688470308833261862420777880451196564753043568445264104910453530274773220575790282183170799842264379835638632283856347586619837626298843318947607420099811652865670513438292299534681697535599718373585102367452776833212429122817390652691422729041626648974738714654583281173268290778055400130548104958339034490395427213325780657560293353093509969098826041120033130254458437662163814254789865041038597533740722801490169490528107098996482972081989392078363728284084862238956652396453045908656693281403891267001005636635877950618927733952539423412902537439836095677277747206039345381918836466713758412894301134118403279547850679667290352018602802878411307069907298261309525516875881504524629915244244285958572483671859717727772206401718325713878021833203288172332752071294425499898105679037844819135251314349819147350702838066491601104503163015335543066158953649529336310695316889539845052396387905999892667064192085518466889941161158171625836262300305780151499201601804887783564749466797800142964038455463474517415428592058016659667575213852151617536046843157725540034479180471466857070458649646657146133903220491663196873423418708113242864794728320745216162692121406477204729637536522741856939738852851644433062050551004862894376740848351939431901790872103456184568454106297077618848246267407682266406623498527373739425173247957294652569954478326896139454272990810007815853818297255400614928089283655357658754171191531921523602911547616210594243448751104851590584059892074674896961896483130830075057206236132183249426315068017170152343734108847314267980999000189909999358724885900617834688855452247731173454055105962206219418165342880683277563396312833411327307094454345970328652664454511114749893142211998971766136570244857446343488123334758166849628642212955823698667619974961719381107030076538435929178935702751779340915769721373848603446636219062273575412725322478231180065547708691775215543398578354123466358197800157818775751983383596430144319494572888848315586268514143484632597595205607921168585479221576258629036443419688526157056597683658762868084933846554951885237135264972774760787734308321167088958013598051516776501875121241985239070518320308130425515642625749485782515914447549271622974227439133198113770412876530274433589945188407687533832948186744157359875695179895250815872535396761660374869822372758052990127098406258026581899908122731646243343271028684077433649653141886120950617216797201348164134410553173058719801217558230349436840960876376228530471706399368756253762765234715393108459150582373743233728503029787904348259855217194122077953915969915098628089860715335852471354467460166942141373247326882078330779265068029386241663121794412734183738637132989078358345452683102896665247003877385052887971256341964491637142127310930118727944566426261936213934156401783689460592808999599662421406996879653338895327779254453754036229673340993509401697436480124910434463799865362091761382415463034138791926954087696840819068487218781692340282432782033663659466696489849373959175704201092287357792370821357123042548240591413881339550048642717645696685507818080857751211278964905384375276387906948269144039214920690941688647375740361752412749741022321178990567113236754543450245447433925969871798126461717521323894302503456440663458617515274887388654982588986068829540861095866483819653688678670985642158531464758612996090528590194701331982982285513883515218167933838424171694908439219242883511950498773615160598277627474237851620011666914898150936984510789213572676734426137726096054377160897925503794693747903022344571197174869488117047094134946287601503418038948339257575783641423009218855595995577089461638596473496319324285075679030614530584121588523761396501495432369341136754978475569847114607435234978921778243854862126641185787860981758416980985708634979950017066486942051859784131766717993886725454953637122796484280858184750020418786334451539143586323773380903142733192792911865853875163024863657158064082175040622611129978249379321841431078730411491509710364917658638132021496858759868936959889440728137825761635963086410496002860982071386826296665517882668689734977230368806078730034840651494004085030807380392058347233704677054906375014411781813448663755592304826729523462476893439843752856528016437905069579614392675050119887495087872646340783699564029036256988586616270407816412544459475938340836033455529951270284189638539314151537030033643981951149801795747431509622514359230535267860931940545983315917021061999479936541335772581307594631527415062817171646865138363882882703580571070284174234699895192937544530597219795879552851392329574887472468253567822068635595947933683204993353137427797928340165730748426797866342194692454071156057764224053200187778320536736745235878392153886655083389397988774136433598094049293498005583263055368180784751001137721495399966196501341569831629619766075852666131410373841594408992162805173528691985524657414541858449284554696963634540716181131731800662220289192376828223786777798443900362270475374592463562632175009921687230216565945550477330102646132947405453671353628471526542779012410274225846713223836543432642447602198327682687593243627676780277795824063736351463697496652984808701199481513643513489965171703938545848116685694858119214752149984562409645770022735486211196435117580506183754889310720923607008531428251677397343463248228831766892752986336240987840993681839950458415504596869359913696864249161827774388318886239066903717724099711812353002910342259057525946877378925887350288178590257346420438587169062284706975242935423410845103763295783062727343180822164065989151587228910992825929966021176464607185570525136974941733604488984968960451855665417550255300157468284983488027730851894693324664646044438271343866503636443120783881581633594523623420761679390124548119073895033363665671374990163742136883729787646637531339012999477653260817362219551490761700592727904247972060084046177379684493949447067903817308159185410738400399349755929954329540082163757638648083821899009689843670347646476677659747879865948511302092974357971644562805348280447660202193187075126581176272751157348562416591788540888428653986580054760066280047068775026754206210325031871065605109314488541087517297186328704419391568275152196708801382936339375136171646541992897366051394612236204287342922790029093525943475030859333737605316578104776827184869405870376461971844471241761588869171318142550988936839370063719411909057238225651655278675500499564154228721107187530870363097590699229559721627289020718122675602732470544221144029214229086116215557243056242721474175076160302805187934954553626916353866430153033740395682983383261930524920217414823837526922651892730852777558002375606206053238031240535621156666698694132529364825161085036590657768671678626526619597221837626257577932792496180764423428613728344915125210487543696802291220330563150575773400780969329095438290783783551650286566855739810071450345260921023018276569756122016682461852339839268491126757578558391370500376905710073411304036971858314315802833842830948066945979185277050496827257486225823337387119230739667035638323840349843828416296229847003750941733997263883736829619519509678051813747049865865335333213377989388817194239000282256937851902984626719392307807619575686464675508276015991119331573386297974674630057367817160880972990209504908491862176990167838395012771668638155887371993359175429843167903281558849448888519467486096527455445869968817804822290917732073490165558896949208014730614984261808359275980309120643511722944616906152388610431067197581475975382952633050392340451969897396558325900262563968907149882090006785741079700991950241561800909458222701062276933171185928415988256102894410384739626404502266612979790230613305832772263075487050950524278136607781096247780892129241520003173404927719825784592256408963581329955254176308121742761191522165634025677156077502533847510033546111143773324397725015249904515234311074423420301983412138467929312754063961808530115627292835072692895054176865532898127838524476578149906264769458521268914126810387888427583361922321663561320651758347467456390214017302403937174456248521058246595726496242777922811155397185747558603747811592557914253483198545453280367524023119203808786578558258743904619458425373235999530646942159375646059604353550702464029854909158802204806211927107726101224766645661793056170966191563160907492269193518135385525147304038213273814051377038203755786341555686436838489088268113471438050123284862759131019578032308408123146716762124913976941090885109284567065086996804559207970971676082397053081698536769920436122688199758474065460193582942915840949075957017529837784589265803817408653876786077893013044066547172239311780670324135269769313418203306012868065670602351945993604384992769506673838112670901575641190555447173334563537634983814728988721051083264975786559755905903622489599263123855512886291619357423810116516711870246803471733087186629700317698805287592563162724639549048261375714666522197317376499251934805977280804499308476208167228904128472010666340933596293568495879290989251630527267009600801457106531256944047881228562961380690541863756369520336413867448148529910403700608878495211601526441779547597456972416372283384694616884732193900306270834617417872674396782639358872646646462444683487160447867797509753238641172654494747741057389766049071913799874356528779871448713147854184306706383902426448509509205878076377892506786239657066535745265579623851708971963166333682963950757461747252486362905345364215068691735444160560402631387829378223041132616592762853719299216597852458113399950739825705752657919247319789144217954750174842127509359979825020933574954708309862983343583363102027301242491923876844567023627419107938422405054502086855799980354686779956688229764087507903229297123742145417903174877134230157023622010710414651960186527725438537789719101524343213546722223069438910897033066372022255869017954647319967629697119145924621175449982336398594475919864055152992727935174097581824168047507379995593608567021740498626787805938007231633714642212464413448061802398664852135582856718052307391054461485685995933721887100354715414101363061084552227076364372070855758387263184291011534778599035811647428602460335507256780748219587717155635842321490415909558382384425153132625352249866888384484554725973346515515801174673942471466555660033024180046153071057818039285531084040808319408359401735683253043288706760426739603218892198417363904361500397250706968276059914211152567280024196352865585537760080933677817287607078985595669546141906316533492173235969330976291843523476579971842800732440759464460656207135026610602178316521366196925642096713353904212418699707134317243994072637457936088897607672497099453392763199389392177748289877260659025070114383780814851570312396767010064778405871004570664845355366983487513259925202795148004894361572242017995749879144657264223728005942882297779100491876918534579248301288905152328828599772957720319613436344082391005780838497860509495776727197583774377808389206894839998817450674685056719448724648791862657947569838138976027683520817291411436469527735458436963715878517322004843993610835629862597800359247484762292237903634854530340538849248195744250001806262891923814863082496425824231786017958249263239870214927812125665724678379503119910446081818108857263784540557779852681573488744892481581373081957370663690981943185904241397073315222001436559733329657125667918280708167503116542628251101375764761269332504586951551958337112759379928802203289127621603691028652955218266632383937128585005158813876232427838879110420595684035166641440229100293333051106721956124021490395413359798349372481728767560439089760684761147202425473334210893967497410322965085960256094533253924916216977239360681525820227073929139374807990013880955041723022804058523871606178835053310411435961053625513169378588738961621546278779161950298478043216724146150999487577203756220718682477041239184585135046601220837248142750984856673234532663571280232005731105191795053933425237584489195400896213938012205284587550297241811610266725212642293417122857310638692825278426221132172781537980139404852081562771116241515279277389902126274257663412878619746151473200728061026304063997138712475089321014023922818831965765840669443875695611862436155255880402417480293108181464806027367919848017115132079938802115396944024180519156536408188934971504633702808617800528737368364224409805025569535854051616298119467693014618093458426411169505808615432784746303612457844924781602494002122615085070319730139074069501495050094043366723840107954132726277721618725722950990363799334455412824420676284621164468051220026753155156281783371092001246706491074874647538333960870004537122380232715886960172276564981087763110216362505332588736271788367469618745673065094991064648682718709991874351876489430871388984683816637823058223505319018424329609365969900368523671644346849399164911459216856423130667416123587420331448944060585424160695695751118191352357041251145818645197514939465771203742342293520614706560329095280586005115529286194441582692746190621525449165487220241979491009203857797606591284960414383945629424413962628370167632389717543881062087260958527224507221419430019421455422195296653407714388853632523086349069610201146724597693348860933517702648228100364420823483396078458687719669711213488451848378240770748231550715848796892789641446112435916547164813497515252418794601637635794212555077541743136311638036516366884692673335772774166945654585836654114699220869564898718020175565203379704136747957100952749979765893843264244799858005990719677830182262288888318592290540343957086407074306217974075600614170752343369924172511915994015669372518848649228679961082920192792408889050829743597669841767116113417374884406867712255302604137536292361499548070729870865669332267848556719677584757718195086403357326107036044728924465445033248598542712395132811838031761745577133778059338241679248174847511372315012420605247325927347591803076442423395856251605525229246550850898302056130942985785436983277341049197014760059747083469836514457918955117537389859215020153497798849925785260010343406756541325021860154986349588021494300950990606718493291135451001036691864171019322740758193840919207176680761794110320611870400974207865983706686579822855912897959556876656176452299157876425399163409752971753838888646442786129503921414897687013133697761037455309242095113306836454584093582030636525293517058246679955803649317418651933289940528625507993529794857109214485628231417968088878571693902121292468141050763100699921825822275311070315402934019285671345625963380447038534298658360327038613947909788681721602867470635043073410328152615697381235769900093097396220997338390715805162786461000064938018357183245990855136027027086425981458401043752853037742699251896760559674989297795436299402356484946094619688209252191727854457295696623060815760608957924937621312817244970661326837778215483199992809952336310058556057990207971068441786863468152235021949938598601076965136853111755041137791345949338942482001346876232327866451760152011488383851245166505817537812827833013737211730613118814117633909940254058787913586952766960133821590924261250263829901962990259613041545964794857799206540155661178115544155210231602989258575971912762740076051965927235818871634503334327142856130991193278553568839639291444983231571735388015285478755378465757640388084847835722633234285448849743604211080837942751100512095360399492650469199079975877745708058587844280610379312647074372606837609299089747160771325744343380402798301346275918391400340356015441120231738904681275464174803815846272959324560468307238672951562317486281219358449154593781601493040032777119341864851758526521904145726673601166364735429036029065866381790166586571328011938998301949693269657322714495187090980886022397097042925427689268651021261198359530396648060515839162012248651485732660816884382423864497897603162788935649999259372743919810259015545367897482375999356341869652552151694693394336035725955717847799600386955555592245713603190007270233872407844548055540519318438137104445356146416439914142142622757515271168997074661054533051367741094371823783086304777245326966104383800523771789598204399841578453939697712120397429106714032291179651786363658174876584154592114001174235653571836741936992014023681244856707262581868871716203582309372675196277513791860028508775108612976770791835463029279793163251417001912813190979215976459512466388894942953304572923098705945799663944059595375356403194154144880311884712600147121674799382532093275642889448087278722094281463012463834897101296078496212286620575521713903670920612559001545002713442554123254477760951533674501845710025273212146521412320216594207488425151041508518429433602822945782272411439371468434493993574472681254576739685700583571226050537539368098284829455134720981623070584414472147019643066903943324462840489180174583807599566439429901085217999013129824965251781142370117294658930246261692305850747692328561858420456020118264041785054866012185199910190707788537707734405035355989890952594821273069158539632966524061554796539697378558689494789244254336013337814779998899653482066073041986907453887914839983959125764601879331743138197677601186131330202316658910086329903614408286175019008474084577510575608819293066405606281282109483957700342769765530307116830250978198086972341995568798128404058415113249597836063898872081204983665701431011907804678686586723528645805620851855217734644792782534995117257086516040403218180422225934031132005147472698206250861433113851761334398389002902652322924796695673837183867993262274894633977371057692899958938812340847217275288554098365690446542549230624369072325814761428081826938439557849048666343712532369035352194033615407840271042288378711355340037398500300372428173531270711157684646169822005789764423291210058599720796948711415536469792415865072459275787710209429316766422877913498903301312660934338976968907369088899775227061208809456528012180365265664420161002333811667211516990893739109140472673148171846536926547011952907592509681329348956981624429463793302461906699655157152876945784971024364449232829495918018580072321951108750202491250502952067752799057586811583371234333712599603227388604870013835337365932642242190740225181131622520130758752053081805975902999777098327887852747272904258972091763809242131708860425174769715533580786226296931106417649695324283863780429904622831492130555019534613067066192875350378599035193248671393754272527813637704690171010608241818225534712728451856664433828402018329065108616380172293545993343022242505306337948810318497717180852679320099321199234993454403365359238534435241149990574355268461448725832014123891180015781072252223370556507732716630719303061786798820901357593080083616757361895368838626258450469601196207973411461609812319543898660678154241762256026818004444587172620135571582165337605863650087311523004818533172559038939772230680270961458879513467630027641697636447845431567041801314170019085274651819473020917132600031277921001304319297083240690166682898172821226369531096052549988275904081949752297036905722176826118019039277050157226711846420148773689720358851916899839139777654200248055135446440757382006659652028420547659795597755536548009165606743469110259242954784288719801354353546235930775050815257790223101458580159921407192177425098851732970037820319810441032445596272570919409625519931560868994455788734289538546835785065988812606781913268664000958918551034653905841946334978998772831731867903575588367051366064101595560521624540374224415133185043225642435492436154855971096391206441925597605315365395544857335349420448894186980353528896567966723347124045995761571130747058731745702170111180320881416173764212382250214997333608779809441035125915683303384158568168929428305176495570587131502516423398163533357251265387231922253671898512996074621243208144520042098631748681995586314139083734127201990844525515597340114968436170266495251556002107325921543586249723788380713175251214990699102256706337771095195893993852807541389369067402714239445922157147267036241877712404324378115139344745840356738273188127078799760685340903844868634904220508736552732178346912951098878278274962605475667012466028742378744050534464321712876573807949007969122437937935873709045758860062978522943308749942175284926792902354137954005257532691477199992312856228162546781676622185922486220649900432548202901823288053234735307299603212575249090114992290929607463000870733256511038333094156343111833378776332004794812508421661120741534242271772567529447908862557145711245573154259699475619454662522686880097793243896697922823074738574886828376732789487830861457350466369328290953768581148349762263705067445768516449392994757202575882391594543456890087160918417958236418327588388774635099784956510675756189295340331230407565030755813928730834391244798389587479239790607301301549287598265058378326304456218704414981326341733884908912921470065218382445262376274287760559123180390822003467084338473142332686460821523522218396419833465204778377427429870803989802196429283312217922762081227329048410960672898021251335327278725786612712977492065879038162308491251424305387571743647829187426403346914841372764632025628725667646560115894302572423972252100777703511050581194152182415250067858836183296241544536380157119335635881798638468808031142090415663362935126484922148195733643788850114698295259980840317148604796476239118223255704654362841673850285893947370753174449867075298307489471561128700925373144487828222107976219401509340263355293907782124396844257150819751320664007499348609129414909275735120959266736077487008424204497711637610092723007965828031449706278865833789214851562372657808399117111581986128554065592208846644023127598079897966594452974875541565141659117189340755805726138093837072535220641251517502412001924224227673130059374077146182171260312300218745293919710846560951378400289025437519216560532564300406816809574977966668946029796242043428381045667336847875663518370756414055779370431745769390676395311244636982060914851621346265747850115345298939418666236110937806116026505796611171984311312196670338021852893361126624715700903158509960359330643411509587176735898471068220705787646976478751066756928049521016590040688175998423046381152146843433814166189955118375650740080374008925620555429781062211534856738523586248092610808390306008443470296833390762211453619257314429253901355300830524593073520116065051567659457754572876897545424704140573815265049226588701763666053210523409913283779235894930266344259521331398190072642181047252486852457178726350987248440954804466772950484669430824431912321738159478899669419266127434366261293849163259142446789226324789603117885532425074414593176794029129286270874298610464898589476427827401009439669491984372253323543796209054576434516513634783567310877254743324938259195246704618597142357978466699454289064644904707154488425396701506924386893977781323173470407132742578836562724939154371045186180812267364311603843651121304482312650858187315751422175248143066546167376793735630635384082441558998975731911172906368570051335786543022213332930721699777189655562966759022909457415037083681017887532560211215351224333651460507682021898224307300159539987171418502031395381023621990900904739330231458892477992017240767803803529181275425769555408259814040941422374760494221401029707286332507075502887298824426509217998630657332601927086559914111938442195851994920469106075073445341360096481481256197622535337729809698645322996852424285120217757323394302303691939554538411589953610192215783621441935718104110013844413298071355530660341911847722140792743782244102844462142770755556630596176102939086678670929833816978478271590519083192171266113088331496182034886928441535021936499285678862288480353781484974119027436380652690391141501238342651196030821014548905223166445567135872312010573914390923122427642091426805871828731762394482692472878385928581454713931280118499796104593747366020247570263347468212811387400530299591742442670122322532722246077021875602048830570630429353791837975031471553582837667962689478887883069918888985959908934126977899109486336395819857480871224534786180504343458395181853806866530681326803276082555564926021612821771690526169781960881883229453282389106585059328923672716904785898305299091389333018992140414382557308878270425422632170914619813047055961263587610702711215876905496839644661416273187535683468130141205452598260332300553028615025337776893107288645741340107275038797801105664126418912138349773004472501940923135944744224383986728142792603852067300174810317994884630771413127078380052320318778885594603705520577441157297985392225646359261869231166753632025321673354933436439944832742508170920785138659975835990383956077957606169067710909500306092842347077553630052713562742460399796832401901130118730055991346056715318619925821638558102525498572678893522528047981813121234823431942422990841158346026361080329258352817868384660542442334259423339425685238935599373721546986038393639954336460735502527873402223839800957618396650005025885678745287891729832344626806765160594913395777928875131307561505144445512942548892641722841414564723399592633056500806163947195675501723665703900597873140454904513490650017999080234628007764116078348442790017830282773817832911797772536838161800669544436134627460096824216014298594118445798538572061415070237243251423660607948567439889128315337734823972908234618641901787788695921273524003179487670368000946657348267815247891623550057363600508191407880369895601881601481424802522051855952833375031564703352371941480499393313971404517758432876666406964747893756782862837305597540444447296044412567922728609422081637158860896207959631779084818818617629281319394150509009065738947125108365276429463562596456160279368831476010230259938324267258407285586289811708676967637552022510200749746168106149076616105355920812331332222502408770669946640079559615276936772400897258656690079312647401942261312089296426495762352947523227778902405154254108091804595020145157483835573341640993859463129792016554943044360315755402259265379315339283576760673337146398973003309047218469685726860815424674101367728557186522201659956208065331792081391048404023602466880619274587489799209647988854652024603610674449207103988676233596947671709889051957895455498571488271596357743560105855154528965563947895906336327830674521871012607617716655902158675445097895253019541730510627693491574569472332434713668727452343638928266725322912337943529663279326708513081964811793701714273836635546653662104257701327830209086468014109287218542773997134799431369369926715736479005498670025846078919521601684537992635370548863415814050162033925716011991134604081288910088720134781716850048104083617796032521752503853736818498201391241547274916186957150450307664026091712630824009617437076153260586092627599708792869317837106217185222429819809021303702290592103183925203458069312153792689023495497920463298369956767729840039574368949071276015191853836685389197748650264568748759536774391544945540620052642189165202863012176210340004160199305071707623731903909865777807149180093603616227786175241010717272125304332677770813573450727831283598014707312646457737061940228636616721098962430900351211711599767149104787816718432978293824226792990711396729278235702400839086937950206238266597748025977825073507158513903483828546210300546763504153783307257039242409333944004926749732331897561958572626724710819680078001473069708237245347216004330329305931436047139326648685994051995057133700878281615732227155700927223411890553137588482081091539114818850197819975224815993412481055231184077190032793607628188338852817948987128406356749308326566054657730121170341266388222774072885751717080128976124701022078260192262863622012706468894518752257739196156049446576739582351570697787249420145806913552977915025962962478939983840815896864376295566829653087234289497080189635580102556156275236309525591327387200731071417035231617856226626526870025557013108582144387570608339438791914140860805323403448485261210449316959202021037128243306471569238863460251649023732886387084325026422161434358778425111491211423181392093016035654738123411464939307255259851040052882313764305023106863768075100955677175536177428677203828869218469440686022327762357843401859727442414542263909463903372338153473963064621113828110044863065925103539491273295247657636111290679070557018898046322664621999260054277149360230003187533569705998513012754291155381197201106298371830259761466674025349263557052197152674533149912962523721054394677139104201657164320666599919685988997470539626730686030195277043113062748082633078231934097987107041665186576871633159285652298149284432618790697636522757822757694119482738831018676690355247594938979887738855948548449522109566527791658206304903169454907600105583948376842025528990828265357250896098436768547120684816406724443725979887486420283634367114873148216446060121146587385240719611856849419357350284696585483124696766043909228016244715414620099753469085173183532843568157507852282067923941583322817728369000803088742570544106716679998644662903485145037352962101702191749850993196875842376949606400429117879386700436284842883685268978331570819398477019850292525322541104641857129825174725547785886920957526797261538211224255920969587240942564847430121057607692176066203174842214237818133818409840956842289624481784901031150638444473071534860909924655986340853112226770861946972260423172420326806557760598355841215809729190754883883494958770019595611035406145880098695740955912177380682625463385671641688557961328588020283649377174770637751345766284906412280439196036353526484273627719605537287080802516832313231923765441191655752261285041649317195422185692189185379570003526509808860283949132248321071634446248177086153474109780312727126033736334776208218861415658790616429955346333619539887365777985326266187008253654636287691500837984135032695673123806275836314761779361237372667005248125127709948721904723873238109050602680465868343870390723048541245588382170738649495035870836805551625325105338195911497532822803855517693238874300703113095147185642869356989441146016022929091638263753728446230246417327755548937770466258164248930631259050445604510290063041223351658061094165656904280213302732895475054018224430493724597918028021358306489963292104633219684638324510218669968133975988830112622913519596775204712028462814007287657056160739374620741264578097718907477582101900909211341441059530800312521534287657025247794919775721266030078858577415592706876204765199966046964137209152110482991482833845409759385883301634012418941371440529444993496057494448518277417967615147332006388673227979909362597590192997029305581050580729972536927398521583494350793221510786116893691244909254266950690319680046279741228714239298551377780995346454781977449492135425496578166430103917354288903457541469632086196205152177180553328043357833986651186878905032979781019661863258634404533596686961432516846310288973814631283776173622253256495339104685143342621230343717332643701562423353383893693537141738170153318613842464877368120496535074292007558452514156316108575538132425762077937432969165692536191778945291575029165545694076344823331560509684401639765848255916681250352324037462498393981815116873146275930266469367378029077727951476288459819618157626574516956037042587648893890560803267009564510783460069831098547785794490042800625938030097255704228121826330598008104069442827905630298191307602597913405508940225102720256220840679859510960783673212112915220782324892656186093016938355284871235369708553175194985959220402844614856254891658261770712751506048358855451866930561300140593467424390436690615299633138225249905739339550140123759829619456749537028246328212271199122962846630207865799409085589397265846936068977418650170163342512565726701324241990339897132425268295369228737303227443488234768144965731244808541993063352757372327060915270739877192171962404948097963764314893782229832971472943484011086609135406077612066122929087084922500763357065594966565454498121600446145829952878523511102911575033430805715869299204255564143521787016037480140563032781930487853201159380953650292869560797479022696394937716622549154906981874497979667642532579018338865248076687466804409443563604194350422684518814747088197127278153429477529380384493624280119227871639002910626542979761188906799697170232422401850381842399764517084137348579247015693935689951992002767623298680311929827491883071276050757097025995259097252934452153534294908688146592404389032742859892020538567455702018261250978833128450618685833859442323531891963185728357057480267596863091772297670958462035049700174364243158238412858975121973678570320944854847473384030045954740425208706526394974339008698669118194046254704368080635129265110448335278394298766619874676956465002157010343508622385707376125998425811564727586041063379886602940050342824584648566169062493550778826617228424488800256174015568513946058810178313147958975558010438123653629663773873686882643026933803310602702890893793300201546838175698550964328322060956772078283661077540508628240060329569705746730576570380896986998844177263711476429376213715930947881836728211212050478426519764344004835613461595276340431110291342117103059270070724262349369378921112680830565966401256684459573503875486649176942672070243039099495227496923266265558260027851327818657430951678941341164471726456608529496445399219174611072352378320563946198984495450803897470847814919124328774154815810066542435310205345286546777535671595490845078714841897520081938535057395022692286846920900263778300713904968968303104786994899827479597888447082424441064088893968491921478506503789858635215885651370626454622437727626603989201541729828816842258583186283174843512111743464785210079549746781155101733263903543154825736954704167287478652076978687342436807794666841379206349787894529664766225944652025174148116488544943116068757171186928025168950316435856621396878869643037079774856568648887311562501873097265201835572628847839973282684819855002602525402242809832143843308323447829347230413859603689498498933399604568302326908566068315535815717385281493604758738860321856618974051753719644768090454288492725799797683383794745050820706420253962081631625518107434800146584718540104239528209457354897601714169789879996949985040664825799937115254327265602543822959347298825391053375152527325522660205003474348900893226498528524508177193481237002588323084625322474682622647809030236112274471792958753730580465021588258839623661680200788830958820014684771160283593433609113490861138492373476058559389103062172052252357257782837621873250433066362348543071006934713789715682931550933547722025566880497401771743119341729388142916962044383975585170034082986655715535982186255469459038908218145131261673920241077420603612829065900687154046614872530641570460369047106931548918316174040051161539210765487606869542018206651058600088967575677388527179444878403235362934846994228857331426093739314990371001444967583608653448262394832526715554864606140123995293350269115158281470933186789494805981020840536676584872941354757059778874760096104822517439491356028186249323326743926992044527530304646508287511714947351053250530904479080944235794630879593591127597862851764470910011771936569798452285170960791535386287865641397096649265921873822567011551557383420829686458930495364762263839649262111123999887463719195970466538338395259273012832761609632488813769540577104425480216174102789495717433388121910175749719267778897384279187937899753442377724687607062224710447886545673605856833432392485882929565277223392479340672295915087146711648160626188294119782600780711282658347064001418570446899015710567544291878782661463342775445315077729191733282647985556637526600446748836114055705717818368881149643174151082493159872222026838322447982007212726600538725962330310354442285255331030631084291050567614062790445989528089921085534874044936673007709105543119939659694021101987634907172265389146680315932382702923675409542031255639457975848934718369285570251653911055397828128099652773855206462095958861973895107429494197649813468089628720250401709118194630244563425543497868215384030493723324916414644339222251332045263440724933324368350225463098780179512623387231156419282021792954596718958388188539544108188694411100479752892358947256517204048056614926577326182294285991013584177946932078005484376204566132622659162420943524305349221563390523549993858024408377184365417913931473660734657385266059753633799169303831430464856344129185599940204752974337991794143843938833901390439086312822910059548883893126913307963837777867456822712561600077927566901402839067010818802275423101576632555929977894213795688614165667082789778777393832400400970172996345059537949272202132335355032264356728137692289943871376215421556259636346890415927883189467738583664986424255351421072939715892085066391845008873257082360780466610153233329921106425010775041334039293238533529669571793700808248322924824847367374177190455659556823039827489025276846503849857948063112077198937914774845869834919378285902125687654317736017938192580903176291331121487914644941231563212534400334574876049793917255469458767611678074070928763125128541005642175630656538707274235211590048656661790465464289216762919576796386189165139393773607986933971131826179859346304843292938184154913978703158876868867825598165909645215304987430896897163613513213192907790566043894966893962045325195934559661381655919703298192402376625529666741935980667980290513067792237215988488459241027721364318439576774566825176011082099227230822678400300906465488995278585010955415707382953899869141872692827226022237685690250418935762293454902227168594936098561652302561107700114548520408674929153856496687011123246283280795457784054415207966677571712978800167893844419263714281000436309039036564290626557441150617786013234541343084245175887952943989210532104238435441079735343909409654844132951638725822965583681310076154186563071502472423954326670056451325151229162301739486618340135197133754915609826657159593840384471107249310974657585556765439691106367513979431174617756957538517573973270396918554869599364231574952542008938837155587438355182488273017523220271692549212367172551290160888370965813594771737856353209720836525754971923772114461821067382030089235835764003132093585177966386807400607272249514944019213850483153873353279684065454293471156978065639755104357650847344852292034188541979701447108725736741902835435955784338485240174321793998070862231797034616532892619187275843783423564984784260801301550371117276082471913420180008716947407524742650759734640943820712986319657225979218406083613515157995165993040196054752614181774286231092149860395593931360280464238959611448379684594238197103311962983262202118256257225026436540945666053674163691845155701656631066079350291491744940862109249449996015643024858586632541903642834783887295486970473831298245347939300866866809998552353331628692263241578496532633715906526046736638252863739236066218787683633095064818643764309622826397798824538694748360777927081536265503360748446551263819857080742976192904316089656074248930929903307916936271777236377858399373796001658201576799323060148379946298066944491253851274300188224622329284719954740008135282590690452209452588153652688314520212095707003614755732660725118302817071590302730813637180684808124377051195666978914824695984320213041718925686936866081839101792687022448059747949873139988564803485505519642408647853221737564566542039543616760190415188933549961434282189516905261824002845525756058133033414132925389181071449654567683394901653149365650567612222707407997878152645895010651586429009036115774208472623864808720065648990177012905306152487397753538923396925613065277514745736450624023035343674231760608793864538465549984998177470801728294541391503105078337771591252186797835821215980286568479476344634899035814596386119947487249975790562251639719797167569673164173727506821349737568812487270033914944937532864458439075432293055636549014183943007015309913187588840819236651279491243578641449684638790382059801838576552047557119851130734739969998859764308088064990730153441242404456146476660450007873373998313455242689049306628844080527199179907238876934275257942554471556344854575619920844217723182775142874028494356210406054457238865483073962966002235282149800300088987508990846476648931197795090345622448019294422047663100303019358193154946351076925568459345575643783931722269646226156253646676250248915623502303946090509505718759467179226603025738875497483712428994499211516343132503264688808249412872084443352096322529214834269364044118283831407540795969029546962984211318854461040957607410496731001323443861239607528461692874594500564579028863111541578576176189939531354054234679608010688723915123392572361695027802372303843687716092735659771820631526398712482330781982787269542255336229133509467582533644708741702818577058264408861106700582296861394220136400116691866854161506433219509306513985910233111319999185493240486461344440460893800428208343640828496556944423715103981520632274711156596390562689532772313552091609467083858618622342850563072066890428801407570643522384319431150576503470301525985653941852109687850509117864436891078480224339611445352848247022595718258983418159412123422694960108742883512288245397369477462957965360948512718138454139623723359223872393611060438574229357700858075546188295143089798544863674816359257255393069287881718263178196607517568262740951700242721086422615866847146253165855072706580411330300075264333814439068254898460791304347225163899627220845299239398181998447406504798362452513725949012251417293203469988458805440351143207166183634014249617855878680399665865951113510225849758102436795219736778930903069009659109798516419089721697384053225344531593726464230900869515707081152641617533105465189552017191431050320709697128593894411581782135826868659125097682790078607629130915488678768554439263933052650574544667449385393973599944540610809660718607396084238143087454859616752884804422694993341592369833795178540076823189974546044080024891857331794427505837217587686735783830530923984221487164907634997816928208463883076930830649217306056649890548848741647877998898402455195710696268555301448183289517880027133373946228809675772560617129408074903193675635054026267727510025452124215544894223436190969079931334110507430251670587372049107488195091064176134584949681650422513247357341823571837524510669977587448730109177593228018159762768627382924043231457572368021047157376162886640238408865297181598388449958066542970895096092939757664092225779121840965764128458591644095224897744314261776725761869263810775241079268464071432430876733753918743359022368108543110048487889762621599762052096684269508679232779838850522287502211654973946430884898254116602740924407065712851356825980842785083957779566020409027553179045114013383760850177008889977174551457297086554315506702357354478948141883907700549784498867488599398133860213860400438485329860271709052697045653934280853889562630349329287528016986875410490706893735594019664665983770149753505584148805286252362709614565375849083117107595914874928625513090244308077279389396950717389174596786435520660461575825407089006130262806936920843428624959423750142913860352677831303725045815291927107739152579302990270384031326388919661006042673324890806533338627164649304015209007391519680732863741322076311091316255590469862209033056169934146151785345482485366381435293927188814214198261010318881143091782454000757681994426972380071404227048407634258885739258415781342989974792822649443089484918443152328203841160790705186988977613327783969415857117627473649102104373573918116244801395540235305836069342089997905026419408049932348412857039790999279176709379441613840956233009740173872885137276442182329069759755862874513283688474710076787997760630877624010956108191230431337737884822475009199823405621037095688157220151508212906142037570046851513870340690607196897364637493371166595306501147501871423932284859530979461537431673772795921456169044097841616084820781437811322189156831439427977883167605632387682252760362251091799062368868925311597647253012435321596497045849095652418574012237006025779176581336880064916786392460356653679698105421989146944715648288779272848463756891395751378371620498895744158529726944248009283417189363229934945865403718065003357256997121533098316584194267940271113190227300244659614951992226786784035600468370325738934406693082505007575973141235247455621095511587715393143573467844080180353083708778063396765876873974856625707762707164411139174600859310988357028593808441909612243456447032549420126761997315673819518450942102349859051391313315099624933128258548330606023489571089832201129205295681395252262281522390109624459061795707466299715223182367282183900693792954147680062807807732637366385411027938391354556412653951304704138610408690844353370636574304149642568853802878549936341603469469772648579618572214572196224425918712738665550825160772029416845048157482271101372499713170519048421227113253542496653455767046957563887278520421305334783886783974810926471302949395208438946511529045623437668537966635285134313906479850145863401564072086734894658694682447852446465680129759583100686364082139283556054321623955574601446661343637583153580363238563834144393932475713948490538121057877530518739252138871650649592834108539749104127326944455888304097529014870834071349983887715758597964461690350670429214252285973023317418383399192740115880171200407624836509494467824843786297456257537825785908168847841273910571672819792783956977485242548007669061962092845294154052133575095263230422665530795671583647594093217458768935016494679905161026438943252571029059264047073967861698718608346280859011439967878665867358422958654632992488741280732476788847376378834177753396482116758039362090633483856674270714517366373118725675076641682339667524960116080789757038379923902294722801084899789564804264147673380751228571313949188859257749620079412868494366122094871953668100664709112068553411168820047104420563807233125874342647956055501044087371103865027611641004239591742384370132791754315238205854155474939166656255863115519414984323939990407386329570655142215725066402682326899406163994816507503027550527502400033271288839275974427646500819099757251443369008452586263144668478599441677024050335346851649098941280019248852702009525614583383389756631338170431442077178120080766784804499798332235393931550809756348520006896279508191472076176480913984361290401765843754862042259926097408266786470016123922500382029522960742372295003685363785028982780844517133484500793565917685727958589041451526546731508445242430407836557150765502557865593670649636678844768331983728271211025360613287940677409590220874493369602169538686222470766685337963365264710351483897201972014291897365950320833202227690611807508838563842790147506523767174906494014119338507721177584910419315140226299038182023894290625146611136705742993321173601136674541592997780823294192437731979941124652281461166431680048141882578046930682314478067071958228794642170824677033862679857407853525779697782741207923469365258674161748516301699737960349887745063197078168968956740191162999380245257502435290543663251072423128253323855285985251412382215509953043319157322304553144252306667046022541086786855951372915027790181646580669632304872559116736666788623889959396014288128119445988706589004179823439127639341680818020285765765363021277344411087850640835264072575568182767540889233456882083194986004016316013100297334762649486218116656714892582607935663979668482612265691378168724109112784571060046551832913192287091048376739139468958735785160588248743584221213008631178469114447030344296812771899967261298968175516498201409078726212651711901740712386345205782407437267898490477758794450358904845545168025935306910867402360224738415165108604450549099426210209896916285115730945017141876824316768654559946080077535992302218324226769561735499997324779863813463385643757289946425357761151328429401930996063568347509423459669574958186833065188403288011387697325016026475640626706858050260617132608097436566029099891383536378035376528470827054043298253249828038085407316700320829501629336386599451352629426206392392541318281793548843955676003902634680328933118356889827121861000275402123756543439774027533367662593926093184828684163758273838773053549759206928236719189387931501641255329274740568870481982361554664254756379406801851848492955102121122098484646202700054626784656348599495924054620480819698108751598356165652379921374700908189818087253447149735489838012131943624938949757094203086291991009254092948104960159230072988511032678621466940951063815702089824224212182545223767850376440962281534479119809708161004823138718133552100894864345040876902057013017645976201004742437376103837762383101485438718337179834474783435136111097842891385851106451478503653036592456903012754168790609580209459021503716626564476531794423142888677014993442318910973958798937291781754595303207817166668638142291932259876851039322879283008707041721027624007484107762793210072395898962837311432857393612647499564077446353466868999485329481865356660618232935545154241217683956438561743306112681827601494322104916640205777016356150245807744327947260502750131755461668305599044907159896575748988782898706662017334408842696489489400997856540570100999612592251273096163430479140584859287025136671602672540178303116396711569631253411609829847759113393995351874593351850168740323907082038624392735340056324124223752227683878671273400863846888834823845094589413952413661180523790712786452804110310671295635733639866527507861246253560724437267721400301753625463749983165138691029268807460874353894764128030230800693352817061108070217828524162878179099258821350102235218890313288676340898999712613023333904814983747831518808325759086211626219713206810772961941800257856513519066439457106025638580310513453569777718362477267781557794946687400727154561716354169967574047573720161902571251960495239874875592960458829472217361609487717053762783915868170353661236912075504985600447839782647051439057119599088302592497912320756818025992683507384388145338602557862678938770878133064823425592800549532288087400434090569402913843046524454677005176946571574063133532088164259706513156657707203942330566898982856788912415267570308630397971850516984734314174163556134234963654560385921907530536447271566498777934783881667188677594638649615534662920151610762967154684100674883406456980513232114198108413064351753652612777049088573481893924387457920969528259188823549151879849934630206732289485447182984549797840397854156926577665470646378803170726945131688866207925169989957209590677940253887903054204557899668786240365289998727568891698217223324507999034601547902122720194183188494434554186638136851128723043194443933268390791559160039793717579827922648028643475738494461552840488032149771975698466824154811548994045145806561595340920112875125303084957394180052500245370037962285579420036460035021999363169760974108832484714258640708216721475200752799759375515001758552311824372864273605181895211350378394057322243095807478251337026487441783067366841862698349964974005734746655573467980191392928573416456092257727293133106973023420218119227934768308628411729902951368203498829067134935277120642914680846522567849749695861918280867290279952721800365060994879295217644161880374045179453457892727488951759691167146530354433420103165181680835722037645537581242386075328515089304689690748416042643619657601618344524496054149898277924355814080016077226665597154720050457362581714127888609947853769904056264523167127526193883403137337565223995837933019251815869326243034248409781697359425273022809517480163536323086037667672869105850557895179990228654974927883407088042822059594139710945837276216296468776960570248789328890367898388376108864436523589612638077696321635340154825362209063934650750333760768957029440900120728871539397316902975056050182513904553852326675821082096302260488935429540308317151355933554962248347055931245151005458830392727349658551098971046496217245116157621266116295858448307487448231538264513662739851966417548104806556734872753706349637962622499000592888975728906262843677569211289018595510509074484788068099879062545643334953782974941214387216769858250398320059454133177523768031995165068810001688624250278440923920374726123286557777508605543164679602882155523207414123288597171049338479039963301034448706366182239857504509899348670392672919987780607534049384721329370294653009520198823426510781190772051290787926343131546136559608731686143439059228813439404373906750409843508909927162999290951476526548010472896537603056248417795356611558170956106766955985224747008508190539460742663710028951847609638694011850083675487127922368297266564709783351879975847037629710437237397564067313146723558000300515399815015283030363355892161590321904524824582894920304549719529316552469931410615879975857158732660192347654256374632807284631977596432104482250165833289103709213440045355487891538107043023492116702496217492356110397719598250419540749030915376039331237721609391512461259483646945171355364303611249571302618806928254957874949926378320141582825122364745788149981526840243153368260875749159177181981746658950468478220922415802181307949424369951387033779448811823740405447080304247118944520762631281014845721357675494116232072578142659662539777672539373080111852573196149847669308178498829540392862471208721151701052259215903800947361619177106471056184202135918421359811095606647808874581885256727593921634625520243127685395877519036180431609502102587381932254612004892697660050784501084158785399350969197933564484994186492473380833390983088192247841322864258482218372082090529158816243026774391705026606036657645848401481882705687827803675740894297524492235379953076679800654924315426981815686974826869951799741081072258751259378989872864167183499006845604251716768455629425371719725169089904513763562512451565611534790684972178532643297176659382245746775310260938606375950621201671454257368112229358212707661796253733330268975787979069770770508845699305788722114490895717487785195989023607200809272278364636928624532144646089715524677558195550317905667816692081250192805897824538025502489009252801041627130832045518792712883035418296274895003354636714098719046283526998413823347319943580500477280631890680635823364279442092997638390636166502963036453501090433759511947220087315209142110933231583097290831465815166463182249685896314104307029961644390051637883335686964384071361346836326659084841280154821071982150471086308365808079203527009681370483986742970461502142371167951544252540439459142522976649040483761729685607090137107969662597821928157338468803098776861023003113834240428102599934272706449000152659204849182284591449223835700179404053606487318738830343039583679068082299250918335234656121664786500086398101874251296627839078169283106045089835668306243611094623403921430127655260636491389607828106472513769715305124247623784888284992040030584098885392114648184380063129151768166297810396483852137626373661853987802276106201262044682965827725723513656282927511025230561495354511205506946738015370778524928099332978198102363809927458322785471706124694900715290503518903874568162713105301889044162312255918842270320986224440582009788602000348949575820899275219974917460510417724304040110254512072077542812177425964750287563116456420008388945862853844486619869682247913698217918663370569782377534190083537076782392600716245617628974553266287100653828824596815428348553980060822975303992050505575645012591897532062945754090829781320071288266489913668918149281600827600621281537235591771149129093849590870660204272197819553019335237031682227546575320019966303529505608638877389733637478819504045927394136990001388273760567625179281150789173428790426481281422079657088616158076706051294908715146175826877711232377291284955791529092609692939669175856360424115894635552773342298191383551532212066463070818155738328577451047134038624021013798554306878573400998128285227216194738897833499072102035985231077977596260795873992387981988670454808762674581040022969069842623178434889513527787405288348969977754336220916404487610280569274794024678185292125614641020424219645653015051508915624431037801096128367611836354432810335058191894530380693101198154179844183575011655680334774500737462400573068128597288434413872972663883556309189956989671596352833668809879493743190597822552388674573591395294810562568989113224552779035788928841143769246620006884279770754354480253935872967951597243940908272664153048129134647026170391551758148520038688492612561526460779996655011150484311142564103331215488997955528179106832041295750759821020251416363476387223241449229917488617541692240363371270753222175106429378225632471306496097405800994903836264329139656723384022807727835611188672992454842049224044177840456033191729730349472333828192527667233568850002602212632728834840350138391506020507135456579706066178681284217028479214944496332295674885398103433964137966652820166174338789257842653071275682698858534460021554448387224457163513536818773329348129955764352352678779712243068397897792630238017419690872890317937771241738648696630221503229574339664334944041479043908923116131779159117263804318150606837782624040337444925312592397803254755978077056495772597217783043136732229666190865481696214761534617973434601991688945415727601216416840895026105921631189580127718055363118475948336834501312862105688416614017663270144831122439471885345398558848855160384263902113443509871565387206749536828108599047536883833538685595100101486518549641416563912220851103543732667191188591174999511757172453967259604132253461693785796414569630431484188089301143177987017531577922961732339504609443125009893322368346545324166895089641966450352682851996695819806448898397527533836155352683412103740388972193862886710835524496805531858208117934288679703161743189205094152161071699644341033126073620431683189014939485296234912159655021612629225657534953583000435135405494122268218099656283006556383700081525867853280702141322891605445491749127459680285808567482064618976303383071598433078440021250173097197181389981587440932368315097590429072787284323536045865370639129411062529071438853266610949488897761523788880182183554045447634015982309062996881797317847651741576958941072243247082037567235451178887914805619073056575412151228416981699176844974831647158007638016243112394522061548350806111008317984054582474341570031400031488350494331691089505136396317208266094246794522901757911174518794602767482626939203274166847110373152563979915828913815254734810212421947712141164517457299586070796158157018931823182236047708599948282480957610559409235472513812924283906590598317036638001328229338082254887080453690174923870606284947900198690425214335249357693033160992827970574676170384343978991421349282788690639182378539755657839260430956108700159362940637158206161160311499377602314294254330364815759031367068090479446922789928191918874590806433722475959771845214662110263599050905816342439830252291716895720200836878933919594907327978450992519671373203943086857279874565880849352947905532058836416185214094578954199563842250654518412785917366038643133381190741831163299540534112242538881659023684292644840622552518885461267845080748236850053570627837183668798823352890071131672774247672523183389533811083205602004501432992447849830642324199213790368475144211173360781063268394623525047595162170726950897093913260126796861718405891470373116719261198121909375703629571439535272494729247758667550475640462146266274679805762490040172103121247711342247114398438430786598230489649936384762700221447670177483272557824069754600269733327169915290623323975580712307454528359775956030540660664073266924916726800261971899682131080134886715308093182206111815785328175503647506026261714082019808801857913209594083658229201652938014001247148429109644977897585490210516936497148408121199627113547632555092893904922277801962854025470211420827608217701885729019622000193631388748232742647129954346023625264633135674323744820829861881539145973860701971460740029974177774651011756646526763234594303003559212162109060568147744978198339138828830961528332723251921697297094100225927205447060187367058897902549197909210062658679846473434278322455201750797924540045498454667645793441491124195310506295891754588792977175730501434586583614892481843296038281590487386509464533578916313583179905890927472139072244260822551373629137875716046962898025779523044721730014301122404186738850430150338671043616969484164045647434759640809091600639475145858407034809246335018945809097231717875365973960003775117019129358980956026393009448613519602463856664068274557883874062226783155737972858318961077849633559887087686535624048731119227205422865648706403551182366850317015477895199702834844676145360689909275896443150398146532821977871091166650025299598690926628645274010510815931504207305177464169231424917514476470487891318501677428394422128621878881299467547883220977739669994546867859946668315417896813775427284237183584881324017777346787192500655410627743513303835535094083445610926594304174988908645076332867287545665681171772307174557544557475108327646729569839594901110085538051958752652460405699706596097769780815039503190392449661386853950347803228641597887479842580836317155932678839292680948352390820566111175102501958095000010264935756996433403951461104540744409641801138212348133756387100867800011186018082046504321912708720215270969196229688976755917129036829030511213058596451139923362948218815867601714356021304411888561278114443657754784175240273203562639692578899552882978159358348425239020048143883412310640596185211947970824044867795757034724641404387810788199436175873480777003711842003313772513848105445109630396144584912213715413117398064962646889683922262519992427732363797647214053843874307381640343074781072460140625247437285422660040650348671033997391106711543487195322795343887420688387536321308402437853241420746096405062186684583776219791875344714676279956861531168987783400498049150568494040711008821943320135564063103986957303678814652634973633667348316066746557452391610641313504902686104057529294792589734901737557464934420356582974226373392571042978534234265923864573924089234596872208607577497053818877552101160180606092337609553300815218157720844708879406337650882083271120154403332092723371695585190431892293487414103035679455407272718324017669190930836669170827420560784921326973406306592181963628627731374075729711244102862532256158102187747694533541151089378342685152074843815700303287127126016874133092349170368809386279976320666876916601585565254675278748052828864765344067129606310587978263704531600784451976748593929034277664787391820472200741695880315363342748460681430510103949091207731690006549594510344510258298128309079687361357404888195177637324781635552639954829496685633376567505539126572172944063131741482214514851289615689162701596315325431128151809009772910745439435470644865829610070167054455834648554962038090684149153210746470656777980729481450105650795925634210706506829568081000438719518211279114554158035988260031142193897630831311411308802567051288914851624539178695291400124204057264503739205828279344217468477812925852820758077456058023357659759777425790862837508202411193684117041392589182578073473646843382196970747139114709233739568550503708036401382126208096073734105020182188147574017214286298661585083593121497403699437280602926573024887104310428442306774088415662654772657396514228933936353385666813023096765922575039921540662900549442800289379893550558833734909928278947613117542775935450752884840415370054849366551823675523831413568908317601328943337561336519985732778639782978311773079381799814506444154237732142493308876298085654133916021761360547181348848072055317796777522679822496881909393600431875994181443389126009206091870665309398424700006799530881316952851900430492554504753421652801924771490512041772224315315216568807265355117396114833869648922523002044993384645146544057115262071495912841954571195738594952994634088559312981429035073793875159990925878382929748091141821253229535644996757125799799785158654213474062638290540677350698241872505737713798887449509276748014750314353936748267142848555853966238829613807170703008049253511468260929878746986848002117549095589918108768276733281162114141495218951920532413126203810272586375886812527827799504135557525168732984826464602142416616180903366076858684052990756158251452845424534547280413310468948093103982132200542058121145241774393193774378092097791703075389436486746110722642662861064577890369204902096968342758206268689417180378043781226522545788102478158038727921547780094741366603078259095976839797088269576128813425119336972526263891065831789173628732944534730673350477987567748254471212871979130064705727141852868505250146639592011508086268221237175065865263152867205127124499081978217756222506571724223991467671894473418239171577903650731076005627783097747746492761274488093333152103772239047515020226184235389099925130843409031716125194395130870142878111863779577347958836517248437309142017753092195298696212859317772872786528628074615978701805745206164624053755586780589160234114843559646287848235192039632331260691864342105480562993313500212363141867116519216585135215928671725136300273715166709597646235797414795042316430465862191141304577010855343545362746654097443024423587934900704659344136855107300962019953277040978473195536840483031744229655420750621662587400311832088407546196765347897794450210578369385841081978331288232797336336405350128942379064127136475654866888972617794508210605512585470295239302479786185924749883517090393234500866603397872778669564208033834997214081652117835613963781146821268535173144498955221246936522603348722429801002624468912282015705454206222309888327199955849390001033099737269226363092639349675197478325357315508130165803333107359443044954111310154186225587068582155499082872302191455172535980734411959847362650156465522867354564865338620464024685040465229643479932111870198092988350742783187477730941155125706624161428542083126758594854258744101448950800585122027194477091940219142479077628818780359985447653523135548522934849724216620629354036182881920726859636897058719427545449312584468531789185836332370281684982036258773463438643745222745583835344146743457996261690038086007321187407014644456059578344681173308623457239975993519760868514068554192035704566085073219658569306271470887878247936742578578368675424493636901281021542733584028953376197478690159322580446776765826217210626632042240572158447724490894740786029792848763530591419455837076481406978219077347624252681795196198333603269028903070212564403075771745654156099325106737702651157568507861475427238634970206332142681404736875259385079111724723444252873628908657422687717564838943304358387817570344579929071856026789522960721702449898565391630047805817733778511193026407031185127219817074920873249101212761513925290999435760012158803360570686101852811755023945332953464622138217674790711791279442536666185442290023991359882164500975761242498513642160284612526096507706583978683449479330823318640281953655754594932726926799604059448018946484018781582327639564205870490342676156146295469098313847033882899433596104624776779628843394614460220288851088178302883534912400272914626655654466488787263010603914450945558240493563827617837999035680460938964470159729412833963860018530643513606782896973822900135869929527117144488371498781903499303037700175908625990293828798600924951570180370184220485416723752621067064617724347272184205939069653251760903599916592243037956870521695879239643618898874600100883092956043397226287541512290993109379723229386240737562426072595680425767832091763774171735175701444995989364253555168324712672900764679913631048268784791639647005282670337096313161551915748948906223134282173061836149351011315071685911046226327853971672755595224212399635348955544323341422642714810139953408559263367903173902377248849421443426916209625701713605728452207810989904105254248301426020021442854587266314230026151874233084169534338934679434504098554402117741317915977380812394218290004086323966043931591397650540963511873033485351638500513223654304687501444423093221262761119618521301613230828224937929153473298616173995666764224836715570522257044695911091668060374691947106307590827525831032385030957442237510587814204977979603973121862812465172074434231436812203397544678547530480279385117464245694600691608677756919680910484407914342495030852710951172249666876429340026696104299404374669073107232158452541172617460241778425959268775212194442811698068721390320108986566218631263977544438216663896858467618887695274855190173434976436222245492829212946608869876352729934737315891169192619328653341327018348029563481876418432537372414976076983964453225179776819168055751091334847901780960973514002380827265994686374982944625533473212077949492377263702789278802370255853892434799135135861798352269678909698864693102726359552678752895372478744522573618210279972715813594055271177286943101991190033624027989752829383579469455020194752130788280963113898161777005196350721206243716663432436774045748776363010244792021663474062379790668926294384696316699032567481895714514003033685714996915599273023916550925403568564428760229454300955258597742972963098937684305909304155253279756978468179059366786603183272608320135199126701670917351257717272399648602877540764583192663428126626147867224280808150065547202134837353388220051367700266795559303149723515355530656535905764281261278547133146899851909516802075068421525928331092737620564284328359165706098918618693257496851474225103085867753829840527461151543756475117390489247677219591432395039280840891944894432828265116903928860869270131259650533596546366385674415562862504163037034285417963723676647418225421456107468044376359441158314730154540500826523542556439150710272309974489726499993504171140063784446879020965393551028039321592968914747909762267295153591579017262980065112502021841401732969078914982908988606361997750978665605393570848929195871715464590121026448234100009513283887227839511728830928006776002202009392500397184471597171550141299526109448823051891418130113249287716855630458422815987274958796267757381692327883841172246990548322972701493162060844160860060688417053341701269838673091119383823709641376951166330872551818058427399138194153308184037279068812416665264175278772213613694893827702820857245038515622800095837074750323679398194897697880527585704585084985259741065017785859236578581329127029760115664054696662373248418193805138554655358135714140387214731148528760737361456879697394322155509482166525908086571023888685788299732631807980822175395044164592871114627134646369778047017490683659478283682252834307697184275683506636728456219343035999546816045972129993635333541261301471188720771504945494743980983715297672943923287593367681958297533010242549815639365664293534363037905113396067155163701587643182245870205605742778790827463317762435193187169080404474658081978567882917580742970825789677383078106956975178093538984732105745046919160685940724691894434841500915955269840076217222471450411373594896920931488165244451426235471293041964300928245878327695047072970317359862934835637114968817637724222831007269419549466454646030007094675735516729916300756701430360908724690992426564198067839472162102076344838388898033855111138643468795102989136478046024012375462188340019853662712747975055004642099505953880229349428386202401485316459291307298431413688750964811213645854626784247426602923959459759100117257023301265004898226424534252431796457326492486222004861339898369252211173939757059039210876959412396786423502918990617806220066855006335408371914923768174252817926520858590456747299028730082327129048822805213558634735173000966665976025868740621683095023140447473793896076857269038739597778288372789018911799589832108610969200672808075631959735146571525510752476706723234028671726213067837111039507298996255662016087042241703392987142568318385139489522603773690472651681299949016625826950365302451044348032086194800174076232076783046455521489262675210119044535695286707444753742530242588570964185076109748099414757814979924158830739077502203862489042306467619890547893390183394749781420502344044269445391573672926598277772980167255719841331684214908405438520546595800981350022296974752299088911438539842248838064318338406482462023176994112514205252006831734113564462616818819306568560647889844999752734579759419545720610745105173041772156459690505858387250300061764688162286965972849055462387776605607512761537582722017985414813063254228795437493808520971277017890713645595167282066787540230941477771425498177425770441914239726795145890160894383919838502330313723800776321030177344128101202966947801599682466805604961317048669282967062019396072402763733418789374343831310649699732729659879758617353054096838484881004097210745683917212367185647677422435392358890339831459998957238151186271959714471113419432494380449021962660249925575521211514674847637486489606840940908390675811597168181559793876270429897422016095607397854986440382496539006809263539485280896817166488631924726552723248703863627228136603446949978855359025141370812531117050502710873595569504189361698685731425501708417441171907793571216636198841865304383825534698630269424550732758228177639540178092682983134676188665367229406514348172589547050579725310727479001517458651632738348738849570013431906511733682586911400383034770136264833798510966151154032648180824142736529307499174333702227698268701111012493991741404504684607247509595462264455944831342128745145019917949035415907064873116694142644248660810822864252245695365954510889285680898486564689351083400792659094222878296135897592666330978863159923513802910943954977131658505645180275108248589403351856873185212042918226605309471430804240212696299376240655298238926812124388108229351618202795655228855752112182924222323666333731195034615755108007156713857315291358758369562124147675838023609928276774198961201636933353483553395592409883454877403316091170879837897677585738640384972720896677436979844768432344554752621694429923548473806080504615341524949006845222195425985399129217722622002297528771035445318638133537915566340071412433431675005435561136189918091664306976383810270700099366962929088476097829730036441881827676225774411686090087259800573373486042808788992337366404904235936074879269936593374698565533460974564586224694954951774285527279164382604340441527449098147111991796570089266400239970902946636202028369676415603531308236529616760140688493235662372304827592357533248534601777554746463595504989199863993388058221949262630204966708258593261684497129318548258677120813763493473856397043809870128806789535377675728626188560368969680068462671201090813775013806799792187781135500241019899230910953776088580273409759871951298439965571260739758897895571211716901302141511519024462126241824028016255994744096342742772645156545505279240767157705117592709261018030300506755405281913788927668988518234222195629554391079770376171363311267520862028419876834615938261525933384027291194253130457086033852480020653991941989709708710256540224480331699189120578945092768269607412687354559994345952801777352198155003330810260751034899006791136740370934020201305625591446896074836190948085447695914117838495083309725860796609207970592014227541072401094909299054399226945146128937872990633195763427571646436750016892068305923227882318563665132353148412541820961715557309221328606616231041244724585916954550496928814700742587874046233038108041192458722992072600749037609463318530038532682324054378057297568168164553994018015449508184809469843498037844873458176301398788182186470132074969346394600390379398896173222728288164951194660958239267594466210303035883435312930121970419304638304464234025407117611959317871043413646611536269926923733842495383622610573201304773054949755478223110959127220955311877012546502401077719402484987752137283439959567355652439499332426615831118459552206327047163811292188679490824121402621913759431646783420938438803291759066108779843421213657794957425201244523121810328203653244979466539878678947436273202822663661993287564322356375551595198384961816583700866347279201449005357855324132013820225597048598891375397622666563726245232169013121701045783009938980060466060482071001488523145932993565454407302589583914243490719576673109697191905574701613611088423510064094261112873966913487107525285859405783219927272888621663148911449298823348366601041276125332761182121814513587699239138954894557871629694557438836703632964582740844980858575291664263846889352304081927942169990595163479860957946025158074481183676386892131702750245005926367690284943674652664653772669865595237599549399517410593186017025402521548798042588367994684787527198875283793961372555866900989481098769926296778453385685714710515321366934893597688296250388425859601041303941343553571299855682560031884142801573215998022314385968536795853985931743286737926946834162207221431778848964481983970087213192300803712192115228626830752430707212351914057498053490948868719916774379313457926135608912588547492193378070471957932493058970791279078561328568471561744477617872618188217047285014968304277983435825930903493842647257667779247659395167206508781895794663533826014829835490272393627875955985164624879791449071774031535153345604150688900400594639629346796372242259193678596364337914888875510336403844371605909059074455903752668533364439726029721316851929552848976757841257541517928066940625988250936602634183224644364979873528119697359853583017747777778984298275133337291374366727727943783270358811448221900948622885290505117248821088043469880352333703775890479247089462946416975414223420475553075485896699758909706227093327583326749629898797053675920563609037484030271665258159606155853144412538860719180834871537823075765840922432460725884993139727440474250070400496318651408594294917697061325587271671525091890046417545671008708822120569031920887920240513303744171871464776919755304222792506739204145098944278403263722052847648978765273634578990463450394244919798186054653053115449570885777788544916058784079973872287389571337870458049619545668368195290212413931073925915380346887249145185147737911374365915458141268099305213776512804923997020969798291114801772478690521857071888372543240794927461911752518541343916328726262463788867457216786711749201804247680323825179417640870975892565343028032167780132073533638922629799930474747114542336154117495649298922468193622557754201183107460293942037678627961884128322612189764443881106267316529670435850966622671651340460580911942482615498674204568069597449177920750218883756383865117069657649615383956761629095658757810149437833943801784204928370186231367840914712800517086431203863913482176605396813623683171427484615098727939915477275608393000891174016822674181811262257917489011966419477633941153127019865765557340679098226194253638894340320856712840838049565804970812975996811574507772075291072352086484459586983505730405922778596333712851120226353192703080999550565402032276368925504421980352885678357545182370645994233335978114860500242869498721692549833101643655734841274966386568554887316283375504846263715608932329300548653456010812857388589915954192273168295059525265462250589477307668320902504036608568067370388335502008303968649688456060853973418985882567130080050159688486157135162328896790214148519876795467374988320808767087133513244458568059969245419161634638763586780803059539370645071724370663762165509470703105060453081010682563435774961290189578795797560513333701892721154311568301504229942392640219401718645976528251076046954180835891222791217454926699555737051446092503591446423295369884109170650366561537897833557339986735016828678143248204774837124212178066915612157932186322037633261147502020404784964060282620342293923834457553216065897457105327624188786481975940597925641309769725847388296744574591047672809400557803190564808936684420839065638656541227680860738861855509810539458167770491876982578200504551002202491579325985478396738628816106950861320669738117065162596061823478349167080197724067132689390022072577153385894878158763956150598071671654452119163659428819260303454404425490566844347489655526140232447539596301578813331840385444640477946421664643145380082157636873441765385506849359636277799618569410556639633652938910114696293047431962350131480318818128098914364444024359239546434456200817312429182666804182036180391405474001232073194307011774332008834658031559031897283407266994258454199394970275013814120817390943537100236724313078081519363138380608602352000070547462897724993879436666563401758709848579862464538775115769416750011962136956274500159825508476872962766381913501168556290317655839986318621678768832711463182246603262020751808691336109458009525710616797864926014524400033567134141938439916127053634732098846151744237730663270266561204683960931119628181385631081913909879250900219899705728890855683237122015371186641442506900209271789949637802175315244717836535152736545240970304056840581060622691869151481807982889609650886799463533040033754043111163856142335155116327897286153218353457686136185744729077064738138259558322107462640706205280409765266676663095222046839236180016652896144963615792403924806610256228266411513482932904909655085896920061252771677338637437983314910506985952226953792589653972880196203623751638818856695841802111405319573897139968893368293770729137112527406707479592084489365906745110193339906284110178692667712076079534563017091460250101093268270124308735000026493469407990478314279331027904753141252813951381857812079969324529484700649630723204247223084752571575806724131633060511251545026994024707542652754454642179566109905984308370403037659478181033553711930457768425082983016494427032396086279826864451044491997107200093912649991647027060892585629002588893027297530562606257604083180102250688191967459988276336975011567854413126201419735967686396273167952487848165392215952306156538405026539395112497153350411616402349490978637755786484600331494167418545441544474590747950827820266221111288354257170026437811936475517857910805519206061271810749378456126076424921603589713528878946670994302544226640608707021636108353243022666673580228846834823738761136096246148163513369950085879956619639000213517382029716342387425218715631084419136159980838691259018279648935116626149802326236872827778019955524804386309944833441472769648565571764307682045283390053723805374054213294833281204126993062584305951637451328350164220340519783540420685988884555525066931899633258275743518595209664956255103689459962974029294201172751238883755623988850838575974259574273930629529719679395327509159336011843623973259212985421381610468429843374491099799868330755854833034369046445817476253962438572330548832087303809399648869325013039936503063605781641079830309564861163276225685119840530770505516000500877005260028299284428111457354197490416926679637043120922176967438436171559432083141334756048671201422295604030016391515511663625861225704491425623665609001716422909145862502549123455330376273232197982088369546107328954413050342087610110274961893372477988759057258253937154204788195726787295759149014141141730642578683134091687878053724437009729405804260383651269303874340119876776553777691463619774695004121694896557018745958765072808678636288724231384562855693833406592706716582524811624612439402613650518165806009277367633969638466442263221220502946492667187743718599156725270282739520295922007739170269519327844820906266068065903831988588996604390071800863043184031592114442315825124269163491435167473899801298809270736147098073560614146038242105987037437400582312193865318019922772416767986352608154753382117284356872181147900562267420270220457582174397069222147685131643252837779160976629212573225667688857417426151549651228211930950132770008566394869585549431304860618534134994508284203841861064338847819440649986655911293007207240276267390091752745208497959167837409773966515146531729870470148899847511234776245020039060317022816717989820097450173040867818467459065928620635027543628191528706050503371280041729108964294559710826054173826439289676259778763163156643632343541417261381276853316449624166275145475111307924816561756517988898721757881295232753733992529442584180723922145020743050816044918646306007720870139073681183458719303494596451305483008114917137977419698403910796937055967174052356216406196240438958342429687907967195657633616061241839175605914255296522112715787453117443287958278033509279141796155151697739027213832193369785723092801359648151764557312978664567930693673426167947825317411008471800249499845937014114720663242230292036215019222229960236996637604275144333765821820217714221427806421639202932846573572358725263438059620929322925962325989530066667969438278134018963828223306837874660511035397881739443243543085506480376909843300174221113379896493456479950857962994056236452522454814518889059717496848670786341563402446919153918784243443951363113247927790845604426821494945484145884321668607647499165046889412545603660078653221005469916858605415698947329396972150721175776478649726796330381332535367186216379589561833698502409577532210094743993858154372369428759746087253450481975310422033837304426905826448176460366104418591441046101737217906558390751762148921315961643071051270540197126548051503842751386121652322696086281398081657581606143191640988008391821125171432174580179704178313604940689087613388715909232153803700575227225319684995876186214959305543017959307732545579902604994040053069847885552167504490469714762658136639526306007659611643098754579008050608034424021047126564125751653672325415357600088407149914528566318610994332160745669239691648898534033912259663526407529863380181407450147599562816544013964839451640744985170561671615198364005909914441166520567897437365725712212943694413245759057393737213745224816521636969257976392326670171391101977418326637411175783974328343594829653018615919792460369350789169520350751695481604037836369959540421181404587350655059832051994631647320334345037867879443292388982456595104125525634826886557447858294041769687050594142882707702876037534072061808747608983240605059871776442417553864997900027965823864892170888054310996824617784545540349441159912112937757288520215881617141917983553917088494778714986527796984209618137749034204133293541088862631196079627715571865785064293082502043651655884851684163388381508164202445754033277784757784237771996811997543608859674165064832042658229445890185612471776913964557134681957275042270002363193765069169426664337511424199806121294990888870063972832985209922101332738915022626126788857224303231759013294161250698054244559996604296121645562690386425551788579296250547222126394194629257755744962771842987537383884997819510627664934645903033446358916333491059749554994259900668298974785997563425492489133499816246888794281001549452045227259645726600149617377854103878865762020859952608526625095142570096850761589856176198236355633031521737510478465198468899664864787692075311947638609956593457239767649373169621081699298146342854249944282787219998870426460395009083370944738902803847902650039488520011430644187593718502886620992609646767087135357819586936706858371416995073371884511711205311076391226861543086658779859658951294012830597586791927450245482084531729407929655459429750540136131829451362947031042795659162527898599552128432859956094980787541363622483057286872838080706768873184711333084104655049873950769292831129562873296026312200538214859385538203931776255464256687438360593294111560738382689084528128663375017816724692430413225652452878276109321352497357445987179890973142198981136492295638454563888802608519372164021510029148832696866396464638422925711650308079617867694182539953968289618815983341976727710096925005493759400625749377985724655392814056881436522211290534174992929560145707398574427842729607222199933118907048130435118385701878655181779421769810369149316811111869642979739060894629611747163789817054229601457142015930296510703620292821405021293350609538895349815018546845179967138247446987583324784443263925133699948466811949368931088888468108617485190790345685107713495610558725728457224776578960684497044899264215169998373536999123225571511398627476665528365007307145871578571674277376859205982851841417183117123208744671554355900629497478283141533869556956396286199970025908259146259292299761598497404378153420871597730785753923823256132630493150039251398594439565306933234712965739999660539934444820698398379878876050197425695107948458761838802578233401240651518536196273747842257081673259888457054048039337012806299729398125445770505891154538669102120719057417562950153120297201161177874025953401922644337147922828529298592657299073461855432070161378444851967738676204772551696836551852179000552031982436353976129376713488015483951234625785808770652158846816807185735276436129710368198666720920637959341697790531278630047756704747795818391876622562330861998251615834821357868360689182716949948069089458406272460547243451695246129362810984697342470770388361336022730761548077036289815157846656787796427995699772363230187961510784322577096681722026821366973998416603803363571113963498390731749661219397619854070903040244037645628941198624659314978473160390231084075674539397469933435072002688759198846265553887507079393916611512608266333104984714746706776606116316384683650396573075845466193356973731697991716310825803942039940741222676916372338082002283298788164750969922426736579238792621596350158985876618665442606196882520876029364902966670925071816071936273884403161283481207116919854475195987080311683783504527959626258099599108031695720225728804771473163379999767172522805559487829491387056857168162022386454708635021387406309755830325832039659819339418250684591876741755229474385709246401808312042062629661527218792504639584195075864994782478351530863158126764955408450727481307963722295026192727054277889971714189736478925696825930185319166512040412570518984880925709871589985760205388526054166675601586030606368860792548869812620817827494877766046150770645437718078789391976688390747913781089632976072729514773231830768246940190513017224956266694938965976767958726949835928250445895652691410461625818862306053140735595286969420523670454248152925959632564266744135338584406965392185667418737042339994588639124044564965294773354753792655055803909819864013760407208200320975536401315823968984330352987003676477861478813019889914396865159383874902026129263434347006792558988454720063342931259628921958326083820354856790589344365253767328851065009151111537490364622346772375858705855507841043054868360336284483841657962430919761397312009020012490023058782126463604444229445510061298857018464345301782594753873846183645540337759853144280979889837630612620841822835039050987422898760438091175867406590628062766341282365471838578225485815570425465775544125304714841424392137173367289883181599853313957898645337764018995419915704373396672125581772600689349111148042057047255813784539214233802003139918060303981122305751408643968355676014418755339490302437659494257478038863913691044374106567193562422830689421943898767944114244122965033949374026118762101244997557050069875145538391993842277732565546817279542047229256222953621012864514525123839157823755499854138693031758406709098572907133402639659913426802476847910918577613389590908233784660809559163698499657090009552727012109097258799712415538935724411691974030642592819269884799173108068276658129580509686704333092603525995999489683742198858353210439617803016276697474943580261600003062419213971319810974273995631300486569983152541844843435198109776788621218053863497079600363232380376992055846560089549222763568594531323904536169534399276970137224937523077770877229705179893671975506007897984039323086133125010178832227159001802505167565929172478845987729366332446863768373971835423864022884319886467875937585513171268224003742089054529436218402586798449002905495123845919552324540255377794317330699508606964626094337212569288760775534435093126346326253269614254561838758712181607523515658809639853150276720919756177927872883436563702002164134498572095837542641897357044548995743126612173810964027830211174776294353021295249664942562283761353589561878591652280375233207879508938957736220970466040826712052886567174333140632241232203166747968734627120861048422709734452811625067506771413632445332097696412582161526386736299831375992577382340318214555523171920421355967720645846153720777955134540465728432201756065717475326497947540157663598577510160355388698328749053041532274322173802274979257936656157837523577366143150229866321923433859607516984003449198644068535687841008378781975163172318563004743078369502060403120403985636122270377605202306536905121367254725663542538029290168551494979850414842043940550591255514656537515440672605330656861851250544532176408428054573522190059652709217966214806641530853115817504667893921746751150945471237547870722916417999481491141184661884489217773392638245825714936197152593741287487382478651443545495569716686811914421116141065488185023002083161738588154519314440488548335109859862409184414981500548658678012895723572989518718815752917350032180339003932181385052764565778732098049644962657936949150066026642739832817021070934259661807556920468971985785141216314528165970952467322007551325124744786155642107698917947024194236740389980859105228114958153814367054796620282607869600255283113050458864980551321969913158183385805282275554697253005244353041281633250127903247718100065747916628883138445305993933652106927540793122288236829925342067320546816117916941421859973528446490171900724605041756293861152423597190053377808383557631459443028151636516603669254443496645971120658074062694969466193612645101814293388344250623670687132878445030875847446287842919964416842458553817909906812435472460345294980929202195286604819167415526462779440559047724216095586709595871358053952017546837674860894164973014323335891408059960965975895407935156252254662190160638689547734698993153780196131884077093139640180033030116492356624756809180071059704625753871264798146330672953672562955828995830863017211457983433996092426192780195363533859352467422360326756548112269642190086154428540771426980573029060589427936073797744265120164734868898168585310558631745132416650851021694223811893300695803865031715516186004778826372939844060356522499021033114497076272907560028705892470549159240895737050028750507707836413988454215607850431187774350060609593682368849587848487509276387335622711464976971946047548546319345731368925791476892904974185332115922336427681685438562669941976193996437457113470783977302645277659564151728958298827568737451021937105136392162377493084938783658920028974763502483885406068925806105908551395360379217629661218052017771944950540959225960954905572625847248489379399211588916119245316948675887364408654566423671596174064934578141084187866886745676804290358271288059400003044422879931331848012477980100243788700645196987774961796101424673127706273952724252410189734618844907031862568404685607625038285664867097946203722151243943819697796319181221670959229928025589941096368468507023514561115538851576702282296750022382317661299875170889146549016702990010928650211941336427727868766282593140193979439289719096457315659564527675047760269265604984815427362565941016868235409144530705701973276973091480209275378064439763246156440624072778419052500296021085132733597457273949203202489647117287991754991292084677514390182159827033358961280995523752907960737698042307394199242666430543229540235050899674259448904951147316567802094702881801718418548249005176154629616719316215565726260921275902973677358806449995185192903266211405478422351209952041835373451667069047854697030894988794676128640718355076847384243367878531557827449315549943459389847755052982473559184105294669795866816659077351586439751022845414671297200938566471204433707208101163169065689841609504240206468296907373567153231347131947303151531415708283067078990742740253052430353692580658205670995156257895674611261067242578880063523851092157614400780928933581512182210238558237390967402451197103551613148181620816433126092249631386646336556062268719382017193023890917435710972733964501384564855856751739288653259499245325769264713831584081266365060387059175826500468212488205797977113984089377528167928087308053546538677756754943079316596268719495503435148374588414312318082581795670418589099276412718111136672978153994139774992263434388747896349997647132352214955166353177059431314563888735712744408101349919083505472712675540752823474282549424729664268412362892305797381645375151210130741134542186605655251052790547100713367207024028731203660710467340040600268705590975506532571972231261072021197500749801254578087820745214814516661615451195010668855985408741941503193864085014457375596160475601384820346350845869224073918785984715700394888247447512546213405156774530430332529895075032627584960952626828191765646979358285955298676362543287352617468328544008357105301832048655524384759903907527818288100395022079932666948823875881537716607280908298232939125358643709977462791321725704089840664627589078830203021648718318095022153915072827016971730874457871378441458258463892845117803788475057874418579769594685059868507729247878230631475415312104769101977080913060819229815171792228173787172280298128547209360952563202959256070138296615485412718474200165944373993655986845008911848077197219410551392517345790440483254059010913952796997544202224481497264892382802478966079855661646555691686061581822993674059401426207027863868695236105889738224455707773302296075869522585227581107953421441408012919235610947322169941491740958160188503086297432334438144209974369229456021048669959247088245083101804724938377044479183549959297643441567200915972970086676676434526623951151557480183294863589505172315362813926405786838169653675657398940315254411483337220412431305895603117769719038408620252321946975528489211072673438197039457907620124257760840409509026956110466479297470021926443819722120617301334358301410212653512209722043846260012039092853800352705494514334322957711746523842546153383509256955688049118301099496750180622531946116258105644322743016638362608389043452097618654739599153982088082736074337990669686579241310713998362812490608156017173686095531183919967147848650949104759643613142356237248192506463712773215540246558459396279696912816039905592783607867901216885424031949668679728286605512061990467413729545320149617130093204322912395683784260692237166441530151225917514320830717028604993431889258990312091727827337848962707222136598024440088346664508919466055773224345233734332833406259577140149588389806062447296284409706230302469930336722306384904554620728790371663002622851470892632693679088018468882047210403204660442380666760107130662245086972611293406358480816231120470494810651417819017382940886814798513244561266381643652619755693701331621968811005638612985318645394166239325986459549751635738552238879662271256110384942933924276764712661294818048866877032983156694066954039612041223144118073943308202990099757573853392501991975472757077915415584106134246481508801781756312658763843638311110934942842227165144463955460166947679834192277488579201399840198690335318537992952986294518447658288065440198048326991859022806113573849690665370493125072013805074693773093806718025388824338289037284526464136492964807647326445687493857363131905902368036210754577919339027872768942590686215622409505412452628561559323646998414795714400247045589890201423367535822408316132407101467793968907703951497716022162900485507500103753181638342927930628171217248039383245680379608702261558916723035262521936636187542536688026247477091873877147168468580933015871903809536021870257496313951082268839182383971776706466849375585852719125235494982080909105662808339162950108012970669210759028289887153551314608789435589727717003628460402520898218285329259688961938098763058622841310590078278852065325357389921774933436038122728339102710077552038265586981802922066035960590955855309055079932783099738903629343777162075957244731173915632764061065329636574072812880226466433502194980866047992280902856246176177327113549166810751284096343175273983121469219567759966288935620838088063933233411907625392712565265863897356729593098155220570581893133849288213738880527179189859704274459417606127038906199391168583525853252678486465024615436237731423971288072529499635100903359046229071524803494934132241257255390890585136985874690599717456001149471042357450638489745662299286505789782852291704388633773508340912572891860609343540445070484544456585578948847082805896448456985979016837260399898101171456857174423845058011385478102318236211862512772127656391901764525508478568756914540291032377105040478744262791070545455634865786569020570258444737127812630128825607893059239554879614129467882368733270287372371896465914522433688915849761519675111194862627074541764522102320861784358061436116326028156091750230753140767910445420337941822242092392758952997867005732922941440499794167102879943755115554844484617634904988477792386312913380135623513482976473337918461514282962360938339597782997820112674368034888704926021101238998941941331688511376155665994290904448244272219818395024551518132554196220477138216751567672237395676771945883834817546957350550563447965545911708715079927022326829203916250614698887207131797990700028020343724069628502500180635454006252690997640608020349700121193637880964007039926050761802872885932419812826529461942260235511419215335133377498878351456719458211445463645235193191555048649981519849842179029744100767625094438719372257763810345268721629494484710226636650931182254022534989489998653787739616261416529903127995305925117436729581437580825102319075846453533614646456758619198863754060920681815572204740330412314965104788841539517082560260953301322569317275199067598603487698858838159770105070937576212400286789917992899174967632185738517108890993034471565606723364392237614879295322222136785834832965446222939855354462719885541429324969203415665017264540695981386620788006979750273077196933137127888755922279222633300588038151513760017606109252638514259558960687152396366164903293037161382258441110721561942382630258632721152583784143281605851734787116872099671283702627955377552858292981491615527934502744796953787932625738766935897074463770908088283357079160653236263130844435806673066690968856969661524721238748655264087072041817575110720861030696797354945503464193798516495633317913335755531707230556388556999673038577510621199120718243004649440865325317518937769161052946619570088221779111807743669472196678442301620065414410102987176455981992196282897380930476178318619097632892315414610688241146546278143785101818796334569352434524112964472609075563491177666387234762217082215362501807967493275368656068603555280947434614867671115674024481185601469162969601345324258004277600214242699174047781211086661999017152716911141397895291013749199378579931335036455924838775727985490789699720463666028674221187399409160349306029181888603906733312797377852425132271907269157459151820551550416110532432560791183762623208539354599763491220811749729258128617841958450861145241887636564480005643078465971859967366364324188417062315578097867990043098713875968852362416231554828871637770311918749221655061917048537609117924177798853457907733786830581087400718645736162591385338515039094780191134438095923016550182646898146156230427294052775117926675909873715079548721079516964715998068402125704248174517129771750777525811982461786734802751590284152078278050979588725675453197058660530608167883006744875329014543037354788109294382913094001016991212726052807876608507503547063066757655759452979903418608833320722082809589180892907913083308864340057578278227468446756593526437380549863193209316186962790258962347309753467189376320106342857399707809288027022500635537747429378233018584048774294205024060718716346584675964894672795437060795548945219831919737942315226508795854151895311832387426483192297285461328321242161974340412824939560411173721171730306694400947491272272822323192603112693220336440067117378861114150059302743518446442833617098582426610716719866958738103360656088632248014093556477485901369733931754235190898832116059764485724519240906532352211445652440085202067802924043481636057205913268137867265755880563280544450337601218193533340553159668532127526341255387764339368166409344681045569847223308254086815811417751457217380779477548458842756810528112771904444549561151729648937191603321654160885282840253557377422537120947194917765772948224539512154858093855981643596478633632851681810555511616033272006422644882880425895002433053848351781195569487049603028583232831474409381347047685485629469598798586715329345888856040937266247453792554536607260268188307173540924891512976800222069285558850621876971322992925438490051353365630532775214480853899382538397686047668222716338809361093733837688960018992227890122704107418716471716567909450800370277416046557668037452284625638168756576568972201435078846227575167557592147625728737101850177104896376066197762895852229901341745045053414849012449580397804681672601437525643516349272494005554396130514967222881073966661439313079060508298170965887235732012613642331935936756682486766881064775976316825080656534254625673518879743336739727449846771586677621566287502441724886258471231100776329482583087591927668028526322320624018402048228702791614672928873822518921400613601527206434023376332389313901399332498767808832211656163869918166726222806647054084118808323922275493613335468599030858223296222789540543601689516907270318416038976764170133840864310477071895261507815838206909942151583377811336478501441573538198957222776718719571348219264966734284667973460411072661680938686056370584450259205135108985016307609649667266837057507791493384717543018241573007805174733040506171912514515886162526118783734639797724628399171771714141933103830366854670990726879911982528009717904074456050517492882658541231939884139557752003308892997884698934472105658772239753602417757863648887637360461590941557421012650230473267360121914450659020553787563499046145617905099745189550516938749741581018881612877650432149998801657048637991599899814750996728125052917711952559968245421705791181245361154744724259955582572387475158961047071618297240700688843316836462787376683723390104907297076928666960443399935471443220528848209429221652512456601821034685590592187568649017757681208780132726829793108932069436275658591272141806357672371013345722191426094507630790214730117546945735373544588519428347603986133123670922667291549061993084934344107604910299561448518442100238571036368792127609092250098607300563879604562398178185355616075196594591247028796523644568592560060330857995643626647246222319789233835039935781888275361664005679766408233165370722420383938503151393387493942408996188769381980953312092973264602589728855801700721470910310770225018187621962038533859011363999942102798485761906586467008694271518442350575561179694784884441334738157744031693747952466807498076677212867375975064475134051570302631968264465648662251202116773626436152595839066379148578680420992763563982400100445263834696254400682289469663165725598756662683690592985462176711135124017434883071242966311466558449790083557900233056075012562491048142417337092773866329871707811982058084745269787908858679963685724028542847066228610216745650912732749878497969074506089468119422601221126722994343236916898734438036606206973132645928267028636353637232081527446446747507902994356801627089872493778994054790231281507119254168046115302610144026529192335630204772656012846373890064857816492878354336495797194850314110516533632822234240947940737200643246073447398645830958188384225259211451756516526101002912067051216773481401022470945970139455345371786472015911644792561635525429779929343445725806583723255592997235755315331077020498274903974708651270630881127460527049840200292838785560869692780444704303359934445799789521819317448013234200310301140164011172708235722948704680810621524605972039353979874788091104359420115987526130025940943355713951900823952369566846401195587607098551708009354384682777742594409203850567324351793476502767279507504769577858335117183097581883727315781880246387157385912902147314542603189564052245013609578922176686961725670892078729576610641008316180383636103229285519941147876196607128878230603327643535112302922122237214025269442353257537152802020664880824829467692717613717711876601381192983592714434927126040463739232847901810218902495192719880911584673566853283223254284697971770595315338226832102387222536781234690534604136820453823293074830769294752133375916324034510995066860370764827862955188761052530142133856478823597859562583009028042902976791083855884038487146796233073836607138817001938393170658881249164136416607586987106053081946745863962363139939440020543573960441484490487309958803821961158234616080353550059239340576279767254427223692037309724135575815807172072141001168743209904087360523045312819359026239474495701729168512594449815731031018075737399191932512600013100487255864058317904261821807683301081344553602890082500447619561711888656469656229445782886786727955686536451050883003959701978689076901799183488429437715300941950331485115538169818316748084576422149698121386217457940865504611682217035134737542319302061844365546164535782948263782740569124238021913899554586708330521916418230496668214556417144633866269253000527580165630458470449364355146567025174808069126553840219853069048330345375866928046291504930260151837292667439747121581251072311428822404513177665254509184038943486785700297600089457617962615417468386945975162423335668106502927648254566335704119144465151268582686149777559040566933673511442309362767725671464751423420848654639170773068691967737175637961484580877458406927206271218844096777497297779261593194723500213837792345278054480201135666736026160176347230631841023251864519902700339094084582033055297862884523836659663811464370961852188512775010510260632510113848406951213653417466235705865736153852522682058758930680005957627286316497548838854609644316346852971128274028776748018230924567626198093753808883528047244909968914374854393121893039362585539274471466356822796148469176559784488044023774955790927188690102077544106106903117627557161748007311106197876441697595963848540556990297647621751903487770101209408614236004384706160004383133938415027335729276008126083943238107489563351815066274488627299666128617363410534757295015752721801592634093322951729810641380206237686733829469448406197273883128808425499092287720123459201905049013407324272877228436515703973194514396707938071936044480236423881118987502792855426298832132918461089438506322791421445697184255739214309499437047940602996276389482298500852386862665613525348391524117175521637165800253854341850153002025056652365379964152610569040589270667515541851700319766609883846236299450101811968428366991971264354888916751307638643370523480339526596524710849455165627273476230806869621301283645190887576040769176121262765390284627012818298961194401204309526218169750687029361121350815351721287597789925302899051099297581168135380564704701214241017291141135127091246347225838426044995626444039196274837522085653682424301621658579719579451589134772289766111313449446161641962553764621537745509588006337076919773942646913341748557172885315876694764397671713611590878776321545724388041248970976036745977049935334037233773380199712314817547136494660629119654999857883082593132390586797284805582171562303756220431813075243175142274528388033826344717331863407753314545652415741019045317243476963391822981484515671551046849502813664046058025989363056951153393831645697444208490418518829204316641190877998364317694594175384997685671407575461819848194215441826256280822979687864691216951988901725056811335060648992007029525623607057368574167169285837493301077716154583183624151083782794080200689557161480397190843535162761567653070338851944835262076320485094738088795667827619226878632974006101675973077458253090899230763713607278552466652268484185562148963743919996760013532837116789868204878893102396124515741154831049755443265230408129184424178806292354225805505723026228626596094098006824142036322178547662838692594156600420333408432255956817170364129371219996143330809513700006715027797124698953627204885446632437075896560761007017690676544435170696820777865741986058055981870748145800617349201521267533282372231767158861475575260307733194654436501794712741269575440015894128730169752151411001843019968543137333198649975541721518548133977968782759501959317029913001458737414915052950017798401938020704099891582778671776416175447752513344260954838070695153348666771836944995887343605487587603809679498859836823821135312288357040148273505598025673565308431373253390675571549720544615022539229416513682538897301638572924344403850529991597123369416715158494692565544322062658853922052619438485167621145929135624545723417421113347011868327418962700363486336522801255853802294532665711821439056618901137053309678139726372543314340087020076488872312104409858654022418130485023827337687944527823449147443437680919169770065262690117607333537292056762301444845972928801676102966258944697420835638093855512599707517361133469030405863657829507967883767352291646230410681928330007314190038393225979172681498590983097978288253908605495392325735980625654335752376751986028620433848676599446906604238576767909196863470868018709811538348279077005653825356971061657117553563384910088239988101712560398158988307789986779520621253534395995162423218860673311952001926129719361286571268150238227649705813175279627889799640190747325669732811840033147609795809403248866032752945956546168649924822495327878205793356988418032128747693167766042841803854637155230094223459867747142558324002557370982133279324215535158628387157137678654435356054268046988127005112660400115461573869074035400963129623278342469204177200574337626473195354064065060450627974271198910637930464389556612831271453248338621001894753665391785245865190156355981799093210335798142389065335620395873360879620483515430048294879374284415676505547003855184117745467771729188007572332696664119525054711361794758622831523744004912197754134785616069483223984911200381953801284720258867833999455329048633551759545757778428581553067877790088052411751783077071082866803679049687082677428255523084704261502151742455778318601565710668584151193764943482859412251864044683233298719737222893579772675141415491265322337402565617915425081522541811505859687272836143856038235740386372468055539360058410170800114960423214002960980034437350806196094648355092191962968766572521483116182246583131313929104159245085521688181751939914128920706043207570950350047485241751361602797702485304958147025117355328641113243325582145260686241425723935484138747634504413656076893869275775208725582013582201952686953495579637966439720296097637484509521215697290988927702809543410989182091367976563791925655090823618537016506807568686032031999650924819637416657375855356857287493601063579770029910042243141897579644487326846652760832343116340426680752762123465178773343925799492805921802373148515015769638438439413551478265771315361530236585848151768015492828348397616506283152711078489745606385820388402849800172710704488909588803696293584840794416603453389592247188760209301300527435494412909147674261328840929889923400346117880573049150715969038966433004400372766061841128465916224649646998025422256123346865400626748066232834536121091970040290085761347488024139790106471655083342451081241105609412554423199893052226489206110946359125925842089434050885754849100642014485947340763645941938428515265980265789738139191683448422461367461810106262776286151730818380370047250736175010192765595656920280986373598785340163407243709036706702981719918069993042506035255937816201796564574727863485920675317127325900881442234380474495403558528513101874235772664931253483207681478522692780224959559099924977880526031323584537467056121420555485289206471141135987721978867907676049261732429342727139298619284439851055738207200952533953031476243674593244641296948616931819788529004592752585738483782693700001460618347472054547586996989359310977204961595089216086140053411872867482554453304138337527534747537784886876663028463270342052527469669574012021262185947478032993924899756149269511772064807776277406511888213391298900354044646175997256996888656831937695377894656073146579940843104483250331749347927263210744485233624246212167719750835215700899934392564348589333893654582415868722082693858412177185521599964974719107788064704402330991330916402010671322937673163197655290977772412385552705455439350436119812859517918754557416391198155887616951543557163092243952745857400294050438847307865457347539875411287013701653218623430928704590897112037048837202905308957463153431364621907676003202801572269404862418606082725052643916949015267211872968410298790587661307050578400013476995172476594881355903607193887118898212981010781114939521768297560202164468251150547190007698771509690153774587351134570325450975541202218347604982905748666975275690446417481420744096116178380689751992630710606982369771380100956413118138981236107969682969580575520830253229766255396080921009624473157310016614502006946356084551381962177272873219507277992063171703468554959827499259482354732796415283745514075276057743842502342609672842929680394240315968301511658599289904778226309714083636405106950285906681080257280640914829042803093012990214137111278991044180089604836839821492816686466421559839716978723099970650427771682047212047408584510281404747094226824757901666160734940082861738435645630362623778830737386057370712797321677067669401085325596165732178401287079270497577737785531926529310290194393598149194621396028751186481608612875546077097503084108509611725866709487044038326368785334819436490914705244801716493478310800794100393705247307108791289308897096211611024413880399241815683367964248594935702289367540931912147737016044527704021197343218952656986907115834816820835635952807804972422206902506466129649573445302053908955808944613646079059838914830826423180922318890921628530506598461804051969764786457264175361382824670332614247941448694399960217061394638258982547441894237688164433046296321431875308122144651239328652027068073184321679503706544079747577715508646621420182743150834796025332866368882151138494782388788768703556626940377417837886456768873309707345666082014106750647713740774763468382109944335669292529392697622257624386111823769303762050287096096045324813064316251799207938874288536784410114610179514667477196626637899674653565869140721654873710658417951159171598830424923870112028966720652009450028175350496956398191685965361013827717434559989596656508874497691452629064000850357498878313971523269447066100886368240137801229006060631278513860698297139571596980217740834190372267002585281527700757226574655303596826226658070412290129094044720582055703971102943391035131964346988612977860241532980587982521382381644090729499314232220267990600932152110610743726987263929387403330241496665832210442786922088280847343325138004288768777703394543703249454255112745325506240471789576977793853513150713306449587954891773574924373588757351457848376236184491884840472630779230592776286936017744402123084592387668979250131966646241751660558909145500484773006487123299883738654232402591810172745886224220342782243513468090834008190692922848725452778618387906167929453836333812306488591604137046341005232497731747900211730214477955443198620201566847929598564213363803243670234092668996438981986899737502018435648473110098563709044044213108897071765510055133643916516127406803392275374546848608689553996573467555248777209975901641701749300037281029875293461966818569506702114077489890770510713535795453566911075434756220182345089689645289009323045106857569770771168668212048231732414771843275848286794814458364218317515314150783316919630625610783333258987588430518871969143710998098705656926562054779925377347802962669273116516394442390436485104295316029556418758236074862020623552060006003958701862545308855470562578347882565575070743904360599714912180332945513354345993414972798854616409439078885019499706662754298190372327753332730130984541064324418858775047881873276954298488111743897767665654530965742910087604030183103139121960794780765248178369438717719224923861114678882526286210732541805341935567961675230641720337945767431158896946989391800582999265851223556064288337020338799394639624573489794215458233928031990428711509159801078615121728370743003420335544566301429988045227636808681970469910635439655016767140651510739330096426196545554752130071387847179609846518204423523773218449767517277280589084021882317676868655161222486085950208175434331317296396210389419913935090758997208071751441376169823748084072721338887647517632092838511849218939754489925734055273285586789568519433457535151024711046151275211625304650783876539590167102897844769024965673970950665330852579493239542643249557326863350395842110030726939789913335949605567145885663591625687713103191674112037487466998215781475300453009156411756601274936247219648012138073139329569322360169269882132351334292482447934736502344943595623704601787219943625923712241249195895545516065201736067869032483955301207830943014014960654421178599612809553793104268232955896781989483096561575396260191965716550493724544464779142084479819438416989648378391364193867892989655567009662582107440188285399482285440383857793146368374414328222465315053824776379810375996920629054650661402999627919661768669646353700156886361115903859639583600058851165588085667790578576345866971719097246926049086099633794433449108983152124843522483826820621365338084004623735930488607613831344437658428918915321613752930563732278515398244772563709951821237518842566745985386849222953452501095226815037518986096074636130452502140951480361340663272313088418708861447487196143746866279587180618660419211910500121254753658860584816738840948212838706946038994673546366772275592439156858982690505670525644026232590660094627890602606631628256901528494690365733468138309180766646536921098842196016251678384830229180872013852793315156130641554393830191234804444256479526267348578939862157073071552091522384201120407369651648726596326153824102874881013655145797596600404788146168996428709284903422081193231726712863851523766306872433757929309328003556833215370052258453346164334647779658592280757229119632809482657391328014713264782556173427061845755606942866848001466092033785516718813842163477276068559326392364173378020374284918139653129908744766729834200479353057558237260948522238787221857952568071903440127100947630351630305637290629174657051564896560798870956293147939197441294506426658918944160071926933363505088594901557975051220645552808657983460327668333274547286716070883916076719313276405261166057616710901222945248452963923801347132737311247059270147288479336666690937016236038473701666821620262095133527232317525528233821575413317477096405660942797726207709781640838675079355883245161412350359424077416305177531599005517979532482283852622801441437397163725235060350694749496915396195882575151816789438039724127885755541916001637028374277013369169586116452329414853373943826132744015197634123165568637042271051344216495757339840393350026421904136564894975280329456810934799957944999075764232968560539384416193942463039898153061827687116495715618851122737199219789384734817283090053762214492804248574357588935996150914428355250191033368430560991758655096434244125747390210170132920757068362063968484146056900672991722126817364093616346232625983302344720732390522720544454163174516935177250398188908020795691259583104972672953887069669586073723122691500577726062051977274958654622733675375419064209101109587453142337051164635969289064026796712217961129684125824275735108558503445507728776091115118206814064667819361002381757755735611006132308883419582884229860927697160415651648359802001664352349384203091502264712432333181631687051234525461600331562026335683073502649023858785589520132785734486733300516642725130972347668203857633083909833767024536007439851988717530791135405236836848805104828602760921778747816852719591870314984059779682899667712215366460590531620420039102201307362795890277860459015532318295386199822587626578927189932539580760445181687524005809546601034015679170766115140926238034168676200729970798655926979105934691260664161505111937170008766619090811504121625445109283025968568720102657044077398710615161454021846253880719783805449363164837826680820789196608717711535060588670260238864686687307604847512116432464777523998545288146607287462795839568692293301256053559604297798873014315942876114636552246309983179646181319401876647988653498546819793849218687311495222734213647802402430204888540924059932452402113737692117134755530986180049387790511466765600124335215571304332897125335257228317080561489171502998751763219686978598456004605438191815268843631234405114467943491533737511182987300527174857102012886926017427513238147404982564769901296859863013640189384088456874524297284800554275635203221974573348967190421704243276039535861439010779124799351317792614730744605634244432352786156361941395376820708119798382919027260361807850895218619553283477558217486852034124419800739191972946353131122398206730913217720834189290691615285451863433534204837663137970382657816128293193390270040513809389353935332488133149864953823539415942894648302957389590925089211765239186705934916810247331262038046975873178446288176118959890066738958601797293954766365163494099161208328745978525678383572075025156100529806950235253864722027827167613343854329590662931160182265960229016889890390499444164161996131814894919872705691758984848851572650398836541388528157841645201665126763866484773837626242504691299163410043240282784927926137406537960063820225563928188404619142611243652015324398807284716465392871386308518612809934450634833514671691834797808992654219336970529752402116726061625305334149597736413479975957849433628763199309611909842735367141308576851533612697192051774216204969509127563470452419589957074680349146904773811607255699718984672606995214672155644848805050993094512300060008476661025789608090316210195166605514521143377980561017871318775126135976098059675449360976259057091017815733814112776243057673796863820169661263871670173704989676119974417938716565813883804456791233563393907117512181306711112550037109365477650909347361908735254971442521950785425068618217483688491391211990612832463144837264944837998380238243888261375140722894755783403266049488767535123960071345107260573942628474447593477136624911143614443112554226342597516500588073205512604945021539912883975049189898088297593980300325794101258934984279935832439001259140098162500786690296832811419635493986965835106113651059119864899994976338400965354392500746815755815477638699046522523993915137113066956320321644416883659030025762127599563057238490014310328202062216548469733388760708387479289994186941629958941302672126884397543238116338790548453313750068681940189097626027360280488050167567623116702103162561777657744783603396941694078156359168536540098451452222566098628091625606733726758582999674570401557948861562549331358362989358753959451989384409021943211091695627233049403346403971395235348321187149040467183513008085336807574588768477079348386273833630629095492798974319746093075564872866868558825088135076220553768616865166922534997300436707571838258431821135755714326955986640127429039756398327054155831119672278082223227517914397255842790514023600779858807654318456803380178738844321164746093296925773771550559449269721582107575007606953343768550842424983068441993422111344649236432389690845000079100656504112993231880565666820818710666991798301858545393099965444921762508360571702439681584396276913392453445044714418556671120253406638250380418706183974534070030747099545810770633415559926766905964974280623290873897481192531226305515978589921557875116120237529189708610512798587345041900549919529426853251442832827534728983643846613632321423429475726452849582906930809705911842396898368277179609190314462420554935507888157461329748122840521701627404642353273814249093428776685372155408104064419371933026551729114662288019871470920454630104198669257652417274880149111219181743829587558033015022067377212377824197070211997227832090338110687550994648442092606622215897031097540284730897851527486676448598725524431989707970078692105052335809318836648017292096799833450332080147748602526295801479649675859280392986897469800540796966121985027982735248520399915455267449824969335407470811789638975500741900746137868456746395736757006419326641248370711785064990181740638306931830528830593846938294908237243510764397436385886669553720848552439185388618425393234896692408155938721160809649526819718473592670761037989890812431244874456937950115583542881642239620085118546980684958939540435873810893059744878751919141676284453327359142464555584008117497783482843201796521726323860066358254816520202462347383713009501004038747033955425742565455998948648732212592998617836287340428897313862788521097162322267880853635770414429003426468172642228612735385962906122334995133671821355035125243110906701377826052467135629505802655276397951403028141681635588205082849985046973173571095767592051866494455437058046446180007956358252487079336635728522155280506801008697563165545425848986972970198152413813741910118941796179771458124004615330749231051778963075886007953125965411429625700756639261151802621858232025786203493992685348174266850734034229175881555196970242461230483760351993273344512440927181885191606415656362275839572572580845166241726931375043752169485587685722071062170842719904279812849431005182805294549556100076978492371426703915843687890773026554704771250271990014621233035456554875960563886083541864516444511505067543764477798651461338905415665827643331875595362349559273653086631559202494442736215269828723428989647882687349739258149595181493662579775772070087469074232587578844562103111297183293282033543193230287728506953820329596218250876190844958054861369009015822948328958500507567374608530352034269831471275416138472415251178609185940116876949243872793163572970230982300823350914332534423986890334363391314640312236623589409767257643145692396136950871082882918852738065696542976616776676446982589776942028836463040887559633643135142147620014465071644788442433305565220461994731722154836154601476851407764454367184622476632633368823805736874023650163789623726371804544150476472085100283997007941703641277402557185388333773828464258026592519589458197442129167414232073091525332242912351678530784931702675267471899745393712579949269075976482027154801274285991542235590198471061342235656841526768113840987766018412279830577420534898614150263089245173756126125655364380605283976531106807069007015154902529184785205760367761076790216493400298629024638753126297916945048225974091716910327431972879055856924751591449294270147157798951507582363826287153257838594809747883338164925972659061511652101351824685970810663221534665057833514552161713826366957995044753753348214216294542574559074657179704455185577174686943385874472156656393491950265187920252284453116104622712438342987983937140134470738650914152335510982105976189299400957293273715394076705011380702090829288004780707036000758542883384725779252495445073408064137226108117186862736416827493470000884210571077566554275416535936571557852993666046847524374219663719207580382624904904516276571329995186872287662202019525081628162983849102439092370529320826176041060902347680124343864785083621403963730425259717730056614557900623649062846863522221156370166927345994870713547720115498032049120410615825821410119731077256373682982001018710318399070487013305677408262874286836820659208804382466824828714778361892375940236610007077764153724514614524443529585619567686757770969936602823724028057226317875598819509975046584132211338404845631326245326596602569160372597801519893582619816928663714428229224370771508514060867703173308203903133574704396436222757143183583043157251291018674892552943858965899969411983998258664733910309123820665679586827667065880610307335697680687728383074769030359074001183070643071319908282542688923694290181783526864470329185268624015200433969011804269018570819986813934950535600127965334390843707884468232320983895185503238107141639945035834753126714758130926046384916304220176868676200591884589169037002007117250049279960731892698594151339123288439671380004785645047914191280493721138161700319070011943385151118291597333407210355232870812284597850071127588481017198887238257928186091372605347426541113114497590251782898533507454502859821535979763405587397980459079321688874219499821969882711456300588341703620400722493784037356555051052598006781434027435196379082100090862745874307228990999440433247744330442451551314764564392011030128902756515340440010232946066001536814706666281839287740281129495594643698457713260664674116304276218716594608775313435455213920039226370356554638668128398231886719734505057911347282850099918211056165732366764336841468230629452708108980961896884635556687091481480293390550598610542795704489292741875934774480073497592810724800721865740646438039484026422697018967742402576899307273798992911507980127295087765242653388858501483629129850604462322281273872261309244040754295062882804600258081886112832619560755195441723706784161190842028632967669123217807810818997348028457008481037673984908385010711966103416837447880538370519150918264639756194231635866070315821417009844949840700128347910087103725014880773406361085058524733340198188381224727443659211934987772422636762332900505565683635444677999263785390618565014691439515976952358875246592348274827972777423118450884486013726817346320069167038480682137860234067882098228568950450740067996753707737554625001079065442878972519441093965045865889496102269044190596144751744365871744220206465396965089576956218948476276111951190252051098447770193252830464631168065895461429039976944916322392883639039647203484600673049441085284394299957884326744692059467822233178963186670109495594692509948876512399819040263990907004211740921306615573242618296167052768892642134828963456215416894389461219273512760416867305754799874437142991683241552942486250552333973778433163790639636208537929416074534851421468135232622454332204380613420972622281582867977780157582372216963693460119446243909009421659862028621444679258331584956033672954791649249824156094452907980073205217661937964982316502010855159288968290628958521395733724485670529214696883849370615947580701748493990279489625882862138414423268771018226098976572725968595748641559716967479032817595251837463268553688746975655243095055032047164544170445622487531762194582766373959675988051218889492114248167964095323090264217957893213325175563669589382522666997386991698999829327806560314763545021069323895931457176058696716195330728621878438643471553306500842096504264713489344064346778268564200249369938256670673232966201221173932884574422923205458261431180073054683334288090514381240237351864255866649539451151788575408166440945019407132546110812132626922660036550285984947462607577972271020340871380706701927852947921814688256558773068562807160244698280018762132758535035798873614077609087267613958320007880281495926296341292167429500696752806832260736526790636644971031194996556662335809567090348488087057504278644971114992657826557397021980756435939472100208500049816205987207279158742974896041145432895678318272421509551496370554969518152105634486483951284873940544545577429540744694841003264908935191898311151524546283806433039192937263225715078055846272018037700919400504485324276001373181559855563069577246568776781853285202783650714718265016630027224422053193215369517022220410721303975380324246397183716539892811432721284612706443889638077756460259317771613389588979570971372236838750168083215312286576467680323629892407162109913081175331798910409882148340255368098842146583898460725492522905580842054824707651730853286529977382542634647029717651789123895892700181134214953572796416498914173412754437152725991360099317257878568573389773657051575956546124673067302435936387339220843293274897709766608971310082453626803334265618402985089190036865305391939038963668541854865364579177550349822478074979396844543692179826650382985751342933049160091037803723475657222742470611234282275289443317168291201358450856167879442077970073560674905244125527787553752914449178892575682132699317709038330390864147906065845539937023096810102432003045062247050454345980116214961639623378333260912483144951841629423280816922018637383646412976914701581314487737941378521716586500421607495750020808540705120218011417552584960900234011988264124323726093121169203830027259350646652533047095993667301040589971284629249937651828639070457644045964408836813421957153735856212720759490937876591792924965907269842361178278262968661786897307405503400116727787575060052873239377110614548993904292767409313019121913668497491205829702945098612151154853971128024789167913365119490901710501998797608134994183236610241814776255294393041845544482309462436319827095239352967173341557789286732922200391317151900839931209507227838903446456591743003503178115553035936414669286821061881621879525653025108719357155663595362774770151386255915621348148302959933522438898502873584128569253134071398425799959195503238685626314059059462762165958079071512963800704825667868124035120051918915509554001400704909388058391476001002247563052589255775703551171515732224068017369352716481957815489191577691697674558578770805924859387565898161125229625473097796345401004676730206050138502977091128185672747724919182053742926424765959501375521541722441977120019447010266463546336387331130700416620682161428508218360062900454942392437596898400165779961284511630671103077964325739692947481261763497040953122812307708743355575391953282019951136697682420308116507043943124474901848470820268664297175398902609322591374695186945835683710325637019547581433358497212936774949148154078162937519628925054069313355257961878927469082126024246557488730215731130431933783488893833379890108563806458244574581452422238674672670865635403812814656240567971659822350432693412282903098210929559194372515157851941707286267853176585134320564585707004115438864391063313924109096749773356779744111593782613739219044015303358616954279090896224847891345150360778954336363185936846109992845378094555643346465429443505408532704102396384943223684408737967927857029447726262115601094459672134956945687412252301016856237816028006288429908516876720601039908501717166386398994618278310067353738596163187430626899364674069382274794434434728726042232325559773127053252760621728186715641905316650879498931963638210708131921734865164231599074535479063381957427962286847106310929497825087564275880078643106383769868107297865463490640906636714984660890625228330849757530397057331388849558181803021582239824902987321426780723169805906288389302838974855596866707939020100479562293936175605190182836790682242419238505500893911654909849803802441536236530021939302371620735641748745995471420240520646027345213349403820656600270820892340272667701510325844894123496301547952111401349924386769209544291753212193726624378581064856201399350361844284440769927687952973784184145519013740121539091202609258907691905359796409848877513052738033354063031955289799434904781668519621374265570706189815101797016606136268304795439629951684243094447202155786611002668760452998439552463232692125877596491928804671234661095414316719322166451657459108282706096017963710226766399424988769294418323179581843664203355104080243302659145029305097815520905990127718945013087420644430401336308114618731130849889432963910813513143566109751157958577482782975456972220097910045709809728855728679068547259138929931609536345622819143262305585759607171558411572327506565592928888560947862128541033488337289069068908374334371030783397544007444955989790263997352157469979784887998966202702159815958592890145713685943175814685357315826002799169860367180929847441132948516482389099835792461392090873502304170584419857164241134369127820019098813025562595311081215984646010080312260762567469213032604277230106320299957006502400367309166821392909672291859387962751902034982669100612224763509544915403659164673537065550321781817621803681759279386964053454638834686858637548853688772478919984027675687809192964644792227762152297018808650576197214742010413144705743662731933712925468161848721021423525618185873358434592256515388188059746349675294382116824364467430212891297081025112497622253575563082092263333916750132138339839105758218495367487281529010887735137945023038231759001397109621252098593957953714459138294681964955531065521284898164829496424973405070746310810460477999955117506676881206940648198000221989512077956603718066332066612736614064772018105460823257797541847127409831866555791845068671509829981081145785634407188180493862546316975078564622830455146625532517365108350341260096943616888099876841309364631063309582314400547515773989156448070322525752642955767248415098749137717627089891562155228478726990809634352004712937492147470748906320103658770663320836879644106167065727697717533324591128069247127481139323330516963243866209942889510742479166158621048707885420133792117921378347906663191908697230537362875539976368783167275997614628316600839048564225051174694902672079895025662659157635873910118262180917701183824516603028477513613874768759572876291971142949356245297762433070438054280753502534010721305888149159534152315867127956571983726068895951574916730182999111922974005161111741242513208782818615490898392824173315939432892991230263794250502538682626901075184292523881707733167395213012237229489960116997137330267917671902717537749804414222321131666808725711286334040935862782910061216256195386781688453701371933977168882691175935612710459752956607541226548798073397933673300000554876591222362120781891148243394789751180405638931990478116788252076229632507114281146077721639391552329563495674172969742390686631405249786201177833528377863006100973878811394621985598368027865699667489418637917149551449265859321652824053882105326977492283677896971930105313771906993820899381077926838171088341844778543514233534243648366668298225211867727670257666432315766220961547573566182900726008294830756632084721654662829064802151398355064431187648427389801458824037790074238502970357267611276554059482190082265054839826708256569695371363669033145642430088908723548842400885209788640601228476412583716848859019375356884071600458215505938432268144498334240360058332328950610781357290459895037235873481660261275723105246497842237221008874554094625466872439171321562467284923639291018322317010355905736330270783755518705438180318565370885571895175326300600217619698591484835308672576364011239093794469373006541112786566686993555285813539718933434055742655635397192043724134597868710977865106818276373516877672837132898923244249598303645072122323795961132592211426254748462020936971378966681903256063351869623805332080124411131704309382081716393479477154292862185280501571447699617030518189448984871523966517352850783981212349750096656887202880271557543008403083095803079589739379708761068399047671109804003253379604445300303600670434312977909432509460489226764691661841046888263734116794133556573948776822500546379572848397495369019406795286079692205260063774315527808250096551274492674426805775463531407196871720950498577243236375942682190085145670517896424987414080250491612335777943103472622382026353292564191473241029576738015326777167179624437935472401903423768843162186516277559004567040359936551766447750755394386989457291923982412735502065589211607655430671386409198063408627450381013724169794566481922720404388248610986956588250387979259281095117321604835479221513801969572083472574129097198766992930043733246115185134752277977919572116540340180202413766320163629861201674958921824753265333805970683168343354880623836982192077519914747198048185950160918542848301432175002632722087653265678576541799950939363220337114352370517515820598460701853702035548095840110225757293060853800882570527452437499768029792820654988602110439219963049663013433396502911825340056652591022242812947859480933017736229880390645259152014269244103025160746497622959397789186776947459900082196882893805657326186073852822336362002484997555050022552786989312542740983273462182036919806024909452808038387125467627232499784089656857333107561846187398046701788487178437700629996168943051187293543750720060068104768900525340567864665479428331613664987027823516773655247181420493102951486545580444325303565767889843526101554131889562522390449193009034545650790047482412305006415580527454250517456848417865881330339094484185179440792874823661284999482862363510374930750736614927427277239148858723898612790736085975858291459134081028986916740315562589057251649117568724449415892823702782272980014929621809022685892220698433313746335302023956280230454183970414228707971936644941731880930587085032227833958398684225582631914461990670088134316477949468190266983191072198167632135493286158877174449935263081727431160050573405348117689224441053192687815240528413003017397097219060913127461309771121533128545690510153069213231434253578725862129318990221838461888387844638313350031338808541700187660411666171310898737968688506987739836722117107991849277198659899653516495763184571047280830668948766872815411218444470605962346024721740238499673320240631114093853298471949137751173690992475511694560025813707091207626500633409986454205852146710008894326931370137215223539028666949871042651993891759055756184796338304206664348570285933074848009027189226198854671909953403155677906092150620243232379883919290014943741726075623883696680151891330956495180881375319352831636517835707730437686641141738687237360181162403722540252863460921340482534636380250324368495921510815288305688977722153258905859127219723474005946675255437363800569799789451175251926907299240760290947083517357157610671715226530710590002159576314889269817376838469229204723383819504275121690837751083748235522667948992432212458659795843563011779975731087492707232030021480408968695639235004967709421018853284438358315496218467979234478077142466723620249803271538013538756022016216013822544228932403038193083821798199410458595965728285454119751616862922582855872825982921777384002558968260942687672483354900177617076238501910193517522999935992133519935382828629383144410555245303386700046333237873403319120454643280730726473016579918186011159682750438302402195289615637448609730707483632687734853774434625848241171920903732528883343459987395440207434426468662036259121897073665842119819816844892351330886617150203281870457879097808949349412278610255201545176235215044009085921967334133198368675375302467551420932391935484893799123946171074282028360090284454180751022083705414321283638095582750931996658349176030615617642586830033113366663911547708333787106112545346953432327577288089257592070607742877707264839344338954434378278920197678356684836825457940687980434339311051849641004575592327564262832740164633321012660717585347358405918990978459614030386008004787382905320159365984945106966286625942035686000004268217344584447867880845205807983952510458969318983113921290694677267421901533871093293817136488265149147703291490165395228435693418135481430888874366406769329321155715307829993336636290421171265779498411712426626766474615590409381816601090409407911534117587372234908948995118335563369410747036872989845987195475493217466748644450409514812193263699453174824488570816609173184007441490830605092620470007147950827369887831106710178477968715704264440787573738954972813012684559520665756972780204360979894909413422415852658540479975282645855243171964641566460428923395089912919838444176747231088853514158321887657497667920085654669002701410806680274178723106551127847355705752069386812624518210430562156117965302094263858051735790450055413874047488151187263428242353134273305143595937860354025758841145060665662394584223958826764346104844667202514859300820720913361968777284083673650228539222979484606182374480190519458989748131849840920527515437204308432033168656876823079068287664250359908847558748460899347503033341143265074145189735921086727265786839459633248715574501182822066119077012902882862348700858759904938203760808955996531539994085112142340034469254308518329013346235116207610065735785548402928846267049788352568016881897006653996510601948534757355146193768530726760551019368392215750159300072951625265258635606123519471820300751801653520453145910653643462935207598980923235487045361117880815271853037239126423337153069545505064189627166271062503612529780030942327675876971656818213880067361735836087417989195168117637163012190086377774665525696915766022593584932551415890104271285402807329975886300437302774130648151344397227531465301570007826114962829100362258577269848101944211739232439240193313897601748813703223187467426018049668910808034303045249526790849240793300957948738534345119174195287339971230795654171187895695327179906720374911226637237017886677142144137387367635438106299856339660208388144808532203254080303713115587305312008492819247981020366400694603106958798748960043408333973176510358451997591453665397974961318387739671972581132155535864274561485115499105879687854701840595080676599426476406553193517564816900051232766208699773695447226998445184748936005677712041157535956770835801896664843814207872718998654147807830725560377952299533785033224162925465061748905824696762876297389918947164156718091470809947166960612857078173210943475436519049712693003123621498681828462272916085678728237018723426485855509624068707998217911171438238735523213780805628311116405462541787361022719834630969046811082314931247028210978174103334080598865800277945118492723911857901660290376139504308473034521771347789861081559446400336966238258312416373514976667688007385283218195549924406819737733004504184719614719325142852726844928283420393475630532408369231001127203991679373547223410459872768768921234511397366024044169882249734021575962000207159901666274389756822000753812018948559150524311083264650453047662243765376381359571081107827320587041536277214322213749047966535387486538373285028624449463590884924069098830113427578186582648637613781846833351658715083391842960043379949431014624101140688699634503086642035641994297521692249089580916324933613965104029503315807803848694584560443158352079637666721506031310659002078694564811333843566373903291471095414768953605478604164012760046476355474897663629626640822758422862990224335172493706092306270287979969678530570606990610774238134007754007691064992781972351893912416315879369640069522243354177432615040165130945834263809869970463330240131980947293970131786671411644778550732907134472447845991877345947784705130768433924793561095933536606292037323533345622982682204306113829336063684151648758726038955946776142236640651924749473589502955327303522310109053877755706397943644557807702479090760804911134620510275547805313685409731570175672849431525572286521293568349898539387989620353440976724903760463371509856850788092197868816065958705484193674367448556761122592211806226685614277384834541752382934728558711612135148600294618497345540102370883442356815487022187193561941869695887063063456388317252668745437612828393416547127861895375895326973123818668454139288425711495282344163802839784730700408040787862507935870035585532762674373461653658550849009984551849377567384049931259597306182179911668970184048469086382423503664108522139865631861676619484032442759179963503931588704646674444041779686767417801842404815587304399248891705644176430747263145204241839320554341484225490887725646532616329088454318940381817346812927841996785111140531523447835624818198949094529745239205275622714518912260559851729189585596437204503053133756385952492811352669199220912371978035443752617340500857890799956691849009614724516273044939669040107933173421819549844831503772111745794609192861105440591068483220047845288349694925124144490772218285247597888030126005416119965468799833800577076508043675526200164374972991571389291004976669240229662628002999554732373152754324006274638219815327326124610308456782535329307335266110173475131701506829182957839632478082403593865586423310531161870364003314209393640436615175683702042142991285318626478465110945218531754968894116283024777585177956486042594045792502410016852984966110866757626137794044057131099292722006466136416478883235259379495828178087954816686498046309644693326615486107956107442681609192771176673028146944187785487056518460918674699582451116896150856724373059791060013838594372144921569856809432738038099635328285261486655897947765493829405557168217611259966256315060182607946561306012169613532111184020972028329318341428897206965869622626855734271597938168999424986808022753344498089921845389052839834651548243762325652950015316445722257623685921748150068762994095151484292097793010353108573622716838869130384617185110664732882104506823322567720728516283772049202209888565816741691616061861022675838940852102024408778994525636848198243443333066739359263742801113650873989220159905076018850666367648456899296008234503572533677476851882420530936382362797395765593827103918359227436320796156937915565165927904321697950999585882082549842582571272824653783981168862824510497216918988167190007689803608120325431013688323108193200541508996232137761583420085575033643893360131276444085116683270207358506772421097245403436395379779098822713228235107211414280350235418452347845217471973104243012189256903860923180004097776252472888543136597965152743360532694302020931282802417451940542602738627488874511013709553576382101910195472743707512906574233968175183164382368316534022466474695402773475443157105917957639143087844054366573469947955784917967579746215198409424290478764716010254356092639168230444704676130289364873884940528183198249986695084624172650980180853275929554387325769918862780499191038736309351692515637439428514531012230276050082358196613408036582875876793121093511084359834660196090597745513308181743546865609246450264068754121558997660470613024192916185053850143706598275684108852704723436150677643116882527252098387351338504870495940486750057235229204918397117666253383018201467325960185924592777724178519426414091325742555324502765722712120764418351483014693644189783928997642929756419131399566241642251644257347977980776449997931238467024805838965521880982794350176199418317485297467832845128214287919781593531442613718935255152472009845470290464208606845967701207517014439524119191434378228783107140391652773974498413067770257874472486682391357329432527707193133182856828548191955737249482312107477600796434380523758798142173292777164328700809807580876824644331623602694413143438710544108467023549530529914642496234064978737404616958886188582745683899410768420720403071253723797837642372233238408694051750384168842432112425663211325026664304257644551911772037498302951988708721941410602513138342551330315969411149850512921476274193790712505704292873279817753887954622966601812699217860749574289058819697680786670393368526987837160651689956592894581315119136645449701753440939526270505606699378027095861043469727583117334759952341774336891640598509360864640421722786073328392956575634639445276183722090325453834728029390166273000428079670937842702692266546510618594916439498635366223000343377459081083131604687835103815478015972067866101664324738635739459195921776999817080498204239896618508941107453713487601661398791490117430333951235180108406363895320184600556956070126063681556355434292825441950924742498153243340948216987091229142001834261010837633760772751281872515198513315793567154426713046335425635787980447176285516074468014169922273916967156000585145350145596258293483065448552177489336743255353404488233806904703215654627430114934657097475870032207668499941482236740397953729310066722802985009833191277566851108262717014733116776693834367372171898251502212295124382667194607966673370953697765042895038341986630702388681264618607872472195095945844779140598504276177766207497757619510792411524348303192120839914927623180196363352647296400536266014557882083319082599139776316326699869624164916970383721889279793531021504381958683428045198995700360783254660000926348145373028384154351311338499841878681367986770363388773702674333987618090379669922488202666815706608564857640833981647913971383694260544909924789034838936961645353265445118228802852197445921256681651219781523113544645666963462596822696925120332604873962977253106120324321452416329239431240959632900479240321354078343198423819801146630665355658391658369219008985326292073357123327429102259290238619376781532165799232317015345153143981406158968766412257995056994755069407920047047252515746058878207982467425860186137617597904977264690127879258012338611069499627413305891034443368372503023760977504010382508485673053546158996243223707176143603556153536447236757379940111664323262675857385857092296872513512684856879562341891598154466256065853027579736068738398014755819035455887787891335526641041187538868687189881016180689619870063705987913803399375140892729620464145107245677246112267534538144661984615390711172174811669002142711944833114938731241140608560475193262253058705635360653220496261549675290426318687587347808818262928722566129264478185022620118111523585036339950809546187986646556397325384044322994778622362009877186848931529042424844626567688564394263511232077020250821233330836992774377495247750251027183864657253977759040990243417808162151911062334745667321701510696328789121230489327647642897574553917308511438580154350323879446601724907102863553417816425268908404285461235895683757236932800481525923020518025670324155644227511684597826202059140208777148540700700279451769090253805115857056379962481270462835960738244953708266706213305756812332241705142521443283955174388659042292126920739634055755386144643671516506254964665587347295527225165911936989710657381840146829164779765197341804060112979177238025773758387756503660915333710447637360657016954086502225948062733349496953187951777416252282841947316895581150287800281686081828143279444346260953985666142397265126422248410985539660068100220831451135490137911120681361720571296425924235703833427102660558782709404395942560030507167475443940555597226666967823297690367546264567742661121710919132450028616018275745443961645183199154176310797469253938497327787415278983078800690204491719274547454780502415377977165928810114854013562441302323904001778117777138280710688262392009894929291905473278482584572289351280952875756113422699856560510438959196882121956532133684829437965515666169084857253864740163337653816354809464348840028811222390020173738337991216673124351411832953037340291108579981081968796426482067334786174488682140959074208438265883952861264915190437037619192743312140869558646182228116093991324544192810362179524431493596677462622506366512571467243062087937255260087199911277818187131414822959419391230224917814733199330456402602859493450855270128752377465191776327768755122143982504078214526629329096595419525116279912624219764794139075655159019269472883693672819893934909287645659742161936857087041893990374496400998985950534442135052681607727035954460514373988088946813220253589922896442122135424581075622405978174112187262924577277795671103810858861157688163329665281153813835676763185661201326135173308438159298951484024993969093624191673996705447690716411521246893581134085894028642411190412164361550390829859220098168878805721260351399711104136875618940370496280491156360890468204179368700069703061680100239374273433726169264733435227488933370875684296250847530469029128600649301975640110392006617600419570337074109054261244057509746557151667482085617806418045344944658027647160320556470711821401674012865740586007210070622358789323711159920492298333697636923230317357393859089684307785231185893012171119130182305572579250038052821394747555881674430058876358063592315347827948641845688968578382264557294415951311871110987357923201992356327945074611039600684362706018596571900399257057015153706540320622859514253720739676893236989699692320534192374768701808303440476055488947770958737934452699550734769883625974136546839184362101444661670021978537811142734283518116505042953121496974835792377930149991251048312013596184552391506375957467173244562158077690021705793535206859895576368289450676855419226986169964691683394205647087631615741588988686200809558447883674534912975803407676075896608135242553423859929243670117787612618715281030366004376744758753430460795827257318489947985259364503404231147151802912852280844829347148533767410007374106763303694975988310883591717476756833033468762228492050565117178501377006373780522993754204127475797289036713850901213202438197692179689163662402813892626472478834765818648209963856875585366446797426035058905854701901252956853976142864709032491473822877057000235675431506246710615845943932912334831798572663347690149330343178935921706128092628803830945134225422615145224345979268877846598095161102242060544268108414207660339861031828372383263355242255185392888743225347759373276909981886598489700842073689346824524087417516229587791210069514420149123014020574532729134914643042366220962507554967057960225487436022271198154627965006905448013832841073735451877673626947488204107124768327287629602676164666810770246747067198924152840636772700584030954318587825469532139603983394323533305075204068934190239079324532538379016866872702758688387661431007699858714840618311881924294103088467532325943864216081633611406503834507834335049689342044997841989707967844331198244759396259797109373564387883456888120463076190036380441924807650759267635033426635245031649934501103136701089897712015167540808220775846755438145782931607660519343223557821051219022672805658853024803001561961291102779803005991604407330653381813597245273693063867422391044312566421294016615367188835022408924406021728996128176870489652958532063026411116127308349751492708784927762625045722521798861895146185576490223405104515590768175319864756313623783677234081156018666252670564602139116041785918675240689648053298765976954487839517196053084666600317509351258551457725894793643896467857721566853465895136783506601916762683756360435091707016146478969306076540041373083418465807600574893738658352344900097139444096636513469715770369798651614402755782429598275764784659243529118737405362290864396602120443947175780620087564457358922733278220895460750104000366145545605777331996911991999199620112532998570139225794390873699476024495730814940960874174542455730478211376290983292325615579317164079573119686799290513222734032801751312426310095937143041285674796215023993909048040538160912793751119926909807769450211233773619241223699787800883187274684926432663813641057790423052539637190430002285438603904858357646285954857898363148473501778016675463433085575775545517366021713849398609587086943539607939147101393776983005905505254199873727740093002408476941880275116420833988221014178630297615274394814553677414963424770547277381898946844937050887058630305095710934420204821392069263886216058052906065508658192248856988084017160666454631934383316505731238005432214466886485331805656077466539088395068154936542561059490790815841947275454038765391976394982780618450542230062917711833299060805236746939223469090679339093570577443305292354866157855482477937432916816902665601130003210723808274388161091242826702259445391201235809693182789599065493181840826776133588442335370137507198179523592425282822197854859501321438239212311825075483489172762290797478727832706069058215347773020402706258649744468516564313469718225302141662287401190172815488844998460592790867394843620454420786201829071082807308537404256599531288843749515435994165898219647393589055506656730087519917758169596018568581542942671269175447778845589337174672491133436287447450128624807789386423438730127693681230212377129083889404388024197802721033995899805933481959896745876088072264468176842106726954666527158244422354521470256220804725082745041946575726647468712601663567150901346710803134555835970470994630181777532260096905605878813272871945706311295350723476922951786012744106284632971341645914426417360969183884434717651432222066899509222145088586001878027521105934757740042153016743826906781709379298957153982690173865130315327969369979377149997279442813618417368849329964125642567174984019842863178337728414421358811864908855062593483836087482505328082730915691179169721061517783696106190574304524223580645452593412594841451105971552864780120321347589753738111179032400946622884549904699422928962204427396168285079352030984290232294579482646794436069391071393742748282174012989649712747045788991611257972224230455068178538501739458420643275475800737495028424097188774232315587168680483731212150757958194104244571213736412559985754697356488605522696394463419697746059310588882770764546701148014552057451714593554763240469125714247523746705695285557123935731575131842775664291718754518428471608279043481804526711809703961228651687106810370375168524540953555528884290035271961118020229270786484518693935537439842325312563260855895079417317843356325358456157574128223305939503290486616317298140408655827517533444658392671049804332697265321918563092764610026576772506565073109319648381769961762715092861397703618395635420807401626598264938655397865817161923312598030330343746741100846388819115013969525468869546543813513027624541441811293434458276614857242805826385392379810187863930047212783930149370659871016428262027079114160104292543394053181429908123817391772058754919111478789153104040473664912661278173788503353839489072200979040859219958756512242185604017239715052765817174087812761299624983863536031151965810638098896379679238286385090860863143275477395711735679604120583559029481916635565627700418512798958733228788224890184611408169934537186813461745264366153695675205936052627653127483483643913812986668430969266787396006315163497927132123838473481722763277844801043245871531475869195111360004091619710293720909153644495667760866251835133026010148150260659606910807061881076137390414767116583756028833264655141759368394412054902091409755677837428978811834264772832528696547057931504502875767422335120629088498449895763303581213464130510435297346293810177855004686475698388657443235199884084075494647413470961884849081009046523146487012131048656197892906303796641009117982587635511425354893759714409829156551539050432117781500878676847983364249706999625154404155392460406291708046179784727695052672316360947697436312026730399939402517938980941817048394154597892816146823469361075865944960461475593004067588515972359531998317729694685957230085573639203441546264635226408969293833351994798988106879028323900138610974279599227934689520405678917440950888134161231535960197230714990756408995170630862853412897337322303726333331704505702545061424478968231581812155858518082819040100342814203756742265857455057166552319515380681030642581081248779342276846139764739789428607184826469009369516840633825849170000317254038187209423239369322242350548678170671608980720145000635564085996548471968867553234004204082085232264535638029601412450922162831890061983828169743605911886850077333895848853822984653911790261219238460010738500222366808516607059301320705404736966140025566550981746887578758972478873115394489194005472862618174521797926730065464563628862919786156535718382956886757541591433644829258544950826101361510204578699006475088150558478028928381548647959747152624369779509967491412756819480601350408469254173821584401866722686687910613625462251852519734966514486744740305090676444302692003270075849968834256262929126034720157483188212674221207956795215470101281938480527438339967979527851783559139911645190432738979548158109601590007019142038112337455105303352307957445139919685039915573551987058242185100127562771828807303352368768054594215561350532960522969512485436494961626987820537488100671090945337917607322340367337170919785603012398139463414659041920631967194739504004371904537300744242108286858102635693892170932973733936016498888649078027283675528069922219975327415097918369383933936196124063147951720252082557761455367981301202980071322271299448065792522158897835486385827552106598458615893158050738220951200049192417878053182398782248601557223495136869829011913901125865785143017042629046793304404309143034426514884054360879865553456852394708857078688343422104593195757148581177300588845810084328392457985813858848797657825475687351185443684977821934572986229043631642287023590046757078511429915898157137417094356867014674260428621143991713225559870137932651115175051064550732539199138766352814208797532340232050051811124368260618444858957353929222532703777932920764040099538131677343742247839695476512794387908240980009787666529888650187674552243495227214603922966854827880180056172023358958776575565100794687673123992470270506561149762890950197991392935225853636795810675757865820559356800212334365751977497917640774612058062804192256109520504672014402070190798989601353763815045049756332817581130650604346783831630935456253902834542433044391654905587446249150330828496830652180198513366252214949824708299581155202008595268028003142503473011159789526273227929334508329083682532142431332700695820554258526674978843742584158971449050439926226441461695403274090192356446440374738053076362567715734266112068027106979836976154259381813465452251339191982155664638615636594306241651976123578041030148768217172172014711889721039441331478126357960258083442136077691640147847514079186033839435726652861229234260034340779604208409122830159751466551534131458056465906242287876530751476586940828423360118513314942650453376729540446198272070831868347351503387304975433843903307782464479327559520011271665121205553192471470765450375462438314214048374803359461080121183918799229926542577260910695633712676380052160305855078477897690891290919760129696494961263972813265007941493076626214326637314607419531130138119858810699697008699747845128085282451250338213101108974348730519930431188933966060087107449751433962930541991458244963747793854420015419687881043671418012248048151160016960629115463424776376921381962144740013814028652104198355570362057068043640287531162805260394317233984071788291597813738290201966799461559717640331897143416482781134967136374129321632455944123951296561438643075897760279343996736824100560216627464948528997112073957342559905671935782830555117798650527124264559715991026039397706581084768254769920709722744665178537231259077485321231407107413597590326506902162552914654088496152367955921809281973792444427626567618824716191462166602294827877887412175197178611786474250778440308622264218031753903707310642496134830607746089467638027160165194973643377041855909369261002783061867402704623991287479905460835617816446983905359773018684447898773714054764372122771270625307225792792485625799413520154683264403898827070231349361997379412614583762801966635977466480064856254299422782500180538021063406372992523786108319301403012623456589440060386049006851579146790500318178518306691266061240363986295752041641462923334569613713866333100796251323849312825398216789885486631747562462558425612663742859871043073335590440407447715329147073271410151802235097641502431394993110325074695112917823479237784307194937345931124688016156819387083534321503086278683246838838983425567393568171918430674062844731282855039683933406649299468428891173263040223722305604559540307673128489129581108930844650351473058211588802447087199915234735817018027935276169982545916537867284620940210088161674665982547759652946303869535387252458096129464383460274799700734227186164993997640351387646376576656392191640315081167654503192888341079128433722248146049279327676889259631005187488317656924723455257362478843751787221939654716906263433665612432743108668418156680616887670032448497760390606245708007339616176982239897266676575122173051202829509487878422072507839207683093345416039084684209945293954708072737059153115447751161739278791128383877875344943425737785713547676130188879712745106534497957733453663405553171845050065109391378137906798048686645045565320557041965823214998333663651247310996316287494136352738831438060112830532975052916243731503474533554916675641611429290108930961081224204553566170846155151441074393790754695573126799584630434084129794290805381293793003618051663159186592799977926100856534637676028143570874905523776943293535870573740672438279793339352848865009175434155668032031022408663267589012374269586581836915055032390043899646937974560338422094958416418533804994323625775147967015279973765528432745313995088449267763504242114213750343149450027810998821328734137725565149220948947527640779245129663777458617761458211634166266182283194594517512157431353746294401057580537754401129328404116649951710977327326759603079572876021331638263857436493102120581736878712453177926255916162868560535758288360245919553046594881972180971757584333728918377556065379236083753725177969463850188797341562081598337741995531711857243449419066852798590447085555256399560410211044478405289720204168534211190469612294107502366093530348609694548421913735717461862301649260509096799652018883826043142406378796111814064653599682008948476881711065510764971755764736934656754272711618031895463834262930428061087315484580351267480040893487320718617149253444719405311788539587360506692875232116769541327873292265866037679583068231385245550547000854632974520838315571479331548166841077397767909457808599798680503461719117837769415360895647506259789950235629624316181076842483296334739509322549336767183227964825693010248323513298549608387505348239436117558412472607462241862466453644514683237697913613585032231071574413835403581682285801323791683798313275542042941513707155253948026882549251273001539859500405079688299090983230765076396139949758672128328648363535982794388289805493790377315888794673359138223462036490879882898895479184516156401971073534860032624166469691765991884876420583611113245762065226922839714953177537212407687543455229732974374008382235256256063490644987815718282352930138880547912647745437427761952117407690787911683057799052520105791333555817648701846655493112665930928437693262009637236071090765680743397022304264087252985323237590562196868310662531110914536914205180194202269674403575390315457788606875795516231521548713937908889827554234785975678723505650695910822500850262008891304589958131089090365756935240563854980231982510185442965348160077517877465555106087566928921370115569808256644377653756348525294378771693498222908512442977885990209935325385976204202434326501344238589853956053511233232622144844769006572786686295595827110043401364418999725121219822968902398511007893274162638368413894296315166820111066016407934294245047861863571150426020106023906567487490449428591777997402296470507863771917882428038480950164010283010876360914110565742086501890294260856448463365966992155585578897434865208720935709801951416555484918568405908594149185909180958097360448140529967536768639263660576610430188765357132430787487566150908523735950967028386574027159734207690802946114132225758396038756941245313697368634476902374227205895318548075987254530000082567782505190418409026938394320443371979107190014894329679226975111167188067992722074408852293406571309090412096872555795960380674649548689222480012598384751732188117386542074675713007565444879114895392000471398522995957369084867096364364256231250956309104900677187274669695009383234492774005079300415635577435120341450951897033082062911970286082773974404198480926474833021598625120233769540071821462094800172094146111339068227008065864015299127252103873594152457223402950977791727755210387308653939306664808889247119330134798275794947536192006548605686913612075720948298570550836839811818874697504627028865985760592035683355838067793161601947134819447046723544176513789186679765998096001935853055927524926900375728656154293679940948616826916147293441290516587931499392785555215468444620363515694043899968172985769594687908874711956695050312288605956586634952473150835996061897156046248080654209826395971512188556933727314130031524279737895210768712688785266632214123660600655644505910296805396676556317762773091678381533614198060032928318614509531662528661534907890330745907507395927802310856274500654439171977464709059911517144367271020925654140606553479588154347438342660377781234904415392044994324445555981719300150867582895889109622847016276605177073292763542498412012021562342940768466292893140779929151797611316976003082764210614908498846124474398767275617767171343458892865365249298876751777514673887254793179090523742394864667277100638564272842070343856699216211684913888850366998696882714503845566628826744343177994131703892652315723456533208117661370384298045110036256859241171991213131413257377323075523714808929725179414223918075815027808029826622976948121888471843476986793567417944572663521990592506438065804082287907911200058458765786986306625607916459022782999820734026513632328726016625649302966240049757183420606488624893338494077964422559997193367819194486904996668967093899722470904594542875477333568717124681373421337291596293237303540002600292167752846320836016984837344180951177623326081247975283294149401974975043787545254545208356883713969923261415865768027715414723413335021340100203114556932004232369834991307705495849819716434232568957442852065106722202170452306243155522697618251043927647863322629816949931333543536619917921484724685097807490266597442732560777095454415956336623878413746769120665835383985741173524593995953845075438222727599251865875036945877298706541184511318315801355697791397608788443761769283482121684894149538763990518707582202780966267718698528810129985826849345957405472181268420725024837021012676561504490483643224885131175437141982701835343006097146094131883241645525390356471333591250885493599309994123976929567664671404481817532776744218964458789046059293957802394277818207802341532209862849084881262964296183466764566267553211294741471126657682943381412387485286067139995672708870799919723493538425043979197152710819919862670783664788691254216189471083049750015370100174888068090727762050740616652755677998973282064883734987727150693932505590143245820758274046800743190088462936139861286222912053656227105020603759428382422024338443421770362364051512833314466271362069951556877857888863738584043395094992821694048299825795770411900459582116413071842119155926050745934289131173676750678638479184828601206864063150847455759485985170773050756904567641593693939355872126674626890663301173702331534706339238592887810272097455861151799180051344632410051103192004786640096984579072683778916037518183436437738849842126620106475232411896392089398162278013699617962486354767945517322367226816893983283703825458054256686528386364911282412708704145520831695305609794960074895898744438655002667369914360705963012798287253530032972219671358600029020724699414553772063701181194198937518039770982863471535912590157759950537540831230540605393075273345559695332313625928974359332077658336499701284598794066526602945193482571231838118996081245661569382781227179846230898559659466931040675939760424053913615670634019112606644036205231532363747344740126360814409615126798952025052089674406117806612922141254377000940159486086238405001270853713882041136933287824256190693301028170691715283927392579036044968498603538727396794691338386756307100870387433446650069192389579277363667020775148912585155779634360854385423161408469186852916452787707398169779253406982597273993099647478282937850464168684074224865126920279195876910341702492051205292603528817787951961695280736395079057506802169195327290427927617968235275020860798936499990602419537386968494855037109291644125825744471386448209058034756201121212760856167665283558213037018380364634383656792516529977715997599397306693201139497317612650848882124489829538218188514838492803311039909631701382197285024442672246395165555538669570144822935998064123555336973652886701568682010393542901377085030968793155301027706827391940591879306994202362519656249160780911750593114348052960224918052485986035829649932658869919917103353558661476376266473341000808241808885151468827743435436889279467784910825314186677308391762116867421655144328901199080818804024368203617164249997509540173026727140002080214964309728507637275747714258803993246666835992483900214878115470423773376408709333916326062385268437756321351835545139111475409848988945834830142772829249191449846940195563653797438401928485829588969169859246637206609713624098126812655706742512163052197909657799113627457067953988902518999132844845535005682646871877601465868438472718730008485868933548912781460974504397259711916271673434415216439876878622508467865304827779321590566674569797984216514237605419215446530102714897975328468443662777954169315322383651359728998533308235587723562598546301254626170661453486724428988132058252048842085201074258840227256998340954426667507076582285652656460281711140148071972968020872867424842307877063698661053417435377946290693231385103002787606443299253867976865568983721435375372871283603615017314203856573264931955698137366358319552635854870650184905528456200177255967971139864587476328270195198377955978954739621845184137471149345837147919195562089306667666964334282513999323097910256703440152043163758046643541827648073066427313779978840964132457212606856693649318934322455678248132433926173155980609039746794830672735810350227267406556979475432590116283242652072427588804724923158453473956748063599265183963666991977677699016061918374592499659235575215389426981330554113294681186081987366367721979337560174778936761884084911786008362289355571234327520315095093644874549227206484365545886013724434943462500558509081328428329024735093475837332098562188570263992844720345965257311322665748946984546315173979516613237445626781910265308810747706216693129781399817770931529542494162041475563068258159596730415886699170009623201245470275377850164930146817329347499950529555268135063899732206563872219128816351642684124381825445652329387577410428408347158857648763364458966792929726194378515974909294003198307390382866403765883559914896545178723868730660526836463916607770930245443986024279226306133905805606174822322739575887806974155748539569701225370296295160718743208731853908310130080612474861306118956993877769430883577734153368452087031330157493734155604751804545971623187380877995187708096300828350422647064273552173036344847662489716709638902154375458385957368283125833992619566113255457767259370346830633303694730904460705165426838718467143535434890762890359631746091294078895766951648849892188023052872063716817813906171575531407122093878929817974902617716841710490553131996778800614713947707742843918380941707644467739059166642005227036885803348304766111370815396676453678860576100456308053885722347791929532372864329758954011600276637501634109591255283200668536609722266984907007401821402813140711168530085042976615759794519979775500498334875235064882051501959536342697248305396558262267811554521437375288967919920904995497983809573789454258234822702751792174680634834561944657844261455016257375770769768150771798609435007686624109783756179101379671665875060967809813820390350723754389989806153719677703116072984964793789825574419913994375727010164224583206246432207203544843997353821707130110179920783072862854097400499544264018092573155228517790596084582928519970145269783419803629911778760818368694593515387906992424570066096786365785787224612785222502559282720151596179623864202685801538990029889627842600570424434965482448000993248272611896587227465343034516983368121326047699047205605235232330317584803293783478485118494048798744686909811436205176770614797780130513321015358275873670487345924564968927561288978872135601621743370606367941992988014610029999829802041973459032006019449130366342419613296220784465355639499332478575186531696554534895267393404205686506654094467449227558369347865650449816175417049979606218484563634457748719907860523046477775789365318400883721922007147829898805801022176457927888759789697885888449143416009273803774824187427881629329937103374082283012498393898805482118400058497906379246279065409770409201705056238527839337947100287593823890527256944905185087410205178476601522399874700430974162839642381879622951573674359014598300229513020841531245594936700409350472132259732544177411583366841967754813584616105126649674709413006521374063968848315709273953208680761118839345979770912063200981228217287206090488786770442581897002843499679713519773316025293975261307045133580435993284960014119976089125248185501420278377796197337918600054337345819571558507002615739347866532637883739699665376654209314326107373358864206870984872548259989799025278247164020769239242385492014866426739563742274981438722152901804534279674158002081458460950181648873956134843759483535158725378780108471103659111842195234088090269261144166014802215282548150789556071308945709188123768049153916190555375337943548167850273942831259637799491701314847209833385111006566117384095639652211051680367158441172538123870685025334592909855442059590156084023873005326320354526504151935599303289992113766492381942258151062624218702686851119225859868910977600364205714444791105934263972513166532815008158285385807221767657773842094148292569377777525864333429535912062438875151559872917791745761702316249332723040612649201038530484657461855872886860485600608770559818767431440007705299147050712873238050603474040453308054490374142793591653078320532582209169543050730765881195293405453141530148034624168212092631971785283629517275155110151062490697711532800362656245955323422464028401718608672333944625379016848767844404005457029621097986461889983263765588346566446361768491997579757796753724028719623597076135485188721979496713602535670242142428288044013025151760643230296344258986690508200629404531822585960430698294936656216164813385206099283618155645076518396053103967287444047544630587745226457362057539276513475486660162669313458488457118803855521685017856162703103887088673803794437234247748301082345982001892760423236116415721228459631053431047092168778287130661257401774110653021891117272478976186607040836158795445498001785526810839556616109914492245721119947456637338162672371636233457097554385086052880645617676123745913597262348504717065696902175028662242488430318590382391981177304328170297722285938206982272923124425894201232187748620737112714053557459733115590626064406644823523494575319094294982922442737183882893523308974179101365094784861039573743623864069816262387678037743492405434016453963427900537211050461278851152869814846711690532684597423525743931049668548858205140276932694974934189454771817275639600342102058891975875027820474391944855237752205932990352822817351207423744179031219556960198029771289351707993967585785112952960099317217198928331519278255572151372586799166681168623353430262007917585957925334916169855299482312557054871470589399213482524924144613128969026717498141702605579321420082795910711118988498675764799421583520044167526596493122052125105250065891040294509099740645808507921816684130249007398953983425735864613075125399739599736125896945072401164838605445407115323055815425678854736268647566025420443992064093908654366860983242993012656547463851637160324050763858713000062487747117553697014719295513218308683998661271614902201523489759308120246348816349440191697920633836849246560967956411394216178528420572360832938104587449209275164397369047296847176583509785053911443137262478561778863366758089434904752139680865072967862807661438325280872351984147227847377724607208816027090295416533749234906084362444151452541579188123613252909901698984752467569970760161748252742668344053723297525737397588583113043070259451875473308881281696716585779324122995333143369684431291494823909821598401061778615193085777950616850137319203256231823281174435693622767062169725795393103035803438840857557176934791278557786926707890838150027751284705164072793521537304025870014817453281876385600971690677981125017460513411830619345546392185025141966000111651493967279801516563344873946604999870760454013308927240667738831124684184043001035090371202188180426591936642338688637648551351664348653089191288713004677569042347842518479015282875706727061871691588163411304500200808286119080798909053488191449841216581159646388478141953679222672963626099011921873793531424766529181494422366051480668411872572871440803995877160021000507992132193391169427959092925440933783560259296787589090652374098454388632165530437591008468431375246783538329648412971408048456275837919665338117017468713985637486110740612512931848956318158002220248459741273413615987547350241222445333676715389161962423671056263130373105186601308427529042153104793728342661130613767103978220150648712711324271479090129188904767092221689650203303136466952937346105678344096884173618582795132030257084433842362209237757593995100551970601801813739431977832312438090913585961879202600356891395079737796484466401802979341153034446181844798692470928881554403661838378176976361805198545904723580019281510633932686399232768492222446283952550390098263944551636172741003571816941976037967233377988260759262460300238676203953651863373514465806928478117627311167507563954655004835283312592556542144257483327105911775846032853225230818220396663351522265467587481451805275914170471874723594281273699048933896359860816485283628275052360662508817002804434643901578203300573712622478083509373078827424850872593555132145890676504846630848687441051767450160877655912009990717366118127081252676248291944328948326760887996246520647582279013515457817114008646231015608301612778808903206612530226010788091771439270910742699747755612695733987865477577398041637186202809428588637642651221295382248588038386472151228227696245683918394935864592636687551489870367643419170103201662544247862160453281558157075496999564588004720776951811867716159947833019899976495199852866791895242225139762490591266619446105058697380900202060631003409210702799387857959596537223857357928059445618818503865197227430309661981198907499696300389159305012393463545631013946419514945559002348513691950069030334613132317364596814086196723692301039725832860034507806304352034017820838876603147379479128563886037919797123183821940027992940548436557659349264864305636759806905618851526884058838019780599291043267653562867945431412986884666752234513881797014836553601665410970436406801869017266453338065501449621341947468838167155619686415196552553204795803834387617598223168682560506918589205836354763307822643251169169123915353401096692347139354676298752875093833905323295359953334276292994722032522642138783440827094596272454917762369243616927218055206638279249464530268032756132091091624623682985905797845068229876488765030819649773237658011903239602212709646169999994698455867465705257860362359177183953387414138877792155636463643690482289271493021977639780666738364901369882258469917065571072495469987514526282599985316587299842148614733565727712129710691057833210096111591704979163808698732826785246108523009322116983222603773823975219379218804427588267363797131694329464319566148223741019612969175574928509419092527098600916972084720725184594753460848897174470503600614872270012261552553228540188938169249430282780969009265914447946870254111282874847983988914224952147612404564898162356666921573820566785459894672219131891633460875462433105520635862960102740328721843720643299724675389126131503018956466428641260961197687681911347210095049878239020066374110192026706275128494976571827834653039577418172089651025457143655441024016903175728526228933280702712832099710132869189054426442417617238033012898417007001399290874004408991225198362235436699308210333247436769514440531829700291176816998089629614709029972871290847883279021699586610690667431770996058538397093237488367662723152444730622977387163343254997214540648169406747327992204951626408893462076298933850662174153141021547300592029166448579326360058457622260427073285177744529769183435336398856576346231746881416153335310244148960867562001953543683173752959027303845266850477495328443465955774178347644537186890195767278119531545672612148814500299271162513864631981420563033104307378570949303362923947301592542299007710795636982109151137121824404108032878282289771480286970024866957275808473250028992563440077142374726208475183858227525000154540195660656445181220546251295653907326589674001164670234696123294485078461425591841310309719483754772484588828580738340917171616316408568374089492245032813190286245937744901844724591512250117875247417987997018417794162896429819698151985992385372213376107789615655815086886355056986597620520692079564620612021505418413876444758707904866454053057981425119073041405487500016829221701828833586938210001798974414327527307950201418534317705966872514687978337159397006797275801499664470890821458829148745558514817128883748554784570052135780034824999268997517368965889150530876458223291308029749829876656042300985061999795248973930415160556195214931576573794554549655120591762876438026957658389881867746094816765441301787919395953862376952587822558225636245969012554378227204314100927214816258052507155643837143575867326026625732186091833711328883553780098770167268123157802477026520308635348422085421874753806173261407669569799720980189161229211635979935875744364849238123434371793319119383171289006227806647343650419790781515815076732276509618056777973631562922538426319422772618289122948477370695209501817459956162868515045761667305326430233169647462504914588016597934117629873769477853506897104610454032368435886130976495728533675241111651684339802764045463652783543580582564030170091463133021525167246123434226192779141037312295909931518836798239760566450897978256850504143334408790822247527611926430323976520277996301316414881045167246449125329463432856967639099549078351533848281941078980012065821710521128136853367602518691842889911797250149458018121580638943449886706632460141936122040509377781586675990084979281054603131961438297296154589507705395554511422536607509377248313093035379401197486391736609276607173111623481224500797444283268298839918225440864552148743394552061392703461069742659932647088764542699229968867340170456471566463373199765993702394646840957788732787566136632275383599589917220569940153455441778810685639651527737994755920290638884281292450161606349383333385657568136761716134727959302602703827577969270994733778459902539087086233147220159234595953057972807003346013984834158932119251902294693300552699107389065873417322236706144890858053586807129799894893016722901185142006651854599974322500443843271247356578985186249950429313823370441061402504676162405411744094758758894055141631109494643256673491604082576194857649576029751706733441941252871374371354576903010434957372916465695142869621731385374106303994393968769469970627097452926917715440473796903124167913659034891650010385838486974752181857486085125126792560549421508273564776719278490027370864751167598426362832666802653852818367193596185977517017775440829790167627891234391646448740236312812609901351937220124769191106837395271574547955842965275123726489604747666357348896824997154141573797168399784684062203827441032304650426466778775717405165486752093809963325779079107262489557370062401336074297171747138404864403991384662888627295847590938184147294953399138754714695297106781420601589388015543965271016802305553976353032945456935281698709843510258328969788151212298065985688926476384847374797190676800075642540699676292688196101392122108276993118718424644465955860474778400405021754422446516514127806232124861928234693698972291816449342658790203134428432438885002428635787638927333730306348692756423410313260664300188647409089210133964186048787196786686703990416260567779483698150315405125436732287972257386978831523161838493069241062511869579839338351575515718020380553050113839685321106803355349002619264574656898598253022273819239862815976199443133255296594304058927278119988714808634857577431719026993226503653118671981036621420449432009421262899103952245477046561763250129124174681648019816654078678684496436546538269742128621770976222010417737973744448296044579327578765209467349120810222283517955487639058177858531619667539481407063975139230565009605022469141934626442106769360180891022596051943636851825758684543254049998119377947575364187421886790452992160510045923627748296379178452497919028167148777487924891194575811941971600717794497511936474703026641562945391763322823411022751900214075743444193411409161693688564418306260841802143321968737396221254893755812122689042796726899155173938164005737483929441681297400836146280905860670813946690793722533983820211620738212811793203713727151104693043514548964542191544706876980858587060454846944941653157196826250370741135280807459314087991287428622226269020805672888822773985126437153294612185611549511066460328440924314114619362779131645935542191678054568971506885289476080764293758615178472948802993772355012604367044915589958643232775556298980356473677546650081104102579418727199957864918167806773793087053913688050921524245139063216575919947831517145641867942136634426119959074822946805567803871890670623399643701193588104007646908446911455055297516045269561761731243813363282344418382384579882390349271057453675681732664355225533270309942526726239755527389541633795102329209961087764967849655867597085185731596680751468904378530342342274115157835209076205254546373419599103398450455187937295438197715827990184374664636973824748223969976578829522487330969310886957008895749543235727897311938463855833484470073383835770288427390463676693839552416978377644217511737748235461554444980570942567108696463690950626022696365035943618248780398197282353209311412143866467482493680427431447579084706063731117218661179817549079983885868093298010479159488295569993778631364329133489465813769921380462060090900868199946078810077621840297930359619985175771477800822449067925644525666346922517706146931207603806783967324896961770003625648305076678574034539079183217729780670754904112516412507338699451489053884941943850605229892481922421656937698582282892764889864501265148210456322925333125106796212397599459486000661289863978466516026571472569646155900972346881725950277718800065666853569306979169258147202472526743302478770780124806748606559318777909880107023468107011435222426882585864997528506634961044399714288778742346009719196973740425748108884614267481967490903651471225675011626616478958544961764056316701952328734076664152871043648984128569462243737976077915386341182926354834601503578307453536035389878283931199649927419926922407826300808404535485486200173607873814753675936369291906031322037516405073429708150471171045565165118420892723712183412150026596529299737443711950623556741778131344061435251369893825282228510829768160141535020516831212012707078319884715255203719336118462302722504682007032134611913655450725892292065164276910427608071715539371541818141209850989697797394914713893945970843363404376943889289996225538625811468731808687704472197832082904051503906097382410053611703599804063376900826220975546212022649970786864673753520607335111048242493558731473570602412785937219147781417263469876355630361859056783784631927341259493752696801351135122392903555644502238859206427465733647254676185756603559484705941841401357374543081081333074871178176208689645377065179048956158461548547661273744656666941859018603290555457115049098310420356965517835696063534040732725258554348405904575164782886708645883910193374714163500618265382924312709361447279509589168408446948183395709703240001017217751176243001550938093797973807083983675793531204228491305164909219629578292268338449829532777696656905537291959523579533923413056577085788758175534168542042480045891481752498817472505416414466560367379938327756057446839793709005180466420212171239372385531078412991482483417162379733696908446662428279674122863014268219650732961406483071609375358769411026757843919557200426198508153452290369319403616181049269900989548100854855216906753694387687443126169152384020269528487792597849486253115145784947940143768748639990840995100948534378124446941000337160675107141835871254723119852607955234611353060594473613100234883290508894057423482769590141181100034622393118545537239508090564316914895259673271322939830185632151078979867036533139543988890677307165056806370926636913268737866731714016154427234708551128510407288292027391560317897864269507731005797598634846244417796345244990807069770713280673302553413179603429102831363674644126853868921602364286055076860066646662964933845510585070410201602880717658500322564449748788900348156100420321383451049457987637594182244160233431982015778897790559639493492246098652096365876095927081135954921880774079984813875124670397574646749880607207748219883489703964600109156917906689534484145333424089413982162769858224246516920748914684824301076477102270285305199425802404545068657707308162003182871727152395189106061904246595134984006354074670861053457471345391615084859351862877687322402207813739136213073311936649297173586519836070639472831924943762455825018521964775765355534313310633160566491668038962111471297862510861200842509530013253395362913915122415926654824923333557989895744297493576321703387419393616237759729730287835221907533995131023433104523811033336953862056413527273988371635129407098914370140357012794626572029322590416408836551911124841953873488958829334443655888250542218324299586217340680651891315615901868242338557478834006250821943135100911699057497287316742581299741706347679072854358985899919064793552030113565689707245125372176490052371067623485470813529015132945025795647282715175887358847252139358508247234890750811774252536736012096565132253820255634167613688919636405993597715146229301630718470053646830862568683920807783785383680259480713476824493168598748547163410459010735950157222499954620421234102648820653388313225825186582250225384736761162319102791464784614843634157043908039799342997209446990556519001993552125269552356146572651134366735313082248508189238773111679490498070226948553082891473332860608433574278016756991133550709919753838691000200955348577767137839563335169071048580728493892741518891561347981913943982883553820512625460173459036131348088895356094236442575234516001844895217478329952896614955080512569426206253331222208711072704630675723115814317362985913077537528980239557607586819920647290874438265669750367733264900285949805087284866107929466185340292390558008838907425524400170841043502630073996265313411914444050347105414613828952731364955343818349273074666118267702170265043651560105120876059422351107530635295523252105880000625215636265047054323843648045052543578715273432328877067861054165382270654475666746095130892364993714133118770082105303384190038883391101012878904783698657734400701386443008637151847210648764047753299933208626943899086455363930968368850324332845884684307040999269690808126266315271854814744548904347663293638701332545437889897292644024245311980757819752756539156586435204073166771579814782648554944262981893014019738585057875960927605104861747754593521866450788512887184403266745297264048965680162748745813832247768833610716302475585877317536333917083629890514459376550729320747762740835927641421761465270198444988186512659377696649578470482344651159460919179332276447913469607167778813538790978944315624439404792003746870776479387910200297022338095604430767423808113926966436930628505348307177813345843552140509476842518228821627700517054947283505052136362421897445152847814604383994536220171578119055411967252566771608783342950721569418982918236880023718033119063662029293486319165039643684545490568946133180438433210704093542013653062246211576169222061288513757887523054768523215711605655849525660054697199684071574106129529157606687835215732887374291697598873641248532211275301347751519598211665799561904611221728189432497960390443145985307745427604330088255282287156257670671389154728604694113367331530790603308843356929038936133773725386787912186248229997802855774235740162046442598355993891415533193693866592691519316624197255170400594970690328246611178937525157385356571805852502277230804116445692502210710357273935938799443005510643508835587750359194633599114128880815575887564102636878900875172535269779460305377357561908742942634040709662269285140568931657100417220013912495054307885443568147559688537786742466465360448234929379467991386890454562547579784195269471712949676372187692804459994383772370198726354539591153380112064564803269868567925502194966410100489481074055045408331587460639927923175843049768487272885716902602130448239651618411119480319206457015435457484285314593616160250651407410674823608741259653296004418978171053001946430418730734469767470087504001847351943972465625046201799302695490399644076326887277083010105992827667586950075108422789503667520733756283940630445177674812043473001505238163410773363704264051009279633971122943125431489547290609276109497962721116025176527672914550942059488792477730251946389051801668096116353281052449425939493427055150796217873887562195569761578044570877032375458824803007075097138665406300093304852578125577880436810237026263668403067006758835145571153443024957513029468052619906274547482251485426974154473008918081400661567613085539304005666537683081906528945936871453467073892300157882335368755759793732684979564061422676711849786757340009899431481522187671788990347654446912285664754248039247162336792955872145760560957285976673947990210750524605310503561268905178354041223666315315199305922918757215899200387340004179234563340131881613320570458764166148548758021696077899366475953332080238923145848743314639216397866655403443596734924866703028738799272626009723377620878270626832712370164407034698089470303117040781405054411277301515114373886325196954482943363199639417203451935584568874574574520533615793837947702267980626874316498340353798541642351505014422236061431045520419472581058135171770625577723605897531751572342151165063380666131583829964955519149321383980847683069086691636516245192220131623511370011666165889391272929667910202598913750748723264732274491606494950747558078623317722463727282572317634030666966623413865499204336303680053633738375973728227694124758293365380597486647712780403031414338268260407302338275465233439017096771843902952312027534933683940009210134223204569082813566362874369794163860108811985005945975015089026169946585027806873923212468409367977178494757275437136221205900772516670480058915540423860206193100172771774098674794907778514854875373244328151774562467678501277777131151917688307963453400190074237023460961263099103081241122787178008721980678634634367599790352724053457867093334861510781721310453483512255535744025924291800440379744705031919339021734571623969760447207636167772729696324570768427751738169160631451823532137258642669414726799871566079920064933095542588992678026425395570359979856232728554939720540665160696260539195229714922257524533132921661704957601424229022443790950856781864500223057605824081089870568604413248155110375930773811417204540587220458175452645656646930956348968749608810344125186930551266199346281603069134038258685880315338221968048133571941218148772325753595152030293271668207645384653518569615734002302872239603731766916616807025780400868138446654529591889042365778145267501432035371747232309662358441507242844852774151165620364387676534055396301125784181636480303847786657224717413230624397225266630245006955840109363427620251708220426746199526206466761461139735359978286859409748615078751812428832858047240722119893306124047557778385507192777033919135146771037726541991780899124069233744252498956803618978548880633900498781881534444585425944894466244683569061837618785809873438158327025280690277654200254857618083702653709946246636850228167010427892109357483362925292930917050039908298480637957523294517822070572028955050416499321110015850971072763185899974085990827078190389600167117493292322100197527693005420565767390569099961457401596919739866365715277105677475159712070519209066534998550063308047198584225513554840964864908183693962815132627523748716494998127800682730246390229022671380702934029743460932069821090871013125907438273192408436980486297896711366318702556089772053462096355336293825100759508991236491348834130320158523965910250183124881214075470639307745623353344004144430897167868099627672793076791375443913515889889704808613946868495916627791865159632728309910751409510349155577209036129016036100822412856695277024138473387217474260758238648407349508917865890561135506740503437425635483231049577391780776011864679725057012215853200742806374679194730493942363227344321342122270284248030061009924026975090525119537081118295423687035133119340743806394046495316519993138617934911184880864627754895769238680777523822471131308566364195948418364907011162356522145030292990230463595415169581549996843894111266796811012482250600380004584862431943301776942185772984636171234953640525743388268682898773905968839934431740304323637535617796216471462506743169780825616938173309947065641581069468544762426550283273457931377155756410061648359278571840431850969199231204500752847971151039626377881898130193202852002760805663810278060163963484550460022616840808021839543998865345856402881547689482995540013654351853837893893409281056312960076677919665358426553378326210321016496346616613238787349410678456728578696540641954530812166884784398702323324062913387901492154206276328243441048852877257522210004426627474711984891320348398309601633764185153871483990404040331473268804051275339178603978716179879431152292714214409987897462281867356727258166227965494327037418710601959361212972344866721627034247096253774365013097674528999407764430484830496775258303422905957093834050211494207283601345990797598516572435709534211889521914277142456769479122341827927183879485281522691587177992352484233812778681544613845865983873548066185567360491298928272147922077277275502502730557562291079416595649371113516388127565543342890344262660404518457537607337889489185050436799718930636333278437427829332820538556828488604586412175942111867539703586052758983708061985800964583060854213010106239306715204362016693667770924853273483345643179797689194323419061659184699685087634641745291456452463092327529758555782514819218870188731321746913368222535129331078816882359274875757452143207809993538845369383683349028176646512115749005156329791974761447871684572676726286287998655394165776426083753277304026693336582015228452260269281535683881858171948611642436560540765427763276063657586961142700477595940783638411820368842134680016894635723109254245279146465233208352852338587240301411792440811220280940261691427814621997640019439468453218023219055634634951679446986429477322699473644992094072087622762422108023096985978606169833132202662539266377482687310698667295266650975392909239777837584931348841929438075806186264905412955333568499051815619660787843076777897763394307579966042147429853369821465317460709865780028925805260451114033789879031348060636245715085627168310817793617898246865047149070125297612122533046487915299866939723928793898527650794761868067937815849834638679322641270379122958832108373438046821841607392536837605821331525940404037042510565764450908683720412578638607410662969296576139960178611660568995427586949329483309566347207945533291011386348016564858909560981903642751639164534721945977773632590554961644963948757866672748867213161964579925468533124071700592193559510884899993231610426252099103641921617290433819871469731873495607692649580799730111843581100228679612277199294006346873252072371005053353451396117909369953159998349074983848722569027653919229660130407430398740942868574300860106837704147798096511917467562792489663531603118640353748624163296062557535866640084176803267118181531528352327852176550250018573290157711555951154354639794076943016028417484225617545871144181654000663022545042647588195395484876503108416723118717052978762174004237950235016719955239575256260444891352345579912108660319982380193061335690298504374498471059832296692140248708273199359953364149183699125475375933799912912531566807874829465685399572233344200150946575333005187172528156553926573841745601882623891611063804716837733291436811049767079025557583832313190644760986969255834161497091776935174954247242538998750109663745838647752607447851676734715217435403215141185846120568751776616365430248434951927052854670078298368447185619307338271934047868808488716704968744658346987510577597813545804774844043366377432102828641040510191177828174204381049089465561616831973747926855379993019558830224710203774508519442216874326800127775185645204704324514017044957731986206304668363189520326645358641381950166123496986817494632884996129221847323878772518949898430279113149324624872121657216010335942039638824896755510936473391677319610630689457245288847838308667943776442772151230137593486805611180744813144804055665939660086102524177329264407849531572299131908784032689651732294513077781410922928332506116578238151690323794119130403049908317036663367092741374888126903414253399076138847253485594641233642441868792477600399487411710519645115012681637330761658031998408610151583793543602581104034606264392003184390745876559481101871801469838113528193111360073874789250240757730391466644193673768753832640606208901151701115799961491903639957951727441247818376349785673869321613369200148591099692590534121631437396211759611000997004928694574067975084567894791076747956631881201419187106913493391101594842971624842853792357567380419706403897196797724908519860222463980358425341488312571413225891801433434283896019655122867547434317399393964300768109421880460963884903881134095487733737390220017030193124914856524471108175618785005391562590522189764158504097413375334096015118612059599488111356940339156421775666461439011630688588291733874989192580613514424718765813861535566246635000799083805055119423109629601942984032013478390321824109928937784970739736805194042319856256979742613572553428091512602524627822185946687869202704907778409956021797724341211746813056018125941466320512252379867952557573487588555344068162195498108134671976528737503681820679904318752728694287127653424770027437933670178650482505231684994688916800155278612110175318742448069849561514969639633182615006515941254077750839727661475261666549839504202048337757221191369956528765795688764222072447516891825802655394699126232025625000904512286484637840695808787330441148059430720235539842171148180149128688156872565992558345849177580704746333034597135369192500165912822965029517209138970709144101748853385221690246108604049810689694634294078581177317121096016688320059295735215242274699871411718907494701810643216385915687836219152228201488866297884707251979418715515455529726666359233747123286738980675944873049119940389134567618699848652669566547288661328850263329561713403613716326692905788433734694557990323616242929076328229334275626047087231475176062575087980678704924383223717529393369943194764346429760815773731008318592967070177240223894130827631769000529373210753543817880661361853297587467917782692954019141069683447242473311806291003411665175353500622506277202816282602947799680759880781091746838531556657007178628886027070417995255022891816376427978410483503956709187104125234253774987697337851947883077006493424863536407156477115285334338089682082178408777097821014009452979802502056206551009401054978893229103519617561332913686181905497485596681068848182438619304647666856755797027001312652006215646825293754523678546094887002852580299663833296170359652754115510437545739476674279838642272241785963743968883902719925480685106881349973263810750019676576933317511642897109099916262278279259339342460668933691507929573990676007022527101129274513307941937820287581172096624203106286062808736430721105730873717297697690052143288946921554588492350977343507398294384996781063056141112785856581041069064100309352483206336694447254198488357915674201800578169324816877681487885990741024533623596879932722066621161874759372381308725623108302439752751760333872883441645821487375842831305034142708063430747579636516678037118017321707497381366454764953639297182961611009086109190308734511943466334579417864043492892476968550682854679972480644277114508892433497973650589493659722313818641993734505371691081907324117597779137782785608822421431501333532076426459438739285803399206399810927781424062166326030643853566719743286025381808668431181961907783240259253534511225925187115330426863275220810963846842011614625289213662251307458668321311491260646563617293153856792426400585020197362935172114953106847449004033594300322381018562396500003735573826450780718338090208007932616846422570957036470743939998537635045778916851576804714079562022512713911318943622444445951234159528004917063863141291308970457443864360442204645584854231408072246774656695255107786203828857385618606389239335718849868864680099491249478701278375408911793608752295226612200147225590608798659037813428721264817426488130666763072445512754652215456627217232020392705259869444573222071801235899123124308263695559367365461655111323171856268665725365467266342234184355762429856049010201340774111356878550469832894324200748154386805882726579954983515189433532497547168056300375155469137550003506499920676123351698687045509477566910186706118986196065908364760072091299322627916065565674223494737442403538015432616644037564642449745700504909963016318291704401654303926557897496575900341044128063256152458889886691101380011906725166229470310611449768311972228140212593532146671959687900827610593455965511199967169452757307478727975503978024133174452038836115156044292244312664463427157680753039915858374455877405197419617340722558806987380508118914740479845688132120849041113731956039754836628917968817948001521413362783573516147616485757082666174355327855371358492357756309750544094742697016155449163594809721874598660999286116283690957290201994865652615736664841455556645544622196327668869004663266382535338440202781986792764102144579938857083655800776181246203265212128912557036239464232855642051472228863636351538403060254391415850352364838478064553780615886445890433498058529725423890265510427659627168076862505889534384563348741616524663640204228994074108484819175732625097732148406934201714682457039171898434623275483729459226378197188628538739461013919632207568970683091908205944727381639551609088019228713393673220046484227914805810129302484587254211825493557342512326073642926215607017734420764174249933144107131279049897012827323993425703743348227648790466672387707139896196586616541570068766456383080896204043111828779921646099114824683185525001303607802345600752457951575206825900869994277827435530321722367096510390343133509907932194568215850263803837101574485376684199030151843659438236432809512931910305587226815399808696107652573413439517508587388446115591316675391656029061219557378741331678755521454176915952072036878256847621996672520495746424260034912559582979662239545095624519760319400258964362458850203323525061523806383539771403675091225998470641359328186134374354382320964683763785445024235147591388345448580685207133495611497918648015455569595458599990331877054408449704359021221513807256524475886284306210446824961834105545017045746365038755695858467464460458359341935781923035336022154485976189978498376875809864997533460606344793373381921397662594834060165517205729382621975875388639602699797608469758080796248229993325925015885285759514407913783649936725085194250432722175071073565722322175565539719929569878440711029031807627892012770954388198098786712500671681608467501655835436094913330015508548844425095116875742615133732182440572887072337144905718120988693339684526850489542440367693124774367341531160101480832899597311171264528903543308035323730075127631911113121173012784063093843208184167089237808415803832533903481275986445220479355671090168068251739075478042107019266003581514098561521678514435036463407636115740552873095239301819522129967729108262386374107752472311808326052845759226462151315734677788959510986626856379715002766738290939365809647574690068470554603193640348939936444786639871323364765225663334099063361946316328701438992012947290366904466206069691272173324546734345747849700017849132357337080345019795507439372691554592539715843572069073581363385030019191313025268606876074185837470804805124512549306626992086884355730192046498028262274876572905273944600972615296706814423421279330470355505552505726746305040341840106547619536447294628137876192234539944589803293931198788247730560593503580878573882500552081043366749888408691744392329839740378080292631034882022799849393762412297132079058077871528014383240676826458130343497410606391265149491452196199489884421194460914271336145033022009283802629126061829114230631597420929658145087599946111949621464632789960408948824320066210182965724764668975495795037845170758055762600488148193752751151406418676528932719316758662374617302561303426291256195016983489818222547209752328497359641678178084212462686207316811350029905559780359044579446350154834691511700468739214848476236045708115969743466730421265112523276264955843130359875259683722247673417963106166932280512754753035938525955036223587520969557105608193813324117145996273687094469050202187442780633518415567359309043076101410486875574505803025417869282916490297850317226239761882761913132883192610450585230864983272418406655520832392082871082811757915550241858947563873251996938880261013919685473348151175983289264399728927404827882971935973829367044743123924222766577130561025338825434315219097994853553290119522030850242428645621709559372827788331493327918739098778910053050712995607650041150435518522156517834190681481557935361666209544599036880230497674755857131354357194444960141846126689643238320905338162511858325113326056994667926257546367811479966091512850600828726099354401051986221951159188740496161144653125737215457758236168588469395762650392727461820963365904236470928992648364195485314193829809772478386237144236153491523500901010133357884793386790271303251003803246460455668391592147588851792551241259748354847956817313699290633903495460056112619807213996915200292526441031626972449343273189437471029991069058421119576281433837436821726094689549143451384590860565417883126984042089511853556540728411427143041834362273846681767959952774036849225314444092072357712203864747505626116785869374494197589895614319715851570350556488879543635536441186947549052733046278055410306734304534556796211042200749412714375417446088430328935917668228671932233415822311117978380923680517410679610973465676239633049220169191420250965702641094355262832160393490400062350195242840444817700247240002704623315621189627059493894265566140817477079990852340323091136700714135543908679470067629032097889071388347145553755687144916827421783708459107928644150189739983544926516992295498751933897407496632629843341205973730511654121547957375835379502828014138865568158444835975470820120686501765085603140600410183468025329105985422792845743254502368099970344908539311988285805299382798807487721655804057155568504327782772678127762656608208397395812233940763342413024933015886149484564123286056641442268553756174140197393513718459245241825338460201626734335802139643061577751018855398617234652784145768548214696181769730605050528097207745193105497985399942283872882962087774268507026980851801240051715433460100127595941654606010382339436241081722757420677388759120381703738380840367453897063638228741507698081300636193515102822172505032733638755219870928227408542409816325754722051306393790783265074743895722179015501279052154587239429646722855448999515366149240776636905819212208281727155447437957094011915680219118278646891113527767756209295270372369429830085005271994145085799240304319168273328120286937478576022591443605247862122981448802570574327275265843333389983362362647759970566223168591895991281244615690119416503412932830556941629418091449144096495389660413050636948024218719802375579933914136094434837696667314969430569250333161686927220023160823209853905222967378354852018400116252813512158460801332285195586344559351676246495195957150084246810178438327843755088686553333815384856506844372640499389381406885753994891078512497672620890485342250579273560265283790813124704005101317220721160685193206105761594268119811173648470147674026724317189781490107846138055563881044188752610565835909043126759831059957489455228181159342429726824792718967295218851631570609667546183726201120819546286508495274439986458727469117704453899430615983244991936709836499004947735209752209908009077648654899303526881606029934872763316571734738740546523108567642535842368556395332756949990167822458556420964619978836544115170182396979717812041481493915899331917513090457387014756925276624403987098978990476372995283665307594926185698342712258115370017782403300425531336285065985360051046865977152296899970962105009614542570729759800798218775076827239526619995877680136534891404756794584501856232379073508079798015344637010883099360668564326274710742111124577592853737148428133038812164019908793266509595382972459262688793028490229036696944338953301116862706942716609084585069697753350326868695872052713686787004127667821972058713946164809076525716826232398906011654344792601272355210864474276925759841130112919386655279537077581322069307576546067909428433670186608162166191983128427987875437904356937335491135777087797600655145646057198477567047313147346182398032369187338806747510991834546530949499579046086927785816186634454774617706990467215954601717453138875142683231645067686655532214063566083372323193990050591797913635062273250466237176946889838192385958452166351659354777331993596015862444784008483616648682681252220638866404713654028555994366435543691235770131212971877229794182565523726976714792622446369713947337655485806488552142708419264494856815309984957554416760886333268241914457681867147190382698698936672913582508239533981934799228895383333690859536940871505229527171212327244376932302273447298524363383760359122502902389204988251902894595959001926229503516591768724703044054773354132603321308636890843055654969779733221143952994992348097707944832158919382212055757186727746245257322332586498472188796944548982100191923461270619938188516408895755074467556885256070580323377662834418364386714498005048650001033875061193965962140250353150449435685116983052166967158130053388149631399523563187740455110774324191490462520048331402945071338394471601570308223088154384132037382783990756191041484131215825898769381852879649552485003329617301555933274283517450325440039802214692550878411117489418908441860821042785595437526568228263510325520904763860413628148873830422566232126950776252885194580828469490184235339841131893928103003494051325382365098878722130287750710839051142533227365666908208261449809070326585598539337637290113070283987792537877662799096683400783262812623918484231339386345417988647096624170866891593118562134148285722782870421474679507701186907551402079860104468029879529159587989051420181954238199254124717953020016070819092468557377648890383513445161992064022982077427318736512030828668281063740674599213143091538103391235013592866635808825705097561567749259548628794887261994710418563194179331342055612628488219996940467522179942250253712846152178524345261370877261929779163106752375466349747078993173416481324120443903905011414381481824993414351420396854070452601237662209209711659716013071808490395874536525439054243051394075022430052051863543553092949636661473444977128712460613824023644490009390368781311527134881923594832854901102387268778672662609907369035676115953398849355831869113993313636661876006179208735754742055325116700823800580077001857151689738568309939827940756879922369337207370613954534550455601674387413782704196438377776319216375537514848733307243176386912604466802141825220720584992630134294668906961561161437332725658448975036280643884703716097870409576954017297320058970525134116006259450762306124614782151121207104568626815008125041668928475937833166055494623867036412094615816122710124123617740163086988270882288088524111642862242748929776484343633154550262012410267082212083419707087371579260164623069192875395536106756614160703718134233927903220820694004538891711918865200874220045517447872503750028736862307827885325829367427792769316021377224484201354249612516264840345387215014039536243026159000169243327464425172517206534614340804275635057444727403419294439315439593772709006840600721929038666289933090411195434057115474883417928942157367544512133422234306591186334952064234680124877554642297565918497748835608459965026501805132249639262827816043042974702199645379487345791898498684187637904497473856409321646058362713012804216179140980888564726506872112024162339867272583024252252581689920591005691412429610343255841710713490844756144338241983632519032252764514754170551973169027942086546556415133912968690070798194759932286713521115935419350419310368141434983402787647747997210434763077977174927934777176651502684477414964605850727137871779191864619935246604053917792566160493569963101775761597083164779496885508002448018010557212248648261053223724850813759222355633075014607256024907468709084492012430621015769643077752256481682961057873663458664967146693526992571795249965637049204295133218123282297080501276267127653339853286145363842491839331192322904613214829267210578878534159607266020878185079818992075149293442778661513833586835004146951593502236792442383612919065174802463474862978851628860245035172849696567363501882315309323284629591552433481235027696484170246604810887348886675203520848780214023527053264287284238352436938756302379623488345581949677577004959124133466810370155629351519427257010794636918173735943330206924179255997461054236507726224107140468575517819320137949645815893979877627269513916323876991657369540323330221239571617234398112454949729266345474481155868075637198835655053370874696827121221533878565756239881246856501621257131878707862887100367549579117695130563624550176542244277075234081563785185034599588772095152858232659102047789787152544079158309694416085240836996515863303120013234772332758820716757728090706413424240863146842456448550651150010991715492193866875015303474916258255161290540352156802097873615429579517743427660126442287137597041508704634159290728258841122108755707845219673316250534304480060808079416319020037040366542921448514151264294521949261976473476909520821954734196278223374963309380596428778796585578068678882041750736338965076655275229309233626441762560082976488367149889980676904636336494538039142816043738347932521528510962153451803473433213592931558663296092515374941607727923422031178031367683246239789721139286952483485904625068770065061978780922421925109685144460071488583329325759230826446714282281933497800071462988582734245420340504907716184643332184678156812823037355947099701483547919445262204306680512093146923463792891880110752492465853514687613909328375222564929050340831503354482859766694301031410893651897213250531148601472800504765749132176026017501878171202612727473553020642037684621317261496087135180227913585329576092969121926321040003096935253451487253216359620412135259098538814148482320666852220908649323505242247936388211098177996073391508673970852031450940249436404783383952543390510776997021040871458708379473707415772585160596952556329344538295034239465979267909951504655274540967480813604485045014305920379229467926716660618351364773095882635467355840272160459237969083165420905536066732351055386612665308257055811286760504821425306164176602461160303099876621079297741644101406273975530324628768894622544106559282768609466589876893486890181533323082267198589427595643128427714262829547676492794167970399106083538480053171714122197442607036919348798243136520993783698635984192008669881260426096268652502307631364124618323759853714175870829246379134790164532006353493232489754946458009471348369187219330283627147966529327399587196314092479255708566828316628991646478738397587644616564025239959009336864573349331453825769790894082299187083758839430370452529610148278805797494492391065654401711217414008665396908146922806734630927575611112188319427064296092798475733785831557943567068522668400689968290861561622408693482417854326881287590825941019540234097273780188594843513900187039367367065596206271559090759767979202947119241378149699180832811883827509425469455169787717232088431432092067710886697936357573085605091574312284836580477406812013895036111912587569801748155699231643296648326184790335043287033345862090481368942576984674375545052905002256984577853141779201583329934931345092383648950971875007178472798164596535426589283563440435381203597790068318973579178228303969461975759672800014369397855621139368367908298470396331924250489933898677908781133468069195929831656784562672444640178227024875377247090366150493164088652690782107498259299795662497987008977510541437818103698181165890636408323361041171528664688860623967752505575256261343812216431250332052048646726474322715168644863570685947723147390164412242053587900246196865762977633491263106238160058611049774527992839877369252413160836730518165746144682443743017020644146592292199941588377773352757988907310212702899883481693161105305095192982505935011392064922214675985375190594163182168477519144432280201420911569398984095622861115415692891605824933523677751868938692165533848503481386678202543427939292079672944003395829712820579254201283875869235135403433862535755591042410322507075715925680515186926741787378712386081292920330602761836050306626807124618671581524508109154820763562592725382868256198653238197922702163251016740790243191106183879999231470983137331517059171192459546230183997494275397154720479618847852053103375537382288157353670518212901846270293028125524262591168796030345106279113019321402591398196633199484166339662012950204923929310967101107271638308206804126838526280739367661758687114037529825856255469204619711605212461988641154657178283697128940216778375938662210551702224679477877275701879730650401200502926754737512136037378772730305114927006487467507224135759298485698933146107533372535745839522147049448878935014054159864636479442920961259436605426274031704761844671899735075944179022295813851894381569249485036544275867098073222658410651064497884355835050664005581958978051102475867223463406688432059534936233317549351989460863363919296308080556657184932921552776383027198705202488865426303532708504871169570381973402312145702721970016969599940381034075986766134237318469854157423540563239301789418670136646184307529086991733667304054746833013483891541497884454237342932870543007566391527836040369614237719261157776757086654955414622355240860422450714900359966218261727243239102394217678158734438754485966505865334502778528701537470607431506728223998553636712249781685614603501986395723115934803036962344313095813072207121182057034773175165970114086136022906350252566222172695817354344698878836708328304157877135326752917988776060691637379556187327122262499933183992167368545280093804694328438634993224306038988269740155488916396472088325336481855824946755531114244392303565941130674570047465226005966277736271641566714796097937317488245186097322348155255049420919559126140005903819085685625565776946792062814535252703391362970193335253052238636263554585358031894244801844624809163963900056296803943018532688806225764946450526007837711397962737736457999581309409048762269995145975850626535574216740776382958245523931417793554655239939165694953850513181931069427816639923272526411933441715930225101761485925198758098192668141712293333697220130235478657628085487912533208921955874141515717489329871565121509522699276757550010156350062945567077570155333237001290042295305163821442948762429283959065058927206851314803840093772835528429853160347046460154335744288883781227241654371571081147599515304145555685342580404386175422804595499054535706057250975105873219289188479158711207033431122146664607278889313544570168298035426066439145828302877180700874617285628820901837943311649702692230143123565780223214958899502611219890571273354515979856549281244157177212703190036213874930317807965498939998565229992631786503178651196372130248709707496972444103457474422493942989540085036963044693953827822333322762524393110737500625647054743209489567675071608537198936690986264341557061304788705808207139878142343075846251175731313035706351764337946529747019281378085003093730385458492864650232108648332872495912401709640592230129611557745037400550538661842814010009831008943517128836234651642386165587499446402029686927321018203293903651539874485011340829735586531288485333320606423838234621094147890396533681796108902086496397958443988215454871606644207443563877190150267579626130903340258056614714838551358803884258932948993066334788437203481068402675563488526678732025745435123533990084127563514146079741723774944207086933826844250069344080230493443776186591569787993799374263432752827060595505929257331072771162395442236824908966928718277718601276197334380934701439612285216558852225787865115672621984892013364096575598622772052794240983930058060726762502788315194675691416566789932410427721414235322308211268618384704747050809649694395974437457066538086641060242946724085327147632021727391776635444596123974293316810026864038272026666639283307483936182167675326075501931189383012367892385648880718363986664449886380558224588019226063340417440504842309104204226544144550111040549417336140239111110753479740824903802553998652486013489831164303212466038672468368632770698543092654354922933798277884845618728162522655090074102957801989832524141091390941495678961769466939143564595157273318592859788078983011309058265180770718581982400827850870359910507280129494794912190975027424146532661128833910432611358860166557699673540635769641274601050246443156831399775442054777966922329098652552886732979375958904218370273318763489994283874114671626142519977812783076995446418649531288623579304566125665987616260997345888106497905098051752836333072782284678545289697968244218872938173723998548266795588613516312228768535298485996020053491810330551165945984530493173508292242936096355534928353750665996735475334035768517328973545649740657896778762220736658241080571824289248965002527409778805951643502104776768720130377728096679352233639108057779003610052605183281197367237402785066136269987507708260074869396960129154331299551848783612886379827247105134069199326325219614414739947773022255330689409441597958307389239805511427426235722233255448404920823574169910306575480107466516404997329088513798514060572302022924359924452397270180982857809573414489732813089324180137037308082068205827204816677814412538951648056522600713498192627232412788247282430804005181980686626345494001147626578436030715634973988747971214997195584310586403163221435771702644506610562296726867770718590578071263440570986557654160321104526202080726402821719761643727791967216320239158509260607089415576315912602887573277095596769007192304866783597702436132498810434083198620610760154954385629117119005678474424682195158799308651027424254322367867867874240664828914775242097308155331532441229502945899290019510260998246263147697046670049691739081733075381903937426299772565795807891098413830522923469728597570573682391094013385274377728675713729350231735688185851104045051074031297241364819663729923296603868367988198622410316174761585303652820033681004884612668898592895257803700950483075058637384557124879023912555373667546883165395429143016381423074253167350291692963719539987741095022735196058746597226000299730413439867286688746421004859804062077152632969062227666744060630138152361286318705222989954422056641798371830278112253950667477614285976017086753659528264909873638410736618210468510708931240934038199260807593135633293613149578613563991787104567206991725962957169599446111665926976787766863731917697748934932164956808012922668421496737976703576709727454036522657175918836496418131400841650402729795834722131703152032776848599691935955366441444382684545236821792299672612245267891787840545270343137517234224963183828953230725110045775275152719664752026844824293253064656024695389603286987969666039151542308783214027203423797314410295987960997675804051648643316008656384967843659433263904398411593970647961138901186245184987356244736790391648737393811465692538032204746710634185267801653363128634775019784542195286408059392531137744748801357019538023073611869392585284168396718233396786025740770857924413946352388665157472311560577883148570731541591378889917775337452318353466255306458483093284273096930129927178413758633756905231942036485951114180287167063965966996786878945867954121733522850941571842382305807016130966376501391312791117927824029698221725129085005771714103859782178374875750481213512284323370685497535774554900209826073268372625974854604444883776088116878857677847478284306429441746346101407156409448905858613323302954546944501116749998021241181825924095104244057834289684957948628379661285693729413186247899570081230135289154100618311380596317191212175847128295930833244174955527617071340954570294304237642781148501528063021586167737234665645822935753313568163907727255272674580995668200718843539206553281717029326854752529074488908851581742751782953248401828741036815274914659045814946856386486601872564778722289796098048374482864273732364841102823343370671009640886794672806452389711090772237097883385526076505760614614612366735259987329317296639911345020598588130318115819194840010847678107646382212017366590704471933884295038187002366204016476147536699518229812829221095000981703351437619867743062338259070985081447877175384896988943610956891682812217623425567175636624027693689069580023632407074588836868774814279919979658827764587647212863110055504296902187820042186383155473119236193365501992163632180595069657857941057173912083445304737824047167501493789137046971164433643448409453256727104268806043879666501200301165444293933769962219617782812033841059172690657281568184741433681769987586533013695369212300696792133844242354370777145851987912849121837439767592317080018430118655396079418366504487660312481526138305199731682300974069360349297448364988795805912813759610232054660278774614405798799143922644178439900315165957947789752022794909624222325476828876651988060226728028443332345673262019465797048906077821875131283297744828226743990096547033325851371583624397549592042300069401588913559280489327946412569627046646278494781067874909027776303550591969329060382366962708659367902788428609698304950600324071243611651039181287810705660507679964471333246032769591319683730712702629276508491409643808386388691479763877453700373345273887927042224769315405033018915384262852373123700753683708678930628089883731791199855086070554071401179478709386742878712477263190127588421602774170163097958126132164174704826376798163429311182023188183713259013162526488705261428641820872027512139528315813326263704494257886729031195087872017467060181334625794735475848949425056715230288729714415956868528765552545520723605196257781110332414497573161653809983717342154835598558676180020477234584301355313914791424963848884695049476900409700229798715232887555136713076513363062015022726639915461684785963291947939981471360223469358159429065559444311484201178154338353401047237840823972714795458161496903779343063827187881459578482669109798566835410154206426998735490917270429417546686500602444494941346540796416609743198595273101403747571706867923219771705823773088957298153675001745864051912662753338643051130947711020176263849290041911680802705314212670894871675510931451698476056002322962659770446835209900779088799578912409502626817455435224266776427230307307801547450646810038387216538436438957595178637947327258206340569731179123043440764645802864681155869429930744366343838410093913003328604963497137259428177418596082562341115881199068002230217848587955136526159107181601680249262851657936274812071958950281904328398357461929141593383424794516486814990262955988576372629719159261377764414837762079779002847869493841102206677435712394382393561572136187015195074246618622693591832116351255834929833801041352804358536262162805523599734550406064981769878153338238224422799823347398015725619382864704714604126927787529379081782918579222217365780898004053714379718583821545735675819840877998011896995121025141848281676660546459301214283447928454305950319489694048644772788349796451354318733488466343803934208740627270235206486821542259463664198158758028605746583932190431798234723562314613132192903463445826524851422166132095525434123011381257712103875607002011118369110433287570983459385449903394188456809303126719735854703933762306605119717299802134538231299452841147718706474403363753533327757806573837945745850951286747517382648120945884483844387264489412684311485893208866337384143459858233535228134685125649789295109004805654925705633233372070426169740055258659187177322146283504958318395080892621469514125650072529229305700101934377725680402345245344462422243316287334982525057343381406617948277168541700915127567371355796438433409912710911805072691048086722890461739286311750866362565814562715648883010466579685980737313509936560585331054424192284887916231965476533381594747495346418720251716466880847938730180897005715151081195811912760091802313832412785755452250599325774125395001944201595931440161712029589762243596259582882404987176512667405711851743558486049366458238016707373675565215518816020842691861168375859364758283774759683888295825984680726998552865047451558150334892302513645542235544627010037385796914439213580311147584828638760459363062357754272064556611539849405401312666853366554676469037286529974558448694732169644057020166541299657996537254916890182338503545170688669698711389501211826328885095331086872807540487998980502562343410304249545518137071024532420219665960203934338164734416759871173547235393862132863041220196747520537182466070810568277590959446779116891635159285166751545539941733830790865707983987984000091276195958162650738696080680318201747077238515937095150670011051370201775210810276482520643265665332472558593852623408794984933881260610278806112675209572666904806249849966461234055561855814660140381624257991142457313296871137748726913215092338248348849060610470101011426420264888437102448592989301575808124232283033731460346717618787987261053499204220883454265911466203897421608576747206930350217612950075679440613837702462916737863534319461957622465935912986517135616760842902749873361550026047650109072309702996306336809088966869516193031167440879946961275460580630008031609184808936546436847021982730208381289867662431824241445966167562104688800208879431352012788078863982057706873738413150236283337119464404639975332910770913765130957337240533863907574829123822207038495431783770102781392086553501492735918355280972241794190211463125921885252854284843845733204081920831255263674147897882612566511485804559846515327219037976440774893061462621046464360964390032136005982857108217871359578411918979089371571037975502647356933546808885831961708877811132740368819827248028223408294933578232962880067996689545829541181889231213884177319964755146017883271200106948668536781020791516542847427579933902593895237348044628074487935985092662727333597451691570128197774731962302284361214142907742175490515033983702597859209614790845677231489292529264084785963834325238779169858448483138490925724434151860499816771611191074642657312702807995215391630066871395399804358961588477613163672440562257057768389123037551374990110768772214159243871215918528534494629332211762239630305573590237110572958031508078423696073013436356557968455219973656130591277577468992672148722871749555520658264235958812823799994445582882275213929785847400630849458235001457013994927981333589907049293366646448457311039776481129441086050370645212980329636262187979848127651342632398513522187262687099687656478927377681970394656776793932969671827738749904669234033205946429186999778719555955759821868844416760496718649630289610127117790922232435963147803466136413745355421965085481145742452204031091844500235576038611133902529505756672920614718923213538847668855905869315179182384939212807765984582895168725111255400851157072206224047352575075236382074866539707007253446597875155575557953103736425499823697444185413939359835284412113548971425192665698413200730347560498362303587829296127158551150997893609162337465034542253050365519911061481386514230807633623095695136041831083259395505934959539484681911340715007211757565406653759857985038369520995184516653840593868163837781678706344180970672953344782500101106973181986677884605721936096000585716122956626532038478792632137898365047203210398292717390224641216835066724807252271411558820490121906969932599706970877136086492467900582577216186356079768182424251264505380723109135187258040782564563524248836174149248291903743042070133613542789856619913885050843335245693301926681207844722304969620051187417230079773506799822533601779249741903703054593524133631065749903107730258299328956012333960523092948709992224199758315845284170406632064889256408684376929158036550206397433350526138419230356098304138691601554621647131485833558774603892373210066292300191362671698416127692005223486310291403091238475950087065638877437778736450436527403063611948820665084305403839296761501185535589867223800773311852459399382794739759498143027413481476091407337858933620096400727297818189670272759461549111201949111544159724565036978098373230694459587775620814409727487954902560701109489814199670144323109652302848445506221795430898379078348480172222279464564141461784467128903534705962033682183841244029277047764060448725470796942810616757875800642969468918393681551102245867874900837976863526570323310802724418151525996116536170535879733225241812435195612034417517248470387989858024806669196931872597519265743104422880930912194194747667252140699259117713852133602245370036883649222311529358298839381478002661443425022142139477859903081058297823493198628440048825538407266499528437780569597685749995320956625590209366160591487125948008731109157304395456962116328246900017416940281909735961858568060283682092756811732324312561210927552704135641507258692358025451526072715219858800997393984059357773584315530925750898919034889565180372192083705384230978054536626100488029808486216509871381246820298545919980250893915990637495512931537086349221406102556380614565826476195068498641670815613128335201780465485158540201094400945635714738580404924638758264068169390305017114963719110865842618307749886865000267673756342696425927841613396141801285647725528649393925817238384455090521113377384812594208007971561551954470061484579645555741486425932097399610425968608834693817000832139297632272307970907316078248233081509048560453961590382942640815385447128101625069873876584935291463440026913482716007567468598131398801254526976681947248853610965193884429590225037147220604189729696034371214674139788835701505589195584811161025343641428482422228791961067278560149136939736430645338487974305068062607275097748643330260254647307675191912722984988468045503022266152337896943703160313539965483440666611785006719034430376602675110252352234638051979272159150807722904478817991862379009288191754121366275993499412793372333370430524330861839984466762800401871433083792741579790753325012318156047864459729910570654264783733207456956203682461240570888471937193073574140704120193040658211104973174224623783081209122002900468754982322404691129111030839253899489540821350946936958093347619788912116324493017833110615998090813875571629484459155257995767061872678901045383122342098016315006968974235803690005592705873108964940496170497845344276845574540814713437256331626267755518194643687112758698246148008336745569037971827171862739953820720058061119588319721715089068574067137894091089407068975664209446114872876758259743711216800107534941135076400019658196966668727383911897831352548902735194122264525477379604859399447164059043237977141946178636627385529239831455582224408970978473756696994179851126077082785810776856322205050624843291809004414125405405973120781339510690443056722442719269383873804140154340085429845529727540708792737091247049179851266624608884219107386535554931781943872894788143592361632320347013231170143665021121070862722748388578086674318945403796449630006864974113206679779467614165682098119980709124878078737824241558602273856199204745822430514810184506899347145456849004816020917070725217501168784257873090114661033234976892130821245675293582204107036019752021759143174021956077210500271124976843000334455919459247703922673142767604978956219005740023308420771845005739010208085418300994772732776667102675949685237162081504032512241411114555540080451297052864655753598533698423225837316276561349656068284863927584459141627828905654970235505816744911187091502378224206033675964724532419179364690097402183667809014839080630131036198342846705257430659319937821957225143404039008815654921053502710347021765605125377241129609451507287401359059381307551338684660490382297435110892306446607984651814308531374940121557717207886437599071409085173355001521943048110396106776815604829045230611299880047021760095924869076252851736442605597410605122642749613138560097819523679619220894277652008874342881475718228779968658717767363299576408304929811432898021978124251560037218542049336350748634907154146670017759259866257117971062872112291852691060525570556578530464120612430330830422138937647687015736644911335300187913693963395308307103494289897855022007092102112298458582816664951417843547645537159105647674379267814486601215541787973601190022557307975739500450567952441773418071490242796832321874030648432745246684403376877656585545509197413332891946963597682387569780887063266695319401615192240335282946861291592817547802311127055178722734276956097140596657599253559030519514325118435870151247356709411114260675935605102241136005218879694262055208069630675569192490661174225034282178369742391396459323372056831754033665693769830022295285500114375369090298084248291535396097579379271550711570563246982942498507738443108030478772475924928689608648020983443835162666725157186931163422805556956861152551101329493117140533734693452511944444160214376220601413054983488572266398061936188772158065114952046964088034888879949924019235126622224418841016594904898065609561922221915899975827505465340753956315057573186152262735073340161966602684984279874339116731746372018363500166316217931030237463184672138272436211173775564761041850657554244617117584821036603515578678090304421381344215313598132790047610123642370613783377081300251798216360556255667366665015216090240103616723291354826638893226361267739240980048481321779011734349874371125418961216755721895439207490652044055494836564536632768138915914877238859401615342222133004642783099970989281046880664132857654288963298042909507039674616505646925788314464084382752647568122229257533136852797483229061468577747493550594468642306257059635709651004175966076427359846046137116652651425754910068161671007176313109674254171473543623509175750316515902727635867900599261642021431725272968100774891222767521441535926405970310364164062912542791827970238178259777151696037215040456637556175471784521922620550373097057156861457024170949858317076092387671361950657707896367064736700956411417255398991821154943062238041782271042230679924462407902014587808137938943508674583613337281031644205192558402575024564187943942493966890200773115294531481812910241024596267516305170230642774943591386882294913305186075312959918871676890664330537577026842388745490249149908727692522301312021826272458861260353113039332376773470878530681266016365213321638203925121957272629279251554266532407588742249828685291698315541501376084621852160465585526507045656711025671589632954505259285816644684821269271058338676689155745225055152166035928167556925241137219897107800992437871260392047164077332674317478377177501478182342738245898900018711481505866145287575800514956636655297385932078657644863362450454058292172886504705336904197909855524339232324012034314065430291823343740412165385349966540017671186201500970371883480152702093526717700467213387996555515180634506427413867486609774680797068445323599623287239072260301914650203945149537516211699801126000083027919563356484491696967710876038299868471431660283089632013290430758648860880969584796693405810333985227089992332305928647534268668312693685366757758854573401807157217485396297105978635329472475417204580199921517675814582004634506299923997764532554760985249049843099216462358373046173820698277957433737443001345636845145726066654988229894626947687616203795929943360847080152447450047556250458354883850887008286789392724306115152492845105157733231082921002908701967877385212929114362875389258437390180807610475133355458227504899441051958992370446485206934374945792945176416551867886307421566861313666476697825034956011825182949809521487217467061657576241843926903372414814836717527292701110914038904334489323452284381490712359146674570663763456138806915233516107845151476892749311019330564984163050724573455239019937297963568957644787069445928936305759009367782223730930790593238127640884862766828833673703686692529034646390868832865337054370314879961146796365655167471196229393255098159046129646039725772360286503296069321775462681965556088941533555731831756011964798416183731934662424820812920315303382415439291217132263124459259893469274145222763586416605823892127231484687186600151956221558900041190708911447718219992941725589417010009270611921287931743081712111660420916673218366815912457870962036370781518952134838348015746314715271640051124946192103725449037387522173966846445833914935605371612175812774442755945686633278248851114971558080144098760840338055675777228752607565613191692416070554060197914014781976924913488232659554288532887391452813600842706142910559185131097174030906264163845011701668193842106886700674425281696892800088996354893239945951441108082152107267231766592355593828883052631323951472540039815931257107753362133756903984918885159926974719904480668907649727938309060334043427206530196370113798731262073419106194228983917532689867121687883196783330690654996300047203826477090858319704923073357731845153603815758004653972065271825368974822257588957132559168815988019097493037995785684600687295950114304324049156923899917367543847717306211656431119644540885636940490631123896935641465296507937528437443542528057392910770185203431704979685857104220611876944083624419993640912422829391948953155344543797021663329458676430579277536606479563424023918394468347424233462099930375209354916316693757161985830802690658744665844948510099446516915064523402160716858262629065088958431394248739243391629187394782196995798869157584431781826612969655900238871804963214418149030601211787177283951388836738753286297196010152651537846734857758646461042839828295982743748269708193824905168447210451163144630501626814839238813825617827433353969106002724085641998361719570435803673509053814980247814593435242471684667674256442947539020305500127907869145148370457630705889127269687712641369498216772585720595862966242814149072885971942852510906818733507955551716669681784767710441192607873993766840174501694596325282074353406156824565695476512437483683026114236173249630450673015766339219950273370882468019338955143875681102354103624307743135832594115803967273866186696576002893136973825938299566699847282924484949334788500423639914857496494548194087308573029045378084578366462718942760401903690668078344962204398707383283230467721426086890999636176059057116605892554934586258129685431756533723416266141401312975045565887011528961586868521432856924345401721354345609999862780484914833580784029948954124811231743762983828935451774377887943216856266366937738827575716758726282918616633766814130374682300794416091196738595961579091909927559943014152174463241418457597045801605477067325566611362075106654535600113292776943470564640745969837599112116608051244439193193891728136948657945584274211903115130106730060945150895000844677604290412770398413544518626070020324740333335347731925050954965702861385109884848627303711627573923773016645468916050469488906247259632309412383581916779268921011481180260918283338940045673771801881010922017138793840563592512809962901821846483730640508120298391320738449799014457983845156396201031647345787973324923635661981314601765414938732455139370665710576028157521599202832649630524032051898530245983519749153184663356070235125001432053550199805120524180172405286414453239968986415358483765188563678502610695226844737522019217142688482667204041180954123716611598157946968999633075398414444830210970984023745149942487737888503788737021317759904272614305028849025537560841861075832746842497154812339207073167722166245543316670075303200574313828180511139954625957054066374517378306633588634958588369074280500306103530162986142635311556666106358466976938555309896124538068392774601472060516745639598306696892775582860560461331250983280846270780459624868849249194114673200354710069066408894703340964994797221945691274461309569285597330193212864489352390649690224043396343598273822405357160660713311768210106605662230814028863523214384278257845446098383367316185951901428551177211419570031943007580353756309218205172629208184320497624616856319407549844294229170069992037531045511916741728463653616040342463600186949206820855898274477683604234468242903555542774591929773709355045860170203240520945412857329284615938926295057404130987769503746298137053481212064718395950594715577197072443025025153191350458976935990470739468869013907079282962391737076474801460156321615163772259778092179244782644518734658686187272958842815062351783276439933805037038866866832709382708314406667067050191908807675958109743133731543472013740815387886963728980595567928825869598623656994950665995694030018739007568436786619768241066942565528677297308235896545472928003720414321447501099778846507443978305829274505035827414127431306654373586337783918756996865985542839591095519721956178280858842789088083629763698584231732143770191180291948372975187020313564251518819418958570342974079525714124683808443533229411450673060169487008040720406121585708366155068003895859791001757605800883417005311055084879676622903516135918831443126803148548964811657337427155754935553367675030362254706381241501824965589999362222654435623033572302972581428519853094015157480680292859962153676237015766654140286580070669852608316701229751516077633655600097849408730426981765844475267416007691511672937612552474143097589221018055600610550601472773400283523598667992151346226421185134010421860401164607178112255930170650799203070633612453613718736072912490803668123112703761028405172781527825083797739167835411494559071926153485219107771869785394138604667943178993972296968047626404925028816926518233559929691191535148744851683697914356136214766746024959235731220643075567559502989987098273015209444444177562832978585295631392469361621987765223173782218564311987207756181897330771906822980848201545962315683310163675996713549896266148605990643004770898783939839803046947823092655160990991057523916595960981585578734384503042060209270595242592863669999071734612708726991979651115113228671197021436784238946003831449158683295797969227458623985961018254285492504972747549828286829235431847333809375456782548274475243738841330271005752799710414499881400673426001274681449344019515582514435372818024410264235584641943031121521089041730353788428454051581151719146050617468904789415698922969187051425359063825859078697706965613873367334782092807358116197047170276437927033588273028682670292061952802129751778075592208288605139442649084296176245843017570886652496781318708895453075183267410244318098357430319634761016083361232469938073955230549456246959698667536117924251956972846709827716806339810038742773377016496965031391957311840430137844186800175448945495390500429587570315347913603824608951641007264699353047481017638134405092415905214559771808472673401384137154489076212123016488944838690009176422141736902605903997890983380755635585198547900094480512291986793291159397739340376107522243544186643383375919075274271396876698180758424463567047389603526683535418487557764202719844882231899813571588558738368759395219280937471959449957256081409104180919326235098817990589350128276160551577936066991496061267096824895488139571448400083388932408826231869109517605586662150626737084506472656866061425377738238882095036872278866031443631080600754723000994265327038902092994698857291190272460696832824481189911808752718124969780216418440098715883362133521342977097107722185818031300851483599904347976217117403090121762575376910623975306745594029893551109831001577720735210053507108952845579613098187160745787226400457091673735754291639165960727031640223311112824204657511034830717651168731657507489968330544367980399854531263028752383459772559354666948337452513660810132401727166164270764850973568229725189932549861153485356641053657081345716943737549940120420124702399314257488619684112952000808828481178491821029354403313690959738924063218883294331050812681953944409115586161009981062979325460529778850011067006249958936538972509183626818574775286039142189248677865144240239686972652848828725635167144205032008953487873825492864604459638553332274144092026076429088787054651242434736041133699666783826354466467791928135824654485032603460526261033852151298425977628353259756345565680100708727154804587270850210865404048983368071382297531409746248485023504837681119755084203684235823822165790443483556546755461740338401828496476018111947527662198581665872830124766586748401219993575424221016901504577500714104970674741585717582113782772284342792351074955646718833699315884638704680839023595237026364429895347756421086065983143600895532297952056288121488141909234977079376002062626602641255528521449757873883587885161226905661913586130557609902946223424169591741580069886910271735988077151269042370734254164370687133386400790313074184038219686393481893371155339409183832587697643281438522861982572202816507450727222531349748856057434860936175499644975734882004647162370266583980575889828820730177203597555849968571681039024298514298199088612695764803188675130650377257718361406590362503638159279354606551218343727913626305243713939026209664497361956747315729091281519297614077351135215007054090003352441505734245129027887229909687136928005837238386320439842047601056455677488690013906287530487921834888929518011595552176057158703197970802362356517491169213542126803035206701717306154675574027846303943469068483856009296214823223497495328507687236625069648545605637663249704114221912093424628983252069004310235221933206258535864861622965490196732776194303137525172347611161325332659191728067618221389117846575345327291058524714918764168543054765113437211444870524988831154854088054715480825048495602109845589816225080659628356590732666243369374609690280176031826744500480028523604007249196151080441306283167141206094296200575586543950090179261569958170498540505167348876577835319047868003884019638209383952863456119078741637518449474056581010042065379432911860766350870887171303483129049263045725502796631495317673894034286405008122338082293052311150746587544526651680592207947221270821845564313541186805447351106771422506676171138051772677699961139926572475874567241414631844079706384208572288873672935142432293484912991195553940799375525916055227904767336718565515024557515721533001380282044652047137171934251696873101876480831945603523452443834702770133055645761362653430329049673396073367600384402965229142971160866811492731705405118720312172712666220290367359720784788913308696420327497663708751573189868605797252209290541045657454771408815892619712277154946514052053095694681378336460352010448638873731872606682293543025127257221310660300017759598787693266199572980723234881645687010091617948062683099901254427428703321371724045784067027579025702090954350683489828784428342391078802552981276263421188989027826381630589732383098643821986899564083323427653018235815692232363549192667190568069087116322088099749131587897646855190013544284242368021654506435884527378521383715475787283246138829080138547554583923193843720012836138084202507146609977323319292267719348175507476307648435786421289483330409281334480973313165380553229525545893911402832208901204843364249369012166156076404710303369784299535285120940401702533345857684185186478514592077407607682226374802343926305818354568015957675503225068161971781532623708985209263392512749009596665501717701495376202014640024979864933660868962618931030766072886529552929828536436092500602936363528554491656674604706031602424584089293574883067462772409872438701861243359495052449070179920018771906872031660011741904133701032448238347883093644371814179174897144617435787230468355635950392325675459285509888312900687645445087823125968973586140548223026496067630539162183665005333604190120970290928423792480350477794035197499308986136576167807279688643559065379747178524145099368215546181034974234551760853482460394320904753816642464002310480024147683950243587955447449377892005030765352603382024811588809721440719675868674034811252899165724213451135524953316655130324352486073781740532400158376908631823089784638527594914911828263333919338292809006021305218113014897140478090707491795863931633312664066366063679948641467080657296615473927531103245070576855080225739617794190022057289162435192642353405564993213530338895912684939835527085826190009305585285914681435448697232985570691866468979204336609124500740378255570905527444592600790288502964132253637383671604759471182999050185448822095648755577697885912718135412910024458636303003556640458081295624290663341274521754495601008832055002061872129598775485884802349752628535985400343736354300014229339895379442734288740190197321263278761884837023749474698367845846575226280815600429468955780825360757534746567256735263117266958820542170944828289411893426778139886447673604097676107829604754585392910390182693765679173693199290821520457823245032595842569200703688311807453433290438498265961749153286315149735287175226136848128460163360771944613478726551902560225629891697085170872554767082808799853607291876317980472258599940099770153661226389186361328888952736431285325596377361630033416281476279180982777675880248590797512267103541933562077442681360546417957340564112661599080123011843765513841388165044406835041781174247767492907850472887919256668812287021132435261472152311232834896942970344303566711288059355153765174648532239767201803837765282540627018110092576281607830302560234722617011677623862989864473623128939597072671768787217392356137290497187544498138308393090107455174397464473753716635082047049812311933462858349744717219132707857945450289727607850018764767867386078232626963543874416525301570070781784614425090751757375731972856770480123056795973447196407235181007593593620388660953437817355892205289590327031168877124414221607223073212857791282580273026515189325935656080032684255019695558339527973183252499880798310932178526811051259533321868384904952572305918661259199365438771353523916570267600202012527135551006840114784324122968729047581658343051517546006697792877356833999558099372398546945154155089514573680129558779713646239353609235546448556389059158020282335884866801128096102701369610265937543600633338797074657394600141408367575288970477587326247581007574642317239683179392350527174321376793657208387565096376727742552225331839862410101096552446933227226835208364915458870759543293561521323874300982984256080556922354689928859346425184046393362767861892947817983451046010577349516420315533860220084071420738254534821713171316299050901964159021861176876215409268271840406764309682576751735299670280325490373582265811959783821307123687746776352267080771602576953884174044655864922170515480348125926904535248983680722802724995080977112911875765458635208899051958054583423010607817393359731167834807970743045200550196070621910234405623340946212632113831783601194899034156211029748975141528130796581018510920969724977657996217925595115865238980651706039374772973656920319132584949019111045065396678402826744092942819588155335012229766870496483346623247516668863369411171669809669800983061836050328912272384324770227185479711718759886593136055252536286956474194578572910786023498556829895242745019148104791436616142739043553780174110434045713807200931022816734590470418138186566824764706568618481632217930366590586986046109312659061079617733163362799361210726827066309296740597661996139520007432363555963125925586519671466823261468387869773307569680890220039509443018920497978434554300599357559682118617118519681520638508491579455754641119902887382380712076542907095266164665515104394313476819624539098176740830228473073650244741574363055850944610683411447095991740055019840109656898706819911664055471199399402855804259636803178092901062471431806695358306905838122807133506448605059900895278449330915636535829787621565377652262656571121626932299094695086728828131546004610506117735196480795668861969899514711229803245813124376994489860494662300531251873923243294571614357949487908962665374183056771525460733882726908821240153799285018864331129112986502201735525399449167263662980380302475967571810558226359916574316679940656977208755042080922225642601929111162788098573423429883838983051996200907133340463030666898335006428332768952181003833654931491905224696225560935532225436393766394436887351046595624016297422801354090120349814973767489443857437270731505391438863731964348910460614672321141997859706512955686780268587620338675074404415121396896516152829492848672091357428878364860102788654347648576174063094096183573252439567939100782442498658212579442432167908397612752418228096837699360558977777816114093179864728489662652001228959077614113595441779633670685145998243423070802047625590060832360704342995628061235186090329620146315911982587483768516406934558963272603784675529052299682868965639244932723966554163135435269353003761676075977073537664270441015835708492319866760904893934133983338776312990933155693741761079925108969865172887728427891318560279400946994754477683440038008558375642573672224538411476315329273720401955128138388434464985305270755125195331887985722411013540170261915271037436590902378413943555444459355598982023838079201143043219479738334770876838035962884616120256348825619344854933114235631562521852347224604062813314733656564503141682001780742205616681141843214835722111392937772307331947912775596665886203518963734863431814813031567636632799966429072863404670410935329524735470662507072234221982069444485412055692770904490391658097048712077841273615134151994552651910694461927598432721031318308551810828286710279934943874591331172749862585566476384391500330902688524931240465608143720814112304586216761342529633625320920660547636434156634120702435992064223246293872439033280399500016604383513392958816286374065335926260438596286014836740867468166132039677263040456467346175534808508723785224372222021688021203965989830925061378433104212628810824240271298766171277313392047837288950633588469812774768719821120229894524149983469718879824885666959123835685691700495022768225074677691379306452147545654803058974572688466080758029419103684593983966811565554116293813185635626849069057638086975100461965955263658515050671983698480694943699180526416938485953981892586815621914924288485354273414209690820066168127374024630720834251591603356330462125947304779187173428728755331809454775792235995703477697992798111101837656708547267601700850663580023202964168098876681391410911366436645363296649583937643655702480233539506592689164574739716181784433831410575885345229415456602359098967675735570239964069853251408639047962408783967515250973927476783762625556048900821394259587436133429172897978056592192344331535297000049605846350269150744606859069767049665327477863009545088582222978123245606358131085605934107153620904645521078860473712044244203917194580169070552380519800565451958785350694935070710194452883684388063333686449944434237068981440580321548889987300684395422833327521801020346920820583845689287747445092277872073424662923579612029026138767924492872827775545940485101981048900934964456337709259200148787155156641706866557648866221179136202009275313995234090890305881007728763835646610725846277676914386274106891818130281019355371231562354456112136051452211499524776685607088987919751120231993780698997847759358157988206669887875960580132105436944857123571404877721617004133856231971126217893191637010419774106408750764370731352723254394171552697281184232009925752080145732726758914651433442284084162310447156292611758154997961641339058090115357629559326363945757899841140338716938459780653043872319290509360812642060162768958107978462035434393939582176997756415146468393173833357941627666134985029848721923524584720950270874497901349368282667296863301082789419135429473841094597211912857921855863041497437062949572709401548044693530585534759823089393428820753388578799279487843032373737813156831007862781422836529977891858414149889036723954520248945925862225006086313727329218972557983233230093515790822165899374983976114912871685967067755414439965127236130449611870782983670881489336215807470920124971118934215677502387050984919354749352725083762501147313409855263484026329239909220812350843854048920374047740972644710066302895866701811870271703344876163133160777244882512377551063942504073509190655127719903377435866961224783005521131793968549339806798924214024549127892276408178063098232154156736571928545948724347202713683075350610887624349796296159028185057325813071093412604798443760136757130550177805087335894932746433958315115380079850917057009884723288252326237667789058237022235778392381344476258767386621003097727043074372751454676714239865862763280230071946796775459956263689683766408977302400572243621441630913208276032913381073397317195938362124330661624992377368899198698737963058640783060145704555887071386715793002016123545563141563088338002546447286206214459304510397929004730663794193840360241664297231308276979487682661525008258789130650465326828430307941622892008926080779411712443559428507527576022628728538848053169803859489114898927992575108025056777045075498109976531209140824633365908208397950854589159796617229062161919312849018954004354859477680400733797907722618727681496517745728267111730872984904534837835085375018002114182388515222694785165925767362029894903378645453274764033058839857699255812846544147481987406862546346372372939607750684082376640423846036593930569757766530852013385585133631583898732724457342359410291990819013452729592615554860248074812207860050036720855633691504527488969239296722584424618872232025452173418147988973597559606116306835100154084940092360040783193715736615843216393072378533408854825082776306414475473028103766984298279760189742011488414595747247220918921421982155166805552118187454683127093779895487164371282438894880898767541130038501182935967090856746480096688074458132374638657082829191341496543519571323835428844825024099012530000975007770040361910446361679828759315601598655828849829120065762608168112669359737946472668154860597043022241062445448800730846331943390560681535196071347544959233757825855477921915323993107400857028231022027040964635708281345386733494528799973939286892259003222310020528179161877655687759451103330254508167459680242309557029700502399548492734490898921879588865857854602713456438587318705959854209623137626088328082526049893515097885353533790975066079197932896534692427456600458220442426193368658669554597808713755646719084274077579390452560539243701431902781311759162732089376909746087638861197489049189197215436065661182979375155682530184842450308650415543545334273296282660628782659240895542654145564785871292648684493713583664776976925727011064041675050242441562867501679826308424434482273634194537321574601124558396878074850323261938551544601179747447565384715026086553479984976172498741613865735278805627305575420358355276212909632159537306723408551294632157900736483248878949594055539879518132974425016254214774579296238051724339107555833464540003861990960541399244325572703823495248091227681678281989530155310065200108865532466932689542429548227606616974754679714031929851391409812923551202038659710970966403524744437720150629610622719846538947406394088654471893862582134950813412470052618746932780401711383535343187070077181344888049910203288370024380444579385023328285958453525834987124550605100343111503953774809275509739444254165313957394667235797542123375406681347984249742486235130866245979548792940649862466468713717163376242843769083301851529446523628498007817105987120116833199220622261163568935219221105372209118987411489029557411113812396529570129778866846011992726618217631947385734727666693470645635720312276870189872909365806344193556107918498477824420096238238781309109082308403402519702926267086605659719442081118966498684644882272590589669409362189420037179689690230308920301526621192348358111343199867245097446219123215994083288697702005575098871112713164479897746012055241072725707868828283380949548555532424210762436319373609944610831795391276165717388610338946969432407799477586809224293750703949641182212663307916311276582258404116751800391666846636693215757784949009963633542684860750917655646430496822729960340442042634104606039624444314973117815566591149434761812515731997443250565682011215766981345256457084654367729802234040165989305198274733546018786707700980301709651322937562742329825562654916000373205064004395199278990238483974544730693622698061732416048290421557342692618902438887554970566700721478432703730810191566554462555391600380309054338539487479389299864002256631160651574322506672021352199022553232413855298279164518090916073756484253050883349429861992168144208330473341578903492495278182631418968072216327183259311079929373056835918609979944945465645695949729362437793176740600159595569375732086170194093756253986222790601451563861853395266025151519804496637565913872008393115391259882159637979028764855616901790535806478729372072514299544134678262705708842821241259167773204247148472479780513641506130012936442683097453562514339307944840004493312524212186784325170218297911200394471141434992951574894730278782649650186841686049541753759292757679864494170574999481117572756123426451045756124837006203890013563243664714945946026565403389543561383931904125018164284494374686349164617608693568594813205496597607581620247213440751366756159768116361737892516718255295713469741667510335778876459434892583283154835182207242580135718041363360496079524791205261146292990689891195379159013624099331224323677772443882057311500906864388769102978053021546327020051664341840033582678603664637744584556241110161116664514373481483455126332765659458160724646215091301848865283324877940301421826347495698250954512181237072730922557610189482284625383045387811989031851462583944444732851704687603411755047896765338521337295758366209264518841310872647197241049428539207837045771781305177912195536825587641871637297121546772607314943047246898507967232254232890736119299669947476265054263578535095115238751897896125417381080800427012393882143139530262059357626658131095674756062726934172280898588449025112335692732844045926920453150529985114439980465536723543192695563300062545954399165211263498120255810417201281482316146802498406282801288947662524752670236615486755644984983957435652603906775366940936481027023423388010833531394725788893535068439827270545168376135730314829410212628995736328029135598525314371198818464692492928890218602955678345040893875323788749479802435482595569496876154948688685200998801785412446205197876261091920568304220173524180728413361256663153801264748386544588782919266956543789752909517015399021061484148714944214709806946546732385905216741390071428844761257407336801652108223037390220046819049722885374521677284440388455652419864673085165708271007200106338354710440527063527632052359308723949081652920698548760672325580638098152433480003759108025347109591470145609501919686054586584110367957691487946344923125256859325138960666858055263781767117277855843188579512172318117454973237672250071401964851642304087695119354990842588086627861856018293907541324873409458655708638895042968117933084850597078892190584616384570579405880927846979826399667331917104342851220153380628065541036233986861141711062354883699568176168939758647628170954438487203934684004757127417321183449690182542498740410817372102449431566171947240605955310867603634400916685228166240926661272291650514178135243535948470345180397238717519899658116997155401283889763830934333814562219808660940525209669412978324672745133247150784237651041696326822294201756865130988061571810059331895375856967650945639073714776378531403271454563064904191027298082825744591071916709432774065387536978072339810871543919343055062688841598972220434021878561039244276190926129716473605966186840131461487617737574644060702134837573332968497272663629331875608170926224947015730949586691483389107481749216548480445666469725319127218241355323489041448778514660756301939262746253301636463493944572339073858516536278279834777975998720961043406792912642522427251367371288678614812593811320762193931435713128215217066375525655569931956327367377353190623564863298730555166713406080257957816016614583320373791377731250347970268308048008815938479120243860596984312460755315341125519813273081702225392319556969411403681794076680917653370333778208030405083085846795222037671894950242620353887604708697387090516533088904483500291688060983642139768201353061544266124690868053432610007656815302568147865562196826259569414122317924909659841756728480054626361436079971157450336108287001584937137641262411431564487133134610749605702265610613643086480794247046539920253278874677394631910787461625594006328693242407790183137532890270364911007241868425244076702622586755426468337378438714756436381418340981215561532134959595338469913291863616514922955749575601670235427746130310469996164393182097834466539424033184208228169624509295920520995961964169694719428682308132272303585047970144541836178604166418076465079670385506110933322577389714450172388918027169387138659125017532321265653518063869048806979239168674355431406581161612656236274624672705250214712680142703162703969581242736777499436554150896980770250726443540452051134272718613129565908742588264324501256685587010896213986505337619607870633729765732912406996606837647522957243067922316464039895596623577584088935842584936440638380013890146271618684978343532978107096691711737653258031575134650560963106180243367328459215970114051369172098220943292238089767615873165020480836576708781126966281766727434272005826766161614402277121440273647328122303257891688602838151081491140689093438031176797715594589873961400045289787071566056348207551404595073862283077671030876056867949552103440966332262550050717152637380058910726328635689896714726575633718124112252687122996607097859806562621771548710885240783201563513743806213478198718804108242680256529525880209861460558673561825003801491629090182282187925399685602906839421038305300806557618448868267547339613771926823612571286141824680968167810686493933060134524639867876618744902379288951806822230992571500852575509676908197015240845934885372093864998949999108521590030108746604533534741072383533635366369063087256100305116600581248328619629153248715988581069376693975074541516690503104776655102897777069767338344469373083242506491771538784103880088016820683903191555637659901395949587240342275556754891015165550556360175314997945382579984360264487737570820006368428053470664160046780646046174634714738438530345359774794497514329641300068834071550354663988686261121667634766232873626871357290751665700462927439248057182624051213240741551507123421171572879770665197390677014039200673736642708485365616360566956156511574584445244147306830077634211916190835197687802351434311522667610800530095337567416771636128163424613652441919223315087945165210874148299010212557467294584642855325196792965959547808439196142780501658314753429811771218345517036689893741330196784025924085955553066441417226965326000062999102009645875266010746700234403694434171161281916807167285994532819586156961967404201364182771541183041583118145034769912084500850693034780328560717149048547395326340688585231637340903790527088792006951374459292448019828559061961157598324175420036056895488986947369649708248447435109847898678316006882277207793781384817611512511710475458353434105673833002276944878473182248939813851566741068993532378685940192439486865589413796563946335033072005091955612441442942576731694771042429814964503887710655191148124486430949601308206626714804982642647721738111506140373660742797328869898436368760079582322612340047433308403927534403791042194485386118790396084573211150512173766337284635593023854563308879977815784634304981779562533215510915210757834512771971743405637658886351343302227748622569866527898561032108950093982983772539648190983434082896762197880306958853338794471629909233616818489492662371054199140855971198536376431643348434094534374122406276556239278480747262262700642125991402532374353175347603505100622896964292316713217187115886881314052671302139920735075149193105603728531623634589771146533740571509169653346944448827284380004788843565383258429900964562107059941546922674098562100397377769563441056241844261966943161741205854715336136436996834665226224095004115208442119800665675507509844452329844716362274857879116805359236506387118046717695975616859297710413803071822725507637967276029935240600152525291976357623344009422882829183660906547545154408611393155731647148372950463916873860611646175564739898684236835305852598491689286205625964468733379647905920935840499110755737999808401962662959191167857829776142541813700282601212061148586296251159475382749687406055931760409769937613859990209270276377563854407125075198217623623969812297380081805553280237597535453315273886208909055167194725229614298991871539403394301873848737013141510131121617330609148987060835185661497580348073959536385556989998701881091013142417014046982761719700874378606800052324377323576845479761689627508392700667211412696985248524503169730904453433288013643530428795367056015959273481483393972146549559043141531037797711775717089200045092392941253899726503564032601333086394567282691555588287646525421543934693389457561055999652293313325361846310430852720256058439389292026303337839783368632482616534027861413438848775712656420021190757963055836053224232414669599074297225434738833073732815958725093302220495514016925402553069836704240311917560789274128027239436358706337537607807758123804315014922782004020406090156670278366576950841867962869896668401267148136026602465622291472860343585072172050588661918021125746004410388539844179834008279427585579757632310167340495617719967693522086579469065273088372352298930102800890601467218835537620476066326168288924989060913235715807797195040276367706045049465955029964920565544743137318458146319829896367686827622298344363479516972381233893361012526295019216060502833758715410014261451015649322770279508781327673552996766507910379340920836550754458027562925204847597231494848760203344027585631595940085175056864511900379939608003691759278658184439210365716358275349769229399014731714675279560773618109529703718653653697375985739004913198536752520519583084353986867061483642361895528516365861361406216240776043952990453116573724822296305856427512084056072220278140235956841269200582069514252117481813665823145155485519302680391193588000383986759214701239799193721035834391992021558106645562105417035543495684310948955596701168290328799988542918483543172163136581519518242110004074639144921157270468400615393831695014405374964680806790197283921480076137260290996898047324566652713871617428710026835845094635944777426397917837944303547428407032883367203602353738187695855241550827416194340639801383300066229600602799212741193819088226469433542319217946640072378719943850750471349742785684526849673775326813577328768752458517250360673253184639440837002069940822344025935128219562991406253237960112778309504752034786367490479959793585583230605853790191689662093059386181053755709878298405542125172778637684793543659376678618854169877734639655390974825490890993111305861324276572452711268649046551708073908959591290434288791476546150396352674296350852899648419160060731528576982642965260428792585389903948538450868777644950646480420941352731559919667027488394239190097208213108747575675479174966188457567618204773686922872517774741168297628288734125333029861096690897272527331435176287480052031061868475864518513217939751434015174180956377810057503260332552205233389205586782797427811786993969803512477111981767072467677328906142458253070753377246537523907622821864861574090673277501955129449623304252076707492214792903893365880300097503517760305028765500340470558990970904637623932611436335327558745394326664475735921558943160261167623263077971817254142701435206442406513869994495724519967231379575613035958410360850399097179352452522921554270512882319872181566755074741728544232215449506889039617732426688913269445561977269859831271648817520251703409243126783455051754962639819279663536558974110254817135097728801406823186113942348944033048381024291080210049812721171306188614700241625383327005139374560811919702895011177350825074100131239449189320114373525061715973807631405789435192207688078861643132508904877028485466520597401801044202217829068819498671845947950827520652888936077479311617206055287074258658050326589714107686908052302570763229789480582999787983828887224133837440649554411270158297168591993093085101433879003928322858217211039655387144520354703408325178213291335788189586732820166797206630908899242350662478079984945601911020793185327458490539988867401015230534195672881657767469393075260785135256677300816552539170641883210237619930826621095872971972360609584209360865311680213819116086627292511725464510760005560714687330465712413797432082008921655169023301973579420352469146176222863015011762624403625334308514152747042878014872230910941041347553309716628267671382629552644528020268176887105205194715464390370638917577831004600302096397489894560031219347565145111571837312092525308482426156073500579052114804677912648238555820846864401519792716012628678536473068150395468236813871953154370035815154465220823605343860556680625823349828898529284021470573868578265505082368041487407979306558331811704756131746050162361341712861249742796191069337818453149780394110652918624403940405296077237598042261063356247444956048055015179690511647453504978160904238232048915900529747696060470463589171513394562367188182284223715556673901485192327477932449945079136770107488055849923309866926194186520004686630336995459256377522743249533735133098120433454541876259439568863774303823158182504462026910078833456560306826223075349907425384890941515293100347765773982894647128363851376123293659127316587519438953357283958935157702123877971593094711462217532761726672469187201056092773335568417978798558379750305213693761509285057366370740680252719894228407893403082741523069729058553503459453946698723162094552758280989333409061031052744632663227853708696935537601247036361413111403587250652012236937153134259682339616137140415908057813908774278709069372730798656163184715680890792216104383527445158450263541069506226167879480606355781201126984915919087742673488740951964534697560409624723110866641433157242739119327187516940371659412751777784118792697716305562221102677073087713742698296782780001387569672074527289408007432198810052758362053908638028667490033050410018600299084410410756208335351026343675503617895316849804160672705120166026564034093993057737794347998524380205114857668518103291080016576542681959524108708606547245210106156901063776664914294248860912619930667334684087521975742520259132230679871952469968805850880498116013458716177111898711195519751299518698613620940769710678620854387446283591528956238682032443902352416378132885152725630049586108340469550029671162417007244833303114452052072774937579298527260675271896276558723724808661765311988229488590062944506320893498873183919664206421016576863865759045481382879077153569792661485978635093881655062581445737669480692873923211956565290172570714715796342451798209222299325835326039718850513483740750804168602678756853054180394162112224344160624310135170784572462433896885851396682385647853396556137279936557375191594531874025096067839256953856213343949181463848838584487030925653953981427711229038715806966090848221051329888397779154042833656231855739999361027072464488561077016037147228295451222041471181138677651633034928804961486230144490589291691735927391879113701982911375379742449890061536628781841928831831957553362100065579830395414405853566321785015729705475466521394565064657107690490403740591708740087273040488426219770441643235032298611522317816523298876716948021020095373407090201583332590474795650680011365345297851873217687842663453546715024305348758195831380446578960957470822044590100511327157810386653501133237468587581936530621492963599045507915854370669243917559271762467150513195791380203445365948755006227541023424503573805990928120278643979233015843210588558306288347305043007845851529750468302731716584793768038635799155812921586736829182824766159593343863265492725497431192733085743259851114937896412853141998146890405299644460183153288115472071443673912759421648251920279235573526209182362696481646829537197419055584643028801870589912829048209085901914692006385985864291168335592819086130732347397521965892775418388908925497994110727565368969847342298687299555432764236620165721457066662622422211454625921478085343439069571696159256817627629424581934824753409789024344074359235013127147419653879665373103128733606114724237865407457619519536671559455873606258992339990022017596584988390367328631566334764497939082960110011534813173369744335795876661397582151775132951185696321854869289028486374768144882534037900040884060605433297767677281106238647089898995827698818858307810125339791811616932585419090446904078652122339574663722234667297217185246826516430836236254577110036470453291323987683250476819701569858170572292569355871323067924121241719630596417700284229975348313599322841483345828188372313284190840052591908856907205254668863031621328250510499621115793735561603200968412057161537836182501313436156851818099646634413055231945427989479774080806097642535863745199083644719371654231711626841918870074299266734246672211353190813811683085451050277381310006199267319605434670168953326859420853534673212990845265060560747658428230161060257479020993583385191267032874681501750376082466724052812937761250761349019833460578166309746479809029085298636008392911768660764004658687529107930900877937513503423028980665285443120949863826320968890308061446831221477806740064872180944902007459934816052492827691458889208126274872315407291817083796104850276271269668213645232648166328420638016692153585649872696078193314450289307816367767000973669459445883224826997744416169287149632153238718655271015522750885092450450015968700651956986801883607498830388976659186417007540897250975920644091005748541284895523854657896644573203393488769843366791593713371750714064479446461059446275702149818845545462972280930606143304512396460548868332032969445039238719234560724050335411703397989298891319454314781017104322568534500245501732876353729057393082453449718115415634941130064402270962198145634465858124418726164035261772071680221281399186404720826059752387883561719143384253637353542530184478211292462652804074101060117061657034140513343862556206483325819122664759034900944997844903826030681787889308806538216521750598006084662240653870608705019077486732848561823520940746730201168513176277162155530321469260418758566904670692517875403381718446344979100454809048562740786716050668999535667561867538313455247092537831304897856065704506128835433241312443687203322094075080693536875459129883903717361535684873242358559959767588496550784905995650690594808532282964528195797874815972656169516187145705964544266972379972256265404775781085837440556245702306873762607939812154259842407695765437288011472019513147798597781643907443247815907333696859385194539601005261591851559663840099369769666824791926436509871630832963848164535261153980518655594530383419581969255864427170793598876233168512670716419425194112408799941664195219727793498557652212378507628347765985040042463368622865237212217628811928715213636120109780210492362352132457309875146467274524741516392860095719061508123521350943280350996258843684695396521767873774119472422561665133466347790323726741182880043041009246745262059634988410160380885516789375780176075204184959846400109510438185898499949823974562925747845444794859152992889405625103582192433140181491215270686498449439196988884925586349716946674012688972347219082373027008024286359454182800167774427472631679599870277855802298863550222275169439680987821350365467860350710449187818550944624153691355070765928425730488974364885682144648801100611925930456667636270477448589881559577336051363662481167352405232966596873978970008632206549391721640538142798760262801414753945996438511430640988572102990291162989508964277989134894385178768463410440137019761450835759985544809147159924584968759740067063453142560415431850964845196656253257929982238843342630352385039063784551506110025260095011487023749262866773522906520265030616117853152173251680354250329512152678489175804181977783232601647148699995403620126657916451629585067460048408214480135714423959926036550143499153484051788410388356525908194850335102549125599828393020602553051140305704998905930240120146317272651926606494175576591821963769512259509662830703448297038593360072307906421734068929833269154300339858699402165237625469554872481727422496257472381104884512674544512167225942526921856890264594674407088991073236851545306054521056954120818301783169473598944762687108610043117373209321459409346516485021356676454182018996039855016346323255977562052410137236246313046795867864756024815926531306181478127187725671286032016654197445847016968121822921294167380667775652111605036366729490078081555722526236230851367067339759933044836173227573177512840893010755516958857189786281788451301967580941399615709721321530544202978358908379577468192575557754074392320951856817739977034014352914867555621422007412726445222003781378610130899560552771361538381700711174195455678309820637869496170827796986759874373226577339922015168148808276753071165425255302233947887249187874850831743963388310374171411985030463946969408013336796650378715291360846829635409118676833537021093087915549907579960647365363322152832413708694326137354954545658040120189367807793163796458538423748012410823727831486018720986183488952532992652533179771997173363349809612008374711210521544322975140087016861650523031851294577850318396506995327366065602670533123841952384731112762791899063402454371331150510142558788810003088762722603930166934747720761060592122032814749584186405495710395184857024023076217105473485842731927505601581570087534918166840791611184722543531873133855951250879150332249440401244766379437469431885559445169896109212953014896077156302938757507325351357148518674812914903783870380677367618820412935877427621230748936032896446055187142645841304036564666162214679660797269659364915649332306512042258724536489745830933809898494107449836611982314307678458660583833402174211875697429501351158998175475052956234931871515073211506681680881623903294384808988796587108141831186917301603633907917343432638984471926750218961322063465669828632046168911210028577530215965707259022678347222617387105019004202781156824885602018814425724236173400051002558484655168589851371234063957042493087082087280718437953696743272461031745183332888320394990446730671963549274927504050071860738444748014026312617180036880339502415822670913225613698639044895446937163784255734984579079289757158689010800949407254854403092265531184933091406072509157135523581116430213503161753146386449148614120593179577008142379297760314183578829030451516902140441332068598235791708140181227319781545456664350062530352447893520470522786964349641249259092003612710459724764823569932916892999110815423663327881657585988651325728337912006501729823436502252201514596756920917271956690022796490237313479258647416184646042095741950653780343317095005246140018672944671138459403657172457530764545725299441675203369229627365519031951212258050090208732001428852667510259750369119389590155652001675807150044957963050778681670036005928211652833674508234090490895644400966979532566865767315720432727844236106999789645259420786219348044614273018932959681586470877365082392461004119776344100184886566517995556169338999391780638606948972536781269290750074171140986819174926063991188994224981419432949051275962011082819209066109847969185153059103272101834187625712370507013172237546415934324399777406596258269387966868290195026997617682914425569468742650279604832679902540802450438592792772276640016130482558292109330240101046995421728227999741915985189363465902351961870080388780575129159249878281327013514276278810332758938658075667879546686454060144504537903115640464853582545774229511237305542294061746341208507603058297993733277522154423146122486315076709367558017618890673950193746763076092409382746469990043634500243881909007729141876584943610830078147847599520698942282146921867168368792920031718101935409201570957730623989810697824548534808003831634725894547479619716141626711569555965825951557436802099864281888974951267330171807877696528769864115881450967237886291366856382776654072093948112170455440944173531608401823939800785052613553036928475916215676410782916337209929309398142622104366773784497197677452299539984579008363214116852098956554576635392973150303913982071721613753396267755533845449653305574240530017409287327767337667396655934418127959697718058580104830873315717569987563730658950140476635386554953945636029111086318155232684979789717074949703082888681151501109666944077388572796909712602642896225433692971176967529814634164567982883447577973858743758383040247440639003067208891110616767882987172637065113969238636260550085830055055717288029122553435460465981831518471516950931322785376813562488104946805166875075534758623495492535892991473532603731637532817500802355842730052264126276986859469765062711945626768777727805114837934237405667265062108583877203332247438478428271242874889993091301298051936443725003675245926322662665848820896674088283321887122529021802137104472779590534419877078295550386578829650663901531428575255299397188813456715736929168029023501744912168591665349350830544354803681562182370640915122674322402635035363011437318028639859535951441168506750568591467068382362355886635038720006242741343120420801529385457963023535910810720225512046504564998636940186947019615282684818670032138804687701074059403730310678955232690542384115927511735064408871427038698160225221077597405942098814853810780596216357889847175373945216349595400831203068559987177490188982056741238949329480188014982652710211419437089593500248685396872646230446272358386083767989643405304155354943496866028222092392584996353470801987456038893937584232723901432992166072696026427977117144970794543267411318174050453289365542273929903479496834770918390082949967432474934979749543233715712316350705310822907184785327102742436130207302477529450428869791660631671904901890126456268234988576130395571781994814608571970986975835163707378849048822027366990732421375281051381075298289651555747795552257803307395708559366876270699750056433297525920083376676863906585129505026477248607417564105402842492983913807204362737364688463238994746378138526621478860302286750772534721741433268579257828118070142398481680416417353200056725696211362303217996149682688127408423417688407692657485127766645210879827594525488138952723122230685466633608353201999805273152607306962840222904145285818877057668796017807444189015470258867689088474661557299891099526893791411756331247074598435050681586464066099362460296627051211930824121266883562169979090001521632662885782672917291473769438379830723300731286313621328232683048913074066517070519623577208171900887662086269132104479489208895103371035709556562492208252583403796814286319158628142966647487625369404992714818302741094680708714641258059905961163339850646329497493104572499258033227055645490313638647863160462041490647597364773705784396944942709271890742444070788692234952748092543528130617068635760096411769879172820235988881245171683508131937853407185153465937224850369703312572938205547713582079287284713574932270046434491123871286669470382519564170354796711590500937979436633452426793148597700734426805223104365849957297820410165858539129095322327982224118285635314842395362116318036874116516681365739354797567037840790554659305126263409184559796231123897978868587193598502345083959245063740488895094545922022513909143913971658380504396648858875018802205068545150987574499412798842263128132580319608558844009061635579236499221577975017645980803800030288324180430919652746531616723486502998107688638706661445078329939978065879877385133173219875303883360823832198453824032287929161035297483887407165383670847663679728548479878671912229387185855408505223258835018696425073219764667130463356685093528256317065342898211437267794600274678442234282695818847199459857354982380740865058803857301195658748075276595918799291739325754530741513446842811442104881573747430126110369091928791720159364276741038082489045392450428312984935781850668991402987910894890972485827039791168565331796093029219418728546431215664435892726208406283386121930285942552367376155229865084730163019221812962287440255855179477905378566136357564851155893117197394571931937553885735259667187891823540205425599924394235589642734415623828616665198574612713182555566975255141008459947888015001403474119432420332217716070331833557180298224732758119605515293437124571615534206671898939987543208712964639100131494458702651515416718731217033294326321324338492579826570199048221270543324192099883118720412790612035585692722637933006153846460401572991199508543948152039778724024292351552668298364341909954517757729985959746332235175018359209977991050009132376272030593325344663833884122690127208486235188218362398391095643564471194305977075553223845984472177203978690325717381692415588310062936440774226837021284114593016373204216924978348862865032840441468338547170507706319377257807802397457614449566125435891494888317205792987999400677504783647573230397417499674801767893744531018099399332734422628681993583219503828770063941228083270693300428187047623138369929847577271143814679496523251412994736916959264689201026908756382290085353235007922548272330144279488723891983436025425188268980111791055536865276130102119968617460320114937989783591378876665183042661035173183048632020369615254922586694459697650069792224936645895276550883628009255491988981682946083232827960175613290240082126741745436930585804784273555169319535668465628842680554278927095325121582703231487435823675563134448926528464958484502083096097017127736712271361605990394066434622889951035575475267067077262687049090894956445451245614726304728588192078753119764071078412065063842991895903440433412332642238270508215607937393815887907382611471458401812202330059321787724805030100811560542466209302350275545927121745350604825822307200559593486462500730928488502862395042031346835548607318207828588326904087265971442800723665152869823761841137315288051434093320199082948695692876603766539614025322353945216903886800273339837281841288664634856525755893267579381342170695911076279074863941458452558145124662383843715035649338091906438734209824500529864575691864534061559384712677969398808079631287189771975373203513437793308255958855041090640570306557560909039305164169877948310862217994855835217178318609893006926221833483896657714698915455110891318938664768984456678073309708904203235361445622376013428487703810765533291757157685106614416370496429502723809486094015924208579825508376420840951259585312719085687191041214695843748949696578960605407309071899561548311821720773033544181867174139541586760796314456403560098786093480567666235994282502014212408235205689025569311039385026110231640101849920680135120722554957964888024308124736540966160790079612608614950180464315567565058447723105305604568379590171348764036746663089378076547953506257120955942228113965255931533866996008627074938664868246518639441806528775223933646667320423866568683746289827768478067491246884235771396080875012652254379053647508661273135713938325200849091718549455800656848588004918005340582897421920869361580091870683840056380819786037828963087354860485870933175129676763727880749957994097033338996260302332819168634058764462535633188737166074035203169236325407337401979402603015640795532742962849543863537622526601391835126504460873281722261296963644657208316301843011046621156620203887777984163727121553601549198494567441138234844561392988261497141052644965606311156339174055479916507082201938927364409442958576961067989818365127466088535176378063125666820997278495826652561838949550255225373017196549419899503207418487588364563909484623761932021614269331706376901224587332140851962645273531054519523780781110958829607480840738036546380045864903061506756857219353813945778707754597297272284497267288061315766222552266672640954200249363048102824724874534803869710842584143188861333717375656069211296013378179755616126814165401860353231180488460316688173712133814245882120688224038470900130383381218137916044279239597614686400869823338095311165949689294437977277002871810070851824090339619428243901230334243440316169605544892978102697289055754141779717180372759690496196093127196227559825626571488373912688378894413306247810759382079095508264339766875434239101583537610617052328358915584276552539326043469316016659244144578117341052425414496738002954000727049289615990749863448921052727225325230849832783242665834237456477689561749805037508895572389345391318495276853185894604258404441091298322195901530536305894962638899582550464026671254051887299595058568509904961649707066884383370629424283491702047038564598793300065455164727298602917716148915619975453227502439422281078578589283073195898531314928893501459966319416446953713692283789116097743700216011524515728701217993083387549416994790428526174989089560624694579906583645976867951359220831738327213560228780702738028999331139635696259344947845780804600043752561798862848838264170871193699108837864023845394611712267288150589850895300997630647726793556396847479934944898315540090336133271040009897586233267120053851483394083660076038122174932716512512639246097557330458742506585044595351790090204270594964582827263085437753989137495841381209308362112548906443939414571514800192570767204417918752648900586970243318803075927600037764313262215269880281403501004959036641953228126533803045897531692758675752276285264126229445550741764668738736496133664829776678530219771627821356435414986776248726810935610602843558205184963080704183361722584425590329718642169655986399336335159293769182824370305623226263159402731196991962610711401862536555831571469819992897688229897938300167463653585781421527700817649202060100420030363815055231040771438734908054615421247375909745214069623052767077008839482452091340417992245310502340028303958561448682378970770988026071866233503665374961205697492467813489945224372893143293675588405467266379426566309164285899548707995031066631425050159594768266328162867119995900050839801255365397000182341613147682579206597891073689576548242613452918022695729779339658661321958329177127698098663480668757524698965621190489815734201893124945217065074186555973639944246369473681852710688692751474487557945323870887760218922481829155125639011248582746624931615373725340381327242271013161117979011226171104135272858915618051154230028940084699521286918635894322985317819043633067603465964094169009720620917340748241201479166862403217689773031883262311822578318079612060142421270194541829051018137976781350532031501583997459944938288875342533102624502892470380914029015809305294025984264372807826794314132204275085054705703730112478012672174487650714342352463288362827809705718038837711593418900131746337891441950579160443426482497067120864798245150173168494763315575973944173445767599254159081500229903199709287340518203190096103602535997831492324058815230032378792508340071954870237240148804123033930580837786649077848361078689470184591145005644583769604665616257391184342923805096519193714149311359125762294623012345470182629617481402280198178881921024790077013033950901047413788220553297422679441446816144951948103628461237602636269860863209141505737315976620335938213501283112778047784182377147379261717957664691513027979933055560027008958500081645522956369927441659215449121028781880454637302952557235730717887834105253573856979313178424402570963872073748881526538636545249432479020908803331294464165991255062206990685123257503480138640097014771333665188397508534139948538841625927165428260527193448211932599413616662906347453268915990758753692351974931072615600197243940358034130259833021444943428641101268066194028966504886465062693202192442394524104250214365079640767842946078304711801624534899586510470517595535954547467198596347201299271941784768678450271261336143494881232040952571788174634868436829290134007634267320679224181081078955072506656120859256521147724812366597209534345922131659998626892375209266348436308691056421616072811417019646683139063249247479741124702187642309674153916413322108561131777526344482327708197280275988712282409103830941473468225111609893741892709630842659520080488575762131070618681506419332239852937608927027625949670021326255093615557124590686042856466684023432902989108247703300301690354008379524048894508304921270921440455326783617902170059380176562462495118646892105218410015675632425126007544646753059721227384104209681887689824632120992808963184056214707378034106333742188855812570109848787235628326816593870296859829392676367966879185049942071372883716153020797143079085058389817375027447725246174408907207100756187473536121147462612170405896042442924000019590501342552600456522343457527830927690691016287955535716525818726222160613168534623734848195437589555110569143082492188563832509597951126979281654035776581062021662114302013075503549674842074358923131210126890356723802854863103588402554314647950342651309260739392323536394610563453012676376342479822054849058707172619431615268892991529874600107492954791501999161695077192350497929949234113672678624010680584454892100559658812589378122233010569520543087512398515239404449247722305397578741456035904298697471933817774787454530456289387492287455862774304862217653987446103155116736646158947736347831690620901844332765525217784221194738869950281705052320706994200672023059710501124205032076919103881354345808853915491341734702953459941559362233936008233256966533302349113758459821673631089573409107801146406143761543846942473476697051726462039833463998879695299076689488050195311277674032585503511078436946415087342313046649928540063924627800045796099990923049624087271396935739950409840510499438345604175125633599434964130847619036035111919755731955477078558566954949053263892310237021433321439551493325769792897881602571382515217045705223582700026666503373804644554050617808731041561151240602779367688919355365263700795027211104904968439721644164245964979022806125198288927663685300209648142843429274564487783892945050375121233222514353588630462309866766446046966720610543825681617941132806769021436119300049852322080128913984194136055232836399734324244979355904367641926033426660179146843234204115507143682224483937268408270694476539291662783744675861191156926458975341003485829287178914823407433150230554258023664724842346678039064535606054584516942326826021633308314464265742417208318030858893251851636792549177089800057444971338846852881950707606951042137720351133721075772733427606727960155684709648328020650965010052092230057120478437652117619524482832194121851309031453019205358371184351995601381885207410451878720956570424289983634567831155980044796467836583970411124920924713115560640554931319592831990201352576141001526993181611303910854438945296961314451699551037600188454513672908508679312833617862539373081899096861336265994743767393154540115950538776027625307788578390601194658055258265010977591242992070554152641441342495393362304641567172333154093778033471180828538796206746508225392133854403542284995420236590173173049839504230727524052012810815070518157179939963082673051808987477985568809361352956580841730230821538201910273664435136219086961243522974973737314971758440808543237928403304835309578557518709968617283601598124691394240638581548987576096851189801863883459338942915756995044731039037568768963087383153584396156091844878318821225159898734357660015772900088277787053852461234752547934141505528447645116486540501410957293131997033477000211360024790694999366917037091049592489688461011421587461248225562374640933504809526390527680407942092045452998436703175972897777834906901291399641369692719827337586443069939747384247308720380542091504462969395598975012663833387601432274015145467680693321684664629794174788132698185202436281060215593001741930153969728586148304024144410057147160822583981195156785185721758978263066548767322460163234481600265549382771138374678142368222605647290082838272660119722814503424906965347356746792564938883184277141133980433630008236024160243213638623081498419764186558243524595144601725099233684903539387472819544944291709628431797638898401679843879168456074632496746233217949114550013601599721794422971733018927220209481979540248278306994449302380573734916381581408879092129089067963474251029725997302751408100208661766499656968865829843784133217526508391206083664166283322578841914377299412928239109603437654141750950503600783351447888093871594660548083255722085034895462259822370898932256012514724849241749060623123519690683683241135022112537694945932327491550666929267230466401996171089400567678871146746980251167824090129962442849851167055971656033858921942059168809678125894497708506308689170838617142740290603647421796980827852185165821670714498915797772289468019547762976908497948355415721693921062002474151070289552309213315308802080935477517122484549112459315993365755749766171945092844948316575183918914949637638128997194278105965751868499918660423608585137252289499227352931538505500526887246730954460358344226633566339602823736022086319593048375158133902944114556875162294681504427735932101274836726976147158105294203799815559283724017430744883843975663873650487670970350794949048263683737396947166109995439091798873694976373082135152700711669911951204355294445440382063147089954437159952209841338551626817670265254071892531500447899469045473693370372644180229956535017677105225156809316830107903717167748968741144123751326391080235849024984826009568854840153551405198660820862483707585375157532530710868984668017324410152554883694350785343396954547310436420478831522841080554563754056471717044873588259002792429509126766820215774693955439775273713494476950900069096176228662232637334464574326717284888734168329864253559883880990821132060532654637371915358735262426380638776785990403899610507549632246196894760718608242774455740377768097780141201939662464738967865453834007522865422896319570003966933775264850252470161880230763998009214002860423098002893155680766195154386310772778091807269161075050921607237281474982210498848220816076223126051946415656376897549554948268745403975060753015294882598804693693966225922890845170482958966756832992984479936209945984396096830904439740409767639310280663661802394789026438546928656909158878364786388771463500559945069399665966044737951544710687523268206648676275630629944113108873886792312765053166675419335675900059976901697337486666897185602048896222724784841531436736088482108353694827475051410703824139502204509430688868124394677745038755534292499565666512736288528686174445247690941709231946496132721002546082379297798586923175184528202880389969668509381960858391055750845390966124268056100848513726258049786554960899967213077182341916405031014252081106604300310068294463054850980124842035029718937769837750441226919194430852105788080760270432097199404302281704628479034171900640896764829010979354263443026129825574951746922400889939576463217201725599994089348454062368474079064063753995965521368253135448444179271691319489983876561352402708215052150893637716808886330778318104267810277947443614872495797015395455229657461766249279121059220233410052663950770495194887782650686773652074810711927115439097586443004906053268798810849346450185168733029820310479639072907894441037650013569694933837288584950085702900568772741840760652022634738435678930452784197443628157427841530958205925557904069227797188744625131546485336170285039436674378355854745694468810677426388515793664816293730728257359334783319966716480830708990777257913986033275103919315696150466903615460917731782763221541004728942618952692507233139501771357579484129603533497298846723119668627294094691743980395105374226775777919516258644611086361927355374336172091314682789095761009850725195808563490897014096603464881945527252608860963417737467887514836920509403612437990903306872289769836644372524179576233023785278392335944851183047240177425165267036236063570776420783396599789920308510560042569638366843237555519739687816212866237549681990376824407179620230804529248634081149718241193609356821166671969321604276081001109067399386298581027892804266454854428629265745728493466286443813129364304272261057564764486675940002299062107348979729506197945666255556593376296112652485320573693593641577272920319637191081495035516834069595289088841545533342402657235741591209901643070867124595951394035887758155039158505460366882566720218385088109796309138501874710940005601119008218506236598284324449624356136060809336714015950589678923581185916044052372580965994421046648141713122443133463669379909956868975001515438387290288771180843753493607742538099648126462049916813249558630466440744467536183356251369067138023509767478247428089458537295944717755583036112187973437321520202344628872748648440344455217914307031954761978457500805356119367670896328122712570990440485977878066765936472134091384732323491965190740993257303118087908125242629412533341077964651455513120678394428055771454910541465832982280010490497631650029967741398574826631473903700171954653294123880734397745206086959582431710109291075349297256996916172237898067975630383497804495513666551903009786414717492026169979299489521160900264345671569280008515492233951611873463346936199431387560995023894592100708091183632465655340426884201862551672720148873532907911906042780687262741396998737587100538143329025119022331790521930738635627522146656604063159917956112689117261575153678727672719775202338844005787421358569729963639244305083934445234643241059923108697524117521369520019727182802353898707493039210980383164394957660880189335354097287622885188505396306279329213286544432569678880491663477347403332530691663065097456526757252904604409073480299659840903901867790006914231653594936131135403571395417867120624703502652169786586861946277954933060689182769694354638229733932272292039722050968010538441041964831360275089681529321057027260959488791866088159115440785491293813167105633862336778046111721958280183537637859861666197092371421303430760310055081320423322524252806487921287992840507443707315095048989685103031846734218485389184920633200064390451521015547109996362760563630363592470627333728090846917091853236106959092486004837894169549838528730235713594983747190288952768342181023527498242585115909964106426252055902449685887849402192868439153340573418674759035226676609978479683553745745101068754133110448512584764072919440250043864870241182302030503469692956812500529166586527957384602677324370548096640500273045757398492777705461760348933313461955583675827711882438144100221075410078030414833592109338102691964887392616896796284323619223232767807150630720969898847133460960950400867785109613209274297715878294701088732423720958445695744876046919732490342089589579257254845307084051358318548295571170019986145343317069148402428307457662462673845823004128261322334511572711716620210789803281556615648999939287817472180252210097132745925314043728686885752209985601776663564689497902488175615998681094543504651658692728663293362664583275142086051591979673135554612375593396026851155123157115005709271359405467423734061806613474958559335674930488307623461976554592740517235926697203566764555956859661583321972688494302905060210506001612253986706405824316028249849116851458965269582447871951736985433080373703909970885725891899978852725540102009094886815749883264127460055586464230055709066776960900827134451134092404235672489411781820045393204468404923412260164384564972604349540549205425302791704479821768201322094622914735211857972437879128866961632341489301286550481946530995035973273175612791595969502348686165171554292051029319020121188986882532873016328824612949564857208794033875974478200922427458873140865535262167175403405752471047129567465398438016960873981591847434200161755654340120853974671871266150077489234600353984805664843196024423344016169648096969077716435504025536767384596531858168922216226400379147779621203280364220430385854536731262681278993973570708613981984082690230851812999843883393600806601110979308525822268689078845174783081274558329380905774293878920755925957881781744358156218480721899364909639862081317900409837974175525497949690220841833071948644745129781136005384756932362231796914348012369362315142629750797203839411258202697943546696889783463328797220143615546081215019472876095279776233913034838187704574062658301119428177733829984443359305743029308517662262741090846997610977700011318446515023056793568689023505969101207677754274927275582900815929585186565553993620299424890777023628600428258269114664590658378651924020508976426178582455854108916571032020395693137453360940047772454760395612759542565856717810334567365705794679792679995062988553863059768692051399265484042868763611590329798087202315512927331122987793729881138886787493956098617205117290434058495577790785384987133554109660748392976888258062213303601444697531518825085538942282072382102439385205979678134718597932937911751808456909368621166604314447006660944808141011418525969468645251401368924755328112791056445993401466831384470103974324760622493975157719018734412826411755434924885322032893476616557710274584833821731093557131065135199046807247172837405853494004615884570464013110818379364116546064010851064660975353386875468221063877907045150633089943666395389932142141604951324287800459590687372769681486429358826683483133279339376887457375071660518403670827471258910586190798896110907794831769711915013294848907473725973855184404169481343435295386056148805016571735536309261562825735405403470237317158218474091921043319345892405024389014021982460752902680245386004548999135668219447771390338678424355116335722686314108895257293813605540267759960348268587653551996695493641402384923925320661642369278151303609853391208091927495540222626506524563493086246959624285594247812115338290555793629964871876640943271408847661916043806957215308605857228209539697511514274915008258993142510099955188590361414400732816480767277095406918116446800101452893035480084476896478409016182777014624143584886325258785477477797025990993069339993758043858945621478431598522661305809711953114688625666485827180632993507814543409070976280899220822255642055200903709138716932343100070945946172545461497438173532813935062537824921205074325685458420595378781952604822464456522545147748451145695555321852863092186256105177071902558259429100445307089236326744296607330595894907516159517134213439001702968365326948611728229459559714957324335435916456180071774831221434169388732141076483052870463286624379024197676546670314523765870494273398811218375052454805352308613491045081818189125256162518532613938195287857622368343392677790505184673000658067000867702271427235715308663118409741711632506650795435871468518663717706929598499185119043316934663393395100727082772343343235005280121552045932910353083354859367043439449185951590274850516949463470962409145432341431909188314478817125894243657273868512283916994958189356201048131109279214868687678748692604847817858248888920956722442931426282314026159018826955081119868205686796739048689302693242535207459158638805273855324488598012504683445604651317416810245397789397919382523546892519085243630489834729193240267891105845546122207861801706409670888383208133281952636832714250899539767562601803460914091301243368148367650800831408866148155238089056119781728957211368798742575392991866740758493438753307743618349821427872379256508418485907039342616381511273102560969679472860092327606433265748902798042392077405331335857332065933172967482941805369549678053714055386401947192516851456989159060643012140948617448280709445221154138735048398006742099124343068397904318970729966411697953541701872705147352933453414017232429908270508015230048245518175351448060660517863962713325459068295730455776679770400155305926831481377369532861294556146645971183367805123485534492299851870750683709269652624718380005097303367962727812092885808996031187017567807462961125326707706026367330772479750912797596694414237387177074843651519259245102828801232596555512107959849966642910867143493117669140163318835356878234545229353498201530137357888686998734448281680027970810777939976663795921797491100330162304529902335429349058171944159233998514732117332120098192498492963895589133816088860771761830883727144536404373732092682681242673924495492587274664718614628431742257009074827074464013443943411087061386095304171003049642996722221895156796207811159273692914716647428158779633288549665453065135505000827140220949425149116839585876819017745445640057172888549646438830506364043513845877236855744596462342483137922369504785147213366125968223753344217482517347805549915538770909511432243359814406022019453158209143734545967274279223423710746583223911469308580522639880138406705508359846645486479782451113883991906209338974861731132420746530976086183660710053034301529795003455376001490329840789120408062838004898539156900628187567282358599420739000066487484601073249390609585354315191618055185137551419600165451694306255878983864108393809310676051121855102800522996356538842624368589422267722007803778983238905459379720263872552883885634948846888183862542780091415832398996558186974641286913639641484671461656711619754934949975258507161372737136888253605858721569943994070077236876626798729511385750258438790192081071188792520554295508508317097645298270240571726909836275635454762085049780909432601015158781070000208794812529228174896753197676276670986180666289769873647538609970110368240967045358946899909502976684023614812698419424045909240858393999478652466364962754193749587927929155591917826101689316496711451134794112399714839919254074526112088989314932276301089300079699727756990326496962346577994525437956287295292201115706067929726106005515338831085632503402090348656735769032425147991720865276048464871562779096875202563090730517634421417108976063756138722605870387140351907528569867952207350074688159495171095033558201985608050009302739600410379039718058182001353151276086218099312996550596558408058502384409806921146605199818324683846808124060840652618106141235836591971090099992730767280838250340370655343445037776268558162759062216619816482620601019503477554967939574476209312302734042670448267854597075960822197643948956024425325090596076824110983610189625610514361218520850493900823563851851493210500815343366719150380694144192328164255835283582620904228463119097464019389373765379737472007993758938014612929168125273195230141313014329451583611590736429254786511796648605509487525932539278710368648855857947234468739677912028534004707030130004346612484941156827617045804651249456718668843547640917127405588728691713636348079297029324803488461871943304727430185447924565787240013435313826806933891518030574852405748401905534298941179043548031916668257560220349680155243013348305189635692103636055612878841513772479914475088960041210429935184686539049782227515996188116676061823496116223992660636287300640061093816412307923253893444057689838170263112550414436214778890423335053427433276903287341912241628630368702047269766920362006161881015138892741637651043602000834921860409482612520469118357785343352899429471917253045257010983260720144851280401210326291130595169844491302553716392436564615087608952892087813200324926295621454244657790684881913395988324809145208708024639948132765553449232025362941674280340459611423159887254305666945889640839615404631001144882053796191687496207607304520519619374731152568694720989581675136481270415118902220793750634630992231139750998469222190450738306482774123863901978754895616640269107978953368697032798557969920771932062065851632062217422921432485498254156990665784235133548286764582474665405944832494048378620036688051487511816627761319624261223863781430597577819493944602497459346127972889362381149547969694646280018302415891616641758597492716613625311456445138247934613468756978982106152731560443537784048591302474411274098034954451686660685740442140668306614982151575934369568081287332079830756812003807941176916576123824875109469201580493595685355091671145768320523625471009000849490949727294329985814893320184970707052101858994471957156732925329416028966874363370986396490676636429078255735332142725985312771979584627457300332198465350821172610492995162958066381485943808982169546710656205559667655092213069917877212885299059692722555125883994112416673192656931924928415099408953206151474695589188592158127007837970706742119685742320887731602643984852213592148692605162149375002119666536579761719642397502976152846004580322757771607715629546700262052149820288737114333208925624576978411856039549107575329907294949749858025045325808967165392693693009101805771738491023873802810734196416656424294083527430158261608648042589462315446299457785664539098370780828726187772184779365070888809869315941880687964720585247157198424505789025854260071751504447363763520652693246400928679080472739248617988618529060143373400555801628955747983555356815242065215043124774204160825031459013954774190943898577670129100139174780510291135533189894325471052771410717022303675158378808016187383202868457860179540553301501815408651162680998202925526968606832284641486596271672173818664414315897835081939478411868434928520257798997986072147137147685391627970786929650638107244162939742090686509802149072935752710288239783476873402973958566489402612754836874424591747005771494923610800181584901738545171514400092026980970248382601466172021576997291591542484996157562767778813320827107837130289422294601619055388368420031173169193820437162513882850850296467676377448251786941055700892711438283889083793789557879974961148746091428324908747802781051096512213517877801129528455873541638750965032537140637267105360577692559321968929772123236125126398321113046888067597470238164478140256359289777127808833593543819542207371520826876884320124625709626869148219683058994732265717904554223015142054887447798821699249059153475973127369226844710785693808256942129525208340532223022240173798528719738042698030363013820172192606319233809005406908978688305459821482983187798759570091805791438328506611880981082562466433232710247805121794889613929634105729874491664667781380462590440510993048875258615561039129344411898238972917962361148585459419607189118946227982654819822668725055255530447581126786039322538397414675746720011332179283567734858343095853142753985764030748390837943289849429628281843622072398273802902671587675184496833985573655818474452337435040655200042848081854175361233883453803181872760228731725962445155263997994698064778095652309655758617042517393751576091333576416463887686665255249553988313948635351151101885910457299041080863607386117967863321401372037430468217845020855732656527303003293379489721333883167932289617114678912507308891933604506942337070106647204146428691897037467488400731967582846710898424244254941529541526777204462268712370967171803874183896744806360985927996198537947816242095617376322573022409587057889584232553234664707182770899677760749086834271074442139047153496555550965949410856300763380543666080902924527741397410591988162451394176320779097262463517534383826951424128239776157152474525968337111555251251927599153449939355444932361924877211804426126835671867253813292622243240087482326918534482451161502123586906737039483730586140519474846393848143005871803464716049184838681012243654661517015670021447685285402479337537673439606038789784477126203733428669219172729807295126891096855859147788742698679792228980843583531226969001049253133367798847156039824570646906174706255664349276810729811553665011095382762550486460795658404659026165728872088511973447017838593631723973865027546760941783675376762702539041715607752134067741496543561726172273755846799088893036761291258491272167258357011472406700566269535799759171207359606302810026451087489793516941184807140403450428315739330997359273706542620161983874050426504931273973832562017695112306654223958691215525263966874148818118684144583892107294683950171935256279926859527682226157190377651289310218056428838477483044163530398582838063999540282843812531626690223524297800894639102539681964576010491465488656449863660594992211823933146432740783432513783288483781787677814956926654958508102527649131802440908972723382882151664733427672887814133633595105716900255808313633561286118780138407925651153381403010052426187923150395088433869238472478460336722368608848754995120796337309298078448829176274368561744171076561815313212729362387928954353161472090699784245050783947208922175209385394502354084747115457768750959149916342709016221983944114632235991586884311615931415340967938251673167202793615869041382379666302225407543618440347983907978293358811280803726616216930686711173443024133743831410264535084621342536425595521900667124184441982957755255099247680741618297128927113292762432122627421807745356538106736202730706215669356207335775470371696017320343657043618526969919082537134006626811112012293229956724713698654094102524727325312335969120255123103535635046568878019914898978111145596025506961828014879087079647419471188546378738675406579398485503462120924721845572707784168284628701262517688630740700163082050289220258277256375191972349660170351224618899243032058193175998370434311842403204398926015295145813083452589817269217557391809667433782032524995180672210017831120966781053776808268560343378937878305397295529703014544749759914337491887099753862057126180016710353631446655698194922895369378240568358887239729336951195685857372332888219636281468230904486301528940134197405120824657165890090709433133271653074842299974588182889752948881050538111144820139974031821318006458604472442430334478800178731991558506307838614777534546177461687120566130271821429571666583507433221675416192158148943507106138456676675533127948480773954889850493332032941849950751169939892240564700314729104991097058170400322024957143639297951289743094010743088222124025939501275163461718781065057141006540659709432147348217767682665154841264702120536977760152078507609152880763003548480643515636240303869115836165408211257837811560989662738804600721939419155408284645506614957026429918560583002385599182938544635457143352681956466468436371670131211887966502236504416866107015718517276837060689231952091753118885561073634876790571961654419956892400340684619841367110104939304406905740290385946790368602028955023426124573619878809936806345103743985576790557915609747655023332876147998071093514944539042214897575199243364104425636506365197019648459949373428492294683678813122997833414000010734650284467964089749911678186977793506596914670455974158156255055651850617506371233247376108431975343889232742400905932581504489241323456266775517019878520283296074558436728562618237918656885827855300483632527232304034953191768502942731560312231880834894573620091950026496613902268243353454501288318599471946422415232696130964322223800974486601030128824861929327174108965756486557171455086124548379296602877139976816780922921526336501349954188783543808057760618992300564728826372080348825531631451481536419859830114813837592120418926429615522937507541157840985857015332987081147799123858407302932438924003939162489778342216359080480645552390435192088741568409206972078616778872666591407888489648853550942146664145209704377458811260926493346369113372846730839482537607795905722160595997416741464539953958318317044021522791838640423877755774056061415735313209288865587782951420303079862636881985196363614507423171869282951816865736801935003954324472964458448130592974534533356937343371699875944777835948785001072000425654727686035714777147123653062627100255602949038980711678007264725619278067830914679750013413240897893971567860526277449796421014923881250640647839217046747760529827881310069646291056151589375958473940406986500523250910810733198116220522442053453760680952322344707347896347487548929803759633276372266537859541025411208877014731772797594987513170585854861137555365385527825583989382921769925515867572446484066348035648156835379553946433636180606050806169722529585116361905750147039110533527739900302458558204017457495343580766053063516899839932404485890601898285660419478722802946002983482564345534323865527260929994810981300387977978910698124629287810101296828531927730249938318307884149485304348931227720141324628274928144696590701409176142702695047050156004377338106015056434861980348862982591549724730311103715376399859128477992243645115098237519716548675351062442793902402081560161564338217747930079218022106465963524791472370306116066074967351417787474614018395081059476878370057801604053712581339234067629036899253367899377832844321037719022803199036117726809399367149197812925981277883318806952923918782820763798532164273943134075644357559982111761189194555349403673085850989872597674380051923006962772436614088395008077665760763269145197397916998207868603445513164280950011325743061212555370694425135280564267918053884117760160753489187580414369085279047432974361881995846134091117847478612395846604076316118007247623404809407941559649303799660378040849739104878177189456443545397782883199068942140246260692087704993631356486550466977060993061080241151625588700986121170986181464111317761397456396434948110644490910676328350457770071332603655877686677778552862875069092762905084456729562564603904835993789747710640768480249512847084732479662457597379156096460736082897775545556852646532898526947104583881081187426514548495122591349932547162955472773591449517105490043507962707068283564529140930693541709814356375462144229343566505245306369120949314845024360967418915737136081128087250510352814705237493662818051064494904273460255761178891937876601794995719588156721474219226540217475652931688317380572758011448950137802161986206096294800400401088846975557771539320616974427624817042554033591241764186002581908086876068350599833249864083248371763031386166180389106832981121472291686347482691849786584202805466822391768765300274542772425790841911032675698612126948368637369002655142412523216057224371849405628391020701511395433312242029141300611250110571165799685362384498702448574993894343967354243712621865197714199293177189973914586720537269500409409302155792771462184084769686375603722207422916286915570449715529267995573381878066393745608375965792959666860432024399303359287765323251271408412229603292154203293116041924712531272392420471725383685536810449945484338450892498627154347381957886429360413217713500785723779511227472008587357716782830214020516132632151089891602752877732071514103283560599480566240670009461514095591039560809178561620518432844148103880649103291700064039883765815347327507869023176553963168912216135494410204998403214921976889764363345036293300307963904049355605635448843450015785065928702038006929719065730099517292158244643215888915446396398161898149453402154280974694406494777631794135549650278063307979737815727487711122416150914107041918359512401610111375653166655213062523588733484128461904683479912065577256846913627140428877975258374773542003496173833852986237531236758393269438563294457135813336714672752768761301084589270635525451871750009989271256372429877297429816874135878906432716849194522900808918788620028802129113479435093389972572575869198411510362200074562735569525445062482231222405272055338542093962344649721232372137084241243507255189207217647241364618795395128717376605343017971723251352269469192394323506615187563031301367349220861564904821144080789826233410200487504121969562225968561765947897841681671173260606485410748505504492534941753143885414453731363887920815594192879547365123858693719524632091855918315153774840684588232982476350657843418593497417549871169231204454831069769980565128466694681067910860462690905616609284468562712387719183358228110983476755191737120536881601518351279252606301230735236467323881323508630248413196108017987793463258971690606094203787150753483865066965348233089793937134029684968324232739842115328681964057814538231184765457988473145295204012848169435656091836024754782831367028195208854187761313963687522907294502454294984044080169401454833291937697499947156354670763099174513502654501044107544457727566040180663376073929147174216457653429954937215737196862000413970950548648661720247067605664385392803314809299010354115560112896380518309561647338696240956425095497959327425867996763416939529080854364507048884154170492450693353775249627813289767918763532439981460944375911087887262540642437602889943801965437677304385275849937540134749261637787233196147768286965380168544507474346123668817399891401239031153312055642727928437880872724187738197692349404792211932546142981152265142467430720120733427732005038878568904927952678048011063439955953116154314242913843311805533510069368971428128974623880778420930154952880445523817080845022725262113059818009909702118041240868938963988884780651820675568202072553924949118651408026830876355519555198682903436552491802957025958467645779876467516413203075382126259146719913751277248213459547551497909245653019340351179482606608504171408428752052931098084035152292830763567733856618435966067366220559524699679994939118464044538371115603868285925176071029614062876438710390673567528422821790045918313689488358943326549319841016031263573397384596362363462256590076294322302501196456760609724234727813862185473500720102862726897153096487932257693371026554591747531583275979609992396268217010598732210577229992092442037819360551016414681650392650794713477320720261404127603906495832895282539410120227969343783304176114328787022455943227387225787286720635737890221702568341745918915102831120628611364217033750117958259333327048824956800899200956131330518383145365358420187259357495177126526647843479239911322845330330141972763518146813732087487759004248778379230313162534692276369201900662676066379997821511763960341867041324466985277871392251465072832913976435199741163080632912876891192172400785413026871382713671227790510093269929449416160193236383606740685099853352845430311742023057838009093837154690160271287371720671680602397873431511385532487291399040302266371312108170245555099871106389527285371128181112350588811469328137069780157292391087446044392186391167469078074338126780113255655632799105408743045611287971837063669238290878420522313147389195229338584869408538288738757937119141547038314640950855436747960486635991610472703879768675857656218539167651328750312813404944772892986315711350138552986488119713389758806791845631431682872562614306510171454413591379689623036280811266179114119381014150942565657559304933458731903616901691135108347949952870133331477733107379323180625034355907905016541741007355140726676026154932736266691283875417152298676220404088171697052685386474937217933528759873257332590787192839036929612564783325424770631208889840100765585655619875046334574313670849908563697004603653842068617812606424642828864270559938553036174901741101579188665874636493617840458406357357683384801190743385616846272448058041944936587451920143414163983591629122901307495554433595642670216857263212893389938430479025899240941132751273131521413551225194868980601301448760081046971949852696529027945865721789675757289822217115788903163106036458153394726075368083662666504625345091336866744530510947262877222078607889528403410485548211104553100526158956320348392549600659228500423621388135830116330098796669420332179064618945118139203648485423872639593282262678621070382012315129467447304746043628158839738190748668758769856750292766492493174316647219674077077544179732485435028459723768334979595495554107270519272895750397985370656999601279843435386070735103045349103916149882710549000815397801175564472091729244585388941458398124148498904017567947510800936970992411733968608147215164833248064088216403672184860423590186374892927908071514668127616531367358369931850455430170797925747778156430860548148865679947595823685527123249798779284547358217490662057077566456161889311840380221459970841623557072599269655904615988323241642015720746449852056288944973612326960843764122331409052772850054215647893618544393950254700098804931311438004192563003197431548541369278598707306712863236294955447364069426080670029307749873684953393391928173564144042645949712841158413504986299211840651246306741155254592983167523444702066518888499052333532914747572450222681271708443123949693954689800556123600958728381719329307965724543635815211766117940291025376073700509007964936689251584166384407851572543305937509078241850075593883475401193635035953727566171917688844373362133125995540931069678413454473453082518574515193891198765086068508324254671072870898046787161949401956109120361928405389043140960486206400276626428726956484641469359524079179823955224291569155714197283041365640215558395313197718300576925903825852703184243822982818872354289484074193428715956007433353106866878060186009377394465301072978093644274721019807216271635635368125907161481063947180893249941216708428264931285239953163411340024158999916777749852863622355369693545092110247492712913350493560213225925317497128620370909669695906307834890918184911371463851597773217015675152692925568585853550159124591129994143042373379997521456887956075252000525681383944285168785643158696007718978016818184917868181200843948953794247581763631934084366261404073634157163669565107257994108323732103291514134431824603905397955633964591942698287098565038346395946010033995547191560586670678212545352532201761723794370459668366907427381721884118882262830648874495848995959955733683133006357323048388687390773207021059714427944351808133528444720391357858632172764982130769139528791207175932531439350495033930598647692596275991788997436242123921925780919121380478060713493470029965241461173201387576621369096772808474226153390438525044243091264553204820065026666702666206518805769928159582669083491923174496880322187649167243879014375682478474766103179092182723015723822206618097810189814730962056146476344882606918917144444639220596962481005045644526215600988440677375207244029222243651640420246313533312277074951951153899971342568407731146346144401412441558954979617101659024579189233308204962385536205782932886567162125739090868854334506195247668002529036743424645138885111050631572207699336107573075700722307338332887824130446749967605981175724147440258795281811073497781660792340652570573383321150749563984532178948292654219046743019556697402246742253799755392510971546060159501517689468331453305386381389616988326591448708691533060972053076975651701597515301538398976820149667013506905048802101932014065187546562851714694762023776678656428403195339141712358615473351778060745910870076947059249483804745425431682360976260462836958562555534472278725536320915435640430869260316767144698056419064018196766310755254853583768560397919865387193947287354406667055307487777306055607007182834373553172045979565931458975014949034186396995565035088754599050875221049202436640122851225360512559169162065359581288688116039230814073904950354095431277940619929150782063654582144342619595610031689606375912131820247222755614385661492108504019209855844290569848670902730220655260085593762138550827763985389730907828814581055735854724834977773782247905678027977816430112769444993537552752977435144064245172155967403054048977611948523680040554162453059829073450365921137748194017707078368522817518446251384202187918772379839433002133030856180502059763819355996778159973165945636257957565966563444195458265257776481681666443963696496050679813695567571216236971044495454487439606990191536343299908447177530898539593609137375863672625345372585868754202409299864402206329309163156172500294529845642301725307582467228805547363149862914270069718288385298889832245228686269749585645421312459935042371416684461278805608012702476428627185880316963416008397600839086538918607014818078501462877444579505865351024961963288235609320952352550427703294234611545986563768759129022234701853755855556640815022390462505622784535339242422973024368828241682158264830414607513954885313768642947649296244211291352448963005259337081376638244344643529019461846752916729692513240168528962852510773595469857680096101341847717380909499854455221730120624348038686089095681161725658933484461980391930088013015767478230896083416935694798302585243971912047600401124624038789326365520346627033008152290596289335130198064595205841671609570167753391486259600051419078256432491833529277807570938560583860333137552470265657287907303429955923571191899130668575934936071286300426933390101488012132670792913493161743501659752498144107187018800069207302822760634566414641398859007211422864664625360322574396914635461334880663132719675212289126669723844320166068899222093805333686069213264010435585855560143995618472117817713972604179189429001160097214015287221188681624095172556722265128345141226665102040205209283140778478975697118125237195847050637741374707585514309221085405681859612239916080669380537586112395034732073442442639945197284412668890690206127813450776669042696778053047620187836366680921373070813469747326234895920763478049909473108646944245979758077121752745064142348942773148240625504513238581109390776932504359962588361183515085110139970524579514260750731124876293284768606054716545374417823209910899228840229545588422641223528364046711761553037858410757827662559615401840549267477227113291253444607707745815874462991683836792901891668023388978349264741449678562667695056044869459667089950927899322515024530902660438193978307019828827843769935269304825840610211156831864542063005087604056262528480971258082457145247666096332870703776486685228410235365695431331361356732441424319828114897966149176794374457389945221904701257243460298254334826376129653224138452684569734891521708559449974498271105585698887866858970174170231346538727437009661442358240648263533969582899307737946330194848129285885508201902769167742415976029791484272633772958102970012544643614097405499999710466197831341037741467728822607315711153261065124363107918243564024354978628214697594504431701450186767184187104647329321168630840241587922099590807038882774128661087948206370138276766636138454898959972114058423314836086002653393292608969768198590065989609089428071947449475443126978796327847704260663487580510428135610200333577573075281137378392834200227015179361403565363306874912342189091038205802892871632100645382867474241474862316836741601946787211188485812108704876941922509544219963355744795649336391211489863988418049152746033379908172556876796708516023417844713839339356683081392983242814836381452730904723035544018861164189836186920198246009934224177230435006959668116927801951158531080333024500176474986702672218747009401646306234910564625330555570112808349632314428496866461467937647177455547888975271356813612060478027829389342968060796816901079466257606840031394972026453052071390766207031997823051353160288243738110694416899632330555341098202538730419612110894817710612428442588668425367285308879880853775047793385386339334666462512815989815588314370584459609378401660821161957644543788774012173720932734971551976595104911154051955416125208212502117174277496306861777585544066446122135881644962456148139394338964748082047431571142586611954972368125315065519488269361165835285992192872249295688121247349195735914050226524843759260771565485023824809613299165102195451729959637988670646315104870412325257416765409059293961539310860909818370728655750374132134367553126921145625312779354957446060396405628074074092846717519105212816611950418199511042574185383147668676225654141462418967810973849942564497889822442595475441633260225357479623171030356710456834945357319496833417946058202900319855623695161866635875975460537682076476552137692128023017277159849970804216848361202854658274636399461011446309216382718163846872596917631256864286165676322367524273189331740000290344117306091643414020959233760442801421289829515636427460319404882950881272291862988693478892570537784533964362719259822230843179051674873669960970074920580077644929402509264096619335279242937182177307900743737453988645809619516575435105483655983227199156432322381561943379908370843594640079737240781158854028790018255445232058759947072493926052488082788619941028056503413735361180617550884751922062797624405275588709399669922733089507762958324837728252251392023375962996777067585357360216222991194348025174782943531987407066627361136713217196059623568416339518644556772426669718222220035293863972355324974576371514980937826309062422112117665944968691883102511464095714516539233368706779785182386940438478312675448133846478231683440057404935736976965334405752765615893855067462479074153560939976130955309932721827301435846299111066486556667508665182891633309390237037296544634427575990460094018834685809959013879122360027764079796357335942379822557910973309832665466890896461313501039482531028569473902663568669962384841607281665610148715889976135924363094711596051093582423015468563549676068687881397343723535000782203316386023132875178050695257157603292879509031360880206225049827126343001594127824486362057800472354452728319181479933303163914157237990820754635687478947283319129561261817127561266171148701919654904567139490035274671281368632665789230157799270046103981320276375499628685868205339295816457443786707061160972933978365607382431116484073708201678143902528164488386487270630610089600543234705237492318035044806195353606796905288672439981130310450433964771126098857605417853555490105136804364048702777764307543015621912584286892347181853398163126603370044627577677629878108930833279973163715442324532743239618297389537108962815472328778949387687401769914941318804600331137994657174938951640019119929463418955434057001815415642306938510022970598920275629673862472827773257102132375029580767223556520800170757966460992190902726178496158958257798330732176699121365048912288890609047815037188328463068903006533958416445099636691035805841149774778967801344300808223263326540899141123076151761100555218118378432682664540211416447690482583146064548546001603881222110560526710595372412351030070179125208314668694638958609161913071316168925915465009596576972003666359120504198393307619059200561862244533426887621770622260644848592160045819712799470266834517155241498409002366700466582848455181431672843717695138376149774163167295737638785060962228319412763985103865854468267913773116023858594501247403081071687832369868390972518989236002863204074049075978982441936773557132838915760727760139482814144014360991938985558425853400934122412879199996431224778785036950591742180353198832406001505783691184466740528178669119193520869176930499554037703833182796513556996171648745392396228322203537569055802440037494588483209480097694053558282729653760672229038457796136243841465305961064693783466986096891355545460957401800531075256606155337296257253452882110654479108658492166828538123907660886287115886049952015977013854635863934707363914059019831052710939919716194000479095232975257117959402821152942943246214240721382205769163826493132363330353104242515658109633534127886048138541998049421040872519922771037927221459244760194527304307402270793779200059184140564662336509961524437807625928314689916448368141167805733674595214663127588339479789962522585458666161688461738957694678499863192744928746974767891847513834074813026903137794715061178113332863674563632660175315184482430905033066247604008805954568503653550183134107412661071625775465645727146766614573070163685138633877452748008782308614762038649201521584074944580651048783256084822014975091917637518350740773649887921973080780180431681945854494559649840301774874041539506844335251699051662140055347816006967874110311438864511981907462429941265559072048942900937760867507832806739741998737307296079474535338699683778361158245641137814024637110314174206744934064253204578325091997065959474874119528411210912399048542909523533514607948675344279265032934436009968339492378770336549326121496606723953963499351971869313694743269651519968183165284110242455636726614852354972738626444103605944705030224314387844363311490265043000782556511759773770079927445204454578889420363166586593421368789355534400347253604479170906760717934492043991343359734963340885983260522774057804176181316211853867243285510216203917912814490269520335611546297057405299310796500887477395111277865743986536720157870408210996672808163517168855346729002554998494428727430491149359955494614221822473138535539416723206266610779947192794232730333264749297157487710237778267866521846624704844394502061854849912546192889055479059851354384927283253476943057517241116265987411642443253987083806770977604218752924387180645156578403120250285237361393757280121902627308890687516409593128968241999694960755351383743519838319856898830334917456584688480435052846101320287957423207743496201198639730227337816821986580147615188557369848984960583939092844916791213250775514801118535110294287328578932992251452636048414808802511878759660998190291844771589885542365253707996553261536663109698600044938320157306873710922894658677902705472431817448820451312643355578639197952521897458468124240993128793751429429143438529608407136889444273281768752917699082607803750114465285122836838282004389817351340869240268374158350173795967566328022973620586653059697218692882802661303389325209606764694046788150502671608259276774007787816980328191427837453572716680622395491442173262781740291354021083208947639096746465980100866492788779014140891934734823550578284784239773532840909096975281475690103924816366373420028975187295019230644139309423499073400250993593198932823210048229408386250868101789918873630710633816418792434970209678115074396236582596834374613029468149268815031540741320560872027734490592913210909375346774398226246946266862819382855340746926826220383840300997512744675461197500552674681848541183916409688638039510238668719640824862105220155253610799608743775553119005430115912657487950051657382434328483026220172078829130109539536627771580809736511637293328017940012219368661486502535435578421375071964922297308461984595306568197235445432052425011263912828754636435808720976850016760638738871332178040981619577943978416581130721097665233545916026332640813630384914945343019695579014669985725616567092831055644028674157658551555175650236863362927158932622926643050621262013724718756808213097561407482933787148208073873446113759034296245676834288382770964113259262249673433635592120531587559007263385174981228178869804978286801426149938783511937384632037505906919538199345348454627194854233482090234686024290854873141607796193701442677931451360941508521625664968962635130941003689140133852581730724563064889618905223573121044856126790863295249431827624373427988148214827264742797341544837314384296017565905281789103846068397805498990864553521315339618719731831187356392017709720403666967590047039833221150873766370179536917342413696906161354038952704162030731847450057996634349019864115290617319324711379187155571879435035292456900298064966624657225027043231008927974725501212527435053624729190405930347922681187479045149002202355576738757753596059536314906677070376441991528562210968108937653900834375336739828815107724088988611149980345367009059727771338230301012609727085300218888619832345621051664411329530873387891952438725658354097520936044492847912784495371458567213029241436444183264707508832487959549652892410388818578451597476152684906668541241868124339872055651353645603715694276008487176631895047170781109162594546162140310956864622167702398299846398964161049542188546628359593540842062061347114508290807470297346610632220949556625604885367821286258341230018746637146038335726422171392885090967699484025047677652298501687042957709838234732522448218980436186335541278485350267416362009620406457202718631837154296403328026798980702214896322030744165720022688329122776994680053362277066352901213507739464930716161027063296235117237315893748240924392238811103541689632514657839377431837864641654352686417393255908469262970076714980501504037989073450951192354916408078840143802611673508240336410741874935581326943883359759253718439763905948791282609433456009179820043652181926444439058021080653241309948029291398185911516589565845511821456945787323052202392261231238104321176725059699442243039384856926608922158827742901440630921480713219331545107065318642146611830860418856261130910576271466718568920541133375264334733726369669174512726096497368047598469528182673583064416049938955840839195948974188400500530844777484103377094446632601765297734185667249568950977579591155734848208641741641825128110405974151293074448754303379697026612546506439432559735247524619311281243661306238566037545788103634139223887541127078755601952661384033580073006347517608209930302619153384323196763214629153623162333583416888738613719518519601949357071455945092528627286647559106541996478425269399496657711704853331932893423805069572909649503474026842008939686759407128651680712820175947716940494975989214760248189351586533775724796349932415002212767278152686398678643041000782298201788785524064232708127333638472362578487765661622362685933626804122036444603558813960420309933799796334010211840139804299613329380105593301724218484561491990611725005210230402437480294932913357304050482216024034096984549056981870888018217501443061867369497212201219949812335526775015463327595149147099701062793217891214404362910198950518273113118391717367641997221497145556824831371022834707461171479783038118323624263085524572684162680641110804874902450541414590742284097713375937009322160756948520136265301860110295381367990430337174924876500859848714340030176708463942168313449253963766713621308187322061857525303331700040828339632538580091870251269621532502301817099271700441464708656584172083313011168799834693879226786682607232675563858977001137042060373413196794859801559861859732958188413395441339859242363979842387273469016315331366823218723342617407054520790035709089775587307736482199607638338427143068051716310793767935800913053487446317165126060787532517992040998742335775635189469313304602266775235300997151988502752639966106594625928536189521338654205686231644773791630537767205038191185775031184004610463261587859958426011521546031458871148832433366452949172775232910178503443592493793875150052818123672741096437917980642687585900467463549841074220502064131607391371595626146124406921519652297702052529981257428542658591121658074922897962139758565223664081577319335336355613442492571692860692081865221991444657822780533196314620961788457198491579034658904306827468228813620965893084215411876822112925951229211451055709835342679599066386417333361778530729883459623959883566009780733328594794581342167999467936738378316328532612509107419161768431368086274523174512498125502690407403411839393105225171844829883424554218174389963762304240914080233462025376495592157616882180800889068186203876196391769171243882515601609589156009513385916766941671006889822915413641353090515588649686704277093645416488798026963080885631368332451311685537838669175678683631107252428608554145637633846661140937331738734411094665573421333095198537777044015093965475923914109810532581246178065938845055223991288595822983943852819069776780122880945002935145832229157480191955650162563283258093330834319965327643940074004608570114668883896603992589993530490338224734814270546893547512882949709403371703703318054016946188965171076021198586862767748531242046164895871027111466946740232878680175356481979924634929804235227260218506825348675215130795369484654186068796703708226322724307503175660125583550005449336226924385284452017136199968177925449019820706053533179265816815807818709825298535163594714890115142485369593073807741951332873239467029003899750712446392877279898119132624343818997573165741442880118262232026707276429820543936206536371674267782633821402978676036813982284564537843829537887273748045572827058391520266762905253676910713767337229375725411589722103835946064023157708229350158095170144594565125381453189696089399084817965309616193884581918297413934154118754912147217773246322199031041006218537409400158206349455255235338543313455473630182308247952983209852922187987910368276703492520178632059432148347017563101434401356524623438903583855957341321114853349870775047327052416678766924855427141968060920241719050943111850207366766689077237900330031316328946397533460173677745951476833108077572901192937934764327896270530323061632083563439847749252474649842033050135977797168912016690179001158421966826445786655786475664416799121753924230298666822135729676813598227041940537885335393464581441470304867442974722840197775839122692995098282472860337475625912913731306135440801416143744687886180624242247754602521327851245897633638406882101300141981503290697963016074495161285525818594010537808868869297901611478855643209862629869328640747896709283790147173079053342715142870506671412498864143465554079621538689355779053941478613939358276113431348559408875803943216571536116100999236737709394186081763325020541046774794965228385411447457807313410900812119994049037797106394013000951123769080321460242761433758462197565603860675257312789144063241903057552844774945462609414552683345888795639021230764412190571441334215360050981797400498315770412333071937132499949027793864195988119387937003013252902652854890778339332861986467795087728287806472777554201527090004672556853185028440779457892892802060214966786203189855082103068741150361183658019322051064352263368818318160741512193760269121438975974268013876228738072761864005691243158185202553603634727870131489065969244040973143554061840620333642984275772775105896522631877173985969388015241133091070686066606270868411725226872461529921883802361506501248280596808739172438166918882107984248751921091898887092381262346394819765185993670957003517384357352985530053470340414251255183543054209678602917811931730957767184737237846305115843656601813081995149230285594295264247712740435864830552722907283207554278803888246077046571388832752821153157431856717718670586191905457108720051363022743062915210392585443169658988346450723078549207258407754625364392128870858361222939321411402659715068409651400094169449693572083603937271734498540784680991421274373358572008598242171393140232316699163773367318273047267928205578410684813136512629611569248076608842234261575408276004364973859480576000661244945313523191675268896922230618503635330524870426744726272413405077238397176052544444411685885102652136275079445503270575190491465714205111635475120607389725359507146545907881538851080221574592625891592800754229871046558510809776065471574445837620006415661907377853559159177522889929549793563815699466945330300469746316812458409992903031504247588558267712572110064204504074188998703885287623705183124850324683208746845811456252104608436093334748583844699679528210691012003541788109347200391971770544039660709114678124357699287045215690729130962089600969288897749124593213437746814409409113690129589672048568013813259652136264301115387583133344514308441068377455921767538288503459908894632909711751122510730933705189575879393095577399401466652369824666685389103557142420240835671773771608335371390438303506625649658175927530616760767691640817992358888267676868578394501993977689744025764933247298431900966533456667992863638785310820824461162489019958606185987171646578400528570782448812693067745993018696617195767569307917416256782351431293949003233029973910823928329595599457448826154185402982276532331318006257386889585114494040126170894118397785939415862098928942485949267011136687798423044286038508319902037243177648671304989562526365661241316884117026239426436904274852650718794164192707568698205052064945758182541992202963337067940907524583538188024827054098190485510944748866936006561403672321296875291930362210509724856810338230666385323525905180639756355156510770925375722008519028214107470718349866833494539614629653461601258573154710341259375335413814850576815766546411708860018996901739298691225113578324391085625150819326421920853956275214472717958081764769178529755522170910502164612124169151522535872723363046149264748629704553863698426397490212300656899412275414041578833825454662541118817989396082744956125617397339772296880820104270986797160960922946893410077840746599871555208231400889152121844773490307287251038679477983410785555573951175423181672709259788299196969566928777843013441365259377256886860304252220356257108968356685681763961238458963997606247096373938817018512679640775315642688449085908774458485112331521408052371841488023376486496464604794694450311618825207198759662882897508125547332389580583209266531776061328718185572352588838233235032950395251202109173596563919989794183796107380848878123260827086925611050663308430196407146036285220106848653827282934672269145925458804071860681788597983777238795034513294805973982427574337987376016004252692073490301092409365272821297392398580172174960830891691105394814914625387316443693300609692813948215203261471437513636036851397766902877189028391736052645057233695262067804618531384497716176550528224252611381798063430702657610696958261995169448740068313309818787383016016949660936671812295115720479900345536877045954717608139625667391304065189224336075862981328353932291721566277141242021716373306203744612507056576576359779444853192818002550762422807581135942799720616274783869628384283562817072556110390351622781380582722882245464339813152494613745968954319383644781259649973724916608879398122833078355075486397411491936546996729177236537485367066178836598330838968999533743726837621256648969102844379996541915004867417194829268315194422906223666646884400356263535663982838936042762386841719949699485296770048303605721144635998542829466610048433039447469945845519621938914016335729410828514499068162064674704229040428470603413151218203363302304972171252164405597046011409642769734957932716845509510279486991025483588165875299513018551178422493727490837842703890669630957235186706122617288259259227274525707705846039532340531975426701595742986810009219902132855308836111544969058609521627009772409563750747161376763271422336206498043757637679449151329444324142663827788508366979158561010561914743877417845215028294118791460078681399341418263303947697700714238306458716591869011884996086379666693045671207973883520264415368816959916842642454161043065132199074998759234258930664431051791645437507045033298795561601945361427516470976968807086902069891846467582776620664098832771637183087216600141296799000437917841020328582749886926570378418184943569713437660262737372399693822931077595700405828858510859624536920135803737680650648221949290042131641596739661753752326793814647612423510320018019132160498239338021698196808867097769297434770125572436242501303573198296814208896244681698131353784904484536479719392199226476932026839115031511855685516375327888145160901537101159735802784547136907633065281559672797923275276634076383154344587698376928181435687827701774202826599326657016291060268154202599004302207109280685226560687007551710261814383993481155186642315131057249263755803006708191339066552258652160002294187087490299055909205511899349813214809216796514344154063447691730158635926275986064183594502367230524479461559423775327680578106297504991116533983200595622893062498769819922804628622629150827036609229808168072357022971498531398761581528688023167003309794807613185449580264668548227010141190211858451744061354969314823590555871263583871407141162999388533926056880712426548146134533965495831009874194851466107123119041612564728886811566897871497103774077446602239052233607919695725515629005450529113732554478295853176694520421397598566930058138352777131864573022391247848726128407519382821315930194644599812980314881702479667701382523419321236402096392469179801038611323258592015217928890892934666875476270829741163268931899696226254918234600384828436952684491056379826514789421014636414184437484095822904867467241152987927640801871482146593787259800428178784667861826717188557610068504252898388695920804672880542319554302189711768060526975842667749650220831472260976074146893523942351894079025420136619674955848913441110032347674389275300211382586668303929500152779002984665652971894433200494512250090659758610708147893181158429628546212590224813584273134650141493713918997290170797514836856056967309883295399262200530555322954745839095762892973378145025063155099750589187333430261327241256707700581400507226473329019654158247352228699687209206982297891480813676394920921079859059355643173884881189887101842706368098527868320801100817877488242721599282796973875216217992880631208330274169480609222224830199224547136259800704355212771427455707224077203928094276650412810475135478129252755524889104085598924913010607410957978454183716825808242277367162925116191255316616382529396433759073323597453769153048557594338182076787748690557850436952727748145549167284563705702969734968924757760481168798747957378487335602327876715820803083871805275529537599282410022253182790246383275138032822230645044084291227937214546852272692722540802436147149605828078850712202931277364633343664366427111198086584587577050665070184732324197649699407041317484251544204041012005828070858669560818856521440577469162056989431700160692785408735322798109818384090590973764273980105696078886129704099203608609686967400339770701641510352579060864224778718992032565759735495109597982817128198608331301170978663308844065281584288971661628930512206561043095309999403009021537642070748015827799129540872064263250823480080861296377258132649834195150655580489526418098620982692973412003154765205069997276810073788342551268439634916447805553317777011277218725864554672184885445191906989318890668993620429675688491688221765185483645348134677013496844638555987567189684350373195430212278783526479455736875954380724759175237640667238304285419950365558736138269498161194296428057517390377777674534053383982341055904392034266169050534374710542986158292429137944331222335029565265254511688960572643842942931179572501082915991301062118784071897057688163747305467961733966846231424154427389948018359472966363406276656811827218385636306586073592303208861933506851691346969323800706370869419102790889891290055901641904021219117425741149634692584946441061946897849924367462995136239556227633920444101708480869758512657899186600822119917446618361324514464747783982534564400057811304789833783809666221547855935877739204934678992608109906092438352161181584174808172704830787546904816590462967114122875317873277989654915523379087376893470549844394079029541550672949798502426063236409898390101673892500753618131131094992536387976195494403712589035731824402690009019935860396468895941800467859531234964634787632128273689152399630126783556011760149986364884751579852484047064701502257124200984971133190364369340315110308012097408166399421336440281069989596769769447586902950766203281814909753327839860320085356494997665139768029748060315270331107350647510658062594884558386856271294424189093559696522146185190003605142277022774649163696692218428682999458339922470378760457698500072040556474595861274330372632371895111462593099319965332124658401681766732310419283298375060921169661875534460999521662860508868927525153661062248402660643788452612870558133301935684883308372832767035599350823816807429935983412086865448091553930455369226957549697254069241093640803986874571316988665275131666371055437002928010495253811295034691948019230820659541057824258889063447329877642343475373686876138578386653348688549832117521972205717674960401613140759244946441037792633677513525906508737831652062951060369475565236715313748129547552404773484536299259910318785594511365295742018144334234137167761148168743148852790513162457577088969666857563159981731148913504425603277682798240145168610294246206242084865919355585380138789976280277613380773663186940940213711863069435463327821291070362553819286647116878003599397065903556438006854822499603096417117123633563996421988023665772397830064326977499544855632408850203370870970230446772310718688937367807926736368866092772455895998133914308876141570543035066392896312338254995577136698363704062514283014611029914632316961624867130556938206117511663384348387561951048822992937214664766329618417999316920619246277485891870693359708371269427329096310452447663823044008495774596080142569814217297760955065519313406212901597777142421647973973054790024691322621769880994904246723598277204929909784237501442214991142731520427358336875330569758111553323309403107686509844070356397393546218699541874593705628283048321523959143019773025399384130910746027008159265693666493589989417572713194284666160500148101542701492020498423186713637543977760749340865890580389298329304571846085750249337382754040698806788334111776671267022131493013391014981135579499356374476149504779966731839325707620649368254058715959405020681495438474415704047482622679777100067281445093033910457617146057570491167401530409971035923855137370290014537624958569925825180985953506129802675679139139336968820312136311614906805195564370879114141024456718843846400634884401683099687162797947052261361694890515359253819445510569444073710906897883912642019611150099105957593370109109386885024574100499584632881984084649591892014756155046737849483477963366362574262803980328430302237593498074817374094999348587526561597788021948994391585287691583621428590325525194216343432486157453792301222774957661084457417671741621924230573733154166240079766822744280249876168648262726192524803538882368998998069526412050234009570863347793125117100054188246773800936035289675691330521939324210794771270168996263759705663381841707040373640771634929909707463817713682390309222932886499097375398279582937973466409246389466326154515615125636603144047453681097475015966516086720289032428483789297173155783863775771354203060827237015228470886595936110394204086832683609069738151355687901475685712614882517394470665052793774843526461667719259123600616259576307580125782035345961565380934835505265075835207286902232222105142591204841526391170977301930206808229456745840406994273541871714952652062142832790391720673250836657154069658300177292779963504099806104732389988039166353088063160981772230768035112000617166981262046864878666223471680693957573085752468412044537706044690149060262235560139778337464038795890417551752663776474316970394383260272237156010766266428912603881123773961077711760870264548604327422678394839106947130522894906394084022302746629304948949360695900605919085839961975700943964366299670068768269450631338640642616637051004472116043553194929808587086526452960018614435138592179046466728254832753679227303673576111073341213051516479224920288561077638663541941705099963237098760971337810543267807843225692519095319039202681966070698744892005527509118429535474702745993126338875737876633429915549028850662306470903567548279114346106762498130672315649516017360501425265948026225102157537057171907347137243033922483639086865884892187620119793829191739407272709659435030786124137427352799970769395474603390393794887589330371986400842581713867945418093543646313435225593727586805725849615147933428744667424497960278342336502741606455256724133458808591259722689373535378604749615480303418492194980831882337429637044684054227133109173151387518026640797811719948357726656511984446391881821852315530341258015710960966420695597169349700785868773136400797353987585224639976357502912285618450735721099257720563961482975244271990135586995027898939396921466977116189688586911145742084212932121878618758852640799654635655651316113278671417988495335684242709677843531223245848853977150750262489219105742763152957606397169806966385434858787028763401043274123956054466805668060529491799230218790667495020091813155899225462468558380482906863697688757086491684130082299303097989310590782193987450495034336634547132035035966775898189521089896258067744458010157599626725953175461698048866602224142896038082692956325950106803194116912660320557712154444103431963086772539101593863031079861144071176243102490642570898512020495603725923377143445169208504780372336165318027583399657774267372366999899036707998597132276190434663920486372536333819832520691999113894159406854848613236064464940591439873763218803544983365284259782260919090593954914245463917518781427750791098277807745396878072446105788859064705302066700394820850327083982686930659323330430332861319814021605637336836682153119251688448295553908700575268202333205193182333137929079182485224284627252654116117387348626212785125885875126992430572182464548651330312641664411453805749758437151575277121538317721482495472382265637860106592145843538995150883786530654810665631751349606135845700737262736548668143089597383917193857116016395660444550977662338574625183948414697815812380122363448796935526539840262665999272667450249576467546363137910180389677792863212821804624759292665967786459810390243758239448601267346902379897836227874013614127889458036105392665044371284937953092625251319888813977635508559699367687067889090614491548429404442068182153519298775879533859639156174025062649983704717855820972658858937167358319681455336724790620947995989593817675086201012242784156397482051618262653054022142982828807085846640400466477583146995610453219906002857462930533355410621984974946599319353303532072431181930561782475967752873191858089959140134226186301993105313797624179027624966386543007356660285583362169948815570558054748098301865114083454082116531514725938253702513513729543926363644962451871303005879090324662830934268564851011391556186854320832183965137566967210126082556537286426586296983144903538761595197790620108350354542302780772827816005372294502924428141052040056330611736166623371413689622715456669794656710645105791893447299386606867561156578561078811782713097678699755256305846264303733426235621714297194635540527528138706986747473700369533844635450657473975612395882601579279557189989415169736447030338432160031410001378451846997625969198186329459378243020524371024022717182308317808206540631878803447550715881030225656495245127813395656641399880064390192344980901613749247299966063680572175116683744046297174941571111935467427884113691241443222017144554560925721533282051843662654180277083439708976328722833269556523486313039581848167136380176422260835319869560756196438173370643026268037972587767692663443237389780925191874471082791075673554622734554324619948280844339988831147352814247483229685356644460515835515805648220141643987519004960468003923397031635953060278165041829147889008105449757112806974736513134758585394953055244533078437686979113040877918365943245893115568341854278315017337970304578002191704316395156807398317283438050547222032918413454753722900675849792382573547416613331888599902765415796274244111490010573333903754495410324829013509756297850443894877978308616835423819755847664008865683097169295389291238124022662846711976606534132100074869063691975116572498994455678499548898381953814924970435575036708319519065204393541065838227687938457947226502778789632665949240834393039947232674136643817054264658046930268963873064049500693602035917642497260823897247993771397280639703143408302532207882201263057196782701106651066907085483501309403756703726769751679477043716580497177412219265315510598425375936949738716765733386830902378330177737569745946263266345716704227669533797170432389845279949807055708877210367700935811945682601308002304524876470161901422079126193338284990882882667302030489872520122651652793998449890338966996420130183516957089026800811011077022924897020033597834159652852067670803174936525038604552674159387433392094970349784051930386429538852344696901005540010739271366507927818573180987391494996998114953738356389954769494306340324484385463580355101522670581894210873037568888628417070368837658197642745870892508499586517294916277137332385350269297253960949134758999988424171775530549689283027845053814378784509679824186741131498693739241628368521404945353916272045309396155629209454838708158476405951607380264551015198549830123255408857230885009856855899591329276863473299839783987080672087031394457395330727072418795326265747490086612965244303097779283883200315124488208701294951696633354450410092898438677978471248629827755057114342045333103157160222438621446553919197435755227506185794595485957126471237575590919453849491949402573212431782213736385641033867227658484126198578956527063883324040287061799875440916578175628475169331196120467888786146595015323827167699611988473543769617640198627764697611989296727905409153834508297827499322433851465358562969079007408894643481970969748053395424800244463643357985380409630792445875820843424980410877879553909031435647803986444407982632242232916366424433578849769867298097509344541647171854180647297032209082813804980946385143294758110796784544676664277042367541980987721474280799352377138376113299876304757953000527006978772859576206551789606729214999593784230553370709445224105985526797883745897893157189809851732964969978589633081127418835623773274749789929964581971454699906710093846234102389917948143458100514989496308540374591340089339724192469134909669618269119752135954199412996491874165281186399015449088757017887974633681311228984618215032383197888751368001466488948473685354904639883534521965604429578225252895171422268350922902613439177572523959119866665340366592925667935324973422198392665519826812295312413188477202272681363474397847127688511937376365837332141375731804155942412678346601428274519285653385354425371131648489825191192428143430537275550551966057061823882509657524314790101366312952156454462902148741650699888932869338528719104307439642537398761658464855036823980047766123881995873314941335816094515770348035096780357668503709528999688151048231626477030790395879567140471781498033486137811850336386362046919223778166710625670305702672689088946095230261335395500193748835264761230356630276194966363753370629385125912673333873637793534434500050134135964438684770279229954360474378979686749450353040511024884555263505479701661610458755284192741050977730146861214847556140516709724871087508209238155172776505515507617905595313448167196882911122194603830966860609937128550830025466479043277521408328004489237055958117606347282857189776942377744814156188171413522320571705378839544202902730062006060945837772039904641378452904891767518830283018254556169416624936043479561263265262708400853703730761109572396116372030915232238620880505494205874290345523250552569651042529476851075856270779768551617421370013398497204210691569678222970085838865575621240731296478466169375802243012970025161562746927375738681908510361780869415147489171201452600471565100389009709040943155263306298121311169972936283011774134084291927008382611527904235205213552086374505365424663831211514925662242806863149189639262996371187348665502334962379493159487194423817030374471679588726560824583082096008695569134527513693247196639151157806728660799765796978065831543003898456991065187821065453692604177904128091428829285072208912254234164044838002042389739022504759446886831491283829958328503871071741710896181228630781260489770642654172500350858211860850396119319898044257184930434594434260939716943119007569156114921642744703280671496499437316406514366194647185563796006318980632703979554388632157761735025888162848199459100470106223503750670759959488051693801362132127846490601960677615276996130269949207711105272430671185463637116984198775152444637968648940144799205752393392673015164051571258808735746203906040493968772267318457796390210087464961076452173258803579960055402824706668867594527915085048001325151527438793751747399896880543093657574399324886760782413077885786093497324259872284861477268478700137313221278920433017660198751647454856209547337316583369930328510572087825165343913645125255455847679885699515363064870982992165223412322519098149938070990371457749652056620898737975990669903984699301574221973720226582925071577087919387517589979469508392069615445670152593396676873446335030420378792641236779091588365851302082466734693759138631796092134005368840062388952574131499517152021234505397747897332925725890157326695167976116615735806647396956070360331739580143896188197385356123975056613447943990256265610199402440513563946819437752063937662050998018220045969381016165712969683718050692017208000029757430876972505388453369783106637810419880844850221758855851140470038055115923336167063160480731728308379808314610885575490171349432760315871739015351487897834870892412657215823272991321366824502271688887740787154299649777127448235445307931218439825687838716998436309139576604395334114458124423877874326034251495440951761552856382606000353937260849048522992356314762174307859363202547697829246743570863234851903076401117122051695530867192223009175055952966425320667754892028315659388664757015420240061568856457027610422452030960248503803392994723216654600048644701458456075258633284496226810498953454940439340575498583646782167551510859458844003180085597339438951357163295114784402773061364783952540230093039216406954085714235310880623506410187545151661534671718741318601529935645312421038809645831559497249862748439717670677158060830340218362586824560472388189173662894217434307465436661286807080394977745525641736895916060313107951952197482183067223398075364926409706040192123719722632227661116256205877977374659055453174255705223668716054032376426276805137831219753510142572344479250543763346354162727625147404897782132207653753153110638841056340197802531914937151790307429490013250793659564859177522921090278288232793467710046320145276871697782879175952154595199146719670333864173465771114332107151886883147160668330720903394468494730573628304913209743808177785126665622735315816334119439805934609297084135194853736240480753580187986164268008676818383661568551085200141385394695081088967958235743895030758653555192686561960367228136279863015925220702129185827768184148929346822021995901745453453939254692091152074414699111583600212748133933292195703317701088751687458879684572576703505919289303257495136231076842547573169009501457222149366194458120029880891257549608493484575155467500075312824164029483313837195926207006845294703212656966456864116144553628014850409137022598169285701202795854147760637524195129973024554085545617937063429873208768065970926772194500137816081459318228730800051609022615127611043974145978625906924594862715987378606803636281458222996471485341239327214678926813004644739795282854935767221601684128043049172839088437462430130313415885785479085937821370443237116436594023334988184547632380603678138282903354820881365969650917508328486231918617847037193624667515248227855129667461712256641573328699896017353618491215893309347310372411189445319344727635785984191040456211818363611172349478906073403332608536968199179272093296617287374073536225197869361744432255510021583443777373356279299130497402713141918486826957508191460502579803002939996083066485152042951523976299503628500006019627785938261227348283792495759095532566170341034764750049271299217726825035757146570509780867679970771414724530566594217409728927750063569572457270099456677197018560229274427104320621154323506853663115640364534385731142171138850982919107984960230285939058833954070621231855047356658091117862590419699359011215356998108985549934075051755096593562052328459021517242482862129218499993458869192010489103661925310428740447596102109297790254251078813056151993273480492325376261561658840917776922569255515024919149073522654801716345514349399252783569776776211469107113077819202271032304160260056838714468521598368913697271424357099681593227218687824134769505105356478003169933570439257820293635583834626460672746205850605193448161794183625658562474404320878899381101920818191975041768206755838825287825479408969121997993525207540875921420386624969844937866513467082503588735044129883812732237328561188885873449746938288478080971920151819590629517142366110951972699336922737612106243328666234645695776767779374742003256515215171353453198120858454562105445415156974448139768376469186204690307040660762383385592656544278438019269742305405097437765804732311860933792049540682241166764500420865326076625746074034224216997920003532399971233962483656994723965814154196707265184279217501796551628284858956477598255101738146286086004785138599418858125517687089791027860639323987852317043132573991342181500228093737045455251132290552156991690311860427633264074760428428422103517736340555708415611233705787287597405592085025994865320591429370279631794773242215226977172387624330267418219812132396012336530783918570372938365219167010289845639689925752476299518185488853039009371643170664639530181301107054238392476148588204092834244604761598047728739710727545631880952533681635766930683720040199966251843096733963897841735590994662078373418113033308540093622021281372066913568848418615632509912754447821080983430795476981386581027520020851847104102538838318815228901660305394345146805911523103595589856759195613553645865310160116630264124423703233530199187109528218275099227483917179311275019452365176241653770140303419232423328078117342601977534374306522840337133476410153507968209207710079220398599058894032481753899520265050427737016755023118944695886138633269251483402687999750788713305005329811030034381233125857795733491203995752791141721539480502751779707066867050871228335427908614597761047372407100295052055372374922301934274201707406215844577478595338545137746542625593321816602915680707931910176303733619976211622009180649151687386447293662426989912370618615724876267469373329423259885500348827313433979482723915251254237623935511245801727257529021379966915890331296360825433451610233769103517230375394051953112642686905243817065924429068300620038827711115336967250823676134041755705967041533736528215044965017790596328063551431178913697109231920540356749956013403792701506480962232915800331399105966492748464696365783647095861508929086611915582799110112523211106917691117662090675567296263218167897995976836991290648242258441440208675823276748752144841674690796351345219635365442667250650721961816029839789414554107131603149964892192167385092409799144033802729873954484968418309319419073682601738673170624409871312703223698630746979937051171790924643901314960562563393637731783847739563368063589059553592291128595202055944967680923041003420024823138283923905248608838544400756706389810151254283213569410784821318934661118775123528506204855352741370458520421741925434393673034180951379492463818467386856438482076059055824907335037362491474243134842189574262299600385139200488441592104008986972564667014875328406009824910668942905311442179445564143670260509311571905160157654496119214301523804003583460519923393771336850071530327128406564537843785496013461925970952449580196696435924706774414951961516712610485028703254071733843025297739664194396601222279383294179903007896454465053546619297140283489083931322882012265750020240301272512802103273168439183695462985760293350668147886959100862505485706007760385026298848985165780544518727461873567129497436941538092235834748337366122443429491663848260932741101862998294967285916431470688368170020157483808772997038727860131134928179584975058815490426188912322148246015352804303618462450218109098360053279640658550226098187143596481241714024387250357728524380381077483652362894416959636114757156514599504042437968567508718749131225650816885693130756720761105454099645662465879161321894570486501861255867103874877391860565451258972611393889574380721495399342777159162055252700827893864272908675330465731573256599703601551956771981673579078120858787019413258270289482134688358143958087185150187983793431615893530527454494527124229937250248087540215473745953677758791052454647772863956261805832832023371349855312964340326094928883131733390560674807780581421326507034478844618414826211080183237583595448617211457524071575209784442813256607338950593959574439566149853690461845872115256065345659939152840790809795804996788422418001877621362845174245605224464114096182587969019045603476216168894634932006851367309557723875333002119730916091136374258716144989914423710700352851830790711844435741434522589920658199219510611809248271595201354062268106331719465949203550984602052370431571416099097790633401191502684074452099651672218904769193034888397275840528352170416910221919167568406534929859885067903678930507238826829563624356208801160088926787115644213987720414865719663936475309647026525524144305209771464512342885976346302594098192810312860190082564779261487689027603336446828098755832364003989469285209024526094557129228843614519249080475097045358385574667160889406970548649097458179972904891522870716757923426481208744830509341583544777134248130129390345878302040663727086680569205030921427615215450170023667530566371036402992705679323888924988122566262300996089794392889994328245526026961709144856268771932595350594088986797132102199230407021132003680097603963723466037640187597244107849043478707557148629939530298357637209764262560013952911769659241656082804494082116254225167297097076977622345772548715841853977109433228860253138207099594367429276845302081549724986577234433105414524497903513830172893437392673272681972245789162600240879053958302386111320354872468278463993438668714869206036168178826659471660319370420048680822503535622364109907270716687752136426380778090943381558056958447983574575628243132596752960150862765701004819705901301970439261793698747958329169000346883306890579075362514609645772288124857641552885710696230133313167542147251061016365841172465955371160059898420931298666433869148665986775919142106747615701679254669104184544593163541591343377111452891407357884903722494978575999238537317134937627552528891232150543729651030160144260180654335173261783702442280536080441835397498046940873493783912997775247890630960319833624948558628240314990171685261656139555033563848481267913862517370736184843765510197661050355487761349414436454524002048799448948861741958556535642114503666988899880490376096389625803408196571438428179413915375382895664044470522016578776209102025624005557905610128290231077229586246973932620883126127024153882567832113144616852833058028219112176957024119873055369944417910035627299178335657234525422637611898775350947169907427103248432368721919979883837864570567680553761742973903027751537893012464952242511820749744885964742460154737250462638385630585869041614404973210904674904964889581392304181825636694848723723260088168113409287813045587042145505471039312054639421769548856562612326040528952381451444190854720847632918106275516688734819436157318385763453916921076494942357640570903230111396679435307274235804456941690389661920773138599336284816737807403200748133548645740812250924076439246961781623423781028549699368376151130516490516441170853692011517003443820991645105470071313242811315185164886191397676181720718969098613158543846350067171598796605969230545574260037240839014615849104877052689954851868405749175490620018722887091284121846888326743418055386434494347260901785278318579736739964176346412915838844676302102496942109447788054855715833976646085127096764637697108487304427522164944127665659028157546113166663331663093993806718857900795683470696164137925091834832775751987487412720440463220955725591713203817627737823471737345359321530349668753128363374190291265282277483535006859433085143511956824693033791468866502952671525341657330748618137342922639963433295519301314095890845176606375083628507427070403268811207293031877972439802672311363189620398153563223930143545656349061754193476223939380059215816078144562787942863695844526107369300414341153911801981660615305995555130665257966793127498231498445745998331791543275634847614593572522130592961538408108773196320291600529255325964074897215332181296260834978991326848341909298873205712548948304351323632127591302099733557319924480295089868486356562529208319746923012977133728987037455496418517056417940295088544398070164653746841394005646564937922783875631431479898688928148339803932035306134837198779620894202017387169409823521271369825916484098645440668073901478729405497109729836286351759981679049716451108878206265148574196140792189888570572452000229288524276972798252607089231174327435925822830902623202883661472623743932295040014335242388173816846332270858952736550414924333801403837752203347575980413243678547577526746700954063922536190343163916618894220226395013882166160282916072701257404789289614340223542222020013200846621664745677638840675540435358403665192958578458390373331527322874463017513702216703352971146529344628755729859815760977708223507313031110577649488871031410301328814299970556077878930797706480615600299768312218995076808694138456836419956300088262716714348402260604214944160582025743954372453990030926428808660490306372015824566487600631198621677393620205940903203966423461248536354102472943656773945991135349770380506945019737254006367943205172509540168061150402949358886529566449518890007568272446424456021845489862843923289366552945695526571646679264731717444064435615845922567349924486443555620219184843992673918908390369935197531761162094724849951313532352229583575632401337403737848635163022360426073956981068636807767578309145803587981784119187466460376169904073607186194791850527989424266124148459473794631386529082638176713706474094315160817582228375334846736093159180681143194457643999222059939232517691221333442858724619558012242453509605770864398300909634270901983053072368722977903757008597793510470177567611416096221421404106742915803517253474570249833998892372053419773078180579289489190439630820014238875784506311751675874248838150709614061209486221026392395216218460833584640856351529712728627552931172899766873502536037691347629641726080189034059346041940882972196925461947670813017834217511580997651342588565786505613373171163405848974189039027180211062816583333014038987717635532467200036972506418885168058453914671744886610190539709201981441809531881387801046023874768355358846054894147471200246997239568801342584826860909070844087078993065524285021947056810748499926352940731293839906638692072746904410363853404818985472442376626792400426900448925795614686589844828955308000700634891706792535490332676524991122692180737853383633524099763213314178336481076462648833987197355400888460146338296495427555761525549317230338586899285675109309670174797335663255083358574270145610496243293259331393642391562766494136251443249162739094448364298241517560349383540352791763519588179164075246011623516392956092350785851584032857988367356304152015952270087666299798981546321587990015369873231305823534370400907241027879041711581755730913981577525684033792724724732207005288760386923044010125882556456667373251927314823986294790674523911411662134970710230516993114610443039045848745534353383002281080495591505462292955710571698681298711299037514652382089566691294339447030004657035277968834666353984263659762271460410486981896235009071444215666354630334189359326917283556321936688574006732488281449949505314104252856070198082065766316466026532614487575000021859747136873764429801965146900103977532558544475160317810042102370263297741178613336165084166437275083031053377277039767013640695986194694689215266933305241669984782261565425346147021518645775565652217003119937989760861334528932315671484574552878087625047244090566499483597667786621795725107633247953147663526473552923565029244595859808179877641264519895293420103740174423413421973529819871996441865493017293695930536654946417932802102906449479059129253413424003772509008569986737625082573743442789174285202157481953294151465947300064504326325172722923925702305799882268454967555154631941199447644114169983768063328948870719213335855977044950526838462630320815575454315713388161501060387170624571329932389533503802028915430076670239071448162363293493817721189010125165065046764173868213917515161725480682028789144737053529107894603443846717248290967639058895585113180953254570435031338384283907949361101747720124112118049466398426243603919620561534211511932929364479356927090911415567862673298754635203118758312875779061272155026170312019345170167311379157208927858258238018119132033225226672283177066413011474470269056788431610885629878836211325418896303050395952054854649736095541759406789740157202818115819673360637731597217441334981602353278358028330858347629255790772703143210280460746174229463125228395073866870379290361209236033798593341068467836037159215183360054948942408247627258516701678310539408623758137755560572907684195675059444712043821747889681937300795979867608130213832752013737519011933119411406849610846394438768246478019798693692554746709248318936675876093356861358712545926179648129856804619873426638053223262813249018227292046912932073019081786874950765819036418738751287947855802241854444899992313601332703037000442890569560053170807958011942258190384463154998841592605590197338513428515824682568201066544246465567276528920628580117939434504464911999705297609731932435336433440084944723190813671689157291843410642030219868638764022652863741215507607814636791212477996386189728143702372882020086991020510025796333990194591052000813866930319279858044258292580180589097858718965024296812466592226497873438578672934882762602407869857386874516152416907834565073232392132599373412784814817525889789510999418950420123296210386815136197413276702847953244104877323898977166004225607912415972833620969782749717279354037615191984073894338087691398961731203169847840449291266041507432435630769372667758038241196251196389015219516934845115858380685700708158971268048925823257106523774365442570861022389381296794916975873666698979399635219833290200747519489587058399956363987619820461105772083176319444762082163402830554898884169441806351799230510621399605330073583766408915640313571371684016079877609803313862760724876844275739472508218277523372418051235881052834237500635042167644483696261600989722463501257359556172421644308423327268328046407199186584534744709873717670658249620785694260468662808724335589644316909090304289398548878231726119462196806592639717323722499609048525421225496954517707252672113267817055964787752094551703656150540806977086814708085526964971500374746134038061282986719471900800766519058940956443176748987808669437139772726301236679646199100387357642929942467425415753904227711681195831362961818198417294732537169366624470432919741990215282055392601186842513987526706000556835149191396936681495566957397837762567168949136254993716772186187643217923771277648719003597548568947586001307252687120826409310781856358094959460838533377844095474999275697660377212884761819470613220174399301468650129427934108378127921644018760473126352305381412756911643731894304290492566693375196797680358167994279279373220575133302656013476233742918249721121025295367776947825565297666451010604370648521302873754280018731082208323253889248699845316730874864341218686633717329382026603847099133289249478848364934006614114842618279128990566081646355542943854255962369383731445069921055732984005593640406206606566258512602275819063174906148841142585825926301279274020353044100550789472092792003174319809865321405008766305790440525862902642156918495723302519815373447326376036633246555793917480966510123033932725723466362927802757239837852963233823004053154996361076472789850977270290223086195478128407409781488816232767513493747561781342264633965204340026614116669383574380650500819868443471181685669893485215396744700875072954263397466746897883239227726371124507021288532367479871063259385593832937879196115230143466858680643424016936249398827004024092254334399103361843183823916473316193798218620536897566593623212686275092820204020564856066795299472258763753178106396034341450282903803011708434475789299614950280983431365973193011859626338775095502774174397774152296430636837391512989502407323017662591954097675729512963213182099496321939454248133617379426742552616186775831563529268680204109385032067880590680266990628693903228905033244464106383306902812131954271440819255161704102646104971815529810500502288479511689869911909893611870466514611866120013378008722634048424920504001886615780265045921283543282003211781784315971071738713656138939856149714140090235208281391637174071820204185370957732731174903991769095095818573693398877748270909149401282386920709705360993933937188553032622947991931487197449650508226418807038126839302567971620855802937025326506132186095487501934941124637745287601116369893702574430184356568846335244011409827239060512743083555553700804640804397411062668636297644659794323371450929540765738685326756437899969054906178787444576838816520466845772046315696185249807990718779864813607263635680491406568234068770587220322275169531411399678332719698258488694060030732435883723226127721830928762451585690827381670922629860355107510792363258128483104004209001947442919144758242324012629213618408512442546253654077004957989906877295105689563721686718305311469990654145185794128728648010000573359571415402898358011581019756514556341279654626720925938752059315036548525367858906425381689103603202505258513961186272512855411860329659741104140505916982203029131770387152933767014197283784475456781290094824287504368807246446274002177761865244493590609869647585221392351621744366799759832643409232294449281612488462167578576880976177084317442185561066536029760020851095396929990302666694746042400127459582646584760961698539755499324075465367425836904184717021818567734770131793301597827283558172651684426252872897980073237066656330155465835393850889716324372229730059905098763117297409777671085511098871644680636684296637773976402289169478391775260397548481008063527444898106795439608732883943952781611898147780887219360519049337553448944686629415204615785919184289356793286970236734115546029190102937751550074839440177610557129248989206006746400009700358713047105642033400591777711207349583873354836688853930152126453498138054440833256988405439374084830753305545693848821737522138517215964949810312113788126099958457771381863948696012936170934807560575659698419303191572846321791609765162638110096981681679004512691706395811195604508327386495930802921262913400642420825814390047989532408754438843448256199346395049716196428771721010360174673801022658046428144429498842588431216421627859912341263851094312922499115874993801256359571437662220986173505777925438308472162889845444280607800342560656748020512392202794466604593862837677896335577190893398697929938394472409622090119483573430590761098334577262238059891902916592822291662134906822382049427144404342653144915422936504502828471653526927029948426905749621152738955201435964385322298144235762584234107706751188489957415113379656428246670903789087959093216571748500910364680774566247327274719511185070173571137654986736556286985429138196753387739956454454521193453986581712205586271111403998254931421292518460667110698680429239816807081168936452535453160325597208501590709484067208558141870813610666019996642144805772336034705213000242549757454142569926826091489920909302617486077994997268616642558360883843381016077734618999246386318557404756729286320226429980707738401064353789452889450090925861981197192919803888600734310015680449746966448937595706501155074563074790827754510078960191575440993738382672962555287970494650635097533181887613358221501273065487300067416034205320622359290944582000586593119599338880937509456565918722669817828656543120462887450461228704596935182029229652539499663158055892467243449272863045669275592057211428057243614656566508433345244151539747563042754185472709046471245546441922477844589935109897580384682720741201468482516405059447297730320925921072105134135510061882683675660329363259534457912065021777537822141776917562732447480663715001430824263912514455798422597489653695445228356889700601287928250104269146957321189210987730467139269592776630104981664322403007816531894911404239387839552371887271446653608815213607696297640017164372035055439695314472407026860784646869383037590507919741694930172038696130673807182620612950246540401204028159789152454856040256992658593497649482904844061081424243948494914982401063225269459817709561275214672729833160037930886088487937708858768480397256152013214368139415244266784599879528077053572838245267517066139170435040899856503178311752477603689897031254280487773235048196943264039332665113387925978347701602449667798930813024127985967040470356046809340330212489836625906960628811522692630836367493244484919063070429620939929121474352854753785693671089304868831311296093162284049990023535350910408659578664237952306876421664472750297418596021074444248573812523116109022164770450769518444972106080125940550857836853141398885445815244608542797353296498073312863767678763573039365173298561350671147535217432372941909375699823111102650209732655177649694307939910213355539564075580773401512808629460188598619806344051762831644044518381271356744642813227672687151248853130827341439999225980621682510488480858865663276075889770247229756276220837860454313174791707108861502271402588597516617548838777479598791153619720193853871749258589839620970854378078159401539596071920097528034798151388288548770837944117481253665056951289410755067129735658136836010343226179730912610727387059519735543495003477582999264918683399827330876718983036568455779675499382269246403583369417729113966934210955645638418938695478518903442090923204616533222232626258961723483697258136112387631104833723803392066441599826830025496767977664745976532124264132883601759702210724020913719315871351167333363455855875239831760997883882787534829570147155065277115384351546525116593449224716421164394646042056228612860737700500466043149197463119332642099238152174198825149974170474078698171609894916440729206356212964659165304777326698827941274250912090974967429448270348561603853758738733047255433178846433474509881280160645037122844304454547747111238159673013594724507894985046467706810466496359371247273914731842933463016410737671050282167932545861597318295383324329541772607735303280937351926238782911378939337206654027998248750748571145017592981090287433728490744298389828443116586417064624696327841216792908108233232775157565807929239707406861132890504514521530689271084918362635121046349585169564334709842031605649533906256391234473117146638874047612471701553939869965374840927429248026673298109996391472939034629524422967910366544721731090193447728605966572617794454006889758783438455623021144856299619865541007057830574866991224021320447848376208204648064087187864031370510012501823550355135653708651248142697866374545605928648899973611176165325885465779457307219665657283767215074996686258785738518929779552303455432950590683763652799268719603908470968268699364939160931721318868691683013332751823758564378093493219351847635360373943077737637626007558476471920739606635971488321102143235781266475691645572631158160095308284004507560875578010486490361080432339726801225555515462903169673842150036725646898387728770840626659953745098276411091931152842702959483817182312577949330272188252178011980792694198898549540767710351034103098049816240172341731137314256726952820364813821131842244632303541071483662801273771505249998230362541090405741983336653755308978640403997594097351172550824756687481922380520785596429494692575345910544891235332351560079770654138418552219656920817115704807421582630761298300855936484631554093935988178179151513491278080237576133555565297099894032075099453777546889438824451272911475104611197219122336953793026372167448815177244894151024381701177063740975691729633672261637539333572376844087717864775369098115612577090705031551256012331845334127568543875684793797240781048564254468408366537680913129778009741802496431164731367411314602228644132943445319629536282583822035205067754547798930171999837026241412461365521822935320443930092697578944729600556683935164427635377829096736244334211402108533877051013361366977566446896457321047143494023910022966813730542643907070661619294619368496099772775312885185705902951961339226828305146990562251395300053855052416827533119984485574547272850504121088532608040047814349928918497901098142953206036568650278125791032244182767436888763161641639891165772711304983819246390836916286398996924146283406429867883695660622438861418261519264081646079606074730991535185248796305158168510811405784837888040246709694131894294716590925030553728070667669273594894809455559385085859530411680504082181661322407410896371415794434110842808076357554399319211843407296045284064023627903001596065487236964460145412982009547706122234744069819151442806422984451129934188142891250535327802633199683060358456175484110749605295708821752194026093004274556304362858948738353491004079890056252368263733260782399886451533991848313036607545903233279707013490898092029822943171498280985311465793245874569187357336231517810067482046821027424029080358906996153426532519310422677379480551105184367330210894339725438509617362363212442444156510735103347573807828164363964099010436914764412381725458515493455215722213248870760812366324416791959928567278382017529130836175047415743167305446499896270963684557292876591547710643106816038589395522333406676741694299195034998818153812777711833042325636656100636511320939945794695143631076933433086502423506433388526740354779074333004177596119897484637239775315949178320853628169694561843000926807028874758241747351783312702943199760235010812417147969413962292840633854510043565871547345261522791525890866230601877863885351998570027626377475421067270110510080521448868724146900334972411148704947550086403536428187219600550662250844799722270495211661878399077111347660855161898476215878499788311162344916942332917531224490415331353001072674447708926236018683743083110254587120217783691216775551066107516051924873170246852501801575997427480113100456733592304275373888246516685601394983546838163916943626268034923300712965652165547093980527758651409348915356290356627194884066699757683817934770215033854730784594685868736074769535181175422821943512961569535499130057455465501811082386875591591625455528722695865327186424443741580340398489912398446331571442717345535291284895798122134078417658501400707124370939707966373683105967574342113653243374869241345925951975061731005910755342563354174413650315241935528948510565867348342487495996986397526835857319048160891390732448780640174655014620028042945722287607635222216102684850437083317909834630625846489410738320313196638383956986243491724082264173235670165313769014614314334864180299867122354208167098295216555493840619930201852646058844789212925239150370003207522212836306644011153172426973839428124185262893210897824174361639564740845782024275226189306090620545624019142714803106380666100576841800952969334822939822092271286065943817845014981670772176644996011975713498305653429050189014709457869768464731104599351835590734341777135806587632049585415293094789838464466038723386560788026938706690414891987878672463580371592798391740658067555835582705665418638103396637220745127218414260240268054353368609847783955098206045792582181372600948957212596257792138510949936070122264479957557841996085563210321941899233035748183510790367741356000037820919200139838343452286812820938741855147635472417490220994813250964790057303124639514418497321758404494226154924989833630833988824333823870150618427415368325191746030253815731724556805980310690824039030595859481537085144413258575850695809288352065951467125811104692666782703573396097603091544783366915538037173679722211357813610436045501621136075076708647162778478135196066544956599177909642581053673623269312254602566609412435174270706929166813030739389123987570864566946334123648214895837773273977854708912087613070595036374524246432693597419650490925550004054794709762732037664873261490076502338063035343086669921478207353936273786168187334284389351841437947881678814938294652478168467256184363385895849658905788323967732417641856733471057157224759438064609487699953876550997375863443713203953859986837730911636501544464682527719655352492393870876318930507225720314679500708195176657812696408912800326341241924738152156823825250156624273072830271154049026100482035786602690544850294155636561294506600709397012414091223284228596828234666213641077834947663127554583013359260122617579294580828576315415513468585856287482274242784889704499295515270355713423641985737660144045003292197969449203052573117666998577773335643284361330898540078440414800384653236427894365456648045904841352816972165770634957801475484271174382943430266333518819520377374616045891729333217458012062637129683833748106349519229345149480933635908818124510183765996825137712123555084879995548772564403199790308532988741488804739143973083245415134401354531522163923083212036213309417927139968758933341708378278046356670144255653668660449324869106775024122333422985129496379975497666176670356806005883460649140167614139481268605917484596997287127311371905700447001100996765311086613815467643801340972069943489653185782817082715236956393710496342583623846869390655156742708192692631490005799548459837353267420230164953664128604380655803507618144311927182541610280714919397278941995344913747306937439469701370777520771523195777391055749013310295768845973343350387458156950668307294564863487883229834704373772545274736321834191529053387594593997023972083546214980379362058247044110135381699299849936962914510977968884062899546079366273915278141660608579466904491632894426690781334966367213339247429447471160526798062738412947116383964568539698399717632926573440618246703449898281477076946078401268166349189259545295716520231664827476682128877186455803043453687402202828445478385103565328038381013970384141188073839212607130768459225524833224939425532342778609026985501656030546410149048304505426597257502073255224607934686593339501817419909572832440668483074119146459231058528062188244311714564284650580546009797017758067105856184175279087105163071686751886140134819824873003702701834503584617850066229820493165407610449580512202660453051308267179983893844989692268687961410641760531152232221515391208294735447283748844496079386167424386953587033742951097754488972303283030334151818746710007439296651155028670696913610151552177539107916773713983819774206550433769799696827297185189421183419613897582153872075093365174577073138735778882705688723900806768005624985030791666837355292157135930454259907255970566430430473546377065844783761812167534584152053694862034560470501864048468526116819709718373730758062382659409590825613188863347770687009829659460504604404666662647482836242284445286604859148109094678035078547083763071067856099965095287577497541320067624094198753690340600622226824844623059052500823255127715914264894046870568547980812917996260612804063369038797565491160686730499531997026142577395051717800393525482114815255885920214251488725046542488373587508028720716253826798933355930738372457652092283378551481912562624756635840316634503398105663323133545697732446551591631745674894544458299146704034293971059669975173911605234627798123597906535575020113226440240467025571266347839172852492440638065634555039270061204548787920409027958498064315903927214271198793177453505343859406119320525163324417483801923703817635441395602451636143519970262645030178973851001744817401193854056530279544938603627875320774670702513958221115216339792090849394212234684019897189469521358658295813469007011067847044724868688338145847305314426374899982300947668673663188398789319185172235638591213059207939819657423620790492124389323826084255662757651463409118041139357798383265060676646487463031710855992435352919610959208651015587266282811758540942177959833778246396963514359395038401135204219158680797489517035105054389695451542430440982876264706950825125767002489201865022065865623309278968876553394338738414697401517284132668381251577556236297478281398022562444188605810190042044825875555892441216390041041733001931803977672281345224237208600913424513988333808145276930838690175365338130965622306321974417795292043103714725030381758961743811040396165215447587601918806673241822997391271120490010249273636473073678796867222985902833784532610132925436625975754578184234357106978251011585332962980530049740897816333943181608765580493833057606401019528710442521786742197829670324058310637519570998758121377642290851977692192037572899803367128440829989421073348844255428814146431184624407579396757710341528658260883154749866643976195044997873647457635985760666637290501416186910036810845875778843559362395683168171539972095630970416375560321489328923487135939020932323449693504115747116131274967963658813714584565586505636627097622133703007118457431543370728670416564510905307615574582810385513621045051988348352824608039379822609453035410421515478123617021819890212274076323458943505665127597695112571484960544568351164100782227070245484193545864933047916216414303291936091705564008904952339132460030356794797033784638571607222961936865788097365609379931271424052587935244414213039176062908750141632645319331216943691315075542747363219672414668236780182100039803744522822018950074866597078095276670825086097113263851884431391873693278353792752916908162030007912225229902118334702766307118345401048492862415491000327488256057026058007511840944050989458091605999082743511135746680740471415905328218278028584760514993487552153802935162291999694839993110288427585651582397719620547470812389149053853568704927967268150312192353535274857500421016500835265588202091292020815769168448649836283073169562204222107638881124794067241287272732411901291752710684839732689917927490712491189863730618800222939282339776273961337469546757473788547690347480678502121140321268161399295331954444884431877922810112608070129168507679025492846913536927748882275949491363862202084206812656516649604899498515996898287904265485126331539032546072266505638336249510826290791525651951904510759485931886437356702397689456548457537783447961149677103467408371473962360407289758484983557204453138466141489485988958271399634748896348973265551584139349876934253653409858429036763605151129701767571368865710703288611329130138025529135103448592046798509368523027886963162403945416308260089440802170626067400346351599607111599546981290344179977855446455481677274459167352276076280645814653792783731548618330962446482202389867279939421050075641268235273691234406254792366071537644168902849395294033312224168335388359865313796811803681485450690444780346463560551227920697296279310286747773695871287486515122432794895801750382928231551644455613593345773379331303809222645766547213044841533251899331368335995305995134080266383460789331334462299784686884385155706814698870864193981419187803506052522034366708393068967476396212324687405715270212165244272338360456790240695204867743713127332135229788724696198718797998286300673419304575738073933406476241578442870248160425761430866006308184002079938962698868776375621482585314632460999716644501416606456761718375452484835135288954042471206225472155015314605753901348273438946539117137886310469239821951306950680944514624453163918520906785147724006161521807906831984217844818498038446599300022644513065301441639702913909485317541329125762849640295065989709122314395479213329699478220918350749164042550398930517100219478797937482332540537124852052799210175652678725470937090234065212577281132305612963957383206048013974491972838328106024754848326842611207752500690334617791345496647210147720039520325866135513563300310411238315112180110297385954686639257640783586538894587459318528551624316723992777981944967785393352143847429988246651812964364052826187100444508439712738227951646446670506333041927845526486300213285626718112032530914118819525956046442414775937490327988710122028288147397111408349187810864280529486732992622195819848151333199840104818643951411566636856738426964357513781412586355392420476964899481970671953405970201274740810794326632584169544662056612679846209639247496376175773693110438578492733239159469068141733249052144996240516953022490629738873360045355562286266175927706211281220540135073141646389073924270813275820997459482648231953518918387616115844831267319442503946609276235829359965829771166854991928096466909328313561698796087654918635349275657690399443012184439990706030413675797191156802597489009714813032083698212313204933543469998542534443700109601890470153487607062818382215725292211054072169873205614938700534542491283701931415663645992723296015025266368634430488435047732918076675745682589684979901897989321659139064422108169893436820672148616484129260024355770212087032904913785277822782170892146036186061206771896822204592614021744576168643143380790607079763396174908397584648394926128497829452189058499794701438426493859501101550717653609305385158167381337632999767257041390809084488619647309747039686966237377766388227680902745939227167746926138377044143705191605046449784085783717469006950478938473813810003655071015808891989274760115274272924391920226704809142414665744588129617350238276119636510175226447129812498120698612589104584207676976398783651854933730316261752077819529976904859569026286961538114666475034554079940162471041715913411978080874890578060522672090388370998356704274761726949011467541870461013996373426412237660978470595219284446846496102250217124135777272978752204123878870453722126816689928339682515375717716716864200321348815547882942154918662747978494553776220540420073621028251204913739681093177047278869195811459020160880167236745625985824695832659162803549006875587971178917466874178548173350483830429567144730785220262212103493123748902096828072542421435744243824818820021894999935070021251414360911597156188767180264444032995589709983541429955572210222973250304864427166650206119573821005855127543017537356066352241347169192226037498326326921108971275946812454573600685212796432273846951952260093361083402990834079173775455569735215377644928803975570326552565368025474168975760321022074778121388877000053241797565019936261809536032400281204855566114916917339685794342548396366671281294359167827245634479705885342129545224355001489469974987249410268349204941866611639230222670393442820649787626684213923565984376466691682138349849757502307139845903825856478179987776715141036682390343559448131986368504909003028637019893100425149625360241359362992940711757231629543639894245949777816146294088602129700390807882892392006435948161404044537162746893127731099354795798627204908663542569133215416130220664904226817227085023459520209391002806023462237913436251881713350408827982985085211880160949343556592624441164641056977963096249630176142975883753061007768030864485974783904295986543750930519781000216017109363889080687394150554763400232458979073940601428471747507549987903648118548775864726357519178423689870972009370773638547448743757538429501383374980569237688867054888983282503156992798833606043748799246992430462922469355211805454508646846326330434398783803289098618646793355119807922201581199277636387864925128693082715642018831868766289803987806042855170448580737105664034863988322687582100397053604750844103946925463817738527382158936315739156786814554450989265316134727966010752585171359741499191983920607544381260106116652072331199611574959539613680068301595972222231354629856842915128287333292121522907222922743542321340846493055528093508986814935838560236652007000910115770980791526581545463822905940169195150563041635006467631135426941253458300225062399639646252716433248867346610551315519274523641058708455559290370652408006683179764505849133771905474511649936291815355773658410753128743833369327517059748043914123555185952988372528712164659448213615806674656288080593631657029523377354675846022732512773464615080491746689554036000619598250007150424698932153923451925135688343887847339665111894608834722019605685363936403868791776721581048090051747351838527653370134440912160383211210498973902402219666315948969425674408041359527731342388616087253570408794713545886319711543148737764179531503714382843702868004404403403095595870458986458894168341471448669437282715308671429991253082793692895883640962608885665617835069422149331637617003969466086952355520624708372845297714939720351730429382693039507829948322188992408821406305201751450751100478069757663225601504419128631624491396357829367774766282291823198055562268239231210736079390120972692265663655849100187764989350141419080901670394196827897783556098235423551873332971969092619568830614507730387636541081716923600154201397254712758221443378907784721864426838572588314569705363887746863235920246129943873915660572266430760313537095893707383915140263457414824866023652396075654961155104548923190845690673749232212352165986264304532726018538137309512767129258321550267157168667809765297408994615695771842091398682320339042374194010078023058408652997483922432410815910615796084686387240767389762621819716800702166992897098827783440233974096382402748383928792581938456595784821339999284432745522884961911827024199802002032915851844502916726684246388534480068823955659425099431102434595834405348563769448483786673473395122962352918041743207863753614542417479655148094014567472838833037002806152421316475331022854893360177525625295622548434199425399117054599932389827046231638972314211363380761546969210876720210511509211493042434561847863492943050866390114919019745617066169336004286522800036406346389367348631357001380941978739409568412515071271014715832724722086601085602584035066792880196847355625724882708696648132516509018648364971694350635667977405959215695342809350134189415296103999363381801673823965005898060079563820560513095707239227454738412102727666361152044728970629751542205212100019679800874363026357629359729637974331800230626881895882750576243268777929233660138101750738707427235646835947011739775143853001491612663593962708627009551556122760996653999981086584884538154031479685005675431632293133606181287115995075644753188908436115137724724939433066088935154269819252805166727632219584679422771387709495288414615081409473109400471161273666959774844462075589558153291365244646365785272354115968718911359599554769600322413277138554973550115239406859766467529128184854823909396388743071728485958468208620000572922716377343048065260645603390200023994167055737399913067443099031604409281891028079120509347825723775584640899270612923443538416661296555444911685679694432130832990029425161153908571463497570280009007986106473805586450063752714453130680727160257181852226058795712419431390495684424315139324505393161022281545781511161925602733350463914318294595513341703702031340170053031024654823778153489967994547694694818251906765066947115779712824067837691303429694108493109686488439756220209936199755817669239627092077537137682692682866334399338088172207076287154679089529894156855090669659042005411153868448569636736348440778357221797726957634651443297642399785516223237025613458094513842060146667442564618127031887055316834416188234212013011982337405860252266157572324021938658238505014997181338329633441916106192714273416562172618279938669188439627700063315240153842570730483934824317995211001590295783991143324510987574324833632152961506795572328654613289728287880569336607211406651462791234285494376269320471228738141151643007104023062171342428410179334665125293460692937944906962953409701686169354285600968232534662110077247231092169502551640482252607288734818869842614059621613225535671707586187601121869818027983194324619342360945630192536984809410550447414662988610047050640132206764915620563350123239740612328095592966522917731365169480441904102692335309174463732992133981360339068206521104773758131594623806428408466819827097902751786867013198674134996174836710465882325103679428392433398399604191211127543951865805132334188783407487296333971288495105731024246208538492426585000922690997099518498788184237131942205869305213962539769922455773996020159548459209906511156844963914830016785794598247767643264901844712615345759522883073217701525049105538399276656071112409096009496503655701175583097330766642337545293184373441739985664608996652423745333769126021650586039062045598607192660058289388480518973268708077855841103359413825476479837858263575487429739917066429577787849547405062098074784658982868614949069501170970153621902794654758700347855817401069686886287260436859788895320746495285279663815526587439150768567221790000216464879014488228431425117118746848737140140972064949108307636887810489394913825634918676030257357195702628552390579478480924114236383265742500067724540258016702160034409524346541886352501396233238716648070588824479724143210624026256020370314230419857115903145780470301665015980167636847861839576665576567346893036852815091074626831656372385436561683370429863736583258738221657806263691889507019881092375845927954586210902505613034315430516506063646496928347220353718043255932603182198182454896844429315225536987114003571717413709919613684996050097618124790368885532478272283647302724583120850016487764398951249908200493535860109458008004545956831659912915475780958833456785139285075975209298623253220813618173085374431716591485905988258872330454933114925786724121501615592518905244586570959114671463200174821996313374157888957489535130823431936275301029884826923732900977242326851311726369310382232733050875580331752478787338018329653218342442609786277404200748852567569884654351663073042580377023652622284085236578990286515265822788877225595134174464196760904190398525896930682099106449110729262779208055876426758770970733202001449773802902501625263487593909930833164851398656484544561807124757829617334555142584822976179988362230571551196376963176588812172745277263091301538656315809896321265658265337721230767780744291705269632172456644860263632022493472136666645177903668802730091412341670476847307480721860123587121092660975525270022087400391947281575865209450641645141445501343458411465124489353160908210400352144268949347782158150174873252282871425694759823211878516962649529292454678061623584587127092252441088238095926685191918007421971146167953064273267941083867463234254981063712425600189033249764713078018105966458238582666195854417833332721555689423699547668473176865531547700451870219976432911390019003752168730577026079265791017520541712508049812239437891364261558799320607854230291744131523692709615540019294916201856756643069370858675971209029883192040206282661204685961193148910486431086416369182911904232004341191722151006375376339627488873117958323053456568367424535569349304046814637684262548484984955676544419300556343621706654636894907521162211576658705745784890945035603126956186265080393128718773226741459852316737257026928804867994156803560932101485328186518083442029443424963130807753248644917391159266799916917056534047107661606371600675847713523690341895829754118692651494958235406612970377967974717020702195820628143622759314931181431473434153283302703022975000707650841889917395072118829882617519288712791761518617953844503376003720436613590605198406874299611570645565345875704644393062811697137951431596790200162589432247456763543947027169402367930470594054772302154905938816359958046687081775896077495499508506434892433392935308536294519001984029690915372489128801730932791706329513417589527113498134852913940655045853301784922759191232341054779368778645089508732928004864047897257928402075738189968528506575851517995006449969348978898361085527374594683418060206624305318759588700842456268701471262007413404018088634553802762503412116650610358217921644304094133126796374132628220708129453160651266098971337783113736260328855883303055871709403876251349232675429211472778639120386890454949665509267054332921135044961885313720873332745622641941276164669626504852928452327048983779766433834401459913035390707300062778391781341225777204141231023584137039813332569297874514884815102709529135524511525094325062976490934309747780750695365559116710174220682282252876719224898516833211244723428590195264269322563619694716029067157409995761662974776032915942682932555998397897042284587587515595899900575698470184883720299011089096632500808846866989348927300294287340193186514670741196341373042083883089422225248903576170104964493733893555111287965725210990825930882292731673774986503640531125136025401722643617049628898819055215682188418066085612505244909344154047041609559398352985710180156665175245801760192123977294433104797503984329189657669082206390355530540881920583149379681797306322446570058622907821945080542543398578086149300228730804598324182369174201844936927290997069686288597770669735250976144211565500118526731853962345797610655564173991673005744891308066624752644069240944257954894289235018669993973915680539307470162511068226206075667696114930241810124914868172328973448952713897767272194266367374832679708356058627522472889849855536151139502284956364589659259366113867467107853246485291424432074928019535527550838887097399992110682831165096864705547020739804082153047515352963320475396760700955438608412065798178704753726889604445864377986675201628975494759832283053516954654592790668271018697333059286653875633988591175694594864837335002899982198477671867977772502960193239303060321407462458965043341050707754904269539104052405240276088460937032356831648420896979409269043584236157903187904790822024849252502850560934991535030307841666948765494664824601173256657321078190358648066302579619291533236965840609381142834582767381814420926307275040124957346030373977173941763939563746043048886159736736286873432292744760934197829132222036200118435345240001139932209406141951142257770146887823601795654317702107775924809232036054031085462699063620557422193431493453619032202451555083302030414100897271111990800753919118970489136150418407703276555300007520724633410254990084809032441316976249058852976569984426286481170560254663106881088568228234517488783961475758632362422558689240591448443711360341384896775081903961629712223830382678782663111508849124576862850196851371213958554439040395893454370948414790041218553882834173508712187432426652364009133109627074577420042977697116392875445952098514740508599705522865652157973003857395314341678403558680673758535426004837667906749891208219164024320058805793516735570302540445053915105485668099015490676090568917163675815929783408588389798249629563964390720637626571476164148871505313178680877695862213737376632214928562124019952447262808818821316095491179922279947455420968856358140391775380118374276295212980760336133796367971967575900058726802945456070065991892846136308830830360340088667745538007517125390734687867532076800774513322389987039836536563624299273183075126648101861461434921567084395215926271622721320106126607700838545220410588638139549246544843448486079410737938402326679801429876998139375471824394915975526465900944665239169499383095960187757749318334360191059083327565555372701476200405224433756530095531370884833825272896417256626694969179989620928757444715903246515653295704046258231835141257799353803112052887512565921464652093657606199459025162549781030052868128559221818045312341276900767157636600217877555041308535352595248259599162190101199904567984302975159336842902119205434161605289643087909572099279212452115583159702744464131166619327323760642056055710924760615603974158921912995527458583028076793997616196315415303361960214571355810850405542461015360994594162950553523757572126022613170760447404129894050616457035385502157926789816707522731423198191703295201139283106220509783723666758955916307196902357833204246216540712073714674692575219524080124559937276754544710611143484263649619647484778201792109738997675728516697470145717859568112960258304980855462969544741215166595933231212905414374313957397974551361637445833250718075739988657445166619301373565763126016543513601427935828240699216405605706492626132359598977664681010289536020500680263114419673917843126417154561924840538172599553695442427074209658813116942067920229482004866128739231912038946289497293937547428593485591372006650624211019552882680889697758845830890780812088383362660435619510648018595558562521542499450158388962196871220324850306443300017170937628712808634643459265871518411049679503622396406504369659677639822504184055368945424216764995074503583281233502444781460127035998814382637910188941823342125967142730060207779690653922950442221782261172721795804393176565276964774535169492549941445503196252742398196266822453109825746678381941181149282355641676638716373518731674151133786591111872403156855259691769846817744385014835462069898128740084814794599923079298888854517680459772764486467542735907621644229477191303846743966415597465647785932752455537310595277768094294571655790232069230650183423672970668962393605159486187157744512325503115062122676086650596021213953809961721368120496529842167491562128819524033514187500971904289373325196175205791494761981575122700479491807375084700793119899561377659102745235254188267629208124883340971591964553974499083335437156013474724848266049923774318900178071899889495703179548892645195036878939465038468730032700416549600550670956989933070671375394341961788403193935777414106766710819698495583205684260244893647002521821045185456205290847033622827276104579339216886060418756310532786250584990743111573844554947180633675109041236069736048078821891348436425550372545671202645996089429860395703581843967157512913099287696630771760520652209814056398602088200673466858291702833316001574946785838071305862801211929990115224370546385003789110464347011934310768017127541007346197687808197145982728858209673802928821615270364519619207791545554327820344101073052531278121971748863645229115780761741116065927061464365562523007050705554120392349717987947705468598441835965816993091035095587943291019264658455085512278514929714426618302635765511344575198394434850742685629144080569172433600349125011716088050976688669719124779775747404573510660682298188957150920151233589194413241844813141395318264091860279976019921960571792779656897698097401029474603666483736800685219867357482678019157403454597383885191079521937493660684357195498868611362763764283984634675570226973654769262182064422610639685971921072443082861275505405939284266348180993335323345822026094577750822391853425242762735155201893808009808460729513512519480544169023650420452587454283421533592927707702521337555942287610532834804450108385204508757569930688537419911101040597207683507314781606471615310084836266610978253113506299276087297727781586769625718863787967494081905254798141980078253634017181303735837059483463940101161362756559740544310987618741701805606841825513405728364128921369390723669994800122617189290202797407521546720005442000050228159454021406696570081555877523048612336052046679676561782347861607704414170865058270441618981536901453713211072027821007174038851603983667388138336882387384994929752969433955833591042185410220117356099495922760700340244532500408384166747049381076849214580865265417020070463083073500207342830495654023940473680908026381679495317295841083516817234744934156345130278650512650290902187157321055009728708275058177231121775077895339854491841346119964305197938866498984202149887406577059033419290796132611032817611468528989680188231099941396023571211834787225247697536380935113903842062022590316540195644338435459216885745198681343777930238973261193169210318158585337869297005127887061158774640763994704776887869487320624352781480014086617787063878705557612146224038293371780174409690971892655441056043259255882500254318860827534807958941038590510495176747879976179924483144668434801617555878971356878629221759718620688699783325948661184651029457494634440151683049719072975189039006292673685604908490054518294974751085856223291925522880730167763007848883237691113085207856834432993903897167678763701915872817397728995958229730958784113006551594466642141308284252985564070218850201447318946584429161632823502969175229077828248820920388944359062000121317179657439129607374053807249650726132375951015239692920376766305866572352016376692674836448856894767820781732571212142408483206318493477638608753434386074247585210487779443849492767420202184599036988866063515011889430149920029480704269337081704574982411636428724830343874396956169774365414125623905073269781318197690165755863511927804212602607047009426153723627297168629550990492993768220489961129318594822265372607462164408369781625951254316758479511189353616137626343669299799598767425494559833576425961895966033951644750350886745368580308836312445163008696562664453018445294783353997845472225438619601706216044485233995426237423923176893886716039098838326324029386263225963641783350946346686348325926244778945622787354208314373632346935461418926150187911934719425857503685320043862428345700564692857025356635412423642125172463590885808049367194391939787096940296838380505451149698433983286331928367307917760422733076870194954291669197194337222870177854377122961089575275124878864035425116999410573902799576899757237431161789759634487796804744788374557383240255161776828470111690006854466206380590343796270245461374650451155151888010730212690640705775266631404999008927288080353755775744731285379195799758680240562030743660392347178196739321609109820864066555146161264226280162465858947839342036966508308603199247105028001847034263709826434602408230367890474142362921877405507308868437437157006932197805402357660203496218170112710763324562013796394860056804150766296061598649137496014586218148125330025386654420593868536092101101231179912485007203126746620845056791681614075282476714998628824315688859320937601990143086062713233968010035221354069301731402503621255959934535873977327623245496601249205231266590802262633787962616475045002152854836452908456400705199421434929020561038539835046412587619977993407075174289897946729999985584649763875524369376122539645215326788812335459620063155794327794662630742216944565060151924818107752673888482426190724058967142330880916776040808315994718157236771466992489369669217349486387208228055550811757725706226536202734804294783519513865346782016741713697497735294565731699666897914234886459641430822626734081145878723686462816872781182675387447222727248097745331341513512413453389643450956369352344364545102011759436558419237961530588835850206165956255438126614821672713803030900703365970055058368293868962236129859629317552071545481397309485359848972031852797079289780750244692670904944794381422112715966717136967235909768282348343325870134686143560207409683931314433680476502208400091372276485202880446799806071059507550970613060884812129802242227811324678664146073701489854384915275272310731199753089474237148882207679694984141811015719454367216294961304406634299963247906237344643263456592041791825795266476240488592572807245762297200865081848296157837448468873708305835538571208154107131786394072991800001976812826524608185728018350198325886613582137101481220446208564803188462443627757064225125773781905170741079055001238780979423177352915715981013997074355893032678494308947881675942823392605267012861059574684177062850390313749395687483384159039087952629276498807396032693795866768238981403824499301010791008893847148791120562432340363844154922351275681369928385326635105302324562063029778428793963932234617832753265020936827946758110137329520476970840178083704689265636597887689749959538942862490550102358523246384026169751770446626918837365096885064503827979247198110167543463533986856361557523362816338294784013114501710842828012402962058928449159290137896700598794749838098916757860222865679457726450297476230701353542956818185963470682758690878303183341107159537906805228202588509905701269300918306562891198708920175457316227060255987778630069645787640088909503743778416407296656945364794117140589034876043711892246364885048775915528856747495293341355823642040952971427550488237013952149270973614861982756371255315951202151588692078902080676530110936146558882859939298690203545619994335907204561615560103353725726980194158276303893081745524126766145569007591189459605144291114158837811728396471934070001618094085664718680907162832707848240604113762631724291545014621394113005214354785974464218301381408972957628653454471989607231951859203069641386864755168510788225558460930012141995707189725017045475506424630941305043826106065657125929800599988333627256640660946035793158004061270975218186278499535568650936255503304455631572088238154827080088276390373754661455950045952417467901236892063662886556896005471254679991227626792927219973193952592890813329731793300869524585910502041049826772797954788167929642732858937951345342858095796609545489270064129432147025305739813218417977689056392736310512217544329041373156238479945620292196520124147298308681394242033699733953123180421181774381532055628928499383232733005443018073429907682217191939397957199412430708350711327840922079604680474182244636001841173623386134772692747347480785393624789554577451243163043939104464507392800713591677441385463476249651330815375206835185377455382704115531498152104495711970675008689588923450976185975077112253289875134263233080989216535840297647511718593208473300721979058539956920677989946133063027253239128950191402122096412402338052027672264823189304384796499192650438424015506853312476686726657722814199664283863511660640840471210646102844284415141186942095388583993673414826117695188742747370932732206102277394289265890787097280774810446226789333455372424492065019245297855207738364077797164782692153499572988184755321328000553825401666450146826056718127506485561310386749951848252556398201166676829584739198825035865980054946502744324805893394673599222269625708378674149134552410299415979163157367138705504769894374961161213751943014987453829106205648969837597004128366519992894546945919762958970484404752495927207638474571359241935243720181768463807743375936243938899689316565141705254167215896149188018191689397374810171902625202294978565448392222732196046161057401362564958165166577529279565020264806911878793567358450352429371885309334037774813078996067234203285831576883796389515500869794636223066888624642125426397029238487852554118690721372661679866412586301381776367979338143429098424913092225947750541265767466119398195438903304362466454527341302479352471331665511938094666360680675708481055583650126081243581257181433838772183772409887027541539198875696563461601555523093448026666373729167557264909132591963880409023562781526286998289046959529840318241095953998313067644623036009491141071345450761556815628639027670842452567076588633789192525788621577752383012103866131346116749987680834976697027472683112741108621105016921986205646338050597149248980806171053150574486572579306217907439239048485833539372994744727808811579707620914732845648718240055459837154061248172256267514587700441970063647966155681652671657494962810725387216468702769981400914230037822044133092018780703178462412547615543464232077526815077518721710309248156650151613632888794229634146110774243715492838700790499851590011827939876188598719776174668063629205202450812996314656496033473165938550901989761489331577699541130107476876723649360695554225630347715344353573432559066812467356281959572659389167885721612663348697984489732905983810295904068721106792798418930388205290706424199048741152607402697174074216869625198426377676520355527970941587578660633447208219423598971280326444765220896857140722826029129573609336809001196609365729376576892295770737146346413950230561793709391964412992884801464265729722986843254402107092121614171172504683318021123027195503044150321997548818732047324572064660623246295165362615908879451124029447367184538484760913839357225662584392115337830154432127455744234540802721837104903485040942146045340497047556805734571601950287830155800801397151224313250251068942764454927341613058013674005208514956085184329712877445000482916404119209290632912138909176227019599343061733345169472674641257489081754855641981550146764299587886631985758643356927277134873284735481596073749163564415196944488482924281204722332779601524222691353819737404617756520125507396801614409993445769997708427188492974445845224815769994355519887383294064306872633847814289072275132969548083345676239711242443238389452935998967979037921170251005356851052876877442352823935232753054620109584245814143359987829626287114040553809217568199430945515740863785420318878999352306763796712849866471248451933628693033215957182335237842495659711481187864903182698375288084838536922038852335425775910557892495528259863746125612499216189156863100349991588793750055681432406577749266986232184518266460133191214494926344880208431239683261444249318957341193828747257508350333805002139234089496240833316885582021652824638990172394021608282889931943334639491785321592554695616112666355606806193745853178357852545272047300700261330678494049421508278557633026166254354851087295797058272814442287197450934885043599755812122338120524201783420428084281081450512063852461053947543964215056163153326284140209483719455862127704255549829662296034293056116904581394335895609912522395895740271070356569208947687884702180742394226133297416945920781320667965727400515508309098953686060990546259273798242242238586682430499045934799147784399078685011649130070429413876807296359503472176392292032482416104329734745890050762640582478183251819780682709606182335735432830083554212637074659078054478060523943411366903180546293195544958512838799960350899022891647904149813490921261533310569522089967047981231541536141184316203114723106279274746519213465451387642161032515821331222488689290613742886760186173645279112909284348902621573549730043169104533201066932627642850251437488250998073809253606803061669712766703282464411341801158333476465009534307699171463043107263760603060939941602463315368835228832132970134475588740391921316138342089679683107964683630418979211353683267035064219242453831429426307409557851886471157342498122575151451528203126042764261494703314103108954113995406179338523413023066559621926588265524230847947356971574296647227030322116888938047973696821154786873666439686203097178184162426395622635986784877583426342728156734435877413509897259782853475283706321616372798411956637235242608400457109829094227133863392870664220441889155287040111156572821357294498532710869351705788324325696331295254080715315286712317060145196308015897682145558395449676205974106780668137408171540644949414885110552321129156896539374259792943977157672330130593810925183737651032102919940778903795224476051575513885307963571070928195443786826432561850861066845621334966763551405933597144648204837388989048874966542367046053098649940824135064163980167989497349187441885586668517375319929314542025908073036999159885780426891917515228586775884629335769449847699679458908693332793573193418750942622565051630269114243024428567079759393657135512523839685228768053851239880077955574951874329903237102408677747754750766935459748149300813958126833603919494844721699883675456404149339669854882321535485723956214297322245362016344811993803366846914198556331736057495413290143508649763894656316265774567213271788917717703060974601791718601142851779460763517920545906142283257484388379909482216694176755971813633627945523180358984172164996955691372595181257080559057602254813625840499593746375673615410707610430049427200823263314316507985565307335131709986441150832519108974690823957832424432346200510754321772689617348536106962234643802095151811843540319644526308426423677161064772262105775035196379028444171610167729592670500828808156663564814449177382819789539466223601351972080759250625167277651303075335654975667354069831402050753796442468797487827769540049393182948108640190182785410645245321485416754580097244450452556629503490985335736531631281886837772724764417826963942679739753337930121843383771106239109695677039554384531776417266216751904279388397524413926124401303108021731953639383770504155072985950336736213371983449122225893209375847048918343232377706521133454952371087361925712251879200041353486516082801992948283549882076205820606912409078117411628041585411689154605016231046333954192726354282034726787328715403328946889411311767526118153729492353908995519061165764280953753965516196951901008503836501055410343181319437187468180488636033937577835729447575373157897533074895439339727313859018296554141522140514631869007743044531310813691224341289898692086960515973878835332653324460935144421796337298987462938693556458438871632144462821558113932540449644338084038674911911071109002644771962107653845910627064327932274638789070117849903833641165212128172211287639050061280940853687954526861289907605791719921850628263341001818040011073013264424487129371647051794696231075173820683540668565379432999969999456522582262642148653931366716177910090947552846155965694524718058934914306843053720421688428497592475153295035464895390930914048467778708542809534398330370917036126885648114690277439073705388622181869175543532610091064854409268994937414309515121165076308582921892038428949530040233583244296365297541624178376819224820556800127428545597414218542514896244032839728213013791125825728939136093115995880806748649094400016466277350878628133757316438652259473184115698605921012911272003751944159134671994355937898261142966415034871641221411482872810100614546731465871200138060200935097457828607433879779012360780582809568355503461811087622328251445506632155458541089438439579019098026051846945015663165027826706061647268323507876217271990212654599257112509359453648858934421716242645822385701133660014377098628408021850406839688153143931655756705041994094890724496042987314401057502713416888212283402412422475854748876856971586150032427638128172323214979868300259680241126799185934935182421610458345713241899655371389092977595374183074920474456781379267522268814919478795393212169514043164551770219617889342831299271407709199526054800713205155748208467179366357679226514371504502026858905233369734873209162318746446319650411025051894744356746457142403442114388633329225006284232759616498149572146228836941101048461574695760016302889037754562634408824594246124839959555874036225333696605829338271321933160433290450127649829146237919426105579402090216317672098379564610924537119616425536858416347223058534875259756250969326064968506905214815058085254235255940245718191658477041233399243431312228718405479306146742941310603646956010586547898972390158218620517447278554651222817878329083742779070208502670420739638369214846953734708310424986500993865334656092216020051919728501217710163476081072179171801343817240300837755803174408387131640280812595747931081495004056072621394012880586208425477336854241702639579471249492339911119351754254130846962268236947421041321553800394728152888062721817423012282688314820721175707265586443012562937394400102065870459949735744203748482944193610619381860633493374260839292348371364846070160821081165044770258651417288521702428286503936409842789384994161948366112748493394962641864593315171898857541155853453937982537157957793856366983276758402147455182419413272749726479912983071467939973036275781150202149665463979985831338397298160273197238889518502437377210849906765900220070645542198308983972907164640397834867237944496845418310542559480190725991335391367548683846998794282393773841334571058659893908307711194048123496270521235145029076932631374183179734083991202919028721548862533914272059101238164686185591966740815228264552710859553765718027370461064038402083191963242150750971615467326109134862729787605997039874847030524970644827426693793030156949929812369141523003376792850070933468441281830051411338784769732151550914410293640026665103767980494560764451138401737632582823287374893410298259581925784164658369422782167987921202021252003972020496496839905611530334130071420008471439802313874273574607821117579453698090701915190050741572867987306469584602146382928666555998428787492336854455501761857537854208270645662732097050347170943474205144107398065302327892361995599860745368115181190267959825608566678816557257791091039103634662218783301210029541233019020258871933753090252858899931055371557416697685682258171225697494971721034004460719977534277137446038037473080989824269036104887933693036107724530933804992793681967457853824287957165513618054607107838824719003519417549903553356101092023065911352159419661844202450497186729445492802657216316738001532038738097259288962708464537109483945718864299512337940594188700529732983619096821931578498550353531183472073182529496352020953218272911238253940789551108225513482997396048198833151181296916051011288052675792510805692322658874369530948969667564239931897253937127914122668779712713263452194252070362104783212101441266152426815266393349144482905511598565400876568950602769316016802093079675079204040232752990137706717576972509726125708324204280962630942784641770415240491646006130369041137474240430772335237660057107634973560536955423311386168769817345983884735569861934972085235495641239458828206595476907065245706625431515922013302199200993239208688960433453269691694489722993124658058486559750002680733973640536846295962449897636481790168942553574023475734112621710440390575338957783764700256099898549503379991692879091853098030974907024559254102350361008770220786175330294060000039843406010059825175295837113554936963856699571279069113102796722207646058243305410541447656734071515391804173138953959066527045014791619026873159912423158420163276769454702896282281129788201308717026037148873709320109481097697352559943137328503812799431461592661218709760000731044337360174438400488485607734022298482260463549710517704908055113033589208195643445317271992967855886874480297357343731979096405405780687151161866421781629283336029760980946148789876235006463763294015369138790759786043310084002651997421454810417311455189819063433889112712246187186667002808109151385933576917563507829682257151344215961824601685279759409333883389979085652599584853091979125257344462777277085575585547169708964911398350527031638265572527779728586505676228824834196041782082913525429253850790648212239189251766969946120366379193000485080643523626754919267458674184945038349317145749577921397984453032461901143682935080602816332178009998929688359339538838297565639775210556763241801772355676515298679823652483644080931794856473138417372123968332681293344905595113441893358733172296419515186105499825617467788479322796716110518930765333197149063821922784470327111967530404872787573648670443463988944607373191311006602637970471393456103030382586619230801589221414886160358605813490411689967398238911213955085327453051332904858583358330268335996229934421273314323065575178212189132726835163808245539056711658160909780419047468438419559777610034915819432071392371695493486177495487887271095656423429177752602306990445628338540437027586718002352215845546654606535076182979098351149811459262141355331644478513302846556868672410415645909829229706667854748927847007120818748248499507049101310145207867938526502244853851574140725677961140978356246234314417259411845104239315716281806463451153447886250473566708134385783932670051095987417527778744701400722535470210568157831133841012200427448818671116367084980479139391734999761844123928848262242072507281137595865581103405119417785794783883614454110662813783561049116859067402953909404098646189005529983030264370554596187700181503888910997689080639303634618931322889857578268142849337300687354192094214757201446606027821213245272453681739671439336307875612977240585934489501165182791371815895897850140026852075562261212855408407546532039092889383039276539137042055540320550154399390585666406136722990411051798419462421370903853128073983315320180187086849783598855270277398479164164892133162508770396708479620579802992575459398826244751243111407863863506142399796208168911609926029632133021170389801019504265645745346739652747221070167542759421387637863475256729961072238919585398017320180634370416629217575289056267724236808892516150765206179409153250786895001380264721265062716915769411339987416533942356895222165500409592201625450206519444558372297687976428921271247723474547295801168130664025079304282087551298197833083043695025205226267381089935708265599552190073382933128017679539523756112058382524386343395590365556663407600438816181111810512462793498513234237849052199461452699898715950608865396269262075933548008564111257256730589494873654920411306570447098218126219256624680415995892075459768198196140858868938603087476689343150787605911827740173460944049637031659225203927825128871952213375789317360944251193326284095553653715690925162699232238166188761069927449279460005562281074572747398373282875715762371237884652440661220437607694048920271942349775116129044677588101030496865395725952999139104330235834063130827330356846649689904958806014390182496535929087443247164754093063683229549677607592188943920597490925755268395930625971787417965488375800171996210918126266604215639120547328871690202880215479866294836496441910285919037805997171849026257266165417733862791400188567209630883047610298360621830490852176496296219162995493039759100787038974806396731008081235988091236029839349421559418836706015807667555756060103601613332483290263701267643168797141739664004912880402893552530543675457155363146329979386908095953970435894678378911008848043921083149110397389195674038892365484402334309443404713671185467397843546199382323443530329479612822537611346697583972865381661646551363225089500866899082514122056444450193106310163027721567259172682792486348173383132242796318372836715953787856214302533702243566781877571593707321096277815341164787941262747839617208641792658927786518498221160287187661762683552178909191927474661622118090913497604205801631842484510058581148341797393964386903546176672189077385037326359223546594804124259915899424088279678130599115976151321661033345216501489742194772333189876704014038759345771226537915502922610605568199111722065209689426692185386316799602388740435146169271828995544368853018981293171027088630965659895926180512128898916448148165041652793326452502849842277455930429031363855813826223443391052900104228799070434437129435669804284678638659732182086054374412090921717408270246622898500974441142197494416943064624548196210506043837481668121271193737598142295990696615674738271967911204168696848891206989690988107949368777331335484678169667763219905925243308315182958829349861212416335376901587788564923973385985172616494753230537139878445575227829271567065371437464185339588085290608870467378881284096501557532964825044442389232134775716959666397724309441790844178684883740661174544239993968585836386252406239200850895624908128928264183984232081774460920560262480303480409896325722521733283293534102771693794758823535369561440459622822083812340512762277746492996650899206381245212063490699475817649002869221613290055870956533161793613754718357597224481960665351500376360620279203559057492593354999021177631798102245879351587900788717683057423430426439055387101759826596295546638633288624338630060485070772684982240770102015937166065660762263707425259968264198561477396648873311813487044194592877751381511536725388208927825700613943088926392949596191142118670477622604781112423712136685373207286236838956567643091188391183661714330589640872939978737525846348679844618917221882904015206082915400468129614552996740557875870555750714179282850204346087050870908919099465417022226398695633400206251223217848590058910741728752501613747312193262421690260086040269274224583189031303094135472131197951442035592737694333748991033673229823744833570917121382488608769928056682224843586662471292206092328551564555363949548015027784557018323302170763107300539957582999145111565565461684981121425428855346951671379756383132181806242031984627858808412122517015500219066077789539017588295902740134508363050690424963088115099160952767720712982404059318736862870280334145587578791813982248969255294904614737924062612783797942201481379105293926687827190153264082482104730432323961445159605008012478762025377826969094370709916850901864460079717087804216531546095357003685430766275557216875246177748331438349350251926060141524785725875541602213612787660755898991262036356185884127652083464151753700013981881281647919711969183994506171091710565075350455714936943490332697841335155907651572656844338830812789220727929350730453218719647561312104135947114075745387532206624506966728182404440662510606810297326005313677548510603911493285168277349666763198529331622678578327067448367808526754870182969568053333151829449307268402722390398979530061887500594792431411919624721915086483911319525955458375744117842791020352092146687782426283506744891410295284475906297737825061874024459292197470324531563349439839411483711979902724874798085246197376621183578592532366256242503027521817215298058827132303074663246383240291832391432561480077066005313233955903885716835994016993583311812793679688478705127704758501008559438042679471183169473943606828116032496377812570153920264157344772554302496909439558947290898789527629044794959902633453923136625117583941075245496409113705416226724888858531229591297772335594287024762806113869617179762797608167811133626212076769286707003819810742990438930302215415620795046321347785234609521983823349525083840499755635796846719887726575721041309178551645789101304976516065732166430428702774059136300263171998214912881397876153237243944085221792111612575687344113519343210875416471891870101204992747510052180576583733031528369975411112765556282422091725703777889757282299516433578746381045264022682933567225479169193989466756609403229485809046725568849415278492153877282375530358536959303431344548619517510729515990179074913670130358167806444000396396749054369756705877351200642186751399517167170621345560513679490819997070372116844395359895691929947909716214628319295304032802665905440184512816256349570745231843179305481615010932011202339132744836886336261479097682318934392592861534716955826440242770098598363521516977028802516695169079354574773757437115074451478653250781981393095686611842769285224825150692104076533192458812118166731593546428100873711628281509506489549514407877758621474565149249988113038415660547891341990000712506582456709007560778760320169302137578624727453714479338671892869426553030508209704347028725519748494319382448050050495998125816614260909022951869833385975462737187133347943502805833048021973515337038777723958982298715742362469897244815420012541262459238452436089431559758054272970397155040314476394288452741162645518735252927345876302784698677144879403771387525321892596778465147931803932980236580838789936819004784784399740428466499037517297543656592935640090680065172034560377828245506349095228633352698790681671648118069271692809005598634868078143057056483501493639805406721991732764182221050972309728919506330385403972360849879992984032209434781439076983331599363269993709543817477149380515915965636013360863060743828323560921586810430601814206065795318555087983032324675894639927619612745809114235091787399690086527919203296255363138841687951943251750311781903844279261947750793226062518310628630899023389762164239904537069263896625373592934675851277740030565015469013144580088076283365712801996173495031351217611923979745910391718421309667897165784265550915854128448982501953968722455686036697117669414286782930565273277042148168344833234432149668743828502326644444912022633770021311406780267290944552177994721076281949639914913732757249686697225999682889638480405564586741727859692162040661368273613381206276532638385777137605505122523578121158537222371887800604086566815449328932434295568643184693745117888781844334713172821495587921936554968187672768537140343603990186943380830091744499072918835897598778552297340756283279526873900318897742527505167288261727879558130611730260434763119471898967575647906348847401958276473257824589709539318644419043592584120309455687841997864441410501687400445802574562585541659159722498756865360296534741986463294637317787134696635492547815493966063620209010321869593117889158764849521015287250577151226721139384900675577313666442225447606243024612929197237169177268786721464180878352612193953677757309296073892666049531891508534144734448783242315328316521022902082864371927491128205150303994746759760658938711614463235456870688344259043271779605784609054181690600349620102426177658691966859215588236079511883528687890862002750832839997487514769858216411642879919494074211982798953848273149953489848530707485266888031406381499168763855905153503733504954390670564764553471247529417419089639931758456731286109814966895226042250127688176759308089124798160471691217965666695200865075296979757293171249777361029338014809240644846953063970514720431662691255014602255823204405630374674990782620230593701966063174951660906022399520665912095927375165201437772793413552389113066715819551973150445866968883325885125709169020332836286315181426520114072917838459981220595561598129284494711625555572805147743963085043127511425071761298389122304257856970211719871732242667293923609235333825125671344877694863018423730957735672428952692770479521852857185999503233216472880999989490575215105913845436680865085886259821116493848035695195746763155086536168611162382267045195951291543775976276475260251996584638443883959727309761541783340283423692987029416651609397661126582732687602095505502147522927634905229967864076601510873663693888087393193821417352639015385876047407867248875927702150208036740775111797069080844077424181807864559258508192464155324187993972858545969988193011498712267760471719804978192516579844643441126259142266233292354237147273544471511273864493990580310205007511474440652770956955030177810511333229379538047750933943405087960627148189396706151019346300288803851192223456677409911690365193930171683681719996115712704884494811847044908628117237711896192122459464776208732542976741942317853489619972675764998810879843220049971529351098021460577733476086017757357658078012808238432703224808562953251038505377163675214476813687497810038624447938036695632802641187287993977149020626410068391714283734618816001767633573435324996604272096680940667092047533679575841054005222003207202638287584171145645900321230239062496181574146624523894379228381097062132967831020140878154258817506418312087560341022275256396423825657945208337461351406210936041259132179129548805606377971275993335542590161357393635343208469414566352168159019903264468708238170103174800246214003028765602587217437845213746947436632602747982007226090573978689111495405225709046384584578794412196328163248082218756610908366417718398534332988204701936207491066012337135112573031708198875181263060905868067749891892872449156413740033386747710835276517875863150361458564630504643420377989277536062083805401467503967782252711864810245078186378588418608565583933266143526776797542726314361784982418103340366268886299766426290385726312690956228680812011374610565104886379578147205085006893613337311666530992186855499231374094697238218251008203576157096911921443281902169808091435900426257602373253493443611388241290410062848329389819299799061317613870541507626927598033324050405019781761433346624709893753733105406852824662119084146967488388248136393837167827674197603450346647469406098925275079860710732337292730749549519639949502039438010483322071007629172160799890982488068588558672538698512518780543861704670517003240403525478039827511577436205671410203900533385077192481578273817392099877752001496093105124240885270040152409595565564947029092810884947368191950800448562610108393968883601810809707045653938413517547668117219450863095025350846053938407841770310149337906581658126872350132119570585253728311070476069594938458770246118641047168827681561865055029187220158850415109392153667030042891696774722114110154428080611896687295566834771416010628311448747692811432732783487578271600304292956825536639847180373375537661572245896056908269776531434272943911199221697675483704353542842584359309901218302381427318032590699716633550263696839857289597419119929085531646947978961809473130729024889262949504594072726163358326654073762246919017183661761178850383465154358989847615262658876154829326834433879670263985770355162027043266030514022134818043077510229080241539880525478742733532101171459659841071256281863140604745135250398566383979195013245357402122714611258799457078248384912189381314126466369045630960869049718545117518552668238273142587166470330510361879608872903030080066471143510412012789867601587635379943134763350490609279137533104319255616128240448482463738170483930509750201949829793749550879824644322041550604693773429474033507571045612045294622132786659290361045699593675134295828586992876771027690190418204049931442434653606092861334043555584462342691892369726573560406118271607329697473227448414053010703023944369863440125667108232934106252081644754856942033670052152931906380450074315964998645507829698048303139044466804935160952706697421925038705278711313811447478858193724667197641354568850977103202017936910144741670978564397044940940258463521082883116462033559001423902198344826190703890289419668846059070627512842939794486933449903307765015553471857034847339192468862200791855867810098231870519911964447200768036907273006724499365642062428996290554258292766597068061740417691610055684588498235120046511077043472726874222135369115440084066456710929672971613472531216603575104844187415129277796030423734004333053906117503396865140515984419424043423488624385663479774506868968486531394769005897787418210960187157656304741190210301683801758961499411286868880395937784067693162292372438366378654200949070447639281216057672088833965662748326893513141852084994695831685635948065785992376301617229548232667489118150140229520119132793510583240781142549953684468336919346457496031840645399912501461152984230037787399590783962814370198693889693807982360736511994353204027766133655556656207507195219100024931555996688850282196069330318488992684977225681292765367155973412102678106418913078332168090492816587739018821931618123419475175913350072109382294090023747323595699036810784095599972992891310810080565619411760331798391823362060019232491054080926906380844432468148065862577132364714545977892694105777045493617017781059388532094615167953430524363347562702736732953936422481071150038168514070736580393492473334705221621029157018107208516016608688432468292610471580450799069087110031961584930316126073478238102366249369294201679236402550642415736649555929195337444215821855877512132369358284418761811655546783074650960321194633480347770842138376811639193975864338066419094635747990773796864890483936406110718502491478697540367636581852940006732063563192699283649548750765025057759690575354007960476594520115859019115873222124161447279543330696057414011420873671730376208447975682779730697775738262817834394253328770314906256921328986957763230836862959284298638366919220172290311858199724337099780840923410206941477658036246345203922820108194525101126645177436554588683804018806482117635362272624850054075786014673108581682928177312196629442797928431900562269349223328375093549322567491771645511251132721636723473686491669888095832619905871180173069194615816912668691091923743157182084035057392996712592672237782921901930439036774717741068295048793127917142360727772913034563427918301227604106741096851158556621560361382693670131299102547584876845515651496834204374690093575383833772008889066685114060841791839142260860219466811321774759198641417738243357885849556246594888487239672545133274816957412617667562793989748789712574150042239146673155879511614157052980609222992723083854653284694673814177394503542277084488350609382753833372043862356200131615104656713221987055552294105844196430432194333752769923360151500907582227749337298692843089838102254398643145099078313103288702203119922781976947107782477268212162899867806249833862944972857209363846322339445315712168648636104150444616691664910362282043563768968756290175488593852788260027206887040759635578609320524755708307588438219283046635867231513204805543810542540197333827282244340864421660521951308056972774217969111513209354745561552482533869270737290296087609995585309190478004747143839787121586584360721200293487998143650225693487267050624780656234940309148309926679730900112570586662617679986505135254117960263675942013302774779410343414890489929791684987698296031928225544911160535741976707392731956455579506357570817360497201166716956950176038773443041348971640871168416388810172218983821371203226275841003793178249639617552841755399257891799458493665866364772952215759214955902030441247179167033066497230608766164615824742221018645316424002182499514554451751844521642203772211269115637310083548459173774616026495167126466657194913553724079397814544761532259115779589588607792121557798117033650846317734451704728574168505272558656099085964269053493032523216223118496104768456412503576388458792658177161202119293048156034762346383089284435736822383643016231622087185555442288377819872228034942498010024482992793641139776219476869189284414869357863282486327161535151205746487704523348624897518594678478916541762569244955428094579067770420786892601849900421608987572469724154618125123539372346251862961469959028135072859075016728636201225419037480862535252206073846187101535351313834545352714514869545709128369639974245597232847240063966071673548504298152609627034981797941879157944794058391683570999710325698532626194557746958167729653559248151237063285676281329743088293842802782596978194915722920520320164653799841548404054340960671077459013035289564973968341023476266357191536282782151868960475562317012877825976487298857016283888053443697523281829270734032852861529370559823761977893381453716572404909964563437722472739370864427155153238989883533384615183577098462853726148412318289146436229295979687633015507937901209807752016803922548971162162390714478609779579024088758618295135425926477058802567998095197755784735763902957144481703757010333250893996781904057846097664017073881877937824259918859015015406165075276145198608724404854999102899736879263000910719975874328684068645914638635052348223804016517027805840589613457249118431496574377921752870510527921940497856890318316289286845607482046480195773813080356888968446017989721368763811171315420547528670574525594390965772479421387471782882195879863353119817802472665029477870109103975152405386147703803628381711065938985222259909114893434176385769886997366571036902758367746758363228721298691597399914254610794109276883297838065038871847513469719642522010542264135624169443092259709952575767593288996770057972426718609592549136488147195363946925821233689263252768776751374524926949247382668143969191668003084248229115172404166460627409306781725374942102810617994473089301197118972898138297618649854477847401775124464428659690254465389651843375380995005334831709151994210218472801427589368057963090886617287388997440004424483753062013162043948589836658125830341268845915597835201047830943956472348748665438498466566717860607005643000657489956472266903279023645371200546106682631918345273307207708148537268168956179752527752474500515617970353176383222992668730773193811840364126510208265795391940101955829378711682027695484003720261403678620796043320819860597086137706241540136469941722453342016417956256659502710672704743472764784075726554676710026316202104353005278737020645020749515316286257477119253683779380911356501258445282475659424760694950394667531839103209145441155254485445099758112827713461020143099322026418350974619288184431414193240053624665379338687037211045209871307528244106394779007077270345629144296088452954418406061232993150861592792586507566451176115103147594484240487312645465306567893596940621511834215587639921659717751725358045995589316664656091054409539061527685520455587546069182533766598625756362142198988466344763883204622453746764920040828104097590060408981186573237575734732904184227322824245202639745769977088769968905830859280411217072770212389201694645327460686998670652472470571506562584644283811131877927886176722454814008283232678623936808993167651157948193374177333729111961035401597703667980411500510217923268442491803951081674408164073504141556552878676759455816334841915394953065842273317112287564702766172859705184554338208980952956288066730115961592261842418429977707708071412441138706518405862216822827010170038296912809453691431140388262730599885185426463406121016752293615675587413006564171151037316515935207188539901751972587159838169907829178845592922018861434618208951485221628019292145452333582135362413460775549452100998689779886422299745006206287464269039953341086220698378229820417212460913700471897868271495911948928017989069535887308597347566242795454686193908391656703660785105768085450799234874247230973579965624057356702029515863473418459294852307098769412993437677254174076731923778801911204413082399020333942549158233261844600319495739062182800925030122608937406560962971943907902431727762454393530580156793317492969319658905412107941444154886441976645507050369638372079186620372987094870538328633827418284363763468135664635005245018377200664818429909820257781183971942350633159561582764921027470891765065279545870767750654907789972333023119564715906720181338962023041372189194114692869874770070897657862531914371666281310244266905301768133866596087396799201552447728246381205561667868332369120720505099172854448337758317498755573877283229781295075612609082880594661346555903905445186960691178952079500133155941110210892236208419239585515153613040220425900255198886916903252849623472647694038985120132365787043400109011358877390392086354252433905738573852703673086974964523496904022975355173818184485038547114063085154324836793688655658908269658056835169091723488094827197025229758984260471681167667546997730396593456275022443009309403879205522289714340847618367581565648975938196302603250001897961352521774746477752393730543910054595299043001830155799140855114485265504072900120062207797725454787501761649877362011825959610449396367618485422589484789793640495111308656806572617124471024445592261288691535306369155239583068032820360465012028109190786653260973904929827142188276040923712752849000079994154259240103677664357495571674359238153964758904517548430597565892976541161331068242133769785052564010470793035249465830365870559819882608929911742475015185930644875012822044391198508178439768810741529455204078031279251120432301761648935390493709643330521276272125664841845928257511753151415203457348929595260432604978351212297834520655107845614979635661486616641231114236408336881453489565374023988204900679006566800179286594707001631382656556464266490622575167026060009829681020749917802373646289057543739790525732594126339805917344038090202291477487897925627975691244459277604293840171604068603569916024377501193073063266230979001180333244454067973109180997870033038985699432127609430329773170887428326281320055629912804435458593491835172822785130652092561160611240605377899596163355370103219130463024495688935853308823758567230259146857283364632093277113626185776648914635178741859647986481080440942789792985824617708810236505550989548333619918837939026315712803264291765886712535445359250712845173735482297647686783986014605346581293973896539043463882070017766209275722038723288217429177824792897258196841221498229963439001122223673411203641058960318788331851245796587532374356081031934019813053448595109617660740328570736779380275312481216832469487275029335664217347184720823577864871472414858186455265653385676409257184758135437966970413754794944818008183593469819260741644015792038439251962874227356861907387908872477108114323290948511049017958265857704633708101261115834334802523930195480605497145997873648232728054808633314252385327483453965035977418255247240063815239140872081168762019368231862702963149334991565356814692541237582248786243876390690901808863354420399944657285045189880293427181614027318310759046361324062788815196318158419924489475923982641339325278826361893409888323730895970363592451772045947618095429219282674414172990490306210834008505459228960216941675481861290737602331463541572622130291732261989409814563636534931762743115089195883115617580153179254181307933871554345858986357424523601589266313206174002955500108295826573668762159473776757421323352487643752657981479266988152318725810968372321331399834577998463091277750007449669788369126142619926450437308763884652957083310698552907190578504550441689117759637961149692446816848057593687492177442781474812742447526336931905796891452924587557525560590132086775931782738188441298202029364622733664560354763448393529290001091994292042081269468170064934313640181715672636419665717095331830500571655320197486218580500459061752576948703864211157863713527414079501877062821239253305330695263470303390932400308929303416179127664250920818769035248164883863703360159941315432754677141406526651036992960254690056140066410317514420476492425660932069942647674370633852535420263924864546820896638096157462685252131895566923210443316627935383982151505713900938366351108636442577534464612548061502700503588638268566280611605791810325752052866552820230644738678772812469669572273877051529463574368072533964806230051322231577387840160532311101765942574961744334656961764275277170609260762542888856911526678714631248352487844625570559216785759450100800414956221251829429074558759949488889416434757245530072568291594890925659115718558555136437388009447067792012596763262037469547882357297089425988990874669887333982317197681293961238440693616589866991709702926298020741982803834866381731623271800530294717631487920340652435152984114691284895711367799370637462980256822038519460520417631071192790525249001970985440207477489929118938891088179613772488629969085212977604977899995099628370922437114090816201764380295856168461726123700003630011665242723603983587154703137863932775747084040705962247075659582609121268525377356479004490826963329514674003754094274745863249133643787821437173451788681461530124159866642976704576760659321878707052427020178703029490872095399918322874843320972242989905531799786725315066647447418453849693230914964867580522754271103358857009317617489316702600767988314740030100785977350196154607945270582560254434158507136933024508813757863240953975064773073598732706642060864569524905630367802462871853103588352305091015373373192088505125663575072669676735613899872326216006723902935866674339661976294954019938628367006480396194177340120402476606042197324905801086529704691002845152054411309115370541114465876021227762790185775294013809809557732536977777794814311280851718564033939230590261204777021772217790497897955616680682036560826820628990357489243106120195346437216670968319270231842306193216038047019744428198792121824290765734911093394919603941977393515345351358572399194510133276529243390434883684514695754099986562870399273759563061703650901230533552410127739706328351395571865530090374214227044518175681937202686329016654546412334761558993530933182418297028377659266626880299088882299167324915251223875392837810672703168712025891981947830808381542022517680048825026031243464507509266860871289353674626784259578497588506197546225379830887575358468727436988008253280880137283909946703875201162358518373772020700443092265238769739738802698375117369125799645074787900510877150286035781091898794895791892592635630560513196121882678667641013019469225175334958685221876967866636187527746513038336824662025617081288591636785143296544849946383171057680486845059915942957656118176816361155234428678566030569040214163085320962359025885740175034270082011679935456902452928792080066530362253383799042801486241761070870010846535647756936272361381323309827198127656200415782441271378281503403717977996454003714901411024545287374146111136794883124557318024568741491528083233679346804495991220220273378751148546996351593615303643970246329028706860117513205525114227002574371047641023135519349925466306183648251104351969329001753366356959360693382145300459517768399171719027937740830029809529438763780785065448784352576427395158658301144242847352677381175229693326481863014972641499662264661147653809886891746564802067232305061012970956854504418317164764381823895305396384263031801332545165109258832655071692059670499960992866171745224955295877981817526392603765904180606481091672763349749421636412095491184463430362721194323919127281215815288347461814790248577722741330110662356576125845636662716526380801499195155575230831842512427988435428462201071935797728986071496245871461800381645151625916702472995547386055974618167388082742201074778544595730972565456698852496231460434741091220295069241194620331492376506001537807378153958530495088147390917314804912521448820344841763671241316779182820153917701879730153312292900366263832575167532884900407079533775576997541997470089737760557305794126422964293254551025305115213586463396604977529993811337508862507442883355758463238318571852652279817843968256279918014840643164416853086184938460730806246819353789712773447527063316547585158600619108842313377664120531762909839328968007607622841963843850151054775934683922205818779678415961675560079937515747820480213124903597666718336577780476038740297509492075875949233980520036115010256915581215526352743996785285018154952117937109133947148959950281618981488586368231740721325462082251967489905273611518431654677620524505106413216201286013439406796778398423398437319076520799221814728640690747317527371647523302052987099774009695469991880673568120228363674543779529891338976092487280044676021610990556425830438093884920939218701162645160266649620755715594582504741633096774285538814703308795269558985320770867781037907091681203908274084085822714068581732048491694043091469925817894627799156946933488163719729383365688065525219105745433617449824512772566476718489416491494946279703043799602380832037805637721452750934867644356347216501506248837093251193535139166119301917994500973208445040094996564877742784831261724362937069986952980147961683899213129903349197075094909222364578775690174831012487019302481211133510181398898107131757895886836998182464176446069855526658379352614024693845625777863876684442532898493814068178913973716041815391312739106665068305240557024635018684040442550630839586905644317404122605967890336354217487549154881374598632119185246932763448922906886145853213345877864523673387732970171792190710926732866559545172765368305434177195628934413133327374024580460117688937719020411292204413322487703037249050972377321967518995931454187085237832456815446621190306598286388468219745856339416101350846121725318190683115574241983062660359641517996445830990419745094305178879974298144150934661590067647886327020184523290659330069869563270632161975598644926970832253043801597921707866479518657626618147115424344664503993002799163981041459565652375097480112696625398808457642844823776924261747827589521955399996548825333118325535695784504219748658124520762149097084349735251710834815464905439900077812890646773738451321044214006584641886554562428724446017950709796878310251417150947135793120402777021917878040430160452627687068218083664955848197781908175347355296960628222504485023221344389398434470197024230916681965185256145445415340331721844756259813420076888947659403241469865300626915490277219202251342718326252586602637471122427207209263925872833002666828208918531565248089332967099496476870309881548222860296333912851920421823291465004686224485261589111775280524799325470471292041926532891004702030718933760823773762292888543188907653271790712015281775551600346139851784807263381100376629313753991824636670953871596680574491538584112015880370756543877301451849506375210298433420835661921203661860688172083729320556951298095309722679509173936706885643974096169079722660887202388932269773425022092089020438134404280657167407822351143787111090508121200817372245751722275146529498735878492983654930183521927519807152772160103282028895324599121872303880671442182229907343518359682344540894445335581488946222115766948127476022835061198427887180192879920223091212045755411818289169925698515615073384175086952333411318525564397736632950669744168941299733471383792559210142923066826666747150881466461519739345974828311723016192576253109329422819288222208653121430864734028787068497180148107470820578492928206283073818866969042348376171512357367436552505563380510405954325608310898588469220582874976740869560528507893273521182939588361327279177855297994684678747404673499921214989329940001103309556805159954628392361761475988614423700324414534854498383956798941140760812074429227138013564821753697352193003245099619826300824822053989117207685674758479434272809929995370043725411962035376952562736417149163750865796146939596986708902976666456503516429959209513770106185382529836748659834370052999052566915696904349660483141855134021219532878918988892286396721541639310792455023349889914723312963166373787085948492988930054962975770423794448429560998464207341256430730374360470782352774640630254526104998966457059651545937166715790451489063169361170094383483465086813146487178064282421699586861017058501419774595791647243794642094560037760504701985664675467347318001022826526907910985679106020442054012007247960403965709677116822065800616663405373195480104061582766464764392131670530872964970159826933162656266888071066486239224955666377661092142119042327383253186500171566047634073673787810467107578227508155430294846225021014713348683963082562025786035799964075659920407996515430131363848268689802179553293116078012022852439671764775408504231682659184414135825207159161178403055157504183140990586766648254386792527241100903511634083533901067222027379485082268914717684117285989627105041092271659210874222020284779256927878505727748513715727369188995015084756059457842342879725770295864712058873863534777553664342246815265332407257517164121473078392641723732477701660435959229422016593065315573157059238888044621864502279358209896318507554893506766529244729344195964396400685568991507920985073340401049166204459463421962353553125262224560688907403332086416570283490984948222785057453734318907880937538171856256856248480285403449023774930918018706245848930747689441761464729193490032447920963397505942027662580739294462630512569291914442021683733350777672462198259609200073926178745771240460865521778911949468713648622885404222609380694846504856295292824241708706520145700676243175338186529902293290773506934102604885296357833056030010355856269197827660304607909347148452011407326099547227748576182656841445867426126641097374358495619988191257478058613406137152166147482336863199583230583215566833538105130682144474701280650073079162564885626454357302111175577358197315560636278976226377343938701255134052808339571662961256684220282490082037948501958204154766572049319956381375794534131190050644291982083517375331457920166323929784202541023714928198098693901454382434980311776123934907138096495479797848466124424145579331858530151712850530331884028224073715787354856042631924174754259673849372237756936304524596897701066225100337993754524797648067585060104564258787786656468314865724030855076491981162588145710630560607214576702578013333471977933290327825903244949373012057078209439681986471793659759091123931109806703403156184557219570321987557579618082314442884890799196455564014066438922200978437924900285244559044717545595252483709503469468881766399363297655575734165406608160786614911778410873278303303200261039155056159502663933504378921833905208732639263359413901746935657107539783006836619242599278039652263196132021449754954217003409964034703683230934356120303111061923949650096579359508590579940561290470018501249705883058841355530613481614554513053801761190189786619773933548702672496079381335208364421429181130293281049653716756897411490659929774480069265331495295592685111927505698998453623109532141670275233679938295149651260848636630154537350440221064573875825946029948619199112381554643839100013352788760945952803440448313016366174337154506508855992005203282570061491667990350199124730604238381207878936928153412075819764943289289042687856955224175482161131985377697757775926647267296792083413945148247727025539975194294456237217530842442456311267592511343934114065162227458222414088711981477516393521666677019103936627146373781218227291795026178998115809125223466703530814904500353664530655591418446906165548722463247635860905564964435678043368454319973625533915646328101024707054472668315422738389327066979703120891419098215798008286936914174309491135082852586509858141436788750900043855763435559271351623511552467986290475567382731725441458810128832611753178914320854174541564285101149902086823757803907444085223192785096018846190058905508954566372837582272061272023331087429025106900280351858864551940201159065860451050226797164691094871826937926328967535494516865840618511476103076298363397147126852677820230121366121229769858080544474588580322381212298668290566129056061068038630830021118957782988561591161121896870599586953239545334798735007473217036030564614310544077491283541645414818365987434663472537437163792948343589671294657461346457669491067730126610478549217855946876358929155779444226162899727851618539661453917764296979171800178716971071904627076204562702897113135680403069481963088759469263774523272635806166491124310305729225124549208714674386891495420956128400209300784627734194655406837528689666655265359899016147199029198164142622749663471486373607931378257328922119355017788179196004363387197140927719191589397727724540747556914214700417791628592641076029434124375814596352545281910529353072582504525112508750584395465504350660287206751064373855405665102964876082271241274719372388894866579247978459917089981282533103478862577165759319047932184284024656266304113224465523886057912521347532011221761214030683136152733819298834660187522599778607573966291414653203174853216386223318447040371181995924166439864636332581104894792400095654893425071385013451219290807732053752710021007831264679832743531910155537532326265448052649157277041347589097155524120253681708781825204946887279275649081347506680972412182763362892625716980484936380809650109367488270834183606354761491355528684181628298618908694688697302587464862428133548656605553828002590666728949471600325507188394582098009044458287992416671537307444464732717333765191803310127500191507886078818719519927257754681895015567213572845251623205571414331214508632630460562098438731318795083643395645142229104452278174474852740572134013274506003019282365636907782489230527066764736005034036877000090002676254544341270451910343141622940267137429597503287659602427077871078861064731801932460259764734218215456047041220156862979636812519487127904699608169172583639652053640063449454239470979116598723444846828547419914787102111119594724777956611376567029624905446350860133086966815423593772317179660021290579728352660766594420909318887967816616203771608392838802623032767896957081978817789451712699715226584565226734130600052857005409785249346842995856961293614530913038481664420068314836659958390405133986227765411345067633476770812808791134598981396705308412594793260054665897396284259095906444581800417601904397166746742588542279809858481545464595318921351680782701743919209389718082412774140970897679644821437198667659724767021375527281296292094885441287326893357411185615888587010137409931079059673634364977302467269172484795025266553293471313937701630490695512420400588353644956874226536431059287065869613939305723929099833729776430271979675887004160940812945687314037038693987230774143582064116322160696726415241777104574480192271693662272189855083914452642944253848276501627825924002173125483065338493767042844017463064631974311416576465407644734002294266968585856367887243171054406823541822086863444526169528864579009727542595628685012001866858495201260001566790100564446861598142252774992720551132937055801359486560082682187670293378908702032028203241617136801826026310164673754566861186081208456488458025665666543560232820966133682512404824614595075967118524103879828909559624822373799945049534559885436859456512646605508117693229896530125148480850768126948269676062984498909912294116010144976396972532140614222058271802034144971837888524883902667879114080199667018956800568376276218619567311469608161372925386688020048685135684576631215644079438588528215991989363070126529000842147980226389204374761975507340987559044769874591362219539275684042389889720018244901037106886497605417635416642456222749364240148769039393479525836923162903849669685127694777341193160995878852782571056176239345902144064974719442407538779163865861743923987601570180976173011852747095899873582445393471629143304333611342132114095085615650365331187266584186115830199930746380100314449973641004333801409560005411849842825626118384119498336344603203366528124370534201793163708703792809165913514253570146799411091938544219424824957440090282028006851315520418569421802835343056201263156428099240002045612417828475846389251314695215138254403289110452417350168666256756367055007637091737944963649136260764363021510375333678797862691838382146758237507485430095334824686270653410398117723806700119850670955476998618694843053463223751152388373912826491193255232156252102655431873684011924715742882314525893006979147945085612672324517039597317253372404370664173627524868263070996210974803741586480620759246216800938024292066012661773435128664473598286145859382993977383644315036366207750549649723944231774069361398821371137209114380398395754979315597482732594129491262497477346713409981053910552532092700969443111493657129258330908071519439571525166240832403148776498025853220743233478240624727741240418933904219873378161536589611890869103292236380885223657064461573442184504556183115659427158069593818556668555883539087281854958745736558869384286439146772344938361014995094573537255810613284892644775658270507766633851185114049443444481080938219610383117143993047978497668002095778006623478670322566895352610319765026420258830734773973495612942993710248842647063547453024137383182973110623077144114381209053664672207364745582564709747818166135661369098597457678524241930931146439530669158682193287267199411759417068082901587015389646258535349502866567544539830410246526501077626961999635409873607612217668633344787748101977131190806194514983113660254377756167856387101424584512934255907809551159413915486551858527192455667858998047486487259381163463750590892580478221646735853440879774835983625694130241540434063772373419978613939660559937707473423007250218906428137767302945329980941643131442904735545843491782433518412159582086169663331447191272605942481291481028410503907371962352419298965934164300040918006873182369240851362937836513965670800231288495397567600246617478917148397411956448106193445956408441354821492002961975352533818749965449753378005489909011459287343191753416735946406126894293700845890001394469701226847814039007037157331166118839406319476521971462817353473245964613668942835623184008697924285158297344149437005030595184904613292106911210391652820107222469184926384187479795885296760560897934136887904974885386365905396911574926255205980990975942612860165842874233604738123471707572318717346328095439094777503000669093872287372081426460135212811207150243103001419893793307140441254429580546754460367983326930742764960503423646530936333390944160629628987978904539602722202298705134974248264281758450402192223380489467903248930819635142618562914100340507352751094638709614792752561665904375957100243574955051279171702596396420872343994436078709720197215930993149903843844428470366670428495741996323704291603484785729808803683057552523288303050956706087649292897964733533718484395498300380075926899613497070138089045745489159953880411229508740470885620531256564010256544327475956529219409161205501720985719658663805083102835547450599622886195446688583663749955406641506976445784512143992124775882907770825231682152346830670922809138393259057996875090062025651145531771085858908518548300270363243102776615901771612132812281883529057346452961907900695849151924285432832083784026662052264812384536593269350649829713737473126348547622926348757140457271227605348354216558725702200947341208868277966603378513576876061935526183690236731500826315231825855806062212952318589015821008663045379289342095576448733934069276067169920063408889881993635856240182606561647322929723395467807698570437874622714016664017344948361265542932134279578303720686953900276593676268059071335224475901291058598623852497956826695382202684673080722077777407334118565183526181916908885006819331262815399818665120251593829999678436485434143394607365358403432664408996261889296193590315985853145745120332515186417442811377654811039040872835430761834730930210947789975366548617040337735661437734872548164506108328761366743472630197976037332253054471013493445871807608961559725293179262074279035767341032278058220810832334479205193142265284610225103212303173596071421591051219964042296580584660312679243399919678146907661068443833908844177818768554976617367233336157630652052445950492832278694754967521082529141076181563144356601449950868607625364953337095424583440577184220755905819338283490556080787819929254574459713576862212949471446784419271319407443008578259524696923022728467631911219656701498631629641838691272298014850907504677449594745167107693570955448308808951956687589890835442985346474993779925782809550600822991865531180108035537194573574185772719127288732164870284081222446110758331304836260090257767794764224342434024193965734217476672708776661765603788538968375943947905503709367660907361807733079643357357822877929912917851757645996703069931456384250205557431931448843688116728797766239680711423408786143876179824907890961792858583743389584194275872743819027910739241647441077379246016249875683508491017489027981538773381436793427957352332338892858860121747979033375895299755661539915751767594185513206508992460283449014818222413109890128252437113275385842519163140722518477923488441251576639920045813417807726741439558773223061552795916087586549478579150781926810213242352971755209371003808631583806839357184785603160688285696202351413784793893262842334858618942608153891154986716854633376178175581146255998661836277845525829396568223451515367525019346399837255257221067367581374877763395888755337576697928736248788827076424912097662771560967019293231420849627170252738400287565475424734020666659512376575936189198418000623231007901936099203421636402760841617705271479161004850653072275002237076917997176020515444877795938363841044078019084800919426724997137741401975761992398037570856592312199907802102584386588201976179714210776618205655233423502547092530323442422627322072015967536577009713949483042821729224117909834229590118039496629965264625088722338643513439182071651679768975185240467484628485490592498217750205059312136303860652139110488805990127343306422358964324537317055970652880642635141384998787348872348745102843819057073397631266661147902489505421366122633658976067049312761846473046195561666311703517588439019624967812866934693302136101891775159260254744176927519296525959119047568131331257709866217180976396626722942891868223378615977007375006341976827579484448971336874945275626069209712808609672926629963769316475608359628047789475503569428890923705930106078256000154578118957159227419035077951618798275895424865508286103838241340267018658811867334090969778952388806741380145642147217696655920443959563897239551230643181576346610331493032174184601658550318575948192417141857367285425302551768560162800808712385883242021346501041648070020305411677403590183701799693009033356919301768394412651360525767427092905992962041899025949695640353113352555436290513464057544301727332774205680519466257121236813699393341875491261652118339832425833071046453295130160936048516980226639814769032456418196521959318262759688890859350867672791462439291370927816748324768629446219071676235555086106985915807198072535864986543456777281958373588113872711921661806172797742202281302646237691363850770719990292375139666908158576605738295076152835795700463105277526937527213942207619945937009999728485828065627810155643273713659380978988654461813393221671939381130629716385594688228058626788605834948930961109605798692170252541185078370133657054670397076946070870673261838903777602238470229299518436854923821367089730773253659634107800120999675147015629697065736799696954293905620049657067950240977629446214581426965729592024871629511361039328041943397224530099719677217084051106847546024995343401157240219080416158431357930977397759395185910134051732012712477288277211006133234926637584892628655516074482816815049003557537693585925029924283712292978323969546243534524783977619684069085894874937989137267527869897641086632636891391227560286672401763929448015284380164698008524627046151428518413662979077086000589568219898669092339364039693759418684566424624514788171366634229130157239010158207974814006014171270934494701505416156205232265004315342964160632645670414684088386357513313669547187162919043675038712396384312039369009025960303697284238390351084865711032239738839140661039735301408303083005901225976176515490742450174660460614475604277386359793231960537209102423999681921336389686479688479704191584572545505766054619150642862089112554444781651698154044248910227433438651299257868976185482653839328005851140495414034872700135034565015361935116774419898774151255178641664643620017908613638311156596924608467141735731901405854611190123674469023895856158539887078399312102088105555666334837596725940723390126474240186264231435058794901315787233642584134348588087419549507149140518638984135373262438569367989930549558790811649548695649704567711928571956044792507371710002332523497780454341909397482352132490927075855148469199004038481508464991096154027101576921036774174853134289872234341474977249918567254249110102124284864127326389692914267913874893485167922837498020992454772000598067313836728701013601027058977896166100511328140965624817566689475216257192767976733726481967517761395488234815806523623667169912474804885235519255808030790118571014183566086238557431282698937202958118970268482968536005775217297793547957412704220169229141512211538157302014206400971810564948881272349128560330198525113062752393809325065826436741774776458043253191348512649085246362346138012904658752328765160165748087307979376632066308265786763943288463377999128019940213715048628214355029294599729915284575508206868093218007509768756013724150670206741726110231246878063324938547230225101094703278659985077845507735808980070388835302100669462936543348379608810033194693692307369355820761481890605512182665013851277466261779249103039989874512308712686945827171645921034814849196902120789693051212656812951470355324980321939148128439838643260555747525323676625939263031869402311039802984708756556463377562625379570615043537302835327853874087349697825359094914222332624259061981228933606630997866586385182399051468932587454912706764334820758675709157370600790333114201134866999532719735607078315157707416055146069320540220615923234349056120442211728107095519554474912240420010966965445652783267522949179245905405584219402203606809280966657470807817337176439863037219929715056339219399086477515074397460385318390887668910623948855168506140545592164463971026875926894055165147172897289866182201062172690784186856544306921062640280346336143170283905637310942770495287247535238603048920643047412570656040292224710588064110707294430558421476820735771938353948905693660410339331540693372349239371320019391083497935031205833268040351484493683039550415071813397572850905132416836409276267596049202921801750788118819781684135493925542318625995126863310872084930595881927747358388075454071732968564074820322916662128968594868834711669012891928210572249046413022528535385489434887147522670693398044094516582125558413674531177828088043898636201014192600753378506057256743289684628941981517241308282210834002654220791700077748343675006915583192275254784209428501116455733146403632322719701214183176510752746655521751941413793850137209818744213401539502932894584243559233321241789545305158734934109413781687637786901149672311229509152357512253897790966595664478759754080578252903522503315155112057818085748411402608984930164252658903301996394688314396510416432864932733373881221665105972609432902250688788039877170249672670604324594344212811374254265780788727017001918451703606187950575492915324253968867835516039252392650604433253818717815087904653586561177788104659304690102631391268235130157948917128379142816914631666484241035231246274401696660083698926789048262576916870313199897031759928989691357348793322873060100886933681426342246113487188682029251934881285548922955565280295945223844030798095253121585433235971297288075387556597225852439186455723077119848868742430399787806898005053175297863804442725490901345875423259111721832568232979736383143967709471008076578468556716967087926206507126801096242410998497514046584941173664301400962810109409405861851765244041187356023366260917792728268815027580244820192758343735557059939252211199001986026782770233783317843196917438395086722162053585770162086382489804893585588493531261755887121709029632822821680126155082638593839011535866435938133722353798350854214966654843189654657745159545143399363110456434297827313186595656646839918150362296799679227831437875738134543760746202220979809166906087588494532107042567817637140707492239697228706359312614791589583781939685900327653889216689418392169458237569057960856889564390162860808530329362958492866054114417275592381870652781026903102135628808376346474283054489490482639078267330651662274760808204686743774430945058159970975821248379250967923546443889730516035837007679793869942364798492901090460013772399763594816562334419023385383061142106170142529971798637118285250789363772637833355891713915243651616079785349563537407852253448390548588722771829507947840695937041277671631549309946697181020983634843020946989983451950858409053353219819023477941476142240588501896842922245744770380770002535082453111288055467047240942545336322614894326672711994291832127274556934112760216967214492387004542617518775228021729913731701819530473965729141914894499652350454780181849014645963843365268646181544499618575595779377179084286752939100978977848228063552713590230216467398362932290731306238021440905804182414077829483871988581309327893773443312560668123409611797093009135955193902569284752532659415596839945608687771154609670033537032050471853558707409150935651418653448913647816953841244669738915398652070889363498281770432505982219698473160839489393865931007127505894390973724574257012688961651951189884706831913003178118111373922731198364635172990393873105866883180832159390859163176532436918141225794774551048404252232523813298334521024469394601784197615475599430607279086466433369845601189952778332573381414339398801926179154957711183698066153217155119354428457309802592291422862827040379947895671186131844797149743785640125348244357684699465408467127310820467500289510872666955475764474316459092813145227964748082334934253004943404101530932220597400615802661198190925067717631310996642405116357242070945621829460012992650127671564705628040804763831868993705710410499908206618588872247354602450174778843568141775991300139251036667352085379019982787305677184498269576745511426472569123249178982761481921985589603954810302729842279326819698941827227117959482657626501558603654430827456623524474864366615875178298965037840482606394147991529441795133757299622594954326792200934072099924674959391149558687308873251736434624796190633163359866911169834043854830001114495735022203390404936861940615505071191710816765670940407248976585714442808967451232962923899916287023108507124294797177191306158988729429792467966659274037849639695729460931019126059182400200981716331405407221448366069366891359323135234457264249722115195051203146665253285004610667687343112602036661689913305901228532867434141947484666696353707715067274767168591305911035295560907145375385960074308025657768485301433174656646026891876247096116035242797783824751828364150576576705308948348628460820703448181203955702456969686885800917356223652090935093872224332446534079329562057804530793898552704922121560264004082902352851282983734018824697562601753097660257253034836166449081782582382836614034451663530752766113466335445542558130678358780571567525831678100155050912606729341141771955345651515562764778055441726497226646547074064622274175853005191614264728485767801042082835537446416917948865302951514332576432647546676259959516934822101590043354850765830010278095933323121446330638076174759940278920041784947777105268296385060128084089256275059919135260651772285923671029202206237303960065417604937804766956676988470520788553321535134732663301588172675751083359358390498830666303811105472970002622593050219513186850879637256392733510807444169656262234409242250315266895286951016086491889269806120485387566193000279939861066102702048232668199207325159567901955985890237547679131218935470198713074700665863200977545965283220533643050262364312465542955370994200159327610540399402277477706915295306678170000050601392221820708272640429661863732295095764285072223104207798164957313175703130174112401503126334463281547595742826988247536162106567840322404729234517489785534311080350514711149162240841421391152513446896185811751921644404735534460426152858846036073975955680937015668553789574192347948775461692595705707969774193615739107460045763821436686724473029059215293519517299337170303760287713768201100474053309840760820639414868942708133641222950400804074596661863298312661569433684330019523174828018370959153777925297967832653185651185450506288749796946342581892415095616860488596808559681972978885265672026469412967190580546597104069366642654101168313358993332052997771527164686513907165455279410560933265420112463423646231284560518421602861701387881220823311354856988185966530479339217962049348903005442552128654518182157455528364641001499220967926462250706278745014933408514249996649611160788787999770676576140694412840865409835125723880489912507715907931947010309411136654623696223940091534744923305322668444316815967250270452570147861343948785170650839160976608546971163748551241429608097683969456875652297224220032168300645947472520659377565838397737156044546564151741613985397792018646045202801521862639637436781485012734344738867082988086818046190939838869910180957403460535674737587332417260475824651028988423878039887183541816380341841297328833931712669375311789370603787060120965011850228487131920875113190010308344312969878771173788875947311377659169179033659686509547016717979743733228561601936148862598957506885822550550741725859286781126092279850482558033016991391609293317191908882339001591560928667432125309883080753687875965326333195509704706508343774452102090688742791675625942779286828951790223536475493993839460380587327784549326122967733135736095680624698239102733683917659554506024496031364560788249236174295466009736700070076362005668789273843940385923964011569626658688105849098402734477710722726902714005732432530866376798004992784967724638017631528140737179227443804961131718879283264094928868501539435125761427282017670232873132763121283682955407947145834421850423098784746896951290100994801739529531355845022819382691429560115179809795524354993283153666976285179456075670731676458246916990249690175135365944033537620863693390085948666770610181102411101276402813354411009035902972532846528082225637865128047726385944940886721391123101620700794933849932195786703553263699733990094443829355075175968326497848175769728460494544176815639364177645417794458995391604757649709391055457531135017818051351391811515546159582315230233179577634222523368760242339574713581450324186921829151141497831523874747667694308647926447992627895853279950158264318826222001343606118848607398793960632767555877621564434961955569680499798336661008824497893287978227077645097626312145467216803299379388094690796772547490460893060223277982450956331602024943165689662742334932446041961255023630435255632410060856016895718976185135505894751394251772107690540066163306111524495023061314759232549054929585957839298356985824554209071375968157271859192296919414521409027911244876018605438484142802592764773186846114864915948794177855219149622286947301569906159057020142627489417636109453443442056315009039363791715477944713323978156499168327142691776920366879351818605902348130034046224364361339960411858386333972758710701807773704035582441440633306251768494580776815063487718787902818925751756568319579467312627837624032708909573812789359735897098791046795027263987784831347126634897800090919772358459415909167500109899839755559281232181177654298446728326387780485883743309205344533976547724562639139549562297700970657046664626436001466386848373243204584890615757118983499399254388704710578453216805468268884994843257150909128707630831879667364323368426532219474243092211670791863147952296251762312301603320224459308733792087730250572330559200727452917535675740657146450521041077114636972831457711472162334054737033483172305219859704195985508413622580233236679981825890022416128612180975596694994717614793603725728854731362224859662857567478576485495846397246944460942375632446178771963551043818600967985916546823096079362385358561066994799091049120083678514940770477346112489444382281317953206119384447525460421670468795529728477512825936627141237006814754220078110413039190217091215299923949466549629984570994601921661676590331962045868247372448499960362950682969367412594788957175854843667994594181374822093601612699660657578403717132740401580335362940155644391421080073905037355560140261152062844472189084531433417706852142183992085522083145093160176999138863312085491315469300723220982105527458166714862929953004433381627678567609123900573853792474055379039955019453447975659372364915191085609342341104126038576505736021257855261584677355956265646728503381485318325933971141880239204338887667112026260381207531083286087181057643667591982452169015295295174963316707004445760459444093223859713561649685204817572330933925288014180143063772612721955392428422956843280539990565215859767953083757884241828970784008866700491526917365942653786386223546998917583167722062112458681485612567330465722667492711316872151109784231800211923113336313653784094658000147465978396304095046845747255831391389221420853992752763393562692307294209357937048193807149132182561381277846289175069715145632872925687565875176245706023919437819743602881585610012321192957746997794088348832354127588014506217053390998097538798894873056315238719419162741348008164861233637642933750903997781429719615608870105627344369598152007431006402713125268300434719982547623695169108431185555711424250829253398492483256519759749441419340993178256953436255232255399757391872487077565850763925641363417276180965376248294239200470449318583534117760297570549913777925968165519951084937026383588633964099151731407173003541411709355740228914544615807775500506675057349955353913127384458906286654871019750376573146912075389884525943660994530401065465182503117565275787669778470522785441587395932962268026788837135286189965972360630278951784997236156375603920266791455692316920307446999780573336187807567415273761522121378276723024175982124312687431587134249550716864453192097006118328462406996680812532009596243315156499829884916987832102625967833365058137648023462031136345920571334310618377896536780088161346011474189260045430392105595174797082983942545404173967873908732947159668818122413988352561662247710482916625019615709792114964426333398282886985042537494785944984697518750679142925211287896789254875331220205644967788052024072080720567434407295752308130207462914379920897547909295172726816086340283699165011217313873010673737832676479029873180092659516394674341771455727762981849934461498176343837740818551733027520853760337532761655006625430053140739303840191839052499369972655614204339993625314272333829092057855233452480510637251597178302866976635589515737291125956834666199816333235595365014605707625616589237027746072378384816127359908509437436280521841751494379348412998861508070843866196740506364092772552117027276782013228507679214620925748581762723033824048302066295356610761091959211824305568125046297053595722505930604801137600260549456616841776851963755220850880879250984065906683554771480334766152358873147011380112743284968994387356072386905220840275317468861670084827765408058323307774286462499853253618148931146279921181906281980251570052943567303859909171399084379879844634348636331327724956238675324886561030064460924558492623169707886490260391441424377371180318500593262136797745571813961184242765772846841412179466777411412637282272976002028224830060535307213020720040335145544917485325539776379757815258273758982242223080642667423530523609014595825494912261301932065653858789767084142595635273755879761397251521399088414965486814261183545056865783038333835548865100844254842693052159328995559570266065029106046472376546677596631713266154509911474724905461175190140843288147544410715026249742990664125093462943617317263096284870241428547491315097479095224277333454066838358214126249779699801663631114933153297764085774324497188653052529937663983094807018858353554618744393545193653809180691193786847389117024410087241124553179448975276278461101231092718499898181733717344497929905910183384959243400623771746870317379173520251587060325101166117299478769463829340010200845051689962797835842198396060030837401692435101059035214741740367681237886889021940771923769240750566548569083693597254366573025613738051508841239518050318827117665551348652722092462062209455774742681292609764536368035392484430842428630099654846188065605728560531191310165009230034368283847499938111958951522368562684753751633945603384448007549243886768047118246458541058855709686524187439485543559957048894391725092958300864306225802006146323536343998403156255909289103757319121090309571463965208758204997642230329280877687407724896261230093115884426736801132690241379088734736699349578607886183593990557364194212936991968965434578022394679584955394746965713893822802303555554743002916123624547793001972973705504034878150956698214218986288104177276104462710602285834668485325592718189467196298212898732450824700261734530105481184703922778878524563166488907812584444577265558629732952961603814372954881517864979548721630705938998892180505804529702738183950487313071523110330427362460488424965073769619909212224336416690000640920874277495899622204465815751870651837719977903269117787244589965244913176176708985493745710302136215761563134406817579478336794750743306321369238167087104469689770911062632606049392673234195822889088620597159086790334610966135444022230556581021284959602145347345614725457525061583256595918321809634577051782537067261480525806582580710755824887971208659759700983664138960385999854299598205157501741242531253365678765669687233382006018583781571583979427608801953197543105129160636190997446051737564410439078964998930119224452489140759851556366557481340047935536449813534986798548821838351366786023759981738765820741041166363682247171231834987414793841230463867422455270744376572459276360249018862662930587314672583138839502846003811094446295424138381857973294503110075786834869911509115874719343011016708289356640379960284237669877169909110957309552338315340014102990632137512399275205027804601306997806117879020218916684959857519269690044140418555260309323515713388570378651496615646441211063459776551600899662293224483487374034450666349221429255356791592499834662678167600855271826885252192912787021514245392172325360966104346797459534678360221647576959118277400752860328399529270832490770686513420604990237186122278619231310387705783540038725671362188543092296960055363296967431559365273316154494820296624221605031912312602712734144171675934057904948163819184317660657742276292402194623160764187759254724041777280899524243520036939782569779403842473805891274677049043986948240733368969039919396220261736141970768052894011243646972626498105778163209223222273748518421131025782481024304412383774973556784424039242615473062930405762878499502432994775777717044083475638137347305703467564736552531499428932672017494166489071426814212799708754535284314539319748106633642445591185466671738440374926324922542077321428181500654767437381940444705356962228404481616848681543474580466885483056746489555400708616090785454326142696931273043638496964192894668679530789295366196743028691864802920853883010749102003819564855611628664167874788251000229831944869433180984874576111026148514656195268269980133613658611843880421157783924788430969396876753551248479297416750545058850990701584435316202452205555304315760714112490963778142712423935464736782653016562197647515255662411847535581415944745118089708764768424013386596547234197801775889558357699320841976253008168572535462100822901537859489300562691744817185180905721703398830785184975473837374199156253748749558522133135041436847078667640436468161238672382706336591070324639867027392563822659844011050455520060907521627258282086164617478454146531410108583143395758641070263482066925995432319050132084782433209549294107649123145492012661301672533404013497631400509851831995560849512339292981461400831905795505888358199632528281223588836618709310027486060239179892791705813374106281164582968785863992285341302179476905530552465245419212069179520652467817727156065841930746316833992283129768505358374951875454007021357768771361854864563437926755962268048621016885613252979687909888218672675582181986361185143230445136583686991887156552944911815184417884444626427222282839162894887501766092699816186808592773257799295935924304569084246342005640476236305167909135193398616969100021157929869843612888940173009126926452604246693059957444763035392092992075889524674035480715853621762957627961730523824695739991526274416881607886608284020137621985953332966917142573912439411356194633747423883316431320729286152346707234695779787247576464728899559469104054889089716443392027822471264482240519299980788502675960436345468340272385776732735581577398536710433473256178887621347932252528046654464581906453962585964803768629900063915403871866736244562370967143449101754066186524579516520518343472338659382440793306217818690559697459451216813383112356208881593615099381422187942368832305148297825098979233859168092770720033249160955157495934405968006649821698986586293228419076003970078842029649931674000076413506040700837479588281776150854704389059613598346688947252548147169249087063369105351591904988703223618542911753881375476000445291934959295014529190791280000455687528253587235390067627428718015590786495862742838728645053627882400975614383710778069796852499394034370559007799691612836307916092060890370662821014314142203453837809463485134856822380975916694559054963503690576659092282083720149234579021664991394543822530617844094124185174994894737130730542362439805635566161342571991777490840118058170873787651896441504001188411503241077326438247591109619148988177305330674015228619344341498605643186114773100909618386725120627208279260159066434983686350119856904775026542740560709433734000460486653568802781969717960634220136973518047493864024856077017312713809379936462134387644874418666292317920376665631943442374314024015378317912081952464556313817387305486606197624005986782640886923769749688397408270730223903725139422195795016349224972282980335136734543827814252588163549793320812466135265654019182637276115468932705159440526968603903791924174331474611971420489248002194465248412039816103551624922818221777173207874893929886340269997393140487759475883384128290380976352406592365346124987180055152503005837354410250212949538321940022262114100532147215904420323803490367970753809053608617105783702467934288101359638180584590123051332004342367244067888428779659754450317471510282680016767647678184940024308969253979085605775924727455428983568067148619442016147432675548400738879130414094098430437275279242517552677105599291444627689897459159360883973054446786162158379737568727218830911853232897306020172770978017366524891504317410283470006273755679940316083490092595512732320940231876680866218356755081466349046445628650112348370280162107905313499923012966979087250378793793344888473633080298887474765555488612603836715655307102509471857820636299310900739564721854361927732219100557337986397068773614562582224957131528365560591454335238665989362179670789583922811632797147993201243913617840324264081417011259629062384222826668840174205697711495725253441369605947208149688097195368101521349998770602426782526278846016157158782669598898566885760272263248481417561115232655623993881784982387853256985088552206552320049240190889018797922278542009103209839613796276919116115083492229264869868877220982967844646743120443095663998511699575298061363816562597964937669381898016833648667117454659655175455077861028549513942802113425385851847493935849349570581246035618174267795869965069789072323847207368610124485581061671277647221774152328203355221808097442395243655638093276278754441418949553854658679660109312073563396778966859901635425486735604460698260395557602030001021139910871241109182895690997842583213931058990013372826314299038907486576463393196280332896917884742685594217247178580147211018626032508100550721046899737166955602853766751081397159987716925447804534536834471675037848778824171682942168168591842343711888094791536957793572245481999567043249198505801343946475442041209059609436196076140137105445531372506075778335424729534491817669001559339369864329034726938516074671892712172483239481014501613178372508292879177562582000729683141898236503164778746414217427934964743858192183114677763879819090129260432875237246170171861106026999163376213126921751021316961186105890092174957685398207388984496186451612268308349764420918488710028170939292415426828271225266065658270101945797335154116629282074713409114131318058006212082111191806378993694818258242690998194058180688160114941249996257804676408941680219509613397553658322864364943649349369550686512640742999180468123186500644544036995417430731783923211465902286338894325603915082224053844602037725158738691164080508046395390283859900196588685852414247035096902363060315061899285439456866398127107585890757942766290159229691294241606149162986705970373198624897491625883620356404227277237461419394546643859856676171298861881388302825654086454267689564398845044161525679865479983499006680385839109398337613272825451887094030905821061851439546898787521032151617430425464102668329564570838039340533131320243730268183512411290364559688130585171702974934686329648349138071701806171983378344748475022032037528285302715589807746294753615275259624408023646816892898318622372876324220999785482306006754470272582371069238869993523556592049007148821489496835229968756127798634713550216751951797447389807487112319941748401330168883000435971408402915955002240014284883102152756703884369653006804977124031237005218818438009634576943419860236712079806479399157680965873421000133130933875857593770425261530660194522663274783889285068461025515704783195994928756416934391739605937016932603072209620497279826894059302720141790407245095422833103806804574658867866371771165376279051772639194850435971983453039920051552888290672876287454015028529184235015400441206030217801520094972212828710759053422723890353072071381120248546945918667853875288244508287243409605979362765766375264964845516035752751739400133410787619301083976212126149658030544982311490491391628884769939173013086943573222235141203221582557380917674026602824290519226955723146860416780291202642762006453608134247035944157704797390984494266168495767034751814243369663841390015027236466066598365958630351460945133741298020407779640360016662243964375714375767516839682125665516731154508028129584544994792566980144882156118835650967836473224723342586549539840715921658364212719067612891298110996867768195491242087276671239659050034160280187794175548887177370547505417503931585532828175582488554030305442636461480707267770068318259272637674313051173432058249545701451648830157775283870458242973439718525728145353909178635245401750415559348221188006044278627431138745081177428415566462540425872237720950435974852119931133253319821762038811166441757570545868866198124595287873789992547386206728030059620913264785939369606820824704466229399085588693907694474495433138835486959453338433241445595704653010623607169974173628203722892330322800097051911904476092923069672114863542641467950816828094110207556503302270771362665261679388059238136921148617786648716255113314394902636403848765813660106270837543115481468507444728525225964526730680157857251580521884374436298651949984292467453053949466170771266735496112636676596499827373327558899989606821924126276847342561657356581314580808436108801118701867700082118414940612686634197354041665647837159582442537052451406232481120589453806040390700377507975660396564529686760859822296150569951343281823990710997804048140987393965333219780555336808369105727855311011570230398128364684681739476611590896396809495795025749623064135446676285966813300788409811992978395950413492117372580345565515993960351326502159079211553183427017550807757328694489862774768389069001664117778102809352933838955588591105232484607482930660878448287040254173609078340183899487758832809540800130177797111052422755959247781309107400574567504935300519796492258556667053994005055585762961739344908589300092997651474878467133441577233255650343346439609761297174946366126411599721428701560995156333127005303627864603090482230629741823674504251406295023851639443023621232481507029072148523442900945146380506241770809327674820946048150408413982267245002437750123581269092458637986321145728866656687904118657743350376089790277984086527731455977426678881661480729333154733818665506745072709465480637955140159428679047002544539936479184580768816241379335152502228261058295951020792652185160613235719441212573863653528456555710451848613082548462618683277755130711916715083493371659224338527124978793624573227194740008329785036809331313222893741316437227687066033860330474571491753889739207427816276337582433569222012314934299581458236497601332069845065558033037467231991043076476067983393658258771609555221102530353494909968773320012361563597462100380903652610834366669323639937334576467585728439827526823796045066576155976186430030707046211464174511516094995993122320966873776120519733270941371342280031767812590413709587277501958316223445658992862819697155455348551640713690156915016236589150953850109695922566931861447929394400282706981905015440790729702140942787825898063139290099389060458518616424912513647927863816383566166185601709923172980692063751948481191057969948840106050603721929298322956760808824846697202257120149126327258652750611802669423102147831727849825806897145488334632054406908286277603855113951575281135056242640708740020530418726276881677620932927696394400956099245963682450603288740446481146925858996127664535434032167385603440979261509603647178103253432777744483260723694499409990262399067566717822228366974703397652076758619388015027269008601582644581531374932564119127312970669245311465896338203936622243487834783731545620551209428648351817329372272943194732782074472393245970524588543317968757108131128374328605700684503501501147456596580024892145831582538422194187409717559844121253323932490137072961264331385204610586465661720649604990473002681873127201615062555511390401025692766178721831332116182028600040214964230261789060628401961354064375615398032859822370753856487243243340131002887577358437228940061731083260364549770128866019934449419040978580850677525936374764839331286902075368080832003997661454452189802789251784898834202679633702584100108967478028122451887740439301734952136739454185829635760062995100473036358474539785619975964768834164166297828019898584750763005033284158496254380269750866383980309193373466662472822377636586030786204671244045632468430063151013504554682693463236025378696313694189715240420405052712309510394542078495446959090373233485042489311490281204008746147883641600223527420383940447427385557830115079198322353325307270992020004843627744795671166272346386905694631921356249982689308117064446382960210104897851435957320756307857020491701957777340645670632400200313455606782138714704298251598574221389997766188253826687956845013961186925572807856313078444230306498612794499330542532508772919169505266608143308056213973936889309703864549061137573797114397725258080679387670782682004502563641269676485474020450187459990993178772848386371742517403867729006366399567403498835473840383288076245004509339466842610546758741686470914510932706810263201914772542930354625101432501367086122017855605747945682174309297810274665737109126882323015028485331508432088604872465468389521311288998488438502461075427079091616175936218932038457325522000640989098013789919597783030268532844018916608165265206830062982552986805087224247162696653321366974623668237918194393714001293840279620599840567017135952730089587908804487237345216010500576050899218132014847065863573521896665897265763114150357661754364798644960870260669285510324403833968942303602338752546596575848158102814941533282546749989213816073484300222951169766111581885867748748643643287706101479705964502834581839880789377735710044907913011539092877794105147566945716571732220039941353202789083266550567497410680532431337401535444876550800447494346009941696083984726574276719668870389829732205702019635703373268462572127921579890457470768152474761843606375886169204285371013355569656414418222009958429075269787639380327628751189898779072211568407085365490320056889351321417367235470386358919044442788378524783784133307776477383471080172978526838110582028120199360988745630627565318032014950547352842946537998773410050708375190998209620994159287437734223898676242514294984674097207026278614632788805269091117701193990807768355452663839180769543100226004876736347449848717291609097930077451107551321980434425362489333766676958975636303149912679491283631060986253040789437874270679631912002110895082208096761279061675898699832150282960244582879215345964594494228422956524062508271422511058239782660833993884709010079913286879988231206195230590645977802277426191665572113377413184547648378084462569255404064047832207262157293859882222294241269105145511592433565168559988470208683692265725939097385544855762947850391412708032389332186256882120085737556540855712314008809475813880585552943765119261607843942544714217986926679720263268170639494519796559939179045096017938944162907010519874194410351009368669059061621517655075804365804528490526604658928939549969588202565476056295930089723509255832733777728835375317580440739576321477869132428887736280361310769639957200010433284529280831133764355312735539571511716516693630712159953070873294715398693846348634634074009845261169406556386557329909476645154016827760040753671646731285643980172334021173006718077658164257082609510015564961354904640846431416184394922202144363756666088168596211236948264269174769057394482982315677375802069732675148180730461655127839057537927469786224531171912352449224824949924311563635622177974892446508834106772790912322380455025948728448464163271563961429311557596588773061331337737089968167580573650905379533936193975463665729373923596041582753318054912501119871206964176599387527085273499450869116629378348297886113637799020139077656921214768882687048080005133537843814084125961949930374624589910682709076059493647221591302046317196351208803449093545485431986901486372892939710058586932412679589979241932369743103419332413547981416605757299380608687508116630762873105167144926722482702044993851768043193495175503771374318985884816058325705003522865407025634292376190028829213513937345844363641215509723198115511149015666196686781340395640311773166409753500775109563710972377908787978872407017505883689241538876383257047526799527334723396713190369813730720904125782054286194446710144383596011862872502642220934815638712376683923088397168857828414489375463415243962953693717349073007668081512588336410290268123778600458494099819027186092982138155617542759527098609643711602609046160896543426764305091731993443266188295023572306675969489640886566711685721464170887488732766705267542983428614532864021804309845771793839637866025603691462420982677055192481254220574523684326932484897335349951169554764171487230931933989168869069372839989077611431845431653643904524719864477979013887903859617960700407271571169198971315956336284697573853530025635565804730052171708847542916077182893264887394988624203308775132932519931292443250139526505002018759265578433032582288400815932955789267820839533128417744742487242920032298855167640159134968168429133372937732230164131258158407549205453444408090702276433298235832661753104849572170787911847246963722117535525918364887909416920309753095594405804554580191039298646950931313548298496967244370343668429046315593145106401055794477112904905886889425044518904759368229914196007236662055865380430057536887196795029060261084572661160187498331689249778463858127999944613545924192690635042216457927284799309548485834931132873683883531817005173715824824626149712727900593358431910764247111777491848353135004734490335073850740592374161258684415711795781827005416266130780118308546838428926966309912394800812489118181698018997283700624741755732540625878415638508796244571489389711237017243227065294001019620821542765104618493475786322845700932231313190314631939078299730454380265572949385627157924919420886265810124748176961847405451352602817035340624904612429731352930564461404348207772791809352111079964049737190043321954888196696629609284473238084367278384792083522524200649046981343803548741551861185842607269523516304479656571492213187324601009129751613536274178664111776402845423819999885896327033056532405033088655645416485417162912228417192474611973854314376555411802857605262015986067957550916971608427795265671345309723272536987161030826400457553471438447182456040943227669631760052997027002744036549699825386653862945581293419388513634825900075098650869555235976675255672887982496417720283971419806833070821262082697466139965363928761046845146760911010934964665577196777680924498353300434175211408330890133284313386634031740729442116047082637281698512007933862457478843257576622621919249340415450803143134661329823402768452319295393235446256353464804376798365102820416115498022101364198759139143036806910245261438622335962926365675892400546959028381914837991115726086453408445903955087914198461868704862192682218808946397967783937929623083343171402189124019317622131700771244741461969519005830256328947614155574520769834315287693030525927046747693736106936472301407399974167162860653637613521454012626010413523941848780514953302752303022690797903271212774886677617594183690715937000535366784757744501405461436253603929074103600475878167470513580699483835133533475636043581089294611948413522001348644664627722563529418466535000884225639979273905808798531218825556728252345959109108904114768943104409932513748723330835728434999231100251572455616354351899690264126343809076065734182818953978774172501707106566176948765827620157868468831649788518299528175834592595008259069852521941238401473094536759626107418244598088088673497148749928327233784442978636413723921024869920984544952676776578532478437939219959887934141766690897038744005913208209469194940867856256830425347991783682147444538159533440013428742795817289194031866146670371824180483595908939994947038191346290300829152070553083988001267054150474749593343054308184393221208358027529922266042537197448905033188248035080582316667694206044630802401127602725291483664247205907643128313713797236949127644473289749659882896501353299147963188041971731118077985807801876334206059469133897313906554491844412144618424932733149877133248557142202742090499507227735228762721725226319892921372301985842727403324288522100356591779480989932804692762588768079486580303534196585233503001903876245249054263887105447511930667825873353399435129792819833946494744236156684486667687819256179357555780900076520522078185855236331790173690846852483393205175011514000430735962292118897934188010335500400689661317403031102999664631703423197008521904582708011334168451908913095279103232889208718692528419795208948179151526509553640230270169628484978963147827301432147265042135260294131447913122877098464936783973735419428627403251859166417719656636067888645062051905273669162257379131282861454633078466658384773845243689527437301175996474800008349970700459320935549905378413816579908148910939119290714813965307473838467135715538541114963675699984742401714464458887468913147269287161291684346305890462728098786213717773599212248384305428758915192700256202935166101760879362579425880570433961814660694537403006063987842692493841670976834148948596670616209304530124377053734095132692753064911442785317130947082247317393195292149728587171505671673365628566196136321190908915425395712576879825002453256034675967045519300814698893234665827217183932718511258430833832998540263525436770280130296551285625689593481262994941911454645093563196764639398996544226249571180284967767425260219787715319671312685187799516511177728843440774718782069321397296171089593738023325662982810182257989112546423256155493477872865646636822911579732613472427238232690154856957647534137123413799469894909159575613220274420359863145829979575448456083480830572982585660295493493373156658322328395720150265760986058051788574071594895916341465108538021794577342885094758435986684159964895056639740758178793493910755632318426419184725658830331423343937270522606944774307532217344725041672057802469333801381365398537330599784206129135044425146807068941100139498120456456724359734517744458532521920715311949806267399833493966171130307406682718368384065441222052356213400806455795509116794550833755897806311161303517283415234906998764101477992423685433645563682364266699375549184289199863542648033042067482892537131951679782552625737575352875959534294620199924089339175330525082034660977935849182159868525348880637410857465120853344644207071063325731598013474796075123135117002894224702556680227855829375253483302253668311466227976071523815337293208504128421997008505642654076483167588919972506150167141726412546743357175007442782478886942326621638984638040015715132247746512206443415318687828188056128961645402669868472350893675554307029204957071354652606087929138948413352785727293407040134831271006686450736347741012416047255359584058885119357512070592506043535026687082557347271455625247072044930342784075412000395105798038561655363807670815961073051351100834765969978894522103710872673773231223667678336995887824901933659300981215426923343190545855942836659932355844159912504799010077295048075890533739556460274911619020407237561443029292313336412659773196469770903509546888500164163861507133957711246454985269237293588220422037345522656216675106261085011617667425577360962512331350544716336054574929522619169848439365510743621514842313186182686321680142691804202717155527951552114890505145822144702687937332738195064334820619505184332236203024353826153123754177595006318014053841058991799216398038688288368477044556482146159570102779977304511504738073678151980319957779656708465854601226097433820715807698148867794082353187901118202574928449520115779923173317433323452116079920144443135252362321500088563842917164698219049268104266740540969838709010589688074624289457787572268250804626181191780780040279802220200970910714086725487942431269194096908304264728217241899109836960678349926349150759500585854384596997206735351459942962388172271596754727713468378020275948267479253575132197811202515522301019234101310054167949716259046374927361810789731451648108990742013094000408898489817671948038615664749513221367181806775679813596748290893285950816014340703569680270590960277707629414093023271455104024924780678793728802779668424121478929656101544546051789583898166951825921310943904155426782780345703241996615020483199491599090072729816114923623518575202432193252293948528074770100848166045205753275895368118092270988888455589461235518148595414362759926176474454632218423793661475556985183533606589638937764287308355485243608181367967739253739442125513485584143923902112780847606064583125191013782674766941762513416546092849959041020288387227097663206034689474352656724154230088312819321941638522583347078071337872468000023663628898825733465240680038661751335316352598305263635463951933682337235726516647748948283258414724098533184260326603155237539047764269201000043451261650703785726569787035202157404207258231012095122311237725312098792239472771969877497809449682715362225537238507108992106046239266623311140714356020400496888340201064421929963218408009396035507194905468687145761901768364336203583607125967950573952884051870044206641265123681997419584714808583978785655650452489208547643363521441480725229149108769845840913504268988581811478183609330078836365193300422990398503366788255944213610576373798237984482718960181043759915737982902162372166756104633759376211026490967342891197811723470692568046795684802828159562662446167027385983999873024192700599047851287525204064479270450744778340006703485161210448628193279988345734286731504845801677197669983352426693071057745313065369429650728458365457145595414146809910578071365800670193960993322830142986840823283699422425061351713035561920225679048540100011796423488100256964272970602466166871557751206991141507314043967502915281309402539071584840446704123299797156290391025580990513272078323361983512334012534306502518386737855334741727099536664536096517468044243980963939989770730350511560834557918355499418215347375575367622956567669787265563346461202856526834037013404478385948381757831422729972119245056148363156835572194413352369714604887087184896846479660400803283674370629445903160106782770187596641084801386134239252431114816288229887800552337293764620778083078224909719457753671720548638258584334010209672908252083201814649798683288967343822682309154571578141833843953440652618985328861395728869500417038487161350449548033520653369450497056404758473736883914173525978082730100404026786930407110113846117860284338986673298119221340150891930272106090774254099082567488635677349620113927988019363682366885269630967496281616004347691714223851211349348426509197131639399637373021844444918993505699346676043603498548532750412762677799946134522999006546331760474464563732264327399179692711823249933144407548892613304080577637598521364398413796058409615113871054240417346247118982353786822583600451181823272124205838593238883414866848559147935306610099769684335315718820632574275683010886405602512155552768512156473655971107222949205361042625378709704771968062890771888809668181255945650483288542587038242472632987343484685000530837235087486748375162451933120722760894989463441758202347730987934878754755969243465633128436549170737086449546788674705159995288958995512395921106147669271635762418936745984279200450340352532194497390503287932126733180430406452561494664337061753912829545859057193407223469510607485979628267027134815682850535322110685150131316149105253701577186251190219874990336841338739205554942251382955939734024628798053564950677172494434515000315613559388980783690052232666886550886640181518265658444731537131278344737878306082257614636431855635840154059697223743314374903478201412146731670895801341964819611386429089940785610156286848235481689394227634219079709874407714385906753981910223385626542586544271874234509651121583060188188248008903320492957546166324236895884637307237493301339836455266292920017976005184659877441435933321698472532022773150355463707697679420906613188820061416488255905960050592999653878700888145342919735965158723955578117810702710063162229581871278660544783279123306320878533349322065719271795079798934625108750747019639225511568314984441214929074693470278767904788141871442203461198880344789049300772236759490063572612125260422915443734155658308592901991502657862046538237898970224403542584162425518111255862992423986138274357594790431785990828614004962481401588650764734611522033210295766356927147467244731178644869535841530885248484959050749667065791355298844607543488443463254797880245793063613180977951755286354938122778658815279311772520489341785504444146733796586294746963445851730349976748515090766114817434812433609211508965050037833669056688620855747387294612254714570544147940630061774907802776562698810754861882928819953290180202295867044398161487052077057692466203768026614209535767481527287238720553423219171554095626201402194089392820118750997966990589265711797200155458307160618292235185794445205815374617242791462997495357304559951607366905360926614485416614473812619289296296453458466082440263811802804681383714340350725771628981868918181901732230385834566800452647320252082810646775472482164125966207668164615673521753075464740245608151544796986054755329980308846723003239688994596816315591641699117707063209238808510565772530814493559349300314760540473540777824681669249800145048000924413848968771878911041820580533833250345646077221932387092652608617474687851398393262627919770320136230348573706409060229563044304232775894612087210151841154781749143249532341961973225751833530542674050957389316891087321513908112851479917507978488401079917329609770103594196166155345711410545005598586660747059743600771026241923305866684126997057129772099851334765568502295357655898123048589427936547959698877509073211949656716766882132182265663585599469052114874091671268833064924565337141219547477315715097487181645133091607657487549540439358009901848551452835062120698650536709674009242828201761389967376150374164520144789423802182690891668996139579759981212636702558094220301008392663381059506734252650564658761111177256177488693154812719115902231434419778367030325758323338247323394764157713942952336602074708042022918897359940181908529792715441499443691424046384451382500864559334088284840609027479517308140237305965279385866796153650412968419296890633694998159038192723080008770903503032655053375569663927853207568839109081589726139641941667868485431126758764397906747523903157857703102100926447614734381538313402998096659746467198143263579740234833203467853689774914311188283591840148434648696330413353190948784086977337032995276448964473709064958653618550102137638651979062954898129345582568997367478625243209823735769481617313363190108685345443616570114945039619520327004962420364614309388647056824172201474743533355475965434462098346221367975969321396776861450808677623250577808429419036521951182246683584884170526932908882737338988699158505804415521002755194809611082714019627981059877730301347970389022502817112640496853551748811705007770078689742032777292117717606808903907565102143004431328287762728495751157148212553616177466174712524502454970917888535791893540414277183015201607137433784966635326454792276073337378425253142581395727744089419785239984157989915272659183243481473351629099158082496261827714760408412270900221245060805617591208671659277659123787068078333432987401236222068287654051338492863811227322075812222555804033462763868226621827518878920628842273470499590094677385976276067348386123268007865463626865708462812505319833933886868033108064728946221919727336568265404301989158496740745693640373030066324084531046841107984422261765296630055381750899969793147896149383720949399588787963446048483424135854253437486518179662316363642215909079131608920948530044739438212823007175349145201381136108457086971607475777521100612765759346638968642982035286816687681967342104998956403875079572063475117304044552350854972398641618259338532024222576176923941064743459487694480359271640397676687507403933688382855393750924399977723857701712574418311027204623172642933444909105984119549674756524146524024433012917736039236530019682966474644348098916709677064546599936869027278965742930526367540464327519320907659410061271983772249945704577136242898055434245466135641884444197415298048847249681832979236471834720085120267676594309613585805132885266317387322098673277218004261395395401551269796096790387411527212541561900464547161897095012871470500528527060359934524876690526341850667134141624272751626650077230111909101948946290062974981965558667098146051373560615462793570770349924948141472921458289247209318125570121241163538343065870642644622449633513376077536949511816718937505710356425749542281560792219250873618323612391389406503530170603557868960923060149481592192555674401042334395681047030782091805797266937205071208732154751620685984920526474052020545646299004549109325563925260277057364649089400339120910517750277378789134942390869679236603923223803974387003339466888146592794504215143052625763378950313112071423128391655147252807036594478929616027449656665842709129099935560758844624308376645519172074555364583966527978298322759876025407189592717769950692098363146039892975821935154100990761629870868778110871338995606415671955740332702112168189501340848259740249955618543986168348455334114032572608344361208185939679942707574847369541103219468071675616775044885188449281548880312767838682843532525911594773918052012076118324180197849387930496316213329314631146373225886852536557230946085719234820314892658564951014841864471335321247149647823439576448021532058930655640946304105119496062256493820907885134964907044738965312714742762371731321049580906273522242943324988598009792524652892486464121567836443599578863741881214090169053717260376379702017800469205982334356925545272713126303197730280058339565696517242374741843962653804152572090724137977018868089644522667354769163801910953690519449477065634236029520503625232119501128360493467502971497559059721440722256997202457886336295937261146763088518525349614908215136385524726289490455793161029870718505720293738651481395179665560159136584788199549451903620509680123256100784790677310061902436582297106867552215014487503892771530922277342918937783399826607707179027033678736897987826900808394026187560556884021196594385979440645680005074914719424214048113324471521838725396005124433765240498742328557724978406955584207183925921913876900059753339422417204978717281229693295103315322362294070348620910264458733023179148064947074545049152053176959794893276212301383877414443068782229520426951162442747949333642903007200176007990087157511078138029478361635117999419394298451709725459818746312262469255049620354953962940334431802932193796090022820273764786904559470512339519035042424327794094894416928274723852912902883357929964061557449084711987531824622141837004345041855096995258027715487686137774832749962571993710611917794315493721521502531036205758050437686217940559932848357966334935196551792654582067417930324889726943870938798814048390336558742767612743467046395906814621227891482300522629909939468171461555506120572173000251732105927849948591641810857040201904729634954807830238402881416088336950965586594816246402649659048252835352880703859616490932102118287459870153713187852656555192458060562609776424292957021365699270892217015284440512115086319857786320813255600026586677704301712495317050741781873925541727116616121749309463492585140270858770716100501602038607759754115956254062296646077242169418974209680103485097446125070957480287052820885163105959926340003173230729085022133624869124492586639466250133705373400631329181446272893565162355470092204119283988160743459970699758274469344799306260379987749969891863566982667369525334309683499164249175418534882847711419505277369622398799223733139881702088952277504519985887466853011101041539577598140367904150967650711281473451862269785963236211446417503821579666782228498170901648521594406429822560414191691584887552823111647237520166140445081810264023136496145400399748633379370837049283333150291863082421270671061521525218035886773524609118425518527130328315769544281294875863169319416838657292538791889900762144853713337655330050845143521478888858938794276484905702691462071199626027187583308276172372364256438077939797295544052592488177169460949746165431963915680836762173600647099465322270326410156075289389028274855575673077452921240496570980796084488907537371336406771761394402027808592315924792070653860883805983054718126846672502849271722443844374580911773856923335540296672880486266457657058450572340566336712118638676939294836477749383401125062453409287575118025899501943995963636200658387334033569669807540259841413469991662872939945001694968627553029812634814304598429896573750114353632699536932341237062753260958570296785733046022940833274907365333945612080759088542160185938761593005495762063481310251118866810903910826525556673740683395883160017478670349067409414563634576930920845158185732603303712020426686854655957058827905456761387736095330540725251617185159293031227754311991240990690710081112859891527251670533079773714685440079063331446059195134043014877580782273197065564957117986848153601814679746539512379900187174734489145344712081587419066479314295326121251069265322971824682320222936824744506386468110075001570186790102199366180887050268990549348903544216318472598003984022950975569546291992113744534155575947833794575399372495514220158332495765858679583124488152321225012809871248434284870799359624292335090468821193452771568324234149052464593665395929011927037139026080569731811061488357969989203734736345787547437221901107939911149098080403255788011774884227685645837519474801420939732715174996902968561485249331118703004422742504380849961726093142068845706773702481771173554186136374439948418865614563424761993676786897104304463084358277514101046433897937802688437674649060330962760100237064906909391832992676840084114345910152959774145481998429532949588116492099427805524192327193898816823263748080700950539495389572407231648305685731355265418432781756032082071740307221041780551984022866875921874045297983064212861703145045286786767889893227604168549788437321268080488702183690636136345213105485966906102632467508448567501130505588238865220507786965795667852225911472124380025201671864224641156151338774104099692200892344501284131310873421285181031591217740845011076106709956030156970019179839093405096623575657802049489516853198195578027049058832348036990028557804666322698756449174805232811877424685622601982071362921888357065523109673540554568678721662463273698587089507972523363808606315677884639750960606645465824623141078894358978263434010639534587660431491424430496060890503358177976197311869367913182860302273795499747276585324237658667046680146752238591097679195528912381063553298984957784453024229635236848770983814715912627609127884698158077328801440071325586032998609180878505528071707256597820392670035336482800025871582250137039050667759089102470401069465940236465103218410240548942875929658059743909789995515196338249569668898163680157227845632913947243282985449353668647263975107553938018649374915566558274486288449518666053193990859543012326635925013807198597793556027196193503788083597149946360337082425428873839328301172546653483180697458305079245997446209939133603577682651420325267630962418091666668570055067305093279351709193189422884859974434009492588829332569414057537271849830694141533864175032270152752391533499778318116930926304474710434950778382534932510365480874110332367879659663397815048065816027829598906900089006626819939048857067588650227828843794246605649164801857259564257438380559111648653023538202771295995370680262511137832862689848890064083640500853382109715984554199822538372198770720492386972824114113569416316461740944260591479416521293197040234457165239216321087057488746737603227286662152858286558077315971415642087483849486378762671594123828786437292956512420804599110671502613796547922710705689887829705562121043260628306253165037014552642043296252212190796080098298335812399813335371291703550473795924665997755257636794031290725090787508591653922408816643471447277572392992829486062623704218751671113961264909020065094532736799565790900176327410756841482360743606490676941481043703473696025764239135891315053024742583467457738413193515004309553852015037183096512811743869437300712267569416626251288772312340423907221524737456834219905337636850148127178504629999720909186912741919447917010104709118660771951445222245200474156507178488398635778181998857811155991092338134033314707377168477668628374200361015886644100255248976958860262423290053569911109148202732322765972417665725119772476268346001037945583274286785146817881974286379086642209489257007982351294954034834460769715347360641698833452343057210196683750456684950752150357281612590686589923386148379052415283806986098053023472615211259015912982673670080186377435566166467291110201625024809629073026278653662878141423365107360344755916481336213110587989768262991265958015438623799557948431352817557889586854936829481367296437026961627356406159596972369535962258305739746350846152947388546720491688724850013968764317318919531786850302387530128962722133138779973797069595798293140471961113957611244399491873862742021380773435327962136164257672404663859398020680342684842960840635887928653796739309135950442049833528016476470057020639622956819952427474105158057079853872383741737258697556377929994749897291189802187868783802242967529146737469651073053517659643843639619381513274968604824227149378846281612021028836776379888869030092021925605982597458239644300451297240597880285244179116075864812331699755535611610618486641698139092853933033742849955167250223604259213439307424569731735113241401837406574624974524320300825922771151117828206144965804016386368158861504442371125036484865897429727667227060331873071867257260827425582948597122330382383912559966664593199592928994784444462562999665631635969624759488754160748395267279451746977169378913427500388794589983226742839744407333840897639804442945721025156302849293834788075028870874745342805773336711188332593780961084504751158382382841781590963553428309807527834302581842167787240610672336776194226356115320756818624982451176914760345026490682734510960854249734166497800930591628435142356549426806008449516411958283828048329854347810197758176840046685827653617930532887742647080526970366398033952339375549089559699146350457710795747315538416149221631465488484635657080932978503472791106724326231815895273859816830647668176439026215699609973198628437581428703355348849980430194907191725607311609364122233736653809526630819042758540496694166356683720713179228606709487708731120946951152764961156348034895890110682246705361575588836989890309462493401968453426763844633554987824871863522940598887766118844978097384574302702996252886592541316727835833714877158056715657718204177188618015935641026454506157272602846197853048712472764748558096427050996302689443298609277145464326934385321036498885286645011127152861098307369653457790427142986131131731521791236020941560504368559139452232522030124693017762556231183925128128969573266435845074302168710119120201778507268008262321860157086280833581028170518967561869602556010646699854604953201824726199641086179190816084792429010181402671507074396148976842247009739980277308652734887052378462047130715364326152298866809231381752548741242970653450984709391778108944443396106894998095156208446985873674695752299843975569020877813241637560133884649146727640950783831082358302956511743549677224763148626683148108578294403424165791407673944173401436421690242583306956934174403685329382984297914162337902541974479043254551759320343144724342254429618902016692995314090383718650318180051731931902620754240943452827830901899352709594660237845427338330033989479336072132567897250737649916283893402424618274201871174837274035464576782495330170916234268293515122636762846308119207526951860370546734119478906796412775556196405585770427524092484947765782119664715637131623786023508638385014541009619682819761204847246019405606881125003167918262828410390859770863422087757255410674665808638554393980729912025804415886429590139383886261032129554763168760227451348836264926916395142928157476657510383490748518010216787168308622627720789517157123756788952679382181476684867016449199014362958424279551862555660976829981623487403213600282735661925714823629083610734023147528547152175248982905184019262546045423689065509281023490851145567072704160338946152748794638356461609506476153266760249768898171198553690835493891364874845276357808260721132678346995292047507785597260211105689045428164032800837956480692705472686755924748304385240125550425431669247238919597940568856149879996402995172093735856286961793931771799617623774298575744872082680796924076813140625388437246961987459730733752658251040270580692206585985568394374969422472621955452982469704331500385055224342287787857778095479983390929203786106064728133490159861337842505843209446712514089079576920745323775906377887714650607096438733797372575061929063364094996028759813535575473536331308540170528982679534241577829358501175224374008443054002997107987625145307880979095035860345031944849890095351555962776615743349016943026974120012757961551139401611473874060580269221310965002127316052469491818865872339011280450179086208597089980297295417154481492958236537552782407983369133003915471990665630177427086619921629824526355693232370516046970865766069006793248184025208127554886462053443542503624179770739831751170427652392056901462276782498325507041484696536153499008510610616201378431720244730039731153202250303862791538747056550531550818765934462141981391772058699230117628936070338911024395220203775020995834796582186381974401837377914158018336077050804652285230830373246068209812528190401440171884348463433247760222207803901091971268901616186739009143854237132853448073876788346270784182887563445339240085019908866798352742114409339287677537645089725265212777573382454750162272957952348360508023870329244005364779078801203972213874395768288408766493093305722839158077010557674341580921861943251621101507859001497633979648590133125677936794963459540799271344446091854602992761309198444087024227985032214269170695471474997155799056438991378834830236535993165847058893033972631969089939537924215239972896174043596656451921910198190233878869669224564892095869551530001114371451670711584003158108875210538475530658513349178375787192607704641118993477257810062363943020037858495835476576071925802746417926342362831747585432247385579256897658480342628660295078043588651680978186516738421092143577520815701966125428852487252753964783045478589452540866864935072177569421145428761201068792290577438174447832773758145349871304257573155622102486530632169020567483991258813693558977064334354529722088912853037840893729985757395247966327782639351063251283478501379410981769355550806104162636870191799320369657935553252328780799473840304367780349446001363823888796435777964759759351253651671092133600095492161552059023571279783445074957766316137126333542353435719029223871614317779605597563139544534045308913238516290612742438820033216668431076734222145083178745193053915913156848321737371430078664361580783871702825530352105153861508659856144525818019259218156461126610900466240204097278653058684219692461059781032961655777855551417007938378729855776538707801834780093450402098700434404226670145421837838891779010848800293267327162609623700843240873066543838379670218935244100731141047251562410046392310105554047784913454025147205713509400479059208595609563520949271187444136657575031291624384128947053395205187851230770243786009295672970436805844904182450446732500395024224163155849263918909946243859749836601943107772457014044828131209489395512119662598612338516434966107566516177693955681930511266303543447291042584750606130020607762452548842659333350101908671015103026738123522246693848636051789497144685843913851519349790284690628822900199793431245669922280603044931731337255575340163224042467578047434394607322043908175640983527368670609148481033561509511203028707588547395384160426827883571045679896325698622068988483221087172947720985276436654750138047370976088531079844875476012735009030718283683198220775321066543366870850330780957528865744622885406307040989395028159742344282825539559837187241341714982261436927081605553976640887930241396154500226377795098599776614340452635505302920738768803071966793660167987150964421332173122557972993913106715858028729368577106356011177391861043404076967621105762856220773433685128438118105141401502990066582896204611118661240540008060437457313758595751251559992002988927235571364609109549610202689289497213402227716170149251068802053288612561878840612329572454467221090108581703105223859249550685426897536193930987718523382408753594369586594606289412001818771046644148343910275325028183289662827657355359512168260883723114188183014574685751992669389800491290167918813099581552726469427837785217442036576029604295413405076557876552573149919839948868484328270463245915682343232190356515571749262591131624388288556028765043779419548341455273484404634892422242993743155059651507540786056028985811237670631659534391684023374225602457994243210108101107409552951141834864273002579374995103382144876731084413471074775274433044605637072742724819836982762085248347485715944535755094372333393448959692539577935697460183714373971488255303000473364027868469095421832261649128032745631884196649192932123255341509849656189691178179832561835539167081317168373076562574170044644311375513439472595721088460787675623086924154484708492626146975705111936537065100783872224918901155521714583020225048476556179073195191027321776451390285667230170135768154169185875656457830692490337169462391231819229343908793387669503305195808062332765815576948682852098966349835787228513831967310069683984901352701126070591647681350114501971170328125001623162744292868893256453622037206011431417693852587005387000445170444892259816461288471074597205729873706158376686618789665224077787855859826607560419795981713839564734336202212005003174281501883531925552994982034243735452543609377068386533664499791906571503492256565390958118070530498981016467345932883711531269599566506725072815267647629322051166747135834678166516381364663811283460064734955776727803441347889330006674579946420463793669095317051575847737838688093129112977669115806457833209116819910903834952395538145100245523880892223626690526107916121214248247194046715695968918870323073898340452647264733868066235562401063778951236613510678969326068038844063807176158751176007219145545750979592342698700123987904180131957671427909616849384735813115941300118259635633869298615074518242404191446122682776492788660879849738383072487605963065540348566701383670494341626398821388794440340105977152266743583095341441741530365424509975608114545546069897762812584053141755407925263363011822281262049173352950120415091585174556130212024465348788867832901511417257833824904928841206464583708257260202404570309554195291761022925144347897117043647402711711681414067751887383912373197808653020843749012986447550529267169393306568927559639566321759629896708121120365676103618404397038209374336691591874853789073897169121941706977552188918827388554143782773750742528794490116721147863201987847953514850638510201368758190672989472220862788522249015991689150057285181014061272485992778349020269531984151033288005533443620662370136372346839218294074371550837133090571992294908933567624699542342621034073429733575598544085630100319168500545522156402093758746899030341032458181409864601115167228675134003634282322431895015739960027199468302336566427265538449861565976109733936161267012230207000844897678334475909046456508622605232670169289719353115885101987043891468686490052104544131313996299444963584601394003091085443305171582392113659374727989646514014092939363272805446318841663036905338144914661363702892933013056798480923358064362751040562051183397745155774180647961197635190702220342002771395538053143669809264067221729112658783300389091211731744060405740906134672453205564098175868285789222841795732617844031632687992356661396780656276249599951624865562377074203081058372628744598032203616590301333809254573174653173876552411081132829654704335693831736286659089001148250263681183834207914383398053400502523578393970859791022587297421416334115986373910745744226326756310820626047306201115272873308133853350251827316413481079921195664340617189181712019270765288694065926345712212337105390687797484051841775981529956558487416146458542582518941457813604994469795278824554065007877555047021495875140102755935241120640061269379044414783956477477311962572903097419980902688773950140102797114863600747661001733440691586725535558756161724416917803916642818577092944797385121182964164662910800252015979596407292950548675007736990035529756392391749378206565411644997669787551252382008730204478320865500411995699574007796796851616254992654534119248063120166463371203359965089724571748844773344045241848678308717214000283846378547493176950463658595747305246127660225091230839765816283991866123677260845778010777478801006881346719031197734535669633409794264722669990438277252331871220380225352846728685250308446635618897217914458844331017858432087264301850286779627765420501276834911773787339972628004040016919718338202125873294167070438445875126580849829354212257408124812776773696172953981818650270626976802726847163329282109158627621924761882543068257950907104514364275571282794205505436906042261996928957245061283655140609755992596941786761001522668787946269006143846174200194549407392946304897603102830211159040591550270598866398326993188595264534681772881808928601699666804429796968669062462641483739928007567973086388572352386123774579060987176569729207606959754404639646076414672952241145927382691581675987998438710149696813278705941332669407891861037283045678348809890338984341855606409751233309726071732365505242963707177123486534251222505464542222395823163348963684279774848519688852663642085938235635572119699677968616583883313932281301649183522564090013302418432112452291094693675332493999572839759510354085945307000098335740715490814135226717640507958729763053669452152385597064332939746475349760639899305490860300073977967075180750269439949926255638693182860670988664285614143529816605798342242879288036755244327763541080314586234574341316621763805068194941103946600891722530738833439464496432508637999860363351913058716662241760120577408794597740160130720814466083938069391650740789266516638460516796457318297837774935522469326796329065244290709987645312315654715762308526593436917128785947283630073572840729811362491389742797936470791467852227793511238936526952853887339362773153685891888370239518414409980105711821416462732018594404216670139296141557556910387367305478077914631600619468099608228174487588542316936192518168671261968136270133636266071495552692237449412374307022428804981500349263041572407347158554012624285776589582846840617154967816260967442272461121233972858674914444939706539152729132226920993632307342691195552540515394323636061066425844493452264322735874339768986679804939890765136722764493036199620682880573579124532182574284135513005729858981657813736711785589833597738111785109921861419463593074178075662656789374072572809297582151025535461524036835733645519444432961151675270798504371939996701143540404124499984241003518647190601322919794499476405649170402396921696483201486426618547022225696694852133301494619454506250518117475540363859509323524081976803950988531501092886213983400413193194036628173026057579929428316524080743284218198511886090679406025466045416520380383564150714512342426794938458263339097610640464994747267743729857356044755730885419931414790166092004776660284518534794733870006712856442809682084321257290851509592441441016123897255759079687817042843238614906907946835336162014721552970111166863867214559246226936543036202058194728697677617854574968614393611912914459634795712084223660727726845725485146793386100820037310751576521513627762345878038228410021257885618095713791037907598507469351828426993105551543030635423579782399163452474181520705959425168045715158766219810948513846875220162825105943629027045661943033673668925039473274841967115262324606971175189630530393492025838521245529712752066933745611736852039126517287169852954677776471367522402021157249832806447020431949698916934538297432290528966165254080695008699520619554054034538592377902242346580477560102731851868996785077477577297828377619342594378353818790622947311595351353678620040490036464506824070580065726506936139513170188007830599860932725019232515982534204896957352657623210121224172094760306219184527496457904830460649669951178359207854597912476238596779078848502397541071206021230874806447778288074315731022928816076305484059288122899192250450544292051117948885030613273557982447505992457261007503054264508564927063571112262112534025514516541601766359061801351448933264336945294522003280830176890809013740338077021597829062258180078002084330408797570992928392074002909457991956546188573681627450569943864054375293938492042785272871494701823205492753334101470600920917792126427149036904226385152062889286708708293656876910268994659141643973902371621713019841614974697443968615269053287219025536955693712564406512637327323302234618618882991603402270416603886886042790035303703466527569998257035928578312478804583247960553528205402180297359914101773567160632599364750697102725551548781392241722265038381835445562015073046092325689529117664872642712321937560134564168328129107373283077890299868078440116314833718943067541652718967657908556857633735446840732530544504671220166638527307577994538880740609476006922109894780147537395883193385639438074374185706759295087994970510181950935030237169684477877437067942155439002913222113953249731903333244400146650873323485725592381279168279633201877458983889337662829405856180909893892692958915205679234130853806079890220250290252822116159176922982884065884301199735691812798553066290234106259520903176220568695849662554374212898894235099284275999408886643420822267335055840816635249178449765043915483835978912820811058229408304610504784800349479963044837572002495699634150367003360705455010184249619620575716656265455456046941450857821950571644377545381630283969105993621395104483629496941826511604475075572329510963807584053649170835984687650581846939692285502058694099186639175839068094942387345406308721692180648437524770284024480187525667162489051808732128845995985426376294752621572098144932153246460175572402160201693974773632512560765534641653445696208852806835612682080964546711244158825928592551832868861817213906424921353863842678642697193298749977952194343570206648775802631300818147190316898766089621748666951373918728138492612402682050254344832515689703543426034882169890781621660484205488166392075040058211243171117438853180743686818028505310224601849323044953314338006219975025305332314915486849943245740702127697127790840392498116929348996755466386022712443348534063562132701963306027768271194033763496941403915309205051886552511083410704466956826680460459560235046766417697785827048692334993663384642634564095874804509389948496663354894744035508195059119078428377722431520832436975500540085884544907617183101773028138100675238072621843478151773769832160755921546650666873005263666876659588236698453973886635982931067976936387986585471142193907195824000891375927900497944500400441785557574305076399356244075665099958465351115178357241419662511662318955998974932201537348197204285813718600688031637801943729931556503440958052885715539480870021194860071028123921696311575533264665329862560557302827858168389165956919558063395624498888498782556992970979086709221040440119476161780573142065385853429181782696316948710009848184325451865394700649202612452459712969047852402407123831484484649582089957388239752490780657917587133644955977956351574756166904799930477335520052664527096682334664225438360531202184996683515939028440780347680430727351310769837857944634115226792247337636795970211228664754796605892635712408601859339590729755830035980799284082073854894981751539319811683523707236395224191909294113021236244558496434734960304287117756556917742589929924353986911876956178102969229902863539906659787017758106155021091691115802611718035829512259437278748095496960870863295775976758920764630518613833511600090587151456788641766771869626647379925407310604335369536930041140795695068600438443708169513856616429413041072034238193633071043191898595236129270969726678167275037578131415798368075586520297171612452667426233991078229596759456765321603487456967669921169535090493129160280959733765474886343641119984122561277599926020356916060745724061204180759012964507944026975921468738639795482377316890798240311924770463280330401453876552224704588149555253358649462221080302935973603065855158240174893984853714281069797599700220872608590407038170272569652553954197109930439388557995374505992006568402252841285032378348155453639088535831710363883905721175345165906705422080056825726750099342418790971431384432500579119129826543055423770384720746941638373515918082263032686371626306906329001862193703579940794572921993077697148651659791425887131213525380566812239563139946673385524135888963418847608019834488082805341040726265360743207083368245658864724079237244773547302556037695560384712815117174106358705803461744676764238385807440193296741077596290710696449240598279568892772719097740694582096281001220480527511948199113314803376076441531445333402202119989058284744029991052779801369200829038343893542281669758978756651199638630942903796974469664132877350561021819847473811749717357349355606956803189982096553480174218268393879655133462813260126309419293960249483211608456943046662028756279636020487166775773101509864012019358906345022580076441241923838435612959731636366733560215649311160870929913152779705858322378261197595021484196080481884352986071177073608097176606082817957552568666353632095481725758914767765701014400763954397909892327806008514358887753549623242672052978887780797107544664640628536673685571415693655658817979240309523659517034050721283255464140628627149782211127756255206248476052169907189284826157909790875242931363626597905782975417754097994692311797669368586882441863359422219281326010457721102983950970360997870900788495955453325878366447663826702235674246394068637962124006579288083814187903844916065063900259813180743445033814625876201662324185301965005389655261927834654143291537481185075063446722544544764359784168526289767020784983974147012529102624121944466905399993833289628772430875558487567182632495670248264947771329380275779398415188265041039243656853361795329323038844624753253728951480365892836536220675218537469996918335498604483800658713533685303248814848756805699301726326324725868846968705983357000547975221703528161038340934660876950891178677017278095268029524308216439349957079678125395659569677594980020356738250017436645776635959458653097039742096274011717105536042626945457116460326658234815579036155087428203894069909760969252729224774999069828743159316688227518280584534450387045555150849075220633664797189467196050744680183567188127809573263051669066382883577115881851260759925779147256750998767492895287928460528932965755448688034873571165002977608833826119231491464723362821873239500410922519659985043735685036086299128503562545959612984217207317243013451857572046612255876859828154727301712658887038135506860286108241008532241747106653150310963531521244890719961380504084310100192173186554091150037682525997628827518832334280694591723304429737203471034828063855729675866910745223562804236642477358335146153006770804295932054406105260190267944161942584897391161715650874819218892687858456382742190142781890113335107079981033423761445309992514813929103684682712179194851873413212942566057326292063772796216740149172088250753172738326559327592024129183397784082477328113418361321789385740111276495412082737399091573410681308202675923201417799972009910193291504165977645847337836982991262056915874162269472725701417215732021947749176522042393340908268332880661488858600432659754376952427562852615126170127008433737016051314919849294741324870736074312957316407842646560210870754588492623367444173334514090195426059809387323517646990926555710988752607230061781790803294933268079249401240003000226641886493743237339065744418029399650583120190464514116270100743243576582882130130362249814991137652314621039456207492173053111527338334237125240358759269971966262937415278146210779725797213011874181416980580051054660119279186755161497231627877731644368492388873207651629519090071086427367478556696737140509195163511783333153766702187605942351586710576395185575015297602004607049946125767419722687886623156157195102903936376673188327185648256641141230643310898355740229226406345226188929500179819929342909530391502870215631018157150283400122530550513805835568336785654114524021201854822587482228052829125716462922716313251124474760872947071099506100512547523714751987413551157337303748648455173771111121238093490784297868765538660733574411074767791661831334234491550296253600177959112035911247101748048158469995518375250165732895074865215382222266981443012810790954118147253937951552123925833632954384471423256196250407505548417433756779073933732869488658821109919920191630574183792677009949379277593082574093346814134102675932119479813187315109214771263157770828926726088115619169356292589397532417800663988858392956412828923049662756859966156955694994128394975493024352295775449940028016139087908691242860794847757486736360688237285692729580934721732494045756928318398947964721290436156810777891876760105500736422273515629641763441573324510820632484401682673170086900399784005294633910181392451413606187028574065450162119212294643123978352654696613293878633795929573202844957102702662376297810685034895247301154641248831855605936161456650204030785603232334513950400538555142565703784192762226360724700049177936710627615071031448786873071624157943123269855428751266420610202034774844662800323895658726011925462579975252085397525881211429266574749076869866506964408350695016966583640958899411284398227903562706384575427262537925066325180210669106997132641565100956060569811463878761120739553659060003261459888106637685194560485122613637220538811953442733433824213041048615034273623882945007927430992872437399526222022291324411314914469637904340220485612265015034530275463171510618638402077586591207983023946139158122236147638162841169671731779435552202624528197844150136837953350201652522613947241819738295750086102665729309064089737705108942555092697606054889356796553217927113969831624143245881451767005444154767518301087369485009663454809529341434030302328242792453920467987737482829082306652457924027934903218327335480371642872394130567978508803283545060210006933191105426363162256068570814090667300979517906304195053382283229342170039876335292272552993001921060320964727911194716759768535599146095248308844846404558978943277650963006014101845602687414723980834719581237166383284767397851193740284428625631393253630342638048226796680086625081484021487165682824880483234153301262488184010813348494456563574260765418004619548660074672042110717286410468134135980314551037592667378493474835407173342791886613970094236372765764819912158053893497943270023950367203976281502997418073350180390594323170495237039256031842885551691920997507241309402298342209975795444381273685429138997471301279936039850245411685021147673064163606795669655625602661142117329876936041202971224294471915427335044732072554245541842384455060715062633117910130303646307129846864543581370041117946544947876459355743272829247042192017910795628309733275505318128831906612099457364528950528703990998562521176244134777078561899056169632959036390700936885239356534029647773934337711648201324676116037771081504389901211351357051151698810127139553979897297053494997038820584141949419443350977032171975863397019504599677831729819480123534586972945750867595132440670499671531912966216635493684421675221997058222388280392709464234174292859308053658654874491739320959524412120473102151808149178095254208769341032024325358122653252064612640128655524056588383578848495302696743963599004219558957894857384469801730496815164949350812320372481372437522848211858875189750310042875780876194177690570801752443340611298769348513182013271679512657527389017296397336809015411339665889088479668005454633324428362980058354919264705005620225238188040252193540294156230692672970206025611424363056898390370151463975504841411422454251219352944840120748883462790662381644014384116651941127711630939830876183559653859937431393932923044491803791722482602373208616464530899778695626023422703127544333038183449326389777089755193830927604595249461869737100068203188228593634014714984719824893479809186149371408001724888312261303180978948052765857473484661199496956460304758289819896919474244988983631556919982269062613076667116603612727847971285996745227550456706060012041679882844753623424691183818761231802891096344993117406825170137358414619893651771708720173366926685747081170722073101937251472767726381352733458221026687200700447711142701266221198166149147886724300761309739913337515705589771847004879703238226998386608302228595090721076116101721786149089281151868308025665289858536476232965097612088661727557989279684206336584524227004295041044092203182580783300976404025550253416198211177029899219561678126639752757965824277780219226091852274125831912587284715517873275038754416070068847049572933996516372817881342766689980277764223320000840626056556128744645077244014507736268532787629175628280481736005424067717149921975048027441897043460236364412625567558266546759156770606269773890850216749528606810986074860300133897277401190446827541607713073831666780979069289028481937108954568146429702819176484937226229856607500169324325899646647000382514576058933718778663397985388461646194930803383719561415501453614020182927709711403197145279499366743400150699107755419585484340621278565079135267766442305393261940085307387749639501487786658979061009022194067792525938596393575341901929261768163638298871438306118395694172229786474412175252784936666449243923732296884177466650589886423333195671873217179415605122751523404084061074549253477356046595205414060842848011542678718604692765380493437464315270257200729033793610153029508729044080778761395597040020556622330571934701004922446987961457278275883329371364052174047494084737941637253390044583851975011242026908635072369957389975293683043085754409096333840685390354221567212287344467471750895084528143217505842884041871411144149940314165091611304692615786752730663017660481916359714424725529421463297785972767651382962662454599850050090155175925947358857557068156808273058972469464675099139025414993790149720134229313902550413611126904611383404205794261042513863965857220760018801638501299005824469709265414936033391671307104531145005545608278721521188181802231059391354357310380406236002406461846557506947273530535572314388625687496220091659508470396958925499679167458357957102775625238961438853114735497896693976730234413679580739444209665567184953661214333990850759136757560691132019513515535961196630379641531007331108869792316169676266228078221634089985349863407686305019771700222050332349224500468834779514567077305497568607420249780612770355958652870317241225268707342673097461162751438736423641741706651814725801789087476486178181025462758094363787706773806036590422300526003143095275438475341186009710121305316263313860226626137700016334191495398399404846199383547935337066680295958307278419770115598458727946667510547862995095532896550341988062418551320755017611500544793776581534394362543580287772567553232642838197668016379393550186366325444898700770848224939695949147268484896417414662595583567448723235062378552034967774561486289871335281132001357819530312690010804121772543049104454766516447643562310656628313015311643231969915739765112942787625337493647475087497954956554529245836889774943845293578459269031689226416639862914597625523059780904509061316872742584614911540449089429790328483606683793387248461693719040373725351826245470791457434373339004366551688013989418848557398286451294110066159762883909362981778805639506772263130263975839564577954166985913716373601058184200338981404389447536670140171045517973253316708991647379061560869984172853414469106444126570064317829088313324866303024187180064393181899981894847540747728828872789685366189050878493091992972775337789961504582480444824533869437748628766928344775530369215203607802775608020104904271199683525741838575508846634398098712453579541476352294900505308914372417909195666193737131580072649258725135510106409071722112196546358441187554719978402392307351407565515974549065423575694242125174291067861237996204073112951570173585858857073335195663343255471744526638709099562167964952248748069140663386549897944058491678868331968428622673335255836074245685170734235226939139847490804340896851691768507972237754358261152796965132030189160417422407429731886176344054164068188121347285892184305952795541879537817045776657387899184969560886009884630696837747904647353616863998567320823473160446770236957437627698419721749362768311330267962700523679644745654500341487304147064507146611155464395178641878824214417231073907095773221115690972286036871666774969498398906323434210085137078257719197532379610420721864549639884739684519908110169989972708325562944312501204125508557167829750153902638113139933764471804396517053494237651943691033311193022314222503915411696081396407865339661316623180403921714290277670313464925349413465328284718846391831253280664131807260855892062972793629493080766474622995400916488274623261343164788051576919606718205213203237248712520021388018115790091063930556994789948056409049164203713058091894638719625513823857868591434744551117366754889517992738908941137682699616591418568324336340475963606140572548476997489744873918922107381209707848975657302385481057780008375860789636074170815362368136301288185829188129382360898505877780113734061733129736851921824827498861218138078485817860763563767516852467535539108551973384877173448055196722868490868465520042645005576608866922666439645402132952139658810013541246881523450908062500940617856461612199463561898747804933308252248031845493591805338911709826981173449979270379133078219046662813883147900574512808934457816979781144494780125290817759942228797167193311635751759737079293155557399074257093295740257914238887939644871068284020551053744012594021146170502822157668069196782675879609772653176106250576101146885638771648718058046213716797939701147593192077378288117559397268270031278337029024382139858251756963403243453878074909466011293654577878887448435290322286847072830355632948506410476569177701609706606799325312509840414386226981475979452693817822531285306463644961846877140928991084780159757333682341441005645839904802229020960900440535325785987201342359778596751944391541185902114058031794668305064467920375195611582994260160383117082697790615331840379678476272909506519483807591683463391522651999735826305671076205130214766512517946418142449592956479068035608035393336177217364271772624532171854026162077028102079740544583591985259997312596402821096000495557455386565463873483397189623454886144777047298041111365642585386513639283079565568397863395029315607874720189190853539759998530713886088635681235765579658094254239335032479608016639930105718724155913647658647285097984896975258954351138687291156711906838843807523423537671120716223247750745623201363583020166382567747212126981491713163700212941909739024602119792663788379530628768916867125638244874883764296409837381399610755346456545683233420185219654377129721988520324940197507835291873473730975936611659165578259813700503406098395272735119810314989361385110195855827584846202039303609168152478234675051504704629794809450200665953178713508372923220393473321916303813625935563862727754357085704949944868150039266109455353750704324763469722291328721348505578099920116835446141246607253161368703358752240154004149561143823988078337000060468556589561745850027967036181403523641725150851923839019076200785115669269093826692742178311297873750497257044910846177769585289093496283746382471809513938411337798630899283913172985002760304991981718601781977725607021639360592808536966915782014761660225938178238320994948079023210977067667556093544182396480616324476360658673792669411441782930219962954471154350540008892545697901626071212585723767784010089095883794995425279127669593105917939536569635542460480361208255852740135379489777219043634978296869122302585268841234333083214356819426024600586381692913740840516672462375579169911989658891689749132885057677797946141453453116902416748707008231001691919839979076751805244863036200565247997839054969749159470922338814270532307793433551771947193083681625970402679396788311003021244041992881739502181062970311368397142517879878211954324230450208533616838466708684746154576903029009912590750545789047543109184960406915919261576711350335791339073605065712218147061460382748352638764598481809161926086456869208414134361895382105041323188581443927575730489945564060563270512414056714308452548192304798511721864514989146081681071775520103982833830263105191738739635406699396044158664093147052529631270318882760941277116418849626049765006780703933239090651275963019941937945574685543863243405112478064354357729293044863005483755688411465585385411963312028922988518644448951112705921111441150019417434129958163669535285191365283370349950233945552853515195608270465923974808841907659971612947207834643775753284339464726853301909636425061361616224110361533557879416169490789038203368364359918587197343700596148201180143166635206224471885606980216869485190175240798730954572618553677242667246494680346986366976508419606246649582587344157520786106488212814737555242876727975025818162665856244402707280147903935516544873708274198409964628827404003171891160894575512466731701264588365362434604047015200180752217373274595787849950325467674539195564733479912408217681514768923384249343341000376676956944162376804777963709948214475766058347258171294487130380361818769966647362174763067567109335062364364338628499900956819701480745492461099797392507831573028101608275846445581392380053437275704725425880272011412488599187298875214129463094667070119266026688236117060945840512953280574828790880333416335417780440043946241090512783538925028259830368742291114475636511942758843516405946641926917266113721700031570356896276486765024733220908335545826641645326174811777175950481252924113645756093973451092338786985547076027509878891688163795230611659405294696641009558790981087357965052596608532309776962551979348399043054936101727124336424100888545091643539871289198504038990247306427546434023949774494067592118094454171864646856797652036466209151799144169655644374042207420972720193587174289042788770525061627469360603357718590937727668323330551710083630589981078695990380488739226375297710812735280003495184288635063059027433033454209948271901135920004560013397462459229836818858933049616147165723868487284495409298610198753982647387073962691907607375696300006943645096553628088164560620970109418281037430459154229272994083198807009405600832278786920954035888720622099550473550162214919454988646791567031155737494898757242954235295106117752083280633096821124177972948561086052914113300593224950243392072549337889575773998246559611935993159836094982274625211827264952795722105309237254724893996808199187310383896223541055920934952436580500703451785920701926014543420821782568637490229517131515297151374251287851356709369825862820230052517314932679484230679631185269969595912208631282268872703633112060497667403197728361331968519405694486848700451469533275170608837028041960953570304217908974322088812772451948249416884251087713629707142575769198887638897501830180452342021968166926412149488105560709673709168295110623398541757628310181763009489276256681370248498408416247228610398064985615943543196747252561681899547164548939606650103061775909668786076746520285322017918122743915296736424889055887024939361482549283994789140677137042409869287153773457749098954315843563727053210521294604614218754738272209578270973864852100061800186902430928303118529650766249563947459218219989129208865067102339062376967647129083400081743731222625147627483647427003035933019000467403474741867339564108660005050656058608683256139824250982322827032899503180722373340260035859577751133039858986903636852714060467109115687177468740262283805417044032753713033195900094226798961100307358796768146401063898521908650997449552587321495225009186633119876874355503492538905078203673167403797000555967178980106889441521456325598053786393375765353607557507452181433311804147962917854348865071072169683703873349713508467124617600594173731610275093133440015861074257085752565103287124500908050555745011163111630919448216502136096717251624505717566270998010410649372680898582074697673818053707771557828423989932435329889279123534402216191135851327018257177710145666990261216001059456966990088335417809280463680687826735282228265563982515445004314353781227634661023257367824937769440829124381527903839667335000379411811793791348341227025458176838263224874893294107164929812845351861999779294792678808872279938834673201719810378328381436132776738925034558879772443170084307603991875009894099018204480032156258390744243309605926090762554103428213356865044655449694655478700501830730009444250614485000111523347809587480717215280553625998093940705935349428078892875857371283623052394245139668548667871991540497881582197780309504414994145144345562856999003166699231940777709016844084955990676269068290707961774272209370609537772523416813697630393103013497896093356456698173237634618510174109169994566412771915626365391108688036449025243370585106983325857550624213931488352867836257908810087239087282577507362720354723986762217882956226543362724336121693141066032873511672041253121974923439871515969649286255582410299494032383530320034492987215686498174029242174525094777363542835117490421312414229543318088938294786889052634022950700076296402452166393588486985446447438898770120149404586359342728699952529806841622682185010979165939423108108280960345981570083949642540822904726034646904996037284460141612960825359905321218490176382453666331670857613942822967850861188572881351275142634164406629057534794901343289500194947104201641011189962732708665740180803870739505834244311836794770518743391353333152222813644008755398054535532559564894237881643931101241935530550528246063117053147743854247883270454230573026801309774769839983848886249413333748952913806832833519928130234186908661772568977200335519400767511723455401615324153276513886556751929744168300771090718103909678912326819170498447814908729220247172236148352660787113099618715498092297390911266929276789713355636848036714897231438773286947919180793911060041433323300938425874076909473342831797237901773841062907834213942776432343727927593819340006361721677712339007414655310392522844014890500176813845449937438131638915183689854024747053338700654133363489863358392386567180358007898434317130559797017016035656739137406689521187669081249126414884106187913057126492835640685398063448031316215402424683572073221094615635388234794561836364731598721529913528932542303279751341226469801870564901440324353037081016537506301236934362480571585645357825402461389544138116728477274141396715583114316307780078877246431030910756272362003330954848842474401783772939225911833780743038621193906954860933523761352761456893512588970493617172313626829414774004561350348739472259158819531106872044117872749115291418262770195113352652123401537980636888346536057706432006358636904633684865754828195279155354015533653580092461956201541491218620013645221599168769476051349217366101507129903866609733677549891920493469922544082687233900438507427772457760811317468818054163230323620251708351327387576141332613267459759140562338901013442186181839137793130238706891282126441258723427035832456027303843158642899379049491800950524296928468848297566254889658141384218308229778997311194805550750832464353141426381007226045146666066481017618359628745315169622499820956264519625044447938921385387609391281601047033361886987343317373022736382618331146652395191566119457938627321784992840287864689392340776990507997378924407846490279277832541959998425352997088490012459399961757207106367870534256387950015975985614095333814874092619317061452324800441658028050361919894117148840424780150794369595802067441833135129510926179038411725243522552084447819965514583467443184317772368443722419618674414293979840068269025872110029428858521453360470887406149480418867391798362732990634525497180375571784994124019364343808243105597989871671919614249421967553076587313216897977576731840437893412058184955341301969647484756034705040106515988819387736320526720775233011696319080779537003471976642998341430559208495716846706894858672297683989023552855212078231139226826299298406028189343687937658304787241664479750715328144837201151568112109726663304265190425193671082169832095906225359794593776405572048368284557737591840506127485762232174603197950504469275787247083613660642063991506996067072125488029007179788716997406429968057397669033978676268665269616987949304918290458915423941474565057781103057778512375634733109679708438176343456459714668004116934697912658563056144945439895616477560191153287208465400322055489674893371482743024190329232244339388602443968883903374080022102838614396486416606987245347630494589796457184248128178655733140225508825536371738886638059672674571580338334177084606744404813439015571850016435775841847391111173549196321337171710436382135518265729752428463372970897850632288750539497539702253279835447135197480297518171793352893826719586033686988410191660186685182188463382164346643970351921261312894739611832442881396757092580836167725567845036158230113309482109793792876677545678253820953245922221545029766867390784509867800982767856187442891325251491696600073495978397298178421430678539434437489734703780510267670638322836553893672467899607426500334795564530178568519281429111259921303391178363762375206071951048518740657525712903502648337649659835702006862711411486111383833501504888573210226263323792441100991634015343939739760083868191462365735580150389705864721679894657452897162391529726774077798492041898481736651114861721188429990744079447077090119298521242168328645351352127069098602401901183088974640271527959981309973430472219810434789712427239921249768658014058159922267474403112648424011750918082667267252440061660204106954225481000609418013560534436106562014177934336611711185468701674986687060376604542485560450989641841964774843345311820941662424798930936212259015757106208283682336844423908304123863634304051202260602189973767725335220489976682556585885082561377568901110398131899142071147224384950766853247235695154654748804629100156815031214540542158904112251447702738040368178387275492784609310242150620140341528322073629746893934844975935687060578609147261561028681908932423208186116386462479701916010327585134380351318124504233867855278328389016303638804871511682054005323716945141086487905632579117164060859586720355446341306281565452219342304248767044477672575094801732947536810155081245296366726093010665219201348119125636605688871472529597835953660907210774145737874939260403530052592972803985169987028206052887614711196101684610802559516041845144280359229769363113107631674774190444334194969204146217493839604003317757568087087324707130231118694826667594798128144408395357676003024455488275479873021827974830808700990863726053888024473887328355104891232349926455873475446565031361783105536649596826640395597208968198620017749894249945936073292874974623359421474033408402090189029410672753607516036442839458285153845223522876228147421653964436581505394141884093382029401511149402556649021822150022981536394843686659003053970210527832863999033800805288345376720959237075735137338014659388946811988272986178701088515398964246648263311190243049576466539307981283775343114134990019102359316732587528643750404530346819364606933561257164441039469558062737231619060852526684461737104286953895236054308403388574872472956757851407507477366489001112744384612441595119655982074563006294707293246280510295590956458372804354001609819455248514226768496815873836516439350432580382740196434134779432464338175705360395526413528396054646988611194344782528163607804464112141623945747090844524884344284985056316990649252822237742428990899553838184607378283573150835457918112678778462232554505040670003927569954803329087620762019269241630098591284923678288703774492971102812435227904123566546897982125770138139580268648472347175179620500742023598794968064928673117899137091410000228372020776063583053750215789676517574651637918303955951050064492412376646163095198032144369842704093631229625449725569062285430361431385912694821895146461598890261414701472105596143339537514744578739285890944341889452109503963838871327228958990184066326203286230625787824706721223491424700668814711374826178392791727565802009819340430824975957205322216531638250244370625489966929540066151920052891933374780219416252394590548018076858577661579877326341485932885925651709763669912201050747763640073005986754971345364350976005664240119327939104367606305574697681421645579582354121894044556152426290429470299561583690506552850369127980550781279262833847096775386286249024225070393656552479855381833902911393617114921498709227717862821138426822882371369857399712596962755797208890788592459040866029693948911929474898634808375411899525250506885068946423041915795982760930479811016333546996831308297958996606912248784146893341761830600189874046011749304357566451121347298806711155532388349734031204859408781740496533531553129362511235987060766281005190385862241421622344292807267983045023245763920292066326295856786612134646038643367578877762129343977478994275549607160655507722407009523720895470329199533726460949637766994542685888374195081389010353280837537880659245598266587331612777950899521855116240767023806227902331382574344096353081346896731177314258028064883809795386824952178385988412458643569584558412162087011645541048457773294465348532800794495674441895899309767577065694738503624538085717727223814624055483215417635769267193860546365018817093634507806548660319851540051373832862725714890887461399599260983854671890395382833707325989273724649454711845100739558832413678558530297768428476403048149629478942559889658690872512660157920110290720342596045273010767815362788702444662554276425953254126656778109808602742383898326298152453996157095111584397625966679216298637338330368863655035623336096749392091159287805767573733878442345471666795746647650021640049867712966888795992255683363104681598091170127449155207975134223438238331975990683639539265415154868988711971638932179041287870522505175249790900415202612598669955672431830545877864488311149800706321133906953699770592083469492628301846601156218276796677324282996160376529611440725484061988284193340681022015347906072095186419587975439400343973643133712003925169578843403432088317270856919853630556639481403915289481089822339031437825283024849081177632937064128611238774085979267543765747362468762474331429429681484017815849565686935822631607849696333731543917342209905760394631593844507974703985109585805340085695367420705030270183921469115563386970470757750095535654263344000343168692743207901042998082373728186106387118507870960641947667507059532049037051845217492411879492681518135148973802997592307620496971810813023334065920026623242452440405356477231871695020187826243942849109780708692023620245280872835553578240086590516989279525542272120163673372315520702269978831412256546619451799005874040262382089114182473223761500717604892510430576793996573064953719715360455489109148993386438008576405347643714854928434859846645061116338637016944572139639905807210687100563140615047098644163251986053310543892990463702656356932243094049435130377229133071354689777440371832957773463578677075971427445357628620925163534615831842109998430534601798450725263476230667492984493149148433645527308504117707034493738795305188998421755906452327812248499523504949831847588510971308238321260834017822669001142622356988083930247045452534631422570513696978248849687588768247801003149448291624588531620253893210870868169870061982603275781566562403422100950891988355038890656014884426565874632855127380664058498510498606646909623117711490863310726700216211586198610963228331448006977961568435873743140939537800684852580164904932974057344641431560288078003212801787582302299347962098511806465139812810623653720629400147707134720512103490018829321241482738806982586944721605634900131168186273288150099706464934221715540703100417752599358799261393815297073702964733945563353431745198999342631618970220086425497823444709138140525559625793472180150054157173807867497517019960782035701559532733232962159484839841956372179980028380513047665359518578775897752674870534168062107898351832821439644968364824443796621482584353363041832973461734087393693897829706166811681528324724730441310151365303069742028223443962657130905291302916079804976378441827036598680121166975080680125818982474708614486594626854518419796519697503624936217157435646710071316056981459412356972169270154997231285539410173912562743273444109744303685724209988743871272210113116228307891735417153524055164082778114221396530301168033342917871638690565166499059828712580932683409084187658000431128222566936078335180945000276004382486711226134380602639946542268854597739369042389619219484809010558285678344780364997138731826697028174852717017327474914471208330836158201441166503530663406573604586788672715758602259995055579181409414931504727372865978829771309681823324502270869617635258800495001725229259713052824038717270534005816849898770429844840087163731457252240688248412608622820034383986029370516643345707066100403091546926850831005068224119058627442948765150954509440785339635828919634553978933680218827448738365596733822410845092359591660123165390548331422074724839026851884095461530850914305724390760794631146606624833950091487028361436081010504443513535192247780358677770452796591562757248248956729092217683180204903530162958847282828261056654104262228572425601369040816963217502644556766341568473363452014648501637071613619991661112400684106485087235945318035881136361050602424920476076785322885946586797445786064801645363861756794091142959595509049440466381817671366539284634031887629719649756056785341281385884691453772488394093915422176546858576403424004337114273680283269027409737327330240433507243816741583123555254825063628664164060287713069846886555901619391435445463638434288992928325329990851271885684781340268508704580801168303501717913021537323052754132104957623336382042822465450020277461161052247296630996221717843790497246049158021454740524643175078786139579281327995735443743772755475785923039425014867161671360617246131594148007226463745628303902038559033671435937412636229389680544168266168320205488718785737664870650765608279945557941870802299386968810719592346216996387148682325387704049306843085255364216046125011290582867261943206889670882327308043869399172820702829924632864734316592447372184812092907098534937747043388147724741923596852797205086331060303540717405632181531770190040535946295854576785723856696652290547662086762886212470494186587998471785101794983288214025931214997197098803656037417444356744285869045700974826425906357771615839011880753913873786928756205621628661831901406902479440022827771481800954282079590996671705154827754501031484939175370617843859053927803029147099907247081942053611428482305871621797802226604581015385406605197644143583690050723672504979390503053562657495017259224722769450357862180912290364129929226645995000403006633690815163172823903709169494811318661039814748341760295985716795711620529098694508294023172272499336869936622706465626553034774652581969826969552369203143037361000062930429096805381088592303875252452748935476548690511079433561831723313057482109673492138098532540612526815435374200380254580576260800967482794700828061161973032397372013011392471559183935513597772912886266655164345369177730549899249756013590008442063934368745837768867027061482152623306542946298602965750668695196630091734137603749446024254980068263095468486051313324364536126758521892773267156321122544163005238606519139361350057914882198434574960684395291919866834145160789290149443027893014197132837906113695049702502451688741330683827314539977669609254688922016743804984842408626892579611869188324713551350065749653017520425991924106682585319889165081945778358867781958276066408816308299405181785471726959585091590485136683902943526333922707848324209713966422914636855681206046026478948744562301771441171456152261961406394976450754384980056990659108190358566266163401285051396130564161709674975254095379980605916144125006362789875919888406348043074941778712592590631579390152877810116565113497179423134997859804610198483872202237775767193892497351856103706512428604516010379329970937436427250325130510900417222084822332362196007453707400149571556773511742974181002941668409888939203238197861490567977635128605889658345730212175688882163160447599441276948939951331704655395976816452594425323485514313612983817763974235205620936388578572619012063727938239794193171092638833222925345882752487490908728258833653746399005993403915425066970529919702216164920589506434140235399376291035269410853472709125766271731466810474351549012516333771672425110973488804573265992213721509782202683146561614761556122391799735050849588391548557232075420558668736081856218966260247947305058218751505645781614670099915653493370798708919741369440558097655491150924338509169835914198414538633816123154785801112742885612098117799914160694171449367647075880345207863330816055472482279829414870834285372161995555468118674448061778941604718133192644408009841983735185821366388225830419697861843493082035932101229895147289985284344621483814858293888030552367064342857699116645021683572763527779494797577559939396630535482821840565799140714997370720676320305475468506019468336350837400868726573990859364336952560937790845985611555249234242519491787095706567597002229554945317977840479161931409460757767572773780876229659813370469612731781118844257961581042853522595496172455251026863926119517489967445497471452591818112421087276155380513722919115309159498799528327513736261558979076072611787303368942720192543335457017991934719957086946471131423401493476317653807339786941964476385626052559722750679992698251783302478361649522348955254446629869020873291293360879239363257881217480758485783583209084720247828213006748077575883063857632512346471608347575999213332100012385167533463400334175728176536300159015848636859497687732559493021745076674595484677616918362904262569193360031958751517950577280861514972952094175357020269720519528176456057049326673754831806883772100416438927240439636000927012960167723197841755737633091675261918699445166755790068187523214082014458959490134796384725431575273166464591342999933872595031774162341691262506770299389583388891966964820285892068458257533755236686247935283019187983618170825144246446887388487176566932818035536775800073637000525704428139176342718766062470079249161993050884854019767793713476431292951338707589623865755435485720633780947360421614434197770485947127070924088245763935887431015843762029783846523717313035457135128275291186632534492248566925825935363076207264753048588155950739201613213651594818135737898092575419552422097445324988169573473924168946887719484286823068281701024654723668001563331771804374958738243474509382162260190293963616292570963666491354091187874759405819305820999645129820014415481173071810537499951684994722490199999160904142035336030811862392381191679470184747307150127568068137968557345291830690091201815040982324628760362650478011694115075165572472602059496502066368290899818498895026856853295695822510699120536035041966280149228422712771213392207179815218814355814220768028937089040522527963936175989732322108742079506444185911547723638108554544622868660397518243293169024008727120510686278716160649690412762161859713109988702821759362053857396368390188658342469889173650577668167836996153106693524666799097730005581103242188298571732665733949297814249683824519571730548046211822488940162270585561191474481899664101610670404923627649909744073586579910566279429251534236786316968896060141378148550504665808190762353895975680423176803956512961259504917772192848210781110282082866292824731093523660619676250804631013095050372089169724773798211514204374869568675499762479295172570880079022798267276596623674288679251323287984015698605454298219252807319622714342027603048009122539646787720389301611528810751244899917751056623823998202530863504210033228299597556666537993200638307022500044317036706680519027974291321001831409649792321120298550633859179876310592868666874329429257528434104452635316617740982680001412480194117775189150588790166458692555138909104936616563298094702109105910233068057420397594294554886292748681872369016264558869014239311060666647396082288782263656600740273764198533641390446519065375339318127049310367990615108354418140436303235663820976897166458701852560161181542847379430163245153961534535613230480978818711515176923343836134708563172876506770412518116884224092576588676853342227674849548117789556001340873178638896506250798299670742665571789723485033258767575045866566847323191244055923797147671956466959368496237842296889703292037497938193872348546995010916225710323316411630543283014255311200459537190453107521904815478407634731725328926015979436722905568370577465940876351654828095928219820909294562584068506337148735904055231398088642348358211162102709176148736222890438773092687071533982203926851715145352703589368846777964852948021388954461222594992019231349805066746568779232586494688223221362606539190557426280027174262560582360682370569542612676261806141533555302208727179162070941209633749788250521741621324507866884026329290839186553231674146694437879941160179306751922459351262045606711371395981634618437468212474059442686353670087860333310675778590047685908851354531932971269243154774669058035690660000390856194987105006079766722593292942675483323753167875786509772079510064668691203692594812278920359911882341042647509158802441685862180644078573780269715366124114405208229932147046731770260329773287170094085750739001153654352731429675743985758461815753221133755792450765885680663951840641282017477921474636402275207742637530879749896803563137176106183064306092259979909024137716880087050877196177761270172352986964682953475235427171147871866616135924915671998806917504953605244206051415481577971706054589606093106231065798586720597046894040499221393938306617359442018342483704574272628114453923879462178558387470632961749567919392695315633885328873674211127541211139959562193545103773057183206048451000755213634200851064418924608871094890403673253769422462820828917301975596870834820893611183240711664632232890360825011922996580010114466935431963055034455236111485942337386312105733511203903397768206005854314745931210681910078978975733296284337350677562767556679117001321751889175147235640975682813722184011883943421290323517857836794805557311259028961500868864076920671794790953732663682024729332498396070527106836556756272338129263380875429923433128857187395048199826469960541283210291962268952112455565051182499042233493061088686434083122091041848639992281155399344459022901651554298097585467880915705218908785956961992761444428353095351593063297436361217171556545253565641578409959281551168269637931163601328315093620040412338276966219964033865147793192157904802453512485918901451408752353549015089442361879578624247014862796079581114957781300634473082034167187040639651719846853878275911060399289724873181508724073654156348890534571217534744983326811935520953395928700153142286134041426625558711368221023467499421668978033068236576689883066380604299396753605007634397510997341327175177965390570031363063569212783369876985142667056759371781167939316089616452819951461869455691262654546336144508575178120690111215318332299744217694056977446615861321808176587393036219732018006097854163262316322176581624365285535120371599806836348750003133561285615569075313048739274594043987464309617574497168156356656085972613697692351467481625449324599474377904227285572029667780271855961509280486917388279756356871881201521330550444843230491531050931473243539111289801384603174509388292873738850552301967121119750005316356227703241606668238454646330809019754679573927709717348905505200195647092041662274698665534393157391779721588739978984840493209252568406883916402928649738297999051179395644835632714178422133007022552955739877312426974211863911334501402683132161386635761185524749926096137011092768746599708220827993490139981964493206554482620317236356823578718572273171660473249921614375746043306374306365921234089436882127516019116719553107971418915991515366218762645092041021367959899698028801407650600764532383614395750734675747144272847117790556434638065147612071259511570542737845686558665985406240390319848428025705919027212086182440101993331086747602269021315444978446673991548853839507161564919306249868443005993464861653608856124796648454471882185051075366392402904252433766087372527772100553855435316619335386416620898087336623383817866626283075756089783977151342617686055117099481369490189537429145553311392693216242718492099816711119176202949013671165118818723759862535321939946846702109593181389290977670735924892819499526715712937116740192460129811232274694071462777186937474900135142714557643476527815169037462494665568125247731703314741427840318722856854468464611927816018177977504518326051568642563188769416232367255972464110477815025566045330848311808523448666459843705236397107813774176596020609251052176462245001046292255478817872663079032484546194457500421876239317046767043033303269909051493023705941864215113784048617628686767078931976530717348831165020421670424862793691320672132480509749317742849330424795585282722069873907887318472303637056365900932565997093104142253380341314025655354432247340992084183491114547815599824560322747222100371110631494807673181373170359249818188295182995276723717178248059848511324194632620018929111442362938931281645912586756197466252818076209343517177283847023653761854165916426077507794132572971129417360832015093812196417844366366178236254557542450526925790662068940159201445766110662909053422295475069248214209022970180388120922513888891648834860955542359608167096017841404408256217171396334019432801851751799350393435134024250230648879297257679949926091138429665078110876761774708508883514541583704928925379828010031072852230608007346300540803662897776513687037479846020159507683619316753281002066393904966660620061129618812743504800126858995940261772565023880929382011971362816369229724410611355723105693039839851050879417590628085330165406941712593841777870424660037521112956340288401289805831707000950795215447585720014728364357102325219214833921624542840062822116258002638667327476774723292898736422131988250478479643619965832450179851600578956013420603538376876907574122087802771848231830686885902143902966542310617068431197585229551008463241520805031610339984749431965916113583600600801129921113302105498685344603123387438930014484977608209314674259058147514508663417748174505529584582578298687808505805634959045907242874107241125129549961527025064763045195521892274728525493663134575287306133386645365467970662383084405603681502694360248927134096050953396726668490173137002730528851297580099335440651114101047808711936796302665633385715859795756988743436575155184579577637747945057437592288718278120732548999260658124000821048916904298411446896694680788474236772163419210206450289955577993223138853318346053617980373692391135586757085160936635919334747015948163509798085592676565829206217448799156431236981145486869410043626809005903265572314222362405959260539911450400667554097116693975025328763058286827575105454882796523597712166901405692928535085001491567662131041865999845006689806996735394992503859109924630131377940779578026630231373983386155131096668126098329883382212309238737915096685429327624028330639012337897318507715376051490307448464639618533666996874140152174384592064813660957763268863977122130656789709715630548766912344480137311487715729489788800340513939846815290889646011516608604312834623639882130980912636699496396980405169156648573190972072840988537408018038922406857104655418090099695235738018009530894063957660238873448852460029350809659478981240523437822175302134019918486249621057078514073375322233322551243606011895040897993701295806366585314913339139963621864074643557525598730014056943809662100107939560597783236524890802581090036747487540496444033900384540232616788342966979638256565018403077177543823522224100181019875156773113420097720952820633404759464878476033039962178462391496984218176408212812105838821857067462242039554912565237279535893332510255133181868187312978486949275501473437487736668495595076512105098484667832594894063050431681103684219861304686193447324985804538680515492233311887931916822114678201376797160680988141952285857284024995772874803495780731769952884604933267994372082769968348777278655140991287163032694610702014000141062548830143902640346050810368495166835091783151356830392063812444806610288886973490164761205675072428545813660824898110343236373373912791201561858142356546404726860878772875848945071428780785779419877473172285892014566256777713068925087343790169027349979121327227744474244548574307279486021800055779953381699577244831747211832052208601411175591896710673845602368875796092844964938657851014627253869975524185108600125748803064933287658025837405139093051974683935423766719372395175483467279190060002787790154149700897435732953386597632053610351711498927144642681659259664126332198297479432866995241795938065986164950910329355887118438396752520519054316557858329613922700420258398074530447469202154204633979681654965499766174891312939706558863303158975541403216981128827911085760204528030750110968350152984080670776138445403395283574574883506852891354464393459422454579683974110044870290782389374983236014789409579554379513590598007200813556593663449083891032840020569887992607915946344737920350379918069693726267299033477692022950173275962330834483039730400862658141889879987185065722667992505942320718060308410690119513217426166805592660021031903784156001741935411138215307677556245775976733047577849625220806289503878057559625839682976421640132067553092389344988351361989249149448586986094408766994154345767749864136340892870521057547010054913480918507736641130814115388108272224086080153359856530807089556952818869600770588855003628211081622207616172677126730273740111569593257138982184821418560096060843279675793049704936658000819158080549103077583877597794982976577250862170288826878077592473366620037585305423545459409539410237674727542814494415723434081995365255434471575890649668169858018067879349947690048802957533593457543190800745321955469063133555958819431061003055424511056274130716060236421025921247211373242483874461451902642873604888073273328132061223595933819331656313154821310709778031796202330288455039503674712545000051938454486705500076147720415154698228632684298985547241398881394389951805127911778714022737426430090474123676797860404083127306622036280236584532507098366760210946211635984270618815654410363982390880303180698022219702559676779428945854842530046241420587590666881626508204181809803445915148162588570650952054792969541363492584279579556668448146641111236133395816819243020996908705912560089915783698584623187526599250474108354748465557749699179108954899852769172439076382781248729450147286144297729394325745951035480289029957051455741242705730532661349679944753631329483040852812484280712810059822568620018486295666531243526129803037841011964336045577742728624239564185510120987042878541904377598482771081924049418302148888479882326737700557828230457450281412334936804549110540529523828617527337898824771118010648339598041542990409941666014561388586506757172214928809301409506196269425815437059297915043041628131479071033691848525360446458292303225135011210019031178133377781050467748189306776737543385585215507672377616154875323526619887554449078471489078435915341748513075652092243162289521693076064837073084135416620647476209123761601317505336809156426545433549717600260414698977181322550274576801477034933891809876409624995624333733878520857710252586200781730640843492392204652470798871817869428872063295280081134647187206425989599986882337653609542474783631908972977264086030338449353801405172768310218719768844016543540044834193114250483337621958747447455611693776940132667281085166302540005396356622726736876354702153304491198250734420890755787794989203806143815971196563094314114945826708192175130955874302144619793627832805236039105576915489755013780154190959422588189605807228893424328687859651904110706434214628297144026201145052246485121209585296708916598738423353709880983595821649329691129052336469436111195964092742055061017650272304440271404234932148299196419519887050234666885238003195758382688834895328483146275622932061236077598532098074802972195575334864308903523618339515748656306270743477019455160766044436855266921273319070572621540458232173519058719980383399835590037555179422850235634927742557243529228104830168848760161908742698198550278587887042205481213193994136314178507071266374876851889267185196963942296679163838892259429984362147119615324049489163286312545467210565846392597811663837850210767130195203734542881238182277875312127245175773404868693428874545771510861948345578953458051149933267056266969275130454706069098955817078152776429155289706256622288270087148859396674466641211231194763166538988207253996387529522135001615943440579056712655038999040799393862586488285106157238372526767296244007644965700740520356960004054542277155115593978549627430668060454561831063704121603637867591596060939949212529518461813833559588850708943529620598320721120304625036429731849348779244490958802971288628292825910226215211408414295477323339916861317301456635501756446970463159407804078846227969126037804378273287749601112918027035571739656921082845886435219915933604057999629810821102548151745089079222286467968051955526436709972158466427251710864956472316824858210867020909901773920789219475480996145141039754082484612742451144526033200957981723204322546718797034134866014796259509608442266211723852725100699671240243355191918484831597985776947884459016705951371899448666899107247212541513028813971800861289361163880519290835004695034638414738740645643003097801344718931916766376655866899408752143301143326687298387324274031327596777089432423239878474447872019950629618335388121682745598163951713990540489266918282667474973231082795702341765051275979893021591507625694454070838906347154873950591996594967559361016300106212662410403240922949112171108416366851085242348449913573847837389481219903763035799250271789704730644748575535244809325251965411309688487708683338727769121845885228585215978498058036784939360834420103865923253364078030301772543147232825732255403653723751409459786532451897175169390377479913739705423856289876989634280250284834688986983766076350827719336992637214027810637917437255216179448049463358921011002269118681800813251335511991717067970425826444189362914168157134999109757195057252262444862844872987573995767401948809374712064214161179608188629949964876979781194789643162770357633794914467019329281069759936570591129952511303897786584126751961471016515856177322391345546761680182911635088067485120546074959296718831272096081597614451917841406130553436454252134322942729715736659076357452612575709585234471716547638688068240338320436341390098078204143837484027823825214616523507890555774219565889069523959059885102386409081943697599779178692378034866247870461714421694873834402739007834483552275943880835776888421568742808452246897930635816652289408635069997351175951794731178591086628699583611862834030312105336416674580598672877222588352518690523355629989180270358742496610393662360339841250316578658919681098086439681507745476210677092855032409224336676880109221747451280458519009493690273843086520676457791446578642050777756578025479059482606964909784448954726637221517529168473239935596184855432250418667936651482101402816623885850104129222015820174509627136156960092380403106474787451920685774307722852824521578155872605522633373405869511341547086533734979539179742325835908884239038466007300034561318801744105135982017143960869174725487466500176258455918653387439473039073546282619153457219960267625412867987559487206708022150180005309405085228252348674353225721159414774911853724196243282939389943894635437172115417113535234204508196142002834163744843086186162949828325667680489865539169178973393279921245968712038633452701428741308648505035219736949788544119485459549215182072489947776525880019674107047457046083305023612037586428386940932780622753480921471201061116304867297737681649908319146156101454492082107463987083822144700989387015194202770708855839431342411396627169263126221272838428364449010636444707811608931159147560317803304651219914004096297327710042021477804780681633322652806760267506718001990519034591254829824899790452656243295064872888948573736804758042566894193158588116303870241811951683799687273672584900973068123651140781550631114875502895359976244162568905406892590406428898397870464253148002921658071299391985184464721250338123518403754045330911092787787484960536084347300239716629395106606125672690493385237807213555171670263193610791962557296176788845052826842501501662072250079797561171267439979498648100503913348227899529156178629980152893872045830500857601675853056473773995883167986716776316979987234255552177395820384978821001877411255903367275844071577280208107142663053518010437683263552256109818697054636165685066522331326384202490664233528449711938147189114444022122184093463455376150193839362958965189266710999846128089975915309752776286519565551009591466695746457436759711308845529251658926293473574658799671234119185020395162212242198139445757211550364785187309684008700998705740200048118066363503696270753131095173505480748520013175128865387318770551027586027228856063943890417452505105458423537950967607980130523132059233181926948973865996450231054410289357520354961204869758431025758178280671755545669002547594336874075373232886022719099794007895738853211387930490919551009683563799263948911988496744548291470452682838570635654209396700028354458464091433371165904373920095376604588282375636306336290609447812807680030120385699075948218621703257047800647591635503971224497289927380225098559023641747512089325539409507514546982045691003891220748445650864771897217094883256938600479543793243323699670963036320842035716279214943524903990879392795419293713019872467776289521892689221906666442840531172053417337056142483515845714826045332789405078184965453375730468243932123488643870067115075669454357507163434259903815830144975367346843515743633689481134626374606732978602747961472940073046224678757551417435596720609452031340607817766005966329396566208509270645282446264409030749824557085415676344303004521514741347424590081549278474313527607971367867374872900136700397404451981821354995976899245599294764489723921106051204278292776284338574199573108152395130706069839840376848063389667720216588927496500209048918247109613593073646916781806551851104328504552475309782830291904218721957685479752620482586778450958992828798009974735314944726460251404729212937239763850706917613356024312734287476774865486660191875715959478114076723176011916363352607232849398006628835300050669886282194528340897217386446632356079287211593609942308916929775075848490734190308811934650640374307860813396896050387608187879699317472509716117627211587728609371551687145961058444843136076018264734793121049468944103130184668556616209857999213206963221124619594600502749153530134280101303931409777810020902992463759385674724914273578916866630462911617544559539330052805034986367597835198360088279966975799882027274234332340127453585813561760069788239078867096874008714854459627833536706953658525501197270744378557669630717152883980301147114367743532791154683749945260849172952953405630800678999953064661199318129321442668717552168738537972065756989881289797871117913132507370829794472247941660142824623483828692248264450197016178628942100201652099419229231534047064171979784730181831069406945887454767386363207284860881252493442124290259294747745201365625402580004601038898246105401538780465944664406557115677003657481557352923345659284569119155951666443261614244854701163253846436927104877631699372905320594564979084926599639633091067675172510374818706039226032778855260593573750073006997306594026888322482396147009835326545038825003186322899273737892613813434361211711048226248479063013939796112901048570043263952161922511619064881193507869325155375610044122966166161003734427933787127739054446030331601722789956780967485648928005976223019975141205592263494294321085425139750838052519446905768466309733082985953016321779661078050416125378875749681804040713157673807050238684215100858113778710858802041963183624641406028079503673592070701858739871465310115475615330961572130221445482503836569948602696474979313132670464727047063715570268418561122844468370200686928172842857168861495255829676678150324210126658637857238717991661323873069792446765780593354809721229663930123492479391057770373841788165318736332682811337898916652978270170671369678494785050775300483991153870704494692222431767968757622816242746948543551207223272826900109838942412241984821951997236765165417916443955756323877922837776065465491671128032944155502785622908544273337685312113267159979548369194870920496606778067167656261198383673215078484075698038625650264273001089758307901176505510258965712354707873842212469387458068586155280331742695450640754084363505965972061147604093430527166445693889824751208709822988984152145263352918177688296455177295091791566584923080440991789985648021614443688249075980541593669621022087502857854210829833769908260658927991288339110739796831659113464133836231599177408519763265005689696929690443876700151268160587701202169489030295008648323746657306011516396086865780753858657482966554505591307819711730951573039108851181567884853019059139353019180231714610444319544767357154455706240554831047754510419694551126795497030307424838403840302740671208617312711723147841685576927092629222066560393358167097269352594280168764120937775609993888320133047976132699868441973175364724159305384019123639139019242624981087837361744958446769841211092706946511934117323879859347006225570616468307992154441200783567580794067639922702575586847848565346927294003745340807083537915227839838681935467333487262158446573038240309296294554068210031925864587576921831492839845678190001875300319326956771621364763427970539529334010684918712714288449948538402147310427093496483932163544530949852047266212372284374267295386287229639788625587195741532624719337866443723186701036762602629850112407558510154992678864474967297783625933879474062732035730219632692560383902700764680667626301770309565605472765427202650399128200539617632225197253500303167966651871432425179372109287146095423165858939573957963068740191334333585171291103100950324782016726239790662684639144684813052026503067292061463075495409643337415061585628314552812060596763865838399354120936450577966616171750455930204648273881644137656925465927104338567982318866535820045256644885304037639234416128374817507472976019322292837796825199132784398398216534412451494367181791104134606899607822977038780484207360441368413753332306666310999211509667214101431802506920311167301879113034901324518152443145734708298420303910359351066739339250771040760342635583302280543050690215894414722363670242600921498709723820215385075563427537806194627216946356871052847877365821323398904108028172662396199640388561887830967574266796585711499480137671937020037028006884685405306114175799742922047583625740100380958260855808482197246089598502988572747999919441689545480314220869679018849421052601971268195134304612417175107846491169531030638476128119429190380996561610910014123383708919961331442828442139499780786827162842530896757579573373913739159655265071554635713397891058537843470852829966851604353985302258033290050544987152956634282920569490128597251705384373587220964300842934270127782376412455171680562549154481812349705866737364795104841876317329254467844825228335703721725692723713594659165566343950122462403638368960223005288980175221458718216624439753043159365552460008630926016447572762636562329751910759176420336282706286368130830472748561633996234038311520025408234474631530750444259740011730161061819746731352259587562901708090246199585058113221703257704830954516229201490187104933103414604504914853473265037742097193055117266738125661294107476893419773750634044988554473121729389866646960348794249429212206930720017540982698763878125750518820343310311422907750458578533705245733201649560103209314526481456509560852840738076504732671290081083153178497086600632342500053024799302664313444537569438144018375771961795223011777941961277233454458627345069669448957932266530851143742411989286729757696742585162838985591647628452462298197649107803883764250072414793067958858586153510868163891772547899747088637695140509337800865407378803229740672025838550002897359081325920023200397472818094753689208075042753307027931463405470345701667455636115266283792820421892061791123098474065954129064529721470600756698578604571849375102156585564361910643674837051486342526038217418392282933125976834214752132425091190123674769883035519645560451553054486332614838496217112100259865461878928375673753926648391977363860332602447247892783760376938966077929843159371289028350166071826062394182535918126327002476693486717391488412597769592237694181203964914576477338086080157720260690797637564532448832589740781363023511325240554982104244590792314375160924381223802251997726759514661461232676818615983503344818668653624568706286125732181336403270211804823682758705910320303735686448454697522612499062599118158880456840214895297174366890707356708412132990268501812180597118209746206237491160608235346962797681208828373983567150123255184563464145109990587080552325019630972709656768993094927855717931320963757626293587521203916178917996208138869190559522056895394313805004529021334155421995292664928306784580172410649716720091380801635585407096121565479170584082379532451932136899428419321161517980197167442871964482365625333122095180156078341602557336714124700438505438718511510490762523834877400446945868820778072232719744419970888627981797561133787732837603014452122055139023973423830013578482755646580938148214367798941650644889780282866666645528474546225587453008240500438394238559899348613017663148458548608376610758752243196159934955381319203403009148184499392925801224554287620542021957263161498449607722730958271452014584230170848491833431422350714670112608670074300471060129684144463742773031656652889548718610115811595539741071289551998270689804065724831084808343909224143173976925097411754530506955445635952433711215636202467758481636543532721145246160972720111002656943147831738947162018902036665925617015138277889902680306767775753877231449816753653594486892172485843836728549307589234881521024947743978581779256289048778116276699151451781822498981365871175538093846936152979548660729780600473166778424849651590798565475291327506272779017149836734295266674981767446318666182768830900243713259160689279940452685218636415765799747468474029353020341148759694139948256928044046454036265912264425649422500581901049123514705224220083881769835470345494816935215813436626464522147154272204299089735585769724404943835310544584145252019028660665924894646052618612706405084290139957503142547768366407863661781441646946849668634500915527680804018089267132376338093133319400509470605780958890715163682805916689942196015830590545393736911797147174817983601656212983336949888588861244875435377178712376790823925589064452760030998351156959246658069511569530943606491857739759884628209412118034389456621210131185253047484085736696626029715528762129080009866282322851297906517900021294677950820699201474799291441300925940734453018059037054584057690561396215422725027128452019645707187142290985672242148864178466809442839477543485307974829492794455520169113213821270162226380171985796106340696151647629711715282765569042774727301537847529721282513859299514251480364608545703281030613225216079196581283056401422235462838700446569727223269609327042528236466379883303821118506867166477975549862608892667282030238407594502089445251637944649823252027978462412048679160260113369173562226813487306655443722177462010952430861660244049945462728324963901302989890315967370857770213030263263080311684018427760643574253785734620661337360630807072489942169031360421275877880677760044571926769088546579019879595985490987429110167014724823478394121875631740297102583740594487437683012084265510873175413437681308107972477478055675769966946019328098157567144234919532098813025365920162130393945517520349580287049291835477123123213046551212700557090152219777863633527153850821012172864573817425426659758803356143531659379936376624697301054843297958810973919453646519972800361160543684381053515325840577076279555577379750190590587890557829626263935042405206722068592333399473468057899697696321615791911981985368727075305035858555018796561585669113534424945857436989419359441946083173373791452756782401831507130591926194386893822716540792663195505361984257971083793150788211423704376199319335197716873440853083050950314622573704741820669772277770468572554424183875714578901529814404969836738314013112336822308634104194804507021971968539116329318185175346401050914727280901289203239869705730135132792663917818843359363097758105993159703738161618040576533153620698014685543085944742020864512541534497633904272073371716299634344973049696074975104218427496490342186601887007784059470541529394552291249249641314710347745979670085652604855747381832683886416699477020342449077360718848271710427067782372026760140106898620550636135614194567821053017136163490727418126235899378092668836670939407911884950964120849716110017512068531071886320646414974643772935710873284008583168914451380318011395860222286339000601366594594572181222983633574914033893704796106463300812831798572480789130733534908236739124218872547958501475838348333154018872391878773077804604820417249297369301114882732200598507907905325914183919935758190833275567555179893955693221733960571769665883659482293985458151583576272591388119085951456384618263759601504423544422896200593519916095967967183400958331371923350741809325040813200652362026727261075216666020007971889867669203338993928060904316534978543479179764948586687410539291875477442929051224043646974731209664428877098805610045650073670878684490211442078337702295520236544721124120898087015152760363805418282832445006006877142180819074470313871094778465567724656750878162207538257685122702868352679410997640199713628535195010004397913179942911272145245538110311154326131871018271654688676788640392904541683021695867986609042852433825699961390419254809975411617932626211952309850151544070385127744202897712051359807141826415128453206124105515498383088319464544862315160593186636301271506775283719291196805137373538435572900638653733574903295872757059081560519043877402172119256825937840636382092397526603121235078141049340558389634150002575867872296693181374568115146304960194860648236541879215895927060336523901976294923516646169836263441964423630367492690163466650076452614403168087837833047168305018035709457839145530356255246023282687159982606556864898478800423399407710366920095351130226568326684402507488497361259892300152668275821898646891008899976839106856560432743077745302497024528929697988264072286625316500525254327902720586426426077973850122675137864633901116037753911100463182635170792526432157634993400518749479077766838996717884379851027175781868606121298656834406399160561449285268855579388130078703794485425994599582896004692748113994873637132770921657573138042347757502016836884163344787543533219299792807992691728000810977614437148743335068157861530432354000374316974260055378346094200885160084372924438954979371730637019913368329215611872188899878692924152361097191415454826065014761036639118802608395961395650234969269279979467127571308844658914315325479544235747543797484103623099995687169485160197223889223166935827375360593880837130281710527759437238583045273458043514231411685473905869279732797754766914715357499412304458749350881537348589836312298869362274362679173371260052549170515308914357352640483015377096960052308088436079509855936585624476795651205423319527438855110728451114527118930098694804023488530613950568750552681028154897449575362118302107833733271195240270475088299015170286488972204338544485185649401385907398586765280419869999207912924526096646249091006585857018277091506607285578208835533663807415933504949330390003453465760888320342109871308053640485250425967826621938514473767435727482057774766178483766550660911399581181117247127228787560070875909704598796831145652756510726789340273548648820349926229522376621419546791791872274497105261704236036389318600370278049495158281249122840944636786794351958991287835605229352954135426501291143960015125469771338433767558869683394407079073015577154240954109797178344885955637041222496090077965191928889377299825680552051186690407123941332373748403927360887467565443823908428568910994589637855536261914296381319414566176351757914466449656274291520045243977064426171681514379301411417661103357087951370253747998021559211104466573802476633368627441757510278701545189359205483232071036373175539219910333759969274175980836404677656474820224196507335257731899880431795211153726844612633604101415514752062191779395206711910779968686702413844599997258735820206472715614120881544677000414805411869618930321889346729716093448201235202481775311922362462355810640973038076985110795338592648747167600741191186443033279344490443552890109968984539996231075315388067851010531417196908129026275719942258412345287259035052229246956011887333960617050466096364621694173819254205165339398029210273807903664200201190860868346167430421491152045852648642148018861717727111959872068494765608169356922792443402423749490486902254970939161610380039026486425806677005552946388766307867689768843264197134671215591659387254791481453530141796601519706135347479556384360423992078118496324330874236797343263148756972464832794247825201729919595298628236307167851308628536729888588137163066219438465870267050830139092323622783136460580286317193362608806230815327052755763899591124075254941820678638937847271475260639497116824352247646094057794993786515970128746273778314358584521832250656393175034641155108684639216188026932014853300819694469876411994795239616313984340054807221000842355538464476044185479547370386761447272079919807373485725168348225983632157301553336617479230591335557389924246944657984110327837697084036111817510579477421596569828213793092721029772500973221642314242553417880325019167151369912425490016385169263373514077712539523627464861066486512635562464026561514421580522832579276260964550877995061884860766847395098871815825393499308140337837742779584060910842661933853330526084877429495059264010200155880307751438344521987907934786447351497619976720588411785819363993715115429676479297027631058713655738522048466465208743971085672708420588917224631156727831260691107941347580221556566262843961025194077228298234674443768625518087250575257490916345013619223541246527719123530379568321783764180819805253125298430339394344953484537208885051586325667778693015904527083851067032984220310403766749574895180267402413706831516302679602179077097692939438265817867313904306183903588081083325867868938073574888799082291427918775625998364014299361490900165224407796419085256551462888302123042794709023242252097215730681520354222267296372958514301018553901422376936715692746337126421057006936151874078886531629738747917780012346507705336620657220497254492560055490189227268649078677490291635956261197015306502593016623339764413401068741235386794292003451587061767591095481783672830161709830228875347005226492659464347755808490453537131708302997444073730339983352867642409336317015305315852682426751495045570038959584341631185631899289050973804985574625291015190933489170807140491406779330208585311141704404626403692198104670955732815331224815997478769110003154073746207890672880054174461559841306444845111245326948232337279560041569457857526008875706182607160883500556508253037387496023610912441013669872518063729706521514866213155899572222974076329494058176119482248134115947506621435318782097438326916041267648764894059595472948491940592178492434807592398732588435693631509352973682582474819879258883765423120005861216240310375288144695171562630275915257939345429013058276076870587817701952433287348488114950721549102494436928855469535788516405309862326955756017000225360933254680571345957463548448912746240966975905856699993756095138996500270133428004730644565940679098029912888535090105722329386845264360654990491211684886867304475258615653946508043756170479188562827259163494413374542613813589796335056964390557031221602706873764628705486119040129007854990306733749835612031620689242908089181315378726083236504019926330924814112868554721206690961709203513161344291369667023116204082037949663951869504199905976218781447437004935717671174163597777821237672523741121653603643257459965101916603453025682411617274898024271467475632689486476519311638012554751620120834195392036648825927085006164225818747190664882812089506705020819047597882805123893091035818141006942849519725759819299809235385058068549059318255119410661781112349992192656736588000219840323080472817187960599563389744479119076875223138418354191207400811904430545148155969803609066262201334207380348080141134766199898747477814420532296926607446805175610730557893729152122832508550901801131166220696492386897940691633068939096953857241893568291420970074649140615606977549682911457451892187448258478225067359759422066817421875871966843697992113444660126280239926018556737799301152843629710966136059970383390830139271638564251511306152577546018412379413109685208932668137424008204480096705506742937640313289506327639735277107735394292049998903824245726523923471009475165336825479441930267537020181156865023041168376383844155052961345810746922824629565120911495872660758247193460837254807659330258531185271995107338205615941495048627809533649567156450258642008285545135622550451097597882501472210458438488476484698930265493382176990413804478344585283297364302123673339906220380612635529696287066068408245967391912812882829078513658990817527296684714201237281722927621481282780829787964135411662902839374260467925110299304831718548169182986950947621941826429803309163146226793036355695530110055717972426203109371802564589073667609329150166546718144969218106839006569375751410180779230797362103200191005231066383671392196509677350470335377958370178505191661312165844774407538499340280473754440823014558158290158385664852501385625855089540749609824503581436354774836202425765607069522779152288038143705122913742310743133103651390472939051354216173503530578779632317760279384083571579866241997408813129539938555870911168638339693780076461959169884914521019520315301227147209654964050571798368665322530043392644072646741736656201314749072241485083777240590270649231588601983839250975586397283810278935972391504664884074477032608070618399386374348692428901148494433909751842738761708382258311843066483658489954186943863988856135916000514681882610991653634237118537028257440797079231750228015572385859727508562044752499609176553137826164246093953774557746991465403767417026348185890621502142277706157068853268503575448232532291143423016858000252874356036361608790802294454646366551815218906359986477606694782316824025519594006595953272410583672457239906363628110390360036751217043985602445363512264146206521017824092901733593746136867292821284014369580327609117323918262539816019050693122948099219521562522272747753306475642875025479375192125928248350932318892522770666798537742458561562590467977494325960106510597707521879574169316732126497275949569555051818950051615427823199611285112867775765980620749928840153400306629000259664957881531110829427474575421059333689816051181529300187673539342088750354349189193395977929723189760332219134733930871371847334959061910251661996725297024576633996656002334951475569707390980093209514418021798821731675110628129280762554817596560177987272237392957405456470322652932041118174086317281983102825926402691432918425186240087970738735934286498923936718103280332904289230357200611151579971944723407420199473884811085958049720783664363154402742185615620426823736475794460724874911476400160108946202512360509472045607139869033662437285077541714265222330832249075049416117246126933733004887890374605639470926329392248767749646145538151166204145985396419853096259935254117562128302655189108131658274452954696192170007074008871313909418058936873972868899716565450004294348141677952912812554731244889513921637328463814669441824191787344441542631752977494182117835799265524899113173623437580522746830761783035706549578176063023195065230367337233988969859034070653835773867263429740319839202542069312218551905964142393218376649579547148448304397726111389843077940403134918365609266981012840803049581231880431670696216599369732159416442652094803407327156996311420141022425950879722889886886190473790758676689809307807878832115824247618027673495640202436496112740036697624277855024283293706841857519643515922995044307035004551784345231734311264568373257421703188412027852912948819657835538862356114701490800597989384001701088744038862468209676260789059586577986171164739176004068255815440491999958011111227344379735763949446297152208184352623856861586173636373079676357917304998992498878115242476032436795186440524109273753031320097747401230366787404807464290141094004604103057055350163432948642223249617268025723227968559447079802247674912456015440498323700465418311649944216748095676506616381872173304035441056370932787846372528504696838710711535608630100669707105575631238436073122384369891666766663193249742593399421996103290021346025820464062520842195381188761923269865644391166481503555966258607980769127544118471874104417941952496260666732431884218637458629141382179564688480226750383268943095030563301082379051694156149242762161563201169991321694802616832261147478335224183645041451099401686053852059660464611604346813877191475508066788597983504963196531617573468163962485579235897417237374387620506408715735650716868842177889046828285529753648021301313039612859415812937836806643792474177667029005484074392345206048627817104688236398892665198695053697388967826256026196152241565111290451169440996072617808620011500052288312739733088299529177264647114380835546066106310571783105407662345140927383533152349826142996800374900571568801819450019524599962846906185882367713283557972676552504899071501161836718917020181011461889823886311415493868025770821915377440138875638518318177714157442001058663155160119759405502546368450568139856268742255999517189701512693960086480750607385520986469845714982528594217029487964378460093088494252983507355225505012596660431074218796750422842708647570487366872618358910314323391249867770802054135224021092148751330905981688910882634477112067318651094838621937667564911810839575368368535532124719331700285822702781375681056383725606654468840367209775794829964582032006763697754345761404248064946526740206376949815209266244080695612536845334745090460178232166632951806021891159472934752497974421990499990847839790836164105204837331876317555681221253544374534736182917492341504547973591400163708222401672417609656653089178407986537482477830454788329267794576313638524223437324505005625924042887768344561613963223737485558611314652895431622706992071840491052944716761522597305479110474730749871951211192413116663175840079592776787537980068362711168280604185616238825808052894185892636609095312162836183848437467283769132894140990464435828275485240422268666519583350920705210680708050290109974733094871698278500471784958023271686394066692948473577777733619714274044051840839272902177823250191100838096729288908718547126504924961382912114655855987509316991177094032547593372550984017899390832765296350457618712034736619671179509026305929108220606337914786458631924035027322670290285912594220765370617532224168974011858622475178813216246390419844077213953476362564230562516321053865698451957930311324355455455689081531418190990386204848309743443014750382511429593758245717701259268069814805070414329108570121207361564890701244361017125110709296546499561141490236847775226637712740794636477335275476481580251702016688520047490198161325997310831921454639549867617632499083899563571722752853354817204952626151716084256121384206450104831764626493862993355128616923036810975085368186145838510342305110985561715899286340913322033765215458295945573339935418106728195409972689197651934245147961294423502243688582968487676827069207149785426355676388360113895505829600397849726860397639119115343980964436128229738196605326865123693978348898257395538534538072008503145613467416248724090240324122516256425668014589932824689707982449665422076207003624313302560823867218212695842188415244060079908648365157776420798617275736105416207895085296664945940400119109638537441552403428770364514919256405866017307321724249997220649726071216054017293464395651416625670994707871251677575966805638083209335751176275402528312832925574624662415311459840042759458470294251789082372317866249657154265320625922406178828727084749472600133927949765454766327231858909434987974184204351690636538011189856137556679629713817211553581540903901877268383407105730839870227389281109744048892668563886725303471862143705078774250058480322895637330703926275153887231610733750157727207545406293356172957932911856014652265447407343547106193564650323034240601672068586324515624881444527090381370330725726250104244803507524884571745490561607617789845159300683601166662920043474395598542673470488716275584336652916341233901239192019954077109941362354792383114275150048532187106137732491987370478645579242709442984583397851386468533304286685658472085465808454724144068138242384515752359418094212780786907545133638480399478254189058990992526886801425630465998862525696952961510902186210697165226913408577845819396977366774157287461755928521650425655250847647504799135761242124791124413599373906673085285402629237974977098231808881991483778562145256472208058569231129499371606288153614442122166372007758370572812601533159695296847899963233887586568792030149117335147338781424628100137904220934135000116815155920731110709786553110834267832275672346858947874687640908844208157250369182613803020916241093914813435839824191449185049981800572117519673605309674627520395131612549941585044613909091681267209321553803039845302927229431718719419383821108152260338595774851795164859130085590001821872619739526061612860621667484176581446970685709783396875070563701316722213930918537391415190052049493221172284710078430744609398782341900414537409865239635783182709526497617174789555860602085285936081692445261406862428149292104225956821454414398975628271459367125554081587127577321233175262244053899324981626037728038954824789093675951484686154609312428059468370612983490047628473654144395592835789639751173677936058601595912958256687836358585811507580683247388217608280399170733722459847170723011772831999811273718058240697366413103314483559273879885276886861344801302687093152214174514128220440962738331167232402208467710996924370329758718583511564213724075478699978335767522371318476196586487699369558837633440483154191730940566509004294801564699258095240648421864097404611887492860161522021557475840782726942048366475843414871357468666319043110964470915088521918708956574216549670714714827173381864190584866895536108928923257915375874925386471680844069639852839278455589841173689601269523758639729529616146202928645067154185287249015873841305706542787415428379541051808145631065937480194236664938904929531228822609850134340210034573933180437705306474697679771810669215651651746884134438075887513165722435068877616367719058807190447822347641242406059706265259913645310261240763122473577341175176390649441307060029495124001469899869546803241805769151037547749101575884335494468744783448894930685551343362292148377283019426182466685234314633130584498127362028202743850420916953786836400407439656304657971658561022345813540930091296635369713634280998490316624348134274506650989119919914474613400564926861940064356424866893581322421375719633195459203430447536234878603458743549040303494354707301416175798767726840540355703194095413153260543232247211657454046617182692920174285546286975377795753193373217774002281686376358974391416913232579800057176238224701096626442420128431905258173497715084596860158634537683764160639513563851112727733681628340265687180033901905503282351894638506953183955080634592508674998192937710869915829337116697004126163380636504302870882345999870281011711200673421340571899072436428422628543500189479414574292221493196894608839274019440015957140757204763027824977315037500173792281085816153356865833125432238344997144120198241903394782341550779743230136584730889041410823715740148612872306167662408404291345461691974190007077218513207413761024319033051868058748932971700390349160915994078253075989699468798190583099627069395207665462227622181883940276469209181960049633370489020140550411175550559554693118013209390661537519137169676865787845541974567000442685557538933418758050083272147192808606760693332141947155064769807987730300804065616346277279331810935242305024672694633266446142621516477752734856290210229718505292608410298323118298470397499464940550165033038903396858977584070095764349834964584456596860899934571727468654218759392683118527456808026308198167857849153734031161515755260416234322371917565603232074189989776813005493518634599108674274983998991763184556492289730233583869601625592776822383592639976827841103517479296642764092200201970169385347549519827624092389093203036726068914303871727734973480040566449110230244307756115268912970276014729754242613118253996935172391933950476363249815702683355482290956881741010114452424714036756124308073569849406080118643129561660166636792534387529408964424980411181899033065887130941304956581126002500726720058019329775270065870092951922294383445855296118190319582662516932485855651302274292303631846800922032730206918788990195623238805665898436405656983396161950762854154101655163119202243272591542243570403289711403308270912202662159828093938168595365838783929603388243313659546137254251551725072130101737722439496756239558580459969991637799379250903128326978897358451118551232007722982710765702580023714145280447383630638128063256250712997015740961322378960203894330696322743439522140738171921144738249922473352060116091469898720632647793469077751218765914572542018517115492437440916230737993821437891424693650433661640222186065863170504222281471663514079036988929348261635845733552302989270096377756337052205809650257544679604041327519394570447037674923410578136955664398071704977666656757047314129852117320008981823291532849413455297058515268070913905757199283490904253468060051200305360532745390170086301305608900647894460243322877298945040971933418245920405055491025060689690445402358166241737808850091647508632034382723708949831345293156856432999385246726414538462976475931993331149718115205772911393765678337636072791613805660837994156347652264901887558432189505163932141939377457855382004449476041929860443627827026188826577794235356529490699144312324993912215751179476078233336347205453528537745923349495116372611079306539403796208478868432657173041700619413161786339983196205795044180385470913357699053260912512279311188775037287198921124578454336562600938309137932656574601637904454058734113178552953392194479398372214707161364225155222470496546199693655202014397128329637656452727531972201113318414812982005951700761055579050045538955478148452787577275553992220721603466677696185910949801536331602736214401466436427463415457406552558749221644594349136719917207706176719028272180229982414951727873834837921533699037586087461926276297582753183801805868967352864621905929950367498529406410115556807196593911157734551922649330899412167205008635524251293206090612451818914585204105455848953651819993521804653069303744222549410203355506502285251060341862605731822937058972013490802003066903323221564132721210878270735071111484569031148367945016216288683230355893369789696636946470687359716113121382809293423472278541864929264858601280999791640419791788051255395814171590863591474082558724856706181394743306504295297937945328634366821926460829302813958907278961417633217817036251989009375418306442494252563076221086620432337149702234719483717916827924182069172505062704687181086297384083239188156650056642455973538016326436412424766130458748242602822208267556532107197494533272705732697662631332506979895360578518027503082925039992390373914182337585040187030459387054468629885872421537555677801853037186062133620050429150418564899482908158128297065780387006455679507052753774414412462509276912116632165579608120080491147983158456936795854868077143208561391663143491526387190383547605461742189536183288015855471555139272141513504794605200445993469351406269264757215884029745041902959136373621005767372471088914494491421803045598795949107173336846163816831968717792769671522982118908806089380237172678741917788168020091459957811650124609913284832419782495871518196884639385385124212917653384360254851641738481695698362820840862631487104419415482194440817289170294106001565814970314105491229714599502450068399535781248047215807765082715483128859241748720829473898792163156619935845103727157326331557054222849208800265405983621169239261169231355370819110036237622799783410807680666591397763361175768168028107678242803622935875753982110383922460980555719460769389030506222655480874827180149953601621695764135789071581210946566292326652230646662003965101141728912635521435906100746092999690328081063061429447806652359300913596367820088405514827193563645700206814877633390587712773485489922248430542126592992144210599801259453671524588369997709216110574675802030083846774158391487932832084896455875899488178711192475269633036674089408520378315488806854095522298264766257042346085472436691046623915009287971347356707709423269600100873842630868215476344219308506400729117077349984764381639930950464299318829363473766815014099569078408608753345229019410377693226025568092095857089233960028160389829326847775849055297926376642708889370988787999043159181527377406314693458219770368975648088247897621866628916269927581785888124346214724523311677667854504684850460323174218144706395143721533528278976407119358476740627571036538370394397291615326749209895922201180065452297145268693695113961025799344780780537589937094124983741620519091342681767500324029111781347664076922480144728476415084744075029168698673496890530207755024178137858770314708698794902777960229646191222038498817348486280026246282135285995404509910647031638042677224906053350241762043168889713092438293447756775412653772049784646050680584725674089044289482681744979108619090201970254482545202819784605452400111214340329378933644031001504995694855607367148088421832936616434769266235152183428358246182265366869277102149888850554233880307444461600181305695387087036352355757829078631329788189675386825933665613222458730413333102659786287415436171485966520188320684046975366679458920235380021642894489563963368598980384115543103734285891381872531811190372773296563493619423736992925173330772579836732917590256215011779398526897351926626363051309715721943182384166325498888338989186553959207383088247041511981305190866535397400081863824422570644505352278878896369651447699922574876940238567185883529355599756485314595174261472477555572080732139523651205487735359802667915328476130417675244561160553363002408200415760711331496820922787673120878230018982574314162693049120539365788704864495702986568720224491818326792897518447439880054389763167639896669218563587173613326157794862745141526694022121756867977689404953581598644155776210227235136310530884014266902906781635226004595211963552593601075679231129489505997187702821749215876282611807687110921667966831747665190933291791175021788864880247112635160966832942771840463023544472150109318109285789309374549404151688483540393385554406970113102989824180523014250286253454764787512356274622313241311152478719707295782288785546542173020597484914159704763117869067181899479256876982996665577486934015679635125647475779307446668382728763502705850125595788044997179943333002111136843450950899155706467912496069347089504593693670108958892165683356469904054469176773437918138004126322477374661843432494353352445548859932010859953332636982584956298037478413303971224738958195429564279749592443285283132647270478928536663224652182296075634504811596944842952563905255064909912033834459229614310015983312912323369075196185497798601016491701568128882675888436529490759584212725917442808163529097061060264430131414967111274746430553781864044560609281692726656526270302571192660082404171342000096447009550635286410329586369306760772001701678313856051677764062785691581423425813099686964446225646160229773953411894682868984838997673816974647332882395945788875884276659780977578102232195705608708112553917266648154176478674181850318255643215342014760336164895637461971822244569055004163133089444763879310311963816064524061423724150645705235262401784415429107239136627607884095516982375231466236902629477474635366226444516254491173773348488405128547990522814923402368010112442030499836161186188895839423707349248210324881947346673676067323735328498867085513854582105364519357825561564110477362661402685755640825310136032876537417725632748657825486114294096023402581444488229375860703948056215216114175191401596032435669126338763810315895365309661493750768506931815245761867176636754047228043360327769761169612080197022718763310859126715729748084696334584588141956192469712178439051557961876120501429166442330675940932917781108181282769374964560651029320924608039875500394600080143689815940521742603620594525779954323951941351231815609450646922846284052514691433712152023514942833005518913707365549950380474785377774066969319916378824486319183905679628728560472285293933839689077703829117861147418112844131750044014666470271013137548829763787145539192865847935301964038730451885069218402480343058139333335061614122689353608052575663850028257846678556524272974911092367215442756105442263208754183528706411968758481765441905295434428116275298741589039519012129490296420571608434747927041955931115554914844891473894177483677273363803791613663085254729735760441799396849483881121541319545618046009455776819131573883037811421546941423545995099160241867996044070056268904533384169641018688276499434065228728800033647250175825020532571606981508715778725573875939930998721090110330595212620775276411105958355654933000516780187792712583067762633596615107955470029521561221267390066025121445491096181545109977390910432677949463477717990690738646649190373295951278192953873032727423957841227668662053596555472270657873957495674445040752863038439636417106387680415222003049487594093947328122599779075095280182143222665495600096345606497787534548638124829910301128436863899619213500300303469771656388245101643509718633388312849532807974708982446821664144330713133053583609668203985388062994428294566398062315861933243683830523409889863372284160357525953590692329595878754946012305443713732167814149450264860687562884059654340083585269302471586153802169858163552832048860945421984256430883533338542200382150922028983542234003045078614459244675168941304660251665107783995489709233377346086527619805272804902261673536249677908905190331156864291392846045615170597240985339894159348737536790616633807243494023057394793347514385349938828409180802923124661484306249112506293880877598926736898453555267585171974982559169817881342017525429698258593862698474240663813613584535430157438509744544764461146220702849462883971725346459127975085489546325210135944476391605772621172255181374426977682848951143307850540328771374584968024314269563120367253162590991690254061982573166925468664345673671426520942374602744806331653935962518812315286454055989272152072348697418220711919168200476232168649311295415122325798249571329356736230707295872283220669192961347603873962464154969217247028587147157199680445599739681576413026638344065631759401295138984260661322293103869967836134056011678413028399934590932201686866127321848617119027026514954012621895662457969446779253473404883359996072815807112447799833738057504378389917423873628687668960612654112778494268592250785409877089561468013407271704483210056477959180592468339513312899683617271279050636401334298888633660613999319530125594534542633356036738577068595001995004052652198997038714018616331939803314383739612329189661515445410204856087997560757735867679933503375287510392074613270021112026149505476443243942401441059918081708174100869102120026856301676326981040303204242743170368294427388144712579129887300813896317451920632598192169278169423074957497065201377892363004675451648196810916290570970424623568699690643371089680805163018703891325134917435584685740949673440085820554630413998266856476188301301244941769277051676304872689562371436998484416061393865891200250356265965409495237136659256869502765800919353703852381939187158236044641902723800405978962172241037068368981450467562826260555566549956354390995001109207877517178014810215273943083100274123024780302868899354679254609502756472683995860041534346735978566017747466915321917279724417873063366328859701989148882295815905884577367733852415646607442041773845889625433268172713160088803325519281317048291443732724260772125910475144761076439415818734740084191568693972430577289989004183931872117359892962102090340217130265999909610814078092178554305482186809757080718624150736937386752839322127516618240478877096663122116161679730059840584871785968271754412289383895852862485475983445532476991838094628514748032935144406078751413464402020285428229066891876719483759354284948217162718711665827988907321253900085704190547625564604168503308373126725185409368761909452476405968427336310320999832165236476095645208909198058368506085328918569404451858552907047758935925046182444455822687810459375921667887022997851542690220346858952097747372519995459426129194273154113805396976472692860655957497739116705010243609912552467552533382918247148490741865618557531943609798527498821522665793968787411164246252513207830090769870309858378285857116843798438738041136600413625239533496775689061368146905033114491333960868226990628061260217451225918941067604737255639153670496278901035161181984798542183697105620979523362706991108058049756592897800677416483830194986378014144974165142156042477082452226645384333818472213485376818644668429792421913004692193377371171080532622688894403244479828173314298063457407365871622119035278719574799625960760996361435664588779940254921864635951189220444961971936690340580614648449099127012446677133785290954944948995555903943309983534603086269280220143781951239001980866899622472635273068921780202684154631158086817704659324791745942028975469866347284565076624410238527506653180214687159112462180524883737530884172294432089925457378597212945760356573020861246067621057810387622286348349174942335655325095792372242228490483421588691338954266055395098472513847653396933367927236505410045140707298803491398330827623446791712342522346737165196665930588210778381087280994119585926805917864702296569049414186624742844350568199220418704594980676171054581993103345119135171563349273537089204517203917511217677834676033312729882530484777858550416709939327388205781464985276640479632370728245281145220478123325391305043557391087081404237145591837534990752249525616732773221733492382962074691853771735248137071892271770273462660246989165773557442869353363074899004901535383570784409509388662421215835539454656498495306581154621503760278554997421264265260333945020213643458917816867763206434010966457997068639470674748397557662830116839978190799716286037007026153441097130054409450883419905391695845441896735357784140382732878570388475217333336094066319612306826247825152460822313983783109142587788143510369517142226894820312164665189585943854832463712397936669732795068416154159825152209264773210084492544719658877125877475535029058469663061254849963408066926120061838403775210763552465412543852062207067905765049625884107913541943114009437244171055780907845559683112187461970140069773849448747546226218461642044129414398738275219011728566242432882407073968527670585438500726598677784276267045338448426834373188778161390732837274170686400435691976063315397353094439701372167981809775216478310009140782790867528797559532579781049610680198714431222919331776057955366018197323684034790136251793004708265816585409711288922043947891449522416618682024181602334906985140930823064959975743952060711084413071358641672539161773729648363114865296457285211583211917031382444508648668270212452603716072590996057889746750349236688493788333218768317454098268813023410601669260448386722857591874664295889262244073862768656082234367445896777957827029864605239355237552691264551921135065812093010239654854099412968647835573151651560874496625793655271513539226908694920597251647915662359087459743541303131453207689935013949969920904564826194438282480550347973587985427434245768111828981622220231890914741916769822268217058429207885288954231264366763855689934814901454023157744296584559331018955059451504577957739580861084005102773308171623387362659673724082768922043201611084495975220983874267695391573491274511093035057762903689166623846286728236478102476937666411381624011407945874992453649310697309311312562989904902882492976472087525401337746720783080083578856941203403025516086481908779691460460795544054553575471140000939746341507479717656577842330542168695856363515717222732711208398419777841525966265891921192436276411587934270451563515070614257506208981892590802225184882251622956231701547414243611266913941655878141131811054576782368217309155973380921679541539419092877150340473271414937046839564113183163071066931388502164565494855607836236703217819434023813315100869147809428560138609616443886773220548615459875312723290333947297820601975046695297343943741211994565532810272570948196485933631884953736614312340581136489215335391101181730727883742465366552875220363446933818753069895843561121779304299027044810842546121808303727490767501582365466603973978098055694505879609898804306411173085830108033488403474556586763638931368223347668676848805667496546487092418758842493659970774721549289110839585846919300726129954779785729832891219684917414000699918694839560994813389663351304457789922397057654542083972717096698158778676240052395588121541884322853635663620402328326924997856560325554699371726738422980256701105019902259017320436151454134525682847224203976701294551803254234540553300142944028173078907094654237775837659558155468081265111869321097562067158590598345266168004541947134850150169533728381310975554250826006685959468350955433977207607791015404016188360451527778740746458370612300754477414713894126571073647188122569307131848258210741269421416723103774991843330932502249786192928793579816103878584619630930749322520564562941236460298535952071930935724159035939668319601977626562577348086670103109892372044046407219400676086437970172189628031516507289208676895185524415999395440100354559523612182518636519265367517623939136566102068537011328579110339100450375058142745474335325958854035577114185995576693903496968961103802906301025571251025042202892936989731231170206586798017496321081335621297098136058471394288507624898170528672735002985632786302800386375108412524435556251704935885409281415180894477411642129139108782113337101233355903302296977032349779874907060878539167984411738013936685836623225731396062202548054348801086238551586764789664204453582521678140132823741260809561142001145957149846305981799535679102016823051999331251363574982281448200946006332673213618503546961998510676435405573429701719094260155596719577357252600985972735667207263516537105120031306219054347244737237739852723002796173003684371597427510103691825824878635106967538006819426453270992909055049998348487860028770043700694802064169221830191183896528404832830630949713474879614373153778446815458784863472815263096747126895818281607709042318117493283012971360623427524379566167532378033682112859608233321997375258202233155169664972675308444562243552312387910339639123289437612821502520612574232538733282845055776353452043070629917539719213080219162478716813373782815866902347754532563109879974823414947372990399987160937238792987204111925040712728446448740155303599823199618329120367872926830786468478789302212492749843956156300519116165995077444277448802500801392782735350216490048455078088992948125675332292066431354210568902931922002076313995867572162533840904987632510813295139620240895174973627918470636943575044943294727770371643539333632379720818305641576363356562289699872039761588925934489778948755097794699145415307988779392704759529927275266215534003627854905039002713560469551435422576045274856283093886590750940212053286163488385996913104206814300534874291366460419966084048433197388157417617157019659812496380485748850491814234701101942859527343306039677860993933243672586057666252470067959074804239369042225692117397122424658891223374536817882210438205903881204243126345852634908599626915327873639405869593362944788409083594164117186727267152463437945749566273710106588090811525726893023677888614511444338032518674302941274190375664067322204021361068201564406227605375981631270545208516654409954447842942081690142646320836740529068860101304432354534354996807107412239358476829007452712869363153504276799706376821674416012943016654657036057993727256854395378573210693603673367780280688850831879528710155257129239782082322585954246130423960711123704775747878598357519505786201925091555280487163575348840826409687415303116975133734063585771812913564828974240560124612979101755956187941468599047683909201583410523880897990153032290298603183312224025874461639032397694808147843040163415448779901016317713957154801282220105792495245776885044267033310059332010392986387135770280603774409044431070027462502970526383723571453356980493468151490805575011371913978825661106441951200349213888607526196244035691926323426432351941387458959317113507185906007231645535803374384599663526095129443831536865004401363756227050043704716939592203237131531069568163185699747070781161672453581042658870637823004352438699134440334979851218399342379652712891038785395354215029915853771064878897864586374451699009423800206937051379833547629304009700084826835232094395396360707042502110178779059996916952394117564757367348464659682415803209766450377002662998493766641705653820982378572298660979795050821971236084738154766946707901404233603910446139855103994324922551575629459980670113969421679196200266053215740449928397213697951362225297397586590612696021829321789479269738819685304483520860598967341437069290941901705359787750899857146971874957800657561702498521777416452811460308865522427642223274353269538150284361028067969476094450080486067390448034220418063966838486814218647467208670868388396352752614347057231406437788174939766891784514787049012504388678838350934513990705396387421577470084538369724788709258640375807218592324848127355532957470934700977976856203227870186319132682831046708864800937922072893488800151514290813639493073423458422016977022243825964528236629159805290464950626796572642841649115159775112459796719795730760377603741463597887684496926923621844469747429158513881144806089250656939939288831892142437230114444190824077656142717301133444291482366544173568966370022433094989310504664160980556431146304905439022121804529322329117180861357108827535392375413500551711362669771175619091660412252285536665432835694864491794463921344497385121868881799806690256313465733171608697256962350442579701840122500778245849230888206518834011139177344428410952962724090892431877551988588217235720522748403915941341782475477527914437549970855341329776291950950044931173475909259872182251476126142264663793153031266838318975042677944130422273552989271769375725593227793232632200803584789083091070582099174888701887189030347549157005502352236182981834638257172298245338556819668030343408321646824078387167019486072405929243871982806849739544543852039277759266541962413737678205535468683428777097225011088765034436216578314739954361234157687846330820578504746532225431073724905634908570287073175700904171765318318901807438060485825317254643673100200541369593197677373049196819963038464253798784216857895565870289961958009631072019576114496568116155059167996927822286497292812066856828645041206070990741464931951957804580629275558336655437433457146854548184353930489355849825382378153222507551190912452601952743553866164251114289787879128078788667690793806789194036522659674618165310711858068786955602583238147612776722555065039193289504781815041346162576529146019766465060171218706877205753511317966603041943363006241136923406568145512994107914178546309974880250398894965068326391119700895854493610948366596833201235227716365764141069980606502146682934279986795852010948667733987302669550517377534188177776247167866107665949529860708164735596217448329477328089381939770110457469401983321712893371650691816857408890898618209421308134105394586770422788041160842606285488479983709909973016435874503654722120408700677543927290802562987506812023260267497804251435564960537922711772200584932196548961054637634433844551263623909340403164178269648442531547273526481327963792338842115790370004506743583742420543747565925690105969705492486543985652987225107242997864222023615016818244520150490946460051153982509154794239168982622867834019011657453523580180855485480604680590278631536185862701946774506076503795996697148254385352584515528974374641696913306500848174207844535608320969963958987999206368378269188510787431050826630132926512287325135684072147626194760552303048507430670853145046840624711212765608436938079965262221745070863014719236352460463566204433637732042253046460999839601272214200026258939009665559413034387344172018929237074535938050738662836083594487809832419778525976569518444905060045049631467758268893605456139025260718374177666380994962227610178340605878560953116594926653004512992174070350188071261843043436627331907469690716960325904851164519331243687819116098618592880887222918784303890559769909492572557462045072330349007259595045276135579705855668486946268151293701196361072847065580594191294467981154239175849544926439339233146126508113759602559204936550319698818510989932316397023002292453613111153952019349784621975443992439663208160920005486818573130602864541848467365378841436678760774407076550021549220863135205246867618679415060776315058054983602164637920313308144230549004406723068824556702673972728893576566098296247391884874689317159865763004059309023630352707551412724892664833278539317374848791337619977023977301385557441349274923309598633973148956737074291193129940447878370988846818230301873598841522017128388262748231749681489455404476775432903355400043988823325525602293329869257025114162632087851680380332169228748557854259720910008163499233750170819084359881802709279879054815144303132315485824263809767447647037986569428122778200482393620364188427974424564687906410124338743767426393713480566008468634692762206807307751799064585837009444843650820731040791074792335064917172412525802783469018053941134503274607668855095897683771429452876526040221357037350710133098554222890478038283232445864594277450862879245254457652280960490600388760109512800564623045283397892055275865589536089706787234686096046558963445716387119023589014682215270719497581627576389354125757137777708466120754019398633239284506149252488976981856218683842329716002613469356355048921992068447960548526779422957013543377697514635207340809889049130934929218453083578558184671602945331025380062888702169704571051566890559770649963288831778700160043368521715840740629715253721896290219462697272577817462748937601905401296090838849495558205503187386661568645975761057581848309075772708677245285124758258464617613433658483760671242094668811912232328115668803165727040248639057177788895145132974868332933043681378446305768932090237040012377741378964102686239795167307606112765096575360492856265806281259773983382158118463222810118360117050648175292519682844356900425116997109597368370351558256672679890008352323479995753958814442463866414481738839839894993012437107719556729881919718102110005053344536250508109072132817671871720413444998756891172311047459666045643678025366440716898507144175873979290093471205993332658706228801471832722392772136080933737387372958385949314135040576334021071741321014480802538938209305561343620472037371391025899291757352499526908031344453134007793293093055076116814426721760434205885035363084187583993096669120801609170068890775521710332716722290012834120143748111275215225600376776703633249366406935749456802766293409149040935338993540745997761839610428690990404373244687558919218479753079564561719004589379112133264652083102885534012700561446341197545130638077400146376841533851220136441413219806335557658489131486235452014029574119902565709689482886388615624721475163451207763431266065718083829430408348507895058383563593533586115439067126651183894097245538819700837936168576054663798392006638122096685445653749764361994753642547631281375381267976875161999724928634316326711492609157519522066748470634516356061627169582216308253507458764656009777276918827153494646444614979299820859867812019043156111762540626521500249084353463441671300855930388632728342722445596585040736558745377013528691560652250178763828750148757498526951759348048370676043141310361004715864593594307481727108060855243274883571031426759729912785241753487743005426238781113968946649429766215519828472886555861521730518030556404143737048875511715500526113903441099755243282340667566616479214224904893557048002605813198136960862535624037531003457963313558329839415428599781529423385332135990925946968626196580595790128675752846343772029847695838063599588580384043658747129392546593487285495786479709984271547902270415359541527224952419925776001315782085246112338612154322594919045531131714434876483338602006968207737811062871311791379223018695822562957618711297997846323761267979215671829794318565393212019597974231131714140187317399461096311098975329948519552352271830467878289809968386110048801142773676433603860558907610803297621435124847421551421698726292836340629283807137255609738432698912279210528052560870630476200369990122164427129638169946792076564302413053534647449446395965525543427167639923985454384629016093340001197219375346105299078571225500396533378272386896007244830679782632767070666753197416955970602617602522776084176944881470054066076963816531932319568672936099243505304106700265853617822605994536550151307875126838659628499090312098704606302377617982951274753482528832972829692663154695843207661036737676172731974711377565003793229113476872719577706131068177703201713896880046045130383516491657641181944580530361251851865072712424852808963853831642835713187412484363497949241375793431875747393573451379481135049141754387372489084302985497442256840142536786577908249988845076214964319421236506889698728296002077377523190853092662664916702254570188073014969122766379279004699449891578437178683955083227312485818154356269022138261612416535121892944128001873825426027372283588019329313536367189528073836323035004910125154938451189500194755879163622217263698206103761874254102639219411271873371928729239067892922754740529742595765213633361089192687554744976149804590179542515087032268952901422316921890324815698839027496644058798354512526949913743608479762415307144372408020807280968732358031588308107558218318046323732979685972364859576172153218203196628583907989355809309148244397520033804707232288179792947922725274749621840986286350077596911351518989630063835141787333394860492882201762834833039448785322944704062171412791414702195486681889946529128471939584781826377316307375982066586465603378738747608076080573921693484512583457931295439648781999431184068487864045051400136934517518832604889343644119741950604655759469221838437935798553625186285635268297183747738698059196276398276866467044549805661404706071112726610038991269091870811740858951934499495924086648394607020052653205470201404418280188050466979523352879085245692523696355623867010093417329661236038840644404961966804206224723498496479424738492613171245893460203554191128138268927282294241436162175769805761474858608366729608165402131856000578112977861410693738381645983656906687387669616961149943054700161991435650725010292075234461566350199010364895294206316940016350896972251878094378911950938536331648449113657691443863780269313420612120626046834720534465408013996423148237517825465903971550928827536607680404195243199986335095796837083752156942601785203157555408732754317048676954004098269618413793454973117043988727972476543201066648911147008042115473458444818540831740914559972258038578525996768724593652706062094472241303617951437772481987441213835549611556022267988056149558523060834737494710325623807240084218154148999630200597360850528252394828931399117427583513187554077255116941704992716939968097707978119749993918723062798525950664878219108081549927871155464590287507235814573603548197245015041272148901949914980873835070225171463866081437359027849875812399785516024833435489274323712758360833083389481737669577714644038395972321574599472447998458105705071963911358973116591597947757786209637109608728964438286155112533407920674750587158164529491634881762619776575037618133881194926023076463469495610319459960590065768405943220709376434456536944081242939670310375796723877826402565683980042489426433972628779990282706975554678431154060018266344966149284775312887225480859550840948481752394974890141765918307413584372899821764788426422421052466820299648848065246933049984565442017531595504648510674775237658484168296012276831799207983539307758622581555338078179425738816378765215162738347737120273906967625598141398819286349986440280442546118456216867347099945497240472333304223179099531513812940385644937555066393151132145663427868173811798725935203162797978685129246029786159395839565806279960953531444316111565315461707924729633592476642781926100518111063870713089890398810720164285994662856091967955313929229387134660607462883168924427920577330926111402210041037614318662713231369158540977350592407623395181746869724155719673723396319221986459302340182356300246685224767409009006322640577806446720331151132029122334388319895669496619611429385389354129186458578772673185869373328559043121564935417283769688523036965746642175498920784965132792715285422015892026290318017633471435964388539821631040467555383984995741401329131391244951291196473363244620050574775074977854935718468696345664386953119945206754175978578428832222442375689817184408375665410828551947141792941162286466707707476078761507245670367153164364897652249382832038303291628259092642715358581255003767382017113154758727121767048829850006071263170517383839678916135312149347733616252439884449190364921511062362683436340915655809912313535131053545302289396846016904408965648872323455028493782944214586507067737405075396262725443995501427001915860896840059961709086501097090431224609280544393460468943135430432065660857400373448156401305651164221751698584686790004641413335760515495394319467065328224419788619894207648420929319466339109917756067696196656524504454261063886320619085849191561541197375177241095263475192310813818422347883036841197210678961768631457083885493422416798704293562929253884220930411578223499139952710663293636547021354279078919300427703684145239721812192815036020878372689250296038146496621990799625364681826730710990977114675688366984920266930233919581309629300198082188323790405209532928034858814081085782874161337452845149918063461222267641586822088109835769170175751852317450622734609346058219797845743998342040728405806273485353585711078257527517098767129669499690330837570276410477015030707559282227656211556719931832347113894240564913103879886989732788514915731875065459524144621688305197283182329296138267756439405527521087838544426295560981285162509740146260659403836819763352952831536149210482971419786428409954000531914654783674154021479159802047481227611470945097795545267135573672941006687020248568134998808885407198817218399551577717660561619016451753333941769780911014348403669267104797527408796090980111703045697730617893647608812755072582575675639874844523430524422915338980856905802886011891246727486760161031436199017186995238995329042248034229147251255846292093407183772477129815774571172624789925480185332625235176315471197174162544977779274004180861815123673126170367917620772216900563707948346968398716527944087547001598411885504414425772030353029598619851287705612837268700340830370618256444004157520235722955058269001881521975016454080991874659471158845745691328618763280978436190744480877981618060711879097464128207020120961830727168726834344306678644568184673905659085567186780956574124150799279877361807998868153868337382797632653568494931108462138480049629020534289769553369830808075936829113145631546282110102443904378674133972468875282593710533510710933881340971970045237014093143089464382956914292489905464837349827041089376550197518695881611374755808984247535073908903106049552847079604962811193226521516735065725320726269907257740729012683964079885774951014812473634557592180992743922103921659716098822579706724146567010427865401976453040975655907790168848735812423771292986014626994456875411687160497934767204557675306409182198301477951578437388006351692311405321043640449177025950426243796683324409300941077749094631509669341546575935648131449269517177249368401772146029743992474574773650643035765285790621834069633919123823649985885322350644018492933454454431138119035358402452783679641292896409395291811646199172916644053260235334389131445813514709135365464027354579061602048774233553454357838396791332403940698714457361176902005743353966345580695818370482386725441456055816715982238081605938711310853933323327899124174986938391928983092180600935598374305886790378269500532835368112601629284203464399274383564171519054363684056317141258415056078442324568200336269819635695807874261761256962791259608391921128006891906925527352087503082770204279159679317161022898850279382735567300377690771296803600636500079209149358534677756795468993108365123220212296160657754656877990966957277263284993187468455028428029504498552677183535500896818473653565680835944694865995635333397704238622494654152627593584518196853596068546754480610864456100485284656458173091878506217272600928492356646699057100663031604159632935191673720066931943757004291446413010525392415811102849521005880468244846426471971878241397304057586293471003055242213957956820047818286662876426973562563878724639791294667270836713742202985245119328998090565298470699422327273356372146462130674312784715219237538366124502680184284141587708768315283416278176037768884071874937227257654175105517401714185133495657548772026533491379017921817489383410654620479809049081787409014617260356250985513289022418292299539322012798282085566716334096157002723460038868779280012193583673470594808996473669639703536704595596044243161794650930502898231395055562857924900071994478187048462464716467081431548481507815697266703994826666925715191487096784983018570444088760814339778286728762761121516394589821835609482615585417123682342600811334533353273743141965577999587905259112797500804262651121606923878875281746196429364237042899856087739377046995807753927472794404530027633415977806582973356978149479786666011384530072469008050517703365354339813672499040917210420091304196242722847912984627942987645103591105121932114985778340997573588915350625793289895051414135449783379257943615506704751788580096113470887361339823853300767792121773359837219523300988563621713183304470725080893013419809206889146261142469108357015009173559217054922325503613675218098200668932877503131576544304421212695264421954865254348709008414355974179937392596060487630642489153706777742387059448999588666358211350462116102077741298016099271140943992417814768465978781057433456333480775261011752392427587681522619119346193575847373290813988934705939870501482689309511073293425746191506260509411525243322996877913140840970039021309166345619362306089909016652965646934105573872527719316037232110402892804931884342848468482088782612877617772715740127759562886684141969247477337120894501715881217148469450865809070937846337553671834521534210930187030165769136675264740023142543302056542687572666615404454692532649268933945624954563515557623543223319062047485713254930430211811213360658608708519030545968732299232787264372389210053435329713204421247371473938795479146852573284626642634954972843724938911216515947999038662872531595875387728279696105617901684976916464553506307792942482586695504009216055747016587123058502766837261284974253650566923060907597157568545365377229917906244580777632562751703661963710155929987211591861590669683446816134647163513994738020079106986003915612950761258225895309576444407538171862192825063132131974289073892171013736366034753000051263652437933727994261865778046945823942042458470111211484969154347367727678805010115362665757220522384065790527746900985684509715459545408719060246701772330940715798660016124299427733855884553939094919286552160621486740251715558980094303604173276552381219822007286693745558615213559389626965024840026385493389568089523588611436367755365920117323734312310976086318292902806415938092165716167283643638079167518221716662156831611847260779623055977770896601741255679543262506395340664891284808833772157111032987253860671941772092139247049926318399269645572977863827668177589384044327746186926522568756001072444277974025384768665160292631354212661682602717215805619634606503835406840934738544413974612326445638642011628447845214978083620140124627890131073934769351370908144229171552892537119236494419969942835532839026212149778425361058832824087399321204473191485367486239929895285747279878132421413908808735603922489138907315530313160705045494651264315317450024978222800821568024581046823994333443123945607504268806042304435654323105449346933662938297304870374381237871802834375859640748006909517211942737894972273004623174345862809886724573831786298357766992429320502972057467294809773087468981420042229919952708723434094627939973290017057570497361121812234441038286555187167491258540545084325801319202451659523297632493069765604262936312032744538294364852854745723592261879776890551472804233409016379153514174736555887803630387073026596158972313291724175874711763369494665133974009828031226830545973574855967176030475631334248824441351843479446380339919773781301636328184798195680323374197085463493990081467625552078678202663477242610763855521818027677344595363960486984787023090408340977084272808992667278745341557581585081173682995216120372128100167553905028004619978773149875896396945029300476327502685304940993541657504652632937594319878347013272428609541814640982145295787186081150198375775737821321865517174916275414325718468398686330451187985597000705424390079528394570733168454432517235944765941908690031860363900414068401272571722646820185911055050440590726664673169686715359774700780331046989869846084677696281747980130399674299917736243835407773308124212244992961585163148238336501737637963066802750901280896915801383875734110149192650605502649892363488355876590455965577109804893482562039016420731220164643615085940678314352006969243311937655506586691498365205590934293269054659891835321225458574132870742173855547000558475408990117609020397982557731074689153552702680226751027779128778350000308907229783911783898851644880038915362959130529926650077863982404177607592519337963239040470882065151187922920156538069868804596773500783502839836485966401101619866537398587730873889293793077611052543528739940765831101121225096475150245518344227151370350123298125728457271983923957542202542586338945822402079994571980811055232466076471611930121290395653737125967978521474981549686323093314867246800379570981517886133528734626712026660700535166043254545333380627841690783393082337767115497420988227195211293764959518893334298457946339734784566954267331987764998345170556339140286106124042317467286934352697444701439200155794837774534241376307279842634769670328291074386691027353109982759938826871832044445251617120659531892305538133564604884594727549228528836181226464561319354616421892243963023675435837056454926478444523997019879412084048088512530212340761234584456524198019412611597734176163516829967858292939963693740853322030967582845146565701586588119091330764884591427019192862004166375197009085724139316241712611500090683300837792261137483124450428577450584853264305543692389829671964819936009699362353103924416224932095500943001809114863971941588384767625356678149182999951339322632197829168488851972008346364938602976813680249746095776720860413163769754787093339953088934575121604205881755621030108535083195526646429918049108194891577148671051834996716152082915075463078694438480169314484486417055551002066164125606575983234024872884733590166545598152913075815542042623119082960836490031736555942480284858988059110476047953235313549884647397676643775154838598584825611374991572557583852136568547092523878015171407501013306228802587651957246152104972411886049596633006326050138051371070176578389306198715287318058222963850180637308432472198577773251123075371607131055246226610188411275348797732818609312196148138839233809062953375815196589907550343968026297207388676804644377125769371122094389626927228545288914756439298111653167081473370978770764965990380617637401165383318437318832100993099768496754421779207476975506274033919304122249221105079393020250726050112591917808315030252002693425193655001279172264566862495486623163590681157064416590149067060347441619415164620823668365874258455998991252572628099412839178784040706281804463475066974223435621633701530444323239778850902196656616373689321130571392702160850626978550337162105462484764441893130408799768938436943739205668389166589469168489288674516848014721435366606774591222923635768161864218431170087368026802711459130786992701885479193452043515464305873449312361094947886154147649660857587950707153597210014763414186156197712558842460495999203641737017041862499677435981661446449409679077569380711536602366587583033580107686401108670253667875790226561860197711679992500680425654530547264243609224039740147581241780639705694067559522490224241324110778567172519064431370453939920092110111137399567832291614800139689986599539067462185359535087261039630519705041536477794199651099291805154210142057302609244372343436942163159481411514353294711592548966831390193242231744319400632583109327699326894989558700774321836095012520983688888612354334478136495684253347641144608529027050495208091370294559495358245171073019476067474846616586134978659585639118976388559040892942173224531577028064223406371402778308905603485265487166993453296910758018939777691966461582992593485549757923599427318704398295715415948638664732403970245097067574128019194671381155657549233703365879877781659480369503366167272754983318544074982813984058555318873746539247109086194771920693508393006610849711750522886093964318806271720892626281355720508594357080743102323103027645320607382669703625631615763228486293619285653050976947445816137302241309917558193366091565692787404229137426841158081120186282711822081248665647771398247917727582874736929929278977433614746691673758309517577436871774879641190162753340594896558174582817206663676850727614604095801536833636328535753766406589233662820880265780988416212142122530492096192702989745646025686473785050075833326220893958534426098352807855858221143449216708576618185209742311196162917835046638619721550978296069781270948865438086393673642803619920352532335674509439316405962217279361954035401794463021833623464003265782390659025728271623468618577385301678743795850247296344228909913141200573714544002180851077668172907383651159525039084518568722697751532426624571481351011524829268873148252933850239465998745686901753565259379686045398166802650233476921133525685655665967150880764552534674176633972738810810785524161720682362603073826758423616576285449601312046681856488926710808657145688343144344955338130380499090168476098716388818604846115448735093268805002767462310248952508740375508697772899120588307219303222973916420785840141091069837940773585823870848716616835610767788684869884517843890399664073375296835840722464806655156916244317757409211445359020163332258061056231075314191114621830535561554530378417306059689797575196434986217399584379334723296317683411108766786650714892578985326639303935991655849229022760014830465368711978612902708787802621130459153731355781484859259020523583126063855449725340634637817887000643148871762288899120494595918345445767899808488878068032264426918780678114124616484695974026392118470645624742725641191641486421487194194119736766705166703434882401535973387399042086529987549520131110468932303476709533084975021790354141950612470424925874625662563951421401957394223125401653850661936315251955450071501100453710722086374660289918786663016522125480091961015154449258352704077251652813361500811638820921842202037523722197700476021568383749866265850009981092308177801506120956194481807785286472759845655887772044240874998036357063028081368047469810402914254570458886489852721382909603204274731366680803945350823059455375880204919360980374438335667074247020922267231174815760550876280684988029846386085816990442520341367244052443376691501880396832818592759037294341623731827010250267920149071163769203007725316361739063187045889957824138326366173183369918675752615306194160647902357535479580957946635752354716353831813620576645990622095165539338211746128523917864398421334849769535034471852815969542111825321692906792444683233384657266762412769046800407223509288887680934258538914164725123534802527132549827692465151750894682475858351463791847699271532641498271245611455742470095916593736100137427650299610267352443306457962096889307324447817895189259313990974470682078386007683758750762869217606287732209998591515207414767803549650992464963947199863446071460548234259487769633187929015058270530690917634096892494627370752161214249860178195372608245293375747850998064171247429993833910544618016128725160135414049945216556017901554014926349381853519786876598379760920763571832161641739623147432026448697297254119493447259150211229838629625539311651348860785017484362258773338348877047561221056681180404719156471961088613102489885290316467928245244173202697326301181920131847421183986056068154991284867436935668093576938326624444140863808415514645792354327419785270308708591927984211174420451412100907374799756969003974609246768929905397475030038359569901095038915229885927282032495646253351783852166330483024982077756811156640181711022787731164676257616727155374520142730316822000179723871432936983452630421408060003707694678388652027212014796067587640054020807269073421430143377337300537626498936448484156629099813936492273000517732615903972502460555692172879922448635593011826203722119193458142945110032359062823448189471496948744511687578942488315892776850745758222281132986912471010859345673894690930326177188805095709951368966636143506868989292440073435638463880902590108687326908014132346708819130833872554079461400601463188096878371307851629609819974262188686883128893820589282916821263225200436438324392515622298097767849409428634314756816264764857908607801385045503355222203792561757963934659913494548228761355333198422978639611084831904188312786699011679658416844805100202574161588890513096704198678310190780217590048944676149594922586192800692943259209839635817137463527550154229083139609956781988201550314052634673936514634026360251701245078566736175528892886068343244265840249570933201739252043709600566700516090920007609957694897104238982044556088181005347285183047077343130404919411883953951446238509142635842372299075578322505732079733226628586048708480067518483329222089197027601314015073915168786921987355823776435146165044704121378388670083489347598273397392914273097933128770845773677045521549443652229824304303375602289918547805128338662649776971283711539304102609959901624207697220425888826012728186885231694460840498999892221412643824115166843861447429436609335217225299900521127950066170104430025505910617520243286115232105260556272873059163227411461578883602795959898735108835679463281001546748515510873920650079884156801909875790133249980648249345324047426807344308409814581081506529417320932053309614742724333820138973882819363674352038758044381494027117765523369396007486349672998240971282010994025477359919826585144212306068069309466987819967182196453638894162899821290533952078217390755639461162209181361133608032719053209891110535903498138331193361992245869040444287762004469251147164295155815441119316810948894996162238877777895518696733609162989922843931688722760309006201476744723948165036472991964584093449729228955372472371037431898446899986989578670148049509434059475130200628648587096305175554617849984932724564711020929995110443275536572719948136310999309638216808603587270722266840043546297762745610173866525165008678584921361196475861053076379460196513049160368354908096069625838527494687775272831219141794867617761111375111610800488040661207050588356560666397143073640033299597873491882572156085513147410882842238151912270632858528446104182943482174988805123326430159509276654475904086350977119878527058264294779068110799883840875906358928606656102822236500382266584562779260363273228947877443926714963938492868414104910465016081792853833582020963983227717276994841709802525310298951150973393032287271332781961498518124720328432311545566563141875950344432267723017465791751426246251590490949819986330623129048761649424095111556369245622626006821593701876879563408066389743509381461616415800742681323941707479049586897812697357884366890801807281220989050772509655542193910290776806155181006196223214480956983779948060915046132056481525125966510907111804913902006505148411087794623144451746646856391300691917374235445655941843314470918462874477599541827322849516354791922819690962098904670409050773787355196377161685635404583319301518933831516137452365023271752625610502702354254592027318316847047535291721134179927615746033100171322803786947067284765667687838588997633654344673237369766023200770782829020114478204057868470788904263680405217796517625696427178248771657334325708939373384408942229275493560359572096127559992087746803766015550130012240692390921446004908757224337827617679543522689377849085420198541776664412352069904880693416163612499242269506228495721935268926013579596142518185181243460194417547595057676134689673395481309150962290821472510501842023388007915578080383464562522671753832108393956118849453342553564222845560206984870232179875308078427920904871655045720798409232821280838613245012472809048707372222728418638121639705598324979255195989719077098942110873534088270341295423129249343444433416440148815652873942338401305114528422123456045823384032704276189128601695535794061369150007932785858984861800080130143607274590726942820130255076046237037762461977844814857198692775935337068598890126877561880508599651225164340431938987685544412212304501575306565713546003078994520518749765268978553180022327005425663753463709259697229714393914047766241011904562877230215163234377018173618827073164157479775865527260182854052284740101676782598132021252400712867885240023499384561704286579577359355857048236823321393164094376872067354365912408454396051688567163280686488493032566992739434347736175965205125596594567542688910980433476474601827649186926717386470249791648443189596525361499573132216924895230358661286217392145200588999598821247085350210380099838405185486090429654150373724523192986805089229191943086742529382870418604674151184476688603447492688754226316178802930741269092095883240530116149647389861555436579339058382898633842478652152871033041022123645710135620438254978976248409025344692391658509745561924550494557859653370318450619474149272979886181757785068892470993147748426311511166808668520461337040911949889321768295223643245780359817700207352149404910902061776383786632626947744744227886185404424675829167170139348612084037239690910908738458275626097101871197886411494287497253664819706596167962010564836502960981958931123206551932207227472901218621626211439810166970652890670271427692385975628679045526527722382387756589024091026765045204589465322311670343802276327144395404075535827073987631267000274491576538632497850060418394810296547159184014561422838465967643133035457743956703777440957152417926826930221310542309774756692124177180220442524048528264426874862732872234525326689042091763894060294141599793524865463411390968406765642242663145106518489987030278414689279906440387910015950918798437714671744774065361609891877253941406252660182907596512017472006838312167270430284781412360960884050699222038354503650869152653848264761695194651423608415001966961127094825768971440903680520090335545591326425587559859023410765629307175916516544430901019434920371411751156313748237469686397164321785918208808942357699446877418259837393734861348025573029653163269232887311169924696703660066927187546897250744168648778372904513670560792079359140878239137574375602466759622588558055623808199603328799880542726016565738848679402082075291081888496158486795234956664899426951240661269069505366801080647163506582614854787558998388071869544795094061104421400301927452035655437265761915333247617252993418147974823669058283748265163043445224390263085527648779764068525770539283174872788578059588478524880646828243464097610580562843086207641450336324179351126893252068032277318922574630149374796836481865023929820259708649018024848294626137138221038799243256687092971338085127418624885704133375058473706560013112946727479165441014279164251565183833115424512620958226423370757823524889388471037620801205437348122381246592517450325322508038411793355207172016987298652272789388945985663549572669958628102524148064931253142579202997930829972311393668298111000521632306029126946949990236736976090791064528019341977099042232721855178060729061675143102301210873507383405924918770303990520135123013919797656121076964854045356171760268130772409306371159918505031418831439755304442176642406366553111180634499531888142837707420380519417739799250393091225927916671579860569290432880481526167555478005940164911210475434365924991737781690894565278301489682113846485746421726931473995991241137375653519863118703384653345472169418429942918950288602053911153007732435802933381889443640070267787599490646848277217921427472762462891898843967702573909824632940564932503797910728165595867705564331017080988858305131449667230073342728943379948483071827036329827024066383555073014616958831645464737359694815651916416688022347365475402192750435660311383950577406798897960516239676148303074282432427134376704658908434967805818444086361873109346767464161577324539089732258973642850462994281492479973774193815479949426125934878923368343353617207562721841571243071193109705684472501016823028770363440431261400193999314839558735342304250395168560841774505766551681063192500324148866924872982850769539728138712349407405604668306074672482068813630251486917445300631002116625955387182853537284324215178863350286924060471523186956468325035700990864150621977844478907757476652567696864569697968570982022046622151830121007927627633391687261022227762655580145651219156309277007273647353959596369221762124835762932420630448988168341937384573741002926570830593043137997093411109866501136917578708679161652276357878236200002518962391760922743439095612823585003349245049223311680686589834258316854632020697645383265655226149845850737478464219781647873898149990289672563978583570468529013582377785809323202799119770733543858846732868251665649875150735613629361122783414701710399848287664473614956390768920414881683422765915100682747799841365162850680733536167369237713617312689270382153294669990343533198446690796275888141658411036419867469171684276725111803423216911479262625816764744204332662376757997511623043780272645369365049534731638228736926902288749816611352913181364447549580775706429594053271793067722983797217742354413401376387982831848078411955374364077948189275826541252655095538225150421377007004004100015773911388132653771747269911341018334431969024689447291924793261423509969425885894862432432940064999211674872462279063803492259865028502786532326875120091377521398013961351769287035695867219637982471402572937738543134758453523043467832861476546176906906201032779770997606400139238462462817650329811904898599032383589886527516071408130761130545953307961931347899093602251677892321883494437604378400810652891337985773247263238206661511231643165810446404217289780010530543761811752128319289364413812989148187716957377397861482549919791955007964198300763017653191267140729619257233475472066491467824158330768557695291087072801580470891306299195715779624730405476975186809597406032694506479930187323712345391557754495965797114278580942457085725991932928003755590051371499410610574183079740775905910789777555395515812282640943049505944527712918666897132130027964119382640140759982117424029284224876121337810046647829216997113357826857255278784489796574762096109872958834368886296435288683725500304679211281080808440040845886026938029900591953261983877672233942822564351599405558510787231829475059009347123287678946187379309820971428399340549098465917065991733366619652275591932951059593408719193276666741568222175009347624379872032580027354876095794566492289279090614194807367976125272386402741301016122537465129137187390811568697636709149579678674763779663192135429117980010964250215818004993627939191019533770643668265310317095901949525338777355695035567060517371759770282734590618862725393814829657724116894644939723528932724179392295618373181104381320713165770392565708191119480759691125030479459363998153783295143753312482043236345378651217622912142583368157002062976597629290542747672471918851135363925074429382401018242257337567517138835217788075265766739579331912325756906541587664611823840645717713432245283573855645903619099133890645296827537173331640499720126220773536306593518111721172123982581838056485785915205717531823443292383780757289545769975032859542630015888627625323017924687449584630900866065299662653132170381964687125795318261381128187805454601184824657315122597166981034465090336963554282391298060299699904842362925379396271688014347318895327250162305736313167721831826260741841740015240672465124411107710301946846607567854029842588115957778765668639666568831030899873390722339101013777510158529078316514507111952842830398470052719573856009539623398609985407835053286533240171939308672867935565452691315111626315579122614973494212461018750205570033196478359636111328652945031509467029737208682309768344768300085383276791951586059096148962719611066447343087621127635439624609222331260204315387989028479667683736546613151394283505568612156470399062360063506514488078253705362378392559856590629121318917207537587576030213680936126772824040651880859517865603210781257602807388647054532865396580428602207338350964433701302310602156174924775369394657492660805145317396049131972530499411559130131582852513049785797861615888911376611234026955766819628212197954431774689736647068469524617886540921509131439172717344667858211039215425994788324276389363685691780987543034489929029959771353653712804887366302615525845216195915050514270337055225776529888263043727817305751750998095427796249136066999905318547031416115339670351076752478124402868338255904668354075158655590153581904385971356858877156580812258776668119675112616890234162356755652232557446042663389004672011524233715758586237628485940004984974396430521127604032785840640501641982236868041182905974152466320903453199382590059314873523330320715416756503158418550644428508493443619790442194892825050014812807477457831896375739447658120207481036544980820854394212502147960387187936908783396745041807072722721454546017930146922461174758821717899386426261549826996676282804641535812604165358831907119882139594277924285443749105211350536516985057136834738599709577565863620673360469221445288206998944117526084548387557551765289948289784431970603229071221331021390530333629902983832697644783028613421298403976443465342285978274725328503236387382609117289462451754633128809496885083540903577680286419091338232242866712389125090481306425700510438101179707917403486931898936962876161518194435909060030305971523834982452458677722607120491090225247366739416531048560378351668739754385560928397148066787180458942667647994597548011763009137585748342285583349731365677823925512082296055157440254106833861931032316891838063666916302808736298773843864136052427897262701843321323481734541197011332777851944589722870684266640361182077811610574848386240850421583931408124458222228492567873833659751999560543685927766384785133203898217567557644009484883050365508733685048597461551392839506518103698467804166351865848440265221271502097280941139513077673600406048971306001300329087666215230176431030023346134153222255542050336354625805677578204779662266051122177352267335347830918212543030024381692667977173872275461648918104391550432433457271046792896599178082047089131993238046860480456518922982873819735840088383627250010737971701469689001935751384658868798769618368120692255154455503095085841811339208725923084635890866929203495895370736537596606612258767528641685852686767491757668786880896422097828525296809209604195925470304049103404129378748439587768220034899389992995863637986652031739661497359662212592220533166368640456940237345186004163389846544371556762344645848734619759444105225193316108532800357557847457589301860710035533140423150338949936751031816278056572333140663871207422704098118304590713459072732601380511110699429031985510804847464280864329676559295478294192090694017055110936960374047879354981035449252420654871900539556700292024061021029171870749520337557769914676819298790503995238906011255884234419823563500058462490690874244517390701667523425705824965195515374835032860272901802001354809884436617253099657096571982214061520954541759743864386217986162652028155467264440231081358393931483570387526520689650886212298669683578894307016817397574291273530780826538060894456461543068880477796932010849980775457900402921190473706193463374099773043748945679094432109442242477986420525174805557774630419170235893288862968261424972564100260779764732394518287757873820070146238739117692413744620877582520172479504170112262645405365162242505078858579844875444759626846119341631197668163693963157054403783683937209508295746322951686601650863363930409419541012120832669561452118099525327440750796238275368626098338463992869882923532324326170120129562422778252321433746985221969033746415506022745128598893015835676624207614114368918650532526721253293222391133021082961052993798023979789677558589015691100913440940001223797433929698479136663697017960431479950130965842842294366809104972503035748621652859775699265577674546779571897007998030461400748903397922225084840703303146378143467427268307141692475174528191672078617310426402802514472178052439301826285147344929876614399590312577885447914429826700516775129987645015022497074533624493221499770526195686057390829755566339966092444957821516068719972172129865628372084312605185479057407553349635017207965223165275679736006640312877106258424636356178224496572627115416598514171469353078952113821584565752267711445044141581941048546596517479215841768906242086375034732785482163373106649677469339721274818096127004911583640083467759923517680448928255247414372580281318056315960785847826900170345040989048837040873238371421746385005769444525109450871701229729105903230017852423926658026585459929492480365879422528718855209547474368357465811152712048359603919199850524099282622966025188264790746423773612642862467370229883953712140129703581138697133549095215687948786601249160875835297970012226998111618964082653676985813864502885824204833146621306083206284821461807639978161356458222730078633915138766755309388254402082520871822585891138470551390623634601716427240707360649913760786046170214595071923281988469121029112569558551573654126951651433045791948289388506758737404461884084707264596549094986220889233601674546394581732564518956093853664492497797329239814402954664487479504590429017956771166854751754249044123892840072115641825471109789694820541018108909576487397344172544189224097171771545970794343425074882982779990088511344474575583809492914417279671332446942172364824961317669874789962467709261611187760510586793930855706745542221600730638133549310893904418716609176432892805535894829786635824286763226544325599224746578844917610055808720757825425164086692658339599916638935331897352772861579685655397157887848917080114196667621900317107069502968192491108906544083194549470211257203161551132961479630948812721268240481493643268222718358169728208702081017183204621816131133883830030504609641518868138713441934740467334735152308145171111015050441453321288797156650254260394056065666395523995205119398571558653772642933953689950887094288164206532568834232365115420733022019875962247246630368884739126782392793953899823676747722246840889460724033908076332917436632617513348237464279329106835192561332695455411797287497081666290739627200865080209851222788365623705050413489838611262272406676948892381929941333901675354442798817043397382195921222765685725202471474483590169565732320868027175405012140272517049346657770938398553939807114790432668261907744505012251881847183038905060776768613920102837335615752675768531006333501057785579019458449372645346399866518440400885677464838862180260646474223785823060631808487341722056606194980452049463981722289140240187136448523379272990761371794204103676513419664113541701271931440356580796601266051658961646130312076912818206687022619042083319007943352254514535749024371835893686664201923467762201525474757141990148721809364270362260441020170507727145420178806011287859315127878494198711189112903439489476238848925269307061951377529190739986249858178056457495720995411648915003949667527864136252405667437768187353213448506465102753740127984557843896711555647909563144531688191192903783060121698260844139881081035391176956327527973408689917976820622946773570833602313211670573585488635469019782764664252144221993418173166531164579261823906310219103732534855254063291146899065889694687477146872554154179861450531922670182154029741064252627291083566514909021699091308484625894311543110169065927222237188398409928109393640492368104039589479771244345070126316079488284960650869748350591700501480918844138364286493550735423328760443355646328090257722409502511248636340777929455607799828564677590243811485075037697465533472381321758742419269468437300324102802168571381983989299165367007725138086599707008796540727865664422914141156433678871331514567932850229203021524715652813861692620546663956894581544119715041724407075291222698626646578263108435823612529401850162497043270294081485474932714537204928301077512856890000698829561592155134279361757399000373518632055201823369085132435638752413020987515510246109247904710585971558147668557849155799456730840983254604506538553537288482217563557349246335209068639595577175612185129843637662645562957651583976220958348968879723380344990223789811107925011558913840383314110677080328906552754344071244846661819713492705829278719230868337123199475082075232292701542942106432500813241169114965727737083860799137464158905583191182817947696922834375398242003187881089452363957477044308101922908751297902144881972762255632895777853931714969387391519634892720661008646153051465991172422911391648982350549331194487567055137448385404581565877954577704709624066844644211554547899564750894579662301874931870309529830316672863521529613106691990021129660680208766313590823976332173190902270869000013457642773008810959039294469629652156976667259502309507289155877943785682643101583083564745702786234011244056868663188730036048027866083278058913479677772342436765765920679810415869217082361477912427569220305625730009174198302716264312305962585547335930483556428234067137625957491793221643598045465505860923364751156247030840366912168673443155530766947225658110459772780088356757141797938064607308823994226328680487490922565295984107514805933358015890822414808331890060080215314275811190803836419747056650761084004773858359371868030458369670279764992211102568634722926927046832666186065966371181042686786312810885436590039478758773416256514213326679506002229767858606863080581684281111392104758264995185289840281876670689469429871250259656685310464965244328591959461424539267546279214618185660310673701434615365705186581935170332574659962915966578698026904616447919868216233246714009510889350880444974864303057390403308737250555451784566649061567389303771064299767737981068847802197067055633333243864597851494536960762024344846170057632649649906881600008540703844755700160953194053007149283814365283178620661138725793371031949484416737900410291305193506836102247095350186942091199807188212313942980204515108656887623508675801879373573287508121118507154674835236109571824379778073172781910716036831193322016703568455576986670032011557619189942901557514520914669149334981129681549035359538077392668034351379044704824024349421187443474063807300853925650613809057976753642955980428506323370361878396127219040364010274755708685843758157012557590205959247398936208233186861247908627522714982004689548833804956359101260842129605808234588025235304982368682317362549362412293129976211297610068997104788303052093645512256125995103279041439665887470134353815117198967581398438048980632096378777411506281715090838396293292703289627312023836933468343087432798133533111813127973900930151646727191768460032236271662992119868009727459251427465067079785825758973524938209436310347862998583326141090680152509315887238430721829014221481250451704403614875018778958189493786195683900558170302220484547506092093343399305126319655226873823369710514863332768205436347074321599720313233424185995650424691950506683062828288776467129772440131807155630537636804076902670894121522394283411593791286001454359976857429707097721281570914482959430613453433456421913688645944974662377880158348032528021990997591220204786785152056806338057964426862294336744504971566083360286594601259499112721600685057517451019319195648750044610065707856368059846564401564547146531672893675925684994393532381937085656804489054999040912531204685817068406560131488443436507923236732441310550406316113077470628323276194286772305931492578671060131808835522877272722428067779324440648194674745564484457167434996945306129260627086833561124582058771824736298469870567437719748852843246141311404845912348977165742203416005863162033354463391139227928476963362370430367349805180586787117685499458822977231947262496802283159582387744993373267258288839770673147427492358437436825784788592369032350340589900537847609778775315828867641234887239619830178093909487340221611079014592783649713270173132838376677593348026841868413780875810629762016084303638951206985684316352189051577932377820872210866204347087210560939528187068861512144740911657511491774048445315104666047787576488963104809627146248372997060843961356260960331162291199800661174012373055904694494916933712649649448262722388691747926074590890192433410928097933608916412850966184959359773809741117025253358827992543404397251094033636412739079566432562985704097815155869898110020103587397478883177583972495258138485386324038350996206404761511319183166803533047017710284106205846298115492812831534894039628271107553696125002659974801313664528796633396915290080777372397250951546017823581654183806557411339304820786123557824959881254264534251642957305512714232648202285167557551611700530442560138949263455999334564082720581299809693593877485189717023767511688772786179836483578257196236201613077075142661570478051910582051629604571610911233000472446038044576259662311607462839662645837549651382484904640963069506200968084342763679908572199506216731080299044555231029673345396090340492756339354516462256720576893618573105415084933957424870233610842925294882785866524241815853542842627250025767402455153292475985355658049665995581747516394673451040307618904982704602949900590348268144154583655543036767721609295427614755453051895475850233966773592920956572647142185991391384852496340119389034751462649866436496716085727831790032264651841140021120142906626678881600477088041352975411974090263578497891279357873333299555806904486378108947761163798638903758489118074305897004243588190169647158700621688441327709543643511420884093257418583607400854365978561677298559216024472278244110491141542265269804630350389444850392066525594174150878173794335425278928948991363711608439239841747935699854499269021336188127301819953315435149903342435960688921143563309761617727955983458113258106415874434279916158331587711315227688184103424842753473356048027618960577478883491973121299432219234710778551759066682034857345320440557015630305914899454886630831021025500235064955979461261619908997195873368720152395076605472159296194483826614976681041031426268244730621532460518257074080803410940346573842106535563536459845874891225884539618275029732840002779274622200838411976643824392924735691532050958362014927633891865916619928167178064174412079139060061362314181694555752443712796899882744853118886136711247728676795920388935497726654180740366984572331476136379597123760921559180261941047681251970921858989059877965310010088513317990081735916855394522566656391587624379038261847314682418515192239913122749625424541025864407273519664848971469549625407543819717354757231459765999246344771870901115366867809851745297931367647574942353375507832692559125919184323897138273623595203370217129029004731979128173663091873905559746908523373678325072742446376028913920761321641952797368964974466345942465628471377575705000803511556652910623163721258459018893842526261376156969513438355868353933056120581655634467531178455116473327587958740801064546868518027215896683958368559966408258484214263923504987148081238804747798401161129039051476669926069247413016652100266929954134616073918112986677389137511841875214420811126891963956148487170850150666850812272366569446215531496421542809748509564107892503815907452569698936741798673399601615837370340293678498109179729236969139970391709592510068302520920921301438083653413100208528387995354077984496870542889230774942863346744341527860839580840826074116336379904090991851911212708478831599210895506080242023030824630924557689589248928224249476558413108634380003580795587655392342290692885863937770165511826413831436747601580154075855025475174943396557493415979669310800590984304812075998756493803749172577499961038664923592519051600707036439470354731269107572638184422918193056559674502348991829959247572721207727857551764397286557105416153470679012950869220168932593663863683127857760594897709470900736051926780300336527881975706375689788306247763211361420293722187926276829911703670717205050070977085391416167414537872323255872170196691431675622513865061747570350335527472555119584021598395913170737652872008969485566390279239407600938588521864168812628847478802796415131933159574292373561299858927343504358612780810903628316825637216304406372385428929868840404441264217895053801480179875467093374985123330255668908898697787169338296618184360570140747525971245836187182722976247832382044183081009237836457331186893461159425599591343897768503691000318160170875103345626787648790758464680276541224812000894954139446069495019288057343127745074091893432201192063540213234202786820301118554795083698928062668620901781309017394615724155131097563014318590950406317145245287030095678784418748258096386377551786758514823225436030854193784859497504370567989359078576768298385263802639227120659419844836882549983496961150383140737959036092196074082973455870234554611785415736011798823070554258667971058309976737736004561412762212803831755746170620595896828356489082433678811416263935411739430363310393233428502104735579667695355397180595355918099784051963912654193341072865534420641041459597833061416720285849609843325816749866316271866672870651539795292834182483211670192229227152882045544190325689837106688590679047762916483906811489866292973689149200791397387109552500677912331683145384177621888702986635577254415869321080581370335623173352925496629270081902056895764769358311655987962225712328955692275621012597390562162804779928493959406211095190270530524378678791611637730271717662637739572440622903343670380775785162981299613713266038221309356225273831640649946422933074999490502164938687622437327060163238123526741708488556954029404107961026117045576119481455044694841519628202036078369299719504802897992680428382055558460738860679643509006913367259713156566458950125760125289978377410983518009317388943465635108279535639349584657967045555187934881334866058736806615732500676994351947519969784478190640787919548014604388461563707740735883698719111934308658163261790930762094261728306071632874759032881918667393707492512062978777852096142809633607608417397082845333744472703729716698934069354032709058873834147351086847838533976825921887581153614744812688091405950803893131942039285980139265842627519999007779884792357360402312998831676045270619133696668847258668573786355741950276790206839193944268472365790167501501833423551734376383092881259446706678225205552450235252344845530107483268872611683694483168036290079720022931227978517930630024123547300919400016992377289279512056095943413685505934935843602420624094430814355616338559707210725489113125721319433286433013843210913554165616179965079057169432299862722478873103946797349097284329422898480695311041581716882015845145610529342967427985445860085325280077365677159869642926729072140959109238272989326420936194776147244354611307950674306943763676781690313324421761026025848052453544345077688610192131906815023572982695933416849082070453912148937362544237749012502645002065753150028696186480526641922196647112173059139853228262588910438861655430249489317032080483098137214982351469063242949754637098653537206703137872639993045785766965692887398129933968359439248282863690704881296739738592565051258516066843144623964451274880240293119268124543663952888159164134942235340037265843906792203794948129142057553318232159042335707330287075041517367825383792709534811984525609019562707434709461892674026125598496093780421865730866283388483986214482433812781185968395130321481169282159177164567295867331035070001601938075985647892452431534879922687591655910029222659613388729268418110659645419746353067309190879812638571912104499138489000547633314428703927331872937457856450278078922625990699140941016734525772906628636078415087687249357269886803949351754111552435943000497570398143802034867902909400221575344733778897843762347455583013004245260275467190946782162285321422065158080513784782274088990297060120854570854962082533263602739073140901420062609327272308373169645251994234596323875886137843930686518107098399943605817747229362219708323472853232618726727118028383293768604236974879428167753653086457842348558428693260356916498936707078100441994164962117533567001431498366293670839667315249730285099234287685317304998726887818700284627168901423007773218381346180936111942537205680057057016095933401991339468158864225691052971939262606634628505378370678878455842870493463779086755584117260851359327680969814254766204709518171944999685125837330001070378022997546266834604619582059553528674196318420667319091934810423984551345493652450661070040968354052859371784539168102479116588086848747069709268297985520743587468307948820497159689215778084098953629930617320446826178881062441996724261265951143929116498388335753205860272682216667607954838678366585461168535159242300824351546571838462142037261220530280348909181691720283241884015689680035083639903455402273732723370767966221411835233017256687368159383109423077363337579927090741364177205647889805560634191853053881887714233238082250957820835837484565860184214918497075619948068385844666851017013332812909727561290274448461290881023161941367583003342311731594963177012306432119861883880824822273459839582957799863461986311206184461776275710091841932436705013412326106666785125962912106941708282705372585370109156451264887562338006627901221356232625929068113670192842168535979477414796018284379978626531354829817881055940212210817610332519135717453277754049002229510156474413975720266521171236985690857964528444626212091159361582995271738425993159916930279576146985517919424707649214409070810505274312482312530901601152948884766695461309865460029952079285935263220911522483336534398855445226124449428028571810119900490878500422373452985666034886117554152317982692793921876440859401560443670974030952110135450413747556452027543197508336714791378474694326340521850811971967772276916519959775012079608996708916240691580185261553586299449358347981017762245154153541628236601443323660630295991952505432810069913913416144226060613801334746142159598169364011751683140934794733643594042761712966198942077926562231914080652277371742580806609079771433166435236684014901421999238941030403789976230716885015697646653585251998055964341523931788315070107944129291605144751545635743672869446813119749676746977448137247766093162829353187667186037014995032626943197933232120200538510973653443792558890526411125377144055686984835139355973665720687246154971928897993799065166784024294716883736658625682707351030731045056899735459850798889531321763639361505478500981927691254257627170541169695434287193290545985862632621098594345240080288167455851462379383162677122758397969649204670450427329057537874516003347589694481724687818184021582534219687240190765109287517828781661851298717769560498174549667097369382020758204787474880699200622481116732765931529215656576776692465841230923935175600701362777226010069932174847159531958714043470798816557068372788685702047753845342758647041847468146404933087815330363085946877329142937065674945552228206975761406359661857109056874910548151142421372011999335057793110030963786752820546104673010913639787724163452806193168844724679065785816731100773147715726694468241197999484623428308641864194700638656857520091815142876317069140036925899350901169646554962993682926491106912543353492692511399292383420675835775258221340157346923156762294962232429164194845760505726644083254678707735961399155719464646889430659779866798027482098469172758702262212050608693179656869022192257311204651971997686965169060635391276749436355387100181999712255899252543346212176205124103770618394113161113647308633142477595845165485893740570256986148322617870792304094596157026629393988600293929410901035581754623553067831093544501287890161306021577072502680880731345708625214890893463744549699668889592345570297759671426485227638762331169082051952646694087337121901684771845160507457579263366798941384058598685102020390800969601403917565865143176602568786795721091408135424690037392225136866333804393061203677319838694458379934385172630705071159466086705458665471987381256033272852609651008500631846495582890205296864562177971276124185664169743448292475182834569025564903520477597531937509892517392776561720318848852729862475309870556437593641431940288497736191256093763747826664116343790242073221538530070289906174786743303313905021944270611056020505224615358347830447733622541143994943023085883863491758392232869975811120231785119467450820613630727944843821209865349550348653107860787112149780544856787163861812431412504786012246718042372263826921677188115632768787884535869427738235484639167207405709034258875298148223332735161936736284030611429831903851972482709476416584943765215554429217369093168576580704431163242435522680316865299413713615636607413922214175906319341325414685361052858619040766504336298073971681111123726253576562464549474901615685526864311949455079549765390231001808821951472153571347424686343072674310649460663693876323153212280603113609218259774723757167963838414865737601802486799101893018994013922136469081138433830282122974218105553117679934878352369013450501802545968767387289627750119124864951144251935185135585701975172900748035574952487852541956741494552219491787112241879179866057696232323844668913976818561254207816433260056509072457965954615266348387502440463932568617594508133569979816057473307341718524685862441194207850471286598196759531048106630961289963420604522034216485293449287478453335869320794517073926977472904687403387818008331132337434540604669326242947514267658698852040514270941900811873838006972424714526428321531273221829537719529694258374057224116165253762127509608372573572179313143351277824906875819115625125978378143518944577268359364013612591858779805450867378608570297137591229075759543760823958234016695783892788688277421156129924510638437553378640860443564708382551039120088414027130646511080695306060845305199172625850326108644483088168419847936180677062898639815262819573105522878605131116586099525769089223853449219009905101598124134096980123943136834586183744080404551374350624362825446061769896390104783279668977372656032081407004402363070791048143781877132466054889308623333894188468017097493870857162361434224520264356435766459182183111195901308712375100676115402555495417997568016885134902124394058128664731523009729977379190829626942979809528558467326213276673426854196850780598787910054916027983574688679055520943177399477333070257937951669522050183262691780676449274566919579233837130077152144975245097834392316118927201257391907590772900479613748840379976849215321004691676329127793572527022239699856867029677521026401402467434495083910129852769839236326694852928985829850250464134762873416431593937605952994806143705016689159561101389297506178356209545930320893342216477037981728731421091101699848498011764048965918268410506357054479167346419788134493586444978344295836042829249382986969430587382319874029320470932180953107225786770532869652945215671245863665191398349523603720275600206252083858147214906896711134278774480374180165372235091757493368326353006136343982777934716984838417752571619533153196030091268063140022391025351517041833202472361216820864356457735751332576857606323965897638444879209521062210094426016403436290236619627027150844841019923052044983256176362510993969645010936698619232718613359141965987377220324607913354977279521043765484519417165860510736871313328077733866058046204916040467529812053290006291421441473355575809054181425245393288113602224606252351132747789660208116833610046600451959734476596551919555339251131440372565364331015307105160754651131315118790791666223468569212858638449895750224545389209712416181200218079666683456051304343421770571855890051077460380454861888012358260824678824558535870117283214051918797419573163843891702202347710210340801625291647284023752662623112562264590169568153050033437220421349087639265215983929859328631691700548413509070651601595087964934195806048453406542099569665450948469326451003609329947906599760706688750195409515191706204109101591080620451772162571590627456085236607704612431268981650727905078616751640667360954461639464188682178631684792681487850281702527822837622738903160339112799362319682222181620886084541588718892569969183372004063554103028883443132310863515035997240128200416653587185582906511615963074833086657052579548475329522216119911747703313483607526162965901146398426883326314965015892811440028490382776699775717763654593894796593187504692494104184818947303606205972512424608768964211416578698958683325019533340890945954862933319532230851286407969784609012200531793869593037523180847772921462775107614227734147868812583502287532230866992264558067780504104356000098356353382176523085052082070029899353783600245801622919872771784331908490135120294284749468194504590382014675681188004411565489149807721577632204567592179853394298054610783415260221885803805188130153000419228496092938009707302797641145981588783891834062948849820083658474581429935498661768480186907109098366094826185904332261731021212649054503237867070867542041163237511079766773259084703483876893954684511815971266728153912245043034045493814495523615142034901408663268246722201304944964323905655013300087739952628504571201470469804096778921017688978743085916128689687929877436990839445209516638101181798930646726116612646144490110340364059426837139339903684491671246054335285999224258167057697984727097994096404605199907374506585369814456455101261265141796614916545541676396926413415457554813211327019625482799565054098210678518419996415508260180810213868497320108142819616935735749956880769053070026822019182011478039413271881831097863140461302247407689858136516852636101384318876650433297806818892215010090657528068353804592495402845042354161560278039169597581004944161445593231904812945368304120156662394421472783620005221574017809733758698793782807292022903854492744655209162204533411682996156152874133614989315165029360540969136850757658580752881971695541307593704541327982615435480472497469708300295993712343489621159912786472429250369631421385489108618029277290042029559624106740857418006566241550884260785724694442557663552909456244784506715453996555754309822179977274158385636618293576255452854280053039870652491731855768031375878060131905514797148194954892433922637438423058231626597084966545808667108674996529157316909258003964951032674065347852948722261667770797709834950004566764608633721334335210219884389744579599200425816849164098054291244244989674702358341739044626054860116650228268986532453189078102236471913333428730868123998017172957412189412527333365460831797874272676538538431586262948631577547551557163378859625041969266233289163657153964990758782276197179655804856116176647340853675649708018298801873462420497333904385870059970504958187382624730152124666355486262323094227872640199041439633470006722949329035737988884310364679894185420837624278636906797370829483246773385661348789278532227255554463861239100109604201788540143429103247251737571251885007739863076527354721915778044976728576747740128454779074816323918102580779904626902314925361725554042706793933660504761306689263925061432816181084551539977659696261416549116911253082310775035205527236976477937545107359288361393746879973864678430612726834817048808403197857317483025878680606842564394536587111702286713969903685360617025758171888433216689954975106548769896165140469571588612372123093124814005038833007300795217661754554974083400446944390278192436432699794884230561193725384941037296275704631583956673218139195541528364257890526055780577889573207553020078060191678767962361362406052233140279986262509936525654350987254567168336082618985575810573955011690023359731521844035732924856185243368355027929331578538711391034984260318279125389627259571092521368856382887940132630342074611893218274081626132975171083440376054764441743556821516143815436932015855254334780521714613458415349751996754459809886977552068921317753586879660216171331561469483573732396729937028467012166043143849893429964586820217457066806590339126418739153753925706969173790410546033146708184127851882711479731379050538312027092787381179131002265228366455073880027292941661238535926231800695987398308976054617319282457309826883336162503792171822809211895924277703712079111741256144963445679685057341179323639466305018722228239914996712663171579004459919176020377972285640939435599351821449563523147222315999384901406921344062465150369218236673628415755344196804843103496719703626059676345059935350469700038087370721756293964870907718041490479100833803507416080175689639475092912216889585085911957138736885985782159883152779971560847954283475574047859271226992614081235011058308084155418055940073930266998268583529264593701422821079735995178691470711886328110049713373692189947700082355021346985379335603608396502455137118098744437880275230667535970671964478375443698855808301620878075490161973773963092181591294054411548451016927924582070123277889907010027615482010252373231979618902643657148508363813798888514584038227410174597856054725120667763399575815054136415254172150019435829925575643809867914573400586515544557594765219890055783903987117218736206233936735375209266825625075574735494883560397818091159547830715401620084842801240183594578417883686151710714024131060201027829737814572697351297358206248618248552445823817611966066935262693275514740436204465010756769576350067194013493207593282686694441876926900655045991576781668402953850533517633989441982875315711111415980603195575913991170964176489724600148331182737052225117720165798034552388664117055969501490630399903848271604822062061847310763846367194210690394039231833802755920782898351940494097947941843192286813944183838217282994375256213105802243914052553334298365454054908697078435326069774475497826823014606943689986072442485666996003510604179940247672511596951008909610346524260224683362175888349607809205412349506113535369025507595964420129031233543925721582084599994335108428529494670158411831980350573412281382107196699729178469260468940055587848552486418575482955563376409258231740094990738149095426477181774141317474718711547892869812424728843691158314731350510379573629057578309444931223895472297871200276641029235759311588967576334311808229595773674334154485168496599700348585210992226237332213392198377642624165288835005561239232495433814658040679029529569789641791219604135223349730801306212717445817546749644510853804675353067121231931848941830552181981226851453862385957274175359330396410335781792770389593342940990256250473277792372971273393378325686941101554462824739277351138518454813030318380562306620228190971798713787001800403438203556600666099728609000386386460558829701352078915687166888426292047986613532007278987461568557941460793409494172855323354911801280544361049649970928118711416228253876656663418624475070803648667004122029017631254537786998186344466398469337476344268001791216340640920567017681742395638450511717136806294170536680416381778590389808049222981324898583143559052806730178122802255292242004223227774330622950445246332422002749580144123202185166573678928425125407679961255795394051070175705507827555333548030878754433318337602612997556284051066048307566267474217865186854729957504842349974706474416831907678010932191905292079453497659504217788620869079423792936143461420843173637927889905744452255221749860737118861608505395597694070851839235947413105471248379424420775477652034207993725453662939622565531659031117180468777109982816946539198415368593469394368738132626967793732995841124754018354488309119474610898668968233237129373561007570872882905732928101252367907746639944630770956770971601682585291329565658087177260063251469398425851106962414074212830103902027159026793185756228378221610904540510154229413124893977406100366618072388057805248781405396745284834611619070027766825997166933698131358751424367190163451298733676853843131352331363278995623134557326284131190048880434252922079679077280209634824431753565331344191553673230215029363471201063071561761438102079476163704704122265008447437757813948514083319210565079559641546545825629359445111819121083301255745545470933858937448638858657435691129112613484960217490999080157878949617839596438008570124670871179586484484373905588959263847769365060448643042606303639031315421086514865739543858580076938738923593383784214874993472437500343554161450875391380497631861540993106898683764292713938669826697729174049241065932580712359586834588474871741246527968519341773061818392315450160185356421789004406689042098497008428387665846279713127493364865562703750999680352461922622793307182189870044141899121598339639345204244014893280044283632817821449136137082247425149107356642951431177835808225233587739438183423436902431397330320228729599658638470380202454580090737747258329385741816594324891249379747316353005630031725695140446529464170043296841412737353024412704121874933547106381059884271865458335389353235375531567191556144437932364345817132002482559929257757568526437215635618642841810780628619581417703075339087885538926993275265006799436988629179378744874966876340066455643958553881391346323923419287367726441148875848356004089575991390840474314065233627797094357854650770778007095288970203201733948628361700875045073618645553891788155812357768143209510976787224967111780545703786052961284517414488481836615831465785507243196635888492862729807596933039877161084444874717652781090228469528863633622380071367418856524946576580633124757371613019404623908798370482026570468482854060139543503891989504830828821393276472178096603208251964278445379875979936941095212021740160518652687234244148344954764009928617604120681777750071262561918632781292923076764204490519357061068934588936052106565228156345548991954753685975274180994258196538337574929479478585345645019655205227927757125675319769726541559948463822669842145776120666897445315282591119062488086656417515795378641441964748291473891656982566156424111778935877812572678310117811695436095736084619054769850330868310025003272966993848296481922642318847535353898687936377851027699978229573171475391198119536332162107423311754568353315218860899320792252464506561393851273902252490198101809961631438270509184384394938425510851333722545813538537454426263997281402264681701130199612311227350463753271625030182895117757039577958791009631939003642421979046332549605475332196767110169174098425020034435509241402675549749302641771940236864366181498642016538477611618784866690345204945165629794164531488076875401909458500451304082387495425962391453556494127504323822111423163693445633563580937395876755957160512978355001166244592118878652462702483449363605580305106061460702181059191397978543750693389478442891764598103754266155515204331733262200741327830749317131868250606559844218216308907994543109301752082021479510756241867693382694582925840330934476422949341318477352102266209470372430446709128341684958460073030480191546669409825287275634622113572052737945213033201367199486696257870953882230351636736251614894228912383967618164493195564196494819154820500227304649192633365246103034901849862935836788902756747966335538517081232330728647263147904641966285665097488914567880838707946509871944481394587798369925925993127065675565579683717734916230034640589688871625094901642510466308582035100677967479564499210632836791790104246391583026885517124704227888095443997163594428568303477053912499426045326252853896208379098830983934987763566102133908079728743842913304496729283371870233916073507483046809784020602112083888189587819130965839215975988467313170920790168337716852005281113230630252157697229129289000866617794188720797687931736039422512713962421680830889561313367947241167518881809304665898299112368274928408524682447984272183639309652301056911472020331409512646861923422293327825328533381183810027651087941612621794153272669108918010425734189275460987869738571244076385172224444634401903653560524629544242965793565066985806166766162094877598306871657916933734364978431499658370087742109029360344963459966417662248735528539462141658781196059970886548115820136500961076496021856697642264211830270813628934979674208015509452529893871785766799273628734369717043623601423580504179075000935581858771697665897376837481535445090235723265428782223251518421528812319102399879119214593777459598998036682301696783780944672510281353287792386549309693847784018945131498049020122644482136980806133082237051729444843312743634245254022413388089832546073287075527073566484813484467132226371171504380667808451563494826348376715758892294097503145691583107546861661598150403491670399391746842877335128411391942755749330564066843055305082175080562431686071015443534395480922941909233487902267705446271892693552615219065322108696797706670326551930764892994921753162051016523787804797100251163006315336469436653500683667060761646003052912945632507363701225550583585206600797092583521703913850539503522216324838837652852425061275642903835801476834569052315553302735315691171613816753029346393824857930687628930294899175152445564293991089637397094279639626131304373748959573234907224617204532838361826064804172088465215635826752585619588111611030500933586669876376785051720748095774481730107835405377975501160915754955902866434345716473371263486518937199359491183729449122117928587407356590730591722120404376942175337603652048746985452814858743009688246899448383045011672742015044981842060941115854353148059814807762238892113043080268487378958477765495427933778229498684677477531508165960163155551840759427306406863392504137413211922216367562064197375174409734410449324833452336408903437322068481615910645731723399418052680659460338272130081961494834022199316071913207553499928625514982024841660194522041951300228318375431249113461160836833398387257730962175573943571381188002088053881427136456367648717697053576633078400437589615480031914708302204274509260014350502457592363181906359320466174222486350650383951078669711592253140248621258695268278862570403449244665032524596183151857191733621849096704517239909355076193683365168028892771268077232973876978764735455762581281165730839519239364442250007646234046211588071378441341313435511062596080539976379511991802024353946757210472058518356699601989412751624797532242528728946020291449899276545791719903313457313393842624455517783534008643776679561257203713961766882300127515623259629719921521485235800660128711975481911092321581818860111796460453620405507875819693615895881354453531812993227945087269033595795280514248879718697379971176016052246248404369274292216693526161842774154373986509723098582692231905632843112127211824960602900046287447306901900796231342970611995611662409618975734287293420348064438283369883516491439263916673866800921018351347223974273076422533214625722382467422873426676448377341569703362749707882037067288982391913607005344122846875279078342788110068737538129164111776254363647521983716225543854505092439420887306628566448011070919280578911732168377076108130783758314548793004253480020225359202819505292437960768211622865627250813747357652823562612051842471106855914119393765497151001027796969946154155398537163177413657001496880519202265358283238485320724414436545061480917225504479554207176067064645019919789183094929331785957111317622872183663644531529971095146970153703563476316390040581516299293279857872641757002098769417076785788565356361038278327565125839902180870411218663322126478897895352885070914953269214906352646051498467765630351587217291471665470939454322236766189942333338991266687652987091150514811898243349647942756921019756641844252195619638230170582276927298156420071998555200915914671494916506505291708083504938897814470471247941734174353346136360737794573698396426197133525262797625669313357651828025140929209431549930476658544607833847089025832520318549407005014271996445002966909669089125701752886426056683035250545347173908367897148762459520861074254510278158434318637158868537777821938644147562611361052263505715492492585759161487706823538206422320015818496293067793101056910433859637322203776131586430240076476587875791242005884752242670733503651138991439944927581502080528117945472337798750067190946662139599624044185960727247582617012268527932241491076790538632960420242026223693665821772521819777452830413870396636086222039826650711070052300268020497221470583361078115430494918224728966133543676492259959370743942527163108026659418704377639912113174161024818897647466337176808364494241432626336361538775633423965467905528553633393528429034880111571575260926025569885444223113859783595912138869640628563290509190238149188749722782288831409573351513484924212180714049698326274207098363573719121270524364311244261109266614086337570788536411168521676877074938797351810685801956106318573063945953448352173653131388746617057951850875868160703732358938000572953538976715042744458874490320310617237740864715261579922784435160749223844517117386861914298515324899604918800321027399498587492442082409149626983891618450737026201542276044144867269490906472160481569639368740986878334052193157424368240658313666634201217406298507155314565623201285750493531108098646177932049826078297388869151407637343712635251648408006285619807587153906519337509803557983561669790396554032593678917577588912279373704619442693670665692256408473875970473130346409318370776184920375873995083678645141628953541108428448341849211892770704732350481149428146286878920269569987679984654959069300737499268168249876395873329692168368642079147131056451456587326777362669587081374346382109656523119496986525733466036801331966672164635072514318167180008997634973697502320727340717656290216448246357978516660888723475658027974521643299794315404936615807199217187554780352272503021073343038274384783805561534549965797974418507607760903722896943431248883997331728668964191881714320073714903063653184547558902200492050457613114976968542039077098450628528232705750624841365854715501596430110888495364072693427619464560498188514640360237716755530160404104874308003093880300978040700720097869450186357073677437088695643649177929998916389258471856906745715478392039133325296763064717006980730792285419726591467023747907603296545864315796284692228301342113903523881606817338984267636424200386488893108044070281361564412087427509764880124338053536418246306355859493456206551562140137040120323686206155088207568774914273711730757033087674973758059953594138677692313647496053900946997773003249950959429334727656011638772753359469463284259362709683841316958014872408660562684729634150292644563197965726887881770596105817895760014814403626758608485552651548058349907462469330379085456790979951109443839636187483330280477595829982595982790374897637264017339382306952957389277869085685070424185898553140575158900990029189356464814613318167832875480325980288751312601135179385552489894334828096891071250899257562919312187769882981135345712584931561638139650034862609615805018110145557732035517800147711086238763613213666152781084751623662465854345430038706461295134637901476715938809480999131967279444911896226710196442763929817256385168654827321394046885151264625996847994379873682587463688057625449638732374675960038205696347335188877577534839564267624506510910937107978972413246905061845268321549548631520465125588610589683483481188895666741747663767092689466744500978108362099930713393493073643304629336490500665005011813771768784253729655848491924500906938875496178380171054997339079605324474937972335296618591254505563824368270179112026274851998411905285737515941259236240414029389315591765807892235768468211897148280187803082592739580547204095672970585928284910078834264854727961658324961282194357874768374121971024581861875666320724718499946261346179217581507921598430303779155703613062791514717411545001179716426134856651160211189857677119634877066819665251475207547442876969020574959750706030482973442882210096675496182534507212322491643121381567937525897550724133458161845561708523645950323466954347476100988038895411071469571854561867786769933411978686710725071090436618521615516434122015230663493089886953092347444166387426027224251883534185587643371008443643712225902024251078597355924036569082204495045647003230063605140536650100003955647808988116462987129476895490645469388489448463110140088931504735308421949839718796323258154828059614252486940710201007026802408762132481079426826721828205462432947160148119274489273822532982654326196183009412668152026001051524547671591901956954360452891615611713249112505264776315829779941937778584633171425842780981130961688185532714986837502965731635402699422194161623294003926506379317973315893961667423579269124549247151263257678990272242168147213039465462109700642131033209182322086794246584835047730283670972082365099907099505090624313736879832320655925377575939582604182643220770213119506242520560912469135726744976456802767150183052528500889225050703257963780357189507177562340752744599004896007274801053674375595617770406049648927890125867163054060685507649640029656651037015607096597445548609342592862731902541266912744190112914840197602319906301223993588746696370303405014364924140706324900330993098775160841536432267466345643803750436108090115787498465145626565992915140570398271467303964391871737671194349544274796685676763417189926126187011959852126678759436189609619158967090047834674362903997801930099554897827912582406382796620702977294618502426055845393535025331477976413444724571830527918113747847678360269290837012149632810993618183525037145850720464824929726247702049732086241016741081431508651961135707329403390886639994632469099474006676760540502374113218942924209446861360675192275275308569183979775920205383928445024249429651383349831315291750485339462740072464029778000807200288022555255061655884385670702296641576259877603274827677684781245999345867996310170315880815544314568215738664861337847543641625607639790936221137454036093628822101489785358582931931693204107798193725703828605629715076654949137548396852692162612080113954008110213915828373397670498984147801557355762027473266092363081417538654129005337931775026296868436602715437362394744099972205403761447836594907211659619342295121484917722087635814875713290195629092306120090633019293788108794819023183014939686537893135518077705595120224694980030850727877449984515573804020249987865031562035444675518692325119657591477941060393397599562369054506563344683128917375701097927891727175362172795469353669643254241266223637312902199525901523979200972629277543538570069147548377912893905329073144237063041941273419656828143336503671086448449543537023260121520630702231871773162354171495124533015928308019587936008914541531331410352194786842308955027494536476773881709533738939214229919552799908712507711335704305582491277118510615743898436358934773012231757894779848569365249346157504540853345850992590613207197026941849322509446940609483598744386247688882875349417276710560808561760366547024947337512717168301094736240024222020081366747263462707654353404938970257752972220316992748711094873333150738977610745692767157330456696596470792069408607470452494421649020741856758824613848083250169833502264812501041597917953449378621813623472849540089380069846462498519622868990865011537889555506972440561315025490673596666403043140508247927889289529058163822128902548907217267711503943293286417496418237763271105987302651668851663820816816599102379400020624614391408830826799058909664817510559325929513358379527106327316416038007619205510863479388192190441764139511579554685613492674956105425424742663986075416969374994673839093773391673261648444101664898413745892903635491049930130686292029268254809966272614792093168682549594613124144800948690450767984116081793378331014346191880682178538445460344325407606121899274462808585794221578293198403055489183963593499639737502531394883754783471181538147405176707814036139112086980463488368629878162927892667957252532407303321842573134697534940188885916537543528770065271422654704145512826692335941276218563721581814261098074931016985108223887594028148624855087748199138196295485690761093747257018470145319708318314830455192454163468541817897776211160708499987837607560076908132446476932916182562107980571490716400781524569122767368266523460892651107044142624469413048990494699183783354523745355700046456798179278363564762381677652659129730429994315798802688951379786449705155972909728697415374520735574124292915011504632685022888087432327035252099431573406068995534195432321848650980056560735604485138480034045859689859800394926342442086965248243608182035187295854086829713016304004754891506354768920227628474647671104745611607405207462118894599437367467335735709477069606803141808363395029348216435979720005412588349599328409377699093711362151848011523690451304285013313330470397392268155424040291306495508859786380589696853249383219249714071078301224975766200377806154465845929409525864599786452784573007909792309277124125667842565316517522333362351779517913520374568373654218416177854826956062325312447734991647106399031935303929993238824887482917950070947095788869115623743849534294201211230243174776580660500257379370779274948778648576165242626766359801460941111078054161108314266431134659223198705262605755359646044720281336684736145059124189170208524322032997294874785904554763304262546569669014010958846720445261468364557570279504830467286200898938446411546007857059211224161160212942583807848378851669765921382794205072087624488212931957696759629105557117837405725396771623046415384924309988648283191967455849569086573225625979450831857915347078643075848907424544750252226543299704388145040360300569690346434926851404848046506723052528143841727535741689521159111912198044022513939257931199696907360514272615338183945602387641237202478518159353724119088547694447106076594419343549950053708906070771999320759867531940815898613983027023748002504469975215370214993141201533608261044577052668016962462823622680345507193741538050840866247859701596940387491352917713609189326028567580882543424511997253529180342032956005581135960551978032339172461311121612296931267698525124436445492406932510547509522894342384153442171567634527135202401255909683129421625806188740347050893245694108276934179434002451646226256984960228049070620940768381240173716389626698172373205182640439506478855635322335940373353204352966533687297305173686098770278321812949503089436222609677258168317293215494190029241454102224904787842001077763980948829667697290081143021150667777295011823707039227004596198968867459403670334083298536176277416934907812649882343617031527859411743662390249730694198817107299358466052758375071165131148504167650243231603983125116778660784636224262903795382529578139259812253516932728068582251668334731760123949803008238316804257116005956691190579333053277576012912236374536968174816147163943940476454916321047512546206679689072666099361258119893934116281450371116702392584651643495733286738102695348844315565029776660891754139554214560529885483766543344147002214084507629221181496133848755146363234352593788088632606748343328730903984423771366579356571274902360268066400767038439590863783750024157561342355097970636520651922605114809670790081209579267532686841341359234711653003724722814454235284350651135752136518199977971594116520530724823224922962376679784245278840198899189533378256885014270475772275256426189157693988265501238586865084896160783750053917466693168693253768603216075396849307838364184328298341907067203942852753920061180201744712506542411187311267450439777549783131673231807579011652460084055869286344653644083325638756952647585549819733600881129608915384804041325507629107307185877462822121397759076392697015198427893827930470118512851472689476865197045405371657312803154866328425528924050961081097979862622031428110955267394897452071253846761937668753705303089389227699269605358082165128757148469174407186384440850837166051602419227215252135715282054633445453588611981798628816091771116603286491352884395325549071508049294246912133720519250344581489960735369467154361958276938088993363603707653246044639203510923357516017717292637967020911254374488365481652399222588144954080702825059589446470140316973925992144406576056147417241926581645275910756712084805872983682545963449873113654034760169931192884549699384067771384825822022880604378546045209336837024605087995958243493956581854280572351130723168384513832647702892595130919408423493276932384012734635913688376925432681328568964350919466289075378570086720173429305876219206068264901623721851100463228314091810380021498386862684571369618784728542704417534621687253368849462744905207087793729076226723267325882299689439802918745637322278745556381326201283565672487031097059383935777064453978987485691953976631182129793456330445662006876527484223961541074499258151794914251950024478504297964959417343602306999156304687976979634365604921447332086372498292741033241512381177122503369556768363063653930290151323870829527391930934381770022596913634027179562584488959013716581902396570731432436995788819933368238244484120011406012923824912701516777752533327684147035659435623457990475999058672847755169033957142353977891882023036692829117449079693526179204767353343618356145758495480802927513175191120885637556414798565795168705482899472760283112993757239521205444398413499566966491942761335299952503658278038722543124805659660125888455451446486344672498731203439668435887217351661898982767076611605264832332325978958359870549111240256800438039629238785265048402142575472728252761067099232902745440701868606993423109157422340564277603537143905562535199108199630155334586219057359040540497466112145725088224575064764419956184383712627904688907824671632208620891535139443592110282516759787207202709582820294751168279723193563618721001770603715138685422652527936582974538795353579831648465520681609228688171116226630828816828632361368047103552534759490929058548438874074835856413265201162471564870875386143983852571010861947682700042598351078641860276647857215660765392196892627001563395397981711877482934194072594978372318988272033286351937457677844373182096084119891686134670633178468030164854987318277000078629490881019343853925088067491775892125446481317756537977128086310233279475286527206405637500811268622523840940878749539611735810844237130665392024025827975309515039519501835999303125515079854055913421617445236022961668887996676040193203691712165455053759221292948881982899507726674338000799994111241286304029837873321788301371448939050627533871214763210850139225203998334200974223436064180390120840690135226477843839237482024041803137767090340418162610931373974549090218160148460116723435528869519165059823878285139226513459444922222565925252474043842693026734152555591918264553657229263653132223608921964060901021587332103520330682464468791569574163005373139206040600042997053851026168258553343812887536255268422519133490112648570143811265389979953608182274919633581177695790172936291463265828355756764477879017621561549180579926213843467916419656179453542197125759646568871996245549224534325187347587464506965504612411246921260163025378570337216991595826110982574633972367274580980335838651477845858777113616510350066763972913269240151062454249475061723642332160999976167519698170509714315294415824447574811580130219229859146552672922700219949614014222234391635129448212674612356121888680593762723259800784322103481273919879196284541695233919783604220758382245338227885544569204488157242042427020587073507204380073985160483001528498282800642856998680936853640223266586227466598896224884974975205448441296849053338950970280897600243580725114591871365685086744117393031449259022696669830250693108440634445319345381621743292307820389917209127051395573441214134556474266581811803710037822552566022829118098789110974021575367725859445401742405416811586993058607839399641836083823698112055923237767841461473196947985497506958565014324842445635322700821765487682261947121740186222198849913021526929688473617797107539900240057870336525854948749053525861523281079580597148614506832923447727323723235675350006608856102120299397792879620072922466510009175163462988449419182851821498922734557434473755226875275734621101276593941081854081209084839138634831152470205042601386459318559258046130892740770108333953824271143584201131421489002038840968112083451397248991572118210340536648573811444461295578285593845234331113780260490344367910976585810142738520166613640676379790510972596831036240147579240975002414950114734593941467704950426180191358536330772793004080364734017795133838217750730249915507988175702343224517945443340998944686785274740441127209422901238195396932066035487370427903351131746050503871189676274284441156931701222441740428836580281773658533427298533082391033378602824239046926449165127905431894130133119830892963011081636246792735990141805148115743537528480120629082594910434603703449730201354132838749169700504610882128382118837304110532983148590453102695773874976969055562822549856850175192810293127773308643333309920468790208698546101296703252717823566396130436675186900608286623235897354624228453034839437085068342026372542264663197560792844071252700736585153300302205691942409413970411495575532665483368886204316648769900710677725216954556914495429630228107519401788216781945751132435789991173886967471275449883205318067852715564272993490052117254593488507147142702991282148390545497928941709041243242384409214673246053103882925017166105956554140790604712187898475853008248413301642883670050415838595338947411707270850305498659995402683826390373935520189905890691449319356119489994771805748065602188234121077552332560336851419284859717342631604154454769786858994920573553307386899675257016050938616530978615530462455871444834516363846327458510697168862162242161125586912913729977230959904107851136248126261214948288205618682825856892917301305254874925412959330415844745431414772149069842847676380464369216760528435669897714475155789859443083684418939643018629533260807955695250560933675712619742756879369243714082600879174500921433341611455624400582579923535046684113081566162313900268359401185928560540309596251542866517542641826147205722734332387611959815360840487293448422891005161546250458353834069975014572869558087734269517581322820020989916215822730306747139588132879874000346742543746377737805598761657805434481192186955345957698903351001062716889435504321395409380222498370828528499583450082893759722172574635840440626975674600268750357535543631018846987390561176934079637598807406862793622525608640407017104842684402188459538847604962809405736536534218976798434464603567648759681320273379958303418782195604394064754300451145170021008689804480181567399342804131485803843979031190137538089390114277096741026724889173720872884480942131516258390348827104685185836650805170869536240502838472169900698043345477045289639890672246683942008416575215554382307921240309408109555642169558715258351222294464853752682084102532873909915291212179871759917205736580206694965014287742124676045587732984497039671849476044601869631351250213344825789237067159133083263977064790073751414544464429603181804517988330328628799927917844481036413666574047847516409818902304570000230555614750275821902431713612087420218737915434499361496968074897524882683474037549482481893727584270746052524825264891187811678264812294033780733661229966869675701487763120549490105237509051267355401274921955917449063459886264683377524509527542195689111630930177587645246599431430489983524392316889233358006236296077976354010348751463294519725948037364508462393177709893631843707224117960191327035878766337693616384346274654169292328204504495328424656207200730958402682563701363087213972374950560360554835577009639530844310455740482998647082090705394572928191110489102307316020078435727160236431089593214362074360931117680496490194439887350852625181948174760145644594918509699176185811402199926451485076316937333262513047960395418967297549241709625130255418155173006423600130174696274264120361714302974610352920629986502503411056612414394353674362369534171531440348799890230774815940065581233531380655785032222901220231262261970042534286003036596626142930762607086168497181799371508421323528264129585676072066189823549681068102288631100954098196435700881917627525730732850834845690384892122647764922072505967312760660062783311778016192269092420223976481218844823019912174830833666776373795353534166887014267732849238646529905304725113111721698626927309518800386452477182220332405161914634790688781174601607956657226925094274066244694304481315151201952606024577588558978790916802173926632143136873648758800825886191265203847952094629961379534393227717626273978827026065755641932757796133304691842114426790284113318104167259442612915485492846552188961174177818313971528939044187131626402818440957375353929950940871586453829700881992903348664144575232941115215265941713537541070251825786196575090416858776910339671193767459746179633529601857477726641414567464773536687284183255565656717390900047489036675429490762382740646743213413502868743031408933961492337173892984937481975939872409916407884180350733199769239688184272716974663532740261195302705447278296102539839179721302375085393248155923796547500294751712405133959374103453202634702393760982491370341905881322424242690400302310254750737588772044205375603346081646700305110850703266259024324438128432733957650674751974003284737494732539628596330426573349079436847205083011996595933272062577846787031629070703468165415109637965746095446186939141731526026945080067152750749359959269260091474056164624398512306027822215909870686463207675836612937469414592131625679107849077554452889397523885343873917171398909306130290383440568110723036986860190798919084033532675130105415575473742621573262239235369409599222280514666623958226840157302143729544378606609371598224423964379793625748129110308168572204235003040084807523810914669138568716043539212480263905503796832403386389036120068388888714502628263962913409698374303858364268692351711477284243077203045592999783249223436056703869658495014746727229678009076279376299758047701558343683951089238506179194211348104533875923295594407201482158316013246279385222817711257315416214245910417414387437116577221759990089958964841345708924458877223863960443529019543076580286494115971731576136096513797865501629036396263586421696104276038553895620975076686590718528365002470861323084506244024458715775468156427345423072402739881736140099122472604841831689049311768690042556923344709840649338237624525765584692425406347252527810788625539335716593885069508855634925050241487994706671386901899531042555323709514540661589489376751401634269545514324070223033504016378662506136503988167747314504249370906751786287121345975859276586703623239132279201706758423312636299694149101359148116750209775187568441799167382672092133686653851098127076854707086297292914839982227384365412099280602465231964869359578062016608576431776762378835545200392233174309048144164894918801828515086377170966268509745731198702043698049836175176857028325838769203024084159167959947719704527641703407662754986634225069093643012635908690193268215509786760448874902627580018292171004906278850329860978386475320822430525441811175014645425892032252424724646826915102249259292410748364381554185047159827138652605413118785751170141276648934882523070142364411369011593897641208576591517862669547583876256936533579053205984585808433790926335259165526465556757909247971331967761543317864367213200842180627671839475452232486799516109367149408257441938264284267575078056127388785927695717005454173579824418525309666228369160232582927437170528266444242594041628451214473732144406677576327906727640657704751728766240001410924856088448498024363808871338199932320775923957640386181444998463416398990893720024224546914291827835282344390645189544991605730311546955213206423335197689510298730644504164805216918276744726493557328810810832587560390939040108196732438974596610400251656613842418101487399289653675438819464971097367525829961308579175496879536009225569597494801458519714738481396985501593894121420465283050480980765142389055609698350027617502107121242830236409882168271234017042534125507149095282925367085745955281214941708554933062739340139069118389398161732109083231968148349170912661324168779708062881290358691926517519754780919550553382549309441739512787212962222483395091898803252210584910032775615152955827000238128536706230320405338577303668308415773174347576182915092718643431889920509794715438988909279724661531311143920336202081274222644786604870314880160925437780864345811839578196708977152178340836491607882933226644982985657048116319710543384891279393362074525044492608276035695219740687457911432394794512675382192648927950733437519826413646426518440393920123576879265851097478588715060744112260956962396896338201063503077489066382827608773786880473380766977545915869126549911487262801821045232187133121321174990895353851462158271615287547140960523233075637534360862031759425337508532764806461755332661335877357193561875850309220516963776005603988383835555545431156431285254558837140534290962649847789248020329181121330387227371043966176916387857787562324341500485720615430930192334592242580217653041922039135107868206258015243217008184690619423004313979105295558562279490697160165787628865330948719247512423609218912874888567480960673749815435452918538031616039596184448971015957301138984585046026502756255262494506617768187381498457613019592333141511979964136184634180267016425044924250877804487072293374893331616789269769663790611181572578373856307813747028790273735816741480957482730995692520806315421285420057619692678497603169406330383531321910400602223872550508682690805905937611643719372980400578768480677014673954942011909448914617554986326235089560268465524240578640319997413296156556517750127536573884681032754094411226820044999790081586780890418761088468030525756575475040097115453756419082921408330751365778614329942651520015105660427857846164838797959915290654084550394038895638750998979085035301125372530142538179894050003404022718487349747354373934479057567320567658584723450662154543424579300608743898681759263454418540434036358757758443277043348934698290705198887949047381101367085605642133314839852150637323028468546928277645904384060551247954956178513530802609001898353204481785586362292639838259025927807631089794487694775680037377220498613816397023859923464452899629106292961244605788798111634302773748746008202256472973463465346996980750177944928200920102408496540772578659846236581783462026237816811359369913544997811236554168918516255978943472573620273349081739775568063267325262048654958874343260402278159499339883840028031870852055748958526941165514374713569731522053571371330934165563047622942117119455404928955864322615981860708017064196423921776266592415618147441445657846010661821268941418199979119447586736071391083583367226365793633262899374960148284474953069848949497938282397148547371972962419711911146868608845030892441856117452781649185162122630273172206550910580550963633906944725825363798997890634376691195242725047674784412041882248729075577310666278168483337818399086097658561681998144806169583835519498191017692856658074492246786735500689027346645304910090267563628453935675134452307247119548524679193179638602076599752148564913518143652839814179225852109903985926001843633053000408581882029125985240643510610973731402941677484470908226301836764121715034845682677088489372526552722114281310355222115192504837886388019794889434766175936541097022560347142683308824239983128713395881630889452079583523025633183160611932439896701352575359392331822404042546185095177612662714424716357013599835092742888561576521501397561233207718031297794068925216644580351969358900708617745805263488846673172667355674748487144960368660352624086992738859173425784588175300164650466193020832094923358886810749298058423357808564564608203279356350556952040832730265825596133344993853751629580492014882037830346594647169095350607665927261354047460972645610375952166992602944393071198611314401358058140452471275371288056889381994022757361928704030481514641656421059861075230877650969905548800697863913779497631548247619727330828217624227193031407639580617943378417871508358041936465793351524924060141075601149829770530977549540550086523278488467415495283069051438331745857721699151822321283901468153041427294231677400228413514276279506853959266003645031581027032267972011871393956922924744351144539741339098065229361082244322149265565629576503789449842544131368368365997365997563059065856199858644139548836643803395452824013380379905367438291015892438700016074362099509830251759233536056686547451712330442350450704000959712511417125406919865508852451104964813781564916822819883846637777426754208949976706035718650575953404372873147270328260698379691715829500689529926470087988709852586288004822431359107896580712795086757469631345601941373748013719507253933045631585484828988137189755954713254444458684036094781682549919133402829622301026301160165107926086706652688294452754369895464542152285412414096186614631068698749740920185804427737763530372268931045500887917751818723555825753644596075991775808114617711162962786582110614409914424525957260004856914757817914520426558258178006247849676460318128695288796686521968303577998071490943307401341148731043418412027237327509737724894556979359768231910942542551415215008800931738055325033616495918341436529496558633012150811243621490213712259107707682363387775275842469785820086242427758909953938677837952445054893211464947011750432409293126662166233306300056172725048382496406545884790168722130019461799486074682007304330483838245419365041438174587856041330789887080448263658156016444053553653302578745123228685624840349290835597608470110371290359557769787872843458092823229043099725764877882560923857044991577698635283062982876169402472575453933852196304708258482385243274256829252577443089798904951152509695832406088798684923671528617450207022329670885878266728743825410210067255374063260411751120162151079943814223869130370116812791509621842839426135468855038941644299619615463551032874577647169614184873976549722415016808324830078998134583579649069864944180260880469769981823114667065860414891317805855543724332951984066765285356564015693410289275612704334441297479092862691348789216878765882074661884906688506962885313476270581126697481001572422700735604158974606421702132684401962977169079106193548715614487031107642324357120830869415072132671331941070457242399442864871598389795991841050725663201149989956104502244549320869780025992910705324252709633690250600798508370915964417779414501367164133512982995680282906863416377601152210187478528867753247609071134754840677445500165874980456442163620082193781148678583323807483500415027609667287492958990757392617040465918278646169323380618482086435800832302748456563963858405751522268480459126086886589438322322154681608271282523005410508719837675504120297634585677783192361344487740279443592483503225097180219892387519144877545115008197470820058151371435493613102244117262131352878556027855631316156765499855890873273518839455503365143389066829261115067390415411973437921103551360181749526942051205789728089404699909856587843873690006829648636140731620143729246835721721645857017048834878672370986226582106826263018103823671057286379397209286529009180509309910470938727264771480088264642090859442428258368794520767760930941098902402147400381505081077701326451309003840897921344366832000409816429435443671179722683176519718895647716079555936164153552953399146591437198071937214726273237234514189165758667157861191570258826366939999378334783051770191693222312470535020429479585647715696690010825385266009837040260961097747806251548835939307219400136301059912839672486333803355493987705028367678452883502253065147778900414646294315332465446044029570373097015861496859506858179495591951664240221287304171335791214612862890423130728161253173407018370334706273077262631989600801753976884614939490972523269214725926744225828062307563936593417923814236039679387976221936624397128824890386364908325791077743766730489785043429497815675783536155225131413854839277980211385226730960689227697607176698439872983843650328894939345006961786747449909664148819783012072338547957517462913764935086731144115722326316417889712122077757730818689230670455767634953299553711081548350478940144557866315742817576120201527552271637185208959451560998841706423686026944307393750465245067882468008935783581942787859391307537026796196598122423173212714037411771765409452031557220540687031116282315202677431211327800744465873962437957824260357938350738095542189155899108521455576323397869713187402417314576971877457103109559669944812815562901568770848763116382246370997550672343503927460575848027456640266001752337239346308494319198173011383605419587908705545893254153802781403855175179657938219226595989798610023902401436881122801281924773214268899460651803142781094906494578426321289121240806512345661490754811256232259236214131879350809917638306242728076954340306915524911175780883760182432337117262617888607469897630114996620108268531120646785100024853752883290742978280837895945629438069124503408899368930340393921654919660344353859609115452335604809623276121424866679467071750548884012009399276678403506980133672870102471300599957307113122975366651567187738862167405199947052577485513713742093374418267261843666818583992077699820220965247358271812527933235780313627386693092607093591775290533550890061286531241213595240681711123795410945007591693677555365850713529014452390888956920250815912315955501131259992571763232133475007182860285615797140425562639174257714507093698589224633412467275832270090957233827893393872285990032939849905174243870774904240734080784468998019050580217191348884463289519016246693231196890472172948816999550501438742856448474965889185038954217331314704429661938180531791103649962237589952375824169850934854947354476682235327459032692452285095546385307228839989848917209191159854220960789217817006932672961240012756017866310829162739695296214787445088539514000993556324225250148058409880715219098457759962038477110947795010498075564567549925912279838425164994279662467999093330019905228194541029113719528510502619085955556919863836652638306867066124179382690280260469679302748506365565237727395903066633556829340510039478156499623758381296366314887713838093075544194246727494972893570166460493610292355095993287083714922929142553632439932247273560434265443810553464824510184963738736791345288347845290088771440690019661320946262822176777559986059890411377203931144680540254653418370654212439491972145095048969422254981209676537748386751951280438001443612806023914737603545218997496413952480305957814815153723937940317072380411107328760665106121425241896912113471138307036006606907613871213630980437500318114432603563803247620120732373997302032314241995470980179354500795066012718543498739304365489051216097811738515534507163542388593149208730076382379679630472492200912567069107277445191663144064851556196430190456888131500759544671075291105150118811965242941022361691476124887243370227229107116302230690805656487454054311746641436743488474710167123033912045272198948707505365917534023578353003193790518109066669294555917110117520206967715460883834179740614785035651870893163557035933613446119037844963838778228826146615317108056789124272001279503757816867185755044557189491418547517708388719073034321010712092069258584554274052876413804460204692261389468931784176285417503486971501176995145529986091558901185295639692004203403882233644965321351888800179323254191288880662163677205193882685791367090053549591737687402454760301195398218089640912894114180705203135499183704477561391134774842630089463965592384033607553011488154911026234698346997581027185582747121445310593067510743235367432208247262956701096558984997988043454045131724664815388689703878031552685047539332765098968451985359741527260613481733162904609461150915624557822707533469285387547615987075121576889376176686732583708795271658412820569980912165233121230407522376073868765752325951368470742691019048397390040804885591306062129801105574138461740999528738525139011234096536585224876159201808975846124074644064899775489795666945488376861240017517528451469726335522382246430026945146235413686636920345368766461799208006686659856859616232259452459092187736317009476250795642502830575095443716917062268720002642945739459007466860824958094071892818850217576238088268206439837517455372436306195857109191414628490907043708256828411853562719601648515057827638176628964828909633321656063931426913666216739713152646713280284004904112146836447448135024275236183925552777336537188577294058191020477288653379129771909723679472255721902512419714431706540748518758238440482313532683779691411436573191032643150877992728515133227845291820914674920841606108418062262397706541931053322797939071516508430361887332177533268962887441452334498342984965481378495022802869904756639262299421733431886573715782388604712849191269777613049239246586692700352519026390168694598698706725101628540597866770497665933488829345956571347550846044361815741577404183721947172492581042140559643487700575718924151714703413524838863494567690754150453317486499605430467957938327048973813987337765754317331996653143936682683947822130759397240421368499065181749798739818412410333124841636530580008320710081289855374364309295304086863746746177763497470947457267152974413743123663210354822067258061639493611382919769765915362555498085446465096743312845572098558048553206632241276143553175679877532830005866745351120403528946089406880999491270976308280919158424488759915486799248513613857888772974244683278231081125847516559325581442350211606051286007846635801676216241024841468303333159401494241483815310537501882698411347471854423709018269932928076164997151051423490802397498512551177154954415549270994997249801028625726052528599863055824066590577665871471731239304011671803157976834184395125324663354544491610320048488298562397297171939964157859444563449197094194027999382596565906669217888201968421113258358273782633549134715312915613965660761825705625976930019643199634836880074291736183926818293910505165060736088354787308085122269081026919594579269686358020901631132827722921607744347521396939568808431951230760355313129884131178518209566941450446741148214806113067568148232614528735449217882431603204712627281846611696186984092418182434798335982619462548017874317542919219002001639616280844595903481407669331922862229472195916346925640051566737618016095885468940341589318108094884005357876598224667034909868803266579867673568033953253615097419561706966245162783975875993030598394174767149370511725274142664413827197204342551528733542860605925463925957653923927986404098858531747851621978424968869138152789788132316914597327975762457085652980324499730635478251633180550420488571622924401175996856729664646628654458263764147159637215057170034746850493278629006420559776884898814421506022944257223326570941000859680626854160029462737841553098119806948525950257496514752973020513924809028039215744268745850514348962265312175465686577108290365009424018950625832340475969906082479840658376234724880785361939304192497959505502177000868937236459618306533270501445253811226882888992615683787022432501956705492805110528923357371033164224861321690984111459889191160093501678080269863011737805522457102373554582142994718808988624610511502128911736542668255173914420885351367782763198515449576505866387159101911909178865449023936686876279288915137272262669055211271253175140460980704399543239912430388764120799484460656757259215907712920572903485769556204641422109973250664684896442959514714859179431448942086510657597887906225992085220403785241871902228390491983752454621885317041703309614151865463817520377331248604542098241031703304137192840980594237011813178575610692658443985408202336722409264431752157347697636883693327750948593862885345664353970787011403623611014275337922722705481716938360268564834419990989104440595862779004610815622789577292488599622992920239431236692527652890054135069734396464944779937972642935483646023127741644726947520956363930911556349090997772093405492686266354082948617102802174667125958993878524082546225416984486220321264617234848506776392137538669588222275917850066415229954890634433788914114314374549374295590256179683772901669063499747369886657728730202834450330391464226340777372455818280806090429978197582392791402697187926105212815743127208379893496545533196216119387397220668189490494225695894339100793079283540400872576495591876004510321972126193305579844441347702308976258573248064989264775981453698404884811604753720905599102338871253069234215545233036723030420127517030775054361050934419510359887481386130195623406509138326203052857794390399484816332162269556985889555604775630418515217140538957236796003671492938362929438151454608849294214110324495858903182698219131008498282111723964561553439130674081509339191812959145841571733784773571907762020329205769933711992622635815589394528827215587634084879329292839104283832396821698195045901293182978343537439494757166435531280003838419490430836984316765857968914890306370637817046626197194960703256994542769587829878665360254280211673233804659752380108526342135189412306297240400145471321576081098789877226346067021710953254139863912448758716001110161023028855013606126665249684036685814458102409278980194591362236587884081144605561817891125210954595172145523002896330082378069163302356762777136678884161647736259054360284184718068360623748488804541691756268074632444984278485165244057321990747930735822818410027997993831824738925527578813940608064481406836696622976018290214890513923639555871309939825201525023110128873965820256115259248299497229983197483193792978872797269424580790967544818344666761512029743497047666417989393071892550684501864547918634669250921536009010429686702922316903568369843993607804874269751561505404629775232255689365509664169809068967827500335226922870946424539849614306262827519591090227891195258978834652505522468349872414110260191796596848081432553699730235412493641472771553158338525753242744028574125213896365614658989671088507578151451579881740332814209299088371253562436422350390361654481520529189477949570385877787849930601867001674160554019876733388117283904733720294887705853135947494892913053982400269351703580192313195545133690073027546121512896374577702983808632252697568488531519424896205787620219766719435016276196228212627102061731318259006547452821786598511585402712576086378542011374110795573646129892793641115325290039638742598472254561060469937175113851517784590342865474434035664615643334114745773468480779495594237331446916267539883671454465764505269133318832311969258021282189619578251536569166193174990443577927436311628698306498398590319042973506366241231469798273788546067788807294231091633645888003665027475290992246135615379306777093733857824002146480575621669501226877306333515309613083592072451036988016983600567899658387362553368242787633530247386916793261109208572643615805760280274359361291446149256128802969777028813343996599565612031046742935971637762114986133247892761107594295464569788683313654474951805675727610816181976877253211494842823553434576970948590658865210688938343876858857765489403232266021202574683735598499864206648630523504274798098449672349342152707108407656370970271495536556257316066606396760346288429007708427011740848594834938633768770728602410608930988707730318887134543658586291358582469458674644823136139228241283453464998527038025867989260680257012734029150785228282729072231558478273519717249657954044109424097876855383213955422158810088632388352248400520519561620428822360035912846162369406141046072465047265785300502421013895069149887106001898482994838436194445821649590592165430094402348635585773959501211905223909916680062606771622213723256321860208828744819122628196087966484161982733420162729168907000802029188168541201018795720885442576136907194235695193393812341276492565990996647005079180863436578612021294446846832924288479456535013576513687374466477051356830604218731739803315332262716484803464367917001721865036205841390754525463600892521619822104718375739292320292239945853258839729075964684629789031741235637632830542534870835993527013809114396067775324272248245333367243380338740250975242034144344478317041932797930929596412437315550272296059099612697242820441628767101528184028982037604442932748154383278894529457043051223911074243676804660587357545964155112799383905614218111035351556393786377239749533657281892912097077765598280743616022414509063438362856339696134169281783640819727720339563965490404770950537807128450035137878515164625836892244009151601984168040521899390121109483507293774144737024932898575754857806090270412566348919914377254776273685656940180772991497982776101801771836403285213996918380188005201525380339147576236341370826961953408632129735206996282567500006987296426727156438997816183743083039786994589639818305647983188790271931777694487078911108755325055930526304261751471088417240357188253963271527838495821749288460531697715113195556738844181702452868594444785748545539025501623415000984085114891849687692152788734390984618184174545293216311431514076731941198701487454577868168875754804963993310474847105823474897374294868186201926665412970008901172496303985907895307984975957079707369481562996463227157972571055971428093336239973342571464131550555189437426776165573963234581648921280378479008046604667829876631873513499908373556398611837834144077665632275561168925002179034898135493225432525729580455365431052804082297366499118944816303683622904381620119843044263974894769036191363279618660083545765012431442483080597636775044705784310128144304440604919743852978456578954017239876827526601300695665258516180915822060990841052358122247270616457886348792179117703529627026400250303003981412754878337216452811826850030436583177573561385359955591540254529561917338840321246973515560787230017587061044605805595773912895553107071661636077216637103802814420495412564895538350730878480021267392681430655614426710222047619248390672603609264566239547531518689756674075090922431571285768186561771869806032439765362529663182789896468141408426251005533434620141542437636912859616146015200224803422646539244778107678136040183393264119772685163208672147804287754533217494663870673271442760127119719097589126940772243441231894581930167030981570659831339131657102652927165845680975402842288330417847527946264479163345688483457079196244214132498781420548895192563668740660347327903468424571919218605333134188930268881929890987284168842471397386224503976459946485476842489324334149437453658404851350628592074275488073786623191745749147349990756503634490701266421294719381078222377111234180094978290385797274038037924734347802352950072452540481758909087214136782685629119095827818375272272333126625687056556589045465191783497688477695622052741904767573072005001265384699014038998053557984962513443357462496628878220936332768869433119373043642477796405139858218099322990962083526614462204416967433861200730718395793718582778138831422943172872242441443084686280008597273907405690032436657045939530546486759697062197674774606273522128226526283849130319536435991933222485773335348354026450858775552825185563271851252341618222741381686527185501282100855274780330089091230899467645199547977477783364405517044183220137005321301235584940000192748152629753861517204661895390156380640806948231899352061969416638963320040947640150598507834183314470980722765122124461322055262023431309090131341465333336435720933648715156263389218562759053459465028995166256935818908373923083377192877668315529280380180866742128011489319014382343026213893386057031407802028529176858181144051781827374749681199385418416654394275413601744418512750301120551236545076630693896262334488348509417177025825643002967814586897574512889432930966083381542400570102793116106353319589960893619182952229535200988573234087351073638356688272060847662783995222584562859137831495881936364159370266985391531449189329679151803256355974421719997564280373367493718828438437212443638338681237142198343532695285325114198452448631006705913387051516684235985688099302657027208952998487150000764121244101667714512562586209840874644441902412829899891316590940786034956673732340398038747195700520893910735019598649568270581105632175736243638763357295739683672583581077920492278721675736063717177726027377234366541025206837554640518086807404388325840946204057419323365730879938249596736127743331784124349843861373271597781285516198712694254960339003989450149185833447038997242035983510858105476418284701976917241160996819082932607012616210305770186843104569300842416034636221497299396863505880299195048999238860407149083927504918642433795084773502757009627461887948158300135355653166313382381462652757967674938175005832823185784543496362801441838897182227242829793427500618261066307172332475100968114464661830006051286372698455306356818670926234921895778188105827420575868290777223643592658659302017951253249420074172740087672410304431140874836706763361501833494245624237246320966754929093643192652068032027435007464388029634602386070667292971653154213647712414483167008210875737232546023433222151347740093229401236658870039681132144972030495065850624255473030889114983051494691870645801944622626132781853432600161004814404844485540439440030093261911652923531377363754926045842571581794050878157418245831459564498447056462894972253306666702121356828002014507246293838443682735085635417523019483649244630815916741588969902841608074051537146841365739555947848571105278114481844464311154502751425260248103276665473331054585609564050996153655436930979453225571067144607062717313582547611358284871920223511625595232807803977364996965082027237228691112239530795626352336692243730197350455340201722680058716572958332759063161449192400720204401291491423550871801962870217821182131960801844976088377690105920177652588830739700155948020421496451330644765064980606203204350320382702273780956636783553818301060234009334099454014224516618417325336202051458709515548653918760766457662197045806664704133498103953093005440007398926093040511864059930743877064278573417156115036891727548015565556857054739293567738965475175743420437952552370282259564638359833969505451754894624708637049304370219249045539663588286849212649756272934338932456430767945341818898684357062886912910427653424031475577355885785909960798565955097562359978695080587093065699866210914194295660115488953524640127053190180522284199812336902494266773396700628217822271627828497897691595858695826472267681866338702267315559885604489835208467536577250847352264779317503136204668671645148977715535388578400770119755461193815524510319360418056871792025658194095798092367919620467302758916771189656538188627640866093134037905505068111832483324861657375027794095167267503645200899360589064592151076350040547671549988763591332803581851192933163864397957478830660926156547383338552842956280196645950737631904134875305546074343911701435065054958972181591743601655932369975590864835691629467760930240284349681268450338731936860018443998423731475210389085966906956925241741692595073174088338804502080510547449150045209194874313740889278737290511061760156218856577380093038860657566531555389101620178287435545449187156315792084735793598092378815075210359423234503790138722988755836581329060101864342421865096494983897682737693737211688708984594910482072780473218183589444648837670930480047113028777665807746649935572269505474738340812730154125247124944155564981342284701029847877310146528949837283706563387555261363405748173473622405280752640300700485229237128948269017530259906550795825047060245006823318892576370856561696453864685017011526160224963980173580486666077766530602700549248004614871041524525138428717127671167811586177384058836647119844680366966470598910151445110060587814273137318291747918825808465319047163195342757262096742641212272938755714392247058768279302343141499000401844041600820797105514391327291714642558937548365197799699262503146090682125578305338528903058995824182382215586889981135150675987476873804699546043718449535513552310313975459896945678744762605109912178456230402943937271244854457897201515150215533085068038976073803630594974666196012816555763495433946441265213113648040973471834796836960401006786707815892640284448280117701753323374511213632993147084682972783523047076191421675803914382008236170487424162239891953840541061949665177779669629286733382336952550558612377043517302936636534877792072383025846874339032500586712753446565860702059031016816105522713983966740741324113968849976361331069788032102188165245736273803724599938207780443774259473509249632479154406992866877956488175824423520899993750268984874988815797059896373123229841930455341618724833217097878721385256236491335427804927063883573757850006036179149627220427543619494645628469601268598425936011126989021980563171051274328979051346190030419850334546236398392822439866621721815379265489273849098208083522183523731297485810225364639487799950714766950123423642700213786574669317122485157735357268824081279707355953888758425399856842487501257105357121075579290655320692040348294811335569254860476939626920238240633520658929757535836117534491947117291029656570470699718393059821557390692540273971427027803994633175655131556073863040512974742729232566111699601731961998399687570759553000412650610679419396724989351451078920013772910275856923261778097093913476940551678235027948609078026195296933559553983598869393555181945191271954397437102036217224382242071655879539699692559857342895247300388790529570225422971737484014199779441974993955565088830906277591366903931659556780305306434501776203710013224384349589129666084983681952273738080554744370984747211857590524725008664106985747259760870530429771770087688536532044370876638440576724687454184066295302584179291406347211517318034318198736745490841469815712466327705227921994851373316359390578193088294771963925082210504902385023705523942609887595853092804044456208002250256909374758369710870892672058764229872709754573491457604089209634521579805399963264749916904736211687524389674410060277860271648847882542168644675030521916651968451756395691659383701460075304048558857060524073825261456085937462946333492210356813292928976300718958402087684067008617667212131910218494286458465556374985791538170006881617688407541965617915678342925407682271743404391706230064617781637797628461645961612294946974745148048113832390070248118278985518950292393024759996382698986405055340321543956530753094036788650396365894388849730791354421666352443457925360545185483526811393853015913346422468999405386608568243800672275581849010506311212797703124097472029524046862724321203414799796864224360876429756648087776833529083812153779584946507809099462302661468229912474153444777237283283739410641466478926017201192334089582087510986366580583965966968223499340509207748302496994199457228284545375786377354747678665666332453136276245197262489591984764443964074569282142677146877853479996334289012893969031130729461783825345032168361754175825434506248078792793376236520803140062810482193453356847362164585283137868280944011768514826444631887349957379126264378733110570396764620330623480005592365726299832453001659993718629351022414177097719398936216122831156420455502792559361021416674211623461703734295983323567145426234540499183124161124224546490230630844667340407859132945138742382353906756898251991498593388758632185324456816894471144592279910992434973302338137537591354787091163594097624752374179662950943801240978467798355368896212774384474780107969410074738279752982873871826341527710800915037756219401543595448099238359408849287901907298675886487660876414005944264797898552987712885460028768956686477327600054950915790653440459561472315024064771290728795684915676628516564465548773568497352644974271515582715582520452570829920625880482686298392427648826649240986364893332651959118145941475600692752770352440447492930981781664306473267390592143843089927974851550907775593181263308980668932231969742061998508520121916083444577936179204490923554060253661772742212780173352300854199605437361821134057155338187973430924796206338259121792882094919406014135711784426670003506369490129033392763115049259460564995336060862156664477581361526884274104563087399158258646686276880373129415636061825624090745905701443716310011612565653537280385002822999930015370580230037827689284001398983095065802503323575972424564458813056208207260233874442523487966788315260600066374688692897369434523787744431127498833437122602276003435663920153023390475784393382132986916045366109039905313246333430741747404831562938052880195245025419615540807546536572901288581871897091467790857796576627819162900794263609635478774993366840440192278905756980917206990620674717261841093451767102119817283180101879067789380104375126453210289664066499000779696462491783546105446386841094627962601934373851284252226082664203163234153335497379886120474139189366539231726603811656035006102508263507461451458015405052022858918470193275806281176571023901113586994229525431894124717339487639786535743973841871706999234319963930877704925940466363964454787885734753164134083350466815103849689189218311630064702316470461548135285753972319334206430836852740280212230835441802016419239274180448181510853204143762153476160896137747691472884998405949295479510777774076315493339458843976228705030026531948938596142637369557799166640290563950473481882797067753256211519764215521331903850888141273146744964755669780622239025591421220086022052657810719514118676417751330100362123168724563066738987637973788886137738629303909678832595975023350153703680289163681844367610668536546042780251919404017633026749871855929187333954798442870982178199648039025834897327154237253855005080824112969449484714241041363524964476979317032067143840873632951529926940827400672032535432334743511800168879130022791198943655087122675889374566957937195541035516883474221724920065203407448790055191807939481213715323121985688968388695390250959913752160853113190751949703564868794159776269662878458113650573569018730119880197133897505730586458194211222478931061694400220904988939102287703381627882028577083252408161380652182415874302340829783388803289244860459067937144572423804308172170347806452577138251188026350584125536909048626163527917691375856234466309970118009425837524505243395865794857103124812016684012708819737010737158339219643881817636805545319401219165058764657632080808568868580098218378344618563179005271467182400617818886989213756644710652523177479888636323492535995730090356076271897835020680636222390371261100319776226639360027862439872787609734392741117675980316083243373666239110066488538749430271542069996432914351412553917849810008235542302701731533287005799708746808924352093759137361245098101035596788183892296057139929240091065594938585857020776680947747034674556873469469130236377036471366288542789441921867405749524434692033262740956886165967995202779198224887690401021173475779402560182172755181751385639514893418492779211980571018869634807595689718552144633932433689601744442172457019157418770777032485329491335011935092016461957557816280164719922837811576867584115997694985470025936966433260868020103338558380450335876377831777123718176717406813631753786294240516924451847126716490186216065416324270240484769663050957478171043982056808564297299853895679648169532967165570063484641284615522456881816873581374087489914968200362838716299345339366287189417444977697265121090808563029297089802422822334306536123386696183240196426608654119520831140011216216179689927123355621867568290378428148727824164242801962409565521913188071104876167582611422604433447426403052257625743519456629573023405317366887323495506662251893111609001082047005988934654993488378345656394918153384581299943686008188466649207193883375410459211927068693090815137660977612217207427313907089726622508371593614151498402390258954824353915456649690434489549063630029348996946108042975090773361719174252708530745178661972494412370122519658820611663803808110686130683129088878246692130519828257631815665887393678767948504679166032575691869788793845888320543857392993755814533501902373762189664100843426403121438925657333692607199381380304688701915184883294994197253845168249125873473700214494494670391318189498891379333422351998802523110134187605117030051367044591004316463483166433676302514043084682537625417443467324376791102686834614173614378764962023741661455967155641930567959651937063278095369201745254542654643806421440065684800939654205160376955364733772698014482404235705107047060981326013880444108015678647399284090967118339293572431135025500932019565451288402589108379791809124622608241849351208062066167810781240840824466673609658136064723244845477354948793801341803202188979701799535692788908720977550205573906302278675080426677573502313582649114024621694306675117705736380667673510246708316438635073663388387367933748525790085907585550968000614511240116218807881172999470129491085392678978143940697068011424389482253470042951814085769316501068486205080120800504153388779427324314962288559651644738184695939810205819412393943341557119182206226264330870738917315754636393529097265081126612452808273388972381035069653024987543213942667951587244866781497014023824450444299844132776017687772689484415004249737016436453178703788560180492382680278777681303823328944007137331575955010304670763538389066055096402808030075385931888541994536818740646857224983746393831329818584274993020982001185239124089177482649130160906103291318537143644376315714558924733550823902955621310498506784557806318010666928712710263380747549255195980625842125382455105734441319514009388374963824577797738015637994621946891948246084057199696013190920429533031865574664961487152151023165003597048299491082283747966137286740727781065050216922986272086297693648133918283717966985984728913196639572746472309584037198700627353552802617356194844190863869839661053233877137877074013366608572123261553751267591039526417953886092908741234571522638163648735857288452413724794964726003050669375360601950427373276192089959172067729004127450951971425057218748495459960543562706321966580256890243133704286958893318229408258416986972415921284594180766073965305613231844923750304438765670603522161833220348842051172823178122404696422186986228324619030520030058740864622796244799759708725013881604704229554738233860878371431742707020383404018941661212337972542286217370045692203418719878653775094225650639733044987377282966465699749887337476075676170347656050848237313539318691389070253236511418027422016787163033339936480012952447276449110265480458914051740722316271472087846622994711015855865421313065479103473348850880159966721378267539805029606645563111816463229154186013920652525985290528774599656532349638353522379893503195589815429894814428678602209760557799008479505245698239130860021782345367615451847715825060675585483482014044676015627778295220322374798321116811071580624051820502837306779873364202850447182850456892072232112413167701284021214155367781169139926371786743752915133458132066213052852655249287891483148281543252118471477333914146312731265609429085023112669126009311053420981101821682821963926437494847367445682595770314659896082053618972149886065548081534426291345985539855704146861174777666498346905118669856577659521271911863061788987442082956086960984115295704650437214562645276710712777838584080375091546241209516792172520476955937085210227278778979630613956654850149125855396609019852686721670664907668714858405005226415389536733449129591824021983477026545135516518612565225955960151024038868701744716840941757208385311046762192770379329643055889524707627784530675324125114439357959998979598661149336607631788673471487287289495784633064118510556656319671630946798471559534136791626524769051675048221111627361327791613067760466809497384213870303634609660125710148081714369554505150643686366413628687407587844602847083928669802252077546900427571746788708352895833711612666432318938113800072159019293985074397343242515706630845693392189415166546237407503756285490175284217154922733946697804681102241185810861831140715043226687293597870591949469603865718319901305407411543527329184318187547268227372500334358091596469248244313746640825256438688067532555882405147844400479003643857769586621596920764761952944294598687638870721017265219758951041554603886630947752917709125070415843244110417747001646986226194627154224022984276520833253466641621090003352016250589876502033783154099263029191691895437277918676601204417647291012257644959330590344924693477309528953054885297026016534609860768963567920246290746560460126437028782439963569516505571355424880322717793157509238146077101719362296081792174182791787574655988101004838046927627213283066625236635597575555188334738535504886528743188683831646084782652965298246247851973182446462088346780763155851301502802058855825988865542871488096627628394357777469110653987178249627840934196556400393576522573388544992525976777313915539732622936805830529871561774389218337733142314093023111586601915611046247480888325168572466577276340357158709560852204512700120853965604927377655405386467426029541442318996034276246880143132236128770031700868862899075906351102769822889195887959636774396292588148100508753870063501230080177115965547401009235327078033292011807823434082524857949080780923453667300233139543132651713445399967695870058462074766397192883842520661254280855956521528291236585558895367307369103586006806593539496481090247774594386816940428108457365546001710587486574105704063794574671621976279171637695791055076004427009507249076405847595870860661550560610351979190664635967262849967595362448756349649824866962097912661705410179447816362557427935879745518259441204069736063106542568096865160343750957056644522226457429655581075654484115383001287672365187311279940639600158908660900890765551103386736972558072770392164683389204727035885839819816286988045402815034907257337815068547243131913350441022538571477091739718435261327539105163562757951737954804240328674058171906758452635820471051905598387007533852433464844846372285471209227451866829145929506661549141540283452539309956874431734284138602580742782296332928952821962604622629807764708963273484853176405650736221599678798558201222695240616515557986900453770175407332505916583441756796440267540292319077876246052274805325249770162645466404325216580451144491172023872152009680242036510694948192973886764118975150219705037128299349659508491684909152508638567226751295668870561649604765299145326428033799668545178470447643482442753996609471983455650519972547567126540281422677831658434337939440393497036539907687417364417099740520187624172998232328805135279630156398168379880916061499580734576736295273208048893296708139228867757687824656642122758941382025850314887988148903787693223061786722461396832438498511224554477807571672821311815182583112143323552765571786636075322426167284968089181293012737781143238675830435668414564117411595622085820391526014198948689686602342461523169981625933443046615383181583835664918089972304957188549101619494168685438008631302052495783961150283103070597303269555996345647576192167412826718930978178196969493019466035458243873643421166633804048676780407237607097324768259076839777392448050095726619915217374784315905570493045358308679555130327124296664213232908379855785501152676096413386436052599770520109533238079978876480436509745799601471701101703041582157170543862103117269304873374140884239910410979472881696094124180082506168529760540005957410878235672528575684412299815674830729897946019594919288851645058640893985274830306475839817542530617873941433317690606459749506134544041105718747519497129721725548494144974842026910395066775041834568593245382398763861480599383330628923468893487483078167125203925718226406734292510023552495808297797411878529442631095548100693216808113573423022119597108551905893188653618362514236913208311333819767135486126523370590478512637026154472841098588264779538263817825127473543458039958983828031288937041835153108285697263323880769838811009589535314201844705939704293231838110951194835396828999977668610883203418561606821310263574340220467775889866128169867647894018071938045887116057898243320097256527604292566608496710762662886279853763482756622219389681508041395006344807791347478312315700244642497630879810445561035781486974987952425009148796434453272748910130883868824933439997907469056762158121748398166714794337792481303530851487680230309676986452923040874625229339064515926112168748597485904086405851284530467953954715405557120752076811747188645797253522172065718136588217278836815986473070716087655073473064198647296225267352173823996661890073134847927320603981641263907494923476003092897392651680193250463827124354053023258821221904696467662134496891368604211519372934023611018578598585318637317944337885391972644934427744969721976796781167224898965540543872405562171175210707762870976252959900715619437416969977580767925696138622050076974173181757147984489154888947253876123615872117578127608754160930428608053375601190003136593694129614040348041258245057491461562840287202330799378411231107020245992547479283807520386963899201632815059850282178708619558372144002014625189177034251840561324293445093202905166074882577013363664103030648498955138817571452062551364435395473976897377435177430242123016349931995819201014126285020070235587885172714204165180349552267448434258395986710123681504385338786050671565968036201316146855011367342711933978615963166740012691758409693018007059716047667686291811129773295421361300997588633602686143985419397233205680204249392788532540581646304396046536041325029212880167768000685425792595811787782289273529097036661071511730054963759550300369510839721387518711864979772339005862144415328133269024730355056571596475429184806733308115358625217927223391123530581417331976675694872548351397073805540245650499057517687421275483889263997198863629695375608486445373756675607870087209933583915845590194851828107208551357318829657931763323425764561308420125728259500552916668432966282708736762493133842277600716012604337587749339632337755567896789889773055646319218140392386885326185255686251818009885067116624200213307551543282282785953523411941415215004153316469418932010081142809048360806663598754746701501691739839542691640555464575408750753657124919554039657158169011339894333418276982654258628120825682699735577839766460324046611593177198819371859598026976707924085712942104978494921431202873661077659104707932862507696308750919699200226432046281390996221232526988730662924114075804151953065764576146321055760049647450358890339293785192191556486104353191570793690083439930331735051284091957704517416623026621674122606838647798614155059576035367349978005415338339209243866907300148967634485550183152461596737696124734881888133693847204831090406508200760094923804347302051731939789122431505493723946345702534625963332212233918076804554133554123650800655416972094018101954147682376810609534297204812316612534133729802822307805386358075278949809599724341816748744759921483222096272241155684348598592659592900094129247935788595224873349407615122794392439494354101565264528675748475227558816715706693657071749492322647646478485704510503921766083742194444887769836225939240154999482338513865471200489758119056718995634463145261072300889847566330871208367176261844771465559982313874351736722003548162152978118159845559088173552859649905512583167083878824660122076317731488409086774177701705079737085616251370278777720959779057479543540466895669560146109597450214552859652918873868236503767037977461358151028716380160515146579311521104252569919249792461445955935293589195599090988139433079685773558684392185386182844471859069209989153013374613220734867257818362071943942950433061775155177346979312389207295735921259026778742940016345544035331870971945783213034109080347776136549458263902414466459297261523362206176405252578926260243065513402598839190667214036066683388897745145621343421008626425872593090379085434884846132648236311318078080803680098306007057230621339949203484411008811345762569919588000068149766827631722157460773817778756482095559139904270970882976439697466555378210271835169054500247020782080580592007959152627752634694109026129414973046572600044545172664686779021858884105977533587923783943900223682661761097438682459694421100102944622182322636682824446642406888598424308127192782347491552135352496539233922100462608921742971680482379872491930055655268732155396731111066271104047199657866152110699073449123930521535235071804516629814184211865666469696011682405294449915154308775723338022968705478406160027176520333926593865125316471016632594286082258476696413718324145803446714974577229224728774447592804745725628356776562122568625574171321991839006747409639711463211743887310105075735907273322921164213023124480854842125216496720520585901301700230262138627493880921559686987395824612878659477843941005041503975092829836318529137264292663254463550914724035522903330333198964130024889079298029672214618411944653040495161631389606611667269643764048162458576819572642234596661723103925312152008968461794887060137877427797787364478054157763844518764043492908841777381885920440765733114346921300299810439904769224739592762939233325506519428677830183253161277952654508974695860777289319677660272420255131163984727171431386724659923655733198737597514720854469099298405397323461595000304734439588795842286185136889251854144664900462100703395431589076368965772189490896735288142524299653359148450373367352016280425097348492245004313109600075273481737184863203190902144560823984254247853554202489338499903545007280033940928753631577973233752796620854058235015360780674146928285076600849287307785509075055664464892877500012183451969536796677337884870861235777986857729121886023904484060824553741176396261476793760889469857995669050374325777990335662579605614611065836682005919490346073608791646882641260627145962629447935101768501164211556523713148041513733440615433597718425866311840570089864684603687837992957917470879903529383611757458582373536990388658880451735313848335021332719339343799916596512295876850220533987572230415669446228019812693437690968123931102488376580507925237137656011921738337927354158160980314622466212869189392677617780976350248788765356927469642685836869102400292891864692869676811708398863512236435522626275895428530013580984281633496327742795860814595156258113343544687551094917006253263279689395949041035852088024860078582507725612289917245528642608815843617361342454402238957228571913478785532894112066360684384685138605013094196879779531105360629990128898970987972945320199122782632256021474054855109724588314739009468785221564462822546248992258648124433121055900785885701053803716569955986576370012679662547635033533916313402848158966692045928277943221829858478559472343815802812527578438469299064283512549306176276828043599306098304906148350385228680706232550558673045097795776669310744199276219501005848429282613554459658633430268079033302295666164052933176361908010298687770539156845604707387570809561009328923312297345326014174793935035017000231823944444931985178516789282693899571173948127397680492728320289970477621475147768501058707560823322990389574895193455847051317376433620778317170820845412224187551450125926022602036394355702029318822747116664973893694287620192604072589834505918693274126914146386536407089444506814435621669485850181100716762665345218030816680735954900552627215111418649821946623420976342770236311120690225944124787385592419553784964465647296172499622255347560840609784811638659337741159886679928530946387224567186461401643992954689718457421913171540811770839423921561742255768992430873243375065347341125070049328297943285065289181116228124449121071901166939620994013701608570228141057933937382120583404434789663919697448884602073879591913561850323031055112127621628297164316650684013081019860624574692516261103502579141733301355702031628533278736266399646563752660771876011661630436970826388345387668078793925028261519505262121442466514822807515059547823104923977605045536498905020222778337861719701977706238527487333593549245427886762325211151232037516107863708696512994691096800963148809169772746770983988249848129017005362441594767490013555114187623710466987356405990219095688249354245784513161060519115850670084963692372340705843801289247805078560464974139645242326377892293634957376930235411759376378859082041100391860987517636236736955834697973435631120901201731259133379641620530490043102598901173103277593389483233435374403167026608713115225884366322619571709696866506514113248233310568408847291567567398705379515440641070098918995791879298102992990936703481332548065744130155991062317166520779878181511728637259564956142772306013442525844265123116842658849858794610813078524058441716380119376540170873932057165638925392309621472409901328567446624807984132582889151117610649001859764296352365783935894225038348657749613054259435094045908930683874381564682546694110829631269776517603501296034092805775279781111946596977772863913004180294353262393789520222485344681117291106782106911615523450602737441752058673488804910119093701008557005778682724773247933890951635872991661110780726121168834051309321360859566484882900234829626830105588174702572741550766740252113122217810504593582107910244900748537520347597101676983495312686546069341698161874347720422513393668708584262615982106903809520552613537435267213871191275676179144177565246339097284384518708155587030631335695813902710615565138270378714708847017880454694990606014652417114972005859133636947755797821924718890813342339524976888633546300501367040674195703039185425396615415058776438502942572750953187353528914747152899935928509202864736580325502617073279005215048869584718687793594997997864548282423725032315888142135132275271181620850528787360131687182108670325169252906143072667179370639232785571199753930288900641269183670883876447621959599990863959496669604242982142305211414098267692261365797220363151884671824359022527420002378604945776963016117133426130198005027925600388138603535548639278817754554733726374414902189035815715440535054363285403294922591573831645634697174388181790805608619824043829897473668630983484408103026723807067314707595548394379218404363431799896004872516364402086793107806509198734073512667566484327827158466124659067629410773237652427544126285220799157955418360386964227231240292014823759768238075780332270583270048770586442718838029003277458954691605867930405769896393942684915557041330215847455441145341757865674154272710527211954320036213051455555429594568417438184019597000797780560690146595173427224784498022101452401973566923591640670771608220864081463064374321746540423433212096177268183002360441890811242799263839564839969052979912487177893609844790374293812805817886903564352552781398266817744290115856515201564181325317215391138129247764158660019872370058151201688785377576381207047433701403652996466136059379649306534508408076181291675903844708417575370200280782916996250650115898945857127471313420959862096138575685405247860302595996224010437676760788159423384829899688642977952796284984338078511977940521939345081236335140144640489472448620730897944540651513068000865254625192980547921509030601816804475836418508168049653859075014953658169915144552462382869840814775911065487609414561602369679875430937304186760912028258426972542310858595295116346921621267853890415453501279498457720739921380216694775084042748029483150056667857564965909478539095847926123798125287476157192108905982121311673421029531854819450914285191268346663723335891301560444907160272276887497717128407738703421019819401168358376033971607607748362372242319407345331200473826892003629490748308709406399176333689308759591159388975715864190696297115435977267364421327299312592144503198955760554832850168220879011154402885750955661656810052936013587746434651451280310322110538334580862233814196986440864131691940826452918857368499874067711253619722928161713465858984553225770159246349533562097008553408550555835029510586184716213539707234738488061103674782692563122551751833998318495195971929508266789611997851730695802152104699070961066371384443425061513737697758814186320023293137360371567389539146247184965401489833702214284866759641352621155367269382806453084388471495522482858648399790233109596840321778508161218065342372651013785168057777566944026590686857052156961300730114817294068641784001834119482507481044498540683262490260034282328778376909927422051580117161650985454923122998301040830653845709121986283019734017147968143338573365454812933013150051192144089829208311686841767220379832884967470066397509905113107216323259279639522671807772113850513524024040878796990379278189454662468913921480599210016365912581163136086212943616989107573184823807724824917723132971818367215739813596192102586041617021461904045382356197132714925518045879247794502678077824374798449119978359896054996998297810616666046428300473659540976456177509224338931091831309417173358367106855832604346324391404338489793497736417510849865122241371607630577061214749494444485073302385836468332326370279386541336438788512284561477053003326181099234570534956471212907197683760763599426458344073896533782542678965177345086538360264013595520995718893859432885879376559416008919898576817693322569610724245216980983486586749592713576571977856394555902793910448610346045219563985720460070342924487474430882741019560374664390800493417511967730825123300904789257433666860818536744932119522358226452176198454522726951137432725066132636790896715353966616072502718218637832283397228414018730728342515174308940410763769200500063541565585387041320431241190828083116883530688093137311318797171976634802793537032263426617691974937967302049893730938297204029726232922544506154645187551752206112107799605620043253786329055444437310463935813727088171293160822873075382361724244740460333805124919983665831814621782769320680450214614384158665758179254053971567380461959641779814806142085211724462472244192935486709234234814584176972623527107149144393928662357925849221790541184725847863051381565464190528853988810790510882520101908376866946435917777793000685125103020893695666784059619894581221560640607890955354542100713288810926142223414009241633123321294348075766074270903974174765643918730462659134441621415390843047751091160656045005853386261340489359477749376134222279612161248734299212917659444485550457728756805148852621500851274756848080804352939288395346471447260743429438353887797239079940764503869878158754619059046234270461437272964271263032003365251554879818325316894735049519011568658021554216275386620118047137078880097734201018405075876268149560247504635636192449572193816713166568972661743216184322946080954180713178245317316459817441361153947701888623368683608309007378888942066242217238865090636437284897817917992965886059806745712620509635426599905405402065874828476473558588412081758377624589993346900409941874793513756957644755828799214424872511273724535798265887848669101887631493177620714039909228739920941314225432081177122295955388568338403993687980633016172566816559733678604434320401360191718190207914992995574885052928082852066761619887947447198382603155615271337564641993678745575758855913419392183115531274335472258370775575146006496796847162832383666690547130358211709425120630628038395564938203848435864106563159457168549975221679184389711613917346413548457171019370383389999633128854396508004639753674049845309747170215606376947347558388640807590797344976670310613263174360532209490349338153721115040934517311741816126372026227643594552500071576943879303100607266480201024143287438187545995166625214311116006731744962501507668522741571528183863115257443156397057197715109094189368834814463848276702937095883603392247419376683786899576344689264285882359361550036571485050854116125796269154673974073834020479657965409909048184377325337020154538021198348511149729768593278034508714331282911197192494027257940133292180855296152340606121013193312376595987625459026024904586906502177676282723266256638247679808975964219055151650424109873309453017704460501997225515522777236830836954055284801235696338349415164715851775859920948212927815583462074226905913443716772870467009344408138824594739650299313712152252965934334263319646539802911446511999915456617154443521879289131580668144347116449614348820897399930760339094346833175194620989346199926250153645368910509071498146845508635862712984787222248003290174799152815516573502837974385001521213434765496722136900636475789197204213782341324377960074569036719400343417363157658446872741277473905457292341240225303391964972827278478077588260426269077617315002827736480314346192535089409892456472337451689823703159579529098037238965864635839588877959628585075341750160412823478769238925430149397312545496113348740808254139768818930572969226941685282664013186710170668384336859340176756362988519459824424116959936966974819900780510352739213664326298366170441449363276316683982597876780405020085821442562964680078459730094385447430077436501456141106180062525826724990158974480690868489673761243092620048836786172949546163988161806327348926148663498342473161969539599822218126345177019047138490534749621333643042088003718394275894893845053977130234993955431206431320501765781891788607477953355329473623156048578755049231403084925473656491609195381908229729024100533817378733983990839368847796615651827928968069755788064509252635426992663293625555101056270366272099039796426850146233587023613728155571939497871174826453149504161578226148184342882120015580282803095526442299920969864710485058388237437591160855628494766041919569270739962051429118007631321130692614194109235383223503736047240204822196319620881934507892342111785904211211169293842313827825673504052207734094465904563623237190032900698217154553672877681693150896948039484351693529654079608261141301331472131911141349843930128539529032753388440429321348228114243144698771860956424660648143223754770768869553811125275963108618349483648427605135190533946362457684895232907990765934518776830521810123427392180547382220564375416587337505157444853699948915764099072933114483898251373398686604729727204610454130500087741764736449719756886800725711684714503415569127873467010286153452708059014856788950475777746382360070359130468632463551814298311974108771391024451189112457965367879971413627809126943134027566339574605352801718420089860539117575890268095119812513985133515897051912207390824502648961089310082154501571260430011591594910285053151153869281588411027738341093823241635533908541258649700850708165561467406983395522281083188448120445326506244962855769716558467867219286098525471678290168770079526389512736646180771432977208563223124504466295274274664288405262913761139053590288511419587227097053009363546816615031258858527634948208619653133933699141257106424439116371792765933755219278781970030812507171805716252991005829265590508416845861580075562160445004769109461911045350011381985908364804342147164941043836801762956958037355949678019081749097484952326606543772487416237897491317926080518259309982996172456443587025814310084840210694936779175930746609265759774128817605746441310314367859087431323669302725513461128973635041117832685237712769278950714732685056950804315091480442335688491733624319371065429423108609163624119596716974862298454923277730485755113500283302939103187699476900771305614967474103791271558680745247664624234371320688435626031531588140424305831212369387871325997719417607723524798290325657617993539113009987179285892097717412107899815038127116568721280264084657280321341706802731467011896669210553870678935388406785362625293405607945604763622549098475638008366882573608454414209726158940293497668441262840856151452290945328961488746749199161625320597880144931217952725809828760678730132612304142657623819894712287375087004288258270597305140410933577124536358659726745121560549294456531393121198203165675790083085202028622166371384168859672871704390086769740897672104381780518992985483498715919763905974656778195417469662478759584467996831137572626320262483588721629830088457146800357003813639880289532094895433541265507209998231654090033101346083523757554515068145190405777711605495233809417486383662508203080841156303673392651961740645378839328479437591596705767470267722123116658041484902575512508944172142065449125481001326886703504798574503140052183813354475471082469602973824052034214111706614709507988101089077727474077454468463553513159887577186612533921664354996103571600722755173937753923550144413002145593815181217471433865128851633703899854861726538446106612691269009923509948129254824842547828285188121906327752427871087627632499806993318753798946687701337136677717345497370978441153947764883773810545017056100348750046427455544459870074340852609119790491174435072922085798411571944318745254678184615426460651429064254298021498734393090247221415507020904815982277523793479114237965454773177765992950956792598632553756957925578128674541714768914902152363152822823966784885634365781314646538828699734848361378885928470648957970143744736329118958272537096457725052113185099521644696179548625567417426003218088442776894162582803512055579525870136080437404003947505606027077975670485238619450752875114080865680788610323285102130962899983052327601460865050999694531079390197406168526595761012360379715653644318848408696521733955881626295788998484338390472739562540418882818260274682069468548826428294543654954988273084313323509153689096635410000918128692390227322202906038512290891533298502255727515697899491894751970810428243875487149029457224396494141960273044821912125330806348111272953202978316373361150733596622208537227587100036922521231249201860670113671266350210587236249763709982788919524265813665858049799039725349733281565704373027785107232651077446355442225069962495604536082031755317626906519479949176159240956412681989703821580614547149058243542435094185894276751052737635207961991128881565593292769774634582159219075899871286889895478648237942767544375088294648842545704015280173879093326202906763168086027769163612716846951553215736136147215997079133988550581078679917083973711410833715011149239708182250091160306436553359806713621530695714673149424786260179194118127892743132683755438489662763620055543202817232425904509504525097161639261457248875289753557844360800420219590004001448221922464692570107907876525302488115932021193945848842380354503592572953332819839772480294288763199205309329836480845771815825012462776307917756075116073362523617235079852843320151961395661831356701554768227828394721861230181441023715917581350365433422387548248466642021627970749323567967663580653713014851064979842717788964721891307502742904118873642749295085561977497678922922473468181780933122157792043457905491282276693278965150487069344328356307505300378653524887713859805075826631902378147808567810696249469376419851535068112204935207668699070462426837238586583812170117084659096121089478729373521895408064626448934418476720187959178477331910156338889910251032930047974787613117677108451268689067316036995995236929578810090138567744458242732005843894514900720129348463004736774103720618716915878279064627786296269480769726503764732589198931977964916347331011257289868215583353172154795529667377342044593922332586622723465467032552139921001520200514797654676981115609819968452032496345113605022402758517838444315067612023742873713816888335307742295278119697244552675700844594668478069643795151880873084926666172201496952231938876428304279012147178278394482136757429014063109940965684094845475360292595887772408625254491757683091293804100927222107026629827970492945030179224590655434919392894236617423759085188438265109567650273593994946570921547064166200798812250064580401615596961551271531626408500685516026709163181535453887040299233675711694885844887616063368510349980287195872630856127314395988065431900324785779526336138804934215034726850838815057058377023049378426544185793589214850975417323922704315614517223380170227259062492830015417623341595268605021676369287369046455526196658947002522262034384513447245748772270165981744127401304043249540594079402321295186719834147032937864697333294152027686015269491331597149268279105900582405061095436253281175670716212776638649396520110272612544500493028844284748526260251011753004492187933420604681594177968145314358110019595750195024821521224705920048096273224949523880374199541845286321887312498833474754318062785579881845698600644516801148656822191055435788024126671158369151480668159434533145717128945810631528890775946396326471269415765789989742746407983080337148492654069482167307579472454922094999065443467231991274746740468379894988772744677559484458114495824061426211546394145988800730660980489643259183936104687320654794793186829509927833731863903437625571489277345858009094559775257936070308241816916666038343323213301959825397679638711137554380516126966879557455140345080105420224087012832869300559706899850039503225555307786385672210713836967681785128279391947184458940038668751884641354329838625576800495114018944425890622157298358031642318503302661021800387930658750389666662244670789767692042454063068911541588618751282857105099837811165882118049109820157019936388722934583901373141977450213168071911976030437790110102835592296683750934784782019942434768396181589067745714683409707431626598710669182588436753838846782006159846713514047029527624145565114122388378741235245126121412586990252512396542649198331439085201706686164230597033431913350512114242185548011533158172666326448939672257392375568029007970275708425535214243168581670034490392760263206558963089291874915662434344712367825154450992765754243732055480105673530675817406495475528949138799104309993268574122593520788678130130032889814289620893248649669918510959256600513022637476084695429434821253587332660053440118585325230397364199793612548793569732523086323838541663540135290621925540521488660694418332918521200499785972029241752563321602488842704655378572751652747196780600126282769574654796233940963070406130597199615549934195322011204083387497317123026306837700379370360798242560645005807042546037976255442886569942111920907809868497765911022665558792767460638318325842322893091049191736322781947276748728893482416799648216009951526740740529704864725661638102470545050035706870929368778362167986048027704616331458982952803181543614188437746313205642882020605876273363379565633864514595177486789737528269179587017233004153995125743985703405001555934075765159505962021077345501935692914731725807606119821713820387216514964379458203937644984089565748225862288964876205797249771708036595659816094440047571523135474984662321112948257290681352632817741452808832741640352053045020482879249799285192994111540757304511699302457604432275483883315498933726976755165003302636317932285913610601799393487903657486517020516402676468723170410138706469534489828355798027918408430046244956771006086556447413522585017840111792544614132407475570817912001755835416362203402948791915512415494986057259811667312013426577165120659554867003526518153612073712055153612856621873863366363404077144930522055687981830600166649740906647622467715769745724929309521007609976275561469867829970792911515214460214308061200067713379716272664249994522313742505393343469011846204198271177902949096822039615569113614556709741287064770787170977299068407596340210870269899461448263861448240107203756940850529260329493732479242906222327726455667843382128870190669428576955361052860561454523223511445879461662861863840717131297412409349718097882057441896981545505176852853893449323879336940032423350394021466702746791981314042725621752992223654772675047853674315509825465319264746061124837231339382460571879991826449377404914571463751394288493984807637653439257370815989531964328599998755030216760898113529153981590128083487280807178118807189793722204863341940943962741682181339543378661323595817821545345527583076153918157528177675031528781119191249214918384540468289409799532234823740801419840228972991094694262219889725181073740853051750718775700425910298686524840680840943850957824851672642338863606227659326044873974475472910756801930405809570876579074662160685420322025426116621384656589784246799803597468313761742639084626445285460520315546233048230820918097166903413743201198771495737335937568056878469602512286735349373022736561127618052150611945333519159750348859897029574336304890787175977823769524397994270319249483312825009930275186344645154750146320693959417913490089192856878173892400434763730755139400412817132267967495529022370966711266103126612985454337620378105700902582860224638474867210906383666106521015090049573865673353937240548993037749610950573870864296674608248832964019854406754921127752104833644382874599150299021290316021060030638416337452182643999119306767315575664111921830933306417273138339671820984297683334878287489413635371058216577101698808972503232117956992208577993483919310876987675439417860166487520281545307287134974581188024707951272469388956442283169758086967778268878086862798371268622802747419051410131204804938666702998227053064148200563833597374329800138836916260492480804596075066701736587161636781011613919726826887068834912903282501571750353896565475583923067964979641376667989349691000783494767370579825649433955727424802341990037157958852372768412559123238178896332722883365410561539587555232168861994973120305753788618849986926977507189176220914728876146150443219040927296946772986394868703252711398973264805316429920282986440040999893437292778957969409382545318746493961210291682562168693029969629998656407442416995852874616883875592832072682951009341559070161660087051704705372529261353457486172356810984810998604020866287507001495883058638440333636997750047162768897774744804186405211468518859852607961361351034364128368966520468307899849150543834948609137261381635520963245991246277296210555994082280272447305837600725179235968462444855080930233975906940091573232803373036591771478407624417041862732981319745478261438902748047410844232486409048324810061280915054560236710822684620977462118654398844811450411063440891620984523303098361313101784845627367063641042846482427111276641931405175341136754156644021937706017927559706437123221563472882809401531713144171260092659628019162597589257103321799455077967035518317183270119183563770925681652658628989362620591339231702176280737363442466846874823775467750943935005144970540515256920969027030010888654384297206914927439311631225908685697001544953271222677769602240345240853770941377589364502323203987850412723715470709623176236706684730150113347552134852495651690525294398845158060679771076718957011105980677794688750855583734250933173077394644587701983285990784721726361859794441678133641777261698093414797273224513103579205776119769713046533988086952385237204788061080947148775634783446385423170853400721907191393301160393561579541244606043524504384085637076076834515327002853186745368088646551754454014234142297836041645990841698230361015436826083773374820725026803103354118378195953184408380927853321725247750026551790181446066976856227578427727392888614225543258023449457389863271766938953156084298981064566520800259295175191247366708570117396893553560965470482081127997959284572962901279017212638940828390103229365818788370392872941185610332046535743668538507667418532041745412909902009601484108038674900651792703994859259294679715404366241987288857161608143108798823509565712078126880127036990474092873974266242092320931367286126214882045493751143844942792528269112355642064888116068691891473324949782601136179184031796467350406317984370889057605641591687011108164888668555298132860080028353056322473028772030711568076871509206458875609107876194356278205264259180665300186541917387543942925555124313994986533783262454980521096226765850735406071832768039464432881970539445817508422803615180740423459177146285744420729891740567255971675362862238220512640058528822971434521194347243578558176165757469969336517499757374768682203900597228777708339958893080556464844322677440096901365629969295846094687665782996597964544354270823719973816885017043833757625369072773902240166835168385351750222546723610635064440901102146393133825431118312368696804145368142918570845801170463674717067513021683705440405433594253864309425875332232417079159768009788087277085582180195867252711920615180500112199410224728562644248344818367871112294790830428293074159185395963201288746213708650528734408086739355778804132695580238322147956227275354350492217441121848614437921907464883629330471449469042505829998763192347970436818074715654723510881057996375689626930237501478136565870566604143982411084334376681110060061775763794045808858850709729455592662961479485233372193879725443671086196768408102594654563951561985541531527871901617841593259808284000076151039667221677642025490857757227205650359664645876020300624980676910871714878625104272446262505576800760595323812287778831152256153691155962536209735354563996319547778199820037621217875344753939028708847173212028737057968072896686939974194164998269297417091052697883865949894748205907760895472819886660202475137083617010942914022270812638246301964953075634381277027411519077653529080234656474736350970870395039429731879541694766000131396442598563327122498180487607737038837281050449184067636847112800701671512465406753931884829434313984514498564641317633773250304632290297177716720316958364656227981157845121851725303307023105928013258116366265927702787982507590658423840507330403969921756046633807881184961041520172316275452775046265507356039081851513957638333069444176145659574544688582177237796797106695355666909337671197715259483995572531506206254381838456744003550737398466405910596037289567623509127168905811283365572908066388037801233625108575343025335118506416722891201307321404871334135583650166651955228034104101984269918670184176492780587168403059075938176482346186448763538111471218622323932201468352550447280263881876901980200195700367593557204104249944046392570336846524310984602100796913894148260642058624921341779984494269444870651077319738620160805503794738420551610994664055342214632162207431815641471966513518277821591412983268579093674954940302372409539541954292541602286223167412748227418945627444057653840972539635631546545580086807811224173096284267728045239245261170158686515021728986761156291195852013565748220943131625621767116850985448510118309597508506503735208719007932266138357413258317915758819844123064150381740063891018520786554834975312238775962460817427717843058360779823367591804964095972563085280837643287267659434435135667319330442007749474737109747459806273605282879672683478708268918367981571616298381011457117208013075843410384109831138846085069738795817445848562921600537022846198659043873757136946410180830742711874176249125400702189455273192134380204916180408197805862567677015460661297881947793806449610695749809008066590416825230693687898721590055718369452843175054954413836067534060035998551010590534632502660689624996439521159403771196590455218064607703229641224076073860798725399258327774946301279027874802392404648702299639105356413519093215144152322444723722696551848766828044203742817100558973275907065070517583045955146145995805977984194845730250114507429677862676137756586152213234640595222594019119028496396859993350382271967014853667602849861438467560944229393464651798069405179029790528231773461691981660686818204624391234860207540601645876486941321191078073593783611075045788899491167449350217471569951170669546969738703344762313695286777288414356980041130785630574718459020590554801913078621294310910399099912254442608085780328009914964114012393982057697013518474993980202882227850638859876235492014039170092928333641034252737207061949346902050505432796868396030820295892487605667328576065192412268489052420731564716725304610769281912510645630960304703276509913023816467828781740829697874436773801361271056998951659761998823703543671037813671451334116117850845467708505791037165324249616914832531792315247469632039711167459644287922820190532346011076328199976241933698735568631967098457720899356277347646798377424710786674449852951614677799880543589990957980284674373484260324509593776064227403997253086606659920649853524736697712304286190078781092773158115071065385063429046952761842655626445881247784338876629157406649228384399964913793205436671178242280518083978303733854327345412300418542997863765208030651729251155381788934713251781500984468447620304020838934501204902099281897878269366726932080619377349793058848613095673363479900746876594467083263758236381653029875521727625749822978018002150340819017401253224414172672906725633778210903741101564627391056266582781183274462241642396998726636275123059015744464625849187218202923867792333460518691475165170838645457652060048660377808248347022886321346039824852847158852498938792526484006582199414606300396222167737859790966002257530665467472600647855151718963387646820544574126019237670819273450862312665223573089749112238727663491505745682975902345169434898048620850326417636814821021907375682684306022177075434109079926597793173424697029989376695879613548493753347741004210745993853669322435759715387160377880321542855101053964217270373985730812305943979259711175509781151155759646521473488314870133388665631054063098897283713824431337381979848328382981347225491080050224252769110153579318020243056368204253162468750575929343158899455926986124573151916857122531790619847766474301023921044812662978719368777209094289497211927128877321832380818131304992398479799146121660495043271459239419680247481523834734817398212112633368947715119784568332478309604022769911155799468202860698683680829159546675055744597155844999607672397352764173331552097547409100694403926828051615370052642578040809158518471961929035544680644151124502711477489422880259278196353354680051501725839448250022976894538847897836280481298103936962697685356414404262334504100982625411296703610913176768890497060671198025879649819007948788964844477561229349020606130472277640387816608138084131443158115909932842907680807657448973894406297795979433469416632525515888438361687701433607539525531800188103480584818922126334187750492693298928691841036222734093305142401645880437868176515844976742664521007999343488667388027473126338134162083516358452777271486752508472035455550606195936498918806370207021066428056012529641637271564502467052665989327298297546742174255942207748136906957542670644751513276594539369308287930271091052895677137748544404407657801700816502703849068238449970980443314160049345511785967234938726362737944394428997680076335032317093286166138278772422505781262400971334030823577671656120934718624684829760743768741446211439113580319894533367463060981750085592780229915828663661496127471595373491349251370655942245488379960892058265466094021477912879178225584657862764949432913324235305064699158754827778974250583833888652270800864999492184451388399746735691127384022429932479159213934209546190816807018837826380579931179826389020725939676462397547464249734297363715119507790186197596869070322933706899818761446324158995186926791473582403516990461760068817100923656284810507420863823503738173023553173451471569597413340979254615963125007459424775051755059407968919209214533092835783186214422040502606517933788070083924177688360397230824421000665947968353904606252123570985065092198402042935946066854224056218478427148587238568257819398619147357983033362641164922369623447214319347853728103883245629558276417328543998671020878689103708067422476357038503516248503770872176171396957854583910117656496531461860903280905037645454450702239269950325507881914849819348170639458561464769272774579309570280486408897870502241429029433906575210732658704805051425864577599513969590208718234055113719814831067099774775376399121370150723068173569034261090680775993638555656286333622588211448973454513977198814874567228378380810834485020406613158630058686130264284201975132045060981341162390177445515699351122343927094486063989302220489517473153181122661282088559758684127273388778045544344189056390465123219091663484857871902022212124787923912665714679794728117859323892963009702775050177912785785559368777550593880630738011971216168458012424320665472452897879418515075108944904653442209149839771352995402158070048987697543758585543844154062713054360397600277194949891684536389169606381933572506719268359134834799946423959645580540097309916900841698894961906535054749770686197508527849767604604033996764771930603033589151135979067675283367102367907042040675229700125390444403850446373443181879009292548950775879074969356900525229615410406725878842897362953672520402400605329736482200859292834158309312904215264138157823398184439559883765520054529781400694862635632843837974445915651313748703399582149157044970985883403581299850597883490628845164738770468770212658183716585626309041439164499602114040289209070910707669842096144894675661949151867337517212626787180398167886926622646062685506754997856065722062066719142959594327704634493449330684367280386478443359795901503475862136269085090752268718406305123829446159477070301727631115807646253476853841750920519765938152177604194426777180294164496700332682979250420607016899212618167389486910481843712571439054955766697151438985235364366701166307612278059993849109882930434477627364067004145404170841548648514069886964168902260508813465773397566757458413585106248408321020981726298700803715123006624182780773683524042217938331557831265712273723484722093008559434535454562186574261099634240337442959686633938802401325900654462417602142022013429583643321976892020509710726559631952055344438104504239071609427711033426899670968364677346786466016168589554190923120637539250877729580924188311053512127400525183657252159498241575891103511105967083385890809935985888539506849137684099219536273506709219733668277145793254624821662066608554844663517693521776842816261698460441730175026466019644733396781537727572124736492808138817043485630351311637673102360263993554305750363119538249906748728436951612703052883147833806111614814938553502933888889527721321596222714966907914101794122373424376453799264303482398448704732825000074529302555608733088202612770745632343077313253202568298313531136198380833553291543627468672430006619100486221582796403002147919886166587995800517035061779465183317484517125714799001542763950689317488446159237048454699346609238859886017363402309132105876857577969937863182127422582354675654758757284371589386647129966289482400310563489402053799823301219515279583259907088438543321556237269571030478036641013841702257413258753480315370964678796669055268462559716094242670494314541432325358906665533332846690479307421597577799387766458512227533004394350711465989535339763957943829664047286289134727907873248840235886565396778419144577486201187231595254345048750366189268103300978705137412031191073140224309794241212810759588392876721154049047934882727684637208386085334371964177621933488063598078684951863123985369637821700133684605044882331092467545164826218749501736073166971842931486679202479447764860633702466023728507555252505566260280512213875113846415002115011593308392944658707663471374614076160846098468801111748983724848294609656628223435875858471564925875835420672864770771781292603552633418538837382082793195254312078181972637332916651163874848167069880339440656578413130397411582890539956918830149211928895400914750799056117330430952237039479273411207294981153787964420291453629498226291874954457156912189287765650083044818370835160639891356481370177426541197546562106812027185008327152893806814964390007622525881807560622609557235363366527306333038223029969510930201316738211234480055722050562081350755688032766446762339319433389828015595431865970414359602097693636913645971937475808508491326730136838862859386534746762273018917041043430518551420142541605771489248734174176132554498388614105598853459012929403818261207820560013477745628594915154823733840331324488059878322426675983884021776972452039261756340732721430083926170329190737419504968132785189747295271310222860003367678286462341510774087174628698864283992150807692298260125649390236883006204827869836789934747892528445064969896191547996208804539244641339062219674181399595025940543066065241005220377881502803587191448527005354219686570937032302824314237166808328350043167416444202149155141112228069376941317495539826501131214079210856914948153621021934087748502473631553206562946151031835487255451416155198574408490962552614450516625669702883645410508012909660232915662719528142344077573528691025124571946796665880268325018697231311889150835472216208287152319130575910533515859264784041861898664231651708230173346439309246091594118786775394989794407683145245375039974876238493581582068960346913114699086894734064337095859351466555976709708176122330655050517427086509407189112503798782528199674830141475417205412523566385931826683334125626376949684464071536533153155633027302502475278668868400039867296282591244943015906124883655272427546562796885258135796473930687596452021583609742487603725070358007432076780377248269881843417345900160331821976062106356582162568426892165197186926093262944195525502390594824568771637190456329157395546950738131196562288734986321439066131595735642305138607320953042091132316314373926159200087367534387941549855026004398924684307202791449354956130793458288128676550827681826289195752325737525658246127920313201610374198974565869383913760451100482929726018118838477898115290304739414619950047291558124128119772288307507017467999383690229273744889721617786506424023236500055901276782430520692770533840706777704990377050055909324500512462497049501800964192493367103233132969109697167204352025321756195474331656360792349547041008750716898342993457732050271573333010379671073450081828645963895459654555844791147998497861755591538106491146506108381407721570899623390866133269535212266589298947168536269654142779420654386298552607163445191614427638599156208043492310248020264413354241553486598176650726236099339913899568971352748984679071929754252153169548337019727975943302663707995695605639186764095398094953587899168535779531157648916506496680866536736444593083942767429848145461406202636283535863807969906235380782332980698167835984683406713761856817706472355077118464441784127175787631031096384218433663384523903914343077227611765785098269159767407167125316338120659032434288409722650548929789790873609355949272995609029559673734534042301220779112642255380627260505598362145782652676741928450558003688639600620920347902088240147935717804241131175926636973723298593515933398556994249485182096788504273817921239853421924297993350239995992835028875220337873712829339792496129504783190678923597622107598341709122859326831749136802908376205299864646195262846785610002196190489699942997879714070389141171140643095015363638700770663691399701911846016154270141813470840569455534988748659378961496598449233430264987393982328137338736816905821278515679468072740727848778567016091102833585275510382998788249814789564850836071854379071446678133790746272819497252012042018900601587978650995932907822079899451515531059193786365145869047536337812885190443009229455118205356745722893453607016513753154523300957489774522019177048449536141268194436851235633710321136744486403072156159031956160484631744019671500165067740999213694798811787276486655825887617089857262232660425978185438979687769439986341356141137044947238387654364093803186760658849168566224604345006383611211047200563378137569104523645691209110141255635624672263270975771131656345861077324668099464635632032605180206120847861519415345652189431637153943764760683287829039940832161170950661429302228991169985501395380948016464872987961297668187080426854124189447736273808249064470096156931296047249823637277148563822028466952048917895958377065752106300064980312430514764606843453390897234205574155962103246320153790858562270474120390360900454448630520692940238155724171237536032994383724080570309554141974008975135350619851913000680639908593023154850125139443720472625517051078217826133734607072729149671307627086777153869175555593310570671072223769418656647599346845211128515251504537760520517923958457864983626641505681229048375093118130021789953543945994329230917841610897073299927211283573041311381286317557210928461993681423182737908441841374640335229099779260279095782935331317561619799695618468543654559058791634988265357546131257354791691286915881850016200476817462369836611789674836098987917440309464171986208538638061130900376269092041061097707875532268843969372015810331887705468208950783371308732230531897759618582602823838975233412038922956804781620373000484862244572836049007247727486002217551422587530085217773900722707238445292104818981343274736397982527737868110915053042716262464648846230965487515896671331153788321492735125899436652637823012604254120706846221270491424062575401044108157326763123230714151108620217074117921743829097885917630390386307840310571003132495261127693162469166866679835762776059760487694737353961374828934080220318595924065462347339804832378248136168903925333367768437298495134213522694208474462231597056615740482893618272270043005512623303802603802434021720445120883101286872713650630007114175879036354665729401756883547737849468557357334120540995596941220352638988458951561232762220700256539733432835979557782005800101357353277734969106751917975506710873055358810244570644139733915942158132931012188588280536819246122197318093574651161976572250215052033189121329252376392555030061899241325351078677849272966913439965343028378741791655659476786443131246474733443566577604620663903534693563019339332094413453067454502052268350792172150098264098151366724101454060676568093495068207837888006185392941515215719308925280614275860959233875326060623747719061494822256599151442353615501504540482066143613176289194715232492468241109407515875153635163098572850281419059340097011190684351358745293010817319308564850152458038657368723272137602578043777899072170808296929014501113847214030670497692958979172971728662951902501024101325064114844950428137559339461768125239887879286563163087244327344598070066063080780224589520259625042243803615364708972388209925771043046407127849932747692999015062240657037970782631668561251719145472097389953064981493425391968937827585279814739011182739007521398404439587519083936408622404284344242234994564431596641469292401775139196773097127021482895132454142715542402427258044433840482010855882341227304980846713852102688443139262091427375436266586739380838773344545072409776126557210835090184691946714587434942713337337049992131307532096968612897618110897807696068261348849546580842213578233104191242968075005562289997660785864497870977174790799471330586836542782512866777838349692956908877027121630667489018984970596940922873153692663350082579938565309496773254616751482358707630580076008352873423427161250756341409725327897618459070012631380696003897866807594535727799134894484736332817774252205532065093151812333812708654940930798544263966793469605425903824512162204744617667847580889230865384542916226198066914821526868830937044344470530665712999870557515491294886027203341624149689543579394120849811704422487813822499203133528077061907455417489735765850762738535416390828702102265879969792103680329163298271748055069199029308487043332802078067685813168770026571501058724732576848637858959548604928739822356894722492020976405455054631773701117337654747059559698766741704572581335247785855313208660544788962675233945067243709798693535851430961526460394278551095022968716021939178958521239291001913222916620300132405193607076005142302416299770609101639763867857320581538573069390196878980931173953508011124941226277579361698797963653316824697112182182807987124427664045716406243726466219562407052501695468227220013261014480946531841143009794810558285419036034685450713420572425935945148843699398732448724005439004388767022132748189608609409876229255185832989524472161393262101941518641118352862472788439522579655339099502659704184646697473178942561075050328264096592086140899491429768803143759985046385234787797801661627320282937094179675684927467271544099096486558994042501827170245292187398457879500930112774743455288018407634183523634034402611083886166228582991462590932225766142176826984597628336709818741086226493074046817432496915021887768149829801931916307984986735842730023594761124460526559877791930150130958681593216299550899926422653938091440290297222016881216232978004500807945062128535789291369132131620868059264235093356183453795979714970324630997082126605517488986320115896760964604646597360531812872441453263745050755321277031236535790952451161582085410136207062430433450043019009709097441404173427917452043566352582650421137493554608890634615508667843279262556871054831891079434400870086357295806474237777808799582008373088476477647036412472343268037956525691639878716746636638544960618335906673287594925013860829193896196768504105888959791839641017758700379838723069235998894487603487905015298720277053768142730356481959235648604520805652268978846352474161691388550023342736356842168551007398303663370783225186997303538655748452864320434726899518720364473347828367478562726468111391717489354652091769992218554148746188275658663147983298835902791837405621329345330922279797751810084692603903829211601661010234000156550031244308019781872591430834077454646574839588963652125088901100763155566477190213201523684768193940812907361030982874454293206837368393950961751508078953321347663482624480546367170469851309021434334729112124522750557682646291143786589432316284036715798568115446798815882369671697994633326674327185047211798370421993313458806615440196888697072278154247973027091606258737916835353539820037939565673634540876274203413766551094332018814357446606654110073597181111223175160325846939818012246672312680046409354532054550645401727931342380354437731670345173312323987722857867007664338508928773060048079533912767467059271986971517037193842537302403194070413155868074515742994861057165319443541707884137315734122843229273286353704209462315206098957305575608429065439680238232326392394546641022726083844146238951460019709290839819329642380722919292706133935686971008061493265552705711000777769802880617176327714047515988536024515854483709258793270967643421844486112004593090526809529050698209319405552826589243291666719741186354818651405474704276442644105094661362311444355331873038205965785028531167115798436204543916713361798439040912399750628513572519779009380425643016230151667416237505784989307785202291415030314272522802369308648497676458914067534724770190417956309573331627771883436046918193866971609597130007302261232552720848050298945460306240692821947135472876155625002318395568066887510423772199156538423303040589314806922240939453240452813611353225461608032043332307494397806515317704586000279793229424640633029138340697740631397526493169246396373357206868470439282238278347392289745378331876358806084959429629113013364509790399283446403918903669554172799770004014085923115617646187799111292100213647233238065285853996955681578848218051790322331958602262186915372272850448313252905561108838270504353090675332377219487391559045468405258917575666437536791189916249736942329836423098138858586206985201164601329322815944465155226730385810254817113115573751981484316399157989631191244611629865620782972411133298214921666821250732027784229707214746866714223006500760745985033678575893337366725097928836166455566874351680933167574089562174739073652200272273129103177346402520545977462855101502667101453700214970175003550908585832426202072645358777216053255448139586659902637146007935626539626768090136673767867660924848419624056129496250940707645954264813593560632174119772243086692964553386773309062390811696206513585917679617835405696280974994362402802989515225203610171694103459342003628129794932110024080745422093310238066360404708030967131639846232781891757175026117435842387044101326300392704584068932221628061411894095391095971578614697860154168497624450633226295744352547278720273749638073058149475429662613715933254199983740520785684084519835095959986357526542776154870590005202487126766788013470268858334946352761335625046205684760836438352424124199445314876658450124544286464072911405434877133900984729837526574404424890427990689571707370817982255488365576322391487831233774811832447084131537173581428148351523521631232494557608449329346958165975424673488290712442066945120119142664253257766142696945322784614867729865059437024500217349593850352927808743085364762451446302595634270144308016848729406702037068322471104015555297935308110967677501274997966409129800504334764291043889177037789616170039397984781486474434298630208203770739953918851013554684422619292402094175630730764253609255103769714974463336007877553540076866208732495627475285975519488139000092381047068051128874479172097043793486101420685620637033048403487525651074841462983807385784355369388324730671646803974908652522987891713109241552953553931127468503833696382254978508800890219466357164139160810009733767682045571379537947682027250793267987592543664686682335584411177225006284827870208330650432584564011342664174281219168154196485360542015036530930304933788152727021175789776315890027815030473267299582520220759050635551197620731157328005902329742182553590760536379660680291080197044242794784813151566164387761553146355447027537772627478821909491097419721372336302017556386640532634959882452079400074297766797350849595062396057467038212668729568083985705201720040223793943861187581340387719428191052327765425995078447792892844103843259534846910296489631710742297696660004536269066337709806521339888659957795116923824939823663129401305851013375152766532345354655450807131741675620710588232589429100800476254911251418224820354852384238376538935324407776957966145773090837224116622196669100908657486161648355091303110716424421219437060827938912254396173629359965040320756260741960156883898741592847302531880542689080845265079549833779477759790596718800131366148782093249447663971835199061544146781607864958072018719756940231199331123515576943623534906955348878157536738473028695403336290840802130131179594658104867723552715680130124363695961296984763137457481107706058559061347962363004835016451859764541813471960620886018887659023588798212593005961450799208664641471436099004129325233422093608117001824194953956848401358039700534504894763207848181340610596893414259801959988673197534062761406847057387277705714311399490939097054852729578281722550819817580382075481504742969993603961529964892956804834402459051343914553481423923934257833307497307832366314536361548750801901595933890417357284505235200192429705272207398978448118651784903142762056593405703307637281083481851823976313757818880735629289756251134161552599526695708518519542953609863311474508656626433053127005381840139903685687364156986479663685023182991244151576439689694491555309184160757845307567045455647029856610338789389119515515408257711451151394619890441194234549944564534535057497713632530462457709856042750258391473990174036470412123417335752664753250505527364245965643351077879703387980779677526490358461501490640182300500354327454253770673726776394906971523379195543373992202861877732577906647846076065262275096580265007740660641028081375069751958333215200370749574571293795738691522834423377020100257621468648668345542210127566421825594915462315670701150414911514374346675593235730042013831060144191294180176164238993198975667081221842481537063343884389164184635263076284603306404278717999176640958808144716290284691530609293937414961802982518350785361734656085511731856003296919038727274086828421129579622858553306066273891440889593322437537115288000219802913503622627553810257804840260981956280965159566053287384710751325451908443178649598142535686746909782429300596424130917344819110141121122035381254524313655702304596811581919738942247792825029162874289723303271454563807426406013204251926057784828952524327139978093090526614885107591070713958777358333040339437338355342271347858109495101238101126100800375840742879036185506105525434024657556996391044764251298978304452428084949783821184900186881095002570930953030093529938320989755023786548920581465531955704238127253828277536337270989274130894666787319480387338713431683300143727715135011359823417186556288316494754273277445420431697403827306535059602955129601320393302222605648335235623196551015581270635027459858937210536307848952805685741401583585923097349246614812975844671093572056256084201332889737657441982159691707800808513523386876414711406713866921137635138054864675294186864827385482841753074399506811807259751285461505273409655564190634438065514326510906584598573025385275724185434515222504211907256783546181003434425107518166116621620962344552723624464801224604038731166381983914244756696850502550801946256319404167379320244328925448543831904171512710771488538159916013547410850611379846480361338715652985113965549446198080929964166960550042632933976827997993717893809787285997449350282596927537442074770953138289565637690079670227735418617115944758474481785756818646111086920354585484806063110885028119797574984603441951551019649754996376790101807930934103358362345352959103978969269852960584344629008890018426471855644753914794411788216286490820330223553740986460832255830955486929921735188602669683114734281723774660684498949911417688722636166188865930356879451735827921143730210996008791504794122681994634924912123610431249157970593586641618382994613959353328911828875791594245501041310782084560020389668346012676169444564855584325162876906232288314751370913373588413124576556279068438777644194130732607335405785705824940867926884497360071990068237448695665337907696554105312686031222287778061184274595682039522846789053435968096517601949340839157899016776914251097039842686768667699685197042273675506268914134243947093819688856027112320562601673113583259378696841164305265947034236679200925084061887165194912962798494362958252098536148219360377326095289172395912922126248999723112672642048165151689606985737501778004307311278440675394494841135846883234862408362730552940864642859387433792260881129191090137175745647594884460884167770894912532884564301190144832985150376079578124451816484747512891859426122233141504129212520933814057593087845615708630183209008198904080727443115041024533963731983199688444313737749511959897087071959072532068527952150745937806457911312321799134754833054772835056572558020576769149902370495981588080606561572896626231861733935009012064869123199744305899185659729349592488698165637446526167501485421604414881647598636843745558706371970637453531813898792398243682111383840287774806393019164646441494687443455739211522633613076482282502343270712707680709409297862267212218369626167845386091168396684857588305747026708833156953875574519092371844006145523270402870784493627809474826502659091128532650963403376677309371234024084856615089410596824200402046756852098559740767711151066917269608493848761907537477428087698619348337172958240630926114574136171109922302014702672824316084477013920084335834164801208401845884185756448245177708412008836226297932608346580154266588284691061338363434548799396942025199755450119862680629634701796580500436947837764212320446034668901098989524035925273632333869986587191319567819532802642993591521674840376338691124655178378333299372673800508681601335577803105754338171486697444413287836477774344059159597140199396746344620920026732754185033673063604615435335728425999643965409822594897654518608990062230632384945327582188190655079297935396939548896562680489851836822553922548849787926223443558905549006635626424319081912686224348714055771292432387513914242748367352893038257574899442041563490701659324519623379531592455627075115305076040921938925033988356570270075626751523621489816374437347295996854142360422138880633239379317844036518442242633239996246971226576213393008949638709288681522543860095547173498747998989573153909059399201585199830332451754187918768826885591090674208102022282467968154436519870880201104709490840977878742073402214633162106768090331933287441762468527157606279815807670880607832857475603157836231368228730176425746983202777159915924069152880385745519323599184457271116028138909597889500299304261431857575309708299755586785807268751023485178508741398814224574031224811302491332827508682847434103026493743999602297689082876608227814584007919003190187284769867147258835606983171836696967378904164291184262407564435805701133281256662608253086224057552213973122291475522156886614256019068079822350907114304873784140101486399937673268648439150074914235744645885721336348819290957802524193435698631511150199331012409375250414542814630838798334138231284595753750249493430369416648805059332891648522975381400954571894709738647484006270868893323331575814308645591989858999867934559305393334103758381708626899438177052642327598901100429601321148044003675173489007337568294585818283606058287692988204866418173413358753840083244441477364023157727980914269317772265208519392235851609759639054599585892176974873120173374692050077933194711135626800518664730850737745127916209342075640671439411465749782965372815602049685908282132140997183561402263547349229514997324626229867775393089203428758419357888644085115815708703057096292671334840948546256385295481685908300205701558015441775989557667446961440591494294808865157863655124973060904093961001328800069936440438378591498399270034729447243672205783426390616439752008481627079201645750462693380704362420755561839788268000449165031555261170538720287807037719734681226647626710497029732997958735518242862317283709747203438346988471012326801934075261563124684545018664335316459238559360414848326621927505572628286078677802361808120201008161779137778973513386752771653240408750365671135080030848583126130563312145967837146998422959946264015811303090524096950703150355042904444143967809785982108942137694987429061722517335132111399317780420687357832174606515525523624460998229913296856182979979256433436291595389880252386142455479592522790163732762252853855319660453512469279191298072164928650711067204507916170961255987594058099320126610829826216287349739130172913617486598871815241067468949113868919038239053146224146843279965059185028916855202955928197030137632668994588854261493386220430552555145252592651547270644508690460327302211912876243686038058260688050279590834759794536304893737978379000865793966446386656772990786921026125965176457165447839263185048112375124457851098987981433327432647949426723929737995445135229854153853209308511396528738058978447750537082549814855816130185851513511353056162797411101255999875346406746630342400241778365487550946659839538398606046325085802875572630228524803800361198149077486782485129641603138367900241998903791332653197862976092332362088588753883426423882178741238241850487598776780356880557670776324100225800457231029713168501024896618765836379479669728206281156550539638304237370039937404294452921424579796040744929665766423058572952307793226053266004336802010057016301625149215009886550644379480959584716931496857230765499368148725903130139571499846374977643642503430101287729348306720058968203825171218918098360391584343767325366598532311016106961558770692351538851253368821133456917843564912068852143120321077269797889658218023920252694144322070140926246867264234249654651839973141608227410148080603593678889049548031488904166201949519974446184560295329482121711660319313463530194180879572721143737147318629766181570212439917492886116853137821189108015217023847834473208826131447388334282041797743724950691034621238518280362958790279632492167080846562528423533511907914867890095075400357558966284921934013217646810728613350538060147230637763030955903565437423193016777362390425481706640408974031051502396327404948178596652460611990124840154426402414822182808286496758631004269576161916377113983559847432179398106407047380490021533852933960371181890917062832712268095561936671517829593650055178932734534863735089000231859810838714641082839709843156596335691090186706350348009174603770554875964413886355919226938597994750874376989755539050807699123037403448233762267962696599736084541633306772775378709706773076631022784621243970045441581691480717757669016531334614006430716233430754485023072132911978569817659986391273461128761859432270152558971485459133268953222085782743011312422996769210851831561795769592094002356826245849835319854857668676207101817251079079914392558921584259509985772717335410747304817111769445644083571932745469559195878818198389141933485981534131750202969983702292428480287425915855191498252101328395524361584538603830211002151061934642516028502511401211991343401234096806996306823684420712725944290986732263226036235545167141801613551659285192923911769003343653842801109986760060591221589747276524723252811544233278272941152706633825711563823516895847087268005042184795241062562240047995773252901381817190801442194873257098219862282191107037607026962831969480963400124804723212691056593852306623425566321326160658839571299360690013484896663882969239060009065932378456074051489695713115923703522035650421905055629050996788282476453547759024669162653585380256852073946576550684507597338337058722801942148148167270013541454202282181824201463397112946145093749320960993612793532601519155957403980742935534404216632033027937209873988865180076730304883111031592164702159439764351186537947242703333819500321113449352508512665243489462558630063194096755396489739140670176706247971687693481930345459300399689950621365934617451305572431898521959697188540165867265342361729877298508552777170221212862250587203551152318691722602760878651827952590912395679114001795804774979586908164425220500045559566609111919139407589157936135062668311939099129648395504316824117766595963403473120772081156706089221465316299488386545555209543527651114650285499022738990694692441102807576302609077813393588560490529458724390102517745983995383802613600562291118015951820626084435799677286733502795749707079729024214260878814761647777710454446150215696943955713953825771869343666472787721208193399956441692113035938501821017691803917957345322771259826436325695862874952064600032358494475463354768959558227281431962979168537889106425855952218374165915481111603975664201490021395580727735345232978209815543878676018247353797285185206826534574484443946762769678893777104948859194914879520549807656839400901777947738791361741527060504911067952688216525029379929409801930232319686012673652919468092529644408704649786752028516939155706609340345163559611362761091509028636052508957657722029611771318686522741073092593656465807746509484676929650360071282563385368225730920078440965296812954270624561792439713710259246165231390731491477453168788511603662990780411096610768183144324090172650022328177227116545137478743651944507492921300600075024942474974113107114439751879639958764910711036182720363998655370481823305605573023956579833129994582611005678155903478684008465524583463019138753502432742008420182998768845122932015090477773011039802126977959660699016245735183347649064397698640103363733172681083332517685496842305278676404044000483621404314268707915092388159922826498304714867505355375885323544070898771996402307575769872197648068676508855964128649431591385117617628883444717162475862870897099187441241734133401933035839994195052019047821401141523663017132413065969073240243384512479480955636214939249706933646588741966722969843433589795231931468008226852749742722122769554004755903208441288861634147271711345171718681483120875348268742038565035976165620932019975639763429891844396273010028409174917600711245458927651155738930567028915089426072597009636322383720344148359486569390693494851894045646866882847343909050241558410787212193863956646681138619171518802385282425990543659666432542201530699096433902665653896795031215181951203404585012495360223790418327165209853246165526738258184638317909609988882085745006350940448752210831749288867218948559727964116787142232955277214385025045334524727426242778115301490902405243104695122350678835145440746256393635816949292976614365063054347760556207164188731999529473382478225195030608658219291434207279748797109510046712146182374564436913638179472600334297273781852991223789467974518953499132717437699382145694853924876048648423986770555184697275420116659289759751639126011371041524241657140598467373499973709277263083570805025625389703153040030334240433645267015171194372759726889158282689685669112651419609428682102806374884433936322160378992082397424504530247323732793224502650884928715830239364305207061459600743964035928080006404790506582434664272180843223088652573937464656107040125890326163916137283681420547434937073260474189510117207199742816884981401666147004540783631537304376332571922472300513181199888077885631206866835054749490738809989229612901339549378558651322652938952906912216103303949557602641759015583151290144739891696730450113702758828907710466113566833364357838471838743122997138555079430881368755811819224187663577497169156512339623538926295986827549013427100579673197627826844552795932346031941962588129182217123809970738421417115703475706605991801088242390913366339779623097428643688050833913544082431392013558384021455945306925083000442555900792854160216076549182266730875986875040460141130966212358887908154902794447987948996909881328772293513879408829135172645647326605010601571834230456676532647513844827918222482042289526565411228944647676400443826443837640166722839224421561411897734671785377056089499921716742998980066307495770539987257750997846699757257588236605907145961106799519881791862607740924041045534187146730809591804378429814160864674316930639397429233954981667657431463651718545716191652766172670068886857321301159535780538315292742564131031087193427984008395154554804665132848273268180056771140640739047544190538319217586933972912227921640121722735393665523911885884883642154491670833093309562546982898173146728711930857908256301875322861166395787226646371633108591515382215318636127975285158612720938716406998892118685664187567473964323908011576283564504194819907479769282695841210667439539801141576960336934449659796155780900737523959199139446870512421279511288547131484124108855764287669853999306456634237798219408137329798210042924731341750386825445963316327379319189739461670473285873132687750506378591426684283059353358185251907999082396438579308739572709413500986999341368611463907783672362342377737846701578199723010405713073967199438413938719466909062069517986302684468710405103644546391181810068988931178006027638465502931397410753237733318782836970169056444995727358426909126967789117284884818878640091647860462850744383688980887267506363927703121849668427768090545281515540443910276992375835923770874727589134207063427303882102756204206227519670274974150120684758534768643613394299586868810355848911250956333657303420957744123249714581196852534505592194104173464439895868238197721709246943107023109842434499242450632354088967789078704892587769299835668661867863762440290224620517184813653568881588793320184341613481777406456313231150283437528820982800926260469316113862116357098982060575683457071630552679680788155579690860298319853061626600757279800677725241049253691788245205482494526848829354981747417236760131426861679937145856262677576584325958615785245471049233462280181132309124771898623581736008475663012306734854253147669087360486787544975204016367891984428569476926133863525294052992834291242613371041222182878137488780526642136241045188293755912032404748161083903187068156188247061673248930730876965149304967724388396369849184492777519290744797795024538932275741958779258510795338605324906695968300405536207229973777348050301196342876768932613458135750996962446332428797073250598990428409971977012975361158542870731183804287720538017563400153963552513036204313171570941146941124824455818896985517036586348108877580590906099172946038683642068685437335127177580079834071596972792395446747823429837990223314206928907989387805686887397751228725113334109672472588267463150370446705564004434498735691192664205869371294872564490430073447907836910665819080521702452953311050876626173025374956025183169227628539050014919710604011610503466897656296322968687579365149506202282102040093866611344881427155287311529510647514752482015452722457645102705087079400540213974266117245266888250374381559410215476989755150023096607027235057931355430437902782638273616525888697212792618542539603454185277607198216272150217343136082289813718789507147933201653443815519456849640738168812430293781890181628276496843972612735634408770169353517356083457004880059168517174598311154477067525474281578057303277481700520776030369633129381711490832357550353833686041010530427006884690054925649501613130757941644510126694684971471550314241715388459482356458946810708242883784219022753419554281792789446623347307236107110441931218331152738662929077358746421777862271774055952882851793582439703094213668678226798540534797742198243957009435606529946206615382280492407740826569157855385687005854703549164368697310206580502966930514145109509678392661205283121078924031597581199688367075966326681912654222256283708121032054473204483666455278301175335738799921879630464226146123813041690887143593038873636879529362093616149681227512472920028858279204423657980761641771843915060963271214457500238019938566780506061664319698173978796455096546550518151779864061968956586966301615304402704627764399399969020729547187181207444469389406649811873874875772416945149607651548740398425057774294172382262208911362419887601085194277674542367778664515172909190463695460937558178478139566590913498551674547364450351074850837037608935699147253439460763140762094760277268401174011024200447733305644252775849279067224734376941092486271153194898911813937669085946007784973960912537277068367977354738856260633439319635363487746651592014682276637239647194190786648103271915460712906956495525940988878071246527764767284135567642057310673096896276984686738497280383794671010636764249431112951571536806978490795089410941393208109416877935257738436982295167068901183129189519147365817439693401577764930014599344497827766697045511907196598220029423158765772719163918189487541654913453639084186875199135638500677826701971173847953803088190397650089401574856674349208868382770434643124348145678346252671547931663977771320247689489527705457668898119584431074006654860421277499158601772149834988038701557762349056782944901960881856608348692660323177570022306128334284641383039794277952528988557882487045376332375014663969394079180426179787638199866004107410613137160984767593928882975470213344773268264833711236097287622850999121614685400376793454453625076310154855360979418269491924189671519852886017987675450965305994689642234876170353014718939864566077574059424764996948975449896716707611144612178849929032397376458064665528730016239984021924990263236874436873046503164464297301180828407851676200919425573313677474521225983745079349702774800349980472802585637723430094765065413712301834098049612859647853966573397463800260522806582403989022637890190749787785641623131132573263102306182459158647374328735358467648495882990369937091657223379568998211766264650620035345315240255934308997014686243349461587595497091426460513883867372504208230050990688769813634828116208273681151074728706397020582836464918330141439872372780880232396935389888209691766370087869299791166993556569629957931978074334186850694784030207271624693993090597832357357564698323359514512210509319444050930891573809454870443410172472820302648194010415695411041709856113691203853264141972871129148159517970262804113986568047204432979226166413498060653739802540854203566290815803985385713331750338052264527490338796735355675649839453153544282603335395487995329442801133137296047674831079987203239763149597381279714776728883270776156158634882749494349674731269475989573836936551561596235723503683548314179385289824082915830622215675773145180442122571118238367621848425052564316942182370432261049523268283221257786587189832386521357399506028166726939389936666422928958831282221366018707854018209159900394604969151739976640457328264997817701763563677256770450029697562941960611416650273487036339754323706720880225420380806486539799787369788590279949560136698282878064507192788916134886697145019147979794879132399439869619907080192778509477751836094558945488027855913646837564127027472372555017491323714981196543794072291788826351807424461299709084454935456221284958307588911048713364969270996532878452377679103396492429776677509038206627219414355163422748926283448725555058203913368482405220052028071261029749576313167565440068131085159408533064833026571169508317285201560080972779741560069035447124032398018564744661154143878229721112093920876103775530729726953457169446632511316395180363537434494178527583054033916427096665638040779179280167710324062738476320590712709066037558125129858006390777460509046469460907694571127561315023947895786262799256878239323179865655257300995473303919231058686926222459183546453649505019915827744351972326963973098285305556337745517251929126273606427732758870934300014683228748801901490289255849995117592307442735658981345978031980427251051143876228652719979481649349515304522418668258812590690040046802876295886211645994900971728237020686541784364028804034764237834784675487823332286484878386531497274094546080531307453073134913662586640726305327776493545562385630098780534820910596310764229370743922795728266941709639218269478560409575024613304992329003741276250484340614020814719564951927238937746395936899017931114838525850629064010434610275920583128133748198029848537173051858618895610429355600731185855089908271987038297977152976656515553801781189160230760762710884315718475829898970250286077759819368342397530643542145578768227593913048426983411748000619939243842155336256538014689457373838526699006808293007952943185911859015269458634670575518413062598443076716782654707475529288789263449042390175523772807777685164579141870418998520899991534777813040077254349396167454144818399395955783477666573729682819766491491341621214999511843336476478293140748209921089895977672743327982869768241271623844328197707101448473058749507521018913971453320685572230356278466047421504161705641086787909099399412168960210011851303566230913006948533243298262667639278401475323224259651216968953604655040880484932831782717278580454156630576014164580275859503983001121970200529407381998828547279594877952713523585298430861532104457953355991997250975788376876486341496388070770507588384548194824838810982753497938152452812872716070228266193483795806212131571658117689407840005782459800626524430733853711984210805502211591392318029579873316419825859192437545334640829993181843845132808556783648750134807487617215823904957825785655453279970586847894836260704824395253320896119091048770666540913868113352732630798429843441245232120046993334030744366819543151370402442942085616382950571494468843068481589074573175906110189052952371720446413167487355516051311264023609133024449702047944339126302492963768662744415298236838983899105320405384032842837009414736924498404388701711283350572611711000915456242485220367616298135366988257608384671091544900281910890573136870632271927754856731727300980674635736435873641897636829563300818809832815877951569287384510606759119869035614436284823953011684737525124446539532128714572363203857395420081966968920615131326490626220449642450764290584730076781859742895344441524969103557950169764856104801680084896500408228609178597205966659329993770714815607524928148655654836547733575549985169336341574430744899556572532548660326913136205836836729762383168423761247855187098880400370483593779676963286815331536888937583749595973083057636077937775483330832396605044755988261449850494054188266498877882473811332760092245152668268888890289546586218671514330283184090617775634261505730449778174785265689265191030967230946425651702761628982365318099918038717479517707903791368747486427491703733914268842832300950608473056776750778522648914659363163430589255885433545662430484481565974836135878614391083373456403435017887797880795699113807261755756854307301434940802121132632191868797886220129125445029332165557869876667223034348747839352068497181375263054855547650380802118868862279943657898248096172003273790989960997998606555797554663508636207090978083093821981332228003017378188237676516695676755234020382020208154659573728823748820780124742506673888631857492749124233947899816275644196544021001183004886447493263925337411077111244341165761887051348312185111210823013704789355884997121815989274826939585275877254955564528061437142665681416568714745291282839721589046777842144567212097599540555497110049741079583312230988119044768492772762140557211373815400744521807865544364373921670879369164796334713489787218796202154621623066309511137293193224387680959008820722316309220963775076825503265851690278031751227677087213255760270694215409742465783034753514862785498787889380876371478184277580526437636617312326050114845845413631573292306933572946718037227418224424177417766365413318107474881158573663664437705245333810425447510311534977507209803655184702773561422009814142658515007434187674550805327446953932068334032793725729494449021162248815857410195542074760514328559593119886785160076712186474821079698462011663672369178349000178023840501161627498799107161413915504918511066070592155246202855182886355399440778178218631280186843692458529732759501854004435597991506437317608932295768256572634870498357304721529228723559884620484907091339305339651707534559201586597829770266274470936467227608979298202829825739784104397436030530105136220659493988564822744921864955821731751458880718371509545227722080446108958262763720339913615865919085967275490987165871686358801959529356069115666531573335326398674987885949089208849230797567074331464451785123848982414797218691116391427688466763882974984295848012390845292007699684612897082912263877589727194971143266582043774928143362497472700026309130262433641510124904129819062206916046336669629469865620313942974062686316720489188764071893253635694223057342386693174721625691846259130035828643027350284152949252241475801811281381341989609002091701749306820879369992025531515033003919048009048506814274669707214050443141835898353751062347180843439941929240803038524740146548803723375639637643987406436359059471631116834867441398133318503549875947350350130091418364082701392947129182373067364242011315612203433698917251466629406646335409937083957462963577095659178642592627090080636068905475229152707675503403425044896492326065571738383843171251619666256027825977566957019977673850605969996153849396735368352549371864289975774839638331053783906954219103019565605742799569228524913018668165596627565022358266604964481486967766664050331126935389006603373375089655708766439890572745675060721781755923533039986609062117445911000434045130498610265658651805000070695398392962256351350933129491810015801039081970456792961803766138522317373850905236583059349958790366626095336107624759946388026279518489489201272629085694476424000281742265606455006369838392868102461841547966045221816024310878936767671393792150499130971651535736318609561126713789746608923607237243158288643082911481998568773407790518718316808806581088621679701892748658093025703662595799729403009998745763210880441878966613506338936638096010101026704269217235615808564705099824059670997529472244520320631484837603103475269918016034195717474005142566236797343479411661376819715384656624550524056533323449349323456832560222067514972391160817398712302206669238720155351276365265462037473925168584199750042200181231539240475313548225669568010926066495636563972533885880726033741526322465999243624786162673843336148662826993116753959010261317840900590889565373171222278813619172198724252927600004200518422494589948295776338569295689767563298364610264103235167784215400313126986206980816285876477962572868378516986850695344897698390402697479815835478023083712578477616605958883270838799390988405228064879439816865860572503358667076915323646252899615447929227169816583813989804883518924960765134244634961574010620831775482578832914220550129568294685247992287697522295586237397305689640991012912092552864925436416726688741461550276747296162446875286687371339866503161567709021290416275835477995628234534223152554692578055126055194259855563284584497792587383537609882382233840619837608595113829339983174432358352319875749047046063221735866129541289598224981191410430553745420949502920882660729559332885008534513857012799121371727349099988976046679587356489097093619917313773731925140642145738139716402793295228004388912147971158552248148132049879904613342218906498896111032785122921208699688833574805938841525005751269743077986808360863991114704563396899450651788172971289322729854369499674956772895646550448177077114988740264395487454133283582490365696861904832645363081710153449783728617601722495629924690835829640523538410085972409182970464154043470256573667488309566427451478699608178020514429206142537478934698675058219214813614985588074174212142692519343653921804844596457342331310461704394391147664451000402376032791017557247060058819649385108583763597396400824008834154114504027043698664266544964464012906517925198462044385250558611408528753945069724254147261716887934717188873497772859920462779849939153911235265333625889778841656424662221778905962953867430713844742868719040122180773831983264073419182129831820757499626530767954257257419699108410278912066342297573704168118941622227625951949196773774096621461049565463050871573157670633660111504893480553879902363116405812852610546724239415485066492390119192515922577725362006759033986584407717157982495736445786399136699739182912230822929897008458561613943833906646806752995331707263120159528187808164372895005057168171891434222122773477513630786323417044447007251675581250786281548069806178714838304133129458558605762996672756725922028788887972307849668382936815180506550843000209870302752404212137778351324676328473500071972662778095313037363785124978786861901392557016364198604131643793983705101232368132417359694696604687166342720158090554890718948959563649068812224115935122190580964902374579809881123417488897281604539233238699350772335327111419422265364846901526923417633086582751704696362853800465427374087809268651257227561154617018434457081806410253988963947089028834163550567599091794039536952607132850699726977657281994767000027112450866601475167672615139299879243826818277386610670442816929554879574811325744371939374697296367226689930338241257256184180361088625702879623761434710988619991866140076963015749700797357777503420018036785102695353067086937582331298548597368565470680435686873326284007446615697203245615959684763090353399730625066032966101439890730738570419819407572960422806825547860041586545476464893312309889214101331360955718810657315916480414951817675725689285878699395428549476437480892230165495774518157022428405520098549801316363558243385665272811436058590570552331275693342905637959132153246952760042271711697312252687837995225469967383000185605184904132233221262069476596611559679899241357827216824440291998149571369461681038558892105976877034101592241853213666510241174293662440325652982758740768005034420006394951810867847090126806442934973375809139645097980909485277818656693384653002681771682503774997743068136759513234365983142764879679212659688787502247817182974660872043869499708452607354749079466096283438090355199260869918456199957398122819663614677828833912128625365931121250879147890969114978472946626203019060793908185967508383704205996573093753066879868411999137159156063490368599059669078880460063934756139960592555695730980892009871184432619645894506476699711880994920112776011788697556582057449197018480194045930369729545073731382529751628200834395865543182714834464485371464274601031412174477492002331723942489050344963677652938163361231692659976340488489953677261482641292484442559222499787150592615723648042342448419965367439910653952152956293584791736617535066198339672364565266872558324659207187204307675280497654715714042385380429499889922594261049874331021345360094417986935037761991854662183050455018171749776644928706091502283166039570633426773475798745995781325601617369474519036361246571393806159033947895621544267505234296074074922482435550482013226615369014624284489236898707885209210007073586761549726645478847224834181503327071523471473084553242686758213317015385477067119216780568171115041615779506269556428995068005939811641111713326079240151046496470742412667841111334320824880887062118663610591175394610793518659876696970844153028533164916099728506339483906667589368036123227295271469780143633257203179526964634785278135763500384190670286667970830141509392564652044993052235093220794131520325075380103987621501753807153658871083966740359805446456544763307500375019054613551088048678259752189090556451231770631135276402859494432448693906999495705521500658638920632471004213610507703652582087480656849233655798327027298826253647557839493801714425712223916712778398074442262557891688225961046466604667305705167020945298206441909579609671582478029061695128105303575416737606241517744816366746237212832896282379980253263140156360570983352788752624012055055316708509705167526893920586840452029685249384598881167603305505306118331892787867259582505732381683475125788024709304274881976809074244486032651692765880155169793872145765571761621080224270096417361869284295198153630758387849865669741602099355696077543751896552806517501447605922125362120091595542111068490734232115227901365921115547567227088960757218160932483605852065043417702574114222984396505021052120786794764700855738973770465650426717697927068032384867379628050041950526924123504348505072003460436430986750518925708471806004300061459100016073143816096111052921524822305144756105259933231177034217796768567257597372451791665415273570869090794986319946777117690892263124739067483375934595233751780196363704611410355086392197633892094996934856210598523988163707504213812287158572583756022863792832065603940130723104364061545796360389687749484661413197551804988437197367848197392886154402465745113650629665214181298841376037999400379205409314741436293199056271343353335451849168978447666804283107174250579615768998017948726734416991368416112587710887200615797524859537805610253449147324000522890620318141820924916290810166416397264068897283490780098154570065490675474088720218939110794720280030972696099412365429557401088413052663260301123693543363648440014600357321035868054584468655109412086966737663657921064400239863982795974978159676696043868479373039472774147963650012339234005390172985768565296281155188597330622594888475616091660208748913672840185119971940265088182883986045161074604098737837911955270953609438021301544912872448257225843894751023706534665407369520286069267760057304332514314535836607802677643563800500693788264459313048413133261715151865951900497295700600464195579171669335401395495930781444527015821758139335562138646706316449736127048659441043820912572182865373580111959080017743895436601711604571469412191030509669365419329862641211346656480913997825543238206285181658035943636694901378133425020000773013594195271995008231987971927973494900271555229712450263161700489278975633503390203097296062423690775536444295198778576833368093745392175740501932081029498059899821970957013393361461364458837194857727086613569906843419792323511927991189269908273230768426591915973072083031079370671380092302139194730371013297679139351638450435976686699535111193141579556304659153079702610685831641793225264031052411981981104974174524912075185990860944423902809460366284608470677265076500039378190366887014828385476806388547513351670263437509470427726750975757047904023056534867890673015964514595767293559882140041420103835150941575853179040312647752143176830849758039222419561364113442078709358442715569747806519701852869943103497450195986877380629484202896239427780372093498827079520026047716740663746156319933199428144362467590167604655954431133107289052431477929769342099365984393465374553791885778510474079502253504175674541450869644098355758853469323474845277250923555600718131426710965256105687099616340444448931826166752221201923522933487248640012652885389910811083188292735205616869861579253022922884919952784910895554387926331424021698851047659845834377824848033966649357278022276481181478764478923005829762278354165796255214116344032827140382697020092662575816062409398248796567535877053446426449832599728771342261884636573621159391737012692553391918185971748437617776889239373846890622047084827219156318070520468264736201176138693427285601869491982801943439834566136229652777004554085081428188436145965785074552607971460540161869570397044488756088524831055757850241000590772225757690016623834676607203043423809075970561271360291865020976608842270362274920732590038192553857677888675699614546573968087688941432907837712234477468428622504677652643102657769478470722516819058030144754907918037652144785587901697053745391989181712994127103264714177964052270657983672481240384814764630374392603759445188759074571419059438690638260556408759682329504425758986290339490328220383436929044358253059485305467828675829433745654207295923787576691827399249838709710584314606603702619824483930811956772900253644812501845699050035944563273351541750306469201081132286648643544820177664927207051419546570243027739099894007891947672514371537080005058154012541859793672818494612989846070068472971343054417331810020732370830175277665242635747600665478810952215988847190717451084166934667035756450357484686723162583551661372132751036856151563264809100747089609826604764864098490070471412111063814417067855263906401023156674850943461185443072874996294353274511211615518200589253197321792029500330093160919337809379468025750949489485950142851966430249055321444335313781715711359475778118471338028008536977371003075959787859540178033836581293019009971531279032520321810611873866300630441313808972088531124475701886353724614062200638700487149331922197484243695331908584023818289247653038400850829093302371874442141652733891244768240787636352554226161580448226982130458798381701461922521045047315031758789871082857184683008106239900023762998339283079638370090061401505916300759897037509939630059981261418601757518288585773846670901985247903248563648846844798773513284984379834573505623831846681074540687170859021239913818010584662235019607595642659868425892439423011609001935275271505064681179822209925486763759884159747049884563831617792737298134124887477971186929425419421552448716794728683408592359455831834313595489156420381372557853744003115043557058692310624277909399288130757801294488576321012760840013130662472462240640687648749268885103299111503375687288168655074071276679554410394291510871810502107427548786850236243915874220801787170679434667867845241433478204287378684776002584252941691596310637534264734648499983243508530627670872518166990309774835800108725117188622668832750184115460377820878979754845414462756674538940385031555311319558859581425357346916080675190877667851104956296715834687345248009296132704620561568230218557570726841387481353340342450361206271063321821352867495241865868462952248881402306692833739981157512247087482300237850319647908767492882617867692232612947039892548322915610064805421069120924778383846685050138799344886492918008546484385161612961512509358262227423064515087996822584299060389590317711882511099369150193652239683096365524120732735100516369307499394165209338938884627037822103350321716786062568539755565507306337432865898375269081654521647475390485480799867348285209299548043511146985321505593492889831253322139567805851595407831689121782828271283889192767681800436309405322845954194540230961165357388137274991737532090748249890144932693352181937225058141287361520631758160588418780944376910176106410679742754072752995459318409972586197154675625228613207104599337770534207985385604692392787076819908804609862633563220331469668299242811403907496636386641402969109273235058802724806985377016551795705101309920052985850233499652427063995275617725983874344307044377608923941267427773967378205117057173722287314410018979604931192083021308022897816094401039442704741740644415138343866259894165202611675978650527034442196525223296760941742021885656841089397588555402641510573756776968662013178399044636554982726307318182576505188718750317006034999762587846203342183078641905380807792502060833720148867258475570303057687066472800556996891026221222543570820372889917530288003296222901234828414019923315638429723679607107894835945632387064891666237700240253380312163367357094763836631224508860788465737413998426784933797595553585548776117607968866218626464983131073962796328109059495768194942935957726749193628636298250290647557921761424910894136667737245371095145002301222408274205524011283628802173200215626634647786140546765417684949132433207259755805708960074994372735986341805327284857107725632887194776143380898568676694838514451158078552198666862628462945403010229160612169269069953511959183074521744356515831472875858784041632986852190440388033279656433655602734689462710838375042014199095528842432801864481542659563651781369591684733621633342597524646233014126995508323773824618069599880332790102603216829698314547148665846909985462854153105405644332228347652843951622122846956391095330610661275317992157036416143683871638601770433268638192214628061781365597233684526061074310433609949849691389462974747774755987096078636398197247846300397487477116309862216037586782771045323082373020680297138664523168551755147377714020827015060267561482500189690844891170962636661806656212324254393562547604111801294493535603097706950639626429681838949444805786951890158012150883989422166521435238031710645627085882099060195596339108049616953654966084881961232833055961521876078604491455607799350212473066382413510777755305735814718787437027349736040167073296114566637096830540459309393466298057540883790912112449941053978547168040832827242999651850435490877359922943737478597685454692274010126481645684363333791483022031351080588259968151464099867588309826076606103265847143656819477005101021442890405953288352703614142440599081978433276978717171355584840084938773504492243372856178920757360896914636333852462948035141457145364781308838378906235920778293746920566068672302342964166389922938038227154620633054658458626558462064517033143426598889616791109713330512649493482776071244176066192895763107355881770163784735962536944422081528430476405504728893824671878352012615898636584626254695262746725613727427638225735903546677172987158174657201748642638491558756523695654658726118737641300978156747505270271660153847543565227169483581707599854191574430384209635011139568404868213649106924070653785421758489221064262712946685670717804188011598691133399689519369548604592884662312057236234994269241961961645577097743075726461081454287556630395078349103662353593502445202012760288562808176599300006041626959120387560881423054906963918706443100407782687381743535487306027175064661209510295411705693777114958222727525693453438408934749070708349923306571429856241538475063233117354635680378942435086332891340211617617238730616687147128257536603019463542949857589881666936494099525609823265215486986435100877603538596470289015667956871455836855976063329350582540284055486229092064578553426710630395236082055677604097488496658515123864649249946946868821636250250851824097114204612921199955176076869623101741116459719721781761490627931715481888296608538382506058893510312621802449151758952593241288559252588027538961657390173187527727686994317855899515716804923347044318657629283470774463925476096244597054930179980383394037880533258288257957214681699274178013299574620872919147803318283544689371789963892034478253575587818156298787919753693063405498625263873782841220425751647524865945532239197958748774617102846850757756425208576266484992865791525055659175076501266938335880190135399957043905895979799545015744383015100862415588225393342777028907981882990560396192151444931825121685908383824239356336314857402753462787709621663129025463535998886007192360662846275085340487694428895603807342283892870061625144204242318974178313534697551552603004851989898894380658285724407908631763529363462084621797039958740123009014317865666557850232146979477820588725275442673417234415971504925941775416715550568761672826098762202529636222661510199877474671030957360811464221246127572434662777691836790843626515506443302319259623111231620562559438978251362634997345070165300499306360860558635133161102528588151617276590782309966299451170108292939643829777248720947359785582097925856574033564377571103058954420769247045451804201654408308752976182465496083678087810572626839188038108960713606958071506731772141848824794793507739749267668350906269727949685026617111458705358763430815634974943476510109112074774031986902406570656407157514270327369664285765976464625533750266219582025029436058737232659298543417580770941094814801884798236955962645469443300524705587505101592769437056897980395965151698990775578402347727012430177057015966162701986002389823002953242374168585367447815948619266081562453225794137914165161632567349311022632801739281180294027244444468574570850270924821609538308051267577507679468691036453785573022348036226797823693897876803004859416072557538757909945499565787607344444893433634503278923118016499279779013959215777968215375021526662906404022127972103468889715992403729778923347063600457416854491726718364411079027627407034012299160866026672496078773067306437103999002965172425186948598924421636119167823482883975741414161289561804418660202193688490357894360943227760563973874646121898444858072158876317960763517963748899700644557028941510568518005385855343238655302195947238920335689094806761003192335766026054230911312149858929288129900773210302257635100845898073724236658695351685303804896024717511650565215449643229191100336720257494998065286110433120557580423171349320041839754655037444578915079229986547158073284427755680249571765275175349071427240674936206943702743192904420304885764577326880836180598748315289660109790363100829853832344669850104048929840123316601569746001378660877612466737180605477885515172048553037829930305537883119310466387731265036697828798289991122725370810078356972563295250178859147971630887296303618479352408515413585138095416595670253115291955846461568911716639874232444546774338846964556159105444598369692111900608544219631930885282439386319494705156802697339156053387437221078986706463521633976295010341988037604370211058105116447329327106976188343709936645986007330894739225284532069523271057778138283858375974249095399399534085993488795647157042711793968303458560476705144593424283490007873655039655383025938463473518378551281109526567928925844418592711522727991780696621393214647362695108910024839090605790121794630538687952459668940532547831273282298062866758399239922584615331158772241463106067884394225611913917300190988309795748828465416432203653363546270449617133990867439249895387355519721502016575725247118016589044477120508039966295746203255022375444509676970712679739653847996723113932785894923102073495733268740847412350276431347308486965389305948837823624125860802141609089946323889771925109672059300747362197033640672174911220159366128999095806571592928562040175494846828097530234422904782572705908066828450122008575074006553522729101039615621319649330887404094103824277171734865729195374296504370445530512597786543354537941681010024886187350361202815923947244172483331014533952835226482301186183788939789991635919771482078512118838711149558340407925228789228307925586152770826896286611579932469631437724046826914768166710342743968505902370570045064505486322710922404817913803790466337432908931712972926068898141941177083242875048396889473396486038727950638745473047318086613725709762764659331549860919213089366337450555567196191924489736103201899055041244394449971121528011443286855841559061633979576487777484404340778324421563702382466638583512370198554881361765564415148617169123158744022608068244463962736312683143022743760919440816855445149360942280584524227002689777834945811684646221570720191664795968859066104404925572373542166131886355611927174490184675783420829001455561528261543827430762245549690276822490775607743144592513622203928114555264333552414768128694402205029229715839294878193991945405623285077565144264720342847508517392961469884151052457816056891584021669603307681720189404733627430334213377531540678793303194848825242839050993997919187648946063584706278996141111696034647041727023358374618397896861062456519268867407225880699397011680986020424304203375566484165512182075547837339781494230882764136789478989316115910494913888412527641093414976063001468332076562280094840102251591476937801779441787412303855085530565930018827417470283301038617397948766851345445161817610294665063074545653478196988236089787537967138695867795719952534198787589133628508602582153410530343834038962120547310494904379659462500522876051436152132447368715117540215649724435901038182192349841524542285182037893668263765662450173070586027069791580894039827137141599667484706228994862528818117469936249676053986192873446567844444720942137692730829849846974459539652446038372056197897732863265032112941564462476897764919810851277790422673700107438222940848165945821866178871401182361035737208404061492256928069005990418073812044031767197075036585809457545328123558814247115768437365170026135143140419087953618908511573456092222974097992806776663414563891535570716709916324615302160045067961123304146284790716913345897254982755489020067788776181421912319939626079679115859046856873043814997935958756189579566029907675259921001427992879087887252151966150200581188397423181576874255286001243534520889783313175223894859432530995644027139252817785387200584764133367688272755069927905671363972555473368743959266516642257066628894260291850005915640748503763944119314500512430516496908656442646124387799919328415196168137170535719343702811155454020893490741053303105448740644783755873098900548304697030817850353427813059706229865350455603467581520462042084831226489253053449822583263373627506853291496939983922772967165769263638317077589285143624984819751214623085490034296794500224917975538310605527965084828332399676308551296287056105721294349488842068821180772460507295106261847692241106773561281019076439625838482389372807217388599960154044765169989775936692381129342784193261260873630416034350051227601713515240851913641593785565097929433240665406773222092425998657092360977801403147320339516534714911379624012400056331178533987469901413701278161067164444541708474956536569477229114894963463801014191358721539596838510623117478992368617296172795309039869539187590265857781052072499526863750186048592937467073294521925973082082755202821608078619862227458471647141794179789226050743449267631158961564075183518175847169483167699587143507506912226880820268576417110922328537326772619588168463553234520269502961999049285017762362930288552047929681263485965587025545506995661817562693326975768214488863309924942224981526157628857556509906568381607726935190981454113396615980609989095769287314351982581447488610881386037624404915957021028363668083582389664501979497171451458422556243115548909165402642608010929349481252808863971087216862927292240777460100202706605262552430263327671538161556858975899345976159826694005308809059467623858446532703954827759699349547849290188612613769481741150051593698331525149475161523004991195553808674179588778859644629304171368692598602047275795987887924946518049675044956123454047486342707080147910208875574420000838589109752536302103417465777695403143155460850654467698912433376081092501230611498263558243187034525912810205253780712247076708904284642711859937716659535962366880541916732782894787899201773110692614371063158303892363801242619460421183408762581463449073473815150155248441533541327343508040699136181570284185931444005168360828647825401040058261770784646591667604110438220417993698490614723421842650687932077334442091996188167136193944488283260213120626094606426930500513591812820672821219624750327214380344194591335319643449543308560692220871028814560751731632027523962988271736294499283844723251641099740280377251688661196217353933550355847973489132185505522976773990087972168031555106580524421452720615039777463189258195096472019223410743847011278748958097429237918601996234567950217495954354872717664182070396809747749234547660657534196353506581946527343512976097030292612838421288016155009655691280216825001821361442943469783357465061171747494742862604920410246305365614932540611477847118397450657208025850030800767762692963301315277287350633395272789112735597540607398762844124581416243716531008037645437408726850314480834654060328273486847676823650399235456785053515718035095154904825289716484165944912741898175459344768654173819980082784458924071254878024292266293101759405100404955061754923129359336899483590548757700735173677069608013313131115961983412362374771467511609102557331663210856487193735064334549085375699942202621925065512956080660582161861717059006233600344437980703071300392580056794801861384723592749593316638692679331474720514791267088882658832111090974331267656908665709724077923382165886482439512555056277658009907692906106668491534381004738219459927989198108151904329119277594737181653946246147572533218972371489308526455338839844275144760550196450578910013199279260750604401370875231794839177520496219833240673340075056971025325423964235385596777242778846900836746647099934369376242808121110409599760685077762754028667039311737014019491023615025173323624109933224077932544881935612055555801787359829683195730603089073742932504319690152098661004207251118401059865811691321273067455942776353164059004222199372450681911763504430768544058097278108795484004882630076393003656277265453409725772097961503373024954193889294987416486976456365626545740587348745739601739826032530959192018913021646887079077426862002194637790545330791343089889294871483299791442377622162509202176730814661764223546864976887129185039601265364100835862035080044872754320552290968815605601485838015285593689650763980641653736221699932904794426685828930676208393461545895396048678886158306010761659928626481609463249413444393799505824830621045674563018361266617105818304287603244444993622742155446267471658346555041181938864223044250637309843295870788270470912505207976567930056850628599161511084788518927957154031993731545594965485060525721758728904865322322908531028758003143997995611526475619545919933499996551301340625046040776206249461123928526755113576928084925770007763882678908834917075449366757870786901172640733752346339474099774500100907024158322458190857771258776496453108086799429246272062696728094347355820841258460337111670196937356639565354020173808075319934683504749441932929240464370083127429866504625806433589352803590244382790251046981012141595253195305862799375299578854199831305050695607828371633407263589131410765549988173502391935842410006118795394608629663041735578950242389795590451070457524550093633279872415940633751578664105660319773973438337370174256773234925866111196926086255905951426765585668918725128104642825649200666028392724954533946197884572602060858984487699524143226521233565042039128195059092067627941304445835161614305288479994587439359406196307884851562620843785654625071600839629851074776783061704993730367242571827226921375013138370357461010564937246877292275426129788551817430329641122383182028867569006468441324897053970400431182171841431229411208635069218654234227059857366681787199711762974469819547198994788112642055778488495516946078979319485448203509100459813720914743345443393766849320888866099449093411988419941456100493600871717565738373615646980222643241865977548071288658077837432672514769863227623513518308557058362329833869512933691167655805987769634127545613883269759854675798718198872454025071908785153138434499890446430805585331125603010579804206613825096357459227699018521012108047219106718810665125110297390712400401074429080399542178034251060396285882509937632762299415457310883014059788994754394063457952364446421461180985182730135249432831748414420718374872464532873364015752356269006234986542647695382869342481759792355399096633429809435445329998784711849199861066253086228396904157686491521321110672593163638506080573695543561929484833203805360609408109796825552992697488836098842039878013929389772234988177076809257867398540204655542618518089478917043527496803828545258221337498531226453352023326530852268926408151943494620199739226158518145025604046593327038808675194669905784717471319650115958049056697313690092327854795481612870950104041233395473619458632852574972207703094219428364859513295262992403207088033223646927536412750898016989224323039029255904325174552014897107243276670842292011030587658444900243130501611104117359465893049585195646129707791141146132659447367651978270597455324627824890604838495816504393331849209316462887199260018717634913895968654560031206356509207354855852945166897158868739881166473193582167676780749405123464013564526159544547621694961469780650383600386936937734764676619588783588692963413495062374078074470185913050888351694809259300258359267239170753535467441513157375058047170915534589464618835106813209712416848691065074277839756699342317470007156055473124107576307777517009058543011053872338444622092264170221049896041497638670738570256393270887866942250062104504670673421977879275536772454505722182836091047656398178834984634270223485681068730325768161929502693634231688097397604422500131321326907780177372594275599969233451753706046351445466976795184727851950937036803988796868843371727901965363922674842282098682998856348022013439328883279625440432857542394384268997687141054323511195243069876150611574352779744883884495068765505918312915588710162789596341283554030249336464809762080281854677538546128613868738508646317523968687527050102401772636016463116245386793915292410052420746834777389383771207414437000548275176018315630007473898209674091011011602497277360822621264530642526281549415427314503413580477016167124462322521304316829185306771771741674085415843307843969008948954559012209106776573353849635369876190284918127747830381245052634525338254240344571881042571490307574235112033772569204686565321064965338590430656436916670977533310757579360679441213938508819777433982105256374026831965198194575984708423565467754270569626708618436433164466783706480379474835011528564796887388860206414089987149908544142028614694118497064844582239889577603741637427132265431249084403315208087241705426688348900595780297084235839775804434104249761972971442739226306214136962357476245738348174960046907020225777463562388002907127546565839650205465727956336112874195702959238713345863231589363306437616672852743017262977594801611927877030157524363289939516386350034024106591199552861731783495347559847221684806158481942143605886001934559397341880918966664271512332297468806352374071301151114689790138333390039676711397746924240503114839992737263772937964818025522541167386689867933306981668102758875897266674878980727641217010674207808814459505410315998275067831211436244396956360236165871041715927269906797381998217031702376100482829905248592220709322440624006641880427906783736531666937210559306269592406334354646117895650668555203026355490368748818927651786113978907835683518664685269058788026055601067647598431189641731949384356933819026868125481449516379122509335227061295437574784858106422488659992288672872581750434381816048815569750197072674953620666842237547177015378891981355573115567498647579261339009336081186724902084690178396839805062365390222679957133913421133806195945009456636356757226949292227116845831354826020081556409169670156991044334725434941282384979382500230923737687711010618519397839717735404639679614823314612755635152668976279830666634055098477159174953934350933120325662539880481574422728080063861639852846761827112893006692512609205542849362343043099504072362850105178168409235104355975415241563787439134946393639492945640106619399030420719642034071981531593038214782791621571335955582950629317559901841140530857476675923764087847340304812514678125764979776598006446135055239138919640167888051612409484746644941575327120579451051794242152698259862044728527515308737588666496266358992146116928920928601581070199928408254280243666698540245459376718236197618967162681271932658381731234096520538844303049255551285717368927668243396375103980215618496740509007163211731441435251569324221545258329996300278842719480612146494594987470171186257956611813334196647438425014538113934611650610154205441811631613755907749592773497530031802019607028874102144339194564795964940376553485898406841900746534029901011395142065263836584523879103381149236655607380911466987022437765646181031745456186470814389355017081168967958888626651127144316404554021828981975226713876509862969446069893743418943946955403753157366923404979438332022224171101819901770120939378562608956115810316620989380198933261696965580723636559155415364210336817786736349470597422807986766817606298131998728258153145876078416942063064825802433798825045743429639648935396754863485664670682393522883014995680226990708936873244634936429597497516087684981885896208289624356366292923844570833735537442559231499832213314487071183454203776519496029216180998039107704433992275787778533260382355530684189812169863930057062997708734904162134444842781088526314891981521125094600802156684041579790812975137028326237159297235946202257548609679724814350210546969456886873759740684985084459021835639760179447278928407496925718785243467961080035682637800273302711117780070333305030471550183120680176610645107210707202447231791683114612315441664806171772197752811483681429103224724327048068225819067045512714181057210218205483468820853030058238092181897864355779687001707652729609467017954735096757808300687759674885006768344045979145338157578144384834447210479250166943470445201410250122336960787006073333549022084508335388055253764521142086809461446909861817525117342986127760476380996935773625367816265825995989530229042257884759512269398621896681028718919120596696965146203513276186069499117760239592933355466212852772015793481371252391571721167983532841843016287150659667471399112232203986593487146766673284287595308358533513984280588833605406652252583249507954040677552431210399924582126893454673404581245900969551148200228419587224572655528896955634828152634832741399432103916404565740010578649164378908858913765976042345069815294930603092756652303227308968988487760850227387183695646423693879114631880733863281469853750485065349500530097855483403065242721739556271327658905710310853264553349700026905677479756500809578113509514763473179232715177346899202577447059526347659909649560021997645007384167475630750509973138851054446156347148840068516879045491205919034654865511123497164513658441238636256764646954678602449261233236088997597222591000924956862132468054524351084672296835516381200526798234160445431961830837907057702664996520383320987342123592894021750391142603047647593544986616553115557590450476500129449697363475803263272131613099189209679770870749002644623045691214867602978776467283909935751617422891891529135970864280929299180141804804646050611127522939325178550508564553097224639054675003663707512802015086629977452146844535438717919789577633572133724484915231899590504597707436075184035904467404703181369877304318541948523082747721921539160960870162686072625994238670552163682541257689729684734477830644472673605597014652425982250176303848000021830784592985552268736710070369662405620397809624216533063764929440527085073911166212340992173799639893437875867500591665445815413837347806990340742109415825294551589563962413118944175663694012004294372402295123361498669435970223377480856651749383180404238690720027915033622712112627879439522480839892933613749343218585686468730102703878066525517214731398853674902307216819452488473017260960066594947318534876700258792110416380178234247129715287517406362207812419110560752509859980553525807713823169981964846550138529140855765208927824603737193814550116119271955187525998631556349941837574660979818307311606881207615373946289118686111964761651286246563781944648698995629672374889980280091695136752729507359609384031819389975964647294398160091485376294500578218898013656193216415103296022522237137224211603410449007301556177391077850245681585963102487852789460372925350727501012395182772445842994384709152346946563311726741993548645987242877221205029810896576613603316331734164746693610130970830854005806090243216096002998208627363227826923813233290175180121484842574223076225583676313661292383735597032544644991079695545272032272874418346860347919268999257213881207456715510339140552827652974872834836749827635563452345227656189755521162369062437982407345476282535700802348789253097858338278369368516067925921189437696161702598703663579622206427351623594260073186378098536959722095355687055447766326062850861529864607280459310771452494252764448646402928974063008911977163304598109535388630107563670338087267314441271512106293498016369538475499110951399411642487035431490491501094570781509958369793557454083982474455447287048651982432309339631363056957212432557846237791429617989931696889077533326989815441825612108032403128810339789161667159117601095550873657758572010370529304099348596462998762188564977482378645606492254409025690586485591723493951590987642068232179698698554454005477920742552103261743188555732728625997884349263904548995786087359853467665499818473277707910426128219042443953788980519264660120970434113919527605647360288991495142613565421306530575295801159615450742464914343395120055882509665487227455932053540212022834280558735977190762475852997069389505883956807539556930387719551283096183646615370453950415102958186862239061277482122087075474930360952591158350559464510220095747137191480380698350176507559247864821040925956434699365169790870499755808919707430438757844043121470354235280216490514591240144280091362188029557258925859056226573947626990597416033294520449934205569727181362385230275319252065184761626156826470197439064224386802159955809462898998341376342266101258555903889974030112426386838474498346625046404302220866974823406697109670263196817951135531040864615961069038459261406214905948884279800257291212629807364299270263265897879589906359147380733771176156005520058216165367604250694493551863524461852489314078251646278616057527038048880629618047033619201945051586208507016781455874613165620333174248356971945326704782589504507468008997100570402159190744956311710955236203891682358342913156624601115932066340614121110984951988176022085652850129698363714374802858295167089266933911500169636862752383198375877835773516346979962649149611981149918941067368342274655902393909419090027090330835999132053711106457739721226533685979178377698851436110285464693836502721606949612524108506291013252134698808300416898826178919428963367429978985870405419332074261393783846413662577898684215104730224574935311956426872806727666660529136225996319413990111015117809396393865983937519972909101786579141256249539481285862496642143173879189269295936614440466727034045546486119605986884542264957446173171157807999488422693906119024072095209514267413577408394232329271448064763821991359895385698715329106294383276880030754273653586890019973983490561482303189687907018115729443817444000723372014035908500950289776989835125196259434236796140285111851096432870995221519148445132284770706461513016003280271540531643650280501546898061083667707483570065530319024820542354605276328171660038156023428096770792124779771532910344472861121826843408296819535691352600164612207455284907760896053014078212647480031074947068287270032172953762591030603383057358814559473673697535664392121378016668064804185029391423852541490413102336777662016123719515475644770610511039129234287572245467622843208087724811577768738597245186030536289365027127184364280352704165546702557497689447368299945882359333670624791930775319467997674075859374029503544971952114737820689971669560271648314665083518939292725815969906326956457546313957342713961530346667267005187918596402251770174820763443343490003078200171858085235804119818509768904307617119851378481004420378692055786932700735206116255590053875241283305899727624854350115528961576928274544666449496851644272736287898319170294630250263167949261851781607134782876408552595085116765896068499554697513654284743843085614758438702766622828881843886530901117930569778195710676489721247065251986498628716197909222281951439643604110374098485886014591708668365675557354953324702156543830541610829399716022986527559678073670430806694400569945410017671434636094967009370407156014278540489156078913077455024380811652908553447805639094667971654832801125724190727272060784787350452168130503385990821475490333950745210623996428862682983053862261198168096431925451110212649105546728926874375063434444729474309269160545930280513078934881593441442537109988367475041891891325470805427855067097730529105231418057932976352670910494597251259342506161777259937025348151503145551787852273396946919448295314923791577569676657575433832849482942521472322697055330651962956435824683846019419108160692450290904899733277478052111512674507919282713311985043822070587664679997306825336419040258707545528117573779378999241559125861533966800311067134640879407407237121988874504717271894857186180187809575574154335613765364749695273238838399536954328961045227890826485389014202423900691454919303264530087996671007161924513012295967125071118215798904737952149306853301809513799343098836692593232287958642794790783205215120996652434437772123697615106217988682178601787034319482442426096395460738723584678378377578928367592105225393305160784019374265626307046982312083608422008148343704428619615231651632649899056349810048775747422116308995481008718897567028014833198214997136622288453039331033659617675429304533118667058042772981587188977840716091926817406691345005575382478604461249456484903571855497943986056450968614232884304877396723979908599546189880600038879867741418847508824154281376318590616945777111031617304884682424140239603674830231601705875485584362684374459930766413302675245671770087186347372332395706530127002724136257277691051553773933136714767665779134110300629534344815359608408632331752705989954503414946639704541366941460743624440021097870348575860974153782269424138658317046361925650240761213442639452439292568601674486182519115794377684265900918708360679239613671552733925288744413693935896353325203686165738146994183520483172820563998212970404494706754583089987510027369101663791747770108917387446107853016425736984017211687726528863684982816457903471578119816988714359500233934158806021440044012902189610304596975438110227828129340557707652461810159804275742123220916413626801818108863119864254264639335506027787351984167741012622175727764704022214044653625517691034668404625225371853782673161019043214223542281413273900217433317741314083290269106556898170612012238609143425784027518082936258852130496690742359824774915083294198759468437938728028285207794654180832095564216714767838981133385667155499109566042454169721890770020156825459139593986872636871461865556428235522176632006704495505528632733750403594369284014886040642238678347417407877635226878193378387784465247089790184905911976290433267533160652927055378153535855965473542924259000900476435069790203670993153703635247346200106536168714367026496377220976140166897658152901017884978479164907890281673839689852763119777437103976831482999538564153258581337801630886239558929498312204180481797951552488260411254515955861150811740210830360122949862134160381202611379355452881701038301322459327122803440554795795249529337277790574633562389084794061566163910149579898782873169718366282037914986564867084713780719433046233720403290742152186336605024928927827436102180455057445407810860278904904137412363482244006460659923629957303182087866342665522893046478563221198704963791193475299937851031047579341806902318917887666244193263740168995068383981879194269735213902629295773616494088818950430167133147836809284033560247146737554579659682191033179237709119758637459994949108252278215380572646417851428592503591531347498313439918324368167260685573275986554916944569714950958022476105217204828712011709242220748845541104676014906085338002410159218720604759414343546106084870934959848259583897841754086734153200928649021453855375354013459968516753994607614769573418086984582838976726538017653496351050673674621919721319659898753312316015005575267384666952915654300063231890279364702739932805787793639465186825719022920049253600645273125737319339577885973732826491180781378383325829262855158643030827486794638530756892407562455064756467212323536778995538699243060623918102600969469874805414197398234772077256671473908090487674435411521409137563107592769846282732665200446628356476134238523118660251253385637979925609460275586972977234731088543826617314590462474718593265123512822366945203229040813884659034683581334634503484749171866613829641571804488844430502109671027815907695440783313487850137048093141246266070903663222758378514617763449510891364609636741354919578600050294866708884989918596231507507717953698511187953604456959647860242402369796114552242515461160960645921454595083030036770626139516755266213069776926343613803950185156251828590172506641277296780562324918834331381507528005516626294279772134418890985206427074484351249234404847129055898609013947406487582450532296696105469910107335245808382151216417087421513422791714908739505940321606292480012629902400284104924373546974460776171302920220166569518278752281336639373866244769005868132202826880701552241910559683776562407166707331839539879346925620936668440356352249214066015900685564404452649523533927653765993796828455760546629930043095468872197276693195619491400604075825069921571839679957875948945118557266076760681282023481703407433957397223446509503983440018725740115216729958354452360287417810025278892342393309101495591582181063006318742893644649454371684346682178236123426677255963570936543389431487373082301998173115525379547692240004482573547617002759372277772312757730334431207448398533010424863146261918979922902373387591144035122427532275129047765083537560031112030047504003804372861301813667321099509870584289729528741921492855836471397341792293931838232850485572731349714522702988519281084896101198509317235219468397335236257235029440344546639816281268834278318411290561067558344861137997577815772889080189910011687079249284865144915426370028425907248209727516753446255260594799488672301680316373743474010162068666019624499126924197820101711034624013694627492655236592141559606439781562906900141389880284052114319581233217514429672106326597550509006616667485757558196363095214125621361343519193503321009357913460017349901277149294456061178610204423059493819910741148653971061554906772982087668384511838756912164539345559980206914122621395032966611990635134910354949847154854967740064737402934656364711120318436441765250171558778669907489387303098327778998818719226038799166624056036886686366764380538261651247826134593480362615481212437661406243126626402382848796297721515826677194756947660236071777030727489411979898270148532669829597002247651089920991014198067458329491640691455635282933604596808767568773728695525260717892998840783090759833886853464723922708461901974654718597723049057875503482988287672721533618738518079322229581527334963141723003109331858959871550227062648188057232755829240304417179517278710802493563812201382410647425103128497242277742622701744613606655129890282569320373895028589059799020658892327093309061612803789651868796039985040174210002573795464094249972527684206685601259426293095752615839258161340387817380262024724336834615745434206843732195638357938991539217276887337204923212604302494471910248831190287705563443307589357961035905529931843021811472542396040511495698030294439179420586176818665808886845891198711354437208425016013283593841259905625235767284147267921057590879251505901473762206442759795028293042639249294950599482263048044344607437503082921764991438152073233782286181931461610900182919284995850025868439181225124492093902165726615872301069995709007688041073634262666203451921500772505939653791819825611030958960961708266235315830378634883209922588627704135083708211912364442664611429508327672696177176978737469000756223957898908609267576661713380088828197010559477464001101907144066072918295288004233951024139194839838662498028236663872986995819236089058253506804483429133045543600325322605311509319352913890930179048948980351629035128400740272842894337064436433004485139252718142681728868709109762680933292156191110672424004947322784725316438611944241339016443143286035495585860980343428636342326869348007220053692734032085366778949227460871223309900068270001680267815465483731712706055099801953359135454148209181659307769073286380581016831440939324619960720414362906203749413084802794671397812948145273500920390774022560248762538356230436278336317113703660532952430465528060865273595970485952053901612766417409429960598456705761892807889440386032244551145646156978324075327271015012558982234382531150543614232931525417726461963142285122209247865267302286964522967412779629053040024368476860071270880518334342070037715104201576936723050763204106694602879040054662591273216123903981091573675618737155005858888478432266965441706610921890151614958198545202854479803243103353695139228565424417244496547131861321444292151958621088678101842466988832023637243346686647702528746863891376487592324862013352318319852631830612621168672260740994578658126446507765963004005229988363198101818272210029773255483290252479611336733871815883074339461731408438474657628889503432137793679566010505321251560510958080065272612498482976950161171292623381121841384594981253968446964163153907720308089159770264396363603720372740310648657569208484370028481639823951995352014063711164120036267180110999440794007111012099129770734956827503236606090752436389477092728949233290293670880756533981810391982674122826909734729357216855262615365121287511511506954423850022469503507218957847201773462439850754733922550840710715523545118315547156191164655310772836625435066884619651863737451652847196412524477423607785664008509209456420973159501591199138167401000867636674119922027948217317630594446070216809333468533497149241309163058711641997726310683581804759924856012675774361927707477373244228321258084027023175435878401475946717191633401302756412368474628250717074396990182318519059260243225302383572138874229387386763440077454092279842203194785503198582139819773350035317421104471610816393527101627507433751412956783317362544284790195722720879285320836684305844314967920061931275282928189602975629522954147862664714842109799828086922375352707399159020901622013712927447523147091177102227207084895884968564427383299004271778674303051234299733613284742504003993687134983342592062107290981661090548927547055789267568463632491697262107392224952006860873767639853104527841132184174214696437914074497728871596929375279060230320393408993140410242775110195165748542688801762853660580886563186049846066795736991379824444294639848583291290767400831488854911806046071943583979990816910254099533781731569106385367542033813061767215012062566045980288166288546978440911174821171119572067900649396632962724065717520514704239467030815970344161868258558388245819030713152409466927309998205878347348221430913104532674773648225195808760839853947799850024526101001089551480221231345524272954474419467675264607199938829516269334449272389776178888649846620245384837301752602150636378392843663497713744637894254345977546355524995935338420989504024070199595085877253357898969845896733333733938753909087902943451312230810476324182834613322279437741600922127240482260238624554451621232387359689867842334229817035810370686233724296070383754783356270143027545008776444495911424645387734201164977787003199637946186497291450576827751332158272911917936731277983864095015056500779680877342754447058909142621418077263101802549603534769295257901178562274674319964748520738082359418324422082357117027209360348333125090458961993582523054216574496802313259077720683286712256263100771165495896078748118253493136114473791814901409543479261355502106362050216216308440533618418889377952361387147458323966874117353286383798369924028019277972527217107711145691058700900116168120666055492566686110591020847926567664952458815784325077754223611261261167384913613520456842530763341052349856256278748631085760969539436301381739462572444063458820103325126993842127008559487394740659531058246734361795759532294329233299535832143811105127797251817848983116369970575664562511316700211066432105113024277074046257265391497531339867211727863392983051502314533549851204261953118177145163056340649212026870487459252451283358281853136678328447729130963585005102582037096286258470911043184005292788987880275238837634792246878896073237236864400055238819446003356115141663399281565023572149416228549003195869332044374279538521273665978318585207118516847116028069609083595231408135372143433266364003475614877453471375278563270939768884078029010084593377053271867769395077915592889517322323397108944195285189803225978880379990811398776557504010764096026583671076041028710242357233147686630992533311392027774590080984736777440913808970036739125812966962477780457123500179467875647907500438809774506983697426943227483235573827420664866425863807675614430557412464300787865112518121478071601933064563710664433033015334282137224374213013177208859331283863572393573853248015484097483043338560551139653014139163663703566261388725925658125651077880102466783906860083978095388156963482505534248696385337890666208485608104354922090404115962233334149862900947863148046787463795034783980930276780625647539173336188018923430338971592030634316985675016825339898427703538064493588608386983883456146235375117725766877100590468386058830772392313841901983551606682022463892961846588155320845433925175813011599750832622891770637273977814476927111588498648027510774107666880727855383741966042154395366727598151118487043708255018392067723628409465305926520307256326310673079144162778551175452645569827200298750216563704223166548182183415190856727030577380088011193032852120008800607249507624817774062762777685963605664332173531458319378336112451565379468915548984611033331499151767414311554162150974860189382505452207757399780811546572372302592341928623661539948664269484283544395346069962811277635461426509447091720188512743710824203379144902214951369684454804163640586835907556903744931358757371885595718714572641594381419189767310639828307016879669552484229794366426228946082239082127711098609203842818250452597068578109918876462745212317429534225364528319525403798476651587396730392856393331774296358416009776157528748338068081709252926446747105583092959285423759954395458709847104559225997765765147113555486462182447777753681885789544152319190315955459760828821028912111150107384774820307038425708564851956262999162520436689917054095229257776410650232476721492160929306789420437002617259052330529323986247486570093209703945113186513779761874547831287022610720781676865212917985762558904005039375563042509717140915641549232600650311838577392790623282156688609128075423082968612521769490876854087042012493224585034893820293242599176569953533245917435151197442301409779686152328310834297490466544216539708819792913399053189441760191214637088868122540096802201362340468284194204153977472417437583969444912837081505331706400236115270937918364487745048792371243559902611194744762504114614381022057341369692708087094667783735875845650072151040742522780438182577968747736771904986494851242320195830185117974477863440305213340141708904626672301028719611823102798996987296096174394551667175040570172504241083289691538446895799981525697297290853651211159540669206162436723094304872560114857922942072018871287270866389704570263604174816625792331566971872728070888663957107676063394470010330150576531748900724991012800242303553747816185162885728218800000664776303271475042736134095602844684654671225790997775694984600142933269305096707575690988223901168934180673695202702621212278788283109301421148992210770823834776490801856552353495350092563261156325273708518908647961792150450777510400482104868136889064594278393480337456262596595503471036130759154275207143030329598668316973087665984431174136928566150523924306832572554349619349789808676073901514517295606046003009353442055129424456968619067005471919369256696024306985288342441858041213192261435681537256284798580709411852581078099341704806242710214001036147289478431903501569156135393240081324628235047898174609906192356395389808220282094500455790530738351835135008370140954357346823184063307377083597499186174839865640200030739238444353955289588843279119073354970133351016550021368826613366099545815555387866115412077634660112693898084215649769010689740677530335379478827769333716513223389104227497840695254673947182702404081593653465860809859914361436979540214762424599936324440554544808407066472855840241431035943047411645560798932698140277105978643010095963852661451350078110742744881266812283087031037334529446823709553199776465920898463371893310836731846548348003908753465073954358748951017000985064765037043960173950485445058559342724483665919098635643820165671272483267221442695848912397518307061873797466539966813794522287232668117690379000690561528728666406681097422631110427639504150298471637697392289163254083112431016455851127313963944925265932324797326851423673291364217235718968878842100824225556721143489821187566292938910522905989748235311000233118265847181931656168324328890463453018008537404663773242227265186798383524053359536709235515885087674962569482607130516614307160132280434090980031503858315845802762920140560412140678563941939680935221666289766497591916042203569652686307853897480237460163594167621072882295355180323360667842043420256527234100007331156425441299866697107436025554357063388107372678386418235271659922071645395367851176857991255145607836336598099437907216882764736477816778528221112085039226635213921179999099691928791580288572888274270115417601316861847082426549577903192081761538029732132183802101377184468851542580109723166126207692006562765109565128593371900342002996694023905043154251097081711750163862833060998120916325810449687107365561476343372894264490068525693935716396715349829822156375914564121279766741904433452755629399553411940519343496055516984954569058462963308558848260867960284985253247950153036895192254756409123681147482408212218982847375912263615791886480215304278960141176151406213207022877346650137387533966999023193326520940156136686184082495245397416653783331662227831347465778403585214465363352635304632781607640161702471829043363112121032110227857526451982705463773660364456317183782563204199809943505371662022890721152473554101436464241045791379407418004236067767404018926678724709698045490500496962547540017218181812705484626831889127249249533572507978981580795820979890045181344458654633409493271837147030157909599572609119572273588430936630582505303492123621790678434586055204208205419964506193283937829612502210042039873099105856192390042557353907039219641165417752250379501081465997058541470722978619837923081474864468822634108066529931763685252433249545249389951363476933424419831390931063479704901403322656742089979570638253362044285720163744718679931926775402350665027430209212736786077305158876749804261568460167763448301202132117273948188533568686533714386244774752180349721465594407627113412392469903867610571874119080307729566049219871211512844174937407123611833112293744040919768380106748207840108701260729624391434278364003344192044861782635838464976852224062368678653165051252033205415736800305838249734427064143488342032180083912419562810754994206822738347606485753094471635230336518515892843003075257435231329201014880061064670617810344056016257732231751041391447807908845754674769573728772295512947833679268379626702081835976750074982448082364869652494342317392513844941861212780951667362818331038523689697057231394530627170585895796030985408616555280227429695280984296449461249375224428499357626390477362184508566138689872774707844416514441739415784275139679055485727566273647188264054926840826893483468086470237421705989605369647348150730312728383620384918807087060050517454397504667869243345668621331569934975893939632418110025232559943209924137043519366717358295598031981766825407669990594134495313048103874921530723697010079859902556308815359022827364765248064694137118779447302385388902227187326881558755695787462323522151284498872117210695170227035797401768408087535554862613124984954809654877741998377352518834546217691827245632557498096658214301106395117229972105806531895058867634546115952600583454421081895688849329842287947342869971756468370616026922928779530770096590778084892736330071600906604799392782602865507793543641454371600977647774390233620582068866470856578954488572416108312875980106866233507224820989763881164946010909833150553379560051982627483774805770325082514530129281653456081722311947067136131452097919303153164943979992211403953325878868078033594765428410045521135402920269063352763480634253275913672189314575915444541843973752545940677514452089156673343014222864950325167734867385223442083060698659274516515919129065421920484401530576941929271997925874225373553165980644281660102108092938956409424423013689097177299770213195940849168134826477184373656320456021286975256348865782749542746695217488961293379607596672450904696049596365214563545964621662517860694110107419723867455788985719531607408428206412117580410172524271121280801520748492679051920242562875573600774108802309748832675835006322384621650522972976108791806120291393759526165914304681401648910980332520955135349284257846708899524175253410900971264287975256617333058060659872962932099642441139131190872925960274096137279280646531099851484673851702017474168832199032170134685520618524584167969553661015166565899325132017662224506470402919167856696741441800075120600784486874607741945631225068961598573056030698230372488745439910741046008241143917430921133788358517337702020487480172839150904318834758780459512277155581716546315644716318687803574539927868846295255080157890772568020403786268738103441619181997097030137382243335610593756375101647219967544700496284217339090920661163812641242228477100990112973696657881239148820368577049852901280379144489341030206695244518347871588194566800473509008867635909546125826185387078729786464346309025238508562305234446294250233168965682550912808046355650295282855155130800493279849830801246202900012425812793854445975245349005783143571846945102628400444676659485155141069848722819693649394324730348525024458154338646993478069567032219893548409970046585839336725554235990552166920198271686282469567438166643150919674092223745983050284444770100314989166425581675532314453040456027336972739446962604665265685300087697892629340763536520651085340858576669363247070082096804152938321757728293009562322576938266411132449034591129788699746673320067837503406199506918211439288533664500844573118401805204183325490285302722800621669038175724668837077438951475616362658921832706510195140248528616679546442815421378492634230292258235545636950485687093972301716508163210719462741119814330060296619469225059163074102405690946308973215677282403824959867847621531106784908657630560217272316541232792543166124235575944009569378640674294646844611400943991235680332277419213789986998402535688986438164237873016973841519801841938292118823736708986716189530114707217083065658532802743656996335430116539998084594695154826800640552509700187092728818110960547966138985603409853440670263700613512228029594923012924593907301363134216246074164963316003709730203454197629950047191264554692676334817242387231225641416092533423524601864369672933462870754273040501883192518002735686597808042005757512373172682442892320297550076764149391309941216928335699559575555548290235770828783226028213704835642729017111968233361862878930790353228728395867734534327063334455908161595983478900747444823314981651947452139589998276030355501584663170300695788002379635180950303858982860754488406099698867766419424829931857933766488167882054828893322464710487654798287269225082178715511830424576076379233398042550126982294983142860998313658093016563342892673590168141542094983087986974916487731821936199675624045274817800732142353583709797837171832058310410255410641928207058344734385776422149971922254191459265887487320530488592970745273052262336204808400589721185280752969564924142472715100804122898232403223356943167311466261981294740462291610325660057428140867953990127460732708617489786413845221227325617062821839030029882489731400750139607950035592616345284470417282672239760574527090957819312966425333935818688529761350603009381962831444265931157183855392582708284285827274097238582115554112828083517454972447230525082129742148865633887000995020193416916137674826279540959084572170843399198018121983918594231478076461900488006302605328928844972052436476942622360715581176096179780897158683058786839386507885878964245258507441208128821358103265581094943435300567657823175336167642845991527449011000402731115940726726974084127146278769058014974690948481377117441051988081187638852425298532153575114382362769782902013152241095673033558423599910169847825997375100656616781389775518110100926984495333250226377350196624379720551036331269049109692677797562381863282560414980795809270638927880305074652639107548748051203327239163607513550548511643559075763864804810554507473537224362134093253254689783052434820147408174046031518229195875296217275430346704007580641793260416470336278381937934180527481448692589684091614442587261637572186570844673045492902376427997632498984660895310659042305681954507283961633692801943455671047685208970429924640167963377227065763311680382417055652955848420515809471107713158004083910303260042714809342219966884934436546935695780923983456434450365012340567732615960512523306180170488394310221531016922186413454035989095435029675168277823963169403613364859109320600324901480577183016283269709597795702170482472905717004586794506658209513882986800590844429034120301699454979973120526921400310054141617899642885188133954609563504740774031225971934089157224896672025758154379951751894935511612887677715456874087427811236898433993744374968956195489218712057209081283467919520520538547212786649160706226558071323214537789065891939978862517777053922969681154352530091533615869669112639455182964018601157953015389797382555469925050791880728485362840356241517363151666132790084125891749451168561500887349568598288238545595908314321882567100010373435561519966708628699380993307609197472777524952646060490350203636946260852121968354321411545413520209598265125391537660845951457376004124968999412364464479331124067559580496057709838705106009784001496645678469167595863712236329377746025175377533630488519783868516119297257182929032119937716058886228928293976030881426213813125923421528299238674694203599623449333725604938784754873009177959291209904277800491172230738416216316769820432708190301786226671232567670040697906038191687340994119865219479100905319562637040661888600572117132761106072888563890387810987609864974849689969103551336094455768635108415904812359607560885376393427682483144389056617013291768736490133700106992949482544071715607807657939997610863600104683882398434925222226339581269452602307267063635060803245075988229159479190624516177176989029887910554115788000120786275137463732399978544047791978567884879705905237192960723982382084846529850066137542321421537972463164342496164428918542085946936458541033077924040637330155226623122459497223805405878100585210643122782981314246710882620998965380052524995010585397422052759493510435338001049708890084724246296103495803735696555627456667364548008024553746608771130226710402228456612183009067539473243796783345270412108700050865520241012264373755454305205160447864507850082430366809323926583934554671222727509754784601572096349222621684345226428162616410656427891563949059556486754638713106868910586771178833735485458809117099536067861051124976619419738846321895587088716364703366466608612753873978474564030216563103511710127376445632653485901172692593918517855596096680601619659044248902839003960352807796657189252140494140623748086730510892268436192147579230672168827625781168830690309247082133221383099443007802274700836288714135594376487000354020682259860537713193246537411696637792116635999625661074141717986457110306271123268664115334724541731117569424469351968465518634258398876153823674761533308008073576883721612335067853856828577046582374085827273911076881885527495322500609799504143704352838312344143198270930534487519882832110763318042085460526282318289389193736578146114149648694901165435085349254575605314216963524461714406532690166420458263856123336963468658767070050640116863842232747315880549259123500821609659032379694379612491441270489973312401775099876174632116011913704034813920003632263917935041995135305289323323132194638419495552385804816634381052823394660224756584207698603486401699206159080499198844089353705425236065175077063907946616801573255093947637829813428141765223994372171542555541363854387551858812123004210129184805887705774530825162886721695880565355522615417437786428154952892073211446120789940672567122619080876721013069158716375099797953341084450647617478395428110820998792699162627479624426730778437162352976617183687438628365755659455901181357910286888532676303020029135620055763677297770614404956901827657500413229637019838761792134587047558893660806670253691956136305368593616691938103618006249202394087587076638212844344053712180912746439148044708108503103821362554909815520199927485003232312475257075555787819853669461016146677382532721051721855686252319924131713492864056655748877599480185271265394805963110446773819656979784888869916368239702822416507247334311834382165342600790327217122100478788495874384037043293717778660830329580432011216175409443166957633734002753521641216374687216998661957271584071877728983669607684309928884597145031597145363051018863996079098634322811778687865599564143766820387334461024413781410678471259660037210568847193595177396166447427396659105619354781846219050289087108279495782576820863936891460273259920218301758538938325540533078461917970356103000853902237581853650262686000188988570035481560844644901344340512213697019613812980936976366008412145792919206360528133300482314285156322665516271728053575029177445162698357079135734725370203848278003749520812703343315452796477624973424725626758796244730809001813108371031111280907963973676718211897034937991998180250727991973616664586268047716703440156025766547561062169700327381990997741228832605673588646441285253006052762932939998423304301705842107842815536639736624525139232488947871400473462245779613260428913615137373887111286295796677758827139995070961396869757361686913754556689803033361606051770169185856310079591469108846588710314108318965087587643715715755503142141283884699470827154499712999716981281133682439629068978997414395869003026315278062569623207588049333025001552517356578974862424889129324816583115524582236324074451341846048640049279961410431496847231089745273137881702951624476316712803245208072265492096437893057626764449042042192359900316339290179094435521810592986841527162215003664120007559966725894031874717740382811444559410517369947093051669355820915572724154787071872374986949860806328132935151678152100345100196843004499459100141748694833119539080721769558241395849864065075984544088197763716374527020391559635115008024616394883381937542948188132416122187333174559002139379723118736239832116891769670837136764695303807228119328704670441498900331575492276313234080196904664329358947100823643315294655837018252253752412555083451594814483884941114052116906793884327665034527199133301411814381886913619668060089281046780766198561272727121193593711620730100093844200778458376632721719210521698662267159901334449769217573954133290933413425290266453207023742473498503312849835296708918788681453126375788024334206187348281810954122154212013468855076978337364055362469558320047192335718682866430868121329444755496897787762692136488504317561243481669542463701142123081492326250381646181229641791690075380826246337029582043335847120763641626049446004831884302709608894918427821614372735109325513708538477145495410204195045897118707291428999013321724918872707737383731973439565023183174469803744264852474971428184633117709982766588909483583159064344510613121254029291170546595915430992664115372957897396098224475288874192977246672089218379894600080252973633334959287363725807259898806173299650615974287690119483885057650782483756339443143767961634872529202172559028649109768347004363805336568335426568755953151560296119586642170993293631279847676613860190521679356881747708961892080222339699727492243193470477746520022622695171237529651293155052756159355314232093191731811202230568828708982691416111155784824404601582431254620809844373203113955021184733812174597185160020099818825136383142231588027826862809147967163423108739157051939000387411486303584405653131803914262895534117681548218234503738982429240297523214675971656376064995909370516659216594354125442950014555479164679989933269598447196902618719343429564359774168696095059130634602916789689759979691890405437063727065423660596519202864307806202544981462447327267150244208165960032758709740226852710173528518511534313510232204503002266800342894856164725486858467220275750523484882363056254401335018298519171456231034866952959151316469445434046813388845685602308340288235518852560927505743460723500832385814264347407202647255153909047538293383864598778347453411903350955605244382859413391325062850469821942576238656028010387464257646216556748687563128466630081283324310953349902144553670113802685431701544564587600627801550914795841297166682672117991011641821196750642516987681587377468821108127836503718420554043461013454897915239671272795282745142322085881678192446571751030896310702166664079416485943966158566428558889049904909463976697409944787880078908352454864693121998277643436201601576259195555318389439157630769239027848615888614962902375126453714454275612893806704276115793304304380233862983784719979084316385631037544024148116740993158965405220989524310589924328233499185561232280137391331424087270663164820327749873577663462896514222534515286535106417566230495176540661572087108466349390165083476849385632853214304067678361818771409350878967725683620943075267432304890915516672258947615903881106868558437011590647669073114194988519702640604730184781087087809483902131291697884592138129645596341812120267261441009124808472778018320773726578761936041721843395335628070021357779998141292638872160598107329875268618338923352907157684939534705745746753140120960337592497413442516450531233181018061738854591207492574546040998483549316137504863894175369288732705990012440468988765282205573379220732950177026197741606313038939829677169551903135934638760667160002905983562037624235097773241538470793334404178201704181179430863738025712631896199346247547230949854207525986966195877390331335762762063459360264106415214103281803064334117230287077087341676666508526686037675654659353276185931144879576880275517267287691736956887146704286400607780357719210760690949800994014025601460485373220738309839075507533436748448850031355046036210784013569739317693089498704313387986962749784234141107829622386113258315359604125970168789686872619803342708193599675811854078790401688946123999840066149113203459213798751392401163813032212640588420018446972236813274539874558413282464926688463201287088263014243342481326207332776903267888093865972038141122675564252526583176455353269947562775046559661921382423730129551948904280837051108685626365916460942462514559605820848010599716987157468617424757017143905484860537455055419726311589395582514662813579442274389171499460825426292650188869701629001549231314624891947451131487709227558606577821337659585449751265449165352866040576404323262040993766164124673570173310231907116762375811052079346192054185124751108986805133118011890116611104007783110480378065978677398482209329932437738894087986658105506579111754520880179032986861115866052401727188659003898667427212817603583264552956906796936604055232449483363153014120592135049532627541461774269578977556770708044485680273355003528891950128966630266179921266842457060104432048826236373251476616850357163280380251211122269277700416626893010902239332410764430539167693699943979448991555760442224964789746070417533184742001106020926831775512169091138235308337193271429641448763150866996427430588718383455711553047291426876983838835581388311974288486520103453647563979501076066604684877433090644604055986627130785077578402632282123581613392135632048546108904171615416853341127705618655596804673230720712329541318242896205218819298613790744976768911196005530856527632691015926830671790967890599059110803257562696465905744017819084566361831988897908666965999028672101988038715425085318910661605690371251346580462770680968400759248959857387796928497855394715501920084857369897429311284417207767162226414591101530045827293365163156461414894040420158869938238834087829320854076191526551347537946056652335357954398667460484838689876639459627396028978882971627099774951173389293060553668396297157482024944312659963086234340339565844628061108419782931697159247084662893822506106318998217686403092375802588004076929256942514523234672649420081003835975082424852463902817092669378649461980055135730483094858550719834613223263559890012716929062730361471993279067378779078322993748627394156020150921648433453705172693856689287012076557931088236554488807800563012424760621415955217308790673407358831938151236466518387102095188586339100253119440192191376470217494059218459068719069471800700979742151651185498416610375013330459693686011769543054918191380214638726014203747597216792306948280297384443760277032822073559082647322093075149749123472612111405328808545440207350952354814574198151100569377113117285533974852823187323638293948185313149474650921985763244284248170456598567242425976288829711494495628276212956045678840098567267843099419489140737386609037176299449669487457821223443855126904145893881109304807206737983368410300815550228608838889481225347702770587835955087161481376381092595264835384945627802989624943169300046459020340518088581986524650340625498453393854126998068100448943140319062028207511978993273266371261978216603139324745796493594356769901804326381603920453067056738476562133353911598921817843630447053407630851133200369300224735660871220103172041312815212169665597538946227898262396982210259768919752693733839580549373202834316999536347201956496355922085924643279457083579796254686005477063618559917989657423025686453987968423914780709585276198785856091635907668027908690985261066244504726085277372866532078361351696489540211563628322560855028090687661853966209342483573034939150471924733612833802841959937636035932099436044555881813576475097442303261192718211296212418237063755071687281897171468525009229649085955679813699909948281429542683253001644288697750348761499224203352243776737962449394066604845179067946424642159656121931330068781536759232973944528568334706354381378088434745576699144862056579051240943328077005517439209063546785466309397122645252395121619698690629383882675191312069903977761959561222030448881456504269138168723341734251334210362793218552958114688936001845348349064977212875776423077012359479627489352940615685838307336146694026339049491831080953892715452645604220859286942910809819394959853729045077570953173428792446587990125827426506588434158674510140403831157277417674464295846076022956940610856883101141640512405979756789234037788718024007020987486000090280260929690059502963227963095762429070739205477191414929201622273639772051155231506426417762364225600843880048075747047710247710664288171799236052536704109614639620105882370466183043407543951187194899279944284166925701489107700874131726684726874193335987298960569247697317075175539046206399460621787270771291708649370506600028499053907545844467862809834698127483276023531933568980447521775667330804482600545421668521555518883341302237860849619274933588730672128482246298087890816408618981969148154229719498705562188026388760852882071199478891434893226192245447321740159244476232122656828783564546537491039055433498373919743817931647863916338096928192660140257138990527588594451154894946395275404755206875256309514465575023335613780549096428707545195923917148230215296510240366023801289137135876449380673817695694718503005870360179276537357405189440821958260881086502540736458199810402046190511627309627108940162313303434437806239514623765526019985909950058104029265692969928447715386805388293030971406188023751924133022342819166404673403291759415583546903505827820648400239642665110175112880220417192332807233845497976395938030934375727843909243077349549869136604553776904221132380276368622371350912237098306235661023330362899318781911694392878176680538032861701566309691607255424936783902683817964356420973373014894688509967030491996923019516246222582743998941629081272657143459507176395190546796942049627846199661161616141166368170516753662944442033179256299777025343354764557626802472663447652393182776762753728530010698808063118460205481240569593783469595815730078120151093945949911303681989684950294548420753453879707315711693936919887158261043167092105812048873107537539392068762968826884919413664519910666433203219254662205644171328966224369173008219450628476815604412855738660223487915875008537065502235160470610136790047513181090320031074315207445220972024171230964727022961569936570447964975274434873789150952755096635720823210751815401094355123707585677825583816347638963929948751668161917254399360902399737245044241030424830396995954957969604474437724678611543181431589207535140577464781284807045142145548702743522817883938335483177237786314382171199587624939753315653906653763856651052091107097814799582242768643664136195445675277110127675497117551421632618648212924073449565815663776559906300540518408621357581728964130410580139669408836102083983400932292911741745955770318233556196320490332930665653719115967373861256938341865649680363325641931641643499207339252734023961165042824236271467177093636806425802751953863545490204109895554934099410862838070967956271140545495910693400794752701658725024495085576083757482882183743614082705391235189441892005606498688222796855426015762263569150908365567236512470689837471232701551372063920206021029550495802726247816417339093040100462954893625353085017077248190842718237077782420194217287931378822111537307399298799753588883876422119814550601989152463572289661729708120492738842885249121966256735458715840086340850379390335177209411333519595558624050507357712061974027333681654639897072971054386260534772230307491751648811435748495631208191810825030633179522040890075818981605208537645124167814135734959144309059181320882570688203425424204950687045338276370037360808214148769324876348437828252627307550963291507589002135468014492239212791840900857045301118224800213192198631192995426316260685200826617105882991125333696104681211519564003203401258708238269744376371632560473580187328094601538768195992852949813628978613575694152572513175424536516608624337636804222095576580107720872888123958817836636918775519841469431620939154277429271221224110247065411336405863295776186514651825690029332363222257486980363232038471414118126761529521422117833940579720684925012815080203383107249513761657953185924737852626215520096559571810227129721014665009584505913250830640976857941554197500838866272180760877823552888671803757568162769506359955003432689430810584213670647913632939974328782097072051580613526811785950391430537778064271044187524661279515582491864499039083078981161535918281711113639724322229537480794066247611285866728382349007204284336346632520851408702610402989852449807199627048440135187515767316641549719724916009909372107531141590119101524843145223402942969735163109404690385208162377580788207108681669842069620791685804561977762971855966568212153640289865691489912535108804183324806771951764039735492851239360530987436940854594711900012949253193414386142828635015192845078798137851844333438318632021321052027030800494827073001954856964792653137156582327739800037929184639109952710923276040391505124378790488799457172405236276530944410357611941897698472197217383896481742930873428424774598883755560184873958739589816568354985165349999312090455107042096574315489028732955926469527540391847143966819271347136379331552613725463644009929094413251784014855805836831873765429483156508551594029714807531136978339182868381628186385116141889659449892188600280214957076172648700092966955028451634282152038221833742553543645156506263065812196867529124254815213158840729615811935873977698394551485324953732943850732956383482731801183002383431198983942211763260564726748617071563858072959128083161242626985295053387681532940195737580422043066400484608605323388218577192293206140879042614465271719259596119001537248519370188492710268017976951031526488743460320656312219375322398888751248490320884355593502080109175473827133838417579494598829948160480907142185789260009555269021394196383965974419952360707668617313299769982487684734981646200105812217123552552569583113424342899019896179323736965351855352109131773069040626941600035061089033951174952105251386677071762774833430704379089831830700883134465067592834347728641076185409120310115361536101615643706499123642982453076806730096212131798694449618607884007728103201817922108417224388846830814757526710062417138036192896432284423077071503982486800808211742183338048776760867488866174531894741385902150425881880281608366176885604909465579912699803181106704205117941940433064939395137888521807010427166137519474296986860316373737808270870280180898715032922472754499698853374271465180476978177312042450623406832853920685467271705916443136950127051449869519143104060107015292158919736601007470169777343889594450294687533585071739023868238097438142516118614818458758660557957748183108312039149416909342356739532548358923213323131636473569852752568959318011420570716884121947135662942329376865296169433837732953858505826685659559803497280129217371866512280846191610022124996896097646810500327777323964059822706102544442679542118834301021875053158079184067937406557130146848405843343089098760831519793927140526998573380475569262343284026133845031699196505344791732899684836767650552792174116082355159741667918860666767062513969390724687378550723411449531759099095100003914251298657955742812707195960379952310456052466552819508848982077683870235197904453302174710273114239393863791764453791663964171818462163508393414435852685811361806323374392174120452432459400321828603662694507552926552969439797139083449834648217313205570512730141710059122236606670312853729847100154836359980099383627967688889253855426195260523913330968460107763289770590668651078616793679478395488370635549071928905487262970850617524733327246582060672326871116181090498756186570100754333856910585264712446831170842153030288349600554626155666050305966378334948978928887769114259741210127793228416519567246983550165166504692144324828258452019470990675189212385603996787859703719253104680919657670683069479427729203296648726571212848595094674868255970146592081692522974201711911069184697599961776187482829776682214206282478917532016114938984785515309390291693450661632992706938077944691211249551628346911211235316542909299274919990444961709202199063319250344531371271997651133134618177789369259003818055055884967882184737992273985167457944319050295974808067337929778578856217709647338844269576523455306506502487047905511622476460022208021221962878209380090141983453030284389064316922338360040623357473827118323554363008456177763853580647903644450840587844279369347278839192029845161199870003482652300679658278677551335157996013284601032146276711209658605859990022566891434761722071891003633053145647008120794497731585787686416810401653932101749513384614390079614537898585384925617550499663767651633739215002264868629983765815619255580980427639012847471182093584421687690850832448224875021435218755320283764600577915249111161858722158277602948497766576006244578107813160569362882289295154125938641627974907647367148441090252791423422899925590750708695091419347683665666187633386582793512430716679326925630512611225686783164404726430012071462722486926033197023975115722536747375048482818126733609341690218432162905294546686502353298342503113147723137361387544695552563186016609027144524180314244662431314664130153059807779142075282551798610902112374281953806195135661827873380397934910800404624961845187982941367173431412791184442612085728172656080283556332810241656694545168256598923478539314631826693024026572863200409933664386822705990932877198603522938494272120382906660896825806339099867645696299908216518873663937763860027295837553678913907714952100032862562312816815541373063232858079946845861825216986833358226847459126540270519863637450838586175778514869796511048725294116404182172487693721979611363004348701276086116248275746558276193785004102851217164231336337715241590855763588634913947527186680302918401122522454532508740921083796606584416432055588867727622424568121858644605345966469963167132943529609251331892638650769315057503818460050135348280821467169068110252144731204172687592369315841007352208656617898088564330451418654944014923197094972226468826353740236850191590320487703757192238242224349944884423732823025684329177612827886703688445798740553726591007081852510436121529286299154419272069189826046879932148581408852590453571712590815830044356591445935495411887465807387113753088632501992237693149927443949804612080799140937910624290395608047927703074825308871384084508939412896741062063678030862085262668289413570174174933718191139993101759365043576380674617522886690787741082056100549888508531778365106243255578948185235998624876446227223111562590052679912713351919002199274439074931785530300748930579894235343066123871805938466949221471119345001256175242381681742082611189817269647698279277918186524766031705876246136258502963790002871410464492530035375396605605120137447437145748645253650645590092389401012460265861426052310045961678550327268846810046247118876619873439325411505362662324315185209700198862444798328552780066313791966777705654905106060927286014681841309510635124960895690773693896982495874887818297866502056930351252206505932086233794651178340244107142581996561275471532347379798309251914653293733658783573606211453041460445061535769153936958709025031619406751720727055863449178428045643344988133232295676594060580808952705073824032609062568610674585059348479048011242688654223829675708886239128587525816920154635430765368139022045786820577627259741896576597045179770491081783809298506993787732322977428293067393190165305333059815908753337283519243966786606280458334981587042521291661470914150330377447642441105969595191455926809914835520450917244840991205473877643430064533106219313937646597203444260926448846674308050264599796374512201462904869851038654632598612768819405659793940678835219559881279228384316637578497938357902510423078111612514473355396422652270450136832522664350356010815157401196136440542559517803437296832605613651191831813486182561611905803910064666552097672186263229328017701876038383248158781688675462494159304437901226216467893322210002780650894958148927653836442756582667413133243947212762072491476008925761353499937833804102809595198282340093079567669941697575055419456842179799429610049337538328524730607843961686915108503907237495704703460985651556613410817947300672205256278574519409039853969287211155328515956220477139572544643997450397460549217616558310366313889276709795775903407699379991544472763759874479584321027294010600280721643988059652082559543828972180214458722402686752118660337360968368938255249836515902188031295185246245388483515588842166846730047208664108694107869954809583535836158853503363897084622659478906816135987660831732176032945419785753997033561149340646144820281438395749464814910440388803665500397674128598215710394990283260612110712035603386814561147745278605656399374790492879996180057538149715335501616697002887883986063468210351516948529992104917245922901232750410701032056755789898230663322012026977460807628193645227026722623368788490045772398496773280904321589131020366152453785451734399170288448448727606789286687201576951857829368783064213488693806699767538225502650383326732046880037999795135958977619375758357551076737199301581098423866397608220402986264652934923642165150014057767567359893719210858311488913362948035885539737850648450363344706337016635265929544825686423821643535184214657058526853011836236493189993364978268289461615358824768647166411861841885463721715893203014579596176636395536966603409588172949196431546076437728423429161436030681630514237541121790953256856875892357996133582984033242144904668746515193362317595674719948868743722045046268184826498492784606934367204386232706888747937635294244931142799536946810713928945600983723942731966063401405977483015731451902056578886701254683259048890879451814524847842014819533469166392995015445954202941015753223662694000600164758244198332358008728177103512641483898228389737369161193246763632009071852197378030095209346644426221905123629658487258858734750073838960587615308942342587086303749252703689579538479688647185030164420912640337807683795856931416129487249164451826415841355820116052632016715311164308602940383837937525597181275677908863844458394669815529779073729480279850995279708099554421671009509757998484966673913052615653709273187901908895618991405709932756785495459356680695782716767538608866649027890001144173975693001103777579490094066348787368591496913516684171944384993303742569217282014176705229522254853066331371681567414781623460437607998338674385457902759131321965045181320107797542466778974849642689953920277950901287643966160156980877055287116367977940144667235731785311693755911123939926129754551272138390569890078401279339777558193045686186135357238105482084321338673951873707877911231864968668012266904536059854382315727803377916376785850133664942321280345666891564912067375500706212727141423329024208516512914937980981183617320585018981248828937609914707541047659658898120380979356746997772107235633148744632471224882974488915993320934883330480174773659919149503661991555774910512895534999619219210526626707509683957191655640447665540315940522127660797526890065915417621540643590722041545195142210206830983935901440475885341343392563588397802296114108337299219292950990160725306048000858335915275885510016577662392820836074237033671404153929048878886525500870629803733373030538935793134808442495596491078949027816118814704528311500745120263106412791701448663963769172302900126877675382287645486896479979286862256448786577693301386073967611859291180000777219651508642378360722918544949349312696489685454353696722752191123890037976255284599865595205480122903494993822198902572034796554192894684533057261300681228068164557646263104291650313162504032933088716305800925250468523842718901685901734290101121959667566221101282921094759702906319049113730752792481156260865189998452334744581763613063241933842447032588511846381461638000610753758916209430828649846739236191425385076680377504865093039536438128923611865948128233652251221125644450637442635492655009963353210049875909577656682474104947069622389389607531589503694060067916617959473572018171448332146978891120175991823940142080215601742082243527973929817430458261234155281540988053041530288805181767389146176397010803899281652254570318673900809657464824098363112689459305900236870337377196793520457815961837140070837767706652247100005610685800105699545537732643395346090305773065031283904557575509461964798012979464302050360938122607115866357632789341328555560230063695159810233201147010336948463548964702439524079679880013588121583546189012563951069583217011405193875696425841671361533307272807906687374042852357616163499498177773006854493469520621043301882910629618494309002145344678923546651409707341883079866735229933416615961564958736753807263595836129338283554391460517551429691087448008881060251144914955172966555589839452640695199504916545643883201083105686726943440249992387397796969901715408548597780358903354431186343225536631916151370094775171000040150042445092086516406563679554602813774810232554494366056629200036140433691778416551499420387297932420881972858938698361920965959338101319066647659574507661358630000531862818623672913165893286900393336845109903619387967279109248480218324608322003504020548371340717421965903133039749331572378565945712093538207124852128424221408969014672468398477075048244273941437067618642038863507595126274345671469859885609076074318945241660411523600603866438185992125554173604943436241722077098020497764198631426845449632655600430169786036560406418467415638902788901795942133412732004891302046272758678929853053069651960990830461905258736909974619707017609357592688716437824539689428296740091205675059400974974157985079778436501354075371192717552928596242353757602106278581618267552682548467275459359778709472128761979301641019037401760243188304433713283344565855492201227514116793007963425537660927425552417666372753850581223702029759668035427068138315901266315943206585427976767907129258725393986041812696017219389481633477847550663836695031915705584111192644207602988574967004935149551153676844536600571748093903270258346155909981945153313629216740131855320703222602682719489984729843262595505734712601467554818555692743722548441131713916612244219255540112644561458363845409906130690901174781932442640386869754758132731275354562118551803874774717689291485350279623274883808399398130459258479652506581352080315778654282206108520187603287840040850572718325799297042260799681285336233145319408041620964460029263190288550247111351584178231341202224255850394179546553854645107556774111923492149340203124721312117511905398860952199177650073333714616695098672176566357169789635131790683201964343597844410158192740682922025764403979603756111891932242034630328080305794648841051266207448182801210497291462919772652849744176425149050721729067235173145723522581144355172795228502923508427480906159833469382994264645318016342001201498752326907652892526915859249720191700906928584676054344082183344947119266446814121985619063598718908298201718724726157782866305254916598385672439631735570668890250363787300095288531809730563441592780935957886443722104425660682400363441747099371288340693005262059653334958884408458046648080097734413870032322817015101790353793006712120293086229400270666157905397361907339525476072266100288514152554811301640592397484287238329251324313156827236900080577621202228101263044581246440599376281925758475250079046215804655756902464314480817267588041827946026074366073540660565839849328798997601245957160899958242440079629308699753015850308551730054460608499744489547170137841334536544530065852906334894682889745773406760576455063060493232827547094020964581212874615263289823435096635368979881531115642156743665260909824991548208388164046521656032122235474901006786382660403953461226255835833583285622977484263912517681759607913428922159752596605933902573911914012016131641296136802470648076167794915047656997478425150762347623926503710675614652039454471674068302457429818746121071792429081511414999088208332136215827863345093276953357905590640522509574169314958771163651048421700208615339492222569920275068251997741620937794434636953962979996186085486725707861310766866800934157267903050140621133984752610951595257476030064484828056930564493418301957809077074113647271986594978494102255368299036956675907643934162079367273952552792039041603774385580327285197894802627357989010607317643968476289451292772783869110719919530972965471595584774825596527535056071429542127107386734825153970576817553697486973822044982249611865932214893729031688728964411567296498882381534933150989780650079716717106955629790056856653568016336660395140031365323506238691757127980547744212294436453075559102704246109897490222335542516412589536785252525607870923298256722907117310854584017597144039508503564106976744729605677537938157253188273889214253934653014020004764368382299723577940121425996664223551886905049998626791144636539510534888035845146730771773749284291318604731841896233227395574831029687859552614276805221245460071348190776101738700752499007009996436242143716734882004081885554162897431528484098103895116052549519107385122770711311431955440058975524537695554302336895225590241507837857170194768070609099122880633044796603966802230813342785289916315667626993192515366958691281385053528700699055968366157692951083965392097671417546020214436640188015391133831831686527628805700578210710174157244451340383367813286311175133175800414157911057069336486097207542571842410399362064648178559534912131810722979090400462531764777158633468350078694077764348635221484651352417258970811857455056353543439631978735528182434568171638581011978903594417530756972099598547004429587649704713545116976223839180240322414072889450820698739451392676282280734495681214776010975723360208232872345762700573608858107087735216497549267977898483038879624581786769431626788915928356178510333711470526608751960812295542224280556062280362855346599692604637575846040172428629089083899403727589096549502093514909296579408075808950126624306060245287153934309608520663472109339224017900102773714022106350207903408639159578413761682651235085173472371838667892426612783625416210446789184706700406007028203641187957138177580232389154157593085240808706558273715032098854882760830049936119807709778620358314849061326787329645228654324869046446209168714588482714190852640112978109219079298838223890234829376309807268976933785862374701878409530633225964000531452915065194991046427129234947754259854076594012682462667545428541352820370030168033988177231725834781062950516491805158043682893741355519662057141874707302174523061250847848168807806960626733508156496532771604519659188753975625444253941847685507528589070256087889707740825205906124560891288190567962225524696316894374788271330084690853489171720092914070343730558578793174550938595645434404529334954623807310086699178780547783918147005988979334461461463297103160887353637809196503481000437307755122553022836888793331966594628593478663682242182420836151325025544259226300149943529553473061114930604530200199093578143071766214023242271923598376816681357615442324279490440255970003620083771796675615917195062590917225518392120039940976107283021208953552822872938346707718689311753450827308502038678193425201075536090984899606483485922652894565023426407740303593760105488100697402273286913546357548623281565782679184512910316757964232323287361976240260081496013422643058909211610480833203571115543903977377988326755777002157451606189987683362448621560928427699593546294734168104123142681335903276374220231756053250813381920261189363643326621511861704281871484980855126367063897542417989323269537495176435325444813676049100768444432731321651642761756069227763611172029015838772398003467978694666509631052444507052286620585499573703545395951188052601107304912671816792671303232163117168653164310966610656097264550656677873278194221765023643554048160614749970279882468751636326918226556361839118029343940443810170569943301392114828879769101943673253002773777385641407714128149561515841227104804706762637542927686451317543137811948217113302685331040910640512195088356183212484804738864281971897483733129875190934532989101884249988767038481224471900518986089925156566333802093256058637820589821591835360381232160330035896210513858997841200870535420152323029037811336786183173223509606750862049334901467004400146491665211257680740237945904457490483919264624996821734983598704783128254193277781934838854075719369999782050005857432800640151356532166001978215176386337195421325686373063912481270151146305538152158281260618647787633311186077486803640624019815319909988980097547140820049435793531609977367899585235868730441117632093761205022427295322278836528792926129940568314386036721128483223593822467809138714406513476287475189106264333693326357454219437743204315882546401026029480443394584804892952141770807658931829200636528332967303616608493090549719472493518406875814571274454252019954590095148157482332114290838107691782544102776403718395644675717405827154023187275910303660987163003187489219759143896209536544290164457712046363950602718484258130384317053290572615899777786319535141828594028977396541980785189089154958272780786661476703199852907578407077604001018730813929061947229767458593882122693027538502102331973478655925996054232590641212729174378092222218367840431882375684684471469719446507053254028609813942099063089158392413598529522849459191587992872481711769562501465722277332560411806634608046935942097529956076971388284793690548660519953818827131523357143471363851951681846267474363841649096231908467018400700271551128058189250971060914292179813920665729077381848173338320904170826142280548207657827441641318694437337388994397973820963223792994072689593353153813684878180748040123645721351195016237568776989244611091857134300152141207266339845290118468549068299706857354827247799246588878054614244904155696216673532360935726901961163516993052608905573431776416130003959790792754194780522414920220391724543814038719074176080961345595034325972097262740323566468639757920337553986857719745947213955487297373791384889667308570284531613611839262340061707036352399422630954803095970959375141744539131426018739161959266243938220777182064105340942945955905404482146920492261175326736595541459113490908264000394996220974458213034462296937522409119467544620612772988357940142817023780326805999127342425082487600023886608183265715828465978256846925177571814661867640116986849409776810628723867514195272028174789344574397289117271446800012496441983323864023396728327595379080525112725416704040383073914878059744317717419256914105121428860876271787208077558052712828963507545198245893066099229226520989254126983332669995709013169362667025203969279848952242701387063138050233305808901472612859748811665301121096740076395414608708454613087615271243905285620752720205590817456159061161973097414688312300575886851756016894249521100658384529851155160779712668995810053392287517301617668657885349809159292391412643883271977004072653696208556474989064956397419174077011781391241748161906190117437888949862195390931179711901425462650453482436283405295465699217389169153563493087683490184862232855332432474705291664019654406770940185474906795823686044979902497892735407058540084069737029439447016542507508143560370759235319962594695433559323687621510357074795612369428494078094955721623526761332990777909199548678781313935666306712372404596014003078807205574535435914764344264657206373634873191109806750147868437758412176039402791685047966165497128698183081584547101674574841192138548233656996972798466467424611895300465163402975539080623932376597524643732126997278921424364496523595350604954454282091698810375163328784049322958149405582637425002571632139529279113909900287741225189039476139267932838247704004033639310640033979904106261255082734427367601810318430288976190955838779069691622868777122052117745828804717499230857197754496635127199866344451528787880473065836237596487854266574797128281021018358593409431583270187363221952524887295029341967774736019564359835861068988117284647603532462528003518419695765212505330022183464124560596610232517450756432657819615984395749434038166234126508649419441232652749057278714616995988401343643135269258044562956965737050231989259339468518367145256714668118207165474191052707093091830325713901129642237430584852711425073436503144445700244327865781235711135845770177859491983478642571268536346171171989711248584411147130469031803080299211506201291258329425782934626658903392344545388456888258602732365735018497213868726648778633722713503104261863645092754521228581520349838615862350948107215383155622236055949148703358317372550211343363239977659215975058048531243429095010433705183725639198024461569230495594525687257822839294820687160424679552998448638509167925233131409428719741435620897936883278752322305136832091899888434307451893617757945713139054447392967870654711610321395733289937728623526666008084165316748368684757341148506204394058936043599246797272855952536081275294279350780055586830245221590530633154122668947621312552273473648468466539428293402373813875096703091166765977827089686581850889006416618431278165949521866448925193617722469662912161901288879461150669243957441004026978703859552950259099263734066442783335807683344291370824042109348665475101289663716686217030219531175801233043560348703206096098014425339024468098916319804223827504197720902729374590654983628190267049393191807400260530610840289839026961499220909577401389053041070453339507252741750540403222514707582515525468565901952122501478813416891431466490733073839056600340046611987100981591909009772480804001255539703515125404227049449879638580787352009860531816536906765228215800857781737366047226362836740503046497006592132988424330382546046507627876039320936012082931951532803025343275637598609850211530456026072215597755824451960189661251289416002077095616230669499455346545764385083958829531117840615889237388746097245508354518262526411987531435800868134350764192177962437401215963118215396451751025589858212652296853274191616176176232419900655022580528066740901827669381543868264494180022392000265668263389556117186819055095803799859882912003030090361349417863101522503192751124927430235657827191843424000367880575242698948545675362449602978378633564871829168719501945932585328976944429693845557690977788542204357583101299958405741040421511325712057537856298758295319237629885049387599347540027664546611619134780742944928571675996658078490666059816746394331775072356338857116633199975482137608808198255844505319132899276482020157113706125590962845581718134093807489847785295276177054922581788108121972129015403485382254817318565051933928073435699352787907601128597512934062993770646407051500106547506258000006074980105652622284753178814964831434699717951357768907510567586320478644878451834006470660207405019647945404336040980283215774559320594277648194757753359064917420330900324356644289363788230309948351432589093934518852040891203549462239639672027603900257223608816275153145759111552408835544328866062817688512298590964903001460917178845778861653325072880911914369860049804643886870859658176767415361744676184278586304462818197403480570650298239896938108392462502799995255004263177484771086755887474093173714984767188841744401477395906105721874881758619893789862878173257528840490098499730890016268095366413983309085371050657878624142459076309008955423498891626554849070418501406148959671919877573683675014986422989382121993411108018930065010005419775943681951390075001297997243790542791995032793661417945295974959625532607156752343078963391835080306608150976045718685305542724109115862319250655624063957786108162185745905536227583848442257437204578170027911234576343650488272047674972888700057098910029999022901830525249263163678055895456883738515429434363290672037892894223734030194224369396462846000252793259977856120663658816845201004763457474252953897573772526347724586563112234205458418557669748275639524295728144190214121397179985622666981236785503476861565160973831879471295540985000884896166055340016353377225046816362064610260385370320772590675529548010281881421128377536741239154367133411178675527970986069046170210483964327426438409254090993646923035729468724692070678579821904930672857659182516487139061546957172011353802898107450453836133316914555992710752279548193125572523027115712326255953077248713362680637384765395755242394200671269859557478992179699158393692061880883922540252392796024751338383542739263759039807415722418269959483266334191665792566094496263292022116707392270868032792835527614927813235986135599170189037810008720432267545471033042375247822945676387444655312859538605775661736681127653570756774019931048835186466024312152661596810854101015025017551902911335960566533517643069301327894356362453007814029133111922083057391322253843184801963929827117436990523967453558020550095109640995220910895932785417807195520466306549029249829576119663485671036700599592803172584318725150264918496959695302943637633582661285625967072349979531948410458657155073043587471919203670819143316505666427035345379792071079346375370913429909945716326864427402121164888465986435099745644296846601239052878284013501696435287941235337995179364458470936827335648346582426370402721895318349657702696655979101704217963860200131681967880102747238880205970435524645361144134739693082168514737530136245341783308467457083696258738340522788692053659563393816550702826939529117344631225443104588415166208444680830910400441833262168574354738438690208369393889507244285896221611000853425951132554672881960539177337641873524712008793711027732685613165889163014501803663732357428121721967630748577642843616640539512933329359234320469719492611070921128561008234110254036355839790502992450294822328917938921156140022841170951640831300808326656191689064153993338384459260429870853660419413992195232204437288500935923879768745503417012437240249071604721922971213947976000952105771778053344881572582452701338914019559145265588667309321235029443215558043212144388532157865861126891258308387395821723308056759343100666842419736598214076991874827077884237110544432990449101703493545347517698628542345086723722833378967870780073780074096871188852262713224023731293066639975537557490337471025760789876699287696870319716160846656020205672774801522679650785101874855511771721156565681621242298330971322904770692351928054762519940599882907924696852817199006270194141190659179462157029522546581402743855308883617740338937521478773267042824848477525051389089997074555105390039710023053475218901235626553007370696110544288111824589982343156009163819738759069464469677874484198897350106185501694038005344756075462201924250489097050278126269353913942094677853797453508489021928953806767846205714403785789908615544791841887937123169944962696834809828439569725894456733029936363961152610673497695915210344179431709491666592917313703551932113196698584317849588699696197606532971985551181654049582098079840882402279391868209314934549364060703934870584913559996507306615811386410840260109017633166977366357687309740528539821116964737977423925570408051946073561503129496132654182872949177923102903065757608052137245920240071524868162892962823643133593024590983422521519348541226300858495870895262309977969652834821207848687104953068061884208638982162530758239702881181053149585685537503517204004589455670639236718502567225729871618824433464372307327596514794055549302110909717879655050738021205898134316317469882730816398291674374065621654240668670422415930520255124907135567813229906762973642762891090925675849765710371056067430060002513168522942596597894724534186727849508557266172526272922574327920801348989017317790173181462585042916760610995013855446441411816245399414794377612356599090711187800310613688658034212490041323349221427044819830812128880990891108366922257953714327515664213588899588911883740304168039268369050369040705533352970365465943976682057184012224913430856836863287002212757239748807330157375116390940457010096185230162251180107097001649652900874368846481298876035346165877114444479015171110263647758392137799712753074951989989731056841999727437360757189876989481997197566551113090973660293359092949194603110906129661540976442205110722361212540718015705822491751302080401149682949095081718897954250239601787220451398223007757109642472373803967938264239266266507695221839269114536519535014812786917891000498908724992543979834105598148611311413284602644419903327048824051718367110871272756223696274313437715808923318351806028810830978203826123835563355008054090474969738066134095658272065465634609380785173190710021737640941030721722712291389325096179474128605197557419514124259115696622281184480948208055693443995578045292827888183384448262904555950414866233012452562494849151329986364056609163942417984679212813419081141292777753755811446997152352145636667068749261874373797016128702736767586540687074401052681076795323067810072007898025757742466147346389419771245542501722316333395731266218426630083488133557063664677283892614372326442295615724426245264854119084903122178389656412484314750214263627873686201899653134924729237967083690063626887943904002592140953691551240283924092761135387403988752073360832409128711185249505125475987911918843653099355391701505540570032269230178894707370019996727850186014931455051647554158735907018744803802442379068398552265636879852229184459612141480812448663945439332212023216433265185274196072141380463398896616382305698800075217220006997271259687222454144676448224044801635410335405169545865942681263731333487913682388638879351614251459411180454437511032194978864317088161083139680758354578985158000733528145347878912946042122808055264749257786426615578312617938073228014993316903847225434311474143905303765474547758716696673264958351637052619115697789798520356637158468400065022282989466900677985678862343696230959445942583271119813769063591413456352975123046326233243293241555090271445083611848065693928155619227750950646097721050122926951430448599604932753368929066096748306855749995562746698573917253218961945194280904445374364210931954966639618386822868134876589929892824364977813487273001748382023010473440113800119837063038657004841198456892623291367625056780341800447444932192011166861715832290876253159599545068618919211692640365899369975050014917432339481514642692371320431362743888764456335454842314648545115046603532029444961362463532551482499466508031414715654483717190528316368493699365775662701821807538191753005617688661720464337053417841870918334859462885059031858417814983878738412960115592830080353050478613106526868547817501227768602055192170261816957943376652018261304339740332389488260234159558453247078867526474841471297400205245782578156839780176476041441211792137250722491988215748707494735778262145459124961187537989528147040250990913894439654715325692569531010290491724170063057725741800023924014283580095570695943631892018455991370564171406626961458544729133332432298745933918439779370897739299123764363170178102471970546684416985063976537820793485371804465920222491808944242722941384491031017747586179824516990049269074650752776745621340482383766056523073033440627076779583342075516710638336043916235666720201013290568115729999177410652820332236882858943675943515228408267607533811911548464228860163401542829067616801584664208270731374936240282417601911236064829812472709786529358317307063962628267312154863901648505286037399478941281844721932311282611324248464697281337179745267412062329366995520460042287395505975757006964957582753585865373795493970392718030772682355335802560424494734654139803349689319943792097561295666726099722334181598397418241117153630568530676515499493868389737221421668980219170015256288935251716502924280501066088833278625585988530583378393984615525473864896659029864574556018929522542311960249534762769050470423618646555712695196965562834747784027654344807401624955576256999749291769870538613392431630098522731782113309783451235657012088466892899968790564662623425291857456892471308154990945916046040741140809270660560174289518210922259003484114316568132130575967803679532237582387788906562224537202718464819472488340419642382964067907433186005346359247755559879201617474794048911710203108784558166739402446699400670167558357538650527990745589506155815939360274423326274374277436157160383807988548293496728720944911742108372700708871863547547872005003297035321042372748973800214059913064432451207864978803725519311769331397909085812692973025693549645619543081036351660642391494425041305463659311495357533762229718085548829727062717104917100229600482483725199587826040083125438208541525149761288920760875618064229868942973618728800735339257093875685119411669569122827492653875955613573551724633739930074924591179246386009847150015942291281409215172537390944298767226639825924986747973669870225243634896729380512934664447840451648191379447226776861909431542641407600928035113429414043980805249624455028704478480889770598298051827394778208183777317404292103857571375219927980758042423489102715778047549387965132812708578580470657683562610190661789300036637473787134230315282267732297297698429657402292296562442891383300362940341617473296703604083898514488135256965215045890081932406243777230574052051091971806178544506706235450546519508671532299738554432925491091280435345087831193965604968339104533435222705849635171130696479483707932896001886072441039870748174271474451332422990544724524818512975190485362459243992941352507253010876125896341149765436433701541763059568873332561853585259809778335938260754258171193684471279741562656477568115041602306755574726808687265480186594110525995226730959962840479865042923342504106845929835114456810521542512038233255154263356917118356862333155431525320381003163701746605877501179731510328411625984138268845010393990062430063826651914470818132793694741101973996433023348636010156657854860805330089940762105941842467952657389019256674034610329785465632866332790712908953849709683234322421050667980276414919579674730637453486037670907517199002431269542389662140885932317102980600283191421995871424701550715780776662260593302015706484916868130346476251836918800331827947066967066939662467784431849063386353083720527492811984553345283210255063992839125148109300533178739846289927668836112673094224563476081890061138613749493273611247339226136080840989111712830770305159371198734162253996886596031399752891445787260232941995642537394829958217637005967380001058982389418353680603045326732048273188120308700754445275887184223307227943708383963345824567579289804896295798525605887374450830003203173811463919525708678138703398710988189856462654275074420858933408234590631330280309884925728120223758390816437736644504262323966865189102921988738493694045276511988065682870243153954292716045482793252250269488695457677987312371552021723894950879796371116121097065736724442884200789355623386431922498299529537134222265959121472976480704022602167686283465728554915718146061786574381840567071874941088928296253149626068638810783106234274696668507863191290455429963218563584391957068681702976926104235354097054166501325953373549431104134293951894511831162214009373935328436010672061421570749559786127126244652160664951293361163845490975826277676583151715217582677879159000223364869207690061611359624755672698082947024424842742033758127415456748973188441823931929795302311276914059730779418483538068158657683364490391558583654817734479116290880477500363219678030111831324794930388759329541482383784587641170047293811716294954731269106253624494402678203406410300312324390090134635843588154845145829347376646665040450631130630666227486165484383961356308944922092515838924461885890290428527560410249496859225017155990335377598346960689357779188343003034425208249705977847177078856343234672615699457162445112004349434100877739243248414289179122013662530195353405992901002360315114077076890310653860439492844481037905162379623471137304929040522921435969048660894284266712433957544423453562839215249903262776606141569474630271720992912496050556495160857639970747406034253907271199916922681244491737845475050998146678434842536324770008930367998649023206218057604457822811557184845547248234586708216276721079013750231485524105465302732374715730132108103706419526520023527241060918850095390877459034371484736588830823037738557631732951465115478253829779679860172698198837772420573483495953212871239460431999842493159507803993707262614363293286115225106599479351594184155852910994997024680451099514634579887672602512862610157757373268144715791238332562106198913629649637496011785869013334340227765368935664529489910645495540305431968014530458067468755377081972132289989170734344762475922819121738170095804368840653937266336182052343362347678659057017664364514159934745092325939244274241433824689207048900703606325098314452997405761880609935853017045799841690112553363459622188189519869506904038001482329432418345104876574410327616495021770866132667096695929967138513919849464545917299643193954234568890817273985991973187217675239217137898747979673951677597868975763974104609006339263021905516779064086581478162595489010847133387857088894983049557770819282951674703537102763395197879583781051096366464597336056418160555605236969301540098398116182661665888498875803494926495891169628135006627942718298939542961606012841135712238191169538604706931413639455390591641339002723532552337265315540987953616201942003748560749583730221071135583132536882284805070194292597820900742256138272831624156244400391913819693748188421815391621664706844565338525464690018161043332459229540407428814290420954830323381182278999572493336174242402652059525122902369252221897882902627747802205273872905329254743015819195624917100751845395712962677065700107557300661838032329887496350259753731212878302321871491381399620025604552326188383887633893671537723808859546013169452410725642783861471716117992399460322061586980702321580784180818462261125178682146266914564679941136840250241207403506985712891951498932508479858530610487535235253507916116846900238310248386389004563981297642533417284671352415969841516272238057428106562521682465262853888432353343689608133430108825727441610222172053334850892105492008906936261729519781580829231831103505855873185089489155267046506685341751279163018435863694655148939817720598641155455032524299371199380541522392556395981823910450288545124735114320109914103582418966437110713340280040836321010405529438883460257035515023390414926959762364931947182024141054738677663497757567698079580210288800655784420451604800801360503010742900666553215320754156249314482256908623178450323593095440422461592530136874958381021662703012159291748272999457944761258747241302048104226500720006607195505245057291173394188576210939293249121124619044583303691535574988822210615401184502843623708951714975388893559856739061159005174091558321139753650451267942405957106514733343493326489481579584708074323930300258565359330562330615177937809870564774252961288643138505656622433777388613029987617289123273743708142680294157951573822208096430180245724750719743950618875043692285520565003419753949223962477238786087219803670778214661333790269069964507437022324900645078453316603895564884867396611662967673633907578987920495194464795799480588081460604314188494357218145243350164153171533879640932315608564684259251421894251629686615765248062307038547900721827964383908616156537719388540982729880645573022265783644709082574215883107129070565743348033749990642099256888003986658761219045205299246304041830879088426689247509405699049664096334332437418148622756029254717008450147805381429858599592910854769961199057174989177234585231023240650158017473563994791799300091292433272764595610941454399529120434814477645637205882171960569766546895834431733958897529914847584318723088992556466120551851088223362892937951163174561756691117270700855091391635405111024803510542390278390122805356213167636376040422398983728530712288468273570485184124674465453452329578851643902889688860238323958736078732612903392726793150622535597231123812863547168697360956229069781469589214622720666084784831263328148774179983884950313540972531878638982720903481942853667003671357250931872963692270521387102279985895081391387138088442652751886692258927994692241468060130288667543897060937382325996871140225958995202695238064243275949966961928752623526228441540915977431361975495625962365560702612451704668811567300176968953730561650815369071640882936364436456900017371815585529033824256265877501003130012903817433565625335518453055704819596845210593362953899190482272063389618470471544590606758340916100225723905688326376013995462467062268761221959279911105334063154009269421634048566863787391748480534816824850389773756396910970795429473776775586178587313440737957648354817721497315021807475092167083989556561274642865442404856229186272935238926575194512042559538467540060103912861217756436865103458494465388534994092684595557680629052258938626585897523365738792525478744328756009547597651273595777655945424380739084951190513612589528410058534517989203974948993398571333386479995079974989327132743855855677856809347860874811238493399333695788264448950830954075632757335758019349276943467305211322755048989476973379119231628906067854335878278422687441222427150055092640148221226840367421499550434212374777494733606837184031357585308780780556211400174677609864053093265175975305455311434242751010482773092270995052192286741934758415409984176871032357188276024923848158340718387998249458490216037536640819324492295506598951494817747414639957807181838405272817258489483024857438227887809522553592593005558771847003957878037038324829150324363627981846619857093255013540244962369230397005885177415504066139387870884979337573646682835360858750342533761828578057437638069595827184863778792053516690185784384174710149114287925849940793894234451827463128519663901501562366182929411846752399190782158867369200843063509869600600031201559104606713142238109447619296495876073995791708876255897661463840118007246010126113035699651273995037149771991418265728762660985754106875276743013079879166666948935856533749026695644732286266181480194899207079797242652638096440192768730370805843586184748844969624591225607394062115908452265827637481795739684980322321611587528489464662597028084309227221858772130721299056893324722113008883801508852141456648975473545495612839077994151557503766247542445144833444532967353213303146805088670472517337604893377906000657187967663449623363560774764987148477709508260647674394241500668798273644543531603474637805662070660632558861493505582262471781285553011195467414792381752575616154085031207147871533971694298801130909950777313067285692951192147159846295382897154312175710432742363349649427796814830905786790087762908025803900002443345252192099570088388898834756514065917274003579833875647545513566502771676840587362438962455659219259273387380273687682109911674327394039780761359100056855060288950806739207573407470485255954234414362921328554468795482726806447096152756763493174479203577517344963172534419787856250878341108333215710796985013618666295743170449870762675022454663356078844951278030926931027095364176005606667194663462667350780018978921024189970575581490193783779444735917155881964296612344226746237988918471643281104396479636418090984915263184883134688389368879867803474983381903857752253844911009481024516870924309207022892006125079922082032351030464428145174736435456510188275276509681961641797965984271566354164870637284135219484060501309825545577594654743068041905069171975694743039135334316072272057970009512998073962037346827985626540012367681784805416968778246821063560216412379432241866401935803391798042366366753156424018021066209356289560411706406862782701268030737218672528941759113157589138421822603365623464077176632709655083599966055753860021708965927922477949916393998963127524787820885724949150409001117972903173629865574765377749070995264965916594349549234499887662108739911256848477529575901724665874983134329528572408911521009782368868322634607576130220664514444296385927223397547251026586938381326564631847691218011841651303867178759723932139908480231735914427048746783240698877017968828070513075703178066967999743391477760465960921353028799769190473292431013433475647402817524804119839905350821356866671099639201503232741878754085717157179526745361296607747316666634381962984162281729540300807208482795226654968483641283771845440078987834589018886951104326306810652812000401909825722430073871306214061634480811057989880697720791213048930125649428455304470570734226802627521357738856746489359661952599970636666559442215781723504496170698843655619798822427361618655916892680243013178478703762930598549722083607725626976294093335459365364962147405115054473155620767028377902607126593686117033363125276929297961879988490609201873580916301441341352197321577498674815304238186994305002470710188144914453811163469420500411563993065961845846795706172464895610870538512504335840082411596450636250446932030225248629604258682166211269676741869823159664505074910028134739323577350931090970385445436691430520107672047608316109949155812923483001178169965569849923520987482577616954812399834681718958174629042729166548792467567057949401901344686538619418931590604385178514278310549665261513699784898935691220326363740432891590593764934389898876200851540048753506094607794595091474357975949355093613632660297764017615917990152220761044262732674103433676346640720731896391420672540201117068718928906654985680371707208941566505384747968196083617625047607553457699911988233735674468182322141800326893899727643402905465006984043143430427810952251648831361190780120559659427875316062460260483565383906048391389439486963960409163464870114481185384997513098483665370622749654241912205427528661150699731414025826210686758116407536984163341211299139553286026078582546428489811043014623984357282728437040616213253208248557626766189404047696764566947951861631318460824073109954786771143924529139403233091189709583331035511983306710302878208976013970942383380977950682936878578993272886265797448223818474004528625769069872238403034739513433727678789500974099252229082650873137134257372670212366401867126485631295482290376666654220122455178141274199644270188736056541956047517020617874367260586743434210950988496657850070022762440932291441223769344532781975739973924936596554662458763169712115635448971588735978740247038887756257840319035044410542489467485502595814679505036150875307749432480337429694969671427258148464983830278309140662755432076332700525206834869599412762473047658474018447444789361401363629714402160082531105520500036916027343096680684729309679305461617161459928152753348943617400289394321613938399301226654477809117907439943414438528582413350414571238883188871311876175484460673512292689569883920495468220297512439453005189822833192067507248662918075213587412120181856842941323593740262124053435980857278450685773330723529728046025297438773748862808128699792002498050130283572461838217943364974391596513580972898242773934475071370188963097173707569792055857415430167301951145073122771743908594590918655689702554029602485847506511330655131542040171022131688912942622085272911145964855023835791228839722188903908355741214510919961929449571031548820207286033056589747209569174886219340716117065455729582559512600333804438008515817996818258740282847243162551946768881599986901350126518796612897555966655172047043424911241971587387719809443469558644700977330559073845563847127457627677843190133531419187612635802703240571506918803215747548870010639421371107900721354827396398461128112537600256485819781002055545647751769852770532441177753297628337289769174405135078438295974240943914581430130942681268036122034695082828743009446862384338863731083058983794101690490229354046334727370177523339293200988880288226598384058425720015824995459176698323481294788253031589211379524678865309083902935393610909913064100941094977901601846139658697570154123135587228298039241090780419607697553740967028977122357071686509872896084477574295463134299518374824140383786770864705082059324037505289894255067826780130018672228055593416671053009853152768930098104391739020036809739058052596774528389164582981857264195547377445021306976553798068351639281384302630927271365604273705271288419606286625662228624204906393159609344938867071496372926958674158594111989089240615177856660195112764807396732361095042722856286306067859470172115528102881460084254400593458494234607282207205192343945564982291109716017009395651848958686131030819520544469083117360902587412147562471847851429183622393606163881451795868504579787766199554695995580870366322855648414591463323341764690764533382355357260659253264257200012787865060513986395354971322031184661824744530010053108195129278395396473347402146940745116340308408318593750115175477448470851172512785882258091402313260396393173440827204802634388818112631560563026915055061735830198719087741327401540073377119448636301813242842279646699698250095875188025909448643690386851551181717006231027119550751044405294529979494550854179315469254060160053283163729268657048271397814184625395477827142435218906462427652804016080942073650851069421183968423354793120060197586235304444692134651620810876082691401537880101462765431241439464313284461969461328030997360641425110410060879848327181863698615997164344744836364705320608116226374397704921270229307063748372270087723898241260066482092120621647487349391705691166548274857163079381087645157575982657903723400611634243658354795236634938295812042802417097326647445269757354310928420631537112476273870215570486837049008694814389905469905635231592497638643871797207458645127692126139308368650515607094649451427329967712473082455901770768395512187846997348088605189737078076825926080032804766864697453474682108431450704305508226610990101635453231074740613596529485558538555724215067300209376782271685020746304624375733997081782455425946238737930745531446875203871876723102823849483845422450865396168579633147659685074300788284696716120454480171415932377503508693222517318034299570901615159838382499847134621316251792690835522277872158185671063427704488727075770201882334787820548465060850893237938593709341228817481717597186284895183637693542215971096311697970465333375451548910900019407856717862538859996395718644880209526687276090202515690923420441834352284826503492537371822672911254396663447156649933711679485707315776063062007480845091002904991867312942865347151393232798276551498541424851211508271457645927616864249184260062558607214174748963649477843196701374550628634517444778250552673581669850350884137556452360742812738015382431591770058254054176849201698422441471243055010858411008014692847300775998309106676308334842424749267353566641652171045136832891843433271060218992882966531004833801073740682188959611105731662760146645407620990268482502071043834032943385481186096241583818226417082081903795253615431284482763685952944093666000483403595319482490916628331414320104518209351555950572839928010412818740953471127080424681489667644901885297545940738905289373042805467025764726570599085446281811462778845930181910798331191969923111751691868142600174159175936828765830632739144159550876797798058893588197376596988138820774608396610928633265344612211505714521411933984761866687131148948786897297015720558782602889435254642785301809121857312656349600992095372865748237692270335982859041447656354530499499483335119885201048094029509733464993371667052451995886582819122274679335162018125996793215733588307298812314950257082457902477382348092183536416760408413568049080957602039322828380048226183959720516137861735158053256305788981629470415302444908838027434088110234594151558663023998174279553612279157354612827530983789708665340324847104816250273150709497877218276096123546474905559124358851156213092401626004392391681369839780993728408012568711123035361634688165262844754227899368655373547039209126362759389768387740142634937448716197712080634411977882182897529503847538406235286648434810523330305504067016063775284193442951606590663040831445341849899252154748412809939406868999994021503522286455130462115184773954585754034843693649130269489008958758172484097460790919896282477107146521598129874673492020963610707994349725432441267808033380368632354596553786510989424566323845138729561913051215355442324319003130487788342467335582335245815348721962203251243680505271177843644802616274175718717254288547719465155855990580008944691839778559759784663420938259708022612671785086114409276296786203174839025264342975313079560943706963536412461980812019045217845339776064297444182075847542858581060258469552860946771732641357717885172631146259047487235446725295968855518386193430499688292826211373971025260489641508246361966000842261956234612167183688048700672806323610181641525108330366024679729298142833563642464388715064833885189062267085218276181461559462908801779098615357981044629508517644213879163048624872021719044553870053225900144608866825619785624784634292722039291120466039045946971619871349580600812643696727603256798179908266699686431557879838912798976282251140393264310205719649060412952860381454088651301743245614654919908385868564983838016203511583637014476263450296185107244437370944262213270127291550374136213762987739218640133467713807037696937617777251779989213217262693664246430514133172065333790631586917826730990612878642437656209862200186530056579303891955217260475061652589233960327653759731427616939465912477418140538343104907616043335601133539334353096730120145336083891445003326813055351936736858422250218406800307644146827426281393270118881617782606816078741835982832957441068080204908302088636713709798231417573285448378941719040016181064045259490583587844183429018509280553700595883674999640730171964891065411252107600561801624699838008090228043303436113533040812235584254012866048670851080354386105828345819443725688162211482726429444775053219804331314488995760104064154936901210306098206974757242928442771192579874602245371159081842849192752276900949827058724217051646069764802850707985793129447353271204706620427103264836986906372598798459327360275322342715129880537744595032829945979469848711503317625379722527575188416101215848989690349201565392269041740555119634591035979073104974233809627040020525542389736881633135532471209654544088813598268657271214683247204392151777344153253595932524525108488777874637691659467899213376258363187891008910600287297300935061565823758789754631834057231320875300899055014150827642712060519528664650900027933348837195718496587938163325237032581575269644178289154572697554175862965235681705847969389557869491726475842059646152922346793523845399911854025251614389280622641577187015415624344102640606032427876847764796038527915828246898865910150372434745266327132444229658622859201805638174925827441693276530099172770707009233150435611581312072027017553592004492782914427682098754455413774850536841711612561069647991946449866445098400565678757370797594148631905313782331289641974755650228462081126154081287456148057499272677872153472081452576918704708482334376117947193177759498697808635256966653391675874527544542821812520693847191514808421191776726174848575735520670144826135227990606170740153922410494397994198657089605375042770176963122327570409637269015055612563588852911827785504105075927524027582136151991310975985199637791999530386517329381878542326547042612502658513133457613005724371257134217955471473163468875254139079713534853531410520571604861636920485199782964404694122466479085468339171370130965802167630002244451909578337502587857444685823961094795575508472953651602389510671435998549852033187852513135546127993873720909841888798129202865043795264936086988629239824798255942945926980521732695895946816700456698093383908851105177242613009329922092233377776259411404172830420697297186284939021959662282563426640808682621894331480051909323601546317237863741384804265755019383975610113419294125177364486182748587494159290116630718250282418461114435386321974527258205914021896344122480514545181397251319788062487412737582494599232077603602192479823227655145091500641825242305517754229309810299079456633702306402607352850126028533041890968531805920546703166857698761383487012250027243280443079215013769377356130316893611083163146296145811892888592070933179187286439096754918076988827128943716253436003639422429411098898503692230606717358295800576121860382557743440224225934200582571446385509009950728501557984375482759265144447992169554856810977738068345442401133574747232426498135849794709957869134998655739171858304286072796586910294624101040700798932367941411036994276928958850188403478066572223889979102964875279218645063204552645318317655375999884436496675268884810986144417804805800014630316194909677643492198736020387724471928076760023094150495026974290521313936971416948890229165244433792314463925662869482162419926171299194039854061428298522727358230399648959793909086620626777463982747369365246873587443253358171216722457949007328997415548271632445242731302348196805545180386549765371626464927284892762504606505665228488955695558766073484338072030987405982112198306544344506185187958473319575725488280920297741354361800108172588217030893167415894314572946161298730090529411501613041854255971044032530979731166925995384036167135611903748817388648302685276917148365494596742683442736130360834765320603558378562260217565394368767118835170973365816005088405832005619125073409388232064183178796729324744018247344792473627216367075983911704489560441078473078588197374132342706448553752958717435277330037831401483664104727313763145281199885697787521165764837915211283694940621223809767401503553174079167362837921260727000932787692774085541542614289875267177849973114532754340323531563619398937103340703401515487953711850456768354813514955696179899388393785251587801384576870171328693991610895503462659714906598087195179835461737085462895561274329294744795866612785595699192504475282754839030033664746219226134521248973840752091923551520294683120318181683591800742303305200890279402206774066309071139455814543062604260027474186594153159025713543694897785865396793061806927315303595146962691792354317036812294262722336918970441934451215090704087609427148410778026807170915446139510533360620059559733622428489620724553703771335896494363215571508475908870147792021803000060856237991719435464854247091928479379563672927998193449801136231234198207223171624172856886720992893707358531797119070140948516440966706206521026210048300208664985172070673791681001503435828670281058655363651718962242924352613009166252372230317785665731387205278483021204661053174470434364982768998231395993586723110716450810667352796102045211674807190247920937728491152882008119422784780437748270612692255737610847305731544861858830700452481184289646395504896990380239759043075721139378937274570835504990238130155184104153378933995465442006894891001350600147500242920406554638700718824509670264307155485584845228746032829978604579668779853813974999348815065736218359304118053529006967611394166436057023441511073681526364823696588196759624487174513904832282045611305758882326862687311819080803769031233751927990137928686987062666677090146953646067999846475952875886935763443732770379342571748808454287249790065907628011699661610672990981045845976922817125558716365503449676640017857350851400059220764456485664838399740141175817337732800189640162494977200754797205185765926813235586291187115782376671707384285340864957117403214821621925445381267119836657236453435938953666828201609974819168118023513552701767667963739305921906488252855188529346198057466472865796246177477080997045560331091507886438330480145850030792362960532705669130709109321941111488159749999637045599613687685988535512458621016772860527643010726615165605405003575645839848998500671232561667633729012117424747366941018808865531554322829258944815420502297509102648050333195555873131654509156063949797562965949795111219265302608877568509580729001492830268534656688814043881883760267689853281419313666537156526846817268665357623159536582730823257976972117481374897716077416483417046634160102767307489397076171266513695432463824466062674857243382731996812323648779230912319904241672285329252807480317905324658526130274170956831379497894958436501830566235392243764855720133532980413340772219833605689323781118406225798155015485198455289325023241327454143152372379598293629890990650426929975012498460045423829982393030328000782883479804909663021953044668248947700880859285855929024753320460911083588929829740153113192989253886214590193309625455410543099414933407554657731197061282819357789184070048223155681457629885034033910752906627192615357669636126478810363289673801482675192282321485285076752750257092414875150916354195794234057340528497651213012940641272980513298507745012110928129436828144235385864122323439965113533007028445367227152874443167524162546966376892096868665149963480546213286681311267840146287302359706196004312464301670736222138281239769039945290357149702392415452609313860552157310498927908511853560746265362101601183273792438769908988818524403850132189249925679387440485274023173062202343958762641388588274322211261588029242676280326194768532721182818135710119130472905701298780116904730243106185573311890766237578269042827131363557917440638372407226400024017388634652801275718020696540851751706669739203137340869775954106831183646204735703943090279950366048706609066592652843542886421084779190126038971886125180134766858199146996060736093697496644029650851713982422444198780525124495221512322992144573668628499520811185710920784886949681585388960154234399862203726098481329358467779155163889816326873239799081726619173561420027309731166360665962307730974865658990683684049439903996890749230317673924486286815815917204929001934576068265145641611020485737707063030886256869925547881671115296528256513916464641370994629026553988921640013430611035380480779926801444635716420273882648418473115925476007340796511113095085967725771890870737085896687696131021727970422115885731814216371906716321328519909250369119046187742260802318754724976852222290381871847801159204654998170693916996805088771174689941750114673215047247842381253537576542292760259262812629233094490163085368009992305997529360801957557438798630158384403559871942403826618069202049978089211422515869745979639868304475741326625983801620956867735100515704666739880824362519916809755016806238389586234591823902933587476825057671907833558937819085520547733608242330110524646488972461634093166985832322672081112422052726035070178202175586433781861971723755669882076592696210844340947504178232692055851031464465580035218859353832650443660968850027714285783115609583817823242932084639880447985550131211772882951592124741094588126034241295990075574852161442549407054177531277086381997465265750629488911184613623966702103133782941456807209226136964850347078611990360108622761114377900392490539453971804914649235997099162123300926392626130987162561715613916168074102929908789793785933638755401469460907693251275997583276310250658439854974382744246438143902618310005706864896742042412153800857388902310099498732057078851604035944465951569260855252860434081312435756761301857085827951188922739727413032694693999917196739295361817435659257095630861482872124712247335816727047237225281295075507919748184409238432864741846540393231416786509731541046549910904556581562139306855057858671793618416076185516491460578772983282344989186015740707097564514582670590888135352363948213378284155835382756971858962764407060909916331797074601380887772906306342675919198949852434352662762217305211552679598308273640104867315465467876212886880769030980294732089357640923017228448392720721026687863134919443588918064478720867651139029472285160212380031844480471229106636077089739912243171141154780465678837773097895902382378403759470962379159554949314351494235473147747506352032243744856942257851582022541817740562243214016879939104295110881702003988678576110048833113738969080770523787158383521269153688128258680645823449488608676478179462290694596639273452089681250077959773769804360169050784346501424854691143613848683934212265129239347245357445179578884609565757508878743764822219190843123325840656483107941578399991050093476359969947718312075468535326008964372281211381563774728913636803864986963337964775967336848304984056502292606290753144932534083740247021269605673421841199934193260749893321693866738297574109662460499605307189799605161153080823429867665411426231297539739608249962080609437995895230299946998123975118532280594140655842010193734367935585612640335524815433345611868001713952711682453297333890919307422364310611218061304101478979116717556841963983388243086143682826340021418040410952174533753926067575622146531199636088321539418947405339102917100753702249739926680282273558675278408765878229121170355139263455319974633011192747951818274330530527336920852314210910384333506901562417484788684551166508031725171000106279778501694590568162029479301778248205993161983490242917304081930218655048252575863967084943355241379060993750698661158385587096893365654217424878558322260231935681968322417489351766901882726405672624746841020871856366113139436744624806285812825617364108524863009077981889948645522787155201694743903270402818865752927543325780240285827528352197665953043898426603157514751346782152354945609669413858960447986380434354648321370829115264472977241006897050516582431167495898166694959103847611590109834551114662566068849735636912555139561966832467281504014955526133222513168564520871317520721677641407855307802115542722882714129657918505326065997792800718012759256535629638641644424242989436933534524960677119064783142143382693220293234921946835279299617307093995868790145089769909347917313005832707602443284380032050392559485091980996031082184550821303439570923166090800901335051875598638949543330398091501074200776460447762481937165437852022449499511054256383536813518326228903558492898554078597172418728389496260988525970070657204138412754297413283613756047682201308972120497855543440281921438341435411662425255646019012526254463890183138222828455783748289691974851901477470201968967056744821226082634500741642521474305257543794667844612900509181686717138551255521955049980880192507987949965816989340061567623796001826483269122346785773958449683436230997748839470312101667210278251488875520735025044353544914181307137805717085038656588874835406921206622941628704942791808391058188385875436062965556915887649718747037186052914417839957310377412148088837173614206065859224135597989508821122290898613024683940457992188213463876797821466954044460786254920817369939668360923448159950695448407123243104843494080866251488062084654983607178490871210963377961068240403061012329462744805104342883688039479288798019163755854600862248913010320269030176926551822507563166440088095858296585628573338724156749177381963637664759444721299752299143840218460268585952160417019536712368741737646352821693230061719256389933019958235040138576457723388101500266772210173854871287039785298183638875186267244729766607286374026128209502673083206069152755837067996944192572828778851601156342063705510258190997879323805339184057112535559422481532894526132975200542174672546347607800587131096601479958713878291915932529870690675637830311363892684955300251001645592596298062194416571697721612858847759472359301189188973769594425211026377693435984746054746311323932619155818234295903070631281107497954155310680505871361645544843155066635367230126213911900828934647509372739505552104611525949933854586929472041066452683583551255525957411913023538768081353390759035593808871719604438575180732473452997175289166780703353410354112778964123260494936983897579162778761620266379235665421441138849681783554180309221829374740495407996787269893580723835265718689070962073343397867282930580301081741514444743301219866981836818191251484224784765153025678991927270601942714058644716093456919171747815544257391960885117325894016503676317470898875582012178406514042821210993520673303347882949075765035260487944700826560915247232706221956776043314033508412423316190084858531310878880713150806675920968949948339873500862354367647171794843773249890723261511332383871493426138200812131300621444523595778832073470253595954301154608796446442632685612228903234400829996707386844257317560543967774558058869712527055921586851521496423801454907089834972333403792850949576058244818412366293391733345194414190391928102498965591426009363792708318492785228777773643569193853147465468500031090756574766639385127975782895161036193920815505936164816794616816451640458976920515716356465299991736139789325251684871791406465410597908865655089131816312202159006955726242374830543072523616286925278958013677350437878873024395285299506131155489794097072277754036090246842670031270204594858536753226553724645862011363733315412459864354404163499678604073715427272381186127014356043685053516942927931773614636964435237970168470670799496167451627651562999737623357216683725460494180129126321534697978715436420781304021131769188302179772403358499162413665919844092975344251882759479724153747518014339396046372723579458319847706691975579406060605721662333856641498249546391756601811599595691182185014896203822555858720659634060702473873882055015640196525449013049586274357233174464548503381792035730449942029169537045181441812143444762250209688553318924771143206566593437618499128971864723663042128188668770782762291659092799986426655817149321339982210323566453545104367975342380823894250160250360050647155725384580991718426704022036448868763979704240833811806335575586291813077652994983770063235137653540072314138446699078205394979856280614421006863883282350763292666884781753859188860376942550371957881303893613833524883269008978040003817676667395384815413260628552853994890245360587741521865359259093757027417995335228876064296251858538618361799623990054805918003929826004368016557637210283742109805238987405743767750933207817618825708078384813671244340271367027988527116361704849103809379420926634131314240973079212296138090838130755767111299696581712157181798024323004299969441831749143829590161057962754215366529172287734328062174517807050470468842222516482793397364574941768929027590880058184598271901140138862881519047846860164847373134377663604515309506864251602310354785392240617429558542474704075478876728075534162768424677710377176229983651112515792299994897544502188737373102268996753146206607125645081737193853832243408518708882865978050280955691330644081583998174540293175487789217878291006608754736877994251363007939640159569485671155197215398306240303014064142648310376097071671347720320769719378888950740970864228356609472747075721615425789353708212853607281105249323962204003075334796930280006328437265499036581606791627259739038779681408876200354239946693103785236131983110680529397872472706715182449868044131922442439770236559427108223490262212068285224720148443871910930976848689799339774184050061854709542551762413500414339579405033595292278639450098131485552198295630124938116985559330943924595931213748480185628711451818474486913503146491102829165093480192775817541396322279052463665114533049353727431640498153179752812749828064089217674165871623956618989359201938831252425269081173086628930431087936988089684268171949838802251181156257938921783964969293474086896202652862079774266144019496140918325243152265675655686697946618354804681322693754284255943172023192709629425835787186541933883639009631324629964353302507278176409596310349653804050005961124600361768917476326588962026867443065724474801246990805896059829392121986993519154001345761543777316826678356078699408288034689005110906353646852711108282244346149778742314483632030317355065618507177114809816506124165343786627883415989433986173032223452801164023331998083475434663413716563070397915342261152340787229754001923932089279769170693203758666749809081223156087227874450654687099608507706644805762223404787089398014870444187056086939754764233731875007565386894509645820507093543631034559530618908737394474348255761731186445030946512282996704869556532981984583057178268767497827695200555064553215693421159785363068002121987889589968601528617081517527888840402185868823855610506564475036143686518962891949301077855311168685471174967776405236964237461573499424839575410831843279241297783170897632893083067269338257616674171095304118724728030156500014028559675884076517451735085092020469455239550360550411736530738896373240864376554165447365359726172618076942069333493959118985891738728857222118329156691989267799719917536991073157231100807763918457085708974806514066226718977816106088460928927988484928561346250655708309071354193128621507866296899179910496901807906334697587713604236687831573086009952640561303414526213247997033126681656920119875165482072515292899106613908315480179083538013127902948472826759571887341630845095127553941103884778811407623168448260978874686326371873036534861259030046561947497603088774877720920623974779413555220416852711488896381700247913395388847905660900153431113003805474269985674086718353286265921224171434988665828207298135538161051894393214135694049398664400452202086310771964322527748337944185542738371171091820323559912653767634178311199102079300646791878368061888856214161636164090331248231253800560605469813016569135239931986180878647485018264284741473268248178490935266434921398976679252420620513643516855421236239959963325892930056388210777306500039870234057400877998688980213614214918799579361995966469027625549828754654915910940548386858307676864231319010064539434580885586511777200702945563422016595101161282001193977769713619331688264588972256633365745215906272249986824724363376443731815608557944919395192246316373787687658853111894019231289895542821581299277140725995619628574468076961204910082799909037153877425903120876262792335909905680586500021542924205545273882431873278552334338984015630044293976638342149277928679056683358399948412314959231950528432006312451121498591056284470128248642401311895329724084691805098694328847360364056085807657638840841567542894478938158268289168567397471849940079528402796766801961939621717518715912373190019110964494172871735281963084354357230620479114805938663313786928371998146572342802559408745556550826822698959657042620844024126429937324044859361358503544902786608210801682951739860041588859556132593316051665575065139606352403397718028148821451727715977801826360750829235424761032048142439270717263366510154683336259198799967916941396172132441026671805362754453679700839516478577849604503256059058120175317693258715987669298915720030114020741179258986168211909699148472801806560495054277085452741920030119087860974047996408540896686861813930248427983179717519744913821975771646655186128516890266353402281005994777128162685347428233737151476201466340100412917092964013713537377922500715321778332636204040956267714283521740272050828065439827187246269457955692313594923794014017415988143808601184366271953003260652254677988960364570407989675855823016210045850624487854480028206834986539504443942576466704149778751961379144877788688961261574977813873598575314782392786507204698264489879904445192223689139833567764729448407769150391379308183155074448024085180584586712317579406226841960645658112306436579091972144570369504625743992160934179562413670283535891532123890625163073358404896698853819904482612851912503618677427887541830773455093511338390092614570143408514299458754152427026342748531542831112973941456981775173411795065474808703507554294995736219737343107904685451830699321681248546857440153819713063077462945684500865947701120262806031352059253835119284774007763294252617921334755235751205269915820143248200818757693305167613020329645955656575519574941113370270748391868741747722703171351720294130501521746929005240726961306986669934000123555225295338097910593719342985885647585336287027367009029719687630749536164872418499285999991882024726215916938891415618599275167257476968683522627664283356474289172751112246588062673946969450698413508931178105768879536496330742999283091160535947217501670443098656747891793931337951039194014059371856400534668425851138873823337609221308600562009791898909165492983519959373397148281914028432385132586761416801608513344535660433265003967010980646428858918574108522675533142384378638883161937506546197496967694665371720839617480528130036479468942234533584769445878881250403755487511502071694360694858679716777308404412802754525525826762077446279233072039167848108594082552458074296092395220501432021341177039166519735902798648993998345918308952317292650181918786543772778333346194910226180672479737477661503721421694709841724481832639981997287728739757928404658731607325953179503858904580535713659242210870071761141793284057773985537809409580887407274301775225755973908260990070837426992660023206946673866177595687409727623887345359908073320470538136442040553443189933854467145878279159328001059847708866743924370148056667085778528420741360164461306183902952488510170830476034541261615425497109722636381819003745830130149722154587418824765534512994618207077899552895144759682243232191695101605353309756821322040595779881563085077253218706797541309045705918501436302022900607017356195708956118525627732725985352149434395765205940821654128580139391120124597960534539623952951844966930687621533810485849799761963577678030365287948386815696586220423833581169850166800254384637692964793070860554150405013846376500499422061466472245107609324181564576223520130922849976283969461314774269710920763245168691480651414179032756946879041147979855621275578478354589039127035780718043530035857468840340691316361033151408459658837412571624811935877325892220668486465234787332949463507428958421823139111231004681371986098896736328454056361245247091001008474230160765140793475646567313340345199655268886605309031675973868553960185642842682045911186457812890276139406712575211369024847822372399199820391992874604226629527408870457843495026386929059888031613622693157064531227007958716214067326366828066522883490796317322775679748471430664067105887350741963962778826802603006345038596818586129011811243044833790069218186507069716555931863814871344863898203368808748888925359543048688277887685938932594401684893078447695815917632796194955946832440602590052526228670150375851839850298876117527652055745970491335267626983313220059103258595147205820133646521174380126341434963763032779507338164275438432210367278814892740793520563658107002726316913073134405263736776495851030406270270007221034385497817341275048284076619636602343772002907543334884668475540295093581850102651801460656858270124690239031638832175543308039874949992173461822565953162574735409610469247767344436831419756245237415967931315568981074007417546234133077811131266823099960966104851281540870508958555918901170774123162126838719772153992628384585610951672148322007496601154150820005993825611714468363743580372945425264520866574153718468144161921376035381672595185944874553004041930629102926989091949021012386096446300665274969259081655810332944230137438166951995119005100871706310299485415129504667046231562133840941103237944361188794311341367914401644350560875936443287666771973007847475381105507363288932792142786227481583154986253776207192955558517554264492394729258917231786204802651993499762812735450383524317191763880478404241626214650549225621738910407319142322348210629789247350818742381733758529668931881555089686886091672506316258278314203172987037901453995368982113909466465715820610229260854602385617733892108524460205229250233904682426329698515930659238829724402139850033480332733410391901860457752054998948434230531658491758767640149773391081234380975319967060836619849441504763571401630244817147766019339484778204797699232950344363168882328055751871610842965523500658770206177288144388292419944142855249482909450865100654976463632831257386327693057919748229345400291121395764464827631672390714043817290312340556412975028565003962819197897629508962762292198184702999269054689171217241536373057771577133202417157478301205004751724355224636088219064849731985103798894238573496938970122353851693254310238368448368469110412914251550776119468795639363332892572155135373423491898140298068403710055414671356902414243923536655530328092261072667276097802840178091968502908123966233187099211492184263934803533185727024168173858865525861658464626539256575771852731489855469056800444087744685284567665553429773135069589422707368335354888641911028111088334100022328265778277616743758762977687739839784709666965565935265349283941643393798434728094820718243545604935867730938426888202569322760191684770138640880885029618468414042491105423586950404352809742397012177077429580371251683488144266267887750222406843617082136866612269109660152791550986042183031821126418340322348047032422266637326609578234579516038590244349408757999363699046070299473377876884288469995101243744696523629170692274319454795554010680797446607108965040218178554018491441355095374008396395112359926499916308900385637909432617736785691279166318705055617967026368443533703530966457861122165284290731692916983611277401080594721208239713808445158446235848084234474165877515315057046175666425053641076970410094431454064646757981825171601747443677473205245203906455396638056076631207706467083466130518941317445909604844611031703200892168577556574905726594127591311874976078228768443791984654994095293670608857017380749592004666907059348537683368907668598744370967348353147542612245094112217950459957003097582888521150884594086672600527726816350234128681113022635586945187317127394344624550395669042855225437633449596050963586272361644334902345623474503738838429881484771248609004310520366097502343724484722888016069964942408930256075483089955613406918094607086426750838972756131788665798317967165501909624746860658690830498995097107675460916992694360200451390168582336056998838790745611408894530260425546345986700125213816135287914421615900618392062234455416652114567166099354708427892823131495233638292274511426276504074573955301065490922201243132485352455245727141146918330291519562235958260769897023941153602569175341923911823116490793085439655795557412611148865283528832321747020278398172397902740127667040773595912124395718923370076649251570768587209273736619588395722762124701237698962081935823319465952946034403531337396211915194168223692768196234869706969582811347543918148163932201519135200351080992984516067417152414155630753145642809518546509372533592021595132739175569093185735724326038466419404042905651219210942772916317031337513976932438230099046370526183878131116057940705682606111525812689009257654398921385262074095823317414343490827106552158426882416481471407743291179326956168337237206125207830816847558566735729370450481308925115352660971245242631945961889601034189571422345719751330470159899365061493340646182890237242655342274246446919029504175158545046882978076718324317844626616973132489929829958407022786738805748933729943566483499896435181783112347769056218144568038931360700503013761975862513481610932965842533480039076158108830087701819049802851514248283142369208195351309873300806031951488678719331144167358509221146185227790960290363172088529885660492320776187192175304227352950312874662704497256693020241280960921102524435271196229587407503603196001583946021238672412794826957330168752906685321399770870217449096183438864496639765445838995804385178296971670525319227342037459661901691330061610186048228124150441553947850873096440380703356510621458956718782139245535907081747299409161031178800747618934496169359828793457379605550467102122726307261744223164720648584071787083083132408084128552389818240062687554483740532115597182734182864464727469580882801498531497949090873235119763620125661979091454831578401284188521692514660265061596156843671209152798347732792393588518590405667128660190678976574720989817908566784990555691176073224545138359979288563392272970767296423240720070701392051206134321708435002015917691069859285783378246203255589577354765834235114464010025674249277359181251786654931954377794722485081306477139669519307031497915425723188568748488511623789229949179264825976560256344256570386573472360562964570198731345965334653147676530162626042372423606896073232174438912304772700035849456333721653826921231653742266941591185361428235167367730423881529835813376618327037804392021503371812153887070396160185928082982845184054618081249293141116582257680256702828104265436997676157433912914802905761352057077343991452902750498433604456712025825168779432001013974808752524410832097053237207546934739689374459841199010386679786477542950112262355270166239260660279697108437545781042022574120621532544090897641031050948730225575984127710812410757114810392410210495628772998130820785838620580729221208277827906888530438792962093828524346567987647022866107963524346825448674767273248790889045540417941767335761237606547360909527770918846946792024576943337060134759991094655616210313583997182627301426139266879689387690538271536258388310285366462857940786970290272783383020250979642427072329053641751356203054241710899250611025471922237031738270070974194476487985774872429272781732679811189095037937316702654959927521057629282835596319506766608986370774817642692906420316410385009167149309646095984843534345984199932843903566753977476458750108059819545853515540582852554404766425441905983434349358140888438781027503998480868870899163790856337767112968777327698885695541140643851688584697920171393437532509229851880563604134642308979318717933841604814303327689755041201168245548218090415647816933821933582365142660695960356123606436307630658666117883820710276778404072090341280269233608101805531678346066641807352538475699786097259560013612411779802053759648129522783028496781631877468027258345906691878152408412391575158021088449544500905523454009952589399706885438116598285557843878745014235266695702622646265830113495103426838933727319507497807013041459669714820038757585901914864012261043701722909934810637367676501745274227498275840782924029978693515964201314034571593194426856410259533395709085800402870215336826172474421779582110524606104956398195554352812461039295368945044606202041292066447344922482787674912656222098917295270381330374489033091194921109762859063129714648400800690761482274742794116899126560453924325275690332240649289947788134487935492906904716518692826415499475732839865422210298799620009033203655453673536806965441473138760995694424900117648257835300901609367421633758803040069326526357962849984148529831766910245256019523836065710931013106346949504044586638662442448935890710800899087255715175611255294380937912681905681129602434203755368769018482549397981616571695345640305865709236729925741996453176800481746818188515125242221018674048107289457241345275663946381887000068163535187549941117860914136970809057308375959647262327943454765410192135400875839642265095438779937252648506989073305362605028098325316033700923675890346140393846564502650696365312253872572925665038702918603757382566474053054099248225792535019563413770553090599288829676366127227633525344556675853160042043269344870691334979949090565101115926033552828077428321165417248710231833034568486624855926501942504304246877550626420972828571526607097618913906112801015872133116803967433547864683036133482227700417420791884945307612683489940651497768075865498094482000983432585201747121623605486895883258402501591390120294816315222673555025932492111309857644733417347558158388181480419505570443195058085168772235046246514259619772791091427661022167000555650811898370718807989921285786676858265452877165809479554455845004299994739124237026529147298568154081573634654852413626328643731225732288675022748795564228241994018429037126201484859482878762948850284091047460462962515080484283466666303204587895791732751482323815645140949934290559620026153959355348283597934155680555781692334948666665135405781154833500238090494299815748798244923386946711593079394505570079379879722733673720033694620542108519733421734736861258718422987195098404798633251400229449736583897990153372978296111806080398523415384323812224151241760149876909819416494793895319761458343193546924599066620396114490442635617743843662268697767958113710783892366729350190603032080997318430835207560885966520191924096807353395990843050734426867920996098476324334313016613792908974947182695429039947572376276374788069953478236138215444429824669511652464590764108892021469385613621657316343601879532743840541661872827918170724503559908384061595619540494840770872944657430097313903381872081155106964056829333090424950459267705063414140111241071759183158697868261315385929630921683524700168583730113904338807262605278867447867280024803451402573281623535800742868398049745215639312078321178479372864610472245982356446500405220547174102172154745769945484690409650522105378413675841512455453962491220335039553019934366967073764591947790273430185216382632495357384186952506740070834991175862273628251097605352600130387408608909632303076845837027347452015440230038767355131467594318329717271889741175309404205867398882958721996824643463010577190818082422471106542979066768648114872973221239832187059444156914816021765628132624432939140478521914653748494232416072095600962403428338848364882781442383073076906998384289351757679694559628364462769913987657807551797301534725531239317914801698922021682391444388360358333516057066220400532082239463774582653892423784917785980015389139393353516065524085022208377864076989313744355110876649217864352570890625824347921468310222934687901068364790634024152180647418959729040106245073595603283825057447832354287821173926153990333808486764697183674215676840259307184821632288530538417596730453406316525413079426324581779493596774163783625952694399849915799110809753441865407981360534559303152065908405806560892254121447560681508140851034284609479938866887810006659200966746294660582176091652713195059296157976748413452920758134592817964037110333575339962031237070768664941949109145789423442235696254919405460812524830106528525312121180718871075871106419405951257561831651797076006378212060520307232610323600239524867227757593293098299373660482108081890848130048648654329008187690917349763975844256568463822575940971135241867277388570762040978100144726763809710124524178164850800050904311561968554286673303761717829088190332999285896387150926335530853902078539583348106497998238405462134170984186900671224873857171779650300891944309351988231227025942629740217443891345987211109241928268145530417905649376508869471382310029009915271002039736609390225607321401412059412162114474850782409820460093450261560641974045257905231634749328399022360596986160708432687501643672397599435554648661866067094021001563567696548704332188977927807270521617941848621495115600200520437632566888507960957978206566510380644838103356827356779888929259883360576308161608927416998048066232112345982468021283210856396750860897090684235472096267463242523276251411338450600777325132274960788476437503451484245665660416167306588183293563810327013767532066635751764177927469732521370502524528553764121032721274739715802258936007510092545728494615618754122927152801787664788631595748305826507581979962707364754830698714145087692113645516676811516174293466078075451806065735090378199254919697591645031615713950221619086414210317078111500799484888160324651854864193511192862857222379390134402991159536898990818779322053697763961428956983674534855748648661792456199816776347815282961362936359047801366343151439687666121649829599999618990793333353979836838360935233419524320216980187466182544450960358120175406621874904118623107548438795288130084133147662699497979039212541332402494141519392201574180170228536075040256827473568021568670901891486123688338178092080593124504941215022701967357314872456182326459775611788390145309188112723453438435799717817266043933955301226196724090641004606881355328674554284969690485749253735735778263120021926290927358013234666594371017796829211039057768858876965702773504602631211712265441125733664154164750016795305061005573254018339688798592608154207038476627075493587777180086669113292321938202001574778818153800976813969101852670198160237636120072290347765187117910617762458557784038786283758889542159056151387714771220602847568860446990087757425068867972394432741261484262519803613775300915705462131928282958054101985241544749298759331976532706238734326534013138740651101204076150669598499394031843030798552543709374593020692894533436539911329682104307938999220818788269042884552670246785445337254359433610674292568681024823801872884679921638183058820385123188457217128768638969762097741143401979845279507395399004326123853893938778032468112368390897996377037019655182778213988733590873084765057372818831523528909301296538106987613596396609366431072568877813559297796261966117295252729286277671441188843742887085164425444890406230284012668247480805800770868598647274324422151358700667238491748246578167085856416152882577147413201460965730444606251964489503729031693170700767761996255778477394399190486984750091881993441078076349711752028758649967910675109703498437862755215675613424761326527298813853943677677331158987986732055651617468292074708638896065162440316966776732502860808578150004235233161871350167854439704202463920161251440248754026188866710642269232578094609271739485289448287540978636256588286334186663570266747377882088361930300012218861765872658984381184137198549507514195112434393023986694474903177819122794883201159373442876467224842564493659145520017781072308533905567775714438471326441332568895502379214631920210573246189476569429918441129311743946877775502539910376051243915667336963404095063129515006464841332812412336103473499445936949588038361370915936074031264905574185316983955819785148680199377451756738084377797679976356624082709906122536060554697147531115055128339390179354311530488719409833654036532369397982488820829672918609831800765232799273564657382563859980357091845027397563909903117046219963738758086756123234212977416458119657495608874352296326267231080745806186213544761833635731870122194287571918983105035943781339260105903811709737269830517989036766705829483786316866157192870454673193612360896670147491799426496619581001930467924020753113334590443448308099715218116041436688962197679270990681290594545919021839166515307651622361515643406786033051976241307499723966518174287117574945867731208126290582480733830226618495789153769669259261999990627879029354419214135518404199436008134999099713817701727619968047959067941402602927893176270360304460637095589150901598671052462396741753871616210657983689913614473215473651814160367411084566141289330304977846936886487986350918222704549139640017910444616199388531629380392223261013188620265924096964657275426934371747948497935561323327371091690001053508017628590043854483492739849093551613833420406371307919456317406820668901178205268737630613320488489358150134557007081844476485126956628400493553041876256031497199301064304883463267603265795258802736660247828809452207873130908859005817493866406093144346443004568545304740866983076438433098574688277787413728012693434720388999072205232739237161567418198061689258942589934828636557832984015549629324417558576138005030909935883556645171322056557870203827401129995071504848438018689778068364247433518946747631433687822100102465544346745046161882228101272012568717145897554437244099922528560210602417065242301733974883614144677356128154037520474752126445346502614943347629404104879127647238558008771031697710319393944770116443914426486251854587385175673032270099146078224682116107393520185871504597148324372862338339617970370164653466122367685352768123280582110396757186991006892101264104417393965757358711011754843295599513569136110409324885901576083634171237089637196498105207648685354908747655954402294699530197961362082016929823290915089869824704608911280471747051251049246177195533105041154762934347964237347872109009450920100059804079337167828825193321516333626855370467933763773558697260886203694239628137864938273875722034465474713625436859097247299971746291946145524604513975206191564533182655790339995376558072366507343778334489485306171839801056238599171026545318286777899547641688832989168265921510693103104861870801993953711068455683213859114025778343772384133543306350785827373506658339229060717809628088353389602660949572501519494442182581367125542758948969812053304564330541767716119482484712711560416784672330552029063855785531286121892309774823690219528084535073244177716551646142235812164366818391045337622640988339839905703003173834091243279497383576940042038357120119359943520119223797609922265653349218078957115675464593036794497105285054001662188355875203120306707857102636844478769544251946692984633376607322001022743586599141052530991844644390696238530397411110465717063424886273335505097081248420894007317106972126001365899369579725227179591247497166879544533688255864255956563447553309512725756396292927938114711921317537538606273325433616638922295720840260514527789317326887273688422075765294098742238505880287298823891914806229113833094834435773018088515990399543355491168131795990625341116471147187678284264528944954715386385040124392350000890553245750788443710951344735599597082712122328943166291000025744597273156469571330364529388365101133163710386463548600404720072013034724700387991829850958978194673220164914188879933627324519466233580335580300711683920478951729179034157437525234496083689685180221790452236136253030096037758601640417878853816719558751400745565662218284490242169479983502318983104613950928760156521524312600281642038135655168845074783516733648302048198904629145529147714895321942915259948407480977505769256352384359842786735820575510083048129450569144283148566493551431569311454095041869614819267886312047952159163082076956379505728164227815615802814872555919329335087597793430962478884986151074136206983203430792986114270540344438035624654174456372420899592112933265150853698063892698363818733129739906153716250971573040106989790674754270885667142722756630949298790092328276863524314641001097395688184751654995410955279653717235118494255849956814691353828521424871836284708931259313026348189279947096204212048888610060894048867848526187004645151089930591812465668727221848725189113644938305534856750891180299817415356337803237149257895725611494091635046735127422045873834818045937357838579640130539237838867939658528182829972402110243946984870444609453291342716087154406983641820118426442178674099051562055159064002302724490516421939631952889087055381895959441732284548771060252209122542311805731090077997523642900424967628750098702851412397396437251046108247720872185797062938205927778020870770454903192759135249201683908002241344861995002298369799771369187710138118794322338572143732239807469335510107215499265872826234917699109064096180700949696659258153380585937387350872231596654212452093667992750110632108935901204411993167915166565373430640684499347357071567061976686103512453250031624561009962572151864837270172072017120667812165796578232856497718560835121927293907344179968429025431671070405508300111598094376265760945808366739521345397342275971999198756747074182468707310699210291679169426995466634575259790359163041655244124952319297877701517211141726845681271949356092811655450054804823620787357664257823169199567108291412036368362792921018730769279911111529404006842708418256589719232563455911511852347094456510695880910166355722332183796333497750888736321389794347110588317193181193134957792210764853934874860014725329226170395682291614184815833249322387326463741018935134032824154898880030698669073604675375544196198569591845692230532000699173589705372193183389951516326997393144801809219590796365298157011610265412201423509085214753190202607892700418040884515950922940133283871226901189139264584029999490673584777772863278682902788880369807882082230765163560366980708864313827903097453512731487205971133116788501931203378238754244818425061343419498999603439803270141567443145028548771167166608399338541678960902204664983333806926840189891867263770622484048127739211601287643716287356711893465308115459710496624021769943075753243203420031860697270810525543267063422473048667179866650080037451788570061550573460272500305783659200992843223636957541105445840964904846155275599381596589559368980011816511673424460684869666211673650118724431250694113063143790225494460091916242543545107789104196690408766147397350839157423233554782381947557582696291815121621934259052718308517939800027041799362741951043307382430892014352678011479272305313625788399116701942825550189338468680835953728469772776253195980639447676761511683222523836629198356569321483453027958049825281147529257682178849552562391914977268464306562866933109735543112299677401492459475073913075225666518588046290642500053799032620550968279412990193575024056172594428402356220989305354255521445162212479989413517121391583798010639287016922069645545045344049764463332511638169660779960749819733391800827569214563882947845626122268354150796451905603393496891096768347850445201651863628804844948529309513499273757161599322938419312549049907692367484376438571762510400275287049860700639260336459151880393259850600248982006712654801570709732212640502072845149205012656704734387080447834495582537237955456471357239118429905484127305906292727289425355139359445760487097715314760697611853566286247390535728862454341649164390902853356976674036789599565296784614233179164031125323848720025349287608440167928032418161267350031477004507016244943834160709755913038645236373660509330417931805980680226005507778781394283402830985405261704516908660073604529427540300644621160728203417766664389608251932633441506871020713148759248889500807224043285724454235294748653273803300270503998545870010426546118352859299698372124168940233819397957749351611449702116117425145845910968272660996444112162561591412636735834741591654473452355672997813287032595224571498594263975106363579650405944537386107484697544172155520737011387857341202562174831701956777562522985141040843406139397275841430884611804925319348446245014092535457106299239286458253698827976292707084239678967612749843716328369161811785348724783573420573994813230624031448923351424192075164493659313321999613708634826567132416506030615124577964594725637752809796180527566758859982286775403305466706780307899414765547840060084954925704786181576030661874053937342231177142129007608827818385104069605708219383508462146492826813126630024625717785044149570550334193961237271574030911720147033496923847794069805885034895371757180695371480995032277301806330072699960723966140409811512747527641292683748762836345558444298063067676405204975426771559752823387954823291578910721481884578399379919795786045206300852060592322127934187365823552720264400706794974882973384221325332722442579608286295422718171185309828307644498591165014593308915644386171162931661280985293654258576426691878695975785590905873216081112639131307513598784158713879707958630109580711924121455840022730585935588746564406465376521293574454723984368775489903557672793936409088367855682808238876722626303020711636909750942990099053073128266136678726587784061588464285905476977181370458840784000588305770732825855415855122824659220605541302097726740177952225072086690674430283304932971776600747817823428737113403309366628940749650045561226183117541796755081410642233816737157474365107876396500180069890673836333561206809423585648836914188937673712989741196525610687840916754723289018045909127745910765310092634212156856363584565344208470299500023110355135445228687457596595846243995582330083388215950749596035092479980234161968811912527706528720983762040306986081930031023432310150808361027967190934247035234386460476999961967630603825225920981799309587308799055450597436841442612006558676320586075478769790585984717439156825182012908936324908816363013285316272971920500811460986230113573310039537247031902227817367394724803272389684402749813864005618387455302934885311843192893746847158955207990003563111054049300658303055854517777951886364796170788124729848068827718178420759253460634496245671726066537674465357405265290312223764301354631268919602959347376666108939776532678914614844328028041911488569680590387002119207452744542274795066787816536664833922034721124662655019551848962431794552535548098899675843923837508850515702998558117057749956586404627987380542619601700819327313546139526793465120205993104235623552318430619577340467348933589085686380932219529795137231868364823597342295506092142949151282965498446778714641959591576634928851917924219410740941585641439342124367068329569659489214100819097291432439787824061183213031723308550157356067641683132921479701968456776501921026972507910691197894545136089163830796753137822147554273113625348805894332037748334211228881645109451873596731946519882212404638605264327669138160041401130332215777361766977802993093849362377585031055472576879063038824954108935666529339588584379076725960133332464895033986172128005407407044838410832314409026230645954531639763646807241483457860586044677323672720986440720140950074475415720813509107117788879005593651950782435227353131950930442246392169420323900108090000238820556319199829634386829207210222609440197503114295802330643574418905750309244238926358683272617447491647315374183185858022622704360406230543251886195227002624786968315068347441824570631209660751258324986434566408633055138165138963790955827988746950067163127926086083500999161617513066355321405555460651101350117647984619025872146864991759869896597616723249504512608687325973269589901474222870820067636167637372244815910969305820974755071063793894877312660212659144659489241184667269204517077832329408959007773901431615759998463244117022856782519487025548175489085924192068140305917466683027779746302962255987541388918493431304472647962883067977769406021239489069801993330150230559684464489272051239829746347013948152345919144954444354253702922745637052748211841722610855830680936409019622084448721620160593279997627666557157658669134345375183250117249347389133081244807463716734148274782911363073696680013498562384496207137782605913732394652004876778053331786110869828673534897149913738398010081478332400335760096540754164501504632785881535967609441019903489739844593011766665260915739508261811725789021404887454713720014844620061267101635212659340949329007053023328126819241358897613026515496420136257365061774024413388743181289213745225926530075190274782386318994851375046402658009091442641356841925123051094477126282493319515235570291351154421775063317859345664016095355314447338465576140140356625255171551873651407637521994499263054822894328102578542923670343958441653906368552830528673589261194295614070274131728901618348135636652449799675505982427712506011018333501669886152170814375465245800357514128538778425611440397929340780000393418761927093011686986674006481712075025538396450264494348892669360461243248124949150706583711997969457566982607718366368162486660043025814794803563459701418478948063627504949734749331092075160139829658996236557797341309649414442135562979957298118507931654947569534079917784204397085369378186064351409327243813358266466053646049202485122799113138179012338712716658288804837845591482405870083722953106149643413881501324523699827087841257855395170557585981558751665990998799944551645909433392676406057077797414822011319238996658216306834690056097378920484996152301645718674270001313192228792930102997365762023470037696989307563663870733088235114311247214838103386426990230988016772947411121699243295745030774780914327524625582497502904898323040851717802450630492083795909688754801030925123571045087946886815084492833590374805265295638289952499878199920156887455001081802343540739364231968744744501927837306237230272468742014164934897143878945654821859737622823063634180184913405320329354827670800010541317275279433961032047272063715319298427909288520382597730211238940687864254633034749463117287941070774090792496944236955711593714122731882712295192490850166964468353950173672153627040792886650921736100987292695171901147337924887619203971143143264810058662732093653417330456901721404335551548019468810940571619966680437685614386383911630660018856283231832809388904386682451115286779117505971997901023973746017121312856593475040997458613027409221521315623509866816417588730048393224928354526931809282360284461024446116626521408429907252978425356249363030183664375973066796603254092827884902573304445032912993874751064948051774775181303239440077104911277366718037560759095760454481860055155318163389110124958910258579918002012359250918838211823498196984587987170200967500264839912969067180690345107101864452291139551132914590247947470849684763961720618501893271479295852568804593058789412229539296828517841223046600748720146138102621240821377768545483503188675219675599713390477492385115826033005273178721753499305538085585518545427375238910492487354680519659273997724292431691581921880418363266302334813560871935868497858052853435173102765824243949844755757033614961914968440339693641030740621654850344877383883024462291047717091828497088219802275140923804566809701962294061586026293161085652308026887821063641040688744910687857303349153454354107049874549359929953432191669530493203104763238276091423974606851911642602734344647792409268031870059794941707610065576756977629876849585598099041807755170387229678294555708937164883423172943729143481307479061179925654654447671627570760902922810461054753645113312348388845776741139967441529635908927889483828433097360068485335832793513869812955598796630536491999197735863304654412465371075858327793322022019996280996980583689580129322263163854066728113405365604722936687910151737767321870262790850982524458183906554602102072024407117683582510451632511595376488835832483449152845398038686213494295508488945539739479200846123320999994064321363171094836069573837414801497375576122459878490629732517127778431147896494637342856592759292477413746592428837498641573775081186467783742961043297175731486878373630496864205332299030293141045837360941608261941080605568036095861511769177640338575391777146669033386868225686963491670747596032783986419013100494754030794986910680142227485559389836832268225397588061501668602576438416429535511923113785954138080859510096407110166966918145498952198479196361145231475489889393229273635825100282083488393037614411313325537924620315676912744899143830936104013613964574784070062329429461203883362524611124960777512554726164216861452918892605449398762604845071792155244738054273066665630652088482321776745257496971037703517086621401485990684216453807577963635607578494874155087997677974143818379215758479557188230052675029080482739267500614737349598556459154406344886311536915984692235995564931467690426711912947556081218128592160666564041749629788681463433875880972466051926277332291383562832921960928276322454970811049482469753331197979092055458902986583483455223896869992121289316412247054831612276252152036479569084702285314774289816681042583069618272588193931616489647195121398022116545400949783034232851735913316641987548838724811726160989600828592102084995927118802125280382926861104323078659648544049914959605494514087868905841439039915728654971571460539545069398276754617168524496606539224778619177692518827807479528136622984254470831346143564243356039607204077062257400391851553883483938547925722794685602000006952046062060682492652850674775049075468735362641633508199705193563009950263572536103266814657305737513247413313013262225796791772360583062470463097206490816955631560778937571086920281436507524313158435884465873586780628906689020814661269555945576998694106509664584342647326029711712472873095596204684629930351159004429673021712486076263303782715784351994535681940217207013311360027160329480096890434466111577063787336183702836672489239941880950091928330266971188225287508472137644644604017905056757832350663347281589550175869081252254500739721742666899253363804018892859738800493115165599209858457139171156115070868313878359963764971650133034520722350713892378375399435958964884019008139580057194495861049850770941169106139060839434022965043329530509035270941356736969361051993917564773453204257353107767733850974384854722542471295458156096681589678753496511937031125991020698851526873284210324842713005965995759315912960121415553196330157497809084649252241190143384763167878889240747910185012240432155403864571510129321602260657341834767559243943932989316579594344427192707500198685458278279060076158526117514566461287932505276315892472605043060242128339397799362372726950162896220091899212785112615088951108431466293349247461498570609391384082737874132249421727015933370654524702464577144749759324882488998178664542627425284735270753502467819225845222222094176774120459082851259106099686843133391265499989430705231860864394154810712550389458615421577820751348883032660654473426318531301752100105827643489806912405489138917423134927120467108293251422286477231056723907812158237922264456193335497192042286652222229565243917001706065784701231397022997868555000278687293811316729454712521594835108290531090843535719057800057977465301035488029897994411704975323094912724080062415586395976989847776842462297756767429777165146671389161415562403504902118891489923078671979965425281084263091062727207998732501785553063665162519562739361995633238954085790332167123770698180307721104184396389424418145967550468211536884192299642089627402391014446605648838373200958040155227196047501866061488879987912757271140846598864086473747923606779334571481587828657481933040492464170374687445860001310362407427606029969993624400681871763478042182220690576670812527867319387501779198058902355353655811305374151548149279769619255794489520937729542731448538678078247162102533839296281188222972275608775625159588873096133030140532782905794454622294856252647038548934394022211109777519923402656640096539247816581699927014270937929094700627182862115280347049378163441529345849959508870496688773056453530509504071060574225417306028995220235678187339140293144641309070222263465669474719600694704006769470374290157315064692023165007701649529067692661178272163488353898996991369456286352279133039650004883445202896575595748217401483195529383366700228071894695485167122119166070736079531554414242765327752823229304263651521741175711827427290063846818015356889715558855140273206092385212301685834036006839771981539285908696273222560786834115518168138624922525109966629637577864723439564234277436975238618561415127637692844137776792215143079135456503853880498500931198655907039438765115852734120434247884683665156695755468734706635338453806477684073418404637688036482768716267485036698723575397846043853996487448872046258740496891610857326426518198846428813528117184965997174344479209859190956318677355975910483573057966410814136996416616564944786752663383420956616983758779712821568268793070175327079112539554947117692325324699279721352256519593859649711156046763211545854488468687689989468421079702035400010939388467402986942877255006007177647938040777046366118474912215796746786582979524146356406309197633206480366637658708019053913689342557487492210698666400642166997879897167840052790223691401349345245339321663990500933733663628495616345685885588307798334650797623010297161163332384617877657466210327499306953011627222119777651508446325069825533493874260959839963334872235553407620276201737171958296183933528672674815718714849406702466699044780059575035252253111521938730253221716190118037282270316475613667236977922968464248750780690039634340170597965666194235267411765386407778430956862205926075531877985987337527408330866458400135347691335752625341026306892708094100088074886132470729749429805537462467979458292473467822002039228922137639218758238732403672734180114319876535938760062016948025723418623848745645726792090019509498515595498737400632632840965985574762456877147965458111525744754911158280893561269537102397885893395816725454963013584070145091305876716990907367714999919763906522198120987131728748701196295305181259897991306304717439818289304732925292459381635479889736861989433343870733703927852588951743389202544940431385609934024888591330401781032834187915838825111084189931550676229597375821484950523307908429151674155864369201523102264015320245994306442079444572685706169604206774971129879809342072639713059348848284243899779677679341004671969741323191163349414335856936732943597640392089706930342817450515708560297668094938789260530821369902081201627556173021678676857269149593366034838246945152326131037965763009875287647987120995738645056709214482787404499095322431180675099241722309206898100000281696742047958046869939457180555590891292010886556670623951479434854618073994834385441230683949134524155797624594595314630456396027607420869293689267478455351154362562797898268731465529563127577211743096347367023823291258812884281793860875785760151564229390355499599757439712421754786833603410149415004936519906360318279366187005599826392283625417793592997149392302022159547311797045906114555694669496511661401227498511330778328205958129169338704720204987790959949328545018390089607650788408911501689433690991234511181246994790683075338783314850574563052354367552272458818524705768003869824759744363887443448097674042574488519615625006559553637795089336835096344697857656573890681165828350048856050785317424698944759823520327446726578456383170500718106828591817314244318410606500705268066592232054032612707365490717026145542236455854460379023154238987419475647119257394405257137013178154452993483666853185788246211816692523074548788359243114690047161574853187779875425158663479480572618510846051257243310633260300949319907926836380775329721455165198986425614522704066798194576917682735652192780975163705106188694491531840475019652526469737160285091842177209155968389601633505789119759815073166686609051988524405197914306436360235849817775405678263226368566659750999105839724743295595840516969725396078577226951149528448735857629349476225785394735301605305070141470266235143631416716964711955704391188585167135187003634351481442286239186433075013674728604167918027909143209489655208093379024889164537823959242135229980323742431132161663659646152031089962165065281721435824622450822212534419334741293060683251263810226671447816304783702228016170791823869903306217486734929040866325020426415880206595927333715361884948644485718390657161947537745142407216884409528012417565459809785604539936325324091969712849823404445403298601919009097600130742962891250267329136036611228323673669305525478445636450950745320129142956707100394697821681108499949746346845947516159683152441562021984945272396161910800253983385684289114063283733242383673999941641662413852645405588238590740030640342251755482916168246941525407381485705196633728984567731664733016818087105499444353868680888429848581698253901313258300153476200789154470106256423637263046248871898004775305382252151799750963208431869203240539780005301818246643761864690758490092825620513765097580971954543482907382346939740087370969228875888390249059398435956395826829990445936884348749295219364066733796119248691517323051671857961682346038373945860243955982662703858397185488946533903829775459441567650187217023344943294878534824736043626430195294898213025920473275196309393087901456013152078630427179739130909809459362804908116830961024558297993975067123356053009818096738229007989335884749924375921351011737937168787796432682811115110734724332056887741756410873756239810219944112166529815245759278706389760888205508721478430866425296575017194795890209507301035225197779610418902843582690284557265466318361986317879876869763429961873886157615776597715969266579530546677519150765244131062346269268538275912588575405035431403739682262052176931618639888903941627283069890813215868604513463496427584838611436735788812618119956715131000950674386795308842206406350502235018645475437542274173515033564031428793881405134179972653455515239927649376505566732073196569037607437532156149847884347524610055965391931754987378702573224698840302845594382950181059630606908097869785713203600537512173221403760798904336045863439308642928610314082245829605046844027951559033530916049029997924149113625591665197799217330055504463697158914815848101536959827482133245003977108619705470813526776235689130289287903842948600117479391707798966778606437317135901323274566545426746909130921106701604590876418535919359364961535000873795291558477834503707333178933818587482000114653573322946573829063251717781454285401665870652190637970929853731219582378807168664488168180656793968417614168808299186318182553504355182955115077539551746437264220378905504221164519556307022351084207782415293297096824990330374704026410250472057350072053559326175414147457513462339231239317176233408752825176809750081349937787272967475838372591290043954769711640420745572388877887215082592891565475250498946529126196390805083399471495717471463897562516909997340280605869115451135097947672926272759962668498599085268944660906704934177101533264930814433691291597882923689524371222842558608803357468104373568100361612978197729135099249079191077858574205054721674603842068133014496729484779144815199387429132101609434225094828831765821406169133956019415095192081685912669837467192450766781847708177217725606083481019710539665372609208050142205840119325353561667876955729676315610157678056289414762367843495478676472808311536360801040965322301336443861578132559462167548721701025785198058039775303299696138009549495676729387762869733031169279929120717228056945846548031068204997852269142207439709467024525431196749116958376447591847535596111262606543917464618162643499425864162174992080828287163016908532694859306528192016139957326831407528859826083625185514000240730626913372783064843519442342645765977984631872156496830913674954464143548923354220738144694302502931598660749371207814251065561195505153757774308868331977709222097631895835698427152192832846158714960666886319983765102357997861869252830534844154971007453869755688696727203302489642470478705563012582936806411610536235377006893457280972732267678273394332531239988956548854339400230933627173249643329074912735191026787865729004348065215468481108152353057469215095958466887147216914938046278026841932832482054918579827606341910017001573168542229631802792324509554144149963796114698199943110263270124950793494744080529555737119005420833702423498944966075435427141258077457678741062737600315217349882412559480588054055593277747031852336050390823545607236099411850356631884526560306351046523055489411190080387983811474859096823830011970318539969733937762072621498372979872941531559508205411507495489370911061178753352195859010379783519685510875679814581089610771431497506906505698717290227554514495001650257362753483387169341176452091437176816220791586035925770872769733389426099357515329185872866477668600276936368406065556492507413179213106614879017318677926910753558219109524572513449907256525992296530887086032372244307951115705735908134209521821188168693498878078252352244186589566366533659599547517240847615667658783936263487841816666449767336190570179549109583884007406191566072853949159938036535312846114018835504089442950466777284465811132905614459381522208039793012625717248311339945802569154210321966890972908566426640878496154124573927119417563914202998125954843722454416808292432125178079002558660570301978897276309265466616811044664107310772344841175837127316390488856565470322403174272076735070698776838330269145013328802899216969294683303895956038268867677691072032134141744552961305186202343664946724532133900438790002366700921467227794385728143772985299336361439898879647468335058038476147510297936728253935464865364604648281876607874697871975803500689690331212320424274549817566248670040107220418689992033006751092212935521283316164394054425121194548333608191213959251133026956318233524246667480612731745009753095462599142497909526275986459666773154814549834791744794743542577485371148146680625579754326032834040720933620333943532615492678207948324480801310807367988473762780536414245284283266290880374376923975269001594583993455512011812405268621971462517171138357399564917669516428459885472566251546602582626991450731209901363146145446639569549503739231381373324252124421959892045387727785496401406569368554820597150890632946974658163843397014922772244342101032443684713995116642192679167512331813906373905656564268903701547386296706394942820959463721275312776017859296543163881720163262793485797090628824014582668806744805790494633850314755810902483619249186308097547735634077883911070491170126887487893313267202836592053543239238926555711854405731879244951625814294145437089585727407722665087258676925816120908325964480254438628676816607162867255549595123478057022443435950647862031827712675189051788755228799836451696647221650858468770586825888758849350537820769944860256535458314915087832963918869209615319535521764836336556970477789223441537552954071418294546215383437216332466286859989099132036597586722315551972736380319088602273693195800641579005898173872719463288555052251093501540523389441689671691331922358301409551845656950432464590239980532959578044157755176654791185351827532517970782608574063542930364794417828363816535103320971435844903544280991131348228155573798740127954050378609218019790340337611161759182067956057002122003074922949852472776170281265877321435424383819510556387396182025658009245125066529662758170575278452299676787777301976620293332427488966885750227190533096811762183742065867274050028135822998571605497356291295114506850571182983246983743268434774665329838429982796650578045379171840944264293623802373219721177912792295916609278462375119096148823917688624727687287829735020345314132481261179586520380575033032375719486898796934296940189781205532037043576811139650197971488622122867474586422102488928678629166719057890400678048427585306126889080405535159159315064736872083567470837971900080875818166858270510452825732932104672997106152095567926242108955516546622764699456041892280979064592614464265389275256532700871465305209768716363782820529619001017328144145084969576328835645626533232149054666947649366573980438188523410652735526785524624497390149620610505085838442968158954775794998787196700874613007505740927121421232087714174242131740117736731532115033310247549329454323467810607624805736572924266233174922111048122272824937053049970112158557108093559636117110813817564293831272731875695122120844911367352481590428701144240458241397557681968861428298338671867053574095111896918710806372298892577159608974403169609577425328482395179378085709863046368598576766731346204200011468538794069309205683875050837593582635744005847094373493847645888183609172526593002027743705717155188182251961409716087341136180004973951532066719726811841211564748775914331855775780337908000869158025901889506592922289694447613529672971651409912120531650507236014209320890670824767446120030711420381773252737642560284778276230375479868142552282666766465890866980678617813881316831539102669125528285961482178488053085266562090027185836410400141309021635620912695168335101924086797231459626897571568940971842937442953669041024498748643343102739892432222836385988746165214413915836657780442049488975027467790017622560805626283753033074734831588099461288458462485960041445339523184335722385295749809283979810889713744342124964281317443026111339847045316477285638726072751631543154998539695470957144316271912087042113270245924457730395106532552909761895215629448959908276933163182846851480615140016798105545073827687255381572182850252811619483377953743620430088171315686381886671964306926869201443187493218220496618984720978227969838480054820279512972899889428247298443123080219211739883772083593619290621336673744647183889402119181787756926871369314288490069163788509001418397459365911571008869398503169789965889172545613009511297774833554514646511567368515269532453093398051383192921109880968112345883456573612794677580202653727399611521996995669211154281662478727495595921348443860201882486867770011939447903402568512706962245549192789740875176820424555843402608689158633383233059210745408390186570824505501897637290531003084677719297500544659587710851359586487561975907049320578078997487402413552258638820200534997896493926740002030678273867978332752206750338885715281869553214811310407553079951310092806471215079588813535616545844864522161456045155994437893754584410404456564888407856061716839408676992501708583877259525433914758590436311221141900512236525042353295231430184405458997557492298200894436921337841610657101310061261687427088005180961527784104373950463672534027435445229945094623588522002109401993482750935798440538490442091764308123907222789169457469904219426466839224330814603499704735520289828633044489007181197229327776532684561957789080174911620160773815600543634676522488658467659813755534914873975484768621291336724125107690116191927089654847525468015064475270986775577060915080821892801361270793603611135344635433928628200797313735312681811400142648863420151001727415305386079233204298214254356570848689863601800406350181900557897373916483663722778717996632541387051162637470746678351989891859249610335863330666192154674252498453456042640460233145310885246164518041975678300060148761272493065830737215444068215646284706948640897397531196647564598582126748166473673653419587451270105306656074716036889763453186233458096127309220316468481611612710383890788380196489419955083424912593087046002982005489851597204020448699977877722138973100631958666633086484541242612900412652381429450165932258527829355765468352542859184105479551824301166239217975206686010570513963515070758479162051372064881905957889400904214501115597060977584254410441219261616587636045951401343410020784792533166417057615665359277315156634862851812815733674241771318542487482112442397412598931309161595177010223006159528974523154604065907350335708686025358905195558777105232737064398210352535890974102113558051729304216836175694441916189051034530429223054647689628609781148912329211180095918462610066064131055190700197826683281275542891763205363751779995395198771530685943999293965377914999071048126914122116039076455044476669009911709093125430425747492044209356931069887947042396174958170894961586685799905913567413918722129120863595285579381773598590794943060708591416292101742064637978664871370275093574107288875734568339069963134728879134600558415077649113939869552484360336262948427269337991402181991297118981708558127275597700656345609719332595491197801780744914605217778651262321234581844910785061440452296547867879724773037130693747575158184069394722365826048850178357836278580981130001882089745239001279553053274384565543246980010664718665972890114583541677339768560289121322929884020871358307459898879902371937756269949655903384449383298366628541165797653063777854008412320941625331229367417345961767713800160319051991224468736846942181157160222476142379782331716995471519130155432526260916012057496625338536966722315715807843621569750998540708145240556165627778482256328028659768663806760592774213204532581402128699159332284336103688325802776136715122246715664070752165428136602005373622924466094274142611294742882473768352715186632178097366526850421504634055632455782232926748845946590418711172807094356637862668608961510454053514708678052063571307887890432832169967344773641829755061580461586585978951184449991115869256917185667570367585526177515231821631635394982446317916218515797029212072930683642972288977117604316793021932311695901836768111631611881789145885432288979280823215943155115692295090381022258181077673572110833384564155875478301428890340686431757396222447239840825689541342251158724449429863231345353559582066665347114834723842197882339303883110350487280551652257692077335936562841903159982273996635791663016522224628097810179781087776816174167727367551808387439235095405859149072853423755298935368303819473223935339951624257797028180383460222895241943091623885776812055575062342451953928250756134751156250775219252936001943543223551718144752173513604066979706084839523829354144819415801731246663733291766449543098497239019406728700912887702412037240177766553806852011705134674913096708285975369946091692173818425057583707300250834297820290572596923065040336029506563883566808525694450136223254595299542665081623524514636959365318189341439304400837280766898701789389260476852710258125808652500578014034826575173878295084792074329488799658250384297739477815129826000082729708998560923476755068932668101985597863338812703306512553199932460003965847282035710803188545842938955563744940516767922709907028516637530886029700445939578429270406253934059909905757829831752905743165098741258142488066254004923954146058504070853540658272609100709507727314612933833378913056354303731951679870347924646356904523837013302550312688605055239444920531012283889438835703301890402658440446527641218452358689169982358829795695791028336073534075982728834458202314550268906158965398244125366310953097837993237690376170156078562139809399864497131471255363741759876226494019809627901174033413748104494535299843332859448407343849061302951698203064889377142317662862799376062946787973664115947882730883978471261779695898774128553686099205686713002143914417400598426808130721862474219589321127059148674503717560064866466538964652082534086725169213150196710455892847546277633205245793804403240191848584003154629582355917434290099717152196636485378425351947952157644473302463814616777533695498097843256697160382415019360793906329891649298495103944020100896238725376790228976871028384988775223058955884794358918041677254102570885770763267806556413558887929211828500033812964390455026377113570357994731234597602619312372447562095502799219006079344025572619904765752713531984940756882733716714447846421050559036873722931685982549598778444257075419590308072297929220528613033825965593973388786979823958597200321157577096963980608336768306312156722969672631739231061025473847599411993705570247003433523154521360763706961577262049445719902016768880139527875625895772954335810300233720667654828078465563377814259979542860388738724101305482390437659485402141856882631177611807141130393717122878518538999982956455368655095357912625118145970547926013260725012270039354475785663756519585616820264963187765096084066001464664360431201662844998818399719821250432867683568915072240017357963758046734855620436394209417559986911799392769082647359324587613918162305786320426094075942477012262035574506758199734526261918853147704997063677190902977875168968349511714315617579437284065651769007511886511487283340362655044795077328566050620801619941007674968681602578780227021962002916720078839241224032142591756913280376851578799051859319779211455687346359878949867064696740730382007388265993563829974732770919181038738892108495870320240277407726864548281565160317480426552982205778480381567786589727050588732539498966315319017902395496732630798354468532942943985426835809643939790633905090971173371666687674419285289010867367418502942299276227320458214713126409545346261976899223283142150188160808219156412405938948009876000409400737464991845333763396849739523072376495805026099861416477477684449483509771828292987949314696345398883955393757622639006860203587014292516222400231254170271494757299579100703799785765595003035068502363865400966848846441014346789215582319263708638343689279635375591538554897639027560556723027263538409086553055030483379127821892225112785233272603691396640462051726411544553478306451552229374209159659888332370166633922110659407650996578506777711730166306321623035631819518719264639722373460929607834444851045652669908020384023812982644148991045261311933000593559153059208401484590310993094767413994379109439868326278080876667010728814591523332130156464763178021036736271402549401308121262436861437644829699435625677334855868674497788655911561484409687108013859059239850670956654569739663777312567645054621534370905157510191647046262888695390449552094231054524812039869091435627837759035187391233803667085030431698591331195762927361004773098531566741846136420579750287088154944531757252185839015685433204018061177810069686942973205242527105201042145640987011239960879356279586394128233518182813099661589113926007106285624429191034566449162100237143328495657431717688641162972954941317351805553048593098584077362373549152071025273298373875176388144717167150842473476669460406318428600537391470092947174591927077952499620825314115459848057833613921573495084719929162571642097025282379297813430944149528782385630126022200066061618013636604515682003752942189186556687143174431173051101893741560169197673509374414030812761735880975825459275415849083059824088964628266347332646347047424265820959243969119702622455648644175045431655104738895839410973782512585919583409324939927916233902408851497269073092285855599647013061168457700489097394985890977094542835048767672706328529433494969954380473404796192920948997048041031676697902281809527652624921215665329440069821771555650364883598682384221311496707536283494653910121916399946145275493312191628735492655802292627206321027710715796946805593107482242595508786000668916184144279590841223486462688511474107318160401315057940341907090016598240659258376987628962853171324454710243870300779726148042828459072000716657525821621466787859255466056569789464200065774347308799632373647782751602717751475880923381348695815406108582270870574339448117368987219964010229031121614934564577397018437477721516145208983014567891381038437931306130164631709084319053602126551867234571320905337238288655623767287988556943178548182019209627871350755671376070231045417309554248686478292773727254485563099890629699704794320945485209695899022103119561646997921328314339284583174081838767279418606231646112221429274509425777257180684247254834419814687348850290913321470632876269345951279734903037583394711351295931720063839062158147904918824009641785549114007386560793341633982835874444234526771000256831166203833456484531621019965219019348593175901198931107282357311297777662609263683976746294444784451213192769875414901356216649633783776936511859191685873251633975357016335454332960073969128512359023451983007687640600680154513983614480508479357222236548812091240629770390124012874969177925292931147485115084318981533516582285420160765071500909660892372356199806895500870294333169060039918866781130472729090349394517223894308755553798435791539997225651034120392098915695511331210403867694738579211566325041266063508314561780121357521347832792143288376143596965706505271363608539162830190519794590109769191701656725434530387231876899806042254967140669178712288325028699317230656205825966982520641880536704236363388879141230810128469926552837814274381344616255070418322168825058747326009316126214406821093985655287669956022421329397431374935373859806859974510136618012947812777411353687964415979815359916313118444209750814647149265022250252949954527111715781256348058171459272231633898884196569850223711611426028045203090017635661971425054212578021717055405859447598691663762258140197874700541896585284419434153235261019784827804207643240358014430896234034024994611729127476826803842943258889645126919607090697652089192468293376712202073669443772869628094675388589374945622995105063756258191954495956603062235009622834527558672977926806232798664587960521227820240525740690756290555170933823922887437015461379443287765143282191183070299513904978993042161633686538357210423269807418230232120249997152959445554200902885556106996310385556104561752709172012033398590733337332939044453222733370204251844901044457305884200138420646237129648405658735514165693838848310311030209011103933256156277364173483599188139997836837418118200969270672623874649262874335956795286886433389019108547929993765311718024580464467791772917046686930217895609258846764984782419981381404242512594323030903755255544434887311216423786389125316772775111049807903490272831308207202043606318265956741682590748510311622623092455408047239542230487009550855199696280204193686003136321833208213518882053043942595674092639229266114666764351097477084363623995022450482577741538340185132497697368614427195670185092623270722965524330229145694669324320995313013263196683824488254452894644270679989483520306308079991384926326327750471392176234678423951454027327582664734848450286056452865069972439575608865436629609601913568532088502907357293793353096855798095251050121710282739801077785814323255498891251914655771829230155782017207084706862034779616190581958491278081625958198508567462563623888865425886011940709699564211924128085048161117911733978751420529312913560426647373780739878697406000104861436405588463936303617387220057028350026477840262317848489279947634206831374651884642873054088795565225449583253436111185114819326938783722824991200427428381890545677116145582570734877269045232471180072767485104538934896536335589919727277119235477283654155828679498767203895399335480532275726180965267706817455338695616074224093369072919018435708613564856504334551918174201034066715059635307104413316639566601008735706639087693385237294296394989713889725054541700699309994943623225590745170344410097985025961918379524210009087944623811666757508616170748519721288127812280063123304472246851222558594937028838462026757687077696346990680707219404638115363384045853477807225335290287475841016742453343031795597394724618885679025567802082710702200523661108763188868512325762831201736014078034475225803839710905249139563842397267302768721652052273809440261473712693158182844789472639932600133600292548691346758533326451175227403754807611451957896557329295225334752671011849236314596066579036236179631809301797931380252381813572327091769233509554598639037358454550502719096095719158630366090052139568397150935534089020922719682452321751180816180155602072358688755685807323016660478317796809533323425739016952464057689856485052331457872028657207060097012040711721543347523806086314001052172714806226611160775223939112617994341093550841378758858575560841165838279427959149036747566856411869635524842941133011057098954527409510583468062874839862469541847290038766374376295593718348685954829538585687775522967215915261527944497695644546491645940106993772157351223076686691962363255288692339657615481542927268692092835155372276588087410861119288973222026657281441477350086792848020937057209541566452972874654653523378650800274118910325293442867082022188468483779971380384430967216166724944117238620219101734339117591079813103280502871716234165387152664377372711550114417100260542431035549821545757585139881167402800377635935848635337371304739919454192033912203953334502670395473975040439050221138032931957995521946339067890388719152360083999282369113810424049126445640202478968404487412095350754374897471459133774298730908679936910443919483173292829142426331336032473791366827913352488561670586079356816496355704840112223191100266441825249936004969231363886103073530735479246171059260514324927439572986490391918725094713444172911734540709545979544448287816724673138867352273308717345380116876338247713760111393182822973886535020178151510844825073524940385701760473795377593055355961728939581881181423793911723719975708150505908562613245014865059892176651864784033210888891336881430180112453687298143427830058231788406167232856515506521599107307890892950802615235492966999955056426270925333768620781230776142422112019862106360807044052334836660846074036440455702904300815698235386256997312754632224659843844419687318418407304865538668192643243465661761894656954446965186113758833579640089965249150785534478792253913081610308644878033993436773188734062500003930455324167561105164439822011678577603251413982590735012998083635709757056237678545432105070345952447932132256081138296304478028722421991708512055118516958104676523439406496952205088732849992705776397255454956330555708479645513668626595194563836723704905341869674390374887693924486520964320432717770234173251606558727723388836568055961423092178601908855292243654860911037306095475944937858885729246315054103574282598817152516368268019259404695187503868956881681763982103922478666140832377905181845560878563490050726698491210249723399104101388773455696122883486266936820435506885316405572359965959391721197264586498308708678650808274333817718005196915300926112844834860451686992814449778785725990401529078517957588910440907228982948636603352443428475223174834354845204576846452397884591502254051464771679908312136587728078719114088563354780026949994504474242128427394312656546833290858914290398670108890958066048221874459710929959617700591108385588598098581913267426022723313443358865466871792825494746887630058233216709665282282945677400712273076459644110055648113945176804270597002983718168435105065071282996079359747137868627697370839838658272598606439925495407270524018312898481563195050564356823821096128702681904856036947923190208401897376210750554173109108068656451060695955563246184012965274319238009453215444896374522902099722740816309941671915276321751265376870692633038342194404276333102805775387700569036613737119307972070469334819424507928961255587094352302486040327755023922431710063889016999020566516979596470931428778560241456666748792630375526331274845130491355927819317689389503445499784641108788063782205280636937791282938001820617272697448507577526983522149525918750667434391774560716793210629663234708772104673418440951871721571768072703555898923094048675157980338476128539704633092762695009123018054708713182202994888463892658173424772394579185760973373888856345551121743179575185581656382267329156015731975811816311913212984882050292061661817849755771660845822056682622357963052740000192517180561048586769051771197416108354283215412416057800267457547054906020044688333163146193627740685767228497412573172914486800728345109510690200881560463766221449482240217846364435456123596427791620787073904601018066028048309173508081688877463828347194726864430629575869111504851586012853670214412953320503175955417837920892236228199881932726074704265907637602337380775074972694298039509134887537303913577975089599232086904159380312984784517472090554615976405112811371242447230790022629803881392475095088022040388215286289822788566077574808736157915841569053743090862514600271679125862328102797070340875717895961563462779117684930041398822158574347367270415106429310196316373116854653139781575657508674543206830752174946154147734394337877925327926771092876952087867934088019554408159091816473908613806405553102896772216591663474955011143450070956582014807510725501669021424245905578099327646859240012176013008819642037511277899683662033836026042224182508619885279141228531505937510252033905332288680201582108753355611678702058016345507439117463067154937892251745223337172679682810180226366038334954583639956542736651963489994715905438291307646669437646938382466777123434227492838305711028215812037085988443168443034022838292517804321114559003274108370291525966245237972200504174523480223036147641562399106731488981285199114297041862446499673656004118372575732844762009090475175119690022950952262030731963540988664221127003402884875218550391311397647825906508648166781589503686761266503627566238284806653267468428132592808485256492658497800856621434220823143314555405117963967169095038051005906675101539066315794625604446093247385551944436599345376176284833149169773162119513445110701187813160333793928186209174026171725661925120581480384691924647260692275087768771971294379700494970247183273454608822760135191612579501692099970535199180295713418978469343183515722571377559185868873784349034243053756684480150347987413027224131382661285412953943247916633681300935142460064888072013193055888022720333467638435613836525830385981632480519358253125345923912768640492909268446713265677775027817990264129457816501378038606050246601350543352258977148676398921956172534616449028170163723449086858527328520519836669883720873143508053484722463634125879951184575272855126124958791892246554307830743193364672316398969952310873076875264567019405524611294713998276587200935833932027743447680351159043410310054441273224471126400554385457541228495913547009131961792876702827855038668652307542111074089258641785703344747140088273595275322229962956122119420581396983444449149610669954399974781394930217054516438092567874225376813504751620056880010351893749615694876010530602909843034057289742286189763610495597397269233805792646639825577017377990822103002723570955297645576146079621438996752782404670758075421535346926542826276589519560748558223252936046131041182777686671688858224317936681930938128796388195376229773092442550336396097226623588962642735049223409980085028270120236345909227762500336307136486415239567669198823014593863919632625864857996837163157584441000558377448253933935766202674527552582435936662044506810783466453012558138384717466138220379312314840416096974517978382776411628057559748336103832816741194581115084014988656666034540814223949009130452688552454313326516651023838159200629230982463814332815574629133104303667097200653964573102283359972572167006781366029816606291541470945938642172411528352162424317075752350439041115351633934062567442967293386287612894188483448939680779386542568691689616665243777947139532635907700591415289847955143602404999684887864255561933324598713276042722755124548441095092487372128003958759458469405284063560252732607005976317417620227283401422602148899521572320645263968429919242950095333262988403240027865168616886395784050363143903381219854730113651835270369430207131061343562164363698857340825351922712045105977389208037269286685118332787719510242775150052908097556557596106222424686525062296303131199529828932973932816411431041389736023114421953024770667243322764194886943420637394948755750964673269686030038748523628909444097879019830343273971112192193078208088388458686195532910047837719309042260363554023066575920195105012589033818222792160229742763415498913841620468334070310728137388617270079743023514162834866811437503672241849982914049665070777083647869306735810888632349088321335928171482948687268243966367197633206126771541956227363931090367680853244272558485985265715422754767560952835073131556065142957709116865947204276944080733339694461704092239748744092978619942175080880486169588650660426773685356582982706933973551476325251669802386753134298981896164060078806079540281465640289907559129555034051345395256745822773538747436058366470411758393424587885215717286899178033627978403858563364850682644399098588807690421772793425602309597535189506069378089095171118432683579225360537121490274667267963384081845368507766345696564470414738229486149871579950146079150784996348426885599153270970546656890554877030911120303288344678170780312724931063023139876700395023745208581683798949511348930621540094668050648301197022545378960007462720029004569938616355676079339117707794874364766079197351442202646555111404903926259595829884750631676632060792660371567720401809923663386971553334038059802956952121975806733722340015493165881300021963451277111437254432215046331976555939099077190934634627273655078678906830313460456737953295771360397366195675252318020450952302676454674154874702777626926951022837141938575104229725173817877990197271738397157635528297600125163965978034730201296437603042652813931627207584379344164925633405657786941079005476743778882267436466133817205323900043192835160727936973017458451574007787933696288851475739532867820293707258602227292510211269228757543750191332049098376064543195897052319432029194064102698543557350524185177313160438003184728448997874203958091625515365123151803688195550946755678433846520923534897706209983096936232781838518065415240306367122809828513347856956135138038672569857742057934981974390660660526772584750179384405344621436696654031854512433539813735374697062579217285330635491021371179938114609144870817461765125173734525559245884963959636179029137236592066340949453436004798385163364706580221599553271458221042235206747482734990726110344269977235674309398867718353694270391111911464873270945943220953897574305645027970839040649567041977845989288574237269734127925363101861408583736979811951204798423581384518266170249184401804487793727183770187582159337532147123360872853696572060123638638791524035566978125802961261189810514397674941787506839866438400928971139055642315545525902120983404918969336874813195681130110198090701473244003450018757473097030966524713216698727071561375079481023758615211893566712787728266587583807673894088501836848360195237904087630594607064657288343558403314027200319079008082247453663321854928497396874790715979276700431997319830897405738170085548031317382604504471042960833879238011136025431354814094770534260348729976671613220536935468263157004271236073475832479335987864945727883755105570118315200484323834432824112517491170267024937098094338731593089729567289473146908131703020709895776044137003097842643841203804705485248664124423689804864234914619588152650878620759847109087993955017310429167078990335410416468531027384023772716149313980494513582795206484286927209006272731064792687102257760074634167014424771118744885966192079174875122116867118347873692218089917651240132593441931232024157240926261135448577152202225855172911214455491303615058135679100857231077323261834077670817105174749163194027346266453565016586663259928299228405837340154882156890198589311076332987345346718102008960157749621761544581229597581574122277604752520461583843725202030094011322472009431243089133539115026639389312418522211433490421158215884893477427485673012588526349793676488861065318290664746468641214151248332340790353312182241022189109389230980167280189070074663716231230598546968662118587458243796860328748868337800534080805571938110368741952378595642087411248548171917333838241320261563926055689789648169517123846963145854718902263645940394973925734001148613706955124472852994655491475456204737079558131417728580894437975973229808148783320678648633800602969773723624300642463157447774378006250131032091864302296016233789461016610316444812181171691176434446931390173970372485662644064609410021657597624667077765946095787724236678883613905705971298786700703361071373065680082602755118205666107130707580571651421171119056715955733484837953636758178099925981934339569503788200484632651069672092276751006062023220914885504034114432221405827239180690484208167274843507229241260237720193995340999923144278298574990570532191723337208059184357930191759875024395827454837800542770129978940423636363658601035974175414714580636134136153339441541214576039848857030702939773384361213024945171445518608612427094460491130127320352310834255987462180755966137233383621983963653265748453796998525958855747222051763214089118048109580759363796753710362449752489665088128269161603361763005855019199396047972390246515036752527870295053940752371295101255498789855013800810902634862780869080845696379842014805213795998126669619430644986662107820142652927543618022726380215211126746708524674831798173649625952808597353515958896085362204961844927061021662608401257181368634047483404321784055098353733866975144695605872745132558605226916112902563164000791511980412265907359767243917503427659814358458308823138152784435750046319544945179156601933221201475843531195923533294106862080856411065750235149259383264535473580338253309220880154928835843274313478997470817493082846629291216090206816848791187289667245886629913819188525676808880256203533892094112132920322204346943294048746207142315233591165024117840172804785872304313959076804068884329738003765032626963048369645104002516464724670809620290843316948163011610637957474980948046349710382986962853973077261555793299762726502288967504870043423915539310565046242854088005175605231869568494639497526579457380838249251116940845339716523332790302226885085491419037585761929334491711205891682907879249951544193611439456471303052148738058905032609904099429605923775088717770771285151758742398218193859024317423550815376486696315767210841363449412679516223557888758524440320823739423983690137987860457139441302794984415742910054895014138995376772874927450656973169695030651119432519791720472702564811205471720471883678785321366456096988035393124679404444703673807138595258519969109014874951866452427818781094454410994685514611315365556616057823021144860015162557892693620107734533105684792395202815379116147100578300795616813161007890825515044923585267404127226157890191373109480775256333481017832643820153294925897851747543975994524517408661280160511617618163366106308012669351216840624130126703500223336627270759141131679763296316066043698215432137110772416393061802775887736423796692314620799038601286192740303405275264286162233004628580208932923866624968784393136373798801310519158442327961139970878346367810172712430734129208654916104311318651341470052815307191362256736672751195423689278354386512116179600887652420144530587738201627761147651124023177996036991259169365993936617277865073758456694999587137437449519692604548205322730739965671332124684602790772923419928783291422238993537058287314331470332538833081440897124871759835769825877485027886313751509809093967637297024608945223836303539206351024793783105614935502600203245398221261966287949771330786872953787882758341150491588352128931044253955896745068585620823121752200698833359074816766250041720952892078622782583092015312929005561235022810462860499654787420239701138987228125067213544493016024890467304797637586478619167368545775050524684401096654266044644967799263484535097086461921920993382131889320848412182527353922173208875914455449828417696430130066418252319339015326887823533676075341724727416416091774851416562544208299181405095556335047400220953470252388925682093615517960636577810525353150744309405788822351767538891443070264569517860723483256734751445919574233921817270026417181039651153598948053505394741434259475888782946108714703605286395336498688111556159748991766678507070920910253677602915890847325610004303133679246567662403687038169173702833741663416905709646507961572853696588395294200858392364012056585163022277410944573897207392400560590639272216607824213967199672869987436748111022438928824352513218174981783282507773050810193301901154434084843275215492985109255009236374163267399434157170307133789378120398493701846142969156964322645580909873535967646563389759159375141676818448566172515288556182934277673543809528869162406164853469428118744227385608057923668520896668970797032856878871429946936903076700519430518769698834791219802578964353424431094957014728390193830661799421612912114574743450813505902129561511986635105509582720443656737952350386994590212148694609660918018297064699259751050704158179806292511704844003332537629904245476454072201751692559082712559006076853447645677925698819434344980731965403127459283256800665995999004323967881613299074213910182411017088586410356587554337610072648522984458541560134013584379775565453592856320416159886449749729540603544418911913132403834593857456582729879273239033979468028456465204678899990083232519217192496156303811405191612683055205148426756160566759259707407719117181239294101294201876411627538978060882510838882837631670467566317473153007914648363410207784789620078076363571155815417370127278145789802386135237039597067254404781723002933279770283351453409011680169985489454079250563350676101863493547299370657453825935339294316261941388095013821465416136170703345742049522299919226260034791949265464346022378335549229655003399536170215118714487808066419542885986558675755528532049150843597319695152255553040820899273606394519481161000664149364789359224494588209219109218817132507620559039979559761560464123221574762580173665385750856186397203381206477763826103400307905786302477426340887912772887143308673918622390921870062243121405993887676782523741763409000775487897200474138070815512336536996639160528844537859860192726475198291087080438536567038166587472596385810043996896501713944369807082288653429387083233648060900665870062576937332159490236379972076676468222685843173074481466943191095679305250021888328841642120546342466877023363689255093054200712628217619033204830589943309855456343644756069376333669399534372929614768364248239854170042307374196631888073323844661871593419124585312051363662613727932036920793237613693394761035418327556253944005126102107158021877007785778871444392935922763974293929035713755347673965063916296542740726208551497558002573832178285257326120276322587694352433662117189472484964551144981745819159739975446873410766561912455874224727109077648523816830940078711104120084931683646634753771798818394060508729773904547254904207858215811870053513711236043986144413772106336684578564312663641398296843163663619752811311092447434974688872341597987166575482788626777111256876028272366287233885144096937829302248228183179951354142302277412152931303746238254320481972956732303386150062419553577011684966917216395400923523410670133684509605339125046985832239654649886924973870730790698906943377549115240422833142517027923400157848926296167207155785465020132513105507924601931631265739289260694127829596702595922313158296997639974681021523272011631264533712791239893928733940092296213930319839041975028035943226545240088670437657145187320999147305339349924188829625383357953161240236724498180108610516248346070214977607706258335864938116421905687993492346383290621833057686492474476870737702340839759612672940408038293048694571473450507532950417920424798507163060687916082454589815494797073768868684313213745153376524557998112061382985192063692338061646896788038470654223304648178224415169557638415007925779645820870945390477770328512229852688489517525313929898287150969008566295478639445665726859843924975406236158981592790797281692221558690409786134284399381638300653816488432401151271217062730383717059456656122069979192974577503766052370337644059321758615031945151429169151700289478473243627494365401574142967577514458199890044321553918332632117129221803904483881666556613416571141086800665213878870217728634975731348246820021864669752664407669972824331928735696269963014988850788456814938563223825036381452688859639635215023545247189017945118470952542060927349969672745682354816863147509889761919682519883476107782964307685379922168644643411154589320234895454576365984931901741074425193880912652725293531732956902142771832269991551683571134715108174176605091412309863353004564478345540199497423332264209302699436237063470284619319920718904156823913928984320478922156248366070954614460013877058332858994840868096206430003118113364421388221229161225505322393329127113976423015848490203614328967673516216445794177218733595199640695177797399992711275158426437867947287681916695706750696286067256061005489003868513880891117982486584636338151383822025353513773612620222263283959081950571305941149626120751964808835351011786440198019743878503765906183853918103818720267048989538068759274632999799244431690212198974031604695932521705107768804642367445389463915262401199586396286097366437128736341859212110452375489836153245018519911068864819443485215088832763640023126985883320321701298632087739974270762305175633853276419804625897443385424113952905706979357794073736812899377250797880113902324025927374368542167253786220309514456348151113634393735776087330521285166018503274263226540298937896093115576826611865997983613081689119652896698510144417995345048558746145584861952904338510337828444743219847022619456609626922294873321622894866861035564158655492556788253780744008644412860291443261815084434883564703306407301276490137361818352798376710388353390632859631683804673730010595420866037019121214088704953756584921793683244073144878249707781345622767784618628765696728124849772393118408453827685495542469497356854192314552461993317066830432440041883994665286916253112210670205868778335786377767039700330221478830408494482631636146187626782287224024091480176819948655417636733563709807131073357524252455352355380772727314108144278253157756746960636917293408493918867158312399576624426591791281109227618087071724861698093008499699385112138290740459843354659578068606339743690143923155648571117823162057119453494416472877972191663762156588192883564253844741966583572520950864323609645560449465300965544470074707617125647356792477287224355021801118426904215195796732306232700537951244062306261420949501555177444500527794973013052251811085249854270399868991972456019092802682954291441850107331799790413235186773529913120389465375508868143113038347236445978388634736972733050104630236612046014584323067847292195473492327226352608750981262496696918742231590159442991786961655284725593454292981867658475062009813274603926343038089869241363664738016486911242532048451838192208675081423706724586872811560264379128257337971451241267401257779010505543799157838405373521714322486511312940677100657429583289642513265379213621137268625011346558716170972910566898827398359037800589678547590588556898568065503569882126084018357468726914397385442556290679809220095908836653960182402995004699382112865011699772779686129683500842161423509013606148001360236123415896367343835400003206692733597265476525757499192174442119651352720730805986493404965377231848471593156077567636001255650265046596183300911838764952132290384103169660079236686701623717514794798583644976986938114106008107054535554290807900194603289566046365173660880260018775168515930935621719524966430371596400091971292317099685941407551784961243672755769651441935564616317258277091641176819225362960582799080554994386195245288423026655169642337645784810471740750976397911515188649816506992768315101991263444191256710751668821702167607290054352630105634544002519193690584001039586628458294483885133920774258573249670566439032271021748237505852079184548293016225760455303600920047387706378323965023995290988098130382672260307085488291535640482206632487973161504789209112153601933323962234623127988233418680818221431873063499717870680474298596027519327613098762888889657321052194816081430840672762932755636262462751302789792304647654512489364574891032585158293559985571534948075930079561020918495317844745143654945562216278203485715142602153721860684893886877132904442362528285805026816304354838636087688581041073591994728321195738512182381958968912523789326597976866605501558555378872950918035849529222106282153536582561873143183405979458652783771754860316281817411144737273945916516717507696183927093220231237066658429151387507669063709067974938547898325735900276762285097076716432791349805617657484480345276489104603118032532326207851532769222267749005538109639704719906608233471435088821284683434533639058364011278283472896768858630957516626259345123084459820978388008692699522398273517527845852178369975144634269100104745608375616899201192593044525079884853849327519194565910421089985838194566108000613147039702217662285385034230870371770542381360460014029305856642312532828984891424526531970184252241044274738052094487213090862670142505182417729487555431968135044349485645909797233028561455800728016179583439654755416842276925956075899502741236460565429518398280701651377580834991910835877553453248160616715416623457108385604001838002656819829078008165949326858640367197882552340002434894484439549821130681875961318020667353115360065585200542386662668716260983918245195762903467909618804898459033902595244780340945254006890812439166058380768227073118713186198468563838718479074959792398778433680068700437051132083175569528582417370783152184284800383101589057617697303456412243944441100289338421560461703956046181716707233362639280935364111344684743895038773871373207539091097616446341022413622781251118806634150255007159372271838223107089689930563607800221823280623064926544990290892182797011183347127193127014830894923889500986717330609277221857583075893396539848897062968823536588852356792523925660988064142995445130071120179281534463702368168944624647608214666973576706506896788537243037107144055239563540019128055152371609170533872753899842173649690971968351988097852938321082089760672734428831304874798814820775909803437845535271641377121293245902777797573928052105423729132774964607859726989852634758769684813115579118272271056052984913802655492748460679891478301591734178455362587673351341245924800201454174009635822041686091293939567694325384560802837113538754505415064550225784672468965008896911292686750620158860910447640302231863474430136565795621371779405645340708601234568483559462143185598305106914569301122164106572458146789862890845991045269777374088068881053467140831026689006490375173535064666532343497113434778492861690303369923551178147270410835715341193292937533573590845997920714439993800629292037074039908194035882324420796815940933689166694838224993399107032693485689438573611781435663373167498653927118075755568483286968870112907038377137586092324349901667636799043289692201244936386274830255191962181329239235597479868070104681298049067317560821209830225951808508431567947573520453817330259531080281257862230297576106088180164009284748827082381461973949645953654632766010898880578057980503943699884602200037930984918753993007232021073335462636496112638921096644035348592431058197246448992908452704443351480373509896112783515784422549574081263750780751255465796605866289290043614587641289848867126612520404128581870455021234315918892759367371997067269812535298821347815552531429233408926349581261825305156122952280501849834736208405338141065441563806552475122122084718010502163908531827650084613216820667878233653409223783909923343946355711752828469214536750435131663846960642688499329799976303461993049548130463271152143473873510280596729907837293771607108872086901812246983528054236973949879392742980246559786247544802904198215766723262314269738617434428903919804105971729358861942777764064543628021881914344251030318571033963101914800924417554928148886214909263995827846646513036418265944221802027218483829450259869945448671280585737192514812926769717593179528108688170183865747693355204600715827624380245460229377562815864383957114321215990874632220456843216771847785066251346675396086708086408146628553423235616368027491272899304204638920405289375164148304421376354797973680556322350854602877183452821318189116448882971843813299578605382206924360562574424715943534901685231257367594777537603733815183864925805113118651548366555612727579229536354702810622705210702085741530216902015232768036227672446822838461316427759459885354863691440672731578164842129055830589722469154691330661934577898069875724095387022201166870254167655529166200064024599068211831303994760853189299096980033170557128607772555809183940158764300049282825276613371228606108511238915669454615933938280754376296682870511877718330398396796121316388013888952674374350075510335078422320058498378513334640643212509698473407835087056551911456611773809095195064195708565508611358700817090382935580185307179867040544119451709571668720556774246504210319408323429302345489656543068409179311039873153052253154070844685859997702895894127283723022535602818891899692874405667122417546689749577008583183350398879860238189850648087009300078358544181774031982799555543474847755062842682804680290659886923460322446113959779863434461112934962014356589295683464268862933149197574139340187364901213707565157697326746533026434684646691698404108785387971834344263725493647331956480706425982553545248328293890501893618356938293604967958864978524676824430688595268580803182460523532314780545368518283899140949803778754770704676372306346966916970065010199810868402577062662104353814184948915566784677849930461585028735951907645537061668198452522910051947274851782888681702741314030777877559825930638347900625644331009128335324219426257687654975235045611392175301890283586067900424596082494314754214954599170472999625344652765253327452672699706988862740912764051493653548592533854013735407289555736479374074076962382779480047230305059028067667886720081630805368459573742207557076420064107244319729614444625576383855718631938350184755042620437950291353112271897374493112594858916464627204781508377529660817126329934961408488384991394683077858329394673446775498477941457701093555245849683368990105064093215737297041554682349730669892331716544334321921603662717799727837077090313335969947384797023025980114611888970380942195289390244552951355027971349045754066217875544742097590054156097651444164981913152665191121236666071204398038582553229727043677071315404658952526227298526655815989714128323116186017111977184199562268753921919387845412451605261519692975043177893275676250699500175776643926886694461512945903948390553563759804667030635064279198959017279362262219493414069933105648081573504734055281890898970621777843097937239530293661588770590214794025051034186778323280090271237378983423850603054537410719090418916890880603949920573954940870430304300523077902503442723110762802825168746392525264369184612029108744056011108272072364899843084420884432477878676243111487906210657006182234108763614538712484862956769260076406098739601829945078205440377733829746978411489228175653227147295346711096012818808390672131804232687845676461461135084804579687481784561724094011058733675990204650245177292545625005798450901516094435056699267308485092510520455914185524437199513100306653222769424238029466775559111550621353238228507927386142346136975887530804598687250493457460345278653979655506417420481451534928093535551771091347836010377147753465570814091695197095508386003686002392709489262417325901710046371552239917251387674911730239518104209697748781541098082824994390669740281388166724260578437683653902211382577107201819511167851222705887874434968786760788847312254521886731662483998433255199951137077448205315998903543361315576849088891380528735387377671793037113245418392578531077205862347864081514732934131663869217380616274729651831335934316231689611145782977552238823606584102408096162700458047842048967181571038392383945611833369182970210300437352624971026345219216942247340533612242252411034768384536127902203235799982446083872479139484217851626864350838717457667095647520704840787782816760777394690225852874720706822445122089240051590381513331629472806956096344908614559300139298637074597191574742521432884406420623875626145940044330543961020109472716959583269896400591884984084673774106174280479783805331354435479378480749207067065738674600356661721500003419181176652910568754833515719191687043971227630382748979885783399018158877963487567916189162332873300268710375598021502374944913227720101027508840387708993082293409820476062397050518803941777233369996397672915294946634664283417927201713869002137264175440888900524919627880299777685503268747153364867513778364019200475536865440577046615141602328727410659650394178168380062072905356273123148367748600322633813332727565788121435279260658677444597509430852354975437514232622380518544568764740805091203326335347167729129867732357059996192380395186715048723965800802728720449713165151860632731422098613946810738864021395304833992716376272049273157526959907549307747440358283050338272829329860110616340382370588328451513457734375946901229679219457266879143403202380841816211922645535367372069087115967060339960478263908718172879053387301546502315502608449520810775259352782041666185912410666974703753557925216696802485818591800344413350553950559820353128893184325475759458737467776282663427767490116107649744719903762830737548195062840352308574861382848971775117165993727075917021256368813252420763313996754698169289555767212801642305645351346910389198161570275495641653595704615338959186486171505887519902531144907411548125898412643868491576940422156322572313532254546513821868642139208899046192232122927730553799580537315651317906325601390783850303955937758619189153236805059283359642530172202973708541385771498761764833770300156686254158499504155500803850813086708750711547994269625202666073486890723029009066636496353715761275437882515221834184773024228220819063681110137981747403889812765433483110977671212179940035543421645497677259413131454882958369127204330005274928474982712554190453301722779813723761784003532041568842030645377301055261038911959373873702056932233723024494445658283523563732139724276770951363650924342704557460215279023742203419141982276965850657014136050032816731503790568408089312207100657303599841418831351905733619054978190159977580483508168000524172421579446777610614165815233304870153142116191442595675955172075557171638540009754728462263620577719128923397191928761713127435223673766887848337297433750206767877773320742424140598802482765118632269277563419623220609508823453952410262327908565144127661827910974062968448625807995498682672673505654765155137191470349423414685221711358917098274750644177436421373928543726116917012064514492952688834913701787776650918807667919481897529656990291145205140049347292279473332970306855812253833151389757327278320651319064097907571358062074128984017428971372547058394428229991394533869914772809474288656556457057231189337664679313695629174141927375028505352461026936406408342343240665237757631323645318754903722312853411187796121838566010923421523471121091294337083727011827435510480694951943238501733133326194289056600949391924159594849996645472743084509194605914065861623400694118986076803028331587896376183199748550712914093304180913678675950834995858098834063410087132828899851712184190761064440663070511554731495938206000442688055524318294377431865878386310741790413546918513485422962670985014737538750799785878648309494354661283467386663710815962091689121622033897769898136707690111712118253114089101177854022313926156749357053661767287799022037528777021721007888322950434155139913493115022469130904258066218990509643594191005836960201206978353680848792852227438675762496769133954783280682598278357863664782766828169764358231589212477657797479684900279161307270120883405041281917869415585388660318761831712290507539320404331198884186079475144058399147345656367400054701974649392843274323130438414778595316492538396039684157703933466209877686410633025755991954146060583695693982442221552364316791717693162438871054896573294275141463699806301156578353012237911725959948846400260362754300353851438578759710566093321501744120495790560485364591626513657618976156530378525921690056476616192972191409948988235286419349140267206352608413047885493370608085918354159594513442317296130088746142687293879035989961821931165549743254012394972007128172033218351613306855008631258459301890948948241673787810462751624550706482099465612242294560213668494547148551479791223847241186768643071200321023245806287304275259544177507102954941818204471698581202362595868277549836526055588105256189825224865922313011748242743218042737205778723124690279897936284025421370760793502282366243777543100794549787128913172089874567243921670272171584773601478860608765733215041352121314704703122971877571688073186303904658889047050636787355335907003389907138987180920099036106125790651077585932533037883234802890319192241864277782846429921233920320360319300137245370282826902486572464842563720209672298329195103975088735321369485215534190312936249477518408850942914432116902344746200608600141648587974924183594160955523190853006203540623908840957716076924957841663394959698784084838727457566725681656431809859607912155377596145431588221501005140419255619109643863551900013195739647831977529242676229451117906487235332778220365839229932674548840670366825208018284294160558193359478762491858382785137875891132400778052836558677469513127176510440751102582376675444492988566683880175539980761152047181871159956042389763682745329922459101748208361316962898731892036228868451678641864651142993342547889541686203125821202191599647914189734547348384247049257066529348543077280985860608421080470167376689649169696457631314560891709466269642396924980278635016357830687391590900711647251224782260800681901017546757015137945735394605678730248770785210015769953982591691242143311134370792784386332219897295517382594006237438703004705032894716199488068606454227230926285933583943178343768578710887890431610615867175185144215191934425387770616793194355818997581676860957349080071382919572743518164095304392728265944332575872826013881817861503971581567937726293917709317389727097704797575434327994317631476184139625280541711442402627937747618151320730929500458949505519510283254665195808932821884177589503558810180091061198624348285811435420821878099995911720153800939399799174667123817061202584886934832605414830244654771913124229999920623309193108652806842113889833800751770197830325317574010811521517451052667806482927012421353257019604188690314523556182035370213793048281142470760602817850110556228701242281452813916032695038284935669295457277486537042389132423786599794485411710925488844186386173715602517271192634497126378241380069670060997053337094654804719361198049757218911006495366444219911126840897516993651234726609534080713611341263320211776436932051330507542575339948799284644509470630563921116252264118907792009146411599083825789499577028256769450376865138260594557392790819036061688313837811477095882581463968376868820698298945923511968778351813532194276891310252312415331218591349836157325681886632944469381020197344912288713563012390083539262582581645904216899969867802711607297723404261530846107428841991915767910108056125898324219158586533277395589567008201971351264378915559531729533752130493314493685453379773759334685084709506017277343574665264301739535355405649978141796512646946008864880481221003255119203675345421559514123721857134127709067727046044434346530896420288860645533990439330667101839197532011202321889746583098634170313168135049814142778643120260799637933984215347925380362594089583509487111713298227676442226020496429005011230635222463537529231743256683928482964498090936507443004084405888870580004014234705658089652712572683148832381295727513461969021365200155407261554033447726024883634950354284097666981208290402733636180060565373393028662141543566793738784469523120198827136691302357349005003510357250292520693257010083651800649319958678825036827762767327242599975949563664149335487158818010739425701269409285480991000725637623317130206965978553360579391757390720838793801987671201653466744505994674820019789706149017933006611158342327099973120472869009445976067903019198886941179080915682044995847233442938154223359489733982544098560651241781232677132302677799318485457990584163596822247121616612377898852473122195667074715502572852666101519257109353595692315396760493790377325395093540043909023832469584179930692056298514180289556080350612986272728754266702867920695744989258493915432637433630368252821216872373626935559693871427671005688034148708029175300390942920386063459960679284380696766397502635008483437272433598455373172700670574465831070452617655663782431381540863293032382938068133356390974278382575532188602281633645490213052099109822528994755139286587210873744025668036659019837988436070950792149192145142187704748232822564613321064472381977796215640205674126332009265751252610566852042197764852684324463374837490784342669827557793880170242326098223467176138790978924326777946065994166980107463267954810164762668178867229326964810474745317584876923080555010127614975910723601116850309227324797058596500217810085032613387794608405714173863585619948238747488350880901437687992918322538608625874135550767766823335072312743997154947249198377847123695109405514316530525241065838585931299298665910498130713624995646680567551833351267381115782755104950163922730823209229648741174905648045386113489468567223930035823974645207800267183897899531373929829027409774439259580470672041005989708615938492518494038060773397194463123705001059154693882383739761746441129091847637710605655275423256562885197705780150186549018828336346090438223245211211117934460242685026797723942120035102623580902939634313460894060152766997116641371403635829855983087159847297601747779785686568516068025180595143684694342117588511683832663291852614467104753917031356051322947972034804321840826228347070804482492474647132715052925383211031073977856902603127521061689327646807905958262620286427370204121413413406955746645285943533274595366669137031918697915733655890557543075225156655353332854240727670751718740626805426561084960849793169745960383108449670345732629514269336927375331568262600410828796705308401468440327376334470431140319383388082208479027988434125268634646096357789944421483812011987561406399924631991142480564973428892762958638565964340561304656654612771655487290503574598968539126980439727429289811133877185858116474083632716655944491439596415469270647150033373836536214910869096978465732927790224831296939183647280691408680080279525721053866035149519275109413895365528926807374697890428483817169648592749111279002461603414317327175129561978712690979723670162754492838325439539368477888373437793535510301843126710438067031614512288007724794483524525490770326792674090198379186047152323908665967980507050800697795329357451019047342851772683412868945020817561775104418196590241130266666128643167973179570470155817709793274155746721174013070437741188944303125642703400505801070784933565788601598969276511126795677758970733243646109309928020765159371701563141015765897345586408370071557623111387335867131503135033516272245599391891025919591685501044521263858684506396946966383017210595702419577821113327795977044963648093021938888692693124030504121901844415683319557064173027360971867262206851060738957929797233433220086156892360196122277262103779489978653259410429822394229062461823628207819141934352122937457014784713107191619748033936369450738130903918736912781805172532245869219380605596379538872537993525598794589748849598091287629397163434520317943668398863097177200206348149579299490465026002474393311835751496255927189833355433136671453386446011807577740824595643183322053678600142249296076691168000864688682846735160851766119267124669139843853519813664654750773576822470341987993578326453237329936893877334358410641686737275929362006772604399925872084643890693744795500010982210077225298510173158859036101601094985127585960176194084862821082399991730839613539867710300937159371740880810559322706244506957449972516667822970487658516153234159052555016778489657918822531984321797025768846910291976416971075816594887842642731849536078199324461810554921820526741949602481776881991314237173140687074244381064713332218359101893585326388799410514229515370644534567162743661075446605339975989633406278647292669123321489440476031931865979590842517704616562736291157138772511999090563600963506363967677159217182544953617952710143505090607270358380368610381898870576617986011065682754681306010552147398582328119908796670970522117270060815861992471038184273919798068436803071450224768678408923510104006539614101672410962954911819365739735750460283558141239781485367579381852830180417110168959488890424663993779891843340098685853721413871475019699683405695425514764821706490496772078255192255859869975143512608418509905964339893734510038214660615664861760703774791835674533928055652749195564315873079978276817213112108205388155144731880761192717221899322687034004467608923341391911734493243664252288177921409552424063223492057603884309233188895818915152750333073792639630028512496718625941557784988261116059419272409970234801554019396581339430584925252209122296594449487989157859756445012084914588641805940510276336468663682386059867109852098419898633712832756471349489932859921550158466386520475357991623958707679264765052476294974599427793346626642836486583675636137373277241022418680995801003207098412515696441992602706984394109023047117883150410204607954766934297473825824567023953749635638533762681945710767613094945526351339139377389268669816191652338580218782972568067903295966767041467103460394788866546509539509529187761063908756504402276102048946406224553087139202593077923612651609217290539903254912779151365698751161613204574532807007469317247655297634110396065809071660996414933072439897159858954492263629176151988539247221901070726799430386546348924465665729263328797794506362520140563738393283905226809120645186804613103626499441395980750933009312691810786433757147856304810748243256203966008294269660560411167825548483243370562553979517890765862521781772548392812799802342710529118275714253426471254069606953472496382363515323160771191988559805289516651830873473593366786347250751413500564635933065258329050233051941028496510748282233909442440950055678692804548898838527576407018531062679949834605344783263851214533835785673752201324062534583093045575501167904795468687515015275875527448923548216031295083106604351051283113287588065925787143593535212025556059793107552345756768915266770855693924555206619555150036491498108917907764272546613512024224750615440548628911744561720751339542133408546206462493642508521445285160065376123144469539754170291507898427017887533237120877977634121760290826199275257188940857249499044291992416999337033172580065218080364901550723125057778035018199459348875465259167876792886759227535796653063591735307992056690975909838834716886695747192863183268435915962052368451012847979102839023174460893937496072183028160236079945232357427252596512759857709053741001002203964933953395407501206216282644430244154951700637307575746953002909412106094350295884402222257585535602718635739476341412185342044697643270731020371655147890414610492361255399207206214098099457105250233345606419075899492057694890420526250888946369104683460471135276676439548999670167293662642161536427115817973646350782414992637186684335581125575716748946057924853941128614285655869892005306300401219810211378619403783182325453279797590796551291719846595073339142648950411485881748725077605842962791117359673752495798410591015217098012085423908958165850822501121326626928339318121388135573547621597475421485767074031804915056452839985649565470693049155521592066472996041187121231675157637674970080045771308889489293024269509966475494014006132013534551935656159311000809592707089689477544414799431583615109580145226514609473686585696085941786532072093196708674167660723347726204722079040555238587508108375866525260181564765685280546078735597229269856379875411868758107578736794874853133656431234166541459103609955221655381755240054743592548895985783250231364690750636065224343084975094381040664739637078891846854063921099196237652373176533990001504260455735532213760736482087126573176489834359020973028537378444879580398183310833721275258691519722452628888226932426871574841291738380048314201831913159252993985896900394011235247959616402906733562686911712612372524638740870960532122787716045204620789843887206692907420742685992417874047761348642021329398264126426099194980933801381740275700651086280236642362250550362410392842955519571626375469569667126035739018594056513422470056781256803940688986260167421009397858952899618519580348755772402390739556342346727469345600039705326032796036987952946573638669221748002021958017708094672028654823218257186091319048524926070663712894805857468468278346759847489759108154461523514287686294864613904273621675261838101548659955916336938261210081478063792830258314816567706279104151469431370660114978043847529117212461412959173802734127623291807275173493391644968400569819766134996652327345744006936549097003996228868915779732873812888215524124164242851275370290144618583652081575790230915124010185807660795908571077100360029522577789827475283847343978617785756157184330776955930456192648440415418507480406311515518119607341435278726808602136950355250516585512350065225768809496991187809608486024108677278460495367475590351497410319851903786734633903018469776632703632623007331916943632987958968734246828454985831825157013346304773065692085751050935774053195305707636486237133653194768061495654647306964932084562219831705975634447209629551435853693656134676829902140013044857380002311974848530366155587690214985299971063597409853832412665832146289980923130261274698401181847279581949317344078370764143313856095316021140812173879313884503243262140701716032157472661351254065154802875224103722252939430905755270600921235880357252288214083618257318676655406542941028790632256364170554706112300439725844552212146476233767638921634618998936350529404687819934850744369690936567489468668757910718044484877498082933433191182283596290482548370623820435574489511168653077771707320948521450987720232933049312224677301927354184573464958743498610706088342850047719223971117109670409126047674653132925948260723230160828265770040251188246358207085834646517270139026934952126230284426577571885467248952743643504135030147850335211722213106378169050495940709269081210118149952565050998027153622688799241373388263528224434770067541735006252098178631881821668565668685534858254216563950392893116417078513569790631659655374245337829953345164620152131710282740140612191317290284286240275941069010072048107731203654153871166319113700268583302175118625548755788213808920207591999095922770331746544816127411454993503034855372936662997567439075931779065753900495726802293867036639794079329170201240836044242986972244354358279043847400604164080980238170737153212302772471463799490661655508963918130437966694204417069511996290857809643224232711214809924180662156081962036143814066362273963572117666746699191985987556783248502579939521196628682252213681949428368233164033774503590651806524529832780230369534337591325957436286293040605117804953050089691591224356330356851022506323058766631777070516699209952651652099437552558686452359971641123648099155773340018901819291576827453523835012206006981822959939089540384967875530849036056828892484997770301099587532665127231013994987567899521767133254945659804240121303295151035413810764849811907638642062000387632632355419127519225458960554076099233487140526996312906508936448769850680547934116479661878501440462656188137948352973625402091985113722146801032373907193940314787055924263577110116898899380142170013053931931527969964713759851482059281857212593722843819426467424196724618058823653496273314290909510985175780264763513141923931292362513232004933916988225711527122178721883768401033831064523719528821992556195367942613311861979860712143136220349623900271924728800343487499377987585928373352242387639499355662790938869814636835342325146871116357695215024161565568940920620192324680108268213144738514993433238832462766349528222242740251930887409439023478020447383375526942901782530602408756716062429421859154247879334464346729931358818264446736565449806921430303777751886290985686755434346702020377204043856116693504017791773382352088712986070355307188084242568485440016793151019016470309898519912812397111168353765195378591764929189446947199380300264359565243205301422151040305118844990498805046556662971552062392819871584731359716191404305874351731526784981843192351031030371736070348413935977414971216165525828456707465171316347567538027298498913886680604667882860011738374983022773087835414423205137546303709877263434084650653264120987016172079313099794441898227468614351663180767989041988697456566229681807680875355312697449751197345693686413474949672334062899371312295920193384978702444841151078473414191401772711925325257257514996867025061045421867686097470412663703855237071097243686397219394735877780398644931037364695397822811379625371668540827190443820841594583953708391290240622778842907776254515811818188253961424375848096246858228405476653364898633381873200420416574729159685158755464982788792282169992921342034754114544506215502448163615307576688402012969435520811421436263674125630085981997069958258950908721047217639476575925401087271260963044584503960461095353216752525202051337270055388270878530225416926519629114298491021637896059665516275357186275832984394587311951669628469570655609471862352908142563696410500585449306305950258857017413191222392528971390436688794856121973820996841007629479196677009932704890970662802201552528010027246098633150729152654780262079692229675233185548365660538707144470840497767685045579108018989996131072583789339653151636537996317261542253604020475379129865296579377783339297780459002276517118960197435897424569076880220549592381605586389198950990817880340355346263415323013729935029948705525075205637722783715178769546056354955082279267905483965299778035654135652638530994338556126813079544886538095584321063166857210851383256510346648618405099251545214703300294625734129598450079046161125525692377565538697157569010519034082295858995367231507927644525510689655428635541251118310517473230503779511802715024228935326130393200997642846155812206335009838478087408355677468626018782405455669045135514747543625434943764810675178674850285573620055982815078729036672126403118022548786559793835464249734055174414328718009363337691387213217821982381711109727856363548520659804189007434431963772811051750410063923870878215490927545339589445622093262223584176064240795156755195704217662488075004832956457356446841418639237491146450807132045387713816265649184574288278175831204699806682823079030876494603985127824319540902916407799227010197572064166963746499242895831734248521321546120963807537930502398807645526045721737151117366987819958973240622328795016610851956039020766397536795240403831349992590936487058728144974241163011552140387610003610620464405321987345361634708342133043573593173185753917038041079974924284680437894014006128411810586026419865650008172937729392136649943331408593596945083792928642649656922342849654807033025533559126858518897183444678484540691528220697152224255482527039518746005949411016463179983248865121065818892173150364658686322447882594863776484691794737478017863107969166413299716957348860524218245817932655322144793900201836270310937731995232110683297618868765443462497785890631759264702073165572284743067489817687071038090009370985988704362152833768622305347559790595399478007111455952088921567265498403734967020573980432326896116370322878319194762405619439160286770788448638763702404660293792048127645327431442150143811866696985501734888063653768815465134402073992609628788795157682766815623881350176054650990177773167571591883034801044876555750724473194968231521874801241702738970535628045221962887419198261338502389268410911767268953861877945227557438728415039515717562889582820613114280862384132545508038568238488145254970027216985629339163281540268373045735777028149960927663935419673597212879358011922962187792839310813883125553511566363118597793358664478477667546764940303446952862751040710386749500609223009829639469673975034307132106856410060616881950366080166813508885604779809360998696618520039179939486367098823779253496547068575561906163527969849290950858321432931662996935707708118934950415441165949822275896084381156392238481538465523666709314460836980417637043378907964175231579937221042015963301023491249348168174001617463854695460254603492016194483747081012171790568348923115226900887521028088455071048453033578314310689876273943361349491617619612118826334217605587970884742550447354991317527896752439396869837350532959701038464903681973417072878267733518064020658382067241757148919369776173416094862109141913427642542901160235609407678293763433108900814454837279021275397973882893348341677934992425455887822122655010252378795781645812208693104133662081055216034909983850873950226440316309409536147613430976016920782385732780275727368874123200509475161146535007511872353704740137097231572149577657437187547474117382518833845151984378050805587280870605476802974875607591746991621573439645372324476042134079998520457652467057353112996535195665405642244491829836914777977219931099361912588093114823280380813812817197588832871160127625244485544305240037013558097310122355529753440250305733877332055436145702348820266410733922364978484476189148090815865063312286819308086703895340083270546468579090016810995666829930050106119073608747735439062973567682343915553141040595949327693943982902630575623047706878545921615764306451396033221234546903384298338211080853064232706001783317468388312692447564195999336339706340238293937921748349582134898473980794895968109129872777821708903664103930642236419329215092469876529649909036150343817539490485523057748374955364619917613350651982311841581390683726102872564209438096181315675882794618906322508010284479030529734905569409695232502801469163861945549350621753272823254211224542132976690953120241617869705112663032048374863656679955727036690303193785237804445999160641625922041315338322216085005974564563416318502424307672453852763941423593869447573328835948799227991970784259115612342252976423889619403850985211423917281995274159842118179876506384141256922893502209009281589004362211170618201381288019738786480212354729735716710998721619445484121822172478787960115936892768916826341078726027496163423236190474330129616546383312959600499502055686399902779080473988948834306860538691684146933835104013869178070670581850733612845096203347031632450701914064990382713620696245626340368842250331699849421253549365370973394482569192598510165497203989877604645312869801070937519335113597003429914079148358620549809529675159244054154890111865250692098712044291059594293817528368187962192610136587511525617361612281698762645652830190413598718315021481399281026918501125985246884531657400586706289775694060721732367185681563426639799038022850890876060118499363329914302971358476664670740865423029571581763078931145195977388693114930434211368996016243854907041278458500409949521742781045348674637029379893443003836884980034458913446977612163471478595235651719044675142200937076369882368289912035498353477928348393185282809678053324314574519775840336066328431643485030134678219489322884294046038466250040246015143773673690546390018865413519795725808868550050921564536913611808038606670253351572775414026595502037267427492306287129727702184208269884379941325126326311126043072296846739887231418295063114940461563289953026340931758790438444275343202921178807876365085124106359201596361475612943781498134211847965497035530184503532960197341924813808844711973055757051600500332371033697461518085133206259942878543681786896241859216526679148152020852240644646370238601026186500919263482601507602085860298006350093938580812137120976835501627324866715438457084412277240039760582493316362105278124863076250667721537022168356041115785233482040627111285816206837066281220932071695312000105917918348882293473079855410598158170967302544305336662434586009136905220397029110624890824977369904548888697585633045682597801370879930550914616084024762901485506178256587833163328122148619844938206455834176200108468076021349457691041159406031178080067227268076817973721275745970063230736633266513188610313019886595410078227769175232739828726633261286587868640239913555311937093713019565354221500390904493170093788104790796391979346044669840860844964012123517687187673656069703401579081869253283447362876298479125553087527840980867443655228984965124185020053265609104538211754617858654503629655038455291819814241093050748104047817626603748158081698703994999238993512591069951570100609361832733938752781635375303648622832072193924122711435863315179056656295859228964250913868229098881328129246190666572624683330106840071515267793904882493086794421746880861710225395938718146648628146231502190449994242685991497664786322827143443766178942089227649165336541017752687776155138875899238844848800353576892923101485313133762547141001071381017088297901162781364413777448838332257034539088908216723362791263450305731102651198566202024790826724865285458271723532521906791746474668758511051261743944988177819704803914252901892336269956825505391866450819219148612486391824082798096300807015766696300040330839580106013631795074690971370709799903768944932887692438891859573517641342749198416629184387841545270775360825036956196466748204530233888003716635328522408279112692998870296632065695127420515456885200411127127078243236724915303330085803984893571588631939538639039873213563436239264163887087542750707549550007972932264202137776516519933877176966174686487637401845593968863967683940812649622046672944695924482198286157162670148034641072738386527697198291601122810653479514827899840426124225183986069821657833768426274411656533896335997295876885253340548193271541902183728082605384715571049758958579595011688848162899137878125493753373330772640165405337168253144821787387803294217861428720972821857818088147273112581238934701431971632065365720489782136695062568739972973024982397770956009055350598290754845649902054164904811311327889247358198303896728101180535108457043529366546233606183971231094216102034862261522652611207594371855582747399567061730221490424868924731799209476074809381492367126801679157701273337106797942507978163187101914171179419550648108929811975430064307832932117949700605886564596198370302992452411903820063726717484742215009058191876443027360676555450923616637686555864232175710692964759059399379875180333277439989925792087360951683152316989147771845078086410520727651219271937444629792635067588440383909223574480628545267308203831116470062929609637286222867517835628366082392096261732221380963375436198469735572057883012574612744644965141893960002270268662756791466710913948594604404552879963088167044602526367371010097759674141309007588865167056129029373277260886216465586651980115371702081988852881259276405534538985924151311650985390454400186317646956430953037234609771947467373077911414001958679644553462152971452880966985566476068108258834844110334841155929194638312371301837438848154624595610221235401078822803819504451194482725406304939757936958880091098805849617381708541662148196345665573720440632962221077828678750671040738798052328479750344391652488321206998224003606959606945948465604844472268543062526964051268378496941180488978399867652240560340325823791353281448049265068543204663137378830944074810346074480040309880622198274469856671494982381650350471101515787827707286899008669574479270154123704111989358499810231710807523070071843297705986145004348324095307351736335144283043391984210537368720317771447205290530546095111605781713953445571344856323288165612517542237877723983124520570870728692535257890571579643252118405823690804423716160377983767491687350773222963188975916218440809675936983058301086512301951166409990114968525379084857864567416272402122026323175230405503551839192035502083121186150880279810746608422389108222277236577608115287895087175149205985152726428932307912625843146994736976759619062105589506940437995986696882197717119014051809947961977594889571722484097311477835234140617641566140252965457472975543318314531413406453305113135721870428593283281215128837202994887005123423823964863145396696993436488954380148786167205849618187849761238475860596733300231858727067440974279415365774419207995586368942857741656927238288890625566262598552892235138084612816184559517497170161764178645272749145334899086618748646016320162545902059980364911479957509355623106245849088395669260550890046230658607536519979308953742443929508614820931368167512542707248680391160950562657938458354008853408573231826104398518875213827260829086286546835024495851993982355998582583161306448892512205561205502466313516045016412725351356936736152646810828192645594657616278998603439744970017636854826027827565924774176876835451281779340968866756245516483890888471473493170391056501617718899774752155195271459961681617773914227048092179456077484833479819713098286229746090332021344670096630398489612015488027597064441930348659480961163080872021444754163555681168083174007930861865341463921280820887250411212856755880410008088669874991491078149218951285914920365425871476888897778009553049165858979695931135850037383799006152915640242305132264422284226245387947700542917346416977284375512207374240974564978345607912086292461087483825393440054965297805788593985333983940190130596514460204039331131426163106982422756722015520061893288059902933913447429244502834565097921037806454085146794136372568048308547634190444140855253541397773679312633384425490502261945721444200022538325408218796355234580850117492966772169089879546378339314548908760381304976426077362085599681442886500129020740308753719772807544906782916128372455292041482136874009042043968443395317706857597740910983785076838774440303539104787056066149265183725998410427447294744589635736098944985168896794788776266289275597134874426565570916637864719707136458185813046279523488333553716865877369030301309097358333029525593251141317031879603294346134730602297737064704503214784295825664665428342873130728907360330058779745621148313924884893044000909519624097550504354792197374031038339384362500843299359806979739759107182352006742539296323814999491899355950140794117570919663876659094251816119164627965895982566661772356677387545867635666875055898795723706471571082645142619196965534731473617042841221836221314594083977827944226184024478520956767790797460645841843262593912448271880371464018332482529649337606176728782826774739812504964599415963792392597429662717838451944290944600856039654505361297016531000372447682597991796674906809252880871577262742876385734826414525565859273386043878090901719038699262644546177872833971120369224601337193265330577947202577171288590161375617411760200588035277495038956725593111921985347654892658670410299302489492419912789327974849245808759365273677390095985052004639278772251203669382428278807076155038212706562049312225721783469486214569067979186335479519603318216757635501723064205051801562177196811889332083328666874271725111723370323701386777167679911767488718070749900048100285293363245650184425358966768495822100753674857228419558463562899903733208860948140703869664600672039719195762192774551951870641442131013844066538919075453479825416639631840736076116337854043721290128709655976851006468445635559987120456669624587310256464634724260623782634562591027718825373868739029828436015974241410386282577320158069695499810271216755618694047338695644745186419400593112084935010955282062541555984190753402322776653176391703456771547337181835676462330508915485383586888923086494389739671685279821508054900896411981504933743583839360624907837472597654155344920581180161349973228539909030096560204762009794429132724969060296035937422359854679849421090665546365561776162489168925111488748217535271342527193163039982316580322268795442843106690729499520768216223196688775517574566029834634485207198134933330696715708168630235843654914270087384207750528466933908410523115073931614551362551568784577275735021285529327546783283046750445071192730138208519394703910514301650186105917505795844331740951300681724868399323078596638995155740667031533728355054181145524835784176514003332825509941784198678215522022307735909489677145483442391307916445525426496713555536695194710449083570086398140360135849657780458505373783756393511976660476779337763805970535468785485426989683651477636499678999303230118586971336506606182517050964886879255779201489507742016932214726644447688517357337452109659577478762428867280997411256589522609928349227651661601120715853577171037645198855659188451040153213626455051927493508154040881897260865183102699706378873627531415496882506140087085989601750057522388501659211803423222191112777519447802327019422878474995352621870616698090357400546343927555114511414235002319990216900384649333197145271928344290754638439304825328271345558643394833218307831424896257200611030552674707434688069436843673380034971715227662906159192217705764390300540596077538168951177230461289122183268942208413822355383556526685917332508809045518967629580580084404233390767904974235469650044733591846191070742281446998123645424693660090050306460735349601969002380554303245925076214141591711182816011218138449088304532806008281180903540570427270156560885549003977929288652371647831313981163903425900864137812918166151133330291894720501591044238887886766061055270495745877290355683245496616919061985147564470228230206194181042725163457815658912769264686271086077045206161328730612640458400060995903289127983731070218550458209864500964753370602168372552281488971729350678543668798488645794492861883688655157893561284531157643692898349251116800539084983255927603037599778880630968052727621869547549651047435516899067025012971749456063029563615959580206170924197200219507701558157108228954706422916043518291447649692312999096531174081621578677121471219789411729353527538491947394348500563290216341404516340125187988261939641057156481842224845271200432584182352788687853714918591265129579756525223238269260302341185402293470500211706605302561795534729700979471328092771460132103414088670155691535983475539809993194455301471723784888107413897182871573567423913739401779683065556785355563998517957562050248261877308775800680475172525394766062359714715865892216459030891391680494534461367989568569942690904931910309945211083770865178333483041322546056539687666305091294130475658098467329311950870433918235972469044406431469259475935209651555902915193327465081662015648540277527396057618623823501603966897013424789759224311320724830266804249917482231861915613606835711813439154944485444963350436743163387343206925996038221390776615112086563112017060139992382779830858312780417209266277548919499015663825415343528841477368848694084229288802595044871614661973213210649620166257595959634656182423507395095103454024145631050875950255407476281491891359110982862995710476185200162959834309305384951145178023758434882201380956036340146979338701293613713908766025534002800529107871410051873970277389867796993241676968566362279789938119734985666000008162279927673566256951416372805105090377364422522104920713050431985195784978421855509366289030876599907705268813428863095765181102098851991602848218532062317834762155472513568009381346630658702845366538081858582636239119428783792844664908448997796282646451049030695516200745532484514366414550759987271629032870830598273916929727283286060023415213780362464292058146721174391656497424809472698276477991847713706799909407867654842670593717311939752040451734280744989721792921561340472410378250503744204814254982475622011245646559211891065814407231979127690153403568618726236788592810934541145427879521981802306419372247601190025230612095116868525123485399781465157103027959497117006598919904449815532270644650859189231681088257590538256952362777329245394444629102421521863278698766139600775226100861904026356180226954224759540214164603273322570312835649848716673776383501011591996598170877825411841693192051826059057571776503120576061744430426145823133355163267457134684812559174493947053650359003138886811623059358346568910386235215416182415508617572185433972734802208271592311494785626385568318957196588355669452035854292093160241066029258234852909451066376824633245010128032727389991377809958939652338886793383876415381857373664424601772498636308724166016587072134672693921891577331546041448755516243174298343401497581662173718788823045715750046548384820141484659942729580782197760885304947957204519397587653864960307976046921470308597447940969256831780369296587610070418337037087604897522169499336283026036457891871738284937793637602459837165307009508032634634019607264363615677597424309859499307416814547480361331101019150493311228375654009148297819204592625123512725792379414838051569260130041703357190553093431052710951578695730231193856079743251535572658335419890222037864020715859920287053386608919794527088036792152122114390542181097003656356506676062438010487188225905738809658911114638143855745580585561648438028223947948143557488722709644610086951930720299574288993243342389523109194969075667860673046928910758071936365013756470682947587805109808629457790401623320094860396730002572381651867142979064351825656422365581025684972585509592672699840067889556403250765577428536569403392221021384468036354314280044038748682731631195522665647654300230905491139820505556658281854693562938964020793857344202314642306726494978984534568780741525336562079430697071712658234893127030183064063448517500898187850251664573010016520284627254928224823977859020891176422796219389939486049949556364003178916379083183455548023783280609053010376420893639447185036249073652245175236263672155617150675932145689483783045757447918853464483194044470289559901927373136592820121827940352713391412418288672877292926327393393504399676427001683920341925193424414228495567933749531255817001305344869726136547617023189992738725183710350525380624401896568175104816039797870971143991524253816269164243874981067439436809221438108163093184501885215628604152333197021749124787956339507162321745006566645171118408996806397577448278376525097257266598686548043140122552377784402705973184850836417564877581513901997858308882859274674668366768608589907447874401551593423337060885105242386265853874531433511782242865825008082002163330482488339808255770751905045624802052349058402817346915960409169110956798397688946677817919060452474100830537374419122076846256286418484368974580391498509220484905131982742877785914841494053518753193552054848588898622173143481332066590560067082002492131690386212144992694829772321244021903663278029060041740298063925417192517031427578260095404973625845487141912549591671175927689326204963740044410898266428948899557364034513834845978775842483221904607502632817443194018419784940433377630580426333276406790203975447367994260899861264400602783521667965284065222516094008211230605769830167360830395613808226712996385815333591007219553034664860117721476506093071946970023472643371691926243426959730581323035557597665586773337012768214921656964623037964251598205463483766652391904591326938140801422917138685247143970476576969498065955889536636037496956398009379901073081651021912164949823907693362413134404256967871394446898470483665729786372167274931680014304105267393463942477343388104000228767671286663159529168389386372720282784280873070854462080115391593549579971931518203770149221923041629538262302877622531306196267379647458721480096677384854541652917504015064883100812977899843191588066471242537769286538401672920251738995478939256071663792468013264078204202015443239926727831355655917788741112497725729675708243117565099104861754554154231426511801378723281307972796486481422357489105619413056706725921492159147525559645459450877218547542638625108121632337365626982210532351157380046586094391207952134268739391226377328160054409991813289254257326774249390216299929937132936550597608998173633697677265904119693711905119229865755999158259920345380367996567539307759512463398107812985852890392052482419294513542574758825977907385401985582286824436074881934762378815097002025451839119561117407710847023057414567194956026447638955323366698423431164149177425381100381435549243905334702372807157760664084383811396315942704064634455162995170366954896663809909538638413049803502380910373470143529023688804922332880622341965658580159473918959606662737286610595085883742735634367451348387186907128909520026521044290490625470527531138318400482214844384596682414118763457936206170230679946554228811205419827798135733088311756919173940885924099080649522346794980245324394498948348121619133565061515885600640459464087447656796464544248173137485719784886998464555432121520571026881418836506076597307161731756008811947487008350317067507416277258492311244717480115787835188417385863779556257331656574828001683860389426572390635672365612338982826552688350306970019149268263029703976100653488047104090537834722018471907552352396990945263857720726983594118317994517193250186820431562162553942468807485609318600139640450924306868065507411018079566675612389648768101976223655211827740740468616988399275159760221241190923498663052982076018156539078589695999403115157875311073263550574640945386146299535383633460924512885843321591381001118709851759776322088536931479470779753021394667434888675685646862336883343451756522633551810815304631734319407209001943477143120912520946632849866534119474737229553367063375589318041690378101479494891544110179557138024533282521380073023287999318279185930813377006196984863291174762688615136025389805827394119847336355202004157387939587257382520162238323881351548219340174964558896215876028823917432781495108338415724188586909992215878481553523609217738722199735603026074535230729835286216962461065290544400069687405340457831952096154707791959597694322599338881167628529319321778735845263283840659983274547292282950121018046766853235623184938078779737622419811667171460453149445584303655788233685864184616327445720888891316801518539553987169401595172112625480714250501168108892801927598834610793818324723855502013008761410912849995918708503340714217596585366359938858356743073768684797400213747425183646966797915972334954831143302671792699976019511006393980714852457192490261065422508633690165994475224200805709416497699478437244269982225786745121951645718766380899365158077710521319859529732516414940293720807158213091109770961635811152223216200182468274840199807561995226775708185035798732047319832445337983365800376412359922545622190847874225657661498835070073881724307802284544261627783615026999495516262739347183743766637541665974927599499988381413991291292235699554352574182068356776345446591358010984719539949618294502874247401521244843974008049625036453699660184375915396460027855453424309179994953056064727353107250301119807026041633604472322365538842934512428380413682011549259815633243545371431662116805983926558274871519557138279951049573655656594317746063283616445700011786292407863771026149192453383606345840085148910965811063793605626275427900525088121598882371203339917339418091954038862456216847920205619820535834813152394217272834243154955177748996576461765448099737365692040855538597775028147927657820853066737127265914987342991299040672700298871626947934059495207887817443511279501183423777573052607815005937713896669762663304933642211150213607043072059729123951745316538577496176707935750821873494119310785086907332891603551333781560358425724723008454351539862551631913995435105486325309968763830771735095677527435149339513944055571923584723476424036374908072056590511637389356471200839920485638125146985415850244510704584198403504497795619423259054602874917195447070648665642121507310939970396616417982511233581899564450195315905557537238851163271484433869254092033157388172852005285749597143986865832639411351561066291618427843683864232402571088214771452725021892959805998540164199068196003991453462034502731512682226978814658787622724424761029479544004493832924787425531010311296889541423268453423158558661700991311544143106737362488454462857684659934795567777759484596154053733178357670409837992471982215019472476076829684839268484778655782711110843116438895077423530894724135017876794330292884023368806757042591149660017940178959425220438114603172512855980749484167661841646599004228594886972615576148597303444497217658767302125913410685245495190123725185397843332318874505884342286220865757052990251139191878450453095297696176531850129982675429589059773050680664955940244227180104966283860944835217678276365041300052150855465844054422767604960723634692197430123826717652556700821390937444604418505236038652749171205974553658554893183755641150740832128323804691495818236957391666550110355847180461653691003471963910106358583991014854383301162848609441600215242334689113995700061832590612141489787177944486156004094705589359767309302100855917776262874026704866902792159804152121470096444130177227094220292219517369778054866524151389613367931709627319696600428053652499366784661661689905771919217236861975540679229930190690365184375373338707446638990408423030816470928119859670376071840384985885030338729865844086147900904572418291903994269388679901363589581211781268558754785900486953115545927090791225942269632804450036450209102194526056527097187651860557740640538609901662115737160124660883802158776257256553538039028951419874162255250393455067927579710584961233284754642885893696046902267885124194120047814738764168926190829276377141168718592066994289554266307114214900964713059373233937550604408619072868563783768193958675554829464225117410770129900441816314266708808045531689252051356739780973128120941014573444793368636851432486662071714082750100059821248046710470932520735722610883467359044139096785907959705114401679418941731972356378238942241639346839119027558732217900932487068176587607770808793980207342000259734117671687964353092560423527675832072817383056211250810929126936811268423610796294174018969482247205038538143192289982723474947247926036675593264826781872069247237558887451693127817708531608561238172957200090036835893604538304899598060642195714275585976677025197231789740803281913354186594095849502586706144852986066493858314067594648975198536873852066702065784536844094164796948684244976251294636879444946900736638652995671777886458229803892241619588797695924176272925571458886892270021026033191750052052811640152751066736622217127422805448094952731121714717353726317270288469136434230353067901037905021501348534286027763772367780828470976513111856808336288555223199943215309826872639518048073955211231030765864166962656503729382702850093080589578301894709860059873857473473765395819078510022855470277656276618410763360963578779583828382050414934270024768218295086081442316862515001913649864093036825990206455381107695033620724291234195324039160855517642810244120783555845499681631729204587436230893737632284028751329042216145705107302066008630930894662157194915638848360220462428358743602483539505960321004779590523409321689786351834584504766985219853938319536782584402034752264761868389224461246548371518108065229083627886976772608992809750421831542883412663229901840851879351488591190749368268245605632853471760103282447694259415561339070679910364745460588406698982472715764406121552167755746328229812228109434094021862573771992248746311801791322772135187177752441534813594703164300865982505105060239752179503671533089042203890670138705345059804271723762600632791541321710778820796764310026101500250959027243599041821615217128771105078133221235937917972793040644261574126684478536748575692749440558662856309875331394550626593061910899405721041351518738021230017767567295892864292475788099835065514703792795400088130094185944647113642329248385673066498608408779439721950530646214305712946889523640325564128921472408832711600216631395124684490111151134766877860921637462536657480379276875107357496893363028000058132641773695148426648036231297643975319512299577931230346973019660291586870873307904715394930215032509521581464416339340443572991805051965894487794401189857173573363085520561188700303579624300761762787856403172964359539305627901145168199118639987180970573277344303031217385514783426784207794199648257108829308002882380662290758898867978352604866966555748654009112729042234240254933680844826270995405756594897052676648764227888090183865915834785792233696282578231521832046604578300488779008215697543305792613497998446618351830232520866117558659948638236696842164952457898138821642526986432507624843895961252486779799717807662830001607889180489905109937899222854647298893682836648666635065345026783967507534504821408374770002521091560000841180529776405093478761645695619899706145690128775144220919905565690945847945965398958465710542860468594914144571532844252385691616024521007460332827413268242988217057428408683772299579956718419196222849084232747236406996819137130127938668406476864740565229256928201759640216186548153846224255063295707196903311876767463746889803486060100739659785122886412923636378501156171619359265235431507887287666433951327952470613344159292123404413136836450887775295133716033637657122055867915553025092301175207274516323393892107639046525256810959026286334193763171206296572836163131051202994533936107512190110015204027166417625017705417663798896590004460739312918988038867606363191696853665505368336098213408167241990192566453315895230978218108011723707246673367133533912588831385677248236636825530325316532508483427337105643452454590309078410662281933575928066701900750494356033992391037568987717426766010147619542269211664551324216102080593113620393559497250609434226876590723379776091842470560407935123332606587702831665873254455913685495537337933899892285271191471827399876853202248488960506386127257191621453256871277700125351191897785425424399914956877821013264857805836583127609335868940870715538270563840677677309276224010895752230032865267824189264865191133577628821727394402788439691192233564386897171326408113031562228198867346228606115015525018655061484982680959230571270489881938468012240612572124229642326578958241266301997346628037594758610115211351335217583869334890159081579056035515971236400330674305871453955411020433969246210781977673286376883509946965939092417456784944533158871278290350484039694943996328476087254675758157168636834490785286925890618520623564083164422408036178578277769577027174732599618042492781272577130917606904737048205622473357479062133680594524313106772381043816918354630873220253534843102390672551311206415958357546602233082641436491963824990136645505444122174862604338700274855162577943326543742569809531434923194047103886538173077263941189293098123080030625045153337086278321772061006156896520307173217736988171568608888134408467763418289205215301444310924812241012094753808605900396488605568212515055145300061624597032823695296372169711832765270130620823187194051612658109702551169210287625227414857713593641052939271368566667752246725861966286459804317903627999658688752018078260398804169183154568580646278412402424442032015630010484135215831942257555465020605171036905551307754926645698424406180867612639574490847666894016157219134397429093424091376291352720251767393838486380127335226087894892068852998633764208226173449298121935938711895721225574608967575883275155748228490114099501004869539238759876285436211665367861316362644969719567650937360728141947658483837772515637970090592957486116412777731919807867382057554159203439654849034037800367864113966544978916783000327833648737861930931869295761397941532567687428421937406341859105725599932768371940561209463447728120693112633644738869684739142150675572900695415001804085341968835854941530396061851365389082032422261901638151130861797582471313264951968775354427434727458465321367103257933290149910116720875017741956793822769796234960340093285792108157436783817993425428358609222088771885036172340094362379975648104163301581461618118953262491919825920222004242410198655438812232414419415343736386692981445867997119004278956716657256332374972313050969237067921893836204147345563532630225234220097612273435703505594370210437201334739272564923871138857500628688882146498559251206811492360329053419454723206355276394242492531988223409798658485103057779154596963178377312344691989052058634671629484737560824197031444016889499520333356242251991202035592216521037464901954995952947933644724455967829934768418763937801554021294360350214528410901469968613269945252454780605059915848156482305345345200727256076993894318694730712196857065973429925363895460751010513815575070641722206773488645231257075964211093566011730395872630366350015912594458893091839766086957606201713723380668027209292678094824864808995202046650720246072976254380239834688324722534924395853759921752771610813382637560256775458888732304886243288524621778876471679948135767011492267711602725511535921917438897629917724065650793229731002015832622792829930518870399452905059997930509065199171532085101326299822352635243655730322964328105939506563257517295951207827746284894714431633412588647435799104456465265721298720786571241967209344075063688521093662570953913976776919697145937706865727347082273882179566962932093870211487298482713816616349045955491315584475428333459184006531681108995855649516071546589031993758164123329104478721892501377690204662935648659964348444597570382410766010287864291582467039393044632558770328444670373434271925941760422049598325843096015013689406798565689339290038625317333654437042616072973159931553923139806818164580509208904292834926105383646340684931473323856884652741406641515703954546780699641007076885204132155071789355159856591195774512467429708369302897210521177274391992145518535639299547951338456999370631421000092652556775455115784429141270779053909877946625836052763183240892586153034899057754128301888548680014431203644130270547855213744241144857532262607635165385784031042398376515524554159509121109204095070171752706131094533396941400307094680054530132190158323327077497611248488660924142433115988000751749744503062271353577091923125527034259370068308945145360987222273537853842302662950214994371823793945459442733980515801908769126117206669980478044491883271942011889000300224621385640756873506103608198494902595904178144814344238703116987499827572811198333794138413899309241658477467956656056331148045630551458386202435567487007817281746057894944775236699323433718156093500598835035429727922404810300190017346116949129752777162101519759057553560152810729739138550588809575897949309072458191861134336146299153316617822405178413784332877240537704094171986697640767418518604676715314019150169617166304817666271960739628069253049198067320989892147685593694150790276845817893269988176827823517445353672742774226248185201776505502601547607933825316811531259168497749954563438040372673982867758867597675234577874394515681281002081546465336802103537307037717030165547254994310645717080512979436232198697486714510542852169981043157379860752601726831779670607746616416693653109521816473236032656313344266799942688130149674853330215865601357628415205822121510058850490313976314928134906835008189286657364501669696637292552652040663338366095177386572512158587799887756062780271466048074155710311253355277265045524868855260156117933710862711387422347337342853126131135912747626078980550929117722384992287558210107576823539600723339674327451747413057587886726008379049283424957372412029021839388648553769699507500247938165469986295661886381766499704771173931296075958990076697458349308456708294275478070479618429892384426590196779448472891359068545040699178546390198037128182932494259960732976303502327142575661466643285331487912975641645615840548705671265329067417098549945701271213496810091380032791116663422261631374434202017720796690594288468259871840566418281514998670476521051361535069809907226161039286370875759747528328443423139962426085703834098033724531227548397717857840391071858606684680523510601809705895301172811581402711930871607138746477552601209526332288988832536908260544309123294533102606251773297002570694466445935469522280095032750248771617805013250025141261443384533118024845778782512663893998666272562293666458384361640488066655054515529830259475479419238231624455516057379554488895315566875231921307855031727127229161200102097344466735185711562843995603033656226189167964151976974708849094248406598791610393617214983750260196935222659887802163729150565867734572168890399595653298323023409579309324218349891225208215706565485769268481870244346750793768605425808056096844578930252938691238937678242377445867762591765893903025053568129335141839962276092357801783430854448872227432751975278180230289715593556953369242470204456783566958981573956167989978373769574523226828790535939772823133272999708093428416599490306542450462962406281975777342479957715230282709347869622199117694001754627774158904786470509277348822259980702533025489460748171228180996394567736900250511129196446179292612013302560431400808520437696461956694363432335171030942832948878625128113604422352223711983862290135897011047881482085156438521955760644941930120858412370394161537094878223660868221392924057649955797597956594878061634246394599548721599616947289780503771685681809785197112111635801905465616472168878047363648146553387171371901495815545673159891724590343708194781846335908376022270556200244839269243498537915865878760361938702745268902606767271240801588209475098925215885776968101447274146715018097631620240070397421855230721425725167305201059689604670369420288655078419899427111039484780589373512258401629667749733818304142827145869529872094533688169222777210917589251985375216896868931955043963337545826845793891398582929504491399059438018330288689813188193070164305223400886120073772296272936263725945743765417696740181054394697961315433650751295224975989262015671120021610773515918021264706950229044018473884537969898061483244159737466732463876556552574375254658111932339988896621722048640433875010511342153717503498569883353242811162064793217378253466417359946448387364768049325807819818358898039548007068315711261260384466378033686338139764516725745536925760960235189157996092765041909553816248474114032593801771416058463231565141553036133094176641405633443644787783106887956822457052078081401294318516724464137567921282477411845207456646831134041645130128616071903146877810170518281919292316997727334259287744350418426759595468482204818221594296723101368096481072483872215855175100496747021064842538952573307752694195619237690594598820455851397483169623645889340768134408801988946678487909188104472655683263836645086140749606753109306734601403745263783883585551959503451919179314340681564630837864732988683279880780421479239611309634718372608276732239444103517221526750006367170015601015657956325303810454094225899366658628851071737785617483145650797089993755219246429161393007663198976304999330073080502936519760395145598322902173544154993673954017427072942213029121039621560288510280692958541286594524189282787475772662731870064165810806260355375005919335375429219416509941978011670133321223271245373158172967178282342242819571882238882863520194969965163612931143729581336768137131361423922763250112279760726617934505199737502211629810780368356364267600674256100916146285528544801631654386269484713831320453144533397801558885240722402984992977956910430766186371220100744848375433270287731689579823903011981346446239759496738485743394770011165498305739127730981192827341642968317506120784553630438318846360241021470006898751350274667713810661222537498535696075490267067413963626001569897011696725014265029402213179471039533589747515695264953034575454063782499978800342173989967442054611735683922601721109948580989235553132136526660865016423123338440641102993703893757032247579363335267452371292286360532868983374338636684773901724001479428886176888675924021835280972845046170626010173437304134439317387948695834515734537275104425749104292619256273243461492761607808508501619560542109560464972168393432592464337751407988701836239666857535400194688341242909197348164709289484234785975019449186318820446146302816617218140608870861649476526890361131316930490229249948436829006316073748689624660536407960052642955384122785756433948304671884645024845871117813277474888841091346816496320662169093801108882179372244157912386408841577999811967272487584586736490976241111475301142027929541843035619345460773772962580898602356177072542535220803414595828198167868418912237247820895868242778008690195316531156026532683236119265774637256883994757578110305602942688699818154737423473903694006571166437053108533803586315003575946655663003403576535275565771345859027924158260942800828035686039294161733566973941947596713570823099024424129317392481395444817849903931517264770250113804588149843319460334149466639326281351785195332179400216565005663793516110904751443422707827765144579350849819350937847516359441307417395534258801866721493872210157869113330136318030966484362590661033571561805319696616272487255184563914151491018610476014609630479702939588033127102191781732045964775550094302758950078847497760350272547160121969265813626959930702345422405586805841973855070471404940848331054594984228839195534806852379350860006009490858097084598000372805271018177554238891599274416472727418947578385829631892430509881836669181468250069337762283248640311434605493099971849756723000702791997906223283094281699584289267699752332887665365103943912072286157997565055943876445452285200037565685735725190221070914941552750898326128255852512289979522432850351856317436972139406333078046524246325138593098079141526893667850232188758128892345712016815572265845438285541393923285652489242385419892940799630633367380032174774486055459066990679535785171362859740918269584796380836155778241544472764181536492218311514857665622892224395506378680778397059384762178650097015810315063537770374518462936135337187264532492154850275924702254857882541057408814686310447337569927747565460361419002568576036137456494066295338295526855887122843651174180339165784880847216044730203771849823669871999435189661466233248263447223748997686820503155059904206383593112665777447237933083363906034686093131207091248612806113658867996651282498081518870911980092581607807170001810887945080887213172659987661096670765564261072733624021444797385759403472212784028799058500615758105406837301271009952083458227043140290075770207920485983552818979067442278835493807403156098671060476893029420458885997491694452347178017534977735044366606328892103696137956001302776816720106448745928989335168332431430935889536611434900681657396385696913202552281221707367342983259666469310373034350171569038855747057404285189844731178480414687111044144160565441381317034118520085830989914540868265072113907928073005241034775770362936470694999365738468784803660554693893896396401763801917996775440339902826261602066876446765128052789386136958481708056633908614081691202423978527372476647512519488969861235002816385294834430696761029731386765117093547062181520809651057567708826919923020256488338978477571351554867278419992493498285777407845329843276986178333350631643118361283059008323848122874311650622651203728252512774138651365066859581190857655059492083818825181595202345640707902132590695503375575904209908282258993798942217411567214029316321302621186303805474195076691862898160143292382541474619964858053212630707653388570719936712242026988681340178124539114032486037364093571340288128244388931117807273555984275552277927402481851196388631373183641112708093664566736805835751652013504217986303158604881761548926977884686216324798178209481637823286043884647841271728167519033284640095888698976809584367339754692862182086820257592925114463968195868581599518764233221612985351496005007437245312029608906774837366120612835892383131623505239094713134473415896183608493907875405294612510439432116797386162526206441866279233794324048204618287812055207743207272346091389522095917163312571674661000686033035314233701740084977737975013417088479816270026012468265706466786314399084085804910433077966271338035230820681241685072109877986461247138605773280776174155398778466393857091948766887498923234103329302369174528908546227986880258179936296675979831144160421614218933140784996020208143714234609759012947506876767404455557583444052337055398413144065240901268082456929171706537336000958564562174760023239554040729814030459770094326021739686808008219346237761920043030178261249317749237449539768630384338075699402130940509430844625673062160002031991671081418193903867639641341827237481812400363820835406060765238397527636488033671515871756829469600970650326521821101725240602474338768243801071733885852074402473979870386180974774905961126193241745294718613209628673477653640112000572010308527780931866012835090939696351750609848453907186682560203496994879628652697499022151327941178613785148572871624553522771543190614902354089314726204594134674551209927543638942718956448405958644596705851053545647597824753480328988359117043812201282304630715777544838206304666501314426917029904854398926393267290457951003173346084080709188804205983795134860796132517751277577184617223857452073814136369189844989519738440831236862719529112491900589367837441918635010826184148704443391219010648929729333614969309801712600831104028617922463375644729508570626503080592637026587885097438263253371077682843622644443927595415193817308322129714335196729730919669002516898482143994408314816661813836201675958388280232555877092208222975824213267296947025362927896906495882297039534209775407693920921104895373631563353425228339694077430461792475500186990964862430296109907824454704645750250342934569761342708926073482003796769595901253248351716872412651107605772434232078760231298279563327791790949344319021598310065695938302951053972336281976793361615031923730948829767195362293084216957521936130432887353303124491297027992141714336380181870136044893163900067261498771058694031117947047624379512086284439748144664720738739365612105709807591271361475084663878498059320514564930844985757861379693409673896683175566651579486359915096457893359960527157001140858227395459001598570419690286298137952981780132229914734884950570772558906621516334995924269103245752101869143776774725649416342700088337529271224045954468009733869465272588949040191190334940095899848561787252161361921270156990187941331965091970791909339298869180168323650003880708305514611750124689933300276801518303994736077373763076673730968673670444251252670078917390226657972716317770049243743657151432269026787398706787436654279038495086096098577466619970419865565884213979493533783060416892303131737191605542661366328770239190771081176697446150949019754893874782327648093014627820400939118046602316196602855398179239796431003190587913501638935250012821924856971672821333395699097116351865309094114777006499359379654701262495132711171580791940484106789207483302388200327373935440214191725896256400084214878889174173779386691096823602551186405060635106443878760322253053063675793969434847107678580213038148723270946520174334693512268672506980929918835321716872859534006467147111023032865855294580617643791997464678048261201431645072376106561607247866930111197325956757666868773355686217939545609080059552813670076435130721148813535789769436305989812806122752662664224220593583989195296711535771994043635468670657080679616289949171110456992576721266071933176618229801808614721019442444041408419208392943905777514846167685211399247834998526599177604769309043328622336502734325188609869995522594094859573987430541780370464611079101355116793731709301245172349259202566547716254556798196403768185236032411419929084533454300319869839095177964116729554839181556836585294264238704160545878526987654507539167882627482186328750727607805123046223266711738694520131464106883721017273935499035868525669655745137031827642572966150709225596903670973736184600836602616442075298861429681591772532892655311745173801232080158187610485148105004061594405726596558990073892307896938441992906542336762724895550321208524515718946599411601344138820050565705153277290347583111486956939479607147642795272204817051696561994065833115059658542022364544451844777389951485501111317251435633840749248863811419946055708787385155022464484923214759431014731915144433339904016315349724982904765570579637949465348375904170292829518627429420501664975654856156778506586643412877697608266581204639030095793164467949916262538085637672540763209220694580294051838425900183246485135473180102167789239233103077556146450755559599214442085780696402286533479418829125704971840954985833136500290203358026161804846391893050379751937327746222073353888948586679400433345426125590088636608964674217883127912716267599769601277811048997601119705428027111842922490307994488645742356778823995964487209679487181712355656497025351625306807380056308005219167857228440373171102085316909184222348796417910689206877940567642635834624679708268658374066039299681675350335950849555833200023265538965445541056844777632268928706142580164517174589513170161605910766278992394320045511779447605235315051626087286611394409833864415980397321903614037702478526290743579767718672669464197203001807728071744493754076276084061136529097733310305441688034132946726860033323528554934327505869524285385314234877670641664922189172837688448344421086782757853704673333200547896603391808639518589564129278595717534015864617726865137976483932886153785648174158663330280901234398936800103462724836106158366689362538758801259720492219069066039947182045996662425104459198901037528965264750056375821062680824745208946492004101770111584532815404749879204541680511064774891730567874454144715244818941054834768539315836357841468373105261396690425318685824107111496399914009269520759891606530791450678640249074094392841808717357316897725751390345377075219721251555448246759800481896649335569815445706090771834329165332860892838939802786658065492164237858614784811797997358692720529035038946667643348878824050586230648195360863686758754893020725729818447780277654077089074118814681774201076637970420872640115927445998734252628945410968613227781755053887807674670492900613754537897371063693115338574943965007988159656676224357418615700607380399057513285393539518435066265155473774226102832751262356650948974216631084546965324145396590672204240813627772102875056645395922022657841549718833106151762243177117286153439922100136481299060866319627234401023406182387652946454776481427484482590391874857318330497365761096310955615504995109266989177749446022323975240048261571690419107643908186354333477886220490866635351192494836951737704420331749018551590505027094626554873507628294474091228973579794938385257424431003104382724769054478565986524808299970884817584299169985206546076087039905408770498644878635669881039145016024578887984719346819928827151758581079172603030924758871216662224352682502174931380997227586350555886958563645569320629179754086919116632665185195607592726483592204685687455782797596795692182515121243643290671687990169657673071753387822281934705523944672209058769540835249744622470160235489701667271021362756505190410096512735721354589986427362112784495017534185170382142539082266439384712572378962947189214912907370007613192285220619829811136362829253752321405404435708906147188534489996839349376817248910182561090671343298390121352015340987055006019254418884400205407151087493979219073680282005929671856336074297977687249127070732132020455837490703809183429514901791654753360243166906136685157908231120025816183091310047915738019536727811559528187755803169327219805077256399246600230639569487438401617894857819909833043912442283891442425632822209959878900837718007554238118006961579478935723420228412565907329875545238675558816373100091247117287189185781222960795060224638883858882187477837126778686856341091453283785606972669111942462308204735152196109869841335382946680259751033133981240898784134049957200526005372940369830804334165894734447060724143127586532468397682363702417101606200661174791952464389628756116885762977702877253398720429433872982564159058394067739875652128080801882370723381634549348427841660732558626536742815526478746349828269387678658671441413712485616751768734713710378541261321151842502393836783505169839072378546329693676779537597893272310883961889741415677120266354968263185786615870422797511732974605757883642280507716534002606288814064277298294035329396399844243296885644526040670804164415540474425987003352005830419425481692749371986401582376556884847335840832093661432209008935484535050745801776512802113157788185173526241549191145437940723097242638271361167223276650973264336646020181992118139461110532162699983894221932688535566579492411843560729439813293087689084803792876605743860807611992583360539061692220949696215794925206531971497272100164379721863379445340984612685723876172509833300205498636155536687400479410259326327724254014490382160157889212094553676364451287312768723039034466189577127464255660598010756219233066928563635088093797356981870944926245654099291965352695800941670649718258813240534894706664500305345838589412998997505210745399851617712556763533214437452733653162640297977130587194403577193108942448983467999474221250547958777382233883324162401250653533255758430454787312272479757796586109770520731726557560728703049632651000195471689145970160353743458966503351884723958304990300078772152546560542126195891172822250887243750782666862155937700944510900252604691533065034840508531815770340426167082025652566416682985945327738071671795025016178840531063624710968724562550958369625222383286614009952366025423321278286607890090425212930152722857694083019032115179095704989529093495997584898031965452927949627578314365290154783181826967434171704948589650299103125595897044590056526429029095918808898099180443587489088365682383767217604067708627453577782053147006085466456735888238624414929079352280280572182892784975214978832747632131750094226488426628569532986121310490787571211628333045724436667585758861089268312539851443911438372802885904444074317217177390546028044500700409320573088760658308620063007454349886324532071310755630992650323385718458910997475573835155898276233519092531758154362971233365576819693839197832587924975472576673796096970783874116256216706060078722288516694233085611036933241211703167539153266130987581816114404987856240526662317836601071914556922382875222371323977993474182178048580230976691011803834007972083398247700069200461265631542754241559633088453154366291879075806957366380911516005564681924589236846700343937783620292352589137683322652670730773580111691330848880779143384954464455760794371371962949298271186839194022821579428224145291412788895000805745793925647354792027011638753367726220452866574578578710597059280056354995757713757504987184449784309729443912726055818604337870490926214735042444491902817394908484914846982056362631171596684929246714973587061121781474970091312612051133656159558749729288484172697438629051040249050239249647292349628515770510217434516540815244421721408001306745001874284705195897848010452697838308249939682197060545971491676574964589984469355316892699970495186733015364577553066672305487066932281017867298810764738069916328620680060741398861419670097489928862392078902528388175390528510923128237630582432781391422706882171616775965990392654224821254595799945575570364806370712019451497117138602637205943795645743411724250244744594298895121871028625059928796833193084547458885926487287856597407392098206571483143160939494463014167842845354423928077856872978389557895378182070575303249162247571239767696682902190195751677092948059370284005492199025255697928425358962895092707432447691419013075142651714653685636544299962498566902078627555864153652375875720138795372138737614082361119094174731627038622506792976967931177557982897396935883598722660821220217811265643234116740917752331091306124158320405186801014211198417236637349208343115073790877381632115564962746899681643423074848411834520946914876159108165160224096063507196202663744251848472542377445457726811384957285380211718521982245456427856737309692737635080244875929513360214765857915366451041889220689927790477910516558092266581092875152022502932699690550773272313698715445352863210871012670868477921307234109253588999961754112649490253214463291625471152524753934521636297608448032575879257236684518700548393447952076066651217389936990667444185810878718119974201229246896168053516377979981914956060855832011954922457246611726864045614548278440351784606689714204976444059067657114182217143345898414609724831288151153410294501292519014020405551013494308221126690262088920980640853371120842575259605594306636668109587401700307822251917118913403196132590769746197323109603450425559895195508623384987830467608192494489009817927750744022695066250946041434402096158885481484918640347473042731705273376730693847774007466077056212547394251581648440697312863256673964040544970661970218061404351364940985934222135396194065392843993496460356612336757062988045194487604471950699699133306261264901703295028912957400214778617759756680171061116443161845073282906868230679253751764152896097959930696510800250201061599620177859004237197588604529644774872342713684274373331129311357178446357134677878607348929883240041640472078155399711444747620026538513640819640265930909629885336311004810021904604995264341605757634648561196887563391018822833562507582458494747647858367549083549840733146073318827099615616465322923972048058836556571239024992214613259365853488280086684947466099510238175863364700204568618796979025749114588153855582611471122139765466925133534929235285789839242342076554938111636552411203182038987132846135151038789149009989284756731555246749631914123475351286650967328346097506012228822663409315565639770513979027368085735253975102178367438588663194972110487798490793768759291110553382545587719469169983089459842838850853960295828029187865801672799478014068858857715355092798576236978561439914300262730032062505040167217592303765434140978882657435831944875542863531659829305370187814717455684436429876844399726397656866220540275164616761472578641135736646606022649050208650775230083818106221033215190769786424865716753967514891172125672951512900288788636752871201855712055488786497964558479784066655341304715537361592261022920122768837972051036277900452241597145215557847379466617113617180687460278692055839936278661529401568091966018660502798188854447645019959613978286852333996074378056207191330065901279999811979429306101759063033407419157168677779089888966159922066156957786371971684096869677730192034567451566032802151125723222116348710531461389633040199506756754717533211330919338331970337578853301033909666452621267000280756086369542619591830943044587302468232747017850969397673073720395002032101602995591713116023240840885481020599753611063377845211504525420552693277883086251398185420657529984709767880133893008841951103858791822615060012446615781567924463444512317302694150427511787681331914287322341029740189385797738688849399280914968296230899739574001044962570217810431973208209078198311980721940480594265898066218723403284840099508811498056542733497082554544135889860794135199960230221710347123014149587560936748475052393301555531276624015262765588354323990191165914128696817164662607880962350197307007219519408310707161526047112473230064671724839092544142194320953912471071612734056376912351635732517305786228825457924476848270985843909185022455126971334418650926940244511363186844718496285717946876383140270348924064491794073495736789804207466167942171559676243946404692385581873251573686527136542344989877850146580281073098558654430985916995418689952699598143734076925225613069606959163802145192383743741046303891562366154889532659038049692626740362518759281484734180916612920880637305339353033481796248873399324480332478901150287962609714755260483501827028470578942726065833163604556639662478929826163983390920703499853081745339404273381533526119217238657869911317805411670735577815699816002058742174186981008846543930374302044875398066149073523639757199116256808446320264967605183807257771796671718853006976376560831629137580882178056341575794920769440507474527831436492698300691278140983424305400639130070526993339010431391636512306297372751632220060383536770354491177287164838183454739535173346458515953582181710310982916291463449490471080328282588596609302778378026626102808049632365115883898491439624679868562188457609718956372101397856930504770148113183348899090503670064065900761483001187491356912320206128236838318308211871165242811879587770916932116170348895006469520667217927002841663424376958317719147977628584783688228286979049017293090965088871853901535884281497470285280894808111549647665512416846155856575679304704591585327703684884269037240846172407219238223398837023874462037133228071672843722914616547426468474644324366717173348673952758155517278688077967092952884711860152301325699648655270854410233172707169159153631708933187803922350944771134046281925024843153548063242989851611287700670124200135480464942926562757464244669584905208441891565135840669349189675114720040213349118607736835859062007729819679187783502337466177401229700091943190293386012740407575961414375839388635347661215366175966443907472726017094139342254397704150979514431078283684688248637099806025544246657820119475543664817176834137119922681934933741535062432999691808711453665842197589709583271050409227797984464350044308814881053816278124542035063201364832517135203176617277731926339816267578996112034414595177783869078824184455964971679640032241153072990180021894678286119314602563940428078921646883993943757028143111712263193353828772469223476543568920698721935531455524310013668014776736249964947790924813211092846209025854875926709222190691455419133748963938726624827152072767754157688131525558640312790396196303604051186415158260337059086873470219431510278201214528591910943506848165248401928871374943075869735687290702994289260898566243203796663443858921089828113430579471534435645647939198812945640477903688560803040725793113438656128472552802585551320468954633225401783277741200164682313576272817539455970460067197214142021881024829026304520668672784091403619537086148048084487526688469065425360054247370851818671956672977067163611305894965285630064999594221616308617969361882042888800481664250147001249952399454674420556895635769610351240236759641230680660528086619984748995655715761874272122918077366223343045501413134342786540964567135517254322406794977364384217195874573939113354286147764310147336342033529662574733302360082216466002301374655612413961980111441966907392802493617194449806985360671581371588426367266622061403847817538082780172789175008304203755020756864073294289366359273869394688672441147155138566812327261009949006129426105845597508976148560031415518148191598585181131301009961082639424967776846341482011936286159334557755171156191626301149885202732822520539799775489259585536353697982581634998104956594009115755888074734546231185626536657970241556325024125994288297729910666686017846818585185235951154306282142220023517131531778470363567710571578744530874040505213300831481638525208708846452844980566606096387804677937829037638928622348675160610106992005065079450089877374471738723285317849044344178485524232920928048779647626181565490066126163458578415207830982537445715389854097485552286487522708071303724192842572418945592947002172863012848313779143237285088373396757455043183990454646630398619502820501345561637124381818389687487671761861432155694169986165125912281952439115130709507296949504381491441338114918685845230213275899258354282365744786645076787764669646714589584883620068992299720815756466761125148805988312111142659793003509791012096775099024074729862796026763403881645949895621936174171993688401786738172687857610627142233934310765897256513394126054935884134285063893871913703545170165843484709680123252537496836498398828305465820197529595552059837012217023189716236252277376222564465684943905915198165331426474840112103114196748089575398945768698065045163918888011971415005423360914223003066992450144834310825796468769578061641249543242060611758215749526779705945575007061341981563616894373383536778320681048697827657137448219953835443096469357133757824742620321361734633684048194391565783513080847817050277781856194846082816637781311323136079638892217568668875519420284717243227539053240169196224795941907156419671045008225754413537611975539956200407264416759336709982626348381648542421047364038043498738939241453806365299770681065616171328342883240133582404850670483307159546263591770217213915383551293329386177945008790313775044769121844750646799815577721485633512724904108552678030411171041800613784253152954598893139102919013398507741094189723440374122201001709292842927510511070157433428568703639454064966078166328808008174921216460860652991308139662580682762327930781391129652279581455591878882126138001753768918327192617871702355503217865920453371436078923350219699600303397648236191703079162070681584268207768796312212455136980767157895867622154943396132776182763671689105476891240201514469362909929888155650789701588368160502036569193966889942287659641835988333959025731806848656914655035437428196705333667039817066845655066233544119680923308710290816954097439082666131139039647509092185827365544864057047803192781220388270399045464287798531222851452088970334682186137039779594847114132183267872385640962351891770293328549351642606807768712718210806582759891382986259815891539810313327233955529667930773176505499549523284511682723017487232038188558958723429443273769359604427565247733861857249612553343924966919915845118116967638956742769944334945689697951253632113110727151017719027043307981414632560936799861578584687320293864376761511211085839641615870898493109198193965814746840926320269393771182008799858169381635440823404017821980396888190428076181232717578315469473687873086433563897725893751462395533049614676402162124890691156973524959733880208051925218383197630634586476161806120428634859278031495523892633596375825104350266801932982496316294779341537169010804363876925631088114221749151060432075305362979407916828879720408181611609777070411145732481112020416512257523186703093336902651571639794351555903384879717044201401184662812430913401145751553619758599541710931230838306390734684759065950308761211998711322812785233292255490090443224435248902688438937769969110951863101773560224718524933421036387662610096083083056483739918208701575746214717182549790493968434016959454440125187529214279605465817981645189491836280788348950346525863094119583225819316833368585243449343735257428362033017663390069395894377511034316127354448453806586618889342857559659859105674173471219939896003875925415131254667680090997437279663355573036895056555196071841310683788864078641577965538002237465823109981536809271912187512209685589437986581742647087443684061489532651139643102331397024250939628167313890773556342997699071584349694485019743927627273585591579896517102446504500359551767924109396094647879559039156635124981141146632390089764972528444159140736026530551474900648838022476621522621087958823288485830788768822126752774850252296332384232184887524820894583222103899144454888977869430568647132263974667696518975780934734817564621992493021391071696159153132417071465416142158792181234925263538508100399254103930991243195495727576923341654952368939031914981194996893616400420991287279954007100105060907992176951977790144601522024706792749931687579519129608512654412486604272034445308443774870874034028950843989829602844630538182511388212370585349484008707743702469934134296552431724049299059876670687938788222390280017804279392619525221874240902943359960569045253133909113948668431975424707241924207132668721975212849192797966952324834728106028433906187547760542796034480894506036394879349232877930572829926753347303286500670717271980312113086272260339424074596466293543043428115869550610020406615137837172222225752017014210681087951757380935598142261258286092959702236889017536433312234784998851110286005335493441769353696084950775700160981832405351678653250537717600557754284641692300338521950064864689570613089276716076072138897781584699655564040819898526360005148071978992535593265547040540993059486187086556693306385439681186829071446080719601285812411844704847348403501028228289645499701887884300510954268284621794245846354351242873214006934327614809066826953770681035849580055270090763337060382643143224277438566426944586537195985470466893660380560752017354664498146404269680989991750917322680997135413749476306818639771076347928166806381989999728134083045746575955207832336563989203169916467327205660487989561933657712464836979521092851215187107766699850852196248409578416108103551443214181319812471218157447968602061307626166104810051367047007972464984976720550556414688828544313597372427928278586121950269512712453263244179737253596441145844795258816703595416104139402853970144185039336970383189033236252163857034408966669454810939713250523334699219345903633566934429127250561805290795270073832733964900582411471086839018490290252080479853796730246974874723405104926912443829130587346537419145957296413652066296738991188409135362951528767941598320098482574116961093062120035874879705913614718867721581358607268688421474697075556807890349807822918394467321048978044425893769030144544869295405379789919041868421711198511902865565633540724281150192376802859508102521872111162085043382636865518423868946861321608404078002329585727870489335502031641964455890254371862261308101424162850899625938160345921009649009788475012720577330428655660235678728046907343885351034346580495006004799885384782771274574489727515253223046979463735393768294231937199602936274648022889990161368518273372074960902095022796367032645507690122161712565105816868162013049421893606196775813060441005768280490162867124538184277320719438868122916556485132489571463219324379553859312140939831268640651991089962787910256806366193767490140634428017058829379764667249560701796180085536653823645177448817248736694377083183239744719498674905640349212017060256419716404524747243608789631348618934332307753025165201361551173528758917738207262617182224958334745878490665266557138546307652109358929214959440505034638553837426620829615063147585563042477248536520673659777587024194451193712527621544933918302476913569281874241282695673173550107273100124370497719183457592487571339461398876038446745795086438636000191665912346195257302962786490701608511016854662936629166371967338777982101893195608530440538020754699219923260490587416159525369813638780606311277367977507172032390733457597425730416124922209705290284522078812141385831081980307652120359211941717039387613810477808368791001645469958996578234038358191962435439127692402668016702630813976388853700014564747574740345554950557603224857208876638824071054167204518581570791872606841296497752587615932439301693229729429116121328891062498080952591883885123235804803499576835140833744662750533307404802167439546573735819398002461363314398898737294393773927550966905006608746330820582212348030589540690686265932050859088922444342963450416349971827399319698213780324824795695841985099706122251365366373647416038534023835862248830457980495490037030366647512069982989790975944031046891867746777832503400474595113390945104993691297776657094054483142045751216951559854455615929430337460253871031201688700463410336641589756889139762058061952048847054575420358109934237579094042158376826426127072305412840461521016717571433141816694144148056339044821214482928448810460025626851277813012149206376915871428392437291498630292352387698587577102981217514494221954605711441378760288215195726198504088085017066455810455847164802509473454732781842697999229039559488587358840199500848426526713171725275991031938155224533722189970442955515847545756653353772218771358464821321158307738326421734565204204530231689825920827367602747984435636009659607111433221563244070436456116469081824840473956162239274563660942096404530262213648752899955964743565654883070547986227497479896929296480526892049813455125987651337233523425053056509551386547093904426238809511058155885278608243734873347812310590208063024037128762513073149013308434418578489513242923873420981101441819990808043999930258785495673253197289127624090071492771064402612832330518224016197492348685659002241429486144059331049731283976789576991031710369911002010390509306297496118257834116984137676678216688632768990881802499105984425691397999031376721595744097051490908518681508365866368093272192335778329677077873208932476588006676504086227713606843656954368461421750040342626654304860651532905567287462131534228136186354825862043842348912463295486900275914159735808371333298571663817121749810831004503306819658268551716443622074234176586543479311328510013973527412635646307066197881880331612065436251236986869548400443818347040957164364715816616895864342256605814210901528382790678088673181663970493852253342031332706957475159706205956554754829799217513036951911298032253520772392983066226200413641146078187586699755599093933284888404949229434450293054061090410593454080159633112269761571902955051333863168087868487873612841861228424654399266871912827683003986687674529269137765038870387984708977317502745815956219997765873043081846560799957199867557352609657673645301670824526060764951966568131855852424137572136665265385703084295780546950838734310457156994023092659299901857448513416254851346850760248200831909877982102763326756341840999817091938641150556876096147493261355869445424868495970857180266573108685655790786131979833988250534645250731412196515691407178055988872681165186666218533663548142646062365179862968888191858559056938860960122662260437765852298162648298605351906553651288894145795019650529474478677421627395125613291651945332106934947367644522836753124607122889212830520283581195756529129240963824062550776934996254670494560016275161971716263555924516397296065684566402329875154781443853844683499189551534591279346070615280375069286697123819056609289404477615021799026341545245145214251617615233653883992095268787354887811298359952996509141857351315392069926292949255550185644556877928610166308820749732059695795379755157984784115332437903653863228157374016169394148464394927416375614202371752002200917146243644905127063707007134001396934780997017949264826583414785564417886466546603609904345516481996331257347476516049439981200413326195687113870440017307786202803356924983512676078837792971280653259702911381178417451514916546195013406739615370046757496855334786348436649139282167168533430893884397693840604861860162761795527808047983886063021819888269958665674119435382377959267110618489747461585385886016380525183327194867454514034087452885565232549678250103943435394723226446332547120875211619120341673958732171426981680900609759207053624387608425045925403586963401753165167007585504840531046784152601872579216341054144681734772366116822843404673035952370578414105912988378284042632231311433535096700543729801068736917027442686483844982617445134691423003739783883103249959031370284343391089468470169044090457139569784548985943613838151914793472825509408230932674496362674764280348550026000609799320716079054472535622696247672745788068354578186982695246262790175880211209635111721697899927117991366775394966040457084293982911084159652865680896121828074810629998306456929785155616575274254873287683893556301838853555517912995683452114907189423953120052033493974141769915433853522119143021685411821873517285286498524343529925285719985882352564351056065597169142125602981309842219807174294262321017757048781254132479495479054452701539159480180500884518824209971758061059476858364431827516645800681256054601001428434786301796890381672087168567534418840798278242206198066510852271224331153851623010087348208383404238087622740911846243870673648814358501504795786666781271332151039475740694797034871081338594903931793205825440521807466610464208375669357146369073426897126590906190353168289771807962221271164770865274015049222090288471678453409276897754184643576333507156175733387359254908317755714099823076034265830238162303633044188173256993195547823965749318583033330233664708366525006277304568593842904794441789016392748995778169875983174774177087332404821819188488034441246437319438405725516345868798639383332657301788001807009778114194758026845288367507645524655292983722629275238250927157489947870916611139499117462788270263690043397435489380649509787840722488279457002594534904435609595754295273385703587646097143950263547745323548015195928486795544935088810899338646336701547376709667997802620289082850752345136178737754587783816327014869898417594208293283392321297931078974206100688391847748739987222449984073580877945035381814824298780557524033922187994910179128585778507340528944408762446813952794839202402474187269477298514499484491626528021584093486256981506796811015564816207071572741005394603764734899283409789402551097679275105676379298220387541977585020851059766872596535008222182942959956186439422115257913569054144384221363719665979844536102553612495524260468135623560306393441724370946553302241062960160517187652433888114471875178941871055334598086002220313784954037449844322138307343966201089040782249297146999580996292278853323072470450562424383682359218012874846974223458699573355191118620737062549957118107637844792515168323951093293510274740753295643650034041926651259167314830011111098268132018508276423969939252136215837317295984213892916700869601231023597328266917666878709355185060861238465031045572349815342029896179391260894603152184279606756323314879020884560353790726821439668497551401959524811770001135603689330781218249121438782837222009703620950083744490303668477576860007440399092890256290356533883846474966122402578743960371657634526219799330344894881459235392181394841323765261059462372123431154522810075495999953987331420349634776533040236849827734360343728910795137599240212673009970768883887914859109497258227139797655662479496467983694709725596645781819548790303675475643515726873519344546037112544375664122481075274743719762397649752457110741237860401009769759165879955190501372772790378887091711261878273006296296289206367202423923062916951295960582621508417739722908354136425271685792465884892987650372534732907595847011387640738196496075573359108642032923374006329832426955661191550579585684762859645242731091156795418399769288211184423210784530120380080124830971993681729601290514460390157729553039404550133075907713013390792889323595992633151987323914711478170297254810791570224591320571616134198698556884935251236090359518537615037717115644146593933197374031100694011234345232066373083539695234485075491229088146282907369369365001372941117123119983865158871578098140438842506839020738997010929135529827307393077275923642878134295862292167831313582026836263333574708115599237066141968013084390958804768462754792175237522985931311994065158426820655189879618852882739066014191777028076523036091550637773455341398132248753526177868977630620034894522493689166461098134362910844319885711377411663795853687186425531325610033127918963327300201245530159992205553153367830979642537961860909075146092905257643090066914211183639702429427379014298036907835756368511092338650373444776523341254428830622665001869974685026135255509116430691700499811818866057742590031352096278836191682842676176006285973454682452217937592163177065580646305515595586642495955156991161775099959878362201404184707317806648570370600557535768038283036739469793625169222641249654314311891058486391339712882447677720921326672003268701199852578412432711684820269385683559595258211931982581022722224314475732237108444305772803551645754510802680750456753056204543048979595702014291775041501806773007586619695145460746790326305248737349724502645011048078261723737605640989250278004784459194141859845284635365409997146505188814084358614175572700234766759960299109695241318363460830784786936122174107756494925711132360102170614291665970021376013120586181228324490135728870725502530523630577200287960168044020210209347872404078721919248033473950029279904733738936445492558247088918027049353330918246821732519088838920926861376750516322069289520302813989929234479114963332966362949943261589062623328578058313124663241917306722990332844623261211947086463413909001501045557450323639662831898921060275124664195480010119681665243038879925480665561856017485955981803652607279431573132740221536874727663962245066316690216362825417954728421674768729828020177828661746605301729521419743941454861926486795347574406030598465832805009435166786470213313918994294202684074980101498089580582505907353918990168516406546721350193562836206483973050518905849928160051109882253444811121463701983230835064643055379731628146146023386913033131204592384154030833909255698947355680848437862503928644854854116471443968529104290105445958225714840335539753201909266691939939678341592051958508844894350636186385524234944960060364263006816528620507059701299896480401240365356366042268971616414690778065868790023678798682259779260611879788999941394565157457664548870843627002127686811875306409837199411743672357724526333446919989827692404869833766313208484151650643760219476196154509526948287848116073697571852056548348760765331782850575999396559215836005226939802864156766696037423873725925374159584944348449246022147801343528535629163929863720991951469671514131955895160848652486029275350549234648489310666875511065174291728861051335700942126318036687268282155613648150572839419676922308030206402400153431667809286979940015761870258236249189082542521237800318229172966772090709702286073631825305450307243567828648637975694699824473802470061859742837983161369677859825241938133366117896313309129113300908336970431798428292304723393804562315829271338207738878112447759023302944514464782332239386636461067470263248547853375093784266708499719963784565000412239727971841244300954621386013294047966826008789238034759016031604846951158058190442133560972644155982640270238278976834688508287888543880653024926151530262798997777753122691436766911396771739001255774738393812907887962557945550226984473317841007383287567108565900231979948052265997171071541034991935415394256972177724066191651792694439808421371044685720410924880191532083595739412411733427319928319497698155805675206649759688647548394442358712000342220253649354362517871906914590901517470428656310453323078931892430729187060235393893464802897782567921845152076715172245139433256511166351335279270363227890945889795193388470799265206354157629516898595673333531372112889465568122792924310539447643241840442852427116097656558642808799390141517402560874075173842373776676141669956419840890483698388701248056936989458053543838804140447378037994737143912798357461629374628067101490302770554151195760530193192395011654580958111901239690175788311774858034033923206961488621528693444437085534656073264680392911708706839327688852961344959489338377673068071317683970517938439040914714563471652774203123817030439610137433192487425256865050533671102744011130749560376338556250756199552090161887311338495525621154109839367821137854793212581581097883545655350622111560307172533944150905695578694138692614486026220589824462254708828662231811200950188672106698812005893718466146713665742950120370989189835975173371915768599186335858630039046184985420268211221961035857301638209279082291059851430456358490198360722139174791581989460285207517630856962756728841168834360372788892833042633781337613318376915956150792879329362147452526096248094894967645278190752856498003085155435964988825485858518076293538829403740047930787600271043696510537710288569001445018815232158873821095204887093880548702585066674872053476505376722193667023175960526931639734771672647504745048505586449089776193015310390376713256164882229624698335762327114614102088504056158808910603900593946843354359522351969457242084811623236165870884788989429178284649505420668431869946637023213379200498430841349790618558721483078379270019672621321969808614140906606648981361583610287673108772986408049876519021721323389783692372051822287975985188726525531170419624398083982855151079138802229932245440281803801623975920773285512098838768909181341287398522257220767281142074095430031567149629038898983168021754047799611341838659131560246479058818293892512657856176523995069553888995270736663460631083198665900862006245839756700231795556781365780194244491229620743510899717361819067150502652198920090120481135464992775398959447312629895332943713129032899245027189089383156729528819280785719274807713813558213062869309885990206316187819099897607468858296775298371199786580818337941801292660741686924069473956288921552217707649314377145658620833172402391777704566655032959360205361013813472493104186288060230466343588129173531708923823483635618671038151585540666965773578874874498366479857237546003468845814786079950435713914497407427507795526733774950245956188533944550594785715785206503205891143868787724472430717152842332105487289722309583088783028832319578401508861965263052234404017733078305101299411016194566524204784877097233494618611143519985229070732234817085649223265575441594599388045769823321857181442612693170417466001777933539481701815080217200808898265385280951864943394204312232537915757217425574152023408738890029547873861446892496093764434403497325654051276377505221109891134888266786573619984142537995339275980836124253693524222737188172714370477982451057431407155438259670577685192631188064545990741332358681500699091729738010340710998183832057477829775220490596281107079780249556760000578263639940743458896651208830600466620324108600039556443304600715257784806686501258404504979100337189869528296966977426261602219823368807678716591203338265619063509788015635635468527926232769520395033122889659165652359800781785048489332594211369017210741995646229543160991600751791463323526699347154937830459177583581828636330538169254240998352632844895083931834778034731196045687815363082843861790525140324897458198324464029136361230524344299537136329547329264804145089459408094693032642087696266749116131458162585248846233171194595229991903390310583538694944679533033912167437857015346410238840630722723929984449833061752726083996294194488828423080011031649048093791138806706519796602271237064517823057386347043258601557599025282489110483980650678924349316036117918520480971924851925871564226226126199715311782782150995360389523798199994819182735401951287417853873494696113853571717617828562485698482794738978936478292716186897939090791881081339164402491620353192154263378396635971721346854045698686136561351813547802511220691982886308384714144717595551909521258183717448097533050565317551236807505388973225946986494340002598303032544576252786023775971682887193106644920017447831762583085150208448743468604327767457917319888790317432682686943097951605699428201754226243955665410592440945335088829861291044483297206462918462691626451924516990032232844721245739896251447157414612076926521804614666987945253804999845069101408282085575445466635158544469124400889771612567428442017419745631170190837425955390510713383344972171117566050936990905268609070714381555600148276726044480957988829878751499484081103055357693732566549284967477780511760983802935438103521932603408704535840430784971084781137809569765811285491093134157667747107923076532114768647579193352563566341604307554471602900898954353935104258356995404357690706602157815108020945027494476365620856535905706526896713587426065598060909698385491522341767607587331638613068040396829727123679515843332656071112808479997799455921473713421830574465546048223619396616198046398391194046886430986780452484458915030198332955402202847217513796668245437504867931279768935224692606590678889336761616803938396871762139431241592252524495974281051525328973389293870496614117373089860489963065316382108747778037460273962054842237649207954440770607510544727267394760987594109042229393168040868481330754677380062280121558621840351863215475157057847902333205451622887369725373735998267971282404681295485832464469711926132805999061468094715202995606614220438660022773177021057980626838752461534206977461396044092776260498007461085832058276833474633666000871973723820557559175583931390592275262448164487750377835669159772759975432576294290427247859591493481784440194286678222621815607541658115091997009529201460915624262726528415584778956713867839295126433147143783620323761811132804521415638599956922515372342026025107296048780085197986788774779074863446185793395727525423663456708568456054487413365658104858221988057779136910138007635166924277473985052001790628892602557801781325930469862501354387460737757901807740891236010079609759645996602249767709928715868536588575902819021296584928796187520355149579395185650344203987883180827429276033101373613165900710452805395976041803335216008182561329494764101385372162470777843489743062545714189281443118522989449470875518358729772111947224516327000707159212425978523107284567339777480398651328217963658795393656799385275069236021267075188207707945027964356984285822863707020354951129847939596090383714460829045987340238874174480364784841420860793996625839587343411416227691816912948940249397950106364580153261993540439009110769524912229831823108887845991815065677927842603501363793530932982019268072413685869267392667955405182615068512179799245837585898120872641516683229055796501333786072664843379964989507602251249894008318258894741599633521816325303701812327276142957431977713806202073057282652636796351125404529872813930563058986645731317049120297867496020066076473456187471167619897280960253472274256751268324479195083559897369884342019313224353477880738852671212640701936000262133223952189831991936778169716977806101397391513141392317081895238285678074634705928449553643145792568566025593553339555546550330951808252269266602922191196181597367036340304125639351755351352386894471159475635731491643737271227037420021046583693517363850304055393749484366712233650131658822541471917238919262699480134041744194662464214527574622485602825499605626543534655714421663309314520174727655731286476010164341899633764371066296760098557761400722484906681572865026606576899878580423187178291670501484813321310303537166634831569621362644482401038774202144046805132420542251788750259497511918753711819088112266172088834012098753055427728579266147677465201932897801840884279312410877262600172568716939191377482566768860424148955707499827288495460060591591896784993499533904280767149438896980415491456701461109697020249445211133565242525168112128209627548495636342586695869007876912591052430022742393695929681418831647607832820398228493842840866395415639815394837513255133131826531894095529795432964510595858303352863139718393047566329042075418379380812285834560510293190879229012201187422029295363738358876612988089417184434538094179837351991752914284963379414228261043111739144286209242468722581420624976421633716430469175510183227658596095249511469674475785315420044741418700821760341876345717093072859110700018077494114195183764904716498832391476177133692219023902621742779713278762742160830231277250901036995584390781439537024729972672116897108346142920554937746114658125573472436890712946020004998057495955245864977942907145015773472502660022197010798988541597660420960340797105118932396222619658154647749488155768057602448847716825251085997455511352886066004176326293358988852171508311258726707313224265562422368040526124396991150246599418693624842831799704972647619946480026862669092277565393799083883049545085307171844844057107013697325756560865390886636381485336058755445088699870354829096802675975216425306782513596925873260856683110760088149523714158038688766588368197925600587305866426342453139005433196699631140488728302866236202393221355476013254740859132356955614516307435596867327997354075746797774977099848252396396856181710496866488966384110522830886291737211427765030486913758993955782634799694557585378585605881690281210853205682091534974788743956957841141051273955770508754217919580068681768205347776971785374381666670036340425391860270204720378905166401686421146938808880073098435950488736004889510170337374960803543064923337444329543025729732093920622511266750543260386743838279249039188701778652547731997685146362343857250611523131634119181548381554309039772078398587491351207788057399195461639251240519500916894290094132820590668365509006803275355943650707877661235432737415871314472613117449055455990789501774317300078145947953135171232236490939979404903147425381731225745396403791335417022047693626355267194100244502279837495382854946988137205850977910298943991229829563463333798667068467670328931178712474449825364851187900490652903035297078249955020626827162143067853408792770031031384184645962147932779488183917673739465332508063586972683596341312788484308953781753850983858510177195026237006193512580724330009257097185860280875518841498667391097447915315372187709782496813441142612026060388619186813624107899897605149763543508777084577682201443882066366355662640403944575926143838130934950540017042118891837931016177299420533501784976117621813483354769623841456815555229972337307368197636496884321447232416930629957431483451581860200347424973757096613163107386519564740248349085537206634308241196619843326483021972953176437487660808376908733377728416726662046632771825591956710292053175003984984431190441307111663822016140769559074006869401458801388646212355760107479252846465295680888640412123928202461468210825643716612322752377821474449119155490455225467961223302594668636747242299973089257797739956580377451072896232364988150368731076302532088316359877830783242587675652147431137084152712291811613069847000271870743789167374972090181685186720416115442621538341037186488562290542215195370146646382132965794553964601628787163153334758463187168961140827154168620321972945388376871725153310738777555515907875725302504748923064963885560541419226869624992984875329518246515116592680684245863107995037164425572160460946848845362413008701793063213159431788291070062690036248936330519574664504865744580004674235113956021339518463030071024267617512066903618916417302129717836700013257474997441499221273625487131235420499744155577540618963707231354248798085851788138765043077285242221353011580049636084397347221439393493620651798390939342913409082561620239510483881862124174690752113173669133532274223976531138453587137266503464294474412589134746236247604125948651955693741887394402920314140980270788052726737692644257108536628786696631833426537201726752239086537271549589697709324074230275315923007802155599263093317585774394923644959102184763994413285561686455762898893408639086729681357221475195862514389663849954659456867002896831728470977331446242031291934084383097499507771783337579297901564119657208213140689837938164478815964141831705186896982600762469181935598355299398280729848413243015858009010143857039281683164013642812181879915005365708839278116024899474976401612495185676357071062506898616948948368187733473475868454255594643744083945896563633713088249777028868035634919796982496782553337085595766220318655053448588125108276237794416555024273536055182679773229762181186085904688150052461314574044285355000537812730269270291131549849294428024020794187513100560223658205025846731363671011274602581651262461855822331970218988789951104836260917199218329384407632915508166262105503194178114132414382228487036139909281358655304374167273216216914986621034004513800167385341686687875612242924747515323312625098951441768281720410369045915261058034214105189721315189553807915919775487647115355119197254372875380157085898730298971182585257767601527634501160710865299727969757443386540800584101576052199775936984477020975821324640123182873273530229619251186947431915980413257357404313969829357178431539662417867800991450269567678968695067362486311018628599632765660634521757681522263685625218230321819799988404534215572751777215258148421869612920969529782516217686447672654280507936547063897550082150022762257945105726092556267316703116550025816261027606527214340275470431008334880838230577264983572344205172804334374858245039340133474420453118282325774535935952908201943729103029130670908338309408389850643377362516768290312573428860657527154872415786301601046985545894752806570136878353998370191240238354462581196472498760416547448154968932803078255048271691306021776440614140485950178020450368555259757770248588577557897086422590408612014417421495246745395659786887912966332909689456220362946646861527310304886036760562012200608584996026050970497595623557832460523103516452855137122570436568751016846746264483995125086274507365269729773440455479756452286275820756787057400953353229659683095378325236735048792577873567003873696352881890578970874786104862863430409169063642130078980003797037534819597643811790874789034140201838698695165287527000251502275883112562648739602554763719435297420930530197603635517118063621927515894867731188636944194445069977334191406239935234915740803409240049443853230073582892814920589689261126268988911774904642063326851877074526367543397478920868420851550861699282798732015368908716753059509963504327470833848384610613948892245453254784693273529088753221329280918525860484691318664948780969007993381846262023773247073769469880715421899941455820314484775768702295387102123284318241421145582775878616285061284891962584843113699898773502768740243960268044612677784664419480843361978792853499276805402235064409580016772659017501830597460276582692412307902117231817774388663064725885588483441319583151232725238716784971066832466003545463459153206327661026572894350757071026845123584110895270609901171602327779581558895888613238623700468685218486913954136287843937515140940294748094208287171965532016879843347355724383938932259098661813401221476315350044696110079338768185906504948717381175094589503228358657588905558208381106955641275412294101652629348471061134767118054736180078216254881252983750025611711131425924922101428829388451168992159827390289578837951819780745753417506448874622635085618958754442154998433118505166729338098296622961593776593936511752941538795264842182504795517281631796495933794096636858309272235551425385432186291847347530226661249854602024986760983195072036533321100363753886997882940012004965211174723575877723841621872521919666415633740309786079282701784810212425513713357837088003510725447901321763934409242906143831051191519503412069323129000120364305505654739806154866951494976902564665345047998815664674176534773588827866946382850002123387605760591477271046337257208716004093527956743949480963334602191829583918119587155475147855019994046870339069295411323017793887620644191444311007193595356065599639987815873214847400100909249622289554410339544501925447345851085587588383196194305267999003882124753157673697381004587809010911788498270295371968691857555815107528392210908552639842615404143069127286564916514017540125339384273838196198505687541405691668447121130080926746153949690210912160532662423625248525439211474331660773760463295874016546221624417533303069974329337357434901634479605306573497888434855823745753529931379233614053446081388401233619554096907239900500501347075694233051065477326069649753295794582121935968413105853865878822023688123853338911267001981191511084997720848922401444764052108171046595192254383263260291954000622166975596547900184710512801350054706109163475812971309200300633766590417018576775746538763628943363059660543263769809874031593995965573616801828591976822084881266798317618622386906205010673677210502300277254211766882004082967540538853641058426547439889749933075124617612191774573274634818319863624666107800350513340184207182509652616209394538727562148452682734639516865936129876983022683036600754222653924327602874154021499573756233895787448458502325655125180598813533388227666302821000473462697476539826354629603268659075884777533376601144454030167667242277143422572425185189921319569551571388622934174893539289233735953129910250037835662571498029939703050392529881826322607162411905673342563826027500880003245712274506796548565184553416393820305049109292238840548315596785409960373741356484791599940383206334996233692899579930219632244624225520279548806160658650666181795281736651812244242626466325907883415911993159061447431722933310562333345550759967279816718547957363067232017532961841597656372219049259056954897677967398372271413317549924050565188388512717478009411093285293717617705836329411886265320483847522971631122484350241453583835380418489241236360821866347713951531374062476866471514334600499835910679048414804458028931748214688876210822405978815871971912197663827481249119082762482297259906276748991966546818438603150078342458396587297991046162404963844635216839454742716073926001781524367147780422102043580221437419469109579788772925776172973684503587261414638556992530354903392459123138784646331241048178545952694694597184434393544979555117283398180098268936121275494869589776557490440889726489418817885901023579824974215880657373126021332506554241215863144374351546614799501624835316602299506802156459383665505967164531072793860659484231415999822241926869713273341973744259794786837897395530965610196127914654818335043436391178105475412987550839842115900825895980844630215347889787696252866801282255973921583981014731950221265724530157081427941967382350918919002147883102047942242031649343100159688425022241150400439370837696076642647882077205093138440544548440289721595000936365557524112261166858602158085276395149838570599655435282007953360210633963150756376058659669926681409625018228039727667940951983991686480867539754681104497040912588121254607635193557443224401865856226549050424056797937011538485419193262023706414344784008945020886231460750743856902864925707017605319861517578488757457793622564848194529004504244313402315495017489040806398841938242061189980577224173586066273576446232150304115170132974670794870189845126127075193616204484606974638388006151134705282033614588888246985278108499846086385501507908693340041092760417493850044842673922654421963496957172264307843282146099036713279844540393253485815641171717361247026973987901807692325277488237489769560650906495026717568109483786717938409348763628664122397916686534801904812758374554959006723243790992875512899830833356818847946308112608468031046659621356839610973254916785830757875755270611929079433463979898116640933439863440949695397969472910452277821907840119318621529352012138527808174958893679874647807627938012571158481347796789440529225011984919366428873639897924213632728597931537102187257642853978698757156892528541572958944168595044267246555244892416127778854947253607001391635123470302304136899957287667152551818195178911047520360642412464680368441938475663198561580261438524397998712628863412084256767979527653170167895398463989718170932840028871899072773507344395029404184971123116381470368062459239787722903989400779086934692912928373104528833565823742750268134977605387450566968102935678386918951969964664863931229248407464591237145245933278807320968477336130290832976910848753567988628895715355108239827842148629561096294580217492031253106077616498273605637051012175843694911225895921988979735734058108736413641154777779310226512852532150089057850238094390067404724423878309849572231368797819232524474033385657182265521686719425214589979519921374636420892588512934978163239690002209673641609962118712428796487356164935693910864626137588634481148023382573678569678171857286688716990074016057821634629621930217793531577504327802496204291611211774327307431878942349353092871986551660309028474518263751550687851477598812982866849089011813561215889617518356656601699092260001011147896730284451938609031829523060720007483338545608596352737399912354641486824031566294972535677983340472374773589817294342670999891189373217508935728184933595337733274642663378364912707563877371725909174369375574074936915413465680507595230150909120178246449361355892111504604075965093571003170694360079698860673111198691502422962571766192982298547873308985821804058724329602490364250982752413114670124732357270614208239335080223737742657264036369935628179794763889221296426649655705637744082506577362107876344463333820677750893152511790976774223675025957610355588155705941170607019842987367985659317382667688949410006531031234043050342686896463161066614542202575004196657427928528257820228235917494545665843897087588535519441731150420541199707430203084570140938698301695032223476820877464526144313332331560294192972345508441399595495484143303803529323336737110150730940725879843643947233315109856152638804205802208850871669143569060286703253283266993871071757039992128854495065191212534028510685366017137539170857697307864264206946962285186331076894604591860347181947764901571314607250356208241184083145936798160724246760256102752384920615941969509478382467967471767788742331663911151640601706428172311441045329357813768206480441116885126976548084837276904795304663021879137434792839186350550844350441080478438094458580642983574910878254409634847450631945994106421188729434303257549444775015014091964041899396864829937465733338179177772325270995194464691503280516639113457079173181677068482218895228828833087811924392456738921420888588071033270977108565277923323392712050162482202227520277720002322019661438577101357024408738693147563642850661955310563265547793914897378699874201753443325062847418318949869334078897001795339285139263676402782485658677905247685757793697970930013402332922736146457567487843432206960795711491864562458172972752026357723845046973241217013701161013259798591133684729778504205348634868847387098163783295238151122121716532148051177826908960294215351863495949104864380232566361295779792655356568099608101766710464204540232332943127391713884387189486794692463866682000738483578303537366055409227349346121732593799235240204973273926526363117230327328988435170367972858140218220284747450851940962276438673966667151089547621245618590991511962806129319430981678070243990984682742574863602471930120199756665876321244648722485572430438152401447334290775187270951308463610450906037683835316253923642515567971757376086001241359394707933975534889670253270257906998283311697615855895611077798439083564705537363031599111676806408167020782996732377117419302238940982465997418725143395278558330465871778504468909179861328899057948616740110827536285901960924953686967557121385115951597126444353064901082107446409362327936556174088463479898073575056161057601806327384647995972412077482857701881162066194136946877813645637382480369982528172900269317717224815282062435474617492891321425677130588948873054707542512913077691474058108974371181684210165601105038276498385582402810927212676097749003813523978345644785563994873372525946149681094470719042431288923672379335301013662452900115029739353009205086035234348848784295088072160617787851165349003114715408259277839261393279454601239859443168993532396755729002618498035773747488704367961539935601889316031831105890936168251716977167577135900652238604371284776748925517447091556343362058816343603022261189008041554494983629159463514085604042215409370160003837151826313584782499668829914157861490476872571531857431531680321929311665402655870529250183627282193137421040795954911771498496349168017122437880615535525998672611014015470000097376148198448810149719634636103310175312172051868507822401544797631664566971864783969779453426927887344556321171766220511456370995842472316398295176645360253369604994466448241109435789315012550493685312010484913592146064716718928763035650324101887211544138073390927818836084510627954351766033129759033838985438381320835366585133797632505314771183028817848466055877524559217453260661678718866746748870521498763596927400649478845626138264437948444657335073878603227002916811130707756354219384855525244363453640283249307459409474353986028376530909110534921216887129025124974167087022770500180619334858089823458388492704725523731426295035310663817988845536646094559024043041607555588367493069611827831326180766722846581044952378871841666163326195227328593771221561772566279392124653315914896839114484164608424932161509003513845462948430564059681565364724099229492143436872725242961552602273802137791000188863170205326804914824453541903301969016683850172067387511417320869677816119236983543569385082591534624557957690738531285797638848391664991105742144931145966425097470889761787307502994376866245432016205311218583838175735878098809834588952701836979189202055862980680635349587434363230979874204124645819635156524513226952214042994822303443489604438614025655082843244908346655470397420034536082298518112027892163145832402911055168326633583399463676738810874266478019141996967587807918163062526535170378784900681112271566110768659806113908801140288086370192344998272111063268418513829483466073032498148908376657293069368059365474504817261225023941176450333919518051043225328821540409302088022429791186961903715174779906258935821776089617677338976261825806078324397162697026008132193059655949940088757388935545592306083401710203241786212399347090850528241505901396679483685620525858814771890866984278080362971779815178605689325494709817791613710421166119074922858702677076099415115976826757400570466121101560200737171181423088917954684792930737854729767908912046093620199776372197130250789242406925918542834137779227420185426253258312432453526699493800626460227556069146760297438558366152669074246990696448855070331087620793887972741881319188092420248108717865362823903539695580152953583863834683593190408638810987610254064899946153929713455952305887063811122453714794921715237854096967371700849921156649854327446912877700140992992266241822896388462299071603796812338800203229387451414891352558195989383166055084952910875674046572320112501646030163201998357311721349398008024654981817413164263204985289108484587183796518015032252870984278282209869712205499674894324832820932370763616186729969206539727263161418225500221212228217947937470705762028142702771287424349805504099198311651633019631388147524309008633584071960982930136022940250074638367637615246747261581026988261662243192051102207539356414626126816971623430025325072831370126192926757721526797980327904346368819807738219467905050436142059847034774254628724211262108933709677440701213486498185293272198470270123303338851039612409773660854438622238679731122032529453702794987619671361273255207665603707546428839683302610435083561627904247099151182652384842377877005338352324092244560630325777914160952933405011548549088952544045652022420002348375505556241673567749603662885622316851551855883997480777245412525132580935416441568934266972293314585322342118981623777045489923332423762431352817266963661708584440982102673213084142539930955891558400786120174231274259897821814531878158586546445779358951782054625679925056095966083466127485071566353949526933747796522573601448957823678828211028965956917218410839893764830684105568768265161025550060979645602352859824899550707845689493961724936452990907808237251570420467576499115716959363684005617078613434979446206783681619123544046145644582143744177925840880378413770106919449528699750977625604997848698999549141883052791224501412952259163728271461532215471249221457747780583008769297224641291656455055311722516038374024860882042037158509901330129496972170553183253168038043235564275670751541612458803083276445099191027202112757998132929195141436726754844306807678037120629912738497183438496055781051982701429312452774115406743838863505870573293690031748162764561181972032336912439034398461327927926090536015976384080485659921215653747749711537679778997407584103926158244088471779365023303567059244823524212768623704060090199271768364082167292156767208667215286143963855035350930901253723104612414359047631491154865920888266357703415850108996735004176584596465107908705004007496023181332780646099944531362554983038011263760154631495825790198317513642678777668541892301093005593938322762159314580869135539892998763374063878327183040841680352726605546384622586292348518534626329291566255089855520237881994847814721163883696509843905739892160198841306226465434095590459889287438419209265827257952757295319627816010563132338877489923435007790017433022706599923146079894144187478881900983829854057630498778888716708880482941035517871605367246677275029119457941780538308299627475679867793030874750987505288632242657335367563243349412884516419099937360191569993467071487066896986453367361275432439566334441449303147663379736970372421295507592919715864222272295827625821752964667700903126488743559051696966277860410273120565731606593465062119093256374922015441199726060216601539533897206573432681140104674129240910782210459583835575471422524231429611887624531262044140866612490944334197344661576157876513372196759926334342543823080789559146720719554075626968126718720420720746709397811865437960051916177390236755077985368920721678644677935154568566155231869398283627455853334292188140272904319879509450569890676152483599712105475394229092793832212170045462113793595816675115125545011091949075512248126979091709860594144268060603115128208639129072716352282394472271949089824799347503306012085411843059272802092161987120516429288919166659156531314210328975816712806957414290272871900706287202189705999512510049818469804394043469632760708208778382047710865450483157377797543947139473124081051209377935325894395800327365540732574331285635558395133053340200007602542093412214229538226926153116084935477355149942765974006834760879944117960852235898133773312053607238183537710519623190429786247427363138275784054138351368536842142129054377081227670008248295459952531453707243021538377625497481932260305813353261317437068614299854388046650262623443011468353534703369735873166201554685833400877750819699507420796611621729614002646564713294665922145750746037554657442088240963117828680098894772361982611647699179086304373663708481078136622285389173027266546717124616095797689157671573194844606955982035720168886925807618057032019189987742375241837469722144848502628326342775482792580087343680526655224200504724395610569502910613806735536514940330993059304236219020736923278194251336380987984217023326515858129488553663253069434339838722830544131540277802455566674957202609422251322368279160417116340443683056889941914703023608514541654519203052830489780123974934014649292998317511248424971296131191502747410204242606867564048643855967514129333643134487092823066816619002889995585065453917699052099433328801911453670412325368250585450631695642376537021095453448148809609788592124478494011367224406178933248257580411097982604974904486816111588961364230956986044633921218053938234147368461248843986449638077203534530549025821206501835610304639108214521908552059256186080979432818108489363832534438804846083261722927431302735579711438905691746085074258436474801062589925464481949296676051182301736542800081204260603798953085710825229377130152584486914515002136552394787675454839886428356939337126890275477674290919644051575755721694872425524063965917543248476357887939476880919788032570791232184829069589444979644567734885459484017623341190113292805153247525917057555315093709939628150436065351372409583630159670935994662742679951044321576468132817579923823133263667970092507919416798693588085836901811076376419837823344799960136181972472020773131903733254599675778351521111286316647517087900018386264526078259889667488627286751011454382193719584431589659066767161535901563735189285970060641742561037608175840757536747789124945863859113305359572466805126043965788586873449672949097731335124386742126309760517627290074122432999259735768732515953560359296054420997772738187690888719679322008092016302414285694030173008028947088680928273648218952160069608275446730697656631167708907734297631455097724436488322010216402025225057017906668714526187269026556685818530884315747939456978629504924035119114760158236056829451569096044331412609894963235370428880841122659463159774690206069780740565283705997868115927884822059873917957160904184647248411858905491725455839750966081274420517886291581399267260092481036303048123653338766517744353122630883487961605674434867981024616619932439970980223672683357625194697091158373732308693094559154436412597045962890840578546995852052133429007618416210036176292229810731431556225175987002877024738418721748901769958133618259345261138438421993655997057295536529498768799813360466608631331527487406334049549474388182563929988518048132053849640420521284794587004532562548872126184264430309539750312033331945570683492413427632195059495816246238071859741213179572424942281764208155297069607855246107663516789475077366669609251468631611806997296388427887232444698156911088319009554936323874144262699916167148743951878665181184709706951978600427489444903344055121936131935175852681596095031429133074721760009521800283770704409698077292624975950940617878717700165501801569426319279268969492859509495100944428616397261519468376397730729086904404444273839446687834357428815559016452384360260224613830772143981191261488751017332758245463680052312874370311649990155030588971856761241670397852131689191041312842492744429234722952453362585923381388103755319018901537743490089799066443408686856778421878974134324657946950599719908233008206752611584174812941984640964692082867647388158750176679398002978854158315126233994986625661458041761673449355895318321126998295264612765390211755903321630626875576762763461340940791303397865553899769592730259614626921094284333876160510413444201510103179349376678313591553670565306440313402365602252336964131120535691259270388428772946783352694286826150543571838587140398769754174387481257815202727250033654894794922200435060868893660019706671807868994824298853873947250937261387491880205749535495594346926358698800716761319711614086027993399604478893236788031584167291610409567242973049370064328506458525014452646973723754850593667136766719123197643186431277923247061304138895261513560181024490014130809969368744422564508667862717295596775300063722514253041137719589874562023148438704030820103012952072590569690867572939145580718087644022832190564225217125697203427249689637592262811115051176477847725754115711417216680830608283134074707708878919096877814111469416663195832616677763521907760985248781017632949104537495335915121368244637039725096963113765111836522921612708020746117931848510374698526338205101229468582336036756204804098955644478192597180971696914767020748209546007930819071641120797237019684688481048234378113293894980512985445355492358131302898020267388133808902520662189367339725658419234002740825651557341177314072211265165058930187543206663093827121276332128331721085028397373935044767459100921803431185585408468730562873547031818741188063150161239242504128219708871412135220063235202409583249664913119338721201225754621032144403177879774098440907429909499948977516493623398884987739559650746516672801073571809823222923800466194633579258930320182763652623003405340492699720498167982541637784242987564866651467983006949770885573640134253378530480730287637029735972148274480853046979719433589457209858578432753396593024052023955211971051380738619443626574973988089789455602955861975848978046559719740576526687490119162630418212594888077263860844734816394396488514529807630756277734060213277362366290310915744123726648066057685455985227766376724263965558430754446888773022952877375336059222266822885577584769857127479364684293596065521745208710186993102945932480597390026203504563854435901426529194557213373958857022497742555816091873928280818119576688727717788685142149869308555011548085321285944324946337791261360975293574056612062969889124302038500109126910102599876348885602886947541999537388660936039261161819190374902906744824120695446744852779451444950902468434408921185595228171133352380500970195695595325644434789451090996954219310241751244016507082437856396726971955321510215496120471238436142574934059588765018496419629299762958749004841822345190865392205096586983114428800603382946005103243952101354344174787267908104068351674113557617935273043579678436821905647665927001560186405693275676432676241065242681802373025130225665250466161307850432457923065017015413710932987815514671547824929710758527936488119694492832107502836182317244984887637334770582238817967915139844524152181962577972207029987998994893004753241870218160883209639818743864234254753822503516490615230919432317109785792489774337009302720047421792119468129935167037885052802058660667221997007455862831201557178046956555160614720277303924614121020161478496010585519802551227461587526957831124440727699525069695494772131045782521638587879166508651331652896317030568398064307670538802741487571990437763938942743809155221604387155907627219985192217022549886381468922724940356063218742309616773092465565148076997561203134146535082144838810463525183494502929037191456090535529968845032147736519139564448653994735089129357731967870674655008244410157137277623392626090426241762340809726921707244186837464820569607096671693935271141041031884328115558222624879937872261587326187775641829339213941463307126301870821584222751838035478231361164654159585497505940077728623206163690810024158203314861858428822184801411550403306829786897971496335321986873633096978197991754335630262423003211625781348755048202676690976395142644058651478304564020621067778835688111663288082792572362556740273589082391327048649190106383905517431342702285876140330414572699023542372788811929886764437132631086320062519187879038325638903947861216994152492731950993381030274835630937749899699225510327566631070182620183871033826508410450365468627198028830954066331021696095943764387160784724625489440677073115802925886386166061207725978897321835467148007345743625613187691421459065242787193854046128382402989395884555338906282016736148940393869428088123080156126891556348945428657224544292972869373113801557301790690293078551987129757693147202810746897214305342260790136965559551893903981959438893783341354544756738397995181577732929481667900423953051658291101451098139244032758910786480907281615937130681772982125208806541785741289231975384756868683864044024381811767006321357551500820879520503917774465595967167538749515943160944987391639632248511145096054638380487588967423591346127660160334002154625102883553276198181578773058026539082742991671564688787428289987632519405578545913214422379089004267524760248600708684778679748343615337385766051270985328169140106190073550694620073889633582879803340698666955834743660092482831354507783328852284379259813649279323710954930527121728423172842229121378422657242939737133431023034502068019625343284286692661512198922170827533825761238862889140707723124718666845455856519700330915583107166015285640550581401240490363629595694729462300135660344334790400583299135801312115141301142266348597731261629675602669230185473274645822324739952278283820409595053043437709651465469017514397266664919244096955520341757345018238362239795238878513234467404734152223580991703885464265878004854202429911611124669559538555039567076468094816171237578357656631529746490554952272974084543951633281344860069996152907680269073195367450913992882828657964113959263669581435788221520101861582928524977551199011580747434305572597100317814592014458762839132486749932181470960857082456986602017900122631000397480502186417598860213975151270430961964781879686754026836326624583006321807984353392828632102282170456373813882470518878725704716241626477370922495161180418646523426127927155350972435954957651070677982483454896932604340368907459375677594303029449572503342359448159329963982919670592971841285964633658500511452345419624819802480218886178050535805037227668895062574000174713735604254560658744948090325969390919436348598406970294989560915943223973705637295319305825922196927604515625153328332059807854165498482237170402899192844927121938660648010201269386663002972235655291288502456552214090202569576017719231241350977412011527877743368466877647642925697127917897176932898162722300343158937662060191092932927052851436994326678825057247692533103158408718072027924828361536165119204475680907736261385169622311041559911382482999722822585802543098378313119674537719815620238342503672996459789597091728332262398239855657383653327082093196636118873109896540721922647878552517327460534763048321975787279588226614183671512968981562710227076334103711089571369140245048607106696820096850094559991207474550929719030539311591289190142934463137228627331002439162025723178143025406313255196329674894239724773298580852526817626004096798762014642851156266865435401992882589975049158218160883707241945358272947449765888325548849129276220370864068909704666875571529043097712658897916993176033445847426287959601691039504108755922360781112832082225794770293095764879074525498354570132745259351451356134282538090112035011839392175086040724588271375651913668591373200208019792885328189100825977992349130455480772840687156830176773177334258894753649829207199877564629239902549681902701704594624101960109522726274002210902351506264331946010836351714902130048965875077102774104335627539044503385273837575686346794030909517734548585453652558723221855840986594818407331841102023465111530064959855663291985327698792228063868704097880284946729949730200606013990393218537319477537187317693621542552964849972962918338025844302042590335271197585984822455688417112599900230443712702553727555521939049007654359113288637041630828085741638538362194675735975187498671210628136922349816568974816070397545682105476302188172133252224253727226562584247364221545434770079511496735081370678530524686272611851938003382732485325634063020058027481491569284596224249267898140098507205467980579608161154646787519439188036962089060757509957080752944249248887671042067067875487221832314459113840033988609790649511912578568489272203785240804930986616228359832331583978230809020087029969860134001677404994961135212714540241181990258895459821968521503969134186660547755509478950807386962538103614920323656017308783938492839116890966416905498976692774441900891361512640701597837444721443089054607297597061494696668742147418621959473071871548551959989342674046195738934633259203410347367558241548653629233430559320423745483094706403004629278085656792973542086365248271852243984292727876183139996497838354979304215821974854092278975082581853755954272814806077898615517575974783468490887376228316370018979912817289142001230486992483976514502681022883975548241540253277838550324942451276068942101680350257925389343111061689928858635060028612297979196902323015609943516650111035528426547645322297124582869742588856957086711855596832979251277834810827508897941043071298110028624559725350326011334876679196174174471053608840086553639782844110407506865928223085990283542712249714446464199770772272637497792327256534708786489032675009015341545015908549300994928542174298464610459515508846684906590737710746792549837700664453454840168950888247566274687197848225752523997657831430958262240607822488691952929697928212296285117558955630417166345308604980353240943474976869246026200943925123093676672248939719036419372534998789918314398640568405833369024441009862447916842983134245421183741537703615419285555132158428630616923491341784526644782372154763896950445225710558192848441189594930091221295551589268255889506961373661540173890260929010026509951934128741504908302790706061874734244568790711571684866260370653880175662687047000564461807377083587435401970450247132364114662769502634505958173529460394553718435045487825025098489191553752994237562038570521941367384489886900661129514984454067431620261823738283596895217171483306837713503350883456307797360243170302149742231257562913119955112956461848406631470134856926905327936807245215384617262816035775607443633713960318338429866096982677282537243569415022408586960889136302946826954023482794532654443144763760593661833114788582114040310469746273585919342232702369732150989119090603257580078563577557723613661040269321674181844728322649239248397565356210876232415108797190842181315066523420081743566816541425941028867319105311906508089907816347553431975127045331854206418744931389350501392143500641070012018844705865549478378732575973932902741166728853372682083793607690167996169246926274185916469773509378077916071666567762963085312674448514529392276321772866933381969144593229901697188538581046730653376377866234825178052486566670771520627490528233084303888873998874301807474111236137505578822242577701031928586405217616435341834395932894847280667799770137367617252481087739306719157518766671751977127955073844045608137554703584601594435290867844544283552636671833235329316009142188685687638254926334681023067441373737842734552998275491036752122079665333784992353030331740284829899150927750592466965060226278071573797534767262969857774984744028040897968457475085444442417788505931621940903738730108157044149478450562728790911078792013815558043627788906251002014034025164599933284757280942899225122219294137772145112088693754563315456483411235191353891329432515673513918591468134281455960180796769842349515138215515866891955946258919334824681982690095745670650678474270835317260016209513139639184528570032144800829566964706524792596509230275355000738120460145589674071804721504653852284870378316284013500632400420449766698554353338288075422390112070101394586300257197969097322082168373860746333316277717906320567475660157210180654949125186199382684800666398321883342754100302937111749085660736462374033308629323102938128623038293684692081253564081499517236128677602768728310333512607525912317812078650880335784253907750598594923461235686110885972802686148670694338435025296671659008071994385000134326238789814809689573640152680867252536433931850679598860789610860950604579254719652522985879126010834166707620758996110445253037710025427006781055468337486613804182332390657639790898468820948618764637782188746950140137393540299108737836468254797801262431116841722701850173701985674555949971070602010194770864514553623290012763385798223647321447622200678890255691993996220738612147091505109618344305009011194728155481011942026884533994267495488635155601868874994851095529653840300712186742543370695508397702350833803013331289977256642406841221810586083680230134182686323145588687746418773294729456170903366680276421088775275132491197744801132464059013115263737683441363787460879833297867409908415081921924574305351845196998363683546317319725163092487616079560929496290576117777784112489888942735476276680146651715473770567851935742079685292832065478074316677411419464417163082001265566872159653475798744554744339480880989963815769194115985998572215385925256992443913039006075303184953988692152953225862376574025773232850793227973886008992920860674562566492070044458989944646455966658814287915022961401217709760329091682319777177620202402329915116264488475380748940729171922054634764250886304417028324677599091268655707882680569482667570150866433603203531140016913867992241920185819803983466655594294668386254215475272700718362738062484446816916201544318628996324488788005445286634383283080547239256039194783517736019039868441517597823024224428858988404053056685654419046978111161055502040299343501036518549505903646929304973269229692108283146682747456710308863831005237479709734146838645756425147281842883559200771284866845943950447250355834665945859630119637986104099496282215742341731356318999329612279933570820298984076275449540485808768316094987445649029155781878747916836520672004063932215341214424036707424974277294740088493355615617914524441186851835442200694166901261749740527269264345815454192309398493706873481639128228898530808649761680572415590397047028695860312368350192457464026993984393840085370511370599781459165487371199822042900462185543687737244272130738783703882284854458395331325390271570282626217445370772967351500453623957506346513309825366876276200472345995405321551068063166945813175354143990221802010930636229050771977384448664342186031038218367517862797219491869481618967754197050979832537957921268466590201091613523401016080728903652578672411020895507924429041686329736148680519420899694396161085850066945762988844773867640874898138367744126566639573304492304022305955809478208698821807108403032677823920320862119134426511777000537212416431093983383140491814905816767494042432780623721786692832460991241954122382105170553234966308871640478601670745912938416141613715105951208708507217253775927716121314880797653528494512361974421712128289763460894098556127306799029690298456452990535521667252597499405383337663219521775694300694093788260229073956841441164730075946328435890317272111575630470686178445686938934264918569227091557944292956149562863965217041687404037483451839434445676022518331604330617266500632018306552251714671240738436766777083956676533209537548984709482333241345793169749340623322708581987103347427910416610786861125488095587994679620694700537163351471379974246104626482184344877418762416951711335030184191480613919888132267772432066831995208722611838849482179522965589946666886843908098080493313195522475118884849007000053391052356643382668755957282801317674922540925632789410588871595311497162421953887146780939566234868101119463652423516220825324529727740103406061166307520507068024080445503614148681846327214817788873589571013712279335824645656739579805534243382183780523781143835864191948441415744065883265262310543590359033222232446461850931781500437882153191234792740291075073099024231754221212954670139471250521113844629856909149328023400146199781399391731858811289545550090387414127372195162741472885105553256137251808760907875883452653690532653205613185002423048645089048044523983113768031715913393850368775529586592809668563782657512128494733029949392254211753649768910711021107404227200666906359789501604288330160904819306649493512492495734354163328855373909065839448576036781656074400933014572938686622689125496567708283049487467096203739227936830293091183130513352458480985802010687973647774865983283334731033803297735583403026295035536866288454538600944183994933126981657082214715665421384691708325740121511816926720304945455724730459461884833135848790698214829338020113557397237925162276095009218681763397747837112193986487993583226010247481541448152571815661839050799251389661676985717351140942523061985387919634369025483614364277159836062871117784325310454440151066546972013216573532134315429116816291669623069869233452537738924922516202413484519442803487106941795108480326847059437137902928985424355925385634521105585858867011114355500781545134812213077289411486310462806125957882382257266588548455313185185489282974625035659210354333973660583342277171023056338826572065710227246830869322075692378308626117052553203735191667470387294718029922505539471005506291505246293285780866380534959271926195973874659115453152571945561833477127067785565214941914273524753415841187289430584840109696072692405285108461584139289664789716988243639911073808281680389797172270531711528913333728647270370959963167517151275491830849020980248205748456367345755126958797555550678356713810428020071950257998820966549082423186821117288302137889939160794396854912950662255671608810207084395682167970067673664189977926120529409212095719712067665743176326920433848821525519506408122144083867507314059137842956559039534690003493905171558286965404228493271750873714527532334409414121359775340757585176349647231561631288878327059696671405529625557618247550027155655714143267265341476588088125613438153113006737281538331419180163607290688204149657627913705351576743904817761488985174993196032468404661296522982834574108730636676917170791016214176372658703009285034788990146409080209159407342001082624963832427581889315589867609902430044073293366417284993881151204788155221552582372435862421444674501938068740934442910671320365503351344225800125427971217890482692367146589014059384185674859464304419961583566144157130447107120781091832654156276568547975697259120094632243029121112923784414461959494101090641239966477466810563049315073394130018754811163813729384437168002013899658787686846902893138554958377057890936386302621649798260813724795432742564509792163301054291461855896964585283955569132942854358528462730172250209843833788241897337344867267778865460802203594360691742520718114180244425766261412056328560225566620282812476885630391776065046139024980841930558054995730670254654070115508897878390942578647648752789504349670570161072571932980907789717427658083182967030430083610527499438736680328328197058455050185356778706478268288435562068156296931190119422142042793411087889274598091995446481523779105150492275325644894069700632147934778669067073195763843263720764148108163747046612233477588786336192609627565945700910977592753498141469639968015827425595596100859473944290414895390953339518685098580103270527485338124358319943584539387547792530328537062207129865926856452132907362986719599302369852868162743234755521020521960188938412559052342090848010268713790488779693123360079092611293560771394109664310030500191608033262055384311125819720139151928739740755563405806599921157314952856337547988957481517622256319591331152020768615129798187388867000011221156174668527448476154918998154954040038603917859877724758116630480150867767733457529152077033631152383498312683670664473337040114595145885755396460879859330989883662944145098283728581653351996719111001310706549264217317866991350572719162929271547424027922507234884732313258152126857184202212655649480326378694468756736759068923503477227887278968044069227327999840668871373571229286617793365192534117698257275940853940856998636900701224715631892020622654817517703872351120937000475325968848123349369946203646471458926450156897337680529556509541766368012372720301116431198098590345518810020989663338206361892996723756456949659169722370861363617340023430050618340339241240839384825695173726577846079557249700142966822497546680725265483719590134405218731859964613950345258313811737511564221748376958013218513994974135490018873886809619600541987361204737381222074934746763060416679043835718239354303834669536272054725145863878414774217950186571414404268743771950896179676472694420560458526747288453249413649975986582958662122050962431314929348358001605927810388066208992439427298084956359699462429115078139525030337256878957572683536415764244984029910608395511076835792260270828052375580745792663212590684365721210857174309068222341634585132429453911073624226023450156749427434947982112346952037818204609871576078496983282251107498748998359013764370238379043112573271801343214754539884720277503088439297617740067312671258050726070077894816064389293703809386465901599693079907256015316989135975110956260802268220671762094271752020487357591585823318522626474634509318404143697579009676675192202939748971985470044912377166329691517765254368090630623454068296942767933169274612425309073003472818036683671066477204440901850537981940916608625036083599737723964086764304789398773098285936491926622235329018407090333825035614969799227355405434868089065561331638312724524881260792651350614653657769535771289401150631943043502859615630651074181626314440010659868979867473071489712917503059049483578093934682081608777739142777333048220428760839933818506043944197262635695154779117050830734852280204466148561831867051509868097410032337262198942395246431431128794930752837446658844057760116290530923126832038956268246794253852535178953788993015132484029875773900403503737788887563251467610643079659129004438123738127685604482027494142372930605810095012528570661758501210253491805641348094414831833624522607948920639004996355901084696120993169684044213903050923955613393985849001153228128057639257400772200479820995475510545707038013388396597207909491344264007297059619856314117415049351502960631033675149188048567128710242865160652651964981920247180956752245185773899630880344432900758923145146071604873108771302001750265344908850117623092021461620354268184458029596428585392125799898483812638907302877438312327667596317570777500326781623125614674612417307258913356617002649597538796374382100633330258550344557871381946358560291282685227906293060239089725510541761132287631755213930394747311094713508668711771593524359521233456147938611951214976689275599683055137432897425076720277135160390658766213253909358391078163000926119381569930002514144215662577167036310548503626566248352650662590623270425391707668293810569130168606568848770601660779563766549638513720443323528372049333824372088536191898568365924352509971712206813831506347676317688955527504821107233366874808197944475080058787158784973057448788492170149867404695440161893340319433074854002519175797915675613199683475674549997776835283212594867216254888685719303969595812473981173034573957166254883030462428171213547710025169178586530467129460384634700491281430050293394660519126808424706844391864001837937751601193674877833054979722660934173499149751130769879100930983903630824511517370963398906497967324394511663034833057178718908379407448397251013636289025511434351948106108891935048065579566924299603321118395685608066915876044441711581234704457096258887939069013966055770969176349075592104721019473459750915718854139594608143244040267925959861684836171211022762110230458266141542327284237239502892026847319979753595146756290099747791813870858756247671513607894518781407362315086614723839233080992805679155234865602153000215525451597767007612841524564010238592176321386915706139156824036583893340182360028900940388781442620859531116919293241984488472440827304848130477914238772384776155849627566765100199218245092406754348671301098120480295275555269057991061878535844373884085945416896087554439384699402076052520647773516901878800954681930372062781772810625423829925143038765115554500639576830712500086439886799171390863363607829438964845536967371508087228718516845270997670618761435505119913915027085515904534650485370165333702789847947099579055076015070734120591969406317108762503312768692421259020563630883180762026276975957614132711055316044180349053875848204923890042290990447863997680052812287377616974031218836071387837080817494334814115319880391163961817282493374847586401144446211300535616054145985240002023094750349855751981645429595303055391330457613776768178297005156228245517282586666577623887451535319471705360398661299034466381099249468776773020990047608940333298868793951060365239771441397933011931712143528464563907097367821349142588539308873853662896464728238652941387667630074021728015438179273694612517516528271029014852518771722083374991355220236239515038002087653982766355696633572521715990031630383650424895619392649747315948404874685689271729688515676502148947135708676619372536701077791442016836339050071996221774388807824784282895136134048950041343597659421669273230956062308345233561418898329778444329143498468550764871363673137734514169937722087980528953243759350453396386751426344451136533617082899967155524036787040243239585638566437074293541235044236276972320130625896757837049445339380549719926464370996947335792967866935408856763382434707324637803134694271107113459535833201016961890632785233372577988563676711775078295108157613871223722418496615144220106499708179837833130257507029960946671402182136888888562714170257899875936776743587255408215317716159011699031734414659151549444813403578557679496667053670972335316253923822964682668277492162497187177801717654566751196044051272284485811042432218015047124891006871791109122310102194015575308501087955419220705722619964023520010506605243144169092403074978564075857887628115927453147265305564062594051968984296088126084974646368583077595201898347996326045663351873692031928931381001953040768408842207016224211337275034389773406930572335909144706296887616918746526998997943621465417554199541095687453473970281229069648819888384444233761978340623405187460957878231166452168190070800957055996797669947705412713412038528720013119131278287371799547898633278518284836252835253746017220108367383166801498145459394858985056602319973783952470418821694554969637273117591091536873745241612886825387209990687713718645023457176242586732106877336424100790115185217795101076098129316275257889280870175403121078788155932768262844795413967250155660976691083376232733710009120521329556017762437861006292878492687667666344103993816847571087227428550771044409567181239608046523246998341236560218278590669305647209724586976504672039657895333625473600926877571715662143421914885772290959216136208253116467810447422240527988042928052229370697876298798025095951395180668362234131080889642519297523929079309570540833914739134458734615102699185587997811926662406630193982396490372477849799741997851299108250522525737181391247084364112481929678850868653075891761711877046971792558962586296323275539145895197832010880301252770145692581874960724479890114789058349563662123765811563748660392186502000742563488183626374641643139696872264017390292831213391967034690021714836793207576042229567069363269300280463964809213403317217597619662087478986382443638386296887546137712597833973136789622675193913100839874834581056676660571442814892518557601730159420518201639473871909021096528772071997143901802072037697351434400462664183215050036814032017675225328279673474928705924363932736698435112162090745077794210843508983805185236175168883457868825131962399053586579157114063676122699898110065326678755178562432574832333166266500728880732485376882680938416998294531643982490862658720534426630574255436291046228126165743037307767703198942724633377393305689721629422520364217165820662338862155877858744506642528405676696956460003884499552320354772035800312121797127420777888178047664816297705942784519382530021259300845519511864368836463851194765550327822640928850517579716211399431879900868708015904769806007607107506037379723475605616694451614108335436614242354830688766257908174522886493017115462451592999819241442373725261379967962822730573516397174206310370755589187897317875819816229633621707056096815855774422260470884644775403352033061354199135753480614900594820879081376294585382553138963135101026388228327014158846368915548497519836807195023196217503204091327004957026211126365259229413870181302956079841926941100395490869658736463692165570919510707276149812955979973777944301780060621019536404349194436757990016364312078801738719485555040846846746472483511344578606819104465079841819080621943127622071612171666058078799868152859532449226278785642072952272821084097837103993998107307457165403266132790311025373352349263326466014800179013545691849075409471593619542312037518018509587322504638131346318528972291241741717827818717697782842894071084258931776299164372497405236777943187552135219870176982961085744116252769738060375621909514147249523123518206207502987508895372079303345817739813137728523723523209047249373023234662022961898047004898754726789953000073129790346269498789651333077062340422211005982070379538493635118736052173774071044902354967955619082870357687992796476885997679927555296708277145364303823437056997669029393597871642342321744611770900946737051776718025234835062751439611459087948788070180919163456340611516423570885690146583366884450382179663207614784692653848361043092221814121436866612690564059861019411140337320436864200975030079556141859134881285410912054602277660134275316513071159241036029121310641106263282767343751114677788195054878747723152537557557562302043513745242984926561615934053787949843477013115609927766453078122466054287657114704871221113717865068102052425215790001823840220901982089157162514133769163228812271271568841071787439660071669089497686294664884563370921001688954526098537275935025544410650170858585254953128493862376843236928418180745062016006755077409522635022175285327270367614820970416160519516228108312234909815521575302511147663478792578232673753355345691272274786571950138725088854848543345770298058318237109770175571307207686038392704393297499572126092325190495830606405318846119498695218223578667267637849164855584344643680350941253553005244050460664794022656188501564774782478400438019004176872142942017763911545072502011361478064134865084974436609350856557236925781426697397409116208826907981045475019570365316464566857760588256794644209425810861469673776382088462426844740478997766780082043781690631440413932022691081727838185240537750865451161298010599657168695826033660334129240195531167348208715758950352967312840849621037563645347601850570680606586791101286824264842291506083080425139815517413114158248510186306146537481217168518778058212700316142545361232686717457075640531886009751450079823510416585145322537395940701859752256348747159336648243456276152149636051946112500337216911581043127860407212272220615353493749885277617066977462221625538536811745880529585249345012573671787482235989048184612541561457368662128440411917685988447396128426609240623847699435694252206223259094761547665189675732406388578239918309373433819947714022302395107862831372008149290163990983463996343115598108253821780759291985210215806825846584636786017754914456506637755081632670430223800583063320717576073797132493101634216189671039270474352209838353939732013011080307783294018279261166862755578034735230102220136301440066883170890065582047439810330306476434615311421392580680861963510034802256964824991149240615563197488048111629418755072091787303504300371647938260139688432863889176036060946674405793759120809247518391432720873860576329268067521078616473771207587025383784558830237448299500540168210626879191160620398441911896375168043424264893522212791046685291890837277293641188054165550822319587043880209135095490941753552171212697230851486930932555504267576873958382510577865154755147207509610773910873789204600721414585571399527744602256041681365838047201953120779826784235047371828724262967446209226958970388329383408101733695389886159925178009592612438046162048158945869106249430457134873882948130875099828563901471616516464976193921003315307511846589724705271627395247986218746391750984814721947723293618073892020193648141295105251201739192264157815052788174513477402817578099938429725228145294689065196599137397076604877945655577840624325343738638730411399429902795799500008839550892440380061244109312574456920873872048141899388074717923087497168116690382253674028715569120666508665031977004860401744760272698274942266358966430896635713134730071300990311080196125105611126095865996580452949602386981436426717165412867482648975156281526651333811657921814059946166234825191884742168020099089369313288837681705809940943458887488090321293912189309047220307455195129254612111644225212385108781274557199715007913371715319087662344468776608356168611990655170770636271740244535624884519871905789983111451513051465706705805697909427781771795927024644769328279198878492229340985235831399966102753190561759465816482939766517227345440642015904547135176659409453287698269036734555724646563461669357834244952868052456839335377615033579233593507836115837050042561422989535013723300367033479188698289697368267695384461135926800677885770810982901896758506118798315446789800939469047480023892610250760733848657747355237804525870756538985086633805058743981382013743086939595318311078741526588920465935260728878911132505433692227111267601626788537388536098186152523309527822332837983002933938090369027051042070104651909891617357957706156673129064540812316295164258155715348090643654239850582926199801803772045438197266559250484933438704613459511690267576312850504347032633861707933065212581980493079697510849993712592892098674129939663823486546348669724983978740163990208225838566496102984705912665185469973868461220411226117570481232431853982352352679626313603565782664162890200342372626847249675277619704997680526892874327941526574037013692381546978093647556756038212337817604661108977866241279906020195401694235588195428974790895864086723904029822696772680234366055225170784168947151930013359388078288603463671968122348687878152806968567805032540825227735639337818849706858676068367964809106698492420898733008529515167402000038110182054454013356172945659298113213861998247869222855429523629995955899564852531056492876030324553833634154366230053252930069253403613811500364244915340285949086962684801239416691779426051173331384384112788080439853693539947005320514992071834650288843070859167195517006741810876913224566015546623996053116782225406664504901079681109235538028434692397802426352975733199095248934403400784049728184246121969258097100002647483727070523825739538344046986213095963149316824343136483251434619657272034857785326054640693291871920902014544996426753801100258347578150524454034175231684420257753103960577055794194372939316984253592072887747274098672273264129372830032267069168386718825345808327911167577127131859972701462835494300646952075361990406151789399352530492958978570276294043743302466475033778483140507900024474756651983234823547772879131932132063216616356785294720445171232838641030404950978777820272896685851254360949071048559271685195581904904947447702215867273713811126304959715904204327638028377098138684392425229483109623920827451789146398937434542321487979783733580914899499496611260150221203188883408156957109168684214447649054366079696871823641927347746891435924540307996367385147969853708507115906338865665949512632925674017482094118087897791826643597138054311042974262617542055930875927936880184297860428070587279610335915022490580532245241300359911734996219926880893861152930677023629756230762580119190151064646787295074974564391520404350787769369408516840012645239884263832509264055077891716781532414578572695417341923056299944972695540415333386257043703075018435479126029754928071209966872282991507230634582421320043063801036724097263221394487755999669653816695466147553637215455015820183822301220382809080613180515956614037008944434175784283601268055712899575122674318533258638835634203796735578252705601188598835122483593133672292569924940984458483115888282059235424393767049227650430898401833052319284688882222919194045896009697953160612685032087490961437813068757117516016039985535738568562985417867442937637988309338892245101826979335892234291734495362387918869964668146322581308848131075529332892426420901821918591119136419971404735372492165256838185517246974506192203774133836230969735659558746864590947164112411289481069520815637265337280982912939787437378575835197201863782313536604930334410678283956221023857368058205827024823138767171573263497899187487389611700851800368680271432562586867375180208930028414825575124067406218680638985735893900224299283056327234865663430634697610686906476340668691246327492050981366915010921589263949302829059683193542101648138443458271246171079471405091285846255159344023054214093015060309883134358002890741485116929259863576594014271194197640763737401673844460835370777104998467609886880766401894766438283808242934730505452362394380847394318272558086516353995739075714431368111827026980273818098499659131264317760936277996689201160741044672386674773701726619721968256896051976015280629907388295992938041907203122876853291396427490750830962301303906451452006745225996325733425419208805094459448809612347559012046746961201279485725024178548092687167358952237688277822737752167139001322756213630077244365876196746098603801929319387761537792353627646504809043182124212817136873023273590281842836718212363012131402550260857824802690079893545704841043132237703363070367083319768713610612288895777925040453605188335276833472467804912768570263129923431943385804375096305345336230777012508798951410644419630767027821496841612387256852780103239513374268045566739660394950070176853073049757730643287009738835369287835532908139502859732200935165621635414273418392491557973219765838173736281193253730131468698429222915592585320268271983348538673937502265976648973498052933829409867522907353602373701005976968892779772731825275085005444386901847869965355012142234838148648343654697461563832328047265096161217152633800992125467216494574505224954736174254244984540307055674637219580242114541624124716262411055924423068901881980345126889523805314666332923806857869453709077969545032386015324494969749814273497023838037668204803341859374555994286460493245898632495342413060293772181386239973090710610984296387834208431870215355645992367170256945050628954953391066105232278698806782647016925915330290725913307872576300990425501002725467484668814792340268216647998925591767390237355380359873760815160159069763291926364419263510840328598637606555367734533508173488914030099574262800026638168649542516292376281230870996589334645927003398035487319133200906989797032154319183985052599586323396620382614599820766004612239154629650646172330816349720856821698919963714841498569604598320440723465202015492877865678513149489485181031051361886566359628261703173183037399507481989313637979619461341209888424296147598147656012400791057210396728295511126090526496019501724791118602629712037225975280226547278403296961921325784558147390704780126485148054416977256288573403439853550473952244807699871237485509677703414233105985976317419096371404997340353659145427874245760686576368048168001591400602483193777954444073938627542598072985683676387731092262842481929529819760590096062710024331167593000589903366095246378630323983177435573136601693401447268690983967135087531824670246653588257711403583205431991172333233715257838235806669396362392869332207659090054030537709852444373734759760924416726474060133482134591128494754281418598384838368353874668695523414495448257051735472276970343216668504235736819793379442601091204364896965283820438557423693403975047094312787708479110530018021988333073505351349460465970412501024758148583818006813621446441420982920484355510587246429058700257298929977710188892779000650969025348339596490524185093767012955326140547373874011356869155672372140666151612462105827947725061637552925115291288122603222139631288962792179176988182047624700878713852129682672902192859478211183704756759300258163638958182158693456394199207873883006709533904498756942538050429938528884110080268581071011313819431872043521754473389615122988349611960610878877835143381762585549198314628326264768965227455338864856912440517933229950692477260030251415184955200360616481954550555310660557262004687275887907760547106781107635301806137864592411417312259811255795331859183346201316091650226558909453869126435378265519484377519784327753483058190421024951128128303255773722806613424680607320033152245282520918126781771840163301663771038783219558056941686981679393856009949338689717113298767971300066770393459951550155637030162029359153274093690820231302431044523062898961057949350014702064411851390352795041873735619947850868833958209370415911972744349383398003489102698012946341154664937660320324864404189990329140731533366149734279271333475959231744049503489857273146226493483413498626036608487692116798081696245526348324582275938673980779201281087410106612374146576944166407599271157524824801782340094262866962635626166293817669668571721750408432868660037369605153400061122507285261082671516400826551483222418667882446658175034418981234291603710206874003110604924800920571862176510213651125368960169747084654709579706795029246912351271376333912880272906400361203451887830729743970004383013768877020517439017671889895708833906072951227797473175377911303750435946462356791606710298236042248226441870293233458663440867123505385029687681190123647379304847000766903791261738177549000542805629044593028161688112644972904010188635869760094575391909762444913148209921013796204959692370117472894452880145424416919030495722883573265267434084928506845986306469639005713481935514441699839837193879080939319314463064925011915448548365630842528914632312004905228983666054821722515682659977346543391191079002221044957055757523312401472373087059220200590391402894585617460908185144086742770162738700623968196568649402265227003348404901939347911002246627152364185069842698685052716389892260502742117517609036216757844163472283294518895119057583465175386165800797902718436602836457101859938997734670545669208450120658398118900434430641730222578507425883030218234594774154062913438750903668016295916282324733782345823876639042865111938442105012257410532856938453697202282029615783881085027813312135335954996504338200698725468566680032252309884475503514848171279071552664520255200510184568596201927304377923557543432944971406005630017016857577353441080646830042173230803584331094704645380137191032531039489064697525905731208382964454012839664868207678613003755257952033166025685692622546507512051400343058937511471309946283311812648424693494386179498542153349785774417298318194683487423063513400570576445576351090091723652813092185706197670517360698362603349314912048750320279434098672904154668447055725280670565939040404704892391150425414466690547523242501490722779445688642882953708486693477815219105786585967550797903885432247888648866806073094464567084226183689678737056578994306290145613662294523210268781905457951329642001075073234497309138012221309896082116977953049886231049781182828077811179617343192006170451800291312615688088424766644005071331815296643287291562151846993092385779829883041867857080594886116547708517135374265331617973538939995753658019380044960131892493073220576898649537363452292255914471747922164180219486452798337391232316148349822171671611763922212131867983951802425438098768951661427455099444362274401040699186253111921703139849220368757570193971106375770750055481097212588437099275561080114173263366862238945084062575002529848692992186195515801780998957602620825489047698782180067215665148729474039883054661213925713723148217459085822741242859508172100007306431140760459147859783635090109421543249054668368211548202015691234449616149387155013109155414325310461312425464471996621531504797299661663203713164773471904933147035130135599416612109644467716264878110035761196250022559109634053362764077699486938738982466563608191982983393711609384629190573758794233276089626137994685849517983753120623856186848186810813715918558283686537188307656362638175438017671138352428198577959677475953971060433814172215839600990698950005684681575331049919375824725782718381085382506156552424502230959512402450646610988547054226433407865472421969342922707536765371691454084968503653015755256692578955735693087092240795340979580696773588820747384019135338985611250272215208433742512648443481453412874066092483999417962650687798157328614130394933328633326542824370393183901822035677919838566727143269658375034336850377591816289455055188084084238087326025112392990191996952323013511266275839124047584201447411004358653238841722054420758272563750472951886362296576544255974793683501439448034904696423567882250414452432641025991290889738037528704974344970549664280532928594055782697496137441599327094981913414454753376809064323969059204103882652990466732308236771060827254633417036230853111734993042604051826901403749838712440554334941316254217058939184173459666529428046853933710724826250421780891366987842772084139374871908642822636782153130961261134898124044790848058254777835933019951173717485110142039352061073353893525225775322494682747439025288081469542724496142519287642859597930684384868047099814162057033306055019615514065739337038661849090544671951309463574831415396209307300410153017132702683232113234073254536602714912913878400029711446262129942270299657205005228364716603060466821115629731546709203963006920213403605146585649642912152180685881348321137974872722319287992162518718727444840929815098279644606200004158643589847333499511266677095943547199359813616697470008526304719055948565189182036867504054397706791494916479230920577934792847490621741862826832517933707013119775434127355577839500637963760672528676484312072299328146058569042545222659967214574278370491701174166602866490934432894460349490047325646180082515409926854445397582128759749067525953807168072971564508900982908345409291903470514806247244284093650250150817999944961146778373885576819932939376492246546938292419670646178703482646261269244976325382137161982637775055758238431515299267226238040225890218163611570005946793523898842208941633837477854945441251433963397669198508623746218043283701965390410687247111571913958014852551002644660659973204102670235930536125014614356341739308206681962784709425699773421827671804641436565074292085649587429098764081027521330352328211037543000425513486483073856823614298561633729832049000099816796559868100670545258815548295068380509067456767445618980641765260734156499346406640425334222813443500728733603405382509460154617964562529517490945498544675925817255957575978994243334089010921178212509909879468053624515909270716199105754231603686542829637437836428530689545114632020614764965133044691926127986170836157893092291770852273477778402999460906053210990180232861019450175058032324570832236485705721818846112236484620705918190230348842057841641809328233619496480645815149644409015829190849118715557328561758782376003964819846036783703678900271355944402580634883949642426954806904348943181932939323164690741495967051845737388522253908433575703563787746832714563610608261131188082255351434172764620694518038736352586466839404742783087308661212608951227543576232310265215672542312204037259625868060748609985884500038655205865255628781242683833630546789128618098249250754780358200080061594418301600911096163658334593728662740192214322635905980917159148018759492190303604943089876131986692068477947772935203487507031511702078899625432522697685637273864247106769689545944368749511502055051613616674034447391964190625223467074948251383308211092210111641556666927357422085206060652720294089226863917564809524302567657157763514546981727993437980357987488768289270825097122711268288748793486395748745124203523386805731900218438535927480074917264020316341360529086692957872620151700044253291237603485531500896849588989178479774950683527551560941357048822641344935799385877446382240889241279861181122662112514354831249861581122675027528604914825711876876967758098969447748309113565043927743555050533848132039698012758870359212349803590287856475484918074585749956883797312335857744991153544502980167951376774816675072317628112216676752721434024862283068440149078934614902119777226820749837064509527993516856251329050384428926287433601648902394660116656976066815395714708028824900350305198944476016607668163174825008584512739732321122735958277094335410336293141925395694196338032177315677014128424068258368098653958315869645038701153157850659083599757675875735761445633040596127250797768449054468509381394162108072461672911763645879236725137624737135533013026509125318055354113390170937281166871063511425171835378516555357875133642492249209015268992639661930288285674632568262968563291601498817657772153409297045138957023547587605823050304697938302422805268919441716195944886458260772575872525522449119081505559021871074410213322029888198564339826753793211263622974015176173441873029368021441410345841021080831493119314988613832777919721596104800941563347515685301350765305879450732587034386988360648740995241540493899810996465707214729934080302221645696756231788248714344597485415363729553100586610552610190209542088238573797699752357260987668979509388240326341006825459970459842420329045088101277845094796380435017262387602362942164234943551968268398456062945042686419124791469155097253346919276950237064052850959635155881210538322027351088524029930199476799432536598272199456902472751102051918309996436028833114769665692410541882393874140495439746445206137748296895844154645561012632251748194174397431905765849158800755548239787532399197644730844593589127509232463531226846845450809887767864550080519087449589907643718221468013395477559228101322147993408411702744105752636939709842393468412137049984315723778326877006724267914343745459164386374979778350193470905163255485139679586789294762143464145813450549532660523612289382352945766901565745576634811192457995864414240740314848909142607115412250198560815758065485477201199557663120492741551912011349484153949393447339798589165011237425774606882755933807008426263953417203183105868363543937487953046757214716209376238122828281975312072440295452804133770138129394502902772884152638108516687061091783533204653239601104046581903576412551258834199512258109305757169169787266702413827338699793960892831538262178734315915599497007294654622976003680351592940854758652181515860905107238862674134286201410872661193086215610616939095452553089184421853575266562254843573794681618472892934997167888459193308274122223533613067702994697993626772361109109506293604605724498983292101644897730207843639340259420726905450363407690837380341031393528742906186807901997444331991314835055017443144904622050161937267149194561626224968147586359908370187713075358044207283871538396062554704028940623630635636077040192651882870656752119103722499528701667810937755675084696372454725637519276460678672775303524442056661124917364406882740350855982640659284403923038925585194485280058999965791999828814815475890025958416551859587944278408227971367056998261535233539122988462845114848132825571204950781369260907706052907724541766630712675018378903354234443524715394553253519018047285273514708304455872928614747777314281204536685340386756371777061009770481038465008448689585938237980628763528364480031415923869212114933116515032586760378998076224087175344309001779578404017111497930347603522685097527985485531883542583705094638584118669001836200057132749629289874795715773980824105053498923957932095567203736696961658843559019129996078568253241620301753109954614632045470022215718620114310871565353020954201648830456893545995371328112920191322254351614721599872708314966834983311710765616605357598306135490871544660440033875093451852777710624121511992438334295668332329720394175518286317716078696556993116436227556400671119625121112312345320671606336777739452144218231419678001198160972477515400840382528585509938363379570056131464360430335076024529188015705978375160141119198439923047147287049130638971468773725409087345895499995644310657122104670040249112081821505199437911673482377028142106078940412208931507000284241820818419039707236077799280409278498900362126242268079409437469424988467586128856338294490472760246400430361352095279298099451270979085863822203282934346796798432595176974148467630703945053973718724471101123384365460828685235248429376641174767682434960287374832428626455750128119498819636248576467493150439094090606877753057672056625763512360853399267957025123099794808045355459599453098893571757443721137540014163015482553317293508659442109343656664518014379633509583911732489297839449036073374870405139693804846152181748024330090046684837263993721579474715003784709711910684651214498967254584565603559458561878208482252584849169620761110829250696133694297479903284009639270874627039916625695938219015009444176672142267908832601834661113664732570496795292280698369950073619120806643471677255128311323042699497709925542626465804912903457638247473026547740621275930632956146628200289121643728158009858151204159984936526896687574131914436748841399348080505173255665656584942559798186165970460341232841048622818620579969613152234839038828748551685011811429711309851517493976188901587832360061892108020117512412288167180938448310148259795784290433237519256064074460618790255196926050683889871734039988373438210762023269444024609907996697305826174937314051767643693894196865496531257704211469677741505681477792247423628924297170619331693106918879537660822510997811606474913392474327414190368672167557895134084385874764322962935370734664587548349002322249461515393885740544201302109850833617907681675145768685619555776803376927555365032032388649902297825752507622659319155291162991675854717310459281233482302839491616943180449795499929420455738371217925633622594190338279828514748375417020825748957874310937361948596769808299597702797334415388942167781624249754381500420448612452779369557241152847191065444932278195482341429657755701294395905903477247247971427031492837678353196736237324328043073641885129393756189885879951082193497916642536089773513917869338531439889254250828231192329105492394095598622761078246825864809665445793181025079722766138640770649254932674248505982053314262203150005490440007058676848444958270639925170104861714875392969141721551880663485736236498261498021047868399667164791443130178801303235055834605354401129936945920002894756856060954345773222953101407708756258834955298616493985597930242474926869191920179799420235083673729280374017919935819914373336817751982335519781041220683640435037311607285093465189114075293407925777357113351604109591673158623083041498832766730773761814926784770384400180319281529794344674693014096037377277905055488692313721760672574960127143504347792306443720893151236108686176214175201208383410599290676392826837100126984524372641321714634200100062629682799242422945109700277773438570748666402768682583560428934286911781859714758948418805626944151782900237822773405977021168976228978969002796832619050100766721955433937808003647248588111206752382624528092001798635660088847754227622504867833947961531285565841750064129528751885158195949850191571617576590518787419330113982586665056261796159043989948089240200009197378311028030139377164057100215422625119355294228397315814257880416858303244554530418896983217550846088832709817117477682042824002070133550354889562830955262930330886330408418679858126130792824908074433617063164779079082869437996225756585403617646589849230183388844237445150030269284444172594440419459310757790587214538996023929974754809076922984483043357560345047771818028557918284252506590321038074205581964566126001375184893770348021346793062604164199408743034809953557812675867123612237393078319760062484478517081679275936337033764956834722784436266437855530726870248633977789043274881249387561208147698474613458501622660355863356162680506970351243824764060466705710574532767947384793612189150266118779640126019844785888181927495556987851877851045157372181672815348651141240039879843103992952036307985990679042890564114772075612596695239311214303208952635012456283662841263128245709452745927923100163487802517249000550641858837461842697227447908750088121303923075060410089065808241334681274054216587491561604496066020239814670244492429213876376921373141469789549019771625615952088943921440530658853430581582083917299161364669838903378161588854424890709203774786640517255505304420675131270332156268275485173532110083597564096879064204539673195192748806269834543558462137349104655508101188807650075882903691079305139801575327042079402173140782740916393527950115689930525771239637838371090914454684949501423697175298179691101209026644749129742977350448956782033150597034881869773201539618601660352204308463551923557779144815120385838769500910255732026048632706971382845930151863846177674285638133767644415305172032201311559504568434086238434154600864066584046642649848753066747126057053715307584864229706000330400787032742679278047917756925819971138219059147809064951074217959979546765062197316095119515367902070805731993298669592214854783879650466387568106399688456915386621028151359659847324318293697529170822278930571698217029623263402996404581220096830060359302566602367172873381641557114843220448802496753496664173581172442616822697736799502624260251718635186957885519719881255180455138113129998535345890229721089436971424316481901900232479264819789583472312802289023410480392149477131021141279422313705902750007068111154693366336604951902201293214705131386988357394765374239801989705736964754407642703256770625857350837470793463888973018160514109736690602107362490445305362384755247031279870307111046964093361983342060296012175761289560617795171378998376399633077546677991709803836528670420344287012323390101120363164964162969479966630546602057445008106321006360822898177779983912454000117741633717381430022606024113914129257037315930619893596751282512974467088307260053519236997703152972690971275764519539460237269899979915359067367878956887711366095644543710989089146828768871272857300181357137526149700590651875350266656171101268894392820852416199863146289394239470639589689904573691244091763872723584361342956855573745843078294437864272756150498414136197824365637668025880852344711775464673976712547648870196016407464965687083168059268902770701583194958505758107834733644787648409558850891642191847924547513099457011654485007501478552231710435664769015495405588993419496372605527957927333533315585114116313438746584373750892430955487853453878949967967491279621489160145319377387093758879061752591218898296737767738325870726258745717715344369864582995383422163624135731477332207696762502017374715331080804172637289402995105226108845743674418713202103000464936218819953603829756278893262450872521976897012368143593098390754603780429178833132719423483641883394586933977330610191831760779845460391536158118308589816081366828464598106012545100692637999184595928828808079059458239746803396782308695793691148126354814842751301081764500054780473106129393433142004314660848170120396236463632095997525471365563529386923119558962240466812208180669638216624928927249651561201924211513056273250440485453093182941451033821835022402827530146622590023602476101814884734779544140794048498521740990756983563262034601577659992294199916830994345488384622996666337365101893271252097432885828552109273798183187142279153890405859323417943181574471955945779466257684229478428310016509688995931715713661915767864815347817298319308041220216672937223757100832658616809343264569564317435384497785551702301138363510088955133309404849521694649190333723857076772362843465336282539809602085922939979741320932325877903342387250483021207173544737755667501785258084781229507188812433888494314257846573630631850479835317431991579469790578376808426457532293396171041643316028449308748907839662065568246261687087145482139383659774039810863753180362675929574251775115054497970979673757722852951843591392534623714415661202158232877588219233372682839412527795134422005444958447186179550855310986628656631274851153147068287568648264032725258131389426488934374527507389531336822855408676978564977293527390778920305858653250979210079817401425403614264030369877673795276054910868460131166930110478858780920291399346942900113332376350598223859837241538805451366302684751250223915532995145410630926800853343353805432198828273900457759236738042349183643978063002052730427390854267552042085572802094323812235133632755523657145087777410609050271832642069284521540395421957865787165211061161582692013992634330582270186561663151826098547624943553423228854602831381721849012495210347193904824679620815166592156255678500760331502635705200907881425293590762907888888230519594995983326294962404003013680678620869830743705708367468899975181413572014814132544768589101050537216556202772489188949554409122571398249130776892967150385952808527403290886561035290355657566570516646406742039789968376984798531154017508270407132251584740857466962144646127489798274013425358097429838438721471238162949227140264070457098386468606038676561305108805775827959225727831397627360232939652016880630974143666173467455457147881178208646707636561133592002237739153499554383382110070709920454414787288962101634854345055864253355834252003107627814572617473698395024808699013299523417169893482736232759298590847353284419232694922129621580304019851196146057908990161344225465968530368596274768656907419552017603183338887276673644120904702167494241435695047452620289565785553377544239990651332418453007271199885996575846626480666508954887714917683592679803460844603593979343994561906994687291543812886884023424841206467752197421125470654324426174386745272361354750965436378139374218057677827655141184448402367020955011364372223717041337848450134470985968409708340233847849504859266053013263521313182907639982679531850271869355998290479329994511247082675996029901285679311554349631576277253064026201435622047808616497081641206075644729043317581468212922703142227487929815489363036042588025950294895434424996862212585644798627127745642680088025887937120094253819164999411749512852049736342373091163936090273995906160981783186768284419078078140863606292931553333466703939726078101353729271947012366166104203307396345529876382306342154888697625189518152802887450713201553892256261677233835679780489469435408431904640830911969633906052133299836722474767561113566340009006008296302530517268455806569648769646090319165218987447404142306561664871455955534017586204292307921266292069093946884073413523383363904678934191577745830894782717511944949409047134224943928687135983794137171336172186091459476752960851976274567562073317804044061960913973883048827784680393536137912266603712622928548623256037700053876780725726048390397231606767263788919079348733609055586277319559040199893850493179083800636137700336110041335136117596832696894312261452619428505065787993025342015964297310036336816599647531478333355885399783226363571630204423461383627648838097150353646517962243704950922174415429641250837096206422147374222282443736166699841637485059164346409716289356418195122975490222118099674870563883277730193631574904249690487619931428313073056365852677726223722725725643231172075029196527889097356451785923262635009630988567578900713159536950377600436417140344071018784741474554406609606915796606024843564124145413215506900314871161044638129494557684914471482749834980207890684181953634500696606263662779125961453811031713449391165385440557361412253559586053677650424028687171824608788389473402294511493683272370668110058636530200919246094906076631209395418487252478469204320305706088237583919523924557277815745880537872678436963835780746378514682431633777565208066059873274304297158168225084634021322154438739099996659219004241919689163189796094005275976542104085042690728750958315953481330976324896372026330144098236878825177296217073315657771555471430348958768988391265793919453900512446596736305892256921177870848951129367658095158040253175056679984533212516769665314611449240829903749542720506995745007924350694595537975332642529491214557697355761619925380711697707467705140359592419519281002816994077121021104702586354195392013639529151681740439336549246938665805524686113709115836205653728659785125573970853376430059452330566483916018878806816581426802716573409536016500601927649844349057770307139548112862904108626601842101976102867246606442316548490286745799199346491228568969525861839854696073446196099747385900617667407128967024718325099401533511788586961924347494337030442307049634244539529610809633808289946386590653591098205850638040096198983877852786860517735543867454136760491263674133948059284574702363460589372497346457934331260736527804320487164101877923131661940406660738233772598088290071273979734166562691487709812132166551906517505922926219680787008748283627269810933756314054668264397562249012524138759716737790301069100823653404844241926619104344572611264844849931561083973637905412767943899710843840709261209888606790750822074822039960522738939359845986954571429958955950338971123277672658304818430260417947091261501945623087995792863884710484122179890892437898182380277033421733325795826010430718050147560505208376993953669933237584824547918748253111696941315590914696820326684625182508612587043062843320361881713189777308234041819047488379759354773072896766556011460059989520316202821841114192069916886066749890617132448008672626283817398822531960947815745344392806215886005866772473303406793527899412558987858178799548206649303506324352864756966457551755978792002530490644303577903478607406681850031118442003000962000296529334306395855088611882915733709442453021795625566419309168042326942285753497862492257485413454601129923528067379097733351187161584044818044440919786743652307471825671048296852235295655903364919276997741081535317839678998986954555654122337433485014739128873089850753890573273221867543082180379883452669591124258639905229402823441834797710141480778789398074830966464696418459468372984155818373955573159564216383566254051354551456065879128614238752942774144415265286431693784159646643935967149573188508015507778124957403536648768212275376148125696990149211181845562484327102433743517901161429719815166450687908388313053033657215558939236859887041719603823297692826386676451482595029518841801828158835712299619672037843015012361951672977724287860218759740931889919318982110073281037308680001701745158389837234530822529767485103403085946341466495492821441845402899081931731506905471431539417982113362404207383249417769957304831406781666158603810668802869423847865166084060997928104918492053430209602976721849693480317082485191419206652624616766014062273763660801540842361628901179469535591864580728739832551798576246501615304187339572694369165256462646409605789728874231666284877408544586975070382361552013918738604808772175629885819082582432164416749938752851771785568848593687023801544567011833153918776011152352863115398400033910701065043857961604733837484122533853635877834820715027410434639905699230478064633244755363175243909442244841510549273349010684155500724168220217258231230874487220492432806422257911413422498080793474496628375239550097156792973154884828950284598825615884354106945296920738811974000966847403859575819829844630346253181488325817971952194241667023172218915200311418987617708243117822289884437258165162434704765096475847690226862950842436093239594101583762145772822115718156335164663989347440692519022085508525643153335462730404518339629063055468193046921104478769118930283155432609644674284280214831188351057161333146866461316453697943185680173289498491009962694574865146683301352174728192081869198557108085420204336770439939809136628376182456190109475254643461821673474605025997686411807827179204651242719352129391077531202753946581972741710352921312438353236245555324550334066243842416543080827189451413104971729918773396647724265096738205138337318263409233139374708227922044061807230526363917460328863852718517024154245645117723591909551427032274984955644126172913535325383379778994935300503578093692458395313215915013981208570399864755709927228487134394659929717295228911629159799607498263414114847166603405579191275104958276640000685253275952461775180581080570204717101021596662568554109819132993607476222321166470917327140995420480697404892092558457327419453697494980038960302282308015664387223540178121160662618566654798267817136432401476116539427054536623728844935647861194822302703838921911157059262049465079910690190758464149342460905337930343929438215277624631266769145758916687446314943749893221313715459346803223572206084766106759362127117907922568463776819461316561160443677175150483582454082954693296312745808970057384294834959432443011062786806191409741828403664470800392597810820863785485859249809865762796144248749604759974359647817420726796366599748108050316733818428095465828737714503248299923382412935736406075854031562131213512715371329453563074671452928732506491839963419038678751631787068001717375385163421731515485192810935558277959341131622455821673833815297866745394169189565341106462299645448032775420075644256797529796792012590928303276519908788740850492837945842730101962575681925913008822520689829283895879037651030611292125424142505798674306907908573144357150825081531137992676735432526160558208963410640349189391616172982465060508020358892090732103538926253564732740696116690562477216272227511644086571101080330519042917475555690566810786987971411075060837949734851010415113265931808451870063718471529054874872824770400311976255301935494420477500434575168034999641468702131111260377244166773087175193004494966372030012095662940559926209874552738027902267150254952527348822481078833464766138762145484905672757021342956847898722830356212222064536960685481026516299961069780881704600144512109294296062563180188601753867829897812572077565847509536405014688726185709685583017442061010953116542915379420529378573404677763424881664425965262053739506915098993687254496496899050391790545650861959525905645060133323631836622823779911820396738387471236405898315523437765942496751221838091924273359003057911809538380219679642572346735472051884516841297474901901384915522404265624384729930937423129853212494423475126276653195400096938155901458932045584514043217312386001741112840135947627397154342524485430543941822040282551526967975155992019925741515510946568594425269578586263042052633370125481868589230144035097094418441907088722332507006977510125746742769672731329241263816400504304919248467816132759977503778700921987756240304552822308948175034795814527686577119637948235500493851008981780966818727149683325864302252511390046044802969510736261358041949391316327213544855033101226427437773207347833492322223435679211766576218435344934856676367832843054306842302084171563653837895121964070666451405727271783498709254486278959078355019787438935723826507720005184929660281406125103802922750979035533526338081282910697752666689111722419130072814264159122882985312164165749234840554917179049525574849764654417868422137280695072613127804444034170430229971036823899171775903686286398780775052013910994205265838973381082713754059556769530133900644655698330652086884659577427880459098642905713357682743076091949487325550000786697579834473436878766422343496363455783183079871070400058358198276755643643889794672364198210903179797090863551915261233025319766424690406033490343688943040553678408955603360525839570331644549493438697602485411040736637365679758747521739057502584392461934381195809804313789100942718235503713764970066259464420184854600066426777191932536420391129052358230896056061299885176214446309643043123134793832093245511548884733489865262888728901943924207524185338765907373423306901068755578826333032311618514798258570177745322648049369281014742304585937145724678834090739091380255431590244414235138276454992999203539413737004637593624464139238190426178225674789410611894015450757098822290618533401585217903329830395835384374285037087262055426739198263132326324961255036106063271244345808163492252475375290931356362343389251331121648768673005291781143833185395537076141374570142152182543193476468054397543822168191252146720131280951855081101838781259346468681153813596246217707600403520890842216886697463043677541395126736037821574750379692827725170088309062716643689500826710203243490719440403591360847668508804057244708408447507085109658364613286224739791451910193100359337397186219431368546170432440782705336270715560795414821854744161338239611048685737553154296582878318207871257607878440247646364466000360648509189319725649579247000540790481694472006701620418793398532828975675092327043343737597058416011599427081228897882351707620000749588292627824408748693542236835172365056512111785017847603286477952780542205786757382536449844196630527280309678352355725485791942439221432306393343138485914680261573460079822608037412446281661305189825437446819553337453618944047633293803345449086441095314488620715713769247956355237832095161163501733268538393902567440027053551773588290850942953700279453394585035228786276269136094009952668648285529455539855080118129824860576677443911800143332024942412949574959498545297211978313140766933435580586726053958705868265090475869230680074182988364970310396940150414681318226229736951903312253131567046183392826919728688446139030834208698824258441740893775403781688527502621804881593036989595052681839978479588535642445669898135425525803124010573762382635242252186342330712319288671797212550301884915184291616299707436883165877578293867992785888725959268551412407327707502940104245722417413721683795436055255267941002819228234293134337842481273062689969859586264341327292974086088182975708964382990720238505702089649118932755173194613093064652821396110320464301350444024931839417867259744400599438741483013654561886379591170747510713847362063139713596627349626511739142097585568997924450826727226191112991849285545420619550220923782740788669933544001813560024192920026828841913116397245762343122660903607708217190779461715216468245219238390711191399245683446839259985109342597338551063372498708016276191645023512206143511796335350888689192180761140932465352772083607276147859103823035079875907360776680341222426602567063733116160940625802744440908274658566217575958966922938117095725811437812675424611540001182300085170848149792118043684205122655186209555825192142449603352010064906122556879806308531427303940433607638117809568065278953143897001476628936583155817167010070139528862553901782966694672547899698772708862488181365832681376131923439196021230102604216122084865269918915719388373533837098534051407618203939421489278100178216441829363884520727910231949503309528967539819244423936407248807378863002224438977841986345699667573696685126819886822942528695008117311486764834055611852758944993323151838834334265519184349524506311289727859050299583596085901174769459207374245288138675301231642725350845947518518989418686599111885859568307291451358982671539974942790297960342460700565927165319138196530837334335939803263243640502029082117506181962455939707096435398703760295856801578373362054915006303654320524218142403572880499027139584029000343269560878537493679525226246904355898685197947715203033862070806961669813086224545450106518683482875824921589720894538108158704834599915828308879577375625494892635138025437714499093698151753880112293551701247009544929880174030592447243200278968055686149116649401857821662324711035647644065710809757839404521296946661592162789504390574638642913363631966781065273410500995488947082339924803922625935056396947651103596867213339770178516662320995423589440486308370938467895273914066938817933385078763488760511743388038954885345733355851182751585804000237856032218048990019427227983225111587006693648373756961645615078767621505205030386276680794835665058818991468170532908505519391389226213324580734186283085536846341164622669789918222511530601455341748477025595705158055206175620647992662228526414575798516651650876712133722331018331264123046240762484217842919690264566401244220523959158244531866709208717614204180542753773256026541578942757656492588361209104746781041572558123021570800840821749543759903690830450440275797750710721635052311822580029244803434923498453118883703545668400591828517661814022347270411449684027563222709264373104422929571497272156110125528571256281693353928726369345623590515651926409296793443854250998057983346266941941332593574008885637214594709944118157114103726447587243032498063358728690607786704257507451693958666257697157444029824716743212876777604223866520698408256691500421901799832294340078367151263721463075118814281316410314948052783750624457870692807229835704103717819119220984567324363745398722353701212226738772985794351544151798500630047787033497023697920239863831849834831280591064272520008335913223414535549778462367718108970642804991025703729463856306003086708929651474703371248075989416702801620862510482070649106587518043394854123142897464371906243629347476326621676530771967398783810570008468205543766772470546493805441943351923233700145318766929586525431355901498916833042741447280581028665878069428667811786336942362270394783328121031491918674865966548314004693564437072097433999051531347689542356023553223049546412876293107004624173760879505864070636826989355202022942974594993369995106335741234115654360431730973930044586606980262274471531520720577010038276508893999273754215170845429245908785789849426744336029094394002226808422709124038995201952339559449449994694811545169747955326948408867509152912581291278913657380096096604189193539298169076490835374400017081363437452864930949112880080434021293055717370201297661704396501099448232044525565439449160177680698152122140270672914517308718003556475406683087791101345940094592898202648250398040474349627034612048824435856536060857589387269695624275976546218500667074236202252567673224756913547754209625092867006832922510726175197156260741531936796555652112978202417634046626752622232475049612897153294741402291260305370345944792880006420571119155512623427345584021094114261863436279250579161440513394370577470008281654533392709272427070348722618000441374099198068952256563392451968924195192169387385406733438290422513094502384455328887936597236108310901687450203300566922008625798200984628433683809045078514094583444907352771510059593715755503979745080123149731588129586047543858110200335658013183480435435643547320346676978055425057151172252248742272283186561140946240860011596272878709532525999590812636588903279173350847018555386783951782642097796257442284186165578463776410057873738396677335946988022141344749666423594665910013655991839343582164002477512691285836627519747779850495544165187919561751088106896083028106625923821946967017589512426425672162866335159703440146369533058849626926571428861112265215121871879790897942085970513756671229999096198696924657523927718753632037269253165110587567150803609429884200941134445170272276106392235742623545751523748585129116233978335369451554886956139424344964217156806857812698356175301712377943755154780739117604942900347173400749949787209533180787967303821094586490067468898909405752301919204989161060101539595503804601399844348080846034345265095137371982811766984480480166747014424829189032923667143191402650614862857244313374015986826478537021634856264552953806426208639785308840894647785453384550144726936378099108222700466743572153469908232286241298676717040589457286480732635375588647176828303723841153963712733976102724693374249177643279895021473108261020655175330800197257258785209880651225797666868205010892904381269414465229221757608735761916001195705942487787127172474218224209945084506413765506629366779760036407404553184424854121344542083147318072763183921882733712766688033712113732627807037548121196752140206839739550577408153043235282002893660848420757830568141694985471695101224735102600160537915529937503213042957884630517438677698164693395603721533460988854741414433992312930435210795557036473024687916806568193992196245844601845888076614768542849878957151151460113596480938596211822475542817451861423527819822310491658159869882194619424416868203118377435807426806047834710812569204585363892230662428059792035216886264634769648323784245589227144681318456623737896526903774515233150868293320129242518681609947672670817710927456573241603151165706889837609106846353224783865290298485214602500268302295429732776278299154467380564222779959504025711773896132912657646501259477509634215713684790794405246557508047858515971786970014225040536154023924708029303504091861524612132885191354794082572865938077774720782436964234600239928871400660910124420278800025356063600778174803458131210869491341711572435648759360276394421556298800835777144603654082511496893843801348218246838803989014818515524919105994877061681345242094183450944216915489666118541763759541488949923253895774433459084223852122704682839697359355565264093610483239430240997128599645415875929985408353892831726406895627407630338019107711100082940278311424147213051307291589155872633599284190141746179581520598768165142763950146452419709408382727337023115931359567318140277851473435912518996926452238262558388888330779871591541083943957378178331784449768660956747981940955013187446508775220825796570437649324669434420965381998029101078417338884682054918685105691911565988921959058989401048549170130393277430274953558420047268178461390615254944678936442679071013124820015941107734235977196423511768998816393468647323821373365495503418223373868568595547427307917933659983910751313632077136882993488857005826999246103543409001526855306531017343762629073025036670267514538272443101679276018562101308485921562879755019405913519716430803066952615231760202803556808082661390676304366217339715108123644189942078294070040536534699871582461145174474113553367528950948318838021491146197042663973293539414083685751220403382701036211867612771014058400892282943383653522907550643461528464041910758014876882084241633051471984435209151829868084021340411361937454389171858178729829022755820056344830085608204704124552305020848552746220329262764740239903440359615352256693187891689180416737798385753629114263569032379351380345732418531533162987689931993696819833743252984683357566406189979387704939544010789825436199515433590291848049235230205731929131644122437604087664113858445136978709115127211313225711812864758268206392800562570200988449464279863382409904566333031893656008326379361310530575172929268428750316384862198550601200375423374394667581513483370091083261764538232808289811777566873745828429112957719148471084912019120039572534974354928511377607929028648832270512161090752226876141673378904622343164157340552818042147326715284864501173993558028631030216513393961018101883062429363144299076853600950377267029295590573534408609930452495073662119769641189283755066512993047554249636769988793271934479272771879853717406151911570857217945114152055211726902366946707915299714543552087360058607069353970386994646542160568087534310512172450880049592990275498711488936437136506508040065501544483110133975754623270818184830590208916813277057240297315277959792478086497082417327851064634738651570641285295297055353259967427580770807703552370740890075960319753638256947967960668166692579412672310884520495197690778546325786708888293009819819830699070479754849000765186942433651013484060937531475256304323063749646120568254840461783912440375468859917512319604767479877404391356697182377150716727792370956933662522826409061480766942139091808188718879715154832272781328313442631576036484372518648608999908535858337453841042790484992793131697805337512626028021954292323516125022437230544531019077522634181337875324330350745945913225511832120482012114806594398027218754195780481949772650028081387621132401822469449581068024705457751407315125406497485722444540899425655995964486101705424864168408071036996379782313000395441500633190808495097238478737227581267399311044015652534743764457224398198417561346892246266308528071088403871930758633124600403996589530281954166453045410821479908213505269996150890945928000033989991919505850966653296796187795855226497220574968214105686246361433939884158857226742290806242793981050558602669265956535159106751876332822857803268612291187400672233256635246413320961105683279607573354510370461974209274940738494611068799272351338954122595636337332611609795041954223672546966147237893587189785097571201197032654970392062965107908840025929328551720890389225879933254966394206737505233933602477334653505752271802282993690003914876089345641673466233064387955146074966605051432300585018721544409689113050471783386138711199457480531081099063939365473441205596182480418866646625117363651070042243501153291470442049058972591970130820103269227884255704434282692115568460511879388253087145394234736489454098487977988084412019000968598643450954954453220737070406735731433332809206275059221895186101899027800157997913052566203623282097812332134134757834792376841597072607008612827027844061839304397527975762189082475617203651895134060969904021502159214273854832030989577982538435541746120836343455770326481492064298140246320299423635835728145690452245865388861687887652825803890291024333161897637256369535775190260253702354338113407908814164111849910328137484703781305008835423685274820892243955311210877755168752629009972840578020154413008006010663826475194281129079273543516478624569978659065002072768944652870054958177555443130537444765636368891773726905764457660884549337364076520015087263737624271807984091004244790997947667832774842744385043082467955859479761167394844782690787127356040209280540289788542707568982186249828348218485118070482564814209057402220922715452787023633476557927684091922464900063356150610520720015152305919003097952222349332391097545931992301252181066263010455403524548082200532179090759380412248568151894155283737001756510337053570976956675917675669418035347161616123693428318580419715854257839962034689192099420457813157320660029728252567038217453598488971360181843999738105655008616630718282225176442355289656623479902015767287384847995409825974504137880701188859376572772592175876048322818518606705292189540979699833737205274934762973410904728625843919781174386962811579398489460245386038419886555929651826142904385209256498549853774609599648923413328177317189942458528340583621325456308194541055772458822442215647139960305425433292992636562125048184465768512706378557773841711758125858333107436393717934950211427595559963198708988428030124538034235982779044007017867391241290045225786949698862846016993379833501582280560316067811485658392495984555417640862366718634840873553601917755634828881218415865013679525662932949625198421283506398051953524507741646888611998861082449108079495808993535834815689598809982270149352535553701968961668826000837607968192013090754214835511703044829056469290893379119935052986144652469967895059973109500487091394562444686409483307131671885991881822608946805254264640670088333510340755093717821104431809321426652969169471682297265588096030028781696687528228137700139292425601705202139351155598513219126225214074610493705242632292526842840339210521715591984967754944348826356448919761951261018115388689558508978725555333716274292198745092315490565240565358073715230031867103947640686618239355917208911559135854030536769533923887756108033189365013560085010188263790754353832278963949309924410806969736444796037352988775037338420490066455161467952698554987999268210968628631427228474145839021778209042759594708489288977136447012855007014112047344687198436373150464707997322071609514674461186324286827230673050439528120020884062694051691952522809590382391272028454610621202372755487022028163805230734001831996067520155068428196452858828784605813440759030653186190425548388034780643437963912467775716988078246695056730506684267105823363658545264612466446988936885432763074538474256061166760858163143930400887970684873586872447224282812304993688486955734685500368879455984829636138161999044143880474410894350028461654617464990773324205524661057245025197149742475108087306863047545108989481503532754372437765660789614270351018198231858048475277443807057651108340156005741245983509535841140073956594689128596089751578792675223100214009886371470427051092072006201324455361220424656732076894819467145397826705510032653044904019043627028417861582266914460299047495493238797411934709204607834458427485098809198467830678618777771026789908237135995216224236052874750908356310153040740316551788225338106218236988464699608458770164017849495462378427201856431492933071977111412139823241011840108791637733723767790601749017708697018007828858388390303617759205875182155796562424974500795869032389798835498474281081868152522934855801059350300058566904395109511510173350112315830275986683106944321553992175794062128483995485950940549672950897626621968223891329143937627828399186537926629914047676142778598072282012343822909725373596226094686540923500811629066704991496076805285782238261714770943922682619627353149671914811753532845530569455441915778501993195006349441737431702841671142763543312444218365128124954212869742782398612440215908051480885035906627044677418495286583482850150506305070874247683885560924736938920814597693835472676877255746334154013719103320041565663309879149605695658603103801542289074311164465151842093459685135249732206376117579762597179329598064386463889229418784404248015251475803873569057782452928290356729016433946085310868814462148230394831152609900589154748424671461713174911756113435304335193481750797747008799804245665367082077337395630892374208297849545215559495672372903290129209495206052706665257935844859353069948052075566500913507518138891054049884959641957497715516052459118811613356500906044804168400365451760352202991880107788485568475435626341857908736900425862117092253151208002580427359993285365365371827731546952641452534599687261666086244569550159855664629479581827673552228704167469110826406046656781768198097793034295258665273091940543028712065415333551717061944987318592361369224277655856088132286129112609543650481324159742263000958505022030454958569927252666762989897384844880430687012992328769461619651485448134047532996524610842047094435048395505084917048652597144321865338005499160082207992852650880955336815457509229186135450951029114380533530900161169067452304899060767644963844889305729069488588211461987678663697362790716079770540180969148955032395619480154136563394430009581136542607904036559663589649133850278456000575998977604085213202015173507692352805876148155888440123651184563613568516812070304733575244133362076154342403892388744799272051060276894867389643264330781144231456112006940253736328139051201457752431789561594749404566874210673446122149868639167058208201325591168392425528243746609903332133166293774073054654652709236468402720933071075213241288752731672832158842532650798988324968297635788114555710204609389659252473921318312924239229402799190842305038971968446272072455320858100465424212403919980874496443007009144165314209505571029565792957120472392906631306432042839219468049048252339152626104014385325465436371339066932933637574864160328127117930564471170117641460360007048181437335270596643136604496929788472568904067356648104753095761282460216553619970097299710222880634278039112943508082494313207130475935042069453350516507102122042570592585254362517757776581837612757313398252784242211905731805896333438375630152513683377320880522438310798352864125341532969522389325415441070037446060139618256748387863747999616669566750316283922013539131350883558355054884315445606074385884149745476075590023542801490328764516474723238814380396593834328263826216206857028571606763976854657660215831936702560275625804726550902565550878146754202316649914651572449503335368242802819956896871937291961911255194413874141756745094979561389985399297833296000298866770340687504177937719255388436151104195264036861090532876318028016232285846565480175498623511562146573399852418936727741996574394401099031366398842378525866436395228760704434125266016435361785489627222333381724412149029162899586487527783415263700253199418976465951766068952947458952726688912118889108649973843393335273088215358891504561838643949760947833703680268270943505182916359069985539382690134946240549227997702733786671407130985881656518153762658677858045752727721992447003045215171051839550908821689756687114033481917287293685426530999892510900410145206512561448954787107561911567285688785135181892221874168580327790794546970353501197548206260775588757930054129942290221661212729594700315437692545230917043836935272342402559375304336000139138731746999692596301922205139786227133722068831463035546080144305637229917266705385410452258636794969796595269189099611336739740387443172645805179396050476928428936925836687175076989662400383147197427550642628197610714803588350620866270933544610119797102988852551605156935754786710446672287119648422234321327571023038356098842307201230651480693517880848026974508474998083641575847888834494349361456645561687200834421635897006176132790908942226539453769124079838584659295682789116219493487880096816339667882794028470257268606713530461432676086761298317488969965785724476401325665379288813408027565040742395729085752789991756653982548447914715989418687147213172496041064394564828756739298650230818148614367926522929698864578143473000639300738798692324510903103771812340788244110653538207933984350225272654881972853684742867153344860485915442775889059240188171247602240524339733002467438423508718664538112215235736913383780205794959477240775869189009729218018851716320540493043198848673894104628473724697824710782004507077396297528889632577736852109710205634008779170093355722037879944128832585472783849627309044232511084083114764177130240461053578797083253541400689051507706791037864239349057319916628859486978675573858668668914679916132155691044048388519468230846498101784159074663102149897418468168902411013376782504386725194355688438378220077874107464388237831751807915874846931904944627950706978773954298940800769509408346150761337173106645153883245624468502341351411883009829494524133887327639696220737078816004124001334747744848003218108563592904122789083695758354744552659196263954923291497623989454012794599382016088815869730513080283741468782141158744829332125714971544115689270907902199321274590857008759797649297359209169421994056774337333977015212094850767154649234705445854661728986036787649456411996327548837141413862209916136833096387395368398635733108455621563459673926038639934586034044788671061961737792880221613613274267245542557829780836691993700483689391770743230283007588376445234446052386885379469351578855255473018111034206247010760749307616094838553657419715199335087151710037708288260171316480073004744188617100507814242250855164642786589490561433122048886663040542633482673742128906784310985486655689870061739896218780052148502207352481703261486492320953837398396565064088890392945202117589920060794945468584906041129407926597643756535702827861040330623784815272016111760271129492963386155448764507092883268652056147443928740329956538588810510906128500934700475183170943216764360357045034137086659890707713201474988826151207282185482085755145527180210837415273948787457313197824991120286834750332346046317012935149138671368254201033424775579854484809500438643535225594100105424696289966702537300922784842610052542507321082023727658695736975777499677832880458413475331833558391179734599136046489053842150481682145684006757777591126469211392116127313832466722998203197777858447124627419444313388516812162365246504937143801076417567354293734423801799167248458541979753850304336912589956899391892898479711367654127141956610514003673589030283576172406482381492607549163081344919961934092215548891737184532610878822252477697256377897066799888520175629676992856820567103422303750539395178701061750418457677232335526723107496038147926403273380512750007063381741344143503943963802259719894097537080048667957583994067780446521219900175775640660468996385060184961933461776936288253036046731228189331750442230239651064965897595483983229400791862970871035912805891189741764735381067463311009508895012283235050035549876703158806134786019534977374826898279673685980411735712907541486674810941112198744397020396127620303060113151105234264976539522488630597001006239674650549319423256993596009092132247261188361155614659993558280106939375532366641075190237251946659740821942414762383246986494199958371913330609542771236144827438272466567819494489056884157028387553274144944554438628809141140381053069863668814873480867076516145373050805511246245303524092554166381418261522568237706500475985690960921432589870458846430435671938820178789369498403539944081162113144110339852786491451072510755461885331920851105995764751295251344781355501290258453993883302709101896787964409629019543714861409089152064041809241876750971675416103578884719975223175387280878157742001790937692570760219511864677452183374603132767220535345915752047862646396666201140116773811640251231362462820357229086280293471256736559489127244549961740361259096651025864803588867723317220993340773899141882138797078851962660849363183017816761390065524313771697346998070710359472218263848676903470786418236023684499625525244529339687047741806735540120642156135176262295454755605839925871647144156158858421621802703844211153677636944500155434319666128909081569240961115740131166655743805528422406816360631830171382209789172225766060234760188510960206342879214087746066337793095893363337596649921898415998691371200725341614101657996438557100565204932854449382255219899428125218808342603791364838788597401782958802477876121534776506885266388689816807368382247328405563937179839059067981933267932607712663239470445959808287256232825125235057821392980315546364910185638566715344858441369485314626940757823273570318717117130893097119695777392802353008667552545263855497612472887110718235003612225390520569941285891934703374771251519419205775781382797019376968784224784010923354909613932780415119568693321290874833443860619173559273619936862753864819754946231530375748104545430987645004007956389287431879147449385111965152413948854626930763709237196352011872167917140932121381666093440393230466738333809843318790959458974034998388817939792145961898307271951406725475357610165045370605617633305676120829913033800533981741582923173472400871821100234966757452193803719805846541352686443731953290381355866224691065484271738586635694742649352694320296439068425490995487939692982340479243289336840724516049520284176009989791411103801153760764476494168531888837631695141776298686621660400935455203532567364358804349250085428826830080136448887751695938847569743724458954358751383581594768927756418762969266163961403279747053423500853923831829397245635627079162281272834244032989366422087598133550729433379591172704516505909654988314787591692831945746813820154366402899582708425985731147211215990051576774414491397862216632896743612777049744229160482679003519765342473660500970897980236549922419085069115761052520928884214934820465166708198399178912343642946988220476558748481273520642224922656692672632893999869278175044388857494177563068938561233835834735081561600458443313299266008062809272514103866868559392049954789698037570980553088834653666551291910045064515590652094539024095311475653864952758724056760442331290188060720618817337249234060035285379961400373159827873421928166339601855875051019470785740394376864810171658033909883389931489722224787344745422526806774372809132764938098363556225420839028150270224192388721012181147190027029808033541437307910650029452082611440219594685930560913227909320271494812566060139626996528932693904840756740003406066839853932258104222408218446137084932891107017598949262741147839685548251688145796310959272587701528772068740044601022572351425642631932296613235128621876194482492431911539363769787955678570376936401248245748292764110827133671741203052202606954394559404630070130617567220010223245673756472179057162489239023134058868741933236037424060829595283862891970179729889058145269629384554382426562820760703247760090000919943929257865359406393640427648669796719131957603779092028117436254227702230540103370257848876118934561595993855800950251459420574964030280825206842889275039888469111119933168857787626991313031328684172454429240802743220169891993540056765600961555156504095282702307887171187626708408684667263055905861830703500565256479333676370475569445453874725363438161628134114957576482844456073976060886868181234914135980366723104927552754035569099059026256723201657424792971526315444059656491515986908683114293083906973916421777711021707951122842733403988903027689880386093850003087318356475639876279963899372548078788847150096713228188042356538434268225693446781208626790332684347482443410216713947384456999828629359307484010533863610827697462241093317932013834764695661692389739487198483466691004400279900801237756614030963196128867064439880409197835064439746828087213806873093991208187213437335823997695651163945886182178599167755166709022762840604211103128261640305724475917556835728351711121892480790052287014445434174900703639011580606497125706411950296856989909935211150887797631864017175289028159076567909276487312673942011161801365313688999125091054062638188860705423995187711931697869877973700918774016877377781200781901014774355307367597199255194207166060383855414740807612038670455453423345409940065251147652979188794993157118211325524374492275465031689284098586121643654079664348406876377638262748850529754352937304616722947714572903988772278520835468879934166647541514473411634721211286458371992015974000335079944115467531508172005508939269129190231608142159102666540308140698308834086329988198895007948515387478406567317372771146292035259170005818257053790957227425566892927771078657772498843426843779363948058266629802409529294584973430353774308267756111129537952043169962681166240597014711840217290679885171739453846648493086568521910634068758721994854960522948946290337392642545680007347885493377455560859928839822028901313349307693422622480329897888891835996273489432034079680810526848721114443476793722461970490436625372769258703614714374126416393623488406604163850002867571259932189127282465115862524405215940965966826020759203241464864693267153667524063181769331280776009520224571697098150690775528969079185957789060342858092729077482404752876427993612578892496046690192942387690407485841611705914509107989997579414494194228708049616550749330964688459121211907647709351170832381700450794862957895181745488375368343124150496474132780406452493040745675014550000310462527330699695684084136849774836271918249188193969833259721748743157621200169839454046370713991836675495494724161499903391200641847352657986696011729145460964259195187284890532686396351329950438227784620997482533867764241835704340055342464331943080895759679453965603104403918693073382935942619290887293428905186118034542774445463162334321478138687627204485285236064731592672418321072391546732293354211047508206536571368644559618632456529495920539842455443806284416617200164169021540648028299217482233478239691258763641593380634634064104415989835887308008700636493806864846204330413139053699937360399436510159617362802469419472858364673458417530518750542841328197760643319037063992047180052047168235948671124771263893713784728534015464649885327128765363978124925926045824543698495623435214698179034895845304000467022337079057260794876307430506934417369593022200360537732633948759947121953099725562168626195863061095170715292762923349436173016035435205955373070077039363281872880779882148507839780040858608686834336985134905918441371840967105887417617304809326458824911259272955157074859589688526491785293363219287207133809242183620196782663046875133467297333346751228964533346761435516518437635141727626725387472908502260710567054870095912637458540848001611010796642538426189546040286571322146023028376067902983464944661528764664598195757750082391573215340580207654410997096598812826907879682113936648181040093158978558901453641569825272648087854226916664670504563171524728797245650548493899790986198338032736264453742901131433846155179136682259230437804662532830147982243853615426237990350861679923773667233150950421001541013729982136937995521487528240884171299475020173465124694542516577054872584752670236165092786938508341489011411940189648290201545229817786621917646138230015835535760846421370101669941112166487337380074341786443893103470248217886115758412027859836737827823141126156657478520323828151156383670160577326805962827369277694022128368944868763977633298274287082459693019923193466122795962970886247811028722463088345737515688032501867459903391332263987106118342415680598470206861556688926522517822367353312524345537128648786239499082184900664991759069190825918286023364937582592936804049924605271883203076083589049463058340876632587199445243977378587481949595771522104211957140751188801487836270412261570866670176265227829719779936950184452022531281307201295320690121922089053078008748975110518450374759280566599972478411794663828942582707870533184755560652847463547346766474131996539304325217581041840836170751443158908321425538217161837010554662449749943266921815096952882082559698005834712026554565220677569465710605577972275761258536155316964917704234209588829945868575656424004309249724054118450826798781388006560189668070161211636033152129985507180769940946824216541899208825423480178617421266141876956218047561938967700190418900976181870625836470513319514937448386829578131878491816643700722564598183725439027618846589922039256083723750846976714400222331446529079377915732431674145964674325330578886558768899768019842000007070727323439040000949945877934807259022855617718324039970385770995866846654824852103719962455466638349844884058573221268838071186073335760443660916533830366887614629386684363705590853759335097837923588212863979490744249618924173303603795947963648023181283292023572353588232602243226114102977499717310597563698512414664082470400889225655307554322189135342153222557931482849459405819136495490525138420004199831461986487883334613044699493829435851169736592733617069973466582570899316844299201230438516655638726058348164696080757403169849817286570084168027657008861365599716217811679021148322490352316776021336123863991577989324698074651274733424148412703280817335571878240270725689718652684306165586516189341501511465677087671679992433030134591707772883135574673785625229171594211314299752875824410358754184163195517750834452152906830750227462465500768133724460911533754204819027141964817678718709671404514830830869041850016445611181183090126657405345871585497494410941273183448950769125761259197732629902171475530080005828671339598947780007385001799256508153772947577868441686874503055222583485073272237676262747212925752013653841267994763263871883448086278625080316044213234911225014215244096890498528246430032128674604434219198904404958599946341590320303467184330037531317753274790816272921910240595527328084611203981954911481427005532956683253148757046536587555549118642589992356320186534304755691497591759459726431236856625914610292267016638134417139752769689663914292598469290639452363523995963632857468642177369553026495748870467566656004610557168566067822074697931693603693344404826796204782579625550886740043454323344415600517309329103754638643144448593424164405503962526629343107736601134002518289701221570339042987016611450173362837350221168415865404072854287065624231171392845121332141901300768340223903130649944278644944150087817883855169585163586516735034493402353648281682619325219796861650945740986307103547347061707791483304219382677579561213926963578850516420293609386236865166885708554690022546041297823721048834119860318272220780838822033402976095234751518732698669672868899404617219645571773856274363174778116551336768995478010999612802548204836167988792777943947374917675676696279647679516841855763697045824833695722338995454985454215669353907216035389864645448611081621162721897181639507283392171047263565088536955853120644802296769876211471921134704168866346285431361207386907055285108794705133574431641185576558468034649787850260650038389376552244337637601180602443887897785495428402485887591782219843530266425457865900478866742715110850328436003935083231471834155170066183042723723845137586910644299773275998434830028724637693812992975161026694234693883948317728500376385610334921986646854838783320194383277392231272520165600931041532516149401225726361652675003890520350443201379892084868515288396375476829337510818746766294697184989145172134326849424030684070451062167158912166604418869796102283870027343483264948470974723554248955371851900547262103418403373396694302027217734205359381738515578780740103778313714802911059769643364313216214008374898775661106977370291556597591937343535184266608794434328344385636757933002088308267463756311451821520821537082691026761531703719946792651875822851190829122443438072570526087394145062315010778056330403547636083916562388528472855941601015462899079920296496349758476538160460773200502655053009844769198367923975997144378357816299944356834199894931657583898029181560770883264391478838564728108885036878139659771470553367890872614883872607471859638695715658668686109639192093178645585813354151784473166984578507002856170973908478121909597620534483651189543893445735987685952718461684269025034856995898617654983154438247530529372958776892804091297275068969600019354309727435097927586633556148571580535693439277353615889324440628505193050712367616936566921199877897483908588208247539374743390274275636576993236689256553315433306876557240041685778499660056015554534656450911910194792856937870537614326665727765352395274667535554945556569182378731337469510809608000584652427426057378783685846234430278105175067050891094291523264417508380699564354004059682504980749657394554907161131853892546928127147082972296063796139873725009430715353083106668791657753182941742431624385763239639664970368370332958021712011210668333959000275953287268114483383808433156082000272148192376084446778111600789568296532399343505381422271573684820024336743636793954619892669311149899647667404003686495689999974659793792518077228035071583487606436915895986956584638501686222275994216924103116891806563035702838235316262528195864296785422719117910358029375103366611358357336322493301972447080364428121826258730398691768942632320303008686669891750673912787019320416708853624929001735533532428560959203050848169238024450819168317155006924594217868737317021106807645453422245569686230719099407479300434653892045746763647622528071827271237594006968101048954963937650514730536594744194738095503970944832411019014447820797708589226544798991176758738233677243133672244094359970591100440232532361512702019343249399578505327568634080311752973887530366340463775016984886858303496858226768481745270495943468837447287090384159886925712010970915099098474896440556287920428218250694868469048347699033484785306898005068160915328847779216395829431930045708611474970119124701770972953473001665147697892707682659757197149725583045080293497338984179957493397138939144101187094936600983580115812134759020158810844445460708380896999171368095510029866553388087221101254258739709451743392595380805036923811503549935563709268923960246958275065524260227288571819393898634605415734217162023766891726698271243956235077859967629912820079075452836629784872358420487627358155038205663189642589686911199434099649143933057724547257191059330512592909415493761601730379061410874567437395027670244654057827537032222969812590864144207686951201016288402291832371025101752717429919163191142893824915677616905590471933473765745143481827136943002954935020747860792210975497800747517937519546570461058609451194190536116468053304387600517632580450563085582754000914373762380078803706550013150555735592805537245116064927580329496049953522399151512884809767749803168882660964784754187211189500149870646512592446250385153765180693956957911250517827443397960216898269264137295484514622436016394202209065885524049599950515338697530030668080068554320775808143895443013288319186373544723343833797975217748589564269551178565951723505239687779275028594341824083020096968073372392011466608833039158585108864941481981383370543597190923330013087711569256406439595598735629152063297053170352900694651743628479264931485574903386995758276009277607322707159650475245366001028301548719150738279159325610621625956495061354640806419799267579941969168329598788733596753495517585345306792022607511953669962492400689369266103651842205440154670264315683344826634281100219819651008233957317479923609301106413272310410807862539970258071792904807318523785919300802190648622766469635329289132105908903155192457554402219184941657133512314008089626965574978502388262456127959919328076626293453141693125862833930382778516864148648287647853653483507669734577337800990072987678439442812573424400065246488403906525318783012312262376862617963573882080410885515565247600330212614456640229835709669104501932206455931214241874555196779527960018046373006608169436630731676144284278749076395228274050582633265209372776808762187491097826326917399089649487829430996147684568146118611208987307445369727726665257221458302323446338259335496137182759259264498109535773533556746108517697334561918097084996152100424775934179730788346956047337596262742499862817130871695907590717496709800608361310283294851303771198651103933545395588736831483234136503818580196957296937034818486076673574572691400100921666534331039270217066564561368748521393598772767234672074673715203696060695353021442436269278358712712693462112150832078288713068931439850426734918303568398097599241909393853970205485291851391949293833853010405866488909465878312834069665502882595951650542626225167857882787379379855555307117342015367554924057037407181340097469620097621892045087759557823912008706151947534780446609525392123266319705334963305000555705400778028431548732389666026421722067499882775019364583839916758811046752280124982890898835826386346791165701281594543570240203012056971210381408642034074323316339590712232672873601965734770958219059698967050546903268813738917655774243404192614658847444398498743028458289137969424855346477146444848072374089328638806746016159985475157233517283443658919504647828331634583339656644083115468590048880606749703011114538380330930691233576714553271174111060948781940503630324203938675392214197210265590784502362638133201062713046386419614887151138559000208652967058929222783880350513116519008569937702724144027532085586768335506284177068522864695245984927059742616664080412726427752274747817058762067567727581060922773458869142184321084351080469527196887023394614830260146087109702276785452268873201903467391735018202822155078000150208853343069575980727216515893229132489835701378859256491664704266776011286375534755059801961845482644634761939109781337447859861943076874810553488951168022430291930128135112802249300370751866622132804250774830196721005370777546335705591946043473966455503207554771270622673842158626985511824503327831524227581444301281523575570737198781609965052046528778128257798800191736813303599682978477645971902064128279709937543577207846255613939163365373168248388263901105774608293431957616137653634110526082871999102475343081693929150856892841047385453561002338963447613373130902559900917429562742020048621285623102304727296119890056231457343206337903652139392375630649716947269269830321568050201636199229047634241214712966420255829525021649650376822767772485549323023563171084469919666670256705001501494093601354487622076335883295152374734305005215145063060753944988525940726104161558647373164198242771837450249526282786900544980433527846817416104144388636883548680369073957190458376814306250887738500334935482951955156518317954015433592497142636111770788410109828926360036630843788847461238200765128118856652737998571589038577090232496876260694070216790517143020508617535728114416451559341396294198176010672642061765314949212333655170303886949131836805634332112543454911701349413077546865960773647747988652384491645410999964469018803982494007319182088427831177904701272227211288078424252738666085473820092762074473670326934723571983989037850127521213414058086119049244000296865703135945147825143555653481766612709774689516728511010434288037143057550229920791047454083474346100422197835849881970967618899407665764122401539967359378794600820375229144618796589019883747924627447098627904228849895748369728104057602425062205665954824066410525351787601878796125689326247828892582896476550012024577973263307579364392625612286304613910901670827371514435422624130181711922463203539488731935805067152037074901942575198145452443607411491022854726787071866568933155173535945764559818680110573580499521518861332759222997391170921751797700096138456157428392982151725847611001650926458786661531049865348527533787302131088670975596630461970584387962461370707592074632744109476789449126613304622799254831212813245424558621407965329466609550772162900578181078986565747884796944435462443147197846946035080738120897158849022412790973033244537025475074999091296109454629151432499289065932817971128553082493155134777563032208287246962299071252150935023956280747689886472984562033173095525688431765686011187735223987615893966735636582065676576700299222208729278672682640323017330115467135550032820771884822879941225357274225928563472710719073297266975828346686941678246243189351532785005165339857271392090343011213772641120283179926143311357874092332564495030551848855855217068309012328927968140697311150277495971455520610883460940233990804173308549371742876867294280661680686622335522529400096382165362286204479416240381097954728727565573603062810715455378096431664466255515869345392477841812557296133278191496381599789523044789631560590357317364510010352242435645799086671712076474156616309707137183117077023804058830033783567075032061147814035771467426073712120028469064781874107622247295475963356116247187092770961049323545074488037474834863690588635631077356509176643359389724398064207705603184556788888320446691349686972229361827348554968830652708819642919072574755653446388305830313691127344684312414369956564645379154960150240431929620422040989860856063731714999191183175465494073115756107128179488817702543503680683031981943315864443363461959228259776676430574714676029520959555536871343774945609703110526822797984339168480587909303608785006132740459058852581258931020042772976534780748609272977927577311166580549456904331782494852962162829877659826760382086653893121110621863530011024464356328083535910703801177400303875512303960339506091171664305085140987997317398994052556140378953634258087469086280094904832471221815033226200214015327005427747774364261169812605678223477905865780720902730516061464675996998300923680289192528263949875430408895425003018525840287202428665737579518129646380488247762151120562471363104312806674766576834700899164869508394882761602564792627299915457234491524754122438934531430602073426713293254979226753904597140101742468657807645525017476873293683515133504758260883704104884056926815912507227280001060412106507643527772616567483570820878095999960934268915940749691096623010168106175118301325146038590980111529228957294263110733809387356040319770695698199584221686788448072055264595438449862304740494177766269841933538244949462364232277168925026614833179480289214894233532958418854649697223321037784997064495341493600902019982767331942139405754260574741656154963189776310706819626306119564186232760217975998590542593450230056009475706176043497031490582540620527256988785911041181273178361750904995108269976837309724548470736304581270631940771197550969078944128901806836732207578982867334534347416848008341464322459670313635062502562388132115243055079688099829036881354907967009788190412469929922485528690343472407791672467842075632696112372749333286165300669339672054429026135586538906724095883813803804274727712868004236685917133295286812691257649136532667083930753017436665266924564942539777430534506353579431204770022432738398906637993438905996918188322852515845854326535280206562056107795972029033248860308737407517565901370323366012979441810143820181203138394600917221716396611644770132682566876512595717776651095058116230180040301614643835194207536734431429705975297013778627864421477100185646585149500663903621342240566589234542144042411596136449802878208409143628268852029381961250195229411290752399010605735684278355715428671277527683061289317049020303718132105143661719592443265520533310686184200052560234394525680486140468869036495136296422735824879500799516417559229496918521203731374325058880993014313166471766222528507995959610642905115931735837558296235826913421285377492288885290619029910050323817546409813684576419850936480175399253955941178963853305586490991749417602611823337723548618317252624366013306225137989686564602244407362826177987972724939795337689707251836139670120083013492236673192274181413193707495287123538052093659596936485002033110497654855521632719638809632297838274673465087301434672524197891942648434379932004835884131098635141171210718179392602408992878777630226764483043544723262754554977945890943641252848434435982630772163664690657410200117867627180921539573619563577042756977647631298758502084824216763091122915115992104640073584996798087180500984516732442433191512908674352612540110796947757017316551124621270528720241171212561989449636334932050361085049675701260544599351709542373513320635651289239911794341533328094505509104811107205414170755562429253846504428619994817280827222204971740845493174798370500780197049656729506029095230448228667820921686368694383213307687617684414109602695705854658795500171078986351218401274292351497652060767953180950068420035258706071933999601762890269798755331447902965393364248174740109266367362194409252753823203108888127553526213361332914435172287775668494023143721575496163896355967553898115817206388942469104237047822367046654018080587295044537163688994168983176875246649462364034354577925030527091137823215914146753923772013001554425921081201822061452075002353924346989968616026508224893366919020074897131559802522988506983967919286398432939369830041101708861427757711533058089912031906037226855247982769510947905679379102216402722748700117757650817065613492985202873484022417145849778465189744818429368774631613182618182245714052059429834455814776913567581861761511110684199051072625257249270352863787359771068209926451647102030255071124637699744186214164266255929514092770991194674854261914757691960238396220092401375631997913648707412141197434122773157618578285481146169173418795187140149603074833445354787246965777740114454665473022377110338738447596710962063382483778506872671974605119598765957220480411295460584836796071961712208998791842749812063292559866197961991625252738630166686917462020327224330230789576075786305075174072858969496838965073538225074765910095635444744635613546381579777828888347104608578886517367745585512042213966688129369578883176550208885539135653454295374003487643940599934176575138421612564406231642376431010503781525108265356589673922638293786382911682264311243167372719426273990885043640465834856621547717936376839539395948303557887814086862442009002240802448200673827195694710887487879258237893778897214469482219762749010642501862263689196586323822475993439162636865373281013290953317829767350536084586226940667553671407619480348992034117183854804269051169235329429518313146598157992392870156974306944834262938693678955049769429407323853549026081875851080302271818920273437805126944085615999818818003417144753083251556656172521231259683194389247553964313919909548375181149816535386207215892496385014581299831551613872699042435984603490435092378975218866287171219157699653333554861865142462728900654530230860670358048100636736282509839907624539894671588327164572150229173434335246796614410739129569142017170272112483627681602674012029666510628013650089989847290908614006975671754140282768967113233972177517557326580976980083817200208324449598908719854940202682610420988957986061271585889345633555016733152943087751119887780919671395549857972100719918688981602530694204794281287601705944550146870588282953028720984072636901425594847991736583073477632571948688772073211254345190622207898531724853568307382267403111767655791763725331221973565654791859285685122748736468186083132603721023243123148575101609346425743189140664271110785913120789552005548957815180580051796614760177374001319109739836425479600706418304420540653146190170921974398963813113927366640576846428546886800323115026865589126346006752846544493637095249817217291401040953965310987943413331545366415444574345170310769045792528423056865409223562207956414622881175739107580470894878893379392410608245698401038565829173552936162534847446606251650217922213886770736616238299829675225478591543256780796388813560120513166191293117254906371757070675498278549557553473128060894949881169716097444583233743468968505318454249696943741340881901874549981104877342749945181321294057598671371784054328945489659717621284626500861236314791936024818528529721839667987992313620603430622065207531115499886801159582276197018682951083083244773657575491465837813519870308971713294461775925469142033597079219631246289955730235286167192024135914426119874985201935178438649074845284077684339594859275039259660614158524170957208657428893341907099588999552158071648646772558937596229808578460604833746155714311905447002953232264566474121072532704426527475621737383457710652926132067057506467102123125504260028397103794832628958723109155348413997421208420882694163371963320210976464068167676603977798150625794345074362713207541095922809802459285686685119945478652148549869878093775191514932076964732715610066285959609050608922041297860784732078886664856218294499681701532813208682288039651274916948392445833310509579340102182816618575113534140996777593828136399392334770905156193891658057384192314774579280649634787591401096161513166574340747883944633666667215717906344823771438737877675346192825517126207724127108666466561962434353830933080872148879546972172100509722155497734557308859785430029694263757673435630447591661811180720219388921923262711870574358218760720911897673815101210937630625776098739527344723665549101175404142349387100218953307626021035128389698544442514876829187400245147306583203738073393268298863116098087054246634334557496582085663823092762140878188193279172735265311813473400798577928648481512645850748855222276856862408222318870789348994887090482142558419015911826799087967443761259340979599353542093631435457354337296563529806375422758126445754763543044669277146587351497095344806698948659582668497099212375982112973194684021612766705368591378397239912819399113304086627046173145112692422977650307632129313200275073042020272995157515537100242061571808090093428613047723638145877408603965125664056158062367082433402712012504597536976294894780482894344198695252863047345443161359211736499598326536101053292421744695242299161988209493458095098798780350464437083914565593804110506888223230804637094122845239462370533266257230535234790904692004529580818867194771788163085266141282308643313862780045224975982971692383785166587110721133389256701719986612614257220707285706884556769392451123801956180626413272487056596422024821400317486293468908327955594535395931507698969541207469008157828110757445770255300939200000861245402796750573570704948422697387941783162764511993165519340120338457722287434128830064299176512160043109966157419675225029379128488299126937397353835622162868986097760505925471357080002336563331864939719680688773739382243032378156469138121078768500058339210641309164897630433433220166123550779079702269129642651334902607936279910403740234353198663248109366988539552750070889752274362341463439575147014396939271912686091148242515034363406602432281227430167444335974468921122552534982603816369499251034690801639976135668772397245293487492371726961137052665945189975656212291249350291000936035265163242529549172269547152247855614110215133734380284822287365734198223713469767025731466994977163832085884509017652857619808305177144491188028638200147151364137071904877418498087908863511031938928425918532666798120240649809238903265952864075494486118218741842021094501857744566091720432343026067455502989959949679153264806539230567001358342505579106787484303454398966432509654926922356323918448624987448455992749528653497696626865322350381265855545085784499434680395478512168599048790473614126876559440558829774261474209044527595446418730467595234798794503685871549572163257176704913852069468403770112811119033877753764163961719874807655397325991419970703807658020249447016311290694330666481244359248410523102396477226661585324909855305971727716227089221824203737079597022430166625404382666104261793196133072212674126067077499658876708506783155433358327519247020594178488414201941049078248597063247790411833887810383834440157152611952567423532498852055755252270125458117890636439954575574325024370311650037073346493474119068174767371762039350331930014930322446034994840321697788779483062905747950958019102517701346375652649833267805997964362103863384267256226158859718676727275966053223291454727590409020781681378205218043541629307515516297903820197725403795848625500707359859725068083783780237206745171332011780708386028128992314612374094907570566604776292535098484819478229983889953886627527216634015201746881294998174380067414953246071419097825776294407238274490826334338661310026235747462418119374493299963001346682430674091671201014702862074113772140471542829310890063022936907195841339270283420484457951866540682850117462922728201684405748823407425923449320639247396865149926213043048888431925925142668433949628218634276060295160043031033138084086728661573244271400108414515727874952428449709498807215164315022575664184819920795766997192136938613470655892773729631721007939391294953614298420762670733928012982993586397418009408503342653107727285643582108364593319024016681372499586106436880507882787421069800146007510926944948413727130230597101828769132029513134317591087244691733838540668173911931479270863877556381871012644702125601876928723214843565810795172771898135578037274999505322333784801590214148593730251072673481463234795290460701675172733863808516997215000006016724674812341375296981507336663277390960234679833973295380928615866966860862607089743393440322756865016546390426880568220900362015029246692465588606194125087158744914848771802628463385047059788505887858689594477433714572151322047548312868673668642767625375772643097188655223836466345373046213343789787237040620035331171941674372460394164841270270888492849687696490198097890064676787441150539966071368423745807353606765689825338728668513840517084840062698657913431270749967786532662935072681848461294642718934759598024978606404429515200603654755242703961489736174886112441721292742016910993204816760254424596745928153290799005748269993682654757235518190839135809096165863683338155615447866938692857857620362789597437872647405419337618493726169210348406889635658283831749830216391419703539843193170517383172365534565763585169248137280870381468881710120272779543758159530837880348127343138802413907959805535503552938928273813463144611826702646160447217308688316101802304344856873267463903630121651044069811690518495461167926353715465927740509661064149472578625496676222987675153876374612788688238925510902820467482184541399093936739534053493348082467257520111466220832237003532918623749354801588860255682755501696228634378979389376306478888313546395346654101589072105395927488576771230914035457801425677979178235961633676625885525021067011243080488328065278332267913514364168842766528792287608240154482223044683261184090075658135700797446505033236107921193981738895062789460507185463030457131389798142938515282984394910330932928732131668148868440899913951407953765317954435573402536055888562062964285404519221064602226684674222319736918581492592297822233744525594368044013596595307366395997776062327016015756030333657562679403321614492385869069116862657718216937086812129887254087892114734598966986957965727773935338765580465220072919254043372280089769932281067070049196036421805010132124970133880882126724490244237593777124187543776682808398144264135392777390265959734498416369843534857777159892057639991594546158608336562286305762605293727852271489978645360207209758597430670554678825303489141390108260563260483049676143798618327283881904648301619894066921272373420505374154615454169434784436324173454044923732886331391684266390251507684853175844283807482559500835257111508097965165102239850856256679030880677704820366931132987925406461492057142670188781653235338313714979200975355453384128785675341157828139571106234866055763629618934671901299174880740788536997099110476262556119110483925394798737505098338844106973889586308523223712865779192113910701690022053074189027327181870464003486545780875749794139538670457851892293090099982648769047957773118605500412813027970376064495380057346049063757404190928219445265947246122438352651255662880358799263704849729444365402735166238277719339849751808935533660127904046177520962688788251555287056455800231830218027344046511175990925981327836976775032190469035227195652069174768608710678643101540318734947932753058192231434371551579895318025430112801504845422649754380296343597135252715746329188367305369674361228634049197551668585066797157003228201647178587909529760848551401105164137592003576472589656119265771024506885130605139026275892253440601100556746929016886671769104181245456739601141623940732839523837047856907391296932773782544204055602157751846779454435790046275789399923110133892490178404225862428265708569732112782596621469804035227079205567168532828856969860384154352201718836427956237880235168830185517750332946914889868046288457387591661657907519940727148238242466035903524002992873598348460774165244779034761262843601972530014215442735890000266983723069868209146331252108181794367009714782339531602371657758034130394922444896723918579605681177618895927975270240180099713882357405730325662609245706223983066099256336238690087031043878936803736989464017044923375794067620243063102275161416875665407136474624097666030775108685245650007770790426651077060192767757408186945326774522812409395443179510136446542391399406782403692572817445626397370099536409834586767190074880906600678313023829070133363540738465293731064300789486709642257266879891266034542354257155125033895894282211188574693357752193496875243728973371822427709084360867131527825179134795270335240268512099913811992950191154157402150628428465907267260962423677754678301636104500743932427404000923127842714886749651104362287484442632143184690934658347231798139658665205481504259620025908224320412150889941711383866895986316320265573055079947180918738262688476669956682945428298822280607082335511647559728358658325045008488039385300545045282327472547622431167324311040492681228829734704649194676383929267628012355394619212800857708428489523264067551912360313777213688209838221122680906577818106627972103818049387986616939235375737131304003391183748771543042118223257470263959071009997536703098663883205835787856007750487401755953730175088190330700083716528269418328964517928360913927559959750961089410341903820593291880019771671160371675000010152300184175390483429869420325962182785509483431737440988224074508491748638799875831126341662536795035784983741532447128999050427801475017902850413610865312069326748319615006036275591361988253131889447976980663800866702652085139421877317943864143025373393093985501155073050523433662474611403544101628255090004160273703160104440009260897820039165826297364484107363602654115175415253213347468289339175579927644047557271488544258349696726962504368037403236073095576489090981957399065040770506767519852136010257793699656864198051662423896595963979740501462272539696169956311799571076226157004228701812962619424604353786150623170942756561705902263226381190677367244828091819311263942507090501691460977877954629373831291015994261756161514815527126717893368403586500729208140365180476785544959273089549559279841665036183207906299350729823598435383009526490219052498066980865692124256698884850738443025553645076754161384772802884128376100095036509577449231698611685349407691670919656032433371589739921916017377723854043140989773988255153736748569693200013123086003463196225636770669213522289097462487453644221345710595594147008421697543124014064505263823055629621906217443231697145933864604356821373899443351220144234513948197284336426519621132990727779232958215596531396975658114639154062799567352542987729077265808246200770950593495932452613125738199671637315768660425681725044045204909203966083238639291978711902123311846814045982969957357682494966881241032767145856660105808683875721867729467801808378677065480868120059168896706742042157890195588817078763941926165024971235040570059964990200237888553065399653430247313121397856984160974505648493503632820201453115333244142511012813231133261598367606315317174127851424518609892364526455606964682311589597705466827987480693976619660882707273102020976517770941651377199114022730963911630411025743858419283667655493383778442765098274724918090565656801686898510640042517863479582769565425497315681274672621250971811814666536100882115445270298863595749186851523379391737732779450824782030485865676861810119314078425343092532356942993521641383886890648138649675310926338642340106166693247868303327619027643926038763608914380428038841516184362614802681905728583547407160648633401394411817175312169265873749422054830460871071052320623881034901638774985990924036221191634331864002793041319776950451651387283255548050758931472648285185098705430876882103434116883560850337920988767624343352242235362054994493303139084125622235829805645645639197738115001832852973058801906290639686624664266253488083991007146991358777997479212839448980349207825623794205359174925711785495968756697285740308801558343884380252620306052559163974867034638264599607200648727625973315162474791525530727650516467579519831684034690295919043114235146167481320654902321130759782931400653512284230719923020671133168856477847991306370807937872349659560393619446117479171057536829272041555567713659797311623923083827286487866870875402506242672503000664607711382811678123169949321413301487620271525364828598749983386810685072820892661464757022067273503515034525813314835784718633906848723502193079788438169789325072668079405204302508502265194020944410002400541522187485594042506659719833932926147107432291316146752614841334505843997219621448582864414316600559954222755061195773585403496630572557145297845011357374773730441201244362521218056698708407703255222840118938874170508118677958333902007060319909172086120477249782758172794257525608711158008971759045765976428677365032529198032865941882476122252573767990869647214558591309787013901789057002975166541523266019453742651107926125277422364371564573294482156029459040815060842842703523744740580594654121962861273169828071251169299624237801775070086663598379579693351719581162338369169225219017937829251176148144171404396641968012283255646038046070186773791763277230208667240062813518902819182035234366876627472498801841094263401812145053981473849415034542796347050425528239360675032706778365693145483809397214963185046409870415082670219377401553105394742022487827974846532118691647681316504663269870947169378983596248151464461532835392903128856631145119636421578050378810097129630895927969031827221107591243143002532400118190182379533238118062853074607762708555615076367404136044335096398460555538118271811760455559527955834376147138022105268396845121423967332448768419518115821290886436647361060302381189857110448878921367828353422274277292701004201291223097654139886436712135551272521723201296299904667103512954874885161657553074073907434836912140257314725703094170702957505890754958162852166148507349947791759974665962161048279078894807540578576492380182162751210816047990220660170829831981140527373531665124610858210832983766168849358600882471986406117506465556451703309638420382352613729827880472325255951072421777543304715672204112046660986021520941117023956510337639613762762468559780848739901663883801725405814417447842876601642759561711535125308344435266090121022242268241291846941746431493488003817902028942086487400360156037631947069669981524611793188861001736870899138314197971920990664609767519540641569208576712098663804366012749346162294821215814776408064824335668096370010472552366090070802390890818622515838289597510557547320307650844760972311065328757815266925451030901450595456606495222103140402379655117913856937801733854225845367561789759525351997909162858262574264297576252646673875457182101739521100115135215001493904166127545112214938429293536102578950329757081459480042404053658836224994257177911747099446184955430970245425446967932791365903230967540733634775995214277325125785951897973936747539434985105532959881909465020580400628701213751190237220099072908355565411508848500381506105767648539178181807483155284165919017616651595381991412569248376704205623313848349973860308388493241600148630028195307081688175849630746785184247220919718600190654513559744909669321921674946603114689901014536846985223154292297785260613766973017353427692130540549414841337876526993368633459798019264983056895587237688412654288426625118419713772618301109754712032930186006427574342498474303870826306274567933506435762544714709291745338389127320140282825227834718909190168594488793308122228685130616176043889199023450583675639287340238004873175784164786469324332968113342145062375318681592998784645694348891007223855261353493164603101465978392190860575365912640728874708050723814147332596504145258647931208681775033421620426274168602761154708361926025724737584699845426407878693600359290658074891715119373379078284486840102623559818484477499836147529827324301409483643479104668808886933661020048612124123269398117543344344138295657020569344402189238716079502368732406667130526558969472113701409361769908186014243928226425233166505545284954098348815169003963657144749962514738552514592344660725270695931014242172609305085382878844656938996298172476806491293051280250537631601766904618600820819516437959142101864440805310656205796519760268646104412082744061380328211978368119099771470908869161443650837453515071469928665611319698808845228500753603889731257395962587553267265501981605259113121424168448522107315405794528282188026401634908716605761008274850474169792550317513391261273972325899627213025469420362271590172439981100043104002274691634621280819517215301343318558687812214100959623292383873209331442882108626991068233832131951033588939592791353705738722594408305717596212791359646632106474994652051573685631686503145031490502133344871536662737098081695166865227555898302484857560400483544248411400550655745867612402571865158901376189978743020650398964154157697491541528022110231074912769253235566071677973452701469999659258635530698926428535604002931351389586240814006844772148865414364744898054344363186213274847355011168940930563880455665085300717515026622413716744501739875584986335543878131375923849784286386530523240516342849053205991706574088105849180051005152953161879496794016783677827250091620222042070941179067574463287370106061050116551504330097315415392446930556542149201115634353750272306035031598503264043160996869572080024237857458697195220048492090004102637014630098592524444267646946543726903730867365937110944572722896209804496417083939966474482134736849004769831663005282634337119383598040360660335027757322316523448607881398991205593959164770102814234836959039575218597749176112024801172725097748774620413305834422619008809156751360526445734238848435614024001430517438305181725034374936937260034209268227556951600445042619368023848745103532516134667658363160775896922178172748922874074553036066767418904520993359932746330008056077801684026627962371921662489026183974159274383341572569449755864908601933690807042030447107006930409639688686430544408026094598275618408363118746545249333898892964069921972285730171602203381263706002267312882970659594439556774139515133000067250929539646179155191772912573425746489727050861367679916780020376152388068683162631880054892317535209570563915008076908551939121971832033912887701402079390154391115805974968757941448863086029861010211421978461979457140609079563668591239416088687256980956141275449602985240006711550722385980694011872176568137832344479652540932092990572061628930275495898948287067970728269289362162393818278253730627918973509343705061294358721199910698918028987941704892880281524410209529484033672096999140856807582332013222628779407824434341848181543685242837126857119946871803282595282062132560519291242394344045658184685068716657635023327559301670127309248416296037946463267593894510425579275657051048163914758711455205954025322439496096346208719809823813836863867420229208721570732673114277722278194554397020281948601640642375605003633970871092133170749818350155892434071088360034252788094256821059961136632222587785965741302021354051568288971586960749853708308810732976478175142584311900257825013649390402186223683466760467052729482817960564428043639542905208058337448800155356017874461366856275348504800069482631128290802756603735242557482716779371382865585645009954387019191546454683272715336673404357911501743973540257278939512306023556644303113945373837301831255446526891060388883887976142079541699825363164847063086409846465837398921783185410425857218182584834031385739944901078874180553973128447359084160479986629781713485557200862680370711585866851130057841182900840467879416676558099429600702699293465564297239546068009936373369169331445466348989024676430642120202851182595061211508145190302767500758788109488269966584326211272176034015000262281818256825202466742366465562668363935379725066576425546320289566450375555392514757473035764606449930349621204454771102069903465214715907356859090915445750405286809334117907529051660047211011474492427135396398218509386420970096925283911623391403416359857804070035658036375844721896884423580595446248742673908066385943308490458930715920457834922480318120786357958087444697265644078006422707361053353777959441570234708984248561856915023275871614916752027066959096913387983961890014491362736253383036739892093287263428422607686614175981184472701204000303555091447364848885672461844681358823605114412459793336807464196157649810802150966082434490341162354273567342645214629597421909374672154942564318862478915605095128800229771345774821976779869738999677195039636425888427636361160935889808964670312059670930066917272931072583005856578774260254008064752992203270411082761836883512725131877785557791141593775848703259495501218519847674769516959873668010783212232681618940089570893894596972583379943555314910365814498549149473120039788154080661746783512867676450508522055514491738786021631968148068630356491499545436601778921228890184201559015989772575514260963698730577545083371050134253027709452369199103195710992478436554676184254044209175940066119440263039453686659393283592739865409428067946337704875463291036837667112728871946980444890602913829134102878032290782885793055845775018685352725021898756063736884838815026574563150662778300317192157428658008969721374705821285526317894438429059464975058994216454174098883923712936145337987691411837596611344844606241825147925525531531740052802104797806946431127639945550516007443673477494282039552762536186064020692305022285777932074356659409285893795985326979224225840843487826846569768154916774120092388111361707267565760469797049973760465136868293068087727584154865841976221340701016766192325285838053152792494726252436680293127204503766645663504480390583347272234888485825580444071438156682432565491817317853128571889212385945202974265142271643086461680879190282879995461374180999721804029336779902144035063213290579212202779575838514610919164397620737606049079080922454602182519889484873513965647007401735839827215776025213021245240143875602827930585898232524259754051296319350381886943815884957684028220875032230484715667330046546973752461954623558017535316648057565674987013057420288258669125087322230460137809649724376081206305631164295723814678343382449397718825806935807991574538984284650720174113272828002764504877244025633006113630551912145449673804373095601275138617187774449431904129696063743841253320483635118010403371708638051837564078845956805153000568360287591467784730542234491154705512908920940318436685833236507495495679242232265816376209900678212238963472727000919701817420071584751960957736889139159112445314104803975950170496856232333926612680622037123320175935230779988759751756607643330615109906009826733641704214036755931765548328977552756179598737312353885848285213462283710608370291144993781080451802396606510003488047290170381553856912610411022280473867200796006908193707524780009103435041951072540676355964366813053237165429456165441411180222841983109516461044211345523596598994509427754691231259674791227630735726111485035037381114018310215454860614634442696471401663240522227308318510545349931960286599104084303914442477958868637814303413738778085023817737119445809811715454357538246502755839097367018250267580245425911600334481018726730212112671763515177340189516146336474517553468529865917253627949294123928679377272232880171783319033950732986221457862342513010221955524967898659968774369854435900990582145441726407834517005404958524138999759308215209344665201468916604793850339581205593087955549628403080441490339741971643727833094439635591518015716640943439233108393097536487804973724009737917689170920400560754061915417080934338028009886297333269437898117149602192937374056489704365754849736773753791916254561063846146784640478194807538321820249882437838338266223473073960615963050546206797783516218597152816846809752586419382811898534389346736751791901472801379566678006651912065036869216818811585623003849917203302294750524224607423875545934713364102041510995060868006090729674449012215473503714686749480725145507403232938848259462350226131698005649444136074656959357179634818673694194366215860103573610991501284920663569144149912449078410749200645340438930384278558332521214412319897212542068064280007300630639915215154028929811239677938038233902405407445037173652230272861754426213614046741672654786677441018453900717625012327371095391869258649436714768731058143068680132014549835997726132939221929034591022230663261965755850491876674939442842630510519111311830478743832404073081663753038527967832261495352719650934451705182748533576634279929218517567779916888946172295044481195231959585491959116210401088322969492945177743459988353251174875847420146444438498537210653052104223054625605032301828308052434331207311118739005206664848350976103387236279259809302142534605025605430047529359190527258001673106139124378134671821201500776351854872979072973867665058720550555829967889394692245967246586383469990274851118559632752936386238492467731289307839508211668375865159163226400240551653767660463103243031116837878542996923360789589636053842122624273583964894270630540226505847624525170273780508168207454133846603203161248793066880470656309566240886712330818862378240640898124408297205818219762508733476352137326584423819121443311324978376881922991903467431445457405308200099398206292538850618482341092357827666630221573214357678868080547580453704194828112091892734262622834755845755279283391913412438067167474371747221603973260837460792451359458271791966321139218311969293160751891770745763763384447950396044330324388069818756929426926773495919082283650254760139127312169089160069064845815239620533842045415411395421284996569678475361029893249478724721812936205816764280447433552568885252921157726519448777275695915187490681976474830166425369178465344412056761028702960916929155678484884992009053845665378446624324627277058507332912083401189370897771439553937755077383680748011371554159663424579796759484248576311070787162037790436180132968981613134884005874668366998313557055057921454275184856462987293912926641696671508750349858438927913274979209567090710815357569574951543445855335764682784979324002603709143724949054492166645582051415910098317462112089223947539754544602534915761211177089672288238453030990983341000816781649577937767435808489394011851081090228893063652149283028562352472620974165818907125546756718899014362776366332055244233817926059651184278848323180766510099473839372981418900300102305719871029527045601518583786714580184467987896844528040399895922658101719988636681006176677873135485915617646196174889199255559152142078913704046770887637430897306252892597608300640811837631224502403409833964059029812243288664082673664186138356756851519996114088700292806829299834786674958203617471331294197348323896609360099948804195803638638011006659549749466319333065869285573466647618475929991066574758496846565976205485081858869981219379419482129217185022836360122203469316816050592257514689605320164522567488139754792847933200367266177589547234281015159276052994381631946141660540115788176005847738092068375144671652209061074832739426720652172872808981485191416508875716193390035917295614340562890696775059863900396050577343620960439463370925736178016163272896550217600808273278641039920120204074125193281373554629165425789803305371372655638703738968384927617276156175596990923026821216151402448772238037409784364854691368989085401783139938307230087458105936815393503263012025468221565331501157721547540669298864448763321621086565677895020097651202263218848260407130974012226485640078993603596808161709314546322014925958144315822869037887919845324804445083664160027989121278350229100482324556206810697027641369408014364850987727289689294198921758480235039783599431666444937667519559157511590003962416787224229115702869504696840821582766700448005240567869007989328968076195875069590863637297400460383012513940203964723595441894523558826993885003984595592327674507509081765885921903342106800297715134199317309040591762919045576617461862824179686680587331929362778173006843002716993991543620172117375285353365234784532108711825022117377929097591214672935634523010839361845422337326789913588954234411606350954097215483052883630359781603633261418779466759791742875951840326056327699971153412000767886847238793372119149195881605695491684360646193436265419472138736485918866182934586543597629456107622523879088282845568587888468763239204922993142449323827962087970820328447899114177238332914943521642112126716970642495761758421626528915492180340285150258882799643774059552088509236915824446381620799697289538087226885305898295945314536235175485968389539586116301690976015427848030273888513714007591165254229438788141728986223574448931249439240278521066680177014566796701141158452748785075018990128317945851154765494764922763905769927913213569391747007234804049827710071265064753031858103529676798433927923661763736872248318482319768428756157611836698942828580060643128253860799290488845610467530984894228570539216581542763759524265028371285404318731785860147440572570807230655293488174119395475216852411501832097436475759985040722118356796033407938779923440392233749734201322186029581093951228144346447913097513440134009935524581819849386816340566135651094808789267902249942395464874140664912293891419645696496100612245809645673543704752765274284150167195077755197270160245981371971702778756331515992863803829755985183098942086221097815933871598029371550118091161884485948654841058252362330552695167696653652546087780913931421841670433192118605029946312863965102772537053931897647860060947495142200198008574391979316960930271951234764670667328643169407226887702034522116716504899374258459229964677726417790180618558491031761680418942018512381926958776610974837228502978133136202827264494110962838080893155872594816435687712118036777541028451306391399583821808456191200043460929194205631711223421428074763839077281505570158626479379118540318699782263930220026465271352219981595813200865556141261748419320388986768612526931052690495038810039273401340089164771358385535157666774587568053080674519841206464583906282985023516062788324137863259407038470785505296179265206285154863904272897599592016775679244816671788098514882716552004557911674989945691574219366849356970701683546330395614026354639718128161453824645446006234707495369968226458913945168763645508049741290931911947018665468388072549055499862044630514925638590612079089643711215805290183446918651173844858370591923976568519960007903135369469415314244278667621753454981479184397773421977404629532774199770426043808038364116875804746827343341459187363680594252229695185149731416133766702164663004923204053849680751786633767503221193863727881156753946188389762425612162795618561043013136497265614788709468524804211517273908161794617268298677833008189663513811594838673916705890104525551124075335745586156090330298790864142231752339392828602777493541342571646567155295348747797709268452492848705422645586628778908170464566613930010702614546260764094102399775617234045563092636964688153181408568477724489724962936186128668115413963338602664699778487660388876248117859659797644370450756204279454207092406137006676102144372654669951446027579060867055749123371335489690127904025769265355646375800550115769777792247252817917208860034467566642411302895799344138648180154393993405822927267136488353715904166539257572493353031989025155738117064056112928338126738601276041973610716586913216000831245269765943649857191332536196980239014936614057466791068811646460481886489357387267881699502887439200452026216172944754887013880565730824063355896825291732135719048124815037894296025734664310275637346137522508438311912951959825891493859740258848204249599169266918712025742054475158290450557506577034958508656561080241238630395154371814786693941040200419473587138121143528258556625214249871665250019281643422759887832862557714497350028914747272015786382104657151166260282097020093090141042330246181572106325748595964807179278362285250258212908914833887674439733503545692599386613952292109516871343759746376709005667683496408399634347626982966738977317346320852160227218703002313299783800073639905932919869203186711170073647235198133556451607144963791046908206017621795283853570566086284455366125311890785233089263524677581597009963843583452041248050140270299753620211890662323919043099981227140962316667354159350798993026816466818202421907110410825751579106072336040420169568680821714438549126232048140703968758118922290074613372450135250050938450177175477963863366699778149417720018921952523186228906281854822255595934799257829815828357790551285319557298624503040562198014041086194962226179456407229121499724024304740458759698083589973499160442933603915432394926470195592094586423731120440651758918738586605833032563607234067831455068027739843158110160044623831647867164750527350438589955345432639586103657216763032949343108125500362843795523764549016487141839840557781169668001739140026237872445098937138322328126218901676015247703488492699869346235070802421463802744590805789544647535061867883785548453946624053198076472746356576555601060177974076031534486019484662573349612062320176813510127266728695752845736074984561101864663352151514705422414241544761438158029479040877748385335050758035533702168583240942274803829676361555251111779889883440184721548655403178845298479329948808268269953299240841860128106628113139010380276790434668166764908063037195509277119972298778600420329345291999407790756062803185246603586156933030111037736784399604322661544451611435359589810113212416598491416268573461712055587724995577420071599953984005653637996897352826912380518036829266930565614212400920220102023210570846925591805984636828573006608517307155827467171667147725131343622501472633251662609170819833134286235941362251096333596926963749637279217790878848658975057795058389325349676045179487913149332391227082567016029061714026738437307824890511638581877308887120430405647089674225401424718466687432634407284083141609456431594289263210365775184708280721476795774924364181942378698605120583479973520939980215071189193317225510157149181840848118832889225827309017216908500170128876432409504065722158860270107914860329980970268591381172829721205267003401302636546449464987033467274550384538205431934514364627253674805928118194464064857763833057934782850348568122300333812267920810263929217282203393203094790666818469614891327076622908097198678049738371826853055379882789969323632900946592383034908724220423448556790122404647967003822154457324624178771121165238074889283600525391281562983583211590831300243489053732183228289695210833556999364291818906390198238230416433641055701600233659035613112959873627054563849116679661418523931918006710764323621001350389566922115260347447339506812359694756496876025973625234431571921508715670890448698053041026296252517087942732956718065812083583615372797785846596010211518256155281132525673448219149526240474096227856738682397922861974982644306094893662531355482060490648139589579916931843833607968605483763257347092752976924843254585354695648073015513140425450226407111787283213888524493840763552391269023967932919922681142155684396160558488298174427640617781321484376972253436135380638561673347940630681377970178433580696562068736959511394537489200438541800744145660400338176843951587240126379234981037748088870826189756380461582088787687611513811176107383775584938371193811365393499179956169841922838788834046170788552726657464089087461242482685440826192828505844243600806932851705585317018785082977898097341271112954721223474063971602613089464631547339393089544969295730316513763293589764808151726454204940679813910648776702908960807148294134576233975510426789677514365231441580080771711689629864545169612709507376894961580764251130116806069377503320221413792428547121730780280755384346862465643624497571375834627070845839357473525813326642625001640985575803631815480474979541186664669234508406240296890601518134334702829271421881084973640904583451525451544688317658393058196560257336364784892144680964886497346648034191088334326689521044485829767466136420529884393739289672377472578886880269269106994005598827455910820073296196472656784135578616913133014310668030487940384346369934815295748741395042897238953837792701657970692456703265507502156266326977377919886701518507922376334902746927309529420451060939703104376122326821295573299493922220383218115699141073969227473464307302921187569461907775309367195017099038312444110580581627533796449102549540421916920359713683865288642562779868459908608765491781230380860803396642689601099996800345101332332844579373605763590250849310826958255452515045060732569931865739895369235369295276236485854446949512282517246940324738904276245892659499444395190305346298542767471448637425924944395480542972650465073224889592526358559045164976034987567096053891249772843895502029172258099784054722437859886464183168165377892916805852983716641010251456828073501592118540423948809099824919303685455780492131420716313688297700410543043154386319837519417298419410745833234458122928017537691245491399747721111994547242971040200465271697070316802132001333246815257730845735769036319438246590936841308429387348459034830087536492025413354363814664166306918076509322992866349664445961660886425935856598403392329201540786457542883309239726300459898706501679671629362440798961130212120563606567072749983736776611905962511693998664349091328410217090885772264697925874853887765193145993217486944004488787376000881901703983393069986482036081980245468463810260862511665709122049880125065351485723352289970882356786484653885924844193381738446621666145652298816904344224771795479128866652575375493490914815554788008409440732302956879216269419709102081425569434072292926152901409611634463242224282916398153291012703262104047718713898407943516796129156969276914897957231907859136066461999705774675270868399909107184186366123316830775611929718682806060485714703252280287622977604209846332411927803240399609765071639862244988432056127701917358533603616606680358850738812531900069490578429739679514632509017728016323243231951837951549017391011041019944706961793007069509881287419768308144431211461516919343882662897351004951327695213300468891222545392203585973092997962469027906191706152781995952133535996567433952126345132135826547076021614967656507845161842235844217426240252029145789417614287932024644214139503093786098603009031432160636345587111656702537552306016108485572538591917339583003069058931246116621184797936214885887459533465456000957905108267095052856223061380922583957596836055660398373858157617570061442690664018741796460157658737797403436548948315401114081005861749865970552269901974376858413963037261151642864052366016607946341470719878726104399582595408967497510644117536688257168647590514217941966508901219489531242951018431445468243775658869642458097797705133386045366003650072703721171204491543501758664781500854769989170076446648015888740370819843956391120639135357854647705778160410076976774417751967565764305546339837992484650524409038979695792135016157914543439460262027128597340223880223752080924450757497204766915009258727631792094574306627060504943887695266327545005199160599278711368928951716365335983625443346706961354907061163642605439074206382261801772055570321164031779701752247173602002555435950448671359731721378929606564751262000468288218872751968644297772494152137066149726581858909216383244110317142023795798993044293683226852799716095148209755521416255339065285119562627342175932268578395358104984412542749838518479525701223397011297852045232783355853446258686981338877697161677197183079179963474122267144287471566805324047581060181560742548893164042150910503287702532110797232396800799918801768421341919567701625663252426059454730786465196954812426038098430989758985776673491356929178049265063584903907139311001772954992049058233904852913990453383678892309858085586395847275878990196842761910152858144539508329013375218335190659319649303779639428206894807403338443274685505230179532647544846853173353862364210295630613266286077319861432976777680841338207302804131044865973439925168329819210277939022561308624241151328470188837038838608476756912692723030563134142938430891781956651239944535026754530458271830323689884965019405326226620048778856014228453386621542407131997095856558794387155151677918243882929651111628394293170800653598609202973213403695385828827317677936268738841302358428069585021295487563811663652155017518844080231113949357556400978417412919114153983232229349535718068873721848889365783404549936664126374988364388867159009023949147044606419516023170489253641093913067031049806415015731866155370201803516672330173458245201739781589354381940802420280914881170003705958837321849340775648267269556294207833784625378428092370486641646664536889093641960868777963451410301755500273048276544551502970210429676028281730333900893368282071208886829116701572487788433197900626909806814032663150839965151813496702160433885469558266802524039874782015013614803471385952993537333023405193522590806967543764573843059582203234025120158598465986699171011290973937361491707055118339481074919899132798273666056828081062975113084391504752740542633372120541307742570166408227318534084398852588164704882043337150561551237964282205554757429379466717258459380478098927042340677361746439664825309544120307990819593416895109012502845107996532324575787374831519994959653580622942517468228063429058896850685844394608350926175930468339101404735119432222392372988575741165060687724039795918835414655669240637491957208750262251960736778623523659981012494058408314315484256955869033994401431534909411382216088781617891870086771867562328388300571201087798822793469755490490926988371842560745722317192574008856271755408993991341399559668102584302954735672461211970011213323896207165437081840199922356592668358104655687218260424869170858448854018240568707882332825940406748143086026147031074944324988902200909762471989308443482209187794895601618280589549316172021556118336806192565002188014844155298981782410957747782852033474335911339933066197379740350809839377496941220780632594346352217721248692094003859040415295321935576813744740478075109421134741102349459195718332251496207672984853528587974042403916234069544523286431571100550694230213773372481190482717414973686676495091527603609328608154737543877835187105706092285762892353478650661138598402317668403964088367778238784319607845302156874746513086818610909986167678311674319224702711453804736520194886883683984966107792930298851502700441912444858260194352766538565833195392964018248650679882703287276446332405583695621652860523621695640575854346221097548445983795272505784921781891977514647018016014117616661852852179629951765199320444911174099653376130892570280244680768036797909164912357395716610502369249201291401942878479463604635864407922325711583788087916034401804143982234731257999111497171730221313476943467227449796012370656091253448055592551826558913578961839975773514181779964284539132661266301215184008332303286217075670809357665708349441766217803279281892447367570330032798291019697256520919568593990001872622745395142230434570834858708985436052881611617642105328176251655273960008074569628526314701220176131520091415962462229432737438360916954942891683660863345537692233506898263692201587431766558231822678792319091614425091301519166166213358596666127844497891506020862332851215685783277549192005637930321708119939120509984862698773627670141575028582984321015577495818855195874801269505861633345894955390716886020798804547532467036060340262594297762108545489911392977989690448916719900611941938697766153278196142096463268225169594723538219711333408541404591197667920026439219827003942854529054254098241611529308286683468487884256925652597105796064881680762364939299702806332985643760925408798511891466064880242689261448610588991253477963293100330916841371055410781399317519750818385651823935913837802916095886338912801897247116979983578274364129579997471420980044298151935073662006896449458939067621812235199740911989704785835800530482939693617739104087379210544113256493824677440206743703757592209498727114723850933813279446571708313096685512197757426559439518291176628734881400724997220029183262657497820067542361639353015787528089678114158885401382268697808040398815160071344102341720393384275977631995889135381858562654310660996827225443947343136671792547468379375355685250564283786398021784608941904337715110577450174242511642177341930099136858395459215203601453924122016910354581291853535147592944102462051776387410879297734849254672074633979871658422136510301401205801593823721230042413608554561100223055524478492809137364741258749281108553270949517285196125700872082926643727273718052966929422912548692520662271247314197709182386407569418843909367278225169754382267778060487888747155420037685096525374562719402217060798051438737156334299438415078648969314492151922777128806954940703464677431379290605059899588851196294622931995990485688155417103307098741314366779337738083838553632262965363327086200737994902652781069621454984191571163181083078499668942278165713250139934325332473533209998111487265463130224571128589686068083246241065744297112887822476501486340982309550259543317006943147788408834756028149173210421693965032109813522171138189622953331700914656956301391955959303347747258701762908474639080032333070304504582158063401266562695869097971712816782190085296651986575493245290913577321980366020813293001962720694919913907196761989344612476002166995155935228560089888267386725705851717483247722795242755801174631052452382626696878040832113724217427278110308798083851180733535646305428259809128526845796583641218642616364541318681433679128844258132086698188996529885656687410476826038831280387066630487039949301827650823869875445049474899469274200365935627873994909444257120270920056786276543250407610799306374675438095278833930984633856472865477330084820853800051989031320167554828151322813153957518996930978577608885725631106093762582534213446662536715604939838650252307640988826437974884970511165029000141388325174890479336564881957765007301513711817261446549220489125187588668093449554071954444558734175045189784694374440689937124502786107268804637037965915216384758480146227293056262277711887772313586714056950075475276066608498739424381024516965746909574107203784097531018725761650353339882950769987485001689478440120834974238133350954827772419409539596552955630591752783195162027170763196877626221385773991285363587241340502864470600831058275239210043499431257416446181456769154587431852170056522893830682099219687354484868359047434106115857889694879603305799109406263550715656774669519984694678724807158445607225237235075938525772328116235431026534787979369063469361358762681361519844607071738364935763430036810848218717940879605736603636327942948653710761803521506057255455494784579974508799913553435524243979684486470158410458908491987506043383481759172234857905690440520239545950108483971613694046995735458912023201577518906125179218370561956744750254077487255289959599532384012834884372638352531098495999560314862257563384696415855068488530825224969728569792914013253222375168185729856552721339881012768328302815177411408677962791975874528320762834782956812565255407183601584238745528581954543895866203848449626008419281284375149772011240900412297158865564007158429563697362457199911335501507571543748756139981866792388482095519725186228707075657137766162560904166148896943234578564115698904421343913502056267192077157597311947972580864827343487970598383596475592726047293441071642906116572229206407639487953202490403575037895675588823169350839423724451279493165932923887068186344197460572736279142389114431720813068837792147479587699897153953101145936512600184978217226689554520117235588444798409382825025403253794796334412244725110051791516291109816874222433631129319856531032473877036478986191968694032136093290339647029102306007821340709682574139932401912632494098694180927598753813120870379564734031948744122122936893723044739468903314592075822296125535250818989970231030437692259241833438874302292119027370495902051092365290120800723844523323491651638559412503559703667402859186588038352837263114285021147266095075377361724917325975134010396612809102782323146191169984370069507249825034327931461156651542933789291300251303510782060695224688840143353371747095642969614851791498846475852176115789260622101349851809839543902447617119611325662431367031815342075004359187786412297876087356564752537825781062243228916669468086767927777975450657660583038213050336008656573310129023497847746357469550140163643794944756672986703979708779918642998274673882884903155586396629837552666804964927457172842664161760329844806443210209383748611098871339869661982409590276064811938445842370040732921146739709584669889695795780287199915493769601040863737606830972991611961136879511506667490707326025778965646947551971171038329723152571152316525681313223919135972327810894200047091611306579942824484036432047159648937299419083143829023742670303810970735332511879138216193462731589686058519945209047312690812505973806315826539790318340178023629440689318257206190308178271978473084062918078761676011749562832455627659535887076185007364190466346337841912074803456119787269492461758119552560313279188525606609391797046138398468198066490536467128165565913419746722665926033373143439236949318608724047007349721057884592835137764936670526402873520559540539822082661210572254045996543586361987437198360948569344656695160021892762428111524472082129088091094594224599052691889432424310750440585046832956781504720390368396549990772743779772432890436114564844400486234276532082790214126566484794585276686316761058137823723486068772842098154820720574649324537111350952977870270816288003330896795430154908918257221461820836674024503099146842202181139910336837130179117496669102036401089478952187208819510966069895536695140265223630600859327656954261415137205072440012424879108712585039746123881685340345913607459815682653531505898654295865274221533615971360688333084098238503538872720361984118310101526049965876952044680265697290180389237313898105768828368458489078541399933052360470460120912634562606823034499451252485830177787750106479297650141005663160710200187314695179892156405310708243301654193427268588031983261690076058867401157412207062926889774481256170412718224419206059300255896942974764457382415221702210249244123246690952676736731622005689345430717651793245643344250195204551316418356882555480042571947788612876618401976178187786694023932843647507692044180125088744529648089632956809329800071382057383531259243134809577229950759865303519054508322936039804687937989386647325585549670587237966924174359612709940012151614032930734353975045762096060257774328172250453929398607589828537758534571041768626045605470926638629454797377485396477210560556619293746251781501780421254306292868325558059062761078809956970654627151336622076446375370111284309013837332465671402631437033355901657326274263946839004896990416072073398652282713244102635085752756384538187039554568541702009902573713906051429751494070695327468434794306847289531838307623109141155869337210687606101095028102394574840308686871540304342110640769637223382063011508504135465687962758706936533732069902653931943793208376610353371122510067298399777037725707429675245328175829308653322445160554516620908541013213530400755825049513968588488785686463614591291276108592761915170266699005154508158689653480228722568888622211173024546808640557824238792592952128715506305187543706975378838536522211665534638637927623802209481878283932279776305898257063288890547371631958982152489909465097788453598304203015572460447592940818844902194278192141751010121944537917504485042171088444875491207746879666869100831826471131930908877605344531154715963954167277873141128950357639796418572788752865609649202121166108424979229894366603759641456374948291092771472833312472380321650100092617287912492698408382648903526351122617805353845862321204576655462500839257114792078521157812345986732842175367003805939155361839861664368277476859115383384620921010933812871675969366013320784539807810128233856941941324094042554207998524212422664506110172815466225794154865063356616896708154715156772277566803245228543453011672589583160139013012823798191353069441703026133261533403563014215724218860918662996205837843605145119357531573016720303805038800496875949610904399394021398925859803416086511312776802553303751542496798143485126746702984255344024538826441893013492081301923522848372313017695237608451768811190325055152548312288367078896429100866669448232990775957913705520488961333497347100344824252169072529948424153291534521321134174827826306599206674646133279831989213598594437280856395140037156117373202325204341906387848343575848313603888843467460320450783662924122167768144673891984270735262931277542261641354457129694299897743030226955271282543596163770946752623723596778338183045254500247808560531150614715847396484382650546655619022621470265606019706019535696250367258288075670528933317479363250693903203156833454346591425493647147962518321253646804046865230108581646239104999350307844173158775961389904916909185803944627588510268572246848546223797124792103473467129755821996217541251673320129264872505105895437135071154669284686555831097789900699221154434325973538668003224265620515149505947562367289621157707738054685208556808561516606391899044677683697453009571730375279656998435120953153982442603141750391713157630340977370245108555422627468804589306720610472536050795832624676395538857022950726069780926644084008196810272171065177782315502335670355140782650327650095600612915081439183667390531091470487731261782012455503221613580894069828692754916704922077850166103976098392116204043659128226626048361383038855434810680080588282028145593495743072774219383897085992663101218402984022291002446129155541458146722313018370831437684605305318521512152021378497419946996662327696373714491222237825188831843169112795521398776564313421550953905459661083354685787659196208525045713918058453396098473604772362389530818269514296812883816689449470851369426920242762980739739258483912227679066046835524388494136925915765155474816617144585980669764258119035271362392955758711418896839535697538319621785062418018591255841246208017926066930636598213242156269183340117673713996427089618212108860781026473274752025796046421042128960355376237920145324959110847399248000324785437646012448299052164377893490016235822707724182810069473453237723696813024201590005656375666076606729138846565319940122633021894761432028681557563901174015248356575085911591777561185327792053226104638726428589554877180741023533051968792070532764804889081472818894455398374155557621699865473763807850335206553489823966447032147629677254230361784051091835790271448360173849108698104178910288816942657600507755985188263184420274267943691500138571203382702128044219019905448445688975134694375225887459604872085740634053545496060421877291976048665775767783546303644230459081244815114202732434219405737923496609018165649830081235825639777011604755611525565829962345584332566725443995562492238681257669187782646854946631206295471734644090730443050120465323594635334100378462518708278338491796129183378177023567972227199164149721943019026327198725323526821220566484224891038324177525008430164293820167067729261800545067307228682722302028768324432063651020678299217138070021457754516394455760885723031347698927130918031989279751389647873534761389438114261692855226309185102009520122429143823266221964225388814172893397622670604968980967519748605404695658305258202659120200292192420305286635373803293681111994830056944400389035926486794517679576206828724532046762639368073754665768960530275976851196687640718882268732581492498012472042954221694739725207451269358107458965504649116577194021007389955194009037668898407669597809191233754486756060512449471796251148373423424372640883172230549957487325886878142437629607703399345017847120215186319158654486762026977323851361568565405309765213667285620960011180257998622113387955747890859862950729169382300889075613040729693303504546740023315155038124280354986275665142592389006195813970138233250896086428109057964976902131741747029728456608814946295157119738620244634972277858385564366539210303442325848100461930889052316811739141004617056013834431909005755203886796378685749443273139155185908667348439631744492572208424296165930723229513872941896027008809404606446417205468651111663584972380381507390367428680870195080948080330154432681168852889736200733612157614735162463356906267595061367179435640857244324862443857213115567681410251421010612301245441534915813217733092571113965960110906822162971640148827449294852839021204789158205797795746810425344962590928439071228368353013576957596542185572037453586225619813913737226365955287829027027885110956070276848361273500878059701401772817044339780242318717233886369902458058136161895934176727450105910378662024365459215541269078965108757157407007711703965865498384574677605329668591620440530377500251177819561452518041935901941428763930906457808762324051220831849551943237012223857311259545603543519594393120881313761797245885328403630933105125368381879761789550841921619836916901771085282833801752586180889644795922861047398430447799134630771152657494659326346919238225182853418279404977713772340508545419099710518549484835144322286492051895409946076177313642962673644902540860873362791265378316903855661335274178093626625251131649969386490503444022322636957307079338002082438637437039471649037848376446211900234065972032845160183845692408753822521844008135001814091879903653531894071261847747294255583939542363226027753900114519979943769008432288736137313541714350630355975261390806853221005418367229419589536675205754934823920089314936768642141008821682063461533699939852513590004903368792394705068190411468410090428931558119644025453456714070806928501442148744395930707033360796568236713620637980996619527962860860312711315593260713738292078673880498359427756033517338952477060279103270149665223481457742984500167700534824233788633656163212381898935427965893433022383570546842828118595577103539074262782981024531248496626811894117303607494442491415182884835750763905865133439723362946944138311046221700916882241621131512905432897866662560645808418587163923877263777746396890816296272277082409395158872870325573409539435909051517341416220104992741716791663898154752398388884333955760058331496484928104822583568201151093150436101994389484953447858600478633329476091107033819873151207850269651818150226455727221480101014686452418010202240939034419188723981894695644736937314152118111555607190677231423512562357695377154498222185419017468491916544223984497845848915228466200155587360065355026564115191705883660214051838886846487445125582236222349314608177731415536815537892584103419806274648176895284549724849423901296151006227285413113645753455553806500021144633026673294435831916324448765249952127365317909055896633037675353796731435969423611501563569904243866085814740109883339554735141204505827031629250997245368163486588202108218498091021076464520390907521522651796009683375887059635967892765754772571386695033571435788693664029075493371516512307076458475763525859519416322460767076826034399785489695523608128128924474540469020863379940289359490652828815987869123148773390585565365009002594561037511326753245292879447920070140024604254726409385652295195685588550565425986367348528534719017148452613260121257397232735663526098673256451720020454861715501127596078203042497974542225564850327556938496433118590098250571488225726272169019800162339273552864868032294916908387589589581134381956632483137730173655933398658875187749860320188718957622742468159001085865570749759532540722026505053918112080369085016934509414300822872662034991026087057570824416655012007025085031066636570038311479722189598692340571805754762654458723093788597951585149709967632095128877473909598111414835936756927534358883645796794293383483672487362578904951278037768286488656583433809835120313997477600482031751747744614743158306711991643921683546524041153496290768281653625933804508245542893510900223006841687484918710413755415044205021510087892541191035940236766969228009681287728303431381297123700420914746437648685427934501195232662697542943356642517417430941345686005805537010550527987049733436483615477409040503474188405244078523281531040142242126644182605458061815081776838411220082791923483328835499071302640443309416053044920234822704218552020864853693980804816759418125909710419802351503613874317296521807629333900017476057809668067737399237317850513477746550538498380379446022613134416332415113703769581023218270414985034123804373760253950993074050189512664388235993863322645454226876997250711122471068092870194467147368681563348759487432952959612705710654059143104268956124345874628241594893277109237898028707553022773660842856213665030431533658251725056188987679697899759612846219563192670897537164565002632654492057838274313227812588009520097813620107126303330540140752440481673261233504287356671840355198574499276787307265357440083294665133191780125329921485756252438330295434785352818906133657721585517924954739753919443849301208715641304691463781261817133569724354529747694848248678690459227193511589343528277372796645381777524516609092321409963909142880714997555019523024120105049517159169384742210721201319759003637190746588177716120498410621054404110621483705045610619014802677957114315589387674836135419410828474230003629272391165231333962616807068100943540789381160562952817210639893696960282918728655458268371297045573354315139862416721624535341178484852986092882438024696825329065677269457513180718729470407952019061311504799995170154333595890501974439124793973647387478485092404591900729749924404597488177144691966864694255223863357496166171673637726347245876176461923919574625658831521013316128720713558067865823915633241741590871081147804236030782748663404789243496234292579683744532442784479446653274818272037785464817899320774164434955413139611027525833342358914612955058652014341175188621554626893488727397922297032085065176655634463927397121461635797355614301864615047654763241498400958541084272634035698643889946486538969123744471946341452156470945231059139554214877890593583680007288202881076966121847728519091638483188916302975828858941821654952208161286627159663115585526818986419861754730700293380551763266396840718067614875982194038136858244891994060968442078844354456988990543385416449927248098485517909616006487933382104996836588234915609440679424969555251417074505596698594444370075224521671085249780688664992448381001012323876046568507378934116345773456653586627940935606146679816045817510767689488652674928511633250514002373663606416893703810470619927431087997677425401837979614122079077782455474883570562179728961179217614695854423888656819090917180085536738076658921090187887052970295822988131688820721686405730946035509927237747708401167219193204486802660577007171469653277622302247772527156856536347290588788112188023684383052034124874440218043186504803538289547528459754504192632009052099495546698733507230247135461666623173349255036336991914797365781099803651820798404298675706705593164245262492272220596355800293825924228094274029113858721435550762448292748676962823650291267421430382435520673321007118670317218873753981697526656716895161486205907068028360000119209326933850616054804869307455558556906744134963386342264411560782794439225796487176102816839416538571478534285859163385567417637613951290090690275175901000159364880524213105771961529139790852503652263850353862853441349615065357913165746084873121646959295087809916226071027618117593821284758084964404321470525409664601222426457981049871986432156416521110481036555739278440625794525903717124809928998505777012827369085600590940096125783751652685114091578842585063533634058243853507247042996834203673232692783440910467806648363961201578985673685332320457119306240419318729992370541233583897940219939095788524106156964861832277411933417888642031470283565567977525271273072713487791371791212060338581712742389502729088893974772391794975333136203814799542847181278513173187954377557235835029576511829380964072187303109311431003202045716922800359577674350915683981869114357796592879458587131969797981383098986824577975940240162464294433192267479417985725553136243368824040570540561433662437715670713742473482525683866799503844149871808189669102088216034144963822415377795721828722524604172787609002003433341835205554445405232863350362899170907589460155711748545410532184676332940594126590885176903950395813075352044116262888812135904897163968147637575301895149349761784674694593461247367852479673569680130447407976296194561257013408232897992538738902132853937798362307922951773248459547487861381889874103217355086704255498888041108757032498953376449339563013638358535501328405737041536233014438354247488681364197421045327867772484870851657919625921772865668782975122485004523362282953660822060898615051372578218954310028613912561095735352105557823539804791485163096493410598482553743777211322795873053087280925270913068541520490173129556969042957831101330296129021668559486692682284358888720487985332840624773806205891611762682742917804673807039222607486610501380914324351102376873274676216100548487813864301417700356447124642448180255932324507430449214492636777730719301733404437356977039502307487712288642752001227696345077787632180983707672128540583066676321008842609868429844613303933885839018689981900151575696756778718650263476790394686493608885871894771548258714764356352315833046427094236770743466806967057376495083844365166982677707003175487612264963437159957605471929075138908921641992803665293621363649124191254362528809450422971935429113898142742364488146577002360439481599559674477101892260190852672569922727629814020218973301036655071330850796413668595888460730526631474913129583862944722202542148080395538804835542216818036487649505986248759141918935544831966797965183962825352492800346904901558704193080293190471039274382314532317631552902315140626435640079626393119253775763272079902121790826482811568977151421530799290536235377988602847870280916176005766967921653103807304813118693529719406426232150933970262149305019127354763677986250404137284366827736365784897566386874618232750398841973723153012897094896522247336185416034216607898978780292527800270876460278039846050838733755655335879047376424044267661254085642964508006204832545942637124540132745825306394548696303041739398964938173150290350469653552646048394336018704220327728215723591879056338070854352639738363989885210701013143007179835349132633294934802960427712897355472327359628766536568856755762259310902606754905118227595106269178692891966043838073641669733629083920265141880927124352695632067264797009177246062106218066226984839100928644059574667976664835614462678753778609579711943983038253387310318164848550533670550548051902671968689480837713543941401095535520035883066804177804680436064050322851722450598980510994316788047831453153065044732388611421402580551918820964995662748584043025953952997699074398160205941125806373939605113068215635471290284316722400056802194420361527775916765949312912578968701024196467581410739006737741843891598430985369430513897581350245537695020074774846153236682979427700431503306542325410569774595157230082250469342424307222508869844051246338150332407697282313909692866329288614183670486598209815267804484611691006054817572961200708336159061602591813484182602126552155202148300137973672567688050817877852902749941425361401467886608991483672211007196905010512029804876635320989823240241849765872677815341680176559066602209745317656148624135582976591396848865261923958248667959260042874465564584072849627387001533633189445192572780038833562505303247312651805220579885584237334234994661636687559336230873677913042265475279315508523092596310445221731282782785289310268938235841789992926476807848052883491454341596540196911190107779747358339531440503286951373980084184273201307133981070008730319026039811578022960263700783833236201941320951092022266825592362454864433633226234295264758551269335443909927110735114087588098378419621983874433191992919115159483370810288132328053939215475958016911294361173838735944234085495233543749565297022833879498836548789163176997173593139123687380194575446752148267476337561695623086423665572343478627356829157801359724068916139930157789821949025964221055308418561862242520769778515218956601182987775519674050297782439153994872804021081171074922009355169261764305649317310665638946361860925369767736216281210233464849617276215491836722187794067240297906647225506817863537322140698038796396329514214429933635561180290458418532479986321671781544642469900528222135455647407992771203150206360290499103216546849374545149881160646047439199920303699810107572286916441532023803269094292759065646748301246463552470830312870758580865925232973637704932459077249694459879873138581448509138963757908567138156858926614250519009370571721873388313109254991738442965213141587585875799345623750573029855143981406657736231754155863598711409523198371606458622833277639095597814043945346119218441650925899284860165459845823023790068261922864986332877935955520573408124205368107283816949646705686244740184100142271806805515170317442655268315705957662241378999792918931715031250982165612183603382854588588185983294967633720003136530611882420362600095978077270559186837305824417276581204182164612919498358147429261855637775910039529595559064367324658594853581026258239913814944982545980787451978409596535881201876095746457144561402784426071116993668007608202756896080681656303580557757522249125929642168449351958016207486111231602898280775427826172810047925249380843847810052019745768836128364117803348102217975832673964468751417997290716624038194733406100349811953611790841630947546319908956851633626425780726485906736991839298606363337574790318352239947570297027807608410333246536250231507846999784750494479903576555231508240587988951554535566286259012205833524367060496310599893564656049174418391383556979020078159845613983202413784194606132722456405199828812075188455827297738811218618399288743876733798606827903368307680060779038624145790184346008010983931228778437290243282113708327535779453689714650861012121965050118062890355908085752324670660785445849921013871785276132154304941028171975614378018404866007090795970788330684756402465724541830989671139927569352289969577416701811319726416226556662129975303088190934939099126756119007869243394816161661213827377824045729757565621290455068066395911331094085737818534156879708945125946146678982995344759308422327396430552169882238464363301234882454790098625331178512426290354568894662759180284812199496868699564885887589299618600491341081887666774224008479960268833030353387827675261790547692165703561121045218393264135747475790634846606627036654226591491014562971282049945980107285969090142210617506147093598100412179219877060451056845548849203426558982215977109878613338427115496215746070692305900691157601525161094389244309433935038728444874087645291271395520854079679288736632705379111858483823405866142196874966851011513955127289772011515480202869395515149701887618884452615473817437674064060951020378302623708979773865761303738602257659185218702192619453279661960586419611748442454834931387942297517833213881882797002709023210305975459653628321002697160834686472192246578205132523272630020438593517848525166747733886818644264131068975245215055508667059659875041778209107922652407717598129535095819105187375542086626392555170517787536722418377346872113363970684732990815718240857912794735951612792242457958532373520980666020868794806122059362699383236945365276003983205166028896900808537947355346079471710442792516347069171214111102627398588192191979989992450064046475441387816597101281821293403471581573939369093477440778860070263667209698848177227146147589527369875806137028545849116540594488957113398362567518946707622321810309525365614870055574660690957279592478213031964355772197500333489367140551466804316710190687967358943890380619947706565716814899684836823337625723455804885326476240034435196878572103844913210159537258226758112423925439196801603032895235135275605303830194509874728367109708045255697547860823797889088797033529693496259955563434272002671242891949940319403704004655186631130204798432820247509452595823397056251288870983172703776549888405607119522750920703487212029510697787889231458098340821912996235057301495837152365218165445610964947643688444113225352301438163837502133463076874265148572718971480925939483460360043389122306147619184789227154065310502717633019741418525455211590517550904999402012011282176478662646067157379059167504922286936340530337773500736737589870701164476224734003041578802203678680309535412370881457246193272517688820315264670050476545283204546438472305418504775231655297689861882346938077664953099740543683156703579270924346968623985692324540544785686671839536012047273451629461533101108621247185700558401848132286908358833960472248669426306800315635426907979449467535819534485540228196218189595285794094147728302436933238979571017384491037065720323164722486730928433828607267684979725281996171661927169653126643217822628684403783562578473855097475063221255788943251113684247300150891678939661144704194725818983302657977838252350034185136781529157118297669649436336009185331727159806313302006546515253450293053809793422762255308301150187237291449105056301662963227101260869448746492415489161826698481749337388345791989806150496282287649641828255323719821646159753615370641889040121779344086532897623553060351565776143946120033759930556253652576012040398604873721389596904553174459004964881061770695523005242650287392345028483876481015830825376800231137300619305924368938412096444480955596041746129018156291298833838959169772642541043456687953873185645019662930042304502826799589961222101275705769004331883226546321582147506349492224442140390264699559809628397640674422192235260683450661756281368236641956353345456776910368842391802468158790761682731431120805709042554388563184062199630261841678396184147482896429850268667856767758464119344675754290435385858338421276251002413407138464687463362660836728758640783732267150799764226655524151685106263334609461537170913983662919495559507675223694507874016607616386740319436380895890629308720168184679412135575240661745190327460820218279167893667087914212434935676903015608969905116854445124064336092007619665555030398952272486090911393936316581063262524174436055969225386185928138562044649517671478169352205817249786257086404253805809073713651968446047530402359655992104454883006387402326433084112663369626435400689022533415563415094483126242918409626874638279724733883456156080635577129299710453109923230086240756251106866054073410854481383221918593469211704826513235947513229316603356879766673175965417831322245917975554012396606940262560665937773021419273643799907246789958497683270936776466723365859156226569733419316599314213340867622043077352687758426318115006855279883610471582652790642727295612828128622020670423098394346076866965287355972350417542610286616992260657538782528081286992069320296170649610131041920536342222056900961050181452910996894812069120770599909895927109951786735494093827719010200850453840517776069801180229666975084318339802362359092372339895979626691313869768793167497613167633617059249513179675168432064400925966144776856084251802453671723493692437119912728302408697762841327195977114555645215369957297553555196987890005097714405193407596489965413352707323246378987953466691388210383049374431205734227476382315029830403836088980763486591669251367719921213420571313412107232259741119209447760033809544073905379500320284358965531266610688029091162537074479690405454925691278053468312541584987157933994256358435545323341927091126362396908646206135390044699145878120740949194194316705464147427421617287150950517348225478188657159404961010763463354508739814948604243573551989912381713139703194518660937768818598194890382406835140904312415755923497850945904409870431392657213495151990794631021965951168507856238741844929199774311880111539741415549926009883450211584469891412643251485904215330703636769954239811981417500509118117011455054326915706986114088670394869316325246595229913306416576000398038716360084910246598662176244846229708166772545274599851137413114815033949600825384417330706566635620169577004402605917851010752999867469221548305134959191144502335116938719406410310649460355907278590133959700419389599852589921360825363816832502925521146769826483017799709200769862734969262664014484132368710443495661597879787001156837281456717348488984919138564186137432620294946409478241195295923836902183890046524948718910281443722715860417052530729292279528286065988560520226525353121896034148743785373469086077409690574858071006133788807468255614128408366625581939651465239899269253473160535515806425953214876823949613043836390890603275648542573228220007353285242740730356759909554534245730211167256217019592885205901832547466580684044470895535560590828944659117223223039439112400859803767568578339763313600526379510923767871427767556225894158037628426436541750203918121930091031919294125770583566646981702376467269616352767504119099495605222886423935687801734020728013406664662790109474003237631547173476601933944102973783499865749397510225694552812132921757987099346927664422833476020322669958336806882355602571192200524736716901411743212360281187234359223437443576084013065111924202055314641446814336421875353298762024084872127420100442483325856413895501763440668894414006639211821466996268684521033384263906814935034922034270556314760906406788327586681252248646855801314666648784869885977013405954958977660951937374807667013037345914804808174262126666882882078863281050968588339224872929959263155016195302244141782562841068441796129793048012321860580938530528022260818663023224117261006022912940328929923293355131949591592055253138999376760611531655975016209753026072794801740872790738443818214665143702824507000244091317034613970166118113827042255723035071303685626194515916196740570972033103679918581781473101589361374761033941840463325413971193246972839624824121692550735658561935003784666410325408060364614245385108953731558489953868902428538195462972526632682364105024382842584392508672693702695457421049384313629069244991147320314586458886001914654616631511997820564172526394220230424988731084897395652429931971261538472221986698390057595878359074668866598716250508196146221640288384034081748434615745950891349074551940532641397289419355301165645246910618120007312239383630789212826630719774921873080373067459734004519212203637051374586177187507193723396691310050251526712152071296920975996549338509811649483595070893972149702103153002956904343010449030449121607305113649728666868159570819765148927855188212974221092587386231889067187183615134946434381852276949696153579679782339301772376276854049150055900575212714078717612897686808994783404352619064678429249234003320850228865408594441154156740702294711461814753094511541577605029535824539137207748790466981543460757909595623722152172029870653829519618665900008660479050417043770225557294379483583750341188452138354363150557239568302304054068435342890058615571844854669637483351551394891259546023354425602827252180272205030502075708188822624856861217753092802639100489377923316745599932189778790748887647703232996378873253775979455745907111307952123711965532305581040435758539971670209243041976317735196832932811794864666253684706040707762829462843996115366409377105100268254923917255533904917165261298489908002661661925388687846098430978303440391625238968473289474568443416717448337755916824916462172907959762738230040344213597372342717276700184186308665232204743300623818493088706114280966267418459276244307079421615294611220653946786236577224392366608368574263336595433751311553739964747246827127684313821974541625233027986013149582580061459520390288406093375184142222996717708271193977808508118016633640068013524470617499321394623212718444436989921080599911771414795638807501195811606107198741195202532947247072188281660473315359852731578954444692556246252799816559672511927556373101657597835892978958740931786583597527185027329575610912913028911322992975443666323360986291404804438280750173521930227380070569994047849929209355178121587634080439589701742166190525492264952400261888348980520224910605204892124334348510969445646981917832901691232758205303687706222860415927839877949600347600624218109490010336669833119787025765110089452524465729762046266956136424747282263875963451663206108161882784179487015554779739494772189590525659841373788555196170521556465990839952162033906690990271282673693229061231195736409489602281058406785551377978244214251893595915395622349248550242162561820626592764813153029714237168865284647954406667034248192179649600463603969368066581231514599212291541575901756292128424122957671531375060967905762568098149965370295983933186965402353517038359196343196856895268818026484300539211434880235000741786704564677138332823604509006366573882358153123661119358346003627838428099665093521850581848321817918601417490637056902944715833903413851241445722873436777452284512180151616845383676584748631894940675929360441175048487644309916201800810551435624653704050062876607426449370574399411308803510446038529767747293064560553308596223755233743650884874478736219618715012230622933869839924413105741561059323574361723003783870590741543369961308292680729094031087227140520110871772110554343809045426669049330634198853720201666439092773906924325761302419129819337150903109276943882464426087064591375668838660625345680109045346836706005652494115223113197639440349304518375999469715952448493113258625049873210668630168091164817041891573656374388235486865097272871729319828808460923141707968380469557740544263734379856933558589963142683722800178266849056197487883976740954308475896944100761544450160354398405722185358185033336384931832796400286769276009344266603044101663293918085562022889681127396082342978126031122122949569953942061353315760979888771184276797598833787740067344533276823230056183370417840698212958497601845679289260230241787870928183408897794639229633640025402517680426707966255707340455935757780837560148692795085885847698081685040570305923144898291839163099840606722719037361750365606296559228749468242080778308318893330119495907702441977961959457142335818092867640978320701960988625800527149736815874346084245436966968217068042749669139693285012640418568403226237297785143080562618665831004131808339288283357839314555501484227965472799809755196488220323245263818697038302076254789061065040110820973078592336101109342350989811309890418096166986420965863316049281363658811522460819780466107668661641907839098356738703054398292478115628409976108978877941391019848426391746284123270653674102732333527976420257413809663909849995701219558623909224731922049309084205852802679700573795850113938755348895881101612238550470007049455204937029019793177578209704731342926988367610589896352000497258131829417913459503102604839636373472819192243233367187428803656161979655571942234697849442971512402083562951133280845546165707882019329218025925151774529632052152621831340156359976454079918013982111420375212894160725149273610967278462408178764258623527165883360753658925605352787145228183048038622642051955972185401032317665681458246303529336683628004908148767085222837013046138171346056073289273468439795616193095038565344847169713176945316627685383035252196634441793247972274195274705232102078180564957597833171683566165226167786465214256231518256902597000381248692551857568083998999364417751434483266898657320843491227377680020646437707902450435052562985740601317072625897543249571774777858437295763499127208446098449025907730410648256023434698761355141028669692289249758079412162149977696984428433745379480709946583213583187252563793251553429198033395082290020670788511179318320118790744818634994492391851762095022181021592610874953060201203232980747953685527699735974312504918948263556229464260847768981184385744623302649463105346108538579835729713856049445761036610658532338419033112378989444091603467432373734199190520895657195258111522774029717202423485255662931729583155481407949482315255519003755072257674444803977972016171348560372419865124105455877204481876212176891638751605284526699024042778575758234247204193498855958849391709560785607307517523445896844140871348569522356057889898710641923078876438247560844664346623091632445333046831075535768178791062896804772603950332083363352371670520768776011255076507063843013903701291777686135841647724277992551719610585376353814855119412589363629224286693082767233311156044423055389846803490968676713047091948302795169567749827468483322601397847009089625882780681966949360919780561454843929158637937112203845190499341063703392265622629402783892932777313647700851079685619135526998155632947156205790611258781054225751103627714067690516090226288442590203301936332930148326169276512304044202762743115549411900407039324907746869027943185605048097729557388392665508609077544825403908914706757901219959750848320781096860138063001782126295255449119801939199708896430654103545141273804627073503945301791503651177875505562375183017557703468057446102600367908498041884793871846619280200802439309578776693956984732249973407007941354789243885558791356097994481884817174823289988828024438720060046880217972811331442479252885304635616780275002088279651016027617095126651114307065657747977320009803839879393075315052339567863490325377489258288249041287088396225500086084153281121080879118440491665341001215282939030647494717773549254299263545649720960014482445330742199985215833294930481221650612447431476345815025170232274250225885256476085053216279409428993563106081995882439423670063792839179934511029065822890232497244795268277756465028357930425434435928326349329592105299080479794575911493847612250261319184284561956397577174491496938502513888789806962049711783603939377613460347923640501904112825233050978723828244675314537705133556627152958873676215154693387562618171356603178548792292222782664753901032479114596264010601751146456666603821654306414889987913449139705332927020873325798613601341705296920260869009501738707940705750569308440388229408256919671984603164919872463192970093896689059065564942537695702900077653572657774361778486938055141252856517639090003283308608551204557358306857277982595641139899266858832164829558551035144119560116207867706389888198369567988912908628545461239230140357883506877878648484275604253040630843093582154851514553496005695678672732406001944687218359273544490508803328180166821539023398388166167485979383730672180254865016304116075412281978417187569595406175651603182276529591931716103104538975318567306828471435075639290749777929574172775395813086365050860681695497483863143130819828956616974754627742080573988080530698411822702351897444972662444530420751051915817522202688946189473872209709548791604560403013562474701605776043410442243796936377516125703662139577365233009821954842337676310442242081980476395307275816952513598327733548748787466342446763104122950565914643263491794815838595618882311397319379422718838162797109685099661610884457566563940009891537521335850221245555442201638011527917998868030147091444871259852082802758120687885013866462318681508346573456996055368943073428135716867204668314922749024698824823042603394558573863323218232832293833289993855997290710570979381421364019427494168479653874150399880811124473736824437540447377894075622534938668275127041456787452122116284870455532934526184068823609809135956138635869130532819817841783512702126270344138256023298498291863937182500462141829768325262008695254039479637343688882706953549745469103949992473848308834803287105882385937610026619246512682079249124741252434125784084971261601934625886531776679668492886141489634830989027106236808047913063414116919591516502225805338165628418905838568059434721898912527265266137113484177305237279658457523202041954267256860306126771389453060028201671022065121934632486008732911074619807267955646317127039845818322326556798947535676112557496984418826098915007713355787302618969953595633325132802610817486491873204864790800567767821590238603623061402806021263802479646981145660585449907628953371333820545584464556744518486408247469807515063391987918354441137115935345983675921764329877012697021282309462227703458522169834057586879053693790509847772555156932055276769666314553902839078075448201661056538650899215057311703801073888984643271306135664116015583689597649732257692428118236901754799420378371530220155179422586435738576360649431472634090171094026766823954701391739721004302997787966870324221304394218232781554096210986221878727333118373658209160884643344956444098910865018424579719332249021346243343573909242821925459758350289049952281648424063108387578649663113811047761344229672859431108167510608053522656986196961709159105240648998415344973456491370346412635964411551684338240827414301607925061878663113360144230779872696257117619015628681300003398898524990814198083012892270320358805117607669843937532544959455803291638367964170093935979842320119862654857430762815696880160039263285486725401632971435135544852851126462852924243086230603674912494328488332783372262467897901830482945411551599842207175853628838710007472832210968284752640583489048243101724634428977140397328826435138141778177922527338441505776883984902317749606630607049207512029310050863827421854190563023520684605607550426576139256249018024605298434986049515638568634627743223025233052896268085249200333886952611512506844436184606343348391401758255499650256134840288193471267024325154798246864745539149786026346313985958370773497693428687357812238163616392323574558587829650752942182415906031503379916630484097392385930320214608799987405649619203558605491472738242769227847977201582791992332746078405315183316047592021014910975073149719106283333227196689386828473031181155384360267119033081617441969893709947667995882033956350575305626362641608568022056248239585548844963080614816823249395827320688942889600030832748431689746548898988648137281068204211201962215029165622122421309143856163916562833304993967316888687383070071049857980484483978228502679212312947839293665302622649794779536309095209928693123665785147231911072184380452213767449827907330972468021156883267385199858397894499295578670962727338953564532981131598805649754489364300434724337306480431391830968896693605905162924484786438088584354639700882035581201295226061905698293338974200144127362302740328683930788162728058474495643329055289080957203178292774387590177917535416943498141190712231151184549571732584067802193510780691218023161902246479925224059303846799779013833715837178845378438708887394975912819940824775436342771826588316275794022868241291742852028212730471613030307070833407425570745248801184647505063044073225100354877355848050880276588702905218809245082155290372926443823636149492935356539252175197673584913046669550102502158289753442806372775560127959904232283362187139624476189714617246537784443547641692626928642872042688863882017386116824978657739214092688010670852983485750254503550377578643942775931222034255066100376645668142573403115954525153337633437849015840430933167215220841200086367785942929104222569731886923637475528630118692084908382237163896333898414445577607828226193432745462069948359268912998283095337968380403538923251406318112389025864771511845846900012270253937085954875218751543101460680726727558177461372257845197709331296218253927816062310150572524555721137498091664862377026360356314826178903425039251158254470510942597095020810027349821772248113359802576223240044298850077196866360239079667751233983597993193338699225419721283229684694031377040909963706802204703602487699844463834450195604943867440103972997231262914131939934938793888125400797969872111120134705752527069674172076899542984600777442837368298675589799560484827448576058719099512587674407196528575109148460874170028627486783047022714846356394592394385955640100513408164301926533563426147328347005470827333971593504647679198276693558115894055613718771797613468490339228781723678932326561500500487576554762344971867137441459022764068248799354716798018319958704750495982705230574198066761007266971500823410100213432053558725024667322114043704776076691929719727444883515034276822238467240751894574608744229162857745018804000202912128610569170990825173287772363758705124245915530881992474145697288962325469122690523967044497975100346760911726513250246990651230206795024569812683779231815475285415375400929397453526188262511257958562857144199361441102117066706028321647582971754446688332472550421410295416889044518925923342510892711059215497086998839312393350016572526040370787379318855226136387707101591645668895650327370194093903822157198841742138374590371144451583427595132904260959268784114717845740121041277698181522345954612246097671618830113966744636799408880802658979663449133501363291125914310005780774007850091343204656017521556960364308977014376900031042419463479641001458494152052198621202180720591044671505741275330897417792278041862841472553513752408559242257962991060078564484593683238192044523188052227524860782952620372246056176285418000084416113824968511844096618839494309544622202723773010051743056169290885342078656233090104408445240276875278998263631352780502765946034233142380619820294539246784407971025313097792506366543278924535339556069438159610007790446997161000238917203275577270724067564067172075300167662692345501682909145521323632642088131932644875262647591527207850191409925416028382283450656588866629602147214329554976375387170460836253141801959041154700409831905136742683914933741925808042839046827243197373636970688689205827684247759922044530825086168740523878251619145062465676828092433184441744472421498047995907560812871376586680209957134877110504256436857005932639331394737081711731190786966768115932669066340174278761198299911883460885454443781064376328845176906676137628137175901726969229008354851860631312070283965178953206636817431002026045669114367021800583064861258485946153560768067193337561401843367819039394031239831596743963760598568432251687766299413698630545292440607121132883715368095837727338543434527419040426318444305407235788351243035908601673220803706598529681491610841503639420060116919495326265942186836086725841511523589696465012216010126235676717586995229223323243124093360329512591018856219657407515625062432124353328637385336463389519119252938614419239865566709532308698222990818016976906630796670842885579314186158002290003612136752321321397425712321630485005962074280541761256028802118276063827414567578838819951491908692793132106717229549298926822180584147857167515063658548238776561528967948346577129765107914192322161474365308838570395708931871141081669058880876301654051949395586996529647234581559064637243104048230754515837081235297007445118592577539411665641126176084621533262889548013432529767016591917130415232523942731456840753589015217389567572269077261405634841689837275395751736625510548556498445444431426265462594180070382146636362269925401302783049259001385804350189504070347147380480326497069412121759139362771258538870555316367701259876225757162866674502115702167237946762809905832060518323708997810219480808681038820664504717712378621566945899746829007363357812778045226512284670772181922390815097653249134438620509268274402610258363351084329967821553850616901040640030389583689654619538883761859084425658219728559777405017585075866328654771368100902470437608216360555459607654324203796848062000501231638764526573057964352653974696718206579639990302475975828639281995710863088080436958161667553633173535555843498775565219047588899608839397286338541745961767552083306069967706230109008310727918044812392990018885168745634533780373088748241619805360064662481649497837273758169380892327862952942894226314265219152816451664122471522447649681888381365237947389722634209283994460315954692869443643933501120381691302407812818594996573924068645838381402670847104669930931593732724300697896160661248960187404175429364906650184005366232048055702286284258664141057848538379601261072951581506487419797833607179163949167974075090427297211309074144581090790823713490052974165025629958270541679136756446523860072814699621618454768388714888724107760292430120497838709170355950043372625832729162432499992921095617025006919036469339641279013801959887271486374492398755811230546491328875737273019125946331448638506898029671677593483271455505377793800418142947365053574640679355683555630612220927986113859875063579376277918032093865315999709277091206716106250507342236591381330165276876161084041152501762706515472101675323420096081968986192785571453440965722862760226987564807027691568391098566048052446643985507263471108606977179806334872064067487743249274492103222682181868995048468231695205183128931880464583894250759315675507055903605672173228926582487711245880764387381914882267770781952677829134770900073350760646341435099708786506022387154572796271658541895338710066109123800639983520747848266066729154169091327534594783234416823029797776378219619361090781861672333446311594507260340403548569654963562067519059701037152909976371443840675717758245446438383825031525971394897745110512910247868373301541776624645204097394594129063313091662827255205975231105832764004210846456338906950898351921303579798708660598696557942100116204631155325619706369994551938385281659368569889558523627614360681576154149740351488606990839499049159817505713058311798252829267870328910161770246083042528373221281309653175020067065562507619557312149159640707172642030745884634058441857453600825287990437070880626865405409697785139189674515460464434814778235883448682701786071939845149833460530315564399874862570024940360926360130526453888679370413363459769959053575091252196656711043952787741121631795972094222747546743838216515144570060468391265168064702116222293589759666594791456998142529461244451101969213423878782201172694751786281421863135822391405107054575037862316331639835084093580484641524828824968137100434834370913262388061398052947725201138552733035982469413263581577001078610346597788210975621223850515559311450795287015353514177643357960227106911649336416860431690619789028771144098415186415752644796164155390739870172890985742104644541408493839636063086620335914336828545230903996367173630760601138274611707500185016151142501974009044778695467004659146366230031093063046424800532544292007526204777539703099280426946847603059881294967457972042305869319917090763352644964852607107540501882219925450126956153421949999138617238542230390125081960357156344470609389698034447702013302424401051821960773558719946616096272346767489547321672873116071235074513987770982237622340067181694716005493116504774826262481904610328870864543269201686358263539348287123848705596068151088250578511255992787342605867919125931808061607254003180845598645687580857370133220068816355938915882064472433453295160594241742608554193116061746313586539215529023664701104236370897256602695068036264885513821048369930056720774111287179216371460155336768517161891397301879894006340125590213346925751273317746886718638803148066959776663951628076154755159277927343906883545463729701321502497345057350466499392734459998657918194906704911208915847761322502982966875147860785303237286563554353465024670876187697986430245130648806637031047455839171776267147626113813293110792163936610498820665449711170610230291818222613468002334868187829353360219142139353907865100066047294034536395513615774914148853247519767965919189375653731428625911665702489194949912945646646405495041018556849217140869774084447147808583270766631093476562356898622306689725067447192337466827644274847026496565636297850936046726681370120963773414080144166265106324905291309320020968366687576037128629949774110430174830949400338368451975080034444518199906181798361274743598230198481722001189333323038067113855839275835612672648015041649827004567202129266782782052987988061861301774879274587355677057020028854403913012068116481443386838923646192727689220441574652087325316856927004284511729061701928335849416991068859211580165454589295955321523430439262856650588415150025769228510872079952776734446385289670038102367467669445207387901979885881757580516738146439666740349178607624003247064233109126204853482219917452185374679406816606055324640451757891743199041867140433704546235854718562956025791765970674947988835812763946536630375360730518950652053761028249918615202355888955258265276433952266884583108120240268584815046634889753596388899230187883053417443049417868568750330453588760619194641598092677846324604593290882944198443219255092736309729602059750770241201405149158760796303215997636337723739155913501259166252807458605239748568634195440853420613468857097910509083016301507840277507576690888548766458768483226414246205070359928596558308669707148160077324752071122073579497449712866613671947011892797826097316251007163003083848657319535179650282086918589447228100293630383999784768841328350542508238290160955217439495919469748966263692669735739015391934953407812422600089002392211376820790710178033547733864977694792180687069949073912361647940275958921767497682903219944136351131613295192142539000956306489560235956559653848609949732687455252457007933017431926647673302383521913728059805167141708763084825364182863465759677795332630803279775330092773785448142494846926699902038592748908772559486344045025135425354879936382786606583597256672756545534820937113334123251410720791513210410864789602326456178881503468756150293865629302308158874593595642887236898829505310830858327462022347637888858703133089213522507602637897889802169139479114023338951154712571687953086528241256138655410044653882485148223645764837590703350728670738083183839513641107017779704450636511557863242654528594007907700120579332431558373576498734695077803182055966512386945319228505543372563395104792965730679370050631390245521043443910634201142449504822916067711725399561372881686075686709901136484202090593102215780642190402254945678946092743793515042454406362731521297894128254419525371386695402792934733271019404194407091824012135889157278604682735522568958706891382478062395843242442770838991314440651217518913086007859312432521483412700994777637941610327770980123209409083279860225754237610790361317492447722014523633401280352754239768866757225047687614914295409043966369607445750666150277365999088525861684269356019914609958946520952571956629056427689009648189990452043871863827680952045834326390733701459768883075413743160562260480301374401178664446209322530995577747733978490550735736347955738874052613276472211550453032359760153511982794462294414496749002696052484066497078395186146648959569300631482792855063815080694394394340079563407186661384094354508965890225809715982926350785834214695510569793416691805575991014010483069551287663419495011616895478210721081717918417660564970393305252984747152515409409157010878014840084143077077118613496469998978164940575460468778478405586922208151968219276650227348847639338983575717649595880718928251576002039521537525428222387249629734248655002001343410123086155488898081000675605721922569131978300818224267282908033884108039844443357479895983167670292121780779690331531280720784058195607069070483022150478735327254627831641149159800293226223016900469007937034224473019885065415422301443841196845741611642351873658324807278353045112419983262588647388649328407484376778632765952664073717689812264186655067375851423927719713201555604238357312212473209554220490736091293123434782036843932654105132524306236238533007805633111860619784292544113645375904004258019357703318369133422880516025941344371048337302572003366869568668802516656414275925603980713375295329161590345416605330928798551180832244965714951445155390143762061119762750325425531704128026507571917530732333893929937322442647166088772664124127494698353499247987467176190050873909721527104699147260596297221434722944985706553627624980743164227961509202819155530641610384223534541673791177873215176665527275312492260849639971937219020947028840061899616561218586176010222468209615591364388053191908997660198939633944391626477090355727685947213588816918225748307499315163161360667832714718399331648325612131407983149983809739388820891692222176707602215570389656613914329337744327687517236803980036869380195649198375587533705541347592234004535669549056089041967756541560465333423958842249317469548171841499877618564254851891869297705012769625063937393396635905742087314495209902076369935586422447864036218717794789051143234162993759183705670856988730603949299777782416558638291117341508286839204730403786245997759050817834234939410780736401370318348001721554475815060297720618206355922328887449217148639383294062121333184857657913371287753881908223288517043413052508180611511593606722430683397887711725509838025741355778055486516251482347268889534316794183855421830279104989221560545826163057376512977586782895514788416238315019173301425751539987797672639582865342260197536856831938225677343080057332363937090653797435965323191806238956821775210266688802817035846161668247933568720543123377384827526720541351511605842424717170667087242786886817385198452860501106200711941868729491429004985062462695244589570251642716813204524877219477838141701504621467647259565861843093827314196435674558392516661575550391585693017937016061815138593083641387731833652090887732944716751872346851466040259077748899721140127653505150044481656583079016183081769287425177295116148839394738808263620753008824166867945573585653975570309125637213616968959764563937459162259066372302100049360583262707100534860810917807692091914556651648187087538145650215084038021329035168503740281979535081605039011826594094362685115910927485636190813153114482028563300798418738322097361788358928504286678704128964730377202412100982186245332653752121880984901876788220006373443155511866541589647210893547918823944218943413842964907253611042658910064034808402238304613625200822360890966453004670761686287428084276857268768431654766845264661841818414513475875531858087047038435336153334771873599929159806975216637583350423413942727133689001950754046926373670186157030443251528813452901254951312528488111539970355883663015257482738956623824939785052181536166909841782788079147610667842140994382577963167727265027819400443879635588161386719789366470990316706329407803589282757656981452974846758399617345220516316196627921734983663465677543621692478565388374651252452949764943816149173458309092038992314363443665511997051359384697786997279582873067986120293551298851005675028392909544930916852556980029286654860656985054836521312060652153379622326007409791552661573474729795072388937876602534552906015128249501502755797416101479375293296838455960194277924457502228858043341522903964512828809123085436769230485944809868761252425607783730620608272172634225700661971713239045686187599689867512160801373484371609640261061742256713940828863892500066853231899455991121400031038408913218911850867812516530740367026504963099155384821119438355920570151894665946214412983829683577455508740294742239021042868826416970934559328218894069171931624147668223707343367158564905485557987688310595124076382105512996414368323439509550178313249715568488224549073640132744903547756040713907144260168071736812651845886547752134752968780953660472728480734361075163946728879155571273313481331549694442187548252392750985482389707902051253615784617593911176730809539384366049992047149872725224513854214229573895647758154710110505195466867564477293945463346720195967196111555292853056822050875623666331612230147689893752847120128146624966608551807953061185175678208994929202796133054187871597049156172150765241398922912825838986841812812697884933632345738995294697223746465165112037071233763498619692363187052402500138151143104492037988787176734729549926753354680265713756363949490242617989437912000823104975470942895513016010089868932928145004484840457199172691529399393871154757903942357625133869911119397445903342875740118983210385348447134887058459933533457833894493648595670463094964432338202686523726824483965453888679015663134799604622625306467897130478435692897988059790837743715213621195255128284386935276602257168772291602814318156355045436530832488270453482468906556173552523729414258064569784021100560316664005504942522862212310118417241465258111707334269443414001554673445094186746550990586801982241287564524550201639131018789918415762608385561324122771239898239156063488288072972809000598679048230904841295720305177872282199734814054940504081860362305313003760357050577615344679026528687750741394922800080199695785938292989622527681685880889111665927800888412261664794035809018240160075643673431574844597409773543739114673685528572264318548163518473509752573870379104298938389331588597254249170178940588154197963294809523383928529885544154154667951419307420865317015357789605994608032742999127519663226070838955368788360480698755868089361688627587293532914496966349294491050872975616944118899741165077895304219622334723362691909846242083805340114515652893019739283567727653281386202581858490186271292356616073602195741666243029982539199380916634232582004592001256148660565302025073699708901738469436326859306559891515656207824382247836181011697471961179820398390913510107584743770917244115253928177247020308007899252050114571510849202620766368904315561528259766106124808101830342736100735803247224593883635075980419595384281641198703940864254975488629174471774671800497569381620201116024019669972734131950896233346921340757370167865671755098747143191407811177376636912295261140414294323845255817427421765424653357576479742750094378353265516040573509128647587117741786618990195474252032683955243417616572370345460864744576931328990738385042829563232435301906297462175257924546223976063608159768080507649644082587801722417230887321098115297060843002478628385203973919952233323989085644321436254979605934429554286352871915655524740481829263074021952270293393570405204987936940254814576508184142189765032360159295298455827507504870421109501388905122704366079184769649311239529348096110371248759613165615517161165410271808243656866667566312736458048509736581922716157549772499827259407881794374480060833428658264454829777989345230905556456695959473035388290077453103187641786404479672810447614266053900336065910814178766475174994382074585373379221736517157445205483526435645950306467605571650855429651664157175266687339840670967078425343004093191654156454273569862600524746788988443588582691642187397056623531822148636335718304022467954509193699562691478671603519245756298726232027544167624019008758233048441812877311094329542377432683463110900678801478769646841479732491982678265970886414836079622242316858805456198138322873694766211141135510991365661441112730009220577983069806026093331894718170394363480153623407180667424496475924483047758855691163533607839024977304542235218067372570162930499854060059642119349845924716974436202100433385755307868169280241778180444262431327733062389652555347858325867311214134690132298321107349574284523340898848586788125564912237048331815887685589027835210206765518031720827867055098484754454022228385354821586783685767248116954030502773042817716876168925913774927530384950539957251782580540869970947804102648807538522753488627134776565002994797249397456639205940396907070283169991198273473377035012560349265054001134223790117160851179826462702490260101556569529441970273010038862616782789960100920795054511790484892585481278461377027684150584348535293714697917110855195427390674784020517991212328849815415438051786888319478512141397427104050994819824567844020084572502693139696586997517459556000317680177568371459805280559037374456729191073425458661723174311455487306970643540307071528603376622895721570231425787590932983813851893373741851361860334105246989113617715760514051134033155648121487669321512340497354171660995360783662179151220439086857719038224747079102039530090985042333988675587004757461422723225945896785574858577078157491707615501034135297353486308491118939896724597323569989966439270809051777555837519205101739977293814562223468758863750819407316837755257283506859004395029790649787591213167183535931935932080149668951834220466529452689992836267198811781369605640702950143522383308193902487434042259225944070935645678510486674248741232128770566776896971632929542523782876039898164240844104944293769603833702936896702010545088930235010486002099222561399340537089334265388583325600295020973589493725244022551531630454857481103650182884131994219508598265021805515684344049015047172072221998312168424182451318391537679659766754370865470584346784960833107207945525300153399000540920544834545562546982966404663940470603360333199114197300086986527910153399631822632888934691593320992687378771790657498956261940160520588385409507302342952447349833185094149341465711928459177559498447630567516938420862929840076471678128755978514110529633419924468969061111589463990218484073355703518081292331982614165378562632962608329600146376540529688202687483971641589497870241828537252567083437568067326816618833821170612080081754607388336359934129855176619308721971876516173574602790955410345021273240146080996390707915440332676241849901033317450009594420929335092634502192255636866298205855208383684119256070996950360436556359073951836515820441677342970399111184119037278330411592049836351103340107573323680693467669917815304258853892537168349676831982905809304847331942884671098674889045168170538342369191519025428226365384828995047338912172955488898596187472232232780091814522671390549653384426156051108449815853503437693417044348794906234812041070571800193515282513347938934575980218372420531284808029006813742750385623038117945583663876172348173327640888728024827164488604414647028178748324550011755983535946220118546775251272557855171276962003665568594679702522537278752637596047616045690708200551051503424822308258750643902547737689214413207320240540734434990441031759161332041039847789273770447796579045942666061174870631334276192065904597013348053241915160348302441488916587495710314689986183061269468831002827449120257941792969058793579904748970386482002264457124481313308710788975579759438656907908018339895944080772754364351640377743740360518303874055502278632144863795893866481603119741812602976965027230332342859315531079492991234347555137613601898502014298922039758763876351174134264639520089319245088586991809438985514704143234988255716578055750320838373484169565850877830962023899454462855757227743526791843610458463524963178183621789228375692684531223143874059512862527435415886668621462728299545121237961571896099889118319891608357761553104594360392136486825260931440051826852418396515443150090670136782968117563018465312393728430198299341010080416596639185798691180569393205175151363785162800961960559550964484272279233191374369657063415199715818288500224830300254669679320087067018773948886658345438846901884847118436253789708880944171154046686903178126137228648351222784679845387523673807979400977402083461544591354022038906948443071584282084135471873408221004448518268578770908968146097149493821042115046715867636842859439741799097142028672491085697561220833989516423182759392217052779158330146498148618099220958789229533564754277143122078179697139671114881543594194910112066109881973591138704165467201069670355593664339957533088204835163495299833493302065024440779789540239103229623114343142448214463305974894282965360436023942020575621642768052251180247554562216128658652814337505650351264415221627500097773908882972134516578386227931530180352451886663206223994818863387440876462299786806380776993884874046983302517448477495878366035225785975063430973871644847991199938588634458699502819502081776584405624649540273867604200401330587477423487727037539620976437351627261395680226748132831447144449479634528525295422035097406565654123820732482910870879316577515452442731981577549329549895463598320549844720962495216717434765242471803463175459254565111111646075424886653580327264343250822355836751539339775527682750828899550061058963897006110738863988061311057868764969424762884199253214102058408508175276304348925551809752878389285529960276154209232346559904684987224677509851121042276503686863031570550478847791527545721517004877238484937650809992571157617440173560831656704908729754902084003929622813185309311517931562130983419816611103820375417018027252185479593959085529196734831774549758798960799943772272945991561882386011107884353206286408138779129040648840880799054060141995208929750841433044963542463767263602657433567970498591805337203712319778061598667907314099305596484843085837758419040539351478470963715075045969359529887486211695132285162008293138824936069021737548938528169904789737937809640632063527341107097590735703682313989268123507530278167414943888535978961946144609767770904152648545231729757130618081287579551996860107011324408459919584315504291669670282464624699971027007397476632665295184540344155656476380304430074227405457658963536696495053802697066736310686447463269587463124124103126975427234612066806767896788267525823371450223386896784127473102234438666987450807785442269688391258944085944440455400328117557432030001279275923950090669920934208550655197674707534495570604654685714605563833291160026363003053229686668560611688572236255862286876465554825411958985351720160521360023274537986811111342916813317775719174209050496795497210866722384460901845064826295586655277550234336445244061933858867207526221761274424480376280142346471071615657359946752079505882519043231738454792626415697219756654832386133138235183128440419056089302708383537084062882970141377819078791296802697899807392572692415587307794317946524065120772561627412055118360449816733071072430352712788194683439473678377430110155221654640430119563696131918399857312305570247261347022238044026707234806139633268317148014364529407667084750252368762763174058516735810887290573818782185421155329874133903101501880244606215344002344681627951421364466005340900395880927984374833713026566647949981551339375239773506267655942328201090378642141941778641275933237555974913983490733973451277159875725920118460949533192303461957234465109396147831526401137640146046761924640138238832389897802143601258364843138876777107872313301393823094115990778976890363284115871735461655092557108055949392916194085290613503944433438665637149269583062553066164768971009414802876230341947779365503524785453451428173458923351513039314415736517144629392400745474375100933801913942018774919370080911817369916025930417107312532799181906844105927284343553666664287161184936212291075559416310941350828269293949190628906695860916702513580512422089464931506147851461628093582445112825729306789518699948362154660957741281439749618653126692336152853934787049869965482920963299614960235805909046891723299222586213707605648667314151496150942926728789188545635398189859177614405654902581228336830875868636256987075646340380286722927502125010757782812313659554797551705325368463758829265077870159446085706728367778125183756214552740448204957789819076256017808963618997702951617068038552647554153757609559865155427803435720427376551052366319125824457856141252661327119763979368730693088275888557740828037219243897174475445287580777245341684469374145071115619334054866101704815907036753560980902754239065648928211253939125549496877281484232803581299561500942508262257483758852163108586876400161261706342016235863618228976449247567728876825795430203908211217846181291024023721578659706947401571889714947497241373290917896360656093599447240592082624182688227253907777641636135727339170274611121086785276749347935908996282879571466128619151322256803195569270131752779929314896652145698119615922408329629636809168256661381662036635885060194321560770631121438001579260036805312850978713502795471542614777763951211208902161347914526021975049035844815061932487726688722158908923755788677474044216660365889218867608396405101732191315545159523461889674114936953098509203504668437561359430986008218703110063871843238377616248537722158667106412007553984127291039338899070183058009347456777358747356811591923042821988834249538223360910238652728787170931478013851409554484768297004350308737774993624307101150480430868691359586399578278502969594626618583575173496892539348766191265870320926178167076805988402907992863672901049259911443212282208531780163152434437849112818444519978334225432253875129208462260636962881199477066911783171658900783651581636111645096721233074731116013072095515806153921177649373284308789252390864655479066321535980887511825797805443103989799813112624290215853895277295527686050733893306594962697602907901136732048641240952348746155390921095940669504188792191239935323475236632828351384086661597154693869003754087021883603036560658385858239214856044404506831807884404377837762766669604923477594286947144633084677001903593029921408160598548753843292792029427398732404820400188541020839142988987551639728990180124318549261550731110045493310993370299503830498853212900523183421433948329941931730530330491370003633079394574470236552715366312255810480558029374875236549527709502562977790197105287584697320436859572201013831784796953552375378775759596476788101390985820614325875828533905673230439441488316680986392820168262893830974900242293393521522901921570271089148022739294008932271609438182156994910129368588170846956511094236420161148676271404073695992913926728451753240801219482015296414731837228303531044717283421951006981207379671732041745807952450234132332514744893055917560652473694374261825207772629608011369618173413893248566046639883730411981503642403493481044187972228737452330501943659705072318680700038801515834535581882286169976166981767925610395416023409088227925660041626133028632478296106310625909427724673474940985386952066797943933125366164392035611200252578580757428910033686784463735664394352981895429473388689598129034717686132957055313768246112390820201657539821565158912381831584781009460139622611677823945764954416322229667885699222260865538522213823164111230475112049259063604913600033642429874052649258659747932205350611709719202132550526389485049570151643109315879810709620533603844260524421310777412604254843920779412284272070266989861132904064004202838791452892377823121770453811839790768270672172437314579311644556471119354211055356554263591781828933603829158438229862580049589920968828681690976129641948232626935907502501586063682344686745674741091489068875697742512777734647333444243158109240745610878154497948184114762368580203051960984185260526336409424758047007267119589499817238766499974297541424433495411250976720886815917163688228849473030593431691626322908792540023188571932506958632511936224754281410299063137269621482681506953770594814995794973671108237360055274339670912981043558281964907889694487200647271526640347701214510563616037814065454824213135159221197915135842345090833327547372993537802868497992017223728914624911271750941417305163902821282300329773414254653342850350491044722297438566388398411022500623411102491143876398045416142317823750995651174008810887131249516588281638627448896770159046528494752624491920414420380910520830213056960514393333593844404452922161098277879928124874328660360338218280538683883532346069442117136201401317806896861417587015157179625495119962130490601144094190184218919353560967732016457011204202321821399649211121981775844808747444230069872415758774283400788919895693957434933632240427686009230963454239808290136326516680402497724008496966128305657658715482074358702286313747327284936421998862197131990121273599605416612082540577551092140540680546406134570522243968699458996118748180260150348750121344305597384276013131742514878976038661658730122506922050909968871410176142263175296299154468453724188341239501742988046137398216366565562893148577024166993532399534725099141375634793791594901704701567700525420200287174304747550120717098820071926412253531936342970840396347316767930549948838892253676233502902962046435547635304795759623219882570831971470683635935559989915895855956175165137940441962922664129349456117608779672543642133236444732944080346490669111600709884628044950406506064985190202089371825138565860708839512124261559492030747090445561330862225705401128114607352938375335827667968482793676633613621471069127143557770594533905055694773488870466544107072449678814374046373035671266687671172843047825688800840030034000544303828021763127014057071678361067243495403081655224198907644425992774938700836431886341226089257412637396938774057447564912454611594801130369387232227036120877566058282715718883472577160368173135943740159044946792035135005181400786550947468005230950162112093772684282287375775745932171936947655542818494231502124538711064368728422568112357226651882823527066551360734383762586951957929404726972018838650928736170931201536236463389389908270704721042204354831733031310306218712601861365530620403747175874335555958395329467212364018806085873592738610092889253752043231585951488873907577886637928573984775082201372460778436222385340363599956324646580890870626479956976436827724663776083439984355037077103445029276480593199790175930425043155614538414303325298837526944085675326953742919787004385337849579639313884865545536384026669181185220031483642656388481454339473611591129089486699843360889236746580565471404186114674329289771488218166286375139557239314246658742456211435310494580968122913542178335083388144723805318541358247930910944999283448503668543408406212138930411320491722586237127709411123174516249161068940374426015073027592005121199549662173426051251998291906435506688661268955483112745701009367604335509276279517696803829289944368816006665892246027771303993397050793490449510959435614415000596426288568543764345882883486993584878859676854707162546460610784207880671595745991523981016737946297884304547272238886546186444971991517522460337091310326524946008014016092619239614725112109593582418315794994825787689066702585694170347261224654485513136218902701532805526625683966088374592486182936843657163039241671995601131157673560669759290705148413286917100127644681866437583272958704477284957248373565372049961511449457496751618256887775067866644622506475156743980778188120844713352922017374374650876027535443182631370261640673384684695225520088951426869315112679693595962371448054512351871181749217957873245134111817427899123691108558694005637759303646592401869145481243427720104655649012636057531296446560292995833268048984432776750770981712095921217702689144964934261342453849310956004348437768174412560962766820884119198482640648908934302174594247291272508789389720813135289072132419742519510859872235669804803008128256542114329094704959770965466539011001847312901636747432487559528694488464292216716659043275450894059083177777821234906931549420524845072496971639560498661596020609237325157932883552130163520530493451124120012153797971823470295693445845113380943950698247532520463978497149899440630142504408589875454334378561251126657160425673985245169166093731926908544686677807479747077057893651083388196672623067586314689266380390636146930972837524703052664255796068899312350232045574038554586986553630720139405071552658859888147308158867230390458452381490934310940534860844568420950448903312982354671157605273357840707359534814140704120075290235585961250521190573152265508954170644428543371266544931163210822658157900941215795921508704355606771031747886965323588776322362876275857017355126246736154259870665161848165708456342320236516978917382670446915684103777796395394609523146608582549285731797323968841995423409426089768222755070866377227802603143750711763682805711936191642175397630854837776340675368653743773906619309877463305010474771654421857516335952671389143997533739127149693333806965981096210556659019653830796632755400868200930481604940679443548474394644245878414844519401442198589276420035976795085811902815373948680427037747328407115625361971420813335934467229520434745359090860091077558849299517251156353417847937904059322997496834857181917630793127742043007694082938651417871901127689248308423640885489508464162150404363333729246633787048246642226802588786091947867883908044499761436844444391874321790360405073299627973719420014877303233020536122756581973563115404407207403302871940008116903150801558397641951602530675421145376435245049294174579037708292521914878137510540622611097109828745409235864138265244804140361437460058802263935045104637464666426148510909843053220294980923684241674653216348326898079666649281359680000220267725009371491306645188634386653819078106099004978896266555940944666047850398756300396617635987295516237819771880342455678019439116195398966334679498050580844974386527528306467554116469314973243068478025924552139314852126325919895911542519983998354750817640019783413132994536740435211077014572964625014726894014484862972900022639565641435622682394485032473253542022712173404261803610761643724528606452370704845150410549335778145257078558823623099661960475605618389415196620139490995391707485870365912751273546090541445775231672259068928886970613152187940612138934785741128492848695521100045499015441780511905816552153407222839408948722645224154262569958950230107026854857324820387981846174105586698819409253954324317474245896028557084863674535808887236925983956059721478626685076648783730496087741536618098038777184229607947155083208586291017440199343064754255576626073828162701776582475862892865760319095274769728152647430278736545951348145184351914803567089495075508155785147483773082282161950480325222269167425663482400358073236770729456088925180346995432684571745172450408818107449133004586375020752556601026075946330574952977322901652007088484193453356684746469076851149098144882052793179458262001459980619097604527958934107614728173990591824763477157102149152840298069131576165105830378499827248045392553630735314745456649254149507202683076642624559183271569132321818100261631168428037876636268677474485113681937950914732678456716379931537446956859147996654948732828186959523104268051693184011566885652246226021595510382140831109729416666736733505416153756789803223310323561885542419526145702054370182639375379302294473354240159766674973796008471435485177474440774442698933812861901617302976927981884485005638435968083879199613593366241020399830014631710185285719152310371058282871579318066517884831561153468551706333400838141745771991603604292823592507040320066456713712519087668281065884283890702864856884301061269776612877822785621011750872578573490161709303115273364165114723884955540674116260985307415501812051402048832751537732190272260295930620895828045431661361341069584925107957286217786838703597707373852835565337500579020643963649380124743738824907947331361803792918999507672404016625063392494800662689089769453956980699205208181551031996516436176816348388086205132193677390480778893515330254314142929100309108814890668699581988491355296280467498411070727741887342744195102073086875257720253652064719721478895866939663120508828967927131816051816624410074761553478916049230238456426328243678346373733351698433879590818321846226839158487403620435591524278357621533472710567158782166233943809984762476682973655906161973184775096892105670380052159504175460846373939174734070021209481605288102798572901647521158120427428759502982925258803769505855986244366859849603221247990306942461633839948918146622033291923366872202199768646852240855919625273586349792121321525756962807799530339919778595581457854328763166225732829816254378168751978614314441541407475498478437308646006529168403019700628878007700254440474027683051130038352964210854982742863948948271082498240154439305566265154210165229927816031909046875037470337729421909567202067100035675401890172066874909476341635363781508683580291829122098707820283222630827437043438478956194666263278620333236532454341967797051252978258039361052042607581215865611738484399445108284763388841445171558358730681162481360291506099309512152785669422775374214590274068407118599286895944366266232952096056694678177694662371130943591992772531348127611528205958135299843552331254813745769389204942540582074404860727201102023681544619535249151938835247356174741483361630901719435658240753245571447883779898070959814571693391746721396771577581583541679585514057737319205622448675900927830289225514011715569264431472441637796930846150726468321520758518255779622692416723731529618387104582608822890328035467662885349881471919409770657296098446738640224719863586969437459995753443710337304958227762145649913947627209081100811438814563171056842943939770707891234125007226566421677476696396083305467737529244166969099660232993503709919972247860325990017731852387339459185207063056757962508945694394730348366811969559748740132030447583197367417215211308618977047733431000825180407032643946469020284424829248252782834865543459306507287835611769735741857451490963979815699354040718918005248713380878051742527432912905280565758755880049549713690113790986993815669646749067806490883840141628826305170864562428817272488540881344687806892242833115694006622817922880687351729567028271584396062555919708622121907912328291459512537245375525277221357369001047990109361892457085271834518279544016320782796258397097950221764548054574836642016252218250226755848872608318104616177032586410225076550764751138384114654063576665306888890048010085007870080582021425483199980811784389552154067349441268431756859804324733021140138939018927036503908779196801960338305167240215166017572929218023755087144266235260380206074799517877755836009508478037638746990803756913558677682352687926182532379360060943283425361265720877242131892910555241792612462929189931599178593578935840507091147295961115249653621788175342656860213080586966184828001872271217743400157015776544671196051864016844663885217723235330572058049989575609113700175061092853721960623301225421314255073633436038876022062746281183992067190477596373480725117894171748452082397633300473720244493487514485885042968559755033974224060669343451140967679610707812419700389809495676485498675096929783846124983191051241770593278124307158210839198987753402074183701759782208415029808839070724316085411977888606503521733186024327722577212017993544376620968680184545287579164543510236251535636988003171640601815342705904397624834580594582727023909004396996740673667676696666348932764688493304433420171053980649513662465039352256136547433108097101015182593267451162994413369162346288427261883802226609704737463259525337739303656672603496534221625477886941021465052917883990157485699842068449190572823265570712864322286793305857132180954709004049992539825168744122629414124430283618956154668699711468773439038167697673267172357567664444945797655791888242027034551885266751181978471348056455569258676892863044261484853110352144951719033516410824521694145137142230902731896854388317087533950700661023463520344348748800305754767067306238228996549447342063433479139330308909938459897102346978386369750336459841264600772107906025673203112602847190873525537695636540427674253960389277539519270608944129487545802324206522303803992115890508128317016040513785917376462027774644032311272843935167458201506233769905566620726714885928673849227021603874082363941345172664239647550945466106850249573742640627029440840510394785318017697847252666460380769719288645130897583391127949132138544921983959006140327969907319750239230088904803278326045276514118985013230382319512453798050905106195028772780583554026386080842083246912488349701278557514673086635658313657616185956577338420462377777016922206586137654730892233602042821033187126201866216030804660466116665319360958898770943674934569556606529624711695461713500522051991831751846970660722367834482602882928477914387679069859768658355802082578093149102992447363359525108129393326252724063045440130100274637803683030257992350881082670663772977308248087077993941791506211127004550922394679444246077583399718837368692553102795791517414638457290096377982784414797827759616822929519431737732238208000657903395701466156451291891720177960145105818014932076201520774017134119016510846481219894963252319299977648915803041425109798829820466345504460887744539308223699512377248535335005425899226556873529405490790157726386804941157874870336756454399647761815710896727544328320631926014367555976344856196599654470027716820262795275772907604890136270816529573909612683966207109567645425397903986430359383471075165186314868128986728424415766660366771421531425694266313976947439944798610591218022141454166757329685184565731003911448598915009881797700633255802457590266408292601971310302608890073113886198481335479507037502142557441320435032873298496103021557395665363242592282370623157314277199300726294468331336797839602238055037690616921824796630223208486133124549802683828871647161785127346366274886815001395892671992122058535226844400620608329790678576608260347725513534267662542015065413919691871440608352559529562775178060682892168486551190319507794799363043159462951028887506839199745209839701910796168797553647092824586374252623033393484144470315762458048315401575458459802138770921789696875890137719214631248687852581264387557180782578917939830354097669046148216874270594961837217409633954371056084397895036365188830496251346491122127771513673270453980421400459061211166368711158862232862261006861227100707915601339711717528357577552068570132249180997148947085365578221536165005765326460903819302025322938346618655713283481283544340694780447444599627160848922415689322082359666303092263600861370371001452791454331184014031747876550972404981866149624315476097790917507357962898890744792729924802913609384819578575269656230323394761171985770734200666370993174881440373585075290681529312289035699064993396943325531248675749321259198376938521947265946441883515149228304179365751320518223579870001457966500801298508994446878008161686333398317713062200778358209597718645167637655090214787766517137099936858147077045869286094839654011120035743848226769590731202793406165850656111070439011921763905187529922084320992474926729587203339227776790161509562410859977898834863595954714841178818112799343125342014300402210364922587946305676017504093552081472933729551475753463665429765911371591251616841864120260580768040483744506611909050389868856030611956155566494966457391630434624615688083219483641283413118397867252298853459094945372634196384416204096406368112708586624775945751149780986190092559428804931924454041205488698876693615032915917042551679051480124081186504549679384452644131404690264029137099019139374018641733992695245746424287771779619208411079120768193476894176140339399613926753130039230734734030440226904782999520995766128522824068526272140860861018344382723666504966523135554319777191511283091291279811576722964903492745735899927120917112691870113690374361760006497711419726574758974537711457687048424254692995641790018195689883901699488914356115930343947458339696023152650593927824127599136531042199037712591078295713263425719765336521948798919635708160628068736679248862189305270826181478461316801015861128445755439396797665798313558335454604238303676582215648256876591189843334511326048592138336437378768418580290408233623459651037310958016455414163396018861082632468630196091899448356603600266544024960107607569205324414993036139411839968713932926360604644471889699422298247778801722185321197618710446990393232947032294977112339067755810092688593550393533179785423250539370873841121088923297899485337812344007757235079498776798575959611421211895885601151664884100226894387546426522683640518041013109281901850907891778691543801719170490010476009725716042442542875143014100457706943066417857145739616246244599881077932361745918182915112063989810322227180118908184365076209385335122261240459436503838122002518049145633842893711955220644432597991052377269293095208812348220463484762513889748444417859711256703892275637754882780961610547132711904241606490918506075069826973426049229134723652105037152935194369687427358646852801680425462465072505831674521256785007083026391453368065097659507894421797478237378040910654658431123425332386224091137203298204257654409497213803807406548814593084540669290459660810428476724070176811153244799464544223888816131773300930954468883279103528307725142822778875078920553644070517568674612122157468193546704604343933512893633689731923739846092044378000749661101873552591195500466890225742934145944264986644813612695107425315459389590774878806256127657503097807819176157137040229471138066636758545354536848671837495805551381398748719145872181638206419040859184476512667392289394483619393441680980561314827509044952778019724837772264524238979430107580880756536659668393099692151781020504273512568826509890201936796196277700827021086676466916759483457313156270593582571924266073236801599630338145005369649211906153849898936012415084841781834036391131898892035682841559601400142412286629905141131934822095432669184946353969186673225796608900953832344011725137396876512400880358263640195231454876003275584164825537929057673501906575920197371121858619363953323125739211429516453347615504496434422276316744373891694399104409943373733825782242377687371706572222518594388963193781248805421770116216862522850200607014782548215570280115312496819845931542301680765497496305862268996337572632939244371577441001981579297859656690327669342858897070180864797113950835817422874501052806444700534318469517603579543742590597534339250592649038590237169059520494134889189670332187282534479083307115029094124188678125229600232563244437398859842317667366657098648968640579602990247281286303765838556039856905836077109727596619046361105021774960038877326922048344516742363662110384769915438464067103820016926281954290510337191751661699970735792631799166915442707915653633398939274513084663528779367050297954752185898392423475877966792234526485203181109473696798089224348338764827697442374820232778244224268708010754726344226774503771312417355425943318830655002926474967706989210385748890635221683935804283187947051265944305181954710683374522345278722854271984092240484824806726870309027368915202709127057276566699473280874322554448340539289513734934063458501445315495001488550272198679004663989773985843577823518494676866814681092978897566080472938736164207473417011911621591873372287855674362604208467783572509648817118134105850143350011184635125312624879339101586463401305250473190143578087946324686064600420261306452572018839488835234196692742304896424049009861882681890595184690888859623622276248494466100135120188344197576525453618124806243639852920965466486710042257583005983117184913429369510365354447848504471457306049629431664646319654309957726236660219247477564726615353184660426163752104922917742333745382651008999905717214775059695030463861724688313430782391735549147017420893959913193761973815480660494231438921575080281878474358166641986157651443476992861681956069903677953955787674136998888860617745320925231303606822938094031551944645661189019657968106012068143519404731944000213468071338411465682673145572731176523514123758340484447853970938748868077192078752073550325526489378622146175829225157880804714285252900750058566769661884828803267946900389410701490025462025730002166722534613393904587949268763467192933232628849531913393586563886793465304528500397165192616610394458177279019127882723110823891455395396517781596535641272175045535104653948263476465231081453779848730376364060809658240396565329899441552576602938725862416341123846458165048148401723316983428188924860774909963820452254383288591439941136537736555193566915814523866819403822549491985882425238920412578511408240838044996318847091645350315926018866265893108223585872618090182423714410677700535470609087779211110493033042286176970736335752773683012881358136029382754932498177062612099456837486992648323285030467641869628810903816122037065763445532196459034572882609199690433964306645118222957139885581069619542818378629804857615347395060197229239213965193890192062345168260595341584010368154269886952396795853677945224062318818795129746653385987984840569505948926713858017517280505207414237612091780668921268150378191498059372086318316919329007738384453405051842877838285243576920840296168529174300487777511286910855106839550468689362994075826472157703753119852905842573807286094383395315888587722641952220154684030646509473452044021619433551694441784952241256214694387913259793094358441718508294712917270764755522541802758588662665584440656787371330113061237555259580664381057895298779176732903990820953476429874446716557093071465373053814551482473526226592246856608463102862860791382716126897733199192781041326806500298900118088841158950786352005036373427162502668276818116710504434159525916010771359733562708310077908774607748077690043572140088192454561759209342818934136519558409703939061770970940956670316553217361593889837792103685849421341717160801494108241478765069915351248136223513972179502169161527116909936002863025098387715094643935194954675067429103960864222245561868527456166512001507888228870585576520031118436109524141847746974980768641460392331484487553223357392461203624229102288908157096904426706308861538777623558520625783836495356052938350059995100381075321595482822269784006178156565504046611834328344663442584548271329692502769499656859288699765025919929948441373959462544421259774804591872965078439843886468909022694131587727478608527604102414882052989629848286410193429768812471209871108828325395332107393515486785418184033154632958234765058676643698745138021310194465893091818577851335976237427799988930701600240866082728311213478886420674737908664109443924174195189905914240804058495900327957502512071099212240574840648513769419976594164016361091023137390736197341557154399870326706539909091390425174075305992882250664915622440979756271509591589425871081259040338081428032264377215580317197068641769866106940705110941855814522433175993915635533301049609531362509805983074339762241926250359843253063196951491255996624563213990338959314885308661098761076813694625715878561776157040145604392578871498061958120725715055827369485989082442813590496720471929187900386959659306696309135599461768935791972705217111920418905492876682924833721737266290680281767450456632272873921189442161332447453076167337483889815492340846442497323563400960690367777478005571618349481320580586677310177301122532983171155065268560409925188080653371669665343291705668896474998970170394311306110984558255774358193535776579625926390894903997067452351195314060294346723740952002733812487247197165934245947556972910785316327420295901632697806853537336507020958435828830516470085335874594056646872701323204702835759149494855278243898778016486039238154813113515063371520780642882737320793557816527957840026926308611641838062780560729859067455074436735846669856352592390745866210276763685190947119849847821968850423548550052270483871325808310058935992389168091077854564777637489093680564738463045373454956308558760003920797254468290287096423184362470678863500928846676596540560687733889406600114420184173092743178336751507892133623627038945329744012519425610391910752386885050453066205164154885749788886382342780615263365593824341058114939904280647478642743669978649638160766663811462969750645206734970497487583747208607326417687655175544000638749457693527283777371944819961111209778054015474657672940025057167044716105832543059639218092512476040995976626587071842633865838844422150833546655070776071411241979117389219493918290835122074562712696250965686992564995634246869305239322300325219520416735607720739592069915366081340573665446420862195308739252930171398677198353861753557242684573489988404158991274163765288996895293440266438501843674262305962650772595497585051510710839399404196187376440847086236012555663318013450247578408216569134811011932428551281877679025229083923122798972200342087083326856342358769951605837267888292440094335300994473869004554587945468994315349657780756626951485132870733209889909970416071483730395328851901863413684244187066407951348876704141399442898475729166062121794046590354164713804517595142450072896384112387183060273158782670561292370021155816914843053435446518945876343834918785060211289212961444334696835647411575242447891859756539671353859913537939555874070613784141435587511928759936637767743265409528086498302397454795913784133935905431019361605172326335213935937427929200664982732994138433342849669037832956943568212708578741840065026737755932863016083639529979372071705177747331549316913394728828207762051864094747366488863162504829524909282674204981309798657192078206340365083116672686938367734654507419836035913547622338016254567458489950980550934219283506729632135104104188237902856693920158638818916936018794723845913238032195210869076688077510662772425325006905885060768847842706511441112321211662717709810916582049722207998584643854542829092889603823512412001297786612215612754794851918183550064757885149281023502705769674363143154474807871891906695672748547020315918555522068611311062732903718467671913817752815360408154725429511428339500543740845292162428319159693158465130385113803330858597011902680210766664476740713926477660951646970193211056746613728188903169350271230169708320254126538143957013357681235988243993199576274231854184162024537814563438433250680592079678911029710220554406603808231991578171114436988748215346162910451045469664244281517980246981709802092407933856142615429171747905932968257368529419731839151317697772911822543298720746323604945050114550359371396821820103999525474993265279313309370493995707820534949176861826817418520953708149119784808675953337448099019294864548989414164282655957022209170734834026588891086610309694343807060506619274572368309487964391087114931574906203529651078853534086944073570577849645800320393669661983725049838576539998243328101039932972286635507809591304194081056857032521169783765471200831701346247582682054500886943724902831802102008122023241485714944902286890292796575482628849035001322174479802589367819770917402462839213972791904814856344633879703683281882151639000759349048350230599151834805085769719920675324508465858775577402693703028610218111053732130393662298794080609056616895601142093345569841688466013017921945561481140291095238078868730128611298281569040981834245061030753491614057565044529710948348775461324496861607012086166097754097243908045779257184721055806572466212286302950992050394915389513571766665883872949599736817782517010471504151806127566571850454888325174745536198256589829844738496218592343091538629121361875992718819205079497638105078868855058258632146889402870443141496584768262799083440710847016245255036117763502592509809953726955343556683111144804496893347571320409853984373313632889185924989492777637336614328830971555259746540740518950772155601383791868772808186489051941481469897322822243901300142869359530278406964642130483963134679530624786333621601716155695692037807686479297458507238325427968405491688108017214905309212121397669705696712269568202055735531757745586549396101237192070953812527035517832175390333348304056968425640220227024748826390702857781872308767159903706920930756168152397741429321876887507840244608828318912450313532200110427172259906159312705927465544364031114323159151034285342572976052763546768187565097977274790389101198783827956024238238917306533488096835944848833518693879060728113377475369291798654041381618241188555464484465343856595906225716059586485991143291100283045885276314505922856141935693474666716418494419648320802988584376106800070490980587911653280419138676091354378735623815239648664031882016732126122881928518960407428079693561782500261894699964730836130151865399862811706468243021985883697536858594174831835805431855050463699481450275838290003944243161253904057554962239396100094495393555855780184469119022540160749714411081623785862130794801734953314811357702424400562736498353454367967724571962316916035819382001169335533888618673107478784417313773603876420561134054588872048217043629529162042527048711844361189444273176017875004133663578595690918360419940804645839529376969736058183733427446050626241544956814033152242977637698104721943213603379920487686486394011905951491081302451272884398280124206772863884131227515835663186559654226167118573058236477663628691168239037320834566601454789504195330269494696658459655646267220293251527423951946688479937277538726429425342742957651084816957274808840456518429252629681985740597611544134724296819185989168175441872563966385388464691018233353875075647537301808318895626918405428096902808257905940954240078078631565610128863523117918405960796753114000638626691142995586485595484125796462617929235460992156834372260758182578929013113533362577580302922781023841033582574981210932879040793870916569008486933810747642766578638696372672655294704215091830916365332535321392623600845427870697767996705866598865300539792696438793060891980307145782155795542872033321889690792412230087604702809274932749131856490219324105281132999538731001538302388986704250435298668017115414159884939593637261515870106834769751680520019342862465467317143865444181240407113542463317874398099157489298104989034037733192817254102490599375316459543996493232481749738908611746297970029654176691175869037862325753317771239009690312606059348358686538517137961972571307760445691611213821644240534762385474647916523724922794417687182259962246499731931623176447683485796000883127767859268461922639541185337565042618709421326048303014318498221688346481656823924051524675900269365303796520230916175803260436432077689748887679444941271579714520856837424569184829628916278232129123342829234713884304299111718567829311756959886275132594314717378865821131184030181141697493014995150916946156397311271806812611075373364273252362450666227540319172915124762666694409278755953674032007491852865423268760111922308586721963621689429881656374578900429466830368993298824652542118865628231050971685677323623692933988816875499173985154604844058057012394956539521729824349565895814853243327255146090670021809237346843107489955756088100776054854839713023949931973307075405524794652533863014252979213103485422970265198684833764138910577100541895053075726035020618288579190969332978757311834650072323535127159186959053851722715149899267969456128017018316137526651656865239782561635465430010016989128382042115551714046240802159622202041076177441642595600611574944418308386281164238130265125982091465514537499707573874509241702198476052484351507657130916876519696405161617159774857110007239620118303711367686631423543631764351874100669952782167432888976942706033797406045328864729003885510126987363255639495027530856814490503030496950194956132669826876910911488984536194456280752450983385353279967314980846523443727667889334416866577546754179369871832861126774532189604496724963684550313788806697523340645505699140594629189212035891465072511297168005552201722925669177947589538744156011625642147214796331014613933901402266051192893922744113009832892311688652681205487738416085208060328354913381880820841192289866283178549213276320536864682995341912790682726548298966283581616231796549930932983077915243679737072089217356622567262445645128232584386227804219164602337137633430088096263278696593969581115072857724376632635826379113045364197340429043833515603353887632008201242904024737860826590016994132811069519815421826102964785204426369144434786758755027986778217437009972296051409892536329721553100698793411601558069534559518461022682021813327009342362072857306375413975770730199152007547494373177404062092107001552286936873203075404469413904262526930762844439179779176583013567418454114261754957263471915816578107324028616342081953204421033300198508352382741418493211502759140532930187886911683998793149877672914441659053170372196982101559441288275919145025614789998844547518247381188270915018673743905962432266500825101577548724444305070343241028348260344133333943139021462804601845301184424093155112739620519073267253704398030848542426531699644897724900362924661794643710401127245919920054894444876100850619670448384582205782515666260895167186426129277169708105857420626483781803973716397633875282452799157384629452218508627797157340888104913062925139786604871218238475578216794442374189619411898700402704778833856151269180634395468729003124716914854951804270405908895624207919440450389893812744295728786854901006294303499276111856165125982525307666575410787571226017650145637938530239287251739516769062203193529842104086042989684046563634218793725394987632414289556771956196315254185234854803166339816699744613313762772302433381295768790966524657155228558963913713947988305136640187198188110249082032936538398162818986439080729981423293694090916543297223652732987391109226372095942048827131063328764317041711711716220101933557254969515273212473921939686429333587134469561809441179677581621310679248328231679294637548906201310675092817568096060013744126581908189643844644436360920930242884727465423917297574444736893095529418573259218615611743220565877129021538753583727608233622365852461703228687027133175363656785491497925037892526580221920062991651975454035715275559450050883296033902603120926114104095844156642666524575078730703744152764824819306009987658324830071482876696535714127578630710374498005851914078196407004547247524789804057699203676412018841906107301197223032016228932853274771475380054685801302204342592314790817829329526681028076649028229507906723533703847725067736682980532578813761610421340840928725126496378856377527657741528199323628506264180756290149301396447600471334117256604937368245682590269989812976317037816623614974574159075466020542880831553049893754595857273642745968982230573534054227201204876646870441904987817809443599800378149887848193388582940903140346543987193499114116705307060180960279848567424562320806190674188897117675691484965882345049234852217485033563622451966730701061135710363424054050808257833465519126476304474738605916530383795736619239504464568086826056698697658914409249513414532957396866465910135283251074914178992328530874350228953938047513499091404045805701499930400350573052203465238210887402821172595404125128964116757484601813052057168966128041292325355580836721015764589874770077270491832958533335204016071766093758463490794118305988309165077159465075644531136993122507601429998852327792595190195020202573523146641651055783963431421149906209271250403601481166936823389879584978172800301892252283644507515634179030498327633558318949524016891605083127628772431091609728189823151651759683909740894562573077598466581116349157323087926830591511891037494611552459119804501535964152871610460375286732356472489001858008288861011551837516786015166474322867039789477476094330486673900722083728788096984895202925094565686187442060611013220328222559901721841867176703604208713309117649022971317631354399689904059281039948983523503571145238271428658016567945132047895508835615519680616123552464884451586941818739032600413513120310811416752333208721027678572097079238860193533339330674697922288040807493430622552320427536127629636111030478812522837782717102126169802736554576413619156278932717818329490578365236709298960939621594403280618175872742421191534509784358344309975392443161480895926167301491933792411863653295292352283149877990942354438554846165188934980442045290749943559185781496844009930784132533699656235726062395824283445929422124360983680104089998900462242858634365774373441419573834464365148789265941194897931718783052742412547650848919089850318688443013080416182781434363725134047194832328158079586553354139655990992920362960082284547310940413726401163636582013946869058430228909519206314394847297019648415521470332165532882829369465360244995486202312725301313185609267054125947325174340011968741031496975845751528130298797235429050720361751264357498600443368459743988945519093233091382823683201087530177314670095446645370949716297202171793921442876136679926745172875360367880468064758786497834667465571794820957708629702530128309285525763416879167206316164206739791254561341073220249496450015431662938610174395898818437419244517930270573517590555131445611481745765832932623373271949202771405805142452059065507925041078760154008950168180541274289600951493628876384001468545393225119365855929980129680436087651184588307198358080741116654626680441373926135029035434297454877551450556097525517525003960668192304849730995604285514541294469174531608412133264275632415322070220628868465369755858848553542713130555176665077867601378895125572229330069976672912792122450547383956803306451786813537119894161383278983443017156320964671567444222053049307978332073607510981277498628846743953378195134301105906190888763187272880523022167869292091171496151505821278090603871841163051076913298012028904281378764449582224511986959061683749562291067665233888653338844737579019298705907297163779460178784992551192535408568593398532966283815856578450144775654537215934786938124175263085829146219812469178618635358141832781997372567283556891745680116846504130165399943839285515763478284925694960879760067196456276642148902980011781782617528145163975026534442789086084196176251354721289374983563441177561293899532100121312338284869127130940945178553161095953946238114553425483849197289424554019267622888235498324676377506850543703482507590344821849986946138009836601577138951630571098980954866687377700203219896787296975228998967180746764460187306818013125800773583755540260969763498091923800013817704471521466461141387061602755713615804611276398809360604685936804394184445423886973770350229530762672618735667654039967848633877779546530838589170209402615044407392917065826794748323738151970542005769729977542310887125154230046295008750242230935074185463641247148272745994315418148310490374584273778423161489359860726318321094349954495782793143636899804804744610922694244509285917367340287161367169583572669602143124284280182271756998669534969226343073797300076465908795379385025406468282571981110554459881101643048431733899425201400962361891347890655822288747310054485136458493757411966862335057666193994790807926575094278904261677238491978552635559590441012302026821665755025366377484776148637625228567540293397885065570041357816263695320431422565677172293311448886415652376398061494341035681704183956041036382297867944526539298538608055122763323247446300249720339614114332613207135180878734694669716899149994619621997088322467333300173074993772071407317408380259808676730259172455557895703870769618551476506122892436572496744790416920272187149397551587149165107279796836996653886088197095927603311623744018394426967361374276983648326793786010418415088856479185580165369426052018269321466362436544462392246104950154915451259154870201338414247525091316147797132941356292118974221388018727280607558199587591619793845259328879289437262285558307011298509456897030139037298692655337189642001237612459281637772073273483884813353174964178478388469692999133769907848342682538345089564216343346867456047275380146785427038578012656643107798134987195507783666848681989792698465085820409682067577468283811161493051293236987083974590213732598387752314550453167580522602937769558803027306393972765601008156799099368187856514048117301485866729485697783092505655123327390600718410624700885878320204893630448062616403707764693291908924336284648385018189380077424358458923431537842626447228509847426116507474261562792542535454320508138786032142844988140969900345783680391332130026626582612356721586148816830685038737448475467720667050896707370970435211787347711993444595993274894556580552389005997421598235058393049999482253808171577090655242392042359981876332030435019429806970416371148804696030680725754091146721382274533337217900318981903358010552348694994325690807328005432606251723009754200719330927999196022093549896031159497294174016639600880469577615733910216292969752309749072582266392471910826421481579606353527991883702924592266299652457830985462439044489997433538303672531493567237594217462875105057727719298115817631176465937641940442766068649980479903935572248367399777411228186569831095491780580991268631644320160233120517771175115788914309371306543805929194723314227841324089184351293321882469750134170197969230803502241694962039282682220533609782246788571863487335982232934908212356946461383233008112738778368078378693637867143631086097611084628188749181786097029626412629410527722999837188960920809579545395156211276283386354149090894192718610736406392941480787010115038063169628149354171750649741090883790983373067765892207048660907475822045968602587157900232679505653797974019177858260532257443402926591478782954913219629018473077843907742051072229140108240623921905348802559867243133689185196519826261033459871880885647313787511236387178556690956837952338461889551609050718173821005851014955038424213751354471681890613355541711907501012097259098942614793514478644629166478085082362851026323494835235066418211129432562789952280323155355948073984460561397310033989671011410753548602165126347953737868596924995671451514795850793950075102070627578114471237428982304282935821159964010896427726129407874293910926796031328404540049728900725981502317463542440264127310252308899761173697616071622342493627204822235448433771673607465981699191963635880224413984834493979258299223609244433664161461149627328041790394206396092233990744887702343653431810325417960383755740622650563282334619879563577335576075754724175924770459739441094912813639952220716774158212638142237035689148702471978497016317712754686128151663071017007060245484467848938290640140684396055796323872130558514569969642280615820162446627462595389312440020492269010808778547795040846826969410850453268899527577613671818966526695864336418056825112317676291270152242158214438166382561509003663010177421073247307769822239023307077956762623186743368358293130540397538980397673605487198857297183635878294620873640868138267277761417657320918008901044688519880989827915701113437622020770713853143193192366382754183856734543718238529463961749944781785309792140711544803119117282271415299007952174748270721801040159190557941738376349288250718367564120462062323552638544605451837131474455803650314083556910078113514628735231704491949695241764697404832185547950258083509720249775379045740420063358403065345292040111448855731396731637833623707688416269268192846256411052910563492847210985321601644453099539164518552955389450466525246801283379574871132803247903494844437382082675768524433359837726886050306267346244176867333287049324049315486686093432171660476654982251094642975922682629943728379239280108175056626436643186297365638535469649409712413732708591671358636114089291472815977946603634980970103771535743662551809388358121535383554017674792944706436956806534993128865410687388724805705337289684430602392737684818350851112624340858213300133151513639702393605054505272435413732875847528061689803618606560957622121427298847293814827174774291021509873740746519125512551799170550188204951025525100271955868863442477670974934311906587955092943771212776190300847957724457399718805778046125678908595335833941037500367965897467152497158560898052317027511084768008394035747348306924182168355302240636794442931469786244115089152629515616534700619939256936607601688785267829884686007808622231149096373100966268474778309011303438163970734100189241676550186223122219767378815604008074917996031615111292217264754716673382421633776163460676192709370965497816287953382906453209663968173640447395743876439596754171654630178753749350068222567923529330617423219560571070250012841921960034094574364936262135610038821032766748459608271380759338086861505424673148768159637722651790708353855522296496734308237209343613052471930704234406967810307089264226643065641303995661673870841820985597066783222465238521000218658058764868212301879324840059657665001119613610812639225705660076966161910102883976410193014750234969262317242179472735348564129593859627187702265524104930722095877670360296299252959068485615174787839690659238779785616457981068755092128601674564751142594425409044576897681526234861665102175791480634327732780935024816741074035123399579009427877456887987991131805666743332571490730087808101653866659508870343948960884004563581649819695423280402148048508408728821699174249657508086836250994402811501899763595935801797814016239564679159818277216967318467069605181333659251555679024298545600991017614589549466191003852837967159735248190222847547966750828425681458858750632835573701039347990868191078562991572936654511842785582363090527098704146664199235938634076741804563040230995306229544105695285870893474457508357813664642747859985823011239094557864513057075639997030217754945443477116269110893118396342579756233124065006863163385030268988780965698038812597137866671427541058708793208291823069863146859195333453974210164808949834079748495344680198145347087286508740013893004573827172983049192394449818087016332667434454004220505773324523393203816685375679980671259662219051696817731824314615012018586451989369327250537621185892044618973982746398379727192747561390078215912710594269073885208576368407438479647943458107262891536754241386324094428959618137859770871916148629158562387153672819795734371948327929744430491792373072134823147675012455844229567568038883074883710487963023285943148495835896882041006732823807327067824562615829774062102689640456142075479816102060662317661529132855084155785376766289376213322432119380806487757102436186754308232453280238679948270508161002590425577894380795357080236580753001854812601627669637608165516215893445965030366776234210880595277055127014212219677993637393217714658380491910486858285018464586937714136863062734922433036505964365871878352545810472871557336639378751274474195407836975414799311134727989822170688287067403336155824207219033449188688844749280071809068656672697147644468701093912752522815992205213036913541988883867018033891666064229577565906877056942200097255971126268453733967024109641133007011560183149142780107666219583099574973922187934043722179517543176028763541227896541558244783744236123881818583565409778228684634008297338173091972295302856621879901550223663989136827472332104144456393833887630373900101198135039633982789025921165168421971575787446126910851885909097374646016627753895536676077496864926537127363143831375023170982003973030636225920346493316256932039669825527329020887556318919701251434962325762339518126833506645752796722193382311556704597067137748964573173281734319382545484511042737208055464891648970273232163799074540461852095218662971761192388283364998603577220944272366881412536645331449769378957677927865063059854089160323685065971369044764404036149610459611781101670069652350483979058617544868881017672303544646236440506006245411987672437264197175218086051281182169361467314341549675111353358378503146918645746207949718855685153822107940983876271476433517938247657675804528059504306877622229321361178051661309949416914404455910354291295049627305944345081994076697019728397827953393606010134257341574181642445160832750327106317234273581939114991585561941201560109663378354161166155064127597601711487373815004776816376950444648080461246564861315291378919677716948497741588710293678120146868667376201318899051400216421401900245182523228500599448608744924285616330845807109922320030420236823349279546143618793114411841038651956547937578651188107751497075839946068816681842328669406537118041345479436490712849110682436006482920084525358906211880296627550834452326453684065676826072093885756786555308691784086399974288579136461933361250264190873091777284977033011282840443000989499992527621202428896506092951155111819140651996061551303838538017180650903447839818803086354604139414927158052118825934531819424566145727474249926809039963122388922185859130229966656978256098978634577510906976000563935383018811879073860425369456039685345879174784937174610185336252940721450784809618522251320445390318317927445906853434783083798709376890930021917128073912779629041558352918522571143365816681821862067501789232867669899912233008333785971434876498097344111291825548482469184713989561250259026993841218843399174633127695406218330330018686558112797291108008090883283710897565552704487738174176204701505964199717264404292657756074882187799159568604007951960209782987120507978150336972751282468501819878063843766202751470211659153606899575132560222005070425385642041997686624607385993965285252261990246916066112187013287622384961690186526855337045074212316711686733693984998515827928290714697274125558809702198218332724130510563283176553697713057827004223479902319683670635656072214548198163715593280782344620522496860960582228307372417331624376771033831676321613082550585831832266647240294046873830062111787119216662939384751327075486503095196810812174141227214627621921533204365496527553471588850025797108165953854046114579200367388074900040617200289492398546862686439006630858636802600136637514490132043980153224230563846461123908877824580679248699723623373990335113515725131292206310088449808847196292677106508794990615527646064300509517530942457643847894885254778096462582223688761104467558890829126002834316954348274336891073398812316823559182255476692065154950837285822479344543928656293554849163790190843841399720941157784276513283547834080336229517729116406773806426713815833367104107043745804478632936485310849516204687122294421680548173478172205407263617649117613742080307165840160482800979429354120229119391699201836703009438856001231739917880989700296019820277016506708908461817907013588339391687331994802188947031271458687497058232246221800414272795162008990168675327332724974659111634816170598505341151000204735185427882318543376232810424414069945287901623116032219113266515255811862501208619552310501419865166315783665846781486398297274464414519695362477424181460506247393316651436262509866138169852011546147786457768263757364803056895862566333405079588789146784875803175171242599423494119310008062021466476367276572266944027344592088074721115462046335230220878152167588822291378862730275792691319874024572864026211256581678889956422301155851411131456621634675654566787356940120184688944248097622232457067202268314100673875611156809567417591524872995495245455716316942338173363253719309319752341888004414775635721741225406172694058256918264900570110016152727942180336857414050294121860109032876738953842410710415915383881119418025885048490385992292952052199694102979485777659223452204559052493501067445183871331822285427407816443196032839524598685083590263329226176256430881605031285657878967834331818662166755494521227710035639473938065011995208808450158850224203584638786449185298990064975727844492075152557575081999958431189783928274796670205202864630216886983953190575259364192326772608479062150252887894488110329315946589604402905055539331039684693254306088377647486181009916676870977383068018617810408791380991273466734530368250767148338946975417610499560117169249365678233873105403872528325556138954522442537274888641920693869142593428440705701142037219288069727783130492715358578795545962792296984070862062574057699447279226505763365940925756663486151634930320321694513319824590867125257594009231942692949676700016865014855625413773425294130501209169379769117566015439449592419545917620804221990001141297263496523433621112469145686271098910107615512951271465531869277339004235995282341868091658215038203844417232010363748262089918037884804350790592408403626900763801863692303710671519311247509481800208431007570927133751918443298406391111045208148493253773189524907106165460703781331603134299373672255167473959679394651801383065424918813305682528459811960847480724239200623109151345759845096488200678877847720781916085475349010239538710090353978130229663738398425473211894078397781104866465356330692008347934271066728523282354320249735758353178355078196430710736387112321611457164991634522691030637874884311001680178485479359892320640815836095327427735845755124217142082413636586908539634276927538228827803391596849026815279466597543969020534687423675651688571518525887695560483958930498593852480435546218525868933657058719923078604840283052410850243893398949379892765420863205043669095677751259315807942178417092151153524844775304414684606921988908975389927615914026368118965933760715414208794862423342481892965243787768888284889030193011914641507767140126191514852278709898810668971754893013287931414506613894175915597533810392626147873769535168702529240364770583948672936928573439631974050965398864345740143000135703698401036626035665447444370518712173244296434852976530322335325002389671350043888991437985349843482343014398949193637592745266054997941676935643491515466957297502262611329544591973552267168845767913202125768619443881722456131429372243321164038768427572634130593010079713131707705380360435139979722629748464045151711174174746429031787762868856465253654028689747030586814608590007569007744059828610122144508509883545154438857149995810178470013540477809253641500853154413327755099662244507257320430924094644312824254231549644967252235160393656143136864965187151445829288524722315442784602795616204933452954576275407711076986972771542996672472093908700685418523867276954782047726743767802549293207888313514830143391692328254500653201039823310561842060861684144007331615967363890139683075274301624095166877593818816118774098130141108933976537671390174424342306607039883780734157270511233671809502169013462185000596545747284386642040463816988634112853505125471722899290669244696756794189946862085867561371852870511654256562183583132589883094950979163934314773175754036855745180975036191929238381154225128497990150795861347602247444630939262582431574544840985938203919088897096216576506929701086372879293680965349361909132259945225368383648694989614446808525137868156680536959445150833355391579039918729042598494471222400431881062685636860382823001153262200389006032174403980588552837061898948860291297624022310842738904783199586276005899323528009802451594249166298251123306411066070043664607755879594117141637540933424008690813197969118577041092101352142872989537344993274307900304826047001948888526546136878603315780469675723846870551565345715001897635006327518384007461386802523482873200766250578480583556922716359613503362895949056219298692606760843237061803264525065544788934799258013134752694761835680748689162786501909457040515545668454572079194329868836449616048340542423379585493263326588760335903439148597371329241388633970068657898006578646615476092136480399703826128148729958312104542338882778740414326944481820796177609101758625662737251529938869397977899501846876268625975303526636412024365056007219957113593381083828148072750667953077120891428256320135668620645530028719562961928734339602703505590374262678504489712424097536282058230880976821110587944551389655653536366249637165188069199394790387083864437581597076165078645519529710585949834464964115376937272464893683440497578502152035978768643383206456597661150177219940207271290014427250490900681261270947851058366174987276864705487663824398778238876549623179024371295929738779721281788156433079581948547307240926907468912039619278474640242517331298421051726211565043734361316041906216047961442216343679026746148269374525666798605032450848706148053942549973126638155002382266678643283965347623025702624375588542843322900122871852184186327388061695229356349768349765303716463347340866253933729250685572812853770973142373354844795445316347806919425099328486113242338043806178817802772230263110047190580465703382280608065909268576161672741756034496161427081445131120448473554665340047179114894538275431694815267188265027663290476093470274218428051447114544651915767890920995686421955661535901362930702565537057639649344127695781834572325502328191959990854090481488276451172566082860300311263135417406984616405726497723725676285025491902710450685828806471735116958629298769197805737050397259370172921796589987075075472283374480863691210054445757038442500103838853513156687855367018990036799361797347534632606613987650206478359236673987462503952043025969406429536676803418641367428805168683927289747152669325839592376781693969830477380534394452555223833580364996630066902289849546440782340016692633426721733340626326164437696816533211923351568382647579029366079115296342826603864486203232378191570644991845074441866540517177134372963371301550666226257358684117374481903055553217097030348798429932465683057727938724542910183247245598166267607722199124160430809044699167195970783805664306947387100036508865552702032237041799879831077322170270867276871753815965362232656398348453634193750253154312489200139378901975925039112542807308944709328260635871985124183565592135443387290206083908367887238157076822773660619691383318507060766659342783664520803947617738516305799098104875328163007146585802615794653740019766557800727452285650261124366192519398569779336741294555464583262156900650948390316093852141066942564332762213966235952700079853277777184846509188556016294011658427822623903929494534763399999171109685780475025930170140121153098504681510908135923826681687960470507724778993856521131227589191993302197654857414340560016921554903253309101341428732768142531607918138847457921801179333182725980253725575388182520435399334436044676794024762932888086071754302008784887124867103325497772222674563418602342727445837660033799394068306369458239073665725473395941691945858709714072566378265488531408076965179358305051595468617063681411076425146282488443820434438368779434558802893928440579547629346143696056514065264936013705432420613967218320502639500214531088806932530970974176603133541506730087345490358294578786799092327332750946361745313033668380961562499666025648451433172963410500495310519339900312985296452648372121734007936912764476385847921227231117073888004303203214970954292153079559959090545429971417356973728635029040248986266757707981257165499675895863488074561487465658297475756535808632037934642234475371578529412507941052446228684442429182998759172645073613042333300900343393823781818951377149723985398331065169796118065140677695846299404236535129973803825727940918783214684801545024081460762463360004663809550016739101722271087078066032096376797278658160838939968444083386958631688216237001356336807058344229008190969826616573835093429002819355907590461831724446211262487996901505634752732061755937535277915108601118191479752639910598551838719212526215418283887018889840277059212214652478590727835792633156337419244010244236967167911637618380012538604138666237626740944739417391731320077673462016125052290876396940078107424355333534820224226635422273006664149277621343840872104337030468237436202918191893301491876795757564684240749028560722533387234820015976099927661625535557066704921844715475003963395954352665998467674417235374802595332774232392339255178990200206843962162806612225031506155540722788860411243842264357672537858907233923013326310331561039354556206180643008294321174784194085938627846547852253389639882691600047240259932304405967873894916502712777165486907906042685332986428520740791778498735284425591343770153103374308438193199499372207669700055230198147809052068920585014308402909563097220214142501873674820478223369305080355213220677759950678426792635094705671458150658004609317704613263950002544924596886794900237755307966052884699759360302827633230653999636164859684300418380913632186934118782045803853889655412730464148499734323550784422798893355126856711145306052110029016797711098100495756579498585148569260877822327669030567153851081593694391871577504490246722762617494196454120967270600131163266421670506458078248156755549896738235389506523273761325844167680756478987896896503807893652974997855350886333378722403597401431607769357865586467370868374803276926269226193514806200705324730476188556612921715896051507571181450340341201855808625489543952886008987257377177636998685365632204778032024345756822358062335383004379900524823821725265805253095202170720079158473478872613136099379426476994766524350951666772218252219767232136545306593339450950022046124413063561385723020472962172518417705161210117052549753454551107386313100446802322308932240540599274130086202541655407344389046274976616646425634828853320820792716528351637112673554941527829407253989660449132610640049258078566839501462259851882188009916664472460362462503768422221740571459628776633858652014782251337398896185964164873548310299749444653796547638346284880850266721746424363485417603468190556654766253932772270778322771578931287683143505182938909958789660686578594331985628892724542620248820654859536811192938670862056014489183587468088979048136777454141540021734475863579880978037391260825468873521682886908355190824509806467316202452160874591717417215662243643380888677262834586960015298847568418382610875527572770443856203858743398748493175496468775132759384801801680381775613624786895670275951680634544396817330252170508253039127337833315238600163543762188901593688087001374022656001529728679905423361966711305665282129845247514583272774156796590645986820746979201539115911987442066484421749744430201844273120507442629801349365214024895867686894817248028675796284008683609232740063807950497685713141007863921639888950409974672679199788697197074482765170219355844644249596250541491897330608314693544533668776654709888720578136374080823227578100296337807767150667585386604511842008212698757971079910101869761365805513552331045030123502480269069022886240726857921578779297531463979128423007975145028507095990508656055473853754630559942904002437249886971408051462778807989067632387376957855967157474746053600636666610885689649586411813113244848393990989027992055435836735170811455954040683910229742997863346631519396367347640364847578913786133656060423547294836482562108328782504035812704549886682305841501455354784803845616925684357593271597879610041951925636332190185519728668540244768230604408134917273450622929979775638685558506332033463767069285705058893958069275774957231978733794007831903679057518496824219373254107746885364714069680218243598938890270527900539794855540325734326679904392290034890214695165367528362690039615833621987434196525529583251342673319988837171867092323411069091447516800389711610915306851945138279014261059131793384508744469183927917438226093073819204526629586162878841087279553305778287416517773471356435075842947934418236285189883355449491673674318026487410509130252131322589309456107725816642800082804814879784507558141662323617731647110623598627429817066276839266148924727833826157445716498112857060686067587060973775577261909017713579120786290096874913200207906264261524276758144498542633776931809072513966872256318361211211086251523319651078857803407762318718172963680640594253136151769302970027060573703675724019715516274890898758412046984250836232337420105019498777431009856218058958464452524073790511553872693238346503837076880515850344783716486233559625106290737950457158906564983688140314897093347621210088777647599196928127625826151312314557699882242964213034145481987081811982015399044952276435820230519672741193810341761836119301712834876643296930452232853010195438130730250403494539875335337885688706507165148789892949853009919184292471700420472759783509281705110322328116316356519246982292353107883875663450422480717750950098119742232452332292108539390924877887952329530169758094387153906993104361008879514099219793078308405592783124572490991394290130660684229427652400209444007376997611608102955022729387948239290094631754802235367857247572237908140180424439151261425076696269708215230187322517312186182146435608625303371714270515228381253063403624983726093352368708829119257538441503547473457086400498707203405430143323264003545175224432541035567289926421977700481507758593176886706521491403809121086617775173976938257882843330460603100315132475987235122096525735478714784318709176479562204991525882687308173249565876049092885203450477297592692981100990857909640298028858358251366129946533439766769503041146086886528900842542864282156653705967886250530725243400640520596507724632810949649426218484466751392088142749293042339846345741485188221393475780516451420409080139760330285470514063048469178300731547233329292639766131514164334248170126348697283845161169339628430586907184317272252708182714765730585151291275398623266810248611677647969919141038189326201652721385319601655267963895117730519955752519699091078908870012747323540423207406065467168636264959486991050612077619965175754107216238690725534444873631174849656866391345135130270634415912366158822416333102160744704276191276026922618528890926523871068037909840446149413390091009473028907601876079952192527046718090893348205533773283641850488707044991470277248178656817611825771581896375726678190873044806746915708195314008251895488222623337873151987423325645757235005232416317870778509226171753940477886136836238367408965855854280371633268774075447640628313195267735310701725535963812728133976197679289796805594960847201823301755930961599337080056351103578605513127804235926229474561670530348704932341119249094119285203896232227950664873688586917423051735758933465242511975707565320343894044527782444420588861356565311391861927411148931781042427861880481456536564954019185149413413143643865995412049433322906810768393191702602437757898674889605657191727581641925868468288049043503009553821294772706154895603091748681868033140286026945294175945672233984752803906831724653806858108110823106075767759531680257885175546079462576679869251980132982111063902086704999280965238137353487632646526782096301109662005123032638769956918396845390891210260048615585311334987799776389927295154924586302080424040085221270154175110274828585065959666249744066314462723953907066459986148966839329043996264297279466736275771039916822700480390967982578417648933121596309422493934832953176967093290986512377756851741847314320925311711759532619510466681485427023869029424354336226114334646693062504996247598276174083817957152063493676588827919880505340829072947362400725391702232998151128947353890611780722240454138027231207340469669141070629930668040976765370055880726967325204387618072867598793743588677582230996008710987378911627162384940599931634802628304349728056154173678423999903628849143150770847182565272292181243743518485608142842117891827119337240349487051264873604539366339973016604689310256657412071171478203275763116855583691635430308627906876143304395632311406767746423537459174871679155922174300620119130009630799490107804430119451173925000760097630967189716326210338345825500914554301930761445647071729436928104362132843995682458780735773527614719658472778567993089716078277396468750457187152995007334773928863524576395965569184078038668077379454289243700582673501106278506235693386006832095142987170170280159769931562916682368719005415439112230007130057022005326859988826723424850984970426197161637526815382963652786877480505419957353715480826042330223304172662974253902929573480270560120925868751086614251831785113009419107671272275601706830093210659764511101232350360764282743881235063533149147514596339282780046827469144056814767146214013435102233902039412172625127211692316961272507160984162511190829043081504935019642890807743640212543205568518832079278039922334710844917022122579624838102946892069372032489721434515489278402410575180543409204057543070502767469135995601613112965926494667427170615479835238040434585853631850726275272504646931602007498075840582486639829938233411644791796809512235846956532944096547247090242400807859894917650835845779843125700496816616555925648194597218397442197092050196369575425602446713089790628118793333499142707566462966481486969087297381431382285287784669270471699526759499537479875083427590296992416103487093012901483591125569747573644745831127505727162194305294256263359330073144761216348929947215089081500099056214948890445185426797852850152721457314125325742808994131504717917255703079049654260588979572182258402209070223118222671574246161511221986603652729651625542606696442920640236418481859790041526067334684952726085828877438015457439985032331118865106897990210097254877761466851266678066571771723039625808157381393480298082482268767385132027767582745799296247443766700161556516895061332231604442674685004197708416785065154212288040108053237862860378552525065325221995156326528305768379599941686130092289250390399084462985212086720968697531722465127828567577182573688741972008965752239879705842837263811565216797643965955002660417037041450324992818882578930015227356149997590039544087249237796011083631967712471300396564220910611278160920969128797612869522096901803983662721835178435103191569820055309146838692102249305411742612072038098594257802861884544447725328326228198624022567907717404688568039857675096790267701737985403312225959831842554880986480604678166529237293863598294713897375092464782961405194145684777317289001774704086930386520936516057085243227071343047455653288622531179992587077933331103113369470639412396512090493667385617122277942975581177724046106463285571324979221259823499591182454522208377888529943834471615093922165698970486423333589021623854957374905320248995230380018877224902366006207117698648277002861254069226972536676230374648288167953139054029741678023834804631719257103047087664156865840587028089359718761270527068742623391594646671715378291013231068940340874356534521345048598291653655997810016981508247464289532602249014215817862924370925616482250436936203712066935810217932018180918607797756149889648069605634279532916161271140815310889014927220225744937398070525353263004577314049162620833641447711913838088553556243417145125314292899739434461468105300854868136606509231501824766163395503115595489672549399285731064181888753818269915416522868744673902365003027880546090394480269694330743147273323330011468355377428547650603198342919856481823476926486299009322398624160507386561856956427356090374164597241084838102452450810638262704979078615611710936199565826476104281177000813594169601979590927129462735718678116199426707099625512321484551695895677409206460567832183624685507480519292527066333696743019583222101484531000419797429976302399644887268391260738539830500298759195907252963062294004520152636725113833523791832451994033744221448846300997262983245779723331446214926070054396971810169147905071045779931169783278736275456697919894993896429731704651332882377357458467544430672064580431157296477282262138676245670988779159015491498988730232354334025839110159413517315500500331331445094134981386341468022596209111354987329140646227951916544200926983733893375428707148905053297303991463005014673166449561521473216092164630582221817574924725167531608169043869734620075417488042417937131363707366457119293456444196282369092206722798160392553951439664462405274031857354623987952500324689360145026339779404459505234272283047950107079778824530938429509728667648343017390809353793471895343171450722968101624051159978703099652940596782638230369154469112111533045334521418873522291269029835843125698163262315602716532682794227726058073377374106407653591756763462201466187805042827941098313230108828494965258263343281382434894668796896634402374761070898215248839249905472099018871717483055216204718962669956718534358913148634575608039578695673808149527212078884016294295130559637446159899003207093384635687483534872192586379727288451945907252382388718242603324893093940898221243738845652162878358073087835337895022153818272393604224230795552075284049868842662444376635185275518954103531203611561128410239963592839669511786880568583255758553379726997664240368400385749043406376455323030523366209448908245458311277745340805278112572214452322586965028672749421364258091889232399176947161041398441597566783147283575411877809569293498998713351655044115271872834581524153954936105378793082999375631975369670168072373195873397711916883805529206658796458285729546500175990333707188881664192569609281359612143658556446205662865367930021480764462407197398949357670982056960660161961790144944668102689933999396430268176996067895892107896960210256452266486352193354813305861529039027118229493588518414439202161050823532444248439497998357396215221450945090492207807046878851275588959219735734772538290563135800221193207256791486469207416714846598787199668243244118902875136441763054867631011873981805599123582475146488770647081618598645685186343671259978505862175995460236738606615036117771286503386408811809593351683139494996367745466747338916140643753440051645186422681367246106648040747403780407782810460867276716053871560461011812819704070054651340799049486191812341600800957170062637115306427854165746655826119077313974271209372860500325425556032920365860820170998128268474419155200632273211244516600863744956039869053556305507958865357849967799497550031002771348914555508727045860292143140380116358029932027583270119911586433934131666902050789227940157814483101360664147684035477293357423802332034209167428764677403274992631750923132658666900206012009240565934311541048400197148952628246650866587590204197879854579169061301700202878395253533824787484359469364820927428271620532995579485137640390254009444465448070854914190207422111613334146305514115033590383152147657741710101686456195518505557303780129080219257643139225096979074575344812181994374809575349804837958296488313672958207744085280039958168032671846537486049598311634990479180107447191044455623505368424956777299014919851220600426735414468650988329287368567799172877709135380645642481019117144616691764478636741222030734532580237291776696126295820330360934578008706437532175640525867049891740124014296007684536294392150631951913345947799685252265377585263538962376083525436523404906129993044196743874751405831570346140797961358195505559619972578494621720138705804213850139405196390190267915877712287110624937089304682240105206804790273321195575580403572202311537355355556090974921094363431219168547655907977003052861057836239798180319624046153008723485425859754215817753488470638819949055089132927425621587136021316725220830095157787257191292806557632571983708388899023657733733985745744237988630419192728320384443999441888034981926347976365422234502403132885954188477999030709661089830275792918787490086892607113626546320853610527801872842048517649847226241893921306530029299067468736951951914437808682525445972631972927313619229946624151819200779850224858376053163416815830608894982687787721038725111390654437374686765840468068607418705252645574148981235824589080561557631748331959712057064319175420507022919376586523001524303727966455365003654775802666680509743339229442653517339964522405186566036718167797528381337317925519214585236266942070080111903970757231821470837852307041283330784456802492025023943663529834521184813598938713898013406333413076791189600945255748407516386618669101525069658546349548501927512133673925393200296503121471960840477502731914451908874343497461363465282418708958264697470882887809265952994476460337102706478134676705149552150087861464961483391552343084958173953461141642358737225604894634071398317960562782489739754952902362999916261824918370174507085277338464735551732656837375214170660212895249145051459103483278904595536739879782497368892921729674138808244499116436862141703610784311886570784624042472802105644092608577854379864999702022816974669753666857671878793805452799276605940874823665278190116148695148830008286203266857238000240451524243233892077200592521924836555858473566034027046057132139355797546103333765481527261489555302085674988869479099519192252347711580684186519474223924759330794633286844966581735579850900316885856048468388174029248243380333815662412132375983726524827477929545120703473121670573281017125255380831127613004022297854378174819934105467337196242507070727963834583120301087864210308637660524804016766446852911773270742508120447666612299473733849790146256382197327207489748427462935662246908176599382723220079855035549691350633975289818186379566589446520636633536060643839200813180987738117080303628461307430174875750649629298657617852977275248436495619553182552089312417001299403280879194814048643564830384558028788785362450387958557900228306653743330293905674910053756051968065942496363172505953287091309435919794038899614978074388684405762908638645911769820713310662661628620788938873695766376979891911160163911431546922223319208333718940305447293123017590199404507145207819120464185396216469488000499733518319697725139054423225032430707726844606725326916006990841095027212949227893044710205287794097986492793245897026939048936964606851222675775417902582574835399407213456012260621959217297505435755198957982860272606635285270445641337484602545557071040897208580818221710864001087930814639139127229416901128817801668392947658462104699871740499721328010625769772610406446934569425435645371174346538851976014469425398985696447957220224771995313468667005240146711917356996547340713174291033436468033307671222656737923295769860759873968816576579820425159457125773390239519276401313523439363462583297159525731210903686270291006826653495447022878274289018717768115439586517181410734750390935603123231720031367388080785501589653788871291465248585904198917919180157069707029280574313097920992731317243263165094784866691188813025212550288759732485090172019331833049486682968355264684336191218107657358437951386175653997335263829314331310638464782955978588957919880549187086688589389572163357382891591858247753114529857065661163476030660306482004630869202362210171431095333012653202352888840257787554933255212816930917244235485007641243121503572572147747444647685118020344086511249247579137776217597640279066587874415730280438950904942281684637182561724238683775354968020932495065442031365142839436141289186091520701791323596447741411922067390812805187388907831638633229234471459314304361903175511585534280888412697529854996829867440691083906644231605637883185136283684774878594184346416368742759357330217688653440684638438801511355245479742571310002977490858869115045389198244285840573416687761588551901386532642609216208295110181744327910714943818918471639695315846174318505779401435643868281199396192766943016461637020850610457984697379546828741220889426738546451706075608125957568848635515794148921293601542690298433277569049821022036567296566844364547125727429863110007636195262224994541861867343881504636168940873616948839445730723435975714849772953631491164829381595661785618323646571564348208621897114694710785201128611658346952853587056876714122593717340068999394974426187326707929991249806763922259118147733902163217775022624683522340790275162813773343231504534553227133529563389140067121940374513557811393896772211184133439425177014445729754972113462738385633441156947248463852330095741400492576370748702335007776954986387253750634403687252116336860221077877898183370390805231408514911418940208045007650611017863721957504431125102293601704714046365532345990588233994716743341277899182937088229878838731742724890797745784128328865358787083748794861310874707170975319255428092442481466372225828546361106662091062236821270022782706877073651019578631822585030705778865661928105980903762700277819451755279105424015069580361873810303942574495198867128623413496257362183259834134243608000992996575588916763261707585604359472575946939865472533727238989515605504134626815987576431448080090061529784985917124742986103900239284303195016256377425158599795266315949960205602030026446364318112329118830774099995913878379196715009241439126653365325587914889764398958560696441885498845533519314766451671893578974528740056456094748192159754325355262963743754393600605693825329427001543362811703104605396936255459244846911769551687722699624512254865786877663518454335279217148858509723686994954008316914241568375069223398559039571873955297312016546374159122840251497584340921842088490106001708854196103364157964453903062567926620885997405069979367014199161693472621261611030693014774043840085568442154980829955617141688854475194455274580525202267884715569198139315410152200391291785043157224508412645069490213721956835786250568694060277425164571254363644947355410359690890191455859683090679478071384875141515578045991302819032932524715718627128054476075955553103151442249190439687949878861632195229549510655445236242408191154377158336338998109431465094072548102413799497122641020556402311297169315341405502488859928851259440679749641451855117139658502217105563988844985257671867332099928666014018805712917902426060731835084801428756630281630778977323117099334089461186514694863101496858912835347926515989257280429655590506031127938424038948772794784893420491083796886397578650941459485385043989846114848619075617478201459894061637916885636986745881522457152381278615034446553382052867066157975870824333669201327362546824795796966424668956686901599150967616006930026340831975412120155571659944213446966687137724046538839894016810190845428202380459694069212857042015983762444185419676040509720439018668179224397010393493681113514803383357727402011817888425043098844583335602901545885446742402700381123381250773024779254435557082102033579292474806244127575444059609782232666995926981868031948637787926745884551258897170845515775408895386954488668274671238410909275415491682607900810481567538428809343088553091804116009908147832335887946413148316688152333625832891502630815698821319168793090117867452252301565290393651277337057516141951051270947864420098494930974605698092813526839586863339810017921490264930635394331793895938317045214486115796427279523728749123713865657053986077127814903310393045333524344464708776771717242891032161174600825009519826976857745386357189248426257867978504027254588271265170618533783473101516023310523391145486848827665911959889007211525192107441697170069262890893887986926568822381612113983192635517216054361180091562245242154840073703823758954604621304031556246452278989376259607312053455651087785557809871237484284630962183077261957242464681131376044099777622431189325412915919395553161833758393554999529743539852286789614993257612982485565992515733067546997368612053670094970950495044335139524069900026886978510228764087155884153815794004244293983941741346117070899758388178499410284554377209286815388115666093216170982627615193204983074992710661937804960022380064231010170533297802774166419342001245141582767184581541057271019574509894081425414609900296391362306237955615406610975964747895528540315856295906242087587511259194490173729248332358715562179179712382935993239951173795095755429118811791354146877481006943551704063012239905274476826648894237827135021731418780080553102114417852908639546536424809573557577960762135981799177940551333515562176722742704021334093416710446651339228072804743393227063809062286311588134212992463583618064231811001954873106172957618583622020451374561651521567325869811411143549346009954012811847480370075985704307204797308471331679704485500585885632045311963805108814799478253001539645708198332535031088520864273673855180934504884742998542199520285160392790651165717731799392453512830390782377223108083677990730063973909313413234456063801374094683337622375432938053332349111956333610235331613528579521159513481305594947578270474983571838508389925432656689141752397704928996752726931446654197508996199866569684312293578143103703347104507774165066726738464009428077349079253404719426802328703629072291063877410749029611860404035762492533331522372146720273575685403745729494551075675736810486706641039201134400823468834713152362745721163927417164751795955624570409103037457879733492998478129141625271248323223687239442124833412058827051561024551425669885287112353295542292967145166934016083520793622421709890059454958137173143663521641687837879753829007705931729933119072348309649278095394372525063050546141268264150071404826624474342532587628543580244476781236696549836197751827316953137863203349991243435082986638073291583359939882596462390337212569786284005501746895078050159868908664058141008740194173430512333788726401204308456376486392133604560849778441342475380122671167288392066225461024903650547570227345357760283300198725663408111611236416162721197795148259433710606051977033519454522155313157270743424971842789779528939852478594772334062992701440397794638575819186487657562563328763791733989575020863397528868585306599276494447025492693160533667162764076655447639688038086785244855120242511490436826543174187074501557548246777912369383584624832727446827172418785401763183880363605420342179412592561976197393294171589711235513939983908796353958229938456827013387724179913735102961875654319413911753730932076122565866742918440033149622591609856996451170966961041864263252423414608692387647189842931068626987171040011271306840934863341874132050677348520268406658408000333618091084312271460375013568922302758608482345203286784895219560840319921257529443782412845857991344565596885290979975536587976351122539604022828600219537894436275623534425487334627816728125320327378937523312720025971542951718566257596567750129681783403882263948341431279193399903314795417242915858432340365500416066351781282844299170506526215848966038257574302474323619915799591123978256591621791090989529630309191363412631323271994201282187952285513616430494240668940761270675823251554738392984948434953697231749891028983627550895067363145221407924483549653315410839099749838735533469580301462328675553248169936874641911843593878581814500876229510592256019116513159797019607461692504029342883402354295806329279826947957636197834419166584513323327607986653177447860792114368391706166314782461376017955814115625973346768478655992192006125611504301891754627053871632319983978801604059112684803148697767735333362274428795677050005657068974570326636851847842658361608256872578412778816363315590616481689593626732029117450864864470003085092905137670469157878651408544818730719879316703269554732020779101873288494086528609637880904785976908921605185906163157904345289116376790045933479866034371686164991875815287312835293612292810844302799281865614516056353541638696637395367848480303887313038857988985225253419446380746643117396104516223633548604216512176528072364229186712516611077082275879421367279094191536276499675749579894907472354552038126835567089467096868512828043332970248531481487090655840499179068606243963951546665029928967330163577769541666600435390042805598840044497274228568134243693514596258376349376371035535060949692735596247250962448399801918474202478367062462958372054990926606492901109782040492165533403628101069213381997376726941774420292107615712567398122924679407096271568524752322916214592864963869449306501142522247377548585832179721920837745401220996908969912420017189565779492371423101556786090202729093651652530671180772475870712653093115376475469617850960435466232435937679967263397505966226818897670499014027210566074969877495581662481773391193135105704649874207161062897267426037599353998000330231548188026760700080088586658521765362915117778497988470128222209204089939345754052760875377209515909065702311071472899990450813456892878749668675641105015955543084663098405072719445053595901178779155555362609463877617670077631089343279425334128085899718135092517734341777117942666040215372145547735642397667713179035458343210075179639202764724437294868610881584944862767197047891401248146795494387917281848394984744816922357990408494456674096510754841599894481513060726297261065136857472920757461205802665420444528346784797901667438718032153765654912045366914685660627495694509863621525860742747564207512919714514407559926983504505334287121253341976749290905675059087526043654689113175375753097893825500304074396092579920930190517713560866469413897602196388728849789363430182293858964795781451906784635751807951615429336917454448856428826051850393604851385384001046312371367972159473243047882583780175892132090475928946231815535937184206008760901569291701455815123430244972131068006072209498613195628389921733491205529952586438230926506803438507781371037431222843931673508341215071820812314390102258392911140292416165627213924855764569296075789684881741453558105347668673724484202385527998897296975992570940416933852001116795053207904105644124218785075899297827701282672795452085747473186107200390192805022191525497613840424035052936191224120365910004255278661081584504279496404254894303381348258502645515075119468737581553327497193482961657520242765214174989267843959751649617504745943456790068703127933712652844842825086348650115665060184772643802344135386079047334954691005293024830485984755695115308420575232109181142158067755446211865658999085601783965755927711893030919152912441869995616907250594009346691228003956827625774973427166612736234087888089567503592733147929239355828050173776966667151359423754719237407161308073847315989958948913870798451264969160432924571076583160845402924807915775706631571318517830593446477083093310336493187446779475087820694278344858829549358416526022151361916516188762143698321405182102029573173951256908013633003659096819884780132667315105263997683752058221786496129191622518833041185665505701277983563457467576991573501532625107419052150565611565953018450915033684252873502161197791468406709863471341079912827323991511028498423061618681717181220532297252769469756417141551161279143996002490011493265750744408812865017727634677628775516124602042110407848536374971352668036445020780020835002913070858365903641656346196343226181967164685252169021125537539946236605968219554601239940641753396864735630099692624088191770119038702804111308660669077274415042188355249884717122359921904823066945971805551702996348515843690588091412205972255188499021835538315440025800361664501466881982126143089284849418330873974190856764023861008301873434379752656865968151636003355102757207986133317483909849498283794693898600884093606181397086391678769777623425488807168372083396575385048428628233816937449737981656966051968443264077914655273539308698044902550867292945103537313982098174460946100483351007146434103511817922217017241321102628293644005148688564089355370238587762403997399914911935112840878723217233397002755475174862843816029853138990994988162701969009184808269186644683217776362819871094815435411729428079811906664519166722567617502434890949560647125566485744510503299955478146278624547533689951104746225544543256142452453648685262581319622989854803281640372133845769984496405023931794182317878560640800717453090686770565439648332160403829426356122369745494049392855080428538577933890048158132027277264643005408965612802648335065637564615830068731830251175474662039311190586747986767114548780333415762110349506122234214173806620970971955035157385427200958347763148966676502126880001645274780014032937089721608121483374542575810863487076025609094208884672293165568965920450010921584100022728440705505725160720494339944447548279270967386564452738852492992275114142623539455878251346776191755367125066637600136351054091165916848160417026104438694485279358693423692811825712509174427521617663468709016447339435376598886909794120186570196143997509859739755809225568153605054867980851135472463959435453769027870743525422744849840661350275705891918756691930222422149581152791797485987159461513200776162048291951857425619212216833668550038276717041164436733476125730987316694822224059510491218931550542179556116124637297515837691322257219171597819299796592123048118144250345017214580469572806530625220418167240974078041542929193626666158370259253410471173489973387728829358710969946803899865349124355912378808659829297559844575356483919026728223264006074089756177056605990126124941786671565399061144231909064654916206662428981774968197750150654845943825662894016390516935967667708058247618899893401364172960127979850985831245369097732973889524797243042804230318816489357468482936206125564205292122271849180890196459971037884210117758401368570269059595478217319686993509929851839687395922893375172154894617730934517445931123381390202272652778501786551409435106537369645093582155394843635648522482979960607678932199159806378732650613051164258410652339038217874234452753213485887810669457447981302754467352442762730986630837852872944607256896637628898874931748407926729469665043930101997973692534423455907206793141522808278691528754860243762627836738529233824564330462141397482025834142607944796376999217384765901598757053495501076644008345609430833485317935923049387327913710353514656242459519124359648628585791462242423146963746888910779075651468641880258860534315203126614420346019567896218570060214491315174686833150238693936087309206677208149019806289676593152703571365308236069916991191840832836996291829127969363936642964573172304030380173481432555050142427496631454979822604164723463063302203886442826962061372859183741815991299077976510928058068792218401359816971549012449482391569952912449908092179651832777964682980377364295496022037030091201817988424204441724203398276378133313288513201745338471213028229052339731125523435238182554894462312963876227078745594523151632854041983151642990441078828005468236457154995987502187376213131632577213986998846105402853946773158131980322341961561001612711896182217023970112124291320092081178531949327429134808720086444295689577937483088397318259190082201650927706675023533657898597486039874378500053309645637601590405161146438706281798422576822333907453720425613514445207847073744572975514172406354921192310915701962137971184297241660930358417828252871001392391019554375167405938990954037520951063132789664589657909243155693435888216119255663587705952863331595313173959367569143387352565183987415762399723247209757565197622835305910253651908117549129778776384415092848704540489194787469367066884017822496667377956611252774726224953565741887427219004987628406384342041826027670325856687893880878758044807843265168972704626801417047304434681052437837883237740618323976038375976739249222711788483029359002683886782606730992270820057709310515311120915565646525684855949712298528557122697955422194772275959618025992166480869800587917343491338999363283770852534848730873729676471286831222611632542499742238284775107780954082489993528916873117261701125559611553647691468662708184106533672607557137666521218515785501427632834476787151852176020541799679319546836003345016680783456526883465839665859438747914092668153908972448958616859072214439397703519418495715684148270512922172621554623320376808930274932374269019966372774406341741217762585707487193971877661271355149698658106290202646447219358309838588761732906536999533150220926540890704361567482092749096922363613499705882193534179527009531930728268194169897681635633330260811893277136841648675191594941723308737330976488918167339113722565353265620455682843133157487048244405670522842920489721313041034146981305901151762758537512241466615197563322268094747608520534777694578175736160626970774828611394472913310156569393899016432442222682829470816273895076469399646945283482459370842073737362555756688925860102001603406661169172871988781357829155586118896000627048674813753322697690862245336700847776102089278991613341076007986800970331291604986601315672799564001865429865180509502194078563999822069941700033566200701899052058236790513035177823993657402648935949773533409238130228025443275253476161004081301115045125515270720227331583135185941036913092361110277971390253550935157626393231184839910967862160066948158404172913122203201260205861018026816077953265220275890550192570445435319328686969930165161447299618852699198046050699109578413608516194122185604885256461203439384243828977435855355986892062033121892408104167301902983312320286356167022703843036185643596304886546438273686291756462725602856187684209475105491807560579440475780974181584459840816452967447348955487921723040859046243531386351165586926844967203798015520163195686257917661129523675172688735454107698833478452201675933505272451312523460870975802388402604762037289375194065815264116876074240444500202022483143126802902890886072056616426776199436067470405163675841570418075725791379933243107693205841776336882981300577589789398258580123415431498145025974328688451325467958994627056152090973089623394462938861796168430434863701658649537987885867030601430179657632999515088040319585332643128531754003697101282723129666663666075049342932987930142345106717021618301432931962597725403616311122004509639439249237458340136230696310151972820610299483416133873931151530245586194793158130173154107533646683721162623666609033865265683965836663341048249954859644443541854364640210544399924097332397103658282489850690673636592855671884700962298545559549526470179766996988111889013051070903345451108410041543266074179200142376510812345480395362062324418441284735933986262103004520722230882922445632292888322924164268252223446174576474459582071502352844324682094420942000868498086263786768950219420394675103050867338203715757698494325522589078562512698615647184589117005396741596604319552038587199723802507214772765308868423251807351223581389886608779326611884574532746646492013609138654783444314569481413567994814750627323523632196622194850134653440075065731237117014791916043815779781084005079631901206690581629401464669949818281785003495389159184563269638799304785571953621436340728334353257985395606784312569779491357503670931306480801890791288411371257075048513599659693759672376525571948208612426026718468181451295092766460734794362915610102285154775595535740684386217253309378631917497751462641074433706677509681237013714310265942985985779256953278850023678758259497248586047302783374887743280892022183516367230913127946279509291624365453466496105230237844041147048074386449071315723268586729573610230853921789465846956856452361451648031634844036751449753909792548235979304193910713597907742657659731558785560406492948724393639580900198064052534417044794359137567480765833358600453832536597194043620872301732416319131405764589537292287607395552181050842786639601162116590132173015801868817556625784158582046513221194490464037062729651414521533735255841639568018439392759092456052799011280927956444056345525401533083673813173351328040544760857184779400630491096393807414407348199497582015923242176918973683173733456160931241694987437547059669319880926891917427907566571942514263296378627735151045555518252746211327120184589928777774008142891672875170870740739492596938411850702434381278843561474244577210699372686180036588797447891718820503992517406283642802889563613951365437983136335844818783761446642064108578485675080191618744464488170654058749348079070261165918275004851987701142995422398346354093860217056471181077410251284492842364309655467527548899215709866498782704257508657153971833179663899780323112974476378140030413002658390195982201432418912102892376216080046073554994342604765480999318732676919899493644186146015678748275464414283011042393544110427113670197064843057230467089200721385583014277257314289707244928785132727995255909681863220699205671752999832127822291792940586614304273188392997436314724320362917698219571855771523637228784016540726471340855390107232007019588232742926536076374585883654816693668919804928637447921436327157662635661067288009525369867524345933231750873749459238004909664291073414335046113032506715946253270603833627548420102714572730450243294231546582013453393107206925679266277186509553569645609998618692663759447951822187907599367548156359265044035150147810291898010139549036612936578741342674776376314868856347976337019299489245257754530544893049462474670853126697801433970532879234815866431633173725952926836768123214290436911418072506309106276678375844800341495269050129780197319061158668521763702184796519748989987808008806301605300306586383839927251706267278316677754345865993614951948895432236883856497829488339470745331511899388270805929238972398980929946183589366035558071276611538173308485818950987702228334968637869273771468636524571221830403579333367050505925149093482625060760592211464766369534729358080222812503430118816530846770655238063560924543358950765639566575435511455426348119720579322821845197786277275133610964231791664586916751778068928715479660353457321063192909436924851262120828196529797030400494008807651692483249456687709315575053516367458223218679519175010641724241746605195286504364781895551949540641305105763629414449976509943409998701768048558467153969658286849661219990085011530640896734743591692393254299414807320445126020619399937277204170787389991780699336201134016402312066362756391229502905726395636810716895867414696152134707489618331163941055628803954054978602759268553781959393132191700397134566517423004826455948227277961295288537289640979903228504696080808759046223966419217446909856991201628621563281651807683960306173270220268231308296968086723529876896354567474912042301306382772862775964099791478942282649199334020056117079552069263058666260215042906071040329330735520173055216904762530030865610188572507055370284750675135718515502049100317826641200765523280422962435523239774411953886433380935706316042554073274485179850239235799155166666276495353852736836000614254399599554232972898310098946118230637091450830506258539765470996385550388453901441683725857337339616262010289927010417324741825457272748589859936263717923237975847360719129186113804165713096389101193993736639036404993202824789092230425105558219724329039179449290131656343088684187991589826977814873162525972865208697052896677353380190261696076786490317531193413180323178710058757154997743375440093805555196509057426006971062753303325705867865141072969247805219973888879248230391701833800357077258896439805161362673675977188264212398974409823269039316593954295666562422568952940001737993051497783611385175522907451062027063080134189524186039181369141533184376282778581180323138155466473051685199214954820935640397012886464412752955422905037481044314171673391470610560790409886300925076801299993516575350363022481165385866966045618285273966914466513477961431707546991274773897159249842641942763857844055502775089575580711160331210322254866194177348805627306131060697792174211746940142937832773895981946547058659059236535225697031017691041660720959747790309926863924562956774958770545144660700173126772078989446191535101383733165084266333910659459593722077474032456004395171251905999165956735822548641510980119817663821522533623829184813397888179081437490498569962917222479140195713101880208188505518321035613476812366146775354674190961772889212140014713310138984527882979444049050035208398483507790723299683212841158529267476094363070133733878082122135894052939334032487373830527366987731580297759241432517491702777206786295408492653701117533365236400905250225125675750806969183014063945483253110298089220327891691498715215160622235785055155895474189133065595516212443960258559686843580579275820342032842822676448314926034364965360364224199579066298096272907609028976334862869067457581917867110726132912810828466104947833275004756893548699553399379956763798937297275115564145496804070369455641554614058591802054494514058348350099812078891602700880486814962933681842758916013919462631409561746965724333912940287113576598675892931357168455241270015355618458512555783259784405889865144182019259866861388575784124702872686837337915586083736772483143868609404289106837629921884638359101115061521057763062630544298668485084279738532464507289657747264532741912046951643552807845793081695967126482071690736645637112481144191973520674486672085587425974762326748314993748398005116932879992306906790198785251808638148787648481392582137338286532656228304491196453560467879227379909907165004647273305002446235384085029621074972255451395990179180754859264556930201341351087894983923505998526452855594442895626754593188595517840693952966574683569386826176188371593756865817356766949486969405074133313764448337283116238779814885590000607545697297243870377192162230111205599361984247947023914524744532511092023206348325244573806887198092716184689625676445135895479751947835409503548541152378535543067314932972895663590061281553725172903996930510643788596756930427603394134020787319444875106175190287739957161652292560759764840309198756316962913722211963654414746912483522000420089143527489071770626325815794707321544436836647827382519409340187011434436757802555344895928583407684997133667878453379102303941362544664268901704320337948479627649050367531419334677983219199622776554631332546629748903947406110407774576484276204890096919158312868262254819767412180297004399397984813153957310728966873499943481332181629482250189787621494018573553706709012266372328419884772730194554951269077170131319239944135915836977082336518210568364362797282408946870193328234009550136500860279083255684551119150517303091591027109347353205941548585085175920186629442648908064407533977956570503021434152493737092914347544481716484157924384576252283378843430092778818668227099854077349569795289556534081149833164556197296550879592976448851598924067556409577233542434041594020815076750598562456754558470118048496529445458574089239281227212627746161795468358363178419958556095327032511413101902107433628593891286103939658188148957335720887064085011605809665876801503093831186835178576702672910947492101107413880264952696700291659778964475087529571821013386105803458739819768746880385129172204497285594850928752173517159009193856180788305184528563530267856500514236005419066123879749574908441962057504162100032120233302919249024055210602467534949185981131106298217853092407707544535403032130658970248735030160724298557217319293615618241437329568382075550900935744689633857565194467109464129295079532718877700823475212830904572115043997964566252701929798989810893262847933895116540353035173075303138190791152957546970372949530921793250890758541786199693669815796428566298745548498244430818087446010756090554334673224879284348933826106254552144063210908372545074834001502754823731926059741041728054238667008840360302466520071679682859219861754201847688787210185621075126478457714884297850130470617971647552431850869054740361411951005349551418833851005649819627191610042415758709333329160024670750337568178662472009119564897360634023252544428666343205056785179040302845796560711506368624084941725752653182812663219944575116323442584470359947125813915984200592619053914057832781934040664297725929600602008484749581376154349878118560205318849345278356234443030185330941617443900839679223294696544144204964370122125112961231690613110657139007540913952930793943088741110483995602188856390773857410253203887231493203225178902453171027357243606069279439572464227360151574936178433220929305754988298668661220635437135225433641259684586524145312748970263479862847308559950888187861757262939411525057594235604889665124489520866158897148119100116936519581167365653282797211840358280895078688034008663518070179780909479714184862589046396419339946252010193209038509168736413955450400152455427193809196088362826076861010030865502556912168745335240955009114358066431461773988777663777945814277976265982053620188180916359227321438472115717762207222656595433191268212109979644019492648687938362755631067074570762877271793082857315427400360707125465775646335668147663481557874678515714474796970498742362813479638819713678366118182177798206811395051804258635173682481376540457914390100491593045276014776242046431515393620151358722725601582694273784592692706420044918246432000655035772059743579488138712126518095169869335254598986459385810063446003046294129753177204195997966809106590737953588070032482795727995744341302253564679536522312299487993555728146173371184261565044750271198732590048639964997433370062639695304799317152681879398299371366526449881560710071361808463724016702022230100664717970709896847169028771782857226911699198632629532690856556497999126662803072100380645960764523584948981206923887613782490654400150409038033665535306616239760532473550722183314306292800639135732154466556866381360579253751553770634123053039560387523776083106331373636965764530748959129621334941522157725947023652015546153319410567964623377423100332578975022049581396853185862464497546307957256232014878076147534633586421736103329318914552265827744019343813692041419215741326111815781966448649521035232321129705079845232856575512991967987086499172716011717505487721433249524026246978035129314323183368124576323241143909100050894554977976626874938510011707395042542781236068025384950897117349895127680524420951414738318645177386764330039808411698673341721650575030171735379069658962201068937084319373355978210425323628173490774003391306748887829326618396581219200871467181537937334058175623655204648840248085272134815451510462209056820970088125190256174503931343911970866274072464676505813181903364650864596058253192002740115647177206351353712308464571577395027174075271434201560793335598278869339318271995488478594022253810616155788086495807661191729616195062264055681406109505931412806637926713811534707775692383956746206725242474324506899862824546567725019085376620746512886229550641885893823026923392925319305080029954424630740228694556595119208481424032880543198073904561011306701914613316746477595165304143974802593333132371641219910566775334120097171843639685125944289874421046016626442846689072116868179875358631482004433740420012807567002945591039656062437026082429303150671517327873832783445226359117875412133955384186588054105798459668974006750995600551370034945459539853319758775235779024489980560777608587673431158436670789303938510835858191604920763508583944514910634207025385757352254566745066836718592740711272944437244703884700368488436910707216323991023015941377998912262382565217223877635298361324965707365019575885342562990122418547448654911316288316875412073567617789261673863600854461915784591256405765327538562585415171733562188673446990408181706371899778310078279559645197009779385726605775293047300014616132785773308543579933908089454667239319567099579656837035684063987765915931691471963952492682832778564513404496834101653772199817942881379346566731855636951954570730213442790296810994997945523364157376417123360901805365452205143711346486614995560504376056458070090257415256511928953529338423339677013698206635720845651713950195707767435906733590215444948105356388409258491834380462139345520922288821564085921585217728109556432261524349922027949406095596047301399816860749999838687867715799730029532098343336001635409006029787529827293550044585541741145929596977570077923802673802726454455956209734515123754798211917878990176169810313311289582059747674890785819706334445326346783620698154925423220394624528464566553558090774498613056559420001775584412685022438184025998240859297709000551212646796533877081626162340992562914027013017114146935878921555243662243311564995269883471804290673664836652150468143732538640402952313770257810810624831656310428190195534416716396396410810922731497432428272658174272140420868045025205605446069691189905357908413382847034658333471724024152198627101369593695459285764477041357328000408024235707456968548805682613352609061573982717014477103717703302296388107186612865448351595566543093550261945276158845076415944810227323274332535241058850343044524057273712122180277435525107166618412158793697552600564731054148922869989656113171055243815549149978650519729748584752952318194741269250674008937652972706144625300835696959152957062679037459875058935625011831861916337448371240749229730734913205971820167594115011397114173387832200562801673285406741597122214452952054652713462480905393563100779499478955161456848144665636193793655853938139507539210882616134161103624164072399781804774153354493898500315439520720988062826214240196543301670517213600433259631131248671322811467907673190603153999267183522579284031581144919246319825724663427139160985642549519168102211556233892360509369481125517371808183131340115220838904079849738022968673036593148380313082959794461930657672205482335433674307303508100789659112967131566591930896645001824832789257652858677176550284197493481877456270615080889608195822386749797631059676344407477838366316445181591237515264185245187356413938377491214035695362142612303628085862086233409743121789865365045819708237727316510862198413525098102878671115831986686384507392358677950228374559017121694863376948091888652410430726835435476413765499743809546058668069254374720592983053729818328438436172480957094576487004698686930470281259653417626718943761700524201406074050248084612593947563323726523432447050255701316592035098009475773668684961096652842382913852223868469157052767390460592086263259227308132514587767996437430222518841811116132699457108905437821064954704909236712604222341757035074974371963021583190916156840637983782392612477275365978023526996708621542075737112266855921949209128801341551963974321762028628926899807609001336090740144975858232277178054363216799798419376044118530054448760882715334509829817782162263382844072712816442022499241225803714697314434202134884438419009508639992660359333443825978167434007391110443739118895530198684086572332455774682748297502069428132690728896714579464965509741519316602043894699732171869617902667824072563998053739798710625657686545865766456668200121328620185909397887383211035199373909582210601015749275595984246788007819373898463956835692319512383240506289421509588633354480611636717226759545074456558355559893967525124865313889914299424969416557799719101415931762417086202348661379275171272941891610051526196205539505612854867619990602306359416373050251543072645702843377509316192809420688800960396474438771057710828439548163335691128256533820442314082734583901983863801556769993589748391619781962861276507062628731753648735056908058055974184558763700179973777603074875578433999308514536561518706452306966475156183858280632135079580295105865217606259423942998679382880742350776896058338733260814392362445577974225973010167639088650388195581554070065893031012032506879050802268571155341551205607557021281332801222466048502196429356032820873094489823470413230130477023273517038613487764270018903886865213735255105360968274422090933417324820960230423211795531482461675020283878070863162725626850156663509760491657174856589122015334727169282824976070529238036475646491373394848323503689425066969230942300611121147721425595849363034443782315875644382239012439891106707471794847077047482337932408018963818955105840501675711379462828342201002113942936651987719280178779153597841975843186378817408102890629688490331627227753877162418778722431819347117032485360734737013966901917301825950438739048120487396566673280157709012543419987461060435078457430713118238012914824114334741256397207044039524003175955142919182894354124845002553130820099857386139773032858594164246479518869825911305124656299671439154695171218999887514264749334462835223846385606314425887675747398916099906283754936579187574817225848366093203108739844184659389052782490041994222471542263819568051895921359774497174217450391656790569400372865656841434512268810446770021415616501835043746026424523942743400663665705151838080917319036961003382318452082561511651965602024385118502999998320592777178172243599074977460730590568538686299557584283864037211305570695508087123794542931026725253203086532773514875326765280570825650895989851559431034657892109408223815743563199202843993792305703055135644727159247974778418816740585253139554101431055105500519867009919483399501042078992741610679797197741341475353539388894538024360256685153373974360382560536785386185532031981242358749827149954488520037140717836900932657974832937987442470979935179363593573322582364066716260464708895344370183612569791583253051723293463359892067115114214250090277420051953937147507108141276395936642864195971187257067031679596751701554850038796866597794115668102071971716925345359021095473995840264326955820692849829692643491108816465531708389858393780983959407950889954127646819945813202406888407605017156533993036407501297220237201112660647389298256894655013333506210818844580166919709984451201557845758232946126231752554784586875961423314017799324917556729875203986781720238407368440400082040484292074045726054236045647194520763725466967403227838197458770948854016904802405364221944042189423669937740426708100821665157863663617461788009591152817802923241025896082514132653689555575958622521649898236101594360024516467448703231991011207820775806020412627986768189734878567891095989496760713953758163615713161112107500195383205070522633602088979498506707276348742058445194510580389014065955210218576928488544389457481614270113553114444260250003247639944977445933159633261322483374025104912285105873466816023013078321367333932585483201314384252378323549710365295516327568697301248954989226968050305811527417481260126352237267392944310465798936414496315625436243358336273085879717723132498633822877386585730841994737551644344865777326090750377328926636389848221242390155029641246987094708946405523161300907904210439790084769365737977711566813546573355278810201143879030741847549105407018886411005425500125399198193593486022102210311072273888291198217361052031145007515633145737806778500932704602752257427167604453037321858485709055915843792940063521880358708013929501896094760961625699607388339042402807591684137688681345022854979689262561869651369318016851127549929754749514721428184331344845255207982080229981177480888111110825680497507465981390632941205066912824902914404611858829055783513093414114439400584199229028727856758406740211250273376647393939426197491219626984586146554614444077286645693027440610002156834106390779038811583454336272094944192134693563418385991826834753292701886299510386122049214983550440031267484320903413674821627446192801606989134680918489793806226859280693813839871182070032311004162047571110418286737785057942752237156717765171037466173101023087236382380928836332353814948194411667915528337528881984395129727343061536762186446301734651520825810384954957228771561001460658336124632303190547955230883346960422297689461712987251451761552053434672887399633237602010514496594597328843604291744880695765704362252726737425553435123141412946744425101766485792731358328604554250207417990015324196695777313745008170853931609557034346936325221882259555469411734174975963942528207019223129963538664043952018710520024623693520862239371688867803875376797950078835335128627338254494084066852600734282475898303620198598334705553491499580738183048610869062374703267160831114457523451758716614135570591101166348554895035666068946002921730207284236611101188114956437098554665284608104724664171504423508658334875934415421336993069035803443765359720602653797115565380415936765454977860647849275200442199371527688460148886338297736554252800134606805455471059904046938914996062272787368977806635328784807489078731083170102797145187984297222871477937723851195440140908071142741498363704536401895535842333242621523165968446090191059933233767941226456156255280718624464171129755629717078519810101629976881127176390480460934438103311516546127416563618747672542324585193726506056373206937825107490345742045675660606713925467014096355822596206773403039922912765119868144267216602684305598889878450097912872220350248544971069293467103073037878446459148807739916917715251282041996116733000171628484342408257373124741821759522987147877948838311346028723638068231303232243411222972822395213363340976059343785003909833391227008047392106402527853001982176847482749768175513328564610684449101518136560345303019852892371173115793099274807602491392679261571087948516667169077470945643191049365829713304123427723491263488170401618785612314973174651818919045341287066158767977783014214070639587345847093820929999336592519816788861880758054939531950980110626283961217962647960035352771215319459099683945160249762078912952670921795715808408992637530717660735064347751416793136364618550531468257283316522330197060130496361947582843822830866009691455530736151395598984171393510055836120179328992685084547016234148259155466373889282517926547226409704646707656440718621092319287693804100225919668216728648223118731771827815064008234210492729815599169782384825965361690927243067828980790258840004812761260124941830520452509871849129776651605107119978741951631227030729902407416575777835837408040219993180367450106206822609500124776608492003076710677550188703297092062461085976103530615369178077168185163198510304465729314778491524293123489498000228978568148117760446629335916137495769140834481129852598351012742161979153292135456954400815484889187658027531768976511647657580335708161539149972061558553018752484049460327002443337182077421822605367991354730688364732165257144665376775909441628707878196862322089076056037659229868408840006920626450053025160793288415623991540431655976314334682516396981706506268115890385778736430787141568104398921605708008549074739210241258892701995969540102764405311175450640184667046055282502790306109832904430731712606533336360126680169204465151301006350008026565033444099165718053926456738680239277093538613632594338533905372142365878789230770497794873179394305976443377441560857299532563485044695086682264719580463433599913776205790882928074973696950141548442621352790565489580113295950052738863388514408202930082444875850709427447198887663911388351228692653377275704921696716658093618684460853649592247039750727838509349144452434823709070468131902573337997987295515234691536946731387036447021087634962755019450086066695489149100816107293170180586196296522072614671817536138759428851587692754115706508796722125303669306926821828658050879410719169434902843713608123784347090056292905581638484580855912065060151886253823981670845290152686372420346803305910106176911596717978166718856077891678419537280591472005759144562663102871853158098830639928657853003405366652670779243547117801966020234647155213285730253869985394179009532974709321739025842071468129383909947099701498229026973745342919386873079250622546641320219205054540283500997985428942423040673710296530830138552011900314743516382934588293793142404338101341704109536015466177561805548379475748767658870543721398334964557994310902638082601797340186527518221760327408186331938178164745117304857885158032602592238364868011744530735608911815035152329091472778978974442314816780589536744057162768049169914726845231013416271395106161073579626209508684376345565468317393060136619771749770823853678763170046185370238761309071961957292066221892460085822844613230243485486270964203254076604132697090389472599430241041168988424853899568590287847545569541197753834220714896768239548051263695335624069067978948214025320869834602424008890662470624557099395583902123943921745834435052583803503642417565449308444501708534214344694231981252614011596061614819817451440371723744364269360085155968790792877518484186295536624678762090758649951289182516399587713284365781759844470258645502385785094533121379475281233858605498346170649838311775415967989835625622702242993135815604003750544973544248233412923942709056713826827911520663699856753943089961015629351562249117218664853410320513626623245084351046113749191764231740631357316567232758949078496184989382447411854023183202043214425122710170404744346256758441614875987557632395120104485823582179309098236728635724437584696202959018317292488905196567476049454802057168920840107908662259672205519840001128875613920247201453521352013669613708638388018307928613594523268533185552601409894894239325660579435094334956030894127339838643584229828360643622419343974960396109017419234434608722100263149686011359067484617056369529509982962397462403908925159758043630893436185775922887123751728161001357586943489599305872231695425746534731011054308573722583788158491625760431148920066501550411325667570184301637913343919882505018035363019364521958243312341436014744043008588848197770893145032691596767600886780270020601906398856645019902018294930187428591841200178931077317981685284442651083339162420610410113561356318371083829641139216879892588471234605520196360162896203421640971310829227627017149947581042091029455758897844095366302746550762981280104686563891122834259603545377802135486463423820017762280361440086574230327255627038670542571159124416205471532881818213816928155436325013766427771117184179322771533137135516347794063436131316153994485309619559692329384052179607749875543431834437315114161783286737779746046927930043857312465249516325911416348303096550993104424860019609977094218213167956037825084168682241143513356965745893934797493933748524746495890248453030339263218230389102657824040359747995425389113739255269609456134913954137181653758212414670600937452000825367116542334860696966252480117924779945106811188368316175417969782064064210945431771488992659654651120764557390738104318071053034584223591234554321041562901150820228688751672748226194044239304210778993485822718184381949829039840297582850822521261768052575592118288735406412590657748716057540807789810463481883755251507351556658103535817427761263770395337964007200591114367357735362863188468366984705588566804019610429415658704351509069982915193659402147919208400527169189640200144144343316143155080160193634884917138915071448465243985688482518917328389162354889220461233200124669680735152835704497659879317745831795973066524268893764451426752584479065320037197046973726229869823872482844519344601216603468003352745847475159858087360962168855369157365104976498397877769686835280326367954710000958695377755221774218868475657862101830702401781808523437344081426481869588988822316142689470551833483633072512752943709578848697236888952814148516789005246689694763287131371403524550245541951161204792795235968411431300006482192273899251183895425082065019596344994176450532088968803015410956404028630517082836357584041107758291024474862309177103761663376752997116091092455229954349629819832007966501063445565051656951524793105271240425150574900682439917149288895359528897451677649603927948327038423462650804609864469090494498169220174769782660013769052780371540228563083304672159230004886710360168190961348642944039387424044294374177319703637809045051072121185675055283773775935125593720125140099751916303542366909059925729532064115503616229053478403748940885553597648956269493904796532946680128200661441819912135300125469128572640238652177206093022776343417521584000812270379619811386303006758889353930367368090801089730627456294821582191154799086260482100741323022955643644772014460890584407663924886443289788992928484715190850069147413693409442301911090759542010127772685288758272909559630487074530729403243555953186167160498322054309168073640011202858946770218511390854705487582858647380753263285898274593111633129290447817509616157490815438058062116098800860291986260295839431067650137239951740067311163233992223435634131961318423862541379015560403612307191351448622612517407964206480042676805597925449839757986975943914283747238634000935618729732144214275627182812770405065346077289901095690279529250938598746524153567976896506117285208203527492645366143175044302314652918557977914390175920354090765829689540542855864803517643522250519539227202706867094564244129607985952719483189244018096859112884061219474003033205118411408116395641321102460898155696253263266349567257692881077055094179513431892655503970139174429969261910705023854323466836663367763827200883103981879729259166183963660140210267799588928618188871727597674712375306090717338111860493060577154562290493403049079569232553084932244315209882743646899629960097141203905272234091789615991985586815735215941333660159266678939528301316244832983662213552154941297422996991922270293664411202392333360584467727449929216548033258918463929924705857499446135257250021796497828003249230100439695536782924280206312144016822803166849516913207243405840293023429784222767326381383054272929101426321841128077451410756493736233765479652285505970701913308284581533889192579664896954552203387956098316340770162536659101404155037580268518792909485599096243718391633919384058124931619015784592421771135934367280748517477789122851200309384942727652860127327063149985256158439481416737464460802905455122777373317352442478298187736347243577612628952061811569746907487609532731997052421692828916621081694187963967271363504687978594926473314952557769461630132533430374668861064461513689625897006925029379290753224166773084313070171541359331579240448386270459856692419078309560937765985017132388995115115000415628864315687351872785652549945522348532324686253326550535226151578825395894585856675907526202981434869276562588021630919831116371077194714766473366805820324412539264517953996514906440853282842829748538605133801296922578450632613476468057619215649654732813005830114817349609789555162299291038534733077334818699439591505550139844448396301998869807730071470018773970712675313378815376613691744689408484919978278825038195785327796162598742282138726415348188194924388958596436736222486465274908648910063026497066993333017643723449968307022952065654042486208698135713252685087572061769806317487736591718375647618068060754619913323442208778526198997953679689453636613290794891049008327095861785753422949746992624200952127971707929566574262425317693999358278744753244273114294096491406705601571398182481453887406263838554612979644746851845736374268523181151870560144935397887984767274126429765894369688860640062372569038478260683729339343560953709822703696276217325081583212972903907903824498727480320012930982946461655663113991030460602254516812529309610053974843653225053444144884615941772959496387761101705061517654125502882089099318660755205617072608032040019544859787959069511162198630799979669723310584485190709011439910295096694017954162350112056243108619261213196034867805697389592890177800060827856646395527920874108833673156773754382510650812424020959071153582154825720764936206400598736408744879273230446989759921983347559313453688792145591074296306766025886491266670008175529434245360344212666965419348054293647068284368812908899781459713707009126813809484294187683426580770320717156441449760188497928505997669202546883813495091173347093259806921454606665914320848829804132061570637734769192911173895568524571143267315513256112001540858791990005173424635970443911445032926232058349783210934134294071443273056918967915976331747354954644901791115594413534915795322408004888804607336228469356046080128022003946569951814783920508767171932203476017998103516585240941741570485210577464140460391417085952424426337747553559413417968423303588971996491908190156903446563798379005120585828181918721358173405250128849521875847965678526004312549153785576448940356169567667471246731749738490445400965386133522763544531140660326918488244170050993433722647919031705983237982327094704427110454109278929668993149494005160398130934545489339356978936887817527155680418466017113664128455155154822401948924330811520634299666968110668439200138936663209650268681550961044983425945750786054673179420815636298272431409401759743637590602912088421683577421343294806157250615566555043604076935108506276915763688885575539128353598682746272614330393636886808660989466950008587220499903899616826542957884198523276591809327657882998106736929359665957691090811700089738379947484209852197478857916528157798601673223576070118091293427793843454649650377553298750310392583978828994710177673269493631974771702193718344169332295018828902774260198027708442218777626558355865983128465314761520317195877918762705477985097030881825223896739571564016809717193956701650004177746719005047240230374457947786007973298061110323535492357602808610876329427328147395573155823860120006241968856164672855240799947890154521920748555314697703862158628122024031670244229475758076867264219840951814916701649288989370945019762500898653357402134368613436730103320841978254786960938508206137668695872141313183963201574084468508724540641589290361419970466971215273709047753780982853196085302611085307713859902668655322656956145844982295031311903121624632991264138785427591320067761248074335805469470496693622587964668087604494124689740135615402186151256034092300514659048294802890401402360908412651932163647313160077800489721577979148750024270625807039034963196394658239846071975929717645719965657511234424777151310837235467537143928747727340591920699192849128781726231516684317582198585466141240616169930581687042979832249178574797709867618464825298527509879984391917211711464289195189324096097439317646868954058202304742430845228354313363101155467555914569572453245020145354903991396167240906548385697575256601722376140822990260279190735904172836524769282423461351902331121497538058617640654324953051208840756126916017561220999414634087732859508056103701773075562876111387995011209592268587427082107107548896433701486234662370325406552779666122922197647021183904307553069493172905165555656983458964723866413233144489792604762279740409009551746020122079794291423664852037690194672247303660380598216092670211004535683925824568479153373304329840623771173008336806083316455215527097736203179007189556639105149710230727061655902144132688489681641292872827147282424559268525415892612361195650651186382795126534542083960122355333409636615650161881319712556435686113362628014861239855100304767832412418627167607764380049251932396930109183153283716516776547487880006323221050536225908705393967372036849533556625776242141127059272995139082074425684113133468369530485526293137343416984501145533889463892251325816641192389247597535446183586058571547830184260943481107142235784463718745826145448141100073512044016412701958093386843162791743369726509224987089971847982815268661889319739607691214275802798488877063348052733095001102097406166954182020694948443200220715263829252655067997666039104387749389679655500589279361773575575315112597384920813497595707085772163050159193572542755655616771467642666249288541251677386784596235535881490190907468351795746299439274057972981367683893324075382258006240045350533109694120107655397154984939110730229282935387040403964415135564886352114949427804360964911317655991805089582526120596901643577369349409378551521988378647517484505655507275508917127778508251284119143640368648109938798829102743583559565227472725235694085536040462511741635680652814979567634784883150789308117353394864790215874132624051471267654895405749694249473051311971798186652830699240024433418849111805454901335325839325033856350343487209306530399290947047144091020700544232956087303761058868773704391726141092392241193328360276655009794802757442339462318848316377287059039347890083728005018172633419955955855404644158769342559445303338768086910997914297151856466901210677666929200203838356918103450055447802158357233744606589596002757292587861068292635992589601447155937334478437927874224124100490730103651497270294324235868856238886680150132179057835696707372142521811096484302748671984833909184340399030894260533464705266748264655690756798644709317080257408772880019839950635215472501676733444529038492650114081155895941745760182461143296573440484326994668135159509799822437511216653281107556073211439086614783469981291450420419605528939049728114132745746723610450150996430895144361134734840400770632699303560485189161832692420895374268010453450246057556220151821364634400440033149657909603002106578453716242705121245558248857185895084093322425137766775989110402644692338625109011285419287151764492917445392838538988775232217728824514596545923325273133840992101363483706010491868792119547634922986841886774244482962292388973752550491277489372577215638843037270010438646985579540692273618243739109442556580292196229532021313147591615210892477826777417767900140658001816118200890845835458324773380388184545561082808505668044415379643694054223136858442144663344276855775537729839160722063344866610061508852419306069265591887692797806067850390726540927368990718092405807298022698122423605950128424437657640578153826932499280679069492725107721476949841059810851657960608059799789638215812460597461057230416021175756162956745496210321533190404932444428852571944625161430271597268703076104157702079989466765646446589653704043186389803473663753378591081771217261457190007710694459972932253981123952008052569235583019139598690745788387880945086600213349747273388477013997541837019918000181541048721854703644272603814919344154059724672417749621515590022891909118295219050656985273937369741727929796367460931040838176979484384494077153445531332476000578227381240264631410442815105159597899675970233089059106589556245504391113014080660282596048422074555157790882979973614005182323640471666997812520673925269786838640197186801155544077292712115976966970040023122549705129601869805425018719059696351610599663331117443159541830414775935082932177910354192984645647341288268377557986434738994106433471776497567647808992375223559633677775988485063984742499202655502649294933150738040698172357663193712821598831468208155142210661207881106728510741326452062364047720640725311370460002674750780466075294392021468844423701616133492733782616821528933812068982686399045335157902735284038472114153989587869600664967019695628186204557853855118404528434687410286706590145795936014706787449868234671572709073044889284834191278273101188078792784297167431076678531084816537049841064710300365658396200178977645934480342865513638473341072633916666735420154124469740874603428929096091913313319477486877908903651307807113242883746661029731924699808272747392245264152979618280473084612884698182007489822245176269164883288886574160385687987266157231285707780045221264516069502291209304578889939487545991693735335184756185985320301419626422075173638578282044192426691558703220461109137189556872094428169617812949564238101751543540105123920861181047983347638904165977339706638042082443450241766625104047503390771845540279551226255173656283261882098939299297534825339108216451870642077798653678680241149629278245379712424402829803756953364099992137316634247253349784078529324660210527649215887305486832535086431619140846879435517554993408358431857563075405504881722201868720058349917811099745163075624867373388549165927352376295116601703207634194639114736209093547879521127009762433066887459202194270541082805048275103161584309157879017190962181463580500043307200784495122509178821233145859160000361898997028964000883329479694176798484861123404871638618463603716065938541129467620633382165446822652651821728532141086739285650655382962394804687755989674106621848244241622599351677307855403522604554548416105826018469918773227135470135573397871282832754142794973004394708375235296894055284457849932626891579707460703802393561171021559025107297184090190995381270314626625160686644103182652603401443653992780128084960638734199790082812670719938272667022947051422907540150920469519891905082704434043841177952231114810556280640084963799382549437675503708455723478139741206501554154609130610288037723006038897257906822195380958038913173474360699894874174879450370783531113016097936158015202647342930747171039298298706900584775410143322020652134083444688104153943041619797016417904287395078153466810875882366029857159985376994358605484117710957941380457050208009071284283653865890432099356914512443720881630765105179701342990888696083743802989370117011269714092772827376643582919724676406804195325281214661088487951765070897163635961450097480795576967832607664881325074902165669784465146890018005048306102702213977240625077262502763861501955010683281795873963443612074011271763769243828514910545960698379669281884962309356272370450278524384662672163452886983477419193627318543829449122265541604811397034221706050545285228664045268318687076001200463458776513252312328002575987031622867473269193642678737163247134206358447520440069873647825563420050129215536282633312320274241452841622919272440495941208649841136359607923272960924117814607811647176248397656028936329767630364551735448224243600883410477712668764442430094727159215547812071425083266361373029340354795315548645186894859649081928255628275792965287068867394079163945625423505711270632118750523663950637558915389788728937581529044284119655156358633627449832464302568118962798733875791198708793619924273159579392233377076314637012073326186069528825500438978860976754365486262991156960557379001974218213074360809373973964728457113823203090277960077631003224218451375652120060385763834904198528814958381386537316898962203204393767832457334780787174212176353964337754451725270372598301737234612555426448517544689941750108107794601303520545679223982296656950004446177607563625123323726400906608785183753724774928588548310742693245474002321720505831295620499306909782572836351005407578871494589472116943792951570450454740738800305991534943215143916584885157214110686391630410316033712829110252558294670168555227757803487090629893874173247577684068764466967241757719813833076620257304654426268945412291659348352426957307900508276348804081004483939293802965437663815901452670034556245019863882425984149168397004761096030606341198657411125807249424714614620133512453492176670044921096143538298234002399550239485553268340830943783727342472893356020239290198816463688812367896455459775299135780799157961886601433553811650867558686919364404188403556840787664658692128224234229653578788013509287680446535180019073015645454234610925538791490648421960076186116233961972581548125126122864070094551798427846452186782537810522013898568910845406128855593790724698847222001080919159825069755235223836351415845123707773868917930933317231313070890180334255585919857303247341553652416405080989187219711056324546035231769050331638359800448891811604706082867830014296279796115397652338565951398707120131823807043705680897303141022314305199877453342399172902975548202101640918980878039499392566962848178714680771629658442471669794483662980939995240549796196259415045995322648239969150432798355494680809737982238228243391637604814959253776679215620992159656269273768023074281938533615115772561707944589651936290912449710614819071812289601842981512970444724102923902761976898537907192540507889044063138227062940796690488614247977810727398936219112527132344016030593668827202284382766214278782629215732323090453400397632351610842873446350027479734166645078181805257044579219458446507854132061072453167254650628502285135803962520790477863693880972202794996922102072200029324599901384479217212696224155702284546186797638925294677544771356422901155275689529738708803454625589578129059851228835360660662720079908551171989751934476534789514409794326797619095395237231249353197368229973593964613855357829068337679133639822190302434162020324982187692371453310489158686566441361449190264613123240736701213623333577110765437567609473929920987444436109145967804579100693339622484997971801072893893410350206411779163089432238237304330945747698273855631354830313203820704613245900678850458645868143458783878449683872026031240297104536926881612644091222974795599289517728321590108417847971701186631406645870668781028980122157625462217739644758526920209738682081365835266691549176393114461733970892749099935908846754482562193136506801500777595913805877721352365101017752417890229025582666937346092975066839789033785146825645544750363009624467134772034933086330070853346206813546439894600127600802907461389507124897525841993544482056431937061553760770259128112129220662685601030270148455136546422796656430612909072092525700809478633460959509790295691016577442505138719165019325484008917610316006074198116471343864466363534520301165159382216576501472586502135484784996524009493301862442837028577878701007760157019927881121255168617141217188734815847260424740341074448650083431865956849348883716368097994396136974957050109727039584693662443460520755901831965983615702343708702643162214342846400706511415438782722201432152875439624744203670764740346959544405643947777698536091200344848547621247430303345933637480069643306829891847617440836011036485900004255734518260142498506860001286176339035015466066169824909977956668846709890502639404746028684633661490882481675040007842709823847353139604398806284373022719963924293747865685983100264934291113999699092717467163940336738676561971747574522083003219868239876245682041664135080997701870673927378402478736076632437238544664903831427157858530442663399685566728285486288913977604892045447522354819826680869124947092112106137180036651365855633203145483187967266850678355839941965237549896453626961243267919491151860392783178446809373566529770227726790345513090526602098979261516732515599320558605914097022241709489869984165442680932214133916965155855965543797933427887513900713000413225980653869691145516559598873470269056747709498298872150860797994536674128350250784475798677241493085046343975186362216968166725968564372790222054057054798487791746914416343747681257298921324665893275535623213348516260182529445191271366682006715509482795104599593522219032461785270132115088768138205703040321141715246296707509311136616619747711746247004162989847545027778107339996975055231167800733947815405876251234764151192141188068787083479479592492835247164248817297013063319480265201887025292641591282418402877842510810047176534404186693008416335886051254604439909939636493570231268178350222454095442408072103174761735484757400936044699606960755730812865930480510794997615506285495200958430156699218202926663277846989798199692843259548245651149998676949066458605600255287047230121917711389000100211623715101629540177124174751842367989630052691395967608156798961020259179466891536886729523098981322505220189141310826526219790051338618726863644085468785178413781547284839566823927132592259955569296168774903165793304470977424204832736209793707241081517696654253122367912716516782647014385553537111261481874946070897726976814132145875425512712506385352500699869255569926928620131998389694739653717386503163151040705644398066045780733968797186787641279249432817120271674254723885441286222954499257427757341916023327995490830194350513483356938095222182784997491288526902365917961088671731193596851960134639153997994540234033590867719569974115072843675595649785245352428724722496867634794062470268934663867978749320736866504685016275381510650985057873776783438081600851427414293862987013821118482983323226403605732256015031427766170103493070616804407837873160440011284444413646229669270391527602776236522657812375753537699199368785421682287459138455017129373683050952891179223795209676137306262897360460739853934643754420008195368662290103190649616261438132453605624573043797067261694854859386506257684485574892553895262666328745588370390385913622740592556977787518782112532356555777789050434890550024694407368921466705286755991159136469496692350611157090512516622688046892400424317629496419689719518219760742970978248817419537259557109025924522877516810221000524720663256016649815782652062063990828134078474630258568450001492584855170048196117051977727114482671081784501945771415534101421638339749757501169677064683283377065704520192193338182654912224873876491419117429926591814180889376467869146382643349413303947345170275484638920138846496359155897132050359645333409464017395047630706583609172675508092259430347820035875786652998787390472983006909162593747144351670518247478922709279734781816891395853686514532130834936956545479390787087590294856126666380242048682691616839052018586639590583739299643946230197747496186852273707594267455867665525275412475035617691659047217292916138012754252598759636044176511448371956415487387098713930584017683477077858243053176578660631937233726206086566685415145687789378279288227577365878579883179779263965845180559548594240991642632626207999986149347922012375327111818851641028354587548659140865691166648513550406133861894612940962529508390186579129910814559693429888547232817835318173999501549395297467990765787756448616183768120134330102033745986268242040477812200549706539798742289560708165836638686509639660128618603386655583902613479582552947523864585426161948694438345166933586718418324699715863247793121386939371280900751380765478394174106695941576798926799929910093757457196839602034355259331338196098032723726490949800894764005770946487229884167488771597912020843996116836466133022865446888687270869124138284258735629445109971113996142675628810851552788698263649886241388525601670570746363718750981353676533224055563165666865431728296643461129011657597374230553093952742692920843984712795203346061283473358967342376012730079712080065947997825806878888360899448534373609014854643873176849160886039348110018207198450667920084853658434882321798807321046820904281201473096253281892913250471461441901132162913293883064317349335473640353649282739712026868384004387088117440268521072147370082855284747863855315336924007783545248877436935979905121633486189440472342790122928854413530599732758644530333955109107237496538898734496132441993310294703194287026430981948432926329227415818038057133207234983847914114146910012993667872782578934453441392631858791985042948952307800523559429561619374579615992762617609451668221249573437302477990384655365595225703749353817071180621112438456325398334088133044308342218335779947345440854103725867565784161182531874212482477797275913208039013395992467427649242502660550861375293136228912816522799114692067896517157232370209166064347399619035320755520090404481438890599627749537321360036555934275019377239254741846312631464134124127004558871986560095791175314868825657360499261939007111038866744870089945047184636474223098253594834097902468723039977521792294452664211204221722118017749618450583870729858681565568435914113063273094648382939533354548620366482098153629660460180551201397649564858320664014310023239966493246412418496559199542998337530308848921722294533089981682780116749019653213012849675715159369552177727579887350951177633501871582277947685104180297520285503892820332485357225918269667172346418277990306265198664929124536892685367639730667583967955135899508794561248824274659156327010403034006447981225874798040716045908839345548361494979353061092128726892671981738770818501456948026033621159536620606779780532021741946792389482839392225374414619504593189552342822022451144985787067189832230727825746792099156087705208257573367878765503721416251656846644543723868325562101259704603354161856398609438904683665616164762987805121840147436038839126465871698245761634139756634381556087095411668154300451631450217248378057082682659033988667146119845656787139339553575966297260617119061964517211831656331835060190559694983199626830080940053964061666729908611267119484353650704796204244079713922269960967639000124444741822295400736443407012245159432304624060482166691368025509872709533360773397709638417379157576195396871734160010985501827539735221438337184339036510861252893882379651548899031603183200263294913323448072658903668632950492198626958389546744471962716478057723177994782155567237463309591852215056087711691520701177861652697053501866616637021957756212705385610384059012934230714288286904041924023434269352740639831071614013221185917897394048321101396304673206967667458366380813112407270183389841473192244734046774918624977562053881817925414158840795925287720047781996461001641698627103332345909909173997575652132492015190622141942114645448496448735228371507347837425700549419985255545475676209318192919746883893489866358663391809094157404704795738021175281410600191809679224418830697613157537307213305033882181142885911355125076390151855105856036373824074533402991941281658728212507564157142626043755447958655517027713636452068770388737123545460064312135050286040044726935618415577511304351974242061888230753004067583307672820190013024380061538864248149775496692205202952345008192400716557950376593757635917480029289094253351941455282073266857836166306123742523709881520425988398400270062708485460021174572823864015127892196397730183041520883814621229476909280204027263135020512391640395003712895337243193717626032274529712764034145981502536287536147359191406620996255468343374784997447847167845059899299432485924744260432737915394935590579529810955123861529174798269276959563265151568414727229438326001441775378284972584517451677417863783473141847151967414892856777421540869578920798477520061727316060152085320544167326327140366353833731030155126794771267542716362149219409359161017785255339104878225606427391551800383637311071155970584891716128612199245796983334675878523328629658114696134271514745727294000605569063427866484739189649490637714633882604631244257144083492853424549673824157108239711842349919404798107146773911815843679122158165402966297505036787467981771690671422672124192041207931273552735470200248744268489458762672330673246787373624315299764026305243459503578463706540104885663877833417764405309939559708616737461384954771051809761490831576818629200233359748545508765962687893327062764161803447515241739496981691315554231300353563657841857771023203840141085022771900444544509190145713776316526155356354407163678054330713165703107718216696531224303576507522931389023449770717711682514571454434073467317071903026284536145444047095808983467659269869014547415083385607743098462923377982475912825869959500721614106851745594859167339443208001144002193855995790290678794117703815091388245654098611474271371059346429113440415976657073147040633119418644872910903011007651520324101689066503853801519823763306515366695050907108850738936780319878998174044294078774310601931153585938757047562600667016970212285445413856877920145206767598526305900053803029909958443469648325102302166049723843970711217442202811850489909814043273287874384823128919290369133874082099392442546494335670046893959197427209486177609484990406732916817014576936896379954079382978110662485424415573937197687313754894509433625996647141645915806127157788574981186912724126620746411190738926600666565048884091592590055074404912634389704899888376000815276456187027761565639511503741281641108206402995645353623207908743868071535145988115538723132314497870736382330472666657185294888228543657215044180279063893354887643467162287203939709703413130884893423906516801144568531559039130104194026522762841883947258224692621195948352958030550090890807109582779507692503297285371493154068796605944305663314615711205931972990629060657907642958248706072592406334191006927548034918214616776010029583652602332322046289390754675873946954231880158756336697530077035754395666865950619856358301841713848470812158834488093185553899897402825006689365099089889946407192807199499233215838331055058508944933242886071022013140634168540151656797263451555145111775309948692834276353255839621691509964459774071315393535044403414817010522949920691292773560036156443303208916881133260046352133870842893918931808220015667951316896292724496484333341093769826456060307437890114111227819847592928514119935741157735055929988023742343823568759468270497277920311086265545092337380123699759565703590301129223581832589760688049519742617210054951309289960956220935599838441793664068129103594494803692695071149384026584324276185010505485106397368840191657165563471526814828997956937400569600571781256931716061611518424701985699510425192849472377561999876801212259703965916932951250675088205274530486542845815565987854338175901883444871773953232462731039977118041860261989722124747787861758485125400311483396165780722209901538097940598955559790657461829349389254024870998026528739286377179383327195842719264081180313289164038843958701827000273496108759113290294303245814185771803361020689695308382550809271469479052011274512233159872845090753081582989854697167517580554649410956413282443767639570975046476700051186288549787874229004791177887870064684946111093676959576223296927830077023405715730042227371645487110304509384377803762006063210400946451046122356538889550786813897808576936422363899548316570348561447844605864048982209093367535193536619566704531091889009135810082507644612416106890793661230348244311639596097189598925013268184621478435780872643203995720352406975293834854038974474064792341565576009202030464203682230291832778113875707154201977281518079403477509753220146221445112803000702488409437682998172350881041529281627764967703198631628601475487484740226850227580656893818453663297713002121517505395434716349767039468965415669240813929231519976313780996268594866250428727270789287256968572323025034422220994402206709136772141751281068815602687854025817008949353216481359574710391868586757197126777707509112810206431062494032883279599958666200026030761347479873717046152673988742836128486053536759856611275629696366453249538675512357474503690955701089803994311836434177932561252438735026108038464567447066420646918708589104899349902004324414977685976988960103849790093919213550293391626706646244221115802237243452410942547892927367330174406413256351066376803389201205523106601796916603617575234184795166496837213390351718689680160054401914631440836603227030771831298109158686050711099638758464530327307828578022937710128216137107854911786909740735649132722713394917170167191367112450092293946021324789769640193887709742895118834902867908852890836958485033712265594902948684515692974216226301262639981863952184273115869214234051056468239457445549317931641347127176144503630150443831133162819036496783513189835479652298603479432587738470491416530007427690740577296001545342002005442456613087264502774977177473379085307638310617822109852799939847765032294249864842148149721184706847546854880145733807172413358021774541243403281912331304020945409704392851919700907163372273287905959623277535261766677791884852756885802340259157585252493226866421290922080682426966179765345705015924942348742483796372532459446390552117037205184683003028228738676561777944236754928453553092259190000835217819365319961621476526907069053639878565183451939301130907247811326744312994042722720142308802374426175085298222683548744636428499349672923044792103116599563637941460556461558044331923905235375580184370382465541076992980512315601239629045032498690798598677283073390945858308815974357427378860209035518643923813740776908668368266197025261512690008560665908006962967320321728538523447250748435915853651514602691672191451435998025514150327946186376584090005427611178658672134616224657915215281830969573472129902205704946012973781975181138055986486641726817333383560564228107728897407485702144915741013849153636160508467929394138489547145056959286495424229064459082346531397810412033997685641422563767163571309979557421935420154478836929207254686578010758539766202229631678528016514617787496828616587035168814231503647178811746204797534661022697329583113023271712805612964201795525041157600877305467989964580332386968684362484042573320105367982981056819091935530265363023735466973413041438448656906925019190760997528979897513339763158763788778904558656418004935699881477259786379996392323230712612585966566109584307034688286315057690407519332817672698790503689155284285639080645424731483237771547652496324557386954033914152460298418892519838083911423868094178923225520325781862392750123421384483396227724952967999539322540374585442861014940264669010333521878458318949007538794152542186641157286798249242315543593130996667717456758496579652190804002788669219939789194943246083885174129796605255898266447980400480444678103781614254201226863065583172212677837087903203560370815774837303990505266740024777353083444655841642931055640203748923208028797639090278785682544113058640435452833500485542600138949615346040986745805362960177082227698135580530820439725767783081608047023508335663511291125034204396637781116562445859024622063351387504888053959250528737489549899493094331166454398883694681960247070795678457333192359487243568321706676092372222255964998386942086051842486282509020653243859871476127227363225087992393721644981960537972405604555092256570668474656472880766850809139339322541163772009535417016104131438851708185253996944648403737344367961928944814159152874829887654539032260222314527832220206678997836562426707516218221757220463686663886909924392647465065985352585483923670653801612784651884190651794649707299915956275689677916993357712112428512487023882304411715480413806636919716377473093887371878366559862924353511639011772965406946899784603564776244291806168398465007950758257909479204235719798142363670806283895471827751373551288979739607656934218755804909494885617061388765650730999665620513392284233644225109791381797722588386980552813271384896356912015051006099602885119544253809233637293184438021128163371184732188751058539109392801349250356323258234974773258131256990358898687423134756677981357001875006459176499519318420558528394355462743171748595738356418193773406302998745603275414278271812446101947323047489775036139195600643306840617691196205397209701235702648986917201812481390766517387189851600284244791384540403792756494004450735239192529658463327496921400442038052225128006294186334570403097276458051555515027179618600551724855770173187001148075267693107476671515366242056629808525733381820667053470155805867747062017614349886732507492029923407708988067332047031209369633125825200942952968152325534862664758602040233941174162773921116024207980468541314909601448898785187633313165019126059512637832217702882616278208921976870462561387595916568658313608079823093265505539716678961966743837543269165888573164266877690530743167051007851002617951500340725490904765538946237593561930013068597944879111800005048468569742512043269687339342140364203389918943086589193634425949137255009488618943404628308246430814323494489425645638037596815081176177943518771416673865161522706570078031274274977500207397539619473384041563584030369164635256573490298671914013260949406014456226437419474431288603080659982805007399427563204675832100360885355338644619858058592413978888319191086390191915816134334355548539788673123159467971888100584702128064023038775724764222876902358271411931164379514449479920864240614383854982269146665844787576198085947240095217459940612985651041434779525828356462056521724598936023009075746143429232326605096850561546060634274731622291944786329247557520009378848964299410982093123521861257273024519521987483387769601213022983132452991242094659295911533373772032293182381200452616658345659536488609407017425037532582617934688980485570272323985154013332902501511866649274006013047088599585204414500035568608783646083577801545382098876504027170547178593348278339055820750332286461403583643971368251270776147551689110124236603220169953018503153301605258889728859555857731928142240654191435169351889222696644828673896506555478551821644843923580479396552344759779130233093708877643599710461039660891981002123065379242861343732537255048058789187746832847622392806509911780769288459453223678735291378193475474322414777451396640686621226014916370135379175645774215837132622079064026044587376765254157381834474135466212513499093874676071265864866155410541057159266656357983061520639751419149460426419038479785649745697197583657326086321765322481315894780167059427371676637322754886570734362525392709960901962663275319267141785698561745875044327269049238477668367418102005054391985050744604821592917639770094941723251752133140948890645609398501803719093564428532622719106488068014149827859122925221086011232590258571375238566471095146141530526462202884744056187786090496727254512145494699224452933579145829355021601018050586823381725785866839521031265945366000239653026891854759926118021181998440750587008440912243204242356594092281822461171739802933281955634648929718863874692918237076910946491389381822956144868167325418224548262534157594637370295401807348192649005429555393607882666512054581166787703706847893155747156251764784480305702183065679416331503034398548591139176566290996178220932587362101365560196211917203069443245880343808199189408659404613580962442852146853585172078438752750672928812566262471607833201685800388639761809136583915325652797152637100121345345112879238171259935757097433216244457255206904396928476945520583324667579671225154402490901219576833481754369608274089211932362641242535358635673602914880379689356142068159750301780398191013382745916079515806796140705773691065856033647703854921573789811195949166350529874387422078780940484415271577520689307684195195283950970902794460430151234102238481922058141868380144577003377108958096431704808649730496136523402033021189330096498634830052668833935889538432842475337648280551786243760726750836793219149739439511107740174218550877412207740458879904771693996605056087895203546148104755369290543134055767600619823539261111363636949169344582375238751017234153499883270268668868027933646332221711629445924287679424262895168992711773891778611944300634028806655744208864507614692320492717111098734061772852409808393907335851644622675509548804541599547958279267775408682050573928171323497875298431238923686296070428659680351229680436440589383961282010551084928500013170731547943364357278172260280382395031337392649017988577057925559938310348730316336648070096106929229249904122722542849246617131761079474463890927973945508106244753279162887926158227591349759597866985209972113240758847519471493230599804133089698410128107958175199565527909153277459756082083835893348277319377937999370050692769463214030690969426210735300740656443050538286374254662410004977399789088454343484935668843705077207858631304506124113794243844529156176164046112455143486351479756226900151610237915091880849261706038572109998120046122304094555510918425103914417577148729749079164972595750620705887423347598077017909606466066496207495515632097034955511258770593976778981003836168689789662107160086107807213027897575080852901735999050823473185533750669973671250226724569059806272236811854148464660621262703732865659441816244386392028689028364276987064424873302607698940292291606867434196154707056838788404561007678126388675000528770655243085683410512876274840430569383874896813077394176652066628355234565078519404791179312664934730091953796605926482459561106191480527409285325140298605188601382692408036214440842794687877724512478652476860384950571423734234565520603247201687979203242491246111411905964994672165094284633264447911696774764886148473288263288410542266008300284719242171649826275607137644083233268100574333073838675236994404056695640246324835134012362876005366118988274065858823567530819962242323382733643403630498054414556852053914759410762813465821806094198892885042826239561219203880005925300507213745390135171797321627732296979054186787623305580461973980391014002875361473005677216031126819942263856618234039659144601954330449510012046303804695486465438779317008068564813722853596852066698692931862179873500165996400120791102147097097046893039603159712532493271430566667913386171075746870270319733020908716146943938132357051683117601073160494042316115255064564995596902610062766249218050366376807876987591121898017101697712874154108187542022537761533194421764814235401963295694401021890904324372411661643026009972218737998822627537327968245266701769934613760812623909835991329862144511667057704307107268440180145855683071686494657614571409634583642722635499239841473690859421199775736867407952897778375192199135552602486859087730019352166973187517888492934280519190717610639892298811557059527460566715729253773429683785826468114769405357665051599588348583888494271072562530711085536365045220597451084059560235127769164678226269487750300308756709544542024475710388665235082230173264727897958452767795493530951983874778375296170116567339213732006248253755747813975052305315912063646140577498117754148063462473551719915057097462241512555615533432636035084389036042110508756982641167166172424902132398417626861015504113638063313985436584348100494826709075911227059171962949351349366015869994654801925900297527885262217389994814077799688777228509331805423297010883212147721179477899869969706205347172081468900387816094004770616671893426469456880128729083807946013047781583480378981337889063743923179202275474678935207786958569502798156793260026648320520749792688797780206249778802065131729527554834876862678500827785074943732513204338983583826291768353050667655219380361791011451140532465181816862593578053907023020620677704681475054079278263019855769913578240667023845968840579609441666434145488040770203066998439953113549772479039628302278574840268234375379191393002595716173438620685378439803448653347387320168593583503701191608950709309725646613124913487309190098547989316229060154760043901889809952196164982047387305265106801412001093557228198338114122593965310999311634751455206451361535021175651950607273838900465460130910903821774205138025512968321727612015885914706746619151902147637747972387937029843881161502224410615281699369223970793804347316984123624921866567636603189828080496926098139055061001613375586418910984013767774106512727004499265510667427992460717490942512018737861047979103928622247165613820597093377699151820345234230961332871448147848729867227540901274937828684657935452382390660441977160436921083071273194651915959562785403172510453430614481388474322321703833578582103609437441286961427228231721208640539544521574712561751809249997112888359284095031420625578873066936903280745727038383161617879999797498943623414908955929844440613341011560757678629420561228852831095035527117644267131034468647993339202011908303943384939319254090398102147303206068124584791022052920469482440046512716424232213961500787723648310643567989007079311763871965103970491446089247363318333555464090350383294248303542517648658006752664052074349535687952069468486933523883366049502938302400012175171528944571597856988453684746544689606589081528390842662542582148457785070952609774111646463599720597168250593273302464167212968777758812622626197482156852324588313865386828766509932943625432754389616321833103284519702345839044271750632547508534579949762017687767110340036632923814156412111349499368107291512713291766251768229861001120510532374612097878136513322700503618735150166179100827662002656487771991484903577759332686248354196712199787434776510958245488731040938825014629997575557678621985311855186219254669254434919869255027951904586533040864040646420896643632591272060048019567007106833766939363605667545208717712944440930771999032396217422771365433564220554666525460302325955779069041195674477716009124527520495169555146820565708836073502868960161109420935582595271266656319885958710391964549970689825968901571815728943337662204721297243993013823278528151083299325955346503778819925627055314106598155613393433423028628674101039157871375217455842543357986399765332777803538067993053166683903998723037049275385130160578799915932376057467565403140581729875703706179452702850592930194620011064424742532255633301369007147037658118147492314134252672729055228469053553141296994194158894086450946643377184537136027252306570182985262265277741591002475261753476257757474513406322633285636620980764513130873038188539253395885358946886372030226726753241689613142784372889829907530618465131972521375745593798751038572721680362140308979866613271699733005373613253256657286664978883406499649552076261512609052533373398613740511108219488754728425521621467189210955130488559171104990776147673288317266225998135766095246875873533492270728265668685242991191592274938680580654164268292230748205877039481332815856696685008589687232016876129734868770828447309927680950769613214312180695765839996138350841448652957141470710932388209907425215017993929219164974345346677229640506151854959354367305097464303080132288207602394147896171367211720282351328310156574466794412649934551299727807000976243958097068775499693970227960521262562767307710440656319164587310979831466846882138919863501411139714560834390745743110062566506521492277925256283800728236203395646156632650889142393709556661949648728176339756116987151162191452976544034484344952130591821078500854936126722003942780579328373180371741422376960550981818274437882982272439047662220298751325661757368564806858873029318199877365278489479543293650449625843880724113166075447269697523954821763812406306735055681365231764595304392290815011228452506441197553833814405085795907716636292373058535228188633357976529143829342132323315772472833426298031170060872456885467310736142220649230057850941149496954397447177385315439009095251478226267216843592725039574734045807767958743960530560204681166241220393284279586024491130011383037114888715095954902399862787636418461754984195207167429297276546216101698524468797872616270198954883780150983291873533259754542840563489330280551023319314346595225881474511646024078355518322114644280243364957729565786596154917716622403566832032868756404136708765667601658005591129921942306322113829900842540756173262818346754105994615969605132977932301540432646143750987106966151659132732921504111230182436965752561935098943196703288473262775804724546332205264959557040983165932268896451654458572640921181391222252811501545451737516982850607725571242631801398296355834049577823031097516472669313639808030313634280472677079046615240846007419880964056254918687595733766846718100030647159697600658188722961054390065652746813336804631064729177368058004740943324733241203514971950234448456685308758530283242654455198051834012961647097600957500561264458849578836977825490010963455282768934843119359845618753461224622257409388418397801842696872013216882595317545854647652792641783168241919087460844035547810932427770207324299554241775285077290232538823966195645483310812284617551835729972406654698737605398671611936380940469533012697584801774750960092514154834255351802811399031453031511675075292277474886853423629149700569768254160202488772918199877721116550004542496290603115409204875237715666829919915573557716943661202744448436277705341037392317548065494001757497290855604240028615661803834207963304347121143641039656203300557861183296523969982950618139659678989605151838002367899737471202203835213763687893972645975750429233017187884741362350267939203985315769537436763901694591743908832378091264753433134625129003496995127787746153826520393312050604636372542502235598809073293617426723747354056042835506275975255043239046745416909371146437436352204096504835900914106069095151363816655030775965633463555693357407606020940775124946339763780885859943064493869983316044888457171887976675295400628726353118679575827308201691334882664284552123589247775428065768751026260366027050437578824209964729599460690198930418215717467272895635419323885961266406643820883621493121610184385280141135466724837753120912946640911220786478147647453268266215473711939397081339440448739307026788360659527469115784471611185367197926041550871909737544505963185965035734491118345982765174139653733282845691635810760715362207095161823544679106371567371774587509903879197505436564467628042356833383865391331356228896878811352041638163852060631002259923141854326037548986755186440218630063167210545323414591410561331975406674376674601102704653914777769227756473131904233543721774158227622605784857434401311397238015727142621864747254585114796763091617456673698761823443751957158593680362779181940719485826724294625228707954718991905258686416266208916606007558402814881636161878330852948729101745224959477424178154458438505729007518685125785265365718142722171092961988822069312795137234289058106145887142944674684057536053010409460018345519787590978195407207336919235255784573723468628628013615305358316225612935856155691754696450896536324584693600299966659382658806221160112123403022296448923268159044532309698598521800363489107637287591919995429208010316214763809841221861907246169673765818368828891059851692415587430103983485101647787268072294504540755122249068291882082520505156416343537438039695758873785336166660038786263573164418946053742133545891689127232934007994411659098544933899283580007749537503160385621025285893801971906872527480310465731054401780642500626302774866750915087338832870401616728250788328889556188081459877745553815456739433320645029060352589829661288823927934822137617615184682903411621593901303547303515372889441448140200865166680674576917433947261814564517250151429162709212384760615191145790971516049132752424515860226297207235762692425076899109074862999753530010783348993802226996893662955394159203772924828333900297419390270204881242243446919507733707841264170143935564799438752412984129805982721315125779084815831290225295094005688251711918686984404735725973420387056072078127485112847119111226969326173218805481035415113697257216459206409913159976228386592756821819913232881987844246832649363287712793550526409115514652113446491812007489181121691458013236630393515113492280679192551450789215993476809584632356183633886311268059904466619118497425978537208799762228351598627254913352891832277342888364270355734627342752106130955793368130786986028536706612974442710575620361400169988395390716818667534438034119635360369912170096377648662828152219693152270523793275444078193276509446364656050871994366658081587043017453583282540180223606368034621358596710943151465729599130310185627596470285978928817480945606279546584768475876189124039766089119243312498934428782909062146502364490132819981016218048841114039057463365500713061314236254405812311891051321905835259119691220179112352378795623406031977893646049994695785683055279581997566813724942196090974935459005335589109317417860442239504381004464248179369388896356615839781733991383637360331170220774560511810250426826263348057033425188503900898077033010446998256671041666813537766428420424704508330097063003852324961647597182052278032415035841966219486295948617161347686310092622607775314666169177572719622957864423673154253765764283752525572486454604741016876777107241269235767010321474184383509128313781009069312868546105841428166245869406921992025029790525382861675235903613573812609457035353583223203228000552594786981099781074871973865732947795268060600513832472539157265794819562558438485913391645736277470234826922184345079741505562887212668278066789850854884814004506804569879742096321117722874032898826923433732328605468642212557419748155876947177733688174325325831055119540962014502380827610389959798265447936682663513808115036536077443354566109411288723911794036617075382065079756898308223004243500109774304451297237210098342998770704096185932620200473933089540290533814995486124417154469523141102444428366960148014021605291884313007813027428103103328821663663777068622658046750475502262460744514762481153992792228606065869794429459016648440322873767890125566207263366486357842740602332808296256110703749867462388254340621592434543459320187349266378364270692927647491827674832838942068202635055869418322169100603276075304352506834429651848484604035305070980893574260341207066459742715635600989046351803684831748055237526123709356222716499809801315919631363790322164374634490382713335437718523556107065694677352859211441113914193612391386855776483178279856122102081258722741950423457860191120476849453843052756210184715423102352316319310556091023846209797223997329502916223820568547851876519096511050873336098729802465944580729814116729290667459515026658850939792312949781276933805714299008230562157747323841632359878806875158227753886864006529681015899886837130847661469379770102706448418987314654099713256182702179868133228491701991590061640186710245585114786790629895478607759808852274336751407182822511768120209404608845597827650458990391963209398255866796705715064666490401450096617942996963489369312297080518387879318176423169742252762426150081775465378567091223849109507120549103245368617210883086051577187382718028531461083915141004091788656076020862903050626097679402425564643068636826636273069793184171773219786156319019572396935682426720776688618394303343649978494532689204318562599687832660843703409659147419258797880632977816717963134998023861239663178701254384866051534175181716770121468514288782447110024946090946728340035074143704589965653612561866219537415357507356123151438070852697774448026833625879817717452506967809691185052291206060402955777346883050956034159749642794453176860241999411719331069722759990220006093881118941091599181726832763372615428681743218226829505093001097329269588034851102380982125559588496736195944511351592023379419714377843479856643251836671555488232085071971472897844355177041545346338427425915432535412609189973394137840557003390526993505803206512522467142459631204280216591714446883775061397789088894860152130495105963320069073222568591191955914104444371349092841104041723383692258739891347341014722815936276707013919903190911756768007792304650242119325411884772671874737886523964720625181156464851998313355488475937048928250322945094003218777085813860431003063724768914215649662048757731469425375005589727720571852594155520864670710781709127789174425848003715832090259603406603294446035641008246183963567069363286379370999570047176419521769926808325268119351162872685430507340210238602715255419293489433569984124665091786103058255789757187108025374591871634012783059079404320892167325998441679531688205645255724271672309948138190530022340590112110379694661480926263985292717200420290432112861835330859472751682581012967319628651281652604758014541532936150540162361703199066163383354124185121968737979599388668699273382352033588167397381618367627430618575024756168605333316260140351373857218537182663112606792311294948404401040541357106381662057551299404472151781536664814057308548903964941539577332041596282206258957608764767827714610448365107000864712178328444306404300869569340935907179015589816996979324369867838644138867164344509062678630912939896809974590523941005448549635256365478474084149435147671098733346184643666162195448159871400415207691574481188343128914935448003130264196602818377549600522431414362537919774781422410907267362234789159116051458312452577104168433995431041884859109996267083066640305014450220103596283903313460775005975504202262517883417375883845992390916340988932545333136731569727106546007981787215245821017212166675210411413116669739781156359461006892003854556766710342082188321259878957868903496257157996867369314559069020196080481833626387157564368251519130041565431088854454338572469696259714696723037324330355712345400942441173467518683600781561988845884669754587491674771727033468374897757586176062064979755726453736765758643475320118645320246932517508299648882271283595667897488517424620949167843046243498808735037056224957658528001627747636332228270563600790900190097512948628567109815146782041292702318888892398798356701616704878184468638989686107293382295366353182653042071371852014201913388351795862873892120918261115812375850736797063411368346881860966608704514153800818413578301373830784590802933087053795865983321478544513736445894344456921614887299804054232865441225598591544578023950743791064699948760880152347280513444425386981189067768484980905891141980494323491589537444079424654820103648501806885644907878232056493788926663443257875293819311193113838610363635980169852417586530605605994221642464868209639663686263111726998108888648207566607926601701207751095555411248917877763800482313268484438312408736431338152926855211592630405084816154188731815161323172369944206592748915989880238926924661322535849294357039612402181776309457625377369057739373824487023478689068672840885091112787867539000364918739901707372620639598110035653100925398484939211876633600277370582926585425630711643379629293358714064114480299479999126166412699203833528441732577436674186442298410591260746858401722302940801758004671295988725048188730313767722468923568705448150304780564173324064038110194061286744817138331148522619262752951334078224291765729037806197522886962246840367643796893994259772622164890032319043919960266050776523194772370254768899177696234428679016298529487762455592551920580113895158638743105345995524166967857265824403326342131326497820393010309383077929846475047163425384153635801109141745136257993932540021105186737086767047465710576793274147196101198639209694071355576055501825989993205391471949694862862859100821739484579610749330899658306289428544157753457515213312706247774406278802854274590982265091232697439545681717607345731709781137962082780368748810535217208219712460332763586816166771313077237336743105378558264337050115139580213080307654085334840831594442251141288382933288208807655066862010748155920715233623687780321675483600408277646017478980776291786217353532375706351633698771954993656090258076793793536589994704527242762216324254321754194964963282423176335405659044840475445144764432708511590409034814803611637966317598384239145026538555868322769435299966135623152744691050290393488133220741631543746850196267230114646169932798861835186698793397290894075866696229226085742936954633151434454517905166110747630787888021997089830469826258860547535520504606935438083389693109022993090020996532473860621808587014089005127010361458778380547182311150420824244026060386432279964682802011229964883118467523047784128009417513949171672630893148928038596549626534450274095615818843321831107698431908636047514219737882925649658394377850850345600682771835212237641772896829430664528635144908805467349199704963882672238606047762582076783103226868546589500405387953142003068562466387442288481404094413774806453535150320868708342226715355435456247715777214355239873621805986865249812379667333171850218664615356454509447416106429051642311752640581767174816666988443941320590430612627477862116190307096165482910897225185176066094045344205077291154830503119329669039884709073790446633959205972190801840238905872295561484841262820781568538997670375232873543990638095819087359619528697918871258877418561986354894587563627783434255266078134765822603312517374051111681509424976607868678382627914509018291841823972967322042844577080438552076426930354294378210269345752236450567701512747771886109157172459380997687098853186848533383719738135598630231302460591355121010526601471794979519955854832395857644600276250545480300802351126661577616297255451307445703217514284513703260549876485610922066381581171980927566355638035784103073375447078364721952235825713906206366917323706551528868108135435808571602835463609372130369785967061381191272656700142809562040736421408055305445680669196699470040128064003874963327727535462050744492662280331372267246022360374866309231637810276467166959813572249070238786979156076826572820761032372427404605659789390987874036837762792574869675955736641808132578106968199422075644609074785917959877610059741310559658064548571078150962697623534711357928650778732046453704296911114641575790232844316117711563472022749187466306730770040329679738931177319435054742501087318486702912688204645712630104116710742225456366771332480638407582524069506674717370506676539278274125417047334187494289539236830379515987628179379408670311343588497407901931571634344682081158408984944257475933232695198116979820366600808302716732682908620197961221625140775462264006884420093040860723057789634969015931172120565984864005096075723942887228397178917574613934511625629115193164903130413658999473122024047627036249671713699002621292422126972211851606657514857860988558797625082533394977815120524864214123941837391970106698299362424471166672451582861585096270503730045888302892522968414452178193626619895171557905951489020261280046153460267077366188352734232419723729631720964715053681896763293950463318774580840724159897749869009627034801550506814527332777621175803101445738339239082835412214315290843132152924939216835820565777435185931137843867423694690649435003540505309481879561793836110941319788532306772554022019116300951697569448032861441306338205516376266345510645237655808886459178910628354092117148122164240264485352343475878256071730411394992223139230473884101018121912271950780643749496605574621272501837731466374109094831748554700358737931142655649117878145508546396698719412850418945794239573775444859840586041142741899369138298388279184448105655660801564236388144001161512833623464261078676966875923104706163402514605253293126452952049879509489378521608701381366832071548314195739890769358753465075426481492777574952393902999595320999783338808919533017130016217617002286471092824465870046582272828598523531837145530692005415678054821962489669088177881612897123991443350681516968277309413779548503962555748273878527699213324129998580685040591485620501456098312239469022538803850796826007652241281030832387532519715721691110667427951123158179147423148343866359580834908921604274184475110560298349056821444008105292238576461630759566601748175704053756680787276112190788457412191835035229944122753571391576338715560308278542171514012663611515297782990721423758908927746840117912598790438717785597861043423286462649154672464023543221485575839025963245944731301007771561618382411706057252732740315427822593626523773186766645289607108688083859284205509035088542946158058063332348797112682250183280978924431288400749935130710330783039605010201144087916791899240254978573316713075881459555623363926628447700134373224650959905724263708756081045972099803687217751316625520013729567271978364804649164902665748815886025031270825822131699519788288811046348228839929843404138514950143664839833602757057039288591362093541256774146738654274578032615993102664285464167996464653702657302057151055454482762776304222151742171904803038583582699897167988968503487698861985608209288867134308665682651186776323474246395185638247537962764770355402605762071062847942288134215823245659701408671741491826681465610098709421195879250927637332809221209978381607068032662435265327137883242104480788163022114837699472430708041252198616126328917891023160802833019399275553379984893085299166849837682547867729896151191564268620605186612075617380387538818184771361891850547539886805587989279101560342258036152993646691065260029084961554273894028235283932078107932817856666480568554278536844861739807801356219526759007186403487310792440305308183461219961317934296794500631586376353024852032205452691454512278516239301701033949756085869085045817528475898733558360969961778575239649527917219169506273796973811213993140829930949621522025041615491924956801965800107264067277412129400977109264220205248913710838206021841331381530183787467190755639161702124015465534518124390390685665527862625588749753375571918124835888954037574423563074351824543735835433152727589445664143351593101979835559563293240896664896013203455643343413002012709438521781867736985322239358443234716453921728175966113732548846941608205842850520785801736054668851164458600935224847839192569705828577252991412274824356022365426842644998260023196672451076493409973412751336644016339793179811488093161423568090387815936152231995435752818443918561263995048705754863562944638319656351389214808944278263392937984930837598905102771040319568908071380693837697020906611385488568702776900847835168594407373155981021444284522414938121915905897272474954690333726224261807986916817387476064234886764332535114623754032348989922693286194841558289322862730086013498226522372689310990764890316497914358959550689791630375170051719940436771979626630230931957846932356716989786582404182615845113369021373989122194904531646285643275127870886171014163088057799953309095421268509369584685520459224951569261838013770722117547945604063335296713413322167403431128718020841697086844264847626074745160018366948058082789025843682603870667514230014653041849208342580875272172686849037826610557650306511421636731619439752663651540367661874855589937469853269595263675905150689754304168048503277622769569358326828399261658478320462511019508004141513635070790651658235373239326483344621064193510979900586634556900874662948700513700047204053141713197794696350969827018053099798888032219471324508725205763951511338458573663499940490465068098892878349462155411429576096287618438090005210755380198116654269203917607646119996632790774813840023841687888273832237605336249440949668307503456590394749367405920458973563750362739751667698952754498029714498462256910525972295828350392827424506194461849351293177388601992793091153980295043003527711126476217085564505588942226519568604335086068648106779344026170555005344222909594271814727291979807896824064287464938591541440357217251115064265158498351278257986187308215438360914532457854848606106331580171552508244924949730593275292178103641696205478996679792392795192539817649659752679278129440879820234822666927542258134391135798560602627272857520140892817971282223848443442507293883553553735877475638710310283496355948401098001549092383534093390876626507038635073474342594970070528323218802552454086236361502901135952421634798994659101818103622170249837919141445109644657867209662127863630797858459805150080481921113180129327928608524214054847322584663363311022936992523667125412715606720869835414631049600815720284839160900779339377219323485740254992808246065159588289374232990056218717073785002694433038785303103722749534504103300343011283135930214471596651073022353088294623407439670038788450895985110335925688757690686669392445448147387785229790773043962147024298094705638270040632190584238814293649398208382298704715970126297273754023434733017969921065293225579507881007977633228183229943331873485297692002709070175674175690887418661256894843553806523005660351808332523280661779073707974512800714248290085802819957856953901225437443308666052560677337972044627903349933916446371601532570810780608446017827580409131432654141290404741225525224980116480367337702403592681807442718678289320460414224345879537073120529009039835142394964728100075888042956805792969183516591939650630283030902127417557388433243957564585136015178972045273213768634988114419230671366461073857968331746053549460275258580073099549211683990464863048419197792643200038323510473307381590815282905351081262250914149773828471525387805915938475476616246981331109101406533500670689876299569432998717992684377265170495104598096935385088963204928804838479177378572422568316066213437249166245309947689571230192970742916631456806180691875458187035577562449499146996862304984801391064767753901473628421110932132321295277588392299979030404671476523141602833794667658164518553910804162771250090309290448427950954907467046526511943536129728093682595074106499229678348524551988531895811474558160810633845402424466267727948197196380154861208573245501567255037418324679163674678846477243916246576501035543188493172441694214920611120069384304145163949429095262440343086392867877392635622970418299803588311954382506412339372193656602831113082220067044215662671689490977223046752335865738752660707117967294639953949331229500443346074869758689138831109019697993310389032369303677654741563313654978064393770264997756569915954495638640185145001015678339586474222688087038231432134558339665072028476481338545937499661417832355827392701982535318897593424004816675532860747901295890586113214732929772168138529125825071209974579708470756954327526636952402022865438869159957325248036290093677095798305892685650948573752513425940572425832488045956788707232194917879291310248478402513096320380861671156943097737366769338880929687107005934462866751906916497736836949544428899110133869731984968029155646006112186737494926757567813765585902604740922785150234395388650884004592457261896232364449075144431823104337306796215677587995298188941152199670940933564454015792636460252540963983981183597530826755271698032901483354573274107421547942621392854277118209830016176972835817238778197418194574252782323441190213294665779063088819578985871410470713902556883575216984819046477662689466941553471466988636989873744858628251640479185689519683660351856140323932209015285932203488463082635469131838910828852377310027498396894726490028931743225371076155137442146981461676897993091874004893687224925583577256771105742556164125178363863384313976883738721332746884805855687572560675927799131643130174274133779937896875282054484430148517060598767899577677122776348976413577786125060525378661007238600018906192224198068371274924249799728488602723758731744631889617023465849080064342494426667709122537846670836170538105565084252582735514085131911748495606593554907316959920647462642552512235102978604594427082123253814296259731436940137537958561092139264474173058650375206417592730956617389293437241262112987012986689600303627690275623918445966149376082080854536219554771080380363412234763320843136820655546352048457319101539380911845263280306117349389541426556797095287017973918616560715789935709227473150396486437834235277037438157970691107839833266028506863295008625545867974996754932138146003797857744361974870744317956484556068160413142338043723345140699958634689007118312965852050109760134535017155574109937639540900394194996602536610857846947596407701835268081131063607700656025580604709349832183150111787833795696502217090455153555631201621752106638444643796421702408532759186404559404887761809747977521026752719891369726922736856030042937996004941307892073167580519136510461927563559558423011820949823453050629617958704467906964985557961998130613576315959928136646344614416877955802910098515013218313037388546848098381494401520727255148527563183607693913624839882915116333953827162780966812772632279519857953756603922151957147286467868528509948730053372556166089026710159080185365977650777371671173043301398596411349274141155732673196600527488455304802548937914331488482643734883468422553876743853990121106675466129836430087520615936749380892493917969053101677609921624766544445157192494070341249146879451962240497148542594651775471246817613330964296913087044264993129773129710987130542163951236029953223423995015286591032853804420410813078420728098601073873101501645787387024142026817092019127809675102658859422587658418146230754257609172982760539077134619536466677420376830233914905400334842454942471410044058876145117602397300787428636534502706230229093931475736694608470579482987635863104057707051727421946289138780610002828964792157351569168098145867184205697360022552173150340237505964211559045845448668170208764069717890598059137342691221732237848768168532501061343634544976468254415074324961504635504724766719722270684408118678143039346074423838267279023135295169697565819634137329833212350180825349198491778847973890664427800639166708107829034411638413741880902158574675259708205847222820601319840254846050579913165058045317950620706426561245703431210034587678879238543273556868685540764589510417419786954750758807946353151391682006877258516336826261164127717695360192291333761225691539044407136051546405192150790798113305241595856311277055004657598849545070242219093910845354120205767654836925304026156689834254983080286839866203913963733197412813159782268290056903961587637856724280285451370160059090760622505016379214343528624310809509929581736155721434317031784889823636328468469070266973942417919338059409075544068680765203138501142853648858575818905245060805039900341824208228037168952356702017475235919003582501544445630053097053767207270005191120880398683702579072763191035914568100823452759135407761579031289328349887460953888896275767735855840296760455335612941318520515661129887386134322090907411793812907456800107342377723396117710306258144232125847696291103053813995120968781579783875793688238549440715670569245063277555079511802316861801663670959551998197099739562518822716176800093320492977296640604780221057585811208882685452640278388382903639149380559710313570318997092032762332933053994760808546275672020303246857082888364677134643840750226686338346634921466012551855721564902268614403785315797554695788797735663231852000387830625713376591811485179215055382187030904836035338164871352473081403805928906765966066183357924179845842891344533355255705969477808784495313010981786436810337181572896392927561261714774126020266293577293082563249776311120930204505400517649598457825385984831982536619441172595856860383406422343952907255906110511363951033366583682777294185043699752344254822963840403290967678605954404671707541072468616426912212674919535055670670168617856039034473372759270754094856636901853458588183925922098788964291546554335225884478371030714892390805713560300743457252414177441638584847913993190987943840646805188213786432138645914202837700681657261449956790407311112800280983032304259648910567665847629100697530056262370733608539966005738810821181015873565125787831377626805740595427272562194621235941715688290366030679037578588663030510371431430354206632451038257593342939293645995419439914749925224738277223157834668785334733676679519454878172185822568016689160939530677536784279184803648254300213787816561060018539703483943686464339149513941049423610317621827173871259630796548041515457770238719343607658817188895620647620610934680200486128260392227776492190774267250176668331206992846919775396299688532932886798674494531023812060818736408001785657871365786047891506519698044279975831868137281600738007568053172800180624657958342944103960586991121357216097136703930110335137922706079446272865747214441810678121323952341193864242012603664748236472353064975368404390750956903862636984794524608375706207748347526485712270087314456050638219669462953732845775240050958916179040267633972337054307097790341812535129693103406012951455766331249027974436437324523856266736044965929980814179748382992393873723912781074896551481865179870153736624339127820334465291806160725519092495416090148047907412061696257104660076236560947639031209961217916718620106190949176295419921869020080486620824593767907617299112927041798660818949817283282382074110551060508312646765964974929688183114304626294282034444357534099608374065398485430865087057890733934699910560032158639927338412766273795286971254623097578895724187822566476749032996955210790877612655606421633286285609426199018640742417713013330772972444789228221104311732047806440739899566703971602198962719289242649851199218911135152543592584332729435690577158277328047871101904242396970264615596255645132508141003247556666603329625227046009268027081526404848751265688064620085216640321176202634038741580681618950699413921523452070036546648721417353122361921499474232298355281560882782959767349023903397385244985099353862069552694484370678142793400286398645635543037375736117816290559983406000538458784840930990589197695008894433028152507290170618292574025534619886088692779912639720424345944131624273979856449884471429209432767654699578674156615164181106783261416745201676523781496317926424764322902997410361627794825026709467692248730754025017347003070834971242992735735541989467648791931486926155230722311213885277875825803443283066496830606029737047100021829265182530850700723904327852050479925366700273141689558610744586898781621471432507451249360561522015068437591779566899507150588743355736533364910698652528240096566178357074049969507025562937750127694139041408435651074404900845719173761203287360355123999874847086164543408434424983065001500482633160027999680386065427335968841805876438310884767469794173308882593627825228607142792726888782317871791269303508327085145511690798492026493663394001339645856404970349081766137315244012939870855408278479789715645271869820377689307327271699570705606298777833609360799130295036807225262008940545573654189714720914681039014474648276684140466742248668153000707435906439896608648250017594476424068799164330728203881444601643887872759686712014240902753393043768794898565290055719306821723029177394789713101657473542490215671005218954216359853283635854488309779772292980109544209254981583994416890047870228063734875411429073055259651565421100320985735978132953904414717925963920654165109610143555150296308489156581905575562826323614568603881653400378853148895279981491260441519211952580541554669941315977694824618220437125019452253695056731536708758022151235879284333772279932141087078439707063849317055769610055753790391299414586241159346828699928201121948893391248036715996902175730204424241300550801616400752968429042061358180197959559301493377918070187196341185198872635912273470651110284855518876029487425706389431081541849907150377449335370977788238597117096630459317335002668229546669369206813426811770169500590918467588143904402642134897858138823094768189956025712955973107875039410175392532822060772066362148631670252805956994629280826334523934264154722407751341734208217433013920361299827720870783111948250861242689350785060476491904618276512857621812784407040639283693921179597554390866554284194433168090771183179571574890888164341993777542882620618964786647814343064043583851493487147935308416599223710403117988007967120950039143532267253888416884884740504384547306934262579546059338983072021650892988314558910440500566584493713543936914188688257129712915010135848329372439940678072804585620453806190824094549188198351238029521883498875568639766152605462992137686827260360665772152208123951241062467553662456806563522274887653126084868158288831299848932368349098512842241076552519548145094157868568981548312097633871744985422065048714246785403977000476228960855634793227919300088966888392448128421308673966836892664763044993588161400681917048606617765530014241240146463544603802845613469486195655036622886061594074567200218267980635830832550704651696089110733682724458088766551389329663888356186476846146704213683892316448594949423475354706945840508854915933635502276371366058951540761688773045737604349207765016307661862031005115373633439260397865483085685399200848053235159001053959680514225768169603447983529951156762876030164873392259262610109749137157389987325937376789199364527475037548606984203290133992415265319424683464827116983263359676846776396068342869251158093762967408688633804568307495309871179754603340955855892245419796808106215697451300545211174276310922216419822698654191180183350294072226195697062094821909707216544083212232759188606425779828409772870374903705962393195013200635229834751720787934491219564788873272518526266165428571565762806005526280120973646562927406956869369064577460862535871543765712499262244063796537733800246423900283845975733846249870474994926644880686736152380846732740211969786279305705332657523557483691824959100366904170831931556870791440355232723051117821579321294874960375579349476378050983157770697128940184347326740854881288994446005625216916775412087995853749349180494373880672510968509499595162645548674495789180929178089342030062689738826441150224510435053761831625307832492754539619481651359527341412741922848673315719034342616516895722967000998411050198059782344887584755235517392218804748543431203030803881880066620925795063503307066423160532232775906741447718215244942954337797198913457296495703298681245621689706853577589245527366844717313560132252622962653029578383366843107520192288258763887039172979795834906189436936012907680800847736444981308385104839605361315666050586948371559626405596167740941041748006585017737777900484564048768931893989960381578863206313543699911980833135304587604918354524840285262857422762334745228366882901607766275989815951586471123654808969611784479415562804674525277104200915551620731888026423803469334649718524642895138564225493926432606320184617712260372485850173186076586622774876354073227963492210876286044955483158782267184177601330384576705408120147978729421034310612361762277290877432052717230203137747485480502233553474943906869485496605505437577222193423342892475043261785136350321435872954561466393498692487926119350551625277261849922776188924843656028107599147368095116656666079699613322464934811815197687951302931978687259748333498210227415443179461356349825698366964682069187919280913889954846578218792916950754960874634090896079786265268482152145506631340859419815484353495036267512255214278232063759275745749895771187191789053253259466897217736007484695936546885259544017862670212020206615861723496516734784143185041362561333949629467951334910101350843304205186085803795979625053683446884376275065562610592000590166692014401524631703956105842703161238629608376402006083488678317903738708249625247278471432546666752400878631373980923146358584457446208509254918204133840009002391534579884084255221941316352547509314360378405167326538786553879364517600125230279102049944742975969407480518647256109404468263555172620822765233431226826690274920309341788814601017875505344001023348256441374946171336983296254351186655413583592359629429013081050201921672930141700349447228664810626945151999102510852970737707596256741873704306336404948743183222402908416464619848016642846431631888108655093798497272085221439780961077074520104209664480575689305712616698977674941849560210907950151622851260513655884641733073480948078504642204412099004475669510098122230288477610340402751489462012934006454528821961492952543423676763708811395143892811281408736537340722130401741475214330590664313141459915156316591305565772923269829785938887981389753489558249477300660583180013777076469199247510068963009705340754498698119950943922461363743363834486907381980108210031500239232248450189615795654112630754287091223320260692515076107584035132951144481750632442306336799945552845994762661098544701066001492171758696618949561433540162448466972096959605584286756373306705130506926530594419104886956291516187957395253439243584549404668810592473435688092531557378874332585995455352286761210687812750862539980559034664650490420318370964212405546921462842432069823457498409168509183395703487509526012079266560001485285715337031777691636398701537082447297969594359527574257407444361775783632446430257367535331952347002555569948746890105264110487495057187375166414299689685061936682850125736259239651704263340207158054335236101368808645206738113551094117305558983893932377864645894769295840901020409788781843928471523505712436280430160460663384330247459092739082828266609200440065535920441944746440388646692684119257460413361519756998687243418170740908480224447371576534107684527080053423009401477732707842516080934167252198360303945029281470829596319109332622156502632056493795557342829620867608579838859116518097928763656381757211131782142930851586880660502746372992433517354603922075422544075889937132291688424839837435527230906803252272260579401094864505450603966550772875758291334784207552141156866151014417570604191479897548206531492190988522572802057828630323053518908563786635211204255279174479851984616900646610274409477984645191493390364041372813898170481859812586980799472109327004071569739549956545347223504170313528537825836349943456035392847660484371567775202624432486271992668791801586113232591825996799812250252682546729990565865910814442465615060739306968592412390052112574337791347096927220160764588466951333250969570604026876182615493137638555444907151468320848176823268923079241584808071711959567082278817535443565319567947515090731837388055471813874487808130160468388394847043139165230391815066825919765729790848761742281712971343083203943660234582108738620659905634362134452079639900801785744075149542834720298931254428665755085340708381755638010790615761501156783789515855381480660053195115323844497378948180992500438912222428753425223837263633701503414907476229788122665065038789387984985222068732272383642780053330499822015903260892133884588427584510060800848582612628769285769850055417006768161383157448074616932251599939153112551169200660198981311641962843666797625506468835273062995047105266296555732246941736345859491204135672928149330151723034238961245319268032006472794435494210080874116034739634005225817340837802877603478832928237107413352619839137968148483504799641283776016718623121327880770114288035449803392733184272087077330369773132493375651686024048259459597345347784016092206728807470730005000991955883724961429755657950592773181218427089410607475791007233109375820375386180690538578317419786707418649675397300105519936164676431633629345634573007167517309476450545828133708850075033520590174945567197716896131296334837304335778029846254340887050899902389698237393747854055586419836397729168848128141190521223916014742738117672437634478714406591075693241762344244931879515889026295997967231459817968788520272379461881337055326518009670848304950539791892523370447874714114976658744783513679285607224805656101519799425299618582377722100458657706891480687150208897879988824954473959056793621344201396375402261640954084217875338163198755302905661652127447453719293985047027321053749178665268407251229941812315249777693685113523164093097685860833804054927626001311389734764489043068406913980543791319474939110638469169485070590007535019273487346977840553626491400803084697304479592598700945826778996528166851048776749023327857957995637903141366830976728833850272038427882129806796811337578137587686194633341802006843468361656742800310145130986118575241683391260714273503319965740234424381328172113533736726878434788648514316174685964540209701914047076519817374611423278632237096377206116795391597821857097015530929642943521987812771469678196599689807110890818226028451817722302963073034233210767505596128507381684668359872854757428402006621144705772003440029101834660446536676351385173363291115093165462928597332740014408654532429204168642258569193851232521293827106357576653152451595692261552291720361083895494616588745506214552876448611659822085798484888610954356273227936811206624974268807503188604860077370758308472419004277212916026509654974064767324119611595622512251452325120667684344263441175815101114236684493881127392714516951183204583720325001987765817505780550617556517155663684562178671840229468427522601867477378222999304097580997972416713024333438280685937534792835718802137584523244618426658255546281778237340131276260025157550583256794913640679266999921601641278790751406027644408499724415410486680775964603454744177978225963324427807607604517472639175547292945643576772610462514080578004266104365818449703710683381785459419599667301954734063408010599621572965394042807480585439809917959262020458042698390588154575435458944958533848458197579263610424321668758863615392719540276589049169921214266059139327397899519771429366681635734413548265528374136454994173430831348972618106276947264166158532903077975318037871006507005021073669901002427378177681525291765710002370243788020670420217406148762207154215859830150332734792146660217061921431625416429032911785122328336866720452403337105079611082767199418759198167191374502064819693328334626828776025575001859928128192580866425607705757659243542417219359882757585891486769190170167084364673974270868918353944345929891270963149608184524745745116185644652705659073886466641575841666893734236209622046961704257572026566695907976877987528666813850509655596714869023071575108788239574801507716918707442008252602933311034891386143237709387200400822821648547596455711410494262165484869513764997522345697543199771501901734816227342996825883381096256864103249232660934132929846822997511074594235225616407222997285485458481736002957932434792749997154422442726560176976470480186195509504721592179909119936713626351336949911605907545180360898147512147935036414187996456982138271262773645655845968194623226973343596971979180912901829216428776742749457954927871349246309722628342244340738904390857149455107220918465396706899362424397567887576652371591363989651561677027250811212665814962221300726405850929913913726909264243797237519554613268537512476358052849465883942664074659486002087367131179086368769371364758690897238421178536070780929696999950102161242844478275371727456337351875365685309628310595472469783952093557151662085852968765052606504968262112947528518103581672974682554773578631037694629366674614176425788993204610258339575889677513988818107595794268677337796313766399316692829895052467223415065912464505361730381893644399250734563071476686332038518716331532242794498310443553100615742167859207193768326701070016060576763967247072804470225845999419898502196177948335810647337212503128242785112848312911316021200620798200999562252092966948693842572856421704082628893895307070839876797564494213050897982139447682480732576024276955179463028953676169005213919562881609009261388661999329251336718999481926047194575861165509618373151678711338477773243992326506985130827329672229521974864629093692365559700792235228315755553904243381409814293194867638200498611921162938426762525169167339738005258746158239678048134696853882003982774427927154562434175274423759224679239939430844823603868768319869603905692146134070001253080163357599158256522049116441397457865399144138217672698765974236546237623999718287012257081019795411497886153975440257705743401446046298316508631278593891291584326500805002896405134994892220173724315817787427395633215118573011183084563280097346655019469978183334909820571718159788220646923784458195044232258387942326173696140691113636491065532807926137116205928223859657113949307958301393730243983863657219290755892441044337982944968657772892027421348193721838597229213321912689243884398708492989531690726571781300752546028396829630718185207626152046128646290899618599213848662259634402558754877926482472769987448326597848177940584039030267955157733911443372989843973253416589203833541831093160828195400139512794030436955135702404690892461049848057141534553170153939116987327219722280007234181300737059416209223565983385296293129241656478693575429737476883574613421373951555193840949396949290101250276204550729375511195510633419473668245191778423773293810932905290072413069760561513463142723113322548575960190545576152772326219045272550870362716699543152712677301033788176806709787656663973456891018892355034846978618403265737493286948983245429001536506065472741183629907760821206236852547411373238438823704580274571172837069216186986076165572596665520961900232831071675857167895521681559971641292543349099394221190532354257617363299227871592478516392790759903769102351879417904412070266926465670942508505211185349390469887803916826277293068537930987162000041071724168043531651906372757643554685166531731493839546474058807600112880417594670177626316395678935831904098074886031518991042817113352290647771517042675858557618423904233843829761491448715728817522203193152336578361818649653134327040458882099145951886994741901688420514437083847737888809830970368864581028470944820320752101673353104473345663080113043556976791263373198934768607492695479119647199232956966368721035423593120029388309027546363078727395068244978914619942418050183040214316047428509279028274902448049145939335711441414609656683154662471253226432499912239356679185445484221156879059427033773409409500403474651678825761259934240783876935000108987147758728987248272670258004940360413042368987479812407794512390346195293536593483144817424345118907032799552185410745041189111579828081160464640919165832494683141316057749207348155347717429909632441843856070165205447502165333806090871517006358805110160115253052855344338817213948119515287356115470017407830687231181989253709653134021022996799404935188791071546811863809088899471569786275318760329343615857091411319212147317526046064525072467198672482456460716964324215689609754156079523296514401769448391974777405974354929894033677201317558887067547362743751967195220283656529037815669126032052612898757000169320364268088780224772861801018269311713844586474391341826187361638910205901228398343798709454764132528508662238913670254799740278837443993801824576496534263843639883082628749317968993374957364424533959813507269645674699428990716391356864693042719352403152710952760961683217432448250278413262740355248218975367212416965717618210657031310071557122985063165782499729198168850666024335955104847631754761279330700084756696886208910510806282152427556489206270568429243416842860575951965513346601299278759044214358306718246187406532708749738192945997946666975677957004965924283473249728940992308587662881276721567597299924796148052815938535261295717129937242586635695627458358387674061172278131485956610492336730221942290276545987995100882546111234968969111849266935995722319362597776182956059985449874990980295869493230476108818456378517912022418271802449175426911241794433938051061412982038062655275402926958636947741622455193816426519745614936001255504406826823350364613166098517762268536622917981596369198517296166519399946005307870350255280351144346649395596722010676063274508122991698842046443158540796338607908445533238783654411812743715281917819521791259315003145950263008192707589846331319016994192553619563127169675442191824284958313728485303873912737277422391897690134636765148863004429656834584610852834949579640977740554909241873724262348776723421145091022952501725869550777953473586352784483084912225117759691690495847401678274892297189277379617417337720475991591778657121120581318736084678180556691933897857243102736637565915261947963263883561964330198025076145019278156611633919630998015217574207034391364650322409536695511131640880192556506308908705653311091544531264608687328493026446174709568254202503561329781517098433797439805299644249734106001875192676699184267124373741551126233808655559346848599043534460973594300733579851453181213937047711423115433693826731330098290398517472438881826026510152508773769329339681123752795032107350712352850081952867048864727504884411120776516519815257092044790436867414334537171765257436350747776744803837359488918066008151068700676251942662236055633886231623325415383767554022879415793165125860748268930814636579930349747200469080753906878290308570561180565357710136392535926319257359121709514991676014617070953503161025278336213936102150118181235569020915682771304272833041789308780474555018990846679335293677108084443078668882225805546229830615714842414877898174435115224669716959657042422856603566022306722946519675924483556571185578369262745262141629934106807512952138073155625797072663307610698763349416538151770215742161840719587326871083996393718810292875183201629610361335990328803816606169048925170076308583710576585480944102517744847485964192703392898431783654148126483407862749200740841648492004205886400388454329865154452023824913983336262060222608978021789894179564916512500365604395397858337409505067756932861687697991576707656618636933755121234272302334508847501769248535071142633910199601844492519192696375834955615176295524365392098015045531588663604669928242085557049085073403457136745868322025188349016480622691099656334003037074172031391957401140238011201359530450669817453015653500473683560874792848487222151431386194432361630097078449613185888305958644639690423457643655538758695576964163407891313385829534236061809086670176446346472842853417176196441681269710022941837397027732494640976950621848866070123162547973209658497777093865371346417794688654813179410087134734773753065073379511708151444419037480892360389156437704491207639829934949524825939716022475527918669544040067603381721167224449186937347581397243699979036701729807163533393633425428629313644006227435712465476166841680902273799414297113424652657295863092973352815289714828061637569212551256395589099400410545975467979255880332848167362035962135412171913173896170620572767526007716110092409768148796445149866866025584212585195189976062356843263892668684365669319312717826329903034491568505165380918304070049888992039633175289816266264085634592732075773734092578781059725588315089013526550177134717850286891138857626918361427674565696678856435511000883806058790525494192580430853052570367800411745777660212296152482876065201088435661395464413137141562925499113837936204341023655975943687630524989906491387975537701749192922981477569599177242369160872070583481602034476144248276802942229759082695923309295992104741106519454646355741421024663237823105198859523816197595921688517385405338625252030915308994649828289864377185994068391541709411876628022181984731954073979369662462863750467225104118932088292548533290163847812156564421180950704394236717187274948858859653410511721874521372575899723943485967750196450495881996588736477824114797234759696008441355812114844973385939375724384760662783139670146065319766195908293639142730446556873166844473079421469618463289364842089672489193046259933160585510334023614505306226366955911002763417613376584738662689260081062625965438507957498082812284853910134277511221469752339200880037436877977095137777702105003267378769275746849285086787129359452650464009240168874094136297138642039934550034050328219242599700664779956625229476719664053565221042222275598033625225845937680944322886979864228196108406578637218234337438893194028561724473655384548700380511253334270420908725986989485753719690255346672925553587697953422168287069100462847801025337467035434327206415335648729296926957662332241708574526203900058254856186153649928665818285930225047995518355832915760494472711703847687506439053390837972227789879354485444803328254452641924558440807729526385433652411891828090847131218637938750667921979891808340643463877289818483558434895763823526754134646397599983109805530996583268382854491520515744776405263313124004682244455099732496374353289862443807829518616724716064333823707691121514520926393949342406453361361462967284357369487819714289614347866925524343646305223104328833113592284441867701266710760328150914876277003156495440967437532443108459355186531638964261496576517073299285025500252194228114746330069315338712445829068021881468592537235612902364486509615343057058263195026792188195452283400361573584487371618652581603316111632493731760074916232141252408869234558407307223001701710606652619850869215786224033379713499381010191895743177292164464711409280648807628805406736719213161458599793355109321488864089777807592301510998780851963599535693753785155375832470365602126682937119760569226409926451999382431515716263268347086238589091984970874027826630558489330800520908636491049739593114503485165813180450263768918402007639966299628746655735820134408921979817965778031352337717230150210945901935413921879699555012175685815304444211954918303993501497730982089936536737591077119496694567404371525306855673100011073188300104243791528634296360005749134731769593720169633751160968393713055800042240862409139247969975092034393943699656304305531692481085361347438728815791420196674568508446102218845572791394314863240339251526387549349143270146945213768204311909446145327899500923298783092361144872360045578000752323728651291047948455855415162234973174696266810736315872469361479687539871990681240197458966323872679947752020966083019119888326187023466188328057772837928962618542540351044641238632787974955774767106274580751210612129922455124151938831376459062799909648963954329011224013065036177717182982874889875121974789819456661082942506430542565222881449069929444771301198318134624933085833634838308906338393871633001916924828066992830201036389200143811189512023256994271621410338285705131105451156278874789528971274728885652269132517483800281821907722866069578351920424398849012993502484339507423926988637951008782281833562201515041323732466765755322724270693437485842616940994441211662189992233342251437944510982338263317417157390502844068329152551542814366281339421274439935586147620630759814008622181126901595894726377548006692440723590096429589149227738322262661390850735504019508818425538121532415089657924955615641028462225685951635046140672666546959466986978658472581841639613524193857803789769202000849635389066461002949874769502653293602189960236206663209190563085758637481855559261144114548187954255737123857449050717131001164101363693844667494889658174720451543463610269748954165667921730254023783416155105468945610730008405826197081105935441547992233432552714910241528413803652882742189345683972250323887521669681641035100565936199746387951330301890136941813949916995920987255028029762879047708980720294267396294658995201195164147276555495414254848674324326037685733819267921285253426112699456602065420841278678160619115811486855763906794196873611675103163370117179794807073751700711987382475242608769063508982223808051297023764886155858908357947004180792944154869438813846211521781665733931405236943279753859230100344338015030233766525530437069492536080740002339858459138367172451877762237027163445253028202853767760097539919410097767129172805790294325039530194332852955016431498322992198150492670154553521993638076658924163943424530079406043906320730598974421314519059610224603505515704903147042707780660020470250499697337396338296768967989038076623536385073634267898277767881249154919441599202541670928288728165545318847434039680691245887861190898887541426866932623705905943911402516341329051830949752797637346279515277760442388865281676020082792226442309605306516473362480704508491660343668732566470832730007758319549682799010819647229750750357946117311524365054681186490901095362440719037108560988121553373784314920354930759358224249897177272927534088578583026699527469656492408442871763011498639879240521905897849522893269840596891405837364624633943262046108563899379970983500809649217033144216539213044778621008712714151690555242277966913516025330903354230135212016471518626192198377973512384842705205512465433365946978076604827482987159327900306922940282531024237851322084384496988287996433081952242360912628240556506192165300930409563541338835976581829647505175528077730591596900962481362029048010497291178375377466121028100932542146971957237890562867876284367492368662747900251814530609768971655987696565308762427377081860069159819073530269629045553699368375855476248700636822119099007497676246658365856341881792830259085944717020978385335030864400169784534668394326693960622296550523598163812941673017520759236295633748242800733468756440494365651126029647870208765840962664239289904062965922223409444793367249655392480389655063658919242367036716935383200562108243018065637120941735425643749493661605477865982851907417758519005577841419267372831834522291369073891893818491950005904811312212158400939108033512768959052046576690956544425616324234747119322243195506196275279312657265353685516263283074341991325694880693772991258194080618074656608356566187572337742705659311253690863790330238587350320786829873144829322994201860395469847338853652268201364297238796595548307304436379307467439656644668674051623147699805694163139514603903506019189847244987687135189050555159777015195157070239022864471340531437869655377621470650942528660321866351378643937532090486116622070133388475747816898625919813416525158946604615244949197431272328169565245421302322610287540502009984432890676571969583071378226488497822634708875099651602823717428183841870243562186915374513442456989804873148252078921029219753818378747529157719840595860191194539619938030594430394795306073445828979954577952387634716476147025420881497671844489280537791261373259308045073019360189716540400957651828125392127781474563942517861028021930318527350765345801576005395713541770671077568288896608957098617641465865693130168372310439573614987273196392658346071697138731668332922596862832640925742043631013665133034881464769048512206564657700523028841919782428487015906594903586444098371083316885967145824274079894500973780635074485158539334252233196090504146214598572838221628933291251767665956735710676039975372613007741845184685714800731686623693774040925817133237068256616570839965505703276599423184995282576812282621784096865878240947754690793593883268089444851897404312247479284702409516826012305024256853335204444519624496429246279393955989717510772899640763511656423141612755096836487208255086039843137539155088913493718209643871399421616738523772355386140112841003710271368412204643309748507588460407559255767705793646997963307017982348591860127497743512371839187715400135923837260093576968374256480587669953262707447160283631180644073231964109966017304402937231137075807813819040048652800297855162043912642606265903469990679492546018599848991155637007465439584721125655039755334455590801973011392893224042964117525229422071439348386765567469656537267018196290793138935411224616659729328322670406988235872609499870401152015062800377143976463405379566271846954153993566703206846001319238300502354033006563375736113115801343232518170185934106430056443582792304966427754469393456412682310636587569032773811013169389769630856205533732614360922023666035581860539766612982288549939677771266110858514247113378861334458676531118131718420554637635834356765575522151186109502391229999212996140524067580170658719428368110836925169851472319619960086175872857767809688330812842656705644499888415431048123823099845871455399598179853532025752916921928622351156762022121466923791300892342583606793756035190600447030861314737532872303118532722340093879913956704213122144467711470538772043643766708303453492510106177337540832647197765477743890644125488312795987788013487981235960151605987650944214401259411988911825866337046731571574716754728758165122743404762855792397005999885744690979022316097973951436970061019176855505250497765523355876142084566987164900497972678396264676141893393447554474774014768648018148357853590586288426525269875599402643653959950836570843731955751312836043812048380082201580860805212128945416591415625206189756170142402917160516806590639203883392610981829071764656107758585898626961282180210744351168639977373293061442989704198514518895902468037735811806822355418901025733094961269716610396291722336371222520592991610100487370714349616028541231527240380416475539862790653706240291740219942458616173495554758536649767521025434203525213548575472453264642979705771811940953434395535660268493039450742144727390067685720940066211189260983754359779120566636684375033532374867867473836242775302152455632064793099626563426506932327413878438103638203536726369412803262967068333772603340074769951381089088086860672882248043986451675822900001524018789764158096474680557692735465823989690853712662721650581683092718820048562336393192679133892100060641193916359593161610067737394839093165530609133357943154078249665597529815692206954326597305023353295986084203577097004123350810464492212281804231255032680443334610859753111869105367053507707630741799401416598893009180358127020227465356202391964139092385017404741008761701554712330409183052822270797094844372620159112616936124709287400469867194254371705782471434989447665500309454456745332024935564571707756280553600026479172119983012407875236435558893276039782761644937959454676932353583279304161301873348587580102036788374629420918856303833996927960870625213177782182514669236216794294915625639358249608073520170449846236944982635473064449965721288797210102832784998433365882824766190832979332704094329758812304401419956429280476250461123027364450443058968081250518233740017514296955681263488917957933770897599538934614351546475868195291004162379740848687300862816403521359071903964095181669079473355198892653108451819928739407459281316548951910833723502280288566175529408362830632322896140447194402608629531044519218311606993572242185709015715627497707715448927759823568249763140336650955756938130371526562795149728155996803294294221433126975579088973037618902821209283914758226179105485179615879237998509605980210826940256157995436050064990801987064861474956957708121332833413966745991391747845130325199605023978681074033929078268825452223813016905729534745983041000497714604427931569425718618906978835085018059037759819778365304189202102183648020880514149781956769195385146993700975137642320994160052595383136110358798417326144604928129320227567829566406021651068972465380533990214135926942992361577939125205698523686152272196131564562741020636033333744727348852446571136442077681250059272323011985251726179207329422103389323024122840781114099692704565961388311492184522412948691551902459348692608717325474221229848543408216818407496297954291100418479453505591470415115240416464777127197370313221234762792333516389815702872989078558902068546682223074339342065714901182896168970678584965243283248819802812948177144753183814915283340050209934110175428431530095548163218083100758936396569369993674610491815396157121815599822348659518289068832228145376100200560053130881070455425751646355334071845786021900901157950151055845115630501014332364360225544112161360892980318465835809737445203608598099379469460646044489383542188351911832947359670288491165473765329369460988466027175400084120105751101543537313030165165494634644955555165128843887597572267418938343281848879569928619918599452917807600163482023503734540523074572342216097580058177849466803492638573382274827029473833242646379224797815200383141136351520871747542661460564992507817524416505664263826502039213982248975870527382626516509620697029999896576357228632318402822209097156152628794301344562206286719892677447026687806603279403353056398062440161381325982229823098458139792970445597448084681269997356459282192143403107374164891248852205908350097506236630814954869178379187419878553070406442062562225948910037410911241186954578165269493278679241461529565730857414062611952124915541058029560122222010749382297132293836483914240360631293609575112729331895330721743657052860209340680460051204533874249604922459635388285322126927093784167074418397347397619305484395332936531524200704675361492717299039204531313101862262769517964861685614391292682255266532538851284887356745408397222680463324252162112801201100428813675536768247938951228166878656992291336897425004998986852541952991778584928561154224092204660739863601582558020382756914488102968464960106965889634280984668928421877149656225551387934251866246278938874726518930519013377366099606239773524790986404355498069841318659897730695882510906068760204280784182124023129894784265039166695365833977570160366298898427964775686024781691144828990836925450037857268888830350348934494493311247415480214607270779614613002849403673325371608819441519081430096929173039623151968803652639451289898017088444626066021414129235881937477521692180186309042565791297352437011364544333701736623113248000920995149883311350013971812155041118161937820271224602827646659101103579452422194406882990478209408918672067898265920495915937918645151245728129984578251232633411614791698357016562791850622624136156104260911809414135479485320859627713237908970316584648556898915152779899356872036514567183150208659386159149118856552858211951680797069645429389090301059438340895856388603631230185825642308219699167155952482937973384839939433886485363738821364080739120334886181152312516015366710620940645913241422031281958666971987048615672751143927217330214391647133393842860288329156834277078321936188574652046102118080258251796731344636425222370910443866194642210185960884660225031836678668069313576879411747456733266828274712384106439128616083028286245692765802440343899106956143322108909150230630650953928283050283919728269361581170354592019647606719738274241679381126711199761608389250032006157831846314505894551516098494152725034085434486836001833662796022181172856447442239727920059992783061350768852139753696957225197929275223071567043118948084005891712496531907444298179513829576259394213980411309828353788698753990056760275233771180673569621502287771827893663076350806971564929083946535113927673142390999027915674078890301551214331120947038387065674326276108065766707312361473110676090142063854526052580293227945759897888242909777772898488635722009135659910929595588558023693337346796368400331571311918767998543790181065490694582254887916792539731986241070112140354429026078008569231210650472396020168862130857114276756899162393745725470494221531562134890977920591441223154238372105019211311396202336794147506691976083171010679922410853029208060574216977649417645021702062005836185003738273477563856692752091065374279918341336877760349015514793616339369339070271591239871975726850221309146752217613944732139776837020102832877661815299440974624394587592917880297553856585710329776590262827128100507893405965667160199784223809501534806656805244266759251194012765766963607808983451572213913510786674510592358463921741949084703714986554843697542467980064860516486215826581793803914692301377283493823731164998075020982758578247966939287996994371854763294000682394690930161591930400011875848517776029133885813225680224187851046317765692120746933950313601953910019958460708455966795988350222703948039524445892824133620255440794199336136609740286735882192708167474792365212814214010077235520399372376597547572454956881363067229211394544826620484388879689806425957214524265559218011155635830870526356671551734636516048582934818883990426941446877078154099150638006872728683819944316286571175739970944774531297868824565272418773433411447724703343647922637816304830855701812041061085115626248337719624428197947831760606973969268806047830647019844923285352758014741592301181978287023370508393539096718668210274060766126054062986414641250885896631840416065213599141296383785536940696923256153905484137538307900255378915511755267699071859814913883601488183643094685325654127473256276608316158466008806260889709950605178528392913234268397966241511470150023963577706598772872539581522522896911353951080713533609116231420877323679067047970235289297533091719989741616741140389137183266341902907886244416616353511376668981945426227517211924465107881803769508804935034672675673737104610935751461109815923326305620079813263200635645489891883156529683352817414725508351155417865865517888447376887468188309285161338608542494276993984678367203838721696255359784504024295378961870878861495261216366303031476497680690787148584263841509289806219826425691972494100636562497479328624016565466304189584374847478276755284969901511110139793395609427278418370183725620156863677658447465355789916974153824798670632905970922093431458751195721254533271642202514222454945804222943581540700895778670678051053183312013063218693888840404315698304687476681992360176863281156663974926929772108565045696242009436824790729244092509095512039457558807296466275132137848910978001974415061889853570544252084043179550529236806337044918197449517224709796119442671154468871662714225820916820290099488383952421189239830502406771122227097004733192733971699268262217255393428344196649765811461257323870961136521665318963006585518376815550415416624113693107954894190608792199523458577700030114477976548601078457017452491631222115342887370916598837288193297648045365665354508718336290820563595063212438968368199661956123802230368041099385823192757317637061943510362637680219719324639247579729891869980722587349093297722325857750710173096455925125636475157177793422406255269614108355198224168064450932188206880605696361436818654317713154738810697503952719567889796298770392732128335646344760578855434730228518996906374346467207193301537495318112815993370687088297943094591167224375985312422694194310878633634039114296039862172346360333483435915585721430224624005933573006858565620034971424744879863050292681749993116944113814705406613168942693681279675480028239238639587827042330326078465375199338768553812654625736004673837799501688662006415366922358807364949552273712848531200295107797794744737887188853734151705984880544646041638530932707737558395583430871437578785530784386212733961642458716648639271279364210187256606899169680450734387561160767740590717693450548711243502509699308411701914561178371484606602465303195947809899648310697170901764925505391681523176970339518142774893063300785169218103695765300899440701904063852802908492619888535899286037772713898672000877539133374641053670410453831832660487122952423753039475711415361301429343114290991812959927497737723990803426585509108110214368390380002889395714242091715884208171928115661856387963681053681478502060220211196788779204182125342692795853234307193521421961335866565661663008204835989282198154888160523477297200851057140122022439614495726719960156294231112197901039379314592150665612545400454177193337856768773016754638333115808344260820688745614501594722356966362613979269748675612286475871492245243885275087680415148300273436680374436599405832795047300330663469458112949847872939402468951233934950674977080947857490431990986528021768931832442798081389172561290854687657987420709375174485685023636550428413299899014415475159356570855312059704321100756105873897614153045534127496483432296151468571861397291170321045329723964178263716454547189637310071378331691757396104955315753418392708574136700671298381719349723595279897305095018788303830390298024525694360496873850494210831474773728487223384435129488181330856530105724371190234587319141481489486807589541720388457980538856884172965655873936355176870612225177615832050644526032744157022426859311167094099008359756438437752521299239801904002375982104609402014019881988285302754143926040516387856323708147408997304308977259859164341992334910741054509975553405366123493682102125342080385783913069162763619217667373991439378732972596419101402154265749122760054495787980998549535425456349459308275421089456824031003124274790003962409871084349968948745399724165855052761525786220704083492472008400481154671750890393692497214093840882642300124346709666679913650028198560014834518023787348598092766339720455218757338627477044472865051079257623860638008403383012015351680908478906676247884027816865366734004695538428368824371773275525966218777785987884660445413943730986816891092354348362475719561311546946537602544573227048486402663234004489891252885349352727612135650215767880275043827519865180078095159000842265080563712979492925776421389535182266137861266107026640358765912084374349579221666388501041122598965627274272731572425113797820915377933379102635008913899400303336732236687804677496430086162598749845626173048687825725049392803113036236124626957461658380670223822615618297879368949888718173441235792037495796438632852684285405159892458421766584837807023521016494030574159162152910590053940806946008614485247459785121525083975346715507816320722412973659984044195496226657886244123920880750580419121591610223889229328433742035561453832371821602737544006368807751761313132142428023110661994386421292713112269714091690228585311697204061772984210643065851245717413780808334912491655907113509219743719877142310399920341134988732243660758057391387648049797360251314838399183811543976962886610445008922907869966365111219696276695220741329666251707325236523937456538810514254408302030986167453373841391321346323152563310700938700363457700857694055087645231848094550657815658526672941136659571435228930456099487755565789071674805247061098208571795067257171587762511298049700370887365063513442064778044024819319812882878169659025634627757791906628494639089692534663988500935457630471612793216397811781401509597284313329414067603460983583406666345745628927420244665429870507208853502931575632574446259105651870567413502053650205764483459722937604035371115457171875255845748906415863160881482986359119333679317914172773536070162097460101173322194260867040926270515480999916102776378043719822725748262860548061937160986911326075315845855435926518410364815211246328157816428071557763300948237392324992833813469991177041538995419167876926782778805851691373805709752893746696126172266529144764091400569937983318210891596383201244161528043422879655521414199127666443217320843207732546306046051017064912894155002952819768238055050306287379693831145321441004088326834337030456124546485385016055908846263893255912401019238834040755871886371631621854130880774379942000280247019293761302661406171099540605240438219153792797901867006740768729236342637537724293525780612525970258864336602927609132829752663306577963196316276012256559944053507249690188454081813515668065250242476212000169667407309338718097835038273894188468045506419882972233262280509212578236729575072979497015086787528150472394003173257958556584950007974174329155130801989759956229610271685415472503940242522837065570388614686945983976708148573298126707882644337820786665300323838900949082321815750836325030422931015225188371991251760291825010786508656757696786455463853640765454182433334316295639828568244706939366502404239937376891526399143192302145522989461829104992869970238733490807106011226213987569883540025987701136522027741029670082463450086741806921333064913332345626546973746380435675071850435852359520371173522163890108414337041489873914924106977428684635140815607610410974509874340630911079240284069028654268493189675802024971250589215281904179003824267096253205285118822331506334909546005231964804547485612516443488204145614415450910592783325647655416497801840218762948736467358069932707958719751024216836134065759962790418183789162473828948763929515819358150893504414571320751229976737584217712376549085137058809445910161177908899725606608641131859127917758936715237085617230412299744150075783384945585671580755148576779673009999040676704570523253890514857750451281813350262503135768503621137161842013985756449354512238941154732067530441398997012286767519653668938279361372986108816682930834878054960733066466168139812359883815427161093291267883606370928431902088700808081439252319317050125611483848454864047641818880266049266238648967140311908150614478555719332256108531884710325978608791105652137244186098234159613852034894032113575275465230122588207690004388811180752600823899126011109598477556041632908909965782898210888274337645793386412139862033998277639720034057879610593066551903199170183115545189406430665348357542943197725480043104812596422212578208566489437327676120254106696783117488297894171121714440399745002635080024524859801268754811660448523377705404096857168763443383714360467065547605931308070494693050848995058673366836429200408723935102889006210384686906014310486342097597435785224945009805921000746461556366090440013777535637340543181923519258145073019372491018900727715958272382301534276120653300077674227443385863518037191229726707308378386643622362798251813181048718765792962905898969209036398492270453285953821576325769731299843725710073827422521150446056603627942319804952398878749872428075549006427575345068217420306027541114804834690009300467194880093726485344679529616298347434075480959212631175780937208343412600935428015539746565106291877720843522569528924200034183431950614228884397735904337666975856194902675079280474841109840646504117776520510031235144510983515573482547799698139298519608972558116299348088965582387487025197837225447150030543954526870829490679197655843253814700757113948045775948205809973839187993568349236238485222800722538916619858956294414278075800809181238626019011966001835935202755385317733920614607043713583919782221417137169160320736027639409756767798081207339066943126892856754293075617052311065520099957933589286464904826888416639260982914773551856063872346033436429450706266531178220581980339578299150950036748372110731284282014484578499913054737342935763566946176129915430412887933632989531768411457021414583297019657762566293256740213848261654450499900905396846890699161952458489072939375272186842282367523402045527294216822408023766288415479100122742198568863310942680624823272595333315878010034506616556564094617665463667804636139211778216187815901059772650569194254403648451483080667522778498489204787030175810238901797261229418868180494226315669886083215679889191086819620669285874107132665942242115381006597643213730787530264099950521172843228637862189654093664864450824321872291737400310559791518117469496434241584666210808996426177389622892287717106519691415767091978580507345063827767954271485737098858091194797540485991473247268377404863456542047453796657148451036289557296304857228050289027192453722252632268995974119852557509302372688522669021821762166445164176827226829117211575191930411370406520574760099486735117886011825727811494189629349777097629892145254210704800652703050673043526698056839498844332938055041487394542695263993840961855773378154311448774127184764634493561825845804638074335794610404712807504494449150623831129735553180866081913342329247086166106000124016224675040065050989627826188317453241597833931647439463017270810191652281268557230188879429382039739042521337172387869089518453982069805239111875228433766903411890202571350853126751467444181088574609457672343003887295971874590894913921231784756634716986568273281013831877849625296483003116521991447175696571387902379860293607298791309070467500189232272434065250092507381533904541047637366950403013596482631174705958331289279789067491903319076564315794727945256565988434986123510857321391194321500376347145047656863186717549753099742732285300421360960021757161489122167253391378433746100756366495454430783337331273063636312610852783908368856188068937202583453345069458206262058557869546444904737524867376459658971434213153927014697211853073165990363830006003373318610237562235886163979879009925223198798792897134767760419161570902042491660423061511485988958759636768797712413803601429791577159419740348434830773229213656052076156214029731672137007723452711046085973259454672023326421107609962601116008471877354626332585896571005556252021828499160577012027911018741368868881168044478106783435370121405487459743514137084810954291825246179566520411918671405223192230493779787561467330372943352944699517875291852041068908294139539145738471747899253194800537026165493207071062567794097230423293873675556644496129900986437880355725604169040256517931544385900944348904952198803330789061341385294247612076242945614479691261245692934157292982815270942112123304646152315099004622097021103182360584310172654000068223111639044043760388131384399463419510111425141988680079772440803760321906268092047032936616846897793194165388157758200299518552690153698617196194687045633322380441098360595817520016496423406644130356801371326808910965804862636659628781254581539707522237770593072015552282620494650630690358590980006212719696038874568655394857795783398760899754100718506314914097632761147549016312744734890616257345284344714877406697478671352745978037716217976548081807784509550490301818801858252273162552688780771338615645607381528755992544332212853049705975807287942196271471810137217635462247185966138238670545992037642228572205103396895539277322025716610462507140671464073717944249848351755137088758465092902052055922381321315821086783097425987936803142842572540719539422101950452527832807079956313933283076153914234145081749211430731534364597485257516430551620548922960182843116598600064539210311435402762646030326265503149094534393345510151033175077854329090274630029677485897301716584614679755868975131877031140123822310029888333326578885149094212718940479534297097200489708642277524603801893959211579221341557179151344347669474378694154341859108746466864882607180200382518381093239132073229095155226992694159142207865870859314139147571929025465087658739833772833285818857870233426720949015877418450740653612042329138266024239720062585635643742694124532127078419871858085696396303508001597036719471583796214911502946833848410853523189617368006007682394030828181750076186126093789098294153304264186126893433903400660250557556926245498047477089586918070627752005847294396429603460883559606707153747812080278849764875709257519768900415769680191645231322606115458087642935905707584314247467945342368517759593582092389815536162138734683935399076617269121865398835081078857249995329651955462473712827986209447139555288498222060638426118826140368038384413748987697743277303400574464853236175309045273644729090645747165854000043744529018074211936812268130909697326185572275034030646951825617632680026182923108110179891608532386476691981543371516956760769288871250804822751350521853609105353554428228011329394744870517361907234072833044977098932170748271605884063851671005525951911901482237732703123979718523426499427595823855453863164426071797921215795269328965044461790632072888645954754422126281367021264839219035209499356071676405174933264417526646543474958435785323369078931352216427412354402976603520827816977818131215312011489430924479172699115936287314607328091124809847072353650383455274557665814932137267954973269190536506328658459038989087891695233608355520108622575130284250821135263775200610650308342876180257841326209124128797928394130500983060576679143271266825045072548493350313599600685036175510270202008681592861464738241546983671944563905819491121409872897385361914891200500504846163560794656529030960243963669727172198312420847966822039660294131778517166622084216133151727786077511089670041389322454188781477731824708323346306926172133179351947074435340745230867919255873800752245561750955362170081786299621276563977306891653300202436385586928892282049549869365685903667853044505478212708261632649561800398969352420731034864293741034122547259774111319926132696880055581674606055183768381973841428852281798945800588125006745588814997371840105352261221917158438288101463599136225832750731803568827707126348109939288442324211512231076380954391749287284476584615443044747065769204871982981084089847422139113603878850246977469904396579075745800502369463146728200722568060828539129198380190377532507813439865655185942778940808048030694188820186209456680681411855692282597795854754627767049679334690931858994297212597918683591719389036762012097531578332890697651800197376594517717568212116043676091708115866221119625627565510788839266754763802426458233751921416104630479704567833875836743966621985930693937083581330260156377169844649133047454641621395758520629288061598208709559616274458715831266338711311842534112086692295346491685371646024085230015104638011609939769088275498196638864096459026716086178307205237135273783614510077628585792736771202329859423086431931743512476703468718217724971663440526846681119054893349019104332116392398904079639468892762681655773583629512706916049943362400929072632459566575223591734015644094096001224048319449480779230400796488441585992693420460940650676537746007108005345706516334727073724069111642673828652009716810617829092427067964126114651260644904715335180672114163577527216508781359163297587586511362142503442089493527656379773546042715661774020216586794087030782854387173531274960061923676146224581714384666862836307548602161854726130844675860267228050978675851509265248603420940294005118794738485946382470664551643661853860469499640742897264130539801351559698920703011914702127061948354954139135715872117580560008347704983539610337803342352921712036432520873118048662487833210497429185765305355590999168224343338644700542942956860079878191592724708391405970839449806204095954613844699427329300760522574041744963775680073762139464399157719311297388178024053577186172416471791429468990391524753062849393603330923645679999794844823732478820969570528363858287875436347615875116306155660904635929484358201039121025541444478404845013655420878647440016619340257167812654534156127364263098032883848542164668414253329332052425341482424010405625453214222704380723138748240208674036601676376249934418921550942709632305561428123803634125205723823229757243414275264835551753129486626318965672681186828575197380493904698546239408908042141967280545286476899210168367972254922937912701502341122199898322161532911833034630519754332940554419035496318665760438312332276994931691819893235886317221084368525295226365770357977343035222179560028406273361593557479894819478059621028382929511646534284110042334257538596376123241806940192020831836682396963348222533662045180245341303524037454316048325465700581593806625186225105033977966883678851332280897938323248039911218987400758780283127781153010509280653842891066868545991156170897036341487126945764525989776817608151825373345210354512136296468308843234850155286036591720747575998018931922498878422487988743817503758872158358769250112691071478348837685666148169768501768861704191547609851001420462088977502426531011444181384942914203941651902599484545753430233778958865286644691327621627659134639359377776134473091297796084718339034274848084581646448412395177118558395255756925148567092763152472064926795783720274080578229138690256055037282871258115177033894014921758301549454476999002044248056599246498274464333013034438270631329956073819554868938273217053748461632734172220580655347887694008952528097442640202877301850156633472194751308606220829258855648611742216804264272998225967837111475303893623923076515882336999690903607214779978378665293130479461152042228123528920544146745002404100056922744469392339789901600650556726332339683169228699107713706185091724059031552013017469628603642755609814972452210957927183020922091550674143884876172675821669003393026380789356763413010244659383916695253021442360517886795209412369868956341425499459838841279709134485730701612581857348890724879962260997624651559094394638370320391537681373116963267300004874590981807203355451736988370606928622801889608284590116230989865008554166015397426261361099085500956799758042468935481623236214052317091615173172740519443956154379492172610439436059102135929949278610405027344882415100712441098919116121463884182997452243076709227283149989612842771006659049550412181661474766066119741004731161631460169790864523535828549068115930682961263192258282581709202556009578303100805343930631599309829569955658492863957033816969404840330909241023015236267287568303205888011190006685869154704054809623647342741937864087808518882930674272603276701370362706613851006205040532447463230702891920953159145570793134226196999473682901542530552387973813679714257131078444405624596674215076264093172110197838105807205742914554595408629861131914871662123902962765592933212898931621220512665718103006419717227279251836202097528488344252713651271260880860421391497309878604497429957872551510119041614364041609386748689094767347616052998654264014889546789264274286951588074117305004812904702276962435765323132675836493921862456803538299655209114774484890226050085304098497062873260173925047609373801312236518028395790801943298589262386667051049574037259060942148141861998958923591431599022102569995180084300583587852952094752132616351386913640420514899133477464166310730915720113003111056356734402002409163141748967992964269727341584897498406753556217784038739687586734153636901029636400540224594796829853712329535508657113380759334621940725532267113251366802480381158068155356309667208876033331883512745701762303357791073300955156863865196185142382451422482299976269096588380626756956860845696991698779548943702263520468283770502648594512497266892858013291773681729057638860629959531207133949439102314360402852501801410222719014970937593214533834692229391250051649589272000171027103715065178762741173781849054818603927096775130532237351069711796411785479047773487708385751748447687665317424789196608949681705809615018075075249075315360966575797720348328192770727906550765337500821424712369900316709065294830180465181930370179408767509407960335903320869210385646613162184872173699392534580014208788219065410251559354197717144870027330415011958414965017580479764987572692355587169859942575478286647998518285535588869038955764555887214860173574512361169648414634722680842437995685457086590782819462897195884209841756828628329449197429492417009276449009836857189949560862308313350433932942914252800752373023828742463496442925633539673612079020565338920105200875956444311438121067975445350346931518306905312552342131931403137288483427706143920461096933511749155071870382171343551381711718317196195079754190413617167851234407158789953511569654609793033898330157407165404761652531495613042911221804713958461266350331165592421488704332354541170045691194493615278766028962077799667745466674985580099420778247367510937983754509961386506088072755430288536285978669962206309544731767243366510979902521241927181201648408861734144458575317330003439623148652963024154224750339665008177850238976580996257949000231473738285753929208694310268064748417657338942279792017687943006484732227588738925859176716811032646205329497699460715844465678271565780898126193532937366124171278297749765063510361970808596495992219257661907864278437226762454612050318197345053972092988952888749643564112095642953258469647941489080573037791791451562578173884918294931993899630324031324054797894005452628824381369461917390092916469282134492385680412688753115260523107470788260228893083901702279297154545110955829482348749657681813664944333718975243434506024436562708304390651312517030826773911003159522450455389850483547611820016904215085957439065296930243626820525959391152586288415098228742268206183014252513212282420731465586759887565249507854762271889617202194335677010440159102255512360781255713161407044508952398737048806071769825083162669334767144559574388994146271238733183335916434449317957510480606689404969750810530472413826339799461913716263850498683960661945998704254004872930717853240050694131218843281540363086670374331015575516055997906234363962763098624112452611776197872236729233200761964025212552924779645741078587951709848686314528572462267375460250535408566493152453042147727716362319127011178430168547339547610319592391515276796766878535181767633595248601632021297865417179521155355929278769839769580480849255140003826030437290113692932270020215304931876483233760282418402146332889858488416568173579721399121195607237626773659298074652224858298279136770098301683428893915594993922843923603028718683351084764490743745988995947673262116030322320319278017869934001881684927138619862389436777069128384346351361556136548875639535869589128520733037168018033413131020359293126774589171931916738393527389502771148364508757671705226575637670737566277153001530038341207789506754660799787860715303957457798278783621821860548471180469426219240324304891297262855081709889187124884165209697614572108567643446538290417999343195319842778765112836656398403761497380276726325507103409181601312677440507194471422054297197221554069614443419591272809058877943145935252572906143107898654476062015426739658372933329917783414359850923378346303126404021510073825783215119697278278743795338835839082216600431488166952223222076158833683722398786365135322427224971503769569086479541695872471450222305084626716840981897206866838293832008934064324088858826475058056804891340584588501456697809733492790442203169999368765617300818734021656299483253647780849196990496064248455541809177481082833666564083779084131549299830122911980847170869665338791815503852968796172652227847938406344660982012632066934259504057804279407076401428351941915287822616947095426160208657078308574240769074278851876988867866216830034889874188604513796888773017065861544511932964142177589643513827000646990197591750663015467644787554954639846127479478836781629382747994417721344110623809618157063863891256752861736463962211458081866844331235756752047401783435960926166045034133343731664368341507236877737627356576630557863512287254569878240601028903370223900601284766679125345555760061232249531463515789946842929500801593519878219842369924616492988819014146897428325935164275698253810399121032823388337138932293248803676297238253070721166691239091193528527121324641135128976716460543890202800126107093164062729540869721993128951448800134042450554855318074217126344310920138142340232974540133314498732819965923148386014067987505422500815301992080513504964121386780117558288580332086036714462405853102562875167721647657533077715614830523892990321260942181114887431646418813345639450568566944599272671685251995092780005725281026829522496981678793152840358949291693185327353262070095985255089449797948032060468400837847236574823272040804888349943939171438311476674330204407248544198092945744589251932704644125443253705204534476611774017433097025805114730490535703926987844784469209649533648656440913065427295634934651317663214502821301582643975595361378960664738776532431139752344211755934101022757928682054909369596806562200937337411942981308795810687242073233229346863765057963979097380275519681030270106563020170777657451548174602508545284936807284112854413175574010047349215698299274788592095456253940248023677355931830960531245605659051309930428672035709284920117401532851478600007391994383006116426507057472648134181389507610934953734855544316282985186257807815644532163791113352312799048161808899011087083299972222277226900557598626806147970474859798317225889795452114217420678030611514337680334488179257808905509078846899936639610039457782944042360073853057934321435074511597591291838865432925212526285166270115542185096758667729995779292528724478592739347994186641440740620932466598515723756636821621452068771732887907771404484879389395557846532763282413519566607697198251164283043838672334870939443717994788112901465575563942633016838213519974909026749046550378726271932400368761117552919535573244574925661898802704953066802220140235449105900239083933261763389983588449525794259685137489384480195269384005405307345863452794522645172407985439766607963926999017883998017716022752838992491548388177558586952173443421399786495197056381847395561232565235405486437104234993271559322834507068285734171303680254492661547804842392923999401848067679329537835055313934567563365128909856841628478431637165899733063871076526761327483712341629848459852724942521380187083145384256619720943870001004459202808944726810703642548993151969332316793661497031259563763036344711136312933612912161781922673187452294377956826934342070258215063075419772016832288135673050643265444469698323541231244038573775789783568255434803887194690533371345517193409344848296362352852416060270860577546879175338519886879552654118286314226480122547103244001311362707326144983499878461585238743512116402033120896113250750279129762608479905978990013924696009313838432094188004588442872369409676829720654745134486318335681983495134080763682092080675188029187025153597440630760523814801041235802400053671837652663724722289061304864285029029099124562426053886672817856868986989988558230989196467757908059460497343813007821643584871951950741435526591904399762768474410498352428023944860321880334953910127466071089488256770995307007545791109394015439716756462922962792105260078605792839155138235772232585599277764105722106065592920505977841525950754271759280362558225292714339862429006354077044553261964632380294607268844499626693947929963330605494752330107528768729273595439116690456609362115902946473924627044237614752805114543610156644754091733516887844387251512258056858584889102080587542794660778103198520298935105935216335461209438664273600067357181697166279818002269686244623282470624038280078164407809367187810440772758268529395283119575962968909254010060497112977515181956557934213081187565047045359196377166262751366444770576125945161185722701811977230406990915245298681370108605472933807029994839226981848486552705089848970354914962943193927061721679008392786099690198650621865040046277556078450669646364633039118453984983755193272577607725912347314133162345424864085055770751904733311739286663603667728689618637019645141748802149924809762322694731049676392603636349213653377854104387797774216170632237681904284257112024868967657223908199708109367736427336970279906402819537732109697493122633715965567610222988622921112459096703140129828119107994622313363236300969859761264971294615026742233045142353570603722837263738397865942811396673915967660743192450063086898750044351455189595446117381436816889156730116788893451809839694392544443446117517106522108741995942817992416891432386960734152244386343869112677018044204197524273061208118374709124074726556654927023959044938052262256143043687658907036903170241834863785972721655583287786653531949250302275909494677203555490453647282978663411765105630725586478599042802272533196803569315797573349735712730590390202410737295024464187364313117073293256220072722692041171183582470750072128018608715333614562808015468930484761509979737759257706454747165352679436301739730518163176419528332201253643661445434393808155869289538159619883174271967274985776550131462329739055417006866076028395554740894271888628802388604481352938328891958310969623560849500928602915241068419840691327066973464823227141561333928366357428301168327338126231123775149785477589928975822641078444962441625525597925644914025082899551041612270906921796050831157122419738605837833119120055925227595723012470621422803422087525309135025678098145253703694894916810607947819387513493944203229394150808100323811706221572931478039310535023845734912526007016500025043440244596123859664401304478913918820136788766581700386005667726180337593021881054833606747870272178449865903227403631332159666037083418024657847455828370730464637876913057977498356796283012878085577879475804407889225448691169031510982751226243249429271986373487970849649404683076850820318418009964417703669028577125756946505871070609338849607429339526644173816489584209735759991166283239377542094569883141594017938054447756778564361796935061256902859572488761360740742811020954741818459526407637492924201914639460759947962997419693843623015539159892233634038425278220555280870674353597720720545539606394185465655658264132552687037178372034436588103136786286764964628169311529582991681888841782178696409146036551249190334390398690063531944509038311971302702393278781992478263165870759008437685157417574806258246316277789271854522840317091038208312563325466305136204227818245513070657612990938695272739477716918990967923806554463338493768436615725262440557090390912644996538545196040122194355455231316028692363045580794596996028620079663804746271859983284556093773662754857234329526040131115737912161464547629384344430863113052443287581237177667611300713555018149728173008920089576112308266311464290725126383770675708557269820463740253262740677907852215790493728576270421504381732528236642981836838404736494627181433243749627808280215403853727748317425129826238294763257574522535425547565942579868149231624508197599533896684847362646575144110717778248052477105079086116325531921592595429943171422305357575769216195812884278736801796034861913141248586164125542792332164318761518204444970497107649932969523112326019795185603141254491318245915231812360352241536130849020606313550894738892796187482032506648124145310515738197712276465910349357093722960037768634682513141605787412236446964116120196763891633141057192975867940156191842117874377980104923799136723002353895553147297999289400046363245521366915447449533007700773833402173690957419020309841121981657467146950374189725469149266404767095344257015250755452871178369492777971484680010818340629962967948461085239960974704989912513546417114645357431131967340194152800235730016124425993002734828279475103070478651094246264570522221264902243772963920298313114869097212952907181198726250558741692592998150001402535506635667907654104215225322582938748466149851342758363260150528656936040969956492201512818869813388184651845550374113579158398389164484335424660815584217573230675864479550847734379894893181827857657459765569360215134274062320880926379959756122398931340991852991590672994729436998942414045404371917401575964595550359003097930942128816339747303515186622648299158945065227867832217605613022693097960447123544470097572457642933527156462638891694087383738016201627286323608715607898139578596978588732638569442033557084107790613959037055966465815416522122144838687889312061575880728126920917891454483329371057922941746217652632761791644889536960054529392116167623302379740235677961156508742622821767924934891917947684586594704631534274252276835332695746250401933434983463043004133298925424654162559271102742647132657472723044912233639747698022383972144994263839991888673664425950646054952139768484747897258410702411831161257665304306167133018310319148379512138195249858023557624030484828594064817421382193412184559075867875190319609037397875722225958460017571263259002861847493403124812150690325224476118816056178766824477539447122749061667581778541374310250913795935042465854314830563255354895267655730657896726090336629015422474360753276220798136109157364639883330444331804283172059550438311760332995859465699496323392918643732218165896117265644039603559873410205069911460215870281571397839754511914280832061597698381082319728988542452345696701366754620560339385138598100002664958234222170831697489337354512784424385119747629082770124397506713693696738318284895885294935715477791766253020632566495345929624946134748276245754135104673542585339676482538947025742353964882552057824803373556636589016995435080486055657615764579828596722642835755210564827888504501278504024863119432775271102666945093342444771617984742234809266149377334966002042933422022487327755374817922310208748457996918134671795545910626413245983626146790302318218787627924658672213938708673354025615193873741893332849070505930432800838078581138051075174637839268677380349284272728264175700949140074080904227437814736430686575479880553461459714146684594825932495315655374197252358152088064440912063870882280455456198901300330975276959088565407567863810424425745705883779084959479945664028644376473478088475962845796737797804368851149601538921780510500102830350440350876263947055489495249783900673921145273904312264106734855958669808399040514312878833982679381152965657298222442359689831468033779280009152373346902420615868882243935207619655896051031539895369703033193066072622180115459732349499584997592367217072303519247172639810670067773275958065386869119304856637980381117036643490736284433553248586925064084578261865826919872147262428370986875659437646770575767152785725319215465073815271374713378758743140738509771642118966289068637889128322529002936241852885697992091653304152976462635743030452731464854324625071726360303944422525060013448269081077328312129567623941738535480907910147561274845343309782212331298422980746529026866662501757507644558016473617448223120690757229697075094224768358213780532347725101047561794280431430845501731027232481121759824373384969687735270994089883570433130977495546017677818372028172985752908258694697221762188341336941893405573403648241743563103849525540874256872316982492933965253808813741585689959586195877031840542870237330603050488957414034159084129670619091802501765719300477051028360778987446835599474563357195249001790256855506007731513341030059467460352685151987199118372683024157660400810838154888791125222024368963950488698069888630074594251842262764629329453618055695910820463127378613286976577073739279815408666122824936534766918081549355306834069452328357277110446512503272009663270988846309359679167736176469211719673542617235171244759985801674687264258093287387099314947640415435469946738718370285554068784116684971152410405584023652297155116874513133440167951023657731319616001031366221288016146215816328495181104562205104018949635847738067248468736918103010676640180809701594095687901087964137564471905526987273212955374222426961076569603688486972831001951052147989413562647536556243091269363170795450137826249847528081662312646027146306999612270147872971080891430065469141077024572877496677802905030610631299818967055664764780607794004665362466627256170009391568470461841507786258071288133461029105087383988105160544221198364220802479088570548012252074979459114282485680353111480283207878219530542662559608842224366273005662886821434701081465685271898546612626919157893670802274429598968530211998367528086990996697882697670980871286688299190163132986789281669054523294229229477763563308761846535739960401381986089627064400325681908925730719941926935265548863150321685296502906471105127109534942935091948685422243002558471093833394544841834699377533687985651717618020412640499186250808441940351065041059750562942765391385084179356074594116542665422257972214216352608422846548492302284696112189455549494131366818991120161455662846441152396015247086090612270375609657116092109439837365263417042291996870283116796420756910652834971533783034894176270267649688856101163944047047737019832378065612422088874353883156088929823102665079333182601681864926657112911459206127313797061745222860763122824165908480563039431747504677939377254971009224771523902418970614587135483328719871914113025078956252469366172430582637447463540811062412169011907894227783625216836048991313509686031550156537104776172251231359685938331004319950697327958428207973930035479815219168158387166832431530988762796127837257176104968746736875761530783888827492296987971683729174598523474525440814070150288085193798340494873657576080579255262960523657706978144459494436916722604389707161056700874120522318169582465634173514818439607189331989887904034951421817075755729719357449929334395589479005703794594914478611611718532679675813040553894979530271740637123103031022730422241834531893102957159514129338599791368735053709680781534531151357257957362388514738760707752780173568686469997736003690739342209480766942765204169226134565418769382227525987913995175334689626214725406703250466968732755108508913823266275714013521436431555365381752440598587230197771341851714895828389482531177708691959639520825811622429690515345189571661689456343348800520501886923564495002574761644180058014532554837622755596658202072110945524346484816169180593002106011487015399629025279893001958045617974832667171065884037727203322788964131149157877804334427981510760758922603706536083097198958050690015356510151128570222496809118916146459385943869233842182756018868452249188213555581860559888472580187108464730493130880734007839379058121392903426577350753107165523782792102996467823605242625037799574570104051636460880967984363148785434258757121073248310764637982815218330072025140778369556009186321115521170462272698307325326339182897162980714739588777958306756232900688042072235272290134484872814803178689192622259403577328261229288312209167520302771915105007402620687798756574697277544272953107049706192205124839835524835979080379012774131087909214906756878573928632302697592822408396107898913754428463043826927748279225632858739119622349537473486038035473091741917372100221001149691276276224726185733853951766885371357039298165709350381557621415572713157589097580143674024914825238278374504283612753658697996000258271280859463556533570858407024421240294192223096878853478819445524291104167547891161144868441203569972883878561581104024816306617797187144878688097559798905446038893610855320979284051700035401809650222163695373016704087484355872788990000345651852112395924744679120854892400072643121785643326349585550220916749105487881217332031365316070859771727582976087455246641031336765613978764561567212681935982985302579020035835421455469720301740509411579289197737304999254788794509905792217849736151569543044129980049621666473207168529646928297923387790778706171113840105603575471405736658343517089628738394593919600012479950008739035510119208647730304079940850573759005406383850755294830840343693452042640786031538058879739376017105156131525699164956467015344317491609732168040943534272313923538033884490474199272342186791946965702316647647421807917161864653609264742402852708638899360695761043164772793104640129580390336778849336203699050667000829441648984715632829481934052964043663789620836480551066275424074629243340902146451502095722804909970889759073776946376177158487496701900326595351707802937509602193158041427744016573813975798068045165120943722206091249795607966111423199929221367636276120009160573834200066163002908435297090142031023461044421090131819395520944307535925435670337269786142759254283078919810743578580454009985588489781608745974069874560313707593702209799958364619312830668128087894535422575013308200221892767460339787756830999051415071940358209102027575589862666356680987735443925787765021985988960762412673960998290048152372527522070470186675724759045838554306944208666360670468078274785838118458293448649668326469416082366717893314967662995695952656382624719048610180056178014420811735260561270309742952672436718057596275074614897899876777685235074972250273641892710347642271442452786136970999717600869796354232048032130197372782276957970763290434224136365407669687596456607657769003089807802403357697172279465795600077176103954973900056973543952219933546862408886972651625035784229978411815710756128913356951838608992027764141359901441159636309354977922867778982428645353715761181840018909989674058025791498748198841832623758675766034239055689016037370526743165102596292736262307036302136585013749835704427286208179893671730046771467859695508888201760446217023410050794399491467131875167458493721143313179328212956018951388983504118014415420767698131414696188602823317763676435253523402107443119466633675555899138139993314275159270177385316825020773552836026528471484462856338813279057450258351069525031985571261719822039295756072418773081928902896823368229213440247161781757640205742143126284584101160774962436996708608322989706439043360313258070247219840353244127793518610613109148231548544386735001657440541133671819352512135814137500124747392827885065251810580334646953782692600128090396703543316586839455250891595171328177405002775958672361479960544714233720733380806641706888416489479924334090838479984862217536555198646275031216851608873291574953501026538798478003037661645856150972524354013995395846190019154558831992774926430651014195088180466624396155101694735905602794144909859289987561560395518676702217144748986424183131164852288518840144119434788707526570026876586990790393142923034254407867074597070942908608616576582805114332505415468504707625468964793295661393653998366693097942162400960240075842285105966194559473985610115024839053110951999110600114108034945541574161882208904920016909321793261311549981294829251969334045317195381659714344123504987144095912128505199774471577374206856937291009969383272259767117288350694810424477572374530072642341225885777516590571677608206218124783424952934137477362496031006799499737572571881033383712614649251762793893248696794948273197711873182240614526296585240024734465169310185610082801964146766573729009275456035520262307353145989874305531389842778157067183011347214241236924747808200598182111498939553675971605441826810439871607266655473010544923066760551297134936263599855782737925528407417994053085881775720047481578535271768097126652676730367141398146874253628249226036219824611413463404135646515106710860423957035547874434147418314276089528621076323498958350453772826764205592616109478297840605094316880329260293312214311321766473716144929044519337078028396743982776524612472011885072488027488380599276246324328491193715512940290075761139110082913757302921153223367859476892321448076030242604703119233064780798485679076228801997499332080155420965344413826867756808278181283378095281493440931371877074354492000549437504442938584176993734323359759271470864599543786749882437077937863090164414051649682220987437780030247241888932063296643039290867178384555742469777803045637465945757630337866442989407371843058466455418201514489103476050204448479241737009962226581640378749110730333429491099589497676453238792379056848439974434621715140538151398835826325592880073872271690419059060717777065949363311063131064546219360533123681870682009911041943351761072514551761995472775173176461466006610952278387477556319018275398730698757863439367904274364211326674536985890603284487404007618682351579553163911670376831801214677368228044060085024007995781309701241509406939037265674886496023987367003004026592757225840041190923742617555797046339688053663129342386558967036942942813061758830630193084114048796295988540937255635176525519875985810649016915206165792755449416244158006673033493185157020975499166179442399658061549048167183226460436105922752274800983829531328448139582241149852958712843658444817066723581251336445581421444880343554427975903221925473454876699876300321728835304251980389157069956086366807817138924070502432119490015413825046986074833444128632178534794315315299625836074835408033536669222485357813691554033405934488860821685695607929200233286723788263785113939770823918175584277955160232552361396139678273789335102051880122919205226650123388153104066832724845242988935277441221485613668892347128711364609979623607525133780757585708244419567965796410220568118938783743530974884806149166839138344562799250946092634101146460150979456500061002107980402790385425987340961854108300291859378354095000820684805630866831170833089258569302265457988756603505644445147081015286874597189759902451569483469018586652879142100139025317327349191843894875059911647394506201515989875219667321772229086954779997596342037038272922803068015779911163434766100149286189292286962621827310108259432231238319970866241940326765745521743139294287270652246240702872275295367529050337044055719047411459450693611165223268484415692345788788825159549554105729074603813289837725391086244133608832053582896050110514071965159648146842622195583143815611269281656076916666563720577924438371698352894045738179276153940385902241333096384772944609100084905346673224147055872248972121096308140561818198943223765100980740704797211213389828714197056613959550350457698418161382388268224393516882021788627658688713146928302060297062065806359656219584496279814562729086329668820546053504506694056193699431264873573104921610238189075650634609600925867436131319295132909886331769214216459830472041989809437749670327398561548556313416190160802838663500045622029368941233157747123087213096596749723320502364462751528975200784769705534933685457745593155181617494671247202369534731895952284713665785517371219658271931306559321460876461860155242369633939498833733688596216377180432845579445639099852773205591360712384770518297758406877516600450732043904220566412750111285271955403116908750517005256022403924062238441120046960092575226694738073465284841036451940960014441314691043018787818986102951043155999075793537786738007779507650170242066226141870812046868234686712064755466404117449821084359395833131092395030739087972469722832972237958047235786613696662457190145908617183048404088023793452682442469950743683775257551067542926127294611241511356833094553436698557686012589130665616162484325718827843614941917551222756068582854801648234534768221770678296717041995933016790393853590219640573797428230432636782410658462065491437088877313667691276321879494332750085206466351133743645876275040052429383704128475547525690080761608911754168129903223201881683304193447583930806975466610611346338259951304534536255814582982980410519913529240163919436211291276174950641423436672245834746304802653442036939543581132339191051712964024756103142820269649265154375598800275227853637339166058066421300872780673196741791126517489626020718090887159342024117337538211165350156118191159728054117884732966349835488616867498634805070712395427545478754610814366993513442273646746941531820548705348907832620538025932453936911608436829777218017809215088116851906083742676798284869421106122565183947857232546256452638810717970327957619703042698588866231590024642792078337487168227370081491683958503658742293255579188856263373021536916640167818263973512214616596804663587839837563331594754483138001896966329141768628419374219286188913298289563184222261013606199606384273142785829472448979650636891367315982174731996661503135484185637685858821145662803451700965460839560536308785771269723663424824908087658223147582405365007383506493184686097865099307282183187215726229995350795369809124585377606050111801768656263059118850275006739126833982759651118936785250681890473075790301517853527031817263543941861752228443221046922599066830114869477150794012490414321551218399485586787182243115764397549840846128912748609350555823957024245892130179765792598824036245528554191015449781781820523753228213583913868332429228338614690708949203280243672463543763899283126494103789876273096678306536287476114385277771033039735397377715100902066462862634499802852009354697765933325387731138232614687325604332563813361226131819516714820386464732838696178496162589832586088148037265326852927944506121897419775734573553744558898320327178639940438918555580099011660000047105072262987758860692877955485151534911757536137889169965202392827114372094214071039367347000559250050720766148412273643580667294827419315081883387665998444991442192511195036259470877115693925365643560208721886151196422141668228817567885507472465056038291254886556212522219754180527174250429091721748379015951538613613594561608137380142060230227815709908730970128752457501782163629917645656788408306450903845862780789014844846376331391836465961876634268051969178530701495840507787461373983228681468489995797673194711661593025433801659170326778199670969157603897628950676113361925605441779155724898074465971314285421651167293024766651618226317916956169791075452512920143242939596142819734238493229108100139843417095837791393225443140724360048746711485069198915031323357419839971037985198755882662911947162655983610801681612955656459362888813068533138275051386147572934861805428750954742016462110011548647678301200959871853229122230039733870011550332225908986735023816077737397408104174989733877483719180129613992374368518647752948979202906321406043065191653073746127269401034655895963327257781101142584281123466824412172404702251407791818731104588553715981728006837016116883620226112808856831628330748556781016635997729354901744287746067381585297039439710359053504686212148391327743965562364309607648532027150352204196483025163140962875386175590743878459482198441243083231060550562184469412215685514728121464212977573102640541444314597167607994754035049472225172468637149888237476565810045791159425220205678282147315564208450605001835227022607021315611919166928169393107622931176623316802058269062241375527861078724455244561694594551468638350885482328844314283211517872625025483386409182234926601186485209667383044374561592826490136033227734426066045417808057685884409641097188490520439757900059571576734347589923111387684051634301409260790377053919983546745453040216633748342741778334354018536564668955832512844884797555501142707211340487896439709933137364285154127537911179351205986921516720471883998185377043613097997309540631726275991025275640164819520013293690174946619508880766173625754944942366944395001454479743319788733134944024946281807651973824972738780472060163712636096046996783053745315580347155243689674646223479232343546448566791103559328179756812126141886482129029556241241172707582408860383279324245711221126329394155964692941931590257820039899606989086371146699953369498244815361195124896612676894818273669792752979990254428020634534331993456323899461372306770989865863346446250582543938056010898812738707878838416938115436668587256654099552471927749236943027350687912727024570736586912775278593967114475401240832616406837676533604430205784845441106678249407967766304554041717033615680663781553620460588513477635349716655389458897847090301508527629730006626022544309601378934419138024060150623378909456640173979087256460301177107532059379488619993408957052444775801485991386019461567459266730086455336187069749599011523776364145841118371276523736441050098049324558537010634755798994485604852808171796129105511419310602019962510313628472560179013620298879727018912802348876478961668199155537573255092989102698738553295084138093871599268587470883051214289696900575098159206363022418492494632934704906118746435687018802615516814530858322791612685546717115568023955659581734906747751897775837986384645414148751890237509562679423717601811804164421951503624969741376044376691647381614705526847325240187515326564084621639020587674362156098346584502368721724343857468141414378881054102984917646932728637072826158340292667583958504667532180207563630933978068905936079751491119796107302371117720292465208066478324258445402933954174586862422054076688799696408345937483148171357519444788809457304540314387502666437045326610840779533908195970577802092743767254769408903925422149812132784042323273379064835164214970601438010532266753728671188913268833350640306557714511215653901447356447434469340384610655787387089653584612291722044297867902136806264966321042453190919116505127117479137193622931592743345928987134620119002540829239084020993615221138963889916031103685095846728249998297899059659313521621110798572199935702714676273303341091995971198775445806495902048549664080984464268076206610284542340458654528497179927908835545836250527912986083510129102291319407744876900260905374638457449110338421871858287657485305478569903524337185458217811745943128706172943959970046221909918970561577966598764811492267686841007529732972145849005754002495164630515718059550651777182360430816409122552831531540814887824634153120023302695921060445188207263064618960920567481604377758008788399885417447509456170771877481329725918125673497793913512266176411058157682918605637376108059538317809295813078598975941356615771141452607379738032045394766213375107425726029159568375476775606292795552932724658947767599252187059532664418436683837108149486398020806992671754796056496608107160327633934719502993736326154384559240809513059598724992100842290448787346616112199775631163427351850549748508829919331824266133028670095681422727803737247042992535509262481896664408630489132789809521912558074338441250386902236792251032447451071071981481735296186677017159155763581782483899443705790337665077734714786389200461873494214240453823049906193522670166317088509953313136095535783087080799300066971311920279753316927117954784552481119868293035515998643876157805091271602974731828692205603657919511426871814352569799606932392306084683718445679918576151763490848324791322753067284265060628697261054137749910604855024381350075756444924863836149831158454122363797406083100580520591726768402639178491545135529115400647865270949651327358083932789594364452030686362291578904725212317976367190986048688465989305805130195807261952614171184733736429041673398855619283043949253504616663306079306632599510953529119798496300877701830436441028663670364129800951014228146100977412717451069966944929537326837590075465304745162011292826458140078179914112435163891312395121174413062309575805614400685337075880106891077038556569141128724675030779576854899615674964447582863907511202468366407065783811215023258074591734099389355298781294315559178414003163025821942763372805807325567888517241131618950018944473305129023849820305415213710638304305939693125736747905954668135720887919712505266353014017522213516672201349357962413857513718432932352634978430055051813418060400633917096315895504136665688164115247537412379091011871027735994844279166849848749415491598712059401787160687684145754370796678165901951404845323050939121808860155852002309269355866280129289296977200393746263827918484295289434412872983942641456737500152065504391248113016932145884643856171358646935722649271739309629349462131250839133311468327235114944060120319779798954438454793688224997745512117494459946024049815101746502224868112995248365740939039271308900228373079713984460957091108016299401861868329369020472029494494208432055253062884832729709962684067389706598756808506472073596728005778353700925272145105170205283933381235068479781135414894416854567385268196621749316013547052173862958071339773837456252685007010403959152809132962390857913046717727315287683556446221207121076274775005645932225002033887004328690649305559219486278332439804505750828458139762426338076503186970318609758224567536571152530232561842471344534686253334370997767358976998904245532582271533040087610687173801431425880862982159558748246665158478223200549227975896566872504299633982659724256132731019889325794046636522437951639628460869746993376041083041884111267471111707546144128551447097925072381107536277384911860127213899166996922251539229446113334476140904821462478026666517686873768277830615630632591397203252749978228328008729539575600525689077801705393863941855548648100303490667464585635414498743165897267943204550682958078604032238738589138034396159553532728377270503753258115167171424462011469240894368676260088148195116443067907633440588391458901004959714386913045574936348443483920031466340783478948746739084274625645329219511990883872513984598813905322973540593251667806408721686266319954327241370359315756192606708378625922135563416986549570500113190905753841583249078522833657579153102997527892511697137892260557742144285344999334573548134169275831998160471626487437620356385704153344663282019674314583445735393085631193468306692854523054268496164650383068261292599871939777107322107770809555020716867097171379526231019837008356937072747226123484931105751105205760217787471806925427185199999355860157689886907103014100223062892047657395662306997781740662292760154974982467909002118331186940295964988382624691974894691827904927644590319332349128987275987179515456383813727953683342389535159890201537009281091719714733874867277579996469704536432717118287418813099472726610105468149888482984220767824174394161123748104388178529776524851538691553943070362832619200877946422946716817855139247844628874299116350174382889798651291429730187542406195853501974767917455561770392894400071530767489403035807703465829992955867629343790705262437159008372222555475825099056238802289567410584147976661513920923741189150617318910273097936945635826092164297700340698931830995686894221502942365569743144401519891970847001376873954428131950475769932150914455307547417208870548550085487323845328254738871936002938821797208138160250868182859399366880293235642257370793155875441618766936280809195316431245459472248251032697025089762450903321286893362459233967790204486998474523422814662837634381275273990590337671267869356772146480795317075040196465017567545145867976445451755835385025822165917918959304077796155446137174875155811541235554311425557431255682344625163376929458682065913381967485757364101890996812158440879279672575780358884208588216689672956429399873557418846006941787023931398947582878337144176659236013118181268475479625766626881656059650674126393203573707332610194439152162329517496605683629026127441260763397557862251059326290320741692012564210127985328290763722608743751426603799452049084332330134439539563238468136322867021529448707747766770849249485638007456580818490111622650221830340192243217893973282966139930035340539837973337202607445903917021792390120437134246483944856752111124220490573042216780396241483181702118090170863219693012586848796585166242346978857083591366617005389475284176090189319018213901809408998828935105538617525538266329649872385657402628144227471621585489690864202317628286052571036961100938846494184801662058875899708055481927034151049220565039384044025574392695945217531368994599842545366280150508559537358911243090046614738776372386858151092740169537973596433243670675292559793241765879933590141967182520307126569477726713383766241594540660741852763992405741288779626828948332971238254564220022131554752004113893130869476512392706030305488041968095754370400061287787714605339263555454199671701281231183964393734741577199918790921389806992861971795421343522766653066281881859926143697237262735763944673924768723611226963133314717862007683248311299731398047192119628699092921953508090676769204812360006466026717283585951212021511983381479526357651455061889847966007990313052835848779223823404850129756037005995097783233622595236842757958024068849671844090804521727143390948375999655972497898653693601094536633680041524068175464244015777032565347022784401874028250972822692018588314350380793586785261457813359905801841552032623751243041667959092173186791493596166559879600928540209195599884133776752328133140946468690748363053773699018030850555911913531111420770939926397179745446799435778734219700398240095905856605357691856854393164605841146229733748322543554241548798403714860012282485380472512681916158793151377676020708800693269100574621562961783649457717223665171162738838996310837073040045879315494937841376926002194179771468258315515982443743795139701879083160412097549906525799985488588237090511494843831558286534775878391670645271913160845629608467253237896353016081288260604257848666069569923836101632272355247081839784642923503581046713876841331687686996911689519151782206126858221129949890140855832042604082102353614340440125568237816920288646412940915888349161539338670702717356408715390298304539716595462568753232059072789809979076474348781900223115219559793436690001058726541359018030098735028135088746822320703046615178449860655355757789633559835012482594914816998818769560777527822900639145078324149178483400913129777120460866096994982038025749191794734773828120466784651768418052254175727746878132057745873304366073169627597070678344818018230026732313803378509564487971279104140279211951251886060475017174069391858208734349169960521147944591144098924427269341066583484603507625016252834459504960261655002179650560605889283431655092270593825420891446160486658291895394953999831120046694498137215198133223626597699680423912080148305650474310445961253936419932550167240618776212741464630088660318922033457723023260359776529491411455012672844553713646968785000632565457009312736923643155897818681103642680258536514842715957654130653767619320933864673990067631353911039006247946684086841846957876957824469951435399861220454523035240643695166096903661441328463624093475240756738378970775469988325115178500364386893688696206172800741508497125963636948454462363828323338004676012094051529269689947739632616191992089707307890186894977647994352294619360360159722267985086491428029294852866823601274521535295572269664588421905554230737306945495541635747425484989404679676467210411408236243093988962585920428585257402240600972912098612453857999851463758810108987689241124628442777847962991270540339087867809077951385828223820388223877545279204300503565827816122804963151068584568927234999008974137887798890120470748889532086636530897675872513862135543605586119751289031696230503547823958709687510828771698806450543238444788469150835016555834198350460498755937595034117647358878615054395997301498362926666337775687701582669652570245254506651668407483858185886099884273683234748182002049295204766180168245921286099074971900895952638803299956191010792079026457781016251227761910255555115505957566298421138001524051095156611408120022202840213271876074118517145840681618381021161106383580385222297590360095767543344514644133161939199055919016163091405625045655470052102931385274579614183585761890762840585537811009585922236531169042233648793872647093074045727266676558499776392683881712743531039016755899273899692244353046169646119650434219338268256784084037566997945732194841843565944061849932290869732883763765062353795330401353098705492899672892461473993592433920094123997824692224878441659609918433968298522256369913861945134374856381910855784353525001143765045849769362111716262808147226408200609944187383838334305055028999006991800653102790625764908401331141829134867987441956552980867906860973956559957536339146976478854011133213041890802480630717917750251968014683836817584700907552631779752736902502394004637684346938063603570207803999760073365106790437890453059148972219997330838154386245096321432574489052994234605663717878848366265765279115864118750656849248187248277530810786786082371148924618769110460981630517699531896857866781355615841223954183658777496773575220897731194497610341256970932784578111985681393298363504106357913347838531646812720404087555556116442673785063097422633102908183571030233370685026065943729442514947966074707290308320841221382308601969913041639126579336641421969406458005993268250798319837075588179979425578560887041812763716600048533771353876803144951180726802853169926796985919851020423936723162578763187123083735475267661954992210639563944753433251048208011978279836862361750009019330869033087726119413021192862819369793018069920247206145060801851917220222160290694350690415710809390139531153266000560662841123124150585400957534606813608544396172067890622330775551699104132252040806515523299167643500337405529188794691279095560771353804337230531871116261449301875352901443758807442481500466647136684449108040821037645450866984962551243742573215553656031410555314923871627865886428256750528236687496755191140137697313947170548962923363757000563143346009156935900333356557427569897801808518049923497805057548421135664506863035777363880199136110531275780881306245936552165189073403202837611738470684664865843446786668247784132366260043156884717459189225936864427598473348999721553897162750098804345202989260637024506852978762798103584238101824508578186647402294390811053100132925067002608391905586631239454416043900562760915572448400384336632834949010755539662791540905904400354135213755713418411285650141173486426743517197454999407868068084549406877658904014458745217699820855861257452796796861091048737240106907708893523100880486631141694277296227694599796349193983276948933063645027286126883668020383433318698915700550067035368795331886591721521646515042106100695046489244395044230115468871915316620564808536906169188481738264942025213894829538155415644770064076438374049263949793805065988135100931147482980797671491294494561593135053939484084953545018463378166801858636285328766105003069750232549658142269697279310811042885132435772784724777091869651687095241699902879963467112508030243083277877938340139497304285972742213140360447084042811771902347165649766673887671034739334396781755365260430297307308896698982427716522209665579665698887323087037555010088702215876959173924117108936740399914219243231468398669440517643345209119533272414617416135039946558291191459853750132869667365978515782090919559143021641769545865238435385088084593168667067230677644516491027087618634034440014123389327016463786492423920295214288702659646072703668910956637449743269542409024601315315250605355045976108792183287505873893202904796420077589140226293081158030833551504411859435052604411003184514602325496090445499833516235653740143649577687176942630815919529474277356480790225636806402311275385490980334988443483378098883220968857706588655359043923954759638365644297753947536175811926896710454903555971634103512926048553457963342799085426820286298147689802269332906708143389681950884470978594174838434390417122843846964030363301234208839875695448482463340247139069199795493000040820425107150974666744696323805153287842317281806923178483116940203724544506879999555251548666551626416614402460085500352384119521624583814179915326083956064842418678946474409417836187341770148072170507098869405479958015760682565740012601733736465931614927453243945708344235821946486333161508342864576611573753893242526408480783878965057386797855229848370439380350199125479346098463931287183472205617195333841614731989290433871430837679601220936799361334987973165228808767146013081103021456907299195762698279701771791370436409768491415737185294339570214542567445200540718339128380986433933418497673513164828177312432462991351883717602601663892615713534534673735953486956009988154845996471901492739064625764043459042306376226433116790765609502850425382548806479773779855019371395551351348823506544398814075945391372692213523621542685209674956924070620451262405843964929180778900612793117560076831415618741849495705848896793424022699399010389814528422502953059907636028026298997378211234180345967016983416484744979405069038720465750955986854289754177993780419173110017205246126004392413596668074202951782816404359756665814002058129702075923850673969980785836725609149921674631981245467871722151489141625501869905425211916176518227596971754686980881896452407737335342991610707501664917462377754508393381085808091246548902431349186368614539169884677674782034634604305338109048063171685699375074018239684610923889745654290613675608915460242169371599352307754616345454178920136309956652744782533234409468055606722882144015129130454189355670819017573381065055893620331892281801032895884189801489865708019952594351473282680761962240262029183510094726545437473754107190478062407860946991381986546466011911169586971477275758534804709911945380184945523788294879003223444073366274569536606236523487652472309598394685500366524431976105935307005900896262153763688822147699783385432674062029338136114189904912076962096138115418063304299661904793440649903385465203297849963396045747353284683508506953167387205927635344283876737553498470095767980017331458435701439259473946481620939159382608017587242677064931012447294884534602371963381205050059700920140335805414263719840675891060538058070904969950963657222077536596921138176595904245873662117107541517684864150882850744763521494504070604709218744069540772255724344815751659960535526391884404046768799607878453199441196860174037344960701581259370891508337845479822372136371913149062551507846641913374260766718732340990993662813985361560795967299214249110983498811747778197123063652217774684578395778088286804274953946407669089044739470693554481064594731065746896090357982692550691912810226882212934019468955355976728104551225889754430867018909198636229338619604689397922380920590627519250753302561025552981774716244375260800799083342113787510953574638871885839151798174131518847792298586223214772170962008384582216737841016782878190481178621833011970009711126115236060977981132148734644247087888913283856500628176837522187905235288424572410597459421244870348472956359078836173182568190888323071452764590007287547715634629541858309356578274119355404476946882224129340737333077276033078924463505019959496844392614558265581449539879941851239967726079828428168668765707359379420964795829608088984675069607080652465142220996784120927467190338917863737686384860127408457015477477550566200232998591360169802957196989999580909499301697982942519971061283222997113433731879516735917222184912192509822044599774555387876510327964695038840239223123023221140586654601714041618840057920486289598429918000327080640050752896485239062265973645026533158514598006866500879221195916596968460735181274316655043182051896068726836892327710813861713002228928248048883222440431477235393265200830101824704017177884327267867214898415199048837950106286561696606263860272920947569336918007752880486737356648005393440787436160102452375246466297634268134224838666756736188344836644432074803537657390149591443873432765221001509810264069675062644565123146221535079793750499227887226567081679205279917474688546358825168813692005140564548392311421879510307312707027647518197507838726412487007764719328293112412060046379576644347182427031809463864598453885093804181152708743437265521289211529916442156819651854203951271057599908570685189697531146929925181483641767974190124979733879007039108486759435962016099164798115976505042246299505538912276334417742500522227684124353186908249727171355273357713736247481486594261578134284032344105614837716875221789118570509501070028027188991484757265403026236795351356550441749104535450430094212518889469582038282705925047985420141352071239004384467940478103670276633346176649244332201417951813697281148432542075949578751203282270628500453246426429609323539274031559086295595884678394616486137499142607643406309095843190616494268838802908158629064245376410859968300183841438985603795494726651799008935074920041982436260913425646976973944114860423230366070826020789942029396101666856041864178657897668964491805539480708682990246029371622446541379009995513677717278682827180232513685909346173736745005156463104505458415757445156083483943787884389251053265862080376467069777946393666471421239339285910803783663561883881267695241087052073622646204400555814442452053547160131735010200558444819438614192185823931896004890837901192666939754261167800000147857755563911960926694570834927295209003638455027808867809015463606022182358916386411633504990428159041056744823945963955439029510544996908574864172985161002074673565182618784418685397317082920567085124392161650790384862063210617834769263476457453632923871912600808469629643355816843754482105112245317834407418291781426899661018479690151698104930928549480990818045743179399925662235379380281535360696239884824471035113147261103933626265517306065171693426553374218962684045695032768473979280697494148855413450390972495140792243934272677162823852327313033481463486382533740463776940591205043253248706734550698935266635788299539389745889070009111365410812031446438209848551761812569016445631913016464643776644345080866505751048098910780660926499618479396597492752526211913704269454517341479695095965335392744690160851045045269471331956714720057305719122599482531251324048947593212092285711005340568627091558928151591183509619931524559720827431696860602085144317650553035741268717997183212636764176112741534337341232801584773800704080584398404208182884915620445319128106691471825860764653914141216074900534130608638749224291895219932290172354905764401681432361828053130312728046389394843973706274858176386867060643537408551593787376511406121375149905262818789609539226184529700132912324609268193521347160358342647965594361855470275597510923387857576785252243440292239626422134585140494251755117536208626091224723151035407796239175738766090595519543996054965146906182397285903489959042934547298895969440585921281852056997629638131770595415648906297982319916228329242138309146566908394103394612931759067200270697142256601208519176952273207156056535888541891326938748134259135114518720159487121671861823136540202342246739524944415668681228298190024465144534405198713657635338000242617567352446687242298145054531785426102101748032458614576394833292569843255287032779093978674879911596875023545404464033617663229640060701710865764740567389289669059241994566832508644866382390956117245121147408189634432033807463438114066386288549593518426149472411692364188744468526006321082930876912248433406941215679034307140474599706390135402709633650431344123664617219200309248338064196457540428917117233511350212109557293882251876709356091554907485708871477764007325373889221129779361975507902375385074951416668454895925641692801712406954043221563709458281783785400591517251880619092455071145167639719470573043736090883275078974648729987563061828785415946431488461338384538038239770063992419849342121005937060017015723178762590741961853354137797705746876358049729186781724347907611567978572057625361837413246753329419868026983731568552337608363378483450327269501874975276588990017081692831396859949299943184964550511902866911633019530296725530215136800947619980487664133113243818021176747383773325702605723708710904279662990272145806689048915342021755890341057727106907629321462571285354458798016385775838966484880618054045990594891704220075841726439540829627010068216888269825147612181272336454027900463897412113839414532403121411173806467745688017802063465920734709145426403630294107302594596329675116174108642675102097112986489448590944429348924531565705000989983775867403160031551842629278221168349272673223228627083201761479970099414873408784311963198221710294397349507622062229033272536736933188808268863404228144051477283856339843579845067074911759759629046379057573136649051066209600063573398026036862903219836287858826612979157017643712557783580353327318343178979487741238387255745758296108010734365002082385112108386839191717537128397344100024582249484712901199725176832912471144804576623792289687302177077895607442257147515665783536254699092925524987147931887589616447307700619543016846667442197798217710386037759971540564984227001475736428427182874426378385154256918274029893830669131572262321273006330875036882188421088587994764163396577187901155559254706473180752120044180767007383132631186369625232933654759714107885826959208384246805257157479468887706972888143548771735019556440939900916519506793794001206133130720529968499387821072071680900762692474318224978085118296775223419066030170599833474001101083317949212604627118197667452377475942357574794335683675005107708901507239976182616872624026360316089267112958781925009351668439532929963025068305962564505858763463638364264867572891575736679406206830216837008920161211552202773266358471781168374930389423492978453375318414060946727877641802317497885811672297144259109732759551359344462404281946745579752983044545019259195179835562662708524714199936741914871377691337486672492263250509627725323626762262718062678804946281801547182035160622321062004482794137660354365558745588330960617195508243747395527286356592398005900050371166569478397850187401698322966678115894869848447758345251757633932463594657872051637092374461176956583729867210608833965742977947641373726034189831907462520509100413415263275647949732011843145252524572105888957557355685237711971236405205741247164743842646663611776893804280017370992889947249510349999118323925382200996667734679825474235560983215026993990718117073862890800932514054714608889125480217247829623722886738370966180563252216547250447545137511731682442902647896926782927704311206745928469930906691930877615841488997404875313235071068559034217960136911537731306710629883106480221091307572683436129770720490142374707713458388442230256756896739662404709187908193025374168152993721546613216729814820880392731151812868127223840691540658419649905512133784330121351780186560253739243537049747179704966164371410916563922766053967754859956280152106157454294443098466737881588307911899472391268731879660134056709573568991934075403167118086367066224547382031230284664892403457931150197584154477233906581127767505620017520826749312242157588137456404495038978422812905633443274453924798581338282170002126473391856491994134681957810813691626223054170063922707672156337217508412652497966353266518492034878326334088963445296785251435007743909539240525276446076856352932209094299323210389786099044518065532566332029581413486050748264055545777618593823228587972523624597281847002627632884830027751846236072489144337204623731140699415492723052701084900000034234892389454609516542127149790016683293685808047949864271417431673421419777278726255188672781105783033979319356618515500983745853117969650906738994224461583367759521780178797271890608600420957911807230488224090188712854426668570562757652985272549092656676119083427880081975971184570810854974836067620059821854579195381691167877825057744512122251769104438472229605121625657538897729532003425525625825025091742759518908037084211421348506322054411422996968952699127619795227031305850037157490636147614014002884658616135697907086291225832301593446992493422697286421347489227113844848434199942788507139296018943192653971667207384868653483103048380854765379220849725627752068763544183354797581037513201566297384051181942544556894178637915494950890791518432793393524027093735989186622990900622387191558970978433150936663758021736796374427167929262954860713054169872105303155010339090524912520366505251140681760794723387437692105900165690701961167779774373972320930712120707531162630165917000256554633413818901184122673309729673550061024959804367880636374748630839923022869975465089152838827351980391893867916041077336966960414556664957899500064418050962407863246714214635861582292052405988410039616919039185408351650547372555758566018998400869533534421816142825642067229572940063355370992359884470725238742780615428360388665607620054568583538420874143609055715716336870108499156726967210792562294702891572411231805658000971757755229900678124423508117951505241551962912617458054836029843440183835595651572030655353539042739930935949908424093500530705629246615907736250253257483075952508504588680076055583298614270715888010012014598438181516448631736004985767257579450537860546873117573793233086924958129228468260522307177152370063358688500946765963711234358417304225125683058817116504561747434899569281277390848040080101012351638520820816397869105479095241554534168228667149051781886198829014452418376299947537044527825319192085952410058168878662107090729427482856583270592636523982171477970749627539198179569055376685560561447381517698192334480435077547778351545653008731300649378833051223860053627011647626699157823669395318029028053450542226099232521311864273747353566262621407887098469723497560497094037051545959720577016118608697375336741613075321402042424373530466127397277859364858864110956137307082507177562797457408789338587093979408980316163473062490182734770538356794696188718120446000587447673157394596608375999093892613828203386884148353591261071514335937503079157562222480020421200988575289436601731331754088773370626836947088317370588097424824228289319163829746845258684180800290961013841275226049205856943391918650458099633622151904179104827068205223087589260542495077710146310640315894992437117765221405467884811842061408234799509576618934612777107431204150228575465428863984922959515221507787653574881925338389657156207392273269862644674792506543336812236989816290091142829688965445449942094231381269756342648133049524045481010701314467443030273407906841985094462156977732878138531393052679207021148874593726795228609794313422386355520473709431907281517015908837494566922622135676149691631415559406746915166758252058718859019604093451676050289957272819139469631288984197353379010860413097394027667127299291302606401818452943926982058964986964101839475544849692153398314538884857702487199427660122145065269921988000780302411465466833337533786454109852104305683438580894992475522533890553554160436356943705109511326975911743914269258763644135237208121296916167291809466467898350350138697554574234292108318909853391253972584552261212696939158662620466111940875940428390000876996449750462643341822535149932955463300509350040872709218227749139595927942901836143232473972578162343836578724993422453824957923237433744146818234445439008159072280790342493826577973473306624857703744244095290431669080736071807103347781601224710574668090339955754869240754492746949830566106802644102230490657331541124975602917427470871888691746115966701375546214102943458848984635233844859047897506382233718434885702526149242072818415294285345672692151179508217383229494873255220510606112648555128285499202379322820749476430324123659601160435692307308582095623145291936348673041269127230082349528157718600186384885561938779321525249229843469926080423563176696388553026516887917467917704044663535259118808163376273627029255726211092947006488757828890580918609659320752321553209386153119659008348822345856663796077809512558556258581530080532057476428465259161090107869168078098505690205352887759143403160360655156190176836777353254940498496353707115143902020447046683340494706208073218386907998466416127234351499769166870783297677351343146896332738485318214783618861182434170581537206797245123416040206023057180819897085274119310993535305852433759304032338106452220011729580237383735611986485027204502835877244334154860072459970200268174335108805117242883883573926103558764361600981608999519161468426264900605827287678188157329626886325153504175825438877649971740954883159266293466719887086302722980965826795928896741116001348122503512867572029923044726843659394507959439436134394107544154850432104995482198052382600594651440201059985742953734493294525151777114992277954655217426171812432448736752379852465425582425761847199669116030290303436870715089871944117205529753572425869776489996410477612995910806131004747613698242798352449306151671468784396504965083467337402557112335479447083083432683043452586975618356963831623798333004715673261278667616234804858153763528900546311305214442107998087225189606252282363428888576016589410207349476175384583065120429720662083776844411544997717569093084101758913855800056776365561648334818158806564090712476237313542266433828842590043992344714226304086915150724754588346937128219112340927695233849420719069158463106346644529959803632615374123685526451414468177995432121956726209762361230751811244213490371861688222673940839603172769512725395967707469082170767945006156024689036133760149782692867945402181258228563416621191123239389559702404571664627223068713496710074846043270704660697133198666337609267890087649129322104482719664345918722620129668618994147213146395760743369281675973468438912932463924500007541308857394094159334890706847637003083708502693300362336460993651796363589954102205173783090924443276124436892873696408308728485933129401889901251380399292925641520879499145295185130665072057700089770373180213729609172123226427454170047092484686615681673195267674300134091708485189139341936080043378508820443032924463393120727843069556612174082796588779524944831444105406071859496042628976843327514858117825322448640613241316255015269388567957754404232577507308922598242697486871034854691633671449893863592496067422030194011256330379844001230512490252508237369489839617440861058240573808181960386622529413107598805994952158314921735722670643354224984274506954119160689384016385109921081954722967767820395970842256543279688339297107670202587631284381231227607771522704389109428177848629446150117765509580265885252727792277304854282464875297732192827435210380815387611975987347422839177966434407926117614117735678544180261948518981037604202285793850317458872695717068376954133695899811772865222370899135756025927470269341621191930456454236028999190792382529972534666990229975016228670646609406817422253215670061848200184166340625855831071059665823898198614285838213240745036835730382501073627795266488828723943610011902597091388064813074599589690490363626268911991624922489299486068212848871222499267066956971939996846261680537196352198147969898602058282590385297546715252401684676041050590949683302682611412856394157260328567917242413084730027562371833038355454886904756914192321839504052805231613821859279594813183531541405397603052928457733430910943912656203782251090106746319774738138171219427243079873153909583604723687701152257540247715847039708577753375984814960811268135557268430345840943237487329480794138745701276612257925163445194928441820948852760145225764427578635725411022691975601005910999887238625492641951793271146180661919672976715299217618946148413879529313600025342013952503559924434039753641977343411401170560495502939882818688367659755616802067267308649834048811744459717859939001822727173533500396675482373904393311833992990593696969311757683981144173909468634929740727557960557924902981419315354972529243230720235337652551008464966742507093420532572466203405948016857040629020068889977978837144858652294992583330336753179688153155539134933339757055749373797086072581951980484338204110144997055100220068717440018154499060233380774151230329914789630424418449429238913566011207059636213316699978062116742747429874233802451393620949813182578266626025960411394270827811011534026479306449933969389356103408365263334989464608859711168738052824351550213769490050508318470914430907018034120152909932016499396968382650321673648022886052795505861004638688043583605906048810780553431263203282562930891877995631669478990681681617616380623074603864245691547775000518073089982210314026119499166982891851217782429381505176137579856397273430464415057101268343999022492882985342085448637093431582590052442086380005445971396670797722873190160573188327413792607470470996990148118025172344989720048006400597323240467127323208946510001535852602923077843404896454545494232466991923871242753659163769458315675384817293963313416089741851009664493601555606683974299379749742296493207655300235292438872237716703881596816477965831075686057247312808787406702890666691303344337118560177271571334620354882712756797795079788801794347472196257383409586593667498498180432112775565145914862333063936511239867636911273995867205018411100014560604005969692758971538958635548132749464049911861353738509895514073182675396244315877901698566256737845773820435541136756039926828405975423974486084379966310716018423768622348145198670828919254442113881532812263374638448608456984472214097228792248417058712724204185591310435453344440405031680216027758012908813733243857015126816270978494799720303081999609523543476488331700591550790492824283947744192168935407834952972403442822091177745107646271532757234609401183616647253358120139114164213470167886433053982200222498769628934957933849175399100587742806948385473181531696187692876431174555305474101180661547489298846355519337588255583863621253599914033657036249624512154382474373278141325750176895403995541659871896716778994973627963914392045520213281504844339717077969393849018014191540853421970243483752357994424122215918938717861173687133331547306947982583939231381213096550572196816710101825990230843059886394211364314132254633320384448522928960581503218423049935153742567141174027955631186813989015306982770663406772281607255131215758180502064769445975476181675354114694082347685357146129981352807332296474947881238039009019814280035671319658702933827106514867024859571011698790345448923410903256339654646527544054114418175951446869954381889145898284886059131781425828614219011805160275936965710641026377889886161447913933892119862345135600859486809563740185467986900244962528542926797036986106749461835258325507743316220092670127643081413608257798876041226213386616675031855900039562926118134610006045460912419753115603029939687634306760418218155996080574566991722099872459360613171527378433686125859988400730875969796816561383944672445329242343298063658846102717389432475108396673075685199709675016561983053409034028139725706817257484128929009223317933184392895560825990513455072818292602323409293649178567495827387811948171522389342550298997002572996935579463623103001899892273246662870955116934979083994204553830898633690203434627694611018853778803351694769495790936866284261434050528285014912463226772381010753224434501812958664318857262892118668798853067212561215025519257827330095283421372817171034248827087268857722551889205890697988151130812208153816001706132278630518870672421842263074023327675025089418851809306648751628732849552339907202213136187160263182905878337556602169699960539341469066075604737169975263278271843728055826141740830069768520775663830111174844979561536221016805239438128133079240852419484420763449563224705214102796615638069870873344934163671621939015934406319573041969177635653671534765244688351432805134446494466233136420975433335102997228487892988444006415453172710782529456168997357178974705108456331037832608714389246270000505068471290546893861454937124664440018149859283706550455524714678907042646806084889267610883323480538288420677494802271074719852896973043298812648789437926069351350855011230516529787031465387307037110544676789730982162206314561938531996358510454564782138060232571881624930519969603722307865458352208349361154687540548456500132486175435521933639230158216251000532428555067804989046781414899398928226077399790281156279806138947548547427694546574574191521664890066914733140127488735842879051948795092345688833714553123920333275276967126762150897241460338240772345199129751364948146551417710717156610029473930106125594805045093845427446490952196659228215132939059915571707582873454933437999271501602649611168846682458154231170218348067969567821927615381282938971031391292023471821970175939940998651266356709443406565365293246603507595701611205407350085778585960044747763367790814642883431163915226277754030887212922767643286366556193235262038627403676291949502509016166676381721402585882754481602619962924009904600657643587897864267063069597578314132221529423504046991488086743346063291949879473872116705220367515113636640788960805781145246233811119231839347868181419094790461193686455217127314172719621718605795640229036858068552592797580601881039629217899736859107112722659241418040831904222309416685347498737488898018401250018110872834500126417022264648128924963855475118500530058067370073008425046897177505599626211480771460076484146956041469735138693934371945238137516386531203219704461426475737582109047296644672829746787366154774406315127948649762706150947276728989343638459806708462604714122528546286822325562935861516738695768760026845621670620533875630823126177444683342541438123464696993537097177222676380592309909946353827177793339714322536557000846784725104411675587243363525808999757609488601503235056963148512184785825525794567916064995059393991218600061698733095673480515073406570235602650002341656054147149553907600338504031578542624840494098809660579898293923950065058247569387579960872495880712379977708692806760830315864263962837970045504642320698644398713060554839528093722376485272696226099023874691921930680974965438636626151882746703637658932532041226186537498958852433656860397710916800202066494447396833180547814598765828161360466066455950508524710119411959043700201324908490187240693427371082286066201055274260555682150094863980979531592774473840234682621906015117397037840707491100133905576966863831776939684071619117045964666476595206899811809861657379588200935181732416356164601037248585354257414428587542393676350840749195025569656412627435829222414078849222905074392540921016018935895249244372139467336578978090898721264396738344693375187510207436749022450904270127101266649466806279688806052179271769892363298591106990103155846221314131046491189914919768972052821014952456094607199307597674494682864569491910389609286470125051617147356582615010452719886207453206111419598131955433562655185447551556835680829360176632811929409718415350651363001807790973466297610747132959465685666560492479442876068848528960207421582921814246628141281861937838318450432170150867945489475290973313676756799051331707091755393385324125310963903947551764813971254934588913134790784884293797221656938377924244959635087188081126492772509844660736565057754959479931919318587935589162124579117259611446611665613401582808562509239785196981054761312931458338182097431558587234304384680316323408586207542576780287230284882559793974734832549117010745960971557494569735542539280964144513412031119548003565594278241072334667899592915189764866489984038193137286477221320307421130563329191174448414559010788988945397593998031649886522179117795245895421252139495626565968843976653971874738887481473690598563763586431011646256654403343339954735409023394469765250431859940531388554101928403871431354048633638441748244026654571461349335929758064364677289989446265133696077044914168971700700032032292981767380732919446388861810346593575371124678791210565072712414781720255532155556534073085557261247003637990563617558477474569891666406274092743677553746421809034060831775797432388839897134529824343153353360570677974124101242871860398973268926988608982255210216491464172867152791905721629474651357356753011644693880931632938825485452569337729736962327485202075263605789581438112864187674482074455379693752527065699355824626415427039086273560565021474809632053935026328724170986665519385654724342108667250249855589111394847103233742118793547773412994478318822728487791310587541306050125939648654097119013076167006313551647094371246168265500604776256003615281192355141242470053258319948118212673755161250202906918663750475457003995424819371239300323133000526584822874612797641987222567901242750371828873495145974680820175505309597431273817902047966245852416140146777845361888934326126732618943223907292787662666567171568427700982758675964009636607863440620512006655032274365297199117247061448057658760990677290188197884110363183594819172161110346811613918073384515216321337695974463204785762877381037652507967935959893056879362216642108758297843596837395256424686007340709786897608363948004425282808156891234005736781557599359634173313849132933602117503226433661236531712700044832583618557390530279527365770717363150799254293891897012490708796047624641389866822019221504335702078450785866691862423509857139612525822330860405629395689852419111283423646361560758706958633600735566342118646877911797134462349629312220925650745886946767053683968706011235934110522700889546721664285183025405723276339288992160089069792740061328642799259663681244119344883753350760881174913893042131655797309142303045122711586786268771075947771295270821051489819967514475692304259538153326896387749958563506791885367852423941322101145037287054483944943104313422273609120847410351212340781232400891118007466153034327127375413333816247346361298236400616137963463760868791742359611867251510652766106750373144498789763725103974677579678370466397574531311235676590824436880120695152932390606904413711841285471146199018066379468955474961880230422305754332486013326833080551403647379210751525135500755813050615728511485321763785373504479185368137299418602897359916685503505293731286368966663718292606673680631803907497192257680450610672871922296163887936052816550522286810899685353208050127120040846407393061377030367130632127348806311962436088143402503659547817136452544246021043871097474780335032106407594335201684427411960432933035658857569118015624741115855928013157033946345225981739656281028689235731427121954299763031354953232727216545528981455042853752610568660765678993394261421195462117388671247726791483333817010668130311343850470175390666754015651505854709198045133346552490023114569770850430518292646525627565391519222377927758769144963861242464711925996680461431998882861483881306240291578780289605186674837138876355710891498091684775972323147855223096702719015617806801568723053078143855996292111787331554275630547595165603508570418969391817584573808619624108427809320657667339337574753081918998340522540333736513724863100417340484664812805943476150132032838378530907247437570486580337619860859055980142354204280423035380293894071169135927501694089990802211602274697754148395895431032876880692235284471473735500025008243205631290105079183002046488118852606953118321723273459010173140712620033431412065496157038910851076757650899663845386149753031931915506600669920516996648177324482668179741025411444706598136125370517713981286700949212005334824431799061109560250464570638472017836306703637811167673881927624481380997626814442122142146556882983046796738938032564817374995570082576022301614456085070887238370198034008783526653379126063607194286884879286491271188898354785123253914743381908179607637651532657406815536954511122537088149951795147135507225294141679106752655205055013915977997574437009292754447368335145212172721681493388436464558620738948859668871069054056170493883545972951780093019035125509097560956643218348482186405440361377977963893055753729042379284719687967192410202935184099199954149338120279555578817581206952690827371981502635498398580607763613045220994175472118507969722602992436133234730522538866846742311626751968081596069378940477815133693427785175212087227324932441346012629490232747216569223430600194809252892741316941506124038874516540332400778023388302554729397413739588359346335480744019200791540423017958024901174017041806884386525067034639075093546037754895670828367391854206296511334601374177402655118536309967020059743084666280872220244572764524901435124397488448017535762861070750624494957296366624426232447427783100285796635173123919196174816763108908854638447248030903330297395994258554597120813202534381703970228625129092608081649687739371498234646349955954553195636353830824426860268316792835152854410581599568610602039414438252392435641356442351861530529805144981564579920852827441202949566957189330758507777642572284600527461279950058254392298989613123821439999700986469900751147884638280143248410144497108867631539295320439852280010932433872235991649304189005352899068412217251523223771460722785914259870031556141611452893846397633406426673154271836189972312935198832563206998064203536533378143706700455318691103542722073729612951636676999223106973343355906333204027664611497607604750461236939584163620069822166532507350729584839618349703280557020672854544337700671495578728259316063048191254271117278916024003285847683698494419536671498835363290645476452695180051830488928806448541675320973033238906178429844143346930950609340805132163179411836275681347428294387505002114543161829035438007961173136097633767791369987052561226820768138203706428598532068664786569328440183709839504705487431844310093596295339643946037154683768034530571616973527588973714783708860984317445244784017863682701146034114126729264110440718421902947072508705441689581539198123635348475805373814862830307990678948485006161665970637997237534268159192845638161991928864862451444721266634535765102854989006502785711794942137197603482615749107173470975290286036671492436459574057747249811608346128243385846761522918556394609558262434370902799648115796090523688983411856005328999411263559314143186939391114744559086822519967761452978741004333033976872606327601301824548009940649874776269550904970308635430830316765034213213017542504613156027984293015496143377556426984695803942384563596412486765482715461714216440924214178594343228639009513124097549884343511985972030121138081100807436167294782161845396960561870410234626723382947021608741888257255539777098749504162056477205074959489546429513194273484782013940011724884225940417251821840803175260550883550277864075816917636185940422761501318206131840549849082117909529245809985083081591013843649332953224023595913893355284978932245726607692262882602181226089277864007571577561109363969805904028872616854907886541467343744045623911839676549781641045798781297097189074077934596146092366508080883106446432291026389322195473512683396877720234348131998475917204746513520663712279308161036848051003895074913748474796535530503559117266915974073967723969783810534968214049778261095128424781631985347525931112639818008738189083055441277234796923326334458482712933185805644674416946974673324382525247982901950760138117832117557440224578702536930949343909856564311261005565985407655290527788049993952376859834822712955115926634891351204020283940219281859795864549582623132087942876531864507713400489530221158732557615536169017435590581249789132573758482698487976226381148944040542268284293754946820717194667424055116055145665587570350746589792602551233837200146167087188742737762347403175199474060106771525692744105737140246740428716371254696805123661711488594278264429803020207668884151957700143656214624965764757789904604946938019425961865894309760339066331911834765329618217371678779858213774299025249009544532353543356233313602648553357240406805007705406002949874081951650579986193864691704094723237483863099642064551319961482827515390872630623226539681347425963645397458869379129467801999019079177070590334847322850862311349583391435929766488931641754893003236914619552004796358562638117602500368495024391501037026012774532207956834742804578351564291699814904056886697993958282130173829896263845558581702294260573449855940501626687815607268486583290423248618458834668914173388130043146476651977325480228289475810774894330857571412115319258853523598373013294107357123621207586946939724447695362756213902828279890585795572055111537389360811754291755827844087834301782601998978083528002387708258557019726507552244774294330881426776798829505564937002835763721126706330902603458447894634561016570238654955762480740472589028226128017769898574200790532750579415976820376808621685647155781988580242242503513279831643393304169385120703595793484206127679187757856364912386159181281912276602001595301714922717598657750628992267264699554500081648587253257902370920363942962391918885744632370655675693952227969639178885089169435822801195936162078247506688132149590088604933656329290030265134226917922997218875820104665812762856456599580665714241545168085131353036217096818165576945150305569331373741481147466645241359656707281085014060585796538044587192863916232667864139039240038504147817645761777050345839826199331385780623740416289834797533637466812849045113141590448236754245801194217032658800097778715737090271712157709218460441107015244028735905432967614608070190094724951904359731809071172561992589838296996026398959122214069652891240777690843205017100642175711859961946464196257582010440974374270245181263649429762758203526369516794187483498855428383554243079023838614953675733316095563535518116491317716140400457250668476469367918479172970632166894949655181356966706429460333770940760805558987765150030139146148854741246764700651240155558664844308229853624767503253756006777373746677790644929917700291730180831703505388656370193522573417216402353780477837601421681736321069150111961817500532024147389724225233932769495683018467825409185598326594624044350931836300058082113546968513964196634897842629500888707305064892308390600588729678395922719507838971646166925966175133846464355641958387134048982657095627755373790901574731738637471447552703913129938738881816508230395157158410717441144608282351999078489560290367962120713746794674951678920236066956749414576661462197238451770111371238543040950988881635814616856180289748303545803857887725563873482029823528390521491371082466289217241873366575842104495271933095506565795518012599984428520897156385644281828446505480463388609944762215495479818451261293615823571002031815292522643606052942601211653537445495682858573779485472670936585113797470780965861146337937764478290804162858647478723516242990309488913191812521922593032505310971884462355396683372637434407997255736280597761254113421276124728543992224573749907437732526606407740447512085902555581973706622903616593678659151970957773477231257251660430211449051129789530741163212423558794052283965870482456415684501194487032277373078918483014464103052411593271051695085937281423825142149011648273022841247005885433538032760097700800652289396393778639088183466581920398998523397858352032942474908202016615618061911154680208537909409595612529233828177389647750368647082895277110191880161918201453647101036138900741295775160810499287676917425706344391788174061420016976618425274942882941088005338789880991155504765824037447420077687681322480386762461999087500139022197028122027188988281609325444565743734269521699269870445965928664986962326916995957308243890787067950701029928217096681506530677176676411681881547541949840610485891237166403779759167089909665453096761755059565071442765527137660227551701228530619398902458969969809848177071369913621738028834161190067049770352204265533513539484862113409236095212981357878168397141094155472498289345610458249237175819440767145176782350939920014885167847012798685480088097277501778085235973423206856589605714944236441612955537848849709575957087078242161786642799407178578474929242014545055282605507758220486712311035881847283888527766053782185024797505510175528072975546704319871486441586436616464183130064467547411068233516658022851441713283095407519855458015069888565227223918224667100438036069994359169900126055727579206751995070164210289207736969142511410864026946404343637295046464069770010943449246250355923232017424597748397793406402130075220771837484332645151301603016916775726054250318827028754245051946888473263516245310368286587287755449982170985337065593886334385020331468994241010273963856014728247303559758779121959882622772864790363901917148380935003955486745467492249991634302008835697239164682120789560017719790454507549827465310578784514187807662973154656067424258509037259642121690016889074871728417002360994902845622187706036241369499567092023250792874166838283430059812953401309634933655643061075694848509967551159355584464304302318026978563022748368987787017911627893542726495001182158409508626140057598274755474300268120354065856087771238900590617926744866461063468362924341427825282163900993843173282898474155418191767774002939926670624138521470452566524627401594245385066353990129824191823480016268851749338862056002427965227884198654825359911977908222035922837611702284881034479404384538683479344873658440673581182275536580571948976538276849451869488444027691997661239442841518318149661088197554292323950999834075518725912428825531680023442300614398753431938302859521960448472080135117778475387293275955701751729256158145491267094097382279157667109610199055982184337007373562709998003507261856375019185272404404503108596537113145603477507154517468559753625444251177105169778181792696099752702667279012088578870678505277470541577894418486376797186723192135894238624841482850125705496461505332058400943791630444716725131888741075571668051583125767749137792484880167739462644257945356161733119580025793605324910283978828123240108280547015714455834271288939501652958046117152498033961599860095269875150772486576526544753646521069578475232201235952298576956449054828320970152219765168847435992950252933775848923514289585651944814554517432695990801278851522031671687469057236318635844382686976340983023504483458332009045284460832484685304295600874819337541211377164242902665672544374482121057809576751935069235031605358429901451457431546801903430070202533444958877396365476049150447812147061386125082009163909998173306794523759358471274566877809042021116092342458138779245486997577441915985346424014333578789435669739821532246237978766295318168280137341069383500474675361610920026803776460379212188160079778806967450520086661935914544082274601930937891958990475784529198916265041240516105672583814620434450866706383657148155180579911314895840416927657277883929364920294840478116203417431003493926787659557980540231157368975869591332443948205284455105028516170952515823120776677614335797973358629736151726478343657444086367054717000876927237855356983845887193859145301828319252178600195743255795616252591121435148769014780309810132333968365171154971962302666096266106134875868042702476328493614664077816667939679965591263015987031785401346219263774249714862349603790733293559302874359376418321768547266274859607697285202490905537689751404904092182686657258399883358662983946774797414949974578669383510058633252208735644098776024112183768673835402117083237278294121714487506516111144364151283159415045716145422423483681249998190053876355965252623766973261943343714029143047099882747499905896563588296970399375380874269460457260283376688196698302194522279034894232518249506440591108180855435105428717256552183432124166548824328244727381892035390855484924821377534465997070351272891034335527465676859166832316452539673938354847082403123251253820703487102890320389504013046555157093368069088474587731693411471266816180684910949013083474038052728885612465093854787614537596758236868611462975341842291260553246002860331515579990867216808411510119669555308131537762071256209119575411413591399085454777997844494386774334683370765235513012318824980013959188011295386085502336949412185860679820383876393755699997388460281298988444258839654130412158736044247380627957056895719778260660930924268943256496427978330572508086522867550603615539768351101148967072403864303311015260016121061349820555414464739752469286110443352367845389731907025054593991374752207568621263663813031428069521139508119192005992344861625542705812009344342250281611047260916481373772383569816629875567968557701583633670630196208871247084226078070955272148153201212923062998873693991494912079729874721350582272391968873994602613881332845619739544370320158961015051189584520709422722938703123579644413113694482858161032139481344619578802451403856642253116426984560152777413561822403037671540077094713537429008386664065345692261133381002916100271580791858371515065568156471786637167108015006208835030065249178288787636334629678884796347043371593878199203172361530315712999646879939843966790273643484972460222655743059731321691027572388937486329998608631076055038505934618217650397656946405203845491753446134836206824000467570829654084032809391094860791609422647667141134224515807302659961313153581414085290588157052555621815460316152038455712652089792871820708252097224686928389005509747673450031125162993953053284947874321285955569432604585930524610252262163370225060912769920663690816034976489439845549073064447414002248139607005267016686412078247976258653023992792546807736510947867934041108139205897480788926249081823672763334735787679249968761479359866867194332863703785812158940953133079792220403032673424384037719305233651823583531103728346424802070128593094662484896190685902088420625508621205498138564332050187152714690652163809545691385418924240708097089022329182783156108675047658099116079174374709245927306912459497570809359933781778279161954846884552106491495969120497735807660443464165729888710511643277640422636674823836553835994800242827488745243400945478081244789322439319107946934490242007647905278677833448548477463646744108039836875777759299602205546917585212988433397567509327072059694027227073681865938404760060874233409414239323284648101350997441563552855243140022133019240746568760293691442409983680977844260456847986797807164457204753794069880504678028912174388503941949790777699505908794139114060279208778341817549304018754779520255560375329237196461598539517386069631584956104704125633716645541550068413009283094348386704443226748135591760048974249895976982874006423567920960145754772189190899989719216703247932398385999628306321086801500903468751500080709276548556711437149289191007941852458099499938629315183553764073723268420002487340894938762782339104172461488742202794142514146583264910695776448758220946829119112455720794020233542250836120520396987075173378325520486934234247552138510589951562599778197952923351959558613355716892540284861494363985107591243809227229189046311454668951050815822925542978757737470686681185810239270127852831393843531938569637149766902564770476039371281346662039163188589008630114703307754174776461015490986937826807088836670017901027628648165155422462878989936414968866251689034594286428390146650054207999779947274415863421253321105596112354477831256996218411849930943761745591727621354163952748027432559110521048862537673960993872935842629913773060458164154460800230511958050202956008609082811387765931434712418348200735195297794703309902558958717285866998179558422476950351130139620679428786830897548810980519519924486706014820747250317549172539457233294767235845589739240691571098418483725737327788418529689090578678864901189558950502355670495749285401259096218145216518617218877785903687356211065876617890555706917074560299928286657920916348802990380706277029870100281470148766190574116349406022136630203430834641576597007978783883479908435986778086719460955376473438938159652704918543103293117931225436161352828930926952368641381021338164538316011493282508932470658278014410476499994255180311385259242342361858279178235688712648936322974820210809413835011892409317221486999179829696238749780074686657587855853780528434064019311799559268125900202344751659281924002691900560327873666631513434628641768750242561313096420913592100246068705627607628914794995082177872091345436387610917112416335448711079389273232321411977123359402196411564337986634222854633081221669155342855143587159270207847410608225334253694627357191246399593218951930065213162138162968849201652707940320773552125072502758414687468992872719703858818036720083545096071666122988775128923613411519233519282124516619195056676144059313881513144919318659558154853053543238983576523772295502009115945954278169612764703131905816322115914068489167541158809134448074856323398995137246302562934611069444928728417024843852795317892127756730877614567169864202763244359955976877683341186902852438432656381099265461026397981413013170321341825165147250699350736137335668052798189180784588540075806644978222370908259834726474527478875183231244277670349781718622948544638681913730876300437169707564763328333555299701886703314201795920807469380761803829870199600816523979815521870089937936057437514091550048348615958521428087600178057575706078030082935456500225076061022722223487523528279094041503361804957650824329392381523125592907845024662592848782271552886603531613915692922518532731566975071198614018829965575949001041728822204954330981719198704416422922413891550362439876342518063903814557582131397016582592183064834363255301224015734586045199987787827074959877722965166192038895583391437616713941357690682037160618327591441990596145575976884574796174306591291786624964526237806198510607994906982612365007078719638849253958128542542591860194495146337594987372292482985337278131534889820704224529384277794580813599944761337149756686457895817277860396832394031159583798811592046763459228481042935521136717966969403265578473577928128013638456855538490513204057213500021673667447180658010570896068474792518777046777493232218325888144008022007174493820820458067805012800942371990829830749418485131370426825430995980039806161754726535159369989853743402470711013816865058291445013896072564546186588496220794884741722514590956853149072523892064894073032951617216220257843602674078498554701457007789816341274668317146505608633562052507362029357495553262817519119934396245057453893318264525563666496938656389624742200442020472676987606961760972776405986812453823191138273372019219861949347734057763746128592857650531673030658774564667062895058821338048893631462118399236618717097972693664340297820874472939794016951962955576724459907916548701264287872376751134160961204850395986889565029275604476878621357894843020647712471035965478827053945305328511786995542752400171481283066066111296871282271049486781644810640982294969743758282598582807025949760950960264107288772945644624839042128743124689567885605775497820657972134551385067051359195604507111159025137183611532098361166194991534198943997813909015897520044818267634360132113196986477367830735340654286328699839027645427574371390357618886054938672812722667557761407857636455648493771429466285782752812816700201955722288296431843817496727807229564678886690256480848216900829538617412288612597538542139713944108440804945166043332728390678556534776661868073089786204621741623692049977034067676342630227186989173372214650889807603355483708370356789790010991531656149378038193977529474926962135164075849380351901398557452857499100234374099456176730256436728898731785870990721333137900662701335876475815156622717269517680017382906712410015768675195692685145374563660727083278261730998418362689711317727843089458796925777498204233067570991622491486560424739749650870438247044991012779843403246384293944143025093787114975611283600059265660877078869770163803220716321899977425372505457332891776944366532932982270070480906220937288699206658978521689623906199741544533710944916214530792224953950802719728735547969432710755202752913824659014149322518251248485198539911632463280802127837015268606931073384268046952980644701509303719378532798314544376913499712347284910737693129050247890670677567825921244729018042916112349181700162043914020277335886396836169909200442186877111318063853832382718371133366593940015369943979710202639129049386105452734498557586982796707869929398925995532313249096730116411370522255876440255396495586861855016335227988017432599318017921976001961534194571314890535754204723003407410743037006924210817789823349721984175482416487957222738844201108899598988839820590150017250255508434439666301689229896863954771186082246111892076099830380426586833723495663433184451017868893896023804212289843617858948452239461247590391862682612916022387759759984744732005951253070685310545434490662839151440923157810663947039606479956140850285387795632420888790956381183665994499688806468797786611381876461270716643064095582075277788808223810584705136286191473408005898433581168363459582869241214671239387537235997683301732145404972132454041349445815055924335923019779653344167758946344813829930589207376265503207934124758216555302115091036721209616927173664319893156021348909619525777742222151815887057129445994429206769560322030746182784721240924925427544447112250083559264208767719390141198383359157640280072344546289217546339693198178400124300292531055676483723729346148635143492479645411519927782675427025887983606653314486230824652073605594134591421696904881125205612281447275857550285554153648018579098574207066243613158146663329032259702728264280612043752487613931315530860615799558086618143579924315812861215526862054175151567579060700148405617358056412161710422836454423530957922805690392618638778186103791969873266791441506230723093727264453614300308125041330784956656720847387844020245044430770620226740291504823991118775556569652474990807530309260282114992051121860568141794983081526372314430247181762204202515739525729457949221599052114014225357518172347208161942022887788845505194009820585609619909731373840728636044151694163926212646937443372291750188456832022779254669551835128378728729665076115425886019075062333474702632544886867013999647872313092553152677401508837426823566372321999769451077623755537539535527790744617210693805531072160122346031131307769185576017837384012078279818530872070703384341141939592677678996738594979441240628207337593813314430042191245977369363553020115369231833352901110060257361296110841617985745657783090401156475299598250105570660264724860514365156067029912665698571545207564223778538148801400738836745177913770979107265820370978081450221466054646581622351571050315606671880852096911053968007648932872854332369428301985108024237268245712950775909558068605130295998717345964179656214527408227592395308251468415533768043312385508776411475065285191963964431928345048462093099352270984088998268334699136979389284742344406301147899735329032566754644534345726842635959158835999514409008460013267615822246394406654532407172587741124318867570233496520225211647838223405356675684344648943760002168929837871062551157354258094875544392541011314845972324487240224990612926925924189845122753731617443178556385133163940718084561173199619269854183716033956504910131146353390000594436704945298073348299552445283205787354108813863920577136271629921118024557086637126366659741450951511939273020137872495279528056208364799678370739759348869702999088387852896551648274792339380089189464066684933071916554826344565258843455221270996459797343332426135564936985865438515397548679122276627567671694079818219664919290815429350212056735230768311923871284343153107743560948303365769862528021137723189941267130583845270316561339338604331865488751636448608589996828811397902706131374157116708417031912307104451496800967991997700583598217568238774369457023856423595106273329056946683433885658131688576783023639654956418878982528803922918980831105516571469951868033741779447929007003287026162988886471681953006398790715527789261099362375875761068005136888878448720388532647774779748548604504799269071376454615299946161602332910320969486403573323534085408523509441491507829139709066469708976905617080020763356973910829658262267014161083504450155323589206388406171758526776262499948606818567536560748259821461816333138574360495674186528646340933841178423503829713183370032498360897514573565470236567727648753267541962866441016501349077966076895720302057685061975155912392943510863199607489706129637126065126062866610625782200975782662540886502907103302018747595534595287015554949304493841519780539806181917465531547384732423834454165647669901163662072142022732957068504514410187926768664837190015667692787990792408130836617252999366347854890848051023516631785751060659939721915835993017491577000200490343269240373995528608199842427557506704783406763041246481702548118764450990516471859768028136089518789434588620696811271301936645644214174171253047873917235897843000523556253352762586598665774278284751865551360130561981770021724360245258266378261321885245686313891834396140373119376998159471298884877462768175269302734329918845222426364367616027920302198076297380150902591620432512638926801313454907444471257751651618929245428159535085509955114211699901147108695205060348319599413822682814236344891299460834181000940172641010602886848436845357933509518467317892150358052175186103185434733483945787377734968601697823845056882660640169692153575712039508975852164277040205158873783143873508115449757746933361782196498779242839793523279689729459088507678384102779891816396925920996443154131395420714627610303376516324562075132014476222281097166950762018955952772886314293265813621287981927576420752031681005133676038641767818154996272598237979314162806883287965938293441899004816326684599320203352422140450835692562618346937022718317393472456752864749008922768255694729559701132454364354860282314182169098128889935049735721086956697726073162056927489250844428248498859062401769470173542858243339665480987088234000884837600105531448388711112972260536748447091678811797895191715469462601760099245044862040462767247206124173830539094434264878918905207856791962276839893060900398855558828932024638170121521317899700147631532959900237245864118326885176695149025276101692654511019985545947746323879842926285311303655713273541831017150900293159623589817980549651601437917283837538525616118370917217729635818077641323543872584893222701854519088238733105395613230484361784869689919148498124955073828044741776124665684521145329422490373879575083570355115021098192341681265790382165120473001760282091028507748434717141959533349151596883363356947089783234030783364321974056691557360754873971954844518093308492341184727529421871564833839934844077517070359017635707582732414975067192372802900158907216407284248678541089539337466999299896399054932855385523709394523248020431264781123927295544031033288402973440161899750256604861516650149727268145501278658975858453342782804298778799814305716574053623534501924978870672678864267269716121516562153732093696617405661166619350483419831739366145474681456536948150659465751590247642038162885628694222156620187618820883721235316509009387645776210507481184503921551689533898003737348788003138135651434529617057404764227591381976643871460861738812315717996308499820177468512203654292831879939037814636599721860223077570016861339967949453488869406725162003424196569908881862106293314320422399332377131923343542745976371802174414514327911572139361891500311015502849969366534394026178954885005510514325308152809527640774098698771704932772233079745851681145424069159700202445068125137124134065974443173659791911941602776798140008747771917608849473125541895693878246379716796584323888426273794453700871852170934298616400841573574472018295930378753132976777638280894225383416794118137159911769447990744806051942738050675769791446844823971532309985562743578618580407202625457132861634570944485667216506464493567474903565259249941382752384485501985081561752690778349609172301080972013356019857445011888082144912606533573246805068040748482106561306169392823171233689438159461597961981935099885968483862583744939931856790153842322979290623863766299706772331540417047115990103223653208885250777943450867784763695373765909792164206067466267938453842011769212580451721639080864190648522026155555700940596248319790150931013814145656598245187684987532948669965128742459202917982189880113841177522709617657817436985907237421173228130510175456578206114935635487771683461557452226470746938619856933394135444370169585767481806137163730543389481496483026037832446322003120725169276736519978402050757857882295557953930959893931833201269756329991785370151963716513088818300548900742175365115405208439075125690449882267940170212674691263028627383330738725772693834038216617809619059788924059660513412110672275868338560306323669870254979514250346523362595848897476153175218391743325591803086852354092375003188875998306967574300180940729259495902452234222598816009549078084236574278679777517839342392688134407812073924473587718404607416658945031556901376923181978581311567960582193222864052733123141071611205621847739760952401153702007465228178294458420091305501200469534657533896382791332003555554381491944978168925472390017265478191275157163439077210243030610960115032935928362717867644456076802719864054836845635388444147228752547417212429889589981807141765728051253246082575967922807795612339888340920000654597787505659680793764437917186919030121078674802771035656285550726762492883370158160843881583953144074583195194645558098214151008810369905778177423232496433610245245897487561380736497498520056307650199319027932432552590768659840086140970076291995740327888194507964500785063161659462656556084482005997041676232898649756644802667839330918176690811184194951981119975749504939195913434768342589907732532398109938217432645809396930426857675838471301904426872275322348859527442520787422802165353188543758675647638739096720532485946148768581353355625249469421222325018528941912950704274591428436232749104069598398592004387139676533383172179714222092457394988767824667372084503677646380421741539537716425173914286136170255003743540618969981385225233157492137218371114837364461379364140973778619333294414984709906792372286336006511477969496702728760258190716528694565154649180158202872770201193807428626169303404055040717669878932079027863198060759548177219451790294406518779842584363013945849973361070940229420762305307105727996137644969863158830884646181233382011400600210116279169067379253303572115628333724027817984830968750995433409640752874504456931756092539503485662366414443222023135446671745399364660809949086516071892201455965936903434341984801981840987758822403208746468521744833141054304203216807621420768422200859274158384450420003569371361550604323527352786668633588241702834959468834256792211195052499186883672453480123953084265837094796163825602491079746206283415040196130192126857897931974789683263433586328539470589370678398778574776384355292789237624023609964435605003040249501272547095100119732794291355711273968662318088446234455927660092181156285590701241802690034921200951016919194838211043044729898935238182166101791772124532451272901453197915777749935687227438016620455119313765822048365701606852471032007261532649267172728268230083914051736800586222131424626939861088034077205861269890645093384244352095348426693652095688554116642404909303966166062877308844824995647552412494954525880432096217388522585266697440101779485265778113180197300744597471107464288907250922728458990779137514777783256985790746416154182901263627164446701699339236578181619774186389216482432717945510174463947742952607346327011559242638038140259750930873146663322016693167829318115570622293536295922146524249802274535167563800465691872915522333601140122350873783372762995268557267353907411366186051976657295294269056558778298825545164408809220630087812504195575502828242273351879486165417641319535710124631072251561492565976479182422852816028812195762762360339878365900136014150335080339710406457346621701961074003079843460685409987819204456463090301761852995580556577801211426704755895950002757074758833723261829744651324744990034058689610481119794043119026696129240987022690864435877138372349088369155840514209700228175076828820026465653937010400284367709808798956029827560237982019515964601479120073833075163585970126788992065211817077768339533982127730172312430578304290967927803879924646055115510234018005434369431929336273834571578604327027276913085361599298125365477421626141086093619383682267402857077848293018998023096379523194420035179506137904335225544187909123865225193445629728767774870868362004983415917421185016198632364624262048915795250341729382705795176147627602942923918233548776710617389283066940710069066351491708646771284744261092227537421028610165870554645909975360886306475049361034953557296067299323135061183398037765514058453201547910615501394953815688774701804219948700416537857110637445240062630933246747064270872302964805401886649768031870581207022627627520342995641288437745474709724554788435310400429383765412682321109387292343251039095441919325561195149447950361181955098859017525710277761630330676754036099597674692075253703326174095711091175883266226270500828899346183589656569639702826687097354802728189308412217001712757741419934264088356544068181901569975735280611302879299225517792620431402761843047117108671586661692584177845192613216733846750825301969748452953341445570078115810918152862795299334781451876417011581263252360003562136493752347557423775693220289871141279713595271816118140276824910442355880337501337317429783884690577347295744919091357617155643214342292543295221741506459142948208820707929575583143706228577679608399800892399172297936749544441296160256904482139418589212991503562770338107004983692512162548794305419391039398006972891595095340941617948883862106022572656497162568951703463661323453740826709476223933578183949845886085062311985667547628204889334193563044432491981059158327147292960762233341837642164034523783365938454584729027536592656907833119945882790084044630019288208506329905628531498276444438584967069642131101726510378156636957913426657486826919504261464128523705208994508814961419210186295051503136285630620610578562485852778734213111777553672870310891492587925553100654477271169867344281655869799765261500121214705600496443181327314656160815672029870763475006459312172076109750241361829328348541692921155218529203410015081716086008101260303248920647711321898629455496725274079680393802741409394212738845367421106810082809507648162910948674899071714117453420715095651697851915508849291234786512911551424389274296948283482798892918678506934105846990728237376807979586837630299365882839929618900886077731998964646803628072941749117051409786621510828419607068574635450437311465058174244592241661801023042293024884756646158555624273599653438763026530765777249775228593042597817960129768038557576009444764238788591599260846467981114265190056753245644457788518514228626438963682714012216294591257658145051946872172395169008663981347006821897783940045542403406271199034568953308324823953645939146036069357618710082891461660444219260775249366937729771623965895604506902565608214675879951662414314810789062576223899088628791240902191077786889302716682450573407020208720795538506334647135573328498026938835220844656003985713740169621790813050276846852867052037941265001233877633196361406010042587934137742985049467549445049171588570027311236472456942161182127208311211607634905161087417444193292930747338686913319838899419144601566666876251485384119233142132057068301093353474510917471172354340095537996536133877506048091860966841342154141872741913371642725757546694730388723325331636878878518959334582097593365648612930398672130758654275959382341078062652818992309709086561555890061486538186894721721073762443638625822782552369730234760980654951050101763713730843003722722417570380027798126592219050069037743885402091128649342411532442632337901404889834739675381096621323711827383966456687269204275014676089144825911085503299571279407237682860752363831719000971032709997761350516980323237461673479035802857951758705064977118533273674840113000921835819141432042200701618416723142562699616210016293161752082689170307766980639704143791562767818193376795219840366012794242440912890886433326129282410460615038209138472527383899585580977933983875761410685688036224278051329019446667492371375276681630858017316529111392183257899534245247752438454272583238707063876239321642833507884294541033547682804527867661452185493601156330888543672680477753070129394771917053914283675747838422429719464888223868510967152641760501462057409651925960330125587136298495155459566576063249633377101081216692681392612801561704752421438440774043247169082959402228139589199412990495999642811711165606775045068584560541222624785764509516975056417898346341825537268207458876338457760006237935870981342185728129532203931330497453123375565016126301002061299403250132266102664578268479218781282271695780905289804411672462928494013587391356295305705001877134147365840518089174865335143888439322601725907924990155787332824810341572367172847766148165248585816587852185982652137097355747646294534707137543234957033847589431422470641438342412490914461724806104268794339480763747621075274802995089598633277857976188601979642381154394425218270165906681087038758248477424662591023905666236851723640309124278688766255681304519926513091137835109186465723349585005946588469781021896097789148604614012453840578432890367958161693431555808176682673913028009522676938273616771953033990598461758479014724532146865715198161710584633129788101954932218730570455393900706316852540733276182603436267292743856074079988366195596557663548409581284597022614690534175371697942957652030478462901293675453027602072382515261066968568842098067744493494117993023776117770332487809821570670192682098435848971535166571562579945821876209261319000130792779256668159043547389243614211640344901999530383692860369513285578960866642971253904246634294880488410682129918800345591151555623091935279247640263942222209652196089986585696550485539506926334315764751956436823724022264921201032159671590840513346045249257113171500154090478410879569917625955695095881440295690794862930502538127604604298408500557001577146844273477342884584830053892486544323449613284281952232735251696353000303277457981726417000104670598010674679977510494568551785428856026518894225819251634123858650129323627389568328594006051735146836958092837808835286031882139632793610520819904241694336408559988691759907603939192063679870473357922097280846608502080399267313252080621791971857674148535245983615727226324713833897351329391969226032440311448904047732887640069379495695328533457521305019909552598181143198218383636766340786980336483476847560632476868950216663379806591954055547199663121228696720466895685405113568839759653241330045933304768739318623539276534469932705156625299514314343574062429090439511882797532687653938387653003839787952202679128124514720754929311439958290795926884284520435016957892364664860015300882424681189340757829255391044241251871403974033551923975082032877134074868512509833970315477398999070507539305437861538455213033283750846350711569759026115797498931069398777286319470313748798163372102197953795166468129395246127262787739079459685640189512994149436447413616411464410849950901197324966369156473471504526827811771783937923410764943293196366203104263960215239021735250017192857212804634373193282038626965019104402387644322452030567828586778296119897965013842287218616201807306819357740544659500776354369858377509209336592932396354202462502211563898505547824784997692079396078458557206281390928523838412012720772130800332562597465909188951476256804013240466868031785618921623959413168986430961010912748998953663762699496837008529679400396187158731289639973689477134059903554035605620988950650906093732950253844908453060037701487948430215740146194333661183712797639283986595977019697924107340017584045523105292255380687428987567969745150078083256447790925329236527233712538387511880793550993189273140817477498932175738036599767978040720655238451066977475780249807608004595307911679108716362249501498659734773735813388062240030716327758206482245838580888332245070535939085166370753655705814588267720214772973916991714137822901585570865916893650445573277183518203804134055601141305751059736724340630881728432755583805624549632346295883675804583700838320683942210126037423578368148847099952259685383353113102201890583365334642660139910786714675448944236553413894308972512737864343137049617748260556508147018275293157754966282718747557217072395027285787649898919805558622557447333608980387353930116989916627946206855377271966655349617410119016189553479239703576477010468235724920511459669479220474983920591748642148257685249580721335601662686664716912918379674106994866618381346885022329225462748145835931087641533990465623457285732177873271635063565555283898001142921617883339142059800477158940925054592775416570464185334666177386572330802449794632036313152398269470243732202719412583310150592029644743626305414486887321119697355300256259037821822114911444840417688191233624229888575053309259024567132738302197192884074010750867257680497757609148976035845864816749663751310518427167159694695636920978849861136017870068082060150342466274405666043572135771929458179180594302421542246507176307338653305439253843384932608972295814111058837050265254089564243447798212497657074023961609674079580857956632756459625631000607752823370585874466234102823268983015369584749232983541533468798795710415162642386699436150628407347679701032271769034453578821765510268775881488368570289196862109715342615203113333971480012803458013558606836234295537454549315584963226301795396741753653190762815831696107774555492377380487176896995765600662339997185751805167183005727802089655819370567667020501849507407572226462351023027552135461522457361572894616157406257523627229982123290208278379461668934275510933133922425212758626556305819256652410781764195060209495284306413817318102116187552366102385620264009825411579733819727949854262751837937349807512868524197162134804620297956650088006189293316173372839939367161826559567510573043310677103823010027030641563312990836584040384111103428838968761053227126758466205316753781758746731835870985745305409049881187693215738310179088140517675136723856872218308986275455705999083223907190404724010189298531066124567080446467165646196825289670139274229849003183961521971140811487895932163474942139843398706250175021476685079223774814704281897705144824146236026449394432563164952072545166263698814303130539104974276111495156450414468785143970810630547731008134146971077872961579505719521652743353224702472719595785010889384111722184752902026938273837034787290463914826874059148362683619387900918279521050912995501920677792739990289772128124319470601719145033017094620937467027473221114756129190996131868117197349377101523640537299000562072776009046092102808809268446196054995111662264794764432226020063511139352621491031867254904594027462246595675843997616682701760475343610631588916401929769098671994417466190982666944785771854019381179834018148282897067608823922017062045494431704959683276721580180438201966112561898068160113130919647278543050517368983538276967013737946638939828754156051621658527277459462721201626128895913829435040241810723966214813795434665736670079316139908946064053672909206701595923102846074721345442632672408375114565975792374070627562030619292852228751879938822435675762565956383324488216157023428599514464671420450907358576145340329603512902663457620068089597551717088667370125051015858159377005424535714213415113128218906800632284020011882773592109095733211429282906750421766706311570089700242457061625064763081329828739272441367656017109841648919673082557366553226560876555682021150831028329733447775335687359701334070138937985522087284329425106721246457130173395789174323416068358351698728731457599733921649026391584353839712281562913878203064542418540681728298743801725782537386855013694508012710137622966653682263304753041004456452508068712074225638707341956741935846019785975616319275362422273485330166157186965298331509147511163280337939441642315961657856164759733761561432574624250268365338712494345301650246373646211926883052980578183051761864742195449349170835145608596718070996987682036066846593936730071678763689028730036615178749170530510535133711878676273145327474832593979424932473099151179107008092187562052571471714288937766043741188127692488912601333939672623957638373801645929350994279176927164078362432414181809834909562982900550698639183616861390144086527152352930877928239696132076285980594680102837705390395348078172772360581620683660297333408868105753979948476099047845640612763363412776967117574734677415507881622506593069821751706031792340429385826946451023529630842822248156135236339344050456528206823447397755839618128804223303004544133158279633703277946932492180107502070144896168034595260242397154562818173842506759783493819263732789540597669892421952268885408345987604181997248895981572365464514135256515206096445762878220988980288136995746033542013504244629023703710819699610931977620479311479610567446106684235305478686468209304596127625416981756287560923352218192537591774224441482451803448928705609776940827102556653484536846393637379686998978238355497299193407032229335707176925960605264399136454597782973094435398820203506664411768802424376780473834641480335283765981865371778169697544152339189670427098284862714271223666914002228618014964635810322603161134352880218577745013176978063694660918970268577431364646692302258619787216592170652800838517804717933389490960334176518501511084205262619718699946944440698852257315049493226636813015188506974961621609433364623404634523248034718339213289112702474785038298725694123509033401910219810498790891872856964373070935763708021283959935183002361639714637974554869779954228800343953650166549819459382979428025998043058241228982820822342976794054549787707178483386931820070863754535153194581326507882779046196668543745556784693004160010267366835544284976496751017771502440289525709135716318608032877858685877826659552054971198657381576976215295463879606404046938906374888500657583954698376631664579028503028282027207285781533612353921187278692120821136964904563072279923450446743597186817133330083805302685901985923836880400000826735617730650970692250580644125722028274791178242852269620311188505708064041206553260093070706977111821374023807677292642034502813107341653447376665444105438919584114092761543429978005363319871934639735725363706848374631739350301989045946743106188779931904296699798997958958929653365082339118059637658333907573426698312063410708156715641347698798521340997506887278459838662288482770205855430531255430877663045550651758102757883512091103173270830591815683258368366524488592773213090128033426977305804509805722439958804358953009319381653974247359570826380839410218014823371051885333264058327107361042587107597685089758429978149679382436518109349473313607777053189495677918481876823720887108083369285315724642565193039691873951303173573365779038525567611380488577261184725651354546767568736901231271496692966887831915628442071447256998216384457946256289915378547969640636660495752837708242547154912995162725724323150993399329842404570643332370591107525391455046149761571674818043945927962732081446044802904382116390622796745839839302930897170044029176346500499911667222429844199027539805763116576285204144167501980033052178130739936291391964749497494316740063822540999115966986503209632673307516614008603539396197386072833742707185737231171465187567592521708915023566541107003585025950302284077168429867855335871097901034278797938025240031170945253709544515907162361738601351841552170255748831824491290004622202429248636967052674628905743153978918761529436097810733251776363970860719803411491114767614804136332792357112453109775451104871227965642306385570791938681952862232700953592489582882839597784684207456552233774523274419423416270305861291508120120985782718302073815028585719536136341815277007445263353198857468342021435817823893654974608786946621125249213332162824083805742605290612846910324636243781074420913029315090838374379779161090648220258697843757547680321005124253153696753122260771574159468632766981255472231187018559333841424083820703356904608026682693165713422059601814662295294751665434059984249516553156846569986205384409164698884293169751051611180121732895239878159394624994995352414719793652002074250734136098874762201217304550283400525790723672004284862614995600391397148063296966553994456365453504870971372053516431923287988952447637941418947216399210880926476791805378099786852761482621263458756676828044384164007773672920241233594946903675818466806284651552998731600115947874763821791633200315836776869395941382116033716391165412704703249832882072300296847217191645841028500543105532031030962808557165380205211766514907813445686296478235008843931553300581875956018128002579579998160191075337679896926660076951469913653022046016870494555886943980072227849451907264912028665626581965246342901541199314233370402988158166628520219929299913651065199762392031877129077269532493373429363061803443627896459402456717627174252408035548248356837835211901478504117687412857558293626705429996056042407802451322873773853316945149519397246669251911037122628112040111383611891893034953927216386831988672670312514931613999172594497117364313476548700055008006984334970165268150758553488620981825780760335001273046975042197403202934936416087142235503641251632401789483153307041137964776680858834283896955529974307845069903413616732619858198245426087343755065307177035360823829032927033384582891636005757513949155704443570463952176585198191898213572635117619393448346854205718915625170453789306996403335598691988654684282285407679633653268471502933546033015320298461799475919267287139368010444275319560224490819475774874446798167627494558067375668829048280852902654043995871825654790225119780890338575475321789002839758136098004602161167249342926649373095542308300151949891403041808555831497917184992142021172034282865054657556449218355835337392249697813541469265281886610706437901407564969263129514785393480103682876372129626850562642071228725569485352056728290788533451109697420603171222372927404129086841105610944192187384009012290530338216386760347646564105452239096838039051706149154419560749113090773918757408233111451000386058208941201559673439543818305238465918280322235522649755045695577164794262678433787905755304778420949783870864145449348097792554516318970244515422984164117706028287653159023168915924987481522252456355790101356103391709615440758713920396973846978372491530600407983980513842164815305132320537005646516867734678508855582804303186444381000889459650699046358596436594192825968828692912265509607391392654742432636488193211155059541346731337087929689846870411007474204273646254603150697585231119071436384043716024554732000477241926289429789404486910842834170567136155231205787982368995012812687470818388154172977583704700648343501098552497394999193261328390390149547498993057379519880629147459291274581475089627836753649999969286106666850487225750193674787708683598882806087583788716096746274873870961902139531667180995278935909676553761636208797366559370698117483792209455820720541134744819264433995857112130698455002464664061808793634735602519003467470349290676021125127261448715940191333058167561692741051701924146999430099299036035822194246138124680169371725367239222557445196488568448240587299029657300056033147053978293803692110874254994585898842401589345716644675557037161918072561712344244172642108322574061827827359406675200532560261966918135243647374484289991918400248665269334521174005278509997632780612341603134130380530932142697155093562082293658322969528887693202318537688400732375599217798761786805495616896989563787416455071851237050305962873036797844701776092454304170797229363844110687040726680693953552388316600804034197834335782326991158770780945842959091655246305468278899615458028037730781879037088866409012926875964049705335250017054963867115274512039096806537896742011312028227546795041751959690079699987287454305664211216904032192165876137871602840199599844852846953764536313695585560021542347464495390998746745930057099824805915567098062241445493280346986042893580768155305964330484970492226779459883913850252177532163858522026607582404940612825158874626225446604280261829287525071055783489492340719725987172781136104775663806493835611660297418887081558412045046784295932502740559417256083311236965433979791138810646310011049720070508921170571924743212596118501363998350187648386285154286952293103171034349022285090307968313414044903204900750306421868512864054839983649952106666722355089782834093280536145509974448702694299593208564256224983817590712833681472319743145101855686284587440828714642628110403286733154361796148564870227265959204246460831977870751066429456829804914671809360395536795186034266754753424934934725233035323510691562020423978963774437855524684510684120791881178997254019970477674112652449943189143398616752355600637568730406916921196291808134264425432218363554475257123163925547587300657902280561943950010726010880490781950940355081842774946989227888149834323878190524185672416385205289755602498405141460116114654997940261337746815886273216663609113805944611890392738001599958581776443098287287253144086773044031409218990207821665538067397506416079173510134741028439127475931998229664078693062239308684864515469476196503065586925903952303145232112291538138724527399802652457529581179649046702902590445756235317086361355011261557223040338806327727065859694235326221522501698327802525010560474121739661648652388148920789793177334216513042388174000936056433580468145091608752000908394912371299714509504267746257395217153111275618300399093701784902836453576250810136697241285882846434478073764293400795586156138012688359469063703523368436781463747960116816549806165218845587001276642776654900772205531237964478715650034631688113064864003924076088570333479692329323735929808508607984187769232862284961572192627282810049827234054402298992266183585124319732302539750621350261205020722476802911165404678054558059657656052245824183658374822069907731360825264060875768720018830565701422920948671909583690250631028801413271254921266663869693344529067655657955589216598505044856928989277408293729712484709683535940730987702657693902004794873774681713315926740634714055935847338143677381956570714805112894206124729455514427393967549874626723426969806870920525158400182619752720589173722914906637314010877015711414143804616185156659130736826985312094679358803577253032986738882150320908975177562662676643716369805918881162297988687539306392474121163171717357660355887841108818177719436727835392761742292065543075832718120913971397162021933356034571361655178087445150964202993703186644663074885829541606570708092945558426061410512825351414117808899184628669405777457977021845231051927371029740521940395396268910528335090313445525341892963910982910549543804350469240451511284937343416489988458360309719325968402942309644136767288354289023429371103816535037252466420260964890021260995241886696002848013120111098875982465882106796467934713325929039709138758695755209661881154536662833112839484599362869053698247715448319264708578547871502457868435819384261235233278411683882232630402330616770549620423040844110978979385588942293068451935556095254383586973401292666603859568244161637638123557631695417642268068351651229505571012630371201609308039542026242511775555867818092362519467199546189620656880267455899137223180137690614976916586042094312086769865401531566362944194480145176408345741700431547784016663037948853493416034993463762405294583514179184576339151905817591297708570284131741175706864585076186498695710094887683934774627582595852380178361315618860010393141681787697159459662109059245046773191414910278165587268561438247311384206863987020239991988223363570322681224714966757962775454300202044712433197360379477772851771119529910019257591116556872453651036831083538578305963328560438891225044750809834133935668952807046875960999118474681397899450317749735308510189605000802877651676513815841367881992636360937859264677654506223712045746516710644477122049862053378888085358791740455117092237949194555604555391803817256283750217265499677313797519940065921210269890866315372776955468902898859610079141839449691964710420932305378626820861299703433987901728823043220164530527377263097937719622612046855472114946675697423648627364294674503160958424404190683034017406051064800250006860992256150485943237460092779896064115125445729088765284680866466485000046366884633155578532073263452912742077605677549105871357001743824062020997523650462539880121230009659524412389750989581637478778047379364082331132091772817357314317918327803334068254002520283849145287020442338451518488612144448022010335526664251126035641223703938151659805815065624142208749782170185684791526165466178202772505830200661636128045050946811598122008394210277835911589964521899755548772041194945624281866813550207845642715213487259653566717277689853561012602605677014725809020139079765981033528732202572734519420058439903212015780430641045565402307232024534858015016953059866524259898867811592544776550809748128923270289925212300556301161157098204696434244858369121748666705288857706111220818320591746440858390725752906845557013127768813864123393481208370224775615100294384178514495496013013854241055978584866342415596654267655243863724616792376515921278499527356107025692176165093241702528784246132877482163371178713010219879897397901198758125873511442157941567837103872846209959984675074171952309803658570434411181079370270724397209778264036674673613510787437332568638393217576290393188922578349999105136617387808329601840949985113962292535171228759598895100179038853191401119199955252884870676171862910666914620914468960471338343811083319224567840098839317910972753138593079771037027597532849023048427570130591442191124522270364948110487282235711936979112540302716436661633678017851031347285810268193126643358807369333501130208014458039288338127654421787782672060169421961875843227586320875952067006970091365791059454860321843490321433495006104688945604591047109189583220610748331075844317116924929716688411137797999060539382327205917122354734917036922292304242554210797620920703086252748333953366182731770109971897877661753077263906131904208699067955040122804518428251418271696652312951819577685229990585269319446973249829520987772290280099468966634711749490429858927540804844067847906840146091067866358780820766917774417234390485567015026333238362911112690915684251044913485674525343203945980790358984409853807338426390643181967622443980332108581130036389049568785981303738308756420868984456439427820122131512297968049446084228580879043982173363899685590683350906705117585182835870989033691782191147733507197343827302082439566574659895917806711636418926910970629792358152974917648469571929852388107066789073646170070068225575229727397302162344954475439454111772504897960771475176031453294007622383316631095331449287057491421531072865813630692203982511954468710441942723482457173812081982411753589146326332701008432523535635690788568700538391757179205308645900738642678691721641727035151295267655469886040407757893545558313985432554816195648347277468182522278931328126494628950612833831150858904748451237446170420209927805106320337997612958716563805776908938411281735056682398684653394883064019979131295456394099518231887631670963803021144896506809869296975010836046929741965178788741756103986588217069567971314297803702955560259739451988977160219525329187746837160754129126672065034829764126615552017326887827800641628125671636233792370499314288825832382769432949347268711225088324983964568566045644693007702028158476827902975942525897980262404850423079409113337551655674236249789688876838655223450816353490732691757608148180253797181607970215451237201898920173890796723756031378348050203844836508644818432003382959428358752509990993033889934535416256272548137620796941241154873351910898689674016728439851291254268002927346529423756271078766489543313609788695161607549164968249841851968906433300959956157369402178376336993569339241692411442059888583089556987205831211836768184660456116438988755829889410506064546156701137017472037434452126026427529614656409676665834324562258861566238412405582041999385395199424080856951137870159886002314202266107209673499403997970268819206372481755684111637108905295105724151086944252785660427936972349672920151449650846170592805024418598769741678715969251336306008023252742210711080451896518454470214800747147752885164627267341115187968942926538686752445935558112589291550309716774131180561556908950561113131841111755016918685084510308575663846118827010413541527847496814656425424215977572321835096405063021457707236315898358890741034561576945444618306364413234858324741153114121740228097717120859699570118632980183570204064141855668097329718386761200881263411223998968685644303206355437167967551447947930340493223179351062001716930277929669592676410715016794573979103854922162587867772616850215823818828188812337722595498981828153265720186426585335896770437859325791764896141443482674137254710316425823374298968900326775573569824624421002192502601103816236736485471773362885875416955970339350952795303940872028763645394754889322103409061548053950803409105083818595690724166036298357530420888402952074146225371039131480924436857705784233146319726974210807428293100957712007107445474954209597153789229288676409007919464461178393676114991234490848248584793605768220992247180482095662107211453820245067655921047055474700884907348787032739259493400302530170716468196023528688658827214105262530826618241481562108455823554543348090164671838206218335623892318522094628868556992756873608349977869809051032739537946243428971643678624061919369564731649472804890038767081793964803175556426941270528744644860659967069834648278314300820815663286228415194622982466984822551344533900045694172248865756853021424851789849137250786523033766403636715253555127878337789135428505710709257531943915541993355025465359600426551804905698897069798173057650058558031606401760499096755860657183755675041895539120428890802939143361331451042986943465887672308572408655839087888115333948884903417925515132184794613843854609069350869704346536329816616088228014485024602064101851885598951745312474865569920158301514943141492674181704084066130215969667122300533193977999741777349412795464470012717474653370900983397639701753726258597759485780805063036681199231494016339842714254772522704885768918689058689615128009308000450669750872743731687172889267677467815707939003836422628640834865184540394779981242169995787474899642412165306460837359796100562077708395637995794827236700890341975805885810165577336469795138737422191520909311805833104822949723506252179198974123906407582386865451595002184055744075314850471193465553889258137284114865667387638047538990754811757141891981524012718838795265493580696702350804248286731170584087090764565344549164574724494816341479327287148332058551279521220257676534284697725962262757501390639852933769984939414668743508159748698931273973852378008450099125159565754457458222475704321062255675174467841756749537272709587219329646504416684053463756472763406329021239960347118820598693156221995064168415185686376274757473633490895074919057629406533441817001841826119412235139618028545317502390821598810162808025260206952694634025423049790168122659938815587734636403273877148476167443696820381548074036019725591820388466197482656650097986826674556318656472428572959654142243352039938800089452062295380352873573915342910800284942364011595007490445345442536033649535354389669238935597688077129565708952797326480421179037793546096864367007144957728136526930996643663480130396320142392661428820656543206088363165359671266707134457475298031123897280296552372538815912537388328499034582514666342672646536033761067413257207359472187486691836522052196229025691571486488292422818725199021429779419826146175576206212448543676925398369873985917395925451949344410723272489164536621366802946427452457585966564227023515816249356193234088282175449356768705220979334259221115553630493809836915230728494233960010979515611442133672249555669317298732188541863215631388007617218386503478929353049864711959515292575324315325090329108481477452828136448572871432083989755524177398601293216362063164173695244647486517335303315132014768502996754676412977917368160804689434536396304839158487484175011464598378882541895003217873373536836699742903965696078869315905403862162854470300457958084877901429153027971831617575745498424226282118753704916068197007424426459430815078133305480385587068522130951700510892738512044340404278940420918463213864094558990953603598846139891619052567482898505446297508964175758007292284229390002821077296421539727727522501892179780708636951879511144137326255756814200257322564002621134122098581570312013987486874203982156810390458378737667718357212074726342665623424480393371298225517256204883775799991747620303463242665212449279115440465422906122624397944639065509492925687376908806914656241806484060500574092857944024107994304647678297698012317236380443399950915929072808427204247078341043361738351930048644407838264026028638206405174122878615642692689259290223120625430145589560409299913909148705825486093535398022530570756727550068417727030798342878888915570553561173884958904898882113886717769944097752041537537693551955163002870668667216923815786004200171870611214857863683735864329857062496273333119949464706737797911846932794890134718651229872370071196885026156483268590610990011281674644810682834330824697533160280133544220682767587051630819618464620530410432252551888285680201227093148766281780503456581952748891677943087538754818898610968197696339629653217710134158752318814213691183941508783648002139778044514614595959625084099963502731340562575002170271147865990294539747077330424688655597694590938788854111698562931140645058141018891344057486002750526518847308404607532651304936003751405673539900896553094645511591123222806879314295527616696898557026809988832744199417467992346760664025049300284320901549696409989335014828332656718807060402673147929043430373550029704291606519065779312675777347205610571972695832520613194972493477352207291022977963082192769103489849860043515435972579268496558952070082018570556360417848126075603488892199647813662602359873564213740592050293926723477642778802171399852040026698851538208085629094647609919727943068921741267017509104179103301893572152886073860870095685104485027404280597982913258510161551535014314189802996611785725001507045971325193222378873788304743312900540329710806291662707547937775789551879081708517472051365864063418068612612135712424733205325430559691621493204532743553508261993229195082669655446371279240172425881057199143555278674150901109330738087787231939063647072101045808286216889954518389253673327754562730546160405244460111619024963786737588877809813393251710403987256710730306347181127013848203141177158522540667648110744088760136035348135070459139809211998815700462541217400186511119281477472358506505281200030035888057929958790646382480743269039539948648217870978926963782503229656858636329893716882332043996911325102788752090599469414984158828700354147376126941872406923599005802675703508656172951399937929018581554281557234267617693573574183626971239726623002391377728087509490800876907855886192700363175005991982217617504635918753859399444475751136330853232581360560100738920559262214210360850143685796586368193742497952021000493154612982291999109645424235442392703354242660400966255076046295826996080905466335487516910649788433268419946793820168357199308391291597940482322945811559040214253226877831006835278057304249198577056781808490128837941894674092391605749344113481602012405119898371382728380963508616307367606721237811092916880367168196186242522613818981224581635638289615264762902588199196344837420587172718326642778311463156219596176755084582798356080437919785016243206460167094773950545294371703898156062749569920300646922078947503904281136055979385289895761114030031678774140272588519268044318759480354553366983673653647883217546761847939054041300377803271958489294988284719635771733748081996103453627562647477440416198862728156284619416722412722132246573728288277160610589355811532521233574828220128637645754027983986342323468812884700924507693702655233256642257908216477388109095963901843062757706110708674435886941837660520461893229817493395216091088705520763350273722598772722480490422761779389885625603025313485316321024442431874439453583975024604910637142613907529885552600401221246138982882548351768616396245888949757835923651132237203037926331013239310664026498129692238021613766262831537602220367959356611790997922367713727841480285103035116914885251094206717246154051310487332806398726757809753445749839797279269985563912025979367676958497398113972657365704441563858605521215276524870503548889668106969502792428199918534572489803001343462269044601995121303322438844222037483941696504701104427538218015210196701233288292062766875903467327441675320525203843842371163360046312442679835832351522424379823097940140444092381119175138275602577391464931586106661229109109486961619230970204504586088272216489055195864658704205716598902131477620167697685052464541671191168036477286036204254915638844314212456915313906596378155064641330553155957859894329798525833296865509179285965353264561544389889164658416826193371193937875454400014473758661768878198531992662973414623737136075246591871750919969867757192504623983729815850937773945913841727780976801133225393489760399258906583389492847413342948946496964566190943894153695295641783159975380388644694903680745982044195348983285991392982170058094649680388997746417169298966266223591356495135981322784762253517638583705418142214296822533511523200304959538312620389553710224995071101745590146108449681874260755959078215329210080323178482418448951974394459541008600173629092726550513957710385846908438628962340658987582410194448642317698113153986154298297439967865654276978691088483411582848389933501165792000549033884338719414540807003600446699205269508749352500976842221583200156600342195843691782096740283417197070204570778620570044229353058777339876595059040184930500289751134291955316840254201573229939104503356846553722445485774703614975452404556463854968969007392020259748008861572524514099746377328479796516639090498663150489017181673352165961393704327018632586574304169434597420950781814697884790675396274807870998256666222381885356013505256933017829861987403484912353877172723210248867790097352640867220949036926838668897810098149560674282657230663853087952005913932906896748416215001531952429280187917652145114100046201880603513323018108265622948081777411298378292309643655737987655177886867339337778538114495407709298678003752398318603800667668107041878302709528235760057384538334178786690771784908274231419031579999724782462843389332489884505449396514509715396031424564073810358623600425442894440357396391264020737630216270530098729576256536015482214108075049178776441890516156375297366465278221968057177566622256090718976953240246069021371939625193260943575201398981542263281292470908792453092066033586343471134240188557517996164168007813320763214615217078978623865554479978127375056748315370018794751955906832798292537918452091123488439775719592811131042527173735994218122336566384997127266541327533590933251398471519014522534342752904908051029042386016295394533421373594691949701494022909076246300031024818695158199228515550058857282844262206640840131808085991137930733833880226109062771628965160063043956300349152462641472613032156345415177061200679619698643393349268941598604180294046792777565700345009616415911761104279648031679895385384001697513780258990248374071616915594585786543813650623218681418043796869315730011307821495983769005351227733620719599146543697277967799887733414949854262405943274893653319090612515789128765646783095439092393829901394315030248904318676659550020197652363891722067396559165826567063341193019860683846049134027405345728647117031523424397754179598313901477689656376514247663623763582426234514134080182782764570694686342563412616064642394464111440254010659810182133899440293731328635800051402580708478296231824781807458615923390104403856586883614256071734330043124454795351467056678087613815730039851500730277972452477087284715197396676624475766891165700223792288755659894957289072255296855462628380469908779266125738574297741252060662585328209355655279802487181504700471877767471400284579065415848787337379459189567705877382001422444710342599369119487812788237973735807633421397682675458339142100731427751738791664596956203179568496054098500497134695297731305548017662890131075647958954541518810899496973953812607883242671149636997115191938402919653631554389939256195516821671906506595805731333611129790811157193608281528888360177792330048263194721922067167742639201487193046096087787698061904677856622298640883147592938262499008953985321597012528466518761763789868024148882654428599214216725553492493518354366017625757702040509475691280415534852420340617589257179944420300447074924473210073099921517578563520581014578341661104390563139500413727608535564158401004181511625866060266344747824042425764306441402333323145268917049529333222432561113366547422170007954911333707924578632683497167363403165371435507758758966560123903712519989697299048545490166475743468533052092396527250053477688055943276032875202507371377333115659943107964355023563531636408783969100352102592220318124443696582512201145523085299636797238740851641415641936255278311442421388604251222024638104596145084373879419077898541200925130256452235342254436316417305306531276355052739794635063453412719520455879906432143047753516957408664886116210590484853791965249727090060232312085175402834351248885816859230486028873867351116930432707091463188303572201238327502529426348243621003439561965224186167221676266732179479734723325130291821212445589386921536372878855545929022338981511263303612141942268226875863655762348414929511874665190710243081469121634560658564633989128372780259812710746085950099864181427362893274755008336895405464726251122478509397072729003211955188383191818285544467040214595271152186344844619754689159689634863251928301470187826516248211793528597592112898548995388486522431458932261916184029587516757490706606763043920719301366123340920438705434782033355643118873495555928500203360242140702734973938859642562245841022900508425199393099134914765716039320243880473607591669674562444963376111824763591550785303107179628712235784983766258230705941538647099204305128787109099397315975088049262812815530021112482406564521445005296299036797757822499000788490508570178070813054739885657149021342420971963029656986805805525463147012705058552166328007173594289963598841275324299885511502981675348699746695410526275632359489279096213021525745302352685094276599308881408923607423002667419963930611721694683228112246524816909811526789188733218635152905909895187138976425568754587778711279999012709281689338169454121748485115392615964915096925716909067433717292710600473457872870166255102952536679809217757197808634077743863374788224049338076670886289331875063916677247317792365042188068616407725670955865371342850424406857830987521722101208065337800892041332627292142428086989182893114230675316011098609226963851372097491790397894754492459148840287168623576763015119330838637872532978655514907956600581373551942312822867511339258047204653598044881928367204731018575026192630938721453288455177515327935708115566891770777332996130036162610572362091109625860884510259679374021225583091148834864256688289466137353432465331171328946540866770095980067368873384156657372963422640585646624402330938045466946454080539368404969075093676526723438579261790230344633137684156286856069197360851423627615940792860191811003504500660330576764474654572465515183188714063148445468175437744258182986570223145503341202257481748221812458076286617341652715115514399399642572548275348908789839539649455575149776290151542157843579091064507687066902932824469507873667480646756015246026313769414450439227275066870108953733933592755637627219251761956905916621734907586487030767717891801530532701681613333003440085704230515721093887076812043335957825681226506826191084860281618442753557886107829562762890777026752655437995625738338312989174029946596915636685319823071400009811684951573573389457452529666039911604816672651164831707242150711991964770004736299149724758767502830665671143496650418581106546446678401849786110872964620380210223699451948972105170006063780535200629963405673646697259668268843346203767139357024725667958315956304330710532696017396072338606116372369215502344770823803286829066673158154639460402312810995505962648371415953921348036576085102066292352443508527391006382608838616937021776665230472645609125579015465028465748526233604424233673661688213564568111879528153634672197823806217023083035590935960748698166840683724693686056438053452562056961895977593228060551081392407527965678623719576258870037488012693431087360818424011600570324657023871372749941716318121936660602492761366841536412411456585416036801000953924044812014121119438867518948525495337178602468048427945443385010001385711176098318895102913896813701983608326402427799783866047626715087500609058173263364664681578732795265270037857087423886419485102366463168773281605521410488940714555153239561455016660721944542862864768969306554880325329723973585452886077448650068781363394278600244229792921731625559348766898511608397552379157150227245398770634677215462010646462223615773451969918085189536081677113045036420625244616341739464072216880022378681555075901336591620174160620182681445864887280026184321902053411937419846923494701048021976083572577356594034732672153650622680258960326692159171047285024060941517662353971596324480169174039241597880635660570275813314235005200686463854711706664123834134858580910083897790561770024667877312752422144324119646417851144795313732600315039929174604349528828993788766657974789859627691334730403723025409816605103664188629199671825955948626111914239428032353761060254368459645931649669918776324363694101572511387696419952694858871690611397037542863332116225457814537032215006602503128440037881837149187771394129176350706377559923110860733095834554008805687420974246210966553944806732133648333375306112399388708039278708737634497455055633768185428068307585324113857101303831514631010523024502598631369794276658468851950388496880447481410943902263439669119553187391875489429022092420259298578824024659103636432686838236721452675729420928962607750590395585547590029522296177994733446401001231114195984024676997627012978463073005410920832149267095614381894063345392034436042574042406030212236081635038999825215167738683704372578493632716259333552407478916041276365862556504292991684936055890419571336137828977408951801323471209839949075987884209351708058980759053526195615625325859911300185616078374048199164032920731596145285805286800325261315940768649280024612227358723760816822456270697311783442699435973520557297885080621862262548692933750104146528179592319184690793366421484321969843286699222305755298423608176131515662628584878761210594819759849579447279439064195548068783261990506966576437329992612896974506354108043140804320782105103650162385071213124475383333394359971041525681221662364626104634231929405725807599865846985237288544113639935670330002700826702179449966743854202093121770487520380424440204910118332061853778864000558235798336697334529361711785115493750561386131652771576626808558093625638293542049991675929371288042408911402955100929128583466276427649624424020458775909224508426368292052184687340996825753289957401680555041060030768917913209482767770475027584086849947723116538278863606795097147900846563112670714977408316220632780020887419838510879672293700462681857766207801030611082998909147284687850443080034514818184309288003458215990359420091022541926794157497412925933962829384049745706399421154703660478400501853973679709205956619002475439801301972221433688277763078761994622161392410436552317770036338457475851229004755228569081200448568019507977958050489229471763878228905686860359824100118417888768303096920966231277474532777609204812724509457098671213401275716559081101737812738917749051222221354987403183013668693564584919546579143529882707612113012364697518727638463749975468618409014013271040674282223038335431446961486845578502843215436437169623908399156817287148646877085478686768193039913161022560055303622289271455386118466706698161966282196276421210104163952606976579667186338721846717268900230196983140685821560590319756970670118639408247317896716069817666036890471360855732210480734290512730189679326022727730415173087774151195850523699937135593820456224820852509215201942675026313530143139820539560507810214535307372889934044951492709042404626567557903422421102163607531859011327329943309860790626543978568891819456930641841945548480645816690832597436204952730923266182904233569559072735196412619078109539892300128998454845862453772996900323402896820032117075291815689260339474269306129914073178499628978962698251424365707626072140287061427071532750660357317540305576633654940547505691298584537566352162344758468652378411303336733636281865548453255681106491724303803871618358367292974025446118002682610491918721265715229235523580272473010391443241332987326248693713249426152952836912250946272360221442549801669518464211413847173540741692855028477336002970067430697436769111551025751814403505823602896850765640174897080024334783240772138429684806509771043767586002834406216238789644566202738575547880816918965840018551018962902024203200324114085595472870981439829441909337184156918911600144680877560549501211641913576806209817833123621423690997694098000571932913012774705715509247807876108980745533055021013697969173973188757726670246441722528362179851575091704665959284579331221571772215999578336059166595053929723658167497343074744118020841154192954286588987870516730595741637723016548907828155118503126453830471452186897183533268622953520241747459220237181893731405060477783408415054374335710326629195029735986550443155357429684935707491923325353117392306152702174969974057499679720358311450527972314714423211150007603886154591740760814520120776745656084445392459315202840625657010205276677668712428467595723283407103374112663261782301027803778901586420431053413426106902995484495772456865556238553122460764393442254189493366974991737155610937212314122280362563243327906873237725869713931346478499883489083664694152589605642574384152882984742330503850697358580957491030969058465111767828787310887328245134980362589112130860158101203051388085959192212211083586429263259820012371650396715327055772735411817183327370586895162262911632718853854172997743183431645746010731715726984542146842026465200525034746196049907814716455800797966230834824339705937146145057644663360456167575611059251467398887465019443494223407790974043399308567844651095022251157508840638420559535779216877318527903891245000753581148306309205823349898434657205604366824188578072516328493755163061559171732858593759320521716356497867388800267697028174920530092446369986393801390504808161269625449833024913736510039763638326629706209254738657216305560721133719772903827073044330995994860376590302011293928352621912311986978280535547670968950587895493957332664563381506417516158264696994092869819446038003237241259451240046033685200841840080210901169286019732808646401609561686034997418133805946425632914314247883486264202334383092254162295550627329658948922201782219035395703340050640429120021997463979977016276173051514323087370200521739347146214888662539998717291885436962478713409600896528657911379637646808082007389653443399594958704494087159540308722740836752258858472505524860099328420608994271276132585240265119013055846107661040606449239251883872617932841909436968246092412248185005384282293059681359419029715035287397625765787643653403272356665999573767108045369960466594613905036842868889488538275814107015346180672352148110691365776208083995242349846538571073324463312021329561381415288727696040691396421749793986554603777750321556225131207813054925305814041539490068428765159649628035940464607118973672067939877136045605115720750476176118916015580692525964802152000101755066892151594997797915066959181389771125495101218468048821526831332907967862679273210522619517204114930818077776284925059920363826035847447344813613492758795373335725540490611875923855409276126679682929895109532511474636514313710820961101895969047449881748962231412811835868094070465351885990206811550819447160617192531103296508434155412947860264205580903997402299844117680297457202866305967821132395438870109290768304569765884936911504088135054560086405508030569123915976752418016435690225438240119755832519474497804748242878923938144652120321090617301518108107610101142981495166308465508015946163148201263370728937346085227139777527079245310226202137388650531837857114573736794655764689808062522422899817442837988413490357057660515314194880188760891670569128094544606832078950341715147589345546558374885410694822381092945517000679208128085605771857893169623974458981158307557379477720770000557018382014846057743260053069947943758788618750666742581333472436112123674903594545639471287955212276824637718000962690284383621835269224511217826980735949953472551298079059801330009853484258951021516760753680737357194122398265570903899686290426670348104309076890912847927941108853373397474152229909202510917526081103858926743473742361818293326309382110654343774084285522469383726625941770260889959669279614593769249853944057837201491636211346613150347855090606167659017152043202193018771240303860612745158531300007991730758595033328899300501430414620229062658394455788304289939019932259759991661644895267246467413779495576681688802461135223145426955811083074214465979511105808120949088368872261085556678165520536750463027249973005202952575365547541007698875019724101097591643552782644290802150923162665891691182900993084371221807419371161512888209709828572926112751620335361893316336280746594014010922969772550335346477040373553364343780565533253961711009027580614105516569381064814871910860814950478745261936673303494714377083787618203808518067338129243962707719651106383234344030481841748583127789467142050495037439029593990726364948908894987369955322200075229264853540814031865214070106491268649422184240180248217312088255154520641228404287774049750116237842789143769530671296358765221562885731012839134400756426892704157673721026639854189109552241091928468090185905636930310234037833269915131591231832250576774203694462427771786141039348401066337896079591155555539789100143463941090893818944722196845134694551089004177952766913666797096484658320746139513803000954004293839177568614087826565808496284489521627452065557271236108209741738801436762311014035762069138866458453938060173147407529545956801748480815247668379758099506421215029401641482240450018441268245418368546042423779866918347773231707732191966228118082361363550261163004742691130908483946304112639044095328179095722387180189305152076339083141700530584223238338787299741939317465564205269293988742521469639756347042366858638910017512554828765834818552297242843194378241809080713559104634634851622921544853285459956428799912826400867058441903988850054695990222301413924465705642325594947623094416143212748449318513014591485610743789389072968742605535901250363629166898903720611455056742802634575346503996272377425647262720274196867494644666794791779985386063119411699459669703864927034687619332473340240587563069049869704989396753586840959061800204034603567972477806769520865003136245532782233210532161714734516155409355784208914813164005746026023997808372600750759885683192316908343712754171617077731955935438661603074001868329048399989218864936593670303593090847180539000819402912937086634662021141061325530151887860595659054536625734028960654125827125021042603523061960060175158917596243252403144867454018747471538718616183014610180328867240832956055776741215178138652119990166768942145455956766879725679944414978513151888876631649728444063867633306407667076520955148886706150868989998606075729840043504556210924801731658837813422405162674952240949343980961458737152129006726802019351345366137946458035282309763552677782643007843878641660656146963737701186745296972832303519205563371847494235977736217242495417594070808392915775188747406908588885520885763850207650756950782977924876243227738632039671476944390208021484162539060587877127506584953265545475077191389978828554036885405765091036646175816458823510656513860918429628927786444529807196600846008226635367319529169366929548648744775323430438605077181576827231146339525897596061417352134189800899377565627208690483877251487725217334136641935838084260769959141252268538659613361875659885581489023731063191917997165490681310431571357134084803362737051605772927458837547269578230425011362295357212556534902901564092254709066761168371910872504643402834459417044088279267860854592407673095464995780704360286011633860528742637274914365988679406460519313805692146956109710470330742268552405315827032495607676348841197812977018954143902858004613688601825695343757894677078884242467507423511860262160325920339911147173235865785401148020178560789404707353756807751021867546080803969629139710069481646128883237459976391641174016819661715452626838884622341687600980158278613809177808851308218584550705740772174134869091025219611108275146653111618920022845678275716110645070589648619272266535486206041924539854060726217386348280511353457637597681413368991434833779693951242669734890064644674089847268117356972539164246269569159367149488125826371939222799867854450796321620771949302111434690150689280736371514610922527886432502175619783635847733366351747000654241034524712521199149333203182376414237236910510919994910344547425779807961615789978279946225254302522682743945427546384072796898403365742996547642424108682206780671456696628704231149769373290851211517630365215251420659211731296323870474186288948177209836341848088167129947964321519475421527882459927074214121129586481190334914923470455100217090215234198914340128022215060811764636309410413160454609912866632348829377070181271506473091186474313681983991076535501760468993977039143266255381737483949178024549009913689787548835324280432411906639394934240120747359654188939063990907609804885557838557418922512478177360775494746472577415138060483759852811171096287701100901270859470928048751866557508415528502083627365558474076580571637995222214116621268999518769472027199417408337488989163648677949243874134513579640510417252556305791898151428696357275697780722722530561329722423293951475174916730862024113958615174884635537468859187426783004051139566432827160417353315520133217017137588408189938121903515842057919200751582787263997762208256974746817639736243882596955101286951157074812693376656837288938501487974076131663170379740191792183540085093498544069798991334587751162937353224743200786208563398679596602530489503698318330266440429928348829038954077712083925039651841110122752843022858325591008973812315073354320000287391480342387893729872428688003386326224535733673361191808321924248186067242813451593402194657458553599448564713869768783790053534350207008785980276309715836693987721791629910773247595153204923685964132660993127728873342319521053020576085102584963566549960064655175655708413493410313483540663004902364825359545166959784565981084564397635098767427956275072717932709226012464039688808276155884711481647777479916181233618633886354852937540528850679504633222054382524990725576934761347398491615214442503168907459613668663558252262294079665897175944522989471846741419432577271318590773049106686765172495653997366499724978041767182155770001663244194706958472013474721854338075470745040575417262017558977535758525942566457356920583105220450231280333721625262111678181875449762205957190100217549538863481831962038784967167825938751347837189791166331729971451840634953307798092181786006304421530619968960935187454007690557611538856737768137644293020888361848701227524723881627913267910412430478532704529950122533282741441417309023226827471953234522330069041040421779657552317515318429507870171707789906096897908749525933681872640300322991333558110634767844343649985025687953281896094671320014875183659204686906059363404924498044787195825313872910774661486738152258853680293392379296068602809113323605926733548138026348634858056040408303748652771569999039339842530026792401344454292339967190213958539428553923618379393127591353427644198953252517783995396601054569335158910291844232389024967190526416893731833055053062322331438955943083234491283713441078333544920163653220494142322478910251179386087405953561180715485705537450817621006644189215499207352329039934233152279355635948472724889356084969973441313686590841419007724950231233784524922238407032210748963752371401136384588706592075848396026712990687462338239995200850000378094089619770756803586142601417873594126517769991947379298754819567320566424897590417000131998748813099789852500873497520729248168520820047650036397311658721572943243551972747543393470811788786841778787036504925525012810714542239439024228943735741820443485238467071672394353580054367868237665310124662789724858098512983184048056303031653196001986542334737024483927868855890211317462870453532292421749916040776756096938624817750444450704400388323452580995263821753445300834032383768107506070068326087617262592959166346248604683200328637667367507718483796978106924986382342242438614857093068449702377010423186306804829812679258943088432999312503624204381386985028956936204462157410060103770341082615870416438140591757443091127161802597928583280514268776527501349223663285950686531264048764517896460297592515640740149110804670023193243596745313626479998007415266396103481797166121688472612641123461412309307197673122167459675491889331485858665378000212102523175499740554221909667675113587025822233349838215341248216658889744266780582965871413100092492068926948696147284413188273531764161150676679061309785444167465924727181799454302658579717777218966761412483459133409654012061052559381560628632408100992191283002630382077148785911564509333674254962924533120003052865949143444697912389977654837274134625911357853195411819762725193419436695307992481153465974510787680930286450453725507041086897193535165583100393177628680280655037376399330167820318819979894170493119747519793276309133010605482641163023613301195587995136494816399629447308043208602863551233400197646965859714997767136576393560706447188710521553488457006761472321118487596625512553894703482777050569771032641585692654740302448638095999753252090007256458934527641615020296047687602028283504181278393822405242456735506653012690707526628951904077554478326547465124612574921001066874109384738140728681642054709355734075309575898168437675503353109331790164228551230315588081871894670320347637194865139674867898556418954156569034376266406244259390574398769290933143969247464414605631085360391611920610746182858007403745708728703631297846299647372331961076161949382253582241976902132007316017283786090365167925598756940934783021399061762516294941048642545118380762869777580706616461058488670467410741272144413354212171402717063187999522559925712216335736759739284225121250473303716137957249776625701052728125814157155728763421534055320551500927510375568226307242866699806358314971263883586792794874302890514720632624156415612063641116295614341499602510753376720417931885762117262314974877906554828236159264818388100547222337663189707392286876841660530692748278505839883845303839383704408429139993444957703244072351554711958894023596406378198119949266462274954818725851903977441526516651177693882295704010909827677639198157484361045439943287813115681535443520237795234431627799090515820827640279955845781836698811372485945602913399544768596119967955566082460532054716820382889413115426561741037516480808970710983168011089038958613446996368217871737000640834661559435016282246736892261816660100212079997600297997971174771127663568426375186500892552410383538767395158050378388379418026548327556710263643006339201221975746655599624930677136963144637858548618714321629048777936368390198835163852112729642871756458312915840667138154973140703503810881943681440016429728559451657098327052511183313809204094250928774725500226524104534008007401157522530879394449983057224745131993158786861811042457308068349454425120500592733467236838701375432485735008791787239334467276317527907032141020230753781262962454541895783081051047033925281427666117909890064936063400757681010312706579175968954231536103460260605297459118317908889311897479198490583506120507174995460446141430089798882591668254924183905931503243249913082640822267707622367553908975886092770439292960686123314878413529943513548915455959401073972676218995147405677944239763298743145681182683561941642699699406256931453936109660504584142151178154703355940778446906903932212459079350873767836061539434530781965394908873431180152248745921077350343339782956624003534642574819038457181894663916272591887397707385925664012096002440838664688653662202632963676544960670741498796364696567083556798553312949083876575283615549207899843539653977022476242165841107367105093707798323080360648243255424773219167218174974358554399899925771510992950491425714616596447239143394436608805346389025621253188345466194629587152753507936683887433613474698567809288425253683799520192622434639969075553929001065801792247659629613679138477027472125888483834121509690567632191635274374129479259751214596894136652919210527205934865053468022123547263288951931810313866529693345471465335454112204591243647988404852011421869377214881121881661707182254218468385418608445185035502194258961068116674785327807275099344437734170307064820514388374316694988035811032059839760519405308197930194417081074771144042002781681655107140850017604876895723146748021427787462875698560272466304314580987137649931847011179802455627111187694352019421062314914717767272221734382392326712161449513442473346029640015124302311771993244702506566291203221199055612329893134063633709419458839504832296978651503476553558629557510294296300785584905059718400160439321236974928442143766606276216650964207478851150479468501469224823850961080186309113671183321119606140948454757581569321489649977855521078774681446626815377155842192408516366967668442423472323385210187158205599033187716262142475710276918902618670146979805255262604810282878216114161996616108652760387509629652213612206237726630763407362879928847011674877743821403300481012622656630380606075822887246363552130673475457447868682965172282645312155050098936604982727884538450784678463570250431767277261220638130208182597737372253887687405715514919179555084838433886780849088003450863285026484020269014233523241067264512743523216655044721935184421090066736349456671214929727340327811949907053785101967952588355344885834228556889596590247902407323438670023105829571215117023050326088555755974555963347693968623197429985871195937975741376665609934565672188906787747221184254797004705291415220440373293551660602294879631667651164413564513870318921593096350567301311378684509532485916295099642996200476062476078210210825524763487265149168749146275783794425074163974791859901498603990863122476044690411663818965066905492998954287902871159668727196301145429605349899792381859969820516951776699292741151211387811342150945598059192142667946912913403783557778587021977635769344016117308793308385976289603004042667134129824391550801677587855755703204551241372768243361319331327565954064383955734138832165756833521192423107651668426672294279070012489852954127546606222886718724408239810263727524457750625154072493314501545713107534064930958701713979616717965008601377612269534943444054418390512477962164395297773756053575022266093160086499665572710463173073471857921272214563877325648351111821776111918435913616332661711489156428040126020714461080272576228033389321545497180961557282570353500583533705318131378263824440714565072254294419713189503729218203076772506346884334216222203094717824982517265067329285047988088871915996851571898605051788789511999118915397614822024290818306674564309976484549456898034015618395173524448917290163798967328934133306280170246128725479636301228134852022967065006299253155487301509067193181738269982396932382757428270488985699988942562642917905633933335981152392485574881656692222913843882523517916939416424615536865523461476914806920404978088253502952874731933794986402128183511769286278169814177508058700752325487677825196101839769969248981403913606896436414198184129778900450242315985603908256004158910869819038508945110240187392935630898722053700046480147091705531128238273344740187595189357527163903107337783120069097246559381335051657096588281886252643577078171667287028801935281333636925274062979397663528893825852843097403358664547370679006851992630406866492958588553171110855141592888752072711408869054627748563189058977402593260223812338843856848440691508523159917904536035163271255663408909361950488989093591370422179346382363188508435796822081399121655398389088796672979601459793890662563719647092464006595516213169263253987973964048768065009154302817308289325944503927773148111224977879962611817494348482214618030342011993082042157718020127667823316227872563674652988996103068826699830416497366675976062299461594958298989177482553166530526416824203114392036099810179154543964531465262320618337712393526638844878225364234293616453058506014298496141639601460053901498784544243853441001571463325874441263299484203665762084177524309099172799140894855242723635371176143882846743445276106207549116735929965069881524379547298406605480095862823361693934775630255190842331217633570699259591898202244007464910879251176802382893669517827415601266341615573789245397581590532077627778219949720883427803198654690704277209957304255115499502364796763751272171848222630505138500639174592121562600197026474069932157030123457806103101999573890395027376636292249622784175978253511775701215615984766779108644274436981979253710775974030378777456893840041266226639476032462018532965953519999859881658626523809975861040080595660471062073722890307321639901909970512031079483622939674614799786593094465248120395965133373846567626330792155929268010778135350167548346282688182114092682395943661447563965912312279628039280115325145583085698380815784195232565983138201142826609732524042911375686059814692960687247148860136651788591465801691072280189068461843320791172946808988323844388809089545991966920647861205866220708865068487893790536657421605540513817198778060145425088512808989302547226271831162244716575527268593320075137442050500755881260438149484998512445244664522766759041253283987122995871045494420901359963625298821782875113112043576918830631585264371156390958563027183003828289741584440962837024329962936595446705392058571821468824597759326381265801190294596306864441062077743714940252657657005337946964158707224086971851164429704054056862569356071533003916310691390843460264539059144629951096469847118469353129333350221806582155042686318796464119587224838570960369857686443609482685893624855962959016247719963707011805766000544424585340701657120753558477942316663022563924403661881306457553970631686366960758134181041865334730142921554119597522311190754328934534101304593896657720658851003809346442333925313488608181036811763045884370828356845583139155862301828535751955584975108850820658565410018444814428679181465645666832715603870836685036522328172338116468103920133779486281316499500205148437016277196973445214449127567501124427168719694016624077965053289514557646774782040896617498329605321213325983118008946441034815550108156208355154838454895532234188160069445862074656793369986387888671414974069711755018044821340486380570898020416604218602450479902680989268193185924796422135199893203752635242322849302377318522526048635016264913498078567818235687406356976129936147333873765908776034451557668663013780612934356320557770212320391679663667082407127425460796645306600560445312717908335675262402660131580027352309887222413980756621886453542932745863233448359976515446444861043508052440438417449034220265612172008359092923505349507289105142013142180829696039116738326229788415625773091343213644071574309740548827951011565447556611874761316168510234070042306149680240674161015228036631922857217562089416146331740433200055407039725683592305899554553551727220835767885882615595410911204901335711485002085984845400846622198081948349506256924414052987709805096797071510966715383685127856106313877465820015867321488556123622512132681656744806210954570641138029779449847758853773627329375212526763508835154770638113086189518306710052080427773348585466700587319094799199129490278555606949856583217604419795939015166714950945217183884330784402720847009715648509129849981295545618890527893829536535687978510370509227057818709140396803891358004578847602415200444485105267138233622422945844905362272671603205356583023379821269898436310992216176261453334148879350764867076675044001119058355443727966332558457360468735128849603422832179913857082543093328504161491999015357306318537004773558083288375064856825972822587658722279069023743921349496638136343621718891729236423633878066822457754148963392682666739893182603292446766706280135910232494632638412493555202723406506247837565959308089737794604044210832963081265130939227855918461466944496806335959974791497006686052985729132665641134528408080474865242149716245123278610540591022392330527439236888765356700862331231126174036798431040774344558681178275126709393154023263689433322596970101868786426123555523625356125550916766228809889493232692454931463116785700261501620953687945147502237392972391093736695038079843553611294706234014059574882914120102837040245567109419094613075601641252196064807059677499636616601212169337639241627904045424973201010197763172269811899926698977689949503998947695308840549980305052993182344176548292097632932926134112999278426456438278987599197531579904661963957614366100017631973069897010283242946054369213296806742109980554302076063597179732331039836852142070759720661788546446054591081144446504559057913898561068693721107083763329424355300029837760018837690418773385116706286711499214536788072228856889768140048936151968740083586735841504419191736368330112686462263423925112598137361577673393096516936943780630812349867309914333981157839467574109295910013452457589519301417847434837902717455644343735694992009683941418522577175163485243082590371350226267143448986143068049444809183602787027912881576500722903355018330874492359843253964070502139086501758830530845508687115137321081960790907669669586380351116830845801203354027854097913108236703793640218526609082705411442946521527216480196137301349506996190168823821641593905166619312622513172615013436802215113142775692602743414974647251012730580360349934914788557109741600186804913302766836003623664997903408111134619919170400288659378240255098510087678002266153734171690635552062595888602649640448394557301850374981648935706955446207681640410509011747920516680218028597004086152509789325360773109255299243307931535303062595226702576271701360322472072138650600009948218637318416465379349788614160449301155531825418347951247307860756639854474840597112461430239843324691754510388541445729504197057328656085738458153232862111659557492910338216130710871786994101357501839698475281103395211333258932847783261167917525964442826295244382573419341335301874509187109471252673624142644022374380175413233135584302241957276282456628397650083200221397081410062922917548265223444183731189180767023512608179336156105125706229808065921475066418255975920369115802309475593584619954955826339385830537732534064885718218734237836151087707963854756141501051967103429895070203584278432417032641934649503402660457779154744057784752181327478713357840313290089427888936505508651877706345310274872224759233629205459037670739277293508865094192568919304588556454781708280608262123641547777096219041933810070231545837466683138760816223882769774686509605902248462722693353372475800299535851365723692228617812982368756289001498351667684491085573930574616538334174011810613325513892296485377493105795502755390777654326754187109186148850314238411801091586091940961479868093709632752806179149916249353681231415665648143153255303012497752041651041633168310257587658881598197722362279255258364999994813357649683229093096069345069428677885359850382001810053378686228531568061886439571192386429765495564605210111074870886085551056305048697184143255365750227099053515692809784964251170062509442442331333090814274706693236086927245848450464138618084124883028943166799340402510286531327748253158865475825654053014711328700278067055013257255137408590313487444926663849254075053181948971210523553549047730423081754853734749126994745497703458625672588272410968967096891300968529162598868090369775864135182264250535729940718264690808883946969793281137747234762236124051408501605323804438003800995499873344719586005412509112211516982752636855953791058318688238152564797621069406700103517857026517195946406256395022071362467468949541423574852890342908440117091969298068953134674068125941082071918286748320584532336631502678083063463124605909197632310917684930385480702519003224147008079598801793762247255945084577391213140897154663269806994785349374162782703664139936053075957916975241983842130999893756668718579638650925934869546562517408717591830531493696417981730138449155641083399410837935838911813475698563559400454368394068842985674880885360934110622027137266083001443695801246162818204689269722008711408789449359192685781930962390391484703895012887286878816940635338801088511225000739107071568969804647616901288381595259106883619705425385814702581118331306841534260271436935017398849765007014557114304684381420702912961705923182059489105249738436675790420383218422253619617600212063144697788526328892835583690374841533612695465524091401206679237368482454262407838612360462520139212415631809868468683757041996206065839548234313235030642769385618633420874879980161909206075543746236281337200933344779981809648555980300555468897311158220174264851257603649566634400823062064666191827212643668714888996297000429881222722167821233882886341611993243037429215217456858715759047874645002881820477504835119557425800808521750589544282184138458903690602211865444600610556016202236334639593002664969222572918191048190001534455797725865248397623236568603733237870667322474088128137477566188371118480082312389984716863627171182087395090003052770423227247390043318569513401057405750791297602031949672733565388835966206301067518192410329114342971972461017566727901345376025075599254479313121428454066603394364229895703200057222514140247593408138857208422818505870667770164669942019804031390656173143158916189919619375825285068659731046138955607757578401590228606238579174799252387224960020557862065934610918524202193447078178117083491420069017257574385248113984351304150470039242907829771176251595127155893223257647380569638642771384194981200272165898955130214976687897119909563381339761847375464598038068946389979684454770949625009406636267957447533319054301542090716724127562235366138101749854807893834667457743861489097374530778850392732859915269805150680240152371113998259352064621819934560294250600429250537589263605913439970210027780926126580423026478936685882990639858060090337687546338664672545616599565121257184311223926626791081824183305613955342757637766307437425404896949804676679725540779433199485972599084577928156438459319101447710247431167129181142334200368645588817985981187321953341785032709018009292427504052242936209364468588542145343407395657739332282389059612074480308196551659158729007696357142351194722456580821317508133863466656639921836533034237991457998905600735951464443132362514616983582155685231273409862689470152016802312630849002460209474204485128726419718116261650174862841018420724995823787699715983989299469136768878679892321684952908432317121592976208700059493616365724948742133630555710969377205797902759266403635410357271581965962176463211628327617029600145494993795585471450372653128439746603715390767849569914279692029703271816205115668890494356896691002854016725426997907441761322689402364023831296367345530314314965369967327793440461252671867118926123872147784207249342332007448119024592588099041096282022694039628683476944158379627205713932680120870528673401456286686167467232095008126558219770123478520329514635062497224288847493557274647655666000737893373961319478074422576129367414807753370430696527609432423267340603584585682620197185995425484467917339869287839509335688436134873003333735110939896587045851828000747627773072262115486054742891875137816832877218035283923450782227894216815974869329366640433421147007975462310317698109124777403233976591143218449578510968097208593586881774033419448887688855702643787645722187145406772816293453241195940302490113058417154866559718590845125214764575917266557476654081928458856069145007117317169946210946783859158481124623244207058606164911803084562389586384728803889135630806178523195433590846398885856691653977704818955653828520139464204229189428008970381718685859674556371716196438699182712294776371391715667801179824459960291220329084724875371395141357690769927402556228214360752248297010150452528349714235053864538857776335364297750901647577094913737293299351964567227792215511801838572254104936559305876544084047581207684800303034882541085005651706078164852101326580694469352971228024986532118667232576018424454404808079772689047139163948815726161308566141098666158981710286250596378277223139505570370162743438661743496466059120096921494527275425563186213715142749362700659411001962602480284628161949511718375394325512501752742927834173512143779492407278043511525122261418706035226837064776934761786391246946417093358506312202532162924416409150316387072845227308008647937067074473193777845632652351245611949801312232787760643153957628667998054415298407337176858648619592925098361140139121450964414361564404732366232470226035570495154694822914827709838844812716049357751032750872454837181462607464230136857504834215271810681228334355272870983279184630088620156832135503632668832852742352489902928161052085212940034781439348803701324297559693511127579794183148347463414137172385595362914742160088445518118423778916821276498388735749705685424420733739956222887702901472588817974232894479699306699038649363145643523543159970608091571528060226521116872813862379728280925621399346057231469471798360265742031923301483299951640860126955586964308022008470951962211011363016854113265646418108877377365077230802839673104329121118935846810989048754688039853784931682112231342337423995034537442696765937446286227561972308817380370774124473903421823258909350156573392806685553622052410327232784124737249664533381620831785976559046361032951523721237863123655351667560187980394548715926892813903377224899989391989369957256943640329316736357232626556550216056892059707493760275294736257822149816396541791048675672211734554000917549870956171158640655025697183976294289299779369036567420416779513575409443667590219548184224137428441349984696390299137949519850550664804632557795522150112374754039947087129781425279522704500624653896316212476398947784190955452689309877712179679239145563161765312396005009944599533762459102241626170908255258664981071535288610871171677872800226963932644036859520530071292564720087851238342207999150372220079097837041561843195192967999563362131221485801338084302194371123075041326537846380872435040594818215966084473338629096529203323955209297966350610926611630352082066725115039924463318322788077963034281182352688485435769706031098755645738427631945109415570988949800535054313705147056376944147959386638596439469442672524580293192935518949127091570551742825022760852591397017040098710863653657938999155144361667008425963463773213068506850742667765440371058654656874719688300265963945494561471685998382517629279316377277623960966282891337566134703465752971812977126004355558443547129739143655814305565841160192779385730771524270126798403307761871883759337989566155136477284361570964446455389947383088179152004176269583883612792284410770662560228365171337438704755184210547128131641041793281193546827957114012915462311002863446997376479801572318752576288559424457219977502171797222658992779065393934302067560039437916016972797174123622560768724440454040964761565770606573580408382436148132408479022873654575508385183760758164152908608877113995556264018186606834597554315037499311502456251355235988958813719164877839712102185931907391331779156702643325002288920336352960946124865622964990523142080754799171929022583909761641006157820935675863990381694665049712576793225032965682590248580921511424231374628845763497416418512947873776877617748600670125717386805729933060479582573457581433983906023442717546169344238693988897911201082524048088689094279455530840746709359099005980517514188300647029601655168287181587595590688568943397687575856242701878632316155221518826286434788983286087668026560637941530339276529560712358950859502661367062416916655245179335796307089751804369109439302934977995287468285044815851800143114939568133542500217346666327469700154829926327616745579554311350597074687893506962465429107521818607291976534549253505518520839544279405760978624796152689354335639615696739879509632885566648610763251300643980871211791645528302708297933042765950729966553436364796209508575058480001508969738399411215264964692030785519180514348323009578720674896468798637511113273392796837955531486003507356436476351477448790894119213740608379007787267073804628966002048749826972986698686072382693013036071571286750478842962424845964055735034448695176103766669155958333638426510603055220975926253552011988369952177793992464809943496927547228159249906520810065054912250095585053163477641438181702228656153206889199155909448835302339276083927614912732089158412900468232213775484964282847465289262408673204160295852160482121045109185267945614022911055351568701121242776309439031675790040718345124091296743542167553811123304811903031617637286879859819146432831205398718308793606527578383938967968412301666954679643799085185181672237979507621418354796034610015522538961640152382694934763210940583167066019710449722971333173580264619718214459412052882056810995999071544165360923091999688478789237491147587666265004937461289975446592558060963584843110794219255388198260537852043495472468300007458840192133542874590430945551167105007147621415616646099133956346877586738230404367686275098779553188753510321339265655523343025873610207516361866138720509453927746037468782123320161671667452208803548833339998744014922250312211836643007998349073577441323955610491882740569650011986998045994747103865381823203993496670558985678419193275543134889682006402723768576303319135420121611490641443346083135470022053667487405127447952453842169270952538058725326442162279138288745442177467838064624923001400615918165867241092755027264390882738673986720635731380811449807108524776148465777459987907439214684747792420207312861212968159571764886643734301860582871849095709356947495460258827656984265826697749102791787318571282917312232136323889980521790588874815463291781473988092521699383419841693315195250479375581268671420157303970664896510674844694137094897783043620634662509591604041188830353652503961335095232315496034828896599819054417715025405855373751644619724270536117196197230026422783774422846155314816692145602911448595711851537672785805477620261256238288300537055195203870064040870673545973224217295186682439082844227842625554431192321105764011800353644867834380695898809075612641400504274328441175182365476715686437883800071996126099023554091006448767253630598507970947617056881139409431562081461976833684979095475057927979610149405019645629001308905505730826196568612378396945895204851411893152817184517076723739721247639762523451646767600514995183749178633125476687843732284728639316443662793170492507304566220985224069264698443998519446671439893101285018875692975366878741567545308716325442594118767546406927665851233966007484077534695396882512524204692441786830785074466268935585476455990667533105983716174305409917350127309936378999530110767389406101968733439087889544166128452303095712692983585141325683803183682021343296147751857975278136394660449276954986233236499346443685562945552641112733446303830035545806695607863395465487387917038031269956264816954104809545086165904766881061350869875461690437835757554074819170433108975112049367531369316681398932870691968120203301344396156198778048953050196464769288702510804040886467813135008567653893365445929893926043020120988512671634421923776881388599890493699980581233573679436047472695095583046222437268318810281501265901321666331296012423235912481717257899450328520703781385104275314091233872562479368704983192141783340928036410278027391356567190200179443478378132321939922935438259265639289935468269357650930254406674347425550478322995874565152004988802499558318044951112560581929273350279283713265013790755853795203097640840481447054730043791006489981293664885142802123462282573445162743751367329547294815170479017836525160815878078035552003072019673555283069341530099677493495053617458589128256851247950253714941783299219112702542047552367343512118250597588213944665815005280549693571220971837435865704362226727101830271437111977689396779359623065035063795538955154235150978331452699245717416423546468259784422850654806040072748403983383795279563141524373534317280970681672807199644883173352846143309300935674075941135189651356494472493478972875835596277028241177003095650457967275607064424875516243654358645406692497857123336136205265894072634696092707686768115313905348199502560081672529890082211782361667599436243469803984730482101396069955477411109654566727685281983627758477136167128647387083675579423575085495911020125716345944973151729521318619405121879275371312147403990953660900861618919364866600736122511400447004587854164196555018787665573267705078172497087985250268359542187262313073731782986478766992006170863683969533996466793980320062674021594358051701180494942612360268310101157532790421314154156713641059306835514404128243646263387886194424871389606522458321396107481718090893815391033071336652368887712974772045130694753133007879776465322052986607008894828447605136632969159376293190309987833615016440968329350706355000779210961051088465285637586096522722923258170337708134317774216166228332119456815753993908239191490553191297316951268219404607375240152612726227250252553699400877163647272179538863681068103795464409994088984101643351707820175675529575639821113736079778572346145893518191354534766831984254694117337396678379518787810031417431188854909556145176043949254038647089465800194124556526748814138310717094925981608265752213312869687802966455770643144205385481345806682291969607356683748919636201408006180199873505890802871986324068067433223800171604174935436647513402351401094279761131708274272837182576365811506065989912531528105461754327370906534700424851049193061875559498126835915705990927493224970527068728022608823514920394040241450963741271930752503338881932874214218784290438996027684311849665897290789172114459815004213961293271954029481957761913228245092123840781311797575687176370698457759686035093315105002649474136904636399515464429985919275977622586888581034922553560542565212283958136868879003711057997470616858440610334042528870784951562863218551647903949819756112346181739353826425670850309575623297184448252839305403414138993468615282461883585832479971854421185736310269410389921001300388193600535164534518208151058100590680278096145497300861614947570623839130374520392104487279885926261265104447027875372164459574926756796133540504123692858643778212084396756557128657877449619900294351727213693751493758925864888187989280054782508958146237380918123550036359283181800350165571917873126135097435070974585482048678228107957620420418042407199869109513782854784019102223481296027847708637317182541315940692883325192515397560307593208199983651494655762155168858208309582851152332684777477758971908198608139114054294062944818822333219146649774507782273589315796732105513513237925039924566270425116332310014936055694149985351804220500929333567708272516689179899809248147772235952811592664728548233378960986001766996926333768385118763117505709250117650420705772974077943228942340042415599146873233884453411700506699376378718051947060690466474873188209387849045159315499881099666102402895598849809290950933413477759701300516275921785549400558325313355825164032809924443458909270391803170182511964067190399324578983395909041876298869984030489254972920839221478173633101443117528249829765626486577700985955421641106892733835554379508278542947245650760468373934371811782745537982982592386801315540855639373991621348393977123779086721579894825451284958622840449114914859231711275795629090023563690144630607472789181994796591521218074878486779132457557621633586350915867868377610759797980689945195759327392099929941804111015938220048642477621156479538188322351530066394379712558189247956329741348157885302126850111666205178694176073679013866017730440702787960421835252438510654584344559974060938146676665273004504048841470847816767186418633757620812459338466511493143479975277769551641105973395529060602455937771855835181194225799659289882112859881472850631937924337928350411676654802033306814290522351900457289530117661971139479815535218925311655873874438808211838393615012195650117894104144022348822351268974599237559715803793954785937787363412159178407961746818659803341729194551168350699802334022906404198124387645895350384343465096118957045258807173442172602687861980261359803239558284196999937922043420623216674176895279356154762884806684819374294456912561232993752497793323193876168657709933182844038933633454619165540041391024751025976403066681489786684007521111935678728413273635766898571142786147839067780218846818449730073390385115153654745131132773759884753587408567368325406877603274740204454079876343749458669019701977716281430256595185727758396106934640253888327648427097935852212859285275723156343121010790175675680169955512853381626799659417164776485056527792832564265896092787352133120429654557566652013736261921514912114490977041551962257396529366629378841400646396986393924038809006559745941213695959869680676120396231682619726916547541194787548608564755694010173790939108696143789658883656629131947635168739337051014180697871639511591790263840639866603986460768158900011966890418534119333331725949293271497761172349546055056129762762477990144086849145760208527816622801733518465328596699129228180578096395787999234501354208140546547118795249674562272989363197125068486351281782996395106627873689474072122567654749594000782754853130640729034045283950255035465362138648706995827446626039797856692496402590621319145129678349000295903767537936009552710639766277268565461443460992313551461666505950371733077543710568710393627089872620095957690902001689656016993038264910188797119684761338185206563864509070894174746332803415842250759705044089087351456720538884907536693958284286762570900810950383827383958587817965652620209335040476437529916236742669924624334031188118986104853497664626106920165030553085431906464329716407642467546480790581810228508407389371983079563357395452022801326918035124793137472424409997281396930766953375859942079566295020311862686112837903964621902087233491044561093051930832888628559014657163711762076777976046768913689125546266814170156585218986952704622192406771090807925231814219840901740319308117556427814051392402706789460604378357997068143697937062561829810553742908848813234235934618778476575256539637848016405601486525336115625483778188483602928328325511417601016655807831217522144319974570183852316886329949787797486965901807965514111009513384248771018953724602954802336789685507308459902487713063213068270791171197642759401158708397737655873704626785818357821641441284184069424306263351653549357366473611650395603627850947211618383699227274190694863501347066407861003342979062833890523190408105568188933871766381361832574352081451763437851893829463125981320147000997947622348983023335569025849761714066864386632956110562689220726910424936185545908498590720448291133997237133596319897161018379856958097297371009587668348099890950434426021729379958308615690295688580840587307513081207215303533139575708625718079926798811876373946599182187105038840549654575463724040760325383275960515831336405842725274545428230339341802812164152735098604000322444702773463348876576367129564081437683081519068521044543696406243103814790893871037806224100264300989066247884644969083643684007019450179669869368697250379026971176918225908478992105698074800514457964870538995541371766807437015872360347629860531948993247686119555881715778093574223656080574854802011855738590892360135057115923115793751913398465370691407496652481678378900193855974696966127248499458964334418656245900236345565000114240882869577133133162657833211086856520124067488853698341911078547797101451147872296055020872932118204521804016177436037821765712741197591736613867826506547930315271432890285268138626372413365595442337779601682398659306462825147346950713017527023595154296562533900267317493520699749601567239780206365002075173247836154230374386178648056630315808748245396662440210025719303240459213531079531255222541317454251284362037627653114066678712548267704659184099801455711229882689324537674601802302522692239170780668888216873126095651665179785661208010049166152996367378161061271832025910176150279850929191455766379085860269997681059826133737417126297258646091129293290890530149413284622619171276950190245266439660431359732374780718411946411454798941869961363801153504796799731048845552811797448970310211337590135478885713102978169863063510338057099427081817453906072987440762972894685302767707055100185867160406737030602288013879339995803839184041848942853033575529999408241225770728643522152876173110867561833750822166595128811383730119106868367802529657660740062646318966418012423229938261399525042095202178861819076803653810601739593513852605498680875673496403890106986010793830423290215875149599331724460603397942159593106529567790838699796753199943794371358730459513965720011942890634649115713473046023103516386716913147234052876625333249434571258595580567013297108672620673441884228909881287454776911049124174515936438283297900398867088642484193496211328105920159701976874673552152221488231147135923464406776869276641705504668890243031943750301703563702783301680666101478343893079742833793964504624596893633281451814121409254194559584063826804684540116914666097809943285724040980633167501297973058786669897875739061856380907193230559591012868418107411817858758231836736888703999739950363437177571686624891574308776996977803021486321543226241458732043644461158267351702332374541951787332800063334505452601572771135282300352728300573793685416905162381879458999887394152650634023366495178997148859421886765736060367018470931926561243083960684718649496065427485434027592342303029285102253644710846962980790985456221105835842160611081666676185382258150004716902641546125605087685412101303341162753459456155848955878237950728724305545623389047078062941126615139142789975029783202162340299410644072031025584809527005600203125184580798427302478297666850548955557164419067397393017610668783180191226796578377036456696122849890392872934856210913056378725236148335710797612883950226926137049963351471541089366139563810620796372109549282798189421157469140434127411835424479272394816165922163467598234697901687619665167536599766050547489022987973213467671266768859776315238554109409085515323037867509408844656889701920951140733513430584309345844336335039401739733256617218572749181869197421203397037276734781153906692677236804585718669515699331066482965985359604639500563125337802763568757501166930765808038039291295709745157452334841294255042820410108595834111183574120257354154677875587404293693623004817307959092108389478113248108114797700443741825080384384275913432121370234082195436133367068476324400881312534666945587303134026665977668083247586585861645316459845255761851212571329370835326685488451209101057041815527077519565210852100391750539719136668653760837092720041647581860737742174723463412201271185316257114930679817961305501188652047928870392402270938359420648326903893600762611705384540886472888715929130582820128739981906873441459986106711481705609626421191849189024270299500673227954649196811500802468692071469108939627989256941917647054455516509965442374428891422530002996555022858977559782961398290190825012202766368075573124741146393367467458936609063070761311456433520113081508489405946073608330856582608592714465356003556480634853882877977062239190222005866887591577706922035711002823914963545162114048148890762385179061538524812656411497917284411108172211923030472692578191327170269747646469200397669324309400485523205029486293964588743377602604349933390806084023273753755924811356083354873528324068062478533196917880401542477255492823114935083399909297774603483221699345478410598428725615067077756174216668704832482767480785180744483525607376594479950476225496721866237430317497626587698700683908068915575152804549433016060835062716816742420906305617201989004813540473829550638769744419170852339564850213301405340982476009168470021446205908705198409613501060759125997667222432024189322700404042285701577038400069398625898027314776404774932147459011662743307888826808654903753177720616323113283375569769443504261759588565328006183595991633210010211049560703430408729200076917574361161360232920617697713957596409133331714958971170135304486457414609218837048519161005831707695899810761637594860681034155311469853567482244346845433298138255425749822437788238946320489154168308876557264642405506127832822703059359012718536907481571130762767515927802873791618778968375381797994787482893175354932670090415756138183063814831944434137045513956631680452053063372171013718330606441684819110693955964203233103610097837046500595718562761191528092236946253598414575786903082594216195616356338077361946277017962004305999736252228328919900758247593187588593832847716303218605951017255549841001867013028734258914324370818418503476108810720619640501481925693725058846009695850976773895666215490624261491201198976836679554645155936372527772817443184807264957753359905087095489087012082598707307038230858296901487856549771546671105390325354418679869732595622049688217173638057345534483936029425877458046435786592220844492350706181840159124066947981500776883635317319429031879386471176403243495108410685582251817977696088322514109586429472326858723898104474212540889559613217176259210928012551307754493978082785482158201074633659617479417629776673468453104564765140899165941621622404408505771804940583534713908362652245193194238260241589331089759669429017564422895496789760485371929714897490788948954028196273028047815327074389402785212430750032312729981452583981393614072927076263244856479851503867495145521079841286486881697207417681930323262495530622351417695246826306981831441345417708044450016670041830564919275805481017696753743241790272017377634537922418718448359644115008274162152642734697940317747893557912474871065180794576784917108369138945094426201613979918440788250612242065285412273398957742964642784661512999683590435743695378745861261086680294618041413264586059638101524861059515469454121512928255678079896332650313700931715798653533928394196579033451080150971556790065200080592378676830786187830482579378564521192139300434318209595557378677384843052303311037674871761614559144525203675818089575175504782324750253523330656784824920662347132609996476909685116684315525476871910360418591905284095130513943241876857987391197558607370895710637597029525011947763073536107794255190775621845184245285909349081122839778566655819633105636212693821374785260148249464145557133754158279372493386416302332459160601803997710712642763281659212769036327062206798791801179746232205389093848263643873039299885534645120229240516896799427169464735812119337194202012311322447466234702213924674516423311113930496894552354840462097210925624127464747601845341376877484999739884701452757748212704739665132679989042143766549746099519258907235022148469622388602924207171372783455692545409608798471747795654913816500413129031022090789993828327904618698970479577042315442427024230292857559956959786802652982872549846733659224787854562465611190485698538494924779921497234034285803730680619226548015115942147851821224485613048275017255621062152878704627881226594360796079853358849612546782403234864460342215463212943722920645015200855344157472627539739564249165188181436508498122414612244299437471152805830720132492829253082151236926870699546419769922620037052082642587316190568390434183459067624855941675691698687438412927190566167899545343138637285802638345652584536942351918362706587787239928836584490343707824129181239536948173570327160747691654004231001547285674973656764201537379768022539914423910876239234588590019381143481083586833829488813654400364389083878315081562736753172168178338861075886907438668522512057101012999729453143890068198683855595189566731391370003376102113168204165853347096898660546717774824010404720525907467311122605492481882567078136467460344444927817627725729434101226912206243608872675657070095994946289026510070904275311048160797167892802230061245090778019311453701952587506032509878206189902993823183867742670117899206492379996444402457322062094729308513246002435120614343342084711275815993970706308396998557836415126791508645531912113741287754220947341115288757280809882130410922656666295830051961423681650793674620380796127921103624485926763048958445572320838265540622671337660264123842606065169888406223004792573310343242592675770650613349007750567965601876376259506391670127120130405898528286522552706307312869644896601903250048585640382152080407383989557954392664274417489696116187624102324940718478281237216916145564307356746634858503799484440921560246020005985069328925741193580907589766251568127804924211447421834282057247195855706060940790316365019767366015128147400676153562889484644844309015051866316945801484098130012315553933817398531043870109576685762219147938816411123038185987929682041496653288726072080422997924021504266435901698034828354482589560880190468753745448021382215736205790340477221098716724126911916798720219788925721692855828381109928893617816479874515957844934230278968015142192339146272302466428834036489658696426793349233032595881041170204210402894025784476593259457652844505449580514241713520869308560864409313049328159868786716184661754535357028798832984403024716844246664959006058948771255418963716057794152196982022004980716484911405233701244766102215725471625456835113429006753223061844801618480572065865483160586741493936993485796008438409849675981324775086234047201878115013418111854606659906411134837240925708617854390834236550736530350298717810377974142601998079293763261135697117687182321213377820126130521740121902299850737250511528570886216152428405579304191399355143574258648063011258211400276277030043138092811246657543379702405296357965080185904274391396043404732213557997202572692264083025799341257203734420229026023811707008703942418613939279008306162674101214181673148346468755382733011240939473277494886278965353857023390709470825475781146748291512969710136575096405152738237793610978988130799194755794400130196893681601858513647385741698021157732301534591059428837992818455870702687213631700948000311925014451994319896092687111725991978347275717754850031077262508396160646970739285429023603287693304421974833057640989497438039130977600188608034350384798567118973111378996664415206555707568606122260422235459609994462212742406156307041810647893144496101654496266074961168648500171938498312982447424634942640081120058389614845066580512732483045463947517418815544047799955504028392704526488381364526537545843143665699149168284258493487198014857669005770746586064642175366744836717444045819606541163240394702323549976323248771523102025030357206064033661929776095496980923458877504101376059604531806633253886506039633949392591370693654190304021776028365837999754669510657571325322171287053168335040200624721995786737926887499617553453590303735675361741839104159689117215135500176694389248386440273002901330441813609494322456857030477802299200897521306406052902036317641248404067329740071937302246310843609208776234840969878244953215065561209969863672289290541168856555828866849005079664459028894121803409445586506893079708539393257365418906664027734687492495313934984271443702156048655589332810499481041746578164434028404135834091572663529664278185781716701225481216012163068954674850974415925971098050921376645737265206923158302100213815035138436983480262182546418382710958570818152438147898128229665506759760879915170873449605160505822518140556890412746343389855398701517480970786818774671742926693326117105700424077304889593129529936529937260430421596657630444497873078318901091057724410853249694146858781681510016916557466493096079705092833422033562332097369332034533067630910199953267891805833962465672787914088833898175190918045688311320809863647847331691441351735528245838626255493141639290181253716977175320291504843503625110779407150822966566103351076892254058796321492805275675859752356359627199215962825868237651473471858045838128252758622976657945516660955068463921057545569809097874377909482167157871532121239278769772369783381008240696682280277228693526324112471311661971058553928668449599184964209759317403190307148966292894370157688541965435966966389900551849948259055689274064362299288851884398940750895421210255215344784803615178103312328199142580821843105363176649529783880673692372665328549741994992643838283355536357929589881075239424069884805233314262010139411696372971834168575911757945607970082489287319197657340456384361372880479339977643693781533223795787036917798849108903312118029974368491461502171804478192397851494731263142411539067474412390017841520278671757599884082311639460166458308130005134686198465278277746728741209426988107208039505501320109928621817210529798019736570609445874282301167487278116029229622022175891098721505327768878419696212291202571658485762374373876278699546404712247568697698870672419474509439756655895045380928258587142037880112565465551693407365571649921511365884020588413854461261602243601291632691280599458521069119935509065251046931776215140381337287334473255165318634526222827520286473589991807126098270402309295591212452810739476839519220980303003205446461719140091846610832234573746406896524776659605326193004000971051535207639298851101892750763295641084666613201210041458793832778340797064015877182855546823032193825778193963202127149943323261124135656604423080118065599851008501314659955954571090161957993445143302144514336929384300607218266782036879575907175243312111134573342257515666550246736903362544444396648788964019705437910473001846112239259451668587038858212598338669413263128047053921891059925587981050192854323215031183644500069760827293520473657546813408389114551745253779053150356194244431473225480238623877141882353364626046902146720818125423022229303130170323446750858839055530402010012644431380317254268842727188694344106695261089627196467447361152613591010082723077671161238722123375316520895846999637038428597883006960520492804769879970624682953611382903977257926808574836824254350314687241719473884902609866652208135806885655121733471968709367250639313479333319743656214418026550851705734230203847085094526015270589966800828303707642601878371166634566954392786650106905326896059938227056486577754778831128178731074606094939371712628408561713235788418659502140692688338515801269446387889939448906743652250627442368498379819825256717232268976148826830652728711743174690779917814773000507097053632074416858910444526987748878080267457800912956530236385808556580923566444515357029905260635495518500459093344470353309357991934102885658069197229040175492700759389975505818980782724092453903815911838480261072730331579012917584256286687732406028221457876624176153114454392602958238481777938286202883241484200760665455840484421115602264414794581820220586699739745390395822876126828803819580018200775755331927165495964696284478888279042142208473085106620335007967320399712597496553607636478271759216258405258536551187366750214403347152681672645321346364118731420046791055383409871821610565166371182724566135739757790042435547638560892434786209710656457003158433743099448766972531128325963799596856488756651946253339534145819928825311567281000612798760486544912897737732819072241406873795561866093569408240666236569311160637003922111871234775080020770621619557591554926361317507600079496750757759918554340004968009319539240089691235849611784254762881478671608622546388702147650042878164342248185129967692948779958810559559822063241427810127636599702955486941358636676964762041843959215263053760554353662744468261873736358510646070079314459071036070923525352095089345749513297565936086077402066802261390465634330605721328640601140635855223714740829849759290726684281836674695898844305886323817295133131615086720261037853073032945174491840069006239231821023357106952911389721206802062582556837936816593602183240414176845533531790120863394901641740584282621202391829012829398480005017621271592173912019934189926528189550903915742696406870782529029315671829046096323308342774085781429868691029346317363355371768947753144413703817818159479629667892751108877524871508855249225367353245660977452382138529012020232271868637759747228887268827911547061704760181814858355239268254211474146096488209000770893634645145540563170680377329124548418081445017864297695494865709600794029082798140697999349070580095955089131524061619956175917667295874785034929631821018462277586001889086306143350358074438163580927875272828130695094113625044978328645573395016643532223955159226933561903113557451063394893909271456678591802431600517705259727602175247431230318015803586381703278409902225548314640995807880658766380380955120545258079466669511691247519340215694818841040725570906785289972453549059175165053425602446707317771756880418154815022111039782073605310946465655479453623582263904792649229691262953677536721419355811623640232235179207055604562468796036831944128705291095076990281646918048322192924720917827160537558652595765010061368861664071008880432819366220070140748628284999266319821153756532717341304080708982077534164825611024582172758476572694544603452032301822755180649703433997966499844190631980165670093331075429155578654537051298009656012514496417196154160694487887201026727428000005786387353166145342122224096153178592554358293086745516696049132314406373678854242714380925450544964094811294343802031762820205667765658276805701801283806032048044259856559948554555244586620043802249380862512928203843070513189043073688294907357553268114858716160676388077339548873170064689676260724699933594217490087724632371657386512926379778747265081455595953134446562817655199414245462815994083230408491823149888325573129513993012107678887590480567956834810605402880585190210913578188461707468333496558312656194815892459434523488598727574887052541288650651890221904488970186815209712342676048347962699131978241729786572912858413483027082969625598951768928400581980525830487520306016093104669814533568626053360002182498799507072855798072871370070774351877983415861663215002446002618593994131744868154708655575546642399808981780708048469559040401504226341070290117351765009145788802343737382202383728934891072797419155761793436213726319006280755183788204794942264935943651304702287008218667840334946808144171288538391096515536260565805670070760507315473807444154138328720373850783396568784895973697665552665260351365596293115366296972332577984794594701542440855791651868809020968088570322813960526477638044089757624305160475810230465429977816497251695535203086597042840082318883977968760794541978882782544330430738425775792318585388232811190414353355997661620915441723437069268465820831436646118228363201506428636591083075776833106230632617189744189515353520074649674566298571026988634940621129111660861724807039569542921996633006694757975583822607010601592313176566643237376584078162281808657774899250549896476002754045577427478814202700016805375503124077338907376249240101442895761807990564668189028341946517058644097031179212354613591970452816382892954860953995774651014583725897890285738243163022372759396711521901401316507954560089604898635653015086897359498970053812004276121762232689840309684821171497921104169771111199608185207154885107364975085990491920090257788808870724192730818180826332799207410285755338478179604114826546226894639960722360371218879463516196582184612620002682102753280794604881430791128728791682598341153088800362303330922182648912284773425836142208244945180674291978713254086715872677200072633116415611866716892483642917964138995648966543545161346662007035213862898965938926647086152931979991779820424194288638024873638085416087779081895979845553131958487470522148784318068645465372780824183442446506548976016906936419495799220487742832687665310257701225944657429552238013222640418493598110428561110913323895241057677396272268782411624286361711027521926287358075407709242647980276976722317739405385088928451533500619452185771537032113627709411046712557878508059350923692687611375904390993320179146857736792892906703787447560241048579683351302399593292260898941464885557911166771780344566192538310931273340679254910901911227322884946049526047697691582904334526828224418523795729592767372208372883815907735469602053358740035559067820948401562579480698854357192122574282675295315746246155441030737002853148675043972017526572489825557096603737890667172199841028745138858076439350001331173274846068612918561760004737892989546757874192836033130290701098864312909417885691863509517783215995492879916179055635169065765157856700139232625618037695482292202887318059822351837605817665385090458951580813250699276090273017113481548460658553116658813950362460907947509069659729072174203517443052965434080790786173941588310327974194081846344341683325400527839964699060227009246751432357755821964396894562093861672075165845006579995337037288800798386430108821289450529456265658276090032925101822107196296117280707085923759593235749745136196453377098501854710273891993599432673503674575496730777494489932811470896378598503210378030206225625697818992200617807515730006758740292412239952539208547317615160397445067787375907233112238380098126439449667112938159823078559753378381410424871692619476446461565840806823869400140902441773363903519961694286823850151221878138361667707362707825042578822767525673651219209229219007523684153866898169606709665466687659430774456534443936891321614732910531722655887950449481342242568953299754407006380387969413245020968083804167957248808777350719320198632514828814141023748683554936696867944003999525345652061214161710390046235594662120847320561786178685741373991734982839107356933299043120938865937227508642952350985575052083357915713884978625837802733420170340888704618016501352901096535030448649627865736848110327576709065412567851234911835540216215351653651204522325292710462305896577047219474571132687504683012025570379066914512018134078516405783900584905581531599757867335824410566976941891654987995192773608672705118183674216086128646308486896406700408581937169327314169868894599926279795875147358719075330669655390702613238484209054577096420691033465647010067078027405916334382621543349504565601258955974804837309504305883608016205870664059500604829049130268306547592861345106503285865844911890973393426782229163754398802448061898381403698095904218170114225480480515857459924691719115802293598464665021001747324573846414600726783790065586263078258097998561637274547625086786955297230542805564610394865588176408966608901478529213664193646066523049486899666890299010958864534414646597384675635259691480609599470503266529335336212041577049054235011790772956971182685351078177176990662170245870642454567185861250424288246034009842315059460171032593661558602065848490658912493393308411246631748617751989845581149419616858911390875796045885329161213782219678318410452536606543909476949695461413073100728269514751136001265972137261397298756787556323400990250617068666485256828707323929372841923143674536074547027409792544191651649657845412208013741348801465754433911678440193468170482937077154543190762286285477130923520816914567702619589076870364789007018364542868360280489745731745466661599659059559481265095404697489885102798105521611966626478180345845514648162324907482523228878245296251095264285514812738015396451576839990401543308131690597950653310792583445511505262894327814994230220004434503817736559075630319500372063069513109963189940931685167449681590141061069604904871618645116012148578579530955689167319489520664754909834217714007121123017934221916005204887419182966554611289149999263048281744444539785387704518514678698930329221676252706334241863149107778000047031745710139751956435792310630444334029469138378743089098169574202917136306563629955844686208769256404038967229021891945013190331590768432589174192089194115374572244637743697754400402640065447780444292942142136620013780170385597401896445892709016722617264126510821268006486709008917200740570952894891273598597519657558069720113306940258519181494864918466840526786048915400971639859235496132361920716963185421667615348436606026965937939556850972243915064953098180771466620936370620367909401094189400639993389339043803706782969831192732513812295713795507497341586817633322807544309829356340315640256190012930672076879233232008908984998288898062384301516246466716200214164604462923753839644380212151777552047255462406533224402091942755413733429069015635299760821673701739100426819080905075556688573808284100679071919844583929892950683664547402114707975510209587222689782846406188295448159797682094756083253347629734370028692070440335191385457662307812122399563989126758417000586794421098047344857435587957515600114216802882596307846460706454227196393456812151512098693729360537436748724376539839572482169660985256530330996693207971069389831390128701596208396035431791075282496754897746558439192513392331594442359828582125378899642400990984546658674315560503194908010717450491647773010714070053082250875153606353231250885292447061865716697606750980192509207947773178540700248821353117837305038078462386573520251499734992896076989086231165827958741752927391599485731219755254324708616444475027696576164325936226007900785806488087546974074357847805177096615018316051466005734862434408574562102075028399558555674219874538268604539358497849462695102167938164377711115433411491653083971593017111402562121674573912464224557750134539120996592101912316383793470967472635003478110868999968610707986362956368788633066707449711418434631103269746831061301290619924362915911277294578432016664600686164325669734708672753724531310814621547246277030741755365089732073259369313098380911774446908349049218243903294181419572488866632037207050842374482828370102965794811866561116648886538173820536152900323135466063079422189346088107774162076138866461732818095725459183181783373127435679797186285635601963651526752772963197381015298965402665493518000311362446845764834324033521353058187638169311300649322173266206735655977735417491820712633870307439145849148762095825120963755732498683054601805215252235863433739851047253414332018411668182356595750088522182146005109276191492915500079050690568039317227523131349194993173308959682065361770184989639669558628253909822990276031715011350682042568110362234421505889551200802357741783329357843735652949820020646773573126795168047688363067339381350141608872040624120285216844386902031793328588807622206267563364018603290338986101619488110012784340651355786281969838820005699990024354805402716325133707622364864743732148355570635013291702901640250750992408221619467546672935843163140006124892311705678916563974051748725939444364186185609234354058746929503588685964528402321989653848528998109915212985321742916018211061197732080675571061690604524384846692167547227592329050357837038716208757182956233431369077515941155281847013051076106142270349390283155404162790359176904114430753288116665942592168408896010247077871125004926377659139083104881455795377589415133155190844909499794350115914006484888760959894991945054436327276801277926129056913484307724370860745571218895579575964269805986449848023609402237795291600182726534846347486571183488514629094447549678694604978745568222778322991226466512085551579733529376377339721791071608656871580894795240765430567411265807660528115985815898309317158519809982306419098115355623161469434523583853136771865493634595802362203936096744392170848218016668168555806683010058147109938888905067808897239258606293439302255311963390409605218178279259070721924185066750321557524825559430440448494816564691742622586107697476842811271991006949407805848154805872199637963473368638486455427829245842955375232298609053991275038363684801364996917979779065258501490617493971632392018421659304597420576346119891399778161128301925777502605391764526121797260758321863214075520349255921980276831642885594813389822182506789040154944266329886646844848735340222653979740512786763437462798803281367274365130843106280720047785519616040457874235606163039606627486556435193939147911596081510947366917563326859677143741216935495091807385327027878133266253330035628767568560940244369221452917236318877010801186041475614386050649689422537343368162199290238953716245958305192923876897584616781496995218290111582656366082783493464270856051445710848827247539865119464894218703936642312791095777856216020014478439759086081725984276237240131578189913917266516933351166043158088816405121631620581884965749163869963663794551720100445634966520254582444028627741713377507862352762742353882613399583656079598182379558908176058891064071912859930491715112866833537872284232243512890407765404803546464603742867414308787758044004655261197552048455802876204841553492168959047087578553150976337065744121858097858172855065706355183256201644649102484362412380126852322043303406065342327856703245508420093522377580124285671293954068691010635305332838629226048773734919061680962881696405420983809644519930776097078648261095416480724671956403188201833361446291613234252575249938491450268466527915374116459839254137065776040255683393061093478820921397124182233851276240968372359173497756558684336286899770075649560865911864123744685637930599847147451306767921759389732745973599236002727435938709164648415796689211333045425960168193020908448196408008008757977052874581235628349492707706702926374295029155490141881176478329297102435413657562207807892510557782807399969864933118681869877456212176502167165165525350150057482027442059827451239050596117388090499989664349782152736407617763781805808335834025225430877230276648225859046004041957407919378674442977912258047092642030988556802588867086194224444806081273405444066616091673438813788807641864208527271800799189203444465958698021195367221049682933743352210232705406058809928187967571536737900319555020852537489220698859520007269480974856251644859289403140272019975676309329071169606579677648128345205606618147627322510851326479772867241872891302602038836864488807517229362133891473847368732792758539373264070011068705078322054619774461919642069636296288033991508626009170446766920898112103912617904145920864731409077124400813769405312185469711252071330781417443064807094724416142435065389617977513351379164364436192275482112478449118016375867347061178154968826403317514490821236304483354265162159624475489663616204993273948145729021903759983723024778151601420222089787955799664118382438567457898934956095241574057304851053254588274591724978662577905368615075733657636512651957755619532390252436353970486513633940022164032078486611755843360374929545720823687611535666644444905041052789173621836143227912581507495209109389166309486455911145313917989794122162011595067532572505675308595695776558804741302274575907823244975993624232999676862002105565986740528347159179001593415112054413234804820726743942769260242596696029564409740357503947663044024712281365882760700278077820228315570901243373785725942702328954934884434176749751318632353770262193929193979558999815005133427432692822319947145427522228484413658168376655293895744486575356633621229425531974732143391065868334152767201961207899492788619750114112532168991875208039611751257912091171535754602991898709168578085082150772150502408819858016103797733036924832756194922044249931619154974454837876546802507629188564374346074148765987969334399707725933350215756387910899545879863215611219363657216314950632835636976900184948902183631396253566524968414657513566872126536376863974989966237575275020178211372006279001982714202217403778987238497682312259129631477753082192284344812262879902336858798525802863611983037649027655080388288507374091132017504795203959336462910032987473840870168692544871695164920574293676501442681489669210952034499797205938226006289582666950231649268339714497708416612591445656464558528369759656967708484409954857219137654909374684434917234870456259822500056959718888252533716399385729400161022495640188698017597385431080790712747692828474602190836036917079229847592913703856616359728325173452945150699449014364878712578118207355561183342584654439506780913833577281229997727907212731160098246811736945717383006566206167304455949779079644703671026185763260475067361625687514920968752830874298604855918585315539086845805519740087220563412688318928326572537408487671637583300226031341645089969107399013243402693368805397644103126182431597309690939126394010758940787157827144910899300785287463902258876039479534082646406058756435739673540771781118777428966892416606622007553128768821879549996287645177750505025380952739873542264644939616075063988028016933596404023422898761835087088074370448428038811413318666669986868791980294490218974810147124703155100125111059992395172681596857958992458046963810202597087986620789148686091105408558781788292544916291616432510309367369299493793377895184440376343819123278817582754040107218366906085343774092291643391477625851614953466770411614774143896110515205503579086073368273383710344319062013565436570765968775469013647152407809767914239148078743267305459699687613723027658114546869666981193293296826588359493488090353413187676689455477987111283221654756640745914439277844034346178064547514272428543864024139794979271334100225048485255397253230676224682988293592314338668689642698700844101026685780905710647015992537995100561099461306624487072659424960270104473117559930936766569065563216934738013192158138996899293238575450980536005083648232227717963701802159084117299017254775484848962769993745017729703977540494377649146240142901067666845683540361613842592904461625709245117361286999475183810338516372647930025295822829835199111530443351474103571843621150150461738054091274708504505145133874025559315076401926774502263591612030495089500565125354380640180036455942296753082166178266751277180377682338496065301197476470081331380732816290943473312787118318828166579568265756333063523064314460776006175915724155246454612198055061337160520572978673289408136706211488635383908694374500608699253055900651578979854024777644694267903789228599953061212923353077781930648868357016020089856122099122071904797305509514807297561947470859906733655036322979274854718340065671398892423965934073652841267904668517909659926585018267904319605770766384645813649812847229650697643181908608463544801307728109201552660391174787388260923826126281155385369328628922241447001238220658849978014596932880865091090984208771772730896792852164184750216031279115247146665741427887508642966198996456843261163856865980728686975678335501421358496614750317754347740758049308672451291584010500624208452278915899661643532356297598744002212979599740906982527262584107297458293932581572583086673361200355335782416263110092875349717836675290712002994290932289139971459961238695700026753662545301559606991618544131979097068222601196579552344274533434056845162232299591108397231748695625600971649668132366093555065013231471227948360029195858887831959553708995396373807195295488367842370492002238825432260933459268478059283460100331472106481225662175208909580279479444737599645026378342763313123129267044191426783793028218588556845699845910492320584631509891732688732231900170967353479689419774798144222169615424017551163622988109460497747028801045393654338613061280625583396606570593884414986745251655166767072951469143758705458068927324311820160788050878247446449720632221605318239280195667180503045453881628118906148325325458601681707138263686594692400274345304264098654594037927401447879653071252240135004034685213280202859471829165686141029992770243277814780330215028699304632432004138786355622861669476532768150484765605980714362604800725354918485459822692216220091818143753484698332686865122024744764374803977328058652052916641905742787596595235235720938550262641251169955934229684521259692068317573626856950361055956165187962738750502616886982982967625045051263648867493384989197827014343077777391963490636728398598326937455326652159797801127583908807051370178677797377824083950295463818120660109015721310592624425032621837952898106877671118699882014725991295972617825760801510931084403815986973196499388825880342709354277984390543874552678176043599301167522122161045189193685923211340009422797981007419820007909296512983011283379247711375977209713742901986710015571304255419698946538485332971173146874191452730783086937400987760230681887136298532649605001951066882066999156747760444846730139729602059096497117577816260967017874561988717664075233248570416198802683019073388735268199966451907444938079476772296242638914389716774151302003585647957375726642012775489694379740087826115328003453910189255611875615381407918387602989502897464892397028042074505664431115577584165600135408657084864216465568454221164364374684005466892011111840356728187589658660903679817727876825204128370104177055931913434231055089008677028805031922283722505146202500205958850576233591843103742800866265311429175751870052806418746211033820422821164441355300145163072700131885254548829008430873254826714484600355907559514440844453076740669207614681995368669763404653779839619994380158316647048155214058653314650132560125958607877266947774023209589835435531196970053822302894191073459610185404623496652522590766949977783207461024945055232686156995668867767107727437788618471811402991474354089718171703604011827265532329594931176034806543086172283894965480382548208889220447705121208736093278242347110050701464836703830021033213187169296273912103291330542269198721181372945239925335882302890467290034405919644710444192677975978417931353894869789425960215661436500343437623992498444031589859635966391466739003851724907847111265759963027029232999494211350710747891221644080352161108758138782525696011466960099303754359260292421906108270574554565270509609935017016806551424753515365913875085393978827543160666264387997398086139493345036238990540546937331881934575208578826291575319983752742897922539336448434976024162064691933371843636078080137131484795764276561257032313041397372728179564919024501908495707211747751421306432573850479406609450860232685863796075393359159890768226325241331988601310987887197693550744360233763862871907285649978228831045869322160760818836482002584478529173434530314320566980603669612666344936229776792190434371589406972703328052261692625141804019550763942054221030234395010262327916626931087459261543362028592448312850860846992838049838952293218282938935894768879174161529148030497483502742313274478227061948237365105651162948687236230373487565546303213757811710738715112572075953017224554459968782732335842583809883105415646452565991208192490215526102683030357751713773138997707332470005508002590832767115535625532087551821391508278339129669619679762600193647012196693953594952374245121408334259692312947339876050629339260586778074183567933294904553136788391602972692134644921888299328327725308854953987903211222435842820742567725697040743767884207519539795251930042724938094857591027577651787797407708559512955525337781896030480160093337908242788154313536123659319139562965863191649256589320209592107913594421524388768085602093200047805968384152999014674008654774200454753235688879026776626128515001683622684894293445070450358785281559589771666373310247240339832097655592044703545882046260539888767765776904704397849051057678100531931798710396011332362745023933805785236716192707080955459986562019198344309195411134608536067143646190909745567382899110302269964547715417928985725341631072052149188787522042542492578048090754066506551315585928356519057734632748888867479383936594422678826876259731390449377738552880371616988524724667469405139810560644079625727052185966766254737296210133716615280401748906151128525864693842793494513747480959289489053289399700320622442647319928560657633452521542744697810277622585525462552622349459652470593843012749446910376322469187478824980006918790737608406252328105427432070359637603219317947696268494052966118191678270326723237297501449626706852725724245957089365029240893564082738618361822326852871419568305112316672903482139104935595070103919483970189755347794229452138049914278569654219257079296589911774429176119025156649752808752198754409495050473284016401856577941149091350517450147259125181558588339115410685380031120757790874790005960388782611169772879599438346655028436994087711667886060302112157419312329719578093731951923514716232863122426228934190097618489527328091230030003540606946920887342072461139480529334124030094081905181831970346948477826812161751320421160975912778713869756956892989365512736324757184327164260761929552937723179269725499471782766588514684419190730956154898957885496947265773065037296025577084619311971007701946799953962250934584246084743473312773834018487465270187905374717659833663889496632689642904331900807346868121646169369883208332689454844891260914928773238454214050033150227427117600525854032222912876809804868311988180315520158432604351781100447138269969449330485818420692563508474223383495141957567472377854392853953879302035136901873128986486247315582900204824661844008332809549467388471336272319040946850864404927213767360617943066425863174207886335739775049646031396078008962984222301269970194685173619582621526708388169234506210841651933282542673235002152530879604282002193443919151899388747041830850949997950646117935107315284583789731956845094728828883703205201652617314516925891932244104535890416590852738277186048122906402740707010104397413020108079668907605977172260482379908101420884736626715154700885203106925851236510725523863622838811929277435748126215579291380838087023092374728923850313254016224367952736220256925720159403685183234559456005375900722202314449288536261864154839609182722253639127070515212068433083263486411136885423107345211018066361582776733413014525546431197657090708555497844159724963796753912399892424407015561923476345905598387650677661459647008177153051753976180375576334362451569750004666223598106596882399359590569740932388858797860680932390035835644547915179584588389491972186002369822214019496218321550462147027557524139794438255055767478146351909374367593911783533509192190285022854853574849894249447983449141172418363850074291797717554279622148184082157180718049419326868613803323377282405387320738792807504626388183316692446501886231685298470992105553314495367162363259692824748512981020841545700740883425262689314591365621073286340301923627008470839266899137510220303921535658361175183957628132671418356694037659696181690786303330903541289645168266687697536656796968859357156947969717287315550339025354387640120327670007813429603670980365066653245732016356168890784790316627894700734049112600717584531327598943003461912157090889330906487647856679761057653192209701394854039984210207521174526443890237535538908030851726967273226080636955104863434644868572169816852981393432668142988306174289527527814260608900281795202650410367377799928532014515204202000067983578604439377271502734275456984801048747937930380269130878663938552532639618861234598386023579767368682322534822888114654729877878756786970240568998980924009712135250367829456674219908697842156039209116814310436303030404754002147671618958331995027687166129095212574768400759473378986128637447332984905502266884032000221934005189709773145277688085502881058400259998384449834198558986820554545933632291457813334467464913123858480903633067555795024664763967272860841390561138403714370698474481247458925981552961734080787596822682734371239690405976067839017076207837839627312649493542371666108492826961737967127348159836644222491885585179993490801837826053229745597497017709409269493397928236153363172667914802273703989139373167369322048092626456862924070234053300492580659419502316870897284574180555822363232683783759982956675887232980596414386093070399820085525113577375216278195852897620580270501361856651071133625864917151456836739065217548839037524863226801999406471944093080809769391614509390158135423814439329954669870084965878817506757894672284661079979484448668125657204905224886722400035131995216647160434792579683070243076008169793832207550155301462984757784891915704466870751724459539884278352008535960866410982263472882011500950160654816506724416925821061458402799372030142463563064161360311975573423358396005769628252289879813624801981976333350456960226552582591849620232771046339989086078815035913485187253642042517899473463995067379377591648327800959739771272825612298210802648471532832222904421495962616340923976903468066269016676456750540923585971556422982000821722178314389441135790716446752023920390534819261979774296021765203895623417997069397060359219727587758358344058607168600235336893872229864283079426680055228115707631467227476918612170565161757297800780325980233621323894785428360095451943442548037338330709646235344640894579707487940580090528231128375596033897753424394318473586280076605213038515743191741392684713378322451054348193201584836670152193803873631379445499402431100596602599105721826150220476994355994634038899493372691329904459572891537311380037850558404996471664634209065522000955272180319345569457252494356855676984822793144339046532777492567866828315269515957112369408261707976119199631426484202742008824152342120752379586843812629754545793145804782210594832140309287429425858387862055286338096974729889137216031369431504375930273508099952341378316520035320890735372771622971043988416079016688287939736476456722156007647696545639324503693145811642940306864952712901509294148712900009923836298264332787658360143546068063375412983863917350232912210647085196348116236520171940848611084128856898710214741974898528228663344610891087986034024799566008707878791412691168369650476370246147662636037295050130468088818763881626463351308778223935918284332920007045794297929673970552998667676842073409396023677235009856396679531648811392555630480007207755926018788283987536143231984718440923882257590736026437804691555230995950793285119815012605209700367322041184513588374172647169099967125382840024280028156027066464682286305254640763780169682669973235971290899129825614702639754886550289892780817128680468708506710995555782195389214667403163436366241621210982343552817961390416290292581784129855747875383446776910594570400535080574530231046392951331603930575903536644994435777942285009415198981826122058093596767218153314655066494216022165912680255406329575579692673858213238703363456684790154152720226774325974524835418716119120133083709102716105699405646970271884000753683797028207910575957823856350744774691708079560000285732910756484836068990321708508666472749741195716920201803923164301422711794020803821369521368730919659011800186924384856005812011451677937310675057778413689735407848627696781617534225858131927761259018024905700215192495402874338143814525236884960509639531284426709981579878194777957407558224752086870900878449503280304261536902071951365694543489133841322763476791302623393257870955094523603950033390712309774698718912214316803962384441150115790995263277374228934204424633229874029065028820276603590419497260243278048386172672119600132685870257963543368089546014505272521115020827791183757664662049820963380367683661101330673052962391411703228436496065785766167878443303133302006413219946692688073328874176745937708048195257513455102237646657957641456772691786186774965166890467098809787857508920980775268812394029081779805408904796394532571433601308225680392489536366425554741578807213092906702432719185262244661104868204465114626135999738782591902836439745220135165751605700486260268632144407883561607572451949966760799473973066125183438742664839022765876078128070735890828351577232336638775981694186068310447322408406863253136160158018058011115155019849820573318985062385449535069141363938868862790664890726408681786827441147265178813931277888198873694173894797972583415524015875279280183512361001093303217810981591935656957357634721734794315411087336802677514358689640186092966001111169246630813960298429133381199829314401256969245598799075936204595220811221903159108628125362256186932965273629930329380379419293810938169736563414150122978542634171391872322240094018330995069207581380870855182773790021166182206231415677603879203749760776450914498919542267445096207434699108950897613667809487960837300134252886350063877223597337917689314687524768749266660263984834256666883849378791153440016108032070746038850882117896919210797741413068150787085019806984043701289142011165160798826289526245385044941667205464895815422608123908088200400944157933176690697359078760153042580100649513636977971444691395764611391957265063939866534753971861902809570093851199197798361408355161648503163908199927730775383653692494921674327113588007071589496504191868904173639833336209747895309043665984154744353553952690868486625331741355732742451347705301405661450967115609762764322964419744729305549140402842624712712937304286421952947678215653841115684527140988018070296107416822601167896877091596557076725228539942421053767774095002538629783347849371978567881986568772972335646253025430138388088478696721821780356710624455366595670823858048090308595427443728683910262230678902781583761859858218721069327481074089890129672963620616091980734349718238110660252213822881632565312597469077260254629933380865047202832985392501248073177224394282700416804947857396332541735613780967379613240862251115572477192596620987959960922194555264227449148747592478207009269411040849617090693840243704614474344196147752048364428248163013315335066028739434794417546361087494066641724456357279450921179226797005404282183309416376133010489859835347734631523017933428570028362535664305612416963278071684212330536407468121458798710781707081564871725863028737050435896967719712178346569923372913059968855377015351586278583148428963050037167217979313306825215531079775153899086466791428388436827927290507679960690045603060169178723848737021639805389966367425115457169981065358075177901446023798876450877777341265677172425894868611601381374080208747260698283351612417175816004580909298931476859719648423642776442795898142419099496957534710070944550318484382473211862240915812624389945736338427395498589935972973508233394465557152741139163204263241282671307858285685610523186750602093907839959015844094157600130510624339683117736180273637215643232248664547756801786037326679072585409675367836494303719390799593787496091170008026226409297237057144231812065104165607619546972889826290595717197420513546990173657101448911787657707678300878264832904853164433969776947256861614979716086313843767122393684187965861400209568262312633567297077921385618507647239503590748901558558131093529088780760760209381894375484351879400652095762766283623086596443468678030074987182555071466446549923300254477865293671735889744612697518088206355577918894980302564539332044831412379678185225251601394805560699904168259201995906618185081519975643400302200806512443975630335493010867512897817112926599066128887682001380598130420429722253406137987187177057463049253372265224775382534306920820626682097415757501775313983882577030016561416153844317225797781977283712064747735498769066686108072675005175434261306276560721173797618467093990732306756468341129038876297514656342976062602272711529799697869137291121648649870814424081629018496413711280645213965579325549492954755737438912311229451037944627946595504137278947796649905083699939495940324861856214095877046631254590928650357417876219715366220082386484872530160456570248433666291537811370926329212251156962973513481655150882404386605846270190664107271199008629819530483345585639995088641195736593522941643635853607755471163091413195089133528422644582297466282957581706560975146105848095820918560776558909647752716990064454669410689326305422517802887805763401919738181185852663907538826142045726591360464827522048364705221882438593370616684644832688188928064651535160539072066102360334706699059999390586873231020252840621509966077814887794889419689852466842843353428994495220402252906156717042539746027264893323378282524574210700489852560340940837427875739499045878441851989730663900064426773057205811227200677751419972131136327037327360542672438946558814975141846938155101817422633189518375896963663498259394487746985665852870368323100792852216364881394592221427413834446322402549303508035590065321913612677851705506224939162871605413596012834923437350847756214374553751396625174915932784053486612634246511860594216696337183496638058955459816784807320036813655502978004831945040043291519572103658261037511708668748908497953190576140201343799632681812665890741155484512762034174936890096213126194334520322846039126116697427257876353161396785923570316351451312209454520540749916046163073458817206398168488989565181428454268983642634495618183373834938900872176694579057251366804292811476763701413405643767360940292027215895827736250586673260899109008150342034683376928232606887398352026852516533871023507610509802192046925427474614657837861016491336265732391341040887030381938328551232839432406046654074833596602008058011598814737780950654276979634153095332115439415761712772769183393448883442408696053016704810204259737903662022611597903206049767384955563659445009347459455760707868694686004483735347465652813772219189358156857942929402216690260052222446341909358818213753275253609883456601888014971421334616990797085622664097835563049787259558800793966179734610414845871379333804050959822340559231622105684058622575990105433935140291515974178815022808588846905609525346425560347397622878622638007270924562930541739890708400021638524743737093114787289438574728226377120627103885230751246746071454398959182811008859995708126882798489305735441171629128763315848005773309997293695692657192703029083712683106198273221107835226074757668689660762971052165139938938064385424044698099992985852425609638894149813568958572282442491638974229826242671778220241079186388957143537774110122624398541855891088521917456320302048209928930119624761810234188796396256414636500109954152802985367502302736424673530590924295877732246241338168832758902262332022135084823215670524685182194808085547313149970507808902009253226460031343043660629312636514350027558351778546286403946114053897615531919425963894390579637878972272263168962117625387307061196858957758343736406760113171725292371982845265986913487962798425888747756117828022795367289696732748594931935057391178300990249145877371790467892000319387933568927379720377909341268106862372881396409640029407350317087170149546663957536226803268741239394296534452888489488577835153911753752028389708120666853302391997369672192888862599838162087559050923456685205953759769068015384106510179403083943591387439710582623239326497774327329410805393458706342506698635214302780074105297164719313732134447902251546601884943124912163428735498528504418779915496826667555210814574804455287386690093992005980226145023363328069852900783167579824539988301175377768839101066855126562054780085450994950726448109891593597233568974086312120607082524298115192215195395430628345121363460441707167906148894461593080692743171992465434866733522965957029496942411750086134517428591835867280536227607901513037688490895272684172634246413412713224923939350193414676165332724740920515950882263569223082384671313127648175612843927016000699474113534919968653348330117320498586412489332471783506401040586246449068279194138087337276571219327049938725121156135823717558452171320115270150536968683705283787844765681137912444747415389439491354386530876908139077396240834172225828675242096538127591829511186863409417477761161739550369463343789161527116774949504738951757531776857654622284469776742039268216434521467944287572541090476300067204957902835775580887617693599984029082169716550187078101638830881506424772151590174228917341975843948359658448150001170841550238848899001758379707877741901013387730312847194752524641198000866166139222560354314042730221034143155967801921595183834596347171804256917555990530026622173173305035949816730441517515769701629433193176530834943584808657316092183351364508247303976777470355097257023629752696427567144121043217884094114969508813986008029369684469663495744417269829839936859448590961015326339970616069493519685987897031411958320499293460226835730160505342527084327415895735161095720671313731105909993186888647266219015484783618108755057765819126435204115511208452106556881650162467244804644063436790248071921224606546531938829668933420538346383573638245236679607459413477316866193162835994317013651797529179397394232773421818382326684920693791902662265543978835805610234452750984891861141762623945566659411947738894419954534092785660538222860840275603416199484047706012398153599196778450479394412387344687134099351601569984914471799421690252128295884882229371731774846644275496239611554492606459784682094893177567535056914198561057115497552707187056703601693099511777994461507052657361918794558510716338567193291170359320776387802799784699607336331859666417158091429542908934828921103772911565804029080996637208373047936800782809108128908560047719996873403485691775287929401699073770263545662766795650310585746401651613147309553635403560030836172691202046087776295109421481990634868409048131849406445497647922349574744821176358346966551150326929926745944009335795491579609512731303559551567724652808430031736765452931593598762185108317018166093142390465070015619222184051234819994299604426098655689238426148635531268514630775350323581581662460909154942848326459100403860713611127290925607719883028174791058468996583398125489970993197378994498858434544432026448129871353336753659944358178518240862163561782913088321866059537885811765773030507411564872639247881557256115275933143364345030741731422372920660007500395094201462481654791198687118808728730358746242955862459998367782633163282078766057622373461931123965584725424008210253705957208439510051489479875931776175695790251469307558693967389260515346445049993388672392040382773053648255612376693698150142807105124777079005595471803601322336036280099724353480933746041989616142039655410171879829132264157116429294461189615645624680784983491364325178070940976615444335011341889150965794149285901431481383278987520390309430530989230903253975661982815028051760255819123896059193040931394109711028466989782934482364230075156709110292172398532525396936895221323091036212666111850021849793223304662228726526132538817654593032282739958135768226566900926793349680895600273856970091498711134270436256119932710636424468155431435572432008315576835781262730409844426563022232039912793999788075275319531827541313201723819015689646133576161945539805150795120737815826621958360696517529399702382764560722485544764707836828527637529060367207026221836740848212371681217224701926943323349014902317913067178387954896781676777706805501719285308017058568386421820525858323363996727114750439615723274859971125728455807913294084637332506393269377312861149229360639789068984473085397466437135897233958862367391334749458777684376908088553862046318226265139686244934541117942227276549031563751170820980233689472684433019341237957400791808485255196315023855259979139809285929359013543640000140784942756194975300619625642254068160594261956101374263451295035127377992722839457516203105907505078986632227190219736647418553011827231637391223716831724255049595645267699915134705687080185369566939317745866073272038103564464689843041828329481921292688337609684828648591394505638390159247502764110452350453622172512206090296074273326917099210957037236660188849132065239430531893621526576117206689370188819991934453708266569943342782960203881436444479610130143130630636260029540192996915513573048558882001933395553216471107593812417902349944159487398190806676584908469117701051055660083403531016773315433197789650314666415071762137073868634324781807927025485550185637033757451400208684811743932000694266075177982149107681042492631613709443252847121580481822108367273438612529892871010987334613383769017636726002069315358965927014356358899484766941853514577742740543479404566204462775895291060478863144503625838614835815518582243254291236044872752860806439749204615303673067246259244970895430183267561155261213345127590065700576935085750816144661462879613304621031134583851419778847629160498214594631505799043313878745988245365625158595979589339732239854443959544200208476704624258323775116024131775728175232334615736335531280871912882724222154659783254145225848593045577084309514499988237424183942960067113050140853820708536407154423122347145998778719012476706640527124123633000161094876279313501827705233344894135856049765370177327105951374941761439055183401132386051307694718978132395461772959907863188541125557675834810767499426454053851235785265586572073680486098163165842791941066471431416246467499818173824428413574047121076174053993083877928408747324769637361627967634815691166989477404544490828745830746021630650507327489958643755622685761284794578120216317362753848699770477669202834683936006534249752182532461236658188106843320543109560908985411636219294290520481961432653865987830483895215957438902012307190083894282739316028183018194684527281028046540519532083551349233116524206822489538457666491074940992276274762589037231605823971964697430954444881887310198881400824291714217677154393243094974428043034959274601597631423749715769059933932070233783353626246399134595797820840094073928259297447522323465453097594832573973393572993206843835695417699970075063459207716755641174581436535214960258122774310825626858994230688392900268626009436902729921877805545801841276848414189160622513018389840623559150799821384261241433007548200382299451869385952753598572956823900711581453098024287427527712305691265704754164973838833330438464389226604631043016225624702813316868470967001058658743660535844813280370062479184147241044541972064636962251465058499941750913667392198938828331231133944204322420966678258395516758582346603985873347774331932743247602797850235303571846227512507232207591146274694320531727394860572518450766224277782520177632913473179118685079803804242617351062789069731959960086199936064169804468131940983280044762240285341865158340850081527982618616836054525560352645830209634390584129834661004791605103173078008470834639847647382863598133202527169086133345299295280500943144690059530863896189847771835298329296444380727113398550479831800962169264690965621005001354222710306530174638029594866307968662739414880177723166398767352113655056939091958839031333120314677287784119056903102732922903992994840969557075977883346986186762519273931238884212501277305025616027262892320838306203474714227447572277079265550994076352782399038226220081673925750839592565961411442197740487497634000973930913375932193979971084311073449871482098621558641372459280548917139342790086505219885903696964433483967259570192932238652533523504007327417266063778663322716881339854241280864141608753927972378657771632477873517949255277808935520032292230466860092469963231195744775127854351380661336742005129507926346697071671493699336362568123287304208249336359200335508644439939011008318780332847706333793481173663897585872425076662998991038542455862441059715724906324966858122524501346017671441414467272891005884069309473045842848384213924996628329247492483619132850193870798380975521681577830452517066933165055677773312644128542220981048746016836616848419732358978198033857312064246771733668652130227262283590582327506543133194346852561057801014346279561115511362652273083318084372698947703733387434704434007820032863716268451464737485721292718344456473736111121395541315818289486017733636762595275050474543019840229662827416231080546625562748236581200580608277057789740800574902951897420165961693697053986929479079773951015231368291106830888130009390440072973140773994641937230744913149842158982221183538452818304402284526690684070999519023226486410484068638619114102072097096840277046298487919790111102817668048706754989520271255265311876334026330534398475073254426688702164933306671132096406977918027591474162309367193993622397627953507956673394444651819922965794041785160096303467673458038328703641999989339568802714942860971464711247407536584836871596064192565041925043640083115048054822799035252948808416837342654560813523503116449210551739685042439442652347326242539097262314078473824203598996935984268847640191536520947298585299296227144640665743835318306952620740638836293904295873488662514801942398402861084285585891139056599783673071822686998564310463956504656455854820509900551634764530153319061469678451859872823218970034963232727363075131373854250934362477623975440955276070414658230591107749287111169783858515854534033003174297612829000474446975930357582599444937958161639467538539248496803841409363309127804672833676220276926960382052325916014521336989353978665511523097476188279300506641079532681516698978530433314006763530039435020652198814759014249688607185031804386100852979010903531556509147398226931651285738673443753469035075053955997050661470557706153585573296253218995873066521278871909645671377112527520606347229679407941101087970054759402185001772866235898321834891204256839796428239097110326198836915960828853135444480847874309076631821020657254284145510317054663870911223036705623930096861494111027054403068954072608302367543773051630511835274982582744421107746762215092365937595098005765094014455129430422439849453835771797718511840166853283017233615039905805695475772157222873100471816040091914438871158011603682742854994551609844307083961557544811154770712215058201695173032182928222309002466126051114817233088546037305163238422350555858517491643064743852559502394902914585022581400323296902500642342580892158425869776549622342711550628637853186717706722209661904518940526234683972506438632183218312103724627772503097651598166768319331316893329491969148020089414465682204642165205018651782158340822299028645630799180463540026288651662383744388010164312474078712732564792027796993059334007534863902855121484031823834141919986877641293166566063964545229127951428111453515748787784521697385568262980096305103566330431589032419715254465962138963637943005305676562786902747730668285224188614613176010166434041967864174815896400541746348794699420842604786940954746619334179448548881517135623075389318147463133491744409701762973097097031891063230365377010642564812074227319043506200132342358501931727270079289692201404352616510987025870109364466984255467166646022793860999416091422169458307082376053462370114240248445652807779919035550670308141488061471655213387317685276687368033802114843780319999445295666670971896926435802343784804392650209125757517098419327925131845938910695850730278977472875664499802581653691499333038547649088450406259682664416438390304827322493233512838308491445268525268775818901700389798843883545104942740017795392909948043151252417891748529662405217311833374039269764173038866943067173836677951211029116567923558666198017996599500081122345980649991808906661481277463498579636011228709755569888007983496623462008375137885193593204800702919972517190543377883739594846458812356866142021793520085984812447473477644266850153462032628636261777021652657786147914260383436418083475374251462974363898888122870118538469551696699456624199975943954191456236699861307564935003925379741090278456261471606293626160269338439314346490935178467003493306357422314350346036926209838439873918266970161465843276870668766910289783128433655265824640487697563462536457795394249261880609129325457843540559157575818841884451959867902264061321987614125477648700819374987111671173187268965464218566827977880486061430201954794575586989453604088335154694884618672176916727678949208345571450413779749488996178600950287684779312766522513862168113964970852342419873158981864466443749036964506440043215227206274293996302852545542854057065454198477372522161597274511316630072900341926953091250294598896330529209853347667212654848452908496979855546142792985157776850965230206059093091315409650291537526890968908125269706246685844599931662012057638710449015261415054649628563932176340001332890430024183562889798462038824916976822763313920863128310125644161895329901254140311164689808293315266570339799384302508955121561106164881184818362662611946558540239003785338131901278468206569329093656304979182349970264180149760377654741147056849631413703742406049721260613302415084811948434255335976680402698480005493256737647401236736446949539229310019283298312890940596477903512205485080050381123823114216165236047841431151969035240059953015777045625936675669451992449575928601898800952902561083159439230793030547824656436688296726305638266550635318100325499739980330229738557921523378723715358078948008983793572816393657738497638602307501605280058938815064248673738799509988579566864110955325971295625042804495061756343668670161249343692208299439741665773982478746916638702532127596333003031573055414214954317374819986039434128000875343087575497460145021208501503480850180788685787869114053019241667164755738505610675799314567561034596293118189449912854663311948646585016303274483666928795504844002465165249230452274077915631319505183620636562767284580842655398412069447352093669077950682258805562557750666190744117441298932685269545106642280342654719956924063423010309395719513334243896448446196743895913482038474411295891259869634634798114053344816812520563511301633397509127927926699092616674876460587544011587276366648335652010630060575762184749435949818908018396448424434763347465104624549866215531684086232214095418659792379763916215436051225478516665689593962768917157904245973296261880043636972854853096516477360576817198386232005275162881895584300050983427902386695292893139265242183562329114919775286429986798377834915106925826840340446151938315749214300834300429829930159623525436358284178315871380331856759047805309008958206565951065412249218826241049656752683662975321242758820139329412743584540379428133405565338861419962723891997006756867815125625660199252297118972364325055591019204129309139969696779561283744988930439681653216880281139704736019518146942365968692816141405021217043940969011678688039192502048090866613805462008562155781176463057134541244508424066181044962868470385135282678540205549419176445326128790901650640224522142488547873610565221077296202106960335512828998563665514541149836463507320018478003862576505496257382497307308834714218450073251873167290853501660424972932715169208363705793447067600734014080677835367430668354134441428300919840756459763952235193588375908251162044704281612323588687393696039494361331102299942257594474301821948665751160599267802354244769425285572674660659419488726102071321531781030727892340571324045502804450008506959661039279111893756447199397082396734817434575820407768635074895551970150040881581975922903525901553555539263883377772432675216739804490527203919046452200456792166557149477959499938591365378867892554477472459544470845186087173212130567323094404526843232038062918442479991254250576337913065484363935262196596603229881172887425350352166675394835669259744993070770730489325469110572723749589166343202916992976902915883323766180836926142875666777579298660230229531405409651583696259680496271799520707188734452146162637333326658177697556906659572799167110574746114706079100252590428115086308414350689673552991381049072414436781667340432445262157596208644668757056796878533515665228977825324064762853936536855981850060689194559760783868363909054128415132536693604649178687973212190044510358014891959548938408087635482322224958697769782734659896885600262018065349110308881145294481339218961844447800172584338889909246871824154174035856982628390288732985890829078210048878201113514472589873437862717282506324864795064127243506287778593053867038576819603184421152666418384710594889880541113692570183679123007085175995707699646341607692614366620539359724835208520265173009853735352307303096988251825143831667741539647592060180721044804627588760576464006867104580138319530299237129567947433732829875428379554591562829877850014365541288244695639961326723860962732699886447265462537277770767045895253556589217418397896862570892691479081064300558592693736007267917383265579680061614268331636059923439001816973459094213190661453516121923446161980766770859694792005872825149468435454511975539579161181769180072299160837895600354952212049514442683801951024841229632588527863831561079992745626184188423145099298282725238487402383659429862558802973696522638088703110961290922564265142137425612482363625891255225972750041692599687990004778960055295902505967726305263471282813903118957030681763314040403422051656250679827354291773598550441441610212810401136405012889351181431630464152349350032943624021558962183550260247405608919577329182901241630911932048088170537149868944294242909281867346240027302599334983615471351623082028139309757474515716955210713118360594103356792380942466611259785209311265739638815741737189934314862411561537550926879803052528503939324567313171088552982122861735858060942404772776557301059906266985908196324174114769307430051187969261950364306922727493512681441492669560800415799432489857739821890644097715950683283812117891139605159119197218383862390009258123087335561376599995966778139367053893771973056140672742503758764740010188509197611392469831879314046927849516222568217006964564836714521645312113935218465827772235438505783543678444527554151998089145725905778703809735790828537216150213556738795268331314490537129599539095548032645614496783688745900697194854246536992331586086642049509314730660196560377161013537283174866263152325144078249840731564068349145372133543015865225866935748226863220924447910938618340549769705090610427700025972476478471069041921160689657450083137386261217931743271278451357166412272607267669875432840250905609804862530999469316414821460233530811907982562243049238667009464179315140664526137577937084656128591535493620084173679606911232635811644852613476692949591137761408932531323821682493876619475289002120728217780460396879163440999250217851895653629742773171820111077725530029661319204130242519992816222802317117400546779117287676296391331416521347562155193698613021517176288480802727385014527588337953056148010187898151048123298036667720469999846514163407997804576323867364079347138300014816467391813258060007811503567609175465205386256082228506133251935493584724509814649928605991427267035453864454951940416774491607725334352760341281141161623541618919830855499905504525054383696028269577548848402604863201686359513639421699502620356718534197422094059389271685880810470559516625995607340645006089043581669518548998082686764128110630738260488614801735446081391076408932519774093566387453504823423648811809635378575723265745343464215868386664309643524180231089987289431160514431053597259610681388416385808572388958546685844941684312773594510959614988243931541254925770259121074064172202562955508834165177137168305053187943320756462395929574471304797356834922382520187036996377298687327610322821740328632063816364649989152005564548191240503570392651851503286961599193233634545054352782007912622730256037815324605540106655510369011793630741179170890489899463334117292467527370052513783437666576880136379660247642831940624712322183061055884863551355146378150976184185207837441258307928071640979612410187843289511171605647947649667769551761817865966465979186678425538886664648307281440405794528589422382059531422903083680360251224234865833227486859124478799229667545814583574564879642520458973959542258852298155494090524768869941031816029799170732590347987204156013568519744719763750657706983288389925377423981839259590276841244049600334503715386112511688834505218315293467680669906591096419248226442547362002704565068142672589220874925029223525313506464420031917799276296324238537948156667147270015633874159800294103220630113788647476990797495746466047082909182407403121561324207492160254458523015211077238699869132638475576332090749271670709053773903286330464949842652162922541272607222475348652121255879651692182095627869219886105444979422549309092036064861812421330903704625912911865807090076368225990242901740348258435008047533319212908151035138672775613244031334578124385543213600902760516469826136817862530727305975560015711979572984064573474064139522399942476907020614859634887552163750005806220855015109305984948451951988372916906864821723598508219685991413107873730419958953009577230724411318175968150418248127253400307497193009069912008014481183834113587085224079847067978728096187310584143401217915654790269021241192223113620782390411219820217208037159312823055919050992703419017033170535671606880598231139762282320150494153541124779783909474671214894998269541074504202368710924458985303219511237358026061331333957442974849561356108318860043877952334872788370009476419444811017206076835850362113654784699295393560904856261369768338001831141823830014782443667388067383660051796082703131807091046324417090405051563270637110888746469274858224668937446006516279704657450587249654476787657381903062755961505677959605931386698301095001178735207126429017090289428367307225547488610730598686581997207304519375811851611662277834689851649463809704307808894180997714784308086513848729110796957007247080230098946510425013918158561199328812513622206497434905210271970902923466119444427902826533515323914219550533508163109393147452910403155606091505764146352962299726457160338168575461559942970141922509607419858099628029403314986923547701125650680614865987320504503443219753054456104075416166203431788535588093177218464241212516338965574881303148605080569660920701554032059299620973583151600828056473917094184110405680596205762646318966483235072439189586057292708967458517989163858443619658301808887562678877325447904160228726918467624261422576926894037204732920878548861394137407184713264322044580903149594345850793270856094420586389066149973169935841692541971706139848718547389210913075646223116943698656375795814189798756043275012355576747337933081684365685366264123341810173576349471906818885956194497025262877315413923205981207247042871812815930616221693517616609070586392498146899024007750364001143818244986982147967383590884758805430254343991989257157846935221903080853680820841186478828976937841329487436964436127014609753886677972580012380722245914346422680277025683118672236954850039362632314079870233120145173204861838010886978590184237225443582096755175025369501179030674539454684346048047094999249633036078670747397184020102149287083216824440223198024845703601386173879148307020406663401846149937588104169580608792844063721959034927635755966793206029485369015101862108614995146050798371950727437591347312629600654537138881713659400255656284930409436426719587378262990353157208391877442765666263264306103201708626924436799590430538068629794045582932929167320346017805075652745027071725594371529898600639006379499365697220155432768321911272948974892343870590742718036751207727786539528654745163853423456737405122984852239712937697651693261791812201642239955747827907852267060808852283030028419257615891381115413503544918390803364705987321438440105964799176788609940656439660197041646197070876400055585482158863608947077091869844420895159074440303717202833641947197018791848775867901217567920094937833574837574067839879149360917081066065911562164341510474485140358926660751684725954355778518663641843807091641727717163647586962475508237488888524397013895864737234949414390304811507343549109929437520609978335031609014307767037053777634022315059060198254640191702261071918580284177907216610304463830354502586180049492321024162850694638466300219951225332747064557967339003906319101677672448132392557193975883551959343691394320157568529851334583665842911415065451937688162843757074453423881606592823355108003535889246700323507287784233970759580864637231488327701427124264284456615973872600215382853128061284279498471103278698338722843187014891711793831542099987181788779939548770963777757557942370653475985625535736024400219431451113128935451029083848421102696700818133365152956835089463791075957991003907585823929271384878286944562676039383763926026240099086738264837806602839066346446018563944498986048821878795850653360815775552401056334674007133569560448125868384522388816425962357869190052823085856032689565012617856587944456797697225114828961153372482555114567525965590882805917855601691097829132436398072913100934002285038597025582533538215164269395502637324622249434380116607525058539720822379186637996034903116400121889429687488880044299600667634179663343767748138179984357247812274529879185899364228027734231540361543232570336520018469108091210724680610653185199131421673647617017574687840363775020502577812546422407518851146283421985421390286391740410600041645089522755797137447688774121732901248026520762273652273888420574758496075093004148306082202587362842320188735041976475859553496127984980361237190091649733873548101851311636886496845756294885443816236167118180358298654986709577128654143229825574956201962659970424148378195320297281570682669787130965978906375552937914729171857345981323971813956598735453925318336273718587499927828977755605890353846682102127372947372842683841707434470488028312965214633768579619829972809338084019390649558866384650580178776947139888885575612511271152760979035137702555505088350239400736193911217852562928119056395247858656536582571560688589140421021413360603900495469863127732915016543030601704906583425816555777633766029022995422646359448223299227247426610463418273694815516450428857779527759442602363746632579911153425133473116093962414087202458374323443780612152687240904747487699451188826614760250563741360804805181112389848710264975235500822927665721244979475992000557511771328348433998587317651416350120676762914838512994260149226175826116806465598272877091771861272929697480865883011286227727280345202136153755322342208625119450474729407166623179115199556150377486602602836520386335154376036482916923087298770917631146166213419811608680420502708545564219414721035725648751123832417051586918562061886913934355242889388742392599616131040763906079018873477139576811326440853915595085688393343552385195278782816755554196122988149815139812056414562972789493328673867709287191790354777874823930385631604356834275460803269717002051143317445436697718676288239608885670099922109260859815850437456638834402961712494893154381813137367144596267551333404909141433584342708620301186886845615522892694887932140957426938671875336246186700915761897602320244178076539074932274602599561625502818358796167246551924238694021805102799505815868885661921689079458226590839852908768773923970694361221455112048161947122731008091510877787125508630230195497838019701822693580726390600584119957032848969380011415689589277039599825604141854139410104413064367113664558251587345449326113206657887729087090583064188684064247496006077246296217484759312029528710952074059806719061365090070016156890063234142195935922733326847030850360368199557402293767651515872251106581285303399182001455948985629561481131358528019500399312952678010625508997303955518931282132836590036843004076238036762293239050918238460498450246782704833266512501615456003597544989150242517993503124401074017077419792021342576672045658226269185967111420442348737517404816272041954562545305481642725975047038442342524530286498250964626688406435836721203734507169605764782760682523986217135765505114039818435057621228249101194350448619257556537636518167343777860512361293470542460494209503779915055890048556998920559146473399979236219545728964278455490836779848360186925918948803479966855783540332872999901209053587080967846925119470924903946240472436022474481700952811843704791640391893158731182842511910604934437858120996167877354686552292361418007465484035882806911487450336006298101714882802440768000174999800985152516100812463243862041125538695462412511765842257782783269705262051658260875380190412662174986271434418017194667216540465532504624419594633862915366047356518304723326380165199361414381605199754108735285949877036366352533012312203220054165469677653327394036858766107784712995629637525118890021565953632278186616749216777747246928459147794474833881369562679963746230598912749887518650687137317656038513412865840245070630629008388571946756503024019138463518686431884454628477638302523830110810026172044257047666474440421693525175410036534530129037998641880808494146827149662881137164473087643856674131643714795984499089390233911209719164422043990790204817539098573031953951360310202319842636017472948852091430034086619778514580947985450554019582352641390154273758127308648960571160094463513559787124606697647956237011774470719901775739880576553543074903190461435698744581256702811443494160795828167217588549398127343825747468896227513276669617384470172637574793971709338067032022119897235371810132319531833119052062519877552618257126228482462399547831041855044896875513530448430101492508070785356619077814537835457380003654364677914468599642083232912786198310907256988941241423870856388555512493900660412542661225169316889600215608543000078242768559693997369116873749884154764787889511511224201990182985563442348820091288359295951904249792753719533615729067612605192613141292967704374801419475274714032242705783083092742801779830357742958206478803498245947024754351961934399200720351097931396432070787742525456643920020921477758175135733587862900561710358637553915233600147857302683816075450958272921595785228584409687495862343118139867610201872154280808342041696518154687642681765330921769292109060816495449849615121784502955225812724280388298706053915899507198382460216828198598674710576276353641636329351530493488265785743412266714044749885584765795919577323297926475451161192094127448981190536213841645200921780585084002270543297278731070276646914080611280227001770223181165381245240911139009404010041186787142003006866577509679145946287443975663616510814657194975118112331634118260526697252368101674438701991154506742798738078611645144339638662504288108648858287784101554892495008738896215057468918690593382834012474257645690788256926672463895216465353004027216542680108022769008469100944568066272712900487059631812318767543251897990408159092800578857340111136225450933415964614100228303867955300779133986498073215864778945617290023162768032940720306127045093298662557784642652207823743617966178084642306022867468098345677553901819357787335178017970120421793592237846368805892229489522177339903265799630029780648139564955229613436293805638636834985328033781113294707520575255873956608021694794810483968177666594474763422418681656706444057047499955130528154034932962999356024819153243108773198165904525714633924667842699451066531658299910718383106196114731333583115414096446084254659173693900467119166192633879196221547986852771532148224898073890127631916042657865048859632241939737510028500458152977403147465337500681208684604669489667979383558869357238456627478328221574201395781282845504443359444909763324692095258280289650448304133818556590100579274998346669125969105671459637370776171405164609807151083942250035914433685512962099507412704104978332499392573402799057506835406777061125252401454398413044915883416335133483557856182348489279783649739489106081690523741389294170208902268817581855082869770118672811432504046408404357439309837869157034797701771844322989717605476577439438967226490055370153896441996996078982323661721787544581808091113851360308974567524441874426514957841410940075706232042535378307580353524597285688628727975246946361425361791217573992550045017481630654247821834454790383224037304755555305046945718269578687047619425006060596109567630413225668001329207234383782304244033483923773811454535095656220994271935228247660984707117866185108260424517965378065914351343522817618164396368362829384230817458808173389769274419025638738292022684378300543416994889121258803235967091991306362325298447835295041991833982131253190434628552011257667515011411486645473051270570932803397131183022463376004052232374014860388814164380962248188755829000874296238926496192005054412741911329451895039818001588380216485872227789065188585404665885730694255841576568979104010099908752170990907707375977584763338641397758735097870330983753794443871077407102014173367055123590992428009889241947015980755473321440843029548019042704876170294878341076513754538970713800778434432687601238036943084120178203676764413185937780589841951879948990674424904904305597508340382564347546433042372412492331724992409138206786399315111923603818505221164289422084886320002382162615476269012347894721031805847606088551275436153835788507332040274925397719895046225554040414936971738850076623170595658669296372851802845379590185873984551338671063985072063131858687280100293053143368971651355930556408016990247220853685981166520737128932858897514383960863802418143470125701843644083071788174809975576837614157459608953584143232361573708402074112222019258126620774825665932561159808600085919672192951364986730726846651031751220569654966992763345577400236961025957461018443326290484979085045928883165747207107130761025287247014998082214816036753712948249511103171902560595105726114562214319877827247768709712793214644554689943382797243547904203206529600538409388978250709548385214288226840626652657566423952030477501938579631744467804858067610906122811600665529267703546662441620203956849215252403738941279952947046012629331087235907741163076211739817163314141144863563180397008813359642763938407295767556884701996581642493512506107460233073891319554295736936471379494397641091417450471727572615387837377155139401939592045189779201969481739332553615566497804457834341232584207336403678228540143579367018835830253489591394635243310364545061255949029700637769023612912402436159421103601473501353317372188807447490459661891556028829839576046761012854281094624744047947819857868272578232761710073311823558438593973464080751256466384777895677283460462740016283680165470744062830373757253817631509729443759946885701947772950967386121205752494454589042730436593785781874393447998191634825737747277525812345780127849696544842876702020155077109634964850267290688815763936129262843741228358951977377049620085089373066316830243055519214615590360617942889377492610003912188541487288444198321384207183941101226566720319585430138240755692679587957944128528919785204466813163428350693747288980444812337427045549341146358404624185937032481517381625948536265076167877554749996338072674234760126023781699642146929567760445005587923823690399885337664449434139115073996897790785941101246565210763072216827976385263229350795942190412014438725244678646645949707816171525108344822484062461295959988333763065424452532318170925844302705249143524254416874818341281357683893217035992857270962537209564180991973630192077912927487290468067939999421903921735300290365686121554463125783011858322961967961526081084939735477591271744487439492076152778538371186488695256430812195466210834685229470246882511921815804932917075584017838503388446991839867779004981624577526281743012806045312237734731970874190863921554653660895479448447179591593591983918181729350741833732520867222031910080887855904987634805161103487348627106983804763868684778268770329292772474771176935593711188006123290371349822005569906192618640870223686295350706444824387499045906683501644614499143791847220924484672970675225205198674711517426155410699505737074320763685689108588997352942249676065386683727084696084147633512990797891243714212703673401503099484335967137828540914585042118394816378945712278792159252798944866064529165487574926703002891198368204193650501606269667455989595620644125774566796348543527174616893569777543593035954981611975170414339800275572163456105178164455706048080093922488138623637978206359762583642938998703331137296811198548013579445694531336167469485876117656886465939775270495153808315654526624856512351439328662293205579553300798680558076159452512847227715507564502190245344966220714605682733636221285296722103341534596631667220526213724648845951386658744820115232508415004056621108742076032739025536497148855238821546506634921663609156587406916834634679807432695645433343179426722882920985125083989241350564026635115799867341243623993276218355238340509095436446690024085145765354952706099060489720913278772748198438042598084565719825604546145619536177941119012112903739802549312890556291967898048241761748575121057422513566158664315688117132280687076218868147769609240040686380874131980510640091910909476572400519685933124033739644435799433151563200368504181444848083091050852539277550233657553347560468305324296059541729471604686380703555981829767853053539647880982863702451680173863174486379827020082102705096899254074801508918759739236541446403335419125414216422173428500220311678176889956290761728264314409249205539255512802920343628740791990796474129409154588581724147490447956317655203089748946320523688040140294137372073051024879140654710196143045073890224988221925343723142348626865714960652777478908234604732536986803636757043202379680672342315683009852261159030059762748425454797310057600069682333456189326475580886697987772433876224170826087555278298317431379759192683640021665096157347517667763037617808100720528572340455270366367170754298962302329592438801898495124751413495663720829920931803367531485904221570079399873564956040196437566476547585181102875406307913357727109536074155036458858503374395856104041768724528342957077578318548387623037059560979209901705682495802912589907709107988214289717270272113222072976563765278986815065463327493061178779633395749396566138214858414258666766353689402024483633457866879259546682828644308975377628897200437814496822844500965274880747961544705543891989457167719124416207841991615166968093605055951061961016651805222589924864785395043316449546380834562690946052479382782469307829063904828165623935278634866539007214108889703146904575375196460363725077675402487741531327294937258161881356041120398569676905010609905905232551719731398294815244516898530423445175201634811201850956285895784187396295894309039505019591307765880096235185882467569037070070809779651086229457875463846551144516693435713683955831526267736364180035374331073032064571893662743643573214833299629098877106065369137564061181790035036743238095290388836583173565148199750070490535050803939050901149611001745231856473301589222060108867294733102308434424223389930586774613692684078247317695217421514437994042494371369180961755778113147771060319099742769616911939149117768654784024560757923655311110829433739966261046416846102400317408835947890119919627482899374387566883135182351990190261442578482798680281708298453771412526599203159070910018189789385220620357362170128623500332222681683143018176505182440167483437604703123947368229758042504843222449881273654938086073781287158996404098547423010375313177850203666262604589919720014821337658980520555649035776205289874787839178463693663142470727224031177177255091631601925310268870205787393340702108816815885058024791354810948715506297842514846020265794795067034960141722318293077340371446323244484964115560781169442671302415470681536059138435669191893437139615434193350038046448168041966700918123946768292408622110132007828678871003125760622243033023381259005381466349241551643095527213536691050738660214265409735518142555410702054835518645884628956745675771820651708534771817853157775958511399503310129374820484752775106742032476540992528420182699342128068729805262742114872144256926525938610042671315302890435107752976119222577207228267020854048642497979689043001597942582016272903641816580530746591902256043175713602102847797452159103615503074374497945224659503194478534154047999756486639719729814266098660618763004813211808680306227794097178375578876025350563679938310748779536838219107943119093978900559436600282683958679469781890113816893578118273356377852244622264680417959669843932885021609017673905058919174639136323717219944758172716086465101211583446222706351968850033103013866730218153284495108500873559836276050176778361562143269368740495870540572216658194322615947915288393428008885317103368410058985199924287423938331646190603546491919783241477635858435864959603151693109045370009767153521175708917137489202913755660771674762993994322925245292346454518938537419889926584693605691568773672301607019099858791562338780594183675801644366553810612400910032406527992823183664668271003166430368460364280154712210108528959114309528301073371616929164463342350091543628423752634055534288789467604074556285484284594338412291039447173650482840960763818916276819720260966488050113137545867903182203931473698884088327865472103622738776835047009631256252876095801489858835765411642089938308269929861501506800813614716048457151122241342941316325095322992210248655572621567643238603572071232704383136238969958646912777236657139423172855073676595163422287852361119914236395608176331368741535868694031064390700438340730335442253490916406490158013922594394560514311343592647362924805036419589689633465052242455919227614759714981119200722536708650395834465113237298213532620987477465310118787092899459018504655908373677736756353040003669067333091035316305367318290815741425019150677531306736281781271793018880842019363837378407409326420458075319006242985483090254392384640997261529872284114937309686810436007766223888503404089282180973357801466766997428882077490807250440010380807968501799188558327449549633012326285183949165680937526792073455800928146994282398267543466732373977812567702828888273807153494519340572142668116780277394280631038467577693163328349126772195237446230179117902515943017963850197301105038441656411649879295618875872902880408467827171672303925077807004619240135011445326246614702425873081442493784997891963751456294946114227969942157907807606104370165801341432545319184750733465245554321113005637022229033819127964933188331620735573546836171324020579120036302170118365242683354310430215211902327497396405284368092210404559543588193969625369723592381255807894092266451824616835687880884079261297425518695056052232925585927263534566355685274765237078936862213619260611814054301606614452090962450083422337984095386752583361319073339556992257694164515578842963070465605948486939266543362459965295303234158820052230518782420165809525041278598796685906540820987828999453891936550831362629875706407772236759507203882067080063781745762348817093773932288182466979326568530934720529806101744288036903337753809915182520213972626592319579006972787669146511194519051582395936371934607314840852483709196709242923804824652260362190783533964647357912900299530708891555175450852192998489950016913806257110887672932191242679832972921068600061348533648673939036439387657847952288488361115234660074532527885486685120709081978335245481244981447865685050889953510642009720610547790658019938665331109961528070755876397003102363370653891896094274312387033419436253539732272292158341681503861037607355055462821217071797098618839428506927925316962031628061114453450218073150917651038609442548401757224250283897385265065322381928751552722771702913235696867490522415692903686907202668867407893934878392459261669212611362425560230240196275278116961340263310541481196175238022854787239894551649799979458718191001432603647200418420010871952805870983327502037273674463466218763046674120244062768195428853046924079051404575223530881880213574750754965830167615697527145001098073456640114133128882840203379180674995461780680498104735554122331034282145057049911129009616917164637569391809275889500647947410657367767436345950037891701818221914083499757599113537753735503351422620051062549186275329377465413957135812825571355679237576205265636802020925160906800479757974846668943337867296386379510790336927115877079402615375309378291397312092553792947823986791127330672327364883006776210570538489907441746965994755631886879679832150534311405195505164618455831572945550936419473680481375664037285711523237085443652840278684393831257516961915371040996071679863655210610738923649605712404282910464791991554612822874993374465695091609501414026611390734277662603892179775937608815893148214630803215646345502500558895967850590909799476560094093341341264165656335959421814481568798331004762177736591358826715287346114976229336659728077755939423513902555300492820872019235603010354039934562545840553354323655480353384298142167494532692573369942990901774141444061954021988264137087140848399413618908409508693378539597761060524312355087388716053392952913953830423806939547235437143207968291240565988935317341288205355511945462244574784260694497487933708319076815778437697037193265637274426056217479038057192197773709934618423682811988960402150488973195690589718879130489088622988646606284668791038455682411000532101448423451487810029891735799649119433033725524330016419464510476638974679873946713381812112970548258709973534115228143340190710495725315800828333241065056250939449380163853156113963967594355986337282868432896955185068292647782577409378331474035854770958552389193559390874330885310946656351703100049603858165216146319500359992384517440006772079094891650399644704224739979881605192725069971721225260116375558678489981196457074683660308324333508752526785619689793574960645220837488187755186317318796334667233525769248426003716910894860986366622331629417228232962004958573664760801250487261286537762167807098274904981374494079683938536826936529588486886441045617118862346850396118531472904899916160513621024345071246871433703318402981081056454913206424336363208762414181870800507387035346648610550705980695499405376635187355570372805285460565761776796239346766594772417499009870825604748414240627963266093020461187102320660422064204372122543353588717249553047764811009008700747497599089798976796879019059430755652675570174781703899830043179915635628512000036540071536758049563111275162946495270771752957242820947358109450057603681825720195280974877525581807320022256659184356223554106363588653640814839715273222616777572469140858645659451691355128918617949327532404007612396378014093820419638115983154611667110551878164181661622925378000972579191309709966421215564603812199973697216511601266205896016856335679046406984656979161604557098336647513814397117699212864516597871923314347491867989281749439995949815048823389817920152278181868009533866844562546324519383800609824760385681141671099062277914846361498345718345249604425067250648111895331586595908488211983107136704442695555140516635844597670054262680173102631288340510055994887794089566427119491495317173026966012359809510394328715937001571947261278291651364371988517980176607350300038683319493511521784022477148639952494246667936328222246143332555836109305910984194953583129847447145446050243812682859473408068281345132115975201620246606605737880170946607321919248993341757946063154413608171675263809239814501901008983282177351622059545020509336473755319981135839831984233271797753731593087975093751075662383410663945273782255231680413110838335654950438275978892394622490896362858790679260221405733689830062914229376933582660542172733290312877430414261396977689021640555530527082233327486291502066215243777655129221086885441700058266655551575013764041830532453778190734900928322436809901854823594842809659186404818537053882998866911303297917266323615524280778133923339741596375982061605646906428207584521235956261128150193140711713105726607547515220928363780487244490458416063610690906532030452816147623910964014003051501542404967569507959443534168211807130035776976006987608420314000989536630555947417870128448787693013351509843421087984119663404744225900586546233580302294391045225452388610971286551789610907288546612114002076034425304690598453832511387033289803048395051753203877719416015626871957190104592592073942098593167415721182714222674335804292416392158197688612180137164797074411481316309955344405349433797534872550115358676602922201001348165324741846545221638627530958113629411672697103786613562868621413256389941326626099432432700386787951186593231013925224701884979029983884106168657473025051013394605781521148781672277890166683113693140122868196188336811654480470214628249244398012957423838215434138168276847677804232021724222867544334852710569825127943166275611096102089802712684727810846179916180435622873919889220840424108375991857781019758436822732972806096291621201430060104931890476887485242564550999949370056219832650618886425492561978412993786301389289559653534853411124252421172809944639180017062289847256464706346241545369678108554010373093487225151112420478272529242786267209255500985724056279541838457025869894458916754094092750888538903950729457647530681704575104092293405756258145442140001415120054465723013411788171330923846965671480327558237202317134422507083257296712704795299164318347502375967211390361193305968459475169695550295604955574078615254147384269034863658375283389153873073067447400153608464547456687286986747291447428287788641339416529724957055249040413277028747904619765040144774076674368493844509724803840420385448346418892931003402716007080905179091036168249499069872580803391538061000317209494613815270230394001084531492782093174543947682637496726342495527547831282998509927896840355801559564317526020538450605525253911256009582866450713036321597873653830163378256677563727184569801288176518575335654268667858656937160161206549428200709755458361640169873349222500749686310772536830858064582338674151936852925413369320813915210132180701679851191375137056620812261547320464984821113183669882620314858753087676788200218400813398492988859011257024327513465943355082428170479545509169669232130843979935715286085471547227656871917829787741750821401500993290658150761473773668368654240921009922760744647783240885076440267341264421644415443229687655098870782513187993831183902037243000295668037726269092003950864569879314439291389965036526173274716132735409865329041841351863249106945977526335310486979233013038563780653745400511304969350437776301750286782597762026372630030470187583619721636411377990471727002601592453141241648413900271715998714659735441234042668856318250813476210916080534343800753098757584949089145550587663350849355599955567174209804332785733780694850507636791464928575722716916173664299583593405864685995072924827924069637678698740356011640126463681983481665639226586090966101232454122772874991513076988585277423005297729867753149139937636000044485493641162589404291840052592424284606265379740591663084818311829862097626943735712212244192751581102165490454809039093846878618687574898850814549123527276140863655704009064066299161420284057830722097830099389821361853611441974541662333401847258894288174108712445430219303504672298722502962751060689199152136295111422833388439231750646534197266408833215269894982270482878861614449918997873911998329112890000925302061114252400607012363694323855163506246374978733571485587238738364875222939361830652196408415597157385342123291324728397661457436069068185525745782941886831231520593512198791313148010186207375815579665359412640092880069918124976923243669505889132961109164943045410203034920670090825748192580279684998081925925143235881859486717483075920022319579353944607983591392787403466771540365092635753325023326576564894384818535624336848008273310586399681108147677896013327000953869741382005088712206899265998412400358526812388246903170022499262150748586306674925619601273990789851562964757186753276461753247741688123857369870767542564746494128868812229891290490678975338608378356009815668853951704748176321744931015452760075443038136602403014242771418427912339762791315586677203326107268396572527268334017154785112811581144141153691761513108061448102085409691544275627996946314332290639888539882762901251322069421991720102767012180497999102125707188674651019927211453106475244737432273374345898689459476402305411850787200154152985776957685474941718522806570998822893332970582260977229462087345543812230610812687188663180042927124118206350854477144326438413313678197329988632277479737971560659977038518338022781607660738742494571611346115761607713512631718881627834010141322655267706128711287863617259802176575058642547016650511969484372422576932275483716826003401573438231728503878793482848557071811812292671166629349757987048384860257198972181125424295378012072301181177498067309955350257457752522554481743824002140459347414815906861710994431567576317576443671238182040091775582737150613102996962076714192473513805603314660561474799786804625723185371233427682556212029755076606046864428726910188512364200105478849064445514387134893946182027311014498979990735676840515742929553185128400194363905290791458150642425324467975536923781215986315694416918238828812144465006468793930643409306697326141882910717920816568510765145629011063532601397154745823927923506368611685821805882446628573376892642798056749557659028637179537544179819733145243560229574752137828036994976847574604214622549112548974743382005154239506540701933029242234913918617125687914867917962053507330629073445313055866736815994925231168880875331026287826578651890186424602026787487154441873035978662954033255552563601508383372120420330555483231807554560719311205157608628178426254696492168128677180214970582280849054931551054803047527427844423309175864137711894033668557490171804069374619442648334388703359711462300181577667251691480044217673018026537185676532163721628741927463095127784810287570070883066200360392960742866182022087402697945900360831392300453123023635982299328430704668506899676864937923596405264733417813259129236238293088315759740924609953191330992763235848608648400322010774336138747350657619577713087509337491815430413882990872493833974990000790567843420445010742592629084588747760681425323349513219938536437417123157644997976072859269439551469623798939696516636030080340540704064375624868367029234272932995567232401163554965198814130664037644439602766769396479002064283109105705883124709592955014909443392222000052522926245630843451502738649846754065889874318340587851933500300255135267262616981990892842114621456179021154283047706197065866291335239254871194737711178879822641427658164419991965882357984104415665293979051151494947706472043376822732505387550535163249143708656531769588756023594862353615507266330467638236142838738203056372557433327807981384456529804015484455406264375934063922977752269053855407203503008991498907099654533926427046753286478653111160766961822707906929729100794593155174871013278707844819282093288144034942838391508480277169442077144878197045286355644733321476597992162872441769613866813780058016257952167724234937629097642580511055385316411528854724242427706070630894952149083218199885849029739184726700173045813094085495423966338273475626038823987348491912355994197804198211535310855801270533474831732819282571989909247844467617112612184237801939416173294403267179297275071321569161252737153709091904332521653894656300359545132287987613774592630078387914634479077305870576872225409158556627897566850462416726200551429915734943098204929410451760120368142240648121081468504456842730064407612701214573076233249130784258721097677355701728198015121937349580432591298174252318814278532218694015129039119499726055339644001142835990148252340800503863290541729806711726506780575389482369371435679325441348323849310977894953348955625344529706367104599110293666387283047403921289687268355534938788391160343586729268591664690001495513258559901721005588879287498516288398542211804334503255435055336490423789186059522942394231830954034052911851462876339658962704187306848342257858656320323515967128801903639550667695179998972323513336247155148088022498912748262115882004553878289634254431308808004628855067225174836186399207778394251051153241028690630567782605924215788865398867509939569535191821154152015169217414868169823113315628580948705274098621561514345417402365487542081948935819514819666014579759986220893960979327556559268168001332125367866010719254649257859156383363945470369145443402539585091609995809622700573901710841132312581096914105838700372781015116567032014317622052235617363712810184284821948475191333194935402265475122056808503488222379511503660936285893804990697289346048777851743444760001757832274244277519135054866613424694622006194488565078130457188923931331863849459428092934477876219331937649372490171784938827706221068170784761072218679987020946083278190111167371312724549279024082497710377251804099841774686347152758841633150432874442679045963009107188582132477004413541392839839089839295535197015385598522403166593160340671884853912223482809636001206531861075117368613184768329209740501534030805152796001593003823191144488073478367451821599442201065747515955713870238268431647433117862690400999385573702827736164477612642576300387798980815354263278954334794411021810567455958415964863343362600685655346863248312323302740170481297619990647566024099486797329133629873536277459322465388861160794675073412281405083436482715946200859373727645428172296099659458901872651043699769349200829542524769624543804955076198556917143652172595554811029102275537980818293570926060948119985726958320983880341079680238933153731845619554485426060501113950152200093337848636574190997563794094727689509071609906206801606141431098071433287031495337925179644095712517314707691638234506137530881197947133914360862638560314621089047560024829378731019117941090417925873471442412272366048321227888405528750521351557555986249693702413791270538525231789852277280307292593007897792326026927598168283752015509016203346075847167124818585135691296895490864705276849503866804071410492738870561796004318558603076263622729158201075576966730450589027429938862202158318510072555139594859127030233093559506277573884167480539189969798540047642243377302588904149699108503923555456809803345937339981074821923942700472717230583738670381195776423783417388706475602774687884647603651019836119797361946621961478740350379924935985722178508392817906440414093204445809193521914999996104620155602090393250105622395364461873554405477934731095131251684827765125332860331163956921019929556294839591731270683009574575891243273712645914194301834832869007906405824683536556362735981041899517984168135587947213378467901471286445880059463869663885125182339177286085337623668328701572910477492773630878391565029789573163396861381407712214528982986944281747252523791174405865534364695939722549040293910531823194281799677360539418663776380327366249001217154683288394584680404003828130686067035337279987820221868571919058629931087814935314493841422582645242418170159826800339023853123182307867998672679344040055096181561405578142698566790191510132979965474890264712027429003965648896842386851595211509473062629208400438979375644297978847850947908698961195339555649332524931075003560381411260459055381881868058691293394378452321153866988253445202036594026559874512724185560031782880253217468714819876427774658167749748184006263590780083277826182438779162523496742040999027177609775152789175155652510456824832986700199233592697909784058988250059286751814869364184925284677687351716232225351226145627030264862502555135140014555782996133461060728648304534347268244712084243567540342780341671211455542544622505559290929007460269133789081591015203199936862242161306391863018872744119882385399831341920471768304772454649405153558443246181398148011754917533013337238696796310678871303809119683316726080041991886636990396058886969599466797886602697481825173873657552227597660302334417777716181269143842454877690883405132221945461099838485475729890793987643820893976721205079712369680468364687116040793031193876909929294895635507373362020865665682865014722015580627439843037022529993169591103585391720793659285141159956544655467716951797345574269699835890009534171350604821394169397789279455597685395240855085557825337977329391711793047088785122652671697661426061796504232391405490646345347176542354618388320228096499746946392893623408534629652849949397822735669215936097825200036379747505767507547565238066699992053997417624357198585855819198446805957874601895397755857032445158055277771717586364303783928540456030985689335692134808206324204160600990833284336781142767427791656279198086759332161048261667953192295539903681753000448496481143300643169774309005110627093633925915734555972285294313130553247194755711604303378048302322873058154483480886625767553052644450552276505112632601891246536248695889923621482817038941405604919537855077727997391209063528796920686804917710740110347040841775134190925987708298941482695809650017351608299305194729372265206885900136351588998496236783563375384444845939378653769474742052082807971720558784667102901038153251850460860139719183954564570889445342151345555265913986059715673651324731257249104389248867348481713103844148894924331891249589222122436059057620150361466168906508854069327039111713924546527799212606243308776238354389039858787768449302579730399892884601751320355749971987725395631956218379029117416485624412837225958507986707375308869983925099443632100881510597898473192957582421588615070231742267139627409375965409820236673607117784187695368454083526343684939885700780192715075366128036360329973625817856262736237721560370853987473095016788008285882874752912652045779190073498767845617203349016214542106120421505304131915929091319607983968424170225645935278846030212985409899426252245977005426565667377712139956208662102306853249729274758248032136131471004421505444437883005740593120504853357968618443213486430676307084058202133760572689431692549991020132877088427437339753162060014687830818688997424692194458704232548802923840750744900823531128680936548144731238887182929305126041846269551803085135191110986751549894293027735647536388901845558489550313773788296215858199254005235611126867977741168215921446139442873644285729721810677340557221347260349345010173027326205904260098340399193093827146983303247481155051274199301801056811663155351790514108288820934792904249532861144031806904327683662302961055853517743196430756877878414285845873985856591823242824872077525847792557674084571149802497746951748710955476967240740309774390244429110103187459954015539501983480541806915096169588618216149256470906946484491179467913621987359197204510293739538952254239472349702857858645839161689513421337462500394181197878917790656609433275441427634560879416391153400275565956110077563507125847483833287872693875775889815079294112937089644559899009374002015687452588945622163384983488257963951297830028682255244284458157006856117076349073974590561633545330421636748477027440206523147192332637062813683354901469219595613811581881302983907091680941050764651339389271511038086824817120855031849850059314155113863179156798607937893436997773181838224222381420222736590402449724935505667301224141848892867983911445561641884602774679880161638077550622999799386036096675978829496772801389529684430469001038896155997919607901566887870782503051033876428957477470305611922396872640697424979274052071268283651086701793852518717631499552063020603236384694558974298122067289213003402503421505609842377400173961152459922050137436115883086920391150384622444125502326943395191849672000356284850509988316505363561565691668021555762985757663161843489170787281526561930696863356013454074455729125833848400914987518576977603527951379256199891937169845048010600000895120987976357767231003505215177089065318010386710299922132684507226942333832403459948705069161410468151541681726157745711689513367961758389439346651905152870839898842232747929630930430356685064870036238204863160070775286991134673388367295465628693175832560353402055505769647955404177136963096162634566458257504324094606203914645960310475055429614096405089678045498540333311744354365414182699756835642993380160395597735468328963468918155056155500252235243415121280610481647079961230647752701271435223934768412073793012257346702825500264856829292237294888089522957990315666528671266679488061131221218747115521486119147520902687378228063995642401848972101428255686593269955917382808443938034886261357811631195527525345793083944951075438808395981732144215181020794244610114380311556989979177240407433831231305331516419050252549114478436286346349104586930617875643437523945443160558434848516263238626335590800077563613070555196820309442500050763322858464371656300488433623660235301523569812777951015761542311012460386328109312730051371484406370467675218842777836812813234222240137173025110526108295979440029514384012646976295612044841418755578708476712886766257728848255965380417764181687401550223102464165275304068316599389610867465488687007409711074642310943411655588503992748355109760974336731230751107286385472406644751492646746805686923196437548757609187330921062857640076821166270467608890859763077487983270923882701306649331400404934681663243420088143693773965989776344385730368997404121560591215612723654865156250545116050678397839074255902525707462957001392032390645716167159426251114355194586074715318909958820395638054455293865550368036379604103534307350944909775259936511624335260448607374596811294858693340693528274675819664031330409358453328330382627907206053738888058323031085271685376634562886706311396268921857492475707860575625296359833871851387710646467941318607592744086347913288839266204511045525176783356392195604617324413086447004376385545825066153573522010171740411568662389948583152241278084913459843159208442999719251164425068215687620744252570938323374436628858785795004031502737105183380494357969045295525975835260931475019013651874221937332815187435561095483511901086864228501230973848195733054072069469505717108450656962673289723202647476895109763270827933355493275930578407119648197870117423240877874836060175177727657455436482732373617273236830377872605628093792386554519654014001163993023693091882661678552706438069660051507586928708387917885287905602513109643196342361640177296412381347483343188307265776069516117153414305421744393034047845670048888121987857132350828629552290644936548890041535250470468013308253132811181626060444675822858557939943702950890491994517316079907110817977055539038975824464875621955204300809893787987097670694125202329466800782672645663867499657409558606957223456371586220293815896158413840901647483619622447753264192376939606979402434749994152382736757255566684297287810085548013165525030965379132268445163183286122895608858911782653017720036426607425647549718533605113487348642278274212511359396297536962065481307093591222721745748900852007965335291335598352911175806407656599593292980739819913429580158704146982349098195709411257146466154164265886185736582480713221034125113333950613146205683607785389837734036864587987031355086842031547534796452346512113978984349158118938129538450923298563753298401383050476045584039384813298324510341361283432694848368192601984459746204064617794459172808569696569264128011582658581012947567344241425756060309032034627783456895620318623245047586417186714459426514988475839395681164538866861877568898591388476470456442978970803125637065339743529449887649595105981844549851825569032999622443506901421314554305151122618213086018598629716500258623668829785915424745426912131912269895570495037108492617163412971947052396086057726568895152669497234917223163789320370229816735521298069496881385760009298703766274119349688419189467228237112358302678363112301897763910934969343542312137553751706857184949303968942956385979745255161384307926603870522603809427109128301954832840402040702197123439435757666729135586399654477199741370546486020434507517058149079491247227727261447996222168921445456525109425856968395165398213327271059848105702914991476036787583376028474427240383157521949155978451454529229774164903525615892823454382522100293431495032866637887989352900852137836643311138026316292943158902874981295910642354743813045767682958331522305496315091679143033559825726862667092464745321229931956763847732725651415793896299260320111110308501890210174463693173888078944886869910823249013397915829614513388750747398191657429174465816434300112199328782531857724508155855780065265427879885142544515463788794531651503142423335447190781291413382168692155386490976451279490918795944386952049090002928366599645980563252609846581642287705104175800372330263820738875751481498963330144465174968123240071736851930347871545239456768605881342084694277608923868544015391033581557794646970493911805853685260922038350665607318602281489379245615541013028496911130313662886602017152731375409486496036248936008947611157892563271472808376100369037647666085715400888597720990017711809800525266284990937807038630159161738432804398719456553422444971161463985237450988796606059725949397138613494564803243750622631419484979645451761658065911271750612903853965042421754664991813558111019515854895537690870961983980354359491251236117199725449746835239756546167892968006829790298537283490601595943946664374238005893135301811083734861123588702978918912265132461942884537582732755162925096237614755216585478729244338248530253335891312032154556051226798419427690902578700803510096645624626207085218925117155408578066876832215912893483544371558718372597900401515095893954948002931382198726792949086239615350473028811313553925900685274680112115580141610485234355154977437836951282081206571377016332919714257848840008493292088176965958712220575572141637087019101254495322264407352807629613905346658604308761977255651711326963359113304640778086415058345659827198680890507166328847442881231113047797800568251343728567771752515805960706570324298993920558995234833286217118245075640215996813387293492804531354103545580602096822875811370969651685349439381745432673300285193503845079490294812376314615712204215455275314036544532270634030959697165617248036157197449363086499349829224294131070521626542847952145523901075116755198808304669218838299586604996145463765421663916537215854245512556320525989724831497291350099797651661212683148521067848982509102676694636315994004101643073077489418459355755969587132396826639886345279784252660533023777375695083365413926865553465509225301515735862943639924730592271522525829524249152727982518819442459553922178841160980103333878788310987745112355628227717657065290640333745234796560076901838662891244947459159832121440270426157844710705060527042041256236917574740842277839089099933966233365304927112194366436427538636931380960168815660268582534163350158361250518051562301329835079289232582736681093778893851069109424154576012981250763718239544857873318460109391796940011317728784631032950577049175397883949698475405913977310020453974558903594544312043009834403771007866849335500741167544767798794247081921924019664249561732827333169010119901781558334736831498025397329453248242879002865571843344611725739929804547335595460165465449753443675528969143673826791154059989219547241196031059154523664053468458282365509490376972652145625043677087054526148360437786809797713192413863212089265497140695785839648330985838992139086909240187598044566302541228174072515563214416272470340056145758604986540114342823946626602208604400002596327375111941434833149597573951128473315841921133542236691549866298340555737847814168293125625222189991439697384097313899956114562712216335811060180051382089360630359369396063123379737250358897451960780612605629327947796832549211526326070146174595734107987374377603974520150245388539792607178214168449551996580069488148557633114385951615788951676724503148575237856359410146187795323598284583289819902240659277574972619199659153690632864952940958404659324453085108971119243597854284635599236226768177872627722960571618158764043294908140165703241277677832790223006934030201442260377319552426231900264359597190604949125487393731376600550529872687496454588977487894652163558800684440837806779010318965374980456547038733194390033664734097678201089063064000639616495993205970498633021033708048250549637523603424843694947657706804912248943241784222579610132767554440355974313002949988236253126810724791267806412555804647798301180100393462746221511909666028964106199672196765153682254153396200575284833500766481061785247074754708910245477700488623163381889869737022342847216339918974170829681627910238840117734534773447778261521442868715001682357696650968651328735277870838878901936927771274036112996310113129327955161561715685549965734280228392652293206891268349413480759043405774625219578841871998994584073011760646330055399391433751956893404648885731820946958365639486770189685010107077466315720841635913541307394384917822620750950476167839986390605904517887213479603885375749591567665707427841471110032110003516411398131764867276329294626634556654226740485708634707059494060017817200792596318537367561178524308390803612126294117137437167788558474476500928547128195563148751911843758461855916846599104840975588597426533993073313006534645844503246965276701623729454055232199257405087437266096368690152628449941518212933164392317995645830358862339678553828956968090075516811904324875751918725511153309481545148321250762038759556477327520206741700913798619416884975677281124006888505182159250147847323376405385820866161378314222683154272627316562832798552787474711223555944165153431093028484903926888620305142798949339168619583801756550699813079955601094800493246123207905625879402046569380695948878889704721655919470061863510461490011626555500655696130603415139567386751324121151816094788386831132869525721386055795835751609589786460476533136862989910864851692130711358377465538539230335030364565171619416739481684765693896737964645058397918790735458472601754365043869766948842125039557645562416010306686102065305382970533570407177473225140436975670624572851375575913278759332514043684409438103269987236781973281870943665522465519787566719231366818790013506417063869578532712315568448370285710931525227107614096355913284905271051792055646641093254048015893816714771954309196464624028267481464817358622402038336561239286499454096459619910515406245449205394603470099213134334664840617516759074499946509618501857227748518645286086160873739579963788731495510336591850808669821346838823001151896688992642610707688926556665566011922683821431730471388621497032234014793708972679863771902731903089051145414857531642417406402803801309467907247510167080934751424901166477510671344750847644681995652483668612355126543685270417508771184564818490638146040001362378668794849418889478035926011442372080498809897629551371672150993272121084031460629741724130292994985999050545695067041485342987537594874386446164420934290795676595242697434781141414165872718145204912935089562890816695318239559983725888561010474684774134986556872709800406384713177735282578470839839802829207440069087697896325150869578329977341364606755143375657266506502406009643870085824869041836707167694478122060135906839742349681525757682242189900140234957241622977642131267255899245251257332943390733625048747609653049224700216891734522091579707820258599662834254284187659419483975305603762310173532820705313731476141382775758023318425126939517049764372690028308548519208018296523003557899941991020819432359968089628343087376598893304523457631016871747285109275809108089716577862912085006056427135459758490155098765086899468159614352189073267910293262421876731246284858179153348413637624229600922896143894619527997918461548801876415921035641133404741717735994436646746721064146026882257896330246048575293665040396594584892410929093310998725876648088491259515694364117536218066280270779192277243828210750911831054183115926627319879535433475894174829665866480058824573013427876658648425601711042048512657980908308117099912373587732732245574619777978858499191973297991333256143616845737422082026236310461647835818478455221504116508004461773249644439458772112293266968988206893129943711305538235630572073174367078858799704015095958037159286611805630579683736956996878495850195339713489261342386450390015880302533107283797037716574652927024408680256449815959553440619730283637316412491035909784168742198361514789209056162692083809168410176324983467420813025053398013553836298223986372006816235896900237931288058961572479028950622404389882313554886382714569853135642554002219064833537332053045601528472551292689734227160478457941033530724715680253925472353094731099650552521753727383636806773225316844696457073404758336052851130321246096796230332843182540805988115715125347894274178053232074956277207731078056738478020515825264585143205838588018789742762348810491296625558456601727629507636866599352677935132808690333943329123133504940350207137660203938728449175712482434446422457725049367982909873965260972069391279142883416007871788388816201623168036766142578976080619079284745830334719211392354858227087623620880563983383422607093410261526567731758844711423121157203751492387702727992351523090187810579989313265637820025544360933290852182362730252846551108317741231961913177823655840488497298128352207038231703462521203699983237449763107028201577838675458454432132473247840294261767774149062330337767731775422209393040634943191303245019286259157470765149192150494796356196417250289843875888246832759743910861908354066762777020512590652468218865396413054114144213465751531310095793104242337039981774926739678538303904460978758603336841955641704482286497915259301814491759455455476066802264039353648958506384022214934060515143046247767459945009330651815244560766357621972886141059567398297665520242946870781453786477442185271266014467229792281987686912795405541649414978489513873983459719088681945277453073158151109586100804139629846540282494798929451706859255002046141675836856523366044074660371109912372368145080693963411293080774036211386238954480499323250296379284383000169076714719003578971982250766463622850841583664035780053841650205164628938583697697872634756304927161845936381493085638636806781159883450791206807071597937168685564384002761931667910488455266808460088742408725764741096949673195627210437623616491502452425275010253408066191049316903983424427011447357825210228059022230948738015314973225679834766668710865778169678912189347047353227312285052973218926632918957140725002936197397804051474721905375757271846359809825564052648956180812622242812567228848676847570289503605567654217041659463003798659454737811958516941792671146987699005027737156346898261479438411379132187075627245421643937703019696494215137947519025967809465968395271296058553933973542434298528338577724204949400332923525743712352996323765623917107740592792196225022091923518373454116740811136452152556920966401442548073604445603011875337026876671726175731602487518361255544935501990044064699577315837208452528130078936016167795412068877961750182701843541022084086072021190309505735326340679971138614732600720012407196165739877358213133375957237728511492370470431473182104810825701934696515469323867356716789711494029795216972129111769629005933815346354498341201951598840287013852320455001339717282858012074573490432526829627918571421201883570801556004527415029510798930700483080639377803495129157453579113710230635207103284727383078678424339556753724281241768578451570500321982516458993541260583140049347598302367302042701029110746655776340017952602282453869661872215773044808759270445546926651989431929897679148900510989851857244424658673132996201209066588528405657522569397752616697800430985413668890758182819949094333599585087528968246267872569662381323258716557427453536719678814360510335853100843728354627031855595621037606399031422922559927581228498266926652196981208693066252981350965723775160178723359582696255040100745894909849274989263257271678765692301855219071649061846771349183195275183314681838804503644469558385741079839701384339500414863946040102224296156212325474434458562304222884633492493345398639764325347811505578081046415111181593273736013957977299400125658059565693790001639846511361467277451453408841445510701906206897051379507069780861866504839006714849556761077173543973217458262647785849011575865726565571434969425327914550786353745715324208851994669262857852982832123594287995781558463111472699936709385091571842024698607233460037042118653963027355342284432201356086583914034482361034935025545768566603754517379258731038304112238492038535442621156472287708218876676293309906686897156086426302736999217590834460722318553757148251980118274917096811302365475100679506310303759561754639173880273047338258868028260659655276956784266998544163583965855525325631345492518717438053089042394905058909104762063835126827910826726800297104700596988140092012164902177969720165038281293561495331127503350703665360721959566773542189020885237298503790448349282039118854729386213872799904756532103417257704025467004297044441222797976394516878341567338415636434009381434314953558900084193997204199055522042921075746054321033828740101504547476239701005472509710559273996812072174435092813343113113421543415671636911439835974875889010532888515390860268899605073830140343934626233977104591651911308646390571188588335898103128789352066831866150305259534921622596013336443227020542938692059310178366582358221705225843119755185745477284624794413826235399082022932463872366254267863874144050147672599740451031914366458102728675641260824808090364389735323952537543759904933713304878183956609860217704305106489452173713197462931533993257760299346911496972831897810400684786207334348399040754042017099113803709801001198995324568098083381888820333225896633304343137712310895027129993629013207507705178022654401734967522780215655778325068007817978012116185084950939658135435845072150923880535438586367003077358861250299419060104198422280451009800237337255448052565532685518540570671918838532342609570350327587277586374490692944785062222081247031358364142984556256894545806500529365637387117464981681616590677374892557068845517194924053772721700788714127360338014031071637929260607275427805364918317480401455643342737749437839973857571827864438198810798449132081652438325895180132451064116863352271673839105907044614046560653124392071180816135221363242030579264817760925156421302734208969089379594620952248848382154330630218667013243343330283082112225608808374875450924921324773453431003150864454791706108192252293367925420194679804438315865542260470334194346621272656862963215961636756284514451759980046058171547930071156447835390078435884589615487719327830783936315616502812225598388337523594954268578209441806939454810101706120788654945095899324649063449960172789051192003912526599573675419819799880956134705015641632308334796077704223651795745400508293084368503431601212833331635061770530431931506162164957395107774170482874625055965993887073574277390155801651149474746469291247017944079684051160882166304759929526900741118806498437068316879808760118256016065850968330283869275733913969113792878166260060694130916174049009674026986010208678418193411965140589919599719132463830274778762336476433441136775802492899290617651911142751173009373442239558992588112841721975538633320260182286377525870882599481797788674463013286192665670244869093073431877362209174412579058209673188183481369576355123601600334709425193036570058619297362959966981678138112747024892388935334893439396619756103975408761693427551351642646100302956660520404822807602131253964350337559078640700085469160694841418850394584220304163151039257227452289121028844650551077178141712657798102541025130761042191544206813300649017694011512207251682278900281901628982133611706086203159461183420987518346111240271504438882626694226694841833006174615347781657279083358316180806353042428844691695759507603174527716884824805163613177951932199152802232903485123400007993487705856846478108682223411023765711666524086940356823035983618506331535945651798446668054292271812103110783329854932464769441215229253322495406760704062679773746811191088726317080194676397665945586200468573098336446947139115862390418536953613783468831389239485530753646164094504149415316625711593668629328922043829755946808111897998441112013163153555893237442996254109102319764316202550876724170086999414312535057198287327964303334377649157225236428607025653128775310857469483192299110526275381645575593967633339150115500746715443314170953277627483662828638794339300180966374805240667709141349874581323039676940084238189257518750903350208395211090936684278648484699400677889259837219262418562424020876149362433711103337033369294468015962076360762085187437650335077171906712791901997843044264263287070752436685780604905571938543307224276976988961166202519889256928852977975323170377684870867548869227438303184546690658994674320044942399741293837197585075051503363669327254641629758740513628286430659416778976190428654432433560383933835133966446955047819236938326753369385052920894930718576174168199535792850477602392889249228653398912092024406762474051081496952650142487558925924283185304936291136128083226067790505901548276208367586098266651342274865477180429133476296237688766535603147091590537176347707489931104161929043014485070468320887937552196170200759748082818318205206234874870712549294245130793615849569139502019991536230800287165765603860639075551523030413263204092832774724081175987736927161634752775396730343945644911836442312850692020040268159783892057591891221889694888751532772633465567238202580843603999537595393518600763959627489867760709753271190100084489784543140469489300887178647770866495434448588962428905837064573178176320592789291980165031638825195925174926716931814117902657899532086473331454705959387358083063539009815922589988775978350619427318333648340750870908825189096979230478604475407470367057614468877329779809012026240590837235559838713060995537349332915767821495079881876523624791945776572086177887721910987262017185014166708307909728957255423994678993666643569904932887056780489764810464447114924583169176946818683699991394591152250952260573431833852661755938958980997804484180580092917480479278793727216852646313139611978215087874466325607204522137752766756633704154917818283491928947441659984056542371857056040066908302732836112937357552568230117329917986689212378298439363084146027620334726464295346321916263234019484928512420946544069791886538920564457441376745035432885828640147118169816208631382333456049229419330753865044712161026549220121312372196127534743698973181170927739009154338103800892889154922583549358262562865479758046608999665852249149468043770948663667317034184941294404323073838981932565926576055883292910439247752334248603674895663460597457753034786266386238845091437510577842216641123204994839149238371993072036503223491617323380786138197019537691183167357446748787027300204437719576459553900972969167574328920412478727135732332425349388293515753534673730195450231492040521169931839767310384674638936492924140846329634790150317517310601675529763476032046865213906712299391071469400582225552571927135667594236902336053888452778277736131092598548977411241585492969401639514409976862543196900746693255224183226779463692899419984224788060000186219529131126123153215550444585285273310252545878633664737190441292840761529067964065140682173948830667715779800379233852865340459347226565564264155836272831234478851422701647187891762053031506570229758998604716307067867877492553497993323439315178652069722728382688565078097613430820613469165694917703282213336675613377751541128391934778992130921880908665407960433546886177398759673851817070887508250308197717905334138041551863671365674813629320686557201082288479617743995726642459634697805104420115319741435491974133325944423440220312527880552595706362943764389814801700420665163952502187379488787541419768954901545126285001462060449018864296824455951521254304340030823678896451135811996350154412153341491455718676019578555575918984482996032285800661103487344327596872121265825104973525215732986984213352700513997617611382762434304157175344723981712603486736837280892034214127294464561280449146548675403286914424684102354848884223875613071890743794915519049828916038963253511560883981326825330449954510375070383686924250706041915196859849633021656422882663411447544119857223400339966140838101220975162856195955223455900869384535157688771895646726886924960200272665028635101551881198332696074683414235038555300600654869428993785091452891536309568426176121202192133742333116273502388434468398587605006763340994391733820729418458116277771035073110008578060551665661156098153639775695302477350115867985975102255124551357350276256849410956329891718415641530899995553232591707591478166500191097686002948309489918260416474939846500835380252260028722732606008733538698984744677894637863784406340460712962549721503163635801445853884233395111065052995582851759336691792506952532048129067439410546606567877535721240333572912680397038266746568633316230400035773692599549967248909788252735641234498625263026204140767491458780709463176598413484122412595400079147030907790688467496714645660660247501421952046072062229481997028149240458137185362868099685803480503724422930836973086828110469332586016205283761175415723006334413516792707307654187553191625288289508467176056846254637657655656057814210845308102590710759774122456550220731552566795055177616230281732145760826284379322163194665521397465819559709985960510572733074129829428706678896001284939691744550990893073916906816910368462826714867070370069512815498184715628887391710818690033138212872771984623563870129534513274599423329850015192950029578198710672983290988683017391458841427771847337669582447152815756522116763516535152944714467365674203352164192902938677950535487628434067169254578338425527156994380854741819064269086703142124980239829486853689909935224064005186939104507119225519588553277164502180982659693279563442116250423425924441033181255893415471929528576851766279745171129249959338496593503153738796670753640480572139290921827245586368259724328978761337251789399060816961241487926766354718431157376156453763937909785144982005047033017228394097872965541760867179162038709695241071364938773684235141914804988664236195335664941451418107404938353934728353639000193204612669593433419064977996903537137685865732036452244684050975034139945197670552798660023424616805322257687330620382731083873321805692753432947810464996850607651535103083029876220519123715985896326330731014078570303086397792077342904622401425615363709743340485911049206674246748490727847718271757593031557970001049934913087146417469182153547289338024126079245304209681636424383337091226539126821876128135970205544717646402100065619792722815450808299913658587296421193024842450828471934912126294749906112835547501929631043681327446359066088851367475660172264028254081360688208352388976561745624188114533336448714863222595826866790474408811032100282619960300134685074042739700555756474117880274627928071093107891877912250693199755181793339239748224266952231964530709095572857819210984192304023482484239698891812593467834540834782766537830271765228073310186999683006806715513996358251799733801955635170260805556211296507324463809367467447871418322189009164297132080892075682408298036463257318719761688255091042604771540734326009777587738208738911556195665332893860027129099642725730871422113051208181157404768544207547963418016971722741203008374826685048279095074790953913812703572495749842626284205876198286361734654906878392100234274197653810038451462469814951224416520133128188290536873989146021688311188413291746374471370438338062842590752689147560262362609451405910619445528773178405778760360790842011901157103861869739574613054950561408724458303158495148156254918755247981542384839268931707798998689442672985086566792611976323695498350022562492088203049249908420062098021537179587595713220811479346297947365043764009425172259490760241173433887710094993175262504206989466697730085617469836428052623373704758732172392221244769061821125231744291581086362246258035278042597606176659620958253768818531432413903784833789053144942540311562520194212225322488963233264301160091765591715395419696367761273140740338519267565741055003340188459242844718562597333818311948069992301849638850860579316792446415495936416623005970682053737747474229604067217607236728738685355458990054814441475943407943096327022556358900278221974967295064859988004388093320948886500224137614697641540611531792161991762628822028291017805310899380870591066716357967168039738371018601500197573338648945121708510101100159491854207102725912204896425660562208043921824058969689551774906501699021606893010874309305448759055307489759009603438261900003100678624156168473349876999204254803950874928864599254650295435668375358012937741489255219958250342470789081666103874523119297688477480365863428871860231492489594149410544975631494961580324338600063825286961388946037845126669991583255521781314057628310715723152732659827423354644856857559749477145373823328352891411610260299559821503045530773223990572886527495238029944876305413269317066136623925926472158239982090814355862797353293825362788179545571708654377176740839239987882919311683811104446518338857145968161002653651743052792116484801175096127898893335187991350320384084376921903203705977103765784879020725225669597523581452767942697561085300288333278814493093881439088542917226148131156714044100691719939891276606452701341905450326730840570432765238555803918631708507982431044881536963546077262527265819291130970809255755726250193499613711009337426296801377426086173125294639554197791641945664402442975856286149172474076950422778152728568905912343434029401648234266373879532541041672150789488046838874065649514755488022314960391819329084960148412947872418941809796883588368055116084555408692945419698398061637748382394173120462451535838874338966770412217338161257035520557256003286101641953438788492299180115255886277401134874861271411343086240625010398518386667654133712249830574760990536751529147446775991364673018603514572493857344683330495382476444304032537260651888936492485818748869169409277212693287672621446979724092071303267474867951288605733891676986940124817316562637757664564749538978182432475395622611850972438527576403307192849744071547490706540857041452193742947326230019986053261500537491089868003579124581563071996885246394610625800930560650488572983434766635629815815259757463370733394115579422154772204858827068456740413248325647378396769090321491728470782881947785665076092444276738079918384485998479974059615919641997385908440074354036475371224333517369317708511100295848511420866779977976325303538699422066676797841267448547368901614573528517031752313166216992879055157816984604678300127203798638451720822473997124703223202094961181792366612854017153669592751480363697572869191950388317195382742882874462862899707932543828761803488978247427073753005820122109402006402561505124710812556983968584452343879704410310377004652167108814275279796639400400528038619267699929331365918316234197919642163187923106372062373129968959168282829728238393237176267752917897352611795427118592105737171497594043147468258626661584074214738641323259708894517575744530097320247813208838899436710266647200542687355470417377148391118845011653769855520446604354241557983107411581672460708114841767420291321699257276352623301510209462755915566242247637450911244470640306619614625121434868867570693530578877953405683791149247952761105996079534435298337874664650666822634821546709880857429916542117436705689325565790946807341344551385543367918587815890579025812702138964755640042555925944499888271490540410087027333904237635900125045623950203396807518866034913045979876173881500893070891241976535304468174595220259238051754509461810890112608561722092741576489561735438253440702777290427072266978182360103069938767239897852252547185865869913981514842662857643672692792242693754527593034490897027782496396418333511758143483590449692659780959916866292146499571140155869322693028725761499811345219081601102626142640178292032451802511581441532822291895912972963051172021475598258598027408150322943306316729346751300511535508700220297038624045550313081010217084433777791739399224687618262764165413190009392014399125475257329710183416939009306438057050097644094600378785902547327176176266452935114554675430254730179123660796604364914155309647770374420319063448051715734655119259915426893094393384829238708627622602993916788713028268981714472730857651079762585923057830854413674480209186053924226597095947428319292188516979180347053523354408012588028523509248942677067894914400923946520586793537979521062651809969985666354828447241280691051401110594440267830386558335140143614252187466588627583099794085978554329108410188418352805163212739164448674264689329144829372232951144486228273222868186657228163419355257747782744223187833155958529175701536531691296910016559202163074730243957879499803701789056359102382620072849782144679350958427271977300447065057962389521064298472986897005525922876220341406301142770599509905031475210593805834405052648240428295314718540430970361710163130975909969703676704955845595191275291901773271969511404583731136667536060465827818067630629822392889804663774444828943825038822513890358032715316937681237577038110814179647755158389045275295956215597407464720259756303836871290277726948836197813260631833767374871794542720476372265415110840277927080190468356469575323478092092346310682163839393440970033247363943508695848466701455269909629721149222163814680204079480992837057455676441120457746965217285241983639451000472021446956000251904302183436960107387916257525796059615224383595530706123628923614829052756510656648020596296504558483736093849085336394322484772218586009452585013343554007159484286719398655203958672210245994589736683557179559703950900344402796341773169198040676303883239223953853569468556134355215271572492093946227940477975795838672864211654432019538389115350473385201062730919960852822854558128895085618057215719851584556855548368516436115961791184354777620675189463495859638103069138578512385228015645557299858214463823294326576973717697008500985244474329139277792769228880760814499066558039023154087731887445323537271181551844946173088159394116742097945420298532614207152722346674775030042060378444569592357571004896877343123402891593903945011228177732492868993022795447556968365107156756662441658786982883909752100619201647896194892853010296446587681561589670011550552568321890055635817452161381995947786520259609455586814504292174962864763264275685507438743922063974946436533596217962986703616734196789393436239397305451918966556368209241021000967113031185565299023869027745415449774259027659195030685647553309334416607413491974346265185460910095040637476752481071073166211666197583713434060785962283519942550374347109216356722944935126402799961398276542884456689718320796782807075816403358471273340610841986152419194568373415074800952678164151272785200438806229022220976804879967962589965410514897352645451991014276812667806477790705881872968812195312451956202047777064823383109879398823939983699745369528595762858181308798167244626243172497905537408352506907567195310024670420734806809824862748103761800647938481009740984005908197851362686300966298893598348160335456992122847061028298633503022000510890855355508384680912332259416327765956315240127979353631277734894107260696625877387115654833981367190746694300931059509459205154809234085844055866566159933039676941336860350736787833446530809267824934086847175611294804986993131514916234987745663001523097677709533763984747092975006287518590509934377473493294586004428635184783708829904774908581259561063145652637990875652380996079949778017839509399986004044349537997525399627840525006690454353206833788359557266281428646735595240673380513649398213041483862432031237439425646437501100612239230758030184431168388294695968816439725162246342624364492023901917297102201215728237309341862450377662911331248839585711285236186401346085285874830768802980041820704435610672172371628638936245284018207718380028040329803021368185965053577923783594621939855426853352765487948977546369058046455820036988691521259431509987041720032444165403209548232723097959141289143350739485405958723713890289947897854959027189315959479180950012646697490191967310707638913626279805618984877950627274884040270560479630611007382644997264912699782368284811028697446157869467109649240262965637367687293661937884925706549485470951127541270708364506444416472666951238276879508098751926146690289661923935809348985158582444472678288514269175113576373174294501487841806115239494246006498215855316751823609164626675387312082083939754656074450868849612517907023976469716950244492103548630232674193937556427737097532801991336431833082441567753413296317939819690895827834479621889006815484757189711799414184613015607150622606216177796991422800680824875017486076119329912083326241170879160693870206599293067267689323282418976447004732535353883425743614476241841467081382621311937041162562966818275284566520105446302502900756565509382635559538073157204148076750731921816831328917819059208523360260464768332438824345352721937911516251171830109536487043753968734397546085418313203812411417967485732975064235683185570744396989706693804522749495346550340980256934701071443870237589242253952609550663715001515882306087238546224672605844614711197929862280937358286055381391741850319122064505938723154259939120693445124498507416840716209731393313116226364048964798075828002108020373374723375198202701648478458174817181355493109691161443921811880953280960438712686410853299537614331311454084976988486612625219004021875648529218457128647807140404466106227862092439059829446169235822703639037722988919536731140397776957512764014220753151051450923942866498768728510871572858539707734216916493645570040741203850061847147114796553343547479511621331045025318962063027961151073453634361704675849607070748568388780516186802085527207376527256244227858753904376094488747629743522262584744175738487302587365651811349810768791085835525965217302300510940025408608899607574221332092501448656170915095814746215052878396998850192796630578232908191122863336649202609455104709729484782539844265230386669409243205094951270378130372610401895672348873104712972731469922838333531838833902147830752010685794116817094827496083430553119034691970448563346136562238751599057043984845167747050270766469350614947586851150025914419087669195389562094389708581466598445176947597754028071674158289300812381944080562481343525041377019189424398861743339846786907063041789585358883814401429517927348633105601436140954906057941022899028529344901133449010639157531254554898203008344965071944218002732933260166188229192059623862286924834139902057529134960332893302513201745226703572276593421806824246091573292727142776725094912150093389250971075691991355930407281885869405340928768441220775667958588436223569817041341148798360628302372429065760324686883006896988774869738199608131219651770892401178418304402679466599883254480824769821221708561898309375761321871382379772599776924101031709476424982519240640772776662909119723098521096346080885574495146822785568866600093812725378115226912609985225008909802053879937385032634638266029896998238806059781651220451221324070555376341204658059895290291509775970416117670330522111406770442078804538155978235867824096878643777677381412264260238121702637733809414589377336394707995825393238009487662702495737491101465379890021371343478687067470795982654263857000306581289184825434700896266218792897780439079178058677749371896525909004632157028872727005849522344888406940499861465496557557685309893358319998326384828586015294172852084600596385194642932028235602607191390200782853721519740591602193283662735904410761892058742688492122524487789304101750372979611214086227635109241470446918153359290299496956858518926228660615858054199638085655087196635037763533208461855991994677839093339718092407329471906963127066097729441697245834666709225594880875382350208099003059331436725860831619071237953070031292067144636627560662874751380159916493699483014937046057061290001943235199344536697027081327944079997959376408104314505075650138553111469008125015919352424885868546234770288354758841344144584889172705545782127664466387205387851057611750881259172910840035296355930605679796308554968792570355569898884398604883592469308361461511313629182042748920856415814140235925056335292190308343095852415610391636666908188699994796269766942002924266522820775049805644316411155182504506373646860017804955496603707499017441981721041077952461038519645997750901682670050172725817735564481283187656427840628342688013500172994739212709973692132003703563375333697451912904768380545250164324214671585057012841397108564209842131740811851686889347900583566849497721336872802624055243253135667155534334690785711475212576775975887119564614791304296153533149632718080719765226248435674622395349061007855590980335854239716536932649689761360344251831137784524027263216715332861177582011632054782015096665025546032263887094451929329720861572819601037092771519662198687391032823413626656292771272085981997744090342318263136819855608201084879232461928392652101371556694260547056062157409632287723217941718466667969440205166229477104842706416703353480189949858728911656299213620439334716177526243571845178223135573740298395579662543087973117074847614934350979211338114495076482882792087831767351865688034230473298490103692121814054377382445160771641641037341935499985718576311452161849945027449755270816336288867008289145388774021327453710290453677904695648366716954310241689126297192826761917529183089142064736371998090588854076615120653157338242446766949392874504113324972405704246539644474768455608786148636462377130604200319717267671369416747377948102690812383029189289709902560746935989063294806234887204249385010631974775143717817041007501378571414122982418978102581167546945539364912054890562394229597703262228981578140946207147544544159218756478698795023077766584973171456700365541572423905048202367889163228744459763616438336779494057667938909188990996255480578424344789324217547501688142148180702027276849232727370318369251265081951819337672350201837520235068366051685205365901087856617615410272462439735115431560418848896499646235390240670347707173523916311703058347385278338931329230950916756923266879203183873573042215232376124440755934422356117136739204479007661427054865904383233749395876521814321249576006025021031467887534899660856966396034423750466325973259861361309795736183914060376769927395558290401764459241136489891844062900687515270989246499642734760315047612412242186753438536780148623014634286230038643211897010342179575989743275407169821839690987916228201986644502172075236119139282468996431480891834987255734588316797727475227668867962244406820093188297861426683468810666513353350803874501537110503471413743618060223542058901454876709925586963083554499244286318098472757652751641977621016033454134923893385598792850040018529402102049067912113783450264020345638924216401104400782406015648612590784536412381149866360509394314188238496307363388473243196030593491064278445370630498569174506822553472746573416240908420703487000577845460442489618541589938774389469424762559697313313528369674858061072900431606881824895794120004482949573753628058084183706672031176451719266759071344801504475485441253844943346578131897039147588999641691828786181902185889575953670175763177436696759022294159500473219448237180337855943579695114587961339784503705998082860143529008783240221566961232797250665966801547598275646200291673690757873152562602544677590399730946939674835403130981283933063815054819789466965183265276413062424535047864917018224020425213774604671612790280725204902069072010860470355598574717441984332864918577941184577377261321304696880454463743289913059690214791170614657040943613850555453544871140515987682408301539724892220740152933667984882180466318074666354889349141085676259071219591018198195413378738666717699988180922045258800076090145873057580964877202676191160308073054060678956620775885774979029238206441871130946994211481982118135727241519640690858557834596415517886180660693907087741733179251653466387120070604518484029319035248164137997779094875735635571891814864219082913735480677589281408104769674393835975506175462713642093337673315848640545274932388356604338929039604061550427304469966924847212389204621390570310366460218685319107440322419711335806485611686720014941082774773575985290316971632342766687533432294134991291301418935507925930519591127037209282960593812901297171547289370552423955672585191690967297794407505160634157169436394107233222084220190297661131995091303378926548021661717298574781099657008380483282423486215455695976056588921645508784702147730737975385746656000394988861862718584133399864984765791187453071006520877905726783348597165348456094102223347647899270789207164535374958762246818620019953158292297746737732160477691291572915999928068541785649179513956832001712760176427949576864997600447216892964735846043019693965395885799036215123355953181783504844641819953660691473700184183073590302973237852375512819015895300038448791274485487181409646897503651895431926740182996483314478158199897256487400152040870722885985580911719311788452448202013963717775585298462357877237560532378909911976978609589828723516859671045864149256521429621214734079225617145037332538206847712453081100576593531097907765824718314884402080496962153866625284505591331330774834927182343704605790769729344754404531795579860164178718527516374375579148234375786059910398650094707335572244814836543769167577751375949690269114820145110583583131158060624810503849319565762943142038412616729785050494777335767971737063811783848258686610168436683828192885644294679090356833079384201336729579949934119322553571398959761335340601839905847330889205877434590771929245281619710779230201280561668547615010493855360139504730920272794558860141395115963293577672052082638092876360400640473803686888114263220367308483447116792254889871875941140204745029554989089190343778173206698233497913108081711628512149171809067580853257463520968511993136504093540702763186745124847585856319720370893137783106207514291416327994562831509994231668954584697276237887972924328968129573854843573347891332359764559772873240736112927056526583739409855531619585104006139937562535632849877235776699532083552831093332061989577738871173889264910205901418394080567565024508764778011772584383208677944331599579283436376362655956770038296798747343597643338417251335179631766864209636230759335707523554961425940541410201734430167408915001914314278714969392237178403566354084138638803290623052158824975276147121214033474909359867595711725473727679690272441716371300432439698241100205131284635699453320102996913921807147541741043853461405741580994919944235355215512111419869460730904543822538265402990622025037714533988064657011373316302855708771363902648111161676422530084440836122227329886602728324316796388854813262991106675041657808851734015506831689085565597236941840054232016704989807854192450715035827464887489067023372120049356148658910712642356798033380272918827720830366528806886212548100825225014661799178799149814848740576713929871783466995932284874450602476117793837123504086398496363324811910804173999364721133145884665805197766007933913521811367160806428460911405261226478177448402015329771456345255641569420737794110419703581005383151203559140467693857734471911397205111176681640324313492285922575660438928955032961629733652770573194257517474693289020714681607466578888155906626949814091965164537159693411406354111554154678936242643398094759069443132886207027213769997332398893705666190106387340891586872603245799470145315439741600211584104091417146953112699257538059546134544745619589284135914633148913751359629245055841110223298737965422749867846742908548148836806709185103049880361351984376398550241438664682304775518192525121693639495290245130640276364995008400977646335032900656917344870046034423911280905698239706787287118428421519301996183233354734838661441316555269577711726699020725593158581267165601186035967075193042122753137042318372308778722596798841083639848379914621880649846419572802443900372484809280985996446411455053347979530629449861920935542823421888479193846126073578577723399149163077254375448398269470977584137377195550268455979974826742345685331421820131504876562036298772628746462831013134783204268167324400776007646318323615800832863118046844752588976632709643523808588818477227879651715659577928433504569637253807882743002654359851737860195611322093305500328584201973808345575146371192150956673810622878467236342630134396154704487737365215379543298084469933135412489673663801067028454499691797578359386526038225168719384158919762752412055124909608789426908642873956081761259768080637973362138406404689800122015039516499236883333962017469979793380039276766376137431361947819323550783492069315704646188394778014446595756000044281549721458385278655069470087808927350044024011573785450859300520802019766985967198652613648110544834564427572697671482796165782007406647925696633102638118681165106402694101877888814007291187055798307258514706675546257405377168237972676401488824620879547225477266709946084997386299916917381051350636514708646682585101955514148039458392292918581204571273138753524543491272326933025519547618910806251308722980467159074379979052125895077455312831611420799107634734764776127468805148671997642494511909091194323460267436803145202419646726796168667033057809659346961753344390829876057711639606044809659182443761880887896046978284416204708612677632059811572126604833339906093271215230395394328456254697247511689909761046894233475395702138007187442403445836073190649009017612612294736362451975978757915394231398617333412590241705020304201348184678785125768844545554693785845246837885695034176957792517472930620704408744741008055055015109775570477506577492557507575254680438925091332651102898850491680442612748553587949598066381662929913919941501949119522379208700697817428932986895164715303574145637972322675447500214375294236604659068682831046698091074741246144863724075148110227982337078104880811506443919972715433031573999129551978864905884027161385522007550273664280237035093439556585525844853614441869956674829413505164213317138282167042943220338896291394665452341350358259136426425152296339459706506699139313570947574941126226364871036906135136535905367735342628148512168033474217353733415733406473642116593006171357441173839392558321381852860301226040196018589556344993346727706582672304993644319502865243154181327734185343978758491035017414273867861119109261523597054098871365666060371081522526534200853453637298675485151198328417505209434042407343301866583808378349185963044887674526721046485416562023109092964877534704371719316095601370196079462248384659537059036373584371862802287621800891721709762850560269917119025333213507251299598205180906749829777861191687775097662074642353741995006231082697181207775744075337856752655276103119112115507363249188269085585945971287861114792570693794681669173589339278476344595009007164710999044748345900606425707405529688478578751399235649771444704717640696549688857685322559502418794811273848825342075407075206894279275101350222335982177654503854458447272975778432390282086442127893124326575281122411236168803958911393383006574153178976196583957831532360465030668658672643302984258544787740981785005473818307780298725210044069313517987944377784439710492172807984801058747721061669199084333559794398978771383935891844505537498524122758939653391716433535338286933211571644613259635807242028595169063476604197712502016250460646166207040455703236024538939024437583121063082155574246619085986151201890401483544351451189056537701434160325384687858208721242518365414809598443359168832868289671698219710673911088731293149122544036415787894802044132800757333355233737434091913469662294587425548364140401357051504542914634536335785831895452227820727700423941083479859787274545189239001836591693334474088017071354287178348547532319911215832252756880501871233713156432488158864417900092517864579144206717617230990896736851840770800282098133582536847417667431099610056380765616196534324258262415661833012454258124079939897734407377804445363215364896081386872628960336830421567641525680996498652832705876785773331996654042792395942239270842317105031892195807824424520200420743853900216421374029750859236063941904801836668415111933551758646157099367812883752012899158770346141684685026329730401900689053471679434399319251987968913286607539426928557919023250904233575197699598848678900871459292164799547485607491485412837167985528728013839432317996099483254386924286465958716830340526439286500275492944435270921034701543130421786580598866103374703591034534707506761040660448041045814982624653369786562683368324321573760575584303192714658061257372501453195869338279094202950022431157327071809846227462507326038252306616581788122703401068267048515535252688028729210536936936297910231422443821516158876968399516217018576893125750167784710077027764547655386404377968425157618470513267189894310926080690545657883688328160360064894988880311448543658112423515321930187893722443115054625059793031821389237402355763539900905020276850971710197909737438173645039178477320346896245952948989603386551385375331433899092258318348691363440174622989651508962442465302432860366754950077498292463106223862350246767146459626451411979510521026800191587513244771974231807405933066722585328772080490712345645451615136475445175372542365664472929305545583194629366827614061001860421886669591943054898690502824966421664040424192668810557593067412111042776612643243804303093894205921019370947844323444106961969073303935964033875903198987092731648599902627555028347597930364128871923708234808390806733425303869489360527765153944047702604064861157469488568798876930520136121360206676644636067511340293318613244573951454239910081675446076779404298258598539661205746539713204131331842976138089404489758941826114178668516402439943631220467303572175441624591993956612970804357139258321811892354984594089814873618050877455036823734878301740340805024645107384181220692156814093454904887075445326318738677289891442464597712794489308347231078598772252723139678619177196857997738932247014470768549793109518023438875891911118583673140912733246815859778289565472735037934474299590324529858313324125632474908262282192211993233068227743804040421995010788827922624372339687346519910065672637424880471935916928969159186439305963045692219233036283959490872164969788855422650520858477733720518734524155084492623888186204791253035894886343546566460887891283484198633907561336580918827450812151364469436698107398671896997003497361641046561499538582463321767656918759600590143945288528914543532222884847552612333223425534356147143641084435531697325735465071820478969818316573958522844420076449747827125351583716281708855937636815427975746803365601800477293288392034072392848010485105360671162840981313877146499403511105177445401523237078146931484324346808857549071551900406671472757092380274682445793007862611215365724487934349877324025278251745369594243532622384843680379332034679548748987144408094070777584330213149785103211308765632762394638615742116010421711012672613960743802677950411330154004842267433232977241055231151836303964133211621567019476058446377339326250338744299002967949566498566143559537967442672192234558956299580125926871078237030439151639657073786631240484755242654434161296942609029102066503636418204830504632720717751016287930791165762543527292016909075893616523666209948308444559360655085866335379386511916925689541042896273574042136126558811320970616971515901872991466729565912510393771890418352452107054279975515698264061698531798041893366433321442630647011874805617291536165053428374693002451274990129342028313279129146941697825722076228215053450058604131784453223887267577339444931667033628573928073357182451405184634299938132802685505638671249833024492390316924892209840041747822112967729358194836086660556245259685304028112699541911044669256708825630935094905013320159933005849858923031188433014986790520920143579824860599283820744994019810092128791735589023406928763066725892940158572463171775044686454685834333271696479379494471313027103473831149165305261158380464929726270003047931932713120857402427045654657530095850802461568041449904759520391249261680754267042463470375154708836962725547132250498464268332598113517368777071412472931098813382455769461751391498705478969218713841695613362162685848871243259132199932671012702762444339026494647715096538862265896948343664233569301267233949929130512777814102326248993715985118853053092603242896708838916639380829729823164697461867025470009928159481667549599933497892672809444361932977416422024267877162570046022632791302372514633152459608502207413958489217767600436218466774176010603599782827795518638657341762440512877572435138889472207145013883974129313615300173293309500756375623149460788858661693392948954459835941365089132491549128070792572014426755658866372682995888255950388270974556915744972706551087795714930324885854553342348589602736620859687171324011588185003673503872576060037143272116497270813267665734231783300689491678281958670273662318482599862205157346562445336518838686044668442357212031659275073212946243033914588436806522307741656202450024370844217744207762606079960408328524411253656382417644368263541334816295215020000670818386100594437633450289712548256339992334193882830561604432331350526764317047819571531348305665206011415529437394042837711752403895140786367922523743123651314975250704003483640644758192873214653445101298211638866522787931922549192934840765780137458234359423814761465482061212625341695748617547215758199105852045501360131250565418689291844055207039095092122275944676364875996562579864839693939426193247214514893242392937770178553188831383235217643392154214313279032676148389437068188147105961064570005466055294270664150352902699408458469294035596757223916405665018347596373662934375393851009501113596127828822242973391579553763563183464965346737993527492144359829379852143652229801080194676248369261668496178303037256491994404743473105609229743889211425629020129050578558562834132287778002818161426287700074951876578147686986409849938679575456791233162521507432540824486983344983095963115234391563907011420640169970719632113329191290055408160726673585880472868205874568446757144634734420948246310434491194904538808673076012111627731606947918346593375814580211632624869846800191698801541695239717102276082338241398813013564939291992271484472879359313354548548478604899004310353552733498588854746114420210594688430967326460311624126377587622094363079876986541182706715409716837468073479326690577117197542976186909846429066666706046909789931919258838046362632373612850151029738797411455567146038454545980298350548276976610280049704312136032296385188434974971071720871222741908581266636554139431787322550431011831735708491839884495546112931346384008104132401572121264222931432114631318327666509490705515003143934016095304876298962995665244439915697543338531138626686938897266753356407931851952896629945816119837810472142512012310360193747830615952709646418878542802585107647766994272205846268592515439965783552558592728144326319002931566545971300940445619485174587121537225876114192040318428327525644211200209369693441271728935236200506795839434182957462743843070867655981239880294547224048963673643649313989769635801919213273733013812517854024581186959128005651988514388598981696421846581576569555005836772043714210267197063864406385541947954485572923866311061298679836210801658342700477488874205429444756668690241586001724657188416107430268679845457180678741328537992563355853176395896627327267151878125541459082041638840102621454485694477586315642756680422620882329273588744830998245056039351472619866827734222819077332237577528757104776219111093803562698370150972845158276570491713945565908066082975237897345147180353502390643243194716907241198224743309081267435022878357156331862408073703271073161502213458578722519215536377338961426385297433069298736232731125397297232113224656924714764349880228657467657177920763355209404354487153669962528883707149884838548784570706161770865711058228773632344333009496896425297378518525811283045364605312001045701000128781157718110225720476454346101505971213007577632506469081037804449568303677521400885790567905367606741729104894079018872418209735472917324017053699807564586667248193225240686923041956269820764570184280059594348049196858821320592983791905590964973174808657644818178964563032159666887389818255183514934502506710533366787930064822073241222496457607302902890554316437496108013726034229076713316693366511944171538831604286823220317989942738118730652452416261405650382443983224023703321804951599650246660700411346592356189900000982676284292289788332120715862545019337123154561825383670468605433805162936666382942399105374240536220687104578921914826871400232754076460717401954911731125958344578799320939730414351154086718238679599991171091043689003823950663093999911266700187694579690442597781319521922070721312457617486191699490846604846655483939084709065899926283220338748211581509447818816542987837608706619303920476565010199365970942228329740960273240607300370824796239141692951562280568240756345809052571321840380893773930028957590722178537112767693862738516059432899201615407452289223102941859157125380475082975980931769001181222278736338961637913406854145511171679358789291881443179989073290301848667226642007358029129024015457227584907794940423667232162216620096956353393704590556051789613880928545338019350380154567083855496751325330356046720864024908723596655162325774366447873168576880282927656596756281269972341202413008630678424386077878065803321228184032144400575337098268215630625080527766123799064587282867225279132625523001961220067410665012251472836753522559906929174191833315215385759371093341931634953803112192223681285308962716718222321512419858735480249759814549138158015456962327405598456235995984705520517866568239532012779148074056305377926653286908823256894041976233723809082736594550126080927431829081234716228901479743957651269762341334671166291727222435706593921009923888713397863899030459191684315385616748986768818038266695427976070635725646626140876276768588392205109690571779560091560259008573306787640053833462586670341235011691277239351151560692400976564893428598979390226530314161239540212350967996683733681097229153166282320403094915244268222919987313973077693417229227669219127889352454955656426460325929069041558644113419805171481688981221864809165045340130677685003974466118971892676101312399513486685184338210394631479710282655519761175322228099354844018137971447370394431926030644529004986475054760739690549911037813581205087639829536279393999801762641743769543329942161671062790617710826617401228673736953810584243936526156830299144077450017882738535265514415552946148812058800080475398103076471236606861687701497422810048870873188206732742809939769166103531891074040874780309189715448733275339207007695707261996303590092590689768001232786513676847912252328575755504913374920174414918760271458031646361325821474895963769051461006976954942319343346165623282781195386999333760345626516865177719230604499463010025896166126236383361974196799125848789773986590156545942683346371488512513106038351929571904391705154004215219684709874068559461263727841118305987097049206428795018188742393326828918968196019235305551580089173081697349519048445637371574907404888688693012500920351527089835865338648367721358615619375981225939846414041730916221926287112495010440695689348634631010428613487624276680123654639700191207270291003012997595790838627537866942199505265723419306679675541201210057038559242589099768642314400771982991642934116512436162767405022007426517286769323249667430245943497823618986808628028684352294959024386508835117340766667197429343008955134487312813940174174053942475260331768578373878927369314626785205675308659114818279943093858992492422855873998343488855061784385424332905675898409859972719571096443710952217710603600145309412687998829039615973752249226038818814341416988504726690249192179463960660578675000860007750981127852436543202547363026839989111059189665964820295081255063571872016493412817406600668143467959224440494149227623610098743434709573291361248437529035553779391139078555099925038342318796539098726054866757448162260658301153513274841815307311463245502759814458147219017300045229129084236604394398356141213257754421721525734856844614820663848464246594744873742151262889621831463937418222992773727382121864287342040926445492882275619775105952518446653909035940267279305840354341926357741728840684707018206390856639535486578002976015687847950421133500872074271356905518002477035141672827611964861603626908492397899808053385142495824014043041616577392222358309269806955299826942000048137595956903991414542831876729826055458385168611531365374201260984731381278084092092485909732943279367089855655046947050763090222262834362009714230566010152368508092278461247847074741060501958319130039229368808742738113262878212823111023944847067075918166353239357192089538447556373651758921094642825838351042533482557630800886460720410740437450196968295600251764136560350970348998805581582495077119888402085189582159874697044111266166560814914823350740130056396413401408654402078576383076194929773304282778793687598363519674619580628194534130794553792478882889304034512121533803479997906706526552461708198727561955555413073404439491452671875337544790882644774797927892080739658181173901883769387835669148298349849098760672819389871494977120434473091278232183522331393521849439218087540423667497190448339630601018641807955304311403241461863570220535581310625149862571289484921181853110489174178134468009402019823112035444429490459622101419102070519028932674351498701695104504444920344185950885005718305635929649559691133124279963409982728475877319784900491803010280100571790349799562682937538164467525916511486649073389636187934216772499120442856884704973441614880073735844225118070912111050449567177080600462166687415820802398877893374553832259894814057932811348069937195395523626885072626000811772629825660025964666958877860455276234458137583575991524869792126738733041440202346058936351506066010861590732764197003448817899794252186175575055315698291595819617565949075474109597094856450536264731155780651838747149800318752555118250830903665457026090036900677588135211530102112302624628289454260358653507265564030025904915751654628173129925861440271904935003209411684589542530730332240827503592372184222696599469671716820714768137480916818726595005574732418292629206441000845451244097453928067995541391788934372897332133334267380792201292889447716817556569232172093797597269699368251014297735636718175365755978658006302839513554058343489480685758843140133795716734789622975573735201359675143177458755192588528638837097745742923736905018455900139431424400780580124588549595491625510724677054493170088185025237375773114618595942052328028891288963046861312814420213085511925800439616652379565980090171341315079988681140456029981729336591995123852727865331828265029802562289619297910838884843401398329273837063694828175857030582957080678481893653105567313878413709486141471410255097034660308175931131992992042659476518824148958332855096018632538090924710002039744881097270560742920805219592818174373697998595787999202982868205866054870593196005373382801487644950569921749901723398189718861194520859982525273234788310519990088662044346130878325182180097409694420811376486167642881199201978882340304553754496228111158916072382050707404718089938592348393937208426442441361825757151423643751061289574148041161860140550948548462781606227302506735198363596269345869471669275726613072875544299731030030722562221398145564364254965249951898632950629565210448425695440089378359139833312415285628809065157366465258047688479544877054981509303378084074485549496700436443186801418055694701107074382798799855457596495783677572369999458734502777696265534868713104419767210076609010108377349379239693341649157533017659916158350194072483010187991109415089088426048270345278907658582660750228035821175023595255278939162784575757436398612820897610822827637027961984009984180613321399185073692041711315408085669729713804321198640723354529343338233489783305403389649258341895612831951846013603531887678628184379243391404960092141268936080324954274521421977815446919365073784237733504293840128460132338684488830413063676172462141597272172604382839923432596962835268370998934199112197978583728537398179386595418364685162689295056705503847226577939209674658512367184117354331890149471771849155515720946290642094474061552896597446129223074437392966152329050308160977500038940986330939341127745997005261784476497270686590502700553513207260384111853934055666981087658043172399789852183303009929279617305576633088979293962925686850419950394235123637979895306520012481410648486683821109726317885660599259388280346600418110877794236469671071018435422533365780526872956958953154696701004308281610307525428568809651323799320419785159245479441354579836746347268588355892590448332396936155250829855193134960266107252664832453930426890242425686095332314256237356691453270936074790126755292421126711276335786184837895972895435448302684033489010410981119568445372474723046031040435261532615468920511536481403851363411108039605324708445109169533540942328842702642462686639831753876744035305828395193776405565607224346342324621684975817703871731746877125689545803110661689384120325213570109381072854661226986105138507023199783774004060099922486874245371168248645508840352193973120163499926037383648723138404863453986641055501721855266907774179480891866796256181348636048386636514193937166065087280928912101483613529012381814351210883218679994567533198186819213669265250087231217835668957539563283798459439055332788921961775661161087017169284509373484482893215817700495717154436125087739665841932993092925076998504518674156320099681805981420551588872455687012129361322604066077709014606785991143318101993449301832219208220399993137128675633273984284932018225733069623837467620872924972847264057202071039053558589601584165608404291403909995361730212956896853603869298583935219605032875103362619469052240699826656524431730541935719203309337733585481319410843910493245373848181021858235303376896642371885374442453462178858627459502837095840190301506276139880232873777006437841545878195705157103743413907788507122480969428892209223443659387679129583123085143036358612816046241624599921714194280069713726918404585922308604859253987204550048551992973200729654646675506527757891125877172156503469864903692389871983608217152826521203095583253018733297622865276256149104361917811507224818862750544833206366303133535879047862349495956219763434092830983267757687330836656146721981854216556581642680298759995748550813608876180284876045112238933673213947894330665909508673020087009154076980795355763140496594542676019482026324548072898630750753514884821571631344853421712558632245833980293668386924629926426239883711584194815778182134659901219961459298764438429945518114507455970453530487675072761645566700282588413210256774253708337478833346591319484567961179596727959985571028267533361238551470021278028419723268484568143860037537679558826151838239202268056910649818381184661008999512485038637830871736204704980106635571420810510379265614868277719465230948602719992528163312804972513736128757068939492298774334884777554258654837748735948760727258938870568745187659151833738376689303291014495258312928275276642744622832423541633688038108012212596635082265694124829753183824744317611469692921838456554049499265406762770499233649981819492082748267963272760262668419235614388173568249282800256382932720267801919711371947523967569981499634503464563567272052178105820708223472695640401553217987027201807664379326029048691020027999121128129330596285409869480517332993433380949459437390481296224491507164258034106677331920297698576698152504394132241815443471990219600434973851652588004855154868189461595253109643605202765392932477465118567639588369720858838567960679875561156017581493710846178826014674198489049975973347306388880467604757050034653225563433557242134488133100557861947483596313734247794322226349074616253959142198364937741268118959955419235224220290432059898085992993583608746526515153814765380519811185293025489922809775810339965135063300461514437632863708336802170858441359653235507690620876512681942304775888623606135782142397762165743389649347996597592534702444852880416037786085017796418796447181866684041962033407355579659106224783052143824363205363856770345955976301686564949090105561336287621147167145553669915728291532451003564796653251345079894600438128146726758827435348242688611870180450273263898497078483881597012069534639342872146632456846393232857830548908159884704191392142568320860653688706951582922131749823163899910595286293212330792018464813843594590635801233615646386265938326719445616673465383780284378247463425021050992515654130560751655451191961803975534568682447123794615042973722717982446830963139577777052986301770323574947260954530635554063582726008803315550009453169386310677600130426297581722619779141014672019739747194507633419561282547176046899076759806107275546598852785090016906067829624393740806172582623345974025475439789332809330640893511674372281302619005987675585292789666106871581979471641129993374440603698194556921348689249742449866929290910843066883372011118232903055203679952177008132448268660367365468940995732455183086904248325216505497082666010684447607087304460579795655454508648058699213994609850237336186118920955917120154474635074905829606148357446675062439446555550373827480183057765500296830883806539005773914104031006182889142825430701982652032208556631926067958722898680748202123179599975180750865120536166663650658784840002084966208112948478166489737356556444866441311301487830864675425119872238839337616349554914809666577820819507462718096485271697626394426528607853985993537314471703308709984261956800859611623212875862117389494104980767832759364657906477243583765664298199061114355494934976902640306320437296779558847474824793064092563708517128075405787285038973089045384010023507370274275652249032147918093916459639576741479672491436593232837058560293065429884786961803845113193039716518129902865867325749030852349274948072846902925423231600402808460710457975624550773337729975279425689487565500327622742563858264941170797064828891709638212887756865935352296357795442268628195026783874440624891880226181070361379527943050872102741568448600509808390033943041810574554832053781989607868353296480110238118443872826169126061189468628895595498205501370195874091653019446374038010913238466914640070157679911966995546557306990013569653771764800833419067806819851608529764792502573169219300125250052640264300974462678810911779009383895294447155254155448264447232210966441057304116249380380627585781743022402975198521651114098033702141750755164670597020132033927101585603350710696538399044120463866095760054705189957043237232006840812907872656420926915069581548514371374233112354161757226377566645372124049499678675044851844212840629740075471568186664673918476251805033768567872362189763661185659117789236297597803252682397987381344256337195456983168330073221773584636561553664791593779187107828516530673015492341898275726918268672910891063778707747874613610678193820767129428942761251330488583334591543674732030715636543992243355728411548774297491824051704773052124694861394561083587623236839335834699388524898022303180923353847781621676879311050728408373469950852883581631296635701492625751616876743561712027200877980773919107825859159782478660611940131934615018410568555700613568341048912709793655409315057263141739467918705630152354214086438191689539841308185530185964319023693318902051725303740729251297078129117145223385364035186511934035340021077947347124554300517492407267097591282857987098230515127142782906477159368276199781264571906072208616080086297782350305701213885737618574727505258562047682396196095701863263856575120622548833099514961806722803493478969223507900225701853831320480624839580163915105436193630519322954375464559520568306147685414654592413634794955903626879535121447110946789541281610309426928122179713431608894510022950185102393274479893606765611226103408471558150639786809371096512578292563582111181849326525110632441840287088621770985347517443092297488064652721628432175631048876758890481035259680443263871000474051653800334440448184294899252863609301601953151447722442673548671226275813354626307382140989966365406946102401315374106392797321155992558162543836426611034305263147968816609318187412710207762868774470311263753991572896437235339563866066570610710423806177767836141139190031656791488578311262702467817004289206556804448523995420375287433842999170653214293797719941986053503007423204469872102276268521363680145096208094288126368908161854905931150225825992445157561646130175069507260363587528822033006258114700312744499336950893226992467872594405555594256285211650309886029868309883472235153110271787458805226858389839469877380674721453497158389830599734947986428019545411641759742090852540564979215145027727873515067360980688538641518914382432685491604809966374617200803991644095837837344363368312232034106376194271169695621541143937728598448602957306900533443098766668781518238971359740395071027659280535967465627324102024267357490641326843627551894847131233895770509706326080411643597720341588204790823910917983489084027046530911840533690950238573092604803031288309250148308024486932152445069810526856973717548180230848100799438214687972970484066169862521050067097848491840773325485693360509563033456249896870187393588422516152748617183791500075615789066007938398430794079135498961464014262409390442704893284050482931499026347461950072079556226189814571265517305436157024955802548661659988007330907899436002805131401351549295299027367921409941731824065219352228011931699165683289125738299121939609545469988284590175267870193032030169925373382469827395009335512250667099181049215932313611341628376805743100457291490182987598127132283810329270029497124229896116273673204327826365570556280383121986467546841631249135498243566502783360220519658779672054552897936942231003474684181986184063295855311121299192005670709092249792466351293554189254315175502452783998668066560683489755738712109241033451486745708112533566237920135991212871017503282916277761254408263484208322031816349367661753752069418502778683204047977967618767557513491853661725876738364625173986367508746075697536833452104173887050830147527403095063704212173816467412476396981016227720593249930391772455542024577677159904894235200243472541299299795153562583547188877744551628114546552744023379834122207470801319695881079876712126225911436719981276117244306920631123776659326481904379750231761578884013017875100507433224745860421651219012045499228625909362881880639631977572399239194898685221999053042447546930738315104357097799906248017862575714729803228219873675427250868842906087739335838176080562027342406735199859465243544086739145315282931917440884491641608819899275836508098842680146966307772559276381157541899845068247049031045056815299151399923624597406657712908625276237760481367987041691136715641897500982486926447991152372095395780249074135372093556205839895917932996439695068656641681418427117085447207879622352141977187020219119382551547004950419832837775707506751517891162491075984732143712324857690602780848418814583113442880347460796504260963444742870758914697167541728604493505235232836815646503812495675901472665625407916236554155261084885808192164974094499459890732381173971842787229564058757346999359767722199092090009432423156431502398765295922578104818874913360273182081058710870488852149796655754191046061967351226285044810949707531907411448491686823311539444776080634068222599165980327660566895983990240126963913136195632371553079916470150345919017033010724646489640675469153202733826096528645150722997933278291562825510259202626244916672007645449386274391319103175998393927934599794787848860209893197282712064333769755633622720119268482438927283304499181735615725784009797750347960266016378484426128480635617172243826783895805251056001233925602952856839225929319022277652038099973460306036952956798856797650468245467443661399171782148257481395675477815156470576077013135926343707447244575498279457061462078442654544574058589300407731765972223149246797564251563844629862723569141153171711925626399307647426698840309945378147184343897836628219819909827759330657271718837531363840167835271462107184895747717708432275358303938187221404444883701070930920090430290690277346339791229635874105646758548426743217029232690716401579344264466710756230806672994650993119620779722133964726161643737382421133156446854141415537156266594338097551749994282346340070430798050802775933358331013781224322652236906756994523935825746640807066926197425121773557476570556366638212783832182338317244643939164052129238938889733442589542725674025114615972225153590526454261839498142209876506524766189332317341152246738788006553044119175393429929869211573514286770156285084961451603775805693809314868745470149340734241287759947970281592389640308308805620872622349487013281409881209655684207957096844785379188662948587860108126275693113939375385551896145323230082868633716217288825852458630481198270491482766941087427287599479397506908760053304233639958662959607200371795962033008547807070309791481305923681294615304367403375624419125499339878339369142311802065540880846791648441102875995770199092051508874464614828241575262787932778271609867181285702706551688760592514072961835481971271448470027030163209260917173535678824984354166129326900903869018103908738137757840029265739799150307583829402946340566052066763250433256188799801024710916271695709545630263110013677196664597882817222316318488370272114080051005369337657089924607569570242589636504740812458526985849550539910053209068578609818855484103947717018922173194651539336661759253394307536646414717859593014922221599249776049867075423969827766186638556437914101651683504554196281067350300852502340692364334545362227058012233680815544789952372147052925072215475647250965953055741774204853840374004910159593501136731679691556828136176153491401839354175463524491893680300761670746735390437674879573617957252240205434538830013464321214266900981275082437933973093497151023529926362213152149885881170371223405084370594715384170952305329295957627008680832378914573549951964996277357234429977990218740084080483737557442803551154444206030892193098287415008689661199588920092884231832707685990021372092770336839183511164446672203320944055216377233150743243191926318736298752174332506503877478096642757114068015906547147989606456616160108704354085754409546643995562732503028417585899219304746579726983446228515078784134436806133003907949055728167688027973326110927332164678759674398676705783439060138666077055731443087865688295801565227158070509792891518928919896439555630472905292015419476307389732596233229504349201826520559022803211214266138227521661884203143087264192173828694366516308826678969476884544737491089134386007723421846075508157314927630357093200077331660334163975724349582386049716894726724817010523179268976866929404346023482476491444833560691546204803940945255604252964025977320572677965873858236253016153112615888937841658488326698683818980803113451174655293706463205037070238162159571105717236396093339216710348206551136762706172463794351146803630578096260019328417971821088416567840501485249043033457020534723374351262933954044598114087445422641269049285921663259439531998665172877324529186584599965170917782723169031156341565902130072734237895526696538523610366746375588939076825006105527812339578939237414817066545431644047460870926498682818130540380462137804367540342908911936935639148706009230925365531460629742436243984173134272631062601243547443684741708379808110324702245747962880837382361823512874414737208088085654500872780576985819891476764186284196540716028588836919888418132102148002554117566342503850639035676977139086903040098537000918664964794886858722536010420750798864601779106228359634050531849896677555930235458738833099445444777854148040952425131761286349193196954321093791452064255242679633134975025629028087433889599083039451654989964172380359041197062830899885545283255648938473479214616246618736918228994676690889275948579155847793390033532962132862666019764265362051578715294233867452267841040872091891863563582379701498070364397586216161383487403991891128702684514316407626471281802022703279044196412888684984497377891116272835982450241696932212064581928147986479815793910780505819870662663165420415962459107987635547881116248817277141560437200996445636006022681372071067631032685028793228216108565617358432038686269932390249989864328236233315582455578850640342694582804361361513711853399121507500307580190057482654215766407951928489679697235661897129728874971445166129797543145813137251067641884200148351998303790894448132557684011498985713793443035429882789381247664087463641342943361469118325306773104488220161137138573847830122331419414271030430521762033572836610954288345690940278538140300126019157972267951518442967546589244807432619543358338804281312912871472206383872319109827684891684035954082644526401225494959698822813851090470622841316777687083255202247860554115604640117457232672257352764096132020617809801750475524328655044987424783110284833646130778720016449342252224848460166091062540597845745964141558323846070766406378144501859640270330240379183737144773186007666385844521414226401525002541962713932296621480732201282827950526036689246199410531570732949048527392099769210578877785653642597154194300398468126532178103629591255045226105375223123562546505206506283480492369558806236355938030576864525213857964888129520075232589344011056673270436076111888600610957654774779621296958481115164943848711316730570663919030868271801799806653172879572596267792474111225566156970855504183605305493723896254276097963962423829830925792947371548295264163456680211737433171863838989423842531244073232291625923325233300599127634179051728450637121118445352415164848776604546137541615153354783553496109796270413484768984599089795227366394109420155855425940358624375019594546383090453016019806584510029342958512466614544990885751694467923479933625977173862924374002902546173003387861105383921373666293742635443901884910546687068698618311220277173420814742481755662015129942258864662417688134124937730341872568374483894395347351510358155396291406697021538187342695921317990399178568999302068177573923501927201929396798668680847133418613651423374140505789842598480597868527614055347288998243672652155963522322965441722368008419323494423382267420725228268251126896865788873447456071485478179562820411948177184704809726651315690798460489309565024325084442026562350710507277421872245625654431909681266380071464828965782951336441804003121016406592487735840717738948946378419481221370557171232226459024017315645658444842212676516167012435948149194818884682300480084905080504982926297205829641518932836578434911120491377061633092657894183761226915822728470021728367827451607060618025812571689964617006275787720630761877134682811143019493768266126806160244713133888742509693646205810203279222275673459306773238996729860891960423357596262962732464076467819116096845966661813107135195533934774168682998292426536510344342443222502867803095253473464165499654299188676562531480434065372657295521603219057185429850844518691192788226804276522946049795204213079350187408250364564016916192956398884471257272465050738721692358629670369459850337462209952961200185619258303156918399568462643369653168673070604263745869474276447259469342736908992446510019869882673341911905057146889144156290523600804671724362638444811318586144769539259820506795837262611071528989012063450690453492196527853578453421323565441472718308838656295314937030658412660373960822534312954457340423977300975442998943276594058087656454196489933244848172006946618812433145200674868311745966089797784486679170472819861677369669327806585388110969201718119769724450749803988903970824894717215411715362434486873516184718666401506999245652921078161348041782153501607573601395166185120202114698994403387361557768839884979537823241701941283979728302089188485484134443901577276593056855622728965188750373344636565609532818661785234835236739610380584302237996909074544671346704151702125547257718569383672385067909845058023757695417239534249660146481221014088655590751719508017949636240319276623362090463814438890197555223728309132759565827110920293731896874609746713288884025406690892147438834627657787295872161199053726814133696539671668705430809879419769210313993428527041514807927577239041488696628590921659133954874255751693679198025174130220812776730896981828204326601415433532142717089180582020521081132600607163750334406950893578371154052230165046559353488601854879211853387744753082248189870946247580927780548859177204098644307611169450420830156171182666366260317715714210794882897178934689696010079498919062998401417995996076467121970985522899305502757839215663900830941792114903143311305968761426860352133440205952965937277121267880121247418795368975859166580829219779943813560632991749860307572201971611439840944043152233252926030927248686114720774290773463722699948386940886991615418995838752180648758612661572344050098839626660628530864089494492249083278833643260277398288592879092559213502673010188212003246369724209262720242022334188511448811446730120803741767982408577209961082717114854340290707686247017086753711613420252201158514603374374790199244960828754223135372381128142822725025714951766640390972322388237047622358880508221472866929324028898072102869525558993543003587790739833905495172747632896331324983450209439370809542608414325473888481257391690445259819778117305108818827007733330519562230046960634643154310083158420513394048169491009179305508132496177828466421074083845706010026802577003324947724921849609559693771565161185757676690443695721951651055121561798893116766625009029680519092746157991394718471632784354993891062482803500315426840598677220366466103461468168394828712610788699875208909817069489290913707883612833215668530069286326911367660869068333531071523072773088398055432919578213320257461882591575484975142471166333494094723006918486614145393321926500145777160325030752174546501822560502062730936003379425805157987249625472624680522462643873283177526644797739332290140550258604335426138379915428476711013698088110046375790344017805594582444422214994331514685598669224902835363873020658522111182763494045743557906141796806660633357246954050552258705273012699582979896808839333472666800432885117111343560608733965930946289104330011977318692543362967437312794740116628332641720799278854676902641266815813558027346828574464404187379776007302527603503453100169406831993260118059923583340438727397510580640892630433586389942170929789954577323903748468036297060620506531473408139121972044687042273072574836156946046648786734076773409581674317290130017771981491784276762020178658023442873522116711400299964411046501756031224211325563163139353191510386793258331648939636666474020450232836422640164857036922074136558090310777962655651609279906551193753182682283615633947579637637215772992883274813541799631702027202847988945610261009345721627667652539378600431173780092773444234453547803723137788860811644306378268958463285066250057348440015750046067608498422255978683100219368063884731851402020072670084425157876749296112716787069949251398074974030336804316622134451992165037972825407569906111686600803332882316935651111432396875318495323837810613503012792470379203168186964711744935127350024407571025844932809454577850301627678216527517878674289132559611386938927993465290221063433368290770721661588719238610960883057141533207796475958705141370002519175103402182238289955742734425377433616716782178309044424168326150797271314843145452444818871121216568022217729314656515042430240865392565201688424592751922977916688133324683348286367022991533242532124566569395063855960330760092877959766368977746616625589453896798567453724486837629512630683607951576866568479140912755927607342218684255595356278673873610762170900354709802459070595019448089869168304514404815975314373408367734935370956056943767166108059776596912819678626230522229528768158875163783982187954006907657472059537634699407045623222300259203976389726120612592032930288358829357276534734583660041916424601569969392601633638435579112101453996767167284216959682921823030629537327836613692395538840768880975601721904679926499243713491973725056675491569408425390010187420227547360801729474336573022224042732821998224641269752909589899625674685412588080579528854214061295418005345733721153016701800995075345106058280483063671299509912759301779880367615782841646259307872091810808276031935269344869207091929069047656782055282675134601401568617670547444216206607028846351350191866681082726692659673722814738351113835093926635047528235814239353314311854794537608946729759965173107524338027724410050883213571089209281940528125646837571055746152946770142478500009639398278213217426413649284285944264494278054111486165538082926444048233625022236659197923063562122408861857439168643913590481976719617465385940404662680540369867803746318241003284471284836852815548575004710725129153955999491953975368154280165124803259968014141275227773092424573753778359757045334956249792799502772984754273409968787394334783453641822081066812874452766534478308565946873783960520417647738439152799744145243099496997195734701136469993261022188036558394818344456568791377739639796353478083344493499815315298350959740770144119806167002131152500592586904816049320594427465371034527028814055538644071349928378889040207190477038828572452540693630689203418503003337417457893286055003704228023828327011649395790822710471155713153760359924277694069789056503004387057923565992852799683453240385736659267335524453174469842261795500273479256938538563053947338266383638943612345095358950019909823821628458061822125903606642845239857453336988966477418298234573363594536205845653499665894109673202288121325330471852913091276819446734670868378650077610056370937916942936133801132676456213841345257191873793303607051461720555207322339778763573828054348257426826547948110898764019944930879356118108280568782468635884335922967017777572536094497544929419761437133131582227078117845297990817377833310237477134752586373094646394260994136413396242874947030506762043576893711597156532933337013051958963049500804017870452418701261017822119012995770095750705224091220808061162964303868411598109198188516871318935489021467110619880305165010442993225790209152424429892260957501995060539960090695130569259901190478693109462192357523670449113580989860135502613142006017413395145748183510626544640216205165789882833789257295704852676193558417261693978893833070250558523380968246488836998736414052954511009905915769890884391186628076547708045208329012514846994383088379297533041357126273852908117825026229064443179344765902293413487874126515780434758400733732813678482147185333732162754419073294091797861229939176056177656417220990506565650589649432699790780424276884648711938551766771172968814832162835553011540897698386256602489005364477173827082734603354887944389022703162648828093095299454287766597590708970273075222636590109068141595152799973514191316935634266287222299543466761332447274863012218613043860267603330920939526245446158854335355523200182138383101064623742615752680295825248629311693373644580823179875784518885198833065830827383396938593423727278039534122220280176400984784221317378747324016676705784835098811919034816167660974376738426293616175220986142597528581318229125713752214254476617162639973019334839641527419009090802267382807365925391340756457056283395894843205577998785312696416153185912367031260355266834863121191565245495115393335277757652716214363352390352344768026171889844752557110517899052763596259962949063120411805662204600549014152359074872026153471425937576320580053867838760972941048008659851439191328776654414182067790119311292279522358478986446917887721279877660930736236947755578456404853499853361046862312507800350689409356119710266365298059651088642122499095795035102294222576419182679055642767255996154169717827718962510628355143815505871300911213138979772513713225305819397870945015755260578045948981392594093290891836589204862658507118801601820936070769161958046006418784927548863351177756099395664815787872978896995114326715933160175350966390308313160940198260773602751751509900222011083730763709275427162427314090320180622914972667027316211331672598186956455445684745690994700291802295652439508150786435445534076531651506209080637225787300726025767184523533461780970881988505352423309066197559894530690186762308111246028871712641896508334193958963401275202093424796994883177235768254374974779412099633227965312090695381155329380650921726413110750022904968278309267445073742903581810634042709839235808441780910575539364063007553334716905050056259309303417718340501582050685367651009932184216399459167232063643963198369530822451792811562440318864613712272679783708492263558504838466404583943457720198923591744911252890052696723092124450116642509590860884325364655208647835150278762301779702508143520389710368632688649924234114231966402412675918105687481628364513070061242101517703882873731993904328103796226044211016486234679283734376540271525080658830070300963964825594291666532409640608657231991909318468841138244697355670773201377534949481151055976389013976399836933627095036950388680807192816785676891356025295130807064500370065178192473898651257740231137412688355800077727166624999219209127394054565328571021765974236014166841205522173550630947935905308221630469646077055288937982067124542265869168416780023784910130216191666870364212401555940328350710785237979767708195558618935757103892134215885692105174869032405701383437529116591013764837501673532464739754127273475342018815647322126899787093958930980724079309475266293049613199252706434248084839236106876720035083007483172200545701841426267884149785288324682871937660337533714879232761367539234303748677187035497504489366562403131556035965902194517953356287051535545311848750901802318703258398747945949257750441825749168848592262512695569593923043452776164683744296329554393298375877670472143320489872942733414392593639888158125123334750294805606046036899254750455358633022598210220941713685676724998464918704141312834725311475763447039924337438652826882747124861945990602162428714181050267978107540443511640940876832854403577062302566634101946622993557206859904431526895319865392159831414525630545424838196881505718766702951863615049875323672111637072301692381071436157954889863137589856740029072355302856255595116325796300543239614165743259163296829756560482430169891481349678439746752910199422272833020359773817928509268011958061849847445998814596772488889722802911611040945103858350130603378561488428023266259877619289101910188227502777060218630635825924942527424362068711526907161558964939728424710028315583324098258893266170953991325153534055653530751147656731737751247342338744248972641566381384303327988508090489816502638517125732673104071073656315658193499811737281399103842836998342272225891180294173349936311945107438996082193416217160062887406663249419234377985696442848558467637709774084306397748209617276244426795601943186095088693131301052706497913298352801128482327131378222652190491358348260215105719144372750698277181140178365888203101853982546615443890507996679585253868391963725021096360622911185104216084980568361323348766983780861322615747966541215302308483025691292618036933555206978531727041498305393483283996176267053945648604926382363917238166387384657693611089210966098069809165725221728134798366376659733530722779093771679690143686903513167462147331858261911775497455215847402190788374807058379886896817279002969970518288976399940847650720851538508763448400822990218050159329552320058827620821344462471424791897109702025816277483215576031491235674705075473019028996442099243388563730757993462039789323056794123974777862113011110030704141414684668032324388614518022069240719383434519859668425106964162548313736903218510855943820813688205757859135394429978319305107659290620075929878247696313408264305944214596125078792533408651896227788254055921476502693643214659139660538527009286865546986162704081837462804514459107800187825016345510658523902434458642303244094213535474379158727011022667733632128930712336596409611370333908376303705495773502169200075235807431325109141931305513011657982056363907788772783814273493163198884761005997073070068682049320269626673933632910684116410485484785958066344690180352205045526267239895514785389294586326756935058852512621578836442452553863583269626364015612519235564900202039767047860965293032910573875094966952941140953431947086693207424396563111929863787345175433889544878296802884227117607478363461734340553909395044556663820013385710670121182538051400416454008675254640894552228098506198049835974845812232769483628625139229460253391148307481724822837111560608097570853606899209661264665519979341656997316727490061281086952069749282896550068788438442513137241213426859119144255765107944508897380694317220394051578153888895778550076479988069402232661653450804388265697176331492663856397412723830819416021711298946992302662979570493017278831166563739710909351630921313853840502811887996403750936829502589254453528271915360672744453610808676152364951793608293653671342618815956589383140871394747534353502992081942209363473877808304470716384352381109932244051894336909784495622510262980658082934353130993116186031677510656945765858484708203703257377254934798474351038993677671505130848623976561906600440383472486421382685321151362396595161896091428627468391055886264968464340575188586316730383666740359012523999280350460269631811329812171292418335337623270504061343578247033197507538205409065333594253208491899384608535294587446541181053998454950399171694458267501775219511833495802263965886135404010135895038239566140518641353233001643515748759844365524730693291381216524249750420236766266351314183656248847569273770189132823553539199990935172903086629114201046912582474449616613301987853377993863687685890565272175511846995580440936397108133480088151218296655329021670306242903531524033718224404964004384700231130224386826502841930541588443854003867366904767272143718369039787712823103059214367856600606141483744145299499437384733502196303280103983323745248550257690362553190312690299754632838943498386536117820463113691388965385892727232448048401610028247622094594194818181315261164121618739550646150868809001639773657113988708790055218921091422752965337023216733503488466590300123911653075600009821770016424452063019015243830392413474587805505989315920176878955738186317643928349254025868167918620276618396536124874698781021174194284561765746787620175598499416083539971073950198457558898602903418676046714300946994639955155914496465434524767511824179030503316763295964905851901563208854167529477559737148927228370520365725565833237593422663778271349357596009720728611251351786502960782028018854339692502471728976529675362516275855248896308706395400116395121028721458738774535681568358262228698496924786194019591653345925142187111901176014895834944045052763174665612352850088418938209627067352465204937054536944155470660953238918733221691954814691422901146395233905837356536383731002608139433862392069804173178238755170752644566368193578668218949644251442146005651843173302392467538027853727504237018868816695524934363500956270506913713109257720673898602349900138476557022030862326549117638583493804208896110299659656131613334434361274343898459424476647521025275551513952533955238742193879790791837029863895426791439912506612909741445036821077801861389884077521388454708345811498344069351167172801846633914297516145396318875496441660815729148239817588682278668748067018880106719106141081058114860394547392560237563819644885398375332567597271902554670675662967159795405597363128476199783772231744876586006692599629320701275378045601448797774023780420420011906929916118054269093150278969911606740801458557092577426040069016580529647090107661474535446396188269270363153382752713044728429402698101886421580522493155173582554307783685495554024432606775573161686668285666826475926078046267315110867139171069936791006379386096453721106512939639831875212050936993108509064559068487921472913764328836660579476074804508959045071714476958561082820796647652069652398278996389254472314067871436753553618644661286369366972289803723675027021886554279127046831612620754589772705324798374856135006843273864419328751537867264296815923943791007248140106653053782855522825233766188620238380038802183051589928201433474319734729876623674463515028805141090016148014823969634110658683805558455994970125074199041927502250820667817451936781769995691036267990947977795448474298528503791200384211440608330493331951257595613643604240393272592476506018191413192519747384125524086675073265871916310898988684312648578721724871641771396898542428963533156310250017405751390756893758710692628860639992094188457730495558670381539267949364400658635837657539454116007062491352564374025023304024972687078876746162149618636464594481711076342987400933988249424198384320192807697653450221034527257359469195013258716673183419932459075988026585201668128118612938142337711044934393413305586306630296928684779760128550315143344849101768289517075123704038683662421829339713140957271278200325444544283927764478034659031574852844032039285633128997547411831090081003828314404691462137902939312748821197416508779491807835267628252049937367297378665133866337932653973858798892582090345222043897596633074954744215427233669959063948074682739384606917601228637287248533655409225881713270746211855076481305186256919699298927756723464197114210522943004592173014300523034487752934688864954139885487249363725939008691218958991998603705675768900534179588873952968748437474340246428562241825008501149859721383707968553539674301458450402428304548654992585612724266995620829090831276380022126707632172184920203176865066672682885749362582145808527328504307826551517700446139780700846089361398534590308032826312404950465716561104154208252736641744227100257528413756305975877453034509701272528268970357233284313273435315824587394847711948623059596021649379580240242215412384182777097520045763839332536081241671295876578226922950509565607865560517942569848932019624089636411115578044351321211091169475677171193839661459486240595449135892715357836133159224065136080091382466837296726176320163610020987739925576587192034328178766872209202780818051813674824789018315744988120231393974192665770851626945057272628997497819859342006760142605701794227261312970140473184132188259689784888595409555524791571982161916221038443576966900124914077443328858432992498400402920942070159172279413796592030423429982295828154845441943802437751188033078745843149840728951028050000771058165819647662416411772820778583427365182747161337297178394795220440820074788858717639913119727472463876098050679051332481403709578351922077563379882985741682592761876663056735377321187090202354737231507321015746645153650141635872165127234419360259207573220832928997272387213265894769069078348934676893743292926501994213048181578735597558915360254030952491630867522746764819164812725002662376305438093020276346361901451318007182647436595460478119046962419766995066526526678143865601960012895794923732450940653567475555593635651920890735378941832028323252720442517601764416604298808471993545988600903260293960930222861639109144216583697473303876689322760057724044764949613389095307429660422355564057631171402807465885717262055347579149480607133848429468227161341657848357575034233878085199830938659611010515885800737440816225748961210828131750493075815724900472962681668787214039981501429801159354363510095577174216268924893373161302940704998794478543402301323112751557728706220987545641336657760958603769699274633590973316242674035222837186603966182249535136631594923123416844844496269939744675294232116339151705963784350971264408998335928551615279098130580799235430674972534083383094052658758700828054987294524282493702639321022800846361293324540765413390511857092901196811215280293401400538396676071188609691261539864907415521855265934844368538475424402675779973650060305949281215187749016541710597999187958534238252790639384261195262060345035906797109079754418465679537047961405699101216056352623435688578002170418222208020794770535920606692912138743980747848064068234912945030420252115717142735245253162832296721823354227698248554708447075239428629295764429747967114031790588507683244584041169914627602619424296580108900569037515495129961418987215042336163759396799924205012473902757759801837627441080038419834446180211411316121440134927094842900340945448142184052230404986410433321060789721795699445911880662974011047105806635763128456819119397730039072122806227164993089632586044340254861586708361983425262755066718684930380881490442877957550461004303971925764915011499289498759248258336095432596897033217725668714526421367087873377443902941358639428092723221006009446435251389462912657423750391327671228305671855309455092359618013646215198293125490359366016049395650436365656924621174599052446504114786795746767779595637646165080839924101903192396499425099074233147386666755147393428136088496268677237828420477321933962809080620040307826870657602533475536696374749405687782988126744124221391712924723583016829564900465398429290058150319162895687269177508048413542794496648825492943047590293683536406515774727661321905524363378654923228788792983181615107308092516955198181789324322173955418011342269295291486460223164951672829928865698007862833683166102962526245773570108124324080360055197347865470575964252111504769589574291466372370948178859582065884528752065984723162932383786987804833473535551462763110244451177232245022454445342785675765018410795080898202258211665161464225297540921109422343356471667398449297649721531817333031203295573678948525139430208708187487686251539274490427648502872720437286348406977518326670683913288454751254707173239316006507543858215963641033475434561989800797777755530505020224000730801330485538703345675569199729234108793959019652732089450946633442754561052529164038024558458185034841820739358373907289739916901651732790744814749843653171936789976701941854189645969785253794139413905804651322636996734331076487425394752325544271146950966979385507859690618582424178582269854404046216352489021264113053199531379104867470125940827895608700304928268814776012602521121241897599660917317426754279561166837178984513904896781092943500656961942272821964620807091768810607312326675242728602002243400314610465098205191401982499587476338269084174340132295107489202516483139306920464347761906906302616678810618155172586272334893621758170468075320287176780512325973587275104870572780669905647321878084197362328873649743729141981230899367470211687257202815862531812182234989645897934260500265345780039076095009418409513910864519679674849319209872360009847517915968209832418407307591106853089282485299367437640776465126702336845218003280286772007577883772276326282258298859533745678957062538079976070097637960001471757886029042746255378316231600143037194172584960854255976163770420009120539981797553390566841595825699176368047314634862189985222904631338785039361091150248255585126483553544166819484221278083940129236042388442193959790341851467112824666696609620865610984863627096684896289472615270554177619930111695617687771008458499261117044025560478710703989719755899342404069137434631165214223201635085120763738148572478310558140693765601933563381728197802616687618675658378977267229499431166657965528324255073184387479237728849798825354076711707610413315650786158695048572663241595914868868682443940642907228353382020855578043323380993491206503923965537670391470412827231904989590548041168722324004748089742106712558844193444807337395316729936613231403430456776576485269804285533384069007635594077155617161927217774256897245395708246958660195868592417788052172312973754557893242522721340195821165223985180146086328910523536699842606916927653958041215690391915074902573955083801600470523503938492795475263156534375372464503635709077013245130575599919790878305938098364208725227100577201611050391847000401753076121202440642445647537315348163788759596517212005700025712050456505939731058685723476020833273310753337905037164277511326076766844656418877486438336713646632498348996523888985221362119522602766734837045000998529108768464657729731190072439775431249172465655130740408789005402525712174849044286539163121161757324389595232689396182370346945291721815375000488161458911822996077629545830382985923191873160058752667838259425963079601819704801961432643675667031897118801915367621173965191646883489822452427361504091086951801826785393107424343728931788261231332385331575481020177506388538780031836085074058504269697854695288541209763006276035363830580057727631218496729642677882840672023535511022724024758136337715039493447311736655875943595735549156160675463312983990816457873896844848094525878844715806138536913808914471880032540060826368007373790268602173569757303178395444478374189981926610572490402795341524331234001023365791907418347936342541366813653649396995424605038839018211653098326086700888106627994373805104105446657206472230086724542162164814409588414177926755899238699777406614965233623467909688756261147190520258844244685762877717533110388244862362083296810666998284144296600213607544112451954110362731029936571344815014212733280151752307025204204519661072536416149518407052079419218574373606878581969564099841918810139813063937461920951979415770918801876325048149226409749463979046696248713635881858528280490653531466666642363798029295739945425277146798326818207450037692154965960425368371232087803416739499682984999496599604252393578796835629182075634809610556454659540798613744998586080126863863273600421058075249595946254010437536730286642866266300890896370984413805638633282445626263067094276252448841987870092638718726348642449871405182626991773152236192729394942240571291255451060024671644649076995995446771864831856930167344494114773707465731954290711194648521541700450304957943073913555886575224968267495997961434671742675293919907669478254002321066814270654782054545064475757669604593504872947154899486160163344505886641453464766044650315479796048372245977655591968200860276194099651994462740815108804219630925383767746806693996823990120130988954335357769970168759642864816833782257772585168513988516765423442995187091135335736605007121512394620051483895462212769282097016425367408860580086571542572447907992005807623011876325589427711475619845401281696205052684483119090114194713619385544004025825896956116035288292020781193747643706508749437357378466900898744699441246036199720571211492579711274206957153170966362436010401220328174134708373738189266269996518747084324141789103482462848069449464923974114579607154188583365060007240519222783569544027454955220146906603591335586768455541565737060308646455769244841823454181246195921311599945554758999740119997471477134385339709680574449287944343151186252732737118385565565632422703099163085057077786717789325814885005261293203868918299700169120467731523727018942615728380015283264500303745633698322959884089195177888128191882533529102130433569149907753135953478129367652199811278423494823667822655669810578082196468650029213271948464876217442174843881534592576415008746871153563952211099490297059259774567767193584420145649669333383863403031671411108049848943273172245685919485850407102342103707789447783547232189680175575475038155255949721658027141937563926972120278098364004153332225317764913821583527980938122003256993927682822385721413545743301176254882284799046624081398406732731982741341799669736970403974182756647417823519977636961109619493936522586686131150788537308789450828215363266464751197921325963712741991247285565219037934823106621095823762924808433071275839651813959157193341859519795049897236468030835806521453795072176552831406432398949550349019098512203324422138059287758345535053551110497772841145418131876727759193599970018169600334033083348541073804222564136377665514205192570776299320239210745593224158400797431243290366875293712173192811888093935885951414599457688603572189627873430066999144871111398155546610097268137656038912185787535730793287225726833741531966467659413721908420627740844755713727453398063569380690286985638996206277341746047833571144252780224439165693323547301465666834730749829045019123491388728507414669836147305898425494553744534353403393717955873174768101022915557124236186092704668003246624287682738028973020964352614188674613340377141864928393772399968891464194688338467904596438801001475290901164822576597536405090839792719819850325227637301293103867815497544377767701255822476905750526906020743296829230000997307281179179413131945115397669805929070687053587604109675449715890464174338940495694647530692074128965372912272509644710559040726304791310572455981643813000608483388722768068557479432406534966820022241274492322929261365609838145349369232803171280932039337650519372135225607714583300622249138300515631497905678621235940028486192437780144733155589328219528436511406046271421604753508985598239382704562917258325178173299884908793092455416380752308640150542874055811948055948589863819142230073993234608725058005012777754619477920235363033153030390012840400024497551452182612167389387451561639027387999754536282150411468388077527509925491472785035318320036789718600884434732735351023028052779992190997512539269451651513264173559409706998982018248941688615134388497967409392979030362205297898649696149576221362614481762593496815744364794374107995025863589239693625837469095865216514561810177069966929161619167063822280794765560876927687372139026582034772401333259041132274634764861417624193628579821843008220647801840516678857807705853701966795046294115595545384003102991346558451579001206935336383662958182194040662788232184561408799535907260887666576056265743228686363967439799526271241817381566766286034055336937884829595147141624528121446328707776198679370409052469828651916283553033272758789556741207953988697231728666451948484283060727460794529840217866331282755762760582096977402199397418636543258273713105309839484394578983039107590950778430808402514848429675331997531867707137066874717112384338816555612334092447415910763233483234821766583051685214193622870766974463287191138114091095181446159661508863394731752790926735316687095008126246332841309807345180791719307161309944688504237859380086395135266227036371832646318884252356551495390851886755401987876932891399491563537901600008571890127300085816473415750255568123532377678036801082388879366422017377997074063490826177259967472333766236925682766565614252595262398579360073328196910462929258675913273804857560310374834982824583542153891464809684010546385051565263249028582004265933497393112440864308224786331831806585981667850222293345439143747445396094210367279145288389708266772000526373799214784583210513708757233726943173727732410203341005215536744932988985784866272725322149694043025399809629219843258362961939354542653083465006336914431254043020233043700888920199820453234850926388779539392556236897923864340563073006401566866824900681779582405151610566377390442198410876654981199279369128062683423955737246928988648292348825264881637462376009796045552862980763272777777332297972166535937651849512189726070028548753438972377283769124353210532953823325365043170678078128530118001638110265216320423781485564895961656585357323156285252752959049922959376514397169132586935861297007193155145200769326238584908988589753690491191616482423665552940409735132129902074645367241585675120133821752509556594048374208183146626436431585279486166120952346167580854893979619477071208483257172868492614726771417004021054339445781172541321012934606897926252791956017566686681025066139379023796257065150716342768561552615953622871366976791673099468475776117867427523241250713257409752371658761345721013378922791872261262768370982215708719446340448741764937754839787313951536927649540809583789645340659059511440072401370017119788114722138839578441393706710462386085478798478580732565282325151631247193410999560249999257079570855790867943573478300293175583299657161585145196689053801826762963061023608052436648221872679107498522794692456080984389766239933141213808233396869447485222806101295840047936408006438842465036282457318369791833870175973827669224639840450591564000712088659586135114904180565864516647952975161803957560169213280637105693674019840167183567303694502383795187933283223388047143282770520181697603391305225353943025348254914034474838485480756906432493384060499389004660218062193387744498969816673321758944051557437344131994603122170854180866052262521114497834644703522761416319759687384215845220403675189259258179128632858543786134011504548060399341713418869559078206212347880827333807475513858476616601862957718785570597601412221229339263498086064879257720051959355140832066256208122929761847218048106021622925484874128211886875251488648721800057473149877487438322190338357300045356231267155094847483960279616230059130616932941975211200584508083498101636445750905617918075674091877045121536197522215297818903836435458977707830642130415563860644545773204425523717552493011979939868322566242894930279995139989160464306407142912584206820622779837917841749056851404245972801536740471351233349263833126703594207675013161522075958666494403030700246526908871201475375708897692371825739563898550406662542335694559416857300541560343355264668164460440260017035850248006048852129296074985285216694279562305831647494491899451948287701504552817098216322647816514666592428311576645902483050834946201856628065510145489792549052974029999967377245112316873913666657422797486019857632044685752935687129700813887260415768821055054899182318070553593312049517216562236452639720430700877975678844641434208441020029340307620132536255416509660327827842621895481109809478476243742461976748641621784411185729241387842458773678087418434158537506509927547732150983516778205274071179107427721349594216173477169688749501730762488958706195394101911677207554825884487594574513024781833458304412966078148167724719602732165645897049065051021616112352396255024626239193465359561327026203306288106692550691453894010108361957172020336968503388797430236239034766155848063828182210914976887315496756543393599767297033053773050716679633776979772377146127217936398390331062682743081570590924397660671811995005720288371348896772510756776959378448552192168360992566647490056948748233105396999297849210129449490029830843236927776873868970371284336990466991475429318341850385988881803587026489913261618366654431021320816235477388853877476470769199333675331903484058164294890063215871818922740124451885962473605983637232984169901135843728977680965098135987541657963204305530595834518855182347779673519311874839322144607839904280631829888907033768085376964818153045785364276221876631274162453928001081977723544682492087347243424080150121991877468048243143077563269745495062336882897353169423525551260606171979678926651297222355079352024694340406909851914875679951621788720348420049370776151656875660376575370696809820855620912981256321308962400166557726153016056549205355205666117072565794290692758413129990247763063125034573752835202556082444356456678400710019174454662396453093614735297458322816676443855718894523744035259685373695437540257886334633066177848175516064349195512140011327880901835777946901353721817247671496785276621756901343365582667404653377793208966888270367094282085067597229438015382549573660279059900550601361041558795934370053486591808926244336594584964492223487065222525856682935482040372019718587743129709150819652992495085816634423424475156182308808715743083602480025052172636640853063401757164337600816367151794880414893386644240504460148990827229559325055122289864654507621349719886854579350747493863839166964771288444410590679882763081663325970740284510326603898668940047318421819410547498912335962259225960149470376238854613268489020558641716666250038132202293633404571732750471550356425272602871930236388514367085357338423485343566447100372231037568148308918716986027971574456764053521887199215792885252623746635575625730123308175321031587512780244125410193870975624998332825176657125776703322023250770386431668185814435827615253408653694298263175936323321999816316910021698014877964336683501148068686257383452299994698386580264973297377262076161701764680284961738895599092540385816666136951989935667929140380617380444165370199427769314823355801276868201722185223548537904726170434847800444835560687258289196977335590853443786347712205097708524384055984133436580084881680354140776519175629902881905677578886271826840772109409606274401056496893177478225767408840601147435940679591930868433682682574705655112556542880376077346588579365269179462999081644661228677394659052509583490417330537905767787601228615142167705840562807503159572946779839908699548238782277683544108962528300379222968643561532801557424694044213461642512343625619639753697804473213283150403915663073755187456004997529208940489272118331067022125934678536640742209805502377157669353035033340476127027626311767191790097839662715823935214179336369748328093032796449310757796176571626366468404185884045934086167415580503411192071975230909632012506433355753583664286071038324863108263822577866420382209660720965423887761283159325029891080417158155232818082549322225324564154710282063685403124523896414517151069624606998366973665303930505826079069458606025658289796592247644572311637890672740302557565288839965700530351919214661079297932089132063930479732015713895791023127128808281053373644486092297004982389878283176427692399753774318349242754420608553058572724911175220673103713182630022641072102474033346985669547234033488368085676210129047653216678718976076919397106341745691253569889345914399556915875012225677180874781394120297470900891731509900985593431748334292779375602961022242581675493364125519615003685373548543268802323559145288102791480885207932779926594789752096084580239650635918918094524529496130037719053321650903809917724064765684621176197478122657389891487006584937720440037088076585464315074759749415389392604014719610845443054267163119938058435436783174719536416268770998518522802118082782069316645880350289659948176581470731491453163570396725515549672863091917584256069502432375180377341315779298069255247183982437346832603181485438806305894514617720472846919649449330331680372574546672822297319017757655639317584246691247231377130738103887963721611649810795207975128133764406123434484648815308655742614519280147864778862708943196494014067674503990636011597126142136970443497604007375620543471523698379753632459914139626001184930630319597206349848103913224362650950766710452630256396219217488410690040835252049040756749566598985737368626395246477513748123173769812561102565315072551057309258577986303430733156801192753951421972705669955590380566514380412878107815250330453803261070043721013886905650146706975416903886555340529998154548612293338567291471321374884636267792849049640529864388907313040163717865987655378765842440469150649323374467084077716140118969411391177980307672432167991229419605636706378995818710325022583631765313153035460569792718564486352874165820295155191066010066759747656221606352454421467677073029764003675334692722915296201220381688655011515096896466012287357089100607579904086292781853761775349757895493200124096837762366102404579441174185925439652208690275681389904075676127212639676437015653154311998297654521218886719549233908108287390741028012992159331426994062515047609001466395320833775799799746805612003212655424029113372407794528851511103739937631797441200422310895292464810313520875866772141433101087103040961127619003562453229923009634783330243933306707073268452241841416885046808812381913763057133769227074723339482637470633951523896416634578343851868655605666000189884388985962585427852827965549423105817589523471706189263802587361203823187764095087249217195232237168427678791468734131386877561096041588281082984583555227952251331764605742684464325408631493958513439583977403546671975738262847448758576785052492238233416302184886337525278561857227248632376952772466614328356932063738443907183461417638635158834845140934750787963422444194821679259902297650393253846621091663264261791054862447417525238127449386985906686436469388539194721896951577921894199856795087851501847002908684312038921971242649230927802017619610265791220464747501434244608364021299766219146382374320078899227220169709496777049605256483400916438067992036752090750900928491010786870191280391859383048828410504206214166079224669676151811264511136529350004495108401940002822472790957617038808988903729384685268712438805938616630038695111370596492510921347316311917458364142092934974841748899254617806263157195395386566659648607487442682370457139186841873911792115851841715521210920526781307521572935187734881557350939677935835876610384597361315226645180839384552883728802769850569773249785932329841541130925949988019669366528137072113088520087741061997865105428273141960151792101852496652615505616209343213367198999047561623069401159283671142570828012046176195434234642202350795164254829269442649698317395466631355769360628261722411071897538666080561331938097188436915744757777363190343047272702322069491813312162802963913801974028485845620611361005560276468204777382617713536031181163643062580121300867699311287996908467178985780167531078779335332769994793063832943029616726082449177786071643634745533027408130236322334874116404343786335565483990721192822807327006078221842702569402755129516211578724312220693485024035766720177435702624505205306001185730553607032102415716422772993065503364070140141489324995039812009052140553971855755812100391767807643417379007585571719048796813145692785743116437376538759885000673274983072101419968795180086986189099843467805505024952537411637241481049144331202050673114997039714838490101931200900820777778377614690825208963490255475254572795983174038503907147529747166752889241462501442048815015176506438513235696903621858552211493949440455370240005352251512779463066960163658110358841327341738515430580637609727877384863979628508218485997828277450650503350528409909547922790681991670840160582196299888974425886482088919191025589659478974782578716938438184768130618329234942430125621670406738045386563683486980223810166429004017162280812883689671993380253572112960526301415567739957072694810209441078892676858029968486888039085625945027778830952619989028776689410865981110189025179567476389478395877109933069734184465200926025608606883980828358764228152006329231795233848730278707237034713198716139725878126773199036620053946662322088237720828459820030039729663250056241728912122852318355850819456468583142771201614072459366194598805722095721193371551478316886605835985299449006367975293058493331985098774575416266780313670095172098532562671284307438462520968890927137414752013910442106678026822166638822723364351746296614995130307419569553722200824538770226124234717233147465244675258841157800538042670877491575918511288673838089351411683304969798579082309138778444283257569190713810077033837487431909217792238797727469433777670711259414886741477520579476741311613684601762455248403802782863752867376597271526591740629756204727623396718740203465416326437728598593669585062152984388609155408266937662777797019783270014965668320808337197243487585146900218634737570679866114382757665282957957972159934652362128651291204872012613595522869776340268000865290379213438941145153902320032120400423543496287836451795320299966424360764227815772777446695105580830437962838707739705290004472303748831141077705716599576847231209241018918173648058481620460436361526249082754783042301464908426311479023889059107212428759858462352223218146824190460379769668939014951285247756189814351794528349221352842809556687627554567762208778986855704748821645221986190486463326431081419976639297223096059360851126640847198711395503158328022092337048705076828956392285818776065602394814279412577206899040330630443761444371252053661322746381825829437998655528341680309375488075307139158575066064181427673527484098932332873163047244033514436991604149939507032058894685132109804256120115890124073349712479175801691151850553170683619300418860345292588553610642543491352278128302717242992038127914438122651208583666177996153781727230388763778193507176118387067156018337875242587927121159262657173076711335123198884028197748512520520477236196689856749836716960981494004499365887967690261255321334375489475926876546946367603253341269677150640788468484324508605113496547087805511532086426826272005876655444342398536514488192570432775315426365819507777800020652361102351252569465580022986052053363455290748332890749548785818806697619406184032751228636338024467332140741557052704173112634006534710802267247011961410332386899086727735611137873289784268074483669676560055484008093740568454408894477718671105595131232167016079361986235262166605878515801701148031853277550269540359102380114284606262937099059228585527651666016637306168599287124638114743192266741713240818270009376132940113184457815908000529060155081941364137475412574475415351854591107795096677856955586896205514900314237465687112306116857838338856930628782786733891131688260704590777432657556395590949475893675026552767667876047698056796630082807781608755175172130347043892421973835521108626210272307361716860735424159196024100251930981619249221139632780279467104121557606348955064008651859292088001450209788518527577702917625454011683452064038564837673958572300626723352273047464149612123300685910135760422778237444174463309353358982607049398327316066529587856926625357872724991253766650809326565528695878076431000736375729661660344860433604740766415978572433666164185130071156251937702825292719655445467287571118197402821874123129051932267286303543532971318272050086814900704344854668955439635335373808349929352974039787971462717258995116615738124004195613566855849646938966149046174375276534205939736444207159327359974926671146166882797997607608238690331695921338064978759236972467192253097501220575227877679124581949590605580442707072843053818305302205929290558483863844667047812956189751956383644304724378874541951726361460788977145721617853615477193414519290818569010661373816472251971642997511874980786896970506827166310709457315489113068002899744724400869513270290985216607535109283652019658691703827019585044546009172679509705046733252665877182800110551068851931200779902675944651208836690784673884639409318535180826636522014850878651157475998508478041432210329167502960507071708553110441943614019832808998110336299450357853949297740374600931264714323559845268232078775219993322590706603879863566939604418088770291508305808586417677658572938640894109890763118058709743583643794895550334031361786214338759436438003074211432733816672982591002495349497302005248177821918400013347431026812705087590855664167063572047236790066544043058017891530675554071455927091857815385253535040141463554062115011307947512510134439820120578735712396910778606637076754753003691929334257881001547516428629280578818049569500870474186435589758523612685190609087385640628903931387738953954566147131920826960682564694996393971473200685742377754569083036262801842142344131294404619513273996329443624264339169366216274020914584129661713455922705563068789428165615936759934122952822591802619202524214248429238106920813898677269363261675994751591153355409619354928219552785144431989150743478972237593827936064300901312605645606516118107693271244886441566508549452959065494553114726803693342199060267127078878513737977394539442974828799897955096540482952949217906925345824004275561179205347624014272788083756993679174577073336042205598464059941683106379424766467805206190065463572530769835787696456423071192385570385796305931739862694845952237991068473281354007257670629943927519378481962250491092920439759847970861132513460118352054952843037455830966440667114882179713107583183168949948472939338866979008983149778838165254931717357125519612799682102795110733462954573862751473000169070557837888379944063831852715867002078264534824878003348826674497712718961791470630969790328785100325495599306979259695725940007934712871642798224805867062499034076135278525653418393775102223547663955251356689344236527711337529854605583287473657646575875249103402486378031568172471230435598768728208960569108041063841837384058133227061766342339574954257816124989821804648705993517877082781913795059074376274569027279006210947428558746873347263676275910656621927315523521493307239389882737965561320957485333779489888930980281471126614614561183672232621461096360043788111467623401257896075531457187876891143615103131412995207244847029527046330593754494349965984169391599103691151890322772612056163343220352312604416792512453710876461685005884828035659683825347490998285022772647478116399506736959704146935713263443961948179753040426366737568905543833353210757224064632181595074237568603266862646079138655492497038624270244095551573004098327757846143493582046537331221375867484562057658440735793584989153710955608464534770881589757893676956124128483574670331911565819910746532680911416083866727077213974476686374484379124169996152686670835204306253054558989883821582729495947223441314420043128353197960372764145303106059198235803029396635803894740486393051644303413546809380336136630956297173678419098599908969215597468072155930870462091109951354130400492674174766174258655661770848055492178391433993538102392818596175447534666786676775221151388709739341530983650962965963162178489525515322342645821970533703356055917096571800066357717521730563774160718357151861410477750497407729908637482148660047338646267814848087895267053302554532063500263250971921535214088347358085358033606050803444295442544496143953936154071934485468048058509093978011638619837220903449069281344386710607603330779850950839217158426480205176119597572283053429664370008868022109175718287715293333334466876536061133547318541666417843617425762105186202394505022802905149704048848511888607118732265064503703688526595992873871210774190695475846152351934689703199076668253455761752150301698770940332458656628322204570052703065749706147386893975453698203028979182819688913300250634203306022062015979388574391574567995095423352441429702019578019861630123207742447829799540447565296924703593084582267702912783832418053338911974129450771348789032407525057342355842033783643744590820920895851056257380330157411362567151018437054353583340021953612095777992506694510713171502824949554868730806457289791913920286548907100793801951322304277042950891242501195958558479340060515059123590208474381812565242656459725659641445150651166509977367034703311197103594206897044130518212383981263766587710397644594137985205762465730700955205651217084359644959697875541127968592016134275525625771731185470612387643290228596469378647282667483610001537255957326481996827597477061605518819883074111318788895662423132359407170870946056155947929034828975448965494769459132783647949082391178902422849444475149617965704255724552953353760416656306849978650518260394790826738181881179250073747676147664390967759178142936624215805494945454347623288150562144639025424044646032135927896715799686509740958328841599047732884760565003291908192635747386808622275139451484725379107836281115692440464368930468861579390205247204066678629568790748513178540617431750702459454636904566226052471271097198809396032974153108446220832959823952918965142037147716659719428140288686593941294808063337437810367491191782381226959525451177254172614839672495742845592092247229807921183119072489640491838747005036176351423309374321789437184733592668434427053342785389452209254863729160108634292616565095830989315389473003326720342509754968879793658793640124964991858890664358328371806710856385974524663125838667232241493032299271913698821783100842678115406349785674228345232268247353851412720566011789825306575399870323399603052995132054383193263331632395463006848780242573389355930748524320805724875043976713669738648008617073485581049363350165801889943908323639580022708499664509427139061119793282340421559085364480222086690365462224514233089052933462533426949216943773296316427233758237290822236674897520780145014973354132263198900208186098184054994335481391165311125762081638003919297585901661091848006059143080015504527339427647355546314678387595124359416708899634144272674371404316140702272542066920211881964235787198790944615619778674303305784102873421162209513064756382464743231206932133170881808070536111777357884742194196732453842851628773912486707156034242066236564121548169670313057878644195111120577456309369625065401056446655789884433026591942925492920919447660382292537737714607427983236226439298517137960280696727697726612526711825966764538823342901873387341120545618800946627091157115140878312347506286950869264375407719293998525002936818007457556770123730548864152851844394329436009981104470023660608412087148219487764178501290560915899517860878721583489494041748452088766262708193450484509736974331284540605386550921154436316717148686177174421727461350975113802531591203104135482824433442867775346538930896132466561593175128824723588709879999534660387619060360090593384354063325391089040417463292103680899626852707828374114070818731737053295067049404247579871273922317879866889414648802149062964417318442138660012766336039269053212139376636813321929636271194060257572433620765092817944281710470888112672441669456523063391689337540970806070826526894744707098409629555361490865055549154388376424294154584747166573205263051279529207624864453695624970284460159091077841352633354271761555587528033075644726386555722964915175334281877596187073763506564471104462773814670164515323576094008299897397307904095951881895029757014548236586449093257869140192799068906497872958156907822913206627979926599041804320767018683958704570309175114861313582152420319792353621793925975180312875995070253858896538106157062401515469654559886223908847594390604052104486433357965325058043195050940395459601334908983737701895920344112344601853216908664517211056402005760563185704844212743607613446984554174481630288081709031982349176934762929929843080583933083759003038183608003422936911446938114916119565124319163675934071853796178930136975041924778130913293121146882671950438486562734231249831358073302949116958047395381901560623667217563608303669146645324165924105902598764332314898405837110394407843740574767667078753108090316723329579853995010598788031041580564964312609142925984905647999070405776289387296636941884934996816015645035482320639578673897438842587087594409247671301361875689682335760193015957723195192635048083601461853139209551355121853194958539410867674381489429114716075842896885161115598511451080209023716976896903818841713063787316696440134845518329737884529224164796374314544621501683275366736200622499847524970105730474818851990245006508020257159598329434069993382970117380343618209241465367916830538162987706199512893308461796944805163212606723955623398316831574606352805465803620522726430098897182002190492742517600558319562123977404847315809398035314885311450220199912006763945340884354904271846243314696875619122273768096501005436752751255544622327071908281767880739066933583176056649506472065913818420974278142348029476418434394265615849192682928499059168466951024315128626032307192341602520005788427279608985356355831171102239151772678242421276333558033911068259024903435178946725202526385762346719316920393943749399155091188064047625623339664938188003797800931318482187517556187902399594678006022687881025153913438684653283166316236847954973707449469034399366665506853797140958956077681420673508505088940872500889017467767382020752226635287427745091435337021700881831295548599064710548504567824189083839541295950275340116130754830360716139600251199552343550992681249367389751046583764441308815899269823744818600179003197996600132503813862029792123452213465380704127271713737424324822968643458997494948172952155724589031076938437501424531019697881740755872598486853433470284740632316725173633530440043460194619835450277197650076261807291733424638485613957391110262709902779815307493995890577277511872728694684348821297202124710289217436348576722364935584323710804236946047548052304314549233345543494433471608242921967224110863921365665936255340902589738159103101938955683205408475076737251220012983290256431430391946372172548354035413832180344491883831199494973429127500120250825504048513288543534070095329427371224815707995839579916576459559169517193018180875754582249156419220245289714069480941910699411419883245104874046073359901722073565894079358821024156063693421208937565126395058281263909614729599334848427361152678175809067351611484661910563318118121320117075772634002666183601455444861267844680229900091080787560259992645367709513083409315362100166365885113090226008793427711202272353048270651796505548185580790075455801267542729329298550640328108603613017804886801431017449584828132191647995673488974261192588943211188739309544075945690618953472531301257057201180516677222808545501189892288364879485714309623766372526654099152639119326068434733266433574111847471347013918035027663827376138105443607144506920430589061453638363753656562296598500178319248955770508350844425210062701573135505618861117206271951264196328203289160544100261596857308297226823887149866483445159763667961795781916378651624156462996635799928973056818813800990529364321141512517663153404420884655202770759326246906949366423598001921038236844131121983456426522937188370848221888713295852899184166893110307796191244514672059777369238705146856659784553077040543991695538162476950633304258402166301741466631207337366854451482563339815940878058509702813783753671816884039609413938405739416253007485675101160492176146738277186635529166119251129428910475118706847914167688325517640987461844232095840337744581473119341052582745467855778247129510946408909479000204000377399245730324159955484111704118478428986028728902860028842690826818400870303762883786544957911305015884924721156184853835322647864752771687185117740221193196931936093261217673725937357500515901453709720490541730612057219593514908068409221927420525243875603806063612110560738089107400237622953940208108603129425334416696907171806156992312836126669288794214259816575025285467225590979403006527454776180867112084044364678893096647226185065587809077387380369095894127411298842291020983705257718935016861269942542523727829283244887491998729176010494670735628517577710276989250539074599305941263958374001436488516558875745129637257602979198686202220049214043817107293907636175445282861465095705722730534766415347380237561938283128645782404858385560017014293389088991495715924182717632657042672558644920094815020559648207339802334636874826532889805053220331228930087806501886438538975970311738317962722151387877491331835331472913826055334513167243882669685502277106071178335535318735685566010214140121976861713500178956084952368126812125631088277069648495986368735949081029481807063983784980109420073052414947121717881672363687218158606002974009292006180028713777462281792886490055130033642371933704782676457157815936724134294953150235064073772140313692855377136187948675882014364709526827621456499456904607420075371371418652863800044538086088435374790398536572155286979649061223611856427574992906522043894979907546931054445009649138235089390825666971631010982092894682591892058087647046153351501009576136743000372062959491253228757061582425293200286223779321946515920171875249723016339718721093465295442361116161066813896424040701934778308269060011068882972654777123195322983177558038616501649480911809226001112862840448696436197112440870573234133972987327540102836791082905652131897070390440513028087078340597812892666279138079230568048567966090761255961010757126181377246846572449787726989367605265932307685290847613387938278839652850814722566063223055036031352991229266360454566981163453079154457078043259671293065465892989441732801854370788216123250381608664416188585909175533776519501559698694177653332270196484059774773039759430782808084708569900366055398643878073632093812654661928923667811067837597454011636107412232164355073606322427274731282422467128939414491734460675230122418010073223008580358889794138458430891382000599523623054851364555485434166450166699507902394551912131172751774901095206464411944172014811768023159260431070429802828700219884800085828223358459057360297609824336262076649605140322897461143131324209834569835253644678949105503959595000186419814155024634812667109788049615055757326173716950126127997382105236430616846904123508187543892941498649501132107161491917917079792635853275097718423252137539576963925710898314748045758621541830782407183001530212645737444555364148330877364079803767709557884957194978799658844784871803901730543370700725337337371311882787593587127660011294258109229969671298763441450783231983233090039798675436041454695655354116264740844921265075319147099829228146545630704942027925851346911174430670873493590897680493890830272326108760366252285721381052957986459916859339228641134011065075009146860803565076208818219293653938158883744620495722985454440491144726111305178511571596391743595269450545725262637024558709674920868979558895637829267959943044316645869811792732802665936847701564103062900606353733203058723135054487328488306383740145501706941538638097816220386549802068173739402196568512913396898188907273819420396654700425329231859382991972859642193963187534091076139350711302661142476241605337315301558409725196322523625427995406675506085640502852909406167465418156124099156676474897785125112207872307681847247497797188130680523577341355866154771615337717888569753022266030863520790241708579333584069510932439710763652105140101345436821218935304370064713594322479467200445704057018468792494682635657183387614288750298526407745885422725644386996479186764520198873014562829623197640770491300647460549430251094729173076973231172632738442415109667925357735247969463396050868648270083664948788672712095385131318670052294988918835222019582609160767207456289319328156117630463544086924439780605101033237489185286848778991328564946623905940273052594236022442058593800206739660753038513809064463189205170438803866817430783824915181372858810259495220859597483307513289833542139830970918737235760856066942097218950184474268156441079833632165134080291087284022525721970862528587020574441474585910540606629070836852057752685638333756927738778369150754717722801262183313744426633597101034576566745926824374800580214989443285242252015562781359574257808893660036977085827060419426880932247633429238808835420806239805657467376584758244141754047792588477310334443338920469988023523151686567922806363104175382747846936580308423260287301748272388935178488128186076519685655027361594577531535614492503358452311662713646892816435865275236660359499200887076746821394911030601378701220678599769012615334537888120804278659078155812474301754940820146977951745422547363645268154598678023784274818887017343036313574478931293392188131083788759133915682074687090083126293984894727261223823073214870517265198525429921207261831054961196784072728506955567980548555483130791696903201962119818794030876293128220951432989371589892589940115855767080697492768977803559004865418320736618231152914867216859061545917175997384192525800676765783257951314023537179895674478818021986030967052898294365074796166872734454503147341076954423806519556278505654208850664319312545038569036571197542477006012917203634905385834835080361450126147541786672177368598123685391766276888570355313890359581877510750291967909524824349043901628455564683526643519697898748002348581214891633302014804452360593724233151782415113497197642776310400876294483158267263468898951186243219797530598199687713990180607362383662840578302944404978576283705356251151803879201613335471987483074284850225191078173671770314694386073369480869578737107779190108996557813375935921847564244319070057613840474235479579042828860059665307136528618639940786342117483145955836407893466963704431109973214037243517314870717483201417818645708117487983063947972641064987481181257135987536150511861832860439951532425162326250474295705595744316600129454420184781914321116340758977446729139684682972010719601686980151403077590203104594673048828712567139448591285118395622387438907837314486948215520791343354086142603040384639802295779819906510947099188235711914292145250856096125723378296770767791591266579048662869294014441247602006985589832667126031984744226547349708810355675391681141549810714248748088016408944345048633118507555069391586705612012477829178945509587524367440129024729623989978315192190989195554580048604198566015607753455748562936599464679834978782069493625174927925197290727738745288408721244712811169579739502671288505524777600291134124057614392160398069169426369677274308691258865951177783642453127365445263753425162442080675391156918626447761175604621745978853208401316348926960806430246854085171564227455003383919877744707443609752820137655116693203327548471026719860148757594374939289932018365644692440712913524516688562050514076814636915244544852222478336507384191757113197126410360505789747631278888482442188034797472810535745592465713676900599690952500649325898647761521081084826624890040835646102349329597931791198727132054425168626046686341076949358337140227145176638096246939182299483533546632542599376576703195630071870270619261793314677200833764341622261399481384333400395862809373416892631717372893517271560568637634150072732219436184592815951722037685154291620872898812935557283101668811240082171314560398421498266472060928101365252423193972653727645645719724012989462269315207920381645392739520407570715054063632289159282999524836352717560564295281153080507238116089859030103028002224137752977189774917193907118551334414660491552789735365980637531819791150082273659480965355241897604996570566279802705166346748986086657446230314882986730842969729548551305638022536134425028461878761705817085796104762259213870214132029432687463026285331432476765408033671864694845281266804407750493361826329411833896122724641095312895366543115729105003710209443388303771239249052883329256798023351162237373191900033865575270869315175771374726702757888089087196606806199510936755594181448293435452089840795139079815856130289506607121631724263106369598400882103455330517542196437309598580373237919241418218262735244460455788521117976665203662089882314255154399601178114646855235420530854541782393825797085297254804992698693259799454681105649505734949927717262380088926039652561680928596281551793701395540038583343900227200075726696769503304385871137581103502140246486608606605517330987157151595416668943004576672623600310968442403732039523780278384055751375700497973264122620271847648626582229426813695441168685854863220502922328498075847694384304120801594660026997211494664319061507791757004164581253207914503905773214648839541187943202439649113854139010619846028769797556821189102061267330209419086053985697616907835033615506029461847128603380073692611123100351948489899600629665900964657410717543817942970656454298404258942613160504781422652404377834938584045825450827231045849249335786932303662780428924222904606251254697101877313616230868135154685003253042004509962545372349402644987654950083920654200780790996880603034644814981965555667593379174875410720413038135385727584206379907184047972948882798150295790886677800825127024051662577894988712269984508435622618188488849806104168010549925278431339547774338110713813827966403670547230168473462241944316747728737859099084029622693756644514658133189157670330712414273176533309627892673474596954799214490219137344056110634668152612383898586704487159959488313088364715435615934644793386529325245024369458587937406828516413303244446329869498949665409029747310744675414716445383929858627907446894982476644487979164021433997554381751652586201703837270677888968823848577439767948175299202613972437602468612193620504287194477199967856799776294509497085660971876563437036456307866292240987188965927795042393985106408871403694864664951487998992444313164459144991336367941995428443953789864863046239843773524201206226032261287671266557949806003345247523434517094838590170497680261018603016668469431955481280235243972390171690684326376901651123844576675310124507475282796686213007108865301008649972273497048675836140896033297414485444047526510887834383178336393904504827937806314378295560280296659868696805476075145470683944745107466344287984599045786506026229945161369182600021370937332911345366410301470618730340200865248377533845310061118314995195303382855513657115490812311376076108082422676520805438404549225761518134866291606488038768197260450263424610416018302811048434179702412054509747771258298017366918227359431530349397418873571657233722965513686083507767403897262318794729933997857170534673181360853882139242876687481696762008176998483076730959839725438239482454217714763543503810922027550231987549940630682956942794419051663287436204073707854044639687033563271523289117691942321142820730983151739212406495615061428726787818668538696056958681693911021722703271956286065103892521085117687812133053364970214947832679133875281528127900129314631958057004276271192968678486799819407186463440998676643089853663435459510732150471726907060086033530034484987245851108395253472679259658757978071711748848356878789499725799359993460151535532064235551077036219051042765885053853694828999042962542725326870359875185798401654460380933727711511931286130823144774021996987707782299344027202439648628757108506770171425346223907177372353714924315463633188863025211293577203153914977275677485720651623010231014669456594383401485300242168669844206570733248189051752158439166839174103985095806454365147815893183887094482208579777643432257010621666185834688821649131330772767422238558909003245542276129866210594979288299080904372859343653065074988588971638162264247824664570384749331917919352712237105824332149850141200179276166734445457302377547403453649823927927711831565729519235710297891657406998101887671468230226245176183528187406127755632269920377441466753428960440899530666339616854821782881539503295922810339043523512065293925290723301827378416944732341108288024305282340673062915346364038726118193440401734655290373442086129696766051317294134698946688527142750429620081397303997565293414640405929201034302181216577111599560641445071252419408068244176068820578419701478952263273447289505041957338889203192068408355709022113979637526361383814779834847047010462988887030756877585382505615951879214032729807271855569161428253079827111596634833273839881477318983900780943192553966004109154379884121692522031649237219827902658199670622045775883873923998839686726262096725251254272395368672654378734414573103731883951538344957334628895392913855451252784840061058432864094834939361311080791103714775232800942370795388563362252777435225175424365137155243418206234746881769391875340880919731889420066046865051946588916434343095974810850948201101529007926356499272272822215311800621584078709449751843090216584187100837934843441878665141021853798574014729782212173634168092892906602927010184359125006614625964438507905595787936770148526043363751316956047711254055254592054484196168706453391045677816783594799206997166139454831720043041928906585292657856563440255415701111087846071806857953588494369859795189108132518964038600068986012957990897842520109579091216804788289984883923265404504915081840083608646174888698450986902363636898497524927723897377180913806280398128256716198203676809123251902387071837783699627614967128309422005887415574145255195366053837124281481489898989431252068885736673159686703407499048848830120173250120128320718922920488877758203926634373472009410123136622021871286158577850054384182951477487901282588215391653968571968318951542722641061014843652822524705696426116489512847386123023729558436863296630307746361903626010940225966945462555835425790404024707621587440270742236361916367106241745281197513420762441766623393265586056695497937998599635442500084313540918182790011033093724518267216540355281545517808290309281085813435421514945120600989936172170759223961463333329395522738866105130638109802722059228201019268421916098737804363024048492766413206535772641472300471319811041906384562985903624172949462167553044292321221554588661487231647994987284025578894305133699913439848089214052940846707580548476883334093168874703406705028351395364908686787793445460967117578097377133458042699968236251825592351659676306817668740132615982464417194792914524699597347448892909964407723661466837437844528231616003283285406078534462582046751256063699818930865689659643752959423933743257084520785498327747059109045126741192740834193018691072861562716002175364791121346707298318630674091060316046392500475047583457511515847611106817056927674156109336578362453573028836365840136665091549707584110703254505974255636235700152502592378149982980438062127531990123116056310817574368616540218816881396759684223547703167951534530379521557117737172741035241892451587184751252858508491592919513729987336776393118540401684320836647571137667241863523025473981968486985023188229611203007140626413615093817697155210544568733963314614280153651774199952182160545056178846607054164025448949573292652721342204382458120091357367954747065714156690091088186621636811051611972774449487656400649437265722550732333203711709173296545081437670810906986514921026533600677075946306861311136401154144233325266014379147192227444039431715560841008599801448084349810177830431017917252829453241168194680302915531226078452278665007294591787196533177480589817540396591803348899046997665505706440950219358836496868020747132537494304601076683967778005938854190911333109061399214776111366896507863100703027910964505816838202323795921183622621092642851095407790942192723815916217861078066745220874109451936092305298095465608857822446932335109659549498462589260181043203014795032512035636497595826169970508578735813660592364862384270444756708944902372541155213618618004669069133384711429046386277946344063660436551334459911727687204087725588031889987019554996990468252411045175694233408946623198441050640323544787946553766323590166700601400521948478653217902960251920322105141987643634583685210287925866066079996641492306286491306371765532973065091684399917528601354389057307653585876659782489138993199973972228541056453369644434714138228403620673123750821524962690115303558401784599541955439926849430186630634772430292763621692935728894873429288188886004994047706702085054527276495287801570594156407263077294815324012874154279174094539428453963714353070545624801261458010665324304982074273400301179091886226739502989894410101202716917530866805778718277281290473148449970469698803192498765495278955777303711245022652685269110947599868866698033801446611094072004484214054084045131373183056189545215715509678648500782187229809784270259372358433396345489186444715763258311437569364853870693685573564645301155379951946512676394734089772940361846639648037573493825360806503644257476440402644182545817593992115709364825836507858014596762867980594292206170475376764758256766378082944410223818242763274436091340123486006249285189680407311953268911474270821509312094704890461030355137348550133913914222506908864858008854451246991789195013799734867655888438131886945372141718945440957369390118473433944276141250633244898653673999210346043488522520740911077316126807719431917863953698388727187718685250801210124282017306124766315341533346558659438439584998772628446082632416428033136922875064509953164484824684745001018009238328661140535300822517601815056330705000846451754387189247400983834680183578429409458239510247306685196119324856140242801795994213743061329793213766614674140523844524030361571688107984617187956653166734890081261936170036337619465918576378878774728436537536052473875183909857030379586712552694849157186019493863878643726173222297684372661849465375164266516362686991908185598190470463267739283429344127350296155887154989805856847312001385547347223339905894654696527857244321126330586237449931794327169207970342406242136881227961798766639507845981025683528282105759292259725893654066601199988434524236812159959603785179481559721795734938971067196990321489698113995812769604095211724088941148901088866490963316261867096973845840108338524769165071336175984244995822596449776675250173445029973395215964029877310192624948253687845898010470193760921778623779695505904897735840416068796607201817170827801651122355286642894268633984052469015551283937844703325064943915823959732330946074980094866980974817098236505873876210736769053913577322901772934992726719900857572814152272561432690797672518351623406930647632817724779992147186529666162694274719986742753361585462998541272580789236118253445279346566074745771437846018058207684018315305381295778384236031996944494596638227366387653574750037822982145911894882571082988506574204527182009881673126414843579744609202550074473423518639060527635894074302110699729141521484643259708241727645427541643279014918353976420911667947594730271427015302630757340911789752577272051818032786573444970428723729956445823706982535436246571017384436055825272690129319564176735753005317284225356039241265650134718739297436696785578838514826607386846883229653275945741581999073471718084834447989126599274656357467646365662135785611856981167939430859364573416451758179655794175583992388730589926619199684103687898317717158874344172384278633724611031540427033978896872289767366175710132573569849303121461604971295134564272852161876468926280673083496524403588508099442591317280885289105534127409005409090102475440354941049156161053852331490588653623882815952184048083798105712419050425757891521097820489803488793085474592795930973097333443695061902654592013057658672720742061687651825271658093759870881516943833482541417203826975186472390835965393399698293633926534844203083015162118661252650528288636554740566716229693259210110197563181857198273711636571028834936491079129305006977695935386414924565669793807721023352419651606425852547961580730222207372513234047890421792786191231379177320452555799438236594874885317788797737066318774238158473204696856712999659919666203892206620677404094141333260206806597893866533004507111631557309605782506170715957277243588356344328801774220121059440824780430309096129243506027952009623795593374545845880056985556522213194821159265381400898398737344054034537023573317578486808940455130541859214397578131617354194076156177416107603244655493216376821546964992314262103379934320323125982141703490988335858395550395907908150747218579761586418268928535924843497931035755663879669847356625616320427370610935771557051485143805765688003582488138961204598504419833172349344576303053027170643928911181938335475466316197117638795697517163255564176980674429188279504633801435794813453488566803089095045239268863895075713378129019338361306513506218686197652761756290616400236477075205598280568036939584759408388147100246578377117671994142976042615941924452004361523961034539234805793557849142768772861740830737669616010351865036910979647299040334979026562897674085979989557654096078109796091231225316389009062301064175116860447915318537767396666002910376110617898862302832536071112997755856919031229986458180061146855916162013807073601319106151874235309250201834546179513297960997813195024393252709995691769631971006624084780137275685059995928663753460108229377928013208580070179501525304008052447084187266331180344749223322102981858627846323924074229222946758843650972887870426051737011468438304220223470994043313613698828722008330469935654273721602530128175410549576037972696097528400024837335584008677828944857139777572605465946915236655552495456708659698103720969550634440707323346844342543047954309377340339538836486851050946887753583426838622072736173219398091909831478239390571659167688470709292751259143113389999732333553048467656450803247295268552630579148283637282943286065338910698477040221701750128095337636999357665035686945632410431868289208723890984557528391287226415927191927781786555393111876910120142011142099787056492287886306590013435449036317992296172629057019015620450711292534794917175106837534154011131162632369049459790090231526109325868682289724142051673544729101110781132818102728584441830697210981418771895498378667561406811099054454649562356858338805653571814389451833985032429054023472117420397716315576530326920048402983487405591248786326637687876742361531843966196124144448402442515036275658385177115640776464691482291617797526740121592438875572836992023109844710309532942402912551161858591711923850821015609483063124034331581492785805259467871937306149446320794630442734850771238909429366555392718665403740582281600843003836657113746538191596054432192706598713930867602005124150252343892877770070135068038828467371038466559879609061137165291672837079149653225852352864970137177701466800304947499977066965691942603925692989404345345888146369660765102974927337587577517377246595299342611074898520395593728718696818012128890801973933425120043434190879631510612142680122236890229634127785421178220596184129352081086554372041877380487404796061438375376242351423062432634095003156707260849695428013863420450573112185572145592301774872009054027951761709588727076405064859278487466456536749519904587886587522881272547259881912799629154200974738829195201519159533168271154338336217084317796396511288912229019123505580133181517170141258294608547719850066901780264838543233459505268077283876044449524627668587551289509987942657154333412498092401764015418161687810363377609950954405727504106070177441911485656848981639421224196940914515851466936280093497468561869592497862007387522142834312309090285163917478729817523892961255184243191361490759530227218498333343875053796079436867950737409331943960080644421273609097213425396703040930072858215854565027668090520135445847618253618576711502290248894540789548986434952999902771360255007361413367418646950588060681848759568734065166745601973892529197726323419674544368123781670077748296193388709481543450220838986589295253989282971306455242531587548962671444405958182460230313089380423533958312446752412235993471166884796850883395034346375917100731489141776446760647665842577819544330786320413412894045913303680000003440173249173513308092951091456419832095597111374980006072297261634345832051552760000399233990924117434150994347683847702448890278643452924654717387976229653643258257521626362813894180464793730323539090056929611942118808809319752253844259453772044012066086424028587037500548360240763353035663002299699182483525222337929014827383639661785795214522646380265521670886916615346844411305269450993376357216668852324136548380909695235204130244523062110954199934809264801958023151690684988709474327044549528037009760666980760173713012610788453132472333245867326450698832783125416639115419814357938960654577522333796556720738057075031481548544979230419047787545578467276453367825835774662896095271616280767944408038622805383325323035655012086782503497173969534431163008428212519005138298680055942749402790296147937806434409351999331305594514413793577690000347526076522289403655687240370349812980995249347137714005562586217837743076402254111759611333658833374084178035718735450565181599223355748762135661221333766635062567449316558570161689198189518863783182075633007703962163543283553807822785773348690612262568286542138687351255312380246102788626222619602164549331724092853314399260423766832999157279777524531580762416095969387632066371046590753227168436490041401187916518052567688691934808415866337976014490289891367300612055943563094180742972303488951515669135795142834030359127270772587930474992766254314068245859840003373859652633845491975423664540256575344193072038889453942000392143608408707058555211234479317472649228388076683794208031102521434453653557497466169679029357974718199425511904328123151096493434083074389772387406346251064840170863193603617240658994290965804741160379973584221139636061322628148449868969963538997946180944152964010310462026667761713845714668858462130678559155704044130519736485735595270923295968884594010871917323565244679862194573656465385272885190256295113370790243934696134184577655374063876868026142889467990980767762827563137009923589018739683768670083737142146173561464151162057270944698441895269156554585752060426147975511831589042894761725552620889664503699158998069989997304880292008785227415711133584358949299026462824796030415660052545215358295001301792182788064075213523034692026422004664344568428216400181056757447876423351710896412948092138218562250823617485059093668276231745622638549543062347675523602227790595359741320639606026638801666137345516975494416866416722302908767195183953627032425415349636786079255198752646095861991541256945341864744435405969300966831400284826019696939477824807550958376371679214775331711946603967897610027877225810781723181270339481286656034534705570582894866294579768007451704945136031127479392266731595589507037462590477341378242049649202181922353005708964959666571104713670765349710758077912271885595711367487506400510644119219185940789611581032513554060182721743719105849830744097278186871612092677553761337716045261357205529329957746451847907548250819517242434764951440502718814180702042940075281414798731096182705792839142148554332200910558324158157816550520894039104879699720076771670625555064178411100912259735339338315891067484795945451414718178971053291058502618769017480977108731903381075833476062851453063130349572408340104445302855082398515643250793406964606127984607826279152278510841503441457762455128695937583144393190489609463989731843516793740550222094549822111103513089916383978775845724899516957654489540725727173299056485758511389123772398577208978552864205730958510539638396354284560409649646948897439665371724097825542734441630424234766140296436521033549492492578456140145154281538155432259147814269475165424959168012863736483252987342603601345414869322400123010615374131220854268940648596668353963372876861741215343923919590663556194490775598245082241878151126996403828517963424579851171133764542435232957734868165940851148866639107549290224323050406575482215437269706591601472137005339832232289345916924907412374342483819407185318458528553700958742962735332381234249054498434005994236869687525140839266447667521131207767111786013867560160729009740757772136200929006347376752828255421970034056343933341735034133837568360892321556169094731297708966986565514360540024503967273815319137853496576601738463137971451825826667274398262289860349883920612163837952128403207894298397398576326343008646946780008549861346105875397339464442511256470667243732703709891350473402905903530369267128592965661913616034694649409637542793607795023146897522559119512129510096670255094539902435899589243054110612443247120932205277023253436755574467842501935075200172303967917707178297990794209256646812162039700479683230663606631081997981033378946195054747185811683019627037138587296232743068912752199151127803987651489261720988868502181887193825146012109814264058097520510067078483008431624480974249680363027553024686664686727556697525325903302736893597511755445866110602496062458904974475393697964611470147801193059612998548271497907643844555876423499834435948641823493428205562132001968548824926898078961327651988871326381917388602532145342830853050851212278470659440537225550071908282327298640229903601769279191582585215395544354605340572920905636758215465940510042149841823933948730920348561912086975960667508149664643814061775448818560427643667787046523878469772024283861758223946744471050965756715440440588866597283784192527364319715298830959521131666941567637241764729392384587830705065192252598595848556476788787403705408826892476302333515740350680419990483599823325778582416216865041788081053480841898513750263589009432971106681006779222327575814087891703997489363288848169149427891933951539433941456277069574199927276855135597598355314898383499297841038259292172286873114456868366794032730428509368213709782043395814091614115662159103770337620110159828525190740578590552137206738880894319735100814302378507271264437711230297144849981850602109522362269806776157242567773228866830409703765763779921421171374980420212979732753383567845023141657074001585736040147624975384892460959902152901797596312895380969427556919651935523623540550793000634356712745974324804792000548295672193199810047708536320831178885950695138056400294461862611043474620856933757314863250671186534903260964903416699030561692654975856341184887816721927458307739427566458724952816900376688060094405916638714286743522422909999848558976513964950262226216321009671792908504951846638865728541472972741862956014552037176809780238671709416798744186158305227167936153929208467240442898959553135702432784522321446978809100671573609932239272941432260800359746546362446339008490114747953638269543276606167248139768014377548424338988607478005823342219705008755553174362422048472405378659463517863848885489273081918866539143289908490774724932200391378329080717119454791682172228681208049900930867837949145412287514929274948670660152317885223793437988514759458794629947402164884933073063435999046109959924848413109325176901676904026184785288147175438661750205608360571724991147089888536959440293914431317427098144441426220426330996526717949831492340827923849352319779102220289891991167717242322628025476475698752775074284313112026485344098247491497180600985811713690733877404913283034427497157052749702717226818853149695320405300852513523815647355640880847673318458354762788294529428703710391271283227035978404050396352502448735404854415318670101195212341925524051072724939154734405476993486828531271458472637809842000852310675099454459063616961266875115449004421856048503688241418424417353064631512007642267441342876297848378772693110302383591338823377964718297435886741613229931364698449614727283944884606843686779645771645529145428873203379356855602192454864216955273979327151079359733136614027156206745313018412478110957661778538615487532561063656011929390727673814598829605557383491464277039085823376820564624825493287434472029538831444859224581235734549116718062716268588671288602201216993107231056717796909266716433691726130935262824235868471718090943496406243711004337704208684194752050252389207463941237913262743976135349522649092325561210889098980090368050563001063455623305607460779186865767298766222191443969184684502806910739560604350332929281127114081724774448931620237136108794977407316046102800796860447746151440390501875435990028514052754438336117704127006006272890331642430890930156537490499415670975441449886954736966894068033149876929089681732481863915525831633536615403026409581246221182125752547844242347141404930835839768755369821881652000307817033286106279532738043306201078021774115495590358152201491001512553812372808304411781492629632561161608167029372579770442741303012492426193351668138333935925076316472294090755890372583305871290644248173913963884564040901840070340025894320472144090125871746103537157687214213715995411656794112676097872054235433868503563595838235885718762300962652768696438117705818572983221470665629751735248348986078306000465974945665560578294856976246037877137439447862533926567580321604554872473252418761432044264037072220814211516508495729015298876770195581718502195379570309677472350442834711341044302911864418972534048023100260841146215553124139194272332848822119863352939194832105753781625758685946682430205605824149962139554721186507200448400775167220590616060770127477937910593941417970918205323873255931323208236888841068799510029365789134159538970779934405575551479970514715633952861465887645757542641005338134955364460996805319710630974460011512838696850885772349143643405300129209764032118443366062553425430414685395445367242058180052439901754112724209627587863505402493082310769169749883738118984634211498179717032113008104875401071719560584180261006984765155900709573794202200174053435457273275009576509578609848170044456846013648975637393483417011123067448869837876978489652015067280821417073422262433048349597476153139224979177242679338704157625626303913829840305291859903259325948218040562883147063682996886455986537456053374401408589188290339571647123522296634695015258591960190183456959486332103887511022924009686182454115493624279370180842225411669109763569847966934926579222650945507071638189776665820619309503630713376832500981840539590280850315631398639245454578468520458650438396252802587332805867677114719180545774692850631073516436572756351925484292378930887916425723168909811619369675291210189815375058352344349003074182491558995089510625548670495690758722020502800731291924063287720513297937752425083082096543943510251874412829123135382323167921687756383796165571649890369400449316387566744159099273011495251590597973350921987468158810762770233872690733098259699995030120505035042957175975875475414708343473798207798073140481014508326606521517558640781999483989580733551701202900264694649698634994029587197501941874058581045404365351416836672831533877745384926844505254381864439897824462076510995371139351298068097280065326885961780563156481047761219301337184878315559835387000001688656114692212496173430703746465691724789129689610614891690015660232222170448382950231919532505943324139007651482908215620389250409888998810534070981780006344353882876317809605096647089837441891310346779285412090935792825101295581560768366338115014744862454440781058014420483891656218997002232046884393380964885413337139887835878038210683387789571822527215955215179736225131534239292661384158599393649889827425413584865773830823837746855059715983949076125485568323159105504111007921440985299782584640324803436920426447307681880709388132188767976368373218503048474656302059121935176914798977438498640308535671303963340600141213420278852583348567408900871049166358930081302713048134877024082592172806034662356215388880178449346330951166923209669575387114635064438132162601101023218575421863249847018140257007023810494912478064233599424407499094844054882575772910211844804772672297211610084769720830654247911563848658498727330921015123213252237981069809100347782323874342739391255390425057667018459053258648881691519659522177944407184533902451824871037333318937289673279289325061056149131312358313293785761138236841939927360940988296514581850130657480558729864285697921342621837846397664783524688072225556315681491731640036895455155015196770181750026628331646947152967624766533278399563401117177419283304636041422226799393690127751697438001956864468585770238584998055103477227700346749044109081474992361694545957799811252430219256951546683659957706113313148048280833114498979762447088428469378514624757803504875664919083404737815895775767505520298041533044630517165976865319239736857367466452920159885549103531724863365014167478290701021418814874192828825604402397151157961885965639291517324658361375835348834452546958205723058351494006230133740853832604272518288679725395908405272552230333477445629221836820552416595330531721253224889993325346033167921989476422579156093503984475435178312961197630655255779727122333858119719225354870754910700641672945013879582234896592831738008701228040636205227374723139697468921232568798181108047513869981063543776609272882023901057501370002953811556350422419689488501811182335795042785636421365418651824889425446961896092831102633506616554801887906294511482760567020239137798224548755912706443168279609980923843159684906177856503766544931389174547042606703081876865141314207133092962119343821301411809647695854738330029642851399989306190130706766262387207333009971542676879174835078247043344968240895422565436655096754339590976365075858157026147875854592131406295216642055881645551095194597329333435987488499881910338980517168196814162987095959577084840148499169236130275007229971609943205878929834820510338765810387114009007242714963695814144969438678266791620070739539568750961355504588446298625964217299420102044661148102392155310276085217453421870750293336123798501594086678106530667078795231859256568612492284713728155023481230749574172395941367361549566752072581890753980051069813807276029336775571847596478351352582754177445023894951052020912647937991529315114887710566419551273288685207544154274745193486390103618722636684646480231956279733949898651863957493753719218335084867016235972738841133677176210692520140111856795407000425798351812426080446535360244285039013864474982592835921728939114786762597681101497879073089798247867145855928546378891341523498834385135732093009786881387537303114180297403880005926064266026121082009077632150270659282878564432618442310772796230353892709432618546331022430420894688613439775313459065380925576252428203750135203384066610739550943511376568164406568248280320529964790981153913360651686920307848347880383638602985619879815526547713880445547217022347836007395633886204252616128779177032855435920539859243473333455265229383073095754193606902065443797699513319528315898042195793048685385220361470148302774419248798559659335710544853651630906371835768840099340430428208124308771938720512422339783378134981874965657937920607154917019891902900256941322136121594071260057652980231762279732635877494910104506963136983315159155688217348062230844849478569933475384914739670553126229883021116473367039159662516521180412182195809609860254530948117542587500871272558178122942756543805350767921353541178368223264998324297669311555602370326863301027864788949076343491563887479438649407068378808354283321215927957682100198262411393764150470201239271411967308276990188461787821220436102586122533467514660538254183093113889841935519168365859089362476876829558786370500774773209801189606008735779220973935562895642932703817215758095997859600388627922342452704950144828588093585081198811010135620949592407612731661059807262659632653290163492989699742282098825454951755295316444798282776309510121256730646248921948207148871820698402994207031849138763321614457976047047107014301923951888222401658196307715256919941572517577379085247586902722886968774724312250983956146800852268425226527399388197890542237465942252448872287531315656039977247946697559962413966645256541456396947867879141172639171447609223210119893347057674638244381686604301341017792349149669768681850315854328637956281847861650101314482857398633650778258868559464712170920196082849747460283066598723084613805348982056234700716980970031640526798427596871559048153373641933134050064075861086508805418159634858462740911102343503340104586013157676411500565612315305138748024095942240051782103829633103086471849429431610424033866257349497551449508317176146181964448086727815037977363196506095409752811265226687183647796813849825762342693320215922292688722888636714031639186358926099557523732342658699919872835528463780908090929810774282793079685540105664818463435835472363440294013157850629624452028373469567694861703275833128070902516023844287158039658818150000970568393574074681983824568068841193402063367912647136446179849488278840329428358975970510355564231148065822335017582230273346853269332864967542576658154177641210993602795784979069317609403191101684443463348757652415077106161638585599462343468705646861211940970230884898384956379225416079382108060830470709921481950499609617452062040452019156671336235291103947969512392520365807149483602968167198229912592419056097630693029526269132772295870697924153622743931546002228650969152352911038481711166791610203233255239303846975272423426477853160779974699195294980061448758137790022060989730186171197637092963513174334533404213334760919654544542763776182770276696828692428783266240657079674742523931942623367496064879609010633250409467619169942779816091807553655223069404285543698691986445527815295483972189732313663635048645108646581163589417587499672769844142346132040550504362604110235610749588185658198357837654449067802769564661955835807663647383484981210196978679844411705494557761286920465656676543836123452640229172417735557849238306128053377770482385671724798383604042723828723190418917248583490621301751803918218902075642033643942834853800723690915408078369478742166303510919722824448200455730335552359174567165767428461144139646636764898373224040659852522498573508940650009719978141264652070389010609912663675151954822004154917992578986855365509687485146173681582227035044440833937378523473312394533576773094655398327304795328833831348775306274583259726360487955984991113071739377405132366840471192374812403434865023835151944337213430929092594515497388140897043634895989634228057226178598328419305847554711888927464689188146874011870928503085444679672490836331252836900386059922426215222995034813845572123098707996664561504225042663755746276408841920792005896811096337533157443578024357826064125951415571731787627637679734235551545864087220259853173029033323874580721267588754141738070665604779592867034608191812874846955512820470659872624392014249444128540216057247283002714075241289941418508046880436584932750240813271413148477973349115348928211438188572639131329005163305121740915619991975040613412343280473540002668300041813652793381313615906227674163321614688770221358113353899893092964867624977934458851186233087370540776754426081372883323096647121613530583015774040729742915204205027848177029717691081417931306723710639167228147172410848762793083301084398551008785608767366854950901565029013179663790205207086486754336272034992278969996191066866757734831594108964514831709751461903304839991320768585802259562291691448607586207028900612459996894945628949530037259064313478120385007297904503593459059331097631977653808278595655476151538061064457945546763951950199252974125082696178166752209891471591812350004272987872660730270546498739226180256837763655279752209949593858813260174165749716721041825916074842546890137572592221197250476010742779770208321532759148646056772816340646533716067516549388768005618940844291196700958423113950747885784143080193265328224071979009923104763147753197691188338870060973541840063260644682758468775449901364411789556092140470338055450745559591237905633537327593526273194831551329520617403761885194675410265066600982065171390880471721347521689611358914331377377330021909154642430142565475241954852540641278348915995623944096811805046705877026787691403577076930792274528309660922532674903994930826988952253761963147662571616282056185314860098111539910294145337278780698461935382366053741046753296257353444521383990253279382484632080915536331945107858112093873323278047918359355817486311802133655232663696842363153134252454555279707436156954045088959494598958086820237933761306984232329354453988068939658116115284370739281495187217867681403979472247426580533850053151212167448892352842767155282447989043068823962844018360586548553786903639708503751010897878032758939292991625453097484651763385485689167426593130588573565378492284364451650399854408749463534715016567874119839502242986097443397574075421145021875335473768988847362965876321477921894265576976849666651184486805795054374791906262443959625242603747686708678468622159622846630713758512024488780397187513623485647965911745014249159899567728848982498082234503712786430897186266184724901650070644041799762099762046258436042409555040003738140653215724525467293698853917444384088455482317205975959977485866521121396265493607241572818498533915711456771359149832589934911076804991420372240542592402985272381133757760798873541948633869184808412156328815673461923101725985548850247207842006032113657627297697225125550022260031108355335846203341165043821683583759510915669166609884323036635356085525717528186764572512559683629473673727203325977254256319943039699371333220343209739863507319403411925907443217125713402990692023217814190667278649572197462215131613983138023837216423283898112058812527005267330314803903100630907183576984848664778023239107378940058380012132234963481777208291234761618008203485058678629973870910950726087367884244774705100932113093121801994346084426854615275648432494205877193976937286056627530566604769582112788338716983006617339088702706058428846182458111430949167448178327366548157986610957309742548850608598734124000094561820995538917595321964424859767532061892187691195177026450595104129235170786160315840591954449942036830677288112649055118983231098059140497934570401234014996640535600972510159745974158444919442076578181926266677582730736767716727691213465508842188829651303866494000813423487751886837536485501833582011287017858805873752464554156362770030006890350557919198126622283485647859386693897637492129742776468169489865157178958493034519410150370078507338915244268661050250295785341228287541987587966362064598253511350193875354330140708909745909324827855041605450274065492954430688094285860532414115884760254553482426486960996050215648931824116533188809019122842107905787632591821954261822292603536039571193360030373288580049868361288563950985238584748714714710841668000835456821701070376792418493185748448638049883700167140965333373872910703642844890906083168351972442573903065551036729523609841642144739122866186270625478114781744005489483391183536093008810279583469403038451162757240232745611623063364399208381360675569340295515283307709832592268218826034463549669427369642005862235916550015241824444820144302352063677747345416733219699572856109617786386729348366745073933661708596094132324166503502215518911149156667425817076599778369331384760514742218988414116952970193683061887865711087444791265627872261126752158352638870333088361018299397772731008382529445049259363696163091543873829214665779914316978340986291909491247844147452854333782751978999569533949631737623653142772030528665401344961707896266284395705180731325349620154998139767676398719316116015508603667045907927821540749579107920348689162823324764869172518054709615525929745255583860692662324189917485579880179431430146796043245772091078692775953056086576855937311830696574936100214825666059165346019638946547600294034865534438495354240604721651764277475602367008895516470364269974017176655664677495548688786214818881628446136180364107742488137771156183494055560111283063947522542958643084558619845430879371176822307668148474867667897799339217133101808645260571589293818531798408789475347834168325537006629036546815478767312210669076677723585899568913783089392587126138287246312571025341809637910336736938291577889522530459536360319655829735750960371156539284991928884404031951072142964900943697184570718759510554943049091346784396509886940295939714263216470301600462727411779343365710138123858784607767885679654890719255500915142479008692758005143613381557760002579884825240344341686908005528799314241362919126481195266079683407047174369431966778767707192432908674212780562270172569548360353596704632774646566362975814863106955109210228462550040612806099163488914131402208635914079607938230851914108929636535115365708883859079748242527792631242479952553738308959085547401638912557687721339614334704862378303010968279514700537346550332595229549002461544189478477348361167811840744330913250561816530489210970503572471718229372027945034650126486250718948042433812933442250336924976769160718301602652701398257794573198512414231040696698380290128782372690187295870982385963529627240904566205135664079567507785595270067510469238810790009294929807435067948289304976310416670219083169270942394801643007005011722816260355652614820127477193356254327584995720981021807275389891426633543669177679990296129333613077509312520347389941560729422965853254464148737745693808360229786336918169371531823769749188583239711061491390951203881916693321133571644140621008011021376871184437580913558540962895548272043514338966764600153451519142567354594984671360265989032012990014306536239810125374355388500386578100554344885812091941471122711047016456665803513459989317180233630936062379967854399256724186308064683882624326864778499293349357600153870789321107782998890338915980529289029492801860571558353778659001607738551572479995985373095368752576304466258043751873200939589497233920259238051573423960338150691939711035332546707170594998292718765901878888565897130479328505570332023489839761042375664951693957343689051334986555230121992253828080655864104424493030762996086420874944934585914144312408509434508720378423009751330915368295667219248534853838177993398000665503024839760710238943454519920979327928175957773212407113367460781632405679407587015213840041461102185740698261619799964603655466623083048374493281599696513835168019929431521143005287873087361427878558304523287824384229566079636330298037820477260890900656297192526636031268572622338781545008550277036441614850929104874914896608144855098453064666576067621265398739798718326436665629247552958122669745308281942288461899384560102051920089995092287786482373768513423375945020889286532180071132993121734756589651966012397170415565533288967438220610039142959217129044308729730372955920653492968157730796441107910928183090980617224694048668061642666083470862684917340607482274340008778191190521918449891186237156681551635294138320909190398467221187961254251610705419319538291955062897268289961656561776470576583603730645847270135838688419108927121775192834019553606480353272007759232406082801435194150854271223626703320292342534181155406659962430589997751226193476012855548952834364730682953408200936327280746411830802999682258217509599998539164078548722556911314724448684197711338494790422787643589012148492222409489754123915423484927941196275628411796491412885161740641256250645253533668588699376612071028694793265322206429819268540152851850326663420610931945750861807704517691389517399683213793157641541824573969446771278544508458396285771607661546481581930621293924443348454148791316562573684336514548022741866565883386301580293642201634455427809088805842157483805413295089647435825428356042403927629246404170135319853482665964593898714051441370952709009894766307404269161423642782214908445444953952844973447478610318056049699355697744715438874080953548167043691780013437400033114706218231339316738159973345040811995860033455779446208830348305166499020859240861507740520199769106374556796589646605675433052225458001184156315730864437343218168404682064699289927145370943726812789185730316809686448297396080423397642589123705581169265660286586515678236602050261397392106164447922355251554160914199129054465829478610653976024925523358597508698214955734979911478780190261511806420530568461405401980215568300031609206709234634097359474224455502718467755564379353322256887532271766776401460799394248960209851864948713857076599930181918388930750218256419193231196969350364388818179359223286728763946336563614815651227949269216299013707563464636117539270894676889956695255365650403653588929762492235035043198553022976926770466058386187228278064110279705352513145111741070100746499020963108970803464733803740873019326471017713274457482497415133372005888388159194209873035361746971925582554901594732102021687794540831492065980870633935265032460813421735446943285717659902983981058643515295091886147688275554690381363482408275523314639464005665510439071107326501836967308448908836892730714355772373226407019803924565945332551477400094194954475552172821795733577763533685025990627861078981349780541180599774752528539381023413508217473752243564454837345561068359444498792571632204248493439615315144401735761683384032830746389125797380653389674601476160886827481981300776930439403987469435919094423716851104512111301694704899552152206176398539622864950709265663620757485359725197357719770358916892913084464880323672830680614194094148236792394919009511740319347733763600856389633049457870364835698490046771791470172839285898596010738892851136455220897458540958528370778511568727552307342249554515666606384700196422766109126646515596905299105043398923990177872553639505527421368488040207137334959242951776859573542350230620379991727489392347019163229602561679766176397143844277332529717343367793356886457152253060501087433165406822932040072348312443192395241609621856644719074655905011631659903582325027922244663737290914776898504279745098215285420418033430610613525840365920173615099933925136319362691622140013104954821889520131056720017175760480772956840193833027661453127763004981868538475141283101254963161383202122839356824457531107021762852122305381543620480992215777781264977715594098268353718836552905196127689369262574712936184689050731461547829920791012427645590669758829746352781772741392869941158182362342286519514338049460714463207562578532195045487986202042256383517001298879946720505954375115331234284863757663648567372332367712125810281037570610020681606063800112334800487256251988104250439156469580413002095678520280544084924106591911760782133521073809320364905392065603499985506785154331658010878795327035703320457445213696881802616210808766730891148178155360057107376226628202916882341821589032083506288333836474589055198099146431859579134699509098340026825189848920454286948907743331467279948278068964085873065938757153967786008744381586373795435775335269645832808152416662299166697842523105263069246502189914357513314977251030223268155548597312254922498900151177478293034228983543261831113590622076313585340714527917152431671381629208251160572487031478273162625772344064909635129710681212327816068635677319024623910328075388128856774882788578232228616084896060241459623781204863714619853091201908063036535685578421092880710524718582052677598125028372446817734657599412794801470268092929624557537036102446648133487804712992389358283281301507382023159035542676272156252078457990289967184950896979989166486265034241049067616499668184766003374553562189984810723543418041799629800601137445767732987404001684335895965731227703920208073214150784129606004665012875187418118247094382292218583238020633914866936966917739972347798928386387397230103661702529771472330059081430231028940200853614484756388465176271748648595233246282282465782357205105183902659858783861436735939829518019909520442057003600411769844380939505060516463367150493986586534362419845765413196202461641873545492072080997141869978615051133183995905661446294155646884587113478221332779915637141197598538081671480893186154685125375726229167233646327700258390102715177340085375219107484303217432800947436594292228548317321828421632173550068704099353054112434759776838454297470949148755927597506167429365487589005398648521060410696782791474970318806430145372735048181492019971724568483279573368608722739928281517247498796104927622545196145698938833915547094144510214099481021932724805080782013177464416381115579816552254384466904097306971782589739436968684749831242105485621619591685070251737160986496317460893290499778219903897476245515140488651958523308224350557079897326889657047593099752742230705346300908416151682310487368726430266474588594837777919210156215752958274417570586692234970591113039284058187680741329084474745679950565823585467145713643296692000399813150857977286303949781394418836639053012131877097454394682419125086586222929911150313391719275562603864501375004368224721581655764998712553204366853792786963776021856814937466622495090537494111536534986841442829105391960737778937929495192734599361095797542077452978743016752039738595202801027820493322077434716357659424234439395217873152547578132098524983683575698078233366846639147872480160241573002727011022278950321867844583885667196247026192115260683178584391949627707540073655990261264743315407362681143242414033538071050041034262836179827018071875818684092683216803215216996264653765843496397329850398214949364332066305906344444361981035265647397257899071356398971124780043626363454500061438595590693140183766086341987523494739463208439714787951970643930111350139940114681038281242134448718448830846661919334225162375143259310316181275184314760664873377337161505333216762448475380761135848268433745077130356292779221234798059695288099857166156136787350581237254581409990098375853131368677380371563438548553597349646227249406345955635725980292469190129013941314035898655507546053533131210926642743846027731753515371651444685395348980597655370895816670827803053169474608833864932045276253177516247271856504162268064429476591338150086801781363363917785453588812764315247207079684582935363186399974914800429699680802743719136302331905548039615008973770579432527185378956397673950989450826117786564390672965594674099732120109727260555365572262334977705543069875114573907505068632255516145988840609097667431285075801932593313665894642100310526816128206580576884283159902439100270917476787316962101365011786246757683707053230672213047244914448311935093825162609288006552255057931120822206545817459386237565212892924828960579713906206450995811230248834454326508277973475034270296890689462939024255189586278643165379061459566632112332059966748585785982201944368980553953663749213556975454448487130136338988317662835163054040004441033912498574765935950862162105751972531753480238160409408803201305902495637496572131808073104250640221834070757880716165140909420644862906369216056081105768819523963245196856085976391230715957660818691815841350009024698560398723318538306906667003847680712207005152928536937235610814401462883253817443416437231589278193415934627929115018182890486286298877167847661711201150484323600720938795417188750448452188348936735195249697415199572776722178150222964091922730624964282356171185035002706655784902033180098236449368676519419981966619254192160311852771442697373846063039418105979070038412790150278226980788589580782610052818976883772806168019423877901849796974189521347316035835843829177689895867933261228950348657899922118516616355433014619479953138287039529805706300022983395787006924500335882507410407511832361167568938115149677570757981767548997511132570463045938978391655053020204291471153454345079607482538725097110919917760270256972310475037643728340255067014281401087418706157147802601771638915708024972452983095344553934222091794385834114065344216823187603482154191044272576487167879714649774137494486143722969182120570173135842663270819939559884113932304662601589200506287055695621767894992571530281254847399170661803872352844938324438380412891985821826181785569539591195601386865162614205199605898118205047183393657778904225349567216236392515213398018337687127559900462662126939194629218126612118023018538710273085887312758289642875379457608458653159632472823093539416372693964559927638892266235383360093591599452295643623225348075004253123978793335623399020297394771234007333076730196020846956735451232163138029955116691753026468240480656985906634480161535818373015403699380313466923145694566937499322766413123370833774093914871184063656501556729184883429861412656460378540225226006698092561409096727265913125871810912817945676966624797332951093049265327489426476169775618902828711885334358792533181547188249502613697188824810325765326442311188191496711883266130433060608392815181756364783853724555016024954223733188027579389101568235804857963784023360785921529391250243806831654552375601943188311954057489143808535902694853812113359020510509761357932591760175048010102573503849347087459540302400392988503526199481096282108653726100366809668739988233513306075927052637224848703640409310467423293715207286119743018221792844468296834891717808386301455377056223702574717334607999603092859140043635631485926700463977844999735311490037902996247734307150472437190264059023285936205178437630396494598473847937612143099951748719388178756354202213374616113246075274879147884430272853940876170112656052108302934543976953074883259728316129244141164041768469751795008292765676651323930232799199230692911904092907411870737998009713916393962276381564264536943322329771810017016212062310479290052174933443842110571973869682193576183376782589509942905010498321042690044463001326831972384738927253770773923883907616967519493153217593854981424310135133044229681985113293816557652827952640815596254106032397546726093479901798824983660362658357918461153908312907860350510827288301992235431096038184118172092352699951753383734914660162926581795513028176264328423474740806139328818150865847242260061763233069763004668304641689119059320493853463910785817379819472791379394167247096473921587009294589977093439179003964766381299773198408924040984278282827030606401233296942750125810124400589490825346001670908393449234973998840152943735037630345244768319452645975276218773334540421364172267915769628637892095779913377720970896730429218305987927222579839175132139520349438650384112700326381277835101149573431994941647676803237492869526851157293597952089521305823459255661440414160293382594729498380135987203217101541713579076747709997579780470934736346027947082347030999463413746261540246113102820941735571304726835175252420521794296467598938781078038689607674942434839622735512351739650567495279566684530591220473893973203276910570505363370265643686365144106253656913790472236652441185319419300114971005439073280800901780565869615658115155846759867495793829757648020778685612558453434735395043712051931295105136840764695379918761528361798082889099258808724406886838389894149081205978603600849292790947022625552419072727904778293775119740590565383489976748207550273103494709922609629837254758289676997031674767519124975178617518028239861220756413199864720905725343929171338959830251220686784981626810484763488736401893794835987885349899605171233758235555974385117901142979889102539572664735139103724508337884212846784093677153020567556791307492376080962273948201729751094392037572944146773021830394922711709459893742538421197606839750588564863719436022799517124564945495577089240168211072576859357883635989579000038527212023181532487435350987315241970951050899641261186005685539879600823080001431384767767135826458310020445777223757224596569350422935380033457837755955267970215322282619919828658260443995137666940070401933559105192118567294107370938327994071350929073297585780424725150094850514612623175864692825266014556201577657172201589101676022815352292970691961257969227573779580376768829766289129867420222799533177446639580942537042998759131522100338380565813233430034826473452766797119372883381595593337340581246178341815875262437048288592642670728468135178965915237890299704091875077181308125136505417802475248305182645983489565777162376097063910199501794717720076619415796144435983789217775590986171319403586444603866531630180554900790966221174599150921227130525086196805670527390826934532361590443652393948463760009410499972805933749284224807099731254738511892486826458036270966797635376752479092485677202662496747295039919909616812383305166229980154465582994967104097812115883395760288181746270366004615201131920717102398689554222789885199862903479610542241709591673845383264659702025288822490084083977321208989078467908429583979708422726533635943184026728710419312710900967003621679521100458327073962331212010608368107399076388303169897434799569877592427933223133265926925253434979900335332544042379717218623140685281299338961706829061528150252153085126859420233910291117991626869000262717370358866481844262808806189466131139752994327684755454170694120889372520726180992428350063818989779663781669590776074084976176182029171034284093681576473671856805507074623099163111523771665572725916859975317071484993682634868946084362111207475162089527267284649557291297159496301960787089934384202019688096845394612712866634469011607794361766133356743106785938519377760302999547974291205783323250597919531169316482525859627883436813866104732836490053838387201183975446133073247245728973945432957702069231808972926642796862676483178787553861070996967390463502398797472147272320952186436716948380098844742387193842393589388392135337902926176064498398603541520902411067909806040235252011211670661977215811923220512575938634710359332352629081000362939511335432418461969637804967086120272803762182127728166018249741147501645961063733852761885902172071245147676418219003648789478831166624643379559862741444820208780930594855520557198729373629166484868179377249918092767787241864892886864504517032451767905443664605606131909205946523858495429351705090686448706366293688517392164305705476271533857434202674817893656951402261512005265775804180920791374546056966643760260074530082347376448703025443910657290677156087020377940167590478406562617453379494622104132045751633994722722950092788051023059897947893787766083030531251510748751329766735769173685201219475879281038820290132567881659647731638659525921284710877763355365937570579759344100636509656146031552638142904539114674477771751767216315955056260838005626668355495459638798587324426723501802469932735793197225391760854807072423871005369299765500993604287714939068215338632188506820796110397761631199278731242548793489382258217111682334803368191683951336199267656828168149057303393256007686568114866950614484315916604526226233929113945435188494165895084160374050156744289493906537559134270368530950706276670811480435801302994019784261556298175904389182683964361029723298934989833416066106052004424551977956171529164981579809558804980959899599118167339267343587757750690321145365821570608747362553596442670551569417880450629530748035523674657639834400145324344192510137924534749296299155753889820386549504073118494566468505268405725798860335900507928557725197214048118441926406682379032076804059513679957987316379262202697378987111529153211258762677958816133904057717246660483321797176706017834788910380371365165424275057434201267408791280859036833687056638187109329982350424538575003681190149344014530625118646937622957913950650969420504650753775809836534795135505946366348542840454518360477604331023514125496236372490175069375585205047283897668202111700787131461398387309271006614037258871568876105500484964302778758130135169525776422343365317093040559742786097961182603536137140611101194903912497952100704838884268866192964017568094859463789401401189116351447685568359218932339267384599686319807792048827836859617874199123836532834851957140513919150859715451641674247066216009798174913559327030872305608698772506813378784985174052415252141639290307755423251533628700797832769657642756198168557669475569989619227687486644661187160805098293881645645801059940047860881302810998264490248128155127722948709464815352070022781958489004047368322217785027820143215961198503198864226267849402548287349095367718025539992151290677851210829209782229757428376830179269393788882567910661689756613356709259285953841017798686768570394183410393942535886388057391935087996503021425973585327924263981606628547016073382766998536681184467925560132087883382367757967346755384840814145273378323121271587780663672532211416263513301074548607073085875367623188230898203444774064942887513422240153453917035855791721205232084691746938066693890868093798428407807416431182181178856805843265315191652082275709551650365666053863497573307059289620661902827740671899666365008976091033477037601130017613563865933338669467588390076251246722323642072838151999261896983204646573806207564551362057147225560876088055115725046384122590613703810026587491231741463986046340916810657860088727026370189132098803733769562253542110059400161408167721427569565202913386261687365851563343178096333925393460056203947790082121796151703320815372452234696857119100332168904798902623433109318605805834260564846319672538911100703664458808102776341860834383886946419994145913522948971415261924344166619860792026442972717358999364067951487489674877545312196765760391159148493475291011171283348889039189269327227270037174783197652858713115186312228279984244382511646888095634829526080723293486400458530617673425085378341782910440455245618430179372571398278402851112392231066830346041772756168396337061347993161746064116690401889190667259842297965448371909281336928990267352127926100585139509187078566093175587488569712455537975826101388017500825896871018851147978750545198206740393416594122324019416293889101870352454462289449527721475489109967800008341915393288637926945794793978865628160120395080369279637144728625065131334637906771744609438202277755820726486640946468784459855056316058136248971431497221947793830421795496084624766969733964321068704447679928019694401362882329030462852301770041522466500581587204133846045981129149150762789875528480950087199743677233724713833063292061163391256618406920977446632539546786963054095965173515050713341249128342758213675654361602565056710292233761043533349650431358109081086819918921911194975174168642719756819558849591516535500909459984795837699457566573857329824070303744621253969015655161599389417109208968720285330114529563437855336832988663978641078853573685736752585709930720667244426157453094202990087545415757908159521065038179777176204052504736435520757767530778952446627176996446164473098875894108156666970154928483255658948187945207748595791201707104222888392238272418691957158331286622384080496854920131935680797011246439468820221986566812114628874542678641668521217010164594135983647755498167465300954369451390054056321999131570525605721421726184890286125053788980130243961090278528462129156885444332405620697138005188599619235962044207703859685601197897449557340607408368186773311414847329836982387521618512420506530701360566815636525603018765962737119719818979896035012663879258940638505624580129211772413676303746337395544684859493212469329974237946492017660423474769980254668676131568186518643028006634419962867661638432071910822983661551581369995489938569221603587345167403975542089104035885909846615393051773114150232746109965712382166740391853991085909103444056550622989834033907548030806543515311051940941077905170229072302156771508267780168437965075402183443289283194035548639978548901530323118436060634351396779866298105419424807133827830142668917757061647622804531069967429245977200598420150773558858450756617225243892896735361560910525639789853126111285231770169683055433320373848182998979884680041219261468082274043422434526646261947322989521385544588183717057845023748168309960596711605403876595307228076839579894646116112506461313686197608245682475436051775938594974550287554104130486625432675236018949508150101286805644437791409065320613033052113970777793387463095253953969952962364053093874003577398261615967489526850581162905548846981168316785994342261296119610125222027198593381748984776467751716163838115836315380773435216631377713510849526404525478594878654970597573093135144694653480053229051395398961413096582519254537493927717294975213610850801087699433556673413729095667787049354206540827738317454582136182128422779600554278491075643402886296541280209591639750683669658607471563629426650955717252648903206074411319380907603384279082967070210242966433993627301196690999055446700707757091139648441230650235556123195566266337176912504937807222704784604920513089037805824146104496025895623636950225229056865031709618835795011921687938103315506025623900690036886399659374314459179859911288309447303621065980042835322541648857288454616500816280883331186780316756489688065262031237010788523943150650538427825245934861652176672075606123278754538059237236073832018680220959172797274395438284201846626745292396193794481128104565857191649154839954997742883112322623380660900878879311345015021100079870529918555433543468822460928033858714588924799549446833223247881736130550860733607196652353834645552416518364961695880338931225573781233313094661028307546646680082583465018834371360453731584028237943016139851912156494039937265635730411317525485538797035409080191907831133805525988127493345232191043561023908280834719143631344205229629486523276400261914376877176352952368571033550632335027280245503269967899323626556272373051997664101701571822034201292189577132679107512195477750611246170390574212856513404912306511053312974054024879609414677450676103707130060353068902595992797644716685423975783212905911732455113533458776272180054639842279566699287295196875053769605898681576148262727977846030772308833922522338281078181812645656108402049264584393773367616788435516932562270007388955671270163187609531303469127769315514028849069356392928687826777667191034582203107948548633938327701796559958145073474674201548011100043768411718157040610722733129015377817926793414053946982348598688887591035712675130242349261107608246840434551252087609747916183782257172875767423842023915366310308632165254925952845272421975418398117700400211286665097427174290450809783893140085110308608895214216447277655829578863781332404801676624259881507555645506292214020633609410250131832186988618273042184274880894477472693090523970441042460812686332556225337111649227041731573086391176862797658769901147683053029150597328608829375540128268931138013729899648753896611000110011585656702984226586882058489637205245931444033327349816903094538682549747436307306670900416760216836101874641055543291658950689205369098521838779346420021893991919129538232387329812289825528568143537964562590074187852830502126638263023021717877888439562445359788309909938489737748091820159780219443252972235874649279289465113397941098687213506114684172245218362877760994382961047792999282448246316439817274756933541294318146568098534698382665005357475747590382325929729129251879645024723370256343343477265305488360610250869617613475882974035911328745951148603478117051245962942827832144882560090734177936320240018598334434891005395885291253102484732361407857849738999965262920246341125577618217666146054623662747573886288411075918418801345515958854202146908680156943163986492513159409575177188995038406661015443562851052167612742053047251264923224687471267161495503581240601226772399635091485361054118554765308269914580974723814074393109753414764266882774246550196093850570101471854073819996802333000307308962539421825977667728731718497862933075098270827847440078057602011909977369314797180203618075951846409247582848539964410621621423170686126672551190973166648307548668151376162528367793825998774370496110947862005519094811684104298183918083265653563246165264037093671949796056891904456169837144348365668730783581133995072210631850563871809029226824489906250342034967401383346741701372652873712051895468643020884792163516679729134569061687120906990545561329852883896088612098854959573188711420363037979815662330782361016075908714387862593013174081923238515789230279509894500757015008559302198157221505216203424317809213374516959077435004019098777535359427075146054783918162712362824652419681376532494264278603409564335136155092487465829664963388561159069793028983275119328443347559995900320468178836253206494673260436462201187481596775550757234991582773572361184832780823718245764077633225689556366563715276314484295619453919953349299193027358195429067949505938973281200976323924832544593202993496710862545469423574516045414868580175032901231202009546423428035529843904299883752677833918957230002735788480420019075162058276087622820364758591392444626646224854651371225462133635395173107026032822859892576740603189439630681768275666692938710422356877958449931492474341970843048057302940335592413210083046074977087302839714125948479899882938068673795044381215690363895674571258707726773262316891896300378130901847772166604154515635745932118383217805907512847536838725688785799931255068642404705935363292959001413268795407503305744872634114055573230502989881224057303478601235819858595753894297705459000960400375008321619580252248210717587621448669462824522431895624449984642027429808057884548250294535419161477411586771672426611981080296404839479115884658497328668604149851183841009718760446393653402221886080177251234100767108725020229564874643405066687799325486723521441539987993080549721217534595763854968447723986410377515086955793800461288480919798770068882942835902463101585876223786386622735470607695078171667840481248549843589228695379312842226545062192801544155362173385198826463225343814845642185612877254088222124387919266986197830961679619641653413850701757006407408083599668897634520770819104819394890985213569091708631215085676131717794946681143586605656732799197820633552427501153151303839827613647563620163529035167830235035081343084019078462362228119970601448415006502127796555529130177250412035212865470038863336607872178788290680344363273680548021412409353902317137124278946155006842520295133645112544256243520605259133466456951401971015966131517195418758257262309684025262997199569139943624642698114353348033529646777843540702076365178206819952651166075421734333943869351607387131774957073421503568718512162850308988467072445499371342245007073804635638239586651379694102690532665575420761968259511524890260621740574116695053953932240122698075750952889067925818433731557403445743291396603795883948378351898555055090765184214656842677130417224011959901351032228421412985489973620644615204100898078478241578444101768812026507367519722427430498538833338220330614996571822251810188425429440939992005599057339182293390605718827636637799449328474582507614251553389326327312120606237289467318617162421540939268334125246463896654410890506183912549730731020104437148830861256454522003054830953212284676897172358811826284457413210150337477920400262875084150216095659276302817339334304714126596363670941678433066714476523764633053571900100477310300631314278731269587862943125508048573499987111544607296145821692481619708222586188983644565913174121977602627533584478552157133744987445481178970783320830187307703856998121838597415609134773699968180620720612556992103663077749052224210857427726794259280961357109116770250369311642799901160442966530014066706295130298923969751701292718167220575862730399566595282159843545890822394646471747977075232487972684015856718969257457207431147974585199493913946307074580161203438818831165666922575524062224869435448180042116978861599021630615829212449172756091894365395105880115754515172636142486250038265352844810804770909736024009922271393606561561561039710639440684517792647610192433329120500470248318341408592292330727019776430450342509953791677617565205825592633755086102352136698293621894761535186100717117415165047945539395271343506303016502432855131490536488563045944026905359674302529402822364604427849781723168749683838707108402998016810587833907764035005411481838335972327132470817823316382826007940666112699121371796716126275188680372227300820030654927941384671208210960430818344854306934664056108228831226993114751374047814506407137372138171609173350413002015464538300069446353323663997876684211648196025621895702873190070500928357542267407046719536296744835700455891843735183286884040255360699650961667952352463549552201469142630764964315696490254149424169966445446741718637098673415281051996446528280001298830957896716673556661873510623886338194155396703126433425759265378808068706407712871992761077850520057829483128603666471741264139055677079853704498352456919465327353746833418987255541927302294701733752092131019445156192208640228311411132786176099904784588394931660909895344398209918145401919472195311955416843652942481650698445712537912514698679597901358916276808840411074164466768718053515317250769708709025538903147040313768697337870043349212771542419644341897582003061613939338895431787937083418933826658489279993525534817807626880705186663667883435262151433519898194987667090890267268415915829872652260099225793499030907197435774605002712855734430773681210729402437438960956444355474710336795982723147162034567368340577189861632699215981735846295381400677657576747249603687799490278188204728728683774073981030296047909291519283187035896967406874355724578166622006281948596014591442824026266784252105536787591501042248449781268121508034242846880998309097433077659348222699234673588053268548481387534971179012594252349374542961341141167427425475929121143838855820036047048661913650868402897262629005708284062264430774371111519023055442691237500707124469443348131084847200794615384385931987957995133615598271103227602356163335512206468177256106012750935910786720806109519711281977120285968499494302450211787128060862762471646306180459212740470945081849479278167978852328814558325147404670124088191438394322736414409139772757009517353491938584856565084157198767584387666141169087234047270459035089301895905740234766918846259127120556368152750036664597693240673845925739834960471093046054346013295702216962931600462692736298136055969285949914887171927777432133484953843741817279090285889454298495210504101704506078093276546741979513056663504386552674044645684191857464787914439673862682554673927025358649740812533103255096393428482946239225035964323267933617790478808496012859274549681966272491315883486300381427672548432796719840702886694780467117031413293112878565360659496378450635618188757980099332147850034994153867913617348403661843304838733288319503143267882916395992283741952919117627738046908845086789175225911337251158239484653219761520645443985508468182305578255733876802783750401299105703993959195567958340612331317229957920620752338068646943305019923209670458370889546039682696499730459676930015703243219530617557144636114941909784682182697025748304125541538182679064947450166297859407233758471097932898076348295936200648640470411272323162798688359578137449211998729471020621072550953763692645767728251153335720316829758103199922925562853286932968191431264934972592816835506493050542944586471677340817555709968720408320257114511647082135901515688813704484156398145131669641298868214192842048940184888418068169424339520764211280479152801650628482006047171619820541809745724520367232932457109453084217930322721522593823088559230183902586735162158486141158556164444883786627899997920019263956145226867256112527713261440610960143900471723507217702698172763967967809286987759326257124576288620403184733228061842219376834572531578595320594794767444529476989098696501199480676782577975596619856445661479915367868329627131655286507233664213102863123442099911817114601807126778505603029562587359559043993678280134087577906070901730849653038702513893819299962809394018452342803239559710193761209225760666973598346778396221690529791070677684851922007296023932259548566014070738597594440534153451950367507579659120457553621747668752405218031947557757541564257571508490245547553383174791529747988535021612737719436993123590194932880322607990521660858692088361243816588684041404721607415054524101026986444493173460722169327005578653787256262402276810841255458724521756177112014264068582589817759808302857836118792804175590888750838910562067066152462310880459339968738339915645478940038533661707398080646449157031376178040488490816304774745037143809805082890691200718010276843217969812418181622759540158304757833469855142459573197803125736452544171286634747806639136099448854344718395089585670513101461744546571351316956097269896630952917309480317620479643066883791261087953276811587948756615151493436252898946854604027947777102612258585801001029988862174225014589534976737544686630905682464342268764433958325874082091855143582558147048291680942684844707686521277645131231156952342773855827198740340411965948095143367012399286861310365015687345118212181657463678853549671668113242665158343247890961207863187145661919142560179047285692367671046074180227523983217120347670089106031107657314165566484060734140855034802904812171412501864260115152420097168465205623848710933510306240997080403353070221184885727163256169245594186952118983225099265815968903760261419866597503846002158433235572503141302365589014612965399795168494859521643510952236311042675172035023994920623043044560815644731731286961645168322858217627554254038722860102151695669481470133926843492843457948085192247515829950388844258008113115129024941514378793796160513060530231024649698877118644190721708327841912809672078270054048961995083189099092279340946510686468471282236027964306048996243743290378328943111268421241901428322289726242218573953280905164182161812556421509561019472164484408374845360536098563074212190842544813931445015528303623194582803057775615605025093330477898721160742048001895849674738168612952859406092587355897764305389648582631929904387830735128529409410790933652075496555738908070877109626165677932952150244698596479383864062005232256252466976261640593176695718041531239515744028893431284322262731911766351418052394968852938678636804018358544908117749315355234666312991610864323436555897684927755563666419555837054281341814047557199252274770089526387575082594672241331879519280449381241895025760332805357730945617924580473841706443570017564826104359273043034023718783071713202465306822114739628126051809090223024096728397657241833486672043942541038968683130453133432856778975419245330672799430043902361369381691628400732808100365318810722798764648002044893855755580120980723381843415491965560997829921688080231895811554288851466695805667205314987201479499544714308272032504554031088385077889252501056322867802631355519590600587931180107098914449779129582801504219268122761510842380257144392866763081698766615943087156024315871407208421929341539636395843170799219146064749491252219218313070006712313694095905438376218679078564313101196333255871520748004831472325280969940694387900450273007197272925709444882669714511739525089378084089510720352701053121106894546697194416180444161860443156642350302895678131989765037793031330635554271291079423947384596863942390686062184841085788451631807592363214042619923502012257287303565485787307773467675878109656561594371874462334200921719071114004708353550651137658113728409712621168003187932808659925093699245844209854413253853757005580885142198875233089575374219607867103686764886468114366279367678090163038959719840630619467558462371162814720646774600013158365233781736212966388356639500864668847838158317251380078228442244368904685999257760530026283609060502417184638229631944950220767060165191278971583294286664513412081829578085411981981804196849996131947405520049010770785134770475197210679035619700157796530435395858259366124331720759390076086669419900677715472651151687039798000515580288050009324972437354999013442689795912486738676803972561714594058243272569121899852649327174298914424221219606518145247115174634872709414219904964843994657729434550493485811201026680198316618143283778896003198090803470381363427340175428031374908336583076082997998224386380681307545186125422593272520662385435902456498682733006249915766886594673764758914893063766587176602504057712752079934084858897233170920398574670073634464721788830214119964642889254234679230417385790398006678928399461491760890555045135088537496521679443300429777413838335577984378638428233617214075325388001765578054922376189755784438418277606566851253905309641798541594425119968040623202796925391031512782870159437959051838778139348101085777891209510069361010334074657876314619008788450043192885478270963476463663608874931577947910126095955360654500726094398274619186782525595921992146396550674651834806086945160827773247448220622042087976374267492660654816928185853626217040351438917665235821995782009073715872233351168466522532912476607205627874228770275900082878013039223123811276792404097062584196981421544150851787522465746046436313566584056940853251452453733598890975593716411098067525624960921186004963772605963246863113669460856045065632570680708455488886937517768064498907599466486881799071071323504435719540664786139027596233130740161363267977408912249774393790957300644456064915703911150057383686715010124520962550743227560739715231719150121287342683116052230287145153844461977392010139899763606795902876836324510031453278056582560146310589434003619184149630709772223614506337915075267722864361252324428013399292633313054954226143724430986895042378233347442935097903875797873916904215267161555250856206110845372918058706121891606386198235727463730195762252616405965907446644896106137760225584077970679088807075540849916547055866270854988525057522875192153283672812051449370560416335474778221019522417788860962110528310296626531906042033070835461571703521587976235303196086260981336274706961076497413811076517946003997225969825885079032269692508458797203015554882636614522978379829116408751804570427990487242947663811172604481078618387884129615545970460776209921048250601930222580571299085994260904600498252484263297973814155310301274595842548350448866942622126124440582362648422870290602964211043554534313603070574752041622762350417564328079850144515985607202334526900627969694961408402498461024277179553638376090496492763462143043089076375386264409181739066215486375691489758820932264750289174117037686350156600319791225322382847112406839454162510703202918880111034515648050499886591253649963249202575738297557823294041314997922535606273752629162455439661945142094081963478756301042115599959385460705449560114157435625276189755123397273709119733113795129931463899311531473403505372197431606713344304360187049675851223980029192947376463239458554217421255502284337675172707725839828033778267519018421721012388976708532901449333988144068212953746017978494145263290335228495150098770989652506654534877664824649051534000069587146694161974850647326397304186744754408007996119750782756317986196206855230788491876486987236559344526824627490232063146241227696335363473592441030154529410173248701070036032799599611225261438186876417882074927950134397069306784930846348837733856343641244593798819736632618596351893745707735831669821671607304524795190963177129746018972396171713838147530630897326682357606761767339484636447165427697713067140795362350778798449668889269200918946282712010289750063332372604263656868587793989333485846225339976243807665032065798775172803873375883571222431697801188893215897550942794050050518810234366891194340715456438445972330626156186933611132137702577165496828743416397944038217223092993639548291170642543258521121100114057010984341705450082336569497441479108929122076233528783934510842373350044575430666449388331063485571499924429578622556894923227542881110303264985159168331280950081886997303111327848550005426275516530177900809726617369853412642627186696354027148306304772437932721635225863568676578679928942939769765721956936132379355596355072193162270093768332729274309973459521047624205754485570108014564935493266086951187867837767279028939059096320911471613521094299169254071029029421873587770248865539436609250884149838358704942382144856743076644961503482138408868627629287421204443254210288195143400685592000095635577682304893896376626340433677523516216129573451117017825748325475662528394331703656072507393937424453747210225618340672932725691783426483320216029899359141525591833749750218679564917980304862253361803714691387316189656924381199527754716187684360514154479232121473135061846448375386452282916229247787469901899937060858121432448738995341991012553017456964527018590685308118105604137881250383204712764658736624892556849053129193146381076222191898459056957765980001777744759844184168680480994261481939557245767654455954385902052416540698810843579005933915286230202921773488035749019351338238602661045738379932631841435992858881880676188974271713870079253552941068123725838657271339313694483595931168585220692556301080040535247908745252449982728675007357538318206288530329723105174770855694541115093746850858142038777405400128650009772227351000089347867241584465838404732129110240501651695780275697060325285846117845797009531820249525887078979618684272104784715805535899486837724331836612726909897107954418462285847219755997561587536218446725802534509637045989859292222322872340141447054650391980374176338513442576520195158132085192643596699906358012629243226958688644258917134602301658296266501199180606546127781426935123589385485254506814413816749671812360740370036995496847713059613416883764556431161766057827161664501204636177974193384619637287669841397587206689820288105126000519353392766222993778952145301905229315587694603034189156374632690381897625798753085245624802099154872153561246431369740372128429034593074360835353060879955409121107629269130857378859743909447176292341522850143885611289912367561890520979998314858032902469875934383198342836217584379860048827489698798015856492132430884939592219114077572850205762938172443321206199248275373584868262644860208284775720991316880322865278940111251395986467348244914208370376454166923104463587125859764656502405714908629119738691083094102485800243388345129947268082632019308962368956402874371824450939401665677916563399377089554359122750695407651055101127453895829918862480477919693769405627478155909604283456299410907825256463986425842388561112941303453054657868685849963157427638078084991456223093000908578890126711703357978116897320865177363489710840760897331915141540527566767238568993122675001127574857317320768255436580385790012216811489754760102786616470431429861125827299798993429920482356342296572098544705147431425196656906200244637108624590168735994160999476881327035788202487615462714014502561938713559038636744628203431955350409587654917898715891401393940694908745377929439689030551223936415236828816642768287318527037196012615453883618883772329902211029327046846320396072446666961397862853716838205543544951287932984227833873730890654330565129958465674227157673279577337690179893927269306944108594279949414395836100911558443341332560281470301143258743008243049727484392301666637479754662765505201202387914349474723195275284336544780737746514617687758388584913155897274145222061847934595538139924420689395955229141503295158283031757970938461472164407977579379958954855912238666965862825372341765360664996570429375708099550546474619109743098995178843832650360446635344375389949992677882083367339288502410363506946145612311757102968160601097477674489287160793554292318236892432147582891924137352265245128570714272194644523749791694025331379983714356557502555470756184476761266428881409260134531272888387706988234803768810764638156390176997439151777410605084303982692394521085968714827482522738557580199354282315910085717871263105852003038734533104013687571357310376913920039691709955871515660914475217741784170948450311806309147493426120284617453348395976135504148135382707778536958489379292868160959075810352628317173453244186938871625630684611651394230295098206768249377323943498426396661120135913430389563587114393851656675514046160982795801251284934488937063043429202080577908587111045963750412936063084879274971785918393017073892007542358795011437491026688035444514170793655444597765577069786527785396847603284477822683268105430867951814382362028679032991045105131435614062759831598196687322203390732787688575241299685631480073294195609996150160323067449577886791530731927650932311155595619210633450676464083034202408367684193433955325543746529491920323887471449947102261987539964867330819087179078942118406423639722833454560757987461877528944725885435432978899538251717361766762711647921473768893827995526250028409265743709297372807029204102420000022347795264550738578993164287244727310477404398693182407638316375998152138211806895068559759589591498333661395404162928165452098282482379059243464630521810832108019015162036067771308802232852850824530970920590320853470391568070968709470268237728734751695230212874079645702892052262403756267324368388473071596411382842801761553761399644073985237758752962058047928488932880960939556232261437770730862232869269113273948146595725195721279513121836155688951422876832192156921624504456413394610922222617621085669586690337344087063076649104138354002684793740839196973229165019177206793872955401648408699148776713882067391488512147344917611762136213719723714085882512759627695702059722184172945205435698212138229602085454867975644335876073051808816622376180365117958251733020705666772067764451224326103690440433840920282169213919067555103067929800788817013372879954695415070768291997471546057231589962211346144765105727629645122484821439808071944821557855249721908962170271889783672535666464662599599570859229123069030992265219496754497754955881551797812823431903867426101590176467306310564638948459091723393602834893875339333091527770917256027345147046601399197080723306780220821463638185231780502086594075978874810262612434783144934290242593687557648113299977842737071577141680246227344889466497313067336652158757333497914301560075677158885371734775748919439853032327647818479378978579319852768472900309265267882350256168622799900792056327121102717837834089391993787930715258705140463072171776051145366035500486302867651276514998994985690876312215145441619512212014614461210668493487621493894952705631962411268389889854125559433039651492382381235195822996105768352007994018626066419242346271283480718789589439309352164409811062422901832151515429171639476189788884174783352894049595113578400862223737187577760622139530823077630276700975953492445433871401615403460273480316645122766396972909684087278347713178920481059284572344906164480950749035707153458048385529843326496968177424929383732047042133061571634042819261928999276211568074998930199211397384844511499686512670750000042931665557776118747904161153577531437128580127273011536078781981133858739829398114696106955725679005495347597428062882659973506770965802331838500288109290381148445942020909466422453699449290678197108685032451418661708288325862632636108108549270318751988005617085815665010431004654472161711130027691329114529193789914331209614252367220453977512608055437566506111396726270842886522436673115410236629352818653264659024309018552437222301475649349615077834367450909484887290517036192564761198235164240305344409558516331281055776548013094187464029910349262808851801267508207780461750458125468806720633634321142951033490058586077590658072796811645692663193536897091604400692129928086649945510261327303510033536868660985155611780129287648710512791172371401724861306485691023253707688231973494325464326329060907069460309764273950420817939733777208813108779189153923397347140476339957918339366165543636206328416852837888877632575747369772881696928045800736591091514991119258331976452844633046703164017472719313853126889959671367844781251254801828777934358468140660013248577048278437767557258527223969143086737087662649189633651437652724629514421800709173187338211702303483161480501421077400941360354050568697245236992348916459743250374420686621300404187453987169694610000829395847058009728097809779668410238990531711451194508396641716923380417744166573574395990978276644568074974353361904841846058072002502874641138526705299337112061792919739710138888073661592539743497253605422988929725433954407514810580514175998190536129128310821406762055445943333288474966214559183396731503343476452412450658409566493994589802489323101931208050076372524470011834810884539139773739788877759944876551729442956151412413459349175115802190206624930490552232930348477377816327384043566701546954026086871785364050641910833615260568202414467215608501866872493064509381402244225232069032963528123058797437301597934992589049302396284908253357466942782554965837298242795890231481430620016714950772177988723846139373294877013695944125279669877845911949716234189395672343440985499332716460070593950198043563134035041088445267672152664149648468667685551908694531972037310707273028456192886919316094386087426893516709291334918875871844137638214911456059940490886217650801100713744838987932850956670049328848726890257429631424977940148353680428809216028379749421573364881830918185568102314538418733753300848603960649406947658212247786062942797154274091409731256740670484487546068195588284585005436025209291872570267106584768616360693683278603919818439361282125513152241159643230665820452025044504171704254164996465118448807969802396225425946417878046804711155576945351532134722780873706999772490625320909074572754687054596550930563352836594995886430799443900523412511075383475845104316267170385530659088661992183633573893954256068672301880274745377198611189011724767720603725232331338897064373904903425211348211114867627831258289635638645659284963837532566224259334542271545869846502160494353590535604988210085713743552989932978965426246071001238782168717777471344110259109636619158769233158498098858764342011455459631611937698092218816816646368418647529679546772002184604864900565111010831131851205393390599767781062141315099523885297166162874637725776986037263571767300039873655166820797814935320294879891654333018543477381133296140219611194351779283884324343098857154645588548700836556519778173232211606754193467403594231899016719549558832466068665100793327968382111171879499895343833749003242628273919203738084326813141038988217815716524387961343334497213242660956089821522457497847122165175545216914030081684051220585254893656327406834064707923893159893624135827101911536369012577951112005988922108717284303115180591883954331970295733259772768149447744506819428066359721535910885511423367231468264004521738842504821453193496616519047892422993536285500911587751037228082905380174922889051932756308541102379764475112569993406963165767159649481965119255250966873818665111411614741548105165661777953724178772473104526014374179241439825967660832447039229237742121087481744989893346045729797295585565811984921089582046954289907765965816990188199373250862221541092682448427169873784010152799390785439024746030745255349332516837886520236681817916468174859806823920551467270211333232867919815918452937335714025318314248321530008736355975215040776180722892634508246139133563732868222647151222550642472663300459033305998461504976988849194531689108102300574654836287627410150861854175332957740512401024156173115732163548695368528332374307730262663935025285356190412402942786372654276913938132006020075591520991069397310582884898338618912792629873835621154396868392073715176735235296856988676780535254289890101886755321223635142500484601389030559832908482857189716462292111863080323582667449432137443303883319562470407545451054244201488196486903496612457534699466559329147640687034116376791845571291333273008857279790077467792288087327757943457812281153690349258791223711905014610419185884959195217202496426617130650069989288032050834472385069435449595138406669756119053866633414655673390890150153788732305765415522164870387099830394997378392200085407137929771062695433281555118800380445222162955247093601971072211819923677210944423912134795176647630811514370247944562257909294994576264713297724503290506278748643726356459249981398315245049339950132634146323994850219775597532186888866695103379202047422463227367398760972713975941537538806512543397171457108424410083305263084089652053884885784133328214531394471250087180487202327453062041965849900739104820841726020793111583662433843020230420455262113494862889149259758737475761026626218302272642318388507801935552087048586528019989788073590709817360724412230561497511909740739702363586354795532650718184062007958591231651103829915923684949374387974125684889257375563108731990461866157609614597046695319556201578648630173863540815835558345341894999835639108585267016232521026377379085092548818969819002364754946352273620423949522152996267623328542714774050102238498165360550076633551701634550820271134497222072193977049501403722468597124764884113286462456738472103092503784704048930942855026375163184118497085092948978651919925902948118970537421791917404715751401426801090145231358076072081728284023027662089420336811966839444072356855318732098097820538916815014929297695302633159497423487003553463758044513127022651005805537664254766171633345998609619360286875384867705395030607851336158258985081271396275026725560781277272611772931959263405498606520788922430121607583671062168333605055980910946770528816616031893006555072045685788559551039761279926650270139500197932611271294780983383608674915032704726051476600014835269406096992272146466929499986254451780015810613536228386191416379214969585441077998362005938621419695259499837367587047412751414787607027102271588147088255369681090753404317275384868508736220086916482659512441868246641938065245053797358602263291256193302566678280784188598746141249711215113725789301276736861893495200152273279653748194390096210837221498693973184781614256992203496174750076311222941047928608295917858450792241067165276621450527264691950583942353669524739467797056348094864079246860889369106363665718393221728441262383591442448716709662019404270834628682457924277629556676793767431300099621327726336337887506738534781557586302702352625287351266914224443514022967521972102703374512966590323215899560358154168989672712345400128407803612205443160209371660124758622194060326186856147474750188074122521222876360571394463393506775736852991202624130904232054647263400575301042892879908779255860146379402954491116474210358686468319451318389852518810085896748380249622924802508077511987154198325295910600076668432661919968319232908639450813329425699818595425234630138068434728534576852543990526901257558749713404180755258711268819802067821120330000771132250306197752230142861782770019673672257164707678542709410374832380161440966219355852919803141265033471225547229134922405254499207486118735588942484191569243231859422120691787279451582376223130922701035310086923010559091895195865895797640647487926124278435076199125665384817129548303177960946615872765061499202487650786837390121926769197188378459475573301150948765269776770232459559883633041889432357029461168383806915534124495443881372009970554813867940251446377042715825729403544090385260441427647428067004341933588126905723417244066203618555761232922350597073609451905059505965352615010767321235696332044677678491230755696161885322532353088820184184073807148561992387404802833032542637665347155374394002329430514750106871591695172212067933502795743217570699422671379767454981381344578244097847314466437232496966253753266593875635305722039345646245817608090614125040745641150587621595391095838655284075951990865214987917673542125469215611893696113184311495838336826496345383426345698816813077457608773830712677098067708330063253786572301435239572597430852615296705899294197811259669343765150889159928639554841285550972953333072822728550069660013205814283531214160575504372051846505229723449367925392747911174575384026895311498228289711490796441717186979389787261742785597914030436285355567697664871784951247682198155659711433049445465457885008314701725226233506493662002102852766736036145512956451404106164791097840040993512935928909634724062394549656066685306177985557716613082216509870982499358409723249665248650166387332917544681798664966487839226792351771452865004349210550297115583391262185153669978221171517124607988889477522918080093556728130882374662273368000187562732603870148524075057108765014230588726491609946549259402105525835094512445897990353512516800621733508641672335679306379285452419878115105089346974212861522394507630229398594468030499134420727176073800486899315467703544088662222314009031530876233832003121511595544521881098314884526204025055813238776843913612959271743712532433420609569804733384144638716564269805386943871558413749098044671720974076722237587471504107378324248073996796494743257847238054654225499093246239489798721104101064862674711426256383069624685446100692890238846979935682680096733365746267923321377192260745451451387095602939571057808451144936009929325867273148011062609796108362280571856321349401813943091438139452887792197185317621925283654245441348383787374395641146516586629975201211995196285797695613190238699380559631915313923299983163535454456068016144362223006594523977684096340361480436347144305716626418078896381001515460745790256913381876325409202060078528812896625116822036717772952299723442436083312679367090628271378314235613104205099804678188354480037260921492731875927809561318991299525797321709933285663579782193022597483856277089512358212654569011456050555665071150639986501774541798138274583022136627250625462352273130300428062509177645792943984376257177133810407651892075996516477685323304599899027023351944783861302103185241688301733918859586735730140016336376322714026950718770513458179177090996847629377683355725009046480174447809095062476694173516758729070543966637078919222600469581960022176325296758930635009386077613036803483457782476741079427386976382815900395016226799641780237120900599948154821805162696743755239597414307284271608346205315982281578857925254430841105838300404228259333864181786921519295097328536663730488863793514886135954112207086835502378657501230652478884083688369908854266897547303245412488166302429495907227210737245463922127320827414794877831256938119984359026989270942801183304562084941969392657978005717728892090116431235771985533080984154493681787899421353910415864779835584657931031021959534857638976345557821237924384346760946529527348347514924076641157888786547617049847682135590174154866242460231116043194827897674306648418669930884608313291562786617942187312958173493765397139852046934718774992891794372583396761531991482071442726883005392722068134527027572580051162566951803480203098250974995207736683471610875005149111368984994806963671088302990982861488100801304210423261922680321685685526045202186572765119891189494737282974072175203491220158464937271124919247989954599736350511155612267434437562269787148623727854112379053655899934496848373445631104245232096752127324246866170209635858669361552916696918377464887489278332496066475956993290125618134877720781193028602730082935557670401503848016698302129122294677288673890216037052750667752574239747715584288036145605583325324228262638859223129404589742625753825868652193572519454614472561190964009709286981858921324269593860136629625729833063414792933513355228390198351459188782609932633428875872336422811968163672809389525613425285089319825077294770647080895614768232645598669155140078301120601956144950546774442980034263729053085780048689579661929611192072677813361173972149093389209462518058853791183063871533069255125618786553652216315301354259866865242936294815835982925798170897114254662180709074485955975870055320083844561850132710710427920639098877586771195537644184474878179165422876149375835117402690842004325490843979423834287100246347128563186176269250085233308933154894309100223624627491173381861245021635338504564435604974225368503610955665538517903599146016195344017829272943302768295513395818745996321691614825367580081796110321247988273547339612607921291827377526806963384594703812499495960132616834893358674097362321249176765834741582779073381228752053053136475513244050000689472425748464145415648761720915916170030452287758601517966295092566912975577919866331708557646904320769478388708764550395010938021014786206873657184835976790544102250195090266719585315088933187169456925595787274959548574482554105511237472499797510215840508743670242210996977392010679489402790523095652045892803307706206283962731738276303607986443370651516270619835670017630343747911449491697097423378572801593486715084607585989474478299143320322182075932191803379810912709471613560448187569636292677346233691373027370868374142568808334507376995373959174470179804525467339002063164205140921397226516188336582720217176066114120025312899944210549519468126981620311039881785244668331464621726342749610923044194455131385334388678416652896360589386667262377585009612041787869614138289761111544128247444649810352114481418107693359350495027289703350311986319106770916102450033385055147265874572313510772831284625170045977594565674752647471889529412440781024635457847460556298213337072523079881009829458901044410451498818331799788028524853723229412908695958950566622974715224283333761257307000503499435167449705182934323469006655113572612123241515497567411421370351388898651490259282784652193195862424651458969672352448693988147489707011747571242516195719550746282769046930312335363605561556732321015313648166323506249931865189541033481861965515617469107945833926429597784983061044014590521638648464011640579857072155339412996425429999640117234925929808280787394346755992077791191211857328098202722406795688552999805438677168511229622164130003574035118596935218763332524417841253154414467138306269252001644411688717639997741963493994175701599914876465537295656076692377219255027162607828480204831838756547624367746443206399992846431137890091789252173084447196723717396783871298624089453231479270566003623755955150223518167666904577490981617063453492720721418054266119100920784554282932387494183590422278373270549140294433257738900690777262889944940736615763868493612275277268947959468264884616246938883471970787023164703620928292302864526417913173466795781904721152538940273703480701286289587600618224716764206586020964180173819457816095354122991400727724502417500719718503481218321392492425420759113980165829905982344410645946696320943167356153893376683182654239690175205640888847111260444272915189530292993984211194771679226320928200464833137374311783022358371991195438919865668105470337821338752701249685432195051324037515714241888276089678494175246443190516745302151972258100138337507433959688293577981766861715159131685241560429409828485370071592061393926244670329354857644337300402554969217323908698352917322607925069930426863800584710401032562284238106858673616618890363053924601888532678291572880000421193149403703180734174971935451251459705449487770963358358553407568858386885806574471643138988333281130371117975006480350414801107347368012120617370730505807566009076976965676206681142957177911138872134673708367064326945904959404138454972490186179495331499771996219633757052512947695440304149615785617120717842890458055055716352509402445588689237966160628286898112363197534410681880849145098321426748586787820441042250668870761222393362377001592970919604054020280601841469559722545755294497400975578269379506508029006514017331861993894562897020087541983539896019645630062161530230666829604127950349227926455730311157840453532729051827456971444940158537714218322778719191522982502685201778756871822728081966238942178809604446562030366895309222263347215650349921399316059402641407313997354756800639522844099326607656608299451613747395429236730938718931002725041181071476830720558064168463708808523498747956937211951363415042260444242054651313501043075211834548071722181828520884870479150696341320120293828379994398543708939637118327936640137753565429665818579731727886735313651900771036405665024724248047020916324950978682465854177537967451797214425857602981411227402925221448891212284719215037422045291997930786486616968448030042623647616339537017677860607782823045514852992363910109138260659345298376658083463628298011090268733111611315256681865299835064185424022692656715019106584520628459088912077466359158116204510687237482265538314128094571881857430795725010814382398506484398710367446307289723444231617539011607198862637173790225850532721553395910890849881455762650066959103650346881829273709749075751718060578228766053550537515036091787729821132451236684954145835561014315864818196868393962135874020751341667012326391187290603355354818004205194578612460216866958562741098546464811170011900411194729056374352636796525398535369083529759037822687706499055339669176960384032452581560216803217053071468382523922468110556124277375281067487040471029953534389011482130074531509942416044614234465759725909231232028226365925319875976477453543390993700206545138280304675086505657745029952190302685491303945868239044170174678921902074189453081424743226381000570999034909512016923783869314924306462630658208011105843786553868848740366596760112663867527191287565286753605440314510625322997725521611853761599872504580903588822785761972126227319796702422459691464651096717490511970068624744121777563298597388662092692006901993714740426749572005024645960610504713704892426029376889838481173090042893669359328173104264131861454799623838326279293350429422370821726648678880064425006257384009788122790671960172463904833949814304573974518885951299958783671106856134345807792021966222239241160351176870371488566256309818633754167489497642688339345355891644354499720656848439248334543488501011994162607241716226090259090587121151188257981989074136535368246255367300819949113584710644002436590175286574042062967894963125478226345708629779874630998076553238836120800106078585235901523628205009579872291072069712615158565930196408376506048640399361373980965425494977720231325935656397353514876108873141204263939924087703322323935225329846397425873712049148256478187287786804057315681950473185604164210969294113590047336251827593844212176181815424900553509221219215816401661637281095807973260554854131705992620993925134276320073369131027317143622261708572428902801354344506836834344571753356438651920894005294713028495415692340460253475344376457717740970707017945914176499371724697912287117856861486787076800379491306830372964514938697687861106184100485288688804115992526630286204915221366778689994814174859275589862471126784386101497435725378321320426944872206891413441000514640936979745565574216073829629935453728499089703363010956989547745943898416164982315527791966495902859063301331147331730217469861318688350270540541232073084258352979757837318182284023702194729250060658855451412834743201040906268877405898794173235301929246976152444249839050211208513742046358465554563408890167696829546805068975491562682096238877525740529109852115763057308192978066154125052692474785715511027828326389107219958642140587945492446522859552842824439346491365784959846741056097941028899261948718099904905811157393146240633619233234538497114668705627338252769665992262574774314452077028970361133242295116274273752160961603884090049513017773419734910452948307994097817876086868947489222711604581954903555528125760418040343497375678909002655675133906997306518067834626120456904711989735759716590644184211031865997904079874694284807114579948152839033912487181408940198442936746248653941349004268833326412284312363841397682559043902523957161031198245341222635719045785930388979952895512324486690523706253814664781276371861892466685278419491789192730952057245052249739170399846170484194241438205102149591226549507511913354323850870665509089128785219200360083685034248427554836899577342138095716280341121170825385221384577575498758596327096278539962310570106997051909871510138693531912831807590606011795886196631643764137488166337599363077766211801576064898162458912192357715159015022937193158303354937320081982552384732410811080008813843771496587572120740173871246702453090111761558610852778211653487669007599160279404166289514421032660237038682095552578227958315633113898776393473932663797340966115428058190360959376676679591572762871754290561968024187530353887614147732859087859297936978666796902045362990566595148585394341408133896382399559435487205272150762482330048277206766608362133411565338965479177025612322850939144265035211440398349935626996860800769552374097280868831554446820952514208124158010985542826791875751585258937677936324019607842435408964630629865358541112751791907555348158604009784678419969000976407129122555881839066981923358683221634713808117713109492185275785788619459950057211665750792117869173021295536478446296842546833769041146489762898562800019198997757018523488880186184306805846993501498022582337009576425741310771252052412478878546543683966274660688704284128909175938986994845722661880107840410958336988828614754694027358070093057681476394933504090429214967777235805185002714031329841071477985569947642122384354537249529205365337615571118439049365880857005867605750761041240177398871611655630876736594048623047366301860662369596978055322988025625325333040239521506176787217419812768304360736527757204421107634701532513812817436679858559835143432420195424237694966197086367785370969530819331037572911778513360154068795192738961991097059114360397401535875139110533266985897699413809920111574472650814977197371589959890042454164044045801254404501708437758963973135219699285165432915597209495780256354505884580656723517849478518768568427541169573416611340571033979619579069596821146414731747467947447263128509324072030432147949221312955546701692119561384988690071332434733250769512785921621328516012990523016045981496511941605887682830581320557802576057218798860326274427593880772828978466659914468928302110153160568019756567430436420634152822210677121591969511950560292994816490368203175934992917639407070376164537230889407242298891631582835572088590949549641959114997071290615945426463501695727973633228440600351889805264571179004092932449664413475268244957247448326121224594423846175383812570866517523155878528831117179958230100153260509703020440884220775827133275889972195913733239186589240949200419418601599383507415607283829102818607644941895810839045823646198144154789280623864418828707036934463191921951829070375840487927478751381536562785317422116162915669582548180785887587492532793803828107564685118787914115792685563559690260075140608287292976683417593343137526265597360971767242015312842800468848382095915006528378355178790775219371138223923155289052957365859494404983133833916572288110530954022935932688089450777480907082966238010441732454620114535786290528730627384723210251548725838383961456437410115970981812128725620986188745843412492420374345033767303215056976668603019758227155152045920873056157614358210550135205742672443280568980160380659992441601683899047649811481771762903789017167531223124571230099308648910727338252854777845374382121539530837412910774763491578858498168272417506998449910150155123695130630146966116189928874564085779220327098188689893685575715824248391102328988475595691960570139916775014449113882668822079033130349676746300733816335608765286628698472155812585033359146861237862166688615424801956257407067980644824724564723931217195449936885369306942109352125816983971853311131653622195638640730353444628154664314777348520525305840300855231189708963615085797617610518960874642958042040878485269080148058467919018637543189634342753362575858389114512128447748973648146091714999130254539690036223808634445541524239945676523097161071591516093995973804862757195476083179565234338464535326798260604327117826006487918819050828196295663863369354425528196456828827535600347242887686080417332854733514289114133601092350767871062082195215964822656840074683680581721481417298445775332453604992912328259958347655273187029332739157175889385128326112420198017858041713459326628866209104798197132897444018361098186240041519413118674426301970037070210608846644982186107818421001602382702317148836059048153100757885648875039088152867976884928860089693290972287060774573164324593350261851031238043944624409162621256145530701808519392041720153585835722299110675605583490208203078928903337133622919299846060352087970806872451695727783060168414781446062166714361623665952973434563362069736644091121100995740773392357697043809690236030815744427680829684001510242921646954839586411498696187322600837306400589687981124286485446385492377904013863637906503203082918420729977233960060641420034586669059940864933288070052622479153738964951813880457785336561043853346422044943921366834091513071554826054081743510193560335454188894452840586540472035055680716833310174085710968838283493364186418789279919842578865011637083627420933782908691276739903845225082504553652720311975099778293430435800327198041657576313431110486606529394235563296823348868357562320051731888843725741640286339126256576520644819398290397679226981034748788235331441712734478721718737249763789950793076159568968260941527534841457389039564424000268808508841571042159917651714432987225542581712273816031650009993066365507984581309363597488669449407006572782106100116695555774001762235458666546806249924181916644780698301149484611581278043878732867533464160875010536940310251810447511901247623198967529944304384231647931608024357615020719363323856640015853576917472961445480479214623610319206264285838997652783891051554529925479942073076842025568002623131306182255101694908880224431490787520928166480886123109554788613696228826870437493567635630196942938851832758599827815726421267178254241981672882817181565170323675075225705352732496564978050654286507268040720703660617766888518732762983656344136406582803356196477111151905159966117038032288507023770554331404356194549405742858534008170283918412297806815546795645340982506591896892615458205704172906604922657405238514103560245434216221496163598322651357290253907401069194801475260115605643430034633088508140197958797907575047722222189021343547853265579965213857466001836542031574053273818827829451709752743479888092541412255211064466883488411636928014916853324806009379329340241149973172715149803190822405897392144862124157037994850664163715784661265492107523245434748924449104320128760508112477237860857948316381682723696495076060466501489879135436680076971181905220372557451020482291553475412735235167106729503339071462492940282250458057197527024919870321085569950204370193703094546237676361639188240216897391019462082776998803621537558795395891890477330141055332894889111233461380665668673331223534431999703324318093773171184069183799119963343166088418094572888423068721362771266446168064613559589385518971251195423225991678335217682271965313117085785712671514293500331959110122341848154234254220780887390293645419292818010542026542932308894213263338705232554215591948808131660221532998164285706812182667979605070961202981534679497951196807805950133538845837771706370578885955630133492948215175443319697734353218478319955954789658224959700537639498727020477563644195210111767839186777878374110574955303694090860335350671546165423649621725601794942610483111927131898865437575251002929630111450746586632445669550606722200886072331795040978609634796394345901798577083082278502987616287366832743368483528011899301607579965870089206531776953472078461616056556377728199496488963114591821078687249251072267884672945946176062189723353082000571363368712531595827131040301473279059152933835867111849900503326734974821998133176392858417799738705847842578544119440744837263053132462271494693141214477744684587364911973395179454080444366469722561351779042058430798950928517471524060122297360741406205768884504822198701449038759908683701483533877376100798484373644563858857056894689234093229065894350153064152509102404976196148076352264625827458520175305654094773159472961360137391975636741428951787875428309407712014688792980828510764527136450577025374369248275140864431377862728471933627921884406018684838897221374238254431520883511315965057955312042850315549463066989574972934700711143769020357408343748583970357216344767895277190622931255201985980292608549682419760117242536177237767443466362096016677478660797665831686359734314627367232925820823191882290057664388005485600143425508892903330497784882070435851506393168095238983451610584795882353942593268610394295343076259500645589047124910768189138744247759673789710753805799077004317051296584048185706397008025136495144398200835440079164551571203565941182573798700428257245579937245528104397883323295956252760826588425957711753047090201663685965972174670047010160522023935865716924912073334902782727300735894238035442162296078549880009944494304022142679389172119165720501499026811533104092480426121486838868081162093790094460969039055712120164608327975491647628751003019510444618299845462930559694481642146640976831658752847944461290319980914902753638800341058973669267133869497147351415324557604574732144622371800040383961435263201101105420585737215199211923406403780971538048863341104108329262100766753810045303448216692316975974037768447466118699535939407299590443502298511958173956384047651952050343451599324710222585307936471512464728822571250942877788743404555152697439121927150609442668689861485442880272112191516521625390882160389708167944726372385885154351045195480752411850666807737740004407190802046715480322364920992658582372381848319172029924701486105492155665136899768523841132485595351055889995306806369376443395706967359964279549670854314300557412328130508514028463342789500283454482302612534493432299749124236626642160390833473275984899463684620628267342845940641032060364964049157825961883105249724361990657664987517199258566188923126708940142806471452009373538617150393479131188603521851064150711531749428839819749176996093414852967026651560973695416564115233195612047370669060505763652187276666939917529835779391250957580208116907262879708303921239600620258759356374915760561874477221633208316255094005759541950692755844970539521498812682418237008177593950005641039746797751676771886709837303210960986955546482822726931572517319564873190332356738595477205956444767886690329332139113237367225346153578805008992040978484854685731565698287249336538490013766761442461079782428995695778345704248999167843076856287500300733845953209395418929493598037091211909650724135026643488811416367946472158225967118885224548443771884701256592890496362286871979938325155639500059944072992743593359611282628917289553156740002165662635648774453372373716155373929067396134436914393846017534242123707526845355996720202720915409932819088421419912361756202297792598361406686749443142692853807008001221260264199140261242795571144538128158897080408867795410131799266845680451285672112769689616044716762434981633907294047222113948682817188867061442835004076147935283249086217582491587419964835379616977114540749919518878369745969713239679772809877133303905841718268697653943160459567876813371777487905283611482323201878572608979977471144204801368160925138430967951135833114427034721416080724339482164613188218012507061480605399063940542647888228112251464581208015998788448940419393079693817795873152947731365859392493173962164322040447235961036728430030063629353023196392757700764672448189362287859188174472663974049910400378817367349314848431967862233604342707971722504041430722011168009325233067676157779212015445410640417362331360864950253643709343795551490130596615358439305389304909820226942331709464160965953802006431837576151991185150355498018497854590360712199565890104194976628934131780641248716707975457583560369879527784459699629689744284518363122967729157471574754409936662317011185981512502422113514538760678718794877792628903118144900560914888697839695182787625106606812203641331771411268437135424799491424651878138747954857881538770152576423860563692906263683991001020240031112567621649603552423733749773424327158797603065384136087665644090104757804268954222335368051459067535845956865877218486713563852829228201352665566035485698341514480673130108128109740609820229375198557042924533784425349269361698860724251221530052108237144874192191524413608404104301971166573047737566761711253809741517863723879839744295644301211277006141150447708948625732664500013884636947198808147309668234861879991450000769061339130348888981035444668401197991048420825052586265456068894422299643586720462443664310686127902261912874358127302947712304275792394682065012511460118865698707772339914277492731350766259541572456296680644673899714171547931445701283723596643579198225162965974805582641441534632286431158795037283893073921774446325735623416087017165070130304239881418187883094468969214549571423301083735218100580975225199522261052216729647020706399140951645928725763039084197744906084951843862661292461574766620141057588607111676422308845097549924567335860220214549628691915341622563675204986802942760634239274751252289577817339228732789495798768290044436666765860281190558005209588029409810912497826281160197304709713698078081256624262203901969204493156800492206119695539779578157692740333169554150371184647788716270408387119821708806989683721632599671885216545780286325868268571157450365030178934538279884361160734766152079166656875929126680327325030688179965739457954880550843940619996197000492848529404502300092979801480656544577729443991569439840594150242765588351675447901038169552018540984306377690654927845271480571917232377728474497916038896639041724412641919336009564459333769558453881848056903492347803008190208650439364127828963887233682282751891230182647303435207134657514923613560945700216124856788901537503438033842401384214478360545203691930612804010247919598859897581804617188344793902897141235117471035316253901424111358658038142314265277900848156917476184791168734218000438810881356389480941146496849975567740845959190468105875797480626702956740689672206597579023724469602565466153470776377321946868969674993506782167157341629633408651432106450067598631029562518339087085805456972009101938043369093395270302844533466255324919250064873390598956085522356878772983418600715415917038216520606639216523433867411516138034528622605648849648769668088229909859514426413651184153895758597344801326037708868104143461102265995977314385931538070987350462351079041919463779156115303310242368229119523130151453985253819021151622704798502370904689896750627614403668782033004653432057493758839019636262183748088540123357160419905877751735725443214871400837556741842031558612907647834457979461240606282522619340457255933781500891162178694587855689571894827852017898451744067559498086484787796721529833102578187333765736956792331974682576411307947495600332734356800601964477063280700695006268592458626308047496943214540424768244880636179355744856584346252147290898999679033915807961204217782431895067079524272795058422983218614011975117885338640956448288913103267661670568898840397293071297546736488596539015086727083220938005827702582244088063395380565413167921367247055280323766939186892713309978620821272332458515631780404294529635806966752925291696312907168262073048346031197468376572078703247802909719811179716787827993790563641761518596058164993211921749970935544746765101864783246084549314071774461252006601744680034540313987174935006707684050989974009002800730603398547067792612194227748725392094472719193827310150945927668759668384073462210108228755257437447671658327523376129139109189375738704528837974342163827694767770146662480377032926394108384341823842100087909390097510209808579449683551618817936486216888518125910412658512299912308059290422457026609249202365447281331674755594210644755469377187365894920467622205282653801480392340123754584544975806820872465196009534068819199429061389725417067772589371368494918102100876796527305430017035987889213762081203841673191683101928895680972048453535412590380342317960346431770111804935315778623759681459798412287607746315752590539158497290447417996558853228949445569524767730858613978193275466978110256276892282192555299908609227574789849193232231220389472402352953025897976182559080419996407765509778528074568494947100625251753446190098683387387935113272442423170151617911756032217915457992114322262845336798174457977433628839272976519534917823116789249603340688492791760539389230766676128326514399362575268379360177935830279183776638827560637425818475053235086632174518880422890147038405952870549768256407391512674542392857819176143320391901383633144700119307945005276829152823794413360426690214763120023614026331067618461675316082690767146059263048604728059898907759221372989653643184090798043641872644460219546613771244607601657843821728783707031682713401477716787884416020090622579545095357169979346371701402751891098922648237155218330539503757741915390336762554312229482475735268165326835348101324547228051026217511387611410787887591951710212347846589636162328475874489025840789312505258906245898035378762960205125251865635421787762922996871515205081046874592271971064241006175657375162161749378313769044184577619107641500087504306175899162912316906852319115715521946266164807738354509434698823241473829654376863658892718211044822085306045203776041064794096675362612382696569390017372996528403065766398094936241348100531641641395595526990633515749946498984939159220740047596472522991744963718121468319350849313525574315707052037657668398040259454667930929799466528617027500078422231525002251209829000367362520072496475373279782215872433088998943296544944819860985785893086432234912622285308169433486752117499178277455954633794665973608842782641293170107935748384268439026148525519485854476052075894510687461382873630407492989513602993141588879882418829275784520868046410128811530921461901588400728938711821659830811382190375747398550752447723409907663872879216886183712945594861766589418950875921973201368551173952300578865232581019355738658311704965385356863148941304544265437157702041141677725524783985580672456009588713647019397393461356430536264183689316648516998304987786857423118835976316838727274073803881887917255525342162253122468051472987491436537241098460109765433128434905468832751317404314122856312592180699609690978169536167875716853530337670597482248115734193363405286188559955693987436015526758061730683900140575924570020039627846746425023741592379957994291554069922169141036358019590095345309056781936126318376079385199568687552169929821915969936074139144336491428892303682145140615698307704376845098720162099180098995879327254274905265413248811780186816607169199309475942327793534019984730489469075910923729475673516331631259828749539885213023249303937975812080772383803148951983641171628728029003193919870056121754957012952097855729867939656433140068728750275750946738781274075666270282403513194591861734750070473668203071703286797114232414675581567399644686047009702021406756094954267868012767850797154361876800574634629859929186679718831269459199777781082371902002013388685881905290445850316831651665868141170852862431427769685356781411498062102242990875686482307567156971112009824210890677026552167076122076355869259975532141948840158606652955344184560678822104445484475783731431818660205091608077968771429147347116686243283487194200764243110384239790439706619843717380622671257352424598069441957844889217254227019774166821259330538788641708418138470208843336522782600076710855409125061559170162241563753372196076026117678533931052545688669219945827026893847416937029116287297772848108281420451066772719950828755415895724528514145609075963896757195864380265706825794988482280245657974697128524293534136793715699166096509396993518947790909846147115984246108275600261420691646847273687092525974546629990001147998134312489790859338785005320025992740505813815958011978985865565320998213983167710523584172627557299189331773278979577909446270987334192320297292878355067952082306968628496987162786763313012158241193906432897638885304256290094128158906556966891535025972081168482221235564566407237560109271580267795622953594693515240774809713253050198401150606908632903731164555925171533188566609500878336634300124613931851096209143804414725134383615820517694197713776827148834460441657667243873874792887310993359085256960529288091699396589544956201186194892940706970325092600041240087655768431838955054669234592025307387416267494901670096532386646248966519236272469344475739375899988619735102091205846080097698798824659400300264089468405464085004635065130963526774218029161299167157160955804699301053050298144567875918996336319876701263208926262084104612661574154482301081711698976457374421716570560709029972372379715091250270288680713788677067122712224832425020360981618218962981563488777147306014391882924488750593232034194947165994521999168987550531915009578323589098158499822098354460354917578641489534778065024854762170178624508964948736345599608821032132793838152734854295197191100753071114254434716989737763475487435987586146916399512645000670625010826140746377056645728155815101930339676626848806337198645848220264562481007454862492608430339964292552325788071046838853371481821564263832950120127427287322647769545403134910419331085338154794579445317493097213301609353121039888614769364508850997469033323593011404435601716304797834177061651048067400890433381799018695811526756507437168429608712088081802974148198597562536938334224917947681761324762287976851132867029833406072260301710073417229719014584200542209360632563362410721700407339770950835376891315798425605122146901883439470622687808735742143296166478063804078506551966365085542228954987490659139003101755650776052884241972971120304308294925130046339372873558418044582475331309454869805031005599739781815775435756850262951986238501449423524985674041109921623824053212430284109136964029774630896548315751929187139858825478739954268175122944705286835538997436123442349800552388533981333103875603412732879703058490530049360916203547465282608722773456591987435661364325415070502365623661636399061928733623796213355788888585956860793894064212651525618831586818675181510839529421923795291572436501086432902174493462852706861377053879823310959734780640346488256118830247096371096514219548738700110145980007999284779979186081181568465951122981794253615209590489431318017850053884325089705995232714112547969421108285432291658480160312099245437317132107964716622168204710575517860205726980668164457445048975065982730716684637563816787131128010929859166303332301527052579869770349366909270375929297679201869448754651602073071713681415539123049460914566744098499572428534675437267404844246507470186297691952558474039186550038939560422614393119846302099259578088604603813443420175975992702299764180315282620940753617377179874306383669769058864121143710813077046689226929578685458113534910321971768111483091931576729453791958629693704764673327832979692679952498270171731148466585506933210037012615875727232337809006019812262185166743226494956526019909559776769405068619905110512464911413412774043138473022670830052078092501766016642171027848407654237261064495024409727647406516061939507043649855594529789198297840278130105686102585432409578147910947225375814509241581537118846099902322144244291590278210725832035016239401550902767768047818183665050136485824419831330749692060441281187358085900647197947978450085352380811103052877391994395990153730778056096347338622032550342998539722154996636481091950173719822999978855169445190961371331128701133811722540804835237928985598738575703374345084938778223405969302771510799314751785593991713283725364456085397881128378015735763125493847507109400124799135254869488286195333011844558127363311434498652909327647638839641992687116276146134263259033200864561775386976083770516124934456271905587832977414688684580365409717993905709764288047897693212954505173142598993139822603653952253054128882236325546930549154895522180558836747854871412041082720409224569832347370083420060982847815558148075828838837435311011413407452634837246855873318775707934692792317305798947095535831967028317486940852048365628195847718809807587946484996730768020071976427505298123339982377009139129860348950871424712668815851587562596346104959675155313035305959633157378354049332620923100233678456616222349801800102283035377577227190123415006125555099176759851738164753815108754272277276476214728571102764771263593785039866292261366981741738747741578284499571633225400001280352572936560606476276557571197768032274878547971402708902376119471300793193862697797717669567875044562299280686807794214707957900630799897750138701317517527519742819061917535131808530190086427472180979123983901496223317822369569570554791969103406651518960649003825267628133184763106852532054576716597777579201757348537019019436997626374269733861378094968040915882333883216023938570352678901129556247461110471495340421681989797128620845252963929412060714196769347644955156734787901713714756047907969089377178869829387242109183266448195324022667149028564977758374266062462947968009322077959194644090606699564220075217429864227345699867408655099019795495063125965290097881823282546677851665028810354408502258692921741475518611646929381500759399891401572855304125680442371937847012761479689881199210195101206206305791700213129044607625366403682760552426298789254239222939133152191607449698701784434364598979283398095370585866808643428715538678028226849419923637678238469316234290251309251700853000326430316949402699854149596245735843760629491761817409431103856036133075240361755684849143933218087900446779687247758907993831282151031660393145868293207244765399393141727103120290347635042283795196554983329748593064424217251181635333234508326712387285985356090512476437108168097671579716985655950314400744571229740519516157313466173486490199909219421939837890364798095359218752256773074554670188321708584089164509977671787654314305143091232984594316122364846270374354557595180784879930569615232115049475256585592012689845409577197624890732475971961402778235508073984777019387028714737214923425075662118591137669587317505671363323921762728257275752964756095154518536318845987251994416407652356762490451949818146386124696169477402463864253503525826090574478043835666162911147884815208657430949063427911609348955918373682548399384106081705271076693099521035710045735447857496693694673163555345702619263756814860071733302061507189352821094567597640596647492795667262671182907244860124710819438071881020515433452747951784514189829230408077645303182133023680666315084861050596584231618924832368909404407810128469027361155470926628429225052605174536667541535563618492087411666126964428280631344084443777241093488032865231040277598254837705729532440377246023861145883545134396965854250051203219818182185472789770509436843023648724978799070825716076037593805805750279997989604724322864458015112265465097208793834860916572636698161626865948593267504064939517337765462074394105156582611802291392561195682225099608395637928180978175898823675257519794752742629497785099165954643024019987327911811713452991089565768558976282813746131614606454262909329994670524397491719645265207401377412815101868907410354870807001946452618003372995919232793889768226673078677219907152876533263778217568527530678573754340838910437414093368930791534216040895800433127767657559618753672857890465676382152104720056705826146836784888289448677426473790673250230124164511493928506445395794005576209794713361162581457078042635000974328205752277469431396922230242683893886532831738105002503997719357966469191932602744755043918736933232932296726596636322289236003039429107359613443858751981882596851422169861944968533345049576126258351641102146974444758787093506279901820561508197267668901746807027041335109034487035620608889408177771042325360996524444246400426876927496589253891122483784517293194033595121495629418749606868410999482990278319335396879034454501306330422301982350378179854968803975377300975466937996789858123649121486290059437828228149707615377871726539476803087657688205361112085375404157587128501122980658565544729887427385780204804954614979400234601391452218612369704314499352704945670685747141041409074373033541429086967952104892846095531788392781770010802223438523710111794417459325565653460098918361149292674497485305700626762308234756588371664227828233792907203041467941060086665085257106319661513040971082461623206574065489275888220705605948192822257047228774326923540244477056289409022286968936551724745462415041857227236361097804937968179381496088069131569775699649404759281497915229787212842673032563074830860716731947662362051883595561915871078011953993500384344575516431191105863164137478267013954413810111248672744719708040150229129477316705559851567878907882005497500960793837906009703468804080966552570541917779300518171920766741352480469642830164054040245223767023780158008211006850989274205483675472994800786283702030025680685788609415397403288851781958515030363779923753733235701104637353265652242847993225558510828914856022444732119896704297402300830546205362170942195760928427803043906283703297152023056159966748452801132097775466722993682670580629081650315654804979511928224292834301720435299577180345314224064236892319821230988890469131528184795605810493517526214919477561065090516460732259461090668182718690080099161330689410494901962061985770194721845857505239204509270526902821194236649018087292430187779101342238238086141780152770551864519788049867908274938873960464443754993042229958969792199544702373372920830966381020273797670783392093881136028941410443752495622637836697943524381268754683348487098343434341638200712478593332500814764344859856357576843367884475820358003451753206351474277832054538505457313137347115315589819355924817579136606942670482126406092374037721051238930924045799295787601817185927802854022216642926815966255746323008403922803117843003974447558639177312500544679269044671212916978900412656822022394971663811752268814502470586143565797110996384732525548229579781882585846985425790196617388343766376428250299153356327486283350076472075900109934198691928776916784909464349516306126573368704009138126210347687763652107220774449811227102191552234445309319644822642576264224143841893747085002077893429772384703439945628885113223801208356740701703638234752355459709075201026354290814853840736274800690901850375172307609619568479854496048248591961529559316452595671902567886601501723484464390816566848271793370072255857767160856766796525503443359042975639806573295501758784518593058181414075414043010069302294151686284033414662573347221358695127849318659668261531547676507477832952130113026982119682237460558459773176525215640275534346928425821416745097975143225025416754580949122020448314210592271252530304288138701614772093506893619120049497047633398079953185021179201127459293037366128758901234407746550236018772053419305975108237426188670653249326464297642356347184340636258916945412217846769390292692433820945820813039469138801688323760969574034064483920579881817602766601352936170745830988000116426977158894086236638740157448903603479546142946112303357365707327559752884469866789589835257947056786136271556796996277466438933111576124451012232418504702331716203699696936275226353857692920440357518779274362789860801886634058196014677204797195562126875485654818914492538895374662633189978059234363354860849227726336259762246095704568314972902398239469455666528660018907348744989717365663512678705570015273077803958066986527290888667358189937758794391402033320111315540746314879708369377093586065114050194991341087284348411999423592585082206520464017567781955882216782750550319876062124217975566762874007900351204616785983570951475532703014757442052978919226528704456045037836434616888916516647901807415525774417013269055199060570096238990616561174093561426934403213603466619521920177752720497237137326806811353641956810685257785747206466340874253851798011412133129086409647873892576297389495799629321126921630266978337431079386972008250314522544505276293265968394158278379705099516269826378183244628021116817172547542420227293255277592642090217718713599273730218858151225502662247473970727540756239409538254947085819017117407620667563191740947914991713497178859431548163341903146218451734564092666293541705934061339048514075931540702640993176460669648159732514605409168723071192418544055556522742560401253574590543501478929067921997472573590278599674482561381688233644164913861676154570946314759720722418713165794859636074454082478147054280858246427045126564088488990655237447922003326820735639692965557076932003512263449099768061406331119724195904704757390372709970417251849248747270806265173507308072025006802315174176066636980505047704671266600480919510398511894639031678805651127993947401982056331593034250939464682084552953735494550542774454436856979839489999806267178178337921836931372670796368886686245042847206101831784559984594680464812701458678490825767591179425336252811475231387369874430473908874667199218189315979729406313920834089419025409807433182967968930488452746112829284118018626988774618540185972621759700364040646111364582669206083803658839090479108353043900422794178938858102343131478809301726989706963834321199895481932410342684320922662369403872717403423926681144423120246563834469629468065734505849317370369366090318352406476256994119793817494152410244727496539324612706392096447258702437063882060890623549190839608810759028254148622934116003309311706696222340629896254795228297178582420972570136486572486236166546379097052579192826427853772074028113308994529081671320395025973051805112808080658596062249567224112936740260713482938051979900320398561025899544934032566831105859302004002480088457062260641553306788374136193279480173648902356771675675125522203412160250871139277048028207129249154801760067079576097093428386625668160113380482063350080431609235550446291261097057356594811775506886076442883523585866931328555259803160793916730904790991659241069098322225195297500631392130192560048179505783335050916126261528477854050840113719051258533239281031831225071485912785231585060254478944057405536601329504207887303685367699242158850707733918937187587791617663193533676726214316643680538559795509746103118580155304846686650542710440246374760278798186696054740428021265127339048654685924696591251731284926805289835036863748299695542572174118603500620331565789964320293154158047490708957791894674143389415052888472276737273649403275207285243137933552821062881597834298643988100803520176464514513430364917679456868081306021094612917436611495366139592844549853803444381536162085820784881039369976652971710884503651118298288425960939232726832881056639346233905634702317610308635233665176645623031946824879318628113981007099670053886353327691478818992875846126953646454587521332460444941570621294379915214684274502253958317763822568657394569587008742529910889976905553592713298071847530392716051750966853324887247384032742393018984881326910763838781060554528524641402071869042510609931161694578845589530018689932574875983139658990958871111525044421212995823010285744631788841950389917566904269772763441246372835924559816656597861177571666062984378229843216479209671067902972683998254654458937026870596728105667231480492598007212073875419039615907112313347493140049251587274391943625244577476476884557311088544359980939413992623056869190053093192821776029085890409704647090319997023423907010724275274574478870247849520664482359910150440037290427048256170473125031994331780827435265786965574840235652328833285029960811340782944283880898877570674960907713787446410683033559865784425795217893241841762716377889668511625258824455941988200989912978315646254472063065953853987485270814371744319563551847910804740873751186762770206888685756774364405749468757555284143488391655710806725190970749145745916177907077690961234238053621391173603633972676024845477484187222468076277822672172642789280384936974097106852019133483129112193390549533388618281265224058829019841721343436786167793179142004850460767927795993228228182102838386233401339880363255164832797076846272902191701260020535705334522544016437325185227748832812204329602883325138678625221804537777399873848371255531381018057566596772979287679636151031750560477223772645769540510570570320752356804946375707876665681847437305051927868021464381272549528889968849819401449813219824978847021436275014039219336914083248567053117836566191424060035643930659748665869487116491127931542413620491437599839525843076819616146434370256983027182470009096818726628487171346266016908056841850546412054622296369699914623935070811170874274246439407400791712874562111722229255666280007394231510156133186280717148975975928975428637842300197491011339080343834510077129219858995789705854109856751713617624288068932447363070067745912417779959275880901277469043860340392327869974632992020998914401258065722586938800873144699448503320586723953782172937269741227405798574436948440182276513063747471291413475386305474213090898787555557442349871013082780379442065078923450879753928439153445978018616616696216104502152492663635293109405593373306680285338198414072725379406814250710630128672637307271404149194940460066409087508246476288628226283165034786460456151924566705631889138439140057595380777664232967110945995451756173302953659849335548869792711104700505659744823103873417021817452410085819998491988145939253593389134531668630154261825047264790587439767819283935814464966678766489947391135546139275468458539476353003809428874432550177081945676736773232853159327976844436793128913535587864699031764048767671928332532392403392152906053436686738776414236707480197728436172219315367776040434876504194852684702643047459129719258552558314219871047019257129148223782681014752552679924783410546943942452024129285165753425601202201436715283107287863275084294299840838822036002647143750400707233714865741053232023269073699798877042687481994152530331248916199131327360201731871436335806081541199137503584380785346515623430390438209591129203015530072671277542090729580894635703090121664332103349162621431789147237216015247507098200043317364875345196732049480247808347268104824829332221186144993584315001620469871227282554388392235692158112191450669112269238316632263304422188195699612301210493037096268870103110722843195835056855706267617422654873005890951147683625648324334279327254982404625836864371651117766169075149367952154769358328576063431846753233368746602755010777708552039905012384412187663319120011573898137067124140358051479870890113819760244004072237494565924036403284654434605454774472897329962912519384717629047917191425424097581302066229491152854457577041298828009201734762756992121399583948153247646304821109072691624707716556836453115401731268161148073358130959047551936569074622788864937686413705577168878098362909775868542016724270226147887915967268460896132982456547752673881622266849017455807278342048867404395761168563845878477378562307996202733825179389916910313788339653780444845637591340340506607044394347563369603965685637708467457899342586920761612882111112613619765509806268013703620756020902599749231256196625973998033228567097568256282632602149431219180424176889720889899858684251908561557340116524652407501704593538754579270265522992407857216082319584838476761087908078631708954630640102010889664893629804039354595537623652992398736365942906891718460211132963801355603422679106190036717787583030827424890211574322759716160188690772917703158499460030334499736974883292576301319454968542441069127694374846618638346049179178008687296937963876089418818374722851373111389255242467983832995026110267980142776580144533030802226341992785807257146802966857992433351592223333073014491179437100267073493487874717317562782917029083093382575338691042085292031407720411233329221787381678427166931864235969008858353768379638986437691515553157674643548268441931315528701384491541274345904585179549165054803880325941961359816716775828013218685052672104014964930708729009801087434624780639723938919581644216495117738791786308012993951064541081018620548235558531760349245517553031259253435534812041192367867875615571290520177512084752641341486076617384057006340097114098584051027845211317070572625812314076054627714737190666352138772583616656983813700700913993217164830311626453798321144585864579967471896026423275518772797893846192349845237749344440092276549498085186461852286815718456717644149713461176827161890767655574982147510036096877208723337435152123687907000052659994965458309757311108517813576490974129172807541325146899563591545011552329454480712244435630228850070174518976577256093198280304330062942306102899476449624764128022916399544139732308732514383326693590857744868887214928413850349940052489214757740045442496332309943784835630260404886889840808295715756750048535844483671536960817739305895790059935393775025023600140688606963887671512565002195983220002135286872663460704390869684455118746050592055372149731265515907011005530207940234478806211014030031335909693863736393671578198035258851364155709645293294958266659461838676719836267690538854176051051464717310320187764068826996256235300635171802270388315750938852061865043526153353238845307908777231149874559866815666391683256583166760547540616351114800793104675335988593067979622523244085176054572056939599790310853884790811101353484527007296173294749294363148343151653242352124567047639464173137823515773832833811014564602220238666167637728421924236093834355076857645607964731591046969736314319122563178448103883207080086924345693549473955061193206894002354051359628411903347703768658868277104284927297428714438342303274347414772362897251679507662131849219579089117369139938201333757359294563884399712642974476837831596486934820591523214613260312970579357167078906067178920560717166100552904266885340705109312784256006892420820241464198338372771623716924765027064990494072737247588091894949838615829779630262639701725058201090102590004503929807960168757455727045302344819650249999582642744966616248895504008297724385776289549693547535739835347451452903872525508971566236867368096457258376956944173493345560334431666667490187645422097873313646440879168682960573859164412598040495994246605515581032284878173147260501467497246152425267472820084338551743162898723476920197767587707545880475943075768981680490043649309381108773860461158117723711435793535734107921723133892565285953673817809579806121711060920674026913309344871735431994005259077204155687469071442879257591276582811407636189350895450949567297500045251688031974301700249098936988793951110650093433686922210066411252492773128650933533219265717830253151451166810318075431454528152808597712831317662735219936294075111762063912950697219874221587836577920185373249969498019512044181832798364475262748087504766213666824707745608595921445059336507942125972107802741376489249676609950648021637441285652391224550905367187320005099170547151725132540946094547015789319364476336629475418483586523429219773660100509078735134347343113067014242162400455246651793609849598144111229205689885570896430565868255688657298065412274730975669421710899106955316364146079201170827262363304395105446836199481325307355369135480252932897369014461673849538785217287381248772562464570842748790301769092130609792706439485174909558366920119124178590457702352988124943749449318680570501535951247171965195788767076670550721499917048099960212820871054615681765502267652457336243132051638515620799153353909102263707490834173776030386282226909997598016989869052385858145726421132734145031913993966591381526167967423453982140659049729116601430028940042442924681285043098228021349311089868545116802637160752982397716459110874863682633338466811756738380263205083248221278541785259575904025591970127339624658247244637628311092021271856951305483230266000856205803438123203899845048529777645296173195159878352515016683641774836967262743737825990079040276142316957229058172219260762863296037224455555974896026512872383862239759257252889357718447975891782132216469245780116983120733277250074676434889624710778569502384772267102394888720260487726123953902707623149349462266158472954536175049425433505248689950762498232027637414545887005065555945048265784600688635930473449629986853159138527608735513098705947822900438697870446782475920442587358232994411490714329074629175175406924306335627137519808675065144197039543519741239579275514872640994063410169167909074062072953186913989100029286925221406876669885315967993816220479622550657242817009628762225040518738609871104587204022649554094877084605517230947872254347519329245090230319420905639041415772059131719238887239575794617316433363268696607710132323182970173132269381936622104093272898080948669814373452692335348753776583919045125201935970277866081172728016682129283308439340149052062654867284831785215201341128954386629640776635238292596618342918424348412659485643208467508521406840383980740274375668095159288014218378580097466973832044478508820352345283376024951246457164779861558867256912639680203153765575802927317577573391300196955271525684112302968466059426650166292479309370185726783142739482750091818338442034946470218881219845750505155369849993222955351071996813013918822050092417996961204834494357265939405946127803823454372870446942998025950852219480047694834808083208234225527021392498466014551308515857779874593469197045937312531068519866977277422438812649651784212301595773906292882767123543039920885911650277824302285197014639126815484382754527866533306297819949630685356786374246481553956595174251915546351509604459501016678523999588982111934023477253233043619278691817168813964761758885973907347113899731340264956702193663873217789487337489884646112184564396578982153084076020964211891175617443833639196271509171297417096275838624944619556339763734352061203180949833848873200166313331702548822266807313002072510571711740204600658893856209829245703339106022120772086266387953171401281002421892759446920825002548655297500508638339450934020539017206245111228556007682703081664140799233285305290394575743838877085694812051527444350485295391070308871499848463874433934523419582526127120254098693219250648739490491768075920970961987289386515052573640803762941767271002841285484917439602352300846473483981987081091565566103441640312186116690487880316251032386202302713731013986690915709538248097051046377713142613976157607988126861395035667906740382523344190739681409020658182057679557876345418045566012775478606064214663221661059807175663780879913654954909648029502741724068441402548625860692986311605498175852716479840943270180370326947111371508679335286964954433301697512092124403473344081164766729210113371788648089811021130317484212051875181683834068190707363404567618738384130571072128855748908975824784797734126515389716536421763469165950369795019275047334427332787852584430067133264684864458117437961403084022030292315186688080444942140144664962177096224046599881726525669229013801066219453840865996255575015837015250445337983522531396290035113330546400741610874602583245285943105367334568678266591212801844201606535711561444625846768473328359917977176745325124401332185755920971089780294865403357637640984778131589084144544238512472439629913271569693175412891989720408769348655604889702877244386307080328029770307314037133337844630865905124267210874004942051992545812364369072066550689062939450234031808358441734808851676346869414202315709476812358602666901599002119275476793741194410694907263551387572338860145529683234750451488581441229812871742176174833006710633505785088332227287377639489710000683667265358026413098200656402142472453098854043332585092051394200835300313791140909677866390059130723126447753092838668709693825452438361445557703693516835758226166737052277841282620127571692279407144489576989970277492569271103939044712855336616305054352371555839250978605487727021940916775312685200839864030858281952982548133446718199672145673352401226899017881293339234908335172422733488175687163903041915848700982980320481196374938122990126884200195960833985706439577318638974116440626459731452604835114854519043109162494535421335619806740984446248475842760295745266562676589788804211033274661141886985399966038517396236649538018834063357868353933548488692437097170783908241955932241361951257201701810163471955426796719717522687955766388584401183239274075867376304121689876801156555840209733681372159675234339505963066630517902344903086296004575131899119254491024268394905006217455681772797003191570700726993102290429472747312187414831572864632491393529790056445319840395543065767895267302011341052497795410576120928841841131649847606702599482986165522159792754606567761210640907893243309781360755026059152995379086192050553176983923322724102584182901657733803912213745348156677978475011588570443328092258584841836794763347070604741532997590046590748342464636776345304494561713735868669789582850885689941830752254214250999443785915133510346979226807715420563494104020559297673493124675777520499890828255961399805762674520422851031731969396403243531800860141061717492315232780112053031951787975496509701558248044727695277517813097468248467400650110847699976473028329524553015013129180798125471699303566842107917393553764849195387463631909779884555750986158585827879866254536843270372140863665203293949877061663870091913217896035879718602377959064603495275168246129544771461616607319241928815462503846685176448904927549196806403463768011606965826293930574058718896197134756139085637429758750559707149567475992267511937440531866963767775391476828533947821136976331657385896597338976975717581987455232749731457991484864957354310785789022908781121147055265597467624215850628297034132381142735529397392041561236164956587434756107577101308373248198368890959383508424076544396130056350779455271790960246918191500569515851875196597049156460896302944310590497080908274945572434824671039363985634043507130014653566853725402169104881028446916229516475300688988478687220504932304803437527951997417717702074803702163317642207139342427457910239068891343696453042722009398568817123285470598500058146520534734842538799082147853924949620250159701202010762226393810124566925455452896601268825647205692707189750570862164112684887593179177784784903723724543870264996949138097275793963062700057482934026384832588041685404331928735097162562438785411215395613207611517448341039409816087914157505895619089877952920572703208430023593682020027024967508305550880559161399637982787673223096283195524588866630702410612042661386420610703293201287819601174190415883376118005963686115616873589139385161904869182523233250109342924698522964999481748642121294965442807288539396345254773848296454123419691964002059341091888207449444395601504895544991012715917788313943836627046370947337024013498278792244023485134519826452006545595666342738247674793368858275454465228351266281069475164258279596749405455711650347591856745422551738643558752388294038778111000243614606320356765975745849953283250021799506343838273546556442419550410503328577339930045048401861718640397969069111032640448369598356810308681686159210693950856817619671853396346161791653095385142085320338709426037739284278536663283222495109607017005531676049611315710620320722205675361246669183294176065472202792300529333892409511674128623817889892880357330995840915668110020255371118476208308975603995506437989868089347665621500397159218969378805650824242010444126215083627030828913703458110060956190444605235342260273874174251274975507457460040884473970539239694198227526645707845818577808193250463283853201338815682886872448696672713505785683760690749280595918491485300650939456563112931186976439687995244352412100553723593570944035684994293705784847655782309038550586455606395210792701661172355641800669803219789646626584237702973453778127645917931501204653470471961362957903074724926857106627563154764901830288560911860792595463226133101387249787133290885134418895633810862389387115763443515329005710485965583697531082040697211066656260123108994413966634963993263764245027782630836251985116005699677654150940167867440956389935696408443638525494883964668748925163930141564284881452731752902202959200261209538217919595217421128024751004417041270285702788183466519919300851899353410833740284077923722687036490052240515025188469816594641457038971435710103870327057858761388715859588684958175720821344829568443124871132004646846788667156737276388885630240749003957341056118132309699540546898252683364180484428338034636809504202196813269055448879847552917801522892931877589149472048091047919894183396209321050179500395620421996221829904599752735554007106640574190111102707420958120592480604568974273940291781543043728717072903687494703855193804745266509482751231329029002364767633336134487902044061475084031949184000221879581322626847036786355555543932754430056922197242426722803206330614585003951364087818105980666554192808159548989836695333661438595228398685691308702834102349288459259556187114877314644636093819232555492599547099091229037132300375883151446746703381138695648958773628093704925608966448986128209474568178689757337066627477489716636608050195884349761056908762370774898208763720271210083342866889137046108346033887824498184451885757474753072042798268895083372749110309589261049549639074419661612302372182211326834428233033063915272675355716212414685478006057464802103601272863218917736443512073659561539271588409730201954030789537093076707389627977236000627455651118511403590519956658059565125118688089570777160591628824295693212885769996049343555840691592012327494698584935046333127443487062455811319881368319081254367804354859747875104356383889506101051833673483592801762634363827766046051601018785960795280627747823593059758197452677460182118635037295085896682729144121931248717121604793597418645955280793352666667479589960882613345983673375484915417150577975711336306428269678114247730095968802389231233906189304058881640280535671713936537332651875523338985151720961671527408961187425544586553021901591887897077651280198486241221886256772742054905240284512775787881522146556423294320173488301489845090031723936906361470910364739965907963449709033165265929963230815442042727311406594712507367959732518743577779418361075816199817600277068630886665710008752023396866956994722930923394961238410141349367208668155508284672502052221332076372759129144082320637304070347425164540064771286296055371342803235942714795578729777341931798958887575655857928106513087028665869220567486781446671817924435739072289292794531176284071130381583613407427256207053173677403084274867976437069507774296314094370433892122718840766559599866504391785977682823484386884278071386338963293826804160584713105066772504442623656424617814345738571460068244474972986993463937807998567663959865081297139210589363069677892148701482728722569706481771906363409945872942760514216658719638481093459520108718878460753023154872303319497975815496696100808317486921188928185624012097378958425066416875467597020577351132376788808886825713470929783039265281474051036828833943723930847844112187537047847514667551711215055297562637352824509732124039582638045165467663570113125020452881907749576258369917845461793260623401369971284487430548727317814252617396135616182717665678528361213565236544824678677782759008049157567501483011756625888875310811034421276192800733338576197993247585060566153284187792544327469650139785674378247596475630939175840528205804732904591012052483359162987041152794038092709840207385137326285494922847415131394793756864205130729945737563042038456929278230485998534385576098358763681541872706905746349278630583574709319160425968109339586250273413248887496941995050579393867916472684070383139459465106328161743721753541449076433323680389680859615721390517457308425451571263080508370180992346557275344799990074808578273767247128965881854685395186378249362002166019052310345017417672455578052911112972800492461976120276868399534914681719569336619361995928246956944171071511335559968280098867363706205288794354229401094845551629333915871201565722442618439821675936636693907053057878381559837531065848112864274984661748254395914012766129466214207752548950973301366235268828876588650944067016352197919770564872273047431605432167695553349128771469394208541746277200173951984139595541590853603693464084823977384864583869253337497725798297122902265490987936250399815983103059607509847452980954986807246207974587781939641687399146714711124102197543979133651348685825995232964447930391429927702394014732427517018308461956870897059768694128106077258094931435119730011085063373350229918909553742861728249282558699098211495781585316124132130994654421077918585050835736651218342162334889403171083167610741247985670118039976917187714247944200103766435909276273312374813825700549748584357075327890952784915944687717951053015142886657623458883282542183623734955998243174630101564782778080243575099238879836892910923244016678664173202084749670299441078038471241402365615463874241062759546415389401060209083924967781064130098327359884585143131663223031415661892761873771567686485733066601755837114757173733082472369693079013842088731244025659087472210721595875318619649025059012473059381174471220666776402294904564771958814616340825792310693212454204208706734640229523629868642356999166049959770789037031346780078105913590561447037148122429037215578571314778288164908059412055898880673081919259360438251654207714746808918434545663838136537857757923670451537504598690361934120980644475796981325163579939368682785174145045215079206101014661056138435526298813461848378828321119606724176801060991113700704275701267946516911206481275907803386202712219887783748087497864039329341105295715335960900883805976893077864823887251939698241257576046259053257437529313181244830154282040374146479818203161106981867813877213352611184831635864853346321286042753397888394519992932779925685182159831159452599753173056091969778883303104205115680577373856141028337083255680896890027616701474367014880050611524170594355090872075549065461877421521316548886735661785479742525910551218946312679139909752951521598233718045781833705142266012229941485792324729341179550381543107416202165767772694962008011807011556041760603939422524691720167672950985701402174140641548455062439766802093350561778117395652419038173625469716385598241328331623480137458629888868446120071839117081901843798486826697759633374264673395506727453276461977089762998291754664859817526873208283627373959964325543327448876906154970298050638196330715047091938842657135267714879790321102675227482611536700939189113766419359602349758433880188309522182582413661064280316970222001827603339752940748302265580893066804157447272216690266565566026817635469157703486335498877837265930523893506644606796816661921170262598171569021992318332406498494248347254697372405366525364444994193287122460304587793008965507113549586609423449648214445736918828212934430653914399672410387781713337406066856455770273383539922162102414835306159113091322095468386733411245978387574456738543639287457483707042730884219001741791345651967189861543620868659221980299332937684752044741535608910702427890655638192169714398138592217918797953522300846345619587137980008959951551468033598811539075205014863891012862865386464441477129822342232808397504686513116770654773088680196773545699710067964483548699018227720619411888074822193580824210449953908511842948476513210901212028993050703094324297709853474590689433548967932826821100897664223942934695313027568222875069876567305970760764702602703465952236125793706704961754314646528938667156218384716666715501343438793423470995852053440552164274535827761197179999512565671256289005590451576681159203688017859431092732132889107626364858878035122137492307284075178625885599802440672488818692332981425121197528400485142548682161355831636028055989874727152530009984357526919217113142376331771950828297412291462041897821010347229508186145228408999569230686702434642966680575033417234692794098905872574908004977879901958281359033129298239699951864261524345102401757037182320356228164532387684779702454718267830116120068550935239864828615827301168646638974709769261500242227084349562802172585428110387497104246530742969105545839435457041466055133013971107350876594018809577285405611687099733709170831128793839810318261557902758857846113278186834082902791021186266532900044374108286731073268746252251684653115501930317135794796484672684107636630303763016831356441602539921222090396177082197002979739424350576874735074244211125469998981561486950344166127207917947544097280348386609642979911302013422880746516959256126930250850656107846195669985696828372040918563524059294136718233415497410328074157994128962221564363633023300507936566066259226684275193101661479427416760700150056887408924316158804908348715567454218957136121674599913211737703710150042056260417179852472712063892211786776279146988956140528741039669992004886262855953958259182934302356752745492731689107083371576902892872768523040844401308433674294853599782159110153676155951450750552913711635394067237117119138784038276617064132897292507304603497416772717744221692367991938337314457301473248627864857459863753012980801480986497940080057631112299468046652924923206204423976244286526310287418945401445302804102225139014646879817263962671484505819106580303761142572521291081443488748673878608922371631299079231330409709815241512846998763425010492341208906203485545525340988982503471923842930448981025756294019427710740790026656050990568875994632202194944324892884964390431965433403244816698132816244785003384288078750884143527893517864762570886423416613868947837978496953024865190155442300843625015854969662083715951783201420450537830062768259141095675412004268395820034148356786511974743319102919287180745027615889303879915517301508891950888336632434886497645342114569601799071494629109305897516065097744540154661373497581921838135019540969464369353523438818389327660730014309744416467980445924539883460355023730807676363497640576351998159216252013906056445550840422200975065139042410749289899458034893161115893562087219450358516657880950006055108489949718888799601343220822476520267835911729483438123316137371432990061577477601629782073461192165886618108741044581879574826621402494417149703748542141972636688176429003500251760032357517817534989694327115141938723171757344145566547558300413207126741223561158950857522176230393846459845001538123390067113414703879038464775870831679688952670268564821676931115734462154115519515296501616168154162490617966775030379286063693281586495581723017358532942213902697309612025589215697645879784347057748098145428647221246290711379174615161551632168844830524125585282704631254087555702135415221485192739944247332373740941059815792653231816762254850812332849372334546023698088168495943147087234372679892645436404932338524576163110539029601435671615204548633035821743961934204849102594231491042602268398199118723404768598578352942597930186778334215522683305547844830142363196676208288714338546686751334685557091887032802586702783666677846990724490239311130278611654346831368843832584591174495627111912474044938027054130077414921103929676297484049208869878753614169510999246430437215065374701428894468250557420143156387109859967153770068891710288976021284857185146402432221249297133121443298189687535238954148963792718283808724439242592126203836295416649609447738621032663121722255650054545873545424335684751040347406758888305090372655524732061903794846417974184527036187325633615401307264922414338930460418236591351243902636521837593834550059311906482564786491536659542793754064738394186454238342120910986154535971777286467723100694749539603800732269101527883280198905924442109051048803133423026530166245336899418937981682627828660443945318503535181050086708332528525751032093990834693676696034666024580431871410279251311424355165776615901123210078811028356626858530124213879911367353840956323693211476335204480911918836061131561752991726528565350606275775074315644942728470420552989808269235495516706260246952436793801980812736318588697875881339584120659596649670773423204571160318187712026782446779604063526029433857047897360986341155036891907721117767215940057046319566485722326965481797598508786229702150882864424896070208869720993083556822713652726059948655195369612017858708959311326897850983709235030172666779925190345879744788690148777344778110980135581818436167075421988724959051514582663564430376603443195112344819832612259269577322626153107645312093249734065087972719280553252257507666400053151886901336136068183279172089209462775838915870721642720873815622637223348741617976243046269464971437348055345341395149248502844729173048058272874963386698289782834772689511601875694871657681057096162074389000757994675875057474468646120001183419875193397714677918063444151298816323973898087214003437585702570903733911386946000604014228476291244255222646709139848240792905889471324020403837370869381099390225790039014157753536447359925892457406441169337672123608606978162654493845752058822033048094170541471193599863695633382594322204906540080679187833223275288990401046827240639299275358683924044332063194501116000735833648494558971023816785569764190393820496514514396064625956213815400183457720671505513538937930173765511380190642252035889987198279874447321208814231765025157682093877860538999098119046755852310089182411357738747014742342404434530409248129210200867543758041483710303881265467442576392562897403155624152994912200793618195480405175386638629338311858276436353704655525614128221838326931970482028569619713162621041479393517301161722250389643056700406073552172632349376907212237037438179082054932664151197199124084661993035145130964335561697433958731225234062514787481525167686606981208471921241413353144024329687588877463240848507722296466802393124498664180578142036708746692012151995572639116196855317048771987882722092354845682495135949162695553759786024376725752404855947012137321944265071498508652619473085421533486659402487556281469208941881427280829537889451338853098183524693608515010987951068574514077280088983054709840860913709751549588884785005800771698223938600737762672718099965286908439000991982159002344216163159106171666730724258214300053258462203307053397851718820245658989975161186675016034734605209976464646929706382103424269341184680734604755488378573912833301901746495428087516366568345893969174540115675602399338210386439110791133475064711727116015640005020550026531354799067199681629371565761117479330216192676944114889061528907127384398030952384660943425564934600770190627402563536020719933734292787924820567138255310173782014606061053140917716913146046843538498571121365151520861286279337435786598582606098060624921208851998821717159560139853147279787053262006338959865378418887581621411663150787163541559797606266428947690314532476364703308441944325054882740063643167596071792592351567319785476271231174444729802710963895356642017174352288010946743738493682965929329744382596365549780594365199884214935969579112977688622960150729976437975075779593800373168559144003969119200325566151668969579971426727330553183399566823344382568179423787754141518173469011981514943727093082004682717946129491475564635551034380246473789276487256948941864177731695137142205079417135991797786836961035682116258311396429693828049398716678973987948537110953780511112528312300662665050214867315437136968981496573800579665363099871372586448517116843852210334948781035586834876544498065513420103873969733068294250974067699701261665176171285391740335090500053288628460786241553894300195042666493792234683449678518694389650414571501802031349476021377723724174165527301419654621794147548004499502986967683511133666308815856704519291639803833125713667355804193886169382275540548682184197446120246703090177399661465294121386431594811851470643696682795830863611739669904933530218867380606881529429325781947925014641122669083126935741784942700019442043150808774109222473009232999960145735694803922280387047966706356280821110973397663526114452461293404436847776505788370355584249979585039697765054088845021373223204191050922615065635727000455789458275595836962829426441932322191312147202604301488514526053561168084181803449434017581770270192087531800791997698271918657042399335189459298997319283023397452929626614771533564184331726696905138783623367389108028068978172924660546661785147347580104038429957370375864762805297054603215646780977940658558479634433748481221056390324984613013687655066207486002182857264718965439554280860379644413003440478747305088020580429320726714415617372121686406189125235041624287594356802052156343072666475207387373949964489183189306434334419089162291826191320214392168360556979468921042687712284870118471323719216252177052086214354664482493047745172642741438624599312586570258174389666713909498586175511091492253456275605570792994359073400823653722902362454003777241333460693041813694705951674088691861086949975605974259285844834940044169369377768295292899254782246542876745369607764868769590081815485995365155281310628899643414821040593499672929033002278596370972621401434481230562860567013523153551746463045981092308947393360779807331900952148034402568549649314280275470234393667289523261260854699239525376609270374289237322164203654739659323869916231048834478841180693502266065885154924852077430881967568929033397313177989513699326090557213385883797802889038294035742465254109024873377397800684994832466510579960552548444463295928014633801611477042384908226408288935464454562299639179717843241623593528078419604445945839638423592848578146761712713711098392628682283745759829895965092513064082673766814797985099675485744616554973169852983385197014155420904441074383808324988630348567462630878136124109239336689313821261548979656412246050794089795464732486291721646214341296756771848073220194198005968349272752733942988663577328956465811044869151856964420676925857912544850913889285881777554781930157116588180599191127352405992656621428269181133775880883643280339850640130191218389386849806679919807419239408673323641900154558507912129722526641916962173010417960745184218481551725534122866767931740373846209203312052515879463308718311833745264975611964574244505441093460527299803683694378941483537564579017318962343578283960989858649948269500573444094162783070043255786328818128379548989384572220830141490317219766815400979613184859642346725461219220340212593776972068901522016997251028801722900799408226893843767701898020405480454171906913922215965706398115361769774140310799455585013549374083439041860278614627721943961478598140588713822369912265698504421617748376771750093811824402389239045533118179287010164138465630375242253798647065229463613404734554049870420616856922770169422956791939281625308302916735010945537748508388855971235731183172514573612923689289766548661827473142826628822713816787676912171777095765307940163911430651830827742256841232641716234952380734958838414016390179827925418551956069962306265418684567138947277889797833349133422701521694114708195567477126420547595194862203741891522852344932500189974091165073152454878211687742184756274963741944267707135140028073659785470927737909632404983270199711484297391140271917856358927661106262811229392130144579346367394024298384940910325349832295530475017672276562002763106943178733369624577015972188973462893854400926145686723317237106142809349872667615415309761778532394516077110485401560351903368754438211162773320501316074508814249616888143812246171632782694465891377259043617140788933294798708937778620494106385182014475242182652890179288619539451558666983799752741175371053221050092267620874808200326054198953609776141632938254289909652236498042663526975974104885313814287212429683741727159590686869385568698505854561968012183667829509019209537086530818443010462507496472269717440813362439024124723514246848969877636665953395754987729445442054856336918508358547858692972216116585202662025664754387120857657737100983826531784907379388779515214384614436776810707238739915275093824232914861400138965092642497679766510713499758816258012742282313741985574695289109658955098739486945758221046008441724703451436206397407469777292189461183966699250543092782006703655124900553640667608305670316065084611543072348367420185283586269402776855728297405282627305867288724431440356474363996560377323689039151442871880445820952022089639238425324347320456977290302713551449603929557194221379494194047268732710318791090236714629302928165718559075512117292313771895482275833082883331321305935163004311677702487997312910153165815270145139594108034543115454323875919178942725466181138891800553367220206686113480036958063854592095983357274012873551529411267382923979563290441720452184577507369061364142530062185683301006152478290450053831882346727775518543890464783266250583831892028443302419192422352735137607485962107426884664843185676325196322393855881120939577956246616354655074363077300077464154304031995061542399876408765217250658508141251000785924239087231202894622936624945386361235660976133098606093194168810915127881930513338326169479313947153618275061552782806853250201654423753193798082725394052200209305847442861666376771663972899054083958413956497674605561616017613802574820561369241953754892820532651849352061096653647346787082402764986628729009519528247954995026476335458822460722703805448460737225454116688891265069366627550814543100842088255585082432260002103299262226578853887148332056237584977455288607249785083717941381330799705254041834244774443668983326131657583789573407073068627800208229082753960682297721258352103726503494581862897651926645654491059725441630063484899817832738818458453143297627320009484567364043824303993253589682335650264449719848038642788235988500948948525252690703887309761039982756211696947141204683903491885897076880048366033164512657216399606651844081869063290084544055987007973128682989578826909062912661341608241453962000675153553792736113009130191912445922771541280424325467096803323463345508924158847908971010945019827639250713519037843722294566478380404563056545905081619909609654919616238591966110982108673658559860060614310022708463148680415919781960909184410777387687739195930468800801271180630846609318078608992272422294277003559466120121839467966445113694734877830597061417785942802590886669442139116142032340786187214484311350092952663743281321963970631910695756008111864844588240627446141316024433175319720772746513708956783368956683184965190555596391994283889698594131860163284104694742157533602798731070010513476007826371417002774802526939538978428047605259470947999203844291150551524251303986971607125543798478697006464850559881638250444069770625058616189927071165963429608667581156309219158259201920319745890774707266275896985570163799521849373868966803093089684243334725910536081515866560579057914920997708429431674002854691794716370089806699274895277678258138987597286202017163217885527067680568563450994160111511388407223235557573366899210798497854169531244808670961543586515514528638571062988661282091098355668081018824904479353389395755770341461512187547120193033540302129114795931558790666349937018061986889632267248884972441161175205168987658841681097322593618805819517752932964476934022507233421223328939385070377949378339751142247237841449344517426413375486012541367392455769542864537447440343603400079051819100317566744177012316797037529466655359717114453704551443074133057829975428995236666917303519786135019111903178809525859375179968948826184838026086869900410979104562217401440864992467643596291754597840968091644657183403072254882238899059885778624165470263624201020579095896106162782027523282077919859140509789854929746102970214593181049415640443026323748984021456900371238394327227992820151588895963631498489003780820621285425550240489718104651087010415666366831272450442672522567494892469779936442925127620306748857886890447315389836441111536374444059383066728513861710127151417686831971398817789487681587654219256529090871263492606251683127668206897187844004007040300219793327754278061340040512792869190202521924774173298343436882136460906553800661993626403615619799021093028850511184849014026555423901959555031144988042825642158701295301939244783110859911720936566218204874733972642544548720141701066107555621634093585077064730604312260544928356038884499932476028108262888580851234038763408048580141916735631587719806000264986490677936654364464446737653796199542479858738353006707360235757555786298026530274493305775303277099950913781551327796049406984267019243031206550253393917249425181340680904827629755102259058355961386219303463285986518163731816850319749528988904798525694848920834570902631021318580333967035495584569548263587744418444041403024628868668411413119886366920239760230417348928963367514625829975948363039048254571405978750868168150951137697390454848230850578530336411309158507167085226462229571923249651365769205993194105706808944619503891898339915322655395864590976582372845832360209639625092838652322217277289978542444697063566876353608575797703097090169487085596357691475711268765843055442596431465879957591081928170931124731479403120381125336375880993749178575015187634286629201531080999601696410522520870394615963928365772665147929772777529753508697865854548548297394675295122293713991119149866464203221161154555886054276980383348336283230815522124229467424729006914299362930510667014435370357246588979127303111522091871831746685602613721285011742341322574213953946696916768052481371431730372086197214998717195692829153161454408295130628431738084919521440896335777191453674259554077083552554177727157091427125455282041488201263632237678512895994332019937679134810659157908928898351747766530356957282398148073195244951376317214113410283588811192920655947724466457726816342308429190895159793546015034238133725105972756287567558891314524534614884533166814797148566532451435674879183640843954737383953519432220788075619713145355479441348310301431284140451164301106970002751424630297087461957207229704686837807876642806457243722467705237247340249777860448405835927087989916949113886543764765656106900602618527826977868599915512199625112247221994849766248865860387482946791902018506273747665550994156084019559860450998392169971681483607466376028072861767298328323679937540600326620199646465486814364338073028986764982166615755292039947509713698944309388690271554408040751320928851817223434501196809015155684286418944581162343744124395067552286790556025392930495391327481905147286544704240348466191545966402738447633167749068601559705097446031809869898419046551443379038636943092955183675015700998112827183797220278543991214123592382959339816334568512322515463159008991378996659919006198734581077341892763091301047230722751717831468582860693218163098661406239616235940755849360455258764103051629940213502266246286101535985640775976311250505510454321421615144063091798495847473921846916613240746228405202105416394885197236974722387251479215674396259083505423757068641598694847675145972959603715956295266018341658394502005531895794928033212005300081616859640846896976253825848709505325884226607561890272856483137286619235311963909704452100200200821317375925992283119150335531204974369753880521791076111826464728857966715193613585446835375068000042551829782710428467426881133222360733065263064339717024907865805079689914193748544196626567193396507787639117188985254887118534969320753052908228181309122051922685070263708805270719368693941943748653036001504987780176277369700369317888363385628485074833265980906037637752668434125591927433703346622383691402992271091747617626417378482950276670143904484506277442609184096176597019079782871935866681980966536063416612975116886624940622443468231133010418732199957488553372709965513200843821098008856006058577531871649772355181358265330716986123384754528475700710237691648109105113663622838616317064128471182502502886635251198705209773862390898975939689773282939480508123224833269541367149281284267743620571517564782033468596812249655769505828050505713462038373237150766718822472261839842472812356166321371337082370373361390296221561121030112506959868709026390916561964230396183837918389342052601203917870668671519292499023981497088518644970794557601918653191171529109827672819852796414405858443674030012144471465186728210845429339105114436183743866484034009542558980863321606040667409610727663102307169128293162018560496030032656521333503501769174310510734566097718376897585661083235887826662247479572507471059785101035860077505030528789445688670426996189174195071253737491868338760881059817157207272066252595655693019728554033058271164807392092084845950326989932872708777071913824995579825369913348384023579095751702326873758883388861566928658040226556617909914455086462921540170026530060753042535297278362535436414652599811000467066194514671021712034487770512406618389550381127836051360248995539513668565192035709228664820925334638197606265372646156739537510073712784668241932746689728117418388914586416405205766776524557155698686073942046406878745903534924529241159902920419696429835273744348683725645303599232777991308506664403262563214587998315711384159187131598580010437176701003198832545736783895726383159672023483029747759494371153011488502870008203580433017789983629990057761807126165836882797211008973540320993168832695279094952628115340428386816950728728031054749213345975179692966175735607807051991884046157256058292474699592073537784560013383268852930289824213446159442482272986415532622640097498406815003239178832002683766459529187906489512190160459884477971408046173378526213802689395129617528990675124870940428079228498969094651575748316759094049425971089443270992753793365552168528616445499617646008929812449007885815274458532389497716660971910062141657586852860644596438745925233862286361873373892103296986104334150034467137774826589480484021728488255108612602885164779185875832178976884629819225202616816728029744805154005994293593076059307052597081360436428748493210522000749023172633003480717692519023994107341568621642978959302740584654774062979767965528138617248477426402384543452684064684745360925227201760339122904954001442758195577135847194015743641519740180947678423892738504673900302300505800390344787597732451285796291255109181748465103445506682781195288780321315827545553940661465587513363826696492706988923698226750909408208683241835636052522438111010363727856691978436870713022702978580228736107128738833288318162723885328945603346168453974598278425001486669889244661317669850359888815245731936472887377189606947748149726150890347480548094251903532222554377929983035869767148433879021607319620111588324244572581141651470017650877417093446048802022233785321356848913169980340797536104326132914271233526640509126684204915122700035452678855189742570421866185674153215274303214724383735439002073910124372742268477276536208014868202952731743331795793274713863381572194902161570958832495464176044767629697955503406031759997953273233360708596660265365083227231677622846746440369842922442895827990379571628697154237081520572051668461817500522428576523466302767112028798275985116776314619089461359335670949334893890489774122702266636930803144342705305485650977083742476017814907174205457568443603331963715399537265708149581635306168569512615854985006751189628882778312665921954100426609981623879272628635421713365803431988246095173680341028507937839024472778233695573925127173345903075882720314038885876323859154313320705415825329034965755951570520522379238218056282138936957533583086385193042882763033174018192036452897710820416422110274188331550136954475170135802305249735264660972473999654658023214770196046891326094498251411326698479325615731436456530544340835562772344284364689280023839744920309636144353861005761949122928675221851894907718946360772753296582897115253488176804527282815378482317416493850565037078134129206055676765712160331586334436159040773835451797525851837573545486331765599164430000122772413126609110245934925207694972979090807139807347487746804115175450349983334287941990479025908306359139082932834305124705357696097753222588527662738016998649769230188188885563792317723412582979882787618321797574917076142896222930382693414105849309773218687706276437638487151138117036205865403493781390983865705985132280529512644255976132387341888345152362534059568737690142126961809575079690442796557629020835075604760344985274215859772891888906492283210127207461778897948543270604890604032753285942447890098734321545182468873528270919915482931616119613075081782531292792522335018728678987810186512135582873237479974014371258890848736676252491129953898621273450502126885787426322408717796368535899072559026482365122284174482659471061087389557996731421251452964280051267675046011620887883284602664030965021607739321815328484672838331574203410755445958475803473999475334262055624225559534304314551898200928749114853072413792869465084249542370253358143951301297929830939591777004123364839108224260262338813462956052751594927976385745944726727173756771766295063006456956556082187433513026309983764235277937238813918250733259382851086297356974036919207208567636775078950143171507734102892409830320991031180666917534908487767330356857685931508624742159427103104411978840072395495150619847378009173818228656756257282529673634880687748073804942621225101330600120242253096125280940064894281834248812130045338480636265416342408883546088875277595148121978855419762670543581259183918133980444446498731444809331479692880947170427674163689077789235342127908818237744648913072973405114225324092679303238619583817409093495770602177687135793910929598101929097473492618267724780709738312792469482747610768651829411197129573304112916856573508688513589454224304103577007034548170907002198154245410790109673199769354597245301127709105184486429854848347012714475213315889699091394105711121319039673267590649257052460940270092873252869575794227480511469120352466683954042811133032054832106153917289574461087799417475883815639779644000447844191814191511825976448273136769686436481422625010869219494083112077586480646187239634857872985446076167443669587068844336060632385327341941703405461757476874793247121562803760453031176798675876887927039797847841808829485290322408412732945521272348564722711564086783971109222779996249303830017852113856220592545537518811189187731246011179302875766743129396653515076506061309008243379885701594254948344201002401972835082402420587264909076766989901720541412614153890059194565844695297650417602981048497814468135737634427714997050944518636362800415452126474314449978045841496583962567403518160961403623047186927877892858281707083621648482210054353003376331406225451713342028559038085049753948828478430378452908619525219618113431907261049128427244894859040133542301299553598260802777291262670229859880886008453048894637594297472286706393559374566138368938751949086039345178013719140110224653320048128397382916515883635673148893040486175263289538080968184999184175047576891916527479975235219756310121912709723602794390277628546541463435450639796887502128412984775261775338088000892640917326393753725166261289213833368945685079632927101073849246006674457782920005973584097980149940554440038373029599337989664426742922724868312458059899544084726737982034357250540996454166819578165542170640443684081137340611527864105769034345751473075696875745473968871541315755298203356037609862896145303845853382741726714613288812117109402758936621116204175037084248733612369594236632617898315045685904208713286596121223241536735802425077587608269874286579289326287720222880902967815458754881468121102875439418755170805928353715275383172472338156110777572452963075270956693061262001722728258853207523417315360979583277991680527747029774377900809827610818829938505439640865735450747529601383358374995514472248357746554288774126332216801979928355864839516286282810393336501920027968869502682740603341124014671646854048121345588242673349997424923509646535877265592767579561231558238717331708949336789993617660299043931087541217810576983007140549546533556330760286227111511190790843654840888237460973188282115365351716645590521713555850470068638930826781018661059737741722550907527677272968264631076649918358767572338169121517447092504411036004577848745696074189680293673908933554744578724693190178679056889019694339278613925707833786063931913808893518302431737045175056691381198687322882485402543141126826848210732311275685282669112383942634449584543773318347089156691960511630802134970072923797574178190866914459309433394971180549914502674663957392862776728764609665492854521190614866363658253308517192010537304547251689699600661278520763060601890601003360347940151434889635045649033929475529005954098081923978852062761017653763772261456273314243109694270174853773062244210139326016697534711735835865372237543038816918556706096025794234719155767187910281120884531844679143272523513960767397130715121537539744172500879845461556911275781520048256583397021204655739753025062855943851539477734242401178562062844117739533345667530431702610557325945811667673049742547812267727023725818460594273534770612880721287743323130123457867755594253825504605740865724409462300886630887267280777101565411196242403742255516411954635591695934002150273139668991533437891381753550652824168359462377328509554759174598316137540114545448013734445427320843740362714283845961088059608963648991759272723698159109818265567623627830821399968662390835182843234003456318551169262531388074261340152470188540066358146309994364140316573376104659202207202965434402718175688687141172142279360263568301347532248691644562983182799392519322014641393444410074991111500174907735521533730821990931276036557404526462592267143634346885349026059659261771475548711408758455167046513173512742323358029029269010657958906251430114856320366914179028024219402911413451281149921249111738196686562062394572702130461500371275312165661627547514212630971690468568967487608496726597238018059434754575508475430362900240080678068571802148738256809034594102214643667995245827404344874386277609327726681276493307152766343705846172373999763741261426622967689060890411016172796334643914803839310564699989584472104135222197790996629644422088195244801794065296485455717563715723630530535602785669163539102368795897745036233904404343980738216626915017998694491778106518763894018597743285405944296130627159593440420715042182655082340119229241690830504060822413911451369224331276326595019483721616645936137863806677861342934566919444817811745241918207831827836390335570919249244624645118115022549156015618178812952456553314659258993769834894537721401941993372198799204506383103587675613038865634677482120346117441653048076941794124292360455267422002626843876958658011138925328053866022000012532376848294920379714234829512204744502538852322792424448914457117703682513388085660026470933494424716958875294752761938734099797418631245955103631127216483318556116993598243337713940567801223641255603667890594928282136900736608653112445048534305847790926911334497017175878553487261825384216504074723254029815353007628412321512513944226703933370464268004276639614366372384002015601897294274173775046090720642731112688675628419003431476977060696555970226540582205452742847617980484283902500847182440069381272410866585030748505148081896914697956045150055785256024471823227336516774135948941760644716653719596418952825156757130077632932026627402063322328793996569614244284832177415996855069683898360087052570455610798589494191242811838506368324702198705092411015926807165146903382415067506826978241721518370107648110045731160513651657892014830254735774552801954811136225173524428605530358855193530398032420340689213681130127801471143937565111299443756138365673944538439958534321401076662623844661660163220986316342932884184702440777774236875400886762277804418495066675901787975995233045249117549570405879346002660497278678505420371482672592091661858124902651045747715905116525740921703906493140912750667413331682096418557507607097675522320229405213362627640857903961838581345264045004776959173069156937956955754714479782751995473701637447315219082816939071467694517741578205797593191247038494354024252983729649454054667847820352676509578482754703651660316298851709507349799770811984966576836270953541796870337265892486525137044117684957698077795104432021615931083218818731188665315419653807199453511735556692444262701780824033690888542019220645046958943891979451521214422389215924759430954474147277188053654321660708331152411612343713592462163929633114422867331070508214799125915288734834346981178147285866159634275130893105228137759107238082901299532944698230218492831834018773078601510598561896381904847865852989468295646405819224412405335892198078275080246204648026330442340336977241081077700659386138640437844728952534714215950962740459340445135177142947679007096347334289557316232399429221579922196069110269233216773701226378354916613955889927519604815111851693240860762800256742451797093695826469008818128157948778157940924099710096581887874068736888162844572885371910353129458958160812270516512305260616156222260905938073277717663252606990642935378133995579302050643972361146903346551368052250534082157252073099524471089422718137139048355076832024586754623631309193871426261395297219990151498590647588095111637695319383374124348773065644282632696753019414686003190461863855670119407549055884653560498168908050852825678431153514885273585814325432214973399250435544570960291726060163440248293760957879623592568561272993811408457591375052866637904094917837107471492920142045975782600555618284562733767876426904825524357719991441261227404935258792285261933694307165747249687092493608313226590621414572699932219238403574450118297050684268065852290371776167020493551049926346796637364694071601275843012614153548977661469571243791570971720900828112576393658395642395222237543252940140474253137447630153241063117556656532654285895659446850684533769659883871977861051969913845941796324608947075020877419246867669391600947724283700844322189994883244996690564492236211531361653816996918331951339967375221008635041072394310971532998866686836845708588250653648512913664145746074281095176189364610004395172756851997291946005735659163360845728115648407092452815032088223218896352432544030062449422785896317620247276270187921294327494749332809832476162080899864596637987588992323997669386085091591678317065195392543042229530429710796939356395711259213633232872786111245062359547529809423364678477140089562699920379464074454777752296796697201274984637443722170214005298743952347319442180717242827186764852959077116977855040996247308134818890695508784913303765110641231161245418291671052931300917767248539565635165228122618151024120141308696744412116473865981285436501514468970162734119740322945363941557864789753570771668004444348466021418161486178936616643753539831975890119113146831612974466929847635585285923196146947331317469062347804703949025111363771603156245234162441477959647172469077762045340519033845702702079529406536347508345181438402888804282729643609840299424965503202318216112694914107459026508533080020361287395812356743178970852559378575174627245983066454361943353703350703759317948786974688152981835122761374265643363881765017401892661610126909635539446862177354418501633054234191651348223880750353832486390045401458292051852314901926139738978120789985062928610026846535909973390688337482267965747106406025211720312640268888507623582144741243591806189624893323115660072760328949203871436720206444847968468400256700385616749505806065411765341243681697124942873288278688470750668825460452475856589680223216540203811901057338653269381543904567215844218915491947044709693778311160605422233806302124198971037540924519673098889493606428514841567791368360603797543615619960820996908780848961594413977524593907178113348534169175028227694154377611397858246178336682168781194482014743236206024364284864367380897789496818798395472279016060763132349129676501981745894142116926414395077719198572139054697490375683042327850586325861340857721063970700295791861661540543842263535794471105143379521147429567048351541853332340674888224843601118359639030811009161485945234864923804207310928982994958494239095407374890955841319831121388080641223034571781163147504625727419356127443763418020543568859390919353867436771493397880423565999972035870463930429919806654484579849363757815519694813323782529903296439508093321306740650573068350952837658552284678468008851317845919338167325326372688215858816906603607646849137152640455515789635844527673113912770607621196078195181329312089898021528356560552651683569304012419321520234141819696469070662256538169308556927259409038399303218901213110465706294011632393422194680050645524286663475141982773284798370063570697425155200856745681379950652221411140452151592475626686722899372071031066224705692792085527911396469156750395589979090679224060125701772153728467314699419650346786793228338230096750900763574853256522417583697687497619031245454008473039574682127939126074765397015469531683619083870345578850444725502519210108843414865064859889857079323930834511218244449872785217705912914246897691504674661056124126165686015184762781747907010604588044018944399759282665167983036706294651080716252655285648043157792561363151262185153327930976139855933947776663541197314108974358553550313096270486481187663028450317721537553118430211247984716099778690664536747307146824311469569201275337057769292609036779027003615810819601427406169366192289624404609379618858672390284603513847396547752231582890833025742611638951671901589358616577445181793754254610707250549731980476681205901938844777914293620830560028270603648016090260783655060547353842176433402108269229020009471132372200959065647236244662378337119929811626705961953473181977729111486402542128204338478581713733407536664943581459169193671153946908814913984610532833066304012445874963574661423684351427058461093874615869307666495764402858683644979221983870578491310564915659858516354868758749615952319415352539670637383498246070600971941955477611097273599745806444681631094471336018545614795730022470959559393446447890485783211047232282776235298743350826561960434903796918103114110260225710278491283271973228365536462347087570489747682313720060322492957122200185674697820469914546553749082281988319424617732862835040113107664667193939531080969830792665445355332135847859760404728275938743431943966869887807020522724085985466998931384071965379713674659070566121793096836462712597011686029857162797794293124065822097899046862837427378121546425926657873047059295281044698661493283593739592234936107153557001427860898990960109377653477573868607097778571063030922283622332955973408632158327899353051227154756658587156607753483255964438003495694641720471231984358100828663937230693343782496287219107928490702610827901857042344482673725844073276167102799002632549157979376827245689508216429255378547368834321122449260494856031483565052190649975758741441780528426469185949456077006287438553430412638371345289694140844223446351756781008250665306249248946707909948229046552079093985689536329197204899423222762527835394102782180779730942774245699918750697489522625581087925372551458464861548377460054484508729947640656206000464774923593850813047050285803143805140741861687129902073061800293143695987565065551012337335183128062744342568541120015841520922334867550666597449802233945899894296984607014647497217449142238471740868318168581502377632846557770161272904809338827163413045342205542810649555023134104840712621105719818421306349476122426469514402435961621240277665332332721864865763917031049559118558124192586953730004483484121944305915030484313745397945347420235311515321877001754342598305933941563309480455691800935861711788489900046215002174201488395894705605839914242506172011500098556771574544434670125326070167811277939454731773340458009447973341659439344466759550250330702506404033242870229998696717496588213904394134504063874733999796304696275322273812853567960147075532007288806811130197159608950192465427372389374672498422690106156905131899407047872543855470244878136628163772414720427572285237663577268126051280950294331957123758429270334088423969163230518897396397819118624228225413990050286739435366729502647803539712831758204082702502178715443941776901464861901423732944555307273053953100655517503348023226189197490926573148493581908607838599389300013141781904256178880053801752193449465903691356888155747277565718386478083269978173375816978591996761072745912768895786137954667734075579353770266039835617390531212187346588214219079443034584123321928165151667940557704023728599811070194015619495045420315506271503014775459523345880991419364310811697178922747735533019925411853086468988006268556661435186224634813041800475560856690228089823759244340658339102758572346523685799880465019704125547930670278072015029958524803479928096787613891130636703221761686315562810420132197152405918717256420585826513109103471961103644069809550705627045109359814401760113731771635735407318294075427292728167583637255553763229375018461763520552929378137681665419777346483532935702733102087250579953326656228934649651293363807982646865165134645101501059678402877215781904981396567899311776777382722914657845203212775278327388138056294274400706418293693488787573380134047603831320273235766813256439328946552848097986806724852567534959555859355053190418423952807146731810334546840909213719376161734094196933273817963848333159347741792791275292330086560956728911267798702267469588305218904444981597225311596575869543871167796637427809832568741497541763892679931851515629342220721989164364281759011050020401682741421345361180638949994139214462939124838572251123307634512928389580573009442803829709803770577941313787307469744471819228484862569173832158471318996616032501489444007056436624315672794413013465885903350525890012462883823550275279685300817643871823453827637937923309943783122895769603010986723175585918861851551240471902868756659215317207120488312161487698997676314431529874588743173223432062271778266689682469461393061847095287308103241160686558596677201206338717458189431492013644756284881914740126911019001764625856838744047423026430663956182777694062474152437096328331396687329846109176578789173374022543985082198195317356902765163473487225833060497641823488130585374867988430554053422788846658601351375978510892198126770914991359039143829446804868157794054585113132310877567373783676355813137438953192264138371177026558740595963419234668223871380912388841963955100754711712577047813324580745027265641415606052948474980305509502051421751505176698512761420535489921981756679596800724961978438405701607901426041710955730914103703912564884608091329836902812189710354931471379451689080081482372103514205838542127064010582293797162484950814504266283088349858574464423544262108902437995884805404874980942482928297102137236132749009627783419964962386496516145560849344770948273652422160247380670418734344188721555351853656995203523038010225550923220498086568423062037220736492490829762891758695445395025967682288987669804193203940111712246115745736239421529208805753790236296790062768321955788817843051516813299131278293339803284979673887344074318250697297575193225256266459567610374375096406884519395639665788344969465617686975035299307353204782750089276268188122989722544519257171743269234788632252264014017314256077577585274171357484582733970854504888870047148697253825205042521215918467449010054675386309812953725944782364820285766650006074646835773272430114962771407490509098555865490990899756373258675473970354054695670711217989798455332423328315894341129359833613604685569609879576803471438669165860449805076550929345827743911628426195447349634710430830142773540459788082315162248734070997274510849600712627481442966124155993549952123362098945642925012009125857079054417271795145758690385032386251142693309382595426877203677538495402982363170694883179578615591933788919213046060997228655535024829917556451492182876089369864221461864174405115462159668188541261433391911978297684910017254926154284840420488570868879917009033120888167536013523702821466210230023744731723680808521371302433295611417434484432970050459856775562445678758101136610523440182421085206222912666009900117153274253887390131138115825771527325744675550316401459910322227766613955241398396748523394849798933285498337547096243259561637282389449468248877847860989273764315070021737978865095256810055010586117650973690632854635978007824126068272324914499617386135972395418956187679468992995719566347870546599873108855974148784674632435386013441142498031790243461534333649174515695217039706665309917860426809420202457969420244110831002876924651097055607273834028999641712656279369087151409485801928581245614214912772500645297744407546618840160468711326322982904376132352799689536552196492968261592506280925175920561787746872724047586218429731515378354734888176773046998327899840074547923346253312583030637993268450549309774838795535550914475535461772594846321153443568790240404546474583383796621810704337547689431007287372069773026353387525355541210556620194554098288068907122118863507048775257877771365852739406254244381022677779120473170495679951038149011744160751016556087691198433743126783239406367180781693204738206711495803248224783838635708122627920475310794075316127685267704306937414362817777192178527083959917085442909956430394737728555317053240510510122800468553089523443356951827795358235892589242451266031907719102014829040979212664513930617357577344386052984123028538328436852121752214744784112339081411140069158757232124477044620434159235116908905148857421359863868640967436648927486808055012413689793132859986076453420705551044832923995806258090170929758740808928101032878917309442365887754218158622786991930716561509225495180635088132538636529095800917299496029423079809660151306975760948669534793316441784265187511852353998408014935174948530921528782138098369031517672031424878930895317876942204323259149936479792822025558555089418385219837604381772975987113041360228856815011091425667238435438103935352473140118293972706063869075371988150462731334166943836530895001264272819907135692686759055924659713695746170264704222828503647939787174450990739642242931395035693370665501137775807747307724674300547156170702009697362102055123351668678347116969901683251809533476008655632682963978127824173882135776175137920571048999650034109941447425574898481647395666698250676571056807380434897360839894645347052083531278410756219757605229741919530531118739892502558007609445399605061455654666499936059371518614777900855557126033078862816158791869647296985865563782344312436498514198103794690059929675653216466489878590091363066291655869307601299826847785887012222279220253555798566680625898653400641388591611950000369429483594661443897525902286541287376821163520956349125314277391074481820708190952644246801567642102236880368098012802079328979264762466427546413906531887740093059597953925494178177654831313037652895844834318381069775444971928737447327237386794188469893870551571521916689050481394714669450918161022793684130667507203679063295855799791604498294564351010015095070847379113534757662655458664196164752326004973312054056157667733212532619280022963591754450952511272535272175553270406047000553370938570451266891058630693338746358411977178804330014416678409690526253210163743969783617566916818461843551960407271973663183402207980821880931501295025778816439913598279919721896966790639698324330973860987686958254958374347290457815833975533379508872749981365731293011646165568238332027756615009899760705517489376730001019904373397284578965002622823277140429397879408374829626948343962798615908858049119109991453867536612181742890626473218628489206855295906533392686987381275537279618975615503286685258874945569782166823510424600244495142805887291835820028010926753787584061736731196108870361551533874948857767031839490873431894224269732718119857694812724888353831880211574446400688688014531912795994645304763728554835793987364632971319646132710392892961309372393155930506627529040923759143075303106415897035767009514546670116669421787300365175172847636279363404085722046998712001671364612572622777971975987967494341069891323127438651653006711404924971904220349221360918921396792144404807805036650458251002858087810917563876981878146710465780457118005344487902895902234077436446963924573404120383245715573014941230204003011795425160891760102061243366041036622685556699364795156345780248581218931934245550228129205122398555682252925076312085272505237758869458387608002715290198123666481628078799666051769875127619542942059278859370497996113471099854878138484591770087130205316529553654149362841672034821544159413539149415101975009300230851403841008076594409124926369682453004430917423777217403305525666956544500757388598680220171014075413528797158935113874575235939832260610769870922609005503083244112555796230437084314946545718381017079889861251576695608381447055996226296256214778508511211448545469352216990841146346676128750043905579004445824824955427036955972656405833107467994701623713276700306603109773531007025373037342064166634155450852661476717891434185143767342370854100704233007788081631221802067041281087404755362938007148589988341804431151542962448949739887892935425557471737016730101143072036520031528258224784120576024586493428010562972495332793380991373482261578995062333346646979728564776418083866821266041350032168475904383106911213669490365568579206861135176947472177614246083795809838447110415415886595972771505294659161771020698515482386414224108579908291127727953390334701813176588861510574876576142419913202730620546096758923449321012450239645461281989578678941771607351834911614859644391695797896791528114625013834848791558076805990070575619238151259659494034653710965979869128193916150667513853528173760328925285220860444701458655587622299979676230346266711015871063095061364326761308055452509118153092341403727703986120677523300348132895510361407138862016273532208321425450637072796173885068515448802691332512263756414932255721970966823405190718778244640404884527526179477511083181672778533565409942534475006317596408823105487111075507023545720564468855502377689829879641252610691426764140975291702633882866424454169162874222572545401406888400321426132008655719405574569962414726033918735552756126721763445197262417469655055889946426391202366721216964600134400831712467687261819639226848379231314654271717375274779748581726322454807506666406806416100149678472745675550939482247969637725913665471580012475141897062331554788440697916197952133725867023985747429426837845750294572588739234987064340478641998411355900257847529176238068672490310923046885069198528091704810521351695655312669442896084449767401480015985792486921409723000681289685876232704901106938178111287537987436705699295364497494005145244739832004974746183784259636662898369013947160711611606691348646795635005648328843709871647359144741840184447256569238609343471948185646138793566247268349164961753243410483522837208981877736863676980713709092015671694355124698864252099125955443571995171767814694568568133300457267531164582958420131257958788118918597135666722770971637496457846897213752945895113948667252363973360400251651898455462854707805942531590689344239338833813841684997579545231437408034391228409153566559923954788504237101625484780506398503026279682210741770665954079336315107856701021749431615535478852723964061710117515289044077897343373693155070449047849991225220343681143464992300747518072440457591146752717614539929862993349364663566724333688456694817546915797687102250955015180475437820923253587190446836785126711936615624835645194457768299588977903711259558208982541859192045617131616121832315112168335608966288886318530677725591523911242982646628595737652618596470354884997711684630703430884460907368405076586043681387945019376542372942818812510097678374869256356166604789549569827556956709633892303379718005594015954345925031502239833436065354179170179054943180795140414645193774390939570748207607662804082047048715052314046630327027789213384345171767736647360380187182612913204881257943928956457387929575610058420992842538644086309197669122645685683900358829478244716808014529904951133665701963595644553112712611189887507849780503997426817846428587950526166152474723234590776373970016074424167822927266181592339528315972091793391665302039627884618841310209436098424002493834941560970621377290829458098766961443441507919024944112509205122372794214553969085854522383482248344850862092172488559642756530155539090651728768653343820997868114595693461437051559865615675193160334903117016979048521753295900488965344170010607389961895019604467934966058196946768246831924332396136491848321969872789909639889787092397906775981550299546808904128137172287181483405965915179869193759907696613354093346047866958614959835343374335864260992700450433336056172109865687607382396981679749209546878788837499556916552714333206101235519523253300325913440886616152264055044280830235351496879449252014302196015930745294274678759736263645218909408540071691693677027231102132594427177799633347011206360028952990395198097093688192040498343335529567665323214990412299404179903648821240331823706624085995594729758172844015638098415994114088567546598517170581924164944146184851546075764122334310799334941399278234331417027027459160127168730982645261224101560224339955120988195396267293788085951044466766227281103211993623315582258068776762870339685383643798075863920010338837516104971123786571254805437787876329524988842364278734843598142868649525853877825113688486142742981924428906859280270789145462083652401548155944357199423169410168029363380237338435154504189078513419965963204160380236501603200698905077675125050576917559077592550913223985907127482382661546712114539551985700073750595403728168329538689462058428306155501413978780136070996764003128028282906282581708525376057981168720875816621335218880794779235702755122043592899987265955443032517153120129245160103341696715384933134682212217212940716080071595208405155610941916533696368199804275010354431518656723564951528127454395520548845224147457744129336417096284640009906386347272820668606734667885988888412876201127993706871889191794338694185935210500635061201609104803726564914978635996370488957526000266174887678149355910646474889830301924346451338534366460644168708550681344091633840413615259248994644127802413199832949700648462051718274821811022444212833331650848633705964787938820896805307283866789274118884692381948086315613771920256262587135952999576037203413674683256131219383586919659020850709958549355419824605058483744527716112818628272586483339037866345963192090107852962009152504831580467133643778094781670875737439283952020558936535526777857563015783880769517131448492708996305275075214377319426006548204461275653120022603892805475643075019003411086685540555552664838927185406264702163263665302899063045876179701646188537629535738456073994289775797817317053218376322424722428132473066536225306144756312400438323806460428674545929725712470214150310085529942482300008285622536783676710109262158411887728206761903819836206622045856090956899922658825281644237671978700527424866968974244396021708860920001706058784065295366152846957006887571395401377596163860039551082169711836267617258708982652896721627037169239581713985644714967688638475683084991242446038623288517591727683076491735259843474270690722307936393453433973513056167514530556367850214243405099116880528773650985375387098568720270196014364253154281487124799382919931278065759401822464545724060493278079831593376516197024127676536713148590073071172486653499579166027421539603016215015425821491876634190712170205486566524920613575962346577553424163058587099138843083435658924735669465791796173304115376611508991001926662526605087921889733160892552479424681105048114958367666878225946272482670246210362416849205464262005177800379143675180962275052499740453899218145970869273196094035256139480388579614420052111164182258993577824309168717527370528211582243054499730544701607197966528196689387614196708304965040758587285254107557843769926078806552427395328182861226046400072010374517812579893448442295487522955251903373738959696507868243580159580645896765973692621922379984808558942148941132946171715656321084591203148768344437793880460126874860138763697471704515329227205168723971432401001295810761793840321178181571150600374967225599074460542531841919937413699424858381120803050289194906273434259424825257536488797493014187803926946295707946773472122599842973481285601645226905611291393298809441974340472495526034610877067774362388484096629620762861175480181803789194821337226654439494035225715033010326461400229161537082963568577224580811677541067748643549830831847086892241404570741442710130722927251547793177671703520863106771804898304859179449458989533066961023633982008625672283492543921357955467717596175940675079124875895984003970518188280957196455647711312468272412591813132483270294322071890522126577304772899063018399188020917330331227556852857703452678905484856592930663241316111372925819118615485875567379476471060186177485499285492977048536355419604814780322277941131515431239743627920583344276382554556808252773455470178703290079855043082319598854174207271419860912068727879765470275080525869556934623510842882337414082903932231981979483808715156752030579601462258498540810795095339086940772822172835789196398612815860704136901338474468535676263808285997850645184394139120020335984811541569309339427836864450491250723351800914652594951186415794246864453951080719021226412071724952700999265563750574158925549478961330963981079702450821452326773196119165523041060161850058518001118669929581311381898686497396111261362765034216518492451425740971238075973442471590259249176272651450295313188473582321974150562091438721110045089350246930640753842018080896021612827869794851566238468363497224982033450804777905144305026453654728709691556992525790124950240286062825116448573560206942542598022291579438117265783758724309998566988967448226502646581851477463405198828400437291826618045294022253228953911440213091497360019335911484674918585180578962549467293013700617749374945511952117726784033213628971193680351977650714954331311628738325739697358113561560095580599913499371506583478295517275182747212043748226026988816101782424409619809664955273966814682789042984866500996037726298977204479826541438468693864466371848406569273616687023574703845801740009688506238440456582101253553513738989290711162818319338964066443767832480312150770560490065531099821194566674513486343936718624446079645448110922684337210464520868704329681982287621883505331750350732732539937520387379891960674922656949716414055191754256376691459921603672820686360492500157107351210054463973884724177089306861015252248986014401181515833820445100320290764071527987371890857590918224602450820826641849431453877484318776122986122742436763230907809272954753268304033290247674300074742426036309353947455905755951627122327329640720805429951843092139348290345796388584274823231336231190574640496600903415919908697861039980326861051935241658851290651864828429767118438342990015839831256360443115659164396972673952872164191526959433334470944396690344913259685736069377106522579172276326526909905391472837893432762209092822847832329146871358296340060076204764209317988135198827444036158478631912410928633641097810474543475820823908339763622390958398892437455118771195599806785286385785454095179403519811821936344758926061223611523602940084639891677706169306030597357937708523628408336210260376528224600223328192117212220909233664030339675266837979550369542244714562231041356715589036039729397375809331232251339877369103636822078615046826252658416806946715869606051691526455400023228207105022432432950052102364690015839637666770111304613489315106578710260692224122207428415165966205975716083048141459077406307041901864362581963704542798396891094644129720129667689047712243890337348476765104876621668634687191281292800988346064907755596586594086586278034414590385881473154977539165104158419686355623853279979244020864076751660821171795191307209130241359708565251796969025586474513149825332167842827978944793249799308000263741718656109582904104868245369261963773887872006891702010918264419662802086039996454345299535454993512142592248634982404963340934426010582838920084492470940324695660887253181787696352230641638306088770019835855306292273580581488926715820127151164047717827881730938594460126603425649293198521631562564427048129657643288793231223333249817465744626562266101173618106101487318271599314915254218638147438497244453262328345261679373972066563667160411932734866055039983806033801521464046887333435024190811749429744853404392012711884964236370379511439467825652933472889873950205253867349373772827191296802539417588963910452612717411937990928141331679378083422988278754612138980141388388131716501029414112539748004104112308474139375752409428567541927837185350059176537184195584124593079995093009292972734028804862270328576158025645759038302525626610270470413986892265985627850688554606164085813539428671173706610813732347942360837498896566820588584323220930521270911686762715160587364207896923848759080393623912117912207763827265934153591438574682050349007046518331101824890097185234139884310046995228783818579732586687711848399458276033302623334361448609218432515862523810170902576983835054315817635678687157185348779221671298103522899536034421737826007031665883013330669586988319598690585558904216691573558947785836624508507640880850573233264005371922143178077582996730763867079547051302837163437539519577637650597658082103375811144729075144303603074227387844412885996767344681322709302538315793449410689194378847592300784882272261179694835696612249515037194720282224892416633959027397421115116638406912785190552231976632920436431602408497560755683784166346464610216611310312981591727572895862461540970869049990858465034400547557206090301203182284543988975809148165770693261017389797189350510487971011058101843161276216873491930684484443949700102551466611459240961153444608220893513918772918175976624682568093260740624202280804915068225865953192849771705212169244733968563747725889607413280801597342083992739981409260571985823266037684873733128784990048399213662825749983487342624615552981155996802476962701416270242449732035650627026575406932128900856061486169187123773474144815842713332139532362704355879707328227691384246027216490035706262887377637277702856552093733889435472691958026987329176720806653311323799224359128628907801807106721174315139257850375764626277684869164591772126948731634298517693199181998484413567090382182925172038000706758604394531442171934023679254072373287457687316158129266731159532888778594969878004198731609729536749393479155310962374428223092076168640181597794801782910526632754207316025300933388759348334021180541572413118945862721313017870388495003867258264109868524473904418253788002550408874118471483941913358921916012671973484902137578507613640821648674599531070394873522335815454387712392927036600728998941161220954931274217409006214717899208326389019592582816989600201679203962912247864285685104358299227367437460232114473123990122894064794481922877772423474158775292191704300574842739511606166364914233883108455339207146789601631222472108440252767340813638682147984201705434443038003569431497768535595217607792460382102057804095067342395903300465357999839078267484068569306744536120864317403861286962029669071213014907223025109609872045485126631230990195208411516341282199108661726408110281023879782706872948749685457054119352442681649282766902214954453485885714709297507797963964770653750995865853053736118245097326444461762448078325926436821933909634201263097349119530863829335415669413347906569315041134199804734261346019525658442958835715365478949015891166239407776022539931536008406625117115737754425271565314843088410135463225691491092945239878075984548517226340436254039786448123875888889412797772634581387341209738608851106892798088315260813724948810129348684697553774903256035557323457709965891462004251718556596771376966572973952668135857611147884639277245012461667980472226993478979884263910920438331642615446010971100459456872530903555051059522558491886586044310479470128207940019362766263034344279005128573967248996984391056898621035306614166110654572121729438359111775477592233059792969570261160709494457486003913044356195655058835161972932164789469021156538153559899858912069948733438549767923844474474610496762346527832345735499195119432532097750284257849683228616468964584513350260464607165262772797920939636712847192869940022168575063051109962475421926749941903422203910431429435571184013674715733632937852344703004773566995286894190817988034108238980713890292184159806509388824912898708162153241516458411145513925360155543744342293752638698885114340182457246060823100751311464891380230548120570176808226227362079880012468435522658182254340989136659155410815014767422692031090815752153483412451463320593853439273880314032805645008886620481998953547702831319725014341418830395632983413915571268245013003596425787052386837848006250432278460093086527855390731922011325836045070682230813229995340748169034116373212418417677061427141728859194156006343208444668928934024542913179765038844436047226758294658844306519235491661842145551724626077906135285679237580447339069869676785207237745699303605015382364361297100804429153376098996567438223856561274358775736225450724414808892105526506211862213073015781322238836399828288159188177713382105703316756199002512655104513756916413739010649048030070205816772414234431499544446433642286692770556958289610368899414037095837727835292813314744135435718197027727014273592688984528742502082654803499172707087972995437251061808956053503685455874839486386130624543154707589962839313424685658839681081094211841658800892616787885766783084655328594840048987676380922506573217021042562714676076137026230605534749055696911372516203901871694450548420827314093648395447859715248039495617963712599091892069635526117637234825703958623375433438421924271510502491798081113198864131205654129225486277288759829369619278196159477297003904183456314611779469987406130660985694817247448570781642144512344257379310667006560289872205201634427251537500715927698071363598236476549213605756877574329075898407265780119197234096091661864043455091927210512976917439177597164782546706245818721941137132661150312654779089621597077011469513248603670915203672579625075713767722703107209691479337470142869204081950823451235981770301899617284573161641849774837982152473529456503254379156308444673063482416662046254195295743014795857464279497093166974732808937828735916490118806730962114417713462183409652940802243867306893010325645359237686314586962674961389446751919063593399194051706127360604134659754519150599725627723279413122739130942639188626127895899711844359087917675757069778138262509299115270010687625710199474761659699602733234798538876716383746370509698901008151170012099242944989567832049559955495310388595843927024016457331256599231332483926763388132421163630074920938759631113388158244955022851970786897399497862840124903130271049578270960671873603396370829545717184853824688792038643111454317867121662863877221644703490622531613106949444421466631152453733538651314047390123182905471042738764298273315547505207508730206099016718950289775103247038270635782840714640079045030809311340219892617397399314702743825988768905792232189642637668463029050246498553279822466958924178634865713466245436629102412448776387093975705061028993126061093958426592293752910018737637838531787110016429689247824491334764565140334978076298189275433211084458241034387539579341293801109363274489589018894365215692652594087826813300765625439258079334427070328735107630371258599277024302313245211153578355701558710883184115076836485998856916980682665977210143288465357214434373588348031017308495381452867385366048442557035536171084896467002365234584021496888232772570900154290372876260664217301488377829023427383426174212474400908684134848632152291971472944263869962224205585766102367599499389907501173337731229431490389053929239151417399294979831874164392088062435282510342713204375929550213058167522928686692476719747559605865661371689512633513094149943036795214961706238060354353902448911798168406126050926611088697320464603019746608743383227041384550805424519005581667050214692490522162876858590446972181447090006322576987722575841252913912381306307729905091800812138942349471108496393886167291902813034142659656146845618451750403749322765522043359633733977725177511771415052072506980566699908349836769677548886269873703075246327400486245044376903601719663492833169221835624148394883372994568147781872321293127121443046819350477415026271516544986360010661897293197253006532735822604940409289115300702905023484894573986273699916337397916539050053022017059034711469734864861997583899069844479717315843822264316063859337728026023790581540945389043828868045235519270591715467474715746341736971960673977666241610730525199094219550678791807859864903591501141536371857864851241102859413086045270069345145235530639058725014458590117480287602006726307738561818601863872919398609810542624200840927955786446556410363449319091571626434569352490432022356925226104361275394789166865689434701750622019983931829303314091065878001288077233578109441403482465980291203225743510651877182195126477740799419209846242687115639001227769616693721297015882269966039093032552902724887739002721348266886689631384410820001474444499602965747415014130999517957196339152558943890132305722861427261527606176116832970103548410378368680752089841599311298944755053706082998968463128782151057467320132813199395262568048751667694567575420181101784184880061908078625590674217854939012817636079667238977903311945421719230332973434173682848543839924166596116947071095123518744574036933026847367371302594517442478894428113118693884186253850932915257079754695572809731773953450718024207426536647595502701554692083683031210996716301823721033034900886782331853930779873470058605289153300222694510869428206629286876827721689844388216213174418608590606059035112375983291997728298140651780330263062908053801405616378154909820804452497224550131927668362426040180684620936873580800527497356901374678070413292824197428641687037409127584456068309288345900418893725385350583130816680074186972068852083455890667117664542804712736618004029799183355712195918712902540924282468934847041181689120613350249687891399554420946456510106936172267714338196184588600242916993090606119389511015088781317322308444713195608600351459512347821850473558509216034874983662132225811255595563890580898747043855173303206910763524434957297369056801992151650504150755851087597254130266210691270354974781825947976701275767892863337016687487144854648206795307726967580080892782696963034790870123256950650823639573079607582291854970843959649992818421374893460057316301476678192451971797600496531350561164052290794490788852677697909672387250293932924821310112217157587084395752973899255571669964415272814494916178892789966974700950212675191136042377220257098871731656653067511373451815935934444462631481503830691652481298453230199968066913812253365959326312873711131773462959862859715960553896375692093601289295315193282113390832185717239692899637965734791282146914875315558458028537956728567822343937452208354869459650616676767409110152837753392274827008262138905960273894261541809630562600386770861255825697685924400770748473136155976902125613251538983848638389645758281388050963882879490299849944267351708537903553092893558153965630262313535656237824144198891218715917280439802914686802465404123665478297322135484329718237130831711825896988903971412807062552872508005226681700539822299367872985829369898656887104283610749429786004518885239750810916204798206552596967039575234714654265874755707356706298951839682437876950758594756258292878580530326836346966091355579360149745985796160691788832445241890937995219405644223402712217449305883249431340373345878372772870531884693188403249124424468023653775078731000062815118844801091987112805076383065134540288870328412360195938529605136715275098370590774493828078235618106910323503409867104521843503943954976559223262324138769694995183690992438640833703627531591751262477547934110370138272237759504671802421869941979580142207869576585984942096186546013045065661802786559315118402712095521114375766647491317049750486334695685693577159617700534365075552940399310185865974324779541435691814109814884891833129370422803688348695790606723379604100675120641823042207803180032849216553401373451345221647038810156753980487890550649979992201537103112392183895260096889360756972653593419701553925160632373500287424700677535279961413018833059043505263816902886283699899318242814672525690255292099581803999715135682494163513312249715537645202568541015389214320973154576153709075522896487653839235445283441648570779441586448951631765077139503972755220310384079553071130690633049764054134671730565700784082299448379557958847344143020002616590167175300084087666458737109419655213056803945172512357758151560657369372639970904662458322901210432110411353155571058497893213132575921324242549917277528718329664461410301795361168402276202590210645055955106022049309330450721109722553306448190802015422219872471501689343442486821778154598125257567585663013928789509856113256284807376290237936791382448664970892420132804491320174640623758980740395650985184474904171930502065501472360147815636822653525306098242040997802863436953197745797185843949810180954330519055365513941470901598547151760997787903228326965915097719501099260877160548307701566522466404793929302559594690262317827426208299904613715455096576584936787067666017685202735611772018068528888671804625485214945018031933536130530059600245758726252313021394536304398408192827307466172676041504269883885104744982091562545422736859331306715518231712251333463659986838154000751974103013363390458451427118391736767495358698709899765199754914822059063433407918214851772322092950658182821237623962095322050567172733301033610526470586654625960894335079950390313339050574022101698291811372420053491051864224729861803823102691383191624452412206866353520039763407512865975516502194902768739862571948729100727332907309656481966020401355080309077243604922740853209398183342216963994755050108245997180257589487840126481916814000985792866047806634850429689986269495392078553847871043403054956102180572929218644185829646244778375661984583225939432130717851456571238907474915562085865595254471259962977841604447217628918666810053008717333755734218002232788048170881968287040435011313670920020175517338544193680584717318589627109923671087579311943482808083267116600794047360961848892934775909984842081772999150231777890253551333280958973568734001909723098921526564449162109799745636908028842895149092000117763788603014456469203265217624490693921846155788029656262734528051163528502675369661678813862948013377425089859672979973693165344896783903400299733338503081071314878747105865098954892687618996971844346482825036196087049733438624714378239876320984252516498893692324865839029276009898807473909262710671829577332905594683577661108327629202568389421528775158447325609375533301582800706377563079456053812940491677517233169909903626754095919141938941894905183081376751848481527732602059368067060361362384868870396454913887957634084582727382650142696684737065557817472462467047653233698397216097163514871209658202084932471001492966871499875409844565368026761396884814813896430792466194124195711262997736921593772056321371395246004479799698180611607188285027776676187921446840584925603058738016234749063185817972405971045031929637610960806204480822554093733395534881463487751336707564744985535689069431538626578151146330847921523150695508314194725432413494879447658681177678092622972330044852636931806123340418786619563406145431312712591017622020675773142596006750530159798654441972546910802900203376727623032019345546102295544197926780314316655274349363213322270714692008964552108169156437860900589130459968171092045939147599122309176875800691008652009520595197593884669654349121375680025884626677623676612198154185865895557902107182616344510449311427047041604690072558794008010782529573007644135328311416542530878415488628700109062202221177352559176702950442814343601137859062385134933935437335019931105868230837685904112607985938202558622182793725686859970044718572409205768376498335760960037252681512747120182482322926654591933776517963773927302844787883669892547010121633906401985005696049795578531223177876267054150412792024827906306592089319743874527050195858320854314356048726493915096497555018134687896509171638696282514689635339627280548362468638804408768918190653586822644143035177544291255968920258762932256017034735808683284303468663032900871804380225400848937964827939989966726628954626695695536881575575412369415968384666370471426159070043876034962380970828994870020015203312649848430266229188231650357411676858396445516581271880895844236654786674688256579967915937380384136812796171200055097161401735196394829844565799239553221157503988179828978346534454508195120499466509640945507826448832786135551489439881286631562467871669228331287936917376138489461074359883913378842787542767173223531339865592880198213231321452279349471166029300876439432245822951344143737717008086567912247180777769874776809797281200838184195660651309550117999183006162571391537260955728530522842276628122021959081461629954326445359196337267997624769186430924543903600301491406529301558694370299834984385896586889108331819215306972496065217984032761459955358783530961787742896196709662856496512214608837986672973855761175495994680913702744684111771778899147303134508312355657806655421565603008916878475665086407098890560750669671077647965797599048461793988048933449343355576795141370228369982473230448004864016615998147208230031320761743703004927128378946339300005499003714255055070258530132938713570837580298741910638726265157072475610426726495782807998498065032514672610797545523474874545513320688021125760158320281654199118788866690371474675451655016739332340174606099286342672007649102379089261292997520423323983859955241858730148582129175308002705543207349131545898676016556902966774127696380320365418418282815777472061504648502674100305004929573242727345350190996025813484658973808618082597192533262585437626671760886785769277377148230931438253986470980931511058557468879600253639571814437811474709450300839935736340169300701900392260989598966195003753680145428870624940646937598989759032961427223139136997892017296059903525953477504973953424840290237297266269328332223857051982416496531083257010161909941941705395002493846315482916361972833056137171663844488951194886555310569951601572066453088490840360175066856189789776654648273641110677327597150223236011278315757792813525392973168326217139332942518681954614811466485132559247392900642363370987118672938406472498056729769462728472392840815711040800669858038675141831822367248629348421872371382358183704156201213625856252460565951610367736225139187380272893645730708661263479202708541957592905997739563093509963642986087708893206615391364740661826324543452639040409883738968614911442502658131139903293239742086358737839001899053214674128211014451944113995658539209617322560631417317319718893894580319777600700378387212830588421599870934819112883407071941733078831141078616462773833544550654641408921840647944974328086437777988377486168563169656089736444330775701507326390198977557341340791862312401507145436275229550366066176487262064557698821359745561331599577440989069413875345045697644174134054174787121518424914835411476920938092646917290932338956852889712591309478200543528411579848344278474754291609177093061287134694323858470866199622788461778262460196826359246821289134533025887447004440926267312555774577606477489413502925793962829220921362606138077137849718575456141941146654811694688924082153557460308265472776217523304504340171421630770842667087456956879827771171047105492930249021593208062051503663949234508150591803173100746306154184263929593580806967278043931394999644344617032607448669285131586777661290700699625629478395243624421381565608591758696900813081038837484527867594287646646197122123383741608134543756478360760051142508955622061713613766602466865609013250658397560452634797450254284033894936967856206119139623912819274792578065812787276552756630330550870892212293268066079638831962165195622478956255327511556134202777087651572978857809456756871950710897733141387659390672647911537795239433593167672615762792432150266871909713885844769091864003039074172758272206860941004989080475383158292815023523639338591881410497542208684581904703138945885457936058527414127863375100657087050314909248136764669817189814045995177115677064715701528775287738711909505913584501979517447564649068180471037111360972920545290244893538926964326459998028787774188834198573476240270423987040221296905705995335358962207159764013088557109026557303084966326600896582502310534636435140244496743198108658809161770953179053369982071516105224660984123592813328685904936533243306318062584729557682698503699258863047944461481806319654106470315648899604714606160670624795341756567006584179383696159251556789174632245057961425483938768143786233385762742741810233910223624843568817012294296135998454411808286282570784819901002253948069569644413756351417274256750475809759866146479627636988737457306396825513636465020354394893201229049495812032393824458178948516064430835703281648031491205315214628139152079953143841463327639508153785091681598764781047383783233583947253493282030765250531969731626805848110762050558776682535381696690372080720837424737858712852946447824606300371505063176907105730993473576665403544333227337011408810652305222807937152867284300194821301756846335053400559718985120766401904962625994067346764278604445716573896734402524926596281269491040087748099788948053361699684062325165271763233000810463386351437131236849416129903364647553044597851826491553290906137739962741639018996829999595281146492272956769941647352463846925754471046570449612445943459282622645049526447266863174974550126074701984590511441614949754715872940632421345132068951172257734938724493350720153729336134345526455544285307783953184490129780631172285845510344687020271162890996034167112391129746763698237262316834339899585816352745525177718085317859619890949540503890197121242931236942875709266614667339230234422554377492988567724757023168413882064649706149662736393494681193522814610982227969557287555874109150606033759033862290751155173568586283429845575316325049572707914624920568539663925161278629939083051951002238979705329099402865013944895458435710690281979428982759372102608178758686690393704445607692098871121797469186541208453499528339781662114947670477103489178790656630703781274007006749017879910420951590630440336798545703707027829153914300117730458067030717011073139027493147407590270713090715673577460466469338706914196457345468168302501743673572967480587443968156342065658953714181282103544283345188266136962852082856399327913036721486774439012902810421016594418455772135021673191133565076469889035986054555114456109660992186882607339824509501956955303451005621615066803163604818838927679947804939345374767814465733211925490062984333356133822563714500455563320018624396182852191031809444634444713925530969780310347891642841322739275583355462930168095430849180211440233770499348823153886444991342992710196986718062977061807827925962334349288534619964005635458750167639570724848123948098434287927315752572975554819102408544544949870073294311321970030397739954578709425607069692165475806090013917162187844783464563827309854509229721271143058616836390485606532296994935473690191891353843376877424608254334116321624643830034713275855389298098322703781163130630872921799287930338971814089504958813323286666581221534388488113471338000855953161255555328559837160275068935114990514237361794335728835486863851854136510989700896786410729819881178267987318425375244636224322708971710269892196287725837708526057749263043788596947719596359385905843362628875609078530311489758287273742103740958214372555826661799048645760243671261876885732879836455846937068782136928472635640178200852687774154618264459930178043404103637579215487157323965606220322819498671885830092366412115214058929101003454227947163103087477069096603183545030276427166616331555967205736415347209464483699484425964295056395799252989056008585282477344561088176359967239378409617591243659028954176045850776184631827963184694371227475540994298608428283730005726227863791257446326467070624315091152600677390982134649299635864841074215248759944421045058806254309206942339125745404324929099526200330708919951397940011915019080047006789790188519417565262223966637798227237883299142845367521373740626913324094186198178684916443756738082071364220285518177732633986153416347032958199734605531323305037523967208995553393839256484013131241492541207797624811507741152170885610381806039643762174425732338997184120749305924739378452561536866482628376088850013240773888476791840761230161671991320497122389339985423860875943601990518714687224931416063136484864965183726055656099348645246677439928995515101135614060261271614960372665595378809508575162735905751742947952399174533976754963797229543291508491946427979031600439385654660121106378224981963320016763923553981896809761302322299880366291589191719868922732265233326621381766718123359108320653672177559096322642592965367272650158853719178137378110047101363316808790556442514690384146420465449653010094278301556826383886840632505856886224735664726197306455219443959572996614451759515547050571752657934622388586866849355593308982247148394260529170032738589597744764180971709022609083463720006981789714570801272621540140109737157522331978568107463960718668309938078599132166140941151657308454792705597290677134859672628093686196453740728887326621687310968092355609022976643208143763315424580278271935226486688765325673775907179021063474468119284954533780646891672489247810959755384746837029374564980633822851214730296834938065304900295526450051179470886304231016583402330473244811008000611407408447183336274541597475152746445361289694325382811799864044660829385114341283612503417049434479919411000931890027882719943943574590262944714843697649701296608261306183522365737138472147774569497450270966510742795125265529495238121123910473693715348598629506452825104317635227293290761183457272359309906895341148155930318199205955739751617510321426270259227372307191454832069883863876160080133762643321850332479732651818187369930633546261790879216597320050962608206453768234115618286837613782269858048657531173982279538986502872502042958826842894109156272488119264122697324954722422493425741936087225046459185525947542944260621380083706945098064342531906223881903640149491689277677461619125015028376630331415475522026789667701999139133148638456995208472478409671242516120833559028155269240189063123173767929366455048011165609593759153080683820132969500350591809007972290731986580634775349323842635334927586349378097982470270256777349596046769084052232536861935568590307286467816235051936157358786214585234189274852990732975371083449638753067245712957901073611991954306527456066514765916156119409322170107590964718060405128664247990403985491011375442811031773938344023831152456114405834277946674119911047755662423507761084492232748385172307594352079133793296981487383075210197210461614508441200224967370760774088758721576960912854330544198985369608676502860306404102604713839857931831727682175666602200204461359723384358119276698742078231274210434953562177544529130665264994072811037909643539807099724239846234874280638994133666316661339002547078718236230016677878651655200327139377913563819347886088754280961262760614438237193757893410200729600990284011536028489523259351673196756062299899092454661034015914127621181684913997269291546517580527894620233404468564106940872972130462555270767761579124480268525766361553395551222014425850972810979632360092970320415580808637146177770063901315520410295545419519203558283028856610501956760660692168032654683837312968602269180509728002343853306114058384934584330805761729573397679784950010031477817761278682195140066971175571908682550938413109086241416036412942463597753897472918360604023907895691780972083466409920486683919495320969090309729547001729488884715688968932879441068758278404287037666372311141894999631220394723291041130625522339386847060144054891331802312626410671227046057358758006609891431918242753711731054674516209712623485366237922757150897056240649593961230518364121766813546900185595396722376398296874580493063302283461479519797531888511755465825693732438481282972472302734536110916515374688486180212967681516679340817804706952589920158015318747249017158764030429728753105620211295557606686772648045383387099725438327113911963314939736703927247203914930933115048977956443690602125813888458628965305415380975173285979465037089125989677113380688482280566754808617893844144940108637724021624252689023246124467242006558330860138665191132940824045791306585985831475174861745485608892692357775598612292270116686339544652242218753817953922612672013798872676984926205891674077414900091698197702554388286035869629006867310645579310752673113988939183965547467452313933617300420242064244486788745640589174289082153502660887912534251180653455369523103571588556672400694329380936199185746019547405893499642893606100874841931617408251430192385616983058381733594926128926371874565984693460060069213142890323883406846302563089806766344097402057186675763022111748863030315264002889144581069359841789399803959644874183339501461451813142219017126496164053164729897600252848287641804300275750162347614093477722357425177745399997844934204250106591705882230948541422600392236569455886286153162907977285854339643112700002426495375551262152862011259009127871603031054979039307406306734019591520385686927208883442070745735348365947249234582541091327693973602352925998675677460633642071371688394536695628951275609948620019945555427810221579061618764666645975672199084340599794513255146359005555420438807774484458854878447759386833193286336370522520508341775732950481412706453909477995211233240454416558670043161422223021582274332538227772504523299113196756041669922825487070363157975702982795319971951602499264361134487781259372872499389974180884454584919718605970299361262977318218704380909531461123091984063972282482459938629634529916690686947117616916318142259551581458724348940261409116692601218413532420474132966066173346299566314292614551148340430149899679737602377985864060891452371897076407895516926951712013847348089590716050308147842793470069353919509682978556919336085480078719321609131300954924159562489369903448926598514653605553180104088742396069068794975254584297504823128667458822085804551554239041830881323016718934189818309086428230625083195021290353644313845510665538441300794615337171799131466294347010614867261261022971805859718714646787463598455389500780029583333093046896202261959862007543250221114693578237263846824577270381089621329715474122522850500436141581483381116214547885120584634087147948401086863040118115294846663182259436612570994790107741031007941045364312475438661620678590357245983527225126047371777316815604210660103067230013518635654228551614258529722407541028890581896252982630762983988629486481844760601683497266172899192536306340518772927707925953162224115407203774542821996573255125080338495180565209398837072427873067215897559449524857866917621202636241992024733036057005672147389326410731494786461613277396555672129606669750132548594743199752557370085899431999249161406084327056639384902071676825867191413226899003570432445984559790827606799004417876078191100723106561599652665280630210204852347328251012405122328825467823492514498329321644150998990171705650110021361621253922878787699163443108196012860628041592078147681020449604403580360095631271271587038781406666907196346355657873496013090483084207043573913086796274667071673373601307289878088782629764017507422630350122131200459928076922506803609304328513280314471443668929471821695841628667585275374572091769229196687927601229452249473930059765003553230007778065674350522678654561005284712167539387292884945711718682647555741511532068343577861770249908239269232989676001778174507255016672278380094095127138053193332196212402674359153384756494577874179803652568889295864874927453080748712494719127089870703513292884570178900595757130491473726660158917414125627285343386108912838059990201881868344752399697595095271205347855558038078953244019395631265831510205064827092024084598778304166494199644806475466890000444095907637738131940198008156851623527398087203913731282837034524108385580653130046931347490974179035141317854969277775447498964853472783047982017099548262293227559046122693611123686427012355489577297918824512020117799715215564216040454895613438065267227933731028242752153536298282336542806742115070061017760232984169615284332543814493583872307501993519439862672693355943217803158737198512521857090507241113834619598585889259467488285629639753006503224418425075087391325229386335193795501598658940422196563097474965901343420797657481344736893182027578452412587130165491657976542541103558782543370746090591190132519079666469179287548243458463333064808956814395638537795284635962598581361461522604318719885413614357700315313398832357520222400375495696788745425840330476785785656104790479114839151267337636687876598692529253619948018122508138485423355669115790381048150417685529600004869864882402100122942478512345404225819433073859589316994284971644014167737626626998585707651138073941524733591149222019679360293808833085194252107167386755674580089325780975283472991512135354343992282876981462430401959186926113802136274146136722651248029351641088585339710024132093230201092367232875869142092487899877423860071145880618912985409469994562829177553959414069138683159051400533934979707726399728452522414139181502406621549279965112829637176920720743406471173835195897373301165120779440446525491773432954247550163786388033074468357053439565106156257174039184964218559077775113776663350016165875594994597806291291060024860030639346348418233532099808845709760116916659042315251043288653535886918727254156750298236218632906107945234078504959538735032408846494844461439193980439857369851544988594062402641010788543125282904281963940061506688999580211486840730777058192065754474679477284447357508381474400576928433709090234456886209592748105259454197755753647140040521844543918625930185209324648175078630524292378618749929791400805490612691097896345888430880290930992226696136091568761971813972681712649539170085892681814355334053998443434323574046124222402810481611956997975869474748597433953642448074933018318084745393491379321415311770395419875445602170497644025688605381596084170734234411246121282055614823637917417098251010401992007067057799370199991960835810774014897544924873805662643406483109741620338831691183913931202447140155281732373272391621780511544629004653528886565653240031088061554976797907661159238784602640162822027172473987569049907905383646412622130664182454554041136270663140474538819655230874187933004057871763921694816675140905392428038299924308979838406560500538051069978161648817803580705793808453879169672726709270765824295544379683357663399277210629624149802244533289169250624900204694758377267597512498581051867180981104096770075642877589417898258273077209559990650963321745437540649767889846035273675152676290766269054718813185790092329648974845934395419328098730370917269264681286578835509047236911701376363493187655963244082556753040236526181622602326356382113900831710043422641683135597280443683591276910570734761311413092104127281299155787482858316340825635505613559718299945914454225109402755790117544776790434482047327081565845439521803756569493431980322728326452467414939646877791391529918104607146579744174786099509510883293646033094913462664701751542030386607871286271893010558770552686812927933690720088986907972609276800214741130147735968556927508415685978125783971741464094853726627190142774351795479496429602373442253271891697477814079516431506586786263938121549104988880597981361868907605553243369358935690707404334463992504161307037930717154076896880627824283347159797362141750023566552432642839162592824217402161572449669413364525870442040733791578181387974596779573985656154980767993687544615182082337176020773071790752330060570792748942915938245829345195730366932169714840122168551001179835645463920085111969537696880168023607521432098573496984925886607581823645965690620648698276353109852893558144125006690299238412745072871594794499507344956549788384864932868718267684062954025376175502924810086199178476774945897149773746522619442711438280333599309086950140522935264537816538773173181846659548215527208169584661719477001564177962567956962663172042117412244546541503125612334883977516934394586260429286335310783009597363386673916783239048647427232315710607075637954720153233734298830720333277636602977398319387611692159904674243209968701592858857835802583793832448275413829489903794023920427448958025478285451028605503019364534402864708664455209547732202952003691441360541814369736307638601267691564926481153588897430487883525805417290517564094478337659390246286788916695762003308496160020801909158632330456422355090125206922830140163832826524170014345738367005158075807312546596124371609871389555778895819933003777295953842998281997479313743257776588929438944815096244501374366736650267627934205943676376517617251639460779037658741679185422065395459334972416714232564791246101283798918409268941508487118660348698271546244006713641908127137284674332504862703116801597570380954093726862852445839377063113237198964776049266198911901680824853830423983451813661580357030810922019139767718021779300508089994547853912466075259732778041282297637190049671121271274717545159997151211545028381436801207720025848387817332787646125591422154623931930872417816193079267807234690842333531793477158604533090596721525064152491880612247352249119715727693443144608074314396665912780736927331600084464908413079936573623194624769546158718561398159624759614382537061662971403903618483148325753176361931899657603447779007879804873482386215667504624487834252326438803360755393361333588375329538224477576934848898068366437994330713851782206704253412693913518303343774509295550870259383214393822200343559686096826267730123671370382515487809776684885622697469396459967061851999386648374759643460546645782439876384633683207038238158789196257731297278779894025259870276423930420836481209918311290808603075623412732249932290277776510223231802080898929888671665603040135644785328042549197839486503342971474572564943191450755668354079652861271540315570228448251328409609993713971010809853679318623281195188208301792601654373830362866396262470002914473794260613334429494096888359332453423078955898449226904668720812534473898166685563932284519065253185481302023793334563551408369157251346887546397429598591922692834841528588295334832950795837507641093102930149167560582541531084204765750847420872436955038826681222157674649411029912293773242200659802711598512098669129810831562543812674570625149107899372294138381495788536812941040107334853583032667965218178419234011543053186469638774724837531709976944056005703672629218841015557629360227880959429995326903033201684115222718532299947135110065419397878149631099472787472197691258166621325011715994707878909762153084165426810857756500943517528414808009841251992703274901194313058887653466193123024802538464190991858080600930337868241880124229980583548839961576830772511409699139352445795778878018715232187142848174617153602813528597196747658103504510939127619351530583143462528367099904792153760484872804735682308518270713843847879436754529914415160945391824944081722033516027199045632165189637489029696603408882585106748578915241142962882458476170645143220341377524942076840942297841330279368855972153533811693310305639249448280043752452381074871522374553974677691723304009142223127925094407746659286614049002813343769100048132153316864835899690985003501828968787870471338032916182683145285736435717290330008287714660303220913621700595774690298304496346278536700681866300910706807644650541807795724642456381960030081775625527733552550398111968529149950388954369185100122638696987106309676398137453079309170162822637826091675756017159843540086166470519287861562027895519959924766534471357084531800131429031586730175202881179781967934878155878169901522337227049181428126536951717143213672134190919665746520948704536245874415365962850603336652220990653041077549149018633266305029597862490666259686591626670412736990659191647670065232702275977752136941563503952155881740853090774855650430612015195388129833416213394062961113612899481878665205287336274852656347659641595250219868824518778996190731563140122701308866654969849391148366379984952006019924531044683479129535984077391564610113940173172871472190655754754166341947100137047413971970482948749948685651609841945661677766955093361846816288326901303678193872745009700197454963204170125236255917585209097694553469457463354888172538365542097847524893710016619600177046467559727284552038775420109928340202648693853318096749459808456475467160876705290920556755919822499891279597857629275933993012404498986413026263116951816092869077881674880694990319921511615335188259771922481629436841664868247096897848307739130552703456371868791633921698774265940875728081720423198397404452579907268353839203031557778888310717461263781522684185170477217880329233455869228458738865696909076485653993006868905718324642127917953307349019517445066374834371510535381443641066167882135930632036887082096468581874696468708252763720312556303985792090085649410083851986597964130951415813760709219177229498096239702795918969066329321426351044527514167973721687012576809860356896576133670755280187829046904436085028223740611776041556759851187767069000363946334769452769018915884690880615850075693291151764187693533766069591843249439865287759433425231826531250077161676286202993603732443554409904038463424044661760049525256482726767646080813530600009490623534792855859259674514353057518853214119750939308798677612883756948088364309256546469238878016300819512982811826187620503987160778826111775303916370829619045506060286422018265594063200937624233899451973520270405116349886208692564764861819717785829825987674380481186374066329294935153907861978746521141013331882935832558525727757524382465290144397434645212375308773435878135292902403588198343626814821336192017904337038295654271104021316038642510192314488173802237697582208311652552325657668054953582197895117432019485794962145966842012579867140719496933903239678663325094174511081145081416424431715274064359947480455998549354510077067652870761918783796483955961775657613777020793013151115797275308466322243729060656952571475503705581610520276285739581323003558806045462415244929385728903155444702146648178499069264999520617588389767847383982106815547157991218081240472907596494179352121520159511741670392034966487832403430142739068950033548200552729148545025977888086448404396341386844149509693404109722884381916733048413966075883016454842341354769869930348393952304421567114879806518150279855454474935607508340980096310462250717788981176597493475197858680536283711466377357253391652748750357812223513501585073176572923334654308420695756231859664873674134180377451556041859119575896319582636045485569350255122471733476986556142984671533153117075029643197209414201080200604718296107482115384842132062569544341191233562685748461048866299911455827041659821716946162906205080564064213276320664100144063088612433721002109944137606250944414151507592972800568714672877653218943796202187814195870063265925760512109025707856307234426450430518227069045729881745328367337767424876678987296909426826650692170083734672646560522328907360261270775826914263938550251626698614129615147248139228103796105843865710043851014071394517442012891543615996652421033577377039141756817643300848017745087250308839733441466594287224800101640353783467850058028306915933722189218215270845327088157201166795281828512320797427788017714741136307930024478122940076668539172503276772320637710407948642039246269953965501146570751272975007795372494784183753335573102587272029813735776348483523574426825205165976813543653431207935941950867075015304061917106708345044505950756886062483266372013777250063386553291869355027554065258042602668198438093539779845090598595020199752111343305021191895529766618057027242587211835509967282708019747138097658338556384268227411069242751472730597502588130609239068609271959253346282651951114769240250848095054842265725375263084862158482037471014775781924442113894512975368305150770179774033837445039844659428649253637471215245121106386379206608888593796332585967174352948715242419273061860202299582959290403945327504468614575088225929961309284687960348701600759673398124162533137049778649937858168963664027814184371508783426862197010761517589169416073111128560685718584997196601366452834470480131888009036165682015190361176670600565236104257131775883503570706183157329128928529519209752164055508648292616445282137316905243124468092640770614035971173668432089097253059222075290472612320931379888128632556037671085428633005965494401849792897627667054364367304728140506812603577053111420579106430760948479527589443355256374728386131747838350591493507907470471456511353632810217258065715448196845380343456533562756942160680370965441069674425292319465943135812997090872646585964995526046932764410013092577717236782256529127438092591662078704840857135835862394521954849036995661597169282127443260546981717948331448994759260410203183873035929186980242836499400338520437156656283870369265311728373135521622413161974251512803999991403512421624943115570622383738153895264587755236047132161546966994470158932518688013086215947234519286049305095539276873611265055219463165856547108617900885519566859921570532160811632637364754614198735595976875993106914036229131827682570069686842127735402666650806760601523447316729461058420472957570104568692226253457502922819504556327887691660959690942048274963804983235798099063430302431641994204583842866532572854679290354439623187286235029621915069986972096713247942570643209188953810768280630272630511374571439101991960044611706932862179286238158682474693328104699625686676013887813920235964056188622137826824254920392836091005458918063399959499761886005378172929887222885140383804486784790901561617824643333934021989343950342976126201203849553711114648577065401996832455763407221908392098225556549847313554520160139065090553666314023862649164407224774898076143664581330991340824253359011746420639284796486718067296175133807891755009960947926840059410678980046187718428912599532653690605199683586383022838461961067879823890988636285723316075653092648497064423289297273018458250048089035719263375640039129091172444301202955754925760226733076368032806519707960143122962254225408061845347842248999142578711261386926348591388205230915886556431045452128497159328026625619644060499309662520795301686662663522191852523897079787369061570503312325836463270760242575407828763504169753001583799415502749503148777953072975660607061603691285700138226611178096532312074849956870150251270987982836196310821376373365997592745635397901525281072808945736219522605034519850173304052319931950288707705041485443661554118622738376107106615540729288239731228090539470963131419763320338113054976708305544962797090559602872239855580239703244161297351939619577113908478113068628599002852645811987853470457971404975020937286905987223324313063206026036724264277888909518551286358926904724425582466295402098732384001303784153559355991447380931438133234019033084220898936268613961394834868680112289500622288409687142306097810257421369589839564223300046328556254220701938603762100274669550611038703260843259665780965098901868966312303539512011026172759021025972934592461579190005290949468281757841305287527595354539404441764606190025809527808607630840882994879886084787551498282279733115297285616093916825479258061834168984120223565705635616724733689618909140134961123740784815896262214048027848010978973439361843747744537548074837254177427308633704437942247458356853976904144538655813763503070687969204720087895630634511620779941244143089558754285446757881479853894051070813809882760042352477154142486127338715474367107177079555045279745785638042602218975709099352225718273296470762252999008760094013029419021653672644452725628740101413572583818502687325412899589365904787281518532976903554646488674951470478383908224872794106314830914695194741590118280346940327219303748487453466107038474842267450303076897545578295898499841436054913903630348835896972175162447588255288347896566691085582475076168555069444796870574217231326053616483643818705711825409455001326423045473552356107833091902284858049840826136981963139684501392446239562902055922281665164612929052224714626901213601975703965520441789727666022921792902155098157535277459188574607950636479570010554092046066729297920302580934869282826669541911628900730652727579378982463718613734573560333623941934588674397449990314690561432852358070161780451330361483090757203680123375049590813900645585616474087896982732647482241912513194923392421655032739781803517443794590506470434564460048776567120469561369420064029651798251240187729081886069250141651836482797163696533428091970720900621613430912697295137035757773459568595773934897472379405815612115040318673659367753898558719707208498189463204795715344314513182168948198621385757685049599388056001540629716936029554054303330355096227628329956552082329553713726510867641386752048843387225818336731941878872696820941849884544757217546034959545064264655933159912754038921379202380800833490048835847737475211862527807868561719124345514186142077778491763629409996703860588056923219187388591769022274038509575725058426389001360042749029750927172306886489695322430416191452505389782724994974456184387803921274943710379830984842543807658098665351137322210674286337533034704231787221374865222951039445854252660999504737308386919824355967586387792159664877714195216120353287954135452466310545654108138029511061669096468306706534090285407508680600631896403819704485198859561841913881505232889161468464407865748237191903664007852483412673301277307246152773909046786902099217665531681050511707327782688015520900063291997785429018230986540958549288827317749584043254858229024423010678100808910641201960325582021055393824579198635205202594989201170619707783147093006447631920178236238241024552842816317548257331069809982720622772918031481965605464928069366458894835703824416197389621720061579718857093177018606094459046480062467616488897353711420806307935424091313074542043162425564118058687052648761227591027632747416584679814360439894237506371537934495786120435259989593048422908038188527026912279766764195055061013799028061214798919963672770264362492972850312905116827734507664889225774574460955831922549185472772516309393998548788093646371024912882376056879547031628614976423033538120282171332030255427386437308512078743623452132411977820391479975075128535883185359304878471313352273011992029213070284239588680530176945784967434784659629145627109544911262363775904213260899567373573392524045729613753153521068152365157506162274537937593485323129689115148384130651652044256626520144464048215265049214521299924110148732875638969866841340883457328042557406370447550020909808832188722153937674208483488038938253028603581771421981001955769887062706643449798677667520675445771625106671091694359561021465984053537926553610845811119032808887930119825299140641316611984878113885720090211136860826291032049028843205305238298928532071285788008460264699878426987407535866265162814054007618321949280133184274410870433520255890065890504950281352809820106172325721219002734807192752952425901272728604996474442823187880501884552546189735210990675687958905147999866942381122099108003434709204943091903454688312451904900016635615652015627763259233848190562663475466683724407819575196274612702064270299705327043495257877565421786069605983152850486560265270969381553729021469444319597509524174565293995322283134786274612266303839973735993823961270959151173173493885144583128964007881657493089971887040507649870304358646629591343535655577104947325203124391605232409715906626428169724542871793293019824087239331314112512982841074739381957966265486173965170554056817850489690783583692986650020631092776986074281663865817838447999060547478402306079419943442110654653393311869819352272310070496405117796958699118417294459677466448003410739695917105790611250224266936123173145398397262071805977651465351464880068576974322580452728151246642820660514065572043089642978044357351163204785695050272196974162064065414497402328197666088844215134552558271088951334373706439650723309169254622250850828800478681932104019851500879835116563078651613625293468319862750154008932516731556363574983143368766480597160257859807448625622647646415674241379487733566456077657755129843555784330218544451003227325982840482500238477624141953119345952219480355215548761085372296347632680839807148412689055112629567901894174479813839346647691649647497405161782031163125739474831092482813252650586432013905914363432185748329774160520879015336320604133253121621071468647277563836113060034184955248038349519452935116514652609113955877551316964500306993506607849151954230229962876261438287696563741514667154646031145780101694920606379788292816805247781503670865302146119700144750788768506013938899335165323874531026415468810334603121380834929362423456083952162757829216245023689152831689879564184103775723045074883142130524215078179943338365007832578983141181238905354123123957738423621385645554435969284765836439595504464685023600910939177180832806490647215603643576928184140413298586028939291714567434454632534611332502489216847089887163327171706394687830709066067931127553734149915769466924792616467200016936573079897332158590890861260336456884376755402368247995594819499510050217073128625560830696829541802684201535156708299193636035934650252820547849429923307641376029871601252961172247642677120364222653178049104801139858831473066357797760041442733912755175555645757927895491421482467173739739921631672364557199123695635725515564756670841412740261347914644037675101535738974945469185593847019293950708216929817867105692335815735650882394443431069592443063295306928173407078096606507654064774447962063029649876004409693236122901330359105608439404436447115933493231667373986504540861541124392576864600303489474810754919464428227719620015425112507101951673666309778896970370066399972692140137675709739258397816075420351897506434933927487502206894258056322605453247769186499511052643063756754579095277793725249736148743808516673759916156165774287996848093113860115978989717399839970076749756455311516832958227578724548734285017334394161014539901604880883987744232348858171892336259953138746947462393963819352112346910658301465517869256643898531525036335337774318533675173555161205175284234540683365963043834636998536346263085248372519992293542661509808700994425373989683961660535694489534824725042223558231164080410644432446796887921208192275817656077966814401259708298882584497670413136633458117350392384830527674162303077175840544477252510181850413987696166729699236448371922157390361065057632807250585851555260538095335543924381859088021205548969953842354796025662071131816723082005088276192595916311475328542432989069161879483883532414350279708258048512664706019168461707151721938976151081620426944835230554319914761590619157604725379093676133589548701618868008495569911802293325154001853991376752016600341706307323694100098362230973533260491758803763942474906262244401962534715353759435849379027540044213973446853905446549717939564686423218404313677777181894605123397900130064438569771809759234345013171920911635495355495722380445667501570954895934350337148513311778798271183512880026014891359240536389608673472853061634076529748709897962742874837292252704829314977857471404764045787753144168293629380387947682246201702390665149631978464356206580638609503355890757021664305609539202471027714692044611630337897788200716881388031524517212071852619401879661000699917810739053542184150509820535372692871979291742934230218422172599485178119290817667259984604777896897744812582580316939143912333861455357252897075465375381330856608129142005099500675864340606376896815817181958487262054870995623806406562492255581644566975521339222612789800011513105436349422435623062016821122476030595033577819647185522178670072230881518100613241229610908722967428382057428957636302022897709620829035045449467630534161165366338785998183239546314254978495493839919472139594479649316966524961578220481356877347487957831001400556663462941272807024761818108155330214378373680252327611151025387287766081368921190020080966504993456338823852685887180989308725541619528524002787514528439481477604981404441866471524092275773487029421094346604984385473374530830423547570064208583866457643986482424421881341851532854891869194719789757258550086262441506162668186650799202373400367241283289664520719649215844211565163861039311158670690228339203422435419308834389203987719572710943360377509014714884400586148472934324500702820496954751171937759942753639439557604587523493836810450413105027467061048154879971111752441370462299435230485899358670057089907520708827831069293065527137213893231837789828705192934967344261237728952737862268990551639490749533027679072395042536938878540621495744759114512714995194549081126774358726757715219757123115746329935010545046050757415046394949206971989266088133879870787916719541775217208707657989942337296364696669093250877544331079892221069982006395819654758759507291784446375563923132199653396172746563864136793262755225533188552364954766379082770739515120233995064805395962878545383369362433801561538296144395384901191447797939958169684496591502636770539944480013737407040787222200426352935908350567157424012282434939272206451598094859149115398084500483567889366727895679608918946034478338924094099632764044449720870122571957817178582521327905345889698091966017239428711252858801647920097835674638775243343874491461638969918526048506585073541458428727776111343965704481116832140854695444119265321161338964217599740516169633145059102477786508812148800069839138553553317369787604404106013942766012769626342234222538428163929665435574365789801259468645654015337736896169982858264828255740146391992648629775843886340738526239438542977790640412278657591022722781373877675758880819397094906417430246497338885850561391642443926387594845692980400152018531591720401914895159509444011820317468321686141444946547970667883711909026352584164529712316432633151251269031107158997725290036732179560806861917085571899218516145763645996773446544714616025319040215905280621190045488522247889409480781674696588668656234757867868949856633646909231129061353716513015245436999531482887721272425005521631140445161386391022410999375510589911617481791023825707502674995756573936230570107515275076971968626001669567820326580259089682615868339368770730500755261945537823655089232706901976932845063497383938866700966733111947581650381208992549685874861170767889788420165891150843333475292999070797319737834861610864844583782056063045082798014336898729537015451909580134192517586792745589534086190361867419861605600086499667662976138564563383572677138582217939738582591701764191216201103509516603782401603563825305523017770896118534606358385557217264251054826924876866197660150341207013072828969803107530094333172259376907136550335633464349420349493080682394590142166131497207745927799762058149038693794371362591294105559210236457033311657048945605223422000180553146864876382101563943120119597579036657123542565546182884912641303541225556902776177639317399727506846165169881143636264636480882110608178510946154611689771980424751068442061164157593575602569551499710413109274009373530173542030399136813441607686914316671678119163302507592590175918485184612713568443378796338197115188032555983487439538063857386879678207943422414527149834827352247943273749162561685379556757898892975788230204802271044130547315893630191386805373739071992691640139484627823501764634528685452352912249109945965324526254978650681675863047870300199376071795101115211993250628477666159255367390933747811606633308903807069238643476075076888707624583152669382887621906318089518036236351407425354841430159550388746992584989960001796704381629578969473124532172515818908745035523392219321830197958926330679443559333541738992428882755484441816984979461526308900672408834287540276590115646992557479012299777591197237106869276398987915571001697093142835901582923383861612387508242513548120997052748067571097850153201456293144062472705710926881635936140288228568965405003930281616194820112120740021437952029622897940131113824292890187356132612201384363382316872398939478043681747255542514406987471492766333072843335418938113299318340606982182812997120614853962577666817659306215091373924218145651858479756313533624823770829579243229016936389012002021123233203825849115322715879740359256696646279339462792575162076772314321794088122669104887672849614196586457157225265500026046518683891186552701755720202395121987995542089130827446802350355981063823576294616663745496053469927535394263943690611257908437735714642409657296914176296375727655926106279206892179076649078491656547746257027648980828500992169659063593151732521935840230410106256537117226803423193949622474371982387505390389742411388986875694676667466183153733868982732870770209827268122994877795918100478266772911770709340574863238000322165541149539308821716002032995236600080244424979395597462221720659206514738964887037860226768504240106558485331553107659343808364529488585780405221573203143835233667496463483009386979547480176320063665469644780235622356895473376108362952716374222084767383679998025090169745961434926647009706153831813272143619518856453834399670120265128760852646393818797563522187835976418340116466801703087239775958911822185737767019866301421098341035458307077056797752756033905649663166872621422079716806661803506099155801235756893492337405187450953069906907458053960386839526508180316151665328311020957656101486099140809323216117272913145584916116992477329115049305490218257881607344739960580866250379173308509946345351136109161053506004618026469022628622586687339669934015967121473644957683392622402177799309475013735580169583802225079950928657224509135669957811579159804957862710999823234182913802013028398856973674953746233939901562878505479230171581877739938591008120013393136871671916851884046131484746611567884708310448198633273429942034148119375668156598516509132257318389700420900654213955951359732866731307269205428269652318834646709128067407060503011955554756359958454898898555080789561577384846683228657133203345831882420116534173446391943044170933217360015260838776129321698158751626200183198705653456320571354452556872885375372012347426693357541274439122125139368495082382440674050009702642722345581098623504938775224070079017024570132952971280595718020466943444471627858744633604467411795787454931696120261511645941055435320290214414103656532155077655120399569874980021276929269399146040559169660335493365491718849567220882692719264237385685433542007548642955170430419117281371813914825549792264389310386846544702392397517540827241343253692350606189374045920688016163426227775498844363010869032772216973058872087900217810340186037211139348549549559916868169591773228898935065568363869178080213210249852976508477427479992503266190938020689475521181399956315185304646968873460307866359154100803941031725763161550578216107981189627398537633118402991437293236312684440030886360750157073208548492103550077414815067765580016143203846749323779159339022926104709185921642942355540813391436140431506029863286469522665013589992868810612993886646502172786197160771424114314145474677414871133241386670747648012410351349740225734777485604778450343266965508898971864235521496181125506954369199661056336415929846968969864730310660330504626537834876612031419587650370288883266818595367237727631233270900334287182663726627865379706191859446545498462563055329532541558992683256978693894211685009889447647684561560293767127682492505147150200285776353776949278952795376066238811361936030491024377538301589779574074078293820232207610123773636749032745784793388826425141358265594676471306616181353714518149070646375833847677653829094817231618630710587836663928606988109506689884382711136924583771659973552892537783767722123796609555576619037652534506598684178427401029257178752329223548069337311050207118681562386489927627402028922939596387247271424886714830319215545927242090967957500995160095210106815647610845193472387184444960312831126165387163932213479464923635372409136487455978505586919720033793547943237724628115800774572743518821845922546772435259910100003548344184019502061126565544993590857435792153360406108206346278001916171369587460259314387535615450702903060593683703567594442702923958144907268043086024135941181420130918619510521790251254125430977946339998916010433894001155787886652702682335169110965619951412549077029088158575825446559694617184606915328689151849962694599709373908917314195974314733035042434902941182568033968766704204596088066361729755585906292163786056055844118343499755250026447020437533273441746986691801814141218873604672737983967833612634517899339790866991477494544681423928921892874620341232921362751767455344645815281917495870500872969436199722357108327529442134599020718228183509432383272682343330678440006609379637543662386765043323071699204973792830849114241361498155679110662326632157389844463402158386020953640858242637296589621765520693271199816460886571604128845105850437927491525085116069077280953209280656762235936514013756962496124679918732764717071826259032063882595330050056076263581630258816531961060316126705093651969819895681158316134662211143198837759103736481961768482614232851227043152314610059575478807236387743843859875289656238266265596663409560880342200487184603845187005178942881775561437114944980388524315498684801470863603730198150099573623354309827118148553258703584666514734898515414323860603251185993039402857591604653006570421059065498832414378199550083912947592237573550444647884640130792020384286428064438809298002234585189813905498198429325627605656431423023184722347862012202029695552548432183992286231361311774907739739713958890373518271489989967248672154495556812989340682323353726689164000340192079750280027879291966750095378403290659594378224175474759759848750480199743665226519122691627599882989581099215740712634316991999643661834534808889892046566055139454413561285876728860048493132303241212746796261174215366914290588601853067410397787406336273069024695216880757689955732276274155847089759693678028392762258433498107073756672208742234374627180613918066811196698993014647858123099744476718350297264520369590657962314121164695013128543016433323982295217194592566575662881199600659608723412809552753343319554874534704769080673886253381733137726815487143805202586629376776987339629593750538381148783998178181641551543334311204985836524845021671828930288574460898460114780409727007388848976267155437037739289261956209628587464660737010668185724796212580486462296634971881831714358318057536760256442387420225900271934419059450591314649111868475066982639861254929189111428099414893925529214414580755937749587909588996110589377023786033553743768008513257065194482743371481161035333036304704646216354091694541211472109596421302958463447280999659774862714638118183113970118119681571107184724685244684725537653865110294173913756014775312515142331606765061187055764254554052249699240147656348189551634386438589517452630433552057307754562686946998617992120810629119071098703651300095115210066893395371942373883710705446181343042554136236304296609982030253198369964908494801517940811847717559098770173429939257054203294110137607540017557668207539000385645353242907789233217351737270527707504389733135151091987403538464346093980742155982071044052309660085207127267954016379945717235483974838063888401344549377602078161770306890665433242355070450452439244359128824085963890032944663501397963351735008867840763197751557599199948203065719310328756747143811876871715451836477840559433223173083556341898536772475678843510287679343979726260622323864432139115497913581636675195523735754589479314903989317949743940183113333565756128721931068589385014427511599499225995675795876818166171935179711661087543513710367635689504398879333915395370381294013760133330635218085469798919494193005881052531514919182365695806609793031872824958018274738535730152564933585804868657835365023719504446282326553681835372547834969702950270536524342346264025236834827896366873915826670979600525596933237532958625601855278286986021815716996143480703298000285778467134811912730084105665767134030559888131067396059163548516402147316810942630272959920306280004589562300864452418909002201888658548454088117129308735969625101491205151476952484963754011408569833726479185402455804409404958300285808315528257623404652166589994489208060634457777173108036793052093188577752202198280618615738054318861295119831246705167568794847888721611879743220252302457980074382327585345757544523623377387805195885229199096318295474634472525149846717153914540363343431736810401722829087713757387278609264041593858804709518104632961897913580061714906692445675435701699281521042784751911405719624079990356110054151206648816520390238394492417012118307513687024829489554599925509398312482427355350978453216842395606117092365720700821535349764671797149428238827052940186288145585084606656137021302083164863944882733300411223303809188838055780697272598548806614795467299258275805011735572877189641104662755145610433666905318615176486538149840388866983089305390195703269745253816881421105904040209376122123846012313732962453078416531058771318592873008771255667683209282933981307799173512736667559664030632898655263054563396032952500996532516889263075211031420875787580448844668747594455902507990611539366495656069887177330790208981510010915749306625757563197113000654004788468772151488776958158056942122983497217573666950639955197264446750600027238716833744818626473383887588327107328787643286028695355709492707388415589225692592882909678779754538449113891256143185607353576379492132087611023389639751013883696455853508010667915096045424423093682316007815110381500970696070938086019179756401996968252498904654170915379844769516562418068980442355215868515932852722174705879223804634051992495312265123564980179096867566815470998320037316560983284775065342963001792058857601919583024604843778420972025967924492387350178695331075543852428383784827713005034762458261082500869915339739816956875727879649624937706529332853676611914884538277738142252492069434136505450216484128206525977271701394473333903307513347024015718851451754660920372343919971067272414582651287114845985200732988856207650203886707265726314030869372235922312193001113744780794774633687407664723810599186840425888487382665617853489203589443343217596051941493861921211763043089669503720138540864290351748462575230542811468450669634194159492315931681426826700884438548094078520246614327797323666416168924436823095639380497195400411025821916857900104266734255564177299262978413108309817641722407742056567057435984192904799706134474202888532122435967367977582776407556269889052984982448972268931932007118891215644211175116923127568172277924675412849408229621777957729546579614874099692093627803933615426587089117991313925633173304428516703694963461722621688387938654069556615840744194624921964437862623636368289921448742387767948054425473902961638597003260021150508678783023319933625039178479297954935206778532899568593418258830443076072619612365266858623969350350788948785972566125024835647520705248846986200661592048052830487400917860880495555118758935191513081800324583206281896153423283275309294873876055639478858562671531443539901443567622392298051506398955604910840549144523319102017493114608738732247720788358081167547779419036438821062524131660919816360254894775046107115246332361597882313201636550473878487982263537063273693389054691041007310362224877571866878026762558416992165338015255920920270344317766190665135821479967500320443783894145753128440162879500803944228058256428692033954584395289178585418915834291505350239763285928141170874850018285673394456239696331507948478992807974054493665060075980695952183582740616335990997369276758406004061957507926339376447321695771779715062917355538316635459385792024190777510035769402450843494833761903884387981316358054181269754836399159470180033960489022583052788277874926179356402434909694722297660882192681127722471773249229953724347900512562235809397939622538082791236801792436177048765876945228189527376421809396843279761198522181839224125749170074052533778656918769880744619598195875734081567288476732355333923205933557855470685152033800941960534140338776593855255081430161009638733792090120979793800663448779138799799476357291981711162086734378265579995338432401906244527471151553748523519125119862838991966061188943751225731570115020548413988014936908118274013499624743725957146664076805097879518986199097327098291946813748034764413246180185755766555380437047378286242451269368585061875310044208427449399313887655032087803716953069869661055244564398648204083936981269630220074777118234392363806404957449315943058345382855211843126331564741280844791418313353532895093088458989836458644340509569560430536878742904832066465269648110053294518463951598109428012139625004349838848025460378590898152646164781944054343217278037761284125277260021848153059643044279555091870178174969796071211919284140399357565947678452738782179669339154574959251202407737131569614760419010403916163257462745006819922261185756990416428675398128892084390560467223620732958729928522404864387968417915317246367307921540233029884057048507910517402022448396007387336440441330473410401395175023182390273638628392968259485990957560259260519919796454135430824783456803677205146842841854605234887083177128003701079914430346815196172665845711994533029595600488406297172349032090604876957804076491118186543234227469527296584659272115659441348723420543143249011692084849870632362317364399769761073590598577549729640345926357136460537317471502183565587221030245182951491855183894560239329828752408351056343932894381209070190182543085941692277142425050084944745660547060033771419182423821090170609721973697962116588873562993235508191929623331537992006339354869305167557694662405457689870530836870644659842126015255658063827627323488365338781982952930618137115803104174098169699093204556399565885762611024718166563254642918581121300280678288691505275336771500118550616842527882738980540309496917764244342802674461611653970232993249341753861995082611192615035370448172809258213681219441823091367200756166423516977524112309320411982970476177297514354192037868504707919269936523468052604251053346736267739606142508509548584020276581213602041852483193750468652722592880495341610821060628895689303006424247704134182760918963870888735077313204190032947459242161164870483846504112081327274296442357404692219019179298914187541142844768446307424390525680145253338621754348049730007382610466754692686044645213843346135059773745564707775324147034141509313858949184936434481456567198665388376937477419595265547515430455327553089461085844517045768455892713048053799999398915362351351982216389544881811137474151948365452528778128774548929739105461408921317972806854143392406181816562949002918049788162608385308476352130682927987133345367979751067041221569574653267222394001490956418044618248319279500662391463546620870040644005400978512433841729432857872476023741127769953353265849679387818095396061153531855808937436940755086205361301888439468415076725590304024582103107545736869578730247248731065589875672890854566488343947638627224230474775153212474110224529142363983267360126989679348749542400860077375186392147286030525428676052508227618305222076008059299004716831481644015188297073355459174464525871194811526854759319296316056349734627033397489243852220163801376190971069624367440107822991292073183741634394643021160767014407956951607855061572806153579626211576505745304780100450531865978097734586618996605674210089445319836572977555471608709924951456972169036726966079938069293571745625329316681317449925127466183624812612460104538572590187438515539141951889730293403587305449232589744849294509083423405934458500964700347760355966029042303062386856093589052412599865891068075622742834381883702282090272563662388760003116064632835326324854840859177062851707091070125481012355359337935045420182362933733447702118061743095579225232999520840830428318098182722975605624466233854150940923603569486624008976135564998337786013497348383678024237302318014542561869927146196768629687358344611183972454393122934130195202606425049512400294032770256908985292974639880977478315591729721445177826446568253913051100598050406763001064665753941154542871752785603409946586691351540817711167754975543912936733957901033716050083619113154133079886900119231106491209315906797596292567885800101941508600773489486241827539140052191641661682133680094237584210551454121988499874098448848905281379605485749053847365861641997546648465210049997174154502515396683929903134484337398052049683195816344163577053356988458369816139714640244504200565480979670056415326111325464973847498677940858657136350159465598641637121753882221766933335662662735129737060520879018776544565736472072364050911912533865342236249413744338255305765919808534278614268645288778806264507980762190137367824348043260932516761333477061354215998686787232421190316701217853853231568465844364880200401360001081718258317633223045375358847719972277567370528894177531025745662574280864211336886318497322709448974340658681412587963525409456903267124809860756910826458168885068269017891700504114814118712745854131055237293404143278347217665617264413515200250609476896407287739751799805399272684338962055071895725062464101888645707457846510037190728841034325576846778214510136667114367196589467048349143119256258647199768460116904837167279500885302663743009832039466428010738065041406484991555878887772690349613863540228858263161198681855909493219713937425176138520524341582400805422713166101433529192970053687989373845577394454676454480517707324367562759391526857153437078056655099755089830397438253797452352885034376630984325365898494892387988624870685921207014846047349502766872574639729695662856139104125257627628382980020207382360991710809527776631482995562353957758122158180496839890277491150859821107557575749673613444492440715085937849215555147152064891137915788720887815406747579579208899540344712335899710566457214195733720418842856760443428310745616711620868284995983346866452214867057363011132823054276652604149657013939893708822671893770753521716569167395740688700265794381983852666510904936110055316638027146087396099817203488896223465032617471429245235077249357877914307985974202891748715777389354317662170294430132947406819449506077009732578545827015371061716554828676808262431159680160190967369159088258880347757486551688998322810653890109314867397220814265454811460809357557657834936948953835943573213464560262490651097332103754752077970502701028013454373755092735383174173698884171976163143178349120074520863521021120180264606663284698955769049499416097859928710551046954280341495337923213452466846550472294750422298199477597187498495806397842747509617065751279101179325743012393655116469493046655384330740103740791776737419853045875357417920204352428921058625051662432121214105364304896043090067178903423666157002402356091465695912695553255933703743222449043150734064399423999565095588081658041024560125158180560248764882447717591903322632498065072289439310026784666467810710818782452271144445583936887889930352316675340587258987377561987452445798682114745243082837806156614750496773567445839882648030474378981944897596194659932062685098290845475868526517252517773924401420946790585102346475382926561424128524602108547404283881704149811407799981292966434546154655424051825176470398567590994068401146096261218386770826426639650930332454510356962968674095813330007243973892935480501092549749269916920413577616958226199124207590625390913263894100894198555928224280813026928918809219055956217719973733711360073026495226364429506129636171286958253998876335481490439486469695347034748502071337648219608004981073457741511565684846337325594876311800361218632425027587970916874403188076597375693913421493319296318573846069109825631044919185502987513209048778349534810062142359009826523035650040865127705366994635354835121439912308749011446368316889224504369538059115220232064443174435798372729662946064989034250702431016119213153235866323725498349556572963714192142947156645572701477372625820985792259688129230857981254953146966602692341519869570422178159080234017290163921594657999477398939334270619464620622235841561430025081858505570745289345546929979110094068898202164137435416403474501336802963206198773332906456449842482538652255585593456319236529985543446209280056319692297264625366418913185527984690256898721561583679589887288476580687202708998066805427147613611035778062494020182680008359879769556423706300541367258553595519651870452891128058580336994679817472608459081234969958084361659037811038306724633906682794363637639588944133770681700150834703419032183817115856583236810638337070676449489436637318927074998428923262204083764874630231100651803706417663752783731968035056491023924252718497056879303872334432366620777669413817072729732934188498406898499517704607436617663064046377413944128182612980076398632923747648845689908336979291997807696987671114856163155661192450848781651533543839380864620959950330329932002820763982193964623552731457511697796728799414884674025943054604889312190873671609475677511583439956622874644694348073318045467462566372005565386889505910622082864002170538523480585436539501884866328558132247159963207496680926769372990310644108538273587479759685255407075682367198656569768851279756305349601455764738108962602059699576614398232075160570499552816604402197225240309182508248548994638599087847172617389657773871991549238528097912301696416829886310153177581660028118904837790322263188695500847756118325210643499675532943687814491596694221958412206497422929152041145402608853777416476547730637792774996860503179375638462097910379370027928141627121037127212731683426491166379477163966735952039795457943366327666674107623422040362866085260818315241110361706864174599831461904808044524542551678759948099093683602947735415261434351844717852819477454404399570593683263971897085425051506166460017333873393896969988617261753877966803626132708759078590304176020877397881466208067681743588389109598708377901057432434858063082896818597718170910215995186550009945184977569446369273193408759444813998104548069888515396854556251473128774712644643096572014506260795475043874099685515501404470691051454806529765812673699827684399745859842187189233875341213138031518788725416783739593499261748270905759721738052615759847591943020747237670688363515996694261349745372719095439841135083217737760744728639787127358932435397462288304452261009215049506267902490751407391240223482704426038287764084609670260959215899711133798991027347402432662923870954954184299966564908231400061614655867490956824985155065271955056356352603123151901551905158514620347203378521825144682698849866191821428852827575245524987367552977289192506788351723270268997832325719905454849392894048001159833179767851161147659999545913992258877815359887188434732930908260495840403521200185861293528008514738283563843345435915200531188634656881088330341789605112768461656790820911998887701787170979605477233589871277255230582494288679544666574651173937376376429775350029274449814037819288083128249128994161234483393917041379512745299520767650930777084497306994097864529482363345418473377631037389105914465693935729237182997592087314186703397303285699028878604263478932173402148297298539660423581236706605998316806067698925637415291528365288724212012252612312510043505989070671323204348842003494621837815989892662898596770266196074355049590078007935576697502657009118335661106020785333966756420368369602422984104943490187346207579542145983309552120741034157518175367815929864327179864058051952153504463219038465709867569015876647014386865685066274009659315529482593949874963694327900893216128200694507351629275787400461991640609320308864171144020556039618193736180180013549549052903037265535714451300838160310059988754004329912965803851949021674068165526590936334654780716470594428251849713894604808313870212501299371929073958789819111364348493224199835206062423458835575258334397189500836273855020153003566522800549852670243237130048773638994812289338827016425616898278085279767344329673806060112924591027903135503662088812426956745544486242480184145350453190794697297596605182182066884093350768848339272229608649502034733299081148504925459547901552020544217476420651608437802213936916304542604504615390786939676430145372076950482957410024656011336172364208409499602655512800995050408178286326870931585358205596761277118567186415681098557330427535450621010909465025800871225548718140617122890517102587337288140669303030062175569367263739391458536016982975330756493548381589886434771575556548136811459536432307631280492209726061911684540058117598335004190649364957550206849012653036254768786164594330494640754076992141940431114308732511789817049819547948384360440846572884262759139231535315530629541900989417502254543168671168281085303754879982257548193033631904842108868734449445032855692152598932767782910694949404785232022473774230199924748765941028966919634225129496411998751621571942346310802665109979954342738627684270696860060186509879768682766282033575338655205644656016717883652640162145079792242789103030987593765707112491612329253972206611876038650691019361690589269213530946361293324361305748927256663632142789838220194343839094273427435747999599541162845358259613931481066883847612556587349687930317884202666447548049457403549661832348177627774137618766323273779240827287633653826398611393792433744738915558468833647676773209043189640404867724345635919904250590867984230142906807614703809508369354801663223579803169073853683049698239304492796736943294137686579884478927510241148239861162722973502415726813735872901857081493790028625771303029938597717240202550824777635929535173981810617730069788817694275312182374199751942437852716609377106681433408873061338443156806873021820994255622226758919750073392615264070601741474875765072360878519042210791601750154507090876090315323856188693798557812855848289362424551286953246687438079598140983711865920520548300706426610062542609189062957341120765420437308839628509612284179526126463443426483464699812049636956376849199465257465026463173149907133734466406434623205654422646752771485147371599413785134548226111867322768516597309836415200767897681003221242527524898645063516369114633990186532529335997448120572997687419772677493057480983605890715281215808254688797279054212754712399203334414242332903756447212918608004028797482521475086491450548586954467035345303924206655451879656319850953913850651499152060826734283046475679401409830316565362578940674230603679196024561481379299734683786497005822534947705078941941454719160402934879357691183778684040557408186906398681548612144600929109087247740075737861583781162887754300900490498919344131249889346588821482987308747898531990939318524722003813509515274613805516844201813449264958739597279245055766952647163159723533413638118068518053594157645139877660262305333711687514693138362547296988801161472157297653079309567663124873891224917391763598323360089503264338080534469439845246217593437494331533569439130421876212881445184538737302293955097300573768277512683746386463631507423157823025476384999933107051687756014485812129326450485344229686639184711103334015977580618434127928397692343124198346429819513219652045697848904423241420431079245008846063491793921716816717734176320910858689302247857461363873660769243320977602075612941137879960057124634136861767585971690390723772487337548412677835480076294961249577601411615842551721315968215847227011984057904271848586155337166178330093874150350966583159983264281747387569823859134022274169036834842251589131313057258546554205577780924364212012517859725580121612029017698282828922326075382759651760439136613604667956262357421577250588679411972507678972222885262755126649611021708465450756552984840466094984895942358524203233039896723429339946466819416984129566660553184927616114943865371910240509148785661178530820318365366499917550207029678420156265785253327924631925288838985096321200221416855930118356373489163993060987027845648368943438161278982316443567545189559499085449377883680997933496709646176946863725675440900825055929247809246604094409958169689752325431484962719948420475691121488506887466176050409106040711461594856757104932987009375357214985623092726443807297732576791807939479791438348872746705881640480143676114943414515111953698091713394713065611737773368719582389954578634665531905883870286519366906717491335268395779551196798826017832834351338734319323956242581303377829309648607504996810522283786909935173759465846502097211483247812759421421682028818515133756930401492892847343802472215150965054785583274434537004952856692432456385598477531957182435636823365819978773321656844824001212207545990463076728221896715230177923886104555444072579521586973574902968667605098538639478865834260746603499235476836313214035793063508353588441533291855674759621977189259246873594745646543959841505385957078277280056416054538627021063315723033404642842522654863517453619253390402278775770715794798503115495257701260854743131891731310817113929135042386032510282457563216011003616203751070936889998694806463780655719879830793200668551784421935157402825625127960663129696053072013755225244515537810103012309379839687733968023428996252236577003587808693307361992350600796578166685333687018570583405213031745778069707817940804459193210481099670916582818543360270253263643972244317916291638204048334116965919813746454446172737712287811680978379836270849933820669566994885397018595724719590961608517827336828794305637189244811250284114585514177522697722578978220630220977236704429960263953706332291094480645969121531219581910357398161113957635537113889739525679588044010428134921724941219993506721522064973426563880584322265932620696805676235915566489024664758625275179242575016949269064492910786856230321483259189157646528287950438194810561699626640285058849708532483868246658573909572222880956685229542748374393615252070460911078021144198091384552677830566322040406358225782623252174978461186747205575878826016582791417047793578983741129214609359305803038711235928873277585564961295212501943620335171254274305803691112000746470515408990210543975482116593119597383365852848287822801013798047075832853743962264045073251219129441286261027757718267713067483196058780712907609023233904717587763698099204657187118185112990345120127424342266156195757488974203926455300814999264098983882614905111337152500509623239365271442564662418731495526713003210525797033264224031331536181313566941475520565670838986066958826076733006424643712138517415109053972007056238581779033142802327286790968520841152724046532773967538972181864739837697691530640722439237212495343879444665948937594061125890369433109596398946384454748218241206229795245609557912405085663401352631316431528108720173893605397789492086088891986720428461655895589200738832768065727966720709921134081415616353342558093137817745949418775607087075342678847965194247706610982297626663408990268596428961616095601016817735140174153940674777821880408249577141848901526718011897854954028611482409926572914218598693124415047183449073066775041608153674106050032064176956722239001337926924180128168760128495941423408112164182788829103182747395347795589938980383812376549597291818145019110321247813607076917735116823259232864257202053176802704597401953541315015047237688949192907468933429128347874365570535569738763750316580646111115435859906094328639738148107799082164853927682155662673678335993535651962228405560997141469736107125034330483019779261108334697495762462907915081777675747557608210985933793972125224344651590755633193660366085088649347469208829764973072567376886411172982413923387392916177512182599399815107501992126979378574957919259308935295073294483133038203978632413429255765024435214404931315424736465623417773485221742501791047307891268474967361465749624883405294847411449261874974183985832389946156031666529982449978671232144118946596949811615983835774107473380868972118237126178824270892279149269430962539350326086492946996629302126244063308453064024612812138675629870914934986492620881258673131531115278511891374170978628269919930444327127379027220491931193147810298136395043154262583734794151566114682595360991984056089051996674712205337229623646239329389003192284879068268059255980415611548812816050053352747221044084488326116753058876567327871451862712684533168370556168335226742566119010546824540251351080062255324559074279247969060367576056967868198369313573571003106644119001978060916084903459367276798425694575115604131940125032998427258229019308857593218869037277766559949851445321468679590613597506228948121131688657337824835202065572307708926968699259320686382830165174847005339490205048119672431404913836180500498285069298879565582711957099174426196271909096891473662983027977679589024410087890886421957422699480387342126249813967914335408314497164759310916240602297273410309252446674624718152509493904818950946623807054753885228439070289866547081297851301987227568406614124125168085635127473948149986173147187706658023126917476537970862820420756458484962865505959099931470684330022321022025638539746989901385169161444227619892100230158061175298885562648564039510542621403238049834880819106347309687513478336654180913511763741441196991934367538781594223697776841736651268897417261086757855367463971204902841495307394189443010894357826729041373148585564196680924869573906634451134739595137008617459322266630950006908799799345269732046421466942725316444865211799308688525113364895817979393136878294654487202874014184511648380026764080967615487319830635915842946640496436191715849579090127755793728180160801586574817709061820650400375070305459071977395324348363166106550778051797152185848444667186780842365288318286086655213461019348707844099002714468149531906840806512792970840907664905639303021204721553254449466169876730166004457938668613362212671224604345161379975962069449921243415347068221066615732676666501744787226602056965346870283492918712431187952122236216746484488254461711189999124212862401638410802994494399821527991559771484802553496239563138729449878995799334563681979011271030787421017854679913783304649358035598231086095409302274771053765035566607587338678756804138862228528682493749093477044238852553716090321219224978110751355535788658387617885151566483142666294823902170439618846229127355158999389109225189260155589583074478983310080927899047433679136726829907235150500719647741687846058702098310729065232850718703861618213902718529520324347163537203224674113404980332466106957690978280816071805896555643846458174441342815258382992910929301340424540039824187635516793111098388780210199237470894595143720245569155478374645580824689729825761741257147122200698960528636338096673850038510996460792412401717392605701941293369915647566768381527390653124317712534782043546622837316532958002805764479416144807449729494168552530785953033831504049852828773070677266503135259185184470918641800140327216032358990325419223615432217870705105995398740381283936263606941598129124315430511518852789982309483893768954913066276505647563135164108819339107424660432087806681341869235957675198783129916466266714390891577315740515625846347611165333186236820874863016412540365346893898740848843944498542907489761919919770745346001604334225795180142916928199252150630142714536604092275541534207151373685845886331464184823653432840667500183264290662646146549060352443052308430899845694130178128412841032411503745508739566380149808949217437242520231401311848912945088180490365706839286846643739880723986713242796604998873214585642287211963804129851733100244843616543654472071493151021928689074957979944666648983028489408779336588694883812313466933774741867409819705266892421915682540328208180274366648124294044690756406907946457464666319477530561071128743774081253718431498517369928138649373112508659542150663404002361244965256133260008707153417265942396072143419456531719582812516935470089370133482459909509828008675455318367152672538045774076863750925977313862640559816079953418895462910801067283597654888583084856169471699966500717017172069874566490176920319979203750732569778229133270206657041733553300409547326994644882080636234988779043097179027108576857938530531347264451790877744925144619061790831582337971484622002775762322510744698777766229238821918710014057781536155407675107604165359403077089873243937225297846963759261197941655675131708987104316584851410677281318985424553519234465475790538082004769415291634417576152890242191661979358183845326085386337350870023134307761056127188922258173943408867162569890034345365671036950496785939508085010419426965596591810287365398136039062564558828532405998012765051237647958380333055642626058182820497613813301585162451021040861429031074136628588830919217180321489873122576957826201711348940278875264877684921078341711104204333814730015787078174644072079633556049889343076245572490198875615320695385799153102358162170912559544152580339882031720398815137011626098438289811255427252567392156134068461810443426810390885537466638112028284968186448637909123029618486396455228309893227655802257984438686370408234931815419755523195570275779195541213247607276680599429082821428762082863068610678119583080838885091211655290452322389782477998533128242649229133041959925527834829962235898402830854233662145268694111347157099752311932690415706258975504116602162529193322328010703209876048163737539635687183947163248258344238181782464431513988083158532055019022576982883373601886244893401668302668268852504719494210551885223475775386216491044494585814735022479027912239379732204711623705584126842067786370290746047601161646132184792104814767499848319466213550633734507889263249590972223261662804268233884815435880668580018530913670841005307472628582248285010424534684142512135325272478602996845912811771312802988583707832856144193564243950091022125902231606658114950735812584068377297075064058277797718811421864592651214427696765250582595663420627756247372538499268233162690151211552148385223529116066167013449456075168202077240166742420392237674486851874924641734083048807419863115340156209324164357028298555746053243916895747696689823299141975217585568763882975005388137869816767052871913320750517323359204283813844827767032049742930095770417035055752702062125993832736984492500675390536852351538658235761727307165322854384567235795205756492560497290351197406264239301620964052214054992340367715427733267448035276827808788819002728293983392239372508882052516956607879395947870034209908903781885236597701089625032113092716225690028988023671686185734916541003266024894152943087674623140221843623084146125330435286953369888085107752792070588092607264027014766140246626705539438743378393928160663321377111627802223434774823153695028251255872339079604573071473921436808268369041560346097201180504682733123164252429581952375521785033606921924414426618878741323153063385370590428019374521544266824338872734442873046652678038977967734776294375670764330283502302369330002062126135191001355869768914781585965338501665008432655086438221067343368665210265393555998235832717370211548029418781340747071147479460495073013718506321711244659569118694190236711240297980870068479151538092662966930017837441254214418567193546536277578114626336734503310836569501588879973960975230350587753450308758087926616660236089555033128562417186643905663621293727394577129590596704623195652569936999271306676982152874365626433984064224566200932422612737317917410973028222067492540742265457533482596418457560138364997118050763959462787591007727310991665974604653227638420931770501498881619624523762364804829630435130589496928315931377823127263469361064546354750792977711838246900780503816960430347198626174194233563708154828460203208544065708405313787668553814256913232153707951241709365575042709176941173904929973673034139563104937977691522620482992756966624371233056822047611325953654210468552848758811336058772327307932661304054672602584453126795567077922064140401309922751169533147469573782161976989228013482177104963564063026560601234971136300276964287246567641683044386018328185083993458871922861314357897532511457332368729524764779645797227507669016576259113501036384184226996107940411094041459419532107828333975770574592243754358395510295326304558717608549506026502903589384909071472321039080965002955737698371392440424177160610430778627560138023223094599669655095876847968618750392522813820679676579808464456074960167342008755469477679896659178183054321664613489306445755136073582650672187528333031599020379738462150861380291426223041060009724741260667152409593522453372627749454413347407578999784159835263572306410167934592416829316631252460526706316607785328639676162298120762334872297114304311069219131330287863072346088569001146169427959167901937692101993184812654751671534290995026707283233580309079442142629286295915093819938907042323450544036736695518368714972555867122281406871496687727281094029386059152261076708822285253136083400161329453378068186078611640308841230551317006225122450200667626123586750681119152955677476249253322944393629355859191230632786912664022575569056705959609614139745387532430697460985521484631865836354972566519468749819117574250835103536846118022277059624048952999041571792078356543232205798534471026053213306237501185603772172316906391621480280616127000534201284477931976768141363294293785392146420946917550104372615892235566965046788600886619090489990989288912795062801515762647582471581361467234181087999139102787366015605291150410256714171777779500264732729808525327003163970788859592692449976824550630618574378010456386190604984895407446156418488515287374094177091923317108941411703010155329623066013485286953910532298426732633642232544759641213556757507945682454275444373329869703084332242497799558178794227192342903965551953531308841913751533161266318234592240604640259488214398662996811456058173954298185136663059017093378857836702202278746843687202827234545225159460941090269467987355296118574252229788898036965225190154191075255381373437058585917328863159076738519426051178713651121196337201931543021601698890811269352117784816292859099060746827822853106860387614918345756783152048147238672547756379952859067808788029135741646693644271438941752234515554543269122057380258513043785765012132871977155384472227435767626607294461867945983228691662548843097450232455945483563586893840645161193652783543351338785073614882532443618826354579930574498100236960176490283020323459333565554109145462841609245257665122684694207856693248350747129900435861663601954184024632071143652001323673767563437256380531104240556927438929611109113359778640929024240507509788163542482585249632392848008343193692118321430426622472777387188181953053835513340807775288573508037759698098496534092575422627827854261163355652651323540826126269207579247185336587683372015130947916027090366801148147663801067704606024782602082123408987855705306180750717843901235607238258691289077833052141926086944777930470405218004506523993427526681060515763869743008657872100376592397422529041523656913077205138251911624304101920754565679415140486154079747436853086639872409661644895593954787853999656342056891249235402875289508417233708625138557852680200344192198044899412380225877575201657518685264976041125648857487820017298208733476247870091555471798602873792538188032616915729728867009267415857383903656881467272206700984239365678172949079514568283811981096364386403601165108819143764554974399065741392321981236005931842809974491442149396591907368282562350901417492843373433342815481460341261616091577461133819360354264830001742045359294190008566351919080900907371541740132854000935035625533942443066034593067806018376677028483981972413227966494969323231124106333179405998832001970305449594940242715145924884827301039539235014567082332004783834265414310617368278910385924644827221425400000273288027773688866687998196351521755227218874805922007229717187205332390264448887340245669783049817970813824725291856756364899722086558896207502509391675995941365867345882108078333174821543083342100435634399696565942013559192736286970547812360464791294830710680765411803820844985320307884731711729044490134126531688961871381728089141800640075985879613630491694563873929906712681235448550554731679897330433324251854471591203354990198730205054727586614478690675869988221525187216482932316069595628177347189171824323565860879806153524615888882469419940510910604251260780791465053329007179812492741809879786125983559045663377026246602836273747347057183116306487794062614458576231881987510808020326290499559777823612721766741119842580879281026980935033382900325684426295333049107174483110647431174313384519835886741084875741962146162664274828419965588387387050508609888245153125070816111797087755171604935214080761830470780536075461738327158220756169127672738794748615017877758284432613721856915274759447878274982304119635879332570862393380677707041039895168856262781731441742320414005582077872506803846782331485262130741072523454746504397616105267181350592309541300468808479137256373127054517990919763655052115655865942811544831887442658786443294226147598252379493246963124249424425005976475239814621188389016840073062424748613865444151826905106640795618114955496777361102334920053606926548831578373154375729103687609924647303300163736678563995489127730999652599088059095744269277791738596807258153575434049059800050650146032836927984943197245061872328965358491311492097684877359868087170699321355028593370719177237284740719146899115943621802019762309940917848779599751936255187397041747987600582570062160458179876523442491953841911085934033491223494821033774907581066307861550827530176478692045849366820819051381464289741845924912459030276882567904837093381296871543703987445436777531146092231316367576260677324112376828282162878351086067190662069869427868476842918562358488526971518730383503460991662509833831478275072912763590326118923976864081419117532879775505582556897904920748003255652188306490899753032481918518632691260472781469948836477574103575299969630831604696996349561670814296954475532166608167877297091323492515655142686937882868997926515049786522974430379461188686482891136613763867398978163273932314008542792076360399828986242102938840762496780604747130757396125552785300042710683716328276248708967079775013099419797840825563861555078512844383033297123259233655079720484969776715014932789631053199444978428782857767200836563562381887513467161229618816911601353626238061135225728511764364680392359120119405430157292836742400667116536957836396936788428668258505271963298197354520330958252270233338919375664535921141428736043498367554412738148013233702708534578534277412733737596535049453767321132057394933873040309190838186055951823412647335205094538622159739318957449167257794331372920147329322272947589035207366005847168667057650642671933887999117456276571805848726944978682456026497762981326543436236868254215401479492789779658788859851884214932439617772346410456348734874845388556251167636906610937194164394721973827722397218704701738785195355638933891799528873844977660301164493349808208181943746305036029868883435031611531667495484829800935915509475834913590400066694439634605402043272978723569761991698016383573546177985826098687565915078111381048496326891307573271762000019737495746328653601797166740959399039580368645867608941704556861415174415702735925342067792074816606917977444538852718756845837933629788486096725409029857631932920951879125387332049218912168968001099113714729173381819458586151011263937725514723071745244515237441608316476747094013059161066866094305221164297853126079931021513601784348791147834233004097836620315105055770873089862257729527485487973940456881272669014722173937810852017351489635276050785576421170362004051814167882927279832820728076486293833391653634405426256665437409124712896796657172890914648431794268523203492111365853408595468160592565150053031359278557449759327182319908714482154790863103880427559780389240495870303034240700885428006561287788633958395282124168245719589634992719533823121438967555820579317847177949610051543209877259740739684610991282751465690555704553305550790856398186760250763316388963138560173582656519039723852922951912041508992252572830316020014386191766969434375018473089913641655689075388044882300128382718350991707937844096004666890286965699800546986112995506857867266128260388011269923806912109960150580246162417649545600937280219982271520669396633298042101405213185385927922908322051404036902509071579629275004079538087868563380010567410543789800364802137835917405976206562468385365772951222209125030947540020669885425391938633323903333492663444096632193554821561346574821764712764081039507126175380202751165035289237480582674467729507654165758907355761668633547196339872906274659537590400431854823340887259251714214712926794289718470112519539022949506195991996866117105370174823245685729131187013310247632284001977658236279894284728363362880502955639657473294156575659828677173996938434439289144195844412878208278553927224187292599221294747406978096732281408670843884367760021193671454832009490569601575837831403621441476598657410874517253368563791089738846593943782164687296512432525536526061106554164531558748940869975807439181757306910949196216230709414571042336984144666847458942957391143200010841060878320864642095145807191087221723630633561560684299751681911128442394273668126797494338167651549786778600927160826094053425500655221575193442525052236666061797824096709341337479964536945969951426241967027864619286503959801420656951058521469157327735792763931485772889696982068040770818325567348103610516303697038853513168335672853360389850142841816712610319415779748928855001480797319133061187915075502915234031232456572626788012912234908373643007034332810686681621004822158568430167483242429836387669070566903656049862702627261030908063927707068092529516642439470952115618218518385991119107281385305590260514566562352159976863169573480438825622169298012742785502551061191369551014006453382128265559944804803419218184003079620940082777455261920350273677899442186269198999580084063456133614728787597419923847377876536268523702775634184588734935087367793759742769414396756209193477942455231444330379681783441498611313669363079773094559365879927171923188243137858095140824349066515756457081022799889528146402180661708074383324254708594960484524561228789948411200109177308661519345723963080991408588706543569067369356201662649474316035716154002503143689546718978447280391562121860825373238894078945149946867701991313807853899614209542327366682809233613979981302064758234534814681670683088939285966893184087614733009772050742840994328627889940787374354287250303689508429133035345101485121875594553355005197967611818310916439160765843958923731870623468178153136788414265928092030898917050071746757606302421104856349117916013286648705153208272953822208706834474894271497409246135552563575029512879288854090911556212352141834933459672962443615727966623670685537701085805386948805638727017084271075802356472366714270118845476525175860579613061766530124830669183146169536327301512138674080007159895925023484837280205174015541003652158222552781212983928660558206946804256594452059833370737458479858113321788194103077934794297425923521936492156585761066269827979201849896377605100524027531383864677915759078089005098873413786131266593134630846948088264639670650096732634488822274431442070515666924218043797321053395385947160822656746952450334746064342220207912578733010821046386380872095273719484024911920205613956995160262756044128726776150143235218747308023082902606732031751126770097030252832828016242121935646862886481527930379093014628844056418798556436367381832647028507395646315573525222861035198192464191322559061422335367079255327376968060648710401493276628384240487473537943500246122173940718186936144348827792663232736891853376335788127402502808853225876114514024009069918594897687871989792622311759023922426244990545345470562176613071574699475087925848770129376676767268390689987085109791812035032842748642583911895877856278496727362822787915766181874408820345336191901633471772207724243663392617913521351292128225423400832661258565236980223193117804603870571296114663089436424945621207122406258797080175521333469183200002941654712415820182729184342913971179582586009902918001256314765236391157737483188796754271495174151182988261724114771711359446569171454580787360982786568093555218394234480832127459911170172377065149716160561586397227043768393798729687632343258383317002944329088904043558122194230695490496890942902505972660685205811770093804442740670598924179118761364492967432857458984413564150657961972443030272663635542344798543494603203881257403700796126768413982185520219071160628777738983481488385285673062740681208963453054584157338904191119652486418099683345846653195402114791114257940277759950622793173501639462261500409408693479011068226595305256351104902297188494387917965601156457142438932643059539487929708649827814926439681079838455239839996343626487756021428981329131123614820546721151396438221680326924102003747205403380095767979320054840629346184200653805671852128276470505614812302596611841223846613786280649090952374919086396293512227952429582340831244503564283461053021951533453867776518835158606538746566962631832284719285878714071192243824917935530392482884562994650883233286906405110549154536618214609096761682760593457260433598248564231360148766648977400125373256007458973735781025606492857359306077795790734763192307820704354083539615224984854269777486092779051622397706124556330064485118733285955030436424228006174932135386911491662349287394601749544314363297930822079917462744862964828968437757857669969765953031744151130613440561448708145688791519946723445150805353416570229659195879753895148177546081395351747336059934101001065187248917018199501983202352958162744842117018682905018157200697226200168522083819036352652355667879779748255850267392468846563966939198249946664662316479533651021824783692732975280495850818249610206730194447930458661304201091056139140752059367912599658676926862828778525808887037958735260892046013738463878034349925427679497869551019551352888427954704771429387898756046344760169875235819560517677283567302439771295970470507433993772662986906553222510555125851692252467353692203960088663482901548797505644354016270961239001340817880862673297837933913177347392629862487976445679835224840168623282051438380881984278669952250759504476634557446606212562386586367314453568672555119059755438843560805312011896760113541321251618805250890870478629948285050553813516348347033757607784481151296941232297664139561419859166141553199019263850956582870223340390115053883789071426634897302378823785713966270330815364007315645490441823483662517918220257243327712139673118223892574313290730565496971818767977979733868151275128778531511271836396909818432600882479467408995792742655397473283507222238750148917436930597035165154261759564700216332770788947193607984220989279772904809569443103191757499864967806015450105348492560582055050648586517329712528107068446086787744075676240209226846715018077058144508207087074898924798061842367455358959611631656028040051270753772238326269428838376565796522772115077733139595507411166932602753563936079654091959155798629692375816586365302005184754836745118901143171739361558073774812846264431514104855444053815473229049150647570038931504877556877193115489753690880844973527928013818961030853483945556672511480272395926845662082646144284796058642968320152534246776832805588952441748403719974978843854361103127748980949298966281229938486159877645991489565024776927004303799872675941733164490148686420781622318120125194777298336778582691913698118104437822408854809022235302249847633035048125726177114542517930507279882423543069770048122506581264546930967006019459199809426235118233245496434762218351391413999550548103853814793674327797361188859447206490163744285686600945895654930066538097967288242629956889148776021809608486248811390571278503933605855003046744872659094653047365227783110995976670650500832077765389280878374658459561625691720845016909839485520831455161230023036896912481373463094100951956631165747390244291550071649174898219678627205182957553374172197390216258343560501850946746491232983863579278253510308840131527841279096430031435246886302141981418600160671489797898262755081148896767209782549790269106579513388679846066800108437157011310855465187152207461408232774817294021485975115411015149733917510920427807524223783144564315277081447315312240649839213012034580280737997512290657120979127553617313920599363206147153761912365504071502199922733380238527349639956070871308632843371440234919891042716253996860428967099423051856879779850003216513717424563087232116795727063022305974862428191906816779796261865696633622902939078700759884994582460918681012006898588215072415502272849161720902829091315625221873188769424511684528719196621986183038410344366830713180465900314051593290253591823440939470527444017120902755703378009166050084794220536120203278799065622291365415554424601399276126796715253920047656035140938267349781433879666151282106921888004085752960201331149468802893081970059103600647800497958215533621977318764947682162928051935139836403233074156642336195214154171318858017505193944449452579022957778419652403888372044696517778986159015343476024155234334921459111838470429462451378441775320679649989755369834260876001398027237331335487556740235079425598441874172071679212625093862470476067323270539045737508658962056585651458826126086220912257946384643557017944387459771087332018625203739721484017953292103885892919717812805994660120954944852889982036343398263398248878243133073106659419063115494023932195143225339252310092605672654235095848318747961049184215619026803313117978199188111297469585469466547125408482093610791287681871011789882326862123889858688701654167348077121519848646295144565590476647042918455278396300603647163199667002616912212422502918122811646436791852262213954492661276930857740950437522140787343269582708825040860022152338845686064897878145774348483648038517069247182923960864203491957731643689883448251951822097633386292451416989119516338516237777535775630798208835890846614925285590745678421390221606372434136961053333831653877970339783544010474247789570739239555474632346997212425290655208721539698662565208956486465055270585598959799395186379281897699197381137098145991553875835406746512093313069559401586239385615702737631264309257314707292371482899485389934459963972622290369772275994572324487216792040859354194678504697202886146388025487208793022869456699514402302309432373047532880068581358687639823957689524966989230136919796536746729756026264849049473291130769997536815369046566522519420306331791135716915895542927806953010423700217737497389635798048056670253092806031289876946393295106575296184441885882398851899567602057122782068258219385212044334192915369482610571050776897635609416970826971150007871642434458011340661727329699449978360133979159977659389117742628314890305748192606577359579541038754135057150251831888805350800951648452008051531668408124379901154716129028262880457722467269994433669687562279616352416097215407221853342644092937306822107413769719850954348777844818480125340421929814656181359668265864082768649370195642811736263624684961421554982672597250370535596801240342960451872897218038878550104572768597229798203875374576971627832198049069642592369074580896539738307563310281707382510927600713370764636025745471507002858569678813337871035894909838076394105840813350238939686067472897623809636105677578010653207907842535789747723999309457973983128585004545620193448055458483557389337467133115137406932715870410252370103605251434873457966433414893534146860697354150247454370400431382419036222671654745246002017346845630437428128141470512489829366445816035345229229495957215281784767961387026511440225640417132674711711090345959794865605534389214644707895943306354685674405717006749554135016394468569245274898671957769059157834385039972396901220921711868889851442170874432108771129645920445738381050640796209886598440145173628259407019979247596424428444792994794314588072764941846293583036790409337148914006594914957098654253274270046930132329589410653816692042931116490053629283851594266380650275346316845438645110426256739002632053709354815020494121778532171349400530649147500517135166101089373538265236533838670542306341364867389202095308530018110859659801691522731749648515680903231139814987209267982079151624301041006306394164073199440884756430547870996388677811741674846857563910496084729002662263704445942953475021652712108568626392101709000167385529346987967251823523447777118824803207122683870255650557379547265694034300760608641357850460289024150614291354662468909857822946096488573294877668654268890621439866524155706831994904688364667837482471147181567355745773542322924522384082764314310915067392896504009702814579096554305703318040870924996243543672591217422276127868390285817099730911087996304750713897905249528704355837919384897727037989704284299288433515016258745006268249410643104877771400472505939328262612417409837987144252649631496617605165779320891789985390676098696256623726537828296580660500230984941746935274331841492713247552410653296363386154797035071723103213123066203490800048274033144062259155281280632510395905425707135289617456289811533308130199196462089284323767386831349855259502484546333469720209060260398886831045579376295387211341917708862015444840210181074317727317566651280268087062388733711560444606887974288595897848351604923659591584992557512082004664885989197876230723004964888039116595713931673900246609143783461526891449583702791689143938429639756778471564622278894559641559846116636863417289929052774526391430113145551077521775652531895254999709447594456629918567794119380904595334418105836515149014610617677670611858917173148014876723932623590056581513900963767792631573858247455846222060973071233927103734135412523658052928807571830149139767957743313218782518683830687853042727045386507943007561735705649843189810758768757121756227623435619768674184858770211610286580940019695980177513487897429517198459867126272817418400036467287074493527562636417709797970342872038047416961885246074193057171377096186817612982866163547669825355606305094011345722827524639805992720450804013760759548870310035361281178855237441043960356172743545513984180854683780198055218568199423852512933236473593825123610509086800630590129025941075166612682077805147371102025638378833626196321311768273389527483300791754008871176441664583986520113457378622600692964603915744808418717517562411443882732634073789649494332975741562585458241425034361246388190888315187402210474556476691252573208332184889351306400500863892567366667707136425499453961078094250521368726126190181694608616264441405575443073894487961502843365293614822487108410368527008582314655270518063646054090091650859149640403796655446172521462205951775072658887298297443147594938227791227084761089927051536948462356393087481240586133496217107902480085650542489921489492371993784592758020717752452806521764901543240179194876198824949011778772834031447205152636574427045280171598736920500626276698071472076013041215007897120807448112985359936867853188107446295285414992471251859237970573440651321393227393474907433984778643010392437928344755988393851899812695601528166423284144242344852400321397461280866569121309962944545023138374040109778045182079796923920749110459116771253417302595132296319941777722364240283919928737768132339645975590614535860352837945365253098730388907269922401748479448593663740330776131085544329732825122930382803031105738603726314244013232670294065126560690178151401439676985409145847813571973638523247925343996057170622271466298680823332388109074385790334353674948675968840586688613975469645240476590187952045992611983912748596677194789449056141248397623954856291411384360060648876009519927583605430457378044121550526560731267139048561343484051651279455473343751194698753023984418191641723071917574626951509828150592566970017575073932869562070391674410970176510822439665734373521313290305217176466275774996683976686878839731781445303898273767277594369144804568580392362871302451346345037758525873012490198554591053801542633889922811148410444520142107560867283722750985412091523415311039017585961096917020640313226290626517325124505851435783991905751604685422587593948006474983207897264663616135256392183553381567441510738873917798460975998524445439009090796147895995463130994719747912354645478860893525647628288017324600831179754424886634071067069703120647364991498783458828570967543973160933312607255405164492401960409618252852346805514042231571103507721196956838235093990480168608801593048658608286955295557455706028546600034384427856672239840189526915349275600232378847395311716976226566243919572580944559782379026147300794356591900993575319887829357630122384653141553857629634147002811604974686646962978030984183702232511924948611953063522773471064442661723947431992652469733033410407532133539118195964519560518233361519453988255717483990736218182144684406396691880168752930933323647933380325156968038840791942481825147898125333742805448092126962554924548852489039026754798417219460892340628372544791066681739052580815121468702922315144527673184443527476344233133533077765594386876535966699575101309790841299043122605472802063996786077366727813187853354581151467784910109593947975214360506434686015760772588119721334734833858059105664991043237197509367939683891073970388147644351993390984703016148924196728264276131177899194043312063492690494757957626216858383970619344026986530060338420742836667603175796098090572262749003049143218724655458857780180032874100522718267382691210198686202339045886404045485838449346568623478800247534445664490552655340492722700794222638240100915956521855359316216032150177696381894683525415375144229486183846662408826536923946398523119517380592241180316100201812283248194797035690454967570787788538356964854239969137907244784824622782199113128761767055683947591406947591094513777724247268774496871443635593505060526518657922321461916181925693972649529562983351785565637196295625833684035994854092670251640960619186000495873064573749455633771708573318279867011027828483760154679456868215984274320366960088981017637216657508449140096388646018645013648113191496707737747631277139751902203246640353094636211089346601880362421429318335142707918040512642491841218969907904531351001412110859933108065898617936173521162781023179121732039101869920287627921491854087917258527513070356286309609718803554306296717639005863013223108783566402386941897027695292463711501749114957052016809536917879345349024711510860636735069662975710727391367906196303476508008065664240489812167431316638284003193057177982064008142880550334905450755960747029035270300050332938784013815663647701503511082549126546277067755941014794380114535312417436746854434470945362493837078923212325445966689890439478723336375764556286557005000620103383410114761475940060320420521754875106674226355384158235947913748896088953459881412318470305475363906085485279796324724121033483133064645472810334312741296008374724849349253133318334367228319782378430124542147147594773775248717622034188223985124815335876488041193124317401385520239951129825592920663978175853672835315720081515619408101049763725044406652136984826340097485467345208340026849166016479603453787539640115151793730830710138443864608522237426429303080766817650318424756037629037871794054417806646225672289286136949856272602375734190840266651158285733514058975405830973312610678956224314499191320586995813304587238876605072772133976655648029640125133096050420084321742394635680430390451602268601276579566389790121590841774957846865064585403865984887462983094709209607528812188170312767517226553145985741628001289784977688457256071509461060447545850972411325666438874369597401626213250502857021122648423033611006210890854200093624912396984169734706086911107882281119409642012373276756850124104868013851768804961241786577671166489705257943639284164126887209427670225149407429943757736062145619430971396173728591214661839330549234214874051100597574971515846988420798505223119164847671143468967544073468103553245086477797651691670089695221093147138867360222638262687116263682592073210875819997000065317941390798356868420332380226492228128837613731725945050413542057360097468556323649740682169926923749062943302545701152210231043580807636739139399576275000988178605312458513113495377073369178015388786176861611608455181576179090999805126097266455796661196511786585696203066768750285210191507795811090149719352598447515234717860165172234545005481151286069933420722807756467994126763362228106108274405649534979488997434452939611990302891797694266046353416503327024222709485255415250591477733779772370234799278909959482008341577764740216844999370757764160864754662446964778552604017333491469781983509281086156851103359313180270086567149990785045095057220126056226568333348801104070036570620125292595116265858961540288843824551259140442449141876200306338645285552844186157411027273672171518829242564954445080605372247584139922834606383516274220413390246393584899941790089249061371428062056126536358803100688920896691898773056592262743710841412412660352405209121256101404185696227010668608650739634756366727899985184816080585892080738552587296119971905183650216278947418190690278306176853190067432082013846471975110562086540532939944927656851919966135642814032252800683949430818877579004941754872811821061659288166315231413155547655720917479231374033502066574294575273611622183441833791392195715186832788823201986894880945883473518226354761123198039635803173075640149546974861246094640843125923585356367355684407805094740792853523733780764695741169029062540785821679059801852751691290410942809172602115132408539751130311749897445324709036969024406381332260890378074862898159703452573459986319928112799604738765896077456156940405989812573939002838121395682438417750606610944735852212532494490468426455572601994434930571651815354322129138611527295329001368923753681558350012199062345343610911326225736788912628876572855792113770538440938145840154858045005138011415895809366873171214758199230489829954903921696355587855499810370394949608923024581837851704986405757761403102600834626985057430873036084387727091466052766251863294690623107786623078270829384427761155833244653129648268120067465742123910561717118875266001090137527674449234034444480313032686898319283700657010227801837419384355721508400516618387196569479181067440143245677142492349103391233579764406855500038335374019835905613495249661710011271125721537331076308827513241873145823268708933733929353981443366729935180141693199030086927412920919218665891602107799451285803913106829386015187112320899117171295711373502332677097259712452586912255174563189612847633471894077706545013284044062024355226931231525840669192449074824443296203826869865805861809482282362095334457686369703340984995827316239346358988659176889583237829905576249593241044860247640339989747556626917267768521241598681712601389956331628504107263615021436460554914021845794779610309757335770777694058366450015105341476453347233366255181222064222294427459085168868072103309047094332721123345696516552557236790271019897427654027146755623349826681144453753800333393982324478134813378661574961080766456949014453871722239534096938639704114317810080066651574957576914611005382364213194444906373852081182695955176770933482476509772281126887332421408689186063016401453322883326029650703319559842495583556126666118666718124622923330365450941270904614010470328760561441752290227932720788740260882337253855223494088916337588608960816328340628810934460720539140320729549641985479192284453117475083625936315822971046355006719283961188963155187823645694581658610448215623011426050318593059693101356393545818570691082120979282830586598921407317495382807293818441884375593116409145644969308400334683250658765357067603566171852505398435835355076441290505150815584387054551410656704000083388421252241977242500227210371551431231322521254862968661584099858851067662457639645014802978284132926738786784186559485191073105774332143263526207815230138140163068005691193762678398048589646256762442523477688371863879857253991879253911601776835285688581431957606325664765376705405724787304678362409470660224941375742766880760225593723239602434931136523717881522594539558075674139633556475254342607831283863600146666926377479946734686917471562766693162983664988986835975375694841772978355033428767142880646351420378891761349615733164816391617775184867462790928251076712646217630059598327027597420723793675282606905307468572968999940948033256434034590961482260210375315517440897709792067124148364825567393672250459637693042809517979196894062443113011481245678140849625036456994274644991296061195295688066740243293290336809637338238284439739990593795945303725560888564366679027215471758756308172065021744878899613256482995768068744094394219194474351340522999105282991303510264699033990666244964977420779953332451932218072772309341887333787025258776422942541159246560417462314916239247881977263712706418308739443392188035785124809284015493355898991569800529586662382725267852763013332691441023767716569638662132784405958926463248274207344867840627530751324117893388887157919988361418522121693605109090459917677997691100767005250833016780956854473215530164107422544007608856828121295658545255431237888553712521580186528514232902228527159730284563648932941811462258532030390558088706576881359691565102392286738362589175866602193676920127222947468883975925720321028521837918072575577037913350908220443296193277143088165988202247690124484915538802831127897444242504323658740681172329133856243583329133760791569849393831758290112798373133538461563956999206771645912813586081030570108492255512004870406550717195112851727578636435234667903316356026309656992478751339979939619943130355723354371847572872936813658503748672842705872690599492172879385526887462865928785037504960707289209165442005399862803603776213761627196495925510466634116888201370933527813892957896166065649602465929639121413802481999507474354893082056427732154165039288770883490856351102532215857014087140145748673827699280541209542714059074738845017813607995544490758862051119970486617805819582028243891922563013206610725946527469229884934045039622359959537153748506217251766948773360151654574031170083502048946462078716067850968940978974464876036932831766302287512103963319131852515504474268702668650918643287853174660656013728326755003730567626229898349406105228631950625941391752729634984306887313430395219790282825948180409599329402817756798022497741099605873249662150090028865820650806701173173677974114160236374595584062783188523652086825852298438546970943359189552163640616489553930668514460783794982716471300583200750961523716752548063269411408205143960450850965402519596503639866566642108527029400728168216527288743790776496908046668493237524817425580012488168702831719545191757488871640785362509240923944638837612086155984705847628988380205200108601635309738218072132368858037391515680546053343635886648953031123088840306597703044561434059662683790663391541435040438630678107641941953051511637430707831686519099654677845944591973312235089001453620961415562731678328559459076952180036917853056559578071477396039737096877759597879441455051081164012569698880474913900282668521699950696418503348950937633437145896703997283614739867406478097930346012855881631100523695919291914688471709483152055916249579496731528627504256332598964816537040137314606738563848585451696594567761881971552436830251725519400154827273368616048087247140055202044549359663311519860236873880424120234108546351718753184693210427608591457921624792269333471612926523746242561835204755373783271297084278686776891786623479830445844709499465808557175982699372000155968457481856817688490722566317502463828263762237397156131515226339376929168533991953586532943400154064888304985864853175761140750808961681419435682054571656278519751310007404664465311024839168674469476981966312842301149642148460642454290231278117603280260528319153030284764531035169392173088569356136755206015834366459663883117607374197535907835660270194477054718189970843847677132720249518553896790769337129667090405836395910873165157547230514811977257352145517205463510877705100527862647954646808477128503768638641312810352999361917380860991614455600914821530295454993474525281058923877597273050617507405319297391575614671753066493622208615567986285137061232996366463251177439295216079351145711085865699015198116916669598979370346410282225777061348631528625541768301466068518815899176478471844434891756342883912582255767478370953880676419344795040131062526069134380467357198722706131464909735200949885494207337952474715319373167467825810484702926315019556604504194790929535001683375386858952828397797232985482937655131351718212417917307931158782106214543283250304395792826762815054525599067373059440116218534630221042192681463421431661503931431404349389218590742137291360809331033608383314249357417905889570685777309639588513752280944672141861716275708373647096691279981118922854964215010902213470461297466349502749024275606103982979253354081112735544147471604275286671583388985704312491049313558898344122826194887328796163991851912972759826700092036491677168438436822192088700463623328358766287143695288774709579286351982551623446437433377270839455500293037105208790286537056318388025131063031400150363806025386680269486574882500922104992621304269724965947712947426787447327538358945534623591178980163027018820545365205913925291787406250658438200153199842519690304285229472999374120999429151594711955078923401791904691147455443172976041430959508308483577161860187930578938042777451875773428929162106837537301086228100505131723962804306808027875655397393071447336992493033701949944648757233877604228304745874871166906544235274904447063632062050113938768892316275228604954096132706694606996610363203961305426215862407931067443694156847232731605113020006220071201058311305336751129318156503590200579044993088575355567510258002775849137639915628644891175103220587769886179004633317616707495536900723620130180447002539535519051168233573676742543631667571738072851027743461627631328906145454305665358320469288019619583284287843918369249757753635447469534947820624845220196768770776180147433293409475418410277336087690528798289170164924209940373090013842358131126372808200558887727702790062921093075983564315976716532039384320119966843351327336479320172508004396855509472504718067740605922392964453297098574823498482985901651748368459698606274239093433206091990017939563276760698572891120425253881305351622248124516518383585492990015353173938205841792179947435711934744631608561645290985003124657838900888423541327062521552155108232073459377344357391378837120241588564866595939379349917839423993152929373888199914671031753103253762668132078747718267403228593909532736877909615150494377059299348496659644218674906554858328730777787440094191311433262360104337744479633941152638511716157860987171573381402328763031216363947519424863129944653679500650872762894119968131268504960723054777247542120629515400619075648878813649375111884790635132537324147669045509929387501859325148449709834278472580913846701348179219992817359032412501132344383819725980331606420665258565452379900858957658164353184901848721741750934652832938461729277973273831768051640680551707555065632406725620258493814630998379083545776206738383518722729380805099418322055301696352275030331953250804396150066531697051124892140057119897850644352557296051077769042633279526955164917363873460176037538153083904342957441154932864678232175110640271098967274993105728314026301218351088256562645202381820261187435437869802487693029049668794157449071368452442616590340538433173968239918948129331069822327376618900369536723164336665656125801359882710546539260011247072818383685104075037529347215848574575387017371965188655340119098041133752756278715961421579644242441751680814689757216955082406512837151216695481425668090810795672292428001402711986736263976624792495663812525230485894260842741124609377101163923541883085537280985560332810536513037273753504332445849727760002546305151044702077622022950806733934368450153977110511911440744662356837030188304832957097373810794127969072318022939607504041881193485208521571045102867898557145549889790627538613639100643812114493418730216806135904663566701628241127174231225693047817773498260640963264484255470773383358481691274686967270769704255088278283874981644532507406839069203883600964792598697037175554723094608806971553621705150025769675089994361614417302271764392371339645697220499132074471818419934650263348350111110126467339462412775658726370719568875342948829264476949236576506137616669903401458886383640199478614739257874366102997551862979598582952065711399365308169489417568342920461177564666724595760296572087921482567814247816178652856891300699505242109784514463724594355004875433420783940452295084177661130178258209318605139017061817556890133468969162070118820657263794289094807696666293299059565103956597215489513732794003058667896432356366120086647975639228672553305668428264403510358793849143334051122988874794583687345796646674631596859153867987722153801156724433759636641192305428006712403009326506736467247225102624426910467271523811418718687826104409605700965665876005937018324464211339671835163551036380933475430653212414466517667065522328578921401818671294291663765287968917719066138953009740444401126896230574911805212967634467598240267087530863068601368801056927543279378878228911097966178434914453412689249086411894898661181844454163383028925144264075950512550651446514055633607875966025979132227462322463913939490534590939917907974818284408978386853620400577735537205102192252239860992143129894318300166448940768604392111064796060315574695118720372203782452562894775028800765074015085768552691044574988829848910981351969974001068987077244276088232482038878808826007748102020487154049095948011082735957689792637765659910363973466717897895138221331805456695280263883970011673556019009750921637900364960253281863469174487642881105604999564559413114964259567252332986988242490366237103480013917699284995647278535456285551456446824560836603583533771247797312864430432630366634151511222991348978004225130552289283993931717244306246547977465148025566127396419334575883013371577881355237209564617955530390594847111335452187959510722481049102069583581835801732449308043446283174165598226654863584723812441506884062739466379264671038205063970851218107802845652890449590364833134031963831186133303137893987148985702481779594390720085586647231475765145692273680279119973553317810762692365981780106618903670500738694815365619917117001690536807288740104676657096410255808634977761973221305021235148850258998305678243037195896456920723650230502355832671887924196575911889910939546406927618130820649719262743858547889177488201367575222973687548413361358700229189891997155786342625385675904230075296995888122979174493164010480399057918338351870980446376893756255613951249986436509947583528377880467967994629454601093573753774151945082500661098102012437449402627087364433400138888650473306170718803157205831309250698964383769129616021686256973751281956984697958921286663501783960236731436212121215931841884556132952121635257293612184564980504026194425969870341588330721816833426017804596804866288539361678151295484441842968215342920819541721191883404122957838051110695962343936184688548197004303470524224834511837701238783145620365633933496059281331928840689014833038248356529237507330521638187563108897244293704793797086281785215942309597415540209235765245623797962988518894077010817047166749352948244769460863669001874431681739202394647771795457499205775402628187718407377188308396824416397336426947364675749250122493767888352144355210671091678160430657475324654134222936197254275587144435327067354155428477898749647538171430672745930827350340200651550016910195268109041450684600965313480859357418986556047276571129508713137440897893416942160129587145677935090514943162227169456048145745955594015317546588655660511526644824175166914099476098645417773198492381105437119831958396598022317916401663453515753592207309799261722044983377657568854536638169549011146149694893970917093954978508799582638036405566784248966719684125657068114410804826045374981628377707865738750623455832251555454337969350911045219719095536398915831646792236796067827612555765195135144562870320371846780101280585559719987096021662170427303717206285171849184191536687443611721830632146270174884774060657391701731490179851011380257657701168806710175119561409456710556011506717013893455587835174366131429283708211308415289233676994207127250652736069846808852782753080577079282094414802659368430410530752994111632273614595252320388484283507937265277678513310404487201060527277297492693267759787895119449157644854000683726263519815191734572116303232711641731824154495313350544721773955484141235601921339630251114811582321750203703988132655575404791085508841536931899595963908192119940275067135554156608810597543581757567737304784349671475833646005665671524671160495538376801401300711862190814123949622041803456753621252594804434960756204663957668192810720309642387297836216752425502900255095767987039828135110866742913669526062069515869219724757945516709806046034205213331907944627166735565910289041206621987927617177673038610320872587183910901736911029602056383164489357892756961767790166790266605542304214293197153120457301896385432498579435942823267275052869498082529800987826651194398423946475384893357449172036696174033875559882845247617286648557851977061419312757912835639990231577808227883324565685218898958296828581247439616232001373573339219418460850021811522214588910280470988865047229479357544897839911361771210765321717033352149645708169981447481809454843073214225772317034075859529326950161015822972293583795447890863752699625352842540521336695256154332385164801340466622984826988658466681241776284393005535690366473665979479173230885146443442010422034729763306529887525075975187935877903549396804299262803307383105583190345206719549822682083647298003244951359579237879258817908847482415695357314471186625684438888440118900359185827634581562213518462675761430911576434458737664784900527392281184862528524557412415019591679470061122418569191654708977541998447607784450372449671749468958081780974140317529565704879120611487225672072982846813255872227931964959275306419141660804915433664835196287910586216501663452760562760649909991828404994603946561495531738859101020351188657695705108454033033772158841092622805116923811376264843554458901841843784398713582039100990820795076571682128635283322169637886275524646938529694240572303656457359665119758807118340583601188288765285734968454902412867641596602750472669510415456165337445101096284288467753151965856625238442006642204639617814766066287060038956103739666472290057295665532604388926491001715586744379487409407000914740445666767724636361117639779797175910330721377868452261389673599299061575030761274170967992149715312334489427422980319467727683964618047505679498073586998825124053765797844712181491508314051491718832205784282130210971199130163923946018325275876644220624352931313694455465801913543518466983850347926184763786406943398469403056409600640839501499290887915967121757551074294098651373119069306820425612184268575655380261710082607255802464386791865544032806161823430392094279293030274657421056175289569262226012075815407431430055469715409741036137055447287393102743004181024982590140528093273711423589826563334456140428855070612170245359179760762556447378370378840742256120760281691141167116748781737473390526556004729783530595150213077745086928454361839133531760081383836912705615719255906485726892911429530495195089650154947562010957038756129692009005143528168079821648051519421487054022622022340578198268522124994340002247419414307561567491129739806393827347424759812753346470462195210012792872708679056429437691450638131114208604728210209968038301144742633128042593971998929563768584217186529220710422886193842628383578710211560835460414338058118413563994198391277961650759147957090711615824786780009258552759159968413101720347202053874048305329959689232673791901197838797160919619709468128399101207265775427679921188287741301126554056687110126613402478055705129754760099081178342401247419036672267669962423632214832326310325876548599380890353343404515322025794877347026526326849943856320076704354074556388555240829957607782684321415309694676746267668494478515262601636154913757518172659310981923561803651700117177170850212532063999834884494591500296511499364868205601755373690541354524212193468800312884155960824080010368503568712331644660243797082692023950294132739782922083708432116896950321335150838845731110861992588507002379476048868021755870828115705746282065809721807529794384216066168213094006466496962626716755391322423465767394436873000420334257633883342103582495442520826141617540364067482252867822358180873780204588481865349714969310220171150943316263291621909485831021423721607091007874431426376520346081303056886859175441666559136626594914381231188091190187020897818603595654529178060603874356259257683141193377082477399411894942655947224293947622351906134608234798692807237853056850099145477347462376808911461314135219409284692427533365025258357839231498341947398490071448364905752560921996741839503745892545049138505010713850624843243139546086712659444429376583780788356110942455114303642585893024195975138643443185553380480059681826388779606205786321350517556949044217438890442160201332223811309561403466353546674498312316991117628655086342561421980145812511398778990555756432460897239257662094130098830525921189552943619100170753795614726108458972392499421792801850440966006207824654844857938409143238242083369569869978281883582331104000150668105595110202674003403853091043982709575766634356092865452550275318568144683425326290382430424102849061385745652486569328712952648876741363018713107859276256660558314635387682778140747387283153288754795488979557859073550173116614114228521507304089058475962401626093579213831636786367180890060863812135356093929034776093857856769170801635334933707395302781492512536458696127007769029242874726486504705602850055410546836595840540303499685194109442719775042111160633738254193868959771335103196580502653289750817107211273839011420036287934430260638196776936952669054160085096540618336250904347575405126345022711853040328246318792828561577793377282956180311566873793576746243531157648235268287316998698846478322724003408003962714016756412610578640432184260918660481578593217553992415916353259396370293826621197013046700258000270330173600429958724339946626396558060698414408374842234193381448392875513826003467223225871814316508488074735539640031420955531484841825229851549347304623418371086296164217661308827340013679531329081600307486413620019919827953762113719957414769861396894480705307751863676216488150488181415307699683783147799151994362706745015324997985600507053188690997184617886676993093915747616594814490099630359018030226371859925232400134077368124682944873903034515110167535834328228015114026984693662031529589841993669839747176448611874861219790910188135787945194906683955746313986456844289216148935007598286185204868725258560221722298417850965021062018207190311069482632815266640252396746258040508907099475095912337338497124640923489489816121856503981876285319067342662337002930500328712362298989805335104606223619633087566872194731295981205351566139382952854397819175644104436169050642479049018670970458435308974384159696235759078362143120610810085404787791472638558611043679881185123210637801757695807325062712829484998956356768522930060171497675262491498822590267687812571998449462503419634384283069195435484362638782860432993087071426434425766992750097437439826901676717170987109109165213516260142328533153437471174103260498684610988745888912734834790148721579525137074593530861729204867777230465426335704309843665946362213042187845561349236203706362563000952914255608936183131400916913408262938055349128699828211025239068154869821523709365797243202117106597461927911892434779087158978148613128469175872451182587522689315791690053448592613057115756068667646794137311218071245793982773192021565964221498769988223694440489537522189899801332849001570134477940253443737676127389426816358858933612653929627907290440050892981453151685851631708437553793718393180543414986258868019101808109074942758456467264383657622403345578516304217943001220230582187591230100178149201510591309749323744165320389774972137478244557646302647557536946447643229129420975652921512820750114049643823270385541966461234701209061587444315036032782989704298451661295014746704811175295257004679105207843411703984087786241866666952184437019540795118293809193315549649003042766754872092112276366708538752360706932860133998746331421787333573204134237958799360599179653129150246033122594355642384130942333182965451087244513475694600830425762503064608329355083445234113106453075543816627552511282382112229550672177755919889997439856169097175576256348761718028740016978634158059909936684877223541337049196495836832847595306308170595418721063887585827237912718914358747231492617533280630971879088401776260838767336093549216823093387129574085295352243190004059822801105644724848231800741035095246126780174541006625655187263121388580356216939612525349370759344426250428188317197024197279071504058927025466247858682695625708020080060558999503051859613895698440118219092183082159472138139371111431363943819542768635707053296010769721724985356784187341127656269765123984110235394692028681334172114160546357032387064118685009400731064581084185852142825589602808443620617483500578092348047108016084740351744688800612497619405214682322271168493246702304618238596946211466846425617574258019349343544475589796701397748533072359876014307337998885475525894676091449617367107002452153191325962797357385412502356969470139845298000518847739567383509257522289887459936078223608590222630371050762325731545180723515739141091436329718887562982570918888982651846815476898509840711739301803677159649825727340588737295321956253347699478238384790530066061876544213508669761887840785583791885077671806316247110992357844924994666649814402753447951983907582985113305149131579209634228699345388462718808733084281844131653134928122834559325027060359590728715145561154035868394765988073125761410729196048636790598137547097294000653307235609896710532415785042041147414367018838948828345429484116453892173973287993464309314783240211042356853716776691178322671796769258535361481636003336546236591988407033353659445624089269373131149326686090429604758017741298400392430558445591360773553101137360830841208839396799760586134422964443572668556822749640593190439383184050042626049952647225966137127340331897859459940997365883602089369930466020435228283281878417235242169979201230450439324892592643635590335425793811680819277451940055250778740611021044285950847523480967257619443424858050451088565141216341334998087141186826540740636850294386647179587752058902062120555536940235379471190748682119024293720235998212551396227063372878264955930735860191103674225873524016258233958138301997629601832993464425961087780528541951192532267502746540284262681922895309308939059639755290036218156555443234082122459140951167470637851668966318697237723644825015704852162832270463796372623117969653905863771475087185560272357748337249706230592481286402696645852599519131553575302687095076333436680564178466209338246091561701774922711495582862556338041736816594471879182717523437658713293122515167474595023749348179563500551778964178826373970942055945385605441349522979207684206448438976689374546587939048161350494239903378720687615231331236173017278278314034548187363800846036333393813689123922584958939594910617986039856136052403163254235144166887847615816104518370121794746931380132854476270328726052171744270269065766220726245259529281128447997413407675899243298024307769601309009509361976413886119105056162313748582554178540673572615367721347546394740074597266360049352878757482391551550617890958373045835474038465669297738725491834308517156801503533642221836311628398262840088242530310466944754077126940021777904825515460528511512541295445112349665953714685430781687436849096086582945195898864426043055618043346820645808954697106155508810178785733041217025531522600865122781822877690671646340306993478872043223864528780513242202122788028689026105473485191924247698899536957098827844142451776319355107264905079548334229019835518708369277507765152743183424054575767693690784190618130325094669201961954780750631980701918990136726426522738035605121116728870356268148521677800236588680194271155879433839694108989074796648991452145072425297161429615924455017784984687331105887204490121585484523762480346647148596694446340087610314334567908045192600984585151523292809195089682521729286688483698636289076833773047215704170596785010153634930982747457840376133719624481866019189188422712449053229543845410504972128023350233531297318241105437553731153136049178583853741597193875834870032009210287032723809478064668588956968165620330821760479506235698842370004466283690751527881069754658481699146464841762637491872949938309294434207672691409597009799421928740541602330803460746357562893127741228920701441052861317050024304141835113984311885824160863569219280959941672962268945657008927165113156259888733116167615353743554573771934667569791818733851223666690672291231378717395256250453788403737222640184019897898885256588147411873255139219519106515954070640667931129164803360903529427788947948082227376103215222103677173779630590699563040975295166542793394938161166776184028683314653084045504245457687699161993058896389426081087724292640921180479142047989715148103803792115556162680995123877500693439154496864418388480778856836850640725840600189825546664791112786268866572406579040724490930578410871903368568348865636384250472882805787228582018809728633691756215213975536678749415616286892081696214811916544961130437504321143099652691457324956550199044771173512674519931813165385503481200178843075745648478600904195652681958567162953732696353689154465900563935714933513255522792905586751609864571084641520811188913023411327737907021348689796027507867373530066129634954508699151984385618632474057607350398143873833024455094660320651682825783995478938417340185874630798477114898348653150780916195402683240604566351164703036652967624378687697662446510451824964793618404449609676461906684510863013815145830944573703248236712243009876026574037453296646404825117517767210715699079378030916007448672492153243626064454824262359875474132051951281638380972133984878272884186454890372495222157216933732066008049279545072707063191553229113076513782850995341419716865549820742974521076329097766321422889352954439778299687659491502318004378596788091138344569880036537397279796987649590365589187890501240019500565773482122468559784036651691804114097059707963734544749721702845879899129244218897627109358639362707295215206944172674477175051168500340580282367450134473697315362776857894332207229284817652085695496651263299992834608260396867074724450737588667796567279702951977809307845964209798555313924618725090403898512075294199853676728246686550879771529880349939194078228551362072692095802453350382435731128000516558680788940355450299293961167919009336086654271835675332519098073846723148493688424711358721394520995199812640360660197208798532318348538325992558163724424681383793149211600350171802607363758212548845784391169454823985833281543963820648833706341476507045166325875327560502734242789043289337394113552637893176251300852444502530279862110944842073153933480729045363222078892700096776737805126172766838606953276599460061579874166319345520392405032226131006528925560628904068893514469982254319317733305849223077496978326678493296473988216717320598385344738403329702572809642288971584881368347104569626005068451331628671365426897404858954133020506959584260152037369828555146374864658278941898413073804938518397075410390221920553978262706883769261837414458742332390236317393520437653450028300823546871100823595832689683655437095898097807289178611758611842635957350463391054190175007634347977839219600656836719752254813405344997631996969792379023478873779045065416395800743628681614952136341403688142245294003269824065069849040769790537576319146295086918874668017470078569676494357302390128683871184463280556024847389796238303296942777769060189953462641825652984110217744376620649496141896169608748348927620362675696229234120222968637685738614880131902957854755651817950945273255624254867999341337185504970986832409485001884116840536494293262628650922853872366476496851934390706420663042202595649802947095927898881160544573741458131935207090847000972840195376112433856653439634340361297780073610507387384630703796588031082438696529129961686985365926316362663006364632954361092855941658316905022398827035957697251303902739386505410017383475284367335543493299101613156668326711208927063114665558658408927125758616970032107758915194078854328895948234797074070512756138617990869177589981857338071483797299126023223893274787930703160853142075418282703247379299680307745234349483711225320584983270396261651886170335471935314191482147542911734643491611602759313405596509371157868281276067654764899100710835177356432055771247926127644378009276378294937287917433068064043886528758059627406863249620401882138011641718217905915389840077468318228113295087341051382280117859284299321705746242892649410491258617996568204699075254472102379029379227261765524956288554911311273340711952568956570779570445090057177003401481134381798775012061023325875571291286201760513826109277801140243002918403228357383392360847221999011738505720695032858894777449405926754094329575868254607027483336020819943190332525771832953969983071939861340991814125588732360767453357645621634729614910566096332093800413560434737063629057036287852910847872154191394595371479867673710503229642719681277476491365835696338102044390869412849603273944233809587658240169652277793628288720997332729735475745478493630962518233749082864250720948960956215525051989667681350987851948796601728446555947228937945760163784029142800469983287933287786469910514243078995550587322192531499638453598934189931865107419679641659050333056327543705632344215982767949807054495831869073322301635875390502900594898121498418597715625150533146449093025243627488847097033449965198295755712234931687508979090958299411578248873944704574197712194596789007439320316700438620020225050655823084305838344700350440249718244746354842039980819559088379851680087256501011220848579729256769218800084471999266677515843440721242719821118068723000376444920698327824457074807848390996127556043512615420236220580357195795030186873686176754592888124218517585864814875649172633044941502825203545974054133488958225477835421566477802700720890736326402444231860828539729034244706485178359341825955373371828527304074932433933837746069353090190577253132699240609633023445710817004657494586499851733201803643762272744842986125506012935680453863412835410137952700876969276290279063852633522262699140353739369126637062401219620865598568825991232357133171320769145832557263587091131491538285540851265058658574766248081876538976105719209320895140808125430653615814017531857996813096652854044581894841110066069339763040225344267306215927753902232817673057334473074289143176283758827920265230197223938077532638996580699503685342186979592039555747824857163618519779486953079161696788310521768167952236920956142286765031330742094189251518449800346447541349717330288470765174224805245237206207775774570828362250816260376520890549775505508540215421652988279553375090624338499166502319011137461229764922392970961358430753894345527461079077877667510300481666596159759801144217777816930611874307410253204861722582878485825824717365776998851721858483120310538877768953683262577594563385513725093638769786776842619378161943094451781797576039389859058174849223074488058313529825039373716424176724337601574610556154501703611525986337330490215414969924965616323180641468464278084094792246024108981195919082607647632252713941369882124183793638097052189454646778228720330637386725735704244554951741242864639746998532813058272847455878811650468778051917635599370225270471638074404975886579447454205333149623524533562625019380830673509441324276655864187198293174489073856644072206516559077624986988256179718226230966314371539267398869078232224427021044941374085225316653952553760526877780096467491026299317114343288524194532614224943025984096082349245599404730774138597733651085474241609010482614632363475617372843744997302399054097718557080139238704607912756707685175100200321876737442201102708193690167577247961145734494712266657365555562004547085297884741688586291149448916948994691396471354285772004546398719348064864672539426674140588667530753563289518276158461096667562372051593253976748694181298735302585337557185484606795515308415754670164171602595032977636575973488510660027744888657776634686049760752478289667535318232394035824281740316488853076069516149336869612291524579592653316247964432700461452513804458399198507374186808390407245865494489850217510981905378069440308432681394121213498342535096919520119957502863445102738519470705021999964387087215902804788672738453364966046072835960893929910925097634393278462424043427303401081931046676146521448537346275160416362420563449626092990456469444526588839185254414429213072656467904160595821785789142883612122174471990534896004892035520523135941982488398569859959344368738329406850455299389149406980034443978851040046895618396739085525581832206297382822720878139960731521636797081464387260436890162131938324930935814967614138457145931034259335793192775501965577370206115425044830520459067847624274525248884098104585006724879268939312371513085066436962204503998222340505494374990477119157767950422604838934741195195541884671590781376398639326517079737333530331792980060015763037585261333395616797744208464971963491103344923186486853856258059514547247347825816605342472428207799161207321517347414657917231503812080160019773311470173145881983827039706784888316982532937349650116961543751237916122944941141195307111002641264219238003961948190322901379808841676913655020817744829779439280745937723307743984304500648662671819394944973148858769419044685294290211186760207791450515567102236585542632230402692722438125479354342621815539158987421845978384292201782383774666588591286785843443751600622983778665081092815386445670331911331761221129392208791983752506491277879623992130043788940113465688553155209282009529393138268426940090607948241300634659348467783869427541391661065640872488693412001604612867252741583284314995226678436185546070040142628220891891184067232985949314022024949846341732093253759271977257194674234575893167579117326343445081534190965930807082734880938348437583813403032112014731791794790730631730154216130099125294290257148980249529073348993819640473046855909433250361931706658160806320963501097557975410178612490793592598794837230050208064941930462360010826932830759619230546266986436752893470462669834995403296246862789652216345974356064189690796358763904628974218172936810567353351599425517313765439037918747553752874482555893818274025443157250271528801381882494045582945599375705609454138226482526777019624666878238924086621947938358101084767988009342525815961829959957024064585757766638064005393269755939948493215427499705758616810116400693533173055639964146013500513965471165971951083222425511099707840659500326025400031171650396373213720000773469451233067055533113964312566281624769997393059778020827722750598103545288036423000540976819669445086636825594110181943617716635970182033371800850979894007740067525181976868665478562703009113282249183287512511606683114482722636757459102011863536445208348917281301881855104116507448793755090846962395418119080006891705983821639972255780494564513333661777824212583071387743586115395586706380727867518873500664680470908327127329827806145349637690367391384741627943420945856781364790138017605180327502826306923733246198817547923178038845467115187776995316999196793269512938343559380338332606708578257180382738925739044431008573722715995084428399199490582997602115792986073660641644598477302071146707039560341605776489927840965067912925122649470755214577345812592656143794975908294447638302480310803179565624542704505375693070295888990020633005949131939561521241106601778598935444614914063011271416111257918853522686360152945759607002274482562695774612152766035372146797845454896892339799548429095600427739535916609588532891041843024519536841523818326115380334497379568586888841995029829180373815384871751277139975709140496604835433263764924883095485606451249326243218973314781468847056623420803186824786110639801301096909744829263458773491219886365429158581889675960324546001148701876382639365100734273380142837473583268694827318050214202408635331802575258962009127972848972540627337489257673191714330360387464330554102013160225590914103342496955974371530857037869615550523461054285260832138893094952574308362589040432182033034570205882501973370171757303005841942683665914342667902254219397686923227834208011998790503279663873175217166196193175372927338074261221446661044861868419307014894096797026803836628760888546044839346053262145448898265455386819579258113537350128021121169595591877610280718007411789061462872697399589917119200206925728722691813696286474999276462680954135597213225685376075711453386612157619215549722450005816909756205690788240018421476806474051774244082257063688805271544185315172798185447355318026297618687685753277461340294962322166141680632832081105661717269107509233655361659171247541721458030237122777057199121655632577073719168642845542118249946404955416736721553785023016145025076890128895413711807740296387894181153556265834061554573889130078125275232476714612459156576742727583920336457490992897122929038273632751130044211544847853213783689660620665833994374243056704021313723645321813105820363712871618942977850133123210766149439113648064078513936658163447687674802074226924450476440310047776002938648270190505489062179166769214220007834370124629565345319536294748771616409947214483135643348085571961196846423039932601231419354748163372739892998303306678666999923017936544610333285263493633916987449140544063412632192964445929699221439415418699621841837471622569447154377353275419829064947571582071055977587089461693541157742412577573599343340955829376715717502092065215266440918005621480318150080230870463810753068960132092083338068061141312006980583366968097130394611458485940518290855820408636114741637152948419206615882128288065974917236737168339670901565748721819351203587704011838913930571903918706274515088981318472772082584788530345720010747248212257057190707101960616432045461499811611550339848542500765021427191879363619244703423996468280317065610399299061079315656212136923008211107599002268676442353869061078195945862837795326212261148738960675242072640536864565354446283533163292983778533310999432111328112144160938780226990727910961180634835879076597041437704171827293996654046850508517491944075558239737875260051317489031795898974975964420897032613549164787345041192298114261945685684935515541160972214465249454854480022063150358441556083279784865065126369673927712774362448300528202473826459668992999504953403243799717080669264931054641953640791777745858884523764310078832816188891067070796510908283555739997832683475874011624041498051779787569926375098649744509556439379641525767474346840635330295559961774647385900930144800576372768527470564949455306277613009982616207946607875529834988099476874634569317695156412319728150261786587299479726913143438842996512601566469309347477437935230507226170186253444995946421923110618291974977563644756250650782343603966944221451693957652266114903887674627360838165793446523714467509955530447218046106287438256919943806248965852216055853004041407342661884739052728387394561644548564265623359665641165513799494030081751607930757566397269984538749143626024405168614535065875559137960007320776248680347020425560866823622657862541808917495264919744991393116457561639863927546145475576915812660410615194737725466409439086487192902099475766547782374405070797251012247480134105604934963251701209494113136608403565236476991841725125856650638995694272202419919750194221999726699922350714525226568346089068113318076653521934287218997979670293887727657716586424611193273064422397990241764801184081276857604259540471932203769762320836540637831179103009929964521001573470731922000397561552500284310333400408048600642532208725182836838627610727003793469886590553229566096308892644129824050723576280552966205385554135276772715360480707498702554450772447955767107909259480279498586941083636470846830829222253865993077996056233088656452676179745282140268651036159534932010122034630785691384861551648927793827057942627599450247158243563283825768998182740811732874419834297129663098219999683308679214698524529800877926850422186427616797455716749537298933192009403649988880958877772116471879288068002117325211781212723209596476208495735151347584078484356464029111847004807965455044955105972094122753361965394122813055123825195193679663472158040535223437370347585894714409503304077186302759762920912071889907796520730082422047176158520833743506924772975776242420008300523014937216248772719724366200167974262875563833407233435583051944547463522640978637729517548480359892580014529679531572119317355859413718807047131029089898594196796413105408885943360835783630025022402715295114309235271931600432446155571131706651171797760333638622220671543966345385409636762539687098143054406201651773522735186475725001357009507159126122155163015479954070248867486253656586578687830948506447926734624099534694959249016664222396137353424339910619891079705810608871032591261768152103760886273953654200189935002950715045289459531738055096873314731541505335639316395367925712903234583549811773852145465118115225348225555406402719651910651653976406099338917280391906272065334238287997649612064986001085520237303420257888929250635968516287617767020642861486609252479086081552407953461363707821060672347682849601009311442658316225893215269607449788172640628625307205001250395330700210224020143697072715384259972920568826674437196017389978379722633879511534923668218299919667912211421043859048959631128161610414574022704052077543317023027463034847011288455478166275297405939491067772219166156321667758980186176431988731659150833934028144131920617501693860833076546856891294867231029925271762478044979228073630449839989522459420590790293783001692236625100338682073867086951932040030468446380554786940020022525084235051305216334138505745475447294678378723336603726567456332169635503157869011743729318924715137170924828048809990581400583766238137459866947922092789920953016413321164005647286115966006282052282989797370993150240403927328412863266173106450581525872897819310642847917948439679169931229274654361394691572898598930159468882685543724378821893895103604133828260169984069097350570162733253810324150558623628537643442487644087207354584111725709247912830560114007995963745133718557049808419755207246938130487188503798810824849703025106789313225753182194407144629534297423988876634676745784879020154219491239392800752046379874313082249607300746347915746025227921918386058068188835761541402631920410915121873267467152995295063738012734799196809922977455239036119434379304336949145399897282189088798458117322813996782802249259205423580293357309098542749146589072888036543072584662505596465082027095095578569419684491336020172461595492833160426498107678705698351802818329020637167697723602547888725837948620658840587790309409935903910825116275329084968510975054556719248758308360723187674345286178465083013530351368209008409435646444729363670413567108067560732948303505200766377020811201001282050085870373106133317342006336775424876848997209608527543047610800073813082940653271890403090776327502174010724156604206632283632640682795879278965540790165898818155485577955023073282385464151227009283443101728515827034645615628111329690573918201874167833598797411074981256200338384047203916037192027140719224910495744730045326308676369646203215185480490170142067442191949746561221165708704200763926069400908400830592288618157232840922143690505978623628351724830498818355576724161552931782390400541878860054648455516390836498553259837269071731656887838462935629601489667532905416241356189826787665510024912353840160396230173834059858892031456130636794944959255568873860939164788640167638857931799878235940860470479640803021356135885521085357451224297394512290611672510658749472405260412246411594177144825197893366250913320489454449298211364872282321199226580618865801785543723178990584167801612630389897866689404945064916955362769900196482123694910312393584617161775532577860551481797362354342615346806516696361531931620324008534093718537845182343356453131210375425682693379458435782751882964529305320471539699075751916291525543466612217779120845359758557696506583759515049227654575546373088513438502905547498993180744294580132726258326447223469146432244222244712526873438366728940712882921127238532026596265704906170696125927408683769071498757266035827451628914011768709282033004531435210265166687423651371533994022737213606044219079596572024231933484874973423958992676277972321613381528503653276103470761258631788240842486707639935581302346188269048152099628896549382254785667128936594220623203730378345516043417790757759207141067313736622206190508657433901602976483569920936344926587125232002293763767061539287127740548988643983794518110435707274017318654449200853350003041132382909341334989827633646422336147155000769153062814443083413439656730894003050808164363701329995584526047103472009983316804244076644051264030326231704636510807707438612598238404926559215605324150906198508051853865877609647263228070874184671799858014630972178465984066713892734362942898221232699374740376054360565637252529664475595714224303453160933650208485359704057103524304571823742234291128554759579240582319239369449784636964134124772082954635210856387684173556075618321246406250797532468717190613747991073371974331828963450136647207773537616936377722974583741418639638959856665588760806418860968374679588362582715362506265977887651737874451145297565427900953056587075225207809291574947781944219191613034129159043076261330806770687603785236308397053792357845804434459693418150673333786358098720189073577595129964335445645475602076564571070716146058299830099856280129290363877383940840153393735312673751295830949879164366693134084676134432189814278796118793099393630286950953919191604159402564276565134856765131928187247329850961416431247281935122789555681337213393901633996046007283146426322958122379452939508594704345846587520993789620700325373650390469875469220420943700546379733196199933243607350378139704709079120657644761241756595583917790378498641479162114647951041419949989948258923622281610139546011469224613430016063322825360896079786936008385966562792637081908104117703879159735757592965004486327582238219129687950803831853917852022021711260668909425117629538115816653570156648149726148728237358083202564874259144014155436530276784749024631879930795778236971409949965200080775727438440388447068323921006537403663306333275196175274204165145806726133711333791979414809147867838819773472905067127050081984110330060386004155498289505965228646603449837395249641286294403917895378586111149016658885942953119453221940031191357225300430319639271960552474174938844944097465687826550574708273723026769707579496079099961890343399389863103765997744018960104182021962642210252146766544950992655721635099394348830849248914385448313628800965423452657860195049643345583398485657472722147022877330499777567449819809418980307777975479159519891461291774105631509882941400365118312424529568483741952265911279244697084668237092436956261831662851906383806175649495134722563044972352170610187566644378024004773195189547111020367810258707880179258161907135934405836046196709110490857391723995333659597696440786451299102421963446361749557845612992558686247967687501768401234363581457806728442742635425930402582236779156426181469620388295727984258844736380353573661192652104288804292786776027656715297588035467779938068226353078421940933395108312250544400782085088905636258905921692438101584931464081304191193130294091794068296627752141221800713675803183312248892917784635826669861439862916667241296258372552853258127726786247810415180112003195814106589532363519116583232010044186078831550778253456625676535167087608584597880244694750577702636036477557357147680058502927316984444338641668039979169766937873574565340825406744310979238968172802956463776051673146066500438531342642345129838067583150870300788700892264753713147475533719945344186435221323806390943175705245648635584818481416013624448524761584266575206619571328039037983880540724394761733343926435768363780333103924329328400119114202626556765058759964975633537863604022618886229995043214030703159497177357342657956754777094230499548862324788764207067006560561674074866721721418534442301911685050330875631786463349885006315216317013018260926766846412157070304168619910581561099929134083479082652530526897564152420999395441458083920270826493054538489240141712789141167769039641238909012229445267976725711151987299263149216169115417294557459852177225124420783443759094311660780719138937398514574152076855602564975480763151527658092502127323783753474154586384561010668523031180636962197788277064335720462466173845264562984850250606071439924321651138779030716199031725244007432098101910872421346928303459934477951729315323541150611614016609122592407767428014772376423860640234765325973119984311054428318396218931789949070509954428285836598090815397156929440805351939647841369530446173726131036587354964450599702049743694738151777442033839224615657470731063879508451285933085871516996281038227832634119380783349731433852967150976271676581024212900259843704070461940341467830571158363114875778974202390351596486925142890178338260532992411071426164030185952213137369667762411646842770243771290399025470400170895314911042527242016368869614770367634997694043676572208800992483673195721352828202510200430832897288233413422594683963133672418369396355993677565122810700466487223682692009569621682181584754215862695581910917611603129121433742942293485633878880102210204555477434929127742742958392448026651563465603297364371605690677761506542142688395313458022523851093488624614412572624055674329620830963754914619919125075797547348173158762208009219852800220753972395855585103233356961013583073338761159092833568961705962493448239211267387000966324026261010883093357906477154775705740986553775955363727107071295389865924210807795238390482980269277876762802132661056895888267892213722336497720227574383438750065169522085751663702757455126701777134642720500938618780893290206597290984635879515441886741344682870838230882253430625078546593374660603706366763090978439436748709315395734771231119851241486492856959954015093786766718480979311190619049916415029041917147891618331814790353544551382438293097391648638350284069433361770786733657225525873125550150084696073089830920290925317673150608358792726088271402089157563711887798690171541400226289049722548889870393524869302667164999456419797926499607470854238887170929863667597246645938337432156774066771532346702950155455477263209192277554325234376433065390198552722212007260126081244551128305132681335548119459977993228403176072525224421504954001331633275178242461146054612979455812627842522370196779588455407996934507519866240261059364652377899422878555789265732366360112636233778193480560240099471824663287199843721330619189576062562622643708949401433662532351470565729184150895985761281437118630647381292088554293520664673419956267037096202342580008755702833376597322344108752483730218851836317094944214562416507697893630776566715015719951426024140324230181870127526921214545288080422415867999743328004933222542737996432586727850958456136031169225313722225332540094723593647928697862705598433967382122603106148365739846758764184877403300950150763538606608182109687243283858350040830376407165203222152373506566478032134119207174101017705330972511108213205780166342513415340406477290077064956602881128106767491697076867126223997095184772274628497739991084755065435880212697039154003548413456792445147244789045082335461885676891968868119289492216000601268598927496434814337143280483687936210006343412189012921808524124427908158638997365342224523266153960535584784814750730858032337280870497300860805016333487731037110768316237575449800796199043878845851762393215260640357635755543022783233577506782925165433550138402440025994837089690380824727197891622049382262038006855712976388275207315451384369892120195184120577785683490502951573030225267560709891560748029507471313881478016394101861409171833850100736257559621345661110845148935754921190253633215402992558123046761529921090833827309494742375121779315152674392965839207467660398137715778915954603463374034964414987614987609613040778972457674136770461995192316601710176887612604459490407183576221628643713735353044043811799584602926600481700879112109692037601953856214022564626241474719212568462275886727099719515728277123801309705929336574014547170098348647068890565930007768519769782833178431522785499353455579529025788836524600417640980549647242161986870002903726972872289305572941148629358952879397373529188881285799303686747591937399732821619007604614856644522535513630519225700944474854717635875541994641469390962684256907690675079851551135889474766025768358922569994755900209677437226382184728936159960334692543139690683457670629653811315781404788254695877954602510219594823852607896325992746900544145844979312460781511880701550392488336148380392720952062685868472097301900985347270334851436284927502364486403892144429636859320552510982129529949423381559317070162517208727638958484188921025359869687323652906665323527726223159616115873519468578362552948994184594909592829952718246335381581314704366232325609796975046265890796932783164319999611596636075427534996208627306937277106400775265603203568460079112656390778397244239820014022797756508054499818690293234132974579640980626246743659126859989953007841907320116137439666406067958328606043792777524683646425099961751232262048064056819302497086588124154279080396711494520361695605287904665211954400744031881341114973912935946316359650539260007309119927124020251096900962272625588225837687319358002952569926511623292261759839465838114594710885919099781071061696532170348580103777645621877831074759892828491189337497656827764138756374459813163616118064140912896480232560802449036069479024755850999616947878179865983969830700748299812627959886187323538668306670731844783268182938035155182935029545055668269258340635849017278606721254888018914075189127535878320909148154634246366757445126738314455653721039081732191582923303522204173101270390822744276160774277700561878463953993188740700093992155810773402407161419133711304803916825597567653157232683707197310099301496445512050397391968309977934334169047082186849421642519433282727088010808334495957910405401454254039859745018586680941432709257417026528821713803901818701265107166158862636546109357170413412980826774106621899003260349727845492554753101343001001605933972523143714891320277821624047852672501206488443304806090552403884804634607771778512770841139866414441483916390083254067400691069191005904552809090384826044794842285702169007208930027565399818212621708167349851899631227654300061262620773756710897086004542568247364356032069898793600161431065890661820994713964166449850673201523890056762352998939658761104091566418636315248993368308397243526935171497586791033601550219969621463439510791940009170953018559297872609871222980327489985337252717892698657692992323116813788894035531858702075267943560963923099046480725955917447697772721364447056542561580883356288909231904541044212733155276869171966778268881013388064891780590011874765091618435502607851518132499016824470772152045474294425375317684494835206921709911862066806619666422626615914112295453823991235371759311174972706278082207449212651723662576121771970156929137209007525904286153083085543500769984507726080187741249091275933293562262119125973159893110772237368371465404546469606323301168652685531467205727895166893668442795843970029448996418082949252786959832787382736205553186256547707220525469537880543608787525545187547049863141192851548286672550735323379241882262645552432075389558332734062548642438026240125260921599105870376821384306397708085917731584568094230265333834470091337762908106662411728399843036447939987486799943509090319506746770448017561317009558282173514626693246665682521511691309071323076560085371932923074839955170263274671657792964205166763085974588121855339042290359541324433230418283983491571245904178122012457945543382759273455180242660193505425684819260217310285741988660340942544592594873417497658795149484981608378721736404959668725102863057159003102306654198992672210335436317188782193553174346358363508641415441617110939999243125072838441233952469317507448289032367858613204773177261234856448894014890396876371947969132443964785654055173653749963245357573804481788641448503887122037676547107004689612877431286067706692804136556914578864372307845009595496113301433968288789756948697968160747778249409309188271157501365291864765059584931317990368254446678516769009132938146087614847250083060983784795505388477187884939940193796649248605177000091051688796640200944566695426883695182378289383921594478118210736970944757185115254632660268527924801967496181847074607431578169489801319230170983367234630295256583393333794003095726274299047152331463473445925701319858472181600942213415263313982937835427707022495423696037747589492526426978934626447690295003817318311331920295605054375513709375257768115008026996695814211678939802112555305435620481445876249118637163353413079164273397950961977384658016909959219080474822492646309126917542400677160252674768529520177123157220591841793412443414718187849809336868909151902313709349458455502510489084482356771001401526522065380883310174446393580935202850650093327704211893133262017654951373204231239900539552876318105533367873841833389879129920354841991662077069400740360969887384252841483153619028090381354185454599021319185687077634957345933209948137765309826762090900912468664706378910932319330589112942949594291878414817190593091756104331838213429669568518190119240417318905262849724886314506109514377749286617471055665673126095159073206856901833622112206861494216359988036159577278355030477935129288236705738298007458853908115398379502622824334531276606378147241798011069495503246789850738529420368347505673015235081459783172734352224461575166842157004197266455634531839719856482611850354033944673099700729528155403005900492184643223596029705661983073048613268308096611792547654029808323431996297500686022804540708314712306795249981424498860347191378234273760238622417764204030603639156733083269808509896402094804514871532341798459481292188725600503802047850677422626096380322350340905009055780493384190733556991609056783497316649404853422093753475978044286691868818006114325830089969985946910735484522716485590192194546888269989182980955705865169439942921259440957186602131909153028899355141337681082930512348295011575782911397913084005292176561012208001328129977150648548776065952666620400901464028896559646423769309659744455655015125869092084898658789316260373232611194087115543979261076169803319162955980744912710497145273098531634354581868696498265006500203529862555390561371776830232099683371782588228900391058216434446196609129553197467155422413898427756297591979396073158303690161128371273217915845352971188009012265252142882736018383408899306262590502681570192706134407407429055681136184811571494342384950547115254152311599336840969175928797927514106415542633058030885026699867057154118979378764489154795017857341168555307578822484346308187088665253499235472553511115534408716036694447146777971454418611842144914587224678245323344358472660134114885579132881424430769463623619656078683819222941375044667246846567455565839294404505822172276877727586609129143713424373062221134318989331773209645187829815309744355355254087425935418036474605555058140557879100240963137911031949826611560213533523633190767556948568381469553642961985699849623040390257843433142381837747130522191986223825527609146260065951815728079433552315558957367120551055743022970299748129335795983479285477803873121793350906962902474250071138780561473754357290114315826989613697703639574998211797142679316338736038355372846411480648982702702023164383710958692808070035640943575920593640534004117266246497769869377948443131724647731027988363681728233930811901916207171482183571257284090448504628936806085017980791861291450185154065755882290362978887799556523338697144897808994348894501808240346137064813057999379233138309170387717639545100033657320385842698716709003252495274116719341896228304000182564978721313718248109850607268982518665939746530214137306417856738142536642779602483193665814749810596923720034796764177733777278029854214024371650986285281313130006775574896600377563546231886388024431316877778942926014634994814500615392065991169594351977821657792007345301633132113286991198577484353056319645627662186415609635862795653525327057821088964305831502455177886576858965415322075291271138323415737153124272949651550205944952276321621122472276110821136321904564620373754384482682868359811624720304740304562145987615932216061829778838585648845427104424195396841054941406008984292145364470865270112554557302917448166264389634848670297044571777777001512295509641321953341860319510772219907227469811184821755200284967835508408167900096883193845851336000178516204291603385300355763558405216559654663632663590772023530664322137088547735619973207469487471616138794180426475175811339037412932634805746332310529565405656598423100247454862452519458819388244590111764424042172353664119052859255581093635492838282012981772935357168668820399375609708242581500432142006361906326951612598193867591419194411071541376821937760350865201267758742079062061305873570528654125592239519167517753247887786456794253279073590427995609979794723134097431951255513380990393160475892297609941448439856154352198595046550040317594126202011053157383066102015248957028539362117188904355660673643687649404710046391412700517813877300237192437221076096544804181857244584927896493363438656253293765025718975677267134710761863147293074500395465905990562121295045400770575849185993306852240452923456650618271460984054015790815238457907918367495870718477945319695185634298774944860627366559309242663415352864187889848253432871847531345943470091415752188005579025966543812444285876710217167783680430597669036687758916746214566882696214597054746958370039171396888911821018629218767370959750904484912704204305713726284284131404491782406583455477073465310616024311295789957830110304965387773580976382947804789146917782390514822979953520897355007532329766828256788142490387041909211756835906373753349610115553017966170887502733764567262907740385953374501494173587844449948909313683216180463083417889257711169032612635537315094231390782563330640918100162257567946443947866000972014610873517598927759514434160941782754093189667541778695547300359641325275589419290250234188539526122277977603172704074371003635671665133683128256362374415360611311836422153460745221742086064706887928737367047648673763830348088690120111622408120221918818402012019743003283080011806261653840104243107518623678952825406686262491716359608797420273749419386678430839171536586294781751037599734845640998739100894044293336045649517782896059837389957597312261153464617117306321494603778176004245214452958115942183088925682373848621508362576974297476242761568699926247830309298761080334943181329554868223581748878560127385643054281507163355609662903381172054535545374989993575244789793130650839110538398397377865946072498000449834465312390793920750760710076746073201012571947520596537061815760885816456613704768307423952713272506116963376490505024714646565597224250401599427587999424340025379499409529040800732596390347551136732003150945204751551961164418869800130089032692398636663290720380385690990554937657400157386884906356916396842872798162894852663057871094422689546251036415927739325862353930505493440498155869545092642664647437530481014266415187284544728019424981504331175299045359926153557880904069704154096513234673133864665931990598505267432590536149544713090358340969189579912473601861031100268046310326630545588351706687634957911446739178392682628272235722022962819236454539120702263813408560794686584846539833484224425874952490385344285186318601325473100421116935789530789227045819940791401388387224449520814666141088558963723411386232783848424168149175525165195036470334602089283519805194175707519053693679666516337586628224483051389688354386056980082420707340512588507302392767157601645085036000184699921224222194786955476483486811249419886626031035734578511938390405265588155724825061403658496980736062037333056156798479512464006095758035956223254023551820642537455631227290443049058286494818491516338205237907829351289192340961622236266844021348783286892751141456857254847666076374596920826751850887892568743182778914108089271575057119878713619146462340405438356447595138032611538364081189849974888465591092569039330416771995698434152426582781741026599613279454811096699460683430704285453792840597391966416815800811018677597031251153694480416351887269323500792902773122647405566298307115391789004766781441981186768398588429484910400452438090667144362194231255859461980650256442485211815501241065298199425135905143808157233445450050207727258600773520614366201829732602161082792304726883026576430548737683706755743160845168967824588318833379874709137055348470797707371282194764389583301494233082549728344835850924503373454719900461820695613960246872669631438803482469197000677535981029974221437599976983065567407208766171469744010460715139253052647998086097090006695908807453642229356802571768240015813555453094481982496995887810713177100296811924731005007334502077815089233413744381781941072472474103735469841034384856349549289115256436404017381348215777458409180185850701785606854339383281686393570431869509520547334487941523429639301730735509455707798114337160485992484741712212353679370390010945057430276178649132337758912881781227273193999880880813909369461097393475491374733281692362235184778117734553885941789192427863560736460895496046371852518729937113472912089223653081072727346923915297408762029688831776151474804648977494892116210833470129533594186531771518744716168560813313430042361673749732264006655296139374542357318020917215018707337613558542284565999313775695930789746514436076656855867607303059074788023453200279304280383058994564138499524862867432739508550392421318708097987641745411770938202886191391554459614865426768839906713524038847164924566948589325083754557933774800637933109360362847571174998484034353720472225761378713788092307876677243143801051731407892155254283657077492841917471764408232043050260268805631297732995480667297039678959818873476180879378042988982102859735487171678820259185510923760383167615972281888346091907141838147225500806646136360792717918821435777648070626450609391498137816250020227932003895938462578897880505365308988555270966446881634454167466133633903767201664907956917847830585599227996028326632982678391121708305122567772683695659316299917895705788642018125070098304735842055798880216589009761649956234409649247374759281881021098608505090252633500941418291825912026972842940533516901873615264973439179852042639085848531577784155635459616897877755453025628409082315844122324177491599576843394226197870793608799176950776499060135389983237381496782916185632431102719655374745370820393055516123057729096708215350538043469717091916001956784966022713040388955709998588550030471472455335962935263304833811259915898733202030748923426229936766959574577423226862128477504334001482585669307599038852133109164239012332852398967660939671411499177709972561785239332405211972291407776753852430447737869082971933293352699474666613676821867124705369518583734543897399466784957406400742114272834484221630401117136920016854031272055898933337647029035717124143585490924137231220245335091201168694194191201185228530786859899649751942859063829375616089004773286810330485085530674150060121337916036323508004011588677182324220419503433754106034893717390404463012666388229620769760271057793391731456419134382207874582637307880697846135460690754261604382214543729102888033802818714299026665799576102241202660970027518832839861393182896027903306819660472757730923183950983028983102242264435743542334531200874457361677056501404988308566754518827325407418722033924831826352254035479213158641043671706293891256401032904444059332064320482116847034651493445243103380133114691531342924743997675094889981963018120094277858147864704091836470180338422298160606745072610998909321782203683959461887121658473402910156551017106043214579775854444116516976478718214135263025765067178448102040266921167248724971365835124679460609142090281341514402170199831750203917622746174911853102002757642803143369330639592760888848381499707287767782393445814896754020466551089532969731867967896581209364081358783698564004947180516311330825418232415585599701969294281168918799709517438748886618789315503848781420413668283588316822480640884877564477938361570232129850066379023133432458445196540337055703901976119082001403405069590604304334343485726537911591431996448151099982847743419525222791769228311046491086803384955765655587266924639796234157963286180706426371056485306343782837467990610757208623653851009516538540888388298222788506084278968765017625768914223402410645268205233885447374703606626029526297153875678873850891985495515778588119550760660628014839898888930786646457128500274546830919774198581454912523662516493757939760089758715525590878976627925513090803453112021776666118668753993825351864799149809486874450302068310903390975988112206021361705959032900546984071222325674959204226715346377693847396878696591890968723188453264978039709950334765952642465485086434202553727223069685533946909404522472292537894671373736231010101920277108531165013623496757069795928637661218682382073229266937755323186524005870024043762276641658473891823625158926634698818558404073204771418421974581288490733839086100271921804523977429871298837750653977733529060611004654073924369335073217597993320073866498813099590028393714905816180865926653688341864385514604852909897138120978261624466263753769617213262789021209726137300905544765206945566050424912502451490213463787471580491871812285810778075107213191402313460734369656249686839976234187430753608457866786013599648472547034503001775695006678812025801757880008121749364197715841409841009771574763914678705896007889088400333484467029470759904669410708235755547117983501525661658151507912826839201879109332361417886795925888928578213309120909234025048852963539120248966436871039199389279575049735806007690741740927352765682983762228099193530969022205874944490900581681777316970718990812134528464055039059873220252470245732401275736866833270346397248943632046710682264848176569580118891991010833069362983713965852284429238305970148428447679411600745671401083612472857916396645006613250758931167422662765631631551069262124248658032868625545090055895366186167587132667349022812963184593740789307043048193405489495742029453644377388015070312965436664821672691365588547328041414321290531254565145475995161156185023499236154266975438174598730361126088796472555530907057871598299421010731730151158781533794390340990830986129654983002838340903921630660862488290754077224825761694999813575071358216194020362388165464494867664623690507652480398878772073892925060411019283344690486848020795827744771370478914514816556822103187743337836842240316733217308724499997186204972235981827936591031840186481155445805782069947230245859617698336681261665059549258010709249017237676529968514820561550669827024302155243972187760460295380570905098091750002936386770512445858842264609915699014451919858992050069220009340037861597085922514335782818890074748304156394815986970665170339290812921928950330596525355868255552735637025536702038660747390596979300103439250257880771464455286994854376350590447294615842298173733115671132436939237215565688188395261490648723502945116591371876353170930522213091691007322938025681972524033637888321598122232877940218736080988501394789177034410178618845480662763557566498496322554406371719607136505823932816621741941150091392897551900864616464575538501387215095407561466505593344822001899830536123590152254332604998336460468691643119312964736629524245085423216218727226421468352696585719707473799851065791645780203643732805128810801401588412260752598030423786005684229536721479045529163029860181188437459312092270505610904670380161358795176908780104531740060113711047998571435466218379974879325005455085333660696107342859193674407753015832000374172080743985853235565219814122495004280880904702178100686303536973424917194975095434508147388932295525970426835623238506939203628059086367660472585179287633241615895272009352540341502963048125871296393810351356725681014714591370500745257873522351412619769869891708966925367029573795062695705309424350419730815010254408026612183234003108426508475931419365114229084592600320561445965043983173664606969234827946783066413277433926825315832350088381975428931083241477885766043076672609062916238103591947063256093192268068532948900390550457094359708862457988226656074063334316046542890765512983299777044294766946696260526970288863369065645134253631623432892079777709325228652230057721300950000313071542808827606111542166112004523966549668805288864094906887485657161893261091271087523605919417705071544206970547236252746174050630975154693327097153843025750622777856353964823077782186459565974792565428613049959024798888878712922392616690684778431321080633855296548485074834085542583560641736164368662962769341572391742646415129806940779180096797915822684114812412019181727557497310900821402843016613103371550585099395466302311639412248557755210677042836512908077471205016715178495509337460533109098273768558846465205260171578775035921813789772667480624938145059405568766181271922244549677460832522217427575920205745850391441930940438874737187100681514111840416087130795812517131925152984312445568969159609523769597301463736813239896354751985422511539791995616803558434493650072653393721429333572756872491252597189737546896959273616409190588080720741436819752245842225159309250475637385326192500058324899466118562041077108229745022988108322025622459815549465422000457134441003864960112826732335055223149498004203385880479748847687341935060418073540454927975487679481475699274807758888627217621870489834501357218473529975185203625348254902269857147020950565889880667583821066818859873476359196628134960799383058034372966380722098243467699941563332728045042414519336081308926219906306945581551220910462989675217075346307449429838625057489768020195120703331633676534290081895658129272340477007405853259163470360906616272131165356548945590052561777296990249096519757068272708127531225820011893533632432446464221261052331122938148149085904794874285546143385454383936268651221169653573357651939190445023487521663137150245977044573294366984625368857872020183973666108977525742376073126265090172807258171063072190928896857776754139081944880866165574662028173258262210787616810846274283743523590637936397977887626778672483545935898176730123678391467943208408897054052025796631317077743206944893808786739451668718685074094769546299679396384885764871384981958625051118791114355433925792556226133805935699683421713786905249923652256283044708760470798022632668710535185961697358700878636883527595094874293722057834803286357071297946961565631121345537080460902157499215782634971214066213867053432660258965133788204245642486607328890940946426668151204807976033754870686714433497162471273575959509755683339266082318007326106680353260278573316838665376562312289502532792881360982669068813139767416510972448978752091757049709836053669980269354232381465696771938404360744219975978175493244853646763426232019256298659615918053199898594753527999830172502994522374999463820851351657518207137637677554087091742226936290463481450545901027400871494939815087593166128041364959141001744413373748657027063887865727201822744621248779572873602101590518164208367057673577451042797684913667411626801563529941194769275435328966465803230435351758584004312865884110303372564024872145941408539548241908804769685978345431526259228138376961473132097429383865228724696270603214420120120103700725345453080512695159527020228718830445302236583950420050262057198782822482203374649622616125289641165792988215078247736697280402766273823153533172089495981151576864868608658018968206831087725458920250620984602389331518793073295961676040025878414167765422512142202164807358156937555640348777846052050545656058260220115228887238685938132876512391784188720995676123013590594832004641012776931914639124855314293463291723740241362885558711276980786164823776996070334754257396060332151805350391648548427569512095822279181830715201889120707132217849155816817455154515739436477131344333233473237646167364491236229229944959952995715687131072348148011742484228441761172315837080298173364342257263483545043730243496260091483025269082954264420126798412667456599436670786075081966877354574639030330297717080802110441162789203321033468578270963608697999814341868684927051625558925281828562729428337844511421528991790640019583715334667491221978319011003250721857935761276467735841314745817711195121134403230395494736798996532204082377737796178995880878209054549720219474669571820187346287662754779912509877002789291085527170224267552864690913091796586914301932094711156597791145507885756668108182008688755194043229079214861567773190656824399959992326985546518058494725348836574348410281074416761705343035184649149641128762745780824680593658780524032279915897401785120094585600505474382700479524247696258718939527609238631915403875498027473671223320233997273056536104729686023867288962916894073259459967684132920585270309851227775017637908490632554724335958514565175304049742875457495413464837110180773285105236280445744654892245641430448630425920240900424884809856493556989367735982424894316499268591388555037023389952437418671003110713235558439799341420233688560891997230735829543127412830558302469584718665509751422277196107851094366579167987132364865313883195087489795009840395373500775175476693552619960779170567672960050930132772075633919926239548737885953947098554739623542697783070056334615946731913039170498894354328982192266921640698388598192133861500597742958257031045322360552015291108366056913216293484573557353687366450027210681891974412982658680976413828281717478194168628441871407842391676209038481813444168262688092916084275271572145532417519538805876895176970577681842322183965189466811737268133799146401383238962575019196931824327703830489466521152210822164811241812488129664445369736995300767666894903282951828586282749840788772418194469875152014953565533823598383567191779326041094754704549199587531677431905816384534718906319394920972415945937396098965507432169791180975934933602557747910517155473208987362897044953372558238214541671388387925483393676545324003731943322035532378795545460229570259540479943096602353946110540043956600097308967293452981819742924341604670959160980553744086275911537302100704373060615585259123716522018793473472413855098456089587340659291893479829051121408363948205160631481147150173161171804713797563640677421683632536241895795566090889940031188688016618255714685385620277323946690192834260470105784857212588532151109293492822434126313959317463877482073608854020087525062785054307175385456648975942503156063097539869819164777192897394493190054557266565158428960149137027622476392815587008545223010758831008695848929867228272038920233679454412113179856553148220785590825703603577704962154789112266633722415544525600355334477165214189698666638413745577639996308550289901343836703756178089180005762651000392613333402601705265334920141596265528689301091200977117457430056507338748074133940833373938414983450364745607722133622175386461958109869941670013482712900042478818318562769534018477807503590734593739846337374513858725614278189087153527869282810602634825361118536446891793604704286990926826844729551869012882361330051100269935192805665320077295518348107848399313441714625548528087778659278931813239810519483115349544743666784094962995231188464924905046370456952493583116398689098604417405240333530578881697944210378571307592136634626499937250274799928740841665096858840244639660795963271206976342461276653758697448827898449211756796568803611208356797234090409633391878874202141986880690233214396155215744866685914445641595090345741900227924664445859762271248808012034186157082655886750383240628796423519110946318600583319818431492611100888627477441509015557809201655076136938075162479695950119147037905002556745598154278283415492687679698754361183845770265459773278429518089271126672936933697568370902314127161172038540798542476919567405127239737337341278408404791349546383323327765769768869416586101463855945685855934459314962096323777422151563353027543760141122499343805927675603666524452791019522501391778200605588553380388578829794005461696118381547885811580762487051882250100748709757201062870056873836610237472538540641587742074299110795501436267031498163715627737118009894603659928187525959812792704986937380454133796696504355911316815233240450135499635641080518438957728014630785254953958792753770876719228826215857663487825057015188689062614402825375089760112719727347592349298988739699127671064676009337267830740699156406650422173893233514127637693687452994516898887394997695003295736197760894530428725862998598306076257809419456341458741002235215867766491562626410255371658270297808784971215746122839803704636769842208120743905158976743821691577434998987765336762212788375882802689658500162702251295983758786663550895963912931508483047900691818629092770033005345568946752559652862321022312390384749418624069219623832591829255546714313509960603412512199924364201784622728547926330667506330438849230481626077901020111013160772293408075750216724574073576312105264640010168501214173445935052154737417610096311578537343192711103419255352867089822509621727472505114129587984110174460268494873327427395455671250565786675094051747313041792225947277484589777913055737793648351120017897838291874366378281898135105890468806551584443537816777460137666331732619660349046208469616257309406880989180998902109633440232106940135537780572438813787323331422189168477596700661485278769832888937486485839279884997206908456947671878160881049881331380078235724498567394275010402361990703510663348242160106960931248172595838931479352125075985133241231770219923603405359492024407197310491990470153835444641616967045187728205972671716245447808412702781948197483195493374298130394981071391475389625563481145787341662133286022095844579265012097392442699544906317827623123577274907847556628210670408911529737527103509601454376029255288585490759695591739694741507913111478576268628178846250497607739069337034208470097263358279494148178601060312795583405242109751459716292860987656347846047624328229597293525234356686340823474417478979726900838180180882929510196778246796520965998859123484131324456404351853200401498742013696819333682751452954948555742855289947088587594741638084675346922340216923971343161782547273999652917977073084004672567604960797697939269929013221144655982609692784873336583181139350335837721679713181348700550649300534233752563706484778385394085601453550965581509591534481786761485247912519656419585568002915653739240583707597386608269781021862483789815112064412213843449195105522323552511739240302647095818632010495378766554220774204908884325832991618704480314177583602507922006165120623920131915537968299580499764495929541634725766638398889233501248152377858462578303525475173451809345290974115617860478593504253290513868147314682958591681488612009067439611456797611815618980696492807435916758035884431125257104321452341890038493338980692214322463564025403921884488614416934965982578643096603479635297687096084257518500981471616650314598440841042237534555692865816607091182853890724391854435079206304382700991208738006483106704110201008282270543538519101101683823757101555556817288559610598566458710274070725414589310760516169055847000291512647779753809054837775639938682917383320687718701060214887278472428491892206218007210262009305122748037937879856259286380605805836822498132613672950591924313673187862512358400313982345623204280680109570668114588827011314347590262541009553934868503120201145446759845708321584462043480025291305050445673403447287045325231563638393627253280806224540838804099606929428373690357664264208803086435132326186487559519751465667995374670192910572287338657448575852069290579185177110353388117979721192000399316389963443953558112904842632087179323286095395615023286126324716920340123197848422607677371195205626793576383728427956605547632082679010843455271504804972895108876714165752959831974340392361193525810367819788351514473943045575161671655403922197948921382766185882070909828802244442883310022735024120873387561729597921860962341583141165130612871626462528464114613626585649022011113343993651758240554672842299311310334871504946604924204123145441277820048666369014420877429129434772199688831229127788908910845409024742762629690442977802297485939781174303040874784951154194741223599165601876637862452727575422326416343944616248608403155475612735204391811554842246934423487955836294713456788965798254085823187107308113606016933166401500277305684184652522413886703706705720985641549954152741382645096539538351589883681375754793469556685092746446722938894165048899537068544610267539297159942231363295065376360693393517855517725387851078730066900949830468437318357995597130749571689474239557851762741534960771081263803864489517761707472446587100569700119292208487666806007592856109341701526969285972510598526913263321764919659314921840111283282374752818574814788746230117462455112364083594512114384789124467260269147240027677324523490867965327304230997429039147778814305314228237481155040387904597020408075469665371434336354437871082617409234908931433044338111919033912091093637649036236480409149625482994718950477984207298829479464760851587384513564466137740195912168425960449477625666678355828143754262879945235179299731188292968718870104985672552665214782889445842036783014308725008105165658868942992494923133172959170644261773706046633392699301795111238875858800120050578240403014972670072123196339126733701456728625398372599951275152026606232414125262288113657443661164854344319727011252820221305551861869508321732105802939610201212166595347009633006095756284437876157710694630045960940221869296619585914368945593017203224095329503152660434188537575103451762177516731792905314024744863334580642439025437223410199443732106147214372567773195817757987644606850406086749284094186701402541608361249901582129501087848299557815055006559393039601827145392568870350065780517327935508465044543031871192619576124522484835170038761383887971896495183021170426577687917266466506251959018122525502554780380006119324840176144693186667543255514985205995747898563859993535291631794173477605556622605381805393499328571677547437529747640413168942384022174167377402935353402171375224101327653116022006907247446524601481166373493134098660997049112688441488526299723656398188399745351320348473196822712900707682579868347977198209882133097144322526734153860213284565418498706588380975762985262355806913233264540018720551120039067581641835433335667071561156082583916728959366676554756974217388612640468505770730248692167517780451095170740563947790947577030001183258990889028931193230189121178496637821438714900278047965091387455932201463139564912228594265201305985571947583694968875100364578547843844786800736083235537402519793412490575330945406846708525128122634040824217085926139842950524461538970960712962605971144552624866782644097607890944542626082171873507670099948676105527012235364661452173767745481530483751465860074204647569814619862342398550621295955006951601608798125887104353378418410949982553034812113875136025767142335789274901474412480496325033189889152578250531093474911841772388664634763931939509953116448790291057897740112646013784225198111973965784427173368468976794048334664070564786513891795065999593997078950616497089222009253461535106057627989140616904543771263341724453249039517457763328455858322936695065852276603175408982607188005404622565052317140317260730046539125924468140895543553516148214179570374803422698676900947582008620729196323101937191566263163758440665842719133759231497751887573446056137569468973445097822262279646510992726370697585470154575617123772965717074774301972789859966419649623241261962270472859394939544662332868104300958322956476490268083502733975849294103640276274175625995473661139700067618407656746584561947413990305864217492104370035681550450383962043549702022889030927876917453903761954636949761587739512773941121615589696881062341214894043730905934266988081093684736056302754327859768484346326044226826570626030883529301880835563162051354880144301838979093476156451555414871256647874555267489625668826424082481652868116093216303643206966410955712693800766264036918003030476243033690713717570851457417297178410070697897089870035663819300316216790931780202535435249955144969837098042696086129351962576022044253823417410030498524347253038061866798717151067586633494948781497346288676680070411653662495821076045491341719696826217593572094938712096186165939881859501086236419446583416028835741531781369567341481411472413007496565478001177568869698735694509702157033622584073003350349850477682147261477159236735331790936671879752910557455119744350116534208406735590644550033326978817953691684712433201937384015879025299536220287175918867050839924712810917104586299406904660423110099101540870286468547652126174321299402741786820912215789193662488195340635861284789616315039375686168362820246966950675532018750684091575351716390553179946736398565280050933044222343010621318439053474988385955476754341346807102625172427541351314177883957088168701234965227526721219736033314432445728865274838646523956337946068648646546700201441381409924421835562418765240590479562292786558725241822395904039244984705220188948418947008816591802945149338612253804919579687939289734032775333736793569277281747623565489492095990658880945913365930751821545068250838326573687490825707442487413629712002135067353300506296974567536680741354762842035628827172780350337069280675377743615466586977355819716707518018559161596471430302988803598091170693715895835955861174226821509761194612501966759727437277002142472040345735135608930934849468098754026975758907128595702444603062973477864494082705431757834242527740918393697402426307637880996542555960692823729838297456421343303553386285886896653022049011711957369866073421113918846909582578527613406661476878103887405722347544364472857561359296560296306095411677621826314209006244687798573971434685468432920341650687203296755779767172769536252352024299500085038828788286820089763598165309046392833949322621282939991963787392534725465542937803638613684958339656159707172890338950185150188538238559793450855820798634961022283262495364920204830362037467809615982171140615433381063863734130688216621868617300473471358776292255324325618173243256256997086218137809780495876102288823402048326726453249714699028879596786419981182622266352106339634762340554769578582747962093393624191477467436697250199035098090588176929677159796051732586956264475030429381238769576885359986831740537256978310649135054518154525258545700964568258020523624762940637383862128071724866436717326215506888504108560084846047973274339756156856137160942690387910864659534198663563954688875680770282726201585241477783494453819135324108025403353311567125461173079308424103915662358347194380673145666797312735052390582237745249671962345276828399025320376819060714078687702722692625678113089183583291569644129396338704963456945290878167417775817164118622735416323477570165419346731778338783744143680871834047009770411561827937405231748953076311760052929920238492547113835068407775649448076067610036549797488526384243113891449859032438127456755975488939034938335844736309015074681830766015186118265776714425673280967289086393701853482532115186262565529732281261735935833916703612800278428209803638398682328439024725448212055432333975854415480098629919499472496439493456187898380457712980438098120881285493776217327911995230254226872063432302790565512749675323958404123932350295766677473554529416450564397859567259578684638113978325896715329192008640280584716499123010162751223395517295900697381014794232350287885876202119314992862850104809952059083300974545267240265930829695162075656430840219165784485299727268028482303858578338017313289183017468882627364480175310600498103762847141495201770922549348227727295365568886944766409909413579954166727805268397198592522536510180168629871517134686260764790339509495791439957356613116996418095273653786440022674610814507991246572257429359463786851553075269420770252296199309636968420226887629087343824155517288560771133625798409702888133294425474523324884645256023327838126178235752754796095589864523750425204645791338940843005634277495080591500582610649360669483364010929895730808980923981990772695827997584253567269087094988700137826620939162806849063887995239997483500297780841894039078041198790771976034728815872215300364595694736876284220367890139652762768138505840733308816063820497106326354811022318284007771870296729245200408381583989265208877077327577456394488426543165143373897495257105037352922083652237367729517175544329589468748699570702016400469053154269030990970234828025865281992414242633817564756932367064128583225032613375912572419486214381558782734287345043012131173901585433147686568332910433553545675855948488843710474630526130151078728501813775891982526958565855232252306772795314071101767379676811787123924497946704925130971450972878739666536648153546372949088204480817735142468873635887173435859833446788398096570360958958825890646569952024346837574917412410392054844293230632431652856043965562594067430480482007758704860526633898988021543854670139809980301148236813969493767764776121322513732695423373841398154393681706776561119170061034400507422992648122524094761471174160763440628807575583668392597330660628315764335645652949911477308799251377874683078616873732070429616747192845802250923100828249371323416143119481658927989638804239103314575931837196641977187027117394793437556614508824468681748702457776469033486806401662862738429073294563864509638821715171081168586515153554726487275366275457681440690715304775193218949177194080808131529394260010197488255454929358016243438706222760440889327107361339109313175759342954548358776772934950465217325083598455504080263015196765295735475510739982996748518201708363863258004550267264909712312848999282427953118117151402183931846450721022077624386662887546356476357614667630780448864517485906652933900543776156252979363832846393631139544765794194290212572850660150739120220179284678556519284994097423001433360303126779709333284095576527546878627154963787677856438183047438224707020478693824340144338221559627238588951806056742886022740616634988996305630837572362830709242586047586164672837246389120751651308811422727484071044484765782125487075003810261802539284326251646875445855636084856660684974381589413835237346654592655390106083593318608647691910546364584537164398464365383995295898892556601799964478861737661222842951049849648157982329109578037463148470863546252349577607803931216833950794730907899484436999421751909038949234849511408515035719752856960786780172784303664208035651267328340003093314603896693909930103376480463782006796906835555351766176368844091803898901306493502825101254925394676557622478780673279922253359067648059849492426584311183587228866733317812761671794844702259055972265193152295823964040790067619043980127354836758538224707081266848593257373770706929449929612021272109926561517147523693456203842595724608798100891139006009227836468319649062990744119778940367806663438591290946570965470228153720430133942152145661178243548562619716569903637788116945391315826148400985063903064451972778415017876057772499683138281141329258416374592830045186586153068536982597317091184297598788332909689222418174401943427088982939057085801299866240937196268343956961062350230616910032092323597626130316846074204460870217669804005062313838640432260627608480358499293366817374733557163479677559051354673531038485738765960229557552896088769745593080928973722037729873294506640851237387675450548635593208693711055589985356659265373520381629831735584758762174332704446985875521722951996322273571957031514820764548208289977214577455384911211525723171554416380550286816363792428381122967161836422111427400491247680217884584530069913494487529738748071820806170328635136484965801356470631948435868695324857446775610753217264857588831301310159167600144108119300777946773045093597864361359960199618061550178102136222539156034744086680980920631164999822114117994694970572730707348760140285297918685242572468462839873049819768450315640372898520777918720231674371622471240050020714095831203971437955711553048257419085898152280636209724329898593977151044398954058892616362026130316045560899407616215736383250257978461276966399278417964015474373369504043876441424405102857058820882956872414187325934176276693146010015068196804659339794640451537952831118932687423874878572172580265789140341084127367197114802506084258171394990826733944791728193677422523085344181595596814903081864690763223119448663121760389498441577782685376784444766217477723151908501886073478839402445078545195528805318322459288989545687974129998959162016963953749216889655940073415139751489680359781861525134686057046185780739039956135807845241267547240247256786890157641215536685844487457827279199839248298922755406056662483750175095683743097219161376009815674081943248039903566992987720603258790711090971195972701101677339132716028721031341788332306232719099590324071810416891913045993997362757312657153394946288528724612306835181973327765331884219200211598339520373389650761780490007058816138754025481934435055360025125552086145446449057605683629108377402071523021826385794896604399909079081940425639560091298290591128943177273600770111640336365590166050802050002758910919664565045306767756539028285296762928668402606130744067036077273782472530615927651042852297023457660252830266764331424487637233652875341172941919928982502473369474977395154456243071829802723725451938626399464279166155931238847022863067599688105428857993210264550816587128869131509779459926721712311907652928232566210018231678069747562388119692205832039079984149239537969485684414117658033368383742139458451655415305061399036191060919176353610606922357034451310970689662658668326530979454199778765435375195152840975139446752229020544104859533909984308216695355532937535636102958673495050773910235318256168024619076515612942818283050140019832085241202363039255757835081924601669424222118416296777645607889935972996198662936833275922666979522064990695378044879777124165152260136829776278594859494085044120107931682372365084911930551355239848366545682144581108349130066605684424734009133627285404988945700257032744356358318243541327135850789859724492059080912652615869847482343765761180456448205352467932507568541861709694205915391049639851685764903267392989183957731721683399943640672065577585456953649153507193371486695228322430381464806962073602696488598237928030027078132429954891960162452956588256961951502862007424225761282044447286414568863121935578064957473666442146855488804870486011274223157904970546419531252550055354177603268396528311903668661037308666440252172813303082478798870636377109543900518513766921868151549458436396633069385695055765785531547225832252300560181572101847148735303673662042398642592629010851782120115464794714416072380714154390883196097018032184255140560409748909777678679480710441353059671364438597250302356588272181658888999331779254957628690461618944750503184410809225223656009001482761780792581869935510948158465410492723154517160763104410276699176114408359028418427509429599377184039665822000912875805836963385721629604703520736296461634878063625821106647621877408722595923776168256649919533269854901246806290743260377961318741978894034624669582708023044151620739055911539898737830323079093591387020178534049505459403253383599012892677314259307302155566995679584129390199689843297455742481991567110662806800810454181229968700805864402745083517622520021506073069842697703028252145360262577453507087085954087530521830167680908895423608606581360283851572028380070038651348144274079362894793091966683298593272483038776248342063015068485594660305368897657436206553623102427165008044892094767346689551645230883641491953931740044594921509537949077366425112697385123743028569591887721816604477777098613866513343119148224714156889449986036044636223804640733783607141641414177884264699775946557046543299386167596904290576307425665203737642477787671266988246304514070683646246210296720422509865846385398303730717882127992767564012433853981531047435241513415784889514816057797183546972634201926513565648297491209921179597032094230697089442221221410303884226647839746796087763986891413680003915050797195286316642918867417525581265379352928845825082492148138397929319998343977051275419667862328518027953111513104392584216753516893121912223294738638294797419856202901025000521457208496477439537229023350747854949838019984517192995591225765735241673077514641193242238810681948480723591543468994458658651233707055250754186685651476352414426958693295655964335054207221558385231573501826969516613725264014327463739685489607321926757689620624270286696865795503084385842357750422527555359900152148326704536582438563909698146777892485181512329808919196027069275048467968258056516658838524446982170260063619611691362764133352140665844425617609504761866615819221158011791834051489768788034395957686578767659107223968678176653173451760844980098477807097556748023753696008273584167362023614956462380439537040667433328897531468148086096241874820271780498185633410487589366522180555992084393002805046474917387949053724844143816578212651452423661359182534963946284554984385114630806334849361960016320553981116457281645435602313198900106907159084086724593365313584440207171440315928418511031025664843347319946937871817121590956779847830076055712571610425543688264458642209150049886334349762132195228377051360195174329656439060221957189558873359972826412891952290935986362380386496346188333177248922689365125382993649181812910870028702070947802623088233466991413651883142720986790249628042026311748148958884502790136407726489164120618211695516060056742364317228575708384099223790199152617108896337435213599264991379670669492430765721376567902356084904496093517062802395037246073888703578830378835862206094427502341828053872986360724280864773637407165203365964069092148132135834405088526380691081070901845174426456051943954690002071729889701562542025411912672391702937590250858014436634903222619273908788930054877735323345470174962659476721768519408329232579409998073732730132647381885468305633860097897529386513184637314916164707505693945492348468872760962877078333156320858288871167958743096164215004346446969306348270462211181121982929624715895666215305497606507643784240012970710687613063534150421141899412826673926279924513964237849097313394551366495770180589452004504811956839971833589726472110869218609956837653740550073205225491876525698381418790496519793414119089469470490836801024739728806302255895162527636526885943068169456222675182434075833657848876396285511348401746009147764495447413605627543613032341412344317426908750904196902345450881248566783201415998822015002121492469691987806768765964708473836191736628502789123143331123820090326601442329634997355831473143754896664028235965796096156489874320152119952774560866067793572839762578106051164062896750028668410658232774510264501620194126671246521229647540506723876858916350658505149368051371427534067108624509678044467723629396654491082815706904715039458165559113041032854968123822523628340836817446807118282824946322293331120411890226776084938362947965738485475399838108018773511968228835579615162898038673547099758061177630473129417224672800427447825906152440934473569638729145981632294413669244115280154138731809224146473073495773200431675709907536650731975433533458905379481933042093172529201580635718683012574612101116613899534550448730010230167675078717440530957055721341397635813785112540235198605252824396915459221784625436373932806218355707996730428140771669925628350420922426174308096582519087759556524612149404779671842426803257907541657703294043006258788221875361275019652130872435012150441074646442157390370146103557461997144655513715246564348458557060820375721445384378891428503744567915061078510084132849103319895961436788965076763346511045944380110406154584603681573677397588300278656700865043405798079803046924668087908633097345929056267143499673993294029893634069186289850445090836054330076865942412799745184834390730147451905989791828312445295524251902945142958495701886501357367500375609770832222917578416590235596911782672800122578941506956429493198229508259565702538032932697486522295678364065638691058996079716726558101276029040332485024738740092020459656674725839404119491680015946206642517953916857470457613433565811706227238892578890859790446751509299376318507793756211326611877117170428013444508696484641274383682723620120406148879805789437318121924038306039296680648697230784849003634454810967279445598532915634260848800997417471988891087179240638414488741257994894248997912156478619228083832147165541487315275722868536226571825163085811444947114595276180373285635356010039020738907451369039830846460153694252594507336332702201604213998297261264707186518644414635600358548541103738854886665565335822620916679349533235140449585027101135380362410681418968013968647198990176952121424901868484352183219885910107458287336458252408024194253674129413486515810916954648805917516229068293774217623985651705750149850928843822210595842749190604877766046981695774196687064278275300336107773934253648330577715054294802835207643851739311905893697363324314495800676214946283571159561760395738651720308825139179809598769460903112794901685569728559106799542884737187389712386808394328454685040030967972597349118015517399423343298958139989748838440129428520336592000441486182361771610952033431257934380988760090283383706504461566248632696763582224451562919489293286968499590467869222154278441457944656076596373006698294449216204695387426288224981519117063824237703585207796884030654788361516755186295672407802998560182626672262604493186955724233412844818426020492404481129156597361300336619811941136028885741238872828555894277184981176934738526886298436738679545499417267217617575162095147894236680511304990932133618842549977507240783584925923182857859758170480967439948669845955098852911631492845609667987579243769167824789265726119161286021728757865377212403915914966488476122331192591837981813975669435449384260375487941756652261805249214517241168487696359668997565420856346925699300438611697500705924121640441084965494585781299808904953084818841888255207741150489630170904124485574739115171437891920109725808237528010482932369230002079480823291006964973658625705611294381395418383190894359508816387128253324258682659683317169006966085515308608619342489027712052157897265687997035820921547112562146854968980713462234847358377223678440130989084747491674011883527306160980732954052615388644261121879705736399685258927159430730932286144434162969172344365346715174679594082612236995186021184838608136324224641947280388961557800681794784325793803231434169399395575284117135337567051242297549975220947311827518475038005643688872559664329843532884996251065063203184211293802650243784274314998130477204403685753565283380312583270928327359850629200567307869257219472624314928225624931464730119643828666619056495485887014584559246492156871004382636306651879379031471322067688841208574455314051489517701894277689794513512595588667936663278819002473128400531783565356024239175407273614493993726499348408284416998206021549364237397692686105439406246168507955710991867731343803326162927084492601857378813292291987201379600614568961080488615821971994321522912515603652115023989742858627610248900113933143929135056717907488739189563530996752522185090305621900250395079078539896820679218805990404728187123677632001966309805972406491467230668170915369689813369964515594752516544179830570289996801849242360608155508430256817160264204925056584300580537858515290115497028755343002767985433991013902007682191895646793363489253239180746452735944232627407813468182841036493007425838849043229781133323215506656152506197215845802006720231933734882221115921873949378777033057164115444364605763817351215952834234610111396743569230520654266664870766394050784148154586362835561543427776625310310964525659630980559487928978540371944499943244989765224015123854482784163006956245692737025008404985669302124960187908370576842788449751570321358295179188946435319365742088298385854796887241801891998965701755791454114235166035818812665101464389832391887718868841598252982404068222401917861858686834235156496183516503327887094795322127804752794213674745792211934861493885350887935306744397059812065207998636133404495186803159681514563494609445513849362596957240307766354621609229478719071004330109392577988333895038922049031196094127475800136156572819164285099755959783480099638348031258929608290747158825691571617517306882671003106361423753228010353038056756937281900344361866571711224772760074795467139773593371555734365216592285666463036682483252711684868466838029064868677958417329515709724234669766970568490449576922200419333326621285194132978959240482022740821076316802004711875175618788749094086433198834605485541452058676492970901590402170344781724578258897500077733159553143172108862612860652640164434870095318958969069130724404190540822504387816254744548940167243752574020301811654463722012913331181280363427878744614098764314758145709667350225527327761144221773732581453185204683281289883410046505520811438438660366076329269170377116239491565649717517147647108865688280283918241258346803011549171107893062436799798415471273716566119689777786973445396380753075222637903321649701011424934986227746873101105508064671439063044701884747734987669656915528749757449346891301928255951481044624090802566651718133215560234522348567678248938805717923622014088630968031001777025923660080225366268752807426984317490206302561225346223869664758404455864182282978516173410243803796845086379565667668027044240832719101142230024470319586562715676445181482195074219924286595566367889681176102414265097571048150243872864113658867735073032695203987810028334147772996463084353406116683611479673284825651863824484583831209107662786402807421505945593097317892110611589832670535199707335880929574684663715333162007367399645204471573426532008733574887519012962705684129986693632454457837842946238886158689270923366363302393421122581717741913305208751021442105330819412090554748030888347477696124032385997501470557993279847129273085419675099106159697688213318117295225396939020749483456668858793508903994353273972370632416777662742863002739306196585636054735771543563940216255904337667851907895497795386229961362548426105606851331983501147790649339588125425196746296386627011389213629008413739132661543618666215650750060390451753567768760796381788500876694746746702024181400163310858259301922666738606706873791309735443632303037106793281080982733661780414419045295317695187774272738687703151379024304074311301644893866830530567122521590119930144158865366739992510925612826761387513397115910156866847382096500811208259690747615848315559690232423171477812370564697809286964287727812942842211356404395367491078497230013864015475960688102222292522766816680740769871288135153512881309519287906181318111756087471588593589593449291193817210607479818338876038139604973666907376934609015821354500617350156805892917039204722362665736183224385025133112540386019955158568839086438619729245505707190920962825046818568502364147755456101608736820614997537114347641922011089369955954822502678124610216293802579744389689887992097500039912737794974964678115300911925489739364703746880272721586987455691781712090638774683507352651126247841425593861828542047641240486738600583498653817918597625451719114917987899829368658595191538645840743812157338786806770762977472898366256005223254256829874105066979210399596913018178450816801837638619505794130256644765198981417475764968595504853483620402939230801869837400482368981889185757251891902725303179808814292245395946021113570319712964921747847897281438033204948078105018843087929219438972032060238029361886644186327495349426215727394259681999716408389791335899428431751119983867377731309619163717038220635549560831247283004569176038365333271482192582007660213554593281611544125332169146456856813747164367204301750359019852554470915072032157002532078795263407780726366043842856999501821732377417212850086789101866075891070733680529789628990842547001000958229505083894656420681799169695461434431457254781442069646920514448370172659620756562814032722950176574748874283777378606078406961710938382303504639360523725223100223572605424908455066628382587219388925968464543959682237236165455575875920409844109425116425863337340453174916602832870912577309329522528814940484726922148368581526916144765457894209019593473720223110722176760341471540943230247725446446911447037213783447370217822952144780735957482604580993514795878098587482783481166220705210576733692854770297987854783996954640204215674042720499440762968359673891767398997605694423503176583578150841890254635422164810162423565472825609231819502392440984904297878094423362574541681720222653071614885114899842725899001206846314282061050700413789324563827260325654097692498727696827547233545362476399421678413658309631656030029622290764737909758300003905108069904486069572486744462748951099564626166850151541288418182718109928055840323478778798485165669271507524184517955025379314180050440131315153214099094482392248192587950946763056736794259070277219227242836211797570165625799322052054694015077545108478550575281634592839498847431243478394575735458188890952453588105907975750281554363707372460126518582468134268267634694665879487038014684267766581013100014039050704049603148523100411206436315237883630496085006311466087229270395528009844063208797604229221291716605988372381323794122411117903962230712918665851772620992479189741144659812107602900337765033163629921965038876059120274205079104627142366395186258764509606774083914994089557859705643104465870426517078295795848288784797829440590605123166491529962424091137670687605400045981756030126075269553112906243957447591284051395533656293091811218688151375202162188908229025020085379334778104831205859896670159930585368471505052810527663981592187890029456406612860447776730013363275821490362667225717756025810387495495491459171721603579787838297383386700594397111286626234697148823497897949898488381086369861400188835471955442027005037748755740053516859146026366055303615563008176209696679772794426873076375542207656531620817168855485036963269788534220966775946564349491947247017032844468228494771025455331068528251785753301625475424658480308563171843455509073895504344651127481186428073043923454614734032815517044298655505846726692992242152178014593070925497667988646443618122932729384186490099496170982750430497477782880153720567213397466741230223681001943426675282797686002344677210788005077664181454481954057868101050454091504371354635913368885028508347856409841687095107021595157224335923238634283307647737465305216972845409230137493940539141557498750150769243073215511242846180167571188867255260905749404738371906908822003018214294337809127287746096240743595052684773472465657699656832323001340411227057636538533545430235804109188985800161115052374488409310831899031141284523683054219853687878009046494102497996012843290359555307067148136483243142756401985368345774142387997686050232476033265809983238214477089971873841595230239640059889906930911059097627925837436670307195708007164846511854504635728579798460721132274420517899799217429974460435531085341393595718800426318154982832599167559622648134986733350116378440843125030802951412267234564195722087300730829897101818006986122773307083333670567089148439885915272934539379126084531172960723527389616666013493245385831996439761479123339547716532568845639128763504042536997506958404787612911127577031198418276356457541887892650610040217933288839629174298856666922755165823496934263869495777795368032724107135624668229984173019422647581133084972779220288811319519241286778999074089048547984712833485263592167949924410017944665127331120229320070946362515332062702911333755813840167202475296582377870354674685989454295367369967715315656501252397418371336820754955637001609156560407507306832644980683492912214727481756020102001432355700921497827466195912596349995970918796158069089656372149777071618406057805516038434896427329777321389451468792845890760881533597806786519047448325523292057796005072533515809621155062423279602803538326254389230955142079256063255191939338529559396394522128053465337252345418812346747447652088313948505427896930282916640701164733778786402128418432441552487323363844341444061862665994831522401396699760243799594079155778744023714736904874439391424441421468585809651386480019812395919693802782368306500849885432341722440287429185775822104884578984981907987625943343154218877890238553716065770779500213751324489520743861628369685347992845230145623804573945409643366136638090657900158651589432062344557570977405922004821921624193248614840149625444643607837118474603803069601378704105968337363721985198021063836416131294357859920778812310280634136407356539455246562379779565260366454175307691626959976366885888548089945784664285292275102001229978461545291600384260060751302682175562986269513681286976018034521671251898275595183143057686030937243297772225836404071745106473449733943438680701969524376435424274125128289348326199596614448590471003969219772676182397514838660544915019581728543130211742444903790818778184258022506472543786280574985981692079553399595660550360806720766893952157313054613361221466265185747535501803920095383199614107375496466332573755445721991256637411875121305592206060784402115846177086381842808152705400317116129372206832980863981817135748768310082599604290114072107250318496969386336831800250836049766889487976756809193354508042685705343282075848001345235409044307277166236709783786592567961648876398710363898503611665231309467265118618716528009935208619106601130299678992294147853702648915531824953413054797109630632946125381908756511795119092902229992099550310364059971487423392533713627045149457436585951366621440231237123350137979469836997601252705017217806653626593157603110462729393025647656714227809623176573206333317677701847960431459215952288811314401745331386833033066696430357932035560807570541991918009699649790738025568284962750280465719458752618004675032219403903616462639317286246726953144378790392596161275146605550507994872781113394963331894896827339807353289717688380736563220113365593801611842925876612447422967121503746521404861199153848757301972221750731457150957816849436492017735487741459167826401781951779268828944771418987135987622854964457871024046166067983750993602691435796799522442590695559121004416971328840631942129541364501981705811969117291762200751035837685514676130697052320999129849945901888215141963315864557815858088426568456956482979319323666374684017132781873712704954372347177761033610819128016194733367965778371129486054041494209100534941083382628090198453186139343491541242300684618359249414066136882208883194007062273905957130977627465197623467668677643130772162238431937476472346315038885960066154436108358615736128425720829113393705790768507133651044595374265009673586424025614791831759088175501413069388907667703288068514199251232656153680410931806481827928086078702575741015137939909808447217673320549325953075782767500825018759098965019642252073354496098021365289806581019041882215190668303712416136156842160051786560007105863531733998678206402447340424792869620031859355722539977750125239697829613816703878680989382653833505939867052431377797078354581660031501271286341450935998624631664080635026949004262355389815641721686276250783922684395033717027851149973846604535154818200589602920123384236469018800243040093680071975679247341285959956655088073354606608086857391631176193057696802975719795033763076147467213086610237764579031312036975670712665402379477510135980160000595166116005386583280045302243700475693348780873077581176240584952854743458961438541640383201975460429770301843241436176067281242979799765646543971634291107728699823195549911572035576337602265713487168111357177503673651225878307912193488553575026922156292816810561736382255890540241304902198640124603261336779644146715670194223454966135413414868114470770103478454870520515404220444919130464840415073833005049308828122408896081602092693878802322278947552484004679749091685087318221751621596064410967876038661575165097590336548002843200853327132971307582348357046145043183570871919906902952630989911053873637312202441941179166755372346737248430820175184101945183531248551307282945644077963809968554011384903765012695569704258998641025674876730489596141659506506086555959701206802900661272157777650419862526731703040104667718655052997085986858173568825443383419335708781867898980482243385495283464889816008721285972109188985267744244554145956670222996727423152184604944326961904321919649226961471106659725383409595244532672858105514971058936754548969930080113716138721689504115849266894177765381905795784424109203132013840614254926288302526682891891339588040588128027921381569960734378919082652052036916837951698885661429208009344850668035978728119990930023673081347123825998395887969571561001419323614357486733404185306622033123447056809692151993232232041723446336395494057366049646835222382723060531579444355763409013520974250942476278981134700649127864535713360547688071049919505748327142152593559670816221883539838651919069110797909425230784746842710350437733039225490835874197317795813520935860509903657218726709203623700003566588322000976318889079451387829419167087574107172443086178595279280223016294211417329726155959498237475886927785492066516530714384003320456304034900277516289306416111730907841583743330923139266800757096374849078602978107820831492274270894277781579504692541072855824273789155297105394315473736641679420782904565333668078119155281703936062028773063357913406675482763584910688160190002775350723257736017626418752276570416888986971969843497594106373628824390044600893506909199215296302222044319889422929428261055948273593705477738642416687378160018379224534181240407064386748291834727535969984707238250241822550668922438622307612757442365080967233256562417737122445948590039805079961736454172186670022190102041187111508303552155184957781304650722645181495006457016772253697740490504250624266542858237692293856858100429769155649461308182288416356247714229348783931834477279121355618656291168722986140954231924336702203726964486515958127893161330885180006845049364874260518546270671703665108680123168534411142953562852497683341376649117457885202468108356761848324290282023641397980986157266820818182100046345971348995990455169751291760278821871857357665389539176995604013562261629082863207420388261438527717434286663295273634100975978499207519472650043769224504677365319630419367274169672418690609605613421274839433537118950946371282616607405106227357440480420703484199103073030554837643967156556337512677356299681644727050798841164809822172110017074766172659182807698147685969582948507810025278087733539625087579337749083682858050439690094624357334695207793566435274124451478294047969071063837480697441929876873412709255030941968512593079454934732621003375993326018351902969101693554581323402251196640024901268601463977280339641525056636420012271317876342206282263996360802863011728278139623109349126308224257616484134751833331902325314243844590007998201369942610474327362994198407049471776181161822795143240339643142366377624378282747510757439143473282608542068570665356980463269890340692338390934467142500390776460598213012026381080958025356342486373330793776286385577071873797942789319689352826391011870230810313716253669960183603338113322172238310387428899518296624652873253626560471203741580085707298637016583166676823991233684192431269951397424280684592512024389271452283938686772191201387345243926641689871753396502152457489555241085180656087234696973825653275328595729851155372745885348599617001977496004265671684154062336097899649767668976604183148377268784383022364827683636358516852582314145247990653411366573369336826608510371852905385832369519674703036435908226782257311072255317326472270189943662298767145091087317765328645340276482459606797393198843103309324359386800828702107122369844098358330147883678685823291596687849589637331894562734026790039023196197960691363762420331710953551813009365179707704295121978904366630883476278518595802474063372297535412486356834608442063153701589631793452326665714155132274681708576557586011475961078057584213269619409592637523189623137967278146074022760320397693146292727186069476277719486888690758007419867401141147397771553945545150865603053057154857725994919914936660910894877376840496959943872061263342126483884188649110579154707210391844896059090954360708912381888907612016940056538367259923059572269303382829026855869818440138290459753772929936325723330561890064418152936309177722786936030535039581944537066449306368518014083247161581527654674846852028882185235399471908512120425522994429761461693527900486261742806380751335318695236312276989813211247458301052621229262025207106199750660519394389455218273935321137849441944903730818563075320590717556348689853329508108572966945118115379597260358437003523676510734254053422649429902746040023955261231020076875594448809873733882408852940992064619325691011513923413239339562463198162864857133234228714454839873404896043842567143774971825224488683681510781097116624949394121542862431991881324831135306206246280740187477607005833283635207157431986849102989973701318626704803646915215711106276747127017877715018298210630650258948411939335349540483844875008057745936475046805408689517634058948729855980417792558002344877968834519542673468357383953936227475613441704758446786158381026928323237099820465340527494214240375080740947148576387382191634803633540407798487179186552049886751176723018772436403647343488676983178525407331431879774286368976714309756108075826605225951821824656167991176266069988079391298170524201779526955208809500001418331997325822731023816632769569037404021381389182219936206883913847522595254917743878636609055347203392024255400734563204783514816042709126726285431685773904311957515012004876569667548659330029618902575626669813451115960742215077381005385428054780592785012057325009523023876459534097704966369138308546647863236818021847661125339298530873196913593171964809773695685725037411458087034376346892451915498933315229136500341355487032092658538579925951035171614695790716636060094276727356376232812395394519384494731593232945619057514629446395920740789626647411314929329900812898965400291370511270720441125291506857491972165621777168891186970061091907013815762264428979727024689529004875485674273331204016516117685874202904655024228720137322525200478461822717465959168498707783647800159513653679407644130165350864088145187029741886505200356366775844033524904751151484911651422097252474584675848967313634622014327471401842202790896976276699453726982686902731463922180235812486193773081854319204448554270738388771197393813606819304649488862952598477028122825222412748569163942667876404303778560450537451934018252019460867973943384776381821993861043179676014666323646287525554829337695142426881031000996309507344281516564210987122007958475887708027770376688448660302605508911636596459737290963282948821545514127824684636509897458612497661392582464077183233485875704813428524341005478492765915197332216800455233016462569969013622188014490937823167515151596840078488704228769283254147271600133083808864032323287091759531162423526371810412177291874268884714794327581759145352863549183574065370918964845440262894869681213108587902662415236988184788931145531830612054121085316121028862409389645525454465455713329340230243946553872586919623839593456887914122449521600905331987917636243757005244498472696177661201323070730124208303044008172536265179914733975019444074703212341636080615553834688660609578047889099228205221477262489659469665327408370393806063164674805542057653722237750810857969431879369621629594629480532467852520181384578467758487128787575961427225954915368153500938970442790344591996755859956370677419638766158600947047418950316888996814765774795916407992200717586988548468677885140940465354141068142860313142522748852502659042303061298106423174652290887760139343996540512656533085782530120652801811661567800684571512277513248478815426992312432191595171280333044739039957251113676821044698207481475322398716036125205935977109626669019861809439831355970654932246078756209662864786364174771443041821300194372351482816348069131990718850913575933665462260079764239158062714804423102055564746038739932457372047305796353433983274609900698495027712764345667065639879851280464302778854198101439488415038410247307045874621422492349445453848285072440412404016867210697377246482592635488927285635865717003582963702799253636140780799940278267360828678549501336086878732331049762559246754268263425808026083781830243395299606697670369083912816073269599954073829208219950073908895159576297391427275094458521671492395944910264376513396014409386923819366076701230899219210522440531621644883342245330941666081037752198647670556726189291020256604265818931691984984057586626430308559258898462935481352703353327818290723000430429949519791928213314342667759817038815110063093198766978728806425053582739786304002186514574648986965269334313420904020970021162425067520041202532225760257074768670263103087621476633579260491330306147952983386306334409424215602946173181801442207704395921607656511131491483929959975132619146272301189596828688930978299145390988840240439563182676093467303877088728082666421634572837172212387946265513337345418436668946513658746589989197019454049374321855770572871337263398908176267652125999271615545805777113875128181877595323634707894377240809479452181970357899206111216823888143172955189919874729886623174519611331628829082580587701078263407783492887822486250785502298612884456713648595057977699403273269233086383658812409861829104132330369459269584595489390806254342190770751717524673735981851534584895808657165961074285570124026241474927341104058353696523558765699901031400687001528165911412078040401561558087738443424047246202661779597953478587089203371222999750943092071674337581164060339344585230931418941720466873142635688242541671069022794696623919151052201338456565107741384445724185177823368521955361430451112380834979828239717844661285692160813827171382209308930910738035079704403712380614082202101958872478707328467950554270139056003988647409210197493519196892454051344325874700365022778027538427638500346300088811182788899821783713291293251299501650126946040564361462892378913186446833003212823171160870143654822499162769560013012256507487328508733459921300917462642253412875144350177154431575663143910521031694028994986496640901646671695197537632235571495424511275504339958726624527288222795982205626972885741858015597882529415427219658161400856140810631156387352359502034214958639106520183692659570616760468462704354177514107410041397935308750840980612077512208640276236889330263310462371029313182530118516645241551700084300416079655500523915376310116027502938271068791910981705106336853070017442092473422287841441220352551343109049308767176386530045436852625755908711516843514530655319439448079660817007498645935178768021832145217996070609943766340022087407200749382513447673993875937904501861777105508819457277649499497823580926054093031520603007966943975841209583332543248353688510274501303085858932503658703356552419435579404810025149740015152222737129083545907622859534240685021427354526284365056989652516544739636207494312763979623085981431663287366825019086776749899330742446749395893716755838342878919963381623907385830280842848910804335472690611009909695426584868736562004576566151122613630285145901511524205848618706280729133144545168390962786369928333888731198952863449323631878555807054931281589733202179618399249289028171961465749115983850103589913405117433887252006820520209975500357216101875178862686798356718047799277741351211446951201046848453653996740975078796907153840187416494838546093834936487244913027267986710600095900410303260147451009779793528270848174393436597368443066092457432287319919477942598746083471285109787433509739755009702412940538442465684609595817738824088694673691224859529005684161491520101301184067382959723067549603546942558296632593960009394674193331463150457090071528732457552438546739592041486182138419407703457104160752753686873476986352181334617565387167204427955329205090701182369974229034272889732867500548471310609687908636001793129777550186127895182924748431390277660795353684486355045949665718490447471082760434926975873286269991712167325945133699379996657972963007899365601548293374278033813272289814799733294508972061320740444114489134038972236902412490533661906287138168046683841992236174469136664122302952402619560082594080933484621798739906599916205067454908324675414282041520230300378112527193142008858496119238140622460010422507524675980785935066991052022710896250910675239269737348155777817939381314147235178034095770127615128230201342361878332422193476014998407465879089000967446601174825151056876558242043579695778696984339228055130362412319700698227649390029086795441332421768298231266555017218158961038436675678728254319611576440164802892414238670617893980080806345340428455607731151467146642017952798522067580042808928812683107593639823407111226180534857208731763441435087135611420340329016386529832095707535272047346522243995525681638636408862502192415391322833620379181687667623196234543182335410092953586259450611254013953439070716983059911450778870897691619883438435588657492510306180688216715094810094151026457589154429920812269467046945775944410373058761567941118791649424990117587291872613291899256576914290029278005928137068123660934656833077797415441506208616235741489721744482708949279960732777571483713034797311971870731592331529050551679069452156011058058841375969108874891832660869782917301078352637897000513217046212394942948250204946617786037087112305803632031752463382582815767998468407221772968613539119456685406272114758093155007925943847233483696152773542737404604655079747356766461925661498137274820436765867724217118149422380208449423849493696686590283661303213353048511958563426654935177542251167919471262819471635649410544922585224726303236866400453507031321459427257998614011972155049463068661590854113080166077246458766820830343684312907136616031365387074061587358078786794866478707518707640791576230856473741427389918514950099367499438409932302274362009005810929572225418490730955054383404769421403158973942875707509422823860194555174276010296419082349499254900023289745318277180236562374094725335700327512996120935983350551776522900987113695171122140755852533110326417504870108635512678570609858625758342076622486754735913089102764852093268107570317366487539502501164550590505487588447503023122286433503219892763804956969609943442009593115263200915535429175731759264583058493013541213603319624838338080319014309641900341203264629118045027857612377098697990112908526319563224705025377621695361408529273410824359972226217381872113861713354569361812983147240953936979794395731040154374010330099655075170169494588467445891583531422075616225214201909878088105989825633333318462501646395988613138308956780828236646036832905590275922022210258661136988693686014960187947352049359965878759738478637502674985572320238852999227728014686765708550223378868828373818721575485504752236846554613172781829568386811889196686795562796065730918393013430429983261449289213376910065287012789848763795356303471878439596237473173371397600396986572741685858298610745407622973128832659413035577109652787684189650164281805637957989874083885668537452609252987317414900379380071291984130043611264410600125859811631463738625918165348127214649678333286690018107637510741405122859568581915026357060779715113354087220107284097545407721393079687854531341657128072994377249932788432000740292643248072514216874914935671972151121305228913458648619871579042997449011570504667852425525471953561731018966856867602162802438694200516863376755734183318937904297394452913811315963443357531028155614302681888924200045336628923342219637913825683629916050770916598469427617977735187532916154510114414915577186131058731545005754329480576745456171017499543961886021476806569428499733866365423888521590768416935762879351551301312283349652613846903929101695941279390429773268326114998793997233190111682776498259401257978085121812129519067542270291527627711123425720002436275787457459902708002528376183708457465533918932213088168395513494550118378841634916640180206952908016947151971034627814046116592097715721759627252015660904745407717287093419438407997653123296499057685495636411575488551227263727262760201151403722280628132577653811283390284359463075480008221775832391435459415424758585889013067508829956068110980208138896779393432502540497183555248079201239678437499180115483722944682633247194886539379974351224787964557231974028725689197031161970438226436669580579409240931983001787135201251276493668165402249713308853281955997331204427172613115322131653662006062489230954926976050388538976604782947664601168903455915057759864193161538173653028146127158665449180688982208593074808934623785205087144010732094040702684147944128769351476723896272230025969594441402720382988314852118066508865751390207947324880762594627171214636586787943298447819397874126937027081775234083834616152640508699859770769745019312278582960239416809290980868544693489169114628349528631762934965957549853245889873485742532607158601996418690249288395967201116633152202661795390778663227372799049074140386893547278286019515253572730187221064278510215680212054301919696124478130147942641579406813406592812287535156810137718550082511484134741633283225736752866741588600000294805127619655465049376965198935177655617067914930848237472245132008943977729752088358533435291912678465869904651746657811341052304683841015651702615398390359275180200694354539993459896481012485404334868757130278905247766022664567848606446767499581200647488820318500849211693740719134590673271031526506847998330820053622451041163189282832480774751140563721678156917551383198801277128049391302513997231991352410999367840930258318837302362994171454330701850301065704982605587989821172806898549579508955765064568086315887790956362491116541581017663057811293367274350932147268595288012564854895921454182317296371077864250230193417280896053196211459467171368143266102081222463746746106419631554009764055787297600628623537246743774001890007002735876001438562951414386664038122305576350954461966016633785596058823615678624964250240674958988785089373549267522502390209381354994803605583984013727939771980443506881720567336546351304140153680234435269721252779752935945325423653275516733226884517340408558029575216935086878820966647199848406139744160318237398707428702070414196978866226906054994229708034850538669452354909346276568304805560669074528248906870070377948933562773548573471263146067384232321460824652015428436351903616824361086478824430802032203804194731483139745051079140994864404290110651529292726537384021138108478055365753982225285599935785069912181242901191096077259497987512121550742736389479590496236748623048002979406250586024347057176240071912423068182269168593457498675532763824692744358514688041441405653405916757966661034658609623740703867089838401230320739409306573943315987968239561574242318988642897840360572714545651889796301269428097333437312758585662061088944686368605631826826046683097889481505199035799172206787508912890784829385956933475639188391526284074109419779586841286364167560757852753292303278941435772521639186654318021936200212184918773529166699797101974929892310619594226576749071181545286434330547636007495040119705986799002915457960365462120305753103278311591823271398834746128033892220334645460167927637851745693257904785161061188751235294999905866288072490119144861475057349629428789016216546807058256563779105891913505089673881471166906335772654848420175206344336204716210758816431337630654445384249756336169686732288938518367151786153365003073528560501657257225604431818343455938532497072920107403832370833943055804716072483882942782508842896806136383350347322387267318465314181502977236629294238878514624587703331694467188809347158607797064150979685746824165654995709583819942993835361464983027896197275664524651946074131673719895856229423115534387541882707615904307434475614737254606044010616492640406869056468042986702404398281225878390075557061329986434114752970954486754001543088065843211611703640833942557059112098833266626977408413143323628877544135073801525979923433969706701499310773972746626397680767641221714396078886604574303226846696322914539460505590619483304480696381420931466475936383902150368740783662367228263511978980951803394565125713530393286873705185239233022466311480450351539162280444674358481800766129341459593857383324546108452696009939417622885233816185748708011366155973179763083696188029505474957499216201108950402986240611188223739340271341061046489396160049806526772921366134660136573420462448104238283039569632400503120857367755052851428222442509088235720379120362642482771921912960727603543543172553629727278428631234875141902740944707911114803526686888786435245431980022481196303665586199625594459475035801431119869874050837814413107910864517108446868287314718944969444163894540564724296306776879412032271551859259311692552837206413336628038204522270647603214453203993319650315029983670857682263440827603095059228011384849075624014895805191903993990854601780337947400071638162089903261669937316015906798230291139269161398971691154286218817969404932018715418446864268355116329281163766613019725021024777916142955638119128764915225737196933112762083141014278944601776033280794430403110819325561066433237053467533232112614201594131960087224493608027180818846262926906806568163686619858904564588787823075871232969157056401974583254225556619163590311633606689132606295149485536423978261858720080232755950401123472086224086258319723241423955119783314782080539524186302691426430981737286258500050436279613786660845724675333699807916692885501198782878775907868961020984573582483079526488755533528521487527113000980751248819298285051990212505095741493835671022472150704284865142599273352514054236141937090847757924913442227520432295121296748003527602565919681253046323727827489665355108494418976213875862853242895308515493204328367817772087191125743160380521268089629084020227595500448920924925346226938006691528533770793135331112524202435138421486566334727451925395562228834739970775273524654930005559291880856835865573018600683408056677051012398817861508816427604783979653869257252962640767968008148213990855844599045497841179899259888954355550360226105407903773980371142997876081556227049344578501347968549859355963604791835212600410191645219597451049700546455721860236599313721418210501534228653902580650396278730470965426027714798719246765915844250423973021930658097532716679023075620655409687187297057029171028079276254210454870465592323145846628290255698253472557054265260261428277389957340367283647606604494592221720213276787927044914801398914994773953298091476684932568585636664191540144356776005159740081925312117304752301340346137688366039931501020668484286247440597760138860665753997604093935926612818593951719268102407257403213391590708436210495182004693667048564521989527598497327372960899222845960125329683327021561948882706822605554390549317993317909911250405377156585535884381848336495770345921743048953304631870289071436869516087689877084054846042466344383898428604720146643586495231650717938244281530223826758744988780931978439987800861381303371579034766404418860541330386500344969634014805621177197498108035650708443588569644638313975898705805511721168750889689246501427985031776443582772840612978203507494765922677210349192819168367762677894338415229216646039936828925467069596834592220754963363709219032344881128453568397038708770699616925238484232661253719625672677129444004766834416072306113455901584016819498039373539788184134680942722388297982207367873047038864945385546822885498430836463505499804017062192289466166957851392357504491002452012529852077698463055270427066213735489418800087224802997733963969337327555586039846914155278584588951648445543797775430984691363550388391288732214753655597637868786409263268971390701078259406807471534937683386376533946331515871952227744132281258815115959372023429172851721308246193920835002806187080792153899253125938549532571763398880537302872639983886128286802696668368951302976403350312445399784472997181994379588501372139113528682593329669081122941438790881521548392491175344538928374902531935454067311388094745867389345046429743984754717033698927753877321088900487920753488943662827408938714028330289572642648281569752242355927811188657734105780749407225017349466283859638726803860752898625617053133339464536234475172127307814471496096103855262783936472358901043695714551131356716659644059879977890931616756926647654602866242395363206343090662933785799776047966871211429108544268244618266461901629561265926536005027654429393234417295954142141723728177556367708122671115293283009566471009379314541944337767514864536638611311394715788778855791310813506131970033166337218092258907071743042912469313056461555218328016429993766292190844471272118396479589022959252911152201346810058786861853647639930090058182731660502706815627936326210702334856375717603725833517790251411281823181412504346514441217520871613988192717453064853251516659645512788337821067884327820690901819791186442096868606846342015253928141562799260416797015053174616183493795750180933239729267443536070028258578172357553242007557413744389334849956700344164012064159077467779210098266083724699528382100597542834244362962536852066173195814139008463516331506260634408766829646409681099259988552917528281381787502742010982565810557339413381186076052712703608831634258954626740334941081071214462080091582799263222789472827044879669366538570873704985272106006719590030946081220037176415333770698907698662252196633853764888730660793484454078935474147925576606081219164795619763185663079355127922689179613153444962481864973160082353799262754638598183249059154774786289664959398069762691227010513052128418304488627412560121758109145917071632556110528012274373650626459838924071971202940347424583591061584856806845972728642822054767468856038277231980493310366065883850398891881782597837329089417905799466157303060236071880981857215928180348058121094668694861887775917342114373987336802022160875844401002507165580061893392821695549662702073401020830800150524861927229719663304565928084480305444825400789553074450742693594576849797779476199076463916054097643200285290470429538306660078764673356353518588199734187542299803997652093061330770881154438823929818021204734510849364299575501182726414607123878891431944143374412244394764188269748533970521520101271429486155811869585353490070553432518521689871062650875218304271602354073795177554519525783858570436298615168119288142783302867547561382113632425967904511453430866359997711593762607926345781118532292074781977133528293884040992399548829911304250252130998436468255716398405311089225658403882065111966274695493544312653798396981209672063375883083457601945541150337350152921639712220269982210826464942224865805983992359206381822419531688456187723969231904517089238149610939655615751301352838763106706306096337510237467692716389038837036484667936517925625189224127662760218913587629527014507782854866038967899166891681731357930182849060440543216568419544812030954504365900319245770037439138579944153781687856641432918501721939410980273292536781944692372151738950814731643035539210499909679127308091386042517373037895965860372283419524297231603271004103447603724877024681640295134979999051803110554993533148954586266384775358663864219933852546418338830706906155141156933948264130612376476706819464811091731966896825182436508466676342382642022770990333225418026523728676746736537763897087031774076918361001985734243354528073227373151186431277568103934073130593516437518241409436521478672811074267399668634674418622297297347692756232020217119021106407076936986328776061865627105711983006270692676608296805486165342420143970979498797032770250279319720590151093367649561154253437292698599492468305795349448348250249449488757217791619881016593390104504535854084612454654465712643746715300983005242589301043600382386713973143965846483655221870012086165802151329851249899954927551070483329761228167299993639191470064034850313452499173688376937155153625146908823565639787307677322947820878955379573170526485166503892729378305974391642410746267274406784477990461159966941155128267585204826455580526377384986646786137840633850341195903824447016198076415920584378890361983517130039790317340319151197154807005824419274657595259578453627778080922948539186627874368313466670321861524169728901561469156230406775654492565268154352257297367570298443162967494822268927751961725844874780458999192086467094536702240573953335585025866038425020367315463766083411286403417491032204058139546414927271856102063712683742434241298230368693708875208322237801909161981153263443810121446944088068110879128226052563841559664356795569094728903746062213310014169974716132088485286231835371204627457492500568307978269026929000218846941494920009722160172772181517803138980346929854676849064616657240405316774933058138179339357396982097847344357821936565143144312229835595315435424697987793587524025121690311141797180736875384072004437471370206667192742348990412903770240469616320525440983624458801715047631136938097221456299019229148506026063375724828882122834412120257525514585449507109866440995690743903232635436930761725937808719485098880800931051987311565503425352838346039599174142329937439781828405439881893182257975322506575735418199906014504459644875078064686436574549330286826289650535957255717340596929801035620623576004124635272645404470595581562323166097001655064089719962960380811956026674514676786748137592143776575194223660429138611913182084223590314182112818840623996059230847115862751933036956464208163694827522994118767447504002004453563400908066083609374811875615995874213076078459101127562321705852844471245928430016389756959449385361701756805427408470450004756139644537195607063901649943380743095097244869821396317600900887981540267663247308355532573923547799459470400460581020553738368214453783004524131756756787606524203492746994069942976965634416094569339004722220146974408915887716318781286018769404892736068637821864664829590323631303203748079550854082857760105991254514823914024731012047792627883917716772586047428149889955172455048911772284623527868150889071691035682866623901255701418077634142009882477894349340329913205430475742221990445196265460515882566227921620457142994593755835218435072217458531324971610064826131095081830156411341695341840195843323386888415809735183520192297781999890607032330002889953422369627681140983849598349486715332101119331891209268756453436280081991447926363211495036143092440070778022496187125257350685684217587490004711844919083149704086423523391992597514600848809344851919785842152455676095254943645199949634201223563892324282726774724645341991135770001927667935810468257604687467253572263652630590033294214856355415118732301475283612217209461247037413480736587358591142233170546517845580239979335253151102696511374191190048911190418105163312698055294950179160867524812840300866455879147977397140633391505688606259165547748920428645299150666136675404751025280944116061610159102761358565592283527020494440387428661360655213053527595903581237216202869914568275795804624561314039018488241789428472555549945107537087760690607114243322272787620053205937534739615955460116691005555251987515026529591886173354223331585082983758596495689155128992512435226920444541878110835904004230968323642894950058332879324166562957703618099327448444357981184354204505392922016732760010089434828635191378220121378470446843864079831483206215047041188957781662857543902429829051802977031628634083971963516123095289267557053297396289950493819282811517754159886542027003424146354183106823895432282917828116688502439230069577817159181471378063084899041001655949941516729049242212820487604532798159595719999695045528501131881343025862542486119184112203015914246585404466214694750225354475111217342819628041844686335429791454838186470943498268949450714838945930234900986062767813108883295840921466907402754163255238746830054709036012561568859910087848247039744507120523535724874391133953117381762795699817715119288823132577954457385840464834621029510692722248691366749349081755819942388304693620189662636242678339817345047620973011785076715361831337655288913644751406116526826923518906183577487392375619135144695050005638019201849219525888666911524684462901629369891508742980586482222874666981318141436660844855434968217197030084983722408752741941412010459708373319924286135914295706635842136424189888759277676762596788248177471469828943111874241418006468351054985748360975284031325158880636286720907834878976850767082457629081581889702035174311165680620325602564365915752847174605339057811805593757464423662725885186697508832766347090740413626737004899852632555986903804482452727423688685041997738955375022606688834669542898685686476338561336358824232727535224661134926202032595183340965766394042105298560717734440207437440165412212858277382507233629103764046455535260682732725303835650903696573406615401053124399617460342837109806133638889950853421855713270296439250148917908495886118685494784289871294412352600897548102094429065421207278456823113991306343232627139171611599438433691104278547773075016199223098466483920019245732803796725130666436541344168948221610836591657994255740925433091876701113031207132070759959698909267519946352623346472231451994675346901133325821724929886126230068661605457282316464487201711691145060746668645214282751159911648987980586386236177475631371506787035704653043523443903472151664408771148652569861355869600443068284659804126828236727925154188845824955286244254667768992358414780682812804956979414976658514717938040665533551609133353682182698717896347462803559654267895228179273587764316746505219435676339799637205288872035015103696462777880526031157574539458517617981758923537454266968349901554533420265404786261877020124325014102798659712313919373559171374626131707473673932472828874654353084793445018776310555401396426169917728317824086086934894041440744253528828578531618371210956837169492755766844474258414493212066784540408476252800886394400386479781418154956574766602459831463435765102397165807095379825199173683582750526386908079942072597612792876417061942563639956516359509401635107296130055413924069687223476358477819666262217012577543711115602036006635984342742349175007524157850437373557818170316791710692736943258283868658183059942555214371915374821607810581278807150916591903218888060127445379300625978537233930215577973788738939531971747932696240313672630257620836266862035402487855909667319855551178132657572844180454176964074082022679372589301529025317861342368405504757111189904427808549654294252046364042481492816394247749361530652641159610099472025666720484604114071203396839052611566545864599161125369855046738620412267781776496132844132197464256718539428476937630117371387909438464287326537032620186715660083823304522965423693036449884324214021131273455487750448196094346582079757672539532813568013850667403047312925677483694443857313256107534639433658050139753847167399273164793872620091759355905920077415742414278805326740590588978640606580348725816856085905493628869548578592714179724003386461794835971827956300118389918580999547233131420237778926672926376299004070692178930515657192857146575095766429061813736747070074557483463167034553663137928912429971632301191080536301986579688407802652859013008429653438979649617892722220182143552135829233723352004239115086424649855249881940433161998680937042333716485106907628364625421707697905894594359320938473283523061927787146983535564042785046970082516580389776744920018595449590556788461450985296479858239646351923287736684563355918306938459249286990546468951772104325649295973562171923770843986366661256493450870971932200719819710078784150219417176966050513431963284416646369641264891733375443506875151527143094657794907661639277285592931083065294912348465985747317830024635838524654358181978289008388690164938529783128894739180943610526333481430448895496379847486999787881865280465129352273897927507972369242379521357945185414431000828372678752006060193466279401850879535353881232274638384524980184306469349976155012652241386956707951182104667355594686977101734672711196555093737612690277972555770941003565158870259556873368691363966213214007643438832506707140074070161608862766986442566136677608522157044301319500319541845816505732734443783651980774093192358972846146143458359517114706182404973025660278577662303982274275266585599557128122748293403224404238711984177663187806183367288811982814864170102497999251101087170580037566785342628267485946189182541052620883652021429783943237223670331736032232713967929480434920177196413663663974016747691489852614305617451697819933203409581650962641112091587247932093144194225104572044862926234110332845780605200790911366279470835886517380875533789694853098367944915589230301582212246447494674999022448420846595439901022842567304557715168154081853160201852267572100991234645776184368728722493121196984823830849247309651960618971887283026335087478181325140299094557603156192317912913399081009032670827004929670794455465711148972268693532091906302080606602003777956466639722838602267530704703813140295936755632956611489100312422051195524001846635887526250525627851306376307336597464237068725264363723952308171793205733366216832938422540905751747393120841378098001454338587115890920672775278140352359126117798777411910026278134366427612214429125879680965045019143008368816576046606208099419368601535683490126977614398301880784482042845369561574375260308411669017855696676044915514900883186681438997581599990426160753873771827557006330866107288666812391658930303814215882282600821072181940819969338566099380608875417184876597882618730933791215546344470392730504093572563242338374875785770709424620809709845295279414143468195729082005131512688030410682858063380418433001669716361738650090699500411977453595337942934831080613439864674020454495781591246759357803230238842355747398401924517909104099837431389124662393702575392048196636878676854731293827270942192466657317362741602897932299037681908722682262856937575967795493130921898873647998882652118962639223144957659043714958358492513319076359927724537789527375063372822797386413069052799326218756281527109593032832741460605851187619473101216301378358010474410623957655035925813139313753492383792701822227850285846616787257351052049224971017878549095780286543758203958920135163199296146813547677768658163333350871359446598817742315491386015316057540742667698512936458561176844553583991523757716539609894505928257593083422627264203560165224724460693643055598696311255990623887575054730995975794596935528334785158444590614244688620366561070824128146393741718310535104385444531684338668245868146547855649907345456692052997953515380384155357662999165086804030258928044680590325611646835672760378994326353279304749612524712644338771741130242805559049445015484275180889487465533629466032209371495570918074347765298964559063773016304126409547810486900260809159998938700329730073214227687977867674778167850527112555382509646579180752059707585957044119211295526333781975730448884957273271082125798775759649921646023617683875658848319086730479804142515068733898109084581737795903520213702201934817412841439764503619152141497203192582448792095365075955149911165862004366551438926435949873084484183797198801371095152727661488580209313720720396027841677481435640002808356364895387996265837387024216463711263259521423443480391068705508291394983581884352326943634648587185989337371523103981172231687936030592666473933546709268992292076932307938659457091208823506957917862699428481976480748022267809482090840864261357783045198097399993683420103658800660477839136158169749217646661915871047110621386326025735022794362581075785802750869167906940658151235757491828559717616017979420275954467838446085132171054564784710807396012857485244574365743543798718055791941600637029803977307356395417286237145164241278088153935273458414389515080033420918357986908800320050845373149313396048936695886740443122910553102462336005097711681446351187256153130439986871095057815190936156306553006211335447051970127763357418699717375171232074885324057383845929343500832705753351380423814641945139265491193959412162110793477082788097267296644700899895304454933813021514228828313061878191342149894074227314059852239917470807795285888271769990873517063609629994755009282629312507228694242073557804598439511886376883007432388851333840185310577890174555529488658862374871334431872815237008996669974679376595985035352126061116522343052476683501514201725361346092037517788952688205592807753496241426069725403512958194347832517661696068063034837090666435645479306414308969403634528386373851797394393661023043308885278641547626586425783344401354656305114060103315096602442077909027786798639161507201391542681370912949502590166470043740046664465043397249614826760931278018127190976260855626992525885620487002525540418567272604682043155420138611742372158281065825228081699651501191199565440148640230156474105733346707622752883398151311205763128893972364040147594251382874984393034443212148210513749154976676234257791851921902167295759655895051225997475917290224271440081483221594806225820600476636440475265260961555219074734452731420243398120824377769046737300798170453055633572979441739798056537194010917284429117123963889599207279151228622332069086399941023724356114983875968773345171990082420966622322593146841670583643322545343187535837642387819392910820154241103874951449763593838024064191647120563757762997094530072646041288290971474084933025417868810990044274197017050619864525428647072636435300263390227392918851074208024213854447533703323815810260949822889808477632296145056021986269952976052492382618724799644547038228968076759857005320013880025808009338152868429512925276490918535916125076313342899850513856742489619331192582894539775513379780020360251547441462527639506989662397657932798257182810099379094078668467429283304896676667102173343013009014776428935380993633370759579467131214130266362869270900829074610980178325435739388793254423563253653156374455035312603967015230763364971375078564631505456073082628101232370969587126820856892004510540317037610458672277631393622766552192606172144514895154757702197306101288607698562330924089843922951299046447103378395114690348246133781638020891038987518365856850174385600305025375384297880385966175831347167825509769773525757081079068410525924461909166711901482444366108298745429355215940635160850574979558537808788037852407521726463198580712888609973000369404730486311024543669691207254008528195477589437084899653761979811380904830866379346216647602301766187712176676285294985382709675803654717637746474220768552981639018690670913317359608310043154205690724663146457665538137456886598416391053471786395434745757451291985722142559025565384517225859198920419508518643432833200332060602547671066741879665229006040774958972406228375110312579116729835395180806006331754021710181017675277434250438542004150016526586622039778844383427548276914881244204495564045214933090511093755121063330952495688804975651222755069755731754805302825812711079500683606000486127464315591081101945931458369252201669331171120997560828102913700900592647627302495628691979306340891923089618912568158344460954635968300360808201400896008528854024248410194360763635637915183997652585181960807300775193383561709747943739869477437456014795794623325114349771224396544168651407609836746177555306797662416524119004043659491356728341122873694320874756985525608860098528025641179541452282011159786535448196543803231922330716534763881290728944395199715054992493822367401157692477699374506452424653241588904376874673716943948498253808566860417394612147206813472743656999337732273972044607445009125156490622840109192135317833393161678584944326180255903022267961795329720452151768070994905350662244867939983936184660444142899847698624241090420305273753577608633847764297669351695764400403997752546788694869698151303461506749835933785161793743549296197043916153920007178051488028681345843988013118647904116899541348119105052830308855534098576227877089610931508045053382734768698184034736898550552581690422271571014497422399596909824327141007055460070159827414937449066042724229634089554284262038526026977573255524477346085663861165885294716581331348357478230912441380869184805034193390215259335076367595788581177206772318464572931912782719589000614082650630166274119055092000310078299087514489666000965863125761720566772554225292134272996246229637344319498705963030623278638240336979361440675409355727108666699346187892349760521875733331700808792411826119942386981170602310841194295480368974282486569362349066655032202810936519772844442716069911660318913272722812967197080178205919828351413872272216114991694153908172041107559892319203754586810616866877356786480049977304239655339043311778497299136162521739714302243823778023769693236027925089293176173898998563271615189311924966360107667941213723599894077519533037122411523821283475661489639294760937141365139142991099129732903002139536441384880631929866867987130801397620761240292243076642018535793340867587545224578766211465770550956862389085085315505405906958708399178713379414029452408593577527926293886867909159699201058171052258680275632621889005213034701586036078808133341610168317308401815571839847486377155291816448395069567973990506856936477937440317331933198879016601707457844295029020940266896774866445168142078060987382312351463748106668405337278510733017330143640408826957397392094324486840615527107574646015561773518412814044270025225927437018563396465000416321078698903963511463751082814076196548990018054231021278690518070204571235267523806715222140835914500135890209426726646920387053707298636828488080754313989190670503030866095570826995455907817933807953928496347696914610054180636026050424135293170957113180315009704561785709120458745994976629622081488663195609178330399136221392463224755934045640186932762651588920257149832221414695844696442269518622606305728495627302055916217852476650845947672781521022642360773677019011088256709171313308166707964961265376338760680070823157937354052653222858957237630133037743927115158716352694052378064116512271825772510834254345464592291586632288142556974101901408404385157559967147431969643317523949216708347932960495562143978741687970206027315372064217457265682277671470728501013895896523069150704234620199689248357917044213734305928802236728765431313212996009601527807307219679307853709928793058436427576608325257757931287822086866820077033885994466249449517569704912134155380346890922702615119857116512005395750178074626523774000245459112202580331491720375726739327894314025755489741590621959302885183282660699438324241287414705316529579686601290048844726999798808240286122375099975158134194610812834873228378043634719850474054707592451362241391747438544034955412113923067238095502251672228432856515443789105938774285925428591031546437177425540724795126301253032959497271041231754699151357419730172663447290817719545818325235640213688319811803147143381562199917670693316643063019341127333335412564363642395982760866553985670861573009729619809698382572968229944932227040729134981654393232094417356594337067969468836245444287129603507775257742317092733447147294939110927886953975070719498916267549083031363510951176921735857639113026690102443938013722477611089309307923013329582284732881142306596487168536049281780104676797307424353423109899730148356290871879567340233287310955006888141645681530901992385820939207035906662725567693543150739007438318638641485688904353152544751004518431052258840850767705375694365917018772567526495582703059472323690556158794528526078881740442037881043595754646069374350889546465814446487154332947704891468359414264449198007560640425401404896266279802711562407869574507279945309119228559919895210464170590253696512142611588010409268854801296946094282842311789223993080021116805466404646053486421109024395449506795066937872827722253669827737081143239113091346355665481569974350552009410948470182201219025597937212005926974177519278947373800001960439840432912286565247998880993099804656793397718046855865570958955815160766682009336520740615488060236287593666016565754505894755801826973420218136384845627131622808208021634736773635068889374071893417701214146599384513134350291023465725048574064337462647782175277968244215864060704275672081067629971801759204471961196969110717370464377838252104421466347872851857305398412443497136436421059036403023225105682973210209171049457357638347311087841532885292049602930790740102833654281276401614949590978831437939902305465312555310285864100626067690806521903944944317651110441891630385078640277103864293236390722138701682641139855039768616221078340720616198686353202205378915106838834890275598201272541505682660509080635846560448694860162016162660955378415162272721413167074021550712551043803055661103791645929269282779374119959193681195922127945417168376604173134908342399602332718543821099682372580672429584941170243793322534738741987886935279573723747449143850958870687404499709007674412189475564786063512165277576529897780451542241571257549099465920803334800548865916406125410784789912400561670056737908817894702206218617368376210964323771912650327533426915484810513120486273471682188310262651701690190380796412743592194990110654852554332492855307020773070880580731026110976625614089763496678627635219169070488811102076881426106024282198579964851864200904809129759139693905921949383680643748321533055248449533118434588385685820838941963070189806138250245145567496188840803227668580728688842160894038212615340695130492989654065255103188539735863932020011979002044790290755118914303347063879110878064791036426607423735374898743965552251784765862493635088298148619658799934274180552146721727372856929963502752070918684452507611962192742878464480445695504963600917625665171934533356182401905376992449287486349544284281988108903133477479496717532756137250886277561569359168294103113420867659794563648667298342013683887327506428111674799633875005049455497869487200106465076714816565869866068169251806770937079363155464845038245363835921800696577534362567816450380421064776061941717496716291911630323392624092139676046453243889541378238571558883848377343153554545241591027064750055701210390596289032104103604054898960870813100576230895343127385760270839621709840861864118773677297645498115176026313383943751806619981252700621869139837869574928171901085302016592168613401165322750367860454321867650343449598836391905789885064034017037188495468634970256853175007975805146699963166505936135910213307359581972287396034020904107407551828861702082842194290927565107026788918236301358327944604367593813854888592701052596721841819904692926850202869058468119056627294821361448681464532981337550402962329837913547398774700330356479523264065424171496505797292613870090101835313801107330551223021633391639085652794911838514671132806980053226702367213701563008965982793411497952143491303271655395088724470915874567112413276078631824038677244291151278947520263397494812236441803387471419557571704598327588177290061111906485849664565613316177638534204009684186109813229761851747942201331980024554974350053624612480440674112858099282111605707222860961528761773918822345626670897033147053344634495419360335968513428609629029250556941708070721155156087759219957836940087255071350840462440586688515676846721180000911378873726767884397954985871922429440459928390285445062658349202215366921700385557927448312373603764035541763569165899484569423856597139951270770343397311496562206564659713611718328173483403793284709928915736210537747575203045641269017606819029523663146141833361496669062159242992919066230510429834096100116542398997606069259648178347143536505427222434469243942295476201068990800908462333157126769300065835662831404183216042724084404000866969246429582474661356046169943983546273952900448111604480154182429517597343071884496384818791059912131080673874207212276916388931279990380451182283729853962078765074879615811072237791484375098446954833514903047620416651188649829658361338440457825655251745478513306892535558663617809641509235399967252482066809735299350239898483150460237664897625115175795907945554365750963155114590687247907719570272966711424065693577489319815242130479019066858816215039678858479475623716395197904746049537849994312811884600173283390598869595901359946592102590098005071920978454922566838125656518506775960196393128670772997697343404318917857661191608763696652196406845013336976558980102945231516101138839178265930772699438819052320884330901421368725758496395581559918256687281649199457400384132834383817456841676572237104125439889936369106501258663162083354026098839023635095088385167793881316501338484464709277162687030589531160042979546608648365612127850279710543062986864977152030381260934070611018019786478503949720987961894498101451588795978897343215180599654166523775100660272796035334762809057875647436584626196677532662248398341776151056694889079304945989317540685550365140240382873890310939187901237306772088126831489264007013966811030069537206285916554142025459999520113056820552204038840581151502039430634216881748912513530096817956825104416445799870578924183788711004414738650785631952396847149970848697665732397619961377146073213790738895307747219446104253850589552532869133304514733087591001937405696368067162940754086096040483633482728326180152544757327178639313229074749356462078563935619272618698247635434666335080553343363974056928245374896467830120045851817574620934622173103691493597173156746300955977706248689058317137269794404153199782398932695968883252804235160565217098373960607184116348865715593104022611709524839708731430166068979053197495602009144286930758368294476864654264138164998799564009556507966635332225834321050759314501587640667685104417237147352271611048393962208121574343841040261001070438829262639114707603047615724642509222717241298208911047059552455205279001734233159658059915622549804936299282990713938666913679096688982057393179498436720921658092541204422204016763580912583236430088566805189914103254255467932978176779071510576977385804529890972170306847151518044895322885843950626957169164935846252607169184570461461637681442002077702687848415308883319177882158256262479124340744211069644238889138681768177004323895001762789567714198316652047481271757494363436783155418215848364067552500697938985632213131752948774642785534909662396180033553873724457465762865735138102091785687358069080030052143670524045191145200377667223097484537378498080433390771925941938025434170638514824379645287351165458087075333142802965437617959566820307623423782384736607270171397784262421116419778509675816377137816858328253605816299999051629279939063582526430030090546784658588371040599820154877725959362099672424376399589408570097279689587639916801568527743372571873684864221641687491484725061457972466497159927353076099474241579819117316593439680979044144816223742048926039736983566750668264876265750546731432685916530602213513874902165696863556390495635581573877983312893216056895085442121530042970619587253071845063894141646591679031889871207428729508961034418924901889036848470393480011095838316436491184763274002053834217013669860970432499941913695382493559366981098328891020922402682379867446601931959741833069195254172805292042677358866058121303630022636410092758226548716420144628996028103392761919327315493738683799989627208829893047860480046014079324940099531891841916455067734278689146788966219459492899434703535190885225820875770803776724991892449148285612051089051395535175889377781948336674886593599709557121896186750063395175624675806992520165044820093451359834669988824063420353284360772882634445306122879182397502393820123999033551622032142442764035907026978546763089582680689551255273226490759718005004257379305062346292340708644471923999329464231838103491346769048449516911485122077937423610135470101806995454340731697485628854787823230715783274963925589717474044187669402464405861169130999005592623122045388005433338686592479616913300862468863795350842364069051120557360970500367006380686902612249437398559857242325727595796735617157351228305792153216286598533220910283006304435853179940737708306394989163300929084156103915773931144246654567047385302693943405997228749105876040006514147712946383434863403156299251093061828917406015220480981163664580250919779094644672363442027090980329624450459777025264908422407363152026444408350263923765568013416416223703678550454322941406699034120528068703037500521941535249965939056467530974095749761012691391312215612338924739978710514446598184603915080323987215263988665949299507835189069532737224826747875707882629268734344891481153821606493671229073338034038085676925985715470343609837599743269429424277611496016755834151738499614184142134346117304289131357998544841281201800981103302968739400750448131863914370886090407721797382088834770303969720315987987995994743826334913572466620024405573764237884507063253833155232850824352132059486898529507127418044680963417379940543245051344087620283642402097944635810110669322568224652643300547555050347663282742029422584029448677104534649772576262992535286388173561586489287854435605711372699338785571893947070088666593837230863442690207171412384280486952023250019152219197430531614717677446034887496025660571784349086903946761354135156088852213247920676242540607553665228359276242846395509830993081532188742404517825892631144782708720067047809936456232913473560550895308684834855405310034841790722225176577203147595029963615432485073998575186695129547842340373268301698123677454050989663948870584040409149353773945815870594344104223853676689792655004249475873624389326848601755265864186179409216560757992365641851895395547879128855263811420041770992273569913591432397120489558848425657573673525409820942214084875053411667105145678772022052559762014754146473886746165596322341553225023040091541045072867907217361697385585411746810279357276577517422403690554690856425874559074738848790306619775452161485369742082913243137906180254577723384406742171375557548059410230265058234238222268961115633473336774979981107014411934605679478934777428668631425384999056738325906774954788817577044567259791905986525159669315233616744257776719662679854789123957396143923598019308500568326005988625953131797741329449706870831545061664204356287738369287907586812542191230785129147022995616217121871813525274626767161814322516758817826021125996624460794021519170019802317178790286033553372600608414433722795493085970056735038803697712508240227294821172380705325006071203788398680497047945485749574787166893651091659149501052180849794036543652361270907678131571695155985018799689525474128503799512288176585780443903091888472276230797157994871812992494120724417810961054521947241398543698230871490521685663429602132427719972995654617796896935863970788886342414771789889151118092907056906407480183191629364197872977312833919118935717126010767648037827659512179662023675179198364157085849222977856850548266227868564951534560352215488393807314196000136042845325396790809733234811823694021008133342730904500690471544653253038493490130389675290299442564586386697671720591689453014832528811682732643882899990992357032606544105185202148682066399417408980446271492161686459945515274723346195144174876465471629912454457846684814101692717427542483089120892161915198507750877146829170782676838410517634965061622990373285526996213474716057626509022789034579591163644205633527284514244623833539583703339831966528479058724516702778621347342704408063881175434641951571053409226777770657712765901928793588278536530995995478291530020929146658768361909540493585815605342966476462230546246984158297923651625346170387116974980998345014343512097333205203730958072757461242078954704504029522968444695498087543915365526400994548208658293033403286983030631588383189225339881980745160507287765231540999465647003777052282573053335872351080636334775049175169736150515119812634222268965817491626661197850113006561699021896321285035016342686365354932996931395575494906263478743055828466237627669346270599640810726537999973363859880279047716496547877935238234642595309873888760584742593420701166257368661488007448379724118945088635403301542130067234881260492223511148689310495637861622180582796389807342434667497653467145669111246221090855571686323771319890396692257179315691185391098879277124229211511721117813883237966699100202919599217765282452895130747287362082660808614445434852548697795740232518396256463512149029992520720405121445702336729519458114414773602659988038400953094523281971329427384974632182224614487962536812348608711074516249078346933286084642251851402613865235439355732109882660551816903645052878591813297444605480573873630440931754683993819341238483515276551548240979370497877566646566522538007051194054173156999162941320834544171400961411003391949474153068551104970833409138828288289938159318348253918028474448663638633679335503318534104864618220031987500334555663645665827273919171022892374435193572338248029548836971083566077271579043031293960619950077873189335139371344773905668604107342237109325223751864694319611105778928255416504079276228086516349169230692259450810309939106616039748587958618953839647550016814420821366179523182630632263859193258041401118927908616480171687324674843250398181839631540210409349210706537571745330450329991528745360484314815962910601937959554617334367791830219515655283340458663265819933266423969683502267222793649081779848576022133488834968562726418226960542978355266102112768966552842773936993764987385448361166499606222250361114887470839988509628674672108672507430475026449807806683442198295763332741960809623447455461666319745119228042483019774698939061967365768650428037642559744926643874732658924812531902515943870188682211404550442903018712229838682455120429644417178456329246409785970128473427248619936248675881122776372646716681348706103256563807653800631068852499244484499234643516850063930399046526875644652865844879122051651059440746283087768691600612465410596273732424761367770720692591829512794284427624920390207135322824015441948936429724662186679742412386089511943306946867314266531809769518718144032201700440800478730569189635854284644481467486714779876766077414045439270952497765080184092507931540997505369401233974503975117581322611851779003979962479039286939589465698065111686754920600125759959870448843503110941888915409966418851839701052266613383906536235836696423325465753901027456503166768444646703488244106654872495734250645977928245833315768123624051281323480257741913531436259064461568716977703665576448878537308702410243458298350147633452723430571179314533619392861441783298479760850193626731782882780872323257981461106757445287482687966082693912029822764123960614577830039245673376131692627592544094317971350245402277097406102477768002680895573193834842968644300369560083693604912881260384731641775051794293999526960438337583803738905101513926011800072011091387192989856882340721099082915239449613715911782849251110499101860859240238791497284891015876256825748529659223674931776821466894387939639669662646396899833936880127277745106237376469446878318310925388019998673348180870941174185089186968977491945731470037392568739323103820607931184150354383248990060522145229767633898631770375694271591924560318775198034938234534558499147410523670852551798480005298156314761316031947701617100807510636268368510734567235694125944991033143763345001118325197351679781616503390589301414711140281379066169930850210388369330520495698766823954598088888531492679508987520916951020542151884588267235496040300979941198888878994111363874019701030214455507461225862386948252917403105361860455425151827777716864255218601588816991248891356047871937326749607087762865692143707858674232384567204253576318359227314676265341454512270966706229696075546831777063672452039679657974679136543111375442939209613731753507811712236512859871445633846685927002933160461079151965922012728484322956972416691316043672492713960945930551072241726761937832543631369744664791327189981504891997678964112333462442089066506653025655089163041622377576079855620016913155979913236468298169072816542685876685416833294808904590064031997156521049084369893774376948652902361766436367574979866616933035765048035856082305415254413612887524456971140572006189203879985221402475096061850097808011569006832683598110621109786330192142794826752843780803207116126058282979338690800207988902280270240065885695585423051113983855281198923640696352283173354286579245805288577072443889571051798266203493074502813805911280893161645650298312492466460696192949691476581685345577456816198725173935510411619110643790499905401750404981965437637621542094223672936208092755879107301658123604529191525124793485537023998911081006404101072905615616509557219549133747059602941053660851211356317732495801224276710556126217380321886886647854591395724162410158492726354076492298725506154502444857739598612593242558507440582487562802548699185860223369888448633929458184780389925527296012874095672613877160888112495674157431694965607385483527774940760019750594952890518990478918157301380984340505443500123954858436199140617186892037344123215123923574240099778032232575988235335144059965802864453422089663769894229991955207076646055548689636311782303155520851568302227982066963227866502096180627676722970209959326575661426328341337956620197081117886869369717589160771622830838283749367161451760732761518191261332111104672722090857015297811640525931741681286668874224594768345120011320257949029175831589422516988206679467296937320768200870022174116776052382585257105411920728675545571534279929366471558939583572063599371798502108468823792237672644664564611493169645711092239368486175500503550744116991641513742934827253130457221594943892314450869396975893470598753083659614459247241475952073805319603537194191184328737851996383284021415135230262033484841748951720978649844957985855962371209206124601714660468666486095912963143092866808171326144250910105967646680214110491749242883720248172403127336991981388750946278622740457056625488731497184056753622253486646445067382525279744148716775709108058816666973263362549539952929814614723551001318364165585169262043804344475999763992004077637334552723706740014389722298434596791118000049935935106777679046371343262414748564351445231618088518293484100596560892398262636671668749949421780805273436504813224784977341831204811157798954273374818988141409464249247975799598594061282211561447448995120708704122717348327125985801388074699455290965563420706111119410025602897253315136473910530591149798790649828276154708111240304818323941773968795138528992898841856253388635372559317191148296733353041932068960787293424405759645939321112938210637659116306498990468577005423738001760641474683493852239541169872831551093794901921054047399942265443221574302601856585148035284301715545932947011328404945047400792812831066847318435427700224916403396292081802020449363578833963807961047447340683047496873002248118038166257569515744499471267602003756795915539300276819717160420987874634637590028327027266202303236434769707457748095750121497494499645343658700240862166941183394897099436943338645027738898546213457751051814025151970898757061293316241639010127165141243160339621188340067421601487028804443310276635972745520407116375685755064422387324494768263173197755275486486984989128921936514504557653876203058907870373630956858767619330870159847546493836946157965179091150884103561855946573640490313198822357780502652594408407366783861886016091782118904830759930858280610060559260801718103121203974967717512625187721440358322464416190015401717885908873320929748386841283497601915522120254390794283209533542145389972139185461275177443134169034917532605857325993008676046214778029082500112932294153509447796374941367731481647035965983889474019050347403927386246013147708958906959781622848905788760629589439619094159950918881757472412021729700587580355446210994465552213890913264454455099077706025699918135144199511108190271648063815334825580427997860336226219158912572465853864765001456423788088706460184030712558341033389078827539977261496211763497024484023671911034406447980598665246314423040532837947840096912129591684705604909182743294267876699438747525291386518310627255438726394960902605098681838205853392243238667803491530822599951204031808974984013063435174978507223740452770343400321937394417029053167627885985850245741565194448593175147979891474081846497706162402007522397666780090426470721862656690562202885042900144293840505461391582118322612870301291828886757874958798000878143138421827510169720224313784498560214342520428862842337124535747874683089920140241833803721858766926690322839572690551658506105500639631286696224522489815986957668388015919788909776980972014133125675888257767451212613936700449867220829522021370524632150496191461976005463119545215310785867671094687986310079906357971627025187029458898533877512144973828061311731967694727916762170521599254065387246739344423813075416576797924045828068098338937689513216931036327289080341957835702916618421375660835980002992902760581940902250171239163119884859688269886370729680434792016173936630414501647441723606339054572034896214333763872434719420815357528973070624648066526063861101971660120872061932552338603040799957732413557017636697690065841123499275133281135308288363379464281163572683006127115567579283473191339210565816666056858528497533368399107141615553610783873003859154490940406289967339868738508829496183554475710399932146825315271239245956103538606919514065658984090919944561071916327275652821797397728635459927224131292954559315021134443803340243180546683260017032873729820621878919987983757586942656480707935527671844920030197908016502987629841757235792635879625940560445389405884137200076076513681509443519219951252547129771616736421756616110270701202441556964683920754488710255763149536750323486717352529068083346165627802389172399840226239049883109381829665221337005548646246756393715477449384508823823135207149890147116063667928069595368635876545004826064106323095042584444471568190385106760515114102745605193406569706373051132965442191439260540272022636026302736107607453621629258991036051115189562231126377976180472427140990137832108701120457054193268827636317671210883011008442045690318936374516267448009700514653431463766235219838948976622295296622441477717858203145233937233481818222991308222416880205843184565105759222776530754626854920244363028115312622457982101374743907223916328084307374345021157218940651788313700964157419742151577222227353472592225140948624809026855266429543564052601395174302591500681761101151478731831114477610627497475208042744721512152453849120106340450031406854412397241002240627528190174177543986961752783411536765624800910313248409552483619626606532556964026077423814388636751789705607756851056302472282466747840548474997612149245740872196781051170039836535278364889566163503515602441478311330926313051691131032673391328355057913312919659284745578994818624913879509653095759236115094498645056644114212615261701726330998869962607959912361609128996467181992430490215066300000513573663539009162788416751948354481413023390502472230845073700973668390082178050964794130910252995466503455004439788305145094228002992565919921693564286102504193693511546945860280801940784980149102586455013816939446422876143983739791914579330825827413695386376248596484153446926262014840461518739948298772373863792379378865583661816600163452053372794821348782991130430274570203884492916410630692458256031440110887251080043145709085049536955312301173158485363793859224598893813189233426741703872454626710959105284771266812602499443511009204549086731240630902670933986662211480054370048500745176105668011319119047090200619370557111528242535053345482358540395693920295110626009920055832855367091940152013652605745186888329601794536886455095619595838501303333627307016293315507864509628496269029149822240811357776456254704149670990573400735759107962852915865737458111080610452334514764334958050337218610184200267299017382698654507335866852931909484252845620042108957622924394519456707600664397565409135949066305363286034859503177571342369903253114008596448635833717544928709792159650985201494041095035051524704272951239366459151575625817762998427185467075717988647299939031313457076888542534522420806639122920503560827563675728654993073303518947397671445359064783212037773558488644042009266931910234605346291522170797018015358184096025668577423690066942459091305753785876462142323968986588097875597167367570091370266252212165946601497866402277084849197022237413884034770227518562181541623394928182819332650089419856238024143841463520909091521033638731290132473016395248929407463857760223747130423773884153165558714440282685999353557364528267758158377256892302261433354437587184679351629526445429358872133041456421566616892717512441553158518100075177571883526675162100898281469676461948800937370831938797629289836382803708221607409973823476433934091531071052327891422742813468482026820472767520698083363149033902006439825447447952996935034378551630881976857579572857713158864700242086148231254561286917608470469727005030681284867139839411539190201086664901459449021038638533693981338457694351820845470097587902108290580153838867085032995864008385865939790580566537745067384529222073686927300190084722372576527293077549796040215051021317873440350871397292786245693804611898307239862686816911845631585615804045636305507021908508381733044563691396258933225170962627738389210342618890660730273832800918497602863279011078018991843348574067803132844323768632341680229249909847117754359346369704363664226268491083996976114344123821304651993015239579122945155834469300783115547176870143899207074871699684672638757563607488620850852371746985160251926299969144480079537130454494186775446778177193429587168604009990368571421780880209976071441040709126513140777081423010125242975311503498353542951628531819058962822247106505685951915047177668461897648952455485789021095196765574213826157104236880781701334744750693904990552182519269318724343344423897212456855379741632048942142030636386741595423922795855082794785242226306674918396297424407414977331291315020799638240034144172171406789264757888441605702282577237827502514383717287698453909234007643099008364570048508068336525720449650146376880501102097620755783912048323633967464933606607152391632927158304778114881923076910790804221046552138071110240076960917500483816487749619927020192033167362499436182821112584907072351388265070543718489157733298187677604392873193107223870082798184110324671637069169076840566546628921237709633004682576700767181653122294361792608986614835460072814576827690691879037401996793373239058015879034898010691215071761661998713242796295656142506784788337249124321617715707999542039944130131076169553597119923441822797589920703123036823045834083014521243461713618690853623763632652865015278203390764458726988931480438518889549665322848530800323037094741493316907989099939280547663761297521205163341581605827099427813992155988820871679245032284020096775144127001957585736982043240339615310827056714658283126487823600856086766020268117282903840139723560917864624152246058924005451703430027144413780128106346337713872231167458052364035286265800827784872558509426771477956694762679006422515363373076792407158164274114983148776346908983273900300816456501504169605285268602953130705389253959804350659534668358810211465179577307638932095626445740083663130968327254409084325229299586818558520985745881433305283298489411917133341775994220174279304971007038117116611290442173633170232586948678173209354056446216840814429708953535556353598260382744127947199550971907020057953145845474714511130697420224710003461770895146349629978057976890506792568932786337475566953507994210412339542293484313184826288213164259162837408066318965145601110193747780502998315587550852726064758040777859089605999340097510741418763263352143190394937332775744866446726659817402354393770360915063739233388760304146460308732475439968402744542058483112444425415781495697527320526292253707328977313567829373181046216010782797534309052263660717261561793366066872127970474965377554879671497516789224065647222679198355327996271800704099951514493768517902588384968462272976510471851756780081388675453444656886965416693141069409598639319279818302102912332572245913048217588934239992247948943173633667261319881643484778630478878745700150914477115657398647297258298963959552336682953294117699412387926309162159412293641694778613241525551148439763733623022563855503534652472020010260645308092019907396757463658881272838132658856958481509430927406977606518438950816852085171969877964346701755712921843544464195087915891392188490478075460895381567752635038418476952078383835843020880216638696618946706018566169514658177018190162685043217273429658136892833221224849002622043265230803293445551142570085507357448584258830986778543765765369112587942881997649933154631779343698492416643792483212761614772261471363584087698702254035436740557285441912116179784015336908052189526433235644610379117874618454831367666529884918650718368363757945270526699418517890576297388014700875259560011287686341326706077368794747380665102479214413307962064969562508868161091350275004278952440537040554051596027336718776105470865580715690696983974185309353474399007970856067050532641587028726617334026420108670490709090623297598964658756807902793048426063134327194182669492947835603885869362821245087442627801606780434770357368862900893044948141255389700027683780796783913653015144151503976828727477658480979688163984110802061635114824347726570803108048965784820809974975732404628520154719050439804925004401464556657847260594390779737604472759411948237268324447264681239720074833534021755869253506664527551812171280144223390683861729910891492522323136845603835896269969280734177687821993429523463930948114167178065656455387533518498831612489860451037270952881409786633569430173861020636104208442981765316540357102320755737481093426536373351169211866062178405505797722359178106948439076289622784099087488054630711109528615318668646790590772052220759632607902969922649867315182935529355025926726131226577917004588022442378842460159774978958086937133526639956873063743058873256205544526187767192087325947608220158477099624399379280362034411229226164503847570048093662375496055752651981804947284620000642102384379156458050786348423872235974648279649269447264925313732268469123216853762271550853675634788290659118874808880041431132093447339753609446270622314122452415318125595216312911022646563077917735887645161916211487895643229073444881895310240577233283386366894933249805232835947335783557551390074059214902983327040701164785357161304838753305738905410819824705689140635995393267573505330429492651814112095251700972382085575526706328859879032301941272186320971361948208481676591715205766084347129501784007242365646031069721089390424933939613663748314200351809086740849591123860939621698270733416488542008848462357164409872937006494612886529413599335192443706958177515745792438838902254062951466592752632118787418777875229236395965112028990561257076629581408931512251319849960355688332637717957631870631563535149475242899393058200063079297072430077593608291908743410200717096216114918389050527399307611291603727334393685741135089275309016816125058679506450098042489207325141171232037383687053241484630739285027075569478736676615712818659581817181208673645509127408309137562224694461354737736470576820240757054644314615708731187106798295203872675660173908605408375578026276490203479833975310086052085458215736679563429073418629419076927988926173579170323961117719829571074552151939895107251256479386896931066745970677288143941765719458060171209054070546373900359409239176192674863027456923393078152882743259550773664327142741692948752994770431650603675725567700282257381553346846917353477800675122724894350428063909892996439992480852175614573540791036684363097228493112159431219817877872895277165653761474876393468615605475072569136769426344697596354408476940158168931062504057250010826726629694002462366439592229652005678976870755733220341937758523817261949122840443523071403266763996773510394391328271784320548896031447250444430289188363675946619995433327034435228363030367397972841093886160128808203079283400157515383634444838983166242206489180634825520584744161467630196980231716233147756991838103160928170939247828975403472732520550750528378122759083482493260511959073311016893089393168519622811734576687601775000691005506618833919174705361735496131283836508430794231597017220211326902722043266156624174042335927827660984402573087580909958945156115937229050533958419166510333052829014391815067414032602458342010968007145271805635850232594256531568706491033166342545445107270192213581157899545847885312370376747155920671883210646134199924575270161713506938546756147701129158215520078783948252027731164870489901583858224953291858133659359137927341071829005045280847777567181945610351346348461420999220310240771888943007686933028805505704051406052928594129806710695482577537575900604767883190056472552529429798015944317753632021297952975128076113185036644169535327080645339708310478221620019175631967822540034128033308969671348636721215716699450487144890520167185803567971395861939001998064813818522779518988459696213844362605738240622618476077619006953795466546588726844130619136243966366707804043331138153730630200033160037404561762973767621309597049746324115720467709323670417180953256700713982981111229545249204809805458654140135245230897815407492143583962214851978006680175721833309634478344329545064535152667692193638774966093098104415091192954692186784424244974657655136433683440402747941514777579408168126795977643546721175624062162177758132016799817344771429822116110274481811560183868039169608666949314726653418035891832393547308196175427871659180427090174967913760087886926720890624050514916647464538176126058514732837595245724475626144496304036995698420872231101222380245937744384138560003082685476137912378813169322292945633303355808788823364824894682028999773384213948380841802702120109398117057505782137988030806875297190037747436250301766286047892412284593457010706271544384028145715395096927545221012554913015743225845563285564890134606502990180739133384128349489058008167414216499854642128923504610111334770249548631736829761934194202947146887001040263609623421909884116653814378077217878684778867637098667926473884996220979090355923110964626691634766813687382692823280538776661304047748063984003708003552727942179978043046504539040141030993497278503101568402137751745927444950215649163588730825440306637262559825235863720541367773901553745094197867180287992016424717115422738818738507825577390489964080115352244623834464398250723347065463649123948329822241021940934859412813616264373437794306102023222581410476056993609775434701619164149023249813238385897574058832928993656301840310218015029996875480112489628233688080650182131317731258057950435124282298939261142607150733064003768902186302231455408298317614334062667114979916004940038593797216777785344929023160952035574161396699361452370615040867927234410090760636013965839356846808900414589190429747261867919933345135644917819921465821269408834931745071564527570780380811077929798434971667315672531910217129161962676385022286599463725725486166476724888945981864005825179481582045788182190197123368164494098802165588994203457961273620041119817133290042012949856795553464602602315262709094372629859447114622789599533559764383974488848058662971050843446071631319644297126073607660448230005893482368996102279615526622865318430776392192298398554364328590508478560686951676137110384251157551985691164579372752229319437634768791309997544513603072231056937895205318913990418972182186515450951235516362678497872692885783508309244093767410389067722893949952974465164649473800810589875488089673901179857916808760929805928511514952766455319138612811688217805926272203827872502436781658153972867562829737935194190665919605692757327116483294374943650369902924137448990213138341723933226352779467282116267636964465927972281044319952050458123273748546886851161973249953769230651419422255571336032947812134117763229803509560318972881196471669034944414715699963120035385125846064989559124116028373875184350184879494057045557050706065967791233564566115950980646926712704737637056821402457301950892657483512587771574653991675899615774813690011520221819283273005655016946407732831988934023909473612183809214029365894772227298755837213509937350668908645997177773731797364105624950368661048272598378142011223075905944198050031214229691492736335286199597039461700468045357675779861081762051141453546068313895143722153859350230753725837326649082795645016356081980797162079103174500918122965540798623716151088788570659879994869058983526139797625179127282310440679184993666696578821812180758781026005828114547349881099636692285051263752780818311301377166024635004043976509071880737754913583788331825608384318229474621022061499514816899976023687856080556077688761651413625187067358117309792947863495689584360382861885014598906940268477769890110721443792211237992587365570108907324734376004100392969455968190095879623410468158475758986347432738733722576904714348231518385634125563814271706852210308256772662362047089593268341723960650679541532470591914867920628090716854642222684820533156478501637469380044272052385689829341365779347477400644346795643101277515372526636200121443146318104785248560778414923995358163165276695524986995861752367907245921233957420064574141728259102353924948969639295839426690653954677869601311287287258092561212419994889559730552073005766449850684416820742926173827525529936363204213378474498813905602019195184528003020831768157604780049659061594743723792589862693603695095671474126696809869076161901526243912096124132733656496554421308374430545885129635777198164264723252611408491412039486490250756133041619472160972432491484024857398195610229842978019270648692981991575450908901391590696708156135745152374224419906603555804136007973918358281713136818414462859145013704705744283899098928996729757152921439439704750948969929006303241388864361607395667638672092565525148466556651092203462866718689983400118807478963965624062673382199501404955330263628801660503301600650728836279031458263920107284604391073103372937925724250713871056356546979076035229168539252777346128741658133255934708373694429543118580226310058168096807618395194116700323117212091137573107532010267469950208553943967122181898292632745770626211112318546039037504845786852898189951307082306447110321325324088197267195201782992353020386899603322815223593151792461941340710081967539937717123020347834519201537300087193176346168042908654824637420108052698740162808626301552253555250153193434390348627700222898939056024193315008568930936426288673811915861755194470788081608908013225712849801950042610972737767373014756056319518441612924238342336947380659617297569622309912952323876312772405690980569489523236034014740410818503147513600095518060281883752002982086709101758265319623563066523105052623423927286692848371189367523837264421139984589687344869559844087916143864943458730850333364160956767213088956130457895483436021505035049846185282470378295523075952858226730372579280543271532924500751910112464685159372407069694356077618736153043548909579108966549356474989190054060173915645617130538405159927443333488896271352034213968872557080590578456315552642486445449932890695216232623987980985338338230080020342916404919151240476064555841617798299974526541535447679527447999435224188707560907287606488221031303379514292604538091792790179871820703150925695009110803647385516899508692586974301302367529944978323187729650786566130705924049474920799266962292794135534190820317568034206586501112783986511686191626347569960145696583844221611410166087225029492276150006139716480220636427323548537248943188753109207897270957810800576183709895673063214241306951739863628991531610519229796894650370654438684152339832377518352555515075253470013626605264115108177521568605361775501880824622447055161260093989196499013340575313981937445201376544277295935487030867473458953103930223046302766105350235495506084879135493733157750488026626650084575616328368821292495075857020775417756322684991183443959174735632964322372886542369878493767757736829743966416003775806064147091657567596136782380923506149776687343638698330779114461831061131687764020348628017825812220381148456722502256423891698481504524637604364855336470615185828532915128306631444289961176354653566862772726115851141450529686730011677584064907415584092334148246293371874343879752306230003945836216696453859044198169581903922449586989180236558943326473464404823197137245729706561977264575997856319331237304770871855787571063501365040792037218932317576520976470477904498460355100752035455954799815755805698462703803526081030768270330812289814966438520160339637057573754875450161956499077567559217670101223558945932168307014398566415156799693364303496776481927574958906899686265315541988150844467124618447875160060396692210027571002319078417172616128222239162841520566124787686462108376417414380898765529656057083516604424202052304028831057273183678515068432381563671369476389620357234478760478449042173232803402048490134832187505926712251691764525223183121731091479277338543762906211336143164876973335999601218337673444899105698422211486254278189313158559544579412825577849333531630164140822564086147133498007633200750309263157002034299504037742767120012270003037096359694770842589564713180596537954533506090970074310137727919701294838404932032159897941949548547973722839966827355795815364451086283813190007154534078517148155226197978628405362354006709599710492024571665368558808994726962597046019485718899287511405886756696951360102493884890956181682342377363086309012745807897853002994889343005840610025973058572042736726682624624572832526733441111398376712258869858434494575978498341981265403994187683837005547532433753150226661046514681258695144712281940365084479883628903626985976608116064321673755183571722810922726753913884375451094658059491250242073902301116989435121625478955931615178629784423481352509096730054813466247471575813405324266801120926672149092546460711933155357511731281083511659035736528321715483470565355949212338545672802345112283677235364385204645634909125902103893163588505815624577159815782794537353317234387486852543096276229722943573852250662169505809037603248346325004716953130568639659475750135751311680951666080824880197592878618982263747471732154227452110255794060536035503568445114167196811889034055789113873447510795854062407995644835320264759304050417965450439142196144260581539739011227683722398995478684749578259544202841445285403235053449998926347414301253336509028974199605916759799244890632927898069065924872034262190270648165180064353049684931755098630029654542648666470757047758550529515002770274347463581672276799681274212344943086184929260159641914996878650760049777856650164276140731126709335677643647053070484202063915841428559841963062874275022980722979003899312296273728828675265162114972113521964466576183852005167646872855731252401542132182210684571202999327236856313012313877225842999490072713913181122624175015424720605757320050357648479678348847933103971766862203413984289750322059678337613016794747817968338834619724973521859528639876035871673237435686067232529164957590545585429105458161671361144801249779922070947391730137280923508522679649975065225720267866472060562820435040115272104502568457139396026894978378192566632645326317667968739776194471284567935604367632346442931420271927176844010928709624366998314089661471128752024021279255128073514500912626392022146685813964884391140669745072003435490979303380923445526002389827527778256119974343437926981720057896115671269340844661657710796922966583888155919591549766921634665779367108626868981085635913986813920113462661765992847420673339210466095513155953072741021957183677762955099913333669209482140236787234834790511155503885003881286977757196961989896306576325449230221220709883038875359326701267336760155458424097710487444246510407797695515993345362890243320486522251683190642637209202824955848046369380777950072194505295318183244659403768252481357261917252653356213751565648167717263398821181441159946719832783532186650861041438788909618473464872739650328558505249520513907165097917906814357148668820579225869364238708429263795249009025110839389584737677954957360128032864202238530040945224871750377341320203329332920884140474620624793286659564461984412523127227146134512802736606973687998535438956325801053465482794714061716765560103976308981947353313928847997519847658118537763425279844229052338948415553056243888475086737154717887227104220754118316583025077999378027079818386658181122444480523223391800556446074427377436241656786457713026285800796149535783655034572412232774656343428792976424184803464697989935809446135189431895462932471322616306501128615732688964316823005786541384565991738936499295648420366167562460035939184307227394403876094478750074515376277372636448185415593289833393325010990988712207899957632448719536402745574299371177688038280139971013658011008099654048161936674529469404056627518050528283703495936891362955514851459221725689882279372107033479321585225264280760003151811133569228509479476531995087754632854188417196279543320825008686961318161941217978327253037936808433693037718959630908462012922029119145533638867918893308046599244931653181954823959842617401668857432069441471542746053303085002286242414354965353016887607590980561665963118675287611257747572079768086313060458157792484860000508924089510445880131012917091472031553080285760558363285954961070456018085383172965589266180298170351442060155694678029983423360019375033611917884366109254479710720018127587074032435042310343254982260846992096446594316221513831747105117316100477126896962902534357859849517335206630287471071488902450117442536389343646266063373559508641356006816812147348273462010690828434103443021624256216857404318591402578545958538586380775204840350213627545048273304174820313469859474775307367382529037669950550967143352338924123590020205601857221397326068721153555290829498243465336773159455840292240282516230450189070193811159812101251257963727591279228370055929236101480614407232580081037471686157319609242118383468456876291701500091818639172444521533986320388459992038914232910313245491059299487353083394992367449907689952459634735640891201546438385784977806141300643311613825655588242969292503224707300825902922679634096914070410191555054027820770509614143018965236238559184042810203341281640613742741858971513163828628724907322988201824686561190944479460624871528510200757844154347680576681588007953268507592745529241051522424958597197659308572952394731407438244937664703071350870291776347442294211349269431931889664751308412032653929704041148586238312187156595382354646520905411922427722188383150048280859668583696125573870973527097786596550619347173183418593356560777016634040824146943818607171814410852978804934506076509002227434562574956802558954254878693988205054828405444395550942526031606315434465676165056167673261579975150052554307038958904240550838990738547948628647300799829169585808078931389995716155992275310683561733485538821994652199754703174646999012855649212071962789051643288930148561430566696247412946367427498733889399954534163425464737191582231657095517700521335717966101031942950724347117255954579311646875438379500004687221098240027613552396448121603952164183699319790256203642434910430159862039516957876249543973815213400973805207311542910529934422401033312607390606215587421590154821821004230618970990007130447070020488271198784776882663988194784457289068408552147350087155932506638006135965494278419751563983316326526564665330680129688745534143243451529286355363461601610047512441317516259764415653760381154068431903638357624145958795615854608476105213091405323211654339245341203801885047971350294623228546045955766783415573827773735448723024266211502933432319785120939909209240974026455569435382253378737337035611929269643790737609583480610900948642602017671108770817131229655397934808012768449693364100597415558347912614305659922986875861052134120230942822714818249241949664281548403670352452921189506302995521688370385841278214697871616689460469808056501522003532097519878582232663861404485828499427312441920517824463930734648570831592804335401152890843005111836524937991602643143277985363258723632409189154781183636141891285427036662042873233196899262112867963653488477658906339822874275112335010832997967680463998556673774736131047459333162583027525801541712842933046375380170559653812082717074773691198011648873003011589208498225207512738533775416737841321077646627848828560451271813932384229050390147885814227516242577036782972256533124351771902572085453258735814923471656039265614237506904086221914005491716449932852932011616541033653382293242068075656530706480436384682754445207093989399095280134875001047919162030745769539938770523150347658960637782280616294413939840606792028428826786748475514453885941934134869494836838492138331257867875992813398102439488630427687737333140397158747782351508096045099561552451427093954855572337859120587777914642170890950411325200721185267913287940926747401630638895593602469538867360589054889525663467973443565805880483558346378103080530820421343230096039650592012800071313575646651507591672497372479433410119852247584067033393099324860029752839977082572453029396401246103009566194171811736135214662185640672668411942890112799609446938134030283458982892749023385051577540545108326031766111770393896283639726253342747077406115220663976078256267139360661550824848304080041249380851544477442244198099153970023263089242515223534274618426875244660638538593488035308709932359919096321093219764255720605775055888413193720612907498000660863672225275979194903972866209955904144495370316169150173655648863121548726732573341339341733313356362228667790452300798512550974904731022204355058229767655988620369269581596616407843801450509382039195878856589244635023462906827755283265617524246585064961925500984009885920128474080563590525785727076455407098714516661916531502715118343472947274039861405700581513855055198595407652053638762340648116146812319961405200406133932645419847441629492070988340266026262399416240249231003022601838528993886586528581055729113215667480141770803134061391192565518812937279625391985073002943719716177455483148238855975804302912087622292952398296426370051190114995302377164796442879555638401348793094640256204609538431784091939512235708881010325877354906821761114566467709756744533074405875964037551791568830257486449214070931735430515820967742303295293012217262599408297811134566497654780931490980946147433273869897104717337496507068737693775226269855060206894957140389394833026484280925439941495044123425077989252392148387963367672865215752603305702559294939259459031221792528534009882331643993945599308897171688032763050129708135338284854234991167843537539243821739614148203780646362052161299285549171269201457961933609883028065294665210061148751777428890887362942608934494046714776575992673576200358473216242930291109025700339641124863967456593915251500437935466062574410515163424893877849330253266596158411313218538046934328048509349068835420913562445544529549905890578248538794046624938891010677118883841957683647184675147460455768271433290200985031152575172526353970826112883053351700526454162070643524518342975284144688023897650749449101423663453301157837759604388182610930172030824187932744316522064766649564145549877550182962898182761508718999543594574016269862272804834001686948314025660883082604223100721801281396636283890912006626228004289900389302441990710145231101017724602496879979991573830104000098331415908539025317520060293806782048969636290098715007198602756754504872413161172575457720105761583581597381812984082336013947083000211204779898245207880260668667132451657153523808828633979416626479076503256215710306171278929412599605534379172196209844453363108692215262603218239773234499351173091699275380367751900068019569592748419445724732522400071799304465430533224509705471522492163965143055581696990322062340006015171644067664283316442401450094867200101226734497331458730948884296098561256339598779676928690094038730827750568154994024038054443845804040368110663355100195075098109218127542278742540604504014741927586126589527495265240018619863356953259789060676511427789659396941374826170551623399743143103372279053304688828599780919918909863507842748482465329311179888237958624713879587207671912981407315352717955102599655026640810142343461731001401679765915489942084412769027141527667418799139823728219410242062019230141923852702389989877946385270302424804828359934184983838984042965283724732292304589792962145728919049661608440629155589549565958114311085328716718523392450531727447588576326095814828374794527210108733376332461210536159534809132232898899329934297558664205988321720746035347099004539696142287086565434571466855110111758579512083512463671869222607709417700233069824418956177170634107043485738575513471248710158645129009193025031813805518626986009299685602416072317082208346068600920471448688892356705962554044731501998429966404896822493372023797398540007440733576359139598969809063802093160571585383433361045108258686081051591746487240465517775370098744449824050306441212146085179558046168504867024590525163246077099845836175815962576605639456929538973066073451152178917552485867426911173970405198254480194610243146464715134516053726127843698046949562816954733714014988730803302919219872954464350343057315633488943147484411526266588749280611074805980875751610577612753675029229157991962746623660413320619506852439057419322355917337799643371113862147119112149320260292280604050684896256019912267609812199094744255729427815383119117290978793435273147628848031515181277598814271525197922478858331366741875362129030968036081989116776321202494403064459473858200863623863218619280982452721027088113546190127492406723380869342468426475977041704908565359653556973312718543055570074165743110893355827164296469487181447342105952416893364484492780059772258163926755634641527719462225147831740961734728981765793179886267455704001795686695853662763771872269141711592391706770676156946077677599183846595103118511682556602536350168336659940864617952875433019764952991252790581004556883620721522238443522031805587454317840873892643746807956180793109156675439155511971499535830767475884067795087840089560079350216128372873016317660808626921990077936707610836627523326918271619361452573604899082619747927078121261904938708205065767685039071290857871566003943183499071017509902556229136407228092877269854461794123726999037582172117056145487511244654682703351487316396317033766634517763961804624401396459898282632598756055056606460886770984457323300619319509564576436180679182115606987206193187107193347373833962313346468228712529671927851538931351742945987901200489185815355440678936241038692979741129499309138563812869640797640083261900087690791360137186541858320283146554320317567003374832834506194668731185126013353825737350684166180682859989540788820496900578920869551959857474599623734916243544195443670269920263694875596819040607085482423068293508114170391801656361220139832629299617946115498350953905297698526481329395646861029740900472050835505424812464565735288179626173336274341464453182745473068485641812532374792761847555612510364800573097733292679087742897848215215119127470012240971103246723746175740038184653773218255053958444941796844983486990338679453287290539983059655571301730429970097483189384871995037864132616495011982165384176214832055136699211592895646818508266729894209072563669306440782739389777616810388209616371380361213692181712714342148766634842682542200974491354220729221753804236628914935153952739833517124065741657940677154647049766708243512714735360639789534458337643797172356395649256230731803861251977179293575293650985023540274971255947984282678625809454989633158924992329656498362943650500545793843592076204452857944698329915740708508555868234963442263650269658605643948732677322014605625724071706062860790129507437988006028335778649686813553140944979510336057803100545017923597313408060824334255987665071776045759102906099236141631998545002258231162147829309390288720698224411511868955982573550929674189242550255081304244755629497100495953342984793012564770238418115205796674159408182855567359195995788404019868808001535600883104188767977261617767586291208935635662061993646370649647227599145049585857803278533858036572470091149814681734821279458850965153953678371234758623262862298523731239098924680697345397520371017145959607856688641845637379297906793250938705586033052277827969820359568473749907953730293058891749533219031693328551692220464281480332039911419359462792014249105648293856504778013745316040648128581249168779271205730008585084405519312834683764042142313189233181468067763643476210602774790769156007800312463312678736246661889317595670133792485245275478518349118545783650710289755841644270381833024556779717134924302467704390270423300666469749715446070061443245135833477955060674677272760840041727447061601734124732008901466149383093860438790491287035315704866512326855397205598445186066872571129639802967435663719727424495920157710526061065178405914422503793817413383016513634914346044960385063607119014339672749934746507485563461038812228460193018328349082444654632740934839737876697054182383759811119003840500340274824587237020732645025038578265366817031216627122714531092817266264853658785853726576842446874169749437824303513094863372114182312577055208046456693095436065630811464516757638819478557168004513047177533470802900133767365529741544971522140118313682758887677635172821293961101948654689347633775878783155033339758546110087049613074895956573225468315882579958413044403768557277070441237515344048564163606315483472660517390839735906573621835494216023658235267855872187944893145094029652321675518297982863089298656120244784122045663992552967534867191445830672659712470573177251723075203678509547693975806624271981954836065243454132073508327862774258184321042459853706916391435455222376929423381477513401610577376909759454238845256055491564752480200729776713664925971648105955745413411401100192836735308255411051375555867562995751858399348005326574209751770245484372096819101063578051248833519240208455468777295674290817604265430486267876249739768918291312832046832123800394232455066350300360097026757427531035432076816617824923116537041690641941416756878004912631894338714719119568543238939801489876517000971249604005116491461063490606035487727125963755220728845617211816229236130629688655253025018232332660097975056696560972484622747238640809733033279981085521301453521105618708895202759163792690677743838184128928650484421107904211028721928189031394776905048575806392688495050326083309258417725888731078273748052566448512169513623677921884727963307344925027929863121276491690204461807060306819181786067386387437685096792344118324958146396133543277727610741913592995072716053806822229837501946105908836279228946807936060531812030485978859009706605379598039366761915715018088047968754054772850978917434541541270029737746577817605918367231344916769524250678044800825508430717841834574522599856311064332235260794192490432549229425325177599776282934398096519699374712821396436585173118166307077901285021958988339142104037613597752549448918455012926947444865732015064117222735968041668826630398445260109667528171632566941182881751673971422669208578724477803836832643566074198414541678369761289005466770083894327357359636087979703023761647783575681514482475130760259217025058418087906502920748982639747144223284013394344269120080922568554145212920570865082079827288317331609146549169413663978419167471185376456319370049982935681503513984187187179677113929037874724014775112919237221014529115520354667838457557417089000115081169260446066091589701322222617429761499110851359697141385195686154653075195774363347193267217540269377268451847752787750226174756637288593855735493013990426243470771491228930695660919035635630135315721917560762700032161058441534391610361713815662548390037259336873574391136596596484643867490959225090131656482855906083501395456243376110017136156905607811317843741514689240149486986723193756378976531340062253527479395906338938715718640982295075300466569700328564316951982843570210047768578648011910524975798020992054367713321416326117167942657158145821185629547377266589700291137449333498100909326381694625460417295811608073006957958137306061293327654358756711851368240770920225044491133379057665686312054291346974218947163519363885371979382683885432849939077877944666714677606498370980775035842948603744958217254835240148248302530434664237520405489046681746171366152444432301625914020039745374036342257384496045825422402508502488151905561283291215546371169466932373394456032537362596878513313040232310103857032862343657932897129909799987778136336170705789242072089488204268259238646734166482784233595602181187278066477904880458707263548571831828997849342718793202206860337807459186506180122196306406820871501756256346323871578330427776757830620054118292201043060604443660826368865924140631037894572661504047501821267674260415741097600989515511709084303787237763184438999698216900415893974046537610337523904187274326935272358592805024619756781294541984030926598662945248139005659613382975920359482341495860030864636268359061082012709194959858274957044633680343922218695125213993185462244211210118731978609555386476470595622563223686549692666787843417731077076453378558250303301786250147918616677486171130590917594566662703066752586606643669524562609147048431735139414059248171635473757598306952941289995419724871496456502772640882182823731140517870920289306031639259916558103863659016479229648149376931511136832838282967907496846524304598113920192873267295381185410628002778979947819118224394208443098399548997361504436212394678878276594789015001988626020121566483910866761736132648019324148463621307344634950111822341964557015317252267527762014617418717861933556095249672186428509852893832169015793548962977577322082340194166702511353905780005821254731775054201422070789920508026114674464407518388879616696342418731717111245843525250495961767606590784546406569482874542116068675909053573092596234185842750402227450244549283291822368528143979164046121944337376693934484588851698736752842337831913264293786954575039205074474277012288642573497431861436546534660218174097699856971345200436700330395016396087138719899469343219375923554652871628775814687391335706940342914433425497872544452600460180570404592777025481877678206588591869177208854020490088933510933157396074695899069768834198849931571165353001206412994419217635309139162882497182185370232825950149064758185593329471736937097737774617472212167338414157262315812363975280510865647856375207287619761930142384723057516331068068306992800585238780814197100870151132787546665631285201003378951866082376175251312228658685920435633189630884925156043887318113047409092778462004729958137845734493786280866782382908042449575994206174729629376808882715102403964065707567688780121034503202191087074046927568949484362687063609496922620947084310280108054072216247680064140910862008070732778555471702392049343464655400847771664280458349789736682520405423134744649969516998163180486633650083334070413393596631059395667292405985358835590969701846165541629174169795162715439403172262431778480938251036004289239654603720319191307851603436649904009120464437970564979991667045306531169166898982941281430102346545598920106694856968999298296651698939202757339967222978496024546812754196076888589302734925646431536818090167677455097908805275443003646772362422080515769686242500930575817213078644919351889349612373214915336371427945766458354412720088061705053005738874150786373765122585250309475458125624413378171701351914016357417517790937422748289147336424162269473776572233165950594261271100030930365959865094608379121109299568683562220867018347007967286045660576322400193779831954317545998240209728956742528980559084010841592352480827496084844639362326831198377621366781661320421221914491058585724806467593945859403496124732129202431249087740350388437924773436207824049012369063715291537703921970175405520353343977640404169092540390422075855318018159135736735033728301129249200231268682760289219376892686627857945242390859976453181139847021515086088791384294995071922919154475314229654528376846097752306731303850983209675813436958213976332959268410301940903836665285285525466271493180683098546871336080786289596363479243564203170823917377647391848074320596671262787303049057468140540136456792158241580655699103390574362492902188894246560281632618265146625042712613740136158296635120743080569873678584010235796357680673917778041757035796854445289808400744666909867195289978393986020932728830331924831064478250219291560709030736367363679394671107052963352314147340987538009463045849467699590065891246378113980158814460952463295857796528895062060532499975506842429620727914030537796598771456657906561419226418959782756124493472076812161146291656175193961345591022314509800603554808251149785103649143575375889334549897336433134152824687164618565359553736145399693301034086962766603827434820859756129377946093403767502421816991714743249593021816655896967823887727997712081542870416977411413032216450474281412538269641162444669913433158490230742186397709766320454890304981091715026430563051611831287688590318803983691888213211688930516788128619907801929560804217243171574466396446096293131375697661623924981729342337281516961513168758033285509186357772982459647043631236488704744111518292123204725122338112651314967950516052649495770340229882306461112282543380919537486667645562473827158622422370637012373474734939017944784942494966115762910621341842630569653965562016699169032205951002969730715269094810708948588094097433206088104494960024266268982522996558360055197171295114918405866058294041170748431628516568243807777142574479976219935414847851639328261829672150784619617288978843321091813883095680699679746369937614382144955765353710408939987023858925306439133184976539007797382243825003719402629610639402522116593756596857094618173455344732425157011475581382723730496130382170956414478055212409841638402349807621342410043690306811878209809804567685714434758356507982588737912584078728848230643632240935762121317222921990108328387791472104500028008544324280345664565853230407386897033616688390961730739878613397887005623317291261423436125384710624367911727338829877649642808191087687960362870564032933384911800468522376703522228245756143527366518479732166486036845821706494712968243205494823792786152700039426990287008382777272435565298941739438908038677675263359000407306070819294273897336007760923508478937674322242810539011353377534713255188877839886477869172022144525236037223340080753216903060407228175506962399395610056300498296309773378603477594922416680796117778425985575546973378772344424526510996407935337364986716767313789977752804436846662958444982294001467984594613251262770732855325208734188455056869719363040058308034382820514775487077500342471969643551851356041487683829594152332345444090812294508613575275590614103363081669286240685750625128348988234305688365793856267352867817831601108407141654776811525035085754420064868557807143562579617740951078528616470229097075908586609327497251715366516193799009310795499920056568254658095056459564589027248922501601221580747811206427787659241168490257053195904807288332186536166392823935153923048640782885381895881324770514167151592429582792062922804665501520822226113633508811916377774294208108524548810048216421414895791545632873849092801293887538721077666666855254481190003192997290010675782658036312390293252024825092581395352545188502358723563793823437144192908107878654642721641535724817422967896962753586915452702238723883105169632112366626933101474515082347140647391887906948331785812925007187798930062058774703314690973738114263307709658122226671471256009112725950551305203483123163742604840210916369504496824282637764960628621870631656443880619233860790818532675134398243495234293557428889950402859070387954357844993377500066443669912336816885434372934029758669946423812272486056230398557869282897901791946442190861945778624349293681426590836818804795877822834310719748998622537798109384100369574652417124824277331827766899571998548692676049473392881568859071231911083265435891262020197048836558330846156594041103854382345742281819855545153833058829353796739848227879611271004482432057470748256424074568962734489452033842559104761850356330407983824608541145100173510827138288865157436445966025742778016802773730574778156092306993487204296767158332586708023435607028888885870853389213163846489517706382864818567353658235367342921851348962605525000341176439055076038829843452392400926881794576781185042725128245391877515527909971295616197193835351373165401694198080395235499631716337719756280860808660895540547803828279885479561979354664653617605240236107490225035300974111338967053300447069836076852965648159622571532666429623332822254931964872442107238932539793055378175049344504821721337542832733920348693254388597901268025877874806801081780063903347336619019609295791503185433196901266677264285863645710045605442816683052976222946957953795841855005985950173955705728949305593556210739464636379358876972706792139546332659041572472288131608170384582156830526146035697440789502950971763498009129680251495608208437330047865808819160382485887304330666118491368631444271556114809140748135670845891446240816316940991204074338394793004125146558378476543274087797338050511421094427706120847752358453612531676064950755015297605678193523443122913810512559868545756508368177390706837207178295453603058381769723907244674693258871583149575833825814496445591915145488544440924465402384134694289736698454524072783399984248437765519082900741432142463092913807080915598269708152803696932197133571656306547360957840835342326899359937523150537746750542326516332541271029257812923491385536959619887692256027253647654258016424988505789924224459107777982584966175596833180277800043548036687660394199268812112206858377152179576491458182034861917313473849321454265238809542267054105758816771088793407365523424190757966438074265840502683188996669752438302977595649378544806302063080132930952342833224086857958222011878224025235054837125961674443008107374121246708378740108727362913130705367013470702414009093643509991874524407109912403877598390905233057532198934002789953311176824747372365482994993335304246095585960533341863807754151005604818123516762128434867532825204140376349018816274208066443547362044535918234471437628803236852537070039161521783652247001490240967119816881292813558926334646028189289726643923929021452590617037412288806066178328996181588791983318209736121310684454795073940823310925745327732601616186531392977530677051713115826196197306970710693434646560222911345098250189766975255301838105225380405464020621681253248516696444529471635639640358021659929414178947105941245517587309667963290625345769477644368846609529633885189508256620505029743040817388597504128839885074191778555468576456015250904768917316076307721176311573562370313422127108604699668018062220476319276790237336984438006602947671309479378377935733995903431403874176563887806226177386254481137089404455598497463445413720009427111292673493139055986959946708492597104195197373346351897265773006013961314574062669392592095938300805464854753112023979028243594202870374981751179831403304308017012102842796826023321582432194435159576224782444160647094335310728314788678785959401621672471322320372088542262418221667928749820171107694396935259934183895949399006540044288442513349571893678614920419447577248510226575882507972951424154980945915368290660122931937866446211080110485629488985842096151827416704226453677551033334929639198928657711486327651252640651141916913821072736621039737725881456566596091408046374455836595283625932689201679424104421702224256583657863879074743433728214264492582514733775576341342720712207750220386450287123495140781629790043495926656145369393920701021929932498297037599893783616011959225846544192960707582281259462471810103633156339869986412864297362542888641165449964839714326356573672574254206194625115456377911536194153905066447329210710749875129608316359926534742277863107549913794468292030820984248411155267595526421112985394779907874007929950484707738096257890415506299909511198559051705230298181268567687830249822856268045793310684082430494662626784385794470652288305917267440011648753658315327997995050868774588417511290873558873249192579826834788179237654274552916784341685966997757229719308180100858894960014152188297823301335778730662414070796448583494063187450378437326593247188598151451086297202833861643939336437658547828574701197861592347664805670515137171318227313988778542673989426681622853766072966942028774170036679895465384593126371845004943214882728897865941834778688720992769371770447209988165891684842948706741593899614387562313785397966085615908943956364979227502338141811257760977213150326550804953362276915329351860743728453971825250776072039143693123481170007233973770882093585526479205514352622415052090959695332192730559604925775523076992694174426076428313181684094105893762559219172349799278325832253730264612170988549909599371465229329607120346249360025542263692322204677847375813836523522608669852702070677681922000155305096427666184993688000625074544177680210671475379944443310442083353812269283957236658863043893046983791486053567881279500776499287903157047989231470615173203507548508021180988958881003562652979803399593491407292361732912591508276185787737424477482730784968810791451008002933141611924829435573290614726079289209275789825071513822431558176007770343423800119801521478398244179661129601350180154490774845658802461900621921158760887967313147971407346890920312171949320818847776209546521653726721568244461548765492507184307225547061330728692067126631154041399007136933460827230587962882278094096416927019040252450569097681880032823500053074853753872718854165897549526480400284784038456267544773364694192885313819872366246779121236812294504816695461745251834865432497062409859349734185460326101456464924503461736798611242233733802958159833063573169777748271188674736717067755593744884174585011774137059281360454881086876084478886627679881931663115124795034171511350339177517411378397823299468527636450350502512582492412606762877980990548587941537895671899557160244771141645811398050013950438691013384579948256072312305965138947255458684763948615695244251025643777976996058349330280400905184072794382371825408193316649882981622201520528380953792398924354912238661481405928761346414775499399684358682255943532822266638925781114110209357089695227637492067923174209727622499012237323017416544362869763166038874753811794576038211956115343065636639427522962495405445779976385761813113323781012842926344806818289009386513136151121723389765413081031399734214346630830384857410795730420677652127527251845717226781904559480921141947938777646624621018788125274723714074629719245221548040411995309642087438852206746489411906942726270409224731229148205640703974133635242396262963205390911689547503412835064204574797200566527987608481590953240849931157973695873795994451373567528614791125273651150551758067160361970343699625167813761851211877221403331458969486761225182970402897446334810404085314429808164271184149078170890190704374375364778155773208934794212140226576485386644993806274768456848571191677435191212264651210940065493604562494346891247106463904657427658123307294215790061934079541069482433413145451748923305947946047688271767824988689550056634684306436930159129689766861919492555425928456712205692438225055383745032364102449613100392523774753326655822852604383372673917339871596539414699667231891442589010912089569760516669800445722305766719508538496474267544373895678608398559010743780351694295925901592163803776417392612360160715540437757457137822796928375377063436802887315542041183402104758640048044057251978365811845673682563802322782805112923086731753900160063575851511193138253481662438046512279930676734880875969029987619380508271728620860426507569052963102157555126483367862755270757336440176482119169370542786110667465530650623188333370497992430175155531497849879742747346576032580349265615602886658271297182352063976114819662118095977282101251779288736248310389540619835922851030199160274976355628275068613798264913769995940174844742191803009907999396161599838438498877614411337633897269509176227869679230293367418627019266910273646309214863521385452925684997585212600826292530192598530543909713471147173468207194620871730777796558085287844162836082182720193004241542957788143284545799818410375074319883057216429204163962360774241227443439987584696231689539865919101413399888541488036868801465998759022745596175362750581112994687302364978762484545346039464726706314265608481963515801141588024891542626019389215659546988072892581569956867474401895318130242011601701436670925471935175999114474789494836045814302810186004089236136948757629522562031651438980546896709850663875978941256800081660840232892426568887052972205986497490701025151427916381246400094810762762947567597415844578691222848862612384373396274573773315556850301325839627685644135928045897868303799219352356574970030815662526051600214908978198257576154196738113732284067013815088470154092998232573685285962271109106969258204702820112703384298552530455424812203002739491192711667699692637848451993681955058584082878277564974587200247601047311107122524051348821816918031447639111923286278785249702342597921881846978885103263435602469488035522662200163132357057002116204673846107089328728146689465224365426688577328973413439764398926418095284712337321800882352483978790908299486156258527317974228658641710622128437172636660250619562393810398017874679111704174988226926853625992644837193021470671605751453684505060317561039467086583243460603233501606183504834458150505432387827960669526351875594351956424723690379505510871379613656014733801583989544565417674453190570425478514272703597632257179460541468469611702890167305012096099682141484375256277043069305767936343657405452165112616285096391039327574954218074577524312131473788036009925561136416642544551854596892316438911767111876211072090533804928419883793573293939663854048774585812401719354315257859829253926655109393212612374892240823853429211912955938515080319133736965259172338611910506836227234672109083451703470556697789181550668496383722882302270028402190823786323647785214120697698063546107418596964390188818174233283501375081639846406825236012082698835347854243689885486631713650483352795036715142318207631724062658884152348068687736070094297583994450418401124035892299778444791463974179183688939174466757728551749174977775113653326239150214181210453024354582225455814426306915518800743194041848575215627720266102835200213167748157892254424667732676140108639650302509546500892924948560658556961815837524789785159609614961162453215376883951721190483135946641681520803879155693941937514263548625070727396094224649563119141587974600439629583516940385817285274753737439260553175764636990211957768187118516167607400463933839330338010619417814103052899520486600073537156000590440518325089340648898497635773948375014243915607618274595403825592072076000304077182479911055177362919273760011097054414114840924811597590576933727882961160836247057110266196059934243253586826407878388030457220618859451519958924144391647100997526464258624600177346949484612940598058057625830535621154549119356313789097622963131674950047130288517605400201770952710308085668473136617718030922370576875587717925901027254043534523944842379251125255097197227124485045545450487212838628729673974773592088799417405740009621626278104896805827503879706171249373305680551266182589333748535141163942866416370490411016088891623686972557188273471378961870766282615522574426728071014581739328884177477199210544589538461193155341093521189021762553771286373889511482194450581035127899599827099817230055038633788592009756007658972993441808234070234694158060976394060352469279734723864858052688901707107155937032664399486360479257986441498725144068092362584818539302319126606857301425029059400139639809941796447961066560072952779188442483866908832012009752343785104423382756835968840957461604772804025347720021305469069567891438160866581030039430591808936374989847344373609825267786150145506598117370605814591457090393672186218743678136987561013231253638294241247872859505814179390080592283015653147245938320594461801770755487330755276998910646139062497200966455064891946908325172839026681042935018371314180239228468871630483426041820394115572678390243217925117779255756885541628477577784823571655449307986774737928453676252660822860535262537255842126266096391787371744867412830952853501738456606262624774493960684617158548665477288047578381528586221892525432548304045586949797137029929941527608798066305417439736999602276210974042372055387935358797119005418182773650337260876471712201459163872513977640634187844290115512969695395680029403150054409979166493128523210006643093735237891988376704606512089890987449527902996886522258162701498108023318889714623721268722368372261877151851520632531849144268767448511300847992596045042052760942364234092383100549878681688992797910604963849485833276020120810602967709198134658817902054905696346613552939231466234865635825943030296103065278039617177745979264195895564751124821732555702911146987093546947658267773720807733713918989100458339571138879640706145457691845264256466047436426064517407824540079567679336097477120901588997592053981894040423930196135861386127493331937724093872676474425430018122650001471196340831920948332156375302640824021992392012782713944212606341930472846525405942165987733702408166240329374115919095330132766246050573583742189762743775214888380538737681368472591202619184025686375523510766352422346284672419724044135510467114808408015339073908220501520762535656110665787277047963871634493734395829230134432083586897495059360882269986211501648475562330246121382704488982581381110786800060654420164867300703348851426604184997352171541231153311258024520771051129133404549170369179996738158395557800598002482926542196423734601104780016250460652919442744438644065937620148878377202817490652615925562458233026004117887152263499881409130222627479064657230357869251843286331022118360432095876085468833657445241724686372553752683352646666133623559250089746674823204251255755119218772753707762049235471264122136113299266482759642852664669062252817729719613211028078379105004442082920045023199243133143913110482211729783423051057127590707078996152375349572783161004880382417948591166025151581093333085976052829975418807747750756926926643588536813788585954176372890153231688305860494473661437971216990847512044031782469647593439804667729966846660703596646100066883715710273596317364775021220316660750803610329858960545226726869527432204229044823009551259499737150172937719042300051718862394092634018160487567200117908061986709265769810387174076589416838188602478185638279123926458358458510009867226360370671056264303624753189816123613321973351423507387101858664278911155789216689531791675969314374345762163898414800517400711181651030273418224061074119124855864597562010537123999226067847960919863173401474957036537677527097404071116191184594791645904903303444284701499268563027745808238486320982507274885409340165909051190349196576232969860207478117379195261018964293999651885097692863352225075473372404788558172091140370118025150952098498037506286558772333079923462504394331938141301977515302156977832890320033899679139230223419609523959603902915689948149203544445244695906411393792037563128061224218419011953911398749721950871362100609622137539921836785502123170385060051926544361500191457521573914928365405502024883216745389196592880043808548027194944083754843045104334059339887125094711134433028081056865857961006297568773598828712475396001220020480361722250453104803965748559270042010056852180745212676912500207044730182390306381909890796196899172102461823536501542142478122344172197085497931609956741408394914687715656463659524171719097552540215629289952159428299985001537485060519908444894386526161325854514039852735316296764406034849061338585889941595488746853755045958999560527317589364682076426983560937896163037092218013202195146547070020367201109018721804968386789680586855695376293138917241108215024842480514130568916273033017184142445422197565836222496024182117462375265236829677941239765075763975473232147031123108293078264407312858949850017495445039676793278275530861896745257639568935969498795394127207363608394701257726802414521586843980174078052913330021381230512074118192813992402079493639589888551233736991320272499669814330740503947884979618470549059469159512282928470479654586086784073822638000944143311509447650895040528373562246210855669109918284289213058962383918875737306954380309148635838710319436788572993680033278576172410390830400339022175165161728556391712143288458425950757184528439483643692444460833980031452737762786196848018085991818836551927546821324971039254145116998507164677368729106501639251792541056186533861911570818324247434930499337586776051113401521409487163498809976086363115185075852693334443417067434400369036689489754440709259006743728472040234040633670472020509367407939975611019924851751662542114912427367316145776781449633693903838927149514405810119121305656177047700888161778352424128953195121556263704880076829318264410953750691291184419347723175082071311643876506005028203263056186056085586175706496623819553509199604651366490697777452839673156902349822525801903837231519008621277627999534766980954559784387423619595744516804697746372670323361385271630629229166181345945366614454756596937656508885712882649429107881331940521074986807386028286322525067906526869404095445693420481996931809957790500547089351160709036936614708434311629190227965984715249793451158376328266278245501543916984856476667909828409610516372059772506115855339481338677957003316243077409596944681469472657873436103176576652706716882842919120413579057796666211315065748298370275284843019110275077002328322306854370471796957103096264546218252759906506085618694724098056490531298671325062562047637448628091259375240811210214277420373759695403532432064605035267469367037760044213831108898769116890905627430881400613524250653128470603464457931292462560469944479797414069556401648370887765316839110041817940054947146390000009073186572690513027468306152114731903177010926239392764772451190820371007572343026067991570292177746758139119854884420101425646627489145046203679465210158341574849643276413595743622860088744844461591509406611207769345656884192590414164741045434155116924665060290570598099947464877132606253499135593741099745308489245840620933611985386409451025523304748699592515455766541014230164168367944291568624156781808988313383343663837870602812040260589015141545940630415974556785430378245384651851461832094821084232404026560317620232423730616693575229996710636829664413495879429863742131443275110257915735622186735306652586767873676608450699320215200613385117123663093021174078176799136230225062556844573708949175621207794085858089575367197352171254464160033272435199644861038609201547535276397639903850982964299193705732126132290720739077590292109695256675490314161221806687676191334793322483867382198078426929951861903646271545268510698568365845181974336477073009080439127577104188338626682791223609957823097809033472901008936018935317505293620842438480030964969768266876929153058235601237386823411951406453214254403300171934125455785648706526985597897149377994443628003923102863799811645228424844664579636740853697181598369442715803938527296976711155548815429099692775849049449483492217950314974360599796736829321560680646945666205596189409266954778553534187056306452751908179998433550311102835593379940785067210349757925177122648957186333143230597474787853177679140195056923405314620908277062506788289729182071103802610102138403473285150900511721380588182618951251874131953641380453062325718904298758144009633663138120017794561963392661858037991706902767711588235576479523940478912717580528944176128624049554449376655141756193485559325239647589618139787839145389842264467603893450358135524833649824362383453944708639951096573872033004903389838530790007517205421948993559140022566421733470993722869640968911957793804765323286067546885736527410984615273092359410951599724914047864878902249794808046048391066370122902198607510298838961164128970971870549488821421959624592625688641675416220149069910452353221651979865180483342325132199473935190938908773256772767827017997900994162436473862321290011771147830943228439586657140622526357004844514017774735265889309546697250461291110966660573930285986752233839061477984119298699230871468523813338005054996948137568266140644649861447985830940426170291835611813717839284639404091002921182410370668038051510173732981680281732095802172725683340559753831718248118613233711465593023822188570011053198997314140686556803991786771016112188213491175723906357357975056292468965768595540199160194471795206918222244596601855493040607919367385051715804467356782680650559961945311238443210377282197244848994011273267052086245142557149207479610702208872864563988404733061291346073959279016384342202753050643285895063146328102193867139686360656864620547148458834771608112869488044711309490928196567660624203253895550227998203926629654622511144747651345688639576786483816222079792762701493255927604594344750995051024975889911555279365081374533785924788390246574234241760817904786675594866751618254459249602770899512836824382069856888389889952826442439843325076421079735090187424854885724472136596357350027223755524358868374060548879711772510734663124695398889233992607570795843025885163978266903159982444376815248850084132174787598648507258939853992324337718636351683627136328392649416368487386595799060388843012577755553942659758026370999506610293859496710215775834412629382999704870713495481143089238876462026668084181421391484485968597040328406270574464952931683443601937831336189894582823098339216171091303958007783657329174305757202285781629791287785283382823476039316117281704661637751258989348823107624044559951240383783047228725406728978142148531810639020989937321837291258344838864031911306268337303222826583489673192128233523060803984342986464894643369980008324151525342066345981910387556161649222473583550531454594794196983594451489343265774257717684279520694022848377545235145482212294782805284698718196800006212762291349250761241550762748498598415428509847177181273145763050268362715125712975013878912265331724850693051636609858113848244206194698766610723840388351262530547463519381557026821907858679284353303961064444448685722544280008063572342794573418163496621030558717322252996425090211344992367882533902985969696752533074977313546353987286096523395246130838727632684779545004097647345912108184396655290694196794990968561352230057133414770634583663721448115241585815707806006140598270254064637308815576793481668368666540969197466285172255061630606450717011698103265931957723669334370915227395807235928130515365876037817884173412305950608295989790844977172288354437258636054879419300473035781803838600238340538156234360708642510312765726216013118012460044685258351733678441615334120006925900910968105348670821874040966432232191484140970522088583143620464598247526831507438870061847185516772122609998117598511398886475369739634878044173862391336663374042906994070998784137520202071046946577937080246138688702448760834493542773910150337692129903367368314513004221191961662834108841902360081848066267800851043705158136822311641088652122640799998560069578455296004564175046690413326664481934370302488627430888881087022972291174220818348346311408730884962454151609659261616700505232495764243421096494581676687303744008645234450615514788954857297428866727881379834381129431616570473835271132373678679646131399771486465362185959536705367279962373984517361160501306573809666458342502373015183925571571555541926405522939291267504087003437992332460265647994770377049989098379504614739132233369948950537783839516023940620917325369332517528560241872054679763776877939568640623494514522882101782174327734193382893832526078692418359222102268196131473403267742979780225073870323234778106504998815079158954066289485812216752719531503265330904874432064457578890201250672292098172229168051270727189468680381576137829037691901475018364889779659766011186467846225825516634644760185502040261935058397234443053546918944381101651601394931053018741741859678621506625846295875796046718883057447662007093451025430831709951744276477102117545502219426678084871792670386018769676983537875250839945560282460630769866333928203181346938602185652639365098111573260087635041804489793413374172420963660135272905246198229283263716960538739745783128093493534419753569385364488282061025521276386113481694519094740848769218493257238804977265178304781388661539909856306173138760890952442854398522722465402444979431620680030852291669422512988935952011019563611331692470293902247460014165978573661146791559766463623423756457076555251829190873132020363366832516528787694523024908971546358027754323969761114312369249369559749106873513623676946676856425144020962920428952476020030844109756232864539589394964597422515399136162539589598123890416090025858398958818217045163742164398363601617881444714891726280793918505361584158188931403297216560425075644594418596321031312945085294597258495741160121711437577428339486629226077961404463727423888917383952579512753877864623169037854551205933209786862049767023591652480082543960268800049980178522920060824880517098356127832127367892423164680803807879265067077285082538746078827484699015265070357420040707062756551061364950472172796405192798078280141247656677352747611421815790770116420246487699736170020025011974049333315444862295776961087218190348940650847090200167120790895704270481399149497573647527134649626358056766007246367372422459894779541481773088387321055633631383599006276973195943369168165140723018219856505452448777633021505983837296124061552174095566934250997853327553867177096792254630130175095785780331381699338346587978687998256694044552283233386320124556419175437204362409129645441564785924579293234055264529976965368899728706426992016571407731659690574093343872792376404389170065762489653727919707279469948492377204632476460199259397599626972959956808638838629635149120167007680556573919037263073186590312710411603431047962840604411767786988669769021911706179030173912319982197666587750616647880286459071572219598036557863225773736338690419722155467747725096507034747755656180942388840827006574288669768015590216630060177904837202491466590771471057357259553391737235793983656524603684006225187552382310263204703348005049876387337569551234552075234349538921152456257972503375120225732305979980031499668406302114680492107305178708555106604985707830413118416849197302895243293281498360836763870696143305765324223794724042975650631667346139648096525052859761072798766419880089763883804132682286493814443788435765680015198574524797314040958555979118207282675468071707659606321273262467607808853936480169481168551067220099604881505223301709931091348851616641078671210276726102619978767964466260457354969634537073580939028042686318142980263029570718093667957714120216539906595883466383474484279888077462873537901134314270434433940029852119858422696621945019274943567119886082507403878256707527546789337160537813960568071337360426256628314721583391009717215136554395741164770498436381782625506826765687300667433358676934561717359779026467078120701778633378735813146666997521691639901547896022719085953153112346131261717091370867988745730504659847739827201691718368834514951244735287188559255567939003055322044996218905074397464163282453584767937513371053779002750951674295012317395955196444809181253178791181698406977864479545442818445037697328788817615906899305013657054524719650145271605858671215446178618591806800288424323097202748139552207771026016889759666768805135034869778773321968368575299598120203738123116007599858826614426568994792987252463363576478975528842584117709775853175163318017029757626480045280740558480645909838662029046206492174810903322334115010471712176838283676433606636809905959666338594644424175793166998416144358866970180574210287088838819624118799830143785178566884530389072643795244433704111722320424535471862467325713077405068776044829212632315184868997584810243247460396924560299473587472865298542363018482251454046957809936344366681850656464620422624281070809441186051178932921566491162328120942832734151271919457713512819828194432969383262401663213762891481426762900242009614070156869934171938836697407508337402347749578279054743562086722037811497993593503997499590986326943644323848719651278842049804758674152948243429088175935192166685566195197889341774648048933599077689231814811436481738092935218215369393587108335363942522143890675450828739509603045472946482204429464273528655880778533731449997562333680080015107450680162571845937786480089274165730109157213326527506236619775806502449493616911595432126064806125425279999935346010561049164565608427242104505547900987531395778196509127491926807962850744167910694859090287306852976501420042094603522919388750102348711710733733653279655631668170663820782286082080244714115944532975998540813241503262644786264385816748465066582285431235546139842992074453159670783340272989742536103142777498519721426031033369711860913386233488487051556665760537974557607411032442854353092359435009943886393505663637447018339045009807356758966303169897001155080869934153984775908071157289256733262881937909457319911045156014151617015102226327895367751367743653927616877844468723312812557238532029871880151217567533817387824696337906058476151562594059143921601543387213601285800463919640481130165939763007305394582330877893291402191514982683100050448538403185314541412459737026656141632419077618662792477535145829734522796823693668556839951533211646600623518629733657869663374712659042068504868634041785848205080512012707307522816821828520863315548667490131055151831714228361286684891458852413239024919872282572226332462955806329153665503614496469962212208914404797682813910689595457689800659211404800635399535085022925238402868452864408356018410088126622249939883391782417787433421864522204758571477236359719915011858059223486032878858162942460506669669098056343054075204093364808591977367783473972687387312870651119862713450884934567687510678670885130659684297457719414203006555734687755832357916158841178017439696863842322455499277936449032395071880329374787308775318771433707417083251135755408250222403123544721593137825988716099601518924168450218516778261007135298935038809466950919246339776252025330960458623102586669088423301399697863750315426694590504481079611797214072841251551047577806758363044712728301840360357390057237616345778195175573012872342642914792625112633319291182370291048697882344486255593743679604614448279132717085872482988740425353769242274936636720633474793888023872246201256664146421067500936159039968445161477270056740760272838628671185300036994946651553267533340622862090831662928895013982256857804096913194575362761919752246229186704082533020343293817928746003547624241763384346927535331582976282416006398532630853659726366894396575297769752325346791300753058784450157797563849570783431467648125758817563788810873716428641121516672575085341075376193206831114344754130571584444154271704298234145296620871395717097528105250874737181162667353076111568209907870716269930106703062556794051528780383467670125800738747514731430694751775609535886191689354562118533497930080579515903147049646416126988951582602888797986229821143325855389106894038292707872613460666382849630668427474722750293531345167964335559257598368475832617434128021530108804985754735216574426268408238919793038310459462930908010260815364396994692880342873221907410781085162284337186874876419217684561546298904597901057381505621180276159913313128471005979475752647412658499812677499568474325411847516761536826398617660898075774852940189545720981426857335141303813540035471210718364636796928196469320828850754791817459512977612052152401374072029360316746474393411202845405247715381988057601203584870206374558349326401354523675178152805912648390541050380463376030973811697440360425868341537271881824977618106448801382891679917075523622286917884568297591089631180202540226364824095311210374778858632694871094200181936550552157072565910422248379232267106946006508331782893482108970356049954646469360223420686577550263985964895371513824866596292388233629724055370796364218927842150988109224906906272424890343752745173684615187018364945814691590147629472750373726957399882976369459855253475071901756051011381533848234904431008034971923077137369281931937606597923035520063588632492560143752255076150477796142915227951882829723469760199240698732819708942183147742840382910766338163403540453127880637369570468107424612474711699224656178245242194782046439623695361700945002671904731529990893978479445311966809543541600097575491437993587488310601290356758425192801784306652402763217902142055734702355770385314525718191498995641678281122754783933410909658085935710806144341888882050555596024086515796025776574857075633927478506511377019542060094403209302459609500598900195832857030675647304332755488925254214734826743115831263985412667717300719905806673269104778389301210198872979354459803748318945010451945519269634637580251496324583723176330505090510060138224236863409124153307838100841530864765190146642366954197742940739030002436246815544661825710740856886846248603447137892384867107190373643934565953276514863721372802860605171903024430453149126975999468962864138358908818033242368297362527602781705976000712402360625651036226860814217431313815542686153777915413831316183022435957042844482245354056271740647167021497915747267360269707282373633748762925168970402157232499073729299575981512159874315706944460977720082075760380397981603974892882285268148046322432147277323627533352206964641151676873575619550717643815667014347438344243591496388874087100600041373578738669922541033984067402949649158846512794279204990896724326186881472037898884579631476592597685539060940055454026872819246209275305898030376112386677020010524026932512524925788812874295638847956557528369634467350110399092690557201273936934008666127293322376556524055711288170872080188883407158335675433439387589722653610449884665483307067400743233156247235217078689148943640907753253336528351249705235789791520452148254269219000731739877640156292580050612230008831101271108400902033494717112341394259154994618030472546142321714632660351967963673619981529097529238432208007702672381068847404344294730280788705987228682185185810940322981195782560452352228956386128024767109259122375741644498807989476470109803450025351798095973935014898930145616003151512398311096813706228531172689928549960588074909479558153597927078684312262528407307037730081646273479564638499251623470959508268016283669993065889914814694568466048536954418023023214700113792952280318099294066053012971706702469198555197075492264378122143848846640002441441166787939297040502393017475648695648619077686372098020996647593938885926027065377039083567931235396273696386415597277281225142594739120203051067648702119098406626965167200626404014244933801043115636502906573041617832864532818207190281301165366201045124520138392696598470028195079298118488711763631421364038955026476934903464426323623014864148124329300978836699139214702006318365846661451969463610230269697906340544797294793478299367786536693361009454416898658659186439704050819051619913342547065450972581267991452725288190223287810218633285923663412576478731786641982084013463870478937283192900998970693294368745225550663560417049269357577511896092786774423013213833104150078453386927823632772741433028314737359664004412904521502101955473703863621097887653644857478495538907095395692141376976753483111332351292514812692199275400639094814427392202996707008212987988956660091223523306102441274917546212818109661460572852087437391673210987884223790851303368134875428579694320074699904743134703996726562920104520487545525392497001931874664291236722870692934235996926157468231121768362319099328515339782765450005057670638415822620527852521702447177162203144033521516132949308765736048438698593020549089153154272035031799049987607142213210641701870361561430453804636001454688260576743485364490608896651475365287720012638875587926073583755783303263304143784565377049076307118907578157542952825229098094257569453393491349122943834859995523611305709748774190088238344013958609465311945198125699854856972179805334082063019220968785118623212609561731457475153248607959582442813688393271275755253428180669964042800436337106473568966871698905494074190978642123117306246726962339587723708703129493767877096579442631649113586430725969718544412897199945042480705691973848421300462689006512363845837390056099985065306415393316732003301341062820164995048086680308091473749230409082295131410238537532161557207411351010906542155282539580224929241786246825077911820929861790655434846057367616906078683798193996116284446991939770167804922119719729611958588461957350410846335362224854908328984040369940301155424293222568003407842879880850210731470533596706861852982412426079781907746758937993714465061424691943724089773913372700813702245264743782792428305124557361639876765071062719881761754834774039506344313344989668922595793509128295089211637487148035895540316940272764364335974229146748444823691389619987604503594247993990151645481411425435075847547115988566339950497268696186235568740362030370882453409697361256161383945067290923255356352177181599803263357048449272090469571016005422994006702838651381531901357869609779391903837689725249652892419419074235288204085641876850314616419403301104480207513588156284323597705190570446711561035340677251213997076889311497485173219649823187088596141545026175223454797153638340157434602511681521636424200278111915083321597840997362359706665383750150873405678519005493637823059055792467321270144735696013671077619887808543962543244364755654498430106698151111546084814671262051695511262366086489401785066637619601486048974838058535771735504007087972803412692457207142462238279576616467460198253414524592372831205352027843758929362141947779498041960585738239652182401685415524938841038515699316757648088918675918249986254660471253324038179429057732039966979782582065130875892683018845651624644105204739114696884315647228934839086702738212195925107441881867409736530346890227346826009529181218302158055735725870811525771901102712264036412693543521549947239132657743823969677879926413460382293326849382743708423161217037973717861689863748315361318360069725050021733031898706225452036469311494031463645231191921736422408727281020773878021735228988054542168615198250765278624136680618517856895600119379278022991869915160898828014501110293771991827220163848586816823549215792678227856595245637073714895768258378743990463100591625287348509188820648892987168905396314568151212742174538341703607041322054740037179419297352419138438667906529493336012702038677173761473655038774642093654041395349820394308045707084887187908450507555466835488428712949411332710038557055142399335062490289260631188210273592126179285630682316472189588852384401712579017611378669806043293201056168114940462587740084597643099777177710967839972550542709365810993015731221978271327635650461638170968373209959856951453363932435528938110590837693361470882234288242962808409921408850086521295817368205804109305371578815657457736336338662399331501011495825485743151294429959902692890885117942194303777784322100775122602415644568407217114311790657761435049039816101752437334484727697894844863289998954937772063200470860788688764961062797803210092054964950766685543703221140869034870019039066554032334357441545128324017889367557605074298689859748928345522900040011544415541363870804012375512507253428163385194409735619424299811665303175644071077192852945791495632202818706619183080004701439573085436591191072998917532685639734102952946180964799997548295549168030602563668367651446123104406800337610374402538552804352485326314621679929457947981508944443723838676649247751524198634219573558693735204448006242734450585259370375092699001574943724355868093648046836273131421360015662936924756339649634784273548433805870521669217026866260692456517252132466391330328715767067887269499683818730779614397905482142944614519328888991306182143675964087868134163630481879912667462195440639734934509429453945106210416694805940466451959030635711650666257601885516480389131161088008827163212632335386732987289707970363456558585242686282297631887782352516655244922442756311221061716383494837606714239769980045458419463783766812569197019510321517389340590594737508838405203568537592423675708470040929288144936337395438557484536163902772510691801913656116357384716031706541358240051244775569210323765141108672751025859052086835991267786594105549267690037632916227699628961567693924613128613594860010410936799155673367931199964694006635821346344800640526157902285046352021835538530226820157690218403459858949778801838439328263448708427425194439145235532645973975052256834006265164058738909073609089262479684361112717919463997929106866420121238239523677684242613165000046414765842018444743663290930371596247603148209931836084114934664344922083177816280288448275590443476019201907961240931209254969499356540843819972709666897800254041727670595684410505541202600130742966600094690988516140497086008911280428550522573312431330042461220126074859697444002936513993335211786365842175670686717347736589279612159388929758836219883382674185648404546533689508613711786515114811967790740074793865378067945878829735977456236959578727594738171006050899061843146991178983553169571291332647545886177834450781153058948604266058491870267679912968238428454055619661880219501763202144537027862261413910336874501746882881039317567521569397272023184934996679221726097182381459219671798524625337054206026232915021997630684155618582178151615761331388575207715530520304412823786646993347465039353292877541085519362511393956045206681591178287265803093931018333115219878911415607568158168791910417162934933749553987948749544887786306487644376660970492240280694801039961577882510238625350324674474087010129616524366392254454767836055363828711136980085034157158289305456634687668139655521054559453256554975259460462942320015131280065267464808200838686719371128832456983824691946970857642729538546232818832405328004482115639799242612193199899523578656562302193281854156627018012203492769047451209430064019604934994688294497050489522619906955894775738113307884831392050248293645796017070703344507660746855728758960879287723233406619648988814160577201704544044080476471712912977354496380000293818086804584961761193233559599394345278212741603113381034140709753940253743611689061286144976286894199910093621279302406840561649078163870348575286840762817428497327283368647867040066290397350253491549281679689791798977734437405386574645460875830602715827475490889292774231415733709422811376963773707237956241485233439117931740298648285252525221345830835192421140124145213966602152868449823851514413006431671478382413599288339178754853496623779213402760906762138047443963059118856255249856885228343341301164155350152344412887289513651505057326385167159010942588703388406453142623571168513707845721338008548419776144213100105989445831521507127417832577703046904766284145115109824835053957107959316501128962121812762021349613093370264747315259769204406706743288004991491417558694089478089324664771256765678230496617435064255193006664232269683432618592884454782792543964807679095589816202479196205608469992367693038322686291972200900825716067720569639126281086411852009757095313960131155305650037376613673872066401261724876551012932431057179851670796168484426710910198454028610323320512536932954251026901571792401754574171448869407408551570380988195104521687454540706676155358200575165834420164268136441370918155725821578893421211451822499609625950430378148322909419016722800126489378993071582068955497672875204951945710775031739012399096282646086429602467737454118044170046444044215751178844567524232010503340800802750582955800270282988460859730780919863685192173267981206979326195334733804887196669880246693862857924101953639905581111706730584300886029206564998359022861411282184761079151458657346876415822044872294562895350424272539702361490655420513942529734554946200381052726282742010133331375418553542003514895731156907717618335908786928551020803009161149327143671676201759897160264145515520979007840235485806247355299733230214868711056477646899098689487222170974315314722521601261066787813227079064044318223573553492565083059733252209718229839924926412787340068401494294324684757862963099977735566688585997942000607701082280179083340208375538905732081782391296392061632964324529053772794991967079301359029252625611543441907450607392081400291300776551510832039033834398947930650975506522183863895650114639188836479437815180893669382684521132143428757528230954126820505180747840711190266653923216256751858510574096255657812174006458105933331048357834930028597759019356071115509890666934835602155924235250602930181533689162625174975322500496756422766803485151855024944869345686640145386697634899542642746425815497602026394499702382168702919051190982942950727018208241730045444396012850995930116249652045759686785469671874137630302716101766764410598946730961562186546820950492804548580469636120421507220170994475988275174744257069973213048626271897119533452588022500131375818032735300197573760911372380789716248813316402529203918445611556665977892171815081831933947593730197891432639126373183156558962541791717787975645655980233878918249684290203751725251088645321331660845278194490668667370899461258427580489725603612070872849381487935200707278864317676689787623586659593363425235313005347787987949789381940474929860963961706025045979554454309266777048272477401182658473099376762334731608521065779736114728928308700373521502747604593659045895782781678381169673656550456334872190800372003875190170767634996311970102904085661273997047099239440285338519567403751561211685211294756076672506277138634121492933208416140467242694456736323761824108293234881963667899087525847866990908314129953748123849344026597592562972267333187388187379753967384481879585291810707913233943136767904890071583825095140444461822482281957692426615041540030323219026970862139259840901095316988240682707197046252344748441637768902890634678651324950752857707379969238918542976263377039631599621047945120080554896639051451467572551938957217600913944645536926101613151883502379565172823176237546843600662530883906958037377947816526469889155574948419560932296244253871815377362683609044840373182334652275773986142396006503838753286759611481378287884481326903014923519082007497881625423941517844036332671397846531477465800395291897242170441346329548750635492732851350581829045108227033785355130957714215164451613068583845742234868298153529666413163121483444451518119538672229891865586492226912131247169002415650635453487635265220839768883961944833561850000026330749072723181955599442028682395687990710729512392903506974983917411345632769965304449526222246739176726935000315748011966322087178555378829715405341890805346582404918869900202718652069586272972002538002207557364005515547025072016941606944659179336246769761866007504466651192473586055298988410740211964713963475858975697642128580902912071073541491806003546486532838640925307605803717695191190198576992339621713833409192084934050500483716036209981703967452533201632463857557535544643060782060751781816278898991866121790831093910678157569634449848035563930649260402129625806208273322412595436561041443821728886958557756891816530821187697065399029268942830199519516546162722221667529304714870557757465748766015714697975774947108410110555981801213273302741290512353380365057987322283640003749322841915053973349655214995397466015954735845536937050445983275462982464453744873652521169945840000706394422031497272209304659304499920155865955930221909287266748484533320566395685824103701742148613087225881112666229546755670309317333688961336554110482356489128622734897754779522599414887208377662615359437734568061065397961474488846760764327462119633148237851167890752707758065598434407083452425896133500423928607232190067447182659559678602799458133797422338784665277917668857505208462802744280784992646452583371701392684104687275407307220151793311763421074968880704629534241121399365289916538178762770406016964529534316441410083205528189804300171133650708454364414822241841396508959387501142905769764552899434671635587403281616227114283583024316189864859658549014873751283509598421018324540700723661123917960597887820312398627493137655700503668732631783016729790927838129684274039156640738751380338151719638478809357336961917460530980938431624821649994886464588833200018110200849467953730694627472866169945601020041357987357872516425157481006395976309592563252442700971513120794972961291949016178366460524070512626750319978688779959635490695825095333920109887222634382744974737932925941912898124828155208065798364962362376317339732390866244290686201100770942821164286745609157353138212792934423389421088760043136305571139185519893201921352145054747293398120846166991369478798039593721740075924232797026901417553570888009403698238290178587818285872288370042541277700172081379470244642758283263740859337207042696400771636926266650987452265917125074434936778774158583117356905122175896065724518646211821026138123105160506284172561270231100751749752998986767144817117539501776044398286359233196744450036365028440053417615221224326777886838526734402048017872605031815130870865023473462966453985419933042360850721341651418107046848234296477700495276147862033332127823932264393312727775974043437443296304649468850143269182573177623525329703207935862217936003385572096060395190531395342515897514183040756211288996558034549011221599393451493213009034339577885157826187978542147239961785204143004397217865200879464947533916297708044178898738438607862470579247021177480670443905275021459572115952077162252630490998383333560540350432570884084149411551261484009706067800409953914868602477501469610905030254866428108186605205463313451828477032543218408717381197516346607968254343733148127310772403643389536638532420471206065790043441028629302312247957170564742866043844978565440795453629500914792100834651242069621881851933785893137317034016580845916798442846877413336253768908915972064568458064869180695855886935777004892227199964889726948777062158340085172272931122256823013842631621853153251577242955069192344160062541325316574272502076138183368896688037904594652597719005152623793843670957655804680191531994994556138750909542446128672744096453157174389782850559561047941166854543028360862709090269879583664909898468029898355131319826707082517919428016372966624147909058335174104115653734477161813562812380598121029849687866244590241389691030249155444525940699333384655049785071506991129180786833749243932116868984623176008835092167978895453910486049919377052330608034887758538374688600532965636307075385645911267509174837486273747088834698445327976542242141229557210814962169362116729143450278843860460897429157607996782790874469964706493966278149924257165437167980505673777111475584994968816924007639281109506698763071791064393129061385361358087138568500763758510187679029242883690370720909362102722445521140464385215354003444374434263245975347533074073892562484195280736640499877380176906604030900435808401094072576616919042045722105697556491625527596993737311980641232802394936321661616858185493265509007212213332445933348281506900853833705380503067405603769695703573545765668796755012795671355802171728672572174327681106289974252123970771601389382055421294532827929719890750384437073184518644321679958369489616537542836603238970910346187755729188345628644737574537355390237073458522218709581413939267187374523751513988772234063278976554117224387598876792706242206800436789738321626880749468413113583045422061081439034033620175049374428815802625964342971245399042726672428161977867145292860408223239061495514105945221519039197254735233572028697003136397888574147161982099795931943593682135627646267110241852503680632807907238667615397666429303523864270263092555456936818939214016197700465194311817013689766624304574067658952782012716522336142698797809556988336383023764745117673568633831188198668567286493736825038785943857729614703303462365505067693576379140510925946843710590930112396324900286829389273746537873421295500134147272460595757027450709515918444078141908187600158354270454587258711811853609266168255536021215440730628253133065822594398950956641230762088215312355344569272797049256715688583765005892979027548314415532788688157026355333229853222561060537203532670368648001630837722483727717298731427555669563279971592783730372690994285063437024554687463528559489671837378512415766509780943832294882259083411235913262597775979292780063447867245858228603406544952201315030496178887933399282863428465113979282802916281862263121811562156682274760669645466161770267962981199358881017647154744424740084744316278186033307078774272942045781548303178057929921595793024968789782019138978694353568327180674119767890563688143772581776125395167016787983664812940498036906111466481335859623554943637960981863109849742531630799217051978236385900509332186619031333110879542251704832959903052932754695607148926481014776976184039161941409273714673791687953330782830168363130625726593905401590568878743005730140192246364213663483301474917397268725810850447864273719938945349166958529612995014882556608742138808567966135509185189837966953967922351371352531486086462846201637542244907695089482171341252894782374170774518876704047662337095176962120092955358574971834045571570825371090042918988360881338419538635273870829947816650195088218194241347023316373748095916228925847697149262772421068152000657850785436910861494403137279253116644840268476179396885220886404052087678033735331132054275554321024822381336869415788312090150549727699483728420709184020001039954206698440289881226952711419419104901750550887594353973995475933690540861004655655443144637468792952443865347292094614681154695625464553584313800699476872303267194421600294908256526971036260142032614644010190269849938909476818887893636245564448535067522732487440730108825381375332850648543712191731360172291509224461720267319118850917804548120164127328281536115073696317290985021688565510048943709176802406961028251906023324929995256451579129037386976848993641448464614573733165339735019291153950153572727632766314571589700592165684448791982082141993216922480056256258536181521466425003221202989326325664295433353798717055470901873143252824374772864815652653928459373243616242441958193248188523383525342157265751256634032090150356677618539033499015249760122518592073165795360888375139889525258317054774909251827657318872264963509701474973058916661275396419863511713569716386140594701817254212940821322277211076847890159916097545315674042337372032520263411176238390899663454154051486756932699857149685394239406403385613434344616653399409016839827453262582011176837375822112901412062294372758542825800126144431414233030212054724869951921458882953536349598157479376974555504365315765748006569601769217158377073436697354290449393958186546637083441274538301426893891815793978470490998893187467904654050023720947924765706879464500843802425320323392469482442718528934661979200184088780378655518889986911408898993160682838990029818931682195892723718275120677392530578046743620526090580651416150464409423426439961896217094114578577376260431562326293112548386260982445655463696633540055411121031210060259900061990352055918628123327818386764879000951003807939085128521655164225968756363513367069523373662686238385014306140030133689018774743762309676170721970804205024363946602424242101652771002658099092123052118916542244645117510061858263421757741162168901492212185444142916914562855823947769827775669130370686092598023439144892592184593700877007315451522259600454451273085369058379703031226148031817703458939218432162427245376819869534647084076446235033147603666494652769578604900864691163282981660846545972539376458110310233469740375872356025409708762939498838985103337048118437803068415159192899527280586833216705327184851647350969583093213801179605486637153301396290467277322792537230492322619092951044925819635310802645506488499729823398100674015570955936123920073674886631805113673134239191785599153374130167466314417144155564938070264694383838886321367421624939616042789183790690612262443896231786195765665052613696398430960046102479075407010661940988884776639791187024285376710433509871801395712004515370399462839047063760725857731669801891436801388853176476480502232351368592826022813829743960321065860082159084516334689175246481451110780500582827861407019401198037424274749186976300493398868805744936729790879065827316099309615276140048710900454982601690533163990167971330964124523869848351076707545511664058673061285771752345320266412593416247840617876507071449713255203431746507843773210218369903174178307301931820244393682883935302570948814588414904106718004593384221367698467640889944132720260671941305339221051733103793310526684696050784281838292693234457315391373931228815080524368920133003563315552273379986811410080697355012962319322676398920947294006193094385435071424248777226712137176112887519892566325526612830131469185803964479187333062704713987941243883314094665609473399987624146619444891080477252545739963296051760570586115485070596191253931308211215161635149034501895956541689980790812283434072856812045629717122615611150530722695714617396657375312617822292980749267502695152384127489145004512053687122794380314909016643765369301971828737915033154824506105664305839180524085827142921866508629451361700313199648778042882702815209317903494951232384156299797736060623245562157221829051419140610133391808056983722390660777655042478682221360290225657391263621434509080558850934031219282089059036243468257955275193609658722733436406940550712641525352872539987920662723534929970366014788349633911620364836679020844161008375534561381829080900123274451023898342390847907066110363037799793642092447909576288032136313344507422264384405246499129012149245019477505825481902485980169244249527028697605408259326577315559054427322799995145309566136247214195892174651159680430900604575557763205478651958910350551020880161231852001867477138693584411076492704807286941691271599579322485890020776811946431067146938550622565844979272105003224294736328238388905316186877940157797565810039148696684502992887048568758295014795267569819761990407948895491374170610834931227096552831673565150797007279673670948715634694014618317460735687870167936056636063014232024048601872186077470640697218485093937433456875025130530558715259553219227394145046896219763969708801953970199611789134998924267264268158646244727674119204964787220572502265002166342563861010170694425787424792271822652708586079589188478335756168596990583258787368982247768340467426904444944588620647897469937928666276445883422588722334044254598489625154649693675822657637645141909260752721820284776834175477928360489093186866928212957423916304709880926776738437445186929759571286715708848206708623364253068598853423508478599744458929044587065916710091967885223553701855824752991261699709532579620033039922905128622121413393549937347064593752293711443986678364042312381925048625729877569735902081533899648377484107962287869912870293613300562945689626584284227483263980365549741203382091902539761350971598394867562699876841767974119885117299195436364397894508527282457127448828671859852146148523410222629188935302352232714590643748573309055219249144312087118243081037973451386410379517995535102435475545349759261312458987734796608278312807844170358575896236936153049651293307913047808298786747506484222149319635313969473927771330637651192032114443413490101691569842803102594720755134278241549333036353970472692327347006290176526450455872450974434306371429025405034857134813873619741976711260057256289068946639883508636037831618785499050021809612085571892814043878571585063039373775070097183252775005805510705030055877873033571709055553291035554165823034493416342053166877341529753297080308214793343503072368339979225061429361846079303620599114171172061279202777490989359120686004139950658537279721296240336456454192279788589080317713111744454652324590433504561253636643722015613602955331458969851811686550942777078631038299336342689092364974241746946380180848181663617481634357117822605961281487262569954970780605958780457960270338303956959441515992065986194572327490281342477733502376033670609108102737468893251311747978935939892735453791834823747484598422118228832025903333546628301212972526358080727173618905927089992309232525454429404410236465610858981727571939312839752080920854500273559689702179147675952522901476018991434532457450244425530392944839392083276850931775575284111933240589360144093619865994592873319623551106432920707330272648589991013459315605798118966618142645651325370762828678611054678818493272392258817191039093795738995643289951985708630518550010794823381716014932061098884014729175743801099111869851159722942566306513058355467329987940751676469785092301088702989623146918008708403213437782679995644096281340694001309388407587553822351755271716087427909281734491707026493160454362840627438635219002826075748530546220134182190129956865079750259883420612245195295444393882876224990724315427477520112395869553498447617468764377649408795163719652953616830592347812489523681542941332454484069046707445590601533203810212092982427779335088616489860640622856854799419214262703199349763086997384393393623769730540958767916296893895012936434893071115670751100332361330482716428230865238494510982544578780313313616659529635698286367853565312778930112443897792119374184284029318281314858737084394945881392695539586121035693791287789252697701619633004706028156899790548385088185079223229052490719206464807808339629575376902942660132810854674861234492949249310436443401948036300295858645251865446600720059001686024458068597266608678759154068508672793619881877890043109623060239276863858713667453122545147958961414705159693802645714996996865063209753830957756887878516206029551897861961985630178127803526994664755075596910202215085443993686925829037473964682211136557878614939921936175826661122311280362097723995010914571366274713674544654484567111054404869771814782390665638615271725165219100084491212129767948747461190283134163529675189928837353578848726087798044459813746664360431071276747821532350570288439088798987165044933522390414461282181393014647364160459188292699769075043768158454840733595076666127980323781358177278108813760267503098205752294702425041096728485362422645687647275468451528908128507719074600621702885176894598541357448413729065375620404642050683729588894672093337592932383795996820182771085404027913066713216147137811163593452123935020191911253252517433488343885434282863430928517243620601380833583298567102473680277176783894232689956150832612146759434809727024413850059230793709443341140849833570158304649035735027299451033937263310081051198788336965696925870667596179338230058009033414737799802801541526577274120911601633477446047245418647630178207602277622435828785811397853881278794078574488561183658445988207031549137956573539174179140171262502035904914479238251880888442861570269731116367097422786282527927736979980007267144643982277921425443180067060313863211048297924295902232632209794674358981978872754980228085282935873571484532857868345399495342033187542785828589988015566128243782992063927185874881322969115671699422862102640243146211240359555353873964280222585756597627504759922934310998650483139942515188166372338840724513027940183975457411426780256811199297653785782590120571390086129275113158639707641491709406545459590086132130857845606205739944478801708180691372677555144130656520370428392302490936979471831068943106974755731130358218368724066337223843283569569361440560845910464685083214884332139968844755716740655738318090223164511279571591378229455340341175418729256119707887421289269150062869194082625168120606868838467399031908559702583104794737664274944358757186197225743533403248429968994975702291888284498580128534219934471992978964596700447468034155633090302403656858403159040467805071465477466532243503175123068366637430019026496126312393088059855439308388893464153600671976465688291275996815564698343237085896688779026006312094600035202105193408774595010430793253030136056327258815460205421320113957730449514968202984558478974729972142840985500442025368603168361127670495941896691508555451497282513094710012661768566568635118674956211122501064044392099712747345062658787751451879158566284908614662290669948716375355798469746475838660086308803328963250968731145992713273329260777795785995325339267822671289182968348388093115393599595493666258701100563820048948782134664208383517880905819584099615023151146459563901591781480666725667919800563173417909444539876698782854142472695991922248448487010771079189489706259984407609100151074500133215857775664985891821628259534033354208262640590801923709246028531050627463573310432025401289326617207836204081855875189203679286648146330207028096226118087084408456042256794556601111147182384386442320998185733790184734466945558705410920190753525883749268962083188839125185005384570350902608972867758889219436130681636990917345946943613529336912392137374168564226948047536110033890116628646029535807839829340896743713532995464073515281050706884270408150889172692456430246361224235253375512508435625557933979524227051131953846750894571539135848501249524687065569261969095346947476423361116126302141009894319640105082986401190317915256510831936442817148435290749146247996335975065365884550741145686563438553786793848529264694454322804075791595715256195904485417120712708260331257182088482755403565792447569075070429013539721868758380439954770432993808138483736512977346801140358533762733469481088544860738342937437497405505661408167941435198442554395904881023633693690511036083242894868063494347281819464593331287136048807691287739312652617679230842807320543942706366319523317233287073858224556507236837946409720105456837185148155037315130109458194650641134967032897242994939053970661802863731857825866224122498301419351278866566689077117631673657729303285690305682076373592094230267068519831734021213773970731349739840634930058678154169711416554825475406799712402940841665975338089240939499929012301901009646813021101289988048393563416441620709514510833890888543229583695251068149049949477466202126663781106213696344954228140440829615851623405881496918706997807967080772733557976883877585820374474346045008105929634771675421773206150426483835946280330792847073461774391226356227081181775025915863829165080368053987865026236457442130672744511343854029649248901175843435107729043643677523396663346573542226297205254899565910291155372668367753763344116800000286770182861190098536942510665192325777051949304272164546719566907268287731745297551598471876383663322545466036799054804774338773491577930904503523174876954053041994195526351712719197507307234566833012597882407781364010243326788022257886677990322370458117765632674625699934935871413633803817102704845794010035063026032568015281449852772065252810609875166055052447078652299484628380509499312558397617619693316632772227946082917201066412770917487309018892161540601361756211021993496058751317389959220755505012207749803391588276574727633839386402538273569984642165890983725950283484368812808541068038114238918106125513203665982236336439933222705305710817361256152474407588179721739717204857039881367104984538486736019128565135345244025113757406639208652198521567766097225105643807139118717236798076634081758159216946287789426912196483781222612295350246436930461612532487058276751084369965806769390175652406514410810496100800418697909094140421596106954650576012829841393447662619529041868155203606320515112069240524218163818715732123737020984785903845623309896332372293619947562357210804533371583528449858469856694960452251724342468042875340641662170131222753523173839018453451377644275816169079379771212014377286287086014357710949243570141096189853268126167411048715316295045959617286344364451687118633752185991292488907217332716446566986157793755902411807227951117373104466480137587171913568143762308879226220145153728893630401540975712633533271201525538244479116305896712339860254381240835732680178653875824238306418355918359603016525675043763205208026976290675412706350416860442279033223698668734315542563796635974312950326899818978162511827399812159789511944083729863555327405962054364290418792291383532225976019984713582792538133929085923811678616183478197507478422550350646432395641234683026129059071674925808544243348663681911372721301367532561650174072541012464745605432061956719493315947400376800046710995066716022406944195268209407086964669110346979015707534557933149858098936273607922206654066130953668155902198567164328358063701311523825008495205299088813661392018204837312237320391704984561616974626561300927001085634550059997690459620201815075642153060184216027878737607224701735888308353707556780685063764232666657841867527599598721054417387778044235030220682936472934008712186504383389777710140402360359141602862909670348073282962734553295812326161553516339805649106467457597576821336793083901617492620322806991714282103716327834601503598743526908238159045025732882749373234833452239623803343707982251225904962750494272325781699115450150190864042591304560077551350153352371884576492318713961200950851524837039352608694513927775543320931812271029240763299599439436661651624458502159624795159950297972430054726331212172746693109742625149419507388669968694070934520552080416760046882320012679851258640582748101685543130754150828876831248800060606128656558326907771730214638979136623007256602993160854664946070064234145829900899612303769995464691046895441223400328490237172971178316694360951873186271129922466620099939419853936906148059263579755787169593060095464694509844678144573842225258017328287993541513178833194012902723773036933893180340612190040003525704936562841228803182426738465701897367184156819036925228695392553712419926934976318260689037383497179979961208536604140017838662150009182112657931434477952830378907321136359069866956374175325760262502350887403474791884541404832935756673330695124027123584064082893599145863695000746393680382738013611338453607264111419738514811340619097050591049655648322437758295879470893672267187726027770929625860050344444285080703320699364594386427223179951801585011124436233926723723019607408517439429352347506159651380137108241804746191719926169091767549807314717350542023377242504346884175200879206974938216098815835469880882803057846284993140948432840603287110028647961209047134313332682633995643382363614718161440591645444628128956156493591829378578053583291030771044070704581871258411738215634372019551382756541885371632465744640531529126582952152941624860870359905319619868746067725300264077306341303825552442035101166060228150713818128646003630443614015921063372860608165413376590632137986572575987058637311785628441027745008635451212866272562260943798141295410420788927468406196014989421812658075123766811551220289684111733077172264778196248484418407033548042040845137733374263207746806855778967090566062764526200105434385821768646192032010842223311220889491699354593068118457306100501660001450031104227093558521549765155002755082562604019063971330657528333928030775612743888653899021208716520821901910477530479231236951035497724167054171724451172856740792721543940886624231171437114779948281604617493886809785971494275895188377610361316168666437254995931972655594600163602254065227193197615092054864006719529741443697663683630282670743158420178410598761829483311648143825692548900452364530670454786066114412260437328847258792941864056286875119378143848136761318947007182041515194110871170638243419471378751269663316712293374823814047579084779001513854583170050556917818111011205944602355863229265586434096924706411207262810056456956196554444985740747526232083679571130668933308756153909363264365285118423679204859206962731674925263219644467785506004197461235402998899809568089885094580797214277715738041940855997123058716719035546695678574167407320217571978024801089367161411681750477733266687802350139195197630184435808968363465114266285222431289692818313532007359236714161744371275906855113545347903759956979734565835307494789187044372037679603369086824213520473431998823113934463801029162437089764541805948721762125046342137993102130483758266409095221355686000471080124817425481107648951312264358916592965138150897799041267987865625484777071899454800349665255494671960409400068125124303402788286656477582156379210455085463290205638495189608309230685434534524631120107593945199452538881797021452477704234585322201481687486875814390088033083619694393596914209908540763652570970923929924081067373560217493793170054950142697786295751231517261548473345516661278491940632030831862276765411151652891799654289456171890997125660313771542818183253572861979355114761217087943925013487844277217371364562190158714396951260573956525499220815591448249173504028658621175715463130750344391830464654318439208544035732237529272777993702553382876206673419405206473044187395980922629760251305501032157593994151503977872565731197018513037950387587319971050681012856838669878815814407865183241738506320370158694158569551155753026775750517302438754471583625517539203367541751937219582389802960665174081369552283060873243253563616322841808364185656026376774100124420533964139235545299756479216793027559801464318393179948154235776918622146106628577306130230097644743580403221734524207805116701386987122623497303293628456964965353601754386764664170641098899109079712389015240178635147414322031402720273499258281391502978785963326802732113094557841279322445929126959828219207822605893021370011155438235142848670270003266135740727706591153046580494757047349325330947613214260699270639177022503644400897036195939272594182125006696615283048522779570845646127357913584221961781894572500694070375357664119526080539183343027034549622263502888699043218784129691639406467619272499001082994162870134451238755956688086660967356006172602615997661200398241817109152239065552328542841002611338883224143502598156882035580356953560159237818051865476233600031061031645639487570232137943196421672716931149055253582142556973934348693918069014930582939435571159539155665700523441104898334437905054540906004990382017689072063351473731381252954150105489453864306576796186346949564969852949614084387262381232062779340356779837977660657893729300719220182694378175321777678029161048669545131675098821540836982290714068306477728831972036558868285058297187108810471702120785806711601600346393568085999680833660641157069068910933126557401176481251650269943773659417477551288559193184732045190409431146848124450740559545623486616472402455850883859869750690967236508451709198433648766457889827995572913938246796855035852916167755399565993404444685537616580472939887393421170289689537124491262297367795426608477197126254798924274177077847312446657432684961163896111464855056172714463770289507392767662720237930000936612605122077622554185920748588962744007957153195175511801599504607514622374469746747216983321848946423066395066902955534203902074832050254947966933863971385503557287016963697873071876873631087991609333339115678886480001729674770123664291341729964356043883800165145599477911658668978967045899814957083467650961440334335745490710746029710028368274854179474032392073730061761543057697190503476668422207143268397136977379305121550422875258636869143607842406865399550264608388022535916529246702535201983648905436584754908174696592897311019777040833158221703083309268774714222996479401602727652346172283709706050227391629927690842079434048719891491083368463287538459851889682667255109969906913462805835514786114234366510783339905197388427802169544457666111780224606107273281859475310336959236404888808873194817548568098024722870142462215147288111563095250148299066244980752123347860280001014947176438644482319473165940947692041717417860335460385585304215367196763409246345366860643136971709353155123931912381302208456280807081583067533596250824845151277594782635034867777901932159998874141492277659625858148211623386394855464619361058889693717594282852117655406491223840576017854988957195543744106479154066945978103949031770064992101630785453652851166881601374096344558276889736364881726047784117783463261804115892152286812632245722556330224907285411558867526075501248250605747219398813140572625188409827627268321395084935164519042317466138630503132965460975438122633079155125400040760921481011490200699344448369404109487348188579487010630476260700960911626515431780733893931327614580181448806700659567836357587554745050714930333551502056537802195614348197438519520105918685652589401340040934814635859141931338236115204725461998640514393229454745979221500135197512732146343013205552237222118488166400180011497057933030567049656411711671746737356767116666931832008220526657497776337463962269229836603419873506495519427753052500612729528169133861330100716315452589823842013484078168831269731207612800952453103214617825277824798655701240852051409157945043802728900442414001810133657024576807783709834396184312172276148523124592578612452316805122625531036079464811375055276857055436428939858994836026342971022009207196025139359261141595360215834949387731063581789174287494162243148047011281715177565729934814789599644655236922205879967837806120991141402352873352310609753030902954314014562835726633181151632526223367386787076602241656912203457625821823279099094989655993407252347972418723222361069038123889492440596796094272410969819035047779735803383095293927119784582717888930706162098581540738612735201975186824627143825343537639970913541041446168152062403307666387075892403835175647060229464359358168720122564257642189091160603590416581814788619295440753985036781959835381104908216148105045080962164254061906025749259032149326903794472955628447246992620379527382260118216573905092554106074933417867354096664983898123373734002671564650797441315417662157632205607731962606835373361147301411724303817035734954121518406485611965783770232880733493298857872768353265256644528138715509161203477521860556224166971714379317912813814786370701753636437730994590383557319087770962020411694572431780208369648712049744663282457973661951163420996541351337852643905069291920191667265990023917530098834488776018351594677120003152500943482407936512612489155825675534282204544174356135102486375884726088250668472033792222691568544159118401694032698001574931776574611464262082787449234169632415113041807740782945732778488870188251139547935871540495009356049820193018123195960440469310277833120042158688320956751635207315375930948271987829033014747353990242639317374839133747288544963837079619184513470932412926839742628788984740017272137269642209982185356768169134174949049093108235974085047748001172916435048646189204958469960040049930837827155472643475259069251606326390210401019477520823312309493338623256103460137171790885717150138986329887792657809023645987041900010730173349137492659279448951206965721629579904703321775735015075007260047443524812031050104290403811376092175209317651713813086804072488521310368713491918574932652872726548466772787514777823497433769204172532451411935514095335061070711636818844821234338596812452001767510177973518489223027736599764821896437133796669740731897545224607323732907582079602496639144403962512088902799990243836362144852320845835411007742193828706840467470285184430224270462713147421185306219484241885857885271194434869186329436623669150842456162518966927894282052661968807209358969445756250144260171053782163690096116887024115334613655215864672013790986229249754499370810185519893394435569367498124221413074894727814598558201313447273819823879996088648273006620009128217519403796237666318382887226648370453927031664922701126821313205973764786907907259337741680277444011801636254415945103699855254444125590362010013487981366209395640019354316680131447503111807982054820545537515036162106098259429052877110744481218580607781400286737915242127346684925884320138267251557192421088376029885097041215308065269315980410418972803341178282320739758847814917758682905081915488146083707120233948609840483694251346827332424424343426582355920005793211632825849740413896454687033061968576498721461189894320373963397026579193720118644898424327028609634613580692923781445703396513672619816534806177488313121099475997995484440687165793425734866105256897872544327928923620221990117891033047001784280601180570774761416043974576043762620164921146883517053930693196174781977034063946117861744212803605895281951762575268443198303485253142862059536010722716553797556518140085664189157484386587268912862539939722709106935418206976580128864470742147626300807695011802582392476416873211672437128734558031766032197648474848770429314731648220507787597317942060144007169826781966680440864125167342884544794548668437019708067156233191189903885765986671440078749460975527020399120321476829259707494093266283972738845628989524203067258993114933567728517541312868589318600789423940255900787796220731248358567874453131604422720406927179369224769385065996603628806558952045979185832270152685634043051635061725757867877813146498510484495368252092577935098458671854323660580319278377544080733487977445410558364346687715085757245270866956607728212397946778783023821157209290795505745263407662633014631489631957215320549811357542435679700873512776013744893920651258936512980351342670085544429171755759350259382838465777354703061438107350000883035341030106180633377374286965474487626405848864588583840250618872729941028669799028104020755856149341211388462897002702011855947715708001881777684471755555965708874398772750431775369381606333000685111988304216271762856574191280364510685370063779900797106719395074311822123401244929753956780917161895181733330933515878283020631971218512560470531959264024533132066035675946456130902662433355698026641313778131253388192143950177484142534604870953485790420636011368056280895123095775726183717396050551188559682153837120271907490666031514505513267932297000078426325601830594961367876598117335896872369363500915857880741116473684658418548297794003681431129652052174751466978947499583610144649074790291416086247884250442831443170901552133383706034794938105913213127751405965483887490258328372562203248545874538386480886022365887711337846735247973944155207137290336948354755361303540340923129287547301912769239459188436628615396680809359333064400204705418173004667965973741350681131890375702655524678558376514090396962708713473479633986765166105744865945924887124946123113270626692236748483385096725105518360639148757356570596614819235713767546089505978625197718465537244903620857331900644394190629245084235536025766331971987811216130419575389703239511008449904386807469801596836963610145076566087077426225964135935206942925538118344953761702350030790196424654576811514406572717025987086379240686750579818460697679326171564215968528944531046673315155410514019984343325985776671886822344506361811058456211496802599867118349796532895597576087446748749302395378530373856874543020197903674530061935576670332186751743095435126423925400199656131608642332033442451405837218409312891211603467538497095174809445478007977273168697590156171782918650088171741759584278950098239807253401677487921989597134289111373337310929132876279267827416660206706550992079391021084163113889897691786966701933619076212708120884711030450779864423038487801615913888166856036846662323807541393071420071947859014480942674043390607052252945538983026782056278448111937959941539588504358791712033002265612553802266361096482508401797161115865867608280076716425977295900270828252634633134277977635476433798250867094723676079996270397974368040766173998108161738047194557001011249952952328964527875901976565303160231752518344080939949096933472551840936829690365115005118281089172980748873642548000409051622363303295963325336097878932379531820553914136909110373002980754594265888825142452334338944660475229587463340959023855397796135753506176376159337364491933171543943576154703651850683013775075012072326665147193648691186222297112946695820215637198298130568895212686759811709454934950571717500093509321713308773290040448570187601017281205488129692467834003509547200052825731975685216976270763886839559074966844783716406727165114723345349206556416334815994169931748902568215646756546462278488511550092883914307564294518624510190256203543967682821357190433210103483233319407962016515981783935417474925819800479581496907877059246190594749916922463287448716852196286036573054275953242081928385050120597894561543517177660970855260083000272592460152840929796480249747652758338477760756209740617813392779903078178489052997585878475545399380661971289888172558494117697995726700303250291424763030844092788807798502324399717848499223883741920052613155555866405721451512126279326987784051727378027286923276365726533679578655541637536552573353122156302174103611097299168371512732177718809980935344871112485467197479850366369391112446372761428350702962320892740352276372214731820938848478844552101121315194941224873874831975234949575863770349716210163866453830932270904379857995960580898580272529758954760513618028564392987711339982670869956134541171311353239557634662135509685708066332342523295196254068193506146710700038675950506790677678342677812784879138972504891950701539999323657327232196968608638208210944868638979003627477828488011622650539632669888437528195842271132613843370413169478173613059263427510541599155470804350295649821861263408275940758529815001013945700514275913997183507394278613721180851363266817238813727705746225922450630839701082787525870739492555525467053858840262845142683145717234142266443936642856434995548773054885025396910949778346344846995965765490316813715026837164901470274105882122441746251228345441869666142666949482233450146077920945333809469663593052020898299606035378896326447476864195789573804418985023040376084170938900812666545296871483637945031630274495958588975306999439548194888569000098081355115857447935488409735167328538425924125185883689471107489641299283455258945014793689891786027656089008667803624788385775661388353972442033788327940269774405650586618858742881268040035056444234455062979550906416660470344569286959104036361781868825968827103744485296648521877649601220584122424387342417530808957139930615522750391898487210203868759134728483551695950598169331177017418889586205902409552493647117731684753649786173669665579001325958792085061062129239396232065217538137854301856522935078349515447333370628320532659198047580099593644022449426361942644728202620395863314953119612756583606202217681211702370246094241614392080838059691113419974244153625034035559115411383271411817087946074603498191632355046177104536885442426310482437396661999160317617930183016771346901315241702474704259701552245354497204411315033119822974536385175503362738149104734186183634778230057670246334217479283925747575360540630235861490396810395420880497280208589366729914742400811916334439669470737637527347229108371844669847535247375843821895103819465902558523650753846320668469204307404540628894944098188004406675014494548583418013690756574714709087733584388569876143895090172068115392625228116773384594888475405905033047554025025412618883478297604611658327304001247773397653476092757670922883681681090045090110351759867204709269390064269223465571775615332552059864603907254891813203941860981721649026585686094238935134449749354053137786319604185729562049464825494547783466170224518915389532504554209812451372822702239656120591904113283119095292968515234409474564105499525006563888253086197156475992519583652768705963486260294550658049600459938536879412985550369519597984461901999167242861088798630448189320882985220427769087359462040022168682146091317260251659992780765166585722605013010629794226892344634833175271536394114078577704000412650158602351400575321162642721677354580241945310702428660818087870462022911962869426522438026750240802442224460449873121900334514462696617410676207762959039175922436473720489081570374021461727681747782849391459807198194893494366894482846139483570997335964786537039164553596378539720553467774795214038684554177339512741308008014336458292590976696688619570108448467883361223339966854566435153227236547877848247451801949819019161862649849214222064394503575344334817405643015933236607678984878963238134245439793279820768779336255264783414501412746207739684574197011751013109703129668608825164302945889412415243337493771534050662180412138318131067249767701497115268248746540197453012657451781311936872425848123052977469250904163147867813016225703088813335743056197652966173554473011142188370332943968435311813613117743066343690215631793732247765353094664562337888040423599990289553416662378454154837620032351596002205312353518450467024081516525492689776537489557019030620533684062365533024034130145541126761645539342343660268307981717489767579019597515957318086754734237361575127323708802248630003934188883685808819745633471856881081822472554752607190228100515985471422793345484593180433906055451124315916020368654918333862829898768871853347945284206823612400332891850840501148262242199592374327611840814578179929650893136669374371550069250745306700019645962785211565746616545420158829649328910921446794688925871313835621250351336885698359198521013605121786614669920425520644757918716334329375212733678411156548455142099302591019103421803721847657096044918200074196254632719533569391991196683843322814507363864011697171434361829345741730849027253779864093836642341335259828256592300815740725134558268558101411072812304452131385900436876380895906052568486435942477986344274274888308000210618944379560578353686030756491620450559403375858359559236415944545774944624577321603107145425311217136496233662866106879668574002071913134414581122481173122875029193201943293035381021794560056334163938682636140808004046443390730790340051068514644654406535809086624687900804694775781105656111425492617234601240324084358595359140712052031071233931860383350471934550858804933474696137042557848631719838022390518463949089257764015595852544881492153572707525896572919016740024794448973934431979261354925466616675911087793994639169667985485888960793334145875143986806342158897238625113775027399555010336978918551916129594612663024726357158429807985528676651601296888697367503917772350272822235896422240135672380957671348615098992897928168843624075261870153472909691640247604651193659919767946003760828719906746916774605589711236751638978440567203717485839922000297348099757629349115954262925181009226522146520898766760534271517134204439803943758148182826152323700296170954152858463091461141948897797726194599046669486109828357098114165453970320457834960791220648358463204039655464237491825505019093374792152185462541290830631295623576114125126822853225941227168103483456110113909690153870425278241268127918583120335278213613258773224986835613710663887382143342767323290107949419230838364561160179032994617941428877629781831240234917345383485680077583547186100835728887582813945479476292986220215897776696373413752733584616840129158014310409447589681296384417975868331127989067889105423524723950787866829973670497186189743193679365687679247297479088890186607854693861388651141746914363162853435226970228358438011412694074593431205008572134206211997284807684544668640005417295349144334207511971965775862399991857869956728695895780453675747351514964885237871754731770910879765248452606954775398060582989359580092337028836567431168963320067368086182756038726241813169537969495576907596568374247647492575623302920620025303023626081432355760332872690147418587510884449116006150746187100769011606615787834855771726229411975478615411532033599118826491996125482044251488703643641354587337454939733463588763037123389164442444955703310601654726904637532038568379709990962264500520475437935522478255762857203918306795398498803364723064408834563497566875447398560895700537801805584447209900718662070554120577775930665620666858207580118323965109416752570406166763967107221654138597812836644952434346243088784348555032485108185682385440958477267419019963345549432001292696133355111299887151371527960561662486569446241575485373017470317247483105306732576333262514704401613761347425871728239764967875441966124995239979198057589474470352368310912212693478487900003205807530515200585517297293422981849895020245271966763100140206280127866901199782673172032890362569900156985447123740670656079006666015123799499543954642502366874734218240369749330424018605077857701587566006298641940518327130145066714467422430543739730558966213962461800518528902835030291163321692371939685002784295463350598980203881855619959663289883766821378717823343737839306143294867920223562463098961172068492426740261547472593633414260228076647192834528019034311015690315818608036421389108289342416570685215540295314028511908759656982558668439029127701983876696409735247382636975050984182641742490312985294664791977227732608925384652617313426609400434921121144899336545485942956510097561868026553175244881780974495358211546533624783970343227313699890860478627855087605587232876294439508582537765906873140087935433751794052108119961806206584438596843789243420059291711648461877490334574493193497508767035278353834727912496124141764083882025008477732049639346477980147441942355349343248367554618900906884518078147299691282242384387441138445516790551009938330921531611501664344279099459284835546458322231262977953848401145384487010834804668705000232710497276104347513899516789469213587779038875524269916529564848708538642879087135621055577044985567801663861733217147309081737751725062795876591489570177823935279184384481562068322400431318634885749271387422000353834605387010505751368556745556226726559164065268870058398544592998234122669313092138796070030823103300044137126290619592221860561318009846291405892938404151963694118077607728591350556921954566251748457141414668862113356319090170211782241147963653819658481289669689656596183262522769806692099309246146930286158363083917639705099591500366863755383802835942891486236527004817099523994847549006278874837891388668159627286007254814832275990644982269873555062233631598474021692814474196546322279624789432176266850477303651848799126510123788827274074436895725465838590438946038883522038897665410327468141673058183014131717477947259541476735052419346954225149558874250440759551389102346441171552225906767687038744941173353560231337693083230910361695369776017240566844090217978373180118432393916276955718138590780088104525815256086901830868113133394039553560439430966068153420412583044423970808945709055303353273021827830666417724959766445117341899707020586984425063164539173716383141272114475995329663239262285819765603137802168285298573479337907813385356155055084543720614312049795587415075711619532922361021570902867185642675533663977381567309491726983684427757355595479447699060954003837396919690074479496284459976449857065461898050055210856637592179809831281104758586881489694853925973816329423881376482017562653057303465514508287545201787450191471923449427906828648084304975483741068936443097943075156137575206537509000805531493289042249525968494290067513972570468949617550158784473099562391913051406099682714976714832926198973268136459905396905376410402210276187202956592652242746314838056289201293596831590399183772263947759188947482533560463736892086342717309429100236540807348660716562742951298240690847147163830000701632956819651660953711932870683163775017593822908333454531706016770892792484199261395967606634232488019962144029815436246763267676739173534607141952049071607342645589113908445917722798979947319874053164113313579508896611742610714831242867551624564224940543673073552740098977063021824348064644359795466557098507912273981069942855694329604887525452497839047623487030205643542313447416420787523558689794872134552645677160515428888373986156811193957220615924108307627662704772426316990446315237134325596296947181000185548053029957992709707118293924523000563928455879406823317485836723632779155805741483191365346310939116656739340913822891429201365276943483027009637291561125813454224901751414299255433218433376949801838840745986938786519207752107619821976873745867524781184318188709915892123321136864629830500467629703641345777588762594147282288140438564319974569580965481761271422997524957220353387277478823514801869338113684110771247727938789213919299593274893694641802277886043587918863523012734139084474313038045077341369604446761405094127465556495367329269030942131745791243429468564563640770201779343632871004303425090768887206662117760269528903631360007511925336566064112640392593663553745053399479441200131575403782018470542937952884403430569017718907893104393063176573834162502838191544449073318648672824929570724940495141148815800059228994642879612966755504839308837792946897334778003213715382118315616747183631422215675350324139636412120266441099575011255726362712238448124797768948771959265252090375096050039181151793615523067303348571070808114006309251565073037007077994152274155413424361299274884800098642986263902004332695990683723280350448470424854627405591098388982784874146648087872863100104036367116496719253612428375352079785694444189662339989873915870522794872082713544832013200729152331561202847564850088928244013587194076970063902513589645600298705719483531303487513951137813417936784930339322177875819026134201806411551923965834362659994538602701742920011900712575216394968670919595484164163693007377709109116798708522712141625793916872985408530494152761792811364149907184747233206592886851211098056381650302187412320424573477058325213085061114770822051303798552490655069799239388187743622512337662295174182723497068059864550397220554470941887534726269951387749450091418458916842783448621317965945188233494335679350137470020762012064359409203012367720076291560391128069170755562208785965913357207864030136352904668446893125999006003695753249192742037554983041923425787792701361305109544808522755174224108829464469597449522334989818478137135984738020728984635701071782237278757160706012852605072244092076569343490468659536554218051702781837249526200064313913308534744339016458867556037725325759439604070287628067742271437103538357081438799356310284565403927278450130921888082866702636555862910965496951520919340192972026159460724820145966941301832297179023452391450419593461422561746420512592088100543376723673552568867659116469448928938828133092416790841801027834486565657346008943217538867987852716298179721940622268921782334955618191147465567854611061117893498043328588709259318085171922369484221204642548352602380445739724216048121902621770846189609808370325513895300493533427498934053871761593979540075832084548724961209398210053912846026330467962246702467943320126489387467331793609961871543120006440631344365135592648406372070983752955548137940890957893922548381852145309664894582571260869699436627499360294072906359075391632482974476396283778826390650678392310473380757968968318228029658246889905787326558092177904826939615455558856678300080239530614998701541201791248667975373591487693550741806182582554449586734182424983164034503692086150480864391501637247319917588405279316816085319686981086429571789781560459656109216366010054486374499480521560908553167564353267405200122033018657955306987574687050215495557676969621678525416212523751361641699651142164822817030040173221745984464345556966250747181643256140506670327076060666780235731795608394867630201878203480387454221991655459025535252004194236591427470909653027157227653477417159761619794711066375151905078164313476452097877634370872700762053550060891581793151227954598824904219027560516382982420869640742656620615250662953047866446614048300094851841202017181156793842302115407161465264201611562418032011518298143101450620415331170658477693332186738702441231573550065513048263694960490021063808430443141674587635033995353565458945109117165813173316821616862946646810710422356697376195185887093183727360397882545173887204543774919664540900215627509014945581540319703133305141981038976460780007702191875383601644051632688106679304566437967136422835565829123297042652011157094953101029404019736362100875074861147539795542219427152873172330678688336566217171366314327197829847781731842998125222069221679958070878782119529731184019085666626005950316579214005248157417475042904109782905824538270312658182623212749819718627147327680150526286046702993266241199955606690610577540214424845121098214853763109347217336748258878990089063535361655954974861074946911019134546518196670954016129351638899112606236897270633524378710264219915406754193624657139085766087774291214508846380772970656214358869713495432183527956083595404510019707166616212533111277836126063350177513272185479226179429762904953138950338632547916114774125857948761478443028418193200117543831372321642966599133836585325545153591656523592920053612740825182017778108808625495804960163352703904927371769392960824107651512266535775515725402193205718764296478281280094889358298356814903372424323861386618294757568195619016379553194245103412170005246205850966411206638665063694516591922495168940766696886329993615227300468886390325223509266490184334080040741851852129669322911423269352612850676406136942962751097644764358467593196492047365268050151553411603027770091200680293506323020655710220490413711998109190900090886897057107838481754820768592722077637147712400497635314323908681489177254912040286208391952540548376065657448172480791880262771068105356447324314213475503112691294800480452920280236675889863629782872737523993505340252914425248192008809337866421566893130774555680636067639861391789196157355495327588170270106701209728746567260567931444684624212362148929848275533689204717142109794919723605480520195909557941369491295250487908391864769276702283596341635723098323149137466468941341937286510150203771329189455205826773137121019549742151929164238281124190195162355939464571207770151438614397754075198615346920436871664024544917440647525173482238112431473044170821538172886713741385566666637324601591907788461315670590650541910739551085971969790046722187583692585894577388084467885560307621325967442275866199445950870069362189683461029199643589584015166122546908844768428438587061396977295951930848331965452986223463223805169281816666080936881272739575037523621421937014974184227643574443570191801502082266507508879051363390206184747427687903148658001374880912099499941659548537844585247564937340016006614325404756384600746869565665127391522931000620655929600125739135153417139587576065615919032986623505335665497389538791123711556743437282767288614440611784429746450815829172013719840932379072449480496271688219771287630467543017430154965765818167614420525685666181746786159609939480017752485482397414848798239216963568598099609545918656413209999155957972884366922577058366223820963873548937364250357346282360314195056199879156498884225805596297020912182120909036259748009660224213968559459803740443433829231991020434416219772282072051804855090878719041457086738250082138434482790450338229474799135301026705404461511896778978221932349113270652307742228947768063685059516361089599766331906870511337885410792083882265478687832997420237077656006890912193208622508068790182683749339744291245715752766857491437449921010152462442033507687404349323329247999057089366805698728288845674397722489363100535137502067029923484439803064944173606705656984303570548270649225199852228533567817589256026862136541442626173706284325014937670160524263160516132593658705866655158265882497694072517742537710654022553580503400076725319465101994565414210967294569669921739830965705671304016233730640667230761648652437164386235425313348328360479576774652138062870194384005363297860008611598364029355146942984540677079479422980490417604829196924377724002947625048566697557334725885612331009245288072015182931084187726866119533652543133926187421151870315568490702765853260807160225176092778401393132058737646699991807079032596968182792525332067350683353145877912289456043705187126455929606707657341976774106800589999414044867807668442957397539807290612244485438301879887790440014099168753959875578283442908008718784525591295699939190237556075529885338277252989365582833942404019474240835833835827107832407030013460187627790052565495126201022750710983351186591889001000019044901251381217195062364492068417438078949497476163732050671831335905807086951912667075119309978829869071664219155003720261831461995082425900530376021173396165831247093888020338848345265561710575218299505170560138570376965108033224517142123552803372315654906023260848419215027317055847608300818770683891194054689620796849998890324664616850372451355115749259308468582437210322498537360683614040427817776819566712049395183599586438124787581560808257123236516154277350536013249231099485069186419005959410551585924334120389207882219270204612737220511980410528646328020413705103113524379573633235464504460929821428433542376529675124099362297885664429936883306920013322886302393288550141899972557660705513722774047803077168629624525627340910435161375168280593346474009336675906510723186462911292306679805713888926537734121263397258677490595077779287621296464964188625060628267545593421118904724725152684505452587272888325360064890112117578281004234364055753466453621068888345736218761815855948935497316620734057675648109814596372190452388478297982324614909804915812276517340252041039695037287513326787020694676242258108214401598058674919902787925909499778474514939084109131012988829423989508535814568226052085953482597870210449806850392395054193029249939528895937811914889682564126186804756930907144130767055344838925910859605765017819742328070783433549530207555174179292784789918997760690823877969705970973298247992322242857702676396426737909014723829711004914227826576887057990991354569498524081121799803709050104937005286372188081536933648386956440513265824693194591924141526952460941939437637610835643297122456217070737001302631225597519730893095336361425174973716624409813484397790896122612393480361213942432026326083784871666916116407613694928211318923702664926486400332220897266451154328623375572759432930474228868083852587357989757073259122678902011276396255605893349810644187319748099757811077898096130408592822816143559344491600459479285271754240711446139421542386565260685617009768160896909537269713127881640750192474486961936703971481029230511835608553832159828075506589141272253676492218374781375334609082300379006049471243292026420470282710791184134365634882126712376989162728246349772136772790637668069525901090387001602606161144300759365865830473917500697444748267458966584215270540842775313746849404968763972977130966981341363677856458440406122372040480393932417930200469798536887271893120916305778502086705572377790351750209441847166273891158293909428246617091880353462918226937186881977843504546236877378605473050166503376697364879397485993692224238177217060299909051119085410978138839282094466420099072606594004544176349684587271928801613177537015082799360072821807715389423241646001654841553428398123485170214446142209499635427057519126889665088453447040217344748238407677485639319752868673337577136732756779613301205483870288385492615675349567605641217558114935893716304252624230971809185668181183271295413042024450771949804823412292215300473161079521442258775244990300719818492897737842140592372809406505440396029874241883289509447093363279964315887320824588392843180804689553279713769791268825365225498178015364308170565634223500612028641088679821393611881747593797716755719795345569619104386795242992402050364693927381453102535730404112829336572235010249213271239020111704336914122369361831561561713626823204016616160324701402124992401321530541034590247927119657002182248724802917990265265031259638462085963453947116145785584100243762863850440204690846189725484598902467562011969011211760932257748793991231863814046597307290479140991064732681262467124780503958539150800178565934812271457185608384083574699332413705120928640136775253395408455491502835268751947933033266234886814309351947803608241458941278252401339073331809324884065164634658350363025644480000674905917029339883808230093094698196753428306561717203788639272590218884733387733698184906398331800873886307993804943647956598253468719384836944269028035098851331303803624168593705654761273956962670095379189705843763199644978097423981343109513767404419095478654711811547265677763756770705287344276047811778902855045796069518933163060732451244170821442749522836422094090007948140785449415498851398473911995327449659935249515411233067924659108462691197661997183127558233579692260862441390304613536787027997397267280301789827459748954215458100273050219062965472069352390636832570391864727100507544374505852301541014810250838439503301296276235883752013470518142895587967482240884338010590675413584081124330387178242472950037885132254986556940933744992474147520004470122281206991136896993309527375798697376821093014708312151889999408001379803086123866463147062420074666603078298736689455559487629783760727978253619931280523339143312229179016813201630027148352667462565359884633230745177295370982102618852028933037997153596852709824976962703908133171578648857918781384031393636708540549773844779721043336063507367753145542586503314446753448366433807165064026120102663452991326864907199149657193537331577203296293245392094446417579629371441801750386203598808862192816206057629431578254862045090176429820258416407423407610398615498317009153376461935609658868118445895871345313366723541752223679012431482305849407169226154103650390941321901264050612426404689564621424223389429502963942374105670363220203393504878997948085696434778208901829054642970528111023760927956936069212785628655896646021056013648884285969539934139628110256807979396967855091979435901958091777566773288740499361677781418609084136946097200292746362568848623013470016274022219280275035481053740041947426239908017506218854027372016752425452181253107679155922429121900597438305158849758162553513145770969354040241188007586925606765450565449099274944521776203712441830969497766804181002289033682467687883120482769103441346403687069345596847471156524800078651378245851561344219849153342581192564154473148489300492180043773689845135798664462814543561942193329835417726580702152793769566859153510442586954074410257904570359408357061846067662244753020933290178304710384491366892920558493219860071566102835074405126382241806715147711799288142107842104372372399132955286673895294072929273504714361558979380724097985322916838273869821343465148599915593745011429781578746638058771329299867792910870349299384788036163508989451883188563350865102005027423292473651159195602561384828880506598788220075802253298366542027967285491953252979847122931569861873917635291728753043735768624147029562659044959513997679151794985506163141998922127933804023144056067755504620890304579114117286856149363117313393578152687029598246633188124514375166322969540837291644950781196240948857188387002065760606503272573850771457829170654165525752261276409485307999507792269092707936358301028965013393918462398857233478181043046677995699314891187858906740683296905539831560190960863859670241008946171354687684225248414647299420306529880455170468244259464990862576736251915545260956151714082377125952403274225653974257401562807339399355507362986788985225986500320691228508922624978892824147505337228380481502064769317870297028243727366061650402286517138554852126458337992137092125180029437606802626997014556431114318279413589248810149276568531331376785358595537628452853916332251849810881825538351330973817621075607733197572726582725792637850052245908248016947275677467742922811813371438382070232903405103268049332585068179471839012237735038341750751988838757708182763993515276966020459271568066141650992111263991287325278330526248064055014899092834610432825968505534671019373312692143387726041111271377901153763176027903804963468687385653377634968511254296835719480420964039199067522560014152790168172283893159136175710225678345177588518778658812860346998353306415653558953650142278719203388620306840648255315525151255844163004911942452312187677862140635586155086192174263785853031007187630663566244443568863403749194702591566523350179935133107760040130891672542243662870209389674516724364227861103597361537391730509418530445295058587255618647661021154988576771370597836328510175694770211271407067183015173640799513121561606330051677476862584200856246881628760870851244081751274717048707325231864451091523218784750391973919047099447738544133775455908769393677900954332332846196686969257061123651031418099557414872504141557067104488090573773240442217393590264689962521189309917342736275848383022493022984999135589892409582313155110608465664720568063233743852017510515208448767650257901700564779882384871406252217796629210454716333064261982090044021857327272433143601711822669527759627083514739431717164854760829446586681700775095170388225956041498921516942032726355629814512944541793902113107852283918470601937276514979442920889161814847792777936714879365743958066037674582903689467231710107783336112306775824954875449680541082801178252133793833993110736086792981381245613192199615225096766611421667921774930922497071206903777154328732194250699763088692451555544716167820611769837522450741314497507535348159248853849494374021638718066715263888649140082542656228796744300698707561193962310838849088291866820715917350052389421609848796762963692063946593307053803764210226789717763134559162363125780943355403419746483223302837560688127823462557995262406890712514355082430555045888788806162426334280724228510116800114724852186504474489043729733227775647910557103615550010023380844159879520455555731659327668047648671562051867090095053075438099617432145052759339483120138375362898542718563317001726818441829456735287856048976076365471252806397160914668858562015003802538529890638507200534752277150007612049403881937444390135990771318077747486252902445466567748392846999302194558407548685326743771070692978603165946278142896907127895188775443142348322755705910720562652392929195403321637106004313064125395285672820261870266956130348473460492190116508030996229672342637259160242352585728132813247204639510157996716012531161186521014349031095521556085179998007211990820001861512156602834411657068579663349606545234724610979861598941412924322276467080831816118737668317915550046036468226451560291785386058927672983932070028417129878001977182518910920114109699901722148469692050591723375950730096731538491190193897654104311357850531369122720691683962580041845936275436545047735524369973368684075339483998324688623736298787482826992824783584056929595874819686858386426868143790943736551556784715815916777337432100612561475187435614285562907056113520910489165128032894251131311233760906242931302456524498392754088965992206663463858666982884986619313923150720065006840622787134111041524015448943495350053533812877385197915022553981672625374461411537719748015540478936594248795243063252930780038549933401533304344891762270149035151035755986708598100587245669013159317749864496841861560192381221729716787484397559367285712161332303966553585431277723281336937114782924517112750165385866452702697990925702976611247868892098030455824380136947170939619256507899953869411979373710436280104735431894896768286126856841541734514847269997100328059317935092501500255080618907444962529757945067032361165541887666800373392717030028344165777375887560300536307154313572411228862223803293727236255367660621942166047469450112940580266055873326896653293253981506006962473117528894902175072665292176371519094640843660157008466421892103520176177549446950615749368294811563683786503566784893675354618749127360559524938562354594835753120193632358570714976585623768243012384886793663859391367307022494038307277756431059326599446025285681713877499842717646366042132648053650283112269617033187898960003203058837437356612326647048505891434306657564476716591078319170214086319484210455748949962196071924883831098517295454891970315878035431767184756751365990678844230745123294805702440342242276274416911622050495227384863156259720773790138243156043451190917120047832285565774067622187885221809193181448024142149490209388550633413302025871598849137421391903827906314744509517287501162089774921811007996756207054938690555401610395116944178600634450953538252012238854896797509570971943953545462963276269652747818814810489037772266962600770092669494042704955454988162547632898322919638061343906895217944691724644924976056024830822812695269396157475390368813311516566039655063170635171458347384619550909284191808533133121357910296098458402232653720628731440225970524460738454945615714326739090736685460001173612771229625530638704349988221565502658124715292684996126786903682481270741284847892235888901388666501475742052929253009167050824281379866776374606925879986455365106912320124914023188676599531753911858523158121262741964478236526878029940126863346487826755128685052819043530925751541887102476188085571841025446863228353393051374407270532807555118046587410152728299060471222819059652082983901982832190313375708049813148744087473720814653546382429315166251932590678845205790113766015238551803948455060485802835513552440903384169307628851881132226020469413567672572983420256439569574737990056607716733060587002694209750053112779810645338477269218635274705317344070586339245953860148289370199849528089375243820450213629201097211573134912549814214673986427228349735558974542879182139298454027142370761570659508822240812460660349479106503276873494580478981621980127894618883736620974347153987180727545090682073600633310401059102499225303433447430456486463727119363397038839277171530344218499363923309333876345585294185050629408633208955657914169167422070838156536572255504042533911660789409533231409180674218664299639274907035356897942297514205904577890564842926276283368230221068886859468602001845835749059230414778938640671576821690489643656751516024601416288685363959290934890099730251258658969678527641674789419060733221652919955189541185894891451060663958271176375381193877012270081819045910936923661119605623417359463113431851673205553903808854207978901384136078131429693002753013795185863687445237598239061041903777981958691624890702140052180688617808898482979936871263510944868523239237367565274890870048134720759815264915494766616462482841728877054755685271060574999231687090363647808865711249249407759193947022926619775528091045356040688159360409980081836756023825822280124727925286062323150822621335493950662397622653800417434553412046614234827028498422375266243126199116894566505909365821159380355445421385071644914057343496106768170907560498937648372977222768013723864169552541303616636364859261114724362870808304262216716174778356186997319734672031894233256423879072600169490151628269460897917607951456051856434212083704107969238930002501736123956324524966784702914422091617529697539097598693468471442916295265580334243342805042068593751559917935504292646521227080395704227669776124349709529979260547899191354482910289774262856770677556623012298920680728196888875923079817294479313634685032604754759268562852153387864082215487101425213661102919791305995865974218912602250676784414580179419618790442075694306870445111867563254161656043933720142273041766550682269107867113969178518960085092175850336218683118876082254041777945210287685814704286312111091867497434018517373576442887393019260584890695405211616031891271322250838866481642607246509414284821708957443521179770032596354951264907096805249336396855456683969809059835930341852094870887597465510629528485833487052745002355554413871257339748496974022744620743644005428777258332556951859705516911535918639042096028336444877363094469571446096355965676084657767886302534459753839370024847466446725361854243319929181937162129623514303220872342283346948728323410552570021357836291800838563500802132713760630628837940113818770925566039775347574030246152985370452480630097843189613379051024691989482105437333443792363841434716292066417433871503377571237850913185404127785148485219631559505037458276315698514533732288165453754162375990832374087580172837372814893974446831115789380343161355545056879493679269277706589316954179607372624138804577451161096964554653313606059738041578671078200078307836495540592468036264551325640561767580371790485540751658205306673342124527777337346903709365362563859101373525356463764465898098430501837603776321877392183318591737391018998609086551253750423605138464935169007059798131101201266212880049405800587907470426715959529087663627865022351086690248428088563020335022084289081516859619471806700309451528986065749663988150901482745483381909821380183435035529727747703119917458570592351015341427965476676597115280428967955592540007082981160099096112660964990868997682037707334504541664989231467946453450445061025824138400498053951285057382304709704191170927440882487758357204992789852819684759908301593824574061658267548130297861914611271361247845684796642912022065819808496723045105497171664399777205364686943912527995233341197435872555361548999721120911460128026557365012939903543757243247811202749670352460586303622261956404769958235380496200051233485990707902676535457338485301695274157861172262514289889289564592617792124878608798416967173332036721640074101975086950798686443175029072616481900674411790119721671009221216470896846529635143048413528344443084434268602209719159091272180237433696475549866222164748208328872399347027365597531760657002655823347580402490693497810623617709992127115850022918131053287404647923101783983879750353584080897238232920404923395481710219996057647877642729416132996006785746590634189674615122626775546913545981065470747789355388325467268448854159461109913478437967861379766493718751691466653139070367518916261664528524044911828586527283726828030244883018996872654305637740203863266584962374545151632684015301070803974535183211056606188998115443846090386851340903858041074252438864423679369106663130004553879956955045431495558872803795079590678123979639798654782111904235411991322084865969422911902903335229379548355055522719051752357733257650301177677275438745190698545440996065967419517014602149592962188035139616669676938944891274590799050143007159699737323058994853678338701793292475463774117382024342178423018148138699454658292069632599955680209626008777122324919469596253293473869183055505647425922439857460669287159326328096239333521721122967394652522872896622705669059111867499468560399181809244713536412042891528867954963652817059971810567032130341946708568182157996407318859886432292421724486877057599328326200185077967479728610694846804157680950521467637918510604219333533098426226602955442525443533798812008647206453803893711940475112590595369873259567001044467821102646253205361611313760857987693992508832345972154975230712822956973850503141950562171279329094569083968126552102951799047972838277191135906480978390909437974263569921967961003358885652659919588776601377695042807781614948558751113380450522057866549962442860297756240446352994757199245697218179775585927281747269418112735070947526997934407183564912848099812215125737237933359532342519796791283902435355199979740706310638715070653678688035846095015651597929146922900322117506706922300932135838779765076158681247919632405531194431959775771345614467240741211938022757376164943327659748874393503454748716420590707528039036706834843753683945439886038698867478479468131172362422505598189106345314653133662844819954834412388285759193899203899759658715944762785482522942498389738643991118369692748550452884931824384256117648547644689996017415214299679307250813293188994999219258686040849196045865623733864948270491309481999062468374222572049802947748822431536464159770903566269582537901989290403416187577673416651305874691280742926004622149901682066591205102859054524309879684562381638242699753368188107555600628996474551891539947487757499485084693841092769502625407107954689084574410483167220074650389822521541599841013622427661919721076020493169195534628231258859465915244820850125723864708624913655152595318330014918173931128981688430775327164158590620211644883983844882881195301281632222198374050112659124070389166581949839766579607123285450538319681361200089809076381622502199976457848690401508808949618987112586941398634773558646899935506567620145770713247301446743676946692936772997473531863556899575615907212747027131424707821378721111119599566041689268725194426074114813876544213319249137393452546324246221871657092361410184924003113238975992960649659076807792024574298777277840106201665735641049940891911953346401320945275329068833621812083050956634298889207528405456476442067840961496508747616750229098131709027651606722093181069081091314404736275935789341946824806933239701084831588663698679163159319003505771060720785049373395693541477414424217639616408398621428249985965110605846901113830138550796301022307468490244437624132874966546846022246171679901615573333188261505600181918248601976599615616188431591124561298815497723223517883100706532720467037277051646436027724339191176140580923999001674540396597659917299433392803080261751664784785657592913354564000346017388101768809503996003601278198175930970177291021565438660306638338503994945554978365077305485597233528397428994774845061538419103845501813665953137864821324044697445972684107786074006877902704680027001281910899140500182409459729063754013996178070930407759445494165996129775042733372961238320337977447714062563288622068762941360124959337326244423851977509745557492859381340275837996752451800702900239801783243422959625364617133820509177085929821979630842671224551729190628321714662860668346099374161984495986218526393245241519847672816684748571840842614518221427465793058234274253791487576825831205898173869079268747448679254287375105559222974611013811721015621635388156835364330792025391099399304874094025342181411577479675718696168098183155714315806608326403656945173116053402050771898488454813210338970238762108090615322142607876894869554357225208573707627696848998111912556970671012885434796310920202767397753017416732980066590489363363036508845692299514237033145370171765922025635885521741955443957505540371255582736377816225016277977986173869505288242028535137258666353359965642878009264972073138338222440657504123898601374938433130535677043507158756123148635074669772340449434978749016434466422791074388095600658090371183315931736573366200963201838388690575408035165470720880519236128283902962036959741989472687990337557290238747621151254689618554393590226013151128243397807607977122910357203351261519166053023016526177915149853162630721442303427039142534791255918358247910074601273047491403046461637780849690972891323994324145927844345183364665031358060948212320504415186580582024558372355451751415786268747305640288740034943886799875816442704838816267161965127729427193388489178441177989313768177143099802317305209970382270055162852203599396551125298145097949168559681199278323292666711403897744310997190550795845671504467848277895408279479152896782268127552503680516319257914010736451978650991679309949966752263783560062369082942715815533643924800097885608428039522755610726868163569179756190371852089032936974116528640194083159769931664610231845447101250496640437520100951597263986315243217458429631386086505886308716287285534467994473627612404145481734593637186175393735594293462482284846173020869362449006763190065314245732931853848471431066008793946149785449239741173352013145025411367633459956518938208721882541715210514038359090905619070249833092709718661440565484038983347639747692698608699752806189161679506881934202903535071796281609193568104255741031504940239583303476399498240724653330758356557654204737652127848606771785009885992636429037855869550576959173810396250489676373555455812272938824279058942466934402753436373731900399344192450295971898704949864415267058618348477604240261382836202356309185544840183800608281043119299616302896953149311551744615537305700136001410157892416877037267903614123359805628291325203890396201857988043035111059778047100752062999491619946849194883345913204108885020340976957140161662798139688868074022748126983892150365172234327698690166192370079897137874866080302504426540391485755177299053194366720486448869916546803577014557405407423129309351219136800360712143847681293868946418492221431826996970646992517315937842294717206871861232920879352005043699477004338874779673316908420493410225588813574378612871345520191344787178402354537441967435801168075404985202204677019511999210049316386518614203548308550155961354117094607893621616022513833547122393605920626515125644081060811088671618758090778612312544457804990508235686229977188424612696260997100859581277387680973348826602326878839967295504091792163194044351523079961999613044307194508049874989828971455798294931966067949288734097829602724507135723873664880507090326049170315999589748307437690575123093553193316192271291333273925994220158963174802492248752970246605082662992660959623529186510511644454989046423346101527485763447209140393062979141873112678482394085841933979079299557486926352660421564076890737502125306541893335925762071977314055055557239515538378356968244166195053378729920369191547362809384772317019712999041334990912839542571464016080572736290646738916773257702928919724305517652937901918502182558578083689031746393703017395734151900297996732612652435606367653043349746221800308959445976262017634394461041508207530568313499222582508868091185048107709504273888423573039953437674977214978321511058011977165741114483438712539061685450535521567966136049720071970093703008946141271418537060483719926310783424470472421566229442264702150552616315775401922648243048286148799580806298344976563154973228333522886042677818708897928144279188866383081477327130776876476845012332744544881574269499869842288253628053060448032348029437077008206812204685267046477421731741183751349063409631897589597148359493173048572720608383492636248086016036692213326761066427367135646222098204749715375424680288924709963780772096906689424147612040300563222306328640913396042114259607692934168496825620644325879000496796750190073547917942214390458430978674230903639205230197610038300219573021267971748240942396140507008026726801695642696103338449166392419430571827247734705456657319672604905986538301342828825704677350694813914265112931516379166150363407891236509538402186602645606321797628523172487980273730778814900062663105634095345028504531523857286347732183814358539806361014707697847050141166114400523921371075939520973255903089818527077490702677218742897829707204469427079656540378502485370919302034359822353170975830964970375799785805813244281888552716005412346976871774987585915995911912068804867877866409324244220046521287145118169075116279668053257910417370320071323804601530880820235821921640944500032668540878698404503125317742870930661873217995248401333840275840365965706304556740143000685236795353855847000023276790928629924355909269779744955548427949121403658050918168148784399648814980734789390722178373995879835643469975608177191219385185713701591714686078591961981753891943869524900581138299661820211740677878460598048710653573323788434234946964338082990588615563484684180192710551943304175984491171823031298207228713710687947107353844586199474288502322713029262340900946131547880462802938875525146113498726993200262250593493121787121372668046758115747963721137163049923462017905092767761729137317287219827602804592349386439309392880432716543571343009778061203381304028862177634697116087802086687743680185623022571008173752886099516147847564878229975216126031126184218910293416807769082734053407778002725603685816276942180138972991027393326900323436496423329953993928479035645264975255279252919704729333703584318704952111083656006470470276324343023104351956368101642262008542535241462423848077973106518396391747083206481661763591216406651906183366956117087259840886602390951152111895324538724127231370900855293205490715530914474485738613766692517836446618697331135707399516146397358905763315751542104140280480457764287440062283079480210205153557258220388006096184908720619994710202958592517046387812569959855214255913496835358213110532806600153293628262853557250997332385299626722063110114720161709412777709215305348823717120716387651085181910305126589908959350693000987949982818118337706848764686950723775557448563211292938120624900693365539454795527792893956596668507681527605254873061362022300619118405567808967600168348505847033037865509838064142770437879225732793516925396903990869883128755378908777050972133849066264099531971324126523247715315642112922519183053748846042704526504937645107946776352490449822033793406619916253139910973310859340514728343245752341733834458354625182185159648089981334401664994937388930031664802079123387603189921367935774317928334440572077365542420205415327705171781963322263197769491290816710491374684279128253887612754969600887145071371931308628007094080583559003809607132618313889688122149188149931481472555397162175534169778138109930123456769792190278315935629169379198966712534051351283994298168772952600063629423049452422463517113207427274679846786940528033463378985722673067481828847547166201539629023176515814836369144676675141068869752276823394377148979575729935110229388598849142293587939693693640500316541132115871570556579788557551468864491955049803918841481973224106899518990454370442315326432946962052010623958763956066772098975253632093584642025834134851973054860438689598839826755017478546372256386302985780112594087913028481871643790536162166338286445767104895217972643300855368009550447908584195916991106727273920636214049569298127302558489367958218319555281054333868284858960097182611275238736098704170872458659180567499723999125338459367680107444740406891632681752496199603394940757646303303856887911900571626393105273054271422617771775480332736182726115181834974850589236774331760372560765331794536914966085656111134426769423397753281895895077072382156481932653431409671919927184552713744149042293063701701787686778911559560579325154994072726986774178440829333358045047182012866899939302659751735949895501472183773525292145408538713120798619096635000387300331082512613519262568856567128937257679175710280658584568876726552553186762444460256167897083720832397896085843705388857313580443125532711504667825426241210681054911467175280219028693592458424681707548383222317301590894501833712844088647959323627356763206268782982103681483949216128588432218688944140744970320811014566205868855999209629484390159998153298768377743960068935002593461185739787614934803700571959660244686889259792148504592257941930939970264857279165192987938189055227795713622483450765001894929536174863283732930718225211671375668339175285519609774812433047570968493665294119479953082674982974256606065482361233094516269584642511562517198145637967271740198633465910237427456041615050865400057564299468802121309188042724417745876172275610583137941257766694533225905863138444050669050652189426208298181024311011139077684502719621944718579747467027976425272167990936592782842784261818913682889875218140440843349322811538111216450106137425136903880004066095005237878721495213916235759855685386624767761923716392527323354916109545053445812373500692726452745944448652774661193829099858785605843250721812049120718599000038161850388269568465857385522425973966203577846358128385514749112548146204899391050086344408584462880735375827266564649229294181023055484540323942462547896487936417480422076590944300046461632629823598438423488105666139204690310279686182402012694060293192794726212681316738403238030865969592503871943789518012944429651251796318054397917360853956761870437935599036606295547575682299907990555544378290301398888824042881293079985881183591523848480974374534356552756558088574536225312405530818734174396736805810686899805096022955463633085220508313888726884758805893932488058731332664241453189819759234965728055515766055485139603389459198099730189787095535730466892669465504203811672081818786839452393018788817835640557877086488921426818862338524349964159512700398724791813081779274023304974788768667386213151646224912153283311235352685923431028402960327304277389579563346090080952454935152404944188264207271955695586163504933552278884383698997560316131376126162893790961293938515422236084418598611659983266459451432875242741857376168349275572384065349492719823342323041987485671072979156915558497489676028151179154237072917036337401479151147763227020564149572413402490596106748166389805321544228281393625369898466661351496646753332158709436607310617467265013766164017853549066059212264309945348239576933086157707038389185778392287879846301449438348736758858746616004673775532140657555292917370216793746580919111076143695486596326678892052889942447923719723294630536525629659830710761407497605444106242352477780813239266648359012481145574144264345396918907405022210072208822982192114236129336370610161093899879306781305337063772146250544549127266349859991094109429350139048059826995420117977272590153238968156743712950580686439648339379843817182056234554479693857901333448357517443624720474711030351648573783568833143911719986567735731819157720393041263030256943120257232604761602279838843517938255478029938701438958755629446266591395000573043167389538657123031467112856923221495811945433827325509154165601824564284359559684605354008842059841483111154674395758042875457582514263217521992110838452810715430476653828013815651920192127780151781485723363891465140698881856149301565330841797990437495649349121534205965720793342125099097839442003917892085006471847726193108437345204660415516081082973584289658827251621215915014072602706992692768683583651513588423296693379047862622937359545006226075342495662054185849813546863722863249893067426902375940627739397645657635752190954309427132612579942965986525080866452717200801372185651040509490824890480694775146565010264043436340665451978787426295353758145545855139651957870459327683338314203693693919351423610368405456309765598992703983192510515568224264450664874356788199957795091088442174352308485585478608044647566684581919199276017843215698213396949439574265994026845439499878210655545486732549639232873520227630856153986232035412592255630433709613304125923277878696142355892299429322620561888900182073022618025473486147079471450763166462963020494241935904523693788250612225741479550063725340225964594390038853985994154992645915259452160495008548255632085890881653996194113253805479256342210033251178083719212331068315565698848561067382233501832004570313849388734889492721991333815592459461564762607303087406517199633184875587002013175619163471353688166736148940814760578076675393385083630009087155978734526640650108013671704559757209790787613519693672529427234495456529579517793899538227491002541271679269511287076192615420848397660539845244198218473612725775305678863983273346689300537248014646060815379244836640429958905666232696995047952330689804746681976968720865885569657755010915942464158192904334314078765583649660276514101554123433630743969547368205773140237479060385286429218466477070598506584760150235413265912847513718949397226833982712324259570299979268824849977949657026261485007592263006656417900310352351618945514463554509770166221164430670386491496626757065453437809911830901587169655665276085132543788102894807417047672682308176551991350031079342336575712666961976947504669790021201615241312495543584645707523029122730936443661020234414271204372516522181637978345209772145504696386709648251678071747735100614211461994056732636646246340801431145906760626501427450050152414695970090544916549647761793489889729989933543524767988358150978805821944168565676553066174823737053717887430708550280838430007549988311586171019881093026432480504064544181815157232069113454518765252800152455728072611217320210238280290876499160688655610554957945412489032525880967874739185335729513938526054646906477193924517070591257714041047782165679258171730430637248256785227607521128731919566964851052431935568310792690041397593062284457944190479851505830035563185856718154552594462250107841682129674608322434086269847069304902736154953466017179058567240107709649795406200803340124354093850473499332274355558253120176403733060934296646393743138594608494876125375906832245060489219184656160292585129924531919614660575906489918166907863200115344134023511244828840411802791310218622860377009392669173235885150593421031623886174751557495891920096996879390587982431834503137083781007858398199371934133527699102368266218666495529765929963159477173381138888823351485266357584993170043381665281471266989083652981505052672056035528509206167499794724815004767756009514893718687933841684720299872881199517745908727395717240361634400685230574563758830631603251459970515967256606244368073350606343298404996415208087923906127692973344178551024600710548773445927556674503766166948543236296091751468182972749174603816288818590590999604831985259865513013587756185598220008325734191681241118121642968740408188258223113335616665615957464876267638208369892377699096196218919637672187343418451668827827998323046064340517390904971312235281299363276744081732823687255218913282374628940106309440163822757925530404633880717853356740399537080575321001681618137445634664449569083848618576874058852836155759988567138865744742525550048389266678406173928529070432706788815313110143415361730059460777689449633533924161627285046779811090938839371222048188345139689204752331417093001401568741695494762169952562170714340176257822730793623066662027701529992148964198334031295199390774176079881239105115490350787046386894174686049974681336650021796253584398220186299647169341819597572476457216734597657151197042190235289788915431988698903120176370717964411057707501544698319494636918251325761624920853092055886399725763725568194923023575616957223259837049632066794679283902307300328900384267307932330379824991180239043251264244902387239137214201660974040954098584417095151563332558262573105537655049144157426756453951811380060708143925841450069236704049483286974465211853962314250629169432851545360031481533095680310578967242244299897582096944917005266685050396081793181707794371847406535829973459457204771657081186055813953784172854130576553409981207647271416027520258915079737743453574507223455004893656019207775105755288479012970028139159008927013820954283574404417649024631057909040909755273817236019508427590146703870231144840922509122465012546308226094336538941054565289760976795850938234930280590075337602845447935600376977981601802833395382742426902511040704150158302325258927973638458981895491577400734613713782116550938667754565778996822162294794892994868639904370446219789693297387548706273080355438086838385722934909209878576590057284658068015397092946166872663732092600782471876067690277283272946781370726549193783464764258531129125236111923149669364215481826678487282999943061889353035921201127164918449264207237206117931649980726192575935871107638316300389079948507463301578710856038856361259664015545620500795689021226269654752808395464872512977837679848846574157505723817953936567779829886175154788385088897226181376959564507192076866079324986605456915644195400779894444689355406220953050594645197122272706594153498148720229736018470091952039882830019996624484438498997019876803978700639927026194824878615308688070652858928101724355966830668783106358426262747978566467984853655441563120547895989592753957024444801108577884192741646305581328619050834185945909776192972942229317959099037191103466898951909908081790419220671929121495418009519555029214036077211467164708824606265073886355511085107488398464283010326096823950011859568028895711251941515000287436505081639097367897558285368233229242376777381405444756014662187733406347573307084166026695791929274476620381165610238425413909650798807021093387565057581265683864811067666443962878019545383539533829073105282787051161479334001266679474759617930701572650297440427052658071671112069821723294000708997504534605667746306606636660953818121497501385418032337665665010541536220466940186359118971441094921409835155517780162879528676803430478818729177058291122161018457728880130141126828281745020585062643714418597518705199290013894167512925865910829090039854327790227242186204229901745031901939451347627776712297596762699896459379949806000434814393801921121648123760683530619299049031102222107680901858679432683474489475533828543669988849244717558755740822270295353257631054036687075103605621000984649830217161450750471569754390814857299093719960602022572934433694560326924740537134682565176774264329020690587969145921997626820809992722558694711007047978942752933216685008717038635841364249956884422070497967994603413601601489035020679847824716079630731446792024901534769282412622800700297564347446147044885193329077502314550288960614876400262115477933645292793060197818058276826002818461805852170025630817519028648786089929162528702468414007655902124177485282489000741640730568358786080279500435493466359368054451700176180997327883929012823104872741624761782668684350825664542177122876856311333160828537054020739963726399969174494683614834910469818227112759558032578254577690781853562937054910913186645247705336333350973647261891220362355817524538515273079695715358486632358580806233351646812470113536211454540043239599223521075589619449566765270496830053922468651279049317652732145177976967557286629617659924619620459361548519533435219054355457917347724842111968709387900670144005650990132464867742128528333363014484294204446419252299066168673682259146981896031727747660134024238276146385899473243572844346593579910136398291525157085380588488323163116314829211805234769886534411387842822035278066996245086418420564764076279549654836115658074105663601055639669385523335465821453992522853548181914498545018359381313406382846085929672210688229308461753743317898621901885605305594629179596008526330853746079723614319557154115244172609176633493469358012800030381464691340812775011562297747210922372207835026412213882508640332880176150509187245633831397540310419728795168723556684502970199069106988016063150561525114922888756218621771238555884870481141884651475318349725108510866145739943204426726138014833434132544298097381119873569941075969613966471420336254741682975699630733643589845716154481549797219119864824915158000412944010187853849324816504118760928978419795883972804101504973140281765411070204369538003599701351262426946176768388822427078586721256730166814907989728315537212855036895205669290477929542049698869793109973295935211020700002269813957268279101717832314510328651162189750908924083125742603574402233941696599168209097664953764670671380277776729048103747302535518799368499000244612642484691983437209513240524314980654039562578378538631770767610402334405296432685884955404436372615992691847419356705660445652401384832173752844135623858804496332759188182235659644588200024384377670258150996740818702494476385043044254184195247205608451625426353139091301987516215520080509915500691395380221584331282560521588557472624772327030846851530768721831988511320903402960875282303385566732542790514967371891578441689848503587008491050668443044818544763490283702041039095497383999456626272628254547186455821669431327943414000140063331947723706320757211947987331017848277502242612446857588999862916732120057529337754848540731028253246804023514254681455432657460021371930804789859530535171831902607819965567183995723567066390730195626896782877954236075164680451959756663931043099721277189193136369342373561055289737094970759640731253259328496109255438088275579884390973758393199905656336760807371961095428958001001833447381855414584994442130679473457353661946666095684697137582902900059461531172485607170671009894451267589472152414900912976047043359060539373205349540162818733037630304053172030471230559608420455333608516592597449186086625898789926731288537172036704246218488505753212180332449396113143492788216002314261890577413628197442940955613972236689145130444281368326660168483967807714556928079058876790688822093081632130911609332175951611749204218128541065239577666317581966323910540268909643972233003141538669097973248140567256286998748278357803711443642682831307851439420317782316515611892763031862523928289759017233222319631293901839015605368797513963785264623742658143576932956467365004843772876738100857891339201596855667606585657367924221842767369551972116168656234900335736548324995975025403107464978396404099438360505790981683120690193430441894353843659073280212084493129011033115656290894828739276753590778764344281775898823643775542477050634030556361143176572292572355577235948025451571711631621819090385059260658120957808495739896458735457244392926956115675129139596325075431787414990066862587168324107937155995734510012214927256101824330017815674766013668327799406090840385552397657656502134423779296564174352308449663081160704660533469539098051973179737973369674669696292883915209271132934345585826153923904508619757874830987102452134043854689283426896476521031593564876526821429097307634761760193388238028218109324663718476533185328478169782488786107545208178406840582725002320966007919425880600190013777407606930201592630614957076486999483089727016357651240414802578810441628736975352709753069859295958943342569208921733864669506098200071850896673801500219542077559749379059302956496599202295660733516915234905630015322768768116221358706748848923163588614799251776008835461026554599170839864014300052629075403953046515288129162013138912107446291756058560701256039720517320537670410736579034404038257573497946674691299940288649512246003845262818715056349497056319739962425074440503734351587685613919115308881618420521641318549769716073917847996940219282458536638574683653695450670363327184204312146667078267431786135413073798240718612014290851384603389717245181421511626140440340881654469266209933187280220447476231136965445398128460888762971557307769371624940404140979087717687638911516837398211967858771745835866838349457827312824745331467265834987667463735118198879734852749991769717828606492234942680694001986513044286302649254975731108157993033321978089707114208976139982664270322427681840223189527028354831927921119481985494097434909834940101452068149168842801969677692998561642404281062814973223584917476163010785769915862625225374857669303650780919901816861141150418207586273055365295732675540176215978517972087208266892130077292970052405322517924296579446676960805978863693066385693866904888281645146916108694864745865165857600567221701519219670865397687380538948400047676126450616328602698092589153550682031334846427946787987367225781298328445863376163216356499059095093654842905080081872007831630621321913216006886008324443533668838260998616369355341690774387183741198056309217316267149065198814349558422991150725912554954665310161775413491236954797436985892903042185390227182265916426244317123135168886163099126675651004863148204966604031472283620734241951178845128276106783108198868885644166466416782587979371852260246065840625509989178570411156603789597400256291953557900012371510825307528601186684334843115269134016408939885221543229268943109369253660551486912107784964599494457933635373790882965405783473891511644437992075093621250450865422801908708700174447533476722980220867094612593660760091182516413646543010300532639046926876640888038112319969877285937751954219232867769752050289023310589770641531780992335516421901263549581374766815700529020610493353570081146545611194784114218773959857004973673858690434173334554035903605420638144037050215178039442642801911503584595658784126406551959324123069006601479662502756008760369401864180224378639466656245814915975979319114211446586002282973505311117446473333441256795926128252104092901422132913933581127078625301067982337449753915690655541825900655576305928733506161002200600276355272607199266325395034688224241888638147001833383457888504364852157537364594117472041231453141350040851011899918671399217661863839227026251606267292170224517323912632741875677114750601061222960313579499127453223768925535694236116417621825190745273659794585702364082587981553328001015694784315467187562160682090756026956554034116117355440162607684581484289683440920157417275110983934743122832689566595031902849615056111522137532331420950122720197135685109370612295137709987002719244485057561510710572286980429478095848564102884643633317245119450757964941914602595161808252046160083448626391630535363119591354639641996792002570199372470383669967647195914786732526810132515567095359379588589119791658753009842753574759708918648598639220338217761763268253315359771115453241468694045938436775084744514418291368797224458412631838313338029675500438120342341864604233951413257494283546532957056898347696691775584007318363256629891355357879952324212767146216846272778025306751228936245905157885242183944068996445684120553189107195367417106346553780411929670432665064694393711981092588404990823190638981425637896793351858822525729310448813674119220946959389425514310528190645735827246111079458719027396869477550635551633583627144975286777422899843195944890883470645688353511119365158533901252117862423839536286047679085362411572281114684889964283617176545236626682951913758190968978864409323872392328772847058919031635461668886893751027174662013394188155074653842356674438939404453685595961675448008386460911623673713312461131491745528286608240943195528281024660683334375938424770217188606244369906654212884581257889145781913982439463957134800958510228598569591507837299281587584663810957194342723941661107911073998204331491528033437322536614248996312944331051577469670034033349768142103698681153776519198008796961209721362802621085310256923440404195680646956329825526392236259569017743779808148099538021188773951640134588030924610634261887840996178375527585008830617075631068671903435984705772376311693142207607577299315059252255093326420653749850832319081444479494402744461075466154772077078471002073673958169966500476689748097096000157736688336655342077568242824311124445281053526749590436373578580447754109897105135520080097103937468205169809364785518878344539007269177851392236623479557431034249730018557592277821732353781253535604205720699191648826219778430852645343795356985085528181765014570811668252624454483816818699375810082974036807202645747628869414345904690869757716081577794926841684156446472600019461605257471756839735910044325843882908899152398997109040068964716438939702831615436576915125933021065245005767438975759519509195476722768580490406262787884491709660906873543634404421960555041336377236663498497865750368706075261511558672846668763785544043645481754443683496927412155385399757033176628477397182575121793243448916683729979474397667700558513546542787583617044094104766101149777500846699901680991863857465850378979610066241354631904287472069968611606120302857023745722819558779353159746443559582787873262848906027694299884024832838315539664201992707390036102590698973848628324560613403534053309784434223348235795608757442528634663622811288464915295521639168920713203828511976709319226823483920184254954873909494369591377228114402472362120408563246147853355060462627738326148592731856474075993997404662146453757352042280766430967424669820426837490762019932087198032640877321490012307532349717991345291358785979467715643756437554369210399137381231533700096556774982064717892261218361699541402646812690790383718894140788362688157718634722093742140261524309397816005435279046015563941145887489144148019488080885173919667998848744969856423035576773739324786250275552001267303751924426011885055497296824157708641438372309012094722820123461112357038724185960973585658402690362664678244106270563317520447671499382764087831484528038249067048655745696983987003019616970529283777858416697696707005054933621897920142125842516799562763072462051815615095441506023862022761033185132932383375278162255066500990717507331343438205331299733488748777619250995848296464297634748657707270600353248591213744776180156551009890509308796917512870279541061970557902192141101379182417138359071764563401506914438950623921487319586907992496792101601952460996531499264703686470590597908664460601525467263852491342430570925988618272330834997935711567064269657050011753727543165740721940845578152825692751877875857705100559591060247029976995422632092621937266826533905588365386717860891624268021315987801243411978987079855356012139792742910757389784634340880894298172088911925647054213955377517154379038797724361641661625217213241114858917681777411219315732407896984094069909990537153641896691007635493338394335635461902972551194430295443429572172747334306025126130583658011119330992065356052341742421055068282633337739153499064355735825334213909278726699783954317392671301954098689556636430864714614099920264292522212049582484315551426962935562286516359264558224632862269733743148342614704371955364085162382449266221953724430219034371588236460669168495803771777510881543731934153451431081434851283200645713746750761092011871985693419314366143218293251004497544411439255071897480524177770251498863529207599758613987152670946697242611807386895852307643457317276086444885727936104163699669029109868030846733478784363340845322916759963633920003294728658114951406189245796583706374399288114904291675619284009253844017759044046164029216512146761852185628954477384480835664243268671581169529021202819254100562264720186097126990194331715426189393858249771508250396259722918369957644212790037379082095259107080118530517189623654318122462045954621087696952318523331033057688355173253195449215216394543829196256858659168024580850443643805822854480577012848001734415219698170529206746661542682434519891346350832366459265593651741119460692554074144735685367080094091077678060558034968649552986035566504514558216237296479623973140693842528105039272819467406370147134432673480119054298481392630077370431077951946484561848640389228259898759268962463169883446159608452333571179144589115956648032807569181413683134497570216873475667422976750875557478267759964187681711063650109801444885269813522811355299982361149284969942315575259340408092454015197002263328365703126194520300146366495638077383943436023394203590972136288835519890927730211556843170083090991813788547092807684293224745288055435815166117696661932190763993767796891456812077236292596829813519505030552562564507569347489627711687024856172381268784941639569149261580310511780782736006439613049823510334812820890658522289846874891579803109071362195967373843132351628863774700030369206162507082598191491779391832411864751679798085578536382716830040670147682623669348289902262421303558852702256055896826309257892124038710679177088922027938389616976486605870203218991263598962084855249747558007548428807228315959729986281949614038168163836982011713840361534824493666525832163767230184692322918412749567043525303072335329538719495437075040429279863132427302590967954464863950797040134395999864201469256487551452408921847198150176994931758688929344282495590754542083622009588014152369024166698178295434198339365855563311813801848208866520801670035020004441977489277625075990535872583948836540170096513835146614452897505005309261538665742121538155265449189579818632514145995557709493350935679021989782100701747099613929660593568992863786282022175393349995286354072053686569310348083194031841612754924848304567771614749028249783501361362737395992129063508435091875475589572124686804644208577163833637297385499964549486782456671954626030303756397181027918172914385591383661336266669366770582745862221359204309577115343695858522226342179738363958338739062885907773567423558996757091611278003058405785402322669218312606979319125956378058046175156034408859127265451390094592245238245439887098218479361465613337376489301800467852615586878731508688676125704892937135093459165643679601544844370573291189689619387291150606299473047825879874055114107004631744154303309496620453802956871834125797787640742099041538306569031437358152342345169920905448345113299807237215541842594331472802113136600903079212593287086577073273618632138808677593554684067064956997720959018350534153085972731862161681976957829789172258719826444263125409063601112885135013721518194015021167569515476936369975022593967989888420037096246321070956150599307538850787345560838607914342247482553428887549701937182513497313227313420258074743154133663629375151766038373931815955028224965121525218117103897543887687013576294563774519345064157456387480851372964496154887327492057352555760193109171512620559767342762340392125036401684239130164154070917258194963580421854692270337828999541697139297263090183773891303304458556277683763876339110881402503411150356393269646866670074188975641739609481807753458736371994759550451460633854619642194840690688134776520825345280980343467974122794405040783280528776049759332811477077677321943758492206826713375276010088581090319379232448822925030147123613181038188067634431652010706069939374277261131955815114542673390503272998365986814535487588965762429084354563661190510471776440752871441070203168912084742436703954449046939482765460077516718264318295060552321326606569581161485172402723848057577186027883172036925251652394265992160571086137310095040394661003764421138856527532223539281718855102179908562937788114118743606509429632135982678906649567559446000737092519936256722939781624516199573518216583003651868544968793530153753225247728017823554405765315997099234284329235017110808418162454426560350247389230103170291334900859941279220367585529977033682987669805717067749235913982544583174100739931207738849598886460920561605623071079874092867391733810132549223186968661504137666979411678113753983959245115248361671449720380952400384562399429285944937924987620340415273347332789317593247049187422880031449498149309507044157511958222721045779814335978715244464423179312152848331262956640031304283121535780802183219680561340937709119313423173634421255161978435206138571854436032336417168622062360600233560505876008471125201007856492393194446680882593105962083957747366402455649815254285572026385403980276317613485762037957187602533644403688797854105658810041570191581514758956300059790206526254506939755404081592759112475551797306145493150736750887249738615245236156987088860668757676627124589801782741353515442803842582187685659178822232520663756348816466743719724290994117144652733484312994903951278819208116886881462750740235347079053055926526613047563326456967561903687524727934122086461008849208024575695256353132160810721986687787462012491266412112812301864935773558609136398033573433157729991122043769512220718708520680234281616900915155796444260845253970287785838020481503989463386523188986108480108025198474573864707741307226918568559844378660090012728033841649440044677592493666721283483229939989331932899953999243814063746707220827299484632616258127489886233617930480959980312032353667531094919591825125526530456914447093740477722788069125738419055637912330385433249771239963909063200449659238276073332242992166365371406943812000727595183244559572287776418076503973874369627742077392441839855678382787144057125094919495223210480958740886012545600031042696029941918359161107889147906151586718674101330125991197862536761607078638671141765739022160285902502700711816273073649602796861130450497138987300463177325255204450516885996635475268021247378267040233299462439486063412116319855955513638057864912516883820909382483789973549317989739497124694645705243897566612774828398609933103462194373516171894003636551269416824079234156564321954845974294704147018179367014182089669121477142821579987760702099026534781765746260239906437293531256075094062634030930152343299254552212949878081276594840902986150644811738516764047883940449574502552667344746922403078635370850637027946747580532616024602373168078672993717449817310747902481347638774072698278550365737840690094003500350753113339802920373627823188825408018059791800560913637243869489648297614770823074478271587783053650624637393706587792925181438389690521208037571369605272332964899494793606138717051633754536324636989901100463903913900121554222928786586709421305972706784478065967213990566421056088683564589645717801430347789354301531528359782446150663840238115156571972231601308105742432026781334344479067958182424193760991023672668812527882825651299047171501990207413127140034598922160224129874900832501724818449979419910319662996127204952327076190298996789193855419229811359581104351000931500564759270658901833995277245266362897431598166530796883757627930806353848545440648604481122817267677845572148466632387612716918333568285428914008489459914276555625157402889814358770613340947772451804847079890870483075861751308966719426596741851334795890633098364800701932124002059117657605498474294263302292321393255257155151871282588607047386157945724569245386127596346349421002628065100471763033934822796356570768514543831095872765970988986095085771640419780026444538513249696373643589283992802967828798461076358971205060558312358117475383147581966532089111266142186610450456756442264614894200157953687978213882029439252668995372034043751824559606249604395669183597459544739742799290238079477703085211747335013230300169885736368852889920584310041924286319781215358847097762765893901682152952200916230819349376305981023335285554351058801448277397175371699608308005996482035235665791364824489708369620927866454786604126743699418483035522503827024214330722200916180765205336087264705362345146354183292963497619267287575071618105605385650820753338688674182020666698553024716225227573116158565478323293671470209063004031641722535604342291780805812237220127304103912459392001288473969649360253400236429483320786937921030608589373152172931023440324280237667042211589609381188908772190837633150680844268500250441502183566825517783812491183666001130855527664140682125185108047229445303741199590401278064014828357484861664939936800974010997323428900175302585446489222774031951652724209027728852904434745518556277698239137345058379608484297922792012460041280671625155199709028230305790365418148487530866077667307849247048372193419546706505775527042881635628882383431039655778965421266754010027651451223023116513671494580218290303677301304209288565580046245131770386324533900511294563989413512770318061523603498315053561891727031658411575798696172570457757177163424329292450819490867780139096889624792803942128077744849671161108588312284556729130827335718616876843574760982340631217065136800219900890863626612120512024240944965588010439124805425696789506533552260500913742231676968220176578579203437305375241363010500420758827818709710490178517960728316552818230320372537687077660254062628073627508964302233860860146166140621009799099391610010544658914163569079901415957365048372015087200661610807649795434182998150826032506529928582264755303266777239206022906840194096796370048632700651337565972108418156126605652857293547442448572189368439816470826896643267808116982814010954442130426920105850317661577522215727460373141619289533129620532676104245995618764375824198865052548491784819683741483839600161225139503809075317450897450056826545024594043217853142887392758182002353215339353237388862684860957552063625956577353411935579737290143051537703627518226681869552080185589274236832379279977662712897904614770963795678443068730714097526029411251787368467591418714768730976275459932070509988531396375633481515418500332616714537758077499648338738929314728931178256278226753009690843158552886411271508323905243449303760413013987300304490872570126488863352635802832461978719468322934098017223156561121408423973018562301569539896298216084577610687260858645117727698209001818320910955460215197607635452535351793733144598228175120835752287388713162177162130027493195107569432257234743232807339566055378324203935926974322144910689331195285473616658250134182938313387197118918705522233306001015531142896537033297976677055448270744800954897577652130494483703865031151995909874054407137405850384210804123614193394555336520540565235110792513021327872369041887704420324030318591915870715491812256780853328135793142813744229000769507071232434475390225045914844513000808860844203002362816127629116059421175846578378115790816062020537102224289527275418977091585659170365559513430038392201721691518588847663405797877974192363348081672632713021692842104470008557135073654715218317211268663215679949293003754850697353635263336122490246343599802852905106520373816897691280272016743355850370587491337789820619922428948048391627762084840905845198705648131709750916179911482463637977810120386428160871006193589635067693139096699643983443107802867411826503446352090855845820946545501169484960736456834739701447213611571969957580857902823275929838722064674614924779712170925664599364288769186940467274194875187603386441485499348288181161970597744139781660757601023463050141792932938302925251938016245648388119653387274339707049783241913038807137998599017600856875929258132533270856801162912292344734932803894648943862416837412777130284436567459868932583285035039320681721777163882406536593699622713279979719626539759735794482894766173143969983838042691692825249231805303011615162150613351481546298474744815002520365501578218112178595558116317702437441374098628953953295513585426951212177813908298990135512971088673880049709159432764621029192506862956590927667621054666662192343410563833606444033368646027607631326092341440424065024800668269036371314360733758390307163511262826829369947141626307373515731902379608521615915445535789229194418268791134064725398488923161085640856561303934749463139658936317072688583250148678837848468582638427432813576601551154306976032076214363352490538589748416839377135532158010071784469742296245693913362139759408490283638153127704135104183002635180339743820299040617801638302592247321622281676717729087245019061030485918715415265100989261913773628494296184591387388497794767785671126798797294532963215851074009575719742629505372423889315658123938587751920808087745793012927117773172477858416730692913739775465091685533900067304010619218248199621275695446413574872286265545907736871818175463264626060515096259918255040950803315562312268620602301570204537223301233420028083599831617554474060518302113449503869736853387582880446962941472451396704828770610217288072101525199423305824313732907797038338218053705505765593100414613981266261792648989854028523931905571601002802108638987046215501001241185155374113242033601246386515895640428658341891764863439583458538145737393220402182989356827619516116440387575304039080600866149897951849627107006632971608441850752442771411364027448028527453323657153654591039172174270839083416877187556543456018097188681293877398293771440097217292758364981351034607663981095374355869124998298615825350878911353199522026265847112961288616305479968770883302465620582606335112288275104236462563162533837629493675928185705887123934864200371563443725287658089268709952023181501976480477902211540919172563648027284450656256530456567465841101358413831167302604885046426977748472181580823837484562392342697551543098609474187557657151306619603331722368061474456625218429369816359929437403912789231129961197768042935548779068529374168477155822937096967335990618040990117863127679243840762641904870386242452131054823153791489850139779025297291304603791631508468940428518789595332010659368154055342208415161147844914097272891361432036305452022079867160558009063063347532537277175919222448028316528006189026524772038149498521391233186744593622601461731148653648215076889225764526975149108814545589925822637595021273761168313953644279135431407692103445931246836607184246373030274726700226425866636019427946441873091640166656628361468290255865963788380365752367575147359298840693756376107425551557176027454537213548055419833506274620613008279386273702149389068899848485441476112380933061438813613749682747200416143175757449778875531208766335702689671519125966878522834864589113806549695159471793352781103201930395083546647769512950869859786789432203159548884817522675419413668675231630689090052030552840720891152703404403316930545463845811186309882413214583043673218699383942474154131783197351195672776300296799211637377230976558416872292227823171294781530165513808152411139881227806295682614506258920661327720988265010830922842902382629491766544795610597271234485150208979502399832141665554527357071067326114662873214881767662861143055783462315043345898974121400394031823565285879151436676565804919509827933893920624380933728611134670885749783438480155393352007268157736095363707398125203158681526021427438084279406684715975832392473723110431725479587532253363689965819755434417096139786358334388827567882479460717723452890407766493424394329996733130292385705717114046671308302383264780570324205347951219297982541075065869650062373695157083633573600770659743283678686430883555735078357267499876889526569034289383612535763933694465216037421113612383568142623593219984130019456107782340791281475075954565171417137032331451622464076693190990163197915960985892487544947964816509354243365593767355218087321428828434813965293897847447167632774173076063015749530973419700656188583238889565255699937263450194627246786995958096030485572895897676215336489088541041402723836329139839178098662154841028814645514408855345730826829146779683638779981111009075296598266165223794531183101049655708488096021852699801968514168004714289736766799696959604509045524771614216351674992909040370677586735841525735980833205499963779214185899961732362341624916989551191761576074562241467769915320455823146492155482175567477549656198957386131721739967726793673145431657567186479210312379090153563384217903754778771600747923658395534136647843668100087014738761063617547789190977176078538013150966976366712122888821018966258217987167042728786989567582714935485451671613818264666156367412841485011404916271459207127387121127647487270240640559139491657924426786831925204259232417461564740108375656433465848302299996997618973815267436454972874524262865801962290514637020144278169569690684240326197753114916165413231408554025549525277399594192577883995695841534525577281864287421154847144003073850520885794027619366925129964360224077257215365046047390398946612019629832714869901252463631300690135603580071588241071392085746495970563619680453101935179873389512712237811051963809862873379420763340063794785322154756657003416140421138827268082708093574243874270691360559027650350052233971123595861217274251636562659470956374393393778295828770900497025097495748576870716011147935512217762573626552646079886779124395154493289451344321262650120577895452829020625392763022792095599584998183542065229831772767347674046995233461845005339745307011044393169796766700902130299742593455618235082277536807285592538514702862030735979946089258748654677296708550736736610577634915359780580367091030326360159665931237529848215181710411230421485171399816292737540013023631396440187679782381881890861293082380899611639675681479214447177635162434397832135951335541505271088578379352051814766762786008494868486974167023691319968466714421291248789005938783661487056287399600917558570304483922559835470169762009210041440350030273646143720877282424987587369405514784780398162664831867079144089390120792722109246682627855762417207588815751460905387526679511466644486804317209404668152125794324030288817024144391421941169107725475992482375106817552341277110997783133334832228077596371858390455100098874806574265334982827425628219307042213996041179511076331181243082188551416393388396413028735274404574861467398560222272342384459303436203193317540105712959538489845440337714298182446702928264114713693561382712337292915376347233845004850952746020979961903108297644461886144433844861598070424486638583030070683244430401128908162643346828327881580724986198214262121603183594522783783326849794635121503061077083996984173624336406559541491261140304010286255549075247574825220555119995798348754502058369410540552010910599115837775567858191206319206674659762161234901108957352091621213654129167568455196371380393921365457831239147368604187506518365103216326854198354608551292586656330027347496212026091862888488086042926563792771319091372457381128594979407750888754455971194530652647910000495821247153682913579672213394087299281112294178433776089195264614573228889017631244655911149881002934347527141190078988383571097144553333265527460025920741367524691607403046731599005279157869253299442144644753136454417041734772825334134907321087548875063346257474821688170682457757295091726690229080360172208697218577891449369177540045123977631494362326032073316272668590483641237966088929097474624425569165806082028264806052667854478005726066745826773128712555954929754074535939739260784028939294882589812540913908784900176101980106160744295498816551749859374245637138832370975754620594028717481939148705014039823695075901958551166323939927252534039012554922845442585867264444554149874807185203627319175677098870807170170857598579259115328908379732680546027553573554880798829061680328929651850941631298508806216391051834435283164407577039957679332313220356382886982072338138168951822737771383445027931988280244102209845040385242820393766302439836355531891643940503143089479475798250180276134624278472995613760190684153876909087625397849143937263279279855188566732288080179765097287622868105463644185885606809973482515536520599326714559116634061839745761563533516788023119554742450919072664005034756816250510169426063761427113033972984607128573194906271034424929576609486338356552244422385970980939027237561481095796109157856608432877549281612675231639861780128067029283957868824244836821479334509218964064695615926732388900254724528189821466378022581607440030047137962987500097389005154720235064846848799378770212273283743806923446425948012040272799818504152585363645940204369031973229340470023926399966432416067742009991708062968279717267699826861828318033459680250536532389280858218314119970368628803557296586407704651290541237929642256908428000643072312776387145843564100789919622402850884343908672652194063865910599662566279350656065932472074723359330391917932994371759393626767031882363724729186634128630193732024833606015623130892790248826333358396450173356181200108316223160548834213333430861985597453105659801404337823714282619071500934432576911333279678012107126264838561542266751737271101751107395409539756179120941064212070482670879149982545490056114789633924381348942610809467044208279877572153441051038966716283137263639852361620039342939027030323542684812938665808704061660261542733498922836745046867826874994794390576697223373510473758677043898154572387139257120496091820619787268083181564529959036713439111547176826536869405796110512914681556640126431257603382480686957160002719537985894266348901244857977548061464014093988678029672724228397048002066987639689649378502340605661738726624971053524485609661922325225580180564029924223416561781090961274794544599086619194533629337095624501689173068155720596315262610644252061913138904587877938255201357203073789164380683019227028624980621084022912686646403279498552708211304723293925359867058293659608013877335387222354102070932443119850206065340812674408557328310021643728606167450218922449250390380735271386879676908817431057487063016599438816685422851472461745847091480616514265795985942760944784763323909923779757463161128030691740318815709707718086924547320393456767558868075191655751809900094752451511605405132363783377023023924390187957819241917858239193109211146990576878265752765678728286098515926887171857854337077191219468693674634802433964028832082176221083361170207254490301421673985646331515416989392977147945306143579416122111304593128306363412366074562873183134626156412266223976204495056876956309213235949427913687808130535224428381570288293237040919286102667095269466578004506538175300233742099775234072859555918787406299926801120771821665568675693363558632717408665825325349776193194580146887908581001103463711452476216102441241735435952015660154886007585734712528566550170085234790732730484195792169920155526016870999223087556634378895121040726995394916275172349229123034409875840565949588845171232148118298991965132320522975077630906640680078049856076452541388960819855410030022988344108241436890154609748355636786966605425192447595685997222740313972031053921793728580639689821881806928814561812007204007497898846712267011088863036161717464716857565698639739433161342767222670102700251676559743214957773225462322433044048320730085464183985986471407930991482512542398096416403575381344598440980272797024139061714069615225141238828893305604975342698035787084077181784428427852490034057678490687325669765326743844364994501489842923929050869222632115678115709977300987635658957176993492882708463752720145149047533286027421479587280874074154172581143586596804205281985791450574351025370401159270585846390190995000607546780780180465463003088198147425118267809292277437336060752761107008122318534692053326714839651917344814663700527692515182694931209139465325943455483231067213716731362630325898120979734044101096731579398799767727631925336941341576814326710013407278153439845896669368179312709875088974010324671525994479301904234658055443229677385621749794423640248340019646582816207511043023553766317204834029569424790614900487476712975729327324691734874753195719776674243868955721711175339193439108297157384679607616330601236871432852009195247395420856812967202115821781212498272829777080602168437352401102610021691163864339080769122187346688855536400004140863861983827755622098011989447950209349626549170130160079558647463159626207710975517208840391586366352060625335827147059431606477559394690065776454286706316783325864573288487287095766088260049502754391100052835735682957168253106874217259805439933638594404051593162837505060557950562511664796359544332121726316841467686626973345418205116049211857232694283134895777029856274010485313568742502743722914151475107314269862871345217386389896296385788139941824073515954523574255728202124151513053069376704972532435987085478172122268802370424902226425682565178674557674289404901274022817346698291292713560286764433065549704919931178661921233845259995807755763839287171572284423081860151817770834997030099545486102298230019143302123916880298505228797113190624163402351840294342252774652632164971755730918653299103345976816871978641148234854654104358675008415533924847190826720369859045897787883464584377145427988770124305841073871382559996694331972194137839848754481321959392291609437116635668490171735978363410217849718732321433936105611678384239895320236114385064814290014880208037201992894834923908097067030729752841669090588628106862049863663044889547603708288998572869704536614636429861083421493848823656303302704476153171006395489813151103142498051914166889502420431707306463291826705962882728154956425438089056018086358456803854239516369616808172750207888029148688977216841488923360734326583733606474519021876036164112828318511758559718284115065445621928008962634527148657751822372296531139060786909461553617338663672270886039720449093992430268444398732819031077890462007057776816726382346978091541222452405971675495494560583925255818325362909958040041256561528463747241373658472707114191167367549732032474443966674202705813521184910103756377164552313663015478085566315660202697396442683183749022296091845003631490239547944182785833091254120445621177579133760819771901376951034700011750152270334216465737771962618344117973990506683336199744623368376992754323300399896632691184402845720881970244803234386560949406219698528830481629151342415419955705903882208590243374340112684503926809040137571593439754479970000534280893582850799446020962216806076877934096565678857541042261797934113176104459762599373748201828874044436489743690493745097014782885725354269153417890617120552972181548939526868361031015936567495586001720335411851850703068299810105594041382544416052178266175480975437101324424489676620535501570247094796270423143702754624119809136739695727724217214762083979665612857591037098230350254329343171851955220818950921718800188587673252607808631336854050810447903903350598467714034515051337439576265655222366073133997590836740498072957899135419082706242904022835147642531328759463982794801187711660791360932860054963355866748386928516555451407493172580175501133884485514112019918686414738802683520559540717117247042838100550430636740077183089006234377789907134647984353843522180638818097440624317178418723923033258335245656614884367284674825302098977694185892158424593211894128008462357622539899769332522619930335097476445008628879956710072495729643518425000294407158616991076536629751319365875878485367338408201319479470025768832608656645359174725340813973757020891437675367387370899385896669021529371468033996569878588165553438282969690442417012083172842303963116556074202043018806838314806725141899886992291545348896711217911098047659300633699300229474827026221602892449969683294263203958975547617876541768353687774147854411472713747373923638893955711865033709144386659354312181600017000691917166398385962944308794935526204371395791455102148828374439290072868253023601377007420988998737176276884065175143338207491879438695223752159569114184317427541334218938995188404538192515156130114666945630381387467370029922592769349067237131743744654168638270615701241431002230310288217792499319434724149923764992023215956268109966552920249466614987183203645450121244108553780619477982553998013288411206890574862529627211610738199279935152838364774874900473286987029121235542044672620798229710545696469463386300963855150699986901122390278252589290838560344462890487723424293464107132207708376010380265166546737538861241026712981229452572038585864887895725784072407844713186483704335047326292308012611902111946705220547104321126974700064358371695069205833982031483860125354123652483514651746988633682594183117294367516504332513537312862218518798294873823767692678357529616322584822822896802943097216326197563639785117524106809981493384157205913664790676215320479788168806012349618057257199294844838699171799424576355448372077528026489770138050447831644299971431733436103496541783282752403453326208537747827542788205722875855665326486702173234320155676543729383611016106728248586249576739583918117968383751759493753274866386358339079736977275661622209016221518566585033890368166172427695847629009071043854847523053451957789421560631697813268097022664867125551272247666076773024448462433432300114941742439043038192083234867855898344183722187975360564681616043762527980554161300392802260114251507569526841567100897804305658628880921461303493042006926740078770165890156637471588601548552242412987841755923242071863101103321187869296367629504397377346959186482284540218195274380742978488809830292332160197130864103651389738826985758918732311654754695425539133142667223733278226118431132671544706646942747725133990206932050535138256589433006952694647415088509244921143641824372547914187626124107244719130842909657901635068191504666939111515276284855107978235930479915802727517446126496695958244914125193029574341679565468807906663406847485832917031828991624032104398837605136743664030144824703685528491071456214687358686166856168161093003221825023769056221788950381022740099899949838379227650603912605476560870317007493140749001836053144326414770560579848510480079249033112993753537786946651375509478576674019250162731335553516698055110835404956833574326723509950452939727552694374098655615663890578780804598472067075151974763054740024473021100450952361755625863919041583758936929557615875549372515729358853973491910829094820317596090674915854460047539678876275673243274370183195527499259078914936559418677197301261244435234982198825366547881177550875143119335761587629762526267684759348771589891294572408185232351596108425808323820012173192719330988928859632888010810536236848892032686319599649039247467438835456212044282198962682432884429105692856764850150304604897698635783869239810630790548179756392706799422206781057015285756914780817415640195727504445388402967106177576549078636308222000468127091188093513604051431242216867551222855812980567788869164159394470026491943674455717252723939439114919566235253976523584163192282226421728596586083380430223950641872268315037276308632971419583031838663470556358940306320430381411098604494202971788010484204417022148132013607541201221166889909297301734833689932996297033771120475376164906648040857632521653780174226326735994792332708582241756900964452076869727920021079746271609146845683218454685092054494789409915229173597999966344120910546389728562103416031775804678196232304622797071652119283961590367822457410940821661118341015283147074182456126475648492330871287690329820343868690273485782241923919989555263794718747692710470007549323017600093378502035232474316628589641096105721942194083486720358803142055313314054187031443851137174743914123668523890274250464231692431496665994536856935945612034084604906814003555516460244188819235006325079179904474918542470233587098256836757201864399319745094708640639733811370535717399997825575606590441763845052317756156390452161932915823571056078086591778123420134866888004475049369434048324715038531286484825442505866210784679630534733544926410533029527503247461766573206482860533452699103302107622753474744984623743065191622344917702424048610633945590908288660004019046553936813475982983180311832218392155669623829806623177985575995066486627606889144746230124862867575725919276805235754147293744469802217335865375462190738459173781795677198289240050731482698787393152266533099884026100713543132003912323242790531502602550104608591195707763147938841336339379842807697714215494142746242369919209367867821848262934716443342948898967034510133611546228957941973030609397909756205330111545781447485462656370724852926337652405824284906423246418755020267134562549705892903229243573289779480920940943195759715126872480553493054160755294303939277572976723595820684424927788224089614232982505548969883104224574997276227071665228798802203737639828081238405998590688834365670497212929306834142874253658314093008675578491925449003793921618181070245556609099170085415955828797319246082286113716392932050810557709565645394110747172266494528793105776835808784627197064412795506687498342295281115185767597618771292532516254560013731163743527243858330659041743781509264354923490313028142530072049157585940119561869560464563513503951892201794604201313090446034869217667876137569661735364730345735898737220544324467564109922227049305802768665619565042233126990595737367678527830681313229925256977734180276677548710213575514055875099601033958579074660490808601428867622339077961810240172119585612487627587327476906767814902612123935404404084614195733288495832390465440630297667248358938076158278705467752075008764361845064103009515747520961371759641623578379444817033816177770366644925254628223288471581238555050584219992773662446541987461572202217096650762722959136220508710433695981253800734600787354825406347873026301223793311124699077909012227192293498080497372326993367244384632627702065520491049903385358214736260366858513057778079830019132763274317323591323517846890047442696169839929813188387758906082601202535408625561994378524322937369215890221054618298697433947495099429670228726449376312779510215752090588058405393955392660314935204245681603361522631205264185669845256226764586331590284585845412103917588186968918617726340098543975618420442530767873863825233615642008546502868409363508580781050588973514596479668983005733270226189768567046394433759879173368085290240407960284854592574814299212232835142446470505140588454680898772170359345352487666561505069554139004180012667305121360060673028750209635968250149717965975617099372114443079294621875595436258742813337522728994992443437716929231962170008908833209018373528011455584879010089274371080259231899943648500118341991124441049132156189513825072328948337092771602859613982500637018241594817116282830486594431810758885981376496257693402106060695998168120988300238341770283386286100080079401212668141981358957318471969470162312139155351750730969349543948177137550319481981118306831473379976675341645786128372931878290930300338657966383563658602709274606379941906909480005478381323612199746325634661554230651938068559289331090521095068041197676142641204528277576270631016120477662512736274171116047273024127437113254297107380729279078323137478347097894060538849860804684783410497290187097783659906672236489949502028887387180813457035172894339077156294311820275616993362724668180818031430789682558984837865935459095768245477823829541525767694688640967817768903408905261994002742789054932152494484780693364865119400352791541866017559767759194175586664272011252922634079614506043823897625796797913722512044082768379131934827258982487418586993493617608215484570062071625886599766813452743929132168005568056960557870500534472869332066742123336079725653779345518001738246783098686949432896531880353731398054999444676585350003516559364873750381627996557385176250447955747926567734773012050798655601791786214388771250598107022461413128019078316355763652502626358267236095076281483634095678056509187492452716215494335206365970667382924443193909084293512950619659773268015094882298057700928027070360955146937673798324122618772571250083627823680169362505990410021135385128685538748402771530452100631264904031004683899026629128033181336567743395332179710069488140602012852758419628906555090661531019598223998874540779307288319334017850884327673954984860626604274707600780249745698635712648416145557300972038875062002449283625026686067434646358009911395321292433318471770822153577402537734727461020871278446955142856314663654895892685325398331818700270861317429988548652792063179887362085881300615252987358825586855022008611534653191063813923572392319302555414256225672221512892243116499440308858806046218265852941769665710901138764319070331650769071770235578357785486620926258745455123782389418860219229233697744352464491364814535351090976198282795729586979695964926993751845734660001777985119160781028186862732548344802169699726288254763880320265368107853090817147696929421744049434701031483380120151186979736389333205374695280652240701715326458247630755217564928778484643654735550425620053169021652719597070626075976783026501929214063654644180691012266117236434221104520090055005171155355525317279685977604794200215770132207710613611412331444335829565091041348420525612747278427946826311999756914425221626936457350946021601583415818832681334354367994292633851605413800788458379384531961541121949115224423396771091538032506869812220915978821872291789102545356353913560035684420401534398583101822454418378308516696476650319104016358409266467672086928775970679423289618176924426535348325037926949224083336005151330017272352398967126356780779244103450467556475536843228972893413309662619644883035641414302576309518777514175376353366553976170154460245229838954150135563172586073874735420156999710008970993654174696648344633349056257829635508915235145980757086386939278836109491967308091159542191016513140312031378529904893480689199445074051914131013557663406562362388107641140183521451695842913724673073810818198526727227295855138479940473751647103317623343298663459384231267588154561426015174676360370255157137626362481209900132682966319323818884509427660734753683627199869194698790359309868433738558641012589061464481954311752463572979614460322891129816927234409217246589537192554700172628295889990870465433075679164456646302441613735374229342983506534383859931806245387696657592625414363632052701264655088911209014650793344430561294066787840081505083150803097830431855111355448605911907779343938049234032371674599215583481557588816724358583826138076263510783278254375982387252987238086473118213850945412265934644143261199101527982299043507717372397753899479716961954357706978330797085617575902322196960438673758347617522342220741124286779045507937645321382357175765487990014482731906744217697817586395551506543384653536849231077044757406471657031787125004066714535482946442839523456497358217171268687659829886587848230303380986002039110924674905143629538668077003212763506933501933105710833641187573453854637543709101520900345398059137065650488120075796691664392196884283720309657008796078692777684154497342088211589918684058078833642361106566508589988267271168540434638095987844996837572218863800999263086337313513399947725261054311626431802462146536619695126684303105965209855093445558221417830378845100164056459817880884303235872884285476379009101034973402927818211028188404520395542880261532687231273960152371758045515380540934158371708446928635290277820503266531837636987930837825549503191033680130958949544429547444966336063706463996107738788525268235055451761047519904321468528491955356100905823476055032323938371620059819244905902851415992708414802327292415655243075370255967151420618845854324179065346979911731880558541283582675121123603538224301713393289930153135075163357058654114253858310013225896250223183790507805644076608039004612315471616387276266412757101471073555310560682325883252797923759127603912355511593678943622151213706421707736515284283561458052548715097092311382674894369921756439187795407255124443883159339147752685588176175534193898689618066534693310692599897234278342727781844385531114909309414111908707775398801607974001533095148406818252648592364940707183892401551823774918067348765502655332194975239013225845706979264213507561504097445580981569533999391171813141080925131643615374433914290293515459886704514032629624619140451786742874181576340119970918221801585147786326377527870203276835256064900698288173173671257978290441432654089909783355996542361857261704491961801322256630503906223726947157698786975660658441835678002020995758221928737949797803604700884785518447475880684549695591219056681670780372467591578149441251506889468235160714377532936140316934633243020040507985675171440254874644384537849910778357192019114735517534399204483243156111287070801861893117064753364554426158614831292145000299290064362956957887362031673683075116165269689862507373150699277659787007236357881952588435807849537423137871316420275393707130273858211955374235027156531271703034827452512735713018569184182410094517354998406442553668964529167800532988926460166416892505446039924546788283274444385096973087978157416556756443948132127397849362202548227440485927367612344331753722169850818648685297600981579011626729960454004125741696371238014292276425259420208215140223856586162645844292205305643644823231196242967849521679389574825740482547445480013582598480482654503782747611258369862283915599766074177028874897327249913684453633250517370390288133206269190377421241821528318552945411092332280130266031618748092938464526827795507386210110015802370163678753500367711207282451463347313923008501710564968181281270379280073145909211900813420872330136664542794574974700524215132453621945161200803547101833501936863420568962562876606920379002067524074147020464600372223304639179049714632776054729370814549897121006648813240682283489833721395398093325033687248948111646826643654388510159189768473700578065137285666060385272818855814579079906084350685374141607808594575686490410317287119282824995165485252583430032518051411521804375915898697137362885073184272149965188735941233828501187009535996541683053653693980316205929332622212377522680875390106629411708237186264414726132264065036479567853606684330976861186998603101947642524133615251032318506174392291703080261971884905278838009733994862073796898280077485005591181019729093573571141216986167977260556190393066352527378094790048806926326550472262958547089755498908804668357162711335676814829162731740464535822562343843877746944008373205379705082530678033248393703204198794977657563515155504058146878868576457286985271171335771763943069880470909662656929583003473354557264643481359457766128493713713027251614966809684444137118990167181808638439337766021903244166854248447481492177351765981862464882684071354587357355894342178675635930119332689145700847235267022641567792635352547773415061891506115568204152789868455244165070913729702679757974314712939373541295987166111035958387992305953637347314209812962606003856843603592306480493785396566362337129198395689672839675590149358308723145467771308286935555439699749769396523118056303359086296053636047635557946480535597235377541163266905553053984485701821001322203967424972337771662726740169093193633089496342067043409413184518857037430769403096623937407957651954987394396771912191461676282784955917299963601441110020510360820580224825214144884294683814513195748647741133095366728543536390083321922040085374135987920246437329301005037372557534911631143876894179695945490953753232929170622250421689860699620219017685403062804258042236331848863304260700319203979534333158045947788885199416145083166162680495711999705339168454720217467655179156271330068489769053620998556830306283831708155844256399428181062017201076752596389741709723550417891598869808510485839277080523534482996893104577423672808624971947111249803445989633633262950055721461593085420305838354610907311477870389020602043681655675542247025865173507268511155779481064224130057225717291218744730688778196570262392879371032211183220601726381385235735833870980459940302268724779393630223396555045111794952209853104531855444247903671608376124843805935988769416696941471219497672350357054254272101052873034971624006690320034302129577703407831469001055333899963546710641262032680119636949380285530251773933916396364648960577785187327809555998361291345809036912728122221627163297414019989323446160312096770899130224520674278265875334660616415202343998329285919317601919429736919209988715700648286470956241840583600218271425797802947503316640882133342336133239592641335897673138027899616354210091485928745459814164097855190078027433000461322727475494938387282494587760733244163684820927818864949215223085560566637844643065702547874471477781338830871184674339427754728402005727266892567341682193093092211789727997787575793494867841994540872485490373324565739748106729023645018183273489140333366240705044110225642874804959725179493854596554133407470144644615179375600987436006801661578771362759295635340930492888012147234000556561395116736424457040679586137231490181452868836926781364778254038165333728043404083972551794109332383194581420441349686716525115468721403798565814544930501423813585451976285201792838077213205430615835410694348942951326898970961281542636726601795479521648870517861624436437581843091502378550311713076844927341989553811476418039636232635993387632484886406430472975356604560031317360273106132647560014866567598077380460762598200529873586653766390974641841551478446228223866525331511216500065201468352463158842335524101134979032730094214858240538712525238495932277838894563137106156579616499445151630803602982989086027903930608277558691957231447485308701233834171758743032693285493502224177872387055759538571255025635778900311041786343388167678683142851592214283084399015484715636194966533118745666779777773553913855150137381000889958445173803851441115818795108320268535192864003215730094984303543414433477109073663060171935021997871272809830982677341046057605154051552304984912163523421222863212656415679852527505423018739193183957091066116706852000646684640617752856082122902336750256733767267635084474064087933349626354003320706430821860472147079252115328198434130251961912120019951216145023027134437717986957239885346410850478444153311020298205408049461562648989534366131206009392274754245142758505925424575528112793915880289931887592901965822318186819932258366548649091692350686372327523017268734722224553509730753409718398319671306925896619688571280279196569576004494941389501432319858880604706554902515563708133374970096012251104715794694968787018628578681411658985630915450801847909250323197693792698928746962284870478893465505618164490522837405697258013096773707109974450872741961765498235670242774049077856491650146770304686984080873185474481678731275443247175053901239862247948940037000104275036181015428122628025190577747500672893669656480343865145874102258812427173997269133784397474189526347116980318778391447113407853923280586403170179405432168331698003711810477993699334282608176774280356008301472986004209723854223237437717359066198008735027752572005015993118159920973016461763443016065555420161303052368383054953436100959737358434225726608153743479823623476311079397183642019657571845211283246193514778879391965878155114962393003218917988819206008128864054763767684341618869374030775189791222208741112959279736517616805172763210090502359157613692603491210705349207819703956770233339568624001809014898640324442811418798904378970195800736704651567446940620130360958767762960593310953482190482708589379626688879999232506471424072545423365073346903138172472605705672219809602828290496795473052809590001624700601275909251809367285565232964977987058649152604385703348998438415687926649742681066424768389344214135540492740112477897981954794254141693630324333768662378523263658864359029799074766643628878531159285174808002225987742881401071099913997492451642734090536522444749364271548090749093708491106440046089741200252307249542661631859820607653570507376181235929514932366009776635869297430352195448778444735485179968387239264682739944960147203780132258414123694362756281902285245983680254141896962855576529814131271993418164903808540413752403543052719939452061212156227146362079968548433354475873245186825834963144209820526596309706376989620548871198823129172549849329653973438672847904265650715081564973087904727128104844881461962142099736622696214645314992659139981931909422347341940218647956310278767243023966916660492383601116786118814516081444191102778110107726114555225694838340402531467519380245360171293462666433208632463694358515964635784677827442089974725162788074804389835979663313895035845232759277152280108282453596482951289788481873487742424844198750296345805579502854498961809941961159516999724607854063005792103938300911336522258893597561274052700187088600158571489404834173615665307067602529808717883278993418578451502064082487215297782977845215065699732716496021498009174244046889066696601095993230095628717879939156887030266163322599731064976856610929208606304325854061162459378762186675047601711047729869343385705690883841966533844478236268084398902626101081120284254770506737843829690977952636175565197245685167719552645056424471903737269157536341050503796043220587257755452095749532580855932929898877513527858193467902314084255855446479365365615583614572576465433988840307881945099912149062621529988016365148632648106829017637522670821923816962191803119575960154674644343408503183580939506679770555862333452170704001441686312356312069567574307427689167694977642048531950982417360433318850439608594863362740881866787902960878077902419524012984592034116061538393094375180927373726369930976292605803247062710923167006960978723643071179131688779707529794376304371686928052181408827520439458916536248512902486989227574769709046481598566220149201958365886865377568232710449969202238099431881410101063165800977674996069318069409733010047038341595277840762245957767402290726457986062273641880989549331487546155218567531843647154573249363087360210579427187685092817420901990538721423093101900912163355951863504145203182415763259747819949866140997230682548443767744698527110137558349432054191317436945948428005125490745635365453678997776340818843741261692919294877639087814046052432244878642793243093586702632801985854485955257914225878259134637828181537622498773336468334721348874202832575156397049622161405849931045068636651518942781007116469401608791806323940320419416304688145118178092683344767626117361652379305254374239345609526594901798687553953568003716791896032299325770175709040644896881312911631968488677168218655496237557817803065119468122691104699751478114460364400265641914667593645611549390265849033653113620501575975548871795177563152104911685385953290333193912342125643788816610052773468428264169226406564275451061109409158331558554039518909475668585697096659642504963194105172644915536481504957937729129179813841095030280839813431033478863474593524497971114418486708455841441945609604388960127483076236861887771762096798830901898133030826187179781223453480747515965833512504341079964213791668315264123972227366941384939121873846448025452169538627823484911183845414212999067551840686664053150137347663166886277026407206099903810305707931047377392358282169018707227988981574105777213771555176766486038483290899468301049033785429187149289808837557896567811100995889781625109720400988012666691034774815887775039610396728479245733920208100148521656794954166286159932674319611735863335502193460017811740538380531039523782960264155307448767025580996266601233602651056347047307314519307783734325461612958123085715398111858856464123716160970488643599515846621998187585982810817440452915967673272366544351018473109686328891078313740187441625687851420649353666671991065511305639083890707079553193517449963782062641323117660771244692048615451994721266471800967972075710652372489922555106887701957251522516307496722486999967234020397468671290975636946978155326073481227349258782279957156027797964564129500887847920246690585670584504811851465523951810016123755431420876832054088343041674586370698240004277853140884268874264038795474341872233542606658786818618508892797636509813678208228605237462027615940101476439360650611638316877283751168280560167904585722855425766102213665945294823176586841594788652117954391995101517586762067282312730214079878075671067645504541753216107643577421954784799365672331949635372548014981292418457932986677306636524639697816311715935967409938457828340671752614119301405450171066322660258549025568131931078206689409091194600466902773889734863947032675824479032966416138537031314682900895149644231794824901111391036813593349189165359030431126043574689895379130965907432291789222510257749623853513417790380449122832229281789036293718389815259215290652929948309847701787738729209374890706548542402164918096763494939967900747227688646389700180426183058342290679454949107981398103539520580734050788017968861275801165768072317494795178446866394079365711180114418018256601516219097099565154578793851465190076734848230583815858704043606127839266647614898540395998480354678018846899999178950295122746607276311242215569459870610416409696802131217117251349423175901289374610793866200635920011357557978929670673313191373239528999062071809098726495872311118602231262907985932449754630139153520870312300454648003173862393342657887209717329417823543589939126166099544213754910473050711131608423883978780821202998272159941555915428491589571579694850240955236918548837364675333863576390910584571537697443010341729572142182196837698002196318573521652032105772837227610634273289130166996292216705279260458674642904446097561392983482297294113579985220731172547407663795406084279298308494136495850692291831694614527886178492013036603127351924101847751358451888430748273342073600352978460465196698896743386756590084455970330035833224319288332161599066521921781395395245579226119639022305434996353649057054427877088565309361746747092488142895804938525626161272091498490977530120798020946140150531513065452439203113026282221596125772045758800688549160014189279186700263677292087971598801642368967342551296538202159267117534136037683459026664910968224884333059282543600815297239640206930628927633268172910574006558845841725550494250040909764041449733851690360158791467541933687423226170348787462460248640672862858849409357660112571478968498151420389437468754526390715423644417861660181700212964424897004496918846985893983240041572200240191677928726695057753777614286192602609759437230259172961064442966737193538309318891880212543977879578166608517716669367522017135134333547508523714795493017177567396600839413873012757594089438354093433802704300155901192368941797456939601761084826123357838984072411531560663370928472220951972121206124577659291120266312016145023724411389596945981117798743049652614430631569832281839716539307862432528846365342637394759107982916600922853917624261623917290520559379853192242794663549938528729243916181687166136110316276127189952530229367910221313680484540610298691888254671283707531820873102396401400900305778753338871986649575177974408514163700418126353413195594602845238704817540910903785191811323024356986780118079495186238357888736164921461116045749858300835596505549215200845366704843020301712460803954574622790475929156741365213026770408335478109343987932294048754330192999669632241237727004933568106739351768032184354499430333936861054210895003752416689825251292847374681326519874792388676912712290708224831553962016461059110282672462053991621489594074313087429116682777588861883691567210855355851210946207848001680279925357545163049679964580594827497604449394768141253906591521362422323668990105543344010120514637376913956259402950063351857248261487684923056442101125783215825691440515583805615549480016206763656781785938050312020427374536988187221107761047089645745123899912093632713842521917409389352754769081539952642798262881003768764091339565102468850259011848835363039940043743353247487894159800828127319197805465863579007439594191234579195727847926019494748099447614627882113774533974071605642871186863994899257571853676496403318916268279827603944783806492520896714542202458792104252881019935461580694805907520900015449461451264644960611351401495156595178321215678369445068569069364386256556635477778017036180269823427016509751248589081442901192466265635803296900411811296539277955771577073439132347920901753817104952260083375932639835974212481440830170453358635562264598257663750096487370865833018939602137772472267405598934935065176159469553285427089039161317148804583157286427508370588504726612585455827002250475312073803249391672900161916499897258923032505493802094427864097944838890569677740698548737650454006951367319796889146534297656274634236133013596452570109457324482711522436054218426292288819927678388641763232141972839008143281073733002191937692799454120582629133018138170385042426820825639009026466630397046375963064980123602369576731945333412693814456169044540979282761012044462799536412441098337447753555418126169647529491659478165377766627060068308727212614226253793321995101595739350220399426444428902769101315803570456484908109391134782199207736880292865490537852346531383833377282160677758251206164943727756198014000333874731853583305007084786418353478780022771226996622859998046536092863507340941377111492250548948968085344137037918828059632836160855868282956646891460634355870298685990542259879911402892501012954427009324558799373345133963038842769299786747994391802387097525311610285878045956786186648097796146636109491787410234950558768405345833604615327804157338609425873320009950293202423311654336850155466621600368708623119949405368716400600484129326050158671014750631523116284663059671620798972546494687084520768238138870933624729397454686544530122991965138921722997079371646595648242898923283928682863845486822223789284843660390272779641869621527830054613158947814079916969822487376218872451304484809713801932924391218751340248033720572189309741314784111526646556144170719168423769205613470036502789480321018405256599561402372372173738000545793243272932612016992798044296658223205710958720412944694890648060474970740122193589865504799852430196127866813746437733093710445937662705003168272308563462457251404781009941149834642086722151045085531086722010252566794986613461485859001110064982629518729628718987384425394530763625177199610861968089418177522174643498984035161142990988995513385463459314728326297913597798569356521074623525276673344720955482071300332544270858194237301504426209564499370300833138893335777493995372648320875080211131141345064829758853714299632531369720000893966343693161041728403970156927784918569440554781057064373483629250151321292168388853847641430847854962587476765030096225065000727580346699271742095215648819183003895847283123819884861542128492408870727364804782481769647245101416969532969996480963367214221650964453282903517154631171261758690586055857162240618762579201564413610947170953350852929482182274392641037983735081161275454029294015754856154715460703496063171260614008942884865208427904453725164307306767607110194184491899318306357803136767039112079643994250329122399625088156425935623037282229050229992810638729930935033658255320790217699741005701278637376028841879046331874366495198832788104318470705205194372085012896329075503472263274889998110303432574324607511450129385807503751153693977967157871926103351220928259546246350016292473467220245762144016793738577569105828307067649331828159840684248258929605595802728418113701485409500085285905336971118232281135417256323525575351187796407177531390588877950122539821798351214020969314536913563817037363019523964626554806713792977663599718897621452074558448849934123144195929325643598392821351209869832347719339497355936513795657581610851179848326163827838703620395543075093636252657680684078057697593298242149079506565852907898722197107347240575025305850541700744001577498862056541662398036530382700600422549256115804156168557130927445688123709844337122974132017966907889701636977535626432849939039178402567614679294964198910553482064710225272128383353689641515951569771039026677255404990640864462666547060100618841249630825132871910782853503823515913737348612498030476256235164930664486196139149228189410418653812162420497841839426047116880296917839645251297731503250999660712824662969459492852497657594136973260081420939684730987382592101276367360818649863681138280640001811450511848866311818352138777803225462782229737862535440967717404915320572210002689955879549695984148085012635698107443257853089092567847938245478389168418444187757987572377795689847359848073835295978200981032424294882141807244765242536147892653717432909047355050829155169796251563017352064232117720860245154688135066044142110371712798188657268747033774230510846199959281969721494589902489624387220334186065147351975460978161270504134256207240565142900334870008681684837110908117544630082546438707914057658549577356922383257461666445955613726379748718182550283818989440832347583815245516372051343100085487514390810392209515342281364206881361740112363427370703266939657928977182306806602762849524949348281988654285984066001871415570090387754428779721907151256846551720212404461871287957067383704605610627834523526670771088006399975113146497483829859429529223445934158733202225722908995671015085931345814722160301491124642791701385923544633663939577511672158015540610356206269979305915456800010390593451506087405394987168129084677899506890343542712002602992669719643047058083965899735600500692664743203830704921914772936734033457176709642700360696191267125516193236779095778506751834962160649544414837814411044077202859514099205199579519539070689173148338958907241672865534773569349139613629999356449591043116840533194624377331452854630036566517703154121565861870693144341955187169215958619928879643073024083352281904072419098424019653673806025211641483605853760257852576736526184861670393210633390310238501738126411806647923076116590173931801517659522540854225279711755695366240282704338761343528662027380426090663248304512679242842035726985815255384413338364785095645681502310119958814989768763371345300554876273293844612398957830341220000952424742831056237052093111569388595103351786529671074631616194204770840787264823240587991468501055656090979510305995209799288795662565539409687708569753787411252285000993955190921434352109136127840603513567727075996146150172974462463002470730788115047693942999173553550772921647923387114971041612097017271178775114383448735307212616253138439117705722207321592246242905833190025140282461932470894810665505607602854541579949346003809923860285862267702144069175012237051257908258620603044420654151241404057813029273180956288737085111230022312625609489985639467536785660511458736089982549093494865050443877314093895180252307920320716681402901371580162483070943348578380372086105213998381227842823068314646131538774805340839594462848356844502794809845197430503512371841389458362810731013542954740597762998304193816490627313340090486263260675530121286100378836990743826649598439621889376078050888415701419267615069570117549347984031085338979500183092757975603158295551496757571185349547511262205448316574119775435780481248113145968329527180459395083452746523337317643580818574028034074501665671187877353611001841347575369074298700261318946052509761111219229561627873836241821480846361043007154752174576424226192721783195033788823583617244501919721900662456958017772115603922544292976600172962382238158357741671973575364027686766419283094934557463370353615858240979725455078851177534158797933243615988001070957907915211849944585718442700674161929420457148938334473515246411385015990082251079838576149307328856195208187783568497803845666946011741146418232382029485096070430042363820808370248462630108186156769451206703143019388878878248910337158057173271001549846037430518556209018642647560613915272445170426168814872652592083183893999993558256487055366599776992681167212750639561731895237562385069416486269873695763312677361751467464913685585685132722615638048728072908327234839898270668977476391768509663105854141526266349062303863580117602434732950299224938161068910742001311284315226689132534188672173130545911458821036996044080046907834696233159203464617889428638158907283211224541730576598175145008321951432298629495612498363490968904542480797420323022533750717694532543804091493822777685692901413918600713118104106156173466236724427352365571459511630430651880739964582415272315787982404672508951791687845154717453790654634435948196808811412592974183795263922738981891730975737089603548615614060859711124501504342200358825472658336925160009268177438284276545477899335204448242752026817675696904299566046612654988108622628620629132054325066062424154225532876435514416036231334511879438749740722773261614014321416075367995989617874425471235678153195915589072055171229828734719015364155898900367818395473577469410886306701193510325583301206107062438915205760671874960189185311402719345803446283674501064916942337248912732051333031712888472883957842853032095977997550225056655871652381769467445070761423286789032461868028661114011437224072597922014289533357424700921256707067162877397495971717447774970387624578443639360135216455210468178253918232678909616954746704261838259676460352498978765725218691678650393436403134444005859450927711987591682777932074621595046436276530387683512013733605807611584724945157555539512958840793500487483608936212668578695473051645937392950601520402146139039491990501710611241712221027644564980679341304721893957330704654087060073076316446418108997474525438026626677565752976218724855589820357952400912164351785879361763475779200215932323114123349640319146813863238699957575439578195847916440565881685761043267850676221321060361958381463133516822508545444329326977963708651204237417950777579114848455757371668870371806748130471238801273035157400700239830718437620616607136150779749584977201253648535152739429109231173427272310685560503755744213484726649770808344155616532221444818976365134190276651131382814404410354940059588836365151078394760663005628779000436061760736389897014491978258430629191962547404459330269527552824573635687772884307753504982063366825547449628071811744261745439200044058951830932496379617886137554763659267216972729075287346175073806325106531046319137586729707028045520960683945560084434414157025377710619724471055775917528607774478933038832628026275274588391113382979229064830809508448086777569998571771874613584670772383316291885969024765246678854806605206423579776377143343969979912215927107843275664893486713948991191129154917128987697298475366837426714732950475989015792232256609583482881363131415348604618138380572919570803339215974905775092843092856715431706020095003904030628511849407943946897674637113513351690212159738019961995808222652599387646309365591574580176992236319594246991014135356424223608868299640714916400483924742672887152025593992278760865608464910162301475533178508677286982688966239733412351546974890225149657651559638666527369941083660886054034335842414376606579201909629887698767626601763521058839502023492452198170569861708207633662023203646612523452048777563942620765393566244653440177217838156461548536482087295452300196554348132727949363095757540795293584567857626587606310708538806216319357198287851677628291559393718186545360643986005862223437818710537565875777307701611557295378025480833207182082610437704400034608332747708291290877639216437190118072102274166718608080023239759483454351459504603872515033010671336582687367946544499269886418246514874003372528353629795952697638372643363627251606161679555155354730730663816449439618962016228055314521332627727066164716467722639005432816032267211746708459855819534245968746645960413448537041431963838334282054204829209418736174343670302744583704049816182278742777343052276963254466465917809351567877038198595627843481003734960168764132298338892421132147169170518417338841716752025146435677739760410632748859779735939797465874533105032931300694953261550529571208941040088946777029533856719808141709090023134193723007521848838228452958097907255341106246345660918742973873884259190300388069259297605237211602133937070953614357573780811551771337332768348306054250022409384169288174473168840659348716721314347916454372267414007669330392746396041166330658124127275919222999517035858695486738018575504539957803544997252874474021954031059982204614135249450234227556161291095001456297720924113891023606024115598536617061404318878455066218865347902497616668475715045167060969428283231630676435419413143552453169519016410061300753466011546520072038909930574757794170673407141078542205115253667689550279874723407320388871939808582700690974671087708842230631383934632854456973673461487840596485882363984704292360096031102215552244905366276854761781071598294051838130214960844357427977727738771512094188041682202383272877590630830200467038207524292363413071036126813875158502873936519489295581640242576296056489137143096487196038415755406342970153097991030211444287914636085112900582229643922219303635767024660532963412846908162456318637830215829413126304063336780224851522576297127632661836988680197861079737427074891413784254230616925155223664521114473934969710884556937456649226466353247493145731978501173345090105790240671186401130388490298159895283952493547803552480638562455901748315939967539539140054996146862167994404253148162412915992057413390516219975812083999612552697892914852821238001151318492232401818791260651808315401704631420702091887479006380194418404127258234751578482888121370845574956402216808539627287880893745100565285045696068825540525752919614937562202899677164931634607775345621028797141091093345443867458805146875457265970493892912050250477354061309727101139659859572952438545495107818589624238851252756969777110231956130044027591200788549598152683653023199340483944049705391330245235433088120528532344282743303497146149624389365074437609857493746096989906394151256667454432487381049068805033898000971780569107550424807319116615733059494684478668341610446273145401011695175082634781661854009880245452790689351636407826150084291551857687836728166023964838850483536234903780536525413127578981351565097565329126422769866508797364057370786905640988807682379776731711070806514095737156809039651638648854311797751720988472981233595443768538975968969590828801645329193017564555597112035915474962649877255525933193605297076855050791456710318195530882886159985723588224208357446589219209352976789382451485958564030231977460807283535932927092468631774917957844894113256004754832568602961702939264247674729805406809582707881800984470101222092982206158939209447346794845411072065517093848019366221872124041084234446227761518511074891137140523053720630800738724444415369470265166762683323974604337392524311580800286166617431598846454745619772871727030125391936220956430191900894352813672704350578482413853451218585180936178010772823909543672608803363100648645158583981309645360237072822601929901261754598154974623597547987757604620465557733046130066777499076326630414616246305271616783963539648854429034264723133032112856200784325298310537217401521389701854156376445986295742161648951145753118050852305855624251679270350697574248016126090873970473389671335200291837782080898338966727437675840999242616525112126289675106606540035843557512907397479688781346092008365930209584050361477422177186401256258389303805736253002656890633460285166324068647992742311769795337070840920458882915486848619476355350372786808193220967850854587691294726667151207949608892364383793656209905381978851992016863391487203645756611559744838073917709728610338226520102914129855391702603872137672515613449077967306151383636507377631358581999508725232098270324356275102756211227627422018539321045682230449258887108641341961872698069749567274726314426369166889747763183143553965728157588011397308416296265139636111500860640202943368850357375654940103992219431005149408559962205430202610456016579239284217345047549411502916966201943465769024796805583109425784863218718600632631232833933147476594096353819580476411851651239812183535263678304439026502124214497870831075115838351901767351976808033139326118714180886979487316029432384771307273048607669235180806048227612356258433874113151199116423195220044628294981699656812499904820107216335341227018146705967240898923658914997800658298555158840908774215982220175072554782635743437419044057626722991657078151939680186834137715109086025394559622538885424085500368319130177650206412498544340575818366536662129203357714274571026617778363604887320003048001603325455722355098137808241775557567213304626308958503582046515909979257658103060210657173033179128308768960222741507086598709717577058263043200019285357964261921485000523910998626210678650286885191077276633222716693265387007268502401385030095920762246066827209518683839975104125186395824636607637073066665869570779705376586672824831709592928960747347091199560940330046482250329021843386879290698293873861752069403065473320856946891153764682090666598022917874010786522927079278169220934586820567784825770282269569511075384320298170857647410297499842103859062186984813224894269465084092630349181494900343890197384929022785621529665770258507802614552217425585029688283099288951758683886594951451175611711895986057254007669024194192069749346627787630652377240601517239491288320115071035911021300049048059883828083411887241808577847690074969659634908784739381357952880540988834120343787347406021820207940362833567410988328933296662314697847532525675850117969090221023823456135820939021600717060143232015278615224692207250951607039030659790965529961265221508826691053239033577583289478918538733680715914993202798025009342847559315443181163543728755939456656612532030314390839130731625801881156965781588270841942503393847110523502033788065212788390081003437166861206198122135450064483556650169501813039988705719836320240652329960145369747506169155378339475952582965621490005064345217929701323998176959239319244140247541674712556768472244933119394000640541581216428014669065792345753835657996327734695010761883910228683628387393813402447121884776628975625956107210215746536763286857287174250167684064821522021785837826734497391512439135499194683859375574325219719716323598268451066002770851930589587346723674106761282945539473451396223558943474362605872560744278920018172433993903240502988291401900371802088721604895881408019397418518041377083591908791638184477451580846839728563219886289907781766807743985336225826597849645756847490536990653575731638307072348089370133540364885748838902639542894083057627649724831322805906097707822827476841759185468291711940437679770581111455515433156570335029501034901628002154427278410645760678782797810205736785039864316547861930324736718685800825929004263972140708637062506608426253683427275102632509732967142903531615994151244842350097049167179444808653691595051484179321162200249405870990643112550021885632684611769597855628212635499911261672748981194142964669001745844119521906889362285255477029429113870472077140950670381140077456484202048909464966727587943406940062207102610552623309291268401599867420463277181936448822522492417543549858464837789232579450344418253541191166579661055624264139377006210741161989342660994544954560225654157851656380874286980882938583171734234573723866970665247526617731923065380600073954636437494924451476377982424438855267977178152788107749320210970041883690082454138271278231153323376902218161493192714039448788907004403088726118920514577804446335163404435036396825701555116195908101387580111325718161652987927752038664413633832508212907240621056134360794982063967849129711655782789284875158876521848472228929650534021229893552518218641421541876488373700741753816970513343056465827357563993827199758555466031026750541234359576667805420247582367818236117504953478705413592792153590714286109320956191110646629419944231847812777089707589270276944224743227986720669956455451998843187852872786871708427290294188100890637929276703280406344579381821825799559849382135877095216483375553653700281945272571813991148344481387671016493409183753732756681881795899591592276267286640144382371499513944753144609433918576181667901921786633952815044198736998521715604810564963655290164245232911356468594323727171498437294007478667067922198821614840790553127824899693653965013808502010413753046036144081755983400902447579742714162798204940312840166408823367465209062154384204231185055935595603449971084244369911182174081557544889821914991272971525442949834595231670359772907137390996334618004142288205156663812126914836175899964669128855832721992601246537745824293243934746003362490728740966628882803187260834027062007431674398051818733272559246117557446680511696546018268574875451886647039647589421537349168476711689517137895295990871483279807265172266557023869845388908841911410441664891403958882742581394076069816041481628259409858712915770784597926630268232410975276400390850547129390749398944128479304630199522063260334825181543914120160163632356952194898104082031973679524590385454298800045206231717903464820997941961543779657617740680229254637285286326384484180210298346076212468553409702752044591143511237519916019159387370882399467284719256188659527352932622122743967572837547363292196315022308027283312577834651514499993244841008676150981192085137239870149876529423083153139132052153598939209572052363082942800180062291815238774415395799173990742133658451527024567491300157287013961409662197123083265100369520441470346621600962026087356642342480494670311179606529070006449484253875842146747096314664499898670884023353321730840814916603500361422824386842277050780528774303507221722433619930419863291313818146944069970528198742765976624662939028493213556540466008491404234664210445944322263572276713973834833817820355490421463430717064397412216510747426233476470214180222067544678533139253806580635428794559800110584484225312518951110738635832228146261507033371712152492526998118054407459365100767012296495204401303604386440346683362583305085021288432829798442908274941218295928090706130282045589983971348138705676534452272612155496979208458267713950477777175426803184369932423149398600597188450531256636689435813352863372340668113709181225474776298076486533734666600292524197629174769684097963892227807401885336062229878286922494139526276181484985225916154217489252729019614705002057385523548871556227281592508250929995442954552117270860977416604796035911062809803447263398044954237312910438394806920080329367494715183526733246117500922722718673439642040785614553703921092063524321762952396715077139331615493541988876993699019864430390049442591706228913613919899916738999513072062732518291194989204994580227665245263619246093513494319776449445564229011583153072416321696266015104069771047089232038112256325148411688088317176745009087210521306644172629093760783538457970101943751774336386257205987733561674747889190073540512050778906840008159396497615442003032383599628111159442960944287484781859412677239637429016394902018399481810475260733690383469726715599127379140185421943471140233799855639544209723426053227905020188643311689066666495725946808316633816806122543411887776916846339607264212576401468868707748799093987714679005170459558640137310210970226918986652862478916445230967104458111375588649967045092873655075465776315135695472609385965950988069690615296474941079516302665167733643558451833462235606947912868909335264700634008265550380868609289475579131079704839902394614675195657662161741492339472606741038836660284791657611675008593922222753354773271669272911194030205425719768637067833000823529356717491435575708966063309369095543622671857412670889437467293639874104041290526223364750402840266754375361784265205092089523558265602546191919896943142919296060301629659449951487277055568523812622580932505286013612500040765185146928567263328479315056915244430748202404246939350304004929907968218479965365558768776520242703260482167644074066016917710720361446954610326081460536810219260099202655084635701611103708965978312457665980263663744196630047092732598529659322255506563025394075209073256193421466160769752530801824913778139924378149764049334161225055203002574126660246585748847907246995440925599293504014995646493851719011467509369107637288521080389585133356615658440210266273416625160571304263183514009257026254338112092591828848452986133886614488029937458736561287879320718273206590110882487655711800222598126622145292880352671944225620045279344017114571165923839977084003884655675832399830760195485260464600513653764167841014354087494773108891807719976592832641205364129625994946736564600951867192743444280389641858323157118397432032590218738510051763516148889037204126291523734049415555551004716644468393531974128549495347137190870264613006820239315313384075684368094389859142292414128584147346642227087877052460064818360095930723249890872821849345685946662523790872124306914231523793274295927893442490895864854006660671540066443259838679600674243379737356150116424689593417285553754389278798135083426138810492150326775185632433772821460581769629422948896506413458323554851556997110804290993074950015659300369747117759889737629599278292272437138274906167133045795170560943240313718273360025536520832061956976226648431040842841073407580903781726356786219455319215263091897712254001567825004521819920161776465745801860767646195381601038789574471026684037965413412786648992167001973597326642093500551931239455425390580972162616972034165865309770446145062110498805459392182651728373782826148182112297945337235410886738649074770429132194939503764415951448245307166014924561439522724484240340836413845467348734059428759904627613354029548773629144317338485520948434539186461368506932949313783191934268237661431337346096654961574976884631908400161311458388757570289991120258239050757108216681300810104399475534369038991045728722763815747720980311253663325656749515207029950443141535586673073511108959327771928176560075465530306701429957031415583219063588590149088658023145111632293147526695435575306640798033292250561579180153724775744738953966886203247875870033075026618079197054049738207986031221453802445249518249917802341810805938581966473546858290506381347897649371435940449096676328550126168373491419875791129216879654029785038228941758177587061560889634070846004579516601776943762618475732622886538039853212768294479643460118612091752173377746354189349652685168625277590511290835752363207624594663231741869210543283156271656520204308693741743318744033231339658720776607012870928448064841394580137257382564296587989616568309521008493297760497928969922618989019165889800230651462074456890578654530739106999181304505125566181839401984215913610914008029905320703565316146302415198987021821691622660467902611937354983600251539313118854065050550641776997941680784127504300810081663368099347753110346492891978130331927013357208265097988653516408908257106925155218138316321661795214267863539279876998211142378540015022136686092830271400799073315278728844189440607772866897316507217042745503665305443241112641577009975666507778542346460032525443875152125241027914908359937862053372152646907251402030300068633877960437542799989636856269996717856389783410333150263075540743058112699835001046395027476391128344563506236449625351280738923674611581847682897500757475849600542131820467791678535413791164928425648008644144021977952709695138045885850385787384129971735214774143352657017815316290209835767167016934537271726276289714373228680878110599786357519838204574673674796527763736627717539441173284644365589177981649178009621950569150301427094684710223174031341883982831388076578670386668032349319359228445505423104927247843028749398089531799020688093862572673436660606089626528913056883920435834234195883306488245525912765524470106207368314494079570602197677652118780778327464669481281170074049909112949565341331784437769447564383718716124246885150610743493883155089529139970362762425568106803607120188977663695593590773256305787678250190559181810893878090018736686060591726142884175687413390197318489426815223360006755719451780048741414632659527442210843184390961982960504044257160315920554717779704574590508851725930068161547135716911697164352786671525094051282861596588980920395427589568336076049785143548266072719878739342484638742784623277241497091159870060401022225940128928109694406332104981851392622704856561968619981981937184201904857933218104751567987831974734145228859524051237884762451110913557598960181404323317994845725443155039007764448112062551997706492052209345781384502713893767566107292684796791829868346518537638478408432674091237497539266937690239291483107024284213804832013026839203843331398568855379462447487784617481312629328090951491296132475049344903200864802411719757793672225642897275608304387401319737324524993748516191650217034003360799426527663176819752617452609347822920552725533077375100880852771846754348679191216020440737873233689447519438237183044363244983424524156766210643126781728023055523092976284724064490171726855601770575707255627476691301401885909675734748222306207020088237915358685429401922667881724800839659673684998360511894928021030713141837387573681076011402053207762706052068607755560685459544783809328726104668867099217652297154308606007314833697546771854351396026924075073522256410645124681868565766745421842354265875264312638737268136428568870446145029742608077309184892137780888159730328941276793018201463015829229035845679183547159341568209655610244962304817452991345047543952566626114395096703975068814615863422664212426120648476483569050998670154671091308632274873635612889394727232994434703455891760764684526293042746341841213463121668686625381546595990866233446535322545145346138268571850230533881480034114780975244697484944690131672445629403912993311951690821101714817146828546384005615814069247803669051266395765603925842742878369602700477006117053754091592149489113581532509599968944365794939524765716912498600088924062017997244814359329311987080342676687838102294275138451185457278739449355536815629419202690478905302317994052840982394348110391416970044547437510745516535916401187801138057352362136254830637302864470383030220556377535980152481007127471442252010129301735755744252225208125084992911307530036680055288590901777938723326699381720454271449369889248865668325191003750382489040919451001853573518772900870797201929035621530261071487337166575254678040794516524369231212752280785172106094296700260563759997816092428280918046313469863975398009866559004936278633870660254342159966670095269616151362885285097445502938403660941988650412295786797211383316463470033388601077069411219338965912113864398481943423282885478607725264153167682393781520401665592856254911086703933228088694647383240920956854160105271071656705581303577775037632799415552916228920048557933836696686746159046788075974750583936770715677811616788899134740516933084884763989953957202996959053270688186966422518036828141311300652283513616574298025885176489083244159228542323387122730866354458849078776969476758512223055282900212608316962701784219121947848727483279987876975553657913865009902787051793531168650437693596235044408724913387800154837698590130800401111020979434906829732672419819931119876570968809291424917215062384053869804934909569439802670850944005704768979129839452048334222706345470046044217376244099607070032801692544946454942193211642562709495322257627864433814821484816606821086387128487704359098116860395300289647556055353983435574970475588969175847891929153098513082598036798610046620834963708355271345792953372118788565607409413992797841762557144724249844400364082210262435989619618439277645407909386239013396837573320439389211632443989992711594520223214912676484144744074228994761580932542334882213780429888018982868499187372538881196264565563135991146911690107085285565790295972713186168708740812999172913669031847386148277510954210946085175114532739643158711384379791771901557129996816155201431366814404916832079181711942245135319042056478910535710973162805481652378848533751546171696094451333834023739617261771918955016554231940353560459098908792313580611386995864564836185763181654857942794600502246346684578775983631188144544465369645399704970906261645850465769366410838122082675453274706652713281658934147889199933831096121178679916909454127681045292861674602302843499357568281199882581063418328825181522277479477924195267265940393531784294286814605652984468906088858979049590577966303991391447832481041922355931568174978348626676530100038668559470273300215791201372531782503733098821984458843446603534281609415495066643358729018251158347835289690964167340147109467812390273178339506744978790417587514808179436787683057897728356380946143174715163483974219954836719157045717759898961926005452953699525749725178603684330139554057181028001040511749811536558082668745902303902237651091501185613424423251161631501323094161433481174915690989994444654332161728600606235444938988268159200386682915171854656408333555283140033415499085933020451433249865527229965130988378843167757160448104010292385562796616706369349295669288358452127313029586688861617135745633442036638516892798030129323418839382992359522665120420936399629331214000499785200370477676277216975407861751752894795135608461610307672044564261422835095990929461419371396289525047507260773266212342752721275108332568020151408950468317855727528883005262051105147284846012637040418980322928045656219934723625275013912371382247508559196271929360321926782332685192791583681862757156152358505726148409917570452695855572747988727922225587203982785480500440127797550146932877122511327697682487215609683337637444260275884708734960387929077317334721086251922113116453549845076753611801685905230382877940986771417330870263160014267571576746504813349960718128871353737223566292707830603791879232392695688338246746260806882051921817375283927153410169245422959084249682742620612854154258559943043149980551746292447900819056070112013312734011826677254828352744451352681392128087007403640241852427001665388904105953325340074060271964979385810736753338553868676948455025403880764772461289195213658229356957882239329528718015048034859557751363461784712578272527540932744136446139569828650891291490732682623935220295793472230014167346553000596053061994351681187142759811111777970910974338260792236359329306875647061718749435300083710889288909320220129336127903135263537023082375169628915326211406485917540845039962608612994846210130753948320717566187655971044008098179285858355888949148147894950867062733573307926443825900303362322653750700378186365860082125083967537150340374910114943700418964540587525819977807627947990961289475898480566290839945501199252901645756957177454654071580630207471619375928865250385025198122612613612347506830147769070474003933575439855873223091721133937066798003232725464219547378981776501585947008342404019982205333138379695316711118926431465914112953721723171253132116349077090941626135277652174958681808477244500237007946931833333407329429259209108055056162269126624815205891193011785263478187215749011764798804695183563232563136851477570743883515232452385115192149342601619252977859943981594628690969317945188749199518582933683212616112973687696202170472848572158378697133716038627861391389803602727347107311580739043930685344596607721892265186339936387801962123295885240982453434996511242789054054882724674094358520848140656561920943802608745891529127703124106719025789060335644788628657455060558734560720682915753587914111164777568284343624456081986448165501892796869739979216769821318773736941115053073503508702832041801862732358214618580952993318065749028863766149306930729095474047448053067596005647619041936195278370878233320724667529938941090417761436902843651569968800105475125042059695834560360677845218821355405939539906474834033202431150865902814233865890585206370077098381004883505609299746254844916596134904341202350797088929039062779586712118025942598787094063178131314836448489845162325880474181708814254640947417361519572600121563543243092672044224430584142223427578790106766624723381935065064778531462339305107855339354300121468967131466490909434644684509255057739670760336097620419064720241191537045566327052173386775364552161401852483648365529542914426265012727805960813381016182854764096027098444752835399068862881044079706951332755628583651243425746754999593854165363807303640749556476213365064015375284988264594241397118785235863247578109575815079299083463920503722744140657876563343685300835280186363637795632658145114210926103096980332009672796087234109944629361511065011849138987981496432929002432237418336377013243131450054011201465942662359226194378235243938927894372152274898088525757633503722031530325594985731920986616620634218817025365254813590524999794653302755323223071161432702350016493962936903770030603892747137677451980426808139891136612162873836274505849963041114431909583774472066869551530901228715839653524301193388258371943280778061373805072150890701000699090767051545744428377797284251973724246534278037912263015569523679918362127835673806438420023993465166101100189890843934314851418095988565289206384803125390529892757781663728120041762450451774527308763467565050404049738816544145352609833806663526737906140931009647403670604794761158703765053019086084211332658318593979751040270253861759168475337948923942361057811567348710347786776773974683478724256895401082724775533126519335581331083085207862186109557006539325415209451709418642096247860275988838718658016443393978204080596479897593904004616597749084639127161339198391604199961374807956754219964444100267103800860652450242524940504887131073744677120002311298318180656624819105403975216831838896608157463508568974493657394963012711039752319359259814094564285481829907920207940963238517351294610251567127698091822124763678000978550489488416457561337950070338756065104081531169192054672196269555400437313684055582010827874728862732682751264370339409876376083950164331373037588723707016474113407159900956269462989220246431686849669939988434136732656286685096237102385254752413438021262484129093920157820525550965643877704198351849640777537259943403668293435659342700458011609911327187219797326805119778463460863617678084108669445966825111165204716246694160798318642931812711082817155998648654262989264431788379670627236125339001304764427383882216341782198969984454631398470010516924006568826377797953599764941169820486302011039242422675535956725893202213939776284099207723137379403506764210352247650050226487573834957126322595933300226233839114197775485241707483338309913371615722733026423177663617723067513202044905450652009369466918563592342316224352966777252439386928823325985923399338496694575953535469805435323202464970721059187216606356212694514991427994346866650371989216087448942041984029038715344952597855062215654302673237736378805503609363836642651722705273642271951446792867567352777301309420705593229259114067017408396874380097873736746196187153017195668924614903478558583895856065529632030396088124378050060184780484923710970239375419969188883094922493725792846708860360120328205979593056800460001698551485875414404288431048355901773590210199136549459445716343301738452474041354758572020617565531975241196165605754926004751969632350944906640812011792098027936616490166234640694745972282106532338333919367348925649145711693724246658748219864182623567994323257725958863763378287295905923239508515065267406812037519350595019050211218122852072329398571150916710138776586887600761214246716729359243426961502734739730278752351196890622067304882997731597661599358769542235911499810055863554255856442703685295929385430838997895861797940949722961736877686420531890263569363971442331481011095918237780793993310981615518805053928708466661889145328254072115833733428099806992991260241914229229960819331201411397041525555579151690656288463805935223787548473837961453149589358334988334469876607901392521289347200381376607898483195787071564208579181051020639639996035593254348657075586299904825963850766043667625149874926255521810938109417882453765690072955075982425621682450633188251056203102511531879180654285073141368199956890199799658276665855515782878786777029699547106538980230973252375391686106765007107946011943001708239100613019333527604833245117555981923922215557165366620232096968951223175492362554467727827028053644043156261397504333526524394794781325623737922065674084440158966503702193930765990503531253593783948775057524981131602385406552307896799734005958621222122186915583084566864827348929058257966715333732908222036427841687813985909052938195538196139228128640439303182727603774542668856512617929175167734387206771498471504473482369825206121081525935830396971936361785492557787479459637970220168706143498360647780769273858199713453106665182018246917339068167761519138188318625180569235358003830466891458105943877407854159351564249882622470110676264616317860541524799503463079409743222499008531677661369249118553373506790991800690116728496817089873910538265712275749695814155642881886655281205944650999473475207711015366247411429946817731302120164148851835043005228079320132766771950469396933159835653447269904739553265493887892272859218569839590074943578287852984045690654101727923629319102379314434371600873900481226261177036412174365036198965322979468011593581346818761747183971892929184655531581211088449180168862163230861712018325606510711901733258520178390387148367866334507179465039476129107090270435169573552206846145104341513447396890549385628309496896311026639439450595285238776703924248844797182626887884657996627003788033469121202900997289852197757805282525234316853756288591943652507117603846120473439538109855914340931639003842905357573347759957550240009899912531864573118516585078837996421428251282137785030444096201297709632030087188751209900631651411781900669773108238611029794040759603656546256943198409798049212673785336956989527869765792114642370429045856520917032588443150543878953274635347580565255672440829671827494446651315127022844285017264060453219337427710130209472475354194516812482749399460912562674710549907264346364767838926909905090605734671018386431478366671391099968463740915516893501474055602840878168026939522553408864665330139110419950338190409952426476020050209716472346744567115158470076416430650163926258953795644188356217462815575326512688217452611387547301643046535121979885360792196931764434004101394326008192337294825816244813760427952772836098667015607574091489779251835403924809332287216360578536413673952205476320480741516095119572745820009912013359211838470289091605714731621617823037194299983226868144173778802680155988722570266537843390192023449482853864937624632187745000814984852500512129611395101107886969379658456802715390664247388946812709821698893124258894560526883742486776055324921476673658447984922116448611643226834529468138543025913013568372626591331181279040416614735548331928161892394331433993551842630904147243253102871200932068488893537301392774955472632264956773300850407363980363453605653413865624040655787288683411972710104226440106464381272616111341147741376968191728671049178041336805522868932129116367987657915454960292030708773953026334106252987907242271343870253005665806961009590995814298138232609404850397837779619614941038595938716656175717964594903724112793359789321654384125681715335093324028726135945564787568281558044331792801994575780343377240862231181084449415085052466141934670933442924234794524229027438502963672698183212395305027434738602158063807325490336277843569495935154623642065367953589129639110407900394827179603885686852938527599752065655248224562839601553327740461896893300043051299797356714858994497039466667831092653962924138488904499764662782638999278360093174803918154844280132594088676973158012405353456995798732396759120864947785114713962396557219060234859255879871986688028083472028290515628267575109321839499736251700364232932382474826825290072787271760206651608941276162675002173552588495867783724933864869337933891956366503174410864190376869104781320940370686456260927931848913242657343940132597767797081104199070456180204484521200683594298583909352466055193469017086781778333486660425135353779405955591438892077848239500083256002578956195624568129456658916533329258346247381707886636014238429520397861973018109647266143051210066141845594892734400850612014221908887521608949424733611569307898086841384023239223533089657027847379061992184870847687837192964707033702714624950056268261495472412284638226553041456142770871447705529883058021336660364261265969201882731635093293279188888831051653804604077512046497787224599239717827137822441891359177119534185680391267384807456454902948333777008440637265558565012611112643568323828766429965091842495827645896422178170518123929261408387881446040813360189285734917280123992973452254165494387892456309891022862139486571629289783536248480559556778358699839399558817476086648180601590739444788975454123506970921892747831986928897782459174271187830343810090218181016395693305670902033414759058996855069663300888755462063658856204725776779615237148411675369748428061298922188118473326258431435470337646869445838348624825918157802025318826254191407255599830618388581485272545113813575982549989436921038958879090455721578918924164664985688097667129214054269565965312065561789026098275318786593807600178767092705072589709384475346862319723537950550259631779145680937372836665878358233300604801173149503407822064817561276743728482146641914276547872104105600821734436052885730352055507479842666537629253388477031523764959293620539462212938763634679098028708686010009077143987398982826265865574818851538924225654017101748326350109704199113535075264827304991995647313934350654962401166374471708824912658122731010292923917407744266960672968459404480499725020273703681855371370965080398255255635525272515220375034879176827147280782433735849943444732726785971474616075584254470851019804815611909288637269997526631016002923098491904298599207614831349117817348709513337988703909572839278634402233474487808203461466530110078650728491896764105968157161401546194098001148127335346295191304833915435755641480003873522875641536636601826916867525222022064471492465055085347426835878808632125454949853512763249375796204031499444770312544473316262677586809990724041402618777349190211201399256289773327325489508351465114560871562042337633760198333988201165445824664966721582145114929026477897204183289493069495061097028402758026775231534741765813056282330825527240143612117578084815877318962553992803256476622146708124590001728400642542276841633164904236406976555109655981445712112265250101307465548047855805601771855950850563238556644656043488269553101068672401906094483551006211068205478888199985420461467055286069582325853403033138662741533536273735670110387575500193510703820663758879923730907490026363740210100959708189183958712211453874868110659617183324385130166814856690474124664491434795613652632364800575167989770043209260302205139546956927358221014871872116987006381599367777500561781826129538146007546763836062845455441500403564419463368017232646867149583019719709021247548575478728376804329134223035464619421606593015973852908132632687933841379902447613638960391303524340281058248606872260041461338420501721654652324533913516132311639226492907043211337842703850551863585946577168548019567478796390342362889299235222019939170864103336369135431753774803627760834647296027020089717687478459229280204756323562731762709668137574700811785595258110980064956222813951702033617430635379811775672515593213630388257338112144234207288281134442856341095851054464319027675347961336687705567113057344884757449716042041202880960379163076233563980100167112334563511443169321709808427066899875653232578568151926767099970818248764469897749620227666889918601552631564817621588094433001709237698975779151474411670936440656520658114879816882779765631456909970529507229965280666025189626801824306240557350831574762436322037742762645341506688737817377601813002273132144041856222741301537524194415985591922874574228614716419500050524766163155600919889108507650301709545254416560731079154408943746049276990427156469601531493508695194806838414811920434950810484347215877941239028403632006541267102309239367758682035069523453808149554402745910415495696991565838321042459802096781895165429370646835471764730359408532440017190692227779186862791246286493884913910104680046942372439641883011455475501097342721517680106374750823795420679991793380368189978590701894321671783897576873264274583901720970877975095898663121358459678543480431469812322846768056957139899822824764772174508165906138680489618592099345985474648174546567829706171482765860947807552759446220991956126391993289406498518544409681746032967684369294638482515445417139886625633655653753581268618591151595383340257232564139985923516955629286104919601267856986537561328264310760229139639597495135462188201745224487181380186597021298715675516567894005691737795051483777690506927664578593068642967432330217259366392813202234464813259264469588451710903564466608107246320817627222960923551255787355772581020200473514233135243128054382653624317177906189561624763908088357775183693770692930157397197452149281807104616346177129737378184557273084582597556325455408009812421677284220213558671796786971248754775408254572689153700183405576998113727369259717090837694811732668167727762924461949409652376262521158987991990277773855654078039657214044701549492876183197025067548594393467683083197873502264114712201041865223762316021786005720780162714135690301584476892172313648578378594504832407825257106947359318922387353228904422480879061152213260319212542324688329343040463834319506056255072281763645101432161725199302806337992818938091620845597637879998836539344803470218394418073436984311090981267264734750666462228119028767477402585854931849162190173078918439543913332166084902251435966936007287637792670617476312141248809412003600724180394438830965427191183852957442213978698095682929010917283186971395660489998834593039960102489211072264147517502358173766858427952281639110184882214358555563125903441672567093490498505486307277228192109269864532634230769314063132084459039840369667922846052911215581595832671604620385877858536302584979515325277551036099919696026617060895023856768214682121090168024170832385680587411815044695780061791017092782982135581052876945154939190106055529541569288203415820286218352987674070711913867219070608610864374747626625038702620462985113177203222545137988657215966692689139424922089314432317640821427333688582742050063323801946562711560442429732990333935106898508109917241853277995433415209688295462720668275748028255023604818841251900021677590335255488467974791986603167288590768178838548127309376641027244302629236662702305068974948601225702581464902002455808841625405107993370953961453241070816763923771255924288646209428249056856357039721128579359651922378392729943638163086830165073955564642008313073856405159278882916970364436387225195993977165030551642736603327633007622253441622795342188904510004051825730966169270238601167525113285897398616296164459455776208006588800539566949049547936819820155924312019231023136280780088610247646786988130926970775493347350400293655064215071339890948931823215715686570139220509430947036240855603806225640245542598949944270100690448003409203737817256334750257636426563619777925181135406749115868270058306465060218597409202599606073301595745040202393370522667803264779401296528016584999109680836856075127177844642637511338235326554015959595483966397562324590784333528467856406440040678487614091005612638605393007961239582904885380536676589869142917051122631317099466865364372950468911639017655961946893615272712719929705440572874038864185260358496529328769804491620360091753922937561763168193432828191949321685123428413384947939863636016716337635188377167363459719559389350423059942862461078514492178020827730716955112991044389649454885212482246222882577233261076152846929218557259232106298850169862061468972871060946864855300951356330868251575477231189890442119408558948687261211787157688423280209060607475749795084259819470867341042852246552049060830413443926237011564617503452100162231075416848865048433443339879820773135519246364118273758274356604071473215914876219427211202216625918869723306472443453723170746702925632264537060562025391647683916424022287211237821033324510163508382512365963733778918972856355124125281234577802757985249349129038004031857529869467193889207414006818495800213240998621536501213520396147471134507792943389998993229790587633203788872373838387949227883109517205963569038873325788521484290604134429018298974344394633553983222120362128463739731491805773672990662219099970315351844371802737229495589436965789457345064259967107433361328329736445819293970172300995498177187615809976476074705402139328595637165192939621024648995793765957216304760189151758188169869990667328919481148885013185812690825244173134885740632796465688394029815376818587813339756987064237060112878021119026242943167434597712067854909186061372154343076586296440565913505114401999796303987468783114766089604353219239691117090191339214007081066579722278944654352355387062590860904316670727969397708615675420356446967628319432457704514411412278107987080520892035166363708446234083599384967160118911349253665209399063655686266151753535296986876443116288105502514503467855633619645786124102259036751616314653600388360965753007109243515009079158575749950615776508611605532650117238153045782185645485819430339821593345699092310013991814147560653622381015861106892485116884342577745228522974257128275895619369881153466168818942371344538259199143620516345740993859752937329536104770987451134866747005346307492793563069844954941524717719996093132261776992158296161860710322835115976008457926167921453448114612843134606372725100264568127793505844492825073244735131791494833865838920923154034803604000788340414970777570265081041680043166622627231395732422857815899060431223904679010766800576638639361092807973728295702483789954367471152235046374007479375004616037927738167196102683416768147827264088602526900943721670853819122456295666092634223071022119616187234760110371396061302444563134721573711922744551160840116168212345544893546360631869684847920704083254137189803484809655661764772527749281774773152070984375675879089381983105408250809083793525614534986917941696074453368080838852092150536410980910749554959117475269260452519098904657164181091002811437277268010450571116201022144685476587767041972041519764913512742543846587909146018273177034647688270362146286406551929810192848851989642494109169151537044615111510998187815570634437806996804234856129723656418426230611582355162893307584366862517881985144251023082048843353629414481046394374128115342337968524720291992980616091005974148501070367395099106792862240839181842034872324736141276799857966210293736590865265274758972582498674666506318869130222847011626505010744470568904315572951820120542732870249628611809113410215444131153011058897006833778597548835764531482823841313135316409334123712275480775645353609716259605429550886133609384742250691307832679711478003340459311610074537323083859333208670802673986813953187460977554189948822186846001467792424499876636412332869678344908067389991966524528088646461777202612453129896347449681095033755740576978708698979889180523092532642507549429845659582382409940154867594608386520472811636293254865725589529974076163502336494167959508724200255307084129625809375420291352265310503663479351155619320635113849265527890108608349746853912040033331900609924900869912848721293068542827473375916938740056444555343412533424231260375046706887761729584291038792516781155843995320957785781562240367422222691400593780725922516224939356640339215538167850078546833232024779048304876263503831664754120631808927163493085450667034680799935446264769576671571810913062664978824069814939110946773048615914017578261008047547765833258250519137805681909329643818470824798996736554223775456863894460288313431544800509019428660756139303445442738132423198998646621298762711554986500388145852276225013701278010245597094236032352911998594128816195890311960517560304056195142436016696989972715285031515811336421955103191089167805634805495627394319662966531836115441365510269052876126865841101031691537963408590845933908799590118046435530218844057609182736407566371943889518755882808337461939108153921641809227187630995915122110880466763160259982868692350549946998731583896639820447625912625927052045077848586938029431000491334224190988582074641143279314556611348465546047975164951656053092577069478871843641470835671077367045309658046466473183915607693154890347635326323828735015049065551489148787653560248482201233296128683552654950900881647407427361861988979748587982828485139157205219358699115660685365211890241001847288071777722774117537901575943110246486619081231126755292498740013256263055437727910786241763984085181355857503277517255206146561473834385670776483211862464038004071253205780860856530694008187857596281112505423817580201663043032947401803853811132617413402596440790004277606175067478745213397667665216453788343100513240132247676744589450779204805658757419129936916648411188884855299351422619878299221764697028478705101831630965208300874147216098694868819493671137416455812463275510105150781884598299993531381199281040798187441503450017846454959872263545078777071887028755365630033936384511848663396185780433081970732922307924263781589631142478347670963259961764704686375175843302920264157032735686830055470764906560888313844845787604731836705643059045632653335922374082812633620844911228183703789866184556961366698289718047670517890328750276558735993438472887200498858864047300369923622658938186979742596448289371287638340940393378601286968131263318950265659786531681346661296014322361691109550486611042807130481406113367107784918890527890748637964662027753481418064122056747439499057845193504684110741594976627222054600320410098194039774456449638885858992525940887093600331181012538060819899258028426848742089640544267607437941802747197424337332244345680500451353870645123683543267830019147741220195107790609394646619862843560976070761012957672685028801013986867870175642812112834282296378321563173704066124664247585720303042827164507057948878435558066776210209861565381792960692321532931035922932677935796521813112410435958332552252261810052551159260757722666768766661419999003357204011988934532588016641943603516583996934549319751447448436380471829881802410189053603885479492251494418363958799719180600566312914109639911778778801938042975416446579010157387423360578994747591618843226747616416110401194831669567623894219255743162200629476554623260956556494284457445371986433757269288582778080867234310349445967876024052207019616254453490911200541525575087315229991012015259794143212284613518440475973523380463611562926969432675281495400724915663923608892613542287715513521887264078795203459573625376533561640673478770268986058776998947601861507377383142969499294334865035890857194218641378075089726178917807996212311122664925284521758049358762393401656402783761494342858174330878415978223101337831952876029891729201012838001619133920898689089308612748539583785052976430110558918462728050365332459594120496982937960897229150127497535249881064419091679991141677694791453462008296778086096970647745650089633549652932291381382641646353018504261813385213594662991956981134751829452653418336273381219692992364358840699414732855025026582114749180525693910141954654831560662892131436131285960952806008607655491811056073124327097309420226118577686584268343210764762458663770466235539366367281237856107608945125219300631202940058274254182801524294866029469799916265017749597849735605745103954792363984200135966038228133329162621283569406939071349759797533066981281702655934864483753021775489878751333489803231368169532814055797842725238611189402705523241485403696606503023762050079422249898711837278287975827499371577692007185208594751244984877159967874717155728848912825780877584218537411080661012210334643679705061386700632994010423068961456168666135760093205455571822637914999183059826453689073843620388414829316023115272922441896344159308986376895636577090632014190809184275264538483497548058857858365519918045714776043893573759514529534186041807359290776285550666736586818275581882456593291769292973898951946290245691260048450955897774790787516996261343313318478233260492814669888429374091216984850252480885629835180984144026629586096189567588505135148399236868210231601937056286424878419860370007691398102818646643160887678760647046088276731211254913793595202486666924090464908291983012139795463436472023019049883610941641324866980681216171129815400102334910959293995624982713623248123882186924712477931356003364118101713022692544447180942571816196034804623392986751218742088277413414334381171348640320778765287176408729177723938877118761707976597483454773968309496106067180734227338016686676680429544190691702269061007520136261915554510106233483698619256220841119505504857059815319249682126684152028619417776834687363011581519284917506521578645158371078907733682817865674987979974307838866687054895793460039804053081937576113970676137191175728675682793232518052000357962655426515501546722871600494593632821211215506058087765843626707665353099207359163827397091306741128093799682086776366273953940519360936360942974014758377087333946926064746837903517438530016722539850168434619969731091528594294904947893107477724955258101602689027808250441842798853525106442885963219054404979321934708971385926219118679040735166058553731743944874668346539172659571776599150997665201365174613619774942474617736904840284532050227824035983765520389098551007704780436169415150292337012032787971498430304812493749983818754151780080708761781713834182728958156832980526353307774435700724499507800408171160474337262314879459953533367413122470377279812665260098072810280470590788640163957826629052620291792509469160417690994462296761402382765921234901228077111827503815909073724749298335930648732807637583867844635165324650152530706809893229292643912144421721296052412270669590900824820373477973028813422946977266604616974813810534388655526289265057945266756482380284774040080744652608742004215344203809123871952493029733418631567914932231766431105876267714749433517312925541556514882115815301563917760254838984860869619440531969170075767047599824461601941463654387404795008461692968788485558839572290986768303036608442215411531429550932795968663276654992209728551817560673074273784618026517761502029848673366792723541936561657292150049919645592357082549038182238926537758394590725766850142937379436989655176698374808494235868545309144178926570021081010402047601812854885919448083655391122009061627575213530250446257745067992638404740020716823281813770370739575701773357888891729436646286360709554400897219204341354974825625183141129602449478599792187723958988645362804978689405218357437767762560051007654715633451171537897433944666115510705729139050066659682405367650364464979296627052792361346512379120440223611686025806558223828937561830464810243129967419990766748453158105998472095275287017028286042376866884721606308228679921142392347118002057524568892573747347248994660497258921911950114565449002267999128176204826680758928687904533358987903973897679543592370902716148150923798827430655096825561047777688768950067833528967426650914437121145292542110157076059324946476374581692057024298518459013088579019784486722038101479793949043266515457493407690857455073033970447623349564839419110556803090675040865012113415700144180206915852922273654701349798325252358014288207022834540610103406850525566632674598150879745971988341807269974659768522284164599094193080630093891339633020881669661232405135994671551484658669059809768538535977958747318063587161374785966645501788156210538326407654401170866793979814775226182910916717459146047343986526480537007282431967352529179806862460382674746464077174260643726782365968546986916048084268154986533704853934688193922595188293833224273111328482811745174833475317246692080712583824142407295686384055920160768187838972182304912354649513663654834029673422671421827194234196643707868419781328364559339823719958259403221738674256468520614050554167121497157939847238751441408854586457119064445624205143133600688089945784714084617455716528657229433403268055807103296594305354972066208719465928791252052724824577382326273897225384511415922308467285041841151406666567925465785667534487745409039619479169188867689462462825237873098541241809928279855614821716562939748531560646552287505994855760556899037131543737114645276506185837657213936770261528013489033566574257843039552837015440032989988757558696557033332030035090926226958916406184281014164840706072635904864687803080862017812329261487026196416162195758286265024416219853456149336291281539861882095517916923450234961780497912723719819448160651968573153505151853163760213879931841748707643753909793981398966180090276940029815891364782122448683040422275264300526438441029836577135503718256521985390358711639132874914680611494484058055065184251179327446796951531301806235042541303817001865633902030922683848310902468753241606319853516745502747891292517258999097928823106121195490915257234961605644342485819997485269513754400907888784814480164895270706580625256975489239323652909236072833693682429913802044064552425708723559203788731566631181765256114347749599121851726987136483148379479406134988090582386353858208785960883830704806497830942514316653787669740678873735545733666814561523839402321600169850982634241826117603869134096278285627501984645418679962078092391786750283988128762815585597758634125824867401192443980007540270395241773134331528049622645653806354378568492482298033566454592750321578697298161556864305932698594491447582253803966082960835659299248584936956369784936182656147770888097447910906170650995308263933236144509331221569348229958088698574008681938485533997410662462522793730856889062173752761066278386002246847001122479702570545818044829522823472124321640994924863830688061840711451633392130904715642633582714829813559471608778123802712351909869974975933194771572447238639572917894788800247487033904489915100869089980349478264208571885009522320634749979515884982811560822205005341229125983034478916991866291469753106335790409359657924915586807857178317601362682569954453194756205858051783596344777957671108632762185110216131264856298070040371160596317987450832664308108695616828030432134742090985393267567858883717713398950340858031255245559747220450803233026859249768840423585193448739568759220309079827337629941863037141400387585872998087311020722694311235832594087944801367435258887246263104279052242736686611444937050933600358101936509852628787552571019719781685580948029825739679305533418885336519244107583011357783295478702490773727690051892641679957739591444190395908785507484219163950694627740749042306267796615697383437031461059378367322854774895383282220951952615505821117710142556374724087850183461163199001378990245323729598336158329892145028743729661088945002010876653314786897844363922529550743461220733287343653588751839879825605058265045197280068272609353992090288766280067838381741832360204731067041129978677252984611196996918641608104838477512355632350206552214754925647571241133817852731651190391415524166968077936827529120259293051356500344485796619595451754452752512130557054776487793925836947573536609348887426212360821643815852679700297714382128741462728025924855239098256852785945407777715264817609581586068825838657414745952115411833011714444908463961225512022383621961883763849841233340464131918384855842476462762321708045393579773439490378567989603005077749597620187430671121601540789964828101028495314598853082996285663063961447044744427869432236461077718442136892566589834511778819205174655136873244002705927389015415271081745701157743335242694336228993497220201479500393417640686863532334656799044293864705203767973202635917878830627127852119131730800320590725166990596306473836850422659800255806018288600679844978138086623007317480312336387060929188968112842214084167712360546361253884187958115348960420555633870843091301367557673916957838958547338540480513920853844202704686191179675430285464559061678086122167948857343762931912942958368352875014701116236285389820662764545117086641382903743013422141614286327351135210006899811633648685184011260346812787073310705397431671977807055401786927161082666058191768100807098757692445118700417475320009136803902581373862473851395769976689469602905533172760684855291855556173609240225025738546447753517160329627075103668879040301623727050548014208850265879541740663866268798543492348267332708108495361409870351237026336016084786069531631952797327434541631226893509410350636723096461396818670395332620704815392501369550445518337709958158066984935947665312260682594441148873784124650462703008160070316884440200329931350640580716064503382732369711341177226474021552585604981513462352045519318773509232805679434369116245364443390194971147248301617899531165542459610141162225891353083833257554600638713763553381255438605556922403875984181787941286113884593962553352694066903355650206893036036342173662551314828872663364658886881139641453580309896222013966838588798801067985836691919440500473938388346232332407728882221962364743350543121883501397899002617934555410827651561681805959774330058942336275684803408389385941716174153209938976646004752623572153583459554378342343252120351958286372851987101081563102146258315964846678173515727442473416804542051527809576434608470632181072655436565319144039153216669060410252978100068966119639921438506650548812053224443941228281543436801297057900589673467561226671847583874682278160488292662666426763458043635788003045192926075727060868177578969020660807813012730736380094935287341501900836587803214351893240296334020021654692584557202427573708692666167340010407793507280873259941996395101608897479361493884937524389453120943193966151622339252522531120653843398784585944329380449042649285728496150846560322001338179590420590361624881412386637319931203479833773541158184474660391786826455780701860540690723588892701432339677001717665857440860348141261999689107020198140577513410304525908933908556393211803328408739104994506769322350416714475413127116023273270852068965698724642591523323097583714286770642975624305875642094730622139740150071550930465569832212914304498870538641025424977825020145529909539179740375936311757842232847974613653462072461093538420435807771964202196312404424810733307543758514587010524536473860743933777850190428084563516478498267625431061304071615911682874986169149099783310499090021215749478557264160866353430961552567724457253974946687921891434334628328973263892273950423538730625628092077310948163667148099997402550007226798502635822998885080430655108681730966999815171075293534608144465422973118510732854912440225553111665251631984833658717216934923035927263742223517085758659032636958716916894431003933350265465662929313787619170767740184363405424403777122377430940269571769306851232268144467806380813193686968247978280920480093937534598755467439749069259203840912291212790189739305835881656986896697520607220216143576363077398956367595029250634048760548152135532251531557388950528555147840748625821646489383451887552000093269754456387856827070885584971561637354770786278594679670287980393268284775003882523220424505505830885267369567663807487884899747178185243609436388418720657189759194251353086350568258184454992972039999170379789604525164637074519074205665090463252198001502529507718957707961368943698652236728669265249485207543408774053675564918033497894766151822634693126290377106739651424091183416439572575906942308899181151744067857871532191685816966895528882809963860215880049298602620308620357979633001530597972609292693062043405343385482596387235633480329163959620301504139876075339295706189176313919080738950289164479351926831497417874143728862466945935376953626580497550596389980271544640661913953752523466577929773565300199516543516304669140795064309343578700223256960442814675335429748985765645095502159441843659284616102765143325114635584013333238601675374458552889308830091585611893844228383761436561467170178343075712536472273972143886561700696616081237045993554893790677254741300834209163999855093006970655711929066624866591597181818628601735942498445908488174457460326253096790306236854721106967937894595433095445874470615078502118599547660585945778404882556026752151648621750994434578105612765171331572631653787559685368215108027449047849702821308034442343987627495192272257117430041967160340419203101616231364468288223341524187486241356669056573505883479585035254014020394939778205151082063600553319901798140725218047258299398311744998863753488205567765109544924668384443520115337730928774035236039801800382969331822171944104938832509882985444272809777958354755806008781509950875051057751805234057019567507473725654273949760289834500378349699334720503541448602733137554656371819696789912051576314402575670870542184012655272473990011641119240334901389634158561315830137299178442289967021941782669162969268853098618351470356537067414736712313090853125954045990508834974676752945283459021420339810832904820212437779206449099952633144668294968685045199860345257851922446714695843523177669756680520251233233529008642420543360067467453692895699812357796470083004018896924511693309173179694695275084921233237375103121183236204458124009174980120382401885145667494266440473117742956098782125662861892828438934056101956679074882128703761227191107896284322462825457537724032329153910867142237736961619811804489819981661147577041210773861109746399670954114134428388923468819732607539314385779701224540265187200922668723755399762607149544714232005367088857074308921525083628271518318263188028375425788399974485174531683184813556290370753297351791138396802742496449317899880051123645816482901162655794786971559036129008449215539331443433051978924248961070543367735300597838316321256015919015142200415236579084644378796350846548535876703520146868406934001172255134839198449089217500032120416035539860277024283786270701207538210676154012765505468360579300737096195669117195220027331013147112504109854651814180050825622460140972354026970677482243597832534113852180952183787155215257577844960966258098185564095144383434616901120420712875769612891645163256680915152754723710291638715598639386947291556582129987243549788896954849714767903843920803972207456960653237818294928771356469865377442857380527393489656161479737760470687352800899264721277612412034906527174506474510503414629449972145741419223358371729206992507458758126713869275759975890686024972355315805040453640718169356866296616989213300322368504444031183143862523753712123396795995029161388260598689751938529715953958560032313423565909972517769210878980307228419997975051299293609465969983487957002475431123609355765105091933552372469342616484315013804231130140534004653772711853614534975006238947822500417176994720380402646152866502491316770602838910245468980591077426833277043029507203846354867032886387809661723444118738245639544356111062503342193043398027461926127581457663711391121214043549904721257890945915732356867915524698684943538265682007575905930653995071935699657131600060057952689492868655177561004649467070646516190443654490039383596329100277509485700378322563989478973337897256522459096129439549340323552743237459110496040699186177653319947123808670315521910803039809246657753347106243339512878742891937159920126296544243565443651353262051679199051856101497441670008148129423681842806941111740840849795158388735376366507223494493048014940589399213314260353947638095339716184371061580194256733315689941467177279793422820793487067214231974880672774548927450571779451995136507264792520794105350882632742209623893026561291068961075830638136798294385484404429707210291967524797685269727145019749443408725665530658548053491502992064182762063435055645485925293301418395623304793878502874010247155523711761047866756224391110129979387948806475253897401664397070988536522419473954833035836665246771592977179455094230814876322266090013886731667206050456190638711791056021731561156486925388327008563952241608652537632710204488822681575420580147330559688480791450548006225779745035306876762387773668098256956108256547758449418222518244341004764910170894618916353440357989004846419740849702356029450363986599866014797695963813385569094124175771951608333540532771396862325361099956765340274135236317209082650096058294026312927146351282555676769491838841232884915806964284124155263517273695141700002360564299822727473450782639751855122405946117007921973460207100810416981487428838504926855626646615235145030092446311253322819041389555024886030736136350597067411142147053751400267681332455167503156087905609026555821735190427357712558593738544775784475638950104515885214498615714626267477088834140962980669540522931141034226531371774758277616450007536579637570267549366965199071874798570763061392502339538147080004813826250449535437907088350998799715482584656306801128777786512092097529797860389705620040055117134426279152340155426870173858194283981159076229314293791732645530054020998180805126400339647747223782380784402882136227880100248103629014115975466289072996493920290108514090601069426908737825641457331023551459908022131099609205432186111389237717089925436237641507497646366615497456670812569036518595255703872674870605668779758486601894473094782374253716695584121908056396674488688928318065175190741394877338939283175896997983591812241836358878588300889587603545560033192966253368924824233399611885540564552952774269923056378992023824590380909266354987164488467775718767347598565698602704646131439236381902485855891456425388891614679304368836488990589824452323027029356916245294149531519872193939538362172722631747823864982354396767077551048200140296783038352032316221393509868838064480645968140757053526798540500594200113998903399904888065748603745620355012557608659364634823919288876917044161070424225954700169852353264686565478128323274658856722129758025165924740622381644601117233222129246459119532393650666425109682448974151473213882668021877302581855694606039736418773632747242432181087051079655674725724785389809897913099542427154404901230077562033441717088812982026125507760506222484745591742694767831359582659580952278010167671929477415346090749040502093724097627865759166709985564166059295114781088025878060679821390649316074239816351124601545361597658749364038435663936405028330065774609075010462393267840540411866725119628607736611213926639436200316949043294062382866322065498299291640252688657535480631173936900178459075276644111213351449900374352135729056268461450333301231530797869091887086754313118218675373601408596557800136223177162523321282816375957917887251624232226223388256897633489660603428210925878223747761857760190837208726848928451728616271786680278937726676024943540922916843384498758676165589823139867126652211508805179135316870469760364247595513327983876727617600269554750952923046598558407775631693744738994599624210981609991815264298803003039990731775528730982646227042285842179382234010164699209794654905558855517372932072737321039200753710906948044766942746449976581167531121270328402186913543609909195870183483511773622014258754124149543305329445563328982840109629825772960512197681382766959949520570030944078779415887925491664467323891214106373511975148570054270885682849185042882650159132508488642794188173150000057372409533908176205190929702222193002163492027572177060448958241297521481299604694303443404732762745547833286530011547743997715327548971654260535334480866555106736371512464683606441378847140200944154850868771790357243574702432843639540176728698776010720003229573982510914800917587054811478323873229813089976806599797465871568504880406583589858179872796633394309091032335892718405177665805242983845590476271357880678927383044271642562828126827314277322445505482655235499153062235567022558135460535358472744267487074425157314418238837190289848158022715649197704003400627852968025528672248930423333735054032502314401812737415806532403188232801502103952910874193555791280571079185963444834304821852067887517835392366943642098563907819483926479953723369215265134780780808495384111217336840564290854561620512643303571057398580240208396784473628042618092737318646005483729366491447697871535612200371893940876799986218864756536986416385526649462923277694307498901224198807211282381137389091957108521328171732941984609480521707130107053375836245222378391760442141093825722033123180828320916730259347214766672942920345023495799721503236171588577029444575790469682580727447471594767724609573381196832094801368107757133369153111706622270664794342201191561299908846985648280298559041606289559658058933574239685617630851048592577526689118776971435784679043118204869925227918005122670286940844893866476806431759656085623234016790964710122135180535305423587645221970900779214169877356992893915774468560708930819496360967417244928208793899762855436873183508444018363871137032573836811253119844002993003259043774684410984186408736544237820824716485100328891604953294668378010501326790578345279185750705238935915748202552682745525774907488639327932519829510856924446828220048264891524594101500621258266682782077247526085842099158827601046774328647759964223723728063475344222140790476582545715836587337883107760847677754219138522790097049650716106019603300564058742423058967343943830888740687142965798882342616152989834341809517100821180209728980151798230453964943043203032232484669956667901249165097337300716792184133525611961448042626982155932429298373361408982559428952990399939832625453053533041252879786205584592129655478183899843027197891828213259543565091016199431602617687390216612614594698364972476750558872957076237380884468004822377346112700989298429141594210651239210261069683601596911754830875777458191884990182716182190315597527943900875339461327017552302141190185661526410208457133545424174651689267189376990664064101403212967000953421921703514609553699252997241752498822643449101742167150939564746564682647659690342703284869774934919239415913120746940215914361153778085666598638693249985777090357460117133111000543705787392444884313788469062495375278710729503347730266657686257984907958106325858344911268003138338097356722020480077536384763835034788414797063072186780716071189813750991164960554407326774919467525908023452141232906171962735336325754357428830823799659912846923233380796628013450553017628006278929494632620273093684089098536847902920033320847468080733088468978210161310946153290517264994550909668377247055541860407746148354466251228045241615646860621974488477148076199015308777380951126427241048723698358695110449005069835395158093142616773135363626007300288295231357278978747618280313553733997986372082693810428826626045001458479175056413164858768314203406159354495244987957529703076194080251101555069581841830956470890306775266324762148147795517318793126462479812206603562642888786620527472119811488155632456843376131829625133404947599110978381746088457141501552732495577856025642502822668075910777523244018248341546572291235024330795786230695355373494640029912332284686803919664515406069444745868771778686932005837659475363581169062562530419299385163771459369235604805117310904385182817800074158018302783023809366662079981979870056930729102682854053977671171332189220039702838384706192306686097764117599019238797824899976533773448851021535332808600574276970733318019144503877148383631026751507899030838522110162204326512814687942967770004534958178557576279798760241072888802651387231343670195874755415814267784721266900379107573004411701389878981337856290378187949993913947544687182162252555071744278536302143550354842342718184079229479789744647230215280894986965753654205436692296435073396609753043145154592308989392283070448326155626772833624811227715160384645283724765689911433593734386186960073071048781038329890619521183727090529528705338603162944488235192063385881478822627484824670214058581625392172714747275996403612488115512992444743429656321853912613885879362601316494574050838037101160839256839339913834629719749584117339990874493464794614898832681621134081235239446383278917844754522934626357100395933700372837581937709428548341934629216192332166488424926797329146939835477160262830263181917762121240218089885738683580225334837523229557170884746134171923140459116130298306191899733722423915160882115558410278152742406390174085044838123911673949911549271326705714469020516190474608472217172379899449329460920077879178859050910168193837056487233513711054598253061688076249926414751540451131992928646841869946653437866422703922278568305280538770136256828106350953747077264962797972057119840928681453882307682789302181291150146529335877493003673342831393359940999512813800747370220486233348972712555860345263379921458857263236731146309497027650188240538520579108896530521171509663808898200744912080930581179984642324403510439369053577121548890868723218735773293860013535025935685132263677018136864263351436894441824549159036468291961018768622613758355964369234372738674550409109474111268800249660933789873999206693983812088452700510415452388801652942185761430454668729986629092457397324430988255442795152692957225082152758119625162014637258947136570850898028758069066063084503918866389304100613726541590003031630676344968189337875621137244071004757766607597268737186792346568863539934021216025960481812063532178425129698064700142578441251324837640697579655295057764400461278051914495963147143011112886531755301301735965020691578131535470781288627364966365909937897499582180726783940776017474385828456386269882469203449945241834912697989686039970204247247808237760191614282444016944758660647982686406055131969632503955639331440760816340833649296747643497023127615656962570675383562963656521411962415297313598396056152731620045995065600716277452520114602630727144137171071581366981313248547158479096968359325077587952663131923275030460469783199683505744371489914023199021732758390278432982690407696627696161265081523649619023011479086879166503208309389829473930715946419390627447146754185494707701059157680801808307491022550573814218276276564193508183793175806769010165530573874430713696629175421824510554510170532004215354627650310968447320946745195958097014823299689395537433702773257096069039540115042335269788727463624153312894643413300284606306607073118764461843652223109530276245514878028318570440707427389513430094952964360133748258739432521990037965733250564314472310755946422940497128979898515373627781833481505059426893380499453727711925345395695811181949259954957933149223820137217101533417023763879947275337508220801924564439286520837848848628634082236252713359118457382737989175780565821288445647189814028617017428579712734015794946260607966237872305181238390732861670664489070773381615592399004051211252558711491554656965243893956178995639203031978926629822990094154379698621000622218834585684809916803520327884651812703690581513203809908786394374971989275234322880813469915422720309756344530093795616178255560300980336307887672989111769047428193595440167034045386232323881991695951612717332883960891832380014746312936642973895745538021285161409703389123118091191508562428318812105030465325067743977976522508373750228578772693836214642087491039891486457700088419497238023592107773204859493017935198548577758584630775874508992470684195175364842193821941870844390885988680493775387068038956326351792574277273993216384001804546964639198473646499107023233888710836297424347884631879931177408524943515054006093121122268941994820021047700093291172982590297624853885104867197741681858501067770094279793744603699986487358194496262998869090472472753274816185569157951874588243412930715222765190676855914391744981040847726007333968411915319271030948474080655471768246777639155536078942772023767801971944258645845005881640015307427749311722251160191242439198660024622757716370741310560406176002515636850011810964880632457350452797687635749987454655701402101713118460099135092717650891576288362172719265306086159822905908604806326804689389347708306629102694402891125191478161549871629258275975770620153545730595893786497974358168775427192407330407503127669814818831461503178104179143386368583830309359878856572437884048165668545644429259328351455611878949998311797755222492717283322576509158111304491587137518377803634715756562130313826063255416412922809643658689370365598095044438258198450969291882898009632317048917769229547372047483340347044062062033102953964839538478221454839594056428019786893826566089292703282812589922535774092310147187957421055644133390798456985640735310473027305930132804437412575870270273811790323806123055265952231369540846060175810680436920262202230641392534268618979258870378033954533589157264144846330805909643716780256083637091931421222797761956816381309255906812844526677034937675110442914650914149429453087006450450598188060217898616457181745109265697041251917599180276913528398457856049903255159993015186035930580698191682279345146280383769438083125440494438213935233104424710356875626883297428328365892507263704842919831860644141769917288369747908020445764726439408267337421220200042059727190064689094055069135549328166437493843439790389903975576188512088026113170635354545311492245125001127886147317669192027973430414239861206243586324062783783519431039935258212672089487317689538999970388030698524408617343942646063604865583236114002308861244061395521311701740707673039675772402711461354619079253919051435544118842761615084401026367150263079900840375164718113336756441565272603716085555277800793716712897571467101874027868390917265776897495946647342549566996342914876416540577921594780277163338422370926298344707036184919875509528693166227428783753833400109214978256137510812896227329371793256587926765524572668956610952390050061949379508440641190544098166734946301952026042702673954119688319571352952695503640000708348010488609078490344077031270200803460433500888300518296196972903437252508284790344602426713738681373448432789973404804292703617783852170373754144080925904551578891228732785926781806449449915641031958257075484370120796422667615457134273116064758282892998000257847493521486704700813237788735527800508762505421434704564708274737373831038669002912395727756645466866948214464069386671847406937560902749055490598552974414825296011568059818859215067574860595519511217014561609641069794231179032055770108395272037694498961860902595895445597260040997294569859771652532803385904074443764856470088857716625243109649814914465747848668583334091691492932370859551826711577754936626650748573083563351583859812706816088809323966377476469250718006177616476669557704831520363116373288972676625203608677952146438874780371745806468814231384192254350809254476463067492383603731741441930750227882302992412588099915723812310573366013732563166660996405480904718800721306031049922379440569593867258720511479523036787281319594780436711464821304989460658729672420996725762646626885565365228577398266177198033657745588420912703057785459012651384430967238420307820087331606711062998787579454299848049692566324159368583132874570704584090325332473555306648324650663539562278167877089074519378697525699962123032773409712038871985520848716748667888447420651837595982843672400953919993110541023045551472523278833494874212185872674031512063539225584413130703298044065639875846429931658846966275605094951385698666415155833718896592745265608056138290928053206257894599375601740469267618852655708327175486339918044582937424298944356854802075175998012450230680322984946858394981019825392477288615741011064227629962181122604649506317824343785042644998139983267921304134794353914045158869829492388198212623033212667232728655467900649677841337400044509565223612027797335571973886400164641297374202498464664943120407617885182443145160463627039378097127160264290789522916448821326352978818519531512990551948712752078018564754965670605953534496548289942827006271377260088028272018178869224597763820538085807065727172181475234516272322599532508788508498702616374430285859021863284307436671830461514387297739257017489579915305319505807862438890174344682105749076115238784803248661498815132541908729465931353436960695975330732682437652562266666325371026609168409194059852759099770310147824946110367479482849570919426634205461450047495562226339498881304815561752512569021392136742500445484296860342023211574251447972023231457663756516220301333784169412700995248411973367296077629196525087772700968405295402178536987384117817520994775637999330567732440090350751716675915202412181583432621370890922672239055089490562901153144893345159435610594800200500960942491316777508951780121033130396603165498665664064398975512836198812989077662700125528253553532868597142618554862852343108596177495613824597686472312707193268489993788434104113749025302933656312750492440798597960299263239740623430453872112009092724268940688295884348887758457641733367987094392663039036508919968731184180104227973600520576981105912762357806493461119704570936115679372705715661845987903626728238165512629098792620562213806488318605360604773421652756303560713712928964640433073162194744886231249395787427851024247368776341914686171205911925840809676983433968859451799717189258741470449034454770628120774514857585433922852966950936589547313898791878947683752249793212882184851336742603833939004583738263411245854858828598527626208332937597278138999248140916157674107551870229214533052815579082510605154976006956136024833201611405044334556973391541185172825236805463662927588350791690886182196010262393580148143120250889870113642775332350673037477355794643648277423001091080136813632780360873719322053412661519342687930897637813930480619589986002116630818133118323429826167092836621622848261015203398781829446675014239310755940736882305577861107302719708275969553633879699243882185328454729869911305623775250814846065083546747144449415873484862521123179085145248834854141461290652842944395725661075428917589533501384895703171239329440240039483689194464853539401743282676427135304667039034085192428267086599861090556206855546568309284023126287872406203359998516423597877743584682711397563370536334811843570925968495899940495073267760257287622101680254555461573997012687764214723561445138972680993655236063884983052078009652276112475592601357508435918042050351442465130639393397924895029750970031814577454557569553054608000656285236056854421536448111144708095414285067315859282860177433490926311286108643885602714686853170193093046874146221024255892342148745755078630034770278966691967219750584319365700164561874549463786314088694761080867088180355962391174671356551516155768554353542192177730443095187500930042958897509858660495685080805164698198345596722440302000457444182771691760331175254792631997997702517982346206520473086109041551581205767230584267607391160753536764392349153026300024795767206918648889521666925739062540391133277345463164488606375391066940317306980440582485913396211407867649735477496797354985249684729095889943857927704832646731203515773128540900937696716777567841233633923453906251165574597266282864199769466927099513170322091349268810932726465926647082008558242210652122955521248948207896075469283941414917375315189271381275197837555913595839155522712243273386244435193950027919779439690876132706574466189767393881895606769053471124901551028460022673370600924577454650215344909041422084880827344647062160922438048656355464498022524443333519729196516082620098826314191048619996472647808504095678910289932592348031950338125564477628224279871398611505860919995629938190096173194517296028615733541936488925575574621558162447080127097172747826792799534818120832751256315057019423279109346003927472652946380891621580945447647011764271735870784255272406448110095788548396815256702531365576277475911963710787340011948539819485491657956008220363653557354402596360686380888569275384989033394786479501305242517556435673544056928626315050193289249706870414397444063880268946653013120750035009880395767531332188315560835910678471198781522580061517564172649161933245815235006623383435892716464599072307858115725684146869939117427234902270935553682018176491909307334379801855912774776336728288402760048152642545404216197200559270338324541666552040907930630671992629644172704883882382557071977047698783807115783391589229234010795408736358850609277739789622575753526880544308785051156076002729781317814738198698507636320325727421153039564933700757342464897069385240672585869919319126576202497612266755758762493877003082385850251750431271922946904234844029241007382047389474178367871729505421353044256153592180212142217658418380351967389077568607139721054038590348434171520561495862721991010581229337207159923924898884575968445075971229526470407329952468539643678972070484750750069734840520066848756768504599042322229084691927058903459115844524945952154645313546874710167814789116885947167173744033856250187197545010037048168115670676011216782953559537306718953286079884745394731033089101377929283838205078737128116626965413957991881010384904137953558828301983144810614324789415043365418852257778079724276808037239551584474803369632038768502182710430319531145749955684432020935366420061436855364848795861252872111429826983822526757562080186788673757645274990470781157920500142644623060821982886193524895928578276557427358409458290820918805714482592677768521841933691196644540035511340483211785636047488352167480251145584216817089291907799270268619240036745764577025912271329861210030081022234204703012055719033854260771597704355278588741735859615002420702370139220463112742846804202153093076647095439754327605646581955329722680900427048125783304470337896315409798324137268754762150379314668176095948457967734330662667217536498442497019782770889480325452935656269163132614415298087283025959402668320383934608983132609560593300439786925711108537204985853412852502060896502918392597562742050387076754400218659744251746983214648214828242419499014165056272724207308200561975404200035271170503007170598201896086637139971143721721579875197636349363759966254415542657133072678788039223138273879716822083977780956808386255518800236206853356510504454787611056327219919169266294379471287166665858329010192023511457570248479931259461088167891451574732631760364667716897712933713000532295210587149025691289887266372363902092153410220323112094663161493654125694678180248070083701880825551609064280958459518675630466543413363245752357222636242760780063822438809669511701698020052133588966829265921717954869426010117879138735713395189836726727242733397561751668806598757539860219868302476943246702918021284409733212023664835947951205216174008702208908010171126283737629959036479830746016658507622116808220753915903146262653768470773980733061652206547509590883954421790282409425752920326710789595964955345199642199379770327081520189744807997227155487955913577146864459810236759060299474418905059185629366643940385093777134208726405655110227454271773354803231560086464438774020296079810610472479183031338331633180694477576136701030968446769489552843838914223744072694580825364565787436257520050985867405831834797505365718533015247541569064586941655673556532231092875778893469570912526904513121190564315871242910852118579512370914280617986596163000519515571251703380505499246168502738174659607579146358164507606274503165977169145801295087163225875626329252822048414573686048772039554478176776110939113454585276923351237471833304458961751741093998400579742143858447186088812063139737744863450629767184242665098537453791952695257144971903122903259355675053987227350190732430974610634784620784308963778163741192030972864544761377854561390425787218622442736412938539768851388611272534727296043933826585535619196573129666790267883102234097480541029674715737408110869818420862777417584350187404640962381118160299708744787993651853374486167493468478303212181585490073183797984907244609129969199490002381425697195005090928855979186143282902992126505085733248896908363404431818333302139497733725880443999701169761117681819095101608057265029172966515242105156374214808568788915192936835313965694452097546484757507618589695146044645464148841105727349812067364244961189718601649582764523365625653088353972761530266185677421509588973329204007432582191544789878322564004791386785541593661847147908388734270196288180464144197842939467313107231800050873614903095053693353258343098264821637855303833749506313113656860294670580156966481514683611052133348138937368629882953525031625885740910810543585570030818072440806654525128659662195832334161987572701615900848876465498318338683792128496236368010557221036221122742091360163756585338074945691120845877797130475603100559846332626466931275847545615857347472334589011746896649820669107277387959607898342034568331789814054663784662289440863735756545624629014425639100602998689117722986833883931015341348047815582395680239616791618318825279344507309541559007702364124854949849082671480859830172807431180087365582841448854510292149365613266718440271689355979213499871913832237262135857437347287128251997063061048158357714224251889194052222812473060427364948852572993933933955038663906194170672956489723625237088198409745104478997159528227323024248917153140881948770429320020131381658731454161957802854629465209360911861476533790286781028930176654597936330614850993087208974455431271560112202727528935276970749860938815112315628023530485610496441117237905366444076680080068463599975632542463485896284412368131843508745062618104541799763273535733584555174051412434936259559564012621716140167912889451702058103803563664125207586132914441351131561773850876746708545734715588962059906302442432974945242864954939517018487010757376256074070757984238196778653945454304608566050170342240527430867493681668536780850027376467207745028307346165065020159364275317797383304650294961297791658231328746469987135181512435924611347538192719027342369609427324871644172276544030295704035843911017919097958623329683123833594603111401226583240475812438805638945269292888018954479479703880478108635348342166564111821386344441409247401600117130808014295908240978160947794632270209823583437240907412101935400063583285942502839421288282377145616469983499825252892188662268391679995228313989067433304960894372141525171389499173617500694500433171906705468692627198512812807073754493177899532305929754971319546753115106693566747236757791752861172146644055003516570888371789569002046549233456319866937654940036083062744391628091459601055950559695976265198921238856552455530507008419898296702003710710406071550993638777335470201195285227938847998070923607184815710072298428157446171350672770657496962274368228193773671585180573809234131825158660174277897845142614065599455855734744469455051014959554958357709733345921453884304629841421823502881012394037794607558136954410284698616812065425830662201546419371431096411191126722616257290954409257380910815910282886742380581028453695863071941544716280835871020249946779513972485918011892660354777891582641839333691963576816946486522772055171602365239058916833950480169277032786022887722196649151870862009696455461444835530948975841062711510285972067584211937722687344846290366091585406505681961632330177950602499993755924588862764078111321470951548883863472579648486327131977222015227894259937274368618071464449161019138853891926012156369767804972982516602515863825827335356662887884188258583464293423371525496680427715886267415288919846015080773237298838619322714234429640770005340392391509943282870870859920861783746015993644868375481309980754685115348033978314447685259446957621074122678030309005471383909907752255961729992676308111252091166455367895123483029914353063362794150018674581454948879533749936035061921381470259001148509105587523013179248989883065507752515228238624470924877025485431787905856825827584724465914371078245262023151978310232476049001927182240303936396111801083312638047650363150494459489021658804737049418411721501530914196088366358644725215229881817994240156314392046999218135931095204294140465620654880233416004549945221089142274806705092083109065374065593993869894762021826696888508660134794651558850323160017598693035927476603214008817374393509456735659387477982418373723950056003662625816831817931847060654365990914724870240480107969123096210795612822311097268757604877117155290008297437901635942055977845649153887943019057289012473014437816189411738031575091280554494836652616741974535397993147646143356927993799520963088923503086625638800476163191558803447727393127349304818359532749355479396764316147611801008818327246160992678432711368052958759713006817296910667316833201406811420126146065240385538158854236526975503952285399750939928345398316011290544994304360922561339043466390378448235399714791333714056884479079204801082479270301978556953843116891213742622752185240247466146738287146661816271555057436064352690560330216350302226856063967341244363967525759433285392255236662429630690855944236499963386874756322062788941194609534973987268327566481833149591917197469474944132720945056083437713758426217373996511924716621274873580759600853977916649432873004920745615318583465664674394376897860525561468033936497191062433443316193015487923094268782444337432468412772368787431350429256368427087920790690039763802118472374735553259062991783617842278115075209964687764779574962077324159418898403492529594368423170255626902510848464631528477167688368555619807499392512715963986850623770756610604150338274112367937617269696957389562735880930934272418620497201767183189769029526833641393948367958441119611634531450992681441733637521128122353253342983929767375272194359304130242334849059280593332487645452580989041534333526382652565743123838550008577921774269046687214733245957014980410944477159126406921243805519776734764889653271273882077893390354565917839584654073117636010631915595751078080440838147143454312520358155559998048565406012367549553686851868075598357804349104097410958604355380658882386929120877158340644138957265741212848860060189560520786693926857673731276885062957949534368368830123716334451366602981124504542784261653315134010488871228205836438295087366876587527742060099376949072293319700374111786624110330958381592214670465784135845068169520589979526959058482597662005125028395674472402618336370852089982678591366515278433052267871600578695789205200891487111672993527403615303117155607556952034196928867841566735390934870965693571228532845961422960942237744204816083563680154045254105781299392565526912281586251923509057136295961924020419169842723051158041881933995513819116539787534769237154822634329919737919035649916503255422354836775294081165336517747622446303278258648043155414613781165623800177637511300573200966286729319945271270503873844768722436660797447924952451631895501686834636563963591423363518482528965155058595805488941858381547186068180474783560269295861155426147753817205609421984802529287109124587856438786390380863565589201425860247989205235715072923220358209556614156395966096426103118825660493162094749040746748858317873607784910319126232869918481053680245793678863266699465251331264306728559433787436888303569385691443305069937476366686812074172803186484411148314716064028338942904618698333231894106696125236398391975735969579380825887767887362442188542284011445928196158867648333344642834633208221096276929908726756235926631725041916193652043809854053570475442553989326162120157615726236783842905405947047490217037511509825365585667670781383838021678918904039485148476945531849908438293981342051712057888356947673179493673384339083686856237408430817749490329648403382069046320668151218773345036814560471604543703063003455548059710864034740909740278149151069241942580316828230053780618462942366346640265364790260253713539595924917101764871921552500433493146732389613545669412125405915275694556631716015830395435656572987936547413766460937300221653480529531889168259238294431815566564811839596758974049641839270108030524777384783967727017812637475717876778589189310746492486938917917711880712636905812143965328445705774078125116654442469459139282468075076394249996656190877419410244901618228849287312754632957110215144779710695252256054239404668011496428626300013174322130740418457773999143175662698212553248240495063790069205179465203932459371324786205161878306875490577803304503842204316800908151574006589508273469244816634333513986639804070634933712222106524441043390007618955634119503788220927679985994092179498096594481959996757554415104013528902805994220386599443090330834820954752667339737892680836460760242261150982472656923755933858008603196866937090423037020683525676853655853802523839510165159391724565399073323648410977089737934305476491987731806309653680167602019000235306425780761933624145080083412563149339662941981364655071468157019577312325878087203081756929118605253433602044713709695177477465758757747029896245289454046436412506943920924532555202292191907473717701976065682574076434459756216428350321373435527647306171760249119275943969358189701177668515259959662317599931613480741098702412566391390612884542725657007526241106712724615009246560988557108433602439248709772126068922776557879558711938820537996497384756605897562732773884866246656512843623265758923545692012595313381074066448366687485016383787241861510967215900398570173604837850144669875272785245683713230088946384102367806382635713066220594477991680533415201562246344550566255107093563100930081426667433352376895917788119285349279026898811389252151206805553397494610109141179657805386725236966088632115866884735303187647353772692080406452734652539172432378301262144455785315918480782810221347209066636791818478096396268843839115830013249041944893598526633765798872464260959623974621903835086918821183719774744493804551170641815250621667384626280733193504068947809151247244416354507907119131611696474850529908217211128672653370615986925794908336375190200221932049483572529607125374021458404876476415307226126315797134792011581442100897728563395092207231656562641924082114862512000167983153285295043104942888201139780787795278061979289596187155358733902428222914762410509991305935693056339001383850881802750291435310848833574823647349038333985953204991061732085762398158567445972421785922894239061864595173964684692510448724377223872412552547433034816941643890151471587785571100555473099816201971270837422315200508255855743073058122172069045233382911089480899086054681270306237924396791794120460575296470687882061702721774449498683437579185029462116152972766129673233769606181575143485806089780254747245216841727158008933030221249923593806117053849201407289882841176254733972089231314435218153607607479759337276691378169790206242309419092997399403093156951241225780538850660249415630785910372514693618084400506043604145039091592364408992101806213245930342292235282583121630980989261859991080528111995084880229057842843237263922370741580027534542765100077705913730030726807443534884408384484865538311072622540227400473481064821720739028459857107937668924178413973665935940929167683642692703262673483957659468711473676870374452737232564225059150173531048846598241678715758091457903401224284196522165065380073246974812324107387315956324447715643217993040122221345818306070313489001652175602307763967863557663279014275763738445808431887008836773657080500987351173913336431405266487514479850006273006815387054662299293142162519385096270872147949468141018938786317861590263888645557443565218394892182225328871980561654659882148732150685882636533097299713322860241011766649201078642289182598456549954808918424779674038858334504126419856507923333291912227584572439101186252238064376719038429825635228330863795899223836623016888601950827625286151880020243605151471427537056404574825546600486282380114618814095269243003199532423206933436060001980535496342462647243126524875954414048895104719878778145738059082561607868954702387180284287811356741584931833216371790362745264053737735530298267221288175808203300146407537939311806771341908862211516187764802677113178607120574194426334213235768693603762653919076196314923807571378821493411813843791770366066635878618401179671627717360040670778816429167919667653081254648971053858547048798638962571391041878202332427469588559252216018876274850430789435710382857700658307707684200326776616402661543668798893977924300731725402558863863404604513280596365009025823693935980223185183649911351838282666563145316999041004441882204710922674757179645721056080510074006766204113719272342137439073716820142750471840597250974383618289254938435366384186753149672210224076319591395639345672675152264241488429781353062287209644752373828116385036268936685609308122910969973283010551650161003874976600791463469813421830387805797009738963833741785922909742559487078332386701288117243200556905873882767429641325321401771744639361026722178879250873617860900513840237470803325830310380304136004964217605984572407004562261896525649950986038521780097900751992540426403063262001686599674030633368225289920563415846153050558724617385588803875568019304767912730746766490755451366828279859604071648464122297601425253582356037887580685323079802698813619450773872415071660993038050981121656319708275914252030911613185936330403357770580933655838644954463215488772351619979306147329849253511505218866720560441256437478174652584750361942438452366531441313265473214069103290664596681581385709173178597138111862570861341604434851422682973875130379028652053126785696557214035877072342286993350627956082934159016575577527056480867250238486661585330942864886591847064959946945804690473706651762646905746603148953731102918953390311496738919092198939663643134887895077345084261378607235330958838752203034530646222503676917418426581515009558146772365106583583148194997001623969233376358035580235502657751607125064400043527333028280692684030089674975946522400986670319471751117347090315478605146645023522558353053018315567160090081844278553695074904756666538424613008826529762910407836081775982280276061151446731299097413314705268732305906295194771897156189337525917908259662221217725452721930962023730687752226641208526279722355571109262493940813555305715570539124054788901120437768602409770365899745165122886402260692766963381760461116146729127471490632581045619289575900834469010674794798065359049046785896958597408336673765485366384060196440624467647880979190447852247968792881493289415561924610480213324421119618776912178744836126560718104896222731110555335110393180808142423629995579328478521233635420789590349145691984019335060199497153802305427468937293689217210965485587792060560994676828532211686534842010547431534970032360185941091835882984557774500840204606340898934920932967210271403884401389697857703125148203483859258459182675368619209992258621366475399303372873534054710413835829216098670818117949899641811063821755474903018912274525453588530659680357989112800786722053320355674233324895160761837728677985311659408553120690153709143203642407021750141018286196941387239717244922271000796255254052632493781833815308244703100390394363659867754145265368620737205689391007557158678362521232240386269320628627020531390936839170867001100671347964605104211583916689368871749452234752964480098272242310538635728885400779817948912226157252237606989919499694425576751254111910086813816000536207327640724607993310170080011053174598558352604989019342831204485202289554173322586220177494090796351314775451780644321276975988953255837247826071748765410226210579800741690264536954411177285642457939893407537553525113680435810904604521932145659199104999797855193914014051039956552186719361796170755618018915301169759737722657818936680457915825280025159421867216170158595775243801257023305344747182664572916844020077189565497524108559185655069773212006705354551543119388035538411744200527967755920459886080404474898439037443901927414590228499644289540557525576077437102946416293381605021404596728815966251671412906607424333434299344795763253956556280088264100168352235533174204327922689893828508702320709228273788544665539071619575539073009806759363497115780970564095120053515451601370344824200390925185558682511683918312861328544616014586763426397291575138524057692299053009069714079670096243284358403685736023751945447845354365866913666708390907730640952239886146489821670983871448044154792779533093864359490893881982739508620891015982170377117630662110538374890041066604409038474247015135682721192708407825691862555254734466095809860566818394765325757469241453302518713990430213839521362579445751798190813943427655721054740193908111612732729503717259700898197884042566841903843286798313680388819170689339379939377905322424233750269869302351898646764989866723730454723433257955684407175639553266230514614588469395319120448139905611795772629614754054500964787365812750278676975503904912182285333680366100604792664959271125702404240366687171034514486782509267720880055906650198622682322118603431064349988407486050234155419222446240148012286448375353219419661751307833564251099364260585024211179593917724109603468738142023034317286141121202366743433688771867179353396491177584340336129652216601354246742724677545460276703939246494993641630717516169048278323634568726137064411752048098596549712217244863843862674409193228623887723779700435686784774440552574978689542636377769676443411263047747476388073522721116245639904147101840430531667201062937210493977845163826827428531036646721591323250626125583712932412144635134416782220383420253189390122784433524360630206967873963803464989601953612107253689197916943911838138365090988955645309043137147815678824242524845550823589557564784722930199658422966881688644456722610141385501083451889539564859747001498210005729361337740760794400595725989107233391229447608675171327762893350828586798204663478319810859200385358434249421545058987933622393265409470855819724715812464921201802509288298086938565419339117908115754845088280134945683704318494546364983398788165128345060021089200025784851577721174010289348133864300612694068156098525409417006518360819039131215560888369148590782962132790812508127724622744358257949278234867120832998339059564011558058882446241742285508770957418163939572317773815069443316659956129616598017587207393982856305244644477457348091489627337646953823270660942954375283076753346311630992201515515951813263615680152208156717114594496510748155895466101357451130819671483076219298677463178821150668603010236502897896188103060457520684206025963004319979614120581380185527236156777032349266139645743883975979762640317634345124506372754831930304372328757885007549748351286894266162625100522616847216900700159637951788239126539591163745051989398967603209103523093966722610562573137865218345977258276391620028735905325931684553818088292306026005675936156952330287067068304198945477076361135020958448984726226331713861623115483315153236723549978888396062324713693925754678018591929731130482781041504155327880980060998962691738105174436806970531886648355470092691915660449909427039244305516165995130276306322470069186009203023220665438802435897623271556167076771622927546097668389738113772507900189592168039148574989330866052316053378548657948821351096355640669345082145544055338810459832595159514961617846188750627424629541457607997439379354809848754417906333657200401144332575230044448107790232251803802060115151127954272100978233752027776533058274557717720729992194063662211864339817723512371497697128603846269126906916496601347990125610403881708893151883110754551436846244170906699889971060879276990612806161515332731425257363794107516265049443496658303792491478800887649080142403216459145716356981227533551603711406742665582026802637968806464268133494218308526814991554705319673408010844663838204814899854435933258163640343668803787320273517011215513155907970248220215974413123840566644448454109020402050499288880522741583121362980526302343589921199029206064179358425680896708081717349871887482469371079923911405433956153891681601701954197431125207587480384672139616677840499335031454989508603560925306438076249086838802285676327363179447906839548420632704808078709475613513950370142274258613183611195551138031332533198037911263624409540134007810601086684165940561117435381175942850183648242876544247553163155352294977324632886864428173189058066699520826472779459171020537160504820818733288709846003868341132623928418659242081267468487747701869798782449069705842464070784537621673272825178456868404956028111385181577182658505903740228815474527502715265316724762009681733944409478207924834306474586420277530022220274581562034058200749813188067396182450142372624648816652526851870294177783151057403571686684922149382306237595958382899579328379968626575969195872929304044759921809086986539845421918614825487106033203845564192434703243561250672830880559315411064869956040084329656377951109224619024531845670683281180194973406227167152275078239748207852246348415324315666751268818769853842922944159369605783505515029370783737392717396269100103712377115418039493194995455943867546026478760735768507645586181366757726070280804392740310267857067454652578234430241968212667468135965533082640265101846180182652012086528160326548323171838726599046342253247228262259061969781951912976692837053752739337293164952406478652218886192879095682181542721877023918364707385548725713010240436557825942830491608023505056560749210747991801823105993796694201296876842753804103642921764788537360315312297325994825645081814706576441248183942488169724079319851141940311907957737379852517993488743583847603221762328746129479832859428900740819300497768891334957365550931961614381071873754812255041952772278153354524568521809870702886314139937875672930201031756046679934088250410482567563286790291964299790019849888163259899194323223083404888207822275835127491904473001006140242742503201820700109714056013047242852079978443307975717153139861485882466911914238971329011992822251507273390535150969815935352666806006941089308368957600169826611203039838106795641476359835375036306141864269072026053562949377742914349089138602464851501678588355952879007547714716154825376220006295931131392774949997490057528604682931260718328357560068838293127056681908507062767921811048495481212737300082059741209583518733912981603760842777699884240405230675544264333431941903507547237508039502289368035762900793292393559276464999925027005897816774987891183233315346820169423541184099338150338217256701203588453648209948334392579260630850613137460889928226835359919576786989514812939852626040794315623260495618427088100834245264008131280178277590180422815719248501490443132654186836590208315232767816229453467589669302544575378684390610868266130178046903949846948132824637451306056076945081684596264084012670435084200845672356858879242874663738640159439084326870710520175533133799589350172650365434827023936045109983677241996801868800933587576626595151769763057642236530837936667280233402397500956631069854937469480944005730994454425033701634986582908430355954543775123221765663718146435762163643000379531217635998033934516246141227604908320301690420162224066628727272495583308367349944928959930731766525557256716367465375686816853841086148545185286443754774420901763495943770639628528739531409014608650742496054869120002120809267946964678957587763398712201405381211660588109648405952236818380955076615124739785734708393887513713968247702003058349845035538055281861547427697354255653238001658914899074055066625101097390283612298860910383259859466353152457286069701601127424893739645548621919320537963222990335922261183322382770825220305802805276417606366555409752080121097140048646366017547453212546564308951397885758035250344205201178514068873247969263703432771877481679153668608971902326820905944858011490847047973715969560446061212535907746300156840578813373697644180156085320706490207618306026546805830847229455963258971363007181409735713747575372633957391464099742277858921649085175888775015924231039548907261533201521733853043385286982105307945354493522535887523794589518638618624454961632445994542249290156807945564232237381023618934640746056977321004588864653573239296945884076350361520414712860118480508375941714325672632251009760730738555633916197460887949765230663352466795924149606431496172908851878239514420204590399948608886628409344608803670498531128163193160653816665257625431617681779948822890287257827408540589185165248362450044200399495331589461839944970583299664468089911469493825883118995372486492780509297272760235895647115398011763714697470363023184134374164782941042224693178664094888995278648744873591456096366555916423938473086024252394424525472292650507190341178352708877401290171949999414275835975690019073517334618415286312306183256180980760106985855154461500235431011256695699315151089495081051759823450277908606858223475168120432965423126516825523764681815328310503286130673764061835970383895514399905172397721327420933373965365818967786227903206142258920543269507820663528236168502475094165498936899277482771727953258675694583227910818586847712125559859100563055829366390180645370498374445235408304476624281203755184193902052603891662152375307302792502812874823541977028971784987761906727839696959986300806366282731745320988227820001877627894437889097631346951157491725399185821224458579336329836253222804965152995959666579357783911187141993685197243024742284914166326962261318114410447113882994417208733879179981381217675999114910388470444295495439664216018752061305153027664171361280870573567742914822602201284639552366191599928497430369686746286131974808297970246381424973656099244093846616384054420680662377485284564122400968520989135667696588020769150164085692858376883088266732291266225809920505608214130209723164318515379498653569537568043883950649981312089879016089926475744807750168349926896595626846409174643662754413786649709176671954932314964819211715839208082458820620236780763506328259943818399959304571146002414481245741067225461590425448005748218823348711106978133718231848615555182066651435528698632464857089795789277290006752096411793037330441945335388092455370070829487406363280230757762145572020493242325054423920431223150223208863804166120886286294024286859389396212526405458138958023188720040383156740882212406913222640883975035047816237342770962413165358489683915049711580905556358209452966133502863729265219652813785061271075924434211375216893659109936627795314248755915688934676311332483644370807114327568003853728395758355375385422604707381279946969560882374163868605879361200423462330995489164701931585325359832638702450989982138100832758732123500073290571288357294130265856267893044386416765243858886708946911023626822471131861465874316965719168854181327077927287625812230070907777370974853955622487423460908930077633753367195917065444581736107275942984573926259589612246471425855722021560784815621429861225376997604492147779384206036623679202778544456914660594315620041516610833306759534886957001097066306155428478045290768851098281320023991757505503801152382691436456469090116370782511506538523585950587401633472683326705052981067178634838158960094146399278721475109758405751771148203517340970046701259939636531945785770350033633911437051166027794463288584312286488747520787390697847196557828032365155049668139415085144911533399577874710299198707500147721556995069238454020080192471930399655971173567808762937768775098258600996038063868475431071110999505605558543576105601045375423093276727208973682545896262660706573838800721127256968731300450296338649252842488405341858943531877194761679404324236734121021684356810997565330327863189059811262785526121521778059410541848525111557689783532022357267867911617828061420921467180675315155583006996349415862234375267926581701717239172405666828150571022146854067894617827482138307501051471619420540203386962008854276937730844123980091823584859107253366374508271136687699422567865889763587208170575836007149403141615997541562299028991173131106393458013631357377660570929191257799279724521147160686673015030507883866681971823566698122495725834772165343140748609090805051149552097333821092616417220927423556711713265082561159813704653798377884622857755957204224470939684698264883647526903952861089546812153140183508530998573368450501757994167804289005541239581348356422314300805928553045453529824198834873661182025070716519698406342799742760016814308226573461725699143419721126884868040106627440929589443428301874442778901562993595634783154911877955344450162125269297874077157879877586404134118774738880503631657629914484379699642158360128652004767065679444233558206089873691686347780675481626916748294670297878431867432232161120252844053932046933789208190121303657477984400743303671607744816462829095777037896014277596815735914652661915181110893722869593684200361571545344402113918037988076754013014837804723783240019061447125466727698569063738749465210316449230231911226568065178614511886338539158384390825306625474924094608310976023678368269876497110242856073136320594170389826016782859610715908935432009080572250919001095517721718723671531400727047786852838978161119047131065666012743075866214229181924097814829228911680474555167250424690026378063429792636014090387284253101294252751140211612980281159786693214057369394965119558872104185308041689198261565422117697522547303197163697654339332077377300509621965781734486799921943487275658975644948552550674231329983460223119090110591264892245343895260023213000828184434479271219171570924586104423344605205197980398079184045696504233481480354153958777828255424071111127241640562545427298060394510649491294915341602727846038945933260270660011201460837198002977174990274933979524122896424679753545884642107810923777118593091646213029777120955889122798182429527734810704041772172158085423472312983019085914710463812380515928772570348386021209590321785780497382592088488504610663814722764660590724533870245106972782330806297433111262427966336016790460241580249095754964294109776002010138787677297863923795830865739141456223708604925732188320912382093646363672565161692277093082285751261651126557542325807457409824534023642538601688484903835817248680903288438180876866733147401920982151945794287489540255610103825493289999355469974528703992063697542094600234853548264394537454594312641252212461306734472541518551513563183535067266754100409518266873075609018559493914908312934410929879334755195752832515613838954856907222310893327217975847915872138825142435210733086201924040538514902141593855301479832462895881518539062707225349326445452260367767829557074993889195055325641951649252594800917210351649636905097757189909041124160571105006594289252559857477351539960395862533503712506445759507289954606763476319034636437542334125126732490467343781594914331200274122221621508508977791871587957777990943237685976907911192772164832470308571601807096834053421843752457724413226716484912841278648279334663633080116392710746448133634700925513221936364131477241423690186027008388140300124179191433208154048808172808644181676038655790584184822622439704732681497144507265326983968577771888761290572733289260174177370849752439738870231415331338998593105164251372605357757758258196533853244956204862349334672519109031721437720472474067061523741843685736050276138975911893380239858508667294367954024707060429200285444432584935803125503532993436501386633653867324999711160725650877970885562271886154273961774075360925738971081945561528094638427167196317037250711887234230992922913538939087871626501793987238568681720239110731686521009639474828570510556983506355685234118567457244195414717052284443912507631161779863004766376594632791582906457116679670242034962337964657076632488605912399235024607647940433843997257849560683926615275284495136783217527925714763386637396107120025808470061834702730747144492021979037735384242633297497376519847898300127281470968412444162978447897461714391907026700186881889047357014416625541742462646019030920632794997656677182606643757014315474715784091333090861475039941834525268525322180867170222847583305100084658149610624636309397259300902194609064092487459180093451364152416790161547275133200165533295686425272831352818402481453882637492247689722030460645032436100543146048209039060194077219053390643265809569539023447922413245624254736178131264715001358139092741369725408447854216527547673785405556560153809460362773824682110145343098102700866740657782410554316179190846105854743985481957009743386769496749090282781848390301630097506383633311063065345727123111984098744428742222804815719717688444288186951760247045436648290556293250392592937202579885433939668857627658390641657195396641780366979252090592919759735630600223588011968342971518185110881559242392076977353130831154584356193819869800344433431823131163380628860276345241614702907554070452184213237045663161468684926580785028247020809324282450443007368591199886325405894579783080191448256842604483641640605159617334176989186004805301415610564883208400511892164023135506890521520659853599984935469585956494003287455989576564555176716243156094649319662889521849141566914655903841421300108562316798171148776838227871292928794470253132080995597755070423301979243719550751030683197631146809520176063530760293647258060901651427369672188181655512115545151089155080103774026697454456080128960612425521513534676640797627844152887552606800431693443857353342257529303861139645230516002247786977700705759160090526769656436078936915457057730922766160293296808880341356306709701408282655871021938894888354845224977073161193521434339887919861253137242269491892641655162035021247136453092274786017551661101177850907015031268659113967758370511791092487519337889227388739471333643087683618799553212714348793903442744482608822453791949309051281886611590570293851326744889249306540958288743419312639645458063705448919840955355645323603988898748890539681990941685812237983389224110168293292326200600538652501838266210942915746412437924606929530380897890375072670589364728894107692405223188942465541356631547360116752098270231106200804134592609749752403150758069548378190062044582403800545699294897532822352327932869316767206413999877680251797692296432310467210905007968789338043745487173747148570829101277798525017949281201122440658319196460252505789741239919914680215650425969529731741334067167088838791608067904916928523934325691031405621031105202963484899294350976994181734554160577546110363397535292217018302963646115877309806541481300934033209684923121218334762074661443157985170433675983880137356235287427830021795616690626387210225892877691877495064451018208222574614103968328019779983540574155992391620455300565648280876245912209251169919558876389685449843896421524696086920521931679067637209029056062258931453251969910671482898780445926561027881080636608695122733283422734205542472505262642417301809483812606264930721804743313794888784556012489368169721230835645044909094251646267908518040660766320697529849641633809112775947800062488722526016996341085475135715300604130263033658371315366633296141976154347059300152034419416920073137335021780816947669331256867684132004419633924172042208856378676198098629963582383758609724702198622776195916396190761380164840333913680481040700294909595418837779210413254812796819000614388351543085493697555540199034208683101655762681646209183716028324869630820802754355236218223794224607219355432650001992380687102874267070306747739778603289626220683776788704663944157687610465163089986466184143025031318896623203465193237257661683224529826186918985576129993565176704008682231827901970709627405293735428875543017738810343798195224151180629484850149505556838601200648183780605772938069530717844433390982995582765594426885901034436119798667327720703550305657472377533879202112388224803023399989054277203671149392796950232410992574950933752340393264374820540919298328246740270875181331173454223243723224796248993359605611183374524359082924582852546632683990395871654291400819972483024645996114506343124545301601905968193383288065905397537821597161238402178307471939608422257838295238175850017858577042480646511899638599271794694167548804232931009117921754785996497251428972013731728756231982135329700816945283175735234167733039381441446904696102269718539424782882026852967145509142124558805385975920479600514835232343586534269814050172940437479186979305280890877141920427624415653065016931493307182163102145399682103572778483402201209717465655578037554907561643799849166918677198219698616173557423829571764140180950643352975018613958949151793620057964027809053119929196702670554644363344996535209975986639127818388122616393199737589575183340400236709994278925470560526767117236478393060182161782556136696989753802423654414724484437891886552041024070125619962225055172439497738294620329113153671317826638500532852665379132581418795118443274948082152126594232152550773722385515429313869744800346333112067986917565829934241549440483262235819608348694069435107950095529352680614824978058250047496444945268669449159016421412986413483582444359886711439862455008909443389234966387746010169582284895896918422768970064297857123514663347110018796711652861938113762214876368573143363261808419556539718398736852659557685762352427709458576564900040245217913494463112081142152971974086391630331507467587682999171576716131770017637038181714690272517544003306065870043518556790454072367817103662406838407311227207259820477964261362042955152510950254783108571319452514816416955135829094410100985311025162472283656006127597484387032444509030222186093793898897949380335696846761766822115148268612949537189508723127034332282139110614882249319594554810801876853770092468035462779544811013889527731028567713193718911995726355664604546959630474642580565007176328200604764845821443647051205259735760625435626321742298224840715075255023094969814966757113665231386701399590661855851126480621529720903201501272875105467550978441993072854041031768071844460148867484703901512582393074600921620742242467290412930671900091665443282510472191354939563269636482458082750632060599286562689496481477722154157464879010232000678193267862979192397617880930950482770436776262349378699540437969512361063319015514936795936977921447801731040008866601298848223942336057496707581957662493198365827278526557132111757501791460268433838562921593118440940829551527391115006811736623836249682357203015663991177526205295970717610114278209732290525094901297469920120397380995382673945402702971221705343714368333811277994564307841418391083928471054566109236838685004290746877057790278397098966701640479238810481002668932826009104086641108312422239717270195429857732118119033260799597118815897050054878955334219596955999629781010150140777933107922848622331841131367445303854441444643320579014912289574112024132830786469890168099483292847548087190287181330186957676494845621900507458053808846040116799364772323446129128803825032254045284534957856406397470664356606542691751886807721764893597704177482071157493792911868605478951731403541937292383639597385270796553779254801648398191333532035649582303376161563123690756696376931683725764246198297225539017637944975470050754397777341181050503010342728732596992997378528241362250711035557887380310480465487198826705997131188051831376978167020073083988355248693535874220152148600349569342384407121220351155422638464146429008637796393945404398020540675291665906613715346121062932997859082651324462969755468737956475329650433007053571776584017081198801602178944134996803982528231277745773298600421397305197622788014131641798421804506232492532548061830713995990472658196565201688876864834475074225852146116173286703664488734119261220652670804885691153534408109465230151242018910022610072467802020140845445669289439660777786506378131170801624353592556325406824850002990807901104116923641051828846880039673557261572058097080249322426927602002498941195452900394619284650133995063908425603067351869813846368471355842591928768361209447867690629081128093448657965550686526982252701937203973895565780524543747844444546471113528764788289186589447011021124132623649256500693012108770107776181937529697391187922779486818462473054796545353038732371854411724445257305157075454263440653919765456146111616547559585254270851204784391073589382383490935012818297348436250993302192151454376313046338589898219486595590571302645307050558456637049245886616320981972882252028388464273218576375084383240698755100322371388825254454076729691784187498056589165457573581805878694592105100631559573711944100009114408256238811785150620125861816420655452405996483483780877245638665135994443244080730957150469210226977900092021656203182397565473987387267155750829520414105487531832121462258279910968753102637214188773232056573140059118865046352347751842842673439658077673885957421163701454341163188114405844371373752700437791892351279698074167305566177682223145923741644494438937366849617586178835461670039335778527059059260334841656693182207970476789920226090056393738821292585217977582193747069773791226728151223034192099535815567340071497337178020253659811902684720996840894720616036820449834578502534539381138549089313158724527233376952257955094693791699042599234924747938430970644657311808413844425111910971497557767183781312300197023649893348806051758291239394107921837175909525390982487143760608001909513606337029933660790100552928540138939331419709122864486555719778068255575199907105217215922982629654923896400813456757981057203715193567893283770102394391604543327399161044077783057185050551394661913651351926488399374496843578653532825677454277824709652419593178903642527843518140162396794361884433100592983467519020400796406185145279462543651743579916116670222869275306372650341964832270806375768088675915939815479277583048527552978536224780807692479804681006391380127887494579287451464053166773716123297782172268689604119302051105211500961525707671801342337453451358159998961052765313898878238330280966719661546414994927686693098418217961707595432735679831897246657956955208841170288532761741373867539012697371354681409368830542710507885656673896915898449572989262575858565865996791256904215762268463553932885738198873917497502191239993413568328021408363518909260287305863498730254242659203250224543930102576818406014465315520018109064528352243475053735906841155276243222314218316260810368887330360289163414303532845643044715577147922678451097725414549175877681639752662333604870931475783402611408702769161791289508535737813844468276693440475151986705737696433440858936317789338469362456402957058577212917323704182094998524450275591370216234860746500275598283726768687287588944716410324552208491002989395057412143771874789732680273778263455623164023184628738474676086376567575190727270316058671845515336014139444800123889378839358235638862957523399617585360047516647201909148143656193029180019977069174154722693715664298291355930743617822063668400681374146924504102746482720358941769962129918917546773282167967700780173725935294597637482149810224716668894339722299071953966514261267635986553784854390542621915389828257238860605842917808909394124018944830022407915071692114852136883309175440173285444840033143894665805358225931541768911651817651016697885405553103625111011077707121507407093041796076765652614226078379360358263056387722872229162173874600619295476944990335638845441390948126864863479721468951282071492722256331830855190541949422965118499351949996729287041553871944282829277551317263704879217235495782873806742313948924816942711548362974417054370533215436656681170570746058988727955583289228187949681275650490745489225708596345864772121000490214288595872820877719113845226702054231229934146068500663954636375376631063458010782801310019638863512957982806400312842941197602701132224337127982149939498692464420134977824051081648322283296599321021852244245788695656313562973556357066741281084966961518988200532880101716050851668358794561015744221995397145006667906484599046502208358602821123624310757008568089847127130410422459344997176902801965777326467655844540951896531263528171927727466176842033808040827161072626468040686584331302013312860331332170602025485908795882337567941551427849237610160922730155522839806461531310603583203089491588462690515325411043245575638101081243694373463596359433941834716429108164294950207208506955285607188842208156248605376875628647776320387663522605472444603669900269032749422274546062382768152426268806255700333474830874360099509139835368462888642682099643535874049425539223640685491381725993390566155314225404988926021405119050265263465838557884705687569461348792376772992486460047581497614890264821622416859855414108771797865320301166184100097598777186072742300716058947675480008338769634084270759881918953159419514063465507289888602636925843752236714497785699505368503473356370756387108997200215722722064876124115570632587203961705349170629982644936124354822858611875462784951202487179671778278050462739457762388346831866346098396971937619119636491131718246954667353674419183660909987262756842646607251071901235065179278476439232549411883503860894556992385515209958614089265275008145469915350267193211331400313817751365545088719793820735663879683662000559778257161889934632549883289294767621512146664243246824796099581645231001780765652966509280191158179501818134661776431818193941493283303590013501317656749154642176736032504426492204100027399961305751570463507751265153104411693950374937242804459945798307915229958509011400452040835627085396244681200636035925983065671731740716011187107610978702757909530853719930854301170562144405511549518488204893394631556012540748644923628887777562280706110974756473062474451539144055001937005179413335474838714295751372438434101617146495905078078422644293228933325791809318564311508527240229006278529588135091437743672604898665727403077344362957752745027844916870010902554706978886383334580036137196954525441986932011527603926232309029819112003745940195852682901554420284423903040724987643061561867128753873849474428498953028994388650401314907326332188303126143278609790423781686952507591061196218302376817555408434185811363538677491170643428619254839426399612140896479809384556189173540636432412599066568294588557239558314260824976781991423842705406791285156237271125712089128116113438485479358998469512664801755882138735204025543762458388663735386569078603469201469587795000963080821627813060835317706483153382360067554856309718459003902491541757077817792803181395358947831801777338368697050337318061244999986565271722596250442465283753864257184904756188249467046316407276256914447753183459045372623556095361930083199379404695414366893112738200277486961646781293117276287625431195955166659588448016337416100845200438173943425784782024906847978787905202408177050082837164640928959862870804063362600877972270189469127116549384468031549981616567499078400101438069848405082596772572740857754042140758882173693951203568245934453456050087937864160030417439685391095190037954824303765563154204719742601330460123790843901549411299538194633567284132590440283068422796593686427483418427762759829724813157706871125844423529825285337652629037671352161498983474727802736142011348734629052186417147147758472305430128804058385084587889884043034972891570128813981031889553979959150775801458011775721375337295190927790006793647344483954375754640339016518627736904239626332740709162871741079581308617993481402585577607415425730057617548038884543514427771999636987406537711237662489027847520906227245275820227646250064292632375365434083764558187815329193060638036284144831589879529368998259117891674803829239890830802316843902575376866995421093395805813705836983295071053567008113329044687285141763920156603214138101839086293321459591457846350770772965710894714134454282735269431860081182933348156835624229701151675125521383318761314792880749775577210710945062944949749444908364427885084762473040050150039856568435249808952765896227623191553346453756018427094980709101145696770688078402151902778418018224151254523966045493965552812343285480572557946056346495792605799666508641165688506615856184923738525880312423088773546176682166600556498133502814073275679945928113526941852608114750696370216501799309455979752500045448661910684093665768329496107625990021172625821303580223728990046983153627041333712764657350438588284814332244651140417273697345999772435057480240229496256847206068863567804166196038443794257858529965281248388184947294216809224441614078851424096809716831089519414953967001926819358633171611987677417923332697778311575871269580454085894487837742132746393736960135046951045716859728969673703554008201845312234422990699399086036388930285537255809703644810544317518997252835716179640463472807857928259162327422646184242304855484941679068374979302884377484149800325980363478773835106882744136933019540480513650297120028374351893102482197944495499093710833094415161207437426717151717181798991373535918111545025612268399731588925477637903172613639887795456436570992289245181039346840742468009677301776903041467688078684315989694588124647674237793495825800104536183154461244343696279621782107451978593177207153829157115282979885930918788101065597233406456399007207400545317022662165215423454494074330566905453557654025860964911225919749556941627406165969555091259745305603528868738676230055118258058807807485492228048713436647954044775161821336782436607125170887016010351597221086082828244176841450632280047666007735176470391226984601163825984569371213953793076838595109409048688352330924870516432520879175234359364223778831105921844837250831626977433459734730266941671013179196943046917178361998871580499151294530145274688304240558501745742202590564997752787075649232744337516406520478546806278448750997024330041996450941611699388097219391805022761240528036870463902678057996025140396793287227003449363866955983981370601352230235489929909046911148193995283547980522342700328206904036478723785180204045605135700909096174627994189209966416235368530710625596585547794399135874901039448381749693986127691489943425185296742813311827865843519520154159691495934856407559942083598098730062106831837183145009073657541734031270869537832802576551296034198058424674651198598730112556984074276946430558744202531708351571921008834167112116946856728507477110952558590269963313897019597018880054597448829230968501128238973755048315130161791132792516788157699981775067956484034617231616161796890169120174314315232768492032519862590507479116716913672205984028591013917710566823466630692416640410388924519922652665027355158460999664028905847012812823158510368057033420998415309441443981366113939617195898640434638527112399943280133978581659357843390158103411849674807739198617335407141845210134022081360935362024094422665987859601048278750775489739258553202160107341862501577536616592085333352545898669872865877665413666870863094002635460603875166332269821712523564543684303465527745760538597008423345351020551008630294683121127678284120228062483632799386043584293399208370649880336484367642469179928825738385505743675031797187971414096831292474467224043939445524976305784075629340789889781178387127563766678405250561518505399839394658822310478020844141278234896033077646329691687167553728485849053347296171021279803173474726132066854147968829875714914343124492852661159895180784957079126572316786471367501838709657004104452090256163554035596286674798208332856561288738933321451563430651747155187051073931265080228594258326088022520387166193681231899529461738713319379985316130323713411232248014894365270531092067285490824810253481933495187443224236558228508494257471623960812690033034054843975390835199993376638974385334255103654963287668374289397131682401324484507545765406759825800306642361451787672444050266558490840020850147572276253406524872285580295156196819208112572567223100848500643141811047917029247805311720861949214109718074150779345024219130674811545867346094993951202990273403842520665913461950705041365251386830983490667051859556685704611102699289115222150609324606699244025480202184360219121247994818698504943208418238539022436084021663886895249450012739047450504929009536821667991523846969501701355796058408951310419094023370429296508806930467833777219833175281214442048114454611013593783211311495783400731451664474561101245787655152470852575263283114518597746434444163751156608750022813548372622905778865368385855291595223547447091128001798053033070275218657208318438588804711636130504444686391523874538632476897670273182887836236907438977104161323774064682576469967816130260052912901062018940428663263862276570952040209356630759076580414443986409220820935323344291810087232569871888250942877328230250540284237108934769707434861220325419598783673913719534441605839977563955178237898153739721105998062461033394363933893063612315814266947839541545073776382221101502990002286530301120900133988840143613038410263068671281626214550220175926395910680583717973375738283416659639193992324086437782355032413606519321195112454802668334454223886052126605013104108756485338726239385424821316382795564666897199177684837241121211275052273395327292894591881827913418714103618441959039000278251026632074631036075211128561816344680842551033687547399119631230758172401549403097854679018788101466128819553192112383812774564408517247690244156771990250027739643293878726964952734946069150591386845940055304907374731436609030825314136928366720629379206323618754751647883687129658465706904756217267915740142584029964869660066054612554977759091216308019013652701043318770141175219628761695230452316277052150602632178534509722622112918779359490301749265566313673724826650169436734506237414392349730188707572434170994228763085777163028163861202997981357139160576381958275506198573030159305503675940044639292773807943518733246025817350307509163139334852367396388891195750506191445903942735999647428980142021515922509867416586770112640561189627032901537650267506872469819663398206732230091942808520809013820745129928058795443801353766790269682363324723950029537576541595867964715522020414802234865890404037015471902024719981430409948439955843169110865022051182651461991638702963569364327016015997991259562444875585202252676152202167675948613473558546181134644644126036300084290755800541412179757266890060163879387641166797336985873539836667122735971033205555209710646457187661264655857904095736296610975304707231429606688137592984927696982554043222328951179752559274809999051676898871086729776540832905347787533106081352252145175846737250990552306922180634528231883098475713301904998409691717486815698372537401981705860459396771997797200067254249183082285994362139245557108106725212447584086993502760224953640578887349953877711330842053593733850392056298932254511530720814826377208642862370629214150313371762901620951483208117238452088498339578023611675470359307869414563647260814974924277952082748564199991326715808971509768592714310413881747447977413125195164704677865491433053098131828396749114414553863226227386751324245339928308591586932570443022292077794579922732565759721108041245774803791775096213588271685694879400727915362476863027835092407185408435398476366535977649467529282626139742760734094690511169569033889842730666872180561876619650237037232545959804519347547989563306688423128596691747896432044219435095055114263658014169828689755693486897809734713084406071026044647791624716452500392412879239398939092426970621349701701306978390966988511617522428319132946034599584422731215401992025840198634977409829371832383297238653381080912153807220951974101985953504226135169880275219142986181332157185563001739218976908035036681806695968801761419113864589015743008420296202675852729767320575916998332815657918140912946433260110268318716188815867482345651385053557613451325671365445076703033829017780311082363363460776819836236831619711425656212905669227787871800398528560347117132272998245036185210661242675240287293092026164817253919520309196248168441267294352971370637094978262125446755304479359524467663824705077638200097121441057701742311923955664787605668779526787725488409928599137156419949810902917474715746005447590175811282760841241046972897273479254002271708244838836749799577151364731911643364262148696091601666812931309357033875550099414635255204771366311242320042672482455995047719165976211425766919708572568732132286118901387735381417980553010167291026149814922706308593593626224072096371492068415686393234087371229263742542273577533033082609250195299966203303526932325541533417539284494374162715244981782372077248831770299462547701795423195176999690631147110059570502625748535501316984704516687423974214672690665438190207364632540056038171690368941837910571161594021134508886976562976854326040407589955482611669263692574632885968710900353522746861897739829894939109290747620565202494258076426153671542016910896071308081165270746629067166311093821507589330221137633285872718521915040922930439543947643304596497975822237632472222458784472152457501380525199264991548542847000257652878011430642730144577644734213779202326854430752882762310328682178661389032257282484940959386079520101997548418448390290523687039345195074579688250296378326659582918613873190085094475388805616532185182354447786380321867631418939189832285766874621283157512558209393529849623151932388996552425122244288113657406364964597589720163060573331933823709291276224571555995086412622549622530244689821542338759344383050533048810646103256113879896579175490397606272614539697010013486507667675720617287188264943841177481114693130980704459216801771415109189533823699694511426916213924043131210672650234976414476133520375672901804697860264535387677491893511384029149224017994693382364136436949522331312288800538612797188911213117662413498597392416465807877510423756131352795218294717531652416539500258114655053379846516214136030776125108489203847413353501597151940258968442919147435811226184610753790044530618389350317406420773187530977148127409635221878145923107626291350163496286943318061168101275288595222834032683060961181692953991803292929314379559931879976255876920959624708262089508374751762512237949267208596639366189321034432306604949250423893286658110595985853661308215403326582054976551445919271381319051515426875843721365246277111189939617131339830324275857174745796511347678665496721142828189715009133987725523326647721969701185362812823582291590092882088246057030212095684460990592930279104782487679259331259391770590071637525876453208179433938981556644983612225477499839604246385585316306915980866059115165707895082369635826178336808614421971045358210899490634426573436033864174475786474539723164292330732149227175181314748013550797565244214855886319743888349254907825081561323060794928631511118918781342876766771149743477801797461667372200252946931485545458692821945829264411992770035225250219525640628555578938418343345371286704565781273366593615306695779004709055513379652443452362437481552926339588886152638728909667632880827218976014409465822975721700337056822246250187366219074592032264645001203423330502292349804205560380331878803724270471496896799325214828341262131685296976745393300416959885721252691341022950199090553486539994607115280585469841258493596919793467082462689250830329625203602214549932904939955780650226404400495387923601173265267351126857596612148883638171346949401388072115484592422608595077924444105017920177792052334393801228983518495385648325159857098474125131830770107597568038923224293327726475979251418424657643194364844180248799456139464348429478997876271001451533639001175521943729051799800672679708598604735186939928321132965187235975547517733595485593107636916004495708527503743921047762777045296326195770070069974395775857871988806153816370773354906221718159930522931686185552090115124601741721946806828542280346890544449385330125856697689689661313626754305746550500977016213923167427652991299748180906397277400843005552457152688826883549217659287213557912432496454419256151031869104592425621868831490010372024675063172744386172676118545817471278077679618579669157931074719780927044698522593531980479613342166773145091887061203039685197917081924224542821627647944480448455057539148786347180907119798937496074327897095602677557314511810223899176111558293495362094217304231102463772698452558166150404102563889228789690082147154423487058144029468601509236422633259826135437484197076399264941312833693254649394212462319210862198099652904131431627132553534698091067191938401206775311377385986705986586060403236817357254507440029070412849990479902178448447779243501312152519978547224481600072526537755471853648133668866785283150815275926861904358870005562413824196435688860905729649619982633682420025382984212518983286297054560989420391156745771186677167959979506449962033265336444512717675893630881255630154523381480990208863809617180973252525785264336646466586753835418450346247873338137117217976602252101833857701095575037774291884448357339848326838429081971753239787203553078409520168629402484173965248083665943605083252025096829164382001312157598207641479745185808694746137443705505081738368636036891739919859263582743292596868760948396158801974081638388979822736282185387952353862191720224748805244832788232258703329639308785293500812119443972398439586070413639808926600757313321315781144629527717199420977203323584230016275817722611927040618110283523021758204359872204668603632332059153005669727102617124103993321366949517591143741745601988923908250319956991615000385573698875658582243442682075876792844293481859404760888846349800465424916858962230499926136974747528232457493357149924592435726470395451140737679248373422213106432695877794643561665350173778587624100121070777193065799784743012142930024858436763367496221238724464483584373039732653046195246510749517138866621256152921936575531454969056563522815506270789234437958770975988750003556366645304383525379673714277745864310245226224299303086808049533786671503939711070988801481878680124389422460633165058123146350483931583937738869153718576490903978665578625218136843264507009353166514397577685530970216867530017106296084767085375933799379388050453393437336271567629247506943307941904760852364270264505042418838889723605697225913852088247886499918429624475184695928884281910822922414192267110010334408181510644632631708319832172538489535264048678276024809412989742456748669586944786874618617550808200364869949711025710932633873561571343861302898251692951830639491766283753849665495083889394938564803722924909457283583758963660610933016847729050817736292808324396725872124331254168357792493257817142115874060846685708447146606635303352842246086376406210540220442710360085995930405126486113327762365969416612836026054088755201026980577360180975781028346393058267554503435614736002577641081380357493766864654775894263442186574256668107967790105067318016905215091867187177002129645037446388613902432899412860883406074410016746834198032500982937966724591932001537075133792335529012045853803833812284742832434616048261296419335502216055597626610914430647526116040532998088636027285444317693386915273423819513445837301178910821999920218082945448185942710916564838357832399663827744052232629273540712789832725113311298366954020330085610749988966099945626542741892694777948421030292042435346339835869558105826008019046692412355203583809848316069473582849232262852893822746634718781154759238836442819236799049333855759926226126484968520981453905803543765337826689748319313022740433162889492527022794757474840592618421748190780507808881792561143639716134880236865092027881252672711422507849933540330739283529290069266052981385943039922621696569941729050448212746307666499868894238536486918411681816818936692894178413818359949667747156010088570720328888378539881926825808840789672090963352567257589882956607968653731389353843141527031623083444249962297061443312941598273498843804554933005213012784044097283149864364646443545643823615905490176997114949403522059830871289209075629942330670885106904071484261000066780765250689730283326192881109553264249069907866931203463782305636560653045303693656555145009816277512071894522941026984535094028294352301250931355147565287251606420784690362536617910032782615689729579708636047522149439330498214598177096498203139512826020180478926631829877762737848520638510126567077009273202732270953265792276218713515955024556419880340210540861477485045968356754248530760869508243173469765828398538928353609715245673930229895578364047395543628620865744277787976373592939940491849233274058875163398781672092503682479010174677418843835958441346240251050457111759687038690391128162107182659893419206950570337684250820350499970344652623035740061364118029293527523578481235614914500973264308043152554649123239508644421693717307278883503573085434848242445640041856680593031311859244895379250569865324293508177196027242659781891524465419312520927620272577319179052763244588746709450707241469517101234809716409938107377840203968981876421322828086150620241726688868192922838941105372844001436005806490011480054810387695801345014703806182366986769831273963249435065040093081780917229555827015619254000898162741343143340085381276181607957227513671809222807106246758046145342439022061402499023236372158390684886059150385975562256010057797469356282831827258792469808423745662832291658146073904372212578199026449313391648290594865795107962315353886001837807698319384592007464414908264598275204406957119062999292666842797637084300880323961099762622006466400989932111130735428891777356042349837134749323399282154920739925992183209929927224541352840297005173199103210482246527628690405846878729186668187194511939749534952133396749919189497179831516449111317187499712632022542191874857739144050767543455971734040437667928647001374241943183328657282715822954648559384656001547780567347896788706619291612093118625122353639721986536537475717902517900386898240063058223930967305442047443932787964028381127966899824833740268071312722274881979578521979349042465924569391524378455952819162271182666527732957373832885187971018685949485024450764820141248840337623911848675483972095581095705250978716715419283909041691841084508711520463998269528899908327640413245614589784041046234625021912880857148778218741742259671262165209690623698309671202623684323812077716166812644584296719100982580845431576555046453051637990111863605479596154812283720488118111378873228099910247419379572381371411658825693369173902619376163777295882404033731987147668406558189247349098308816620219896484627545977214207583877549751659802283137766696701883832667880871489052216734571232328754605320687134465416801543919052567767967192832635618048036408879101725749647828552630821268710058797608792304678214122322849594761664574382660961800977338369384440741578473886105745773971361444997607272889225877207893013224086558992177716369990238701440438764155855696418661151974312504335335794499187705442224250635234003571838642034035641727812931626707882431311787199385013775065001211324814132520142159905664293745310050949829317731496945432538241677975925795849590397095639869252083879015930592687081521069107397235255240614697183630563779786946001335466730032166859786725644146615942475848799582966704443099166371697953000669350115536526264795988964271215233868288640035869067147825033512052791444201102992998817745902249967827147098230873597229878582678487079971882083804657520381141075230337498327726294684052279336558840665423271892045791900602336939265987361402558216011752659551342992476578002127317833048264795344149450301814746210842576145062710895016883938876029419076486032746453838179368513397090322451841495350977060477307901004417935090331615335888524193270320561070537708145309453124367305656122074545157027633202327268026067222153973955387641576488412966475195450585275291511134229434310868823308508778164162598369425901355248735831703418235379443544620654427186074466594504110398297628034592191986984728395510166627356582223000665512284460672922158229732166111877002281214170900528291855700895359984379954618938082524453919140706614044548312839343242918696060493778659498875368987514237085302112353042734083703839747025056195486989566995986568234271529909769874235717993217539445113320359718969230582019959510742768276238421693346976891758156238034542246407285969460999278725213746848453005992648996709304663776645089479953741400770767868655797592025890853466752680645371499120849366311468727929457322612695631276137700175577987742345258553758776993998488566098010288423219210727683879664144197473387251550436185349172932366676225528817929014019685827540530532962029383518559416903031850631839215746954191551533425271313193943511522858867215584469038069441543366154809628597413932442229778944647142757231658449733308221264063535041275190092379211421765588531533212446105248372300591951302459090040157683089623876779326705217503652818771607521395706998364997120649501242515259976816717951104571728499022507590438738334146023965326689246573409014802383222065761663683337348281464454822024335428134306129692279265388627053315853936714697771318670164164317864369518146453173335698442100254948115015863539504214610672224571397543564450962559726381636264684325153487822090656106023598258617389101545954011796748090760311413409132486311775138488733026736167501077640982626857558610243012490988082767646982529674135069904576677642969734878822413318292464486481339826518427639983534374895668604732833436103382440827724224668578418400321302696778411620301469484999325992602778812848513727256390948109933213648688636771891486430287940373248944619721830750954865554917892352760655841533144454230714369066702869142567051375093183674863480171686250254824947313059270934041860802161713321991017483849304549303609306696115862244558077864572250489526933328503652811691167377068525855095266849602319845434546072835228932625111481391585250237515786484618998537333024598009714955476185832712712522000667733511020050193266095794949391884565018724278209683979126129796552923419873799802136056956737007975355043732794624013727914606077612951567845021127896854476640569156991017870317122506662086344050106268229434201920856992534130693446781742375649742004323998913472246672913738970879680192149520115443350513712953946824716158511239866961087379879047992779791703085893925390145063811319143483575134276955100872239148459737493195315875828715278203694080940150266269876507989174410968318841920067243346579748682461793362910277539333253882503052036200367978997002368883641773110549934653360399348420741914263548685103951764245336099359661615414217713187622564721209461756652058599742762519242818592618931431462686786716950466218632916151591816480759293944250599388382812264937019675490114395007308657984768460084101778039761479363955699366578628894075606293055218851316524340666712919860713964600392536838707246435809102219375043923924496650197301857202878645143177039612182986901016835343178062445147496200319349987327769242866963122875599088268606438115984164292312777743782853833222919661573131219727624939863922446411075357678361630058928502867654578564937476159600297679216741705475642191027498733692779662901060171008279695981880923119900072349849819160196044330881307760629341752345297888999696066190807474244140701281337490375889559371322514929842119850145884678429283417469507193814363087519501618832434434071735229213499556353442913388429737546680783641937735240180531999555572117251850704771582937534886039612702625381790026283640794664071979773981804819527151481714353277413224182945622982845406250027437411437272133436640138051058580186079293422747685833640191928221244602657181729833458142469965807545653722916479971663092315371043798328023686411083127614705010953683394409344460400985394969407863821366098560915233248330252767355010833926467818752380741750624724942268414044661217281944736252506849444534945794251440837442908078465239695327306904021990408823561853914596251684369889973799417895628276752496149035344037887708916664315886778741019816522388606342594827476854481420581004221048532540446423214861327335857386827426799745067175000149153910614628687357124567472769679854438085531659284797884529341503168194526333156938628594638910585569739394760108326398778152241640396207141629730326872832073557578056462823797892692234098852970886509020821751667039980952099088472035223441063279693470869640112858851544247033314182134625007558292737984148343215439520941823068806678176175146948550742461100690418587621079901664652163552062731432164592404128832581298536092027520068721841589524841975756679963225398129313021052174290431710123718381883739371180162734019994022330699534470548792019737225776907352846764998525556265079684751281820840988973793307242569747084352882456490050093751274582211849508564502220186481162030305474528622784877137179574172235012583132055398078962125467631200943991656139578427437015164123223781167180257431071145905705598339768645165268908852969380331969496526248223107605446669310014313351380692447538110256544430316557822419606904692753728366006497686111964183921865992912414850667417340344497290939414450151084971162537628483215533330441634440044559515727742024613374675783691487103443800174292231439218096795966963369272362693618136663025860242125840244638829017971239700469667514999664088167095224946645233259766239104858987759351923470762166329458785326771073286753521137948315035691655860897890483530721906863052572647867222634966457333535753605452014848745280248876837898802640043435167417584347697208049863678332087711909556575088262811526805164292149155627537389614258011377619091554579589879765670622558132909676633009597634280372981116003962364866486149166712371232498726293065608804905833490427254800612613062944538677172132161853039192076483393066441731889317625606186928338193643209684525654755817186285869534701153743049399170615446536763415232565767104164053142119823664690358262889586573285351901163942290258529034123984580768410748176282917011865772226312940518136743138628988676040285595012377584580088029290305015886500258424276529626483798248320526462382539108632120962575860201685076215089044061213630219938208422144322755006888551084971391419554032448078825231336011861963274805134010464132080485956003982279529812549689046225178167705274748821179716720052055479230929791065219862982479210664030491379976231344957673242253765138514815249308007778454612806909471698226791462075736715529281256419661259275515189761178495025027285837684497684534106203673273487978325153543313571198903253732595737608433257622840195111284069730059389614494144531685079547469421300130381883889173835674024145618513379855612944241945083648145300151632252924468448030537829422551468781811631840282188355196330366523667324198579133381646051441337730438285996991977728198468752044424726138797404560957719417991643626707580090514691533027027592571789001363408831479075587305399404365150627370243206540211466904184736353835910957816251933540864410852915712072912755999768297309681811836662305754856694847140977067061249756540200803497629955150554887563465054137557873429455277644037809264209631624750614907780876607781025776752343822819020910819811366550931332923899219774112072848813756400387720538399440592474365302730489473248039645266523707302418625675032001349169237788425807861686653271945026003099243710729011064043535192942592174368952143191646968914978843494473719423423997858784902033187328178287322075522496473185561469315890306628536545043147936565967688395829756355674347144195212183223615869270321343346958109698968809310878293805007887801782164367667466815580770780106378733534111711411082126540176789792648093449665141556680292053937903568493699042846982022363038234304792909271350014490880265626600636199014746759704862605638797570932018271601616197439782678871723245897486076232812079818823551410012897079178132554220899815214732075490228423089777942614026938062327277345802871797916195673524892021992627598619436455958227601537624440279477877471665687314440712520603778674159529916474988085630129048504652950601780198091539667893401610298323826788962514150785974363497399069885167684690710820590733252768384307173993746440964164621317925776563901027852613928428305414582285718873182858713269567018753825272726923515353217937388011344168982021563766194015284888609472821556444326991949486703052062198795905719172125364006341972068678398556501881306689831947569841674023708776108706898023908703039497575630210615070744691300054967002656034910749056554813155740393214700346854412210345977257271929668002562746310818410097328835083761843106395751835259294434082123848660087069717466300678763541529898125287518013696132340537870502647266936572725597787673920003570898387660095143620108296820542451689231227696746428482315274463364187550061462259174315683047574376804734182576243047927147048173886673069137123118011101444646335794235523631925785592294156255763344727263018065191372506259253638169380149843296648130581124208456624965817143559800983252002625465550498649491359349114213291368909290450949603099818076965735438153293095231461335700686297323977550056407675198715697386373916968021693221404529641865430617860161097457213513277984248263079741447345596521816772545029169468519058628861189717006287117314424648178596254513404073146201413928029415158489589663480445519362446484811919278479608488842545751072276599645158452868890012906258228745857481969708033870386923234249452083642627486435035988101052062372303396237069455698866419096464259098425776950557251231490839899157745011947540017000798460877473375278945535634376691713012946154955897022625703903922273946645136479468060018041744911982931117395639575313946679238188122559807572385063822568332070270871857237383410768062659808957953496773470161943921780029245610496939848176871752948399840952432429785142604851377899981114322209612486317949639921059819222801473197042638338494470214688568880189651166877508778651537312182466653558252185801528967071465871294517240628540290281086372254802848366119910860981861083997622311865962108946568730144292969570102438646899140359072730912604773788320697235943286510768002021967352109388323446225008423078503204790378009426600931593278017535341521445783489736803313483671377418530702997456800962336237341780373526448336052190928153241504638184833259743284744731057014396644218685444617802044485114893526231274032633450096316952649792472673068674174754275122894754255419846852625592057726008693755238788438218575234813297776700487276014214836609057033455308767329493059349282289368724310192404983957692724374188110726963230609464766152729914512547980943161446375764514631700235441944168740742016176015549779757700172528843195242889233710849033914439734496239292598436128504116405807365081702551268476420750880660058392936166053189054073669983697233086725999505619506099361650585826895029083558491929764646966982590219935435242361045097974637571681409831107635467395099351390444695573622360823940533515086584975648000148815390755355427197972174507782421677175541780697747855711153322477743723680932980854381466967009635272817884267351152792825731260770193483911483663287668422318799132298906109510953347744093474754835905417452589233604753290424552486216431605705995668590421979423324777119520132832472508919955642756099131910291225351352877565004049016558038253015256752616563480029737953769318838681658851973875541488300305856896895584099653402399996439167905074373200707792519558788330984507077085686424732363010365451846467271692484083012271809158214453428748917297282286680449498851464706689045129873180756115558357408699806330492699235369015600797653035123943035320358000460022364043216943473493941887709201450940628597200893384373785624905511848700548846913348268882862626071663559578189414429871993879233293227583078640871627721310465265937869435271616696015033696894046805377373109481505954220143773802390475396551058010258280339011684580978118278722567353707073022606049743951653328734334601938372321472410374117847140301601291835664991224811233584377651821623306597949770526815210625273419481737976434475945697129365352944479197465808215499203082396659494364373206025975734695816574819740391335391455286486506680347129275783673541120700332418648331505578365212990065399511136049212153552901788826766455458792139776266351552764147861052951103110498494876423589134875660105110541610592098596949401490470573170326968979356084196761033463201678760096871575948164894104486028888468036956305224148666765059050907057623736742926168695664222947674672143233363063674820397637020074834983194144452731918817149132347283846851756759035700529311008361617362100267016925611900412565572189162763382472144387891375465207460077489277064951353351481846137406009506889852983574153571718945391518860578722750655307685138103184638994525518608175485131896422810961774059078083780476140609334600662741721647451321280709764201678180742654342261939004251187213657888662089644696183881959727462246797209411599952631362186910684395201956393259162574467338551704178333465196608127945601036915560283220432126697236932111130440208262934464814553685497794865794329129113700737423064028277758811556577936897157606385447262036392717637864699471949921934762687544468595841463034932842246780924410733935899603483742534542287145800011316771416082103267246174472265795494473972183446805837877865402822703737640959761356845440980023784383260559172547985798364125232605653547107970792144614628310565082968068958194680341763936600295401708312630932271500940146706713353464406598800504624599247896119768333802711933686686422077801010553258448951106535087400165706947593506687713284504017108006343696067581304291844820316095025962540334811968821621633720025379373821900185842437197268690636057327142979310381643716870107101021735381901884904054799127381854734657669307221928582304480118091108639953672323176455805211496055223047080590041061893342381203664721303279950906577126440739089775978134268259452551849297226078213673897123552790837478625921228736837843793365966263458072617782528879284096115644122852672584860983323078393232369352272793734504687828215768949006162744732910748268009355550519330658279805658397347962332747628447670622344097488949609590598131210671528780611117842673397848392345996751683728384947256839377517826272536318109881243395583628979158843353893596027958764455483332084680490884731699103126347520201048890051784266111880386954509726945564419714667916823955518739046849153757086573917103101724505215389086770786191316398387254687105932734655218096801521666561476329518262195565695917545319888107674939378517599333599816266403658385518077232512876706706931798811189008879172918594240798036714127282708910598134047754008321826907817023155485975393143716312493360232802716336584795674098327716494420840057152061438375771141136132502468862840516888550872072537280647268139006013970844277702130060896127972471224628570335317849557951257246298075926915736665965069475384102519869545550744523434443942096205450655898755203372952121104628236988024459474718337466136027698384133659351610775845637471679256541626086384247427672786556373298332827599861805674041594075187457102438988225300651052459467227404020787753516059360314555094136553935235672717265826607766473365246007903465338273226764223690169274887835726242140682035585852036883788448292457616214495936388009877315337180925624892749301540212709306897869994860437556194241683818653874278847636823210854105778860407309080832163997082450844232392704720549863455548107624729640860570947965545279735136572158525650706262293357509359594319486326936933438459894207118036642612300222359163074395519119946432815209797041442654668615599448273114602462807560092235272238241972487684919204411018706819043009304743738712407050432146094746914932077899418757802810794854002300336707046915206330609017338972837665185484529508710697866018702817421422964863421567193315976838896875137498742047379648314570652534078820457786807602874966605605126142947847462622820047952133403194732522159912409344508284060039304046518440946996562847558538166221347106924016533552552464352675843967062259349278758246988067690998932524704134745711161128650634266559682560335308343659495456846476760568746476356310791093369551796668084655464844296491440894292425842733643905162555910552486027187570562405839824437536267809431917904873683216911544798791154548283820706603894647852196450114467785784434598890296380072996685184880190210172615129767392285288869082037117947173239035796459963928418161150053199789734292784449354652618823351928414847144238112701722171955898766972356750755783852436487388710994117113808286387579830072983840412619872651955556423206564789520455659346206154084463959639709427056837472698415176034503456092396773330006621387913799357068544849829096746704307079414454349429439819435125143886273897572446874664743891715624200797360771902660367313682036772793550142236128668646927409745602427668256221526085995031864482442851068405420081059437352704163242401317068326484153161906378934544427737718025692183811234169341452931246894064663734138483373102082383470026461532057192737099065164468561727503710862220401155800333278224567485049076640282836734479445948505921998768422838875182101069866800509990574384992775930988623164673148541153933029674543072975098222092082856311605072257488188737623566339470348413463847157054235427529937930329884694572072390931367213871493530962589754889677157925096726619162485978652726138748789957184002854603988905707670927618041717540799861427283490313617083333955530628657538610647134060936734415830421922992535154356806867633251084015897061801537987437505811331436435179020053642938580098243242337728414784255291710460421059575309381185390448707024051582444403056904544758530324455089610357115880442566378626518939218005971471826882516537810578029011560523526343917390967185517465507969874498282877880960170397707159286524622176580352201569355638971369748333323504045951546867381542783160969342852916720755372020544671536889216644014677354958799459153627093353827936032932308650456100797953887446397270685624631919551665738601561274103433730136581654751642754398782627478956390785230578638206870679473526423684740621954070989540814560710117213297696873755841696848380494734298506160079356982348835341704363244219121440268418764864925433174640208824304929289982663686521474195760814015057558388639352102930323146931371286556460909149011757625022476522004677893203473248133922469111797845831693563381678887910149189762506422053597342318266694829692937365498552511539686819880001485532632310609217648150073223391812565734433017599120998903956571641553972349750881722396208372826818431321327807369874912451631118793476830704876476881763519765368681967691663032296648160167725879080466274686414158901786909111999190665212978160544715134524018580488749486308592470744076520854192417984537908736279753241438443525924017806367517825532979470724186739389069152245324037079418280280365284908457395507346858443961329433817362765932610366374487200869139479487481243277616554679326771495327128788160514292193463600396451059066428170551371491840808404150729004570652638977177921926318954101595479381083608864376249952457612583398091840799474008107357479293494756780526558888478938020334606721909795467682164991189720427427997530606854927843338027140396520795274489266796900306274117169167448331633327905613563230678879187224619666997600748658641060487386675800550731008238087460997563988839676346370089010461963588738771582288323009298872623522252002448914304021094083711806760498010762571281147373138415125446689872220666039620323829863670173726853347196148917488628537534343130576408199074863542189109760244058087268084529585746681539443584723447278583839760716563084291035208088187872171746051733171163111902201122716968990940001137602008445020856957165969554919614820768551492223402141789656439386817226274454529378116668393521989393609498180611560310514298075511130493801363110871994984945753929204610162167699278627439846648569049257181819440441354409814090048108920237403797372677256643035095149822660918965236455289393733425623327230944239468688902917714904589725597209934928097065056506696486413341279441771526595705162869168999605470804031032490826382816208963452753430821528647134763106760045811618448531235728514940757345790577455238346962527000926155556255996971086096643383007068899351445361183286407172710883591658535141121010789737146633261879006663296025691571673483420698538023017278159446641833429270804887939531112346735318580227451926577417840118497905221218078323740169485362517652728219679494188821987225443975346176996055614153320999200340279058149837648074051644318601924684401159465944640029162768215533894842046490881185336714246377301181216557886719611372617743911109401335232823027304170429016607660755321537306619610951919391865980439678858894895711657849101918362834417792839158950090162082143913319044917782243159003150502852690994402236840340945080413409785795741280981455360910770126203989080993063552060670549431610204297794584810872609722951080332476425909688502214485958986860795754684198806508057844236463645487083190744082968083951662464568503667732959552669311352682318522085303934540192852306531840290768185049438573406274742973018039360055669960892899645694152736511623958524208110005655932901083163254113245257083477240716568410140672119764954688824588847240367321832023322198872901946606850555882560307503258984158908869062520044527591740803029995813529759969255630364194064167707297629693607994452026431989611196216923746288941154785589817735289248906172130333065608705911043276327121419871989785381044054383289046952209900782304288386548203383151580336071215882157885329183507124890109440573544227631052242781064722638755828895645203490511256949457110036002994075049836585907182059551521853699935342684717914415116762870394325648370774970029687778384333916454078230104358514654906892103360193268740078312260526582888579532340717301445496331039041431237030165878573848027402178780473753359045973473369343734527657859679101905429253946632554579302082007587038661771678347301073408317224382446954038761432525170541059496096071129910554196731857531206473640368768772086857339707221738557550423834314557311524083661576237939895286020429086106261584492656819709143915813615968104439371687612814507216102205125269361005909553652787987047985016296583700441624551593146476026943336882487079165976666685641161416256011603011899165866048167177294898014332789128376727480190975058930645181595533536899838053632235386530416294766462419559741485124914482111892447019871944583304220922364825317235989350045775876257761370318597249063128115471536556268714740041811092240554305126632239743523223229275065979447124353667364713272438874641564156010243013449751869232052911966602756270085723276258441561975856134334981882829846176317849332993521516694148635954418128085530755357079999450029001415439872594982732991540620656737760658495190446984699812589324523625997420382701432577960292704910854194024894112943884382954137699969682341401730351561499349720823952924921110119628143609281305264411436634337403153243148988974248874707494291348818204799549297411535890960320693537584205256136151855749132699922020253513998531131660031157799976798051332878692453331839071748501239620602394315027796995397322395357672033344237811633371101029214555141959556520079337259098291599908413934827882928016596321498109803109797086100999127097812294107139548056975818163021769011333516135655675815937514062143831465697979793004401189099223328418427770637124958926094451394731618854256700231255603507239627147634383093070270622658978067797424019693453047673770240314087512684547097315872735937023885854461142812294804750443263917064696706318153526701992130633622996309413012120474493747127855884220468782887692490034533065429845989825874708084469658479446284289750554208538486255920463704765032962806082812555455748641949493555217720706561422077245927259174988141290555960809927692415586676439826844946302327354360728550799185052698590023246039831797783872864308354794171929016448938405454452030308354847387367465393351024076888410182405338720984377764573218608984022427305015915636006751840150188732062178619834410879432910570867228547864874027758574513354869019736323746974850981575349695774166892683668321545312718500862278739216130191960011471084547463132316569687567099837642335482220552022373743183637028191882982979032606854569617818943520659715825778843647436666598491909959177963883585427264094016295255310426360509769639663250915216414774543795617015694145962284030765164282508783369593811492413663539183249168594177216123532774561853240293370432164289031215116807460730537680398485626870015883597426515498042449459756096639106618619793841689168840535504802798941747711624453737621856418667784379538075622232342271051368664345425712919909948792569362071166675320624240790497032413809008250568714745280391588475111157470915310434444017496375738310818079499149763893677274441937541227651488174824055694143195634501051718997868515308363120110591355635287516067645011318527677702789895001418277591338418651324441783181736585626165723095327582937167165824139882630966341905936570576739807637508816468432509786705978396741541245509064883518277301301481724278540438771501806815867107457639499060311009204913701648651225882997856641401523147289065746338609283292827787262253639429160047377888898981603966271237558164678362559578324113286448252932161243804287961508749279746749434514657436160580390190430738373207271944921292589723443276240000365248998165594649084133118356429811321516500055324437120244409040495473701656958667548116431479719011164861270163523826419505669825784603660448813742741023049271975769929911036270453122472618868825014222378095431549636221635935845729742362631794709445325671526622329768560877915945189000694117015984057174111098008270780046767906145619510760553045936124311103902896185843917963893984025043283091692582451181271240345398864153576545357957138856143874137743428524198033354332763303895621183671363117165728873000203641574410377024031396639117419990170217872713175859175970038872014964627373971016650939350477219434451691694189684141513216026376380070506303158528702820123487163190859105340785762291254817176457044848734899692615041547956209466207157025011957530823400069376838854988816365542877356717689222253070665004574903292677181630674670884547218613296067949867199461677214827371936005489986244232196350157301149463338097451337778129599571536781697879194472037555434148294327707293059407550681158126478879359956673215532093910837182282079542866783212295884857746886289644496124670555068092119535856921700473344066958076736936175411218986367729611635801669091960188674699751739597041170156286834808562159591561372871502883354612013732621653444515006629171409657612739278960455448703315268545602961480747621721400940763016484901970321414567332394482004736523659515778942434412377719266393767843355325386555545203825506559979730276290750093031508699981897008039310769502937143339509277717975538355737625927400832681313438271348852299016072269010276642523682795475623500613645192691125076436452565993497722467077607305215265169205764219126285362475091891852517202982301713383516757113235893242061517970942826527742043894344490176710559815773907893788092032613422135643992018121066446782507518814357580686343185661997024672232445101288414823128276691535580453602660131942465507900267058080219739892372946339121216771917501975331162927901884829426947364872673974913202428913300473015609801137209537699589621458546340170651189655983130808902363893111719070754445550045069084086079894097001557128472467915767711931088898379515661461168100210946185626871708967523732243611194611060848982850763895507609319694846157022008539092221082640366035312959593266322835183537758892658459864458088038096459608282633704157440308778110609405784024749553969662014106996041944590059290656095009048746754794623168064128292901385217274324027075497808863088259487434128792852984087554794541620892426407703532318769449081920718069935714162401967943651399301928956233484424022775563122829451754752287086033451078871901018867271717614550350292569028797832082445391789496553250246889071949351451553543535561694534099087244617582876302644343812155764857956527772903168912477024769480668724874574832766604467373517802166369518617274492501083830580962771669824251829795203997503828767152885724907609596913674286898422341646985786087662140902925069021848400494887298119062027882892388912540563156679160981893256207322813690291288863405234436882020507968767093794207733081353090105698534537483641728125579855541959766720967509693183619683136649467075328637354025139159237174448819780395861203787823952087666000375517044608315558384901476701579686829258246130165339848365045303285374660158034279201394076618464960820850705690978480468023453455236212472620481212746559874328120584531272449924278309645220826813873253234377300145305603858751604025522122806164888407425716591744023971927520157747636224045106339053318973373885239129798866020295619360569099724261848556040975198521096597489153704382472414096653233096027721616764582497551689854111221076540284207260459930511751064658628405307419450311301993069467963483710890691212601552738787399632673933338466397554760698105367198014333465602069495570851131451219827555849274800435662261009498890179215117614438522786521121156461537355449677724449793565925473912866269991410412675900361831821383608544100719285027205726397298600923223675741835726193623172487168251128821786477623634625038843757905682134096313990181791210311092644856314101230121990484427537584666850420081032981415761643442122805599775098219126342866076530836139427232719022663331856507018151376792678535404378727067508171376124304589066279677832179801882401122130852466405602182965386325513325697366314230846630166415945535414761936747285496326550622851342064154140201717733210206818594424944572219693088281055846991840459363618672797118191910732198493010980163459757545147385173445153342742593623488833761213980922565067981849354444547432967319593744672517061373813262632236067690232896209404116605310540328795808886981216667782534921522449970016953939111987724406480518846913690098436214987328254150193580460415808122500037309385232774810476632923762023323094060646961181616037305327422743314351782501314919808597816587331801265119387334265798290841320695175396221152931059348955248068176956336978071042944060042330326440084906354517808376297408522039417790732894177123661427729385221099184158119538417432649574096463496955366965779672089851094651500805599308223338767680158964498608867170187833164304134606582823848639520362953579546217081516188449541605055399751020718911046296940208517808232056715439615174201368957570814473117144503980038103690982373117256870060664388006426047893991902362958971553598748335270826551113406616306641908002729271738340771364114858675125420157909733554218912685996127386009581930471089555254301856314252340514936900212051241266877891689961308359348264362626987682704869254844818724790702801232050504736518117371025125369221895735975345454501634643673785956173614236521415347420339854943655638028290055484154714342206327047898059480609799455088994472284270801249618428148152635156303511889381354664344675390376274549274831398902118144813538460838422796462394616097765030271378586890694608493295680127882972589297452384933039007540939196594108363907110082780744600491580398106496109588591682374857077805319911303479815563320507692131859920092697515062781332961300375269096584298906055262566828519515716672793679663747103044338334805401668076643601820889073456647421778726632562704798296873458375958969860013945459196500149507443354251158200494481088213504040103102996411531108613756508984839782032966650272464227316409213261945592646072198001691958672206750241976248633843240484713050700998436718328228482913251352822816895715909368156090271012257154056421349912797276821125276418880521358935184804612095682997824883130371250643193563894952554831357682185219667131204868280862870062315973992195037737022797236786057690085399070235592816087437651344590514580050634622712421714274119123242212240968831354715275470411385999682447194863712506983583303005824686392516101197965105183915126031758838791484676989945631413736034149350795035658795288425510899390826851998320802928288925393093690953149475941309432051578651238730352650771591633518332313751101221691350568737446827356117494191129958287178726051151827572895857858293983261065459609523927658398742872893907970479282934539809004396424943188574679390157739887705243566916149872038790378785469910345114697276408898065881969722997595847919462140187512832491238324009390110686096168454481542759209621953599524461917317228520081765306357549236749922618597264896419730126565156812249271350517831582618600240295509561409136860875788836316655852040165295944350082621260421585433949833758677794287068124935256073383191508411616162046809477273009642673939762439173261384555273639687028339251649158451491780625047680621433026850085731706230367339481788890404460121255841731076269671240799724365409254137371875143194341127674529895204997801131364155885875113964446449310892128935386316961909611862979546257284790831446879527721098427042046362048197379960497148346408668779175922728772494214706489676691947122829201374884881190140961305677801910671808924789440103227263235519301295570108540026558437604263557353288980536874039392888144960910006787321594404043615948646293654437707927641038305429409560565434642166898060187628136123832862958206637048691893628864789037680547233842650118979666141087254872065064689581122560464452873171224999627353471367184822588176536575510349570872812661057709389590110373926089615672016906705383946107674323993087909717713893838033826982178708441822472794701461863165366212042105257538581885578520612846435598320529200702823652104538159582078002939144780118946080459573833457148306494823237346092937759069627952524348783097293881771328096896034195284551907596762201420403952747968328803550670651535435672650847179429531480611034706321855169512575849833831069453869146152219774133178243193285227345038338368172588402849268762838231127769741261870042481165594505215943240949311184192970260044675425829807073951825741667715197100167616966161996916160860211164068731335437336629265114945629968388034171135336562138075528330315713964842892082207172162000320673831908549184803761552338086421729736699815605745455179996456513392291852641838406998501529351883905549907422775388772898818398863995144849390312595699161364858438609245697056471571070417309620091746892589798011448153015633924180327071965416668318372952747736604948122476217892274088957079054770940421876827413718721730270606476601144866825334630266094564380203785650143916057385483122061997945506628250095508470674905724695535976901646044423562354317334539581118737072424803295597335924647994128855123452623486957929440120106034211142670909758892002235221164913623133960485337923738112876169971129575048747378916359954985466237118993070655560912495025994742783610015124064516106405651132210845739739933305811170431467771077709814261482330834632745689382903446046342486577209362372844855945604494008554602753232424689840391160335217241017615280504277423245391885979969107522738956294355828714661468224658485597970449402528683863891790421350247678975692602546435801388137672443239846077674275830227011963840092697884326960362585642165927708105291733508435352659380330208448151423094873865295575434527043377899392833760709488051537998301494934805619681606435414671999467203317210119148639959750581244376723413065246117826535288281689371124429002176647062731981856351472151836211827611052479671610027880708049214709005785800467797435204115897764104774775413269030389776732534282077257296513325290640118097183696603343516570278914517734416525237972475401184969522696985102483518237345653819205026082750557470517034559975332881338567261255920141420923097346513639052610950111371298517788216828515714098211632845437755808477799288187276018989472163653484417325072005116339570609505710679154199014970175576798892517092434200788235859016230511245646915428186661598537321566855947309889132899487784225702186886362957013352135199562504680895027296970488035772917808196189721458254068778184630051209274955668204818885433720903686614176739145201020300233804961566747307954636359631967660289442698301187006384709185122121949430533381821827683213675067058875494417302895217399122609367785264658350380093683798260193962917778547336796959234712225766941689916537011292979628208229443343896977772173330617332775283887613246354532980357759387698313990722582036649426765259228832409284664450336288119389827158006400691673544384684854965695104771839733732326644170752711735946351748717619126366533472840380636561917772288940054752007671907003377213254884877505264734045638121251602618179523736901712983189377846555992115545805583449273585728728284373305166557498951355741802151392598330589205219663351384897381785990894969796362201316506630493205182016336235258505157013368697929862607303682924101391068350359555135157693545767706739705783288258558651119445649989607669422655681730563594126954675042238665917003366787070993756507947901347258381023075602062957975149673055884661025606446212510601268819837157032532992735423502102524268126032561634937794210876040391864917457232210064337891155822670376870434055932307938163425927024846805358311018893685240173367472619481663683418253535562135377023346058532425769648734948848545776533334409328521076389584609391455813265449896630799742445789303833155451703257205719745768611389320082592112034320070956864778460014065529754137594243620578806119649363288220315117052951530773312107107686178923863384392695377520945468147999636411552815650164353260621984096751491683171972129350673438159762300684409711076394803433584113143282132403725502901139031073027889251299752829446285276191485643299670381049859550284034256997232332741107656335215467124339865150805840294443746581886643011472437442449336930224230091251850789725942571541591229633506366681193305685972436715009888836129288022827214720677220243991698993807068629724508512441226959539073472860757532697344834113595760316757998071441355351500634419306532518460282837030042318569650645827531909868767493776632632548384523321171723160327931241107330894651504468567517624359772654450706103167638582423802005380839038592946986032185629028063130329547192542025191280817060039383287225588156036925666437630451502811494127834405605394705850346377137001956484735218090796376335050537836742718832399338926114541288630707086900321250492037494295646449936377661576858048170694503888066530577373961025047679098214534061103463556197311847589270227349812373739173043543610599840138421051010442724705953483857595009161027226893968027651457322314835000482322066817583841267834009289368623483355914391617200144447434113077345204420370630874291441958693328647930140940536184218360062639774770210286927017717998774374545989188875513223609684674477514653697827538471435056294164511245199169338879807485222496239901496667091141672064234675442037318221564043075191717153565187079775903841391206295785272277607071808110927146206783501498114954636775659938859983191074239872480368176943508305937079361172137206883162095842563025329409216736541161407320529472732785506394097097298280945250232046129568478996435114842671317789678551310323702142469761598532478308851689959297911192816236632126670391058410576011780553895818663604886868170124337172482323443276553990676632588950717184264872839118881062227969937854258126411432097225792473040237922745010112192040915909036577591845902862777179402841940706801416245207936527261009681740753066903382909907536533327969879376313554526893782005249960922156242169086681261517541873751176315874137950028729294240004062066620647601078978765132868704317734883236894213112032168098403297024448308993369481598790308976947701901995185304901200877614308515847852615379481341220874405152965941564184361967999105852057623807233687243321969895753072951709589228252571269792006634008078784917418249294011523343530953217285763066338593069796713131066255782728493355596269551287859106184506516902386633631731571086017021670769698575034258889718188523183512214128363628510141455288323072830137064315794119813754314115129397512951108775344635740428103443811615488428703723543138199564941477972724192740538397567147241390141151247077769934494551359319209561936636256332700438596753754450696700889059236011761357879763557655316226798359119101035761690593624543519765147403035745671407702872903723625624326529794350183725338671029472986360605368601655539946771532052440546631595405315760357110080094703315068510901772384043221071583128261009390638455289312938533595840150052606388128789049690312916562335773784291954952695010929182977339653768959391602932770760604925562826238159106348891465737685521584054908239979303025791207483065412360586744955781835865884998664830517245780040564011246083205516660975217863332430904148541137214930300840759449401771046307958556150395631496795241200177265002499140539544925584600809378362683479604949100724575038452206139234165566264795324340645590717931206956323487838166682996302920241074007113754890000764464881378146192170426677180280959530529352231559397907553507438756589147963287134618245947863947769615764473577396055206123957061214096664617107083374693600805472363927393855422315883754408702781853564553728572362517738734086659187745204179435720674152893003908390580316996064315230318182281400276254311715334889660966534975985100285959688568287039647320152698468464929812026413944662004302487447992928777182287367864899951547430829581000649762950958421465775216292183613226801336685968217928519616099017186176654644513745550927577392846209514309046004930971349184002492858876694233552969752094148027682618784357454849466811995612962492948350434256999498616022170350384910104543198376019592226112945825497046835073100670528659905061014655747521561676678665624093308945273264534878524215099173887666411367985556999944800464815154711404398324621145883223408333997159863467914735710966788861492967233065770954048581340783359701804611604504996197404281611169381892094968305490012236484077233919403880686293680493813404582062652751396043688693332207001920113933972320006197152161828357963957446175651525049672065472256609299578632248772337470779647317754646900321010891991660870061457111522480107714874024648155626624029380875909608832924254361862526253558003099062469791932589220126151428242320461284032154839338719173842973074837186195649877513939126649284893558566516898535020726305903854193680750478713500339591050569821323851524006516041097299962228323575309624971543187442472048822999434271174243640321848408548009641069412718833813847409745145968738633275066377963461957630632634068227077795428265833763638189291028025406034049093661583816199498434312444165098176400919316693119390887667379550998294474108265553412564362667542948903021585884693823348099002127291243700772995081883254943948142423934370977449063243267917045434658690649804328440955606136582854959792133973062737067499068271764331323360875101583511648711116023503961382003391360564327276639071818030476566366321901689917057733687249293524883917817866843949060332830619854562715766394204883293051481968226019883129306458051154320709579076223216631651166263189017780394971008762340365618701174614074547115458255206349875994632492144028299341599304319499163761937923946529104572768634477653189510486714226815066529450236127718991849967238761367852866509030842311189341639155036195935702821289746930996248580055384053997821743787498844729497429708647457813541837285457113862529831711154128616700269977493424174572511339950866944260331440086606569704319296279245843899473805252635441520182861011969722531715057134894117166156279396801160412456111657273494167399954507584944537969419347794015643475154913869179992700018826515453775678688584560313955622780537708324967094143162735628762492499063201909809072072818989376529108822345581372754628419658066776709032758174146043447130363958437200104243191004720510080079687763464322508370214881328181132717525884952151226469673887126261665819816876104986956826863522446266676209926038367054295414693324102457143082403585697868105610365865351641308699854373424857204170441752098863647535295148992906925115616011849398803913875887417063684242839296979636849212669085337893389525402058259699231200906062144646013435310574383647628240658697542187355397913588472803024181659754359234363412576625232868312560193782642763831454328751020192355631862850006681944793740298054156173233748691888935679887360762259623279248027108986434808839647860036294187624166207044815896886208269031426626951658524474607014573682359342102004098301357277248229179482909126834301615620398839442346782532085286655927240387682353213279902603815457528937619116303198126361500221693876765334089035715342843648057898175359694472352499129997401797608849411180158946050686477710243490642844517524752096827471869196854065680012391145480961065896327228020935249527307537854418133632628904444637408001423127713199151188589988822108823057273961994606731224627242983400260353708320383783996009823822257567661808026313212357521035752958499269967413005886944857460137107044062561181081140878019285377072340074207522708712308480555618484756595846583029089161687589104579137428294336242430655153849885937166884654005491790017026373895154073877991174943260858006832953861397208727577936722082490902869855582130419101947627766150174239588266641639149725309667081495238264574025096804400629299763736160700545061689500502239142667631219211419734600736281771377870078443942663119411106551928207451959424622596744657603255783668189701206497142949622374415128724669913232944999350029424103367452764413217875179655644110512984089732788776347645529059595976925297524389295094923465413228005155565398487160210593686732049676309358079671215760998196918810281382051750035419438836864218601473974234685223449525919980525720370289493931122062926453970516647038574418156731903682144870435843379768446441426310497177588908023797149552951359770261528617775322894076188656736013128420281633840463528069822203391384331089531961947858642589493948914489307414247132385901088732753604764592441820069769761691017839767864541579092893562018454841763671139821069996481270537202591836566086115941748317631730326054975884308622125601549454741136603165260657380809478802674083283831353780475944206831437306827023806739995363933966167407060920327506355251955025059368659499108303745358383647516667807274432669064759823504195313292585459030334915802766253207624495599128194339601068702854016769076214940908428636311924153842996316926455408811017897896685519958474570091366025561242167904455279324267324734460661106218374736359303249721966026736402915027538118709357839641524868084486389314224260168160523644562995345789562335696989843275948565008400018429992817785048185326388650149379450681805223740996407344888411541774657442797223881163738474631911821939296390446665490911395353232591323065790413882125927319573684475246433213360576770460551724564274628859502794146879085099220210906428067755251153397782644042412586519406992324022236749500026125821611153081642956910922805300510459041028582180950509809966570108672115247119976910612582016778384074135191100005846733714493269067015043403982704275017284036048358542095486074467408546195903870443819944317333224575037924495138213989156115936814231040253306385722344022506030512453960918522287700315961204500457940538458592840919141437465243447448066519343153514027684765297792771165603913199865208586199380176544950481957586873302275022000674417770497623609097533528840732707540749884022825791707319059793870780908664707602977336927488535368777765570182220168025731469927084364311522638747615417283928131512253953859900431679397167379219992816691217260771784095844752809599229815981919282323558617535743712307484628876047642596066069543045129700728071283228934894805508785886264678351591681979877904320434048376288433579565205259306597262817858225863952892350170503441041178560370135320165278891882075333679077522593497046193596608372808674914763068327309446450220775613304529898459667459707959801407805222880630758961982848583599126160162208053664358764963606822591687479637424666719235463022709185737563890258499811739629132181104436965005770541305090746189402263259673282390873810790978820217400531144956686682180657799173706250396419442715725292809618288160467650873067308197125532111254757137693667519972133010150014354652389965450202884188138765116986796864031438052966546788951321628802175897451778022424640881776762359334423042399996462415359939439546272101876812724228403258468902647572914012086591862832683102127652681529112086573358344716327912076241072740472580870665551999541803338575092840399488573740171222889795661640961554529147464339557974164002596642171659705369993452180912991002327977266737075443212294896326217516953551368530876574517884741666727058181038321779855343951991619344461237015609939376574532112173503333637803373916019847069868690923356418439238093643451385454761883516982575923362323546623559590192483013682047781748409362371692347604481798274871554896538792266250414995487782132350004621751321095253128427888551940016342990639353818116399104602163286946360592125367805263698897888062206533198324817830422486396708638956631756284317706082447343885082517917318981838944019772020160387252090591079702727806912277623922923739225722479654965477600173105559133598167853270330166946241666659531861494275717035081529196359289428221114931516623406767484131812951913246954876654057393280223301240067842120535264138709410088894761435957821844781643767182932064346709893001455357170747411385682007073390292274343849725060024110389381429423623599816372845315111360575459516904741487358776850418962350312562203831046664483495017334355496536909647138955798646806908237160772271213142447148052820887016412444456329734670516022544732738118964959351451652246898857162012159018294926707292919246706448593714322671803906353116876749953295632826743346061776362772433606045482593857154211792959149490155556849287114525150465893119034048810093731311757945957443358507236708775799633292255004632695031103564544831263030852312015868882852245505575923531115984504009117689679692498627702354086783450400859070998038793091756524156888775488999722653449555983199773274226532307426630879273131608332849003022392337521158859817789524465757727417658751655574407333065735267234767460489637378299776631328197435208837690869190470067913222319598424920263408867654722714703987919078018911544751837065078074236515053233639604241898087844783482797217090180094636413625504496722370191075609417445670048296376015501116404477581953063555492726052998674053974662943229300539646774432742953664361073911596570940394011544177325205579086294571689037663778544405174975592463613275703884471989409174188812670154950042171882441096348922853299906795550132480084665329798072058692427345228360815422962775449962556084982864802792107557789449534902263764392525721317849086583759473359246339383284281022808844128795356971052296015809260904305789412854066887869474555837990723443848442569863752345473823041518900126894553826933494079439454969991196678084304846873766777580880400127958576527901027134172036829452715651374657865365169392264764490066282220481741372562993067814691121539164225788299318460754680495678055944712326844389357008802971836967614393863486036254249831498087017504392408706691666038577078753066240130475111070015635202575940138340736134560863607723055933596995250826762169028820071686706214851884801288635879625817711030828875897642539907013656547441262309815096871885387571302397179947483093177791303841405172395560837519399458970425152530113411891298716327244192728450516619377576404824349134442566910414365243924680815704105168713753876861288633250485363134509105151354521988089064199680342492680919079744525983574830623434215384050947819432794309315761795538988060789798122893726406005781716460808657853532100154336554290013960595414973986485491780374511078144921969789712342871328197654441297345386956221455412224022404908302233040891300337512191221522683021924176637455855795952045992429147598668906666821647180357693388895989885523028618312761841278170421209431917914611391488846771604129530071199960355222697579437522270434940056590609384270711330523138127098185217390566846606028087863360369376005286699870810427762492135434734217525363544755054475431194579846657124394939690736860348986561595604911953793393883701152484326944080635802609033765863084470197494282298610438468824411949263373958914917798231952117868892430627983053104518101402664890159145805616577142755864501111390846658519157652254399565095785336453546459126469418606698345842639538261993817186195805422944337018455246428512203884983133074922419964533472077279020955922638424226970482111551750945693087854220062483758096249364307504683548124072959537270635372765361224862569837876364886720521701120760528183759749779234808395151794523047607111946652944114006747974787198896910223006515019654962749427262991235191906540217590042882017176528009000481669752989119309305498386035153766625313904055930327343432119937551751872360453418439339358697280688691617110799781947643223567204901352998699564052121385994989136799763891460839319373855535342592863025909765164551920568218994570545965635435686728630508759250173939648529271117809088809505502135589214045369347695116430241253142439514574862966540431688631705230416279624021010467307789060600384151796618169323692095633194459459453654838708339533426700918695967110130525952430135789755093075478450837690587244472395071565743374434297676018782604250563544011652203268246351959384165367669228217534067920146118331880594354933908848870614437868049748274866374564969872192162950786966549850491017132586174328719945545030474058781544526006330599413218531045333161647904704124327314899533782301436797104489818379918017112446202072778247359854728201840766539157798921603336728866600093218878871908549090189340084072581843715584296713956813412557483010859193869715281353175612006198125005441501273789207405204755807729633779682086657763493646379248554391706202064308596729592003110861822196034605015244113532553296729868305958602375407392635614299453200607458180724314972431139826443637384327536964377993098483712542450463914637632794950096627393533405500559452209147065730201703025705384680338259570787442170808102210709676680225442261618120224986896711958743902032252113455131709196801858832743987292339473966364848510857819539230327434680674967732111394345646395153292269247613487270411466826594427475140706374250487259429621299968560923103903360461377251093299902163244815912361332011855575377417598546276024668949343208646085022151254984037538030087802696884919317658461672635562578317396413919910782594039740920482289192828955088015640915337164464359140787504418210954345541325937732838208178525107783699872884975644183972720182856739878847748587812432381206611181215636737760604098772817429253250815206520128730882956948310918885149738062178607216635954066054492635213757194907547179767466983457073056733118594410806876347897291020993861203095217876939121067680410493503873055163433784081796566432848112424348196496398222596974117617846025829272301736610616603572717552803951345460532446460787769903207913428861916304925506342937017758505459351039171238480762002150553509673466911689478629410873698363086489273465308711955739268011050124354111871911963062710911110562520528476564465635491863926024906330272012304698055993702928626438197623233934790318921185948745912317668164552991318782453015200797086095290898729530686899604027940569507591258243329224517032038654215855369416081168781726155068121258833251177415835498230858117107531583953597970205198969635539980631480983914224262718975490208002141563012966781553926611355579298447086129491525554552166213518364686638568891936671011476814492197202503711196432988418275109300769532299275578080013517826491697648252901026217122737346711880547537232843929215795767843842387969076694766459112309141661153456227906371658499716395134303205365790759604505861287915578006028713291830086420618716268641450576122087508350690437039378441223860146617012683997571578317964511169783938701217047415163999821813124731432781676465285678479373466209749236997938035383384317070829505258065198777067469522908789514531285798236333493843296879897305492705005908911848695940702266132127578684892928227536786423891512310153510746724164361281798455387058300923467400252517315036681824115823775515411616459456970920547778186389748343996918326710979934606071075983697474694199204506743505075842468678532659090489320389981753051864834324476049266887992081268712351241636107624677341720722299766854488797733031118574670435972324382875370970795551503437350558836474038262730747518780989854917035030359307705545401503836873276071831566140978831167703057425140826589468445108712614514465281895727182757840282861296314830204600925646345855981406661488348116084957078630474012036203606369572592460686290542321065398945519276928038199267126393626298124185787640978258234767146218176743247783946108497005566095809051053327706896803815653702669488475871548485728938163047845112461759886895758100753408337674656400909096512442240822735482431603661130681018914602323712412939517124628531574160713269579892523547556359598813947807088691383443699012779180954416871613351850860342145181426916159266401360705018258836727327633770890370716450698025755071811623825889869784731797190609333931060430844113698201885308263883570115557703576791172738935352126834125646739769081466990850360741867992182038973667951143905891532945861254418311285726609458207644390102381673887865861289359584461124514469698379920074693473746666731708940692894924468982996890665103564554467496164710525567740481729240285095292254049559512362845338629709830353991144111881301909131729068440434929623180600377241036373527654541783951176317036296735897008044257276502518188238742286591255007097309181364383904552273860610710757332444852031360750483338407480954523976799113203466291013044829369331229151988063839226905767573324480979169539708831650238510717045977715512770462697131509420935179767513241500476126913852791120388726225341296653794967565562356555437714142722296646308069336310737937566094587916634826498364750822448294587866283400327295839544121981030016576527745170795754759082406755356483847528739611483626024523623687945312707868093978667412261374778562816854394705831673868836748935805893334013835567971807912997113808790813620833369978474475553776723598549861194562814680868025251230846079124117860136806760797728442719553692807623187769016726211740464995238513120151328424920545415920349965615553580407459415835004361113438939850726977580855528130263856179253039222595675824046515835723135865537086017515898050880178220217846313533447922092240085837936506841403140066597407213020208688166976773045925617845092464666634850161371821930861599262912020859266842959871022721079866573391956914427882886780234966632693105559178679792938589462708222945593798129387963102726739059078278528162158996410703275779701566683161630865187683927871059805923223289913863890219063194930762875780983389085856451544909874977743317409334429092794048330025548614301623562771559292094533815804572031100779120605808392262232970647293038348311140247822042223318012524814988733048395876945378721896472012727742673024824639294171277199585744521287592710387425397231033973711840414347103536599910209206011470255910952752607605573031932593835144666098756430818128966586941728677989488633005192273735951693878420527214114776736158409937331201391243228953984711251789206042804667512138610852827799876515015112096201100135803888617534960251744568532213821250356728735920209330637174600710726836666085088159942456656419174311612305497728384545805616562253467347202846434885350837926213851686643003120078869109115564727268273833409675451302737295389144479268189965759023781395902980207486722504885891275813459233552039094729324029852270490912767799887618842768642084276181788715956995133213084391213583023197522542761641890297359722175531080238727179319230889619815523482965556212951300890507980029687554940890040154144348817066658704830514830889826878746911060568543850748204328407200447880990633371530351952177365794097333735322848877698623677023496263862621144729177825404153654160258839562836055108151358306409985293288950211475331383502914492533484497620811831392577280319060249775630326633836967479139962563248873854183691586250656604420055634296066894442860374600675238982179238349021378953955501600022281096638266223744095569829225166391830114456147613668656088655741650985322336176197415827519797381929193330315394801361050196078793507069188867773379086413961480118448942585971232072030513506604330071094009504944431549589229607082404260754408517702065653710011726056732262877345424643008255956538212459489176808842606741852262212340277577742738390148646503513670657954902681265874787959421452108694461268572793852495067811115506187796561207169710027682839474987607610878585340294909279789472047649539321300193765973510821242639681830406412719773066857367075171167175359058098320574940976579784586970364705305651167063953963390089146840504869523960051158689984231681881643604946775958995584823308569564513618571445651599722486942416876070822511356254245596872296306352853409148794608496296942060998165915309132822109053843478672246485292582857233339987820619428778397238566803165404794364269141196474464732832871849409244127764364864352868782024173904900651697880852061798822372906442049853076179243914261457718051547802548012350368594790241425009513913630043843891270866748595170977206893300077584588992608475179162696202825715848957670403686976071864678822805121897408122202533984242712445638052858845327352357313762270414157537816207682882492349569202164767975070290877044120575710010158846881170022367218555180875697177478783833752358657877334006833607085894113987648066485404625893755608339992235420789029289100226184190861452892665868135196520564871014617409263051150924526849927870074849059379189133109222562227825980905575412661570635183742033650126833596744002542793740313529547299786382317099600443441796409961288127181626621463829458701689928968165820068752180035036418804593085233410638579149416147171372030864278829169131519764667321338507314176411316708470819514791008555717154469370406099684360907174784197597504138605248565169476540116061783951367473342994132231527122986954190142312349261717301432454778810731789743916940944822017396240680317307804834315883158746757281413848494260889686778388418102858325852243473462984234831018081931410030402118897047167908627010722599870248819352407204680086361178314535190027271339743148564292668524889250269787980622770190129195570949745487787778788179821335988780293470946079473100901501343859678564858975574308344370946514780767295642413599183239132013195360911306921850493002895961785108251311874422244391466370783151129433170788294152540934237294057712783539164260337811719620936833965338854867090708244206048275087393649139274567054016779859900510005400889943052420211141364675420871462862330376456918078875300865985847350597124815013593984229567090377454457309772332391063770622854042722084507260003294165560756232079295135667938504998978736763714374322739830512838791577310170739552517598380563142327132470797250286962319523584126784717166904919040590409194353770390477390965974788728375581840102301391908641070717779089729351819111244453936901901330719035364487420006199884185888700175589218335872906053590210852762773867080610824232394164186539664342025338868084757256607732611260921304665865224040577848150492920677085882285396678149884143840624669393111224578478121748875240257348702022408150374997552717938707633067818341042496959936721047820130697511626540882861760802141159264347797346940524352643550737025265173757612275184982883365189644357106892168904818952899690066813003432274193022296844746471580072764540051558488428098649156040147980841857228406016968310716235617228567027866921910692140113063253528106962190434439036098469698786369644358560253092648680750597694777833034643436430582934078836794492413942352732633708049715565003197152457850686141732921187895000237694653617005394873747888960160037041386793135489919948960703428870546927151234631852693624843701372278779193558099690617435302576075810131395722996606087023100077012695202412441592565075202846030632828368093767360649386978199190407315210645047219295837910270567917427015802078532598468203749777508395126982427043920397069384777938806145977621999250935591532956952097949765580593860596135442624469732977517463323791670058604229203028707952124651612319308184559500946185802228290149485538652430487741332130368834072720309554038327223685156202174967292177182516885790868510105138265138829252750639954686354827578825403508017779226304606362734087058482624201938363362448361124097827622023377236918045128565954855776678252648460434527626929262156644951135024928291889061102083045084909030897919131832421587929167092032376107827802630540606844385320503161076208128915615676128919025422060120732004254010259993614896949687944610512864715578567647227571558531079872196276262111923708751582378530856665202435951617191600570727322442040418506068501722070464003259526470493435431951074500402914333924262714034967112026605312074170049414061451088024864662548349204759503432434887033981201809485624697536585458569819739507196639189387827618904445307730285670943006677809292163845938917521193749035653930209672208633173068586050503495500377571837366424108738680027698596511396013135835251071743951073214962874974613860299834133089807197576355963384682113214663441232111542177131452551151849930362626451616333304508063142531703793766667098682893255099493229803456160469631026591772583431677020351381934466935279159111620551627991999710610693722963679781649644279467360650686576756840008900968646935570275219381456956710638000765843054870156404407457755880650582066383703647674017471408611695969527311425321241683098635253511262903389399815846199047814817304194309682536927057787567621666722840143706438821765866234381425895762697818499158770945454319804560033146233866826708172999442504924112655822384735703094404022595368782210067148962058670269148361099174726302273746002498112214149199154012310234868110685095063400683387368569613386359378104840773113400045545620014895644695695439291781485515814442540804843655043556782640170629277160746490813040629110806847271703184276792895163954873815823676513690682674682752993688208613011922062899242770931441241256761435342485769056965957525183693784734051828873859456321977634874810019573517568795540149879685964584077774255478703082302659167301690771246126681180022305805107504628592937884465721967002222896412300132288894051582985333603378471526513132220484710966929237329368523085586338680223277105667900508578513809395187277477963550479108841002525405635192029794806897285429279230554825475391830107969085701919938709277017160319235540822066790349212089564788906882398755513909665104692151813424481710636656102314697603246307967696401135024469857620548713949813832504032250963579180802160169467918449033842838704213440081454288121204253598860983708551092561007702826907013000930381852213747538545913757199965898342613987517127311826087938314131924686458041012529755913622263130856422187681037027815051420622674029615096823061600113277141391449178440749821952419303938995807838102951426513034623063067194026328891053541154059585020800782381072253040803535228900281810305782225233017490444000231193213294122268500518293488044277258202746211013991601178978805184284673082611578321653708476147885123824287887902022591547163932283002683682442087773456214732827230769622902601630387847350768675288619576037387447497066276061286934728917332951420925964503725284763426801213939954731917280092994634009455493764646068195989667107694616544747291039696283310839045143303948052367345374723293251283862752744732220121508368769843149223711297551127279371353237723743166651036488522268573556269247395029000975758893826379113852442838994131309846111696889610519510660195191013985047247440219049503485380185744184918550683167432760064427432297726513188309353400293917936961848560460051997282067590871046855648903204426770790591896793491202664749666401973248995532567679481547812496824103724161770929017642559983279409883537125691601007109639271822309715845251189438290672289213020086925465772328358662521748694327174949233432936350426618689950400636033426267669319213797010513810478171630802745241704970129635794555630219377975677523143357753100807305483541886465794639735393589409445594766626095144699882826739710355361050073607637969529371915637866172989400266251776928585223533281155055392710499741081472037171395078550921710122009346526296642506831183706170762298168987150976511612327787765543627995935368056276610952602776030314672257708979822373026775179081707008807318292020237411090071045058387992190288358088455445381196591259504957330092398586896498310989746531255647579146781424593028833962280966807436496258169177652254701827881474107655299475846830705813069558074032549344926184323126602971031776746926613794753050749156995732852166954621602955980077996992840163858972512396360204141804677594056437002876191286431681106649121313366066146677023510271629739249730567548654615545057933175797282048852504361580846073578217586616580812680641223242252579265063266243474147374072119608751187642688078394705202336067286747641497800245474738281306055764522733743545779521915656603376299114678995849544306221297502214940395405819677241619895078059955715191016847880985911842980105080953679642114373328335445696624975345930571612488879603290967285575018948044498183913114855912772562365199428670014209401893120326160960681913921989987334787256116160909199836405813127839442848837291961441576523201717384477528545538947957668883568561490612098286068705745981949474276496431447159319327892208323157844465180414002809281275323009788912503665319827363779020410863837855342103941734079973192518217954412104917773286625816572416399691906019869012083978606699630156744909372682058753464008168772322635023302653721373134751158501761378064709328407402844160850637775269120661460244243751175194610667146949345972846073628348083189621021567754901115486046138394566085471096483890571412030219400470232083063163659816572895353555837004804441169241207794637438145646497184992982447423942174801895496046625766855437591019570343800035279518342706383685473822110376149535277155002615108445265324679106608432287355145154203187634140285398673124489380251520267363448792711788072042243445243851250040567171127110617891012651082745636123548605298469186408208321177129010112949508839409316580948541888549601367605876429872977249213142386137083161781656557000720931685998048142400635417794096497632519211602925838667309000661426500242740023321679736137169016253132723938988616600307992856113593003034067377613533475252748483731204430386457164124270661314768400049121837666870300804640815853692110836868073009070299969451496952992321230668907306963094448372266841407752949183038518858031217212561031406994563290841738205130987676275861880564384074971800403260685232341410405121302772830170676348064503481304757016619832553024267871762808938530236825090438993389637793646152088443741852817967607489852825375680086545552437588384522616475238273219847209485439203947025658292383958336337406201871698109679664197773673301388516942549377638591443215766352926242471690097157919448015499213437747065426685694316376904441548781074889148864569926703767635889163222336158350432435361063058106283036103858333817012675667381250936170986859251466382060921229218158531698078007001271344299916565506100502475765025197740217532093389920267559893715038118637219822159527341898785160504106711895934005631643101555632061813002283320409608349901101573809615440288760832648277207331237472380764960900770831553913863860747078944928117430300450052670229857546231590136843952806155413878372415674279293795299245628616732666070792659636323452603004053858273746465377027473243832553110461256164972315954900971110946252126898371701347291715587677890514428047127318985174951402648827613821546007005103134380820646870468282714981823292847021143757307301419145540678348391589467538196492577841183458781357327373182404899343068837602326278443435498667699671877187469248589775352220746291842906677076502709781606828672337543000029921601674889831099765158663553692471342035579170363891328426662954758823692595069060868719178966661570975803840439851309993087276683408485694398624923945092018747492043301302019512087009813268080764047727296294062104972088192623657020232703683747799450703821164656379308005853280660353314918245197591025223896751237833266609787748578388766256077448141009099807889066897742460160402885528390471963415531276268168563140752215897761290429944790108205472187492718883972468683005697066719498712388315403782600016905781046705627120168395221158780782760597689896803327007368531094661451977910598811107393598610241636857958942424698909180055949288228535987687019247885356654269273588898080969005552983941303897384171410192754369572120183046926976552868066416569749237274504642452604099835070214827704551695427689859925995493344190846256619220426046571890928103360787667854032751139755410037543981954794695239457042671034613865245087171823436797851518764503974043101268662550035431375144913143436455755352214365538133067163503821383731674601229340373494702385057124194454357670674716028773049178561017407924833672011031500828111623494116212616592363900727251934108227524221964826433098650411920861742016966359259322420810847813708783381730518060226747392902241205296035647850304109064459587098824742182904437008152445966767320091976100935872034084499701756785581374312712693683532257334908604583853375108330100795410009958495631157479109048627750278706944236817615135175255830746398216014200128251095011730314494366079626166786553077828529037238532034465177826220821989883898418245678844840699251377125275609619878565438158222347028527028561790376860683445524042531385442349642718356106193297430197333815399182567758689992895901033177451808473092807773623298870092327959005981580214452667344685436899925097892670143754066665659912437661648655519854115772646667101365106708040070869445816220268204607964352577303966963191768189890232227496169339758876395117748455682707055245475656237305701169090749043573990309340663243300782696406897796962160675256959135460404721843022254072258555025880629221879586156878609689947094061918396066280024785858164238095512340882110024406474483730518751045808427881063836974881871292272924409783371587456431917442270632626837476213560722133883190178174409013341033593415013787327311051427939894789827427092734199731794415160188129373058872414909784501394514599550690436411941256818566751273044021310022994190375957566357788248960238891419914970977282347048861222522667358981017924642879192054626441490659487002188949657704656140235664558370509763074600771584079922285138909591308523844846698196104208079166262124759601183679374383539578112941095532947677877517068946086382475318226753640294914244315056951060389434816302027805132687427140914808274506481237748098070552709335846177720579794590031196826596650123526148528331601690616545562883445506342885292322829487868908956110656053314559168409731266351906710549601267655219565030226550245047629751269325291589880613771112975183552882771898013434838632174869770042641739067228711408488800037500581576293845984041483183359249568938836660663182196498405438035346194640816991991896003377530514125768905385338264600059824599673239450741287493221731748487979780752091513687301359458083966277080247076164826529524857961049433184846006422493103236186979205198224629603739564724640988978348544302089503215471790616013339411090403532257106764949426530829537465660295606362832695295954779017345169082114327777197340715928471128664800303452864865821431013819295595150795313325592317110035752866187739854688222153561456315442681786558475488593160734061496583522157857905829694105985154922172413678353614333893593223087498276116670760547810518710761236364072375546904408131647593104877457548448857391705693208896593183658932192398680352173412488692655362063971645662557162159918318844491287821799034958207982396590706413861669282990819537580648787846824594727627580060473445171736358384787362254908351286835810309837060847010702581966522785622360980186883115715704087719924733933903975015008388015110979074886699800890250881229498517069493307975113260937532070608056605255402086525635079125428983013977090736353975684136733229306570260482622094632152147879345211413194601039419547037819426033813669529245911641084206620578792894871002480141226487207643663109024640133693941110924091387852075784955644676600756751098820051467547568081259773238404700428627597482833660488460895848100944693306857969147878088310465587717145085952376029865861450792147462942527412984359166415156662550952315492861201033876362095153602288361263398329130962181249128213375613153568645078988772641618853951142026656863811892266064739432514820609404978065213402417131629770029643401971838088491186184473564722968453857570063021715530822813429377252395456582294932054559033246079236552051098479728448499142503410931708768225301206379425865301660985247416902529215987935697770195840219136964123383847799073272771903753504828272452824293599727685861336293857239101322362008954131185539161294585589402816880512536354003628342460674539569248011455956769766665026742036686845495118819908533886432162666893729485120858265771416529319995777177072649965941144660583035472149816953413150655973939850655201276437238847279045917383761079325098833097072757371293537141607020954127657891596933276402722583448523487653307233538477836810107742291944029575561519990908795953968337388321961202955733413401121557715123651916417031723587131028526581450910189782989553885799040161559265210957264288071029921827560632943891156387574371593832745855533267532916683989573133943898796529982256876732979124422764743620398463454990980501099551409223565109523668232686938440658601787491112875810153337596044047908772914064839965021752829272239189430717019542694951079956963441949764395684634571456747596443946661922931882145779050878040642042246317481908580517024565119442022194165495268987717011032756930246138625175387621570293051136320028905200755300184667325808109055593498105794034119561064354178850909302331719346392421625024128975020853811536201231570831146777288297935071624356269219258865595217517909203159225056021837880616727638247656185677851643153137236005285250980655471664919578843117082626482040377333506723483309593721376974996817702695074942275328336789164971433232084087957546794236750566116278387257210900991233746366349555879236906647157324597158402862285163810677006534283502870817990063243449032237109430613459338720190570498954322549821887721787448882018189624899047544788641747453049264291311210216421500523423039954749999255708990566388524500816889684599856300025706552155379823382357971416509750425110368579943315696541563262495590649891977706309174770026837009642000738860781477150883177179729098543233323566004679305799402145975638006865621230932400862906433658069275593580997364999621083038017794167510593565845681337653944997410753503201586070948614781867275049709014061404669683887863163870776762449187928844075023825442707787289580988188553659786120642918415022300988842265047953479391346419906417447817990817942411765383343822571837436578024895855181016942085198466698816350136023856100916712269741897991915963107355699603807269307957958976936557874424335346044718282834992419251632875515388733973919967701093477313556232357070812592238014138888631670929773322105380133846303387466355466493221959959232123341328360782599455915890111212376495402468644913677995421332560851405357828606066262515269904203814933473766894250034000567547865231936008703320175552367144041621568216855616848986408016747314303130951472516957454032826307500686002014880514825553348662509167348440671425034933083978678685376214641355116455542675670624964463598164741313700038290280967020669812216252928490394252322183048955990887487877733267955142309826355884281158967239044217439168390364612216252274171342061614142740961002151445332570179666120308041819566466599890996867984145635456664158108498921515003492574716646148589474962167055039052667991143280637847873874187705750860377061560829550367612421965067030139248506279257754036461611322075896440739913626404036947737950702696984537449424525136256521177338500885281243358740283085514173525022461742258662374513189963972123833618744378878582024683881607705667487698935356944512665347788137612362933924540555170760501456065448329204190317930621616779898682377285309996282430664074287443333924316705181936055281933763755443663673634577647443083769358843043573887783317406038666373265621828797529932110586351052368960200154558457068345938724784745480042230294621562898255657451858355465327356934054341384821116861658339012304215522119711372494636274611338481664551190332448337068378576510308444852660748684853253247384287848523253962474801900791175616275607661725531746171466645902210573014757516754959097190222484026108846578321941479141406845101670944145869356603165701837098474749497534074200227545367242007482863219468908724332988842886226919696931954792680879492969392464387681192256392392603605642806931212357617682654363333373994020403564146449000127360503306304924138198316947445324951981262730633097679654805249592934522704082806904705190798781849277445156280488849205359771789887265731916875712802253560600709849283966184261224862263042274358699940470701553254431703041331736263618593610720833955300864385832811904669525834196162544781662987928906232706218186781150995233293130133401497258984899809889867922693666499351005114205765446288849024104208019034891494401988002056651161547792944179885874567333430449582813538616914115300071590483808174520463670292576041999934024422333426085771454238062370532139954060513489551472877381601498652611506059511051113687968666365325367845517090719499164278683546850602036474479416958479250849275206250015135520048217283671252535522375679552531460935719418207892677854861131638350217914349313957862633939095723895673459237657892233736295001481468551615895466013474183346480905834269772233372370457059087898777522855788254424325340428363880480575418425291476300008119943689798124571960101152257391915939390297233488189374112505738697920398577334017046562114747125405937756754611386790293241584667284753000340447685795294725452638358422626821674332679672451812121099190655110296704523505607225889198535505064043050851919319954161598913743514926117382759292045545855248997780150309902278414300312465137362383182043307498535558746963390053065810292374443370919155351052773798881135903631282358096330092894684615441457192456406328105886859443386147746250640323971616210788811805008710070843807979923564067400689888037790279315593855262224107394961592350384231783990020548058586466201033743444413579554698607605795463243407669970957652666195309459694493640711184324494427963218436597240741942769392924969888375585108865253856128479388488567444819593664307516070517823237775521352836061373081794256045351402326809361540106750164046658043276993785401864144479502003316576846477436775666272926055286877338009023020194116599519074349902829127804567695324161783246785541461851564146185249750199759537016948320198886540683187483848356059374087385357868793387332469672158639147596950416161455103035456736701616600222835016487407905473276238505027793027814961122220506157293392603153460919741442707344413447176828611587004789136260768060791927832301875757063409218014965847556777463355588660488505922621138812242606529972502176357062987328417485271335260992898245901454885302184880950735487768087568263255230913261461886356403260249131293476394656291014247814648518357889912442692443723972530286990472458903755931317891963078825287795895631262851465945065221292292778631535717743362409853071033909014890547974912970371207895494845478208435195909865269051456683469296563894906571278835501774890046835413132103428352206716561043455595792579343480737766810735239696819025519038838538586253022577906576498615337358082708382365764197257091301545601058299420635567409485150283266178900241079442571467129976343059967018095022197155046506418506364967744232921714390735945088874360877972383832714201116541948290330114175993501182798406437719856174883567529187547178753080652682888791721744375916496679794285280881457019331683067229809863355938532652011921652897572489159926089992707700994149356460600043712970687725382509765671490295908011187382547894406085591626242578864080315455508517524372425628948601979853594593790397668113782887948067283483255150428672032343630442737045797992703475464095078126383886351301174812576070003194340527085642727210680248387308704318670569163479705642906107628932949163884207967827596348786919691932519293747103274389875327701514671693104461937244994944635600222163795176949834398931900347818596637738518967678862553548492082261123608122923267317494331904257797503416366717395510276038278417936942050187724271744586848087167422292891909159447648221588961913309177678651438307037661504393519721650581913484099443241320761008365648618738421533874083138073348031608940030612286269737599351202122906953576554529334810736798115341278433638920178395451909618003722401938486036080718386639861485926250582458994275254174228113009271372730745688905897524825123005675919692239999054094426828334470349311591598853881243554819975388370579889960121429280764331456930114350236095595813233218776531561768503313891082396537644426967550051806750889899496433243199292499750201574716866678010836497521551566905747567553802538984552284034552999185261197735911523013574032293833618806421454181373396757988686523153800121752837958426520730045143035046904984361440858613132046085579149171291422836602854231311199598935303328410098476815585549082038075173863481483515913977244869818091190511978967250126082361114609565198685082157918098978866045702820418949331343486011076364317387046235986234256510396612382561843193015624715425234882311981388639826173621548741242194265261794182894363206462253679399846868141624943029510769345456338517150752482413156028665355261916492530085833564944737186060897331490025115889728652816207433715691473249112866880210711539515111942192793013337607729169043889319451621412014631728132149093455366631506873744970950949874356034679526414201299046188876063984499132554503285343886818052862029193964729389032298012557611801867942650248949090441316886350922128892994300164063187906067372471009104881133007052730100881612423318065297107822590715543836554642070511240180256766834753408765228320805081148099647875039114826188175178057400689091918977289416135523467656161148866196832207601965429758762664957353850487866360303072497590270299045626993993598422176049030455269009135765855104688478357400191352503593202888774937523587634398740055692313235216476368297636969116342294982726068033455983916313680820675174320471901600187017151962528220464661934763710772834575374974307091999618733011694509661645989960158391291833503335466280667511385100378408278358624320749838159517145477880107829924052575930444450816057559787542746918316155900935167960018006389698303404750444064146309261328802422682019796519205367771854403371147840244826763996850370015012482480113855016671770056699200422505763699538933465928000642817205635701249254583048517334350134298315505589773524484884948828652057115722931290688902732745551887344450925495198351803474263534907988915185262562484673107042634395894977806969427989608749644320520153869725206189696698980800449327507467981289167009615559220724409434583322812919786807834767757408585750807724140621694661770715031977706954156787903506521405967531103998679563352773238603812278252849568134249498840945787705778200760030550125783271441126128786755690558949963024445015939709599247736719328267446038566638678557391574959351391938823608117323362378253573988514015463927038939259046253025204339066665572527228408509246292169042015741339060164523897810909681053724574343358675891850606830942423812277281107333419661842485300410320313150597225641033570654827053219011262400352359269916548842739922903786263321211919704055070064576237725948481564238571368181139974882790499107807269053238439774489111538667274077384699599167295374309786355897055690416542183205657535773668393499337367938501487786194155788864297657120248134764340621834553287153607843899913421986693667849413799909780828739432416518009904791455465660237188153424305855735122984458734588382056016024230154310540178174913774266561388451283715695793030222062393740722216918963319466728031676928686326973418178148200881803682846847044782703704110087674973793018941168842468679762289104481335190205322503833529482542025512586772751476568769598522018665692181048179794187276346891834575234757457045688764985732224759685839660057716715719225916841478684503055363843022085471256029542191949950879624685722041500756555046145705450041314762269253670265883751847531040484684986061837859680915255951821621402551999363760092614640117268017844401631861580944113683681818266306644032436374569931108535852977130820333927853620439839590520636987302353097681837211486393222115200786624036297220244237063237075914767594486900792946720338510360961628550402504298799940514180158252791222470018341997545200915157598112713796802715785114253739759972575388086036184574082343531527079718626634846316028241061416377061109338571434762321963112809433020452902859675171069836692117324501564092828088128369294101944670521780282783544963018837102522481049302173730001503567538437440163749793509631535840300191631994815866824825967866509294595764160807416533864575451673767852544037598346663342607725276944489938829368571512527906689835231371357307257151561017100957566781668139802679943258248630871671989322306628444572527440565113150836092996588581230327213291225402157486075659724708654289063706240881103136316707570332805699812793972508206423995513809482796765939497576896468286206079029700902805012151542220083345688417966657549717059095384908502897132537810752367732300333059717393908648353629487833728686080912549958542772914608831918444416314060835339724529418747545608008126753328895425212508721477174618282949432521035287319810722296276070282686008996209814930661759624614434626449530035149967731914424946472113116205814569156746251709452756013814851850072826054618901288593557438142520553783473093730714036737414234885483884144366996465959316097419627179411134943306974252939696493984143452458194925168874286013255809925987948773367143556832011300418478800412956464779578291010248266282328827338491603884890577458569287460699560985647877108987858905713022666920009986450031349572867654402757833604316096340375026855003293916445803223980953821837680287598958750415032224813324596843161805227290541255887249660335933584870873684875963879232494496633756922574863918514135889539812337575129757616212266277442911785259732891168849818702157776253767474540429191219352592212488046727206313719566202302756248643934120656829597565136522217975732448542665914967787151145172246895758706250240936059669373384321075554107518470899606207591855907188396995477840954409769780625530841552508615867839208659118061322529338464637973156473163349616631760178022930385410422400563182885811199766394826223856511329579669648059831208832733401710151455127042012357047804672902741648482006859172720119022827335562415080599289014841897660561518790291054703086931263549616589251000002839304111064291264245096689855656423621875000427628916836147185992572927212911458803459326923982505263677789239548499128190602405054114143912277008060507919647367833288134670550852798362068658798123447303826608635998510128046427708012337177095238257525018643139912151449056968301574290447747670026475528295799345714861288598814487427302281619334587547342136379508276017306818210601318010282820642659517098575987340869095235060053608444742145841592411344734992669702483645542770764641899542035053580113355405305832716493314463588271428633456642589980498892088543186558184162380210216744694332288956499862254157163698975542269503464974952937147809044235501155429891759992907891821758873470342302772008864429835901256608141861368762185688133772936730166169080728560220935714543878026213588713451237653940947428906962693081127747986216384820949604385956839677855118455920359571263897061700109796663437105290150213250781516049083215949781539124759646946023112381228953180447686552945696123850091439737691852521140103058074017198911679605786421801890399666409211416132444268363986996536740349944650198591734887533957752090346619872388155279369633051401390559881833332152016813702195392373152436750500368567141897723649921102654990651132201853150526359756742898731412725145458981117989685760720246847809507562222146912503942146148413625775732380156046401201072648189878332217620809613982139945577393494599196519664914384131971924009257358671647439311140062155405091059381173606583906217905969518899450426139295779062415307565622734052370973222257889466168122238012580758217130997415886449222730556597757948301068898739218002211980505023646179653074814366071304487509789868794012796899949225586027206516697377707571814244408989624205070084830200857095335393773722078301812986652191845607205278323426806317836624385995978442010023913813929736355804833006640456955887321878624599648196845493227965457844837879205523457764647467385805692939994753138111872134146244648395114267613768532518518862820941372527853109609903147852230966592060770249924828173778471367240635212499089702382758517286050929088362797254093268657083125443914528700116787266612536042528107258882964527877740165802766725541137111492705881197246989838412532774200448853515443282527847445910607467054303787404569695842688599422564535279962355940185747088751166640766112314423380135727830733440637643611719919367460094377276881581240221946786325724498624501094333619950679488577483941286945323505343761230014840627501740038092926955655745700885410252935630702439177697317578244368362356278116302871774809102229633709719328776269881411241013644214045399232692680620748886659095640238128458018179439755678681749688736765285999278521435089286798948646147605673474175815068874888617037816924699628967945655663713904676395712383733721473418317345896226961456203485650333234629167585912204383894042131632610071193371063616602800322567676413291278663555959909192887894475597468728525259242078260432799044268456190096257358705128544944705494951275066747562947479765584286061052010348287944106409965283492305353807777798149316527980314402068704298551960882234121532969965774221386429907402944805984508933522408973107673105325988123584506125336045683200306482443858352593298258254792415008302958646355007106817381565799271857180678885139004130168560520700108536598320757071522735780053406206248448117503504074568791264768225368320250132633196668240149684108985000002348922995463423475878308472469150088932063038497085844450580011119576433022690819056879949074165210148862288494748007729598386598641238371541906410123714633626848573818575250509527684222815033351398354900766501634750350882262315101436869267409888118961778819547924163475823098758763446261906518771279728081398296684060253003789689692102258089091141789144833365233490566438693770406246768236542381517231907447222524246171015574049537272378697581615885709867803946365555711467993497609033821842535188998652987260406608485407512713174455523113789612440355595287854381777691218447121098988411871704130508529191195738796403998851496032228044492930939488752310847504141864274186633829217186620832428456792147939523727478776277481317820143610498174214871857010118038738685090504488098575414269927851649789895667247533306260897976178934452748223874064680573867364657145854626355653746285158465437005583103316225929607931813210144913689384001598731571780366950737146341903739318975217436805291040355955275085000968400357988259347315254210197850773505615770092101998056052884318739829452157222957245949974928180348509928829083227062320573952415350466474976573497815153383385546987843487805016099195936176068284592497074993165130978401703440938588679341339096864774314044326961821372281813870817239731335219918756350457717497536785925201736035884579739069385883343726483654116833271646367724989204992941795213319286082471074044105307098706887046010084184962777197129435302739418631997896037998865825229808926181753681265937209248697352660945644730240534083159852052632271747553619251518654160106141043221637126243078047517449145763142195043741133438488843596013918619045347423888048556328539294619958916876887968346830076024304348124652945795123266845228294857961418083142543838724861476956399468740855619797529809390950874928436796956294700162965072956246372810171578883326666070830230395792379659110184648583827736169659954967660956421355811348498665708954030715885215857312968264391965909125725135946968778099790484338046844939279020565963540819155867158339312767397585555587117268545812351649909168577922212785525239695656751988489804225259800328875290991222037624669454063227480407545656992946993223882915959243048573784325503389240964615609278147223929984074866830901914946356131417887303530817198887292143047242453836026810059351129120417505625691723617840167013119197633644697836987067964112441512407103754978663028974934132163052852352841736973786164485760444641791353575317296596245211713649682275287076943649991894382768504963539921266672805082198327441013767775693913316816042555028813544452024901860683389813819708151565548218810037396157988870413280394018209925907138804472075254271167378994606896815398159369600357891594539938994790661738150728933865477179435918644898820510781586112408340183818050074735491707255592003289949869475944457309388815860028829396386453818880145610584795252633208718758391338031898829656497432710711322445589602700777183463473365240337726268712855197764336568883137412936981831252342731820214437951352736305895301946099364381993256266047597942982300831311776087383947772692856352264679825592575129803452937319207806550371213384820459442156577369745067040829090964006936933256563838292846751089968099698911208091249734372574279346967297582639003299095921810119450154303586994713561922394136142532984801429956178956514977154045020180999872820197370635889970694577260561036382272729959843392779461730055300184095967616648577133122490972638950596325389493817298047202423872626241851468917498130929140542395872875759037812546070195073721427828376089199574093655488798911093480985272633795258486726155258219206195791108856750762409813074762332460181431869110104702811134558422553179083189194006877925709304187302339485331558649586258654174635600962611370029151435724614022734163872101308577289526461755304884757169278950038947834177657910128944987204561877320721082783042018199118982897302535082704886272937920231532431600082994976975779606764483046096012746450686035367694852353523302967349696302113126179200640954791710172946306456718982808898277903523267195284537865342017065667423243062125188525620355519029544821463139438750597310521946484698271617797027356676660350614476745661168455215248652823510570767630405836008080354845322506196301096952476286144257437212694411287198974060787614735953408304045534902387492520642681174465255687969996141651972475402735529182242947111435953627743657702320134871419765959329184820695232600729769829948114591853285168081964919088406712356325267452417150597610202385369873493011973089820835216984677084401667907477655921007498584795895247628213364476218793844737199916070841578034751300838464703025975312149597487022352681287193536670482298982435460573666836203512274256846977380860133496221409965513734237922483808622531048417054539761126403284650064701121839210509474441884080685889877209665962732111268392872353405783840273907367068033137873029809836133851234566018436136224540221984458114556646979072674573218493516413938636399907468671784841249858801437157323842457453322870204073425592089293743530895380080205506859122296522496379292182802444106823729354422119569052741444781457145617645734675941763399137407651631713041246260733547423878066983456845330828166206275313794490784867839807860182407949423341775278183391971438662195269778421072378361772397511430739159085490406982805715447279068241056123351504022563871780820140639154187230510351735712022814832516175866661940143519666115630930516570716289477228287913797640890645303842366088001749832703851650563544981570630138457424144841210146569334822998874464670033783097896041855328890391482418719865778745407413071805286223080294881647775381001709501413109839496485701285383659609163091340533285215408185071928775643434073763920131715072238405615337540970522270070993153338138579231242950794995002156536860604613574567632019790213567555776867881919291460472486619128633380430465161987583464152174806320915020234967796328130497388905453276255862938042466045007263919614850663908184357351133080867395851400249530550836699951231930427327806621195365797502354329526445987275845528333895832172334053738249975503072786804819157378515099221387228881171315395617282730506454062327802507868454140998954116035041037746867937601736555298057763605820472731215045925444649754483730508000508776576179615879645618884747176988303699314264152316556516793512222224832570423328818618575642947609171967549603829416954110349026998014338656866062635077569408045246043440852252932140018217599143000407395080846403056899915169059906206539092194838254137798488506680772926719450265648656899535046196319102347142819781259181242658740505568712905792722971355444523483934960765150232852857626289859805932884264131737633196804089138130464930561912824349430452108167566917244748653536404266257139946881834302382074891746951946374058915756955453546284078274284425924901629927735131569806910932795026354531758854076385866409844311626506389236511645223553549614105391967624997556332224959285817351629617112280924399797419005436566803250664212791288771232593190361880663084408713532167793661181133148837720948862076170807716976554584451113908665673528912056075218290124887163226042642980300146453159138474858609858849440878007321598601288455487270137503019051612433501327340094941275161158636018704291627633328713518437625455415538434159572057080136661697938483989657504603612999958662447377844647863184016630023565503413093982772162393902627041452924342382795967667731498721271093368677654637454206048814298846601682546530064837218953585407493328679429232365361403926622493493560154278789971859086359455719120402318173648327506029804146026065095916783306609207272867438366253491187284676584774890293427514689721767847754754069206177893760414457522639958617059150201431204762152955906711667495670165034535098080312026549365544818009570188352613632918482591573468665754358717247569549857631934197692954731981485388187632686538962622580859122067907064602719147497532632801805535840575817066819820531276884327899780736980501657489414227632756502531542106771284905457441207177752054787116702392578087218096898855533902368670244939389492222912921084983113328763432311493380831790728936828882394191908144226351092496008640429426392180349717530957161345148339613059067446501476500165084781586800855163483280488210223993537057628179756281888404358154898302232645640581987788256518082537709350558307858292853541428742245976000198070300498297217304223746948888102539847131488379987943514520003494662122805216751839714552937682698279067533590595373664594069594102260690306371282351369680398998483074195842138751238009962649011352845636442740016464412570963691756423990590243100939457386727307790839078205508365015172987457646685385830077333667064413714308876217380103316664364222369492827048807938794464218854232611963938049754100664992608050517241382784995846792939109139021621545700849102344259832917516840138829354473902242453286841723533933126788694232204826754082380820400131170478682828159798956634016899367247265814893166407340927982428169956331020006885081545241379306916058251769574465126268262643380833268144748091953459904464217395718527268561938858002390051341743725111540441720285027975408978225928663445566226488955873681775544818632890546194732945050318453116689619772142936614156548632779514378264437459710747235033174403779771450282649911269600760851320055670285295740109447239065934271852583412149984231639131902804698355963640685598252665160061982363958914527991678436804158390963523938690859546128153694809457298958909246482386406051149062065505866189975493841614673487115186193539556418548421973016977508284062823646954481269483932873297572395757203173225998385769102220100980367943976684169531392888857068480675891932582402852552700995812087426731512467877968074780658250246909881618458081484131684246629032703935140039811428352156747845878008628601634243819760415033566902961911870851092823910404567438228871072760470415827206500234249682309861610681944896326261515646278013918847635038630452325807957770913568618199536758406021875149564028950234131047463812943485579621684051849029688884125526126817261566362932243410734804394154456871378001668957737500311225853619684289014566605342395618340470639181372147701180674845099568133296294767411607924526333182189068864934717364417861039825429028926660169466632550692063266829669049868774256727367532168545849901872253406519285370725494559346581242739036107779723062810521216807551727152208768136742220179667848215622465941050889242619817706508504311176157664969101344053256900953437624589024606519934058118956602452329821177350996593026220766451387483130806995183957424040695332975311607247428875056539483136912976146593422218066638630033688304882581366806981325063277653361594607789129239742734709957160114564703632919758233340452924681711866569885015551006491909013463153895629384731199016709858151100480696552383329013062075530988804120118118600033890406804674674514435552453535641084585221407919122283665959928923882614154201045477512453625183830422582808649789815895599780635092572441323376349165811542763596730745278205752809191277354574815822259832803524468891521637993403907268501498728828066897164846264265551374427040650026756007257993070778682901938823288881263796919653475834253562270528010260116695789086400428703939086828739965666501963484425610368898083241716444401818478887598153430117810388166254688542880276680963474485268738878924889363624942448947789579414893446419059560111321222609034730832915500364692618923754066625584368138135656709042451504852572258210873224777488588049304542144668517352425942844653099140034065379544748344300610007282451824714216614479648838757934883915660677834612642239268144719735772969544739510137057546482511503882109691612323798653364616700687851970882208922171271096247453846079957727201975131641939234800288594604965283394693543648082198861129304711689862006443320798691464218483982847120481398300584164210319448485860399781213129635458773427870960657937645815832626263399312573082687559442136064075314279949793900951100561483804698027554289615318583310645815851928780666601619521989231958736555778989666725920014243433021237450907540310421044895110501910040131375125322107611597184021131746694592301746984059033330019172110641652248039697011545698114516543888285800435951879009306242059981140059224490455358037377616697860806880684495351745161220803012740130026712306792376141701407092056826675218236728513922849157631481832475023784531330838244993484908418323204118317024355407641888698268902402906214294408138470419226034792409996104330403095377394442687892887780385701075723152248688427601450226390727583841495201872313745391638996076444151914669341151775375988699274003465135399063052573109646176431679786325713108324400447290961610860379640307720462289533243432624472725053266209108091851678232531570795419521034663359322280538907480071237507209617692116671848466152358605914515764847725090426537612329710038163460305985157248462455804651442790192009239034299767531805493863741485652279501767032666038448084127756805016134110453365085727722304964913082141879446112521353804747114453938792631456491185340446766332228831515249623816697642979664218249195080811728434017111314252375337124354512043619017872604638308965871539067017541725341159827219064494573091175194491996313119313037649133091551200430207935630942861824742919633612972379969205209437101719333159779948702928903015240904506334532710916370674372764826740730791365733744868830524795071822453735282188705900242322070015423701684204473911367930948054873539666908863112830156125568294775225120101371613128074387227809252991190766126740249854536892646166060546016144467087472683591435818968348564572693951721442824966169402793272973559858408465479376596768559287505452885358674467212174157004627334956151388634320398804003731107680734643322271566530921937326415001058618384654629202115494457286834093953094484690507798658614976690262758605660642221346315200416829034787245551507476101531807322881039308353803200134649988770824673294167352438043802705896099522116448046522335872834805211346027553763915176791739541662200937302146328048499112358624131890164651303386503062975148275225613297613445131136163440486764799534223902202961645295902345795583422742491506015488590785949215145933455924323016066234036738054154011691979416653917801242003719385782044097540443798231629743240715489778175379074286881122011260836567825918329818293839869405999613392925307569184850926603198487966521744211111957294955785992547152522637774046025483401915291933607949101917569497470511869525420726626894165754427386181607564762906501044441785739746140749565653032324364444049903128998319188181785397874886127980000942507888178718695116830869490761418976295456577598719292837093343508176683448846706545748986769033163646379574179768832129411508108643229967144307816714849479882095751983920343591939960489942635485073829140083333460163956987124212562177654697263754710289121904988242795266909621391760060257983255359607806815376504412264236481814444820436862920069382447485228568648613658961157236437971747918846054763965677445656070857621607042713351159823219088330413522775210440496558769420867332403738719163937296028371235656895484872902645268041799515664994265486976212314475208318889583160058064356674738438024719324500260288026213627045232177068148897227443290274239108158973471491818138080329478889572286786462252006506215676061118672468730774907931255178800299682176880073009396535099415009025319692786112750454262714059980056689936667582261462660293046431075358289499015280224243757813148237315597557833626655098995991743764091703178006377392937549157470596959390760891742258253020479548090087034261682500073483072623216188001814722079258749380560525554843009894455711357285652186198614428030582534787112025140536690958498019647985589837082925999500488951859571212204040264089395407735850286452078776909258849683547986201752672950003631421430346141450916544967484677444905172665824180741129855301130752478209758698321065038858838216206385936047811819936246713606111768829472403819658253010961705971092396113267296862065344551203643613990642057951717651970292707688187601708149135951854164989873035332160270365713963186781815011707957507900741136267647392812588329136638814468603857228017787955333380830034002076182538007934906385958672340835260870143370233164610495114943008768885102505480950743467248669860183720323890293439336982086826008267572869111866720053035670297510988927182891480388036045658457560818363742770650435735380689357450075176735714605805586344627037019067668315568659597903484374243664942165989485086413878067615250822786287495575511087299470348771741379832851363298840642801932276166183554807081728912643760963030445507014755699572553418655303048079762370741875409448360921459063195101817153562744033292970961216936945541719880273243903024997070249771159712537872560130004039655559489246730062263427387288989915935412501113068371522979227778517885675985104773096980806614792529316221384957186424586311747645102061134913711408134391495721469561517062619074833352215630314072896270211667249213243828813074699456376189415313649739366268263292606451729713923203370482288173758950348828991910893358173263412086613350495539784901527093992345263531069175649119560910356142818600318545894770245065330781018977765268136228302286587090318061015285336631778219549296292010971408406786784470695956081024046242888338306280302353435535930970409522304232177547219887094833496622552645337649140407387500998858562706128542788168703883517138073500730441059553603172547949904953130094232729838865532735427440576961210457170244404479472074580906892137773433735393471584192401048242916015137281216653208051406300833370192861359403652948765152836252097033699111577819211024157240907526522256352719948861476482902469424492445402724209795434678915953719394828496549221688595255174870947759935471931607169207359713795444640083058160743032253577465648120911981006618238204458321341727674288795283815345479613166823124294080794512204196990401530662428539110893337830510576670556606976394898044375683438056639780961864539727435820716512796607984787477768678650060445862028593411631769495226639710203728111229892618964037697563615404346227639567288249355728701534552276578095449953641513456893982857242577567346237448518270290416218599664318755739526145002149927007476624621162162340914653533025734683728788829366461634384182935809535799732326092119274531561729207218263521054022842294089106185245407399110092344621370176732250589817175835157245953525532901588644959986570602206551563800406399137393294219603168848800843200628897938615252576687601280165189974343606098918718267648321641641527526019230632095358738958390252947518983780488000594220796952946201536500781512135022346310140819944232207826754275365551780636692534357660202796683873942075547847603368056325379648508300643716703787324300195380245739266576477682299176220929582562458123639906198375863293243577555793482589907919475483035335814505476229093643247631931642859148404661482898627237200880920913358281211111091133706839567499775711113115989257410856855462904910047880176664533247115390605365693893552795873328418945498072822634094299785115468135625329845349529106235357968240213685633484264833895516296386858785148997705618404929869779564950645119646355710668125067021072618747913391512638040022055072888851986952475479701820184855543257582121046197964815750715882240403061242670475532200495116917918575968687029183606243725505211840507859939981234887438723071003093253521325059744301015564257975560281268773266071137446774354439687737325617806351373478662194233706379074916966521812536788355398855758207484338037032004139196584419714869999091424471205570253667481218056432384952255448316373332681216195083709850713255789012067286261139356182496084178999248065286640527556459535662295523749542911624461305590246680155994332782958344833906428134394023509540012558063127188128403031957552199372080496812762617351474809067194827717363677295584259950534702014787788395122148814719075219839228086508895167260213714552114993861343377544202030819704129733535866704201464077415167262185854912541640134853651702963481952026452277552330654780432070003038838985391849530784594346677702927696955302803808204031786792824330409185808255790503268644499794139349210560159365895836451222222275898286057556742971341224817948258740268527546436304839012632775842353331068602135607640051376240273641513267150505643865435367253312659029162777258893386884762265831004694477292174471693721661268007730108703065534898627033959957514126473160540651443718909329392508318607297087668826669271026198993800872745406984438791601934361713418478375343997618602213186536417199722325593292818104852922224889609183529597405114628549547689898837531698817738385335761965041775892379576712809245346714103492348886213910142787626056221415065741841756689975767697135210486764832786338089867433256793690544692406337307418695749906608776072180282098879299057089565457856370000192418434318437257763507754802462547826949858381169263830286584232880863924034296737140175052317051034645294724913490680937435296996708209490022103298110508511227149611279500562896376592232977084779592050485063238947487846446030221561418583597862353934141620722812908569216341427183106624735762685250427556296147426560433653198908509539913048925774605832029770417182436654880135380989082743030005095093622374428206859165883016191154286535553012133854524540920661135024996535781327882678077904764819381439229795604897045920965520381424444785172569059100025260055213360968124259710236079258039876485316372900713377109767592558601904184723477192488010265815947766654868665291549820442490728379135076995588265875957259851651577434935401644902106419261890064277381453106940957060750256601542589302275002324918957063228968949576399370223460616376138179553509536505078194767782494154052488360773320031306643293074644447061699389346543408024329397256381586586372077058882512977941846343184254790779674685612432446648823515485871312411185305470240088169052265542056559579248577361704908010987517905683975429475089095315843171874207174157167675571231549227414435356855163531868879275923819388164129301244943984144005756420640417047500725470869316997046969626093703750584813681547788229251515898839066114507685294809486214318335482365341319250684686158885077863221647655594322097933956712671778736353028836015214621453677567008695801986227431103867985163308671223723422852951584939469087102994155421124548033282076295532198668675019213349864202789942998851424659913916440215757851507707458535230201586705097823591081466180044901712214448592595923565331723689012219785855313098644342451318690097727703662833532878563536995535724647301413030539902371992442560141031569540662659371938769702602049574924726839895520625977460544435152235216805639165966463302289740933732595251955086585141873629538005124433630801265525713222424628303557312254212823838646768626887652326587921292601492580092272328642735405397541479409098668436428241826424133338390311530744404289017532409824602661782228909782500805014465986477322135283922180326464221248591504073201458173075012362002537056546346881440891443674459472734561022750426461922591699121698796965646966785978829460959739953050628288985633012330382873911017830301406352293805879772215188002269506485638927340536259978402998527989642911693802635163180023379275737001871999486761250454625414373393445491046374816956255390490651388859886424141919546185155911978069140490840628763275854434252646247101150997576558284152437590241146104897296003376594564920883889368451323116377965015441313281314357944024228535711959518124875929036056090565332753630406428190350195143929989831531685164876200394126994739662974716519956139238549852772096105176862759161025344744295594454388372068700142471901658875312567582722422569572745363906568436288394997818345446198924859799521715961858573255668394056273717510495479182746945116964299197342485747319955330767777995957762376453721251534264942363980928253903867542034185879173057904138407853383911818149776588882930634109808606960928658338738379006880800658817601562733366218698119860992157582759822133027050286894049280951667012334864202926035134211972499755356697835754690297715135328899049910209588283975869903915984834921693619962712332733630356080212427025585232897160416200330619090110568979475047910803077885364915875511537949618209609438829240304136866614860282769769458974270368659649950217993189196100183512273200123342252855265299130766895644579215422931833277658535804714015237476262786319254033571690739110758585149160348109624785679300214849097335328702573715920450839380936971627333812833851171838190921612284577041558453481630549123603062935916190922232709882203268653286845490461984204679197930400245709085206695044916939070144640719296300123406786301514302823376180712598309317545838160814494107940533702793134953387486286427958723407212268645668118205132970219417602860204826397701701920330694055434412019649330317975546093752285283914388455703708811795608027610885436384088835442770170860653712519974319355008399774260689764915645221143133948213087296570181697228602370507249067455824045045379918561898810237920897039966802188288561860246603769113629197417663388506587878920259029624242864316287467523681054860286275404723397615540049886621403820934395767191885283603269743248822252824940221465975909024314743026662609801503832975067663605815983861059303751302364610153529528878284900440904851842374701259430349618352096262594461363180173608254450565937453501733805640263029592924920736714137710012449844417242068782562162593951619209549180549546652901148507814860453086000578994527873961203437029066383256072076770405145051842571977347079769665558542147460437785710674463985382886646774882370218323486307585242567739437853156246914063886354880865125377734718812679571568967315606163170914451464586799958471482208049281294795468202604903167712120496283358982913971767106777417663094496459770389441332435408934718665475122058866630162567159607536308511614142821805934248944788127193422845051419357292226127784030258710625299753760522778734791587994341436789187983134959101024276292942685691535741941265690815534477507038304914278047569293397591951927858739151989801752072712491770002976066251189928448156842355059268701479509417737756384626879161689805393924588799104580431074406670489047202846540422821768815721187956664381075642250403279289908625046867655446767370994975279890200753078470672108937246191675882764484782735858003245050500709796631774946466682084886438001262232292079430622985518900261236433389596500401250169094851968297761426361465140402994415306348576490200917828455038665725555132141565832455378150060933992954961800686819507465601190517653657699157023827598013627329032354479859139373602199071960017215015331368484321114838607718670700712921183610812063594287900191119577369530029608079147188847806709578258339182555295445659392380199158481059333583716552437310336820147480581317517891222424407954751126600244669719066144873287118668084216585245963764211288796381739491483033362471847499794381433945868314739852979736163554905264967822451451435292716968098996848215608033873122638218026657010250050379625778495831395257979473218617155545215847067169082023857275279906844578997969808554738257037585607225265147848218607239384459804731538243561114761919280200317208122197274292022717645916190080783474926275366972751770588044674865211006549880950449835781034281320993241691433160189270883108536817505098444047028519839283573092919761158246692537161464916029728558226943133775022890606065466133978273045396838335935017375771824542311191903411072967574949909649839767251440677524362275083450810762979888732314939818694813971395746850415189598322580889533790528230498655856806304401889090016095169259027760507833079434639399109279305394888361023974355068285875549588774805893919657096370309042046145577989638389852015802216503475177879348700071727125551281403132682901075717722453912401749280737248562078710575047059636003762793538065975346500181745639276756647040163334894527232456625068024122349366267972907315023054228276845343815961184889713772226653596048084334891037773632316914697850703782516429325198154318569571062702086031231451527476570937608599513315614113798871478560411986931831679111606000571713129584960329343107536876395547054504138846407839676368804836891839116975264227945398582272917455080778641168611974719179783923559244613418833599131622559281300375584624305109711456303343098374555962470720078698766795772117935729754417030223185812806599557367587138542638008117796172249679462172953537476544708896630678782337249404313181847305831817316586348635284706107165151254889650902331883425093800692994322670476187299205201184725066267364186223534716607409298394197335479131916874263235232729564571345447035247879514295597832107465846964674093432264236275605852497718837911288088187930264592065568310099722194499480029162459961862380744381345744670364401434772077810092929551159263410851178789429524320559047859100547078326878180178280543593356705070656797816700217152952064016792343357361195793540589663904680219050716698217794342719726232223454193154474047381252063625940786753984016561098382717614274190006075199524687122271134365155324678294461365598041198744212185374017486411239784958667634047682937841318151933873436446623502763755434489366494825633340032221153352543099970349039350210015567118102100210686106115105953869364625613203394448828643017444536940369663457738739170116675891877191125382683073622592323635643663240307290974290816439841030047076193711307584524382274195893865558176842703026716546589721769199706651158819405741152218433476057672973609771024473064667152952229482291312534896068407761211365215179473376166690333730205481663908643704551742931469516517430807926625564255037869473013295374592631841541673745755241811388479350760707964973945715328391549782799415255355088298133955739321851926008251786124458284488888321043690694172144293567404402711628075637435309513640165487669475405641180696485904572028642085541440496914071136531553611105243618017161755782255372560550112913628053708605396566117914761778331775697886154259654330609693775301678514448312578033111801104131077617376383748186642316731582459893571655204491435323894895219514311536953534375647248804346944103579423774162865482783656435443218773232681416750889506527685549466628260285880877867047844190554161242452958360437394289980968912193962144844115263164970018713677163811681115195213995841421502747534949728432116380284066023573319778722854125974610543640619151928069248899562004428223502391394424594736489769691092024497439468034284123305382397779547424343954661524611092703958363009316274780987766767065133539518956376984565680208902554715794016916293155344265164266217759858131911878728313712887868683361853585096117850419835957776991516337239547860741569633207195353326592509561508592153270600863335524440847140346595777317528969724511185856529813926201113978739005345624381241061640541397635786422634820553622750753976050204782367942119674026228680573357944741723230812548115365252010438046523691561165955182211259228862398073056514387537004423324490109389971911960930982791027978294905835654846040564960233153675021617900136050438191013339080898306739617884492589038490685414619645846329404009096225589966026136852346847181623110980915360897874602410668614482881194004196923563192781054181801243931309867119047354272350521397751762284193811529628101629825033201413302417664515858789625884479144914537562892833037943095412031727563703269656291441738767599613784202001101758045287239176145794247770901107692696764817014801941251702130395592063609010904098690505183567943569055014309120961335330775129170103229871546344086122410500288806939489410055624208495790880921581160462173735852133640769342437109410620055447390792277972068454865940860322262787926883787662752167435996834877151187502231830907344193312556904007403031719807314501533399162399076284752974793682467283699676932493418964198957589432534246689657215143993034839640827881074560515434918112586193930949980190846652427162373163165399324551070094873395103068304306443812134100968427175203978096327618091915663283814476331315676488975431115128406629292283682241489978706516306052511473922039023712646848875549822482778129048269231277783658372923958800056091466155671362119166043163517434511958925232305695026038476064177817725293507146981416364555252778135578295165893106729772666866164050897159972463757202649763361436247517905825196938535473915574431377497456631527118025379536074650147365652432939502063141099028421268581670050340190242662372734577316077846293198521288749496769337501979659021770791082504805232179279119689335130603963332107589060452391803332092958778714377782624827288078359461007170704835993763509471618448969545265637870568517168272629760252262151985378023428233752338568344763659292359077937195123793855334065525794237539839793309914281392193615974811817895150014851826691651597078657843137502561047927804767148876715227375667964588848744048589395814069773648854909490867327728946713863360294554777357890114873180529868091241231758976906914509741049865422825855118783192793912109015165185515789512562843255359657575838037389793309912307042212560223305954136566156669075088464752794139154986716101885147518954842032652203684544125957020896612997985743730898417993043646622758475151415377812141276106596886242110102116499671197951852659121388970823273723471554288693438834436721365536016070140755052574329386583611508389830877696466138214279128004812990572567917425940111695614570933753414345614058168085435013097329635213641871206803672631393491042750242019954723489553535006669685394279580651506068698575800928272514907039741279891013159460204831975912309950245822268093895259240594049913490673096948400436265872713498014690206827534953902103790073186749139008284637994334953819697471304259628858869086792118245810197466815216056518361837327279902025665271954210269129866379096556331440478674893305388756256462894054164709417014307178196029503096126875011253327348810638087437584772703407802981646611017676166379993789955428584001296405919192599772454981849785143115852748357625355476699799475417216611327916421001240045369906193120081031505281292896242835955522841376551056015141295542690999195983352033786923202669353371745286077747907894888151969861960720958456301044644639260383651145418927105108304598624648044582530741151244809390497207519400617920673619535416313305614144782070699275236631935790447050895752090498022588780998004615724767455553660194375025914625938696505008788011984937019570683524117908034294809603766849764499891363520303110082008125851386088373466346024860076312920124779442692991256704682282698904174675212974377478170097811801224522498462122202206790290292713190764618658556532780969725640747036200073602638517004734108724318450890336135737461132040053486756618562163035954821271337550772402791936764447246327139607402182310114212976568707291362864632657718739685027064510122208276108062284347864857316559530467434499424736895701323720367023999476260268522711810166956797966772838577081940121889791221581562538463888198148841754066255029639475075384318302396116983177664766380672251363712792779279256561915779064025387311021829113179060697530347462801493207089475113671694152715425194314051017037351121733075287545140381174288000742376176782155796295097537119172564255255373232870826440798902920126035707326830715026533873960964005561398262947866575197639708091623678742887857457905995720739775829553804655881698427962670629669528084572054146233502219483625559496945260211471895342709997540937938111621044363785261572754993326635166420987326326045210832194833378377547939348630819213992782776367961456036955174714707595724096615207755631254164436237750597260543926440280461132590571988219556394755645209327954175551858698394585129248981260619469032788801439044691925632787584860080085606573619307869168976540010425972589520399122839010522842926106017599274403128394559714836966148844977588504020943848624305309341438527592643930858781306829296662212571360740781045056778829537055879142465930444728286570687047736998511597446147938961136721403676787091033817481010262108584199409410257330442817728028732494137419996441067559021455166582371438255492664829716114456608979612128254846998126584060318106135637814076943996937821335393387013708126569700162223607126431909298924608086316397556489084396631140839732544336620269787027043653863707469040389580927750315833183123555937005578214320795467375984172587277547897764006029596483208957030491301304440282121120809761081437081483275797035484609962774378604901503113037470437057685198236554062725705127875376681608710058294808116595200524599050902300342211976291449243742570238562599241888885981425503890408890055484157223916051363207202803483983189529779023346831693385988973650421393041172745531894779462270013608738641818086213188843445023968753510626178127668524915007241392317137854096991107342931028626849327336358098124614407035806039317749858815415445213797644855162998852999283600029439609169084418413136120643672428300602008851528279484507123711291846818275975568542111939245750599365090024099271405691638332199955791469049584194263432581830558224239151487534441001888414704699869056763054166936666001561408095287611355736449631930746009550670164622931434040655121704156648165767362073636606629444184622033899267617139237656923433361849750838985890251639864677073036148439487384891388667997671340563849788724726774005572624591911149162238366064083354614461010833081696213044404621614467982021800617888758710120059134535844201573865865378874619988368179449651511678123333645685262481293071237552742760774415823365709677476315035216918487480133620478572316984613229535490806418632262042402203814098225799974433112307628361950039885252838236821435203965069617853262565975602361494309987368831115185378210055955767427623242909499630644179646785403392589791316325778721553058322064521284136093300414398855520803690150982422928953506969538015346239453971579718553939726718913800094679744974340785040526873195724081686315508978479468994348535203676875656537600229752953375836429548900871395039230413623397214487163973494870526647271007395281841038096896662862040871471326882728236018178682987630000212238073978099132268831083721364306902454829122739372811888607944279107772012734107980615411343326063763108797137762689531826142971170963478895347378164934818807761989332418323859162537913094684751727873465730805700817885015268571254777113865434270856359072607633423096807766397973053206414842956758235098715060562356230389471165427886118070780491490284337715772388245451614105260336807983887922671641100815069235646349513334544668610153702508604724345543135922850479103900428096253199978199005643462645450159176201377587072851169005093445259257823759565270809533504745522286317663641776009317384418856068131578100236938714731537641688496006630497008270004073544145453320705834601396868859555929891473658212075724547349152079524808089471877714325529578461529019022407276003191502660387544851342733108309618420484138432288306042681615168675424491217963643301205251827440463373215940019227097590983514497370756171599107832068391173940328910618772643319235722144340663727603314818729864102353030897297423550684675504221146160235770065088184449655643056496569176142750717270977076310386120676741467326691591963302492141084514583723660082957870521662798988195128230110152217001837617833871438395608760740375139306284784461031019145624709505621368629984783769040710100538619954009789793567378052989952856179891131280986949570655587904430565940311555822674051812640919656138552464108152372224418195262225928002726478049846911592528991286595581408278787664677776391216807856640941190332198306859309715025679294037680047381435688215659488103369597980028946606306658836697475016087374002450188868175208585135586524011331661311226212049587772550729619693688731127975365917097359589850201637003162860569752052463254210216608692318067435218956540517710031374597445275818931835735529889523832603236853687314490584569637719287645470746645873109996410080919535633310964815838762633035876689383840104492284488736575762406462336319227500095764907082216014007067247779112095865786158721865890293558732963323130764883765052900248891633545687012737478084074594312034418512013018187634181437124445176355866440990032546659397935617324032368215653995274706248494340208572374200841438857501429587786221453279674969266661061110666575074593686856055216970439987958045970948325123209530163581026066308292144727884716169534402614732780950786325853240378046762172759853725647076471351056204219965852941936065438037789667824578462289465141024149098375089059530339014966468679456983519149083888750508807987006356643677028565137954665749032998718007457555941843050054104431776061872829378192182725332157663414745135374698542729789768541904090852199913720683969392247942807545726858556567020790566822336690905820345919731267943615603736910567602039539440583386130514339868666171002233908828123845680393538163184993972283592708562403735185986438149545835465794035879691736089264526859855910213121405655475743519878360835293735144855703282954491518863168983376615284814842125926430348253676242896400523998114795695946418548863337015083857453337768562120189244580291032453680815331091046562644844911470595666844071020352144204274106365754823815541186478869332070987501772664078819682540429147359516946337715999348770308399824796413621997486319038765521705706952480058486800882532949425956316145409407118457643636814749671108076105077798103820637119696174239254745264288763024594476021911141346971431553335742264865177934366624192828991771345205047353168383592010425082426785873426601478711532107571905212123159076686317524277196800023263175290995819859518027549529897025028159642237884461526566026629717165780953497693455670737612406064790208817110275813538083238364858983710324130200396400566367327271416732870926523281001657436699684303354326721482536789760126509079572726691062265849666358009983643150407373525864958193572977383861700210675323860902470050179097765817344714341780427413053251980059417653189265155445057355842172439925183515911765460552307221838611440961455308024708150306837096651786624929684944589061075312384345991842175804150529258973334499290453225822097073304964206201810142246190811127075015448905458749630894046282565887867841970346420976440657347657449127790512435286168426916205550736656142866318420567085205340728460101302013541322072410463265890065681036215984446355126940901017509068633737016314653395029365925912701682143227131967436041943739178177922718937164874717153442994913577928397326499319769548872768874243164146923394760803914087060062905320180511261803256838695098225364838422083272139282648009463809499641747600033979364453979367181746029614721742196850224856072065787191617981344779336774585476134060852839244870904463539024089771528043995729505048016185388896391267588186328664032069534096943792797494738684567769271378999584629261719125485534384930668408877012431983577835807113545507916252281699950227367501030722050851801009733946296514710109525160646580018299071234696476789134981582404558425219851484074311974569394732895840256209649745339182619956967183175666861879052206776579314829422621520372871862698091776626855724506735246528685686334003979219325386241684780459630947247287187218690894123955088615299783978737451529447526060733275073542719434359030959990510550624633161415411519223229370766195313355680505248564327885203480747088719527286392161562126107614852520019933539063869640526774857753673153295879751314388000363842797599157100731376328966495332839246993871791379799720536757889190653458988105069184952385302598057057918933827010245331932259864476474873981081792949395768582783875001271688773140860604130021245224460592367378563044104611704453722013526247966956141351277477810692311396370301414770759855151367730732797262345129059124583464267219340743199369984817021617058224486069949062027325007329650301064282678771932491355903398187295480178760591467150743573078447939192450766649992349062881074031478551157637471603970077677942250944740718214454517442851100946328340357081625555121196858708690156548038581368692795925597601430101464764325508909147839948589152708348299886495200764290400030823078772909458978247419129250983399972363186543043275561409021444524919786315526130660595653676696504445058947033638291723024978861664870326139329720487823409898867886800731753543700365931030052199240535833900631160344511873274476907484188840032845330301948303585286550242449362594508155030006587712080538934757142160677151125704541510795989481975186472103095812448789454582720209533487866129189212396148684991325734297784685029429092670608922730061339083284939700508902337985845529146407261223173963782442064492920097684861306725957679337423345837745712780723893836132914286736536315816820305368661027296100967168667336630874072939524074042395474109270863829875065019547712686895012810536622430859567475261629562714267663627570732182279795625278254185889633159902912322381826980346193000089664545882555291796137011666734212351242778996449995586319696584987765865106825986577097943227113876412064208969476621445293533862331761342911530119710895412124907816577879341829153044842755192529419620453648507064577448829313730161617713143552117174632350330284637890964416672565027706252947373524110861991856062439977984183023467513350426484308411272483956988843030035335559968771744042310710083531124791781427864342432920637934238934304063753915409595964597297144128583764092281958542539327455015299233880154766706583380874196804662951497982965820984306020775036684133396298603070117386536254935260043652473853519905130765069364856538476471146248403482548007589320493295816847377804632063229334391933801075240515314094961382658246073284063533430799159982914808002374547119412015995040660394082281148740554380285588696609416567675500897721095853081338248705259764840546831587521996241492696841561711489864573306183739816416827413441212074580698268643398597531858638114702347205126300225442408667283955369828806958058628980968536920922085682521550143172476697405467091842892626172911660076968898915103359309544172182094680682573596410943537834158045603592154831226122382661893859965590503167067562009585259382193100763714325875448420760472559137682441758904649581066678889938381349133928537650725317491482751603287822462845136974591609123246103863810299293907017431510760753558394153015221932759215028158254778551293900565631837344833905621151880629355788399247840609781632772214048762753947257956415814226589525942531053689438211476183141265736338486730907081623942438776516024607874060762295563839694616624743147379665563277645514400005575739503063352798944871366577620651376112557494522096705958950187354648963795728925649021220327325534959596593310376050007056632204835357009382562149505965363298823166706068052544458502249762433751563906320086341909762937383657062350689332826372748670366041411948034201392585379087660487369235822005243063379713007291744797624639592560655904617666817670368998773076547385466470771782421161382300104152345021097349571663535969024665470615740458619428519937738505350674081291094292141220716716821377536727912908955384793746554815418281325476858857688383534073435275363933024934558183814633180082585497949284981452848563282766963358111969293887302714004868117209325739044735392322351149210404341056951774672360554040276601208743783918400845394518776429760481495628118594611159492420112229208326640094299754430067934441811635432543223798562463778751914344779659019118070428252861254661756534015285318078510519094624204280430956095986649584295599797472448520911913196726440986092775278686912710305448261997027993256995384437886712811406784146997053222984746533496387523138637703463846753406804986183798431939627716144764769862648400090794579669965141931618669706091522800332608319384229171195523184656874942691988641901327443909990951044376228748934266956408090203084433625671057895670543901562696325918911456626769493791118380831731154425077049696453084444917268460927847623247875212487635086795485871604939028370826602134979471627642173003767104951230063713321055406681807146953099166009311694557395771611706798343952863332081188927548661279313512068037592471329858179778140883073881007239272814187341534929595986901892982867460345334048850655159139723663178776689138914668127808172216113210750025950902638058377783096284626575324678238417962023150487465872024149758993949593367462898069221167871770480281870483753966145263988611117807522591504076054871654156683058195222503343449144284781465507296949564467692190918497871613642371180213660540323947138193694343743664001623035719401508163115521056520206168590929105194343926217877094433017522661415587338484338072602172137926015393953075267113198904024247154122992158104210014859565903228823603868088845973064071266024846400480809450421449206620927747369850801304525296237739667453385551633874529486959095978395242871293447420278857320747965238832575848413315975693381314244631885447439602516467336878548347055358171305734019676773049317314285388802585643074749426995896662729478064520650464168700655477976949275401052917535925640022258388954820096107529402069111848603137711175647035869297124061027406807100555919711279426348736963035899074081207042099181764055331328611557889221347814466415630241899432006253154975912569339367506713984859505048012959759073465601287280794658511227653510374102317802309524178411874538171606781761442462408826201641847074560486622041962238541145978150025202310872635740955840141849137747095727611218757926018195473258937784075569670879874372359736959858805087536906124815666145041796465367061630412565918456458109382202488950581981943375179493311214091392298380018909202630284753679786151639418082759230164248913242510048229085559580156164313504814529382255971596917861753010461731428788868044636962927126261627133538324179597190841015262953430242933511872999592358500853919099130648979437998961328308558611019994269302263622101360148551818861853097392811103584782685814057352593641643402525152770510657796829419275789501212937253322955533450183624009677338470534505640193093825559936696787486491754391970309533686525349205806803898403732675669943355055400159740877895994086592678695377768379005842359504421617751446289353125883220777880342046319343385288445263853330314157499098693113482479487467894748093247486020010077829326517391068500516302613016855578144473504538559897125062477487229559557107022806304158881411123684499464032290501947701763176722673074966787004539923929109141872927887103715401946470607403809490048221718889950929428812812158953025855239999242568138407318964703444390789945036610350408171641400544504341569377595222440195488479090855744437302218441046131650514169059276254328445329247658213613593580051466837378438544349614970017214529801154269765729602003010911079174874684352985801904352799419358254725415033777838894432008477307788598650228109642317929016872226017058050116647044418311751033496119075649084254937736202637441414764303559632554614762304904661412199188544225877592191783877276689433496291470165698273260829529279198517480728602781111246460265970201506776264219702281685372242752480564595843503440283828793119427249785601200510157151988964062478724354689212751957220012984070934004193800100135286788449897598634280211987051104874759749562268776348137349532382849016488127911045671299509443368342670032605436129046925029850821315333648619873627674098980333709310198223082688035938095293762653525384693109718561712114997832855066396557285874889167357359891332682072199742165446569113543882269901364480381889291332734275037389442593763714743506181605043412129449686893062219646331620513377932504543627814825903911737580746152188727227167633855328066730900152546660615761536404110876178999601781225339265717739798628862502368145422609802431269478810680962138784012229554585542038463905747651342441857460693749132624842674310344834030543803607038727317337542506839199135793010664814891829160437444240188772431153378114074088173410044956701429913843280485560348356967898093612113611246779500376169318215754717082864394289472284596065376854763592126825692734182368684451903316306752760286603622094536805683594552979682492473785501978728580131552553062166177453989204885681638278348583211510893260466235107384567420656061910104288067233820400165760441514223496967454970034850173711533939772424326791794115311499973586261403230724947122752622256168374668526630114030495807547686889670990004294573950087735691364611969110141294424880652575946997665338045533412003061194901379795264174750439456842736141541247820309474062719972592184487122410689002224480754244516447819038972757663918410668002503688295485891783032314831653475705694445597071394925325978228347202687542723458801336291470748516024298169395787579270088875466955646275910155348744955476459337286159785480656954776083993423035869877279535588457926021500475124219532472686768562512460261883705952708201983551391852165344806649678116216037845131591244542432570317141252469455737143614493722573686225124562407523265736042652768687158813133964064641529356838409916341934761167465645220072377787804095536052659211432793566025116121021055660664306231204316147612184209639103229212105460117072566279257351192423165141961644172482003688907556525354817144368076071985188311816906173727405258858916589321070682476395657994639526571557510211952489754857984717346831707986383721167186334082225934710968271390007881932217318450723417166995548135899472246122309353199865270990012388852769922791437234448092371273916995606425582178769897843105265894851305869090546524235116863435636093953983904600429364123649123251492644431966041684015232830879899997417108709786729573281713493523450062895110196458085034231825172973133375015620539180627722302340230674887710022529738504997786795587848090444197250709047293480875957289314386991541972273134987170010355283179408666170790520594591756426885762956465294147052116386063504303374988390510147548137414069904925101052660146861003702029543098853070070922332615732381614146116909064172020159370098214962405539730892495073618704416910475088810751626164365405057888370377346361177482383533599605224903070197001506491869718700917956828786995409237725221193448277273985116598583803348052480754045518459862210225446787782176808832910866141887617433571009779650986987215094681848570387592070752331332326604888703555360066321032989951907744978038702211580533512746080095366041113769707880304421297190608145829774258983213668513190700623348097153096706250787329927532835861481657433802055147058601979624641952029969088512528470840148796472772383404938673273809372116608383975966798238385464239140617649106060436838235842000517872314409779849520426418828388669810503167459490489653866249811974070543865995754408981550283548810424362407170921871873197830321481467376713186728602979155889988233499603834359484932623061531412139125075374413162609451334376135039069125806820898447475436713083106619733103965621917660794158522343277034077208788167423861953545058993911578025737662160002203858910442457493144957745665860701249110393456263105665818857607327784048419453756051984069517804254800457637291903368126291717167027502500704838811664310023503808396598449638520018048722757364736612752238266978960237167340031361590713385520665408041708448354101765325871875824416597917784867919716498308400501974355237576992801613890960477418599107253856047819511501251429507907508246871538087108890276311790558866707788359445894791279868504914311113445518442457797381913120119225278765137018430857245630461068209786192914497974625261744348485343614450901922062065224774606741933402864173889885055508641600814728150251491110812842433750651659926125227499230242031383611722610216898331664294979367303818033055360397704861339734793025155304132591622843992126658129025181574678057056497124021625608662992753423999312637813706167650991987244714036724943239832100164581516550948381632141463883246819758231606660037466215285079093360989329247524036242738058467799970308806383384222833762290944135038554803433252538664822703604416235656669437122156886402800657191104171720606998318436858568097834310688539883927506676062796506762486597568599217103691906845330284388566801062553822093628923173418784721700666812275042982529038093754792611562818596362081871462352359545928169939458594697978721737330791882591694000838677461719581789275176851012378457094768823342223547384280166316022678042614660884369834553183361459708568986516014689330400130210183274282714483301165249610586678320791653731282611795820826209623069672929645480128718062269817804392219666466936319479205983456066726835294893990227411708146761239920477195248949115877667305296731689434523301204112444708554889939729092625311256010184234842358368283392535596863408139851661729335335274719035744132618790963717075959425836461592124116852400332519640520709640657064053336071782690329393876112866106150576925682493869714017063330379073104837534813755275080449593110547920739928592944984557904223516031511492827934450235544491514664058500160547561665775285355483251964115163469272132645346218678186795061831302904258785779676232489602407257362593697007641600734809174872428670975997910465041918585647530710958288981161726802942558028747117734168790390296248380526142454328042662118364316056544461151817430052398536875046532099301424662755207764266728709679083176189459287217215365905172884629110857425723426095053148707941638497975987271328971189811178554935206666096683595577599935907391814932030537942305105326703283884415445590959171301072252295666137679446029385091130794881312597134786728093545124774662569132316983036682180143921084073111165893351549514266245472844018363281409550968467687817426982250864996945245996680414042411032462620736797734812540289425748919712552195990562271434283928953326575430150852223846364736392253515063896622811331443408501856366951668188786378940745044726037898061467349660315588455457643378742768264375167053377997126541330577621145589730175754934820749743670759237300049736251932544332713138144181671131369343414123657228074215171316555956056743217468043843171273518327450209067841831520343329546076067139905934537651824572500381945718463494047770917534815914341930537455967291928669025608481099141855171266163722909007304546687873871660018851330649500599934333987077309681841146681315771116578792958213650293321448400565765605125623859324796789635820990899219291673545746571873227767199453402956731084580480296640676254184415103594012364616511303559864901608829534597082157813210844590928361066713858328002511288056589572229262888542978687354746922161677264158868184534328122159021135695987822498233253074878811818159804772784200141335786062673887873490689820794262809753628636472859437752719694293689164440518366821231008109892296131256592144581124519971896136395242155265649881597111845496575003896096972703182655867708599172245118705846904865243391674936337974122678599970581186984210366145898164740563465258663264219065583705675848618355558045410900855320408842529008688930825078680333928275333838005231078170964051197475543558057670675095088905302226609393123520063319139484048243718911126714816336423578941961969599862448746649714726475334367864751298051348911123799609135182442712891956956885076892371224710638357094751268345478504470806491839496522355023835173220220860208657753438667384887905111645867172937654821035984036680294321802647545152851735647197741259021569574762663091012864977614858662805259150830377906767949221410281132624541679476353806455435987515761258756849591832447104752310860619948506196090603136039423721041921427177174064248746183599271186094852425558110382929324732068067515022420761436199892119489766402953898175708189448810855981509639858562993822099360269358313409646526615611859483804200375496276642347383159375341581667622691751509687938068578018987630478620016103080078286510278938954691418528689029740677029216003566678765565893063440230440781583158780051240598209065393896471974829359697264612307041845434829731162622150327100007034840385258395060933553970320363765056784455802900508027988808168403590353421633998525051512429268174574894964178038232828955247689573569532524245754237163685099410071056743429425134896846247721328409112177449747811151838182219018991589733235190678132332275595762486981283108834805213093142149867710573505512556078688584466229427918301622855490060916930472427330758437213409321890256032768554985366699478656680463861345599549064724341253569810901736881326459884580576551046021851512558918728830641915444934199247038516529962261799546885720727364171954495904950054867950068939541189650410476752580157771173349814831991697460489014515580504980726033999988459896154504778686015774864565175027706858518451120243566851355427498454403425109325743992836429768104828161155484769555246518312417688366411496977049220182722608784648804708114583084625704046014583420554033153328745240127949177069737701335536268016653279056619296387757163113502458019347719391004414153707757669859212638419701974722288719949017169053148842362352221355973555836908313836085025888922531775708952591886414512938694754858921791696333412618702006340445644221183287479788813203909300124535801959103974351951308314139221308917978035310001166324852339759617998030360810672768858699369089917657934923982126768504561640376886734901472067775129104384179177905837108605578885544455643740255077176350553053083536510983210534975211639307884587870819039199156151576400983503972068099259723987236673064769851213004433544013651504215468630206084968933067297227678042039117308043682975890905481046005823937326422887591608595971887343396834480121819308314538156263046557001105974352614492007859277167415726723911837079989862113084085308680437817691677006960463523732420925536913922325485160496906508548363791629857071405313892057937074706912464219217380306744147578546769698970608577911875035045426800462045054010958737131255930102111121867898295363383896472471982439256530996080969298929591927926856016772196327906312611429565754575134016806335086865077566429969774828442174422663213039825312082632436587306003342674213019123189616072049783014730691675321058943617716420976871517293275042164736508103559775205258804792770489675309107972928218769801926186498935860053804461589865848783295565544706715167383793610406526717883518642604549865227544465782211765753857401424782773319535718528867807771865103012891850002523273999731288665192505474038635730123533138685427845038146516396266823387533647177830394957607735738704734836256530963268794449363521621312073361522790542353471261497802682185469802529516953857169459413476315506974845582293398594551156556268959592266793356109151565309819335236918820166259637604257190869866336634072524410862191895656986400584525958302080473838734090360904271479825325009736647660225200273019335329569078695894272604253891647001542302825652762273898020877436517161597801585961187290922906419364919621955296009549351240985455439831129267718034183959891418167982375306631475581520995947885709854830702962590545322332419818253407176541712777564592956045339458744191072156846751096207827183247104660416278012320785077355430112052853672397374816967805278861438571616330606184521383871615832853154451395478959042359356887574975016774459383796404562944571370550147438417611614870662154304954381289669640848440950344829449180689505505882663666067842267495269329538710433254998282244301194109625678834313696246592334280029383951806922093458740918655433296223579870276574817076190427414319210136163430610893096930906067750275121130952372486753369890621866714423187409599676436649267625779801257209099144344188152487094071396711751065963117835399995137399679333406438236388664165592828650182000475971828048097740536649132311182758937379903062797881820608438286024836166942118339638136619028155692066904332454201830263751786512249943232150037924565189570496308854789827751325956379163137368682859419097212559091676195368282303138236657134222681057092525329300273591803983782741257609105133816456540056964463837605585158264342430908008463735416345811566738740545917249346115002503677853176191018274112092779053277574841665928916415079627162900818541601720381547342206698379342039785703070919446945052500535240401912355562185295435510113587228303127250389868975561426739029344813218354657986201774459334248218137219989483160623471023114721543711147643863721646040679674311607767487758348121092182783894174735290894878750063863223785172935903461870463504881150714943785646696087877289115263855295636709056972496427402022638206116825147907684611947928265747006836711714766342674389587930861576465602884775757284572534455735321282779910606315654520615149025008785213448504804040453423665899947930163901524338973860115949540967316505552437369165001003471355479095448914836381306700729682836451044784521097545229082504464699804668995356138489669888068219703157084406218965600698811304960417589542609719512046381323202907095702028111175185157534864287062461404148816209771906422627624141112100299301209926875430205485141293412847046719316722178182012450476389945235539751250881582024762752486994340441524300677648499301505545071931839876975170959556366973330978442795830097514427686868109039072633521093942030317462999595103678477614940158183862202381133383103540906970634014685620153286698318293752211581764141804388433085544327889850784322086035859079124923237499974889254145297491526605381296291672874183441627569344460873467014693636815992577414146073309661642331526662633358906393893060035450376011061381046410962970629638044555197202650091487301856744143824134284732170943970523130057082829992984527241850443490810948584716157224794775270457003641165278194829999565759878775383801101759181772705363777198471803772252138680268980079264592501052356317007752774943761961187224903030896045414589616745782588852497877449396443370166250302479345838303168332496902509029881538628275995725829119202541518521170433441008396445547026542269372131671811154109791960876905415596342374777398506146646150459931560528202965268057418572950722152942164398310299190331402828578678220334461150163080043398466191046498257885640286282884002475478104839279953893087332857864836863284922135874543206552434039276298253390928301650313976247862100257542976394576624037174796710793350375173720462261512136375865388406769655719236334193037377308050311913561782792247693525002922768014778619440705060301341025565925546151911400417761212808688363764849227033808463294099332623844691200300419834289426630432756879351624052238649716556200940475397377288333721556572511950413588764334184813074455852587168910482585951622706073637590719921333226761270836379446156375752184232400022520710893568936627416281469879449037112410690655187548660449859456800640303063235224980759670702425340648329311496753063235420030759633606109877811017386017043258270909191115467879696004800537140210256031772447591526908510429993701241425965769364048235175543039857053866304741493696762857629199024914462042876500748759835665254028427920491812849297636222887482855114439528419716350847281891783544708214105010621391646662379739563065967266625822684071402488292934986466556001845444023233679631765559539373004714598170709130022816898301026913344686571289908476456863913719098712495450633471520304168709688572763680523792651161795590283419313741980586569795068427419869765261439964595592240704088604288401539995027109807709682280725485622070701694385852073739839723752569658622848536120135231425549666330818408206697932117386945154257219374775688124917378885943490398440098064755321056479172538915637273746762382053449085302328173738326820557418729619447432155289556075231864198533320096923113264353630896395937126231039751970089618878275474036511284420089221256811391389835219368075620560727487927264216627346561472634914721070294698647411079295836254532463474529253142785695343426010371326843698140500982560483255334700531158754553072416955485077467400928673292358554743869058926229717418981369315692568272185247896472695585960319647829269126888569059049793940419930077710026711689165224322500178065613654884670261608396780010196115035110949639653093663828701624220247521751745761629459437931430596469157664026015089438112365556986046420033242367919642735258144821130485971402041754719710016118072356971417195979254763395163633674353817323854367935737592138581593671933089305415901909516194650795723644540285437654057284474933173320728583742029158662129196471859681942627609228398680010839375410875569974210882786078377852794778228624393637963743655556541464982129141335827303224639653499200272303924459428043066078273510042580046620949138330248072386045894515315581104845904968590177748039864600905361955465080766326506838251359534105154024856831779004429267982788655341168100903994214130827160275575440815543732790835655942694947123371743899384723904852237493559936653528836483750453476109688816684586593995290248596653959006427077636619974388195683448785954739132432679058126961489299641215226865136243823619458248318597291765338784150335093780683222755143249680277238559544326853476732013305445315088411918712826284526547626993460166028069142260937199440241357661813201588929172320430135148097028459303577156590373401245243798072049571271856585349227378099979280198452432676561995410178711783351729652379749934184856409123486155227595731473516063316498022275818729188206587916428060913919930398204402390138076009805974599006065660109177682461482702789649550870873848864141638499883531939307784406744837236502498414175108316465781236025441608835460077720819254256315370875685642546926516846100082661298899292795231784108876540749115582408660639341641219565133614494222041305175427206174746147211350614236961872287023370737546383205653244222281162552664227304681476770979012264830514502980973334713753604822077785571761221872386830541801896246277223305067629699376433011597236797790372580537207801705554279552430592594785581291805717455783529834822939544905069519262571746888118821879333040329494917009135951896076540045465648034508227269484867045717109069995664087033214008839271897342470927247217945583616621679910869198747415400222135872427590417912202048427469074988997903808611945401788038948785087609811353921902957978334192910775346601858209039610230852745667901777593487851374503719458297222135979783951652639412628504400499812475742138640899850849523930481696237675233634020001248677250973380364340370343737646744097736462622356948355290816946613183039631836434555072575478945855967217371249522537558302776724316702014482586647434501015372537859310253081592737984341594744797168287443636894213127632999873870549186851377015729417042197421073723120431865750865539549904553492670104953601665096684623190691195437140392018980529128649160898688393145838598274490053520707816920953773109417260258144447036049044454190931776293760043196015809557767899283263410957320632199910894416162572513620740928577848516752179461310742792079467561784954965572676083642368241175091195320578501418657149551758262627379162831440954995503257040550583276287552464109745737054131525785884613896827276234301172507667385542516590606083132632884794009781443719517491368580485992217476380118134995677350614612536813212175845764738791886415281242793888954157282895548931470285388636649729860121015233008680437792995030427383958981234835188177851345912007118093915196648585411659903440729423245768100924970025617201586428137089805937377818410765991003768170307816125621069575632564262218845222165765970572333149958048577780672271951725325861874847325069072707922079381935592764356710524446610847999347221908720136537057629047716717986745198128426688274801454022555926929580621609930394048401726206046520121496381166856253135536121420095292353898689055391697943911518707924731351674711062761761327628176287062091371986553452098045594311834835176647746996578620247971752528162306335430475074013093339015042910360540276842459043191950264681478239654715895490840458413805566891097191906680294804535695497896948354325196130840535147004733939328533481414020506011927301150994830904536068838463552414277129950774148299234786867086012411126433659534878893826545923505020820872891770004929664542544855997278865683455097449001762174871157856622546316930381549977310906514381620059107112194592739039426238520780017586795987393916000729308654127524079594523373393761402899317510730572108857764284168415750750382907036334353909963042854629304749076825525194721279541177956691497702021332029862352910703876679918341383188086717787308319169807292995635732561546852438632064941881494834065378344282937271370270822179110475015284105772346222021091276153164799274299709909581049175792558342249491861009336712264628775215801662469889895282023611910031020000621008352214499883290672364598353265412378487818417061157572906974781813104706385189742982454648145310691416264684180864323709148822206826042798580799365669788435340683743881152390463741870172534711730046114006204873027595862168441341528349225971072810892114227413616595539610972464692981877230840465984129400110545249238655542653787700417186280106614112168286137183145129457193056483384835022388709142623421322978836938855749541181890684659736790442992981746039834302923032874954124525914085455452841355836586409588131376665925155627455957490551505207260558267617203909557861149005147014784608452194138482163424130860601193923670887104362220120661075624143854725991377117674645372526652555599641839917420221177566843867391532440085591773835261970511293476295035448711224564962233050898357975126461600486914191364343212317048981375391569667471118958465207424622372546549333494162613605134290866223159074884984893469181250139857143284167711689923855467883371013365915116784976164786618893340302614954841385451990114113846025944009342923252081512939761997155774638969842706350922796337269916086207801346585961373346717256292007108384580494223806365478893176057523523034703590691766205619581766270429830076670217255042266142295748183699218104424731756114461004317007583481103298489670781494090116957771462356249953027843531827531203693845924591356083925597949342408822426965295187950183401283480382587175637435451946690835475631131639620366262996184337626425323565414343621040432521342034421516499075960218300992734789348833728782155918828506770356179803519608288757910911606367092906362335786815402727801030499164846417578822371246618880757129328303755887513376164210854715413483217443107028882013927754312760960367774721000298741222843005838786731373629953311019846729067042010652037194082864245049996091505910518580482972293554585564877558418917294661685366865956664442482809523235569918166272897976789783430153837276752005176925065378341123060353110679276902900732043757057436826644214135500219396891615333316044961200670760116391943623572904514584743108920107978224709818564630908241159482261316830681609124138868137085145189614934884246561072625345310597527671429008918013733444555933199319553284556503363369844747111420219783702146925203634355527612769880610643745394653863171576999194842420650274893025387096247040281532220432096682254550633041052241764733162654206608368369598832682221237650545100961782155377344332633913781127199668048509169074194727329955269623721408064067847677458289718892170454698053088329606144741407903096484622318485666511543358359682251833007698498030935516018278131544111920344185624997882001386994411576923132441634563314168235733153720728975929185913428294034696532206557163339497690787403008839774821867650346182655150064031945092868222495602492007186322748711243985667364822816829567571026843244267091364244790698931681452448255693889341090142063425250853836491157233580963436272382661298396946440152018065339107116119827486633725450860608849555928031592484571508099102353116292443077392118787241671421806292434392714426440821374107290186032139455608367857973936173040480481332548955465346570602170665653555216347476455034153030426709892044569491863856184218532040463951402706021556186414658707093471533719216221739998721582112886327814084144929633396859376411072521891038781184635363612258556547169614518381776913375646944129899856720879371848066985344117747382482725182415595115490771334977205921221049141001169208049094213718508181869694116474392227786402528544059310471899857650854519601598123665428275345734733572905865279479228504359349392323278928098676717464074573379433701095107780715233731296937159267661386672455213564007161498095485827872991614335966969224548349705275709087187112215215907564898995045143853701866473838807294368969971135463238332736102374271950826245935451178236225154385684831166665732046481680876260438552068510988360055463335806375485374051264867270361446492444835800984327585938966881339304498351330938533090374914913184604196312038352897339781452104772519258483434878080786418916075876847787341636348004861937025575425665830282713161209315585435607810752729997374777256812447830097102664604967117916858296052817433350158995495074763846421972141968001215631217484544915972014913163690875953448550896462725295104685819221722361096017780375402030307123635777217465328589037541502291039905762751683193059048506916206197247241349069215768411484578750378576917194804512910422797895111533771395320901954416800251406698065329317543357153030053693547667610114625237158955777836327706624002166744011282152557837356600832274974923974330307418172811759196894208518674569800769095053851393112313375550834244328213444102519854597363703648355121489131421461276886378183666426643016700845121734513127773665228759556976412175500404400978226744292113942210893392716621703649465072412387082340054631851011695531034700363716238683237525864074647385891758713316999849105980174149622955658416627398227401258038731578778567420071170219292402169326820246666115483257024989758181908328428855289842436370069226539043726647719626129900724299007003103544381061638472232318262657475657886498088131247262987778253328081552133087985160894051926765276065964991078352599185150156309766859678950132024807586787864412476071425718362039522439790709574721865449546172240867159755672726796937288598053193556022610320401299782478792372539973994891722361043316772991991364583190645648707910678382806321388990052383920640908692378331650937371583745926059180578338516698084207604338413740021615548247301941786271171313992724157770450221932780533481669993629901818951312092684755488654735250905203201919346219628559966846982045830510915235783505918334302593710898228100279599992407058298213216518396720806662113656851811153244296586851534898006855504995276835795426494188791075173048471121598978462494971169067147328592203676689871854384655643251433955799165885669041807102417051170903846490072597355569924160438595477445999837284776661357188608655959809353868069114864477247991966764227508956019768258780353383675496380597926373038780777010955806104852478822532767680320526312424345204219546023932930817590582026786808499775531199870022663804589016026621936111077557707327088036496248675924849888732063562539936690781368202181044733059944392374852220971173226297880917731488044989792401703200431607828811400917317896278205305794239187090261263126831027044798183048450152792181034274181540374067804405812962437386140744130883780689460822638643920087211985791606956689589232342185040544728265873987217112213349692678189870875363740137005053477879034837720412994035258008997905431256035106420612652890787520020210076011697496133783379556291166195359664642974705661861940608776503908174342212482440561849274275963182412985231555314468811950563672299359976148311273793396487118504319158182128089475768780768149457840687863547322327866946241068585500466716813576804757713598313777915619097006579719619214733712033686419887416466870870038759367304896518558096403495576425878611200851800273447119027474553154137952844801121022215332304788017428842819675319342218930385683616259591466310915428113430279402851333228787738863137132882788086496113482017130294921356110749506115425265682480187257860904357727830899781031071934122778511883194584436695430617387979316640271657357088336490516032521363909478608655236720760657127997103672925728465337849741313970584922082932603188092273522420107067943706038469518897435311268521995630848760567048252672140366077132784202538762202859236813541279397836513493754975637085984718125024153668646343273360829851592485918830176916442208152257457474554425172768408342040861728872926727674816600534749938180428194124500016872003099687134500044217748377663204071837225789087478917599693276769542719321096800524872635066191845194324798450015511262651161330970802693701664719394506124323263510602664029841663422965718594813133722960674309611812367651297939782691780515596130517359737532846814069125610367160263771089604585743889836608891528556128446179874304694853402539246721554940801919262831547755594365503335008104241514169778431003038111499290240732871068412664173152506119980923453196233337767457121801370117695781641959045053199098834494899111887112559535600974772111841850947054340034250925412334242714015978529714406873369995656160456753438726656436632491267460688063336526554694878316412976316271872991047255337121410036727240480216349604104333201610801892012250155541658436980587333163355742866461429618602594163589690268415562057980670428805168703326171483526256289596505821281924646107947345047807442059858504803824508508558005330752258950983386612023073416523221196296307990032142495984140833001625131550570976813324245428729912344442124226129888338268898444253564217414006730321930928492304335442650844402466607045126446710840928790672335460864883983995370355789361142767233212981202502542214875503574680555269449031551863402852047117645783171693137327339891948381416195896103379780213915729725429756663334618821409265657097393305285931232224494802664195167334880723363083343330524042500185393902897821368171533859286127593524124925814539715531049762052858371101682507534166266582253707948390515963854454265772256386908167520656228865392392077867552922387912178832324115874688096041845526034588358745884893490576882557035965622339089501482270656714798733352031066800948017952711922643811595055960917101054733271597110887560222882865531776387839976463280625022868376643153220705447922352447732843868332619293224683174701377758457064140042148019291391435565652611166526943366479905583797810436899721605015670542543555614908750802594656215587262710247350449150115111812863860549667996145845736497160556685844068780963202766538804064380475156580487459743644045213438167320722471643385026047569629727401380430950009158491978533606106039224243097463650976011538006616478784199188382448632636839232043629167716460045423170425416346637927029123733883498244102448936284329090426691004211014332092120697493842556643450370303009210550080371409538244604231751212142064516561093719920964711927069120348932297618059324432822902742618693862054334353294955223206827018917958475349781661756366201756028361462505943797092866374433391159094896038309386006878101243937822120767942304699163542198296491271642704594595867347160513489683416355045251315545890244105459029190163211565756320931909892061625116693333823558442301508674412826211698794026428905778701350519060571088217936648824292558494829336198061873353075560079717397669463782961640584657116458081415371213361503670088282760681349881412073400428208305637954067290113216813168259527105577915075189814399650581402314203876972382311986232750328789739264030434203316652126007846908731386939003949177583593231058220062832702529302314494660921776955212692706098795694422918031892250547367254767944099229250989928546394500564372073937069287969599961816090711212488599139672369150746372825870527232169305539300050014537416509223689475338024453303603843679091608464929299154801841710806601809925930025660867482058416456687023839757988005663756685462505602864640447229597664517278918390162500285647327877875568850591740264684733548103501363288209274661311647897818891073171876542731375516958611562824011445464016559719635656620698983607918175132693386998856212072396304222560549285604687130826113279891581005230443121169774625052613837502332002392002561003399829883015858836397817525519146259320446346260857655020252271350979264691649410210611609122906394179394796256153685324765286545972959358939131099661025619839614420308441510599478830729924094952762121323423933999557980346587914863049011466736947734500701971819155110341061756815088326066312878965420653368920391755429020325971628726765860336043290774989482165876423574799362893282125692802950704763332141881767151128569814401243905524508502435637499202038325176830776305289743319234840192914606698157844730286237339906753770021399519374591688673352200173801666232868308738462372004648242652739155528410850292139341965401734875028874645302807945649356183319681291621413042654849582004024164854329971440091783436290861416460075510827113347233451772281271934114316098765049140746012626301345194096751507612569251854663922316419497390808061549137695617745592210536750707238701607213481133660448483365293018431935761526961558812463415006814607582328885410711156518317238594443149953975949886812092842454010551598229835272208374738070039354058144973516951840607504252838126693302036696473779408013527410199167422045894495747451285749640612940002387621299487267719307312330465528995994778012305890351817300785961864016003905353069023627235430988683777808460781321619583457848622273018526442906681892827906839487773664819115550829807279082480875561269191164584882451532404474292089857574130517322971324937818416676784311932054545718524923743111787463418891086800835283021342877564672353197673069225683509932290801444332739776019226679688560978358075646855739268967861439036450068295921410660493196232394288523630182337743512544980669267768854268642887029900572133027284434745371276871334357139021542062484308940864848676254597298907740276953534819278724509146086633583554695008060271828746077849530963501122860983081597138187925523323723833624567241586147782298224240392075280994286214917029531356800070277289923581959811235324912284937893519608473627044160868379557254563438483756452857409602346329856097659090864686125452465489475161318731092576689936079353288671957553556301001403788380720569966740355007560514314817039337638632335043101258621259348142624143769140269768067571829751581466258612022297736780249801589675453816100176522458128983759086547854407439840439071340926127366383121622942185237890071352792536986044926995773747991107769503869610400735960965990023412483000260955092754155130428415051370325098312442961401166378868012139147028806604073961597189870147352663415729417857825688329848333986066527421768761998579199523570126066074891527663033075399894635629769698487599871263816403118383443090645702495234092383789627512535966054480408457496596648623205178097437006165257119045483080283668702492211986999551547339199307883603504514878790756253840627687134227834720391988877485489311879864159299921695846845201581343666323226597820727182176917614726850146973176815220768220177013110751486877569515785686502453334432724300212889631616541327669926824722862816205342564430383901336123305499068833252344916439335213382279321019144631053509971309919094092857719469197925294231168660695888024941928467655494962255541599781270563450355333717016083535968153511345190270261376807798717272628876224308294142406950942941637266668651973857137579627900273700500297733156252536139561865281849203550744821731558709062992581515074891484166410432966724644255472788902040516245462281043265265384729218867384774464104400445121626931764514483009482719838137545124305647906042327704499467402292759499336805794518582682475328359740583680224440093531877233759369164224460274955988461021685971930779087764613413007846510470485373899214734446166796022417515311618003825291436538972997738279304840829098101391273374218782501734843813751683887726300018970436301691465287724276490029210514685302327986839162132802376202112240507959264835979431941588056927103463024143263297179495886681987099056411619272129530191498859202961158399399708902477187866551129328627577064622600397017337461174832442543339580975470728529157877556861760185520810062871570375017501123711481297077806708961170748258558503826806769378860226359513725066804858226047645555454570618609310363620269731908717175686964134964939670976696954266099190861669225333515605563421221069689697950153430189971044518805801759243688406735615360691106816924774030386616967898812994157987626366949261807092599727355890564293128276293134370957345216677914990744101668265808526013743556079698980366309708716943929965196015099244966564281947963277648392408389722309654430816879882310879794310317586474585843241357952177651863008168238040798456680926631323909855542017747132801708730410044810371735489405180995883965547525630580691102485070453403729121287078190613594226806274177365464874401006888738065180510550553047665760617289584742891612372218092171190967142787259643529874581419605785835225897781544011489587920655524397652178192950755030767430703338942253353294328442372885215621301221676960662645663685558996605483537842197345260533038610561933101927997913587810749198104540342346834376092170727757198503858068512880449014199055365965232711380475026109980142059566380809011150170742125053887030726442684258727969100560674473354999522146680882896428879360271295354823830185490527712669030909523715793111666936135797673271303995869265256454180194191684450507800424654058330512305044187488558864783683202866970880973012153128398621831547096186370833742512474533395268508601886623512064418419125141414445426288715390692441831187266108151775148251532110809110886729582608783764401598140169428433050581564330236375589414251565060409534528919522425534660282862331013966475579070657868208612011576053419180204034936302123749420063134110565356044270709400877791692580569967054584099828454917624694603773825073986918097761929967230033529938379221185396878627237106703915384599620183726741276906006376136978521541703308934259238771099999453148445699219180250187846361031941373635486517708371646709313590244701800762219539931164118964627388040011966121492633369795818354220468692046599636190717877282289595959292304249355863811291190870543968274677498511152997851380680932702940705461389716933483849671250663953536969867020435424173706063518810803272427007653964817629188192835533905149248872396652275649995868974925162006225589278821362843034665677166989924446680196167025549423427556439883248397264448202770436112122270145659505859869749891095571524896394930179394363362519322256429886956461722944482031736844832951123968521169937612705950637912032402808285390003192552830128553207985201114566054006626513990525019358457266154646384073570448290164777854921686056831022057682029635753950740702595710151698823671654172063495339074149566335264560106797288141490418124698371025575211572983084903481458701297612622223918167922293412779175827758863416369149199764250275172572926088747085235756424014563190588997228195878838594829350049897112369970224492348822116302068109159335899025824883707329343381498984887057018889585927648202725248240497970599497000217494891343654763219285081242069354559982682167802099214549896900592556685327377405038642221817828770615243048374695631720934246812654447937419707686821484712242027815524065664199734916845198503993298147573188315267781187186912808799069348347277605874364855530928961487063047554767189079050028177453607461126904250147408587177438409373286646119971743533445904660021564078658770003613410396412276775982130529258962737588931530405558748266877283651703317502615877945789765089453640206845047044943248115442372292613251821129256521796242051149360611619305800081523385405634792360456839376975687830659050200132690931665708783763400801073669879208568408874462450190073333913253041729020048353571171158726425032374702357470976588572085122281065546094574690281753128120227663289607326895684744432554238588024323674656281208168788840536178252044024138074478250606033541547787932085911666803310976532364940600450818614104221119025870807024282228713846203335055436856449881245035714639556877579303355579256005457025892597443167857108534745676130498433029884890604317269872142924518855722669045995697623347829600586991317489395895771977832355070895576678711357008758859459229301512391518727384891541369606588050487053274183258519467275408800528813005952457647513780432455919462520625279126066753394461675446093136677127633427497677676801399924443014788339708779782749648712617819644758738230510570181977115537474091073827604619603719186040961539997845692399448504406643870991428243262143735781412159133092315973181918772193723394660934130544049253437266433285584280980470440778066668254422176806845793039400284915410123173337217133805319366476226770184297292789892922501618180609978030470069734362492764423322820520311151648681550191728560951942924185412741121725383251563355165335979777895636185895516343469876128694703176262552608917366227228620943147955098181018885534768405552998001053748864908887025467755346430855606167760732131129530065343461980600855408765414455769044918799606659197824149509910219359226542722403491829375645582551915852840491058815309655294562241641592062051505280219810804766587835832702440907591209324071867811092006841178528020815893422790072289976296452051531248731092946766384084641343143231294871347072622137626583418292905296775159451607167958863736750146308169786050332590295423120640380345587223289398030355764956189693566998216735343918360510362602042539467903273767814292707591842144058504368463291704717501251410642257935618297118215732952452365976178910292946061890410370716689142330146181948584152626165496343895339075354805935887409940522214747630861277580593114012945089105541087784080956228569519954937698527662994277284815254976128502402472415013510068382673411025239115482541115168561463145365625788615272618965587658733509094155862871102570466385682764100765635924118009994718346723482114180788118388265549663497299469264193867644258453961545470579627207371380989219177969929021207088762089963758415997377039971695204589747888800195384945494224440098559041278227047991088678097434681144676409746690145710067642260420272119742119936647526947675576928523776640584295818827012594113377112199327327332598546519204060274073579077791030755024235995476275563103489288766945890415945190967621807266355430462735965079879088273523949229883370791556366152930410169185372146058543228778902665290743110260230905126365527699106765185471421971988706622052178535774087063155654413018938761438999148489424881539576605860663574430612832721507757980631094507486067466366971455470429279799206180381920478268332833587568710246712714316978514963901628349968128854938331847626129387682395536892956932532701565349632452781240329703644523342344735335926187625646456682190213316985712990716442701248342786856519983260778553660920062007149389756919605016040339425915192004259700987084038108596686844230597986458230449373753321513359438028872572791527436457557321695503116376081633220843254491161090856345814868208820002179885289626041752176918342903284155618567671379046004893419484901087574568208290405078340074994698497321595513588366018623465590032705364005096159585782217290043873541103544635654396885867012982138638442620643770449444046076967526494157585557537627589410813451671046847893164772992787048162126684485390182356531438986215651363104757288485654184234774799735890568803057022502431735182473220394788105767365232818419957740326403384009143987839974373871942522111658321013217053716800348336907004305111232057162787144651552049041975357251637422911583477377494723475454014066240090369926850705788756569672264957149528129641813176891884568406104487690302604379740234927295073283083166150004161115585617052332316232138865688836638018543269094093714293081837563885669669695345379784271520975577148972323180402964054035941527866991404583358696114905438383690061309390994219763249474594495545088726418942667490852177759490179320097453187611733401138568931637525418959241015591985502530417688378882158985342883418722052615895765548097443215143478248835072392124418326992338948513364040128546261579725099345480078786836925212122820749573394773834949940262043709624554595233900712262887943025513517936786467560394645750061575263592133055003386141331793260692913518175714904523881154012794297874093532591416903719065983344584931528536501759454266041216272420981227787653603619893027592093496407499678886667922807593471589073073108368816137296801783271183843508416973370493998747856767748475938221565324438022737734122926689680198056484827405793807046447245886327179413522261427385491824233099681174043765700511209985766526006508299652920462793259813013285653089148748647533962672940494346049684878161340629314772783220396986032567850881221102353462887552377023254270949590771598786993074293196659731292307262997890019181711670754429914761010328221535895264127963383042580687054500811479892233827142584310777596488323851471011447761164999190406995934011100057476998199288803929163844101934934782566695714125586406233441812784396896085441264693410111210966823485511634333487740962900129901451163437831967911502186354278890963716726070909139683200491404136307507995705318862180439564660358184075266256955777368682042040865929070316636392815775428849366345787332212177307663144213085277432246703403209373527140101859546088245878334949364036918380141088147971905489787710665757005640176334867773252492604947865226505141828228758024202318679721011367252832552651878544049555581982475747036817228090733564837697009788013338751878924007291100464253155227774407021047607097360455833667915629439197105549790817169931365723221172544529864709508952310899596279043905600273496404396715825635899963035462960417651504262680288257230477580047130470883448955498191421622003175180591316164892658991507000666210564279897784577813449483619870733943070145347912791197901837028679354276949923391934135253576390274868462270359823313194618043245648260266332333548774376691370937132959214663768807748587651748510978976616741154048177740097275445990502017089864145694479601863787558812842898533708206747704926985899893970718366886235906085640285696838098713394436166370405357814946176971131432167320693704550521838083567341804074560969020700546176802742420877631569251612619641005536297123429165340570310429878556991688962795131767661195801474572937420542689271370122705972743070980271567032891078375756325920896554378578657501712805518762602243594289007300400986399317422902948361832049784182121411714416868800707085265887784706528778547018789494471281422644094706029689068442199546264730110663370537137362791622397140523151734741988638163373760378689480879939864473349249747240289400445230388436038596370755445215515793578930052929897560312811741305929725854120567226020950458801179839301003569880881247069417941467084492554578252958789281871773927236210293741396935339337689026987927514891683811250042643962967957774367258111282945244966833183060585424300755653404319714730555564865876604395229761096500384637266401022923349444915169882922240294965429248274975278790843596187433775706796571335420547343016102406876956498042389928928218496896803618350142087440686361314053179770446791554239048795272197313088217078131821862513009117154631588165044943432832451995718407125917806115688672524536307094226191535717877825510972307196273574061066177526144081704201557580451076629749128218432844204256397346408223971028446990430510297842600589134772025456075803423011277644285599217251765876188192578823335910873467215500693256031421730378236371092937699631143714180839213204061697045923660047746658006226503913646574680624780495048920943993914342359487775261742087690089581466870063622299035318486207555547960438497753005621045510921289649981909753524630914558653954006895064311425875410997308086173228655923981401180608344280741915946781191276595321026003348920808684001641703864937271832118432570334048547100552075150465507222489033938611376492569900480879422884866965997372000887379677324442449536867836848474437183706660297030181087529932862993464855248579976677777668609834547651149968257840193858133372706997476466561200120394799992886460936965285371812802575848784134975584203549923289622202089901961613075268898516600024103621557315408308185838472698600183974851657627204555578536747500435541583491241431304851810621655942906233838338067958614470110670287459977961334381725217638806661303006107659386864547145459369466218068175424187639006694468862554678804535767267438153221202200116879619879168945427693998116324337493624341441723466349334562034944098897219242553150832057416086317160786584029135615774835925322386872289634422057599752674363368312405926113955977547787222924404751365384933417247419698457356072076646843701583520797744285050243641083793077498660918829331218463337137923832424314041650792015798963216648929181566100628623097417005129913714138647278243040993258699620706253178527844374377109365094118538646336108615317268868583825161380196806919804428230666230094889480609755027009586486808900597826120547840545670132679268482446547670794136540014063256698129301550015740707833782859128383267095136477336588910828392889870457570262854808089181705163028953337623085784184204121109140976473303962984422697271131728431673558351597406997239263453177359414240851454777074424298758184931310583040005224064063706507475112370513244523708750631672052714517402094866122968660517463295692438197271224715811505314170099841710380251409285032142294931912168359637659493033251797667776710108731095707776402867315766742824950071997366646668852160282530825006986122834653297348510665592619760031930702812225593218537154795381214382944435851471579614955619887929582962902986848409271738516902159459895036299670987164779284257463370889001207918036228515800009803971232780886843827306819931553003494215017494071742224543978928335112745153681496586639390745216553058195338539013894162639894549724001447865226427244322926525998430167809977894644720644443940457946853926115683018921573759139814579170522575491539035526237510482185078824283275161017324428969427964631046456384253472888923472960642504664342531411096466225723093713231087297048580900197507072299800765379278764559499094910906534686536664181254991648611863917499756040452723294762407640432367642865184481291719150017164217652398718936952476279460201431553050568416822011730326417993585413997012565670696446352435182470043847641815538833092853972037680233809526235383474667852548212323056404672044712804572715822992207776464337894333476705995960834861035362863761487362345305099840568027443499275255305091219436601146854234599809497728409359559056803514782364056885825310934604546478799576062122352143781984603615355880252169271906969160484676529384566001925380943346038931145779091883301248142038134040393360219540504907146785898432471621938909127377313139833843340640087922607761795076596117084441376503696916481213265197049562823918929353434461750874685334290834477208567368546678751734040211328731674784926921990233457141636881723992548867896595173092106923433170823359610502785258035268996670868328888445252750232967727581949894145078826221432564016632687052955721144014382861297806106209578400107956923364215913123040410551345298832622305571530650242856932870259157261132343971626687844913196172252659237442044843753508476705896022136152399946482962149544117024111093245937602521542977495867584281418665988964022411267926294642990035166097408175873343133810532519795256710107772192467188503026479793126791680573331122234572364787873347603535294681801582901297074810453758589292970295737152901786666829664470496552010221865365357433016566145507580041875284846297059065324026300891019869295827126436955671426703234562210806535042674243582290539722974269017821894344874180425397618127000028699640585725135841559129912857507063411866515695513712997927309778150316085562455712640996593979416071252666815629378589540412509353171633162130781425859667204396410507937980770336548564411513857222827688903303430295065189585176123513602147156768446382169442387474568166073006946785558825445428924682532200039318793722768558792158669937742890072213420523023004135960932962726000767795541734943178310957131928141357238293616066108893722261623666191917949751197031360177067851085068665205726014340901651242937581402471167448939342713806210940253598785522158165942238371245693103978681777368470986398509246528007955993814753402752293288617925405022880851976582966474237071355384386478515163106115547681598609548324695445045001801140631953581363146686528406964513846701625584028599014179129759581525992820931884781633266517204941515084682180228200133517423383816196458601207514696731479081022006570173141455959246127292434116508338706888257230391766237447056948931083739914121229216263597782110489393838613048565367188818261621285756503584187334211258528201303641832329522547362227451904317380889341719922957888308674520581119667871866244882487068918114779984824123853492828899167679912731123404951097066728329332376063721255029064761066255651956647579063654039636338865625644932471663709048307263322094494289782017895505334474325415434927387789125815247434085613671956086864307549960588220211729328751088647594456032756595302047726640874797814517466970216024199289590430761230211798893805057462715644955373021347270099276668687702168729680636944822882966154887090964015712425602743666372826956165505601527006465390547631579425956724924535961555943043779089570113909324924340967761743592556623339687255999339066660946549188622737894661540682433576579027377046146984915862182912879555526348503708831446226204079269509430397178049084168803345848054768037753957239630084652158887919467446103591646397858883589718951982006554982528495244267796366312321388235326935541177792415051707341035170277832184436583369253272606338453718161354894806824767125260416081618957759702317838802591799822332809397288450121725358675869063486675707585882034470233614642201716233619808230810350291435158182778897710536398616683673161377674380366016905362697902010710808025647998840151355658359603492868412079203481907133151232408658012540100458029388752750312667174672345290317206876011171553542379321811406433424252361111743973241342066872021097149578337172487479747270191073607854747050489773062105023610370346258558251676873968872151270027946946483024497721840169778531071726924799327455016560676478724409177903464329363122583827805132948743839702709667196318705865689583599131437441211844889639939993650539233982216892954743243156855176804362826902286656052081196856019967001010889935283208586444782360944245320954053573084684972401327687237304169124819397932937362198438475945695589850889680641946851391941115657253469498635243598833777708998962573139912506491990241128773978754883481320637902328885562838540729026186976743888892200913597853513163523675631743257072237481233716054770546106837146456817743424041508903223105821971768013208851114854311926530023359324046261424138086655934213008153472875692172402364749476259852294009942726699180733496726956558674156067546813672505425703549442590655756087804092085344790809883374180332937484632029673370255144182702890904236078505251260660484416592168919383102478493907883325888547499253847357046404156783244877063639525032386633265871555888481649438765702766246093245353617578652563937005068268857154096331729296553227007032477028735405565513941218241691029486389585518283895315272391532074796761602159629344774000029107805429572559104132046439528890211243802464446192162966638007583472836527793958797679403682889861079055414369667682300021563303650320561892800090465765569292923727353540273930093017204686964225492429584260655256120384264795875567872153477277522528502247778997756199580649666073374759194295378601922066649698046033315332592539987012058425551219759168649225617505494499532421478429163756404484374650817825302559387150301906534867538639127150031928724348287758310964636923763769646913310978465937737543342543097513429058392286591480641633487609555677921435811060317210225757311770023937433431916934326928343070883573433203010936875977819387682642778957648057143039708286288407671280860827017744276200488398913831628978501494702960365555736171170834974336575376781725385914663317754129435521015980327262192999849545078084571368492987905781015163618448917142610822133454914068345330172200280981335384745859181073520072386702366626583183153394789972596816102089546751243374223283721827222722252403396546110111543155689539577803949301975270206309318949514997450847840466006640711848843963518633559327688120246328275011204421907427177662850323622575295216940170227645094683780802955969049786546782261305367748695934419779319708253389921368935666470453456794587125690474071975437055370080589439130666877972556189983102928139099402415692946963581876366855231521836257432403424123486523861916150809319223146194847042943431904652961241727347873855247314902728694821201658160632793617985754956919808518263583707200039675339010619858440245398493226025618801543797544470350251268231294735687686577639012776116686663148514372826846628317786877093693011936434460410943663376750413134377074648409420350456629599319768506745894882917483684607042122134528798085274435998210289026500966842569738514633095297205937533187617063149801521028313172667266871472135307433002505739185772600185544269264570724888882487055607397393971798174582087255000463982143431078449172946784967250832095988921452459524259262464811596370306393889135162794864205640364112245578221295951166175847470881972399889483126504867449226779882020012924470279866042576866647840649274982453027775767305214592026803497294519536993706805943766465158447181093989643637958569090986207644075096725051050875792750935487641964497691653422874880610279275929657529313339332618432319523861298610785848890044970782702400617904943534563038431499184050666996939929281200313466548649068684922272403492610318096021396602442526504208415655857157400633265901713916032805323457645442125138435546142151535158147186562167288477017844086582350850427805657304297455909747355935642119428697919578297326711279611228668571385860682250699929569062632387443867373531535296027254336270026778084630590175839754602201148892907695620247775815882756137357285935973265140577003653307258423217098756513661617356255749479463175377248614229636973203095813016013286318717828239691302345160801067419496361444477563081986568019377972904702807649325256459242662330756282463199396177947770358526601321170385343530331927134767751350648115093091140098698209890225746567329230925114649943654005835084224277435267555230723868441546519698471612231623740163455445939467380101142652331028861115192658521251962223625549746981575441756029590748098253691462650990131188770745444467380287130379455819769239399968774731506165213682132110049080025700041081259666605770142991139084389236634174811648504699924323725201163397153032195524497224811154292907045381745318490414162779535373725075169075764169779810466932031214716788878123836704709426760463086951570014904143305558152518630391366742194601061055034946180510629065411338243792489697150041240823753979537548337193859389717489459632542600331360732924040165616105360124066199344551068807345900453621721542919519855351791076081924962163434073145845801112105326168082242024370560535438977505629372075071580740151508829631237777222351961833918046883154912601653006778128909388475995456777941480246460987161273882929798936954197404901020904841470984348987004813909509589454464540277864249884485289670389844016490501467493174263436139137872291628519068248467690934229289574866961866170681251453627668116879941985242082173237395332759646642679959988520175908337997725730178120704112309984664295985938811747530071142379602621343691208965542830525651324087439566180861784645811851221769305002538205866224224185247643595866818795493792829706837967041756568171633378979192746295277961231190812050935365446509644424959113788441553114519477561697655853112934384667970768901200728266872820383375582543353649246176291109986628969702740449468622237367087125889834446601307554089104052200885955819463238199781399644053426883890371130036606405597682398338386975342134048482567568136016503265032519260226861779203940933916937201000775777553503949691648189898215011205888677095938321623238417186358738856960748147997310104728751601906300075287801411576423229197911705874617985087324099064203918824582482856637061919819562719019738576984915889506528517849603644507199695717949074462016496539954933874315365328366433010728305409424151057561115223741252573670655348550850914301431246762743714446694165962849323254609773774016013535511353947764698948849533141525661588990815058502459964214534615943144702577846337704158449492195029655979791416411894324251388773717164468403680120767962764624769796042522078426909445606645807673225683025071537033291501016699089614014555075424957170060638458523876606098373519983261148013985682863577068376439352032762692095998941816812642214355828347789689950447243806558930845770592228822186111766202718188304256064669523695328262116117371908722447875715559297746152817743700117788784395881716954905069691181233979073318417048534110899734905417208256848254936075965202496196490411245583306344597831719358752428641456319496325894829579014251603880377521517225456941978464602617623645088550164318334898610851968929590714594249653257051807503283467565096316403148120497950233800120176977180640794567263907405870881982598097925046203065314910366537334590288808945499349009435652732629273136798866726669271330785209651906744830848148089707313529595149030700346526956757756329652885438410115153443830740170539854881932978357746067622184897512321553894041941504746596484061617513939542705408735395663265124680806577199724885887272072398904161629103331706920849649676863955711851111624213919832466616648983593740427951471614585372798313757616598363175633031504820722524923377398417898518906929320386587840551521621512774689920214976381216743823861684882316845931491220925397363648119395804139014026855980556043045844460432531277088374397982419835205391699332550890441343131513392131206776325784390587302963517204267505671098255658139560813441174242666531668358663652744075659709380838675614863839905755524064831340892502615108496465220339080102765591035812755599725102542805289617536821965744690991819547618991129683695175835718958982878311399574186379981851379569808232215795471435836297476949576851412651560948530278826745381423433890408654840388859896352985257080234418450677565907193020425965051240156202210655447181439283641155951860993706840529215403685056542972724110289082009119529462276231885486029620480542163431272102319427367626700662138043072819087972361011057339740140549238466282532347672023004772859722863610231997210031495674732574243566664065425349773214839494231384174938237147988357846109417934155690324113262439450880445656385404770310253388307169242011729754091862225029642013498967774625838669466305225907561164180251935555734665512146822366800849334355731085460574456990925681679570023535441494096497479205294836716301824655166335770766967636334764297625114016680208632890529147327536289002485158951351718794250357077763345068406825414285367702330816439177008065894051259003128511313976424507529144758630326501454742346968340340355750323599681307962511111859888491044252402727459005978963901960370079795661149499994265343553338477192719413444287418387259263123794754083087153000981368062275374259599683529811523677754715891369935473854893286265154544644842214099719941647677569825692333856377918772221050256333567178720836168943402484307271337897638395062352366515873677657253719421920688695892266447000669543776338360975291758870861280996440036947339238651169476637908704683630860803498273393723447213888030969813348995051142254143791596855257828655380066532048164947420489175437749733148147691018339417076994090531260058751995177595909093791309213246651865732614464256018215326842416880239887263696542570590815944571391031818423892862894576230084460142241358199826897264134725670011742937506551804269513835842685836745772423118495239748211299695866361251374491577822165392604550872663499970250602873122933661877371700985011208617118216401057265071714900065543388460265788664679992610189484255903324549670647770439310182672718679390389323767677250977158593612523450902597995694571690830152381737192951369448620308304499217643956724910662769941558201327135437239103510978583860679071254613316108270530743815231538121751223062526863825639142753693168170953954440411411380351521253963432282909202341524526937635184379781080758929944895962149568262950044871143374650049269257350174092482115515598054494543122336032383870346619271829101479452981835958943455877836908090972346156680045752927605083111845293854533934284594692635842527885549314444106517846536268962087044771499559757844001089445762812931536157976722201422656195538648798005621992599173707027296355491468703756219704910838179165779891422552871321384017091907986980859245952476976423990106692217899834219992340454370008091210294277661854132902157163595692192396991535371309415765552540225214178371713000453466160363117572699795230815517125842976097164261479796967061184107739250748092411687263729164546984026685601572589248799548368990270868172141566944349932252096525236680270838718291000870794100931441411154209112322979479906495452347012424596702684576453472072145408144373858085153631025633801415523506472866704422427424700983182423883988602855581158596931596153249175145847315402539927821624775168664771451083048115943070003394613968921460468142488843885335686017546253236042787147414500282696275742665077428138806981237711518817365030747218741487710407960188595743310399280900529105751456934946486657210142956821741712835649522757846877913941054107566662738209778287236426381080688832996242522781881173077024791410995313171051778594916218423732710097822514478642256534490261779247682131105769342473990038871805290678626553022060014841467009816528883584149379418265925509416714500684589060034016160934798490055130478652643372246120070713253882575765865004113812310284512701975481842414809823081574615512644332259052823771707715735278011182877416016826304807117662038589372726455861138054692918829795266837986442264536460346995122139760365934833142235225809272683171647498594363035084749863007455399526061358047592241260018929768169746315060573422921970407774445011635699711865271862383298997829757497902977376945020034468233652979568107171028391954436778792613171940099531595737464269242859091946913547564022231622774805815500766937626316268552355285416969968383169917769608408312239253974430424089176179357578019235054147696056816380793870469812819955100428320743512737473262445244606371542690896403231436293061348229015777367112710408055625845140670976561638553737103264419715894117258576202491184190722815711241834370258607968245723878950324406459606552563136627205037392073702226759656874376377398679741904368098081319167191711305831340537713780041048924815936234646284436962303482315874120187674149077581160220602153178161331761013583079580346857846877946003451327117436648955928015906002931115658077044288000740812184914123848031439611740845587173237635777483539695550532630226338129864257773435669116343692964212622501032365175387609144008345320080995684363218734982011460358941862618481080845479067353730227396691591918319779822462445305950815730676175125031700305013189442161889316411473377342073473038838917565869947999689057874867138669877637055627393046206741517748115465144838302260192539205487805541944554527372616283969597879613373691609436160262436111860610886555058110038929490849760748270658033485234676463162355940018241566230722135588124340192744727585547527542530849056765096325961064690663324806862054676552219724669681294416068256497457240260150736875240687029270665145673692025750199778590877883803298210929435972862215235621697367170359399249227425340627480854961820931776676975079083653197727932936802133488378909995229149917332117763257580048240738905304093507955648714250243726318158997332484143270442821436911236748245733686149154876203986217501806037002410321346751113255499913375899498595542300116806499663605635243412038258705600579465343081592655477399907139827661917313379842452505116219547433055923443075800873461370525697773936393780668364830763186384835082917187373712723386074961126892807604989055359557557928979443991944758574280742075359573068368425712272185832067670890022763768790643414326289010107418743334505501677613167826261122719693504832677699825128050137007347116260303605391823969299874219041688363742828963255530373681148841469662031552933880438134256908858446524531896713667466811830997684970166941518328704491951920036468759815597818873064348895386028791434596182756335860461366091480758568915811396914509864169215206524072227548199532200606563497225012321390999441679193577326717051306719068702516773581528334047852611982719416736242402735748757894743831290276585829653638142597695384938679910056119558221323271117039095733630449685010692410568507633586127402580851429965530738995359290593138263064503777702172569952745789208011015233231629161406313222298358915329214467705227151309576541266671386229770510158860001366006680854812071230612052028517279273162223952171433713059782722852360230855917130959361678101364777755988387248034124162933798143456961890879304076284405239999794062246703230446435493949515836321449644645130773227169213657418724534200413668281674580574206588977206032804243953247498677131680730357256306043377175950303749392060290806114855619435244215738644075381661660436392024315667444719513059415469389428736103999315876375431948567854165749968179027325702874612124241376340625594709844625240354283206902278838925192566099524878920031070920562095573416842511161132320578066665133156129967719244144791900438077338949900271711106748408045670892424234096976434214645205726739766866107866512374054067810659394658343824994471620180788745518556597390769014035762840837072015286241491356410595205756510802378622147835825362403804445283605881331117746481299177598325989147180603234342545142103541034979795565946964694666596611564665058121878509839285786044613852733084402768764820135648024358852010199499558765810172268084167876509274559611059133210836142760230968388947147342288166455982905226755555680499661537077845285455436708692487315098853268350352852612407698165675928828526629490799211388339351074944929722944259653263944520359042636640687165050260095201343530664048718088310412108815069729355576774389834716704890053163799899874069907007840490374748444335371869771085997905261974771504381477358791955088281930555099438604983846588222446018018502510374798814898461676718964728252134758529553232665758097015416356942628899849699934157847508100194361284970972935280924487550990035764551788624800732204670503826529527828389993811224112619269355102261396451152703611592206561144560861433784165195226170787185535205523553453074423592889669109917774887828569800426406897305485030433163550010033752729173049117988329736599388623901326837363434488936436570950889076829293586216702470832606167789383348566478693121917326331809629972063568453775486806175869330096480820289882591042939909163053006300634622485528404477080453172273326515208485412594127190898186216798878273203540664818597125398891120461043488680751768442768324832128806237449422205831753439031502967031627950400446720429856305747977643923241812559189217952598956778838528528829645772175710190060612038696936737514094217039084224775073737576344099445275607391549544931663970461153053972486039307045573602983797319646977577101785692528673104695833921211910621944703753125502757526898935575672939806297680889422499687786477791588330473027616199355342835083808565131906632198042453859155945156608798639649463845527693173961499128830085017462092007598638934114390406780729965430545797488734317213268801400220833038649495338479637862554564102653697650281829067367757788152118337451302992135097810906576266987127147091580915581704505181377134347528855063076623190686946250311146473435461709977781541458783483706631663808210384811301262931599653777078788299620516734387546227762314319967527671033870404859475139573058698437220334511932835465539961760282690954037157497202728271666408956590864723860238448199009234932252917021412692663542819846262739170873196923050000255131342051925512031528137247838701765877686471890428850780349480929182972563904929146446404442461178204023498499020103861592245298936917433025212268225774187653162771136476813408442239076834720813379274373703039080543951792610089951597227528020379479629804736162873536146491642292286944046069888206648307629015171457331956551717174671348582219098271261524048361144915484566110278658215909942813863636015076358556417545927979259687698132981603906995460598077281839230530790110665872878989675537970166907130008874756852203236852398808556252611357600169500198596268437225577602720454794852598605532653304472388836342865324254598488979573616384413684118339186936798572442695174771245928490218027710968204680806657049948076306245879779684188431307510111213047628328934144157980477943201153502680639575320123338830215765084363822738859633154088660890696792498486152352176010058244813691698390326885312220239119573768100086565432016121813809375814530980252114150234066336340201949796156776678067144478794567047480117589042122118871419931011498612613259801396421417550075030469222520056399601001120762147110901133376375986320438273086933198143499129307751129752205632917998081383218971791957588624192844484938459119659753975119191363900131208868408632392518462163139726026744577563842388053970675710006032455715541562101344938795648569012279474903283780834580228794533621848560074982544082579028691944386994244515605467224641232945883496797387170974391818602093029374687759848345124813640758551236652510636196665344310782522263978486622760775139301349845740265945587579110515094138764149036881856659776196419500723079129512144510878660828822859718305440826446874825834788114089435109921839214982191946657707097257643060019253386794730806118765474873219906357352600154916533108450819713174760307837327413266529654480756573533237918919385803811475408373929733328048452040686776841616536000192253548754790381719364186300858801801659545122064177897494287064445929789190829452358304929434335388305411857920906964778076711080592632923833109396481943668459276185787936079265480973871753313991895161638620519386436395878191053767106395124378948914540592512643656531241859906997076848740992301477323448603501977800764539961073553356945060970835284876338759176735776310369410636427630525289630460635687556371709256497093453660736562381523884661294170911995304238107404424541145969222408196644285799837985080027164800285983136425106646143953520299237626141880193730565711947164833964617144536042506129424966095526792481619888891694785825765974544684717744835651483293996320079556036879057115253089257990904529251720353409687067930178626608083270916401814202823222740721078351333535429665693750500123291190783947110649467729068178762753825697476862911990853431390614160559336498894647452481965774795177316913843117200629168875214151226853734217314343430656509561285469386383868773396997163930105687014751224929461896309143557702320679429888452227440082935278085738796366206476369330239980178160630546314753381189825533673029639571032975587295160243375240730858709868393883160050771690759073611697028743349853826167870317162075624351209440932226808823540097425637327263918166043288099426524425427369477075893179932882035717226912937473853501283267594668725825841145211902458272002978483259488274073469913727658866230557174106835374969015976180335802198226675273975884599806469856571454115024796777710431317896011551142822093709302886277623487537503345571896613867686565535466206568839390166335897311423591234321742498868416602089637871764687132308133537278351784187999839769848260639428745050064619580545714152343874349281008838392584946346281860553451976403433784457681931917503748662402539849661278696868749683921872630961119532180705763166077634007827726223526514552843946274104662035784312231376916078095342102447616025222680094660464460482676142962117900048243207303055744662913092467825847748631235953388902715602245324429659257259577290858722757797013243982221468944806432165479994973814646553756515085580564106544090887079626476553840955252430540084831178550948225378228983098968882323528020584320947255990767146034707469423697346485842133902082079392731692741306813079531260286694328435061899789966418317061932808319678113310811229688230175898416026503630808568663268549606528417109165229904619175573869643834215607468004222241928379460127746731855782484586698346296159053117723526736349737739738144156322896936044425847114271146551595427558393929531921222783440677154491816497705803688779521677934800028262898830432723344290136442388269421543909622860266954710423199082098061535012721500368212458465584856997420139753520748616555646437920323656073367822921118345315134357214985605290091307831520414633577766857199311115110508246702634637309263046547975394739551755276812676888228454527587723760517196477810342419356471945573230263804994861720841860228364341037221976152185972207503200839902710876024760223911869000652625775255080106582454937459205772245785889297197740545649017612336624001636393258771360896760902060504210928145743482189338015227266320988902246490518711561694429654691323817491702727944160191182597051502150035456667644006204686905921231760859825340832248253423540096443824896936392776711676688713445067565247868368495427804564972426152059047039822896892059864623630762042065962253818121367659562164587188261026788512594749175787770504812371673594312517520871300933895019606595906934916057538732221451435534867981104232488979445512511989181343104915379764465105455108114479422981275043632727149995521562084106690593436462594577460162027575307670487733193183276210609893749740900681661701092529814591290343282580543801767086799701218479254543164633501284938309621153249829341001588083348060816422512172108449689337129492242568932638076742872494525423346236767301111458846610347098394951122338764522005843757849508747863770894324084687481633180864437832976701190945644851665937878125944688828679325440445687725508315112460938766853223294139657028110744296690697140415767303901044657128581790514204313030207486785685128243291740825882553723517246326511218160668564460525335467846784448297112499366626346402817797073133975726327592458904146829706631579128796859307513646658511909444234354179904974283040575358976759025443337551791411948112914133482076988736427323442965238680921038855696665452684134041871259509122082470157619300472390907590735584043752867299343173051098178811249756158746297161770865230614863656196766590743306511533907207665817799203514916145250240544512163302530996140912339634829504751247522153807975444188690376721765342251473498017992104368747597679086289172024186521311876598565888170950334246943819625075854793628820271599489467781491397069966223640953821942382231656145542444568448282880011068212020857417173877392148776379354583977644211548888527712283214144858594369656928175782063591615843070726608257614204886900475019385752700980206849517943021981256612858747483140230891071194225334044284947061242245228832216018061451342955508380953714574907614366852150132753859883490125946157625527539509489185539854378259172481121919131701361644306141866419343619221335224450808530111681744481591014892274810107129921701672143738282429379052216625140928412829460898950240421148483986396373705036359809557430599505807948193693208721109847939431129836469727165285817416176443772390585411573338957342291290571588255459367309687639938041687352788881908450720017301902774565625584246047242039141835456398631538011947299016260685849115939486161805327636924408133008240539911281959893428829618023636165004469719008601729487436159293110358821044423783019358940236757113691181497329841898895692292513127112943937785098990499010340092726041105830003336735035169252163928883022622180719140329642493372012130855155437143114351563197521775914378031320305224103235048800241315688390869853528472388218096418519166648112667032902480319719709502395805107166827010361885259199843315750968314218649172734573899744486784853482435503263562594797998428568562452029660769242917361290954049179083107791136759724239178113489379489798124659181506907640194119474657843808386807471319786884778642348589502845896983939820801297465627183607625048042481056360296608846851980249876756748473236967900709807120171580726232397281518850236799185023834043305317595277621352148960380805524618232885912378785922282110340473961204751207144405846352757623792041585356213639237322447425114372119226396036566902751159910645155623010855998128525544138024334514312003418346629495725192064129979616522926651030349927791146495327423651267903463952619413031176156456125387912974858953860014496667761044789898618435215192364165646492305682087955433422569744157090535228520205381965964528525901905708084335570504723459319416792780560197403487560732758954130822106799683208889393015505251922735311902362101608152417928354601120834522684124518493569472633735139064214495229503928697747728376613496175344834361882621896382510015892889309099452051719064956707509525166887449010472619258247267564641237283416852255677484887702914716331654781857807422069629202199299582369726472838618723050192734786363383143253605529484293911454034541407759699051813555102405279139666795233489623333710365949877015372821982783793367207457778519793370235257251118399808616394864456985880670759948607507154250000504444123538173491779065992172005713577796134996502047237368706096178056218648557363737378925410097195460607228914162090743666304214002507920558015670067737984524771166778974505609338655878796229868540573243348570716091476183768764440198721250134570094492224390504526616762868383840254454345293039390834305841439448525740322988908110585264663772794715449180732950479783982152069259382667446130467066079966781441877035099178413286253728281842452879965235136257064775157633696073377193387959913643872231671522324513913434386560854512475290374371125465856250474285862890690050597784229034352365152514682514929246507237935980649983051190713453098268995358194363424110338331513490210055142592420839856098201584895056730185682147485857421224315895720479544065070940473945465570627655325221429304990640175658844651845295497361233118156072748422942635731192386117742656391158823927387403195020138977839553279593758536557339381640207001947540402631532511277643996887410342363874140409420698923331025152196070961554828661842122798370265910908488438767791982972889878076187668791169010333858661108668969784367700993783777357217789514627380958256254908785054300616010794974590060485799758187452116919902741063300388579398853097354428639929191997947594761249806320821810869393661915520151207447243009836029175059915329585028695254094305288889228422188623329287371127248088146333608680101900481710429801254736492548372962953309552036989727483831252160844632603109698839544328525593717875932810174941850683913145938267302920650102606371868341610008462789407221912336301006136935434212788942914244401769046923421297333136520346202774492712260434194456937108533701329116124788965954480111764789694432135865461174051750877691770750453811760348767509819725356448654045398171753590054375934357637418125179833713808255233931526976634506022620209033450227050327292999058236382516188753863694870677891903956235334285127628511504749015110768293662786091635145886594969281818367524717296346776722708194477574037116157719330299508236995447082895780792174052667866349404622927172222885236427579740540153662389402444292700690234545630591137417441724939923716156342269234613830237289033694509957010568927777050612534211530064355104967384768022368389717244825861990464093321620368549405720721562750550341807253078500279873869149627393053957822822809257930047872578589318550071586943941851899816851450775655051721455035190253193447969909128562811996037540292945383625801198312581820649265619434519656853764437079690369335933377414559771479642805797396250916147218760307794303043598958568416964946594481041357219397178651036292107282233783715464668618418137557833706440798727392105978342805979743797432856279983263361035353154616299725695468638720076819826745517326967910640520620331281310638777955385452396989394768379532527154504457042584574209460413198011051644925761821022993937093656116859234968544279692917285672488969374747773194705608853245855263297682643617953863419793645775347847121684358461692666521004459307942064910911592441918615435569497729382003969138063106210739517942866413540732012890350125187995398830745058416485484331204453565296176220737344700047689212182479978680291715173200312428695190235979840568905825902673057550732836057216187938671289666244863268943270189650190266250346417182517899811608467455151607165487605379024735262474609484564527383353866165767607519024223076657673935646145498942529031059380516187670475656883647690716490550528350231647971194275559722434049954564501705951353322004422737674549683547976599288996131026498295508672285057278023171308608375371646308281499191082908012896008208673517420811581354784651389962347021441633198228186663590950401115272604862942154119715704106289346239589268453552868302843809447332130453619322007862123916693524312826650277573283686699235505199347421957740001331372220916946443353286082931341831081648135790872568023789560857436908148908936063380775170747887258284200889646348006109460662830898150374261172007464645376581408724314945245143918011600234697762479939073535470476528619024996022900981227316418928731786614429593369852178521589350516152651432075819720916736294148981048873769119168377595473220825345466904786105183199862752820665029592243286716745035299078910372374781123122596040100426444719596160844173745856512244494996068798401937466048919892280515215280148265783023814757578479936238748176678758554284876311219443651579727407716411394799614602917131916981163986379359006250157765845735521198760168104005734355579765610002266478006790850588876221988604943432330736278112294859565046967834762748704477852762842361430637113141110759991571649293792340132558437122110442760706812924601830317613699092240105745383479949927950545802017205363050405391162019259922624134132850802685523940425287974505232882742124109515142610661047540020451237890346561625282836425822896504139664523263648435128683015866079090137459972802243073960427451509871355554540014051972587032270992958122897955520283436443142895435283194400495948290251528383977677814098633877153366543622445074646885998166897918439167211873764888706995062492603087682367790001550045702637380032294604473627760060838960869624540663644902411449530297483645813270228805388448902845190896677009500345441667997935653549492372307617131375977833151267300516256981640533396321308111025688923673118909113759000406192406814119847981367914501364440579327398749871461202398344121998585557172224569822830429450644138210086285229989204048944859834060468998951976795076514975115200028761741813212956471020747759901485856936623291128769300041566461790285279222261026176652440383261336554963257030965098545164030169742425402960292719063906005817522865598656048042325661024354953882581583621677508092443183945631812946146180784357186866730809583291990700279611474775927230535186824466997823114949751826427734628106481597954352079544060368745300041828880658402545408735102919741374970938041313615518666994117433755379983601575658846822830232554081502331689778665504146069092804695568209185715712564045587070588918074429858359026279333318690568560562702426537128741976295451189988820933444606163672840903635212259189499031397624481847083383624100559151268162234418457406604703271440560541407264715293573176895050371221077129334839882388849504647146380776395946871354942677329051839928597935096119125445213894150968528787231783119008880721445951877015813921130835704236059561940634469083095812128487964418957853704746850742289747147727258115178713384808127222899196102011266918119097206088517546337441800683196125787971100241510210944504609227994676755030854625905087141172577055620535042026543483947867807230648984432883781854626707735393432658325064604555224706648958630925491043175374930521268098797583790598437257325106162211061449839049433409247146642912848932041551319540883619124711827043135132096977980623367943894490118162614675683300715151790028323083230657380872980013742140664720821522867203893982610167169547617466231449522764475801263912252150465644564228142354130739226615062823395768617866474793007418278648401846012664640242390529163359277438197673830796631886491268845557631802669804627257240784539267992832697540024506240280297777294381282603421213991124280858564829695565980965597803133575624457768198115716401917307779873594976805448878780356680991822329442386193331682706667714736555057459405098222662106259128061616416944493680626217778211162176217029890503595002608915454066512281939080305130272389493298896552127931537068262833408221675940075105996633749290021122301668581885304903160868003309300546669956020013442707240017153535748444514043737050999596724785225986781873400006171760388657186807904161662663910273952158482939152179935755838113201927691545030399427919885557162455914672614384030319337729377780076731219690889161993942802275860554198470080756402276481062791606013575260447125349898810233790227851693378709292924216366755494667253475222893937586209893950223214064280536061913116409929739714337908441506473560472127123980933445933512995629008013677796020426762016170445400874382610999124000628048711311733611685430787880066664405556402923216442989083465308579117300313685329221589928641440032879242248075167367909097446029228045635325934229129441256077122550851010800596339607743781851850319188684445992213153842444441549988601513253774725413354405264596035992973979240097148392862417907783310735277931418679916953500471311834239316893647283082394835010100380974827543864098398808507194318001543074313781618985351396170930362499497499448293780321824543898667333324521154496848805002589019231615326176032567885566356320116182359849413987481684564165001422986665575594913611164394722215717539440410517856192778842759353569468757010692885868448269232715779998748489328285678849585784817926593146141471746253391413128419022266648005266715227097978345199579338705781105218903010092455424931854878742726620016030165507398142955408247680704640507325862487797880770938358713868173678636239738460765956560457582650897165601167158359536422771905450539996919717562920468550200029472614365080164331942777318428600199965746045524900091795585312710012834686656585255393041544354338359278371802936693822150991493620104052208725750721412809350253290071895246380774762077172437888610317931899029927233120839615844940755427581307814576026583769892180390307345755340254798940237920641921160245557321853464795058872818545034569028586857829979565569571225906863815630702781082253739524343669802787076375793926626363055982188711210383783243825619986074544989877136055995330721747205553381926977813772223752158360597738340476442892557422322061070129943199116993178968328548732647500688505752676254546760194863372848116913561012012053001719717012029239078064329610424256863369614479908264617240422941521881779867901893501457228112424088621427112143831156989707833926890297455996154505255641509192997078460548248291010600867295691972878509223542809328237676405734472573696622546894003298920276409430298081809528587478560605690307584080356368354095085151240676201706164743821393679426140914864673661419636507285599782271606272876268874818883576115946990498790675269484904734896743467137351579463529930461062584272394964347755202205753052230275439219189794261217634546772656333958053196923706612856146258156650261052724209726893934573368305211150240921851127265206870737233156808330559300981920671846247476923858880840089647110051871527696147968075683124967381144395532979275871068956595012031435115946345622849403171049767944277749300633091674314009341697167875793199267398794632953744848769433636116348563308226344414044796646037217263822617557624652253858446291364700496230074053360064791421611284258372227683540040767626055274416626967042639888490036939608732841185644498602495939437062130297752744028973843490638641693691303999234315831164763309390836356112985005397064251636403943813949120390788329306708448535635082310973778217367349788932583376284198064089199684723400121662925279779897389047164473157687382934878468919039307852556880849189436453925896564789619394736551560375686823616868146005063056425789584150992459857900844748863909342219427487372809395587752123129517868070231420590518764182273925261878154115404362619738453665952483786157451326342395492705810709724761252936098400829112426748306549960095872918360433377822962745677741046867886598917495425031361941479143502066426153865396445519721637045660688453409703182886356749852945835305712307034726442596916752693896391400572945442741070932868525559140669620112454694539522209662008139419154899008154429329697210781217865847397510186347257926275963751320128803117082514793171079781398319639424867609639158133747465955139514454132199581336585590351834332155389262431193103061944564456433352573626537318716269099984583202113781084524814002649691828523477162836024549121844553876963102037417383034202207046052030263740892964566770199994333559591936928282505929960063819713307315971780353800147909687275842430104438348531941616006395062776402316812053516643605103514606943828911459101260617576522741988013860557043259902197650966943695803980488020895479557604457067270979268522585684322523497853013883480455124416601560054616418701766097427260753019123179906968387803973328480746614873294320708478475602516727600950363752813666392127098424425064155656810159580297742328495006628332253043926572240636267478668775532018507286465565801899948229512675099150409286254007415005605977582121326583530517553167214137144595427015297281053717916016885245816694097601621006095838013080942733286472415670856694993121336061855858696270777046209271411514403561918448082552269479812226227839237995345418632854490691347036681179981114448961883461658384758279518383408171009485702184968995800417529530181574339460060698544621047016073605535231560264204155776796311960419983582484338353612379205786227799176606886499626753835611811506870760765448219103699170846061866086826293025129348138195334564161526677735064120763353509135624953701607459690721278735767830639412645765676987901767003834983350648620528343825902821619214646482375808285388051891226545449841576963337422416265445775698365746809313499897652301300582485973629366369380774521687210437217548909198278609151390904324893090141442000275197051997493226908029713360132112751047447204301441518234762639918152231234584982679394452841169476981937859509850277449808522323822555586956195629812605203755068910517476515403861904478482498564079793818504565610626142776002604826319397745376859798926121960392941364147624107274941129647089389453079740346159710958549863214906935746585635637284173290216283056016404735802901404228554422107431683134637529330313360280341301206917512935011396587836038269070982499975111447017727325887665943254064390457442983448121845407014752262179340553932812838622011563015427894336608740200738493221518360438387619329629846171144545589934176418651608698575739510334815973377008079141393958226901823673727718215537327665085497875051646744551910060692846278609267882629096083044221371643073314736258889018192019351680489769459895471554303214713442463092959089959106317421817772583089954274756530553137307656118014787288174433376349715703614891061892028181162742711074776633227686093510169138878141397579828489556640311513475333544681234341766449687486231807064138222112997204505922591945150949441687155811159793853576886679396717147315799367737569556215713978426912963058234019223365202272608003022909159722823667278752171720626182254098624302926377547748100064506826891984058674593790142808416760958638846711708474279927675268444396406563334266759493128794934304731835503517340531510505549036251880599850387556174297150091743898703748292995782094281922644691472839446115415531272667798373899545156334233277547556027158974912846777844502357112714519136104403033894481683723758174201509170236231637467556386485160476548339041425324147579696290885202250270042934528796746473616553037339810125810601973477064075480498079994828999884345776216407046005492111340976478253303545334960034710143902801092981405478871033603187600136775858746689957316349243259620919553646969354330051506392867212577515794393789105011762732960220740223890739156718016815996945210679324509692466624049284422414793941749515782600862461926344158487985535098334162367239223031023907411146757956239477946658526387787779020352969172115508735689236887953404453010454772617008945441836294330187433427031679809524170235345736344688644877381461057703023454999887802619030067849284741523982405999166171075344142381447316805663140462867253349706220438223196851917285582250300571433469497107364376628922155239347883655759648102468343753229599724049696170652179777650433286127235602246909558803357033531156794557576950546419417105997884103289345279941635715639444452979024447026982166272068501843222719896911528133796043979112585310591738191265402837429304573952819052452527181183549384662084314863492465997798022036573789567588049807646819930185023156682387881536423735425659356489729707223130913641573010263454802992396016826902139311669191784748641214442768366671371024709412575804174407336374460179426880629439064877426484755894939640112890294161823725677244633310321101042150417670603674581949414581814351866357630370698309509306005391839611193974812434222663571915458738378990812032107321451860432216832337918317908656301580539318416082015792008276464814455958692497530272324225435691178447555429031570505961688292840136953677919844329041567875549889954478583302177373362438561817890394404573063593241646232719043972428807088023876124155933974547912104929839801186315302028760104314381055958994785901005097644834339038313510923567313405235216259127327098763483125235609180060465619364699824420638084114211456288949184483134256539605486981280830703075083546791127849284803180168265069432602086746598247312759825852681286966945903158597458836469612366081641201209640604599585954768248392719109087537487662895636967480935383521535832093676592233435276193534186552910596061905831879602457629539659194241263979512433363961134092771481083604494776527773393495088563802221898226222894903305354144852132564132815961639669149671582944580600832517213737753873447322600686081022548587721658487884767183905841231774559800172845304421770309621747049841406173533613588990736533435031884908678072867219752434347175968634457643605555512398513015565106305894363098100910443418057982160296066462228958857600664428979595511755934132389557519397636614597297848886454665879553494948976129977244975589201586124513611981499648719102776658960702229599805379284008678204852985451059026540213303060969993024229769191384019693752814910695312914125261728884479860727193797463798242018432917314531688855762871372936957749891974136010560514102153245212524573213733265062156496362238650638069565851592132930422411907017490774538582939447837194631011540433766129803876629704489178176983832696140077032178747272231880565070863618409924230108611789085973910781232198494392139702217850090344217616612236894464232693894787799166904514529862302022388467291774502710579113151004531143716551574072492283483674588154777938817186864338808414815101857476683417746768621145270809256986269755934898989473053501181204140837098791486933527318876069390493377792002208155191638841777990164664230607206376004219059287964121704266746854273500272116497740425380966602963042214983445619984331597701968046389770787512011268330440126067378448893860318587271851821747554068364754220929452354112055297348370171196290720159945085258348912877641316348148987107449682465014155699665222070594428632729719368179728616925876909948546501952992068812608361204305194403330251772184613509453617600607092851075056295122188798594131992523656545964245550788684647163466173786583219162316465889863117595218466613276034137839807286787673614285765847760456324339334768646486637118510258336610505489342328840186341968098997446292483803122654738827115338239831633066572838681818037620517648790425653505588762568164290425615594300473133725590833382920242720184606027064055656317205461761872483888078390159264320019284581316295438772354320382669117749343469464587303245199665589794931861082138221647215066155515313523425781292556193785527151218907936054376779400904332055138705666955412829306171447317864279193899858960957651127389112844113370654807412818617175449997211920133190635093414873755650306627493827966131563940350392834292260571564245172528726708476847830423288935634692714674665013799421367593674117902032598981429940315956264244139519945926437688054739244513449393246725763802050595240288562768899138606836910463646083357110265005184727491512754400663597909277815551871226934689003584725386523522379749038488262845116243444160589674210121682028141272528531028440949985793658497165007527380309386657786876690535991980008313055535121543032453927430870482515369319138303268864016056248111176406979452563816673283014099584725790330043790892047977271853944502827943508012975960531084350611143494904113558292653066555267227825779196820091965072095098681840508503620197317156760457357064797754123678453941733655532476596914600107968224651221753967087729736710489543508676917962562490585415293116928582583294859890866535675718569623642330684196322600329939320399070159272419594899253261954395995802111807837519353583389018120581064906541678618392439636571274060325307567915279820741752386993661985848818432576694848198349924181234823728801129630714436929757371022680454776855497282483720616591517257939553764536868543757167926290352778514623549261673826216911967470598596521977333065381728284211614965205291112118607292236065578435196260950363419284787215695843639404535821125743527949841855043003137590162359304582803452150073460313602151165117063737381966893473960288713619050771917635367655630351514628890201463276044752740814275605470350412707229074830576274397299680548759053043880844581434316502350078833695919749336916105092427407851272284592069176941109999445883613692733550824033208309112690653302515086827805145202030232152186428717989213168181698925679614608610718454778857113743207269353723246080151257356116871786017470256808424354825189804263145028541955126508432971118618334242036562763899143801812691647498133834040715056627569320093786510281564804911046081190015354538727679523566416742707655388079951224736001334203520628766979311086829052490467404848385962916573766435110436542624794960284468406652007636157309591813057210610700534086153735459417120106458945060542430821923898248869261116729408129249687109028022080782697045116297242651751975058363716954095310477190201593009686190375822290021202005247048950124519083880037385025669224011966823495906872405985401327180465625870088508043583838278436840009975448903872949408378911373154099078088416994184054762113019574802631710791364486671703466728981927844717665674257527374067439589190484633994455008235276151611196393447322702473316988500383458398940961525310622441437626594102875670808231239767376282988812351127940742435436318914764175428982710162397952330003661579457492396812492553820057879298883690816272253164136389309456248571778408972240433356355086267831776433778428443565653241242403331677962740482168715823575616290502952454348463442707413693725297519842773094362790646859287036313336949191052169407211321222896051220107466276098138780067467004989151929345349381006306016480527529709409744714917887742097553825245183005660759846296291996849734902852102160209737201154941429745090305196728899293736485849962223690382828232377385195382571968552220777035773101601694652129404432730575303569491318990867770998751379194575284538804909834467095942503063041862791874833859495600899658354575355250640447971533944321485304598430545151140348875659940792344388397497691340593709521713112328684737596047975575154476860735227316512971201166001181235849762200274282453822791960053517715093117545808217656707532018761761312958542936689177305256023764897300519278725419547396363087586870806619770683770969383946629383749036215218428196371270674162543938575011150098443547726348070002564320086648174590540060254254658441450300111337411367089218191901712723486002424607429132729191705162471483080563789390959011533735057441287244726425930617705083568029358584639460818597137685763696925481917471916038922064090659788040723619023575280891339294884060927908416830030772387573446152370998639915825965110856459003858637185305680192963662872945974370812256744329743099103559266930529306589624522342038554455813197819328732172782522948617569595838271011480729566449365221053103026317227258205454933162111221132663083402038593536718629384666416271995528083351824136646219933561268139205417925701177462684478697707110010887526319473003709802328739943906000544471722594042785035368628838013214521594632751434526622584575897182861195159313781495353177788078606818569324001506422650471207900716455806677972597953281124451884108154816329691240155470173415593098542530283337869737330747513509315218913583527102335157935871922983378455757623684870286797467242159026312704207113864591936820225167233443439724989433284729169565832013120176885785797355717015989064140900630130985201382517975011469663655774553918009865253370110137343543359689237088792565745672241241407885774460742667709467590307887383516686613835637081075935390468399287997135598624972121606158583330365828117732690995019786309364873577220860162886102126674542853241230898077030132741166531733998261041284924233629053597268333719914825597337749014997329030373194713092888413358831726396583099045882925823908981276156822313185787398928262659080663146282871300315127475234301563509424621651250780068493605591242141295593050212939988879310608577585833572430324676715319344097986932239699485152931402485818923817310309342334500977526436353680777439475082131660685741978007849030101924010181944813759973448544595877327941980540742154287160509004988746690047698792246931408245756026830642311830822686333009814752842040183270202865200997958465919756563919729373538963011683008222173975731476922619050730551939265243233172964476210046496986142494734549279790684654107869606484901683779272938195417046549749083872793696278859059765197663613708378486783161597660523059451812103660343949403550485566934485871669786460190322980665108088338904109007150831432638732973053418158160417696735914152595008246822075333957098263572931141322075543371010842266915315593412341839245813960660545267325327202569604786452399678129590918997525729810969451801237000554335081522542498935566294770265363779653442905139201665058933038733947767941790776508697127708387216675203890755075130538029041461638148824053496105546980856284731914759553890496726814264130185651650410418293463232948648480418585749373627985606532300984257124169399300828155604168634099693832015304159939696134901008012169415086871520835183989539498850453675296734813255961228707314778660025119992903730844044285253849894702768204389452852090097025662902294005991974506089555889744643847623954934672864525458384504183790949358745233836392126875940015833543560456167951259890617623384643645167786469903993555226921071215425541742326549783429200821287405916262354933168085188504129818014515005006991483670209539258720714061437068560808870449060850850385805779748610754141880113277701878254154455511978517708815305554131458071587219162354901858256965838211576457963568935338372077827980813946570955675080698051047675751299269178972267843338367166509419928593791640811650770193837416109166825142025756279044238208849344441289078876177348570579352688034733979787944009139616335991420241363246204911451869842586830189262552080410808144681645431933024476859271092791301444513183371847149817812964099855740847954055929816678676290541796895602733883485261032368954188768357849303186971818117434433259903387914909274621614160392745817236741243922365456636457702351329263783245260197538817605472541589249514383501874037180479494648601676999815402803644850320815337977089183265019254585689718702381100662721598283758007354391147917328471666916101081638745116604243759206901678694656979414318808975430938728655884232597756429755829029735450465424560089768678158787165436947320040556317022945634536496768471299772279788094365993971341485191888859820651104475306851499950321398691519389889397052833193138325808516967829451264370816461009340368561544797918451792890829689592568604602877666355258362484242396913982187929330949872427665302056539046258328175330750440123258952312163543107710547711638027451328659650083470772742419914490548589797715783387799462113221659140342092759209164070344671848086737366073712724994785055859973197887043601309516194452931496744030787721803589698213495506370009951919977907588833845629589015778967378513060996987561274132417705173578665220462016232753745580630983925406388796610478921249411440593957397018623383344372222725470511851294686015951268694657362054757379622632618678438198432489697402203059418583606753008741053382404672806542883298641154959294155834575023596399541256868975003975796528374197191212583279798141284216064397792904193485356273546495264004954153305510154746059186959050929714483441026956332525701349714975096915757712615880865678262164401808885716006789826730610258228745530774787529000232504388924570337608426803254010227271699282434046810637625128215472903454251109861203519341128356407938767762938852656235069231056800098195546036810591649670540380504970162150771987104929883940196925257817509975194366996069675131001617921511157479983350385169680711921926492435658113301701117611973060511794200014924396379398512976600566827278411701205595426844703329681766250746712279547381711470234488745166931313755888760776822102079451759471922584507713915994440697581798211754892232688582739570669378121496683990003077692694818444224675238391839933491626248709794625795140271934335796899749725112561757054620010067737840420618845395518847300043242444220998678249799165833250817482188577323978323958472753639446555451211986745595804904558658528946157251147612150674436008568492318633578620438083369669108085036176208405475006610288793707323161512274802361306094491365572572965875099713673963856962667994345558403405076328200352109588419090890566087722603124445178781480318891501635702606815699682896897244532757906750749059207691341026385615212368285845506349477704724205313455800820791298795688068719123426584489915289274463538023306438822986138753637467484480267370244349915739966910353113757353473573788651898701287054954084955818607549289048427615144890192043241420188073319998140936888901600838705007459786395447172924403233538291092926548607372930034296026491482661169530655108259308844725592766703193402192554819892342973849538148607589295548334536323743388881465502553098956340490836989045221599544304067355349649628800345319951647914208506955995153660892733506856338765673105606964092190298380291081717508996030993667982844686565549092998698364845049763317679231507738275765187451337657317388500892435128517418277467789968435866384279799933374852145800665300868266672302496331106276675946916888698607540739447081841501117236612757775890081983292214933312094794775301607675182918440390139574140573864925522267720337757717246988404904371512944330328901869331999760404276659997878452545035110724271689880275191589151354959487679935184131311060688283369395921422731281911219468834836356751921360446494817649352097765029054314081508657756528570625157773903820776493037960885428362747180056877521806461424220450473617466406298909016779618531781778692566588608546993537795212920393588435022289101200720837517083804620640093153977126597055603850506274490700486136506983810431641170426274889964491610238611114526055785888915686721330943505048086230641013343178108163596210370334050396608968667054162285979445758247298069927596564431321290658379059319225576701275364542094386452326949856074498706071883927975220633117669597626478619588704698801633260304650820069557354774671778540450648902932604804390767304882728913938427899217145161241633559042689174085849657609923728725261779258752646578179227578145731582646374640496409528755053315394433440346523939329763503919312481984009982984160713112706995231335414858003988294149552512638254263899324359356051348682398554554239149278609670772552051059332774361802921567608467223991777143678134905758385017054271273146367201511976535401528207959576467639908969045659078172295085538869263614632774082120524604785555995572047349004745846736131368790375237470240405523623532001568931404242457175200597227946049597705941205692554618319628139517358746191300358363885878165486955232161942997271764829751139775313897425413509719640197374595545582616576562671400824754763048963485662984383309528315831362712737483145373702364500932225656740680076239222418695792752108095748365314137224254309984668302153553009801479120461511966353739684352104786729532280957461322576969460076881854256914941027659990273478928907438696205834424672971048860810858495133767266926395108912873336031529383086284943372860295963029723490891086803358617666711283668638140424167231317386078161468535358203056112888144276078216070422432752879848549312189379746473643927363734962919687632837289217618149488335002869138753895621848332257423546677525501199716581293978952386995505515758522065600534701055743119818073955974112131733184318014232837113443746904065881309475085473708349653374489784110236299689536299422200805277322606151416885106660341101856791349556823040197872038094343852443672140665806744795227035480517891142553961857543867975497195648612983982692060145411075557361737934956563236564220360864734081326277931025982585817055737397037074780206661636247673233528506671239957870895634940900548242241814148945181589444883754792942650028018735988159490758122483755976108751826539557513004767018761797247851431050003104234471217079821751273559426272351207444435797969188999021619009005324632170217992432383015011370246636581525487645734103928182118922742397680122532936407982442011380366386484294367858230814305923302661802122164094791689535194575712660815996921031757191902626143621649169328491579251818272914534494048848083686743677004199218596710096381875960198088726453212171237198577733192517579980668520928525536175922818918019260771161694477491198605103690869957683171490122381139402604744845536728809999261395182771545665304267631742950309436000391566251269250436488733380548495824320448846039125813146152637874658102169679069956391289900595815192483978655647637052128747041059321555820802641134733416332097503172774165327517283996344344201498490726541203937558232173559555468342586860075974293346483337528455506882280503993693858494804150658015486931305780873478436974895734288269664077863621156861439445021475433771045318233058412316643739248444780254972020263520571489217920217719155919193898425228100949101711989570606501214704199986286760810030074745956955911574933562386844849620357524296711663095002910734698090733800588521336313907843874110488362039271395828557652054238690867680728558462958733054377463408282136650884529573183804542101832402639898631229201441750001619422208630403926227550303635720075477314239045916815555789955965057463373930695094412599334037958596208357930683161454514166011488424266926855103001743879733820659618505229179276063887771362219300293016614563617860848289217736587313858730580711480696862490874034850794269087394977019012989829273386011864293502641868489939196640157809748817599523653599937241742681124587540154924610827661459004746078805373481631576032854916688766574727810474251211071343519018457607052630648299132915837418112417731176620165218831420115576716275685170421303951640853325148192996022478810317216497991371658686478167288746019227326955122188687685244560711573613309237186574756615670415308712335082241876794778501042292932772290476553618230557637331781682534122802127295964242096484360654158607557958220499861546495313189997408196242394819282747254146025317513527018833289032670434043728601261014758641466500981669729166104132620890438674772703861823304056190618138571618893345951925371500292621112711256891048218944514082192984000058710456430084086602651110832003531554098916253100533648357603406802686746322191891364862813022439766431084298540321090834870318357522686373305840136826214226149713203465735941212838822173997829292917181212352691588976638157791959142484975410992868003753033270866701661247587517568706053084189445823695012985689909708923293597961424785332668344970825586272704156332471265259052597560039854304270088471081679586089788231664345810466857987841036365723527508880718307669228844623270323696743907813989741467006634402313266189349751735677413702773015287311835104729793351237243511052389461126330281437913305773894804049472950023771992811145993536795140286354181028599542876673942147537687293305104364671466042029824329560354932229137754073108425525840994975857579994410969034971508751281193949335785807493167824843919367922918356642455041580877762982068914257847085442989752717338616821842701435053236301132792888597451697263884236834239561136945721005167184927296040888566038215372468599647449219341543722391211194292063666926036002694378086518987764066216492535333747420775027972081458530972532427362500208667482937373350603879278198876026043832266922430240005002374309541910261146046548920282877476322788913993124016407400465310651353712343235743461000464365496256942348051288771874907473836758715010386535817846946516297081927784374527465122731725058070707864939360443521500963349025498686118576168374979496535380404273257380539770914931312560791685050364785581387778227103224049826677896545808091182522185869077854573810923492635957546404795830406405551684101597906348732946723133273898401833438192905121633923201549052495802618278921580457402497607133276385151245419767564271014705877895438127754208399400845342604858549332501992098939545766442572240692111255095533854642072176619988673662743265988626803901288177034855545683050627404883324958476188921159781849749136319257253808247370995858105386970136014066941611982796022575995757373439698637746014927294547367480633484083438921323088470988630842301246359991027156670669172565594801655536682432232749600422637225104755499300637378487758460880032969746508357985573386895190349102272944546621677229860354618499651648493703957186506409969108351496790787105734686664231399380765253208192034400834685007902040039399817713738517631181632243592427617787877335402319477702099504708245495344004535141142921129362555553179714688783297614624352653997555527016926567247510127796775357429310513575989184670882080607372075680071805730152972992403242989660567809681969522842030772476201296834868666054221606382389752902972455279544554883054898253415840158073917819642720623681115202674565118590660237728743920841992717982395964967273287752847641293292489437047898766538092850755178160219742516447517801875160457129054130689857967322591370864852043050336521552693835497597075517176802015821057138115132832195554940487716191568177761219280772053148492063419476305260077796502332800119046672220516842001444125958147573178851845291630619869902078228899477479113486781894878577358156806376744972069749902069768136349443087597966711833174359953109495486466791669468412581411109367114447690390459302371096660309037608513810923188791894009305569415950648237734629091160847978565463454881775144239722026992254857616167477840731178670257175792694673045102755053167789037349900584246254740380685568091094199394279309016611545219428146006783311603274553133634836040769818042479921608471299125748323803242801466570895553772197530452233161160147782381871073413140681443563033667584740309111533086689364335778550610118471412369726072184100363544577576141654319457858710702670872859064699172955240862431129600122497496383229335184667636412767959945822651643773011305272111752966615043787322404076679586291391427613766544782640251104320298804899930234083179043897372179422827926782947152051919767945464667926264931361606319500792502718860600152632480360575378111860001359501292711813837772068367658637342919825643864026930030502750987477028648206812674809504859306963903044297303622895658643418217520629494609707719173671342580151698120960814698017865635501831189899884739000046570126252551256538158479433891575101156814178201981212875434366816315908917294557303310696376007088825894619654190638065836777586755745893495538977379675229499496056823155805434752755138325023447907398104389488844062182620811565537051401302213530205831586856743838296781959218722873794405188448619357917067805570915893788459024789301779566346964278533143545832137452813321674631729552421845130168202494862675828867004830484620770040918734971971122270643104490543051804252526685332018265992717498723165369232060017260426662929754620213907610676795197029501878148056735605015239865356797110471572253253265600945440092811222173912682151195801654893085082289616816779040692201380905753515685544215935257957656857723568957080664831890392370909014896559347650180778717781525033959433430572019539529743937464269938407778422369560380064679357721809879102211671083619313811616247652630540356623204720643272259936785805333357589916619291311497390952470613816467807416905924043353962505900109906132305419778275523932063335265385164866514398219239635119271652065386510550071952539247800704376263910708860229886576422744467749281584188000610528833573595461494682551306322064507445298759749865474360194621926445480137669644889649270638375906199032859816527763317297610507084981263823487820111155686459491501982171325404693951431537906714795539675898896738546950228729962559249549113181998739008953670928846380160440482462522534149212016336226974104287614451960637362242104604374926258598353331306836217284619891473512182704436507004272005991096470626319141200525289342922736027384370135473530091028223249129967965835541303663504750352528457560801248062322283266865628813595834505530820288788422332108928199099585404957375667187234545525461584611700584060937167426256496301141372099150390375474943763237710250164193735219555127588236716334525909658002351250976217306354022082230045365642945012755721737913366550065281181222251326978701161924091196838171954134487345223455956570516493233189651976851765892012035685867553378579986973643410776633447271696420273563939358987503569936121016573297033720617373809959820213327643556204025359952977529614220126902804553557470091363826639257820751800268941323208778040791189169501620393773004762443245940634065581552739127665127626866358269894347705479862672794817496364468881298009167880449946185462829802751002276193536365990063118782485248682943263132276166769498370022568706064795757915750723783275247764756811115195623922056553399584899697024947080878027912036247628997170103666897496115312054537322410572050484011767937745199161626788025823032576396796578453968959360183368350888018092039497511408345915348099874007970418152378804208821159708953394799768122894654990142392543472936602099602847966591427656097139156812878431154920818838634343890715444934403624127920671685454120705427560685662143642137078347228443483947188801696554274142313107875606873639282832039243400476455974113570031196746081926652690113720064545132008005345485122050797650945085367486590592557082370480777250056815231301702002655795053324102567153989513432306140183152222630677220245616742215576874801370841123850808482979525211142510987993367608866375403526762974480621151102241388719883526633739081072026934906288430077460875812442837856235421755508830525247078780146053350253801777298166628744122000380904112249072876670804741015632351643479069181979081094275155781133280145323659439156021169523610757072017582808807818248360939749570378533486114336024632022274011917635387769632608981910066201089180374118460917546969848566581336166982398264398264799398584380388919561191039827428887128372413529236307317390340702403759431665235557363840019691246128764803095917678112823643077334610321680234837560604473766344421187924837997986224698295935826194443270284981018797064843173981239493017262157235076761880911068644122320243234685697308586320876382099796914239310713914804114553235301136152449037814723211710133919156939383279365277371261747060339921780512875627117511326313141395879821976169660909111145594183238931048905639535779299135976812925421837695893142665825184824440231928836575674516648575098292692009090755775408551914305125196716804461295062712782495490519836616663766712588700466213429902309905607933614592076235735116022212172349532656892906249815840014254752005617333802812730377456955997933344446160108184204758783286271544822776666016979217415633037587638348914847951153829989555416345844139824294044889285840820873943537823081629564412995646129078182233866677605411958446080547098859688791211332811618737633706341693053295434202860147316887006372649668822877086141272402124484055402461649381331333353560097061107327781226273674840048639101722060909707327929707340335989344707528345377301652784827352691237812347412918456248431392648345398867971935875181868239678447823137262883501227294140310325255995631093153575900698340289753867281972956055632463326129718681878223850122553441407473255102051343137647499391596398137017793017204487485262174825544433960452620226743951223972597328639240225505792412483820906309923258176259028696465668294643071584816257144552063119860694284291261876328501638149266692504952945658205314450483227405495106289033478297528128514488935889202767081210922607170734446725566006635186719438649398613805344985823491696566290979885295872647976800742729366564275975094274402844300694628535626842864780633118288336250998607873997507911679347972120705195521847252638639365671183353978072736486443385111980370688335737708797465863310413867544853034663899090303238800623943434972978525806662183808322510264638367373384770045791714963799281909679827261042860569463561749880558546990795291642793167542562430535199381785881389944063807743945757659826086326718966254597165163362203422214941001632599961497093369418275182364573525048857833013412798832962307936222765401333490630733017217060984172247095334087080721368815717887792049445506851425455786620990151576812637672612572918680198459794548204642346928962803107966415987474976399417038976275797709770632286178868849185222791773667973295202116640933188114505577471249441924522502420233084243407438293345451735767608160127996764661844508644797739539447996067480750554017890991872439147655052182612516370369594088903892212709723434996159216185328815152338582336944072071567161016059703543295911201524843634891253851111480881122719012688224318577279716603078369167328928578051607271028643434702101307290564012954231955036372378150256950910363683209723880714273818205144672460248881357589085816735134882715543515605108326997101724519336538752907704777349154411680974729395207463017180048269898940266942469327102973004365283313353998398371246082401648775491654022678105074519428895698414104065172857946695231988823600842661124556959534938752436069953871668028553286273048869003606682938431818547811001805585299599648076367938636926562190699857923654340246662480139268388613067266149014701291978280020792401672839734253535789397531841048198987868855024607499252683872302665458871197061709268630314354777922604066869944306067724240000564712589047457274756785545051382830442752112815466494909327203689167842694605691671475505534881185862569392591409200641773871978133156137882644958735267854310303349641070419586901439041379969256384091833578134803367541075865576175187994163011447051661510928225544588468735302519293558180263072101500723235566477958702371573129715341890573377461883535454971021615676460716405511635293535535811722204153887950588520784450166772744280288073133844018107185550123842904847870014000652713998510436852747495510925226299578151375579179088451940081503686010469081200906410939343980308085749212133259393685280383643912314238444263568564049907249937320144200513056966283074927946106339871362875190465972387595778115156339721829062505914845577260909368679735832091763332240067425706894809434407316020182404074636877133214849631992674294551641832345369392757480904839805461953425533093828900966034851724632913601363034880965299065923593024151088368744666677717376732639846030524895793090665962087681587317733305106312685445146562666079274082806609614390161750732725652463145958671094333045973290039713737435206017612211001563969093618921121017537374282617805481200049260168039193297371574505456282076593250838995286670504271286974057548285748254765436530292100129165072422672099755875312249925313779774669993582735962485584560634220637531214030693779206957685531233724591132154980963464419117073262632720708126574230528289122877730560516119651374515927012496353402687878763680919925709426392123625129617205930474041729264657164910189660101221039282216542760694246507875179106892708211355626536805741722809479843239578969585533723572480927751654997672676604494947380942236320888787510211432591831843384156764161560965306573239943952723950764777828722577471706930392071107542609161788514632260156044656733869296459800207246440807910894845978014662253865950721020663945240920019902396583834574952338239983533104195632561357597510580414650372497167921056701787847617710351085911579878343210894267296838775678479699008987293388871537641570557543134797029347888890635375850863878632439677021232694778889359138290603350032945767696306231196899064150505245888725107144490890245140995070438737769775060657019981854794674534636311145147652565724513562937254000756669547975223263480870920671668572662751135311595802398493118944645060868857994704348592618295506944219212982298463120491870866279585468060396612032315484738373215398916377199708928592051209140597720179020151909759481596737125998471013493869808080236572962394366527723149745490575386772729939303897400295778317576558589306608491839956181381082659783382610092665489839050021933128692671339307747809527514756364926655758400537731781696094779093905333933453117711284039797467489912178112035378699881247861260227018334286438610844554497552802344731422015565540534872731073269055694596163343643387979155211919008304230277710544146628538465677093626410939447901741618634355315627265055894667646206260515531392476357137156956362017029492734725587285800117453867606154634790730922751789178686095655374138796763060274355031637055870142034234294138663773155437029453188326439360595254248740082103258865829745367835281102729959299240413145318970492702875075066233921491380656647674390739209239224302302326061623993018511712192110273397421114575595755455119969459311237241351536341430280291004519068622960922857986035106579922029301328644890294626425641855923890933471217575677009571775364392913728997541332091234291120242248207915898025254513695459313012822920043743402931721855207396580159866079904149505162900344313644076625281097838537145822442754366673517506628121825311241971577092052253743792366826904569248335838895194439774305138822505811366819485940779681338936305969528702989699879925806543821687970001077136102662498989727655579762800116665999642881758824475816136036413102240303216976627775794711934407965147787344445159575625529045770821681333321085554817169490185192380024208975923720388310142671667844977971046882443921187108827065317520659763220492774772955056911587677154552414820592993135373596826319794013798584984971960669543018931614445079776455290574723917931621766250537971438960490355016745160341884515260291018810464280639991230366049187278719398766088378345523281865162653456995870743148756130848382142476566998168953894895291733994520465168600731052518929889021596246555961424954965287612737986318754572635140203191326533152375505157786964130004845801151651272408140049769647336317908944086666310019098092553690873703760663673821778128726203872284072742032214941141239655000498458122779186203958856681220371860167739503076626751481239651683007890739440595091260628640957859913211788199342657741612743076400916017535978941531194960935451241305651524765222417519051742826796451557074445887967445102228519025034442609659785481313883021928374056886196557811147516781835772291111743823025446956646166755487785915376772939094418132348504815248293927852060928000087727882710639617486426173297134104879305366990679366495441641296212111659260883351258463113022012767179588639449810547143736705115503225117527018632530747240430562955743318821340363908916854505146210602318671344632450873833034960903957354547711597692730411236192071429787168684428611223961021385590060513438095378179013037577597978196622827178342821481363129928221369823644890081650957685656888824619343714399851951251496025326019471529420813379681248326851784725975578419377350531286385636907378524940943481240414432534023956290644661031738355115124713399440668789422702598757221686443733753679582429248295051727550689772304066378167262576605724732014167829602333221424566186684252964444415521176733080671172327953068063724098497838641476481663621710032289425002510504149334031721537587345157940737929309047958294615589100870463619305346461370220602017405279856901162884844566066182184649548205984657067660959165781862382698785400780914391744556888647723914380017913441648851911394200522803920565327646860220335381688497112519967044080515881808934819173997786657257366722453624448884847763892384018253377975939261668948467577850321603735007317973355265322757946843181192606995827041750779102704930057752248287536152456203319550619343300719881975454481550411302694668474837841262239177702080545741067439719326698042659923032577426141005522671478890537779364046909407131562684119956621779503426404726736093849716011629285832494912333712829457496468623167678823323100737506977033866424591000179033102055385999370680145500311947965468342524012840098856684404009134052419897732577940526135835052384640553911908880125748053038000175775010438238993725457030838664697256651203521374314099779032495627726602860722463380970498032527002580332216257263386784760551360638959015130531018695498438352924563881627880244358300387364107137977569341031027756013067397732784918369207917818597889942025521149171406409835622814600068046872858468889167108649780092696289853212887941356936453262277261205495119205279457044444071193859015688236923845557040221391273478043265672558791632783502106261488375308008013122492143582163650151534711950320798423080711813908660294918521802124858554795814178043128910460209497008694346698790530275254168245792761914619759306454732067909424959099399694275129938368680348120952675745518572712596834836032920692722451442315353929112034032183626854564905244659125909417700793040885843717857941966616428175721693320930551060264168931824659114183542846934196988123416329560976710292931234224361106232889059586947034951224556725270420870974833174812753611543287454185346120184907541729789827006090361020746571253846058829098377071834137030764494118079709649264573883800284427953089697851160782741949105420151973160304002501895274789323515606335342965976162436105975693842758895170393892254545188677947613726136455232392623602679224948915720704779105437516578758463961707575538498315042279666466858272406863400797047778067892371481139660568566284327503060640851200823680830680915451192587517750768352889509666255648145012060758620415709163776464825258594018057715920651219061900448196683623554054393868537020237572607410424552828585041416035151766774545270357059685990056752386909508719000659590881708264761717279111777082680265729382063194910781426046598460260105492988820028165210661625508227285779695029707263997207202412540990219406639820175608126620035919789595072917339441721296315417623863806820963055625793710797978074584624938821040977142875801750410244923009003266689775432949872455741341562563631635284612379273117627674194541899556635664011894109462450796401244375758741279152928331945976460274841745253698655137893313764146360521519276782160374234426896258896810407271937046092340457176269658802103316218539548395835050885638042848878010035684192856749043093822350982155194791746669779441379202778504559382737151739325606693169783262321556477503782130894245565362353283549022920863124033172210357191210485949619181805491680179186256847316064398591804066005263755767590478046932773701786094076283403358012690640784930194253448899647136520873144387681164298241018427277444763427954987289832170783671146574440448414558951425875700939185739099547966409423458466373235666202915467753257660976018514389915982697421130638148214718621343271565821260883346496781077195460157819557786714087266258464988820164833358506132491619123749958980160055225446165108365337437314623628658907872461266813685534205780642143448079058157714558175269309359362850369452948457064767042099907621315992720593993541140974436627078700341999333115921092075071014796578121636107299798431723294518548075118576434451962483317938705536066312831223583956967383002958925079357515249438346571742054104296975027848485785098711528676075016783136510510696874567881663008768287345023306097651925599661705053760552337803513064319960110739480860340187544006629260527218407465138558758265755743223908057943985009971381183219562870806919463986065820166671662880682766101556378564230145049799566837263100604972356289614651022141789557215076209187880867234904260314576284148753541550269931325181173387950430987751173615873987032707040057305632944094903840093621751250596366811056190423519337906442196152037831589253209812616889939350824367036685525392517199111235568528666429842705416117366106806222734705994044264671919373320897787366137279485773009743874209726499040829490901607303982113247715672505177374574918600220128336681793496498267366169184721426969572383495398714083232842941114692365255329042486778658863212995224047953294515533471644974405369987945181073528452971319245533808729115101676166433596011383270229517070658930283975599034582644142378456938557575922135040632305656471558255369187201475046203916588769583867723572540601995113899388559288353578135489318665883959394419926147817255203153865046679716059848612130650872681244917883365953080437856836135524601413111673473470781997800597181087307375542041872903833369248600096478149324488381282733169897208558570323162335796695832045674230658020949340239699222137159951185504634088202850746509658679346615570005937752805635938244626868376846718686652685746511590833423779198375146292384604950079067486734318659519433198378896818016567040634845718451915503258368857180876698595242327478459844292828499678480645710583658966506073449488230049832295446338717523047600278521839071049402996226631031910241821620283470353212699497990625334524057020165499226253711227068386446421483980871166891508232289030446844884695463534038641916336831045562553834834408544369090043332019532880899065606571349146040982476742911241835621210503849420755854437334600193489965888899852170055530897418776601088603833979633336545948051403953605578357845335247385257080966200560913784013951706603386627772213594610881483672600702851831569997937931192592286894596886541947363930636846116832630200035853892303331948975232734643477207750831693861144107592589724506721136242627007989710205968982926210669710418884218169298254347285446815303442195854508662252910588899831713683833790770068586728730919336372487930496759054321745122218600286100741548814035888707051943065620167693115818445171638695386426353170699520742390576198845027458794756146674674250694282868939771094777196722268022374320135187459912619687774112171081576472217901740786044704982568833539076444301485688690919437168039771706315922396722878989205475212852797676341370606186071337185922618129187958665968651456560139088293386335832984133461663644119622193749092042269188864672287228554778255142020457396235650466657411844231134246982154082824496030307429510871974186246479252435773564277946171792524460363845853070980088545663950159059117415946895155787424723312530030640478361377264666201583646970892647342250088698491005408910320466273962092084834179134797980891493296130013024260466504847538545800170323237947173933574718472226038013726458955955481410023804599001688675759129418192083544768861404819948938114822897295245636294677996268797344746328418098523592102692800043221496572287694068735298100132268505145183645926679309171135573749592802976749242094734264401407565277463434024091873237257998409015732652599904301699174196961015269739631167395275457636929799801312053983966330872916093482438259060706201894663090425481490529090332821301751482056232860672432275867345397490548879026313209617802153236050614653262238704322963600195521072713481840137869561908538406984557177524794561439934002856397589194866042206304690651491166352463631165738055033420168102680472261634607471888655874305037600503835810875949728134796369191599815944222984461695876272146896787438804128445536591211425694461314380176949249982611934411136547289856392452826716229671527746179904822997562628269698756939230615948897035578410950901389645695310465261998160565520706151161885035128267443389973264794909104622503057896146216166399316382118549175867974841434965697501587993822025367331778752969651419981041480817739948525407675348539280293605121767058807300194253237588351718080300998678927260421330506258227961731843791354389905107794449280083857250345067681331932285969181655280452918765670104720012736440110877716610916857583601637747334444010487598191628052175472559165039920775984132130370374041678651713503723335963403509505437563506442049691986992410954728813820250247601046031119602352690764350014215225654908472659059882209649511224291518290909618118951292551122324787682192760928341070413959882865311746752211944693362414480467317648299410483082197754199739643409131858466807492897095932303590458827906717733923795110956978355376593928593644500290866828815115481717532726181564025077245130540264214526291781818506850925141723535548326220692450759312203979974927610454153022880481600724025105607865436567345014384844681899710414977858410844245439156842227239811343384821383336250928053744425347622603553829065585652094875818351782304811416452909971188260141389110212576675129328390871366681217468198004943752550760070514740585109006414073089648877634899204846259242361951529279570824013303141311081469795984957486270122704169999013718629270270553364857954501123019080560875217439089547063578956568467190314884412573824434448919883682720864884213425698204950555954085407102903264394615993178953122012312392898572874265439901105159282972234894779137015923577743468478525933086008265377250666678125547506548195555954918690522010883188698150950241901031550476456864982082390001364485370756553175597169850389508117638269076175464241604226140602403141180968165417541429843578163157538984181773773418585407654142816720835712381553372290188973502290705518927264785802153397406028011638406256479691940452354593891272346038288196360970135000820330372186419783098882427037234496247125088247644494262465902359006812635089412713157638504566799629677027960795386952964328480774194764044332819285579395292069913863134998390329012576617526707776132006071909497067727424856678230968981604189675409805223261324410377396302285416050229598304580711254447636810408608458995014431640006042305405906374600299969891858787405010827775227447023306382775189552881614397798692304129546326132567632969610538975419625758402689710562209756111591047720230830042634050071096010632025653244648950610661354746880351725357697491065881158010627986586629322056002980711423707279828590911581554963204906985591296071200008206960049257738055206659495220958651042164452807107361501233312100031797856654002987832397413932621382260007114010799073975239023993196294977120258251720678737662754616193190448472130670032045482236906979713514582974163227944769979360940203636037854799454286999724165433622558844332276208570149749669203806283997242345313164934111141736922326571170792398361488429768744304219539554341932867063153380335960903161831426657574757645707518040982164329896532470112048990483402475781341877067649749515855382354396130774476835612711094267312845178142731284857467659613284758951999243623626577531973669522403294285024322760502433721243302098630252927248650433232911972526959591970733474622489513620952013201147456771527329124292818366429800257060513430341229803342519875325782543316355269200102467190387053827611316476106205583339543608589655752578245068211602052662048669705071789504389882579311028526097468555149401472691987270408283367938139111818451284101545390356003625598544366871952320168707071657267157897341776955332088662043135223992062808832387714714183123186391298155069491178082458940914110374400008013298436007624484200802229247644356931226666635846606662153197122884382580484332427521977770347519326966966712137763041531531323264369229226403785420840724703781185506064040803774403562436901994516983362558377103344883844993766851259240312292546281708506666896678154301333327511561815627688210993075246020727822666935116115279451814887159502629787754094337491888298651952371466933565187267551120917694438189429658821060877345917646102380123525892789891199142008791890266829159328417787685253891352737337227215241839184806081775733837242308090892270673580327006562349063799480903353182485332574467711411682666298937963229292556490541016350232257784820019329034791554732952609278221744143697418863272353850422942070576040924106697258138222015951722722687595342876239415984112936301720093272929890043419895509484758194480766805335117716302320792525724528373855009921415841526257288364986262282112596526027067547759479655747768737441220869648791614594716621755978247815012971126409876480583524706784938440054823038438196506162794757361160628477150997736256418157838503693645651333691723314142491503092450824652316340067978978357615296138680521606317534590411641695789676227287353044620631090313681770807344776027965703657464452972194379581918470763746106524274187168409358385198159809962655079954357738533591048939711768311078431977008391335632198477967196353005733072193036205738737488199433918206074562282346520870902544115121592357866470798906761957929890744185573281052783709693183473759231953190972287581450354247524439417721786282452508823582769062605064978821556562549743377230166396714670364401850675080358578233746125627658985264941300861458778984053236997234852659733539669796492629962768208077927755555226631666229787131806543762235803127403716082008393572246974607905348396095155371401248921091449764148592942666929819974254820983435115823632749127701620268408265247327760310030945095901011380380886436593270718729910121078022421119889369544085859363142460689519903283320090279358796405125317944411910757373627147399232180101192860230104396406066280954225436227138697030912238316014513985405367002782471354347559947080087763040496069613893891832882523497501144650515883286763397594213684511503828869242365404023706005931272132875471248014244234926480856690474016700863823995750955088969116577542785765282765115346055898283681224676023984083128042441732490077851274877440844847179842624477780853423990668027195890298174200047115736586525026453536267152299770285040288666826571768856842097731919618724687591067549790113875957352992758406877484457498940202329725069212021998542682813766781544337809158253992575861150007273205468560623621236920870392066621913443259622219154533790395324759271154263922899226145160904660868060946353071767983544039542852625059756998454458438439600767852429524867781804364684521871559372500352035306831940199329289140003470024479618486995503000474926817140983342374756052635987952519237467890036277128035667573988972945323523407656177189264523614526292052809759440022306028024989672874121872331542881841272160518842049365933117498743999080788894076888034834239322269196887594140773561389286003042379521711693899693256056642320809997549301721054537236729728258510262227302924899963934363560141730325992005818068837901714504533110563768796077824594410304438407618348801602914501417002249820525857478303498722219671846240211211554491622668128978556598751600520702552873788719119767727736379451966149035972264759033893923277597019556283371046913688525508997966357083850705070320110455003131649443724624687190247983056929772914941197370590445964090300271187670317955169358565903361009032583657266084312794664623327258285220645736876156149670052743123532989543228767903438576335104465134112872480703321998048984986968260485560457663176187710712895275235979535017910616083835642814763978272636143221043949619864455761268140907777572468358424558002077507963841511529355755177658556702710397119117257264594670183969701593304898144078789168148415570980071444308896234837847593640444028898615364895821626142245118250693843148329741351546940200350603773882427250756547135690428689719480688923110783507255108562220832306916116638426953675605600910717422399564281201766504525352867455267752310267345624036043896227742934283894982017495066129472892291377545058672011809573076663603676043431730445868738573744398171377467739925624015986337527947925858120386368192098178433475429203944526741839592706809178000474314157926033316648963325796981861850515920735583617358414681608585329237016481444410136583852308161332872561615353886934895806352582416228199269080811036692041066882662667934738015819127803067571424219253389030374261011140865549790450304896710205881352069877296333227325783162681375659074868653977412705257050420882172785074882231839811998383355561120211765820144992729676687890503906822020597276959370268700210784173014131173146082222329496686018002413941098955944323525714346091447011759765239401056279126928790964163954618996932915433186568282485208061578268700211768448464052988096180856466978367010926045713093979990614575308876519543795134538086327589040843127876922723837873623841876214086409623102786971261994897711266534217270277225352224327862240695460265402010678905297061783499669429694830093657427127862972668490202318602973783206167101920824874011156956625224413504627083337589167681185634857082240467054295979340084812956256191482179831735844915841312513123610318058390617679881784469440744488991039533342324755185483673761817363285833647416014538671658675666044372536460481650563236938437020874505785187088056076583847644875326166667443102100768995426410248954040706767250307049999407230042264325341594899879550300327361638049272626632631884361765721790511966825963112825347875905051598333012697027812812802518173769792645420024302642633417250916613318554796212148738213280723493188960510535377898899222719153410386170382085385138617005683881146747897955594788460797137806754125493906517990205851483739158050385091903310818358452922558868662857894128768728544023556049129790169339306570227945316705431045218364275501259361848874457654060289848335075245139429071521421796803050401987787521575600210735761148292901132083251479706120807602451043800211314896705462865276486175267128228373084262892233167347758901018781434737809861980387644849164280636304483043349966305662236781830317157843071608137005137616460712922489773250204131291816873903164624692115367670019965506787715433995354275933578787254815472828705350886457765581455614192290281869210813128874879161037996610515912061476040078990702859805628534131820329561291770633120234038367218723196167313570981301310200945187953440521197195843268446896836503969570276736972445677535752366424020674120800407509849610755528071157112878879753882463395730002237738113101157301512954751906671137069065575823915248224880409655247046424781084129635124662850623855779346899778010024169637147268318574676632994899777436063646698232582688794470182953152470187826557590092145470844830666478992392767659589299412357853363119832187343709147461817398192743675557858255005449600079924420504946524981254613822724253558766071495108405965533227429181655919257455749540235436120829972883731162864537694559884262235308948278523093961488618091217264444664316912369493298150597940399737070416165584642428741674497552870801511854966895817400273281865145562287347986260120667199164919547577337582321404291218995372453208552065858200546515355451543466835270376619458112516566862975010066486892210521117876779682156251637703173457479343775035386848430819450656925054227255686577566821742449191073201594011847339937127690082681201069013765430365215188048169505066849602360001302645336179646147339042712916121177291845400099073040349063139463306851001099990997735249799761275924773798194450616676452411241650675433595794721308604301326925021266627319577790827966523442147139049761433071871422524492754682184851912538955421815652654218140551651891431739804429523151289979128873526926882372966019216181774885818534968633514096838738537915090562817903764913499442864570111143919750428326040227910072625811323063501584168149996322048176836906044875258304651684244592178357032910434922924959019740301429826784401598183750429267010736175258282033088021188167358221835707237972814927236393052775818168099573739840476677113333526095410955649439262987927905493777867435472612440919938130083977767252070590135052586895729557108253402254667544161731585122660163061239286109201004094602170494966033785387772418416635907031405204448777385080459047559071268113925879139863933791971842083577582542978023545634918221610319845381092657446396468947184185924783356494377714381781818668722094936882938942317919185801124887509788570915289214412921312368295629728523816308203377985492952327175490797056539256955509484153245675967387033721403516147272369627664398530201434174384936670331967700448013995804065282069730327393975445655063276792306901636730087574272246839345438691031400042388153442056754120785426844776922444398745318679076473495878934683421167336941894579564859426145597176343304315636249746422683021609494841259388890963958559169992652944061863831296191737751393480902126060253181562860270422021041697687607607592869667444468180304620316748651122381448259169211578203857866551798920248015804056674585641953585692084770681616980369303791317802453659287848497197965584323570928588438552779772332247354071683583207383767190489324470196670727331864457504804439705647816283173328160125849972981661213501023758845111958767459394676498458772694129235530734631331389874999635518648955948230211492563856732544184477959899622709254068492371445500382790460991410289615903179391824884139957364072434335867750901857078732489708717449174930829567565517861897741408717645356024271899372518852903821296616046270466602097484330155189372803424574489935486033799163568912920040938436554290823302055739980212999844658118812346243916803515318914580401538341800415114167077471709672783358911922256999194260644494916891403418633000722716483197079283559344771656930369469392247701362085482157644724221855321523395163662469753022442503171015488964787038937421327624590738331534271801782094803064280351124775518421649689763737621292205924811724424686217582461357668635352315625953130746521951110566305767127798363326259782272824306828357982485700324134660716910647486182952220957712229074752206937755499184369606933722785824097069841622534425128862252165604127335022965483139318343546139039562561255861021846794323409070697590631346748710797510965409343600845919576358761987479019556029733575241120166821825392923933520173075346827393527507487039861148459508348737959246353695509086767425844919474585491542966203460030490223606615361515010094811777990370891303716118912755329334664152032506651109992462042630682516064099104403037339660639015850061587368818289256777692018303148068183752453240016519173275139339054056154829905932479069224516551203373476996649765694202723979497260501015405670320217849928851470768693326134495117636949280635300411299960466761584663494546444123670508779298225562359722681742868954298296080138164934677019400713108832028896331398916320458874949779771105344299556134571879494073632121065175816804331597704239146377563854707430353042611957379320361454693916049024834225289832100799126059614645865196292802608003385421820668109672024776680652733142213145626627627215406440249841957435099480148116546770234517776509229358171163317834978121388627712904512269015591900185085161599818216404851311356184542890450517779003340226348658478410838600063740722834093918785747761603192947163728357159479388097625640367310896368561880934248991288606290004132314145273316878570989972516044193251638233539566564376958909111415801291710629173237243149212767891691641265235973298880482620334032880245773153355572874685928509834805643728871495775242508005557035846642426205729747327878254561821361721114382307594689553105328472829162714159309221843362078014310837131154016775617546737158386956347835602942242336543179746911151284309748330559513034296236180689443207102216618008205931671330407792703093797894648006388519189923836070474170293050128175708097928385862213389725663568150128979407773811461693311079037937874645391453022412363345213449071113103494148328471258685185457740455373178751924805666314726938778708704322280070581000329045759927097318662776242836637373691912413510257888078002920173128700579943443655167056887899622667450449955536205345810891969006243979115008544139359390629056491633321761843068866954158449643758321947199032865728205836382774729439565682719663479666891084205956428643731630404906168665699927506425517001935563929430166360839900534863578633089381191369133871321120024287934490060272021780694192452190274855493845790654545910354189449019676821275856450308112252886741918096155473980798952293668735555753235225086522007822579885300011879938318193063339503224909487468728157795595930434950197861801171808810413065927248242697169275460130931382884288342740847173263101129934394987389349444776346710896773013110586121200640625578196046514047532384209096138367293788977844634598854791543540533651778570373734973042150961715668988079765461508377513730234820296353737573049017060236033841428902391517818058568913134517725291398028627676260945730535487465658775857303623865661300316762915999893098991499848957902427561512501664252046477424691059210613081144950868259081845939630627482609177557451160926420024137867407727126104988548027729961297725578960226560494219080481997123844137235160251559938270668858359949007811898893083382621573158027824189217917679002700482183348614505982153733694188021505141808854702942103673865322029983783139299808841769258315412321523878733073556373658843201187233502664803970158213366814728891451848051074039003315897802613623399738728683697120429588352210670479420495747883051947540620725636387046936239615299718706647333666469909273326052449294038210223729303005335308307775661737204919381367586017255042183746038049068157615011238830682378507268692625735342139677790996889280871465184327222001377077058305103542792936126610514029904883886659511018297862994606863010256006846247981044413363577122482176672074863023720418125080487811288693995445737813901442869268313855091362965269379945428113035507938638387094894199742244704811970168515384391738571567996832813155177881857087266111024856242916846395922482393331576698661056677030995730926435805895169947631544526305640544209291711637105762237447422338795136195383462272328761862351987600564120468241306547543720170858402312357363880804861536704040893663059436552208540935833314560978550549444111733216498007158738070792678436541973616211778044608242065442125689590093322036902644397831056596763332053826994740896263671815882683033803754196744525372518625204440315108462072569095711105497468495528308375061952822139912904948245125167936600668315343894739737329438974948577354913829939262935983468379682131171060561703212350420858905402993754801428254598567264118885851007005709059182138977801630792310484853652074281977553294302189797186697883968810761963003523281239888268248946237431423240044431405350787117144469833299790447613920415461274245099784341694617953768308376474945762498794602094157831686119294441329455295090712684335865671387743473208015575212519504865307261708983991742373480465727452668042406278871137085916040514645898111627547713758111390769056286270371971992898909973835033226176128326722706020016823475016762416999794362296081317869524668168268534892884979664460141161328969800857960615288850084436905397847116314032006556759050427870785126701219643407127590647645513537030907642089286295769832079044244571153617313880410261858862229606967354522284409506896263045371414874474992635393064000636329632520215535130882972184258436336942428026689110162365903368584849484539515094727331125622022417467216060870415098885001137867826374183907719384089323147301403615725638019866234665209549094842898636807014796447137642418926251836421525479326759597655861103979724738523276788118399533157506365500371844159787099419657024291399389367675469950352442790750287565682710905403208559593237375598851802917837026313682798410970156177132092333331550966370073588701516824726672947282297310052598081960137362117399330254108343731734377342006888452749166278047270820837477821002894895679743949637523258917699217074180352093572384216885748338844926494899838896852179930711944802154468751019100214220018953831493295178970184492075260247888391051207141236255501262575772069907182619503701850405001403777938689862207928246410798159547014295886714677342909893599621264816496590529279843615915818058460170292303187786094211857812505628330787854295988560788152651940317826226543785460347801126329333460891277465311840563447029307860109968915392833905876537912913867040886314740309697073030889366750602220752747495172831996225373026219425033773309842243105421610574078115646346786893024958366535223164607201126970983381276960875690066085890753344123785529705259080415341978918073000400315147345110136510324715579271970688163713017209084306666735576783204549545740486774616153144403318613182821198519940966603207944761316946714572722089901042010735657199794268519694108582988877110767658068883350931319042544746471599288064622434124983694014660921446316736469998902913118314913664475501873025344197190283556668650863351327622310986143909387105419988928642127885349181973141332472720005664742706720511895594241797000417978106647563763451905785779011196208181728470092089135710216468407468667188092781484727435581300171564416814594129889592711468344691115341966161964674398721153949171296151904056231801334876844516117695241937570657370361611122409744903532132407563393551731847878167830122687414337791368644780749282424275340032160280077046871508905334153353721779932362786581845872212388665143547573882232342547552967385128470993864996443355919723906406849981423920609425991784084563109175933106296642462430694898429419870292299867184128099342407291335643381215372004203242114545505762691217328400359578582549163977728194165158880884914625097503337555983552833956068038660196565680249073293922975140839803612694492487627167166407863715135801171946001893438996539910049630497022944130836747868090420807962821321293047698606907712672410474885966652235921918489929644054300028871826170078410108321305890175327274281929577011539312252396672912694282393769891539351661447020187362175263064196098203380731579562210814178581582813938659597104352833734802348420273183561242661141453838786924462786679073643282380184828621354829003215038053479358111173093381284688466149177000740011329588083237504412977358761254620276493099258281328795241670671597417147111177709739513964091770433334195570209775748110331476097355189449820721394268824111604218422623642459091904852037255482804902398648705475065877502551301368038231021572849385022741067549816569069763508765673700344563299466596287574066685023724358785715101136044671070395823774409825570061823501191999784270307969370932201291938212664654531102054122762089283527891737394618289718275214335258005697512149714012207421602004170960091239464724278491335546901258580408493481379166815404820270098945063317143226771319780079111588054255375884538517298468159792575380495549098967266676137682391846066608674987736057405952121427963500010589758923172447054163117032708294970888303655438910562426886538751572011792515106687983517663020039815269533025274731481758101436083157589873629307968748236988708728894968350043316269721498932174061688939444832386825553874963179510898981488784032465142009218047500625617793268038518057387515394495359185800906688532327367989422718813485361241958555557695168884406265191194309510194871362541237452655087399207736019515915990375060679724370348061307204868675472615407529124651365526467062248353711223950373410077828059081016426718026978470789622946753863592936781575738340316928640710885881930686939899704566826522361226044888235240549730675416033338490115670986344630170894071111022728135222493314602143372142231408916740101864747496874631780217064463322009572756534735488673154077965136464995122030632882905461808247271606502965089251933917244368766000461737055359735618789992976035649737981757415180856043114512373752615610150089732703431014925574743676809326911168398996379706109670198189791493826150420235225826596206530140599917782275258018480762336889751209403941638580109084603905730424136108909536048046702629251246120291139248457165141012249546463816554179831128854531312456067419026098657186674633375137089619492370885113642679588955635763804845306731259501280981023173567211783499190991176810227419711466814139364181511207982412352935643047289114572336471918837753561637465987682247196493223421302082485630354052044621715310385479584265281378282623681114668584692533665834166396501895421534465312775306474133344831788332073820382182186082246455774832625751823833872503508239365553663742384738064444812584030594799538676520716497037911110916422910535259912607272140883682125776125957574101089817427191992054071212218787541865998742846249448502706175430843788671067006743133914154419134278295940251786827752956946700768598419086637551925632522540226559016549340156570485097325800191083115761632092675496864223933638769265346764074377845182215009298187973662223993048413044758959747019494736507623883361396614101385115612011991687463409488879545645667348868655010769135954571435904851382932473726604720751414354768190086548761576923275948004370675641251595317894588023390436304624970916608248586359152358702018203502967898378300101606216144134475973260213371037889293941732296039556013548095576665905384333184448654814833949461590380384659101666817240683659511009157139774869212641352117458404217168501124056766252444154644940827019008244798371870773149399676933307358823993875385387594463051500940326098460949887371624222652029846179293412270543527462315997369720739925305972874660563607148013546965855741158663258210790981386816904843918228722952096072485338434640785116853315634635624597367003313512639072966527313561694432730726490064412365764947449813951113619937915087493335939894953377273393810269207381702594932905981965422258386092282026788290662014139336572425363890916759072087447662002807390780153456105439330793809461933056376992008607268357779580517953501106806510528241959933040062374489409906463674045720689972006588609343991156886454346215071072978309260291276620839721614544141531958318128360602294821028446864255145245766973070592481216978070937582816668631082813503208426116091792006849005078060530229774538289641420184631629199828755114579473263149957932338452736702298523266516487839260674855591978619934717862194593950170865491441759596414211376325435371256991909466050986497875663372797743254787232889563172437739944566194942346703833921516513439049537144658203982375941564024315320547071020207632283791012087269615864193806057153155958927447543725639498844643218019278482140998222043851186555336032320969474486622017831603446021057809791991674207478716465376960086396117354178733146786812379156415661085653442656772727366998536606006602303465006996842546132123251742459729723207819585610890657482943150847419092552730342509371439700942417763034635262215177681959770638545579856886319682286445346075671939269101763854826378192116520608529266754200664910753172299316812805469256412567790896610008289547507564546467326718085232067443273326803125005719859960919273741248109994137108837521915310646195966370705100847718167884254470812616541799993797662398814305503123096218939951897652175638195956132862880010098666792445831350770251904725944068045216996420418785772603148727719892153535298541232867195754448682877376046751742603214612681260094753167386835981561407232901137420423207388660254838908549662757363787474311261223528330085643228793420567332503329672446939780027105452379378611255443634486576767218036606896339567368521059593951055286791689813902315063348526492194761997073921208939879189303470916381892097126497382195909117842838517936158595841023553598145125447033088288546585688715017562273229171796776336564734326968813974179041481724478365034839462892195452747679082682120217985507675831090621951001512121023029239425898249715532021294196736609893958790605451383746150143250435126412887823927732195470208223194506484671861765606773948675361833749947302924768295353991966027224748300336282468357456870783679127806325751900032961984451638788288606667234592550554874969013352331244402564824405188070731261204883859573000934770242098241989642083512964585958644318939349895816236482909110162545529921566999697118649051076540005228911121638975874985581288175347280765315408672171939554149419221474696528806547081210986712872844341945089298244645132354038676214191342156275050825809281426299239865878437228512680664767633543031955203042076625474010310916501824135817804950860962584866802562986893387600087358184019638945520378401991968120368178508324686435164040847847945041897729917814726404215971661972225551312963344588794117986013335443277784541327511647150328017087832280812312922802734171529142880403062850926692971388041980506955595623270957934802202966260016605739633667912514435188585142279658758263113247778712635865867914563479922058166910647714970864307190460527363556095146579230449871102453808135214876601760607758089174913783335382889596444968307613152418531790095751337359687029126527159053631952432971114167281219597967223901680255747838143533338300499594334222334942755980745314016572985687680002383328830766419305994349198684099134011380567098907755940154852674982172832222910393302502157931531897448357995064641123900611838883555139816405068893403689344394889794262896480578872740369224658618615593896326936995929975812541387623229892515523963893187614708369593346471059692048210056401424450842658419444217442103358622561055743552791511140717022143780820792704174452737324047520906420245782191846230497172855820600633740468814270022461402527819680907115105968779335344007916507786775814231423814666230277190515879345334399831617990595233357005473457696682544461427193392654099120427314116286527593195700649731469920676155964464243816153440204594365717805440210518845276723526514710233135999797550280706214176951493108407915002234136524898962207226860378624158114065570233983419008906538353192818865636178708976496795544110006634738100106011173104953387494919784129459008116395187966040568997413022908862493247735482123931876438682753425462066994337787055271999035242662720892626392601722431705172062521095569152840165827958879890339242028772906391162998173457444494595870704277486606572795405904923985944362587163039126704131373261703565293439097106578090617938943382075756227464526799020806615675652459283271252964250004172906389870992711532552456963123605081215769872015252859157029366549966402772739997808854909171330110076401421523379282819988314427009803936118362167504096082159841454265394873095627794361118412312359450987084400763419197041017591617656324908038754507276592917685974442828706493632832942990865496291238668839759068261020354964686361450072719046420955263127457355928968126300065236379511499679033100941077636909882288244734334009079228257532254038932318650233281180678252610123062491404247857217709303622087912520209270952008593320781806709549711778276250208710497726556942299445809977739700460814663880333281083881650964007068082359597502568265525246213704193851853901310685060580800648284639887459813368036957046209982738292049138438697033726454944971360039540641634690718578080659034585579269200107646603036708139866071759139590809121308981775870532336899933240098549147671867229639359491643701023111893694412384338905907193475467541123961115234972450952856965107633671085068893189828407592895007947165793718765331986170186774351359580406096061879062282272351255562211990742965825387076976096605671683634002777173872143855627602563844737878009664957538635190276312876252646222562811990006845265573938336511878922281332023577048404320038695863162416552001793706324696051902399510078389138143360229437269316470220430165290781231682603825018717900975157016918410936987632326495614605738389324270746627451211357695247821277782885570214942055024526653089877940685116693116368200536291107211750146187105734320601301751208136625923661204662818962537427992837710298015923028062429063465391518458282062289210028983659626004205778036219599630590968546810622936808569211058525566026213478797149325029072139621285385870861731298559271017421531643712049455474838826331112350571644691342551305965565456393688156775084537992889561157628228706619559975800271873435449672084172801920691666484928435329096779003081781274877684339341128534917223141786609017141060771632702417391166967045497795316336728447566591558986969612203004597106202031675958112186154950610750964237564895661846696164874408124247269320740029409381524840641109071956165728721434375047545777138400443710362215502547275576239451738179300059103729988471019067905472462784366895611407923137927169420000673339146472245988834601213962223360475244042320573147905181609314187011422151192993948984109847227935009167089330961018451995265650306988673171914694323921425785454343288297800969724712765383178561834975548724356622363050889157001792479276736463834667210100126156064686881463896990629403654468271649166944750259672538457859549577882651552753181345613137470544810498013235061654623576097532463037146239521110930233627195150853880998157801412193504867300012038728746548342479441028608140337749944912941817471369161828615786302749040589934337854630818978830612722005467250166309646228727927793035960839964038090148797936400754620368031262039458139130273123113364715088384610264446306172439994716799378778601450319719297953287544242521801608319508175241619688661544672247276606259343299923977797158753761141928446614416565753881041692533074546096117843805960402310458960048836177608273515927995536818724992325665057802820087812876063374977058553587551990453477449796228148972215449584539485226468730296861081352818150693939563605484803234512767334116851359057364961827702165842608234086752125144207064165448997599085108001662650462167012866769740927039163071839775138047625079825888711752707903488697679889414571566943786253355418172406578540215531833752287905236857985407500160026601642676975111125121093966380774704386048801181655460466626772345774910382120548147084326109110147766256181762386571924343059219995258277841580105816308004883187349962455350281752406761673122033813228746396429938060954636531707182913208021346653263097835508861157996793187696037940586507398497932223021006211489780057825003044421502082725295760831897820681565393115461737167009416054308007736739942710779501584292045062718206379897925476963586363653875733095559270258376056482648726726518754138333271930458234905927297822560104040502021919542054732317244553163452192367752046407825439264395688694427203412890928071629997916680847356142761603795605363383577245310212849211786050557297066949085182108326381335945075676534065217816327692332578424687954740566068522170430364100184271863603063926461991440418579193690462870569154008873038801266802578600332019234072131004934369665379905364497003105624566065388381027269947843592513268176482767236439962786368602970276452302764179186610434819609986817052208722256361635106797347376823430439262267407082469463570995205794893805176390974485024918896994675636198900765624461509370844291166271898619855295791848304134402486726040931580873864287807073802755533193483246022452450045547694705376603644516122300179229546639901341869045483358300313540018044021128366048667052019697537469268980459326246561385220870405572091532276342998157105350439382308981789855473047149250044394160518042480353795654698933036732106798428433870537115719926839364968267853962901144460852122201050700916491761584515550639156973882933308457955568683167709361268205911970739107531468942433376973032450765584434396756155366673369924405573773200972831199974808985278963762321693138983004514979429135936892639057217569620837570698785955197296942697156950239409434912427949187615933990289814821639954319477232693803325615602897522013109249807330510579208026751490507846944492433361459398239609004752949321871477727554630295100261065637112509426398679076602267204040622409759150616038337545247699058218953828822748451774074786581275854070660618485988776970304453632043766513543090849246411985876036532398065563174631462405260179234849349303188647865944975652973202659159635082680230929656770156779860642200605678549957590061941451028733468808078925178011990408048726813403914081668887872184005919685305089779790194063856433776443467299923784848531458379805359917132835504672024175055815396408827205828058645065414448273696390665172620143820369749236076998032393688499464594265864033993311935189219159797572133127495501615614972431931266318888705263779704028880856889962123712744042534012894357878041346100731256700187524929369762306690807496318621300713288355170417556533499302065663435697512597835182936050078890852527892520475974208375818088881733390074643183193981582144217889799173183248793846729622491558867973299566356889722076186401774411358384679056955448659479173788486303034347053375030848812327281388034842541047082146701792993584817435188227516667539756169707754006365597114829876185544303881549948057056065505304987556194142537660631335234929364342098762129559010066933435744141823773593569902871755708692081576668321666678950548918373970816818954692467323662995782316276346516505850673679893221698239110594167590323287351362907839698158647468382931114151955889835681377658979490365791655047273784834285610377338305639581521831376950016107836801646700937299505616987964803519291750038176855962473316501491368325664442265682758212756012934095092438111839205689293532570999340836829865852907612258880356419415341790840657991716567026120880006792462196257461476964091001240482852470680970456947927260368833512836470801276705351473789236217518071374091068275544246524070349831014147254019153495213860351058488430664730831009259359491729290401751913174878328143978909736126304509230530450652214748999891620421881768910513898385105184587873122964569421629526154818604337552388051397024588364668223037278216253720225722675324065011605003552558665745553941151649896200757817468493257118407108025572518019200375106639505793231799857259618767589939436272927384490534399628984877142756327944332435492181769694451834700879134831042814587777434282057684567267543376800848244417544971486029519606157292944763165110353434471170339275988874687210898686281320006781822861509558786709509269021647200093773171535382322940787493353261807072486526166646252589822125865082900219365472822598707032818260045494147477201876882391457253977058641236508982404789812422102466692160473762830195069497905863754143201401912758193714838628573888936294237404539158163343900657407892151703903596473365353908133186209370508353627994573873224870768143208193172347412115820762517401106941450191959750343288120815585175908002339817178903353626445869730227441165201831841986133234736647664130864027491114285097960782783974373499912124575283529933665708980193145160145251179104872876516803789803144864604034629309963391804603367364313547256815494302875740969714066983486338333507244614279450197835891146360990588535603619083514166407699244782716167339812689203417734988762960570584135890105485194510888088322634161375561211051198495421235541570472408286774958565014557182611231598197268729680153766786042312862160315106905847609792436514744531415392314850331613860919657321625125844525928263464626320013595350680967556815931031885020154431474389156329339144980386511564800179842717008308358529958307539742686335064711402976598972305697441622157146365896227885527492660745616963082779666170312371870019807000607392348519491030751491716080694509756370998369234497801277631907900854959656817834538743043475843408573303567128272135065074598797287401734942759362650785719951316793753400414093767445921911598497350421561679002263440877406698657764261225399340641386884112205233250521330319892530686364301508809732299601824894478141068644932958989559846822828880153600437568842813670973850575819592191728389302872806881004749726931913697920686043631843728134004810286290787381457662854557191540019577233150950706714644006608802921837876258240507623762219631165247836972020151451585626697330008394290451287605208964507411248133652537801039429092418978973972386006210203193858445394181681957940338239805597223364848645164517329267494793662923479590154574582213428063254463659141499437580225398456943369336367556238846154107345037890094443653397921891813111185127079177731682113962781587568541024721447900403882328330458058611839789409430913386049200601175386668847498720787910308694239518984392405394114459569837022768367044749221675328587970434432701588950132300699353982031415900935591259192646870505718969196376872872750654059099621044449605078372476452004294304437763464395887483886877062826826223735431232397105572244371514698400461135004917351078875803781932967802859622035147625560580462120676695181308111689362301981308497451198082510261556868912604128848550816960374177071239567734479489768128433016959759484471238290390301700825255374545384479902234549436851750011501428302453232658253023534484457070568299853576153743320719955595905568406825743449034164693545632199515108442437296513314816785577601186611900165923527531942583816736797024920795661030669089472077166464829814154024727304234216353800280366413008988686746156062186147303901764515239050595495378061824431485079751588543285143045536433200915842201920880717902193500022056248498180168784659893322990890556794879491273697147708435258606271072820303441555087255665790288915327469479488858474925333748123554857307650334626379390333040672342686279435751885664202097423599340810512101245861466668364737318006653727690263699288295931915947605047321914005357838736154164410456523616874752905739945766530229664138950201740690250143149246163516502373575825280611619576626729384645908934520769206645758455336993901459611168882797437868045073610496989480555502861387004354861628697060898181558954262220242558374976105655955383811620581582537809211110859207705187941413554068831993774428520092680557299788290448904969068130114839031092664818019022360064774455279094664289526982685667199979846678051790987429200705214520625639490562796895552895931948004257742638091621434297131733075755559231568830159541065420066435435363236246397433320427388227954416829838039147796569432468183145109333858905266629715165511934973534481758149918745137371409833322864024627468383170180617977970295637199071430504290563088990403539445251533294993187464688546565158580942867387467697220507516324906958913143579648935017388208439706030496893203641711229196418044241858949745081054721332294324617376444961859346986642537828121559673206002569866610383796188078826013580581419451071447322154886762849977416104495784403151597965699785365532828189394094947848307549492720206380899983243708241709027277387012319744526853470719435242061331156965168355725058718494577678891820466426000199124292354775643229094305976898490402439422142093819886686632175401494772775779469836035537902398298714902764769242073331374137843384955536124784852126565489783940319071483227363222109874537333525459562651798665897613753254503738189051885618857579349691851078227407591544449181352830979977628439111172727298670545767848353987155012175093696824820430327852545594437263925222318375114330828462283690745786111125976657318191903940839726162470456821340530086029498164017905227955040352819314558085390760056841400118733418261170556163687517249431281465216484218287632875023852686947270901598957941075573129980947226722151918489624877776144665403891041724018607560077547599774253368145625639153723569546488401005306153303636229598617150573299796770209818748225989558532515306307711718026780875606174805437528851015009794553191569385870276435861789996640287826510754083821788688214453308406460519619835704894002201805693552840398685597641339067204787466392660488496404514836996209522461561821996521681774232551262463060053044887787134481849099061919466956221030437185120993779363421427699687129812335877207465623443560806856868724147257095432544277580961797302581184047388342005828527554204815542138306420881076596006016747460575567659143264006235248073663496185945696154572917235205497301505238158757940845498335656107276366017659226517264271129994382867738424410123174855144601845317777112555798736512807692191651105949937236750164443066936985563165152579913246136374346420776549041595467917912812071930572132928888714985080546061738169384154631599227589150976935246608822253115936817243965273990413785745397263716219658591550597105589653984765255580920955392803513437698079689669640074222603741115924613247028352371849168483706884461714729977411115001033951760571562795047796063155392124300864146448206266664428530942709044039971645008247345198227566993745014361584218086808703370631492686479409791367004391761599343997300349779424341635989162988388211789526003432553064596331338779873954513506483556050512859581369143100653153396850129497625329847092186944199388532226228672017620286101707464523680381471137444337599323720718519607752839389805738002343207225035623361304718071849551697138684039001000686667112600072810625394839130854913375028682663794783673091045970357727764199514475296220992660259088274966498814812552912033403103985043625669519615175551464990953446025555815931671898287060277969404619037351831578024318174313135486918161594217043050978315613597427754118617120049982013682852732835326289500535827674525980220008196473478283726449864996790724633738982758919468005720989660410209903992276003453341855742901764506501259731026297140665404315221943391791840509430155252568346264623240965811747676519332563036028185020034085856074956907565373835332157560158996848820259654136696425114255382066723484748468128686345246249643858786612107848991353350753474248011787195615719707395729715851764562509551161731732311585819735336809548969338585563292432556651935193017499713829999692539408544150982599147525524762218915259677468487805779619663160121260102885000334608969005442305339261624438198845920599486276791421038140455540654582677830139902060957936673114133360127760047914525475751642858304623944607772316945375354676523789525538294425932776361460019005274837414383090813604923163640829649935311008001042405968776588151963111217629004011592683642564514588540754910749013300409070144905701300268269733537029200911991765648824947132926051874326608931358507497984607736193853202952266427767174818189639914151500647297653536902476671440138242962984603849907989533225147493603912674024772600344967246466279764692406855528772572906671755671554001584312443327388172430294514214269136524639278280548687145322561025739092065543536742306441838670947671422725529933549411606762829101693118374474015491280463296082892461427062245692114393135815038804239443764993715119690932256262572971277203484933165832792395941897437416962595471585977500439046353440451577117782404240195830704455882873893989421232859338112361874052553768244644637075600704893978530414309651062437843472967532807510297013897224554271368828355114744668756253737725886281482453061701333950552365828687866266138809453192401207298137815021516609909447910267858372488793689798230424680311980497874530109780441729847994199016698697744677001129381385477964547357307711169338138641626987910082237810530178218773880829466101901071715805598499724254664855939089926207687652830359908800374387703943945338555239467310350211751456645822910344224587654243859602814844724144035587121452426337815339596359207897998992397490641488084050257501543109532584803153199237167175020715845262134571410648121820044892682978079611815071131466002540450882686272495503967186283555866135040797898279393977292299866251003212206937822058070436725169443123552387466715121090440029913122024201169447073586759445128315677392638660709016977839227342489560572537109396365726960280321310938874974324555682036219521737111544772391822631735321134984438692749696003111076481296642888150632332845949863731812034399293617998024301395224074720719673502186181957220079368913410773492926463435427250770166567564790587161054045113851735222657427448049941542946337727562439996811764827273954895540552209789703997855915233827141113181708805795543956656012874029975122878494132914613255202555136051924780233889428677153447689722292060487622791390920792875246257022345745045584805511590730013211175035264117034798619835607135596703877557032088311660782148910552769762066852934145622820000416103287863589422740747686359828787089031844568149564557854309730578343943508792748012878477879393624835159437393691388271863487280337171678409552240922877459952583760049162984858165812256224474512624624589208833301239259734399540878140566406635666387590150237050408761553707259786117981209854560956376655401619649292453319670048034872736614613414070053770317111505395199581251566444793409842433733562036289750469352454047388723016873152524159552662849629976468229010997489351881380447279329359095630193059407746575837809163152066324531021999344346205019611992457388861679244705894502027888723005177823798561898845068857962747743989187297164892853018155387836567042102272185830203497109702949468958618294425613718209652809831431595564490483272021163476905982909755188903572662521301625981941551001297973271813132861964727846510712106118429154408657094815893661868899308633234576112496864196307028175636304296044317647232181295277739456980317400321580686184759363794646227013114226221173962949292927983657896210927139323440004866980020792126747923495493864766523296342709016168154310265497401997371890623537570308891015615171227614688676851225021135503290870228024534835611457164063649488008491919572242136350175117975356910113480194266349786345040335889417832212826223566987091398414545185006908080113407058583698848425264159243197126029987377689514872860046741603460487935001949760785700187970961352270033097080761146822066516868855016883936144347225582536181534840900167200347156543297738271051801282496216725118846797572521755713822408018066648730308291194501480884799059502735907183730429827013122564830839153093366974660957400743744083978232143819934161076922019128630958173825702511935030115070500963300688747444425630995014130652695684911382909572755083188300416612881918650602681798863054893826021471635363328509134116899586291171302578958565553303012351750863183159084834063671273890103316012580561874200834885329788693965562946998024747047595570142530888840628090453842961531871131815481955785037280512901221116673913111536094844265459196850320736630473851726311405397908289741814142335593111482850086901573662363987589872578488626239123142082792913345159829983460478597886745952281902068088094137572544239723179955514881933846643070742249131012109738981131326912735886009340868124908607979319363729576479560399694975472347958057404427249944814621498639211266428008763486320644533504937924308039976564348597704684659122881911658214873148253477072186456230722702825323375655442337096262736675595146161844887349663588791943286874041647036727755683598737435579054951764650324538235363231671334168305950019702601102023093075251708811918214590291979370503412687485125310691292586529384295563439469182168220302960113610048177030170011600782827146607245982925692254161264539177688447661882535201124317851411569474861112818299599899081230240163682216923292673619589766790443030887666466033720611134966047037996030906383268219913084133899668816834578582618731191274537439359301814954581880895363846190415102097589971838687363391316940405511915705887087577709391040000596203451907006861563096181942649033551225023872366985199909438907227502715136839017220961028871990321632642287484779681350351707949770761351251988164930699871370646809550156255814511488867584584233271374082485692809199294995736091682433453664568928853797970042365657006256757094988331802289669787651607179352325813488340401229047301299133527751684149230886441449050324476031579236868052974102457785875182197646561538562340395555412234200393936731248362664738080212111980097316867743367767016164173106748277672998163894807825650213509530450575479054119288856676464292408590526282376400000423855008981476354968955545816046995198628801446094433175522087498794630451844871393511906455742554869128727384974701480209687513855284715915494685195944602343582445522816805562950813461496769167872378598397102858716005130651900769927554639997732690487121904108725168019174416401752324782981513640300135793541260780214073955956971796377111592368213725640900122637548357951884953585817812093435731019289712583923428510750224408671019511946604237526724867508960408842368257016073896203793003205994884823156436164944215848387893986577612153025564098579849421152227392685021935309629016892664952638535898406508925289247738935638873556723079824405365549363532662294083489540144494852949575803431290210579518220673254517299073088884588546139996039415532588864262411063086654195211615371576924284600272924816570859503549432362580589409747401856620874630628450991119190458333359514233765870200619689275633402892249944797763958427894216449207450649203705229587880762472496212111280379011959469581158302541794195575850351309045511815875438115393967424670471850755300894061072744627262806433075124617557900055260155600021178277407109001403271253949799261309444495877699435523883241716030795296268798511073833873612361572844601061168363314386895170855847971492120833111125805496244650239596653671413137905211321761095860192127619737608302524100154464239525143513760217275410193114496754979720295900635429463612246784014715430904998396607978112725742223472635675710526474407707243049484213493909174099151901722826427294348825967488280973141468454111956022572915230369200151296129381307491441773931329675280513063268047602591531930988741024909521386884303556195428536086498997591390965686155985833596649463720775859223152184957777508554930198923460349121766269999904406972198658663946843514808001777306731271947598978011590472155012963666801475753444541082686324526931810232982765622627397537053857107798451880502062013653624611454436217230892332170889529183871845270807880064961622007021263389308429459099249911408551771968674736062171236923302915264378197448673011508305140323804532322508976704760869721306318072283002206818019600631421448760067856264366266373622322449103283975917696808644504746567533296450138797892284283742626880859148219219376601452438483157898134015138674234875345062443338056633464669964011299869923409276362786800011994451603000154797115613575568226005189982358180284554254546233782804614647997169716200771872020693112019614436295511489881046149532358771086987628310480532577207168340997362105530532805164902277383133585409301084511489648072776952583599001356542243660484978595105819663946572206937451764010160726157227013916604105627481449787551112024579608364546161816351811702764649399247765278951381315069451287608904745698989000148173086839518430402693449194299899277930432181546113593139427739749218140917097015191767450494654188129226141425504718686832191171828109894521204990198875445901332685302935044358326497284763509032736791826772049167870083502760768361927225962656794292929708049731043192783711414232066859061796137426178523826448443146935930544598428914572223354948789259298870354273543324423081346992029008887967400732129625425639693766090989999518880519254591202836452899009513495207557803545853184599517444643983754390763776678726975192490773959268801951384176289916176019199404327445728678742766922352454929066368083122743583769879816008470155653565436011625366436193649537728589894459359019356819212901625101702852467722101430219017763129289086468288515696516236664724692614003550630592210170110512838657485496541404753142904711552131490364445878387068329856107767157276572584261149306208752034698818923201119152807558463325775898189664272441759380578217523738741124160866973611733460196842652470540218865631541023741968455378005412645815044073702832237646204688958783167681193300888350883212071486036292724441940091766338196266003974663460714897625668539983493919431560644025340522802103976582293054391695075694725553311047589303571767501245185049255865478266063602664136221639877595192889008052476822708621474395397745073280090994630593762220472169440195128866351878391873515574721852200649025455207604516721475042828723984193054147246497970305894113776077202582388384641144217801132407015845546375642680372793235081288280216482651472734015890767145011302388391787575799650388160543569025538586825963001503076877072657822413240476724037674119652071324027297185931929616665336835738341204673924873246134736235439340155593811894563597408066453923856285645663711763484536136800507886907965785487748750272567438314087467635836859469388073692054370442652093873984261741792098233979083864611347218317156959415745692016094575044363750458675495132105450653992402880521695998069202430635269355687497966236109879706740932333293815922441154982874961995408689556671798682987759819436310207313059575338989047826068421341250314591469204066638567123258388139188018253440870324408731530064435969116710560648945714132178780788710253142501155725703608371492476298738918111340265538917730025158157517906962016915730894073166645391707538525191237891955116703704458997818953286431400426540576468960716247161581075085396781137015225844195696019712773096712325997813777737124367678813744193566574670480332178117393305926431793750615745004158300332830923262095637109834202421958189605284798149445752708520212096893285274998360009417166411898770213779512863011332737189443832995809700539368212956720052329310024627061774915919932529414992124007391172489449815102872777969618636332859911197000416099179342112923579330977548742246143546602644709675567822742418096223301798922048197265658684860734742074244182092129472510646391394601991802359230846573906634962883411445085058922808344338752105367639723942645615335943743430467383803955234736825250202595466799800407157193542078970054413358041789495011975450950874253296526592800606515673878291619419219744242768316193184565512871313887024589075542268561159409412905703472833853333321683393909395597268202863128610093515200541154701187534075828334102344482390377223015438273996627162278947813375300160881623339575132461235649666218839542182056614628563056907141604783563080205738594588345101698776164461639719644809580376209807111738295774137821362740379206736046489874399574445015444787723520796872055137555990799146486515164946487384037663005700709924139915921834997392759203988011351184752817943354227495116267181916790835364653638329099053876605639645262402450093154407788651419995404570716480671653642684518557619607354663921013082850550773760700602301223457945255536167483657014731576920281493344242932470985999525488072115920078206001345344198377253445871625858659543747928359693711804514647917748859190850475028138806581139904595523988652137656954222820639015131878131917703587454199742187311207254554490717196713034365354966294198933617603922580636987808824078078507335176780643522853465044803055789170009677136546255425745367771314208880245134832020722098065793163207151941613291114906282577489834010186978683337011316261018911659109354375122743235052570115837502180294980381480025335448654059810441968428254423523461716220423803526145232207805301977838135487556625548155153726625547317905889099182593837033383610034843874389193727804071572959318937877165042160348270970655756887724841451667808891702095947651447356620953119200813816536456872438742505412725268284207703573657186319045787935450478527900724521418817107563344117159366612680958893692363941509074663118384571441728795498628369048768784266064073157895573729092787776681686459496939576254321753964136368068697336328394381287553453700215254113632242900441277471455628631218506051307983896678180135826807790675255716911514057262148819967274298543793262706997707812491958933957847695390923645468591104838881517099341248877726644117425275435880399388286753276009720616469587344185445296536017109617514997537743392570275994430396698973865731838526469229506190346616593673895357091611884597120317901220526705334621313833169615810751896037628765939213816318934881114531017930756299611541969953545420350748271040177854950461036459725461207528546285775396926332779481787655990977974874400124405489651295501483594574791271054448130216823376161517336474937979201979595052228638557378283143112808260163050822687111777908003353857944761380191381081132614650105191779470056462132926539620773432164819088857367105272942986469788657347999234429174131218050657077330241914280744500480436384321277574841356560696491459519753049858100195640765042145355552547394971033033312617246393651293084737598048611820024005676577934337484735133478564195938955607203064234781741280481870389805645265056935345899424164493540102296416605529302205922506109219808922361613001432210803759767195794391261657909050493008892424464719266233542949376980840730328051877152064812690735997607312596762286596897740678417277978936904237891494043696781079363010973943089327142990751738458882148628991262678864442047015293402242575622944316545699552240076069250122511544878336387517813944308201451898719536211434905548706641116274137917528602145188432813090790075010267096239428921425098835491911667555904204301293664904996065014598839601342385062066740920982851722541140537091241095090724463786780308194670045150629618153430075342921838159593546087498226900795074580794755411615257671573041365763541197784602930991059381722703164982044611326088056946456173147332789278149491975602654444870864079211993847242625592824732237660634546619388343319591588432550023215228563636349440843179935842974422730671401044146981981677963382843566596854104064089964597669733726681229812709395751447388252405301134394947611502083702001933500218896047119353846729054888571383992808774466734815320645629402133960153882897333174474919824456928859517904453258419524625522742189567281702979196436054677310609901574782507289398259474939489225425060974681787664609230666149723391768338047309450130422417671713021517318884689685015109253626828748975184500091310857305409521410450260180670035507228348429242595069186098780890922045901424295247997941916719511625708843505975763001955534697662758381677445423487065640462978687128298745622131180621738883265773250493976401158472246955666952338811600932179578886134056191471837128183651683079697541429760143656692518747421086263845147424678157891270984471294463985331581009002592782821822550250390560878736147948485922957869265950230533140537878532566352401873061700745586610261871347532221466659479633488359973142697687664675884351081409744778132690076708213192395156004366290702621484068180962246748067244515276136914165516752664342480142664952220354999814038955711912760999185917096900869108816672802574103680895095946533347752688497986496597269954586104374184444921261515357845316810513363767175605034655860397435169872921278376553839885161059119614851784206081675146721513299089524192849194389316012474167296116529635515227059730425534509101557364921775699831296139916144111827749355852300871219266177114554799986653625704290565967920923380891233490478433174962104386459445034346910697135544003031146883823995408898632665487673452643696958067771711730196666358659382580765002774866013965749099926743751390755273475156410759299408279620180998903377321559328363807926365896762106444999884157201783003085676880142725204401476339129672984945667394948998298199624970914205448873213485319934040841907103627226110872736719297185289176624082964436872992289587954546609466753343771070347030140829411291307883328359234679133412703478508030348788990206305492872392696332428727579374318149395839888373040551963966863988739707727839194291605936761063789076720885797663659715340350830052896629108805145652646955029909497725017034328257211786478476035266432776728345048266626746962405986341206688652007029206863427285222593965085607467828922828622513241537612156404816700352603546276073473981316835350146191950487381063786877800658888258564856076759336055642941813144266365546847070261352236889464760782982540619861618525145257663800557382052603109010311866558128008607558371730601314174161157885344066971698726320387870640866735053934091755444820920508834590804873360793853380603569304400036728275089864510767616086988215508274108893423255526545702798776840758131710375512977095171414863898048942777682639652717422314269464220379003707181839369775422481453758487415549747626593163103008620238336098841938591532026839925402280172655941367545939426211790801450129490689872925531312731362519475199171378503210143549956331382560126539225517419747237584562070985045108507601106031462748691860062006611812154496613971137817966195972896565911202527118222258869492141272805568023624291284212605616824175180365656757791294196002173327977756677979507700070398598935452707931190116110410113438516393373380561682436971171255042566513802688735075985458218196102932868596874152062439576467817615776771095429017757522294638697869658930264957817699876927627606789467806665978753795820795534321365243080789857590371107369914566066391674376480897108947023497640387972960270720746773070934191759195992580788964033930767914078058900999018701928254448303609259760324746956693025316406136406267821444628480344781484515635971394215247943100898181030153160077233125815934182139067142579528063320662071450821550642946745687362548839125693597289260969344370516021444061633421135364554893220118489030356464863589156313241277874111461210873954396818857631949443198506386500294195924587945848240467564262269118844084025155231378789795576845227303648573803049071705662551829372593104072479714068100443487628874343007363027129804462397239094138733076979850632672129996921281973170145584852989291233976482607442953856751849827656095289598988523479019324009880196057495628603720708530660061299526289971495543040695005994949679820605799959420179115757094994999605248427672402425856806953765849066316417141041854552387947015628127413636093047173422002230183291354424093045781010846670826254862822502474832564941654124034120341977236073296278250484159070716614953010977832869845437073971400303756860826171875978167175423970944307546073052194278762031828172112036112764126812062913111466754034800401158005043154764880931896257009486734728157255296178914348804239088704891095553665521881901817878397240088713972075634276321601573505482415072130929180753859804643760880778247052463581497437261252600010046864669504447964050427391964816128717763966520307227509272134847663148501523691252607629078264702164943938020459266265711470763164313178439757882572342463866754063598147810257451144628087242738938043282345607413101143182589362364249292822775706261074539741859381304418757298128289483968527487844496058692556914611909611923165342336284745890799464726474633070401708855788784001261165208227925827306602410235069033445952861503421794565712443953753744948488403629322931742609860929470509891411141779831802195503745869781808526752936163896359366125364713273171709635719168719086350844135862905470165306923857863792644423147106117452433864989084681222605693167796561675535900035656818679110720264196679015493040456998838615676323158793784828548655786105789261768460773988232785361518162787363367495635224917953894491258793443998086262538097554363994460750515059610168481483592485881256562916804241239448550792246044003825288044328520211729264637198461760547117879349468333085748297570864936964457430145052505474522515172300516964296717488774297268947383553102688199820763154221463344603054368375344940923892091413932941537213681470537884419674672099087744946047356641486849457937441161320648058632286628572305398022550519502635128292555384804330235910066080210494110283380992311581746129941301064870693007243266231424412778382905670285009644523880941602066441652544451750158771967511413076833029636418431322592249434513962322775408979564515780556610486618432095018785050675797528953600407614992709751338040724246624447327102421928676878690100112838412567241576234521403671615026514843876214849593006582409785990313804362987672276379320683074545486077723662135924805396299591248444138859987633785108460810791013799330652320035684012063099996179965958433376744680549917596724400694238591073104562004401543914766865055788233117612424721641531165424219752264092126004115775621267951393815604518561341934213721148110090228778866987694917555356427006618721426747661049205097134499574025436518255639498390114672321296570296061690974251337772617143001600782614843007739492884762020328389522977103420165731931213316309832362111047191423262321128322287263826915075551370166834469401066964514022951811380165836087960883879431647636244538993326752774165571429803513845052278300681850417313608800459870399496689221149304813568348425918339032302664803962541961202287220409027792742782820710107515139388105040412180823235522958791802274320439002991213635976611375651259069810292981335419590500376663119482220578488797588471791618337514620722056671671688603703475321258529125548510989352894185831823952514906764033279024691617680015856866541023944742084852105799428266691450007634020927371265974153194476273130170862522966073535866839386798183204276557743012456022583748909725214332547901449226077221599326945836924044651665680261962024697741898812208711942725173384550489063836558807495594262783855788020172971809489863320413084979202214496430354282644247999599380014403468157042824094532525258685895389922533172279011248853000179241019837073977661101284201333208393170293909123862442740456113027365270372171166869905369066880490183890280370445681562096621373626486538928613318089196026388321495405786548726129332369607034854934263718402023924365589317376912247943318910753214166374900916843968558952751274845738310911426897192035624220292686181682017746173548414668944807512307270315170263438654987597144701402464365069773684614668306212684564427768118888594341956725734844628245260101294033706271222984349673962131863162853047456865467296813190141087551472634913744885587272149025021561296288059281185877498366084757946466841753445900357677015028886858945363697614655611302856946601840054955181009078607772966604870162059414484882012404409330155610378912710560569561900076979139421550325562241992294474959220265570198921905640139870796425386813369064814158435713451665307677315110801543138669038607444291757413161025438922137484217682015997419305073148913320479159894697782910538348528080673353379379882373566713592057839467658686474104356984669089564334863612383050278049047514377286654887975918486446607350905324680174966667506280016411828828948367268829331201778442724639938551200235494433101232903991617859174640429751778971593040160408385047422937126727499155903199061314155166758085748354090983552629911925605191746943383809998526265042037294148648011395293416726420678087261056050034125269547680772766454034140812123920452847823429510103033997651315884832637113902821764996763598845198102550801266776691518134438378544861086367577136606097489468551660425275081785870574236707688815821372460365104456545173636043764271853243418157405621252668600651640430620074367830164807415902231161327982530056214621857601998555494343503138962287062872573287145049459506618162515459341128007098664973795150925299849988198901301726263375080563099582055508455905302120875619241602748958565552265418986454099459616474132591190113205480018131341830254995252863189906577145112441473150887220437915165902441166245320714275516139911184463773943892483889358940530249572907519801824691420811650718980013799276854304611959036708818684234990645628342155577409882840975168191960455376226276417674374203721133279364994811438690013325334425719201734660707092514011651158842927787935710862379107658986587376363935932277975140657882445369451865937651336105887220167438527687702042578812203172585033133285984023272121595703513862973389429974472644699262812260447368917654698002633369633702568829982209032331388560931471004848877245096083396272693082923900274900630680818822569424588475034041210381938254511489754265797820094170737338968153271789683171426626407968196621896065069334588098050051424259248153809749743490471167958246684106175092358215999742589851201295242513533216761279253577915865776107417844989658705194249417550704487654451591007098853481809474424060373348577117679375556319655234568108901566264131359144114190070828094974317240682026040751522151615901547848381458610132240053064712064517635870761790904491305510204155164927485017412362225507791126350169494814248475229450659519470340099987774111249756557041153123827516028562337285307960355521123578278438320293429717526034933623457694730150353324324226284458004755502401480433567146717475491596049362339609373131234155209718636070587254368740956078050263793930502825418146943221403984818156322430891136859087332713032055437237432420085277563922490054300353426488683634843588743123229546535942279693048405584816235936715623686914483719984493977884480538068588392354995870116614789264543521117176332978058478013870900377307942982979205714154052631405139479972803814976895269308693346004512618813740418738476145514023848528806027251348350622305973458606742788924400425864594418176461017984029672657586551089874925300332356435881270355388476675540305266442945588364256981224903440426783583148225751996831255892089818816883425553006434229079411319853402079856229805684654321144299523741481814082529169494969258215394640215418463090362905063030384644434625335065245619850939137913650474473434603299627021381810940174856565280958785279875044460944825366557584728324359084658857862676468256420704054759838608513139542168209709191951210813716065712662673929001606549265872797335898201471540202934676294462817840423608964080979154811794419431851256570078341552707497627206227089535334905264645983817654345938004112825284287271747048721702913857379987465121776341127423044299039073045041465814502664684124654108221506073472727082342434495168738225651613438345545299805338287820968448527373718360779372426977450633079479546034511929122441762913166763644970145090371600135191534333468769367107365810749549828446605387028073445380155319494564161956497551368974755673360875767683414690766088491244090412679596204093696608489221652985068432430487503143904509919498063502912828497498139839574797318863114795401966922854895746388048831896068648668201792118696178026802500134336423896732895930443541912592702597052459990508484820921712134650934997451142412459825848335366976208021863241517514862918617399007625693428399682769799054745136531574326459439002227562973627280599136936730523344994240483492308853229710457872394662390607420180094274377026056299794675414727202345842714065415603448172052453061361790686958875664290503043671235875827164915958577523498245895391693787179413378716597987514468087674639562542768058721429140615229104921790786014467763600367777471120622740429621770699835182560792533429546011667101900829706943359780410497572452431219843703371130180737141096271482918227323276152192607112604988242260651320274566730204463004072523864870490680376410272934556164597843871598450633284616567150118432013974494879292265114574016724426340291292190374111130044613582264023892501044079008886370222495140404691279165436120640186007242395369796700292564973785735194994593220402726120890746488054163239516239833344291836259235870580823293882838214298874893813144586772057370176693708430948230695327729258724610579240571332224150632330613766571513830140027176209990969828720221924661595176968747270101776984237833527890964400702637928337311891133371463919113878227337248463920294263215103523271585109128226871662810812440663532244429342292851725356131608368277891910176256697927305554186646096110673782333856986997826814394055376687713968621959279793668186987423302254057194833729945883036204221187325891863628096058868432293573433961342233799037921730166157278457076412044196516142362955925480957826544011626343198127485048974714537336633053151954036665923882000835556752447479392947793511802238040973472794527667496645572028844432541767561814224865230890036155835430383494530403088358149439721002792379058490872485956528472986678700182300600851308514374774835269282174835277662602534340656591562565300738382701209281334103117659451830679292669443698674798280919370879569161293121514561248779135799240344622256795700323487398160077982885524215009657760976194008281048813502164660439025388933641114085712495395644996902916407807462016326064248855310207026414498801425955468720479293436512284791755066449227586841897118977616023609796376046711278309560170754594325052037739940974288940727098045659956474877936732681184928361463249598333997019989749964801732628364841589940973281354961504975386282767139818878171090717786645247048275585568641293734703341736985131912669465156809400423567523006965198585018212669231894789694886495564333908179895940042667941740899991612928140346488442423273923774206164511275965764412760902761838513643978356365699523322737186156278966285364921593260819493259365090906148820029213467402625396573959970330391956345696768873229552099302528245431363225348687657144410071572333650886640767660489062963236020314214187370640977000577550521228665438662552370351971684790890843472754485664858973576258454012736582490032886776517933102329192283025452624181296450155406916190826937675132287137684344617652843649055382480839588080580436744733575198318129415636984899977713600152346805398362411086770346232246597034171315427080514017443781667512979349782847880520638325696430131590149156463487988316462854675935192686219033299929495571020437469371520544895735521828235431191980268403152270171141244477357113397342119008805933763977199834840487964958254642861481605910603153887925073731479951406182351274490419432635247195108435727623558189745842634427514198854465857974768434290815067711386047672439752057819903626616322268739613828179990925112770981774923454122067649179298887615312186838770250916352056727103697553335661155304083338673991935505397288971716629642804077008439539342781058220960144756362468899010656478641854332469737388489930453633674507261460894966050571005488114491984902474971940200400774605501744493798270144791607168221042533427467592349251731926458138808459914952236762995006431736301880325937920438645566813424430964775695505154657398313338936589347698242589619023958375826103051135749757889800873682211739721992261434664692861385253009547029111538000836570836465238611787963415097622789616061206356957963423936777090123153466658137167016853827404045845068710542740034400189924522203118210196988658066648210685146377029920413337364883659644639523776726953150070055654822203257385264575996652106849700449378016516673773561020818459824323919777029250941440359333907769566239457988405587527898574866624365912925592414070311751748384561132733317264365809555198241379557854861077776582124493904538007457235419154771024517333081003004516416774001387856626249174134243917006897370762750055786803589416207001254170375769578294200012705362673216892707478050125916368954546843119616862932511911224758133075691607256192382676767662697362433572658918409164077001988184717791786856400920999784751492384289425840457512787698743652494929173280747680284882102824558237578116492294633236646417709133563060219311833089597377997511819949386757339098829657258721882061048800387190659327506868825471910182731340614309064720241337862212260432090084143091551941343858006480187258176782596264606678167958527165933716965438965625206052485525474803841638859406538741856804657015069402155822731149105429438914080843191715413454810456656735800335980978646129671811239406328583167130809307190229764618105778123663683775232039839909829451513448488407013083862447650320905033639976529795262486340089606934702810540905922724880056250190580259245874863907632695151082800880261258111742899513495643096557403224097038879885756753373477257357659940689245741967240058104035790060888558738068427269908549249970205331741592952063896200111058880275152876019925099934677498392047397629426165645900524805237941339583231606653430618528824824331679223780611202337761593763909269448766183820725617460689961838960393736897175303449011862022769934625547644408143523406533521420519653334955761976563736377667406959775492179309984258581895059726903155948473339856934759723836888933835377200557840192728610712349286714656051744700561208062985598282756602791883662975819606249716684882156556929097654264307628243310089085189740984839565846481541312525921052784996187768875455468488951845662634137084659567171239544566542777683333903156424119450506973541262194267146414285471155431039891231949535759589129927656285856353115764730579060759504226416572855862852845648855369379724411232750179958777769779986922108276241084461067961488622100067952183284221451035867195592334540573992299057660701020369554022973578397026652001568203716134682480766689493989116096632331626615476600638677877877905273951146170606243050909994690071085535211551678136063769619236633753097119575316020730454987258764814676991564772602900814675630789911899236766769378867052658481953025140207936846340364256842947135500519134344100659699614229855549336947225959855915197638799946949568637572541108251248852477345492348780726207894167852537798706164973279300233987280241315183286950276158191324204194472636098826290579344503405751993485712193200021447848685254106942477238107203967949951549471129859970791208124852024374684921694809828415918249915208432161757706334951644645324848469137489591690383447549583393092401858669178641477546753829521199357607594872848647384625746175836111063836094199934697398649213092541931112805335239134543613221370764248595106034715565212359075583567816837464991211642480249792589087530658976017532306695137074201583708744051795718815563108218910014111014532879374997999969959563513853216663797452958997317207713228998427554466784834318333436565289051910866098805964711462101921144417270453078811416247526909636126643519222816403271254207122201584225044542176893460421472294818488995653211908154313920180031537846875531284879182877862801208211598856628139615602140814461303153100697767118381008561252644663667898303743564840572857567192450323895791388440559320841047121329874420808930798847842363723687713041030186393376495170381106146834396972885464397038516567368379073126809029867704699906920052508419998112941516292566540927157815137969026318620808064219904167924660261777198931788683965454488277839195509018117634589147855673321087284209996068976807886555056887735260470216843297994898473502058231702705351710573057266224089292451479942612818551765666246043385421415322483163177302936682991535607169798657775948520399876888534111005399513433751185111710181564621265529752161994338816189543314871950532692853721509025744982320710323196436199269988232106494256272686251764710376372021151209564342513353306189531028091426589386454146822933729248640580425421679724789930652355055142925316857142318260792845539832795829470922607160881659838934112314068197342928707472147527237349930242980647110245201020359880904473171864266525722650194448215578134348135416903928901538973083658140924377857746734059017785315970139653083139990562019236932101436062542364810232939973135392490799010877680213839140437425296638640808051235925935163721854372491398277929842170417994223625046848864067600867092678089390577358845119878863084826231903491099395348069688802311121477462793870297986053893990982860371416349969479238966860397868294431562959856935955791588064201877482466757927467965703721291668139429099133705709563516609740727363382084716936733404968212625180971863043669389681904480625942499696857270953412500560594337383486707896644425819204988827690823189424913463003360396449695244935098229559606379579943134532690832409074511580503742738089299409315791781032614960705230262483431224577507925462255845292638492703405518398635859553232456033156619891530479560970516208828211215787499676269362055682064582409576051244552538031842656785091518795360113271058394899190067811102429039852223926783384902440932485913729734052973452954768074298208730166510270792031335811007451046189771599965441534584115858058269772729192575779661593291505294239245165182728259884037950695080474148170030123337048012212738434760264196282011095625988199532717621479504886428850378419300859168992073935498493215886359734028085846418026308642376033324008558335779082485944053484370762564387074980732463005614620232571389635098267269092660670090649294568346847120637535063124200017907222537202284211810865940352294850210169424308810749357685624838586398414105792379793660575560799275418977974743991797515471218397258462332906312068057334402137972694341971035842131799474433210936567577390756952171938663739295877378062290800920109862230928417174318137107494425751702866037921329228303576927186785180203427000986455128121113418819867843445203773947607213081993767004880404832889825008339774895562034643580459721841272589534713616231736892830258388068557750370540085201444823321067109721493395745839818842360977247415645928830499033968777869529775181078644803886463613567075458534294190241679172038954758671637794444107368466411946362777854123907013692135201689679233421889657173289117726180645983762983989893423952297312125629622833431247734389455710704864202152577705231498018467846651284426778975659590912646486531091392510478062543415928149797526490379705157137941639363140946535806520014317535022766900356182216274866888827768301483962049306482876230125819279201714583786688168926271936387726315520577160682984743222576392131269263252283357822919927575482986424074639461154053294418338788392726950266791252615234919839407527461213198646846229325165832975285223736455044666411352582116592747740906601887914813155685368961110574119399422419799229750002861659000147624208791912512137411858048934229908218572150788677959011298032712022843347366193997026056644270397383757336004997808186311956768879843580695617955665066291188233417929934897500633894709183859688286203445044779975788370437054363523524141820969821370080998903534078906970877950035801058004123002744593751533647956546195700482914607791652455516906620479986141213465802913405949915658181591475631174704469247787972400887541347451765696945850040917288843462140584029971154334337476055032114374554173940333358221579137114873898254725172720087414073453175856196859809022455545324141882433457437025354816891051491971230621360332755864515080285908563911462261609541998125201923484248694424876584516986400936843569156136990780847087909761445277674494107013565963035284281554509712368012601306377457558431464248496094500005089193941167131578970805740495692403247553898751335647713287389074906239566014000745289900001892854227066611644101304530533147676654793010469308247147657641387923177173032990754947664826060058621821031661200472488328565283779045495534557049705923935309903705941379303215853514753391955166258599647291908526055441015072649123356898709782400324654878455902818211088138721033774635525460249058793883479716206268232349919568408017400059083491917947924071396078716351185531404294539558565228431551973071188620140335375472895189878222709782845921206978330462325858227733749193213110072982172901223491974005508870808925978619972128797368682824650077267771646886205306863062544145672280412964927002608793079780765543113911002288339731311290845364555775303035881515607442804669698442042040984038940043561007136979490965564930159279295998043867044930382121012873821814224404355698022628583111549963395778957769013869306988273229598773084679365807023833316988910627909062396621012854995121071786683640629703944063051724444866531256795161063703843983661225084724765607164720845260879241526298249619107276941331285579338134227470809744260422801356725928973845596807281183000277722240732473054531904503894915406539169903337731131166247014006959824297425971837337763276299725217420420250433716365659014511700380936960571363721520578578185627497883492663414467692161572855176228105944812476014705881356608602355809159424664942084926158033535655050192479644441739317243448876947349096840986181273716826318688717982612170745940587055158868224171168045825873514510473518924726049899030882753149775550297698222776304517143421768558254129355288911857284274358644286969184506010572614211172945418410384333950338215158424636049147608428892491373140974710145246104288177433803363464143370984033655876389257023737221653445346513652790606941887727250852696183022917548192176532219303150569762581505947142408767361747537995763631259485566231861300325364127148461299372284236783068668848231897744002884299468829674394221734558409434728754141887254015106958182737506389683644074209277131408105859788347149787570103805954774838853523303565442406829668519200313999889818112934294864815579897305084701841312486311656931131639270218655865266217038794168625969496455548232032120616951732684877874110096552710434323236271534621229632999388148297106467125703130575829684345409856648603817158141357495794102336901184053265905735982642463990493019588743416067337187533854335163582306455371204495488178993385775677554824162032361277491279933930564182424545894258267399090465567380351806862819350605541040629568267517258154975522825837454210794047896333690713089534706458276722221452777354078417571312692967815316045892003218741051509410900359208333411363408966653069723735107436769829651306981049654412882612316140396483018041638617680371214501287839979903015528690846188354685992275148237516522432973417769309516817817094526403012338412213241052145181816455388333284152575466168345167892915857523352888274939728590441926866909098923041490165912944723999684834674924134606867213166410501683938094717906389638048155844698143476861636640154602137971682088485106524533234946324329698164753257798498122234208190279952548226488372880200238609368741459166859349017769305579478151043087224107431120390643876473987981004219063441939392666052560295034793145954328551621188749088822739109123014939775973736020125371815734381239693290972590892770086097188696583208195917905676975662119796010082697577229132172481981612740020416665829174111163764191744739075699315954446071997469137668597689869509547245529495750276555441891931105781071152135785967633673844951774703213891761833512753640920708165790313723648867583736001966017687337577334554333510840025614324214409080384062675189961709714696767466251647007632067447236497777131497688182652950507819754567618617636759107929568474859028685463883352365746164963985054380229411630260117432415614822472060479318096202583529959461103526149373961597204749088016978223920126975434828378116982441539484512572186567223771330173663563253005769779653660945092473175824458823080933226585188171374591558741684509250497891864561822304768858539427540583318038930229638339790041227950879064932820715821131221659405696762951129930149295859111544157569140419472674400385942643738620043943928029938639153567327235548794341901258471952102056110734672266505600287267688412656053741126609562615407816414480807967256468278414252004073597259909616832636466265255028349722552311628185885730775581656306196268483673459293562547206999508416101964448078221538725270564699297445081297903757282014243324480044546596741778874767577053577951363349761356244847209021918244936575463245742262952965181350965009296652940619602023447496011068490178947110118606970823939868856693970850111055578911045248347288287096579316720689067556726899342358653314111229306218516359287025398940739455470827214852564975939371884523846999162898062100384001275968456642001668545854905121352323924177131406135351388151846483308351192267678887993139633190094686865402310780692377478874253217993542918130543619114169782748771967977212828245617895389739717018897329771422882524415930132342244971464298647551326102304524771666449676628271499523482992414975112633592483888927006028652249440943658042037563744944184264066248212083297423725994980562685737197265662737051813145887757757518731613826496238987465635818366318437491065277308607088400773941563181495006349207358341077452873562662762920053280800888290879664038232257388244232059463401488124023604974365440074003817427853129761302585440215071092723745799644177177677406957719749686791234781775680858513895394650964216212561321767841110017757487987263944467590687357012663688093160574413195008046275904888085488559254910642540716810538499671996822833232873810020250320407137427158750769888332647285041674300059248206394247336745738756977012000238805047988825956528385936558724598198669627303088594479695142818321801207766358604372796831800092405427875682002657966763937068667591041213440814094116146323001780272550701696081122933755726941628784516801919127205029676780416433959034752051622373743347374421502785553133701504248472293452389656798589412950999277667162852506653926940165060396856845026788312180538067859009819048822891230243361972350576963494969696202080895805731529119390357081091928033875867484394066856068722225377089649976481638770193664794699168446204497826956852712408713526803391926114150670369906564671869558603850968849758783124888629462898500128164342983614353937714530290181423707506134844409081317670167323458852823419626725159274360662690722096508078128455589763802966694581122614421242229972018215441396891203747139398633695233352963997623999142404028959178135006000350448751679491021731117448700216914316876039852585715955296663384047228732707919861251913123262404840293029494719171041879283358707883478099856492926234758711737603117077307409328628408654878829847124010495493187880078011227895661491938475116300461053845469108163813822303421352433487976835505236518176700407945655833499674459580475109457455652535215624078998652552732690106032342889979226065452209335169181788618317294523910309671595365857451053073493862658387223064837638906217009919077585446934780373494867625581074946876990529919827890875364579507639824843592960250393252889150565371412264745548048376276859495348750979188030740116138915970806811011056093197117069902951168872634151498409898355881735315519516613348842399436593318968628344383917596245405744043735682463658002809107038347774218087520624033680009416728160322460859523966638839833348199646147293154309520502360475548240826206183071313113596945535151795252209049622315419750590874005854968836359963814396221247727353072693039482684595255183996093325070958771512145266611393205942026620377357243892346475201583479286646622031527843657095942929913024347043786987950241040779146011434024468234800091366944493755390657968199587094011034970790516149081786590024914130982623060057253590906230098543669511542955214226117339060850789483721497799855576034610747085201009835416410286369733481252891975467516276905187315463525229410579887558181956906088076704439619015250895907637455705364052504963809971359852234535200781628923916280878611754347118784339895298949900938051634214444824833729282460905080573740251632947207693807182374162180565026997431625192696294006873896052570217578286673886045171832193445203454487290611457212194187317966247855406052875851239995320732548723955122391739997659961295348956123239653727301060132727526676310425337672590798304662841604614670018848957806976165847544321880593059449454671369677080298798280683630293189425222940160142566902501930663925891136937555480516051270477928021807028124218595118584495241997141606296124245768704211357226265767520847345380467161402045492341662691891352293099980744313861035863570691548771679805544587394150352118252636823747497126638835784592726766050416555972633581394315711455134294693287464560581861183312363605111947899543600561150607207834584841279369765223586113911962681101307344078355329758281225875633773445146934756432965871371956706083671052575736319447642561152365852455498840472173488186332429866353084083123808069939946548958898272013303440542240394030267884822801184267348336309031967423217676620250997824246144739908694047820152493279022782250940520109553243891121752899790348118924748330563373706600208846763222638259677359589277160594685566145537088600021238735413701633139194039080483568866825694383017173087775102202110705801956705977158404122215601867509791006522428595315840053891099082422201407268229504180724461789118024536007204310375901129739115226963581599503723396422048250865811591569374115186353151058242601176701610919941365437888768012229223039024955732107113633807815524882947523933471759811886111978308784144005154698253537825703187045116763800231737680046103775932602098737706681835749328504730782383427307333141945822439383032988422083782372305936832155187982833889391558833632772134966123393190759785743979359065034065043979881687396307713266974921528533454010672094258900489442170485367968456089218262749109537732123423973033494930897130060098817010195551699399392494257069278476055696845091642775066905439855570647479056855140318166274809173592673873474153317178503946733066513492461331215869182997993460356393289048030504151874739448331724920572813679673237835312071300446278614982325103861998635975466946652835578182840135538511411155197275324687646265245685683313655828755386079856080122131632613444346051272092626961993458713409559732645234000401623540219146978165751428055615201493928257630825563410082040002997313893789641772558605936278462395448559204070127747070202231336964123861851487670683818381985179551946991074838495047660488948876980535054869863112710574253943155927686905378184004987609961052035612816931738258952275617656251468216042541590240530197297254042871894053866286053373233285286299888078439429870645763289587892757360823401674658996430907359241953300627667273035903946742467410486689732143618974994083967735841803541413745758360718573324188970755001226094647329330202041712266452648174304214480928270162516300515387777995182966514667139413573813471039121668831924476391628876877334541555814633344462147845052254113856596799438767943311380586593732712179759361374840535252321153553920802293535748591417530475862056716113731126717951012973329825528227107265496211919003502677700546890295782761356148055242198230596182905445437823280045072208813464735090135218307966171332963235725877568087027172415938020540560293320530679665124203770105471871516091007994643224476370977599824683083936328799221081324852710745974449719541431917691583060657653217418378344603639621980950211576810424091697232353499054968479941953606497954534137900074799173116396301142525745601548623927776046858649806745767005505329485144353499101676214917342490834290189288493469588326921942806803955340019146022575424288227995621668872851646022387653380820064789209625347917081022138458677357037604441801778219604869011860761293628078026626767536976256551489833194560889688910671099669907871520423384913460331561478922049480495179316640139726005200988442695251304991052967051770381850290705771332455103331969241321197825994438629778554090185245280764446202232999892478799790887493811016944194667940336733162480710933316825063574791612222453105680120748264059900126653005535098010046891129040181115225613925067488612719949817559824413524520526430079046484428530504716806176599030475513650810055925100129356112153841724586431010556488381346306073065464796875462191561754638780715508507210705003834936979260656201514525767627065734947916906989814639402002826978274363492668460016995787277657610388279475102479258826419273918127239638016935416308832203253336045985414174472799164815165482091366989642933038605524957241205569121149834198230847883876451649840447305739850816634293980475784426150752468803575586107205377512681960321293684306111013745650711597969524780440904580015215618972597402347728909520179352122920825603500016237618237426063196651694880572889915559680992632522201587992678371737849833461319505133964463030497172739195313508548145545324075569023263104064147167280454034515561028112726369816457129744319463367083345409855642223931555384631236845074026022405376445121247307477389724364008074034972501618084615090012788458078736822207568768168339079985908054803158949425521141333654987653528298259944896255284610412305103794961767700095432239858151525982114131168133505672327266895669346724194343035980830978254211310719558422077667884188081422046205206479586188546343548365846819011621427581117206627917674522710250294551625182429620285365409970294827589349768413148929298461507525985247203169419755663420418815984443151316961808316620604923661016204627660924385376818119517807088375954329260669363196467093631509059116121110042068094359131082721838352148204081679217421695499073399044858920776305712131785452567557602634884892079755167733643494668725821228305595063797152422200125495857346809523955822817469980933614017168978897539817802094530155699317772555448680715606905732276787248915043827230984252162457466771482956142813586050116597366081283788974959285668784768718853374489582082115321736918917458985516836374991897610013222190528625233400401280084891887988312183242900153655956114527568388109626681827221404355527390837417311418000393613919661582683849807776510743949157155426999217880379585340380303649160429130123059339259996335879041959203785682643423456221595844801705632345558127291998356483179198603527501948146970294095434428080728430048276981969892293704048223364538210480720438672507470806463906242057549503176446810348493175319274005347026530461091970522903349514031960324304196646210740100567228524892422753728391311656553959892110047518752956887812057867705069007160617923898574994490230104917630272595142134324729303003190649719334022012711368851908882725118441570587437211804589911184669053358111626687996410569541770388986783181316302263656757562404352418227011214647060578390024946275678034252447742981417807911064933186765873022629711461387748196288974203258033991691673840065299337300780151646902582632139361952195209551736128893976591047068660272832419775412291915532822508083023564157523400929183437115034599165971603202313881133538170928159267783147683937953589078015328508521594855218747251727007932056953617603006969266457319699855159596781706073509209164454046792021573898372278256683642027966643781041652726060513887362657533504607711675390320347766510307851429937602953083408316047465083934249157095434898323394246198435048641993287947172044256369959420048886604816038755862024966908410020942533038375596214113038049927137184284594747147457052525865743617976717229365578283137237731005637398377702979779931651849787702136285548548896928781691127271568796274000183015318984203404076466255098641359356385020594573827980096240633156013242634036928858479933666839969268098986804394028611739005241577590621762040337726441913358949934024388621786919874940923364856568995941587445879719411242490943807276964529861435131867469920706095584772706448358157404739809491741711501890277547308042561910652560587060415692279664343156984983466085126563145907326907364212689365031304964380990645711261607313724519862219560170634970243038600330862940330395251398239062271781326860538889699493004655052008402306111261585459733577278406522117382962377030268684241418431279990486064595382458678119010942908435422247916059917409735522985375270888509037884453687163048387108761440823235573812145640491742094688287737508755084344904113136646025470593917403819987068910750454299515088182499753334031883011196298493116356467029132710088388441924267226153608448098024900680908721013427543920146000692851510999984719801599945123676691153343767590898147083740095805791472945031979414607340672690899546659313518605531258457471721338404346363285876628809285982819707799184528499034493446710779930789432969916592579074374602428343421236443934034052251459483478226682551855017991066996344976555440638087181738090174710255814099888317928523796198590310688908850560465378900995277716924856800154132501651672580826563895253592970192421378199400456205885969899737789535123219568158841551359135977590327742849901563696279340638953118777438752010724682852880162036417234293851350520176232883073299656905322753262399223464122151281457818388178414801155131889382253998978220221934774700733176999533491133600696170085240623044454075043189805978174712613933240255603912630245763446781748847842799134210341871113227676493083796920321941919794007949009569191996142296885572483348277886718178138759132201652461298539312784731087239673484524812251287562772560899983551735533479203806703850907574861717514499637302149845366002172304234169519585175535079859142964089422464879444117155821091441506548484455102276727213905077697275034458647200398876391526749162973100242307816456177453196727420728965950926941342473146054933162895238974712745382632011940990153653495899371469103007598519409128458526872110584127342996881253847558090284853147357737885266392326978159206768849203456433994287931167828122548032912501825942181552202617201466502989212223279537206497343359560147614979674590217146196363349249710372951898636021733527339243116254530893597707468898255775349027728591883895686353992036373238258741088449982443019141341905053272572429718559155661351659718135825916577186999764228245851011328909432001621978258979100415737688025665961548464740834267073626663589463383680757519407552026382840915146639923462309845534683677047885434402439336193786486840553518651772216158412565949427935148366698114648391242564150772139748381017428303412662315209754778900812047187446868309314184599097694149559194781420902979524077861520911616201575946792175935966102072294620605505843879898513430436520013288456726549306861876870806992670761152214800022463776749362931421384724127984145549418501652325479489519934131906041858636194683023057874869594889968232144284868798835202080209621338256869946386577046257119750475333800103719408835014835953169472930342380889251788271670952644739921091863949035994248385428494478535413877652355600835009763564564780461196045254675504439377298793011046561276606462394903439474059136997746895937002132526405940514149377173371914858925204079257860226229376844866509787808838439957829722232339938975762598037053714622324540260409966545981193128748567782288063459482292765851124160576883413973469644051441938771414171562644872410149629291337882869658472840775807406035076247559594406042948071102482505724610984730010194584327188640271952610468366441618364221529290026129205573242131983163776399654009454473799112227201425219246540353743151928463222040569012884430901958915335400340568737772941269844471577680053732678916476010180718120379111214338896982901601952530842644696398354520574154167276161389981206404002291361710564097430231777427565835064158660171022729219541097925871037825076985530066190879650106180663394482875446557023500736053985056285662309657010734559764013516225114861060858346394841497055286407221244494455608662896823581711556253531322719333190785833578466360710747875186019117848827220734037514953977026374787581870110375734949632856179301334239663687577998611358940816208385350727587440235615603435365015281214364549204018393765597682076247408435506329708927350442039085831232865857589290425503166265782667032602638696905312793477805313290891785597382534146515936231285864571561961837012238713658650286145082975316543120969725014248625234341232402584550248795338230809279973945895506240468485999781800057870646305528600166670317118570142162406184837748741792244627503139291691591389195530036036821562576081060240086342667924980402205232729824954013869972048172269402250060990121040727095664902001962883599863686574941434627915697320000085855756228974955326061968961626802377709488301879965112936680472673702612902159755375504653650109699378484873955287575026569927813241608202676474494935640580127222985013818440851260874994273038811583373438813618709719762412294839209593349145607084923300480995525354140541662187583147299030665708778670380088124638962042653115546764011961611160923578818819220614118537583267991692086282519024523254436299158456646011600059147620360634501511145816594969318443452543106709587608715636961013883420306691107024262454072526805299613156362964890920869012833363626010890188064088239721648765882523692526135644760691757255285161173021850730902946415012191790004129485691436315826828005373592358627178180201788374621958106887871222959165617151647808418998717893691690594656181007695720132390733728869547620612624405409395344022748639012743371621876887133199546658897910328950741602809794000072586878786942534739916419212848716213273657878314396394291094053206823784135035970577132419665713949570395612205036763368660620085576942846482084136028794897839075382788763027568724416801037637790723225282056145625937918797233950246916392394365734818368600186109688277105262117313249866304014360642319046582767107921927687685305821482934922581010464334972839811702447686567822515711292191725776500039041695597194096352580798245133446271142838959825722431404624396121753958078868755813483631527011538924381924252231086391387086840431262113239901795864453282892855193284789538781389001691477347281343008911752411100129445613963775384466923748818834798806137322643289997009308990390990018995095080872073783151199085850279012061335140381755503392124384841692137626770748566132139021292064515793679589845665031498638207046386535021100804945615917418248926067930009449622575897091431339945672480724143214217256741419171006187234480313515214814043762475444592167021717920850477741940397296098415056039038830405283355013018581551155975620941420313695819634078271636974921631019505664990433160520278460504829012738363233514785979748585386116469402721504217413449657745425068709675512145893446930197858237442204655995590720737599350033834906364149391005096104686555086161827238621152883178339448190063831995295016454242499450910207963890789058944138109617375848400117821634984522614456003181428728150290881214250350891191683180995971337293015722805009811279091438220113478010865458664638176704790464330478377156634532461905573145106181035384528095296796610820494383023181184150203737353940448183486742742831979591757292972982034827710320936582931233180213462790102408850870488629297550560477891356107068883564482686792349534735377187974684105731876419535235244755890894058680812615844762909909265027471025091240415717195987063422279110881948987998745130228699423997995629546517672512359428618200033878391423839954915714684351921294723688830401747554531188309851039487229372375216126413691123038987083306821733933443135056111400847763163548520457838808425654461616704947918026956700956989220533757699757447865130573533836232228559840529411619173525724198785745378465488699304265816744155321126731993756817348934707818713099258505224392573599792696935975005173816760574093203332889957008412654008925440771605586811260043013693594830579430784038010158607517514085029864443351921700699644120053685798935489489184035681539646510349371933684396559963898343174577379780561632007408637977074393714927453169562164268219419609377589134299177921420507955412280667394885102224423482375022171134731152268267436198602696727047533384954486598056572104159957176915559318337183370121036634678183599492877707757106212767338432501110473284674215062113204666417768894595485849090611300075194959997581822557385768470528946120583358056500264455158751355163532377329373172491764160836646642903244860326232669989836483272125718395658426746779903843813801768409794766654307907169722731322223928262314059283780094860762318211805854026966729124597368575576935051253977871735552479486374171675482363947876875254605544972733341922820265483680579839616712768819122991966476989547961399040367957714029019769143138672310299884357659444897279525912123626596282507969475157035614876055039721323074346661502215171919092929552795422613104293697259424158224147182248417218226129179282735284527854659855099236622097039090157307985728592606192699191679194337857590668444406835247924268616492980411666827914537364606879560857756620648360882262073469116286564364505906808153536373445793809156669697103179829758089488413030284247538623754327573547296594910571579687505319585749025037266541965880465841806505940643231490334771502108401440977090408418291604569319049471521534411401783328700690400073459191045222915643885490807963049212286630971326674861508959588585137454339803835079166296458031988998259536048908533356384204252542313147370209061383341646054860140654718606814495862050884746768849210467442595384427066451254577612200564349718110110473639274395804972401429304473749722099524280515118973433044765542794087189971289706904085311529739345418532219862955781831948152520696705144011253778011801305194559161558350491367937208795348875498563818390703319007060561333358404347689556055088381133537988550142835015608114849362322587378272393876978938749514916617861520449978768155720983282847813989169484312459253926104739310917909841358285278396813793625296405438992435248312122886118946032505889663555508296047964541173006374348545989581556277564100132258662075816266566966851986663963124007051939451766489483713756930197343118535851676794425656570507329984055559677275705763992206370648021279183762293651547616061348933939462916970295959111902878289475524937959918723871961944086713488782293176977399787290072410624914363330970050334470285404666034413016740351528810440101368562339266449803980988313869962900386711637656664291582515890652315595232089266140057329406893048006351711004134284414229032900448429028388128233009713660544926522630569355094943996749870126771096859837705201041247014609605370964243367033394719789381567014794090104948721440949810541330052171078267153523641167175818745738564116145946638235810323830226714249367581544972960796942162767626283453826491035648594230931783028552830709444889504177263237866352677855775473110173930408320626467759972717169012198590310743163197556826071657082812372928790578339353900963273742122297864099234549611455675832989349022327792268829185514634183349547218613751973546762203190990044431313350755580329466553014489220966568255795234081086629020030149366626472443358220528648192298434313234953051721929328887714082381557236436014421338695587422512676225196101662684663511590764813375220218234534871014266673596091999078800546594974565862413367259783467759853294630521297309856848459660474243202405812403210134714373695287118224242982209385395564402598973712582446453286933729767249443696247870205586224837515711770355547904701922551289239723260944335320365840525326957382258774814972749335291250563327131187237308077105743965972054750526106568460238795396654312264969377096313552140473897131375847045871193299120520727977597585082830788693637636637717333540509957067840669909138328995245837569700848396889276862283847547404185399492668246422235080527239193453280840713643512851342512954224852039359894015247418378714875595460963225385527969637924062246337939028068866167191497386338247463727226275683172811726459424195549233695948602536877032314084009501690968309634299249124051390326787271683424837978183892920785206707783078358856428117706989708537463799395098395002948478624272604788353636388940189445903019967006535291818607297711320888913275455054949599837410169252472216824888991736659683573861365073643341280420316936209901170464293890433321542969463663343812198050759462628085838628415606532283608356822927237630477739622378623479058441736301575362932601048655024439242084686830966668167224827613625232032477536110215638315455984432648773035078694715387835751526224612256830976248649238059781810907015213340215830159192838620649085009823069730840345795259681094069137263840318318653853192571498829098446142346285338044356991271652926941739514089927364932642462590460906157956236471358458457588096612011738989200028342336317996381139021219385795747247997928698359481299087514309950395635793740477764409572699262893017291155772424677340041395037280781052698695601772530558154425813782045980790872188916123746156919598227142423428682469288225767229099610837675947620959308743095066906849127003285946976889531387591266294330539780136840607825693315136243292581213958012224141463053154172275369474337255657517904175374327393856980671577430447584227789672391334677679962941507008955907096530545639927243322216117736182631459701346765374024564767596337617806544764297780490266363149851436851703693614974566439800766448071069456081017318524709536224420068238604249400148775463226637981244464420773059947521812020773286689545456014399568578914481639548082670162713354552495050767020328198411046056831290206165889090981370973531069005614976104049580927158734454600333771811518602719164431039674927324934076313225460114936236403217289422755337911780606145862364680249178448088787009731723043972685216159973595999340808093251723699320225811661317005462079018843904448333555162134001490461893872374242828975871335914306067142022231191067972759490083244305700925231325773662958691473962025925794191200734384229126266298100690027063156030559150522745625186477748415117964361400206340503741401481497879434989232942533953830326583205576163535292887041007056625518529863763168373348244739706340555589906225960829683565299485921276049544105515036398628487152683162639295029998764532139032509690844153506749146408887704228171692514361579935765660232148404458983110836673588127434574632862199780332222225212819285390315147377708509279945087148438445837476353172737412925829136932470973246450569499667365336970845202588346880379034413780668841443788198920854567878078562517171922434533056684530706629979971234215111884187615402662162689644022753448091198729885945061405706654562584467005575274030879949024138063035640392685852231965540709932426087522845260957058686217297872043294860146842877114948950769644258204761563545608172713613856750569954493217539242617964010750280559463394866570206187778337527750890954322722626525655972041829650726611591511848342506431740220632279170426360197637852975506480992614658031980376443032527405558480839738110904967410783091238605567676026697349937086862735866473150410641507541159348393338370773562803779175240552314080574820964811026550840204079165138064853291969534369008793339524346738928865644448331424788706069879398795516364310160909841299808006982351300253133464382582326393449774862030653045295353733093601586757873402482763039530546305926836929534871303834773597922847664493315980829863181053012590442908976573866695455249678245552758886521203290144882952925088498893136556595186022593223537523659843615277199564389696041740173480427603401011808562441623675352200385902472785413370934588432732610039964356763642782916262943095531710884133646893801099869522127419320152361452746792995783139860978219393988597156071532710481873059226912714243652297354241472603748556099277197056574893557497142196891383616708076232998320020849372411377639804874259306909761078613282704289585777790989003400069877458716931120198166068084849546257020938574195278834167113588601895865691993384162785394964912309809506091550633765362605816431304493018401899357591201125519578131038089039878735678573765215629335784132027929227744185181702197601313623613913342794646019096122653823769967294847879977254581246222000995330964895919965782038502104640335594934527181084447804624852160814295347962473208503370333003206204505339967412792832870745871809836629187877259790160119995108167167547321489148103708895668875383655536923734270805557106670469273312399234504995183608767247743969897710847511338785797498481655453698675496414704129472664051285242338985039856197000821550472840284319779001778241875063041352111311685867130828337062332678200052881900949136771924100947874930637753282503000261688905131041373988360006862549526666509753527169841112527411543605804441910073256261181307871695961461245862201275218757245619227766075805568301390594626544106000953149140015638661542263499593794686252411752415592165146298537348708003654421443517473987913345979258454334502097850634744895984103354254460966807682756455454640999077633087286465528788550468294696631849788401881247680215607080374781806240516946025382801906638607335010026390124995276352342910998594681052738829849277148373559441558760652286053348949524124937658255018060000795053500714792450369464671155773479274362591120234129867825164182942250473476420917822561818703268161931026471544297490316937581530775449729579000510407204621683056787133715065308111940559539262388564777202061396743429624540859328374186356268725804962258819997678448120306236806412193719117802764832888333191776394523944537696455269891318311630462325762092991570698155177794133550127069409515069058503091665109204745169788380076718890329740319345231337999638068951840273706154777909829719574928136970071501559536817089987145535794149130128335848903294953755725880100576942421093867203153139474865692932880179492239028378754471920061893669420901569961839984145152767080753180697498568164420434592694390364410473895413326121378438008396795095782302183720583560766307175383372761130156277094961142324121843490727527118447769071333183852281739425760789108267265453853634015217858407527658736086612925168899891915643059758361825822330724987258892818886460115609350924437686903188622423660792362385158486022333135470939988918463841698362507813542836497731373676462018979329860669652472627487782448379997568175387277541074732002707036348485548430099237819667225210641471335089801821795855556833214965628710806987106679748823687426786648262418388423924733013497114247873538749234678732193788347638815817670162853389149762663487125115457076283077190627855040948363466290171111867316998135463687262677009435545485376467783533939947750487057500604130577283932715320828807322880949520058228455225695975823127346143388985709502299087715588232650607322017303881836210260357005251701248465933588312006630384424394491685582550962930443334248734416585804448074053236896788413789721841789897190343969522441313924088279981330002292155187409479705651430271612273040456769104561546843865676392859358251970802578980711510496478275772500379195748020700658189078569073194191128791184854290243198565851234178278951708544542280134866283114289167100980032729291431242465312704925879233935399028390704783632639579936690949326648904703487634177001569358133824530444004650394586932516603047724921458921175731002526741743390745686243649249963228978359303305536796723491070691143846704115959988458103405878981906385844778772007116384959103075050271808733890588287801606071274756783707173795924093818885927411293174609962815181864399871909489979512199479065019281069581307323907937552098291879780584137624183736241079535745181602315675714871782203269540683789324123862447535373472331442097796811419551707193753248122231218146645970909968207066193487971856894054324548733084627489883424961318742787398762649970637610634648656654140571448940102588852922458459932471414476895729226872920030060315546066645751868796061482224419406489310295115616432882521327420135315664846166698279099358103239767624977892358172314445364949377507864706947984952465069527586010122674624915244766908428496594473916195914879230028278626274468331667063445491544901236478270337893270244310589303000621421445299160234443079379964559597768660996365345521832555375073961510607544673787763554694472513297124493831246782769592782125370404442659043407366765445704946485444698788052925356315719514858023773341018941147593297051014842298989083641911946731735663038396998557838086073413581862544108340130185860676663739625216411235399852248596745582529508022671540954855934793074307857670486150969445979232902750157740012660505353836188881415584670190300345874918248508188976281789892636539061656018284630496687865078987124651979364506969053491359221941687865607227194793430341453418234932255394330905387468292046809989532567276221269680204890683578329373290778048803514942266392469332574072697388664104822845432364786497590103695724458771233113573084913708737390805796255318568200940276074396217262127057396277140503501803502928104891354718370015189059369459243125975264886638365808211815459500395617864701370370272828303107927820686151188228848189034800594800321938804081981569911939423604245007148944475574773814294889418761316254771194245314345666526937211613338285146607485395593997960358092997871746719402116137094834401604416690909619222353207621572216237729439276095161939291813276216379295315628051301221504307043414831032148444938381507360919692380457172485516399079896060570271895643992199332173873273950675030396023079474393976977081478956589272838054717851620384106012206897269482600961902683714450201427742345501831686057234994729475152627423677935127200538481532177277347309331224474732111116695005551832434763100432700133680096866214240779612068946830239133068220474947249334802512838141538782648886478621321873325140766357062387896177629526767742653997565914220379716814481055238320264759687281707448086677584702107289642715879882039935273913513023742886017805463700959547951124392922733674702810252817224752545558590517418573930478376370174572924388033513813561685991846467659722896960371687937724768169250235426199277995841707373375401146805987272665728397746443978625867679062822292766240313035362545974651573700523984327652464952663761968407067103993699485718924262146659426526613992528448312748366523295769874685072953884141282204738244737059772105991843505433620198742573690033682067668956627300996609013420302157314721868279140657538730505048367979146188913846493922144497649909667821811511948218863157764468961198095529743284917291353024618784899612349925156596647213675947935812809506924761396264684831996830575476175506266296788739889116523516172272339773817829403892444853249411777047339255037376478238963325538885120752597321051944156911580956753259095705399329249739816771940753737541272537967717599166577729543625008774672307919651922467964159907872820242909223382493012865734927733508123178173008396182353271760712470643984829205483142163867089326106843125788391647101535553156748190257859227485308750131259171380725418813025800767404463900255289414274573192781826602574776174554046679399237206419749624914371379186179122503774403606994393222602795436863402985626211337838632966285982476724219390177258984010050141260681317359257942972408464988973814495529552317683603124282604616037780241087091881598077261321707998904275471344070090662141620238694817350590692881460942552581348985677448710371921846323417043285621553944543575373326416476694013828992691913658648550661273255790857267001865344197336882022213551824582033425964246140969351135530211997417352876031780910547275824705194467802216091870760941016066820160305784057670154356306879407025995103826343670739322644969925837978760262744304234604518191434757495873920747527846503446880717184887717712710279258173117814184018410081253019289752874359863283765166126043609382282746583135408048120755422413311222625805571360990286270396312210838701541983604789592897526448600851188146873605614028597947258956909453253840284711232141952084410495540565915426348864907054348810712108686370083257511286532540775896510727197749532365125520355972541246198892450894895747333156652808425271717475786014510531274393946576378520996205503920317772091357421662511530626862769208369163621152015128817932645138770349453628821509012605421446842010263148474548594378743670474338920289680729640555348825911835331962731077882179546061279613342683218552013091117958941913032167119650575935022860340007999777450289412650532064214929625243288907579630588731878885158958779991310166836751728530744494975057397931036968667976891335673683016406345871674447777818902837920542538799718824021344151515426062931525695834567935339539582121763869371886550397708923972056216891462851356220659405542957613510264376047700381486006104263614544736884381011072621794570078645159792150642441660646604456893193876855478462203941368718825432656238830603273701159852154704269464300311065916246805946045388620319112174923545967683840275887242618306414739161164808933487982473985333034983132722249076254163625994359582400816256001117599367403081343477381512335503083706678544716585117398088877863695075282036921806090056919787860936900568675986586132865707862380605830234161653347710460270459499462743996074575718558629252152658480670628268531717070099398778271568180179688499312462452589306081551684398768199471643464575937504423032960744891723102729717308476837453080936483776667659164879789928671090081996876017630704408131333117329103439121683248017115238922822945820012690078775019871829100610040283649864347667069750097873239876617143350885399592262951388711543708114950810057126963295084900760918369843873813173303555560808174384646399788957929513110667330748784985294511857756916924771014465742553179430429093824398541192971998054925870773837615352350291354712795965345679823889863972854176927216120847335244350137911753710147292288553885341701621782270967319178469726664795751681738602130248435306083137412402919622360115447372912568561211399257636749794242129232831829441909774716976973691435318839338284908583986446027838489655857523508173862265402964771920545849482781952175059949743316984690459311246401518602241779649293426295619564276902270100930233461555416778737510611180660807795490357410544129300274203441666860300859064462502835848445276618313768110245154695120715621039876212085036705951108679745411938149612363088187137559190023838789251408536963355427758688279347484148385789814008530496386689035151111553635029943421044393958143153123714989675299644589388203797691785488104850634913077933629532816331918220685086900160565594061983006140591563424055652626859995606172129201158881570459190597794826606637281542289449064158479033939527703553748100661422046808871789915059300261271372947995978426138527931677707138825505415099716316149023898487400109470115368093615862890268585321778278666636769915522357768251324034230538740709364065508341252227803326545563789180442575333866757975524755536960457079094154612565938499234770300514754950909709606594878953604531165786389471668343391358780955375192307863531569637196712399190562846930990286465805934070472086479020445178780074269307500974543119571694643930760309441741782584053391010942807997140558928911494219180357082966532765097517633182795815566231536978683089565945120735410407356258800326678236576986903283151881326164816619254672132401675255195150691448776260226201549236455846110839515517861305513122294386018152029808974191284165483380974556494433707740858829723207193087796085059907323040389658778487128043902767844969040217665624441671651463406780016279423486439117483812676656735238937851628796900717039416818334775511182636313634243168700948323706575255250987289309415170660816916839823985040009915089454617111253418525071743697830626799395095506337228161332937307937189700206817197079713573378522963947670530669636420121441488213528391716045000853555068350756408503705938862665626734962909740559944033244246861645322643263554473900232625393445791613407140046165118566389908732994171095438542808628599969125525847758512869103053318115654347984289177400130705319082108402195193530613065441777032372493119525084597754551981484503994394980389467152202781339327736990200705306177461467541103034732502558995323277299478539958983164251304672791658893349461521502137161277623044569966019130336506103485502928960095086686728810568881397184029946657534731197390553919234797228050411825509798986647225946837629498910122422638555669522743808208219649012848695149523997973810657951805328439447629634224201841962553793008088660563541822464388835453051425494710225605045172702531687025183331876511161216106035896347765117739630193212895545569776965735098954805939865194076387103650519683267089022033547436402515288283118428441758992141954122767541991737526402131591269748088486845025123145748000132822661590801800910833889153404486531976356586069847520490114653173805459447766326798851688895747110820569389085126129397430679533563292575929895108026243046352395624997256594610423913177862483169767533622729894385905722915171141134333787634717646771195292200256275076861973975695481726994163226560587612867899314949908547202688803516905908529946277352925290055885527799577261155773579600627746706425584111223255581985510293571900569550493296659316920036926717138658327327916353429723117987231663033656643562505271008176485639659379644688502657078069368454010377542520504938251449198613875164785004884141524684637041720288227207965147653049970756039380852426776559942564586616887633238994724921674587035973217629387917014787670937019150908993509054305664238264790178355539804694621169544357329708893326748369051344979360541060421979554887492397890189354383990918764199985546095832124029955048171085644202891082910243012492200339919211655106609462235318709745417400095702499489792134530249057023248368610832771405802214126264273119649724743496951157413028202874562171708136885430040146902424036554809758941884104934309030466725554015072303195811343112890091899166370576937654175869447203688974097024948539355123569984979350504808171670316736020242210043174904936075861586642243088848461728444903318781835813801917158953683081912181987129131322877580317495549114335271557410909899858932293431625555470537601304432644586480570014783001997458775685499795555959427549646476680615140160004349037363965033539316894658610998184866585940755316076656200456018091604929106580602407344135118857401955577429456547160498796913872355292801152692727863774218494840579817683643139079406136661214339834401073226223692316588999449564871363937034448255450269558356322803108681824692462584624831714726286512250471654150077566704009736537424494367280858903396335737968589101863855199412392270190824272606272098587767775560279356040682629259189937951634564061548711475469024083245956837214717314781043370020911469951245044313320396802585223199102865545529969578251044158224630144760018800728928848661749942352668316468489443587661451159913468061071525669968841976174795805508528668035358661428786661460687968932326073400063010757455963067822892560922498038392277052721972967575255032676347810753465536980924627105874466908755308722483618944855841407587661486002991587415881478822666468368433395352534030809450093816572993917668959094480506865488575755197483766162527997534693180945219193341060108965946050938645424336990737456302206740660979664832499032485320973278801161299487817144970618925285504185868981547569864313995104060605693417415399808522923416551378876103175251841746605751397686337638421902790655951502793374262917931361967859083078737597074290655986775335818297423685711888877117453162961832702851295357968114340158923701285537300628864185752583614413920453686160249142895017494863982168124838990416021469996867197626441667633641908974764522943481093115802902711154125995247629003260291592366251090650147686419957595534783649850919496932342151872916563333917396250620905333557329249995935039048443380270615782394711833843681798300047654573504430360059985742444439439306037848109776619354394882782698203258007225094814475753420135022999647439866489966042269458998689279498875279025693327161061283888097262739990956998020057391052229461852445419181028278546701686383422170397211879254378639301150284494265400893471488825803305799330064922955914431633390232035451306120043371663175662438716536122737632449144520916148781374108244337288217494836192491377326734131254301021231208510659997455793154985214674768855761722979190844420507441066119709549991197681792988806021713762868265589493522829512769591366575775304484071320144244638716079253454044818032499790876554874120266327109014865295109968009347709883787809668389801559900021066971663055221345315954109411641037762030469585623034036621589240791215966325501850669972852114442362678549634543190323075182077944466425835487038549643940845037369668116004492831735791878047796893148755985389804631072624533883090079901964477189285821269108703354713902453346915788243119811782882626262908602731186774769053736744870887576566086606273156636504424362598545743725810561462270899393834666938508603168843904430227961864028123909293805635116356623130645195739325840288792022791420246444985062868060900915733786564504699396375547133488157622270278851524923395879467707092581763978282865280070144075126470823917447360529239785637486027899332804846254953677097324873065606277808403101035593651918549840412891606910753808186595137603026656610529893441006306498473490030189465299041629725900058192364950751843017216360681411036884901806271860193871058032397978118839199778691627816033439013393762686601234512390609197206428034769685591853586597265335256767417522746865243004635350462783157707718353354986438223240804764340269303315951648737264585631917783055828049195956180164583438733386896406181051585897581968086962434674706464291319295266023218031423625039079763693638544653364121422126272746539970787022790946378587820270522046695088387921486769563219062345134891412248702893213035589512242233748489508751420828104303897171794505994488811398821317087995454671730177647478519509216321433856430837595953179990648367160651232030326999453758622266947440209963958910415955504802762090730557146711979467955168920992851872976884235157863833712069564268035312160060794508971507593550418819794751266068841868105312717647833310631957046066437210276781068578393908430437947728733650864111586765532228588138187747000226096969017396955332286620622282876765921277308519623627661763846826804695884259621992654131311896126752562321195329496561678642195412236021617584654741917609317789517244916985616904485264959225266654728370901051734545176474941009659871579132046172151326592218502785903583521060220845159788227154489544971686429113123632089741628845408307295424144687424335234580129715683785970202591935036859190189793568053412987665973328435161101301791040459521151536175117059286931062048294079243580222954828010155537194342661618327788767632319349841670663846473531387821938660090254857856441113197135583107147299307919833834472116730464654608673623222999543398073326627527717892937845616133802230408717708178467742397351265882065069127629332223926489403007332824855642776982774938670831177934681665544867532935503867508091686601304168436220340076871867229266836775218508565099090479090962748321949117805317713317057044803539043757963334432302466624601756941197964727216793528310082662732970762629642850344595210914326238007562055715142696207138501112814259664070163940682453093108664037319396473035329641414066979634129432249210926909057098301313915693949000645688761953038269067892445044256052930323390306314324892085319265706017356562186910226868446621143389624825475775303070378948521603414278938012119892589685351365705191135767935793221131952387147309278741144408793009233450926424918840396660924225809554844346827279766317470165153138669662686023323566854233425012023136308140239523780089219111459454732930671078464723008566527378725891936065373090197546564768545863029180859879882327814376326797412212974155100391116587427963258065952142657175154133195453553935613620230974025804343028999368604823801687365870877783036038529620002632279060973419779784941421986617831138910656695931144968736935024731796573755928363624080440958590750818098233900061974562394552702709327725308273881609189942395082441834838192226310208801616139159431372443160273213990626089543647773722653131885776608038190991486529057655059535114819745863846211140533222863508603093960843321526350895205862469340719325467770522175850895038639002362264055935540018640781886825087639184276098334190632023106112279716583212797102765779037611495480776369377388084541366563061112287644092122189331477166797376973555126360665973112499481770570851221588005794133898236825532815209939274180971961124201768542252613309074809915139913577075362924744481940724674788748087563104622620939695265975809024757715668888234747695675749989362754838714343797148293445939697817518328427066212948071334565617734994107737865269435793495381909892551055155949151703495998888782488952436189079695276977509050874280123603676583777462611914535413723711223040549455803565459577881264317277663141357019781954008606491911635065573713479311231968438469294182631966792774185072995477650331670729669875066941343103660359360079550592668496162982411028425537224586414214754941357933464410088996788350571702259513806194042248682305269621907501606992652931488430046254343506846707662499831793632592671541358145792278046664144686133957320327005806701744527047167140259303923596662247702005424952977524152244575980705102022657531203455330649022919665549649693857192539195715172530030131804903350133068706447340402818941644269935321467253685574910837021487670892006142853279864184651951080411241374536263727717212672556885459762485762312811662930362592970422947352062298166850441386125968960083212115878796344215681578780281732022178458017929673401889324310908873761806512062538054347186314944635774818155464199195353561443669969913761252367845341501890379956948708067399957875273420562543306558300014543843916456384692990417799612748237443663651535216370260062143722474981821393875953940895806869137022776238170460265911902481337257353311301001318576778573171164465575369496546089334907575518627174509923851380330156296189159206011465140826864856854322463001318248791649444394270953778705050452149178748666852448518214663875926213613050454933517120253000969997671685016144800832435987606467687849256441411131031477905729552634621947747322887242092560574214715645522858398488755569737726112154686600777953063556713065704141288518945423461637254630561236268631366956271816826418161732485334295021734774557979850718799806471490873178285920880317542422825323683581323467553606593230842613728225732128600858214950717897525674401670313279184736441872868808773281414337385781520400959905437390338735760623338361877168796664019454223508351897730425674544172168433466197178866479879692447609930100538637932282424823202624969030824105611347873896616781728187860607856129794350739096818510375705047155910882543076318239159532765835702347804807130626783703145679156740064688489491427620600665424193363386373341931257510889856560872197833300731510153541901350809316513816472814731690732722087196684345265010124716677718009418521464052306309323089837965575220197345127931312173356670049075431425359081406338390075522691020100710495676819922221809775806797214380350174476986314662227617159258762911772008218216496169557785074508648562931021131625827921246091615507610401795207319998508975825629454766007094691609356072739955881967732213917425505942639481146731955183858165850195393756025086324321626319591479521120991732908245905992976901414170040669495802235928583992279016047838474978520765267863273791498966244205021351904292499450903180059302816694269893711329396257629566713087993796553310870039654791262640285394082894165097197617387364143663518264411850036169454883589012770516571408048569902399978162928115981821893517785150859508926781412964778899103816749687530116500712115465749900893421645370550740097476767446350875746261055137460604565057399986320923113918238881477767821386701951528769265047503346065203691689220641038990419284566717918479937750673567186607401639385744903565537242720519636950007153221979587960820305083001724661984118769398392971840936603970890326669322853284040158220400421311978597798937594949221089597214962101433224848563256599064611430963346706020159968957827665482037884106805390868569122717759735783132622453966300110402448273350217821835526064913366582921830935401392537420324533631033589045443282359525321805696821379793690892712882146282491596900157128837639722324568845871286082992999353906396080696541919201294801695072477581347256309773208469940713582596919846389817732204194999148105925350661570234841021933390011910380021687242659876297453856804718207540752016833332068439574473427479720712539436048233629138684561962995437522722873695241165477541284419327054457975024340473299869355231618166783939665057494675626663959082137907752525579972456445479612552239480210647661414686770961212365924094239644291913439531623086185095821110727741770432109285695119997235482431815218387310052434395479038126055014183724128252925781060973575546703313485583396822152972270726715959059966050361944941618251038780456628227722120745689484547583344412450758769300119763570694462176915962717629145863933059768379031386646848777862841828236969093472345318496232653476277849304095674511942873012211959221714635215902779793916189274670719984692897742017262951009613189342769325494756346739767523748895653502588609329344414399398388374065850253209248572699164745561072294555847959622744841451272428624355953530546260590948321539441973035946548860691634355261285135472222090517116415044074266109332251402705639503095857901816948826283563430564353401063939611536669784879750331902744970485762005163878498777735933737737018249586096181962433296041258531810453845394847197982916699049067900681527813206301438371196400260104357494257079006495005805149493950784556378757292148184106744408216647516624692869299543300115800876288259572239350186414402602211340463402512923366945739265346099045889608570463675991954479309267867263566193532300965439999937610281724604030737847354626997384390934569563379085307031322366866949399413468264860796216935432339771700143667345775953169736707054254231814624614678100493940318180700723876644066052282128238976354668530812617252431374918946530036266233404733227848137294836351244894633508672203651388580057041069172337089717566117422344226808038177220017236781689308715490291033735987879030723896561603365010054949101942169131723113208410014117760413306916752458475006785623979138391559236427318680472420391323526418963792246687177749182392446203390427910449682913563743701160228876802146850173892936090381955184654998805592239979536025433917043174441961272527285726627751510258059172191046050409101267571712174308336267152337936046799789111074796888064816870469567145092523106159730626814628530232855224156272610643299278443549893020900186435059662289983685689458475239495949310331044298977982105258102646453789147145787180520868457131862559212075498702170594132333739638387339035468977625361209727852587013918474371436365813979060680127642976503072311467878281655435949863681499208335900580806070161208887807648294312550035979579787839853262421402766266562744615730738567280835204510053607788476187165980992722257901358331680945449988687898956144052662681958452256136318086743350731602583755997937206326078736201255533217685359602389491021142368093804039995977901103823940892786292985312251430194999921935075086388652314031459023029615473730228856603623606037060446583900326097439095048644769882727321157805814828018367710523327025669144210872666487781638177265907631955144690705078103836431328425258137882864702608124398822011034280152592593713215689703987496146438679503289221822363507179726961230811627275967983570324787572142106428399516596525845447282450645322262365463407317228155185202742421173216820356786707042985983192284024499577448617713006937508739854538544892911764302532012220391485384545617218182319977242640570729207659204306838142200894263598405596688516335527845672501522548593005055696297059457286816971355104344889338427903179002106915111758064139987449816219958361522143465387519465523514180541824799094513364752589673095940916497265768935937476766084079724123076214516334125860340323217830816184600193353321669871558786766557033003206911109272435107307285093546169314798657573264673720695999578229970950740184246598051907862936082855182350477819480537878646487907030784610143509220857992353716881428617973996747620581531017073354971526603150298653659808873883986783396090578489227553231120717555114296911440411599723709818788000012525961801911701530131225339858265413140730581798495807815872712215174780934340976921979833515505871566697400268229623200275449571564939659733653134737287965262098243091231873537491204545351185882515049035416782824389124137801371373878715243737350163115855000689010452712338050200283951213307902754169604671332107319010638889007988516433570439061858023034651337192384663647439887521920530659640948404463755569981648588321253190438554636081287926462655901168279006013248880528487583709670965198480913804141495755786252678529943455277093011363310829146483555337383651430965137282415062660941791257299840261850897180361722980757863540421839327014011818496683023265483292917693566188979157124202448188766234259083131132863296357199657295184472500456671536427043666091076160028854883262489403979116840069479705324669943412473101040323806348354925468101528898880268909542946304066884202630359977211302542377744170424715092645452896254430970771049970887274578292957466170671069624714331810187150304344558282276135217623056575715442102473016676487201011133879758550163420493512620119360543530772955790038114389073470073645045444276143505217241081085501157214438301098222142047831611622345641795030167418876438469260803590353730393527765972895002728403454518452378927331420673295298220640369004097907180631966031118103731262899816471994804695786002570654275456872845133771105718935043375052376245210593778148184360160165883354162693329308489761911974084513645288079065430873296090485206370794878247997428520886965853718301587355471022335028495657153167719930764325403585770100068057859382819765411640538533811485773433218954400626749398767323090792539779905684007337966218150113024205893989927892311680701692587478980080508533345310034581068966708338700966377789175744583165842454494698245355964166559649512519503774065255560244977210931201670466401135376109458190460578581462278839215133995632344801591469283746411886244110227161825205984473211987538688325706112338689587979310793320681856338630754932042708274973221829949630832617789366940082823192111503004609185384549143583571398636096780636497300132737813009125060143481644940388974807715501366670443634001248969444912528389823948212344877426118998899343112077569115016323048511033459125390251258328880299500145453352584246439312339127946675315857699602133727008208546105684216935281816731299782684290243235380589258802824726964796435393650794539033706851567675056582797388089513487280017061470878611103927942836546856057287573815063898120887986714694749173316514890521517101425387934618204265161127396096860017594953374844110629336567857558612493800807104813721047513007237159530796413377624774999756491390355504382077676569434991261960340034462447572994974782496385859505958020278987365605303399061807295644102228497961614169518498985284270422092277413278988415512137541214494281947963557862906527242722454530407854169822794475896631621101938179457591778646792641017278234115323278193975207500016492363469194111726940156297111369809703909545630469133738137022949296312783357722110434403825844613348078782097502620118803852702591104954649118548662508108505101404557658791517082296522830742372221862943421298916274434916005161617420576760284503208200301507696685375958311214441191760754230945452497528593862327445917756761521065847234224754310404425601396170219915642628009901176851175095093690471095911051707390593246450701096514255648007689760760846775263234630449813697794899707970693758687433453210481640790524401199066770744679895577436106718289928890256440828696236772804006810413214565943460901931506212286948017630491369823118768921140428684420295092056638964767462113197311528546328304970305197814415049634340467312875532638806439676477002419468917746387898766860261122494508135607133088936160560140954765930493107104129988797218601445808611938569322426983971552177645148275985151607691531044564554063723871788276172233798254307971499498814883019258283406763941280696509320962460855517905663819551413426987487916568118892527125600448238869459560266760757725650978587059975219537773073507903858812333873366670563543538543496472337413859607030906854068002054575439784267952400591419198265805199943825623980107091632410495752069196341604396719273994668380033547097594908684036210273340506712016871949927861025829894583572060448365237093217626874661348844891109601388829854050957355498712938125893235550573800630952165314468615107870037005521549998775295190511723354821142711589044058994592694655458059808215442651780935362196250896412078904437096579659711983590894814677465324271958201428175119904084454076949020145377789132859741189363753509952268670527527169344516302318865700340916267079551540399157315389264806786307121150940447666837381521311271531054191818350401692179041913366948986691420324787911028769868222570605189745715164920262171568910353248692027216359161226225577007065237266587038818642289053612712849154244841835620262126270281224157013234288011868653514368212566713944442939205876367445074200928575279601363728791823541520964910655670349011694680715934686824706848449414757593472002807531640983945673828812685045243351954130709377965147725061687524498270458369537513941639684288491592883705012595897244094864702091697044862998578140058214847340276553261679291702388426720187475278229602216289776364494282585454298037881840969129946127116667207113041266073170987087643040510212793189076295430980350110163439792090809815781268939588751771192095977994408529952448147415202858803902434190192564704220467707455257690097903516182716370042609950451621290793248122655797742048846072839491431195359248119822982410466437068567964674755796663918735707638086100847444293793091572474629671205979985362932448916091688054896090687332064989246234899420358711763030509251964843775421096392949696035525103064462257983171697633486840096564692379827939182112620036864878581496130343439494822000038142232255955818232911258111758257936103049551718090592145942120151906221594675859862521512875805835232955099748662687698524711619934206940984716644400714860751485819118908890274480307914995368988605564756111031248366644673054255370742786971760681144798293991713483864431085519610306920384770442114135313776341920990649173237845455008279903558729908440234923953727231600093271844752634447752975614224069661215032193372152299003066821533240383791847186523357722732626770874807085935336094910398299469583202363210064735143344900577265654454994831880981077520508262639650330363276854369613828015203727793167890220035048643214739417599402065680515195487106127350695355837193067413188907115803161745359924925573051715768754674992676348498567010772678015639183782794016888424904773655814058082001016739349977772405538843171478315584260090807907067221305765662638676329701351353047116750412586724623236090962370090612258360484948613511025862175805711096039813567406347353011474994293771136243437267867490845217120797832378664310034613637323711040981940122651683227739020585591411216072465759304083414333181082039424292776846948774026644663338486180409069819509247658842426859909895045006120666885109304080790736947841531735403675264237348584924058350811938534287938941463350790093810306962731738244856578753110974558972959517562415620092712444520564931466434498954521736997150983988672813996193418026542897168483790872810332615453393284088431005218959676413088469215278501198947826485251919222888932067227092390674737623054643728086289288414231476621550325387838805973971799085349881571896775292966820750142676639981557503010989788432669520238735254506957837072589254173866251835572526181340487810674501441783669303450834363750215416575026843616175490261181281339064199429830708766490736959706095300884682600398851694453781434630931979576556559424944864907921248353079506821657231726031992312986993326226392199483404046260961419433287680430595888892011778991907979149789095634089683890163758642074965792558597822411024071339366010109835540106067583034677684920413174386583035302054375896454708439198238317172263150920056734104437433667702619073964530253157665455001796001324604017353940734671406018209176458550589219355922868703774589021279767539477284390811601483401664438325225021282151557093164296465939903720805682005508019552246224729209906703097064135004080345004942346799718237127303026921152538402055009520846907354468888363199836692165290910745468229737280629521494761445193678994908250603819773009638430266548379566342033423953835570699567831901639795374880419093630636874540973115391393497572806410433136774959168811108770337966070134741603349652007742135374212926987065123957950371983562593388111291114892663509094525853053153401137560369253993440797190123765998401460706841429227192550196893382203524922133898366166052558867011782133409129889678721092554291190032626288382548619440039496873525698664901611117213666026422623309239016684515382127705873884798145337439607038133844953397320063846856289813363593381925649921628354763601559142365150568068137489909797986709158581051127838081469455301615710119399151632433195237412794187835730314731355088432957321669345309329191063573320812385792336568634678594045844723220797524028462533397449165358229687870146689016410915381681104961159509424079703807826277881147272279327231736114716868778823472668773267031627568204839792850879603688345177808247162677459965609873466986550644371432696896693139745295047190407467854807728972720467850761987730817358091433202450106023094607091324743084464147351969047345736618067343290310448148544797673083234219915177036341481032612811167058251631892952817526878570651699575966745733325273941640747423004163996496976754172424151723227044355961262148045491808117927570010987525959676356847923593168846270967301210402794834525900121057803228426628484578982835488656304242702428039747999153984350238643296278847750269844797008951264271823049790290876722121301651243137899909812337598785703672337997115142473519563025468904056328424524927583700808734854391750727744638392811641882915295846914830875410658135428386372950303010608558088059706186649908632037702848196855963833951528597458325220188067443525044197351300180165524812941345759837218877906821867516213990756034970994966318373913530991286990717563702889500728761643385909731178928627065766672351463623389834651714439936117525695501698186170206393340174165415506231982963010949728179823429459785758252269075079835907007393576571776157201042348292154754835936590750655080191569613750311788018426024536235256832800000192655727451664703161147539664963122585188837414552581958146835898115604775917091905762930265510699831562372525867352054447856325038513691023003241902138588378909506654060752659991490459207378460288159431559468245370154815399912051477358189762668717891317478510944404964266330602442390972654586177924823374246865947736730806300430706776639322607502044760215652987604295563249424327334795902419107483526059740173885101613165881473217371753087614048055108243415891918946538986751327112027880683720271116592800730469047577785947865723707895011921309763577581213737277773100710457983471406361203942960900691847103536233786609412729933748826666500249560065490505659068992281606848924214051934223533971432180211800940418477351688363372875579653126843862207874364788741769685193842597397700675988082076929771335017095086297949240898262325526567519893741857927038301586547674205145425705855033322076761556892993291760177059462453221225769841856336299482906738017290355239360747089916971222717110806476385213165518612385350956519070602327349602850398357909153116228286950088264819797759515678864188956026891969581186821478646799014797936420283367662392856707374836963354879208201834995215735124919090094415503044176938470314577663729336961381223819096750056215336979219920614855145337275100176797882042464437001284002823061072289890714567140894417612105667991095960957025028920391682225143221019113510058995908443061545822975812710694698719428068305199232578175256952998378093518806363333324287749026640166056595702201194727800467860384370398818035732703353347823144412593898922177558540611883336616083601261676969800606534047728601113054949353353628682097940825061072965524947316360101468639281428082941921859646735228881797421177567038586243956209065294323392983190648951782766896254729313388039820614382932419543304092876578779502161034453077920968104557250141834349519607293214960157743438564185036757039701207667941886329145646736929827516288213654929196503950692282119006263901016400684353867425816182019215945355976810588884032796581632026742044346160190723997382971220066392748530913602112891243743289653929148313181030897093089138998112732629820306105043341304578525293368633861905150135932317178130735487110241674324470611736371465918125037431520607801672719121467866870831187000087517964584036575146186053902920890972742168185456712001251369065366066782138006237039649801356759312078274116653964305601803359561179577766126134699335979024551908481097875429240265039554606043728344160931268700447386633953167954518924488897344748819439019725571328049259977342915840724480946148728129867569582107541059007117305284957918099057661394955437593543728186601669805856231238863848474720302621884947043631786716453393777454602052547347221245260492937752236304805360725937009101104699980735170886555770929426100673867808051047559716984105872662915934037865958727917095349420623150485130297672096445470898140668941313847798779992631837966600550773753253332355777222708554461902353613522900763780322281087308879758082230315642594959440817076980121549635157068508572437004225653326482275611745691835746912785050924511754250351957956311806241223265891655537503846211897401951927863660765752360156900038514331556242417191848196147159778273879579143309989119297290805878853861675812997433817723259612972412682861428235416337519648311406253491374346563396119837851064370772362004811910564572277074602747120462369539026665601601982386136618720931625389753248181110770789773586840133593265981929518368978999488078882493464470103948170139847069230681411009944831668577850222652378148295245363469907441333792015925349184477977599617664460385397705736894167363214030539662495236505150541180786296104621349474841498038984885873011496061128002095308081699076053855070817208936751517446804192420803115022440439925469714869387487093243503153439138538431932424075196928834934847861760944719945776112075955575285454955133031193237156284826497819046544852872098405284975544462269929531191331092381013318457857142633449955582894051587787454814384323730235218229449700767839449749081737696966901292036259274484647058084145234927342533616536286267261866734710176087173981970840096695700101492070246219547450231920724845931917403547479039830462778726486404806958522792223464010792780795223214485992553184234630449055544398249248908367868115356476050905463015004538202321147816570105642014290086342089146006365668111255133715935207333380109483575737064719557415275185732520123988649229700708744702990730239052642325694297330746435057907713544708685471923972428312675131915339230312749959964015640265158736861053046180735480313632185048802089243501168281321850497298227215878719721848631512464828231499951877136974731881538839368821107611992336920198210421376463742525123028420182578630183268212484212617249078824284224872501264257755618695180533782343430304251041144908281268496785785417658794345133409279477970368285765888208132264176585980339183405792137760291504771707473200729179047898687820120446340021353210796216704547515322627214024557459651305965846212927874834803744416277792949468808815719059918132017020060741386755793516532962750999118849406106265379776595451897571752416458870039055739107504262108047600227234203214104568121102004651536720755427793752859590788084118868763588483561104914874745010098181437567663745591878709749957331760130876740509383608237553789576581262109558302508569558887497935033577740015849335055010651879309888792904607479881782108529641609636580643633401847539834883609748496084623970819888637011156578919064449582173899985151232357774113712372010904356075405690078339043074155430697678773095654392915787314759916504620276975546091163736766610380334751437371964192392036937105233518288018142654509984089499887658160530011024311833021816265453268392716237138674371217897593084842920063673793602297732971883579318443649724007586074428807086328948727526130472664841458946117695373070286074598483183494772345492976701849659920015240695659930084005465090393300033056549613796073757142220846618876771013560352466521487295158206439419005914507659232451215575725607784517812940345524311014029474650276721909721679086633670900360839025457383967208224637636266626945168416976259576585761695671352190972798247256213610934660847590523311104699035625143490825483502521268919751082511832548483652206364673863253186180424375987932968727015964371444366527880869703837509594589847102079059632633927648793823211052205571493383188766757648330207588310577225153374925281642030324959752042894452324462541758524087356041603305426442890860859911807318207585817024666381258065851414860329279169308912342537944090546886329801417454779069158838167278524909587536042610916733414092184634091197054044783889813606118975532376802595699084042949458453877842573725982696815430477765227262294969706830835825974772585935779405208948353653207824168755413176433307015349154588170340358837310386548789726861969400416864054620125877004536052591667796255833141397897391269453942894123308499303131333970672862474376335530121032742331722731967310930512106775038268428877844471568028625510530920026036700736788555789055375913932714798398738946893435482211920405103029321920414666895202236344836100695947244250513354223669325282432973303417622785732039313840674062112050772917580116930107660874014753962142722386894421283345214093551487299130592851365636564387361352151084583906278292755962640777223940506742447886420709611001774559924870108171126114331364126326965415082598098613198740980308251693830469546336864249872620089448662582740559096813269383445408223607331445149821392330874891956372345623733955819624108643841740308423267344891278224991778767838449447961419057582691237708550173305083964621507319342138951321472264283459401185930036321864713170017411985684514206604671070490846478121707975169824608722643461021821517614671446257974876773490500667364490179333728363839666728726278261512188628947613893554135724625441466437715302407567755684299455038295012346027619213421179782554818479352553666575442200635908056765407905742805628940592105254842539791629399376614536850733212789277995328686639020694083591595262708828518255245677326411877387088046715292637891284116544850900929577384680192095593394891398766664559033557066435975707690622843575436816966546909546092591114810225625203201006099879507558586632708038253056170821805069546017601656124012931823288510780789973173186680463868320189407513907211163159032833666952126688446537777905205016656605263440501754902484684064367322775047263204198258494818175628532307093337112740771401770994877049944262429887176802434286077906638818711123003930525459221487064895409799493014316691662046640568522180044997408466356458465066272684582957145668598115408730953679466387116839984820289871101813775475316419159192397098511806963100595613959843776388734622265269607874706163471618970792722456596429472380243263582070604487892668300183868809179754535257561919804399081925991671245115200947976950010747905304564283692658291493596958046580438282877952902503104789384017849160272679254252900684441896563472711237096108717790146660640592278485135738989550223473569436397791260551943116428675513617155714913529206762199468364384180593730352149265058629519773738039924155500626048586160627020650192768230738941902215567048178681520022518957458491799206594467226195750764305754268826287113491083848771421318239406049448771685737027600439722706110681239184636251779151355329069617536409862027735038339371683653090834425706315937612144800855981953313141181478017641492550181001152339204784311481789009448628983760845562695814091736151529935278496360902844832235663858456381445099887595512288893840638579664134428756874655902692770095189929472566653264227986643664691057790558557569776055055986187335406119342118262018863563632885129259345045618010866009885965784478978277105456518146504387732550318681586060901386143491203624207313192765688576738594624022813516714289703492760376084163949713807202276272441477199006151371321234217102305120538798937013194099543474079827855863574781569443922113733113448150184644211361718504637914084001303741976397124592437812937163462220906828240237793017782947195860126501072193771766406657333503049325542987777642281460542661148002124553067842872042435462840477103408235189711415833655303800805147899369233310327437282752957795834877130847147198155053057572990119161582036230864254006410751830623141388618930959033213144660240289620490194001363871455979318270545641826450804522563134070062807937681466419907345440551856894228180329612124956584798866153779638406095439988512598737758159775626241522323352222599630126133437864020980069522358534387951934479411124627363843968490035225987505774848760354142617729411738525051504951221190423286767090443542269193887654838191486726088832765249554356449596953223516887596887901748840442100740460734775653381194118806834690026878151313779238545432329776270073047700197279729241518817572419747771256218055340940546489963418771015716493462384449157797513170512576594330468184367709456028717037846837100972006959053513948998294077920858037995833079513412497622850445338038145882782987446502887354227812242764586499943045470116391627528449943257875204966233811057135807381459556535608902717604752413476647844204580658129870552540043391995155767193868817702191063260874687659504125143395622206675163979939507330634406783089185374749060295850166393698167598047056816323852101081178707002064805102118214546714819577406247523523773386209633961562015844955477151364145297790089986609757361893210168284726503055297023846130772297601000907749488823715894332155337649864206152954548267798157196593530726189548731418534754851681735696108710554338632522802687599864004418553459166547429838254789424654359015670211047512860479394719273573956466227426005679825298419377150768940410001926924668700057423426705627948481410063100182989396033987253834276787906789049347385596754063690182768117335133957791383769578979178514193757570765468034172700007090863719782389898772240293460334048078877271305239837760675596212565836964594308274643421613168521804691862745821550376367909952797052094064290382819291002713264314872997036447653518747346155585059522981589166555426329439036964492084345079693736071259243091761807766867474179175124570691591291855945409573204755433652498409518762340704494239683257381807408876990548524144869006337938316224996242650263721789123355504121084942169695410674615913540057758890520840950893361262488633571005287475879174726906846505535344649357314045538863715803673410365338139142082542657519799186863707960247778734533979523979737167109472731446824209378192676671405961840708155345920786594400940472883510741949286959864362078356436435552868074007260650934378581189347209892846016072356232159386567126606368545406993659599565428437262979771912666483029640050338170166596324508400960754365136164006371851859637154388916690160098554462470522270799851228382713024413769708505861216889457531982843078372341843259021769819862400098518495895937146376921416763461516982045401086624308187741314384143376988031096977361966705625288550412193979869548041220636216697091120447056580147545128989946184841150777389491172756467307723218815503604705264067056695588262084757235418047706494890400790911128412569101940339985043082064763556992761961534815108299390431673715773075373054008834550664618995484039949321680706472051097870599839241575615230844214783952364020763575857396611312643176143304773057279900586848069804381003461437829962690640938454778125608881349237572734943268459589865351412061400292856062234460648080090781579923325804636880422832657921170327129894431774125024864432732635526098845690472642676393206959960502517616350137262021024452729963042795204956926869048973793083881097443574854055328328188100615188906911659819790180488633134008282117929674095624521678722987663651054820650523688539156522980428643547845814544070255707851316030073866204619894144494656992954881834434024615928396122101793313122274858104175760320917729298556803089659947783873727144405644910453060236516717851551696588558520501021374618943666391366247545656133286625992466607052238323032682831485641057356959899600492033613493388182987709432179547976765675904241279371026749964442916111924964759805445742603754311939813640812076455294552864869100907512855654008028653888914093457192199419540867263699755123730525133103816180737450051852225574162757912667196244770475587522297586714989174542025305032584789120611915561608191602360639935941635145086040269112846179033456015966853629907859728628846669917090684752647829097189659690397897947362632821611328592738623509702098308719360350212805929008007668303345937491089424760650609281650514855506184832668080001814131832904926055014484127267037542516685338423451563417049325559524570982952227817407239886809487481562320472592748727086625842030780173135547005117022257715536414905908309755070373203893495926248456566329851478797950406504692809871028000633686913285928503224261310310084690134161970228342332094906536656552536783876943530737951946340102854205060426177053054844485810734810458215481867510512043159012532904606137177388950009062354539076299732184893104282456499302066003336912406236286115855737992063434540634018131849313285734003570620437109597955734658164724420505179460360315263249295979888222668453817030493280319005547027674471347602561738300019004069272790126120239503244095726185339957551268041262018333932807686859851199918210284019651006593316068301495206955591927330821416419776356229648033717488319278150127025663053669347831703192563631249091882791881643946898187774489862755891757712477225229087001325926097809835737039307010273891590270852595483112981821057603154707523497240096265103709918795160806604974260039460265959769943089927323543933542912208545661285948096012424047602791714056710039066583594369650251152460822083536322382235116969629174619200583085515766539313548107250040658751157970484457147884704461709667552951530437588830947772568310657773564901818460080429272085215051718778855813921748447616642226045786424539792122461095359129766571763342390809370977608548544172083419171677926640154067785660429301371285328534962758787246288381175351367343093965237655978001042055488457138588762448691349821983836129407055029956722570282776337624756633253131551870058128920014742687308658462727026911362890144948815154574036327796264904905094584715269963624651829774571886516430504027652048168012597242457090829543244510294559864674847963692643785719019938392137378421458992175246356141637525009056195480053822096257105328937415699729212862521717814526941237832001754676347942025065381265571009053601945025599682538503987679615877798515087286367593250060826250017924736232163228834947151633633516268745128783867342030143639611420675888514826225530351532284343122050631279635896313758909682526375757308507237307772728158206824086106183439176524201520891216008619402538430996514650125301230939363765391803384019221309930435364161214180364047771131750699602792036229062441063681940679097456857969516270017306885294649972479256398122686056441209812098639136718772266547829589390968070062957366299668270791652277251465545980383866660528180737806507538228437691732453788612571572334342851713999409779555753700998364226875059216953425731796064634468660490788753591106044485039625730911418764036133929530177288231910371694233211961195046661296815500172769980071982862553837107692783386417819701701558545564407674611701258121027288007778071735526750483883574480098874968005345025576060406726403197316198375932145634775228108451814882217520195927218684828688004205181792608459773224966748659092321737326660862760306648672309714371164448310175666083590567593774882881968592970757523660625926777753208188529526991452369237605120610275829318657445883273322636939131832365925111251388981476559104621580609226757994126599613016369924408422152374741939189706546502410180448645476404418759373954215594842529351469283154926168288943953085282355887784811600169300764478218721387678769560116719822126036705950923428945216370456643187978525855687108918724437004577091622683269609480547450344038620577234858914110381787504925023045555428934543175392854228573560092442532994030728250158681982074564997082599357517801021117685818096756188698240000412131746955990581711922537526033951984854247616707226399173727003764150711013983671294531229342138869088862696424756294483904032090541306295257708312230219071061326891427475140317709602635243560920211172595500494265606147549560409821020709477275802079194127145047061362721598173986104699212832908440820385851062442312731493938267872991934646538297926386035895903454252783171528616468952343682515452698591621297924873741547127993883297474128291032431099739717848997395227067786611967595457777309422421321418976533887641830292141876952112480862770945478938952835112034855720590605179525971209164574410089905271313366643742701896430908892990716055547972572926850738028475412202719068986282869307410828210598507837617721671409542698494673813736827726517733854890593209047125293385794500011701045979533076516710371005522322587032935969078697036963721122528230559484650799176523333175568546225024471142512002546920431655505366606458258905523986449692322221445174456322431841887810717807615117613048464701310307313350034635544061029222645549557115046537934123958850679412606614122549016618723270564709585110620001817675618347712588974469232274127363472641695495597657038632464813398088716608331773627884146484090522623630877993883602418234136387967188482421815170873382686481236502510849618237633074137042031692254374213466063097646749114860552737967323180175990622237234704943662619806762348282209245853764007541007385461661273486663377019991897740661881964838627081024544863504243565109124635985672999833364499736100518550568121016279155313057009846459943287993936972184064152701968779936848781240859778739180816108174971385378765466862383499312378072720913490695117365273493341429531841004738113524826696672391721807805515262306387856646167529258445709061872885433722488024355575995089612598834172113957234958850842249848799375977056913550665676367796845741215433961568976344639738998905270667244158235195288798234083353735232783187643918611876015939622093664768939652063556338681308839513718545396163791977613390981752837239596137158966472409577967682107866310893186881085523843869716962691803786888138795191186876121060656447706719144166124282961700354626427034453928010927719799425129424879891751914287693129229344510392775028361788617550780927068241729760315959697526699805346032247769830671965135565652997417069267270048995338417002657611511692023981720906763073494679605088577432368735717300358207363879462553155651206953769396398565569208547479160188512831317439807476487322620632963170125427319198545767752320805829034238704792889998408748541856791840074357525536190261682892552021480921179660724852532073667557350192835395410690353450373778739730039486753716130122148600698940336736646253684429868894197430053223651270329876431486393068518680761815751609248119405818385807707878283917870532098391106277779978723191962848081039409679469443951756418699475976042661930940192039383747125013358312238705497791210735790293084080107985667941879189176036989180970647313003301984896703695460255089970175013715886654309892199486908357808433891200139351689988176896799399072459657182658941222945844183762239225654556645800292731485064292003755096867437602461808462340407048106838480274062412953185485232451106231575473102524312367178458231175855819646404226663680257277755741274668837083911354338991051471056445790209746100643328734960813209984284393770499215135497322464290628790573872331149064555225473258603083617692343853895716882840502394932123509709491739571784099264901995639134505918936437368409344406259384222332127719955796328149673344354619188765740020854766854814896356360613180079963746278304260999332354249633943215195746028791322938263094914543984286876193684403181863910911612343728410721844483009682716243840662809334542247755638585102693834851525463299893333988845922253855436608832396779307393292376566197189496362947859467841780048944881311903047057302250230766689109511613857079790733298412346528131331130310051434974464131648582448309810355187872293576996053857722486131034907148027138048198682172949505349788815191668925739805765272400351069074771802793328561621733539388117287487586372556994259608030759098713525936929088940289053051863973507759714463542991357563879766472802633912680525715931034688487065839705520263950986220103819821051956188193248157454571527250605430713201393384315105553377926274080680208570402468912426426808225876259637370163578466820934706906829440517187584613497372471851398047345414451198095432922479981671542584772154810647003258917667631726378423878789342978912037506447449308021944011869713600257649970382531315636613748410632341109713170949290299655702416740292406642324213881984064189793769082194030481709005398965601442251567981873624651194395141893491808683183720471456423837398491066970444352653506093533317964684451447154299717911106794728178338436159885095459188011663088180623761806100816029782262146120250034275729145187396041632710463109168927686258234758186113476312292321554989982518607221936822103064219557578549491814316296145937209035582044502835060696740931068496936162750730011754012714187485002006152251009551420811425868275254145056798927901211852305156741120991413985057867707293544198421895602839627176130084399327491012908598504090287287090606388689187866543845584499311210524052837864371822178719737432804376656942336540442761640331235619504611439366197014605445950992162406024672458163483440394957046963436019269796320353830729149966498397516977842223689544122180188284400061506363785077424699442377398810744106574891892762258149394153071935837489025030132503101728917036167598765992126452330896976756785812948515219215793759797874977125971241276877322278548217880983808762870649871231455284990371346853831345078502246622955996081789235427360757432527167783417671919414452274062437352777570895143681111746160984814125542523478944204062549540944643993181718603281762884571760655966649274933153481216356377379535647223740417343016422956854558017755612372737762716744162903863469235250201393022083713100310028658284350217650099423166159408882966208189498030513858342694080714752961605649541457687343892154978442784688750140255788936728037879716214562908549759106471314014874020602456779920175005857129264841756955500987189246325212630539795594031496423287481909892835774658363050971433087823104306607059838199560017349418349747372167175765387083455195067242101453555669459613511947327394192577173667960434727637336673609582861746946539212091991378687451082306345051935608151737658328286793631801448514340287524117921924821795744228443374608078802059087431608723786362630803971443073076797399949615209899144035771034225917999259608316284346891677117986964894676510163655486166532300067409382916593542351689938963400788414571445413440201879498161451474129487898289137291448662146265376185579701575733019861048469091769342250504186132403413112304839874165879802585817575812524341781988061373420614559952072070985851976207868516828178804552753506348891582492191731030514193922177648664270735178875389867266725847352649262617844826264180530354478375067296672419267013891403977205962092435357425281573514917030028575892864862106552751424411392774517899210437845254973917310802365065411036265582021371508263565879251827900211162286934979485962150239761648072585143351104043468609853987809891188145497766745629233998922577492430469056508402950036842302333880935068953458455254575138209246625360220690932621758613043618925131928140175486189079790964980651296278344100106524152999821221621518479675780316653881691044306901366695355541893311414142448407728974066733031297185949838617042003030786384131598177246499799420425463547921523093453328532056231575188404643911187998034748691328442623373943904035907753223548451437039178572190504450510776379519661918250967741264409369535479803781012601639287444262719550837292581548864760442734712332839428519792608588244117602665846835533243341159874014646651811537391051157192869597580198410505458529887945114354373132637024213727312736447335341429572683716199719257456990811886116043808331789523482625603175739673997282202183314230086959408704370374230961998908618983202318152570605613812088123277099490916336430335589270872090970093696286739599035207003572077345774257936557055323904178849010548225965792264073853337201752183766826406876306577692873766424559316075066002371139433334901328387272218035719232744554218377523940594893303574096960396267211952689555623521781480928236367171458384938236627377266889983951109866589153200935568842433985711551834806727116030728317467396083216422465380473795197292114834279748636576022526416387410615900199489567565859681379572461773101999830582486707700785639169055357568921536655837332750477443620686491403412092185090775242371741223920807553503437354599853290009179898677985552770427802915597403133507278531663748540151977705757647398139480043935118040910892902713736147490057594223675063650650523949969701492070868565564379306067272035109957766505372648375977550494167710899688971266350545837395275851348297436966536611286312819704277341608997452798419338495653775771261124725677182156356371136672820751185011283745808057226624171016428732966905137204814979064191886677947339486509254701156135212672890441154643711985696840235115546152443996424124915407418928374145814818166133982054175155830426286626757361509346777945151266048207093791855481982110446412801906055500156724149658559305011180675679062762222331690090098702817823012959500830514271922853319061003211527791291115266194429489880649070554050198520340348655432522743680777583316145133946512688871850949160556268818966512163390565788158570276484010867840858382821169629402098095607403637999978163377400730288588455487017806071200453218253626634658586853397676403251111007658162164986719619421319009794818424450520730931220107700059757735480938496516002451021670978905856308606410114402925941976924988739493643909059957900350727483959738987910057478306638457716193507982365827381099418584972198867907448123774738984833103999778822598966188588830750922573837657252296067925945988187461463519766676158217548589677036030593035766482076699292937253666605286675563878745471809196739704107698883091184157532049401480242930149558619453929414472038309758041491955355134872583772045610654170563703898832492512458753884950082904577496359517954514967274189621938781662389078159741987474615478658739372624521104021346805850471943943252991360798073926333967228927251346276893531858370267151577690925806333038885219449027107487922610158074672214332443450379623004489424229202117511071742584816586641026663677756495703159974056916416057850208453512164825652372598927109829996846208704189536473332865728206673360266176995716771352947477414670162871151839249628675067294049553072207177491789116816706134008293546903443635400817817351874181626322915537993526580459816164308578892529499430305428583053704106633075178901433306813824266392345909192445761613521976596465702382841177011874169079180136807309122602543265628366953772304380376852860527080392654398940111212915045944441315724980624400000062593401008506552460771744677026835131611621057641816014711662638165388802375945823944265594130899611540687664787576225403693008695050528344004656094566644528798095410640006607983616181855562954675471759323891730321723918477973244412724901898100738347485891699246188579678704908112924110943593739763416887583065338807174145575612839530504867047989424400774575860901579262579337855977815858850727390611095272935284821158041139662203990371545393756202834595174226518455354604304730500051885927753462372465141654648113304495435238023646634422545807451009096785605681476061980780369661758218653371146999158396414897100740890271484999773767709838496672144222103695004206773950132739757414560977722130376055352418657935364448044687617458168660340222618138098525621877265515561687253893842224538303412684071008317978716969532856767459169109294730328324152510416117025980466075694804997937002286017728799233000895052556799062547943463996970451214119616250320625527640736898299225014391550707465781290427784773370567566517587362940438425699412324845631684362147650195034682627850932003306393427617430359182356961147023005370697743304155341288778080596248602099692929300461399207539030842772087869411910090628986354858802812866333391230915918979618105481363940155831911145392185407205386788894260169044442061955760843652924871485058571410484844928793875851647647122770145325621247351383951525691323926321147056287318616138314314253565393403121346382380057922401386364415025499712104898335942481342953560481381538760200802001709822051737149483542097996168299525251490190588987918793291575028456226022243418769531274030300478497491268788137020301098171957630265473757527647542451806194941555240407107991411429362819970451513269811240337063735193029203649869381520529955284140379246726863056591810510008355026951750168318115045956537169645985973155546781303414614667678900983066360970792009474841556407641214568337105651003315643960223673137042616940435338578770461605641607144813756601287511905034245029566358417595445005008877461306938589541176077479374452485335806871410971815370453733302938715302081933276182067161044639433672177324688765312171724399600128926532122232609600995504751351082692235813260271554066819546357369494324838858965893890475160171097765450993459920877527397104849853088986321967110703568482330783625971035351842053586280991473294505642573840999775812511042759338654865756282556273764666852877740571935613651385285653665664383161345060014907707951745994666737677413336156529869828856685923331004847163152578369826615513761392946789003989176374038685657248027426028100724909052837119613834397186024477422866838335437524628195683631012250880661682793294429494896282826870911415028362606712724494457239549518058719277653624390406930119709853548721093551331446586973832975201455886866754765332174976918502217413529607036898810784414760626777313392276854248307213873158398769008771581267161739860376654475616235763299986087470506837662948875919302650766049488903969679990778070072174462816842968293530909412345090370813905939520391560516480501259203064552738830234845073954798701489367543027506292444700238556998175912481148002850722006026004486115392369215097605884261611839014307813521058263175706903424314305988694259253406193359138320094578896072269574566864460034743226241855791134073728530120209465077538294673020650728904882962925080554392749916884140684227807587170012419383909408899716442527063868096628416121180223085484897171444993524223251257585682900228278073590707017192774908752852799435573615836833837910002874223712662560448461836974388443740162995290112574417300707307397497267139232713038086171498835873407628863236934326582497121645972236369537863678788279628573344171339460703503366845754987195745955182537530291813298248809759707766856511385322696313072088417189813722544334961384044800444726084134583160349251738367020202285743207963868717157466869335410446904917533101221478225422174588944469612622027472464956069397745035864491826727663305883173477120645761531203038369366341109567567717558932907241685373570928219800922320466079571104734602542051154058351062169925491558502917228432113468517627952572216852687878893495042053125879104307516168340471222333969187155825476912681380643277028860537933463094380245949857237100463168881607353986447358918225724307240545559782328500729695718155673692599520640609040800000974085488895453832458250666501177897378296864714242314521250335744804225329035318835026263574443340111540608383888005728449018479759558921976994257253988637579238719442747224891226202428520164558547731076716242315842716743750257483856342562527927457317546847805533783522718384403553098242716765444829772633155621427102542506271522199017924756980765022006328202755515054209832684670329142760250392886275362777712146977023217952071809483464864953784874335958167815923715617102937869175692201721657195513301102263487410160477671544355935922268643292826458330422513073831399156666978991610589696813205849067480912460860458150209322021561513931177079674869281456094090706135809053932957363931014922688795815826452125645397738805886181106706607116523784415238855302792336330344354426102920575992063785883588985421830189867444143434887850812220055619064388130332001263852701633516218529309780256700919747390956488852268932777432045702619619601569683156239309740206502431749674259778182876179609560601964421901851029588648098258390381196512488693602206990186794838815261263845443744915037921328349705343896909328469161306369022411447815243100044405476965073780935537478218185874049488348624067579205839280189409461214385365290053166540323997741682780826629065374501895129788327116857301093490474569135055072928123748665179681351921392632897962631440388842959224137083551787751034954747858945768749063503262662072439652215733905466348250691011647651305796909595290720000326046300261866319505913150135173954361105077145079346815370405432453919822185719788531291906736176488197824800013150177830812844657319472229082375215420987992282216928266555757554260566290157126541956562054742440031752284526476472250359600416865493664621871852028150925090131655904239049648474127178083605567304382454455238079179853470726102332900841066242780581951905525019272625863092013780926374641947456191407641897170372751889739306405826069005845697032092226281549568923956687702827933958543262374514829783343125263641605394858974720902574603857468208413127929057340965227076277498238776160160786345271662856021782477853739966313969473798755935922885695282956397506180369538562117992791047240303080022919868048682021798428745397858968776587277429640154729311438557911087044131795962523871228356505909001682817372432780154893423943894849165387081094022612067598237469447416230369899830652326670939116240352008747883724350332054412432982316797427585173548372236439374717205801077771447764570595882333118873330822831845519650532520790629964309583514130778454639885743348361600832498244570525187815523008540720347378121758035235652255177921980340959352071162046080222276685170019235713050160414940296294173264936857907933771260000780492915776880498752538968305077092505063517189913069692815708234648762934750996602890841760874379553563351223070704307307618657145479013711646985690407819553900442568511484573279407574991524221084582450695489319951650994891360598361690618244481053091897637249599386646712628035300360120686052546518666287559174576852016818925604517276163213827048956069352609881293659087935713740102330653414569130592961436745733556171464349934715592256959151445635624305671275942232147068384654387013926041298664714294147814921265561556744896744808363715343855271610790684091113898308340890425096612009123103410118712277423297136112415921298249013884361299692786038394604881695818219668265456906663096702917797748735517177844072430288247709713929712173838873300929321437643710754153114395344189839704063768031767538428394470725319301063295338903748007885077432594897769170484541257883451944447456375899402173986446546947455553631829560917945127312107025485091178890429352865935016575189315539208213413182564151633502753821838698232119707071920044690815830382806335460153445074761681156993913446271850913071338148299721124208289938090543497467147343437405044416449459146021174670021661313709148321657304127682883264984515486152841452149908241245321129319329961986827447443947148587583180333946925600199963927554210263595115348264249675425739987604857634322830735981502508790309986052236870959145281185408641336221012140891314780980627048265193505307039334143847592756824256719531428724747820771407006881715186326843880478300796222019461137516880862206123087085626867030408167292401804977993766229407094944861897128785600166817534149908334893158412455132668044462417833159712202809689394771632745072054279751340674889191037022451729629616832687080091500784256863684916298293606529025153043884823800804146115059486576273305256631863640389275628335505080351902167169442981102563834023769204703283632038377303649954536570626135618378718718217005850944447767002170536604576167593029132027444089293879811541269997159454568596508810412094053318347227206641152276076671484412981460821899409557439371269045232490646693619145792095330935509718154487392913050857867413698594472593502327240215548080572543791662880138377223460430622688165840527111002228842786109555785251087258222818904586806517410777584920024409310247827708795440621692856527719203944414190181195379989309224303230582337028386025691579136691986982726477645768664483083011556169288289240711506569772336402735795508947291353116392388645398681012363292793666932919802619835661596555634976907727606675897675882012116500454644790393810045239164260128361971429178206674153207555825527289853402328958634157827782133811895093070439535314525212666650994123961419521803014171156656074548722033560430004395241089870776747660802811623889678913758929473575052185787537837893841154133949009930104196177045843379995726988970980149303525601229948212010583429566484643113618153102988448881759261184699455944023481243884385748791798600572508326435670853891527097686665032719796315213667310749328782575439579122885191797886182872728305900450616347444487732151967723804937078469084941099370082414239012700825442978591076577954171027690719979512866092900679264991471505579491659406718571900074937036120535924919334349466837919170478870099948548480644550008487624705163813891345301491070413365890129476290886930035854940017298400525467123981300807159628559141703041505301890584147428223211066369322718328797617963212341811270127253521104596488937098489128595320216062605064018916492931450403125437810385127941124988826648691690067911871035489075682557692570405504913935311076574662813938516124408059595970865462280768933550268692304791531140961735715842334859233480634598500894394898541910147914930022537921696416778496226778549013348790077348386997546232967959991031700484568581229538671168377397487555666587324114075957161918198055291973324233066474089662690354344265997193757646945471176413869642911353703570891141886743375410050033469625627492895314738268406063387743648375917440232850615995341516488412557859315211955467102443434498995034750383680619142378552829999036179054072946352533159527771175387963947054765262997853199817124322414188541409126298355169567189797593258565676979292730806003799443497034799492165064913956592281603894120534089304015259223956179442169399904786255052821072640858451885253327630596564709121011816420717452443515774822826218482742626172420165538496965754694805473465406076502978634188760334569973885040795302934433639760712114904178992763877749498044032205474927485417118033798987085944039419398676408366789913698076634171581394238680216950902168816878030404434209505382188582703306710106391545448056402194449691994916667566912618731821724442629205124220909604451887767400945586440801049381609440027886797175311779971630532741266040699251587010207452890268126322079152360944849966877429820498315658546950925275518317785061386599871785896082124811486797061293881151274774607300780666574982009475862568404165646098512868974000669315090911072557520910911266895152019923480815499575090121474507616508699392610048262216658134891951659214727991915730306390035901379997013396553152968158041883231309218900629770874890933813578055494354052040417951317387010259742817634296012298645608267217524749374146963766360510111953515895196829841435676292472129451669365866198348099759364120770471661934065810617653086411979791841971844793523748221424442690152359374606121593660757090856574496411723624365081209651771301745545060162357059917272863197251143825578153235114907962518943154167824917986541110463837374574677601942815225834028013483041228237036918970875718575499740262601934960989321927751830055756754155847146525335769151968215331236268577495113607710712014808050640325242965539568918532025296560481350448860871405925680745434069155959169033920437702139933712428059472732220713240678059878049681617829431647874133433485467585000776211926641954556054963208300933786931564058543694530970281717813328233075041225959481807926187191381830545951244510078140666674020099102687899972088986588439887228609813493347793823841855037355737232108356816128443634610818511790466574735532760782413671651226383534604269509810100317976023604783835084979821456453780196953711207220633150966985006233379471405451868261921770814583357831198408802796250578697193885234264496022208778163285617034621156643028781110222281251745542193999938097034335361116598452037374208019835826508913666308716376298292814593393646905480821769690629608593320191491388771395788875382922790064409345076554855487230777927922014371672325509871050201841426602962642173436681577855420670748954364394689008098514738460595696034302959993974371847811218703592263066586409735952946049579724640285339582702323878523282819463867591016738301011386140142443344654918586861935576691230768312254870093941448190010021744024255523052675344603911524202597874122943044701979314591583605975433452362783794358811632421349161513622662871775717443986089701215683518452108354905418956578995243386212353770227136019805846548608178731986445814926914632173965563732052361678585866420287411863172127416820051583018186995332149731479417436133094445806909574484101007757549314561176748193814723362336757607520240274618043581994906399936696350611073120689832729290010279614547667235465803846731545808506348786633176194014894515428393978857841962134744804187869390771987575767499948579026485686772997653100649591427768145649271784053948755654484197531949319122062053485448391390617051976358827001158062014449086645302015100898115873546305806390768439041010611244608290570362834709756268050758418283844930507921534936895241503936138165043114918598998850843516830184336566094427713129666975818508843275097439897524949782398860310641897377771816800948427392122663681208740808003127444773809578602364133378409725599522902662925020306625888254599604961611190492979471873015997644464609646704858451076717317879805686508478332204203925428232069061456233972797993976422086698809016030477683356486458112725270957873599458668298872623697552261504972835166949717586609681598971048297304749700402988726576923362039793936078296922066820189796138871810802635192490631900554611076710309226621838193420588013634234674864904411239349298354822341599782068669329688070147156042027087164594140738763291004510023645805568861911439300296358558954828110381532193081871273542355431305021206770407348896981070031296740210737892718761323750621838684829623633860072115636320331056743772207059521929503626639294204561848111177367053439635142239795209387299489743548369003838122328429886506737046416286540727626262378456642262395074664538263980121187477040223148706393399252059374129118585622211260985955489541997622166146560724194026871534709535816537327818517871830967777041522747510089410426923788886197622117426993721167546225995892219060312754146060502002168851459642985999733073664452784667444148111550121268109193058629599176363869816678760090024075985443744290759094892450480971938668526128739035221156950372817598193687714971837119009550058393522016016013778789074346147569131866091033016568310526522935564200412247023882217297287591231238330189453435444557113117068545398410892780477620371075060533504190169218060967035128481067898086660434296231145383666921529009913562427975757126808559133032652081129391428627763993965807385506732430749931960452603661495698516724661725653750270783769397535959626668946316985137138944211991238383413696210570231062388215409262938528482354082467329851428370139719726794001190976290206528641389814574055790905853899200579163228249736413042740911202044369304177039132879369104305363145935083791457842963834855393585477807855392047352742527207989922787768911610308299423687547118630956909849168337345268628325635606049537519015761168588038746078593922140959348524945903094449319018903791957688654624310686279659654270595646065107562153720313125656193033801001646727300925890661623052320314333424571305296119869636566235727488297758092786800495286636417269056287018890178404450033461282004569666148680621958774526678277165140815853524184310549043712797179647636296900101556829005038451134587341268355528446726732271649123523516009615503538755056861385356966316865967015442140966904000660477334667018747262429155349651803976113346251357660372425894722564904543900195102595848683265758819086518744973847996125270723974748605737975277201359675319176872502065579084969454278934062353288518636084532582291629026921615590555757105758440395732966540879316116201794331102165258407299139723789065479897135238734517173913949112049139984006416091563969331715620594556115718962334551506822331380691678454199550923944798253447564207164277656428032906395242249399706697189725612515164874900775958374757797531830636462139849653459706413328633248110432424401210723709266700314595158077913853208495813553835311318580981289883726269583382308472664003319130400395752386701626529573400856487572966036412478913324054023679263338540274917346703994124785129661559501744865474365425185076250957472038974587559249020478098387631702763354523257854259460968530181963191475755514897209001298425984072522811337339101660477686639795567099359631950581797878761297350101333602673060670614387718212025796017480810253283769561099750806664772851361600878759517671125089982430126539697574525392672306540162406307004928926129986655218219414109800182515846244812430223638440940997464276008594792347714474742655489984583765524373074484574099417981679242055875725851239522757761637862004919406671293944762904666137131233407244486304513031882837715065406511699647756287418744621553653917293691845362187954953779103973615455052156803954269061188998915848797830562158287342193917018200552353348285907522684537778542944381789295802282379522935803371020354188088526418818566596227849155345291867807618767492652099572197261930265510461748639488328307102543867178762901573722770477290741056905895627423119356705272964372199216169826610624123767627811218492866018559549734894648331862899697381630761144024492537750983615941858316395643481762113126715673102615949440739105311559095198463532076086179457325404095209168084198753348090076818249944897229445963777790564948276401382451693817147688676428335764623009035656084584951403261418715842721962826773563096344634073760298098906823523354362422352351627215671253983171601427492513194080790028263594469465659184467382080594146060874803069745894150282881801100450642316270528655693779633729117352981714624854366768195044284712755193950074704451392668216646454482080293378773009591660034956590935007963493448354927927113998587664402905271306981972663115096676535887044838839476504277444201394846516884860071115366847102703969346233948600139260814921708677619451592914127108874855077931050408624325055299196296302977946915685498093616807822627818770801228236171717973433183199037675434523909965902359681634151814888922092007963996002336230102821389490139326409330829217792946091831770112669624766949531324422318552682718217394741404374041764496724692248404406323079415244232369208382388082422800258441028803303157992789957340221438743896669850770311190873607493311091334598460768840278873560084464913156497247815755146620178094477917931812583780187275802552218474038976788857959754935787741960121804961727647075519734598652632029398427471384372770152411340958046071475776940209048715923127449562537644917509792052816949079639476408968682849102118259535987227162660381089882300686917922455544355730692627243877533197970974087042843976343322555890141766039628846825149967805565609537165513258822688364409159177266537694250653375234646586408171447048099160577329592771775763248187944724292393531630006649521509710841297990764191002665695652754514560362525635244941965930418400463127604905505125908742597103734040272074778580214287342354777242469406924752344170220326748329409026488306672584500064608145734086661392354298034141216410042404172781010476758219703735127728762578056074231984645035123796949812382313640813045351237982745712208127483742050733260033550914607302311894010916936027636223021922797909190410177990918928413318644092078437948168206556652881472245668672852144845390320097146790396019673903889347465637436390439041850527474964210200331664064958462609003405418816056648328169220875489762167947555231385944575935109077072485722308296463573355075073498120182761441412714650508522054504059624320999718846008205912653985158668781671778015814765497193788842173029515360034572339296338811576877350134793483497389830421641461270402708465149676124065473680919050672834498344373932240708671839561318324145210304267655069916911454097558289959893175231424047525046898216784448181923713403357503778755460434244329050398042888687348164958442404666490010265102871717590391722869988493372795766383810440242711807210611641934745722126332948979444899642965172389290056750999237947151040540705885939299422706767731783529214782673729978978406737541634947037602032263994639617370550776049336948919353822336912086037837290621475415661014257184978774837828816511152406862541894965143513751293794205391443289061259871886600057574230630467318735703228484706908645446394323607965185525174581403777810467853509066858911618460804258936907887456790161555172013775836842319343737964980701951860711290195748199159437401704557705725011175626646404397975179565026080655721120039405193523190121435954156227119296302195381510974989446835596888471713072095808867463575217353190475663558968662286058862091192629971014803191248438752621276365573531895127288977452879982430435469805947741181953926130398273638414521596420181330418612308619353362600435057112286952160201877262255158915206692244632097095933210742068428134054682377908136249091615198960741972625566205637183511869378545140300811622970140486652993724853580288190196755941197525878945774174972422191870015285338860108628775154617948321399324791137839013898012895079293734539389882838772325423571368737996421469929942156269277886333456641192070614339036753395986417490792595373643994168339917168184696902673851029126098517543038498657330609901228314369183086846765578943341522064184922620702562847447766708383036368985791206410128104629419104531672988087703180545028044821323532784793816375142463658249741902991844312710138424557990960097093598401066494494670180488957505093851548510835013914507625669984833591838268985102728024331936495793607443674512523329991598261585300954675332640310823533759475442523806660480277229999541767070738367474440136404024981645661578349212601340317313789332495772110385919616401600671893204495068675824777176660337081547395279624836409707413204873119242353703439396093013877259406014209669208059907407257288924059789286913733095648294986307336021276244677288007711904133211430503231685569474824275702848284357010753725774118884556093197576801481161774555007872073781799536577412683035488775497064010766653813115461969958830356938340855364030527283248887522503869360568080206257377179404538075621476924327337011034082925317283477299703990076883516744614131810678887796383271840556394728008825262994338850172217720509261389867496953576893094789086362329013503041789128330682418051644847913016359978698615254362595000772423052640192710815591346847424649451396354706992051979569422886072492128415546069092771500523157863004854753434035748173492062728748964962999475102836886483446549892059581152283802846046971357072064598953500088534165822835194140731331222360414464245846748073757412178189932812430303255916534848811208983244394023495960188577191354785207441348424909137809552211456560835638607376067410090874037262354973781294533144298953012695403523881190156517281904955779909533869624828387683967753252409546914127933075294745272660475928325246949060674726631530528431099624217855569647749342415959490467179794211892689378082060918244845527697939253525653884430581180708804500527216466130200450182926828999497515865069154803580075542173526520069147154654868441609288526319005062747421253222418028934786918366738367252438420552488120862034078075184848386556543784867076301588248363500530697017171933731417860506190902948386481184722600203375087479255519069549528773832310848397226998783858242962760029995310834339301524178170783822941577623330356457048153681273163824630128112292005558731260094164725544927516410994831449659448157568602632742087124681056935183473778538091225376839763473509787427228674800679418240286750887875719227511405343450985547404663444265268074800483373378543291218032963905763273346728250002765432361220622511896361238467717402251952827587590094681493604565263769490233323979922115802105032916259898753128712203785248177733438796842868382358067507302466828789323117611398858783529496204510861815062416216675065489808855265209467140424653694251394383960695134851829515040462832273388722821381480318853757870701770788123796798976986467050181796139003335244441651626469366156870781494458319421521274029791987892998191277859520127360280975368039426358464919945115592151005618221884491804296027115080228560808239962079499806702563173388090383564200068866734766062015060658604111243379947078456205731001533201744463164261468977468833481422974155257300934811846124028262201469192890856206931514578050677514774287582000658256467589243758044237261677581361586392177275611505122707840486000718881366912307990411211588356691513986786701193722535675042256086348235409757791215152493291733759138879640661086707627210788530848311943232686204343210616012132281310789215942415743450455300265390273151939189968614203561414935017305012984167386776739976987913692915146000542436540927594101276137148411218000445524294722802202444037873376207365010691102983558035758905706289475494463501861586470986435062899560612768903269759370522391214463974190204422066173269599161604563200546083306836997827512246501650625908562398055212552058946697365248398322294213316526149741258078490094767298976536022817306735954657756349359254327932773718759477792379174021982502994729351078378624171144626889348279675065374563525205512868154749870932012551033502127798281917112527531056220277054475951156884626909469825370471140475048938656994542800166181625154987031710676234149272989824077053903252426479787659839713845111552879359690799519776452350935586012520481538284693717101124941754218353153612175237808029162634814873605994989422422421874315602685391605894192275073331401461057456903759459458784818174054845761955832306167156804270649791313653998778150182832900314968972506311323437487755177199641958334387717284839375521856786332196663980048381250885155286104523626929213865122098188993722712638352111226366231518484027052779800535313447247216983396340510523816018440492800005676372971251966194280021939955704730181847441416532087705253001336485950796711641024414978578562228853977762844822676530852705938560317876261209869230434700421144602094166282812041473406288202147572924759517411999277356894379874668457620569550308711674830554343369694095648577921200754478835948285530203924458506065846564675628914267598163811944508638692566564295511803422040675215588134858426974327240759446975492623911890411636569404658548039772441134240033490567967461878178727102492053793620500284023140542459815887747166451325007115400346714452324714372651109419693027250612368847944731322417770624586918045319827754123151604127225990913984600904426954791065842170986005699120470447003395047528289757021402608618939670352747814638611061011952318773776693462105892886722532639666480038519099840449584257107637685039612752269984177739197524405668267564593448616835624763046080822170508521351909054437491994749021933330336833222938927314544434191942724262740172903272646369790096969016824618541749663750368590288574243201789002700811325682475836638399609952214304031219362393940427557402323572866862276638311288325366041739860792220087182690843441257639743243861311515775309502662878867175492365410716652125249773530150148411885591431210648927607325704513968577554326210639539768846572580404110702321163923848088840395602920020017177861989443139213520230302975092330847047860513890784355751693824646313947934425944703135883592760014650235899520640223862512563672580771545116022062086466873465610549770472379563936145735710537130739993893248668925816636543367669911949807263780406594037523126617031567188188401774286571708647581679944453308037460192190648015014134683738812847970687405148314020035851574072340061824735546546666256330933956952603723975214111548546675876074176352756366792879307196062466683387029167800043543948430654518097823688456495075861999489842850324742535993476398372691700193747577061667216524835421809268275825611597044334684626143359284865959859230259838165869999938213366096965571596923184759730295592348429599178076630156937785636825700677917419003236554992432052303207989947354183852275414418156815165518085816635463918164091458017815071895034425541172774398202702887998008809592440474090884261662822872204982163798594613579380491780185945270474770856921189824784045511846932132756342331676967702097645588373211202402834568772103286299440755759749654680289500473629773552297129112125283036613264445135648096079925804409782665954634099558601993307449127431832399775422111771439366709843296623069408506410210682992529080794963463168835155251779469133167290548799707527916836450673542412803306673230370855515857659106284961842502837942481427636281741691129877583717017614575280756915957972760031780784042741287810939021723115896221739269093267840368137432346906068440988034596596961498328848213802902745562696610928162227009621183392587840221775063396792886107179747210039186265405071243987707633697635620348764435119684380283816649857243793503493562746284947333782440287763555996963987482789982515614925974299555303057280696474047662648208993987726831369075815663365427487104101012603208857774521693481297382010393989862666588956199266641516289983716711699373229049612280037014781505653722797867882027336538216060241405364586017283418437130067226838037874314637912432707891441465154036253643501565173113713834827871987612258277389601496684658108780920667309025565093698556969205388084890362130099897874937585619461005956409480067201232809797984294724682965021145004595347870225060935097555741747538443991454883810464915719027036348783815654055093707598557736963607601233265670594074132253199557692009323125657604068464058932116160692745475585601232707093966934745756347953199661934413678950755126985835315194424548308215358640644373115861417117502095784377302832229791739608224687795329064272897911728837720611676607704497519325485835585737010102578274648647748344275632995385075174647011438620394529433174113436572202241088988862117696503743589097447767900232675253622434313365301490646219628567168500420037187688119997666719171237646908010771304299206435586756274586666632660491908667949348532209004405831148007586962289480663322838446484355637908319832800521691823285229902210684794502330602609000116306164558027099198629987876605988654905291710426422323862840668816578953473195604411431007389638083581064886632296893004142058068680335143158870644047565255626297616161006541043327804980526575914367850123483976426250158539223349262660606761312386973167993398955875058292258401764499939989427049056792187093324437104219445287009678736230114688672712563370793775170254540921072156725461136591511862989386978267245123559116624411545322059311690163161345781862429480220157052075213329160496064785286578900625606699876117790530340364556186596345604944167862900776985698194328422952881425248146740315463595118644744341901960120216996447692768901515286803256080866792583945298925283984358676162998581511547288317739286500573009552757593592287590613529251617219079574145091587769525784706283208932547134873828717939235919838225717377993906142427248891685693092671399437727162260890181492941234301128061276314745464089401277803111023194291315258855772363531017419461198095329344675913139709079718105640459421575180105675061667590449633908018592539583853100642776975625076779079499851356413465305937801552508929743761407826073188929624388984134018283685116103200459598671466666072422438746804298896015798489592394427775578458423806050407769918203292247498736383951190301102248657293454630478827916917728309122688287735453362222153228143764147245205833815067553276853774392310083722674812791333736567802736841640788441668112176022896720943013865528390751873681626257946948255906582766338741845529416626004827493444847341091396954608751120171666362218797336472415208087132696143653113748134085437423020245174944326625567592416672852694151932395853144927750347538630690564188204574103958186021284534486102601597398404022472656653811533232158733109520659495138629474842071722870719056103136485864968225557676851776845768059312605729909162725564696195628384965116017536192525950293604001314838049120508814081123193728252437708421831049533116986554178251267761174551649494036998738838002403450927170053306123603908510028619083438352027440050983038055523697348572562158244269346663350308125895008637128600230100915886937744735471455628159866225359355150514629249589204148752384262157136664514376780436873086527229157843768271354130622948515765185471330292948395220925514741306869071842432827761305475210317292336606905652922746321001803047684225056991986800082868735544974575595713417308114180822980679371088051973681102017333523894901199871156604110377778064321395602681418952587809390497546062977070346772599244993217651950791198522547992149679790959098345278731755405630990495320878579150323594033919794209958625267608432483882172412689457458712155504928847483634381517075866611923816014977534112594839314176852027462933981540928291746362474485117461277002188216364248873153029345354087082490610581848523902210667814573462855355703587070664965162179029562580245895249648225626483511355940935167056979544272462909859542520936593063107901516691330650173843979693321920509167018886368343492620045252787681842989415185763463233605486846794287009900928825017176467699962994428877461047663749130145646939763217797350718490541239754581643460437621025999736215199990411048859589761874101790537695838339563676988307096417744189317673125644355034993172845777043333794487092919347851955488642276799923305034359452837732983089007813436695931414355965728081796142693825534571078344110411562124005231020797259998121255547608023085397578138932981432494991788037298822182336495188598402062301322581773991352742694273762489300766649884631989480865938982049453129155052929873897139326917724116460974901770289299067705781271485075203731517537464940252414253487031906611240021450125852955998814718000503176441383926163068007487976971879331230159174551562763803110443351327929233574460748908750415526972828731075016967382223258449839034710861631179097466545090428071515757228913363291979005382196062114854838098171713067556258753846613136017228502977218780027197630491953248298392445457949170762586852633580977434797477166815722533430783676709442210934007241012435297903832426720595554423197043298820918913944573668238384211396812360527987481987006092868969341198756849870837155749598197867318718657629140265041230847937742967525736595690393743362333186713258815528352783054892083769108077316919129249699475724293413872843603978109353396007964786131544589722396475866112935151012844502777392046563672805914257171826563229581642059826053027109397810593588686231321292713680205487956713972862489998922421120846252372411889631696250521917207178130084214799427301670397981027938195013142883272508519755518598684686049901769835447764336256256908721831164875710411144321832300080342074945888665135157064688263226554209063331533516942102696608388847088252612429650014393261463263072478635835355517096535999327407883840491967925751880311455389038102983275907922562923464433312045897447703301565264351044279274270049972418749650713954938152140186990567311837883718633729566468833238062802582495887759050709612463498193378295333849764345043842680401320400592004796580349312171476812678648549239001248931467420595920511745167191127808520996771883779686950914584080223992672129037631962013216665988243535889913683944185256038094299297792451063713635010331780955473732999029681252688932712846032856274198641332236596333958542640200927179895305090642343474585432765500720353873994997076983735638273556615984643296251533944279263706885920898784946320135391113896622498097837497645365999879331789677175501937530068113922298943134593623478234480333823503976863785520657973859251179368676392761080458021732995740184201202608660824599922326343391033501577619789455247215790391693895556945328525578625592724693655337907100914574814181542729850510326368524557536447263477236267493899391668392405270119634528304173232297622152602038398737786579984835310120855191795324928379226179413350974075517717946455950871660790084039291937580700676406179960299058515076893005477179892918871516063099312298135478198179331090398217876901783116162866411063390427449562990978589404869583839324058808157082080467449485637547965940766126276673657488992516629656575765333795060211235196336393176171503148673810216285792821399657850157695775243466708365897203151581278053277168367109383142650797743918986865070439263771635012323570347563897147712746906366231986378753898194071830952973134279326775822926345135660305679044112232659171851858096817409366825367842700540125803182236948128905497004858945554041344361593758789911863853772906192073477340633654185266973559111870858182389532979111948362266377143115350870624068714032405907505333031008809202459831478309276842123260360279783176611284016407353822584037904889671737208311554908300171634834922452061614881103939561982300227143614770042717044086282913011143046711439327997913931211142166030608314232501155733966997281129115974930334347422559894674000555339898416475381630261029333169497934292578617597176976933298255845847064882207499447697229977952007806595398129604465821566431992226394994736916516326242117724637956462015009393281414185867508065894973912500823117399798612063360249883412567060261534757382430635656721959532584022302008924209941625135866486151127184677744394609356296416401592345858156769441044040184269456876191085661240715735816947087051845115359131232566241865673714868806499925582092910195220168777162958033073634692926728562961714606866222125023174154819106989532279857113093653512386189877849156801124622775080023149179364317936491025495712912110579556824165300294205043110932440642070138654189188780833450797649047196451156688841718591591156923722440051504135020014611076066620039961701737547544262269822908641414667166368243045157908782075293355171284616707322816171811811359344602506050732165280053405521833360247924109881737836572442750842261463026463020436747452096941060243162590646100342181571315895359457699091886620289250503309161014388313599763499986608063743883035094924388915821935174757723240822203458054164947574884750023654626237940357862837837267395122321040186136141102465572585691311896361826715921824108552473801846444623035632951416905818885917952315824579874920568078375152691644482172917562712576098318016294398142596371313618442276235862492953118222299606473415512191827809020575447275520276803676591641105676512155140208981834807557963199339647338514867956683412024210599325524039676537848774379512142970044953829724372898159619274540687750327219050782247039614025668523227299798520124187257870597667699648390769149458935744732424719846379517170223773199073917223899633207603175643116312632477439235911423460037365635312877282669694322866164126192172507927224885894310648326344181350274093278663500166755733275364738623152111795022521183721418420253208078526683549833256521841437213818758210260841419302925914443354443512999504428547302965607026359475723440358980803053922190056404886489597478523079188925762442475359527923622069111718992122797717540572252238773515141977173359912525376507499746449371762437415142657899088726766808075584253975530174581870757665347942115848359227010451563472100663632892820808061761639715140695232715307744078505806030619986374919788775563814538148837394731453495880439760052911192120099188221222204121813407456276845100286096282694250507225141915699614955337436284698517161108670441613166131843153316500925709033791780015689443136754767174860025774416705550002139361655995148973332665794828316552383249227942053720905369769776422742449705170977759056042033546773886225208765619138689660749049628319347938414365503377758959411619019851458917087876936256117700859409044625201009755112948338688036812768364315237010254175268354823097989705044044643276546320760120402668300802679954583333796926533898032093732017789517319289758098352391781319433902044762923039771674699730898326585520268662225100188345490827323028011042292644651211916827476998457617567789556704368471109873157082902650170157817706363921690821922748824642667844531087932680604513974722210783497284876495280392218710829563960700624608810853900155182452086862533070090986202729817272217889027369549634577561921351608719600576422322003355264315604809702375988214580755326927677164586642730517980264700605123312398174824798333432408652268781680167524751934608427130256552036813357586683504988380741740415273543565731497461004689610341247485521106076904062077065300931858808514519140569862254773358029483278262103735372831694639934795417924737706706054216370987943601275424555488162969942007943654546372126452640763579435291485270603188396718240294379271018495554430480555940135672300715930422338308023044847515625365534431171677608133839641778276678935525763924287557691629613007133440585883187933021480569930880549081578080857708074590711186679197002621758673875338404748542449126537070211804872238614959870791176140219003995687466824437496134034224348309820975531566846924262360958465145538293328425238594572019044587126285568841993913968347629310125597435346390163672494101581999209697531837629429659563589007328262641818015089995157665944574578500552669095707828420384628286959363257235816065466353393064775313589987275430250302067421467606777913072700819654070232683504755563358456083990146717914944559530049356244138121617265753229073810194529761842367976279931388820633397387618975303848032495699282120211776373730162326452115061965195994977733491039842298587126306568276094777935731026924009710670735938323047755766068633540220863163906934141096508613451360115520743047309814081246028970614226585044047207392527997484977761542365508709650062228199917502207725613450319004819643156862579573383193713881966379699435006854966163573096128909565457824175396586574696166935168737820914760716260935955544293945753576286395988220496314848878009082567341693291062080672108693649194452380037046342653168406436123548771494673980581209793592305813515914754251089723816798823591003701145600318401794247805184295931874853229123923146835823587419241917551718780519037611250254427613111053373751724192672104602834901606220287422914251389022868808282019087968379508484398715700690612466493862379284311048695494066376855972551684377931209658430310517087460198099769491940941417250438132579976722962199707878036562462012944402520424700140681012340292723418539988956837962420614717030629437400646120400261777754841586245650882968360948336441876691587747131558360624862788135876220371434361270313051017112139264605927161136429817740034456908513162855937472154591448723603063848881665319679247545071773362199171921756213924735574328680812485566804824856171676853947097054445465585087019053692831845485810008063047516107706398003154712582685046007280615700144686001333074522507463183820499870937103241439961009380994596316789859983573414029336873768905033340867690039300981599176928342562864342378221435440808126131644642317441799958348902220905135483787998708304302628728039877745393952512303919972703961103481397831328645917423646225794772359826695151703028672831197787779200201880704876635901524300568947758330008982929115270152136608755560769547900372283023720939007530509620713830292928314126701000129873764435420547712649796430375083759756141837882243521782511832483275077564784074181422675181250849283167765879322316630061450486122592564665573860552799448074483466646689625011785914783792642809740963481539253864851309560896773069905475759963699133938493695995466429596225875375103536901180398423220338562331649784718786815948642102166291300053203428483275018357131259282524790171929837660258252728739495346416632206863928067695872750793705371343743934376727551448298661345980913291403317762112776774855027071963301326527904956219310161932696733966494211455236575370047034341523654499139978030021544803888602959046923201435622058047486828296766276457128533215459635031654750555481483820597341533781111324670042605640870965030538100279231799693522743268209548316506315432669853621034921448522702175218312315315648265050844484745164332155049848758812999248343676363834819530437808556793905485423519852504742320534033015272730547477634675182020728290146177062907177193385279994067816425226236950482835413705873194815949088253407845101274737120506202216466498682344249585886083307222602470442867273601580758038388354914534052586797170074476665164842815021365035270297981064930838780092909768024494459646875271671701132564474788347047590103627395267114670902555135148662243474033957874577017592508179911690277642840520577286629380483236728629274250002134819626904233751557774733666703927937235015597028656614793405870560276872939213488250667940590736551507167074098163314626430439759515161526462814662509310392476191033259888852478970970670169828383076110830297977948210219744297357566483595210076061442978272453004636682959295396850568367248433653303544068368799637163816735972464340645083131469472205446257868233289875094589109756728730168501582288984767345779482824903231307528117704709152950357687214039721992135239219875494784621204268630457918496352104772799067488955281868975080537939895203782895800949198349299844365185250293241482101427819078882076609348100467091995188471190883719411944449346473714534934866174549308757467145449909118228591008338930153477143992826495101974977170438772917838769240826614031548807990802813164179339794896567787486954631966916339153497878895325636463988739979071624494750769834028081095310212988708216744433008901389728811489043062276371105441582015654560870079288568795415507602908208707314257124978935811519351023951932621093815097017904132912201792347769781357177098190592162258747456018680821943728068807503375374065174187668085652686850539240480859785134175287908238455175835048916784050754841201397792922372277506837881092521093457733120976787028584332606029506691266008890885735182220052954372832002950270952613229358559713883978755860770718658647143947396049997178387018063402949197944474906907255547756266149779025147598734145493864986462054869485078207844371894639494257696883630796550147505891327026961855136549861840946018810853482956336769951255154676037206683943535082556863201127720563861047787516249839568245974688389231384737658560958998519098194227848248664792176081185030462549664370607720949824099849479603753426553054811887872309352378220388629966721450055522544679743665206387817265501137418793897019546603004034756886763155835682645354530208739516803670705054172500513687516688950366499741554511185038558890149373713730756407910226087970973736851105920848667917524082848418688326936168490493191852869483093210108938876087398317589848875311976332105709711024918882674255517836357174159676082278306398019276185652273329348492379616876975061244517519527490664139991242210274280776956245363173972537753282914592223987281899214547485571794912145545542133282412106028776706683859577189339413389204870321536411529504215477357597605797618931326921759334666914076865667256743092696642676819123697087705887104793632989201074945557086837482006086427517240031078698297576159806566992642402549962558531278394214014061991827086168135068134791972028552934087096218296430453355816211963794017651404912639429620220177057060261610910193822244566550242485578210798843045992696060075030509501745827789240932630853871595901764397890515985987847798252317473111544290853943527221326307044441083335797781607551144179527836489783093265989854506086341521583653381803340934222764192006849045300763752894321844586839897077757159927168208086581169190714412909748089827567944691352738676543881443298013942306639668981386058795203688201334710867534204087044657085121288733949695600183386614061808706228913169403058383854155775742830921467224835496634313960023407372910691160062472866695661704398351845330195161070996973040240723743853333072763363581427087653709644445832132693006968722760503879991462079011764890761558644678290243128381810073768971302602083670800172420237475972865654094963982371340552280403144280862137846468857827799785392956550750191365931051406508049628577403504965527456553163292565336991409136444844646704290275377407153484517125560846213440469106319535963688796472328651869346459374735734126006640997996046283055492211462099734756080043198039783857310065278018610319374643842580959774439413379181323633323042647541504362306874079443719006843159857268143120511465577209387734926574935131814165331511940885633870728564086697891580475467519603836634125574549840096727613431162836660583933067034560819271880679371815422710792077555301865153866177173192074609769645583345887044917987125914699085480407368800033416221979648826407335390034075726880972994084071420846791545663832692587883013151640321832030822793337186907489426197752573376587576500408702637064578252479641599457605591643351241811913117225914076248921985618634749005308965787133458714852660906142739563791655599108706458947334988017261068034153865127627122166515505479468923441858756194119659465497043669552794732674658049297672663267615306077255886787909918563464704904499088552887411907289479658368690246651370246332058927529878885737615035133138901136581748432237541507927756673002967914709686198429377630629204589234544347337175048330654098372436794153205847565436246375117798351235854867280499917521064569982340515752696654931278411707394928743858903679032029629174414106155111172332772072676209582618855414431326957629879846778276746451745420545657747856652224811098945496169824563850379784653277213566090462670856998664818065744857598891947286193670599540360312590436048591707804017868661719670313409109319602812781748142321150411968848540501085208309035042425498038365870702202224662090496145613414835823066286437074391801466257056719514489613387665300677286391142216594221481993953806717057587320464331187442857450878107495135111073905567279786123193805328218521569738195482681823258284154690750504066281857149611223778131728877088467565553508193328023362003109882651872524591247563630042822722866585468450386234551254484841321574664988404194299248503259605114616477797327038238107457179447737080504401066868702767059695960645896593876126884252979048974144103098570504178444263918995348694779274830147686463140458512026695998321387287341509014541663057322721771497708852749758183224644540113130259283248936302087859945931411143823523351834798232533737629924333661324220847962602577165523189945993413271927910084002028436318006287952640457992955304367187201008509576052479346848894794096184619294303429235732900462009340930788294604047834335042607265418950750327872973468055348757288254511464895305700519690287307615619749141740830757419621457450667152978594101245815521901028909978328189445628821491934865726546434852680087444309164246304115126633894135539633139096922639625998592326833123848690727886078715016796231337894588394734853635787318775338794253831558299735998094027397628565325693030907876339687363429014319401130097328876557594497923345447146179811342593101485183514106436383733158281414852795325148552259448924458707887825858490085714567042437333503469061891346312398369622217906197923295273246802842308205058540723916400519419850201070733225455135444430175330005060239125956716728837596560132712184141939175482618210364692305523936752425329379300923877972235198162423172346278827576793387492858102484383727288449635464535994745647590813607556695544270094881632313584018358006619087438466599351550565831411307538592100981052997527708898926355403622142219193244547482885126479079367650256547589739792049498273375419510833701981034129217948816639075598799734380527096242976379724284110626378106639203189809151467852056556609278496937988048657800292635830100661904779619981960851954171430377871656890574589803625908251631628376305318643923679293435724054543019527212155546888208397832408184487205367895423304581900108686553488770272615934534405187175461842843767205138931783479973574582725004878205791436109382049647655204141566963143060813350928705440849715454275375467434294567647068143442125345940310425663942324469708814551385050559687817030870264209691646999980753452675661184182021879117401931482462104324786582780755642296779234116603661987314679940630083846941283081139205634577250370889125267874506610166154757420933221151991332404243093815440705438760593678370330689158255836580408822078716905397511366499448723300793891658841693909941749316334880497587566232155245480805025192345228537033216399960185592083456429349352906383075859380441065455951571147573954813694074375205545067126219894893514615252597763374935847182869311017782389092577624581892218814781272756162715122943334444664232299112418581992997472062572417769341170475370995080140172921474149563511846073631033384895946131698033188146319673998703528395420964333328695510873240421438262968869218314583717990351057609366392762208008451452837284952098811338256921958291249548187310304773129064239241885868742182174761499201665482167129831399004870874399911987153499397656289724504342315130510519902905877613301421054243809615658896307795609952484016030531718628407743582614176146191743273066687099983077541395669647918452219275800787459514329609063552330688998563359650174072505920222699076121832039047479296093319228141788895723357432943331960716579478647565704602242342713987868232891714804118087104913722189164754190267874642472076262265578268569039962564240134580260061023865291889489754331875757751364061895484824775157952702829311226959498083716810436667832985229952101907267567582809313621015182379331486933465934522511030887420188308771250795192528130333254075845321933273925175541751477748653515987463694489927989482164010676630965017686905984258339830348653512700231845319395399457723243882260744719678867602850472005328565091536659338441809299653205780481131932050169606302826290523295521973884493663397491470326225570049303067812999433762606940873062014283522040898324784683807298942640081956599260704896148275325345797521210787014536485612015235226518923591558262650248715003645248797691880017631256071155370983419267766456212724095124337471164249017381308082586734308245637865459918036176581884910319856499630903920512672632813850043695861802085620001012342517991096456211636640414734074564346112499772681354388668715111662620726516323943821016908038067985137254665192936069318925759188906661850800259100013181765060490821605732701510648440370895663226644479725463363914741469720562061522129493331793899404882623962451492991888925608200949946471034113725977445310508802139207884791769371595465470781340746463178210853293400593208837862431605360401704659408843903420308171369530066903352294045872785786287826512566887652399640643121637498408126271531468578513574464725591869752749524711476816366840855725103338167293773964337897323382632175783279327670246399329381739501112884057651366662209366212972739891423003995838888625007790964512508211504461674897823018457585940061384303389044946840009799979491572997264299459313467443404822309148627502293216152040765690801641453901541612507710478813268125042535003301706371560230220993108263183029353572049941313648790956745416409662039589675216147574569893310792133472049040662919447124218316049907809958820775771523399894320546640555152703339187086148408737990815468727663552156905626709507986278192704118112801601952411210447488325037907071317992771920945234398955844668141002796700319823412127617606146268385224775292454613428105560794681086200559869193417678637256186835029632580654704413529201934451244407437744981965496160998207671820428068770229492926352322203128023171537322994167272221489495158937281012834257122271212334059645950387492719552717802948895406513795461161441813765313352780485794334052673353267220372700116743011414942411922294431341363994325739280022700847718020313522993886545794656897766493250804583128386664191159427503892422566920164613448254439322206981352149057858339280024349232886888644713219868068031853516804723761776442691717486824391649596566295294945301604074917133468799576750131957405311396658284783722116531979034020942583535092956024651008075521931119792601293122622980706430541290538226802667844882283865916611330005892709121780267590901627334972461215247593826020346007988409346490350239675047219750405226752055093537291385519671382760565566420194950462787372933393444686368724753029485413854104455759011915477553456897612582594653278746266822630897069514068513615703428803530650894246547155284404158432067785308131229233585465121609732545765189022245455607726957303930355335482436137796300326783087874481632316995988522055079880579073048318667392075987762470166109131593481554651249896600050303125233775317634611788999160702182172723220606343514862845377389814025397772129856437058165477132622059108519989088366779784638989308745381385425148139404129317681960520387981616650354518548850028377485844728301669238304293797543782333512166076892798236115013255769295105745295101753391611199389056735587765558546643411300752468463859054515867344612493982531832903567688476854644349880401978989409184038657435784211142988973293354650006289570698912488024463056542537866283784191726260368985393853773686950148735882042727810445490043792691672332186027411381025575304416316526428044511891055069088898082829569830668706209298221618739501628731765876558305393974655913122840786669231176981796901675828314380500580075766322944848381285378491890048359832254893589231312722199149871833363155313946764001709112123114613382176941791898645903951680043771122481515329117918846109721285459964693919696714076475124364731964781937778557226996755428526382653251439059499066548222216899360347303654633727689015582409654090803271750518272976776990033228016043705062839136514713421448994581302216150613943841792397208415940493776758312335572861595009042500860516416770992309110449985174604059644043017790190709680843184706372917688292950717316653548431602846397293308061554763409201393288645061624090283953957372089993641044307278243495952750580815450020370512387711025070523144644055596307596827679360754018538231212814248053716990699355810777786903998228594761831126804742570288964733688356628298345447496551474727462777182052040605467257916678463002929454315138766958733721372450965657328819782857648211670793041999682252886591494821127727038877183954142063494857777793364184815853644319304073296986491713651076635191289805792130011043968474683725384061670519396557132911655927643132961720119226104296830405532629936903000397461401482705471418063322958863355944025554311935321065582584594203878039105325395335784360125868814309000977424102570843030295730048375859809473283702474308752824335178535407929345831577668707477076795571164765684366702946917512052484028360060862506152904812071115824818481277142917325518984311309137466746880228482478859146976177959413344940687054937990283956804613404914680957458182139932743416575716053345093976807933053831951437286133508136238543013397003037582947295730535477078347937902117468095849549123770860862527409976899571331930517777620627464562767090281770047740603006024379066705165633624612418411592569823311459490507905141931170832060804422595076417470439633601785315085180443299492490758840438832777758735606413623562238333297745744912416276268504491663788507327208009783105936263847699381450385181975420100717992890932375453048388420390214929596150399032217979037902320405172387913922369154093075816668102034513483628316168828903694433659777630326606016199484054257656262026697462508440493723910844484464766753053429150810923851654110143430144238234232414914454658191394554281935097818272284526808571302827786934774775126674351958910358168908090143114294365352480533617602034882136604680430871448763061479492974874201545810460484670588427007972335581763873676719274531936157250574072680574191896413449708735036399162519169452082068875462238870928526619810893432645826435353180803780963541035289849824762867369255367303181579117149408114947319932694913738907094814776214673912444514934772172572447052208179702696829125281938993102335304539865409194628372026689834172470382641630028096208611812110776207912968792318170937444719283135154706274069944248041619486138091402172320786078291670801843496121938047914436129042612905947965530495787784344446131458382531688141997008343685044169450325198879833031395290624147103240003625313277197407094941745898448518524590693138592163958038570172570869146405063148861050512981675465679463681251298841753259728970126846321000576947997075768447355141157242239311826911600491528345891891725896527467525445010327362756898998951675957679624622928217910087337287517361678095160740914181810160023181157423322454814853235168847507479116275670566854365272054666534638276221293110863049079635864464173329159039205928788235489563625729354065135913460164743094124031462319678450257278816980167356317034881849858032982382482266597888055267423559463043761180516168783970916952490325551097662301931470866369825987924009694889305127610024355748092089515794704080855414895022697363572576889317317700893410704556355063209103898956978397180616830795652381498805330866184187038305054787446728100596897837796824389866737537234372562762257734751748202050328321122413496949753566878197262562736301594227981204958498657101213539966210292682616832871214248113534046953094766287758091857692540211516650948015173265988784127537698383302576975758818017958081386756616840699948827750335886403570124242864365008528965928519362328277463213050240571141043937201566923264185427924447542560486956779320849432445049488709744597872202203953994246224951556246661560155149210929912111310967491296927271816613671812322698841653916529059783373602249445925567487436352378603521422730116971103685044498112199155603962102266607139388662435190735013989467022180878247383046351503481462200879898469034011939593164510663947414397713734924301270903919341251678256754527731065336431302870235656059080415353061484952752438893903418438613338672581522320003189281833419639207046528605460993145017245073252040138913865035147410023183279552675579018874400002188211437631020990244079010359671167795004971442184796239431099454844881724832718899632358994828229613127765770824424258316159084188662828523064996892219397240759814132585340370751910630412379779222534334458658164050403557035765926700698477062530639840679679474583694643791481819881700206528050840905806660511926697371184967810582054596972532393254349150871193351876176330429221984845191346046646998823470790862654799629781148991724384577440731642265402581464301104285078761330716262865597214434680389359974444822965563230729169957914160412207844274677357013978975915336367729319910100799061590745842186163100784788207562855411977716012141831347061182226908573554068540574566292414007002517302391395525780261776475984349873279595467293437592161807719592496049820786551481728820496542920489026236670610656415979575139981606625744674252142709263633804125918547034022420436925700785688367045566648339634881118676938814352193067826223915044763481827058190379963688812589922176469237244825505925695229676273208845078058013358385471373523019687350088134996371987777808571670923699808904313922411403961692518449994870357782741525278259337082247069372750672913999758985967673415439175234567248459954620353999142873324641491724363875712679958236065385147701169336442321514106218157284805268674532492147149771356075086621562218147907207862691743521769830769613917688116212457376988677047909174430782408075868681092753679266123496212157965570284031483651760311270986158095872338506725369699746035549472393496958489201573323119825261432799834811611005327341918587863812097449518919444976008277806871249280731508710304738194531870968680114801669992280139902910976901554734607801137844779873724216910328741599026759599480547945546925031804755256534386102250921293120422011046958268121189992994729241747323680470510303644530110641368805730740583517831478997089987038275970798410866374456281483134189819268545869439579700720205500181296232794050382342590807294350381981473415256045915182482140929277873868983323614330562446692465387308176748007541402053123317730848745042576884955151146902583746997691489184005408199209157895193150296442698471662818821900937330710614673110290164965816019148172302640011741587262727289870905613488838202958739950994615475530847894044415992150769054944809219955391482890198467034968824192758593722690753614904959808245033838379549426319697647583209476033260595807775482714820719419351988839987556505668748760023678792952133871747224219751555747037668641346493025784206405266899963632747661974463731988105825004916895749758093427663609191856217669161547880837700760174528641365134687783688102180153642692911758061359942753642638717539579749872238585902774178055099457338839483241124546353561922571429225167303872154007942905566113202582194452284571525897599426466609159178439532184990303878682802950818216088622794009821866480464637275269677965058414499153604405175072582414778483615114653218370502919875367037477086373495734902380776480302909710573138151261877617182643987009377527927558475156301835066801962524155685704713978380926425302041397288536351647246428792473102272717688425022125993234018778992436863737044755589125614911473420305028776134555068257810147609126751583355792298283105974032065947752641652976585477679070081409676713802775505661233487606573561113401857982091591103173608292196907370743817709472151522421340776656685325815145214380148217243749602081150774442664595534704401353600445746770120876568306046871424844750852301469035925286023110777919839191219542675685983487259976597702589129872125935685043436889618273431468992869097643505611434135501440979754168106684993704771808235402531331583629008075292690051887637122297648695350938463716870119740444408320216598150747143025997793815863886911134244024604196276557185828372655619135649103293698944689906608170345134074223758502121823425135079273202796390603750054842107317464898634565448087293800294686946693612525586835503754661052562227786616564241251293059048622047736598835288114083030698888319257435012985458512151129386398380532886374410726720466730352701685632210550404302444479270694829422632131031733291253370366526902032281738806690805542146822264939300131310365779227890242269179757734896086332236598217695359739168028999186823613400213961627197169731080838169070303604303979674770073925185694668617806642963115803540561345097320587223901319514931948182147341806699631633867761867526059871677130993103555609136511219960258768756591099411192636121663823953272316896612364171343325238920281198909744496488110221130924710778192187745154572392429060678490934131669441375828998478746111693527881781186028346153873719978590238007749683320314426328288125981223998421850072315774411283208405081261735052969413841754811056790042671554093502209450966101402486773492616743692869752528871483330551186435190021617418619361181700582958795100300156522161954042200750680313777315351679665439073939476414452275730101902048241595907176527642565156984037717639169379597317566189783498068722357442735787644328948240832578947854089710110674385715020100343369899484691850402545620740502745728404367397336060776656441580430666441935530134751122121632084154293877520018177074190497028141478258712725515803728961454914829334467089691269464347376934034436158483308982061290315284621149891432547991593704671280125833985472930510595625919480303792268666715276817029622696710320411129279004168232060759895646196267373209408390711268681284516431733240790820413740774236346270473840950372727208409138578917512241872026993539760807083476173826620370516959634060301444640456308864151572989775807484559023359581627713674199390883776437916799886717126951146654839343275258681612588413300137209079878894961829619051403853951077183030096257855391085449272370506826651103560887692880989964389204702429523123869101957912567496674618017624684934356783663523151198907505110772704225845622426689116766022652372081868977344797492758668360618993389560595196217314145050727934987017846055885864694583241392534102186551949969722143876324623696585800128004865377103437510785049019692129960472948814253187150777361840190013532584724515213173986286967061876124634114231101229466439566453085749817988203244609007660118993205855824259009611437287920052401073814054658054694259597451588854223377142622525939854226553554680150166853918576060446035005102137409285893622175566739160391168534008529108763199093264124155482912173429668415180066423666450238159596624624489980279309098949913175869845071824710962883144094603891043157116217487269168251915572606618573039311094888725692506073209061159701428070085150123243220030654775857987870460747812857856524263418720419290198775956699117651745639667935645804197398854258477457222622935513478867453418613644379519685107555998838907568075358974658959332980583296547606927721832639188283813165104987983508540502441880976474628600866494640238294729628789213024650650593320001850699591641361454953774391323634565890922760224236010680117499622582982576777754424703058006447739480882543433309273748874855343044586381903312814888620826294838672492055861047417702848953584809431847060734557728081809566869559413042218082015040688519468076682469408826714569017377589266410763331820050974868920586158480127830277611396839559890288487709120576880577519448696777176425658968429022604698027402361127776147125170607197309616491643164745003844999609560578461076179632074076745142449856991916466308112703406254924717475510462901598316268685556239097979045857847526317267156940203978380548244382024077375313952233701253640748077759959036915207768933585788433298706617344239017429629973211808603059972767518890676872246000375477269410244428913155988219480558090966398579491836427580347930816304393293689293968171673101422534783478143477732518551905477429142413395222084121717572649170268475722723322567855802330116530791542020330049845758268201721684147137456768506981379842232247592030386422434976723416691431005889167141732516332466086239661205754252407806470086075694485969008024063794146033955522481037306128676404742494085294613366575606711871224428299669317188584196617885448743902880946479461919663523089347951952948670512182698375298372867093904560565223353179282596529071593237715926614078161721873335287315109850859882177228007384412867772788748039902826647312796702432490521919206564933100921098141776252435281736247417595507790009242448145091580502731525181234775385943122379549113616770396317898902070287406611210695634834375117412452139470888053066483922814099308030325677782855951102541652821135017104582830428897387720301203991739721865368755541149151430302529423194829783107708430919982729149205114865783245213196404427278601316725898709074199187368716819236555999122208694265425192991848356730457497308102681632934318757777570973007965800170819770355238302304714352783433687211343245793530984210649411866133521294754041342690930479874851979547480093945462284070297758462738861001186355763559808000757582658264228515032788233413202954288396833105991856726322643305024326759044297783727815005166677048645987474761979345861955358674297939435990544801183738660657810293372270763633383737856729807648439315006286495933274123055166913699225049025763027899569937528725105029187275953892678709556386673705945816983403637761200137358974078003918646455805963368596051915368865807249064162314870126850785559932567013057311405572337202816502611704738203273663794559076971736639614496475850386208022625068568533903749551719260055650170661741555304536647373060018361415181750822931371132871116112861719363295054796362179346897755461519383617155469351713260373718249436819393897361927511714344573522580818618549913643301004293202835237185150998397749884361266764044328771811322805575823654754330180231407553057424104887031737327373632042706029707178780781500254753802551352483385622458859693329269634339063447701406266589880364313485840855857157982871266568077127550826376704775799111738492039132926462378145627773348234205674325768956916278535790518160475313791573997762011810490597757205619299899410145304216979336204500310983405369921887922241881120056120671640438923101474916295206365937312784021745699947094943075802280995157211961588796051150434741938197266728132482185283870991702486319486135113287624268391894544303924346819017384520771381226102290948269150534857890405359071508860366254746435128478711447628773841757188091974544460034059624077332921980286101357581268669828722053752243455584286159189692714256234160967182560919263104793280990772568821293123206912092675644368605815464663473171829541915467798605900641624683644821913654693581930368789486378228749727891494589977926742352112043233659683221150407891063308556785744198329301837867940865255036560526247110112888287571071669174859291830982766746156273034060205375240370290638522811550517337036581134901181579718283763529824544908233557297550104184956865484792835763678896356817449769711795891051036359301238694217805037864321783632991183810857425414074250033565315687544110577056650264613006452165728125535269982648725990679108418546891306408265450727652228655103554293602285351920927511041769103958824456825993677111032704042440852709641493029010464515851690175291182560448690571901523223575995895322709923377679926521760842993545075500552956175567934577948454337558055308605081283924938201550398055718765164983451867738010581546084373527155313640303058059714321421907734885604571359725710903695801696745614486069107579480178448442120151733715776652655059311680206799935656034319466346458167463564043914757091005746615120458356087700317588536511881959568892925640472639561713043542375886629729886491303665752530694751476899124300750257233323181265804740392658025636773306417574217705802461558403070855888395739575387406154982908409439650764156266609718570520098400517528192534119528375833321664053645252146441709473222285660376768317436993426597370208887803422494433443174326814767328118879873170792172613854910030242341039279762151131106473924286363764960991481611278065514943322547030218172683169300777470742823761086539215392941700844236134758144053788321334926524538669247280358895563943821546508922786816780229852438668099756506629565762654368033193249185127470488566538810652184078670859009075629779498049675183627394697918058687025732370547352423397780477478430510685423171070880913135269258545185069210814063271611099114671699051192225245482246249217555808548381241523140897966643134007415101793782610971802417356163860627515694951185955198399979604662067573500227366863201144927489739195407684754010058160234076197849636917518207281795813823562663409967753066676036153763081795169062338561530777777100262322236080111575570526846020720672109201489325011579529312343621481825817726210612204738104849420896961662771089782927368477989681820690627681042821180469019828611746015881340717873299475009895390392068308071170497613852117831510100290428988987824796976714280932285813604005055704678002483364361310681876179615760083728155111527778219822309403672838036539093491584479778900066529076608961431418854651555800096582835607529552003038359409272580400742239412668636497004365650471460233724261063481396161369528920810911895769329347301735170019361497218957151819256889353206533818304714570511444027572865149211140318958384699469532258619880315149041658872237442929731417296578379088645755107913732518349225292074448366023529305528094590480580553832786463689218968605976595663475718384542250673983963433690830366900551551794013564756958770964271479962211006232040750637296401564966910332678085748486547813657275788173032352651631635149704807068643925598320327490845486643124260544962984870139516571949982024388566233447060331953786953666810326951609662718141848705151875333643737970880367983070559651028602283236733716805160754101239029542429650092666434531167551722613524722327989329529689849270834393591036151363360254343227654418357819253640046911809310645482863069269430119669548118505402115538077004543641858830028825316388834502945794774276387254542234262334790829511475043227851244739045610776207908907388382751513617306245588511858399889237851716150561647692964158492478126441237391444513562830315939395492250773187931670282473488812504391725212725180064617625689360180952433504974871044048405772087724352653014616841725058555550627347906460130178065598563874455476428302453039488835006324667032052175849936769849151410282529068072613891484401462895021435878662142295022130416270375583201537211326746855674176870623550021212992414903338958674181934233233414205859969757430071505813061681671865846647737167959332626217897872251304672834111620510749147258389007563053233690991254322569470599294556728012370183067303830208833006016409696517537610032356937082287102514056224925463187997118028686070545753575678501684655472863958474993831899526394220794852071743472628912559632097943060544907216764882918036249164809218095689617082358165347597301690155085150443928300548982989332970528665854426311438990254029954788133994285567138457562886886932072328482501177292728802047151879625377380501125403364675169571432857129393103506517328220186155689536158222209366858588197340114832704616780016031468954905845873856438053489574930736674888254600029139135585921501595193868565240297576661190466434243999009051470757877242469393909367337071304593487864869085051906913390522524537371742925533816360780345621351886725244045025851772292047995645086437429996115573910471015406510496027106870886837543689463046545625447482085595957211380070787296040167002517641623927450177486361286671170562160227274377381378831485606411323261985560412061848189449109068645869656513914736120908539276028968429713796601339571457535761673104079373407232345523513201161562354158320055756004439804000279900487960623096474754391578709921997054014517053374517810211730630676171352258922537303385428671459482072146203123333510255501758649085284536511645531860234060392026674966587192040406750253095192337641913525128537688565270378244236348478968100949256442391143780815528036481915562233411191845968751379056789576819867780210577568026669454596676534420557077248958238063593239751078346094733857261431577319664577895439981053624824492005963414437810096409665479947600293677739746479267171460646764990395028982240762561277873412143134953920683491406373550313550670380270305779371333573896036808272795553710379297578860618552278647846411650793168728771041847905549911473676730747800789413390617320439245897814709860241528476233326102945245490578414475941524672133508162515024648601323490138149057805672689628533293420465008315237948545086334082784048206439824858422476726085632273000698640969120458729888168106663214628698296957167278544349985935404416909577325146282151009693358635060144398724445733168250617137350283413437264644669502914846973577127190837997275261466717740296005818781346310538741774739194054012443422477113927187364239499659662929752563808665175517715954462107600089578948728896934265760019647074698799183118828220332682346249504689196847950176181289665878507201728341807063625942048877351130679715833228633447489674599722392724177592730294402572119895425286781137217161391970265254420499519288770835511112378853968952346084728276959664387908023206026983840882764806685591830322904219367949255949358062305641757774426746801479746778978130874231681508080548613025885037472970158587160826144169975305788861067475322602052807189424106751809035776389623180354779211621038946075316214242360820905705293485890450198809031966904691957685618349707847208771457103081993465343047052255053235257850660077563514998697455157069098824863970704345078933077709747709241923002832145973828750154233406546222481492202078182041936228620151846286999710324763008418786691504027870255297672477067111300563365833352860933836811656373619534729724169795533192918967266744056943167979208268232600171648332571621270033279863034396048326657976869267428843273340884435081327144264065771643357510227880542484668292899872511114974593723059133647935837373471742491780662483701846808489448141393260478861729234430011787310371990634631308962375481450413176542586228506272419844541152836432346997774438997767835940463712493120459371366906920313109568094532398885621678306855798398953298201809832486092046862387756819555473805921242139488365938733104994494612741658660775625896417442499630722660352573777142718792359072007845629501142339050985480497925424224993045221215709151474833761850240946949445777701174648622472346368804044061761305618548738460888706517906928601193267265975234423281180537124021149675085364325333009010189821249311507416037868593765888156221649244059300785335641374791772343980284078758247772145919370140741585529664855000259131785998990367587213097995070010250226907915446294155832935606469330310652599354392324999242591215721630694885969416882766147744472033597118617596281623479132117681599158924278299129365619098714134674776768681436216587341548011365527940268564287635191796939665328878175937352749992064469850465635242419706134923233008218931315956388281220654551621452068408080561245263496870992912869403117409611574167675232665363039115242972907803514588621840342176773917143038802163769630996313117818126037620540036154529835455368896229935716694084331998907395464093176426693649947777684919089134771357868905613721640835318922495711176034700356368809378613449748848291206225474349863318576924582066554731170604711276424879254446093390322860167216998578789080089413071038024675030458155991919220558247714036425481872736888086299036719500461685224283288030778083872601683428897236382793108797304021756796892798013188155206925175976839070562896687212979570069774351028702918774022771555696105300486533505930828158090554793361098238259068514428610376602545157162806627078037252235965343496002891564597093635287360512264438922363602133346244303873514703916469066345497179373857622639813809917532761710043633449721493410825491579858761570073718711967635897471654765943888939906273917383717977080201461375947098269289564509612992379259391967723291464510409103526850589560860246911448490075813196974524099355137208090569464092972287240974222385039123320207144692450535034054889978954349877139673951560980112293995053379152927969528076449702683091254906498609913950486538172054596369901780006348596208923756985153691969192913013741989293992466106590222567495445806082733751389627079349443438750618050737351672632611071109718424666557746378419691855687029218464360234250909720688742647843261431005357355024059827005870737800498164284075875591458357142819806295106173692142092461016657271868351584795874334658635183750963972304439258783584232409766917357527015757303293455392525043380240508439939947593311350715885056141922957343374330759718728873122512810165955431121270122920883983053930745047303622581785910001770355234236913701997495128603333395316287674478298681364942865906019082233790117475526944983506336882724478881038549676081171873858748077612695192614066650652538825915100593137971098518112950094314278650411454910630179853316485267747832252280764250555869318004193476578937337723271424685218004020227247514277352670198659052784027237527295926973485055854641867611279305624164271374549938272867718280784582474341022590581271220737276542235698549957389319961800825297802268743926232929766288783236074746462453112091459718823927654594098042735340911681735340520813365220802460576608290783885272531787730799272008519654276995636216143431166858345574090395684006825470185028572840254799626196963736695807414009171161729332750298017514196281411878703374402561131120623505781300681926819518410788297514280529458426739787914366187615929257294219231500566006411396196256664696183175888985934639625045197548359353822102821701324516397829325105729019674640397726470077977284298238412640327252306293523803500542485095380255876941728632774367037743720523853957933254893555292483325797399937163287335762113898408007863178282470366086748565556518421217614502980757386340116904097734507424764267425999272930507694889374508766440329074257538669463953662989433611512727647115634013334112431896622145614381718006073987620187738493060361838691485178275116990237738614504913960896961068180467669442676407390009677336782295505720556385228227285569097294638005348164645975451451498336836103427930256631775398366649229406228148869740269058501483762889392250734483330263588628745899302926304468460151066922079606573211079000801383823736685021936796802843705457142283077486326585283958328330204865076285862980821613596501060294430272949293878492482897895437277959887861383679402358992266146859033359741620686141862570325420902160162259725362247400017286957299441882131095038769955144518327712359586817281886168114708678957806489272588866923083927446990158801471395332238690272691400421463754213708871183565468098550668085497359037964752097480224747840259397583515590240563299141847953147733584636886107255540699809565271265195405450432248473453842353568436157951627049757232464013152225168423928852607038907033048476780711156349140559960797508332998967832648830128653535356166664032909085198001859919815387469539743316112024244655946472975306544806090033124550480456171371910543413186453002959959575354734920777900316461647768267911060379633423749003206356844186949830585339472128296679356038271586551345078071767674607213775902806180030960542892583324977517917746512978668113006535155969397587141848237953249772858339012555056204223047298921984437422216786571744191078372441347335004415036334625546867567883065709268083269665202166657889897365729961606615884706168470961457325310932177224570350508167914701405403380430128552879858901127009611214717731493145437862256454637674265384208007937735152979370995686438131180297088391777635581906302370073242815262986816167772156100487824925401647226222913518706804055986760154366534950321406189637881331052712207315400555556865583562509745405552487729639883000102141007925852797375381373061496807843144690367175304488124677421424748387755550615250810772460241056448353471876072031472043031474120063185928087454868117967907168082948268743682355049603282994301619568490517933776947441973845661709288735667307695501413288579245797544588382937472986401773838825111216801166319846047110144532868117071516829531825751434695638827108810911742846167235645769644181908622715221155525061087326000781497699238029460738639893047284315226631015170225665313328641468116830660470690791979270126239599110298702413813679097587646969558756270975409789972699294161133611378021533034150110519308071628716295234346656394805853134391841492935913390193163307478075153984968415661040879035160536380208752698412528860736887944031096889281770578296715884044929909835748982615422934238144892163169177673629734649099667604748781010056593340110767376163140495795782440568526373535321379181088819112184110062559953370340402701071145406917957515777092524272461008190953160652626781697114388848368231945120723091294192899552728465204351157943015072044452851544019817897191210244546289700031574882087362834547369786974204320687472987550514509137778722441402456084156018812001903153909746862035820169301804097521875793741398711299064047101006246296963902843730780017883590497592453562557266793027402478480630346724470253107530088476395943706016588814051060443302863108690455032275069535000701169683367028312048688261421858827942116244731859910613513078791425288280527088971071302694148302228747633038814408142042143484072973900276483148525011077466468466360670854131505368053316706484903853728548586214507147984517974832134682940378363262224820919113612970990563957619355792826019528399541975369940502416271022889308299216563653272915885222768775969653223856138320891919702897448411499621275280400612924977916826804967560469482676237058423759252636709013879312308450577984681034600864308526853286209233956749540903162220982586686111196140842143478269423790391433318071842075277577218531416811155066879309309144649674466878941547158692887519025623335573267057420824626977884811332434943073709394113890700853458184807467577872980815841032728602007866098623883010705558069638423669445390112925114423202951881951677798661275100328513970809021816876161402875059600350503727378112841524628433731786430514063312211915600361884827478395040226414496012593605051625334183797403427952795797813822997099221852660104779291082829380905370512279765484863726858809289429368459325651442411986360998573621678015046409605532616339021832627644568955940937496531286454888814389377250147832691603845188563654387147247347635328593611040852848529596925396336847924107382450330460939339802711712545541747767012454054748354649276591827088167142473020753341451146083546283991264482899599757188519319502121673360817724165600304929988830586193573833098783242235068250405588676634272802646000502411099031829077977057851524605382088531420216292257346331955791639688237262616108734233055855251115841873952889374434210532846832919260944932230186295199014133310243801095776372677126471878804472970842432866937422255371451128492283378660943786873095924396288519697713324486787740928543485619237285938357611450762107757268244791321412011139534886837677764413382873515874764978411035687975496783077782886903247732692166848601276792609767803483707466477672310755185754753107096412973074559391343050746132829567740910914389554430490847866665228713225685390735121268554359496946030409715506666673204392306203344136211185786921357103969705359761493042841491105131282992867680023175921016070285351613506322962358103422697768719145447719090814249292390743477889959751803530803434182930030799081526782048778357096573414729693440878481930515211004317341662516114261608541575782290924666388921107639338796902404167499555671368612450331676804492616922530034299557246055825522267889899939477017883995947165534945960619078879154622417458933761925346283439288896176574792144773888801462468519803351486830396576619655307750825393232688008944570289122872247289240431099966199249000562129098577953686620934278698253251307737133415991890195048972398856288119657352685009310685525830534934667130641432551743789648897618256622518175996668601602120694287333742881923417345338602213853591836971081226884155248011758734172393520710304118977124820553261725457397235078332291501949249463596386853642053072730381407123761266201146852004810356393877030437467421056622442986477533289511268233350191383015491824081886884064833810201443831568597951182043765452868377600971704646954592903466356761506193695318699727136434648829905415368893984125718595955804835040669409678976217950215807211573634601767101209765873194106660545471212332915927585970155037857694150784761528374118389663599177562515931272002407711050319454022015430263923237805542235146197472822724882179293531374114781039503780826520547525433639587168310888767093089340987166615095719505965275412570052085189666653238956659803240351453537901597654421942972345657974196002574394572412954594416509378918982493760121694421521601754800723372081237927251827036091352224961921817075087122901489974479088184227263237122383869142416548430333043333174118324040414418902557795492443264680039882749077985449640583444459806531574348005316034971783484850557043675196277953009569275566138802036704434982916298222703285947433568937749545545401679309398940757866372442078990699390943318559226116512374974602618575815071584931254237537980087459968804768439987251842433831060385398613823105668053309376659459555792155941983747180263305405898333748678193465673042260071618582008305619711676048505540138441687778298235520101018247932543397353106558399689114745464972554125026695425359545561914074996707847854384680701429744309674718629879003759189532660181714312433358476254333982412948219254324933925266011962251374645891502831573668051533074040764670356724532519422907569572333301103246097909234392702239566157753830898544400276024839440356055800065753539018374751546600196562904612128112295242541368537020178633410423749327926419254558852190456296452099727021107386852053857859189815555644168012246478507580019907996659264248504839289743413348704857566404500116379930904987847650987071416259672822974886195532715212679941685490113558177388693681097486073842532503276109843306494959814950282596396742577956616144986225019009071138139344386464214720989317774909785763387393338421954159285029965512007054459094387477444082677097134168052710632044690978725549432440235724807339949943318060748612056547332746141734965445025664912446533338820389633559660865130533687920453284639053610408772256675345673451886803129268790116983880730262406557951572088880274387805590290153977917325779020459741493039636645146021458701208169075892939933143234910251182922915036422719143252782321166920797469327567101555009801289325917094147104277335168751121973221181451663067635318081149578923616849287511897741210930178912658207526543845751024743500434577729720221790339923210310567635906803588355775467225760325431935914981595669898214553802287640045823732428415338675901359593523279565606479266344004512810822246401495041604533808978409251170633540045178603785286342790740270781865286981347839307186817787870757263497110563640642388250849378269648143731548836868718661292092837424438050129934676214622518038768389383433863583988454699680481162206372152191754617415392931261918820449277390344634026057427058409162241160623001803707675794510558959772566511852326775126671518530330096702393863288650051454659046383308538276685685698163985992185748574417541845344186827955700802934325890237478861284879961261776063493972191331478333614537437358258812538367442175239873662792500043013772176837415516994427379222579284233831926021088879363795786794670040907937050976676395756348027307249011624731547844908217580431798013505374457502147807045675492731089195740719034673540899490066261408025920003349244530692620231248664319006979600420613277440770679628822607803762542782724952070558663087403329401857877890679458594948790890540886350432466525804714322627639747429361096215575269568624371981914249859588741771337342474582658296382141922390734771257032922743425176473885656578648039286839459215411356904154766022328521495630204822255419494821130860643022933390970196348098385710409357234005742663769600107327402811316660254824413603155399180790333656942506041452571148576098432782451571119820548657239253708325079908718683404224644805517002965200566962651317069494274857927928693140952822739453706127041656688958039782768779723698884343583706314509443533189705453342456309596515727861240319732058803841338808204107996396511820263254494302574417111552722826031505229496847702878603469066663364812516289084360941776245497408619518770259216320755458945453595939303131881725721171162698012632952990405841366830850653533816390508362027562073990286787011084874028627491910610904883486879361900214616823078579901144503466409844547918265398123564776967199506361693290324367843116915350708007762107292174278289223150528261311656732261784854714281039230749342132850468029454307068513917088475375142444252292728704639846287237321973925794057516298469529745322579642025602167452921567762919184415302746535520200056864644848479539484075226940354064555972727055850171836702650752265582638472064244201324826263902052359329481968059753379828531223584890536112301403992270616060541379391617173899768574795236093041152563187742207551950124723436857090719825717617354299493447087117744112155464324076638008761287498039930410885371689460465228561360329180848029053665268097458004271686028661014866944699809733996379686205528168527089685843902315000248084801391198383315947059889968933095975363840587924386231804915458005633504131499612676137597830710636314474633541943350766307359401648666643449002583763321390785221962070661787352065784242869960469328317332368340886809057125413188880203598488015871588761533505392292300703671043168218861540048797105954250614766267999220599206231258058558487311003383133380499534217583613827828386897000642407598367121944478020921800295106725243763534065326085117539204699258724029602262548446141264520437417125291277644514795325060819814549830096989700901710860807413265633689886675135093287191715542083264363957745343491132302730715181155457276130859560145100715634901307203551439782646909111926265234569024529295256826793503805129721284399621706203550903061585865203141454831989700021651198097120977440073205157374735253305493329898103496267426853623856053377566820133239017164027110348797989170797273740902446660617570733342688216651798248512613816987140552050243457703969215982433625712163068863161768224011513778719561250053198706487918079705508765989138963597278304210243918879943791496666812016046933805435947835086914880478567317481365350186578818336315188117377086767232734384935846312036775439645607184414147891297454075986822276721046826782399133366650047537360661291704877392111930511610742190177368365864963523143301407950790059360867370802384239351280612114781174114376846522556960548497765461723475962999468713703429977974476334526855483314659337814262735020625839543245310064886893941246295532106817718522861344827958195444805546342506400046542769898443273426598769965995349687388519189380354874146860699545252861793857266412168362191869281909952462931668265087040033403129423582608521580691763703827164340888672770704837550714125907493508656348273756849292234112335155696600670484831446430757447067826505149600733032829341262931149715032443341093399100965521225319812754022890631385755517508769867293442525765194112846918631035479474320756051206231278206253652230767681778911965119885996240754134232381199380164441229523926843589628567971611942862018185059780094849430408309497615753378011619789339871427480035055924944889151313523373094002088608364490737526822044079771835337928044983539639122216240929671305808640746367836372376346374181008613361393845502777952674028088936561987241117917360121725962964397540405807836211952236785523047402732184537356153786215409241068125107364497443969627079419863127222015249690607416182788155199359984796707586858348269212208359934463092766269225143129728660707780307279685004387602517783685492769221218517925245908842860768774049340174087692210426613768711578897295838783566767439763155707525358972552593286432075317346687769886248412371791412049150794054517266262525108564807341183088273791417313336082690663140111960100234244659347163695221473585102981989009812592229106617959765499563455256869184998496709912861915034405044467323281116232809958871070879133845746065304413872227292617949194539672249807210058096316252408654329010854268778026379477795870637639110761730956266189211121031561631022579554848470380607905074241030465140838205743784037742021675734764408809106561158985635807621160516759407617700855134259570541074309591056945988982756128256931946481410209967639219154184236187258698378580276219466542489076529496831507313595106564208440946722706466416750205298178152405669890541764822571576452736234486273262371278852627586258350303663452359756733108156228448707796274287603464948222672578410158133769580145611313234031611398589447743445675191563839674858528724067251807761222252015370400335046740866639742282616922487794518786798306807629222151547565263601656582035974522139959951281002481668283975768489608345828083102154970389091288230603475132369333579481503048039839989145306007733102540293678900025926044459829436900053027591885291482444560143169918313410266342296515539380000260183002191844345311456875193430411622085999786655448286505848922237047286281750132511803877533218305088464524245730816471854984455411914751864608839471004024959367342598990766220753381223740133385666924283797729561006042423538185040444523735382928778394461429135334918855602052141640948289835244060332819528157176253947535356451758018661557026189650370113541673591838703350958832765691676321289506828304056378729788072469918029190630314859808983772146086773080032808747045638905441415935046116354308471602045713264240391353053757783946001525336149357617337543617513343124655872371168444960914111753423148503903402166935321829444719955028629286151813401035523059288756828435678718248837548728563852085538525200519313804473610783697512086663442741398125057463295003656235964764622640688776658610487097309889033305833778046248627781825423626642798696559782727447683412686855316412193685446766778192025550420278204961737643914948919683326389572237140477115074635764044376637886125097170246034633125216065288557878836923364143567556352585905497819888122046210118072293632010220441900320207171908246675987739900871962766461612228283371760222567577598544189724769577877380454445804340937691718346173128712261680359061555505355000939439435626623294371593009983107379114724317033596055912797166972317898650471094104650503064677001588164289937125507712110139946659956940773377119200035676706414622524829108985730396931659997438230410711233428649041362858485667375177256670338544748119852840599047267317107378356450693848906054288426242034116115033378245559179449164118365655159822612612943907235825614978846769941436529504470205414088157559329281237593434779940842645882065195688165106625996088776701147015251571169696942489851008514636502332439628307948834408200380547022526848255903055811351821255603604307297693684890476764286081981069668428515520521890816494293346479784138502300385826483575521342422804510413205117021685608829332157354796521117248991519585160595685332048840156500673426296673269930181574626600784670481338405740662760441299495885851420728286964046374443046791581827524948865274771125764228414292252878118084911196316668732574518091893358588445119021764611539594309430632335310507888003670438900251370439728182405380606913685464525995675880381471469681163475678207132022646232922441282900761035422610180452741777472060241467982583930305477039082853939231998143964587890721407763654040118184825646740944875027135518298758419080825246000746828509087897660380394177037763225134633364729521945363572222273595991896150132546395005803130385394085407898328728892799212305528266162622151648681550185316096557157991573785606714924099218367203320151542456672464468281398314575740452611457381353343336381719152200194401779921813347163515879600171997268726281790111538323940742426662018962569292093992446448440853718240870820442735670915781698321610793436897004628504635547184410766289429413189332788523180373880356260194546171243648913707973570601520034715008670861279982546612277274685201062169175834181986955211849019629146919191564321709353969241167592321340460064471035957853719537560645361302484746896293893557549742467716216719574222933115539469880310882572942167951145302129282914789842068139964498286732902718787086257592525433376914672227210476705861223728813671979008920828541287669457200621122713566644341382415918040851021745876022387252819381100988298574988023851683120270948678047817854393923401619829758361228990976820088984475288936139352142778621089564771895278581271770878107948828714621475624851507542751082822893351313445124001986160977959584593604538083576371316867186810204885246052120001257446436413196508481998477592736829164550070522664617145523910126991589365435485342956306356802546674493580186105029310938890254766317020531099941768049660917491273388677337395261539233411551451691485271796287513510437067275575835648123180658354179781720102422331273809357482905596707041373866537575840490363908063201071203693817238606704876715632721105950414369857870620846311173807051111579888694519109151449791301629569018138712891355406881386626323205803152127966889373854728117495528989455254007845266385093409053144812617349311222382665950489659289667218955475237871112514019399789157382132622294999947101146828326315746193078310454242451004234256326453333071508020864192247108329005197636552386733062890917099205877712206972390927092916465178004333749204582345551586289016790623189166147840499518213476229455266053901504147943570565406463720167301156104289900288477079504965280364650042691356257890612746914261902650125992414824236731110124382412497131190451886452267669510298250807649245084841237775842719534974972481553216393679844892487163961950576381420490171589734967990699725346999228639282674700045274994855091905072875742279655121839832810584599148866828364931861184914057215177809605471037916267500129887874532533317208617004711258585151268412122474799338444773499566748072506935363837970564666360944654259138934465609201630134427832620698892016152659124381930887332328104593049940959274044581532129705800665566811374128828963867707397685155832523342223366445293678767869654918377611770551707465821099303818661467656891803762249031673657687577365564882139825878335847368075851978624646202553043743634945212066790316708143998221948688754285457857397161596993309711098601822581680561461952322150689105591007822451109157962263103752423281439518000124961365029960762888584401898367097263749560101190739498672411445415775348471178614689030072699173893870754478943333834345436918211815578029430198391962471851889586458356537467334793644612610156697880753525317704172310393373479619186757306568117285044671706974556192699552991703257270412700205773689133045050975728658604441793545787666035515775368080540495582580236239867899623372055624649191842585094448938236050899696247337249351299169846559178063763272475000430586310861997211983217313137409092046045391482496739178563597883344150206202927984544560061822345592005880714618582411552830788629456250279142618406643035230432521192301884269869418695182431598533487420824808987106444829368279225929963483610481178028108522727608767155713275367390792786642632634650372465205434331672106875983601540232399230194522809389242423976283920540852447570242974646283704643395480415367434995976810833633421102843948809679517281222588053973975599129776211159791734755199433408948255573919757130814067027029960631404590497155964717152741721566764390323838288825033746669007443490831639973344666095964492693987254618312606340454267151895920939259944724737319326124293795275445156454008815941300563756153660278724945361495626908906006902467525329051478635532432997786769369698748659336739013132181645714877977945470323133874759532205255184753413268416593924210709173534000536769577767832248748768818932213136066717476021815000402664611974290766043972376413779584682038884358984282377526600042289918533768855888601418285569517043697588600369216962406501526407083625500904099971873458007333529833381886715052273659623229684592944139233906602687569734185259978517224151276230543848969937840412458218713263779998521572158276225544142968830437753986944140795603169493773631521103354927070665394977425808748608650769083743035705338479926428304521495493761656039250182976814714010484589839563413234382979753137743958871815939024740696585154441137539901538880332793127243915933179847861828555056360013818498289773537744241373577312459273029242567025728171861025699237970186966925323006687184910499589141277598799156860422007479573238517666486091201800741939048559728673280905081441825258858389015734253264616374043803070383634672689228161101492162059588203120315298663704111641758675126441371172874928818884199689408026680315259663927445883807561825958492844147185777604170955480222579401466654452247228064677765444137526818991959320996966535852143308036338944768245479127784587072343007055690766126299387499659071186132968046081648715584440733337862898648414563044481640148376810197044173885848550575735655198282847648382407012255047110084266929979153867183788606777716871973013552134108545030159568361554484361613957131832226186029253358392331386056719270476415791097308523907858898471439435164190753522017325415470577173912533261693186952240738903731576740320288647022014733109304536881087035426524599734071761452941524577530191500072745555391613372043062208451072695787420335909819253995717161471673873176927441145967572022521012977469192977803144774138322399066702111201544787217889711057916469193710542872838686074916598476337318769124810767857109507917153843458543239119119244375793768215386451669012027919928701151126540121235456023082200571773889008362108841081255705680899282979125392662592061485002044935717288833392504047492078347160993578382954202836824679399007088885685551337489225969541998925316306370318609144512680917069124299705773980569723262662929745955785088590719897874056624707116385557982838261383345277555746538766498192452896354378263788869318518898646766823194987698408244010824935825352141838183610417035381841790024685019344681201959979323300278629340170657642784124351950331241181105267232980706124316266888766777274014369383553645506678118839470072235009409192434576025734469625548182668762301566553972054135984839376736186434400340043437899987189667295969901662602122923779715708647849759315743422987636542514220664808702099334763792309368532377413804571915862398214756501254705553379131551070425293476204573183352143411315954498939011255258785368079630875947601688972686338225147121386104449579381488554838015867446354659992789092428111210267749813491370748825551704831098362011251468583328143639593042658501430496370870248838952169427920775417108556735576775111493417792161753933331870593167366747463530858112869307741983685494761788890688995892818440196245457974568791124433538151069228394605186742725428474683057333194036843959095648305053932982722667247492243139419789976989022974584023682972622721335922974851625775532558670452953289534989195080778142163161001372954063027265826357157348705950860299327728420807362317642877443791072166493899926900841641255186603974590306591699154300653658255817780042233945487129324854295582192102936226451177373866048949201152137314913066264456163790976220690792400227892514373843691857987288428167136364555381111854304094040855170108612757857608222520782181488355496765931160859414401561835537092516953194741834587056568569555763694935026078022888992324638836617894486136619568155878429654141066118982753290749378837246692601747808734985814553329667627224790957322380686014557206967048025934405286860526148489528279182666147592022574005787534217124413391555053236188884118955467846004477116967729427113752785152280370789894655296210667170302860910815562985150780338571017074661000403125897426492337855250102212409766889852251701741833382916550363352233431465987504455111990354078590458747866580415740268111671642632929615335249223475082817790204965961157738036821477392376744202808573837259209771580750524614369692357035951786108658085205305514016373318452420382702086078260461096185029310787356462370802940810817747604556884405266703093917316820730121312818899805325791083461551041699336111917697959850805679551919339706383377933524400409364974187623809585523650404586498381152894563962122371201863396688316709006880439602381065908727019753239065170218503117385868525484094921859097107841862062689653016987525294388771967079836539896628489854549108685225274036674511766174172104912119532686415739156585703256401874275662853309778967978630194329873207739028330035249968877732135454466324023122837143308702837282023023183124412492136048185403350867544466412109912286682879525424793034904421865564542519598112479687018403193726325658457770243852948818886081366059598542075325164016128908523415290930849933594982434793522089931778105454094616275715985270709741102698047612429175954501981986871040105086776269651647900416855316347162885144767219602492682140851382254755340260951188261792328966518189326978361894865934367628061120575596609463727323967675534752191674429535551212544531761319166671034226166531363763239575256960457086554100312303625936209360257699101691232641354618215422858724799315059239355465014283022865195031337883462169030039193516332914013025903630767256151154066671296665943323654689664068205102341945089723326742361563897397160121716340708333015094913970026662939077955247682909690441879593688853647161630182034971417888254069604357198806383504885564913268473502467112936654343534463147922472864882985395000067371531738281277397497642818762353920202406217750470300572825377797277301701004318089371539076950300784954262563962900818251387859952117388025194939860087428275059495340930864537857378709450519032686445334729141027700937792506860405293833336249842258874948036034764720161993714898520462143551339955697560803532886260942267384684155768581489543551875990413301570379468961162959170402554860810066935702275635689186764968786123127121453000718674355880541145399443785300654534465941375688692628032390620667726568686134234708466721485660956508427534348667204542297861531812685947236099906934879523081150275557529015098175701162687526905538889748565379020904620944911148861722999740239471890137015776556766382463880962809444407231738459928023482558003069230914777183572693813912517711664941003846756358609989458444848885258673986000806630814620243207232598446216015961146024013667152594624874601528850801516810340989933988226584934235352880775619647272856126695965887141978808979111131074279936549072165600439011307771212041774604347283318560728321825618090871654779105230337863731642371773927412328119140510052208449740778102252584738875813394687135391109465870344065751971420960145074799948213316569651181969886923413214959913746936677826117953795752455753990173806993411521865554131180497194611928454384037151434477680450839585283107911417087928122882173188463514463273223554236660421813920751138524223948917566169579632153544830191489753284765750290670493784745374973730119601680005477350233447372290947104735280568560529813725569820303613257787889258142126890036826944570227159027795993266329927067985078829873417697113148708430189646305955608271443926146540257870919473438629039198617048527870352445723973918242115166695681402976157470744433058393219933972298894145331996663077112426520137797697526468970451756621758181943762307523771525204399398092730144693513351205408917725747440909430345503937365400966586610214770873698014266211244285648546561929757496558663402532710770002759572630107548539595192009217334905155732720107508355345399085394444251115170326160601113958839518708935053251386206851818861045185778664450905090922008159618226117373238103778759999577975231018836022563080750705307279377831214999344389934731407227042339447621048774698743143416474399848895008983274614989063675899825446096351601471319385875594007834439297295479659824804449900016882866189161588964268199296989380042000404562147996792151538410936908923940620953574805097710835801641436958436983599186612878946565277575382050871277268925862061323626307225891742888531938629130288754614117197652341814517191481841850520925833893914923018050575982198353567027967345517815376091396151401127589591220615779601013916563680466446540225677104726229016868689980163779589381518467944876327725581235485467072413323765154881679976252996552115892825857209902374642003041501399354082354833615900584688457240055562000281764570188173634868659257906682227456499645727546786134422982274089271127559888492090231606606525551978421957391922803895535972612241050764732664520061186474976110663484860785090154453941789869610969097946365907313352588578286195078912768105716653347752835633930598341666618486542428869559633170535004806867281823285905838919389110052993882180210866122446691270761393811080055680309771921990334801879526821938800429535299553753200690348794125200523538029699572402863678297083986324390736736536969897845797956012937664927296586660203667290289840884123390782173186310306847798638767251333001817397648834550394203339774173352830116986010399367466139751866738457415541449158892583419140991159992398930652176871692282484401102846702363361913037956954844556650464773463420527969767647395610492308419769344715112092893793310455222460884851963346934934736067539076446610779962741878665845352676796103456600139618255207629173585948162244804732761263064143909639843312115357043696003645195769389213365636107174436149890327281354447628740872342689943751973619681451398744527659691118707909828910114180194903824712463582336615340169119886302118620580250243589253830284232958581808730929686330546524307573308255570004200970489773476161688543320177733936222932558861654517371199003219620686049957100205714483863431817683646799450957031227059527095262821046099463804539710870784427050333888308156419446943096295226926305859637100861483760926865136131680049684768800135853049790482700511936763927224958580674534001941800067424435454858651151808013249557265331807518453002966769588387398743380632444193176389751775137290768985234869290774280192620132614530908911969424993134099358656592325947577191404987611129748623087470342682543781282514009988419624551300925955718420078653966045166124185110995243468279669648455720681553876549596035264777528578693165350992354974930735946058874091167231948120385501240742099114908269726353664906184762107456468780427159016847271483478707059135556535139727802411333871270575197200167805347781024700122941749155693498449428493831278582258584237475146144706470157447094814455363606344863967558492794801473446833042416416560064894681697767511433055514445879870708578774240526987669289541812619126820761279436329996349580622278548161066936416968497215889034924053245723061860441776445706403859099736941217652949880212961854740188790834690589035615321213271759937882449715719774231991672880055188290914093156184317480599319508041256490975061797167138340475141505033759440852403439594874651649838140891936604170207442101466881674906738315819660134803484756005560852408798152530140237426666830505371769527884822453328339081113678141377843971438514803498591936254352587286785158143296190821982255838244576311244288564561315429228490229796569015984072680815193099050728310820096259561660723727737421481747081589174876435693215404857198704141909311716312458169129685409533939484543179037487007906551895670598302833988380643104603329221772815990544736572322863532657296182864311422310082836606908792653633791344316257025435772978527016661214934098632668116335603021241802758349579637380253957755041820683597815711294968463375114125395074553369982987255609122848117609968928043016309966281087532901139400582218712131851309132087291297332202259261202543436962555107310485730608090808512520241622992174029245640360647549623141929812516825854552480144092624757548070349160055002555737649146716042105101656400962149967320471391636599257348430169434957262984028135923345356811416544871298694290520862391134000055839515103243196308007932574996179428095236938269182982325055905754207220179272797301010217822772732615213123078711542096900492630731534740619361097490797750019466696184228127958234111573163006911792727107904413373227900580562573871860599041513923695827777297236469642564060553654570523972303945713698058939447669708866947639046517229882150316585117286746294604390539368380075428109418444933068423443815757491774756937883249725799156661250351522738406422692702041207378056881113040749414834072436880715894079686478615698762018995370408318259986853004209469004057638254619280493544135134586181585593796487622528820295620024239934490127344791385753506051493339718627063038531191280578513343055364833768932477407090308638353647136687605788873365983807215245452895149438208265589063275494201630865121155665715714074768667510717974970714976685783257220805654595747960652707294257603527425220514381357164707717505374964304213426859802221863868543115446735399396615904808810289266900579498261891657752304474046027624803905339151791755722022580658027553447611064776189748766193066653958212989109862091718373465669184892461277046677992716027230779826947973544919476406274488918737894554090723374438127336750332073330290000750227513330804602601608907271914527460797734831901251754537802213016826105337952182477746927862255633266929534572032678510307480778756950670653062725157289890955997199269938135493470364442960624272257421249658719117874322725131966918794477318630532073892307713794564588036547658454860077818966465017342463808496188659822648220106952987893064153858034460289971527569175599542457229956103936436679574877788457245880199773553668194010591884145570095740910220855761255962047135075320837921238458791169481905265032534132004357445090968211878447229485412025969005738578284310367975749595395005241314623915777431154348289615780574121707709001365776622535434656480261328633633318235576069817085364199765526529871610214258085184531306115723204369900506280347207138447034724494429387180352957495150352548205980726403349836450103848349216685111090757786057550907807756337547486099222834995458017461848140504975607197581198655356025631231232160447722359515757689818575585271216674088463251141165041853036800069825816881116318291033653838389662058853740713701525305012705678225131715721343693098926306880189216012210062905597245931844714298450462037721034973764986919587965659304092256000616025019436134943076721765361974942575286269425330341723154877576228805560626164772045718032473968510484016922016556874914789488432895170631505687721649758748048180925929249694182573278628872935049989005210646128553944398419450673500910119156020622682792013970701223530562830172002272099445442314665042193029928975351525648348722506293635166193585684941865097488707422997030505261569046335823900581719795124305529526134297515413854523055251802369790388703146853083256030152710865825049498504840912225771951205155378863660277793561997524905869812912129221240475126645176572979592663722811803856949982518032076847509159725111740253629516224074673285012047787691491253399320888180558028239940399978565574904535071389929245222005963839131233990302486406156678169652391224147736850832851902620646938313236904152349218022834070869719258552415211834382095038161825732134252583104431330268424893322701019432730023504291761637649762459921654660447608382815666908071793394648485243930545426748742718847839027397521641764428269578458421844261880158709187420839539077784289257355387510754589821858527784552350937584062415144197528537436781466753970310854181608963727737460121913668994397402452263357292572521093582997921934057231715818451510768350858454314022791878278486643896113532369228432898879384514316141101875255831200450363892524037620661340021884905277478656027808980232345705527024220722238112519741890213733602382450110178828906662111816418542683846230575308399163958199422454739459599693558100714712351025190239399875997191998600870389148573292390124891312650029730057974747722123306704902440208459799084786545489777320371230075794973194463732604776212200793546639306814434684440235049159437212753032811413230737105116617867291235581087042828462149408449738966013262894373695757070215385535868538043541968537796317199891505615138974198991608850154355313115003297256481834735156219451397724101851721871018374743611727914767206916941325274101628537748340344664817080053313105401471985651596330849142604246166111350935285436776425377651327555271726230835543304259602486594378176923301347798119368971843957446647325557353928587052092687144060404982011742178507768763609462231493602921913748851154729051522622842591529587903083373681409992804904795054677506353357335521101300456948566881586020320626226123743575611753723675670936993155345984250559182527965910186289853582877363221229667982697610645581934243159762162721469039067511136869564006616943458464554282827148618506444082395794344390841351672535601774133066145850250424797729904044359431520571616063367360282096066855239949666145760308843162112521353598629573487615383054523685114800495069893408388051467395961367918359233527311137230375063464610846736372692631367517652609617990536094893075810176953695914120815523444321401212340593839255435160506448332514626514105218570394289121383189365401239821376122922952709895968364592210881992795856972481494302310966677785109095128484655171282228827876516723103637094703196358414153209084140398107516448164497731203422222280743171072380120004301879874032166168972576219338530623915442027552267598543292362241184714630245775222437920161500822811695346165275265454892106506574082316181343936888374346101699789142136527236573416722840151757642167482521668683238933814642862595618829864188054699888316012250019119340637557240726166278874243074031199477179299650816000916402599461391145293859131544578453688797603222776159190233896690739814136420463659586008161279246375148091866043987266519843883213613204764623821542589731368874781878453039224828235950008257353581871891238639067754965029709902583817023151886656963474340842213115261561737647970229016021316891581906550400651801994064752572761524375023174138143856419102366043056379506434431560625950176681590581837874182983120548825208071322594523673782386642327736550965865956439721234668566153596418635146791628533167334721832831969320505502185349306745227427058792126556849654335988615445784497088095561913677470137798456211650926504681033881145127582762798970999997673640984717677651564330440527675081879129616384992036100770965718461177770751519628989857969630917865789996063596034335923695124059600242850909873669879009849990003884571229787333424273397344930800307483660357463049739799838638736743008491874725846078824412550292791946673205247185008292025803300727440694845714641653224106769564536327198345006550779511232275931646563335834959755633616929081315704408578958736611860061203297000193860571845874375312942366651312902093192096240171676999975969561740160413043074900646784418999527005169286217011812767780941725132176428421244727871761416401115747511625923626583788818458117280005333890347784456022630992338563819414873646462570108517724443561300412231323958886456331867897395341766661112357078184327677057347537615203985004737264616407953360400906928372433113108542297966977740286155149823432739974601462117615074528848023433637674329030410893234381688035368211765595170321605619822145615115263265025807786842492280526172883189059131966597519463872848180352469390663129347262408248920223269734008339017910722203971732243449595175120980964829819210417420835975321206172910002118995174813544619798787570057126823283500924155843704015382633524651953461210970377792921670351960179470147100464955177497919441649650865164959323902178280776296938341932392168322588556907840942295937936266636896397079845173372431560710638731221880424051129845101862341151038744477880560331627327857665548875660574369746273686359778997798237326254339015564734487629349927522482830869645319529218432372519412853871328089860508677987778628231533086015312019226132806325435778369454789861118424852299539761897334791090810549038758444412727355026520237843055663141031976571535932710363584906135662838844901479295019677954633178625406155068853057303718194028947115480873239939524531600519565005968848169991273095611903385170239115798432487476669282072263726116280609719033887434735795618991692811634617240899738093252405207237270447593084333474475133297349558187753351255779346454918702111513519532690148951377771910942182453151478966275819502080661982451367751098681547988288163961789461825031358914498895716457828013060042599224197164811987281943331168855228328617812508286424797023811495115355089082274518635277161301360322485419525031558521767476566552262881450562720756648231588469583909348472192128346907127113919938152843026265798333334792186838992035236195440086126537049186277477990011700681788243297275532975026264501733179251571697147434962288423338925772138442965121984409265105227144455236015147227319560196750264578484628669748766475628895787450142419485422556657251787116976102981038437271717143400672630081664027334049503759713118998041948330038818344191462722597671458197359726077507939333775635001395834034511062154081936400246302701813315332203184868374618788893305546666050608279257392953073256392478449992751842163028530376085374285822169585602373087883903092637757120009083138768616070455368238667352564357713512813548733532681599603054625288059218541235347775709151078957548689874499552724036998428619514018091779476178379449591146574158438384640068972802514877741091985063218829821089486682504483385374206263455765543422444605755165609567386956035920846278969479593210841973831975862842133101986697557326915589213310300983559711055025142936166360724636324861392247764576550520873857885782358233642079718790304652668282229881900312978358845158129275642924219371065377266679481891390171157385772922806091864121579785715729898225509687551913714572798469761931119532354512142365509172818073899591573261085210604262516094476061242887248514250620775107139134703324270201202267734624993339446083971785178321631056800765643254173203519731644296471965052751906094884273428850039151437820445509512141598282326654869553941910315554823035015775986862473428241876576072814452402925390522791919466184225106678315166203351022286547185045892251401433850079128977236147642678157289025768922860041822258020844529063169466513869486436469621166156134787932109007397185833436813141301561174853645860202634372727730593813594199638333870522603374862338741052520003046626274581704908999741870504903943152483461309218798860595244536789784943505216768536682957710045015188528160432891671445732874550230282957583678234382227086937939620310559352782440167186212923074262867339350949208761008021347831833002735783634000252311332679190760225603812830208426070125486468804882421221106153077536535441895978022393041733909845587525099070501449776550311369850618442931070230337909687211376714401617674841452144243517064794647064410959625428975517288328912975473842149086471901276835045721163750255522585637887817720685010084057929080520976036705447792482761030602388664202625600449988135941700761911471735274099564896836638368898769201652962368889104497037118050139632247327914339840704265105042046349033825064525172804838607159585496192546379921322022599261877729660867959465189305151799932317802590813242965048103703693704922524270256311336868623502598316339476792220224549849731886272712372690192292019661495194598049649719540401016538162846412122197473149591378834620766990870676918154632102462472276682262151847512547712026988133406152088550213344643971082346885952525911379140508344696566111165980561350658528100469797566638478716241885827974215551353920190240976737683517371502401369387452593527435102159415254280725766586135385892520279791968965371876587676820849326303011303001907620310145974616043107228914425075445813849565467873739661129426097071150178234867873056559886200211149285894506187285623274252614794040606216929793930378520681703338285398045422997882812642356073337211539315731047848350612491828901292744547657762147113791091095031857900382160092547470212336697115880321532908843704168370819398516463526960356441010192191017684690973838176005361482180636689214166429709676534655290155085384505936074484138122716951482162646272891928449470003153634459779624721881372363942892852109497809876070591443447313555366687147086122652646043318277589630783587187026932433687136954379355789181895121066858979910352857329052088156024879881142939005591583236014769222474008113538731792423747034621034345550192190507651382118692273927928381237440770586490279624606248558939058647848453863936454557546247268009196952423638668984767706903781003604411875198869661006953231403084530280497649446324827663835516320813894839704988637965712781043072114191286410835716997921159699892973514687654358896937651002005413491908967181934714365859903164476931101244124782114940143117197051911075534285988232599442041849635400204014014946671970180716262035896864186794589943561436144051844194341935056427825754443037723698401951620643235672382101743830872789069298772004231789633415958108229351061797448990989607353850336299923305628467882270482321297352220960195340985191991423520726272355605467637194050540309367736409465419141414880779075049760622974916600121250807192981491703977626544575376753035137857115016303667698661865073934018014466841222932768251710517969215402910414979463484011974726401899445011033184863748112028680282171301420566175852076212808827325645592823587753621168898602294413273869138082574660006131405062830872643064038437871571829870957499892891874768929898311500637295501433206053422269306674467636436043236445845376249087511309326036698857864132314009729538760833571696077333775803268880486884610415566687741688896994081453640861191188861829711734680275884492847563598193306260607598589897594166711525279606558576969284216329108780145841591242370588981701562847340229144973799496538175562096947776360983593196677127503680656944743794895542162453818932126404643991246413542020809305352526420127403334607927892212730009860517345474883632641257614364120510300921937735584957209320060222372961395111806140395103534641199605833784923789780991476134883429848130072169388988173582757315933790577472879797688911224468815886146425991778562540802094233671704887258475213216167025823735980616291397705674258131158222666311359976380819893426798925596342485017188804336626685156442632924140472767930654238345885674394462461467206569459428654148929724817218115815947886655912266341776920594814022132351457692866378343860786134488671114599378144209170148262641380359429921395877113958523559865440808756011921310342433137566913812320151482146931022414992520340374824006973029655041525501690344379856452383580254021770885730581554294804332811125236967999107085888067017428990696422961251479319314712792687425918469808177243113290092470496794401848450776480515440066692037497245358345919341594974312362686377781644118660261739524681796554919635981892290102941781165674034611449500012043845586862444789055459972284042583416703633094726243876528258462844540420209093117046597712129942484757398674533494110075075553069437650898540184208008451089745142388759995721808893018581837195987922930575493480040836591937600596870952389786543916921891342639652212754190033906676448527858200544818258528348750823844762772945912917637351473386553561578967612331863465125339894776705590665443826099173393760206739104625844318464071906266884169302962807436231533888888822528267675033560053857439623663619369782940566034493336758944048151697584695117069418884000076105542286412927027411733289749052409983880645768600470233018001731191841581445426774277819034961226529014122663028989660208141168677549519265771393590143947606441077907465979947644205964674896982931723850871573946687768121189544296461450999211717648975101533281477876322073385989857398336671828644619093916096106827613062783115282873989091921998251937512085731249225366156596700732090682628837232868669695038598329180619609384370276616081845704500870360664287684629420053004796391533395572685922955234296394884827897459227970000947723324954913182197989900399788847910754161976800623475208579612492597911337095998574776046244834408444172923132774380121322225880442713453263093945155801192630589272042264970466495003404064303193509169737539283526647252513983120084336682768927916894659478570043535566516974523977376538833095149783591091310976173295599751452793507805241372942490565433206508780902136913293753013051239780097276009039879636818770733876423352205324225550252408528598943262935151550700475018705523226743313896436098958247802059297778237846271487986093626782306619207480625718342490541655479326064284503084436603787142303492065221160633447588835829649333721502135468140291979857443769680731741917149051480835499963439205268799242002843381396373172569122620068635869385929802703628440852278299790800321673595989379284184604619011980931114914933128288612246356350014840694473347149978488812642739217365800531598148550165685962297259790805284793906358703442625474437965960444533971850713588797516684146973772997120470209255582010068318555040518428985108942468004357855922349060761963348549548867837495157374553903522112767339942535843022350212622378830996282299260201767522530637477491768282094505832623320304861963258133616165903248457446322852068349352083647624304589275575077294669340417322901705281078657957246436140027803230235081922971908533712417948078838695623269663673672861290601456942421351260512610180854433900814879260372226097006537318539102070653611845689182102755227857789424312417907224150263690499717771696905304035565934101953165886516671257994640143467953514744461194679348093678871817066849614434849952475127179356782147877161836176718396171508733356582386932708128177724950282657116227333372823884066423580405999872775373190773591387203353045739902614547595307200911968767073122293208331078164306056993192610138136508092031741375377416715290562860090827088762136284970442124953675812679525944820678646946017554300326900929571858649590692149261304944428985072127964490161603123916077002228770361437746635244122429770110997516161735506190722791543628096173798125014769751274290401628619026735084886392800352285216189778362137766322924038967028548081932229837033547486870350007190581556454792807556576379661342652392803573692178042874157605648861686931391445479503216022612462287535047752621870922522197914773466341432116755464107101897508259342972188848633498065827367228392584949646469066550929708207070612799307128609871240589189313494453881750172415166701251757663591159136385261374334055991127916171644772751503734437842811608702723023383143103979049508195805698597036591986684975407015289110701017650288162416022016560710404841549460036155680203762381851124789034617377486431627711249836366941652755797653318643836833955717147607091161962624713714652761705708796114026887403782810296487251134660634114458903597323406688728299072688652120739561210731917397071468463635143771359227832353227558897938097230124348720661032914794147437938374722505524902288049377219446129300231709005772256019949639965747999463757159640372626454765954198805625083349482958671208592012443701807916069460696694180072860192850054029505898648527596587855942695683938445537158602696946595487599763446121553133309271792685834019258869462689021368948281183610355306015629382952413914338500805433078505270948729424337809712043116179030771521711046892684547369977213327489697728158762178144744094976345197961571240137057958355882534070696902890657519561512357737709137244407376254238933149608993331266240335072383903121120192750038006964281348932791106293711708277152356980435100181493021961023011711354424669401356756198100563217169017411380317185756563656485534275539723864438017847045121698780118036360723806132194031948239278505545131339858455550037118278094038643743567602885357000490415352919759940709472146261615324552237365596483867451433448153526393215490151543366617078162832695251431178677288930739116660325791487113927451799343315434718984980910349785723403716837673325645245466103369226934676256591265813425495720948384678587028803757541304913268520667984536820044236155856452316560136274966752828699383141529781014562822405882317411510769598193132009565053847321377473179913161803655987269920806732094581172788328497297999966621239887162558857460281972611878472565729405420198513799446156130641637600521263988525985665906181055036437915331779691077980240317422454928612491820673654157101130583631714355145517728350795064530275550868263377059132764187863873395679865652676085854660622699477204873874948949495364605401564866458054577889070138916838448676414093743640614010063649942293493749798062102089435605492147898100228846011009814430132154573846828639360414857799590496072211106410293805950498047484527482993206431248934368077827714287837766326920126236783238518024510916065155692308047558155669167946019723556364911077191729488097620655215072841614634366277803383834923391747535752165743203518782257045291178384740303814471930805938193118676347881143544593995566938316298723766523137622284169988883351291626485515935476861045555753679175803463849197086286848046529687244458662981259914993358409574437912862763466739827236267716803052164638824725084973545503193905368577270316536426306407747932776617364252875043459593702768722527097083172570157290208054009605362616517188482579873176141146356356641135311163838646724543263211757966357393468867568979166017207417567264158262917043429874448035479829272333973520928317524853759763025810454878825812029340696536016663228799569354967699688927860426151912350010398298039939192386956362066156317567638813866058726495759360194090297218259960757263733493639947126814609832904569040198929927813697548271849581943619988825075283517920835879295239445932952511613254992642319412423437872948391224832016567569809883268021437084332426745216425722433448998149062917434744348549124526074210244142098635990553685031067585534727250319587306355601792858697321953858215027460838630112008048383584343905787065741237709129039517718463207402201273952360343596390127512479910400771074588874108416400334146762680511893463505519774264606064546159794463449757747282153836421276896689315905795539494780450959988353483532268173110579988177012720339938738772817841234410268319008582796741940045796279709671190443002224800681984252089590976097705278688882715501204669766294607807651778336157884489436985377346465205151907723984658533520497929860108407990822509738689334574075453548745972246876197705564597881051759699839789597967480894955028353779533835470568219521913837199939019541853310748207153154788951892359804554987587687091089826874001032992371246983777295930275492592552860456654002986312894047382078993267179929829244492871870529238757465220210756863340836688318010279490592279687043497326311577617841257274911195847168936522139719527807425010165080199212219080821528738675343905687134609511035686876884492257138118307034139245322664677240203329505882717979722897670919764352551359106043492552531467526349812789251426237312133041190610444342086295308995759082428477533057140090424819846913529475710968091399003171903025255536972567057183215385722975139982307474804664986853968671308205385721223151064615017148945156960497394891838166594287620508488470283784583304697247724963395790633328171157971819482005336128559943152448862086627027525440460494633191243683869057869378071641369025082080819686490273191061579580033628225595334197054307207432135450826825222948853829355363773849563898302777956883699215425022453722821001103193231723103158499157097467217318480592187800910279236695171993757791506346561723838280695960239689376897857962522526417416896913329101058646475532539471594961806806599257490134080021435611870959487633407155537675582607965377499861123915980678148051774870026769749859079782509442582904981647144991519565382187593810890496190036065077231698647090478575397715303730141231857327371308159629591058745595590298522029148126838177960866448051558957480570990756900278983256844671393264120967026416787080220516376713083952134343139605380064819264662827914346749590937984805335577197777784714014233222103333896745729209016067973467659041631057259893387499626205312583178340939063781671739460652502264941386626264551967299025202877347575624510819837263114108071304944366946606046252198238040896796720249570203282410070835149018767556676610363410082916873464840913002407643831895969327468579049670207627224364017046998460217403263955255116106381562763292829082042680590502699033602572569351812813068679978886088201430287901411299567078646647994752492460458358607456010219835430581574487708386597258644472828128830745361680001992504413861031315908601493164634673207385548684242864925455424942247446876681384005327738681357254241346387209051597055015979570297324885111040193210024537808951693062378773089501008396316864652523304932085057308087473125546389758877013798143539179338378768286698278718423254555749643733134228777196255177166178619088337374394026158238607790301933038548436120080672486626027586144030126718892671771276765117352628024271129190015864432794817342948218528402775922069807781800389897372973544709287068160363274452429410149141001090902256748568948793596111337487809658039896990257902688757108098608213251140016132772633383237089408860455454345262746772570614586386079596086157072859220812382259972316582222651127215669127753975383780341267902556506260554218852435642256705323334074352606022168223453233287155054099418993406707245658149105239554078770046599906642566110692632436300470418441348557156926134163435726277170765487127896152988167345857899722498688616232816991891315400747450998803737048533619443775938876717202569828288160092894094107800659344144722772788552507419316818839326113159748501076650303156419191441499243013091648058042621669070940723418879581845752591740426827280871652240980907432024917089465785917375576506594500191786484352581789896275116190324325096636056829401730674058209587979750265861105356299622454813972705538971622091606447284661565054105582777467412278385691873003880663037316182745142020594604432303811764242429255458162208430185733227470842336331611872944527652034465072856658144307850196566781647725414291727487431725085129233171212171156381643881636507597418348684780307843098922376660969301056052518187040755571371960001093006898480624571296026767913811833676419899620471379131681103640319024452989281507813146867570148630468413761319514971320247176712228197103224637384289430638515940932782220981458801321675251479683724966422430706634397321073395448589101271905925039645835797256616646275786926593646332125269856477683454417914057263227353096490738734877289549235508246037833157916178463688981355550725666123063109375707828174153421782907540252748479063963480421393647392231667250336861619816542623185504977214747865341615074798298634103003225922296929331411411126147326696953430257068672417715192491526015115627657677560752169708249240243397683829840341507503270156413699602688053922605567836738011454353400255715946128773768550065211956864871416718299781004765466472694851127225208879784460200625379704941776001125021292938021730910339024818647905601083265365250588995867338425812787714701085797897718646444894626904842434051076585257129192562113755582526866068795163579863050155099272655755016683582199078781194443449562426899031086974263743227076875435076143144470401371283703897778129869947737830461802436451925201532090594450130550908049226474278611259629291195548898998798778266826542312670893761764959487314652220107482204518742328285952728434463144680092869496718098515952897951780751376027543900657993227823365490381815330923080284996868719561270344512564024581632349958549186883871837440728381711870880019295503754111168479623930491881257817257395872093197123934529373496000143536690442772611338249562404281505369854540121838149449218919413830587115303900729271269553053137179042524681355555508575050462232772285651165701106822908604218808693501866199699641923415985507914487147448226472174504183870408037374148001334471264449528399695513686622269478451641807108468997083020372258721457828393095841055650511260626446014567378579053861071713464991695215867582835895933990098789182587055448191187377270876671204243331849311710126972003562527555516160372104255061242154544095556389566450906242622300472426727602539603600228612860301016737984537039083025976409237467878826189398891694947363359539972829013801689814728166561586906200008744740108145523870684519053776411024096777852327733759924326076217527984701773747712911210258228856651747270819908866773260419312886998062416687532716741737400508810662003157982767334168241578479033867958344480442413240838405934173379900877895509686048283395926650024858192062042332571467215708582791231595956924768755322735282268951345094136772966882869801346721654812016960095396128555721385837404647496296123950726563232393840030658216833175320094233172769614500927808826596810281185628642780161235162101557763640542415750572450419914924930068627740792353586293636061132670930903090389215291127114695072327264660539694190417793107712679438588385251693276544659484312652317693761266134755241197896407030421370375260547719052612218512519469491179041383637281775739776262881171889834517766431302179398743496776701757144648426232693701484314831501584911531678714377387991731644174721741183514847495185045595064499887683889444277178404144684238071332376702287814758965935717962387973469294033909370767026876875393918394557110298700971132994732063452054193558527714967619915841682485708918344092832401548226417143277464355781388559381517504318805052398200980365600677657485823819612737748212031617248452865625683360505165933617616410063121129240401294805398130701585761326931844605582594871882100213956268853606146751377721635922444278462161242937359985895290323242153734983856218631255681248493138740509999862979992860432739574367162318602949310461179509070598407902323429307074512802431524576483433661762318126388270573482178753871864423520754970883307580279701150578316554501304624439616535502969033665315779678193148665434651621939801899755127678100550026905203332621701387127528926320817286165116884810369953130566413408190515571984021274635097216709504470039135228592223479398372561744830338322483727333671786441075023671511155276438228873362043657322805382188489817254433031629271265123353443131509133519952121417656390977118778682784600251922283404289663077963562951549725127658493537118034828884289448729751184149908862387633049513231589347444662842261100067248976049128782242040466445057042495620820930698580415403584007710126001901330013941617390938360035886941238956922152934003759023349308094766014505150829793169834285756083656993407157180340401198011997290736520137163820888006763834372568664559368083551045074579536973029004702818116670995334315356830762614288225332439865682265355090854985622546300308642461278004014601849915490750666346205400840994498529924762174877836024289866903957424453354437971808511264147003581503010567475269270411753152094013091658998930838445551872059076280362718419184876647628055036390617587476092431969354193109999492926213625912623424378002679487134092179906518911338447568081879073122711927450924926642804009271320428839508931504146010203535743268722089092503396168329360040579528687676701155620190683604740285123044354971510238154853601458597916871940845741116494607338605784312922965982667908045934477807299626483058469759576276864487259671131504698952790795662440264142473729214615838754143629918580369443049464114469459727731551525487767480292404551617960814343381991207476555572383999299615583133552768594661001585083885085483187984452604872129383842005994068836934003923646738939349245160582299357777783840962347848973259937686090685135601840065974070099495571822995701650046266320592581079222302455204425789240810233265846514420076852908292472010553394908344955097716338578857607121388776767855437956982338765100373121282998677299594923674569551139040541959346923314419329416968406361580779131069256279975894901114362696297749046581065898191687506874423754290442010309451172280715155721108667492955393865820780183184353724247072857030579229498390031388484703216951191874978172960119438719101251732700911557224315803688834285518248486449773562446025966302253932205973739961117638829099342321745200139905674890551153721728691157362514403223071660798219277144545387367792100671423989063662602482710179265260396909806083415264687218298763171835747490445840411397012845668403348261198418231990271600201364959719017007892735469006604946523875528821948577661398762347106900353241062885376086899714952927450271468036233555975078858188691479870875702575851350074739369332914258862430908190479148660371880702552450899519199031808224390451351454656675276080431767721728415687871691705549429696634217461589203087365150274287682897192166283011596193670861721679571846608188867210035268701962037083994388693070802118975007681301526085935878266143163316634316532692492225958637607929176285093639227948264402712497917379508603031381838704432164854821915500866476998439464305374092006316259345768813915086337871470774819056663434653658898122257955044780053932467742323063180516766975385444442527334021267259419740138895714401083757292937011899425297255556929816032484801973681345139768637512776086676718487301919604834175686383729531348703034563563854030892288561414272804486085551614999092037419924054045323963347571953081997295128841814604490603837086856002861117889016816936131575081309096963089703437476049010049414539663088132063386245117172794024609678843197975612267883993780203311838392576015409569323611078218710153656004682730501091223544504134629737375857389520150039347791973556792866648625486311796652055651860301958684272948668141318450579047239059109472089722730814890813524769354415166513587648612797429698547937463972890083769359037116091295662401287609035550654715022040001181858107406433445782939027486793877440887181191358838437903799013978394233150280667019154940301939574370091624096189333265213072696996246530091249602441516865012859020423949662259971209698527003518927305463570734729302977414952049020966979890958907826220889046218922610850943116079960789791367633462309195949908563332746676417661905187087467651434329650271933475345615095923993075605237553213205318329474297744262393875964296940814711410112765614866982288325788928125875490016704101157463214621862132151898998692280949097358456306632465621714938375709844845530198466054545592407541675818561115534438340990774454116447352783777402977023916016206522830966457853881555506085016854601373075334078325871162719268538851247435425167844303448299276454929275103108747129545398895431414803921006572229691329199592532551449400866787122978601095463879024596551530047742056916245689582240315563091538450288220869259943808061665898078534740777448441046568266641617867614974324305584356069352785968873238529728075172533423861549465628440810664920020782138604884828103302353572795805162477664360553291323904847723134160060341127437279623452929540640827528783933391132379480169600999630535741333704201929486864683444983528576552534520301322790656449313743480822098562669603989333444020043631071541669280656804061638216847810005979083605862474253086841666265220242201011301019551106454206591735174961687172781470087713162312125846716869728389059689482323485728750874875425679229570184865094737640508466056945299240168709760834084250653266486413113020909488307921640015356717218504184039869024837208393527843418078006852371533987801473435151117175299041354874617020105311200974403493545215112601872622679255045882884512786520946825555281959099582575401175831300911486988829623731186782492552394570641953098596427020681737414996985513184700442505659074920005397067001819309003767682891601013335043086784421881978154211025335329394366632810129062657861974045065495863437739933929553048676868889650919814745599975948658258150857618428827744601382835204716746400957011364971099506035309412627634998634028266474535974828437427908953714510440282227923170469175510648046404279819600280195170980209857233013009372387941679824525048384574666658688923369882690100626960358527167956916193838212177664268669030868507952508488012891619701672132804372507375704334148609399786939270814179470302232958662695594822068681126207909776667568200434797283459566269304495959127850920289344732960459422848400600581993797104719092330066488894696818957362632772562826996459255641944029722521867646472655068942866235649416337716190889577563219231672520325989821348923061758709636485505214434435442936027707249828865917001868211965931900054997410434763665434110043057006148586053417688395641783440202432582198276227946110538322114136770432822952958465781767929342340252177383475517040269405069625534646310177482917665334128186808147945160625642537340681908387879282748656685337636983137518661312114188372185336013189005868675404020548257726392415899505735463436214540229584139141940633456120128997193622933311135734356291509196939372428587350496389994205005860380678784510960914089522783282909381404448713554030527114303355506308972886892422588768457418052787994695788367672495502577587459149908334975982384315815297413443680992009168236981300746688868037750367018977635812338384075801535818778829948007016174833474853233054451577398382965047559223246923813683463355001111797738947489723165838883043700523479699242819078932649627773459157269100670360083545569965632952135909946166988787094530030526552532954963514740782770212098102881440463685506790680103985226218034459757598376198944507754459030934285581559129888494059950428477807477369565635388964966667758449745772291719770445660035952797596052249268604351303349872428670445904156569603429497243690408725158521208859228763770478521669166037824320715793535769930624751486552779349077146587923772039849919985414526553766822569737159685350318007715555349800079720778687436856111936631534233900235841895885936678077705469765640054686908211038965374666692556559414413952909340542414672295382796760162031327696257991532700023990888949345858110980300698739064565208060663190450934596768525524029076572915162234449392785816404076450179631105853152206557145404969626969890904627829519949964968474340552400719479782132979683334045854280714943179903778222117897938897833693474468946368067806359730508393312281054062362997990911829514350041207521030718867317331298878518710593172857026489102288016317669400370225401172789784558971814048707681211405311644150890964755975704990436169704629452749349312551610934443976235977674963691703927469017601762074580840236941631467168018749862842842025310936867611647871736480511548281607282952957757867854055919457011911630618454742190853232239898130214297306372020087084670550028543769222109560986667471493349364709024074656731367736137647666854893072171297649807697945014878767948982613920764874067516581717383376798613523361287610980985828381399993142381574838569145161283004648418693012994857544685166938913287340587339464064067417870256314879807032430068593554715935449946360198890776444906663587602765589202341547821550321973959604638114558353045285614576954294709483624620821935299924189380278929366418013305595171700746658711685834410424043295788187859083361008557692824810619619960633637488926635550157013256836651291598623162883702095129946714522699641419736781182999810738942621071303790119119696525135065056248764932593742373164517567783047044406363164781688757864317747310842031370130411561581839040223870122515977108211347027981231550196191421962996093770479517841065799530950337134716389585169572096227272062274858849429582645038580558593477491879596077917285708338863016454251771506503125615016266399345862157319137151149543040696647302194763275237132161838778180138824590821793582109612593759239120413548785640175108880456053708049916144746157010993321968731994541017462822419242724696397006559664896162920918638697568924674916187661845973203553287956323030534709315266825511426638200634151298231944437102491804003131396623427718844463877902410309584274422284511773139151075233511559072645828376129364493148820644179189151230598500095203953068510064394547520267932262184728540242698857945428362539766712096186787442395726285392124862388117100018373022375759225796943271275683620652106417097389734255539819576605715846699265248627235145249111749263507733698385754029106071854428838939470768719519422000475532786644531594531960805730262507259865114912406110110153998296558585066689278096855589856246939805570811739921518933359845374573742768610291038114878768208227823751435708338802507361360874508084067634841911188422805738165129503740254256450155133372790108362997685967279429867840047225777424150821646919992411504634347848671087076526963264859505417291838244094118867906429125343172699557280921963510265850212695715439909243271708650490538959280292886770885042220289158146429893252695635888008198936264753993580314012460997663789645802857926803397196566703324550319058180879712230151445407286777862659353283023195904713825621455453108048831744325036504882209595582754988047561090793055301518665125598312082703432610807752675885843165832511265052304515293333420041636157986603685386643131387785520779193038634685380843119149033410512627021251348002616636981794251585510285596501951748317232802386410237306666729608340458368922036607682628737302788993590890500850332754574186388621869136337865186919649756843021347100945684730059909718577367078674245731457771236564225665586865301672695061206011577134779531691079971584488862638472889018917646392879238651385724017099147887918040414433109484246913733175573244973743695520629634995417259404459847874464268429369569888928597409745892349332028331662541184949183874414364421946341404417164429867681724387225360961767307732710708461870480590843075916114493188815583427656215793205361351334675476795972101696975000292651872750477800414596720651382971183710123222429192090092578325845752525942752162512708181797104264310475550137086417838169901580473778167722259858602883752301937554561222075548654871916246800026028852863248895022786096995508545160903093861009427617851923596764961839730779806220385368740431194062209329790816594899149998998333544455626508865436484512101604322728670537262175587161746467205234960366813934582322402350870465708169804251377453067217398369770881585092402063634776512587823432391764502753450641589120211194724505423216539916737260911938433314877982338124340431239442026702869780025578157498114071277604416982722479691911325031031194762946945765736689167458073492631714400715831856684583570728524954617588156367360210158259221367379798604402574410276818505186049276909674577974558687143767566059677300515308662432274201315777516312553285282910828574080427970127414162488871234159693622086384521913833321081492352864540091684732470774905200321819072784510021525317804878941716477032048835122510268683553703429444020631544823551548011135304448045103467677164248344762956121150827912172628822823797334771234929013461038737568013331725699654306970430947818888349230978244228570540403602783971390733348736058977494737360580909635534009983843653771324535917615704165973741467698070763195004293875027714425761037964799182333587837160308202159505949739895620039279381003503406683228018049010289335601069484208523504053905636281324517596798347071690844951202479804308067069219330869185864124209665358209985548043951515011063694130677101786364950620731805027676003714147795001065871752484169308498218921036897526724259117350152770898970227272233495235156588754405826700140466145658211026067428499730660175433119344268004790044473594300659687281917064253928105962628367352577053408740593140979870508128282211960491515707251937239459911328546979660289191842760950991192319666856305686953849256030642966743495471986007768007400530400839848642189702805846571610399430202552332531175821993418695406288947157917682802353648493455445734290354206224837867248962321296932386475964240061243600201796512964971237795409972774336757959179953716283828198548865697425211645213924608206495946589723914582669261133514066159873875747452557786752752421861973183762180586591920961162266540032087919186643003195633426640571391642032396846887607899984358838874894808149662208030905447489503187672755393639115421452041400447181909009459960954710035085002497762628329967241855558611253777201348245770024129071171942766278442035045452123294104662609267237826654333541359908931200476603664322190746912876715170718446354063309334709425907196817910223015545930367093233524293772429689335850167970013663243664852689316180922313705716553741275644416944385766260204182681000574522379061488026285403184122888857501426160294194280897108450769916380858227054644697265117905786275870800663753933111745883231928078182269632844699797404240017721656354048379017104594890918988251572099240116222238676681503617994329031040877333541443786083754522261371662313783715593354626055172915499006892738429912173272318172103381462554036355079061929854271768191434064724111638216132549691663213313943803427432596699357948003084862951544874521646386846318708829401301813258546117398217968186551139970131608001900735006493426461211167363303894836118758458057382796832138917307652162974876621415960086113955179545187334026119420538796174419093542257896739203014269578699673448552220639047158238068652334604941897000717192598087033007238712829038867024307258817548959813379025821336880619864261635581878892689978924542577380591551102791387589617410724830188195790177135281363154182734772303257841731053083478988302792431183379771248781177829410036458780289476920718293369154844172857876176993544314958176750052830964681108989974506828483241289906363598785052966572692872714337315651330335825827639825357105327653009098446411592090237646043523954897136188575830327329208225743544229615333347861800107487357058222611917358945334565653600522260082234652200918655208372517690536608295516290908497725573856147427904065536739102658895673958597851134038551606598095646438304034714938355647529349495250206071680048588995812239851229320509775658539497401948547935835084808022335629369033586193846359367188976244765568669820547553999863568328870123944706425482654677853789394181617555392418511011178519750988167007590938950578730044341837810151040308337803567542467381854903232233315352550544876615169848259957201361080475519264410855570448525476957386441013007685298773261423610093427331677338968909372133525939991690832129370095933114556532414309216823946886306293587548536161665439457783613695859513287207936954206758642277544153818406676954854406834780318250419352826032241208837463359600518593425505243686474253318227376343226117971722747683474527444415738846980634109875249339657492651269857386003633004526131301872906619742932982957232096870557749413683100025739771806552476812086862401562078222107969759908936407440952536244724401452391731758839962093388083243742352858803031621760230545455925013363126905586793163392518108885160414786018909304586091919844450928895243472474352834034746161709084842492852343739011486072739724993781693157667686267359065189458678851644745559707990936744840905443656467256602630432171176159992006546292468242302110309041319010244912644516908897892213293416261244608622573183059716922171468154572201660176558977759816277814057052961942283897033332123328929095114141644549421216589799969038835945271974945555183954679171845107237936404693553881134632103899408451321267293484206884296206492635128888919115693506074726906520590592249391019057887327219066853576167508512924285884665231939385253541057587806703751593929934883215232951969221750897928655546158386153639150495787282256952998382498749604184467217786102903265482924899146120573087704898449899720524490689756592804348035501901332426957675036747603213715915811609050862858023687137483379701365823800586024471158304731166434912851978382477949436285199515305252964077760844839681661139749088069264903932957578508631349555786495712647601396367045550500328077974122986985176962875468396361180597242024473238345676267988197517421146690517740023780218565938053876600836092858636398803052280984011426936452424311759496609873274622594097138553431417725000334137787262735367728799779212595539859287371800094783282135436056780108499396961463105282562441920706771806343210657690641714560430831824179856179421869129742269060257986060693363213912665825873852676502407889879206558117800053411202700811233978175882307712503206193490234030799331569985652277119312099348637564004746223987259057256330188954151578936958599419874646171573065008276344381572058745429671648418621419204105828384104707910737637260771970501490904485455594701230681794033544905880067647373946820530633606626317308883401527097948287081632267770975149473867519178458054443235364612849607861192021395374917345719297476389839504685472130316565907650386598997272190575251954151708540343460530045984031992826459996321332896179131409219992960217508884301505734399028366606250099721732736868773782166372875230597210814823292841952408126329591660252572654078022922670739290253173797442059655558092366290195586526345278586856439264309537653881618691351307571841059403812660961439793133641984646482210074688563863684014958447065989965903035413662936634828891392486873717798178920405978726256457389921063582921413753829138263299698258659293394433144072923512728257073172249965177027438841092658503971015934362260193150243149926037068545737725943829346042130744380533076187937083908742738375677271008629903811740265286715708268922401474533152394385735641214973029722511194365146707531042699303378832825683744846845863510516664703079130133498819180346048844357506305820586318978102799831172648115149101563827234366561921134175641044278429548148383595496592829751902594300745375154725046510955232028209223906307920187955394889471836686914356292123902044460387610513672916807538136829787800303925427587017115449931742451060891742255787573639723118385601368343982227924641467906734058202414708322747296151615007187733440914439137275489189222769872555340178340986435335735500234672063484173268699644703253579594110717917353555728678220128906919698953433132728560559311556810167071899590250794160646072631014399974518630969127860077454117085392722298024581713647985623773572357020589886120914136632787722819675755963309342854325213972415572183774147518842918196021486124830988376166610738581475840850143924080293845667172653413631292626486929034812926119671092421323868176845484121718208893064825112678165551526899322430738557570286958215531137042030684790443217803810008897100949199724867150725814934580493433996369419562394732712244432303527930446400243041267234455862218867742224527460751690510993922818504235010756631586643078781849355861384109067967491022147094335749032126212101527815802100388695945733756053543806343401419157792325701773565619515180979860383395459442568425994744504343045829296139245122536482333752102907083449907686713623267662070557999305933339256340253816772430389197416493614841643228135857090390051766587690532489885819329916064811153471839356826184483143682287818616212316606876205744821101217744191716268985765871495078677102940519943713244303104214396869860161919418038640750308704979849101012840857181187547152521606592512329380736759731500867041940412142362191931848385339050485559648108257618005104648367336377405130479271463225795417499932804008517900113254588558915414259426966719195817894414310682980126712107354607138972307959619065528027843849907057004890806732687127582151010675841851826447657385783497422392823478038105268277263637398731180212287460386728748544312927958081962694323657574779598565044916692330802850674537321779213484901081633678881787034650042039894793508973864634897668958410943579333550615442449606200416152377085044469320420119978286638388281660393633021541005027534504200584389830746301759967989682615944664274944218161145998716207091086456993149777170307932565082086574585441167502009837813759340723906260103548289929235310368219238994627689769903069366936478276996790069709925001033991318758552302850158245859681354738259678722278433478954983960968149667493939714602509105760134946835286752409630681754335317580174547479504763350389065710671311950309427571333244275071739446687147750812713605650939737542082388850197268145171605440715685663006738831463330469170023019607484997037208141616782503349898137417644084886300408355842459398223771752174144459355129618410633399182497283998842865679428757280745968237186188263189910462837775011117858247460634728860256039614602547499727817628897147225395273204289846067451166132088923794766293359594215876803978615764408917216879611317696781134901053108049951995033803535884822223905334610411969933054398621945831790090581507945011343192582401554827493058478663345953108107652982188239838425065695453286687320442834681435685151440155873992874370741907896388977320530682108115478270638043623181384770032574221809542022514572526701890182187506798524324220806658924644801055275889164676747842654814690845985498680801326583751432911632126419334134798751106932497709620662519470472111734522941896909212508213065553214137707198971390963966441153751620000308767460549965332032435383755022165421150555616965432233547639406455579534086442352884469680337865413927317155771978919279675622757140749496665360870476701352266643159029027951001171409945692526771373504092936537258971114986563801780032890800312418127976561853368560734305862548086767817409980630036024618578554123174592900238838905046359489795374392366060251371158187419030065917685310324688760093652767731108543516322880718832634454005654942157322039081639447122094560363070567817932874509046229497720437550440815230358996429332363189538032375936458923012765429480686385851864188220253441653361819847867542414542247338824117801411618602888858403763719501898154289221545927251489322661475288197028932608410026225549893259255103766735028413784722352108070164826902341099636975757637785466299561937125439192352768419585911441728826082515272688373855247812343190966573652726855324923580282350131461951243597071123736338042384598253005324887356742671532297081064534496791377970753088877981272047576884079208030446304303872721343335489222198031969252613019165022468147963026745577608232810873258377519192434874492000470230519176607726902890598588274099856605918075173451680294102081701715659977016126309085067490554010508328201472755631401772189249904535016135545762659634245558241694655213671112060325746357991863785880523874965222772463282966687916149417079866275722570787045298360860689287877062254318286228202801286433441685873033373527245654783837035018179694565820063718718637196571960736801561860515325847597989240639360695095066882634689310722712816152381313021110853061789510327545562366134344254851185306048487309247774346776107911028945590706764803826622872361725487435450450127014442201530384708604847829696516835496462076166743879647730690503486648159377245626942605066994165915468448647772588352435675597533017492720689520401011138743284535055892718536377093545450053063560384840431608826545174436712718433560739445785693485496640870875927632749996464883655647089375229609702811746605793742702698732604952355177474766538199794779437282798356844432285123585304613257667581952274422458703617762319143367254191941825252272682676481362225603186528736079359995371865583222240827282848994823501600805018249673669931155782500713624154201894389198745319805591990702248419893978427048093628738194697600274501796398042757030826729993513473619998208749177193527542982255468141139177573436721150313799020347094480248756697380974353143802594396404944142941170673382221495530296069397206926470724949491919351149691364235170105862753212015579680236262246329230448287005887189269729545221468902597398838980301129604725537106023280566584257397045925568053994937492253335003326465872081311095620418494721553595592740567906627172509715001430493002671184006920180350015128041285421720236173371334643920865181483923964351469434389480060059494662887208359935639358338746741167187885344842503176238108871773648110673771970603644566460973154620262186898757174179214915726006808753693932524693805348380919732247637425007490451675799658468736293950396840346041742892273648939551202300271195004110402485503558754186839239506267525863676537501277843661296797779338455356875735553240559237974445757817369257133028660123643832255254894702269542241364939913251128596664711510858693613599180334882677062678407908863810059089542583671079411003321422159872648235784503245235041959523446539551046674014801374562800122313678104671884889605723809604098945047603681516706019704026956766306971120510648063178465814572769339148046223073377849268959463067844266468885680343669502086087123382749080225888970190547354115718055478077430661495509768608742558375723121802626260334801929043878296303011616853367073952442488873802891311676414544057098096937311432166958595838882776274224465304569295700831691464427735300018022466064144650771427882910671487212265439336995524056257048536948821973492107353709099449792758283597506214888800739897152036118361982250331481412280738739106563879455595128792103284091827066089911701483467879444435387018185147971562163490521565698381759397299530316106453396116729264161293253216027661836277695549077101351664140450122022208970516676372142593977755717285605156508257211924042712743376219730191785574576129258654933441200646092026316992491068960030374887674519368785133090351523173596884834530545401770076431584940380685262365411975259438827487712638854683287514565647179266637670429496414414789089226046446099370135053359909725895925567923040160747910753813938985542096927091810552329434313154012551704333518072122625246551103292141834832489851971846972392423158599885704497841807050190364634430674850683665861185710456144817815308408284073738431544794976999238380216108122366800200972560709563990633569670888166335188949269517553359695709596905484445064750368083610945115996033022263742037338343748632819895995286214893340963038108300764114155126884810906152855632822794736557895062500272101556762261615622209617719064195857685073577754643790531249168644710178875474093880902690201948450403907318296914854673836782853299866777867963326700151418839969915670580794868012566473981930278112308708780477512847764093224732649032213290900540954001522102522504746481834400975614322494494668884160870292185860655602274553358213336194643761637145895190323651628150906886159277411888671875787366619424623500964297124507161252184800486811183496170211448313465239169629836772326918982955714501755932380646931439901290343988407989765768426278409696321132798182019760815777378680243695445451428377819475301975345203614216470930980619613588721315533935802083743295354687032285765461716009098039537346743275596019467362879837834998164132381754297423208588810695540849623496370114729727231917977295043473444156659592256354466142402354077757065084043279227084362576136686780551013465562474685272909079788737301014369388137815885024008853523588621091155522619936364463167213606741668628229191028945905247611990859584804573846935347581777539546542476946965360106876455478597049803002243235999862797622695012387139788420955444803223797492493780274589633950798984833826462979666230450941894571971060154601468448279192070014980766121282127438328696034576983401230098536954184385162303079013862272459928207480936436777412930424168153288837366725847092490658505469046343683691576139081091357689691704906494359126144411774290400934913203641190218246105507297649585042668365214859356479568547077356443597320719468263776136007223231815840677182267800921043472614072229623096700519990912838668601638876593159978979050716485134542957953230331282219900046763190795608923011356652403813967728684958759001280896362731769845752558299630923165291720665846988587905961497023000120885874964415856510532921059909346981634697100031855085055182126444560832739974109503726290911204521870376996508416611055491134770937614339930142451480943143256640714432794027586872111719711838442587799474174149935658672009854280322232243034129406513466515177398139313325976309083009639061797508358099093730372060959910750536169983849553458372466177742114430114267859642987136323591958980236840132992555544499486302988466390366419612840699909262054531590648189835821102592320898953281245363025986189222141073643273189273725610317309275047688023658950587949940951665237135881155746805120730435092348726684031540640067902600505179010247121045736601295003541186598719594184830197098027965278503253351987372090364722997865217300459550226233585697163061934401237333610550031234271571196794187193300961079989768417731913509487407397331173297437494542160732170359573192460592107584097647744933611295569376960813726036752166877493531560810206376226456555150785141129774271889453720845089311285493833622119804691150501287344892891664478888533359676625948572672129796000063050893171380677162476216539360951454331052331128578536315520431788522143695064585347645239182518972181030649916430213459155557412673246954719743853595750571486156109893476190080618037379406579807688269862911141892276686037486202718786236267195944720353588837755829168954722000640813184357357487918199570705619981135541541567198084312267212419780357716552797465821847075304946613706962859305187479283299082788786078797747906637723958328846008911894627117447989152572315928977965400272855257168721668625785277208334087266684836970155790506398798089025426724295252406876212771268071809304453955459054767989834452985263973614792218765261713181027453499667414778633881351088028652849068012171224261816026402619064169060766883101224836642489342676637608584193764765971336439636249438955481232298594796925794088433294373228479284105844169283715672416528925698611046958315299234734514455940325802738640415199143469972371458912002371701545719683389599720623500618943956063741716531635686985002398004109119657016959859048527479977461877912189232406446032860429854622130685420642819720117197743047033279678720881552810228805557693558218466890496528276872323548916839074427113532613568679573814457623100643237064819967997571069533517421692454986124316472609527379481116149095756844420511653838386611211661624897257678451886227941445328879322235817844398417807628458670779972265152446095523910315743772371533011045612020183325427375646389787655987491832293520518578389006107913543617064643628259813593756275126381052818513439777101086954298531827780054071121250818959544944890765958651040087665863127295710038244857211420268467687104087129530803268987702404508352569957107673304579236537319582745467979391498810718241702828678161417929334988202809139281390649060433207049566080661366478386651179245986890670894360692365878240983349584100559612718805331562460117093355378894488099649297636404210562439445637491964293531384664094069344690373773038395879977773796498932448431399885032638308082865920116341624308155760336097243924970680345986018426775353271093912245794153446537117092820740392440795285889920799211099205679734004875041081573403741270526238632656174998080874479056962658414625252877009438838180637068898320026384233326386387499382343859676848309932237361275109235715746616083843872830927174318312261234543946499620982186762266513315189527966122312377947432289884915723973154273602175790294373539245850040500458419084822054794421755374818202533530748392113782995958793032652315726572888969491006855167618649611870860227715147249666272960925431820236601680200873588902464519996950090820578429425917334272006178043786619279820040217850775157236117401949562452474181080789596188737072860854652264098847841368603197516725739577747657546630232544168713107821881558304155540948126765355562121631072910135620541036652108495020516900885907996734289058558016039721286459186989524841951358026465308784351830652783958923524556579295887950060993380947384924238164085935623573213448564895480358829806120127866957446721322698158427740348239862779262117660774127364252519941691299608481925902067290361305049959191886775539569339663699171579253269399824542311438779045304104472132568313056657049979318826533512766482919199098480669698474291518069375077439502798625763128281473149957522634341051388282185999359422070535791004603650655596812793503247129252463181870003390528846512081221430063157861081051433253591380557152343810504625395554262602961060211020185231293703767323600442398399634504460628390273489592898581727045155559867186738726174243968763774940573699264731977679195374241247406514588000675683833521685345608971436752018938770910475203483905114418555318289352061753759268216947204809440290685963514704632777012061991143792923105334312178654418950178902027292682884841570321393331251823116465670289978254718791914645141951692441296374509274765071027931613624292849236478472388445729081941407591572216672152508594528888689368971713739933414410211621609188933436438113801651602681374999314500556357176621887281668096830635571886625027345229505697193796631692203754751630616834917869280479104489940160542109534068528498560034697351598170612585869323533360616119750044801143266058248167721868187454519008603840191165699319685140183229572962520585353417425598089215946851869304666741783933973446419686176557284108739576389274897070258962423663966609793137445319579132659709442566113512827530972439084845322026158951608978882782181276035354234019199517628008551028926491919396581027654404904763589646577318852876429093269746234613933409815036388717955222177261879438325799296009954693841885355330815219875050761423949690743947425513970383522341282758973258926633433129458551232712545173721708174648012135800741872519580018357756660218005304795219366887497558541790521275232180364776135188809958373757410817473774923056195460983944673106922048234399925175398256936726803642262402239726330691862369392600191151317008258075171341724590739320121526777372090140865232390929666595294166490657895065752898905493249790730769927109839399652505227773381531829069892994224898546916015713262631949562325918026247573619143443685398005448781284452441860486777620695896014114390853538481623460255235568536971697664591421897347313890728512783909675465600708607244740305180815414707217928097486758422714587039015062479418619114487130071609915053452424035124447340783327878589373204938748626682371866916927349019445605573488770326634011076370910486069159935222137697065645006758154204465869975700669154406087920059762104562500738813093235215216051069144258982992743704484949174943311781970318274627699048624783314359326639960435331484801707365339333515764925703654904422312480809399455943028935769693969093894584756144459309115192262739522938804122847053993225484455349866855402617536732317100567051791584564068997462667384364855235952547991367733636375137863604139546674681620542167223813235187299988542433928831243569226963371853112193276092622463543061608391652454566716121995614206673655206569496940161569309459723910891189606848382008205346721865055073310076448329459000514419895942382856062628221542141830075626523723505160282828638874304591165131933986037907515410840485373317588652805731120486736664213787263337218631610770035318547164212381284322616193827012383416930768336222115433382226715835074535513339588220458878094172458029495084893724940236283800323654982460109811274532726847819132663522555359289236177528434204203073386506053780524933490579316128160713621070425376828207830148033086960880542099718875683035546371453614827261788616746311622418595418472949256628739489055184363160044979073831782749355708243464112727800322253363628718423795622700553271275815078474415587800457429581857660421395411191934846550179962839153143204857409357410246762303461918725022447906168851603130001404547618206216245011967762062817535958970951788017712890368522543940151622035357807401900417112107206517960078605537857946842555312492884203337114194222781514594693940591995281490866315623070786499125199283707448832476855703467658999423184898365979436348761512765310852520365522828013955016377926375945112788725835516288631018845470052813834267519915306714852753379522447444948411534710304324240530437932940910445264963241475962643989244961474002453839947886273767021377142893981191442868979992227939909232954401306808692586685514900833530927583286788014176405576947504861530241372713231321573652530056374649099985493161988921681574077020611967902176909414343629012882884880873536106561939064902990782191518424266064896504233096312396194426152460665564165504201861175202370901315143482319607917947269673865698438420540849994980736684284626747399324625441345992187080323400104661137859466277301854721312925767960686339796771003953640238720908388154200847438144583053954366700487107187243983529724242203721443341894619164476216815544620244566483569323960033493230555950986330883664040610477728496272119640208925179357111349023306637205546077077649136954492026951797760786949322748900403248559732400542134669498463912205245706887392042362598600935418961125873060144645568383501907859702361490016432233289063140316170645787588422780922148568205813184165187774891667663066934152292256693585949765917770271837683592661295505665622958589952965732931943083315323176505129346408523869190200274715807035376283730369423911639267323594141886624048087500934621340641193094497877314585826632452518855589029688607829969497690616155341552672641993997485791619636998015946402709463924401764094992723959639436101038295344893713369118479415527359602286775384453041725767218069715165872148705496991447280865180634289506377672341298862407544178830146256873111729584766953317174014152459878160877698649374323243830756736157376971221515589375470258469606980564341128467292797947733663208772928515379565156734741723763489932492043567041794804368832866370187466470234151372134119469903101176719409114964359125118951565021931207674669758960492553195541071981418312331118436171886757310291130937618092193916921777251915399100937909384213152428743837966595162924849139718259609759890449172115423757048253193291529561210054950082107716347185788291085527629890623394045921195287303839457186289430367081006053438176777273318928518893539507883515678895353049704082427785701911145621454688680346069204001792781655705885704244419644700015054531501780074050397594648691004388637311981447199008274690539889696724977254492621639740566569325801508187768924791418223822964474129378013239869178770731703471070687542244658287617328007037909905203708511688776354878040629700743006067933431370635847230702837839315150218261194929904700022184378026516059224350502007192598372416522563993491855026882712939864779308583482996995648451174411924813865482383614758831264628082862259999484736857507780471101366070358946593589214194127140388903079401274034591085018911675298556036033774253587886164616540541860708845733140339080577817079757937193516555633791142709886097076583340533770391504731431272499320691497367079195779696946932596778627816075212187559555146855948209168092507345423334419054323959136766098157889774670690132716508059965828634337214410976677821724580925399275218637424783971826904320485009103053552321500652442627524324678218369673113021219987518863843242479417999720877002565972076295651919031051065657071654883213555218820923578565946363004692172430100109264281088185430299007097058563692089722468917925044185801006119361959459991122622615818381003496473766929524092910849565416182600281283243769608242500795671276419220892387304891087195935554265691605873760062644886383746075093874949001512162036902168435277700748625523251982675360688659826547858315156049203258223006333809315313580148078339724256055142234455367896392329153747670001971176271314587409740684499830523864811298405805379367986547435224495079854121595522414160398161296202452899745035226696804317484080313275145492746269151839702905924359598268752788141933913510423287318326906644468568164462266651702706194533417882690538061279601956091050465791120941373991410772683603678291929788296506793235007282938935236955804819116119106290531913151070552702743227420107251168081124251798639482109522310585582020981090754730598017373186759848915833221603167073723764095024235815579106022003579262711748767358376223530916350709138991662980941916455335282193740240246891844528603321988402281555982620561091057568967867735760746197232524635276339950212961499749137290872353275013830908653504896033206099507084177162918239323317737688160844180262943200232499731339773979150088114579089202082810782251872257050458437732338931063480854380553892946945465890824095119048368416915547673989600512810432496270534099540633947343400963892844317616041489989534387820024247742656039930379246428228942030215991579544345587529397099956836898012938588094488011760156249257670316672342334730418754526581859612233990200543189587048809264679953457400644086196189689441926770198771471859232383925494471563830053793637190599626754940050068733294196230963314970149632186587864924596472614218735198689433357170785842961572525140670032124233674405762788676715555392991960701893835240366081583276259995183554603387559666579131858721904003246229874568778599299134105679121666463916025833989805976972395251396848291156059926332116435295222291079877791419440901982150629092893051906942030988025938128035320038904874730281384379083472705310148545717093737210385856004836827919040987317194995165819554596964671267170071942325610571838726392381868946332614296945845010369662788303511164458370867699718994715983806427559438676403497873582928296257651206403158785865089696533017665306245893967215113696629890526067062033271694714660354401585445338734556194661395898948855845130326438479240801842800799683282583702486070262155182599197166946696487190381224816572513595960281919319745080199296460899301488089476682551530663109904335571865524103903242812173236677928309032915369500114065926120029589977139515095141066618305171576131474779621436941784848280702965377789691585409287491114477532674875044247996461901619806575140836467674682357870666428996463412425249955631749083719201470514873319644961632564851822561865072364811424502084249902111465734865843737572185886237985163905028413376490534858286948701821218321820409900453514852191838005548268478361685687405671989699112746472407478891857482258859530223853158281017317561488328880623081805757073336534355185578025870270216241697928104626831820509337381276370694569694803310463543304345499496780104504584098458817248092418880254229921885956080123790772835006085770054251733850030374565801103977472001182858684160849473701025311930521249028487906151979448128532898198473358532266436719731411686342397804677731509406052396405011775336025316706396716039407565331191394884667598195838592736842853335819342485019035413694708742136400541473592902259629540580559695562511391943733151807918028064711507257822160568604192118541900635625281963032026112963167176390491545634013394409489288954377645005669204360626151073842378753328562735398793829208310716954179431403071500344245071270807789567875194807289833615575632792275324028395620544949452334925386208012988558053770123326398239735973901341414108294345378171760584711808132427011146928419296067547298538735605143047090085085361502638033056908579072072933986762187026790613223885376136542537554822618980443591765402165683080749282917941073253641704725238312864890792207245268373308974627255135449116031574516260506894090118793347144260214198315978910864318871067565890599015650485793496823766527247519511375675310178692700884601370499661872053483787268993884261195549971514986239131584136375670838089772395385375375070983246536591661281039675130893105087181171487237878914628053597357162651744384383856601630187742290401712770058733343778636444369865411706316845660806564968964030799538031672288911387190606287687894920457424953631566652506815236009715315596023809385605454503208837503473273936719188437838606965466691548295574368313136525576186524518238994322440454158074593397508495212135597446191308828201299216300971648015241378063072366921796585792022935985976108868295586254871270013193463408693872768185684173317122130604550094880952879878686744893522364709363779713056800486567014217648014214953398147101845735334988843835290306913649140182497914484974599033367664157604270451355873813061244930552571644632639371034345755898492595262722496974565513464155383398709226155765380039098693314934749366545789981255471428838337241993658371958801028002234848641141673092040020566441140587892964326001217710089455010639629550022576973105958481688624167739727985335429525330708671591855868417200908229452078325417553725854916693217723707100204660445751950084088825092197253346641189145877137240165856780819480008334828482517171630380689324503122027721134441039887675822084877259824887295456680172007469482518593940750854869555451458931582057673760378428203069699674020711432747494690196000630792863603621600525695878965762921645300463461513360463374019315158698307322022899648545993661367687580676580007329158185031840933304024651978048280213264403106936629765846716415737953820043860354364409096321389131578893698252778901924310784346530621995637697663993137329645087435648843675602340906466720173778910913483227804611729986072351715112448323317952346717236419736367235141705221379922199907258101874826598236955869208944562660185128043867233286163136691945869500380336847972172938813000672118293467108123524153937115682710226948842577817290464986054867338530429162869116164343387651989954485686232865740171714484718810941124259392223432171634484774534829430394793215176466291764464268363993013914998139464303786168394261916286206799082740826902012183855538658604057003554295607104696195147854684310246314765928509981080213740814104162420598153846467444014946563842218190146042440795643564028246437044092044939347473974916560647694558149169053037116955890239523558702550681589359504361910205344189690570765522695978511219543714087179068661538189680561406512786260656327166486205523817032842018060002720762311472713966147391286793667786317799373892690783991396289828330550155486984032276433254302734033036426579492003015551311897346499508960315136728002224629911094223481735492823556143908913371582870389166268682178168404216961495296264801703586330235927316789001220247777691379617538445648629421074873532602804976542771140651225810951579573440548658262132076935941919783220168328802538182414073184956779577437895864999708903952508295212875883840294223896153869832657150451361384710791339761196177959059143097792077216179115462296287672990522909796345712540411009269207830049555274983834321043607352614009310690758742429939634628114752666834988197319788330850262835865326609196462491073988047535711066062309970263133235723639516563122199676292406637936861331954605188766963479924723164668358115869836407267732506372669278333946658306934460715526794450536941668805167683848322900254945393476656756940583252849643649012377368973253876755316198820844339435662517243439098331968622903255582601132967686878909739706518575122221896769754646823042548902557139667523129618633044787715611080171185399949482451295757600823752398002608706484952447494911491529507944755381074887669411153771956168860758898925630756506379499168301937746847946237590328319753738459189805840097165551094502989656296975084735764499860175726689849269203382121804928297462159615141482196571886793945309398941725525716224776092229120683830777503276343925569681883654048915433643631334225999076574424544962007164019549008473772591760402468451564070241032220361567081554932994506483771379667443466959153298743945789894910662642649148828511986702005837527938549211395966681955976250557623960476668648176360196954828619006656351665410214848328642216068626043178646335569500029775819390057479511635406430199269071584271815675679032146670630437862190372677465859481336636308200712352688939065413549798197321122527514372944012439769823538950666387017306527744040610402947297658995025528568734459292564622832428292670284315395503748857944284448282091300757482691826476549523136416312909176218976839385351502657981173994468047196056720975404901335749763991815162997640997223647513465104588066301691788194711234634064841004207656572854465358937684885988476991504547750390434671438432164806017031298906112732808732775342425723997682075974313213923308954153292180836847014441828527375626145484409211427150216441753625059319773649774178492395111017651994676746295683001471131023721960322969317155285033351246723375400268236765732901267099146089597945937223118787432978295242689963971542802152987894383598535181921406361433930590384755249487257175941066801953157228098273281740085061178242288322311057388684684194543038125396526230399831599342111352127738477343990341369044134668543364396815519123799620353011742454022209794551452357649445207780790443418995075070574932119518388644022680608721025492752223720409601884334463800083704754333939231040652976246743067059660772786359656467522144214676036505412340846903223430470843723797627819198816392737890394328323758643053314726639207468322103772672847969176747672942259753493531041222845595015553496087457925829493109536157996214346664714818718323700335251832372859616935481178734124290102186964659215440048214235976814640394001839101035296037967059196727006218556089545207462997192961246041482272981908623864900933814576342954291459308195945721790912233533148339907958900834849145518949530299736416868464296719314495123600675666435879764812222774888181978360337096765387391248421935602372109005176844625001187457319344558906235468533124716669138431026802321019529883337455889282846190504288358499676074315109898294265179713945901924261794346839566421360803292755913697726905546327807968912588539027434752234062631968398074076058689778100480585964246238331147011848206565552480083367799383687114543197352075273182546822759747870578255172456942756994541191318161599103840376314358617676673161464887248121098555594395196770653543818761658239015062035290875873218505528040329683611153338556951868852780534512287142284690669080044868106739129928970059482860322283653263065225781068542850576938772988363045624041433256066870865092156413051315264365858001593486134448853956076333323414742422934350527780443792687518590204233424074983908261789245907725515451099288475435598965032400612128404210443206323278441699929347346905698659123099295127480483243310607766258035902626064274620112427301641540392432792387736113867248268769625498937448918579820889869908138417329627199676481803387768233968673145258306618490577089552265818611183059765600893863795102075196194325200155040118041719981281076589954015688655029462534037331393314699294002075177039643417636643225690308297894108902875489045602110026234631909601437082375821638824354526193338755977581831165505405416101190497707944466402190083985220184534466466184291050143742844201145050927492649578177843081699493681228517970990028119729013526274744002134523351382070893796486246269741809755208690098056147808726812744906621017693819428320424791484319298900900067410152321344065555904606713223389407068352158068822426014355380800290706709468396700985093788408255570396028539840086479063519455961816358644778060756951472616332695413645265575159102405152408021631043950646876508516331488496715300664563629454061722694567406010412810855728596577877905553625488023251318733822359387646235810098883012161853632962737031309425820564909788298709004662141470270892009267019467596548903805632094392834196557501832246450304691576190104629960290415163232930280546467665363318535803773069739654256564840879084694535569119772703920406592025337903453643746278630379624232931066862805625836002162579803937402212723905589182239093009318904055555832707394353086008148745482331138137635600911177140569171149386897668077997465793942645984695448164702405658977427143745370076971366249112116920865485868072419027089587567173138928439215821709926925749545633022464541574986315223851627136089920738770296281309253452342729631508962188875282417940205626367137429277190010045599619157525226031078693519837636876589799908306382834967489381446483083031743232840389703356965441416557112204724305661679093710581435328057298105705507120073211298872281183459984859648170671836842260414997329180701179864698270185585988712281139824247291015978641144508053461896290300353642485511590618837522500010108128089886932968126572513751933858456349492233664423987036147399658592851653624283721709285330410514526177078423556228128767202764440176081811417804541130917111875635895822694734210090653452020470371657597051613342722587418046817396409095171702350008176104984720092784726095528190368619249609287893243855849029035789997413048941470856115205412348071895378689473429478981943600545458356614681895999009820767927008460727855870460250599437135200392897390310552753292022638172614406389489297714882610577974849533177794486916098728951688500712795277901710984867056087348961424278299297904758034648942727631958873672280936051869223003719872898862249352533116547051733664863221031606676284917268305298550796328818583624158370510394260493487482836233862667651640161912225348021040917055025058567700696448276706342706225312946829016783197092907775009305017307437757934044382481547693407028610494017365526378406101281429849887643401081334010621991862864735616450065389367660426444397171228584358089857167323661648400343269106749633085385414623432453911327321893828323802379971628040509833687876154205670699434362920638687858318281112822904665081667334360833473133513847428479239863339085778219410063599944645454139334048672240807489858684416542354613820321522986498943822063875510597109745276389252469699500720881384122505699169506891334378959854770313455653824782606713652986047208300336727806611258461112296306507902097690113345370925437673687323231442804470010215568292118069159426151763887528284256718289479501597242877192097915901834679154282157558873976497964222071161669832966009903923847337700701733400724966943537093525148162325199894817722528813936413832331421627261935684683303942832646238859138167248545785004025671299119354381373393639686941129748795265654286247364243715217050865415927641048803284299518189332434918119686646774332814293459295576044624523399579830173601208782881270880158848168586649816984623671082841479586338367583442351701336683860227415359985903629390046901256234913840072977265070534892361282410093216222694864987301305324848529793706198582200371899063126886185821686566775499535564573527379303909546575696480693836661913571724883193769378993928834813354627397957802857533468587942785491449886503227112187063048254173453657847715622537582293216533051720496114467858447847348840480185352908952425615363399821700189722432805062645777395299962845901210712666121030038389406208978580426478021097550592822863368331591851042934898163505693150848917250107658767392814099009754115345785967866275040478264581790876411005841144473340834489533926765447987701062097919683671498243084435287612658657956588242176545538599836036770733324768947008039369649503767715632191185771151670086245429789738190075824901287284757773937486643815675983052172939093749087279213012274853249453666462150648118166807260704333809922737013133967274787079501134809750871914372553102364819276872807494109215674124923580689648217525864978386365923486002675005933485710940730254809086827954496465797448562638046363480453986222000302585255443076360116181761330850430195201741834998411768460828538358705278147083364062490608027740680137833858484712369639254270787328969623212398216403876031696589800980382208326190007395691996050502857898887166360808715187577041772941152538853102088792121775398326422114649753418792579510684152922272174208304086648667164333651986072178275332444458730989971040488397745262383867065265598068799413293333446578547170497838729518723632603315728616573068661350504184954420354161361813991415637760150016095607963816658194771714217483431152096684535987861154569725905248095406444403790958220763540624586878372643358808694354187465930629425926150784070520559665164359916035397818450138546216618032673113583788821713097975597621203288006967563323159928348961701540736127689488087608966237231715217005374339222142717425092047286303767684660374612301281250415994647980626455766570564121225593014217032676399825913024302532290547024299444363721472502098059436085877671794946234597729206323597604399487079493930043795189306694654329012929427239373645526123711950354929953765960045825688163890401368891189562151000174208805161430419852714962946831418865539457174039061020392746529565779794232884961642500434565811578094362636402013635501255965783781238754416297880209764342203279919621375781811133142417315361156565645846824777262638568803460902717848752287900884494146667687574303138730416349689329173547324877840388475407662169506098759997730732163370190284329710932235338989210963283314342797880005877727260949116047184071353417057244477996282061215776689460263220705335140343580114574307035966699547522725567241658713218581207004044758250450523716956278401993543060661463882390355863217007063343873855443256739380787430410136392517798206901768715659502381111669055884009606732534590758902673142074422074262987592964106199696068696860581061808065095587407803140851370033588290288269376675088841063733423368115569719682078693848810884561489140747479346043488112447684038148938480589818507232025972655409355026709621422724686789121273775268066269358434993391697187431291682779999026034844714649816486587767307190356350436990698057508740273144689433514529548320643077849329664179224213295983470203296460809347304893089805584492392237912223664354754828730741118253571472098696053379224308973799780876537016940384557543485165848396831014423721733221200918209715418222557040747766033763663909456330014960448614232805857308822246507497981049810460912306516874761994798005687912986584530876217310630758462269957312952545434831876699741782043933535354752013639422247103488940498537850579824680332461309059316218409969980031089152381124122211220220569552397882012225931870788520028324603220404739145282999391238124112871103020437009660415925716517168125821984262381010156524625409216429069535830389010035498341553897594537218765962706432443870687076667416985018164104545949284644675547867819955030092824340551291294202705486070411262777768705040172501970935115645562272503351723078705750807172554227208322330852576532320386198943654576692260680394745098519737651626848538679500257247019917748056115976730790826817602579150719042189903168158145055207281005863771365555694368043244488875885018733290338688590288043422535116605776568961061823758076884893760394128693128427342391995521531842136177131471128430316907794148570429360884288344416142121991519771104082725804563660019283805442227322690764201316329225936437053878936477313053784971278186978339350313443287124088035540152021883239547737413445147214020652436570005398041806479908695330054873748086777571847726134648042583461392351357483544174067647420066937778985888251156792857168175148993910672642122159422828292317877893684147711111340043598521035446200041851571945172081689996951931670299896618373756448737606048734558303248264754428586830720817216515875509787005832851584069793894222091087888176210523204093897496043603803626595716068059403358793785449630114504278579135256686063961317549421414637847792992896848355224363790119682046488648870351385467300010808003576155817109864173785663609604856572924328771072543958084890799551750327602448549393765794840706398403867303319049531693458918105133657876993901611542085572309026793152381438188543124747545759044199959430224382493889761578903525262343676458552007014502515445798841101158510816165465399558518381491419691552506066919376740912771925546585150539863662116182748046745853386079128229221941457232211559442015611400211279648098782634755564139202462428978481513228348390882636982367693259868117291047640499125756504189958194024269755697562245954160421851208722671414362314532647904169548314264005829904784068397856520470137807807286360190726021222082119910187691641905122505284064757160181063430740038408695422936877146673010373421498675404271652906446264976058046204244572571114393298263386367806600767557050931619580324145316478548880289729314954898613909920419038997857073602092623039236499630463663090305194107846875736816907063213881413652210602162816109733794026317385347893873482073681477864174956400671471640080562263698161018258098079473885630163754141655310894902908309584503591634288374869796542742513389582355769941659261885279458948440351342198068606882000565126121538776061927295004046055939541130999823053313367339649905005099422628497311301687973456643217509771310417864198044150204618648616112902605239378522341344288104334777291933855225520087411997121391041827927831445674769827842404262073980278896703973267010925399789069177214698411215055832286287736000608578060727686560396917423626173028986356909323122149654397859139471618270119582323186557472220915412312601087108689950228757738898746600246048500187651303939998670411149944232249422637999403874720848609461225722084858753617511289807771523462943942846292499445208284338564255404868092555588089834194507504227115755641517177765023494220123867667030851566926687702341285568558544257678932421334474787456608384119926627756350598566619956456439420759906663998000920766575508221580910844652316135129604951812587697092864497765504830130872676466765340134705340090244542466982012347486343698655797121994537685078080584516868132481566686339368427746564130070873581526404686890389943147499914381118069703767168998028080608995839138477559730424547607363065738075923368837979090514330391384404854693732998527536356378679039938565632932527946707142923546777089608469875590565019612787807357551690213161708949714593125195138392559856835812899341375191476014854612385496012143705765244341146196063791169327159723448347582202039499299688859913715002251524450137564204426000291244358676580503216759319518769695368711201231824112398251346550574486867689998457118210508048619202228333871782953676372804401693447244833281792511874119708736823144359804853778263474971554208023787875589195412924217264866807771815620723430533233026867729978520963363297532045984666854822475365584488952611214302317754689083906197111875191168119121885095499877645285057296932995017268240267723909831214521575381118482694195419441525709994313972785410887831095985456821845394958548081762798109161345669732710879465095483448824787138415892490528092497998929340051982529698893749546450041716920369467176711185267001590500851237645287195120288475855162219875538966906649207712144908606368362971353664630513736934734793326371440089463207550436876067969859302407961630083486511482808649182984154498797186660740942760609701211435535768890817613383890619825472776464898587283958737403260489060025276251757014323352607560709551761566952734516595841263581507545707896168724512276052626255653210113598850407707968795160359117002497768686943644977527468390718596114637106005226848361924401944288956194991861471910471612945701509216182874530882837486432846515448255605319623417191531275006989735386364569779345116021861186047987966552750269147461008095446707159040488798954638065850886410388271016107594907544480851765685669973964934795906479727041145028467214607903344036678212408535636606344459264906424258940081866683929019643985110688206126682859106311952121950153119926463943982714639523496874298277782253510472522757299063708639965079207299925283090022140018548567853554962269025362359025774030508365556188328146351530486897557604243303254144288704920765358889957821374869309010679843616786322992118796597217339958405156045747215902863648783996667767266824310866190076753874658430797078211253835977635179493415379297788862578348122432375365870039769529882094114922604560572801215903723656755221772237868504112102727885615074044607658215342791807467351117925406579379620328910358966847397947392513860432200965404442492665201401097561655496421221524625071939482882288490055195843284322775975452093745200550813190725484673354891770971978746414205700001037895258203573611500803828402862602730127747700504278702450026895484399421477136067665379189286231272101512043559103647832606537529083128931486316283874394048011766091877365103787510434114579624979185188454953849248429530015762621306445581538316062689674579472852217582068354779031058489061449336473554047966315391295013404193374246659925420702027695116987975098339629543589366958522916499308335660698190735494244190965420945841976107110439717526219024970501263063018472921973191873095969202213093853339087498578192746360717196490620807587564335202443909260805370456313343865744010762269959225838679376390989335984322861588196819933319285893656140649816733996217572560485962397619783673608367221139155111940335564543204963007800761784246495861225574261788765673378383069099120089782039067621191785630251460651000559496610642561550169977546932027472278618522538200975600591739366330338656725922816736129667709340859797582905945321537875123782650216432105969647614620187410685378489630522549604153248316562802246435131840201361480835556387374441177425003313700055484969812227691058439861597938198100721630108390629687774874277065668319095814985809710256233264020329300853393845645954265669344827021722949503551053074574706182068393951570094930789958500605066703545939038803946417086713216104425230145124102123667181428474131328565045739523345617242579956936137516985063703160264001381407517574805295744093230021216552850950433567403617439336565719050587500395465300492784977185403169583310044051192470097241803533657536400444561633955989519598072436852243546824086908928926340091034452291305970688415859276315241437148343792623503340021816976806966773129655695747026260665061716152887848403119223938236323735720552531908336116329166967840804709932880100079226085422260717344539586226692613027430644252657463587573907344116059329446081514379221973430001425544262122747591238809667392400614480686372760315755666634570386433700601877525861089471557919824158481607283814521878676519312196895051843318611067759315523777395951270425720667833014242370800667985564574674555873268706000118183776439161890168571694894162450206505290934711276424492300857061203769564624992686697323513368136993643768527186601544305568816344941415655082608073784046203808934924638759465374744154665947110592340456625145709351668147008113620862672200240123147928448515144092372202734406114525135312678455887902875105215597555752666946382391429772172666023670116097395637478661960249137814808551594574330478342023684727202600067605104764502493397298213859722228226330016484835735382539682794580925908361967337904040314150487649885640457411668942081199943913194315062113710773635796430309624649017777858532898835804494042592927205040568642582610921693429105272751424039009265571810268606847686840695102330267196901716313916187221318782598302182710384583768024456583369674143430259851722367500665717822272765985457976279880267663514555544186661692174873129919826605984530988272617099789671681378842071969084836914350791228740977647058510935990772912547361229690550059135408362356758374494594230301719359173179514849341503630570682840068267687300570999706383094986185950528074974432638241291371731833773241347423949715371934327062482621239039584217336239801085423268040808424185249145848553349273296146419131029984437993117242194305020150891707355889955214873819537020664270764599795441324142566353174443967360041499457587673965451649008354524730657351250262026872209877323036268083749343417798232938217767883677427033850360545959481962556030902375376834395834744916921805685007710270496255070798713371457156891244647331267739261393562354550761127960535154262039856514495219787397656186879137071071595913499732231872553211175987705193130380271934560791717364793696178385997520922341770506997165436509834252053539775520535531872312459777487596189733447997654373874989530335475783337604903719208452005069841257312430340910407665197982936317929703591745050378654623185546264526347424542312637884417697096090817781904117355568227567173264157464096139729761427432246172658764165799713272681686425146036552523096906252462369004969540026688250604371534626123008648826469200399834816928549048398688240068378388775685289788691621305179988570816547476775635759899936544975302090938449523798115333182524480849754918758460540345109450202743644795652055173152312345164212979628613312367024108051698737134678382172785070900992508708580651683822357121592007980783384277719219695816607758758439806382125106390105734406545961459875756869357050561959750423990289804612218732941210922439229818704391745235470931287674337518437243249225533099541322881989177770515926814286016939836597195512259451389868081938830372221533890834759752180071612735465690255153056150491125349454670284721110022432501840027404991402239750082136951284441484865494986739365220333491171772091528252460558734913942445397361025238878930582066593055577666728193751403332059714531939270456234822113182401163188693961252656016740792803994400526639095968940170628525478017828634265424669117055576162556259105959847555734629295284564553899258175691059877675819733801659811682381746185348275503566878824482929797820835699934829211927549277500679114528754036050127297753259188177325733759725592029749953747333871305962004541447258491908331878305702187517989771482106028446344940052970745699170581244456692564628170979675139723509127774553925403290597039288982779800680991991084832736814980962579371523692440542961144561144314913754130243218817927794516925534879257483086640460038414298320039103276155262030296999044003500392728798623559782028469682067996032899758229959692248256915128027396744020771396605185127326891580754459697073660104376016569323338107702440666244857393415390322542537594561987961068939814352481848998909697428034799677652667486342838101883632153394598790978201846330069908277676554878019967156967969185066631703003764115149355611481908231457929556934930743391505123760829210389501597783149681319083100056915022544526231040428344236227939726924819158616341072352652568156450479873965987274598587484613820201208275364454307149209488790395280165999652401678812680710343243363441153804082313162515379400422612920035611992733442532917842393942736335060199680750802304275470390211353278295422514042696528309420132988888585980923186236619516799705433172403774258387787900901619403679617366439273334893719016360994770811507348727981421006592369959041504269829668197149944804808760308022574345700738320389754075497533204007213787887332752190145182150965000220258785856241782410058581593501633533434132996245801192608954702457463693933505650886286564596561330425992123601825411823002064534366694209790455549915050792335203566773371806144039096004575601180710863882151158293761879248656443401507740597027430419810672457114899901276574200831670778211810747321513865624790478727558786010253521965232678096610363700837240535657924991833482271146690003009455688776321423158550873145462282472391480907045563569766388519918193683895065116275926294095018252385886684537685337120966414049186402177660299727394259904621480392676943574724550428537779274236183931766948334634416473003040966240197296358858753910952857616260265708073758342273215540883362793082065814860167196198042762622516676237531372771237407536534463952852015808339861740132656603106209816588959033479930949567272749445759561734222620246389016915505056178885670323877063554960114853244324547687936975296795472183743088287546507766382360109409286225243431128164990165047571687194895494908751999483941725823227692265255469844528895268875192682004444995367368395758341648757098098881821737553575959834010702243831129723086399300458808049474785651978262173354613836246241735339486689280270039153061822298313207349307198293679878974951028649984082431277656989330359573700431129110008140641677832817573161225868126063453897085187073474104630700685319557849205914003897388220262831786402312393217424534449209478072583510735685231000567956354965330337297784422181250439010673888217386509121858168356372976233970903188025985348433918227637485661745563079336679356276566964311962903177444895812270231252947569706131418581363796957257122856904095995896211261889471406235983278908660049465838740400003626622824499095374608489013266076896210337400881670750381634565631676554841415234814418521513306369578747611653664329776223774308172794928573349935860591211238010689258849510303773816724268848774526857816968847556612668040743306172552535766347731384391341179054331486526735946256202388540040337419049943241157630915329812212762657255062068515508899958762964597728217615677859593775334828758302682845098353749756706093903720944859348068661409455331273808326883977875355941623128684241337414492409751326482696817959608894094911949921546072183365269965862969605331868612894818850461658286871996062065320300781684023335164557805619355948551673246972282102354254385722883339069994111940158349672084596583935359128353863979079826756944923740023935615217921774493099619168753978052974128462771942719592692771930176988808993322012789324450929282869041623773927916342016368956446133053693867359675847117543935813852023469035770527080135791960428010066899369142650671635986233958066429638683474331889830986176830813284659219018556870394276707219566796826284125140989804034333785822208622091648391118733899508867746486958675375854498409532430302127335173667480681292454244164575385731617600910005007997432258464561220777912512336233695071451245626656681375810566860970418674401875850231670464469565487426451803152958102070061762049742130166578649742044824273700678283546180810151520677714090242313777047248283607770002373276593432744366846552556614928264407723336405783127650758245426775836323416136440343712385102293584963759323528824962468835276961006228796548659999886740381125335519896888376070985005582734350509609803749818115058274467404045208880010272536389839657157402113036439878664171116334079587647475491543378689729343072033025137994536107179253231275738500508405320229659359479272434950869961554207296202516261795857355697750168765473902621272592844429218866117901619216158346095309025814587359195440766798377390150005937459896817418650211082898232890216243950726110619139018924646215740673595348863693538506214008670414136236679448176578500096084844386690714347279174133695929102356953853332996938261113546435793490596724319706103780367767267189435072222656925601713724447785173234169406700815338245636369035873069420485921353374708335174839768760210202792757207935186550963200641327950558524311774447650964398109295810009010343958550638169977475285850107315744146089578273460710561548929714976280752904196411803842179645529904165892315224571733394294117254972809719465061058041381783219419870180847452598938259740632097460367639389537332797701669350577243813542303969227259052844695048577507964310833568431142483268338513130597656579614981253500352064289262064298957239737122599473408521533241097431506828461598194553308250746748433054822358486508810057639914233744993746039484736718861396173579110201147845394130188155860474669151049764427701886575492386596075365679105924514327848092946922408394612233186001660781639217308623473704820459742473756010982649683437364728633026618660963128726097401727639278031956908760029404133575403669287994962210540498090787725493365614841985543076472858067060028783157637750837778647047767405835444238008990709110263279736600514334013809762054257919402401758357060306029596720628018427705878213786163162879921604322137623167865670855782035870013017838942771894486988787155666242839672403933869847512917979395517794895138896067971407823131401934887107824508909157921600288992134673219300874338222901523064279319498476722806455520912803785679726645099921908580107179538105269126439292263044187999054900737578131039351901505374942552854579121285385257849283881483879174556377343581390493355559216408943107672854182154534510365335147802381579508585228334926804184279037791494948887905956261972579951091468621372506786291974651143362369395912330770021010227868807931518921247377272108290971365643015884501677268776337679702396632298716086850962995556785860692460228269326640841215348362568391203510518702517892725934714991045237384144679638083572909485935274193541449736753868170562558097320622574659423840785007977021343496130011405339290564020403585831550397788316152079694891722059235286061468442841123151516242893922687754980338099704637588538726675569551089129845665310703463968785015789165064345842832063932183873567489044442300659468850335145971076956665153263162696445777487258282510349905410649024410725770202784083206077773496944950684232251187320488254829594454426193580444960543835316057870561928579236779326716849053951166543626580957731999070568837073034776231764451242492161680967659011288792067851248402520637523182640086650566334095060876353776383399005215742648691846104643577507013108050339882017904173850175355574722076012911730970557656535502704551038637149922443102465566569217805076747682865508268187844244674083593264360728279618076789441080332008914372193727651075829481764096209355501671097765702135515354857583569076276994170310999120051300355177309545147436853071565982569890623027882228726163188401879032864872633704262222920392004865457547616614192553035550617798866309176419919918180662548930550748710699111038818324998763290318525598959797296216588960063351801045978487696100253803356918444221010007733568192145897578587463602579802695488348058154630982099986640488929810153533341762736838708765356033138697497599592991167031639740673112403167790665262116981635966355247533845267405324797601859424139692710394043976847870189644655348812098367753480293294022611772751672709914189066515708481486324541732092750913131553151608212771731270055688853466913997915495254309941169975543986065351548181832569846228142268033336173519483779837003961270240390985542239778590098210338532157734507527450354894602549003309158992127207343867429617637029143924636551780997239213484273588532576681391220084217703780740647159557881369579705833397188762873628968932226906220344959454465124423818945137314332824140933755753011316576470218699837438900078788735728992637535230391238303006360566111135413702756321650941895169561980828025207968909324045263044624107952820675434346942967304727350761469479297292892814493977491844528846308372437991335167354588249569593866938755388291119376134225625454822515361955181002075021793820222668222406256809274760666807214289045304520222588668249319709526581575622453855122691621877094187540473448403940823158184889825317909419069572007088778414493554792823252680223375031851411665807077444915164959011323600172783713943548109911601346573207799969824315470122930653660496335506864512234326254465264929533804876788835387281663506953327876469169917412869486536600053336646857520093494701806523878126168336584242941513286869343162988419546080019607543450700358234397942442586031074868138482506930345706951941010785424915652116934173698227265965358002401181826794032797252649084184503694124065509741172214459002774621319195260773546489762379346208822579163587378750857715369541131466467775038759185570293920958758757013919275547250097762703028863006002384669114211578391930501254338043909992043895750258594642501764161385872343150742234610900265778011891623082095821200036422128433897431157285537983869343085458241359065436485643243556506569386640461506840393996287274722341465120178058448010792499114057232711336860666959443079362033489623394675829199032635321537462411905057369980344765565448475623474287408555313073124403161869697348528956039678404480507988126965842097387322620921023349372798962451160994386381130448698837380425299517209064169574068343142207135893421771797766434282978797527368550836860252507123623911267698984483373587514559012545451579517999103212546067058309782982432858539885523272980721674981546711328113670683005711579735951353129514544208147552936488481487784392207688609662158808281698944513925205780961542636643329220513107110835272410798762657516999384934770778499793309773110337952934856616341518973004432633332899940469305175538760759313182786928641296282781048866326308485228048420159196629678015849123187939755056660386521328919038150636202349819311770716123811523777218037547020499698625459306510898333129151213394459610104918790720606404915763398017892602042523731943023762106340181143939867569379754240161273229554832729059162713957352335479806116066447933133091590275811385858918512525861652592772300987711088474706108628873712979015286598934018866964001969160806566091424624402078393891684493260574174301178608327837081750029158846596825383565937319201053998330624673870037889411244414608021267582487449068115033728347829605384666253071982244942406765124485854335430687951733093182889065256539285193965880667254292323465185121279166682448027771708324796954922018511051394517055172156981461258044797586686731773621406849686067970046626865481469703946546465345919890562572399168115023376098936346831039787729864045421138164097831488051470654232850659088091289678450867825839726035394221611606607491068227447005224829933507622460979227289561438727054146667246900243458927071543920952451799996200750145032465480461809601317109773999480755860485430467559246137634566493672118218115309983155834431566022707749800698845978186167419285368330666731197986823417678063049394059852019746134136705083332679136044800815728871705314885241423378731795522675014254897966001044245829300228000456150872626016345708462370883185880564675490959758837645879332350905947924018393923898663723459694472521882538596683296031063191453727191829800782062558262130977249179898548723809441655614034931704683753210507210017758232400351751301749926616473010276795793327672573615012071905449207368043755155083689370169745878790137923725451528091791271317420307751520904672302098538094395567180181588508554927586790897197374812810421232323041079378515138125403311611050080231455871024042118338506770789751102388952077599135797219025690427872242588173072105511456723640716480977649811112526636358744435177058962531688275107465815190960248445646143386597369970473614605180185659403770177236179408551554170148546233563019943350588924703447881240913259399235627876494709990484032223714121052401667279005499157283610677518338908020150603144815705165406409456881302395371391017443668817192799628394748753393063197643890492496512741578744769587500724337023790115672337881160595671083630756007595794487754274817244021131361296988176180016914981936720338623201857967175538239112014510794114816215844591492182500758244386903007437138032889260142629067542647556460504763522354938056716361697532031583123919979431584067519650714529339143166531663126749255795815642298361575411148624183142560143642382868615765344347005928757826492793176179223349964068850445548885830660503157963669873268237688050129254187906208806461703771998434046959694843088718894451841137782082173235591204624651309234279058561309622750673826721107948719839931395638957672123624905107486791248149037913540233088848748102189232365568612465007713427608084669792785526819952633584768441793301158815046960977051220857654065948539167420885904568955024798047849882589991074640411925522768442165880669326886979499747567756664016920402913457659880507293429149422657335858403195998191054222516954961691521644959857164794817265398374962433367839651932563265795950411856946748550357039860207253678628316835929863044686456281296827628635572888430671614054287802508934631194035558466121493921777033652368152232423016957929299918287607761006735240661614207723381018978473517078615920328781510469874099493424371216759159788924407874225699503253795902056443118148222212645394028389985501533286426198734853570678011392301156848875911480712401205216494503363836398149458888597938055686044648910073872891362871381069820181900739315465921051092072429767768773930688298188481110383979269089773055337239719644764793730697094353406290574025607699157788745386874316450037271610400754468919024801568525418655101756968966613821004740883584253465260607861287367657587844596899587860907035398627283288016023679505528111067983029665717372092237665122223778835324801533508991848846562175587828775673607346250038031610860605673837402528410523305282983298761412128905311565621025545121928138713667646795505826277013299903986634289264386503438379265966674204350476933065721002805379691394815207425884805051224425640181672485193657586746016203824494481950373749950014731411959774593316129905412873743484398211178768741454515283828761654220342623191146386432525398471110116537866202547599370853862139861661997769469355904866794716571170368064226411947670574744356998308432919024363420957380831269126594849302246904843921522227256347341085196895131233858866339298540583281513192817445718813318559080618698973060540769042843835883203024099909931147153482944457936541500151165397818187671453512260940133499631622801482039155317852268537667343460649955690841837125771521430169997885479134491909347078598584941462608947411415859895196187229269008838000823703274836386566348610945188410738764127508640905671693381016198267457005639788122723989673526077480777621168659093282455023051802447117577363414684074055069359872329253153727674600304633412616247562186711695872249167037691267889443797649573557832460691386875524962764899292747069941723860083732908257908952996740631315668811470091380083253211801163923429675535107760533381880163302338074975783302707075797807702521252221891661653006471244728310980989629909244117849998874841528443729452363645906802456068564886037601422142729191712344308670531049182902126132065871849329273324698557398612792991556353577811878823481535020295987899088472850646864459135619639614909391101570263124025305611679625791420250958124842040377906078899569560309263885215075366969928049554941901505835353761169400626739951734518497009659565894588473668648803075321197407329201810760037671525617681139932858815983575715742298040903470226798885116277660109293402784181806057286864363866644284041479489364071899453626057758648343562406545322235316266735797854443480327469372003555155752864390609200813786159810939978173464565848366902244368064286945071439118599129379896217276876361578887655567380447417276029007791131546245233968030583392742461249331569292426477891944075208106644200510559428718644009910553182565246976620784856810671748607641433292583746632283378483963202584151299700351328378445702389891184871932746164953738096959680452833033246543898305016607290585639821942960078264151765355732167824514409739209680223913851719156706582272936645003226785454950877029474429690800550307300368315228909697248380224830900934082677379661407098482444013289410832402675239617081501854563816793798407675470508043772438384147322926418112306266188532416311855694984127277916235787531452797846602878492593622408192622290036553343348630093336910113821016452798890050645237344377720107503949236351326858742046903548271049301045289249082661149921569143176293213422755822407623391726712589074839326480032990393999715441532333731795854356358820026714778834591994281138465874702500462605663333027459715258122427759390072206273572263228189318724825757365601937950211141139044123159288029582928990201707359112415661569838108449178983638996804910304388780426929963306279624863940535309100305426037807681001727979507179886506965981678697699848432529341736832066015780549744325181365150703354278781513536587788474748976888991830355860129567442805280530359207338646893044881447201113869471111250811510072117732143590865655064680870400115219741330242249587368822672796263557134511816453605212044418252004195922074392285321823624457554623815468367568785039653789164879816432573050566868538535074371506114149955809745874647552980713420365349779858472768237857155952207720983514670199839474998227132165508049729468571079513620401621743176923381047508317267981300278917533624449979027150498956461262270720862708474728459694278075883889857525470976630136702224402238850583612410748680252380176784090512569408888354551813389795743055802937948048238626134380492043775632297107332080558660874086033928820004917229683704462212193711455591562124569023684311300681414624320706021992110462934038791645754349061738142210587084326055124988168288288403579526977803111175303895887550112482547072731407798673716608164060657221387091059145641900273337065302117964782747555121349530501782207727123520441983910047154991176760026597320990462764747614041005682526564086387551888023395871142791968706819811943861436046411399034218296417078492528116433979249686809374322990001967912863495873973771154443926342670301479818703259440964513092895217311774164263733420780731423711384715358111698227272343412080010779456153398422368591520229732200059407261442157329643441216685525083992405757981688209249582444974733111985099643728216532554738513671891361735643042427699577353401938447090543617088505231354008348507822786698216794345975055313403187970356433764982522943636075490721586071543686543113380851476043336589879126330579456676861052767863631592945182629112888025928337146404769310936516379801638429502927191750175175129414682145914261890914478752794120444669391535674126411902030653356835606713604223435869495293324772947115657921865176304820632260498031418702241128819390046434466234629154947959162452481082936492278170986737969237361969277022021788293515775674806039730798202813614704904539077481325908903493656060364460205723607144944086291739776592025430018632730912918582888064165811207702973401630394739321235254573714102685032015194824741413503730963171577167992596401817083305022950784531359568826356452188463107427589275524466563529715853977897341009986626728569342312942588377586668541066319681959530632847880393879687428921078095455787206512623746751083165157229000842102178369687063956443261168815071114842504085072425167439449702293871275663685096283198982861816760601770622249653769216386899964047568840833193304425208541328959309779437161425279637039934411338430543229176645958982426870488481052361014211175914202025564107981112603040120011962581249102616024660518414546767964047227382816861433784596808086839970423593653884439012625245092966934057006779159500829246168449630678790868826157281639515209106324459713579603010205029806547419382814445505416725795460085674850666331287224709681133770509140619417911528131271782530298847665368450925129715905991945820970655898576758152809604641947587286870012433757357664779731515902708698487800069662950514532109207225123671272186312787383384136478891857118697332254555953638851631786635704156820992280757321475949965194956136555964382507017970911541437374763019551135343627264297782197883791867953539788631550321675233612997780646508194564842582788281244961902439957164850735201708955762306236590682071991710371480732512259962453723090118635895912795951429620089161352076857543640470853437889988763949317700678216130279767573672746444689398992122090958763234940707886994328221974393779365266913386342004920580633565143353570771189104824606755121535298045813375000128418833735999060343237415051658215664594579840998076215763647064062742850571102893200206538737510697800582737523965704860108420304125782626264755263732825278183998660271909473126296084295342760867765815256463346956115031789908938477629740570613558852445049898423970507018654202589010551975692757373488748714302779134777612718621322462018968733890931182970903202029848552638419136300979770343415743624873860878057245362742640304976508338031459731140323353835917237171019503511978429127790003213149400433569174635654752973584784721525961113937597762460624878217690168781640689366454165241542078589648175220502627329878266112768253309738001712438114383299895387712297464226464643750737444110958498007476700715604826733008956051212511095773490314899239422715514424033494552395873565884023701275118598621395573514383617155807970036899619420204349092121543133476311285355473463510477734291019770598746202991944529018447094453342338287292270286554702056889400171419083322312455211947615625384877608879889416625700623782330483950800789001970914434365554243588335593045886285284034539385754695489463883749520929311525031145277031286615303650401772443993307364922221932467888995972180692381427523504807758818257563146935083208017641201259843926144587895230694043587196394252768471250624441794543997565826792894465619581043002110437344688620408895979737240335749109241722644596103433179283592467304610401248882076182694574861506707782125392143930566495252308734387407977350154812204527077374075750422554855784300404047200429048528263549638335743119696121493084511347278334919599955575055454914525364843758101767051745585710462277684735880475112253610105926556802629099302352156916492436936603654022968825625163659823391077690682519704161171773111105353073818630950614950931677900646959101921527864233091054911425849559015726765184984347082981287150267808981408598271953362214727350259383790656038865751020031968751068298689848985257951081989766675588746101396797752115791562634753521882579533607506384109589780973660663056346300216800663465040227695675394387291028308632411503599053197449279787835266412914442646484154784922670218495550245196826627030450432853963621544847065468343182637008202218892657291137069836289421888090569023626490249741768371686317541857377623380886533392250021330204508773634097641056396149309620363561326374826013622052751853598119131561898921387424430389345830826679591527024476866694430182447115350845411230515016468520719852725052913566671245127306688548337924661269145626573527448494025873438123155635690452359923174460778482594083923594183421575833021850423348168065519334859912430423171306669283859738077652567715086852620438535827296749595062651888535403234399396476379650321112399537254879390268274992383283704187410787811449630926008411531167912836118269451982134853576023876283249665499210551053802229192010510584498020001619286686132443529074324151038617180134687207770002511731193124953146804269186296094540164370898207627070873536308071768988650514901986969160285076859938347323426248240663413466982991094730495059768321835486581939787317198731228266603013992886028142974057187360216903722895874125058395898693289138470313179856950143349904256683180252747222294319992765439858958953721825339954974006514884243978669740061174142261732132806213891824801385220633386893784948292205974229664457883226313589297458900403407231758599426363575667594063690596613524011802839676608988290719850989254189437508171164570525411844692441528137044239755928041735559411590535269963713711809027450982672949486953750410480700794605640342130856050770775528460703136136591000595364592591041394994622316575818501767657681875901394211445669149411304895088755068554190683646225577322312368578069317918678060177355685875422203860133601978658539669718402879844348723280909448784283589477413051936380281868065002283572268929526923992211806992253043008485943623798631143865269926572464397508383595644533209465584129750048505411832905946750762621953369033148378164395565379507085893439518307672890278004185942147194361428325966202084083644691927682774791721859760779207039422060844402365445252286365261610914531717769237017043294528035198174746009148480114148740492468056341231687384865466543259556790146726420764076066580531471593584789579610472687633917071266718031105683337303805153718363977598346687987574753592764613595646735857250380342812136245632657900353948844437394496202572077907123132358375587045898518924929867593091946804068491809870171982489493584358380815052968289281620647299957368395903688683963566205132176950704626583570820792459675331086242519664049470288426409257830444574742507499936568153397495282318528066357598997580898073247878279975252278548836075646120645782749615085003734535417977728246985450697222383690920390925033486905701814155689301430540745993527945107390810714265945737750968185680120822467180695153616216961088265954392998924135402125731489430097119472560939374679826816533249345838760967113602265530292655249014207997168033515984345764989621223956373112215881553588886837031295716412479595903498307617806018171493646860027933945938907272898613487988093732189993958877633264208427511400725540616963488973364494071345666498718223500792915915467175079154470955800025328204363002390318168810720320040178591555823507747705895857674891065555552327925112297211559951932038406701855936561771957245888692133708436044409716494881140559627815680996068171246292050385866216111088198474043863962594568812887055233574917937799618839372766869226889472312187954091007563127441408580604603490277680207511689319766305929647090753933982453132548953383806905640145891869531792142287932193807698604403077663142988904719500586581023802144239226406105669198702916742133578208755945384221602963984428457515865475820050270831437643776367152402880306419605788034739106166425192175309680156709458135668126127960221101769522116249007424092890220206546404965096167004486712662381967247408183226561435020913231671811065569237913480171022735736160436257914929137684937060232551373355019947416881156625878074658574966848302196475498518450853747222477470569311339172715268968888241527555035796893359663991684208744515971015157841252995673218377003041723023215283665529759429497584131253980453532506642854825842900925462529636052003873665417408684437352640379324082364681238515627343399362406931994884858264135934729003686758728415245275641106509387445065920072726994937531772302322890363831298587309323248654901678044353707356121081635820966380015621001970440288921248506823806803140342682460012622550796460501702377636714292823574243385851995184668361821933526148514137416317556759281126502569182656482669787707339227143170198367059954124591046172253603264795495612641851294892297024429094237456239165352663739754849128738742368406781715638391555633136171192679790479209157837433516263430440865948442842055989934097830428103320900346274725889317937219648399879769081115915792687575674886129412165163202732736931746727890442839363620265849296436790617231602624858744050062618467712945674803920190610813330415926721478918702606511226749577807025448561043731196507278498577095562124407495400253598472574221218461230804130431609822256296963664861729543702591216551366088345004790037328576802418930699700398246398830598269312292648111378492225205247508210468660303870953331017521954524628841006646774549589343534394546568701112792326411571721752204023823659521982632421384272404128894840656753375106168695295860202234792895584008075349325818271193214074591313948917450561421807651264831486172616711927279568283170714465221820219552824967648509922640279161447621983014408068885746751448420525043300897214948263781325826512409607881767874349688109374737980381549946598416740066332447847055564937545311942190408430803677565306021757886597495934720830070689625469866900238701285454961827396634503482272489399401973861643375668614431277342864598722666413443974068090948074085100675282600072532103238016391689492673348488169195003058445560034802874242480392564362733252443233053387733512187249033229969427837673302237709565193955530490860948153038462106075862024365393046157704842979319693708981226427213144916709080514891094800561464247434352589870976056900879895059670829755828580657590385510047801592987052240098167247868665781621980677348608492015704566816342637790096609843529211454556589799402090605927010819626843158401452374315506255387106243452623659016478220705425757351670059305991036626759860082139452382071367360344350895167890884556523948971246873734450052303228924999437856159243280733527677717163500162281377863142509833087636524971056418902988513067266531381896466901098194039971514946851058408025085575759043181152921364054924997374636539085720834042538157475279051771831146982558528117699144417100042458674253492245531362997632755925705401972603533310204444885809487322824316656164232550076384490344485403674169435505724755744820373029353029740895004396865415741988508570440286187207010196376224616739937607976155997713365253902578477829763951018263418325179373781044961990885721015205030640789528113191337138864508382474996707481863484061032818822813780659729015283448987402360410610210435944574692015507598720034761377574229873950638481950310384692355602836797798358057378163206828534304150071577978003453139428914479928113551830546010233817555943579984308428587627124195473299104493514683063363807397525050557595537577195038826153553292649867288070353403420116974938688132908211196575444730936069450482026112246209367626488431977912685678844623147499250175808624172376284492612746690069019845311857671518614321300748707839978601556996387996750945800896189515144775371047424858669354749326530690105168235897053476340247418943537717507551265750961837157651890118067113885641858239169623695580832837377200805355132915587609292209212437993258878123724055623074262782262254647723007393861604469350092351021133171354255865678534547674377003046825139440353727132589902745025424301084055630415670362928127777769214804871995069596075097616318079719133397968015141916944304920608177928188841918472240126097562838848026422653349477193579519548683172753126538887088451118731912785439488634478067762161374598729416914015176647647386031079571813455191521773031783588048331762942239548825350851051337037472337995364881861655012628368808890688357016817486934561360700311803561535850242683427936138449945120056291627166346574258485615377601516833664803403642437508101711657544735342682408747670302980229734769130632803000671988766764782667488353239756368566702048866639993911167769957624856200871973574568066832563537735722633721781294779025566842586802958953820545137868515502556475454036297636727384147145493524413296590175751820237582637834791574210153733794571213699201961222091842905814483850844189866014033570731745831429113491413594052986383959117439137668230621944234635894977570147642610166395064908352346315566338974492100451257152847881168860884596241346990505104648506394206107780841507675460997331247580614249543519627551655815926690887804694873029209562253483519787034949521440331813785190651023133751291916765474820782505332291076269937175883545096009780670556679441221320502300904393575425725807382685054936921690111495312244508184526999889677428521695532085471854477426048305101115274102582627172560000771702714529855926580251331089694053820971103633665362422318958910149542723136747217767123660765324893592722819260576305218342075321357792939026187213828771589868566388067746070586450028028462604913906034379770530688860649317163988010288477390759085624670019127203285205582488061036694152876700773135632391992992417724645126937265490054602954461585700976671133699563206237946550165944887449613149935563407636847726560142949092819548596170548179099546949471639742464800884928959481682148472104514209967144194572117130193443035913625281325568243787897061423766112510664120162143586868801080764588314881236073358620607049105113871540750884014005712735000311324146836040882918236945656098747892003016812728971419418495549630771929420112083740564911124947231040894898695172235388550230757921837787152783715647312787420366815379274994643435270618123758266653523916461171561413299710806939468186734532861181307539047824509145200587768171377480582514560532602813845526224996436671606230577405929974855689855570027251376803062920082581817465275728441138518537754558788864486797523823007967801619013451238927710940554207904931215285253631048665935531364815045950110279593582319739217346600969081653755902881960415259286545533213323544173816391748037318632190153611361783179352536735229726442937551936164430220245501549128007802687945575435476501251973174756558559320279364806475404419832786677806429200158218921693187137507068209941398933293767547057215196875700279234176675967563015665174287837357505309165056838624837094339994153309147242402521464331798926872613741650468682309759786597388056514670359573516202261055047800770771230730986897598843345789563177329245913302819000126197385160256221269339343598355315811607415133214310939229435383191546396088127713305839892784142047346362370858866497940647230965442965957328250962928225660198393471621666818711086327554413664901893543244407773289111224835770477178406337088566977379988761423963052998611492693606365157547252032038563651459618201660456758443347508302778883235251161249259488318741985971041533241506875393885835118408025090133661243827007993473225858603439001023733721017690522078362481124164129407225576990563887520780602754527787996334224828018118215979833042995799859450674408532573854901850078387760248737493639927401247027874626479270784937288554503480075127947956688266082645711960102168814086410027739740832786590300339330319774816333045064056117110007176443112768868875713197506232058293272011232182729046655890504361249535151430957671331440440821560156977585919900129413520276678329954308485056027168255802495721178798530889530961422022526987013596981720225988993309454772518716018270693742935954891297849673298119080884803697740689274832933247492133056565269376599069543641618035956617012304799647979121465903443411216745303562982022860593973492805203405300620068644551224402697000787981664247273595028687395104975757527352200283397426528764446388582928525969461538097357126890478247030645495021071189669314027248360995222320707782624533507128003472326278955768854656222368046987317450271129467816192610442675651512599049018417459569188441378119857182005425956274236397251691056502341588224753571649027544071341765900642797855873960281787655471328288773724694026238391056574912005589330276132716682597151235088659316303937924627795049536235227876164522467453216281933536807644075289457832897286708209465760153977798950661132362263451886585650553052045812511660459246713697173429998398724904027146976503769842131667161797838952273265608033953148833646448586822823519345976490914161027790263172110833697362850406341445495766127027133071312326861388305683341995517132984357464869018018655295388771603966705893768615169732958246146521127721389267807265409973860360599588425712803017395305601166145044487253085400964557487077345751734616740432531193401620797156890811867110428508302982538747500042123063172620558160845228215370937087957101479072534543587188026337079542873051205879045975350085222298451196911771426494138099168442658642899489948620727946966866864698975562253140559439456633304052086048322508263792502083204724833085992017708998283819143050698106506155380410202663518909360608218727217176345566481548492830841898161991378607457221403769724562492153487680683163032182866534245991042026635282376353609321260490282199769213723595873464577327820296640008013269193893685890285247827704199732566981223735257423144044796483314574553784782844827481176593791347924345687202419994447727132284376018090015997386054152499211120792363571110929167422359838244179184326020700000521589319597009522132640706331527764865231942814822534079141131099965165036766043291446602313886022497210322457185348865810906381045927046555824330749365671743906252192011900600135557310542024949162899906553078014282554116469409903998057533079412777683239257383385607223882093580715389033325919386934264319402847684330189824949911451638383282517281452815821688926211157723265024219422943974079432451515411514730499636744949978883319098457790439839555856580868960276977612981845458124355472834245689917914925541671719585245177102025481305573325717785976661271620395160821886166267216472234346684935142053250719546347996160027393376039860067171993382835240829482696033338481399319740335278790209814506972685189404638121913674604649152026481388700885791306772749488592211878570744847042393106096777056682867872274739801410821388887540612473689871632568024159037348509358656961934325017747925547401237949251015850713338508902475896351667665667070138868547549144630670614741987968554831982615032700216187524301877620215825662478565818247454707025326231397779589110378039017814054295538698536828532266526489904164741771147365327611311358648030802338587699243381241197604797659344456184943934081843962164733736439321648926907723229835653781489541753656109492776290928231369030383179880256384612456483445036472221046966149574614637486614774120720081940743574262445411636629080189060630666959586220563456797929693649713789872668297490306147363995453368511269264147009853861871098229380428398529597212156656528810572029766283244401283022115629120934673466230779952236482062633904279567476592753310987922427778206283395561502327353628005683521704203713095758014701102707388142952776561558714095113132905918535304619176239733292787729745871441193765048805098709471585410699218156779307206515391301240913880951432700200961345098823593365956519511530185456790604215290554062124158715050482923027982063828920186144113572867310936194803053374057155323750523867644477251108746454228420538474629973210275580845983548299188265975838893631124514900103270995711677772262355154259750002856561808783616351861477648523854648556078247808165726215354777707893246212430440833883011790502646172583616890013781602528369596974528558831186323734429326444279344822903776914434601966629428669016169956357415340366130565306999764982039071664106480057981326884394632834580331260993360338470944867222769124311671647745243231510672357100489503116298350210617884671167358983710564761851286664158646769154479683335988505257978289318270083463887410798977496627436957116351986237756018193688718858525065196882324649627754780559232217129517792014161189038392943154240000797033197322903725738656701510632333210387455517659037651870333956058216886019610928966361370118623956998145129048124330239541357045490397622121957959396060910776237638199070274770541935128114374554682333389390751429485672010770963631976023128527137268404421567648657054081361713594627435330301772200427295125374883609842929234364150943919779401921533955502703296601502847484473226107483211647616096950680778842876920137147757834686491334111847951440635105863605386475898972147116104491165795816737617789727191937483156716286110555313515164051891025451485586565492239102740370069224819145697197410888301523950395400234682711797522648226548002017474054517410683862678995302512065067504528613819367929749994928786668937575171685948509650084945696208243270257199959407379187855257746497726709871434942556479972964827115749410235602473808760883174286202213481357997246181529099746972334831906429714572142714167515508996058281019260276163322266538567915567942005921593880584000093305432379141438320731789669863306652251571243841062145778000648958866551415876264933505692075082868932965093156098582905303349670154356461850791927041347550639915050210655560663234610982610071397745150525817854930048802231955853121406316802221621985141063765941702297189719494681617503384108207200783949569155896623782888804440989550060963099571491519636052685757336375403174327057598492784779893981162740771551315590340114523553145245275236704144509920588719591267457548446010949434219548056424880439535755296005252477437828635025874721004150046903771503374251479219456062255192384941737046172367967078984318190180882814194359939040552562122431163849718112603703960945900149829395853732446156013128638667633044215296309599069535145848695690537920450658748628405277763366049039611904559684975435822268982597815398644959218209623992215822056338235343957873376439091981157530493986222887302108693743492724664983358743478905989030458881797999028036040191824125982186619854171709656074398835769262866012971221104693146144702051785474974625266168246592036931530966272181466429708196261467452291557522832095123251653782763429670024114368204147660396881620394265320373165182180971000314254201865187348955399090797645913224671134151489684429304506645303428986036057302234555215369897884645674686700830929512671585083565357393908686434859280771269984132450584235095060907838980633077915518156175045561687068958742903653978682184626998900306410834106573806508110819712825745732777373731654454462261906977091889648544143356632935758070088071145361402120843824116681229438467500440391580225208518552860949142265955379371831085058325769606823468266989819353493917799652396620954652213649016425835253975551054920762774022785291892736223003228707445693091558650930652993778199416255555434669652324027019504546492088188550364446947679948338422984201561328103311185042218217733540463642997329762957507451717441477563199107290398453823169997377952030544929352657052161074291941766506488177520263404975718468959774495980920372246221209971549187301975503684216822123113243354250551056330531086882352590666121671108814623828832145046743125780310943081172707072210076515018145902246583674345614558476688663240411976827642311704316341192460305144446477183801714655910626073219919316245647623265781964012730473967268809968459430664662846349657996883809371033001275755458352001741520898497798838172679003152207965568205526906368377659849139043902768954509544333100638517873500026499461884832164742580487835008330067577903257169533724031193482051479074110662346629482746702110445549345890524914460168129383481494333981935426271688672659196147587279029249895677603655466710693786897279637460291087746965684970495266060559717168263087368276293870440065391331476294643577579397887084593700120819965640770506385781807317101996073794164613234334109916331311550965009709869362480080181278424833955816328114681479631510860598016125284679824119010133144397151817148203059604598703756599225239438317589068186423833789721755949818799732751609115298286519420036484960268587943056848978706084410360210352620172840347945251521932304698493409935885460409909502473866843741475738592753060012643328094563516433628011504082442818436739639625808917454083778755418450777243733451574888142240647958631874061713708687533601145948270030572900809289366100944821868747577126286968983588938198690267405675136403955627523791745842668321933556539248071796085350693233165305000489220432028479400855411694083507818513696516461518328399182103444513918774289374616608049962514759735930380847759242826635804081489791599375730905505598104065638488537298011065299099812598849632460877333760903757915325755836759282474460786747334005238741089082589186855172640357634918518290968617103040284542328378230336703914925252538144342204109822980437201962928439506231105913228394604429575824122648468083809039193546525198321691579109065732797721895550502615679713683580952040314394929107085369908967652456507949115328877928647023039758816139223846121867618704918776877272415195868686101696841740525851760924657557078666241964119356870912811727623345669327532891641276524220521228085169098231635258153380868047826335046461139730881987556208559009726832787196521692541799863659147587145497901025929584980876549609589000957126008772845581011952629638444228691848035108003292119218987487170350147130670909206997639579298281175625546607035749794798646394434383407567760491316918866232064287637708116891128877167719879242195024231397412849163471570105020595905766053903738458086743054515940811715506679963895745404789554024152174175425433323934394996011534462765128392011971902424807684310328183568886255637350005911110105940262521451619618133156300239375387055981015986996596447712028554379529574529336818205924216179177012823901552938405991049384823230322987015468413235343200250152844426184770803561430092930535289173518667195027139650280936655653375168649824922062042021038546310345084422451506398925494540925747964700237383153364060478343270859146290292122553999709540249954932684474592760369773910111443166720077685937274458960972846874542240915543057842846724435002976445398238211819213439691358006882588367255017917672754899729341398286431779893890255388928228110379415602911822140536963193013672840412060603583844294907216250980590329408827026381157163067857294184718251278079523502732186084937526066371977608754775827651903588888158507202047719243964982995310556225878082233430800426413228658051742593061143931132539771469927595677544994090133384392834927299337450442706496984036025634547579123028915750063001759772931534906192399399209196758303208657213914022507806159002781160992424052053668992041944460447514183492975022129191495645388835425492637760846138073204866320036380332924235901693163543780985922167789075330284061321436570412742383777466029564147466649033976728238191735425300462399410578880390512200730497648085368280730410021355271867337603862727120575627177945052642404702230778305565700783250456446226665173147164061928335328755914893058322564327832683690594740430953603329340710982414455925255513365595807173089192269134143795051316360384188089333971319587251809229480969122461516280618983195492524382926317338689411338557338703899374416053388160320911412804914054048748211061434822050474919253799501793245222536774980893403982395742799677222668119958515994680755117071644483982212852444874721640020165070504679339676354755876878231000985796597566711095517580463692846693930655141406922319223259810355518563688887125875787157963146093396861725835466109270633264585174228707368683265827748275294760401058788922769786112090835672046104897423346060792368875952884368587688320245072965105087432921603642725630776840770898935802955634979866465106421677966840570484064672642616133154838376234940438713182064968880791444318769152926759092027918139052146970725479474238293108071579351465722514167715178561324629943070472188571381067496912722287868883876531245851751134494602881458746736846442820569815317878033661615581790986098493089884892728638036547077531380722732913368413180515800770750897209909795971850751802628730979193054809968321047086131700664272482417348238929240889393144915230500564124193366652640660854529668419225496422663526821684366813908110550907914704275863671464415219829775435728613441831028594202954816070543421940987964591889383853451071410322221523794551347033216009417620904916656743578604187017441114746699224457195207634417138482443636956909539555857478517671158884155235813691894964844479223458667696434860883143715184117657831318264074107612244492342428972500368473499428141229145162308799939040504413711029314001894652284596681446144583888530243807884227801344208757676968242368484435998810060468678873040703744302320403681263939678416935933322146228267535005048322196419988353645879451709857582336256281894780267314373081075948697710783103713383395956415682187552281685984789083762494358421308677683037043022393186398667646723198524741722786621449080800384178803192490052876734470941781837815133825861663417577850288477459417633580842772747007754674766747912581222486848984609954912578071256159218820681178714500660541354864339151860247374426877006202480078949442408659194952698908931537159707952916215642061654928552074847668865390474867743329304898874542662345885373115646840920608535990887401616318856418665938861569629214796265622454459871183366913434926218732387817789139898057766428030404122089879413064850789693758142372642188937206204296538949156901860297568160294250168084398677739199494157827994374962662098392586992993418755098024104539190079106875872212376341104420636217978043551112144063800784891502536877199036427871204310715864869194476640323603506512111103048134901217960504044410811246395660893288226704054295707183902128668336021984355273064402026529890063365373140908627530144753950631573070308288405286266860200796194325687279927154036772174148002268877796360242739076750123769936952747560526856598263373219066110410185494935221858084679111462385404170237233030121214135375406762388900601001754295604193693095323743049878846889500667531085675584687797779929953878448010193856553115450332817906370768681155125919198406858955601974097808792572914749777423249182350336896900159241647755575072708862335906169034520041555389632851777262443216032553210000707750060262178155399030730650769386133255597049789630719185088081975092244234622924975812160128180591558631254978424059125442819898246479539365363078798939159413606901886994052402925815143892758737669851395636771734833093830150997789079601851369764519346980862915909739200242983353864763672798813292464601516168165474404624121663733540446057814654003423067575797684790802930586033140210230278695913424323740498336846436620423617959249565983832924597202040804537007462766124476409178580980351506736695671078094865305237704083695582882606219404959428766622128786954565485190983045232941766722121681551933887408315005842940331937089087341937671619055733061533884773932989934908282017482307969086757351125889003573125362300674054490701654764087539493108973565836956989630638904570528551267316377566383084636557328377756749550694681365214860303264980493530212078541583945307804650736235817872755307061183423556570608212304801544436114018177554993475065883741956511717083791938660601265784120353317527982292075837643117038217659665272504971916060574540408493696727285931437299754833039353869114941710172481738179563305823230159729369327092743891858002665704324332401631564993444792988707781326697297333054908061264841967681215295152285289310100773289182360222366616554097366131114515760917676265410682682173115091471154713731781169440662876696525725122264305306788005852917331931658203869574505709352398455651072204134851613805145846279168121841560791350564764963236978080058087602488918033767122479304204930696505300644328849471029537240774977735904608760890401452503207419208204588039609939215797637683437869213301828862786446409791229469288255188184759165949282444774738669283036772495212099909968659607249655074077530070583377502001882717667606190632244074643267534991565896821158315959104961936339703993683032916525521428778267948675584175359375624063374353624267424974415346697380530148111256503779205164690107647031975351801074614551510076304461248804688416363475540174154516480046451086339992177108062601079197951895902505337989154376722793160660529637307787448194210894167813841147524073012580868071155366007969264948478885233704601340558211865836382685990375965326933411490967112370731047334434579789097589031425839245492466294897037274790035098498614674508991083628748875836486124259810097345514722479784626664045835799492766673211758788711716210786896619112181980107786428967266616133371782223765250053919959620845324882998907533011433678994354569693806145368121090908903381823369251832708866582806600844186748853483514165168005405521906837836129189894817482803973358401038950223968616668286337178958234211622422849251216092074850789138400898217813928202666702848874081500499204174066857060684385867416121113541085850386640159975111892647922692840583015785003201906499894277166289216484531364712261935997206025364791223864002181708311549311227104385389961967605137399407867752813657529429011599705274796654371750944425292046242110540590524640748309955164519599308458269609823416751119576904801575007863865166437651358045957608529083617588059515169750380220126004338799065457890271140455229650229114437907127337294201654072684938466285547852342554478403050410953818009862099860058271359853874113270509232020498481311655559357631789962192051943869928774123371608728346982566187083484332313344850280071168078196954412393314045243765730422165941635281334843902285785126044569824856417047277439533153380454683715136972850639009854736294663598919340237018630483627693689284993445138721483294440747573692042872194040619119435566147139479270174019982522296496876177977409988070772659415426532503090396736032692288482746275542197753110741187890728937545875151766278067913364818932527472798222338187946016404837899046601134482201381715726139339524842359200384251767048243371380294299820529660742571869486625069850504468834680783570189192743428798387229075410101495704856088555151777907661868948867645424014062133682088413264516111084262013996305914548127404643496106031378317004594026153681525976259504840562529113062260117337301961512044939058930777060688432864561843339646381134213969112122801570450174949567656908393879605734219268281083529155891178506147526030289753822459814127539805018916083352390972638237786504942807645026428258252409965469689703385152867501101696043115227716753921666356895606850826802424118550743826502077190834663725332336841802003069973851308589700194517997788715140792645153993181577013587516261913313139544311040983193558914680079365692647311007691589957109719503160902714721943685210138791122438844081252649034045863740540457502266319180854001154897988369476627694228448188409566345755230349076484184166146237359498915237249782639714261415636540846738875951995841242728122702803973739299887945727370271199756982466297963501217439315600063427322501252175453869866092019090631492066179030550108061953498396230992303168335853471115271261951357341286910705410753087201398921541315675802260433509130281788710873559034050703018477003912035021521593987878333394750185760514491168590139220123366364796728960103456350416681698476693239534298560062505716083388400388387676897487740950771489196925004744426247853481583115215824179865168807185360401165862938114671963648453909153629230458561274740141918804729631289262268380850639291896058223010899429854300817608818342078794150859411229085440011867414895433551614961679857387129756991787049270703094027261970663843537585082422989231777170674217544882753221906178463396394723038964471113830793152923854251392899696068623497242776649738097771614121947033884374579627483282786874184270680393622780879584332790551661593629657675173251469211022699361816515179411120182723360384294445115749836759218711760566949710959848772508734181794508437688999154217339826696107437432338463376965292571059060291239020792391461904322516120814451490934024536322657705455366930825996619499293372556639416049124941464448275485793809432122615308676426274353525145161339428252132970191332531153928272745611921295116618666441968152185405676432958651189244871596592097029628562004523948466247759371679778187640012628091234411536562347876058593349062417523360698671235893429476533751397518680692213293350728600925608949988313509626992131802773608354378997434123026847104814787431990702552186913252986958369029138161910708301542737907889867740377285784418393345400574577426163661625266760610096763546664257200675057686309660151041067304654934426024744918138323881875278773589385288519504123888854540176043101485772530175012325126328454333556784275951274851074938848255656738819891748969501033714547276695478417673060023597908838432522085026516360659743832616874278315327518966053106574393241612643689314048473544469052567558262378485841411670446729299649108148689110105481412383961012783821601441760109398057780049303919445534274372616691804996694218218350712543876902474314128492284603441647217619651053938906522898707848168460994641979742167502974088833573063472744080309513155128334115101778779648376730500141849024381405044526687449502903067565603522850498390585980479887777281820945888641326261535005012049541335529033483674000838436077787080388172213438243591497872916512342338231530059550474059053253912701070592494169512025930821983150703500751770908094338934391806306399527398195481174414103200503517479931229420043622927310741201949886277079846364013043358084072057396057355081612593688941166684295652962228703410189843627702913269050426112821387637086099847161761050562757115249090267434315246433823238576553740869680976019776525510280066594925061099544768178818270326549129056456507012138922314527745871728890339546660051621904103142949427290216233198395876534676979315645683181647334482030373591418933249279863501707746080018594502221199079876520435376253926737200242571912857743617266089369903622379251081353329669365578845215566344108305477406884300657330412206542432858478811550570087449196730350725662473372126782680639936204856236779193940778668855447326057963574375344982237340723467871913231462131194282791649509342553909262937719727689294723661798627523936848111314569760724311908657415124201326350162140687025905629183250015459411747928900119372539849612936363581620980113391522640500120358262118484273916033129281316689015690223957954425475256928653602562745561702911316904633525682744485054365379456413015165245820342741997574630569150595015487743172127502980859382653599245121545773261101312621654926195249548145269212725961486977081693783782546984413054059843788997105241860262018815857154317798263021379313127542139325787704148939342596472145486206957791948189356814707247923010532998779709410662792669642282663636382533183355535384197439077985270430360541985033777295816263802734704840270278677363024804143350084752956933448450596833057950531028789152348949706530943133462696786465679484822512754515326595226916631085319098516392517965064292379270516468791522157811825851088511883945822819421402892028729434154928597957514885220645194063079540019921140552019563901327843499394324667374690219391878049429737362019829057945895248669673288791839672028669477605331847095660269135744573847133695291659336093488438044515203656903450568186952870380530977362670914982422748357908344468175122982724503269335794002234987605759815466423616130584664204941020359158912668258196380915286926826397458963694995806630056830043841763758320332571548401144755013443510695433597957862157817715246189934476579518433292907444450642964155096548860246229705063509097168624695378704276590722486755793241403547208422879721794634003647825312252057099856736563751409308263989062162551154369327229730897113408757243894759417307479815942365271398852909398787447978580867448957373533311513782194774658293476367463592576410864283012664251555788176232881749182968075069171207081637744163482971708277495997716357817600218876958294911299083214785539145368284075415264603376305879829427763645454324144998413232863617116743129856501068512253437774655661592442818646770948429848171597452714585998352435558674987346180536858792117660396268411628964194105911812564979475106386137956382979811479758011019782174092417022212258968098683544056854538523414665629210120288987897963505484535135166891914801813560305867422046899313373117597351844330729677704677111266954554712886256000693284755753432354396448026593524820314470596462576078168724145609197985988817939789837477757188442429088755021454908863444794466495707621432078202375428115987606937756639014893038156206526486106444376489173051094572375897087890533165699737666581717301948567683207118494915775736618013263648480425409882161397435300745681716479716397794273421557851503520815220808911621796114392454222738904881263226653985864008719826053755804635043242232039603446025591915426019645838987393541263099472331781123584773557555798603517761908309968732972240275880071043969322751756805846083348997065846872209355667520241098131517679833957667833521023029461047846986874983054673239292234256006839210750363166252768889254318586260167868812430512903889079433644336313910933918041801029892161651294082368223562749800947062392723438211898674319902558602955256216737421153318059072740349196074076996606028642950736741051925630191636388307190053220413234872516716139053609646332499222357748364100433539135855699574967437692860367149970318599053018737418235293405551620250787206217970253445609428963576631251423331541121299185542371711891686189642839034750815401702705973804894593883693374447895177232662614505837847785828445764912916951929520512286600597003496536932137005126171378539368330869380678247969405755210633257706510874203497164287065547147048139129391516417973949724790958829063910727388268853117444510217256827258635589482509922080784423647127177375715288760437977122028643187984420812019594105378164041179253912258584533925678014102125317369884806071794191769701475474556573999660677341699352174383521837540437980542173045108810272824152387117726474441647604109682322457595537836756969633248122946013752340170440174504340215695785621310503154432800725185893050214587864800444265218096252367948936135161766134792328240921691823818182118484447388787664755514290271733300270926639856182646429852423510582848022439923123149472663678559348985525299729920407876530627643058565041290098133032675156841821039003021432000590654619911843081288221559343113441022630080410194739154038443068931015506965350961251650399923593552895053998466491863644722536071717917752024274473360737798536632792477024466698215742929725181766842025500359500686149985023434164097334547100720641538337759585831058808719948043679675373233653237024494898519480173399710294940264307984365725054121150378900138069585876659962311517478357246091687717334721909415987961710490581934835208754663549271548843884535243564774030929840434456309760769899322246696706626804201755074945973300566053318904113510639489789993406777660999028731693124251307803979672471878348221110607159350335823109810474800795745120424484490255986239792445441381679855634479902173643052427623070437397508368919690789080647113406629908443202704805241291293609317799844935637755557942975584102419430169544477367100883561410461114092227927222184889668925549283185222404777557434654986006981405619286298649591307314959310330967508210430008078181615654644797276427808515843253712930459703621658106731996289364478292259466205782019304573390151191660128124176236363869086550511458335824162305562917267743231450578663261933976679698685134324074854430057007501640185404614527635851701912359586434403779880261436275458296958240715562939379838373390142137532395641745963646777681986540217531343026948239447582920453551472523261847051150984818092756573611677623823933247453152874700410381147016456023760672216198537561060424133722251919362810500628039246216178666729773970429986860295763460954243454962314270663983291720573996987070685408253988287335499067184801552105239260530480196053852080107645508250558176545375741022926321572295407023277134186244898959471317843034070135917678916044739192252143775445759041791468507511695166966708436116238412113861598276046956019824589999025074679135680464224360336862169389739169712272592417750958729803017994863608807510111734875736960945156105347004418641562117852485150505209692387789282993778965081272914046891391509138534783479290081408904998927261897067572982111096035310992956145433197958162658929713659770513036386327381694029343401299567428740996267317780380590412718565852010394122015928224541962405131901576421535388314285341109239301306254551807371990625871684723353945864545004254115921046719437640114277508481367705398773994340601711997088802966807671755279709278131523644801338974641363495592492437213770391805090557933709976475171039766750440712821172904231011557503244040150685837123798221812447646161350550611904207149323161188019962110930922039239285437841859938117198464812674980398415391837151303878340481817699427839709988433245163342490321775372748506351436168645560644931560508574048306250961757385916051334742772177681713249306187432616788327371558525529976763804034731435384556471282215211643501955632446088121138702545126636665547601816838081261103388327303073579842974520920591819648976045889997000029849499673641462103345867282372593487025132934065249251430419667204242324360402599866321268606822201996300996990941064821308114087789603016837388325472007612152421107705454896172179500108189248550165076223821167172236716095340142734959234015416882262110089073514548294372166630985257751403618856168890811766035973225086164876753813114957909076303461121963381428668967348324458190348978345162490415693435401661001393305529065206838326128222451894883193212509447582532123918240245464331878999837537932329305941740921117235891555584951257389005198987569689542471100146258348960253977492617389054396974800092015648643405242854026735808111812230991326841778168168465356734704202652458865420275020917322551215691713666786330791690424622748114758285418939158327453030318982638927530614085213506994976009079816020555594514657492470086422103765106951851466498152394627671452929687515767173644485264366055583924642328092015742215952907114040549333472217688607334961756152991702685514280355870950279318263323238664089249352335302546758042219505366636746088404954811890355662391810386988730052806506097874062329855063906663167840346812129513461559255379071466806257431100934569417717038199276903900603550929125108444626053612622681186744990337884179441033288600745816837163876569056022831652410010822965313894434901878727964155973764459749218285105167679275336178958394425042473412016660798482763033600217899188136364751249915771555643442808139942432697957902893242209545357141841609736791452775369613439472192431713556566108412896113262792409278291782597868405766014183532460487371457394512803394185629152699573735283318451627604538666236206108032670411185856776998940439893420379011451720105697860693708310037966578222576879553026434516820183114851558105201867641069877760962135084289788910937792412920904863621400983137792363378148275600858067733648597413478193347271252548150267347417590299164348283669410353113265057502393766141210721959153470965031446920121125639868639352279627080357184922494004071712518275149387541577523637874312161188690065257061164489768302395471201484945332214303382581240296015231465067244364513280572277840793211771529525222538748679151432347982184557670399267538155658953807735336193090216010477912216066295407871535628881744714866747774730317500878257505295405625308890865927737546139851743314696288464273786699359338262501026029457507409019923887973142843710549923636788074514270283951103843804733645647472753373590613423856818925098581569409587139352568397572084010856662738203710860572812724760639756599851716832644464614671682222487127348740546528872943885963368737685488953295573218418515875175691909389972224392469165198426646435186905919810100158657633526914535169904012200677529144901176099207035333753095654809801726466984898174711383523350509130362156670947761581601014783493038671360553394775683320253162848997864614336747563200177793725764414183601401442623018833495594619347085976500998212182476426469077524194230660045289109511444732156073864771260511956091519197342592088903892460586568782390794496313534489583684976442592099446360696159312582708236623435361033027758613615936467947901414140389414070539610165380611326911664572706993268294402862201373812756086203681933310585932911914511040805637931565678477806411388858881544458424583756066280865811598358882492693262621892012427323829010042439054119048732831588608743610960830417792000410963012656224675816203824871728971483914299409923045475979190251837578511550163888587775954832729407510834728876966571761731242877255768477614276460488312546258457875922931955582122176887803212756693720351595214122974551978434166983412728063761899743852978323715585029252994255960024056802035148248045615393620707265408675286334172044994947167504014904050585284643382172707638006901193350340298131998386460733414346421012910441406271980657324846523085935684601877515268918245518590878324592810268744548290782607850490478420379458299233223131938934501149621103999495656557129739764473397658764181064537688033412145921074623350352928880047240723236823483704350022110140821540825319231975224073661752281461976028896384657327220688101273136062838137358780824259008950362796890755259926697580699423305356356351719751473157098381671917389389016435488445421197672920908355784542262282731341112771046852168376084151826366266629390149729846385710229130964159317451207650231046348407330368083281852406347973316995904143875877427861744899610999618928390677621238346201065188246786420350753892628003617909050884054594855180747058863857791598562730722651720401894722576857169140503042059889967820005774104142309955173614149576736799574734879644402922158906589730891648919558730882586583939260486731845897856062850853672980396035714196898728613853980357474137347379799074576362260092244453361849275948220474016739727232857549329998401041943792901475971343462695547401559860891031160042369949037579386015202419640833607951558000834234182213823530816199969696295382346576194285197161116671421882835180686093559529330099726743210074658041326491462106635699177896172709172403391688409855771608997528285601755384660525044440684619614452584809559665447904085990390864764425534455901717102589822272776250600016603701088772327878016839906652741097275349649599951562538811374921372837966859664169970713134956629792470262217787905955467330911190259109681401939530377426823866971564367709820459146548030103649175960882652460915804673108212880935102291261797329446927654459369755653743679514562351546583214052851825868790495605590415196221744819295335698266903210170722425176322566213839276707475534531592699703945979560638985308443636748262414660660259392178821924524138395524921917059285688499078628416233879348050417285361062627961642593524009062399532966592283079768459837915900140379597720003674880630699486381155326753950263257574099184455231020956331497989315635632196705071361112682245601225976647346386575783684486283122401870465415875191869083241410316575224414992725428633579508144983526946200960830650920930699974092813568830061397617126583065736524148723634344119026430522203302503960841916202612247134869277718807584276127329352433026606900144956037755547488416150473621868415852833480623440690175817847269324720243970183906653770974643907056925516864001853511292407941202224257852035891321201546144132163675671065120112272004872024443046573704030227235152338546659338824402134005291783988050830315833635533399212936023475492238270190404592926774728680663976036847494974367721750879129552952776871973932324146460417291622797604633887836259696708885453078388337770467587168535357040458237730291106945507114739654340048229076321811024551285806513609740943918650057625108662253016354436302016085249046240713290766654674910674100083173713588788265192339304240747196778521622273598962009534164661238741803052612987357530932795433120303977804078258141578547192034773903405578325058523782719940559614696427402994990016817192823769325008915854266608531337984851946685719941055829175685970847794893149253545915762474968799302359222591832703999694608135405030148107704982720560479930872285028506835662745753515095692224960785866785459815830455703840695866903564561086995362289478240152580271876795321176651862917304275727074275076901946251044027360196492749893778810598084021090735109212616865714678166463823487513062606113774234283893559475088707252618134099364020724983849617834924926229038072977221515033444591079567737831423514147851013178813043175316929822105925929951305588114991302470958527483357999338369833567273779028259661366931375756768148872520706274339495165346270221627082994798498282698481278570791758023977580047121903717072019454698289397425502345226497519769688711771088718520315725479791521507753075061149611016199625063581391555092743234436232051347380588477936906779496010362454708932879385089861978238303352212365234309924622070767801140940834243067072589128550348367304818116774672295532447790957372958522565006199536195789573089776588589403795352827882134746887723123320846952559184821783757576380991266916600432487841809162678562765830084473392102240530205488402526673126053766543861060704984209647645770976637892091086200101818749366439004353618100624957459534791964107770826407702284599154340628365177432614648804572851627873294569722888094508950981271094350794102620212788643962626643596448838103189660613665697586920519007749384928967768574199488844029449195307100280788919658948875100671715785391259342003845476409418401803310664973954286310670526384369378384352978067828651691037919226096431058221534565379623484264070432586178707944656896866656750669504955055440476183016867672088540284957665336848303860962385442664967629412718373828934238170293992188699671079012142679496318787141672189950615984112320054776691474975073614511067050139395034630297854031487903246556288580920961609918928120489452870932754681106143653334060626758116947501445362851548765731292046568647241595628240322786180467256320165895955654924112076202676631739741812194914015895873601364583620391768497112169276114247098347022293561535977597027828543694308058789157376399072941207060244803102013589983345877246994884454627045993732930800073084688146597428642708157142002007041533692091713924617878113708290865357367188634312720953961779875113535568135946785940781794339606070471656203202684512616315254545425471956166518946100124763192733915735351425611049479411632966641897244021184552683674701934653605558270160689439601226092371024138658799165359460240650103156249258557723149370417147965973107500323612847637986691699861448173926007849099606562580530276903886285529889709223130554040338239393337979995795950362119598775766443670542161304433324712175878946010447300358961781444943419692285998065916651750706954833906633591988056603397332149060896751696965670578685917144869651423610670829433170781154461292456965969820778832376649842750044236429491043108301505594806984477056663037148955243403881486019026350793962730342136106849842210729149409502446184848880395429783781386581347531448275140201274723479828388090508140216388988343956639736123096526199442101062275234154369659437040358840180934422787049458600888639722058689321528068038730953600501896643921312170329065595815204346245919322830662515311015194618735650343380652449229757066701349644606330384864992866548504431647547948461678375076349281511851317572065115877421888446617102072310978756599937364797702484035702382019189075934144015111775986869996093145532596907493623673822510252554699160995922656195592573263594659110704649417303384548155413485365302135592803760195481865557760189520937202907977940217817205069911390835479691259037188077667675509559727022064878127317974280369395292861431378427879988757743223470547397612940074775040625941113713342854654659393538370557620379922075537487524023135713639714827663339788643305687374482315200958025719786898626930612833939029046817861332116096797900526232552256658585295781531994200687099627523185515057437238884671397037890834699026146221381445952391558171173729980725213327990820680061916997621587802813883218594256280717502501515405130327109930114540696222530650179491097434858950528094842584785293372499224981677352124697908832207319580423262408529462193601277022830498707165753364115732997427123868611726313945808226299523331345772853578109691545426305292302051796905223109601174529790768374495313961504535490514948960467600795145093960884116468703666171417152912460449061621819352820491476567741549415509136951768730884949289547153666197610418360561807393011795280735659107490817189692460060486894070241969296520580843149853781006917960738642175336537707992289468594193448298866999853238297706123674650118312296319770009737490854545334983792211497696360534141237166764392234458978185969727659167281762041189132686786118457932342231645389969719612533482432658906338301708088327063449286170896594943325685862029846947505051922560125889379269165545695311194743656932640110565006012716055858587975901918801285039768830891892928331249657923650280104108951106041917425120386069550370741900166501400862753908708861677333613788133969349682601502023749697740070230629123026915299975692977636684544800847554454802652495876526583771180779065592833922635493054277301772185059332656716068102926509148639032641931545432566456858252574541282476582004877349383675124993389732986865544135118597326520836774585906307522310412642371603706649992546239534281875350348060838983371889179182039301292699512393445610736875395466152411223537736093088845681226071213682168045196375421937086876996017977747616975289241867561858151675512077951112103106670246524123451318192878211177354921511573103620367536572729368339287873856555835708914019670164618771202454577460349983177119225390254387248861958424225010718016041016505950666423918820545886683887811117250902332887182117302407161342933582195335216564590012367101676232341890371348930531036492685855430061713570952751331479511854053637254077923286196058986844291638020761595108476976894736353543054195592246318466960912659966727687097263009753999395494981115356998675721138852962094236416949349090415711137562373188701877668835212527487465689050868949821281485018780882530651616669993349290786720760024852155380917360464704535538358348781867789032629608343969589785611550313072486990602868727237005089221851918639586948868527332820238101443661219099654266002800385356092213046735432827631695920765301281872895599555013555372006086771809574508159083536345712042446177083561682464062054716846668017779841231022931125382311885211580022335457540556490336092509266633503546879733497054889854652960579931777859709377876787987248934820291842975174335454054795665872970885585806808890033136165181769255952799399841986653987692485896208408501801565589641488148931623987406668213559849218000511090830492904619356863852350414766426368881975516102670401714782655298660838815677674881320834669712025147505247007043093416823723141623914618380441456035457032141581581477163962220063597209762959772740005259886717673621263006416995660241758379602310970296175978076193878232468316794776880067540045100212119422566800506815414728762452907630816107174378465888581988484483234263211190495706636628257554449615558879595736535376029679045134886358990359682031735415181257488929120336617646951139854868204966350303541262891752455659552384330378785603195773638369497025633045676672611006726217707472341911730615606842196300399528241855346480269243630395724461857223217474901246023510438656467023667159855112781626186688632096160086880461064643383371695520500743716149427361850204997841912644881211418902291080230003092530057762900916735366342648451800773373636103243737215813244456509158347822726537676597255126077874767209916948913073864752007718407033043827839752545558849493560485609988700671594891242425789659410178379304465551835590939279948467466156942177088945427989627245827685502195709501487096361449581155075801230409294791834618043180682773785205579912012866558485063289302698487791309722548924419014450610412379612556511614104686877882263260045970962404723229357196908538870319172643264002223039465744576029176340587648582770928932338619142753779844894403057891529468686838073459604753729611610511737326386189825238156125072042916418533089102508699693788838762549018284828019251814847475205155749619641518971815964707691889255867754931810073658539073510749882011982459807913590991224139939609853754532335069885335273795456142585525383076390483970767437628337883262205552451708230184336493615264419122998341126121504550412584535707246233000945573347990973683729773397138210550277819375743415246449804297602652628812388775611510619220537987826199301668446584870431078307561464079153547800522114165418857753241855404731329004890924952642916660169552183340447644412699838987663818589693678189071505984351721340694576639688883697206003219566138157879848313399529930891250942282819787721572592045678848401428194020860987699197169361944427241094298091352616867420461341392362191623455180179496442024200677498368686949694769323653073598463452268300070507603987873880747053420305372545163093441807981782307173114020577310484738974075078098060770548282583089225892914004400775199000880377380728233066962910876226386068918736119653007168802743828687667580773592214131506310394046966748080427387049358003754035243625496784059732814139441551669415069742502815264254220082122687886520166922623630101702715313091791878539033709302181649548230100956319361468750262750972487111875177523299530435165024010776766207836533885228409264885886341195816473142073105147353762771009700806318520210293814936449514324639857546787012853648179843602421329723506445034151676139844251161394009686641036078765346639687911412774473502238045990180066175661164321709612229794431584091949902296760922392979289959351200234501385075145098326355582877070409021880634014651577095280845904802316961590368043390125082773074915550352816153207727592152286606543547299307615841087569342473407778023073686826140840919852531306644202650389708561855932840876075518609725458247284334799913523713917537434198202118347051394193129657652741951125814236959441466734006601714596871605949363485856753912857635465667828905932658416227715486042927115002823229744118342928534571712918999343321600887295846760540402825857544892059097853976547425105155125899452484780640193273668986446994870766548308855889535055852824362187010278362308749927821041865727839385114119922684987340322938928782398542252512579995208020544504644889119141677522144869980995760264610770431416656227097996122247863175967050532042565072084570541440077656071486858106491858328470198334328325598616907525847987457883720895409262496168991746518393022871212279579911068284686891086840719368313102369932262260916241432926381464710988195203836037386290080425295949274303211281172818208729158029729226829301608539792734616603939385834501162386182579613429424077256506046539656901602180069399591171599708227990112750956372123863534381474728581201280560758650274726576098258379180903780468280693971464710573873728571768073428419208636728371989733761346744829655070983713567181753189996695380315348900639328689232378538696745423623376228592514815646009965092513222098330857569200194905365498333929575815634732650123593794118212515472301099360301001096956564961750133077031325465435499537877797609786776767256355951572719286472170838297130562165159472030660631295585534480035588758765754760067605835903145596753714889578760166231184586601610820690675173155356317080891041083475000249413298916203930072817623581096398109916611400612706205757513278480016143648166733730524043809466152082516902481808796116859761365396380129987107563079710536614470993013027801213944535998427971921467714211059219461431924535410549720550836369901120233005151476751097818947859537925237859869197025868828670308357896182249546862366471093718049542962988760362306251837392669537803675624554483295936629791807028375481161147891482878032082407797793947732600740451295756664303189613835536341345106443510223116126095867980884685679045084298569286976033477111278522063211564397126738277211944557206488878928483704583580050163063291559611150350957025827467404897831424231779780638065175027980751184536465855608232009213560648548990396634304396633706560857554882071583891662357618170240091163777727122305574439173219850559750001030839680318390373540300601049472399558419451096973529141653169151212836109350495189942588316900645570365180282755328110405709780067248957026768178208938652376668577519151122888129960312525295920523799953078584399239620412018524269499761941213089981118128401516827429318583891049390362055181288292362704792331097833466598261902527120465175777469382775320106956791056138176274742091101156967236530050148491993067484375834310261747093052921813321606972798691298304871327862200553577636536488454478689717187484988020355515328696024510583034347224562484649555082556425885058312580851186048309023604614905105696227548423452044992664154332012877323210649042142016707149711154133769982620182482539354029419734524163710573701443423835071911348297311133932236243446611708526824350725893310398733418498491153624983325757183831854523867863923031260145910717894087375449990540636545337554911532915018281501069312615060183056747262065728611506176716783676731198990296143373309999075244397760709146744533240718192270151949094808529416370058734683188615167911426643465067819549849815366063389944269327147590017743621149668196500831246080311312611441477317453008381167780162718383150082019872514166362248842582533393687436182637969173008538082579722422700576562716439876228900988076356231885397024227808201053679501473505150410712772135165019565652822055195826361080813953116102380083037825806775492076379800181522511700727772835931131389126772071472647294220119141262525652399061382565502931794629095764650942734065760499971610917907462200561893028927055103571698632718097925482148670445623875814681052433729883226369061286468000637823508070775359088800446888607514723621103826142936417445704363287102498420669091537056278092010470148857398455581969736357605913554045944003816548080783921378207812929971690720156690456631682178216556308457886113293255297546578220003058416190496193917705646797256352215129288870723452333458097804392388755331914006140481451885219161624635944595746120584037726485033395805778678883408343061164735106313063518557713563453251077026113387950535862879226913668935104720556749831475165530170832390990916901723997990770507797199511295325614221570794843294787287973801722933244172265779010006642123945149195935950093342563730550662259261377950627535893309308834125835030800892137098588005761181770336486195018296163519240400844893774302764424514226379116196180572257759113661720921595046797412304787630552685148678539412450256575717386832096269690262369350399313505205933544451487983832688386346550658098027628901218848838179588629948947681637718185152059937839212262395432674329624981349254943478344563464454983939458195461155739004261708980056974366335584778138360042425993394859097842328395375270371830368566127655669957412891651074543061657107252576373670171063678000372031024142068691859892745177422353856135090782824203227188196214505009379094019067108886836200803415449015213240846275557796945383704330348391428187891509909946757665068509332977941435091262379920870715283249728663552240220732010015615531644134582641407086646382253235064756315558921396138852075642357034834476122695259165039911848149687322193557042624231036767522879495104623579483445185854139746392841851844221729597402472252500958543346204356567841256936111768121260390726456192644551898779516665853909079973608410935669133648600301275412738500227718249180969872637388177160748963802741526050922763835404214856925793857757081405471767968413369948169906888496399831248263400219774668605848174112540574334169548060455793373274632156518934150371382529414203862226306969363637420779310410138106628326624487716697536786811151254729200769278263588250739197050745399925345704646921113502757539644571878784313655961121632785752212224782321216534646193657285913561792541079580807336739034107022693604457743785981907760629114532819731434136608164424088128307418534750179280946709980773566273210328378087461199273052500291414312192471458967809859159808417707372526063631738576437212675133558593870694243626326785958758099398390866542171441671513334399488988015156713958599565906096143321611153634731735083081449485480060976191210780839958559237144728290478425727866211003375265144560851662349109457450006292344673150032390686868419634286051149742531420772479435132085920701232693455326944143244208701210909392416059039074013247288237667015765651603733692896563110608374268754643601114494164353063791262683348042849713095256267902244681282485822938132586867824355662494977652680467305821291820993606768070686520112928175924570709084282052307653229932983216569070217952153195477530032777224640185145996073034392105258971679750846897026466312370264852342412599832334122930350998085175727396078445259531109775319386314580804935142180966017805349038297415075001277508968126422807688711019050408560382597887828685663011936695228198457376664922624115518986007289814631630672574527227760811386780509325111238290544152804520210177658936153770781680754668028642403609643999743340460075385208392925690245220710471151185965814290118009652925144331909986008683376282476797791780317877791304033683714431386524209126894734692701656956220398396158087635410087993156165084140500282160527922543073208824062950896210593407400590814879127508744997415670033866321138180251610555447574666875471516497769394466396559040153201533211947657406013479306338146784360456628435542954753942751656418683792179102568160054017297478152443394277997288528646372489434483009447395340791336186990577030779329152401447082352592474265463102025338025067982299686083518473491941046606814034433091503985819446235201048439311741207403447443057580126008820080523122298293866056678203447095697289813930435709627230047463348110769761382229316810442697956422765281282827382318417072851884753822519933313568100368732852311256040479554863701796402903559279118067657320632778732003080814612555951854301822694803944124174888554311022769542335553336569890961574860359267544043986204678981447214389834730376403528572122594251882375565000816203788464804122621832520221018839456671222120011250799676896669390887959123647878218750262608396848494051731021738579933607275624763393991034570092596720438985471952734337952438809088072385277306503691782177202533823982322367111667972624481032308704592152512177313322626326962967314610782778615968554943534322179060303737322594905701344883854711799838485007855314300482108015069932872652382429182127900350521794204617854657515279280112382397557474413922328436880953543441433660816007891457159379178979749999223796710566415061175989950433541959441456687721091932286134383043782587025398511453303472529066392009994246107401981029145439531275920498656589945690497598847831654917666533564604083613178958077134054020439420836669005286361970958282500686014390614087662950655724177988226593606935919993365058517241251608790545366122806741615022755104174566418032678504676802411012367885758826585099565845608934229446632514441738239867907001828635219984990305585809964928830357052500666307170724254744353642350874349118636879620587746836208324499019986856795148845350408087661664860072232520708043076126197705289782823549193995270740586316417854343493420063492591002146465275688032937728908983544246360804402083926093242202811376742709696887970430237403718486238551648722927167901372965308083098798784600745233818042591473162523065609558198402459777667139239519929321092561633555056304725872361119125883282335854554512085175842677136055570452983863089871004800403788826964795027471577502940237848788817932539249951830195290536735998407647069911332879991091010932491804423379283514367478565263805535158131971740476212633626548267689676209986261836819759189090101874629261410802786077239616145213946472438458120178951054432129927521913058807806125958528542547071353989203469145250106601592904907885960508705105241773043429457023362425432907135459948302727953297378546408360570386582682555472600861989892324786966398285009768141396621179992916807956157665213366258801942003049891885739109783653390586758234744531483171582760091093563410802917617381936769809741070989071314618587976705574213382811304635529369400030814497148943039656475880439184793211746002050670143285116483439283416632775819654219502820449695008462041764654201078020737593832863962220605941465454855555260679991428961342084664677921084815614070478969672246247025071333159319743167098013339790106603383615742485821920447249683436163833286212186472053004914783148506074837743418589819232079833101679895988787481406738760641655324258097891524075792185468669599382648388120528869962504129607687657993165769698774188793296474824158430852771135389668739570198775243958470205531115436491017242625388416388090492183255110914693538023570897216726312225002925395869123728260126127255230269640752104335655575450776743417816198370411739515823988659245431292774207605766006976718426630428032403298553287801477276663974156895792539130466318183574331205770875228857961683315670515271411899735396356120711798502439772992692201936461729136680257150755499702718879599281460301787454140808135217564423895773934056674316862103822509146513512286860081189201195379175108418486633281810455998051597282762409829583307792613701495790427710847162526196997435645953784724998568876757646809871659738599124904016010456622115297935247996085305295050613905889524025117575338247138090620057692633956615348782048701470376646398697896725037985956659729881306529567465922621048521875031096510753474857565730097242552495178229036846248826103507280758983471159973707203018247374843208177804050279131525063012429454961133245459821191606790709646318131532552594333310828524427007474745935189605602706545322239655640663060423191626659835211522361664582225586045135984615134609475215913003747914864841281594690771835710565791173338324502185132661239113913015712224235924990826369641768532208980836324636856223378841257403167562762897086041201604976777648722106604316247230631595630963583091259372459414658598395482749188553860933043690263018980028345916640852841165543803228484775058658339812952416252260970743929321434901111770469179261194352795628901940886844630428630639322099485124093885079467525417448119773121111535833211205945344049482373360242213915907193957768034938131654741338638140730316719282379255267439564009318929474624721599594045492121711067219959510380370387146279373304806687522315051001934454422499957505914338948334610696307817680340545584450009357408275684648791682726476567041616007089633389393006398648276548708104795486011800086314206517267986662403164667269724265926305727077345446551044038205803919098965421223181643973754885062790819859296893725762143813395829361984274533454150730176208759505129903635216915682133675483779647198578498533042289680299327705444102136708338429559398298058374783477376248198366084555693708967229299935683384356161742334572128689540088618676762001117995967130583585915017042636860639466667629785992340568080997098062726305175129837556685158959282882858585009470753243916241994837659102364508655330547287155007176426936873707821323777841411636979463329859137416477261111452671799163832834883231901646388801696340359689095957806658246446372955135344195913872165982604941257729559248092228761430522042148543256504981732945678381552604589210715857066389006407382782314061087390856194141863416464576478199756328258624589666709779245276816862868178915970439829224040611108667407583297125661810754462446439469375119674468448502610112021812257457922877069885435257614221554357055033571328120338947191633538640278770911871025840265467108700974679448572482138900232624215954280517476577644864129502233103037854292765363846540280116363122612806083295917715042266452476210071983559188130445496271609629926204386696729144803364662591506718766661512319441466054894668985789597073948108982892737866627123573111526968552273231046915918434994432204383643186806758027945028993154187055194184759624754260089701864940823987391524408819344714104122724733588141169119205590858416293803158451370349639485796587659108693442679009892343243517541630997276934481295152688953114129862363825067266400757976302247860863576930494340426213010538917106062042335206737391299727271444995713405431690608091038328007187926351475872020178256473121457296946975661086961392334078365055751173562967196186847246891584560517682943085095789317003777257717496810611548241780758069935834754128041029179733622208348984234191085807237130379747283164056721370352513904602049471509922020351235914178399205244101254541305979819421376015926956111980069438199931690216659781932145504984493272719686750874844858196245991606097815948284641262349697610971688860080998696413756691517759163018190294149185041968612973732909231598032364284908393318598771790786247656781488659921621696891751694029317251289517893370848981666793750022846396581720037068689726166166470333664832893820718978678308001446030525146799239141972191527451860601236480528962205549606895653407265867832765297571281965394358372078820579622232103868140996599355204532117834425093029304990811419728945158732251142925687686392430933529133984675294903440919885054342029515864217810599247893290965652653133786985603744168180539561799740883904774903935407049552566439315232963839135363344843794011747097194871298560802198189150902352691530339121668308525550798302944287375204850599317520428092153974293103693068828378259371802603561907148378515095771088427619554431980388800341906211115998222618780306884081433527335483897708021163246933225739008383811740385901915548964914407693075521911659213310877141987905575029379860865110918866577995941018775180253096902277549232450519136255890427631410890835737108899954578635342791913434396713631557095011402389834558882028634198998467481807260153661212092457662359068544215584472714587833194021512932402459025087779540460623568474175900298430079714935097480231141097196447448382989139725213525856739996882348299647761209612780061756566108623437067422600013532356920355492324688912867592755091144077815759937381411291259783417984260870906093848926080374363919855990400001404172635902050127381225183729488167835832373433830115060178002698382588805597185367634353640324541834044420015357867018009357380023507367873727903357307269399605762285979747995533354935708185697502179627463565372788873081513874989917069971821528028318913198844111357349746725266525884154244880176006140491125598890373584167995693184698870581291029120115967048841124497909935952846205905777653254447415190196504033532250495573396393907514462483663037993287788432022997852084108096968686579242692373741929167926977945362617380642572436103871708530735603945371647114125240397842382097131167890064630458033272095059427086511137293185058069716297140651656696607388795993072458959693163328158567710198098170356120196029633376955914487799038313924569865103550912572926525983241897204788721584770667476265893057750286398695380288092356357712161748803561022503644324712366807317377761726598237458748688473870011077978753438667335598620498037206152313612477509031248217291681475552739611814241251149223727049895865121665457936202276787241297898137162147552293434250961870828304062966967785305828641014153110177088173908148771260683282497202373342232448056158548393701580547416777873934128240982717099131914391091511034526387820484878650083923887199549800100501765779663269943947744366131414279139205486243072919281360757872878741669050826317138465027513018106409164671705360212744160056772874274057209495829959687563031680636569572104449352429661629048783461651160096582007717718738170521322233965693183439470522838459640137362443046947234552528151447778997512157448337665819461097318883038965259200031959401219224948618956162442190277422526824277214741576296819922741629765746537844509862599903984074890307848326382024587804528967142184029458628009079973654742077113188740140894042477143109249324335795393062913831393515868627620628742920271581486398607745956238865649069542595344011839712628135992155665077887545336515208673997923605648119816616280237314597781858565276037115604941206915822392470332037742242973833566572866597085711080383754200483374213945133273594508569113739399088439752806256197968076497029309520420643282061345023147855534484597539362006131105409445069265212371798347930691339106264869997884302119129808239791155292520268447658169238406350687988208116517812749064535395335890107607692587300180326855316961361471560560315542572275579525868319116431178674476404206548301532273242637788560614127406412607853696638626851256399414257011797955473978950957712817711348109996321625680064989400197072491133293428016879864673870335475041525258635482369098225289418097967258160526938931193176473128922169996759056692615329281635036718227901878033658755780455408318154761129614163961647856433682084259543826903788660520164315754050190966961856930861759003816116643303172538949144539348666789824842960944830420388607081646001063005239531121517898571950273067644051740623347164113862629836785806699479561361892001062620982243327667831831351099314533392155037684605348354705544983220330568665687154553462358389408646055109827161574993186804347405569991552616554698971858936222061803962755759009734043553322851469360855673179501428106343631478854227920754118870097809615407065885224444139177656125553324305264396177330696179966383776814625018502934609481564181726385277879629489424593393066682024718783540906944004726486984017899075549467602784817205282740395041981005078902854875222549434314201477535232807819883728282974456090250850890370178792418695617911311596726547665539465524579961199373686274542332970159671984564666889120281327327402541810764722597320343587229061859811004366424174490626724168281962274085293057541600370863759766370045644056497431492395794554686124005053433401619149170770241202046407462881929742861692653538529827204024102853403496102729835297550521594562625417964960543581202218380150530269047363338595103727255424065990351237198986274303103169087257807231511713472800818854920364449472029295329681476707322526340422527095534293406474790878205463467600469681107598095332003851211350824142861890817021319352715722590961354095679363810250722775834839461476195570520602433851940441306879864624729814740084650759210431562340259827745376947642428466435691050423692459481868142883815563566878178583175703755086952220732492397012996376546101819044761703758126738979011153396741978595678140550623724737482481116293920956880902940033254477637048333660999219210483772345848589237872069588892486531581559246897394945313358836535312691346121796282606463389905429701313529886207102886303013977746493003829171145167164960373479445370918665766768759774372001414779693559237763381412998463064848377999627145942777491889563093226711790601464066771463078790296394832158784361153768446026358971009203600452304302484484931636742822040767284107898165318923577147211832822106971787769257535395749464809717310882523546176564083236086003897187957250208928603064444681456130117463964040597217881098102094958183423519730770604790171222368737490401415140698880257956924992518212858196142319068097533289187225282341383726956480042269742003157756223373896018846388740972886059311229167668915529541847679437803145773556258491242230716904277248204589613654452810220896026945007063510354774222865198914824077838406197490894612634502581804601388859755686399766095278683184531312711049594067354101136675267816390673913244638333111952224514686512668079262162707046447885351218234111219769395443473169530055569821190829971890709459027097917418250905769199147084954843913058472349300350448999714603142673196529289252483521294893382813154168835328472309365170725770659571530061526534192056677425350631369601501257622960439356208476434277741325021683773786421886095460845104425949931827817405303865319558002146822458201099054139053045874735971883374209778229726969226479959653447658279400286289758156576623467246596587137238692866576820092949163397569090464417142721414677553296118620734086920311508567521319480673731900016625515413286581693489182415398883790937214232859828520947043346275480112004694065994470017286399056066283674485957406190593845028141039284282874002685102952550147176054781367435305467042557119097149061179737227168362896827024373736315825948345328412926635050199340853038060040750697772653985763045450926918695390431917208543922517267290412551176518368511953101864668747192849087089644257035363815570035935608065194840378176884601731214648632773885849419971589489154489259271661824781606659696853100384299358536542821759242368490264405900718210265197211836791419604005645343647847546578205736331437567019848826555958061762870856832406276797739818438942025205532341303041835169352604529664876829550887632557991679052067137779808469684606328273612291486265252717248888804596874915372410567962304465467788264195807893259454143764156786613341778523837699348038770369715361161433250820636708648687109692478570986795389198430180247455296043401688384594323176355630867371651560883087712228884406742805222746668233955327275248152369823998285858879558305988732158304029074570743130728131623183985228260288747747114035862318315655812737788010323426106363191952074831085984861722017814885663146627866843097819972626563310637921967543895371316354124262051979989693994972543906909459946148920903495279661973120870974900482162243184980159302488557590587052137770742695830763701962038859314830963544743547165204291553943743029987245890089922567227445080544981608624575165043927994675035061671361763473509022456694445113211746421929611137489951965972349648814615329484730316959549575639826058158254207461921912521291533732409692971590759974393211464357795932508205509001384802091933150792947693082052695678110063251874203571561670646552550755536835696039610401892400570573810383332849958890534900252635092550794115749138368864132880490178067407846158232564766031284133373522841175170121301328479491849175275029685081809698666367137019572638001860361811344771542076557787731684411652780367904505753954232207607481910435839302334396076471147008812047869526518488468244948571440906172094109645194121520417091347274942428302676864765854762128109472558894096255612343492426721238600500073254791516248667130850682152565187771801980696765778423796779570267059618966637861775300958604324675720726338143812530866901974507363148840345088836846248337067828980255549975422645411099738390039119883252371346775019361614116143289346403272040324522110464697436635986498570475574545254547936880702574717418143165959905848138203379015118084170237188647588986656885964489017609265549173604298081158349394003560346607999171620946518148411720840267896362577612037909256704639693997162432331342376946079350335053033898205478007698348182109128465988594465085527279663659939868205500150473769770852886989398276442751563177833532032372034160256575600706077169775345277576104091110859526947301564441926239702446001239822489068834889542178055666342806127442668146213177198357829904536273239894180192338928334273222925958709988546391241560495057681778884596281837622997491693734040700481980717989432057256739560138406536497584696086483309810345142333523910767603639449396162329001949644327021658103561495180131492400257944300472881979737600164816344758038997540566227563380485496394130729206281855729397282155723210201928563561678923500006218042956974537236460118718896182506388636968805233756935982598182507867766329570947643320568142130303562133180672096451944629860021269861181179365158279754045754412622911199439947917707798304998500593117448118497317477764053680070369213182332891573137662782831170234060098317355964194247793294080459369232354458392390971632955719944812676910978262694564762229476370051190719893798955503878178039830957703551307422920776732712796627910892388489178409657213691389817127186678295300087074933118496225765595546172044271450595765264218915371647691981902818752689470016831436395958840489604175981562294487778287969743168265040411925734443691590899130065199009728564529462804335514858935253233695912872746939101333588983035657306706278416127166482190979356557149863029379899083678077854272945844398056197876942137114252469733853976719999808391567691776044242555130665824605145300936985780606968376387290207673396676496940779706196907093258481918708418618618901864225900812668559383583411848258590062366666277398421126878942805177042325605081150581968263874814470607988206716796159701434188141018807757535143215150779481577581701623911320882908426987483703975401213286112917628141027706658875874586793322036547666923593041674206343861165077933720153895927675490885304398437866935833158466417443366350769452370071772079009422832907616634879902772178140162262729742913655147510121564404986723182033319341703755957504869176561303891249084717808428332461530611167206638027133778495202355742227114631458527561360852507298798203788166022517083498627023746748150420470429896514249689865616640886511999319841689568224897545979883280447370090260228697539330142946912282160758849573221926166793359612529556177536412655067261262982283639160087092683849574119218141351053443648857430691151072911692589641348799573185907239187855986671294597357783673024111275288452235546003342682872732922873882160220645980275702297255207132476774326638919485857259378743988238833532490629580530467132604185001910633403566581176936753367643542393779859307040373868942458825708819431567419819018273312813964813390067830036670924881525304079559203578122697597626479924908058592368611116775292142012449651245626607224681746981793450403618474421231777004150811793302623619769161876661653137422057601365020141813988021770099362127085717375077440421436982985013737448845326766780110958935745784058290635215574984831510921005400925113282994933318904418831239197354067625648724576680639793923844042806779587959974519884247810023314829979989838880256982544405169009206064688825018477837258322298394476035309655946519112925216536466383687912124984374835997666066655654989854790120074378270925806150332825113830765132818384056440897798417748643091555448541480599262796142769314628705143655120948641880056693295447538270550045451316251609789588354932109012429709449526974029655193529595174629787132985671295016694998688697886139904792201764106989966738002582637393022192858774792980367280375788699261511562325811128180392982631987209706167718108611998647042006678292124539351966769378888371596553490961644385704570771562874517806182193635160826794526684940671678824072852745413697307040807370449989959243818168347877522234579871718643063577199226074444468264228854799022236783418980140870798590461628272646985214629698549584269124215039446427231977703421661814445361487212271433803259566263340388436553947940662087477234137639062719425298370211187616843973039332281826501788907533932544482402895603719546274863759389632178365069860603890086254517673584781278973369829454013061349033873865573306912508588969758360933765942927042785304233138731526533758792717282412085441611072712280401839270254347296481350559500673273291451928584190818098955518796793325819060201081509225254719595514412769382045789729983158151396968645066162524342164019221027054574846005439556551874067170449501630302498314187401144355232966290973228426045697321092885541335168048566613917442324493579248550302397822341464019322954276501056831405428061836138798735291328341100836347138703905363379179033197469138633185397149898476487070925563140832596360592138182259029179359061609544821104192120170424501636164632495227269182958544683250409796491302157278977579696252941297742532380039380697271206488215378005931294266301293539610875197796597174888150808043158414596515568204377113195163532063179317346820361554843766162462280090995151291531153772118457502316692147999702990798490229093048862815678087412396163628513934326323703847981923068952451021018737341822744054779445825415438502460147034591676918597535214869905640402013050650275677115458808858889880749496933522911019316142948214386318695482159480142054158364721081310324523237677988353669850759169435696196332934864108883852400286220116713563539346937511156066633555173058508748325375622786616814532287527914951715476527391397321572376035365322548294336868201832884415438034438865533317326500555350674518618183051906563867028869198994086008464399035745927973484214766177885367293172455828893195926737217282832404130802276227173072415370376266142005026868118262732675818000936731148077631141327024508878554516576396336780543987390658962740262326124435589016928260431975217812731916214248028741578759463553601354137885668240890456799057801041895704634667367609185526135068601985888582738357884725920803308218007588759702649034410127607765056203429271275743052855836638130592552470810745467186772412728343751326025124560865718355543759975534663236958335007264656805401749658239291476698013396103714704976087177971074993321660425558219851322097439246581125619851514910277853470240256526785916852569697037029016243480221006572685932823713495223076059462423656780920738267120844132028811568611421021932987210847731275713981676413310542355385887413277294746605834296006840462083399090634019673568152985054561134189803836000096304945292609532745525263753585327178450146760786521502910413986937558029920945980085413943795055296292520367859618116435149740987684281334473712452102833527449208512864744885326562904554763604815094472928720713004500049565231101967359098045846518305604040979967168490621400531369548124676330172103205614084489485746927919658525229400171050691494363290530063144251620595087017519310247949905325265761319099680118603201686025326626397985197853846828177380350109557258029853188998719897223197729657138724385827584790075855398652609460852357193792824667931423379327342542367889926833778851070492299308831033939762514442895400824681234763669332871150414724725135612026335851412190932025795404202170565644991024825754620483386665551928080558413763206589975455167146826766198050612075639597015221849638322907648237355169085610494994715453477407984364417445562925239651803464160037056905393463876578780424240936177470872711597923431913525861373714715299994115823761038773435617787578607747128270760555379156094633533754552815346769914368595698638184965261856584721838428604692920894721363407035288073514702427186256835213270308297731162277705333168830342368698611362004171882660589171068862676726117457875236142152251846420783973906124499179579171350695047085932783628448871702672841568201383811376000879787318431670484435484741527100284785711212993581437784589329210592479183454518294064041266589173098504859868990613402343296161971786900214327423651221839176707295165971089543455895777275944862249324300770205403636805220632161650801421957927009352260851544217310268943508352942653795704588081960242858914022250685137350638977327109598174235147394777310346784784021263697368542218905221953015390366733482795432244828507117249872928171085288098276325151436948441344176502111474389153141413655479824838440256393688754200211153105116381263341223978335402264486581664659853325028065187339914588323936794073642394858859413287553099952614206804178620619710787016790378490086602637541966406833112122138801858989984153227871721760187358293913650418674991000949704282351241685013375573904390116223952538182304410975569321600418814945075350658389492755621862685515334165054475721890374392210742480595610182060920631914385529854261193366901921078242573294499433782291584474355933336496517643160286601168713374318428068066112642910683281130539059207217364225647662502887536719446668226922005822795016092135936089945407886039803731663974831195027027187450655461396824260033358067705851418609900097203155264129605038325417769734638457026664041832732047164711825163106034701176578038474033013130628058928067691758466921241745747711967958206421258626440841052916610367092783201495727900404446870687734234613690688583106962395237806063815500379541438552128108634338281595871941876065037191685523083661218521251748043350943395386206110223692942871013680368959082164459595319296401780084381181228425005736719020070352919710622173443809837453116219337968195149633776005926736858345414210143619841471221914513307872857092793155431404605761207064808338958953864782514635802046389315953184878981320862328772286713654713759339781754842859425074078779549742514199494298560804563747147517473657925021967873215273245014566523943395200257437517641301591990879097043800156180169265193486870447306709517018440097826667786257195679241845783243678837365260069330482955553110338211348076222202433517988987851201538918232047912643285324348338211261974232605262020340545736780820297666233353987413191259965073053120252367443827397430255756986212528009885724450065395366826261856952439754175235836740055771954656820650969507604335922166128316614077846758884921898812214657028642157749347532347087719648202464515881243387942823254120177622748478137989085221934460886590142709342833236357915566318402257002358846526451593721778499724297373071746402372699804124203487952536706316161669753894769126033046653785839838009230044049919187416666341720973641893988911127213893415110616612244014109760870236066263376639325866326536998184644659755467230480878836056907989424285474628400862740269593894375635638482189980275654349270995341250598998417316735262818441864450451707718899547685443013931643232700096816489893314499862267781154426698745465034103883257673668464017649651901617347590672790614319363604018424323165216656974686019744540863536971472814607187997063190691399359146205009779824321840684529145219885142433697789522105843534238192344448017155318788502524600127343409248557606619713996670177445866884688262320689161104909072624479251173831612219442754666887217944298391843600911753860540054755208572574731594115915263256172748619283479972221097340111763106558092975820587254441059467460536634910459993869580447882348821006658197792569098151665825083743114635185171825989860800776960454316906424029405458121494849495563234105736965587132259275491585873611670696045327414244518747523818035715620561957486006691786952698950108146526155538890276025163545319337906507178363220225863133360068615027372327218679290659064820141779721820459895784480195990364031104461436405967143521087675233749741168470734742788766260223058982397545795150578719279574048520326273781569038543057570268853982864640116720916479797024451950872196489466810182141427805884296931041268170440330720246311607224835685404196018704745655366468456170440722229024105560213895938425618709798723099328893663461210715196006254720955644829864565609945919466427669918672410055513540558493727623507120057599372943947686534766982090407339749536394930917275024733115260766296772068847869451045849150604992918620291427961550960287991081468951522921756788349086089395463265454395390285451369345157171948602010200721163245530761456708552060340678493980394857545091882996183471950489448768180337702484890408589887800141038609766960636420919585281296447378330662455474131121849616829197204340277158565491504289873762280860476455551589814193579460462780836326127924728506383160341661104322197563139995091345410970118672049977855306392904835638545270942111140120980226082143872287323259561772301814779958484295623281929029676828496577422326168781724595841171125125583235050044786646946060396166819069010663892597499570627829806727377715151163844057139405798580669069562944208289046124729006267084740862828362960655272802244640616992319806673126487957149528141731793444788925690509205596752225613124947854278390021106790723966280070711999363482453657888078035833580306892874784938200928264173526527654131339413615925644313522477255902970227856605992425436097982701533137035314722744752430216664292064299205500685669930422881633702314837037582425675712002438763624979270649034737513576786726610816154055955179658277572712192430150024253388978016477656957957278958428279238732648354371006888999125177779920203618647279392694305336876425142023183985430284526493514304911612692869140873491718061363776589063584850629447203211976844015352208386665185118919898459673024839098988237659416830053149347135918620736853256253491860192452388840384944861082117018869241713977818876846804637025356502680747208847059032295159922604870106758139105029731406860410364446657156330690105780757483349995222985078778011677214558170658552509849164737328612340040236367967612739286765809312007844900058728616489075916824993104651538645696064615965285179886612040842546632115624560492316833517477168691000389018695932629177239542911969105713752782681720299661660996042471530049291420765701230170982445233675192826035878727262403401339238089754634960193279756061286611232892238893285183045639846325197979421216922679752236578205672927331026300137730777802599781566921331856320879505138154868480798354966829966622587445615869724699922202904729897133257426398696739306137693013190020073654728839422585972123263935833475071167185397989969193803398519319966772863778646034506112218276709248671273599884888096732471756407724675869021204245126391681688322141854494556545479322980881516185853152078217370496935622355871813109286271494065283664196804095908455175189507148870816799829165834739300623748913707703090832521306708293030980132697886734809048512562801546422741615634453633094595667548036349908092640621852803885100723195326239666204124346347557586187376079761815531887367339327608891899995849293849141416376869792192877146087372725150997658916648613008061649140514290719120908061806843575185429495600673637195028267830153760756031627507388141584192324696726341416166839439924975662289558907498754108268820525967194972512440311526339607583160916552940760701381878778285742360340625676928380932596434210111267994881624367813298287659469427688000543576955199309152191829597960070034818967000817444416113497133620572454142050399018207688960392055651733728643680642582759535737006864670169500825766334926900819939268812909466267781522688666684849736687086189119089916862908549800644574000652521042240188902926127900826075785160862570470863314597529859264791234069940809392014008254757089599324057826236153196599223902013425143343346338125432808943894182543533967328009479413174614633487153518915658231880646553201870900920430513583767505461663590020893188527792565133325911301739625820388763217727556210862912379821454587022006268109189600668875494293519543967753470440952925975236383097450275702394017330928170335735043495909707385636211877701252717668065798993902932224636973584637675855920465085422747857885759615400755671425817397945976734284405105195097402937197758937253174002821777481817094529514678872671497555608867274647716166483828054886630861865860255310633465741123723125960509383800072530570811294549887549006707881811458438887589634755286003551215538111918386892453980025377181569042967505517028774940943522634666500963431755749381266793846953255402092245857311053705767890695599507607110128624364107044271610214927118520170481932898518987721695843032144366653319361735882921652664361774815852968348430422679071879831020060454267105566087059028599510845617893402465721415473369375619183696184581700057519800641563641453507055292412525029641979475537221341785603041047527148641252206248089601132260037158756957104356904063562767978831351668428012941914103054351499451528822336962991466711714159219420225484572564710027324088028283453926623528378720372243702680197271821759138407126380285461499325635470715530834949837951700736374430032893403004585956915907937231708960910896810239122465852442195322667954265976142415925988390356607675074592076749324068531200645949751288148681024912250689745320691410315352366346822314813246047247462077220753847644724553454893699306560134733793678260080153932516175753857556444881346890741127686618118945870823735570059038407638292994184632890201907566163909152788784184957830259452409042432009202428439225214015042076508360968700577894551569882480271274513503074786734038267645335910458324188332805613770628634768027819036972971342064545689842455266256399039425867047560976272969896360261790849180864938248135127198847547298321291787201311044758027865951787630579544271032776790562293664038711557244799394387978021084166992968406415765954737967358976077707645364120651701863058092272613570020847661128468646280874126844532774439229537944546731791057532709092001843238310932044300897026259550626952358745743802812283885979056898271400087810618012022274026922765222663849302758650431280432918188948277183311089196817481905060013851456151743213470285883347488606855378597510312755727198262917428922870104964709755620417119679238670990418302005456225673711681710202066506536270349491852752711665702540666890796631590806574993916497495912111906451781596694581589869570273502774927060709078250359953233030496727499017809258315927604175012458265395481164410590399466972199802905838739497254106849816205677117818085168300057441863128551220572967201619766477905944679694445417549022094967372022125556740300935396857369562214137392745036077761509296251351838352094477544791239801941819446533262942925729360851704782702118918758890873041990664898393259886804201352025234851949937971943428536776279624273844738514985224373155544317476206370891852058519299617216399172522661853259143736673372141857522332341376244796838011284853299604633675863100042738383014006546576386232112102939633746095177898727795021587046082499622840077583622478878750586665071217299330623985312022816188250615085614832958692286531423346781021334850655434359850462580971613675137437534182449414908955350214911356036610435805815858920068087416727147313647565176788586083732249055104807238651656600003996098334680507161056198757285580843667999245179523025741938621482015579392816819183882660802841460175290399888564857859671024063662561268084593798305957789604087797018129407643539202104459855261099026670031577531976487722177813918750093562386950656539535571817399750918163878026320806865403495601986301073910958787415689098204629601333091281308039107085390847665630155662057281489551987023159071661518533810848620051281685647706041439467740702617500094979921780817538901960734843007134642040023848812238669562150051507011513784937239046361632029630575650801028909998249313294666770464488802346679786066851466325207053811738623708245961517956125601969857587519838412686368573203468864407289764850058859594775720713022828131309262931463601686205764008404203526023736124113443027724722997885039226854609246763286122166025435045512534815994440062939159939652873133905142252399092978867746274643300610422621576516638812120678257040439962396149463317980849125182836824156758381182669982886973269086513542540291697476030677896508305193116753834971164317498181852102631082434189315649257628438245385779011958396106893607972573131209188208183253388703392667884294059340250959067858571718024682059208023503368816174224065112569939235532711289157976521463351732936055985329075535367978611568481567431889659208465881192103405144406599427376676447001424136810447972313265081279722915508584220649065087326307326149377002562393759906659392502540153671240478033659817587285824752312255789251866364613061789578357319798313530056005758805445266277540973048058439613829895443422628164596817078166956104080839729083349032762504143230109558929096307764868008880303687116783990231564839252241030248146060919228707936771648045332655506940465020651729741097047333480100858623177056491781024053848917161680499598709188814550735837051435960336617292721251344044704441364186132901712599196524430911024596970550979209962805508617265156960506340153279318749628597409144775671599671933504225225047932422480297507501759110040640103767669465220559342228596414782182902389995878179063913860927937000318042567632197870512095874895750859843185428052320361553400601298716609492159247944190792688302598224609266851193580515307753353263907555051905618293966080904244040339512724961461704616500271538250284223920935751298319429721870056787552037988356407406120675985647896838349602915711963259369218229927148251481687670610306703482178222023730072708917139781637867965237912329840619328163669846900539921416888587362243806030171605799241928790036726439713331829826449333734490221789560106915243635816297660925457586442452221524038877280509292685265410299093490107205091763953997704172430666301796607221490927467221623919480427069065645183799865342365854285566251526112536499342617758925550969678749646212068045976409799239073550861269433657373707418697562571923982615391680054180127984179906068991591449352270467556302459969502358026035320343910917871353110362488728899816254961440732432259778191345665051125811166665281599594819072010994801008306004189192961474088970318377310770296869822373986643459142601363635777160090812330868728498481991680922514562201324963073066049978607583926752960181547754142841480798902749210071185032848981863431935389805371364395218938512119552119879978762437188626267875189585605085800660597972838456309323625729411941574637274992893064676355940090700774112867029375559488035513237437833252110592183493670178906420838169236249481715181397008258035775641021502427551072103290660008371291227946026564693606621921648270019044646530049654191057830142659193795013895086987599130032972647852449317019352987714167145012921989118915082770680605003882241946338123877290924270124199995319472520836496114691002471966268307762556364785066887524294076971254725633136836685492788114358666022248751744841182690556063176673747067875199457014282655821814361983478346249389536114164828025211289336813432359806295184116832559661141373655321500525839327945017827357085401819261681322561846940500005149430499437057354726907639076362224072544733433202235261758096077084612400609015747019432954155905843469153993157055578339142140207798892688764958122840562940729113341851968362565286787776768876055412707150211327068847099853974544322945642606111110584340423071040331660557383035090457639359198703052178893141040941511069988534660395394958017846320784585452981737948773122807641058389962228150888570017044943270230207822348992374135678805909617536220754197918336170259957699627521449490981499643688846159082691189636140128107698448928639291007866617786299951187648447566082520746931847020501263073019218119895940913917158921134362531032599678222187121504781836209944961854157852533005399269793425107449390601043947746092696537360219979642184039041412080101333863330263640518109313413031006633138461303579426406899353815736577954332713863443754487038423672302949854208962899134297277265868770910363903532195402583865262740467050070735229249008194756541761501807449304387520254408641021356493914020729004748848810160820690631444582528514233531214323194889586359873320058083892879433514425108410949054440526787042968024726042081063592164821559548448166189907827616289124674382304358145365266224425744313893045057956703733661573989400065370740936249927183278738707528803591157185517272253851812855630214132807106927555019392657823994053702230376740935554846969318785193082330756581321905952327338394562425092492820930481353419872988855167633439637347420405353199355466239415995142992521921178725251790282302051814390584735908990426136083398576316837669260606470394394490222260223441528371281550752468475374259180302206377331024530728233191174976463211405068705204082187037686216736885726215856780459084245563903371806767106272596776325242376081370734555249494523432967989460062401000857233780409561240411955945110262883474730323799561121510908715370141752016556279640305619789984297361715324566501891778850842803788081622720728277016692798735184747708899636548330834630126447077596224843827995476873423037722134916029635742780938101143788667252166482896245859282516026543615129261679441160161542044141244470177874802458615846392474779812576390531825859920473186576991052184512841066168253307889959959771188389037879643608275952385734105389429036961613989927141591359320091885950543277581700065433223284854585420572153970512817821932690111267562733665679071377932429799758802383540877879033124235516079818552436383643291208680353459192868646207818795616419833468563014790809430154795387632037076751878407277934133455883418908396267666792581801847309489128936616472408737302882957076687006963572905496237517301937553977321530215398390953939394174513252363689117944745180590661994198964237476667515503067741999487167657476156272033379391234994288634832275472752278475228879851380667811215396439293815780590258684136994621914969756287651014964274649924465859288118366264564932565065325393503001667702440841098744004853264192778531112773706224653371485102945036488168205504636432643752876653763612316504680615178465461015455189208568257678860460722338760413196842236123167671912286597213612988722057298912312085609850436811727436758260187982958185958658828781079475457598538618098313854168315990984331436979615322422168917304851143760945940896979502099542193758389933250829136619381531845793627830834660818185005664028475977697249144229480326252503551285929961766947269912966300849137223568097106833151234298893503738616427949440156361047811497234179197569657711825234211586429183948058350042938666134955972578473098101391001601980098813263315697562064591208393086242661384520765781810510865800472507474921525228014909301838049390808421498358338995187164953929093360006726983219296330408435287410691548143054181769385920367385127303970353340413343769318792771831932784400168151467060950885742811655051005722101559617072401394345360374024556763109130217169544153609937050261643083501860676980121922222855823978450142492289057265548428443246501379459313287374846555846464382328755928351908852994310437798360188310992001596024886127270419177864602003729169818350274196821122154779530755854856669873666888045760558400886451430203882785267572772938018299000403879147068449888664867654338592590825967918931255263537098764990079133958047882564296779545472734922282581311329766995383021050587071744423795107465098427683754251377457539911850761752483772773169859271216638297436740456561705881956755201238865145556877089513964783596495425231729093602961776810460366443053292099793156953247195313659599168033160833021804622444484803309499264735411342613172308983414180632912473120422574416397943614818594599007187096102436287727015340650883520566244854018046713958855828304671477471899693742761595876007099636939891837356545722501540251235688400525210532828524980508605987137964873694099601559196423800555423625708543018764171590523781727102225955581278968807950916312020744769936284722321693146771880758669115083680963667758229492798697975381120206365900214691342509024320865430808367844094195792452768706961409568268525056490811015450211011302808242007415446641267833892895106514446590921943881543977634075905004254966279015046637931550187044374378063482810210756207336333117749784663889732563444971954931546388492000380111712251465226772343278674075352758009329556298542677965626333578273423354354571510734360844817249608169008032026517866599582047049016637270144374629035886156484627603271692329868983941860408789976784164686941155822603334239488819232027793524709789192284434562025536224884621242883208457650713377459745963821699544180888892864468407631860420703061492800947679595286989177742595722332940696677324316460482094873290000458598039316634805117315254330592058514678121600193296965289964057745679506660978498361626526773773787055893045237893072678832283517817720627629660988905673463234334258574658272309495024442479058112944124354321018060680585312637336235909960339568550579760781859493899973996278097192233794411230097423079589933595757831839455310035295313544996135636532075749877280901937046125219251815820896318092727446392151073490892184146735507285084741318020937787286963584867750943822216505037684644231507245949338941976492642512165705551448594707756362111369631598971908424972663931080503005491818285968796203567310980074943082576805252988322106331414734875375324951501104318438969167677840203217745479336513987296558134003814118197535443033536388789744665632891460850976981942867647089332322188335720925051435076980123901298596920366226499606961386019260264487641176788550708070071867606802986937487571972756814052450116033367529980279326362439103490190437971894613365239616321857934541666992319485921667413270453570097112153083916978451616026817071343138135315192810738826488304940081068789062609275665085438795339485287838746743204463542055526356045529113589238954976691311378061228259622285262257971017835118305145117991262190057483027246875027548276250648417790199754072268293918180587611266167783062259689724102298646632583031728473757026392203953205596251531889163269189811478779171049217054497362191393478994522258635253088318363853311795927954189083237163575885502890871313725915653440790227984582722321823082346197720307139961159303050015136230343359566914273438624364623257029826156881583587016609362563304820879560636922252994699305899464395145086235093068919291977069700700688222890888350024013024630374231059170145946796389637417884792464290197421232099836646704663578358217283412284199503964256298527353684571023734174641517480469728576481390843906540627124289102461388768884775904508479463033868496315709314784478811570287293129138579699151158063199872192534299163627401526635449359501900804027541809382552436285660191530364209546024218844455888934246880846444820475654335396976483431078994405979894465148239406275061979242398329263525774225182403445608626326889835927166333148694943900236716362017537801309040156997528468602579189458635930799165827568339524819820445337292397434700638583103093047128413493299312667254796253731560176989055887960065946439487313533797314368765833962500597479697336605822017088019824283022245309770484865846668141980449786477230045609316702378887105195566939483185540086241964998791555571510605275106793405462852819874498504553333372693813690632909447073389267766700643352795413316312817672830346745476397796712384133671221224414862826804248761457593813126674348235734233540807129876392969390666906030269160445858480786563329987715832391110231374597078732472988416040795907711498246696884631292224944891947994852214634909328388888631039167803196007954991248308931910068809373910406480852351640626871231197310491263012246271003497242537186216448986220396165298459610405624602766542858073304652995014670391390705527087978616766664856005540216533458550947806241143591515967973676332373201679550159766542929780950231599346335105360235188747597438764190294662405783852391130917040899449646405916151030788824040822427450968684660374016136826429726199344290036510468783713778461998806863821984138709810760478646372925166064725105089200567118048355485841357645316411437732749497479238229698471270090777522766119536961240976342249008088369208265698544892260402094718362329533992234157360221967289260246590641600043925694398125466195938043855185545121268281361032643050531033154356378313416791572657454551840505544932920516663819733135937827426935698455180923996061334301527060365925404203517474930474213211901609843087434826693418660019593255833322729083148332704246235772482617124706159438761810455343955850508799721055119520420035967271680185068520991569067469106530838804031360605232988790720106115213713606980535128389792353002762584921741422343443750273805528060976708791567058579262680506564761997090550153630200892322410648827251929674972722427950306956051780341507833334151058509052765649124727994653151491917782760095137945336969394788821271375928582398375079205496134364130194767253511173087866049485136802934019085735780809174482127091828842018591424839083192086537628218472964562006197796532925012930230424816591342431407869823875324977802758138005052702017716666933483836283238661596022802033979451941711995420379361270964751959149037694251967615304357330436103288022552291855632193973490842900784043504333850387891422835225876047975880193887817775823928433190061138950901281874011648852058330273769922824461905826741336142799625558430691320695262994964572190421884317578122871573504798534002918263699228833421594765991742263390215974254450005204299068059927302368045822969796621023966512514451852179245121742622199654366523946552084747803437587446552001100502755366860717877236450134229328982115048383208733929141655116584189685701028961507145844222822462195443631811528778215703571211429942218473379083923274850679859929522784509628414499549625921464382724576896936648939953653492249403148168386699974662124295894138874179969563566593333757667683124292464094183429341937232631789674752853020939286968457139446396630390339049611443834017345854781309309005945343304413504054895386076601221534700267052002645998262776399094447196987097816810990441873995702609657245624007610031170752602902326314774054862124866318794560313660151110650776610893619072839273342690907439106590757731780238688547650368560645966834300241165736974558182576105023213440186835892717506945114171312925429991605197863382376270324385290437057303861303747354403620768192525651044587977449468166751569406315482334367694522435520254875057001749175742857469638580125736315662989473282019242742728451214464918257950455450322701132169917930475921827055162909336101748351222240248120149625259195198082517337652420585725592276563304391663481290475963486197790016742782670060147097031076372942018287412671974284828536345287348907416222234607458600855878341059359538281597616022201404665271519782812017434847457434240342569836191305340132737149522259775389554223746451310862762347501024270409872414478937232665049594057107799933572067418630031251069272295721638892940679549661690168716025825969179028124853478392689269807538451227137958797518770419052877549257733643121501055003217659839458906554153207553271603264342596669649294441293497963413914628953513211059114313233694077139764497812170712895251181653134895163035690501535720241187680084398748843100555076910886973000640878479806188400367508978670219153105208220612781739901409035467320520836827920387675154370753803776709611167491787109553264577560298557435902961466085480577619579406797874829143561890297539863121010838389030030847530899348426259545437453890609764998532733570845226458288746922723664000191344801418677352922558599771567074486488676785887176561887416217043527026834583950420766661048004332660857687161924618591437239532147002494957033642838080246594377027484170361005576803770867949607012029261946652032784417915065173404210086886438352777283030460152682544561647855539242899948424740362179177555528530514688112686304484978114581926396463433901840724938441757042823246591430188994290728277195373561188976575050484558128183508039601773515637643426937034209960104559877940836783918733866324916885557005386917316415466779238246653773507397605014102309140485355803792851604857973955114174568070947882400133925045414885591800837863183617129270984259153975956899420204487244890511355204169724053552230307388555394404959102975012977374033916573939836094378342648146578767845750126099330544984806187634083651985701733172510334687145510206465954777369331694158633613576926384201399822120019385962788697679096866008944999615048406508802868966730577995105129100457986082316520970513496621742146378884070332735345499322430953970532842800710854549541087741210032238153031916618399968906935469960565329857168845777299841664210904403071901752188900247965760277373676447312103999489230269659441044753513899358622419435944467060443283780109451207400773184566639397545431323923239810931368713946883156940913466000692476387836486255003034393481475972560024295888727543394835506106410512350562936873148710020633264334577105641432697944228611093565148451098897308103358879638322904240493104900370643397176056827526160420914950779742026044228656832795929054950973609591460807393597754340843535408583094736953260033582478486303406465235400443082884978244864555434119098855723997160417508402170713433322873744412116152647129130719364949046950072123221849868591946363887396727377341345638607846950039798392159009729742245577937755798645122715984489339231995940723652997764086797664803116985096439639045253461898081185320913635315361837459123598078679276462184179335977569695630497618069256892868049728724852387506859169610954631010811651098942643057153108605865341989532589961080667478701276653779841056132564724909223816989177639100084296872846601135530925076668132532644222444338881084305323714914229067388566788999479551291420523614251500281822267469755118523611620552208478909858597563532624558249223641136036267255747005879907472758875758925305229416600016018253582856303123665197132935841115010507104161296800299048290283016020294273220619389680636555344045425950745204061678363865869889245409784033993186784716335657769308582349664277623244895073316070485014365083448919674653623214208754746873099773286799406457643609953942916298078865894510407769922729715586912010639878377937503923833443196315574317938160365669818176779452259001524663626224827730813325074414341243517950782046741920668905159249788780964499964647049793880149565914629861939196802358086214564248934031501386672063220096655481964271377213541093382290860222929240500100556624411548744349151160006363801840399547351834453385716997512392005726676073155708091019535905948306417800239868532394784257568683995614248570243383044441723695042861638863282246219931238171142576706198420532727909121821041330491659934670029088488521501093651934826915670405804129227589404734493811207707697235367562216780214222198121684061031985079349154635031581529687856904826376027964915669617879063060106225400523131598597564954455562471679825730364866818239226912127183550001925319151546505335661845652878946391349976289100844082257511354648061292576421853764163296622638417410850210923346476609179578990566989291639439191224047052809428732410811422026234346305391563030716702946706129677985530027610298207429257950338183558645479101732514524115390328220322601315512401609531337226867601533867185641408097137055941050981853259742674661281581581311207946077435511617683038716938787643071624104808064983986997888385941151965750818230912882216077244742929230022856499742119378694527592001029930958878084694034251983558334090570815703758740738290204577097059436185789025676986370798139469194585744156297708391917187647433562903709961738405408092003518331385445556572504578162342337724029256676813729151887482292161080822694578077061942388627679539217711568955842317568494596267412692924541059698292521894323861704134447560863239153425960464328922617924134204933882746102332315360504728244285968027250067151000741182587372311739909138113371490602387338236651470863086397821123680175018645157880026546504287322444641533199141306303654136662759233449944307925466056351398534612294290948914325820025595904678446620830635369959840704264654808875829579187665090263876850554852316708691348352935270488320759904943623326590579591929832706407768849792192558345784001395710819901647196152574773627798282035719277283153163864697359983604038842618543565749252980552662877372900366575343612731463198207610543278552021634083324183417492562710073669315960370069398443613504967515954275338949592962831106932162332944980389242699394962057196222049284783617659251884003449479587350770540615716210534116476059897964113772391633793256799827610085437092857064841077327221986934119155984389516970288177030657398562161487004759054862871506624149439519044485729675500147289368766272606261125130377628537016336434451049634084518085362365842964774973345379354895597199659569514263915250127471685467369984539310592764771049057306151206437409950079265505655043499875649728839443984704164052110112797627342177955962747013319006737602720044381707776373301909527742226992310775697304592248266851569383062046569599552485176962015365637268977681083948235094507980490084788694731757573982517143161451008608728262270389182674591297882243280441717131335744182809138602601062105032848765754302245290134636333589732329285049084479591626969701284616636903942052427546399143312219896368798607068110410654328858806554014202847937557500966423698763632722167594121522606990448558844389755847922350477367397573626707597141838175784387030902287018841342745083401099915148245145363020128739870246501177038063894721341981953164312899488073395174557176605096907523781261554967649777104819409514689041587414072554630593301740687061951559122418405913596338412493173004683452545001131437359435973828200303745083770641797166229496297509263120398193499875129276994359268859604241245028551579667260397613976048490933363573571417612254660000699153212686424908701390610626951497181710649020422505060933671403107556351413584343154675715515681688508045404660723306583773633506266028837694636244995523338005333490438890432671714351601728952460384570774257781480075154658645494807911432207434161522523131341487917639207144586161860735137115770639722579699563166343818839889781566242100401021275248468840823071668136394703977746290367814362757995972305129627704762197629416833445218148197488875936071537704017464873877833828582177883479343698628967767095754481075199770684812126969705863616153409121121071819374097932116796196990635641195293519302864290497708017618848554905745344881137123632427550620556628028923844676434003814465779618071859416904425849548738448692632806755904844202939936056479041021797566140947584425230008010777645719856736733831615841778942943451059838203875512907796809986702686511532841287256812977652884755224175732785488274723223228948634705679299007041922196607491392556520371072269989241120631638660607790345113838015650096252602281280582694924801011206881122419654481600791777196107991494175100925178517563132880191072090798750007991330910479436743222076831626771843539629250085473070805532180009685586760225600615228316097687613920869442064601370322519067885338463748837086324365160715241611309050156820887864706032671011646014994906846934096176143150778884955569433451400472741679795334078067921922804849765478273653663281724098291938014523211485741850613457297237503394769251263658127724106086845828537006553093967464445806544195813018128594319778858734010497783355328790690493808563940317303602649124925661279906091841442064662832891341899834723057026792251917136793286519363322919944497905583435075480822125942362170942678577668152937212821151967606166277828310152930373514967249625496261852944184475872412940382994137286220850563603627991069737855148989479905678999613893041867513046497968138503873555405780522763749827335756050253461484315737121048182863385824716994386262396406955670822799334045619606480712754578020846166031866083539001507216659938447368827118688826030090155186259116839723691480497677835000618013781678190114648547085476043507326172758208549090112387872067920849808776756240478930630760511777236990850993521179877302664460749071547470941239248930820391478717206634396086033908229980656543577895924769955126955282440438489861490840787186208552886786367332696311767168351055191164606885592163491505481644453264839616288543064572724305296775005955895554633537857800345701455659034717212966010185359296062649976066783639865208199333057557222429784703019393972080869621146905177299856836748606838813255744156381062133966563894516693193913657607350446857243331548587503615942808883251426079894236679008792596491745681252659099181746226544917735005114674606343995302645641034007765572551187461069815399146288500083084162079801984621247336480746713696578664542242275933205838424881706458694266782739003277258304488385127142112823463088367665614542211134864085156904000054606410658552898848593143038139825929025923928897554486568881220683508824346504003244442400105147998402824458948843926716950348036006708843978355489804663120152385856850159909449910117116760799054613833355806720248945203956514236124672081146781782498361177862183970883930107466333902214084739055344768999607881462416908048699690837284900715279592709801580343120846545488472488799506423395252552109115521365870078266595867030881867882607272805606958181193725357524949644904479534444243876266332543996695165642828995549965491904961001476944723785881469105942738778999127809987520716732214996558366406383390766005869453572034584329476437019831332454833823226537555680918196316139376998554636723074162867785773718398260129662092684850848063445500150088525849053850557641585227548569558495835396084863183216648373235865672051705009755305951041157442561115038302900854829674663026902059279185835978387457419097909857862817519139237360181833213077367568681653108695666890061091592289313411042484960321555399813213164264864331470932189988531725954601287667745427511466193216595808373918623739514925019955980372237144118646954926975547188584342781850254837175296836277174541828404971453325463263071247894177947100962559216073016622036684085312135148133308027003973197976739086181615753631212658497792456640344990625839747109191315723575503613581683942397820967131232806810530659677161884380151197337004901315795349372040263599744187074637245496522811253614969500115979699864677546914174488862700007784321118696326375774866046261362826938497139300617922477181192411166008164294077834244398092202529158112988873708784103947390094453801520182051223600731538226037371140211899229630372645445031951221120841622972747672247272928997820639438939883463243105118290171903062176466309308213536652500816673067074221448454044882465572121025197412945017452508957915357561613483561135217381481951014199445446834053505615159002768762577713152716949780685338905376023333748877484397076617642590549982600095395388666938284022126317278940502270927284512549223552410034977917502105629202122182518824570185949188912955377714136488505968915899360970455102205014175841647636751013261186790829262161083121858587020091431643918284910703210373186069141897428038223246961737350767459504035817190948454877551173073050013041788408247095427947017744907499928367427386504856509505716537814017173648572263842275690919124756898833706050474332535457471922227730219931726648259226273779474072107507258234595761132006971619693595848439301466548062422213334942318525617496387973974487291967331742370248730216966807004427270589509006362269924682898318271071816800630579989015621984606298271032632766171850152827235615008919032833122710824888881051700873031072401680465336009883716645127847938522043673600122467378785383845276022613727708326139141490549581135990718635447320376874130234209174308541227095133961712260713327438783352579044288393851564931686766087817136178371158130864835392071059478752705011994478733139116605087357351632448039808368068917634630790071270094614080614154389914152961328327946181980269388481771943282867353484619459776956253623074485084427352479321234373649520973436206429689503744289856899080840461689009946574494112163160374766694566482441750751391686734000449852035827592064070701917419692081710501244188129683605264661079605042654297980811556359643086969532268211183687206065154194890914483995301319723074747908618614622935340499715007213512472316904045276521714839008326089782316262393440212040225963338592224199476870872702433184152187419195250178471541066878450500105930587680706167137371959461081607061263180869721031094201145796311890605143591677872231820396394013727124645483916106337558826843121802903553528884863424319632711374521424540373591357284880553720000018636834880304258466566416588251661702700642144393812295740475726771735196718035218639158713697847522342091252968934398487456179090798682194621560210778049293940455051734711865084670494288337347128799282947857047249054638077954063383613075781102611445467080158597400784564651047562550823149027069053585233873409086473737478006989557294938802193135555459337690558472400154230463243929065908793949777363711181612617999512896351645529259232741018320140152921756653456525714301085763091744465914602418189568549183210744348729370515217041709017929288428541720512118631948531807243561732774170146200372257655131722478723538734490342358878818656733411203362666424543817780767202254983743268267391291298090094541462783897989936228162145239873423099966223070152634790979044338652092534361012390460421862640851215700604027316001881481331777815189605915802463220370556764233037177025755020338884274671230105344375424210041306839600634041424793476034482451725051826070352971436912420112732043525910704013110472924165749696635062288485246904123385418475843141623031614619743835522461751450371309358710688120370155799446638329650837355511815220581301081366987503763963768338369361019610414464365144079282639895340555740163386216285788610699217489635230660060605826014819496499257876202044176746437526838642261792072276475760396539495500716302270503398037463651070955540480152717033800896421533056900956120032875801094981023614315740783033235483483043503803110124390713964729646579981385919810421216865243665886940377857479057439376856716176931991457068514649787806843234314598379149307216455073463228971876063401739617660407747416128476087252835086505076547032600804774752751089150638408269465671504779501582836968946902291192139938205439896654760453127904723557004181261685513636084983111421097733983322780218828654484968057680106043971003247747934446771641567197894134066137839752097066056089086572552818232694160640706361024413707256510768969705931012939997933617032799280351664722949297917525813516924241004642120762529285239442821911921195231500984259365287324377283236698191887385785403597006879030237207448354313886948661939909859585744980677213668300756238812109739624343289274548735431883615962032960262671817297123795415119698810958192098959141873142937330854909812040087271872840414240939254652285143219905117676755313213458053785295420681140099930215978110642912529672435592132776505178406059581520221616593404861035443278174106644265632701260021163257584162032991701571717007441581636872612966526855109989175681949222592617928092488438354291765421890895957032384190895262188730234200190273936551554579391908932014846957141637616934211769063266953354114046050379215211697072843014606619059118665269834255905722849722265929087560303446358506072110326064520076074388791062968201308396604315304716232585466968872028841384327463605449564637012508596440750759235091188144437927396562025081656032824243218876720699013160625005269831436033319418868093178895965594698267287249001923255444516414042791750486837207825942733570713218128903518933297550656647615283431956825440521129308825027547058634129299597770721273869579316826592836961180331473406482348064241232241744225969672059600750246935682113291080510536222221824286962139746752073304665541146567376252840526924441396964095115670374337331417923687309455269259970245645236865200170283114793312853155712835736786667766573636265414263345629329251263058951400673316518203185829897976791646374678099705460471141921305998875496990098905675492507213147110934673427764557247537781539272277975715818312403423081362147990715037369587560773305030911586092853981972292584228501306312425657940580515570043250749478510308509470846203005098716377506242387728105572070078089319993895846091526365488661835374489550186951337299827792800083507460413476112358169531669510100934820957889046678826700101468570430868268021636956650850385530843943534143425325445766765209503656743869231486998749856010960408961423198585461096030373098373720753126205401087216037147108930376116385239718983565737875672340412590911247886172415343881690851191385832067776948633281045169677941345855659128226789992322114147592458689870989299168451036180191249813128355330795159147404915401533453142345616374861473410285632028510214877825236675815496965194128190404858116196592145137625284168912001000696709997523602406356375872971140218456345618786042395414516485079382530878148173390659888425224415361509447878533722793783170134234426326998008016238751930242268046700072969920053227915333450880790673562356025850258774181154556144932305062373739229348681840818041510176107510661336383069421805957943697654108553771809082158174726384055750882865517037385039110865157231719186368537105531711456597633311491718377831565027036718950994672731460720215945362012266460330484925841192677184426096748278693458901580261078201969730602679258911655370725277226112530299104206001293660820020687549742538550648107436968137004487744912150337745729946497585928018607770509757442078942100392545986720187259896679674376418032078248621291059182741747096855661695344085631032763087392278990269496975231526914159329161032836242216447127792781218931137572850679868256787924167127185579669599268691076695802818237685963733294490712708740540778607942131967300228227932481882566331980388839764966690886996093629421815348418087555480702828709952533810151062481019922271294863529925048910612424712297265223256929913833568085831717979418407874540818311690564437725453389797841728587057339004604030825170454736682238965099039524997245456373031072386276876106029281685062147046182445827582279259311742436523053502980756424563498221275498707595424832284070108932608564033316282377952016507225636890282127624047935490633070177890374737372937224580234265604082662134532325592893729797432004995961282865239190424317961620553424497309460383739038686241351351834574565003879214493799992743701938094181112221546892348996737785314026159258070081784206371530364128037904423557779415130912715553974682534045178955414368092994448375526820351396600553239752560233622666187423704905904568538161387081352273669008679369650513830945348357580003408899589679492694883677533448218907147464263337534497295169287268964393778018235515387735503050797611885307226622181956196500728807494718718465370449057842683741910845920620422118822066952616077694987280999374698217821607812588913233304016559652646598298405614902713883637278826360291212841357681053752530816667749966947173788803983958164804586853338557420267032108356103974618476225067873283663060834377762884810175455333466027277912765582847700296849680307864450988672838085009082400223890215934539042514198129518284830968971776283969794237289280840824289545308370477357944156938988920691958259652391555937637638518508623367283386233711478895151147754543657168400829443418177860807606273251639026279190538937441740881528967704477530151699526672987325001199895358700728653254097721251114195614295452160015094216949781424969992429770045944518751787806937190884252238954058393574456589413436237008379235366060592804688809837516964601483740159075918937487625279828588828423938386373839260935566021361854652983018562751816645007997076867173732834532494421536617816479111772030470839956465845137647380336773399909102649494613769722419659087016881854413338371188307934753896145693347841906948841940855167214189385259582012965743573641756128353522134580071992885958224770715419534663918993777584445331408762761423719657951111367557806023732308403626803918048762673161550211503422901065029218619738373903671732711978000113695461069951150136346137312767122452918442006908924331553597340099795173982006700908382793345555595299357419794330805604357267358621707741412444849610799100659708012727290919170416697800486906460871934487260715096001024690217441126739566280390887851653509955641588086477412289324340927309016463241880422157188407988112712284562533802710369665950483899954263406570260631967786769503732759727066917059502806337308235971638878718344697462907553701506020200338792930739929617587893437349794162862810707661212218656378477461601648327044424628216653259080488076921252341641415078395305287152119595826154382406153994357855569314639746733207096232752045763568722787000726266589317268276319230103979628012441312094917766334799039027096635482117954978018689875394728418011942354183931526588637012920474568617427921524597221258485629481376996103859272353053936508217761917337930677473432532625101826030163006783432939110073753528094089512877962966394150262306276162313464731375842012291585968236864630437180085390488616410949582431728586083815292257490296226108886187644116856114875529025000220343905753098171594833030147413811618190836090860822459215131900964414210846255225710127352970090962043369999557429989106257118301712844767280458447446855335404729670335002154524930470192348380107984596583288899287521250252523280834279532609428058863773144074860612194957726247072262419795247992637255884249011453777786680860046990554855265092647279508925604645731015238828497764901381396339695757962712478809362858339641269070603890291422105266731266435157901934899024579902860335892705024200877162902102208189154321754547594695752354138771394515038622039519615813776294384073138025115427829803094308493055489355688842691419922898440039709640599751421433496637810524323736665591107328533919252222490529800024357145360385776733302983317740135377637700254040514069024965887414927774454274875489454045418242228333542963722414602439247745862023211305341470181399767829051856325958095782984956200442467865253982675079278096436332909402436252990691862741500587828260218293851949227128209907222653417946140869213613227400563666762364919541946687640327032993887298635027173315037880340578698356520951567513365891698595586885256980152341446391788461744969018973961453502649942109712632939969336099910578463559224008523873069716083479151308400566173450811151786451041323588884841596446886763249712203130010925309069261381344063108074995702958295026279353659909721911846132619418450236183497144892437422239847757435779808930019937839314821551986455359799782586557809767578211611504771346445964247462957048363428121630697664666147399735020138966639121847047617413535313689171060404724338462810666820873031682145190813914184016020224567990495968845077379227160330161673048697854707963027612457353955524336898627908970737001800871438074694798279233024955689173105925624445765492508463333131256075415266681349043865505569876106573790433785705897866120796038402904054401986478171333828744884314394953866779639238782460447975779686401930745358384083976553418651840176477598849148787084269639382736920772524551027777561041662205342639643720773067373210040499185064193635419440454911453631552983795226333348420533854994145353232472465315888399166551143498934344584701909175935174257874550759635701926300785632649502257897994672651185291331565349584832954858186175627108242126323344331961019451645288705007523946931253201222298659803054802682169847356691455545357108802191240101384345680069629725609672282493974684161027588702456816502202948005927611689583996411950380140072836308431041849461734457141512708931467232753404382180883418663983685110982098295677852287510910653182388595328825937127542660333006890508443194168854918758015807640928402881976009886424655271068755661412937986455999446132334207134090676899411563770248962724438906518647554450366688395668275156893383706887050070637675175991510568327221009292011444307412903975863167508792554727949870070091536826108038007350517675770013641964102398875283353713226276064419311000768065844753163798613864652782659473184944748405712584441656813561035363802151562966632383134246318428690147834642225892197674695818762617727324107630092751623329522731128290119985022302224137497335179338634779250776172516173414559106689199918998397393329285455719212347400525395945129002843969327052655228464328295946518130024146935149553656307830084018884094049555406085176455688783038039568350343635601573146594772449369103496927821586152401619379524822229915760398414921672953616251864046466540739102664103133120904611440258741955736214506347962980653020857107669128652540317204001566335065934390031781205002445297029087787746662286914296680725822968674211748938378329587240232702283094108930539755563228508265870493531280216765766369917953958368576738432857642390780641573357704213594309466740835277697269966037125170843096666766988863200914780804208515211894793339457618192961927617633519921204566706695791470157931077604177612645564080786649409916345946726818119307412533877198727901421504955311012556097987553964243158285220319046170180381752907889978023313513693834345739001702715090345009854408186166556566800555211922391489088769590840357951079516384221807126445162620999429675404647678649556479032971472419982072001046411812540451235436054550821429813307948731342831692812238590857362079138181032491089555146105126704652599542046784046594971089623126428380003226163752033058445939027422269742591440463247372851404879816715725138176478220921825865124835270342468434331682726485924920361374468004884196625166713576824121967430818602369244626298377722843417055888882875316368141064543992065891535274941345564464380086165502992917032428200114297213261914141757776640852034920967251564869287020014247471925263826414544628090622270373169224984703327841226465969346088350189010064299277009839955523876238299259688747022069111461136261118510957727615538032422326057965785683831899842371345287969413339772336920606109426832454816525103921086224214179237434273984177420652461788590720217862719395459278089823821829971471838679849374929649302281732789217338737695576418085282071391504199392753115044561864993257192003090099898492614917086245663374741765716837912580725222398129079316826097233179066612357740073719819061229452129845571308282798409963035835380620356539003635159388419949235121719756495148215149308322692408516532582841990793716351786514136986579343472576979299296506254675435072608402851853343029541782734650858223330355572466951347140140911490646468106002675286631525823726385702281332345524826640946343406826534845433084020998886317586544539060310343967909487607586878567616003441564580537812025792690220352347062821551222786489509307559607758090808647913583640270333564203519371153816060722102648887425647354345098975093501835422638558958840453628324448500358962193026465031896883600998094468431251060814725906097739865857369555970317794858977300692509816409235276701028393169546702270330713681537210802020836543948556998998036531649630672129298676999765823035792279641905971022864331449293469261282302848253138185889996069105391198892655880779271522032261588810428410640845298839501750974722876628909587289521118323406798265812179657093323015800498852176853020008134735608790126620499594407929809965452281620468659258372773763663091935707095838119976887094616938227393852235551686411175575685872900457060897509808236656464655707234970686393995177596521818726110012118288370886528666642014444086586377612362660318955407074446692162654376691380723459775799739648839291350705546018548555102177982530978409788194723741880459956013346797728252589472650700384282695617072853622077581798468316231388238531997670848324877049297418021611206877355649952747344214016414966623029090349512626812067320749337687786572141785530082744911548586783185558123786877462824315109582727065827168354388176277169500169984548662686084394839876292693724669025951616133731112751896777996482043421861862012998182706237472558017814899382507980906829836759085661212036511961162228611544048543776824954408476105628435995506442051954034875329920094852310980858711117889077225077858392522659787407302923580224343775670485343541318480410520975782525387243087688488002138165499387504369201201298856092192046155915655348318196766490395156557804366488000370520415169353910778173428937872598216109043868260676909595890414354124768640778537631978173816978213042019488872439770156006432937008309316832065809993437765401338098613422710611512163531072771559867538001653459892992278098578663494748369723636538295157437951621230398027845361098676860490038402518240899489624444373982519284970094814124631106276521864460189585675724609130575438848100605094564341607176594455705214045440359704784159254127464350048411539925561415954638861106950604901125112787617271207419154091241642467239529245583697357346886567379023507793262221495311695195794029613345334832075884852663270660124690224384354547003629117363004058674362765825054613829304645022984841594010740188087116707932957668376997320160348041112327223977490863198351741670314478906704524504513884956654905749786314070703450078676777667145953797562271968604762495266003464835800991928712485302543130176257391488714881467868789747725529907690437560432913637220630206870256641212373640360788680834506246422637874993714172083831860202378717327063186688618606073629634193070689047661196667864900996038364936488412340319533483325770292421109752012129464605826659575362033062133745291012448559667724761658792089744324940062496691177828686811078843541790471624809392223919658939840869991201758779189021800748151063951501713934554906410198144399202571334046168266447168875199232797822104267517184671155827293957520401561147761282945093913183433922154709781772978186828744123225115276161356730694447500287561633845513393286894618900902049662924591208989371275027504864646898741582790240883892361963160873696594571954048498565466055646596174216745135287769666614591261663332446808704888650605324461453216390703854458966133907196428169456404355305420291768703285924851310419091099191188434520013368617132267465645733778549757711935512961812276261774350816115522232040389326511557861334656290191646797457922397188250695291353814262577013059513987343782221354139135079323047953406284793599474664855470978470780601383802424888616671743188858011481544264267826723966604981682907056907205368237130535654801977755952581619631194560639128770944277515797908392677995241053428562138037814537023278798133078185399306582061262101005252840012216924194321223140382066905714884378454245477003887436463398060131476927223743826971277120949346303748254272568875617595233008921362179426053484429278763574880554642117471937993863415495608210494773878787963118415603633451932121382938447282915029939601676517398187706718006480483788979010375177723165562981200158286194408442845665841716098704302204558649894584582523476076844414204968567245232382580724067209359174816003839985303340709263947985777766357196783447284169236237916143660148388836903939993821348166833826786163634560101002813850145516099143529668568407189188575528907465792732931410773107150106591213465161547193789280375003200061462917227585067900293281787931149648648143457757374670015860370508086898744226435657102040439484102924735078713300750963371349350972350796191420677339532921042108326063592261819578366699762027216246563740033267354105645402671566179425276195407513565969190799376789864782850925419227976873205538245106226639970853427592691339659345159868664513428996350575047180918509787145221010860637583434658756755798534435592308096869287355055689124045718121838844549024697352427386012493599711602040608839147106203056113805235743184475662342580676561654715924140126256957028224993385797460126290967694944807124940340766211094348275973266639400660717985658447472814017552011985501403977812361465249426331086674694865306066287288487295366947085349738951399728690184689691745993203292946673401809864752799856122671933365293473198505877091449968784698789560775981063015994557192969242708106220598534129553120188082014100668410996257088634926384352687624350875406849483195391621668718585406498447376263769816131509865743371618898710875952748262132680120181884336439277348356205910012397008342673791490820048975518192050055179803203326343722378038304892259674593183616526468114323258859322852935488475707354766283125686510194921994130673965525267164536246530832446904877900146974971602544268548314902840845112513013980574216800987052857865337415295713722289797369176779400059428715615560844407185269526644715369384315137437459619982891703005328954900520287846986410121063316522495178433062234287972064486333850078571406788446230120646223411641570650039512918143850926284825805509200731661763093567049252175410762039603004587333416758079058356924805209184082110375151139459146814843240563405445376645577268800098969076540851101785509504029214744982787570568986010725195788519117429973569139766863746164663851507225926205429393082924655945381654024705990153465425575419770571418625733179254376801699635212501831588655935564698356485003550965793551294954614619551583690989753425374475807129088109689382461863804135430444314992908334644057290675996205109862914382096656035375956269320421743038015093949945255520174225968007602018680196855852502111243228544517757674193635707925601357164672595853340401448236365968799614874971218645601852809358107168322685242060488852897532468515239395226784406954674447135367775860597007464994582877827151925712107262863652875803072580327655283955446249817629137647296305437515850781892214987509178307683395799562097545158230133291705593919178979249674944378924353681743003281162676613521199653661309416299028513907883681370516291644349062027333941183633419157111331137896935507166607841567536708407476926537649057053293587964539362993812823544726240515881303567060118149476241581971728967829432000208449308604414091424624468826247087770385033411097534276359815217769824339515909395046381525353104696639883934959321707198551743753753639917249763105724291361051059671265493135332188425549761317011229793835134300970118423309990599258490734724580115515338764022431148573654660029977117040662884529047981441357465185693881159061276848750284348961932794655571015649311980320614164257898892025694133541105300043772494281541600545423275299961130308304890866807159993440095789612401998613670627477793268733278755542820752410213264533447631419486473711835797284424840537100141476946311362335818285968486503670990515445708164454399179218599038122594092201255584028071505332170114855369476325295917687209550213138880732629855551869723660176461759472232359301409139403720894029441194449515012585960013098684278653003775813476208846842158253183505668087448969646029094070465799046039177807023747364478607449669294966927850968760385350342888617826609306480533516912652012351611001142319512642586942039027500607825637524999480625288247230781126175499111058311426298680381052046280439704687194574973746239001553188740093904545916314836073837200955011112753116030747456396711089782259284409544557347990144457764017960631538790707006871098237009257668977846702595499162054484208061207460431871468486424592269066114705744372241618212081605540270915712267422901385910226119333402425484685349944959377089389466328517818006367173370939220540087984308789082397457683634237937544708659223855953909836688842731380618184692520905322925213719815799643042069554156356728010361775054774425797883849587706163913770170927828767156733135332616930043633248851967942842414804811606976947373010106175097888378719177890903108008163781636864147789110354820521455747143727157286141383667020855767370210538669386904898231182397075813924099347965434945254968893708979782481606582692788766856470150200695745055401808329577591166490951810482626152688270457478784879882191882278265383125244970369947508486772957951027504832218868783349858816523898512280906104712865501999157065202458824530802680614696960872653064569214441555841820150071576688460148347399183151738470146781676238059504835079981367494982720226218706173970211719409290738208174521167703334796887180536200235584708404360767557354118493521184779398444643244158085923526794071180694784126985009497140181798951569606441028813980552747534890450422146935519355329271634047223435429586025565842297313408678616428166399809630661589611137959401351362316284856078343974789016967056208462280771125028415926253409822029231264256922105226693778612268301328467994968063348448731005017116698357336005612287899536205531223742588494107243157856345371064320551401340725894203916823767333801488952331080772474250888209622817533216284337374076821111575791216382537175609791374654943721570061109625987346974693833166009437993226916006048550705435103741725479560939815459222212776060370056660014446587982325254957201805725402325689396335012803433590260566020957389481732011376545399216691808186045538234287891184926053719987464338211608699270306751972244457678706805002964632898576278546478779692298090305234552092028368445311535252018292769117057679229281705576416207533088376029587644539553263692237603761018588964068776739367253018685793434106049926946432107168252645592210511956377022390944138872184598684900085304405176119318785413550744017045896001326202928339359667488342696371535789785583099717008991231691513257145333047241673787708659293437605301478540256954852851710319812734276339108340922038198616429466262489814625708818944251388675259750638561204712225055718131197547862824410753638254752150806445264117158615984974988705062032385790744211148023281979122045813015039797902599329745540693505442565925995512635058701783087106187614229927602193393535549133036349141454507324262437085369122926933982239274569725170295825716886956086843135262742556175119152595158523468887637607229471020728197088373749674111503171225737881653437514929079677948598172573907380610746584649656745669097723271117613691824892879660562504902256085433910054041032988272413442874373932368907035646560541971345516472001393382360132390265551739132059005594541745841030133735915333069667402723681689414247310696811409712012119532227333499193498586997632978490576908107343594894352793893011212666940626135636435426665614951509423590450713157102905111304124987172859807966116878809461708216640739231161961415022413042085497544805699626233388629654139629637583890768428762653725463370191710207435863907423730031731438396431834147062533939961197751939840215339124447655081816764632117557636756361883684986839694988922817146161091270800401253911118621756573839460132889184035103973921628521791245073872503704468578701631234085028608320800291670079918497943900003332455078256077481339955665937499466118538747650303572004820976024877512164817629084560261310558513503339653048853287369117634447470570277931464490452135430850968061442102122161655448125855287838587198359674355195146026546818770843883061991474884689317461452116293304634181137934357478127644564545106264304908801303937459393842481361668014540903703460637528230570384651810686310419985385430157992101582270510478151049292401117520515869764767820817960947900096044071738937484705552062216328877589448556185318388508031660546389535889041130105267620417061464183711141463758937784873543683880896710179025929834002845809298508155651646584485162501094411676913500914885319029737968990126663557027674508409174086505166262690920611551621892846016898005635329746057349443329418012937158278079858925924144798172480576307011359432588278808198858887341563439336136295947006520051562789475183317773846280043575686622341637473128668564404754216598257234568581122382686672908688926009117224121627793359292248859446397120134950814745525567782655998191371678962375891185197609337893365369698806175796835545697352787182371313160619731949895779412783196070712424563054022778772351310302380730285484177694421040054382302119688055815902726423484409033145829001234042409701388003826599940164705533009844455052101395134658596733434891895539228682597749355969673148956359904196597131786043485388797669024872163162986030602290594225055050768121364386243731555587708496671319271916351774852478779818122627943155740733845182762606797560143113178909562062583064183226547870053040944476061445012080600389061704594569745173379258288179776726014253851686098854419430751896678702938433169463829820780446008211349776112206270161610715727764909084154157924102805274598006659037921882087122634028730708185712511658067176106486865660310494309330368660377512345519629660732259832906196087976725723853413368896751723065516615289278428511079192372374160662903480490566429713713547970549473579043647908003635180439975625119183611149741129397037640891206451636125345166868911803441537326366067713551845732544075085900221495017388358508771166706511855852037285368240133401219073835567945244429339319189004271784125118318353883141695660981741612823735625867955997743926459347424381919172027561055031570718123843329445185959153037709261973633120299393146371078338973902148778409187773746610153024094428850342197117897864709600437888387489177486902859980248123590342577062033712009497358231228955698881062680286652486888524923541881231915568872089352650665358672675189206024815902758589195111429245159498316577709615251878611880726415118781600097878209593424405997569422907712051277443433924470190902807911293703088169642894561013724037961495839867509505813067375180280610330746109658573747621073978338738973848069973564734153850706743320010431236755585818148466659458525392576979276495742419395564709516244866402344338858125092377273835332055000440110635236343021951128280363172478777077141203106497852789272307264058980715617266236156874733873042142236589787315751433168126406156558972910491808005616558960584695745953383298814578069073412146953573764215785699273864328938929661428793375583326388373550731921791821165689291817574014231822964833704121227359204075652782797802831530313392014196032825544812989891946778730009309451707173846289362117607566071003551444168961566696242895665475082958661540735140135677642373316239072551775807821246520945505862751097791158712187170927852643567349830966134781023694493795792842030967443963743427720188659508013238895619973293115485631496785726387192962999643827566019026290904355584060176193126907653309281701112369028651298007696571764745104338094224356787380074000900669593003224403659916110109249417715042590631715686664268766522999024175930883671026221471358146135344233051734266280772266950176963006236394001525084175035684995471318079802313124668291919306483062145053974031411144117997484784622919655730765319313316012957558300927508474820404030414484167614844808127235346229792980180007658114055118097614704826930647163820523718139335584112254783208273077561074555090159325722236272059101091653478665259460872640464219298273098879549969083797161053886942513701000188186045083282889629575637627759511385232122056537278744259631503503817463653123624878941134185293743252868762184184708510247751160862394524751027319958125546060118739827133179111919155561543279935588812980487602150286267971200914334892800929691991847477707115437080235565112864397359553178326241422181936928253020962094725362243975431104040585843817622321856737329870201443084284996627479271520289469519884659844710819187038323721767174115145806692632765283828203492822216425664803482309383444711453412379530772265091599006133985858244621821473652781181368730224754107678090146615254139494123085647644279141034254800797122988023422076835947071553638860408449014413769166147434682997410657785833063273775483416872645210403613273361594831063049247872701794468442836530436888546197124583377271650580656903799468485625167421517450047617803874458404220276637938125092789090935940592232893186066766056115867480674238855749589419913206670483838165271332318578204599098216265319963794014992314935489534151301600616317663864792811447914870902222304030019956395600218935570551459561641735813159013114897902688008866661875148793934468662238947931036071905050249029527158404298631656564404886036861032106072768213731400969868668282908834939910592041914674011662106429502405674071537008218662019424106413720919951927820906403711566670644039014976089121568452659502046361809772892449801471152339727059151023521228013394389440763741228223329811841911879271277130194468791719125045824735954079508228354290916446892456037022579422844349488464015415858155366086256805098204459831009220666586428212747845536183223575128365670224065509067190043810894266247919071271781094422609320334557254384187310480966561922705185570213327497591122856110448189529770808567522661775130475839164188985263987757726835012889666928988840526768199469770464921871745589360340093820883356412411167506722431466305994625813646908875427241275053998835953717379947112803446423822389416750523135490125286737513031603500966120483510544685280331266694111514915048202963177421857770656113637313152841213277390150820642326144675612171401375827914242671783301141997769319466249585632574046668046038727629276617613110440490389557075086596859688558981742874227438086382235788881753153351330339039916952016997488577894908573649418832258040612189376522666987341002402540046377437095033998442433283251778611732436337456581142615604247161998892988829255215887911068885270705247944215103240411193245358643833611323893427871638891649335094609286210984491554624306267604395820090980414680549524675277090387673298382509980808188386556210883620348674153162433741342198323658585634948635171905780632472911379287460160716687922775409357826765623429915024453280667743716711151104780662306460292228373736924767535612882827139516765653239141280207263265467069650996589720661488595786600105258727971182330356452221782985914719529069719594183393301448235252999656674022554439136888164523485279077689755718087050811539612732727402023593344262118328753515973644181292546901222827661526800733640091725984088439192000371509590931528554425139330785215303301924259871556473825614765625709821120232196124436435756901110274567549030321651280423018315410818164633805096008550714920712615193266768203052627329420846541170543331370425226813952985824258961069905244060869098131592031600919593307171111023934059256988979723563346016789793826438068575621006507692777489238371221238137884355353759914324583875908284890642994473870814209003194873916078267585428156498674640907012994218928788035185754603793103802957168486972020017378544954912392534824690536756203334094216314988137577780430345332669044043070665188283093213460115033818562638850807084442704786664820712496743719565065376653762693221259238555871083866518675199409504199493663891711151526426428414583185507805444809599496845924953108957673028605530523833883014161195570026042745427866044101049821042250806365810943972294087165706357213589514743735067558844131074188370043259127190417139215632343606940155236509992792477826862046746066820227751563312179928448809179887433204200143104019391541407445960560795038457589610059416849437419795797814742595076378348403607277257174994766719598313576208342849103609338243356402986023764331820133117726129754362268623512116430544054381028393014755888346526074911688141657154962753039664972840291074329251933214070687781324660571337501995708561651672117655249401162427123496398372703026952423811565503491932175990812735941260158181552096790989471485052411591273499320047821997225804545103375681254080358705553148208166860922190325855068280750401498862359932730166216312939348774871753090001930851797647704130183511371316569895056880851740215196175663744731118078411274064781437212225685744546325311828884178945003309472057028101245678682058643199579578017409240224659710783916739235475629345931993847796187208823929917566780737760829080592897382914206810698032368839836303492344636396002669673348138481628424086324495599244540170010272212458257273757082617631076648144141493045868791748564050751538042902883997509627169612555868857424655453026349461381509153001502899319535808868083861089930948498890207233646264200501556841137353920293798056370977593445779571092113855034810429645659817253354705941183920436212159362411514385345436971013720036354796179945777158079855760836883962983856420396026309239215955295669025088139996384191469410110337891029795430770437516873195962777065792899980654469944332274018627915922377108806217370133548806137797553726477090934037766979865582688211238633695726480034502882861233222901566443409697086334379539336903645393987859274545434034996704615849107663714642778217920398816709758325357553160950299297553502728671996482912736832109613366862149352341282718733339472959125292781242033887949541271228792529446379753798993742683488040838573941740208027572531279495808340875789386751758944701002878243954153029175640420866710944741580319053781785446136299611660003900692704068732072839354344527767710081869958896405147456888114106446233190799603215188828374750855650776813509942438395089268092371798890966662340292385222722067540567611799405582366625640669282628874731130087802387976159007023866293668983049896959387003604486626541845220455426070346557257717917575933370273462767392152836643281221318558575444876792041046674397408735350983157502763010643671900156897782478854224419143654479843584980177896610440613222851006057602268077260396328754150820320857897851639545185563883031872081674931868607547266571360507552348167838379997281130979401436164485100339529829909623964078807824343355585501941859446758202110081546495036308157941990071296094248593170046825617698312383214867188796289963832116983234684110749019967183290248589544273143279712951876222284874224579049385389059283319812005360052684121752575641749224719493125028211092202028637889477234107119664764370571111572353841754553654859330416161047021044667304556242872715798663517473698550980465783768463402538207994517890921327532224859113917869104061854697024387001179431993257341856858514792254675132096568067398848512392639671933497586437607500057455832702438707421958712840619421916868766098270912767781550871939465930919453362092662692852407390014235829125808918643526264594522129160972026716927590938686805867143825774324650737042012984152397475314778239370485354635816234341070438231121227269341797398945286067966693424137672904754563125185429982404124064834657822487719549365028195719153277618277146430623808855950518889006286466704881275354599019321787026924218471739765657659685114539992705535180936039681586461463646779008816389733860160389362955175889869749102507770786877472145087474092249399645507893474646041470189975759685625234179662036827980637570326754949095980578316409731360442423674337615624382354214443928831181879656871880062304854898402130896267566853234352350773691276568140872699524080610421852823255973429773839916112446341561084324950451239419064233665503099284807937384449898582485238615344982380911410866900200727758494701446098974495199159813896690647334026130897200047649341577143032248948745055378719913228098415335129993070297047130947498366538665527484264939069932821319479919674307223964776237149508573614923234462179941986433083767572946912950420544588043041182853792338075422959892931243247469157969614233783980935226351586657758261187156721376338536364898915814634983000547628674998188110730867564819869971645206451276386223128643701507160126132336790531781785823519332775894333644287612342124912591979768947749831524366412134010358799759556945301421831571272828744346130063938020844629151447730051070023093802292521428421874170120004313623378467510238939689073224271060295629227730008322399790999593021596391522512451769939371040315944028792020981520976602735993304533172818095234736473523922249381303384591560178482080496399556044162426570920175986706240312883430828696186783568408602855846402823091333039367535995113716492502904581793836180982386415619706506235738189972835573288668055674990412025272323453139269053666847277854526068733624998981197184545483942379324863980957490115142783529666826013021298359174975747640368374316653575242492832482842961746491923536783923093602865939134266008094009341058235440076640596537393622266986189386111568762713676969201173128580705842447116825178917652284829924729318585453631220298611293624147162641875540650589794450540569577643626211074537009365010210158089722627733448827367276586581697208533488074052269596479845491350881593835934550702823341566773073701285870294070842000478674896889836121637810374162622871798306833904215631982238432395526408607559255878368005346096963100597301534556964204773139036976813988525486151670294205616049984809570208222223724534136124468318775968824313709284347681414480571333755561761552739346235425073409584990293827804699196841835823056689349440494130177966609975579316931263447129915991795652956439656602967334341981809493378317811357005377771997267105961398898703219337958532638663465694410484121181755256867556081513565810484136792148679749086498768349895352368292311622940195288457481306108625461577061747433027981282851072958327297096680710845734866985252814018438485530950754214544045438967519345068709032530295894031583811575720222468841829353701492818039395399879149986075546242151101522082652933965981434665684954249056612648161172509475762501488382854487145104061501299651169989412346502905568726917766146616268453981607863976576417093491264905779437514175035655281065100637347837135054714262252461017294785629122447798389959973156453933163963318476911588329484418623636878398800652093241303984785912211185388941804543956545453413519498272973844104756183294178410407860497684217681658636844075669500883908608841764090209855433903106476574753615926364337216241142615979552393189084940505031808699067482171755997464851410569342264684888415904433143774798437563845255459611217967691223728387338565310081043340428056662039973277495892680331299355146217669656116752716077188953290185098603906584844495919249388098013970055174873568049705831980717689450307728517357711223782535989727795736502644071151714365544519722305928499724856515310974155834584648422021414195111871504095507881581217282076526568140670062661819232825634098474569973429353257568787147309410462819444250307202301150628557086682794545032997336395755823192442757471631426719930503701215270397443120066283682377200814242786422879950218235149865051142358076170836110937116765204199047334081667562255359742473520623577002910768820478375579009065359063795249761818105579352204802976941915363928808608168185789574759160163209610578081702132309675875790364260990212959843364883619467426935644020377034829525954025532945236398768449995875367836661005540373275496402770231732469557152485814163397601681389279950836406703140391671927901609168538236153927614404455001813909893009075112206853329019503972579384417332461646978621209841910911972073689996855643522876032152019817423123072143446558444030679338523952432475545876284836205389110703241935911508277938187706723995320688719450540387039447364719518766000091508775860168047357018576466035325800404125896798148661600330651445667931651678672534270960183890862874168384033974096885847142594871256473702908406602558458766275351926617506331468282107240654840953014078012370729131771338979727649661524824467408125573017661485085997506725579512475309424712197375902258043139899787852101586006544390189938346225129609943825173303248692195732556372481828654242840133855408035018117727906720078752660807876518273235540389399434818814390029786752248534694607635369867640513921176442062892121746101873991794348634893548680585089640303080905783632896125837439300543237563040532392118564795745859248091571943866349350444607205072635960744944252177349282820403625594818606881681149103806798200032104669422128965552731949732977432718438034282320015449065317504201423480805792517471858849915348910018163857474221325874364462847742677146278135083389387439313931788395843372032057868196195886431955546921955247851439354297804998509147861461358760941163752052223313700723167618901157468201723119154867111317972685430684973567681072792684219563733208882211636123631814346387100248090057012244303760807919885894226320901665186291378889829553129239696751275089798182910631149147663427672538762730944713892889012552081056552838868148707701774847772034025240056342803953577038128396074289979760272756365471701419932649109539909047779693516381075499809655389053433535509270904164417935051527686555484427564310178850000217107769113829935646836172929280859743951001877004627749976509538417792935013014750517453217448998388175529013238434584887053465777697083191539646302228171974345638957592669037850163999018572815408033807177144487110595075884838131081813210201003800025749834079510844119375223334302556390081191714614602810332694310592276171662758856140018047592655889253145230760035005437954674937727750750125707210656501255901785102385333495942715502224534070719552479831455528203924631974158857880194635795630588455111238707690307634889272009303406952902470015078022397233618792290023375566435861301858060504438462559585019661726030439470040061820308736724600550067978890376011408591116205370532833255439679129446753069449091780893206562541863614679399252379108209638177162936700041960390364340706781526468551279096833586898830632641903477096897572635761260544845091017455680074044064105240760006730112107047588683709252998410420221681412568377681309087816770064614183137200970714969025359884404742184975667327081842669939735334110803574530030225377330740090395704543569253212255656530109878934528544108508689145459898916543917547873120405096187353241218127188917557951286503944582695741789709622951256993125002339036283314880085253214774386290035450579718161012693870229437404528130674031992400616896900116657723048840587932712074567315353390615499855483874022853228717529893002618918761659081607644355519295914899766431040752551314994237157119772670754660706951638786511571731716498335542052742958266603096558984588046686041831507217301441579511549483911837442127325038097961396458689132115360245488301551380763096189584776581888455817700773862666242389148674259360780620550007056117536863423194174896196652194017199394355700051026174681008467870113990696258206012399427589948998354542164398724237261644515967757729497862125875827816827213001991047441080191014414073175740288623574619748399512449287574312578967456345122111662449259069315185493995007124263681158831424548287066750015066544945032631630570364876023456756135929544526781583056328017853372882390676735447416907529461622800345818117471783424589010310278305369833456947125934636514305488331628866435407426109240849782985364757369507619550729169753727473192394436291753862137492630773687724743501265079718612228223828678392133230191029691762689924921772734774043361971499821287713687107664773758168313409497265799822579607047015975012391569551973741443710458962768313192604651230435226036456953251909742329625143820581423792273789920008987819396887556894404142241864843408614438326930383475615813243476107485660003880607548232665120053660326195793969185247615866347948702259055706473835906386923436453065663165026875777612649967457812375118182610467087012196845128919173764953849409723823715942325171860847066612890080561617053569520996422859126140623136529428954386101682267965374781491460070333352602209170049197496156824090230186448086706610211294780225827543307829237264362117171680996830387485930291896259856612874137746086677951471463342219310558586744640262470236699914924912018160320116128278889398846226010998549430274163170161492919736133520005868250819674642027030333833991866905534111834319380472583344100279489514347713913211340297868109505645260146568025501907382002472921876253274108494789389642064346974064895457588168805393325359642690349873898232855146921888133297286192492739249662005909904911424898617700640682599743228842496246836451095148320814345410954961229437809274241765856700224130551709059635721885223750211517535989053072788161267735929094193512336091137279348346590847302115037525689436224173598458585108875868817918243961235429418963274164156300600374400623476732754569287162691878105222365537149422507593752341694663540048922714398802456370836440163608506080186240457451365583471421739008303818644796225378558063161788632712064121654116987242698595493301077542089050379298225238176013043256590549953891358808372426124056214811796693286905225784122398236843202123400921735813724808112877534925751194438557533812302244967412278898465521289821050486016137631982222920313983929163939069880902438900511907476987819812544689572997532465033724115051945677396065230121053460711124973277082634762222676149836555285828975713891557237370177469225289705090562845075607252444348048974539856591713209915007479400629577917095550280686297573219429103085324183011064613472873803099144537272096567101127750480883114864575935371189267327591760862952614030397360391323314065218259760283722528987244220469954910159022583116907656490335937702915132459243496171769510918227028432254700827213938770588801739868390748804789936163719571395235395840416402761082569945332509516013140946880345240232563771497294298588312935583895731969116524263735099650216813892703763296558555353398172003982649713538204208656482770695379006353001670225138019612410532188809572989575732570194568131834286831186904170994702762204973245801808202797407248943429269345743461701702357339349310836004037150722556067283856545416775470125523554755920272821463433919812000617145610684032711581503913716367246485968713369955424846738051064950165133896399399757314835874282853348836277687843150193041306855716769281829344128761693959051628543890267611618336916724741847221106823821600989051975116114962030412197459430045833643572152236166271007120952456652340134130768780649227023120346996277485134407705355583735989182188415490153144333106333260345936493322902717395065407710294985962996890722990712156217032562353771132173601675320999423040631966563387752405187615349189396978369476511224252917273776054193244365762251606500881192527929732091144573960354840366251189468516636768026237987895970332123800730052741977635824010747995256468095385765221124374371826699030895372175966571419764147521809361538948560932169526820962594941500548521107207089212892700214196307047724215797785553148031910004783600335990099380586028125682222566549612728570827403922034397258886693608188333570777604005735271817178852813599416279943845170525419534248804166737321674933773816319000065500360970453480502676247783471686367932598262395972743142262234481750988612155935104799252360370792954152177544165918166071566874855408323233298663030164288281636735679724784705207369424262153887095992817848523280224220503423058236376446245626266727976829719250830666591944559129807783398867113677115562779211299044328262153052532804915361611772290611895026493991690585708066833375935886972484241871001975754405564666040579687524645523653382860156284789301923678687784145865340126468765312362947574679296700520188792206077267193115776770591227373681604327977967811887313318528420793625920261400043687298304147656439488798085865456878941226838500367865188498668923125559322330616168635818132848603566330318885362667794560699425001067375999185648328588402281462794491949987583677263615066694409278056196682656940228614648613862519564067595718256735230677017983476973759381782413640725404286416598616605719438514742694132722964359546130817175742875804447764293444775727294179032502064509509062343736916040188596193882964853001034333155601057602353628877497487886572261444229581558728665860297106179974147924624817256496833963636413588005288499296457127830633745633230101892310446559014946002947167499852350721442807515844637495493491971742301185134212737218106450946959500810507317999734550621060741203085798342156319415759918932430480915602161578397436840360126746471171999129852596690904206834286511280308428046142238465956842781492081245715050161856199974172503224266672845647010212843968547294769108209078241573249729684129534207194329845313673721126004053474575402665921902615503594949753892118537909082560417659150464102704019940430836986899280463010840787503080693035710760498928058874242483891588997464765603554402746594236368454367503475030326606334749638017959155554563602847757910287908459115870199274387029694767635781200835160173208561550483027639544796910694581577661322530142791354311609856127562365076020105376592053087797683617251314131456408549532549032464197675458270648709122573070042986326499189851985785292319777536389795972823213946913424110412335525308477826822739520862612473413050237610642011640201440189049388538524774018197420336578188459607553356822004724303088228478892871112579480031184488117789268731935022778534910262097454832988363910112040236617788428602752542157234730011994473191251406703970993852238798280084693052221599185612569955472919151105751682255641368996629395141619779936652364563275439667273150804640459264431406408293708535982107330164861246035647514920597623144457559612042972521400080829484295399842018521230774104170138576598089824274765380950025183758876477747397113057104293679719090549501970786521987600487097068729862123132945069640082223040769221551087532467608410029927536936864630527384085828882718929993750168280803965681656174112147837037448389539758885256599725757672431030508779401083649759698058040505416855588195168961924797687456560524605908575911381321315508496419996892567634181735187439933067731935831843988949718568032964409699202508909181835325322833129296754618703693870282038969617652644370435385949893709810750905481981943418329014632072402161748110174823258983334792179177243420227695059971872393911942765997838447765128911889739311406197638036705363275686880574410234518034403886138023349103472865624585907692530300748239162406353346919298323950516687843425595238209907802366903521182399785726459431155092878025474832227474630724888414540482959803356384333584637354990028156821263770800675492290149551077696192195000440861892180811369957413217339234897398520723468267256342205894768999307915880706330598300324449565499423967999911576750399360042038170253469510018306691728647027932622884911400411647824955111220296162208401528565311552215312147908435645240426753494337686653917324744886968236049756308752048715578509747793103015336604435716591502938082014969806032362294843386858636082611320437811059083085398627342244660399475646561856216128629902350949084445857696260332022589507745262603370910870149070183167034960498418202916280367381223234235354353232132518660027382933573669045334052647708707987585630796560891317764322458552355974440084010858927816616468160802516926166069536776161283609805808287723453008492383242669495181243027331230875829533933227719406368519345842386711148085461192638712528224546074794928663354838917739743068433294769376935442743946653899718493918452917040125096023496886624431468349744271550872331074554205237114842955037861901605026789431119821077267974253603439199753866862682850163476848031339563240621866708239137600762493411101776073908172732568364313614008197063161098006382343174486311932843924699933186088810581293540367672399152216042224536401752545903386203489556114537169244176369409559167693413863101904597815723040769703844240257006647520608049406717461754135219880148030977544552760320828036638194671484533466147960371133099381815200042668198735554480693189113585130585075016466169876099271091990460896704723769564582891837089729682960373874578917692840663109799302498224834719145728393288548443860990252954932670884750381489174225867283034663652615427077960383335992545664826511074446017962852406698759221410797936984941331069484074041825386130032394164610525225481855410588259385868024138760336347609720314522947396026369627681452188370284261867092393093059443471310088919330575648621663819537022340306417302804391491900996122776731147370754073587736889524878334721760378491264785836401357210243413962596596456360113475196998789634666279328932023543310216718073238287922753088714735280836773184801430442788799758510510700407778793699268553262308799121896795512164972886471938316413568756417384532797075612029357055395372017190798597773919623912263829603476726006251327684318823986853135215696286449126143222864575495343322802353819508545219889670661060858947003212610567637133711446156655211703556312939938792266162902875205023894380214008522333662513942737039336968478231544281251579701065214170926640615586605135342091997620300851527236064879303451948646185399556868989680661208857009221345674486241236626348299584527340070809802707015815895750442365217053239872486392689400468774797393846802810691905216820921001910643406662535591249524672333390423876837530469513096494080413328251223239865787777739098094113096237122998041784047979865087692664284837518823125759177819985793832876410573161532312188158539015781209139003673738148843074912933350377268541033138650074297003231556895609598455969264767125755047488402741609089156799200866796288568903328855224337451732403304975834278246775707495308321136318028851150838904847612659362687448061056789142282128265728210762605910644255667017031613332968980016392067433336003739904034397611359621609059864281326311787003702878884970532624485285612925053439768826006157583892726405166618691003073246883161255364994164995411017610460301590148413784857037747728175527550908691275564525342602206047344913576183943216957097853221209322576044155813960110548025426687873124089212955938884092710454758882383702094726858140904560634491088964743853575238714934279493269689937879259735984534132746592461622408897559023675314496252183895527886071548786151826978467980023794226783797418600720687199662930394769360105688649104806429157338406638784082763584408567152564614529969608029214650268715701150612014738643531820717236951817809977401341431758884286483741887242297052763476690391185109450257117054335602472167872361251894142342642607361682470435465817945864666122396553393668438269513626526052903390374959207499449910045448727186301970817957598848451484979045149708331049313033732444691103445910088022917363398791154191498441372815015343095374217807085138700543942605431542433949410878758391401413554835245949340302271497390814259272657961822199022751256534697672737080427153624397526165246669500871200933856129067281472731328975920699219312589629816425327872680863942124162706071882587103471677966305926996966308948306371530811142436926554582534845002040241105380232045398991186970413189697337543418800082699021822918728665016250045258613414260449166148741439480968502047472159994165144298240856534370633060081243218645157914768232111699018326426711412437253140756360032330779705464529691746241908549170272682969652573711000700307819907490548690830105230390224372462646106554974159591452345457841393690397309099274557418988291312040632228931837950422200904032235204090112417980071525895249327498205418107504232867456795787377673790873384237510683743265137119725190276721846265534414661607330525363436210181295365074484671979982507719299216056909248153357486829304339412499064933426996911825227630050107489790828603734253203492550697152548984612572544805760866266454750199880154591530514368550360800815104127896336903193108326589552189508556816533499011430472515850774109350971371659328076264238002718687136786909900663954907974919494758476955448929358064220345725373745221727818244290036178970694228664711591299205825561609847374326614906973036754977506430485644291483895529002836077854781079538704136183652197260830161954221192043261807125737816061089838685308184777436514574013209293638510264032671355778397639521544647034420572418315977454867189299784201594219012846513993970596017572951230361666660821390687253856763175036415899126597804947281931922155811418635235982071754178204425276482239671270428936552501333399868176003288644466223483104849927940430979872567915702996901464179483023805040279426883102870800250814744208475618535926877031215213171441699361616933147438553135921518201780503330116704662768219862967650005338848243179024510868370028650761729068924646867546282208896030466077313485217065767947662805668979360019230454745233182301000063991897213136571805123705401048952709122195414552444119637588137976336801077382151543340327058968975249432671358607379600033609719312749548901974952205667369286986921001120432505655507761390710562874928246298588132546691243782398261215760982334525657812300820933785142646430021427102212329938711641672489170354959234875425652703747444242913436422868670779636515519447713573530005727849943178672100535989689537006484168703201237374532059805748531372899811000238510799031957658454254672528931293516225889751939662717595925264459010960715164097344313990942772878867574733466823781631170313394072658141996621737287404166341010071510528559186852644404399203055794325135878888638379491487157355278815175017395605901995345534360104075800792917827977706104504684749861930760890426629696140047809917809238873237830474085180924950830324118625175116247911897978848564758106088077666615599561523664433663797751668538108090705296470872194973508708683263401487703488783763208223138382342213308701537607995849246532122798842831250430306034302373025713255617502347719408369238023823465017143512235541771703739638514663185560068374933420358757597422212835245732942905544015721897202692302765628845494702960416851944021750476339570262532457568574507513986346834607471648881141530283630248215607879373435071716633472648961547104040258776897115738413095596890926190379781924923825113430898693990504563470687952214737116314439121388835077800262738082088484493027543703470804573547306028806901676331258449248371082927449925817042270082290171912444345080751593755417814227093094394879602810135190343565033285715852334387851714904484485948695090865056067912045440368139507355994902463550013951089545162111006917222942931914693695673515767052076852091864503731003502551013267703490266378071915635029642022100354818938443879881572162924556559638777983196490240349669073970737362165600426866260022919111316457247010281058082143108555279317742483465255276342387113869898056108982497427903153154057376906385484285498187008969686616931422556802101940200264437239763024008000833145860414064948742088849446976090096367499694099870540166220037317852464809804933609394873770183545312742504813386038046490183768985456556529269120385413692190600555055311128610955682033149296418039314842985763883678852492173876778032223741960358494141179198160745047386563224581405802088000214986528556980003680173120973903618483497884700829764664979529601154155923475250798366318197091914366067059162610877683252046892095213603948734003336632710307124430802951913072624649316125724112301976279456322823908092198852248155281863409689024994748506173340590577370926023705536333560557584782389958196992353491816617425520409741094769737150057348737391170096932825873435580921514670594340594284883480941681659740785006820638015345706829962719223191785667680085081902605041288210574282362909028693461822162388358666752790491762871310239357354094222623623301907408033332553608833041425414654656543607466376105765169495724119220277183328777671282202421712019371831996391835032124498300596015595082025261194514436958419834912340529544973126678175223270071022520881373977258958840624718437210681309929566219241100565045120642136625760448717026214509197078468386478062504087282383867392853595222818311324136162779697763593501201970246842722038794588691604182721578043442938977538495798962770546206576193557959460381116608124379725295213337880773253236632959363303260010675676593729232524703472361993353985326470048072448427785509383497372389898528895127856662434845867341212850058865657170018272549490451338579671322160534622220770518828891062182462512436339951475145561382938319178529827636080354752617955730264193022277042632398524066955925738251664560815237791619886254483288736170908297624861179328166244206746015598710084320931988625775134938736256945681418714547348141231609014242497909730917240277741837254392553925767372313007343165798551882111200687326793380450415270565520975300849697423339643032479687135801896733030088931048543928795372286924143296826962566788835089388643366649070833276089703133802109611470468478160363065410930221499871668518191133190838982010515406200807251436259569821698349868430072016480877109693973427530307262450776481654629911516303250608506848344531423094773372492596511765055404671389492827089534049898692159465116381613941842622244965639100050024801012691216177494245052414638899504995899899978847924232826252535086032527195412601539566794551482666758658374486290454602006010046047246403539144463229025481249863372755157740809611150823597169581117429831031552314084170555600981416630483760862475713658779030868537691130896294281385904626424766089794284822220189767790821533524369120625635532389080564848756003254905054627220308449564484394938162124428664772220484884274494088698100306809373480014787118791054389608892644669573757982552355956149296898625160851589215318547620201637904857758609395269746115245874116330682690339329743558539802610508748002240029798615721265205506862602181433731671049325627959185757746388644334938425264132787317896740298274923758436011037870177076167725457378641729669340363624004924916930834298776808160411504733455267804006394114190422762394606864409451927925657827822796475291370228661696127485192027355349813860127647193565882298145623031721856817401717852839372030653076907091492635707279225002198837301604622633389534448456363087519058577617144234083670638784681119766236446688938682215756120372267610160168753794587344314943411605964653333681551311008845130532071495485554299378842763467989886002303349654514531573916079225294483606524702519199995954796370001499142159479259978283611553859554774085238409407622783312935865764247443880266241739891329566005659106168916977790310936942986503708217417801604648423796587999220092949928971221462354213227282748444107868141734021722223788042242936417416834288394240217806919786254174568804918980261210712507265049034790930637958765093343694542552180357698661184411924381723584746162274668237000582463429098640581495094711135619821419033223174119143368935625404467248491946433814367443491339438807338663185212227122327943589616324740378696478701684417965888674869191255352236770638791438477539520441228370604367902607317180480440545855889919861953464594428298241581221453516902636295369654676434231529802511605610335949956034358381713860164006123682833423180911895923730571164136848462944072494153517256812195581657283221414053413985877042021667758209491607488642427196055528265795041823211234030878978533838721833601070400876254940102029434296034675925107374764134736953860132874361307208030432530031919897479817436727931472808878338681792561506274982799935823543506694855526127111280777949983632052400319333425322458491589436845167240269276988245117532974122645853272492335897476770646262936085427604689398617290664321631809957589493423401719288519481719111065763226741660091362998013978379829445451119529684751959937125751023980669311081813912859087166382822269780157963931686354832413794710232661363563792918242051036337640231304472064038520609785784613598970076117214089238532487783055311581115067288279416831364749260462104898775081300954949156399273795422871234313952929660944665460856625445144481848120678917620437451361783538076438674489572018673342222027627566364629714776390767275168258778052856793823765001248850642809619941973838512081378189068370239056058044187359267403937035608238182502110326553835930859828147059218903332509522611579622879007999027719753190001164741464621455337646991576484720622208983470889800688188953337164505702477340143573430979282400117501656537631682282671918573962446017831445860681659155895216242273149675556407900599551849440217435648243557729007876382409979803095389879452914069533046399314588707197128823379223844177940494423596996206454039238140907223533592758360539959590346619259802028182088290216981851074411664308494015678673658568331458562812891570857171941739186827848233508359508559688514783962402568363288362176533526123430795560965917989339952666506646606222323547054726580676932166856018653252280910870869178249158679671906953647563983314666862676275768922055053640994225811464211132070003046237346956582055787725176268244682823230957492583221972454606054489561745361703073926652605868228295529029682685488766579151395820876412468874740585273858316856421918529992464656487032447920178899102544879515069984616012029346934236088853974496347784875067736608134332066818300654821270682656028984741207703336589309117834841965258298732779363890585365159607005235650061754143304884982290277333107955502078132633868316199417989865250196721079941859214264697606591778038015182612195193694728954306580016128319217282208596595802345790171537139289352508790000161853963140636243353340840046556149222875197144202938492636931286554090719309591496076524864825881570209536402444584602790140856792813579280953577422116199452516310657603558632561158723429336527174616459546562985078942789715542170026633634894474058746555465198860573856372561234911656251650696201588105053363633790629627372666651068366838222983346938620234153365129867413969194468762070149468140213304560145850096039860325420038356743104360347649616411156976222161699376753348363269376177224989532940872697526601121370758694274570351754308050277341509322211795750262737449316683033493517887096407920541003910840433235138725903458633347414605291642865639737365631184964162279548725703562465797722432328428323974117533616999342236426268927908265152489659841613745382148793938185791066002139888075567550660000125408495791878302382032115901098415909096885544143982679921494191611415393517232904497976891285375596724965644130408852997445284065951223822142853154201131413713849026338992048090292987657601370912649461734159542639871798582594758453543309295482357768548542235673316097646206086437109170252103195018640890122157593628456023509293062327887826353449593010884644074872010908573035389989498156190950949147527538816611497157549514009708439077875779501996917354808193432346720953046744770549993600834320431297890715809464694557729335088968834874963645452655653962721295048905909433744523879496144874114086773968355440653909977801319550672424152499427917193928991364576099915418396059952043425858757722630327435047678893277954633447282412519872001322386445471379382669196461474916977244657818626975180346473244653302030303389096393699707436488855700025247952801351260911427165284121653368669493881165967666723519551511444863822866483979606752107428598963439724619526507532518629558244901084611479531246589370390858877986889740618262852171584952334319438014686187106032232996765781856969778632320479952503581628758643034627098979522614088565729983094020355187757599345503092729312374482135233803423529733434333122843183899405213389055094207585436327757383031113465743489634104256941162216136472452169702667877138570799148325565299369192490419807663914314843151254160380191198242555558454329704441775010211245704906357252437452446676075721867807083802170500423473424241560270418003658842526862142922477350867982905029020104351631024823888489934294962587575853208620365357405405310129759427857898547020582666754497952586123838695430476769628575978099398462711770942310420624053742609978075730247373524203115655120628260339685269394548790412391044747652561876457368861623478199547264729134777696432992060250048144951191085134705245338753355427442947084306357713551563641086112164812187958842887517814166902423925624267902114676185359963122434323352916842225906380441798577276977632962421108597156969200517868040854931460506343605861465223347942183961121056088735846647205394143625780835755269054517467119495201941623955619519209986973453814084199310048060113389427105472481537584239838641632023033452880117038085519398720189971524677175434450785335862512173660955720904612368668127664931901240822400832377155070535472015272447439698785095708392166372723408286074684171590918427748917810056024482359488296537846407417652097885171774613922710246231333941025782855477252822367408853004891447493664140925173257346685311701305421502052054566262257816752280847499801965626649443080214180230886174770393349888500219453840129240837028095693967769569208849584629587056116219793318441166149524646360107578743641767426666459286982257213179811782456248313843208443700460506387728346193740386600519759063359761516747151764540037296529278772819960350113960080120356524617165546348274676250741358386197425225048455374477594707873509185279657416505999478387906927248039510453984833651828984204894368017642125325024849519773138218016757008732144145904192957723382990608323531674853115521673394122951112582238440974693188340799432623778254493845174458937979915795776953378543722079019277863282271312765366689536090730006248796487258371563812574191503930239217340869114941313047879648110601716099168088897642256105485221250436050041957441754150803427680014691964089311778168630941552955006560931941907049480272575709138555979952956365868053497458938254207131077960330848457082099547274641021607623343804298320923877337775178848615267894592249478831563623410913854253960662279577866709351390991623333380714038447853427679684300295848427244377167850278939416430559515999904302086729107896595560110325176621509624875284068892326818545680960773616690355492953442889556920314287033170163533174602544500913652322988888665300324469191453621353727140570730912419624731504797073147927084368799861324411828034726190334383158087099684007467456333456836950673115194205532881818911835969557211690098083212287631392280159998963620388246786717731419674703416201048552480208454380637147232529306377286224327039029081383238778355888165447015603563357647877074517020412744603288930037315892485364486611869308549236936466589420183609960971754511642882474842027679112657627054955598601776879327043790574599820896576932790642217502930971668951256574775144978796412291472818129249691689822156330225303459314127739649808235050834998779761841367285028578102575615573927257394026316671664252797429853804743036645448329975371062465792421668815366834666103960884617408703920841198686662195833268412227430968896045907477375951787334951459365941261031917194346606541210284595793184301952396125724324106419783736197312225959415934086675020743841308296747986388936189979233382650325053619312588272637750682453246232710305887717746253319840892169784575936945702250539992257082296101393833676054406920414119365441798289581122652583402042894194361022164561022623409304907538832384870071544702819567694772385199503677466846575884249747003177148548207962004871009726376774362492316745733509877859411062388727141511806887393682349167966569456849602332922226415769730898506322318912544143899662381877851707056802339715723869903617251189869646235706297081806584832506329889710103101970993936613478903665474213062153721868316632245286710782960366528012442409294374706619152236256619643454478803685386569423709521530126397532680029838356502919858725203072762276678356916660190741526946610149415845719213631838827103733591790094461206001169381631783163575057015033887215290809904571169205276514419333464222826412733521635247564109957707938017502809835170205835665299592608661937694838177034608066151528388797971423997709522529189780141521785920612335932598291188290344803643407424229831206355627071590415804477191964139036480448390339097967826580340003674282061322189055278050294832820595057641380603744967978784247647887143087839095209280284718081651571519444158552858011055302420574183111643973234454292334749610759776867403454156721753361833892030740090373476485384209017247221389274322703137243773924869429826501464130157715371172873895103910837799101246368327987782116377400758232015199055585147170065306787079474341773192489352502536262117618254389725260160950807410074545530833175582766724056216090421262058489080015682926243339882344188398315227750670097955436975076462826147501570571212223529404608681838104583683143072695569036479950786161263917368501576245952190651308736866717012675106356757554835581735306133781876438789048103718227201600606984360123301191458351099578302022940362664195630724751954156528739505172032134757245846256489981768633554786859880230123473948547739782014858455249874016301113471864663060173862331408919989447238754300888808822370347696176576068939466747804282432302722346828210118743789170039790324190429156006746033204317463627006349891323469024820794564009157278776915331543425526310752713556445241524550435598527605099411670785493233487849732446593737774210072397318157776757172132021646591236484661245978086861846488636216775850765279423863874687371772427713086637779550273926239416689993679639406332495853106094185202242479825612622842414607201516040884704598655171015871000352464214096235525289555437208482593006279898672929539705058397044070226227292180694139290336752495200619190122979602413416525756653419548848657389174984910062514766340075811073876201792779185187153143314587915248043132169224020410893915265365086616916212380883986514393874365955204326961459204369341646774290190050577015623671426073438873967178585169608001117351720140772749760355324023415245464074369906577021015689662699033311617529541904727704438679442132944030581960084116648708566293551646522006456342828862219657300441200775564821168054721017140021749647390055791459506114683200867838223250237399384962384348048857666831457292520309190284530759720523744020176196819413270613180713344021918459356883449165138556300688329125501022996808899007709059340025189938821799534046961613220058486812119560845284195439545006172817815904019527496175625585446520188837944880004666075902034925412424882338682948889479274594258808745626938077108699484048186426106493642900339076004401609624008352441996045038339003152617740564361643862990017557452103787932040033055373588048482632579956943133900980421523767248164325774998386102494465803226624450406393402064509822162069599175699755856826365968741800733084910982354373971417922731681363637447971364436361854894404164521114121435731869679254570432344113424334930434755720600387211444584103101590999836666751607158227022116155953037157567189413571740521899528527523896157659896424309429281234408506268444308099629109425563455187978306331423112057632193743437810942789677843484893923946742582907998457702932181403807756675823861639964960982341878535170542235497739882812514226451581943632900643807643039244202136836263683749222423287209008356169722344015392039828291707764530412950784529818961512172756866798579326602274937006614448174786670079324548912933416934117363089709982186646913727200803422452453209969139144691499264401784542847863779199802583180702597003052276676569703521327735020664616471504087935484869670611468722345003162514281173577625727662196358438466254249512031638171210699045767331566367575908402687914703604316738137579862599870474910722685515744312822849379214884140959406746011914661991359399096141198875367869805250157975661967233920932915063988985252078591921525337332301730809976412058393683374439155353179300790225154117083831730516322326208092314918185155467472337719751378049081490753309119423912527157544659267043908439562587805402342903927953006000573914145380205129911659285590630527002233810329644296200400474402490020586702971435685209250203746282127608260803853470753639495881381568945141681047281243689354353598218872130807145281667687071670817366577134741332251217795964712071212862104924737331458008604897130362661845574064213745974759442047943762192494764404665812522562735511171999263587297096889464714055980951037414276710730383576711586265633990878024432508150937537675334207422756826285791179342909222792250577007274708263625713588540693546327486394792894103683217776269534895486714572870681547399911656387106446786969256862761874128945504786627348628731774205232100191735976581224919682351129067500451025381132679327642739320957980105760329482710999417276909741165374677838687960490456815772007127776703123498974098793556376981559642863288141340892119358595123834898642748489600281131855460659495950602861697089903177712514494402230445295550301377408348761097127312006052114646171548914405684423798860545101605312687921077692486751744455967155114179654799022989900155649836607406680491035362807275859815662361792952903659071496058453116319492702017976613478174524259637962524242731233664753516954798359619409867290077764434020553072341035132057421309046567214949736057032412854150192624710015424998190092529148214518658166035239349966537135080963619332279926656549367386590646623436286354776128367940630059543204380571944718572814361772928166474020591506804808429242564640248953062039475328013701163444244382069043537940072993762944741625166648072467006781973649414398043138954045733667712991284525598283630221727441673840968911368930208383487248160085152205848460039311344622227595291190174989399273565673990414266620442699965540575119066354184202625165856189431828646512907132388428771244115543475239107028411064892503203700374908041717015967125540746006007984626083371052061751048789295922678644017905210610025571058698400682795701566527462533102258387676729718659056406736825102269181836989346437122506629809903612510966320683041246738037136192962180386112575528784195072101211165078243738851292319063269761421586080307693267949056254042264690773276189196845010036495833767660618532019141255725723714713529908228644575327731166675823087132309845389069819410464907027162298604061874008835358999823855452892239984596529890284782193970494036053271728801279699283961138843001502935396295236483413881538318202846670464804992181517863944092536373992313968071045538860743882975196995429586021899397136339189446961018271141803585870615354673876185864912082010956668747092850706711580722005746919327168589763440314827934242659499453153202325254670037296005860819724672482909447014547490211009831426618757742274198567120976812332665990701133557782586031834646070469915553667113061088907025658607487494753949908118109956984199421066675816287390115498500347613123852767165599045080582231687563591157546424092938470937693429062755614269940810364831663444106735462855825032951266843794445719108712456036775439337584291845961318036799210621382531229782999861169753448060982923298242860808679900853580960691298693127839632716388186840843486371135328054175288166013945666117085850902727327981993273400970291054709172618667361955799397465762329564420781116761941421949287271093774379854466626139048924908876537786809208128111899522815589111459989444245620446343708357693188235510452257020914824665018037092739718988293351557923240096703362026430754346468252246944793337344424347662193204795678883118127882117904852452318113752996379408792188951866558309355046072136022954983967013171985265299155719846102420352125012910112363987995797007428027705030177888561260535704354561994890177501957235363558310480882567099324427891114127457468583265047577845192330357037170319710907514286605417221276894972727161693714323143420114502307395033985143336704099232819113441395703035178143487428922736729015182408475547997895973304048895833447602888126117872922740009394211281126973981951104987410851521366936826957771788820000344451992037572963246226668234680333149106081724362735936428616800342309596453726052114774637964772617456806378098641876844488277290829205157312409048359611839775253126669310465079455736937065392931357377920934022196558176179181454247920635886902330349051294907111130716966399408310689536864560214138215329475785255231592599894342106835098203373003560727575835136735604219604313208613448125495117272973459199445719466967577211549465286379816616204958464204276714561940961934236150717636960163153682508151763447535616973185102265103327164370541912012000460554032979026667701781453871656319903844259228092263087446917628857638588427414150217825252984515814311806168918250290887696606211406989741792191783020850324683934501605417629540860705907858905631684379821974543915525515292495726058966413848533667333427336661215185785919396410552271704623330975096755945520614804716849164627177339871655450680032944573009565030188038303045621498578144504842075864007109399992875066841681878604079270119042279079574548366536095949445466108825073191876131579931187915380043300249939831080613239103509679553437643110634828468077775520950393946253221752515301949882149255871793645032606829021196700414745021244021130495693441656424187367556747233014512520802272696620176293923655393371331521758248211363068062531715394830929219298819839135803053358476950543779890512972706520559733297753022507930404981729490239689053464798433402375354756490980162255602105579434024426712970602725937643544468955991276550435897280527278045000835211774388144064874656229251354519158005068782843100450510578712454757701496600222963383283305285047969865608146666270332349694788249833389284414643037901919860776129177609190739933323737191292311067068268105930842294966619774170888066591712219117676633293963606492252848894509567811047991873996720360751546787611275515659015906321785002303219456718778006463661052092378248966775839877978271421503754934187331364031031882114545188207915441981581721435674692377542297992694850405324296619745565808782749393699412198405904145297139089168614430004829022351141956339991618492238805341484121300516448360586878394165281842214743834706911759833987221147702160591108963054146722980404068650255770879883762609182802942924702947992005588125014574297197960783065823355758413961278846472510508307688110031333760147719775793730635702881793800827189646834306150413825465830091994026201900501492888943843014662951658198106883910202834899095638459271821847221896513194544458310207882402562325494156131831316341791817374583417038486185773974891784030328599847290386294619663038057356996302466237538285758035629035780872847987868919168933853640087714815388333790936289737697362169239482051553379214424058897242699225610739676759972812069296805062853760083366674897523344243224862758123585845909524888819859281246182674216902245284930089682519989768480473525631395123960043280365771085250194815611693621651181484030695001758039144883983075158094545087040956663704283161413054855564083990735644254777060649785570174396476561535960675183924933001451477911419666160825831316621222975444171723422727713731145921666871639376432341420693950399064197487613508239102731494479981955681817629654789641787861271565569313196121956902445661061676521188541566998750766970809041880279950736412475328250377490297053806119342283792081731372978747134703015685270976140851081650033916289171368457641195874856655778454000617436229116210862194560881104666450536108216852193078535342382575577854658115488704923147443810312980393836830109784839458344526816008835872902881562135594000892117396459004176580213124886483241415373693979543368710147311300903085050349027527428529416109647002489184202353783343922776229721863113813310710804502916405499611407170778536606424600987159901510226950834472979588203823607405354203059294780087634597902959226442535291351424848634386970782697526087686857630152771920315905079842087757388958866646709344870019745060722964808440741258266566611266757329668652075008724363457721038151392021357436438962833442919605139060227883474514103058993105280518590237721489231691481069830496299507333156071660944929873254060118737163860113257531581502871389507316115024264103443759664463082042892104313174632986376461709717455956940311292143943638436022560407688620458413365094789095211375884821985148736929150082945319597065570848716721445778608611050559055628209924964049164841815044634701409577602875065308546094647803614535506123745155144879480676641179322280939711029188745487288296226349524011929357782787379277477418460565891524361556694874902483045389466263575388338950350475861093956795750910155627192589794735257220291878586348129367319277275297355439264313626948459899471632967167663281024074100648104110957896110850527270208268698969966969184656990014250593353911491383494645301251965176653614235666347031213441218575526414724390564644446390173704780955620531804291792205305275863571077367504800717548184370391843649861756878449543904086886031480846987376479838741496803102532072168526510055412524085288120947868511755139721622983364180847794742985595658409057711157522865441908396135978603786438658489558834401402775458212097586765974902923378142692349586092143148519630373769995834111717112755140671161688663813212404393275774160469041322012389078884863039033121820194444730704468627725643227937796266669649569738448757337007109637284773271930445168486086097032531393577592231735680918097422231928870941360637032375478845790439555893878716440670193100016816485618519921148226571607339525829354842507221984261363108263321381608482608455025367943736599219817280234404669033359824657093652938552794022832595444544717784622789346138524715967402783202588682564248409615009356191780459420881705537786035592994695037471750885909369574702540083408572188711319438590119684397516086126055067949593707934217754837993334211829729425862796429145765541997666952230454560128259363152826850352043820550226404003104765458264799483741302743533886693103616412654725777825605803425809549589052084545815421343845002923974245013214679207942790850574257621069592766262141544385831111935764658497112971121463993145531727101754971479420974364306767790537548301498831885463150697081419474241822360782597376360697276567673543612032336594669912126625407252833340015515558015782044330851973765015789338186076924697380407314591394142846870394698278746386108721154620524123328593734610244789951072535387044760962492318622527860336274092434670406474138266746579857886590304989410474612992888389021103193102503120733775665441100574639276515441626080649438703061374883308059224576014365203094827576530750753837983957712286520669935964626730046017076382287770078939801860868976816972037665267948673091513695566215061294377544055641890014195774169723626104569780619942043200971019407918365497376828369046599417855145411665140583066095738625633248465535713056822859020079569545872767178168016029238911760178710809703840269579200755978908460642902781600016657383023828575161825556028758523620422749405184720172083962163329038700426045138996288202316890933094751646706181444882085549983257692248679724064044128793844307892260879901489297190568071633138710291348769436800297480595148210562412496886515234082113661227295226669898978149707211212028379520413353334523809762048453370611995758622234009593574547499795074644766064633320340700820835074542489237360938253914045402279112655528260529372415318420212852449210563944106204557731168850634412935794185168312999705013534463708899975189247708267751633393798080116870123119408016332596203613744493179185847265660255206888091009861907761823542232431794198672318713620879779754914497144596525029531332962617053869919512837217044628383412782881686889726799703422212983428783374054386498490373538973187938201818728936993671998344354187571436726376026953796940252690568483297024473759497177620019570835212479224761170818695365966766469723035747102178810463287849686580956372770490024578729514746145088532881754601549948068740518260766409464690545444175104574330858625970653543405088562549370681132876860282114755584618495593332282571752563098135383141538788775379004306452008690485886055444713019693317090674448357579319062505715395274114203344869088844013851072441982992955656905791387046236398179209327918977544788791320364136932933236960892303408815144761196164403761266074715069964653748534177388103898636778269894082416320218569827233616731776810091017387222397059893581356822860586615620532846727584765795177869686229740149435581639699151253046957104560997133654242555217472926013059631027664575247256850690149093714816846452082774793666613220141727273814915312997147171364287180338856836939723560838741574098441240126520124272599945204941927255560627557375210172842962005756979842333561761587908140093346733725231506602378535399332298229975147767954604415659825150012957970030253967070161929014295652375063655945079141310249460416799882969033752734867427643059716226501803274591911253806488653429395300440427280536798578399302116934394094255096387882852428264566104427449183868434699590063604915470530679758237847145318529498909939105963461268010350709196696381135290913542190601162944733154327407841635139075738370686303273525328551936363902669670830082110137901788670714610401065790955470895580577852094588677834202441638837702681339464087091540897471341644381349245548002949366091830770558840089290159216215272687615631204986854625811089496359385680467575959297318943838262479131198418950601294022457915825043295855447464121625522883215168626412462260095242398860275136386193388911719673017341693355293892452403910827473352551507669472501425144355368945386567909880208285947228475867896251061162610388700272677445473880988729832015131759344912210046718261227852805945782082933270040714592562855343292357777220172228414007385050203905309745284567680648758088832842090640394614981565993616680539625726910861553096727170207124394828143744635001835544502648461624737212534535100241493750156137639814523950037698462493046233589092406823774107379599666451940499059124294836525161452527638783747711185603762495511674747418571776883365818441400489473822415596042670905051760287687034815355169024609148489998454623024558336596009863272127905465593162920121501098214066802782224368197007975656363126386223889739518456381801431262901504136932799250940153659350710780598814219087032205396440339968574923492937971546089395855370286783390005112393974896119869206174315385210772609119525320311129034089982785572967706788414503260354983249187817230550454704362411747809436693573202255914433858461101790120302451206378671433098877906739350875354273001604009295265454279114850723710506706978373817433108862282909101516005492774203097861662942372486107522669175005360184273360461298052941250780934282233993335582484857528259549309556429184547576685758838843594401816325180241655067292205162763201984283530289165665909451918206271788583939457662926623217138982237484775303782799525163048659991244337935918350123170060594998871903878951761744038939287176933494886956840945723656230688899854906156163782766024766172066546842337605080839881554350786992394168922693148142120456886917913691754749652748368666451469738094399919055566416139447613125426979888542992337262279692368510940241658059839831069395089946535073909191439498342062086130852385869644638841509387433286606964940207807548268737288016732516034944952103231471623356313604305032968776578905571952700726630753778433245755752619864753392870146474744691531901334052924620513154878684021611031546778828836156092692508381558277269897350951929213596017187923496708596382150089689618365301095454139655269891080982546268737268928804213857665085006282102481360973666297589025359013379756449041679965807959340732438811179303844631189655736441088169599287482268904894312648656439268544490880522607190143678232866918460460647016311816635120598982470633198497519487247308130135427877254359158193072632053146780708706730659454816238082788546668541942166853449549933635021864831401589791977632375869746508435814673228434196644558623135640771537875366691948835824304114723589888251120706391982821207650050794353742933286324997594254224891201986010525105373140230459609456402396292764031560563252799104370617144514339600384776167761337924107658770977065169278612403119938699696185616802120754420813001051905126298477312180147525005813956322102403864548476786585898483700524667767302745630804247487037469521983461200220077467903380623648418718651641530232329854274011001308830116342075833517015510496527995244676202721513025071377663032073022997417225261783057271106553159746961247296912050807159553938066526961521793093969247527903051808130172996104907491829084441566707942330620802474883883415520181139594932168292454558373330856290260497085962357900706587437477999043669614262869293362626056846718100074043098250540346865764199417906753938780518011929833767090853426867665029117317597946562630849302201479860772811549029494262096121349563407227498697747783474599397383192524166548704393663231113360021796226555985587430471536506058406272610401735162519180428008232312277142313411680563657201683614616174675486151540863464005031930979156707014905011367891179942428756289768514474747843335656769517946620046666955375351967024783233087397805715626782187093929538498560134170686479382122939948418118060431357444976135733716600889020606859002080254452487870014767165546624062476391395024485679538926510241061669162340593219252107693941246414935812903394198152001450754689857161023020953197327569254629297397656913874820084290718784655947385644978319869875473030198264400406933812338316645781276521722687215864615722969498508841339079765237899315295729927350041856417139603036998925561180662781497328176186447767065871689530297998975240456147415276165446221058761444318920434567324690323349547091313591785039996325891291458004114316286101572313389380254898033668598555133231744827953299168869692915822341003446540945434758090463188953721734553024410610210182913661018456999225084022784401069342353079882664012272913874983974769818373242821067557891992697910537743039145804720737992263482205591533911356784392072039864708691520296415151778572664605680662944577224750735937091746267912138871264634365616116487124347695940366635655052607813315183842487859527599366618337623570820619538623061104381967595638740852878214421150567899423717755984159685981416955999929511754833102956421134167752852687790449156838254167291432472615275111160575615257106913666010452487454521945945537388692273722896336371403256783497399596238158323476219075615887124145090311737576234657239372925586372409759354931524612596910601016928658169880434857110856499044358033206830004284395085914190951082323828832923336568960317036480202718243872298175426636882799184871568558349467477536819039977305646289967360321362514086211745126330955728796552490611836685826266831545175400831103154994823869670052965141325910951546975541090625188990763274450524526019420799560420153215640840283472824921384857621075917564906603246798204379228748633879520971247961386326116594400658638610368669957909764562149337825332288898670729845633877782820186123939606168664538519017210927033006565847932827599076761164659570893906761082805725138008461352033334435160345509035204005431744326367425515305204549825377607660270805585768703954968278894069210774143029859377115769269136717940154721406440915861792039598320043721650428190409295594598439342436100099227369734311641863102430657587485002379458548132322653949295102182253553041723070057262614190467410044702959441830125600480600826427637020148270805663619835586988423600628542123733923692058846977492719337756098680639083410545398867641758007193442113638338300043062876202668771233427527912760354504306099762708496251583214571287602058131776253903482899237016078751342574404290777638428726088253571431412362170742309049287163752952305762636660748364183726863857618974643723614770962887708350058457767000109800187780841098738576149456607763472275979556459334537354723705526209805681874251833989676798572003989684015379597338181795973225088023321706686645913158805913342410271112453689926356580795035489891769169341036794165679749965745040236022236541537855068599262811771704643030667669881314307784937280539061168547179258710504057056706334889915072173423713842744492260950648693483421123021861857309153658327264828436967494651148153228889773104990042710750598896900019832786451149873162600907776912122471986653242870377551385616110829764197290230744878197990633266940074266438265027766872333140349090963467379837821960996495875938337866765068790961771973617372122023798211268475071278596590093701591558393070315879817757514974991732857892879267712315909084023344973183077141833312637519034596063838698400389454875787824996354523799660147751804878121385219943642036969668453745938966901187604697079537525816408263520773837278382590381551426773570492719159387992386322759619703318965098999293625902758606151929407085708918780686521602776256480390076838353922037936108393998104753182706502832067203189808389130178247856789820780218144816976869367101248882036124445059596706796175420083629989204180510345365599380981299006516162709946309825519670981888988207866754776574547531240533147427976543352868328490730659125355318986384696461921504303448094255903140030224950552883487209276758296339526134628075478974666304997204847200568101481601881496375423963215097639770813789933080899770377935072161958585010503594601840140761295307165352329712122856044209828834153111111225558419934205316920499244580227956802838166865908254435403210891860333716435706402411147901004682267504675254573084134061608439499203503876932683792336096648957791418229223296050510526213109172190744320506164788851104345880400909203338631367261284983019418139737532502050167662328465222707401862846932062019068917304841171689942543869298409736082312847376010240513387326373411578317094838915520250064740667846207562632848056846193855007603765424310712408258767212349179870950265771062134445079727030682411952961579519846652796635492305032477368364020913347041702919307657772585157944105067702282927226498553918398603941057694505522131808781366114873167135895341764558414167991350429617051215441752269955083107267445511974176094506295287107378211024667622572588749348235756319607689277134322725042104678293671991098142256540332445562417003290059386576534514220449946877509810056856103851717269590571351615476454599691966322319620468175201188845943932117705255511581664222552256922020334348048455103862106806888472446892880573878171525949626260497716530325671146848474727683431925761827747946667270884727975089756162347471391494194290659500870936382800023719425968059897237221031849758370139060224853971676118442712586589898227563683794137314742943388540256401641401018135495591970154551781308920279998395404869257154814913846846068843253110902001580573153668969387102219255704980517962716011903169143658358353858082009353860558942853326861029817251026869389590273127324270919624345835174952941965592833493197418550103794843910535575132004360953447413689163678447174908923208544881775809814324356083336037688538902249510536117356550893540157813663616051647909556953731097991975607988511463508530110027091361586050861164816613668163061015177877451479530103227765823113870087477396440830127816269584607361226173212363477185492716710739030716528642907600101132942069471961876378144688915314754737259336649244910166041656009709037431222055554589734283544732858758357685077207924407245427044356911417309173408458646332261026838664542947916206616596024316752010620598847416618112083060573569874732526743935484832343714487716816016440385145749417985853468819866414481259171869931734246515470829341239945551165498294523871403936136967755964743612675843003486388791989901512469944802826753524871014495105158518898024136648881243015033960861817073587228078517157114890005067531377581698592183878042981973049357264799101535128323060911740565687060139497885151808477333918709015063609879167935577387255422280757898078626916531520363033987356610558603163869818512433696007790890036967466517764782401448327621484627978844615631890420173748197812533981543560216336577855510028537787183063796307220069389343208603730404407576235854149317780111762062033612177707019812819728719799753237797801205211856608848392873195653569945207764359658387004841309597620600301374059853509085572388947417762387054243100831476656079616725505995837228176576942075528526390942621099298277561809599590010952384214414080638043696410370240884443023559271100467827284444479410380771374159834702709380531587595126509853662219496893774895382288711075277427523731662216364277257510228979777918336223604144360972061665995550551024907816002050011969320117718033436768382100890449316657990800802140201731431037019704339817384898162858437641065302160808011494863234280152412003767625414139084466900207476384231808417163239971753132263647381509689032255928555779653135550409631536990138256203336993275339435341529425013897494119125112966067233491416463608166135559022092052019533877124658918801467899067097589485990326555170786191930196402954706223552790850488790181977163891212802527915491988590554477951482117685050161425433238710665726039405050588815953400760296050392109959736135579523598468696789066627091260606469886325007877024991871109165264957987241478214874088868902120959590019886258839001642597554223779479550371568531215301399641880935567165953673586704700015339726856957791504135560707338927104829174629255239534082112314585727725388572435602742897226328692497175271519049918976688604550067047213051389670671930687136178077487137816313055877142836741526265192495981734065141059125947298535971268492353993131323342164793342106405942929892438412171159095587249312684923748146363566531294949950166221503550103359565741119967242898438520229911412968355958105307682869411912225184744442948435914076072836040997932901698607742314695560505496577497343342737409945490816670382889577279767509725110579667839631644345188058073539388151589984248969048769678358940451818845040789475504419298689613053079447712960838751120573262688154236307742440601011202016206144778388987877200426786118896708511421146784464273884355870519456335411100896944504512499499511666457629334791853053331550716407413023033939569760227305199998385759399277606758522821918462210605836452425871575055805179788866090172658755021993858933543561953322239827496309303853289623461070374632664440561570218808768023059270461693399137300914502898534712898309288247518080709689268319454718394933433846381446277147616602130613694159114610615672895536995754168627589959420790944657291674684032422022682090368535467245334683933829036537079250582021738300493610287398773370932277332687908359299692245723852485276181741326316290940302033140579559178403741268884227211295194130518345706928058702760569777951123999890996888217192416181777870794986055197623115903434279901505284764475160741327885789748401833790401527465798329044839237431958829066998518844310243043987337187801186594007193974672464935879268562813076793487728436952741778784642215263492711285351915963488644256908501435125341636692990875779763805609175235106034485505964376357021294879073244403035012311713835381414087828068499924798350561849799320317046242570398353914655110406096917998939619587907658536469788126246004960648986601047521995482399290200131519018007241438884488485462697794247199984312478995358180240678218863791454292134938721534703729572317814808442198667758424780724270946220597524449935545613767588232537815700870683201049159070655325553898278566337608379498739967291389786851222322533245898972717642507851570430465631972082968458674231480872297872538387417721557719313220590298320859037728175015094217461796340796686300891845270436125810340803357739843165326354590032323496809643037342794068641100694704068108336371775721278663193696331196220857806616969261025643799137241092403187825980749612559541047383576914661639108144898288082112154185729601490076933826678857110776614242878098072663697755909613527701538822304278156792907294899739271464717961013023204985277755636207780534375691488322209693906425471760244213150034401734830634725152586578586713094039655193732254140166333031854454095926633136313377990173587355610632934551411101845182925265088772644991708231790067150320907477280990715217409666074088197430240285105477528523350420252093150847394150316692583369280350973928404889818573222211042006747729125827822934295748871591545052454899744917361984569481741664951213571661333679991089863635216765634944501223897736438527842946386969440523385440894701689759350774840460291630961451253482206149671548799178979210411010048116364616066856612294565759424172447081880742135159517620596207708169929334560936754581548137367390020280497060628972748977617201235038733483857100864592056856509487466302322223223919986067210514521279038840994059912157502096997911923972551855294045262680461698252885749333430799940063363047619287562533187358680366989923817876087628611799523733282376812451714241122569254105668562163089981997391277590855648561540970739436603495572901752505004800052081255444748463331346069755272626199544876987238977336184921880738920340028300926014384473813934266824293091017770565168481579371886810800501208604065528271985615065483694475570990739346851537053717535155710545172162714445834022605377594050322733252800094849435101613011613743086619344391819122670004708842422174706923130448942647640010207005117128857656986280802572345911810550730400280320526924522619600470580318788179478944063927376584230788135466552082456046061761243262116806015556389275251396064946303485161486751389038372070175301801751463807223525575846620639823612165546952979229414430790547108646759778125777024861349117549357968970104573283220379636682785106033969937668740028403616664725624855133590414847608589260081700087278574483449701435152906468142630975011453447336188478784146275175227018966159785427665633034476691874686358205806318542085401308715800725153358954693170167233496772560833590092384985695207103814480141443709420047053670504040962980098592672091578472651307591118478579618617650141642265689830639990167457313263132554760829309097772150878393191287229970931007151298733779641022683799348682107026273534703156138969424234892686599583159386271459223342767572360967604584804708838990470239240043728749680263029985699546630297032662840435476388411525812885127763967193723614172476855791651585477617329822446220391197924120489179908324379617626060942120543230626169922578623556819045194482224099929388029929620870672363075703052027471005137243311983348314575805717048019674268327524056156424706087727198400415019365144327237254450051372002814888856808807677648963236544284682897927489536241136893813946764690569568989355145655400295533198673935429553143539650951580460947049853849431958992420840940895629282359286879724784563695905476880358786556225362288967973470939901296647217500090166435531277048535239179423614101777827929979767197358096522039907152827184912792231813562233049709866954538118847688841629242976398451723648188229925902487804108503291672174848868711218404801084488787722803033456898924804296556466192461875397349036239193092699530448514687185111665024639969330085495401546482887964303081872894150849394126371681677181499273580291183655033588710361165734563875633578571427989748525341754018992061041196140257188048873254661291778358481326294033709974031129472833561784042332666154435555942355335362197071830732313026259558978773343139725071440343714156664761804437719188459566421572114071214697764907603671752142570117316168118037534096755221791316494786785045290942030117537452179194835140153873665230892711032782047289148158750439849548440365896291760155751377967451514803497305553599553161596720729278655954201744119435114494382374044724833345560896888187560770271792782395068949844450427926053373540095999043120472681184354177030470096439606078456195448891633492849521065274570389557788400793391477893033836611012309769507800631455950522426178149214174772314979923627468302917999760310974485991350943672324990215109864467019905991819066734647791434589828445204276275565122336677942914735567636654556839548907628979479522355612666920472461953167215401002404732779589605479845917980399847923863434146645661070176448025279634631035431965434671846815595325182393124755685493597433363317601510851170629812671111507164191255608429213585541503293819839939879622453451577832607320681857674100355447933957517010020578869454077268642815876676276014703157249509626201645758238416265957548092081123569258225411232770776773849731799775887023236052317616744916917640583959218337284812605066857629567036622565010405874695399424064112293567832369845949003514147047808353529079925509133571129417001328853611426828579851700699559127173585678459472476035879931093794089872207230146301567534903405819127533433110551161166411560561509363553827414845902231544676170301718710637675539388966079636770506883581340963473735084282772318392795372990381204469786320309440067361969450184736526273127109653310959159877821191207049360368974236319713153360586144303229583615097500418405365378921498167206849903510513304278635277273804368018653467432926615178100548979060397618503238517102989889601479119730609683893286685428000787318081078956728862766592481294741823479864369175447974031096261202156194606195727654983281288048765459028900485218626974003106576276695039687271736167788183397829811430209408293431551852284570037931588731508688045828944000957844671794373584649705921900251492476790432985153672287077154035975997989067430750691387927834557314400063179524117146386502356054307997016310278130390517108968676188604332577928128255470297685207566193483078101977511083715688878908347759988817407868395444313874479034844240664802393534223613428704236928867255610543031675575555857619219014008735976290961834834363642007847213160062902029261796322269164470591915093828137643947445633260064666159888853912061067823044527174992645597525460349156231726411254526364588348758763370860051954061521637379890534388987361570730578197555169825848200937149766170788310548646874970728379274733206657969443168916987492323949774274832115322232030553623081351806505496311418629150696332944790497873370568607389772459343237015609323312266238996312873923331165800939229245020863073942068164519055081420534214755339798088671359291233414154627370356568560317611374211169870718435505493049195370913955035992273767525843887575097917679781468943467095008174782960000698520052747695442402276673598777295272240613804278297057452297352798592195693367784994746844056258262592752241925677028651237252085706436699772070024834142881833849162162924168561183643011493781303422520908118619907250444877306635050915498068794478666601503714232700817554502188499922547094587937830823698758132953239834095725595104816328395660570076368972601014469977908002344393257241956977783260574514755171013888868028434039706118113044564487468613419740261878848399946402558693210031491951924058381469321687196794485578096534215767044039491790578340484989730629115678286722767672982426781063015423011826287046519302959760390708585625166223725301719852225288441841604969914030354746423377737427901250002262634770207061246696232720247431397662825564352342599257854907790079465323768900424602492598862885302265186466313551624880794260204389140290590951576085074096914878210978557378867646644052511020428625800776609916662821835556661914432543421102525445868854828375658391183070120418053075460866576201089129444121918395926435792060887976607069831727846969883481520432659637365083738190738322176335279666037254223315783501671833059674092215104293699109952946608878070461417582677417054539209457245657745009816862862144325841512384892639327417524508328327840847007625541134823227103655265568737316436493884593151313104358406805019575011390010316989113121910535756313377531800508923106658033126587296576369520451727218826863582548985310602379425664742886715308355839001801153029101168926089553317163887884077323682315387958782354862843454192710344351397028617960907583281264110134001196829719805706616326765500487127646769284085426629179322320488885122147272749017501608847155650108701102101045740680975133626935447839257400664040232544746889321031562779412152149541166880756444881280776575943410127746417432989086146559011259516367822768776466918785858868604471587556070797372454174735802268232862217255614751908911091307633461215334120997603466317882864104425062893323792620664462600132130705059565291050768015372531430417122442845898340994477716379113970120470439201500952916586384806742957912415301508384017188621638818839080076791571642590418661625838132010246279404513805731142468246314533176946007891588067850535775641558216631526595075238883775575689727636770990695840212611185533566636098542210984218363780108748047740276471536347428038128266648530346358800889603084946325633111748562379780009140631032630888014256715517305386374858364826919225802647445171814922002984995751447136840586914767646478145334595273439118041589103912129452266912632738172579780567573202166894869944996029730554611943615861573911021929278240373752604704389507541398166070745681376907503980046051709440375235046455112380533717526964455930235944944868027235883363769490111070703832004353597361649610925899904328361278728781587053664822768684936690755903279375589206377684051963462990428688743631389274703940391884497916685885484624021265203580810248962126420174777725715103072266488374288586109331657332732555859287262498605345079053228426560338006311513351175012660329969732714116274009562296543535904048040541823162018876561872765540181266735636601641344340953448728761557831802285040783359736011999527543034862154801412874938552949432890730512233226128932493629172102842401271291730074629657820137718224360223669502039860797064289965766554712593207304508246362401045497999817866122484857050422008713846845956652301389162337702229737676183973680639037398639921748069015614377071610828140068255942300367430877930101592458802793370727626817578110603593044691507587033618990534218784859176700464240807636587160900002912469760263062878421356949814999634261064924506762455063590030336470577604270825792488810149837674851319362208905475893396450849502399131663096020375716904917544449811200880380382229579302033326698817152321914461768167054421937793567115954152088819488476372196467748253667585587517706364402425983413127357167303494842961845704052598069690845405895603988630980680698073948190315042147161261023396184629672046789588051343436929749894499499521407682712821709068499705885509847938211416671143371802337741734344174591899374200127450061847649932505167928450911083650730891770790924763161129352667007642725562915574498533385017452738910812807939770624673494903922503440630805428934074439583583174398963894374932120024405252890366267991786414853487416981171103242269503189708615352020195087270162627820396799007790936211965724937073839487994343842088908471990459879697276534043008903400636278995381418875753472847290761219575076772637093924113035842481362432966523864915339638590221971799752007223483442960549004593617061010604802634453104526039761854155863903800781800081355652240653836558160635194394933993052058280001336048886528975177120673950053373520643848598333613530632845821227932755951148186033523851308815279631443655472753566248359308399951715438253764816412400369653448259017483834519244086364375313329796683510342716049253023861706906139963851147596063483896772406577421452737125766016756385994413286445614621795158201818256233536721093583938769102898398599533504551209483371446843394725650524010131462342553680265248987707866648267441027094134603924447770374109453518411418317238902433221941575667157869710362481882384760671134821090613383576640337859732064766674659803497398313275471066144097851698427996536259521536251364690951262952860189614372166178690039009944343303213959990199666238162113507417830081491111192364915259017530486431296910834920482077111585020820395296364844483524784415019032770264957319415878889668074004347714255900355563354307069207532696967428476671622827852918114924297579263803247655178504954909099853495494443770686374613211340010595888132812159347358853746005118185230352500402097440014473808540998494303310928416167147392121211979252697392553361771793984178392155018895567415130418986009469045840682922768776237034478504925720946730217992295931125306345782985020315755334159979102881753471851209435244983719230225859035258388121297119490784243079916683797070787371972751063269647089303646026786255028786220048332804962902846940478416832372926086073932644208087550308263900901823239044549028254364753566492458942250479668840929120215147621310946782712457173937537548230257171859130041647409544559171195845873008726862490420946567734346162258825537297572994249671045512363108325330019902466293573087995331509914387534627593722382004827240170544278640275383753346631674295930494731321485021546145211476965689117602713276473278632073256398385447657675383247883217440408326136136383196942297522901852199083822375663075161435437312775255634877716141309900500120421085506038783662150068473924955414478325523465724960616734259171905699921482440635343332692974822552504334495816188417812490876269529203172345504516513213387163532478127825731649368735850584315601667625793206320988329840827077302739413690462303900509360394057954045112685064738106773637674096314973239115558736337254337997870344650862561589817397533183387884570070892101024965479322229112740772440864412663627903524668510802423626362537351236045614465075075935364238223118343824432978175105275105292012262675675405818500814804087745630581902658110572556016446585731906924840006855591890715933229347070763992114805898242934722168810301434851424032167379991324448895847159082534858801727481890750475095755853409341779116380121693469527082545373140373336565391365279566323946461186289986645743243410965918434807452220272873410609035851150824722822039587436336277390399134042771653750272716402472822873791292827585439114946528727339866128639977700064829855142352664762106988453426624949259246037790713142221268434103934615933863405582490236150095213835631006761666965233391357600497512115754846046433942320415366605504349179884390438991550942554563898810144866271269035065431504090426208064872862343742646523477125425525626961960314167119511798842266645223130356148327553636245651692232558200838221898362117946337051571565094112724271839394687519153152834550910089468307989619449218539162492358489757698643667614707585178666560119893790661926482791251449178544536563290832005905272955581817109930541823911079602875424362220197247116362201308172229324201471277209827209861916768426434983461607841783952371204268495066322465814746430658042244932793372026407593791960673350295460848198430042919311300708104173316603794565377741812833624843546474066575392307969373016296012336675086969776945753585460662071772718325910117740778806408184682473268915277666722737275803350380955408089676975030385505251463701915055249832348494156003964402709264310905758880697651266751655947212044648622287844941656745679363177720594931079725541743109759610910028538523330097772416081039895976451506370352518262675985923932652475987585202451437368513329413902146325752726969552255538290443921741761405651630661167383302092659774990891147543119612582022329278884868576613914356267838547271860923456618039923581781773619796956349601873702544279909083266225685984175173135206115922687403448204188455521617343960027103192621970626754399097452426765041327754969998770797742867586597719184839623885226415675948128326202436234689959132229088725805532488986460721982271888926178063649525427623733988834438257727907074801089225516276712518841140530846297653483835381407131179814548251530105432738416822277416633634138821636632362451130754328102787961556668306067104938190896255627570491331937610039369047666225499503398012073842702222196657697068201919610786109089894620741411880117777711696787060180012059759921036699933293370637263427116963441272771739401344415620574625790486731637935392702367953769750299007191763607323882889290850866413415014894381322995550439806720023423114743343637629219929129876067692052754674127977766281477952702429044459434638533028100962710650122220276425990816936899880009088381330990057955967230011332692895383038357709917660452262164182870624912250362128447466776476346934288843608821440701297283877891803332450528475040440373664190827150212771293758350043973593241702025550813661166241328470566124835172105537655838201048424939555074992140057485822969166307009438109702960008993522342986029924480405434860563227651699027733609509624429122566806595627414497811799280630655475571298116087967129874283633339157435478293684597356860920227049395560981626363980929747641563385067130397826538483601822554160495780473739187585345584679276774085205238082093120827824815336369727653841794203807271897347825307590442157334278556115079600815304822434429249802385389609811916544155685743643106331691305709001688052756510097997268052681120865627085586200584573451740267347307826619166150175667668704467119876718016490039193965211016425714389729394226458110194253696217330922200916830955217893045724457286263606903773176305775865475797358296461737512497852161818300519405335879816440617385813080649301700652952362810892705255972696670972898910315166364714794634465925070008083339881171039248072085369231910600435724730463680972549500938983166445258775535509348936263568037605407100794915737744629834950239432377083505901895407444204333420058438968476787858623071618010754095076748196857995916547670480179601340942461199091567029051153309980333125143503799759651405961116176617161491180389650564647569347675820166631244557872931210132178444079179232254698460433532647985618742288686959778934141738201248849906319568732976159487188563581588835918504539453951493061180830255672312042980110918851714864294070949086803645839853694704531112108848077349819077745810831678797271680065882163080160518482348879725756302556240061783929199573297781382840250064144458341710147212842060516138524804544939776581001884461145649537614804357180733759272875399811351426014458484530586497083196922264002142305394000093414323991308283811601377204096669859721450563558230426950697808548003218154866588646740967697156141049415302259853777389672011875602746158242039104404829075236898921728621917646223812880144193899418555339861513746374546213220303043343076434744810645775997366806429031400430808686610125920602296003966988668808924206020423589526995200722266016759434072656244107879827506837221977190208950346101181580792160647016405118043379984842958532910506256606866492851646570619924889219553188628810590584029837251693096950025966954168380560806446529924470195506282500611842270514300992505205223508452109031265230536238418014145489719003341372493609894619951997080571583912909813778172598602454676533180319222229573916247983630441712309785167866922825112133160554297089319402830861333854784406299152031203053267869197818494623194016299393468347843951631216818180823633705001022348734019721505803940367375150611185636624817048593722195449364612264862868747228931172129813153428306399079391501353789114998047069954958040782744596882302378528133524850598352607635640738480336692796095136577051556506797684885190176922908678722669668723691603554512071565973366046186197636747028581300356314271371537684671196401082652910111020067544898135718430808171865519481867782994653607040053519639286685093404564064869744153308290102784796641466099942814595537982420236318814698441974861809075751329413486431751912264607674493421718494187208839989892166636695079936133436517864012307398383035418165377406071719426386055088510811024701978094910192501236868615337942807399403747146964591485082296564324258772802999325885541401310968836887345463738658698094749247261928013201798375359937536490051992125971822025948546582021347595066432811307796940944135929329675735503417505898341410846386644525006604592244335711290349487812246183495080536974666582999877329704726014734163000389944909578915941493618767279644316182686798117672823289131270668462117094244466793590720849515571018930615309649567606847682712147090214093882996210943071832250006228368190141113665181751785739059962463417447199631989076612196580494570663033408024724028447237930925908393516186166700119218118810232730163751748389962745435076245865559112549303771920494171407683513514182172861439060746180635566499538204514334118423854079937498938973284535871765834116496368616118686896810678830245592276513967250153808173324288139278244553639018042488715149209952084505805164612745582423282862746574942975729596430950887873539758275031538084207444787453534055862166094218941207330018530196015891768786208015520011038947796232420179685535870344006099318533940394963852665012455335007913509577159302524612427159966894377964475235854084232190420360647715688927716470088715084503296065595162433948688701297394189821649771704726172872392409425504516601212721462629805535003941028886376792366932980687013915251539679326615372720086771894475316863132963358827827160539764101191102139918666077212010074084857288746137249422303971936456740996748131666184769001394653155555157161621458382300930618126959906477480734219027972752238991778436516817039496987980746098370854647795742180920384404739336181423893773464743332339757835677474121135459026257388672707727090749925857314477019778281779674177427864069377393780020288725763930861389180692642029037484003267524767866549549419369117156873897987242706589143486090109941477354512236624719468615039462353162283692464031116042916050754532389637992160171749984549598003192550272179260223529648967964059080494396860902958148751142097848422305768000537310574441426071143514936240635378323384607602201764311202044265982695510719443369773884158713799825845866605313957852390711669382419523704132781957537861254100708970120012634098989214466159428272896032784685476513752513059397048209378122676035629653698574930425816268809992524898986017951107417880971594763788762555630544047084585855295094063590156139259864172189854577987304707393990254337324018717575196386208874196969681139458788940776015281160463114019282554914939826923374555016114591236654459977216879425387159417059899251963027980523738440255737544323581521369519388114769408083982785788829221857181831717182416428061575694636910901715651053474642736282790856224231399246170777410007516168683221971126139597593471588319196879402236723388369447718833373469730526219544477709404619533862176803619317208052766816815640168492677751777790864854626766118680621935172768778988927424891764644872908364530115210103044911871898351142069586260508291931199611879492647437684096772566304529441096829452184916924678595183519475373740211506591842360196128436077211533267152040028339212773334311954074251994351808954594754103756057693595357646092836538712568780954404897273269896060915217906424478276584209430581098705664484782461497277558717330091987110933469345866125605811084629375713377570868292390756612944026543621485979380451751911377619861390075896113805484829191732049874855201300960463805026345991424525478530148351103596496173787596825194244848362256187052768426802852141782696933811591627285445353319738311412420489001340342448924924375324339597746055664935500550923755972804858488602685797038488041506587463626715255258990437253429630463499579427806419772179933575810980580507917954096706921475855881894405008407174357276893559535218796906300917570079177911008152474109572716159151219550733876100245767447600983221322376954295826602360877938517149788553961168764877772797561661795997940220317747909099313459161047428692062975588362381269335439837503067113230404007615172191941065428676682088788262673583133811702864784222211465659648839120323639346523000909331887313434424002070839078766643316346157935695092018225905244614162439051173393078560585260083856444393238636644680436257406320801297975080619782433900703142702741688663220401999162803061827672036714457516609768271041086157435831405022663375946146768289121514054243931039763063637705849070346698723705757141365557718838656800991591236441517955193718010516642856060952801349412771434527888733745514688837637672988744167945700833978658950621555997370332762702392512933355863738854697773067521488771366240844599124435331679750245424684590598161818725517691869485516101115261554194109086719331229855210486765400447914777583108077703973757238115153702514222710351005874274605887632057132235581719423114185384821643310757086080849570089700406266732692518353366469889956751360949712858268257216940039565490209352312593622971843672161597832999348169644985230187503216445698255825131145178575156078762989217244369277438037635538858323122456503518272821625303810596506548798836108417523037441678400811881806913591145529925091784831794188009479481915699854944018078017595811690477388651542858580148923164959502682740874865906579497500764367325574116225487748081588317656381107041248580342716712058845383402571769670502432124124444718768168790934323530564476534810923566026131140978024297866625159179154016306966382237001385250907473562988350649512380791091793063742512003191129536817993639791432367048752161021342918872121560078011690352419602260699627878523960390678480517476970384927401677680321298060112979173100616269831992510308591546420550408621762240952978777002210646515155731941442221349644244614555360686944360853327921705490864476731898156842066129216441605792405362769258897653657954456128720959304362535795859441175388040024109316438982516031380493847363017315469135622757055180166149740791595060908875435537738953609644673237539454521779562085429617762316892329255414285545099474020229652647396884486381635348103731106014537155117055939063964069609195366432894421361759159901013442979702357534424672155401887329494456101321502400324573649988539125879489147413916046638266259013822222871919008787768727234608575127046614084490616702692435456346790098643952057095749027960263385817247303004658992670995147404297075782707461157927093831561569672040269243933606626130475906156194649342819327046586492247147141540958955208214177743600141940729152012267161185134991563816779187400134999652886019011274008793625207924019979988671194496781449039077254255158750801483511763964517403699346684114451169977365417729827582094048771786674370181747137718548111298887726999561526020267617147524977661353524173063933491910737699726723874437482031302769800737568562472681669118461047851275747920274995221119258690987264102381026147781150133122423595945845030350044081363140649789653519764194893773430755790276332239553998672491739555817357965642535200202953878410322780512846857695399728481294302308494326305045299828738343971108396723074272473118063656165795156959613066349778754744206733175687291287052803260251996886434640216690594828351778184841139648863572708671532001426793561724098755670426588399110122237766413590782532209653289384159576719852127559749971651731894665037754769164189318865125387079109151037993104293610912838036625047046369495020547875637896055324155081375485387346984031664821976564903630828575993114447991597890535857555890346829038671398950317425625529470934644244624788393767538194641297928077215206391276500832779302638312292894050565443731485990530400458768627118563376268399849496302097058839226275249014564588063194661420961958497436709314321471320903929403821296976262685590908668258701168059137378684819680702161659588635448997472109900297618683490649981585285579058776798614141759393297436812922310615680652483158296245200441114998174727571487487804923953350957791413092629987743553369538782449258288121295242857957098838228509459937254051399806818355968323806197923181158430535961364590976684195849441581030494889745743194490100320131013617534840030070331354167838853604362076429191640048009220259795275050409370572788848113552032027588736377436439156758554606514033165415217466071858103496569580093882417537398205866445830832284845945713233671924803607378890987652160480313767875027545080370233795862099043165005632171722300783436864605274969408152934183993278037107549310455266349189112556612673174134902300060349094180907691655728864437622404557188253108674047107186831288028511490813055390990380231904897866004213461222201857384475533877456741324398567704674934727876033461189727997496531204262854926732538839223652823096411541851308705756387015918831007519624694262857944889353328643406181187784012015439950430985233125672861335394705948010781614892668386314233377081832451982559722709477210524855725512877746707238919386649829199275101296137465897626084708409709026189841634711925081835294940449963050520185066867760766246985457522722219832877947461534935931488740398798823880440504648191994542972264621291314004009152014086291256874692209011036006532744478810804836098533827348708018952574233623217564982041339159641048376310771154314908020749482566139809540321260870303359562005876277922872367875268596772517310713180801993682646709276150797938730049995146493582351999725507922380504515804568517014870027589952492671497778262309594408630962913479686062348917917845091061148863042039737825204755164027125371072654917319160161493757768304320081799278596957690334998442180962488530330791076234867438728317722548255678693029850208836489889798883676244249938366161633930149153226356565365103253539968005299107475173236019844634437918823788110581554366662830446587241964580115573381739542398533442455000299203669556333824940997469719164304335982334755759735598846554349001526846462930425135784791213378976900421966671213942316779545427893114174479881756408770744939184136044422600427145749201299069144369250913656198423760820572849958878012579718547560809991056188315147836479667261706906287512894724884559535962239498253870681242649457455215030078814223413038778970715531460288544954552569763369900885130121799547672454508143954952299897432732285832346180904934316120590765552272373226298258744876248764901921490736001705953522590209771255413658570255337048344517156799083409300584267084092767753999629722530383349823330741501546201645620134692160832513574608379826181041095896629698560003531065739111802403002951346831462024630215410851614583774612150569606068321257605125732157392438143362074408305476935889833347191303993789662350700339387773620978864036988896053263540691605525934486577603140108574499253626434299498422160353511229974565342599552224886056726391366784956358494763314554630484920633154465817728392724946787162485886342111039721820716017459184311602787008520290730356616122099845570079668388524527839383033538790006178515955473178248795232378385434869447808777102449513609601960055934678199505878262015780249211731221500421931671956693098637113598563897182665063319630335253237864647309717152283266676953786262513758347674166708773476563021429650471367888259609064410753837432558953038956569970775884704563879967719086837516391403863454118671039083726651668419905499383352313370433302735448560081368388217902969366493849021277587704717649097502182575808384011473856891569350769247071809411992973431658048031077989900999415825109454316848119642807314612079163020871313791659022800182490918071356289270102646116185109401897681491958316832685570240422436933493340694873139881309682356685348553399115098923631150746399580926898891316360186882922884916982134676347725786802974250718588310784370991169651150706739812190190588771993817083829948508051340221389879672742824920996960582662606208458574549302482639279958202161727769012617445585464637553453584156304092343401396553050780601378423079579072191942385368591631929546717085513407587064360376930711833009234446047578877648382618303986379846397213208688513814131768676551153356859900062428712917496290736819596020466733101286909204485073765044958876506989972862524787019458449405067399085665487010086448548294865669624498138256597238964956336592435270414348853126035755414285445110923311393232669570252113976932833059347572350022580903378887995524572041408943766279792162178919374030105544814455810373578046948191832674742290961466666400030968287670089816922741214503673175385426171560750605016642514738022194070656024115748370226360885795497833998481677195533660569830197743749401676723537061815372638190421297489017428693377390269309946484168806109137967231424798378501116874222953767988085010089714136814762960180236263957624909898479417574994200183639657461181181577927199488637123319677939144428701819844952266710269623224011448764007600107790403943422946159524596493076994733802633382079996792655384110930659936910083961274131460466496095657187133072417688205278160067675216535016200802753721150398051614458030146860949946751223555947657121172805838312979663078710226086299593671565271760905258207472994557611725018804265224584712159574835036319636239684256918211801508480980187879869717328180375781246315248923634241604321960395467142049786967570855692037591461921754169479111075924789545535023444181282563809053122295645520554096524839214072277628011610512470746003616998468685998092861300907035293765950380502725350149832090468638302632564114728644209811713425084889103962874341740857151949696781074826709582027014640300292139230567810286210392959691991119327974718669827621345773856242781287825372238753890116013604767555428354354929566541333026902091835514447420747482998920490095990430936813912700338085748742088740558235593380643163172567603221541535179492568200676832029631731479794188178795577920367994932082056686649496952627079773391931934595302817397269971730768341589640981256125582577143640871036749655572883115062076640262112356003341911718184046465563931941071041046523287090007414678460890846287129677699169159333417353894729117967974115039816897894870501202501375843987202746571396959948169264769252607115867838418373627982350958438462470640888905379981487524357109720919135734985213066579880499270147694642803428492387767034270962988212012899790604847982388681091360090962677072894016498845220823335541971292079852006879940418422570109340120821805404993456627871673858286483486190077326708158292488562109246228306523010923175814689587264881217231703318718072284888326719414500542154819451267668578584340714539285255297317686642984606003172195192587732649772899049957155507787534670629631952130772653106564625953954748976366639109339491668565670602005466053532629603731992246440507633516526651801968887096472377508595443431741937206497367540236334622905313688175002267254762278591314340085755520375421538038212980110266094179026015990985773689048685369454449573815786194198203703519394028640989835517936993583259067515367671879163326099496292744474109244114288132522248408148394259043391361980078615813588203146624523891406004583041948682505925569332055514038977478538354200777772585416609441836784609116405115791333235701402297775667689870043029927317763942402040883145225529506692655153991484861215275469953572235326752989217081541826166892993172326074933648529926238649997106696495862421678820302426871547695725772389273923498002464082789419114347304003105291638268885947879980969737719521728489772132093248632138482255130678369834633017525321549460568923255386851062359237418358865593467122828069282204899633698146821455377463514852015804538353555440038409787074122255428154011465648931671232871999459183250792465297093171181453982716005313566742753641033623860251561591558161436801866827676530964827070510863897728266216028348285178976336181116451089466943274957331597807931444770330512062255052867674186121013026102783544012805035707894919243042005571211331334883469562370365315630474117599235797337516412109866427030386886772616058971266468987399598146488201843434565532703873568234243044165106161086396018402589811615936278261249976451387289837344368472294151456035046427274636406938372244797169466024021473281494023491180528584042705204322420668903385644779414650311754531579598307551313505550317477573543176941769389020850163055089093045204928374809663925964003959099333733329531932267142730100837948027093868175923453568399952372812709950254698219460672336640318952526303352644558991029357901567297630036867652881464415229546042347743112506049320010800559116480735920065356760025342158860837016842663076434000749204647157203039868871870171441132128688500885323865784878039960237800866374549420353208709775993281676767877621249312628104737336409455216047609923292880378638108726931629393881414669595800062535610574283637155810788989871342841078454682320559391530623701715379414280267260701895219224666610563200561983332929248248095416865385024700954386673419746335397378847251771646212819193043448721995446301160304836220874324586721119590246391263684921585027767982364657579100702801746410905101580892093670690212095218912705048035792918904495664106149107649370688459389956317408528995309184002247397033851832461971488790856769375776974968842207384951048256478644584279514752394546836853987395681488087937645362054101229877772669378743897493897036085532700244079273224683099970233853718587158859076898825577273973454277129414968833485235859544016097656323707092058958890369803651540401841544424938593062787464312927995348615869985609358298702192706680992090410342213566104077318010234781201260261982401892408088837214858568535864220675767908434469439790592021904292157837864204496551942197785914979723698445295720282994634147930567538423700947765580994209132305959873647582939668958534706231852515165090670688221934697188211460484177354226475929228687082550388836795056836185326133833017250390636333202527995854377721171677816610840234203600730619461715443797609094890087800551354935053836814871059399760674023607674341103050117909837066847411421416918637110878748740880884523421043842592105521883088600552184823069651477666964802182976477641078285511094290368307346642411088934547584602053102597833996984595833381909914951881726165717487384306322658821709158300043204088126946333114353185363057087447448611290863427555826756693810772695322610507111509739045325551445213925684074903309414325954000150272873874148564017712849079972203588842904205520981553529336134986552440892729888657436655634502079754681889773025437387593655112519430138935849082783740096414751289220058225388985813810428423934910356063093967560039940798202003609453969237399012261806057494018810040814785777848655560021396361841422869615390159544285314794671312489554013938802893063300611920455023110141842621505836637440153661542741333014283582843847323201087056801800778864801257057953949593087768820740090819156788271206350037448468628429528334063829400336644182212507602476931359922528633244825178458427451762184450241229028069019707402277315418259938967684129317600834607129064102291761421957082835313255277461448363834609361008009838342846922694929038262064098454775882473822086004996942474306975106507279924083651524928530643387120002289443099326777189962256808247864496194633957505038681100383253357197311208252956755203119119453392674944108112426692900034817115848222806531259911749952065166180606267417878949604452442318144983517791049402509480880742645790033895982304480988709727165545510349977041059584265711662106969029025247004418372894605157387438743639004415908723445761872191241505367081542190606910588981362559404440897369241159732820132347536411525097295112886586106477802107228093318595341831947443144303595818447394362608318376490583963563188112615414875404185994973745181612029481419927191725479883173542419622650923700129531781209923946845661888001651937562201539068717569109107757634077208302164425547541828285138904811209587022917096823470319689579264233757699839693067997082510151325999975917811590368636641953857230442849514826719280074188263491382682245542142062582506651275049282476161788875785949354174980347283763725158850740376233058428019023316588526722364689800746519836353059613637870128100367383132770983271281517204116592816650065527733243908426734119910490906687322308697326198913681990503371257707915558177402264851425873897016210761880104801521005854976317478027479297135117240827889275030990001454536074363810925563172938198262268335940343632953692875078093579915784961657968600563928732628612066629485177608645411981466046202225671727160385443791598199235339747680940338241263991954288732462651739446564096029785700402147705674273240320535791209300301494208322335973389925325908106999334168546332188220396420921631361332712065907305477638502184447179401452914226068864241480842868830757621326507089419616861139578297527240011302875292450966386003482771120219076534111733520864006404107112501831472537747314691018370705287678330136412130367128838668046992243844214451964138755796105607786416622839521514983319529096738117843756915437786969343835296897061750708919062285499161989015651782496160634206305518084513278544255097254335336963420063213119068384641207684568370031122723513745975113653293229501971960246294782378363207821596375620931557077673530519286972121893410746043722387999103761796889317840473199262523454402857587234538392711014916901743227525768399964435762285171994210852847667264886320172418513988715161997651007085525044158587492142338446803463327191512090952834270111105265440028476238010232782145966426318806114904535308040882818677310340742632779426428742805033455140803601676612112627020025272426146325467273645570015723279711860323751253812794543235543278984437585086148559779555835653782333094869901348624955979330467706561906747034782471352356024336241607290049138727237685571921078520337216079409132554903141719879348068038304331882094509652877954498056957721441250923409854320381322428636359041626800695745896031112197299970420252490932011744103270501798797208459180913073286190845575024082790242138369247339857476051513058005822381679912756770963789928900067541259119010312561350988765546769885887041077562231785743746150867807437766568327648803496236657466555641793185532472712170999970202318887069866986741749607262046695961694349952732289095625985533319557771491318503379572948036849983207963881335282509516953062578615063682177857568878124706923035150091434795183925192493118536272646555203313355122136977891869580080387340616716117919837960455507000226321646876556145519975051734509252168049381223743354483942454109652642001794412706569182682815951874994240439744849152787476923491492142107400241614499769296646406852546057786456437980296161237942719290420609711720910930802336075799668081079713976666448895116503950036432102880666795130999051411105165896526795658788033371153386169364304534655136354695805652838829411560566249156676386763799011776884716302510896758120571529450586931534433131474397839926632184299568020107480782077941192469858005204476576486712337320185225156104074651639270811304480552075419789220383353804269503822912560773304590973255727909140054030045337114808981457200707308912793305214492365064594584145764700320456662532599081511749703358177871946849026678991729687941120954479072351751603091330527945871971045572723595790479566917160285742351386826077239491790653656468901755794751572213744500341787464194486233849179812922384329591927146053807887284360935581335614340010833236302172158407179897467085789725095483260158443741509244230071175191002318017056074529356133557707861546785604816056826971791250777029235687598383992718338320837872471321745792498019277527161147935917294411177708478100160327900542405809357408602298178509516973222209702629328975102170977370143798585157517385264662925295700974143047148091800740343385730875450876257902356269120737544792192686956595479073951630912078445128836853711150975506049746500920965368424767921492672967477901256981220155234192768060506228183727312944390745138384131714724630965268018498275564142688905761322119019317322088730017393472319257147228152193726395945653802055167249723643211078356361171100885633928779616392146036817130538952711858270411580106211365578682087386037424903007339611648264017464610727977102134565190033176520454156556970122060510447370932865715339339755854116944030938304914543522261740156326328640664430255586137330226204575843083833340794025207256924074106740450072546261107420618166307807140141453906198693618448746934864149353099399899226306296461521038004196508942949752860430066511744203126040025030539756213495503127390834183441360304548658172099169360448674293542527561781767938034968106364516410816206937521045950738260380680300539925346821340438465264139332919545153283305058082785779998276635969594148883099952345201098902682851774576978707021829855199333010964370081359307002746252500889079247578178665074781604544931167049411019223521134820651597883044015116164869354181281369659786488429163883325702758532055988321672937225342004429482123546420272143170177076380368306792410881485044499302875232398999805640957096695600089300501355668021905436434171976945357824686095407250666084404065461488762566274230265819749837093159497821879796987355431128149297109820806052465866440858518863949331101364088827519089575278666558015114405728385933076967227711721168935656378746028585309758685698808212670605947104284741210796463217378705996840227070459441630134788948440414339113468325848860577472896368524674418823551856277132749722937118312729913468499110968429462038282430853381560314253802947969265007898787784415549506936611263497508540370052329972253143256556756899817662478415426214306708213016715643376071023857411699039264787680067254950653809798429463939835552192302510390816675868395516433734795760555450667514121162769768964342978873616735851924953490666356840605614434783829232554857205547309724462704513872785490453780397576695027856289737898595177170024197030421726543160470615459107570879746878976982547224950607781155601248609568846535901593168184051893422137136300596176274488259389012741065797045827039905892405407863944983713892110837795512754022218015086974244080024390293781878689221166943961424585633913493257969155898667646518568462126309648674604048598931650715078849171609441849467152743073484386090540206166325237080394692648895949427621311052173837342549206860572220641596822548264832089548762473025251366411429327456720566470304743714685261884385213861931886018136720780712653172522624127850095330771843563470906008269214046293513014931203516882601201639196496211902292567899029899336567739004783615248019115309540201212459209441763772232197717263136902638988029749140159755188808239488673366215109979925285106950674539848511842265753318012136660910322490103125214812907213563461305829384519634268517117471776676677608462923580466761783578253855803722437711943308678427984806583646708166043709741013215529499865749736549981101455799663084767956817272076251165790263529382050567147870771197939700503734719315063235815092109564711660456851842301531263223292079053720757114071284431374374775116308836560944745780062383234573684500392270735538570769196850723582031874234258725098625395481786557368149782177495713627305929194040919546904809179460463342059388646640865377910095408384703520663741167504209689045164590742728170583026228696202981697603772720657990453206632758365981805726147742770496470105535222537141169270992962854251805639768726096162763463651992050539515332661235513265911275302647106787155305578018440937671606350455724374053303607661480865579558670128030662274841471831052731092632330529553811455963875934227151359016632355969034783578248904713381870642815838446416713359910319920794030140555108865932405802538748394135164307445152392706738132972714222657833541411136165344078972459843602268238914986678008223225415814774141365647868054764100740499608711557639351174394535568903773833697220215983100871474176993620790877147647490081968229899124143099517474621961080753826252996984334067227820790255390594076691569818342188409216671835685115301114542608985362534461230064712354555490705071164153770868733565829820173815611238653365292785619429846079154381650259852926092857383518425388115098720066108001752905618273060576807890351443825460661008484061387814674369883348366265705678294271923991515842324531802742622521358894109771498692614828251863158826913275606026388334831938863249160221983632634776328871504960197682886186017042838574466751041439929103253180036573304819149618491869039491762776911620778479995753563384604639970249988215459762042226064553525395820643087983259546285463404276710369042310663423443186362306608909989628368058778637658653919599682177914209208208347774621952599509233683622915824059705639221826162872440342074178339734560732632180289849607677451108675418194626057156969107302273893569008680626219071582780998287885217268701956659771234587796827094730155065345716427807187494441916132265856686407568824551492773396834679886003392006822352308944401200790862026386390950666006687548360464813837009384874377531173359588401730853324659584071213006106597096883336000463829215406323022758131076080180050096985264164405503265368695978803346340485539464437938592971029634634674125869389616072577259026377130049649105545022936657301801244493988843394553647577941316989992478879703718197686569137731551337136473387940801498219534419104309422541552756804391803501243468745873314284183325943955626187385546268811837113645366970421097104154197544530196098604810534051563562242716568821262170389368176785187670598803572186447700770518857925983625631908623612150031508020614002426645350790349597706932329806436338008585474233738266523724241170119950648179933891138322436365352671792412264404740285587983984218794465339791125005377027495302931210972065704069003540997632582863973927655048099396678550408268315278541973344916978052710813578344940355005572583366348459757925643965922256606728469652789673920500386420367445276563675899847965625759426531554621667842953031802016169103076329342839301281411579726406408318130569029485457320902489471052658895060637519674231460115665635037321838715904183049845490131957551248190241492302647434772284991546782973876142463798095900798701064843053385069840082533254944664539546252135388074680310834377389075688276835710607545025928671802189839252014896029598988289916077738462616814659886776109641948204099847826029086617763855029259952252512751994004534671451635105866442884374901627964289429420339953423880904961527905084980129069568041680966523049177274685580369566060531998358831743488384600862117082794568384576059107373023479487538468565145608138323269737672717687404652368413729582091485787663251639482215826368049751737264002051849034993862615828457766074188667234921009008789449583357315299206958975381851978602758591267673202014540725084044746179895336411531552691945977907883195797464603390088837321862691529913133202726842955063965859918574602715211815074446787415753293633767742165348328480511769150290290232119655689693540913217831486028577189886191203995916131246638948234273198062289782820212170958511804889852093352141960128425259848996215745707980391995309925243387648588162250356974867767929562522990362937361900663077462523178236442767548255312147473557464587082998121585189911616466285658033109654037317341043614974245516963054223844425606385775163160333392905295397228275659195355134625144350032466943273998642090074532209921447272095497760629832296262267564154165903033822323523083005988422040212992806112312957446521036801727354353882356936519353612375122494130327688647068774786342963933924091708216065549828823853027138279068918139403429031465248350083759854179243357058691546736523362593642666711781489727836028335202694513930090927126562706887665265426539013902411358553182167592465195938594042706411362367657152528266779594337239733588712513607970849932420118610229973992720998177514373827131001074246029846029529920227031749094494591674663358499249754104218576373591224014373548325356080876732491482493455888111542404908321866628713464151696818862209662158555022923839118024687907028864366688267003521880917080946981848198844305215605962483561515989170147759219160355930728273487694952649246373487491865975508158037425112161809823425958442538325501834438924928099299423013611104896125169870286884911606363647211009064095143219961601020212727784408733270755427483054003102221464769905252703289770519409590569846967952265907009308841384367654461960597052143468036851624614916570400750012650557506203719039542178837632044249811279821396738028597930626440580747584757475850190621124501746055438514759629499827947638111147280829421979506733498084409285016689973435260295528115449733658314335543231638695483455394727411158289035292849584935183030007896011440905973212211638800828860663952584058449732124508485858659703572491942272473115988906171080078549969982225619438898062715643851460843027340130781045484684255868306522874443564499267806611011666674683370780027056146321990504396882556361459200941117787734202984720636318300881376073188038807333381788206145576322856753003188490703810380888318453769057433106962795628839877703073170394778965346221400991771482420315260226281464441000088594017779237107499166566854549021815210428175032805667988582872393654436470834029186732342456746172456482771169398892985452507076594248600561821123281736441618906184049624501045371340939299917060456534235523083615579312333771373519309752485954644397137391651372531486586419493974749651605349902634863028642322686225340653640856999792437639020596653623629437399320542194854990643745804923338897462382622851899339206343353363512028389080866495154435606094934372642883927662273533208292949142420475266716238267354680200521166759335973855124884168882680643812319013161569206149780937425421764583834171141607958154909936692346613487236740758323985910377499274195951999341773820187174359553270611116890019902977518459810732165545200104367733666990628954910311654533466245597358614463721176926227368349432757660117265181235849368680804382890164453007038185268324406124292381011431309533224397785080145686887065669072787369721000177490516265088995704359815876471746797699453244070945800312675624055483152385451242693596675255014186857570803673003837186593617695425297593358616345971188030995269848653521531134062673262003587730971309330372714930744077005388250698414518100091442153963709585973596914545621000892663788808737438224755316872940629419374788062106447067245511532625092722825712207736347979554733923001386057125978821822293607111863327717974550157345409342758999542307884884018169014125835588537421289148356422221582055640579723631985064654089407556911478126885794314882667878345081104178372007048360262694487721246707454211256080654182835794868507666437208720738622364625379899749733961648892364900783425761527386460116532092533016978121601065901141266763408448194262657947477488594658869768242617965672827028780533009241612076757974790598520056074153493771498948254242764392942647883962283922270443775817651837515214593480634052079403547904842523522053304799283248101009528801558100347730978899069566015836680347414114851529426892472724712227149551226877004482290090021234668069713013419198313467932595900254077274358715582116398575880572203046502764690832273756105720471761787444466122734597172326176028483656890092850335939210540692202711436346657545562664398149694686877332974051010505193730158460842164995880003294164660101237408203002192912688698343929957892955578262810782651091855047267305043109333581727818926441621944413914449681657287277524438777887762590731722538090027226392152490585678941557205808967982407939371093174233930565020119912493637032158076280092053991710635762907620407324193680200293827752550097891724943318258647576244989080310196769605267290713355919751375265594099769514379630752653558297783672833252619771221790900720307811502518297577668873741303200351132801193665680710774251805761554593239751988449034675445595031883686227793811471170212116575127087170971229677164837269534374581349427192002583167221813456280625021381501051897473305008658304805578537107363778229789269031788280065303697411068888283083092078598044184042089253997295963203228794491968499827664188838926158309011426176904081369402415695754377531050810927654189381435606279929373415726406560954285920046787782597765212846145671510012323353357202626211966074036149754243872102922041438532642311330189356686941917928222699784812228945844981323296125245485957915073115196920309525548787295055479470204468292052969428563226531219279551286143262537446639028723948774915465400436116723957885683927255182667467049055923378967192778212385869320690358364346437110153628375830810279796657103832582301711340022056497834552201209955590910386455505791895137805056323219292611008558300621868473136504755035463670990108565453066317634217255508301121538723340147656242595972657681527867449682821273826193471987951285243238721859939100596571632255450557482081851861871811227621023917365983023436465828537515223986613191194926496625482719903648315723060658811152020794801948550080484770426484699154578856515048805956248857046405396419059447885813480804929345763787723154812108415878642684218625004654006209114809103193774659800271807283624168890860644588504646855180490111733574856846094640070616128992625733709683813571700907913473296633658314089125943481499634495451519182060947453744422631730680774616018144429557047248454485154924865095966224803850175223480640738759712268392629779624604555774674813898970540744882971154880285479240756223337694025503774385180771109738872031746955909353514572736562123242658024167434555597281951733604767246783798326124076879931069419982070373636007034041484655366162186410918137270852520927281003714587964724204119644100544412050306553911370531512880068346943976856183077489689770724540218340136566156922560960706566689313346126686630810243405140250765550990619762067858985668349309820347170303915677728591381909155226471861616739475676377779483492028229956475033176550495739808094215340812652324905895240313404574031719947647901299724594437764010791304825353628674957110095460415898730227722031125585395902285656433604208069379202372229282330280545879030082688530699630017657660407637705923402632723935323441768549977968740558352615222034629290505602562277350861838542283892004701413049188993571552943520290907281524894768756751722593287846223274194033537062421599861556513495530514356020219430819701200501859377795621934917583972261772061454346810743196615948649598990092997834249748287690138550811132123119523995978195825138094039576964240877664309232039417930611488061847083382807363470423391330041154424601840521378249899644459110303832599928493134003474419762979297808900895339086203123917529451195237091480920093616069618958203195479388726448368455525373302718862994564262711288535539287731059924393852812350955808983393484293920318777813047179676970878865144432748891616775112947946374450549252397106029835052470146103545128426334553263529284940000408329863351491440791439175391969769116482630196727859494378931100766796404303564329359538694773047427140003728884887484955972225184535901762664118454822531546172847178044735583675195833420804062550794590238390848131289079018260390834166055466096699529189426588015727309965796926002894784880675666573129273732013671754289147338277359845920858254283964618582747457568538111353103623597459854216996449461655691232139084899806651341540735398537116013433124884906210877903340092364549898961738624441353458198207830182136770348036389205267134869616748998864469272986108081832819348730497086424343646119301988303931508368674565631137857825179202373014473622652116997904421063152984707573552983945558024076693838991667012148214525644913913083239212891876456642216749276870986491509311046458948937133774840237698447666833977211152110326553951309207285029477117341363594844482623254998732856408395284046247700991073889536557374000099552204246505154311994692527792996076116578901826875123033165810723662710406826871561454871814649257100190463610162830220563691760481868173885720268700760360379441854246186002609474483285824138075636100447912731884980950158347107304052913234544956578885232606531382193976145656156802496663313678144142657968224248168193660601359801458939808667353360241375942983953595521921363957513578286391599624254303289674499112728858248481777925683573403007274905434988168929420681793140884421104125059062788512857251546176612780142364167018738368356638943558252056181671307017491886344979491685855101648249540692512034062887006575053405836428844502110275440036111724074982629827026045756796367127220472430111559838198438231278563548174023609232231232394674272997603457776796276025155497918799089278523779989360907652654216411473587357448541843334584193142576020093924968168329340602992097945515261146505741644868557212333794794429058884458164881642899236216995900150194192033046056674823293900932250900970533240235973446456857673793364871597344795185312526342902700039387147172169398661259258506604339394264193562279505398726947633332608292954144178096773096884895505850998464038326475271541221917653591408410397250002118205368262831295568362328429729023333646616694232452092901531004646257357672135362250860916080399334598669012065764934252944688568003702797566904674952100747812157924482769685226167430655073759424170052465541796161446405651398008138274967677592071344183756741497910479266992501959360852912777103124052759479983397282560090091327985101043204227233573611380196361574642912153444956792057472895028468721753805449531161823655300300845269946953776864716892372847987228927485759895828722383136683579704132810047035871862261400769023225493864220294994977633063087855221181405282645753761703841682373909532758403167214388134853281927677865101074122045663876518023685089128226147998466895607846621578845326349133380026881847791429973744100336695615105417883383917396685749570282195775927708412364634623291348477580097311277081908607652477955968207138892827055853050223297676989878682010299877612709080823760104014849146398985305576265341458351050698646142292900657244293321226612896734674268605787892325337218114074305737028421164685229337345936053758077598982707747511252726569394037401510433758088670165674470655640290746765013664245973246683392858206818847683342400552005332789530019708841377159469167654421409160923770679374787625323899365472098951647749652681249232355924381832449786801765460961783529823904111473451181570523611885712651639778679426203957459987651667181723883658681314288295824593961783078126455418899053051885813621299308716803491458548072475844937541863158949688441378270814633995788116324296757300363240579942371303719202251899127998949969820673532877768037776663592886433826491040733970817870895207557547497783592843977043485127576751536474156512623251302008506854372322694481853238349918022772514969919509523558970933083787443269974679831173511509496978789192588929385941510620712005162840536449806930186042155379422743725056609463775921246824889964151244262575606828545555363630746135999429863748638390802743964894696650302669143395669626588513688304554358171119676703481245976721697252681083088857339840188262701092538541717291564073751081952700762350040578834064580413458874658627477793973601617606079942229828491409827096232149165238166683036414377403379614974841846321678487847319372293697557617996396490742981287194735366140658623812608721131594903490326895528412736781045260641297516133914044299707120909602632927927930294403780331817877736667783775257092235460399806951939608230459733446075234697250107136147559419072899704812158050516344607288915542760933395162461946229689384810205303028607627741709499774021844273003408807484060928042117731437840560417991908626269342392522042765740829115963903919730367073820277583511151961599050640199565425550226492177936786123369139101184800723537584982471446448938168958148514737386557265801289443985670424705225218491709855867537944455560327021109689809644502856194273563893933232483828926675273264283396483633797019634434536896062720033923650660929903175350570488329355939293825265644925473799170841180869826631534254325818835206406555424509203589982963578711844850588628338091441706612161288854221739135315771083374998065802622376783203001106945824237473795259117694375651365360531687867237983807185187992205253362375861766491772110121277955953433261217547531227705065799641572894862398127330293509144792221824215588810638611547164621645554977908820444808430184571302319582903570188543397246518756649145138056604965769648126222941107991709572088975084185420664418433911642147259063999579834108859859327976443794348131533828015447970145938146634612629556618845804052911469698286034026290107270064241809629507170078946359994020754991909647161988119439394550871772913344188766698181128777072339370564752346890990594318010695824835575579990781517814092346780355788332969150905908565352886822959871768628368446523846459013328030604868585683377395430069564654166570204463641037408503716448706665541065566282766337630732659073926664401554512338779261087670581928447718157062880357470473138816975978737657943942753392593481998104998275343488171989000612743135056877175381936014426483348500124967914605437002129812329899967398646050210125502622149132617217339250879229132249977269605460026897651653646518795012468559919840551661651487727015955425792234601940179619468588698687532308538628576449174133286903619629949226431529221895886408403891891756488461962336677282348719532174982122739242979279779858176924007831609812743759571726161031499787379885310761231837030170850286093807439240884328740680623249820187725513125036322878890705723370788093159055241604298311954266199102335496956350942895176078817198421064489652675246449891598907314611095486715869918751381208637225002667188273719806822828824819461546659730857445585293340887920145845017702520759591777677732689775680299640500286924643608747095805599635263310085502298605633041396353254994149531350283353884635676918433524036710818590764685027310638843720089543972845746051368730212236095110153434750692026407957644487204316202775162119142934659525554797951317261156603913911374145721876378758806205865350868732306553869287825510799307203805716098731503215270205607499950951522655616750737801956257090348444592800143909670060098569686709677223928264223289369088645821448298323681033401049592621884748686442802230527543348170274562163760827016484606949905217929025428936027645866758095808148383027964531405956379936488088262632358819129794093961886049392379786526573214821900270286910933565550452677294968467347259364156427332746759639085960524986914152139737804725023455265433770419864513169923245192911704496472701051954286320927481904282537621656128900486943607626279935648164490104300521489517905729439862560696424471402689700767208475691404309447092180343342232256713597578718905983552548193044610993466927336739979807829466728337099346726897595205597008249269089540684803923202955533068146069374902747286377117909297336561013604423614604403611967753203614393510745737127395768572532121431557487314745363767854795362081754010213447699182916887914125450891021143852527700323629788124731942219877555334621282188729007575518029904474248737318722304817745083644353419039584980731152372789048665326239968783522088825927613990398472102169553681036453272377517865681884354482201045882741028899882517418367133343059023900870627910873135676831127876248902181728648487820260918236049593980296938687893572075754874008052396472091060011021506697309411814850544349088918522313542698947626206461324552557839825554643144299840840441801805350763014146202341219159530456626645601970626114458770922231285675774270118927709476031214426082671917900567972397492662749509187679852773123906539151448522515787734651367887369730188055407105671706500423559464413758408538284667709052643005811687401090050107743295671849872678653076309754842195930825637688235791998680215531087013471038579619298404654747898013029150528562081234020156133708039339340138607814517248218130870194746719018832321531369741438001304524989119284380661642045637815088949641468608877147048886596938820579727516432550354649083726627528039733534000958800884337552870388943436449856216203598295697325805150799494249362540685023661796410768006974143514388320471563404452202415675810212370312331815095723643424417822486635724455893993164247964215723508226848833018327412302187450076612844988741634051566996594746433023517226692933192429757386542280979886557104367053521388462289088834323567033500099249206782327099519295855303581540467496098213640926860818984074184677774630378184153576063976759081442382380692296594261047816554412871384181366775583651641065302674998561323735360164780301123050645697273970876361469570430432858678504139487729723660435467101697444616772626980467700036100864763251555584104247452390989415253487678670686318543460270681481096192703265243733533855316554988567578110264493626052856229784593665700111245239102345473901042471124446847493595625223897110743924556710470073597674284570816894615249514092254367068586377591721800181041272753801837368328878274976610881986022361923444622789174889282449209326807534862474195224806008704703239321349291520065350466592192984861284347986159811290048608379819516597906892297334801403647585109179291927930317394840892831164992795763694491589558221876707808261284068750240786679634879603108371749970844593439682453553338438054414311598745169901124879965169378796131275018937648327715913762452644187509014478311398736304734470180204773801994722547607754919827354735847927704509223777720857682264939842391586939030215009855661702926658993539328070719448399379949925051684266178751632480413545813369577677140897611516781981048936067127368054773942530713878572541616231837272146137587021439821710286163246139136870073588781902069440502099832356746405550541929117677107644338240017525240557598733845863775723980959876281437530300933112240838708666406567155416502889440519509671320818798276409956858706617527795118032106324577068788981033364231524094085633471906557203843597375678449467760218048230423735778045387182259932154846869206303851568590417030304062584477401750682639725406292163499690048863845785813259858797345890339303853118897942325593623898414826475532625712390517903972778783044763261338056236461471766552990878502300204585311554085227288947543037298874118337729229914078318776563096744524009342994642839229867370678534108142495115087499058026015239685180371697348524962467750982560969256477137307716711187133213228924916705779656648044751904487810237561677287155220519641756633098490186796441155558848782128432690177455502242922201435566904706868299427004923659380835090670415186429777389245274622223512414520904281571868339898479124261216641522574329442033538071312505331429683234773990343283935448297027887454044727036237669998176033202902394913473657851059835815834640510897833527806859819308091782153258556293333032990567200447817752760557391823775532839173021562144949113512789542404037900603896572331922651590382028896560359529619759239952304748705658393897813849504872450193387844418381872374590714485294504330801092576569558695196290917026584541918628804725635774815825169460288908874888888110941108839191581721400119772871401008270851153319332606004840998091860746542011070437306910702344968815455926225592726513346997290948708232692635080435411867633891515269511841186974601387764710847406543035588811409819939483624291346586999465135821907155222557284753307523262502831936503188556404560947540893455280355408612142644502852545088924064055536267578189029389310376852542992380634895943375264187041988986405027397320886977770481277383024010994779437942049292801600224171547671808330145073640368130645390891016379830128790728706602119465648046189443567117302491753235583528208618407688397725354674827620452026187044598499171823477516111206251351803299252493099533956664788517413848067728307349401395352056557148995129872915502641642277839364516989515091398616411345946342882358951589655123264709645326501346303447174601473471785706812189450873832700106268555975346770096371067858636467670783240408317670734471135032020218821192942423462697821042697840967436898092970570476278561290375310161161464771414895753070748128794343243414489230860502997654435587435369595483000324397686274676205590336285123356853575420707444897637207238250980642174320664992503478918189520087413651782272977191402866623206669272112248431213957843787608933282594550998658764152271025716447312140299889723471019139195426623923893086215181199146673211012703069594058227067732391117859065918563569062138374270768059318192921290179729062756784969771506841607507479378410727741121843568244427908951279164542422295990990336693348255415194651935045264335771365422855386899401974725266570068571279866682844555009398246603961984171677534319323165981498429442720813737078936388738541056279542937079283204165528077515157600660060136824134290754214478583111257175179360889546231904736449111941343735597264587260765016692945070828163047739571747312111817585737418502030344464735215464753881178008371784323856215487113461389387452584331142504664732736133587159915253089409457067300846982757604560185889401513348808353582216700611042234973847750401134032206073590676901294063603072388913899020898955246501685573931064989859688560160465853757133131642195070692617030451946503124119881386364299584437919690749669237748575861577449827945711238423214062453465397629568852840617243539775136951934298018387210136045716372203294952822041731705811580850428440379880137020226144211154986487369163920995824819630642946141948758300264148248308657573374568902667939172805670489994221013829620665227316452313495655481690082174637419617954336087734998119826537823478355772174086221890005398909683801295824892783102809524641387647579455589005471267884574218586956000316134724855697867322390328493119545616762419475252718265082594464096679328424639379241041621756052171350942030417418302768997032050951669603428889697582959944730521402255286344406411964402033391515404080270261828563247265460910722185268107425620071857045264093115802228472068377461701766953040542662539774116723849462786605891635359354568711729620511685971930183443200641443388389291197374824483306080070664403138150853558187591047270652083920617537992150472912175155404399635704586101237262950417580084061543200629904352886598862290224273249791874978600106951130202059338358858451267617683972106298773926084220335502202156251366200708263292080514574497310864905468523219571642528285318921639101253065414810774427288869553754853420256607273987152022182809321162858252957366083354005167883475774210886267796797800191394891837349651860124609406595313367378707677259245006919683608088281505593143931876582743956795519812443850577642422033056427944018636727284478999526317988724341473129540873965460369371948216901405480178964206002495697347430418010730402561263204012336922333752769715964246959967943847553497634037114326198228645969246528969989755310431424751181853663436229510044088449727970790697820500999459699704191193031117029261247913362170347678541200450804703765605589695591457243831188851449349846784838906239519610746246402026886750168971070354805738762314661210674291485352527820173088616263439915389212601290599387544206937554517815921264545844233238974071264149752733264630280658809002884341973747342461387223792800829899232933259279852629973766328913947248772693951612882697325208656903741655266713577494576574353078377003963730522051502359610679005095650165435764582519741858377297424903793300209520683072468345069810662024719531826220441454594539352413377461723044977757340624971939531935700737884098658955998107900877129990106219334451850701042584433568323630672842321773238387482581914552241091015179223927019276849283594588819081499877715616891114666223071519759802287975353530147091874461458547420653455421189804899403551838917481446904430351424316757800488998822570467730283236752377876376230951880065712365321138735308571313871768386009005922908314960535576354413080023037536765648137165365332825950402478697176518495784960239458256940867990309454600532445432652607696029115460324656793654602042547744132460032342800033174969344712187057977771267867144144789198690182820608647518544763443485784109468747571048202042202350793600540069636120066335547076976185949839128050776314994328277524603947302923395230438268338157835238620174496320499716496325796735821078029849057965607012218422637292870186807339746693746319003692583733423897174102031633608696230791497285044243971072315205732476050986596617718914833967586543382704525666338873186942769347396186579992027692671681170516357721846204763083246725212310171948684794621394509957174665085526426203635060123566746400813184653056879986129932642752792808975056171080195082652180574116444975253435936037503709709621775242398041035592082588895166519190489189385021023048760283440802853157523627773710759675758466147411757689911141408376137896130096304009462203851259427989000419037269317542946854114099392707857803236894924146839394680522522479928745228360622314422202972921413707063880727567700492535038659780572071310823782574789742147148120576740987746503371943893953284757510564601503750239238750409097826151022263079900746730640709341832951616604076183744213097410161327845196305721611489152798019485022542156541190727092395249289839717216143478285436215854664012781648298106623593534044697272426505090427398214119881348290733134469156898849696403293567271780582848060401604379957444307482122467445150722658568953408177520460870953898511100118712147390588531176075973939413501336851293214199844036783196560393595744021488580638969928975278497464408407754997222387188494831444832728647628471547359531376037870571676463627376254654779381741235796173737658698325912516589578522839744025338268297145360777235846810822699355809213141230915253652802357276711959618454343184707512674114189380474753193482341055532967705479971710997567289648449934986982777664579073693845902482785537821452367504801623136851000616083167948390825484871626619954348130567032494808368770328043788498076244536107367277148080112628429804113569939064468080228380247335453285830412780763811414502924186320614830602088536266690994510409853899505062491553006708184389615340521846686890616889810141058981201926110239285505007450161021143446927602255056901357961660910589412306907869673134328463192698670221181611978348160452959201883930544915970322556749807295894218153070444074946368035775013432424799536571984292718073057067570258779210096499188619256336895231327647451451272795463263464274277117250559720417809900267808910964841275619163744177459887040498954058945672726440599956358982025045275781861349895120371957863128145803393297870250541385094936242905263904744739209688945361260212894168004285122652635068302051360410531869067005653701914961543557085325909009384772116715761077895142824339950645157572834132968540108302662760726593859145032019842537967317680526192474794775595962005648413745328087772142588357492187267330295546280255214139918394312257758540992343112426967842493342380034135663731488008774745505719608170339563619438047159765033357618121691316680622049421261991557402533756849695623005056634671115445855362308052701892986090601242238336467374893960413055869987082479225688710805965240397648505570752516360259788811379858777152126770201543660883459896671911105572313537932362614317230405037258729387619359182275608833179418576390786129460256422488867894477105964068434562131978409564332217810714397765076593139521088811186341690629471474021423695448327008483324148516744008758380298361371667526019180849731336208770391683930173383331626833874718137578830512057135521593209092298419554266845758511003648381080872754026789904707388558742672413664853172344061412788732610137844608574242738456875369398851295038791875378133296727121482998316569749421320809949825345843535569791261300587285104427630459913164769676169799297997748496228675064037430014881496413305137755161027587475330664424784715102936808638076109675489169894992660332022355884911695601473108682923703556185162826987880709920328367855047587569096146868190634517188905422354429659663948988233668898362947948372707482123538447588693825343164759664843745377972215347735815990517094756884313575853034829415028919207867331007604935325640393292462954711443987004586907210991720357482803217852009238039426428502250440712830202446817573687851167800962572023671366474934528786847172228409041660709388538286348134219301139065241683762118995616763340968242729849327496891721963398997298037753712566515453168380327128203894443426385507085852815907857941875564248670965807828216044402273554443232760163823061344700673574622814026791483420819110729913004717491369049012450610995803209924065527614478337063312958192519885795956721618666717703754005933064845297685345372194687932094340241851211643242926009000543636106725547914508640811887386375317762525704500912915992932050328427424092225287816644456563975365630569041661264167297337691847727515604703511233468054751390573842975641849153742631562637766895273547048791299870976289594731349136634662370943503787361985083337938428676795529667653272696629770710185473847277299044843202180282006893378325118634234485000093252725402869827951168778178147848496182969592166495567585419032171252199716881817738682696799301242829321878339999679667389335401233894137524437229599365041604981571018514849383226384359799808536923248673617349688731368454101280309364757555241902140863770440631959096310691492865390577214852926586413359720479341319877558557727697517774348550594836475041685263665135693786345438140251199582292161562546565813879984752088666712753028390591067552820606930675684813633065046394156128211122958306001785591568194337554844467279322211292918293699818154615932738415916107488391570016247995793666782647270369698876519056215179064892329076349882928043784955318681188737819051866546274045399754464106951436446953808774768175615631624114026498168646883904783892669606620514914960969671087957129245584629023481694020316395873262218383239898431774170180257204604219876965130108470383043926924512336223425036345471348203066847824128054456682968279314008027942716308051251490799884701887747134679547338206739218438590694860127886135861102637619320968015915861653185300504191127209981741280259155474144060994243388799983368226396045893967471256219846297843365437053425815263357498562749409590382893488701812877238778905655241116990454989375101516147140306643155974923624194080739846729161516923256300380744388935614175509076602544265879068267404512563041145147806899342535742419959354495113761891960705769455986194120366593343649947326141697792767252077869210532757498230945811324431511492945010051911099375831443829001296039474604084739704197089593149615103960459835562433938294628088750567191621417604931097766266667304163636348457826282511568924618435161616383789524375746203566389873277612815994576667306910091258102056735741596005835321801559887500967688222179045806220896038791907851366679834782413278312922534630080462538692388215443498822675320012992667944331184086668494389249245144061775953691416005873593679254599655624970538963318560213345530272328614496767249581871408681364160791307098961762758148752244513339580616837802618963575329287662258518237223613088667542140709854769517642363569062033350799965514791990110180466780461497803585049672302113483578887724970398444556812055045095725978203536222444831678239495615134060815738034327897954755367280303260933442587121288639237010603716524979540069872690188985438738188302828444288224859565330967505255538752230542052463311020638589540386862832071511150185971897839867566447862539547289864512123525703014629101184999308207819609813599887379730064595486618704694609501024235164765991217127497847849853027646427381342900501829682206475167445700868825797191295586438942512446932141053432244331099160863214537907905023816658630043958557115413726726675028213236954219406212684594179225063786535110992902986953934316883285171888285237543886878290681623371604763482943414557782545577177323818592172004204989482255785550563394847287417813884113296453589521162233746701013916223073513903580344288255925647720667193219561735826972081209164762980522714388501161791099808410561299875461494933428044092081903563496916220534760888755985808777882477379133894890759331104000282405666173286236937299273276354722806208973758415441620654403090104509829032571454417322113555313973588062970620735567501314672841588583083445840408974275809460097430951751522228192020757131744135202056602084188338406257231241045785605448638121312264944059126259889952106912271518850162996954233617673686464793428376507924712935841673349907108912142010974275020671156446903944549227479591144723665002222923768236344047145413703025176950297921289580858644088804800131391060171712236652919543313436808267463507141520945672487861682070997502411463356672759349942648121154418563651182541247590096377925648925276862078849160753080032116134470192599000209082397896318811652858028695488588115677835196246907909035566597642899553144290271381640481397589206286794473137810523653764151580151913716151862236011140238428931407945731794952000365334486910445086095090166375753052150128500585794185770442247820028076400444295876550784104101852607751880996005270259984878005877430351456053240363931560391745336062976065887401931483079550434669719414443175941215553368193383498389348453097965035007499717047760387380231624109088374324546229443102411679522966987045765374783011930879351643844008516489450221665579705554333619573368038377346909845915659510747325949531118492160490557463968735779033127989266896932195429668843847097107233727531591117851008500306642402367166069828769340795587271045794890345095124014397475367755092330875367273368048254977841392164718206505039921409654600908447082428615296151517102042210404183520090615562926486891411396542772662687146623766478590876080707699782368374561241601962847998385262820629600166009365613306753524221879728527126970966193845436688422105210261416477483174023182973779245071298375102940698625849634203589562612632133125901454758083103470974485122901931024522435298065371015694443046296569534526571065453372936334909103172430525995934628736724377976557034744186965011527582144344940539605759584387430793877079481831260995310136748323831454957265275783524920101102955227150098554690892466266981973351853249388975097705672951311846948964936658193864589478518323720267932417032804150597397739831505655711015841662769726055076236985040168322046553135122929975986634488187549493388686052944247364515414646857338999575238461535470572815815425561378704679962229899596495797789790566265968191815952338482196075003943617853132860402540705875294030735038869484990967763980344908038144452958208291943662424164177465167195203357933922923254649481241035833069963293435890664843414348099024497097880367723665708772271174167528760547937905978185977737212961727386720234374881986060462761635690121196112808314288169841293281011006271180628003723253058480029199690659250396996394210161145865173866957649250886923565288233210065723439906872468926088090379929167322396605533709883684826826944929229243136519920232701274614632481893904567443451043451580284079336707090431833683946569019921227490290014588391161924019706516864898768020085443999498214839963159075243399325247266136293340302180246928817765670251989189322545486149699374220787013466860761216466535449857199184503136791884972421929796086911327146774432937416878002325653714902867834902443597942026400060395662476944985710207719937130238231436440886747547964663953401247266310748291845741559507473459981325698508524887429637025266998997521430933547458283556739474215619550798841043390335267773463080317841936727906050487301880110587524624215519444307927302797761931927006112383172932392130952890609003514823413956433373530185137120910834329982474168673267746003425791280955463342140760807414213044672388891052474508718718447473335403631214232733840022885068892087313532958479071441239007228000604004424462183723177529792198102703340345276808215271194013344131036655146479115925321735064535878962510072439311400889690815175471479599168069220791298603718544458926043118960217966170128982968794828001251449054868354495938966507131676762696826566013578825985411566338127320302546674599475273384904014857946526302188578218298547659765652627473602937634765193339729842455583450869655448542857983097180951903969933273186411293333962856108837129120199988454731391882708673218473104154033417822148541006248087878397813921563665989239256740540819064593403218014008710257954746299297608434894395841099689436288694881183147565707933118166753193797743090851865900634184286568296233579291888747179233131766445096653810617171525907999221160987286697078450165180592704542633312289985214575704462472045586423890957508724640069906027485633572174757772953312804290369733541332365261015065541922264700689591714729596497638779555672263449833565416159586856984572242489735573181121921350720391176173423905979194258674057052761847964154563435002097215787784630272477591265964656621731113533595505099925165763612193951624930645814697034617372412301177878321257721935088886122364894581596107898478059244560236037027862184186174192583711716212970139659538176830067591980024701741004331287564995891306537952711092821712256598620273915610032350703858073481707705010205772291416319014227955181465995523835886354738836845709560800072343747276973578711567982342350771152144621922190525013657022433806462869902739836666286280017679370987025102659693191944708117412599944716279696273876398145303315131422977486567430472777405244281293668372046875717530179826785861846656314097834155446998697935244044716923680105388352867119576430442190156093604504940115477379218435017567796422555734000850565427337230503467711121485381347431916281306332010016354428628866018053415691424692150371212623284419452276184766854509410149668813224879357671573129253657352679103857624032032714271763953706601900796649421494505816322972069227677820521408985113098724572620388072792117839343008168660406589215803390225291198620669769392580377554640712287959294952014401912142939404114490835718755173759428685153541824090974906256505510075285651464008022164808429098800471258978789286953899556548165994783593636926281673799384504871545124772278600090366357298450324002255842659451766985976677330109002189470628468407275807689302542356713483560178608312685578109722435688845462758572526314097477976774645165159545619542797245855816389624858084995582384392109868237548474807779576112360429203356230587584732264835695396596129465430672073003228810188388722151847203013405976298251064300053057717038014181130545086289430343051618613858000338099123794082534179838550548551267758680662612756189952721806097376271043318482322293549173349105288342070429453814385735491402272848607204155079881874537333210507346161853124278215468742223692791903050297096056654576584288864190262851424737820703180453606986764097116566111514553549285150560815826437537891964127338483913168540165356286666961574657862604790010310115304534875751405152311760850301055328361653988784880221503936936392437858037474117413734025062656300060546049643700097958308706783473667407740029081983360495154663581034021583665570505486340419781040957687245019704707976544565315081888400562429416435933931810295452532983320588535556888915040856094482226110035105129737145627736983387490467998020685443358332709460145854802222859403700227206055154196289206408536002982339700237770596766528403114547736207912859005343684788116358303721233547369888277251056477999773000131178249167716263282322857828390612687387903167108781352639214546479082093838232515740794542025677108239551816317863778012786107759764886921306704010419144322285128235615546361981958976812239964168165430155386026287097980926245763722232424091106863723548533914477732339183557439303694485748730639029634723245393961040289736516816463431021616377285076447696235096283790284520934961853008166687570187069536415521109668459119540524171088305588642988686833176441437456662952476964405783250353688130563884550588665334144615975162414772384830473157116360202703810008307296131223226623441732258402587111966450918961765244359935309652229507371416957621903985415432948138539093660938384821413862965573849535929806906731243176698974909721983436026522543506725440766240178095853326001935348935878227361990994869112522713359854067319486551362745384892782467694735709136767211049113558050790644626460933156401196451080846940584805373315002242213366835800940185180351426353402535948502142137772076391863022973039402502495028474696141848980596689436071827553263873296655309518507152538508333449188063949410355282377116420341416393769234471380095617936668125671099020770345890072294293016511624939524377676632250955560568422474554280565969900945784388140558665883733116243167289753661993518792029205040176154130663503816808553743023938752053160011653687375188993416081116228595612655142205897363941769082045092561447669751951042700700802531477028258719655293822856703459487785433948876624439988543130773014191157455191847036596045564969560663137089358483412157695832307063329130861320815023261022910575850092741581967022221525203611769446419535440097908245257586151108376874430734274353912697723383803220490357468900647274937302464805856659172553573675693016861657304876640129930143212729748482607129946576542933371553752088612091696486913880021111636306015864164508942323079430639312831408257159959359238547481556563466416304754842373763858838304660925485733887080429625407374499804868585797376538398844539448726161537722080094332988670874524981242113318668536682772758889669208719815160031730046542425142692389260048442025242757435027483330051013673271129156040387335387521247861940414152000109930197390927998580227343430348019246994678868649546798236937365605611155188957093980666829342628111259239431344385375254817298946965343861952965932166071119315856282000333333480689444418076527585257618320848974421314094385420759909903965966316747137647736453741173112757774623735729263916690233104747963005032434243237927378338102670822941371035540890154534362531316890351179009707491444568595723369184438162712692163349706799079893291690775771279001701315999712325380007213669247783608242671605484234768688911978768997690820904149099842147121606836528680016550212995869753946790823532764593234932830260528677659348902392215880414221561104340633509684068427191949344450700114975702766794132598402942248071490240888750145581459951989311137047863177124358359248621725776888421771933569517333607262374691047649597950431000703853325713206351073957169246049297151660527887141999803315416621236969325737045644861244627047857430192711682710599708030710957759446531230596217553397879839792277072942347914007509827357800395192113418854627162839104493734440771512017974253307538134712547399522851514057683014715477359490845945027070286672477109096485177029334327673444289101395775257396588252629371452263860574350229352741699797489465668090614677873062057729143084669000273415006873023393383970378736662954623742108215618453053760149786404993276020829120722414958946183726347714270461802989651660184884171581130154830903541177544671376477061723797125821469077639148555109536605998168090672142370602849385578405294851818610789631355896421507293447467258903480929406006954330907200846094338907914051236482788343275616958288581424695106420788758377321367736078849091612273048706892697788125348771548218582333021083088034516541220955285242498251706196537963177025342024470198482365879546109007862162260727094562100463952753613295430235020983673155978850682167676173845096294274325259348080051534065715618561017584778736567468568226305735658890750488087214223529356590464985605883984725844297534480979020448073902807785434592036401477990797472978471824790776865139608658427870800900309091308746454009517939047335348323972173468960403572063673813862668753487213529505360457766341891222385566764202752449889998636041887461820449970963460413567903449464126448906460929296408207197945229707299336263171266093098428113226724226779968914002127492476445752116227852317079157250354636681703695359698530760273110494755831255327770100944020061048064862847652388938469123972966853384259703159429139785873565050499747521694189852599446319231022177927594991392038409798810401821326820357659544235559354549596443736145105009651539360658503415049931537313910100352866345415442085927707960521339379521368033704259650893579562294661127498162830312619712834407660956541252290824053280172784518627397223315982997870458127829655299390148727466010110936140117451001841824991526145700654811958540212427462482318469864830586142256483700168445407897714637345744040990300482317625713769637674776877434370842886777531737176331148607455985171845636345195914645524121454139718939780211069758828379481672714578854362207828477075382264825641541433426611907638123614406800776159892420595747937052547315619369497273101324302074118441460638228767411789452869332450526125919882466529230727709790108909982196214287087766769172562004358359477726388659136703272443365305182782009077292769362905579427242523552212498672020578633238839706813924907046110683498125178326262960609935747029258234227805653024432387061643673621319591810430005228356145394622331571744993942269623337844047813779711873919830797193332616509319289772181528609603804588088229697639559035798374982411664430334285659597617303134171620766444565466816905348086360630840712814327882200787254584110242021115843462047514507735934921462113084745508364473916394991027185770741746466144860475123913742135415654298597123460449866094566922894889166850394899266765010426124033482295585480678344888134875909830845658397992402534116794904947712503643089319329461094502827172644984862428044308780538939126165864005333874966107007789709367813228966966652033479518097785093739686640080482508664054934308653649482570536832247574453662889217061761900039900848927299760707596676127452208262911967881818297363895509676480774906502495607767744185835590257075325520956407525325449458032467067122787484089588616895065717469341238157271818240128591993469692399844778330436694421052634028194536859608591948521107265499616703765765520588184694364909583731471830134140238042697753862669087634248645914019801621761827446836094899747206745949996686325202357528816350857587351537592454281369480434979805389456771494772748118254567952124512906077942879156568688068620450713134482174989533238487697283353417762463099632802990864461779694649090353012289764430847731800359925753158129023068025686875904791123813810790101511550368005014606569445166074727060011126834914876528487872876785649399829475943931241970657362895455300041016254838397788563718232655580144421092274431981199143586868635139928382604944702839351565589758976851235103702291584602881780504644780698909427130949458344106704169579209442607760916627920318851431521443398121195609136101696520764293072930863172711239580489405685932804638389063618626726408166388708959102713079892884915147031869729556985095923058135641843071535844298902204297750210785915553906316415637899256466375034828117309653932996279480233169994879643214317665632598345638604479350993719150486165534794900334738787352089828562263749449171400862225232312504718442119088586037744965270832546701134273444854951728300066268809630153381246592010007380885702062018568173385805573103473800574856947000690751896439921441355554708591544003146603004221191722239358396536583360002181132426270131122087606290577724941050751172199793316861234130411419487680005482785077536530341822030747743041486499481329771698518680831982854192043335845681776832757074957710199889649211798763707550664786482636631117993383606014821994092573095534929239583050787700256625470562358697997538382866682870005221078348894523631209143959045722805130630317398307668864779066318693476337447110934771521188650120157743325060895999637284490544502097978040165759219281864028298487626100521093272889544192716029382473138610360515163281934182856331628693906451608010608307925634369912358755747585549798074878580074699569275410746615961673594040313165925418759848391040359403343833721577218775390111890990584384422847632141106817013861190266805046094057349911907592020391325898631784006646862453013662548263206538353829597338835372194241788831950280703693831881953913280498506415269569398292321564114706338272866305050838989008006585713512688369313283587960377520393197865082728406915470230381923412364530740956974824978648237545533089913902921512114094910129053636124643954696622098708759553985013957855331079796737093630121586347933934387894040467541026386096534073422619719721615286817363550499587304032221954388463834693195446527773225148332990026698472427488564974583204944013305518676130487394144980678310307782800423421813870051780859025408630221286911633692470381364378591068206959332885014450484867757566795759003347611462203876886494026371401448095423424266318882286330241452006434743081171192014480710518828929974530556849436632014836382623556062380379633255047213975697990602685450517827070858015221641879863389169395677739065097560105647885746316065528672490643446579978856570992455679048388496795564892502141818186011957248678689728534655697695435114220379573713873397422156058900059045199023496182545758171137315182652715447706926512862494208813781069713029119916186484127239933384978479100117140671661343849934259497087837278479113829419285867770027227890972533513988936991453709544565820101238424464704990550631546231475518760466409392365487046836917846868070669662319326550867975707598472588750418429702552730661109535114042217438132629490229415585552703885464007441826628264844210783737249638134184977348788485842330501319073738626807982479765307483147540581105308954404967694394566310675835009079717477509220521518411487867995518970952053349875259603566924513343301113477635983388798242009335139357875317579831170323060143098538510531635297977706482232644706964270740198467038977364344595670414326105553572346868376530679124605215472374008128702805933101351133981168413251431749135544447810086985827229932952964396746483332962320004629390588602630047466483522192230634526524111936679173194918685758659846158691788113268083220873126644066603622882327288315504371856168289684890590576530064931024132140157811929631534692540334506037249668890546227677745854238642830591896802285660383766224847632632178208055295521198126444966174267499769998902968147065315276592912983747997646028488811171277385810376012386235063858881761879019629578896410533378941857155357528249941683612021768096454887660952845962265538892955536682062032724816415612473225449379145757242426734961525951427033817584666725668307977806250313148287279859939463478320214555823458246152645481537146375851570606160375309066489621470947403001247650721075584901091825835058176517599340190769781867943776288133787090487772654693810473993412039230948928219289983297345463158096908640687050720910413310286475111709548348120905225256113923251605149071594387219879986383488737310789440333265474227872072089182979555180984887245793572762259938660379018318790329188964532840420971451778985192642845839988553255527010036323226540395634175208282246670913839508494685108526305623614427306056614827131639125355457758895800160604940165248294512063579794594644167864294031465637637281751956310773659678191055726331866851134190264121701819535672537012836619232666979498969152532237415343876577867934549045243222536360335931041494380846836873368457743833015594523281732590866966738063016476755405991020225687744021822527650996385592529358589996683512216230340295141463877463252962902049586009649042339485005175979783284036910895360240949782442224326169991441777191462078882283763941111928230991275191323026368783755529789449826431852517357503419370851617328818761757591815674607182503691458110186663515879153113127613320647150204766653409992116197352544051503537867024493142934691219884567087997135752664436698006065957606198718916157766224970637559511483329623479177126078590986691286228203867324069344611600073411823255441707787422485073494378334592792698657439353067865951514284518189164597106776270396632342740178939587422357051864726176631570322514312896264986100038277163723179896113913276784805001712993402081246999584583438999105291257533812412637901855455806054588538896417012287848410172634076468714848738794956135211083473679239207631492294618796698434158283288035607578231295631059339635471370832517985936037810998275588397915958987253337707590622011262814935045779383907962169710462075436850452356483490268844922226594126035858084016525164659479395586737251260654569684359229763073279498657397130509424463780419833579163376275037427241251516112643380466998976150427043530977662311804231734697581008023437657728541101472312437431854335389885576646044338818161872271809117665697545914619391766474122546701948797949507307682107803209643717562853828791591596028189445672029020177637420426131639283248493357669978718946873418539733983030919610879767925221678734594930900506015025132228386866642111910056793868704956888360524728171824517904259287790992898793286062425838780598951868729628144926705397813252849889372727828338989625344138505870387930076654845797788675732308125235123097257051509643307162040219828371398544086871726726397129386452254052633416584036533451438337932740589700192888828415500782106510331111411348813444658023208564593003926996561326892827700544050496488701141148520084939440511663964423076334876288775943613388234019310174967593676394237594302873181781938650612788606874146123086430299293159388581695945305970309681592694554765943956472377600553117957748152729053512577129353312797981735030775057970663870802274739219230769094839667456080319147099883513384600923970209243125302979586515162850601142039806276314848455317090565726475246258556082938944635878879371670345780551789926865062549109905020937322535706117158664806959641310536140274134041207469715555787270630042753848723632668202165444918304137327479142888102505733774147425824557573423638160456739021134268783025069618544583963905676994890330335681472130458408646935369578310326764191423896281582889588899668978523573155317677324022396697857888634012155377775889688601786709444852986627287099803355156409751001906311070490898908915438549505616133284933034870987975754783890095948495224547326794263029648826344386375408965816349387832540865145461487284964281862631800567524752732753223846946310279787326014802072144129629854121874054000423444865163730856985488782659402435443034973612931600011844410375835068217463954429685702289879793509183106245415308536086073726731223193155957550360547430095841839568082937086747392085442159969212466609305925014018311910984823411547847753865682793162796657526527050226573939914931980335405096688342180678964495304382409085196649083554764473444816418676350450137063216228206887159735556500239623057017965903934854442487042256794832398541941316777325407618097637307375290191999093923520822445837458018316574416725963612103712081923074040083216594134896402653154988841015393409252725737756793285322349771166804073906539764921718799013262883326261357422913632959553968731133609572307885303606901740276967362602345247849678348105063978569300788983246220281194650498546120117150043495239944429365384264539934121813471507868714047212701878561750651969229142666590142736348551098845635339153484789392328180919100722428654181426754156492976548708775299043879595725491742623881570546725863549474833440261096834953883939535944962856346188147903972748924790533459599821127942387305464363844356960386722700466456396830593420602509977872722709265611326227974825634787820504655920065456287511198060061234543043062767820461727154199267832644347612443160407719520323855672607303780750678011842422622818785750933049687468321701504320454631346846236498683934315780056410022761203918623308846816209564548559448943476903982220604935760309580738544798760633211266168031565510946245646101690189190503570186887628891660835514957823288247094239593353474063713998573495881560816304973169740662236615375103662524129824086169229719880850607391472743200241401343125256410387148050117845836000509617898220894727635350381909839564399208157594620042223584753462573642663224482517630956406764538464686490089797807212704717257383607048469805904616043595027372950731479169262519372414359338131183127954518689352562901441319457917227967558548401712806006937192003850134032184324860806389556162017711002826513828079872293754997147782928695542805188493230008584398609778002596675702459810262109558540057520906910559224625399731497953404614499270851220227415107162908613733766443995568612152366217541373095640157073921904443375256538348884661639519795511189481553729856021302727386055388371417756133034593452291313818328414597759659516745348432753528616925676672966897907663913431912837197141071119552594939150270198836238723666959391260550652954615833824650076970442079190245654602781648175845486224957509961702676075500389662189535535594407537324947471323992105124657170108404161605028204989097087526469667006629305547606313581428230824605763392580200478540127859417577884023112260198225691968277944287370631657412002977386698177348531144075787179306183952475989378640156707934270734486745560902208608721525301990908268671196049508684823014078151996296750962102562923691526661750386187572228973000875511812169878011898382018845114191337362626022187956047090471252786443590673283821008978702839607258536695128719847173747366449106076556257386446877301973389584422101661261492359690269316118145304812692439772986721351152976373192372856803925807532375281545603375344232474425145546239517346236069733355883149438383255911130010022245929147635946176196646250764757975954594612365319718399702940931128295478912843253891024301012988459885575552268512786468697946760426683895407411886008871935698373317437866989452607936924643655084670792173834154031285047646658334005494407178863496160720773824584448265799742931213406076517822307618038774920258761206693622197795310957343096729318479647640926425782234923883713639586427895466125047753030246304313169296337360385142526639911846797865408297693766977397266429670684943366279899056890799314105846499466137762493096251095011357941962301512638346738476231720197955759398937830236049122266373507351183487056847504604709065986347955939559927811027542126483902390966323740630557887883007459533212575831061194606531515594087712543006503501835229142449888667251052017317835920666119106041467547566395767843189540856985169917886853013403121541231611541044184899125101300106887309133676011594950174635970722730684545144852695153717525594824548169715845305901998738506120817065442568736139995285490465176848833909517076916528730382664777985558768475604020912751828566354872445508699183323196725079562732440137115839365285335758864707159714231972714224099632498459293659291939585787283871979617788467163329152879985172911029474045122655251603747364080149605225960551136806638583044725400504350967684925329184649277464955664811397994647211302742297851206167677821349242818116997863845860184155130274594452128946820879979029683681753369052647170771962759597420534205248108742822093567214418288888099350895139354468364144248453666786909251340205128855302355202767538069591278570239286890623547378338447031755748162319276943959016929956712824393003487502807382003280502750912569249773500718212851355908841438318236639661871740029716203071398948063474469053657604279092881245880103891856075442415480883667720889595770887784307956455054129975440863640171020464032419391459774292092496626434535706698545753880431589111951932797818898109942111299340508882515058336624675390645232992685152838808448380294949247937216153359320621204780725423919382254355434444754093454926148831184206072352821998908936099871099897994891045523776962858340627818780031426206919909897379225093600073051307841183041427226489435107034459461838855269089957601301512403271106973743844131826409339468283853065768926576328038776744003756098231157167237221235643121869788170285543557173725763250082279900771535453484226369885905747310296596949978689037708006930827788839346487063048095099037514988735932004147960840085217069879008908864000232576071009507371746012578243660542780257369067822883811680153608764185590964262700421585592835100801296024438890610236551978367209360765358737827727488718710295560433574243278589964730914961358049841863409786629534681958694990287072555247297499347306216861497439634050850097752969055269828284361189434529705391065603806243227411737501459744199701373829409979957524149171260223602068867272155376319098373629657428840700841000731806072046286276652461924754840641018374769164105201337013414166774504386346217487433478635024749271327736411411459199746892043727704322434127084577117444463063621803702904249012070489346538047849936904580451393021839393231616335660061632861852789965751859308954025204218164903560339376833665521622658392770375449963625719532755361326428506066812009770195182133748986362694050717192400084212278102151094933729704172125117823039317793884672367261903626388260087564936316126524494676476001584249870308149136798447871207115827707077142484121137013789573922925497419823807621526958905962434875716622423283407710026854493645740121193839596114388482538980588429654676535015863042326699089192494992603618792225586985779978065653671609857394755567250061917315775317538162985665368586717393624276353062661219460687690054499969054665258199643376078325657722253349095020158850529439331523748454924537943463844462571538757789704910337399415419152978084552430486756807145834473796323459433966386579006498736782942820915356081866170513730111118295479683853857140746704427058935936052954482422107500010941495945702492118040808040474993984014678536344856225606120560647922401438664371008442643927598616552244349822917656178530831209207439523741561905232372627245891465139484213638905677613371820945099146928510021324562598590425562080609462326901801678060224168493070941290297843909767469668823162142514907087981131804787356852933487431099913998359486510889820250612440315182276630683757847769168929111779135132410009770687474279870547844441777062642113765502563313995317619396403018117101891729648309412676820073867737766507193820221483710333456495495284183734963192812315927609298410992277575789502287706244268749635400684839077002855126723532893855075595988567639572869557075929381971116582929720774009882728214172684340384705894565576021156041626809146684798948504435386695506578858546792411004215160969584841528008475182709518286686280340080808194299892544985455368407584008495630777835496516089925383264707288922996956755073997115063415694509922650526555790949894028002181411564581992849938945337045742142167454108869275890971797857728721712350945441805302992971982644835868918166750875869308392846333319866348127601548672020298035770770493810708668420846082140877172311077101839724594681255763111914244551889212200726182302423258044890734538149984471707942168049653535053513389660841568875901083431661522792484687680022831313110884268969261417902891562514772528488797032563786989049430809790400239009186820136055542664835486575981854203341120827653734888606396282278112662572611992924718427913567966967763725197511850930287387570881642496650823150037333413583943467209246633360705741781666465681973781332560659108543726049935165186139143654166103354113622557536459601450434788442465068728053546879448249486053743886932155231802440220768899053238307379856632563642963964708269468339615776749532384008138431912433259198520078258718500399305199694712117369059715680552231843372237456903273764323836812065244871892603318672072726485309832766911874915509763271232492329072924751034906987902369314017742469369018291664475657550343174266231783159359083386551967853077453747469146720524308369274974252583961502691664991197812276984536194954523159465565839403742109206776425142481363970770018065500584449496643909602106455717119523189961387880097852111192311041672919256877319269666567831072649634356434929710578459397575688148524866950500396800175043818607929643812033391206542862767102585169481809862588145644868246175323515022837381729160472855031227030361534285430014341151452905106158644280511807347838025805660765679991162191930344149487979101247317898086017979937413308892925639840759484384621412361910732139688601761445960092107397124237282577460591071151976476002067753502502306235289435780030566688036960444097727433776514121054218738525127709516856545783528291854888381176591150038006547435093912922991740319163933951407298153942401093135637155604041332971910643514925805529576915783231868406035290304427857930782713293621755496028652084028536500464111099403677966356831658035831121467055271926920832424132766028959869409685027585270786545686115315900195076268549138258050354011441012058256989379562153901283365466807991363334595138617606983390814993866859982721671784399705013587833486173098097429972763618657442169984878604320811261223855492537374166465547455215897999768648757741097155065196786592915445136647761897568264820117928941680337079015364552284215597619228370162148996429388937076032420124753486095883608781649798626103231529619101754036553538668973641674856151908066543111440532027828289248631384579409687929560667855952884963973163820431841672431180778022598012075063521783136124630254806139802308233524808871383767273131677875119686243126585985249157659950453642531902102612930498683357183732585624566041440030756067522630740368616656190832029657386682980575882732057492059039422768012737786485232242116576923555919434679660730487881955020664751734928403178618737963468467376696836324098087560975878336709676299768208161664978413293839920088696748648494629433825861254073346808542399618395788988870941201844162447379261917292248481367824613747042972984121675033440958068488302579586994989015182031742630870288397870392829025738944606873938217279467819278080745616034148898540206028041159538017735016694589240457650065363353278446274454926517154848790856427196446193886229424705340300982172520478255998136103721269116926609128835028681975109159254536188449608085561200397766555798539496224340087776321374524765795405045080753554941651352853771634462822642173104485818631702441154331158744293150023709868930231014987414047711572774330641714544555960492591497136877778522457990114697923729970204311707775897062742439972555085372126702882370487297141579584402593482330180508579388811967998821778359145906691784587137612352038192147004492532457929010225676749506445250596968561584280532760020809647473294303137232494707506100745764780038718483384805232425947132911971209716221127743317010697455017000571040036789172321839023449599085501018038126418598282016882127237807548809880355967036831344311665063239648864792627293303657079982658803813913163853055583601478658830838922594504486930154254769260351100526733287629718273214044504713319845108895682045932126588597827675316210312790979762579575475166871020708242308006815354954168739477395697432415477376836723965890714830798303290458111519150995002154763109078410178731443885514382184735166294222409310500250805872862016167888676218147114191317970461295070797308416926307608651879611279737721954529236574628353248555594427633430111761866058686218762461450132553556037263589384455691349164152489083043576323510118246010531831221099419497495760526253244761782657143785000503524291439055598669911936840884709019602555090316281997711248936558552864812402308703033414666881469552380470745302792887105739933681383573315962935180309034079109406522171751919091118808543180958048993265583304345516405849487872445697978978192643097024353274523463004295269388666699541674686337037207475556040150987352785785415726225222987352692635570490722947115742309222854372166690047932913469605739432405003572474942846945197480793768951029916177526193644654930992522036972240540407349488791997890402646776402393318252924068449542862802009036784291394811267531051121539983546040800835143216884506676242275494206965360445563607027034110538868304879756956403081069761837082905508073721599621269457464419451600372761485316807501006732638745284750483495975085549558175968809516493965544825318250273066095189677702829786556253670864774835672431099196141815608848215236754697395645896075696540566902332271739740598665393618277173928195848917478095061969939175493321850302178272100999953708580533269853505075632573143719045458422470793616149820752958746937926770204195200730477486553982567976127493466321498101316143257782941756640221089458055544462267574477473357014255849958699332506895603924807947232219415244271176446337081785685325202637095818706178954251082009123955303066363555992407859186657598030981931067709208043648986764633469000488702957042549968940803036204478514158252546022768141553115412783383382110368615465294161583731464752250722110876863387623802078511061615896879793325842006208082771776229106720830367051186406964038952119549428540793250233182711849366238333739833794126068477850648939131696983631202910667440614444423382550982913274110404304770765560624265027367906075732380860371748090643629105596030349863075829502524327628740560912281588080881405470666787100350663213575602067825959011229350440678646441971766206098148783898143492612142393696055271312088818171118942796291561982753597476167326794314520589385578331150848952502321688392871775967830628206854628583438105614894475109729088946890084349063469078145382588378323171712831545540768221834485717779610643020811214232277467623468530877466454128678099104786569760655229400064908951970324903229912472954963595648892075953666395049659251883908762546137849517409933545556624639335821535427052941460855930891294762814561451609970005171934157101671353581108101930949624500117472233030534594416383606487938241529048246683737187576296570887299982208608886360453798755542281751656420420621950565831205411199497780867211931607130839224565769281102081546809912966645620863545001522765526241561442303294974908098776610415376356494369969016707443657103807901709469452614161411210391470527680398789534676235846210785592227020542697705524771567057269638266045815379357819622678200642196941609223008309492294345101831939886218706559717576663063494506776317635319940850895267105845220399349086897761091602383597192707748596275431545044405515979657456127818605172939730258504794909477219818025539497110739467516169599568781123012355965648475862534769954533595921959167466832997523143872291681091893410002242846090323848391142192537591084236018714160069458225468988543453847832801256173771965872399780243282963436474145139302798781472535086416101753935086301771542949097122746281281629147989766318178235233152644890277796511566380555637613256870615132042314205319619254593237653387276943641683034496832379949942999823129671895610827487718436334452283331843125348067372363780708876723712046241428989976200913616570938267109044331437848129586391176298959757123967647584595636226674286566375674438626766234276163329288642285846530884749535422968195887280633772677167957082034202594703807280445429581886359857092367037250347935153496617016362880052155938445635785823431719931079581485398589069483055575876276589459960377621795717241790951497285932499884782087473175970047608587843017757467732236954819816792852553370810086132953906554339493082204635694813271378273292939167036345663448352408948261759333796943221964879242821824890875261104549800854669962565363477557458765441594984698875437183766975870355610211219317892421831122978591237627083300071613546818826756448186511965756228747786777309384749600049446363821447942324626594014856485627213561109308709212832450673291812089606315774855486624198917562626831909773436796680342948847415554343248869541344290951326840535019655397483067122857567409985946921952448161575654839173997497177088603536384691193962956961834400588638634658722677863696361213174850445281124116858123368640896274662269287492582040324944952155277196156142954936547392416517305241738190889757686937590577977259744984048666224712144065234729382781905432789797451045214648205651675712479824161096455731233813300936346313060430044634610353267106575869144929533746471108253018195650136736486669518604244883853764734181863032907510075499969547098573562806515547100778958700540050416750382454240513705065070183040750932172792250787902242346627466041472656677929709745187587695165457639719090323468037101481946159894865035433099587533085131296747512132025236323789477894960209011561298520479251779871548846771631166979513659927395604806652117468199033597908292102968243715278426281374346209958670636400985306162814625469326143785213713736587626233209352733496054049636394471932132935466386036347446202664641778641928053924387146032446736986633491517847593725362171012536202797143535371459221291019017587332407303165326335654850595192057641587650096711828837995917425942883022667002036478537377747966935233325259651314349461575085794329653081604003631557229693052920786925042509558350978768916832832438584345733822522208712638670126643225005694729132375149895320514792639102103401347118614288121082811013623684411188363358951904158621573317129866008708527709261175055687252290617380569429657568063646570180764582584408288541361157311920577077104057855744701855445729996064473576226823355640496498676410812609321733244203131448196925308081380120577788917504423078155937269533331663346521813765520638454080048893197190177091532557796838313394500471038480360126989520650468343348276460672893941718951650163402904072658394521477003719989136738346476670700219088189703726584467508802902697628212794648667422656261842433584771417568487236453245162523031661217689055353721345110177600706819215586982367112680664426696963433422906283217158454245200511718297620462718813171464272996424557634182209127263416387738359827689900613066240326617103822906134192385197588609798159227241159669906883927872559271602856056451166255527715516139161986889050270371911208056348404776472835525702627674644378323974768475018350888634817969817079412858368364776792643560593059256413030821155912697024123530221734265576039278397495274373182912130612487617177852321417964598632907347813359720699002198039189976010658729358937866852528038329787223875124915958584453113326005393037616986240199662941201357802275278192806745138367271094517422200364943400784482598591694804745251999945060377898293786423637682651470039914927290833855156855375113391872488274828236162244118290257613371525956259135636733671794116181375508507914673038757550379680822269211680559650963811205410779203979598920813025279898633539092990616578887848542821215078240821244124579481110795409354044195785444921394727902528580757889632406459706972190430496083754772860740551434475394902502905482831229487682204421170010916599543959643874582408654256309758423683896238174216281917968354264721230976993368328450554085746965138990532601875002578511392693496241190339306450851153590435341104316702495392888729296058291545002481994783482474276905952867212112240195582438698114075857475421813905787998302617853357104349114392199788850431789733238273060479628381268534995401814049680070520362168111781610741212022808198192935743872872853103507180443693501958619816179104333786427167694715889055788312772043421173509320505849933813419237871148047648649583850943198427318456745252598180726018966767363641198297440050735121477183872485123481260674027305218673378760835520944272118327300264088369206267336342883993148651585602157827463074390860305008197101765446533653676745122181359227752235582149267403061316665520994037904718288989492468155879615327468969054931823952325296666818965602070676649638570629458266938668416533258012117931334552005926393063693546027300127545088271953214998300503090426486480102103646900555916796946605725856011951759098582694191457170016993768511730604606548921257930119083576218184582040933150611873066597844674882156459478043472476636947774261014333435191425590000499532968264125766725342496902801934324803640548526525163593043244119716045631989782829070679652780653038768668938997177831013191688214852863779642327736987658150444459114075475584369214374846505689786626774461955230438648702684328876031734743005466994866614928852900843721772986737234623171880815655675970281919313113917859558350000538850808000027407465186845748151459126000855686533886654179059344993909717736092402814771988715019330899473644423222927023823117182376682635498813805775204774858582001426858448543321564620158600465073997815249715387481656567998349225741432951843040554855712743346880026034645279213183020458816566910021664358191933764853526152861444093687752572979083423977580238892066730695018786227288002128884815968049782299929369747311118479682069247528362908006627562023701796799247979210324502437860714760808118201640205632875314509919335360880546548248191572017712442827465082123831597411134133767187412258252322212586460606472568138145849321191763133701059187506038803271295341814438439084202959263897370325405603961167270571018666098306012050688972486676181983190404068004237421090963422457056078096428310845102193975740551791280542777689692240380985660519397687403850331619967442106078627069038139207811359142727864514690985794556828848057873236222711258228028121627982208541122138201872329941014845222435206479235713177222859421622498724891341224761333966660025539029289332353974420300608312896289030619389190933844549259429285339231790083924901041815471288148600991732064030556082792751121642734595452341803133368631806767537703561119756365330903869741394440776661859753697390387839753387372783438581888296078669942364609145096436720635244987748486444919128748481941914642536679556987669451200137598225551281870841218301447195343037132107597569801610584316086033318083276517213565686822344912206467699270743083149185523918646206030614454824764339191410917784388322746892011224914054917577563727492299749719064229722048354348221975390085417732053228703827159092426295072314187805261599860010525834626030368762963415096249096844733262999519108899828689971341717022988027854942290566696508500946378718457329380981275112196685007422056612339626541830545916983186702772640077504741166047376403679303468234159426228771850516742286141569920277601956489294120535195453318107056837622849363551673928526904224005083407419553598453508093278584572284455838294900158586946018733854756361449718466012602439691350501732847084906020375321373534655112513903484217128305471683579914641750091991561323816293870638421507500705521516942143217771997914760879322187355518959151161575760864859542844199744494088152520477262180269570035160752950726112262832886444760233782498911427560539379963186628067651893288785873146766845864229788780727988345096635522806410787537881528640840711265808154545076342564238685393097238947324126325604433941937659150069908260954201698459224021634905889913919373984309624019796581112701357792824554378811180050620033938450667278006331226429629062501216756744776002587167429372907119009786104875988453008920341744048532570800441685521533720197945962307991376355549415869570917188499371041040403879724999103951117224628345484961369163072130184273335015300693618672697615219622778607228036691825724955679459144734124503749014271761790396049783491314270427176705812034693411121240810451137667122610459360531779568290322559651995244311241129206533105586007707665602459643871244638647479595652596513626657808415519429318634034306517590292969572122959535633015982480565193615218120164171090956707075896240573909685854225391377224412272516646685818808430384749268472637151738971280720381349746835434311235417470266921137922726481206505767513188895149053546100547556036523138338927778150359233028682759515490774925305719668645461652240221942695881048314476078179834756246523698024358086236755667350790837503396582241455961992434690886319846272666101248026532248275987762037945949888504942437894617853590952317768693990351513496240854094553446367864655766492585628853389864516401228690774027215082399721843080165211457019626414719369883600454966501643633883288733671781083523437311019172246994676648076595255253672059423960352441282111880313409292839092958378156448312013481402690944427305946352381851453863253501759268014297782758205036628348160461190003050260231378067956485619588897579243534204458478640217672460781534306997396391527932864566893966361567222596071042690737126819504534723159321268521919295104589036304513040922897518552453252986524770339310224781644773802401717944914457947349986111006692733336442635585116477631598729562276360312182447497078912069647144787990088054391636025935138461030408464838594329893706193241619109162620112998395531298091717844984696288935331871992366601630895281747261527317620528304577865726069571997582841205111172155734821619867244433471607177957482346845339253638575808250234359635070397677609541202612913926558081717024700498465029188672531949259033203312609026793222275055041078907119113089711968437591257003999249724872387214912537799810794402769187257618557711852894249365856464439940803026185499196473146542143068329748437087528826476593251952042504795827859443633944313391031325812452526708537198898170729435171418176075104263628760212164993015059578621235400162129474291188090592483743656559160862478917007178552970341285801697888882484696309797872142449279865108050208146960832958772106212075323117895787213068097630765320258450802707113325258705505393338157118712857780205382750474740583897887187045258877850793535409097075690565499678178586170512387633491486912222079246861248784470147510967519566832858428706649462065978185369383680381701586987929188526894968025103372157817844086020163516072255783305954472614523819353101936072676298626203113898353129196417010046863457065813647935584798168377217721918798980690955283384326531210807824187808793821988248118679321954283575865808476714158869010096558061116245248371861527611915690984337042251228146032231994861189734801279268995732289903588591050344633990489412358652944948297724924849816459116720354515517047127429306988104117714143808377284840023035324858388324805336393740753191978079447321252036818113785195242892864203301501582468459094476556576103246313039027648210638897623014563565721747180426845556501784735577243625593415034822235772428331576932746740336279273395953701318064752602128753849163825114407259312785718677798894191792233380044216238527200647718717738750984458068669620089191490190414592432796831510248336984499010856020262316411787627129111861799932795019034017844080426063751813270277580997675370433289003000900306659850267736204905790766334877494835004870914219340643660782634692631742236458879460984405935768766314464712143565837990556906652681858446307780903472601908060387175243070638892233258616016179330819506862362626093898475590119708823806433559094856497264560830099371809826481873374298934471420682845952256416746001444404339706824825927741161929605354107059596416770805020722948362409902247313924151294944274937383431455875543463380470157290245856973869428809220625756914541557662609539775297125094159690649729006337319250938526621764270462030044501010305965280896377334161353889524414909688820074779584550077013052952333135429913767310808874197624678517742686681807596451013993235554953323035691970199992250626808052727644392081251883886328854031687958165611293972983544947270052600315225605161029401822944485508564336418471967191906378866261687913469146862719181508102815951407286248242106818176033461468283455876060458925155317808478410247261475468369714671818440506158961740902826424756445951227070182362504574483151882611637709636200720099273150351316529939287216975581336145817904239309140065553089754236317319103082626427196584075469214726725472086744612576330044530856139998118082198188427880269463004254745894439839996835214442786068211296609647334100040849505102596814836694683459193248121571557985297808646733020783290873474896983456310332075323939720902227893299875439835479893034169885884263485710031006152538274209146447809070836771691607440907383167717979122949147046180203241402386855103603962634540523777122576371601337584606217864971016136877439674520502447534414277106557315340324630800709905599675790856560362317939840262244786833382650615384132273365481922189428916266875539523943922097509950707815159804336892161540238684056133118457006148982094582970313497203938235891975124902011946948168462582724922026694909962891870911238796119666538429562248322791792540454941815413718734125566955889285359330927133448913664493802635179196441635895594846459443013948806788069784553394182098688106111342586494589617300309245076093798793922051598003636033943089518623155705830389962919118090043626610307881026276505904885744673097719947884658803284909716425304318247265380186081097648883172204042459321234993750218453102717876495234335868178331401746205556618353902022585436744538503181561743175471574796765105950577399908405796775790491669227116516535666458238347917835251487995355459327212702516335735177018624100834316525892661614083011389985572494140712144493340838280659213606923210835836618198988624990379639351343822731710952978370151134682576538625599865314553994001811877016657768461577162608150103867114185741697626367061053300529961293212415361501438301227614464440496746729801763246647035955663505232442258336160390412258874088704535106923588513135523967054842309226694158636227167581320326622257697592425940308461799606556524739147180112806491242420635673999304785734099241039606590982023115847436025134148854982560776160358051010084988285461789086368194851054200503143878652125788981769816833913780992930837860791004686190366831084320959238164090024661253436903373312148560785455219699034343031808801896202294481018704835861444471858001892298307659584464653766497189205410998436237192681205261559952116176235464919499977054334029566473426939557005927246653966237668103432510756975376596914847016957852729788623477145625889863158417166175528450185380698427552469831161976151345036134083582771182296447580127339595801935429681603175315573585036495221241155471730479364459815947381073968173290674471015436676558385950984129528802907795126695191512757380718869026846499893471265466780334026696934021492201624887638824542856880298054191314479028267648283561154912105116219499517310901580013774381310150949210283589975238069238193586247757411356108355808929120452779399956968890402447116857082553505980642071329476790842058931891342063376511165258031238043757491103100105242002993823942363774636086337918793964434487664412222685245822307818522201749964025423581166083180987772431652359542456598878481621781402399447561225586311040033374097656332925186357488365226405854600844582026766081114489880708652662228905235490392531960259486412188644850166177166068840677734238314484365433791785824579097828312346051673250307183013801246397071926465103378839009071005995506998838946991175304722245746541918143489369692717659873651015998431294459756941351317298702670171440229723011721566379743227552026805803982506193920737240368573018990339116022055249794554334057296088448467748836196769273699471789756720518957362214161703006279366443220756767550395221368958962045895519866619932371353275092441936173232591094331998289063077266087617340180795321316723735227313647218676354980229679453622073683110648144315982974414451521944041561603788688317238121885869375000761156568532145289068078542278861977012226491307392851959038111793550796954915467602885227339760524777576282855699936561835134491971061381562241066719010445927944631185455656532800849096440682408299436582858082971605498273840734466389387751938519356760547067678610496528215335973986509225810988261858029215116027678450393032996006115544931550851825262166860649532297737187724356990167029799764940524433491860553823468443652669916453941295066566678780776931350976778091821700682672180333651375810449322891446132831891322144447106627928320238257305246009722278030779981868441432450093748580201195376990099219939724909435700578970979577281659925605015512661994242109474943868006102620380172028969468352186097159823968899001123529966878511042383137754495725022044481390379868700988902341793884562211052804815663492267222010340350866757831009233747492869793074914297236113331153898172011800962034538442310019607040949791219550193289367538872868061583485279466602981064489300522514419516183266757677416819576048334681849972411885093641835708680207067619079811366676519645601131399075437794574469342656726724514745677987749848228159073212991134348355204271685235426041264893324389488542003217856150748309813597811613519233195945817060053524321370773941702101950126793996971638788510631711177391913338669819023726864344671952515124446259738121292329650080308253363894879300891617995573975889351745620456586111749069115939853916170248444571175680341448414124996562954046458424267259944264134254197357235811616354268525544054509503650804905507726675778968517063492083932018485144875685193028267191986170819617737689163313636776147259875416518770807809939411214540839066786085129650435995037909664936379301826654435353138884042326560729443642802896717986433161368903054644363094316051736598248069801021350138245044739854455475536028924672675928253743376894887657632732404563744331158057219917863736462714773451931546796999006229396755908019686479312484183757655505544788947085288447943570048404201457839964234442338018758310130942696847560848419734667148528377949818745643097561719485643283648303622129003207171311201579518217428721916153544229683310273400033372248687528536304570610816424386593115629173741587425448783678872830264382566477159087889750727528407293358429156924816768103135533366216268880776404893118654678309504005818902923919774379333224066946984182788545098665302453648540828609311810975895562044809659171613851304415393347274954844232449435749359630729642647057605437611885026709917782461846637672089342954042908005605961755046051356291938321120636139426414610514974698312082824578473830448140586139260351295919940256978334002943494058367733856888413461520736479833289285781507589424529459211344250449291296034488922418399055320652762636351824738750987842479880725106056451837124076911496361655628589303428083959789069882232786330746145512616291646166421226258253392239935194111482107776327676686055458582888310270674763797899631116001417242218034083237992449214623627130953118194261286061537176990555192693883997346100691150692858308352627069905953702947489971028685563326697102868644777498568390454070057931053542345702896332975006915330762025566328786291518379444950827250189535376634881146152931689265623007145072376665005585378178389032317241423313392499552776596511909509399759170578408095097310349873488687216722377980343905739044906765268962707538413920661125655810388760803636632996746112825399013766813136555112370226604244466056506132478834334350134969491133720664141151972924447959252098882033773096343247866260088523597282806420227745358042983300041597055789279222378697034653766939471703109787791024204135414605568686538452774438828190989239306834680896007869070534244396361103982428317326338121729521638152772810843165478726689324747526993153323058932717559563882869771800750829230721114049173896584157968699563709348676042430516092228853686981856095994620971126129249355668575295844240625094402294416288063319050574262696502647016508440197014695901417464504786802647749957277506285488836476979633215193016846126714952734175457736152658086411955455010487720605381962357540086741930978097024024326773288780464522316022342645718568336785633878447036217691210410848077398171857680887826138809498587738934038065317554133573054185580717923174408273837934307536766963231173199931520414001601331746613362420782153501566464195231504217248520968387732717010394146645110947015469644619074937078822933420102673994340959446730017298998339760243030066249572749754859601461755284266457764115974289384799664836203929315295792943311445935208728585311108150905775957112927786501646151789013400374711968273005379938971389239409377681566985056958807025988688760023760159257467055162693648442041792262653501402027377670790691295691163129119594808619532654740726179269861437865025602559531832568133101562427212177155556501341046634314381062018212817919198095449290748407965502686959384849562804345721194274822517279193607255088543410872819599259189268438169419034615090224290827269081126122868921182422435281407339088182429757921616995470859914427911840603587997679860967129596010998737588261766433343227513880404212372109401352945588063132853652660871356391469543473924752578708586121406775662212739095532107560335601912316299168832439424804797660825627293132781211826322556043929590586898981201603654388291665497350324022381178408345946280213061764868850662254093913247665668727511742803585738034920311160993613623848251457887532698927183118547943235973326205497546498511882410752456485516756719606132573640264269262424592963100324373388534920156617953838844366233134510892887032470375622348024771113773463627817810666085809078187716656571367119057053169409269812623008188785051722396635927700656787017380872224237222984765770408140718525026532007772725589212678099888406751466735031181370305803231654391197886702464951514127791746900688749842857579522592634641934145375469817548115969302216795909697253901193126990303115105075197188148125808823385184512509498706037507702783089619327247763061241957535986005293328251295856904176081976963970657441788144715213303553066450116605173898454675056849330771734894290240364435236916443422351753288797887138970900477355975931301725517559546889541610679529824561207043795580088725070641421929189448466884884185964012389306031773915388665745486508721944055471139154733900722974851628371016241705979531853108931015080759926263512514954794060638409149522222709988029233773415755249562029785408517003988294732967104690582925965356406294565024411701132346870908795515928589393492701933536675839938166859322880785608941837229604095732762821054946194185254988669938088333763829093733866457879485176258814514191855608748035553699614875014988788201620089977593145454943509191324838772394777486907293244831236890938680747585387484110955234093215650054855093711922737284719772607020938723215541518763912461123414175044401448960080851090375398008928849624389906247871418827351255735468060318938528103849938866802861499595028315826273299475209224720504642195079738388996979595269370822985388425616923871085926708813100645224875018575161951891474031536662586394137682955300893111370438272386503418669149896444582227395810953789958518257512223155502331856619893908983684073045095433047210466649431644269420834407990274825757188965235970416647161182443907672364123933324971145234905436531429333117818405063080952903289989267022343560628209884797089982761887565437096898034202654179830298355192000533550672604704555283255754526451663631061464705255969053931865944773718007821054177558421245175864652049398036877114698047479684553417715019357945341091738137959448177487920394341831494175409510094917957386123157091385256604184944326179241412871313785152052622482826541651824436158053887640945061602185084518693538730062051863158116610182404179412768059641253131279257041172669871109366964032336477753443985798081019461634055851701465655916326783800831644216236090453014686999243883687065814279570224969682780535210230717152000022278835245440676705848690358841727597320178022211610588177161309309015974274971620190631513728414981340866929177552730057034535043937921930377777888194856728996689611833654818016593259464332235091560250671411142506199671869546754077789832626780555761617421611708414568174554414585771195399866472633981868179826804082347084123611177588158348013413986451012526389172304248759656262666027941445054223908345868463383244484654889567469620563173093451460340923726867230709560817302369477595799080530491337102054995057283798442326023467872111444289434914549272695450694267298320593440237227252788604852219340170893662409949378464681045761406904129684899417888408369946136074866195325868515287089603500671827029045371448311511349339412927665314612466182126940043765071191592102031381988305408701949801292947352662756727418976095402814942115047551967470706284760274418933470881201944663178311404309132134498693156485932561503445306454875268489707436191677305913238920915720575945654191992710446853639615281545025548214408564127585939123471839747180291341693592589281157319742870067311934942157589233104417726602195627340870724052480171667641133588070027312691848135484053904153979986078030109832554858834544849361056853942404136909851494986951955324770718647409229723344185897272833740501131639277131575285125651626205700875391825976683194145151553825039578363581569747700514349166552148701401340761035886261895634687636182969464841674311648340868289893129010051756249340700390264839793639829845744373189741191637128702211550772150562674748669399661549851487629889676241523205371050025826733231529230599468606258113153612461965645490377728135077840361733979849434492701177504004851983743079310633081557850025191538448491438089786894702628208374265712085714947744888280422278046091063569070800176479059862917746544775892769353931219153777080109331132605215559663896573543224974166491927724751236079176819804260561001201230136975840698288520304412044777865126838390028876621050492533596950075295840554766571759302688615925486100829981503489285547685352368365710959077822606578594524132446236581770080035753219101106562050937393028889965464407988763416823633437239739634900990664380614763444983325762814572100506261825729218808497755310286178522764061316985658765207833015002987286278594545629994241767576236118089012643521048321454260241340579519143798655448557866238129853883592677090583455108693336347486486440626597496602447723460591958244007739328179035618321851201068901000548698279064109504340102884254099345350702098563621454561359883778510111337423930534180452819029718099626212628993950657316941580751117986576508226407511582745553575687066092305824148490042431515411076229488925502675506557433487827331649907478565503903644177212904617548492002331272711471066135122851001693299297448117603760153111768566248732215561764825250144101073099808834301010038000502110577385083225870047802675271258032192471431504844875204893438267905295977988520320097862912534753741696706255268210797266489062277466024216619253058823270802479099794414893770133615962902446595656070246760839512568267432477744058497129026312447947801005168014156825845376606420609770272837295297365618917375257162321595370015738518607526464519487988818588952713548056733532055683956272337761460290594930138993086279343724064991447616887611878292211753645004394415285102298829317282777575433312638051384036260527812489047543314412486320205452600552463502690870257780572283651505773020124218040193968380562508833270013158271981395650377778517933019840033885666624349881421781188825023537287387448699468818617312451403318527404478641491679685481133858319658972739620172644937771896746017319441114544004760563299804540356488488621726193936091227439790534210441854858979466216533654048757771822554497816057311852582371392855287225276063269937129261059842266549335005109788165605771020969035866288371927752882178169077562058800432373516929635657579477876516420187511235920219395800843476613412132235843352942413435318130483453908380936676945012143894148310885551151260116659901808156258543684224126655168425879263954560013572872139342602364037982617030825101180186982762988551601737581285980817730901964084010183039044494041505284769750757056878747614244592463725546989716932283407205464303899683337177494540468024870014490720965146639368018993556644078426640278136956588766942846482107891294636643166360212018643988275447988124355743264645784589423596553432180185383764680385864664003782045896060876840461857315601004973186139722047395162787717707301949962820078046497212199961437511232152141514942483605254994858714207962105839129289675025678006510006548721926485287838171642578651571237365962925208684885324155183115841758085146494684840908541834414287124035458790681983501558801918178850136759779183412607385361308305630280049798223075472793076068600234879539881244946548891868865952249164507823558167317743353904059181730910085855840709700928127065268903741196406770798510784045918422450237126900939874705299719475738339856564536669096103826228149756250646880065478949157515022095341781031075354135470052193840165120177196815515989462528425808494473513237027284217635589878489342082281175671131014290814895086348430984847751275182238217381254931290790896663401149653040861017907205806379006030801391251906710380037550141566503841410548305021809888048229817531009769965365521259157273646181619929577525138372574652710264994984291240657121887045163566241016134600199968519770766930254241543566420963595639679587343898959294639376624826377681174213855383392557785399591889244794383671317677266678438081680044774219989862240270802391246455704377521116730475161020073965400431602442393407479374937936373767642592933318595331479511228226263328093464273569438472965087240115045465929273698756229146871854469255161564065949878342760294248643239581863060627311262587862300490098220009075845335105631896430345584152448490885859273799873786712767078732999770459536153476241327261894133321248165604011185984378436717277128166944773116027932769485314525748574325809854489831886034091149239688052886514960714929458335347937465674645490772478701257988098157288492614441446638621790240500648343076061985311534131324753258998338033501298500482602351707340324282116499991656159909559632631208746584187505815142891974016833982926142408481460357142146276335107612629879943915425042643260880734181122577846462677509554858767744888292643276574094463613788048762917324210845298274288921975614474063035530605038627235011582147575984458260347472035342332448937332897924216150648983041045842826609447887116926178451274419052571974559474836234824732285946003533347558886249612697082086674562115142412318156949215187127440002880196804730236038864275940180414222465717738731631043990339690842831194112931392062575094849550749765675366585597153318488533364597999371068589288474986828681958416848241069913940075470979256759328928975716616112740469027044747833244213272227087023631996192044195059554721277575839118888737973701914836384704933071156557734530025777008332005927844810838398719994770692569688961170135790373630075376975072013887491894668239198586304106827939326011329545070609711859888952222759562587778772602025724061120972834164055110724461360886706399415022961972077538808148247763471804623476625044864965306644874948426875690823674199542384118660430707281989787375057876017386297794291787543146171609537106453629627804847020643696256963342357247136715272735268670276161550891663537436146705041808501554225787180018725820873202312978655549127498090884508659128967132325132022221391860472913888027415788078869890350251900355780042838113557198129126856925534885218827419913770324447125725610494750556282902601855549175394228727527186613854238078934593597958838550682167609601826772486868434556055522934236826046118095757819340183504986292648897891225829642722638938810341983540881250876896084390540948308057852099002151480286535511064113741291060215346779861482791789449056761939960018609831221740622875563943122863416319962426041199865483253426562336774725225016447350573315361772713267638614478172875932891725964839875566490053902533761617734004691951490102546094904493797083241327998440222277111939611195952797232656527986339452394815311706268062611338907826447527941957909839402547912979839697852226432407996577548414906559180063743166258690926870382715475785222503118276007486653822682673377866326570469408949570525999205306749420575092326013881277439879718949282452769608710853167076013161062569591096597501289650277266942878300883662702648817214155958481346323669951548330089401126208450521151844927232048040013056488986386090787787541354031991401848860600426267814522352616611134566815122123508537201153749598157429782267140194073975514163900213000678651855141571068444525522182516434984570883196026691743468653956820520649203909108350862970784384565996039633862830189098637740865926327353786034555199489640761813681733033280130676397375218961492529741610192082882169074269528669266678445668606516856553813409625927128541883434878253894759335473109996404972528733659544021292880483898361358190920851312100066610693363161572795976079746831435148831347367126328301915443782066747260951678855309671780785070914722371765936888707621387506841048160324418406960510787643743303571077427068345282038680960911625944127781112318071530319864405812543056608304183562823562269590495201157860427671008748461078023991393898590812698519010846608323336826117910940446427159516300082778111607093067808063300065944021758080605665888405335418286143210566489298927655575690802314271651346816937122218112259043539554412330400441124322199282052975068626355175795510694542627247749154537867495030837426648980910139905177257542879930435122731396286098573171645764179481523388470194203532006411387441427148534334566503392966748864739501545615341077629621636439440388732491759678301599401336139015713660163378258284032891254197108428928234056260681118986442174623112362545004171577196985603527530946233055386644308257159579527992580924367694644245787524847416678995551240118972474060585651890447139987125687318155467037568521964539869222811683373001034946860388392161048625888842185818026850641775730919969640663201928257348891468464685797554939694880364311854297960233715978380051285047461093107096722667302378427105089688472344450593266573400862456741704462982784299386999549099434826721981529436218742427891771687657299582345036975984204774953501454254057788842760466231846659882031108169613013229428521995470754879379158274252548139903277830509959892204628787497032767111371589437137250375695935156138948863615892546146701904468040183314079807630395371825415581805789543521457780418139542949854548581497611165376992967759698307961231258043725908122994627995280122626704445506824859377088371717802351205199085034922301784977281171042496625153739137479414199227858314182882647297489891899354302805885536045170238806290062162471718160189544566555191181382817469001594342683598637264748076844953740550149019070160707055113442791150270045277581504426606795512409108070636212257737344553119613201377796029704168205095903667283588282924363675808424788117774585548426613667814289124561120469985582218251628776073007977171074953265953509832723351818232070627528146525616826748754427811292888251296603434561381502083914668530496272549973591448496962386355451796430017720489187609708838483862733450160440272149687397031112416817945612110876822190930908777882329442236135340034916311785715758454494092465653572805709047717967875053453800291711988473700389348263098280768146679179832176984923957838613207988342800677305555928271735298770329761214469138854683219601275474678568826333035289034114192147489309297990712713242457388068480189897397769361674533750048326066432338397602168623659079096140206454375158528804605438674027219423204088808511356457949669585935696965902001172685784920460746972131220850387765215817478824390347605258744695902102557157219037171843523911058835714647514869453382715123502842296275791451118235871874588323247631121284741284907135987523620161318151278273312427534652809700386215746844690199355027794177864396517226578608869017962688853160514557605480583932586573268523704617695799937434210073896521520769871186499146667318458390468999407177764537842942178685496407223003308203815015496006522298367508410913415106357277771193002105188127348531364222901184228690680565294264672887727263166539128513812758138823560182879036244205623829348802062876446535276623277596581423869664873952171592696009177684024159512547000574436278025478347847867531009344269222912919015489858706056582458984842631406184660492756769961224943936748010504073292406256694446487363499814154337618970829252440459923379617843714053099592403908255101121405823672325254705282063171793974021628957050523637224338589927282171440841438805174411238247669778395292628144563247382121408247799121815909851473259332534594959592937408963204727241300608929138656413648726948052638279110516549216661426694086269550304701373347020733219892722946286053353163028968687326143121228437161375230105444900589745930692078767643817341590001787684973723601003637530226008570367305296393588454208280896969820590069041039046222009910914518668734953859802919063940652430942060190795867663734334700977461035816128556511059880341884150894997339083212498312954009835982214834738381804749255706219170079419789851670329322620698515290607488087721800287814997375557659760492303909087808603215421128858690464246682606363555819597165109496646047857677780166650221835667052792169541828728143905664754555519917792610844476344254127858220872124208342480967465453653683136373392756747634913508624235162273302115893546690921302167577818144738301011128076450517025403671053452652093355369543740010319708228673410446675518525518612487105163818935754032209866261386331135379985409757170122831762064768555386044394249948281982343852933754232353764583249033449926436606136251108180257980757273584587676267898533942392293788129743814370517591654048830551230768640560236929395105060586290583486546374612453691166057072121878502216050043469759329207526819578278475584777540253178701635815059982379595051766696208554700379466670244870316808288013443654776193367028104859201859665787030836939204558036155931069594931449438535689133770659113342136047849235633760300691325695876116094953557734207632135237946365823816550804596531168583410715914431383448239382673699178897490765210941699459775569405283312485636472502400799756281767421817729801150893698447856743866877530742092113177733806605742613909957377799021532533616513501285687794999222399171014435457471723889548230700263680207137088858865545503777664992379817634903229077823075268971903749242020773260489009484883586102668686162832161815278269557421365619711822192784909044974389647116802395571627432179927474699001288770987523681284174173448649920928381081560590973673913725227071343135871774881337212715685646058317368457923495821796660544195086194156935914748317278232956841454219450995889525617673222651677841047566991760283823407889448562722395825906892875775244989591946420055432707923535916205769256349549512252964564203192151116004364018225986037079400680052256813226781955306842619141243751790387376815444989794087330053924678389916596673598682083349856476864364446207403493007483820554733223305137131509202422331826065845830797567637841073532498153076892706023739054074221986919058098109425435201872736298035524952109394969859762946122693548008559323739760772662302379696690880830949680472652870208139160106237312810290032169357757441295023418767247238218571075314057427194011885379617872319092661854390106889484438385559428106327987426501559121657051979873516768343015686251928903643814277063937513351692642817506023495467115766820612839827672845010661723347203399529307640621121828800660592803500660246125238722935141501771170163935306137526446508486197324907415409791749344069284752953692690383433879708380432433510251918884308759846043528917956657167691830019126758979096572540618246956840210292594088370846415786358280037182080046534543038906258432921214662423251822766276449987766006961366220123287506045011989910771452123954854936412354227389810241516686288727797718701625766413722403486072400050683458391356541048346573350476663195027511002764745356059745280740091168954160694999903330455032395750571598626941121160637976099932444125595258677984293821593772353099905322065647404425168248926787891347013002931998076044676714823422416780835681780614196734653583197193098423452939134739412056690878575298293417039548044578992183886986089094000127605742464825299763888461462437300313515846281141073990012345122341185787712122428648722146729765966915947450332883901981504757124674364089253931187898332326188322262417879997220278702176843708680432037204096784918890726531003173393506264814022410567325377523972669288840012582060502148295431110867210734853936914604513448692295220450532806014545062098436897673978947087926237398665495277898272291518597090171695062700113707936701223600623462950061242961706428190794520079199346274730760016136900211118212116165907483726883443665866779598386474210533045477756642251426006180538271511517252085994968849275002680367264068763902827247009031708515259806364042413302783984833000068270246667855586993446433932195405175016289188669911387796102381884101310705021725852449919164044847085229160595885654668365784093373350876004024660042912582217329804186696488394087828793947035487387703708391701388388011906410829003294896923842989641203859404527200912806397751581408008211819469649818378696584016891002405139365618267900894070203631539100190366666604163773414679436308970565764846830977020068031393795452645661821010867309419878594144339799534793321251934091088714432649784358417838339605867411107191703867081113348019113564091603146992435467027512621424465017728413295152080749972922568688418686326857064349403270846223966171175941556896610534081536110954392214505849266767378976925482588955746759250533598637720567615104885225785997083290905301392334304460849955071851858921454411618711263377571873583794966470601037929437327927766264156392223529205476343165086838640740390424005080203928024619424637834141926781116310436112193535891897952409713349401591117076409159573574076704543983198636487786883470434289476107050715168479060910568041656093762399776302333564449249769423014688974395393810860531072657265582438477104332145435424027442984407827836334524044481358997849870441724701376101734523921901658870527807880084918230368716886947252286220250248754952348714909233448884642899587192608800101773672418228427862491581915390436728529789344387971489258515355020980980594118341030497340838873305187066447747280413735217633418599943739859055383178173198835918586243155415318465707986914701451270491236037100463833539840382511965093611597965931083227918870882856054975910033426248033982555861455750118090255907970795666686097281971054761557184481866566155630411159832175948607810392356953725095401836309515161942882798787976569000254181457806414918467569383695997155902106810628904761544261945113621849970976717550315868435289119120064481592097554765928844734338127207152811050748377981028372803413835183094261230712182472980926567345147023755990897898007636132212447373640502960512472996044814101296005814035682435636811714169753726898323338843969216401768630497736667106275827365607738229241321044915537043303696606678356813043074919840946627553957514910175330565508006031532522041827729352480675706683987133432110604183955790459336560297286910614735816235111708060450622293069928883051638884268125860390781372449765229165581317524063976780320749671496169539984584944740281760037796845367779221236706395686800945651797311490554857089641084877733403380477535663891323884337292560334053954525485632918858887918434344125671194267956830316906024669141129248093617060108566059787575437238944809431827199669435816475888982332345853551476196301301830711376980872700487197891764060441778702700413181303597905579698229366559181084702341474678044519609763787006389870050046077545557719807391755273256392030283472287907925395412844426420694106051222332106206829859827226547123355839117697512512880255866609677235186763313923360386590405311123348527483470902036859039664902239610181263311398275364880883986439039159471548873297075551619412765202528352224884479232612130316864084320378541142451614677341847874195460980017869919109526092736602044353117865074433624471697995772602910497271171054385677158132536550634300288390437583076835855334334685619154057071564838103903100347941921005109370933821676224791852937729849567395499637458637415870657285682214117727874837384089529006805735329373809391376798263483995515848458163532482452940548075260488625751292477770262820797270088821614502612054350013066416963800019742792862207957673816451237012874323503903832520035979098648458016756702730704798657950169042504795351164741291002118079747492490814462348279365544673264382286453733636549666549148934212121100636927266276992901070619019937277761208468445548072936876687962957180672176961896716128146549574517614239771951910478614193747189577641407289939472096217751116071986188319748664914393565736068977551113208717180069493409079807561794111011774591909457001734356373039826780336372990750112230736959413579166055352256048412457074854912989568942806027309204539266384047567819577894572329968564330539198589365425519584575222936486818374440975576487138960849861654315961499764722017542030004545604528776515813463733357839337469835068208197481744026289383965483397242121743517235984914998250462428262507684984045135343261144611065945149512845012528585001100594667799210209098477417913820797708377108228053547208569289092807874500990061313877895458284524943294530518542344730407090096838773391907544827988154457009537066280842824846152948107543115723966739730753535177948102873454000543659541531993826483031271906195660535620287536778112822068115061020739135071081598246958048485551496766411119660343820518729910420814903132299386288162514979470990390424431391900477302846866588818012838125908330848356328525074551527411149205565807699565829653765791245186914473588451917342782930771808763314577865951255507281062666463570360455994918236287884160953766525132439510862702892839940355577691304590862600274963979215320344431905780412251885086371617900967941190336466783824807640012841527676632166955626325215805653778890039917359106066020996454544540940515775036999353556604366723086233157065863826091097935915537734894141592824211263931161112768810643158950701588010228068000701390792686344729588551204755744220750010831499530907355504580202400769425358442564305683521268308089360174550970354697901718468413358255373007275525905249977934456978707234193976866848759122287801385544846302577873622535821114177144864510245019883510216076396982911626469835713152060710469727786032139682528096471002528816942039433393156553098393552587917995381704217466731990118499369646364494112388611086154305817169957428105988679486697886444620238728839315441948666743798745089948586846435270456265795357505210726196417319101364925424836343408690825175702476627271095225449987152238272798972482974989849020808739032319360273219489049210610421966283573849208617613846010600573402412339890261776026258396712580729767490777984865974112807165404615373510963784749591860935969801386745298339851175203693979817784793011599002103653669205572371100855271405405942439775496834701742798654828985088826906741945796802659348157592303816871231511842877126151413734433577187902073038701810123729677118678924321965410109874580540559517302959829804993673313983749960218234715333491120055866138006479563013378113342722436856643239896802091652289362065724060412020412685255888346871469814624116700221214206389157230066566378672152815130723606755310336561238331133646920715232837276844271008045592646987830356745314072316583213970134468738172780320915843251116942634893759916719169747481587282932800710000956958579544894645335186274654783650524190813687023419020674531838443149922290664244374259649539228463938721764013080191529093943136625943015535295703539796198679200180350748157784514664414492758572515371615926148337734282109233121343907451690788536593921193044187236111566681143148969060440342648102291599498385380090433363475365342726555902628124013281691358589113417569649144849566191976708125863952184839996127018871717882531613595936220014981357835738967331718041090656330397442632215899842342173765880500046168978188639247312798024578556729247432525677172642420910509737816247822336929100453626518744963644726634594911415426604634908758353995076459432713500480611266675735681714066938718832386463882585075036949348079192777462627118041834015782007105701927206438012469689978035140598171511121561028292855688986612392395110528607178457737683077096924414182437218032599916285816290073855428832524794346335646457882749896508775513887106256286477828258920276186899574188551360543223163285174241569447599892647493336597274197446666919776040748441863197081337997610399754899431040459448591915535179656588816375484017046138482447281363051768868001918114217918630423731352733576708604789163266426410789571794709218525907653849298320129241830227829265163378319062231767994266100274427376987660725296140409785247053831819020232828943249709823586574963019526832586577024426519046284821024355652508714543956138764565977675164413323894794236067702596377282337019463175337772302494090543986668596492625787049494543250184184122510789027532367352387023271075316785593387310998745367002261012484456433697570551718294310584688806574822857655666004246438877273870814004198093883626947332449171198784150170671591398914050140212914726700443365141222876566517304301417553303126488720010605629595740583616327357554397420033539038402271767600388415844037776900662897323515926412083072080160404178566009459018451330855357647756261728738222955290150783942831523338934611519250925252510399150452566605793753113949886303593084777195678889878108919580963595417824479410897805508739509114089507186952587632481808035739848757283397101368547989974332581714353395730693063840800185528302548731013062300463872890065481208685960292196056762530343983956665536889418810582264330683080184123059984320953156785776211758904619144262135093361538735072236643915809565696170573977959281191771896426030364536409157425914908833396860800100416626791588062314402403202291703193320087632699445240258169684098015575279626598588884504703157981682147843726230347003273113876369157443603671702674779076312357858115566222393747239823303377351475554623489863811420984295006538254610858408783202181394950528057952059562297292293758906713052704626528495786446411936093604639824226667904490849888506072763918135560431160279028196462610115128799892375636039851183371588371753083978953080665096865596449565739846088066577904990540546290569868630223984393414944486399101919557781374800745276192086548331273203182642185720513091627963015753732758402912103990151089847463679917882979552198447976495342566712787876292458378688071162118879280434025478686855992184894657690255422854350766037699554953380806492529915875595025939361553899147765907574999946401039342853653977500830955811102009319444593063976586798463338176052898066598025840717167969418540085997927289864513593350315945277591600439868895228417093734684425376650148892422892660271313234959640520459141631035198727984499009132102256866221663260134323963787677346070733688487262429265072058723981647865607636581327298727524741439067412474429027707098420435000233354373015224170566520377024180845469358676548801483957532741310945417345062967125245770757320410393039650574575116729301287325529454227112621325158585277403955791178951670622767524136205631041759569396001683841250766794956404221206008643991277637073770389654541381264665245443187455931271813420372706389980625963434321881454513964372993739583275072311252695992084105398878244708749173981294827532387666488246846494168435447002974211373529410353599764639615698739195613658980339064241790032083737170618952264561406048158121826410319473424161812679462545634933813113325626687877405777371412666535931338601869688710067582256779144739229325479186926782357322254551320820179074905787620066629133791752291638118623083381667666998690645636229784004199165992289189199358582826689319408401960507256521160119353400572961899977695743256708163817420997069686612357107844303752334199007744591509175555189342262540000339374444394236481773901766395095251331807630810710454197369235441518771635669662595471162102056212731791732012848069459354991688016776784502122445308279726753294421418800278840593022009752110934273229125598647700068774762293975862041938318397771862696405940163275910673255275088345719255947542453152384572914201774388421017730701803949707922677099206776389288218430116180975685821027397924116179785355040307337387203006776889565479467456662093045614027371783342305040972008353856550759574529986464172781410539663650512395995379813285952806657376765971355080672626315093262059989247202589201858413477117114528876412617478165586981109675803850866508819903157219867172424266741795978367627818967863368182624788299212262786902015484268368976859655397253376433702097044327858087370249377759565500788402888879882493270137976406728648908696217392671806462040474255234853106837879409681135452104559207870233615552552490349421145960255763758381030881597015099699297465349125128837671104224041065379318499046469468976826133572635885338864415852628762575462027715566703069297092973643832655887363355044181727450479799152554176993234411186062105634029703694337671814850731645085705747764927603357735740188400881795528920613298918247034454474976977093501364548044240939063293956962932718964339097618603414404542368053687933094409109870333690590896092012333094072915052326178474401445895509015301067252086665071282130055471471207475581461462652380403755576340968276185413736879892076855314004047572678541613607714271583884254643842369663168939782630396816945215399920676704846936549996143699855026440725910832492412598242285803026244242599739690859092851857292918619730771525795323925452122469428939099118917751517749446877389251001744750580353641542935804441832803446776643314162855654275060441291789990655062061413477588499984658519854406766133261197715352592568831940649600001039032409393508706087122367051323908070802677415534445931222049568099615469333228375422219653283405057820065127630262542203554323907535012579622062361153291227128657968205951545831155108295287629953283595843884514752823215575885989109761783778000324886459112826388710010692644843120219073466952298820514040500710767852181767039972248793178824637332039595882500572668291042231567335961749189506800075510976480606749558030745974877410876797867583354269322793078933377741666592128872217911618229104561625421545606824189645100288575810173116812251111045353179640604315462137050177210577064025628408169029593804444534361700155645714549731124273283965382359842352344935593609644953542631126775492395736454326314729211827171766523357998076597463555680635389039432926226865605203232045837891092923307621583487786015839769936331210474638763537912240397116541441845450257642737759456540031341983423788693926887297402752951565049367455302823013136119150662059318324119918853601968788563926688243733022222855218211928593108275434700265682242354290017751039721412767933955949034033676647465513251368426593141963763234055236308606931096602112367067017503193461342990937254611172449065574120550727755820959436913746900068087736047541509842633106291069801187937872847044048593973678687241833609748982791807063348236794243069341577847076653153235761468609741754478833461269234597860634911214181880342442365111610643394762821562965520345075123145292051623378017191362261578782354093739231929501392851293268108029457734893636729679727830416584138027301257062994048073532883864493987970325874437354255264701369116787067489265318381545645883250020654848035495312971211729621727965251152510930305413031098281858172323980548584406696029472984405835797369305492921395325622851447044977626343209776504739890461052400967241797208102243557693024608949417266694112552781673173281415261107357530810358889219507898873343681837445657390230264026641886371749236589734770878872738477495684659658893733066438526901646889275715730607740621338704901240720555828822893260896427897200792398728614778528945725779894524790828703761746616239852719095761070563360721815277525326070181258785860689334300197564132610789441503040541267075023085615312663387006212867254812084364853144189412480492493617334550762874871704254494740789068112401155749892852579276161335275271175487863116970505518920263892463795090131506717735568776220820737693674155887037277941111549093465830525504764057564818496556228012727677781601306838775987180154605447454223531518147356199696311324934780536222750722552444659662106646000184484216380670009258390910551953536627811872295701841436823217531858230501627076089594446021021493534483197042600802954753806696182445055502990620894642807604706291808995191288233330771336432545631436143883053169509646733879045801048282740236419850309931531647567915970800892966085931761377454895855020709101680981293331126474415560706861213950383241310313292580959658873126385138287830015906161460399724210802050456637487282050021755851725931275595082396033207708777366282128975144871870920156141168087323075822262402152487307699859642548127715246668342500563510826254103810556000312497756502962219165168248406211396386231333368732339861336705405336638110267198661991419055337243977900508684615443966514691888937142331294412475396776878691173781293667887996042552558759893022835734627355301916578159321364329274984101339435553183746518195272812702046424635537993110652459825369544716157688794703662975961227214759552585325968624258339530763953614698940182674661800023429310011164711373363096805503754490149772958196032737597653940257007898872466261506817830502945392066801369638919646896133076725974542409922697106548611206373959830032213030755674157863510219750152562325760161636664935972314089185087060584735421645219503517742537956496219135955936367104897928459331972145975103018031406983337017668581685047416897813850755969267268508005593134480744113327459771898873379361254408290168302242934817976161507979359236724699729300670692217759016371025250869589888639175717827923579683305417711047002140861958312400566623822684496954185693467690387749870481667869760320240534245485126644583260322041045052418836056609870416597342855330623973189760601595171003741313806234356052752537731086871121641885845482477006234229371397278950502421949232982397717910246780980773693762867375015635621273047397927564727533811181802719323586602527441147809055257603324023603667512774393592445219434731504892691343721209675118887551760076293831873000844917602813454894504619654269564542777801707557865700669575417171102386380289364242556694308191489414173031736328432640426488844341489677949529804216709411746695529682446425152324260980343610939784922941034051970270136894317050872086404021095902026817587025561596067706869601946194465501432227151658311999703832378692803398409234265657704388738733318824617884949182602120213166342746219846488881189074592179150922258815257041922078431310781978754153687147941097435777938433046927109671080380581691452744402199093051310908019067833216014416005313746462372374570189432922569293910863509190765252989955510050729909463807534866120791325185623473585481572257014697786998319255611349926630608591849864460764063565980225453235059111879837594001731222612683710686173001068996790345987344451423522690492801327974608092000670180109179836175840443148078566701881404258115277323359369719493822773332317951255397298260664274321750365182638022281708001111099786491621341574960617495017809299689130102989274605998276646086320729391106136380639274334952848770416395692106860729499201346711993744425986641169411992694801649094817920153743032424052116408371511757172404531996771710179626292815298931473528409970682044300508666504438776023999247935717259453375050032505273722251055808830009093026366146693607623657392130235815304283529202008995088664586789265819788301282489150223777479125873638799575250930415096479271618182268041221540160401036044606119030063938215511840625613421342997981826381317297728212242781631395890739623097869475904062383385801059226228525742069801223501662256164070606464667636437362358078321914610066979710278505173928611030865469008355366401185673478519227709673663967348103723161120702424272902934305151306210415200329423542203097023141754737351377007611740315548794252176705090630622188819317935740349636921808354649192847152645137955781287178800877816087523974250625742737781267992586592019727353202923914754547153404415449128235384219991187989247516705317051244396018560328520697100747339568059246168585882759728691892089960945317591585604551401922668839258038638031584840398447727198100362050715809978145649870772812668114302359287612105924162617240526885768816430080961439546081755171639776970678006785930272667571109694235934828828230126467844883197902009609497923186082525092053711274386164407711001128609070853171513000469321608714491932325653308025907566171107563186438272461844075465615460194297080804214962337194682194555340846225868216767206188406488901888603726787160274542818935161938263778921312353166398622638456288223898772850007945957101831132290834931521666961260535080119484929274760209028185018054664036900950598067395981206078636555493051573890627544150775363635342682004966682753103713637015184870723137355781241355909857264415392097084116578464212850428957315479685615085667742501220361002583250895230652192023550854090535922338282758009702645887674318005248402756114101488748816413398243366914754701198821771083082686539832918409562441001419686797283087893056574002704427955211648761901551875624602209148207686482171707498479506972194926176746954738397297039721974928584742514586556672916582510624288200860763631527035083665035643802007655992552789622026270959147827460948912229235233940024621596503635982977524044398166035583301787187785160872883639780778138836227324497543296416123033117669970888926009725540908916734929938185322048572702241178079660025210167005984376510882892968730485738292852529809603705989228122287542630047649740901740349648560902190061704654212765881318809893594910913145975997000187682641079141951418919165611821191596819771830271176607874969032971155327686234231320299665360744400244824999738153496217174015101175816093538837719191367149914792508012241339654382479170124223940111106887586623194917006809808725654396230288805754558089299982139976108873725735324983594286467975019759012481851999343470011612550291342775927295348308153454044565105934368247342933471605743183609161152893909629898796648750957803419495736737529145352522647829301765748120189530229338493016155373979961187547753159021725951213070004550973712008180090186929130075415917058564826532221972471235104140625523556092530236684558128638521837023032074815208241504869953439109174826890599256592384195236180704964208078601758998409322897118454736195973584524808017445508952174715072281358660347420618240356804010104052698559770583982419468692755966814895004604504692731583182620952405127848515219039360255253680100493194437870472772896609444615840149928758359629891624988526177735868456732448266613333113035166685633876637086358606334476335452481822018954665080552520442410770720341913000590581694185894836381254253070303757022067073236613620708723817433428108607439880252352796083077249138824545030676513681547219773000584191985964667276423132489804087039201828837141356555554110918739619356802399745807551954198887698870743679518408055734764437863712388385048542080526222460160372501028147504296120201886765223540645065038409726358093519330871022570990918843913224882688026107268540699885460153185861000039682674675969237028660255188056377216090613890133657029449776903353260991408480053586646415564561797175072279402058238907822471684037994285334383940629722613670316484111302369831943272494461760812713461563723099337779582033120678795956659254432905247659235402512623709613350527508637309768663583796351996873425103254377220559531812442115992332146778642037220520812985185656328899847934031813305266002926788642304924416818822856358248459663228161067440900770242734884702144037397818861977464643019411773154299756443301499635526704791855979211789401991461748116959656052786403815430397113236964861177707019048815238956817258924065551118601381157170904243795245983403450426459145278790166865189429080450714759081593011911732319222462134508631184894819869764759619653426438670323988043552818211044770677496892041217359296937850035761206402160155175183466437316098421682085073038271356087828822764033970614707002223368166611548838038290691327256826406493864004792498423401057728647099228177767766395964482824228587731202035761469600289735689698107123369754405846265472927161109139761269852058742039985377680263101860719740128445816988570924983873627400299417834823760104203855663673548162925599995380605526604678518310317808800526040237869350408096451111466835543181819638685732596529289738456336399082154674572232024997675158849172937408924542855616255487338410508667421820191150529344947614775892365703751708750123808083817404637948182608095326118037357081298097268940029235835849077015124499612739830076087188115007004159343745418541062563461007378542330274938158916324325563004152683939863283387179403583966757318173588978609667821502408720660149067975801539861020032262772960318051480576489464830752922392271416168021429805981293400633011643963221876990163272780502934313909675999418345283100636412608068526434516813543096430164442077681309159203923960377136780117724349720236082570014976330657062703232372730607685378485651218057178004580614575882996466829289346385001124018806711975946435107219667319536885897886905912589634797930171786610217934565190111220026030534543428690003623854072392783075058334038340677177535280439782618764634212470662557729079219448820136217290308737933390604233623014160353464040216081266302366874327113025169236228010408251587778517545075778329609200072470914043616155570152265752477795234144860710458154415599729554337597765135888541754062657321828144636007602658532326603973938780571980346856080773592093421989444803229964757896013920750500920508757947069491905459727606458004274502356780214674250147792715776318058751845719289314498366787146511962932387616582761215331310372231030571069074507481685978421683081515866469806144587376635156487358451976043136483604693244165811153024798728909005530971816909386222725827102733832942130153009260894376822811148409408455959295534633907767166615237063147957562573604513250765832564006486400352984972397360493118145285184137197002472861418775617669144215288461651335577231642645548783540674120073400592190605684019293640281294522860425981156608464786151046927744697256342587694731852774741483464025419526828948814096319488785148941691775654492543177200807835305740445011239035362479742818078491150887229431315250607292130581264518274681962211811151218567016662060075490687186763128134732840161100656207022063179678339523422089019863145882340312815833687621165817378121646462615279073288052014194982827544144099669131650907256010815654544182120720890309040622632148192612947195042723068584298963470867403027486758137091030110003216662347753498672855334760298306166538754173951614197224465019785017825736152958887300711403055961505455745898057088022036758644190784674369277009836692150894053991955287038800378353209092506273271489473362493080361544397646631755293757135097828786910935366008604553315774578549080827061033310130063303634530371914808856540899385887282680058267698297463584527625637870893925572276717485515287292610114152950828377759589339541853001103384317794012376066460783139728903537594217971917663650222042766195111582362431578886269957897396113294741949361328891972379214007903410707528067631567941273038572821867010423411334005160345825593909400476274081371752275599604327730607843539339431372143391235153016361219865996624132870666607664665069128497280350883115651822733777534528680571892347654517496370271847848141174968348101950147372068599041370470381479301129425927057163476078307709982669410759983752560141199218726997896842620590429348021540111828918213184101295983367881478179197840431099493599855210695499835303045617189325935219446890877203508761143560154182801691849633217446312125336186498449347964265194096320990030063417239369010330129677193217326773446647351292296672510089518022120680696027912978950406610021504140828306519958988472395827037926824278095571467235522607192948698741548466007907619506765218875211805354013282418152215010035099239951349556800246142428277425118956536775413076342250008182996374567180739308115536539921715301070170749311531530165970315162292619176863258306394350939513519019351384104443716698309151826760099158057087788981430817591358698675122289377591012040120143818501889118516109714129239993613696783374052990669502151377232114787653553180474378127925830146709169491625996693461412507643604420748081603626187399845556954693966378770498897013401427040782054179365138835040353588080582651660722745962774815189229527370417407008422648331049300121707582554912044994616219180355589521135328568227831378594294088429682223658181685029237847421498106936130527788101718102106830028081318915474563594823556001141997366600551930373183522350331039222251468384418433663244565884282783884916056810661426680864807027183023307652209394128993314134325436894666141105146856201717683911232798216415446483676963001063153650669786025443657393408370614920272796627537965342092242332333081589294966609601308298519627147822582134532752587926418819200178637876978299862986865560390956545407075122421626493459307842762007378653649809159914099262652771875213424655429696772572543102407817685311425131961924315589841707047657667668678373568482769660371398358197833061020347541482737736480101462361574487125344922853837921338183657637605505524071083524476251502045405806185046341043886661084577105394554334544518037773747275060419622859961217784828030648186650331385087931516223363190505300515904489884050249649350309656302626640904499307246750424902026453209466259991842795691454354744793268806370466612882393178838565696028231728739950206789093718711555045056809500239670191861202833736012475430563062221939271302428261866014635689415802154833234919299283016002972755888814007788993832944431252480317323374965999946846240162990982537832575899470463669720582620638911995938845687148379089251011156847428300172888463094619554657366172886454124458982375470011458008757101843735511104784287131705057758955367098126837814567191518662492725702353466147902541283527564852637463306217376927879791596897072220446086255953916884007328170338029663769399422779019706943444109705355653551132105227455779647170564126904604771273709346125487460929049218069243914982163812507234443758079701039039035402452818272584003541906499567142569423358479602757271749548026628719255503110321155049644187908057553763649757557807912109913855864006355785485459935474055162581093968342557631001137997423029130536807938413784975537382242499005471260307979314679770604495849517733525850359680368259948507498822200770734537914026102359471603848453805276400538358885574552308697798768841218785976848331674447519589758530690459159866080096807422183021091469232206588855171309696093261646740797323841588009497239032901486363161143296313758628200624775988696172576336585789676852620158580539866073768884637960719475452143644258997567165811782376526647003071412703432734849802769030077989516273714077618712728141015118452027284747955885489204597764965017805427735061309662024228823729120209150358535657610130671608118733200115543984401231908132991244547898019565848093028651931126846236966377885049689385491541164242654548849761660098311887377349223765440516577782263659403231413565849232759501460486340919228575562878595525528519801448952025032699056231192455677199956529495912799654176856251913290025223336035636612518039339114815869411044285897319523403691318495399003449306595641294417843199567718358543504887165576787106520152044440607282966823840194921652120668839900706155787441631201657593706219785582341507228278783974950413726095980408455354078245735674043516688236517299297532403386097237604059099273652557148788104169647655702048315956354939382832446290024433968486965814490661456943941158411785701384811575343940841472590686041931597554412261567079529109326408117755008027116234526282900607432490837723130129085216372469085106916940535820141913109456579653076565530655339410347209910383901014370049294419966338675638640788870188004179948362870087052981710014794364556995560183546481788306378935682416619293298924163479445883577103660100967737083570710768908082511820005651728847554859291271194319879032410544636922222613809261396461879470917777593207680319539218797176721141265456191500871345227754586187264847366922678712754055425820175723747190908866373872119631954165741290169153469340918850159748673443573022170505382744428368731847544346588218403428803203575666606830060843841984630592848744705982720068436017752780199612260765316836103382538274505541987044810405165024957332633177813396971730442202710825147542375578973156745554494725718249063781778134932699757711530164775864278027064659037254431593560173363772055783851752943150003271743378815434981250795280081905279395295361181032168561528037606625768644905881357796415800481494279411032777212174885001549870964753635721711470332501598605221776982773907584778461716195544713022991531397351429624215331469577400315775034822177242057764517090062904897985985077100268750653978443293120017166433803620353264863412071625298934195183871013839944657638529622144934331592527787930044675017536874063681245641427883816733458600766044328250680606491335619239706248972676355989480446804171796463437549013335438712208850167209154491077996278878760647057958291432946414928530789484307379835427516574434004530192166917772097296075970664925199249235119859951839929574535183413000650293884271826477305183515620824624420753446973275714763020910647552480685626251157434661309632489985568487036411821327539086161080831748877512443300152770205477410091060385200867682896626455316972507172927441463464682869908768515458974293798002256139468103522791737247403505657338324927995211272288653366211896562498466236258070182581971640935351020477657090612351306169657599355391067970622904687656621554420703229129323499484969564792339911942067015784061210578283700145869485288390509723800044768129578582798294657467521561360679402276111909916107715149701540810633849255396094984645472124626707169077925996384207286343894210970219710578194015964649421865589638353780147534925886875089884067980374542386115866508987278144708628018906686177097748810120746538175233654729098042017545308410698902682545534817365549393899909450048190716246384328843461566206293232066643621200257154784259255015353603267993303728849056681946025183934504538389652930323126327908547863158844702561620055375670145615544898068140863738778669961614282198063858528429033441870086290765735662595697331047905148191976606742452128510171815451622471698137321485372193841415636973954503108579321198811641630331695651167744472835767282421404872970438475730527203362859792620784882158281058069329268520640149320125858272143720920765805047913380262073372536637260877618936933820957769257638579806361884892146911435554380839615497834906287559552876207695038910586555514435993358087949046792078236753013114051391482728679442133150795465064641549557057506755744662498167722538319812435180844931401012368412586939792525545206805036280223453727601358511887684676826674731851510736018282180292566484240741987677198134324073633934491614529620443080881500823831861392120069369915249020924893267396148292216640710511000997187856237974096412811120858159426908308744678133651375383120109275463649170621620770856773005894218464428859955123771981481995989132375755626351799017234055335883016742658800741543403737485928918493625622456126703913314799367486137161913433814744430167064133786299731163887984043811033233651101289439275891431865171669225743405780118637972048561671672125638423323983614647680408857931974514426906246122315160502205379728749458233675226764509606017106730285644763909806358830760330185286929413523219311198010907648942744976678366462772806227301977692213605404918003759098393940109855262163110943340843299225702611998097288362283226172596984475472748310864480309242769208169246261331385509930696450200737699846984369748274463705822329530457029223826160980435936300587418950245145655910713388289137686834391671712781092738347458004012562821774274800301864529632255520169262670608636362948744860918228459423920008777935799661190904052350611559544175987639171189638951301086220134694600776152095390650343724434314335639029711036512242048976388630721717945607558029551034924712905521601309042985079005914169653428128305112140051159176278974004570379212704460653475514535277786883529201987676796721218836663922510821299313138368935427826041008529037884334228361983096719142865911212277369992824936599444828832869327724030528856107335134284910419567914475846492220346143715253276632201318630209911382416644717870655237496557901746064087484590425617453487702472292453840854817931769133222527331897962135916401279700209113203319602722410810116465854266578812968973356050873382361648596563026833657224732262475928698071297687041008813339924975381898662993284595208933658183542231195981777789533388249083272412926382101048735266041835249648688418904558673102872736966390714461721112467414528322800310798871643201935224991075273160003138434801022029905175712597704302898367467185370679515610334079096479552308474804106123981363731683865444533288931509435568110865648080721015071400867894749645890277810658536697507797393906247600352357390962281943912393986266884705941162469888831614810880908574670763476866093084897412122301254333007199277486138708260952602899315705810211310709784613647326508528497964358921742460512867277655171708497628323600322625287086885879368749332148195554262043849425960317117993975232603781563227751232353885009232248696100484186709855339301408569245357190797185129111859306160277833710462059869063592238640948656847295099092545285793571677869485545304753523178986578014868387284707446332195710882321627598308783505838515372763631065553474398321208006235023964876240363819076295369212794860216788904271332127977606147207838861541446621893872058459904124103962487166142880676395598843649795425032135797078843464083073317693000753603218314738759535276130402124988511089661848403609371154700022284906144890647656372973661605189571156541790294070722177945785664645729027851976741530391690369912598164977254953342184962754543630382689475345818462401227026586949601628323911790643404259702692663753320620324693894357534753173806100718990428673010179648951239589556443441821124490795132644983130273915818293955570114003742864125654637544097192786106797696420627255611357073788452820145642403733327189829501334721400731280407316497295428394300312825950171209654282592930258358526355698634037527832063332953113794564588463664549002886554963980641619019803193180655974718737370728438158384952314880514446296362543567400127149469518821540128368686854451219228029685030777198457040041066417895575575086131185211049541299352852887695484251116407777876380466297826047447472193329323266535795109732229249543878147124113575736692946480589275496468844714300740344644345982171452542031589829037194118303061646269465461616639700702566077399693150963138009746699113904756655769853939550504249264753087712275935917880808989814261450101009547229603965105170682966455547282925395386084252430187678770120621306447991674827967653821763688029436367944792542734680001615343774206898517752453032651689354654502292703468856334076772826469781291365918472903778535311499827548710407562107566342211684512243933923506047804988481537257696266611369097930479699260660359254560350409540965415066630947858915168043489796864360503401754660330803892909549056058204686218921572507237963041468044505175663524847046617541618759427885982143899885884150782455582371716420345838336931671669353300111361932981541861767266590592693389193783275629498353964746605197907262266087810654914076562540042924961993098887007284204027339283282728625685464022083217209729422927106716810798090594243858604922531255215961709977058681097618853089304814469255682882288544730287906441951790288314182532158873866509526854035570267197357982390423179833810492647238550565120396658626574737844471197787717539752014110494697050835743877768943685628439274592523371022415576596697755473447173556002534414908700529836791964364463976679434702746861019767307475603437089091037155917703495520124337702360220616630550892189632276209366630078142440902706243761936621383654103431100746921478686958958423843253396457148184937508691492013514453666556573409184094807949092686500777458831492509219197643659643513968785430103524744301395003082253128051657750695549821445143069215886713980428995129079726708886171087284247727418175110496314491252570413835018967961351739735530655140877834979839253890281859638492170388141768864448412392452173409231702341004999828698784063477078955063983410119731790039223663950223541999242274850721470791940270180938125228700865477310580931410761896628675870460028914387289378910027891274689620889233027472806093698048453922759438231876024780118992028292428854696040100853234990157028296922786036457122688042801051505390435489632587075451141856379232321820975743827295922919514081915357042651826536252983624970927197719515212190786432975254599804243784915654628461118208308044265597259581788967417561084428203961260474670594653890669422283031958659227697411636886120344811689527402338354230992624951493926423654418234784960729870755409585813294117836577407171514616344648718408056394354706662715972628100428966617158214036701619746888890738763637607658296384058704095953250981158918415272742135612174690961055346672385975189608931655745406829117726057124234153529755780007204101408400736470758452282256890765714925359397990404608922792659822914828174622822134229616703890508809361558834560387785783310167219912126893136022468339361634791769453113210832651403060724362528953882010450610184513526018533651106589844726449068214781160857109892972038971237718152907678197756321984592355598543473818062924879903605241491568802310307438302269981267018450285406766793408156586950397182446078923980076020803849607712422078363450385270929053525072475195372943738212642405801301849723941546522529273838789334733173278247870199963172882367499859610543225827130162520074403359628826334210143866676336445990687298813476938969598757405629492219424205661823350963616989385230387117770060718525033315051352578803916196530019079429422784653813695202896140200277448196304799409454781401575960745066770760618253596677199433756787186076890451959122641571183536060115508129174708692450516741586760679305087039666412620231618395787526617551601645827852459088968442116896492303913459407744836804398752617119207571334559240846867499452039814077189485581512689438159948674520135627556267737089259032850965396809899396845154545045346250515432594868834942177620652699029805783544618259094775412336818849725923316494143918556213451466234097178070829131013035064180853271378463909634308769415099459673688920196531186217388087333525732626363717842161803278376364215512280971512398540115354307130139858575063866555511871023746732509139656297685220165352553726637903175153551385639073545365188340896242486809757974335934584336178062894533627341421586196011436973709205226273851413098638200779127327843959745796753077708270000510330867070567429921252011950349212716170072618895497460738029091399397974904474793740201635293250143981874886059263514456196455409394605071831541946693730978453459833107046054140361318053009514815057822476443559423385299957155567463676590075290274503029082579567940501986706335459616975138184540653261188019857501763201291973032798016297438111109888925726237452439411794138540905130511648177044213478273135576596656020419209388086856689855605320294878790210811169568608089564148337829148048806266123051235112179417263143455359602766915708690023821568469336982272151221254712679862337428625931075179711085088302873858055982130432170305592390522166146515020247320906680940508624608893535754446812911460492862032800572018252613294936690886952960046991074036731812392859542182521092778080890998862221977451984220832273501818559462254611439418992515075309473294643866583441430601384580028982330629162458996533438328427671478921568240474891418223369682950522159632637450437961779214463910051200693542854559703217274428565052214177476051741026955097112795206890149768194651920537283015318281327662066832673050424931020207393641574158110071019553540838254895411533753304773553856834604500868157162834004742749748139427146294158095175488303828714085663590351154708346583004768979190338980400994983418536722411409210565107411330422138059700835665512413193752121914572288779329726847360215451961632202760162102172848840516854317063542493528791806096035098433257182967562902503038402904138256567101958876308004863730458484335236637873118366469759119737639985490870600890086290198784033022751602032789295712029916067046381695152790400916795375420124254131491467713188619792403660416857191723677159312374846830996367186228143909796020977548099694797393903819018831831034734971831700134094178489056509533640383329618593911960092789843783977924699882363928695618774571371375924148605870758485282559865338018854171090344851794410710584425875580216150652738437053553999789788404442214278350420502260060521727482598964092888846773232073281915414782243125021654722276695727603907324220758618806473145049501589046474971210228915833622438141203942133008918529554010505156117250254262466438913627368956349236355847383658923402832508743143029842940022004723600322975824658535523856035226791661033026023082380705240633625181903940113511337288230596799235167552175221248247107525077214986800338048602001454798372833064087002492762322409905169928117357135702025423148729345822154451648352192766717252162797191182806868795703259591297314320698620549813387785705621566739249280242918658335798415872022196681714068498065204592113063421854317434816096648355026143923416593845222930382878116025755954495618239032307393086888228709041622128184962508516878105238490214815257424775449300330487735177748563683360327310196751999098535219101508077787971440561190462140179918238677561843898502126908492590957126074510531955145947947652919921569094722258639436164414967105197326930624401559515810870808870180400012441257075977706748732944416887314734769035207403823649164310124229146291897033252185522902334946005570172163142377650783134375243756091521236934658594399338681308553991880339748754509991896998603258476806859004782693399363399089868915471745905986691102597979160680994711362499041546303325652497711629208490207378387662894299706261840103368201836131046112668245506553600104611236125762628023463935213715815870129711129558115021139311665418698950607345594104434875828570511510173008512605470741443154757241894959590123070649372347375197611368360306930449270129423743614864499213286656854336563761929556211470552355779524946148870506533967195658283359295851327706785173077279928777396804995945629993703591050838826942442779392523940797657828113956732093589969236518467983523386501410464587733187890256101875259734868463875643873476263845566296581052645899655954759449824159751972015527414344364468653568393407916669947507679402464945743775219732848545005142407112330728743877353160046276108084751168886180096838444826707790553588773646466219163958203986601499278278631157867294832758372145644034482943054029065855295113366072005754951071577937862096495955406957810077086992504636359582402002841460197718354370007095573018861216220023707267757284326565627937515212011582366999156934267949156669260043194959467891520667760897309501237186878359352939516867796414299067324166727004756059668807775575732520014322472970981566393832176865260585979150630207487119270149980598506806379676988867603344803413954623710292304370515963951092223667883131875311022909388129354169108005957026271103766663677700804538461030878962827210635385510095065983974484378462033124559916361308722481916373249051427249937752638211416167101230826477931580409681624956763969126905715919062416944016381422782381260752023248879074620680254220125536786424211462774393695942740619622193434213656727554007965131034027857120527579310632397161870368903182362220339505841807437184856917698250403529205813032923347103238837927404780814451546325815396485261932641759313623050561324733763442332684090474488563937989761936490592859709742873778042622897616996564060936285886313745484933257211480291495443664267434538225024225601777677922764865215368962012324799936098746151596753666923206859154148740451996249653540418155037504326657637105154462102788691552436561772066622200411620888759941938316467494688616045975968704225605359772421393345091106172415879619384202451515038916855521408439948763711300060962497987800298874771004545163321966833287049902217685679676544774292607677631364206450767520703859048249198947611539918421896983603226655706694415421761231260892849839076008257136655335612038544246113735546561522211772228000943132393741607711194313374420614920727826463924863664489437185766004556238506455846523335719333160072281641109948861832319886691710573397472919874821212735134661825328202032632188438125661609888796827996348941949243421393081229015771527884944222772834869475002730117497896806653700152016464415024108352751494755612101271587328159373199783106682637169417529622853228249249871433982594241131411951417633394095365274485163463117929548689331595091374922791660718422820653241738419648012326619694117052440147592802260316213060586204590279095702915678080159156667527927413688598393625951556800758586054168700815749289111626727353678678030420364572857532246739244415560409333029416697166914912136440120706154909920676735217204593512156716232242177414967253460089598584318243163879751669236362460749515146329164500417362061416476952549067278294641697621407557430078217456767976595446921380632130671180203074911267345468316066874922743707346068647813202319453242633112068887717070253783530453278046771014313841856419392806835220204267437250646065671028771578521849177785418403710518646676530487580900852036080848722028354054631355349442174991204074234599016594036917805140889365666974646504080144340159042075081167372827134754718977393703049211400908319832869647174379785295379857997723721183960330827189743538647172673785523386843354312505005430988655022457686719711300307293086905137516897529208144503214420413950465112499410623503218319425769898426435288807087517020429302613117038186255804587123011699892937402536183935933566644570905424288945640602211939586786644625748065320446295532806804765070550309579097144773084140195155408410329586286167915046117144604696072524163867926801887063421266118403895291499070943529991376082025424860618821408225961650223564157996299727021581744185085069124853981466933797301553750125414752857380894921112483843011016607088629211847417109879163192582799021567016101205789688136805076810878353493583164340058159171841112323739839352015929164206543156685968888952114055293574029747280529384725904552126307384075966186606596290754913949423829597539727440036145852055157453850424238514541229575967690158945139672888255884701699974963581009748771932830717024764640246374719237601358396912195949570495308641210596258659229612242322132860379064250690341523994775524086177212132779793201548850648062061915241259846848297627436006056271246113399444272775641601345849628184497377173981497365325215956232162799359087338017197449798930504099090686799886142752634748612364319527563052815617821422225140776467708385007753684508601644493698359193014451103900907323087628942018432808078835230269583738559275505893363213610982174902323955096510719219184534649128686618971946879947379391312615239308099276774998760614317793020939430528906226308592021015912940048851529923783147603249283453785984766801833249256985083722256911501086576082886762736010273309582649717354856468084214092704082872737707137620646157312341312451304107281109070594135923958019642580048476056006049448692933695485380481733953546196870184911710904114921566381946597644031529754840560284002367405851256715144626074158364869434150908157277414303132137280106282774655954856290570326771850279805033583050897046998606203392325199131281898531729797624369285689143715144276316613693394413504298677153455775132149875029001814169753816004873628823139078740726772484796313237321215696428112615227523907343774136864632403334761172100680026635534631370021270406160330048271100918282086604413804496578359903129355739460792877164465778870602489672939276913778981318544565134049508548006253957156461005169169722266446580871678895911665007444623446309630768874258871710160220647595286490666964228394120205407540699832054601432453766143624440899719418219969288724222189114337144392031898625351804220804552759865144402620187073670713676291564456598639381487754839972652511344498935953995494667398074096282623425692095352331771102331066488201130909662734162946211474834362992153637218541825974510752002346934127604869404775685757816413052305834758560214964847639004789468770047977114715269118260322946720668157236121380141246595510404995087012650623075530999448692234534744094673634787697961450228481968766676981974196606240281570491994817489176081491141605026604312415269314666460779816528660016330029337716023623979323515938137729537009104824163398453953468404546055080168451349892622900481971598952217012088081310469947180264410705885042737470438624297292915062656879827518826501887197788241506109562143150936136394169802177141423995571543073086545502248368905703675886599026709611848865642613985998236690589150797282232089160942623842827673626971407752671060399554281791352763470140588308130079038616807228206277059915282911896703218232494367260948346085358499664609011972153798146532567553595117857178542485814454176951038016795615618206810078586725390943156048635266948007825121817591389230294131429969606529190928114935610358668131593803832948746821796009852795627107837257612830462344715860878856140496219003165285408942422605416494943204808069871373853191018852858361191097233670480194510042067519176469985467491354596982269208947152632536874480454697162111311762311481455953548122861041472698561190020260164688565933517068726439458341159533578499332897655574652818444664657037734498904832705494216115216839693443274691209959538931273873164192017310902712352451386701960077364213416502692427064657316878255812086533219487395857845951102975972560460864979183642843991802802383260847834383006784255519337529747856653090075260238677896448152977695136568410132387886927204226954253667452598788378182784475514953306193618148863037061167126989238823649241924136752343065568495345951879112881954873771001821435178838318966602162689898776422357554593066622172198765851024667534328439249860301575140379173452449213406217224700141594869428591960732147282577177289293061577681737029545212762970392770788156339394182861430585936937266618403619419596923403734300531075402086369742215579525934369243471241546365105919607059789432753159371960532025804304051882961998328404531757098468164286312324951681611858006004111008766570171339729518447614101129042937124392012318575480821209764710365975269723849725721014182559396421028961478884380125965413180565715287418397731116446495651126364892516445875270327404175432847348319917317642364414733996493768462409866071822340295397971946078207275068980574452089129633301002096322093598750099581966743620122969659463317795757533817641764264894162223570154085018330844155866829664066214674179342108290289683380849103432042656906824654495577471062253592570810354139155842336178634175983475458161855189354981782638638669195616632135226242450685166815920474333278531284713606660266407531620741383387776850922997458316185682476493346511248986293136593882175839260397452769872902724158036747809747371125710035972244254508125365197539729623540251834075114550269183740686922265413750098210250030812827073057951436264095581401822886666394556293156437341988256719081872411019692318815669084844419091394126463097754415974207136190432757828866260226731851216047554986788203795611342007025693943510708403280504673990939036571525474105285485113714008803445650052843414998102129583297758771268089273082265159074365218913049874376411569465651571825337510055610546268686277155711712021575975155902637748146574369703556018383247065799925450968470320615594099756682982124784888492581406019645549054597859484879347709759577228714335277806348089151532095368417647900691125115768498220394682612357643525253746989656738919914120963243451035863897681383388493815013219069723922306519311601542756381385992700932676656618007872965585687836739268164653063644930311663539637321357966494712176471857458050878678632159562549686107682076150679858755447671017634938401478738170119323101741336332876204087980293496745145952424281973547856854575678950974096727849568016171347809221821001693951874178556536212646542873256783468598853062344012014393476171863000704785364750192131831682951169870263466829251083105589850987567243406317709964592519957994006487639977058130250472405989295675344441322689572031289172218017577068021675341698726796348764996136995496638932755860042892420949365568475530692575236959081671170179302418790528446311980315260273055966444439088750611127632334775289740616433169735782454001889248555655928855477751777760094646159523597134803587576837278752941331800530506341607352602462311768549769928366465979237839970104476697462591191909388460737757369705318268620022466779534601547882496569299755163046601206005170699754835590893979135350744376305180613799964500910555730374520159961767180436344130331662764076419551745851881838640517600383795833394418481078722288225699615422949412253514782895501687461638460160541183847691187049474562356711068036730838221764350395035341081281357407620146965931973305488983626790580932935570375164891284243131420354649829943296510868673289718014619115552072148472208080504549003324648613733370419148315792579607153456397462743961197125097689194148699146638771013964238010912471134658507455521364899264503595722244812018895542517252539157574149351417008443807231489379186686863882940280910402635545897606029458507401795307207499805342826676459044000271557765249448042174968485494371421897091564538495630915988910655006250404594575173739075727910346205586108064112420947977402095525655156119228869847959907699652744131559742538770645572442087682583206216864966216426573285411413570126537694511994274191178307623473337309167167357425664388488400442126009624100757612941972246883055141520077577455310838633364161494974317320947218484157123579237569221449759400595354416074097324210713159515031932579965336649459435019054714861293526638519569103539282454309950841455977773791640410909132337947904600599775874900922610141269175161243798035249390376610791800686710492738671484472213175520013808667441159062262838159526480385128477996456261793827575973525409040977084761169693087877928417128659093722669582625387300997731508449101359633667320125566702352617668985819193286409295004769784400349255780313139980556135959555918856730040588207342734074531880247380449846955385928685112544485449855073730394249493667937396481379215015009726214458752161359001596768745925128208106296725749154001135564824023378058144644467906500660127877602382574145568225779035865814097066209003543419463754847556124004655816310789346260169184372599588328809538794922608196176964869295176740361862369765767159506440830205595808484501031652719529710567666719738080820260002424366986915867298032624370132795647900790107436036246069463418784074385658877177050124929427264008800080414797251739313109261188742985771409208860368693502937037644617423524496127633620125909056810438950273990384627474427149325165283762570553145593518130831609973252666204948219353859805989102064229975768896035084831447235974014488414166945127962288624761426089667259364028321186435297443494297164876374467634190783994537247633752054696469942648422302895124929742554682790222824779338544794488371278392462479653636953152621799775811026853757131425391594682679829603969769818167520441660158004814902757587183943453727266394313452016764776367277076428249994600792434546821896320212492160901545078897681267661183600009890424257467057748566570228355917446808530443083273531942262864716204871993115269150990404132115297511003729103143385149927113205912292448907414984729840616068166676806871746540156236613803122617174447784814940978874919410959259523401018658502619205734872698217435359343980733333091392603819950629885441001361058855756611659100088411344316231054340252019704108910883948855785038220075289224946828408485014622554963210533119236482319745941347359463192977314572331123573528951683278246747325296908585392543024077695708047934563773290206078327336711970081657635044102633920362645735355084918048997917717335175148991565369344560038792824050435014349346943582454649380871462461416146537757646201404300540519317180102013468251871051941888785134133877535746985386189184464234196059643855521961150119854410474249827524416749937775934798978706439043930596112605747056747038197195000877246761023268166575033308379325925400996066828768189753447740748346332113647703284551730096064843955303075708585920917106819257182537580976625297020606161740525320118171041023629238577585377512887479379576561684898190824420386210404269986382105425291922845122181114670936505008801477987068978187756789670211115012400508623588878099843968667311557216713996983411845355976607434156548428352679709773079608616943312624420615155483492542400778306294583510237624307140707678205589908744672067541679322040602916972429925923068395817510977877554585238317353247320004809359723951365464404633006411292437691469531677274245722566391982445194596297615860387193991092283056966559107754910948372545173489924130660058795733691106324016795390453944539963757986409319135810811848898267856919342708057360871715804485581650353402320298732008196206677817400229195188846091076581762329025282659670308498918461419912295922115605560264075608882106006590466000200601745456597745526865161213588511169524434297085923785629938014648011471743162231569333284568914973646919669861832686933936447972896277160997713055165982227856978008709818250114352273045089018177875727646466518123401585099877778302769705516450187094001944333765043703120235724191594025275283736922920135816253440828844654556061606774279549901254800821523085321960960957848360742349065194513726335204950568623573438357852619237787023117788489371811411759798101023493973868480489814845717022866596631347802475552455592112461199896425406310544768849840969510540891312865808359821769517896261046884343755869932054718542689083550559035961304868031123820901619381386705307431716726189301554659849008279011148578826061519918647670759788927396603876607840289996096954484390942917167645263550832776429634758842132628882065542786691289168976103576454732751914600688457652601659969194665293180406003064803805112383562885144818682192497816324923129108175607138862507616048983953294952158617275224386404581597685141024971994353732957568378419136570262987224184120817223306394314274440626528240452381212513870736286852832747331090195307999029649011802173954162623190382927031733016117386362704111380579792754849419624446959309093770967158822724427110813253262474075880760276629639946075968381210540958083785640827803489106192748889405023609132452552216725985754550909425932098667731149683495008950367494983812604633785179429836263289209804293992263373140100306164944364622324739829328778804102094372383969530462987489452742652706703368260119443179032974379817365859147372830711782395960961976581599106035510984344849875136181264471983208844317984169997097866703660596281342089795915131475641281348178958864425862463027010020590756603346625427114992225863909949151874132345241605648937897528345417588787379145346838441494022237791036407666789527219943221636429066499935417371063385649848843020832418375674613723547191443997314737406687070810302853660738780333039465116304768910772982197658918102987549941743116811895528841051787445978687973167459169312443413426555915003068180913973342493226538039568528789449837778691422900644398939485402816016987945209303623987351074535335222266269308000567975021447302157794591772826520109325857251750311412101874798700065825385100376382095030322832539250209589195665274641752846844343138282462062430543981214814057961135199795240104945074064775624011588812381016994107705784966027901113729011699682236671241528364711429668329320929862126519510891442607031291097543588933811929044169381804437720873505218063357710587008171558651038413564358639447173289649137632462752182299832158035111942659035057100139025973434519329860867911595149867999531272503895109540011011658260081799542575543935942046030592209176477430875244758197302257592050961766307966573150405290108803263848572925181086295999095279180896176678964135562734381797080862667625487791496225627121812999232104930328051186694482642168938487488289293205922492533918583137373441187056913685866986318539525569797061192673855605721307867050423666647135949917014610163154560703502725959398249916868913939415255615395769802762253970316709825309452277184154626515436585432229637493755324886531915682132069612281399984964489587288666061049314217406703944613250989907762575310145582794837396108472788692886527532797196125975124629891025044459447923788527090890343099462941771615283369178829910046464933524197856823465031553911311437082010839058598177244285221819852866737539570436903834394315008588706017818129922523739774108330791125415996289471912520779673838076978834544591468595656097441977386038742302042268736896492834655336682419810399268038710036926070642668216218823485463528611299581320207317839072237970991307608388638986492214876269981222068854368603742931540319145443821147759646049380806674863780626130294840879499943424960088139660526048852502101759466915349539654047036694172403708787691096412402654898879335348454103307041353076953802980620019214153866161393601188665602706628435918222125897849817172032103343246002778724987351075240881559913858677316261014411877285400310767024075159521976115101269154906772072245707322165677028583883349933124393629947622234686556494367760118389940456186038529655451245527798694657734907576369301236548006945966788403737596422621130446340332439768145350867804754755652391017109666813456415449317178028642513596184593675273797909652764069364691257797988625680145081703748452758791935330580764289505919707895314573234698983053805627845400248141097635729141159968845351497405425231024990776209998064893870024255876014822509654490340578022163583124088884310849881691841791616599007708291693889843086111667716268235702576854287345782034171155594588354316897637267893314317921113110383664875647032534877846043659288631086104986686527209114595891615706612915967384989397827835628611953194988485687890082025855008049635308421780831161242861898138760459491080212424298580684187392208396656588922516760623954871890467179079820945463630307575732548153395463365561374402036455026051850750457277865978041329146567701248484633133921335704558747426596098440618173753984011082454788143992598247754052594603470733606244890946346734696421470568240805638243971837576743408146433438958151911792321984098797713209343037405020910689054084116611295456285688239596607866249968432391084485758839013767890674973589348104596509039130960554596073732087473328943856200591425729116890412596473336078578484429494146722060927584266461775344791571227599148361150456762223493852110016119716532761858222601502285970256535920270887963863835870229886865960175937010103593867622767006563283221567793254652767873070996694266634448064543755180949713488321352268897732001958495960953548686188366275160735161771651050928635225171509652062086501697135007317700783550722681050744527623560873179542350501927259904991941167905396670834243823351029991677372621791890931167859097629359564751125370722208842968839516495542053449632177618108136820023707617961545192657764266482971419675995421555304812095715490524045990970592245602388861621922475034978151956344876493680068135393155485314357279599941478123884415324319254149461054735448511296199849120113253624655886260709681781181910079145449472111755243165277050525322790065584743065284039708278896337223246972649085839730809690508453601252399849837624805720927314844805503552761277223416488173292699576545243050221886872436074208283395359492245957921423834704453439951121352281029017552212582181533340115047342034090433889202953091977842172039546609857861206646220512450337359992225271050623822509690831239429900419846710644451278233773671447103032753442051586427358115189860588249945382867508989219363880707475889927051602685015482127978086108760271209427212268665189256222965033183738123269362899971974388872691843977216633803045434910691412739150338116153804335246063588864039899582852815311746009367619145977601245865362208734712467911348337381474103088312667418275511408851547511228071180059386099587201823251979263789635808302201579409332140032951632909694156832301510963629966889179400887662247615857109589290564310366791036574065794578397821989734485314082544453731883863336470725612096990386335401324407870493246813643334618695673128235037890217909703192759851721238342116221827944134878792122183994078727722562382249290365775715989007502358232434902028941264860696600537510994439659184840521734467829379554790644491957187717257542555954828932854572920581830732994721349302822933819887180368699056083614838523482806225682701694606593129319831414701195306286076736250054775757113063684306693074905325384838290039613562656766632619481838534860039102168581601627827248999005525970061487867561127129293290956910889908661829583557979774083596833698514983628877134749185050846467808205457741787557440446975664403278113550848639767840673434904619548875539829090199365787977085024197377720134858619589391941852095940116627975245852705989702683509942010099290740715381673724921185077974147321561519668747814867863942541945122012091124007510103438612112478338700136851021924828103397050049644962295072525072901642601353642102835580910401970972779981768011087122993781774238613260294223197220703702412541707361756815540995373413648846125294232035534989636451219375627248903850533269078547708752161807113960703397573320982752955801938912243594908631521294533574177549981173207012812851660172972256275581048277835181754825518720637570604606699780543724219664619028587442496708927664748171913355315920967323987186005360093714038466787856355847965055969833230897789237176114723953617158901620865395005491323697949628613416575476493210380764822892508346628116647251421906110441661916883326230048270645819743669703139741575695221859229627739378985370279195998540791769088274775948974533997109424236186921113753089798322823616377405698496233097816582900095370666201141706755830827990673871977555972801017801266492766671908552971689277531893810614693822951340846163107528655025593721561337593815031615064834812047389051736291930518067896513263782189602378896932499883248210026750238635915768916130413561505898164078384011567675705717688291205372368095322909929828594738692628999322885918896428352307016676327779233510808652485975222648050727812093104191638577668866333665936484918717424476058395484324665092195818469793633699964767906184432859009528263494483644261769163336176496238049683247779593973470618714541502526553851302517497233945816060293514022324153618988211099384333895653224901629248141270343594305110258575031748433875257152940199825485858075399193039392900119207851838553816027671258527943986472449658247400391974867215877598643929961282497988834479166425644684305747394714503817386848481168792483135443968458624064426735392397914328820972585143795656736008462302748949001707015393601969148278451558661229785350270192250056028520689864914441112938194578058116123061879684027722326167836395768001778420106058101291800213063789924620514519749046085282478144943975163744647077438919190284865893455040755932687753480795674717679896511597487249703680358185366068356734733983385069058457224136589862573852472611117010136440114761792914754138218570774255783013966441627630168793730847804606011945038581085131424402996534366252124245160792569886621489261919382577634898032474915604917233159376919797875837089550462374475579938310963862030888007196321676667913683840862671783534581748941577362777154044220910894181614402196803453451379816460867058743221709290259102794451500967422077788000057847943585483644464292333692073241971358390406258233500044646296663154752466558379729104895478358762453511334692201926012863473393016769532269401295153131494933060785875873524983211669126206514111534851859929819455020575905938987820126250479464624607319715516371290740298613502369499080450223356913275715245418272894283303751965614060587613611996210501892846648025509273373663144991296734303507789606346021546459522704667474271083234734304374954327442209866459631602986332943750376704851247293982473802660639185141801353090610840331167070222669287561132877100062565597696337062964679151905609621930284901396136907908984483953085480766785994995543438718545851619877614584479177800562017770694771694173301069253661324684256253601924854856758317820880750604637568649700612936593905643428756355177850017207845448475020461365295983275305777640198461222920883807385148036227880909419959464567665589331862943119530260071710746230221398183706742547459722264243143301134091221745737711163040658575981541435679560838190680901490274480406760085109765466765111986643115826059293467301301229425813515119503711421883979906756091654744703660016897113622805865243015759914129191686512712002642863066691866028026317447976169087207796903137889580702097170717638095828557571279011094149552578268875667519004148993020447998643117930425983442231702457636210360967878220807175633024591119374906237518555053883329525071355975900463257886379625008545433137543935532493679669240248727514420164574317399407517111138313887098447228043938368723902690673892999758901893794632558378470032259833816633954785248142491259766299502770544896604419697106266830584110278808670018534552252581573143333408472270842731647305584325374140089029859223415020428659799030151923296255299476982243173277978421545520895401368728453732288396098601712613512969016825873771680881237044456330582996138834304776718456367411432046434172909589858421810953107163488114324109158374588136549474249161294396644340010224145780241913698181763219672015363424514999829885611583345816207164875900401279627571669309073082144433769353273627733130216188240021044948652159415391129677751636901718845142682156462199383050478397002698637235321963368159191906414780325233809850611809817241815030367110946185195150743322780722710613535341466786532710194662202882450015664834881039899937531660693006957903114326212480876783410019933336991869678393688800361229455410646191530563512409538491373921784289219006172816940834190919542231688875553322769874418256554343967964466754320647722306919646842648276021510166629275359695070080317940142372521239742246347576642138962981076540956236864254062657189033357432803558772402394694851420439471008058865946186352513161020047063843439277737844724351927275268435233894098682352693123934777409418392586567264031060487386957349829405754183806310218257531824351675659131127571920479119376150839520101554688412384304114956998030084323665031395078088857111292718675144402987227817828842852594507343677203861898514186074820565330235898823237537430971942580097602618639433942100894985798553894547608482607956517312003951065424152971533371513423204930577952583533705661828780327811094315955551951339148931102197627293241718287583060169665206825005756239782814678127858431921273600375945003910182377533884772701583118749370316174001733745447606526179798904543288764329340782370458487030287396089163597834747478162182111614583525285394924512624565659973178795837720327179745170863201010380935162091513362291158862822342275869290394227299371781109103117541566718335783114897696727056584743194013512010723164923812779289918500869282063553803956306786015417720947901843095896598653936819496338177526893362335025498475006531971448595369901753599880786417142943407595013731507846318899921048333794509138570407154827263814667920915010175678730879906606328812166200013365930456141638499676953052099726788583284148561404608021212742750805108783637065193355247678035121694809285853425275076248409680140600287977838611779991086567213352569966946077293860480529207860298121092786660774284359246106834255005161608342073317518241154578738281134745828217756765444251871924355674656126018307136303517959987050329623647344594349728144861342714725033646872302784229082607865245394845436149112860644218575809535354255004573103133807232866491020245323140945353900934330635423669687354445439819290793031766632462247300278009986308980214869996552350408257609099658407291967071666327970915886157855130163756133770114902490591405535557657409656430656001196055507263006155011226843806941568200194108434097020549295943453915515994404635281250937701432048131917654143395587957973207886795723556158990534379212724753658273256234008282498846965396949703236489812366889314297632627838309922787035146857176155583337928720747130836339665400798699694432952569724809982853860457107770038268256326605400312274572033287004264047552548179965294972148715892585740667138381067644317784055203098133938054694134404244467177756563107902480446978839032690135585697831984407194764877805822007169182956988298093495136149510055569776031847512023039666759050542401454539816707289075970446448718304819709822513600780357749777608861394807688446338520933930169268486110766546625870493807481227646579290337843591974115561747893384150473831674680159283759943110281878268056016733928603484021204726544954388506713219428881338602197897568691164887696318387746409743343991984152498230764402743270771569093150948928253823530126281078548757020099928046100821153936230928105249158327010381847749978283252240526085093583147679752483478221475086866375818160789848634219641981684030407171868319501377827177401642320722143135460643699619668793755195596133894175839114007412896189548426483208768636325092443112263576755430998298066202772428958286017326337181998219261997318790901976281207070037248726052369503771836737082793788821638778613256729102034481721078029762445824341808848677857912760905637390732630518851818890369971432790500149248495661424227500820459422425853390750801597142809879941549945636662123364903052277473049709675272409064213209124341530898181650215572164883458518681164597584996242530674238038726624379394019813895834252281896747284857544015479924391133555718979312687142416040517486483631047848089193068005127263643736599543173641421885636869828005821000951358652292883370786325911784640887443814196270828094156392172507710791433386728724060320871268718251318432267404018244513102514565810054706987574530001387782600041605185996580975761277104745871672597122956800399036917772656520465679873413652793182995047066215885332893860161450163772521802875998723839198968007558115856157722295497720024589706358714663574134489330040099526374225044820200293397899683976412817573873537500133832428757325019140792923016600937307608673687651517363577472963594828684196450739742888446969520956639340292478765517138593399354438686590406648977361641743772700842810659714146187365176316189720783198894824853397493053034595867632690043411674797927652242074134973267566117048172841366797897190095301610990571203118494440226798546115828520725204878936606781664070672531020549611172036180784449748707385524620186976750407466149353941091985125207580952550941051369743583183145981380152276591099875686889097491009852631036023032997533702274189990150655403463145424258018037335696427874965909480964715819438553953408278512855737693982257525613569289260305723289440746983598783023484692067804079105748450070811246530975659476642205177173523363473824066511556786439264672203168047480251850139669700699025134751525856932006322249408724630136748822912919600220329796565535350358126686256692757072046541976092646448435459037917095187535578085361186503494602550713284615065571703365159672861257098063271783983999105862275441478833270273621878153111161385609793258011927703843771582714319091348705786545032250946394436121302764099763089122530827594744458304178549382995571431697297399638628439374836652098028951038340028390266152622916175759182851024185119473121898542094675429437372739701799415867068917827805415384783812992215713931491665826371802494365083440107645688640913546635267037947710193365017964853628505423542086418407978617333672582078176695493514612634218477032166014244806983563155103882335789555487747133541628304099398085054638182378750488804855049165216084078517813516028656688048765324373533577740529006291759072066028177438767508420450913417882270033969419820617970291638837973279428991738847641846669214796398032519475230504422308900033507929705866039697810687705525007278833851333300532197068908544920436837910687416026193794937419119144870032192575170344855889108032458361003777783089002959647364609146899695275457870619295627708104827049776642142457524066924968086873432742101747911178272347662822175958684794645637009550458378755191309577470413510733140568995005757378207181553723438836181365146926305726246220571924485246035367445814254665498129186568143022498656157361800145983533528689448300453039003581625106436269420466890959861995879264425128512258373592073957730983948014003402626583352745375701283197232888758622886322320635894302288073166598063439492574974029543182120955228675136207622073386519767240129603151352965830326209021591925031774844187820035837520243913694178144264429586796152851548826676971128122096735725226449833345052555488272248990651536733456784888428158052764171330130877822661990192606127220510785025277655433760366479317036739128474915890121562434831943369197530764444513880760130546159878528271008134923719789923732000685682925914301073582778875216179519923298985983314320331378305132593152570924384631387509494878777498434774167117061819675412713945747439104846113441816487795415282980774938710052134056390614832314268544965479786563836137982531096991399764909277345628784230441961305785782692782110336223689644357728683506374240200807729256761558273198527581672844851663973539574255274828764453917303276106773311028659410625420131710093588146946707205553672881736213153383826507387557349652032329071206353634027725104304594789210276776424615894596001752016809816184449735347836394047464732554479926660930495869752306982819150648454797356105303306201371904235608102182423568030653789504088015806305525947565043805587414721039335611146834607670216166990160740748245347645685368832536153012820940009426965904336378102906430453750288600706748544827262915185860976551533196450157281976026694654396910257824528636768800720438785301238540234125257074853731887544273926910525230609984916535275672811105559124143201019521518532827049347933636696620036090610489162258347554127384168255979819699631297443012282012056299583050202367159921118589257824493255542263054731654642959440536933854241573482458666480399562581343764226035344841493828211439192238134292700878740582013164633538915476848168364715833290579762036071653563738077747959203445894193330423721594247267631575768728394923610392656760054498394639465826382749080834434749568253799242915354214920710956502803250776593125532803693921578063059357279317269941398135831460720576047272389412748643314094166028892720484029065739990539416223398773578941652442228240990005303805422395264304312445977695465735138993333570036446277307958788298854079374224986326804491985672714418879505622977830987799809734420411553647221367977947660964726195907178569477108789064209437487305272603432803551998051904588084828986213344359113590534688667220554374506033569601119809525224896930800879977713556184142238103028081034520105711339302746737937628315756339454021680732836252682578742493228064672739537178484664728667725741994659025605610518321554289171888189192658543625318813855307992888353211355975969662315759219882521971990865255118375670709121887265490111720161548502072078415555029691155491470841817346004603316743990015439431701157862274639394758408288804413172229505003549576037406543717310939224714961741953582355677821674189534033741665131795949033661410565588370928079518717454690567056226961690153444238510009643857059777741256621108049516367516147687348075355701955155448338999683424196380223915135717382654222223116070587527099294028306710533713523871131600110612736281153415148117980147448164552302713486412551786099956461920321570349384007654632702999151948460082348820736335005558175803332520566445937143132265784225160306058060948702639763738252936453353325942659563946597575886095282225520989018323337700771180835978414740517788450463591345117434546512378071130493174383337420890124797086222938739604972297546157778115298473283317864950796227714078004676842015992522497638807221270757228339837647366343945027904506554298924589466693897249278856488018066300984498415823039818158147852995706558249256337375957897772340734480926989462172952630937826387688858873662788740594791491398770170192061355657114757001005662008164358061880618434537105537581013523275144815174950977709826134724114935467050915481682228336482036023235143337417940747482301020367094474413782071475447926188434402208006108227675292318258688710611498126109098752510790031078055069294214590253685554513285600735760625007358313336879696783559982193555549212377792537470764011423537596225972705913875378704499392626596272659260050678063324221831745562124678931518439359468980734558745231943606973235019024520223844784931094483329479853626251835370402033586457362042671348005202567044558830907687706512871305772020493037745602793107120723792675753843194015172239585800650607729987443744892982841051324082713819435496918547043962593584615589647976893141155870541780852788832425088224577342013480549219451165171048246987056731489837226859429454923255506053734156642610341720249909688708543948025012001697566784531018915681299266735984921091950536935704659463834413404792630033552709632460621977441494413629584521032209952074845191520098355087969253612411016926374411603974391150457915644544374515955862427793859385935517092048074926326458493514766854041794419887156602182595799795879986312690341823164903484162409444690270289879610460756509507150405748002431902330154207732862156956663547352765279738799030867428803030823852764730451379322837859460488877042529121381057086371446260735116300283045082012889299401685264493415185815297563385486690602766231764738674525452211423605107798538415987549889432076268000730011213148864495661368739876014014124069948208117893941725686820806030783314229930554815694459862330792980385883167177619486698784388677950443698338163369836134215889936062166361947122509865268313503701102108138090686700917270278597283263266051743582200399300982285225678883886316891096105599602774071132611289677205471380521576810445683392297597933354452155209785930968069830777172475572771760281714901508426607020376608844713615257445317195306900474781993859421582918828154332374794610134063678713960271216970178371616411527329427845434660307561568800545405945596559237808937801245400747496426282193009372793649892787808908947434991513726176988704391965474132747269982907286446538895886524252372357257191793219276912251631958974586199409351697052462981106312465989010811934267027902300331511501447035921087495245279370093573713627482485908555873051838051923495227684341090010253731129267782836604348042342170681570263119847974423995347273094786552211973637122010743225557487795661640907564895793369015656833681945533903263423979340732240820903528820188090885031655468860968330540052234198099764236036543079822204340863200360511770996348253507795190659267257584227381024500967082021841322948847051398773516165868522877602948966341166812185724265797536859290542300506357289016957612539130686512585437012376482744380896708985644348225261261005677431190230579942156000515752297562489373429139695516653099803829094263880199142860773636601461628904161618047181618640213926043339303438297599945718339765335990126025811227822818013954784663716910364590147468229739029026447917465549564254024927358990622077157808059965640485805234175896027903316714454511598383032472424892929115465312273905616165785154798460047787975305865663445324547609673288009352346633648675763550203073240539042076625516846238657126171530666737529483733875977412543692114975488651384916581995147152929601127502876771034588587148268647074447054997028919899661405384221849323896148035024485973450325308896627316531704797779604453932992843521858882811715838748325978705427254752405483713859391509001696395358858367356562176258367545716545067115795227876890206541938082602669064369717310330550510791225486863950067205527898966755133433749353072416431145924015103208403664971841985200668454060135546365090470469507203426055648972054064243297363921131733643517095833088222190535963197601354582835588697421429594546168607254945016820903093542930328859639897921737880967828722421606842137767026090394749452819426958206607855902166503875598622689570609331519081570092014903518466639705595620101993452740437816253328281865979033743764494766637235701263427741984078987294103293530053402566486585000065399131489392300996958734498633550879785023090408795965644994027636118101894524761273438585412376146961230609960608964865624726231513453299815605134465573541514935616149910460699030697964799211657773015378455380094236375650614880484916142090666301814702083008976983804806025677480035672707728754346807017347625375523263325554361433839615582222877096610847850751015806222093580641286395430488924091354003041884141709992207193659231504732518391090759025431158335379546548595547557494839803384916747950747914315208450612507827232482483540557870258353527814204660868984804743321898092162831055849205946814916017020234631610090234194491561827660080746302067982276183053903235497046814757335712738556889033942971636744385379759790826182194436075607469224228322718165181939836931019417959232833242529672973526806569864759160606715651579399182424074174805919141125117160803282174410735839425147180465355884294032990287024604512527162629343309702179768075063885244234566951708671179692123210053103545806917743434021159893901699089064360483433432662690157970196449225997085810389666645545005128520938930370465937905607959056709895389491828651021023701978101489929096431239814962695640517161091750765273492426068337847744991548817248431369401888576787947608326391532351919742491810503401633484496738809388671867926674768135431696265641701699353051252643574716843003975308305280201189190741530075554009730494204592851601017856523469715957766553767388808438549063912572639478445488997903568864528530348648371225123284385470721496695392508610331792306017209235804648323509906203622520893588748922973216380209316310568896940348867133850616895027485447748248197197090174845058080618363859853404707258720113863824802556347092899389505188243765162473914988975761936460008418771452304259079370298757046060591053889541787359568961500001520369849322770566206781088134921030810943020147273502242485546371091989647418799070095951910827885911038739531370566417510559255926140008426447445634445672372437824168323207109145506447111435839716438953831919327065375845986847696498770518994625765215561321880089118253061705165853365199493071797099489011601097428231475765735777268095962307223534514473679758010492775830317072388887966704185556992466067083537606278399603292451447843563150277994930412881537774545893480915592184263742249127677529942114497011789086361802939798715424592155677207298057121758500418224795022428530114126486060024854473662943484618060115628916027723023727244741180803379477728452214837123468408369603942936455408811066710545743501299588571906465859570469548870842506098697515017831100518999449162801479336053048135894382428296276858414428938155666817556098628375465706235115386095575493160356696080796130891092117619639679260335564160229107213179100483801167821731620887510741696690799182735444818764267520725920781776519592347539586071952209485069592502728024647195892608934079565867508432380477068879636761090366800240551270630419563606235435857453806818404334507323353392917028229086861910959090710456948032183003635461008043524021709296397409490638827709281709016121031439320706639863401166209821132950806366003767893810926404982515943546304377329174820785494978442965921607109740044553224801626610036274807537919642278508178065006636836656051286776202703058228044218367363979316838029636839897200898949716034555001776135961527502359654448939856139033532615610761940969579743992268716357354978258310574620563732788421176203879177182289274121530922611303291201180986101406298361405874782520917172516340838113391922868035817923688379004549520178050813275745821010375557855482071044762185926171733578990060210267663941265634441289860923443854519799292997448120444508932193330271497853435585160244663031190625822856434686096873013014379659244039959908519529079876254866537347288351107350704564103553593447309431595731158021302513943853555852892739888889715843410022633261271109852849885924858402502806168148784107644317059521685585991899869463960241751521271262358131079895235362760903105924467903712120547104162042421742162434094301593049670045539920201145278772560900206721898571972909838415355440097941911646247872644689263725224237904771024681677941007348896105043626186118006770849249458800221762435182151544304866486472675571662889693476074946941404079709954785389195900181363108704751754885587742165455132867239334420359144656638002274468031170311462150640776550555231720273229971671137785013028398781722852339076852111446871118765673092334670414484105490765571087484604655236719026104830428903657461378516763464168934877147765816295021063762493395165691560566735514493179768841078952233855597647800467397489251787633263471183327506484382134608696568407121672813960138850273955622853490873393478684132774943894663322681592290166049725998000434034415297450312041614017344348806846521981362244239073839971836086205668245748909041082516227078785114157069419111016663686002662257482791432793908530170603568251914497572488409365681299043502935444610568313694745777835180071773655196854478660948447313520379637021444064447416473493057677091824900965496169942344588918417515155247716934046014718617356077568021978792087164795866681999667883446031942402770633743886169301926021878223340192746794137412146993227394885716389722500250762628819314029734723823578894369102260598299133788612628923578030675833866642518734290487106328499904727555166704250527214763792076956752059749533025188250489987094969366303612887346169004520275410239308152941233977523806495323941566322824935097264551775216514411073149798149694190964682936926182323427408687703429247882809052870824809093468850007505067957044921076896155751242598967008010376453707647385948126304244285848807629036032563556868353976895225132880172497173413787380800327816538535243575547690987951377602594976976804665328737031071613683781790574960762783150499149256528225994210217373629012176051795902672264066712861577881515991664717630082324119348971218989623634938668014739283312943029471513191066499678112977219557996557148642229625143729707438971946052814308432794907002402884534387232090691800298328378173432106051115531419773275159492036013890761434887121634173524800679609144986290449051095632062024182204678043030216089034212004055863268190906440945037686364986922179677005360989850987961570074694094432675822132639513112998299752491243426018884729833600267196529592035597383914437582234654365950017270987628659474192889282312003491418281900919671756218746221493624041923063198065549765774217661204364528316611637532036361997990042583212430813806636212703333247090165931398954908327217947441554685901518874615680626530232579226784138270346869270636839854167885282110622826618850588493075519210317376924555649711108254672751036642630621467713720870730291141208281612529225875243088683332813894883917070393503588384037869830553351931512094334728527037332128363885047451311536625118687006511836927327220892479232372200443340628805020678478438565969485473915386363627540678096193565816743454290869755827899158932517114171853497615993258489695299956855452367437545033381445241380719849087937842986187020877469750618555248346754327151499412705179358523884106928513212312712470276513628710544881487899930652528132629942722311862000038389672843859169608138797967010447939700390659295818538027255056399647591767586761603434297771106559333695796409486084842028406983751754698402784856030494312551176760779216968528811997636810780533691294518181177018880404783745008923367651351141616176937353204647587658449386773284466644838132303204309773865519367561260653448144697161339335963451209788943486328709509562954952356961770337047387351546995539836344450877450913256884837124036516201323768058706132122063942178151106124922871500359354475805610619507395703718422397579364586876297203655064992414449680811534256032388316097513043559229230786411160955813831101917441061355063285091207883857701783614529055166332289870594097779152028786168625333816345522148498424324238088498379428560623168670413736704970994345463442266126192505279569228406546837459242308617041541094452016502643346159977032907296588958290686756401292700658868444834304219576266475384025319421642400411799653256997368866495746548577145252278443057094274312148106574953794690504958710982263768743826584863566683456606164464814225457729449595168211375768949208698539710197062219797277054344442042748256804985612480471549824947710484666815119442209086113930955550097408694149021451296177754821872926039227551850123055350561448428590049620489826872176146613487435912211933234145940143963365567754436049701698839791049320126829169303860049052207371402863496560674461568180964323249823336295168452425036852717179391676601840681961926138774194028434847835157243435119863904286115604852665249131123806493304922693059180928796101414976195959380803989946320780944237683391358180326937135500741308249771366644936296119245576923028683863010424115170581479510202372253323405190399504086891707629280982829401182530527751780405636490383421404162664421401046084738704412223616449542561358697124418372650378590714502935726677251388632949326574963884990040718278063822197890686875715823733170474993659187322022422547334713082842659499209631882188075394684585318343933354875221593099161423593188091453863981009806017000509046332557470429244777400875518858375012730782255902857297155916672938825559397562788703479009736867782834828892559120537185131294256025524658834931350174396930497795748432190234760285401752588890678253236163277878214494917928399799737629838589047306376189937492996519925736275460588239169566228747458371377904869711812893957551030888816833699967972854460966137018638615526481966923525401066705383950433788688168978780086481955477939959866097613565809778407620525017304703716038885645724849693099912955985982400654132540423204655156800390610034542111982888339144820303632856419915471780218196303096325040481714805590665249891587908672251237030129348420201142354172620400630436466621091428266093252572368960575526244113194130499332663750322854800639553093489607858583055525237533990889378796125976937502646292746915323059029495645784630031666987608778208200424599806847094955429771596139400011616880577010673511890752471145800464010991707455736656160245510415060698010877277809663252869422340700102681005083235706178538816806373849620837678186375700581942805501588179566608144062833673811855500876678440875682682410046773024208233459803473804635221364314509279579003469826176567440104803480852779142520872867741851591182992074780197962133955025057055038670864667537519440359936600248980394432985735762504162450135528922706043053469722114586593080274693156673816354823084199592821527076189424041066031333618626312709423572918426176598844648105526657626007595987376645178805110618012569602347677611258382600809183444067941583075105078381045511549657373324305235332743247112968377680113816115457266063994938525903759755581152941199783501662581619598665719866294387798259750777636644356491702879977102086077492934043793654542155823605585125728296052558959929694978207085558080669393372783311762097413967884989319271355687131305341329147863148359962971592821056928855667814939872786961654039029318327337773242276300935530305308699714656253519932863111650081406969810139673694749028048821943618392885880740478849662764365839445959271908949509503059298814981039033525872217398261499983027349198068418868608113041347775327754118785594662821256469027882097091551928238043690231583135777457517034890066621487767567127469600264032224761113875701880545167711978888955254226974821030028948669108766258005035711050990256049191017800364595032614104733967222337918530067483521674030551933011787256862467140817635841795617865556166092053922556362468962785917061951704264301551409362344871347458017084879261149026184769148653240337959933818631077216063817131347258461242284682574065588762105932102038222937047806338311898825438632887531841657431711748395472289607448119168807751813712803597454279129338966910437425799064418351554968340984539170362931323628656123935399938816165743228931571572523726252106898241583429096597328219370798834366610373070206386054833025711888850362285703099881883713713876960893166435447253994300495013237017542697902234185702796482455108609698220236485699858437580934271768763478052934207182946892330044422738963935604021370177948693458778170151330461451388708537609233763630976804439390597163280828990091182748520727148692839517046457641750016498515129654740861186473252360710794713943875256012390343043856265972500302654336929975022346996065190340269455210550646701793434480905337951107006298353801209524563437991687987014473827198799332805690414411051597453157306283595863648704722786556109454936192404979530526897090518771193991878781250666035800114539678455095202874354510087653262616626899622716761503910951150726041905227785848806398901196328685122149564854901791876855725847193830910715924687976765190932051045972745809692581687235632870888598372454451759271688820494683137653476140389241774298375934732787660443453795550311431531503994427294284811515162660355770799148069262344739801395542491662125934557423023479491558495422894475368605672624913139155750498157138163468008639999395740097110585295864467889883754057490773056689187581389603729336923860357277251931652217473814759768407589942192645151551501307998978830832112061445399448948763748453876546651406437413727989112302151487281284453796988383411634602220233086407409084737344538598374290719928919700259304545795826860671984362314143890095202888220214877477606995945153443571034207716797441178287341807358115326156826886268696645137035109404729323233864527325138515839183772680696853844543921836252350694564245357300963711715230878560492619690663310334883690056223778179079061416741627007285609407505855988198530229841227972998251522172042880521524083365137724100236007418471312936224044308941996632792186151842176799647218045076372917520016220996326333505607761037224165057618172334386362256871376705252049104868677425676762866105035805465415770658172402365085793207269514186524879641453345370623559451425764900021898847414243970401539878355037926078366379774653929759489994293921665742892674576891919396954233831263188319181762905357273569957481748552579531634351998585048704861633437962464116810237943244589115539312434109770506666743373337547053669607158400776324765513350472020841619039413465196985062819713750581567118804535767434729631315829983032261483587340038075425275325587133206018897638138753362358700197457492223616256263078093531562008701796679305940628074175067661295053553828127405306546474863169419276603533690480875803767441626595636745817612005632307294246537972569825091546687281662773828305489422032128009528415199337811838292830481990293490398872668596792279610324453035008251393552845934544240649171980793536860929038212162499706718118810803857167180110219108261834025302812919527408916317209433718718256907836816450776328479221694636428421445845342017299046278821953231980778965178341390719719610832372363176802764951025563134970432044965462671289887449073671509674289796958159683744010144923730705042505730105784268045751703406800185875789224414605802143014773724086873929660323608653710707288304208793207527894791896233555145119325926917340949699078119068446060850285666169974026291903870767441283497985222302046726231514716680424068915975789269484891692154120885928810221044622883399234145181190491708730765442508113065993099507969785323307220705089911031592104787482017645567889954269641089144309732471276327494731530773218498184366340070929659114330928305037297055813657287495125310048689011321309690370262927598536117323008646062151213533475191017396321204003778279491115036052447127676380835039275666851079499127904001963010202306958699864604734568440129668194767201549511918221099619024676415178556398154258942676644502598746593363351601435696365792924801753118854652017307291450361267938244593325233109599515343499583201059504595138123095210288056353105475930397049776164199052395880621832489016621883047592713875239439494127839570260107672366545777991863415801536890136060497561025133760407676473932661209832740001603388220875546370614915985889568683364387068599313080008639585478129622015050344886131105430261409025296537492539187672258639663793255573762739613862009896722815318965367331291496006532234176213337824724443890599208226504372775700283936671618554485584413489945467091672738629447392211310182572976679195543495424638113523993757847462075067619494691945216349767715404172751434238103099820850415609250743872321384901967795562228653067915453740431291407005225232711686013894405964846625196627977424786715058243062582437477646762433083663195896080709900324352129122150245557653903806174704462540971108325337853816192851280052303149768649235860724380323159603539064397535787262715828641672986221931770496505481847704545516902442159444518931356080597404061446905502630217586380816546488851435920590736293852853800958912937012153608083738319297546113085903086183480571006288963329176108105556156555611296192321779423118898382482240506858240781926705923213275048226842613792173753203519647830237236792811852346109448874632990446563568940268281268025100764607767365724263711267556767383456721552764988274076962720967552137049215228865268775601271947024501553969811731106828012910136912264914639620547213482436854583726614588960738491113023543251634629073137886034534332013591543661009653860989101449647860580394718228066523573862093730491683738078542299863836415960718096586807994561848225864733817959769098368407742965110802157760603707630742436589662281047701172743806523147978589199258727587941127031093767920973913114805160893807472492151843295152447497036705851590008193375856808582826932226763003757628519614197948182409240743660886477589742601568768745608059389771519061129814381721460933299799944901161429694338563799076384862486605392997233109645540863679026812345237598581649606312212450405659656325688764406560589867277418277711877974037152704362732230000707225222883327546701875526649112731607943730477165652467269922999332408306867702217852989304200613832088512767940743002683689792825869649952846029689066313630128405225157025539328944484741617781638581144530730127818215267539709133950111076655323684042158855195829825023644107116645403768952805232367342781759066653297226424161035123567082382412115614348646150374613199478193721356391727067349126321267622854825655401625113306586350842622243658587766604068921065491922691682452308299145449511572463988809998400982844931469030721916820438428702593582108503004731877865055727609643992316113196083124235419452117002813459086916992416328156746042221767333308829165823387929731178974913571742670968180310309359107548540358241762264540177056843166603872991970398531565290342158332314172892945234215804002306263995618823843958431737824653644398922940674405669682558006352512866097125149806379748466179507972389780307303566746840270256567481294341792011037335286471220553898608358201788799343205664026076972576648838608863077659100131206395063904859692435970448312764348544796917747067324028970659679238013617355820618269008265514629070999418499156899317260258557746179729575191928093500574352464326604754586273900261571318144151303953776435567086857560194586152884935932069410945834492470754719315268271596994111789795478125014872631731954189030370051071480319929026278752162484618615678355857309009849845613750863314416934397916474201848683792647644268751030079629778049949663361102602811687829034616466699592183244918151474645473650578767624080545130618515426592240313292820427777314474192907328286821034377808135728155036043068791139277413278198207607821962067643775899322771357051134348023869780995924216045825175171390046014003824296368217307527032946986763052696702919253087606648957903809547485427610772585277354353850173271797375884520004884142223431409084796928512786959834561835781664480246367572798258124537056182420329520286891102202615872225827961299597998818907103659101810474970174384443333417617038270517448521972875965344135312462068099206320939893336855687520008379757997047513357907150672437531944758405202621392342849347895149098653611234011987551958195919871741189718569431619897449287185709601370324373702368792429510182428539267419660990862556822830026648062450651935776472259802998340301343784194487975588382749384408081757899368465199172458878616807308844744554720661582764818145244492946659971719748204419476480683105222734788673528503513181109696025094853420524167809359981740216014586009247994576007623935775595649391596511138301516573994553877092558996974254040341543923601669042962781187780090314078985716272960761127057424666826540895366065783669936891998214520438746028504479205594377037209003708194002217334871286575309941761933551946507154841368175958787761376851409740053270546419935547999556671395779663421066913927714130488720531236879260608403025283113946918072323972625599646778660517393724449783439621373544735252636694793017875895634050615407572840443269995258075141213528610252834784607992916023212711950785526268432746516312076566602827190610994839327018257391066432688136807443004580194888990294342694046877073664378460659212340743686625707518245163927587313618903343533346910883803269254437673973300161981224300804804497799770254725229734632555435312628534039282956481937040640851130559973321962390864433505236571255699990457438191577799697209056747778291551806431248173298704447250325716242166854599453085782323646431100777375013723366177413012509892661715745433865204858822840547995053434508904631027520636751741540495868798788724427260759647718036128152844230521396669448515711852636645650691913141269954107049201702683721643670818958524518567638975806299712078841031453992754884093076778550587044637319650166518934218094443165274547511232849945565467373876810415512116600385899810466563701445510093371832885094278891844686910773304977313838784304211988416626290602402673998074254747307153680154094663007096607814675679744159917287829651643704596750850999115815955753911413740279548635160652918012580852126131906067005852875235856336444524049833010351148860064551817207369641880614348519731090595453680117647172439629774338575223904930576345747202994561357434295647314860421581793415625144983801197620648352013739682417918777136727600424845434741862628297953223116044374532414747946766485462322697413537066989562076036862349401598623132245546461168898662482762001967412236597754968494559437713237209853687379802508304102202840297578194696173237123148979493306959593483943635115455485275608718761039360226479717966056415481078075434682945474775796978906778912961758577075191072360988680852823079959271760783288487037887064350112631807413632439894061899935506010415122765603508595208564342376683273410473340295474969056390730872902670198110899460184246251354873140828990923789097015919607844936756744949866814736555906625186454325512782412720393421876718724618215182714794212988418434905261423195540114040102429748990691381150203634496296260758042030967732966305154916330982719111302546475819064159093542507837047705596055393158261796317808937973400735646662014106204169551470044126447297965698937706395562363642833360072002739894597267481026585339489684302005523020139496150599250758378384482810239325378999440862532405783171829321863308104867164139458748001956436372331295371519635800230248763850308015631197971141254513134832323717873399151577669628344055756270978987709874462225809848652490479208931238970823215595136235466962981588642382673768570197724281224028121101857700206110971477873140701808660182710028921400104604835562202286881305786275668433783822886748654436195034190039309683227480859460243363561201807765002168575679276057355769013850817352276657495798867808944354986801106800629865685448085054425127120768850477617989164333596140071811162870829439062704742894987576990693382596231402855989200965193905525076611240131965518502517205050522496390467186608469496833377625727221396156338393967782207835503856965162015362078015127035800206510175582219460238574184588064778890107435887516560967916707229900115526414633274189592090925841589661073912564851888108403078752155201067427868809295861430093714278818828308989692708159875734571786348600281500926034099171662258002533593287637567119516252564846698458313385754417629159032439354477614865699764882001794556465113540415617568476790528571892237463482227049877381833707759750146495175626034129857689314775108417453618123631859473750187395213356385308404739431733029540058393587476238256857306978457500031778759274553793505072997579245445548371883916761940379392454379629129680045283437086147894620927854813878553257471827677758052936199270375029453431873101124456049436446460387458311339809066998899567152589466437780146755762845893698730928033591504538485767087929866390560528447522845510993813001812171329631035005727462682410270494709773998625152891039248690479280605686953189993679309702277964837013303102324945610994243791036433248068016575460895971684924878076669513432932124029714472660415232685171851439290786425419913682647552409830977820660422271929737031463538468797881951330437099084049745076429090749860049706642443790541174121094378052721831986779414297308205234363783783262605177853307284807278721517414005654649842990597333662511841005489180237911681847045263429347870148680740389359131227987188751161606687156104019335510432549348500915350457723348694238791770967934876852484301240323539759826780015827962511699721821262367186456164133866045002105507893219280126271073147320643275293172517412699744410623206834788714866861405804334484399341411944209577056787370023180384635008118290182996065246821326085098908312673843194496256035487504195488529785464291911724212794510300840723118617948068245255624726795745646512624943617689258301410346994969786965624420103754502055663193906705624188513666886640569955129983592792118114936673394417134700252468114909445096942243108304865912826613782225390413680827081772205904444590331081844303789397105037486596842996090335127471263190504642323990427860456995179612880161364546126993724876355471740649595164837165907215320043342428483456744227025362217689464430480489847411293857632305949572419949639326669649095418526349203518042225523981452921464494295938986188108225871188183814144257899749446691870822987805770474795923720108055510664247059915181461943343040338187661019563242967843187914996356067429632475143172903011931300475315314516674071159508555469415956977652158994117354148364378524705239350778328094062452849175707530945508083340201194861151887365157896839245222388029752163395184752732789308596877727657144658900938457436884328159122116215787792405804134685896601108931130109109373811946795029939706267753773370460697661341570319314932464436762665131793949869206154320196278006786273329810878050967565582567783423002300542885700839789028134028215880280941009146360157432999688203885806441864124037075446674461203375015814623426903437326353629093623135769600250182119219547435066297244062939880014213474718074192929903246509707289893948646285492706274882751419890586476155948285023580696393741493549166505794758056505537716319121136200421843475825658690830922341552377320897811528245451710574727096687408057474336012709721904892727395464935661482700614419621006192601643702534373098419698725866554095009606296115209881695938715035793591558813913486095059986749045895516652608465306578166015099531702744006819523730692961387165222068143343533249549532959675196310150094586710521748721388620093896156443910836131566448744912823491417648545650686370946297545897798858093210075819655794266680240829803660150457629745637765438919315913854748314204413702561077636025619184923504875213921107765355893404594423425079716270778665971463004396115597683658444134456717777600940810243965790707866837514687627429212990194736363709494197808728462628095345573455938273195824851082416688498527609912639871737959128269307444350656877798353462966151399354167363423274793322651604823951503260171362218006003574882198153797550017000807986824248332670004955840754581319362669494251517470939796019725058105612996909694259289995704656125148357203211262499685950769487425975779319082229151642293934354696084555872943714751655645448388814596368653926282895926919819867451226195552513767807542103849508366267949144743692544972325857529557027790164511784105897087768085172083181511659120894136405874248074363127450163956597794861964743874908886294065660003918983105428822317242523674939316257574379863258685647815510730628373575312929196659751618989974893399667328108541512353822329422867465099589077108911005210924393752994027507581892109712305100733569501386206219497691118304191315190393604895670760185856947270538767521436496815674133954405575316789595765591797721349198434353621372638996358562978781183528747998284670432900605044202288430089719452249649122069539347680655207819318557444353604026311403504447759796706487647650912343607954624175280542448761223179295436397362639883452971459626187040741697222683489291311214145564778105375140491422248165250829287312932463912276003511075773368361266805892078303228460826268901890819266218280172466721701324839872966121512391245212938764527025921522523539936025035561698321720918983046687177310976815539805955715280693169097307038595814449059167497072449092485845149698246229351538443912525773635782114001278576497667336466803208122208393201194158292083004016560713725592766920332767117990896029878149398554815527122776425238636551712510637112072001099880803313302132143477793734072593787367829671337369107661366221240912204442750749418362737341236918867549329559083151494679268617403611956893208408831578460789594661305057844412029461403328423068726070224885097284574576180741041223952728719581576471903393700921007482480090270965518969262693432230617382252054676349975076990983557343758723782633802420702864377830867865180368739295026704511210214587661431574313595890133257371683319321308655918114631048238870630245798802429347374698971764102010981900583346181011919949779021139302751644948208514973985768748288221997169406264316950485049927466500650069048631904616651729323444153813247701639649548311654657495144808505635923123122532020698185670734467511956404913740201193964666163494904671436908884436452076150470509154271597471036531654585091777035658675932590348318568588810063599980274922948068593078845249280596515310004937888529255336781354453708462188943238347492276269394579272864247216725001890260607303796805049653275648147361865830968983654563185460684479998941898271694829786238097192461286595925276278890620127150204447387214140748178964906494997201650267865879037327825488972087941869420666853143593309123442135463816711550140286152870357795198212724689920278051636165541699846340685265389870698595541078672627795646189846649112147323322129692570619818127838531198223856899645234869149926928492972912829174124788483456414143165973041372808930564362748141003792721459594919809884427086825700203725664774794036595181478162364166906816760545158377173333270323180961570023605119858908592473721498326954567628478464221534927312618382820703324360810246165259400976267691830777062595660381105657728820065376454385744425629673819062531898377134911954120542924889169696823821735816081228117563435899457147554761382844822120879370550948946331008545173998660226292355781641477593275302205535406638038894523568115962794476923057505623497321242171695054676853922443732326970959306280739607586637784650510738156217491561923688049358683900966454916270355418736246612035749977723414135725905345865691032467938888752052568208184063978491510309995389982007771984514309017132603047774709697294522567373327401433396283424549614029714130939789833283821074207715139547408677235377034935413737896374889635610665577308351469133179495554563296799155041391082697150273111105987447644300961390121989285112646210791402877856674541699669508626317008991746221783038988776427926262526369747548938238738474557640319308134864889075843575775345830771199349256754135103029453155469924025305485742145424036445760430712097830070071839210057071370764413363716496434468123003541716810897473507468797205642827316674656322484838365079973434543283117492374535893238041088996403592347333951979330386099593493324491146018648438660585195558075291223389737816801100282382077234285431366943407930148947508087352246796834268968057639608450506049013383411619254944347125811933786559719084593453322867892568947843040974178978006427637796288487205459624148084603130523575966535743914277509025124419402813496777192268783881790512579387428411618139864364321845052512647908366107439534854793855845497767229212713576667298376487902428366575057816422245200087058227595074652600245681695254533444829509031976556836258734205433096234139840200390327486508897402527276384505796104278759613975201215930263223237556522503950122781557754539756419014242818762450169872803428844391093753283074867574677688584321636025074555431503448298142206499558566719516849300368968006306238784459946150080018415558565812874504060021641060901589791686822087119889086110640537824357225238148698286673788936722732967691044289118224430592744779747791947125457763983629437616200926272892216158710126560985352273793012643104709890475196461591204401705341849393402364203315923701196072703263145022446357435910671896594046331986595483894108075589099856538749418427421095261455045327685185970552825561109351545016092400058289687787928706119227717842532389444753224420445791370683637365129525803816172287333875123999714326180244401238254340057013853103955471893388063343262964838903401464311924597202595469158802657326484486341184210864289440379286478851191406002648772675143444803474861247422670619478343286872066095751439360299973542764367202676239028375554234657289727063006599809568486774637922961763820940836083788175146514088367013251987799749679082295282461398183331557174781053286925344953677384150166611936338749585568711654771850343654116499434639633701221265279302620731285991822925343216944060025856450461557431131433217371674501973433149396706788872450332798414302676093153850924322190610272191120031387450060194783389475261221069304754435096597620866275734240578384645665419270503867108541204469592456657673279640084578186500749843830508168595304527381993472006081853511160323985590503477411733170132301404977023137562575174154959214414366060261622266576744775092151120236099948791258148707769622261796109500227221498312324407313696422710418082820231017522446511232786597595907669377646630576628542632680435136297991085937355929096683033157017994778394957472906552665582460680693841270712980918851576020098956260246712226493034387698779217954506255323646953378711059225644990514013279084939625330319657005125102961801982198914084538782852530748735865423064518389167500640753357405533706332932685842452599438648720559212530628147317159770432065637285349523684174236701952747175069477996371798351879845908991704769207662082057294732073314512265589932830666963197631054145527579185284640170822464316942788230418382152560484949785443104967597171122360336752908791143660814464890586229109951752167145529919383208779325427303968951634592556568873902713459350231034574390664665734904992363139092056464280190274980180586145723707321570659675206239204099518224644178839819879040274438131336865503595926146021395479756206088692919890269544402523918417544017351190910254983045222384190140699321910069865537301867583809746269281967933334109541773739535244042813995256407079485958075518010498099888928308911782445320464272973388635657671238826866876589178541350049459127609932985136937310497281506477102884207086846448516800780890809161302373443584044626682044415567155969021517872863024114204135135472948870049167428866852573885602627019204043942626952825203520275380961677525593417003118632366079343728892407088020800801152125555531714684579823336665406195532320634148339933876718818968123626437847109014057888342220188943654158402407649094301439747164303800532242877726765769069022574068515666257988620506388319219686523998802093496388441060361558786462014399160448279431269541613686937614365935971820404467282076730689180100539935821846882814332743011096152063747284583397249470395350313014412285627947277004171059121761424917712335410941606830423457210423867183534114588465594641588310074034054943065074666776793844723617080133174944646360698110999569050040143561481517928006274628883731929643726047586932834110052884934578069574239463614709861491994694168078417048337483632627742930480634617194968709709985567939683686119965634968304701198111552783847508843578656201671050219557527814604209129372607550749567305600428153145514554758091012057954283440562056350745178344414501274790993064670217101203866530970876923444074474985661873749381149246673150189250360869172291954492819483391599135384231347047720317994592894844090066614309126160556993052804190429597057059195539795679271417507545620517516054293598660064820245511134472186495415422749011146565727823247769640314877319712873916608659778730763717365051165928960890004713634829916285570418537204739713614855487553757495715580550360637365539022934139907734790892688068515407430114832241564745285110450023692554710208734714625386005036657779857607672560262144496471872693140987934361491036979178411703881698794497882900423026729560486946214974693064246901251970370979109296893162933149258763147750337366714751234021826472745710230250225512746136261349655298167579742065237054272089728309319242109105086250660403611021671770734692995440970691238214696194592101489234591412092377461581273523209299567684948522483567517494330192372647698482521380468136064751222093349616295237257500567451193302941487560420761301585690857058545019343065064157203053214502854948400479114471512291428083329074685721884150643493713234366034045360425130659902404914511781511816618168858354675968290422036712022294322468032302828431579195844542872533928947482461156299784552522726891418732951385248997713558124133992414014319994128990988788183848288055215498551953742661875789742238681395804700663730026535282617562765995110662017647251213276510146985901947590105716640127600124404487158586901472646378681246908544780090943511975114201445998445015881759917288295109928452984953973081080332882664206978142497447120390559010986979657293133022152459011968617477222974026434026748418397620291947916975882928511282007612607489194346195838470132033977873105752987174086996495704002568584863244932593598668552457516318460581284171956785000031597041146040886949495179979973208634206776623674559833939387279764337778914557251813659064525682305861813402013487377363899211685850188076593048159746647926430205937193282449854066362216826651468042700904419431010017235440061538880696665766509758661970123660097617835411404365606479163668162573145207148995063056458652368678245729594899515671472188939674044180359046126487682262680563941668815479281373918405648142879344435180723521207529630667484914409537573907902671915675073905658994936678621692556767619698674714718609417349374938771425276940981039874643400532981229750701338986254039565278971471040724626073324013495250795519668682623760328056646630133329601079399584708001315468273269885100017742764208854198525835289060921535230803904243746499457349379768134991404679469657742614678466339907082528287170327010247942430539651091651986012807052447061405016682169304544424541165251476071453289397699652726692902178834463223004215933169372843052904690312555983455020925669757345916151517153264274162204830814664276493306323834798878183662729812378624532569622682266545911051349528412523208108299910777988582026894584401437024501408686337702139862512020895479863586754387421520223352110379139215608062382672249846247255517422045469280357203212522591030290779142649063489813755499950747165861710570960479553714580886510048975523833963779992190053529141246962711019240367451318825412390434782277280246378858053614229610777234162376079876821622864983048802344226590535014310813028729376477074896710439453497902855252979153950341989258219245603932215367921179800300320792504806425256412240114637370324870179103818915406831857151145654342603142199820700235192209906591828700174156813265794773564599557260509027151250966589789696436072060309282026860287109010037479356500606534413516982638799760979340586033576030027945458102483418209868770369312535609668026188107502933561046350744871404877675523875756949242201173891803716426919339761970776636247722772550426476582468963300264859588043486778812353291191641258634072882508747961934950242624268145029114436204572079244016368190741799530076173944330590652412980842070103981508625386075652502653794797045788517002899522058899308038508696996320255168405028771434398072381076290323961638849868364522934554845300858783479649410926888956354170060820494444768717089992760221475645537527728430454753864623536255839053639259516372615614371964901039959630968469999143264085923624892709937094747483755537311110539561527829226841599088925413207517572963531787509245334214802178721559645934043749298057710687589904328049117953211508254865958604607071520870944431283922368384855408409672641970370862681380266330325324437836401696031809531151606307537935355052516764763522996170589021539424255026334229738832660979634117430741837438503205708954781750925568997465032908953380079264136524549179853162486024298748455554208404552485077950167181147130412154333011316437458534797356071232043456274269733119283726561291523720242242990118263175590404129512113146723642208709207014443787002798949283158077585832639369862174732691364308794110307340554095584989890809730798790232445523214421039109609823065518071793626752819719810706372734154129691916223232255077612915252651068194228578055650610784201150316073037026342857148852077106813255169176991019396602219511784675928842849294432597979151594405647546884396444670544503730546120448697965165174816372691719036476473263809813369730701436119017959712922516548592952553958250559782828611277367939473246437718880632956233592453074846238987560160867009490217159018631848701080344437635960716782979191883936363806683748201672096143619585835722148824998165762036369663953507268402455218495742802135908695228329230776950590268083617962127209367289262285369862299312039843977459594847528720749365702299011096219206025471306727357986157031222029323831140031210807327361124147044340782170692057248541312449315165282418175914716344414963604727547084335373222703006001278944690797216943870134901187408698257650645984118987792126901993429040103639469904558457533203586283375902905448179033231290071703478153103054963925510383503731512837511048683974372199546267467131200736180177864695583669793456098930084928042846757482434299520253172880886557219001650607157001470175033736534236332356336072468541644770213591646164897042972217618195691317747592839590148079815446359424157305950846783633730314228386742177000711474589688835481415275423093385942020672309493086184778608859754902670184356449294803843030681831367305979275494853641857858556415964703253662358063365850465344225023398869741285455340280157868415409065612985694059516295856058145286606146351058166907326226206607940859879414483615042397047243743146706437495879918356744331920338736585477713903988866666905001740489198991713420889916646238214581848326973461367522366998806004249716729919871783204069518322423683113744049505966343879320100747136266889653348892880361608529690963648825945854659043837044564890489328441120513442620324183660740768104422840158823146995258244313240739068006914410293880873263751493109595688555750098334913074870913797881217846465969226864094172371950339886236299083205343654658097126107699125900505360633889414651782473407699835783792126048286271245923028657501899312357297457056032257507412338462908199478387764849781158314703322656243128024167537268079161242050111307409530731166903010225305849463390996239205100996953324384287854618692903697581100650477466012610555011840966476188802598596195770390166150413173306129396887988815358673987013716755262701432562903966687667927160403557094338999114916126167312665559219579894462087153640134294546514849103040619745378715497513365406521328188806265839143215511886140044318655374243419481230072474201166671921574053703143346294239374488801713922422876505526710989909712560627002220432228477858892044331077216894193503250238720517624613809775144024676484883984591701528270992667489037167608983575908660302576263577680897406155167071814813936167357187312354697698440959098942161084163494412643397365027004554314539556432298227438860845484587505727067823338009421479573837873395445128179574354286469353990441873022164934690531855342405964591322121166120161748587090356248017024221991502833144299337682068055707217013347703372838007471858914423910399449162525250238981113171644687697048853848228845645840460985637844888613869973619670903636313870351983169966430090501422358148146322032227507151916690734538404600610288996793690870737165525209509549708057520588163878849351361193688087598834102615523609957449637898885063195931687475721669563135949553523193688081184050058629802872266913843057280533603282605658618735748544812498009372781508965029805463663508398989414685930241998036826075959603355355504880087924865876961468957655604300529644078398875281459753490547411083837620217036824521287084494853107782024218139138359261836557809761178218800720585424306147944789029664464029321789999712418709980467281411289060880028100641441270643347462413787891659880442358127777287394513635379853024432612652390125013770576363554159467935427512774574410588985908814736056923685885954459267548585676638023822149720923049424683257714367892485819079367230453178626937001704710232574967599112375180038921325297680095337547807048947248469071386033618135557329487908242112973597147438399793337443330464072240462991970679328608825140806426877088893617568664910937973306517207127470207434678073410736721625944789792258060006225410431921273865633376123430624006685806822428543628895104100603499740969403196812815821731521756585226440297650548335998283979641955331888864978226449445128748051953654980118822057806467395773112072351572350289390827314429304425840888815476066968245885497878703148657915632420457903847439331303464094142878926824840480208441345112310012816553035072093330322705917550596390040542943744407254620207580647769612926490182672963633079668755354538176999499145697384902866109436705567590940175851707973081531114098167808208314076204805394290720257065320199217859718537985516299653601787543118493886077712843868710471805673630809737544066711240371933244412095354154584238568055927809502124779765361324718972987210069497569022157446156493876829563238732132940904750186412669846581257191495349939928104695685148043846482459706478382124338826584368550661233577044000544046128290956826589287054545490477295493158789495194310837772146915092313008262156940734415357766606236352229896836148587011963914458016484365181705811617560009690942333528836462000050048125098865810674453662571679945436149532289674339060699210584807444700888345522975777883143819522552804342244549117509988276931326210793197534776119000536453268955990416522851926669637682818897834393675305341360945711250372469172535690917873079797413279550066065110829794064162429475389255697821722753239874542147048580115700629704101186025315982815116709170931310169609596466363392575442882919900983744967807052507738730760904960490954085728530997274597417181439610250801683218846222142525423758860967857433506051589026754366115905073705841727831168448348145566715306289067948100173247136860770587373591997059089675604607726704909950221860594783475940678651043840661293388019157468280748393544149182741851447853954067180496505131307149001516506446743054601472867687491134418193664645145297277785166236164651479683665637713878606208949070539249123916870051940039907191947525254250959869407506380073229846707982817250206299662672872489577756244168270980335297068017411115243848302647747765433498685878101918531187394757024110967096929273258908957498744925256611177160650379128449171282419453909644224724790351981167305794918248543930006722839665547105798986175413521672019695644363482688959307121791824464098964191072750669945647581218127202487066141438228248298335974571172841656761902857149607335551323436252060997518653205203885798058920436018650721132541331462227968068791755732217436448529288558241424140291814611104469173534427090681107053920747948238678772914398111003948673288100110404463528399226523668943990851012269281717660962258320179612727320421924592435267324189291416258132954672373314379911953689186278365942698796132602419281658908444093186833152341196898867568242973683565298287519447838091323307998112892692663328952741811338280616926742620455532252537147175318816026562885723064580414710288425944789634327488669946523405543992059554787508893606828614695283507049495869606599907606430413360736293748813001904513472188429074508235205228965209827258039445931882324207581510036695275461291444865623760305277004515437641386194163468762705359606760285392383762306943946002187781963120672387841665660718836626421030546921418580916773062142478588040517011244717137170843739004874652812889905809100766979090542273135175779659884885501424108946961491775669380209923367601532465585146220697815906739684213260614430191809300632153730328138574278587967997916181442043025450256728650200484255959680461058042768442308360309715697237071098586464059429582651215448834527914735849378861993788439188168615720584978162730719507901888149242954686126432644256501372244831443556612565382637289619951545202240795840637639594332181510343109288829910503321078337160659706656806645504954398843495748323974616679473970442841202520237352070352151313647480234633138816123752707005523438091084197484078924307270133159909937890262498352921360733548586963881822546043551351100243053802817174324935748549793867334065689399588416110964502485405073695720243306040024236232057395508853600960222396086825263971292882161522679925836309681191350668527449035120189264673543943236890825264280571853507972609488863084773211646584667430205185528956793158402034294976500467249266286078391134819404267644758709092671027474402598888598163027915640291510985796827723231094308251043931370206890087491680585720157054192403772384070082731544125378569731348223264561811632918936161090988732283100913596082550952833631828060179122275311879975602059585500930356708562772848454941920866417981209550369098061831764032930723245533566292462312655638756719653476541849334485244438361964319477579878799374355826927490488517919244585101804919962866353178614773137622335893975266142928172895180024316694040704105871556472746173627006265281709309606971653572020037698208518106708536297260264287151427609977388842176052120011320944644411899455855773527843303681072533071476793216253794694548483561215294871497026233124507386793131736792535005063456677883192184192327250844196677560964805962560008198753386881453457653065209369381840002313831602649465873540367090741673475751461310623355140636637246611949421184970453023491272002260903246520772198730263517112831099876172212227033096253639265403284057667054629274073253331481329260859041680292436228723908499670304910849787706606532573932615066372326903335162333903041614794970286831717976838276516852355889430730738380810112923926152368839928119518639988276611379230820159298295022402777487239516178869788527199944329417083098745690577262734857054106649778088158399356501353232992421390468048553107357903263983744918966342118825827138664486689815117879649788739554348773645508864342081510773388497828720128399549708149705029236850722463267882630167589655289720553772861191252120088061661758652607163176876067822408975937977653683209119969515257768793757147073882619682434320874878220246717655538875989050572044810980074004358395412156270377022730285819455380527967176578435400803866758476898809343447773442392572663240028947391169195947720672777640819812077976533264795235054807248907673607423386474533259031274709063201718730479859880239161092698271209496602692257784030368695909670883780404473087917860041895842996087229599731758916946987679501181246132166109445475668547539060317837829870630797856088050684766387913019748567886142902887526771233131889081304368432133817765008126969691420272138833601286444501633664838445199670174121300779619615741957801610714825887395621249058061386596770797272429349113333850269999228321138493960468314794995755692224845922814074895407774279889407490421351672561870398420325231957423229841091953481794859855763097078221283276276325193728948144049580357761970472875244787504417748507660555167035983487669917018515111413222351984196706481784110231094308655756909765875640079623892900294404744718021161177100077065612752938199836632879572146372491960078880399520245211180466597048038340462303251447493770078379390937636557521975952746097710372536094939930552376017413713768085661837805009991067593896371752427385269994885390568555200380649943484199424681972809430062345276357190537497582745773515912260434333682915567814219209552791394412363059556414478765870953762610869634087583210227915754575056232099543918129034550616014053258275356648726991633178214252891861322171331327643537138364431566130351550305790122126514881373983066505897452484820225457256690395859650778807430440838109818396932653706397095913951555624821830463123061144978679376555507114496154402041108011511315625369629633546179126515603405302068443678452613386325894603293384173505540905681848789918961849893334991708538830806170217790292707484939852936756259131582784494205668389040373730023718510093091300147117290644399843402026922935833788985342757006258421669866088514061668254384020035151291431968186038904990158586903005210053807416602551137303388638088485967416409665290442208735276882944187059576424148538031191485879396261722284068868608863539328803551344832267791967560111243686515518114436796722734988972607578861719828008866242899335254264402788336443249465800530908580744092028567476257617780268798154791299643609412634509007219970324488788309129476193062147300599680221842789474915688797237029044057186739149155019299121481225734884573105581268118621207652264819819006236700874617487487034575972827120118880272103816901024908906293444234562866112454841006718435448511790229564297343745367111293009600767077455105993468314047155578254993831685951468068254254433201826065406562890185969420931277128659876682536789191958440547548278228636432892232620853624161646412128130660434827411472867717574880402146048564166659326264152077131043463197205915242358407052236138809164194017930097020911532871912558339685979997544820470080863951256042958606148054893018909587223259429365478880566777062285673822928369374839924808297018532517646174729236056341304948981662077912733254659770646280578086093074802127679069784004516807768869792220008671750315846518929654726438338039538178011118715630574997490682939948426474462056672848082257253362360315055036831511731770012153327628542943777040047901747720953582994403559760081169752012463348986346329764566134321347468870331247831229328008495781293377641004765733230076496117196772149979374263519147730662060287470433230546910218824257058977570113492208679391093566636826990024458786860873970714575145084359285237609807717065984572306761507229490022341650779001027102685988101138186033188551932569578785818013575822302957975510160483425066170613409933238695071217280627767368777780789567312208091883769405985885833409810393246695696466568623301077515111758013945142169711701231568204840772733885257981944477268966015448850381391750608813835921990841133640020828537919933724370450544818524430496499023056752704522807439309125010634986732268745274130217276608381071786665365116271972263625667398149586948377945717944377805190278271808260971139966803089388540971172260357113605350418460759207261704868808261655185342203948689150084254591735677092411889507602233236259134185065973602783936120104025824986528193036123143819751608483294630797640871596549354464326324094432912399768533259520558886876197341159710752020866323120256464564463152809936255466611586517108285948053280771143813824386312047944915236006498844955963149719089913923103804096426587967047440007771771987387718640405749429569540273954827698275795360126215879559908524606310243972507122956522053297631391508905482077983021472745444931598218312746477590964573377948856205280585064882204106013797230901321364404901093142376844998926218184679830524897246109280620634650272622132842086084066065307567276901993116549105693390580993760447350416977175503967718583227836181826885100400770414963348658567712653775095919471905702535316398509242331515741865783140242989379391961156403459084204841201163541022672536944073847720805181487610859685121923555671234231564582971743230331907152591785273780314694816577618593978924772162885322593939143907667583947835725881432143293990884021250619672222933561673663119601542822591894635041120993552289501615814954890916839938924527753376019302859520173071051821338387738038101382564304190869944407372582703972071718204178785434167229805488430077788372843292834054710527337352011546306641299412278428806516423170271472458611708060977163991273343159534608805776904958797428470569549677432815859498066978065962759313364994949576371723371900516140023322755126161958801275761051172118504424734488469692315075565014423517521054647903820441999303846797679111493313718807439425800546025692564130845981186448809929721417349826343618063176506053397139836942328527329132870966625205843985674723772918514973271839256916441320545242677555242077721657148011617787394355500844155858285852978107381843882039200094140156761850056779256769588807594722849910011593052223294882777566009086364873826909815638333439333926805268718396899964113709252819555244544700315489569389533129651651989603591562625820047404164440291456513736132243581768755134271213316475001140529287966508741770612510933682923479908305395331774105983307974182449412987369987758883307653399534581315178239390366478503652172795426006431727793561758845757765434002878485644923940766138376151827277247783354690079686784209490754381747241755387043216336586951143546647848717687496324971227557296410492729886342590770953044158233806409367371125894907557004867527263885423592756703255519142180192947833947749172601417663543252157658678340650723755959513024187555953760739980145579526480598885320529330264092233727876609674950853049332742674498462828241760908847535108941560773297150517676257757013591461855587351954538666354994077532019154949166892544664044652717904769320328823365067460642256625287755751839635217584466078614965088432570486548804412985922672766456704811032534403629064923257603742829155529478130954298146131154027220461205048809766115689509503073935019028441191330639995466566206906357058872931588941261691664979336502235733826072121400467285936899851226099812075948915247660074721202410509926268697772908927537669900948412545366116092414360799949861615357992807804494831551276810513091508818546622719835745382161204345301101982882387303365070817504198997921711023107343387652389559832990396038879790606325252473104630750689837194953572346305350676255328492901511568570746667053331699196946546442105709964150013639809933903790550745062706672822888136932822156907305231985220516698988058794854356531949574414812312937541500268560020386805439498116979738149230612620437932386546300082879948509285129062523137870005897739302492049409471145507611349596814649800886485857568607468492062760416440462491313009698104356102078240260562648223966026737428771512400383237663145873315334668552627424026661325926126220502964390571832618189194047736435576167143881246958796824527747730529945372386514037862591761962792936476694618759264998894137086554641712932959556514330953963897246781143069262232902114372437502751555669945301077319532324348290125391889709114276857147850167514536722101819477550063014444392091426934414038236925514219057107715868748574726840703962100106958000634492441391481859661682492959796649236438765646191329711410874594479390341502028439399674515471203471574696871962468045284016517787916612246143451991793736867266046398702509151223873174568802167699832101901577091162887066314081788723764485028936402697302819474170233304740745963249184190100562618413090056707165122884945396179572543334653879163563639032539916698336260369642229458500786805892825254645908581018566258420083636747152022551744646363155148735891443209854343758728601529941894411533514811544921808985478451114012218800660630537121580052358148247782184417512404089421918029965346731851827680710336853042674901066406069056089015199417581367895132008366789259945694155105287808039209753756602201973572578602082092380660643467235481678148388577150410662928346809211316555475925618806890814801261693015585829692055698281240094522967182355028830143169222230840255141411459642247149459066912688175484162859282199457589905274638369668781307923969184087555529559621117882923421141496857950615074855470639753986520319475897516304381535576179771670713549276956904706574726399945319613650762269552585997793562210726493715647280469697713296886671609472467304707649041140462505706421889644620938748755266194502298711534076150045193771841569097134084384938899973764828537759358711555972824244927424258274793400140263858163951547092895515726649462576910130015605942788388409328296039254303481693432479382543641363680094824626506007442607098927154608336296997371866644708026676902832046505105959862615763762322486877207621464840818725450472953016778495848242443132637602667583800639884298711976461876748708668822367475486574998991203009857554110079591671154385290899886314562085576909426171279351029296750629837071630631667703948559122353694295906332037921650700956659367830886333803452696818828437701453490923646290209882944224544756528953012017077482634216835635553928492598781979780480965104908469151047377728404719729994306527619374575075017768242398668217513228183415895742508487486405300022834723368149368364730763270551760317092637010818944300864008857694740066065227877471438944542376819352175715760347994766797785689842238698271198742171665967320753739315743151806566600396916763661546202749837240288186569793874340625429073322166901945183644233839558382857061840252185194243850280387379217894674053283395856189778852235537541953211086265729172486290588648059691834042402061626741698603878456364474897798832583063130607173461962967875519200062629244414911803458062453333370675489545309075047631051651598859920242080551012234458711471711096800299657189506980691660701922116191987527744315228773613696718149416233405889858165989130009962741644080541951113562505793813619030089510917323410087978079279120666812394559848401370233201073849017043420200544621324610707947895226663806234141538886441811760585111068070830587784450469423895048822186157153147624269448772110969521735805721656945125533154036192659343915778967194822324041297004298860034122518324848378577860877037875772888940487658349403673339624421718368601613465364146689859406857750950547394125447844834671544390572769583623607702145869172642079425708171215456414052357558463472689785202886445488809167208995272535353506185452407869216879214820357354969537656708127779035844547031129321913266962813182936589495356858772494838703013634775983053681172287914278338502612264664507209218854246294597098533028151547699872735235276239144872233094444521065515499473965322630269540733112878147540791865606812349257143761545528549178930953867916797193245946031406088623958629145425323876680501616915058276396162865282032775345150032836936689746009798443065149430380315277174135001273170519283803714797480159656101948909319419874569265589273439542212612959848730402078651915123212288173777614369760152585637986817602511841304944848586720487571170859239421265212751790930978644697950290712759423980920304493298833482887727365509778392320088362941741892376819159672082403626613232684430940093308804053668054286720389224735196968926831170680108098468039776600153046389489599741647410105938292747123011437906067918576452067369526418896271724440470293435777131256470786308987814207979862544010713744287910205398512664054382028992616680700279296911242344283806739276855925391440352304962003935078497258259546662373287279291397866945031555929448062203147791589729485472931172691082968885221050923841273396247491512260425661047171266328588800238707284666470528958285703325478014606080939130658225272410777355104619001526384190107353322425529468616053981213370292563952999935179298531811315272602665492986643325037173895204720887308972169575661171038972245318255885394676504420241629694979504515050311836798636314016386390571063950482050139387466454516940938491990921842749126405043251370484973181247243895704260791972095090669052708082559877040589442664396885255942527537003446766507639436251740165487492412085620874140036123599130221424000889900072782701193707101417709321984215267597159974407564186258656035715173470084968257223541453061666369134735221048344520102837998786091094465535388750808069541232890656656614512398983019615068030285163374716732379082977670031787723027207550090610687578617835377921207399961880535461504455317645024640866881834209826978945376609750395882731380619175597791301425041258556359162922056303631235460472394849011076519738023082869029454518821680881392679857858408268274428544884352198115800354392325505251556348591287112209435295894954967443333176422194291144509843573024271973489552243067569027219697832580554970587082703642942811056382230130288280188304334472085429453866839425553572494559115519672726400170874348001362539406516809149500693509973072887370105782136006963534708808245759143645844156245812982637594857339150548740147325818741203214710536714375081731989882700483199656571740491551957845444460708357796294437390027965653161815365900580027256468493673616215455425685396369863622300874445284682114623209442790083687802282285315833068158807794598178333324404427622152360110272418521172333636166874269923438767359719694954925998427600300013705238195022113557137004525814103811605207442465287457981219623781305057529380867498393061587636911553004388246273707126476451473151267724926942288586687728837225496792856052249154301808029044325937103086446204601184516441401160142232850325190106578223149894772949466249565774042589621800892800623674597097492410704216602832476751340448395677973622721601985731091498233171616127034920583662865565853889128580119001479701663025814061369903635856677140360414913430749156268734145853290504981039375364982908213833659886384997854308344762263904543000112500840696005808567850928618904725018952150225863980591882485400727301348868943007982344102648252004412214731857866935021821387418839601808202015178239562682850679882673281348438156952666270746968773530616986643200238064425235799233652126924701932432171733945491108480608429405256175916401333270302306907635337816899267293922334294194129775729442586464177253032019236998396765387251126571710173174020522392979109512433332590559114239089260514736230881185210491801719006591506937634662635956077259144808742613486926794285738830405815416507510373107057408329117450424309174026492898185863259455299385450243966598546189982624806031545961504685575868996387936090678618734950664279717451856878239022565120556814684275244670110217685667696440751056789378245061919956247630047142754896623145332560250388886105833234167662278055027502316412873123700526899078093481752713325521735472056361962610195868964496372972977052152607609404999783375376888942334827583039581926846922692345216604822232442580628803667049995036466306223267237514907340480765410973809666259536411489679914407374613987384310337041477382083420345473880777063529651169792512470755196960402088533768415475947585966874149275817400410076318915207606474232094325747694782814949847094594006626584109433216566055854585651565803302840301405499244210190451438438863739465693616455895462066565334413610119407110957417050613731312424051156010634726757493926690199435035470897855422749869385092550156692031179836789668499953636840855302979635058926326837878885647067831655668327059578080349483479119596354301274671495869072577726464245234083445735837677583914714699170699116358051825752364176816300715303792852435751233602527770565157439076256402891140250866970943822547167270103240456729637991846009503855857440292803006329896747056504821747347207916189504960003477102745140569549052828884053231443427923645133335368385688905901975068594109826876640366560737261616590358045177237272761390031189451036275818873319661150893859344112788566990241676354650076039821838969414112191913062881843800490243303321584344632031613739420569012144056352440770982963640056152761014894530193828023782576898496893513642319830808230526550693674282727290145260755427908179885748045396455598794267271840909810791532101260049761404949940663264744354558236467298302577900673921932347115664597653111098843341333478147513656321345628691586782011774806978505681584648418950337814607968422854650403136789331579788127441824284017308197424952058958037777803546838173786805547079940306746843878082131504823941719259629934633394726501375006551203186274733465795547741431901184414988103404558690881206903114563510093766379293217657920414597922283815305344603574004417541177380759706278761913109604824954200964128044361314031975628658445332377624596690170407003610049423714971819420896988464207863723495321462844760451448466059241507408522027852418268890701418833128970045390294352388859255686121556280115324790606152921533023499486631337305868761364471109223692225279237048815332409272114413782314891088129152346559047468864681168990887777965764286858865596174929683316035586793689753087552903448453477945604235010405186719034307276734848822244682963241872493357709633943527471205416673992446329385725271496066705335290929589232685858116389553968850116120026128804213964227915259043812203557005435837295133280315160563117281631645812257095426160883935474720707479003589226959089812038368161431172673135291743149983023676787571633353635900984155972888073632374160126772179103559470111306961444768966762600005908078560355083213000537235980789103590730421188380813630755879393415002953351019489309029874492418890807220460995599649567973390095263698326639235429499997563784251499808700418966612928901140986219458713414930192486240949765586929897624297315340486138303193464826544142770405242598259964813229649526659166141632104308860582155409884014396819709397271734627392855829344938798446784309364266577451463303426257926722706531814957102240231459262647318761932800712109463786772166997852799689282439088536202443783125582582886198972192526077012999287684877659675686550025385478534805921576732742114828801298915950202164805733870685983065736800514043173302649197845595454291208150239759428215693564268609577793811186460093495633463425637568614576612874000501874619664877111938962215813129481852346018040313696636778480655116592135930610547193319408439247753898853776581028507522312250891491547426826404892800782929984344572867518003660157546007918650830621088648295120434293933935240307965044673888834670929024807492253443913123186501751300277644221876104192999414278711971026756163686289126785682443429441782532282385653353897028373894912558885012264774785575707054803062942342919773965271555896659598845878592227309480264895714659048385063264589560368570687657944581608812345602828964971952379951259392750772345662124782996520293214102116302578500297660114266376818035177274851634926723163443703038941664054478948368906018441428348812920801857724577399797984568048771595656884025346014135496274523529404253957680703965572216031011853662276502734536997131433810421681015510530479920871473877640811572922552825238242726970132542965299506459565399219670312561881581568444034403746841333413505709375891788102574238520646597504708015215939757704839656926854840322719828042810043744536438076426046749835823352568567611133159190268971135426297257605459914709335227653075866696422063283966667424649094311991464260107151966942654653432614483071808634927524973359777121707162415007178123974497995576102099547183683269433999777372363471113133636277439880669672895179765910074838106690481531284288833658278721268257156033069187333265011779429052743492642020249663863867641065560750855026160951497552987201215587639545270920082308320538454924144379233688926264489591271124929387033521594976909154034112885623587562809699167295670966386312104393836171608888075977957606734995635663188171791405076963855301579713248407890050524831704085787704749319546021747000054239680335460138650196765155854269338394645356067572339837189847982200270303405133936369640132844057960760982792894488888905368937325677406332481009270748931747390874862511108682519896471066850712383852712715578124947078105545821342703700359017308159857938914883312746118860461380651123082456759554023369922983182802477848075180476861709351529560022416374432568643169693594721759157786392491182292089273866734844924519200202805075787024430609578508873738779090919948528063524587440813140662544677210765120175487838416096590573475755264389300766389897159847679396284660268577688359276213489138553955364002190906278093941154316684866064200843048167269636422367281905028027737375665250630361801773147705426866764588419642832001254872930768352031015657833082310697954188139256152710360078166492664733922614907078151039949077781672847056845480624078631241315824168778587562172537950837498910241824337384298009191358733532923102198224220919158987480269398745943812632065308771716190425468825741615904749040946784581512788381755298098731399864335953990017371414225034086818296566559680306179591888962750539938978826867746582381713656865251115083589796261020473465314898616433246331511542781929688491623936883704954803839543823889798871630552726227247795813667186722616169461987970044587801884565248874817829184360451889846332697163228390580609393259179370145014401198429528971051498808516528633125283884527886150622082214725961924708931060246437262499225280020303980375893944974265931330978037691668186463782657982195998598901305367190758733901687491172123712537445342666742349786813738121902195584729735529358194263982204050103324382751336286849130842575489817440995360995231574769665840697449962223798983838919492982729022571577809238975936517376811593296598890643684927044609096543837447868528726228730477153045786438222890490413564198341724529339267259131726193137263030116976733926524241241150572731684613695302326168132909020743338903706316300210914399942686349049714922241577677755937766878886525383486837301762225494830498511925950832122185682598116418786747051976284885516478318044572777746705327307841141124797838033066529403522751617090674394811960835718581616327640501125312648223499424846662482538213541220811186274363552115616503068828295203324650645150066620064584330205089402549350139186032871595316729771705234748949428463711036773706192829613501168111138744397058400720840863629372448918512792607051695741063282523343633202681644595633521553706786168998905321400582845246772774543134964323115123267075101995726735074238178882982001342592925240981036309962775963201366694472134809285406159417919394439417898178603009228484111343865125093265840060408755433820345357784903295507362610219772998775425645722605557904939377955342416559320498073208378706416706229322178385691478747097989292827754209904450979951015263586996050519918226364261600362102906489000871726454061404418736497849918646593226401753608596591855097567130606394629962446152557110307626465116977801159598381695961554644914764081045990808646327777199336092023491828114490540627499749079608818177802305098538004855984177814471093157116197345785304073657244877938818672115763887730572709526778108793748977575680233846353380964131089072635438227893993866741381353729770236988451137421579016009304726857523842083911049213186823335502210623474476557515605291332473528422092272254722510151202236326751874457427798180926803235937474794568691913676191099654295769085946867613840411154780100517590382250765561454897821392328101062927453548116797534311693893231593878888696718818189860280408910022948173255666063517579903357871231264880721199183845441163461543955633137593137001362690698902996615056897223519293231203862006117157701735255253329110322890753367338909590957829062196420278359087634349396920453389931750567061715365488588279303282874870913086585413524293297286075050187671359532687149191587231686995049845389721894699345182921942842966262482424409712269499656725861623335056423653654201095017763682740511350180148387868730817162754510975265483347496279633941892610938946472672860297914087754192893123701600947376211406382030063482410264023712052983878522571114779551729925420736552819476923780563897482975468578384694293749413581097839872047559362785676089637996348871462903229240378373347004483100546883120816111615104231201682899818142182935657783495544929010450018810335330380357061482085063962176536303570508131867084072849494751641137307555153018567854014402465379113719983620843465095094917949202614291687508197802257446709771366686923064868353692912231761964759786148516949590906080883391544880462370283437817474509923482554325032157925126150752615383723598449728337544427373408392109478853716743934945169660646398805953498527651586514670204215438692268700471745746111243561666454247627815607583520721756821820829256973804058083409326732638297210428843790519604711136747773744725467784675578690111323722879525362473574149748474161558166730793536081257795204174945053799925440105166241905958016931447993255102913048573465487390004833170409972512958213554720239170097188237629357561201305000243418371849700554664840425251288722915635354441891721068412206674597462845073923714659629292789076603979052859468170679474558648421070548711534366577439527010073023909796110316194205005968710456794044410839021182793420057851794113441503054198670751341205636413601575755658065121793411148576103938666234172331912826565554745594228788264244344226931379629189606502395675848383426260417642310065644641153669739669244990172802629934033445833799179004466434956043309175076008840734628144741712930589232361813828967084162614321630563375553822958508552385975531366679140715671685320472769147753990700814694058194904068850754846425298742362143157900546140437178315596958551962000942982231863713190672716865775981536642778631115464253260737756356111769621211568762242911820814958565040287729788238068921385371975116476934957166589627566757492152603188810725715126390170218572519787644131611663347294235608297224547474764226103920789953621246861289722090069457494549708856005063302576040042969939934375744671587717357183856756088206095661056254762981635883860086627115284795842615468791908221211989392982364967908961524331918789967364112047498395917793463843010196128620030734727645088317807554042084972466054969623736034640598019596102959250600808583022717013902523602990229535359037686153145037173510676339557300272352421337811534997700256311525067620514860525180481994358993134510090665054836399414915148645621466475561822229440354875499435889248406765664997631371497818441677686794398957345764262690326174920972362133111015144263618610033993124137598214159501498499865431267116838249567607346395598963113164785286444433485193969014728842868382857362908175352594543255553860500000026464073530844128236003373786618454718538658864003912789983458482261096981224694578592989474726424415083396290490852254338864544831372203482036028286325252089989860604746481956874722508268216744210323064218628943370777318178131930085776562531242873346061700849146144892033213865559851726301698600554686331901020675629311867859322610162651164798576134255827254294539338277801632552046159942119197280827318377076379108739451280888531802654696980263323674299058654623830746403816879057425433724961804390782911613707580656486750239758642464198783345819535332967986337212912370992580422654197359706894650973899676755211090114473444793837978851707452328675572702820245029028520885741034015718496304615424438556495157735220975711048210676291655315726200947560545544200937049878990946103794904263081780352308727919654364963596463999691591818513156422803019971017530748256862978715019671179108643530107903585851215518398309091222283602699994274407442177870790892045012509679601963602425381484381824150315883711182255240094442333850275346271008346463626392342615735029406785807598214286097699346317698178499309752491004255066920351524643651128689959895681414864124812121547499700822629491640132390847236436181278833840326771353609764089423678237582812380914400522974807798446319553879969763438394098741765346914987253944359344007463799362061034656164883345174171246085133934354674914662645517235118700651327280023727392779890126959497395068036783924728838018795839649580398506464266687810800422753693720667202847972653672114231646595014263537555515607479145904187860675793172632340288730117835406021125014062246384157479996243328315205462423224671140807970830042359874252848305384218227512314002924674265068999777929708873694340759223637552215530478505400742302425231366582404422094158670862688037918165088564274425663474413686088328396099305938853192004833875565728856483024165709445291582379024544595225791827392111906279208989282241758047867312944183872991456110230610481673105547887154361427602300216606575285535227130127315187366893345672726490911831664788477167873865431547611115487281230082171076991314153172673153202382255105203820022606362145028413887695162512375381642288524045280700580630194480838915953153887703349922756765724006511987122212894640443217555005140538074384315908727418585810727708193868368767180383524063331683666386682281659929639708457309574525086364361396949174394442863782733303330199222655419830657704547989065778346516236296188848723661911451886448124422685826275288281926422835986078378653963579902596260849983249437764689231035596324729702667580140462160767560044767622984792196773722316676277326043753123227827166231005308581047674616225636698814732732698516195364179350610031417176579008369166829538218072079463530829338066135635427815014701580961526736175961350640935371353354137371872072213499693659427778560735277967562576591021756561831602194818644644562966523104807207126457284528087717814064970003161055808547048489611515481704152433735135595323513296300069067175289873838510959580305593274065293272156671685103396039206987186651392434668090051608779763793499243034601453578978480245741544345767595968584554227307045251959318750784599793812215330457256673252847327028907569385652435743451952026278821201715659017322403963252330562291293686808404448040928222409053511820454949701471397758497155539598503080462688612843276143490229548616617890516044913285567217198938769470345104579906115893463278306177534416177062624671196354049380610943175144961142763251561777438124754153115969338970219801461417909842201391166268747660729357847410085358558082779569312307183945156645142303148095562620908175363107866901722681581961023206587153763309872680435847462644653600666488782178208656745018872171664749636874470312313679306095210176187431743597805140509824126070342896202238337606324342470345962837243680048955120538765670196110754764647824349694228615092509127910568298965877175391309240622338518945339713228760872579942289301991168030448484920239152170766026006932075048702653327586916273322876519019353672565994074007035679913982522774355373068013993449989416074090573468946588923097167935534146751172082429014797078312729723335991486900010317500293833319005837079076272843016994352064889669673279603328011180891327819208415376578355597475775724125917874756351452410290902242407186798669870264870125258209562949578990604951779089739348047791895087960248174955129971313238574816589691590487062512180096217981030967462385955120326429033214534131795365132847646776955365540050818644948922520221544582723937653564505300149216199631924146269504128160892497126793629314527271426298877267922454175320894752885911933823996153487505469950381840530538700717339908183918567012129818423085201657152992013470948138413629788489495634796033618198636231300605653474253092917302519637439765006305840136932040949683588951456978204088334041573778076999430585383346271737312039582225657517778830351534198944596092229312807788913554502111992574150988155529283916656918256839210735273880802322381429572960172330154099803574782553052842507864352869497595982054628643897640989702415875924523135749367639281638637335142617353273889578076839327386704409367265407395805024248031719183918442827287917588970776503862216469655326692674476665708289982234335014938533709514756907072112483637990342326477819643907337066122275778083378840811901334299527655844770439626713160732573969222641828583807826089302706103512859535104290677557099657801495964128664371781141115569797702556505270034705364228334931253482146986145352983713609625266503715682160116417483346069743421446611826730216027239552059693482043009058337478758677574394387030032173016643405701300444250977371511478902678785870678904675705038001844973703467415374485334694264076669965327170253796221493170030691481531660139393325335812561139722406867204334646723864669212482121219465743838768073811056469792164643904630892808742541382114492092729749420681482016628881407573103157629805083180411767488259417605940387455947476866518174566214453741400795385943960335771988157082239092531494869765829013198298777473350729791188027333303787451648505323630228601963027188799710352613418424716729299184229649083369891314278799459958195032256834991596566975128520489510162974574251237812530294096321906924197355721125306281096784501514070546131284391980204163855538737534347873784009101717837906552501293864247069424167901477577536090628657938445095379996950979268393451212710804273650529040116152602029078723951397015730427082588356446427853587490374871663018489753531940476097334452185238116403108287622605163997529480809629874698358985853799539965957454434403242801341587951772349017266576606956968529758289214865973925174490054854661184626052903461797659713645113558872959455796421250023046773134802009583008102272563300453708708659081640651137033475343430765226440979687939232613549431382054404804632641133708926092643121341609038823699945783248232744100822361321159224941577704266761130203230731879564924332982531675416204141912114039408833625408213524126066581982282458670426994785810519032737953465119722258323758054868252775225238198459354499188112809031463490944538147732916948498903328497277031593442414251592716832236381536678537738512559773626101561026887138245219068275545550462392056516315748430441989103187412719969743829545361619543755484983227934095206728474486367079146464410550900283935567983680184173018019842714082582679479430356953013017681809618482267314014132292424679062889397792668807814803110406100778276661683756725072376599417077611647323784799728031577355305791129562344530470631481467602571802565793818543198609643969982160926841488965342556930798601146003717858124266513779016140605355814567044045431621620248667509346435454525035911453353650614856124454625483066818917673244714923062846671468405367317519713334428299348411924938420336205563134485455093074346872021147685333492502607709786603669584436674789426258919372611059211760801320771048832627755843724368015949058263984865990442453590011463748420075738999540158940790260202609929240709676233263446295028189225299295771444093256928481022546269583558506492089210875008510841397995311634767165078011158964458850307150031665002338699520671960549091745802118557933271427857826943862352941276372327768692889676048222494678148874204021514980360267245827507078455279503376676637155492336809811955640156459158141349567671270006081920915938489910130839723472672083912651728708416665584489057831662927347648336412547806698343753519048013168667398409686330140587908326568173669985496278937853208913478102287650304929192468712797256289720422126942983896761103969883193797836826115249817767756646345528042019462781251682090461799689231570701315506500084516208182280169519395546676900969692256766961308746435316257875031722794270843635629686179830770348743913036272648176006827682512089957592245451090440127987184537348086632019992519558462112594628370777735384601564693798872409547806904695499348156771673452551095805533531818278507694713948426388284655247548027017691803705923713972113510733060407109535205796046082801183439094015803375777304482931553020198583548175430253558744232706459567685059445548368930852805866991966027072161008307038035887934329939282504458999371206417266498151489514940151593836104047113290429041300400090108109026446900829403951951101098683651845768827403377787960554289852725318767171748605235260629680966277615559143084217760629142115170045412048754491478246938235390777205897942430583119317087385664398678471232381374802811982410184247757386423414048865976438680222736265075419867992963259416910219163719041651155306167907035830601265765248393174690849799526297166013126596465581224606567150530685751516443578391345536917900854167748593109335610802362602508966320328165749471082326222785985543871564737480401953496795425323363286117104551519029290175104921992248990551249827839847137125201828711294439385615381944509932279823075445621282002634569117982338885186744766026366700727961427515239774761929624215324215352334262749821111279618912340317386308095130557567964544970342090165397184584952463520155309755870926835391109952504798832012157734265151327015891835926242463639238547436310531315972906882931945215953733279280113873631841685763380490554940775902260541048603663548843057079491233480530444507694183219003675602823009164695564362337155956826833129133174186667098530591924238868064236895779717467116490807880957425694989587532265017540709223911713358209799338970134433075548016020641693512644335243422727505162433186646181420445121711728397065813296159256682801185958275164930771411593843150994730303425516281651189224947389336509071513439559561959785780754219155015562677266731990272483144626813310646601088472331036868593023212204748794538186266955229489788400779604175161916812588871667847148426120679387829855658921802961184011157942917874737613565613422473594632427787513604799066233811841904727220518015397021379663171654615814454324500565143857205869446113507111923443451101266911609903399234697379082365467621487904956897414673987372310435979137945299156675826452424913660002696973625902505139585586781412914962606003300752755593338495236508005351062479447720502880172220553993597215632643390685841478073826723917522160081825460311370228569065984229194899264716467364785175848120284254739752165967702906656456889842412154809009546548488855152430474871980282655729137882712358119589934314022879266496413240013536314229245088721149608821351253458638334705076233354703627907281973778397728440689298366108185632802733546229229985588283083404308408894617349104331860858871512314668478200238576268322358740907728901898576721075738688006710357859981752548174701278006878196692050134630299782872212816055390943820151403625702125832387051210517694287758475940621254046374701756469219476515082511566373694715113371616968547737072603422802995595629704934591690743717247238122138174794098138289422842468441689455432947227101023514919579021024317806726528898879030187967000463424495487690976951573086966713452239472745934451836192970936933499362030057387012197092383635073152189057354993451957817163068054056311609763218479305978174293938928227753626168870975289310359281146387300529030690532560684858136610787661836309574095614241333022019508871510953658014224672670616660258598511302966838273034618947142553399477970702848215915682328405992738639294838256119042570310541270703886978240039428990796809961905654662193497720832789935255504970487814942075027091150857153321149210047355608824743259822776122115246685885383320074885229421393456547544281665985909776300450843202560187348941689366412774895567899399457507637162122708080076598302480501965154288158079472808959522630419405893970211440120276842588024950815552310898310133503837312778251028806072013536155281050914756169658793158004509336547225824081164155919390108132747674384834723780016195609951392063011726737662220412496621100876251799355091329074996096105648650960035572848964530590868033449850231185875807821964852406377751381219368741435289516602812969327724962056218046708190091320654012989097351402706750815155552486413579537444315473115640883785514733014372657755452591514512830724509709283353141306694411160455000444545255059642874928332072456352730905391938298883378119807434380528446503009764843310267409771543037111358332118479407632771914085776607822742314766790801369234683289609501702959775303595155954128887399501401548424476403766823913825412023783170842789068092671052960043241822462710543644915338996239439191399453521298351824944634033366992365149742141382635075313249450183668060183948257142755373861894513738763259291203816302174891418315807084127146083648884675933943823409794481707397331827534185752884947993831887303265942705614914670369948465979976148979742600870146517210955186443416244992426157242774330781779036228193914220219604122635152944643704872890238434377252709713423052086560412178673771439538720527428950632641265081261321017535487222358579730350190595901814849278087148344594242811752659700225182869075996418610593706175413595492320185678317944745277749848127231113432219871760950270704036218363525141129798540018971601537597978802936061076921871713661399495924686988044921298893669483058121431545355167290700619927949526948787904584761262454020132104644499314685573782532390984196459807375082183892357585701927074006779224636256274377490560491710950067047996155129555101018131333718924702469537453129843959288732397860243272891664956013894269900955747633876632255756451908008524506690861675142899571945702139758112990619698231340541199612257399043019084060895947938831014323901576997330898906829317637704503942751345305354399045267572611215010508844044261619572017672466487080281055178070948871968772060826200743220259779860690438427897968842273903162650643054619294044386656163360033761285673119615619962470956673693554750352704979848850482290901058481401217921163197398128044904107850237667470474907200549316294675317699813098450007666283449191801246982081170442425147461327996695820733057571173031199045707455399817111745107478706451904572871958332605295780194116243461506188903629190543961393851836651575732720411685266158420377322284532007740749927043007558471746320126522074166785299337716392293550723548506707988912368850422851518152078394515584198570297993111352401903106472708556313654924039537291572900798931934346641198068943506156920760404905746625023841386396782681293981069171735591239742392531502652010189322773279831760212625898424492600025101587092239305780466781933739858237929536206746240491932187675447752314892460287863604090496964911067321014875421314552715408759297987590679373587340452341627503675120314918561532527275846662088321771727706809218669191702070982624802948572730346739833511590853299503271721445172828562280054329489572036776930602267806891699149111473319642425046314011421813829260591665403501051530913750889574556121822695715203738361041374549086276635865224149740278309330648095298517772723194765784874122344857034487378980640152241212959463234756799629874859164975598982302308252260382183540506509825148487371041981669284803427262962278547256178820986532000080185028251883300635708211551150423323311364888635790983207035333636803083375432479541062713510936510074077799442049090445711043415524521346435207340795199040735321060610998935607574646032360730806957955045572465244188498591209142287114719198633754488659781805350575106721802626369062329692487430073854203827380087334546727812176894846903437185937006269656758346527132190441079646063135576979355007534547748085686122392595893395582513438899686471968646087538540793159662846304814857643177879173529019738042832515099072242737264095557105758709128950307790111069877839842432232038573147715680016163122467337937829750014030681941180480202261212387033773894352210030325883660028446390656644228459186903568726697090777015115487179966807500952057261094487216781024945624448284865281372842525969324146104335601848246435361485589414089429438644127815731112183644658172658370098633983681241079569111151497285565185402704986394800578566934795809917421487138613187243044707420527756094747215235845744823600643972408075781017858984620897121521976495647528572819011912704574843325136856045665493990391339648642362339680331419484409141025681760163124336561098628958434029869723496344767929197738228413886974854789645376862762547916049110916787960534838415980836257783755412636483914142545180462699326333015799259201927101688791508094437374518086333597337869240312437866715216242049476473461821950564221488027752844452794429309183208162048500646153985500711631152358718785255537457561840890311644980942137701370851679983741691409892542444163366852595485114432608406326827518243931975765244425476748959708067822919045928722095283029697977557465524735748366734815704712296303786952241876033410915815768652759833038789240007083665949054306783964351172443688194769354908175012326705744124633184692697151085125382785015770747182721266395038628901752169616587225473963940192690005509829507980485738040153387640831917662602704450963805278324331683718232778908215173330262389367996455991861195691009378479416465558050577319150424829085570730614078690357482893849440561051839890255765134232657001999405806149948390534002388275093385150173353069080557063235398922709140238374970458254502358893969283202616972096066998252821944708704272952538296599916343127541726982472232260826988902258577621728333580441273955327895389506390291532074342230246490597133862776813591392816097138726325071089207900797794835056384010801160451080458232619970939946182191926466620382094265705936150785282993325883065174233075920200738162838250419802650808751962857052997445002730979292423967765171294513144630965871372039424023617719149855195025420874748661930795661988636977537187584898757032322894794619355345992241582787190526597036361316539222398243442838379535405010557450087074618015171575191162865372577247148491239627043774575875453576127318619783343585987870792446183414027701021862478036039163659339427133153936381022484561087338686071995166151009890468900186849988851511865822633871900629305834158143810694619314061955117308005593323042065738723816025688346822353155552560033590298813218066838319967857268586839885337233343582483170708214861111280556815126503152952868020254794089013774032457707203431067482150788383800299061725926918372048053868470326849358663293796383976262874004016903398568053063881850908147155630345633791181176520576582318672669331787027970105649491912309372171915763746022664433686572870734920966265556627978232663452249308956012349504197538104590102674409368255440998964318324645692544549108625004903480472644392033274553985338882547122542081194732065590464181833799354551988923586976349871668771861798869820856165496817100983664933071924865049014003975825036451578179649010252488018641241967649385397234181968688087202621444553378641799397402123671860848382021457510302443035883217979397140901930212275526824797034688670710043227929756291726414072325310967825172829213761219819433823204654800533953751603024908157583797576739668195138285203872779089216234293078132970190986590587879243963778510474799268773466730195153150253965421485295356698193431924435574509466083088047438693057725724348366231732305575622212129864201990522868037756572499928751499396861031850329040143972847765404780398816574825562375391783899161529975721719315281237233637217693059335828705323090045093997006492443951020879520557198415336650970164016800534511542945383786006786705130566629000138925612793360354396217254240321696808907751285684145783485784146315922314247795713470891799046661388357191309977791832174927256062332384310979308404027776363865934069747467131090209055508319170321958506238422795433668979197916859699481214478699492972712840843437214730255186693865152711444624379301002213957631000396669273707405770155408256867626526068976808852406700797587312557363634072174753677268215695888125932376717482455188184921461471273476116928724359745366950158216772933696992844074684442359824357072268052193929313470752494565514933746007089440058378232080001168355676039010621192690765188478190071225132117717326251315929580407538091915644755949698946136981793810043750606709699085216423468221396311171465210404403054867003073349774568093003399918564741800579009465532308748262640806296281891784389099381969999800567567892184927067696895748206055472395753909222555236468215477147540649581202116601927781176953566581437754728133006525230238028636326764108373296835481597327221829256163268742807192471862048616781779185435822675725454469873635557773425835802552968381915498305509425273869856853062012655811052942191374009927766130240509253657692980187481088377357638729915146351288602030325543759580493659402756902158596290558635434928416403724353073502871840847420430653334796258212068805648190901090568548983984305244772433112991802123174259282352870169607906931730719102308989165885558399711683839657445879110390257293240085025328748549882538948045898857399087492412905682123494441229053083451312592785332807059422209823280643972733489358749478212113851597252120425631854091520696586993946754938861614060322973143895701146879781145000026496374495433749000428635915664107403786973374524638109344839934868284538968546712877733158071268157451499732979657195976393342625779375341835535295146837162018784819254874552200610071181382187043841960285043472862165152824116315783432115995002566542806610078348833356376927534226096370126835161368522123396053747794941346044307653014972486825585572711638676164331824459041022491295391126302206086812893147194351129031979265371937904627430648730401889639754569065255795546145861625595292109738670572868696151018829746112490856986821110318589431528620295392605380673895265480578382421732693347334518427542543819716773184522163394306555030885827588011521291232844566559970767070191011191508368150751090999507491325000790728369368743057525288711574625525839142582307918526357439142767066837952341319785431053739659224301404182756245182869194799479026651924189961946817282319850428347482304087464226263575597353540830588774154759404223156577464317505563652023158461447396372491254451898283789630181668760336007172482419782452975491736440905945679410558814111378711583365486511518737433049954289128586365853778881512774192249341217037653508602402380490259610733101694418280355663936462518794408238568171771735209222441128661125029904237631748386626943721428725894764275897316011434547795546964254996704762269045098075319951142023387957617565531965547055955118714317793632394224018669913714993430954701787276392308297051314133555873480134094421116075456998335529737779020351402155357161768199867119149052587214874149687001506634489336376569597771876172983759431998537096503432991065727267086774261929569375710120998748452629888805109342541307082037053094673823723695140984606083956605337077022484667418846479393022112540233734744449374061964808147125216276726987053508107876821126320564459015032704950508606382112992749993627723126723206110748900957318989602917211091824626299727786118453327903326866710811137410231800180761653296459930446942845608367173084477726123917094829410276781791082192713251518976774728131368905637684802957900919923731015870555096157488987454788228928733134921168549725914625865550653131464078020303005152597062175911373859405172935618941381069526494353246907103681681837827910774601366237297094872542608917009094140648028533297222660558551951577567168400255399364360407244521659887634726969838515653199428043220748510717352141489525072302688045432966934246612722228844716489399791836254840453463827408183878092556668766994150777631309667115159472548803923128185619435175802851480692876221935443533832982885761034471337879586415697257501647526928884440103447648630398270231814810709568742218338769965901654677008076870026993727411261357667905629207074128912563339089237875989529421311088592469585955003155346554733920882951455548035691448871734413625518049244367480314177790987151557291504725866178872329705974867351005349241046694520931463876877236987633555628028124479882107893276478772794584429139491704147900719039605897084087603791118254211226204091613787823713437985414323747182388250584074032574640065879467802223758581383569992305695843998556508580096548762306280712345268723663176414438908340575534617174611966002816985242107610750190178620375716714378605183920232215590226497862599011679928208845834684799492949309986711672606372006636248282521385205210914773696207560079728507996120273969109744878983135055296378404600653613540597246714412383896230889278706111543224977190320036268681325999098736467931231888543578428656838430467533147394783588305008528096380221829942733351394662564709794483133068626787446806147762456778045846677086647684696768930718117221482858776026479259514380596836215202424276024785206339910159689464003221697797685203044746783660763184286957788478542780896953325404074108985732602022909615233648362576837744535322057982009365655019503269646709647135269882141519406387539541074741282306731688008093780350867422753004550095788156897084052630413793372558293278348531123015531453322930943021723342990565014755519072913907195088506187705194281718421660695931890410222357512499083244633249355197437345273829862137991778057120873250096273266571076588086220115980772192881173907733148105259672814743316768894510156524760358413536328483288214155569519154172503352107674614520066130079735035585077647751841438339638715902128686886177823259187083699298954627361819298663124399028017819896968308896890781421732768081435741588655650881922671278158845549347142560489939776084052154207959752199535955202919069175231207247616324975408876675242107296671440987660526994722692002186496143294434837928705854552297047611208526098014677473875971490759019330456189928839987864918730644585045665348367923738833010591677647879152661366608388432480473038462140449592217929263089537783054536690985576293751085028514530563257444003100477765807652469409886990171080841712144502267324104559535255130978408300268446618521805707498501799804932963208098675817071832845249697817338708712971375528243401222323956703016278185653340588151227861583747352776098149115768952552693667165442213022036928751918644730512331231499191049202264977405044074158789335006726200021140524344112418131286051388839641131436170972552338492857796688451591152147041007032444046227596823294048912747303662106784916214323457938959482462094771203204923204865466581728130589049480222017488666356705261936675830083970026540398612363761143934067663578384692265089104761675438391355344872069756186409398716258921102469128656733851014692992606284824123447085463406625232324006182560227709928606335319695386326490226301246688612803822070303196250006614738592145759591604701010660819716205390112348682390886019850829671487878923344444809223985267044284064968660384260617637524835463494791894596981223904767156141170127744283581159117421806882136544477480131990300863196180055897650079126057019760787506526606166466091601010915310563184890647187493972546468773253368555415895510819954496014522679004797145910100323791154465664375392816522488026099421659295040380788680017443468788369522840771285414003007342419838139373296710831143638536550674417142060991901761600252822485315587511615984682502157873300755045091476731817179148996959671166238018297839651223069020157028537019358608790887904517196238305012641391453810218616367275121832804524938796988583854001464682520389736550613333532784010516911195068466317460016697231463024627213205517319849122198856571727782040820538992584741527664155540729169307074676683893795755091611407655607275209377068027453450989382231721348788544579820539402845612881304155467826782662421829100478215499127948545994687450996387277190712092580160415829983465782377302980643197402906833199268738681902599901516569823646358461309454503616354079697511879675093609963388635499382874761767526829608421478195223426761129281040687189524484438911594319030279392755907735365899898923783812078921028966298776331250324974315800142602829282072170559770999843085072548953682178647786683402844939602296525728791748649292125059006160328606952472134743827713073627848979670386751611316576833766241676349154172819464821924427816569882930853829917335678197167268982426943460349095257901941371482885659273172893854754358115451891187814011510775721610087090643429733660066057260047236224965047277813041640434551036984170460768183090192663495034752087343132630116074666608858520420508592017724431201925867037835063909851193628004794314891824348323726654643663257512876959568513914200876461451296287259970647564649490634559894295786951883672918136917124239352069367156172207019875586753215661848412771343351371319237376566264855867942531250164144657267532282397714467737693273971323373225308683042100568649952354636643196832563134801987672506178369292099742732978675070064575493522906645900009635901435514534127740632319815332638808050202414776918389808031895839442953995080626109632624569906318928005468686365073564439305032060013262251016510704793241639469238573027460193984012508969631661435941710450328020727038873067368821919540151728829378275923200111921186771204085274782721111901244289155528553204340182529892702670490106483660873336955219128654626771625796347053416966200296945494912620492049887161073688475761578556858078573849368574695543918368602054063600563339106235510023085040203130185915897159875227068289224562479812809854156840936862909099909839036842666893955054945911825817306192073012435350408890583962859721668797906377996066980060504591409479033440403149673659973218316289293002101704111153727234813319142399212748944441073102807968210104815959956842225350435686502280475115533236902791207156933225801675603478587323390899693816437327682237967418218219236378568577245243186111622773600660608018548257387087577461670674534290837755436767375105330295549456467867569365584818674757411846584597314752271506166428935742952468461300633939023319834171393559983003726057013196252294533109039688228221487897882583751843382619459575728565325045799574930787297269736560099403683730851199085867385116163505480515668939696615102550862889172371762987319398131677670258343416931774783727958226140586154795175165139561950449223878111594713679012167149482094630925610376407853283649328342876472887217125127905632956248390647716966530601731758061148819962556897393970150806305333995709489584252258202673517858673642758946970978140763144402383506695719730834683295755444198953329011459521904907424846836938984375192793728036740769052466129488091087664864561183259531297941279441600604934033341504306853204855585336126325104537262419952858499280721352867904680709021241998907256419342538413054270699045530703682650656802663975403677680052956587650693641485145430750304645569573022756640304566490783915751420076806125135731280873141603487985843767098438650953868186795884365464103629983270134109750120779373509198560133133574316941299716550206981725812530750082778662613753814586900170565728886256041588916371052811472420646749386782684341108612973344805667947215044682975546637461474509323824259359630461536892410505444333190585460325747370859692450978820951541396238660321074430918959104393045134874925295896909493870787546565501884505530186220405296032963251783107444659042304629697701633948829470960404424834999794844217903690248282684760841213586597412665914843177034797930384098843770514872992304084619852571434151697325078478517313664384787458862899388033580214937802724622608206600679631810704360106174408173449329393707017715506457788068615365844409862952502079153697181288792626184633917626693166338061626863479056812851279496248688208946939931734163879460239844648315228412894737808633606308837107176194999453186987519739268536607276435250077472249857781553160636022409065960648648981617720860750070300898362792293028037210423071957315025777907674143919320597374136929580549984305321373935959846737579776369554478472510897851048556935893560171587907989484415476164389238996042335183494643260940391541755200927602355656505510383960696211607145455500911840361892614762879173412718684929017623932749154078363801656971281994343771859812765561989154791022811453843366165264361295866456823220539091850309263766533084958914567456025946388129526726732804884326802383935978225946582246419941717906966170020825578259145803277494276020586046270653819101535185405924526554234545333472473152371333054404180552918524717488694226113780239764094498469390217238295730105906056654864677555233019113730346779840526070992069595982026416718241368803806455567853226674532878699793193962973000340661673374879229506407373317574897109972425150376013347418946486827642687743829625361710750557001250003255626487837248864108131727407711210589816605031125909330057399531174026441071531625234169571583548934802859009433139235668302921033043329071791247073352820522503744938395148025526035614252445529887872519043525908929368808813762783753151033529341753906530355025568418474780109126880673160370155381521222455575890680649157158474669604358795643705649590913202921923104456135687818227406883115494900084493151806554775351831198327610487796862405155950395495859545487718437042781613008307815009712753668082112921484447406296264916283252320151542893677873216274998686861664495417346715709354674388703643284533479123408548814583622341380900046241126772008489681119811761134565372971673520670620851794902941653301523832370161314886629546475459417056561641147070576384542981316337821995153229524874225138536871757893267586953207359084273048469699085993631532902380258155582836594593805146566320976370589609408685052307782453232443156912387926020982163625870959316934503072739668062784929315993590443934245611059860677525642628283936121119193926203360292479626653200322264780030200688537510958810782199949573404072529207963351158749080953474210726520611598080971278783560465500146724783533286591448608748427293128673335983941280066021957929431281229463059732161393949237327904288032159329478961465482718046959856114137170962853151005641104895252555923365424361631316506758234627676504890178415769769572444751100573832714909609721794175126616692845060393329062092126768836250335277706332073177855531973374265739208415754851917563339199414544659724809976125268158543484699514147498187143703085735077757837106912937017130542376330701696378807380053386681644880517014253725936769403017416039539125878057578114912973551268858391344989019910830969530766387229176950304950777477142243081289439879786740941214304979310967553595920616307691251303804740186041735096938093093831804051409475851046842003831433011492771508009665353653508447509883845263272730581822921789774857901154749051553066642673146090300168436215078740167257225419866958215520905420815828456354200162967090777240518490573040164569260692865259701926883201564479067386048481057297372329309492080362007565710778446981482834671807032043830510567803520588508431001511113749734940751938518834057688421301718400487186312327836801192871356567066090185491304743103748818036481715056171915321853965106219001799945464306404989419971693508166574148409884784196464192610711655870875529767227489881144763999846969084183255875505624283793499474234340212638233930755341725029651099339295025450095579689781424777883931055321256121627459465364873141065796624516064867014820527050618497074023954402740758270493922390874482257474475517936895797547394035651836261534156206610415519535140661727766007502594633227126228507241156647924310713178859154569657498541825427388685285271334377293252867502442798302421964679620158052924205560704708196863529959533266669121820113833854050295574547909645770367899401781880064917918208957631346364321874355054010619918220926249158701816158084138995495114163473573140890633012072513759628217458025153867677950454691257963267480979512727389399692110133746541400492373025558486663853831126239991954162530223246646021868536922917833401426317180611629772519012656399948862686412721008351070997877399392582566396912182106007241616805516916253564941410863770778073232796481412782814155301308870680692855112948787573747279224786488148965383342497805206238483710957270962223554676467873100450430252305247657756255201233648153414050726578235981472053996100018505372729757043865210340115557333849382909052669674492736599137450872594178918903817962857571664564580029660649620507226738666422155424916541477667162851110122035152065366734900900370046777814551130971814078067383597781484793598413271817064424530559251902689147587680466566598743097601255813497265925436797698471504491259570909295551506662013459855701439533926686900436570310434381283363824172487403503138209449884289494462636486631605396692552912605596338913412074526522296271143315236234020844480787837057598109905675418108143500299982366411232172428541067093881403324925436470457020441949678029640310446313260699049735982204226904855788819973618127744787975072809577795151581889136935271088856870821935997487112873904629884786456814984347661339507861122880062940796979808927676069502166865525713179535758392419884341417452806454679620322095519667745189989408594945803995239975542165774077644044057493908003987456617830872183532440294255643452554239425915804420627212270657121999869273020391412348763037423880169284151512098356867578177607275051509718451651778637711564582521442698871566855050180233040325950315926923810838506747074139177045079732490988254969542620695237900677388198842395665995050848366177350631822050299736021551300748626040624124140110596912963517790111184892702292158239579854863775525095232418057564022417909332718914983795356984525184291060182107413232485699109392928476421933370580386528633745298975260514018543221881726419589896088204437847767756526074518238777689373282107682314345748666907543611093422390722589588680938475112629566898905315073429861254531211323011191761020019805069280959842707457573295244843194744477252544486876683091925537314590773621861490702326507613357440151012735063036041591062535418650159362724118743465053570765838327591646795535370409118215126541231181965512196370062522884758571555366111757169275209527234982441932954931816013871828798460036121961154743706114322408511508456479724354960420944514570669681320784911867507191807914850632721824263707535099220802962952270340722448372089125275390175816776188760724945822753016177590446356626148658366965999037267937652213231782118800395571214980480622856138042774784254429351207783517285131449715000019300567631899063898875706912351112887323150449392204465877047972026781657497041829620852562215582900125294071308700025044506520592367694493476689912890240354833469023825942997510578888994372874917128368064381846922323173918904675122000036588820225129518489969736002573855420279271655886143389963839339604976889250062250543754951253356737125653387115102800917802067076427485032243979254341966715785802030199330011975018980769194863239886891267829229973232747229301530140463388478621611210328562776581855416682652755459732181667914146367758243210486176744384659130282650692562269454072656220732219888510564769640920028446459745433679444814645834203444689144618679856264471003831851763325084583217252535262903011409778389972080538195676285568221368085634431782797762775757224749060612214873656281972387504372646920737244492693911226570889193564710255858785676311298389013007287014648012052766302916035937676330771127988161149279462225499025848012495136541797248626056748626385965637135913748504269395512959213227072241363246740436279590830412091125867773619556556354971000000759771258806159709718638044405689037070178125328768547740022061494697106841320987057263836294436377955309025797468097718636681492208705388572876266458872439102445439208750554450811733893417285093813318328692123807007739163905388838086388330125197626961517841131974911482507378448426760860420111912590569899964680680228698173606642831500213703663297070985186738067878711613968653337836671867599076375572812577252860247341227162480553130778385166481315550614605336556771616244139024892478743587207827085798121944043958169127282800154362175686307459268193125152927175760067919037657465461007440400526036704587074409151916776913831586055568209893745691898655157318453899508040129297141228858059022751668562958845531026688080905761323003761314736244356690845205170671169559791383134433823720320596308778963754093162585634577925874894572806010496634023495761287133990844918623061730022984109099610808274685994234262889531063944343793864426233470134519169580453913403870898304381268359807695993089038373083750363321500982821834160626091692617254855440830868262042916473681865311912292746973315027940137708003515726412292226132882154717147743558084771273063909697863204541269985650461591670609073197212490733218312215141291479065166521699290841924980098170579503471082975022782541786012918095413820950510081090101455960262148583897326166399877776247244249034342639705521095172938624161961248296056862171360448393817740454187530884662095217857030828611140673288176529314674568271584810413049984106201429144079438182496029180034654392062159249670996487380127796588633141719044037348601531920821651552395689021695156596578098051627830836949940956541230731268630033383750526683004048244081935375227909875561032389690860062377666927248941063915032013949228224231696484829752247962309701229518710938586850562891337571855012511038786175405007047814980085431721186088220797455720047194922849176806836347169150360578749446545313873285925585814044013254259181794099390681817881394122687676287228637997459093309515060422113580633883426891175926308629693225158111195564887174019757321284658191073850986198504589469863001694506345717758349805635923056171905094561018217169379825419676587782261068284519189446969116374904396829692555903476740539422081579192051967593173322515782126294396683686166076960415394420045409637105876624448707187728824499956008651514983674351439953804685638711328478589820200596743753239827458851987961859630881530436282051791632333629173909084638240593240159281575222761942316222406142693368215775780246560961798605567186270146492944233110782034085250953862808448790457440166748152306177265968392258907676244802039679932131629567840182478010629788659176872930311801736130079397830588015724097374332935222550752540422098802618048228018325592404459722158125269843144741294288439709136251943722574189753305102643010914607652625087271079871842610341073151243032754907389071284548442614798554459211026876790907129525709944323907812885768025094997601085470534507099246687019916647426155663118849663626199247395866006550368333947718962270502461057015594839621375838354920384633053693255839669837889988141499419783697598709962684585489425140629849412036886504774903455933346889118760542770291491961152995024309141490815423385657309153212084617287349391435984453343927756401417734936101267514320383334643481428939149989034119230248033479935420335817320931473890989631950739613657834307607354556071372703409014863826537759461512648775018541766842162540639799604119032181056684110484167816380375600207567016590190062080173423837390693613737663547820345932477272142510894777708609008325802172553247346755091267864561116462208780198791845613406291844512990483709760424613884662358249510673485376043253447066879658393044338972537421744585456838599376378541037056058272822122668262406426620181987736212065956304399668846292652158261292376538470958480628142073003711080168624831614632011755169630213656835539405082997537323643108681641039653354388434991634814316815042092153361915419862980431694342542847257249810206680829336491371897839025571698246056411396861401970644528154046860294765612824955335729767796305586848993146495086721061771923078522785067389383929960844064851413967901664902541514867810827324120614903935956421586322404369973237078919381441707055663089980268028376524867560392587257110455359273605741265752106601269579578905727455155624258938450947915442172736916744682856279063105558210511900282505173216670189796566151726386776731087095883219475555364232989078134229434714673779537528853277869094644544797337310167401019133982306425044482231904167472986555136898711499207279474251433289448140707126899768453546640033811546477041358842460033144580526950766744966054866856950662086877017090364018891033259309963006833755354709455923580568380276394773537221938840981989683459826133998618715698000216027049847612614698327808007013972425511628848064894169217098642113533701730461472573218552787572733455564778603880835206058352393847395547114677303605409770909524479394061283444254881941531504929772772210777245345351858026671258324673682063180057801871605192655411159996546754318166234995713098640214847380229920682609556627134433276707384423727296911071130009567970809407563661573218268177407449213619767734802142792179170678609344902287270302959909435239193776374398136259671353668031455366343445220627843346108432723299268703047229725466937087983927053718384800582204563540653952723537039467315823505226945903214219374627185442516368699139484775227666617913727348025800692837680852525464912421517693196339099596631316611405271281966142859593006850707695988833913250768308501580485976674166150905735998000853037895188034887621102357265295036417540080444910193208767740185537773269847443335337182156189325884336146704749004230954839669174742543263393674098097849922043324185243025115021947875954776601476149291253736210297821083231422507483285913109627289818301523898005062917006277563365878388821008867995255823162885443691553944885378660113878370361760236368961339081202142935237473771941234456973335546472539510739046028323414779543790345796499392390283574498148239954388672847912575386883857079454800304685145999720723761792195415993579681333849205626219827140351571331012636600083266764932761517576216818654801999582397568965423350852854060112494289154482812817645855770280795937678481718124477433336692888681986261048956133269353463086982925738174316007275122884802434273299316408763387652204814762700559142796078960775946353441972175858181105196769773691917856706626571841152152495457013373979299147514971935247887669341297306405584858422329844663612702897571841572314742555701313363708820054498196403851452237560722115450422137876003705533424716360037985917619596011100263492331290676213247248048699414398937319838284881121548830735221357672610106171271132315196551104182006945592228884335217897273516066296199312219174602049819637499217172977736380771293141451916268674306712969775058462956238035513204741543348541065791594283847470734888370494796005330953106834215805483667956149843367089582714559440284524344253547489040739661606081865953357039302254474723322715090800414806742425506009606945750480808777686906180813239948012071269869693611215775553510597641659601480248270870875886953265515717792994957583899134761866176137352543571514100486478327327930410748942803505161927354851125881485220933715505886854030591147498252507359084855786841886546449188131480497915968287805281568842146331817114083099940594227255802734022330282681685784981784371537392028505914931399369111688513982214313163951677970957817906824003630029841840475533690721081340845427040101795590537564092307487941168561569880266879309719219706948038821082010488714737442924568472852269919170602163414633291637864269256359528213908195171425957341246247002817838637901837493481013679961786476485487439800328457632271957356838892243433039063910444736430609300100537857258533647746102173798648895530223856811095192193220923057881477244903526147615979166291452216569790965623773018728770633306665102939298554673784908081143089420775620413177153643295482750452587172501528948570489477777685632063669105866544446403205832691510539765177623198911566075892890559645709704223706549416480118073097597228839767784388513917749521830388526303359007793507442128430225114104019563422252773712181063527150980077592831679325836014822243338827814176520003632659077293205807461883273731654756381668537486136596987880210629042279920379765360649459134554277558704637552541420868391761277179578276412391298518577045561468170377093042044488087453206770181246186799030646432325501289125059373443830047760988518576333842597306054958046990592839759250212946403044934069888695678886289106415777292897990795729285880324069278870778137892116742616328757678785691276911941058492562191415735322657550857775775083238442780278934993053435571402290413375136669928578091915284679663645866888621745802867055404546918900443601667602458611946384957150996123634798194432450037016363725353340134901760508674184352674271394225984044427399553790023026454645340207356732128416822250639216250748067680957115038518909909083488340750533170145544737312760472893000438251655121642494405476575671962264813320991920882975014043836410912384385769121906510345342646584065232332491760106188060607659213683527377710101293922880239590943801682820770733357192621521973620364666124870313306802400562753270791747831515920555254917378433852797437170925488729394583046957756355358452521776595531067430009732380608414570887975229637905588367414742698856772351340502066558138682396643617652495118738234393918131258331670198616817564040323899091920050591630097604087824094236386354585669447913938387425842010137463284854428324313546596748386245508639329030787348091592950898676057948919426688324358239926482486769643222764928258873357677978186460361290362793235267682355511722877438837630880798956534066133816320434519282676836262364886689051788090229565417155748603588302081766859715668468153681262551805837988272174510107776512877924314761103716912505027901530271290348595436449756797726541297382045020731676840345107834245797563825277412223972114473538636901248360063850131002458764680831694842955929823373847163055877017696316143589136760909824995208328655649031966789434021476145264561901396233140870367701484324294075543259359973932188100005510770626124646682927656228455518887290475244214435650966646798612569447685983856466183496373341447341999308390645139564263854596364085674257890050505446698015266914990564897091387023383675778436282094566455945850636431279801147365209920556056072180775385892121661986657622111094860064796870779870627583965145324774838028056187990575580434698212486986834489543383424872167456247018830232730946298004391101641368008902541874893651652572312755161473567025863404564241266472211104402470826653980965535987758107356470217813743911944955598388966200023607067197244624584387006956339264704592475126342524734782099140181426266519268873772547353969636358656523675826748178981350051500620499232588855853469374970936796058400693693426507688798987509980711247633353672532232082726129646367393232380264526396296602351708819865360087610929354697020353874423771976929778736090220932408046071312367457008132781439642911864547435427575060365678590060532333487843948969884974427024174243053628294686995361196100383937686066814477985947068474018069370709032087563913599154802330165017899281765267026750377118831074171153431163269088841051125061661720013676847825950983409903489667790612399296728666701995642957938525677790580041254574415708675740603582835041232002616879037031764965050232082508024076925154286514097036480325275346061292816206600089510443902940213330837607296798120343638559038820045776098085611662740631767747630187651409853977577355183839547111731690791547890985333933552840182132863905500021359480980549787705893662412813219722228976564531550110357880586365059007965990714730263145011410633121711248132497431586230974886748055071512858781290834444364478256179564538309460160492365514643745647318727596384292154315644021247765966686541116556157430063417357031063217263291763344750143305748042270638696828102127381038654362812343057232810871023064648112142050796293577730887313281424256493582023327796737664548087433018006302049991778143416214428411575086893200790679164189010622235058386997034228534354949524507497343236893832287358475742280640183624376759330797838866646335736577609911113775021539624270441621881890558018838633574469957125151232164678289391248432306608555307099999284883310682855675989916812642777388244566703395867988965478228563185117462865354486565976560438685549696111091058534177300425361404236908296655579153934457217730971273118560122760498583315713955092851223123304241318354396717002688175221596060750470312041589280024529225787606290068361749696670513169865723660306101320211360499672407920960390908845425687552368562271068658487062430656813882605950738248437389854485819545385714156625736021966075388836639062666981622554679154954845404342872772835352446682976228831115177281447282041409865730502910009489506518081660842071095142451632158155011201281933234162122086497701364183443570293588226050519979232180551831680813850359570568825611357959967370607099749692822307396823077362076200554897524249213271903800834276551739614145592707297403641113223996782079471917674231771724378358060730224194870350942648968799502083271586033376137142560252049297064156887272803830723630631134653849133277785919127294939193786554848635978393330175091127720373665878243583626861303443651073748673066108670359679076961675530466935352079335411328764452358633498280251450506467263205548453481980777400708170250499379525018229798947343510909831285870634363118187792407073671806331135579289433175741760502976896178919544912385001029391106447558133662985642126716994148154438871211769396432266006983106081514933281990202444112462396048581650662664215531238934693880982592738553263433102102511580105988486491620938428203590666135055175220079307940765305681251635191323505976806711583216010506007520054600234880952014600527645911885536442567578505003127554323910581919361782830029852351703145683868674114995884268033893817923168895748520965325416546144262678011699573360403427156561180881877421665528014489776739947448229572787743253171941936164438120582514556817333122385938053056457917616516303733644438288952851649875246722110827869005525326497157708277038230735842995495778323255958586307350831204873978174153318215372054284783840631926481213519309911112258213190129563794934409101065167781998718941866575560328608992531949020147519621906512449984416214306570377276576713061991791295403901737764095555761153950870112362316198828991778273388999448069810968480450810930829877231031460494856984680396604740160752878319307978236607078224530144349750442015528245011183901280220300933663358590055049813599681479078003507915607727229944991719946391059689078964243856442180740757696136820987913013231143238327768611196968575888677078060071206401037557401741365227828568670024297164726748163846184496846866092298623488099556223664296410419420307872669322529563896644202376544402625886298658573055119245032938994667265483829761539943514395423579443224039139230765351423368197178610004981584112908179688069832212061407397539087635601315566126248929301338409004583181448946891797218578107473353816133313754157965362152333634438609314661662879633190526967010125376157163336125386853396771129573868576656721647612554914404775076268048074665924522119244823692115991757106494786731471985270504500956651076758952229157391316519047788716245583003161413725787341205328305351824445491044411250266807523202620106883742247090299870587477972923625893237711400065542574776085383638459464632388158620311448053187712720389758708054130162834973074649557388349801959069759766469084388666105639970784766911599601754978480230613777849824240369405275362940962570153001108374073243035792780825225270140262603428588050929622904813676117474111556539570049522983855120830086968580130645569159905596088966922933671574928531668922273298320776503900286974646830320891703328869408952986157617179687252745890000339741473087695982621833260303035170433663910623554289303458961535434168881024104657209920306301732270148413049894101117465245949530317850285646378515333906144594229239400357510454758441524287090911859240701243171964512389530093625638096118214698482280930802315399308380206227226202877600052510490927184024084678769297141734102464246747431322766878286453157188212820702586729834438731234482376647566113439715718581843662925291227915862232250411550180203512040676323775163302581773777176243065694937343614553798691931609811880856407877192325987946604592408142571947778032350450068858490201403081828744985950285349548438801834149907202058754556295784874584839043605226813811979015612741123321847982427775227589653218622059491721192075151994409182474096954388521014111372532943855568792804435175012049725644807176510672509276686590248974624935190645375755204180667255242300545282165828939783998155212602321327857484982109706735026562983089291076573595983683085571450037753683099018095380849920473277713147792302134838793892400347416522894634685983987163934292909452474687232071917623585481974577112876873372073710858512372028953921236860289591071692272513637546863695012238200735760207255866793907282957010004551652494905560406035992425961023286878881434054478891129881977946061100020285277592541301026416960801858705358718098815677416413841892237081083841457835828428641492305139457697734125481178247567962658499536842921817935467769920941078270034364465749367164864636872078490463309932661042371675579921137355465828465367940644129993446319959672291261565054812743986485283045854735527716809013581496347927059613133595516994996741068391049306287896886965965397602496482046683005879311997309806799102526225709327030495664368177654168490081696717686704902315879055066093311233455497087718715250701274195409210068905105599762774390583577396190451445206081413967670007562099417419189686418401578963544274342870339203186864532158116695049901405483181139217415136138926692190484646342056668448101932146380701873613107546070560673916185950942314013925303012563282654582702377941290044692077354100641705780121363613638035855525564098126538020542496273978115768496094429568883149076956724970026332661331399366419611211435791201488405898984520618792898169962152093131902625403946210924435218361172679011615472913845556165409208188329277908234298609531446999071445997840466574988535373909600192370852882746312225937450254671398544410430064248622218344830585312934288049574747890095751907216791525695649759337081862572016573000270955642608135775782160508059992184176557172728548193675432464552183595571199903147785188442613964123613185810685654722442498447141792328042837226263321290383548653864238179286402083418474696092552364436483373827560586614603394170729188072726659686379796214930788207364888693638809040998612491914780953422934685397130702950577677765652817274193954055316948968003110261783978710431149056889704134151776189737224547138732019589929915872108023792661977022896553794672835984499394857836039827726700992489452817130003962401052201649237784925172249806954284084344608010582610261645904101664555107036718837841687106768120249608449750749326477524295414643057963224100502832220089190133238811493650221922632971927356860742083153421115530557580568004041531193569053606365540844863974578990006854558287471301612650796167472875017653465452446148961188907719413849990904932963080991247135647577238968132061816884292142169676538978712424707409681214772053887447917193664695686920806140566498478088557711317585942527757336296057714074834109235375769750265204701154028028589687420286636817301274085370523009503109726858055559955582870629604158037378424994424463198343083108039792294311731372804198028133677468776402217968955505470095006043739540766541414320724635087969443191137763057341577609319761323866045723219215221951073345855895690529647840117924653488596927010187386565330008269801694859869357110732398857254314638119813310743804488107684524534729406928581460449237938068963839308442338809662283403290607453422004897032745026387439562659424354281380646864435563323286776908256170660923392084317255430901988784018776170780342961075091422729242677760241541365955749256672469413100249940548641288212651868480111972744967392269785588315876379714318052248973027834083864510099600404518008748088648022326838122128999948263088106374113751417486137881482931903748455271844235159141458385576572342842171143760700587615958573923585860374147143372758054665600474918464296264449728522070701438549195858968711490222121816160007347929364316921863747111720292674569270815634136187827948006564229672165758460065854191191124238597224796590284778629445228811733103425061115938849794548962358859158667641946842458107234883717298462884590396616124128052841087195249179376851694629161862935662878378621678628105548987192175742629653247979077267275772091459863393905742834198106546929460404057774294669765179213167244682677876482530161194549629943817065767157622577115214727965635971674866548215538112059863031022196962703962253075603081206567527766002665125831961451786143813442671429630482629958764296203464184560628085229671578675098736559735758540562279092665127835680928903012503066315571989589683504232403467925636281014824750638800448818572797582502578341435738984660654742816916814407909924231644706143989609061910027947611793060540120427239311709680241235527781392299822882823595462404932212291562211351213226934280309666776879157932229119592504851809012916449045972368765922636656139417793833024118319803054455717876574769639797783411104910058835007972715316505236391310714610457467776575622958406961915226905570374043672992846644785768418786920562408989605093373779948080106453368772965166383117514820880511207115130824481228986068495620411176738330249913232482203317145619068917463601832868536313368725972013247838972060299101709635489697873274393734549448107500823681173603448258450597445871841972069306369536925257254155819979740737121417333906793659346401954627739116156411984094982073355099398549616229810088234446222206737288386761790469129397041761419608525874758912019937085367071651227195883088934057291185269856018865181679053596287718551538930820077294183406466599339018849985255391533380994840651499369724915376245874865828650789270717691472765304605479169570943968615419621507860343497182493307721169012395409195885049401995827289626911799106901459188527062636193487805196554657815435973964816226235935196252191937200661533698128069085111525924238672040792530871413633708845213268877314108221433958792789610144927135312048024745064269217622163579455541544941990376642244497059040273477049796961650691333439522010939517533997286066265652281913808197751717115643822682772660914880632529672547543301849063204276536357687573980045501359877242321443982544012047224992142772079370523587186092266981630463243971501458583683871798039923858887443041997310532946673637418086367658862465428383075258058171941953866036074614433997762270933650641676559386287839390621280665691435010164948815176372931954941397211556208569205209012380833133009715015773250385485076001149992880132508475362729532124047004508213537996151186629328499831243654025430476857987903322872052672825699647691365269379935266845292963274990699284539133474725801984403721591347321031096801677740244135505196568390164622584033766585362366465497588295369756585069191457564563514540636929005099050340028735967421071626954782217035321794056187452995707128712944806945443902986953455373652683909126491910984327015881829641933743046648027630811226295816065709601064912146490987245452969399746631844304620388395883444436297712791058126940629601617890000644045382895001541653836104938802967278985208114696093167172850842939186646427212266039235374974029060136525065743702571681437354991326744583981105092785258107381463346069731423245575559052962318701176642014788771874335526698289569194993828305337424211268680260873731703209483419167222860862925370784238874755799076431290188255405484163465731855770415823188425019541425106508931654192009204361536294405950589640907677370794405830446744024225587081654322167589954744096633244392072480228258640783066616280789947591025378505175744927127704956161378858709322914481800478854499079668027822909208725719908560641010594792759809267103422132574580959741123148863075575510127594222213270531756181875249062824906715365462175571002787715975922243059678258502838970424899090459095223454386787842819003549279812607252900802927824504974588071432049156377484605237449127638040644761265627881219761438420667420912698346131049417677612828469307803004147369514828927687980587766896557548116548027048383134047583897919470119460331845136032410250540276593759004251354587842442606408186423890478433903634893194402933725112345633782068434912276035605557547186013040163438299188391814636228165925830422244127821336698883715500522819484570167994431818947335404257934357581045471877888332586957774032603949639104536467309530974754178741251304243999448809767716927363997209155341119364526056723421188902292936693862944790714945001698585326024321318937262995679496821515755414306597238066729663783108883338826844244270806529915118690331795596974534011352640585458008062806878221840319422772276664003160711206410656377825655839538371721919067074040011089150318880408474503348157968004572203976971147548872830105364169355959247196652817185918048393136206389816902248439059535153264258246083640076017250795336950179056664059186502073736533651155274077538391936238190858385938530516338823871268609508246282809398037328111076994063457773663112822434419328918509217068415865329358929536957944514035022392866224173181832358196800821890300920649390374710389941992430295975646796333058577195455909998878486643008767336997870962961439700171452918097588755803108122677295318272915148053178097227132197826278984435314609351844855723683573318947408390402405319357658569334462160719094176967406673086793219737017581270452223799700122729072000354792670715599971787486702350660706806957208335308574437086263502059726582452562588583823034670127542567423890882607973679977367012078948772821416226460688253611030098759512097540229011995493404618738589053519133074993212374964293664783947860651177507585954782851426438724491504472885415892641285674277666703307183841795436350989415894038371114964036907938709067799393989720810473636165446386500902752264120100215018020251891956928462089205402516886798515399676683392455837949535403366492487787567438642417800271594597098526821977934659066830660906048536005619286961077712011767727053675743127201815903610755875478489732447125605063223729072778160090932591164395929589291654192560513312959105469554591518129905837867489295505346580995523822072691143321191039360129628496628370161360110114426799660632126565769866801638019332259507827539680257929469553294631743920328679980407049631804634623512363127611029355171563944472819340592112618070782635878322061930154021466982387261160329948278894857318361807445468178817515047406042474714145316021438950392692851773013355445707532585405640086489522548228758803297839024387977393181006562436854998246371179982403122281637093991585695195117469230283723440430778737703724110359142126258613548161542907230189248888696691495012577438854561925756229280369939641628898546068196234213902084595779027794344288360361361020935543508026392648846233831721471296573811115455437599384893377838883886922234965939479367656212416307105853932292191675795555234052232562169374971144223865650075244998104615491890597762535754264446807308955823569043006300260096206351942956939992111199096343503599692165508196976772869160068235601369234418994313149727212981274303177950787791749535724695410433174730123999747082039458074582624827733783845201576115531743997382647701542506823239585549677240693522697706312653681890722700396985082385736591566383592154285516904645206997575247926291452208559305739901185700275636966794829603899038496298757121564022190158987026357985067224369721669716883141122036102217902535198748217591179560296451212849040502198411979815575878498320178269331665080369736653695735084921845262331073348092314236459680695599675665906112562330731446020806025742760826900833231227897172900292120868866673761330440777226751343398916465252201767273213666198537921406355442001099190262408049740165016676747691109022090091080193015395408682269891553597471153495517146446966122190314018224418282503649322243551955238645593223485420972198518814039626316200935127515899744092861804026792193456010038503019285862478850631037400780262580302496289505176728320778365663996581956219024618923937684394210918214393570468975797482979096342508393178047302441612327680607827525813277838497438729507794408024213716688631765042390549913098921147341343487019531172990516746534518960022559803715895707534973304467129490100989394948535474878208090250427087436072529745325135002154891401059484606398012873884542406514103638227918020997673763364350222428523490591730393672599867308757798034885689707854426994279054499826959618299935330652494425507979942100534250527923741777597673023097413116007112701516663314060102575470031642423791933507313672701261499360485778167757480048297512921896480327407723702035088435485460970659836290828128628460985692706047747930574827016194923439834813289357044009395536444020121616450134837707130147611266926257475455129590564061824694349563702389428282162917831627427060496490462058511782789280123570785057098511458327440538433836396764094518453313157635955117138308865814298904670134539678162254414700376158331106164616147733627445483881553473284685277327343233050211870769312099756546095741697778118126520032951409831610903576143954993475482118568455302089113637159551141707456069310233587453708175742709460875162894259353806148742942709564172708313617812894737444386341130958347338974635791131613006392053456971939205134273110632422412090654237323258315971443521141233219139580908781465694298554627051735208168353001140848044605409932204800326857892127573546791417871182155650690616945916496648391982391303537231686229847818324982705379734907960341607870603256635023345446913305096631174499565876897833111215348393961702826053258437100941665642183300964918161163987476670484944528228347391121040643192945129569363281201994363669892090279851445858029629062464382833869936255523943332844729620075786918180961233524376402007470121007360645367905076421643929462304770705987726146073122342813937329546221597809917466835685057706307808439906543043218680230078736540775449477402101092313859672706090137205669135345064572049908866088253006894825169153038506118408454152946798021268896460487115964829872865517120551624052931091768220165850513932526695992268987945005082733587399384449023049292135379582542972165534175242082468815863670116431794572572884450254930299101193629550036416640660808961220730347026638142945902782187699880540428723707388173929732115979251777682681836242058237670300570134444770787761431334390151920346047861412554272198346640005870133886303124058293873874985971118189063467013536063989084722897782980770342684007077027059734475021504476384486054872642618565325333803056888447195673246778909454359526624765628049015077140644006527971412307583750231973166086181408957471191889884445793921168160011954467642463003159273298984225284860387299851158158268411851140443743588007259716497156319026516150681047883343461807384297622789730249963510371036901048486058058032480230479601631377128698845084013508052557467421472798587472981403258209025886091547808498974245892243844301066098315760426237513045628225591894627519381548361970563585984353198219628579836604525928290376662259114697627523165470988778762145836190804817059187339199306052328819422883717600220636930214126013469081451802216055730873621316924791663902715600961653484021754212996905097574142171448911772593600144006582037671350440612240426950390111965614269959494041649560147359645800643197156985776123114146371335357921170454858121575572542432783813640330471124358860759632924121876971906049106207830788498512774530664329865924782766179455984156959418396286645445136141671389458838031548588558819196369380762809442164620467092591699402052771928993781563570257165073386072170567645008792960364059820718298506631517801537336088284213140475163605842192219828608603847488551289139732845205433834095417313750770425549762146877866695875081468775855460656942392204135371939615572936014054382487596709462215717256810612103771049376005315284039957122156920550214017657475888117443003530417076667429939755129871192477173425717848914386501967280240824889923533311209890308372777291281262943974562538107933332954812698130725626318781264867394822646280118499999287808856980032702456269197635316231825641570694076386298397747191089268399092693316525082650870712659953386994258130480486206320045324192751025326990692639325415504582838609558023297204949924749015462754392432908484023441309194676927612112118827368148253836532686376679316177009713596330778233929736884796126867570983216461543096822047003733592404383223985917434229161409563843665635432379942949645305361965611783532455158288116417561352114709825480818458133206333498200894142058932418629338098621705825549953251770546094398051739018480208001352133307885580558514927493123672285730449525334378542933581928893321563145433303124518996429796657194814457817486222281331274266827656648302779784755657162221005158664669120996674513273565404211184536145092674913647141150145850793700724915444847794945116397969243243397106997717467588899654769883331928305035815556029199540253272957168970009306064597107881669759320990589961970490430318850120301076812851777293084295798500250009810789243218225766502538296559020815954541160223407380555002349530875224019648296412049091169584433429124079437752090929591589817403384426549761332771316779510684835305320245009886094734907261164805347457492226912502660286919171003083185973717200977474115809331491308952771378220754964180335971091567865785983400119951220699437728582464182397864862734153246085041880453193048388507708901456216435645260108264824972625561195843441490027031138712445754469680579050478449781701072945452537254122830845577845748181026069544449159580909386113635912239505526179592050701783412370875433224896725672390135430697369796268367558641787625432064561113114436112051743888299860352818196136883159141489952602923037341043539381858660444288066844676052924010277444123792566696540442550764640064574833059401722342282373560175604960966431791544165316405645466650278068681627366071388541044377021829733226347724854487101025538667641387947923993775917106412845415368125239024051840129094138348806058490117679605821732445384955292490655778332209301623207253739061508751524883641699012291860761287780049566550643893097042615631351989511431870131687528891987254653609725264139230090824631042159675594463561529641852829757443545352749393054609766906663638551668938154683680968219158223024693195819689365692943295482826970068219914203247285866710277877006179212957206527062536445822715602607489746009696359037671722180407426682297789259331752298997314747444148088003655443227969804454539757292351415865702402625190984122352719611359544150363668085036277604304162709503207209777366298395272002487979206436383074913693620497571095632231982637212078617330757233272116480020946641079732620077077693183689818993596260451193020376203936771308861040102225370797870829329117512360589814987606023289359571141404582665990641801194100827472088098359780916367474108749804281457243739254940828440810802591269631524113623556575941765021082548773220362774548649964502901556844305030717269290951708383851175730583889087328664876816312088509709775843345402816662792797258613204048621130929956753077536853660671961187818913881933917912518644349333027653037662222461709472107045166829864920141042113324344679357146165216333929507871210379446930893394025645293219956834838742255806079557026730486803344099149409070423340888157981865863471752023322939332385798514782318305660036407930116078094186210838640409049791085359986639232631561828885626071667870534962792347849504965976446383450829205813926618321214600200136169273030386902116849051434791516168213661151944981026036830214728926442368045779947840719334859675456345701103536940631291426415399873497584368250830733719642194970464279529431964060846362177235376698883592696043395416094069855211643662272198599618183660883332439353723112298408066998164921552593130000208239464090077025722367390772281009116893610539410838913884006070038510495270436649040675730889867526941155188670863077867187976819644801081679829352372347824500452705774591223637414470494534697189445805043041494328889933932677341682995137650189890730079599489769476421987250823507124321842461940344502867858305912648059090343532819145363969569221758794444766800927842371374348416773740360906571773057018888317490604931018251187534488038138390835457627631861445325402560390415575836554338629610911378596498837394134244597227208849224856564275183332216721344268320715783991993133692786933969877021414612261384362835980992431155721452472237777717540724625645481339592781464814605816195871099634825155356355023663911498795679291757016817413744643806015952321588847088188900542236801731107220089634580481310087871457694686883486118342677601590991740682551362411909820800560535011915553366117013108324718472010639288702017203801584398056867051767407026117899060520400824470189092847512037244177484829848432261166553350466288327691662965408795020505299775621187363328336455500769672172330315278235139443211308694765365293850734150125264410034400255727315978860822776515283927187895749705323192803592724125625736097466907129378266844087513182607155425592041272941248112872325407532524496580851691919048117112255659282542295726877944930310322559651679709415496421242040564915823011850581154953304865957634910535842471551827478715243990776689230835256064917738981544855563102555131472881012294381213231347284166153285019216231530208156360664661657142374572294478325079043600981273812211741021153945328603947187839980762507654801075045600009728719373834534836997433366407913095746008692953129554812112683493309635769953829612410999176653338172414709509997574679880273910976709097951967238786346774116023562622426030487823299866196093394625140665929980256984944307692642385285978479535231479410148480634159422805185257002813685668735889477128371443870176013284653415460068374251402346454792997263974870536440136747500408845313131519500260649836712472834255809368958184343197810933707232123419212254310226453622876170542863560183403064581021977316876190310495160610534460996476798102893805474924103632506516457792600878119908825372743588104799623455956679594799999573125182446794891428378338529238950585700947371684290706450366366746192218471206085182691553674574383846076246981654434685866512650706206224770035883218881471322731359345710728820887414384450381457184692278478590152880149856144089993587788236618911877122259855929859566616020499100277058143073278436705048361094128891945442190742971481881108182644222909329477532056751256705074801753836271820875565922264257745835448769373134433031277239890869451950472328862444045491182250715492495755190719921245656013469565367111054881599151656033248179065525441702388897225610378210617305935304769006758954960850407320229366167678190525744608622689969572491909814735128848711533196895574437111884571938892533691229248176072111218561393856400862204008318761496950956880032182528705591159545657982531602579185268562358306826708000442958253429324831579068897005073628170353258183938964678922055020184492305347593276115761788770495617019957250652385521077143690214264059000574553173326377288256809006073901744178211909651347131219429502291162737387624000915103423507870096539375054811495106824767472712262180265256735337116779475838892193349859272974368073416453599613177553706049897262232512030994457892556680385955787050081501338304967743814666096911079357692832309058488518031209025010528087848332118750149050114137872701725559576321009785037184613054598506736593471131025180298572371718038162802197375561374879312541075880282651354145189848765719014629607925993447329543380837654389130031408434774098898779193779385914828910439803541233950014571028394709575384896354344098415375117845122750832721692014273362008097669056585517223922446101410242757675106204386048548609000011743087274673407340605495319385338660419642899191116473720315415443254688438028114152180333552727328037556629194401569735182874582757418954311895784894694729555203598914904569919973407778687054888569905534807949839903895664814171258737869408338901164571674268659706931639058807328066841024380745403618978507022692346717795834991759266538080759433061343538365912294640641144537211435732766696891210660490665189682785109546571255678300985982075183592452669664529410245586699548829856374590104695254797733364585372418663582009089323780590244241125228050969888757794204545796479238770446064174354393490938013178620448000773134201380792540530826923998269222945563436115085011198034885634963421163683797462692162772182184441844309810658703282382843923203789717457024455548256851145075052948827517861478411630802446548491376542641611727515208645215911077765375833484234862286376517367057688688804526579061413663751681761548238005652566123160709568282028687267035149859821786020948845774430959335210235288196797533749298354217620396329059739256604424003403978576942737126579283543419181992146348224861569015484633357309447188782327861070508806005080068966165324838831606830733615802407215264932488703744215131763895044742325601681323470908869307770035238426410755497034828350802729580362243950051574691639919604399197895657142801685608789706400151779473928338539491206591359984526534096386515210279376098038650350855026083552227723022575351543152613912367697029469740450905947742607399218015192907516938703067731964348507585948077266818714554568243630298419188061750991365025396843538732107515972247083730979421868163691618663961168447517471137018277491909778716987013570482028781157246875116928164360615657697094840614301438592647621959386689455067543864009855720349351244683510055556950567331833681926348822762566703568167425547557337301076566044048335732470662163868751091358380220820725575382962021758407347637829813402453605670403282296831094426272209375423581197308749949548718648861690463519161544793436521745445608542377903846004837976684509046539645463792147547953972471748199534323483875279777790672064951714335245913338356831587052556240852941836958367035466870784148890234035881254933386402916320680683761137699714971416069320933232835863108177593489440549678974461262619864532288129432101831856753680440137200062352933830891248939613172945884729109869130920305198879778655526167009530678867455057588207389156113348267695607298313653122788265990494259073828641757410772065789421133129516517407897777457493051873253864298914320689637183678277890232500599087610020406519994072853271705537145835852094652990781554125820004373270187888485630752730848025763425047173126679811006725281858883692658063805249307102921655085027741063225242598394874147229902310419913133307331659048854283996312088879726033419591380585640605436637257068170692441162085644385873298272179811306941286403234463645090117651658933127859647581891220120634450842418606787239025835061620771161994157684959046587759801375355361766436416607472727481943986647771442054629442082825484736775564908855843864640809952977777677029569017263691624278189429385189279454023773182974003366639811307225763631078506550253055101825274525392367328168460074737558969945396077307424999488075590879515892630720343497447274416507470255304863205285596418987897755730909883136564365034102167981575368132778060988057887438569249559746273297637457236376932669840860943436899867802948168628323689186032293397266574492914633937199497513712914662714355083617502990694619020639302871978216074016186674161890516365614004232628664853596755861182042038401938482517091157643279996289756580920380375582068453085306122787782163191674410229683139192829242394879688659714505687532630193712219662322157032803426832147996906823754264857976068106248819267037979108293822697270824576756151881703186763611555335722665646013441272950895713498004866684436317450285364317010405108694695052475945853956123465688361830676453291085807189406960562182731626619278458413379946724787086798059304832014309530956357705888658502964695332086250085207025201052558554980725778226147594622009259491959001155849215263387389087931608393754201813551539492767518037416772879969818020120746342060498538235480628800945040930366127577750314638403875645855050866964631670167512808711640406710842836212868375470315815041215666358157662849260535660832563214312856223981614106238971895710766304329719371522318111784925612311350963243856820320771483837740385678755331057009003327514663329456356307608909762802462625609636897209488100415692818803502274806067950545010229524913053465895969789264091578800940923173851726863983794706313498758037210320840290234841364761599907891274598402483459069047400926769141118343065627967701577237491763929162980428006751055145461093412051172925022744956742919367130634186526647555317412958125768796599450719022021059711597348659970961376658547871941971436379709594026495427881025127749836482396532977351211400661573649884398684181748666062438354151708464788266795428465533518601127112148259923752646279475473198833602269983278440685153124715193540460642163800302275339832076929261218084002991077026287418906069815075066153175892849268417941264185297744164589393493676100849583740721100328237593623090609174305444484003222316407038154960229536940361085980957567787629449807923925074354586053946067579199248351874633257283838148201417500990133904009020396925975914294247647269418617553163062035703247150303464935099464901175200512290482619046941710673826256036278051950928214328687976139153272562052138576930815358403981136068638998958736435325810633077513341784578143178978003719609921438879560944344166758048803004392958642679159773181765527143888716256234890334614192062857618174116867397347325933538944828285680211965254666807785635762111662032912361607401132036433269289202081322873015134845293197560999336486703775223764538713594667955319026285972156045575365100029208379032489170163006935518220484034027500103612702650811531982236362297738117755775772818657767955203903015509035244151910515086181915355692963174460140685170207457630173752849810657355985867660676615973063555647519361189748290006139304944715698987886321386079384708087361908623901786673682257384482620572284895038690810635722434905872940300945374992321588126528992403492172234394830941638631690487574863937663760846023417297643772842663847296107968418881028566249633829697965772708309787527177525855281036534050648783217053891392860369578113580412715966737036468639446972872366794620821686726616595670446558317015684075134648865328585180915022753148698718402328544450632446797227427961659706699012419985566143740554704125620987687629241263823018251960033704209015259726058283881216693122657999544077057305716060092622676733416205347918246826274402839868780180692736745553843364657646284103405061612755663027220467120988542062692748009968497905885266246510522992621294065193154614978333873767119722532294468080618999495713960656259337188329543413150436019560293974716367632265169306028960420977585543775999587817262512966860399435962361125846329866646941857548745279206192654663518136877669097298083280218524471202812110541932910300788301831226773231575267925339111435918405621279915007421822147386904549358369427746095010186663688987567394813357010775184033845259384331458410833776487760257827241798037305273307795393234920441151448120591372941549384691094124640113666472281274248914157768881005764244626769636425371645159047631579110024623015072771570330385131707015815389021145681135257475189987433589719318901057713538886905362715062213714302321690337083229347683734485063517405017593540890244504735659780428577048471585443791287565025825793471344636530376515248226887995611683404156382706184095223565582887692191416259727392980760380051587307861655874531748990542490366395539340380955527205544687529008941680113593735817559744655928557552675727959768296767488427434840728558759304588327513258837744321578613539991969969503262162316538144020029844938103397788955613016014210808848327897515009816705632976580890822887159003332040392980897604808946070470739666493531183736106401348604720359836461261795553645277393857103216487358549580857857868161201591785633132057747920153100748891325074360274275380405918909509146447586172386608330990667903394458960334822504687037467774656582268961290231080152359444280704414684819788995247670511933168412310720301824852593096104648581183981087294569328826877508846006852995399162476137091296507162854411178790161115121041743604855947260382083158270744423369618900487724726942795484386970822766133140304443896173767513312550122819078924113326247700504439721047595113084975399250373413313331562239342987964890671750936083732763835207765092681922054860070620650140569269931975178985502976983947362266658301681591623989609045092350877339241577425102857988708825661868028075387226760118683490074458724607945987120807386425488383676082073114012826749984065742065806462874919013704019515733550822649349781971204488163349580106914862364795686391743481300480545209577002319877898923987749444275206353812887019321558567861717500875955714558116323938829596572299709482402023061711377634669932312510052365321862654469956963168315257696497592904978498267338481593569886423488800771857481580089327068277232873291927290756349593676672394238544868332268482452621356416376366169025829680439947082101874838257313256680143457401514686755701418780723716539845546080797159192594153061787281318396089288005004883377393079121800126028567595808759058641824140208439362408772580565718819988718665962275409875821281342359680033362233904979076001516418817789475187538433953284966287639202256863823415737817055622095911592691854571913466997210846078940724335328947070958879776155727452349045901165412620020441475616078832417436891527844129759231008664400132999203873596252415011536949765967248644328129738940131838909211559366262313891208059768827582443743371148495234649104611965322630787692723208833677828971828955806872114940816055439593726417217707240396807276529325801759669375784310488994941285638382996610755519410767709346892620811195688089548675358698470210480934463393861278266399010061875210301541046389048356971195851596774184274980583088105301520473741398919800502901017112775394987355865430087054937296662265921754504786947170827795303190500549796837750143034173621697008910201178169488052395251989850769790254017853297470965661517647136408037186216254041233419091429610677432022618707149399991680897750565755512115958026847729585983049914253457197520401893426858964574514115782482641292609886400495006275254410428694164913778884583685387488518530882416503053523323754754410848969471685348197816445902942375491811145110860120500226585652655315199675326117585475051944260093578443058810926979745417180662046531205961639533892903067975282817243946340049515025913541128483981919519257381167372039429995537231528349709510831706028946073345191565552718917265495315515056123421062037681555439194918065210316871065878574590107890186678309172392453532416511558040854554079240222804629424550805278018655434440102595875581818872128304055359268739902258191708822962013299943240489960258217944657458230025095993291482212445082612681245460252655154353717334936352583547918618871289412237205839608943242831728033723776935528087331303687826992750696124714186896901292296213026737541819271884726685809302214671358643634757286708785841961164845701281578303615775760510613999010421084219607709083151836787489652791020510592777701536395210666828607197066585777650507695767921014464134811285804258378304930943335795165307426680387023151246992810471669217849541293924164988576266879755632001660978386079365229368052937740129206689504794970301299394219297420513610818509247064852287828561988210683972055699853233622420907592199189752195144668676341316337118238277318363110941553285858683543244892659571858251030867912956972999050308556473716365516757910437687619853564317819958920950022159687458258358926347009398339843643986155916568424770119788001506023538281524397926612676955930254734197997231853426242211217557233443385467321276215079626162371461367043480581411637836771899356597258005901490620445012627286700752629702116686914166992035380598252049158419428151622460853213217535999996982530316922783571142214760159554497991820882878439316464738174326762662610502419663411725466611795818234914154791912435000908275660501551304099718290418693218301744043915768330323782526700182881263425705108856533233921584639110376022275044810734694745021225280615530389576173915422837492361245795100038182483182663390865654265631501755944774613212898838235030349744705729242645901897162200651305552891101394603410530963539919296750674803052391258000382862670406002569856792921841477100794164463361139124162696603474575160238324445506208162930910069983966583229700944161209927486589513086374155006063721635449595580378865750271420873214184452430863580440637822894921303073520948677870035400985086382858707081303270201812767467542008066572917642343666392912985830340097552723120836253206791161460032644028783240818625889955252541837484946029718279091551807928198705802595789626015960550452783061958325542456831620453090434899986429172339346683559704642886933590171421932224283944417757762370259891807747121626841225805331538509215784370530265035911276622828546886916490732968436114070740539669966034376011658522500120365693878622878447229342526143336481737831326958067399468731409423793134138553697441749658460780130265675473236184324369135559317156679190853440451772451758303614053566961113213163236703566897789765139335639596359612876626142281362322461544404408528045477538533542665638142033397725143960615786226938843227426324389894934785357562067351231864792581257939085089678255031742755435459955911639718416498846639616246010381705539995031010961940413074423998939180260750556294713917290409874497439289096239183007438765435866840268291653094171391156419141161936130884824901445295791945598800812335545281914389195189897880014033696146212466110088054150356283018495811170841230555945002163718630382934220191795191637591670242394231860205280213316604743441408466503208417182661400037815228798808402117276179766572044971606028809321723280364800598230458747594536636461756590464518089096453593271636387340257028161702356621324600415863749854155492915413443473686754605048224914776345154096750705150660205451379696375474720016318526510374206529371044073056607525436305814297821925922812998380568827932327143854005594172507679690538654877352326798452021117740011862434711978153404549866365477768482644456780266183462447806380320097880321291083837055204067711410804942727814240712249110610119825187897928255958002730393740384047250546280409974761343251580980158720609678173978998921066643926685222657703541418159587713340981790662442341733941712064040617825917225531357536977176971516633498614116370385502883690610131209815092449408802517447056179087705730663060096891640305344074621763073686006331786146409716184346354078725940401093368517185490756869475430231879103153775612189104788186242082643851314745026014109550816552654606338625059728273100411455639374193627016468000830308045513707507291774153425939537239729763278216308009928121929025314582817221350262273372970989902876089792725028062746384656569249464485950491902602117818602241671053594981409915328349705641437205652984679183755225794072378908942752281004790946893637498728336077902988208556234217834273855559512007134591039464394877773831664225787121636633597925349266808228268793043316889210616050307819840300778170927624031433281021741353206595928085180165096926394450966316790720368543607750399522629179599005952843322848814996333432891245442286188132899340474866590519432113721246272022703154415302227134606006783199912079389210245991928122659744956905159621755346883198626153450941873002848833187796767757080625659400219774228574418929034108190883690854399434932274151799032229006269028892201172890528392881796001204652323403382554211368792605622810151274484880478905619225930204540742395040506705112735644150041510738753550974043887181583422849414221003324905631318222933070794747649252368702389972418140879073309075253622753349187144950637030828163349848866593975527140547508682634686878062564331700216085769858057974008563505916402062476400214664343429004024850243333116019393898959525098718175440825410300905898520768294300708296820062120104469981165679073463675118965477586956161252009713740345871722321315053222648763810575512535072713439244086716701982123209793967808496615586550354971026354889617981708000892635223735141120541739448805722206230899176810455550782001761989893689758558420438765285538109349170942891145727912772132149939212062615626546064285420525933711110413265399565308707351956075403176921500837998861632623154654847083101252114501560305067348569731387919033149446967709929502065222922797098824752044246265432919325670080174462699349794033069301181592650975383082425804167318716088116666477896460519468851954478089491436336883885998309333081436762376140148190830313038852886461676104500434233480517285235434067549515871149876269056094836253810470186479570705858482333668287432829085119581884827556304080831150065905405282632943602442826023783284533155702469539033624272210839025348666034777615499958231563493805892828768982762499559260179540041971810389618596372343848791233112575872646814346587606626479286415291927595034813373459770744841696150264126596596017487535642498127117176723696706384942895438472006938143540730873816949156883107958842360839170585715552361245969577200645758534466864135130977494931576149570482667850607543346751340212241511068679354327289276694503205454324949287178287111958126823439214936245935459615546483833737590449099617956070281986302140610549660988173746717155491527206735989441251187641255377211509087331276753302061982310913191548563467629762351827252866411580684259853973224007956091317612704139042332071014309381979104016659896540722611628015339149436982569440355838341785029531706559748055733900262758772217796919918718670442354394001906875481612967656946968795428676238892678151928584797579341888609340965284108363447728223104271729795246444328555614427473171974396330580725651767282721552572270491815241196207010072935637926232151932321739181496268939060232506764686216193930944391503995817094672764722996580417149737242169576801343901347759014525863368147296051536326228756296188973358893472698399793943444834458047709403944824614975061109799170334558079044383808071604217599853791405024727712271942049564600298227771414040525202148583024315997849461627637863597554461367372913869296137791173837764428682244824110386134376429943253192411230232010580745857911115025131045195773371332421040764986518151135418274019828999788344492313554641054406002182890819691356151032476771198064826599832449485364625073417554559279478405512484573860527684797437994255446194532516207114881686897253185712920361090168907948416811654547130678748743811255494553748752201187173533967946398332302975156958667321882088007824167669508829962308129025701422564186565616166455771049599527784271552951560789910342085452488954643080803344913262762517669561655136186167797593279302078846310446705077686516837037969182057177686597547651704374987866483466932117051191651822629472667862323928203033377926557884200301075629867693119526213560100903053810095380678945727225215621737682138571346237895573682952751482935790661902002929743820219036631096629689960664059239511765305235999036803504637069520450712569438848985625679212023268740284931725913947413841947125736555510012897876708177575244026299716986068356601278621534926427655356825165695759484882285605544928010887587441550354613169602897663466941165672568697770684739954593251319738936869908909541118592224756972213380589373686441204923421374559795732088402755182571371900759117263093356628245511998959138728378645247980803187476610437491327122278053342432683007581306194212333430963794125160663924673782826701319111972040208083749123836103604297705268951094927327951423972141048899487328478280894244396494598965414322086184803475236930307031117360305686058663393491049940036739813484739483026852406948228801180700690371575807030579721707738876627699585802317265270950146639912604713338954383693380063323968650970315341498540555098909249810313857492644132104626274549356642026437312035246151334546452010481269977794206134783290551285597507269716527519344439923371878593912449703817564860971536006490503149906216604984403813660151239660979940507470561705141526127942469699752388989846891582001258289340370503834087903616694239868223311123156505748834793774750275895492000441373731746864618217500079308211713508943186249617799609292235819341982115442753544752804169093730913544048031354263008780300475521815199828348580813471106063387711585631664311235080141599464255666615890047747538654827263023456304963438504385962077353788892657518856885380734807685841750043359326643845307480416368460123165562763873153290178665067609908712308095282925566957823769334762143387259819246706742152608894859163045158501325811080365594478345169449613723277771113326394678600960776273721651439745233963390742412117308084091205727562461232520684087279248003249246402594369407898323366984218156410609353267807869506576135759795114101283483110120026279120721222556566629687094958976274041796962875624205102586187830444331665514503547408469970278721487634149256147647512758447920267150354716471841786343199883524072420951922050962848161583266273172807011721778212693504140359087893085089571024916488043680589620501756423267029904980624751048596750010650561182360621631825981886444713596938080005394745061090839732453537090585494007344775492399833003724928751016086956888801242822470992325289244728216106452850614500911949468141458649103301667440689872127925797824390864515323766653979605344738731928548368623331180270121358244830473688641114728426882949309913626927296554329924425168924401393097386305406143890784350780726827739109400315798055373246253859629688415474187297043775968086302310370248910178718935435818993805767432302468981239200606318643102258720128715351798707004237638865255296879198454657808083662034541547393726314771250164047848752930072511117626976531046446932446861635165731112451382072254851948953918061617778260613020831743646363721106826860055395836537908771214234320760815017828864082917080951369330673980571681710355917403162713598050815753523847867676008782936360172144175699755381259315112779466108627941151599757547838290695856364625674806133482696530379586803247779769218387687289211847389710168972317981415520798759071423642343355724151234910139854332281241681064056537962558249015416397596351471224809222854450941091839697620119077692146376676390776664894892097371240204801580431322567189168653217154385573266695111570473436909309449855945065619476207684212099765378265108387278782082461385120797471726911762728243608374054496685770792629429795486435826030707722982443400965144468078785519383050678397293188548973551607797278409590545061683722691280876926161356934414269109098012943999538039656612778958088522864471641588110692620570181873205042909759719192348750978864030968545411684201944118883949483787612868843278720051080509790593110260205550085439327811131649693255964675616606854203530279876428596465654294873950471299080075468944701628901096827352707041851538287863830078818362898678558163675292518682626323560369509936233527524212168762271716461763758459366953768975796180871713011535573724911190220203335266636407950784312228828470365518794357777896595412492172106883445602010901181819947980705371927256452385601482483396799423134597237074784110770318347807751430435538213310910457566890078092888506076976872447348484895233995678247021707995611202995704467457553114980458490603584941297370437488693108308822920551639066881423768119326115814984479652838983243869133551994247020932101805531480543606408910490778616427441114173227627864118485988610433649319932209374603630225902224759931801275349251673241842932027586020211116900084546444802306351068688187718111444067897397809492702964839544727084755044276930833655688076370726273312113886324635465841099533407522622301456972517374089039859176755760704076241911673578173679533466646140749715644317347921799413691298059884074587634950294542940169471248861695337451014449727577432367513511735901580433151991045354809364005801150823910664793885016207084467881058175438277424624128308205295869392976545366274708404820417987668896666022022159185674530811014511342899208069717152929243092441799009407786486658584548703447758893287257905284375344019190349328070309691272452592106687623812514920810218827451792181985204215964041915729257977873457027886684644370784911877632315278521279720412306537630080406855943400367130890967997991065220364928743196199527074493875465521283084154817185317923239680757642717230698549839401399358583757267681066654690382264627841249893105611640832100867388931982234010034538303759090209247193171229017551225702903968423158337651879911940184970653529470764067050058129492619633549211956989853981014507770510601068343221249942857285745626560091250105336772977263710104665283986447399872415667222648839086833551624232635592454215694561672496078520168947997800996454513411899876639108151925557538261868071321528200786645684879097744183499823979985398479415973797610598170887613174435022225630389342628447363268073910054476494025027195907879205481381559445783542548106149869054143743264132480751096129722617895168794432878314018139065528712513775694262482136254389166864466574713765356404766057530111448969077993366672291592399364081920722903719230489673699690309894621182658656601087674235377707365807900131020168787088764818237309649605663835844388067884786564884903945046730484638602064742068344838665123907619356924202432175664235942551159940133450218314762483325521835000133598006771406078038572565903443131188292095617125338889460100070632978342583698720433299516179911787096685716506925042755516537769422095059668130320314838013761658803923670118896611425142261229529877361475650019530443117407154972425757564001990797381360051432726962492161744684947162962956276546420818887018511446394490627484101314307505463286930171368585735759292153361901677179282434164821927889955517370818294406918676947309910456454074666808723380749478632606725428792525534720191258853814560819075369462570788082402167632570702032916348069586330048034635933448573373475299798258553111290322278329646434059498528686560876967003554571633543736979700680676859019671265345090510493979008142127523379689790463284645039355835873994148726785140343208009912186891281412749103745031554363595573935152950745767561788308627142711904282592415157016107825868570809364094401858920670915980537111956135522843634749194049710386539899607969746725201121876006573830312184261261493605413752172812894824132703081499654536709205247282238631829454803354960765687057251467498389494360509540216502727455270567820018066762190079778696891011547663417769222875970978422698088771331421795191527863996198253112147585289507322138260344647703467575529024833099065731376709203145305257283501122235242318227220084825356897423575593798998723842383382374874099898918945152279144996752979468513589347001786094120371580656326642015668535532310489954907235366033481846424504705119331146223344770589516234441880260476936338638224331393714672475929583918436646197339485439653272687871518903071178202247709772292099223906922329202540826228706678665881905908015087535882476873971299029789838247423803187814916136689394790554984666320456532095779488681223163745730503559438285992821138775694437372660235269790388489537451372119324876023892320959904689010002926880635035641448534751856469200323792317995642116801388576438163195170501628804075303271736504205638927117154268772903996948786346394511973495203213595699707931332995370301140539698612738792583696254722570507753582008307806264741107428100025138647378917568580888764849882699738427610803191907090495002804357627052172254051308231593245549461994090612705051676038356016875857380728786371132843977032335565409614608186495352867251190936212859926896033681352830440852025325063617417839911745508620819719241001728425767981837903372109167415965799653836952410220072308877311417980692548144952311823601460568735045163949417662767963474069443246814385097906911271270297640916682396544484659510489099182663908253328184057459885644009939598740280323721817135741038096063312907957439703146309294205433462373459782186259486810204974480136269891302256294727101824728022511954207493475100888314241343157720042520018825364234632613565350981534238050040402397673431011488675237862173343016163204770580384273494469889613667210948773570314379563166437283403188228044322591405835827615078250107582384302377487352850149289322712182557457707428936003496557714746086554654420335094528559324881223972673748835333402334545466955231584609764662130069474793325097341132878150176721269894102160454400004452059165339212419495499789387174834611447448127228816297970676532882238826652167259216922636290639660975329068158253818699795116308549100454069548367234673834089622211853573508110521547468439335696429895892685611457575740549676391408271104705667508296054849586690320471218136756135915907782260414136413587114958205279626358365016482220424100244353568958726296873031027917994584336572648349318653026072349124813309361572112013155948448461733575965971745571667442699643020390225574269918026674522036971278412140425310236416497046182519622019111181493444259773599980109928237857609185268122098338665374805782232535943066820753681991349307017709783071189067324564708174272731249368457767239815927125006509032370881541913096127641647111553852360526335945016193731711065414817338896972262758882341034674033590710948689701664588937981121799811838071207804496675999514792687441474729427953190786315894445934059915350569280845102401369447614465656920650487578182485795113835153705595114518942987560651553229198588394347727770694405611273797812232018051451770307535947059865888433509391892053525904050512730881530580654644632056330790298591349576810594723141195882413450491314174716584990101991116375490701753382531637687290110045412583575512244444632428130812667993945116923040503819980199691217736191874802509843540843927455630252705527528395867245042506315242556314325305360125203882969237725381374178923398579703787638075639511746558032925496378771937440005099273320659222143938214565275043070957324211515871188699404646672896316362863908610528922322851271668066623344646772549316020567954392553156902806071947124120205533251430819685918981118943847173083718616134006677030963601455529104552248222571239652532636443262166254958484178258287974819031218689992854063654510216895472011738684811511562434462300889818114948885427597632914712287370913421111190144424422083732306011552903761383279717709345623615779574762531860384858617709348666636249875319266130555609791822010352012470225795200027106528747353818805323910854259077077190982763208890894232358478247661077975691055129776341877276838217102458469447547257805077156941905882556920748390730468352696378615175596823084830255461742430053365933509283013943921574468413454265612191325183120000816028578986641634545313201758477686145429412995101461808178141281145268531823668407241416046222495970135735310917782289548957276855779830183524078746730265838062991860344836843312628109205584742547320640096035013578343642123524794956961198138635127371210503894055521677838964921840689334173931698086344729232243793555808654823712769982475246379539700341389871107603361465704841971510014235083133480159180335099228717140553562792903782991598935448554438871536479756350178609264028494947236858604744372869912458487041690409614952166957432622147619853298397456799472248496993572153682467066205633307379112521634326174115674847423159935308702785400602905717626346466005444981067747893153613875177867473357326206372705577661116730309203832899286168077224159308648853708194903347341773498534230643858822454234871332030240135798503705828532613913751176811172953217513484711437932333699547309110783111923706795157894186875950567115440638229583054797898786348275625871391723080922804472302199776820153333836128878694986267965433906590278543720981689717530492008512564083750808279678092736249599311372888165654772072068896880671158647060545759888117712981745276425652355318648505350382592956800974885169892572451620098920502190448029405206516621936090039657211329554331641018081814689888164829113947656298240160622390398190870659363589236835657785582195415152933682344699974463969133981149313473444492999547411247948537764161076273082570613697894883846404951343974026609504911646951187228099405586353765075254990968212910500349455391738388344480205406561379323324068932283018704775564565590842788808238603982916071407944803777037555329874882703536562977298320104448194387798721554963034857770490629102698164860330905105905114829610678608826081735440963590127307111808773344843708780027459865040264454179432208149292497499036685287592065271563960020361752104050762056205353961372067257000158463041256505878207071724831291651495574685463159664677283980571544874552526627604535207792505926845304687468285675377897068538826386204841154116214888407156079299898640062632391567526166407305817160950204933723947442447550586137730127865203286020588771706429608031308538292957814924387046726828466801034293774646438673304856044928804013371014318512207527492876384190612295588776369882813744207512857143841953643216218742152131292940133193013379795413853821618994942189159794803768498705531333241912586912224651548112402092104532621046927173147200865511919946032625328496352011003444916790762893164718213077799948748171143785532304538398390729834784779600475075581951582997960750335118046065786496653378899645142255021829812799997060313953499768219017102020167483080269899193802990503623403891358565074013002390778906466665972810659963961117278600347249805784881795965331316477949944353600672121638298582136339686750162139956013293028687817525036227542342589171671474704229190241065183889595663251735424694627125613659384190619754199686068041284117453246779772711629663069241076584047970469610767681272847368725363748013272358378830117079011793953155521746174034221247075563777797194352356878080775551047299742045706151614165790560133958505653723561966484591238550576179299408900305148969138895281072946854921285857137366756028437516603199087733000488644204577306990455412371438010582210851716536354401239688648340386075962166533029155788137305503881214195058097074827165383472302651901763421316530019387732053362825938199193688861436535919427927983265158241139770667617589771772342052722298113155404062601639373391469600900009392937630268001937958228112279968798285533702100640265077441125453156868751012132326691786769302100806305349295716785541105015313356539063654981801064562767243555574535828089166104593342752050976263447344262924780682012972637801529776099905181829332889546449663532680495981426452949562108165361731942437940755699955225853865469556239382715813603104807580203979982920908501635750238863621108808077687448877383318210911817347338868852376392601517583732498873745917248412329636214616264661797705144829618170848077717246714797985830703374089432932112409592307959977870504360230753360702222235252969610308149660703965430827928269356403910462068885879252362417015679911163169414026609078399900575977035658082718206729021148557478956097098383697330430170856452324157297034618949325315199628907820535276280766784595073750934418276245762140887738280905507146873490632486094508372186933871537657754813190809244250426852250941823799930297635420664678392025112950841808619755014064407602830328654622423387927687357325621498468921525922214904812855539344181249888952055445369102377178190156654856451358063121928987833451416076961625801297789412417274585284787352432622391627643694564138178177913396654423948697331031429492473125847171900913706621836319788037149407330166096170724871061519018556092508386265197453878226562939644810086418721867877753593816270365540320930664055117301430366271673731092799433434912542672202922379538402413760167893225774973138317986810145986589278442416683732907125685863971851761860595859997312915076005318035460122089095868655104278867045087570728697824454913199335049481160250142378783527939520325385728729392404482314441540488013201523795773655540615140923692793260557858308762378408500028586995394869898774888597893212145199517725971988634048912307908054648951607514681701679656391049650850544090041330976453887532225997214613428307182323559602384536781427859671389965847668900010285430594958896521044737862405241470322405813628568326040667662687870867372124484791403269620427555595117965863018534361903262005623587497185208644122035318909958594010183460086118390397163663022351134372187123613351139276198698320309673253938834096374912586379260146422642202969506765541935597366186849053860587065679453147293775161422537986827033570131168407506501759239798913737345324326256142424920462118005253039221069076827053251898805791345641604328292910101766880212983869202455120853783405350537305372966201313068512361808248094307234720547440472896327174729653754115211796919909573877498389462254400443488373419083162924755703075258653495413868121620189138025835602932802003385472748184125767381895283240629144620377467713363648699258200811492932326023028755047805744950972593661430866884988072435208600793466860700378875632597093748409733923023647212458542820410932757439737738231667714263078984478030638780604062101145516953063273694563862367088000057917906859614320952853104957364821937504818728859067902791152541216549583698983683707164377749967551437472535619504360794240470491493765138156137246831015242437771957270130461328458546840559131346989309417842446516394012999962089432684082474325629312947081366995591093462217735448176674144008592554979041930897115574824280921165700545398857118996496985025886549022627332131387542247511027221326415374351903109832809533725041802591139388727421451165596791469570775665507661378985962960348140471103926279023728974471245107061888715551245223420106092421201238065940501580200505928746365123560100279965392045923251033223512206987095788518565759464950206724359865199558480001286630087272241542533017042386805422744877836265083698129551996252728754160231287628258917554064901277574950530974904908298344953878105110935057229760744232459962277224969564375297011903764960781348587758933590551199938969788383992991698731713659199790306571874537496270161629216084970192489035180877504836765204160297673883396313330698621934999943336424852154189120836910490652875513230729203391657880292230515825021870269402074405891381181126436867922197191275905616191745589488537022413307106153215116421789277885790386732053932827585043737815165727167028890539640103098100545443756930024352822811755172531239625854894297141786856793406910761526723456074474339541144897210083797091791718220586566473384397605847898340511299823106397900050610877298463103739328647986358853469762762704697772306108567410379610626048803866604885810693580603247554804314652817661784159588509991906904706882530081056440194912242130802090278817183416274842906569302677579967277145580163179282586297589553813013567528800231203107719644048619118878158889581354639878869757680840404435689848856961510926594279938702127351831257687699341772651087611970970369864663740870363544667519746833049924789379710234985266844219859136903792098394431639232523704209740714345733725602481005471674783446919231169892336468719033307647400320013202516212834557395962909230397629994618899324780351534731133380826585610921799402468987938826290356008835048201383932865890909477587459085776524765945684222586035434570795374036812688674134438503148410828013072786504603306550944754736823382889056407030406857050656595965550609149965179610056753354178493985480076131874943951020552098635941751885760814947493359818894092237948679381418695127653258600148686261477459913528262456253904892466301318952957417722631991865976765214232065492670398707779040652069220940675834249724357191498872305604488255637840158305083652901541899021813138620795278905174665379441713588529046865416406569704010131541509357876277858799375393635244197105809933763129521776115829921293720598163821754509436141337338246121350231412978101789170690850494286447739144601235862224049949586605916302626954429676217299832409070194673231196920997199095486940654679545767942733779903498915699101511839754046954738674434730463780124467489158133634858506417429396485781212219970160020857149426365274830925964844857376803197003995468294075658425519060235900375316939978145081430902468661170188070244693181643543840487476070340638689144713151204388909491740671262993842045786421459042136882501255503766027747336151300852005096674548447359569248328180981220709209626310124150820729780097165536593692366429270479641889759997621724969250025029681947165521805384623471544438113321578479314553593001485126108990153189853322373841726517697073780844254356691580289499141381096329998687971499066568513479160978735919678407607595095552324024494451648931897432109727283873762320084294583514882415807564319852959463201605253333656316763955015108585997915958169637134263390999985600431440892029155560455104136378044199957590451064073539313164965997984428458972808489085954966671388409431413046498599782408291012680690887187876767775928712899546070616424077709469145299643026422205246477814827921005074940898412768352092649634281666402552275990014499673378604805657166612618478276511755172733649243052550163836638040297726767376820535542539804126302578477554525634021315959008640663091356967377344935136129666622166406015101614464167164692148483025808088996077381284767657843269856630115630014798588088176885790316311204890914453218341827962489514093213089914537567523475693829307373825193378769552611709297090558155694670929043578716720895689917098140657385005661516912530647131736857189003836614595463746990763985762178861724941626106561287099705825303500051898017031849761916776321381424429660607594773303321438305136104373251610304185794611689729759045483636941913046682654062079617527105738312825017463669060232798984377140500871981237055290990763467951710669741354447070705618788920656413332548042294002289507730581588513521583763663815316351191329789865710083647825863380075707163321214371917685610076484942329178728767639073404159092949162923713822738754787237889273103156711921473486623818764659428470687392142387480940560641031808778722699149925045195138902912886218334310418043521495303657266990601622730080126093741628840889752476372701885225585884351407772240286838216155241502660808180990751705271033489870373439983954345697394889165152239401926537155068262724752604773298014692369424476471060016287794875171150865973002426655888507494530528936001267019070759367188184756253862727476056657588836395525296563883412545599233109513227494922420186602494210397812168360485231050889238439980533536371595831338135863186007551662772618514842027626040960009692894924786903751271829751362346208965106694931646168077040197614625713321567699049082483532655727734228309815660857319055705420325700729385645667662055924831069047185642525490171404952290629560061396920950235841840303583773520671195599871195088083991632277325979860082371980537765236071088881284275170045715843292368991054131783121618078783254423913419800041647068402285794743768583930465709532441845466420223493210174687185671942687372735218546900847438660661214549964240637126466907820583161195412916414444661462566210369643114717060793797157266155890295818237574672867280529600515856581875881541500369712122477648986073377637562694394763205059439141355720211172395798770625982563237359105849743883894092521059050559318562211481976759700676940253944221165738344007946285698917249747576805493229118453314887664503085027303935264858755136878858260917875904403254912477450231108277822231503907829134083245723168406912422770335788251668718091571860588905052761157754602472847630691676284694707607423766019422934877285434344699751688390463940254990008017636899053829341126040946214243348965073578907649413545831418171945479487263080069866090470281268199263006971507250568736036744339799557925805518064578761549007244073574723549948226198993011052516057115941883776150628608363987011737925814313442500464978283828943373435953384492133710150594933855678016327979186113074272043975841820580265082020166734231272994442337297785914146117926239933671752005559160002346244581407363529100805591613001251778800591553812987228926484421778771901950861713813787916655523927103818610052858021513553843912484889542520699122078332809406221925369338203747556296742971798313102500948796714415208223221321041137635590367188347327037947400868321653285203702100037792743882999430207676688140272389729478555797801456242290262186584353146247927625666051237446769718693588746508812860447312331309932087158176966562409178870274961552861320985698666260535804058139651779881078390265598052708755743847677891557598625491800609630588030186444922140286285356903000909066522468065899874900421129105178083864218246418336677912413701523149281440433966223671951008610537206466491406549093403675004167249609881143912301250119202584591521123526572481950279983369359607238436513399568796119582886848890171336527327596926581164897903678543789530009336950951540402761319283949790214831188427530832293270526393959045612251173874643459603763817335386859420556868118762010878384725464102046314986431535539283573680634757550511220371183986362770035780790194472582752209384654650817764079095918849293837459771072527447411420680589788747830258386756940977980032456247002557388936078856233234763175462972821166654344212158957477097778012515714537449158130175705546278321231901360772539870300763255780945211834378304107320243222896414362748107826751440922992051416516314419951385302229700631819984965666580344214939297282737928268437958497044621743891818937885565777303743008248556737023606760719172183578786024639484757979510701715238718464374864026617329963440862441653620384701999092997946367532474205095883056689487034734985085029230273308532294540619423883639007103072759963811681592380056435238421051423241162042539535599502296441421093924781967762441303515875354766039898797777373751267372326667293205496731882707674916288757326221455279870094903353277257602856404870881136179001979370523104551284292920544855462102958388033031643449334453936323939697398269465020556931858067838152136989832749532729589438679611194276754179485821355266200539059311642998487886511252189951414229698523143479856978670070339752097152174157716104204328887543715790051760096566530607691656669677905593547030804560173879568997757283457195036992373343932802452257719159303109946127879266057664882152122234328186966130322065094735079503026545502066435797547654016665014586541135908483352283562977902224394253555818226914843859042259595096182488811307590344141592875695337128728473202183528238783260742857977615230158487171683450153340209023660481743263270987733461101879454107177675733031851186423629666586243384259516245917410121494832508584410293682939398388891194796211546274840987759629063391468003154561031567173506152270240205261722920280211719485060786371104717269017919029909474601728350364505098265274648367603809147587639215095727447987456377793215075525203152525781924790007959071858220640130346038558097245506881197847654666833651197832327022467521906180730299263351855732134895943948253781431860862865497435621669038697894059443838355028704695179672189370710810930809152844242925207662430543939981467453722191037164716974388188068597622077862462523794793973206713964946087609963432801229527054590125607953549209973211694752546284351672665004441935851019653037118595851268360908119067930107708335416732791141018575397389694333913265788975200776869827964698434879665989096333132919051053649011983916626143057382138934696516263758060178538378909681083213915848108483832242463534262963743351729328715944642848452317136742159497142140948648045593511476562094964586036918024962137475580996120914896000571712521730302058772782267337834944007535827804133374356037897614255296601052039816796085884356592657178270378952581050775464277686704111560741957900911684696926141030305930861281238632108271328442813794232940997360923633720300745487459943432725007049515748743671199376709115870311787262037344586865862590385705984478562090352783086349290364462857535017480903566152215499806819178715763979646916535462265242954486989410984910166300168245111094697842473805338894532226240664609024475783383730591300314070007845653271404391132578908548213886694355843207883529993432155541717322333961234436328270884512994836840324072350781675221939967544699452357003947131667204852833339888823035062820365912830027594152444450471894660434750930817037346330308495570444302066762491767659222002238821303727284100504636335761285270349742798011755504138597355550151326582400078261879151608225627803033048039167784755614865294861440568944463988178022357714303532241710440756173773258602213220471945977086433907477051258749929663506647776885755961481814657091942263737621896003262446801919621434732710196967537903458299256072718413656415817896312147189752616712458925766305894483148026665187822018376041817009996183810853032359344298212900186602831180484272661959648633078747328019047796472413261251387540821107698891465236961306401743543320622369051633517953591591404285387375120731786533905553138088305388934528622912952711625153435812306043472024289007774237416377524997407258036034416396484270637472545248762609623645612327306912991462118006326039386273219497627299458979622591191955570834843272935720768079505733557265790598255978345606832430926355569868463805079522217563888917821407211711049832405214643337928422876937171021077919218607801226918487271141729811384478699462099955153342937224122786493640312747937678222605938138270369930571990366251251092827667869862165453568136296294564152229486258592068126447478955524211961916791672188392363739712991037465305273489291974018014082928599713416146713016976241441499699803980863655976139910106508989210050023618838749849531974033313216943511662565633204904974930102122183291816826258952317009819053854244678636709767524404265332795050292325845582753659479323642896023434819916682582935079848964778575026211409652760621505322857775068762924439398922867669538663353003459973667563503742367029959287752258669858038495802801149445806304419878067450958705513597897077121445422859149895923795628538611137715215567105190815972240149642385725760486298241875014405545974913719924820586590567449410424598136346373952401880263799813664678715532183103882021113403307097052309767615740482312149035848776656614129871073857954351585588285842850553159832990895554316308157832278310532749829857200473394331144875178210101995678097143570883650328228168019854204360612582510720639408029276722141829723332203045376710294654138731781011185134081498720319910827586798600938428119933905275942005900196469344798750780807166202589938963645519847496694474142730812159179003674761766546299483729789497622337169035269089253047719012737140680073436986771766543645044129329363087508210065311076537391125295241497821444980295348092439114607676529185684670367883516140867007181997445960832696392987200255905069021156988791848732026380790566954449649643376985521170692927958382582825407116082139219530250041964279251583648209281620317130634685105311749121949112731868790882497043188897510678785839504869532576650303921976000855208535456730353447427817109051628228922278431126840229380111714520383141311839088408664059900216412230774387506571268855552734468222896561455195246108591490471588633753952063655439531790294932714654590323550413864077750828943077787201793002667205035660315850198304943128854552978189565465781275741025818064715722777917646290497128863189516854502450714562318266265045016571600843314308430485272402033312340370161701464735147832869110373272384582161238934629894257675862926342794671446832885983707321933914251207672119243193175105798690684958755969656818378306553380530450856497032228165762652021177726349778044647892858987812932712500489380473882777055417447821413175463333605668768366346366436949114443541043857425985232157920301758816239219421790002784368984248385205644165798236508321454480201698597215046416885539116342721305377696358935880597516650431759685942321838435026520658076966452177807136908021441549989964228048639250299432316406097886369293381199941627254757825477015030772364545080063054027932166292236726375497950460772545911814403174703734051529131326008108131350997847289579213526568673146478989028561111087201011795103164824672070554402541669648146391358433096752037655162912876958228993685460526586183547257557871719579905240715713862227399980517662204247860219905420994638809821564590463683153143414780858732469367021083807503080389043618861314070944898970581304140325855876000953321160716465150793419677234196368042532295528361579669500013554495255394497368074328966544044333043652332215675185191385881597906952388217763742255374292810853747543195376151927466972694883878653064942700293566216902210336085510299903455767389595839633220613414832980062660929464512212512677765286179053296085551651699732627280934360007821899392398029408584927856946741002835674888544509355574989846982169974733474422247403919601733895795546182468746904188917789730865389677417430637333327990375765251360858029678794296860093375407475257982383643295732970395787933786896324341598962070715188816032628731709619414106832103153461654887637485956105711713313856957949649396344614720625064455875276997835085814642779487901165602476770601112903058115399777087124018527954436566539639264783594969727038923985089769992723672126440081014528459097606697358674249524915862143271707926874671291066494073688288696071089793592952466292883342556156749448969360351243281675876826594904445641918977115526174117920138516592660063566327854631312233036553435677061322909647504645992393349227922809203948262906339763496085903099359504917365395170961512962096761352277005427498845396831482534828945615823949021338377708955970710742401540332236353332219415380005690895115537807695290366851709487754204697506035708013991392187102126540120687122747070856589795308465780611758624286987849884283694914606292876559632464624797170576534960505674137876822076580576975312891165832217298642338952283546958977798665755450080912412821917193349382047883091322833861955482899595952646033697972955385165695205926963776193121811739652983644460581874033861452612365053325178515412252860520121378148047090430754070331037970579411438189495177345371701045707568178698750091216962466145669809969623504188176706982976955365849200145747508623606214832018112296439943559739537417219038668675845444007249940086774176187530400560420341407244966958762275528477120458531196021382047979282230237379607619007637422892457737532253462198272359854137808010714220398417570074751622471852168506372874080933749804847253578200301195119447859849310658585389232753027756861267199862390671555937697365979816450776371798029550125432195740502974536626834349393259827295838826519884094078940215659930325109257050566865269764742345387697672055460262440449098017828979219061207974135838624685667940305792093716267468607793530934454529055369553254897091807000907064892278671381476735524648410514984761206083985248947427165183240229687818358418260418342100695826284812993875713681131062276545622964706255608626345738299296188073019693183970325281042500195102460138210964549266675896377225651965652220662730906411148895027317522682549351306133471346248228476947764706542972099680031019095026735920041668074134064623793499849403063935732224868106784199279526750729137492714874181252369804484662577317515183042420269182763205158620480099116676412189730872665900364353403975023155246415014736139542275441368441076562633004006672633123887085151623927350252480475517986286088926622242222840427624830169796077662017429106663532862259183265802450732643006380783578304014972010162182432075136622808514807491044871797201499762873543597711074861743467380778277949796045409989727536967411659977052674449970883061273978980926535029254695559847278469892032325627345723123036599849535382093397422905422097361686562886436150141458692467535062933028848273570909607185058139686025076194939949417504477926134287445739030821073480616846186522556691686114983619263310643374150049314897418521053092217098844432734628895872933041802952349518303900204109445993504478075671895792598977023138780937014321848556706873821562697385991256235429488345824183086904583500931603678854378704858062645873241661763923602076737874358476057027006056325206039722252291925065366003619213393975606149271427875327888536141179260424441365288457426728430982772847816779125601224916427412578551190820297459511494627463401030280338011094371523003864312197540716364264337976951130945699609506517716738252051684162916823864120285692616246607834657927172208920820176624787742153232533700557367185239908809942287164432123645296087690195704382254453605112154805604143993516689577805979518033744143363715291001561749064453085702982873761015429466264019645734428679970871955036577622445072297459384116286300530870964207174247276492109224052403953408844718700989177255895337838907275976773721785122541821142876819021288322231988446007851125763325491153363784657735570628151155138243865875584119984383591555079091956126586187189619706838964835552245396146519673713347651263893087770736164490181187344891653227941147748237904746197919341945522252944926931660019381713333584659277846614569805934689685772857056557499218766829473047346211283537645882755273649580002431572844748460660035353277160110884358164649625610279890177776263086602672448864861481834510234529439230537521054742849446257911907678876992903115800369134211255341159931123623517624440982362152006991221376334090853946895799353823738019020494457875984779840848918056499355815071573718217456296745648132142599692489722067432739773840797820916847020114322884425652112677327714369365783794386293981863494899476102299606302809035799099484820878698796233416561546196163911975861470404501863085349446949626056544746160956404647457508741846019884310559590924253494255191334196275109616797170314859858516903758039107728336939384730148722702580220286969259174049681454237576560787320067689216082144465410431251114161637390506300212906333211417160257136182286775999149979644992335845077597241094511046577513232570499200661984703096436569898949040441513325946955463659122886393776122404298952285703359021053781652693159892618439904503140551064510521991690179926174184941074654838973326638641581743098123090028813278771319790995458684099375908619906345735271009915148850864338056921880869611210841921066669106459905235095577888034120597885628726588047810087599997024894630226707695722072841200453694602236522543514477925422319609211103080849330502078313526340295020540255258105246034276005623951982891288687923417981401861254816674028750525432889944895765244217330016310646435854823283951303037997279724825026659576348440388239861258533419796492067540941622287603726701054191462680168989429544513243549624827721551076237046875337623454875492171932746737589707096975153024613133916247323332897763313058048742513426438559571994772831167697859353941281842242633685234644294445485604954369796317722335359161273249808729666414191106744958868670207017555964168739795696053822824408497789466009416033749232662451585655511868986743907703749268746032242816314201081390649007156943364507740125722940905095683604451556729988040319572218561529837776955547070135448764904461575413809653369054982559557835376322544797250095742869594457499257600519303446940299992666632774809528780448805232081540463837138787584898391285714148421110995156109878603542616342564175887090325127451814747403295283744742099923966671422560459445186014976342225913790784334728550559346921205825480606927070162028793374806160801813933466184277204894040626855964457247935881382249408193463211006592508692087451538673667932277512065850548187264069678371439886729322582481361379871821536859854324558947377746810422063752426182586655808758419377534346392394475921326991116941076457029136631029978530099290529428239306854187144595050262795456681595623531920465393404712538370429390307612344361535543659228289755664905308047823998572588709993552924278727681987800117450076059716165668293553396177728785322556396987131443406664948032897875279043438024035008867732838504498113332601365901418716879079313621228754893412268053295363475314869809654401870581584189048867355657637397869824199064255447918785592747036346107402318424355682102137661850201072700328381877497822066805593754470330015164506129617463226810679198255795437808708066159769053321734712887996640043984957851409394747645184410922819528608955224756400312009233204515653815070706224862678348114368763608663561415997873738055262220713509454416366360583533663254473579392959836820239722008642857918521045624956266074408611235216818735711041667466927460265972699450930057512347375983701586977312917707605446823859812480831637100862005771880940196668936388841889675166833918813036420947252734297248087762999278111955796231053091537178385928239445790941081646331889356351171717992228894066566846222402271187784153896423659332907534592595777329015938298291359973140976679119289138431166649556253695031649756842875258078019429811094587800581743046179534770486664222893258576969157891396978487733587094500691402774330035982336872884012424863787451758769631562638189011717933908463143672397430735063786862195251670583916665491659002920302599851009229973894940897570207445205696454547523021124431923419555002519967644313024726020230266659434560560055111560609397112784809691338945575984597332474872097188897066485261693653908871736106284063797388888908351917330454764484696730771825907455301985209822867081100349706640651956597741717829842990629317909796493572323285143572905392879301257741012464397982538180773300052162343689505468248362620334689633892327722834904824519134821983608665538303395694156343336022972782745808165245228184808653289592447151871571821613377861963516186920441914486657177267548317447513410339017674711700820839424630387167774276857388423059832792029847006975603893699811225990741494253224893998816926631942606054644009976868238586794617869342659382313807273531899337490996785044734601953799318878429246677652938688396407133966654136980546321271431298391724568221707360275949180368510540114216311204277669271448566404917449305349393128212400001836905126752652419835832762862129461682270430739294821778500022737504780298357625364556009377783803784036934883394056722161216555527769493761271003372763341096900935243203127075946597817351129561101669326487965762083007422922020393774202645499980608855202549841267661725854780738291407441721628967619012725933328018612390072068972627549272437266658557460090232443624537031196968920713119673106763597334768982489974510354448139290127795786915751500748233005277636208408035449163147725735391036866524506956837873784055655469784141325102974866276528250705776630617572432944824108891669190245124266828658768030635040835743540865077577194767431830207715417073391921818114190899101310023412198567779464334058821884028258748983078420579081036259882220262139256880485286541515360530479965523587420727625455530416148290196391973386975895549895955582669555325773562088402766674028792108631550760508701574888513892790118564559287116343664351311880547580086322808454632682599230024001678449332239706065797662347573209108210214519001681131528021085747810332982385410708081453490636953888270797069228967166698067517883515427019216892400598564515680426435651954113535903879794934099059096211343484432588501854835164893780839577613383021979727088006646554774985886205030459309837520313872170584304083757775836407842651781051310567899273022282166609520431193412264480668425064857031681331039140765608493137516192300832371040543212463111697332362004580481176993014031592066213791623271053733964083609718843422014385921576764947399455174257552419877725129416026832491228843767594557337551636538367446894848526174093926202455418783695678372198584258769532287045762470824744564462791686436258413400013929232800816998652444817705737907897867916473016833290721180723801752410185869944934417435574458597633128367171458449364101007412213267097773479124715558564345229434325068579768033293341801838942641324451882596131895842210915843941208682912000843428132409602638036529002036235710964769280691289973656910961300884901202295567145679908751198599133091404032158068955034937446748852275833523855114271001085964612858466184192887382309792946343612733905043950589424507238329734988951079406060046939599148601142964336104732465232024746998368101545953491566641613769710971423490224244410047908382253151366159964135715148787691816692818368520761015647230322439334070913703366347132436515253168165586232825354684726516428220521091793493234953840594318693678530227655973713307730089574451006164669005806042932330311336231233528485752915303036944280204864820205732860224633125267271061588235323638777647791638212896703930005906635371532368437117748402633511846460148876690083898493764434914050686228733720951635523887336424206991227026662832614904783934290906369146546436715481088921325784635232215507897591339928067845737819055504558938502689500909809301222930385828772716935102506726584631534829161081982175279635281654921017654284108914427824955875624005736820748323404740869183283025190369018027624821190974556255456280950890589570693662779048796793336755476673463449428637270900098872952778513068137553811047072572596605062658268954125275649407461931617342608376456854026443040729789080009283405335269849235548560868788121338465743980446646994798044765910803728115264681721205634766716055002259969776992018947472472075333335153349395674636746857040820431114178231884808722183095624860815742615119227817486013974214718456952141642950630275877710055380306928092189957246485979305611976074878911748090955090448790538997748306317003530846494899773051988988052684148938814608312870392522530185839375355374937012574256001881190925297637033722232812915875910628412128771793926729532909121338417121027697331912801381746223372802182658332386427510710877805003960632244822704791377609645317565438169692305338306191287124635025356712056270536416370873507747212399153838564524648072165687924531188890409193868155793386947962343957336282031388531046890010206549309249467908071100810950661625233608304550038081035997301808299986813685644432056382542742828406080799026648060711511331858975220963955029436369743394842685968921744627528099362444938418144210064345903653827540283086928625532273340470447823191618097419503468764634118066853106299574010515780701296417728799188585947801822138694139626636486710692580391625255119464331653102158652432060704151828711259295337890816621718598976854439204876830207407154703704152421428397242613201406912368066038894640553981094313355636953624933443228927057729322739348390343616093057195084567379547332632388081888352608257562748297887800558064439984163886905736529584902333823470996293314043085355694278615336735415378589710041903645839735723457624625787949236971824342886062270931811919594417615737605042299325782396426388053185689045858930043731693268077119998479812377705599316993695366069999716814912847435599690260446798960392082655793278913202147340006557359585275257576925466064161588424839764054425527239723503543429434211966054472910337869406693096921168864661413417011187464608401368815379151837850496449414060555695316072704659126571335632852118445728943418151229686689074288827705235095813609394940580814531003297124057332527313696675958006380210982596062338376848364716969862244043511734139522022071216959657589212475083824967146108912657838412954521947961023395196068736431201188223212454480597896866019897828507411957967636196998644278491512533588841313448644183582936217758299926558908377804223260481137182296544341982022741420488207325501183059992814881453204454933562560123595399681470429359968157758468537622992276740035422268483670156560422035437717083918333564503090007775200146561442241723555055969489314139454956519721002757707069230091370853672282108764200892008516012051155804815340829629182659194284059645826220942053493473311536232273894507281519630200128374605284998089285014369090808799044904696565028472032290313171477556459256143726807336179687538728715928385404372978300650472343310370084940265063669107061538980611649968051175421660667712258816514339304074964535017097536346482814035426975251096113002041957766832721400576895651611844105184838209483565996485403827083522867291782107604620713823170225239420617029949567267813517673562095551978542645890249650850840458947308047352899915175784293774456360944856282997971650168780900594706486014127274619864760653283884969338407931364364676311167551594372933840773562837977520908544816466343040758054744772937720560223982834261894394042811107580064875119477635087940130231919336518647072814584278241314436020941944656965917821091046747122644995547800057337741027834641937905229816609234246308506172418106408580045754716215384018644927545519652903530877988852861548882550424159130194140842503441046918806836009881730377051805401741135725948817749946971604392611926985668511083164239380737156851180292967155627536459689438235555129179313392249425886908022906125699345577896345811271641987001099284009832214566556365044223289107216899487543289853238428332687857864748417551016469856598771663480900410950860751471425825428878278088247125398708051172688207329032883379157130085131894529852913227260290737960692639035572089151180061736491419996938738501232640970623129091401127826655825120169680744615925768230524174113625996624290985044481938683543996418106113706543715166554529860884386339797205352117612333011504547035408282893964403541475067260338711864465036901914077073883281867306693622600226754863428505691652747721082651982289144318247627290526204168128019076900012757855668287449318917486144961892783520571567565847389466767936147129270843333260064483658266699582147022159149114730726166858081213828117702637104195988328564972281841936143004526491936233793241403691286058350244718645851745608085852074607384830835639793625763878284139468808029352371767505038280451069079570583909845030261598460291424356991486371774642900484241517503913447176075498049758767825886644430718168424234789196144632604198359690709604144125790490492872680903388251554988466441915448670910034019938091456272942957018384902793936787156662338214131989949621303064561316268959969391627452317400264615986414144513184162158725428381580095928697604710589831431910689935756128275261281576303555052775321809254319443189535636492635416512953782143490311233670380672193651266568991384498319327992613860598093366369642783871935452827163105846742900903739512382473799597712346423524006451455973500164603652713601361525624908798380184772510294906377966694575732479913994391498134792067015497794905585499695145301023543331438702570473372724319755925321521483661770338523823342536542008413710665826857323153809711862649805771478558905195910081745318790901573167828771298496242979851796812479024489936872665723295815341657866231877829187666941535556015246103278612564973411701216687616321522376503747179351676847932411858788694280274549945778565244971647359913788598442593794613527199561130553830589942476884814238439108542932809430834515372644176999701538832614367053052895565514954345472193386141341617513879173985646047516850852564899148015348763293615243838403990268791614708795923197817129842841535012875096654365414245067213650180377911866503107577216739355074003744360249863681194121517021288992274647828255341829302487695515031718952899058361349640520791048581598234039575207158558923498848380564267197594570882953275931478050397577849059793170313414503139855490779076605516883264937137788808151284421239458725159852003559458447911342996838291779998664896527580202217534804734485565775001014577639247083141893158619696224140253224424349010316093625019978203579109452755031232976236056070260033058984295384378918544594344604787469025589104771897554039422708934978979404063255179467248811808936848958531971111818750726777227917268332599541835099154968982334044930610704424916505537397009967570218498856006750639051026383657680334589342427386257402072455129628575283959403939311312496422789565169398431536377738091090056783445163163530639942027639780408237024076234920141793979588901117899961731773267802180082477274467757918230670830004577539107943351405173784147769949833856558045969516341476000585250113297680666192675821298625793951710612849243620021631550255717938228763458295586498137308166402347615331819909121138591457865286907646422353764581991049528342666811171342429715895021517442300381848717945900462184052911851213115162716188714922774789349177364649108435926722621987560881546994074149773336688178113979735284747400744215332823952588743569325845254661587182741392644433131647596379158237944121177350599063387309544419688197542133576026072997565346659785056345733727541969969067331946787209838659275247262143887701420064840452736387292235572419473044998975333535908996158670394613743797528905931039620796607386898447219673326810427283957489596170233658278532416628823853040563249022140031639239713442119581757966927309437140572504558671565805929549305620827904313397575931676858096690802019858006725247480488918707852072480435401307198199029144108267734567909461347074702582212576638849091894256928847085687349189320680208881660861591249355091438193052560868094275759074290470855956324214888828065182840369911760189410357707648300968175384374766896550320190324518025987130268642173005438843595822646486600806163051466504941318952650592049416080221576823387622516184868552568350913093784382592549207220488688335722401153050368697196973839168736826027258214282735144862170897765158335631347767179369367815361284354029333075897336663081330714657088012965820921693641391674098264451668459156121241042040435037797326236128864742468992924663036904490667277829734663035536436747888438252696670475123949995152866212954070312555271103961245165982487570045493268565132757730063012907376407975980039587072782765714052160712599167764678306048484560533001107956614782280112747254432333304148871857624475559296973763380295852664579080751880128120674639420392417608480468579155066319466667252190589275323669237533902715889443903921951425752427157432747066293259531907239535535065440842418612251542875328326329275605641305907091161930437583244698173519317764958035053382416068223413932728049166900482458712195965717128877813817194189743634956096528216256029614113639787763359358855658500763674886880246753805055217676534405903687562132186844232314368771391363925052906154563549008459922379886121112455226319688121159311745773477557229412147284030400180777798545061356762959667120420010233391537590849164741311688991128314200963168743925844457269009783254520115767072951350931292361204094619087669833566241781811309230575257927197250382792528261888106301133786039398614163052652963378556749771918970932091072459903619182504717642861309121292801552951406725197423058198278112771654358123359342559421081166369348333958424428210998387042354643820454152998092746915719361224909968685029367765692459450941856212416469584387954274815741158969752789652243026267549512994775642302675001532022668391986516608165759962531506569165422914472362280838487170766318628381344532115876686237040138776769730192185330867690258076311531170398959165890617953563464917207855164556778312232478849298131731901088862744058839424515977196990890226445585733512256660916250154836980341753762309501195827606329316639727603463701096271943392403974435716854319560521354985113928226644083576813416965485562550601650454731104529907299800350148885185591947595393257946648525656552814841445959477129794684664789785128783823458697780936908244512832697598655091281171893750450402811623755482061444749550097020392165534863503203162446340065140094386316601335029549140634060753749705458166108586332747633081165822290625220177526117491666421831846632714940799093056601933364508690775452213218350245481372371307780368837806300140884821914659423280210931110511656437524546064892738554448413017859240871840348090532022267613424875325182563742577514287321642396184331873717857683521108305359691010664057157307360016805315622585347406770106628548514125977579346480586850469916803624082145977292477684676125173217851413881607179299869933025308258704119699732094213622892120128431923345087329857580382841510755871206170228953855630249948177005050616952244622850461024003891659015076036711760525963027164272331501045253715077950075136616585079290133838788589052515089979429058815065850344931191865302453984981675986808937537771781837339934601945954483183228996890755344849278371543126382339728810940477104032012901478894991226228277962076428678174086533028332069570899856076258581306360490056549362043638832099751278613862581155220633732363562095998907251018645687422090271480515856655666736570849666618707947647537138781864707092360730394696968254514185343721469622493545350159338789848045698448347199051094546581480696572088487704623303177352904055575762418416289237009902826471174067028218716695916907725459574425281252628496866296472200829013962782642570646227037726842806208569523255717010431914985515542829331354444339945677300026621952491769779840823841495064007488136819863509508144192139027949137994438808128881464040305090582591311395775825286700126046061170191454237796471512415500749105023133769814247643890213893629641186303700289992718032449821905079055688999973792534413084238175004226163540688281502116028169338425926615927396407126160717613820118526555414674920008961459949759278040029413207728936595790949841173939355744776621642398934452964173658058885172762231773758945805343707590225497231304792135704165873052408491496165338721786232526610744921715786827427964627208592640556554604559205836868273811591957624423008155656328388645809370231056615166758147142769701962499743042211622137043744518245827910651442054420684258294650142123978145493505093477505692457860266283421253674419356300722347001578310292155456555966961379616535477857390323005079132676497090586277606903654679335060018320385033210860254306224696093852911856393506971374848110331116888636921848787319753911778597243624660457842219739590830050904505106382911569353653957168864420941922706006148170560644762972100898561477078477631842156438976485444612685162283243002257265681432421592394798031369377367678376784302650617523606466633768947467603760920747509813373281637133147545116989622007556237139294658893093575488846003651481018325915269162864294750605735384270640834006289105186282078746765707075693805586021500912583166430364194659309237470467290723170805527001974905356087442288403304642109883090875266122406811375715459322806080583511736468345491370642738569353886414684005325176884500402962143621882603109138791913648672024361500419705569716965621576726479069788486597486197017896794765343556057917656487226817964800758722246275398214041474547391291899658694469058335132445364116644138938123785827632063913924753479211899860550609732045799059456513400000983775323775742567667671928773668299059554342947207794366552657137018072440112509302889639859723235460873908783393328190367661029409108066553249829064252351283241905778572531565693731858450092579188788335228981858254033506292547744678162251615806529172915291996247797688526657348865031745244079869317643048025319941328862124802425334951436497093352146133152302813898708666794833752584805312190590479356080842989107275162016312637445658908177172631364004512069213681912401291617291865941168123783282962741731953233034621902818799267289305702112053538958537599781945357762988346019136679028440369285539260454228082759175306863310516127469266386826387706143425510425083188820057714815601659803365615973501761970744889921875536090455943944733260393380288484135779313542143388737778001211708286821682100882599370185527267865994074668865507999429270586971702961832741823094668823933884158507243780183716527231302181009395179174382720243654922112375015353684160326220575369019088342172855889077936054123617127017387802905412533375489858802283280181905816376781132501948933085313148238076546734364266643538417088920102849170501470071935522999151543983684370239094325050142815592093566695660477208202417515081723542716015004344093443024384191086592384440276701498849313944080432338742111088005559328524967666348855936617413897965359944374877326178771482800583321857130787175042961860374826337576533279632440400661989485669174447493307975877900430660130059357910027710115278112032687413505091077828776426753590697994524875592005466391666286171470911372925772746676636612636621165021500268668503219496775087533565616651367389307131266382588952600815323278807464810353807702169612268171959478503024410840026241999392000479349455628278621438302220607970791183959360239977482911599833702931083904242831439863251510211403192708167783389139848320881955614335387273772721124863079818397776046838515681319751361399636026560199330480666952460852700605912289274043132563394466030653768407208492452408204904304251661089968115980680606477546543419748197114706526743461363481159028587870844412884735718048679656978374545726191196721871803542492021853281529402369551958493808811681493366789282579076970742890145066157106909097851880218158525549578475011470072717665666289455382546752260606627072179593138828010412074221020045644727438453782631804999838465093965756124404124333010495954974942628999290020519760298043829507983360335125988440678911517723116492425344987770513691971030435490877729070335010580224879323806328632378438120797627433766575916801523390722089308585628605360688278758929218471772402960326643601033476596546295285924752762089318832697648348258725249418448861427136948619536696040124768003438285248698341804294697858602743732747892615938286660109359595845899529910736328183397112039355140069970147556612609828535869469972331357404476606626614663473864524004228331007309032765769624825590447585030135006083468688217845969359143796706714445996437421666878475926642032276663939242586042707092873789117094429510723454933006972249589629381044904903487663901265003340479436198732836475526700143873125483648308361376185818875938507801116894211792844433603416444583181550192973788666213382188039075078661612006648607213421534370455235904639302093981196066392278639088018473894166961471357447054764335193955925638278031490144659897593448155196196184909369213219762080973260653962236405789894822176486448414468100427181937563148492897582986873508344729577929433140866069017315045240079663381766706217301281549883326603435632009827562046838424133419959385498456899948472494916932361219322288533684388260550148684039781810260410238771328827469703843101276082797892056440839071591788059168065852377709061313266541252016834972628266520028023138951026411841597138935449261133098389048904724294551442766917622063688183427202427297033525385520561944050041282499982943716951535537549403282747069777745973527693933285003546915348467189733442195991500222701091620037965611942971581773364463101617823022404664925039662342817636047661431563730271655478300690451662864071939680980859781046157716147738617681145405905491712575813361145257531322549042094223401559425852803715824186330419889793244507076995581792885850639621936631305526274328219004239791282811300684355767065699132696822905261857125948272643696626761506981095618721620089267794862205824530496081805429827055027930782877317489183947687314311196705068959680328663081813769430519123432780495383897339766537369403711288693787860925814813277708176604226585845656358663784941510086771064001422248908342459763312127382976414143795251441061114354215078579200412981813889577412725525533945388856332290957384812981854500596567509532601531598263966141852408074623116507765587352574659462006920383102324548846981995559933081273658793767907201597128932237820471235395583374405679479622474001322333668151691517593302935311214221093261277062068625079659655896736300672271443465320926156186807557729309671280407112687001343546200395657407198866883874914913725260153078808199444454258318175472704658894193361744194258462016250393474531999172323552877885394772396469689663389607030320781083328338050766041552361952781831906197197954307024216171121774523302375952603824323944533860614045251989538168932643849752240343270681490876458243351330180651590860095844004161867308275166242217150181605824155721949345570253848288357692744320708483581110484672938769875835638246748354594795225663854788751039614774691011935253480223581431613285391503023162870748390304961767847705863914338365996050837045383173962100470946140790546143043216512026758167702379458891356959508294596511847660990932565764453797687914180071476171402635107480828578586597343166388124897315352436313020599453630254296661008217747849013443245676975030559694403977847449150957246994275526379723901159106819166250907567903092516242297394844464215513858057521270906904273848954270489184628123656823246615667443973862483031148571756272107740537533334286736807639527346559263468836688293284651071036316399363159428329751784349998695152131862653555517021125936462985260992035868813335932425281856369728705522992370452075272117784169915832869573094385849534304462876642543604403736677378661036812631648279122940723033381691511243418242833427016269020558593803440319143068660553896283571927751859093462237099708425590077742972190706317092609745341334045769636475531380664688693719195391151771756523219797579577981120953641185058585398348690544673744383355715052708585211746491624877692883225974802176241408317690691170479456187921998216001505723804235782959506146802564105998680261580720304376196715360718402590439785085663130125170780282331586021639796122264375292457020885797306546577646397691076899069187173284690226278218077568011513978869702372124301537831602637034339110870306249860963080070028187278200840976711703953796514977665414864824776527128613085127621381756840712723047975219608849094219058907336184786561423310798067880917154892271750109611374850741768365472383491523737331361414147238282231594102490637440889264846864409182092938249282263134899820637835302633542361434928656719779057698763734070365652759603124950757911328616344554211385967003069099327676207304742285775495964750300141927221558684637917280833946771818386980755578324870778836748989293111426374581802662543621856882424550636351601266173722765419992572449884648208862942205969211159042775403953779094437781949065166596537549922824430872306086763626758286439519488178620146046924818710486153333315268105109250408076837397077356270091984905931297608716959503983410652211784230507659878813858697408373570854281853868645543008405188195866749076567944150159664966070311983456173029533158496254256329819965425318991869058612974575310318754388973023593494723896478264176907718885309375053892158646714240200014191106551005380329210788917885707063445890667386289567755416288793955175774216864396791921597710505926253202952837786526359024347310452349250710569685877113653791713263060714260389433031289342736111667257713679338751622847435220141099621611421695597765175896708611873417880441355891634450555947775512711017097038052967573508710452578186105431721778063465978784622264774646011274068756029641175370624705022088849945193144761324825316934178152341783359574712737223748678712584726091361556815853025278627222566988819406372598786500577260730802815719894538877646906999704287084543397661906601953994452844692827367168027106021022870438770263422563803584208502418727834517312777440163432791821292276550583150899682037769470690992254668017572523022662707432330106527420284044374259944114416358948970563310326015048827448284959337284815085748821902044139243300168110613748831782634122441055276847845419654281197923678827889493189765754804147555791239059707978897917527508485572039173963404411671136346704618624439432533781965400825865086762768115190552435044869583447205752909110800499710490160702054655195798628612915783105560996442220035866772289333612117934254774251444128120584158158505947286382364712565398872006162858728977268908043296037430120414529109611000603614489879628682579491811772385805678887189730810482162482631497897820522961132353583167585772580504582290908164590063730980641766989012628021163339344549253415007121173751452789062003702246996515089065764711249808663061007290666164409699966500168265145108625286200229837069159692449037390524182002520205744629534479753102806570133717648907349486085667321600654443540409859572356935449218865490897659765961495530431846118434772718587987005661559718439251813059103815299321807208681562288959130135186975969090355317311659255542179450281292549334384936050714024267076562067616580628455328685856702935858272600121770818785704770396414773283410125788345546865821216796400710131385241802058951588200576106814464234568448070880519953375273400018157149310865910633717119271265355181801071354672647752700707515438427369156905066785216408414807948814688733358255162279335027519793494946336144116626272448491788519876456670277932198731191967769695922285121921878753581099688293209874944878383319610084727728159941407693129783372465213443990556430821525967747674167619957812788958032785888008100928079307191250819710031027297127586361235315230546567110467261836147267299572724937730144854735760054388643258113862161900990046836003495647430167891389399554434489228186973305347364851108746007453554953652737945661025893723717506077110631435773705459508224765963541509775835817988226702835934029550408936270922287682005465362645713861138140065109462018861080234103644905849708773845298911840606082319199091148775390802806551569708564852936668640561164376019948228900214583921233542684416361532653474101392612494640831029746116172861401130958189617687885126935005573827522301622911611658564727648817019610354575308648919874219585226139241235623936264982056395769652315255168179763392535710079137306012485818948520520755740908070251550397513463342087859058083968452906728606526861179842446483073598401822280132764035805619860810893767591813730098421366106340318895849349226836836079607873934333337204241463949875123053356801747297607012299366429301079670803100357935206028531291690440317112032425300433293257585867658387683766807732593789466195715668040450462510399743367169230609231803700539187733720549530547090651899652697328442988973784097014866353495128711376940842233649884371642311684404196547083029610417370169469432303482658440601884385528898962033366159310351203556856223042948515255331165656213880857567249841045062522028412675404535959459951406531339179128992323863769707996889284369784130685126321615685544518119855059960408131889864477524005074293608951760440117297475473949669526574691383332024076535247154173333001473339698199710565878837231310728714316197320912256901896801814913018255560595031058777537621968578558820907641417186476210995566387470168595081748335961908350355781543766129276267758095677345493444815991271802203045502974751300102493272771014272886540382547883009014187256926586425002178798841850731758719665473912786500184380247377604016089248512160772361788665712031662774498025443000967837857254886654284897028943068384420336936795590454576357376013336417571802270532760842983812777931862311498905209859933049813321575980912346224064228269892194846853985916253863501976471401579689034361979939874451023975490928025983514001270591895281963235009677709452909009452762070179359029799535310277340768174886043835027042631187617848410019600675876816989589516268872013641324966928115397196286042938771526076080353161760405370302918923910732189204630775274328855918509632851683652284386582990101343738247120550507861990080035288714977307428226340364849757346099507828873973274001460229301305466619986914722011676124700405291030971133058331819271804465993351616986526975838577942231731683898537216718267383371551630703741952001538611054123519323667305282883223988139386870075349556924339071097129125749079240196033389475928802981532918928589965733347664004144092672931839868731199462333268631093126521535339150109491827415453494663290476146721913959137457895857663278021271277534445036146255806968020304405518351019738545569771391250640028657098727875267800277767339578222783190259934959898550855399239345694659284294338081946881388671160665658151353459851445389456725113550664031710107312849786034718452738978814035701151817442421308734182033506970417254332273811836528788306016729295653327779998168328465510609257149249541104031978634506249414308274766528539223388887257066795087780773173229679081505335463832757616281275537008739964436649237888731962774136215729046957700904405471971745500025853434229071935313152966382002999474561693691122325840499863438049020496778928453497957134368075014963516548503062509483656483736624835862917040428713803086961664147718247805165713119714920319519390265899376182679472235625935321848295428857618710158125267393912111413502329588070141422076676736205440729747211309172862361713206447808085065395122615845777184291972857188121311370427580903171516625894471218840848808833920712309979318029806175472892333568020864472625631978274957815927599123736836480531818678912890207979937766368161063697406074042258875076497011166457022470940113230513216178885198272578949046328051636755449126445968051735947141605565948590480012647746009313954354760591190322135368264254659878890757991480964155811778419028766048590541208142735012004871181392733515451641184654499843678448064416503428396036240422783185085191249619094325093517135418181425804548692615743395555421876341829490438412821377786157038554881888043825454174166159624662949231922302249730707061469445490740449958737071638079466463003605031813110645645677390674949342982074564025770136420551462494538916307449571735726442098399358031907919464345743345115745338656322886862560701857434828633738558728912536370921421353105315369982154049667840124084993920984911107904746707767468893262853560419107400607484031357265818560393265174298734743331559137596144553348996120266099449656767032158784526135111412155188648740473505246468629663235383145642987102337994296538667910102915981511486130546345148516216853222806514895094750211232220734229106404096016855751062283051208593942797326882609228786001695193725251190374303819322780305073561684930564057509634923761229702697796132825596344241771876837421423045161025471631870669862869713627610976655245218388542352071738125279460290035003013439595490161679171378702079562604219701244956830831838301935153409938639235502417821357288251733997176517528930113924875591856091445964030467215590525067588132963834430171867348892396820957937928576067470626447435281046120090209886548418942134419493676980996077780636652067221814397151997245943521152492850176003355013536780906422228169645643748895427460145086526694521268482558704556602560071552550665746248144394752002362749253850212228218929795994534598578800112867576337370499924586540924037021661465339847904136495745438677415692584695353519004764089584551241173885228069133059878585232880354662589314742575793647587039412871082951237168663245431470812675279747127687911469130671517333656400645476673159142131912917339041371577566772078471441408518583205325505190593546363180617984097590455829134802355769704910898203975161235681309756844756601919296283702696014962561568795501128255111751119301932565992950610729220188304177094531773586429314138877041707449785933053867802368808481024518364070483701165203897342070094152263420740725289974356053509536322848823480831745110077859970721453443777512010563010823916254922613576184088371830885971419919995533156293546641989258307018034756397073631269577568555159679541399439289464720520625464291115657691392407436336468460284302519777039129672077072690483436445026444365488185262577000163670525096425649692731913197174165044903299001056462774901975517206083894769560564062240041308695492122319925726176777197966371385929013213518062357070253295532241205135590224948446505801671981552935222855755619986119249520135545247655142733956703322777536790104716756484731263808114380692846295496727807408009731405071405456380214859121839049504504241912033106800558243482346196948765725424637989973763688782488102453093852810880406413860056932479313982260199587502839963657266163358400347225950657323418029093038138998273449472567064311443700889175353548035931372611338021398680243305716251227828213926235089974395399329230886314025792426645202603087418669673276534261808064539516710329056584927193062254371698609486131891604809761915705574646247633522615615615742200781202604324040462652899704794401254265837717648774480743038637140141582493077001170395486088442100842554233624212189070062015078151350454049121995705232849319208631689520762002559437043988639126255963405357195213759767120146974399364090336881190994406989346935585068653472447340627598045364421775882677124763978078324321771235705610664141150087175735528553628616444887355657565951658513933322505023032608170597273610283582918190154559413155319135190330364661781462144330203416614166465855348007417602529191661600305053418052354027715520859930163996673870716545446430308553646449921994607671835054875868692905776432475689941679714319800335122272115180823437252098489429560348349401714635455085056737306044515079516202827130144963530237880218089850361913276382807810198662447353665763296406742488912505661436740983236080858375206612917052262102925040345139287209330113757361125328793438545378931226623916113579746808528726624430399318657775168671203886201484134674377696228473531622130978277040922732819096956504278589463814456447297963854384798688634046834741404753124386886121928792701176744872238003725533499779690762041761399157578504614525389496572281767491747567397028395888378855132651083047364420675948367155641565832985161294396737533481201487297916859917144039641313282548655540797497219501501256636342042973246874359878973014105033508928816068904366052873043688047343177193174565236206186032316223517829911465086659460039053179570100749062974329122625661640387563215248630133513171973566863296165842625318978363891915358028289586452494642869173768314179997358210769473714694678570843996602369528807468028176363880098713388183586290501917438443701582688183438425557940994072961557356219905684542588429851234866291904928103128908111001935661046450649918900969704082096443718870384532197112465525330428909714178906493136685024765816374935894337817048163966283938319046095229027346269558301283888465080601992943887966370316966866275828842138477629755680231430663965356424357987991512946944551267037033228703417502103637012671705370911735434148479213637655922107505934374194371736018885771851213061340031941110382137193240082538985790429225869016537982656982466055328304317361147175980779479970717588149409826814811553521207808492060828800423185121564808861400962269472980111815785406327299835305874546715242478003944597359043372601945873524437750490972597852821124655738384395197149856652571425737032159798801626297399118640853539824787122548455997942175694015196927638335080231689858329619625594480236926337370630661727846107235791861183870651487211488598530035278156064435991657097099232825238483067859541112868042134600774431264324996407661134294922960933556501558549975947284800103432872779483459265818975030922765763218231131617910992724493698344806082956275521888950527080008566431833809765689249744489577853186991990817043839845418922008921490802078844918035110068070089591361554568261560014438234289510950840384542000701163135261640699656501176419897912935893916266594058565872253892893324971447423278553009209043727140459411714962219192337315679785003701725889274845627869418917578704092272203760143658289922061292187012725289445605457331257217121243909615584288180324190209282629543080114563507120242356889381271697637627466099546522446103138492346030750013261078404712821697126144854201272105160551031230710465963780548645058264713943912559278562700397775054859644973403350883288223770136570746382205980910278789045306282053438174052486230524765512293850715478911889588537277411211430873909996754051267774279868176107994880705363034001490068558127865307049895333143558801361379434804269842014393738585513756733496738066092674643546047614215607451669691687619108487926695207590647729658771937306398387454960913561296636231568062169273529301131461803876736222230506596734802922174783074322324844452738578948279741263914616932221730281961180244729442479780905274920059246722201830736580043927325481805793921900580830041751732438017058014532157601945008137519329034462107446840268225653928301314424870522609060901714907190919065115030262998400843433231559204710513594165381316130646792465842897988911273342744645452237801402911554039750533012683928914339365340423541655794852793785521340151749900198069438731668411966859246505401761182523893789201430623587218899893375006619659319712111812447522978169439674472810081472275313659746885918572688541661120601081757066021049582345638114153562983327210387023546790355686723686197650188859219250070647146516918211156627500230624604400894638226110925360694464579864089781402500651269351499383579592078597931979257607411462888257929108854292743604010687643331252910954018336957904763651439016738654191338175283852881649813974128770746409061298172813745816406705294154423181774521138771803341588619736859992204740662967091402892492677708164069589912677151172652311964511416244067947982353474740336154166891284965580463041783022217519322268775385973555238931291478137395908331319266541226310277120604582819572137769672072160035926689005368870907635247192141792639637730301231423358221619294984775743898807498480755332469100376514365453136239964456488057825121163761794412296463159697537972542347664783123333160841512159186121639150385536021116780363166980160017411597026457144257299065394627336440687042016595427329911603411975719388872857508166608407823328522465097734727494132317700248844991973277621210044438039926125034617198176078364129060410249987793279657974829497462860206456796626002919007774362204261253991433740130482204898686597717163308701297237956323051400714074474921233779315664918840082235937781216371699569565139619761794072613182207114612381334995152394916987878672747899088373298610068886806344673231593698267081486770772002413021104921578795204701959244914647123983925907308517767980995470880507915469048089474628140156107096573570567192591463308643461094303453449838621977773164128064013087581673048928553143112477775564533336155230174589314490746868170851703089217458910571228045932760411666595619421028743024484071308046271985398439818907984305610453129223738993082988968495694857602309782982371751112478723405542553859884423727227685830862593039294741203256148528889019727180941469620523705510906613391192232959488891784327089556187289609263091987138106184704383970368356558442204768553558705867627048854082871955646586116107899971599484496071692540406079711944600817709542297260085682114960527438480926594406940594650830063397539190172902677292062246348629775519186636050374172431034439729412634168510922496537063043286423026678284002204573615668008158320455867178095420222732182463080097800574825997680852106200602340891070284231568390776510004857201743545485051769683973900314426213879876993357154610802454643325587236452551081312016839006454832644661984353853169956002877538212837241267100114212862703211439509794429665407041319235805096834128225759654330827461120923535890600066900144299245752846256105928724948589944906534948159966231968656721522512895397016396561821830311366875583306843239693468499937182984303834765504520634046351759817925078312740728841343844404996585888560393129744585301992292839666892772619184533394663286506702371571215459227021281839188106274329918705523630755388455964000581793396657321934735096398242567051317791373301983000853847724696727566934788274691039116518104179622321728873454744632005817058505698527670452622970666509364610045049616466752760688207882398322720896400965035919887444482588293636811601224008935248219679337652654196274401445253116852470310573783353081707846579805258295621834279025491453665670504046696341565238017568582183870501368651577087630816868658426924655428029805782162818746819241363780748195702958900775503392801360488515634433519830368686882400872568278397425221214613153659164942652789202938854821658039348127106016332974628606624515425838096962721331656655207615740143457169952672254988031271612104248158437493713571222276655074388220962129562280818413560073352110616059564915676067936458579619230941060795575421341532610306151199643174905210318280785691296637691040887494541062515255625306987910495925309506368036275269486667147206351732161069769969079584696738070185890574232257810217417128515665372795555059127571250715028366736834381719143202973201501320977745145029188364327776548370406031455353118036226829757514679104560140058708475832861993470856936618232479130318912658660969888894171407475361773988174217910284004690385227730397518446473933016936103156039981107478107453871235261772059057996921560278622455913122492623312328171503350013691099702150319750433959389252788492695493291239843776758288230898019731478822464975622618795240894286129657572546268731847224516647914715456070914342045626837322023648982634866648320656067657400399623304136191341988334172168508506089899274500727959302814226232428232708659956290407368471328637789839418094037855586521375159278890183313002112440306828472470271578295750906440948072496274537424165458299199251301609393376594578873512887693953597317488384844847382248597243088816030524716065755136691017458040339228443298092905604196422849952777949158071795851588429371382098610080094600691019715872762664627570012899284406536818035857202198491181582296800137241378640069404045299235441021475844930266562466436788425423403628725729022636657062237319452925208864378826889785004137442843553029768940997488810594652721900737302450749382953613111362579216411205658673949088124047764441273958942084069832615274952424883604960060108872724093297832989233611576159784111186831432384637144607567066301811634358908135856342743629781053378344637600248116945644328410853835788001615439557910290674601801028017072881279109747553119445701774761558239805666194950145958217292853957669242352545775874130689903291449183383545067582206227650092745269502127606858044852849479052427584433169231119902344869949574172871807131685444971702379947508388959133091042566316449937789605801984894798315862402847060826215239033222865001027176525210533126063468671181904488301461966026348331127435653472911278301214085065884142061337088228140333034674753009458785077500416429995220007136308354079125694169500456248539066740783211951442152171396608489932710986879940782397898263917582001472596296855939470289487071082143385859421025852025898309798028507038891088684657124673325655665513763491550596138191578104047181186173703203674265933044792702343530021682176102438109397086035457040028462175700892673212786781016825669323077511313219184268429625364233520577035875832610866787243652563141989145577897727655366573161250335439044519027928633922815800923688710732491881383943863388968567032228152126015219843057197300096717492132261282479063898157302264983678173271302575028845083949949800527883454298621788974407350045671016797363758932940403751845541059448178499964125984773869847583486199258235366206134371957752153554997685422108757662439222598994696291501598465498339168765162355712670566045495581032481165773433108427385607526237970727765787507551180563039659731463527011900000245821093520543592673472463918039236264950145469687975330881869395002646296470404182613915541585487718327780550535459485129469072666482731676903529314304968229923928429722437120158414069434467962127579509043009414895749652581592932100261769610404394841975297980147571483681142551624232050423977228629710340791456949003605639799527065471955287211481760695320762744446483538814112612927761786781565667262552343782537546458658859121476392823844804845693835400206434361398812875620904851399659113580361760779249640805536819162508773299828610439563043694357966746786410600441478476525281454285810554565908431953850578774552357436154512825753496958141895717584546323634632115650334020148495583846255993809661485231670414977892368820112221113793526238688494475495532014989629062922739013919700393609399335613117009069185941228656591529966089117174530889872124906979632732591133281515445273119765387947978264655909822063410275230718253289546926027244630784515595833219561625201979540751784859280328380061614836641574835584681622885624448855720916996105702665617627782165489424277447473352043648258203819730022445322143571216900398433106201432128910751321200831635531782467018060134838775099927252862268502092984506758444995627413967723077073161360264163293480925562741136341664188894575667165895018051598385564904835257264030086676858895897276713856484776837137856985370466067653626277493147403118774061906292882086605293415596511505161902719025022591569647021029125343517415130808983870761358457266280116310464510044742112764755575673188055561082693329805602790163829956047507948089781156576129080047906747544402172428559175554966163011188354885617202973763673734850297389610287175852203067789765121542857389156201259313332982594012744688857069497362733415471373974716175703533914839021676372131933150350695239779563528637477119969736466960142557841450510495316029370274195223419299513434349971660580835575971595939784686564566650733451070819302820205671044980907486010558941792608927556508338382101909872642310914637366674967063522747130177973087104142098234520463107292318803047966203137939234613772787755626033988842248990971556541891586151591836225947157644063301373596304787233206067018595801625795225850063104035757699742376451755261034573364804674646865539575959486200322731629533461994807723949401431500266292023331947542054865722017605581206949786283618922358980679088050603114276695113704453589026745066834798049973853732644600675972314491733196607093958746164044299192866454384283930437019760661246916933963926617848623380075072938508542392811009939917814378861641630767214287088332846760629285565288544602775840608552863426163103962803851183851021086671434926869812813543954207481016884368685909628457722725581388632603578156923555164626384999542679333989175835347311007769182279151746420064293047372915738075837910399134700768481587049815057864158908249521739268004380427825934988695514025509063305694771856541550044154974709935319887692033482577549920147937716589094689156245909496881082571055362636039652593199506355960761248382576784513864191516114494400530136377658639498343350440885009662363408776773968277172257793409908936042734144166375675045889289104350831178011054192362761086456064274113473637688360103572354601683772045880548916503157892230540041917446262510092759107232205141228189040631625021542890961593726188708722083853712347615420440970520428682952494635161176084565404590647780339007660401045370998423899234918528014107580829400125576729433855253916863998117450296852329125816224176761033740797405200556668030380331300696992312871007109951512494749357724535451152268127533693904407800935081875667984708344465031929849704472614087785296194840780994825093374708499966857381438400415442447224682039473392794501862777665165053432137096868810579872566387901566641266862962343696659132226305697297192221302954942050125610277841472947510493172456541492703831702982645436445933011202915708770679491530927204367969646851551033312935073519887296626587162182006989631907223316614151382317864027068282935452815819217859843390266632570930733490469605532537164070771224146857172240205292510489449922059058215776704227847618396050889747016040758274603078268329401638139822601233499024494268558919838357422295941496659653327436061916719730536706719229598352447736387144985414586335957942978785542173406464175211241875475709529237168989699090484743599568040131642816868304833281405630556564157804244293820979431599170654874526220853297809323327812613566293966093135216436855356072722500395112726160610202833732033558379162702724649675750356454506204186228973820926836889458904021650009816802674538761786512644301622349689276287678685334031292255147674253729333049217507624809535666643858226069699595407503182572277891098648811870788605857188745649253715376590337630927427564017428079804891159255970699409864284279093557823617921017907492862365662548857410785911442600694721431582276814803887920573652442892777763655791509801763437390854959461432986512957131376050992605702973547606129914029780405258809996924991219054790875732311067347183765747527518699472218886611156598908216408410080937740841235022815945725055573365850930660305025348191718661169688506547368617438710588877649262855257848710654521284325286762054653734944605490081200235800807758184620563631550873413247860808736705733794248373823371451298093301183028409159276791838544734238067020437404102192628422214490671831063578161303800444801895882898230249263215255402540746040925171851102640244814866642607402237959533114537987219138252515733807665004085529623440836168731605204817257967952062365040495259914902303612072795751921048461937855720782668000048237252278176149911881835016703542780913098044608718452599248412634308509045198705449072098415506296406551828033835969725626151944366194343573773813475660990521117533648063094740533115674093818561045683293665901891495235485008776673775484038175598589634938316222694262644953381769593647847675993962111136462374770250831443034377277572150558053182823215230158378527091298223763906285046923654792000264758950423786995577385236950861819538560622854424007016136270986491320080471718371039152659124924268009581044170312169118761014440316129818804319082225959206472482729171674139175340619955376473116331756013251167607279732988460154127406700913622961865755990268396140086616538450418324382726187969366164789499737395565665461460024544843581247669524399095703742526381143011377013539988940460920575466705242934279901600154711330094469238158994099906589919619870001668263225969119718982512460968353847789977361997988256781606106788034039331112443597846053939316530084985873949538082798575294528490038608081356752709328084993280274613340400602950459246415117556746210498370675116685680873327979587186109872168987490898474273030855152484082600785742599958194784223974559606514404978863323334419534953539431852734997262464494144530633389771659760176023209851055780163748504479646201210951323692822911949267613451812745026691780389817545590096764353107852996249525244485294814585516823435105341701407033418630452386799346012235763741303924666910747889993250925829419803119017482131627636506873417128533222021807083085991223086976139333206537504052308269630465332778272938983038358101335815496515586034294780317703279578218879430748208429032315370491484241166037367973028853729477056133519392182534593266582440693120735337064617056353176998731208489936972506547593061278229044131215054039606318004010030705922998182648371487778079575611594104443761014426887356482260458827241093646485098015178463819806455927689036909656197038714073414043705722972646679396110092756887526026308420094111238328847023847976319595540448666252658006856233041898066937685026425579310710036573070278025872714053852110370848312694229125971386118426049861348680820321099461871794094078717329883932346916319860884912983134572734502786050468480910853116046702755379208850897413286619443326923584100377192703633673171560642841637339819204401883502080100655612908905542875884922714918479905132018125150613012921085776555763378556455353259432174060326512667791860432636357047420599985947176850656085947539777122912354933055030838273017099499531893673252603607621409142252023810826244279053103778249471760689061233619822861181686650094698847811119888660422052297812233059463307142242273667523596043769767657500310893746185771102197958292071499182413883166717400964390726191716157774989027398771828568157845824399330178749983519266759359825910630512617690324773644646485193178190400738106364786033384187047014435972621973069611703664258418843103336542689971402169506458982378688076457722089416986737032903058751490554536359632642463651375587276704115788199310001216835659101296533215921214521677380944295712809276355310501274200412993214974790473936469943907866980561838958422380035955928766019844303975652209722411750729027718563161263581212216843610073495253899225664653363511795458201438031070288474450225996022836519158968029933689360310212196134236168275451391694412710043563390802934515304219609847817138865354373122325279101891788059317404999536771062585461679554324043943915638512918341694069332487995886239456450408175578836643424435891034531810846281090843303600589151628427470157830036388133428027372583996122862759373181329788404471120501641902602042480682482998635676541238019548558689571727445285937489280188272819863503218168021800774080043442493151588977216381055651575977269659690467530056339602098698464178010167407422821621971001014235067428168814685584798854362758540343340564188960974176431952336170836181845722612861028463731151614648104678070799880482387502978786697354280371858741719475094168400915731035373664380599516471094181847042695139122744338009629028696089040446837353773523906413494075159732813350968539612176043833064287234196834193142815566265303619674138460713458894201044157023905760436343432979312072305003125525923222144818562608402502841683871404810278681198118357623245711426557444348652444554616906101628100826048716827361857140511623863884254938336874800812593801693137178939648436545001574747476595037572677569225792291657539280596764664276232699991876070836337064519211173317719082097998452698407808063278285816695802110352529966772210518686834745298432653753205179852310063447913555227285673593176965906767898641832988971337858137073809771381232655096433894114953492473119473011880630545614821509698199450717517698512470819857057736432148752488385442189044379167586017367710977436297943210866672850119269635115229314339676279967792572530805207884603019082644532643579822851903787246198486978530243548410412796479350274679153236281242635130465256898927391074731555462536659958537565699476788094273141828089207426683630444462293292905564990468513132412657383771285056278378844243215850002732896362672366211286843408653435118218785497003513453255514006638605108311033596285139887476160880901981953918122340337392298538266392820216903177800181317612691368459273941644020338198314843655089112487323600795719551139236076333236996528906232602956547047621043304220817812283528855683101513778406424672169397327706565661161204087309908938008987892466619202033061005037803240791771142593718182435441597159659684240645950180207143733494929491176406652023387423641154082441540445171827224428473307992435600780839785394476862394977182806509424891950337447170376516595777244159600619636734629948311008217225795246725063717049910631586032227366097361967111874738962810070035592114841712192487621441270763569599372727950228799321118946743737504653908063208406796273640396644104243443086466546715821220705454342474171344496843850267077512207842639410830157250265981571664464943732776829490159539618581320537436379342036707326442748923536728589035613966719754527739476791160685727371742596379716240400127336162920223328602219299522669694251475265998649185874130427869455557330426768939390733749326488235761144513350300716451090925314999318692741333334692777643053551826694958232546483639423185935264140003903703056796688346902548407363296117863692749960616222145363692125907687725043757491552942113584008983783216249863001893252067238455480459424584774089506761274443810758377726631616915798371068353244530320720235271466917679599390717706360490641677165187793619777458478455923078802774617817826480896052954047614788574132351230288702035571329241541599245419972324181753991412299993969173387603875220452571129605819709286462310527534399762999658398323393133527072703745552547108037804117067335935529644815175680796129414070727288353974302602310439274944960615439350817332169048058705137243932254460234827698918595810222458863819966451606481219538748345377579533914247005938820638465159265269626148916087752001933559571649204488705456456473995100463851392496186115510543203174230694612834451487562644948352754203008709785386426160528778656808799014959428406431212215023159364100712703148682326837659951189331506320171963117902328634435027453558801262424748390391249299411093407259068733985684633038728254226553219253697384543637420361939105684091046432696899202879939838660018732139033289621249000464468024246337945764330417807617292278488365492949859625945661990587723147988152340080534489964162500413211015479298907749096967030646361307573625069164125641238265522963903712549637281582475655348040893565180222009854077016911987395422294084531684561795006150666682629016286116189732152447326112371394270261766667630556297903777324025052757863879380460503361422048832217090655053845404403336910900161343371083269341208469187486142449505297544991768997261606165243132448218224761623946150856703209878499944778406588956226978475501293342740598604514282494338353337500998730857036455920511774141884208425804531521755149263806117155979181076718986938003675644083796563077371198540767743290638220591163285815783526951147811021955671763802377759353896122374483566843184975233266563168084020549534396006879609799293248841558320499814719722880235394854770209798184744328875025063197719214882870412045190669545115164843443669287729603506850970478749097458487006541911988845855490328031857495938899507110015045128344881359902550492184063056253097252241942249909258999456721237559151745617728606478158785908214224107571046982841700358245820542282518446907987591078518568167522044079143842453713965044660129476990677852525588993062456339565937704930106428793524210955058123129717099539588918221549718769697892003145105252411199040404639101927721673847445468127754018401558959631604815767048912536212935321767526338472047996514254951085612021367282446457581250809126448346910510552012934495747572719762454632915963370009925734225416289461047058383026462293239510892162289438265276489565725582286764993179226871299515381139701577595935533425982152089748156740254158420699949978132161818420718047175280538090791537606175594829229026471284367199753506567576548780843813228713702930328718229335134430731856782820118720733458696604312851193461387071974982159995106617793584947105501121014510531052981825822383285153410489920631458201362564420893533584359506254636766598047111565781294523405002379988667276701289191346666925612305266754491832921952869479247930237512316286437926414733313850204702170823400960034894052559584640072956898482843789652104628691306959758930452991381633069961265626981486802804287427080394248103935807090735459849802664754881809116257334932708779876277698155643467247417306507840375351902614525373870224412205624438884048544387944690540472647810617495288197547720597486813843398491943564333261296241074860473459860609000833041872689866289697277231214097117520866574137777701689691482613206652716860175881557412500977610442307565716705332583243017259252605910551444834764133055994494985388615046002292171292569678111407107510516605300980363684988330845805992781565376301723442859290984994796056037709578264447885010935969139913873354071138464647591000679279532705011094317049167848570409984346070766341287237701335825336345791840921282021240312616834169655536006359048121258963421018831955143744528702220642105100554508557554078667998658014594836868306462094733898240470736463785945029792395642572849408475391081280570678232594180620885903478651877833158397936883618345430099090925202487436761630636532986847781977915157684633249579280634587043165510905544618323466038050982038968591166657912139279405804099121451594051394034898117002492465277481287497235238142988271117111352641777835493710067990204429401647800317748981388394094083034960009609337596544213708101673937059904867111342505935727232202681363535629016396821164306538901631488618257960953059402348369031259462393840388012568789068228824399322181261134582511717408559070875221803996161306238972870174375087365911618525832907536025207148600174524266438418427811674292446649571334441843456502680531866993387423943317929800052158641113595301663065179445260529411216884330209073904021692140277288769120660005433811702434247557173882015036525394212030921639453709536569546664358281031957308473853153965749077049744740463195746053946801980979341773027118897980615146420337369871034071792098300191667179399143985805006770586643173706697906209313603336423544794511491630259486710467491625904674112422414086327177260379399142413904853356226215562652285587050496738250260145184131469765664993104473887114493511961848173773991676991733408840239128315544094236927982599600137255227261061691037921679386033192580264946175829128271447723535980587591359564132919461918927995167375658616119131338489213469601769992105618145376428544530987591354424062473416287402024012946990246549837930636241904177884075211669341796118307695035751216661502193050709331944762603455195242427478554130210845002901800869136084217291831195839558660267840317805105939819483810640247057124907976287688390417723095117938456714671901257834308395544317774243128476157239045551031229098230775881128442232592400133708994599588511939609072319092843324384355451474780541197590391317728172496821185359370464735439963215705666663446066138606955043234704438747107526454582985082980319832814997755384125759859232903956768116542357338937711111509203219702845891076409822499122267306685193484863078496272419652698253953518169876052729821483578462337916840693467960941264675587594524090031351295583747803962226897878800374486672774959978961677301248719182889316993019160584264661890736300914666131937493923604309822941032178677486253295466047718017617818025091076739091674892407345065144532695545043464559539705318849366699207617689266862357960384826176630456246148954702821024901430557657172918710405650593246968860992171548613536413283879522882568307700839203182621588684170321186799806255108837705061631547924663635970626006759861383000304314256455325004369118607392464267777300405609261439115583122759573741487137578741197721450835529887495939142585651987526410045219246529986823540789722923530367985544963557885034897540138811510557593320778116132181988287166769842427831178124093732211682454388305939723073283756338130909124112570060148070793729826310094851485991775685883627790618392996385636198333797016730361517715615851410002408962622010629976083081671666156069569639963869049546772876689930166220192298960456104683710270051000185154427986288361257740409429858426443797692790292186361731560453130175361962720403850656045988253739205709955059705000810487741370636497441582618974145392029402151828127474691750391256435886589359773696930959890580580658777116900572193391396709776531969990323673714131607788921725993678754989220684783753970529877738175467873198286964944662435257273381889138426801158899619389817138847851903576331189949471263153239055020941935524558810877196482437837686881847990846616734325188898107817775185713575857440418244126473448367765837287888854441440921540179186417135425004972024014212704240746703405192864593265742901987382006215192325371252912984526407345181097461616740174012685023458127782546905856909866635558161369043005044778508193359902958856449378740103291911938440132805740470871804486099676926177844432665598044820070391324043842728280923454266115994883316582944521989760976157676788781929694359507696166298130669075833576843047801231088868248074762588587128729727768214591345804375663362847104489518815128978837430104395297441921148287225890186406334745647900891328195322927213661288911414241404003270737430451103571652289406250932628304149640831882700801162809998446154342177430387303751290959436931470121899998366237340615059677515532091178682912963040347957268766775864516018000455096378941191045955086993750300496508737768606723718313444872779362606331860579332968706391826189399853616135399069821808308497539098523613594189832143879008544510542381517965418974502732510051896694351333164541444247401465966063676609877256408904930886517360413191740063395853398652932509222495472550677856484855593847985611479157944316421396885294337792815629907953739765774657967634244237598939495079862444553558560945510679933472582217332268944495404841788183054109311517851469329354933716959255044089361215059983436390038089467121076572284786165853617149391587522174003477611778375453466987139749935393153230034301763319560206853872278152375430231396586602547471311588569521361721689867327320033425912725783910441890791305409088478852490334788977433470498497081218283679400093765440147646119773055455824748184728917018717547222266340843594377812294385954494960755138251712766185256429513614378051191321186293533304125450796508524341906206369548241305501966376710393109647436431848052709765604169173314634601306825024798572775650999120565519534689005285482482211089520248925570395378372502343450692570619049948274103720882481916173376162398222961183493475837950976478328139014969716388178218509939968043220746175477596376435648636875638640835082925543128768047800725767974013799724845345599177698199234054892189268103755941232621501853353338824215822494569256193022262899047935839607361454216922470601130632265589313451655176174565549831514670542522314449172381895460768168806598168646558654586371092181442520629042529275159203681989736307288454485956399791862626526288854378252794143037833076993761912830067896683833880908206033446689371053696306088650013047494374645811417964454211184613016446927364366998514116549753607403723791838515031492949090102422916474970701596224558254021835946710739369812908268739402578293132302160403916050612082610111264375011465231888920993872991351063059166346625071929284618035780150632826925075265716622304884951018033101374893029897257128977925164749703475727657898751933037065094069708834675026390067383210022056971174120958736144246979541458971349562558152918244199313716427322165638827053645664062397297992971968193335363974469749459598735705057349986818577582297075828988991448537491594899283713264987995817070239025969360772932878056061979744801016129222368984677728812454244181192591135810532833446806581216176356223430781283099660113414804689104208493997997622204626802119586064474177168243866841398163571929047152146054272119850402436938565376829307886641882330403619487139675008152393480081118688576798834911043847935133644435273734565100670622796258499193424703330915361543059759625848673886714216467412353125163600402371016515007121714440019069455959381478356340811301518488504718096768313869273554337039806233455124135921094574226490150522048140354676018568038435912262754839494005756233630094732467780448004083697003995915042833898555149203314748752660932181871625296407711858781058976821974371010682938621755419870138596972298589435498989856116209090410814220609268775190298194023971893818284654971684478334516417030477022826717675057950882749153446070718567171744924951105653399080628078290967062686473475531771776687526718441418720304502775251741236984810516922854018163386521855364262077134197729154414046164856358546666447337614077493310674336321069671273841418811322637383152387284588777527548738527102562933312582874184104740431556395977018826757308158193815688619820648728235566654319694760918113116825242443830094114787961488694654577715144494574849713574739923552852972265462289079412488157975080133415306381298137715522054339237221669296191620564158829105835170029349959720065989669389105445017619327578694394940425345621562488933138448432683754842003413258057570165951251398311282259154568302509652679043325841239912280044512710987005009299222710872968872268031111600135514232100080746757467509385397131293893233757586319471934294288077684462262412885990868038482366375801586916437635249425480473669726542336473971195321166070131135527092209996639988090523963836469744650089003392890914828839333590548937681768724673544013331506413973087950924356679906194208842616381400634485752097756756935675611990548456858010271136531802066583087511608535825517254887121922781991801592930911953105908517458363116724262706524530754520727033621647894939666796078581756254360360558089867720214695376735160931545769772936176756985352917756027964708123258540887382701911070249062542211479280200346661607090130459509142031828574111482236524259446851974235957988063612649389167293186842145404149447395411177430573603318812501287549978326212843431244518206839454134349801823165621574340747017857701380901501860493604562488251182516000249728672332954537073623988076019889629349922972501917661047545534293251896578308294974819862993286782248650151687218035560462592555337266277867456370875604326968119717566701076630768723180761685774959393460591781508493315929129326377142387933299591740398159109681435342531267995879652431700778793369329246864859121969712393253917171117846685950040014048903901865825476441562850404825475146321404982372657301376481430027589805960329928920952079824829036555570878110128436582105052063820115439547159161361608824562179112307900817053324026912445066309212843854463585672590890645858477345309054506459508851708744084808377149256371343221631011475478528697317653188138638187163221934801756239134858812086429238401832888141884185717256598682250079331172805273371993259325092275603868456174898711127589753329747951140133555717387439726053093387369886919872232607255760621096372373021578809927921899324886222826972678257910532179465815829184022370406062252599853971841249311778878582665211192800367948483884036737965194091867826487839988442716039917684395709015877529806185919791833593073574721103522751856888197479324173909611628393023112372865754225469356649534396435817787470821472607272500277342397680775595049800043311965892784857199025546126362660134572020064139316359201626603218067666775521385587829933969995869618558945227666530798781274757787915466009414802484693562960055618775159228586648664485715219711001160793567880675760736768791629902682232950444252401164742359948653527604582252874785654810952714124746155349249230836432073044937702567276501448592766135539364815265687841238119104497272054777454897728107539809574829753610154942931857735299467998081449098644140736947427429170297648848594675863629077914710759205758194430873216077849929945113563182988177157362536160151917467149222317887654137779863381075280382943415040386470131917907214228493737466090619645524525561338756243716736941351089301641077745805526190223459390285217097547132247015693787434141102815709444938281686036946317508216647777965570773990803626712351067028510753280111029667102444072670018826193459778374562942100544006746892132159766000555554917515068151169367172792383795489857693235936187751109358899679966708400312322524755609839787439639125890636209591950269656702228475831944473188259643059930950007046237690036350495089777090250807049616738058060242793807141104205118386770525512510541426964480120232081316196161611603908666272746816097792171893037680073036296875326246071538761835695300469642306696830615583864529169633576272231593734915121575040967534174454953639326997979914083552881246369310790863301909019773239365620095568848149000966140967067711043128866738596584163435355155405818318897262925860443309815870479416647082578157766102948989820951338436902616531323840598354978062055521503982728414230226484953276922268448945311788214052409256562028776591357095405390521419396716298658184247402392108784749137299123409910527124553107285337877820528020150787597333463997316670045984431581888277508725853804696952674245501546516379215894930458362198191462135202883986801322824962686126893451514538291537509718101700001984591274178462555688545560989326123798637139037620880517567525190237592395209063839681021669531663327884849373112218618751083423434816443173252778427895819454838122672830189405386091176225890129038864219943344874828333710727347792514195306949841178573026591976215247920409687217305977923495147111032895460450113736689253203251747840190123527988302394794392519598486264533593198435192052104034825202318483455193757129913689164119754801915774364954951220930332179442272864843661331982278967382696480189288954977725928043663133938476491051891116514116403177127386217041575302602828608413455227974485943675973411640586083284125335624952381664440538809701269423323415634384338350028615953054854463264826446665643490189144949078307257983663767005189075282581132153378584999637375228696400433126820296623229646235516647549963574313961192165262397106649445122370587149097469531633375793555152463987742508359531526333671619738334575634917964217820222579350511256887340169029599038578422228407612558204383626266576644069976699467740536121012616684764715090245958922929402769213354983338202385561455431375502665292040894091192591071718471350224492645630663101426996298157244187009900710858348167656688373585789155403818524821989652107980202220944921253889898950086065924700732562251605084358490176973502475565124046011354857969112167923774344468784563302967773680511396533869360893287914663537045285467411609776454361705235895725824822005497325113109311421502634423765156949197260676245598900907871538782644757687643190010184853866125650811173027284783564162135537180857759924007556800620101361590823690246016442092354726928802592993636848317839070378997344287302768390123293144592069741623267297912804074581117935733249818488250866877434467990729907834486724887654672148990088837522457522870456003089181636901513684965185929238010630397116695174007643420176587499511991385309496321352617427324144177668935435718051323777186269338536082151035154740832274477818620175660835131930983687518453596401173575315972395697811937615099005146786998954724307784537758737665459188176289450508607373011183493854701613955576016307609890352851131612371778027276322551303158696003272612683559725632236620179331597321764221617846514171126284030691816869193075678028346838407942107016795964963830557608536170777669542981797703833040689705530420893665876104905778639327170518701632509687096658946680913050048619325102137564282534338327263686693110468215761991108688724624845580777352521048741217014193901718201279838992317952365080435005512195859012119613671921538539521439896677083086454696947624627677371066827392030095327966366225174183314428472562708664778448583531297080625186866523324505628012093283132035546407247903460842255023652488274395698477171749861552624056694799890269298605524772830127061506733944182137317436001941237901963599495911383962245253762474890849085569107420590203504558114512939760588450435362225027993854577528089896868722020059186238702580600699859266162100552631768561095025339481154661493978608329069438569308207248701251893296158111237852511803499386059308782576364472093656066213863242924208201295044585092208617116378102439278643942613661666526627256883488650134279899647208021674160799762279099987601127838655962098960291453444997101423822436340175254167173544973798403433568662962432652355288744921801736164339656053999671996440290135269924952241872883675252863155157419343665275987977845295475578263371891364110214383772473980562679007064202002043619786712745327636147551478414585082992312125463370952549409049957420962298284815848077739409041923693622552438670567436800008690849716089999424880719650997021557659871317100069058823218179563711713442993387567687087729402158765333419317255851900652380768024820996515548909699714570293739239776490394254690995475584197766906693898558334974297319340390066313717558220127417531407770151014120783035252023100390922466118546177531941974734806939705569485464728927929730558639553119076225203743844723007078674511568148520350524859389007801989013513843731929235062131897833393588101456558055247309703416041545549706249192404475216184567455498171617271200285980895617137043052127590880732535664423183804426229046883308759711523305460974017475059258608664587114346465658292666239373382659992347427137770490379657292222949083482412144688812697432126413238682934558877504865996411408210875224450391357399765734615215959253675632828331440412399615940755073202473338924140118401177375820626085690784493340061514499340549054417236383624339684067694359104783444255071186016786475731199862994277252183637046390206422921606675150823401162353445136596580348033800142119720632763353483052136241527393969817034175110528083208698780969522286961753607407165621446893790209740216168257457894561587326463664472752229748238031970563012697493455558723181897012953792925652278557841055486234654072957761177438142170403037782863839965849815334576421067464183303181597815497295209265035579719475271371887384346592366868627244138869015919892262942350601257467200226639797787972211649601701892242520331633990802085337852854591481594821067865981333677011807956081127878169754973394069065080740154590459516025208902085146997307669267212477171799326181733840949556197892192212141743928550388743294414608697448739326218237082467662548454101251962560304038941409829471244155371669396612747052011860247993713214693927769916401856457789173196312662273665583492939841958528242637643374388595210985577134287428967148497444293533338290011302326371275691016770451394796954087093263870416162077628268052085371667170164510230057797758106093705287489950459912912242603701052965629054292507236057231291181500703495556498146127095345587529126745426416332139792006825650317259611506688216689831930706347945642022009354969653361037335744287789533481196026800814464774492188882788888309762141161438663423207434004970931157651438165641928567339980657221492914435463061803862375082882395072838724134291856072535988714971445488752858502122031406562769399079269976407879074237619008305696042158648144308525478002959596419623609756135824473437615784409813596017265538854915437989738757279977447378632030058238178830407007968053699720813807655658987632889035778063976565688624881792234389894148475334619017731518539406439918399809013968346340356049344058593065404990836753689772270124673095029277226522518229330253528029053672322584752020199784849638499138569907610020849063411110105208996540939894222538340836982815219056203007157149465838952160439636193918578659110412820999917201561015392207795920320089127939677354295943123659767067966277777365319615244755867208239512286568629395371249168037967900341865029744100113579842116473499228310985689614037147502097139683007360704773039479518654478217842243293440566120651390304300166097281182306588127776464878342960501844264154105203916914315641354427540048494075681004174612846545381683321744146979551456831100471276073808963971386439085213196885533620269602149987987168526245121830493757311693854308190849481161194044552006144290676986025529986795946832028236485955699016081238073522109348367741996523762495240603328126562586227007432469967636349006775242619630164640966925011888938457890383784477917325774865546820654489646459464156281685554202572513104166689731938906823511011670956289752565480509583718965085709463131191204224076841942686485592562078903967888216644891271300940456344921793132995642462500841553418872291259852359641548849801950491637537976806079162809950705917828477200534114278906913931537072509508513717148221297055649837092505220335268435997926843399917926795242388157500990784843025358801219505324279025920931842447985358863575418302056933695989039469498314385746875985654963394165007531526992431853740749510704236327776920702602183093487395597864012348795760027817014161858876759202368188842612519712219425382945650310797847741572514512992773918184821766602551016659633160086333807984148828287837490198640040926195651084922676005435004019811823354549466457115949506213708739767192171333320415095769481724183491969305660929645645689154605508769125000405851728758630769558083196154912195798933902909462143564352656838626026809370891971206196040175621941533942385208655165037112188191396300793367946722764137340419521414100393677945481167907034969985368499263829097940330442493614953498881780044302472949281825850822311188969897231760204400254831253852360908790898036671187045678592081738875224908792144759571836792431237026879689196380199779002683031821774948598870683265204476107063592282647288076626278248965434735146356361684265113744271198332983662721132709745399033379639850344989519154771876778777171768861601159973322186264638666979666686885470853680592204476273640527006573666486059272888310458834097330647251505725427141102168365499266108831346806453905281858950664171397745140272279572396583098841670421009081929859006779382822928293015223894553662177992636196871179200249823736294339854761445282943305898594977061584908378420218743129296285593083863492710871137726317855058217611485228399401499268386875923307273353764604093058467994001340691929465810231803318742675955246623643903808152869774867312533668686397255799873084967759000920476762367783476957662131530819725480388776321121363022272785478481967810634054024710433845822514667372471428621907242654580440458209678089466453091923696139843619570931521717457740992272315889505589828602019980613709787517294370521684491698369751766991520314497586938116681709811610529342425286610944061362486268599262197694604523370557533304321505784001405758635576112028457026875571549781083105492178383155096477872238844878403616435020721627006744006411754545297480111218022705909495904756408616497335879964711604086430523882280764678700964795825117841334646409144613932722717091924748597536029113607109559571536455078549497480269008812400024948710196595116619320585860402585845365078451038628157235705208456800142883415390229866344391257661603413906914114712237391291310940552727641933012561818859488486492413642533133041593345998530408116870121759342782134748071418885536941089142450154225564840439766914402217384124494563292437541385838109804580024469562067386715436518631416105905948289221835035854408106735676326603624574648913579281257704746148316454228841827063956943632436594116162099858727108675700006743215810362792388876242681209868997324311195676143665357020355085167643078061700302058060766509796941123617127440553787904213687558365265541284448028153863182273277495617376184456069494036618289854256473994827609119754891126124389434682847124172452713537906543038844547025257188798721095795955134808316814192948465746318696675540025380394492625422348600266830941671851853435782714512815797549217380920892321635569509875558581272611555129447052745982494797855297662159547327701223008114888542690439009411237418465124939490567432706006544054472415414050639460029645480199598196048485855808634340165087077289988667030079597858835373134385441820665210186934285638784181756128668531889001098605958353118627661933733192292250887618241337058941520487147823456937729800955188529383276424223561529022672979472869631223615470989142271622302013077063211358085924693001435068979981256763203597286845673153070898078936714074177146728713501816019784857665168175377922217227461868740258492667889705385896788609040558034273730761737783669410241856130140760918258141960734102792231163116722232381461543318985321875122463985818583584073223547071791430458570980609470843948270517710208501050817851247406809301023749504607428417287389394562791523517590811395003503714578096952562387876398331217572329036095681649014490833929372349104043445886296963620008108145218955978121650159786094335977484894099156125389963540458731877562142144797796982525805488486725338207136380672757044565060953043191589235196023680822497566832395494328443994791959189652540055431979552900996224108227443646903567504916914855364939962077932613736255216616432328830982042922633412127816584501400116311037675607994667612779449079944048814091967121342405416253956574230169535776451732470816463481814007995324882049679432695785118976276099842905969781921500299419210225845975732496117980634805971263065627630168529202980192032088967842995389068417128453220882886044782442007909272889921535592920208180566850294121316551513187660012471781066481358694962477283714979453129929742668937813603321273025650243599349608162636432589241065213707816789568055638972140622904364214223488733224660357211476069506632782382042842847607024164718477396492996385589457884421170878611498949864912365997963493061941403616214856556496105006726639357665330713640554479083124717556633598713006022002446761199481350506790939715673976693167078236217719499121509813589680374648226909386143477461049964792788121852226694738200883139170820091957524251845124050129421572031999002369418624938101077963328627848649508139342433544306461771338601932882221983433840899702028635197728982966530542776916523997820775948263749510595253904117030093238096505272150463592198968545791287910436458225501102721524955490130456518939000360927502894930737957844188847026470791900725921712202749353675995464813087837012416735905375848654361195149059341002872566158669381943393869188762455911063877503122861156189976517285386515540507467455268356059768411832088109917843814700774597549898115148692172423609022647747340248278784966135905914244983097904961640707477841462137491466346751081560419934980488526828540338302923532219705450711400544919113317477516408260997180677865829061795455172441083156125246673832130172099459634088098379752212695262010004654385691767079424273243348099819941701793339139379362745245723470230345274353432775718221009718886656105885430073627560969950884088544271546012360197931492519497735850950463743281800368926374271498597482320479857102884880098784046786523464285875172503967596790287978857738479144666711242689777080257017887612586713828290588003579008090414686301050022084523186928776193008380265483866344347207760994445393987981769888835534822422518994257370469745075484227055790849667339402669848487768040486327358743918643022124532607690148295031881836600178767126120488031746222450154821943711917558507980696128035768610138484097084761387842657404291847890526845449945920804307811699319412698107719996526233378458981417656721490484843005321386038299561071918708360980001954877177891453423573479376580076957558390147301192342722984873333467551146887900566531435863610405720986451960124021710338806999228144331912779008453242000010072307012824800909437342651454959601497066937652163040512305749027449505384720253131135540382600663440548680977659601874745911851351954511438278452941956387449286761726637044979430620914503555323503181587166452950832910132006695134737580612488235294826567076605084509846044108449454992715857398628197287429101540534704889066741466586828789561787845282841864195996085223966217590109029341622718157618001210577066643118191079063692134541102825043748437829029655346366601556806611321608248282290828554171122432174057814906086696320292319454868042773247569154551360412763031556984369659829726844771861192555801701595259047061727119029229232963208257580014447648961487396980718477499704051542980059604725806515970589688084703627700785296054426126892633950916182263181605188020259954475979016718435778176717111851566041893258965829894725656417504698153637151615750787993509738178211616615462746004545092789679473014707565384336375105609356113582111063587332679613172608137990053415856452781596739446393652385421450668176303405656231891486450524176035870120209437756283232896121176898843473810871499979190678692997970125251526706673166934611927993248361011737438563404031380818150718933465229950028311971978458535233551069028611968647817317517926473663232210184978247069049466446067264222128957699902604342889695519961925248680619985102885416079136732470883192706483863989759189419711380386473569026511640535783377285201503049587278964195480627010508910876236522817278382010045998213940359931207659683060452873581260786034395408584857722615590894487589719103030413582471601211632006261587330722283593903404665255323707399235500639428344337038819388860450702936674905144842046749431156181381947484158372658654311904989016648305394627054749866931371803356597439767639771014508780183981484019460223453203491305819767678866208727735914390527083502099643199895953450121390015581613621943618292821585540860094935932403396444718841536425572299209570540083615743313960925571144543965001051449425309231835426098137798026799763923000253427843324988810929881300014329009914841634589784607869514491490239482387175912569376845382536442473465816926454872213306259351498510120181952420568279280936706137424948633802042441710716524062869489687090483957138539656087350821132402485539456544459497369661779113114820273697609922038671202596399981945881298192225732385365727189138374478235949531103457494047988841301567880327665609260991016227832174663498460461945404622934093024014907298828468799370812768471528237379977108305461400449999930531132735319189679340329184143836860146908159860173930353399017748155883847648406964479361945806885532276271661160340103446877991051248702456136627061323590268057075780655221765537066279311696682887208056296385290208318490109164928679347454584867587641950831278851163106276097585069914143801485701908969932046183844890157918000213124986484843191440006797651539964207435279498487569154316802719838558250224350985814968594210190138607925435795620309860390674502505658915860785739269509876582938547077446129973296198079984477262344110010064978055680071834614532641579883169380943175604908965830586935511684576144563901382906512135554687424919417966212222355783323575065239381114174759547918171715037525196737989672429696695679866827529442607224882309982372923051500601245801504995390642151843159411181861922311069589440904668439744033806486244869646920487002510868244239881877153346268728378953530703267576421032810282553637665281234427960911827267180149387059066201580891368591700463857522968536411374160927285067688554110461063859674024753879618612775623668079894241664906805942594718676773246934917415657164890267451616348744433337344948358218513947932698099744364359531941060569225174181736068699351545451174974476521548119892604831016472499350009685631467282865351384371378860791498840955711589219582646231182980756277311226810667173772462301648875248620041830958954728089741346090135070048019841726350939731273191146054057153826958629305113621954478540248551125329511870946711125224755926314576288987454141756529587829327508929373214104679206343887444022903856894279582470134928149847474066235981229466866897608670257465077504727823711455135420818802163317257204508520043570792979687282276176006005656350070741430151835611349770931392902569235511620992061631848070936309893064515295817464208401486485974014849980640380095151734766666154787745766992285364143563848184585947885699307629838757916931067307187613931124307437603712806449561312624354510256205303931916440903393902387339610685434493504610707074235804355445356992684108173593293559257666898003757038720646969906709170833454742437831502274647787053925923587145661081576514876673910101452468932037262110975688025885203271902007514301719438886329511895425810255264146680199339458877158980621201643775893304326366021148465726086681791085488296079675148759594292513253008269254539981675510840855209084859952058151001058297361127624648527122089409063410784593591158429081921237990734420650014395990328262760444225920217585588923335681000110445213334518579873334578575809844590508606141036486786183144438221473151713561178689785563897578440075253668380112529045858650148506968625141001415338779135819939058658407782918147433240262935591019834942799282264784049309871943514332920408345793736021661691820120623176263128042282077443521029454877662728001085090750920371011543029386092993184497550815983195964514736746940282859028278900230447952103863758178309715734743848835439340564096853633177320397375590175652380135827420856073142449430929160718716253726727564065864665582772652924643407346052676600076699275476961651881798950445855465783943218917811421758835955849218278598485119512200852129886569382472598766533010742177692468123633524328610179560964791810270082499289044607117424314653371418540057394605010765670681733710168650141375344875968285125747929799790903858223245751448196365090825665712075834696181271681589904046975430954943957747709844759444628246606494246764305531342268812898491128481905933540271028804114010613373186802308124647961751434378907809824540524865618064366553343510123738469605730262481904037635015759214353916072238680077519326612321868200128714224659618004536123209950871129717328277217957530663345851670069310811516756668331804422937191580302383403105145485437341934590227714010292718944702110841990376901233734564301707079770035320740055791389030450793881369113219886664768310493349999764430271761654081437586745497013015933902226280280220206925860323331055259379773036037770485772744938101385538494788763455083061898216005765548486118214079645780592699572816798077193933202877818790180526597276458089973235558824365898657016363217371544272338461574905074467604781035940510121600430227151015091475871634191858684612595101448588814726436879879439852834136988867184400539206841645804482164521133963626301331335841881045991974597826349599344012315451484183116407474248480185169313474192621941830269315445646456939858746954969960546170164585939397262187228180822006955292672733355430114652971500696769496952329253436632731928962645839828763861099072249726503871150364119485791148030974362729258663343471782045359569002570597806865407359834270248744394807899680598146970678800598811159820193682987683397416655981669409628557735340786460588222446231964836905597496586445630983942799705666398854579094382124170571414741847893554555775969236094021744929352976170350484878585759562502850584371129584685593630596129618906162771410120501612864904673069824629104406486924086983157566894120044146008949089939560995167202841732122453089202282783089777770471778792427843563807907983610443344920775452208077122752043341448753832222076125046839140004412682661682080766599837821114719393286849622433618518549866659379608864440728828054233380698599908167172787488747552690301247380313908188094045197977958220248178347475695521499180123412415315199654619232677763988517386451725716795907229085762259366639926315249194501347557205773186366995877322612843530222544064764927537335842434334688305851127619080084175758737226579674773728059788378147487211739159305496563234289019263680583585859054467601685329396357543337071842687262034286442520312611325365775524405538315979545247288391560543930960262369538094870300513326934234596903778089991042489471417163467920258472266214537794896001495398232436839341973299628352875151068890838468374908735717331258835450739425745610114189331545700768780695398118681474350171001399768869143770159902665696010336546558062840753970754754726378095853842134120643520260884021069244738834679583361751748706111287701716961352857508801909813124248037425574055610036283643858883661709888561076425331175723590070872754939742421842509333043190918073903325990641137187942727478762147517937160666104920110505620163224413796507281581634770342809659184774274409316899310964158181816488823941661133927438699459110895558232336025364203278722109188342112987297842521694881909058734630851618552579401683828390437752267403084394325384757536624061686900951612556442516170361964734179139104103180458149851046658367097133561724163157458965331240153883603073310659890328951679927387771744676460361814813726631705358631729084651690170238555873156660918347852926074232531402621588428569598598944882287651776716182969380308072856789914538100586219212923790798835770286498854329275549505762852833438304073273824982589876888486143886995871712116703681516316315881249135865076299263761684909906118713942592643894170350925925690206334087645865863942404247810152135219000750543648819896439258509030586700691283125328676586474620001568476124421824301132690170462237157449880524861247743069165523858386838493004599160215986974322437989021329553633855651168960468205033247669823342981335873255072987826696731740104363093416000360483761119782805600727771445505427549278704208864206758990691871194266970248723217067536708660023151563663621298654459400826723427704503001598193642460220597739256051648579775195849997520514719219889020230742828874178385662853364619219574987912262239598132426504916414833172799312170314893209238033937368640879789727754636195286537545587144611933484613377742849213912495644298157038599457975684189478951987338207991130611201334346637745718418847630836297678676830042002879209285898549223714252346077703500531662103475685804877825874058793348905936628578687789269657465481966254393753491851158165322856174243450993416402184227778490354059897917578803988174571108362583756002624659190472736781484767425143202484779748531414258800900446923605869182397785787797592505799472249630215723034269532479836901204695805950299352805795161027780166347925023418651097690112644868916493553272058098576179837598702551085037390880844637427092611820070766795710496528804661018943365004732417683957278351862377726136931653285700889867857269035438826702149322010615324955552107799816411117351448270932919579537093178992041318747155715576617915273903717285047947702536350743833477663839225923826492867966787988975662359498633855031192686145179151393316055638147438975005833123177004493620964568213783012856368327582244149563785581022596632579234760466553163447181889294965900755034840609083015408754506321360916272978951309750771240933533846095676671582883657379858502405319412262627745850786116216986010380451254745649870069899206343613357879635372931413235717819856999863873247453167612968107718492550309051061527227845162395752354802421576888033799980993033454064988273136377108497666117121678734704290415437589183445708908467433994372527340429263379219610890479790547143249472729030058808233501832795283532462062926094779481556544192622216870206974180727006782365921342267933610833602473025631059470219699392921722345497946235638862304423946000861549322540997198355215513868155712702507653827392689495620404808743790005348096942821522347881269936760146519296824855259819301854958394723741582433807803745580925739875935258914111393500474130137126114301905865646475243070576039612943888336084528188908067837029024691180269298099202951960045158016708580364856205730131459576113991439920913107200564108396141136792178190115083166001882846974488064353193868859974029537473727182597671219434406965850530834633846961176753986102638340120272501935559057074268294200902156680512497348680037808752302692139754165027436437944970682879784541243976092859004328992165296394671183842049335738276530653001152657710192366543303331023667216825903769661388930136528558625335634460704574689683444292873551718882663514761948606410697602255068092262431490585748143999513320143518110000831568865736894348474752839558653503018612748186990113255731405474862441046546477550138322156029369167300213083919288384839347775752558471271470466763852702155487129886280983979723480599053342861420576345233794994777031733385793782540595715824822070896729315114783461501542470533375512543663811259751905112448562791664948159815649483883189125717896272037177867545375599671136530297768477753030656805335307919182017920963643866787278510678933488878066486819736461626006636985636654067636500462424308691865862642632725812213390702326326669570626694336971308503620636174743019192528961579448343527270144389899483521391594856378923864258422764955211753397976451354342829137159926558207214201664909146560385480351878460682182529563406940141525481847027801274998168347915031091798397067737780186369833120097294771123221340377721485535230753401598086211158558638624114060627485681293580435663470892808290678011431007602646798876329126023050800131990295923557416963740750413615205426067386997314038599567048193533506433401862522470197570633266605261400468571541208865461612280976353991494804406872671672902636611426745203153147229752335344494347998409397096478789446468574250402866791093081249500634376092406628461764870272270397693282100488807759835279394835462817470587295016819702328561514354987342726755149957282726689742888283302275743740014386902091044824869064297842339649802091560875686056819475384514009034152810584338760821304438586674590459440512094346139979945681335897162190121627498429935691201814085994882019867767858513430560960049362856287654140322104811834805475081523918143522921872770168389556798396000033640327010652746356642078990479430287321909965130602257222994231074929800899876500055290943812510542260923946897263596057175242053183605551114811575215353397889342290871439443084596437090515105020733171238443107610620321148834601977185875881804981502621696762388002491957249587169872847788962381083791542604771582256442808951402351395533027600189126497984600179460366882553988783656424023567897717126658624108487501254409022012667260639531735775729841349232357336038654616021978660614491158135472864825228564407927951841268068828405218987955348840060555312584125211325621994539392383345845933300446959698381167968877924570413043331327949246680869397120296794761957239295688673060877356991075564140898144373437634792173418254131081438107601432459252074933794965756727412331420164512640254063554440937916694648315295773697516935430404183165495420920225213820338844446165871179230768815864359856351271488585690014419172889662319076367088473185231956852106966877125505052466047743109914949842206027308178378882605988685568343967191598641803310373847030216398067263798320133679211052331981969027020088003634568003966814781192930777915890478866241675305703205668309256161407845314694147061486917676213423221823597919264645661961385937475516745985727332943727196598403721265631200278932322853723886799430430095958891052630584486971091197542154430950513384312207359284263131410892182425149643645115844508770311245322854865526963404116278882028004523856527618186973833584600811904783217841359666544663351317870665160066808803480520100486055287848095038240680027386824054076800355979855777416637154993975462839105134067375836656822792997911265105637684214450618377299938714951990421848701677131950791543335662705178069612231102183396595612106890972241182899190634673992667877349070170457559392177224917061692144903511184495111155335977098047327570264854077687350876683566429133739158772955643842532856775998388475370868385531013802732841778064357254721459941174610681489750063976372739401117947523702843237021067302360509715295245748330694905587964555567016008413881831882462210895028050499466921874536731979971985632254571247398728944083949700600637048060931688329964710567207950602198276079759838918553575620653142848164627708289829415249586860459373221719744330228632266099425154898287445154338801114389317705026790977006999565352960618882203690190960160001163275808611498364950082843934488185920143891045025077063137612946797492470410728810463918792941310707570979051856739036810043857883705825607036427126732076109949486147287697544037030004455654515252878814996594625907452772602450810132012355355258791482148992789496437892413315578628992166348591992790561629845035436020067310624457306288271279663378561866772405366476626462270646691257273170120893635651350599818563394605836028681713728657491177292212155812787665355214838331960118256210047101135107948554451139537992880872610769390143852573274397230504841478362240390393422450966774248797733554609806513951047213998807126312398669663809179423131516910226413794005611868593353310799225693032047344467376945907926003668439419800676449342303291717894019573568588506411219635824975391214053888984114744595806133637741594815651593852147286923855183418342984884574072245428589266652553178184549738817666321702769040065559952490502109238688559253998763060322303725138743372801716632649489510696865000029417865152524217227157402482748079966277964453102778816969900267644385183208664155709420519649550477036536144861273710004658420364406583869728353866466385160443483336149611003199772579854555590957343790578069348697445692925895697046280428343389984296829214237534751360019521872943991625926186981937269695865510061768220199078511334598442178500067381542289116488101985217369036543371391881625039888740247569820112194973745247192870020012230493708136311307368372296022329616146212350079370725775577822232673013803264181590860939906898056228799728624124689786095860859286557562015148162922252927456616692824826385836886852287964133572886178624854478405540352765324338376189086486413632631868413962488789342475078801820842669335087195307676768378460999320549877464798527664450639144024408876713239255374812145349781178360064012220973392939193385156635955937375255975729419375978552572272618533867170242406588782874145006860448408909449758888935827066922525597045407939389897009286333840345984600171427157421520740578194604020996903327752794580008832744144179653130095079789103926500592538663947689128121986391623589651579718770096395799114793899022003539870148648987524871001027727911894567183064572990583831353454001134719598402825120906232007663525387239563417519970809705541688688165565807639677947460002841085407313393396930153113953930505298676657534935296311883539218055464734932247824625996477670926366205431459407214104944445851788230432763958312792753905674014980557555457519193639662254095411879494020137913625226392990822314728570080521472026485739718438399213501964253559998105039433488895932466880241377865221573513082075585114498999380930335257188128811070190705142192398619035208320168860856643447553772574466133160369616772328043923660332727118100828825762387220030742723720700453634554941384361776243278692117130548189780823133085751324515505884123991304180482419689172649929223744415629886774865280332670963031756584187423885592837021420585759222497959875200145812057443774898350910138487823218602269286004567713528148319278177568110015923614576450608697838203075182088957690446342168231687303287790695189755570111046496831972776408586550638015768702506003961010795715520067911381289102656824140784046706102367525300554801073923536702488775443240885681543901253816264938044826655182278975980311059919864035537537996043935523550624474210040481257370053986102551273058884908572827891955317864680968580401397359833311895194744101885547768083114328754831069947353225377231462895444940372148469243573974919946686197589047920736700039431208602009966441048722015089687395725006258152788025763012600984824475287894196254575591657592859704840078432484765078017590036750200004509418805122034666519144921841299538391968916680509964482799316897315522043205245784939551820196294321193555628923092872013962756138354308167247316544251780998569692963250125747564541314596881849476169923054049804053656255958613262542308086067815319043914803967830232735678242727516782209337046992548953956794760972919963432790383561437307119218768171297776415598119994322243315970886182207287778546637976814184335506277954104292217054222257165412799792547216106043558819692762390153968269251880052401320052752131185225682607670354568343211614234525530907813880685433476181396452851631653759430041396058128411793622726111721336816845785717163429870561503015026604146087809752508297629281425058909048548830094823358818113821973433929622885530205505337162750604321535603719727605704856658849097548316466523367513914802950191547237542548134401096999425526256231437270222941839460451287939016769763966187487104343659107706842566025638312796908864945375105195991851220479852909195392645481900105633181199972298021575012789546174975102608827677933997491498640844043869791118813094155227559968141291443752691760636683629281148982424534237249526768196730728540138577752083867717172419105874165577542515753131057385658137823544882446145008189955192437724147257100945494181548027908360131302532032830047173058008468506006787890392631062906511667543359702859925424423737045132959310574725834970200374785170224212362504035868219650549857038953221798997223489830627749584404232048875649557262313479535583645640467827234392676407602593301769536015569339145531772247568412808308521809944605173192553318191706068345747476254187604102902561352177875490822672702528625580017390540347095567388337764572841118261031174546589116477514041762871160170520318802637578698375417752520506802931793457134315489686027536845285460968453138076545190642479422603581775401153058143650683014369034116695148934105036986695652240993540918444714268179632728562393678888807021214881006263177703627041750949094331378418854298350488708449851751660501778414469186442227705760322556918608471081623528183666402599397948260535310668265523977278903296896277123627228101002494406123067866729139042185529693510593100303178768972508198521854174983024362854358796906886911425578897150017668485635821037740533131617308667510304642683250359329778280585238937358839094094611880219998884712918373440086549156658464203441635421233365024219725212735849760302729240998229402217918714146163030142274636655358204951086626374186519051818375526773195746705170230387182715099683559329815918078004246345398495220363342522192816727397638131055652838415888192222687052001464803499676514592926554020611320264990450715655542283188149820999642016542165379657075959758560388526810818853832461750123367182848812554512493101180545355609497012950588073024624335013490532189373645852921748441842614730159699082945073777106237588988618880299988915268814267985143066326043784689992805463310431757126304819071227986152085576842697343759495132236141376116678654746320366889757692019838076506541777919995831871986258090128042504088645190179659471483605298542876303552173546537210386626282001727872810668565462636893359598685741528568101923706766290687599261729360709282283560665851499413698709673765207762100591884765891334854955903235025306892446508106636505488426699201270087420084308357570784764140726973733921239808809297928533559358261032032002464116731409149775899029881003485823766017300673394199267523172425979729682155977133375436719955420912784139023080729492399622187749156321494585892214603960152669334349519694490508172388178265628222546801548869674817454234391403318072861032161221140523464119809919340047426082706555220412458311446812658967614087969465725871796650320690241189443309313107689321466708548089611587771582691724302162643272732069434962405954899426177339656955647890539565541610276221215866258412857611477905451464652886603956580555366638631238924539014768512116738664160934458199119013652674045062651115125978139677567866090664616314656958836519258167140497103267704046166450497939642384831946426638375571603112725582580966217757554678864146925834321316602438798093816585117354069395379881524187162243014046268789563569974985736490225834247332921462087649327822891774471930615323282897261844073735013095718899265010398679036292562043285499724401808304391666181803570695672146809573934727184741754123629578559512523962242921172928599302539858952063943720455019423210116292299362941156721509236019354707955770606066477952357699357118506841092956313343723766368967474764148155955795682816461173193103450595070498229168871404249672458159399165804235231602782489406868739834000087824838323606402229742967866163916239940132671785374045075984204175561938924896954799575789993413462834298303724206655892878810118280195766755751532111655138289847543794629445014622160735542339242109594952405468937240571773012946334358812543554732007077026709118690692175935787820904195961445904455933128986703409868822568319690763292728288090016304344728548926280570125311325147387396407600075402261214583273534280621663012761649538277892764904427614348072579321282019791025596990207652203708961446727929376094293765718514826545046999087318390882320837861065237308649638107324836589567996252152134901443193942229863877441407335757654620411960555228752479655753371755523335437254652928929476428925142153607152956465251811691719615975826023306432183680023961194433814090962151456981988584571614564845414508780554841199679552895210506932748634497334197333715838134232828229576686763936719168108183873877791878933735948121425944933247538261672552127872315208044498469385808620094438271557471784716382696684150107562640158367907710992122314751245059565931179733842231411319928940998137079961433992582961625749526972519176758450676517201626772387998047560374240557896663963050556999009648977415764282951488344936351350009545649006314003547889591054842642638450021129177269070412789862257148745366391788836827012320361793310902454246864719099678022254336297260837103493963162881688540709083388248961963614466785527953418738022318414668722205254342936211904246814907802853181891726467855541586654895462037801486500498088791223133510614184331228945698140174618346701877018314012142582867498972795691861658928867503315443091463331706411473690501782847598232621336424944623870452320507303452085479737992977469959642917025591878149479015197265259381157148501303475980164281163445380082620650021951380148427145164421460542444103028900649560522508158373544095689065039903695059644782625188082701986930806025788952192501991836438938593494297399525024753007029410843480165078828047586551086036423893558790037092606406372740783720261301507897599597134882820215588305949108201660372028771512262866236663783863579805923882264660697530676354951888708750734395114958135973932218952823317027578050930532781978917073626034758075185805085876384094163199833440417729206383305380346900071878947512465664966123845972761708153915032253729246274176697224969335389362487845277233903759452361290046425906087559374998701447148691926126527539844083643228377805058543313063132936060590970703636954544907906636114250167121180642513891896370522668792032816166683903943024469880355139950787422927804302716608422495108857159549969309324166319870294807263787497676102155646321158399786370055147012993621286450224461663086423301280457378465953881421890929296813287403457963022053236808383104738615244225955908306681780513911505439743828210587045467111871431229815778191965589236349491099645617047289669287884932424405892140412643927029019629278713530270878585598909497234259572741900368478552663469636396678845352410404470847341253451713998935724575145862007435422267053193659632536843476920991274336833147052902577986724268802485191277945618427190604558585737533040844568781091149699846900242194902098739262562673279168401798846859149051340019043253216935822819611030027454524508755888053939668697264133761291314165035877870675498702884064041746789674840588871224197362263907965300177520085359517599917628189778489351924295878780265494499988531182256425084241083825302623511595426245068298019048868641920913102128285931494855176041618132611460504683782809036622500688745650198126740251249562525613309545277619346361853459848734496234318679911534874100408132743086795551673125331895745969119717883055231091162640061135593805055077235510261600579306268395277898684150207877537898918184386386488614370391413942290572727154161411133799164149681988468942011018058146094628844302005098407028850648808480847226057494798910311043941543115504304432147060481592377398029506069322059921032979099734746098969534619735753588610490978624794484649588613553913306082034904154305572948233305555703742809628651743067712409335291798819574826942704911295864599421225128734964880926605674634674761631537196888222705917973086856663003915105830672585125782386074635937460283651031005505658833173228006557674595842282824208352191238421344842276812273789123953655832080817145854495656460836236067262021849594337444480878725548890744079429108873598120671287527060259952422745957555911565295695589552756463273215607878852201986481711857502187714750526533515469688424142929593806782770682479846890870429455452184404203765873384431923855635466725164129676791356220662178700120718790255740836757342974791912971259238359857488813969838967458219313418922127654735447855048607814707156920753790130404523331770662253797719398872707234610888259481793377900332215898022307826735851739026216242856788779170269733606073193363016935412856795255069812545674676118215766843836353954429186055725292793607300090266427073739026506366831511492360007797966153946708746642853299971676528107501570281665383898988783094313609118670743409172873648840733548571658876836245010277423667142421241388357508695803355564920133392000125790762943199382093317436691680864694769985455663900581898919909312369716687918514541311764437590096868796654966741837383609202949342328345746458748252958661856753239278596011456602711965296406341147751626673276960770350274922560078801180055307100692307066882003913337293837383029378389282680469638870713221496237609498709542734509582189598768544207488381568137150503779297783923251747197341370670932181750719854154112314104903937473553238429441393404073214865966348020761842383597243496397758863334403063806653671865099737139507138272053612396939483559194201078009423909037615122389253439900004566566970684337040886787199645688135083223893488145410728264439218934098271669366383644405499432908547726388527754040715973965466012668664536131005116506029015570585555149008712184048794634193315314203273687024876006708943892920737368464206039276779376255385371698712437803611398433569113987666650889756616926633355133413624844180566134065298242125571689115889073198369935676561688963229724141452625822393028433207401308522649594059457982579051288460021522854864504802885837014056414436325411699666255395826450667108945713515575700647162782349307209162916724854999711633655882463355930427157436691589076241142495233378765844511016908679254927953819242647421769475482868224074597103537417059415010010698463829800913529710871727099351738958887275435393717494485464704437376578107887570439459800621808743505456261023519464202418777273988637245274705576186295054958048871793703923205313317525633293121006211501259727702945516511956862828630642351310974135396100531712685455118351324940983052117081622188274109216516723006063422274620142323409014145906417241135190333017547692597535163861305845872625478564758275012668147574888963169246125647753010230196970976194636337627212526536491459913954912215845457687739225552838098989224756357330377093831454373824459506058278831265566745231986875345882910088897871774845336350425012065679068616448607499121020254354719365023849161436578161686235846542244001585911965292900667581585687976780914848314717618349437029313487666939541761075358088096478787250598992500917853768149783552571477586219231684340390118890872313304592053553747098496459844765770974732238014993204877563412718225278384766142945504221171571151293381039495266401294590469693574809146672023550416921191444189210927801960714083051953960541213832770564252296831591005899456014231617139363002014820430932288748716445369791752478443826744325280611146747675246688276631289511867734751453264408565312753753746695823876054357485599534334621630983387417024499350554482883770979277379552608791366220920106988491077491805595495891179186076395228200794651827395056219596447390460277757331553400541627562064280095300888928953714507869798861661932719533379129541199824367917092566832757977988778794166236266125492733477715014806702379900546827961210726335028278902474285812874595860323755698498100092319445007020786390289165320929847168927555237504848576337806368932423907972711557245817953659309630804416112442478977973149798726673506191922276490808829825845702382904576662218849301547400551732374572578461435146365535699964626241971430021647295153519264952300906002172542976549606444449295405785865768435704403492603022514319194449282083669193632636860623450569279110577920956056213972475931113868820983987150848345906952888395337441899635357851086339246267350369182760602501733833034598875046849812014814201083336386870328123220068955453239801149054796898567030081823337928888122757099546594524789115150895733821244698968869659262447292119932484478130384939756946647573402974330717271705640790585267925824354505599906287590338029564101661178537584332738996153795819811936103213544105746284727587596318607674631316823861746900286651765949370189059269117056374424170303236486327055191591973937503611671748022341274945124007502485676059246565486586304433476084978046778925236759637169732174567112035553898813680206405702539569403363258732925246975966347083718403309461929616107827988762594231640958468648483067839643280128129710900950030834269876612840467298334462376933446714427880444068547940897776511953643929201641174955131769275496787534332137329931282728275991426571783211946520692653840536733084279568599634977945512763025197482276206401696617730811005194549580854802977881972711062164290065503396688938110811467083244820757941815688710267643428278560805201408713346297372805921948121595687635512356460678469114579657913285991314314276315787321351661254373448448574916728668190759500965553263270539048554872709434372254466438460225576152679622593415649919768188370335072352006057288738438001738861787351908553298425402410156391789703534456416173364648021267160915682673667389245100788648701527232039878570134985901127184059888410676507436181147612887284636168293297327902485876663019623717403140048012805085059655182029784349440755462551785364778451561516161972636386944113605136672078570527133806877777458528496221300906922805975575543627666916287662966482623933721774745749203467958069008542465276530320477935026077452761103506045909733648921514234258336075209052929643354884888109783490675982072657602037254133530815213347119870151167328015409914719962286324328693380901657652057014469403518022548870151357176784318748002041819165129533290727414370401340132873155125418409875096267936189766605797277813044500398315353040558625730313735050979867633240346571153022512247727892007728604707169432078492462716455296305015456511265935063298949042605868913469198008212285053921184623945442557475626430143159228463703469708516931598599606954274340764360329427601667516203813451628063677383445145389731540123597565529443310942808054896248094684285838771311456793238576525474623373880951382026863191790492084265112816341343656051105800791177143551378669591656592417073264827745330635691790831314007330605326662619920293672653683825214301433050733943020997277287609034778372126660353969286914796799414703422407188497618627874653045347638097917635246808493855724099955207975185466036759499208238918210219329716776041657291525609596126885789070282810515857523953326782770113697439698671686422665202514989298185657444687276418729433152941845467920294968020862589574185416621177557731907054710681002070324721924407707734975017457224070581477953269469132287504296342828724766928000762059639514933273097872392055406676121539792317477803116171927558106538419755660233268425989663627731200282237119310317579596081492746190125432047789362244318758684229800896359380772448784498728681382922952680557345957951847618020472318943558541048616167764833407422774341879709792234008085161457100220422194943582615014156248750354190897551985066500323139465052031670376102607252037342756918637900421083595994571161370231575626709102867205870197492071771655734124082223251444473660109208288373898933733527627518824285927983293499644741623883683364103037842097501001252667996875858434401177831502898795218636069802376078509479329899125226341646576394776776542851591390067462869804038546056949856266974279893666372965997379906841652366849054542682015280789147759532781042715720176069046757072088779296373152501788981604632369841618461560979228803935620216113807579666054104123932006977932880062833501745405144326181906880818669707785382118559793909999430859802993258337287068251432452501654160363731183978374175652311421972369420674003355630078763998978907759206414323170145390683155596426779607715739720510476461826517355666618519097369511681113519354160741841646313703336976931405390806411338241676802510462550492939551535356861326378441815838304168220486776018535003237022611755890133363823836046303954861305529826828612768557480342314380432672435356822169718526696029812722112753957845643768607372786343016541844919219501568331506924718715863358032333881505134220601504125047746401909738393380273427935611512972925647959942642225156139345245969046264490449864224799059020109858209029407750858708075206445554771608366352638157213292349986802648191195969095496529190910881127140263209266456929319577844624703348134306082775094492801916836669187826062076342712671761186950721000832061573431925628684128176734161479208689612415975508706162417300833031647036371923614626287222099430578306903279683336630065517466269968991811964879970399744550504526965083515146596373601535070555958596508515538109625154863954043062350886835104957593925460235585000672083266849179147240490349436281049076429330609590607122543451658898143717780118893004418165198841306113505683516744460383864075752671425104951282611438253089018149481476553873018506644963601593602674164845768205019731865652083078396299164709660325064250050465689779033282830409205324190874484822680201951061272977278230466538290380183503230480177613403956210197994763141654222585226034925641741087603576380944300277506250064379848777946928927722410854498721308511037373324169544181784753476058207374196700153480087566068798299229413337578003138751027430012554645718187413567402607617627907508906017196016472263965555022899759372649167825505204631016651568910585335865677196009785544901376737874168650129165801058036148556583077682573066477516499913985152971641290643322727372233224394867893846978713722346279216940335657708069862212945442769293354241610395110215789802522931155459068906523417663291171400568581088052308959882543297635922704283478073972475660995722699916638545568284410371517923316190889845180039574501304314570194760212156215538189615187622255393121127323703948840910300550333856844785864847710619895192147933329476602526197763399017878572820678531856632840498089339979207484520467129628016132043188610995221633882878016972327085022085229495067967048463978951160066470773243972747077117967097532209974584202288928938235153628286591814658420940741594520767765129079421856407607513106154799885012203089932060224535244369785689184524413540795581821976094949608979204403796598369958265482840669182807583121040162545929524903244037689126557628465774992685832495462324847293910164222844495666957246084499048653234071186910157010934007102863420003458929770181717659124077854477606519298116623940105388902881521562736611391428717281473561854439362730769441525786382841607801629509626396433874000384355997540601120591364541423410648170179034156462209561611842486524680614058561575456590365586006683124473126594215549856725281868606659000319302180495590348642051133658848517335157796167110673291154499322955970447533683406260334567036517458559167991598538289334930710168281580925467553393705473271861230409119403218129677578911156455929275863752699073895008735344430147576612534014456218809146659004026859517584586437118638139708963656391421095201991834342150912434786601826476182885771994072067860145658473692241174866661618181724089293885839916412272200327848562848269196892059995712852057296699097689820228309317168663100769182156664272288996669486972146140055366636940350502439772936502629628175237014383323470061302136129300005920366470386130274139320583778981997838126779791496857727130683858186788140402246662116061232717808871860684788222304458574836287194247574655313522790208653630365921880566376261145488567520049933066364667020758860561314470640100432085728351145021243698019529955348210729964563995064791559815942225810246202055194524705095585778820131601117472675428710805899752072004546344301494598285751134907504698522721978065402560482557965405976474409747120018655233137880013719680682133559203524939280311666186828383134207384965519205079709245091852711948349775738183082331888772698903870873720700678903772355936751515109736830221399888465279544932987126644481598300057065081843817822745122086417397906304155656162207891779304877122897295948040084904753003068917591260093695803860950351388753366157464133124891701477631023235359272460402733992130324275167481437755575888775830905465127881031770794246003070780669973034175310022150932833709460897945482815780828887806629909601775317843243596615337863761238866960032683236431587447210250849127064956849431624332701549713769947014393668785859373313957833946508132325724390598360907977721701365298970270004026290907992532407207652685065411673978903472609016986395882034439900408660694981171226248473133029706496771884651474329101686262244581142512049315006524524592089944019213030251196002295817654805976452842399597480476307813660594846560851035734440434122582809053665281957477584557760696449008058663316853860219877770056981025345575535352721434071056209425516914468657460953557002416899994620544991215754070225868000054175243384746128299101058580575537426359320564322812046071868365123333795007970788353208174813947018021012516950219966717317809433250312196860767507417498504960754671366090777869765008357312992695444688358901864466997632268965607575252521124923331011651029141339830444271551821990908364403354187672946869908818608684140788985838350929941535754769770918385979967187426722549287939313886017348757536505986511755451359633603232962627980479393705268741834333503601274290879285794980472278460475836364868967152833147960008069421818733751434885152170048195972049184413610295164527856576024224061694776346656961258956661170964573983846950025337053838088699433435652506945828348104334155885736206788404801734576373981470824244908164337838895724653768704199110042163775261208621620816617624302842397670859783110425097608260301064553856612737727035790432286418653790181888524590147852880439540193218477137622497672046648257370728088114198206753444668932274424185806472997851196639440176658593371129868595774165403086233249044138157300839177012175642986916542446573377054979234014597936260616426355383946562528409620784297064629490645039661618960150117001816868816690338115287525756870162931078631233546777708241830588991987164296481888938455178093217915339827858456573130101176053487006746871503811575530890726255911920505190389887334780899528311955838291107939014614225373999063248462255255813465592187051573244439477471392570803990035941489740711506886043673832430915716406289992020234993492275025762555489694778573074391905714308025736340925943610323563901295238479112118828748395617312925838961719991194411860205035058128388122305673839428729157725318213259513145313070524764899977526830187684807236268716086814622080434238205452600465974591850046087837469767767811325083837860757290799225942585335570686828941441401596044691974112558171382482707472852247644033855886132092607795034405162709025061228874215354656148957590385279170704716550250973585918192594200268201250238325095289557387270317428970616417535315384523401150962716407198799798136355340965684091439484327908886327629420118889594800483432895427902260476449815719028001237412215468956549276413320671528797457723161240482239213550956007492095378982935398113474903250752345964063209435460259319216287133112527803406860029145633683201248586802148155154066578668014054030343042302206730811362404551265519500230810046353796429628835907525736863424190326025639406433700327251664251254456497162653392687871502037069456343145905451605345727910890870572972368926536262165682387039174504824940737715915854974108126445753790979468532194507910482415788071220139616621199188269572693897667568930103844451537830905488229551691375367086168518788549006459345793009554709056617923165401578591607016978933164570648459784475048820381375898794649073398423068061858709624857716368393197938268443270755934441836996390734383742204620521144409131341114218009526792329494198531613955082654430473979775770129633729036186549060728263541746882261992879245495875706064421253812115201374927784751195377437298803955297493775470305600209834573356483011814175867710368501544895595858109315545758725668770723153793067494485519362962396273602754700466361423395899831096753094884258314902290733843776297495389751680989142461196615555118552348927286609412299458427322759895793020013835788765074647866584827923439808082474674638660623037050197160406857811499418168089871736290238195984282848202732277083700705966046640338800371437838260931865052392344077397411949488979655608555033039993305009676840915305162642375258911682150056440883807827520625581814098494494684843484695619962813796874696863051241265757601881214743128540020409109424790200698064808010074336951974743285346354202330014604941750153925143674605912395106730895992551068808593448873325873895072173197289077065925690005751855488887147955472384828301687364401158329095288576727539241418453978086079396253063233956702731187964752984219329464206018040373813129225326686578528762603747642123852655699435502853900582145492197105981956614540990739950139049553300867671591513589675589748015626020040368625428925585335760558126683356420703834437252296093875668728932665319342921196743406573019888331699738823484624706001010265672658534551802857546429596905255777849740487523862266761362271831382547271598154376267421996786250586598333394175070902288904454846576175637259649185877180176893322653743348761547353736229775602858939481195882034217596798066423160938558881881597595818510145276817172472257402912214366634067349507097964315444380854079862719910548443399929383578001746960112891377657274255428384801551670001652325403951009313024837869874789636452469231146257410950330474588820836811583051676323809954081578906112588646994538741159359175934267291241355843713359211139909369959606878854077715887350407255682075219743481111090675456228097825940619917822984983020623345215061030129947218121978492724682236381214718315184758657143728138972653305067918010293389870153331196398549979342671489538122392580970942698086713303951831770048770991088577628738470922333241691482446528342953530322906964400788604767589484511686216633331478820719017677892042227426008729798932568687266353210806439533060748810415639851639504402269135677142430799993523008607997663369338132218817571836730887795645396491094230376297737199902904112795995620950839157803655977935079925740652955884660299730735552812794503499345072470807719224821273050795418041714830247697342889371269032736156100051668374839040026459326801643257363840198951822305204867683813429949905483598579703175451435199698994332387516025109704347902372545637791541666838792427656712022898796061225267569062929213227637266137732479962165938057969231509173221685988904255621888101802705117920279539389741449058240049945347440319330964769803489011692831316596600190420434093828591323155899397604118630926187431745047599116332480311360793174735227005290569108269280107046796146376014437082237319742275188220356244604998660351042295600134754207484463282354213491513034315666118796365853348083703570586075742006079311846400737635241299528231415439164581994402442851666736047227005225634108256943680285737084345505522620576948453236961246975683111639240096442035028251822562455606030849307691926444571982745303548907962143845101203160344948166808993261061760438067364250393285273450465446811302844772996356515406620070327035483687102530144630267326423362327179456285135952786755300157813792838614085087860438094669966940356793822358785770362693726041216147027024963372691764125498438780953208201230652980208284945041270387351575091256222308933565211309824781447354199066592411229661577180347446633080809340938812366613330987606565998091676661480971934818364507758953609175032911930786552575256708104469691457627357422523660569181333507650335224347451217048536372201819675443695399799660826240407229199286593091005008065023597773896247579456320031831138826237394643304693831384207196300023702933580195684927181100044645248929555197037043863699037418327405553196781864568172821190264344715879969223787363660276987983511715150053319463383040708686208218582380127047580874840951084948416689886934820716153832344112428981361707030114893886738334573891240775734090158497310348650182699125477596716615047466717471542862639687232139926196902530920430619745215883224537354626123742015850388755852543426701012685439321677579831108700978619580075509359843195020066354388358877475194648893759573139840675003540067426062449744677505987348539405647541014761680196856074709745840833326562359556790630383237720306771585352004844364321706668814797247578637525313017893928350023447599364014788411868327289694462906970533998123611538774222355426245839019780993188451408343484615659322356545772250949010300786742535028353322462580834447026350531022195508920850018586235759284372377869052670353747789271590260044663334931977405075943917560246927401648721142698204754800041042952590001090126057697986401984090534914182378223768743492165052545563133141827733498443642957421434180107166439651116264843458865710102217400675147975184096316993659693283818843198085195659994299831798705113156498570881508154295015642247883845323394654648231636626842355466022173811576132643427838137448537268149027932691562154393581380696402732608290717617354917955704194799038189012280904495518193252859407479744138781026781230277906362491647756974418368213060679213577691739177822823537089004382010865946852094396895214294948923388280439688669322641614835129483118506493653116138336257191700291652980096320884305078266539997575096624152648738555729862696841302951636762759037845114409259415921319955775393069997517702034866652138339035944069440975613981356132263717478769571582971002170565883410917276992197505007649864106387695350352067555278601673922878534747457933032670231358771486982495819554550733436337522763369984429132856291196565937078904171077861059928235961321407466270992710987277005380552153838657197643801282698937127186998809526908248877077027436736063408096411712212607138257463706029680391312947612772868781037694735228211718644138322227474387816067476298845045535100919877006101268076871219330043213096023039944377040555648037190298937563062504197370564027197298313592173858226347694156865498355096457251205388968842811164551772438170432245939109981230714927545370352703508814716527668573037992778935602042517683414746674566995198828714209660576111588393835494981790898550192917198119610984807000570682402230066825085676445226870052167224060408323434542444649805879328869068519447999297990312386960033203747068717690236966160040681602666451030487430425763186325298213328785492797909089196414063985010387621309876501734644832204740195993061653239767244434407006081742399953598734425508149224398190949155898168089386318719339048267658026826840502055496432983118409994186680633429964742799697918021446963621047453299370163705956306952694519869935938551882660438231343474381103800072404322280191291230131141207050887889974471700780510857650235387761068293967237026637207882728208499578016987114328128811209240537984980707279446725054716473602711053834644313098384609900447890757072218485585700288592787096440813047539612004661375564598086266815816132500955517793568078390656660863475981330741029106378408576850777915351400681417276690890148791527624789584132865844891961364828449673583592322274967747922030129575596081642877634371982102902700170737952631441411584880704039121101457306165746562790224301878476371623554960263730231996302735422416104808103329284130208972776620203748890678768162589183050362595925602470707164943109540768391133998823160549101274238585840342991619700390400470208767506606193516555734400880497574068035661678189779120238820957618190227751107775611006356684884287723105703865524869035390424914650924123049025405963261454286086212243874324494332952278511687925176382203491989534980307852561591625878250204395610191696299918943481933579440276244361116029485324216273198856979750159805717657058773359862452482366117209682240132851806886200350371240013795016743349081945025019515448032569505300174484511179711693439222811116897752620303336325394431154107030129188418677382646248391520737573078020190679313879725437298221332238881081242172644585790438244409001303561180889629281245282993416414113165858023047266279341476490043755693351442299330667054567493685070744647813455692380419249056055200659111339933936023694746875034051253849567430831328437908286539298919829219574543024402274231305892146353113444287125230468535476619921699372833423627517363979871161785700642135117058617531913925066117946043875935221858248244578661010561795287853204318849190091282462350085646242059985215347541171989342466801431931361623222142353637564404889412787362283633542145352465641921400790594567263451193536458433903720190687552168250298387242910175185807471522698216904348769293008282055572917880341834903036625082009178161287248903386042626904188808355470687619167189115251090987473804362035260399171457323963569820183351973170653614932501842950791866888228376306007453837073614132271166414761305447230566040116614542605670241985064592628636753358607373280569397024742516250580103230935058608296686584817048708755692033064469366498969220204127700983961327211137509494551240180547894682658088420617935254548918385927529168781825955645238465039727304743949726030461751150990605355819835366248200813590449154929401566918295226068732935434188124204382533597010740291153282307093206997155684446380841817868218059681597866821319210309629683614982040482027218413927360144428461366299008957864546786290605101225051181567950603145477928839644795478944669911170510055605478300312146661428933318719289994988028183102551599477717422198291561181692200633974050657933574282353512200128419298022255117259173695971814656819297697347442429305701195569401377342311812024985315016673310738420063725087129731265582795685494566563741190795329261457122345470894783120962205074904023322395683799959058023243120323787938058644207341480273344699631883499310998344837278080688210450009539928164921423785845741690924123491340279050252734842319697824198659041028348508716869490512004974111073579170385900359325201014283970762338777757645627204393972215572939556676587994855064195804330577381632173963036726865422794778897077462954512536347250081722941677830488749237497983768653226567656898664431638640510123924564471654422490106908557554351875096537095643626742606791569649470732349846471638131221075084121650866275674519085827874535225987035634243100374486226628467866938311085841501555550010305863359473664429760760017762463191954283389533797712246488398240124734803580940619710695681131600864957699286908855463724657699389129586698874297743541112813288255232525560282351327675044024918555495864551843652462771964946220451542277531715797903947803894175359085836795083374380285600886141547493640286355483647070364374823634998950127238558628454666743856358382565837858888055079998641378694765920300491837366067163815968381011200078438608373337017152647751638150185172190308467446140069046878049934107344654371410967017141330049254383481538386303027581266848600343590438285306749867486001615601804704380580471189552083386274243285409347495756255805707706037657131406470034924612378947705847584957577828359884676275045824596984157251327061476799262102743160555575759372637605543009152259000558637920498614568723425733498541457693873579016465496471416247007462558661636366494825155718706559571280063710017754237047832653719854571326577318566401008302768484059242223650928955483094721215881759490106165408659272152729019829103799334858324951573389980500357972601084521994539943547189190777918306963193400388350292067818339595513471446790778677865823277593639656328760973070602189470430737496336346409194406930015492342089436575153764610369065096113497900553291368303071095775577394063459228520782727799289074652633182221826023165674080882216379164880417778292271161301801094239261859946597093388073141892474110209519765851239128836803758620937585859790438802759259796334971008044098066337998330166633513305714666521785545676074822532117579694737610134219699145303222486411210778930337629196437401551214478065047963890815253111782639311758469614237813070636236892416431567440544995086827561791837250604983802921914775692510378693417480510547791535224914892960789690426764703037914779589803276198199877823981727779819870207314358652391469512850321417353032471424153890816045461622648987984044446633437536414002167867332653496119174681410504380889897319621721941361220009077663158552819448279879082932328321638402460872118192704233851274528596578912231122246632003986698042608076390940547452606821913667284963006498093849082968381535077194117839885915932148154763271805251571495910396494706950039095724487119046058212590135718592175547750692089119345730195481790247813528788032221736804781046846836677937174833082046581869492370463835138958796786913364225140179991324583649203570518022177142292135389361001105123246037194464542294573172971197848722078473082269712992481659752748175972684513964796474501848847515813769563358544889825191604665727191919256401459087791947479479829503715525987229118577717935586383482230878044003160936778328474507553304295760360355836188492421423936661153424273688459806818477478636844397285960951132865957167336486058723712613145021733349717204507006145807294022546226008610218240771972008783948178973528525870317879069255294244363272592269439464506838046499525390871432879178670364748806502481108935935389714552784214198451609631569025299622504190661493042533647940701167478609378764152613499079846528764956016433678875385590750586745591239182463729252889210896125837090116805755334050112274859793887786752712306675001105576618745870835273126696845732179478760370956219538943160529767811074782765491974540156647235780657196109898419744501518680827141233113728259389471921424941854147274766539961633648010839122558185417982620353917089114566027783450730377711771804393826581982323432102671117201660585763985889022871738567688768460978525647996693682182193008655314592835272299648440614074206533781145881806052028395432408386535015996938190020653286884275258904860087476879963655201357706642666100082015809003526665976512898670512599984487748327946722513837407855515144948622512332255505995066068848604826844146406034403816884799744255744294034068906707629345120318367209847408215233896171025444305839274290540833231366705154853854014283313674450846825550944977221457000709046602086990908727683213207811795383528629731038171858192513112615834434347414526653723388228222667232925633075096554181977320790645152504494607818315853019764582197358158441310163996763094960799168398339563587573753971556511017834515489976239398828068007576957676389951156684578085880658864215955835852776873230972142035323911980102653245397858670863146709101556180066456203484106619305565097146089638993847851072517083498766531565583029984195142333906889374388686428987426913779110597677625487174850577072498398824508333147285125584507839004358569063364469435070313987131091986040016523504887931115306803441805124312573207103055360915670464549795366562819529651306478736810365772652156089703649411703935014885251093713762828508979073236170083884261791977371560687800570819775854986092192773474674111968638759959004327415534733596600857501374603462360276449714736887283788482172801400477537646439914372241793547429813329353047490402643720416251168875915089587571989879599448641465799631949292573138038715508963474607790756700479024659855664164438442600393162218419371282213837772478749210921311988929317312479794214693875237431841157990189995680771749553857955631950659611221715203063168081502052169139830900184822952336749887498773892445888542120270216720356354924114884190299766915138846590946218742390922630993216320555891373263378020016759263817637601025947890350118714474759276300253580309901240420691400566165979679650231975690041688584626430725744350804355996603154063363266330154342152916251562029044760468641002521439065332491768539608961959160860581714959774380163620254456253313492479745358744079119276458997375000844670615472317220322103767253235786918302781522395575624367700382205167781923791029826786231241085543133972129987483331709938099365353768636757500686918566865781768439599593254982159320237032166185858813716223511479287915853715325529050790179940794485749256601514565242502768449817161455695094940651912379957993498048049427855869665977959176652678208291962254017483291828668951523162122224371762680859149854405821553812498939955337891738705366516896621242160077857393399951841814766675195839930991693054959181510518763509093184738618916038127135098141407302935263427941512164871657897457985991348026555278306601216181863834341805082634216772220019060797914618146728322094384345567306836323413044809078780232907234657561442828515726308614218806735602182324929753644774702831665455397335694212412587171264413783121861523776188176253811174635105744486827590592301214015449490960285475242760159858478039869675695935288788102172642929278662861360284391713473427630762272473068603204849684825537249367733780437427895248735405276649233673974244968979790020749781093366969682331180142134248467261366046106544021307414888417505440489635264295218463420393784710284777122307551645257117669200084128188669553282752153878110129842169635909254200534466783618149672770684013364751414769485936474726963799854880343610032411486243081660098383554239340406113544566345080582270047020917606545158978667314135230136803851581548431010920495928004577029304958364464976788542375725590477157038909200300430743128417234992388132104222827155405866710185653802022959274460917975536222522900157286970871844144085035460465356105645057372370314666196565316689045720548138812582770988699409088891891275824449841612085554084628164703055838466819767391379159281718915970998247924674269568771189396397086874570652453358459808186785880129445445443328127529531894342588906600480815678456830012029969057078930065684700490740371342307063167060055765984437438181534571257064394367455580112160788234457995913331280677965615354191362761746946972176175006999207336264605676741720957793258796495181489456805879151964376103598364796103867981586786733882580214689242173556416460447505250947855228017823492654902837340302606010091852000599485667868030625910756368916397879743859599182011002285940919294914942023000923343853539464327328556818502807591719018622390798211551952533194950067385553586200631047965637966280789727384309649473744800308201572748864084818471574250670799082381726012249759536339928662016762298119785748142815440957713203810510774671472647121163543888359494195373248452092332056417733904563430329583658613271566870157111153356679443388118626941511652998408979153957767257654225284995572100070459842738207769906929541335473205901141318738784453399503005952058117990215375864705634247019470101321294015835192544166208782810007155087907901882383869282426850103589712331897093382176264235153143751986444215482236498287470238845976714707546683171560394066587563555285644784163814661356385770552879284866106690319321061144872553898165219671780560234726474291619466955887623747772910095365186432105616963433906226714469830685714609284553718555203305088173063386968456863512414653172929466020052688039042744226787854737216714758709920125205047462140776962945274636730649899890207483718134021483286794636764125396794336549858289027656586994189087898072548385108352268173040527369023513992113555080356751464686782871626202989244564796551125130886110444673688577707205027653619645617419803842468188031267544669488298833867463737978744965973061437561582534226814047797780237445742070113974905457949331509241338306923905246579981381336206570926242791322789253230102694878345691071435422336185740802277545504607139053448851780028334826545390485996758107291555639529687449131624993395373794100710217548719888780850698313781754329672647973853442083440037698020191134134108845238729055893912756915963970411612987772477348636603942530719264454210487464960810717947347141081695915046107186754375114403948561936657871656978483842255524426861608874938166980559014277800608596159329541259929740575610926709385104100758345354081764962820790088007493766846739082429205074149015221554360347870519588934035464977669230410626270977024634988457677755452825189439806420107650462385792787939875469965876290166375280459012841456836511796616432289707832346213048896956096489025420257018952394324588345575656166217046796730538083710463924698368246699069072921577373798202229767807278982051933207102488938792041052925776966261936001814727154387508653134468181916678143774621673179890918632887517173023559545419509190460797809966824186044189435868219262549944339332367852905473672904699200516075350099688566881987115380965170878532317559716148867029306485925127935309303514972915263071441376281225446956186475892101951208949279601021101965253935898072522357510991836351624561800342963893498975913137209211690782997328114220888062597166336181943109528176226610558265119365473959953194709357517320151127177593009352398356577183123785218406038335089788589365347210636544160080411586530967737308777771937154205829729900358463549123930436266546321062168925573672433873092900153403802002933250444304697614599134701048725927118478857085641723830156358530560891673079888021993059574396724376480976960497312307859023590467755261207123126457264629006004070741891932242456705377713147636699464571315812793084345926584779780000839428098151446978715372066087970433174621361817684607944844727681510626740438415372113266431398727561031641258553087060760447919563265482315496276878171266714905083928315064290558461266718089158178193703823189335619552995387702332492711570481666123797551228604811813061366748139272100589851320389322436598513862680019322027305879910311767584556523707367878932723482199824089568687310798576375792490466848320682732517727797542882530233599931048432358281104579413957140787562183176153454349972045296687951428010140935740686477517086704664779195321437002743493809751313651195388025739143409801336644076650054209353682946773679570849750914603673580905999854525027480318218877595381783942135160918755125413251879073312202883111916454537131745441797101625641963131132562316735959384103622640091561671959923947488716841060261691834336860580762279759289665593798214569985290750814099802249528628660907273144057090654184798210555208063810456723900063750529791701892861179355980758599139203175529280631105048240067405942017167605045319412465144913924043423005002162200514426928606600735790585786278722919746108460882427811354577260803313018481524124971429265437155998164507950133686781317219263656784398611707951240196566818270699907085938390083819060922159939044077751252886371334733075363547100637407934475792301958187124764358745473381687436910753260409512996952460380165702087340296708300138443785544840462102302945615180120580130164962707669966520823873879746234970674997742127744401453532451871848609389479210077507135087851888853236658778547856601262369926727899023843285961176957097139763082740308327613579797943542275550084762376998557571760028594561543493106421573511977980168927235692088783192419185907982011886520147914946265262516584152875687321210766424656823418534788483213484750683004456956945217163630320359618223142285178016433004520356372181031082202607371443257132506126480213364197498628284043479703830315695787872331568558504586918522709753322379934453543545117145724151347406045049735573754913487753489126020486035033461102873385110171603602854010742182902301779357427586136988675582567091846862505158614082696872531580242494067768487469862905408008707209832650638009408534193191193340012245546162483136160153877892329623030900245284016020541936089976457896886133488115226235469668476909415033486772298420362246999006627886779947302176080033907906998309739673499094098191916157709694333422092128560281811696143590947306382964608936345832227480056046720942783707657703014357824254070754773895426145462672366553253907192211286283601229812652688083585243929807104915758532751393768608397629090560377889797671159791463683879615175396723823716174966545681324148758403184252403934753451285290838201033012077579556887801862964583822717861776428100937712309023832760676817172230335349735002360042642321255136258846250935470846584316894292033755616908243734811094851266055319812996994490066482177642375118993600891154045839567324575981947451692982527965574797787373126133502885082004614215821313143462183414206389365247165809011651200517488280437100816996658888035695766224918568445021622970588220118146862383977424038759196582712763525583868369545731619681272321651950473502271339045751316335343823790337621690791933278537628912694399983232181853060708316721208143784859913111046458021703139688105051827413793100282133644091182567261969116481800455041543430757504504856611312869481423661188585881160710514176735369952550420769125885235600989968506207884958466963662793725942126898106368135142020378558346678094115707010617033479401038845690766390255953497286945883169758265378766574823478838630618161821365113241256425813656002178636453894835591334224387191568257802132906755997436491324309790234279425330364974156257958450999759336321928199774392403245294917143147249482742900833532386126445653799109156584998631974575046471511054547679708854967072661278893271861641343412350681802445682939199523026289281835244290241365073465122091009860887490605069998956886244906252507486930516566401114664593137925865123537356282775366335918187889611143864822125751659011482037513916558846819075214276610769034691997211379100682906597310171947917663323826993511922833760463258553096688387723794133279673689412111140997063460030928113962399889530113596996423124657498021754157235171451224626101032685632348734699406495004060607654873279405431192735755840742834223686043735498377663404864912904653320725446489077422648794089538265627368244640329907701488754632841857776235399566346168917153811840448586017227546956721246883436814838285724293366792863225667565239990786910642609716763663408748471181762853129326008751377552547622643356858753571511611878082163564827912392664981832176332610464194853578430164265059344348165273154710104727905685394092634657486366270394824032350898306118505889427505295945674785236187132458059364025003847847325525737629704818513678077625903487505465371486116762231861772200463677326290054363259324097037078147357758873234670346208465446487429811619546173464901792334173301432672246713714407400347870336378917452259324620082009962274245571697601386082059728154767882032759549089058762219029600255920788410648832181647360698703481813840773271616257278550291193087916772950977807366753730851978457078316641844943964118876216465479034627514801776911439824706884134574786425670798959626387827360340792970056241822131694208754032736774698926903554070187911344468538767345926615134441562873476925367908127227580300714446005364843966916968238285145142432986576449957229600267512225529668631616044697115697311166505897283007376931559311803231292512992577726080873365434913515091288767575054537207107168806922531728595002281488717685885562125087616274825991519407806934336354701804457766322855000843212184098126157118787398580607040500005511299009567595384842978402884415684438095926506687164720125219997587269919004181393157964157323031514141840448529706585190307329030804007024084547729076005753038623023648129436119941178802184696108396295715333552372888988526027315358211745025287119557202831588323305907886307628594427992787696885348152922746996057363041837341985688252034007818531763733475674213452019083226578099451503359720853126300545285339657938274761111030085920562218276962335928616177926273407747557196290782526780734909960211430748545780888272001614967457152077940766200469007013864057559607571103431008243617993023122542189457810438188228921182749119358817640366303604496663579856243578360505825333414120083847877811583907546696284756488934359983077781828093725298575517319313966746088308779249757031366676555739827243672795784718320594552602109706486234139420790800298633591431940354470526154549420573559708234193325026845577843130903810642312858720537369241275012757032842616626937432646453040546033235888576206112077191710374504554170753979066246154224450948263255289036618032499760708844542516745393345479507189683122183636442517548583589126213419400363521118326396201923334939579697928511946687134507240520751069486031915175734214662135060876758948889865423681046716632521471833434752225364445520063566377285526135458747815164512909463268604810929683283787901317670192430854903650607103773448243437234109782587121533999769005681954202076038635724989255747977295394667541643153705018757698206198582501805056869870997612413749004993226197480887070256495460494286595492938354908865153392157778401743770303261901442143743048010789917503252390967020985175452075926297757191684605714928263151579875823338393031418261564700644553790586698878560773212992675799459693905391313539519979058429897964014046270448317200848718222441255792216425218501487484251977982270938348922127081657523339576603939683504120739221680916651568720136917322153817453064255137271117626676763360602276863738654953987003262516646731466931947400245583382377919094420371013573027349153941769255079511086709605927206087489843636821400324788779479254110265671306651970811884876025563663487009621004714727448819718036956585575563346431454512602014391925434167326390569159373716525544811970564629599250163491508613074145727806512844065289949525603298822603497694478035628984230580877812933387976110194075118316302290217043726040118597736655233074415337402926764047802447295949974457214040837484117555035169583335367652594890462866890471972100879198702088197282776916757747663746425506322347585729783593868894040822197393516898374047245742116298477403223631338342685265753998564307436471393238790714304097366325356076629291412931908557763425322734957711019209327416732990632262848792986831495161642616573462882541638219067352880338023827750043253863503292916260001315606637202836332818281173473841499380960873919516195501995909141370748892772433300208289465235029891225794455974939721703176528842309227651910851474864303115356026173801603628451624367946108083411445037572621035519214974408882441576918987504165194645678070011857464833407339894635903913058298261196196963683396337969111200169422051399909173974922762677651782820733306120023731886758173648244021139929797846136705164102766244734307538044771242074928382293017807784751852535458105312266415184955791860171533504671827266749545816916991343491115109705212875589249458240742086203717998443618679046647516033328853059805388061091674156839610326655653357763464118867153220252646973400027984983702819973252590863182514176251777999949588346133313776034251127880001198590103647676403012364608307523768305990503452896356862922219950489939686375706570791430539472472493743983571611335796853728404274608284089296473877769165602650140096439850223499014350820063436777231832145678975011786828087623442911683536640588803419558431337150540608954696383236511402038917237985611627026152450321744356966219488453441929986789092202684601033064998348952054217427820965908459907267783424800593232042892572148975942739235876525195720213579780618169071593933226313965583009939622924420542414467681162571993227985434357486565239069962636533047794447284220817175251733346826486254327145601667194827923919323337476846794607888687978100997375600256348522676998305741337587350374866980920049786060095908906973319861043387074417175331895154722252306940497502236911526309802358744041327074101901560071479899424412334788211722765199888721755013182808001713846665692721816110941238738019838872583493697109021335952618522171689583715262533952828967404013896884705831206790370047604058826629977992410345442012499140816813248062343420318087464156065652074459758425915799230472691144135647697901522687939172952159384063052932020527247181384056240091756781293679810470800836548487648509686508876636345614792716729350028150219210316608516618005282410834404196128093930241136909634756370809370332945471157110923484783227179816193359390322566660561888003453233488443073302749843248085666635933291953595368699585248872506394792700064484021540871651128852761916052363686846249186687585357384662523350082833704551698252188152946516307701170963248594250913304289381834951539512782272926594520107093889872559834137335993996869396718702119259494786204450036329459349936348322956689444393613021086128581953723901951744035471877239580694745395995901311747886636700294391891296784371956660166584346105128474527085331104808883016145226496867368710387203082830284088361773277511528354955684910789018987767750091798415442536744606510491245698248786710354302663601180384716859899877547744124976383547667883842220505043782545866042827060793137864132112242142699952234094362188664710565544974788467841128772307407384432216936355399997321185820947723740663459108791708461289854460041027874686482188774145445442482169992424289200263044562234975545210054892864835556574763419522351698332851633261796863728322514100741599628412283172242838633091488833348547727177834762248047785002349963439184544166428047032886406023151661421249395697604671146877313453377006722902214630442345918350826786295220763567491508629045995263958609006144638431409881874196325156083720081146245203247505774350207017826900495027923233469079728444339871024389484898796823690376968314616579885311294444938163269055300060381451461571175179906655285713461424734895667778321306487730505338171211183451221254477674470926487288492285163103033368419223724320483696849311055530198641348004574090429499756425710349166937885555872214827127133871234541011636106188550847367527984307509010050247629613962895826508259790777517375626147826736751113077021003646624992917332471046457605420811548050242191807487681732143576687158742341533011069608241094913803655240543172810183119631771296471477034480227078845219418840309758960757912458295457380668828395403843565972282095747593885770894661482781860190472777447341399984020340302137148471964939274706824777351161310207795160142354553659748820522369803179157040597363089534403137070090231363551518665027149484642633995318955409855210438135790721066666039811945575924366109677840365015909766247411707766473291494510774233137409507143532496892050510784249240060806709478268039896397904578304187383136390365136456626096436802859136041024089362737301845860206505551268704296866321899275128212236779871260459888381858669057321945366742126492038421199607164675100437578597076243524032738106009661800915067238804502766830797019515239059124507914643988511517113082455116938014418685296260685895039484323032192580043527912151663365691867575413698379667147199438027450322620759355179391637130562060810412603289131664575128890882069870333525527773109611193239224836342795249921017062394750656185853796130090286286838186672904784725444414375383613475959510694034077441005020350528795020259023739442421905457257570650612921452537793307547495296487583801109192658451758903507970350154138645222338553099531160562819351022315461431653865077284653729489742551242387728835403572140382052490035660541460803807416244764716793268970909319179630991265402956723597086218678797223360506422109186743371694748510887331799791299197325724612329521352841286439690125198960242761805161330239787262041127159629763636739155701411556468693003121087811041467761961022175045830104445606688711742045425552123545229000320529522386222388631453025720607493890606353461307627167134801977087817344768166468403937268394974551118289468806861335528229062290848037841244687492049729038611179266778416937948603841685631884350453584071717200998824433464271532070057267577868604323628441201097492480844865692092434240128388451187517257335514622102113860304734754772569742617831743835407290737107784578699628886592121529773000827182096780043662647485293533358487050477319801792169448518724886861736088174730410742375886096622179250335318626624572712689292419109968938338247946729050486581975822971404598887265317756011564977695017397297266429536086472801950075755580646531534182458259316670324681270320407955736880309659272479933697046647044595163720096395884295292529638900610732114163359578500335144391891851879627332638017471352178917962762909791638312095642419694631093417389664176560513638563079386499892560733587787090372021134106575183198364256085313609611360371078718191529985333435359662002613047585744821468851018045567909318058548434819659382649540683631721280579073178263772254435998837597828881989231641405299275770760488973239310084745652258607590665269622409423469224622335469863354801626849560199297404149859799586637207557727834965234636533163421706830202551174826714629914984366710623638384044511763282262890392164241700747784179243864453090250273724622304909617554313417730789293678589885501370819066426732734916295878401754880837623853438722297694201788764973516816261017560103143432207868795732519469097315758749609958063241309730333923306753500143409355793041532007347177030366454607167649948812225816479188250129817023207590410603365787529069547100652392418044777842318633316948877743405532059902692778131458279378638509772688943038241988430362727839457085780371312184110480046993111411809599377462163076677034002368429834604944639307714457340699160316197594379767874091866679476208545942178222763868816490495546608321336463672602044414273372371119468201704751791248180872163504893998092869514224895457053965168512359330457332979221531502932081676014990551962480099389790276649980012384511061493408631871264132153498945678325695296766714322333836550699242028676590890541118909872532460084787840247501077799384166205171139111675500963208240534336914437762059877518306361043287902149244004173120761042289074722374915013549830607995333302840657289969603796025710936923562702003003963815792310403942281162595373272530968723513097328330701640845215006630957108525289495289025703684273737962181043565516335488215614149883120049091829291513733638154358998579937458535344117861689750499875728221177248605754181804884515752963499220552266587326301587114959249876716727186700681038494862080171382069560221122062328908151524149056956787194496587478332974072878792903552104302499253164401499628262848856014271413187823290437590416534083950103630767682819090640776873371209590340699536283174999048770396214601361152949501335482665317644734055572119841385496712180971278837625609203333691932153223185916129239739782951656884777667701428814606807931211643693674823745000386926378802306112086091471766098080185775385857777119230262563481892403682240832004933854574571210933033991354768324928251405832643932102617753055702429362690330064058151252101160553454971012607007627692427958950113900046303642941659398102554204617065612113877841140175261553614172817902215866195714446609902596226450000700394570577586829624047300773271513064309021361649752123246643983756115416257156165469351456245544630111958791262042160076036559699699733561411611493575078400383236095702148371880865139298768551818689345943628735467029570589036935947812533412157726747202667981175268411341042261526987525194188491971156657543692545006529283484468743772214996499031910864429340537040441519893376484218991821899593778273150261660859428414102555213216355350640282520617697360690567064616089876697593745042629055956935098431451063840012965855015321886358583132112980966923876793912179591077281827662120536991683952320323629780785156760494111550245588619461374107760538389959223835520104968013929893503032838442260170484316146043337874819002736833110227814432746380469124080591384351900327853566918293207740016990543595891550234468942060318709280289575025176220554632450643609634978099786303822109908193699379000607693272325279666159836533141874018321284264307923522840854486854063518044360017098541989367500223081163792518549646640269410370727853790437106900202990512566881154920106367689509164984611677466058378113043755826045346641688023513638031694698529620214881538962373000733917901424008388455242717870762248070143142810734367623191660618394055176971048750266243687432464177447703684621167077371076231658170299964768660191080552783737286957104636467595367610747666027730040456045935493494306658685988974287137160965776391274200934021511906716693369956569966638162277766501223340962411911897226617546146602726904183830717968052972100370460690648068186745665084199800517848020035502073566626542453333985071715039169132776299466386048834143405678621743574019217706928075129421265906016710316891753773709059354876890013920794007853360215798983305610945163195531768004840071961288022480512379628920910851549868776249512672806551771243514796706337571510038175877087316746115067490449406928798752002700092303089556540369731473546540854426099868840479289103336602198793935004343611608171536449535237481039566680469893481475036477595430998285996931513648369965080160230051490722022276955704517088118876864211751666806614282921002188522020045257983374565227842021694054209922432578538080579532925570609222999706672551901334980740781277041567042615967200740078587043894980476771415602401197874667991423403579202815327832341019591620107160862626505769387283782485843277388939950324434719876980549311198245664351631542521016351690385033826920121604622323548450406313787280900362772008853052308172755699083820679730551347866020414044348013103358411574754411078551843180737856109746607551210918507435844497588952340772991034766399240537054776011092645374863591266228669062458460877430387956448640931828663689453247342310812656439549287451080620887591912395002898931913200253750023712071253832787715925769382493210482657340105990655541111897390586760008009131363086136225903563596806663454183810336386126170319904908640776235720152395813985999683630922781022631048099752947378163923132506307257669525127438667147469186422836680236920406380910171214318824284489849027249531822410993319900920724155352851653896881132339368456318712393354893944721955831865629940031731780354187203160011157238620387095493232332435856466250548376139386342980036281157669714833182935338362452557226912755320537786565187000571772147768469862371086501795492904382830779438457266515174680099762564257516128310674584178194963185671778442333452624842537992540359673309433000763164863261667591280980053708405739819819655437063911880257734885565678886614505257919294206408016975682076717314011682304781876666368171148307322010451595770320323518773719846597803637785429707660324496931057157007089504188528637912450061184487771231540876837520727176610048052756152875393558017392084434788584728050156474063113315012175616577598866104963689476855077964932250718542591264200780187932046371747953193375821473704580429050179582536794134532748166360856360875088136992323125537943236831352886072955911323133782286582505478279267147616426701378211882047922950853169238987218473407135603331929432452019100772709052694311503232292511140605278650148349995837483322808017311852575672352297842132081576873968884375502706426338190542428618471561184081270185827408314672220623586276561087890484986833111293274874098250772831922346671325927743436375501827522041122873045134835591169554912318598441963141854693657210794871136255564993881104040158772471083185482076351677936320740502699909543509329955613742858532189771320287028668844083529381227344043016852555995227096081323248390801916904220005551131587950679068197312292881294068726151986209387659992385656030313234489598493076503421269597061220075777291868577538239389925509532540017316980205411094788657060186639800633514222082848259163584757062996067305673076534205606972177060543170043340519835182261334366086510570824831771790679184403607167796527986541145414182574200380405543230865148053245242379272864236328296504430800895875298572599192550543628876922092615919923671120483554237234263875005923943791441219862575120700413189930671948987130736210633961901613844799022789024922465289305683309484097496949985217390734482415921121726022715972376922795778185959101529698023104663552926710656380495321064676421189766043021127098516961421181919900412466222323526616609253159930140968471882223968892092193603021565615527173894947613670541953444186939959390249527186351648740324358538809328647942492668036049339656504231322442659641637996947875866264436838923927473289900485085217939366059055411126449651344418925315760740896545778552587103419011943186222431847138145009323671785469694449197062774342888469480797387939311148897342278484039286686107285826075092312310796496575224166285155472653911339161400682311769737125656079157984016225497245602288932185746112262491970274472808565261877734310869375610839043945443917473230670265188446334926472564358667607790509279695692281473486919645878676761368483138332240519374109909043774014574732029488959205002420951282904054666818081965849941528733446906252089804980157923750915413085083383501371087483549545118683567017446902235164100640901942106451142105747063339920693136641798884345765920525181587140192817891960807653408456411494859032894598369742190382600996882352471590070196921379047385115105386134664035104446572759519532661712354764140266897508599021017941108430861827978300559258941696378612651438193900435588696092957690158032864214382533417412635584667238959203184784140981524629671316639476546215420351252544953619339102495692287827692437555785826108798845943104780344082632921140854078409346778577209203863425178937013993576445380459043884217980084248397150946009877059685703573208796049091346326049166408833760298073177861340008855240301785268722655190879079300496748709191420798875118681789666620388725996159645500127161896052042648180028496143416582999463119247504117377984549300083907753380865214169404582338214049836406789686065896664922854217688825899487159813246621204849265378887064546013900072166949909024525566831878321960535757685657554860525992100193679779143045749599720153034694988724716352448171941168826880775200479413729967184434210752325751972362482219195001986146158539900359080429319885535310873376259198715235570262254902876195437413846418616484607282482114866097470325037754065358335481089829847355947201154618421981220549657800053831684431928261762232391721698226954432592874843174577866945049006843116258806424093222660416833484394126246322541626293293149135306463036471944049898544798626379046917058913126282350224090279177969473169745858878708620291272475573256807909863026168673721239969985377022106234040609305100496520639475392906492395565241930358275068146611956453385980270201684517258083809499462601771098344310340394896220655899942654787509198957388323432327103122469235366343855079505268851189366092549653009114882682991864506306275138633110961026319627603473251190413476219547057396622684389716373425800518387510680656999528769001317593738328465123990606457372893585183911196772611462357386037577358782276432610910733869400913314685410772774091456263298855534893223287959868239894061121350731065110667064081348234200765841390567060909080006593772154930137927243795412994835629621499210838274891104227768850457885375646709462991157289726666185721979991785877422908832997047896787932166015695671770022534753260362881573558146474189904943744967073167183697557407851431960506818539426744944828969331686703402451674446679616328239846956672399522268613392009878700795100768932376111493154681536648288996404905001214529182989228573442113896807609027893373623926335136453924402207685751970418421341704133433397816113464734638715071593310841452612216975060637815347192695238482269547442320206394375953175662644832067419123345323845418438441213162662187226210088911419277679245628659629726561413179842024896333852992498234047182013945334379106346509316827752129488476051777823054011594229246812825857962691403961962164459797386957323501508863268602012051494635866641855174392826987720410160259042586119522670651603510832121557802714816197970183697599854915729990528695868011401003417246758868531852776985632954067030953970611075746702048059880315607823728813101211654495895546252087217787458473897815573730730972018420857266928107628984281940626568459535052495276955951165517417528607092592080555236443274500663779593991811143680661047713094696885921743222403282447925360877068952105192919773947421069761679296940988704821146371702514454750749374404506757987415182204684737822130049115938364324324464326036624841672255440824539011667461657359814472415245539839270446509886491419446840805814813711754540929107285662436831593449307442552421357868099797570019664628001011979558388723391923355906589646532329509725307640636768172061794990244355924026313961575687493861723810613295329458493114399454432554975249240357482765346069436436808125166216975877740533590291428423167230116783508520727858982418916767994027992482312617262047098225534089069891514419240779866928050042114256036241634209437590380519676750094401893137455741331322966052047852065775546057814497451228767972633145637386394218827068989827708447665086067787434825331750601543687268413589455645664010980447939612935496007185466067528544764958936184194752827489100414195071673209584691137867919266102318354744956482768151007804819601356566600288151393026883325670161973630263794268116918838887099599611094989032350323348874513041929111526654053713796333030789609582707304339501975670969146777454838197530039967187140493564400052871828667440834727643338753321141874346366407694680258760959851201023537752812908001529335820671186535788691349291917781387098666542516368918656967211383325706540277474013773860108613024959924428545210040700941700470159409296321258450587362520020374430524428076065788239119063910236576947612780134304078628726986473935467797041992347539851252346735382244964366891571039711704615741181682085300371463891796479504266726563383114884958207142456561670255115641250410595794567841377226717893315869447627197960178053322330495788001350737604861112861134043455864423457526641550332144375699508477592395197424573827215592908037920806997495423793173116653571541585548751505934754598575041226975155716733166552257857853863690207027357059083055597945679161315309799858931763326422904255942662501598876291085876983828250972327436139942836554838631748795918814604583758667375025760523574941545866726129606885714901674532094457727993129263468544327482412060158896646253147535207627320274240496683220947267049339519897516035957702803228519153048942374429558341004269928534808613412466550236240971601254151104364394102045224904677767632226846005925890630717003767251750781612218278007904128400106794326851276352260917683333193403362047771646955589681910374310257638885121177529825276419516441972085515146579925714648241553347998241717579290655464145099307872039998693936507840473707900867645008153762248573505821195887085141201791382413029831885312419926289114579543230156587106428583864955509211197269424566637625828928436458254895582108046437660699331331929207422698600248363081619348484145192254970248749801774174428968487802860346508610986551714843345238791971169235048236168585423852391838441844752572149641292279195505917056039192436476246593466408000816322974605902295589741763661413206064398464808218057212891638726253506191269327685302889375071887816577045680017279976117905712473158128388358624341744970779021707954990985117783340931526356776205863546161658488048798585860106944646067022205355496740704490327586869786393639341295742846341352106191264136801984266125145802587364918954819453009693795646121055340502538565141238286563751476605199368584744651042707807531598278138312580404705856358612818422555667566504990731841805435755741644245986486830141893433624237343569385311485022035507981476440921741660208064324330989014698952915478831159802105092039080630368528374804830430795170924832052697281624754188952816281584578273773936883946148572320632286694002901253668699960062570729028379335082989077074570984043927071694498684756913634791975871265188446624930386010408509737904405444240154509640213345227856940839660139826844303437669924973552126302474130502796667523947664051680572529178647532595754099209706050230144253555707265843224033804879256739805898162531409934953641299122269009367862657370445076734964466047684129109052499669585598127574766282975969750213413952105379141729864296824133499007696462403208435828892846230468464256936918729892801935146898796016021505930472985490851670522100212557555858170791023062445566448788873226561666699527384701090941981613796757461283762726058457912717381402721695550311866964874613491455402743976464789037743985639827227840746652704301945049478122598081341061182460187245674592459670034909721494397375567260069848816715306722814119159615627108948130698661272319798833381846970585405249093721271256529654484626413200145231228681391036814493334793285511616617151818670472976627682385322868052593557760835799478537916555219078810086540839393838131596744119765692479442730173241317357221610590102375484342785457102571944071254320466203625820339858900155883373741006619348665054051822599774726184601919852086085235655411615772380832174857146308572881432775951937090782970351099158016343592264099870352535333133023493975329631502126603481259628726199390490747645487274911385361192429859311322326274925791432430864309713816944397417263534746500724632977016153552607566671164880164635193261127813513029514876230347596043321804289382609169592323374277235190519402833005672960859600972527385361047463109473454175132754806951878038572907997451550044939607791410669665723413171082478433356382869211476456771371185587765439410545343873453955390176333978591826418607671836074174441739788978030344032153842884736580429845116619511839589666959419958337974960936483981805737222070063766731510015314539539230178648059425746618139827134776661000022331312310457616384614515728807692682828515742758822636373039867299290068343123492151349330770109845357663485144879801860763490199616179292703232486862500432488857445586905237425736877323607866253582564670888603968535572624464908757113817788274014092013678151188830316124066005977687889161488364988053931494307768754534406523059792949089287037295792518466478749192185954666134735431354489813962874886588029158432404368390091830664948973231311634959782920539804895328428625552035965919522462256850588658968902374996990498043676270609518687032148976070432777880822308678542035486217128169778148895528938016442198071482403713322706696271226394050205249457888014754788628291009038527958500086788847597485430811437420661164263083301811093250674020030170083953511834407354149356291146353547761302554942317490206739291909479782726028635713567044383267099385812290438298269161155563638141461332821319329265008855098336052868292097137382061591845023879566571142180041876727001442015991853145183877861668770392682806325133592878408958676679501278478684890681829111257465018484076357950268376573185560184624171845809279438073720588477393958627339458842826670144427486723518487784662291937277845117608596527344140158747476792113805784214964275845245184373783112603781841540877144455555056095315307054067152645436532118823235008327167899640962545862328910505234439239038871427779029796791367852849562718610336584509964401804222872870755308133229078515420866556475955189907339946689943433682156044987073572483722247397384668787243638465193083040509007888218409869173385220867517281131152950988131012844898482642782833681007043551083366151955343477098395401794762873574432087299988263322403360810349204596135477176626957881119836148510480733340976803375530896599532104438688571177325206745342963383544314888071121956603468168554116971237786721983372555136737712620045015884812458036420901097873279430952821235894919433692347845142910583147712078750906314009472012607686516757245624436332469588026019140675083255000748000893353524128610367280458472999968454122289462316435516505753082376476235789420619816428518967894066851118261009641228299103271142682367865370492645071909470632248664537219761914031603988821399232151229048093949890588851014002571261160398690180722003862508676832702974973053001488468431301654927735150547953203432639986497614401954946609860915639315752665662711970245568034530131466657666038867626344796487641094405242055196916374726841070180337892768073784770427046542336003311220012374820219260028312382556399230157790366364862238554480918609952044029810019048052265026004301734826281699929589722582523653547977385448543202769142206239707183233271748534908068238880997765695890927153666138006001300322204129940498838524558601884835222139399687113796413849352882521509004824959191306276337657623530971196514853560700102297493362791632802187049057217454027388618372819963073189648980894248847355124275475199663591564530408433595889817079689464060364623642010368549001584283156648139061662532773385211165420196889378459825411259161733960016085778887055787952445244514873770297539213930920116664648534116651988736988115758905037467617028440598946415746306369740692159879363899047702120751241505168907447028161313666713312046627128670871235597991024186993683806461109328070095475231170325256867803870363993677284567377804535410197219674150697157997201870260203560362193532197778129903098449954966145839764712162870197132850204814096059970504871830370286928127146735729029593245635675255056347742799426410034602277455431223011604433488108168398917495863463542310298991025741206493958250737014673075639453507761067084275807701220786709211652940515856178525910066738225704051745014895048372864788443883369771201816069999265954781284558652759618451103262490049852984700883379446319290416224370586572127754603375098260434884184306923544295429999321568001033544121929047139211725723880744718917472217157277716917443425102826897959321271590607392395695727019059468326825443891078748505500839106753211628577146260661817826188532190563600907607636533805795510763032404525183880572152806891266181761860164192134835775791042597376727988732483059895815195305011578419180421315285217148677709303549808084278283094348429831135190231935776174399501045962061409006002269081328647607256896191234856012115543315573341941814710501913231099620514963565691301628099615050603089172091977341486176445167265308814080164316604858681796442224476905990839092656490093964526912428897444925465900126150226843807934989684890124377564704102230230319398108432033449318561041479926862473237737987300423998121787927965622988164065693677503605829047371763127329891392551664408652462674633155137390827353494419773610061490223201239761754061245301059503909648338492551251487589651878309364119789901857477896203783367643332014942717499856233916044098376222234729051442716494318918879897480382159761315171886174682584464469119093561915565842202426688999556471568613619839265815848302976869194863390132191865144783206160258131464609538887018188373744446331008751168308636704336779929304017572639650553994059909886407751699207307090701137649823853577018607527347929450570417452750571593189177836994379244549652300053953129539427790371701558874106292777107500994785019008814556405704710729468708238702211209436902551429203428925520998959458294917390268983760654105885567692574926808149999436216524826262663017232489265894128065274449942600416837305552503064077508030393864848199179645408890403071131323081835813457662783004086721445714660360251202897578391809289520875101130645882124189478657890569231592953145852869281930775657591296085989093830302283238037812219044118501943977427871732665708313812304654319831410092966169092311650384226552114653504644398239152613330073417419751527864113999146328576800075621555527733338935640785486506337399727968345827213959246589876720144000637307521238923067212855631186408340859858139139503103576801458130045683571127589115818087304008601214502742389924904320082645262449611856319019782439765166087175256904646229225344323277899155604603083045986926675858935758033896021796630569475049816519330873584968905042103339428233430362658768982025734482701526143536009553844743214598962928893605030485384294544103442445709490737713461281805346689626837603753480287397917127706156104950114849309635174457633766731983185272285167011034364710605887719390411796118602440747069852465104784455687264435521340382368152769893293562959327567020336114756918064936074183449614869768301890980409607614408759363734574369695510918895374712265528667552138406710763604601609265859966369375745343774481246049807328724055710056685564613122545434865782408633198389097898684372195138848638240996842890817308847316216770380335476860821613364162389293142313189870419629181099595235806648691822331744621421596322822397067057542633142266940445682210183670765457342274993232701748248116657339324612865649532072835366978453760404680467786351904213211711676328398197749937935871965297840685279702309346544007723469902635631513859629345048049321081373702498563377351558443515798831768719966489955704777813350925947719943189023972456113387819956929169245905402255630136061125901190184059923013903065034584815949358128295094202153720556405630375880513496219866132636102123231617925828261761339294467587813720859406799709896313257990886685139692096511389679129155109222940696871908023899378689825296641337366337451663486235169495768869742332579018828781437542176028106246183569835284976132974443562416945678049154866283009748667252320474140630267714796949601030035166740620799119127731312265966913610813649328600765430163600676856246157819441215204968837356620104507690512460250012724675277114395105699755060144715660352577784348790436404033598054929012373634362421545210200813258902921619765029314284508970554213983696823596565259170956252862162260463903430767490934214197806666085090754807360259606360696954683290791605408195315459078841228025362135411616021034809189779840258048815767086497385798777455620832627902085911949985967493015945952931443046170901207519497160177034413283626764341012358804028492241856623012564539952635375370246048941554946008739799895452591167233663664450351685417317537512340894635909641986021286117201561469578380555937762591000034240565597337536327748075995726648069215919703504337920783442390462956410433563234995719672500066350329359859286959523590702194439871398749069618959937616136986239482107313820996051826506728182380549470774087685457558047566466433172466897397431783230841522474541816248641916386005455056195528899145553436606968723417505658007991062653972249231980728192841590850622450124741088044392634428924042513285042226371486718238990277127649600274082418645964718345288894689768980832982531828608232346471656821033287199575783928306775360790709666882971160059916986436226854159565528717845655709002773220846869369322116544042461066674754560640849641528617248013995820859349753671619035172367985202569445412869931505557544559481651741552768852876206406199866762327981461984393476887486155947782036235472241900070047796447320578816886034131973566104547982044359698681561801843426322313251590289785659270175345776865095608842593495143750110101982076046055016104763908997648344769416626036951710622474394610412245570168694102261618128251182339098348971078734455470820964044058474893712419208774828419381781971821691090588451366416625370324115439083041680651081522826328549414780368147107886622868293892472392029938792984765187582516143312629122373393774260009293374947368776817240041908767317538650495644558906738020524876082040263673952579381604888312634826050049168385830450289949395931750204090810162197607564768649886223898086652394715705491052437547050278822839113409576705259219702708737641464648943621033873529542341135378932443252388253227539572132806582519899701597421302847131014546863314902315482896294732460167235316794507620094788727342043391688842831187680972068246401232619963261306259712340317289556786364944717712935041793455907063514581599599803396693740628295270677601179256187069544005508661565894763782196108639047661008748065839594138543592157349914023724354471187935835648420676497289509387170506927384768111313149425299614943878262265389365813838205428150958412849501763548337237577507784922604603754063750368959678121293839281686620955180276661644294433776866930457960072506478858804079372487174617165058177095273293191423425311029771764169974345116270376672927724120204731311747748634453424208611209322009467709067212002902192741192261729488091795119799901314354329952008177423314355443742671000276739496010233489932438723782794467738664744070572726101857873002519805561877741128925460618555479078326235479874375611321930093561146421413607247741641163960379636477884024351882170388119222982332600391085299898748691876620243918185895917978690130977228956365099689876450013263143885759744914750021150969709869715127320330884448307304823775579005457638534614575636409951889185952592199782314377867541543452391110354809170951240940794708987495804830228950553297423055731531537861844726279467486108380131163626302247059142055841922553523013976938478952328115333678497050696967578871096207596072275312640621743290132098758096793473902663799643262719605057757905175966008719453588633162027281758109703127700373195948678589156239568898568791520691601628323780616808614816129816543525340652939263445279344745703602653983754281397114648365724834617345293472501410458514605962982128747938875657691809871668718462153227522310388672044013555698518034732701500394007628595029747454326092184788603402639640801931683014481792851773067342141960635937782363614378524042660135650721640795715663891914565538040108624422297071691253646357219259535946190048911802027685406988469020426936355330041520181227465682775969665829007160188390803341254556896228414992774791584057499037207006782683390994599886449660411936626864229934387455704264489541583621526918842230032027986043706546919165821228168091559665182020919291140229495053146722497784640441076208920520096708828925028875938243407674131323311090632847913187921177975292514804890665062048777277565832280491574536345174858393001583340269624778764865787999533876185905984090200918434784666452918089732982998714831594074576347229041334778310279658562709323259570341302356404310988157422205406364584124128175077273244595225329140251448054654602231551399237441438453996638452324326065892808754919083213629846098275303251762462609424816095084231939468988256412126924448730039055379318381790951940519476345962221072454828037870052710576541682942963456152270836253474599467931820137202274811118807387327839739419920659966984173933794759975809103936428095482788286711453043177330181659998303582611245786675518475946582862410290803825465726535682387662831816807592326313249951439867156935238709539038615391416192456022721298364804595874510797903271658253471582946340002343338346793245954889971358498611457791062029466218877684705935300021746819922169764197693640733992868500001061703932702782673506049953777291146026626570089868294102607468290438999115286382586384866307872898434319972538789342614196771539812755239214159173172498552022842253998815249403143312534696091806006782821601283842277247150039205786582184703291430840529254263884617125127250340293562614328682436246368651413421966616012406366428767409828941132944763822748502996915698593995692137706911912381545816958442929060088741185750586340239752266989398659283619067947817355388005818755264529487429458835096309958799291575102412950034303313182103985141468145562377793961457708631113090550703624095382268043726958932531361094434169832805971246612800843879371493957624613334718079897463120494537060776540455657014622496483818249095627606981911153365125463488232385035845716725413781833910430147214314715924097952470056044082334018432572594084207411440014292795970344525079961544959474144557752707133650404001483198755351414612565982049223297471811691768709842324748181498368083072648712315855140643514305206432332452533107061052424489621198567150623712171539796779671101502727708114449533792932477373203463647401385876096237526324707708829290026196199599302848638438424484144507203495464607406230637137930498783599203924423753381451168770354986352171302093855983770480912738550843186780824836972442554354529692720959763080319963739890204922695465815978570156232140087402485288424337001157090352976913525957426898604642388634542781977492202108743629968728831709903044733255780665321675515440134029920223243775347104465364039901897881566142568138856016730919366759298557613184120511480208174337113609778258510502698288076610521906137238230745107410711234731556524706192225183493575241152313154476274541159023958226386510201754033390242906359412375839245305897354330513280044564324212000005053242001464018194928757154515884466098250766725919275568044868397396581812911787462845341732362063585076602639282331272199539665031794559579827454282674140147994515141323041316237865863210848511836719059957712531480612988317974846012814117252170347531627671898455741798460223756904792253467188195924554433799423698068222987835301514320777490267571590679342542754423870079508718877430197601339534347285464473284360746568428817244983210143810101413090718634828290349031276538507547073366300075312168705913168334167907412537281913032361728173928511051690934482913060482406143215009710651500791699518157069913634341134028057899780964639081035521144038121107345700956198640999638651270641197419267458919261888964658217353098426047292955933655085425223674982243314671442094140679083441556486407483424637525852591060983763920809980482120040683903721934922357106349128643936535475015344700639130524457982278500201308954889546113442932535031001970062395203732859682034328436229076194764987880552562763465370525565066894017125886888374571713737719942906642593472453399974050787399060029261728001504101181450857162720824573168175933584670568426979104732385474519631157540474015651810283352620832019171310106702265267427777039565064171709037231399932381988858172380071218391847089502087821212716687418403834584958754029207201248362330558767589275534464117847634296470473972768013393872075334996610358781169855007614830022805759229001382282239183868865631102788570032647911569088861810419676517949834568064219229517871981640795157765879941218105271411033270585725527451040692089877614656595843074811423204426110053314637188347971330378281718203216141592202758500275986243679599230433509074286364693454671184193676368636336103478601017510083627891503494612280887557597077552365822837113190667339743901461359131647227877180160399745673125708186927719836222235867600149512305703432252990001669418368575201165246712523775735011783662232532722822997111409478346259626865183374291017833549652795240283193161297480190329554489193296854142157799525568248374969163699225071550009561488042556731168883002484805190791682843601061374394546229293730889052427083837830608133603780359035882499982730149003564071843402681209318705263545666218013253247502399165126842219206844456297887876909574032883079777348763477334371861483616678853241708115370901432667873696834454733546961948770976955657585540825211982119051622981812296893063699234092854298711822466339748070344829690432334618788382345007124838978416423754952015799313001603376052973061391665993002205642005334339521921526520928642693131677763045012045596140187166935436475703922942995380613078262378925980669340067834871999717873487321931328438852284292429265299093822228179500996181358104082354529221514904446110226057898941309039694746060176509197511792888207098169280646559011022478880719712201459133056791915157696575295988625425478143299005425370772431432251234150308985361590777820962746871894799994213088181229212145189297515381156109672935406402206512897625815962993977976549886546179244222380441282038633399054724561006178370988862375291516631135469076460696379757300033314774354427562954057220086050231247714564509735294594721752592100621341032748055638318310355221233279211932757735624558846417682793033358238039711855047891616451237310348292007878537022905387132350419439578727160204006426338794560853389400729129790315679402292450293325019140386496521413969881406668609612125982713354477554492128920148014768093989678898941926676767209269145035200485589436600937087264937733715169707330842450432566928087548222649911783870099205106744615851541773523440030950360024088277130072883849335203967628162521634340458873779617545897215407041215846234879688099469762781967504436250282803043953509128009231951167978607151975879705052299892037395385813556719549642006648602642043935178945666890050641233722512730412347952032721970548618339780665361492190620646905941485392804678483951838730372279121224799106087908344679281231679436256854992724180681020512015277356938320853113738571032896927161977080359426199520113761196693382783046758952251052440756796696336441150082017758276799365346255372743812479773620125139805955640578390505604324442498635798147149297948100129026270619544800989731694961200728535736462742310597837683626797372511149223784441275774816353435884350337013313874311118921433691033201885221398067592579498632855491212699955587526092273759552268236783877920900091686203265667534291072823971722782113709739266070607303576740471184774485004816349743869087374933938462521032600044580887992019652714821164581728574610423343719152825802859667397296321061743972817296316778737289087238883668358443289526358330432509143463181724857573711933001724161366461616685197113995258761305465992173976671190797239416983820717307112178919464757958649901476632928277081431721536009747771458084151532129687061697333580724070427764250717692849447644036573569772929979731193524588545688810457141391030313045402301444698641141942126624115857022561264691115206760057329729079964608680528022252757800326668447396048944085535213126552581771617623589407380671070562180864624800092996611365364239323300900885569403248795720860579838677207749737050280666383918379125590569504606898402098480357888064967217843085719245787056008928441716366306356312086801367088010144231965048883304433855829311712308992376038836125650288916825966480417230334696318776998182705787081621269417092661527761675262126933763917984976040963161228423652991966858340082377157664029383432963597080937443551965058849557062502281865116893004340993524051136178997508293917807842030782379974584898728460052013567910827631904433347983754275461425248518307512104043772685677213170303048099158528015722833020608856218171850200258049600785616271028052514294224128690028251057002287369637580009889949573663118866260169605905969032503365824777802669455434375150844889642926955979771201571998618650072254598607673535941607830562030846888305054428524051625055320199810592796610922168897730128085495619968692726652523373793750645281705229056140919633989210638752628929358781101430695806250524793295719331195097584437246576795817698682512290528208437143360130493314631364493608966141003552103666595851598187047744914312589095108896404547882216751978316432187143178764046811829502040967249632939792801606556357268496181187984163233688373457670864162086150592257398694262332758436969938360445933490950650880208570535856906197205919966518539185532775544136290969385950876267675244332843731888326786232496625567954200392194683165841815102006904759847776583205406038948852655875858202484993462435647516551355351755333978152513385670575813016875669603222376280764830505686909752132314339532297071843864625599439690158815029247873847887018620480325365500921842092403730731002039084616785692123568644908159379391017508405028294510777388645310131478022534236897737995531206655262575502694015584992639005261782100170092443476203153715448688351986496688951196607031872157115998826471216944082706567539839467453243077444569456499919620382758007098511431495657856777929559231431343641927458294733144093247507364439259148790765699843871938244764389959312286445950964354719380856957009395580655992721132640745555446707802115981058410738901329231975966909984906562394135884173627496704873676763700676365611923900892054397251164544033652000792900852617704094421140417443680221245012313075559393232660194094846958964698650513921908253929892812323905935643666728640294783261339461340939731896726012343674456597197966976304213843618042577126808514219498056662951665257985484834199538172627250887923841119668325423532148722639226863934592685715120383764960367281217043155341163974903120895331987758876693562093026391660445883141653468499792383205898979656737988674017360738806647617181747847320233513720258340722999181042594200189654037462221742743827682731546226856854351181957635992913123456768475485104242147847264768152069972060907222436170657918890295619840581694854835424494192098952162436515194550315293082997514670805309233598927115870609907271429662456322924893098321378339062429376916664218008663995461131933101514779975467558611353932391389974802297941729608964731963340627319818471160076728143037537749972164836431572588521701435375763293392532000269970698031195880804282501658164838118588645232459319054454406263085502090194336623978651987780202415348273862466741086232147267697796672560364853650816804213762009645406540896775169502486051063181200808129964261773940494320776977020689664493670580093111046948570423094851261293564530318747384308734925973782254664873692255051981384014302705682791409959710407551970980741026645742732337982546668089535079346046941046748847566953367289581106597245562916476396882788290530108420782666679008729258421154938433406469617554570083274949927341647312827446671600417216214075345987130088523520605415197379446369158451892366003704631107707408745732822145085292223623504257325526367400121294906634618405983898365910634747775815063504726918762055579677685537461238207355412014093681922234980198714144113356002430089888205185886566328976018505580266054738023117727169311802638074427562792216492442431401248110543007730447570464936584192438045058725828552202293946745311531443506367692432758781649783595889081222180297006961070407355344006362368717804935894992167995399705934330128407211682679919893930389870943152915453176939972808854888429674337361836905360502090081434267409824284167411482702182677345763835410124351297961250132103637720867131879173608929654996730911996568735932865832840711791287912819910932949518260436792083498892173658527857877825229781617148274804528579331297767630436800512837504682562371544100585702587103503596264552318736422221936665765096958617757980767505515821070027882020962509621875294959917652094481204876648548616478596891885223836556565551327717420486728594052415750031142425106535613895726244925279777462889491988205702714942341221380365601468601655235311940864208509941956887989905143849126692158980389849055256390829005488002087908265632458057436974589079197275762287200697041968256884469294435554302796659660462674221030874388715525844787603862850689172914508093311247220845301865752653071371123780911246027907633868036006229921700473904006635019995427852680730263422311977116240798940762637671362618263940735656046300877383127006554700900886158775299115215647295349987879394381899805816703726780273891412748399926177723251859170317468603084587131660388568237037913369805065395972308456544327257023407981142473151593423324239825325133660329304749099645994032782231643248948228301404230461040777672895918024885517103272355618813204390494775772554641440079865059863826178944280764692560565721946796412429777200403332176835610874773323355146849614993734773083122410498228417659168993903923997219871436029969322963153444995853839642461862905470152690214051138158743902616624401994452771480833631846045895860664627000884213878096638948317301108595184904999764336320786934098509567980347568398958225873963846836582605120706157724409804370823044887168289020297800375360531515680072722750034520284745630307640362252255333214344224502016209190689380535954743167184810899088225456459217148950296301313161273094687901142181101672398128926764288139644022982783644651187077966379712029648579924588521640381899178861217472759846030258862140820597293291365408035358608207838451167860717239779965742796791028859683529270468163371553348506211172902799435286484517903119689185326169923794115750834086661258092651755088241505253502574173341307114582168469897640769243592292003527471637864351967921906212585076871064380269812905751650410526828399583532987901542003779456373581672472692509982546109920068809674624077025888648088503404957167076141621210206785720217855370210362944184284976174064563524406783556740601466711467068675222560794386118393480680709944506379377067195541474752384645328093909696917840188123406904681233950820110651883342863722152769044791626277959034065594676823394906173091596238259837347767136432397814056670785368684903332341637154499170188079059230958821311822363910116547248651458109346938967741516001631877539026226727023501748509338341890060691123252252012304354441942868061527175308684105709105542331320578644314266250647103619072112771394270317225128532222889090093794374985094347029668311046996758716658835717151855662274255952055092821585303679687272713680431470612780365216722505802134500410579573783731013450903649525527995645691768209793653736786420745689115223157885013540977561444368904507251290548571742295187629253992735321287169453232485060960102890253025709199248235979938349241480712280514240477671720292183862642949789417597197007347603783543476093717315194266490569854819752799542205962389981113197329955292068511654893670714221300448405545244346626527867842449582154572281289324005621980979307778852108077276171667190013057786890164997385555677497500184115127577721971649869884158419039395806868718746565125698855659307278634313874330013108339505004567828385669622710633878510087892796116796721801388733784653769288858891964700577721978334606966615503462871374228093534478154725700751296495694870610840365519266026051476805809583238091903555754719612839130801022473270318343570032932297895300231106494597760858351062806606386002045282958379974504883483902610262142577986769699863361808842468468699716045860447146932724797104468104042348511929556303604687678416446439829454683640831188829464188383103709730469037412800421067453917298990820432879877806637782464844571295731584391625781781220345713322862944125968085027059795926527763118907905870457369715498937015576994712500946233489107687265244423543179885537543618540742580705929243271526582360402788243386581280954588728381379504733957292823792218382886122251566384176735732925432925838159774767662582930607687516253527184042744920792954823922983257008035222603230464139076030923377217538294274129469754218975273511796841081278273455510568144463394256227949920397610420293347865091838866392546955405301061206194557977457788489228147160216215554568723446059487383186365152584793540840533216556562469988321061278742978110777281442749554516732657544945112303744422801356452340318235355655364929892031098233309818126110717217807708450249796092860478663292496471159706151703708016656834609346071488827450103019640194214998936116316936394894943031737456405395730041103039546186662380714701237551214551837311236643024102149902601738224679946334224896645885809253968046578693697986668868366665644577885920683103059051121326710089318818686314654246268276005226217992985723860812090715054932103262340647980238974947310611661715778753329269503627736213311272327205589104926253233188563470922513599067493832584563455564199164679468675250179174826212948833491428218592990358412135138646059147155448826369373308153388026429326492254114377085135160212027555936965696230528868370517423975339848820247301271312087447441629446102002124711499070773458939025427625081529311304542069095210698965825023576717876785845574533126606779280984787270469770479353336832726264199199417110613198771505314191450736159257987543291856695472370836281896665931984710398382281681106861919274291616670988607057138373149842871297801827040836138756490137294241070010180160282309630384475322076581245613931171550983458372539698206981278138364825841150200997986773100450675168342763754166642497912840970088634837115642099170444068171554825880406769117696370133466906944707227238601162650160795258372449907154003710110602007517497949517380292047094058371350094579430731199533705935654480188339726906589632107837392705293050188037628886865172230058220326984836699656331766681562304122824077384834837285199176275131818901578338844457983881264111041316092841425646000706129795305201156100984686420960209975851858999026025753074955536942675710762546289036676113672782817757900951116308260748946309546633398804050232386238551670714942907402122932452667899548409282367438739367074427385601872546015770721727282232389223282971638577442708616348204079350679886430275420736184783282893134055275103490399996680130637314476068216169640859169373233450388582876434779994259330008913290671548744667377257732198861437491845064543103071794457807951933244878727721339933417463176089471155406371627893387348621908385680886881525178367050493251449264728698601749537436400104012262125641488416851634228978211707924190247453411447572276360858215812703183172025830515683684953908708532164214880247019505606866447805110880312455619964506021186095602440713052400565460639133056121631733428133894230527836108534900407458771500523851626717189491861022358790966984516128113076696156094668090083889249831400277834211193471287022325788904137673620951390855406703941083427490342268530690290887632032949728525392360657490525512732266598772063989212968481764696015948192621107743266608836010463002476360097000109916443680125066129335336175049372924284009626979940015489359242047765845271388695255063849077051856173406484435136521405399687374382863576997464679824521964307999054605618076075434235981942557731861445675006390660956030784858154982481218974072475346634044833171010850966454644256461876803856379067881236143004617564976323026826321886166233900893422765292263642307130191773823342207088876765770067897889516102393036932669804696512008367851259868808921822269973631488336395559070335361698845619283366171269658173306381691813851831048971950599214543541681630468462591627161883234999499414725341161102727960365608974305277320854357081847581694962532806576914688736540050363549127869380618971087931446415506072479682095007723943670848608920212309537473161613946311201136888702943362541348715821223974377214982175190242233640522022785051524275573195104428510242613476072140012674230308709674719937084281907278266412716501511317414239028097551051141279122679257522827872187653716449340672614054355334060255779922578876090326808816966003137730426839623306293509962853062170712680696354034869089279217804307211600213885583916528213596480883254857078285667638332350150070012709236903766653538369262169484743379906110052284351887156260416455624923759001489838914034283128444822980591045828876605862921828445226498785775366549096594048578412891922355448065661772338881977883358055369263791473285883969102842309822040904014164801532874535178946896618688547127604015444937783307690515602905471430396688785224680901286352611564446534863216954906368165972872820090602466228127334223120401717690258943665848918126456518768904124177759412589209743534309927843409719952208342670911140446875253599166758210832176268795640570879623236022220795890591392911980076893935715176299141204880636275408071921139800138558177249645245344754632241035666610026658677079678608758612217765654144532464438859467982497918189998560430930509940602361501846833130462541459848253770159442868983246574776857536398129798959126322275931439953685413612191558653488937494243683121935559373473510381176202963928156696253684230000877649492318533847685485922443130825347021064884240826950430909600842168452017369041450266853571243177901173263355885661648277785625652260896849734816097261936857708856102930610625595080003435138840327657503485848281097846981371957055521119456300055862196280920206149841242246755895357615897781106396748279905978630330662897583261001435945368008960497949368310769227672915127300325965689809598667974245107590049673387602979831055069543668653224575730992153994843879822052038404812570386716560635204402408307653956022676610870384985465152522804388816410034791604669695707413616070339084302198594739553550064175413004810090459221937104426305603530081213054929281211169553955050870001603486472606666831891622460681506686782307388539616630879852209966869044158522998318899322071390279545744860770693265499938445582282538770779808188473101671419732103651440510019535677932315509277823259529768070850699942805403008392073028710933456955374265015340095371894681355825207664714364876159182690903861117929280261341002542706702384589726298022046045251167275467059060745005054816989789531457777548103602758691584339218445169262861088986323962749318835493644907984333799514403096446991620007866852113964221222559010200400210508615910729444203034066357328599111143342001398347488098789677031516219991306597525763097905178088984374841097679012083373910783955767088249293523730558820302587901791747183891874944217271840130481059311482120511930342572573051255220258548409019761214016350830689002902674903499967211164886034928717381898388498326225159091673186403486765627611068577042423060319620768793751055606091368985486329816978659831954590713443614463963143204194753429241161677525350609055686890334090908740292514207271329006899150879454130803359875634284406499333173240870201598984578201373123357162880511961350604894537465345436398736960347850684641809079298888822403170070689458791564510406429229905192373186325634817835453655129748557847502775082056717654145395789628375659667917232915653614490665272759163638903311319625126509476498956391038059393498908193001849603900534057418087354301160193279198620538525626249375340498143829148173291014233652284280085846477352295070270315927088086015097165994165554785000179874581773589719859132186829901222031500928989223552032219280125709227194339662204830368360020857930748772560578403920418499795205621061011151965891131598874832282811079140604788129063279651503363214444477511606651359578613807813480132111632883698116302189912333707627408761414722676078085496361134195229969823789507044347918979213915857340972861943893485503776756638615914509678874493321174249326713889970815013805660785942482972550958029448998590330951008560439360564746944607630030472376949824191930331306730901172329596905739593438724857745636637019005198134340273439135236347277533166869837044874239798216611631115947509210742079718751473559717840229234916547753329270300356271226388145622883525601480381333505121088129421587848435022266821135291774023546963794351796622199666579030619506531985984814870008890747838351889811055541225518657728725346746145798122502695405914314070199101818901347137985188401218311815711475616296650866191043791662524369112854525835650345489642941464401310791799810870664612000397898703322144589948068475080635646040318556384135159979260247468843334197940089982699112507043254549556770043154907782345906529598074787456366610110356886497717963838982506319332673563652257527293413609637554446178510149659611558398629250857083467981944271997101466503177076800883831456453464087952609725574690405513258871686595249716269262689467429055349455275197087305771550845209048423410465332916125663727179553032712384429518246765899007144580401967338139073139644663253874459026299304069642190891359795292724821025602968502655151986937703666410844304511486430454316779890464208172338366887023958396311481678883193123576300779721344261051247382500269288122998867887788396561374176932291963851326737079648136567230444911064952361166280882786054368104622849493579760235058890017758350338688194052453613826019217155548928934594720022226884740466546613043857474208525129805953146744042574535363056322534269557311314159971937868628826973079662511581512464059970287242598244112756973218844560734994972362763091825628859595493983250810306768774858426962128582240041868302191097583120781439268298893557957850322703741485451350871646368727993909233649365393592921198725551585046014047604737229123550937163360991655296803761791008793391273715535504402610241081684293799836651931999086785519001789393979985622060656381178046741113307032059768021571691418527384524781285082510144130136351049328056219974994489375193947501510785773619811830562858371235166607223225572001631287256112248635508709732215391288689719104704047053232149307929242249639045503346816706438745626926726013194047415501907481628624351593234869039249908767598879747944088076174553552831436752654029058105532331039752875631358763539180900901038293803706876451741417381249649079533151359816037109606611693873474132913569295489711165351501499457909577925924609401310781535680422848070087751230961577349849236271519260513561519111960541606297002050245433129055136140603336817846143608196383670034546361781597075657999537073355372016638786084361855081232382819695846208110245555885350806542328451313574911430479760446068246698200292130929131057666155430867495629142734235365558316351217693886092353733820023739572608061588749336467115581604093462003478658652723773508038287718474759907499163643712903534866653398366409316695580912898892506644783902858341346881721909626140073106062377673272580757815277616294853875527459942230001899181071887102609186083509718521681941150355185800947561399572601780140986498126849211288538931677013155820254545705629216675346376016100722914723699153129523832126073619878157817259058407107103573028141707998832587194730541402158667534264491583637597706870296777923364589638002120655900468532731604456521132823152403242384155102951824803751964539233866698110136729780468554815190771939497161699149512627289088221277879446862469338470232024205035790368123405737733021913435808987686495059183577545829800267571265729952992673493298808813435150233091781648982213996361404699856597537928816371708923837702649448689094936606039521603631019821653004079727678760051230994042521793364559698840656360362289000581308583029624839798186468065007674352977273874166984650861603069095824483820317169645171798728117483491224630573549448694178272239086022260296141853583984000878239325747148498466455019659493284195894706750557840141782278607641971542450847805305083459022569181387889476604399999399684823656749865209489548258448346457110636627706968068580467313565745497056506616112719129919737580645897663004532304272013878532103428149570907660967789707928252506995750646842304847041450542325173876422024950539408792946871891960886165385306082493604018436176598992745345288936721598184056517908202932200588357016162188123821298397917622359335287793069710856638230491581529399823002282318302000551543901090580389359510782514777037603641044215405220139353995151516998433527008769441742628587308351829975482496953180027918390515879492777864029677836543783520016603532645432907787678695854175258363444185035505535600890138545449584279495464606284954389972146752301719045319897821305234561118516683939423772542136332693152176645933305382081298221040054091126668884265285610560153804754741340905392778210885196757362125037049181155093538737683416291093621736197590366915697310760440946904575619691437802755115242828507866187158826222504072187369009957322080231907168833366774858518632386187094836372722910646257475465021507441985595722939757505806255322794469645659187330231349707274323822035238445034929124766671829889597593722226887027228416593502192768728921010774801445809015428522968736696806042588137416349010527890258943150137287431067339297810318087802127652701134053784391403359157915268737211282304298798292988127598939570297582153478947652578802361203319796732436262864503550188229094250320263243122044544804229561597402915436445783067082803637533800945117286974041867705301464474179627569209968999704580531869816274396316333464787957493547997619162479997692733090672660743185440706006957943161490059866927441511578331477368806534539329184707600026482342520033101530601935018794493299912444731917745831872668504341702917840467049411819285870340951062098420332191099687275147194543336866606404128460915834217188688704829622579103248814575064673254157938287392080081077401989222196849570682793967750211727857317829735089705010177990340866604920982564405536082152030013112360965351426183612945992255233640411795517795145562000112324476526847780608117889933501338282849210357454590600693988126721045854897394860777997075940517385387384383704832488763198495096331636911331122010455499945211417229213370417292025554658235532325945676602292198719419111883402578590195688754956020119813908620227297534409187894999189686224145698237708193032621059757970334410529998603423544604843921121840875419690343199019829874235980818507489405772862562669367905134150613729145629339736138175733073347568980957901333249676048529410129260975006523692953597668586008194087548160672534993474799138999633917741447644501890163875740686325774017824318439845408876198394780200436888860166502299587538042901191958872378288044508653708610670662150264396550969043862557248649886281290169083373232051379048988933768101469821077553595111881487230298923439256650950102535974666692256467872657105252504661033150875080599884541953583172914329547574697068548868259200554175997336485802271095390719424577159344915658428230015980022077300524389142681190032742233765067069435921977745839216554018664699939732586338275029005358004161146371116630783087718410248987610278743147597929936188591121711456313286970831628030639742686065323292796399699324453440170269755169256740563590292520788324407059203829064860244185849882582097225297903382683992535234697189443237101014470663526995426532845114752489149989699434504682855708360302825102717952021137673526060518353071222455266396520513248510001325479307580689399617548522187456909080717908293319592735504207676243354381674812963657277747299420990859266136160985324043887874351834573493109930151599699615931202628738835820477859935761585941025076776760872078772378281752811822893112880254009181096333874039830949006798741976387006986162788162804349078077034458386431178388917102570609090657316255840906382600532132147397820709998922433564062886641394262434477283544987313877589872889481087103017078878105494433982787769115504144747930481995464852671579702477026648899985944893938493036945550058369359188896675939264021697792545603037159808928472099520547745176003800407682694088594974950495633240301472891202919649826350561864278535053282882957168797679844785653328620257080481764147120399177949542510759142389291538883021680947556700550048165707890202038005271909319617619309974997914083566121679075487114425060066644711157849426140152064082104932297247862116068731598566286950150160276812616418870990950757256997062073788579579750102535695172813257999229792569941104392664615457883050190864413831706682782114075089701592690974489822172543369882874298231293349387237710078916345269791798996522257440558638046795509617104431797790779847345869175818588128102560438560240171735668614035845510316855569190597941172239625375905599150043938093944283108888139697008314601594251109631312037567918128590044675443165824961731702252461333308761035772042436721222120079389409430377591055523861455534348539338546348147686753291728834172992603879092042948834541950737583309182956663507260406096208773940189177693694744716749544617154446296385386348240959020490356483332474157810025871547619958476610756772689052902168706585648491442874740547374124768441610430741116081945893116362554720105622613621153294210995397644085262157415122099692892522284410097408863317534950936659470559056295546261421787771582031923797898189245352936137531882801041616313029851809922560755678681335926394295053288226224754168159505298105761448318633496639045503765801057788473170547884068977714539574718042395877680051723876806237671802332873179238358264887355113822066243473532013515432702739865783734353537031333450423980299429855574723541256604016122270557842835366863024731335050665684927620758091511527490680176907785819351303580366001715488857423071086592110024924085533912170465791988886831289296363236480467398309324506097156667402329915738553558144145510617542408223314546701229957369565440564883388470924525518008882798317272864889536845674632013486903229264274321741310886008072132887758039089752647672195583336587398010169369253385406219985182417086530539182405137879473803728728475103927710936898888115457416093560900460077896010030777935335264254896756812389455650405156410388983760438057458979721021449360204646560209166898338198269314346174819981410343055182606174372276197793576088082545649511650943833243570225293454098856035277430938751001084189543649876055514147332082799222134148085052112156216244569777376912032606148304577296671142710360487625981636502397552865624871838062507789363499652264597036061504563064013126106677307133591889320979178978564126878123214355720524001471112339807961701587759277451949057815253230630722332515395486997690988971883313954668379650725085566858624798751445178198847625567266353916598748961981897392176834386547982810937360962303389754923374805459676219236518634026639667584369664033078655849018094491924635927853720295966721260841082054188251144181916503373256571705955909435788120723677468798450881031428634581846811081802448133869699057610188967585662789692566343204861920524119361682358986015167310541585132428753787819215098379670134720379404635825147213204704440517072709562505893529195540292262636893098912040786011938502733887037568339654072470263982277146939965040426746513707065929688624834640985776962453792988358893114258073152442173978652495441117379855714074958343846566366228502272132151742395579687867581547022149101886030306058058976636663780796560315280405431167560074047026191489177795905964732023004590575072901711144168359716169335842512842776784580317695806940029780735000780850635464375333626445757211019100742482943520920433695823506666630740694401067944406413093731121427330111630240813651176913071614974333966659892804512185867214276798403747955356277367320918574540128104292638194025551787758601550268543396587371878486148432041928954451337548010839546292483011990224138103322180265958968113523521277551962663774648621179046463477472442457148995985075284220246580286930859349778340577390444246040280389403930418454488255233681031716513349337113975339300898273016904007751782991154039475535491677078252384505910050594920280763209621895945597561256205242517281339850411795660854709587872939187188876352692085147912423134141065628397306032192507381896558613776925900717304917929900896722195443204340356597022505498204684048439500223319241061822522175974587782285146306192374285887680405748251915074492995481729811959297916246536162803733610801967878261418553660246312524812913474466202844519066416453034036061493212886970047000189001361625982798242215592968867617966783671220011881112731562384049386647383608394652124637061320480800757642318061284671578259143641205792574278080192604612427485685738059641341179215590425640110878687045854830748050039955229923016328957316398503161821783497892246985545078315065870339304204012198598007990352841783626715585363650436213321362983808296028527588229857355571197856553012272804232140811821651592070011453810257007346513346958586891895706201176671260993787066526501118527808909352319969545626675961843392033871833898526154518275523333375399258833855852286539945822942231394321561258758490356658215718132423142622463610647225181190438104326303530218824413156002228904455891094827865692216929565152103544493575997052367519546912815866242299017178595705175767119004929046677319566866363643360477210926216558335614071149678019831785964521192166760475621585770749050049992107862106713820105619349091137591161655335321913245765922547709456582404698958090554264483275168676725900339776053476274303214886438782758861201197365821954246022918494646745187098486966710282286155484071664981661840433634029921450356023070700037643907270375905752111064225723386975894831245799999907750571040287178638043063176957739665073401233027722486178492227491901247269855423672040747599302844484835042073311161072619462904005162768298259704524062316833839770221280556419892377237504334886732314570271412147788862027339452163980855524375069054685317786411717862055807687095664831345217025300990029323207118988870762310617170879101912648954205492356987505787904936358346600525431455286191366982430128850286361944797623419035815567276663377100135605071379685687444480820644872066499415381495175472940788274746470502828634696752595850558593106124650157932382914640071734148334756536165693656501599483955428344749419523567968286708644994455774128758069653153233192991765082267462593621952752378730765393552051883670340634489879135924911192549500970922812918037832417705283925348737842820790745486564481027391612973162766174532156168345993618898726785083215774069984207790463420687728006444671000840404136610042256457564352319411250934846688877823866980988589438831369393140469941758753521790965857702748608568465797596866584819938567489312048991084368653290152517731406561734012563001700460744005149006873293421405879852634200204041242603905737922423025141341905167736095426705201318870805649302226136066097483006087002393194085357296858862097417226250531383448933843526263270260292998876110315699123861992807577498281125604909547959925503440155059946146729490252942163635889276897824541168235815212402591722474200339107559228776940311181631515230887044519127875830267398788058573336454710695076701581772469146770745809212528173993106541080519071336917479774801894394745780937982072907757854220855492796751119079735885247182828552078534255606096867876076488065851514937138293249072432030316087089884149616680230382794797043958849179017113811964040816322392161799663497977438042378125810638808393865563432728045738865251270507569025541164299264881303086558679473780724161647578113840858153328525294912797059247968599384957643127577676597892441748380538066180020090259656311606494075172521645393772061334714292942554071251621648942990056756243504508160028606149014609914637614898710554852173902888859601445633440271560940990300538918600786929641504714273846872768180016972631219715815291124038843175526373939318636524225623966366211450524338124018321166058918738329157247250394509083823134762005366299355977158432560372802413861426098577098226393881502943651660486133856446565953177313791833651582172585449541108090861017929216138537970897121004984007874664119005386023450467880728539889995227960416021170125206423406883125309848388377506013218537277361815124409379107556452755490010383065527734704957361807491064056415520315463836792241447813807573948719160767451235270431176199619851885842433446138949187105611277346863032539133145075395982969755898888225148312992435318157186077884482857428325889461716430773963918596401767632577042837751645548167528713699310544741968063035291578767556283515775872690812941615231492139785482562020136545023596231846758994273769653396333769081472754508380569564899931914414588355937654744416490902926392367371520079029683178155387612985598662761090014495932038930401566643761901933165101495869609202291866111200475036935580446930692173601901328341650037175945473229526113011264356689889632888284091164296977103402286438180121481469571027109776786901294714963876523196379507229798400443749435704199123293525784488394268487591229292511699872627345583934530184677777958420300571839882046577802295330557391116948531052967393826825937850423716523918254884777629909075986794275872559509154390175867169568334972923096754791701938698601376026953083762838453576253587005073332738356472350151446750490495804360317959454446521645746060617984790009307892625107761092058291371571277794248948637282921566934819219586046772078824637161654833430521217649122802945622693711110903795245603857531868664742346427085144765317891357547343245308601593069223633105333463870702820275216962253316298335355883833573806218571209391352734011431257809328494134500820713423284663161201014155055942307400651516531283446692364543002631853873796427371460712906312678914355405923416434935821706787005180175836747432337694481923720258086100962781526388568845892075505344687410496999074471162249678346777312878091630085352651444057763262499019640440598953748852875926412262810887643713844322656387398679455003169625922418670784479771538231552649082531346682776510207736227927382438665961946451499465973742740763554474208028938749585523478929040150848898865785861401269805593074456265987692681995969358365910763835904202719400299666787606063033178650999656393924195552105981604994572322085824662984367690615379446202078012541513775523556995153946545991749530651715148119588112090533516414216044019115828207937125591279982492069133037903657403402276266853432692703957570979227441484086772243702364930005801305258591576669283374887317345344206740399778993183487077383431150004687455630432782509471979913052662351220840655842297064701080125504853155317827634919745920626376638170208034379821865400815437288515452821247970536037851310225613639025120259656391430166705262089639466845666492456760224935865479075636974275294575880541539768276236840356420813579510546424053276097347639587713648760083362493669463532666903252683504848363937573806258786193224366582910417126047166304752759698081609468563199575679933812688756477648820842372531330366533938967836756343769143192773950961626262702770099591399863954760514450477920464929709719475328536683693640964068948014869132014894027019071455075267399358308443403314769340499973644755043661130538641143644160848187563819493882076729874577302155908403906237998585448616864213984828947075989282769441753153232279912160427872143885667237651029461611018686289246829429690917831532491534470596313609096568534371940864230601133312359211813358936606057286466766259640291717577799451949009687805727169007539922068359701272483655980013226005777166763036498598578822438987612626296660895591288472186088682749475322702948333039644435118511410782358906705668545177202481499482552153336210951860701762013441255673574676537659986167144067129732629752302191690861988742280352676673712565152566160379115441764419048986367700617995037163899278081359691082676208701829629763441142482461180471820007512157087551781288464765718380900934118108661093908321934374588676558980837072941026471838061263228476537732621042727595793070149822153684702489479108637720774772831468614912166735730705072255833344686870730339071464292110627680652809448394141570105754909215847749044680728579240626749344814982683008231239225813925128777391281809482807537118529256460018131482026067960862242742297299943747808726662094577759042946222749659494386570282470268992732652041702579786318307914164485635845967257740009726932163462167899342744501275407194807671847023572827400342388021133470119848732632883545437663343464436382956375608003384773663382539961815899056871503998172050587120016948836394304861307354278510364490236751947095581338164991777655146256088204580149533795432552053562880471176571200152229921825938726465495393326785315341049808395802709133871845930173814619864736685318469537589073911614279485572814962730192621500763725827289684449059235896104677844170459869914553014544437944895248385778505483788185294689588360548495811300055547045179823653339116249466738082063584218244410564235213650342117443659744312461228089146176505854830679496777912123388149830777024257351742906551639074616920489726244995201648779274738571736279746482695961184697559848991542528293041180369431798346822890670744861597094874003729391745975540171038079210683044151602618523785524827641065410397214399055299734211898331792832668598933895515639937865708199927398736946171561556639626442144868063836026659128050418834478617982927437414829193160449607553392065011131565703822249608989646643776876111107648193726735038198672638949187020760614362106150793139907826219147951030458965519293642466962616414959968265805406862276096473108588159564623178210691100748139652347409611379079894987527779205069454744734318695744340523253686324022751637733993314288268827536550113742054126047552793227914985313575221419699219426741114014024803496660708664373325453916849228198692529953641252597262992559622204308543935040407208010280067724655000160771894431442943723207223760911190859514477062814599206519561949342389536267745129985104052000333159459648702582131241774771146697907033273124364877265238574019383620653435068143598122964621009999116500503210213972422671153165887889188169813245951028082754289352643471988281002732971463178265075068799778327449578532619354817501785048636912090384829715912836571032445757323515521865776266218969687407013704745722685281593168973407365015160403708864353427637819301173168812432896082213552957720700627035372821639149397507244131476422521466506939247240452107154536424915836465469164379001187199468224564599457431974709966959774719385918350984353015835516470848470058504384162637546468699829798262530370590223842379022687279309343224088991743211417769089468571117531550123581869827243588896585194743309931332584266147948994861890708035720658790693597981613154535831553792497091397967476537621204581305088259833643804055957480900727877550748455450547030098145477579432155106446553842455783373899668074677135349822401358442920580118240098685726078403349576296521748286571526949044182256439683176958223500318129371451671870690530322068372198992546690147695094508912132676976934331850158859942143477373726767551372834094645161512633657550580045431973348268704545440039040363454867332671467244420102708610743641086559971308605667836956343192864539634764465881926923500538691514592163644275274181480323960356624179184366599196108186119810320921755020803668521921843154081567968008171182110094015185159044039387774392199340758722850950195595776238850524040094279619930001353246832687878388217978738077085291403391025086468435091573906099631430998803997275922311062422237218504466919390809196704242089704503376742664531488411390163224856803579133487888148522213019861325191738569862017363099830011749853221392715263323404235598999803689125403088657358321102942942585809991195807162883906008935701669839351292436520911646438743553763572992433101473231855421929740359645871584695559266469238471571905263745970410300279948953550054204297450306698680738471463776700411852518334834183599241509039651351589481567860722470432958843080542415451932632749021244326909946543069266926889115502869719963725248756971791149220243515981377253960407048314236923054077453612959563985567058404521291345162522335854643303584262287060928383009867644253088458632459412528722297076155232686715166816767108752778992731719071671963519351218811938678144397603149287355924665005825809583582060306543069440777598927805203055739295643698455253124157875560057090623127841441601679611475134595537203019936698387030284679468526626700430234178527484829417942581301419147954886659802449894662659142385593443303302162282938399673178107017082427083340412042298996762250582344951236517832528682307470893801054497863050610142477714533838888626881579116877921062321733587634623384175486321715695102142009307366746934941996230487647067097196214217134996465109294384341753661855345966120874494187305542704374386923501580938672877443609883034765137396361647397627779986965328415412972122396112834951435384624446050547237306427380350656104448677553626317956780849552987166171116113046616802636314426483260546796438985843250432737045152739588213706811043546945626102017130996196386079730522151052438495363956791677600714984896605925034257344654472119191103742815122699748458084938268807057812522752359851472533924627299167480022694646998537637477773844619694172912255343041273497534462690379320652519151286884838520323876686391640387419480784879114712033108699899446174441890180528582936889673039290513631736805641832319465701451802004720989404801460823262440744868248794575762460227617596749374527726946435927603254396534640937691285607252351961166144928893197090152819311157691718319386467078523349945830072791156482524400848319912966872401067876571423704561515837504293092740423089973033025202598607093523414005203030121046438530559440093927800511178646260602159328521314652183054481190947666327998937642965009600969987648657632758655121373811593805149038698853061359299112489918736002977515073191552228547324174635172384287851455673338789248249784932795949023369429686903608779358748003736258829487803137044075563200859725209441717143123926184780525731676064839650316812296034979783488958747577197109030789876730339528055708152788901222774580883355032351108648096538313373420642420261010216328814203303742059126775405376794456265228023264672225900268260658278734914351174264251421686491244797444854701543977285259857183558890801329849404726988159394596668345911566899566321585097339971814545357181378148497566586339957270906502100207541004510578889120041449236098552291200876784849749472484252899337017578493447873139435395003232332894005008393124490275709283129064396214037964270064510822865164171214068976170806053416168592156914636887118625218020816958820845093642370681147866018742220517005640471391715726636678612943468105855010697113773187830752844577960413413757042638082556710898767239017266635710348603677338846074583747328486803284505622529483567913776862346520256603456711366278114444934872274872761768657600063977683921638073945240684892527970624050120588926093024851575496219184737413838833095401100658476356772449233807238436110378381801141847872088344032719556523692854881260711680514074686297795075931304228190503636349307641943155293772141574121421580234796823537947204692456689194038609872627748993263340179851168970489294965745539500489323408807257680917145285307221013288552248498659213725537166673030836729524234738442451888434983015495706067508611913483717690837038926204105769547016742774014195436416368746794340191524922302916909377924253715795826250053790730818525122052649243006185087189377676632621365636212155773052848710905472769465029273943031352360135818144870250705336648448457844480041643620399621462532463491514219995679979833346506852759242025512924526504272889475193053847722217586024742938407425108527996242629952474107476792676562398198141862562715429506524197214481247041006885265346292281346701320774669894077882557057426910458102126669037660480085500889292817199247990014422355916700558231947603686616112393587715225120733953379161650239097907550097415397455481608174822238772338286771422636609998187225748582728173379872282608961274962990528693467890987681007390857509464112330215741997355698075376112741359638663260014530149354722026369446278178450296845831022869454582264113509909117698586167610481631866634847969602549610187198241693922281153631769909603670556692530738248661328576393314135563301255859597695656662806600580031713154088496234627759531208721596631160829680195699953509855362938265275319201495682530043450554511680893549641790957770214868473380311197179400251427798074167288512411221031358053297429849434663432183968271212586848225543491762470538450185085407149257019999091017318695603052619578719142851343001675851698244422313936143136587204624255039709560367851977400239232921161619970132826040533155722428303511613279698650153506900645977055655431749735274414051901072129502561011378380649450365297049172489459245798329550872230500981178847236157566012742133411884597251001074500740852472070027917929491297491742721524415107611323019323113234625952824314579842530047339464678672777891496380033541481796143257413765899351627869851174096125735188535323887925581647964839971016356397857545202301550408650243629877004590885824080601612665187354783548546772833351379211333246560212989279778125954870679070535123730714072571497690753087705405136696826759649145675507224970137715337805466116430871873790110443003886640991995576977201507412253305592516662467454740275580608824997351090724055586481953939964809441270640297899461248626990926384995390247928796922956348454232933146298751752557077918248400103766392522144143236776700966333428355396703475078302110398801098951163854044919715386368667780413771647840446531362399801982569441340828276541325204425426553956625754864191188143926536236373978790268123210929440636850089061583114027167194739498040510181858563338969987308711656396642926656807165856802779048370336974678959635543614252567914539709716431545886714127656357122375824366268645859055294801049626532285173299340200979827515173769112063105055896928529122870699808679053513985888977095288621752167374664297366826184155591692842489279662176263277483299816206731345413304678712205052021427834385588896303663502399717199329868222936326929240654534263156291157772195956398273671480663625877643221721041143319840102330180589870588707181906015270285623796379837412758228372557559134167495907431175733572033687071820934812718577742274300492887754321639573122138246487249679164728167415889406984941392103327218912573330695802636996302805424638478168180300239747843937148442221782448187007485329109659808805835052762810591223637923425631994234410546350405223186013071786005347970412581909925641109706363478836341500091152912238821079819613846652811292615076994698904354646856105218494106351305084366124707156844014783360365356333729732929987062206361343280059417806364154551110879392833784849934408919549325483288508226626988164059677212003640659026989917839674591095219195907159300053802522445170819379597141275032633001244927384693887977186821505253147422925470012251629150821867060489537894530393629666953072167580852370867910160546975234175063794168705579652910790996274891791686970053848925090733976503418813885762529093458195825410083930932441068293062860374471780693301220250957976830921808860401697233858060397531853320261984056308282437359038797881090426785187450070556186857929753377876632516463908607807825963206448879887556640533193136013070510767896529409074790996389872594761302219043919734954261349170640397478977304377602712727116588318721300220543257527678522247800312094550425704248724402865727403300245335386246036631155857220820147733246496454624702681015693616054277738925620132511813787280117755653864939964876684366031941701496923674831149461782646468496970240851550663281541730640671823386579253234612561319906962647091502780189143611816361966962221506703347296164940655705603034727193930602980703794836033045052818470866949086653477193463171722543296424177193651017721648215387687284507620171275510427940048860203263551168786378024185049384567439811382283010183195662098178761035214074318230865563026994635480159183195381161080096567213569720016991597728034283779131058771828649590846255600415384916171203276567190061676667772547902266427091138027451200343385607360085589550760355543101247182610922343515692901899222399491522410541428631585592596484053270477131058090914612353506372778463788204855532141320565210006234273662051013044397489934429159908243413801580624876366816618327806034770503571871255597647459879387270199772328911575112657381713153638904939025714032340275171165645833485716111945023688069405109399460893451782040673742040319275247180167543550767097545952418443010707280996032199350701212915284536002853197636869933617792221960204167769044157783578126515707175059410200883942573417000886461152599989722647471259390004350057356329194196258636163428476193820681800552930452502594057513587009942161877397221076553495270260115917124174715143936326021908730585441210830486042071134140021449114607628159265213158028274590758788688399914555131534213729945894910205307467649379931555452867937419956418296646753042717234201027007795866430403804189157995071215987254129917025561287641205612960411197465354613055406624598225348195823027749219803048505042665156218289730395657550227367553473490224709740827414523787732502804697368206649973846398336605415500770585528240802218430986181225442557654181937802797660090790670759735658857429928618045008076908413367769550398333474102655236640075566473541379659922331098694920706350609840299581294151688590558041903697473736903352398999134248220352739606241439781066877189613603913357811441648395005297114682025289518486729541321249450088069014516401144492869914583717359245074560460795637321850563944823080661689233644657203605660840364856153716022748222251574248968367876501361633126280585957110000883974617771503797860083283553205095883399436474371100340913310134857416900057300882669990343692675532024755160336035030188812401640813286758947471014795402501311083137687691028825840533384689440591835722465675102236676685577535460073084950639576733415582677741683865281216118361014562801898807438200444741813821892092138315594956046187430615785070656835901139650593539250779962312052856575363171150928036336564409467577447492227757985714817086780127374151278089560181956537121205972334510575045836591926533552382309777805093527672172684443143156845842167808641438808050708975804160029943762322302865795358950227233435781563561635168356521799267275288118285481943997895907184420087773974319753047591051918138748294723525675693105352113129022086730740624505875404310661372795871224767433541180172778330064005137939781284201665066357080855162212227571688091835206549059197206937774474282495275918417613481635240118659030765287662497762365896261592359287782481902021328792770948306221585774617865623722214097437144225954631350362241669507185554128387366925309715718696766467809091689652246586931811654420147566332250070826724076409117937056211271189410681343553473282660247160996153895819370787463749013100306191289717474101368869442895416218387906478867921919508800326586599070683611045702716875682702097497477760417661174146268647561330697757248939806153234052784246610667796092462120866114611384952562164859657450128604701408040839104534358503375978126341352485496567556958502562720545896704952478164569680748733898189773708276741869457234210691896895163630901261140214775660132641465508253241785323824455335317611520547828673909204680075653887457865895878747671005607939549491852320850142373087287301047354093314044025359439873854977578297545287826467886471498006558490354656032993493991106726939595946954978156578124434657646364952718707040229128793041634986736591177877324667888522483584237633021270928050522821776673858251968705836430489498707697758915806875119004095763002318830230471485387826234070466327062831613998601348314861141429322132486157632178549994897048519767640567526583728396602402530623441241789902105287780903077083410219766101393599727602339584010069150425975190698347646160283794218200441425342222436905693443207228389788383302322858467299402722417256357741787162935662634762773653329941650755736825473752256724409388951897858105389937492687271769448847269549341761512359376940574863708569245417000236620622395959556104567039866503395262897179370339916602286683714839773625614195954468658876996466220309902493078473567467072962790993586178044809005224950671887283150509745102468183020152935734819866370899782582569976951198608702329099826513336424914353725906788834006934774739213335045541010422855246109164725358942874288629416823033129453477481569360154424035061470160670289848199615442353390512935628549121459473925289376777861164706268734287889767025432754410612593186509517875117284106929150262192643104243053435571363180963269840322028618174841171438324162125119114506259666931590231305972024343761278701227809144835135901755807389731632687837006698055425381623804923917502819358566714440742547320127205329662858589808274060603774542761908855183959463099465822458355090473771250053048955070580841272737461583331740642091676700670682560132026764480376604747947800199742409465290712273785461105057960785922224498548756617930770648595326505889274010863832516511193030979374641554744936442214732543020021417873032525383045631618199938612973646847928751148386084836519824349243893217521381290496698721448707608867935561929592577376955228554092484436442714424978465953133616332994803021859475823604567127834434680449942937267663954241826313929548987602237764610694844191042728729436509896564362819086894280392889565278494540538824886951841881699010966410635145837859183253182627956453777324706210878685439188220383159627143827474357810443441081507222067743159731681336540096522398752672083164177659394044060854210420641376064928047056718498946643974920282064659321899477686818210560429668431145588182687003061323631955296496217914684065354187441924943363771427413255147414512988572941277553188238029944741854073485731150531820051001208041646971722614972610884967691226320028403843157276474932420341946026644574665780654433542722861225769804675912081913434888304077463563311679148987660508561696194744239965630392801445698528752900720475312753536966927940276475733030026928290240926010535749644818460704760692176744350916527899654786795387616075877484967270302172198874559974811052349073999887941304540692373284711349542867959551442064848035344702172963835573785076962509327249526151467702589375424709354635123913052029749275476492727956136129998949553915228491019161349727182868607190698736537263478320482618422344600595043511499155770916489814692761738417558771557399150318739093562797117806377474169342208717561290683058205084385307351515433059418976214905721497013005192453840694422240286505813511023000044136947552823591181701998821144330444140738516284283599379834560039250756550213002065433798685626633610727028495919830718842627022913422209830910233613303075709180284417117743315827567786611690016927622516140315878489135316693337938528525639615569582817491399340893010550575756437576609724338852587060960441677357701960910880857717578065463787001970522454735273270306053707533996555388490022635997587176145462904018360912126078639134875779499581416859127644955908566718981270086575727944489708044013723882276312591991723975970178230709416657773066043750519929367693667062868757749925485005256324472194581134661143301596079129198941860836418742988075874595114768120473955776282196524391171154401025979182456622180026006747248086962338988097115122877699417186113375478303021303329771121545378439178876701755721669249607195536176848933484936718109428701619529376896949849894740936997709795213558427137359319168012532807684345626778075509515251238903325167965720149841649412228295221807654558458322706513440348175843004447068422267539921380778503379970646949030286409519721703566600524679577782495688838042424990584600528511000288187885168767921193599687978565470203959610690899897387057093543295719877186559679970548658314469223066478025905219270532576994999323769044867406983765001051750966570142752152304786463001791188624492206395392113241559857686951239874755769424757694005827436532668118333808790143443727432930154030353570047661356530157334772485586271299272523370460272337626485531260132561510678718377072994693113614971319441487347918110968466966517212961145120821341106803501782056169908676345230252129555411679070226936380674394534534429540654372245100833964649767342164607984561002574165323900478573480784766659387095582208893646757267919186847922001379919234235757666042137634913201532468645981768339290668532763538474230923926417459711477718692631892800895472670374617485078699001395416648294134005572976867990978700880829133667922022472163877243848236356394772645252641140843432496197640838343431350681379228980141339732340261870420327180544814372034048594462127154917791625391608220570551018330067813392728361460127612526157378339790510776165623233227560177847785454089789118272325940469682256679578579106519790183542767678121568768137237544604693294922658320813256488867830395113295846119204051741446481460321259896900400308915487227770698935920604230671756750525769604523461260911357327050777040979645509215588998487162437268133104215458597932648000119542666946429170586685970989980833437821590922973751921311044269270197944868633811667977534060033569502272181079586364953467608360416751411122527810492483021085015002822665391038048436876667741864327872019724459729497696895195801596355814072031182523091747500290260455814096188986064436931970050227290897890162279346417833717689143924081288783590508922625298341118958900664557191013976725240269594969294327912157121160164199409200099520242495672748457144526215024087282868663001329351814960732212809817087769372621580909670269366839384476303897174769238310623657576667607829613075820293829034537919204583841276793591829357385317679783862165684821728263619728675419547233565985409780659079764273131799138571909321903736446035383266753565514229043943005093519247410738179364601832171922175967087447990787300948605212347594942302993247782737511005732786026685296129726392808902437104366048787369633967768850749988162820250820065733924438784126575642026665344520287023629409008591364940314543629297478946090051192601119442816843108916068081872070761617787601344000706124111105480380007868543376954687693826252384721330143829227011297686773541237980075395709823921844902574957327611765437869229884329733615210536991350366669877939292329671073589431402048494252271477093836278057129821469563259009682287204518891451315040886958800956225343867079972954304275782378688579035632131295953941360692429778740976287635038838877767574661215121454085511385439873687988198514737248846194962142807951866569999078061339603553502298720744879811945571542338928409786182095688804991386445080243844580017084424928867652807365680216666936549879480791589206208442133423159516524668364738527554648292302121566074174618082112364577848084379207112422114561666759455542928375859161529066351337739703214439577972172216568639478715438841048649125438775596507731957265057992764178663739077283277770433658094618568630135028148439468049964128902315326274476676704130384969089238072344276173556210565947637581659940852746400764564152016225711364213329323759266108168226789356568547917449310725527970938727369306277352791999637596783204498714088204231468158498331422841810348399965751272000327630589562885227094467568512454138658913078273352820999159303657492754237892648337985194346920921524157947636563578754797372997967444857824504377155915117159182169204566166663396140357056971472640160808046751157921149867656664769676092256352843351941548890528353608507907589626706471482640371658366439116766086708858238405813213175538989046528215649407476903624323665262786889450495258780705176929260152099244691660021206772046388871904584492176499760414358915044386226927001810233241405417027758364771749122258769192568350057078694028828266769710116848862126207602053440628117831185973717933057095945558122290111362495297438110090534623880887009882829684369654754669939925671168836666420203520012155548943801589960551243063686934327436019610542077476534706201821609502895476019380490275036077523851075902836722108943094710464257907391323912958584976512570740361594696293829777754691231706973783914948937427492997441249013199020428752974863797670923087469334185809481258503708283288988368498647047107218861597691397410644797483854089179136428893534808448347452840726054687189131323792882590128022161481289691236520722609434046139762397178747373082505044580077195978476592638181860181284919609058719424488482796527555508323892100420407782297749107265829353931077486435325500303342424423127785029580083955055312789322294155815235171118629916486288783872919996557931045883054510076105912034565171713428475412322756482548280677898566246480318351858119940413491595379097261077916673669531889793167909150823342753263920647514917802354785686349198489109459902403952245515854668350632858115320771228881873027839011828590953255141926067702064071127347518354915307276160334250274212724112222934764279998988602228646004099109717948405344612232552323224408963094523144188017119753609909056274171970361680213635439952613030228651031028448347657572453609799910779655829259389542040953499465383064990515773185847144506728727935173007286741760362978186599410039730206754878544209394650419918283775990770405002226206065965316046689070988389076731800934905982401582137105441086930778200743193106898805750335197411270221363533040044223111153507746404716628223244833048528148576874789555216184872710528294840799053164247768685431224320644146485432969058636698554694916287580785560865039491046199644984900270723101204021980157690501220335368093055769070565305152078201911994439634701840953299162917089336493897062986328505015322781421819589680755534916684722975154304569130880729433178258963059459171035628307891246999558407891608252953945039317564819783239524527199368196327202884509967591976217718463628823535461547721048499881808451049483179556281063546021171261634398488829286441815070953333262254242607008036181861263830573001277497431704313686558952596145361905986340370258332712101948485666892320086656923072936674609756102857217835304929830223159415608859077649586598673055219742863357830848180477322733089708371773768370333283203670870793978731842955495042226195820397634047202232726462571796772655696170646256230471672821427125478472428335834177584568056800331860020840312038827033796306147224786546373905781071637950138354516880590618149885286018985202123945384609493835701699039085074970389855690650150772171906654729384395353661354324717013385612239608630921016741678696662282022885417316992901602303542539762214893479429647281727488328805971539327396977974833629346944075423965111235501660110590960402399422139984774218891300447652558082148919045525434964512218893455920069840439526094344485709088298647339623443592331349175110013005994598404425391439233640198256780029237675898220590735480649612373835386160045303586319552562070807137334678988957089019905290909365400386919722006381507324012939236843675631229630363545375737503090365468841707133421801686822850873907341221426169722872673037491821878784157274372533840054098690865578202899198522217022372040523720378105598101403006154748773577388877716044809445798575337017658818615760897636989341171301423509799853593468727711645473068314813821661501960271917067071618487421350183957084813350004162123936964521245961860578498245285836487392887314279574555845792964333223223793732836559487205358837693367970570055234874225613296767931520984987129490116783987665082802506575899105195643906892810466628107851093531472663236754738533531226188238899798587045376049550355763302078482910675077679164616925415267201718327918305242894430796930244722948835643037818938455335960490128219841890729641679370185054119884439546613880915124497809666853121529936340334762142711394439566915965918522688121329573333186894269226323650777381403127078753429353781286520532171084977365887145878160185038978103187896605735872476884912507110293062184039905617445711779574370447563747261018769681840673126230970279593395905492852575231930721743442290955483708443875580479771836292798672581937224465271222307158302761056056435237345924703069103387790849579689055247830357456327234410253462578475861186907051258279687634651022955846195753872377913398697788747459727545409793849183864565427034275680125231925156034936407045258250438764848058724216326849089148163452373964640020466157294456174905750908547780882550148577333030630428887321431479365902230497272378884512880139986629774452230989256926871473409969563359877894356198413079000590642420902947099978210318169300502109752856824148763611177625539461781664278081972656587732370184949889318303301533667945476535754597359477296398201123350942858073512713009836331238845492284272027856111722150110896355569868208419751196591315608405230305860696034211399495011408832155253375780816985792410653680621996584591830903251261026679749543691804466554329711613806338828434976199061711597675768415501651767462333121937772546442593950974395879508931789563335910006883866225685125113345719550367192316743274052551064779132565856510102359320762952543172318288758690585054650987685498693111313837534991851129353711990622460331145546330390103478386145368806850723810997723670164567492806525340298757577063274240066957671848698999488063307280444264851844629968202278285047260596923684013561987020212441466947673850733388755695270984397814576649697214947208219497284867907671913868349014020795706756390676641061763699760183268027272812196509449651821403894320776917719309107051804019633846769395955161149689492279947766836243119155186388239326712309340392553029072514691731191888380146026245396814859997522039165852845311102866301088930285897966948779386121904980846293798085276068171355888270847674546574007892907088852408028886766443022877784847826098594884793603002581762434861688814985389027050136155283434644301453947506851407291820777347656073558257617323166007824947962864828290302482533107974715175834087453441727593235738022749686378222342885393272419993601622911298253109851472690076027175148526006517805243879669610513887936629488133101538236761528858011470609170321457447280453696845637855010387770221851724095898427543150854558289754110315090264168531679338592948419608245012024852761181798163723111253936466686339265512586618362949724342425495545771962074998766943754043446603385376059992916460913917399155587505536312702606248274665616637883434140322667179757464917904690941909783648944484996488680723473153832135816173117110772061765824824498253692666897212569346531027251853296642912058048747228087042063061432916591189089049283295978787746113281683202096499391704784503420668936382192642411292736356717308659042319474711848006064139550045231362813057198046242388724726727071447610200724370407424388427511748579842990129023245213815780329526963313520653790653636556237123417166045521502874363018572098151273724772082154270018205247339865258686651517383591710492648202375506080321159823608289235254421204657007612357281831970966866530060372889643779884948832740100921212854412727527937874580589971944530512129836752450042439024463178672169587816242554073569872544344697650970368920882075312566742301007518031041631117535611938523989798800547172587226287700020606759433735691053735904412851493547503559762101139676099496553080158277866827328546070480073999549247614329030184653411333162355628637389697205551247656924642118205234535148274432856204575562841997851949295581989586893536217646194422198374768786455347386423509225635290137829213748701138057507831779452045649184670999992575317431880061921089110510733280034045941083771875155531810376095194374040053591324103553067423353200993061245375975346408632546360030751781802176158961118018612308688833902311398596422241319463504875964289037234230815951866792226314626071822015184878888901987268312634001535983821581853850539627770147508044625194637277112524127540331291071931365065697651209097992553538787936300720517250213056751352408847181211360642450789468909402469740204834983071616056123079445159000509661064847752916746589903038019159506663202531448323501479536400359661512106889801695830536158994658968094106092334595300125794153046796194873415448756402032988569656067565205134249446385433505185864672568805111201804794505386616274694639756695770199422888337813470563680894105867326931001313400721727550541866227505414518618108855225369401839175410534689457987391309161466724626747470190348264053700233150056853722309346389792054163646247817769810242596740482249483560850385626556330429218742433573036809448158323565359098011776748816970541159053130264262153301552074930531216033835453583256295079437026279271564747101816075780243806613773197466152540448502251627130983165153772774665034007499204202558555572365233286199681414122126100963289648355351165044896880962524314588642739497395183610440016789130552501132413253737568751655823658954212556624095180958448965327802191707257354724285279250349017540660112764019111292531369504647818885919899176754049740416156753620844360848007404530021516385820925124347621451400731193543227847159857413349277887681239026709851102488303368367528320269203289582457191859963600953001859379521665073363314147658327694161358073896749235956459439605044898380305653710251534938957750293887331540848199806603261299894594039307375822305721297041854877366386450613116278293677941422613736569209269074723503450161924321170801424430551241591508240860425522741799766907982079439637703858277806572308462185059551483039198705856471423908953402989261494673082841156426736475079329854225429740278082394799569371284112028153507765114387571238128538964750720423369795249399977767982983944805801501512806565114757416384188036201767380286297271314066547104041464833971369980403001891964636533512841261162605728213003675390200627403717132813221925319893971760698957904576668210682075230733008612379872351278047167652853188138788491081397365615287822576895536025566173650147005032078848800386950636563793016770705098482276838794792531801232937760312931833637905426471217386511628355284139857481139038428689425339145319185349439973125697244484369607819660004299360271195079943057663523808906224284116208601035216535477147268077781366553637782921613630519878232423273297448944482345471478068497530984300328006494916484806850175930975407178933262928973152513570855506670409917881376233842128781971676226776163169876626352252189385322745263573941510926335710887662412506665728853498007954756091342158494751964650689198339511913774598618158647093901577967016218904131192456530074870527016721199148963121399622401317898958937197349575376495951940664074191960766756852544625680024429740158223672892355349247769115635441667676978412657719958116435546147047207117284010836317855766539801218377053565351998924495452611160035813568938481833189319020963283452974848456592867662242962833460879275754856530447813014721982791734472292218984683419088886950656048206868090491553964435257320449339727621279772456559100227471923222552522645364699647676844710581856637698452986658063735343458447476428539843203434968703672561963991515478803321805794510708870479084789424546952056116219131239372589720727195909496461447391760032953459621242683303466290442988531969688061019167750069031037657563751622063826995496245282508560858268387964012654024849052316313508887497842533028967834467480155736460614787345522904931040174193424690590307451580906574834258566383382792082889057568056965297599594736136249994735391129758256183222603247767428318467583241720688275920867029095212096046933802153265551257597729426232176945927331074729663264540752161553274110395103691564673608404290426996482238714270682604319069241572777183517700088176862671090211661623382513961233739925497937696866642413476804008536778128439450097270565704304189635912393411069604684355715531382052388124807611399606967673202810006397507571745897532018713752168617416308942519252615234628562946998107442292909200357133633163916453757086979889245642951952308345329877554879479769369929192940838245133471879516595367107555142528906141503533372928125359903869469294623956521075059614322892192144337378231763828553568238485159537299328371756085124398823087222142033061656806931745791406171414168018924311754667552239624954395242845269414565731655023204609373178513588362493908350602345730960411412317746994659087956958212172597951008948183138004424579273249966031852473372450710370154125473492583812874697919580925195446261144069421836641329249781009671106566722000391834535767653233029213895369382202079383400524194408308150641745423285164388741448889090724076764782455843110728455096450848264420525426004295566074719973639135181176928942864494814152270922374723794494351384758028206667987094003631707627533441790744156483457670590516733341580763573494571000242247477064471523389985831791517588127414393322278224826386168574553927696648826567949598797515046642944480937876419378532930598877940388008532753226256113282613477145935288998659093447779954961861541841402617190127792561578076240234366507884804175673034568345621720815496580527335058984317984078669325300884871335188944764480497543860936412776827280295032806580414190221194402431551632877092276407725741783795338003393972953258013296000658484662231802700428250733043392996344659462480866800356983709414525417813048019856966537159619392266468149615878986667503667128578555149442974714805173531879261272289308767578430760140744316885729343384756227446844435148773404016124615705659699425780393936354289121095696188653550257272333854798775420116189481681298463240227918310587936602169322016314824156573691714416791236558663120996968917827707107554196642908520635320941365884570318820448539047707163359827151043633192281059139514166376169284425200849097197866950060149734046075401715302235388670515732249451253196292865645237783952680637054001122860179631803790877310916856902117066372054080917706363379759712974457362412430458576956394961794316806709178999464550390597802690338868168432223790839865232061510588775425130301832056574754911856324692757846487859951384093408706743187528975741914755335917851227708287683737903087353032946315340763266574134578680302119717469905064616451922256624746196080055096617786754598301387100737645666570979384477126702907390815028419051465599448562083187053000820592604855533764246233631108240738472966759685620996198275230616768832098915776272510199921017521944616910718701991088930698298417187369709611961820635525554801232524357131842131991623340315975877797502136431632440014434354781749536485686221833469514978459368104357244994896812534589061300950680542219010075311071846028421778976585215394676358493090712376858388702597171896114786464950034995828704006991449493138017226424182281794423230858187282224040621080287096564932901429826862201482172657182337394446206766352085881720512315133368724762544839893518124482547257585497227588074593096471659522768353544071924038747554988557048107564945864543359094207739248025330779747601391090654013351436917882935305982938482180340390694439415955904606944219701581611782112563238720042413949279502018818115656688750980807709265883021647160891261901751808733966679990944911973213783455385900072488845979008420017815860998104647377884018893141083265174459307964187130563188501932220486254896350676292274158004681755500394103315858689322092603932385508949675998176739290146751048693934920834671917722733730531583917799533403277514708935191053237083078418114007918038451265193659783715075787712086874395175322492333125560630650735388193091779151645171316507212637538077618938781281809900399523415009068960478999002360810520865413889339121004105423521837423027069632441237038209002442022125185937160117807964084950811078181110915082301558684419582031141041919697186901248955090763752435991545616347336344180709458329147638838889036512899360263534394875886597517326641688527712175123415571211209006425572886547333669370581866521599126466242512947248071077346923194223197108137054089644600538219390518987541813473451277694338662034853405987911101879308417971292677946540608108183427950310827448703881484154512814633170454344976173946117893770304792335847922361645596514187128920375308754224686838608717418268660039899676993123346101708093706421819913788463435634938123529997192017229783054192284957477275458881506358480803289141158994693816866680429564308365285711888795862758516584397066921239516683542978551466965216273322036893871077727069471717665945812762657348851226591909904106901146780782674483536874621241111057971778660124594931363571875554825036619443415777668939122179434830851540136416379613429031201647092916955976505878718529501869239833428084882133794788892162666213710490643174536838181934027701357071308112311646895040119974138315667346669236623321897787807923589435103809733527941393661298222906447694809539256505608324466302436779456317111014145362082838162941553465773605375101532521232667131394598425168303845080090087740183494115112775037676985961409236181634003140843316451630025423196550834524297481326027014551995351091740051199468658614071741282079531885922189846526026115973462743305025435610887417969684819474792921362476525412159432764730630561246165983827670071428418885224525075848140165867969366137932111938401517168510024825456096399076160463734145892113013423384376798040504283613518543313490851499306276612628480029262177955250785614431182161398011423020090742748180296622746533598890494911306688145634588719215745289030371523789601326897948094622048527732996614864154141379573810446428735558782595059051555887416834435722505459552692088735488690488406347597249345345681300954346555172774027485741598102141324582239969573716408714169415826158098164453383780116185731245516813844820849393305025662622455694560268662401617362942975869723933944872678456471593909620461826455052735451162005915221519241702864533616999059055790235893594672054325507429587455419447500465776018898500049255554731218034193677624412285454359918229444949322589736719702823072917639620054726183493913678156224902780840196889301917031270133411474092208338605296344901032542159741405807949454117932945375341874748952510394474158751465252626107975451769732422211580832533421587060404407415680126810586724876649481721786614068526645852581330566683828277361549290035994511709476974654870660126295793474892110821707983077361985859992920888959767306243544058329991170343096727378520391981525406198635989958532221607016827392178864101093660648273216620430015809828339143076075882000042794654272809724141250309475955495726808773212773776180067544224024700812625192407203302313438734769743604599738370238134909559309728908047017931180334262857824296362245727135521060812513669660951944694633321254045012794048921687793510715448052905008290648930080328482815918337075479163446786917693954454594911195121355707249279776781055887337113704012945737679233295233784503945523803361055641648269990455434385448316601921338536707038236764351980730583752594977562076563549013990514086271737450313924725012302802288279071644131134657955853349656060106305186984169125757319254019552250192513402280740218756475631972505862764587855966383359269547384377409695287599074075212546058576830181908930085823331918505023452421527779274934415945493977831595128232735879925303707650626532140414126702169657350257053678875954018086386432884671767014493435650190001761443113125267064478833644141918747328438774990465367980422910197794662975157247001327072815184674814785270071676524264873301829038702532033444834250913897120083332381247308436838442458463043965060218611119997522198701567461821949531631230703990542882566408019584468169181575215923595443069421517178183000943629359592304554333985168421041376615585973441116791112600948268651547073783928134112906180657296397141430103590514609190937174734330089167410371785969549401581097423970774569814469508435902842246603431590451694267916127219910760123021086937575099663015644681197897237696582201198658312440520069197189242022833786062087404773611091446003553237136824063357461085575192539931308352935681960657082476196408874150737801032491132716571413765623627700495525980970234609166112892802825622176447214390680975204621411484110142574459791602137649746946992669382147369870995921946177431821476825912916789772891488553504178401183489603877118091222881180809000927145108646199202934706130610242286824195902752479352484687165262927262065500903862288626419618084442542883066622697297175014980945954925344539562154647491422844251391201770403877797986193543356707495676049222776696297005983910161854327805669468688936122287335382071481642550394505615165615680649725856901800170646430128683972469370409653562333286786337878600159188389372361307369779641548414484593074740812902496375537097189783821392505093973849616643387330070294311730550407762617405951143844507725013354606073383273068190017228086434346900064799636602277811623208403223751624897893336879331357684246900703269892630586736515273740758856887047861037116284390884416046212986786204556458151070823174405204101679583438662323708075313748483927463794957602498608884543249082598616288717895341268908113039600624510767101560074678621653167784135305103810353089105822485242706256787743282585811494589363827140745152376329407733718053560063942217352509124996842482690618609551967559178248286841153292139369965841234760459264207082197092318287305564115217504223011037036217400315907435849564703606182043781393333295721526196943183233447934716996073036339019534445317072334882725689481742566429342081722347085033914186452516457297665979477380757987413753779135576171452803134397817648614102208447935527965623385677319321719873787756684859185622432589351575997920715722347118397734593413411617727561189793905594649663494043426799174933138487279493020045119916063176075069686212582705790202809332187606629383459360028034816449039279021029618257958305276968240305472364328976107455741985831733045146240962751127905141205795000195013941641133138550154014660813985027848786751029459601565275090272611581438083502827330801117584341301830332462132246566556252756988364004933254861518485877193286984117234742367889339628155227606098647906141061702855579560128647900689676304710525884149464419956229437910331405320011134909437950895721388857795526107254075872003083945493848130823294000052272752039710524278612927684143916170405679404597585884552425368082685807220361928597891313295961540954417753348133694910094091274872765718741324383743274479678531425729228307079052088870830318795074403116742315324892315117658742249678007400964748269344130713721396696243003994461603794298195416418978941416650761299594524743776245949778448516975441254762700256246815455703121498458666857913859408095502704824611695471865259232796063352843260280093268999402057283232233852987692775803063230113032063296123214974581821167260535644283249182739888806292047837737068339541600207866163055450353819906054943908119360848106506466758055689952314885249549467702702813105704854292444550324848227287040734414092121604733577497820638573682203598834076411658539854219673818978706965963405627521483023195076243069193292281793951569428890768583408808680531115348150425690196528592776532648982717026168720715564728896102367695592524564100935487423420482256302495173194777907251364446583400392175975987024133876127385142026481562035480925587515266509578713377192120143630964637517860298106640907930875843110471910916721979871014272305934446416300515158704572887741590719842862423855172489877139076913329253186351087623227305052420546114711553288600896386286342813202771541364988654810973211249377074351947476450317463576269065599791296552503721487858987364809226522059477058401865131183653391792794337229773234176475050160496040418204634791788618431900288902776440053471952625347200436252495709313695627788461397684407592874972354953843104567157558912034170780323751956714602318591407822425748789910306233449415321742959256249756409761478015586350922928870734516398873518266974814407258728855161999801463274002430709294706473042689175801962406754034799437504801849781961562328313110786843075754533934037951312711534719993005584928740728221382814545556911296947637231600974629872391262554952449763517957685676194983408454822600725067084235261962796504023066683349993610421868613264968735155162459576097733810200166927824982408026344034199833856267815014416643839754688443151640110314096985742492586907839719182238112280108766672766008705156996278820081171858470265747854934036606161199910746108249811807815052271466874067678180784672560910413010974038453076644195220470837935953990265441260786594171842594864527515873443372713478903496063177836920687779514654711817157038792936195738391039008488409785083603556645776789714675776037556656834084634642468238005003717356848178654892651071447922870720933050846757264130535225085013942918482552904578874693771480526751013038000289662494784037589367276902245978584941258895363805809820388108030606050815116097678342759401908001415296889039687890413820480496943624755356650367536453295113139721542810975695077241603397201923704220852544087740303104934657169178194308662077194404368707932175076354406329671739692300556047925925128895465183713581866431426230137536448670942111335402605738228629259980672569902016289100829460009228321098005409884112488137992645993002628543664008203816301673788280068490280448422320176221089665547684735482463754073409959270837832185035865499836741480024036899123494633129421229333170131483584059334071249025965442400787113775557116977329043357267034685471874493088171220723094647368719446414245354683992543270201317533864913261376630765764520303704931056051069002786070934827347037319358182396943882927906639295901659350158972423305753105588713800258676278390564995608217319476415422259021966918461780323119150916240029429045374807179830757682991651111526160193530390290776666857179340419088256109514965586281874182690184150334047656813180208980677002939122988515843223459703062853432482004310131943015828597535090881887499670223168236442752406933646089621690197642442921078347475431049281446632981281352779768793367553538529683223866393527157093914585773503604797978629781820680365604721511723773022581236277874379854623161172637270795507201908137982907139010853315400739833733705541619191743927830165921875742733698045192663814773452327257757391321181645897882608923947665078501037454901397323825561236810225571153966944815398647134865834001441176429558902135352886231387583677467884664353126369205369592010770373905773330515290130279227482403923144386904716518284513371467781078534792839292962604831971115337865090652162949927047315031205872447702999546031598403755208909022682224529045697636795578919722321932435960897174506710511373867201300282803555930830069669728494959786829323431114148975587350970837278012195656820970219297233342161134753426528819747817025847732614892732620119690188895917405504794078577126266284071245823354406745564951219204447182015883642445899162265212655927484032323168155092843275976827948352536982379790881325622848978518314237688972189465269888619630627054590154846160707725089069426527041580797292458415535484746366595147634803197479391879223525231620622590387480020789050841367508673055671390067575318034114484242977344658333794072426373929889566211800649240060974160369664409885465503945714067897291842221070026892253360098674445314799844997557306718677986800720850410989203130029969605986811060685604227816939638877810993319951365936873523329910308656347598561247072573403011690486315181730159026632228559507328664687246432545106566132712037285403004998279072997947689479998704704689985197266227663109702726484146718138184631090273765645357640599868518206592819771934159210514780266586287754372069637489468650234454625091410565720457478840931134699062441337935431145406976535097003073748064209418097356160856724713590504018160666425170018943952200577796857257119803528548503574485121670948306585280998581241532104682785669543839689606385089796822477512729890037199494568254145896221701515478805295062931165220390416946982642576957964438441542786958682948666175616595110100709909679916733584386611315494321353602959778271422183235163628118951178967006437612208406696114745697972855619074336616717742486257021964246982906475296084942041265751972418099928159678538228844218446153311997671248993705798489105092008521551942355753752126873236025381392790975665233840346798511632968584193415553231035129393396203341994734147865492376882793395329706073699598794345584337992270295640394549206405522110937909962705722578604551425055028495957958126538346811241459059874746728433488381293196881517128182079422518031730885461039737204893805473926073223178487896092689867465523464588264544006928960204822609155806798966704998018959402099983620394043701153196760762144679256585712531048140879971638355808062134684173654533948659954658635230025077150186049237692640035748679309363309337362373633216715377090928805626368308033565583441702836414335581569190123414187123282471297942048373372897631631724478886513318730634522547629913208050484586230213954177201043519000585074329839906545159391423201344368080672274381848078341432447469416112954136693473582000370499030123941584115519181735891929816843781225621544358855960829816103494512435446989227381136551615153831865614344240276890859825126336047138473537052023574147516761227910648662046025779495240497349367911460384071302225693465640871090524396090336227549438540364933006021375927550900093079790418343831272828526658603993680737747534871519792952837456708501915596345113928539347357006041359075663062976080313973712196004901921326962557771494331678236288662277474454558548086937780327464796407964124228975579789486778567146116061295247262438350501210356461918819886621493315631703615544939661242197890580710144859668147496929678077912010862011545994143772284825993013731421146632999061222506154249596181542887859444881813580921574153589641998236447832443162111564968674406051509374053117784256440363805929691750090326966885049157569157762344843130188879461553313964466836014767878549174166709547577471892741219558284196328757240597998726578738201004839174650935695989445689350078015967907112451057449093864474239039784771987361102831153232132658443673278225651806902780991593935846259744101720636987969464714920636583150529526634749578723690362340875937812796716682061889964689783244172621630863939728340054728380198793682608035070147196957142214972315416412048555576543829241181988994958863301478729066008888068413866940613978076919557195412961672705840483421808110126965758241255807956208430985815965856328528269438888918165931112763110502397937396620982874036397949682704199579656537204483947081213355576234206490509897581473500130349979901041788092695059362410612144483033836490589292348990780156846969759036217936550849921051409448982642433201761710785586475670768531454082894799915464449238426166959185189172178598734037565790741648603285913549026496570759921535508214108289976050071040305877122104957474524561579783300318981376691015162249418625822206774129039987078876685769202469052823079481255410389326334058906822039084805168864443310825012410175186008645826640330715938923436021470209763276077641800650164819601698811571050579262420391698609008845522526160867036722892537595681558694657068756158913000697263400515280870485814738438262511901384861394095266916156803204232115985417080308997630273057884364206400878471248823695605374734512033620187254988557709041325933663207026574945499025018541794617976349638006889229305065520433051300371686895182802749801798131380233311826365471452125476137555713216241739502286393064679096511470554691721700153587334551294761595101784285340804925963988281102292009000368660595990390371852887349223521842143816800671044010208143765926235011912109768135762726463793636788036444541097185218992034838715402850345172980036383597519820993623673614837345832283611647027070414783754776301635806165026899553967234410941202386569282662810174299753644255398265650008219528808003128412837906128222695638336075196643209855014175085390517202643445582992198297084993551947882182649506326614107269278663700918575147670255114175403165335060379909567919519690331653421811281577332966297544493914663005484198044502430921240660837146415487669046516450986678305625357462541582152291746066150252093900640594073989878014432279795438883991203991953499222518513233746905141968311249191933575257757522597913206150785549673496616681726428456477545276484445090583001840392689575828589812460424419016516190925101301421488316761129488520903184912895628869585584157747263484322716332778638374569282509933658615054795042316836847558478499014973300370498488037313015900503062986038998840937746317837557962639453063995334888348942226410123472766806171801579274008628306524085265101486737729440438694058058610882696736527391372703967988951213631053940329356928609529539340500036796732997224985825428775580840074989073365734555632271573342620619016908904988873426583483388500842406868270529793171317408742757668685184756519480457448879502706627305166929675059330557058848638161476583198605521252110672867182921063078185035761895329418653664139709878271220428630283179864894077164877633450982647738506785991220644170790582705971509802696759666363230633629647658087763106094746396414788104349131199751350840659741502756088910775472383916324355813663525605252948694911673589587661037288156304876660080136377662559839872583369117137914899860244148449821764053031236650911437273609362275253647456841164992416453356744120236651594091256451637203197664143157367932886923712179421578061031237740702587546198784914475420157675560257814137037896478287679038549571966455064756777876528787203683077328871126731539838943015680952346411070140433413758112001828279368023025354995743367528464160678140250776057816769528965465048154802020088036134103861692058875817465216084170486577860696526930614628160081805944486278787401774637124584754268727591768753414216854461633713449558637348251475857001144123183089551408236904297127756048313785996947656912562912995713440054771215978534991311930927878169210002530491548364091475393848521589255442629437968216158582102148506321104423045880277360733231644911544007893029281754082585614195462237773882714762740763717587774229744995569439164055701306799206882115883503082266870139795847005816805507256636925800247469253181616244094174803134789120051118962181494849826837616387694591159998521006773401635485838446434950687361428598174304234323111460437680459346162467933426979051853649695487869221794942711708354923605200817570894793279137727435209389057454387805680240038483022710821352116757454282299118615407837868545262022258256048437358580585134912100869217946177408579902524528608906453092346136456312064716951723636945152713309159540675083998184741305321883859748776397797149928661336885048846641270809640610880375742046694046456987376276013060341772203346631649586025333683227477099032360704146879779436084943879800449022184262419225905186053187958458983113040529897034684734184646598854835641739125981587683057737980762087942822562474413564947637151340776910948997429346995560990228285995103537913689415719830299036040652556053369446987076519433934241483630796084012308850092090817201202066973085552380194526460941643647881580732465532983388259449872572214492102555532401215836825288853815551992369568089869317086534395929851878908400865342800978553701276347162491227296159581321685429661236347287907900338764473982711092527640902271383256340773977327804735494159881279775443937688654823768635776332222516320001221822237768403137396695328608529959108669080777463548819943940687462506297878644745184151950541114855086723263378084037472370459069433670885866505015208443185509538427115475603878858563110546168686513207886577062224243430914267554248691607169349577769790363704157369369137875523791325274821244706936877762922949407564381120180489920835907465515106409619003702688113292029850587698438219781130410062808721321473144403195162510365345666385798775875739677197328549824931276532432056087577510412655075855628613130657304469638670720583483856715005695846093587009176567303169583133266629267823754016697535162237015816262349840767064545320074866960887207033456580626287880680199669282056622134435464370283420082443919675843983726004908570789354584785234544226124970135279907561628734341262912665811310638278903054417687813664812609146638748235084707803554896327427913772877330566813501011925897225855845769730543928537081626208790504269316466515236509039493389515664929263495090542406667385646502679615037468060382289950396600319953454446584699974559104450776574182170704819615589473329362344175449357762522602844508979781367386959112268642358391501842631776769696905678433653017431269827269108174055322173104054588564760776156491278343924388372136733751717577495267579310878956072870708959742282593552244705866371606181052682818344277000479948046918850313338160599070670339981641243351937953063629758510073814761333194278345750640608876016956381039743672057709859246437037075098975426884247009077214987370429824133859579560333818182262649634251763733012478608923310550700742441503301239554258450605290275987183886195548240349450480497622193915180040830933766194031798837680511154672033796254626871469265110415853819574004258681948318289511660010323596769058207384034151433297198326890967039415638952986735862044236776845716259443041609177897738213011814320476682325258894545440358075743047035935624913988349520089602843179053000568290116598900823125440688701030106827259614381052632451019459684599425057178705285953962770349631916610191956271502049961930218844772650183732588730603816001112692291485394106044169544368924313059761966522165054190553306320831634993147097208670472733626876230035368976563848145458985252195843441160741861927538754684297262789425701270096882098426092385903776814816764744718306609021844824507414297641225494154125849781857726754261016998933498265555883184875900153240977624606962083680640156676525917069495062784188655397002179435547136993403090253540263094404528613416235185543850060134016229153542162212314252090633791636075013814053221659159061973540810885984105113713126559041984543851569811441091482843411570046468310556383077766825660934790767703874191275694071314197200719365286180561996079140815026226870440816381662438495501517454076249250693655583595763217123174052181298331777098058635483103642803970739811036827646593236583775538082520132196401379102750984068388144813637751164415159676985949781115989726202524711637556855208945863034504081672186236138515149068595372208107754464573397722868059762679873846115015286064720672680762340598813166167521273644740672644805524357515412276816602889992954078621723709906892347868616511189665877128635424908897066553960952664496165452200159228458353972435836806781750601777168916185798293941512436771452558699519415213751105104419708163647946473897626631442659672980333838300832485134602071425732094368477939018254404647827630481485798429188881198305294790266010984122482274156115186110228309863486406542594870379277344357006981276574906288373923143194249547747786699321498896769485773631075448735680061554473199047385769658585874801192625239095153271934982463736702255920175832558613822202073840807726138079548934357915847331025476682486113344916570234585054891846163461314116085492356222605638712507293913990880154758337641610603138214818324421826426763247211769074467523310613871561656397366055786058059082002901156549824850626268978649486500737571776018115166527556087676569267452016479599526248762946306069331851971618529191937788753788415729889999221714713140567249164046185794328657731104470498631658816422360884189056909614014492740131710803222797532734301696771017398558455746445375078084718238344139847852358447729733371526496554421426875234962672464236479889121553969777548572261948722676510287015655178244130392631220664825379976522726390581213896817311981198945010076477208132393437131888824639195887205322353460049853055924795328363640617015826480997816684028783427523356943734051675630051511133185606258343111672269967677941069179109592803733736250200447297667630036334264876551108132828764026642281496183473959943454531062724306212714187159086698455472141302747448311463015808597419580814019350666010283920567498971607510752321353502085658802441387637143076748092481881533629414557067268353378009463975936689134414287099652188946885437223894743745461654791357533981957805135691187913325058677556204185252989862178143054167476503481459586225011739380237606255257145209214567200596555872938137644484757753956982342452056675639315974371547868687793459499810813468463876946698673289836746692017679319637418010293215360196524337904002816166263145060066012716906239791992810125636748716645044060481949486165116857201817873436395663625686547546617806628423654099821980884605450468126094588588878302796847050242589089005091929617396138470942347636312160263878660111001000940979164425206032020204219771794713740446382893587619178669732421782009435307868819218330743271731504451248730805991860392745453839185169820761358284432848967538005877285978264279070284212333656558313390471970491120215771888898027586360123575984816066145174744227186587529993274994887063639273124272053840967973365500323265055319983544793635654153570287269564621571845960122988154952293353217981381637199594136211688181314994300785411105350655336026747268586102554171060939669132360410150043213942136992636963247902350910807051529419648561208561209773105243250106120110777564252963296550289526277012945252131148528476846970635033281929632252078874720511582980190704940027692882381250804793648738599037309633554784867180347953597069772014297430131029281201752252641368666437181529541453595506275196449802509090141789054262706224937751437498485304646246485625874900380787511153197600665927712774553124745412386306294688838118000631241454264973966034868872100907424848467608301917396192206857991830216730111747454955552099577247184839035702026443094350351493768572450872408793170467942024732869602185081988316091138989306517270513917434541891067586085575609937890733066205670730091393811435757909468165647180316194498994819083888799869577304782914514646057110622820859821656716739536709059914064072631993361261886020936569027919390335521207006592040666383487660199118125530864562181971324570949805460537450758899406401487325229649434221860300818153716458441288991662993796195822341390971995307146184092247596884547191197205237672222990442322671128089581406220230392694015771463709183413506579671531766064273714060297834891817411889401990827915732605976899116604875922350054574324288255543477385946115145127556971955142213675798680640561990024933533867528041781619764873125611847720613644279647717794188049751009596621907970241245409430103745118323872440336964518655697066372651008253372130426070549077461401159004213313948616871111737817953496937336335303102416983903906585835347328863431052030323091026145430735688079194016299090074115978786701115602642838165979143587307044680259470764740057649261869303818789166695818150889520041258190931632033698968242084491578056650367944868854654561214120973666735541827994005692959124223809932514577038403452020712158401946954026166924514722837128238455486867760142408046504942799386508655091196853298698090335016063118005121484643180266542797293505071633232130694568449466420617089370712979885816367187315235660366797393113965220092824492601043999282611378553774490490918541984456149490323580850184435590124123719641866890775797973657179606866267026033697156322333875968860504075554626193993695487014464483904932229523334949930383625145317171129438159890472990763512943680698691485273432308488471223298407208347440662460645783189138650171492976418381199961740535906316780771799989683587936884978637443231868664417176664798926985089464657703680733112754577132250749857810942610904257220854892756634243491506328343461750969983449764117974255185705745655806457899831870811989351783620446857353215855664806161602813623565214785149197409943395888954702456356378900834936130508115794477183439623986796521005189199925796091016033037666715270414193336103684154392332829677037730240734977892458260158900198053283008942600600126626488756604346197475500716966336388344828114970560673255801830600884559622466260166743770464546719750356725974270012923068050637109112753892554970231536481586271265462115183253077471462676417475102456050978974791804442668600987591668933117096627919712693224163010807135533781849066303835094010182715174963017102882309591892475892822757914164318564040237547815669692423975150626335220040025029694830314931624637203311505247033734655881460709666949099826154247115164612450077838922757952986547144677479814107325339711128964222554519673432144350134253544340348717931015061444880414670575777129445714380730694104332118649774179144664943208853467118570115967534573460551132775460001587655903561430748721737081254061835942836311311496026394677672358448523755409040065589069273470104955044084535931341337672951068415430002373926181343179383114973810610420230914749831711477800262150049341699671713739310077428906930492441963012946155023189689199585245209773250713101186896497518483800025528698897346369581098968210028624629825897201435218178709585397794217063146753857460318496692202994621115792549048671835248884642822826220324616263794552697798169449164789307640771104051453076025401939765789528999038277156549796961105655631010706051178850571001163414101717085522696434172757538206256033900144764369115627901971530948092950080137301099056281722870724062266633715587798761047799113506707298022651483914307873467979390798150824465425174721239089559512120697802309509477132564382311764905267112849421505416805320244611154145109996363079663332949926691453263823667667890463557559598948933672779609530984793384284101670297194741147117807974677008620993714497362742513568963940209146155468941376430179226964194268757180138870912978065794499308669587947905104788175917303379001891975735548641510059087773259853197979924230755844383151789114509160083428611700756107090663193631004971113174343800984006607198252063376710660906369048410572921246976921228117761451317902109023424014318150841984256407816478851421106040368281421939689842915808994050573977622188404714151706104762680711798248170666378809896484481566568018252143042108772458794336441390355271917007664596218951740175135527174036467496819857059452569205742652395798487498558816245440215734359043033199616465953852308454716946147977118620285520477855298687549254811970105843152588847309968526298220470722237767120798727910763916708536621724019253205577076316901780241775709810642719826321488395719892856026403849989739071737577722729604604605135674981280167145966863303068534018899950064701456903142965897604820325227654685671105708304263776330103754166960493509842516509142258838178085820833926657678765622117296611622879951440075533217624103305423089566681515182021970750951144259177359122521051077400890651642765545289608150352795217591680800913687307905772323534408326918912329550147531086539082795999792462196930822197033077931164419522977076596627032073864321899024615472991054255746338318484410881050112823657368399256042901328610965259415642346442176982933280255546083381272222884226416587775090522374073058560534058143813545246766097606095979864222725373838582747035781978204893365890120056131333335948854647424469846231514465337474332251358107932760329074683882223480998337027560925092794853503342291459287841437402885489713688466070089087973961632967628084346514729588585752002535609823332028158525196063603698040461752767488603519667856379203999719434745211016154284490860256591796460113846406885368484873608385978853432931389356652162972233616068610778762905535834632747625148513315187135531816932335386275460532300525969550928662611119379289478786415995662895772353055706481906496691556108912725477769334414410897082808621327854380550334245008352886530535939887595474436881782079101935224893316858550070942786851315073721202754756350150104650522829594983315193776272268313980842998006442053843572726362079204557400302149965007352026025988796338968495505527416867110516002651724445436054327290401073884873705286479109335540652671075927919565722116091359344346045553229971195609874382389661141855914309137501902425440751891547925072107474185372530858897492823761533785120746171256168932277983347014630951404374097910400838410192733826180719341318506495484192164091058881059562620450061662725228875411246334706805716567914305398624072265064496842425341074824114729066714626844445452081168859166340785500543935391035681060976897236738146137329794255539201132524712549271409588943333264531255258012536120389914594987642021695564820035698242677131331885616646340917033158780868648248530951262840528986718779399857871938560397014225764545663648228695725945854040437225875574949547921691981760390129072738934417927640337906489985042278993384036407010423375955802851417636228920740234041862051315231593223536178766539617422488874986021122307848387285921704401840635247092668940129340280404410574738245194431704572843096479084602221631936678944286849107032447748897245393617323102083550207146315463518288105107817022548945105249888085002377750262949058179041435757777900542561079158070459781427963785718962798227178233724034023422914963109964198437523417500431484019622696291542736713723628019139205090457596722078639852842596502991415743867381802067954489022359458312116084328141729654491130028567416819781848121875328657763437678895083953896814583667940301489934160206181293349511478376046087201750951666831999222621904711354360822130694216739072294385667768264534579471556665529323561591869229331177114581256486106314245064403781529551748318693166095583038367837291239694607717207532188551897693468825239796124900231734511158259716073068551183038641932348245718542497286253577440325665963795906396305627849428009905092444401324576599166444243212641760317366145245007979614806777118150741528136572469826442247374882384829825822588371294201154260879973730969288196648310778248417096129911138567952676881702814964447391280744751529587624782950945386299098072888717646376864238506874132430009903262378022901340675662891594200015410561290066237440436199556807043135853836421066775221862734838713777818752527703307479490951908298439964776009370546313839478448198948298101258575289599428840437753502733513365994058879428284365465141877824813346611124268765886561253296288458447853201272078042773470643919592733440023134565891790895617002636824931360593473505218738115068415884399713933510890301274270989424347074027776115870122404786080949871312065777437235309040116316795125126267425944149711506185541625430076258176105858489040043990879009091354531033280563219842726359226890059729145285004236998680637597226012715537602059545416816162466371145955615216031574362961033445103885676576466552581547378382056590031055103921042268860920140238203360911748295211894826529055157433364070019416739913454714138352933816204491096391367880805693706414092748632764364214752538915333281007867380861601741507536500237360901257622656046728755697072444937958569675673499532890239077677595507623385041930861946032782701431982772963797270505666484135462416520787536954316206446665788641102050178361837351406017033070500757914737062284962022365422981563805149906877367336238913405617704374043993592150167636840632329309165218690402835035745179298194417926841901427439039195839830781591598894276923627041350557420986951210358186488078456934977211896664386726053619077641086629759051860287052368139267206596320385219706822650934518742462362562975941148381153335792609332685445339223933647162688632509443883961656369561485295937676098691973417362466266191498173316194625439102789744856782321264722097430790515220497903340057949740951332598333002750969140922638607824142408647012171955367613538950057995633986578575537176082409162797444500132555219756157266746358918663668465767522331338499287636859035252703440184165405991684409718584851502894240993537405327435202887449700210982962512422110504669962802189843687172439388098087667603597892044914056200874823374652707972932729445194845139128248918226040057249630884648168954395198366429800521772346325369810915240523558971376310681697820626269875883390229281443960706022131757726513235678511373652834306607833370382072003966352974483309479685864372501997157789905578814376328668362531726109469175852652824344091935908368056080033862746791055718012925127859918996998763854473773945842813236233660278698654572157124109048140789679070509241833295892596300168615460784768520047272651366881900142250587575688887166746025389931668078006321240668850182092943924342865705433370825776667561524964865921372108266579727998666603957803574737495085893249769249064407702017914686719114193228897302055516196417556488211612139994463459423404114370591302488137791471911508272788038031578741010996555014545271768508829956157444428006691338086292159774382543399609768629767350266993511468699580236179851665181967096511580696702889129678022316657929863973289992979788609200265086709066674914764488496605229899464236725763355811038480597788353964380736512512972337095070954512290171140815332987556425115494588480741787187967641538296347857325384683640504647236348044065146153210268426051472645650903374990179855450216430580448228721527439716255380027989525607930826624936808477449101177806605219668291529835291314004834247007429096635703064269617010886245628716522117422823862818068263631735865883273931628202803602673416455893736032708174196837933607308172745651382252816593325854483830195112534109651807900720328810552896571128566789907187551014010868151492521776674401127055374513295290055371292594171392154638441188702822709894274218209529925753021183486577820369949151690071851058622358916307403663426329939857249195089167665853916909007752001518693358740667884867925985409303195327182673967531566200021078383930627469734815696087985741916086028489115584121184253908815309330550824979309567808699590373012767887221238914316266345478162616823693896813411860016309036147289058242671338911375176634678054512605815151607295977171641684658793421827541639305021731185937442278724755119908495931146859964194471983005466928219139967507732522084187328362575426385665885161223757484265461314320827923045926649511822156336392269869577162875091308100327458185109357636750790620534384614804797158097296618266102681274284839195421795212173363478196767528292597650251996311837989777648604406810507769342760886448773994484922238019140093580728611133977381267260171984388791786274185070369786938986923645889585011278618643279956168922744227224498737046267100365028378473374420948264771273549022293050739970375649918840716001615648855165440930341601738283837329307348875552783532018797761116137621554125914540965156917894645137425613309784655853749353151008370871025686320304726949948020983492565650271993853194505765314550186882763488074437371017674353791992271211826780016910347429412024193506208461761020465761102765188303445590863405547041671681797660944170871517370316687916841063019686178157474243623333787257154533900954938478828275142296189664436322456055587948420263781104892236491056783278701006024034701731620451394469134697884401535724164192478004356664549433771208936690367733217799060199983368760173955300701172965138945183112561396051483924447509762610322377992541714689579063804677217537561807241586886564799010141321757426671409592245116072808872765457773084640880168544673113309629903697406400581806857960682430311757542329680825542484634653340776614573834855293165367622511139702566486805029542242843764439689612295384597731997936965487983279291653256583385747044261085427800348362948492969220681284480984210058962780161558564398667544533362929274270043242221577386596441452066565136446047151749781740913710290312699472933679693205231505521659648374217842025201904893748159331218629739779668702570688092253094458691030567702914298586228001516001204846291184208198036847270990259969170068943794184765713164833490849068835152703096624838732618678792972111027282161785535528207478820862025707317865570131477072778140244129253718642771447010103168139071313042929470933547358842346928617596218479730527805544894181731277530522559347770586378444751989986577272842224061086333719080077196511992583652180622968305016001152216290913504243759475045175894354405828656418917901934245417609259591357062975170181857918328598998231956546758331588854938876492973146343260844530228204417060032084997749900296387123549350189659008255445200805971309630253697850480384663598226261975917716514587067168326372022885842180586500892713175001006193248335034055518054647903974001767919983552145415969170293428755098572923798242240378867903071079792886907016776575576150339101314684331405114423398633386410980523382944359467666663087523804241977650400607019895595588523587554322919548815277306537093281370673311414708041968370319568643585725418805418504109316056266966951889778387251042906630534660481353867724708118235853370287291459834445181961076985201022208692675573679818295345588890786502412378334777517766576602365350231068555274606514043229753731002461394333587397620462977616605331271184123362767226780371683659172974140168222778672219892876978605327652526804829852230008233276939235432058224639766351031341744641489856031264997330289590619800541312114819143212708273642397543387951112072819385299788432467619854645987168642578411850431831695833439053961819699262176758618126635589234012050950712165403070777789035061747489934870843917838161666129902058538444484217579257831158012188300527711128513329012350975212345038389176210772131639596000288334747810693919804838905808800684631168519833246721727813829300666453211949571008232134971160874383483816791946724919196314871758565118853496358613094585664546329704218013883132888174163024524327102875402570602009125855071021141950446131824087579093214561118700708428193511763661387275092172901642189360468891496743317867262216183657285354773788417881892409047621727423549751665534661315030941567903002639916186164550482403095946955428359862006735666560732284469248145163924870869073820012327452662194097265720835930098526765871064570109006685302172863508433608625606253143938790075748486729374358209110552349079644684808191211192715518077258231007861935857948754006523592656359335873357138554097178510645363969726999063852026516343628602657435802548167070019203755199166970723375183946417497942031355090002122511325346607171056654424174151012826980928920750842296413523892107233982651473706714459079227607201004260789665495004814579055168396207094353191886552433389749319244430507449817709334229939657018766160929437883182439881827629295416838653603278655835445029657318712306034685554577573679997641460311181663006282967236365416745182577999850094051404864441588930000594081579420030502272338754879861530168652323443539725994623722173616267398096718567701835670324218320131107191678839701562329766935655043625380006873060399013664167257677115495017135743933293038108876541103221409335506323597144802088109160408761119871749353458143560236668245180649543231085858186589985704586181610881211702503183251305727180208775487521084467595603589733989533948891587854111161080462242486055796629820965923552048296974673584304941519503067735235579140624216444640031059954634949006537078297042352977465037096438705539585714412180179006624879595707947410037009239595727613558474424803695001193168712587115755032847286028022922048490103735960993226254143600755108051994598473309405617231435164062404338083284870992811314972742978132028617316160819578201989318153099209070403085593165968775044952024900465725230995768217535846867476324466598586290877450691158130915115408989223021960877621654808437180692165170633729294544184499479416521520586655720756589565708696113345574089527648133724128217623832043094054260786884638843111787689052479477681669344766091836839908319510076872742827722080476525358610526372130222591742716716068473790248331298467262644991898650062883534365811219291416188842204562757264994137277703465474525509582862516508376022034564147554503229102896584316921616707334313892277892089515296111952497288727588813496906608657928865269627579448763847966500207057775448733233995266097500097885038886120581186464888192400464931679778421478574121778215382680446722433849517553116526576796036729692058934303385266896498944872297326715028213381564275108363379682919746136059300616056118842588816713791990982405726695982185975970939437840286374232753012067571575341016336127119061895043570322547724518293952560635121508469111231080167453140732235061655255725938379632632788578856367393320389309324369585517075092403140500595480657177228081474435084392477725842543868683877666175578875074769319692056036070563663156800364382830138557951733834127944036261079958281061339609196367083595720702253363791819768730336084983375040371275696844069131699729556670328799578476930570297422958038043313912564818957645673219911477718028808741365607179355598907368346953867284978573489665968099870450687105088050463325915362084964510324723719196047908618486190845249135231706379233114308704538928564951766033245189159121255552830748932738335809569431209882889117075728840929627449810580523829530470969698089963687062324817597671692383337073231779147591360348730827480355258439971387162473131517310335993923476386760597323703426668582461063100686394244114920051976079247042700833274750298327369092916560725218789794061184430942298583717180083885895514192053824564413872250791889078974772960825012715699521088585128421721084074453117366512559234117672455444849754856390769870284333356403440590267248466613204169636869117285447953247968946160079385670985933245870400698525052657411140939924735473655488185970175923921098100784129195700248535791180066233159047398680484419831333595576990542194492715580723533626402347481273593689818655540844360255120422446949005837626593515924732148293674363021958370342920218454061009930095887498760852468908341595303844978786155619158380566019463568518700550468062213623730900474565689717016426356001618989750455159744173138710044971060412678330940046710133402985888432582880203266157880231170667258570501616585591612240510465842279895970259552635858533148610358016813206112927861027682551405463402809972065191103001270784641603294110508994932040070961265540386572932024146666632935558482864658189209185009066647819434257888598471427855168799088858701731124213953056861288141630527886249970912822424936562043188177227626463047949355057067273918982799953590272366473616705871971089518105594918764370227689040667465704978231379478663699800149033992466689848037258141116420957232000235944814815496051559999894867145261870100389746936243793569425652277399897977535251593048281154667187535462304255285150826197680420125810804403613289652649666822466213070363758178388138143293264625192979991670435491166130083895002788664638624583490432360116358347331171694505530417006645854563903365831842912986347400480083051113042460762897221796436205115017279687640917450923797499424120885867972641843461187463507509944032834886631476938019854420159618676416569275832296653220631364868338653210301818601994116803331926606796587205677307092929473726741567159092367936556998545049131065860678523462959820181648321436078455643394761743454442564313231421292824762491997992610077748227379289242572463977647587697297836620752605440215145756078229791659783692831882479096479499572179799313568003403257946660932319631099110370456167909929945968398248065533619041367333728827569006659009761040339861569790043704246451581423004627802737628723560115506363002330396141468447251986458880516172394901621150107860291082456858791652038122721407048708217002864123639354090879717981288518180676573345144162879187405043091644015431966542315887538074433763165472393029735756041919120138922066129109407563513591037956783075265528338306802322011173618009494577556519346017554652868874648858707273161046021180711681623202029158448436973512550253521865091055889012941598122085631127250070645972750295920400032690559418824312244216712974774968034505528992640313465841313676494071063323491403870213615964741536346936724710520438261980963264651632594680947495484732886531225328361825053767651241117693652495038528911410824200293295664956080446855841359959749492575005646195052488713378092933131764355811143668861920672253098289810298611122833749113756116347499699780960672754461469682222500880076817957261775153434624239062308855736375208655649144368875495049436803397303525082559025259824802770916200018596541329984850174774012081949912428427320576837978430136956224153783255431443915936106197864515917225707513482627635242468171327339299737818536505724116584299839395870770883045101511064379077967736175738274668090812759523934663141763260358828928045875164153309620442188804694278419276045186073550950558303437475215299316573009596862269788631581500223738204282280106244842091889453314601436627554712532181404293213368961554563262641144728297000539047592908340091654147412081997136992950565468403370393377355263915729989815116373984500120618088879214954437701719404070574740767974628708830335861394088089089519259376292488621431558099285003275618468990881487450715167427255021210994167126165320757256314084414645747602144618549971363509336033344606450819556621375285445912133286819295340649974917586533733320787220419555928713409303828262277881588959159266892226793591066838466003863443347767262157175314439440281475719962628062957826637756904123520811311654081282867074616015234029219221127353364964292754750632600149541107570425115922038100132233849139456513163729683696977140247961959924760162064784708626643603835309878841369706748670825545059273535805162195886945852921597105242153943479084205241598166683689978622476210914834345382281693256096739162257727561427716155019079988116143168455941851596456317453091041108732461894743294578284693242366800598199849366027475627233703556636445140104063625563262473391346611768699779036509494545588128001536777742757115699446343517306478374064606153593883295720497151818932813402059488220082537343858342501213707116110648703612538243384557947194060348393248262116003852879088807833574586760485195516025983154952333511762832337994347127083040357720283032426499365662263923149244445460725027002596197227006801955348964519196023255486298841798176053063404445201965299746003383106104631487313146275464090081186121200012995186728898590757831819589139917734078531670349958738513965673380963176215811034252007705927006756763808717243201466858896449460465191007232769435224393400118178160151699608487677763067623333996796964611536834999043763588326293182158024464886771660120985948423213493635521696474076001034047981365526332539560770233780347492656249985073161941342715010953841431898107088955883354723274330344466758364714354999468754237979031607693119269725992334736425786299063410395528467935977149616514280980851123452365510773348660425263122940046253833271567905462542681823662140246550430496898892119782880857828147734342687238976202319933782547315005873460134620995063530938166348612782029650940276082315096388277881303385705236964275616367296535024452561802421524508425643338203664255337423597060980821201390231254310282516887801386508616788451009723797398821880591964443723785118495188184546444951044193890005905156772116495478310559735688546214653371192609566552300646769937415708195859693857051382278610782175281282334115481977909306842366203260370361326938189336465804601723593687965955537508035923049922636276249216182568810378500355940012715057883847072868049041916364281225605187069631340678353604120228745432510032057866852290568494425823209743400746494757932679149723416327958983143385288393533133288666457609437094145769299820443913649697889132352460005045457278603773905793343466476261080576526403493589904449457169518271226389142687207930309242289729426815386059714165049226239652572682972660645643165694394836116547223133947075009794340847313410646478206962331746911024755051516389099239328586611297220068553885037578633460132742471686489545692025821963680446979862636626890276794659486925205454910274188170180636221131564357959305990590544043276593284722712293125231704079439316034031914037488946082369710668731125165885815474074565051911027084853703902609178765254447691108634968531143977837468044938419906021222811558996606368830798240597015566440397639424334522443021917713933308245119971118167385235257012120347200776162599758804201094847485692112190022488031043468406876811912620012449918436345974053471527046582976462115828013409551126156888958479462219712154025809772395486036058253595536216235590051049777453450440084890476959791029877814024771506916614351286402515559852715056709954858481115246592020633704909948271088714717707820644616888165410341902850665983664887860121644809376202351470299764088146209765958687695591949126240259752549650699779486780691445437560450165701314756667098008238547377182148635534715972479588376254631533928701786956400454493511680953460379393551632997323960683845970894383195934391753762802034585580954861540062162374244335100227844360708801906098197435510933242666250390871371549086253878978486397536684558607323367120425271479190927669948602461381924843224717176926814422125198532900948127806454082152415449333849671533593039482270006205967576882413957086514847103332131390966705952988090789914077197746202507425078586502693670548595286356684374875461133003700785221171359201148156481447110282642099698173290287084399220000635101376842982604570132753188498475848148827935593767571997959499780759209914968993309544349102155732923307819033824592579888211170323424067683272239801723928961189084708342395034487303256821839037047345603735741908471594444347812522287958817016257392903828508955224919553191298107013167221625843109160449794847372550670945416534716029303791252278803872100213074197366250627581254275735489599892019599789267419478308753234067068396736319482113120484587564532485122700076694048462523793241321139222534703775042197283308525731103773358567264456341339572108505937749151259796019612338672082888283159684914059499580249852479869960663009276611389482646715696046726247982272221903838684109917954092587921949842691584606876827764427823906377148759152907802157569469878666771124696787507227555841812523764097422456274563583866415841644862992661430299576505383244105173287899803865724643320046993945299254007298129296012389523099876527233053516849099924303050400906198503138050453660852592308527025476630237698858283670650987922799752569973146824766288865383030515740732917494096284451830717797457641091819492980051239111969351423230869206698981822652373686581667613290684394866672951082696950518870752630367938302528442028916958184285020003076684881201766334900338671537924628378361788715281907895980023253790967785918980027834368142316142284624075125192015119715176739645218574122391765161519362721647836525331473002944110375042991246437030198409684547563670393808648237622582262308978435817291486073397323239102866365160189096767176414785574165815017933429838174298598799253957553710024952745165404946718406942164415396877215827368752482529740496402428062011232368129729670440502442385168219012470585413529764819090547304593085995883612366867314275052125157326567373896443950028839439348294836266031509116800056524742704099348396223864965379961460750287101966116496514456911066617756867366134185513032737527410498248862469661400612837094902658474620545316436148081627297988815104767242364353587547234095069945139969270776403636407055979030666182935280292253517204993850202620566924519440224420892566069830668269793880777562427447054056624850302499113402386006184251206891884431570943243042969979286233812288446384125470499460116119350870010710618239430996262280158422796415803973073284075374600922688232251664520134658761924700810550839143976810838320441370509754649805078267166547862797422238984905724696729644065818774612667771317772713735665405272457212425068973198688307445998772284442649681417138255212180146547955712017085616907629755810687995494257823961453740740180523300900727687963173324062040574054745879842874917174354264520108922959917814613293714044729660569347535036535394349693063794348753159097134299111040617725513032861150709441057957361795919661605249975009782508658665569397457110079020409325011197660917599832566385977518386967469372472845469025174573044927792683455626869951817375825648975897991377962737805407138870239784503416641268517839739220437444970875512430568150202722819667462673981022835101783461383530228024272928338040418130513772422965997683248514493608323359219038461815565406508021289466396375828701016797849307262997593643591497736478096192304112899193887462212152789354407712230877325763986161713371150366420394933919109062330829733216376388671612394038427089775752600445118497003818462768606607592996223331247602982880990594296271288945001656930782410758934132415660714048304418983096931380718877192371472186701913352366966385063333924648363803329958903200568196378552782575419291831335217381954474329527417483573729403471456510009468998019605213374054784476170871016656641642512812638550733567518065416338140772105722359199237566859857342517949269651781723384324156944251850887714431897093788266087766829945566707986101754053831266160035283590600184823689029523759071292622559087343995556550598506928141025382612638835020387038980649967897332390639908534813498202600854449450053907159367261133780808992007096523241259027644457024480453626872520318092115484843595380609979779429458739188748872478946478963653808383581313871242202147057447304546060611776792013995613020820418367942495470702216574918132083616601181434159103950621651092461109341978604637330763699443946667948597770836977948860614966324695950370704801990219477827654207446462267583751999132062973356538823429991312142901743882699115479302500881273023159196964822253956176566032473987884928764296602767807579230755908037648266916142698941162209465600889458678742585688869668395215779486777862490540410211955835878343540119569014785563668076759474846296507904665284182001607704381249936605093199373820893509343132647578451888893193169088175783993432153004724551461494624914538782825289375539596074980819595489112679567881268177895556726747934258322280591479388582747873102385600532609400676812478116129276051515645539440571125072288535071706981499504622101338973271628173762230597388488171311685326104565913436840526716767491649120963608637036610153154405880819972627941485465309492918461828535720342640394496515759541085693873654116404051603786703568666432834376172041731567210415805927276129065664459478427636190746316793871147907792399220203743073530594603963228880298201185990760807441836467221689637271686821657912104127718567625312828669729181643385818755040461387694838512191835575777976708796865837481977702133081915639719156197527379337713494654360052069114740811698478360064354990068453707119571833170043934740515289151415503370928809314748818599841815434398906315299340492058749284478246263397099254916348609237996548060452851652183250369144903644906571894062886750970124992341906112201277863979550995604848248220070142794726054683693238352264946965487336531878650226826511245582258684348294050315636153580002657746724235337328529790407354612762607495133677375124839938892368390443440056798546621444545752226379077954444457464363954716737916354364755677831331296061821055652795692918975229648222799856621570928630462497409521960307352842719499365948379820878038658252331324688920107234979669887463638644501749416654717145768973772357076751316667185352511045765055030829068908840027954237719778229585129215917814885961558743660314485185805577587384073906913676061666289961531667164800944110594396611380768068313975264751901613838726964431734042360161651952352234796840332135684024134294841278697488480546805054939645710904781209139265844774892836406981366591577440077568939434594271513628757288719041470988210363686694699587665780603619950650093445548913873074659315130461625065044650806666974153837832787312981513911850565100418529278091191290668867025300546981963897622837877544450726510299857154133637438391375368592582955727788865469398913441317299687690582875952523462072131768910236413780323644452610594082180836295072104477735550462560898714880103566727273623394595828080386819553373250311589035905340494568134635883640895943942708954508814493548181822253189302361467586250787746470694213114028721516930639129630136949150195501577020074282044453890850166974471597060998585937477704868385956368859831315390726156548786667782971239281743342060923158958978030722206747666524061945780379061314182883000070024686634624221787563392728237636895318989863851081783766537724416092729175295906591408149221300988235861878603892747824125531563936761786394651006296975545845863946389967592322831148785672812264480535265576780142477626581462881854626232705015952219166131820925454288233414788106416334419259942594218455852481432503890323013029178101647565275694167880864612455492619820425127116077471097040680503573731463480659254788135546632688742884520259086642294508000046929020796714437847203418322650297045716713833840791905069465741667478700494410936459975905698386191715779293414567831675592901917414958508988481708273484213331286579836736757279347348023282381000173661541239718474661404653430656037269982372749469214287532109164701722779609106105793782329599524870524287176418410400467572580697518149606361765186657957285372783819562024927998594792469626567321561919224108524196037450259731735565246338597976441551129472675647167388328106929670851116353269082256989329508937443686826661243303151584037056279969941212187133211591806522825497614552748175320776016571175715325419085864072430225254173076205821943956323254639334723941161837530192337747752601982908195975515868257328332095308123538162979215248549728723067051227142049766351017853127773885865101645401294523524016019101033723948677966236847673371817454942444406163553318573747308277124329948816179529910867469012515664775774432313176968097289491599825347435870795494292200489854551209384781883452591583220731825924512874577906002833887538232169771897262962311638555726121312600430034736737311702219604652863154536662457608242909041348787691908877907703461563498867407130266838166260851306383827458266440205625499958156977431315760751722649370987942560670121066867830845956344367419342979062223596275390733025902079325217403287015050532854832414391518952972854603066633223261820132272975697461131806541133292996998248439420198524300451203303820003292267094966008304168771206373964046353593312492199333436666618841269235960969998935140368928943802412876453545987415611465198242313836777238831742298757109413169841319548737912664045738980751097523508897300610772826448832249180085953661188802813219228833808120812757126391620993989785308660527718346028959520765644730501467331358551117034484083703445841380032114661481070058603309291850740789331846706370391102433155277177290585794288507682264336755847636079919484809932779702021293948756017248390829478129948902481269956986448711634277358195418635644417687239587782240209569191090535875434625093200255044057433325649279065487005329919172960212920930102314052329217104250725511812138447178387533038151784666157221498619646480312576182703432268794131833289941313364983485178263938716993246880013103899924340662561563737454301197912053607832818089273535153667858300191415664351054319720487072240892502109753107176048986310686194089465152006698579538851619336562945151232803752071400759064631470091185205429754140016827955595499489850606520201116218583621262373067342283539785301057243300015996861363872578954669112610932932672287544700794821414223418493389874273678819424515678533622442774197822108083848609286070229575365286395722704733903723165732213787816972725410856271822918275132337168031901329610218892271631825482779160477415495500798673483771093145867190123093767730425574529084377936851154679448483489874569551106481208741784045370626599045493608039506193496393330888049021085636177081236290411446384803565269440734828818133305066804440791717170048710160707127308032799618866731932780002338278920230860456675890846026673493456894031748088080760431009024203670885581440160292737277233953246929495879262606379373291755328873516889512691564290822240673828717524589460635656223856210228052630298031819842522922679412015022480161685639625012834585302141271003141273682927214960410227643917009054189890148790653984260018895235202446196675807318656332604120990363388723581701613054712868181721414399481551676990598372950813435740501617496712984651095957860806606100610919441541119097100987050498037571233544402210129327682274648055482725718629186258030242512552920504222391881502504944157558170320867907881046717543864052817689771997926650364273348683607726380963554042996323669511793728670642873496424542134039449046454483451835018266567430023156427773585805568154601686565992709861169110567808156642714029790344100179471285374947983969937387928176667841972322453071108777242680253993492726415016272203515930298466560755943773955126459321084848455635772399918845993558629269170509522495207586782588966437656006123523449704237794780576247944399686532024497717200677249287991509205219295946447281325714109612015386314708046682729165728470751523777444713728683937042291874134804942207336486855021280915871769777606519203820249213921348601759415880388052078691494768861102251304455659066276452791693511288001403901775460072942410829785432229232835655072780286472333067156742638083909464263301770825490942783941307859376126331481150328946902537416701506271877687706595684168637122678252448054424140214713037383734769807500623439945515213602194391447996280027225973422541772466650161786549454833181152744143866087784909762504074858547605553509328366574191731264277431032166090036350357259980288400964300408662014106253232353492596729457147632764755796830823246373740150918386364989665013183001664767397193977675178169093403594365639138539911821924382028503512591290980386392302939051008580233262922034186227973039516663654255602354020594717465504986523625336196654405734606235183987893948448957405940895406278507125149522764809487731373635808162901259024973158849307499752159949833495041601840593915583968678116034539192187294115323560724387804563050951388473242775044930684776034470460885179966694466945182182205268012832933598440074477314146165726330690723903483617487826411763099460254261549327098190040175325248120765847220447624314861361448693615473947493915229695283174308507953542006071628069519311540656086301240411795909151729336027423629584801802337367340457423025156132383903926198261940813168784144161825559334118374934681242397525334086116664771004444286260648731938390380916504084748361363994184648492621075034708778011466401144608631776588768151952171727534709923822762759560902829905108206250602821638948603167238642550690208261023438936145680570317911604293753258981910957015790897789527795916101493417946446542525210692829929922989070116206806890510591588570009186302723333711420548480715548196915382506933595819832065177660489650504737212924635451234542307074569875174818494217421978022486220466692300901482379092216438087987177982668155435140649323031425150825779875555388349552942598069193953203854810033004981893215305209355819391906933045084826006965858233926886482864183707616272873613576664414820433914703923676466803109195759896587857728096491227504492443820961517358980183165129327320779331315800623844841233593471104696470129006520081657496403330195088697424142253581857150818434921444486199338304380287739026957797242751116495076761534009766550419299679146530675714687442644116148755507490216451718160696541631911354935998272216875512473780636495914179225716535307014389486716422253810305059950038573051166029203062979105020085238988477232444266174315591611762792414732331337185953062878862165284660065161977023738050124498719627377209268591443583632972552941218077145952966087336403456049505713484797879018045990113657908454669645333119605327878770160776926991290038902180836068828076425042453431236243695067527067643122343741800938234621497532032543970227229545543965896975299002299545984641688166126918881144459845309683689447590670328417747878474529288953204413312342065397485676351331489876221811049456897126649878691159755945936590118775002431373647320770217600018142023806219184052733435346961989599437664192738809846456992275543775062597051283530485941658523754180852957082172384276225654201043840469856877308550856118116654119456046703307289132556666353628350610614626031619378905669910455184033345092143687157986136681436346861828854974931468638837106050768582828186540471101339636349776696760080903334645236085485106246749196705461806419965763978356105747636038717103476779839866343638178657858230028427890431058133230365155476506746568929217943570059134213329948509834134125298643841733880227674459522529981715718250933947084168958730897286252627765737208943376043197991704371459442998831507242083384937443961164622438346348962236055758331725737842109554053942398629202416937784515042711040854395564310085341431023890408356529338153657500534198194483677385799047248691782608333691733519852810914810411934251507436023596255276782797724853441345998935255621946719132484337115782940675227425702749902547668385356973714537233406610571666010332513018795446250119944232353851240547390385264655236754134127497637196438731537157527143487703086593039580075301930514766626896576625843778837049036443914762184284682518018068434199504400158381017566997627322813954488097127897991228972169802612454333060508502367353040438893754239987967786788173709651230584716014572253121763182245735535584600106378449514183292050051004119722406363861192890389589271339666470875267229312903147152705656377844447646620813128207876188807135093948458752758149217542109520236218614516228426568989957451653418262725329273771229099198823507475520096158100411343972010111496188676832600089447687245820569958383627431156336452640686357867320313003638754690281033583359416464502456020209162036855239851178554389756264312220673722227809983079024841506058754926605926245070730743408456401385231764007525246364281196286808502232025540137540182577318185148603328892324578062298876401181100492697927771352077910481652202555861288469413279824780394362919123567645172883928396393729010264341878190934459719875971600812521267923686491407283673310110689084038706924794378218413199402163243105567263729899060515681271762947277403031088755231266521389365084098560927642463458804809376522376210979550496490622645698372485723823107158567984742317722879041043621835112681121425580232421762797027066957095376055220507449524131803323685795774372312651995680594421047597785379615421220075195236158923165093916949410653580165843874261288865667791805282924677786239086390239750241361410394389642170343136878493211948381807432831371131458941559170612878281907508132607260074787951163248838457532459606282013192783851084485715930410529351358607797088959416324961240127025016242463529447708232468799844723344253532906073479446708309774562245822626693291087409609563776886369013886497957772619394612770774521022826280596331232984652290866888392257976699822010749808638129612748216847958773723514801357262026688492718070155574245097655462245451179735289754578915449154668381914898170566989912383247082795817952375616101128033056570059066961361242215193854411583186675996359289234148549481081067111985409908531546773677045772250087696366007218425648453431533663258158182011789104430179065486713085730373886364780490607722593013932650627649806446782011783857195795984872057078467357940431794003369091819288682285676018960358563536156615356605504301267488329050058935269379560120916688452259335606582622891054865905077247573929297761745106176497830754241357557281118735244338289796726733664712357728234379783027372959023850199869859632868944643811566320229788389930705722997285158224170288988552416591711301988002786884838839109435526801921146161117949609003765090154887535879575131347357066256812246918591409050026938785519882858678704757461895547286187136372693107121323998234457318463589782487568773155684170631270731040540143979640766677454246520326410003719040730650876904362340392427092763685780418944797672900666817737662179667390415850367020081136491438297706744711520611281949006652722889428890109926724782605763444542746786071988683591753838261143286728407581988457181498552625183790065670274116921891368982378331708906047940590010318333360229828946936102016437266334826381291722120051175705255468147439772591360872460282015538484203069966428305784461247449267950194081532934789580488147664630868380679389375240870511520834134052298056423727658411995974229638851984441439840364678522877599647632417796846508654738258671249056105270169075610721779936941774617737939254654472117831946668482820337102846013425113458748946445656747963557525782570783078401421519020737728089746666049524515590691146941666940449215153589210410151966609160298074142489742124350977643904500255322876381267663597566971620670997315389574308170370269197405598329553273752044725695571876015225122385685811604093583620912630286168267212479994734420935162052418890822735639403101489089853100901530800954537852023479326240268641896132245226280974510149841890144604736161876443255240438862228848138395423113856240924713636255707493465122938296648905652461741426935579606628207935113800947276148325715097971675413849823355516666573651304603915506874920330879199966424967653863847417065694717201331265878824786856527202111701224752516792005689360019773075171584679570757404054837072386574628879960448103532673539673721011105016579536023261780726517532561612155934526219130706977608492714696739272295705302655746164998937180528329946263769731613028639341863810587650500717807911482669553437171225446163174386674846135761652399856791322967575984686041820665056788562946933071110096151118103778253364211187001294455151700531338476568622737855658895683985026968328150270821850313534693150768260748554131090027944141060676408171638165780633855740256884455321717614322623484576240513598178761634925497826420635306819941537278415841115917806447552083947130866102760037225109304764589353657484323935071243081328641763973207207679937705894016202157655626038328587305385522443632372388051376090561011597035938761125755350703216223648016576482273485065437002803941154907103387856904167726095992888202376477248655563695631298778105662347732401258805201536250350574455715596394784888015776703553153936275813324732287804659965641910349954121190531073662972970031082559814212746677010353518984076932424125422843711542377379997023933361659237680337571240029996759371624141169086940178566376078141720161279766489408901390055089314890555265975694930060702511628553784035057594167492648387190538189710541809752635059839912161494308732678057332890503473933193774619759246941266221348218911750565302428684587855415399702764641024441760701881721768536618006430856014591324219715936934770968623806640657392264637802542332827153830985431026060511532506913132134068454356942625358658420739197772038236504681483103910363574054263678370224337201911455989805189354865986105162483042684416700439442891007261280288625013203026981483330510950488825784870264166633551153698319587118000944103127317822736023671134955582036959178060553691273217107537789179648317010298573682589838484739220835232701480338192968153862337804268345605281383100033056237847816964508456693101999096242492560290838762878102047949322280445436536924871556620742928924776339785307284165358937553049887131760415365912121238234885851918764899319356756459381281524071422859394786344403474871413467576835199602983498712343280763487768458463543651353799270425103920391821626529989562210611487491411184754484377437851409688163351236214606658160658894345698263790010180808994622040691019082625264898656153902706859162049739050455358467351189371114099162514512150790531980282838141454993098491530916363738847982307714268360194268806255196108030239643746197401430878325557872604262568364795664020624498473658863162870702569346459248095291994114365230439227620600064051916553122231786246302469099168515109189642480765215369895780378604397972500274009458776294987215559638561091663797588782380379107303645552492018126152978438555441853057805179354898105790596337168872413004119785961576324721876260785157626198302340703756006485133038438013420741608343558359874086228015737644988028225518986296192928907762154360425893346130391215366703677263392794226775279054814974076339559328493511179579985580197835433130688870552957522622099788486103996388095811160134434766523118302644402424438783937252087355926989738246920445628611825433370761843001992944030246436048155344773254363147431583068614671662901855369859546131531499696185365679492364209650170038610239436549173145715207857532106378281695856192168771568505326543146682744725422773193100224357991243154883162067341778978056113416124823238410784911283535071327416113156968840110448826807816027904893323042382755800996720860984093099171717464577251189062463929222206402881817095337459924939991763804255699322350684027095204602354515204358345839458421050742895404699450596930408078006079115565073577496371969386207587232867044581307454555263830857720066438470993119958475440707570779745583957256076995085903118748830683152482498140281265871607155713074798321242309825799076859026379450344045620120557943079035103123108727147357672779221974690747321360938726826297231597467675887620987995657835902914444245965810676219577030681221974856621647194438828762823574382999269177231769847036075982245464068174879872426843034146566940912169703864475723507629630685458372506812524458804314659952060922719545726719588455720089534790309214185390731693194426854063695470944222315379485819115313782558345787907666617371867255332747969873768370981181012665029906272942470466136551320420952792765227677366482427197488378349674601693988872304649970525483672934484132280076506405712693130132510545442413295625532515913159328040768706840242198422761825652813531934864436596425717956476224472212146208891859853030361530600762319263837865716658506195482877681172814163865109631343912275007628282723370955092899684420188924505515889119948717191346107987799753952766838477831896383955808406820061223619256893472842398698445001435753275427842968046220107927015268482608756408912503478881850578719872101747092295211642665797748100421902355451435028994158453001408430454061574444587737412150561726893757617511065209565453234676520759351766340879353334783984729827358540738953476162391671425951916445109950998280120499575820073840384101642480112840650081154555418895121198489032198527599669936390128914181564552350568135729714663460327756299925639436517029388375852597996090064617181101286800647502876466631423384293405046854271226889669499263937966310032381725363617072904540024045361237240132396506886291915349528918806433144848303853381337562580406574529970121121323892250699644288852955528375483782257460187118104476335417496102939842223499495591975615137794815902106597822747060080421115872723620898590545648440282847024124671788436170433852243332668255642736491821360995876801728319498699527493147060517390774821034095605721503116922236552640540764361824098952645146256828698759439010146838752711638908274848243186142447669108833331141765805830945877571916003880382001428040189094148225617218382428048452849906404640926029435915430560924104965600440321995894583245018159813302471408073187998612019537146292095490032192783245349004046153481513265566863013840163168930010238833871805820816630642351900706236856177272004352834677058010750916483469515543476170191413613189721896911431216778197120851937724060548736720735661356018401584471569691512511553974680888863630502433983502504529754935386197681860992589606386331670258334524799869984536602572715025936966565700902565179949468469244637846277413375742573341127032289528819509955971615290118330735864216700194223793199960286278948350939454291192807755176590998770087414813774289439281553763192788196838897312132994274525214274838756689836374927751318040665494248444234569637018355593266165007304442539437956539405794695363645127893990527839938236458716112212161266597513616257556756850602539304033046301851432887478865788964869202138772286006680284417499382506560974557266889500442415646369824454910660122970382348508166628140741625680495016049808886065954929673904022307476896688798291616081573893472293852482054310181764294119209298571017751656804662206928098229459892628294746774185931362411482212613670482099954104892426310513092262056384040634258574088612371293079886286774249525570751761832297805195679386362976024625068685937505366043012122987930052609857077658390358303025491545866660269717802462823885745376644608361002602563590659463031361645288037831296875003564666490813069541065833972022136560062206590820258937706438549851713869461451756167090374630585424280015911865226473045971325881044602472751145702352278632207223198173361244775107795817836177814615138686511343787816497604968752029990655956118405839530370340586242911601030273145713117657545915379493055007915911064340340743495777100895190828228610120467535390841251245396622825555348595457377409072130528802367616669911348909703411440967330131896671897823972814622550197208112937161033825428595652373582010212703111086195292800288078622100806318377667427975349116514681771304729971597648941391387734010178757421642084880509764776413836283785274615363202746722663485025438940184883864206872945867737925230170397639305521320785135563957162358874141684820993521733853710672279143424787563242604730353752544443827162159257254445352111984310915864145121975539378883194643916435428980570159479799688145742512838312097370995558820575894735190450102145440772354615019247377190573341334454513298465282476556136464791924101965564532566608455790140059352659917484747766691348768533971910417673889557148299854582417649959086758151054849375110370556083315139191841637505702096271091342156179990979540972062426865174795340416259494348833260140092192937277011454409586353825358089023552196116575459553312958589122439600231504951198908321410429120320739972421543084248685633615609830871822059284499813671986052848057496761566742729987736268956523271143051413546693188594117003809491173750309503854913351187121649491382631331734448781017505289682169770986210297645100845182510541465592163185382166735746146449261601287689394213415961079136065270242718811072998883242476448163131362507025283842696482072445167865637981824134486660312753605497832544292244625688647687865237350644298069603428802003578968593449209826790180491372968513067161898286939898889056253848811878899226797909448073446211712696847243137090104946428508389344205387152034257514636337350941182455155554460682930269920832631718757810997199039241218476103860835922156493163777092658601974365511733870715970418547288995638728347778836509421521406010042513228232653840711144464068683555926876353390563532390742021595943466748125778616293975822014670052656303050178508687472131936627777873195401992772229042948534466769630388031074947574036950224001225122583487366926299364825188529636955785396077123861507768908395855314313568868812406811129790370139747706149758833999375012442652766926612823238808087507114645007636178123677701769329469434368645151354458622888927564811559722098262147074568339519785474523979458330545855899651451375919449200622302177613272849634215421343881490356162413344841597409328638176283086263183682938549710491380501920475032269219977309620844468698754181877788721464077496605112985100580093544812602286296667674332871180704689343843399574505636541213105046920342345812505988780393063683003423385810058435273845551587002524479526750156661450660732012638408797147780455984554879404426412369900840262623519940701353818177644898603025784901530773387027819201785383209005057791508884937463640049990524592147906302775646621994349068257495679194540279847469465504888238348117054476560046301990307354378442936213190191394461891793221801729250050063774953688739258235060548745118363942026519328308500394221388862323785654229636534065011174755816561932913832297232063680471209694076760278315841954607954710408021265293045939775289242964815425166205193980447564174441764595148617979556747226267869510441776955405636315488081057080227148959631895123106247785903625554987097417717991738327122836743312887071091059334891887496576295315847654142367549077308140140647944097887040667132160641722565674693062341993032109740152805509817097921291915213304607685410745314777935039918942487595037038922186307322180790138784452883220548682863761471198564822210484198946960734099853952729898972043595252640160120680282016056113523820617397511429044162737895939275879179202140158433479763982432901940337352693626126540728785049950906009022401745565623786957293718670674642910219707631449252340461216367520179423970119900138667339585110221140224222030081980855680587078450048706053515321652024176736752476173164656059215278309518601577051412432358148181157010664392545071414948945504387130542051702985429098336880037627815513259668010642751006564366023615377632170246299350871199785820745454579290971127120627112177334202474025297283155796637594643687246766898862920171473890433871009020931437538866838766325620471587306835065848653089073191497296726956530868558171401201176231299558585970143601584695370266133729704259652944605873476222427371073367545760542324431834726809055801328407470014472021909895834140087326253770814978124816866043303476873807982276211029126770835975749353294516630225986903952127815871899111286886304795886547002058839863184531164406867318671303959407125135887396063242391570471709104294007621686450807443817078212480307008601965862559107352046045432968160816962446021605190825116029590503722673779504093405605979847347271918811279743588314615738687290460524247373324200498382848872974418871276562333491232908617962439627296349961167258987926816238074453988558233969995569048987703212241523706056414093276136617613744895634270608903764259610902205374119677535821489460158214801794620610166304133223036338838225759934972973562012731969142779928949728650283692057992200715304891559367235590429432747547201045652010816875923391265217628999499537240555213385540844711753172530516498375744349232022897871504401095600275173874782123817205780931668150230919166960083865754333194310237348935035636781151018203005133426913154395920294781806118584884098762066082359453756288330927706028330403902981763605570986319187026543049426360760002565056897849407245131746614063715680131774477765747490093667984708351802313777465227146514982646024428874547860951774667086768483577556017365922882779903246446079849871059370814712882223162191134286513703754365039676795666419709764183015311044680931062854811667016716810488844938664543047668138499950270157450682092728135703392569013854719566421433049208454598127262721507177509795776089768725318179648122627448149931407137636879652122203642696706396043541120801437621423359673967320145992777149319366762500797810760521895613558537896981825908468430481792554258439600511889062549433279616751981010334655109821813406569757957818961588268015322035314023064214413905063453083630240163608653051961961252900886095952725620924403488330935030707823106881747645906593197467119621447948679941788209310373465424035562850240724015484568703555965675653649298908260893812517517915765011309098854058380078923590960363576425672047876187719905578715051148681594318972455866895603143145072586719352335095997820303203109600592922553454086583950032930888008676367171942384003577971825900305663854723913760931383065303049914809555373698083696372123560462350124281422855606933213048185757656734631727976926313018763245418462247400219207808450771628397613060120101124120742676670525854357282934314023669229781434859416013832035075128850598374631347034353610440679714582277852184673487713710314426001504881690728338649765543275959679312725387262022781248458565449588080873862819225658227251434720043459972353576559601933683079670945512991170778875940528780068093130725021984580270251326488183088854478376322880029504928812058097779100391688156654692957955969658916874051324868696255070562769387400542246704801929427984200537337550202443741305729870417214087688402220796897752163460831354650827823607460123071316467966279512460558860483612241995601432920290467269767609023809398762045447964560119128940260107999690678894184737108048277939015932331357804807294875336082416163643845270422951040954866638360381065831462098371004206389839324392541436418004180106049099283085603490297868789636474483806893862727100704621536708412033607472967196287922302770688256205571765637665307931827990191052131841101796619938989068128156059012296206361403696228957918712194132090113103732759348230648196077793650252234329888963125243159610440786310050875345810739074084837662186842215880164122048627701371838068932279953596652776664460805092243065031447561841997667866201628863414874658295501732756092250375051215596587564651764301935339473799107589926989159222513500227701196527259518135303271281921279012975872116585279553953718951586912586663530815063929906826049332013805467472274064396514900354184847979779322302361776655321167823976800286521030546990414681946986524022499799454812845329335431876650392030766527951388817045395447117478520608752770584543571663757823034746159067453188162872639835203397759217457321205571827172850754907880549085676119060668746239690256385478649219818953292052645069546681516858445033225120648641098406957737868143618158031324398998107801883208460314579253880087448171025682051845358143587042733587867704313364359061689112321022485439592627524229318158498085431750455757964755861922884796229437422502067513169703244020182408833440489238140210847764644138025301246861410575664300505846259118702741360204917028655271622153415770935514291764630726820557818764103428817794189999399872392115648168933019258763816775393961048009534930655336458989049644139075323663732721706215512730919685735912722089747690499727335663333296280325202404995222675121837667239592081553047655268015787464930075692253387242374822091048342549592163716542701341953251507817030668525814627405136253696932945614469675100503164714177696365244703367324508772009561599153747886571332392188433809351620703450648883659622963905524789549112565159448820910575231082276213835577398293484047491675135545405361350661891722935991294498304718305340722683389694517038153362632593172846832324760942839567625733867946057726172948183890013949743139819543514426045471984190138740556983985157001882962306364963000397229048147870387760658126158173302701751105942464727083815952632067667593384589884665080879843301346579275129167686400805168201302278230772702559783410365508096018444618388677877275579338631776850578412722074253054038077409899108507173798359538913696704561500589984562073374283389923873081798915464110773474499902206260650125408189165490689108707464574379416048259996147033233525879325073237965696548278589903732340846762886500500987418188861225240147647334590671170449527889808569239732304592944866359342836051571421664996119710997264514813419211678656199245915430116844487876791997014744496254350520415669177252489025214206251089795777305636192949778767699330274800612430378964905055906327511837204219230897830099094169731723227545062822266836919800420966320369621004033547843673376835063528518454096909899676670905235783173024274653323272145974746594021044829214443909930793089916325822071820648183396784725259229194358936717079731043087220693581527289011517300063650277563345430989885896337221934449890450064156394587299791922720776190176345077307086177193490595189197645511547130696719911658942737949873614858762142196590381016156825976034662679081494741766480421293124572706782666213067813329084009289493159612954283765981046246966712475551544704651204526861055662588711962389131377525379609215027827320589887151410378489024876789390185737005842890254142333787688509778177880860301568476161882267562010131113621428725681078772295279085495729633019334498693521815386171753233511882209756703798946329279329812009290230494207253165117623534728925448939312697032411951406013305683255973054720501455731566661182021506445348696813550796432231235551444806480853663153694702328016880173898096943656799105505934970322631874404539726122525368186383510371134116951566974867985945741925150145015029240075195778114515379564746870139613867949887240215064218314524575310648889216559172331289584571792244866067056184638556571046819991983535752442005582049920079192983514071098436239344668627496988464717734508405928774177928273690080429302966135089616691149727924000505675240455140354658041839890622949709881612895425996170475420137706465752063543210878818580653401679674570074755620418901677898090737657224193757169697986421269579707479829510253356395977078511750812216227647293091020111511683744640278622116923999815483666964377901490554478182521374395774821322417914459910801798874353599504110115729021265554114898711799647377394412426475838553943411460453424369108436117873935664749315992579231479740712832657049190447323952097694511402311812385492524118562602008216910034868360294393288137573861140566261261693515604894757438791673126985080730122840449246066885677138853693110559084477625759088352935971666927421995314307364694068326660906897548437431451668731045205874865117812181673511751879930345056306693739895113961708064907762157697906451603162974838740789625108670663884801687666252810493824032158415236929194796638864119919253134937735420501443719463462112599305447106095209469649484546042603814236773880361818477415225146294273252653455265775888437737940059670545737127948128300648585998042719277874822316222876810674752985325372838408995672721438993723017470473406312774809815810780095329480063141727245127314970677705149656901336522379738728703312283649030516621786739343757323030725705514168532729587841565841633564588993537746161733452936404602045472020379124567619058520913960708463302438645650523258666092607083064394892821951073771652669260522178747747115313283953099408247094627002764740087251975885138653699567608457735697789772277491219223624729394057774319982268295926518718460114023318011601352096521386885166687158685707384292232716410447612823958304181913430460262475576746907810008943148107459656296030640705597827998302973815639126865777663028415025004710449058297361491436367309779019842113404528613544835182608427847162679130015023550487905061064364486536450527447934489461710352201188861915860927041707690188454714593176795965017638305510233523851884490266081974654489013732276287287757725931619392269046653362777406488863375905782054958721274790906341006065521045976585384366628023257134500842199868685928123503713715224400719110705342036239618943659507793950548876884140414249267841768851306324440414866567160542061337841297947562221360136045696182399351743413201820476719651751229979694656483131092410224921101566921460358672753351898483417337774999313734606884541598868448134711830688122858609842390432248756998852150308247480993343622887100378128219387949483027949320215762823241744529128892317231771942003552084780847624987990624887433961263391388932511022738829342227181631326587295952467805073402473015482339690578645519097171158955104038394777528178936099476479165890367472280115298315164497046056939836517191595054405924558463598760817695310643302601656358290901511868441421665150998271726033129863768299317611261617546465323331879180329695894021968979235431232839918766677851893149783156377568146670040416209718743626161157767223073695774341865878394372636065809197303849012128657261663868144494271601597811084258860043035632007022665325781537185608398231764847278771501853490101630527819606823681652281151082361987355985627682746378935692923754954929763531427406778250640988600622883585049460848284314086026120477755883648603546178351477832680429934410579573856515725166795569251323621820888337263643842296426215952769899268019002733120034066840386225303743210747226785708415052433602187967694264179872348505683481728655089797562251167339086883727871034928558851776706326707718736000979690681677462514896993329532815535316739994186365600908743723065020383394390065459497546885596676946012795049610796186343499151491340618310697434822627633391315523862631338716039916493119123056428158067730274937975966266979647327581464179523994134125755208967199513294179220245533226841398188961977903076639156051268750418611442316002044568632764959404914209954569289256900863533206006199865837783339766626072794665298106649531567199369990314331826538010301291115405329900938164588699869577141804761709349247873896198525881679460328010723856087339683047087778005993626505588079548510461647283373451703040563836183729414361716242242438865501743446798828567891384746599993886311559569740543831383048843828266486634655251693223327272913810726543007208623038630971366931482716254111823518847379643624342877076992046895298780533983841257195175478916494020635829739665884698129256826068366970127584110452638842609439645956941461562954649589828192012516775659926184246120092819623843823254190957588585242013645660811520878557010412880854874641231667032611003583890459112237760606241138433869589691256992361671204337014916639985757644257137584570666934338577075468698533284870896246760693949709756572277274952455145332423680589384684395354922535206182781676261553819070262345148192198390567342735243438728089387835959025295706009247394163165854835280204181142644797472896056166080060367746780943748864089405206305164710891810759380888847712522022748673857930433322381346896799924510993059661442382614475795051606033739625888892212578034304325906301606588274096442075365332787657590273129597029933813488094413036209355816379990596036756291345667456332120113287193301597366735249314387084626600212297882635290250508582963815716912559208192991855775131859374298315016702950701639152060271340446416386247368706988296187890473782099151746128205821488091899178813065280347588504395418463177779878718801966582725104664392653771485770168555427716699006476486035629080368629945833493830297475487540485613403246140131375490586377971668786730580911881874775952392213993201779397857100610476863163193069468239198939556415983991596148370166587606975007852015313597207366078332359921060918210093210791413604514346377897851663562298497631164450267321507354174346098131047702451965136120395212213866144260527268835980742420736107105102950282837770899972428095152538763981708547157740769866670299947483594497419847676917825519204321127982759287727817487459701758370171784537605362732951809873707104250146068224289745393494726713992658692625780279007254427355178134085283367074467206084152228205699660227279285570165101034113672413478137988162037498620026281831331224841545676633072943828950135376775615594625504302796022476660090045674395230768436645468604418419574883103214520850873700617216916637783481432965760392925144085653228150830936352977291846595242565652651388275724841371923525253592973859358924739898246333152691293454276737874420983801018634561846838811848610183007810132852714054838024693616846694633800342448358559137206131048325318799019778022472908931815174267958029214261091579999165590022884978210263875178570216324893405553751571004409602366572884849975912948865087106994998727565357431007182467362094079746853593361210426327097469140407733300658111096877019577300631283904099568527472450698239642506546766318701558172444026625119108645668807835409323654607392184845278782958270265031226489865288171878028860163604648093482659253021553701078909572032929709263517057943883744704422753828978146098092800089989088769562570004148985615700092245813688412897490373709537504907609827661479795449356361472295283830004702532794036178281560270850700338312680223238905630369251650818337087403701264796300412122358537266459371197985519408209698442910784531464170951854751602159987710786813009627590760358293514218107508640304380992352402117826857997933175593463114959728561182674285774699014085919398500767698302136530155631924320740227452353177597062918398675700612889447487740632334168245595447221926803850896543562329845306421808744786663514731940324184796140361542633554058293590228730715442044873481918791784982838623805460096692426624993975156405846342627467743782328555129026960762230235851137166048399709491393239219293464067358387552797746320635987028455747507943146679135458876514894121332958195448507681350174114759362293843942433345184987731095544053155801660140514498902618910932021581806696128993797621562288449610925145207118432016493901645589047035347756503702430619012300965539067805277738899586566219273211547719011506885774206794192091497235731860106008921506491313722254956282607173184994856063681138411633466628256977987338832183747548886032703142284663028722117113429685754916005579136869627445493303130197489257926957043304279730555692870548127650706542865013272227225989036161899198947897820895976807256970393394718538360878342136617025270534658554508012933531350561625220689349543368707591627099836817830737532542366485323179658724392935442071012944179443104151317513085575813096529136740479500979633488126551670137701088541256806102840703616781572412290643289286918073280029277634493468984239943606771932089139098637356672108562062839597637663782709123498695033535555572179025223150301467590941142034089525751538799899606289357316287856699081345502818048863901482784630233920863859993935397792783638801717948524856348894439055908660970118232784140190848794378709523501697268269555866589523980453023413389409409696767330974932214836063267611442953400615444149685540751391066397158549171456199666055358598550725799806290226981569333709038196433963268418712973365509989265155208668727029989315212157651015853513143942768319228496402980597782149428308639623672942965944083365511546761546467589976556754068940107791152375284099829951651785729880522296333257925990639325224097644993173815605472286569282076728641411922930924651784019145658648474760749799326053921039626904258890405856195283535976200113605912773062273799347692679509267512890602567399868508026181665713930349389887077897473341503183901186227210174523059845815380946661381413167315980746923935630577655088289877868644387995543683782403554070632912295082566088293716058542309371285630487494991798108617740703306345101377827722907888589954761933332765490660383013113015889846582596727638843220012133104077700999473795509726710360187677377912079069373418004018779326769416012105397216700154408588571889491386110502503970700851581497584124614560613755164603355088603657058643029980041951685908992114183711065934436810147293341382968118841394112778915311004346260839525008316292015318408190694212536276901806772490300872628585736281585134717852091911376392475628044614987637703545505465445543758053826881823072054611464595962366982078930567366825806411085318606445279887345133064101641863116910557530470324132555682547025465828359577749697158944132126068948909820509561202199270135102902194185787041766544683554735550529172787353872225994163379130457422650426602751252104144281660324690564512172475059580189925523004852658138091027316782548210929963183859427600663651176562299355597098950117861041940587375377262763773246483094482155698194538958215641819408051700455577867776292410253324260029599001152842805150462219168297525606860753715292108977444613530677550257679038637532912821162426237701207880989686234626872525899326366818992002952795349923965579309460666028963892101887975115854455296004341033963179955744389557055001660749958331310417764330197162808440663966121828213939663520742742868162425721337606919190367687309213019527215789492040160011078031109400697223622790436116266567862184555274843759062594265732110279347291453276369761467741544704510880228011595492152189541705506964854983485420267725889665590352115103421676250857533549882813423708967484516147863302389558527247200624403944063390474046504418041177113152376950158313094581312065184738949211555084783516736453511464525150640525995641574719162617265420865147217718166553929897280849267333059628335812749894607526239246869161178717194398626411888516833187539095686654807809985504552019673558610582092594066685582873935792723320600474094511840783193816933652008730275863139816874862670224597137239144547427655921743805316995358449542390481341681549485032444777368062923044543529395546772872572984786432369755282110890895873160721793563955328796625302991826733373132997743328963176159112741028513707630214798299118676019823729551380432659633641972945562113023205213980767017008324138902230833423388151722584380061799423629026950964831885135638690273686208007977314071060161238555273484710637825100705142598580132836997963867951796784193588050165026119845271049084994918340822753293621322984531328292268469044005149288019666991070642697118157472485737950185982894581481652039533636719378686837792194805428351560000839490887582505355723888320815433957599809796469351288231468845081076656452570990663783927935194807666633766798350994925793483053641885998019058095928263673219506859185613088777177400955341054818314031992268625638811258362130153017629772380981683075035612490421639417943996470101042096487117403807171500481096806263477380155785811104377006752628930082838986993190493373895659993897444763001103203718971603191797510236206612868784721822398560681925839972990745067041879917486740274330116330139749567234617772184579394261796264895576749201315617378332130999851170973877736449488959103794652397199096264123861143651471994055852490031977939267729582826738174172061448441722250103699650608459254147063103092396023274310793502964138945092362327856673881038676866054686039560159471360725107591254481229582231315046321031280891741407168154470061110459677876732699982867589237574434401307619347281523338694647114352561625540533131455754315829740280655758727283238300431611898217524637893763945563697896571876759648998248520206133659920325220516001026199093423574342015851920338761849576810963116127676820252421299527481543680211842470579037679757446498071626518413553950885653179702626958381504184028694569582540248326083971611759484176509044734397350167604431119502708632569425505004276927590626976202875093779349035572557321253726200577529814708539115863904331214427621157584096868057834250482466643860911884341104728668080854159897000952108528400245135764386726910291312788756913835251691083047860294869715984917345419688589805623582228547616771003488167962273932362531810850749657412463811746952453736673515232226878449612176099682437690718076111218628728136877941708457877440632739824638545982267529652166614239137955187888702573920131622736728143295868286386685150318986069141098603940434741625003880215050193369079758995135671571064561028100360576877510898424926075055326572635984218910079937295501874589037065657966205357042466273932309922764422029783490092461186285337438218814599886635842104044017668826260820362304069295839630382113230873645152151624672721091889764421233674158949075112155374352109607015669819487899364098606895865636352459852169839469184581454298037541114537539422708643809305259331223743283035559131871474693104267387456736359336004518047513026102988295445543816998841088546533123182427566301953264382405945916038070856459381685251905545618502444197035450968315104115702242115997633179057691401329671675152351428917769241777574497104040101340386478105311848213587047513533519201759219231330221772933224538675445826088740425153609864507995240928250595162652277945292127199773204461416082679301549671561661607476531128751454845836019936712970720726074043339478440216451608298388603256847123561655277931808446096596191956646267482795450765985400155411738560134595232555998891061465300954478314301993899179680326473750063650325271645205990654787421158484751912757580411790950647429096879498288878314966690526772822522259749343717829735461018513022149493760047335110895042157936826526591830495171424843423964672656496687304784564194196062548869465425393583942800281512644326664857963857373599263574733342701659551946004199420945914016415350530730035224981246956120889304980476614817364994772824719197558921948393352196198912675443599744821494356697498557680016826055310991796128124621200418769994972429437734336078434818620729718080268203587803831200049703151822488450662894267712030475320462369301493371542464484238445222586732480650333156304343751389932913984225467018547930266230045235293059396171344524242723594030484788545499541383088899871242790510128210435620319847427101912534065785404094489422322341135006106872163618922072471871485295401531315884291051641918094134025159911937212480260442853999790075844802327741944669466905970198487938153464817803203350781626055268333867898459067419936275580591666148555657909351564309139324193629381275649474079786695522971517659154963080251883501937455153136860804247533003298059747465238038102526193768560125788584623788964319544201296697646345370713813615218358068303172206769230337636331100368280889817082663968404284491335760065068103012680819335243131826368766149477002490475773857241609521426161177206186699028132529922891623848737750500794762003696889976266521406583800719062769168576113374280818992486676124325514926908587703758406057989889568696180366130998250294516437197271121141357778834202308547760415298389447139697266030978707415293198728969722480096535401862897518678656746003035909368465772622327726456170801851172988427077670423035185372130112163188560326402481486795378816906815268964370588106918498357449196850756784999653547464032472648412522415772441348407155574820745587658997861749827852762444554703084170286969209687307217166993864076451609385734188083688880143232829486013295887805297997749062878225814588716057465819711036343349481633293172639131261169977403002161964395269586427901021966001524280670348928889688754293960063779505555871213998797662399733628128730790201395895017464011933713651910813651894664798677443607048588932103261419423304110075951003480248397298705223940852370600498827654416814023611190040487830727135516741962837627160488426024612463796398551111732471381766002047723070930016477705132094385065235280484928378180763848816224031694115726735587879053212689658033046641471957370242218126401101835667281882460868844578038621098847049217718311477406202736087740020652911700850458606245099848850207817252395944673790363078672188345095566335243709502504144089965967348736444362886374056815481061845879641649096382511812320611439157922563776714909588835782256933239549380218724812034101093631575019994389865553863266630803955347128676597357161307343127604695045028831247197986564406462215224566290395214885589906393080137214399657770506529108309568734658840972762096920555815411070841065252472820085133811101735103716868174917618252646179790914707952777161848739817368897360260447817241198771882771871859163821874539390072404372304569128422459418489976206406528006060180727908826183764285452541280471235085373832166418004268949370983667358377440395782525567410855468605950731227814989732493167262589890575494463278934703402376428437917308501752849686544632078404637914195047285305148096653258181202444583870888030472093817659649577876652811398427490720167835751270423498232397028774168454630654522503525611874539517459967742293650855173168682495708598457543476768388736169386809226489927584789933133254046819525945183393094673715543916816809901554515473129458233282914618761359582532253863444575280626376550218088475511544721579123037252071607743534223755712870536104820930996364240168615430494905038674859501099392571274837106778876752555120451670747797783717868706411646246634552193884810566136641672375689278080855582043541124766704899747979141294799276937603384775734946852415287302549596205346131975189236658307309177031724698090621382082571349291275068261250238219827516166424344157529409080685217528243330170151647868888270164933656464843454764543807574840973720046021936976265206167445686208764980068934917135566591679128471521214590569885165797401968575613093339882127188345155029282352569401923437940481633835729842480810467784703064593298306201251038763729957781679878928334906665095297681655054820883937876676464521851393001704556223145976042768556584352656047285563830767679410700050050183179668631487666713603913063842461469327632079120938721047210647343850399539927194690716719574674939459670737690752428267785894785635992807478323864734416810625978895910134385909772563715928134978587531941590508291279652008015419380975763231010970561685763322526984306403125198290032332389027151974725477177928747832936580885537509492296508515106210468934591071308787225357686414294979352425853193824553377775365155805903844795536667613727852534713884658859496220009803741084779121384561264316603696455732526150997139661400060898945984526804220112483792846099968905203709522840783421855085033242603958198581805087110639209139309387033703187440619093999195507914208659765715980237162273830914899116839651313237248591015798661226296051712652245765700662936553274862977926362043704062562375850578118186927997349065891234953508632677850595860734784838302817454239763328700830953964402179371025799666023872982055034976030577912879526017153586223653174564170076901563102318599205735302138008040087271934133209051636962637282296776258583318887649629926009967593277608271641866091777321081653410149046420682177557889398666487585756921643635826508068590154270478539649453139783843722844170684841014423312247021701036909035885141991195552844757025170945700842735406910660858621117661446986198158394461818450570299524394381164208543378209887953255914347173662964060286585784803669046414719078106310349420052226446837692483993408102597648592693249242915074131969839162628070901486092142164996043248525317617274973786756851681697866967441832738515524208382749597096259119770816056486075902547054932685632880504761772834650498007279798689558873612289628966505992890163859674420101864634672731614984706277794064188613701881673054397169011119440968315671347690460065780194859980767933372610705622597335736172381697932194315909942457519983708430079394818210177097277816460309503162465162563877558838856618799768912565674000549365428605023182100325559740907684226406943972049475701660339160965733560285870496804320212133490365534471639950783264003417699984689786514996301749338191208225257534456186386985900899594724250248755817542674725077530541539471243599710875560635545643439541620416180182202179901070430835703027547621668140616476024692647195076383891800154603291001746009447032357329067679847809504673731047324542208823526854291244810344632357139994702009188673115422650588962703826610150485570413226850434450816040693478958116186580352163814309868476900626525264194875959700534016494572027334237118913434636887754528455227274527676116489149038609275104978856992830155230288240701169499429701697794725439309354275479235860770781176526736964412429474291807052186251629349334183088198610205586345777385257786828115681400399192350292177736612440407539610968539593835661781045734580511249553303528475587058627000613557436441804168484861059645233295028072804703997985193942709871035151355301464024027671723707105128608189334809986133735924849325002898276479242689075054951748312404455060031845457581292939281745931247834185601007598529983701124704416487455522344228327349701581374763490799041768008343633194104205715843833755042612053912347632599896621041503638438662377121166548131687118953281449007290748520785978648550120789926590252526599087858958503834382677020056724640783332013642383740145117356631014088272483316127195070030331619425694605607373817178735425238947128994242807732443409367045821822311377390836911449179448906971914412540939844190913206236429147100858329453490609010133608834023493142281155962123924306528445339255833219387003574367804429776873492919942172091598459656180160807844930510094429833765180788381452913198837122478002683471383364333236865399067334362339734401948267276185413236402044900754546784494204118919589829076620594666194300188750090070962955486493681661826733093113035271356160295620017067816475159373738590767257412096796645361091315228254189258581907812149273837116556268936563662643904526670077279925549029657021716998254110733206585335833841796026533304574191735535729483772558341763435409009657288644143465534902211700555761682066459660416302799183669254239705374861626149246476556171117029360421270957619291461421611411509612295179603787228361614640740248825866625800637006336506846562982475021787050388641775070421610939267769644653420919002757428891804198453087569900429197360030110306513685695062068594438888086693042217149336677373081709712181903384143366025212908882023928829848539434461992994564578308345877634053849895604773198552003731738474781714118533496834302793921571455964248160206782972161813199345824571558056111989089504012800057053440349631412824906400074127994063144440885461381024683358103076384580005306693688646893136793651972799409085400587621586179427682915501337625158549812637173910126724833689944188422935654849690334129296482583744513414055071407144612616658958460716592051558532432414005168979498019724178500113061795322720564143529585895225153199411887871655862510291809867826800035541939874089804905610837718128142908225788418086710516292891677849927227347329513063300758369426968530554520383505658377291431258639770470769543359673084102520564862743372443009346827964368389601557262410243501287565520476439319885789779378872454714992983256652231167029138337359728993850816532778756184250371584459270872521561724799947590894072064218249315591386399823861002989064875771005524701400254319589745475643230269096832977877723510369146004449234763465809835918779178024465468092442653323301100772494753702526872654506246460128904144145231166868751243398896057961132654319860026089563585633270166304815616999762070741182925032397099608686440699636562213393518614542343312467039377127187488696178342424064302443587677272906904913526516165552459234325399862448775577431406693718239633081605295305336145493144449164471816633079924079877356633129670436470146833921830795281314729453116112079423544864141093361379452680615900408005884703451491090836585561946394003660800533503523741057130501968382878088006275661106345521987459966940580920755942728003893352860177293678931691946878906788564233563523221022361257496777563042705680100485176783803289421738613477355336306518337568414122407653660230730352247509647518335237803616262666224702588989517556841276578401118479031073863880363535262279064580922659355677333237030396456120775059999496433995191607670229928823988019806486878571219431979156089928449361185096289728469985110058255669669885955212113804530444932718265060165720599953126217765627895274546529248226752560858602717808093350573731641892131251068219583341077567228907769329040342022918643730753973203297051747771644627393113407586116025623684024105922449603918433952046084760784159834696285572244901811027043645132305791569991616078890939967291655599466855933236825997590772428515655342364744543448434414947747952980114870023939461762595955169185618910249094420574848585849068273633526223612189545921000699150084871303927708506594072554630902736187052729936996044349846178747219581163704455348846701977227472709520134714099559384835431278607319606407460522536016590328538605658171979201261494660095720778293913383136114901749896746858014227710306440443620111869326609574471361555385219415031076027839829409829694715306755519199202601689711517872107460759118647414576281907247485045834485210028890434139945544326450831260731511137716649032650362530116523331655589779170904404420587596508719540870038959984918803466337174361165194660966657173102346335856125736533960853715754003849268155352200752732975868988084128876666732556353784101799750359166357928911630236468239115575243049047754069825541486597863876662643117953776829566153123895627683151321732639143876248572404768550336191197693001134495352089763928618965103457020315100265097564789204308522293748629535405075275287114638005302930703301297445615132233353553338929658283418230085991526041216028748077216488469717248672097830715331670502821181796393361689203808524310981277221674201626022422005431461378992998935685378520791367948079841173660429426902785685863812785063997985717637217954546642870784338700746252562718652474961870023423394525829383469018109280818639139010437362122405707011207530889638938281005015003032877582367821841550730607385321778200760599341906453409566984779513618410285772854979532311735166177428109896351355441883457150246282319485114391121321826771270255597855994380223341111498197413660610580600986009137293734990713682980760029087364847804703464968389368646856982213487320849180252352394926251910556984528190039983668304885008397156523391465649672734335057694458251176952272507282220706383069213211414201934957090107805172343260744666454501679670298130055528868610705592226195905105721388258705878029769491987475030682302468922600442834003803865899277958943064186079307175153491087571776214385842735205057025144652961656349603698578286886405355649778998247543373157298169534381577687099321878388956244097418731208152864528014210849499830275243034829693394597993306733367820148158330228516938121871652485149671229627162695395305636838870368961253028134300035126222949400283976050015111277957804854617395287843463219962948203019599370562852871546497113672982212723204956756773890050396537187306629593848101947431173222904076954342850004658082763686311643175948325533621837396207543039966624833877535293830130158763108455471148340464448780972727272549198639805260377340378066534248100346998778198747220697351249538856208591938677664152994185742699233540891990721036099832382526679049072514279936535634142384717218950208595649101776943494470214820666370989529043986263574446221343901293319447442153804876246060653890130191281487674666048090537713817043023579629748845103652110937388957726135760289989267632883541683168743493319338046815297573249127729546806143939974293805777702084675373921370592945735894846378893377602935369007020431020220651654392255973363485361676193981875944628639511938753433583425533014898924144997106845611392966455743168993805826561633187781472110760830384260030154323577274392920127694577759161417069629495309135106344647388284920154450050370211272280109959508732165685984479125488258901658777575642719450382565471943285665759609836088570915338106970315068763593902139483097574708824789165793818819794028222947114314811041441816553176479057319194035975938778914472970251243958920457489177416112162833124939100475297220683273919952106287681270995031094937090754684524980520559451929103044902483071784053186247243361039772735955394411847684600444398149811224207295184638036224433728325428878287925304531739584215171535017117746052952287550440557982735105083800016227460876344502966745126540376191452024304114185373841318412234649931541140427511082255456164667890391850914987544140081934397795318185388184552170764146861163995380187462630186752890383342999848624745395504331234132507954629446844629198046294003938390503807891723239454735250536819973120308168814882348201551041932502555231481795165282457587470382419326515602084020562624850609274160937357091636036083763980291653259704498117052630080643265584604162967839613059170310607441106618436619329513236474362153336529726997428349633224348549748801185929583455372807613317415242208261846001639933149305164941860007553614551797984609124335770684409067115057930695994478883052278864143084873786182033526579396488980064569584089553400161832639690047343810752548795631287234865140016590991704105914423350498226056295797006049240589108481133952289149136564042733800720041121343974662618804057730376128047117465662437364795052221929906381282557888567538745299438064059522083506549908106736557500994935242248376115657631678027554130634571258754769923201168930948568763630390239121579468968079305412082292423258752238028845257877350083044248558066963550089716760178889720047053649075291165185258759331037144625777607052299496439022461058516632146404701437682929473199322393096856534861489236417217966253337361363669316992114563939850741692349814087274375531281796495439664590264989023311869966876604010550017376806767784926045452382896330684043015563239289854750044896454856255605434293948440380892858200939130909548381472401753597317320506425037262260560070378608135024426670927920705776685295015701529712472844209475797268336300279824791367704491416147224755709847359245721620824124001787944662378695493001245084971834279743270264786738435680502327146198437746905965524806693585646651380769933276218544644593116035623638467807655918739512362078285191982644449906301457733945741013980832080980676615901356543275293708097599797718823209575502493675788251502029134696222690505933936244455653304720701966232678602211932649721477745698072014947555231592615184820192143220616611993109839730478923307707565782629373538773713207515384899795129934932327465858753905268349010155061674413314214175784626560063535255425493283838822080590610713829777883540620336799093338319282186959209024490539216332878811745665156028832875985498983117180739763183032082436209101577159791373219979061843034373239583389227409621385724151752385904139794627531691596545971430195780545956005887960718257202623827557461760211510455768939679425753763184701831615471239787056099688489990459942811333792969965259414241346233050270854833076132496365172976633253219873736841475474605174882322935056588815646109121360083136954939369925605999164162929424578822313382333128374462238835709960337204975149432958698908166752570169923986849903952131376581888030027798438360951603532094796297672976450820165594435826255080093203533708146753510821359928943532696287050205561356713333564191053968741548286751555016338624050580247258666727624424009911347144362397176056127804434477917074161436680679441148666821303172684057298883708287337549818322632244505336948169965200231207268165386477656022287766087666336688568512969871320498206637285336905845451703533817605215775678159705484605016659657660251418767281902721804179142529038031619313586073338317717657694668330017852282348768298579254554844126907032063377460492787470571272283464133447416634260619634750598840248235164209391464530655644754083507709713081244491932572173458707079741021306568324083905730273827150384770302684717824723394940213461266711533887665786872789814965459635690934029852609723981402725462638251277062173358773376439156024448663776553118874208713148606701834089617897447530158061380157162366492394439704337143596486712020959676279415022712314375214535629542959324014433034665890617629397730912506803053131043686086087038850718982571934510396432158839471860405490668541058215613390351188881828178013095952976121129738866565708397652762857431429665956614517675307938314399735051263027381828391080684719501486747021911451446144491558307549593813493253722987250809278410894933295353583712813774857195436940220760373407707344167401891604891024342150654655307236105653509293255559185912192238494524081613516194744436020871491321084799490784104869327711470997121863776269323976032184189303179992113792721821458947144065190705189261810769922727841433020192533229363018931535563041584258359332461680189649030698092740430941243943242463614729084138964053485860371571797800354458720561430339684349981461456927182307878561448548504427214779373634283898760266290682874986505108203605213606244462744117240324812028089779944776414898016585667341042832914020026131950793207733997835037306319794342455583396232782999197594398320785380126763693310863270432077007380630801847540617265388577591245130548153196890832900942294328772740502963066746629010841996077792280610053827695387576358126903772970556666154232531677924134762336463292513348644054619295781811327074017032968985452211506811439201522186483776857329080250965732537040524654899985167404384513552816179399524798048823961185793877367094079618423294883846524372920432931659638068875272281890531086759087414169543996306368732517983755186659011831034072233887874760935195524428810678228101480561021026810514213180325491391010588852297247020411073946067950825173953866548990826713732307527706799097094919510507462540104404425074377345722121157454881096100322613143929429680677592853799240206953165930967240868992443304282991647334902234694338218020886163446328705960069077532143280191538965057910308013559284505606823449792719951204618285897267968404722441471877938082663013451168886021536219588575559264940909178166108687570774457103063410976098622544744592095815935575231969430786626150636782302586241741039182260198215782586064230913986465481224423753820171408234941581511617566345912726894730532011843361592314288389286062852621004765178080067386172801012407417626818911305592065054208319054712982627930055447262731556504690372994740419197157321312663790826807945460983070734747867214737595922655108682865385791644298439095434940000816803156558636963916410611999640335639903992326233124047946073434282627725008527037340867725183540167896628993912920447488215668613023455434294523102037154003061440118730592746936196976977156923308885385295842616250517383042389061853821017457897595409717429806173044476930450980099711941105308961858300319409081254257121289256023890172948639694243968475442871071165647336640602148933369638280926874812657041157687815822371501858594251170907411086623724911210098332102830232017593382338204720900474316161858931499591561173172049984734352789230320143310004546896059418443064923715967199262883491318933259049520144008179380052759531952836589875016205229115455301250764850811570090706530529238205171192858104168253324962873087350072586362853955377677221729344935670577509685081316283403005369622098056381122404056327176332118360792940674905556995262050406664369794753997218819669507836798745359166276847465914281186614733582694250741875325298830300119195491434125761289073583320705798250847888070276116723577075650007988537164386860605190015404748557432599119419343505860327642182539614955326668153714288529954764845756177681267976088415155771956505550493101283727394754932545409671203011919144957520240496718200555487438778566900657833010239798674078028547760414537458883922790368331364002789890659998993941635777494221307689567986004265426143999240667007757092617485210162186186613121426073095939605824689746934205833105072038478416525806749626117189688013802173216359307477570819397038329032432259390711396676662287643066232792503707391872927128199193443110947205099445618333707956557329972556547546565862503058025759987165904982868924947768711708421628952631112589174581552808660783752855239015744141537972322932139499357285393829338351642931397520789405588970704348761691785170771721500433815487568368116843503260310073374039197185773052673594365319275927725197691481144818950436821179697347966313325803271788829565966941926772755671269098765538727440973270264483267643937455840852590322389770720553588820558645197172985333830131332839995873227832553905386424327134650090897026120787263671602991555737026507314144058032532826754769221490470853157347296081518835216597408419225778228264653382751917522452264441813987112510050383296118961739336168253781172770529356018415066938899451237505410950197253255001142763086059177019366105135529595471650906165952064910300518669732784103597813383182323041234468259957599533394218284649179886499518940902548824640440300380548689009832079394957312836058236564799251419469054014374394129950076333253044448279933960372399730682343824343337358317017761038632336928858264044058613246950198455630020238825319782272239968501146280091363136726730170582327533418546905372629503625573700523316452491543343259083722645512409458373485181694527692386041786796530119445096569265420665400914399091623961409653130079942036707003058101393824951968335388041720497890197419643768670394749324643999176669993890343454177906533433302472317155178329131743969164988392102948910026720318097948345799031195665502818943174188684345680285273206058400815210274778567359195268618096621415960839035665155501879317387799026660785599706852967430011807571053225817498101776022394438082787063624812800000639806318072720464675243858869326655718077875822304099444423182768004328908596018772370479935426548329139246035204000697483991055599271918975966544243763747073393459283110108101417779015772605150828466402425924201118252217143638856901832624786695304830681975087560862866984392121726829875060043310110064865439748253635406532023696966784450807652114364144202648751550699635686119188389203298712717026717891453795819025514802765587256207885629192001394126510443464895752225218447359604503830080500604915871575307412855315578290279212055303131455286554444974167713278032032029952924814172190912994052867839775252369413092789042577760488761683397117977848392811146074808372593332836605956640201241624691508138161594466392860420802852524297347985418769964773765037666500328455317201934383763797035904483258649402782979608772382332641998101609838426392406868794757458867894021353342444354396105825807941712430420271023424481302290300677839943183275511500441030891887644582407738539310966988654200281751315790347428291834291134913849707318816582836414064970486184753746778386265173445924405815201049238337686767568400841983940451082500843905155239254598382762678682089674877620675640820457407858199194630633121204746905054487061178239448981462388727352357929479904081853753649311557096241861594579920036548008228441616700306149069677092229915699400743788870801226502171588522305467411818172357735966751701592405470673869829561560157258347144985850358265727427296269661866704479755281378572467323543516354818643301173313973642457128568645157958041363523968030616520457099229258325866898510415443735045547673306703965440169171703658001883199554043736697929484625740068750821030050461222340366004459714217376726364394992778740970681097250328650534689374628197094838969385741556788937837939450335966086932822286644443876424375385501286440921369290674750242026846635694080665778044725663097102125151301310374340356661561107334833900859663425015605579075904462379044551338447094041089368563494814175945779754651776326253532147952930670113725267481096698276304420657893873351348863222197364396446598878429794699254550633344516402858558932763604992849723895520147538814023651687235578716006858513172480642478545316760497782345773704240088873086604450511194844414961220240256759632408716572541657527695720913825152199663106565400674876922283442100574993470028570219175775136232972378665753082039269287463100291688561422976868010113698954689037522723336273282216394875153211649518263990927976599213094976929553924618909413457866987739041008824322570936353069117773793821553124974773059461480456661321845786357447854962331081302048585135609569551694403325702907451637458868657182729824251488213247610691877421372957938180981365368474399004735681639698640355384792272601496218834158330721357149378348376872465775051305795611808919273026155827867711231276384194241597612198230264654669851963071990663270633855415652961438718986362871080713584527296524502374907543105220791593233696727373286172905511506527497807686768135861799944012548225926845949526659948579599272843884119732358945322967493197853488360622805996913706269700459326570884814807311399011348212763347474800052297631038447317271223513763105769129790648974164613588985704758809672516088100376361178457722570428573402619297617586506912168802849562045435651369280415933396783090382887742495347276906008283388971762625900427352236110943296525162604258349128367999180059605509805300876839620981445359167554161224438129266445234597007794164521141384761406292263243744925890716650379094790505649326702773595944128311144669140949292459321911515471217564857732984338332132088676063705274384362116190880376417577692844259357409219395491048945814513505011626562987916952731989633399953514571118368883307774519091671272038590236618500813987285641160608857163914736316924399977856854048026874469926533919933021498723693459863084299231179706987561032936758169112712208424414678507132002798885063364232377514667435196821033250018100682636922736538531151292085829627364608995705761320429884684460854917046620993841458174256042242369603555256480893195754628511978693977894901383387644297737892913284515424438810620377826651606337055746877973221369338843231097312988249811226474603981595044136037071504895768419838757280078267295483258839208776581089083026905984906045334850326981274820558157674331604789711972164698646416803121383882975428189077445637952521544451030692138711900388653559668399117212580780889562644891506634325691860309266837203868552130558565011405079736551397426203529287752269392533019372653954106755983707139174739700573673923641627015054038198708097408959221164715763429006575597304581254053238537684675407235142144340127340358616520207450947720194245520344445021023668026182783206468380619139127860467627693827967643213588356817389136439079252604242941036838632170938085556187566005009009428473516612173664644933575128943910785039606943021291481358724454710392135585793403529439784134785927619968308464896930524373620705242124441468594676165324167775415474018273686901826182418187891481128899706063338478615647770336097924121501413563201803227108917841068711611950121206962695694541426850408605417003483852429481482161924709371086278377381110884279786434752296407177341511155278600262310469763985672106184664938376696874295554370571483201438807337137064375454799869046226003834539608728808894261056578466250104445571873697947133692431036478601395902428687775394941286575646879605989679170352104635139058615431778856661035035628435235604862404247828333217459402427750500189180556302106833858826322823756386891789373921839295287157342027823008760625800953544411818696110114387996624624791071082890994028359391314620714266082100876339791610743500698679293961038323286538789662607741822219383149723139386499104012717503804888080474701015865914211787073011816533949823247139343683793471759876648035808270602962023073395961545043173675272793512139377179525687882783818919179592841899828564510171718679503269309006491910614487247276055192053881099819858439878849628480981069198749087317166058043949205415313521160267063740287494231912973642149604464644352046316050070885311091432943023556405733939965497294618298594897664913292451177095518466328427054576072976153350439125780160663228049136527666961945950801856438218489389730794234414999304726166988221512934749927305572171371183144816914018274707667757274656070707792237726033100693467232183178379848527764730719813986785162007920058394887727572509824496755300090390322985110803551295944665877634835858429963142312851365945229894991575070864782563090944629277036600030784343467719880153548793161696494536235036274364505059500205128783893922904892173131833965490652084462367895831312473825907915372408459087731545729628828424405976710894811339422629747376197291188575356468238506261185440669495834909005295761264781307371642759064485634697462511918462374763858441319703541410529930360328776290768240977141140003769765476240714700789171415987698619442943078713186425557391889749872191495502043552216624069932049415019879182958324300549259900753172991351241511565227885867630673121927305135063192315478110365733938009026317112930525978892776277739734687210301096543952515972617582069113744831897815962647249867556049418405977406924221356165527026817235128080570291037514974105979720365616073835531240267723575691935169097236288634528578412464731091450677153052527680281940944499684879888762920812736761504760847738382555141422296094959466731422385582455568111738800479427561617618745806766434753325288543475280444758296343354869820568806489766785986519662069684786344183354612017676800015521917461339471613925988984031518317057161141046201581423913423411542953531788589878284148852687646651798214139732633517728172220752758136190564569373851244704735905677949783563331247618725427825338529901718472745223969564219314408180183896129456447775840092173114532786139813853091139518134765378558188532258513886386474894477861004366122827744498417755277350635998216907843244827496765519203661966664693115343632352464283971521725854608462733916462996373032152543622119042821816187935045682806678557408789437073654109347200450772531344456603454607405800969187421403434661970131566203521586636570957623549113400278784160673252473994688887211937401099668698629436752687163252949548147716428366470526871448953715477058218220984348125759403526044574507207123653708769245663251713897405345574989030306091099720643788879331054002104189866500849365410388421722355835823836754627986529791388087150237157725241915449607756044896427619762792493568699435274507515719285795389872156920327967790042951632370982150446189175151057038316806897604330008223199549672821376252566079537270563612371094674675644996382557030727105173399091622564903014719437177556661526969054486365517395668517936047950257272040168190898058236011779674871414502748943585099469499601716834662581776804842792606898379296968416273714932466417753102118513318595404162336030842058939371154429403489982291813341161268282241624470327264493160052450736652726365014409966906364600960811330452071288900805688097185129511745124088068890553424244920406548405857150239679086346728237561708834305233105901901646604223694665172363916372088796963564833465170673244718515893439762398061097849627828761531152890450353384618534856613300087385059863298127535655647124060826268762571366266668701873336916507870199841937216419784696348604574243493644722272121769415934531701303582210176228807307421332056943899259734291573322764674348297288798832006400123670094648242995756689606486333237383666437161596085978506440120285390395340912446376954788792495195186788034590678572575201321220887103122813445218950490825662599450703217523474490927823967668793422961397246346984430491897599994377022155794730934340754479919563683606652242455925347562715484962365744731513878356937143894637222142393865888686292633629616780427070194058312523722484522057586622839761115721446756776975861871306026662959544833675038998004944893439006310619292138612702645913281565697162607571379352394214135566704026090240463938941705976768148726187382495277529859565970475884823288788794843270954902012370094687801446044569144828649276417167147996528263611921960673424819720935449592547234561223497081907488165655649904859042230428990447977280487822180534961188836775903393057441522846936936802728420994248237445105324866456269161158074269047187263016395321466690777777379386270606495259524261166336173406231735775685174556342317588294879612995245113799617733603058766350230797409715478553147160553481917920975894531401675094839448168485886853341932317331381972539335715414868503114975681402172945209455811834711098067695817350493573653602676948162066662715672583280996277983087019941292409606898976308631980016293431218929772749193401267559753512493970640094388432535616588785592689194719779353357993216656929980504698645602901133812333260221175886815690036500137182430742647180040029662298161239601232444520429772438041560713672309165515845466839782478488007371531079967494001222641855755007093891284380523097440946978199799527869908646617244046801093807791579055329145847042071815640580921976685928820802015856361422087965366987542239698397987331673277907173245276627272671688640614734367246272212469847982958312803524671143129120665772388262246102264851253982025747838283889880564695328995095988160689514459985098482349452685748938906742292352306067878053427756438000896822601193122100841396734954645686159473072354558924792217234502734334993000175632777799749202157797344866874224567270836243535504688119527461123674993287685401140391682167883513405421296580236457446781109252636160642310539700237466828228957691880263294573453643092712035961414075865532765280372601002777084496500716748999026134799140520980971658155199650755527426560234075423575917550902897221509497338343105728150097805969967507405666619492276300001784939953782497919742566099271609123417690423751813874702098541467595488477370943425037517647300132251159034046560870673097334445172647751074532138409317710378117554312231559212309199282631697533032900534556817534493119916264051239373733762802124454834255337949220036508436544713742134012067134451030161592799006615634325228044581787334334593184448758272569957278441705542743592333042409058292897869893743994849826297775846248368034591927151780900164326759396716402711981457569308171400190007865316894427893401732263756789658924249269696353874573438349407264343025613965452380760247971795922638980180176113261481523632997559253386247852102161815833854668455159994316646367020230625943180958244437816763110145776471575983766077773670482688458799992712099455393150630597495378585154775516339843555798955318482940603918749758297393460505877890797142679943178223534313722958450042769902127042165764694408584661596199874602263293406857942994585318303495814148695041272594576812039021627115822054813624644515232859452333802306449499891466855264784181032192135476734259184858179089165430298512517878264941965010007197017356462386792859650842162761426148438963178117701029357377591342983637042372930822072503880456331877264937476502534528607441857898676304960518486482229279904040961870875619221940699764577199767444657615028885115855730675576526487268720442072727085185849330343364221235491605656323736740239441775204852281552821118868100599411964118541993514944776980011014273489297573992644089824334720232424030526777416091929389538793854034199809294950202564132790262116453071912236849477835570957452021275945414638239890132377965096217835440772516125852642246872818417000031524997995856607040327196779709332045787326014479999786232797931488557166431265427265342670991208578640239369529541174041341807927625639540682450294831439816773602369539951356069303535817979766387828981736310612923886261601551201922857402429191721141540637271328790995063606895307790105886374442037842082397032123886719838129449059911749133650927672175272842505750956882802547551323221950697562314716495485508925469763550029077904832261236236536859385035059553361102460764413633100851289183820777844614610393273065572399411628213479825586424299397440476322489233661914350617739317515888930929084456193194537451910701154669988658530107315816754705391075748973599060409172196279107882999918276600726779995970912517749832442373480288523501603103261926225716719712491707197203879837747110774791953582069142175404105097651400959492349524904298329829595864858385882322059095934020993403318704089898738955574279543023220628341933121032946023442131302245461358656847866925115443064400850404431207331073794767127309638937632288477434866251637308311798021809028533444414468602577372893908948829790806339343800412083710566488896680066234457418302992649153724615835547563212583413935243573988051321060418370149222219016176495159774712205980677440678372726506368315622955174719828961735670698294544814530828562739768530563178799921167760512289276280185498694524063503296914267145510485383540227952575268066876379309715523287525298253891391240856846992510425309897117072915224788667411512449555241785906499467887325047890374006618515944214720843624614021253567945178629766679677245196432448105154431105181459906980516342554049221531795140145292178218423924190806979251590605691592220683277469888404809891355157496584415170942823698991806001229981288095877806920179579209977003287040156011429228618733523890094106820260876523205977620319896816991410369436841763843108442939522093816336108871884233890772633480603910602612637382659035383893348233546212327502595012958155060382023604301241069466268821837541295146474254503340977868671825519332350713896828446115326136128696008336581540607621878590206914185940045331519139556833862076914684178371533580495258664700097395316465829546362429460606808071331617175276958710085937621031047126135704351967271311286483778969031502624247862345599348366775278145065525056376225441650276973585678592980394598302488770467236388642017389238940067152394592951172530818716230112531083363026261145621623167879450404715140972955373744132156807278121603834134282346252859672888328799475333402824846717186713745623095884335770365973062260943130860744539121739235951567669792504327090512427250225095845313688624455232965830894978539037530921464036374001447440936432959757539580341462255082973900001949399359342404209139760353541305721056345838138425901570923428316537958973419759883700844212299845742054888122781386560990606789295030194448886452792907948255429688194637624291256582809586595198226074280218465903167863320027657086159377536486279095742925907327724870016411820399046566878639532218613965255818515546338014181156074064095914105142525592590510894765230523407377902298557778838613077309654822710193742701952979042838646789426971317436321014328518041396209527109004278026997134563695314714279568348544604186454320267962023221073550981681896321506224631995979732578004736043069488517296895871640852664294552387617383766754594329312414334657306267478012800781254915281288676005389271670003266522271044680041157109531292883001506440587883297672075632033962383824812941340916104701685220841557846860014191393143695285819708492922556385586815507141606401401266827642856345719098565474323951968107813896633727241284902980921190356885735903394532490086491095850789884319334894158009593693327726576949485251028131114530466319122362702901742277233721359927213601282713041354428717232602574253615252366371123006024403829316278484294407979716402713749452723939259223371335722535787731568887194983667641261509864747363114400601157492342519629548789951159653826507149240413314240053340676886463648337506730021778656239626275634503765409397226108601306157162779170648199275758764963904709149053378443728903264919227667686995538626162596091431403879291302828804016270575935090953763214543570892021948741998028709190441675916205011382731994166114231493084588472049319341209310246546866798260241255564747779252772664676713887108775462019683777710539171212308322468968914299443738056431230665765354693104063729992032155782200926190540300237932145150647993119010374066724494100187178399922403100006713572391328842313119400225040002340677742246217572186692809447103875061540752407646267001606101301513230115465291248358483885719506813491546581826330112666684434148699966218777930668491318229215364936154193378873471316300717833537714420715951790498840817065718597343540128692139794514325462334788334133222154338171496834288871430786832880089018881842651544671130771682680386306853851694567896379984991844753721449541270901748193527292504724075747497129229516757962339003469064144759809912856468061693319643575783562477715438312798187617201410297200257258506863982439858650690844623169585204313014232120464409913635390705955151192403044360499108810025234536170182726027225398288442248335862765630530171731573176192201879345799080875646013188364210415870392416775279863694021943398715594553958394533890898635392652075358581764108885114567399434833635321987118971189218918621412431842255007757311690101201882323180128232198418308068179069850716297648850196075569903653432110420866730717642790685867829340485772341690120880523095050731704581635889631252608762677138648502039757074940526010063147682436451701972288353702349955464659886348201044841658522602123921704875511266985553689008911079284791447347354381717978487115266031070949790664100149045159831514417886587875592207369202847068570686084312431000034200869874644939158297355489902349354857541282599355455233825956521969331795185287484154984471962827352242116209663434489076677126335130382403846083082658618946599130845157803993806167550120838248825273632540131499753597280836634886142300288348444187611302202404784290138831483221246165951701900102898398906015674246641826123242919851182330767394459368899685364653342284500517317780081134889433536664369616650072578435590454491362868655268662897594531214026631289380080158245220279065357607465441666156215158134855318632159702535943885708079316724595435660001552152935020407423332269439404594528027106176706418912740428097609458118170966954942549713384769592404954770041345348293434251285481241656776063372665941899691096361886550136812133440909125561337464947546228090646146530856969053966973872976344330159092061209507236779092261540730831020770593273269150003852541395635117024983246599951903993404024256988578700786265105010183908135707915425797824656013475195767251634813775411783163347033358751086728170400846616028869147580496947318841436697780133145945573114135839045590025068022041759743868948170968343307415405382038627218846739882751875797537281006655183298741775266756024185210273608816060867928560107878414664846885100745740410631886469216887454859969294112553438799760910962010033947241786648663884932201102842195883491390552992978277021026466439212461332250151542720981153321011976534932950484036257455019738526679848209500127488785498529873017084193109298582660219194836415610043928386594745127021146503514305921774110568262476020827277779720140681072342187160677475943480061399612292939641858820590626329076659238315947649850385824598578867497008526069791934897529872946967242902623603774432157040786319564686404801858524376719277423937559263944840483861592000544551325561457800374956639368324643449298070028157771424590098867104909747923195560066843016070887770737296687358850453106415861029683656395694566640841728565556540076072439006187711101588396856576477861387148152135135186775029767024012391731533125213627758735004481654763184199601285189762477612546808357564494971972709353836105150109422027028096905377477873482894922243360766155820870740854268446594139059002379853803470325850218809385715530521301422424137295790719672379405193819945639352794886233619862132829362446343947864942025741387760101691127133817286971534416060900997092911294166969809910884115105609219443750876780953074873949585523116095226685000008980578541548563700430114478094569378232799120125152721935134846109369472843686171963857863860497345476143980248458056547473901905762834277750550984502672920286646345488418209916513327778885732038374110677589831595490119268722799714600996649629473479644082953798960702555525534397323434731520355292001809890732687103095607695892515969078215702944765458384959792146504292153698469863083846319794442274221212406578492237250862240432563487710021800443679205455204678021193305669164820590704285796648937650986799272183440839648567569500867872445810968923298283506026565696439972226723990148855868448839537487379965184781807659435052852817387636484769261344772904287242022526514100813440562903866443295164721123629436457255564510095921330040733990707880121544237456882112134699198462439657962839896823788310586677946165226860324363204692377321676409025577482138161445179533812789284314036123752168251507194050327130363697252293638004539201678091406676973986036557791980074168381652078292033401135559687207844551013935239668547703705957222018193135404263251969439594243100972466764516869224482876753145290668618768530330101018647311272611131934942468914120100053658750353446093021569943768664380022851418075648553317826257883860193339699516519193813108323953947575128741619406006597465853731913175213854548681647464467242849500736595615210085341221432947327714152964564880418676895229413125603382712604989118375310625925932921224370173793568971736166977265014116856997618982548995369627973996414123265090865667460886556655283036359469660020369977551087387947981162158748284310013322969020642006537057203870363546399711792516574095631074058633573879487312959750641831683544319592910909841443744263005656334052332936925875356079745358609442100629537203486523629610911451728805596726580735154832490917780272634388177614544099794705795817412716390836552937599366372917351294954648174733465900906902856961081366061528700464953672757964300816273421701113102515735708822276132694063699076454764568483787318042447772293392672823408678672564795775719726225613949603913665065454988245125782425351391771478448641108704883837296943457260811208010901369207312854990119336520773157333088158748329761970946043999295590956868014631390195645125373379746849328568665211303942749666829088925048645260734301860992635566792891610622184490105165321292156454198570178351602178118007307896610206734362331649119053213709955603799195181001435466807297815815039936352271825187429506786174661025069937899889964727645252896475540547529423507605670636283835996748861849625191311745387271653459484865933761354665375733058400255663630752130869098596487729890829490965756653669571304255998908143250146312133373217814040809055570985933170001681516317042137033087634288512884734269820285435831908900696160394548015705859847642710967269783904753106879101530867065477982729414444949744075255211613319437170979421196381318013699407569709870066871558681897393577871178063266446836307905334947356235856478944655665926305919976615556083090247884973268631528994156544755911659455918373110934705304823050322955778241852327275967938059147873764949646731384128536777872515214699723255335663501410433196722439139131919437207511597314067712496770299007928694900569192273178787125795356439545574998820823394395450857674721028861444793733305728055049602193553742367099775546394441538504315292646838977065024482910346763889931686596703704909503522550349218449077191566837631306665004878230928685203676480573050595525764120863235889939183086025370855029092329555728939873570654887220871730361825246518433807941301096070836441611533225021879615797401843091026416422195895409315706431718093374889786070853815319191381527423795283626019505411245525707645064939383793644614386949569354078864514640316249467722307839789844570807358272480639114844752953441553001589780366063615180353203350127641985648720197549721004608402894994161757868003454363539160668726288042030745875068819093469250691869655575718459645114199961386428298006607081684291272519310096905214022243727030654971305018490764454356078582277716988420936103955924194992188235202809172951099564342071508707173519429653480594409914101311001963450148130688307461062350770155437352438021932941394338562447153600032584640908965511909416080885658754818288212362876946019491063047839826720935233087228621202031270836015702092347711566757573972304754849349301678464280528948067233007241699683830157174628931659883038290112587961707769669544319419587436204303153495328798165961604828877613355340148121545632146041075322424884565421452258407415329663505178838240319054505670063445841479428420716381662346314601304629787298142473142024099277919883564453392975886611619343563345445581248230902722273952596352787246392457821724848469367488039767554647466229174166266191254863422615431998935172313786753830827870275367781886737615255849121513765767252101439602196864858346693930706291768585764499427946538056321425587615805889973053882861456895907189772400567565747521476036827547963694993393201757159732400615538263189175769701985522618805222945717449542780691060448769185498119516107319844296419915083275535963586124956825563414417742516090476539668525384686337943742363303865297525882151406503313658353355522127362344430900243770075618289322852576411851773180071334143529058928930542936016232458646816357187882109560001443309808187067188505310111316833439410137425576300261187058571367216220386764303364868939423268904275300457257661542303913249295490877813701816001473209534411223731097861679570878507138092190033235515832912484840969960206288118159514495532610677111989588251539709162567346098844270513630044377285893254627039923638159629326651118850090766307016167912826851112842797545422331509024857466139409009577053452466512636691292659520512749528600771165501453711277513712117192978243441686082376749609083242527103304021563644987971591015395972935159748100688273637196864864691594052165179998709035836122734792492480678507047109335470129763757781531609843482961267391435608587129892254103620592260791747879008218645966088736432205478740056303280839421948562153689327892658338995010907897005710303505464798734771867017812128718214591874279617994059080931283718215989552545764547244678617859254110890055503616226953671977246135367373722339687263192029724184558658559579427350817136085870914081070592879781264876207726975177475765806570311157590496810180823767463035245091836268254833196992542203274192906594550503190440704713113864494150410709135915476891034796882640155681264431670784812577125312067242435092307788261643156329869185553879764202764658389426618059158145821813870678864715480815029849941535701562462104908641007435100487368832085833270073637661939073581139969211751748218885182301214339030873000084011543215238326623950035770072245930205635715073319450967036417132137942978451898376368514002265081981632578877194350441907363141536361045394025400882181074374844155338431893819007898112334982249156844038067206846792376447734660592826157109331880149415367580130270946731185511616495869283905845304850078406928368784005291573846691242555688408994045984271167776654808456139099887371397711692345612190453238190471017076287355256481490597316420551996911643611564559902782701913157605742223106131962693298904348328957594517738937463300781642807754579461387544779535616129223396948556180669932528270533073087263873244726909523224821842775912168184244497478232488102512498763221753942109385605934850955534330362226293943134201982229479351601867943265203683604998105681165798436303165868681142424699538137635960018181529437601411237645965143708227102786905591539070781719820502778434400272475793389518989426888346176024605849995344313458134629969256005477168969356254900258684476202954222191229128280213729314926955357162666351553011049777136263332879717286605388548605516776113793876889343389082264477017022268494512537937070400748105627565989275887335882487107479729983172150760267475659590625382238679022397172182408294740416237626491539311999911540200620548178035198411816974258297897091930923229596926176833362007823942654789374923064372576381633597099071386634969596375211449046399112467781438948917719936846195790650954762562061588323801597730685980641132670332264725663843491024844478726353587088931044003621746691139520967363072178774786644397509639474373328108965770420339343172293206034446570329356933074160526612684727648680922975688562881951224558083774842715702120736417594210659010116558778681605753829217437553552061550059756381184982420573142639690933521697777343742116259283074612577249331400705426180232833098285511715179894208381125684948445932105155776608815786010240039909758859477361033422601615032358808121014407218419167357377237048130106383778411659922695651312075223785252684287448668310091535512671346123939849186654614295411291101188472687162913794526327083398890590773536870067045943698626199500393607234133807655782863089184075529933122088313507498988798172881895682002254666664322726898766581715240488499303290088203638616028272888614958410225557757142570268590854264884129404481226529860960649421342702007467690502243751550602735980652118092788819545837255013770562994990942912891186208542967696433517676446281419453416837013490524200898447320565451547117021233108790096015046610278346397054788585738675800548903352129296030715107589434580820258088090710132406170101641515259235585430009732488075554497310225386122495262071054130238355423973956483567595507850989469125818648277792830608463599889883263094367967931193838852885726006547512061400007225981227913623004784907830984659269914880223533013736812920288327908690155332873799238806527720337910467538633799127291815772370080746738988566591998637729067207907857575765860498441698694998112693306591390318106466964696242424626275543342647296853550585466697786013065909029771028896292553895066834858960904341506899237258945650564959829368403809509592165102853365060526699014739690730019244092933995548146102039385566395340962109292559440620505219961329398535283362587619392520395820830987660021423085757661494003747814796367878965310454141740458278089767531293701143218292401515712773399638462905403150216001666269345848636231270811526969676520272448097045566403231534589786291512807551765885348791958781688795195485045668310142335936110738288467396159638629755554165082169001490084951435067573493588395541982188350584792950199336902925671064977939287262843957463239886095013764712308726819290771370085937193261053111961748876463728598126369215641611617049887171144234778715330871539348679039115767317984363713564762575202846781482467709853164461511615549508497984798705193600318780597056841332585113140878063978405231482062934569858012512596585835283706427582272425597748055017536287954937611917839778500783972019475116518171353579650021758164218498217579916971664653983771170737411953874900144920883434207467083141488119715313487435441324416334893457633106485103313766156476751856707784712942425613807685739350994425302234628515424623808113314557098122224826689383232385374659811903920878222067884097450679139200944702363534861070071405757848004012753534752452411761095893112480331351378131525032592555901186615552284840370785778988935432126707570830112130020804987397645850110147490273106844034165292415579981894859211617937491587015058480554126530826951094799068540878240726654478203976888213686785681363613667742723230709026156867436438399782213354357593570667771408410934485399251289434710478974555546011052914310364836242136203843626669376354574336058834365548055689412911103220866906240125798645645582774365838720674235038997314700932666313418070307687746475579815651392426520983507883471504798293884460977698341019860243418774154715686867256790055087917686973961697752462423651587482466539635631179579848653896551371912719860190093816440690402439221132098391473462375155711639055593828180583896970662052172329735709708679448464274604499446068838486550620235619804715512241664004114772570281247864891640865725172226313996945260459553490394635268720610464731139145958224017291966185769721279607407837491588904980622482280917686122311921970859259196765023107673060570864583330208425794819079703849932107398061694475650585639619451582735672114815685208434030337360057568053652964376329979567143609283850353938732282657620649335609698980818448477422238420090719779982639580471144838756076075427076416377125948937473885715513978820885962051520078612162425203870751213943244360220740816446108669410174972632920519236954191815427753917108878873241034317080924326056227699399306081244844202500751415168740930199897963531004297647737614257327111411535052502799670997563314160223346314405935592242667135734854836705562671981790299451213916852047406918887183920474876111145360705184381953104896820971842632551596346359752427724013835592013445702522927977376321918378157701751500474811759949834085276444146931984941480900720324853948672613928688752444380202461344026108688362975402503135586688440004919650445973737685605752864995949345349336079356356672290186260092873386488336331859268769373933440486614638133808492335283775477792264242926734688937482592102779123403179417024558581384039499130584355070772872954241633419341735443075033213129677522914486842292268266306366653565171812021278855605687295471836592901002738444297321818726391358142430761707795561837240989174892086243937048840362206300781643476172478847780078062521519136455446197598550082555797627766452008494163053649949929143320216305207313563308703974040366504910195684003129838598600751285438202844960520440088025883683066229725367471409437025730546680351579447348878968333393702386115664213950538041173043386514215429375234314131795991968091444057498925742496215020414760513204728454492364574843877564340952258453526022178005063197781333530816625823267109297164152673460026540811707115421022458046793380513232241787115208093198183233294584011098764977367174421947024514669839105966296324646866720750962442262466145829269694843492729564783991479795135330159997833082491340724484723262036720973523461101619325342512579441639264951219284383707651877235149960590942948319584458312360366779890982308426993244554094244816569856459602933279418060073170733410575751174551785468681125991295030812441883045537214127120824242511915478529597614055915952123018761372571559210675319687893683682239453536983888499221726121763503583815569524708496293832565382327290929098692452953398503851118820437400382068575017799526336521347889018400059866618408326461953414416913315481009711015721951629775642298750812068114580109827509355334415521129737693588395641103750814381433941489495051723104427352600162336516036659030651409243240670229225721399004282238769346725442313454961703008290327444351126103035547390832297346340656642770503530074739681157638121983395128005146934260871784866028134824555945457809554740859443576598549527819371612989315660641147420039059177945929005151256180029280298762017942585811997596492741983618680131368730718255314401647931770580586608280167545830728324784330386080396680153620060851175242548083428505480234169529840461011220898698253132424982305723571625462188953855359114302563343131747067209040358912097957211022443600265630018177570649737365870409047471937200065302940872669338023448732969022717869823203886917558552765029508100348538061504832646640432561154191361673880429502267615532511424787365908556684763940905560227510827980807654935857575629843196372434837555662674440822909794755035356026310362403964731680402827419179727204489230614950928818645156334403847101513353862768585963187598239837400540368425274566758318682766094404491885703339775616332387963618358289905986972268162304502807569881611124017485898239866442601611044620511388871827973912425161282502570130808445297376159961678699459887328116924649222641349983674617201952276032729381540523261959701996582010153426652920449596865640024667069353005799400678491263766047604451454138618784717384088173088345969941858443078415681775760189411482921186679864565576529665969309238902773435299840841663360166734058656157397204281676317305002526118386085383105614019870546869529702329062890618505437940626844413034407381955128088188267414341010579691583860820563975088628105678838985377993084270157745782217897905338061055087170072856363955909617391101627736558470681700725024331788550055231143623104254651051702155763885900069773278384870867604133863135394647671152211564902266620432859615476606196784821861822105998412701971223707587737260400299989133362288894685954381097403957771470547137583435014297683706050183258968990413277405580621307346781040170178198845214336989702472830130114710773935343777639003831752895551603108265623559348963387233196555249619635346547270559580572546933740164118537978056988904390279735695160076082022263389250861515740774965839259847742014689962800103233615240124103632894951681814807409704547770401922126417405846398591496965697776279879801057269510361822463304514930097413067505574926093140051274153959171279949745428274774175411703055657676935336693215962228866522455324452633946520974620361593030029037368926143307691152593701339460213453954614810112869146446251258371301273698158815289952556430883411609792449662259489880108307848365669540999851201827847102115283811115514388747250259520352664180849546676625614750681159192304398813347525069329378869706832111678048685317753859710153372755175119679707214448427406838981196430249846265062837453010745563052934776958013510853586542581886832162696349554328419995253430246039669976799085505812546561900476590620297335043306870418116409839458555115162751659429779152847968668301717425885808876234340358215484311655124021043507968702950063315354218141784921497909274546907245162608585820345432579208677360251115401426395650511488183810067921611329900843313348944335273330002977926659230641005556506361140175672221759230371495471874026434264765693619021562846930559281910704518132795804301750082568944740368579994913039238387965636480750817382454005034502931115156146714859932913967188191396981804569366739307712234147340239634392532362467752542027188072293818072972348273149976896259730361260549982752860974430617566126782210811656222362485179104724052491650355873735860651906330364008211243193702927139367734532038293676853077518589992499875198676889374783146603688039079933976528399742654218746968719336520875800937344050599234572297221197546086264275600601995150693154591634519439561525636790487836137232304993648250819389020668476774952539667933650586801661293732240814766902356041853836487966621735101637842896833882070083233965698193688568019816372773276747742554079493070230663599409091154452375184006953523600756848999266164314488113519288303674273282828398086067619439954821671911657329922408345886568544276245606464201399169926105769743274634737041395815712052855982032325502522671515745744798695027683670492428479388142917598308118202390983221343861973815843628939943738758616969832825373041500610462773325400127529233926592980274370256263806350374083213330647423621672402626058914602028445957804345914042649399503850890098795276980637991490082067853162485353243431751604415731659953493296919403099456454401705733722657686042895452278175286744650185029286092098863964804729615222701056191302118651852727850522883253921491965703035716667134805525033199749054010456829560394675853561127051651321584266086218031149186738616383531306793757214987259743944677968047630897291538776936453771464346993362250955532938734819493131689310379047743002669758586007233214888258709214936786177108824755197388783157886017945672206939971116990870914327852017764498431796270402698673130280534237090715932833201185254784840347226025356991676378680603550217624212119160903754562614428919613282517888915511005206823119067047500922794902364052712027721352417991753341479788914119505431280617061102381912901392339805289311079965906924441997872265194228787979911947640969879260479331712133232382274528403540758576379813186048385113942073860396250917999191063045056674213545146169526330976395102509688342556889240268453146740986327044501932782182342322300656197661526874013397379051672492040226930658834154973284973485201217654437181988892417358225691902876078612843606446792756017023060931656858345611697810297229102054235955462863596959995079869558301404461302485047404682318018900764684318821899366295297650990433744785837666802807189423600535595612729658826522836881755947936753436302496422273462306554557711901949632682024077957826106545535293507329579114734433953218504197399018351166344871990980921875275822302582958468778621851243489419557974160878648285160944737914931953988413568392138430509923310493219211886801132456573170869057596182999479249829335935581876088433612611068520118189581327549307095995613381036114707484043351746454867763218866205458460336888885594056482816162757371374831721522916206825591018815269515059600798992927714759672124635906773291459481600126649065281750312795838107493616981075114423517995567070558146988503355479686328436601148937543053763804982113218395837900574851850504108295856959785191020885956850857051010256642579449098963497719813648724996168014487718146775816044487652808184797404295580205616631179852296958265461304733041474992491639168809556411274916067416744310201314782417234374372406034003784871748431657190196280751226376171216203325381202313380446769041216318783310663649462663350228145919977264324945898386645252271525506375019716844398789381516626432781676410202329787644642048294173053167911541572414832314485817534513542800981489139156717090644512864432118658674742968947732362110928482746448433012139733112724499989091676575600350917873044746845723025344036775222640556186923332420718540205624168038723813392450150883509104192568595518114355241738960384235630370378878845095676596290582729728877457660642724614432725688845440494299929081422186461697738950140496798964856251424034499359472195248385169260491985915228159424070430506845548361647399880585477769525826509687396436999294716225196660570064854046722817248050747897539497363672537920076547646538822639847834821610187729052314409039669067144093713860868715396025349957299979332176060716310157633395386277412998736822058403950868606574963713866054684841703459436309421190384521823666664898551005452211597581830504651632215996217522638229845818583374472910739609550937968144265518316557189818247721028616651247190035267093178498400526592216864331133859722982046563437308128777271142362354269070021274826715330975378497549001800999347345408084307004929155499884005302205244337300725196052922922818017527297960749532185963889625176068845314708320814842125275045550537969498276576298917488225677834509834398219507685531620009695215066749561211856036455884286511246723649922525954380996599644260827958820899345659326807742999203531839452356475768798953097472742737247460580415785897218377637931205771609909857224983475915048941708959390177103689260869662233114416106622725468435615025982534554801926364412784609628696247008893922786606410420566211098577894550691945608092836889431160084692480616463051615177900447379252551503855882513693972397738367355236511472425044359499042716385617627762590372172762871085900895274107043069113389970010319162694573642638928112068969866879667312272232142152831653817653345705281345078876636447175801461775152178318797108743130371904561542558086384311539441048650358277372811991449143168543351760886461471232562873380885264036832880575434562123496179678084712364610315843222756960829095458601514217618469551391651022937796344112170642795124237816754796478974257021341757593845195615735139727098938198479343672564716288516473729683894914982737646134947257961353094615021191478361479033308349953523275132897390950299220056501317563344354874120049924714400923761188589360334516465993586420688511699916646413180815173376970044048475156573342601676478168368247549599306839802621994455265559738145907032905759948436757432389204317757205168885623474959465425866992879938407484879878151294798630284559981217400529992533627228967048828492716631597665139239822294635005115449744216502042883766626735439258595641099074714276271550348284239616630011720707779905161386391876495126552358087278137759051003330558963487581251467953618535177888321294063805915343489571217387575802546795915342184480393534747655459741585999369420781809896268683305579244433260817997826437523166681987603210899088748692101121151140911200079129782810724284224647602863828325724421602897389684413146678156493360578644347892328418075415731950698707325428539576894965703322994090041573009924455225723934745771702752315743754819626344124939850259553949885660123609006650261149265385459266319113938839798154740053952447370029757702095845240067599184363720262452202069566237657827328722759305549107487156818503891953475568846549947324853586225999196541095412693555352735377061672103362167107108442967640061852293269321777264799808180774573431514861765521155092070580751905866680107726678304792692782692332185315492916591290169701408027247092258943811362455269059779068493564149645905209535366255943903988148640182746708544761181586153522911242053504289270345661063905980524614207889184244067875286715967369832655975576736884976272073858031478195954628471103408103611708095599613735456339754394263400503293962021734306132460006155152953404562780444650088954500369959836983588699153161940608025897299200017957495224359490343817852913617956949585729527221502407896645433545435073892624469992741885264087975316848770159890539236953780003072023376736743819504039415500716675881225780718457310076937447971348969310839142375549251954668414940134523547643274657125194794548497590723085479963541794184131589792372846692059371506365710662529088661083689457744923541053163664480073474737953310632793724414572462129777294749067630508817145643057934519777391529156877821174819592065040240044967366945885186953582186479103090196138918616665659443466465629925211311492988876902875143524469234845195452016941492071998482885679159987066134111657956987245709178727244618319702725064172847786031021009617461091629942350323638564965575218979439505641023725728800441469340075531788138966345124067404503008222743659826282102790322645494681645042896348055113185921502324354332893382627577133427900298394675199593825319825618269186234072181376852982471736137724080430865565329638212727000736778447222575086303903571965165438663304722803507331082302511362476963308519622466959281363923440060753836729720541007400324981193183441864685565701355698096242265677834838702504277412181539086998840195899726280746274014387595732874923210329299963880850540571734642773317248668440593509466571905582851364307898657041109202725255336015720961499428263225782768465938021429589478519414382626957596961874003690236007239383000963719499130999898868952077579160614336967448542829002151010460913904707519317794656601453125710827202696917953511460118085933740563509688694089103653697189018398593550650020241548206306150230477427114264104098175591861559711313664152278734084581490228083126245832974306890016679054562728416605209694557931433247874773547106552784198632561935512233369855664976182206028442772599505271745300068059116423497349699479620249058503016789393258647584384153741547850128743156171691474338049398531238064902638358445525138022414925680078623807809914857914277322578898901442560890111485705359628633197597014964997851232232947517539774836440158752316699648216250602582574147439168549510207066042622783304024813170725890384822109040990437260075577641760454916660874517527703497309892033909240655872006981013291261460356886601973278090229632080199770717347431978589766596502454022729134320052257827376601434856089500129692145065933876877318667572478928325154090397400449895419882609348961998059449184559860716230758778949537650286980596479672020042742791655209400085086781174588308837750136864511679673775818803280404905385941961963808969416160949680963833407330932418962915061306374567679856996468153967872061359271393653669659900167962959973526924999048804720658388146496856981146440730885313301737033651391761894476650974181088227438715589087881677388829774979885984879659495047551775187472979584529002569328311755893311496547463323241058500192220475856915624616680795935718444942785388887993490498156843982627760211502478983512269964865899225352100404173501271204829979836669291655979732179846251393670459906718604216632770113250281760252710765051485261915561910008511343816776416729415963983526453970067754880213591162089248463748173296581173795377387265367943375373936406160113850031322060264564864894472994870157828270383313297663804918303367897205009328169237459507472206369038174709309454013925087994434203956752637402173654063482406944444732511336795627391267037505857753354209069724600754281214396654651542643365746803651495758551521262140543006194062220571805026236899170777733334938947918948221033177277535569220083614410511306398626865739483804716756361303727436735419492632484283999038434706572993462878960537337369419321496881635604088068632171913855870047899319028000639897168263759327983668577573097315182686753618182609190913476757127301245693666418782268947193199372033331757260521746753721077014467453649393852089591042238074253185049043674777171087483764548048636490527796112117343661224189619516597014438637751379894896094292268935966217715539192202607882273740138833114003594310745335500681560752816661455443497468829037851851390249309018936195047061941434776285376559460450868231021012473782251385139600883766868666680177298012658691293990710361334668502808133269563151933391560022693643529048694359490666231966054140686548746074988553942369198376734219965447793598541373174448436436443060635285109898065923864576115745216181533087457378983271086548588310637518525861247522542391701939756907154451284338362781543474869575153808615557091403651351639147652736409842877759976065168634489052217641578217614139991247065947679802318145726329721418862368711269439030193624354963313770795920462547625123798434456951472041093485119986481334785350206545309643549330789737128400863841042464846625486190635344956945907501448393520133814442350695791330464795277851960047854751491904451077463507816932034772157057685625123955948751711351544728070508037323938700539475615927330111076948108144803299079921974771882528522583182306256865139478704646870726088336387286345508643394707647314001868464842066253241888452642462767513702590192318380559349819529617354626001024297378552856129687944978286089013871225878478184076369478927842664597857738013398109496768799954216233275529610557035068502895372279088827669702010198166925145323711192511972785844955372024886745346133750685126975939836265735382358633748973073090515694507696905050464305832491645306906799249771033964180891160220265231356886986610189340562250754357043116592082059419659205972999108213178790081492277607971841407056353594288040285675568354573454117301078310398269385328613045971329687656929095967883035616857801054028285446709962317063988961531264084940405246227535803024589408687078608923827295438205105072076390570622862530441366720686340976210125935219849494526516350425525466065678682617220898980052366798801811114252176728882689443975428225957370915056993038573746196978369248480439537611846350589853487894155843906351624657524316378943163603415002370637764047873097348835547578192277414848056223573756842086895177196482927838051984474414485041552319895421337672329762767759538075404831930750390587505401056743465498555172067639197362748388366119424909537736897976119551165233201556051121703009119287184880272318469608672814313740257377229950676972449621067876287863756604379705404791694049330104278935652478303494313481514686884713175781028184996322882406165909520658023660592250539154310330707862717287904003396415277685215825677261740144108029725402076945397101018030050836045128588613610282909284886047720655478497030390331945782933456625322629563105598733879279993513341932410604546248160078349250227737099813383465162283431333147088195801383047391835313212451605896996425568268669842216577024125410980381262801346102607021738851134116103529018671656764204476940773894903608782734235053738842563532774724019675976461542339797616716773793300095725704050852029893595121547331067747709478757484968433969576321111481886804359750832129837906028662844479549028198626106544208861685129914729334746582860901172077875511806039614948478592192596181220129355186346278592462019869096357785657597605636378530775031710930944856757407678250410947591472980483272975268126118898006588578724495793455772245056242217850855996421355834205794484838083332792460446803752267813084651829366093855350269814199822909294085499423843150365572752741165839018055311582769558304110376809244693149776634211053357995570106394917954238021106959104894302070179677020660411654999933278728271301359116972657065322824153307239239414996751093636567601493800702676545669015219876263073833299190915535973185978939631608253970109934131142061969155945397150796579637451554709775130951296069003093675727774801938183991670235058796002679804696098023210335137253264570080260404622445010357877581981632335790732586879167034092823588633343561789859264210276521685790881821174718528566211245582526786717559347109193402301840005500926374506183144304537357928859136532071671646250721020604354138643005968219068224207265449210833307636200197920285073161163425966985330827788057737488975381510334070553889854735135132162844147618192520390247957275554644131463235662413306543198589837470545668513504763991993273317204713182077834061720239768020156870938202662408081597807521209051038396894700497375879389764500747553514999432672223454705894847517814480449918890691403065129387209855343311780416522876286951432033878850554365494201116963519031488432456107537822750387726869483048892829849838448133126911271577212877961110681367408939740938004924878556692850847154264041154740891053284159354537513322783469402753790363243633821277024058333698564366367358719162070428306943645747335691894643897315303462536581931762745677861096753670079194936975417032760385921296111365353166254356892780660918209802784465243597139906424100820721121756768969506464693203616791209621246029230555329151954993277882315205045349578425337230974881329477317667457254106374936527490803822760732967840916957926787069662493829644852048005600903216271941562243546564010975662589024898443613885523161342186398482926068794448323576121661813752155833275570542010094184989022430788284560556987741558315661304990403557399301480575846946403138408543314092419698238181335836996450055248805189636105368109857248252317306548187331119248685979045597796920070052395149129145622792985303371863588001555374084530857679300087018893996067821182989241403252384998094422132770213139415294436115766197224940454389651522688092128649736153561626910654971293520784023310889311676825936781466545689058421594870770479032472641872837160589769470477924079924031966737988239439944788667692017587786913370951361053708323704783815948527889219289267376178712542381305573010235643853486175915371604536828304889645120438903445851635472873931813821464112478280815735374602674509278848659116823762092004687348561900493187573582102560077848642770538568225988966924850643689126911165005061328676312519469869185717317310379593777564590935084437222477728244515851737494624367725657237285035880905277026145071015719429489906493679958912623650823440920306548681232810389071896173405813107466649399558298243335781217144474668105958401003546311610560091093456115081427872966958054034104183644757643756593527670960980744788214569625696819933886472689851405572814270464215656221007724142812251686769702970414871127989584284777349552136651266700125029026527012479114158278805943222841446796992578393654635108023521701264613319807214649264751283557800084803767122864309317687969992076862436716258590942626465082639497900310600420327642417373114275748069670574796356868384786388900710405301524520579358064834774494186110402664640539795023931173492284907818830236889586724414283323760046956738741016316082731594573300076948469231998727009541544934041774522406159191169842457027100231356789496497111690209610743839776604644370907628015629899781272684593705758822269971963878892878465024039825448115122132997436440260390393783677288977688044613954999756203069414640139733620451417839446592448687832642661883230938314154566774951181602138753023029900485232793344609171192459810810561652495991218125267505728308474924011587881973371373706483009911675270456615382681015765561634916000472824977968219647129760124406102658406736558786185491855552327552027298731602547197538268015399953246532632543246325092036159858717668633068983337246457572234177899019800996612290587283974537300210139523092945676124555250188708436712814202682324638613414231171281139548529793987260768113025369186099155851750914636764423694743535864078042911769035193377099446389975778925392563559356409876589741056440731587175025633081478280065155492118191360306387150603910616732350401143392144986009450243923339717262088223034402128354462324116434176322787120028840173328097236188607886392685491480505448191078147106918270693071974654415116036056959327718739208886611551264430599040031958963531928227342552301333506631054766505244540690594219772542679389615858834475185645750698090506801302542104934302374548383566633905317695154172608367970582393103680721722011000052991513520895007324394706274066053867548555398975192349975774150213617639291960797311887283873393177310668034158463354740599914505217309474105386362028956777425836985855598218353800500190394702844577016545234715440036716953185036968064425183893068630553616015305828679260689228028685043238208059305452393179133075742509865799384156492974132480354891610100769986622005502535107528149429452603851811843831417061315455051342434029787095343766058803373830614338611179782037523261309325449239554662979304782369676007187118434433802345178977276462819375432629543849825408229005280629474500821908520117957284597986319070744307551810183751922018983826209807565775766862467987207346988265542303112983314711682707115280682617390059820535697341678518084898303255569998752313874896207865544029288102373495956999470093708049440946648376711551176138584529507689342477069396025822484916057314034354432388288856954009004982540709693620037924023217469850498035346261895147187175657153295163702625764598465996534106298607711920560706322042496892887215694249711110853219674354003174444833919269704548079736437876925646771502692488860513508576269521495892769296968245700468831423527779149590086754992186990476649624120331149519085428881951975873188863823024236593418419432056609005646286511218374229715305204489546923663494225305415859778486742421241434832466724927539318517024052389280464542311971175524819743564866841884939301908269098984655396595380299444982168854186689229220686814538100357536924745829006705045162950020798653503991947195365613841439208824705101854665022205447205605073711664292959027514197763991588458584276022215224426890268324949443929050582242610072448286324247711539055934639937961705350595123600106008943572581850053619332760430221011627587728900716209184941720534669225108220454530850195886383347382225553202567699620323679001000571139725910121711254715550001384344039248025690404891296818934315285573011264142408420296213249975851595243195204901280358363266728092961228613213585193765118041287624254623455474115269850847089828802233733179408585526364875995135593449044652875793530738963192724966778147982358592912364477925016710216705992700632417226766918711815875499857949669225440552687622637961848631339531497474214677936263021887503861312805695257182759980480095490605372247054311229414247491963417577356432609190837120855993938882133255999685390884092307701434623860127211669900314412284317289683356252801394237146143785482428728829207042556573799973746768499731619105128420772089182956146306680751503262422987628917548191558633583517524786444921285014389719927685229870489584053546349162794121651016887258040266557495127727776780388409192800619438436107146229857254127961455747914845960643811342515820973332718627788909205848074346087503090902027668865360435228682452715727255521869059677876196851545084507502388104683117205929642252666784789555570364670598231326212037215608851923819806912419563671184261006128897713991846199882487375572163021777665454846077746702608750830524846125594216967357000481855677952909867031680836957725379392679752906377203798469738277112857729792166838913609765608258686071062299470186905855096743133806364958224177819373691138262316002622523080720104409681072478187113150513539813583364588026920375863639940365193332892362605664406985442515852311643053956218400649736543031360185725520931996944510571897256008507823566544167909412624525954987367367464506007738437538455802707966211669597729969152218464269090334557931443459496023862221667392668018919834174391951695442633865732356421796086810636537574002877991029918189228179240860167066614780513724024832351777678189286956759392879887302349942675760847628122960366031008650374854168918422497885607190720708490417469420082462391888721315853652914782857324476196700953451808588883406291529535912221419269479414436742898482507478157612462895488344897378985175517118809429223656780901786557472149486582194996768627598649894414356297900177746694806189389523770080843297235052233298011795793451799154659089036819253876282784106298390601848183505919107534939772682637167121130241728758279487854957881720786995914990724318405385677936540565202622580761611705295851694977177932419337160073309139130969282012003766882477567000761287970736993107128597438246493278389877777179909385613581823958478855858938533798421000959237688250949217257057211675780807977114109489463024198505832886545191572953359980643233993405392149460593157343687728463711920235979479136397206449772375196598772962632637291935232919727958015946856064137039094754092846579807203018141217403341702541111851493872918517940162687158058620431056818013245480443501067556974765076522209746755639645275606789395232598756375173864174928173731808022378473901470439028504126472054096103495114560510591157697310900933503808793429760636767467647389642644447694330639649653730556416311283238551803705602644213180830861477635904131926842399192660676854089517358423938802479294834869449799453188874172702742403048776344193334481462350433481574144065412932325417888699023404489014223289625217991668118020923873010260923437609095185943070644259467751127934937912514685803172681895036880324254796155911317742369254100256207603683922532877591536241931925873216144253746955642227153813244383475572811704446558641203286038967567249259657816011053739427268150449714644498180142898090920409705203673064869195548465041465751637687166687140616313379377221159081698478081862397730126984043655434959672196875945359722038944302874846443317251782758277147262369429478923108977553301472816730967094328114327907162645631127405345737741375626017028613669503628370051201891644855564416966469419266205742809508426457157118068771420619025607211021769780798491104594709464804347830296126701830997132535542724799573202808202155774257511729700070834982889968350224354705860066456642505666770444278041828680203830152245493648028843695779264807480761317535275131142831010225773768896139584149485466741273983045256553388351978966789695442365921442332854398574861755825635163034352048521869151049931427729558119245463667132302663586872113881385538061750604869827015543318435128695878416576464235406575482023284951691781931061601456991801021076276233124822492911705727567012855157759067956532325701386104510677261357595621526438787711352007428610607752226275648730508732149574708324229452820002049714148262033578914686931257377596249395430620803109241478373759053367919965129391478027097430823111111377120613603442352118130760176700319995384763492606018296571021812573517543650376395663668007928265853629489927946211688358430581025310585765674353381229441255041305016612408146591649303518792820744646097711474837813871735019919375138176556402153711217149013185812819453285849594570227251052084673177624932377172131135753368276263860984183885196088151428985490749384348867757752767494246489449930130072146430297265272987714534703108120376280689425825669833013788792063275783752629322711871296196151703629613420340194230126770822574234416124951067887521981697582148287393101589614289961367651057225035452194502917793942904450475415094448617368896751711738675133742282630297346298470007372977887281426170558991277753947774000911258213170469823250703409523155042951628065879242683013225787163933334258962607647790858192294449882381010565042906421715633345715987912423682350767646657929033759541182742916197798514567705362030027772591514471568937327658757120221415742905953185663155501473100250642093433822156507728550377044175303998806957462374513455600437909925322772375642286904107375942656920073128006683375227672709179126602918028168294019315699764885558156168966478742525411487782866703134635917760258243241439606434281956464904009877592599705088110939276074378623351554915325520042508755164043537190226194341677829541449949674054819426314310827121474314364979131018487133837707410685871767422135508577019521146649633346599406553791982099262048433035791865665887172019137432604545564564353841258875437050599017558897697758856066613143445824534133710673999947451645095366645800855950021598780663721036850572976986680968775871346730538671790631584559669410349035975441982977289594374610707777017942042461868711139470765452475268458332912758504660362164467714688628829670912326177352049475138747117411057361931658796665535663028712351931490659614653771633545299196509598444792683885169528398428629622546281257654212999016876827643642463154614307951321591774136376508046959662638106370156146945549960871089966418770594102609129036263961258671403209380785805041214760883514495286761315286670336315067556358328488006473271027944183633253770930906002095855224814042189599405255493755400120585558746296722023171996541115351571361796006501181995194729321107201367838908741889587060014823824654847555939965597132858407011605495833383652392346088669998003121761072020318672354877380705800570156626982004904533939754836380922039044253642901149338354639841477009584201820340639412575033443138440049871237244430564284432436786850340560613809640605299752286112477046890659238388774758539188769146013262252432386802302428789602402887634762013867211069129518762601070400433286319976068144980892739944760240654374300472680368656369010559696563848966283243424979148209012186699050354103092165222228342373710569373456153639062546077805845671288039229233365213174681711819909364067485936751501015392409100311061270920558639665541257087387829192567859886455939285648347921127408852348305300531125647298247492577496500941361778849182370214141967397828858617433157021587802427919192563071536714772225891203454190866609878760158947157998581403229101954884791599448849034393016802510746484346201054724884255251392505611894787430348875471373405191929055901689108514024440151550295132303307960357785779561752408033429323045751755570182360198216674279819678171612924491684139194287348853909849668057164001206409248251468646671691639637389120798774504608446321681579270871561036403188647286546739714739942138571969067925739273807033881389219388066134191167621975371136285270767660532396604604025498193879802981210259924377324418023816649208877241921442533542116664735865562304905849310574252937310718380591688708318453323252044817266103174093562274538403650253840661718323689348402246386685490498523280680576262495038914035992238317315500356462210319254271559589907854753739243649265013125253094151638216079282796731112029659659385324968518473717544017019041585257641870497370645509879192383943870693649676417232642834987397600184016227190660672515717182140166321067765806295859031067876269302631810816380153236379676815890740203468420855350888685071757706465248722340558724487474554385080405764932301292261916256951982798475429968731804653547811397013083867717865699453204051568911529857226652468433671940861466345192738618221296803770399226992203044331029615463277293530677871404405051430651634003581636562908710891042381541156816458155133802125920075929822215384316754310840578654450518625136270780337465871469350123513683925055576814512607389284958602694901521204340828095709131515531509182330639029181704276256938560622215306762368477032617351714145938758522349490980854010239118551137890501812611650527124569925301593293050114982871905848535279615627764499631675740673430596603386413618065992378946900071789856927593383044367147822591144580722654968173243696435080655056640301104060498301106317742551040352253662754158997422996706716945555638135209854297654321056345867208385316903778679565224071146639436617898594891585856966288086590683386834248743715848818837500992395876909091043605324741097799291833054973461555319581200712310669969517371906449201929838214614535068242968456656294243369985883504892678297958091398258074807589916021903179114785839871677584996213444374768567773603660824264922810992451837962834591708535614617026200392219203763304184441286867427601389823342761413617883562148672812016960304850434132611265976066133065330391412322897394003460061486827045415156977008410730664136798418477716046755445986160726644468956868269179967865059568838640409410354175914011957686326300101214967061834618998473232786240514072487225806196576098113322489108303226088285782103103528393833161246277388464638902350902626223650388623066379995894343503294284633127023249933357041150800481040038238975392091080706651042849790763654357193629792700297858342625850282952722036029585135592763474722917902125211460435289339688643290446469402298773595806123634978472447793029956492636005017055705237942342698094118461517535771275866416949323060040534713579954012011982828950310039232740645567592620248907590086208518669352296953798377454983402550492715948148995912647479308397170638870901922173463055305714267159128514984836934982571887957880853350054203273838500841082095109302993862350861866618021756327143911888519178326810513773679270244330032999447228093373368678745742009526986990502653685966038935627933186734398431434472893615220794842634376246032499831237301176723412992911231378139818392719269623052778203540481587160534928956157671505934460123425670866713080010099674913553883902129188759720762221351738000275187509984580563813461199256758262107339414270512773027921554950650605055258885964581212279558976779041398793009473648071684037575220155718979168199684784110091177526643734654526266714827990671969526732144957479276979568746163509081115790064523207106244419925143749198880008114355913985514088334809721340752540468183533182888869003344343033060349476096977515019515099723891743714856753852071937750188968137941391411954284299338027218176456554636956135729427759581349420627532249632008688999849153116273815502044672127995653470035408862197400703663725203277136304602384504348565005535089523773143518744126816370335215935741371798784333237711026524911161979040845004838311130799071879519684610538316552440976801316052116972249692875593827157651664925487949041408627125791343673795544753276289420916899055746297426261238692661510055492284393447342842335907729878555860822900093017724186627462902275132173614349525920621214439533364167287845736478644023929878810023831972792524836638885997103640673447182871955128621390231648387761841973002766206210258711045315320899546840350880795739379962092728088692801838232248114741625539667544071067495731650147919694728378409905081642381058724594065406475175414706269997930917646553809588908459048060903015634779775086021326271752706062512387247836822926619880486611703182198248443820079123633418878131864923646751535994415131905218896482452329668273402042856214556632794105472120783375273721398636043806643478490720350693686067457624612247035888086723053792737248652811451440293856335783146279970023500736696720164570922680808695666469607835245188735735133229710587698508647338080890052640494803706904089243000965973714355454419031422637333539830659952646713644311285026723279927524768217566956237910430768922502262208961588944150171974033477355964003822085973094427300966530561971216912233836239666981878191970615438918986846397898892475801434734073356182995455641892574950586659665792104176929033170486993199165428824676239034181857913279088195197156355384892587380544784052056594271548232044730997545384927662022591020650806207580207701686818253929964270548821318684219938793941496824062784559265064936051320858046669381094188044739789855651574968181862745577018917332510251430556822106794041534675626615494474232388620508978823233935665344045460947201568021893179773723612242298588209558206309273473403348687799006355974663834445293551349621535921463200537484967753631119983079988316639032738582919496844523486314646114127804560345808550118834287399239151962406450557462662971953500396301773540928970776859071325776210480808613066230756370433784049946698433542471577788448761990658200458833461634265785170460949541500605917258123733057956771789614176702840368881482591155517045345765283832860520195453361129193467888393706626419615133743178853935789546019126073776232507881078026961011855011313726232432389973340482188132524429336327653554366709645640018643725981901060139883636714466523024915314108894185106152799299110405792866378002140810082768705630883557490104135725758192588007733871149258413053171449145371599338343222615542505353638558984283991361104537868241784868358640422786493196072461300218643230998113834897015748705403378976643146021133124928743882500272929574014805719528292765068388314507140609781913048076100869561899526101212735955934055444477219131309846135421375864867673698482043320100920208918076024462230455064391155630609448610832923672955119092662322728438932560434226774095858662862654524164695716313439675970030476249941688195973727900718705301052903512211291654148086171112213771909278665767791882440862009483661817892848766895330190730972687390581990259376446202702925517082829668349969093253816141003060833244155792657072153385143805400395507378578626667392514490876010409186084006715309572907743290266841448211637385745468738685635022750864639437450889272770813339073967815365645366487753183594021928810068388270368821723525827137091671099523297097688756355020037391369878323077845308786402757186849737605808278000688855689465710494986493827129186568113046740885481914992977527023464390592377438928461527834966581436218839616675902058630660929454659404633742549205726687271224380656914707904842069068140744051701376461576193730842966373094697282441599739358864619580042709685880397149637470067864748848589396563211512355453409526429309416313493827599793809442303287571071706725660843790173526597071489043052756723093738286744817743587674826868048933088343660186757579623744961842427447152774552538111929783825764476531400861276267799368822542627166965313351938591094918488551050101462868986007001122192007801126065055069909899940241801404589719205532868233811579013541701964397067955810145714345208389544925799662810605354490271176689392742369921811074882485228966405883317854881982467689186458748213022285614269897362910871573646939389818276695268952668623372259009969207702241591587159359524526479430869977845785197081622818149987390471860085727615151414364503418713345046447128452930234853956043351340886420391810655476746344850375219661847707238165141576473234083167014559148125298244248896996709389709706399348707998512563719321748945146913691867926466577515672346337832025002152664974283166877414730289934282390219120200217221777136974418269171450206327401409643287440412409276484523866449458316741431665148701789007427137736308556695296495379983739812414078222191944530581542222019166158656376915696043822722228404107737322797611991446760802611513449943973774037260554347207031859259708379490814648219898308482838751465497356454741366252823391288977220151527423029702080822752831309669948855665267636662646737349915581729367459060645228166458682692646095833567833861119160031660398367920118257771674823725385784866510119091825343373635290682849661406338662438528426507878098445621710345888478246375489695935800871986898488839697898698510337090795781124192335008842013198855878296198599675784681172817522263155672900760226880395851059121898693081070804889897189154276958448221545838256380243689608133143422363583876003021432821452334366215357441452621059907138230392179260945207196260446950546452925025735744165371713807296584720822304774605158945776144581170474721618458340306715225701105099626578584548344503005263116376061627687108484032400128201208446801679720587543992230135540901383819723609263443100956082596639579719835640160337809559893876450839103178010908837807958817477684043219711953254250666757820808421936779193876048006600805522604571944278601549305320972102415927100933378438722178409044936620293545578787262220092989070291276742254243933125495083536151370848602892124153479364712692489630540970228198455908055266939641721349510059789575976922128035892398067131830029551092652411454174519995782896847302771387275063012488695201718394062027045902889468658994501457401536876039861096941888375826127642966315152069355857966405937563224034637963011616996631311512075717569946529297621364442343007763516206269710964356057608557332466806209496520733854072806075748290700818348200403801388486640358745794732304308618450402066103691841946392202012427957553421495170360316986402524288421781051504116497913041075000552408807369917276909438321990259953384976639508496319523235034956907242809868135962133835660263958208265046868308947022390277775072471901476172416577110975448821073311771772178109783789096301921006739329346055651892002173237036619724748448639936650315077372268219995730836744812844287230763147958088201202939925855074453898224962257692636029658243387987644957259176419559301972112481999433757386705537069307548130705968349800849684996810238516179737747683290362972010130864444674993094287512892735930937394576636943114102551071393001607781159124695614915251511130729920209282988138879003015014933418588437838663797794931541505582018287224846984612430123340818199258200774933528452329336353418866387859235759333657657866635795176167704548667390591405212696916598584052366894810244171552864564069460061637325335002330547120943380608546836555330272775051891317088340337979289244467485897824237651140781203507341776447297702156371977952643940991400950503827516475267294768924573998348905958659772116178560563813918570906148745423919576724315241757705198696034846216572711358453188888661086187515996456625215771679495857074844609547637675763164300862378562748536058478632097497434264400894570612814599096200086195591300940859217930840854409335026099234209730145505448552078877728010628723002613247722708860418557019311838957621068468902601218126299049716975259524787630337966095409644303348915540241021056558895623817288202181122605329980253346303978749653744640559528249786228582713407451298329896375730477883144730824382457482429689099729715668704771514419597024915924612481749581896190647638446481695313131871806417886283184205709690911765750890552436504238487949539857264119804011309582577455816839894929838348209988550894079139828471013740465298434160966843336916561636619097569262285528680811356622332254227037393383657164947650350976378282047389974249140849064024397693737270995414225776845534973285272687843799291730984445735734176405929499365021393986967865683087196770698468752177625112841656712009519475713394540789356396423564216085097167207170366265602099648814321907946332486351617089823604652809328514117336165763658158841888526335829642236441167600638600338592103678802841035687473436585885719185163949489936903792804901900516962050061066349871222726206193399805960006547772217164013291727106707983727429353336629557942092113112004436588770936103777582466557757265360784403046517762455610411375916021028360417241246343928318112529709820858988479376242228812324967174299282260223453122363810413025908278380277661536371302708108552839371086547433618119922202355717647138284071944651966305367499546696917871209489281666222559547302943078795309698810810403888767556923490424043551308359091710274438290666349769558563821412574580072504255412776604852648873631296562899835241826315636427868921681847332351520639564125034125592327730727916737988824212694558729757872744108686678527985309877559860041077195786525993931194488463266474745081037850378264615687064221658284357530626254562014637540687020099708535500570567224836750218607694770724994056834168980798508759966177256531783760997357290854666852668555708308895916659453445380472191472311532302023906739072901084834522299662762301075646431174656512820494394099207948956517227253391668549333172707215756057637899929622390853570330421583164749089411346479316337718242498889075645764184788522520920545044417901557882377228855166002127725814398035253404146122585858119030705030942476968555486813801124430621452714172417472231352130936250349845422608951209351058687608553265041778828732367044844179866614957801988859307256809723846168089065125612026574887490330420793412714541555001543645331917378758482927370351372116471590630937902014117203602508245158958848826756874562777608794803062742574913262143551400659842674683353206822445957774544872296357499329537201843621079243496774858996818412357759456467389172201607697162374658436500033319662289121440645742225240873307399174557096669125626613018027558304449820876744961904943086712186168634307843252231331888489631470886677956248876218675603096297914333710971573500336913830423670766602115867180739920010593451351691062387415125818057653778038922762201420424132834797337921924921200331744012219913902545938956340340267946614772146217188806218918037298484366632291772290681026157555321031835971043157632785086584328845635894220292162962912017116449887181167622501325641728187830263140877607319804013131623279381006416218702322392851417480133203926966304793600459296441986005598192321515416689354595525895956272702090084920329614042870597101116604380689429058907296846797078409037371733575926090118638323494341853717746130530514141350151615658505192312460711485894020481960267370297435271519153110300369263348345608604862091699155897578880252277791347373376519229236962077983472147819238764476026590424702669410371415350472903983336478891386104032046844751153658212202141589177428782923076558521598966309052354528521815503605939888187022060229786360776071475040203410841755387838723817298969790620546976248707654083515154577098689343533810214072451574607175238139640777961829174122420843411035710845251888438703695577723960078644982768628830828846666129439607713619829432195199877316814616461515265844400534892291424362670635293349147986474240979045325877831398758863713362111174422148063366272894807547065404135135328543829928296965289187540540898014449922237169632377007398100319379662400354329249650739958234484936187893608017117350637408537184910416096043426174709812456375632425393213886373757776116533902437037429305287352260419069195030340508639430286125157776182881653618417972657711231316693326848624018632522622436435701758753723243255527809998502262546362296032017831854639433666391993155525472086129306959170922238691509384306226227692959962456697437141376699961832081934980567549366390699870141842734178443691144586951515854333133656718099407381089567118544131562759325837249796835780830042629108015010057470779641504931418027833720550112425616747122940974503324528399226149292838726306486140668506022680231092142421228455640328663069103851790690113071665419025249277409606410073712790385507870025089639651408728791035582394078890314603058139403338729101432712389422905077798319940090533072372860989418928689989125027903498162269909894852285560286941355431937891487498178949070453894967434391300011385445234143283419095042548714796022504863779349731511733532928077547631451550035085893880576056604376321410812188395819660615449681109620380558276345924499681736264640326821404134073361753172903611863440073364546944941734561611721450780156977444525209051910512197694511273272383229621609324003134573332923438026356972284507841960892911699412355713191157421388994753233221797745159654331901342693061247975971161815026243878851836994378363637802356487354386813395583656436113884199350597591016098437937452081046127685031875870658454981995749685054291553726084691309764599045216226161152719256735444307645009226284842340166167475896471817211550854418012077658658648824187529453726713069347181777053511875287462924781357005547981234520330295511001589868567050033277891323291931413333553703901617885944343657177674575546355530090368050911935916874125574090401772378830537371752333504802441680013624594895731948287455211957284935979969468288967590577747541893166045122455680102410735643113579731251515243565898081160731472578910159944123926591288569563473995908526133111738344519239765576674976266342600697572129306500287885508168026153605008447127214205257097255025395172195955481745617091672617054764031929678044728157138164215999696430544826194689662878719934509319971311406717349107423417426470387916477958616226897557340584558437037873560898892620255619317872180562433396405633490150463831189500057012389681496331084726969106588308016185397638778723820680807486434269494561286355310967843587945596705086932909701831354560925682909535433227910407468432548584611327144253450515293514909300468434107527133346187934543619439580257083315968927805085635381430539052139616082214049629226835100035993433626711801427185873627559938551951626172649316430396646710668576508393564229296495859090220252484256684645000084389830330886648597698093134252113680794999487082942464272858455149286912186193561432985570115262854296131635242572070545491953369067791413373720247294344777840517822672959119031688829712341815734333330378828916700378923692119116842458690781048803193904492346281885026745582266819366485962141535758382844148151767842180917066518168438509270754989965493769377339716195212105313510553872137607710384838740167613884148650955298049232583002891975384923248651619392353530057424313708221432453104791366273250819389616634104376999453889045294913394039565951170864682685036810567791217337866453823352803188500798438826429437006434205509173345833045015430596378827154569364923274380354317181042364280079108590783543599199842708902999510490750526093947752372400726957426029091348315763125761326968740790079471744805618719729113553624352492227508872065325532358447724069784270285126291858859066875454415605418409179378798301590125885589597501017517342159417440857498462217378172774231795875406181328911545033225776707665179880105360442379112919569996721787950842722873773294772213469489814413396643959421604053065198547770296481831091023633554868974472184751967086852532122086624357280406982989245713623006604031096648119761804543130097824842314620014809522804588826634186411469985409408581851466777628092154434754100782073508799380904953044478421343087030004308996559149394712243898627269524166923147038152655971852340635086024911866824147914174554107783971642534885687974336266957287466092774132956938657065155124628225995840725834093243533611778908384728921292425987534871973264879475661969268222518987760255099776350272273315256209115294099837715265506942604850386553508169736710478514319935438415657059945969091447778498452404600986404227495049845598034197724289377592344745187995835548927161241055768324033087082740524305273475192105793395332881498159370082036924404989315037052520179875150381766817163758808340274385387758443186799727114256379765193241511371886266469287629647684952158490288254046385253573050618984898069482495376923327137693942285190102456665731086926870880586796836712506299539730562506499580756559981811588048159856514460452453492178836995671828154612356376241053618888268750411111062441021410163154462390651688768482908891975360624264080097503006616649069012026149866136232558196292840888329339298376150161809067344099942469760111984283603782113530470617903092442659393177448053285830315703861197728558915757012300187576303654982676972888488329893018149162241836714908511818758496214540546823450703821950613610261947665896797302239298817757325224121946017822558827650485609499043312106654900841166910413873330702120740988859559676839161474732213562901259577504625283664018615623923409734513104784447171148327784880919677098515695920324365706809836134494147296636582225461038358728668996744661043663675637382572331664085084281010602717952965703313863425352733663371905902969423674189189310466388046305829460047755468603562266663695819595558527049070077155916831579280342550255199540426833834631198856383379757075073384441326129401046441713302609398426657344394381170157666284295365730170327624873869161571976401237840107952011294392554597366090494158085646719878435755369732926260555844337310982353000313901165862280401922120994622324418825728881354638214065470844545894324153601101417102848848890832502264943267353262311053578493525897041621875066604837729718076343239332231990612425294006630737681203852454694286660045705708967816737208915828360562903202588202617359349114854933243051742595973559800309412797718752845584581576174707223673457490810736669138276533656730260979299366792125529563361948994751103600774777958929745627581963522854180328810969266306989367920686577010255159927196478911732935711686835455136384159827339496361172513441934480045431338286889086896079246799573859397916984102448722168798839904104943137141292122671598836640310055902480658821947794688418392532496289000679992338471275735760746349609840741460375539297906354587443475514334036919822909591100816815518817502082881275435287735548346753199530659762289207783639412745870461881224710352295988527605976691593549168525104647136868752610372336968176538098690852809441525994627944327795579451317783243613003522894714240814664995779184718349540511909452442143558649287345728096228229329899965128656799430025830530526226297243597330088182474835422915896802255617708458648705362342303120103523372877739506689790370355336760533316300716183665013475402766782773103823259508269739088975547553536474946808737400727893584406127112311482684957292776338369356528829199986385249097516564359408030241493980558295334481982700668657159523990725933993320817528189201438196567233385570693169996208239074426856741680290374168021245796574323079683516642541401254183370388212383693251243010771586611335849017648443861820304179714571918227911993752969464149351205976722743633511760025402995567912377459612608737559583584658261198013888070243072253135500455260823833233640980579159115783645541581541820521244095567213530177778229163986195837225436721562684135209948654374050685497126023622179123346920828666792923567361128547880630658966709421350368771970915971342680914971248806493862846747575039746392603781596873702682014454604053686854123222407604747923514974650673105889323154314969483144130848096803837783865981613639301585600469829906733869377452752171366387242139826196018599475233622770885642696995662937060945823388866484349194369894927480661365876077034169661947585243702756246527075731510241213694999532417474956391457801570241257600541452630879532986491093314085698035392906306232435207214250791575539230123008872208084901009857813550702807243600832110746727733177456369820292167791695642717536260408360481543508818491079946930242019148542486017747509906848397612314477007580076268771134522204108905341283981543156274571229899132698089864682484832670852983045545830048276683283334755926263460728817673463995380058412892611416883729795820356218990284527948609877542891157021108967704887827512972064547158822635471305222101307828820986505037289772698987895161403077328871655264226054247133853633411750286209829127584222896362238331217650711026157069837539173481075208653682863497352869834934579726756461743393149492733211355656308054673061764511448745797181061781795037938439179985952442665728006643400037863574855319550562408190380023245355941382918520732831038119298322844338678632647637498165336027481358066215356806092588657717309327967774734444050553411893007627027430077489897498026315947726390405621977464283307763995288739778902941553090501784234777733907303954364504472209201775014221795355136779435545920696211180753062643676648849908548379153171645769751982668515072033633389453555365178063386330016988450247424751298190238867547239956631766706368729913515231145037108729300281801289893946487180138604219962611527113169714216980750878195842788288576976716259939187495734159780974141110083287847672613121587442790120420299954943384207194747592238635870967767047714021615480653157436539717702883642136574847775574120663514564775984576568273487705917539147453556402680042074789208920197223796129827357764697183779859028389379118647438087598074618568859797393212274472354725340186092243713099818534296618944867502746128558884240311546957651863085316967341470894113843707479594216766353199661430177188586710923172723765153858045571595463149061134262037184657139182158215259947786488856987907931669982031135750685570374775859796873342263109629855078278398127212604584631825437336921875336893726193775044128599654998726924991875882366549294192380953206191574547930664634554093369605116563895384404941225662391656429329830832913557409466559887721094393770721182451514553200287975755025919298939107089408808804590644432579678160188870892071625670984265771537630785297240964690993987393267001146201826147223459222663514329702682370271759678742082680807330772032873670633574113552213293572811764160728506586165983794163575787090193080968712528664097577866729452936457817867829081860192933947528066451837751957820467373082212432295250599773911833174214698550134461329219496514272812906833959848149141104411260158286543217369525577655778878964173893658470530328030954687612933450696314730855260882657575466707714387089873634813113897809494138428575537837567664723677449713021986283138618564087739003265847002260557183680236738916889342438777051323076900689531162736973140424509801338307361456640692689799170806646832473966729915116146885718498080369729658592595894311577543312217743353242052424174109850001109252318602368296784569806962947808993209199774916316017341416897643774672554402422101632739020949692055758915863916222715258234519347038874281878053350554611571535999728874656397202744205297842865284743172289322119163963400808786601682181126442346522637894757418919988109252680071277807949929151531112439470763467279889358490695125950667856782404893464142634664670474453722369455351873749342696176849824572559181244251674003081658449897435902272915230087030645362284175765214507799388796723647427366532400624735826316895692960211430716886585830339609407953896547145704749676050178567582864796741750176762464370569558409598859043088624952612119494158933201012478467681673977785628418028254741333319338746704610980417602894781580568156698361310397276825198915525468159502946351448623995815288542588296530139062159774535830083701876412761684006644423832303022599958367162326551203578841520465653934656547869748152674643271025412236823305388135832784518253473246245421976204545953611151304496381161077521787393304739018445025367893068184513988415736901708941605372087566412456962839485415878417626508147546174044193753425276853161329861629623897320368904739578986643065887404403841782685799572041888845739421519219575265482165066187083361278173798753100208565672207447198314070604423763839040187089648465038796295973766708711175847712340381393120754070350782539358269026893746904111098993190093888831128585320685724528931198391221340512785233277652945201938917872010978564862370685298550687856285374813646078561672586077069650079919599687215444501228127443557592400249481954267483458560765307831328048671612793788467309110956917042091915426298984925258591704987885258257442809623041966775405024469743023262489146395851490130950253274264087021224944605325411189258442473491225203777863647385930427552860501682662345999674699416027148553908201894874247201510285684949731632549792278801490084796672715621735367234447000345921815011750978162075031437968966056875845072192144503013722417080955472343841015134028110989620498235018438113014271607405999677524987486673966888265533771911959719867114479833136334121248354139629300144278214679165236225133971003472779539693377937745318965665767482224869188427940706738498129809353687074433179407561464584201440767860603216407574108901217653455298817272740743065704168801420899563862063408636964489346961347547546347339663840577316041470159958571200133372126581572621329860127945428655759363006086109966368992714500087385852045522521494647272578816776175574748006766553205981188121561302577793357409728123410049367993333443104505081574257931104468669676460925459265112126728484211787384626967525669084506754501631667049536647561110811832163933959664315302806377733610830915562245049528961345046551547922752768675519088812199904238476538194613419433418011557712157543590236145457079165355968977553053618405908875242604535267710960831471478875330197852383822528925976516560100638270097018876227307701584483314284053638399747661026371633026494499666483973556669916177156006129767234815641293557881763506717353230564456193570268849416639054668106055898086296228341770874557608403048652329062124238700059726213555265388882536070739807197038242741992868806454981983435507560214244836005721575450830283851151012669705782863912974226419374503411805469602631445513240165460938664953066214134039398852958749416708928080385944187244371066990074687092249128211522424533918060615817632794913266352225392402229895002542258100941798981819011341727513937534227117435163807529526251679170702519559611857928975500111696025148864889223093781136856020167630175070639806161407196964417533421400052516900399588859051441306864073608356720001823584917493860678497581246035657444134879855886545698380216374361146961265021848220242289349287328358739187059906805617677657007302972483898444663097100984074026517470889325687950597134571303020280303827691592935028206901885311697012702017017566658273373125380904961853378230043221405081579625121582984073249899155435926393673970772029767262570543539410942803285174629065559410009350746069908278682975644912443359634523095151759913903371087229364204903758746589795338351573818658013346016433012726841202174889814975313377794911063547659596213234632558056545147275979637381726400103495086824563073086038846078432868121467829856272600082465229154083846377504757230971186517230194304087306023265185128937679927369792014749938060212995416640377233211687306916645947998081174319011075472130387081686689686481646376122654392667788157756446653127003111475106739714429906124792402743177167994199556509721801337208077798689110330388069497125601136756410817735305003030612021584303033645716037530020019415981233598155674833198570275757825847279671398566967481350198054746447361718344303450972105820860644745630675186446394090132158812121420404621950954249852987928486323005414843393981643060429940438599436181151348688787402061001040862003446980593892071534436490293467394629425043719145371182359735370473256532225946606795624293445501092405463584719144370210923149148676591575322483126985154361324515955033120643156170982688569364263936563395000264750597237978043191401203784848035593204482711594281228725947392508987456559036438732941121654945522051859521866288298993252083991033519184665883322671244009969294330004827562726338255711316449370032933692700232438820391306164509917429222699700715776112626289965255966573094630737231331170268693037777192531269459264954999872399396123158385701896838498256429838955770309049590338066143825716103117192799858966490726864116412047740128095710266349363802650402285764724561413867841498377023302656112852068656964008085651134722829248455916140487764391915984065733721799678863663284913168316060015361017504058206352023341944328937488661080749233894301293135017610975842714944918881988085876896100536257716138658014904096016516817111482203690090904131541002479715600562552130371851777428084678802467517299408280240651599963443016054331270866043823422277013884517289973773680129820339682992676435091582956659878850731133039515013871659678353949352940620844040437556684000285422095874259687118899054758678588309197640797560588233415863384122668427289486120677727250481219171783380788881868657866365757419214655257814763373656214375159543724138686949757361335992419027605734623341436268100927371330955205352204133367804861412101335503324708117410149629294051681317058160079617455350858508273990825651272088409326242078036412598614950079002443794045497771864403786905252007247175845486029132887865259620188148836793707598745938872274181611339767749173418337242968752902554809507851762949588602584407173558500113146381708033838549539439551971515457655546944144852798055238787857863797158439355627974499645430150159032176057230410671385796953775935976506804549712259488522563778292572174012319668557062073698247325321509322197242006417075657388557711003430480925238466117746741102472865471334378650895849399664705433653988718274503820430406500553427058906876493226148370813645352532721490578552661504997950846291589770581003722885088938110362256071343665674852353298661471059652906546131009894408683687331330161593286577532803446588390426988966793218220457670735056015981431500849523631472800059233869942412042580487724873670979728344782911026873703475075162955177301299734704116823037118160014968613199200220738749771669083341155393818277035948805663314301506298569594055452564532748079889133075580704933137993991052003689041882399047110534812281562580666792166762861096916771081026650997909597828556303704772602981583630953498969415994175707570522237363853054268038152845042336080144084006344578052016301189309256495410372613584893021276077663998290291222809599373831122012714843973836495059204429644704626285383643803464147221003985054089534497156604062438573547548628413052167515518231099229412854187203352430683455029202141372913234247334647077350293152786221516870934068550046883243755671453986037385264238868024751339992140416566149092328059686695910181510396592300419185076839939053094203072006833238376968839771797309920464769027950827417296861523087282808621887413777250901519072473177956348687059255298528097718855320081099765385843752966437057137051451874892648974993113108400366390669918368898656562589114167042371178323923915490610391721894602403041940838006755599864584034226457858007923323033836180153973204167317294849006486778608472646177192444145762495995763053318724890733693136486736451148767776018463275187034554569925426167425380442623188337173844966615031955347953298662925503439843729406090418489240459543077834575649467697193831782053773383873739571942728991638975747998907991946270719380106221441494647701866230493057325411323842781321040434755103768829471472447722328942386737227635592951272911618922180632264896217787277822986356205902416403800428920638053566612803576045041158255122563138842793900594943023858454575282037375564656016215425044591473460065003823333578373976182678810433576775780407048610794603419451245995781223933230860664719772530449749708846177297613037178701627916802543062512816926136819934626636617665444982942202335924414482193685503377887450121501137626350627295879676296420860299125262142934349918785166371922433477046912235974733734834192041079521033324724845564502203795651498851664890225963258713070876283171366522252532675542171080227385910475654423439391098833356267622418640007236888381538332732394445619602474773291241019046851799782635529468190885810117057538400847361972404822381939224197915178426341120320217952552800955194332149431995111463981165066202718868314658902378434690898208002405606755788377035851406960172510271140737936024438748638396992474360232709392501922745936472458739614822507555662066289994680811965560700554237571984478787912949271258653679953119725315039979859057150640916040962847484312054987585470716470450918453288087776381054927531254731949169437614124533677040921807834303286980402288360464027645407298999511871308723469216839438133999445548171208922164035133126966776539299876814606505813855848409010558249973415225647971048950669312755455828020859821532815399446744333353563034897098144528630857782380849809060715087493299812848564704548883406109773850854526540633346952325269802286824995676153456303752476969549588223814649138513184530699548056743236996992604101428089422732174551000417549519328689102888866530523252634932839331127530318934145616057323117113407023363076437420755068478706401253143056979336658624777166008668597860114745716125936496566547643938526640250495406445877898561255219513755523071420821374889996040576598176775360646518099814098850371774269607470639699894955445317900065461182739987974401384470941242044461074445182263110093616577411431136598549369503943332393923341633111966342130030392247598789147566760700833950956167285220129679373206766110530179747790726458498234804354479180783699816633033665121036021522798666635762669410396328694231394561545272727559800135908338048335081133136612889452121529408420461548804769391531831325951730432053327704806977916134572229776802255619373685569056191664764674885610707087798480428263400420518312573848202505283463743363698515208761894128405602631082763827805179800648578735696606185000442360947973218357914820080906754627029828521902313444796643308195258687140905848229234492728316906306372654384559532358494206045170368022478577513972567457018734993760399873994949580955012482432403700224456860615577399170423352878846911266460186153173950742640584445055891214362913969893955792863381913882628171811583440466136604274544282140939124589793140418973594568861399896736427256896589528111119899056932697100752283897942894568536138886606458225163503836484806813832165819200214694407922125693335272372642945080359292304053055164635841976302622540504194015564447018691197467025422656988193486414715073220628621053431246374593253461473073559736368402975527520550604486618011643002535701652605477277772048409958397082443934169007775664032734500250860933460017030331107057518961207981958245744814719201241450296475836588303051494720888596812940312445507223206502753130010097646635391192245165594437006250988665327549779718190121949887310365743649278001417667137023566902460105536291331547462242218264847734553953873158815952256254816695012696167361324636734647445151830066174635772914514831415250052662950472122214252139722012100002989655308512288543183322599960450705259053406012216233378227741913002347552862534498714866326932211244184941463224340258789213828322686305355986228083033820926652655905962926363087136587634924415709414552582795910352416953973159627030882643380856269545138964090396315833896869036757734407307216972615361170302963728506563919678171744294804909050986634631495995811725508702510512475535583003188892814073073297308214856002262211833975249457966580977133422849011330048814377310917354584748575670101309229569007568623961912327117874353832659309252185680223503020317684463203574724103908613259082162251370731746576282800472383412186930853336773224140438488869862779474550699871140788228571543246874255280935126026768379320546359380131775959314606205037186220930446319312718841812037050862469241891680086346587531302577606905569533418933102365198534718915163700577652558301211648765349804682047543664850797299170411002524597459630629853070805764211133084746116057844757539467468507313905916416542318023799908948151363462786175279985202415804994191963537933365178265882320682306292131183290279911062940883828130817845962292950047661729625517502667108905715944168230670515957307955184329783398504632644155954407671853484488197850291037677589139208678440227496410078708363640278152587838590129613941379192524281353756786467398952056147336345609297162869821788079312403158851942284585640816189257520283460365626277990674386832500236148743342541824793988105092617750022855921861507188325716248495002866383970305106327776952272121436853013398186420566021803040889365909592125497380701965911360503423759112872754710191541025688463498219642295579280998567391421311587875776213286937392599517602500445781769175333830264858554828578320863538217253299974860535423653319804696430796994067362739764226829230655709215707009322664031439753835155706478047707450564231190424741183066265855431874849345395032997645543262388458660162759176877959813735878940164342912806373796183848123203331303977122028542132448465480776575952476511184114063464605577132235398342338498439203005508537571701627441667393816904795416013765228764388703434727551435350270075271321417725117252436130349333900368717433178017352064549383091671235654297221301400672853612760525416848032030072401206723941624536711620354577278772102466340707126353548258059004425971753490042434247517839355033313478349127582795969850715311023165908561406516419298445058748282504329419282304216528068515032041539904883982504581172400381579700941313948608584008264077696455888578082710272000492616514596738196872331885588198410656594563627798717419063930056420715491605160258990633083624201185546589451657346911526018759116701576891768261818265777180527560491641112973023517594956653476388568106204962806465972276172235551766850136151443451823810374512842756093338359839603107318638039760897975977567958391467747231358437851497458179015266076999904386813956161905357983459447076845572753328617728226683310694072981431071765789793627418195913750338218387367090376025562898657896247732806628563997981650059632790184283403805546479245978056462557311519814824582636979184055352344724944628770618114343704001150155743738121574064997105661925313082836917342770930413387380268686993679917207198171938845628845332928925864026173300560421627494354680923255174491590792088318595427224847859184373860746407960347354681615555380130114585203634435090888554917254849789651816287281518692655437435050582254681196613089160169315122467031101986055030611410096357765443053417999539820632196494528994639821432817292906493592974739337632871891726960611965646487375315950242394158755851051687160522497588662098260624071424802777907529848932667523926258112702519138804677587321968948740436987950828797027022977526479448275985482483061143081784323493544618476365665924843944766026200744108133085709893171528891258439033862042096884480992657123090903460820962775818253919340749658783389494493207066423527412465752963815849564937216374066265911536876946340951289664879931758375887300242482914084670110747982395676599634899830939297929903090201880658547313645528886779445555419602311657534469458890998417646936981501871724341774612500488878713829740210735889086506087605517408180164455627739358828456429138959696063904182023873927067633817639752074281484012847639580205661986433502734567897447156172323783896388283525337167006383735326389214258087464276230455536607365730440637295010233924402624293178309544477024814585283986968575833796292177891822619551072483003722885787347935566628113330103472114473745292636970112732397983315614773813186410281214804279186429135836545758195185303175487772491633804570608048846219431026396271321248435637568766565194184407874124745917895511925535789519837065135008430791939581959507765779544864598627210915811837369372799586716339914874939374446991958573831311472532085234334755631558550558183228784049442612449740648797587939712834478025753246850412198427496488631083096368502546428202604413933348345140190891982203086431006095206608725696838365412128856043734299814462758414762727774744729259410682996256046703882592706358999946841781664300913909706865812623395120702124849715068445281424646799348570988897355732934388079335106281193357973982117396583816840538117999703658785729344657091279516486922453363257873926693290548919417133287172438137711788751676192738482716065466101625613402143557976412890691611262182934189405790879487340238751038983547081674357488389885016426135533104778057472080966759349806243744853218421084982570326592212827520566127518543225052570640715214121539893437841926233653718298510356000263094691677737842246560755043949786822412250466663163430813153969993883453490048821870179529653010108585886961691429848157350183839937949964968097957803930857007009603129811895533305927853133910764237888958990876885904212227790202330983556024179965299263266573476955331522241255198959375970074604748833000523618022105495511479580036946199533134876011995493184657133690383990663518112042907869475746330990653186291951102759280782056113626911974813349789961389692643278429232426864725355628756179734472045422893662150979990852082778823782436979367625296713315104875975384142182848433983944776523806972486779082175600131171668504818173397338826454513619954798853803637763053243563724871286330973535376145360212837593595184188586888458036777630755209616345164298292449567518900198203726814578802480151325748718606817102896534893700113483238290561131596360100643359277868451506040223529613780930396591049947916501368555921192225402585393458349441273842818364901520117644376600495004414582616840105764415667332803899139648612089145386509116028423222244706358206266282270875211439665106345086475991192673041989901100081583302241227195610609048834213872134312218181110038049752893713168219148890696284789145547757704401771957584055951974666287658107570178462366373624958945573578499110977562582678239701411632567533986798346239856660163684413060013243861895481077814264614031234759060901138678200610566273683750568783814260060135856633675346022066112689575110962384355244472310037561684969323870279258126026934825189315089078456312855308204061779950944665863004898752111501818609815676372807925683144657440447277494415491918150569182521964728306429471983793518870664951438586204234566661794156166853168156494752691467532319234152061744074887886026137368894727636147367071078945947176988966675723477924788033585677378956175614978994789287980202239391658907339233390138441290890872952938523553942261278210135275501289534487832496385471317305805561640981864357307995148457920233656974038806129637208466251132630330538850327539523840429359200821596381904704254029338762229598031670167199037650300544237235192021971590027893299741455171955667530187509011489971815703591516523787501945308489767655541858982284708206926826669013020678059265247687346788616712581384135814021641437975158754185075956286468710933725039877405069412833744918479715834268369112405829001901053053444333057673762995512230919894675510230374868578584857711184475417527142663398383133325751466502368827641861974219893719599773284542170668138861729263101513817960560785256489620381854918733251994476318956623413797274101300007939640022887969341095472723252551596285495058287110303824380264330214104182236053734702039824814127783894203199164910197207461323063340718645181767982506847280892437815313994852011762998650967937760844186915679584670023140731616155711996883952057894863709140337332839384527339353644450254973691980020614653384833001379205551489127277763945059665628775737513712753704167451196419573872742059425574419661485671440541077870416005997032806326494812039126488218502614414218353990656750485502830674416691501964974626334525349331401962401768967215519364687862349231174016537787258090272268807962723619616147083034688762163378044334239134226211920561175144154559861744157252241375380631900270987388948821765425762902173847667581556256471781756151157966508665213056682709772214003990212408125134740168618853198614150404112817004162308468501181203975314494986891783995256155288552110878234683146766730791396532482090070689628772971220407274667762965156009267346995370576509493671776797031567201802868242963000171221435813943535435008355247781862664919226755968228779712732091026345283926770834173346615133185430738284977805544249204723023500084198752926798658969682438758696675986536147903951669803936740373806423721032936443639438689136379607865266761136903500515883869017072426936784814048325950731914958707761303011371739794348360341899929641090173995177091037861526874699609949194736113548337555874291567470867722358212363874421766277393848586694616394307402378461579091498163787484467790907989366785716749635792590045192617559304112104068166100097891789452617937767124668388138194147946412033762219435245901863037719869641965402187154537194856385004253629177158863911684938204908246091631690170621914721134530699220524055236671858031928238095941202470487691378246316538299167003461918997167899186296187293910315496523416078131869894344943804550260188738209172364780102882709806514190060256356223743474043414060292520053896984322270804807255683362711968498875606665369352865459033236203783741380433720540459486079122207697941761802055990832715353222798096521266228257767038139095386193781461266065007695752166249666441165133638941955520626244528627075064012084718921819247435362307137228591727645695630138577977998994599354454957963053347474235940481139789414107248112466624847378387299405862213210097670999146526067377052970305292213229681567858126046839810425926214524351125899156289143769581460039979355304569645777140367308987540020534352923112924153043742861859644040436858118713394873049160682669745179060214469264322975716708398557131805858767395572126663590753043402148743727173443060500706811485194561481205424417461792067222002325094937875390905642681953294660365338389883209328939052527952879749069263893805729886080767144993488844480244279551786338991978229985837983030937687946547027614411189673750337211210769505377697424629059370162727617890882712747209031613962277566944359011148881541899085360879545987190462173450723484302644039354980188299219808901108669645874961207959640260713615573407500861308086351125842425564890715846181653513387794911152467990515248807885668484341674481021917152221348289358437626167958006828358975445220415230662055882525057786619526299364201292830772554381577160513253079713753350799028974659270077040609118065857564089719235011999787628802770736401606265858979861573900723885091564281572812406530847292871793589990462363723268175247351501345066680729058586863091754851838524404801282458493623856430515348130030918380826862113553734795855872725709432991328405805128470422983359341752124150820966200801389422764326856586421628173423533950372016412901524757695204958490506084270863470074281476064733843216259174055673124175572946145325207322083839867702198012442981058864201866031353173041059043026851278967296130247134404581929286743873887883066230549694137263870138338834246292509676465875057613628280519724802697528033398939290269084726268168377536822188544192584104041108960200162324221796401302847109383585475121044836036081638160485464963827267111539914460793486540402779274100647740093771356999681697945032300348052650444421006956709772740005467654296010648492263556241233256722552030577520196456536610904885119953432772925671777207051353283517092739570785083263667478949470071806247415027609994078669720738084717457105269955738443140001007138445766319115298883198391209718054948460356502179705405959452465974692887646875304474692393237554138896494368258645514812450685831267168594020135704054619336223529280336558270423473660885268950046680477319512622804650706196090218232392353001089659648973769588618640191358822934954521668223916328697657827821765092522485237268734195374677979219563505284352208210666488679766317288467890399822941182451959016050744319716888651608427198630487360657136929329043850734244851466683728164108500897881723472023616329138543393664505314553180699676639898203274762320459343651233089084981507316274337650284647206623675023815240545325164487070472782837793975073277886925304908450763879178441133955291528912531592609757691797312932153544272297299985713673114413175735245669800129287672929212133728038170906165487736310673983114299025792268154131775593651561541778280460229483634097551729698072974673396719541749259223577021530677234611828090228310464628592413615313385607128664599271584529118009820608789117277107820443949296846013427441204064046552178056789149707660362262094985458624248862186475708069132493306163279404531598430406564886575569907014686391200447148315142975113205119524766846580895900630538518465727748390776733533796540453420901687775804843458854486220709439371350931154695235904601156547613351225861539260925999583292334657095591391395071775031919854030572324188047101589466590435432284044489458042061330128410662965974606688381745936173657786191687976678458014905706651550955948925263776674635964612154487821371926902410242373239259410841575770283206342406838326253258667158415158019368223004412546622113102943328896017168307526209466011851130732204936632725371293054941890598379309139714216787178566588338479767293674270456488593967335939456487516362905818474637293990047089190951710849183876247244364108488224567140159330561583853754128291742499756477528692840328634247207491377721728321464986860224376174709073021224210367972517184750934855588608496284607856723610790719162045691040677471415221448763852359335062307296076266941226944966292004160711363792589855732783925761288519784495075442387503364455705300165570995295591442523065304713163512177915971710655437418998461480965648683258560620147001570072616625818519630131846000863890212355980950434313413282437700200053685154153987380761955323232684774781656590980969759201650337380683971995251233706139293735523481230010763708545126214524833685297895159466935962811615655587676250687114154253267839449716873004037134928611768355806287825806755517788558154181909645703939877321321659261157307297535508177934291830859711571569068606394251472335029762916212206447111109119268498136775009725661767105879687884562385346890711363325937763734177683863026572145340102153789647821087430064272955544494886925002646009708987162730243244959550032816645170837797416780919918316609708866011761751070785645836472507903648619234650715225685965095965193564446503618166189471777675182851993008025193925310226527165788998666790707984983611269764011231652816539925280162568791391687860440541035257476276396378193136773470782508578726222730054031764185272612133261676303800148619562313796351510728686651216851661025272707373123484207138730532477928952459205595858375500200616628425326951847942216625833376665600598706682363340448299948263362540011594531401301585986751853502334779079786638184597894423916476132026608154259633095782046792049229533724237723692305707500622906769136012303002739333356354757702338420597234477198036959847986655190217806446441412026796870292211189385345803606608325903337097262548934960471249816854828009467957171360036884975413644776714036740396357443351279797175098437488445894593630941332662041702692321483681334069011835885557338251136045597736130113793558765129338330495710747658537651895198488950345701891859541021422493640692270284310266842962977259913234878217053599286916753291559959676943656823823222358974225192081679674252859245488896156071706582576148507813608128873495095043661616535058575194745479606883735085454028592386745926197233912628543606024250089184547279751610148677369617251777937343853936270488407048974632900787137695182612835802400489585199482746134158514845996165091894505317151888794454084164315208184425775715632718371368877268288769128601579575560219330107609579318908674325579697973086482729188359563606196481197910975706695247437543339579635482129559857169870048868019369155698830912086472064621018662881083413836382120317780673581604794826856320015192092272299368639129814332356389764505000211555273044979393820251700677287478983140780330741442530127193802146242633595380099268905544865080603990998893483516136071899816615938043795120715795879576550780693808718984320357136055698923206388111006023456922394968300711331283658732734359583611688192003109458744786272049381474212853911003003833243626729933370967282095998690483875413064453146034309586595299361167776233179915953703528228595982247769687691434580949044736094442457356724609898098610578235646916832047486922003880911524100850865514927616870698098295813975143225395616690184104381340919219601494716826096561227720071722557976212030736252047841481634870849167169949735893059621539755654546467643203808942030501551936999077218905819487877077346331211018755272507101405005753262648386877834360714916137349682076853048307438029032255689666634095594543584284135325730342634203379774302633617186883092412821343993954750811064695793811064759585417181820221817295380173644293048138691332955363701897694393779862329173426038142061026111707619831712454987260681876151748021283244023352514434088579850972133135951953133436523148266741260612533818353312784474284691672000090818692782000758178290969362982056280077829243000482678841175707983588121221345949766242474402407184160835507588321357809334232599935464323938896474260173542833937147523394228877348958498008491588396632556708308760894914544431718283868636523478834879183064355662718639414195012429392062132056470434797493156038203825322111312726307215792719488565236146040395383051019552854597446518142608766652456666742273183622962545265024862926333703818212284558426395858163734181488359836195483711873360703971030129746830134873113958963772494147548567475453050751899585821935927574002199404762662704436188465063542109485096279107719242007020950365084158902105752241496083084206651977851641709710709366845527718834569689013934889496230058598170933929766828786694806736084529656916033589925390944379678298818902311068489156455254271838962448847675004094169486852976982971642820815424900810256577762019829660962100046459619519209910470971965521367554067099825649667457403880112874614992591485067107141700893322362725890967639019580991152336181567911098699764209936986811027606283642217997365712669068847402869072974577575557251371002611877885137433463235793122990321612519355868770921423161343697649005468571798103883505435782664757298005778450026721109663173169373881643635900054914746452258647470059863663623984037814418962994026245768292103019951257702589090972962136028493180330382991822953851494928695598157930030229529441874987590631733706103743165671778050924047641572830053035832002315775758525470160118610899822153189690610264838227757220449585524308235158393682685781587985340520115245373725925729372865578583151038217906151430749922479930706740315782131521633643656255637117459469630106371712476764219491453907242124624331025783927305362029575353736192904272800318498228302626211856091133454045550145351613034349155029930204884813639459697369999671580907085576302635336132520940742236525310899944090987089941469846303523830768068521209375881858751706754061191651576583803777004898990336175662090457883163203575509370181393083827903403040774162449862047272007268339633766507057637156768533016602996713583450461076071360398728008044247086911486070459876679209849921517101893107599057070415111009918965350608642324426409849976792300423629532015205926661604569353619719771886829751361655179190665213585440481608337759488260442797496088952316614419596457966080842096077120293895952617945578302513683049428004805611306104168053408005118991427908909892518758186626517771049076939704754514698370282905433414239778142485313090605379276527535915117694031536734292898256515479898027647329592122173810442500690720006567483223385039582281686208104635458810355461059937150716683003971088375643314321237693581445093252226350077920226526578916029574900007689208510443542904186548208820529285212617612373958375607394308642948546915527980013212797979726141035479868656356980690714140690858528440261760889251877030040276565671445728852990367397686176607139440460288331260817116125759212456525577395665911026433035948809173735194800018314158937059047318133558963110778059943302423969805395562520364524776822881804642290768895289764232945906559607225014872961144732526915244954416779664205303310873750892188766875458597217871059973414686486668249052939087739665447344623025893269635468271675774305438355056534032750656280673795887728400432140660150608299480533484577507951946925209293518508047072030167626453925675856243510594902358816129246923519037301200636251129781596967983202217645677646436917859469229009927434443402012249118076964696171945992948153085666325852000349708116648198264919230649015024669282046328380582953944905087351911392896414635835771144038569786449511087853545513587319684556766759397209606421596882157024735938644095394080097831187751138692602591143959588308291516371145196219579380480241906858327349435658324310577199043784644834424431969291194018421631256390094714290433439842460974640429560661125050336409989051440837383067630022837624314263376990953839622848080530196261308582482988953780715169025604887896586252359398194704336834748404660490038036264748741127605671690726323821894689977038275396449790524051694345567509760842551088024642123079032048312991878124111312488498129117213356520819537849752514463035705670189396771065810459319728021214250110274468125572930832877326917285717654870022592447646168141291060161423465597767858136218518219625982521269054174737655364264967527731526607679357527604800599905964056625365996767139272207004955545872091905828640881141633486481229066739804942581349425772836012889687534526778360474761128155354082450072340226740079008704440429912512399903475820943872882946025963226554347969635017092142266706577291501377992311680908455834937306372747355939272196069739752307281156004984820236301444737216969453061747040701309022040826236013873489472554576914023707107859300088992198437585781309407518010096934762597912803194387247979800137688662837346008809280541630073327889569142574005057892205316004173379541841056013168685324435731573544343513865433757509432572149440598161686070161562356733293437560144714789229841179161767383273441462569279214550942702351311756399003276772395136852669183274484716860708231998467995315566651869406361919003272680034564982665339838660392060589934062911480483000168116909190040140168002862078304113366184939225192287068805653615718534737466213082867448559955303735599055465240525761855741993248123486856531529110800398807968710343528314479131130155144221616461583680290595017736694711937575692174133501292598382601431468584347247387104362733490802503672645492358116358602649792353610483149354604990864417189730976152220923812294173939599545039608984540495565724172386553980294627234631532235143536649841150829149997704203480445922552496388216801114548566732884579696941831223635192442953122888978016410528842776739943224327600529776625868028899114529224469148469005260119348134495750643807362234359400955954714712058237010077793444792818114632473602648872375859719332023316117326010343471864820646244546113835623522721521168534974937390763488970074745230620902790419943313944374388097867929847715569560998887065481386176119473870699577074421544732938240581609309602762984751791084316763735804150674693183739825520193845410882487259481558922843553765795043350024101399831123563853050656379210482196766241542403709103638768672729450106965449655858222612959341386293929148374513806345425506316353705609735937491369441700145399554923928032728893655713594948882545715479955780439049086276744415573769072861734859340742798129087758524154645794616596442623650466273849429530378481617326850661017130858563573523806088706718605700566627384454173897092221774263774012108902470466734598328029847852075470922882254285293750515835847351241553107229293956427529356008418588620617974452295134813713832311709293417669223520944829893848872951961168301385634247436838107351340246390278660418600387138155916764028284801956373521693624935981289766705586667112889327889857006608905664416106648889863063419022131004114561372445924852872358984877867162900384372741989468239038267078667413211048922486931128054110821936336447686761139026240977152173919808998221104579572598667852450777196815688469930150186651302281870467901493250717713889142975722519284724925385909532764706848039278789333948876149726141860255682217153066100214155219673360715399089378510440351168473198680272737837578839011493625275392617066527233438658766988700813349769300477855596974615005686457702438102219825676677608609899708565816713452948771130062905747641405041500618652331384844372861973384805627648306088277405019796743587199544593064669813102588502772607377528721591673347401024220060050201552716922456323622240549732923692008573844915542723667627317233030852900379605011770571853438736635884084253278716643921668977465319200138661984248672223884099094642995527499800081692386270540142970939558684932125408802618203188901996292904305945246912347273391750282077707528446513877685095330848475537357602073701223068392961335405714529870857122247094244017599696375992881658883744704088009310522424789958852189848179408980066509348842176257156853273734651024382993868201652505150519336955003651953762214945586375042288182721835649444981067330393069899771274484668861660868127248924980748789767756536273740200188255883082018749423098227688724757541396823170262185676939152053582157478010756225125409227686147493230542878223485512571117782501925414415678073243032941511009337095711883161618121840540692047788768934438891462416966868099017713497425300325751590925056990649349005332869421631942155507553492466648487544186618459535034420179752523637174279323653892982076066216017940504168280437467058130640009903011556112118649591970828490324384422995325783049370963087770803300715018524331435577052987183664347022299182255136613952655019911979091684053318817129294641645522860125885046837431896363054459013016137932765378414112567129293478399724586150475560469432177935117917989342719420659343855219295935987858441388693923863681957429469406611887536648844131906243478265449783567825059955159911142037764858879614522679447631721540456322883623947769441527638933002036396170573235512144115244106823806679693159195897333695659336173967876161179516608486916320231539524810151566602493592935197735976279043128135262280113459877530476626216067453336058860417089185579665368283786724729571648759949936278383202088059075456555887310127033378656469051019512803407391888698648838779972002722956903091345774672084595981482712950246197070556880030556550005276171293702727797839951446070380196618994461793072699028329290802815594896176800961609617856312602464959471541731536854119077762205813215417473522404330301094664325160865956312338758739634364699848485246741514296366713590155788512122496176175776359211780897093029630444985384484215313381974938730791862767960963418003040019108694682819380658240110913964512010000154428009003974919056278812216116489670835413724046594059594731566186356423467379312144770454769610854395811033963093436126480737306953396943680820734260571350552211158334835754127351204653000840221871381292191512756305407345902842643507854938219835684641479888773999247220203434630474401247199198915706502869386729139189812998265143911005604377295092012220852347484045545743684315581995002129489841041631770278503715607763550601727592081111618204562605190477177761723702813945125819782002893231208385582538888723226340256893017794951844618924453719766670231556370374850260348259261149827261795577133396699644156284476415934714280086422851022069440878091906502435894722137907166012630585066397553871674961925472940333320948920069097145178257037391106499952889980711298123918916646292024499647215902195249342184189672588703743169572426499889311411322351551672674738929449006348309697965493976003062399576279877127025222844485902623834359591950715834825164233058448247383917543824355882390836302737666570620750568915402690062434558404330343549302034223488742142693883317563068148302656478856489252125360175618895522482300748667681113225942320246930749227934926247966550602779507159404928919209574469844613850947151674716759337034269622365134775251844371286829975154897215609501074672461224569786362274953237589437255627821261089181610524250300079329562915522464814778695538709263866961663674572329163261209971590199017897621805935845690822979914458603289170076637453888326548671915419259737676783045139114708827614151312666316770300295099517677888560035733222160382464334150788147874176950706730960716339188798437843353316628070754932992093883084483983782141487674987862134099355632342803551511234264912402454398569742118875179847442989238764307517260959453889200802990893782726876046351598820203056489998053099952751571845702934876170900023477275718362332724891731722252092339996235460253595746091743669408727004288849599811695694242252985770882708460067393931597778933618310807728609479498751714249727205274467389279562994611474988785198951138372313404165915895470829838225857482399195467001894595518189388922073493205674769457372347396602169422481499769101910149959993496992021061161903380026474445235010895752634078428019317386079632923807574073710512427086437421268268636750889335844527589466503074060899371894251802465624513076133171764595203807219733897987725232334651058627467377230217033440164183205085474695047431075548081844437308111244678161034480755046012316256273858320268542949414479942252503526776184640039522517690025116219453576575737153123733871905136045348872105727159612956729899026948044667317333199858334939323965432357003987984308993961505355337613976586322984112602721607843878131884416982000548523321476541428294854344307094751364966871822465711469197799717831545889562989796887721181821507965767499756621877048548386007416142164626260887120811930336820273568030982684038653888714752896148445456217466744834124680388535663831769916019772323362150350798294248037267156568149888275793670876197412108285090252451622714472375068015005252406279574318155353250144364288754126107608978462681957907393356490184400746620332744267669412178762983051047628553408323300677332524209390587102680429858888367458265291088681296169131153253497906424280374640329637563816260256473193185588712072298544266446725839766980338489184167393399035502547069841220160735130307317071868386619553683170482762397951126794953327758150907605318739645814144780386560551694722743594827608413587906432316480938623861193853048757936719049791137377631370370340137620932130703840449738708477095443447971482506805386272663034292622152546319784047215406071205964909953129532820809274490880711859669941732518171676897886682845093833124746509596715543015589272385041150114499171261963217311377828249147519238296049291865266332214855097194985260518818259383508027011757586658468104447355309274410757471342719404725471938534697758451451708195412837593548314625469919499450676401672794421789018848908096179711348820159327889557582994531432289218524343996313380668336855903651010934572541225817090748982604613886867425674709555088310786646833279816190003242176436771163240469266869309476910782161840329856340170557845297889984507632672990275559258181613408952301454933610223381597362074753394572036124998822944302828177647681553748145130726522408848344762465197139223660744297399452881000986729759372290431248751609761267414005166120159572833161962775836155772287402665840757763517320698819533223252655725224550515935090499949248578959093591442708210886923149880907835405198167753028358022809347224054529720272080238595570239910410809607040959061686580752106026799812564483560719348591731968775490389915131403113601661601697137035140068210038951900448131001229219849423006410844327949470678301786932161184593815731649496390484480716385933675558443603701329141216557748434797052203415812255916516781060315963556008369411941838991569479182403696389622238623864797210536317834161863253062712976002119490973195041269397294487348216194544389963295324383797549975978991172932006682302550768630146067807424426594989227264885746348723714353240289779795237512869824338987475306037752119985006374194499965336107348157322217359176857192660423992992672780294459096079546068006894063287491667264642555523330861315510372769478752837659986033665606068287381364561108273305084273543226820699022974520513750380141505039941165188454698022072395259691627604663874904870198872186709640268720267824094747891295841087917550265785461641185062603986010727993237190207406173330988170484416869400677369293798371114764673744273749153775184344791625927174428701294041348026391134869072581313346411169181915718993752919103289432733499261643519301887339309955299244638061167196563677289913111750614993819382295066261521299518563869394503887966794747261650574925873185044835958093910612019735226246031989800972212727025141745507592179617937253093115114742483022019741271121446691625284747597857167838683673100397238677836469038226220708191210053371206087640569085636812339767468161126739584569194672079481448089346521118617923618078075522732036778261557942341834314902226058139973706663094712699721820328083085731698075335241526263602994994997918094436940670282722114046707611220475512163882806316422397443586314574516395581321678870946791325711120594371662018858990851509742760163071474629652244411241106912011206751036574380941463728012569941428228976091236935174505507879454279535876998063076686272627731867067679530982146959567462685582171332234714221211348806306828663782948955548692555808849363237745792769015039695226467842861113133968944679260784951910854517466788843242135731502684674142511243120770095546328467231224287107999449127608153801010891372848960567573946119265448855010040608783926966860029820299977700421957544323360578350932011839762262628999667666661536354622701529823635568719010787455611010503634677792054346865969089713948418159960828294280682225615886836530792808489656858436345460340350045878588852371700207959425139443539020729843941174851001296523293696956480558145955937319812836007415698219617763712648083228851288458817290129911182946560349526965341844593076628099092049136974074318993901765629257173390922249528804345085973988907394035793960115977774420026087269835555749213307545586293168314571944660594366212873135448228315285289423858624260440229087824268812068438393557364062087365917316500269979836894724032559148290856270086453391297992351898466866934342506828303969340696186050691225903200066987143845801778388151080621687671796058722862192198573443852815157175048248312619307182287557203625032275981927710194429873849044220927083532754046751046761800610349228576855792515982375257683240927227435372686718050159178645689704500085664964107565102491661440327786379136226349291127644754462697520718574937644813269089743052221001942889813364842414798978327960164313788267017099394954658589463007038163344371441326710119898373281560526415975207884688569813216138451800235831959182852750382916462870183099897548376442928384114732796815074631085347218878580319922884451018286124247973687036516964152649973523839570585134149501790553923963265137345056785140195721137426860875905679384380127084366669393241828310783638219332440045046716205062820270083148895441195074188047517508287480525017477447609790390464961156023595120612693725262109800973068867977999943268825739437647054435701980650083610351303301912064458349005200006310858187034291971860913923493622295804703891777259858215514301353197776304714269083318625811533604529600672486293355080861124689028753843287814027124511629217887936930628314178484452358053085525936373773707172033878713014637731791382751524653113051100472171653990168965304850402420749106769048205338543764967605081651087000882438643776974294494189652363309620774876762968246946973751507519595585133230835734526817306436858141416087935651879926029513180652841725978865503642534688302485448799325910670235652630958488369542043186247754870011011529605364206823763843517822182616153300696918515930771489363471897902532150325014605189135143327687936668312206455983279575084952313006697442108662779047918173198890533895030436192655359339224263955442969540446443976176297781890674341584938311384753339166651568225045282282437733992685822827243551401744368974917414302428585366217106030271612868455296443835946693852157132683472245226174684007221923256426632451189179014162100521454814260834818832351832027438283482303757155085338414526641896891459394801323578769770441224191693488176526669099474194645238640326115560519900568947824163431533299846176444824473120493293384626625593699996001555750524405817325155373371507864057296131885159418213866038019476706676363436495314800362684046972830687148206085602962261672199391534416656525703490044623292620365930330654736820960479556518281452394294198801983013440016900354760938536653078695550011883272075599797397142967786514021452263079955535527148721282301378467254974084688073900515827365220746138323565874876980769509120218594334590906983001126001509345003451240453025458667529790529559893452718246404368619428252625793031017739439913956983247475997554796309089328413154621923755697052922579462153973520602056143108286876745774016733323264185567351694144154278507840218017315785644554513075041237175706822020856517683809224510633577955691915218971612453875630639999845964689463890798787281307750538237361295144028086029366156155244400424649639384753468346560018960919786997373274009859003836628775928336577357526594155406831458227925755788589465131029853764069317688753789809319662853801146631644580679197361568576277100035930204165640496122137922973976407291602897384586962908351359103693481976192631472540182869971193017015640510015740236334405979559283770115557134748459255799908400232528206446102917280546281194306399392978592799848286241910639750504879719949248365833701216574407084193719803268604566452358690732332409193264310520987621501618642761100605833573219444203303071965838680931573283369884028755808104964126113367169143795443487913860422257169667502926888061605272197156217113359615438713378801352616073787467567417001258750031084785705007630489490250329804227226851865287716127604692705048451391311092774286009303101309335412347704456411144646697051337954296979070083313062644128016897465596409464196376202881340657444126718510120469755924755614490447932073128202575595494925319363070631457319251944862187260923155149351271803332532630639918943165107624797392509495962932264349291596749601036036009891583020687804295012366293897541435788363647694203164998203330569915533230070718233508388825139505213960648434045619271008515772747969126007830489730653851771599473342993468494385065290232010595588247872373746850103138001763914031817729981395951232846355227683199992052011207817870328148447850187053955536154473494984721015562105819106013394093864428793915942235267842231508102067637099404138353384819385788564722086497248137061103068675899665687710323978510858786401180053559336285834236557750511559755652407486889224616375250394902907994384187835703640754503171346722768920043060296746166154566903305646536185246837665268886561872875821306121856410387988343409426544742388318689368049651855235018794047736512273385492268750220846008446079236967082583648729885643364320257999263803712407492853283310804649451279596267374263759366564262275517732862834882119999487458142957166146229614149248515600438961017693259969750159387787776088649843437508537830463644403795881673143720375637003596776779881640090364914860442469990062807075711070711886584253193466015366450231098945893517725762932646991177601245366042544570707643905868487688365684817078004092016654516157209198960027933866349810481073501661661055062228150515431533654888917602572398505487988836950233257879226091733663605069446625225894650602924796456962509747245719577013756992914603803730189926075647817607750489810765716709596809443440868498826181930142604841604402148749569938329043790434125053812020453887015641032880148336824505045269505380746583236416653031661913110866819266421106498888959740724785422131000150516040303049921435382323885522692469192853817353250964723318418121406085648560765621485157844334763875319273722138445712237248974265335021899216773514215428397037338802961794289849614994056800027490496787203517705093398438376164987848511934757618588068244220145845512107544321087141625132386241725764466312004443202471809532388677158422095530879849545052795378887376169974986459717608510489339090904527411879499706909820285726372020122929688075706756679449847119617750718077349770783796972870813482525843646069374285043952315357171102481378990266057309402724672693195248680371513239182790713400629600428355208352708144842576668825527366094482316573824708275837328188611088886919526062751218688326662314673975133884539106517254697019837338957890860711747370567411887329005628642736416241846975858916218267298328935072002441619300627804142592428489671330962681913486231351375299797229474524206311760789196268504650930724962641504098875252048848045919300694833573948739662967789765061980286674255316510883945744264928248600008838429513723203457440796186583898149700775012007677087989967274921933237714483843789364012206219907990138416331263627789212587702978880333470070939200905780426734937510280151992967087419753675380388694036845070473941005622865375034439239864283097803003359653080845981618805365937519986387207549989165574682220417935369164753543008879468824495750355142065538793538720317241232384457094238355532171737492760697850841640658750259133847133092822845373899596798913717196021865571565672908218488068234417385146252924701121256122533914787817377602613070104816894730298943826987079872867034809117724527408707495000671700273190116151526556873406312650228785832938314249652789922176519849047986924621442463204725860785593039727606032601906369993722770393809657798996030695405436633875377925151643086413012231682224215137961291423953615249612860749213758634220525873301621659886753887940814616013012802493570836331491746621483602358995512680989996305831711356347586156459372308546189058493382706197548846132713885287129245251560977593313890247401337216148196342722375503508443307362964237055839612367779035017508050123775016888935312746416672121140780131486695078365232319062068437788638688201796364321631773935671580772214082477859995634625505693285782492257760583950452341046977530521325495236179626348807789711704211114862886036008411999204173526530331035130654925654780952837796660884155250710032355570609154904316595700228378345872629613405553768058586517209672714367748058388648303766281264285242905699925090604654096065925278422833407955621911068151520345343165936014039537852470897417772678317854566772648755225495004440704750652436543874238085894677408580098692208615967337835639109200114986367186137286331013138392958978160664741009252337042761097149376505671232542326034278369610107818162158357522279589557221704305800386918041356992148836535149776934001582485006465729732725428850853776915435402490524500034858771002657367633617067605269835614246414849061786255045774295325355326645453401434562827950343017839329397436750521898505326831479583907754688057107386925329238055095286728590269411279607003313771900878658793841007235978630529770529940854713767756657251035895426363808937606998584555730539706265786634957094306313833221064305656632575570381137888620309916067660075130301438825018308064917850075022205546905020240224082958783366753626565630106692762732868808144844114990749464963410218862938268819969590940914638487774203067539733563311318810369859487213463571846871134057186622675219673482770703297276396013110406248873344073715844292926511588478876622412102995910201471344666068934116377036904603738347612254923505412963397372196186116705869009818813602427828314718886301775316808942510518803504470219018612833192284451315206851802114519056407923563606733706282061262862745047061765604835682767878263342723692922949626067682516424642318947176698248338515875450175037653849193748873680842445437010607196896631430864630386732370277576903368942164206332812072366569946949727654880034286075186505614919490578878430360678526724449404128832497279401698827666028287287722590771142576161333859749797776208700623432163578337613751600247022359469565941504483909799037400867875479282316241977766065413009242343129963797001454996437075087244727353791706743345188717404083541107751070862652252285835308675088312631550037526460079160374138331468734739853735550741185916576620710227834444711599473874575672767851933688378409660428774781177785028408320652313998692929072394833503957187601574353571253365275041739704562944714963472228044515867656224954412585968529390951818850985372362727376087225112435589881277011263986322854723398451118004513578478642582685374820843025556163405607114494300542411563916642717434387649405782257823307315770015394505465743036696914238894144471051604854763648130636071750207523103305676212935600053640385036881128581334566172556094876849529790150796219974058625830972404074859531728643656093979713694512361605640166790387310742854015771787408274239718352507994068276451822098787175616309393022018838857960137639016741157712396910209097615575447390958624653114141878830548208143059725337375207055606367802799019403162501425307343003309912302151878203831417061460845764507346422593779280925882173093740620304466126906633809650405728208647006572965454606317796386734419731476305315158225402974205492941373570220164048376346064766889058978805867295561675890969305504849453718831884915917602930082501683147759148872383704410937138272322345826154492423257348606543994434434554384190897616929956288216702109280012514330728545047567329390142969263660171092732123781874800711766705557138192038768244998571256487999280388192970132917665098119078018230866295847557292539897650029620115152974161633544096219176430422212718553976529240539821428427717953466047060064378748014431895406453685491832845642047445802946741065602980710713481331882539740310304528354669383906145642041326000397066203762990169100542083839534118618403467654333126726171424793080878963738278250253840219258182440729832502429487784668774124578133362358180458956127996807656591727831022401535650626329202095646222367800212617188261878256671784448071984965437426681461948809025461028100377603886840467654156977154986495666164308283940035089912762933889979909524138031075996036489349072557783872935321068685516226152844557248944389446690808811149418237437925050490780102346178634833720896460711810933512419779855759033368845920083545595795312140231103008403108795133806396927289197885707342277845732593496233490495281977009151661748463653629010081189702383990564305178589301179884057428091679387640238759990493338155149666196360481074122249272298520602255219742322357500327446326044935614454089577442341851433477892278577591137740308625898976333848447845245602472353258301947121514185668506305967789598517166563935519263871510290280057860883751743174229135999637248841170592740733574152010562319961384419306346928566773992091407812538902445923384275980749730141250596865664404766730403916599259898118689210275421161806237226215939318979924484305079059652260149264022606131186792254142502727289427555758386720223748726386371154356083116255002369280459624300472587448767474899652546250648116958266767416616330602787093086270269662891925943670594194605773826726542497264693127007995640801562873262444051747588021093419546577965436543421605367375292924323902499400009834907878883124716088961882902130869301615623626431826017420544300855069328841138454103553677791304503441019661904778267024651470738726873602596927581991156682982896935040554855719465193376269691240892148647998213250750634244995204352699820975984199113341478201619226813775078704518036753258679471908361031545552630969719613546665903152121012219271643245486517902677203013101126702401884769093693941389891236510029821607657501955010404561456430313807503363808565208065417885658406457650120768444425661707260925132010905672059595568861932518308904916278411140201138407275284340869538421079551144237560230202529447603405416080761414812372283670944287468876975963427681278540084522238780480375991289216580543361108797992649497237535776228761262208166230979310915296758490198771407292082376693571083707303914533873144925107129666491796173666916985529075786838464039311568444156433538393899301735529806920073398295327907705222600031976896606979280542507968935482532413732513874152916077232409652711969794512894936508575341110587911670112119090634560452683819002603387246098556555615819880943338634779063108394273802618252716970068657002513686185700114406896723716497354788262945167025458942381160867101029933298320464712208378775981069485340370319673295498102174374845043988876998190778426388821693644578321634478240573959363453760905724580437071057824877316546969383479493362565678101157375680849765428955540068420530525956970490888750681404375366614845486853337832979300260693415604046957015360418971493321707287271588076298382436295285749378154538483691845300952142421281812078587087744114127939420758764362735226370509244495418376586874459177162942092306295497793325239043251954110341746125318207380590064857925699973285673519196558891330617205965077991287613451173762699026993938453516371889879099958343502895599697865575070025328970033549976830149384632007166969541920914947225861238409808644656000135567688206417485089469813554944461127667845770177136155383036867984230952722875685891061402308822870474616957514649404328818158022271780761233143329595758477318216824268552467320850174474957903954279050563070073545121123784622935800652109421566304398381945152665959306905868713882124569717537554875677226576914452041738885289206942352245663043878115627393279646698254547496302109113714852709187632498826160730118155883872518725542197020356987017998529996630426506441216160857369725991656599663534692642916790555778868946055148206495756718397962309286994673848260181475042164276677602025283220363572829713064644881838043156418069945943838380449024735068790313389219796242912132298448373026744363037826897822055768889606959853375740085517796690886126564488473093564002192605347801894791257244763493427650055993912482629749786301089852378714452896454804492082346542548389416598355798627884826720709592763133584160074280691355779815112048875920886500426209859191946769046291357305572823258125573625754277357458381485604726271097911355662891194395524818449279429882993022346164615590220976291091885275028720672757071650241845267826825604877469173844577529406173725840936666180030739530919243318892633911667802642888471981595260321549306808776716144707436912482422307160692773439375686944093720837394413747364260708858411224085671734039091087625543611395286655660684343024150110001863676816293896540166996151976927460039169171060172807551533731185507011103400402339366882743686600177643103092841490792737345969323102256562258996664311881646553083040906313327560317484444318778322814453316340277234677047203907415114450924027676186333895243696218678284129070796421705899581553762962215144618352562217132864379510235265450156388411601793715819205696283239693768288517224775378069256530701186252878747928894762887399937245667143872911303667970792314880266109062065987523599029327691524816033644676264712609469414839404166698090711526867460235511930331779513471595687467017299025413846442809175886963147964897350340803538072861890465453122367521859900754615189373153079255981433836046129403701236943258974845421848797879605468249418622986842169642953293806917485813703892074479250825220447695686182733734197256334777673220272580231715157828865559271601966137946124953179555425016961231754615525287647899204033199187160256586583539217047848765835995457246536976933312384001255647578172766388686725813893694395472010750462185533542594982188461747924551840008480770391443209641652368520707582523528828289821914815599531285264951974006533114575712057947788015009270526595192946186421218258621157514399536188329570273972273625966582123829386064038935732158564535908624150807159060133451173284733650379399515150686286223753782809317512288227665684936388594519155152542515657366181893322792488948860383751589446387416900099412716644345835072613087426504722722572613375853260285545908844961704053361947940793131134159171733792216984412568043939780091834070015040721095791832678467924465113451406633987498939923730940197947429122864456544541724038488607856090721837356076500123435382172943830745242232922135467511005937216385511668345107671502801178279646772417153104227764165000612571444619110171255250227324857990725327024675466518855865855722255630767551549081428890137368711053153375247115787087333779120438320165643436876638740953074618098862880736161908951005068783642889547600488254031622606593079457545483287758797915583547414211888964244485784787532759039931826528265581464344828670279935309678008198856724684302367657535587822666626004615612089660280929422814397834514978460951650265543265432095292603252171729354082388621062254599800242738208113405521702352042004314169207458992325510452719166656646581885981645931239117725535439570420981809034878699039067987886057558928059868084813132385717932122027772351131357634650708685264714194753075822072480476516520414617292183823981187748204522609745241156207390814117997622005304191341124345370075557823683799941951560279430027207446066978002772378712203641800887677279135601308275446588315281152347134334941740211571669783261855697960139612304153021374463508789513393910608664647847176732327032956688638669033005330576799904940322428866026179131744315677081542825691657951228128097032853395303826600857270265226833057112664516572375460345598064551023267716374570479621604780884825796144191747617308563130838743912924257006515181328274716883112834646027923291526090566503656503777927099944537122671146597805465381874557039473364835938577909291855779541315360855389627533926029949726204371224646223420171229499181971076240287673942953636272118014370444842687232383735236080640728297161121068951920442653310606439966309155560788262656303180256618894740959280957418231551846105368402791561623388830299349802612354122376783881018177174400966986736479818531356267021839685366704990543449965012024940278443269934972017035797920454612953583527770472432321811910251199197146942799245749753130783148587745506261514430484892011885867501661346337062362280882810801372308663774709337808731995525858230622942890761213356305825021561215413915423099682121203205349263076033582837186423726832376915781529884221135049721156945164171170378125067677688814466422670250630231199546614857158291250081618823203843780998439943380139572451872311709738692439859733245509997419746894123819848236794236960963645713036022110996986449923045366835123416619200724569528738340046989947859797605251482662761813694623393708105633588805464493682873295437871728380194997655294910225602227779219824435405574762851264177076136001138924735381423091100019138004871179706192468440198509713704885882460332803015440423550793977564312268365489558573010255963467618734703460124412239330707243559554978516428614018368186069219773881527747529574113420201194090374603254645251428676990648180999077151962879779185541967875191065389229059127498052136599236047131277204006353893946396183477454300731254707129532579650310537175223361260583161949546026317047576074315456161530354577933897911186040342951505432446051919216489372255181467382768925702501196461446964088223412306521221890807891372375706291320103785854865997161392408207073045995737529119776246063589696520033613210541349438053177117454701340651250721967972780439185010690199287114254638753494000551592466923872201763534964416710146266655218087442189649547275507591364786477455529957682598251280977806097037767251202097686827932022522821280417019227220463044322280224460319958222141800526112619462341056176888592049805074570925701311241297294852819418739872674480376591519591180444664977368875702752637363295915614105481276538865970498251574851149484472325417493950170715585695155060231235039686539883725434546965062202166561292606048977959675430397357342875442016285924601571380695189241770978842926537094369843710927337300128780203522186329784207389066385670819229913847584717422348435001269998359520709654602296677536053551933777399314758603390365463224125144652860287463085605126869577040943402994052917955679958833309063517899157274869185764557926654170618612288127716918350108142461644766546462387950246457713731709723253748258772793888747522432793763762731770521589787481529770011804156048136729394979218880577628090594382337345114370072961778927518281418407507987043083187410364161603400654757761997793882959251825400473455742462538266568676881036753315821084298938691310417397161422467909648769052873957749051249674287156779307728412002375808086450995181261942756923922320750816149924717757957672882728755416260848394010986720718626708141961206313172678103935626124217214379404291185506662014762660912500410770474837163509980001529090323666218539550691452087665013208091814797729275798372092950513782560698685182601596300250888544370495467443409546648134604999908449598542252174682727458095137971758283914406522974521896616678780989327479137944329686682686891275076980907374278190861739350973920933944894152165470082521360311380161668112644014052207094988281747826014038833135571685796119683450400758334441824266861623774040094010490580946097687077244564192348157939612603513587897128891153152500626493020734967047219108939420022540210465619030272142600167752010051364906412096536910649365056039359498832741166693585859209992318074896909215665240092375385557199283962375490780616857269449950390921952316044708832188442643033367756951582521844868904581671850670968710437738878166090690886748242298674401162245253331319378790094342190043369532861190319785610246005712675399753996441679048645685303471432472366410442413192282122404046601768183480595844575707386913715894028160706451347401001947045071540889680745374449152500087206012580518644197927955471989494399316923467104742146661934323935599403637370819182521425156800926675166245810134760325223873018531840437510462151766955642537426023637193298124906455970861851272807799316415564023281678894776500404900695007590050148920422353119695209499214040917528169179061464684953147809499162050639745458266967846090742236870767205684769791419407769345275940574631029984309833695628939208895706256390570660398766532220196463682809925661823384415902225777109292046804318546488964186106311726395130012855894565405456868754077548889390630693082137540337406627824036190733230265375578434818939861785114896013769482873360352081850665481121703457329035470520774188907023840286779616312511564021553570253797399781562462318580780604705725480972011033819815759905439399694199087928026860330101025487931903922107785331342336501417634333291250172211686624183528469169701588734618293680806744396289245365706618500605332613004495326538758637737474013932236227042566742744182340446943627133142787600954649692775303284294511788650441967293519647870040659895556863059198461823759605050279286560799243234825904018240706015675212345467774145074207417243665334543245908440643566453794137143718675578791988552498993398007952077095021782363500679094211269807679744253731458635322493644850416893310571448325869618246104855561033973423501940599813658500136870463116755714544055285008819269063825325157108945291106765029860598133701863378537630653340433619957291179224315968008465931228967842254616021955495658731292664557177840058331981009650907962420168215626125839934448430803300977765652486436361176981995008200546724682375268506469626328761407329979268131734859274591585251833594676949521399177118649367335570330909730754652419672726834754705988388234359797306845154756671423717742789805780362446305006510241243832799510484842136232069409647703014274176767974980752170114607014662694679630312427672098123508212126158336722208695024476248758322058191539887208089001550309714381456377009685094602729019301889863965886307565141021885940460163973738755656019713629494819655674254899429533982205071081209475543485610945339792267293601295050605670576896312416116376792136388016641389449415739196350500675924814574175619801708978567794198685193048897939039203557930240499510362770646218459106488252369958245874330958847117126310039496762664107453819476946160883572999581380704963997625748097969922500404948289820581311041850996979691268542360355931817321343384223746928929413576261880155847055800744211062535079812045595070626173276547039418534760955776381606215400333463573736240925156190899068418667062590954182981913281924654100896090577571558832365338234265218292945913052896700016293476847648043247549260631722758211782066357347680043517818780791467501156124888831395024171863207759215005185174077078542405642330926359675426802452361291584034423207993103959865684726608824082506445797317946908365114606531393955684013343465664484965273448361200760163810024556044764077538216511551015860555849782772990424219873212525414204146565366653743470315191517830148783840560393468995890274309084281773517551308166226942368976040307317847065679372806533451840710554204334689475395556193725445619165379945214283111383844157621021136725588309081841843762324248904421839664773119394455463853423569350944011067847192055776146049993101710057271936305381158012689330880095155457139930182052683290071356940617462443923512879140885745227486005196235513188553487997024027476262851884792107489178683872949683009287805890064215441122477666364655844954256514123797019920799912171305931666936650249335870461386737592944016346172405535803917648326114120776827945163965639160399409268587281916656955609529053274702477576676781535701574639181211553478850163378649112983072824838964354385579553489379588718899929460822471582063460705917970356191481915887384614340542072046529812382776394455454327849106063579767548221715255332943562142975123469992231495987688821273202940098887313114390115365229869468691978695396192585154178332514491674331343718307788649819224286166612093599994203325039374642344265278620681813842648273324320397625892291916576329521820840097915436567869725783628245274681279980247760113461215455408425614193433294030467298587870209815243531085676582158953498759305168154144859276592307678673369881595057165665108098342905440146941837150100790282691043052269910032625547118278608873898487757502058049078779006440521456456401673239684086071842187213766431020352240871628108811966477143872616310864686283409596420804177136630112344922789575693426541633959052740208265771837475624069438834518996691853483566548311865892011278294946015102197081038443613925156662167100198335325631593583146101417717161594509697911535413371752716944389775324929618544151571394293154285112498708861647111115133459724639063787394843883336740198092807979380960793569059641087617143539184113956500528578870022130403151429525322233408286020031309702023630121023869254104108368348266193333983527787576913790115496067294814287428857948649247312546892593323859116612150931051723283130653702903496428754196041498053714325297845913375435857637585967175436464434806752292643408055474963703290069815676169792480201719748425742167490073212477541707247545192111920545564299563076557011604686416960359967141795238243898833448815024892313655667729067318396445221934022553560733648173214196164313038697007161371151549947696110945499862828295090589033681949548801841499070873433918706794476239243749509551209071526558276516985495395972543989668186905852873889144207592520795963793252363425664990666744117104795116344868030402503068395004708070013560367142443213551442921348969110524761081067434570942950721794601827890320076950697559787555239895079899131093214935636451326126974546490608722813078540526105005614900275238052894465470682361448666115166915266488473970508550812508805438515203043163088079800756337378548738851217942239888394378827563035862837828880454049702482711029903813482819362894644942779825666559394798785864793447172941973810792280105827917367678956768760005439206228659247632392926987781757267131954686629761965702926105498204929500873034810210194442494220108634464233113679738714128878039449503766060130965039593879921534506298220101634139511021478991340432606428860827908562277588306353273008022591853540275774613273496148691500019743092737445848031240931287909009516947058237460757573153811603073899626595158440923491404601854689109653521031515557423339990852470255357568333472720423398500868625630942082015884769734509920976668742664186522619193039837968522096118590458121668228267769805935750319870889588376357682505472908067608827088846590000681065821865355221229533891971446208490581869952761675121312836240326787074499955225641794064267440404335307768551675064173793142245778128263989397246831182008039396142351989741833473419080756979690009262545062009424119556890894983268346871772730311609097014743794991157050323868147575451947346098361876691052577988647379916643205013728298463530882914911191005631806578321600722065194039933423734330240285573650088345564621261640450515157761250277554534137966133866169306201635150942282715543013844091258858835489980447301309258655803162458622162320276805597519290051026902319433543791657859342937019052358508337902288927595045861400304617493684271662417177093700026442849780894221320617612773201837611885220114939571866259484244154224415551724892584100831496057127517958124886189359146772918478314128544712233541587642281767112928179388454766190978079228141303605236649492481808212771763193787460319819022091359661042706012919199723987166602861458913304126113557908978905661468659713134328180452615977401813649328026396809492071607033229890650807612861466263153153586699043057170499715421567921104991780942374183467142987298120486685080053706658632832796057440909929764938137366255912341915773628525929706401071437700027899255796164777106899990112519616093370219652522808493067777054587251333253716557083002806268121442942661776179130271891273004128476845222724640615669213035974443470888650648391083814485833960833500758476829998841550054304237992848922727844456939003231431408902905048456903805151512013726010936743911049940912523586830972294311365128495086893070274172150800921125135746930557745956422593777672262109414298525132648736629005367160443784737629324316590234709107538261958873429449677280572171196921403636163869352671890427168141086089718986710469815681543553484799653924079344072823238099639494642490040284723710922762590549907733932394384822582577317319389131102506951770359578325391788165558404117155538460756542725026259838063019854360309693391812773509827420477310838177737218944751553588949879295443402757956360942719690164676420875512197646297343752822492673207069709651860123567310968717120656447207134313609467777948492470749327633481314808552475623580737230357355967990844828142986925601045037934999051768239089319323223981479775349716528766654630742660969385064825733401877677259458913980646574892501190837696315920047665318039790794658725876283642752454162096658482828011804365670747776499177210692778808667897686791278344429034770377940385950952174281575917681262705765652146157707820439419394300900311816233802174747556989398294136339626089118819454592731127522435871976802088400749094430495873087086001053528821963870780510617620783508117075228939906311080855489323814885512162199454238836518352448092767125606144706401872213872629610391180638924583298245996650071300391460855728056863360502111505901800412381883570848966195749646557112922900095524230692143513186074049672456718889051547407405016017569758070375385227451292554111168426881700526686094832939719611834597360387457520651020543067015995629885626771448125609090977342011354825013896688971524139266362097304644558591707807391628865458502488913750354416326695043201364213908374016344993893288796255326327528420226237409627747782452301946791296800411177548829906447780871615591200475869196735484241263813481025627415868004564077006458190063282623821709684753378917896289669200222963144093647351323698621793160019373415241285109954974797943628475965401899076399907150233100652289790350603054229843279409567359293518116338653589987839628023570631552770242759782821387075585947438771675056948738549778000713355850642208040794033193260640080466239768996205440449633313942032864216324936388955302737819175530815755232600464209177816793649255270085389491224526557593745707294614787023036177961049725734445106168619093878941599320299659379112217609345858067274304913137092539246961557651679608352367655405645331320178580417162373980821016653101589252281182187104745558931787441499329383779239913714922282910106712029057315167524788546466637198537277934433352555022498333955470020252645872787902677673942200009811181253690421136505072882523782566573084679875418758943212612868682951719988552539879690634309604048367542149202717667679334345087856419305390003378144788813674414849448699052183719668665729097280120429434730542243020601851257719621233164267231825353385600128812279479728562701738239180371901849530358025591639528442359780043681794570795063842625206749846711853844457774690829774437805644405341344200667660930425141348141254859854025184223528458837474580015760990775914645242373130949935954145215166334634383320246189887643935493961154441144255371657042250964109389015536336268042034075267269995682241628805142968812593231290873751523708839826998796798001962480735584958974106386666776636332643731803168479802410963811675135984797773860142260364907373795102203995254662356930509893295211340435992225138210765757821749562372561496523371433209458203153356482761927504634731354548273923181084918166258132577474475676418049345762458174743391639610283572580895029204735697779334957329027999356885658387662278037812348755100450843991922370105602232865921265237442368490444174562153980646694150414014291390964598792420889934502571457377066587670305632480089170364980407629881522929778737042296733856748689476287215797919725441137328768425218155591671433154266440537837933564242794852093957237294027492135311792509576879918444006842198747147499925192316346305779870249910355757848930817221063405400926723924881125603339444110840186386827917226585895322028435544621489657475857822513149275667178103220435789879325133326044581482280685963431782824362599685740340971213948750960931793164096719757052833586428001963175444727724130337225251193197771390487437953809523640042193398127802383920838783390885090139528955983372934117165708625658201195522773445603481603130555922736967887944393816135846025984386331486890891546444505942267907096132493853754234595459324215542793456322886948013984597029469537362891493629653860581581934885892210528501829481255811670804935724313856500857740894575616756046417813251321950810014687348118603073828032118895230088951390777142224390613276126777620110042203270388510087718670717207369563538325215754139700838328791052577101917979676236702232916976469792938078929140783628587364821567021401402579728539432244998496870948017936420543491261771509797658239298337816696004804351247109051865271743290634647950016764962429628596810264107357273652552791454619514850330081615889399871127076891967195029006962268784337122223332547772932458498418642018084226180154714691858644863969107897842777049027679221109638966672002470052038979417816049193390991028683766626305587962041003256653275725883678200994944583809439345590407833046344292991679402264214435424950045914561357862483232332720199852715990741907935282461166230790019794159079848104381012583525513472085700330566342651319052256271303861943641233778451627104957021339344882853667334487741884757302997092047974472708026855483645032963674783984235275061023307059582702116615738331845908060311771456881263615619096425500110612825997539900296788278465609449994814065638678185616280475717441702724592999130458674814768759561524774967587996484888765165834284053026631893270032747900433390554991281332820937166842827195798432466379913615591625911573324869601992995327862504171445833659701019293103953208044191787400179117621256455144003517571753707784248552033066233393694889700178243650646108288497792848829908838897636416913276666073046443279321032182458452729669137317998216524913518229878542358083067379453871073656143782363525612103785075723743157847918841424174121277499051697569342395803500310429729865702852027042785727059318320734866839862906605895933132105150887080962826205040248824517436590182945215496812889552479153681283130475274813254979033960483961184353922116784567521364049162153822175546207619514980471606102705451943019350379372274050607469390979143620711659876176528890197678060523177500683205038558108503121071800076819776104958696014021571004113802170883281269343452769503691400252951681493830636105422322225078263074071975486262003157979268613641404900975963713002742546780266010252400534496553705373454170180662348863907997330346749136230311633623295627579905822354352654292845600736679349833565759857709209080899372362200961675390898231449454148165182686338877568663133214874729202895176997881367974327493790817244518665836165156084108185386540894084914302287621955619420533663088270789028538656798985816755336864007455158635474871137497323470332153829824504486903267170431779276939894042219390602839989248634658752311917296437066614522959108192732757640015016733481330784219514998169946235532609947617952830008926873148909632843925812266100437645331804181583962533065299137038518831628636485079300897096931860677781210144696344672291091160955903275277903301132455769026799790091551394300379275760130674963781786901955232254923520639312167723735720040939613123554538233713932508260936629475953985672311129558635575953028559689231966262995597520593976950169745922041478310544336800816795344753856598078839115970254213733409618697921510978092271834034307318054696387695782606709461915398490249423868445715653595047405696973446363039737700537634049271410519479342192998965882173063896714063796468174547944479980725546158674696174755307192654596681135300309879106871672785238350383252672804241753214405813450374618546198526371597137879048647270404812060598401744199861375032962044575353635109695722545234411072286704628607769942188561021446496564804400313340013386316503445901675325363349872342967420605776578720690794299089888936541245216382856177533488852957008214212421574962340164007351145910498473766746977490471729886597751747636972820763261976321372038852338453107295248214853583678827477206065300993559264223840774690935644280708520431732402822641603092157000884988406397952614642704921601339318178380174666351867914989501677974662985751286705023714748858426994342606228529222391737844616044466427711150809031010892625894527842606750284634788937994892863728149390304311803696115595791584260303514713584853015342485542647802877421408310650632971680650749521022680330191689468645207900424902186558331012590204476885788426435908579906290735566265161544746805060855018179350169324000930496064457883464506469332379983974354325969712681970472790309233319800705474250103055673641253087905400335556164808569837284279025716152693284712407455823117486992045705563260692436304338742364826482735482929630957854550588417840633039637749610796931746010374341283824324561750833351221684773322837600045313224318959022286564353084022423239474138974243137859990860395653827329307591028772592315629754177104843409831628461367080540750126870984324269754181192604930035216695382789296637901056142047199054401088691865445899338565759996227801034326766933573886905716529884920425248857722576079782855507291988583075094598158107357580800282650598056896644304869200661340250263230556208295003030385424962629200127941705601229518157449145602467667841124630277806698105641475657718708835291463799219507045907849921707862589381373860611985673244696161069075109615677375303164110154966269928102500948868845920411247127090778483013407249434459902585830046389792904245468549381374041125942752179160601771100716508734926381585608471212628504570462373077030141325377942982088813106147012158551756730337361278213791758687538925744987519346620440165044146242862857055131287246974874534540490146821559268617387553701207713352158796128464276996357554810080794946677177263343467084565087217435048444854279109899368481871635925130433235677415573071486828237217321548336237978025698267739022400688476819589159069415474849534255306891731941003294386909814769753326775529710868043107341493726595391148566639225650527790471384616684808986975342993729655568481833083437351380624875515128456677864438214755303898825847487881782819486583978801416776084814434264631441131239012636220125614207640513518335140139860511132495619872946735489167815233058461220359902812756652434105286897552574093192021025563305643831727896882842032898043437330227448910035986129424612845225643778443128169912893745889754416589353146354712429083128044676932059358395279827315826840238327321557045815709340561760066401730467962029252132377425293682625447454712059787205703644305070961206648688685204854591205747391430351177454317489881480248580681909704661249511918958465303545785165716898990241542655630725667410458315390547121221239328360227129798329151910148607070491846116545469842184150742446722841139023208682828971443420506308119189847935455683314012229747710860174563076473587725489128435415465294000134320724747628119454220228684967284811043212037424838587418108038752174104063882026392438526029848916135141737316091423758161871579828602348761171523250343909174459472620909162264945961684119574597381590524889129900006349588738444662734473081900256131251603592450857748669118354639830045470207539004496436006671080520152494123512329704152861251694616896239544476448635374180899068068162259869899118718939572163677831555175701130520406498673429172001630518331649741970487498969550579141190205634155183338073418854326770475730008472820375726441938707753976527738171984981677798791182587071157834509501861419609277638243990970432836320617824382937296040852196893806206824576651644293795333599989911217683581584076563160739695754060192134571158079201260047203344611613168404455447704281997406494010877096959494210333437723544592890300738200531664079893752819348192834369090634149770192202251538753834865329371387565315907463516743798866064646205662037355151708153875058008662305581123983191544190124141583142833523995723660027750122152217919776740154339577535224172901183661881356095208244419612106301354271747342280653359540218529808963441323933956621876870141435960602657521183038415405623318565471525661913352891302487200282610981213333112307060787304173722524451225311677269159994058067734839627479805284595930229443629539164735966602973647846773552847981347051498153012123643128113007495268242033828784066570088750200108191175602006694109381731145612658006717712495363205388170586168741961155613059327914029349392424989800115975451160890469683107733834398511976225750188817553601427340050524177692661311264485705027043809424421697990986242332876221932618869812367153434405648964532086356765250542767065376425669894427021647251222853150195105286078649686989686492387231338613414483856130237218892313449301537951415177891244967989192018358374975386666027593457300902806401802510644411310397109702488871154119780148769211294710993341045001213862686826279252762878108484616789411545227242450673804047273447272566244780030585965004221077152128132527646614710549944744165174044392705690299868458412232063862101657231286836292821803690914736556755266231916721329977442408142420123449325715433428027604637584861507032141718217489806007661115807029985781178053785025185108022020174896421521627893470070687191788496242456707404394042634067757033777483520383062109789325382341225903532637716403006842522790219773942267136860706946051866533081483478742018534329665591221109415039866536098332861373607597171214400479114716349673105720321668131077749252643476897384949885976181780671994908053763921391375381106310988404795924523763400914910187774294308540027871180318469208205387063132949333263872199662410595215366300095000526029616019896626183550600859894984248608815936620858086175104759931510245120341787986644695240720274849390762091599341056620485948761736778946101936808695765779025450504841125107567885605418867210224528523317169140244281395617220230931252198665045291926575392959799346080519151299526299809201089382956818580751658903207671810703321297745168861951016309185546720983282471060535421827374814597113582799770138806246245767593185846980920143112669661164932940719696396817650306428360918723100522637279290487459670995137196060112037423824910427617851743942888386719791576282373367997627148008489294667879706259107613453600428142551439585641659218789686119331053270535127628589451391949617995530485369463087734694193525427301989919455928740391036210011765450408592810211225517658409771949283294519214252530015100639123770883545496666438095880560912805014118923134623991706359722538230374171519822400370646468727961607062535045235043718951821644977033707711218936283057421280094701407052758461252378941361176480613983403853795217091562955598194909455090632247072688329032061464912007112375917726642076461171724848928957570719717376655915942365623162769280321248958547222218901948804942934544857868455872838571771323483580702031023560004971865250486896421488176573670986740380110446882166424839460225466047504333498440714760037649912782902760843255405068226252746895393427403207105621818754224164006042373681862812201319339776633571631456926194946934430743326673468347854429873565594671385249994916327192636967276920037876947584270345684240010442632904714975059818474159396071585469581764144861166269788661519032291536495172049652991409476087551894164983280771967539606989742019853862602046802416177098457566703074262334628715371894368569539764609710726829162192216908503236938818373768721893437163895410766033722757084088522597074409133226910158906615304313859799959805648798006538771028409285571650605746779478900419240996399597842758388377992187022731821387315652378334904217478384662171946119377719806397667852871788763757464769120745413128227713193052766699230899722753603985504671979199898605387567469515523307065490946812767557529246577841500599439217823412532186920465840656451254618066126276516766714708292919781760700975642437171117030609354745038628038371675818670142986819250524901567604011894073213527487921483333330132417800300806171166753734971905358588784761996154740787466343106877455603586769351516833735209719986619041167155724968157796439045119241532017871800773458885254884764128926205522217249444148086357216170311261612601528171125185507674440800235319067935862232976050350090139274486736958628430713229781080940891311187509076599557999731594336061610859799280732294111093909209498311935018819440428656263281918964527792520101923865459138626192996673374669516652572167348417501899529975593006538598723869280763360033860740503807316419618224091121749934928205977622262355341622176049006737762316454390581663179399857985843497952877968621666043142735372974207824051520560617993232208979628727980116124544386275125909144885545685650758065109139108452260475519959238305826445225828709452305121145863246886940972545042781829959458277825203660840782942836974582123617757682562356767142727419627930303397844997948652060756901805630641152353110649383370334566651782198722671598340903772982121758685831070779325490883387424546992709897751618860056425445336913280579908237277158715775990110046661637318518041558628638433758907921962283601185794552830256540769353884136239252249114294983457643012154655759347964756638917924636065471751956304538625439661609251498333395233800147008338464235052460327424022012683515093018986778597171879427980189915947418025864533323298648256560025919634034205488435778771881935864715544018250973576977170549752873032562121452877533791855064961784820048782303583811845576256828487808159664947774032079083613939655001384724095337250064253652410058897849118848556766614063155135707179025503290022712487824949970660701418589980854598131623797931703180626784429634626476537970224927547996551015618265910579730055377568845368855736635174670331966148819620365953300784785276951264011198344699782234363137968937451510337953074388667066488957236418920146337529599630199750660187983671029185599177602338661578642203821296690044890010003514987801417365209366672859365459027386360730080759592528181768235568164260277589343016494172441771453706782723455757124421010389703034771975765315513410892285329684641605748801188720506083033538850640287047371627039169067603950151117926081147110327283967288175772690138197795924559346340722633431205616122717611419270167778750018945199299243048267861359843233877641684642597029240027779644512585986634743851579081996415652175271143623989449017742321783644035946766836984634860837855892111916140240139244263080815171077920027838676653945744226185273214117356022364964521674274587212239721246374856676723735749575983293327207336944105056736913483303162193428389496247075623210636007454067851789864242424131772268905245737450246983996120450152196309199179564030704512609692138210379843699725783147102121714458438414740233422939248653081329638859306321626658761504525364511763613727509891995800639906133632977017312270340863528716240311983408269368140800122532404003038742537242872431514829221627671338310384809105303194746359644807728184058336136814859699551762435849729617527923951812917196316094238645887443910838125747399958953599227456718211662701503186817350793018299221932001819763508177849513808208898432483059410993547756739728568833056250940413014057389010509965074051389803472080063543687706588076466983289776621815440852157809172023180263139499569068675862443123992701116454946802674470566888669503281998253759549551349071119072674116452946629707643779102224303866480317449861304747920222722958243615416783344541501690969831589394187852816193640711140599394427960949465164697429025173102478658782358298574270945307307730852242151802630377501767164714091550859387933423145273420157672221320361185287765861484109786985945838420362501120748996390312783931938909550096012386682116782812566088114058351205358890434721711804565056689713103209362665281492571559725165717035496589761449484248410925443592292286504695533618288933322790572723996761216451002394022466188961192906258305133622881825011235590425683165725184984339054864425821230273846850498164311413487788336815209997492479473969768142301499960562265341543231211964350428073997627623452376410994082075334042481390069129597609192675160751613281374950564366829248412237360804636458900864385400000487518100608577951269846768402042846032816856332956265944203880058226713496518956515552347358309410468461037360825537342292453337627137632180117820954608535375100261500446963184560336289712981550168988830130656664314209733594994668579154513672601190263566484169748445102520010749454562326622592915875834462253216526695797451580958653271375882419535068768951989178203441611969887946935724840331046593535045525670689733583258554772128202562286560580463976963198685965000208507706527075234675611405099826330796042654418914096050380629407846442232056725783364209642389170132666460776321776069561101808151726206629617191694460080016088525907449011692240988573753682429862266881118630493947817935830828052819918003478540466456612852733489600447482485097429238805706979260980036153925463848150323812351799652071578275044621691566096307951298804409059389704866232135272899740160823124818617189359193699971565706871243256508078529443639412672903667022827159993171874837419132624907948320907918961451136782756191405344128684469872455896557328917214583533817531304210532729442452003410278696973495166274878951365568269972071639456157620059477765549369534006272280523781349280385136899473732331979666340659056189754403625637555177607990202976341313081861903623368097673666971818124545053330081348448936237597777709007500206817545470991659664261868311960272384187852315716540180944318055311906372784765463810231422019533358013711250840882998765697713430414444567278137882484955003030210742319902266300317613852375330474074006014916403687148250882363328668918480298435819418408342409517617539922862875877289338343146892819100054571644334236427816445916910667957443249913498178147158743138764040503782920556030341230290769864081359801402475753105692604740141789966762577380592402517164722102403665549157634407299830139436693687034995637581061717904975509671755782133402469221771363599923492097999421867134948044742510115706113620211174890168655266134325168661535800275252404378832904904004513684192975901024611042152540763577072023853956330599888717079782075584094085297343968114212851679063594824729615167111874121726282404205429848704959495211636331796531532136485361589458493744782693190882028742001408742573803382047305692096031202116504130086511896258360428145343483959590526253373098437088991910824573734763910858548655078852675005889158520566637321555035648311507927094285916816648648981242686090908892501341949814321151166045591287707598674851503942532549401599432012931089104115402727653507977147692893072420858424753507291961310097686243409073424539937106331089568333875639433332301387407839226826986242013865862459971726572287553579982994737007429982364750127958062003255193251364996231964095761598468639819902209590647063517469846541453417319272070256425065062986405282716160540831074782470987538147578798841879219176766862405968314604157972674346357829280267087975441718672549196116087264141498448002184167769118590459793985373087552148906138820074865051406209992652915783296026948325383463978410276456745283792442050377604883174486779301470786816416927811483401620820341909675264681726363293442303177327946848331162008935213118894226213542107627398133734842432231233945629952217537414615003245516189603482191071042284734782149896618584451518255795664164907905279825692348418075784988634661925211805404936509420182569603221532210548938992462657625323659429829923227372280805304563945213622908451548071044014022725490055397047549920693248567373180351398334759591837836515045229043206454194241710048733371393227929477343253893394564628792197267243550472698932729646752918527040003908131651824043814561197649037460346118619887388247643911902067187487193940249584251059618056352642859334220825286552732753503645140608758288618667696682417832210375774897360975303598410275187524710438543628748923733820658841665560440776728236340604100707988892749301716633932608007198936095105641634342940216776717666407876062285381157290095509307364533334132310990389858233183856354923234945214113119272919530588061442709727579087223995587046442949879628933016435349912568125776405365678548126098283847221831035188235634823386848344944367038860371656005417587853551132270760572642124398520046257987407770918805288217651003216576935477252593723208421159941307166003093028787196827911684789361804854806542253898326219854118826872671571322608144594582527973621435600223095440062601841798492358587884448963078708715904136179476066139403403133592116030615652366198408073761992467390152495890885249567839960218992846213887200395108346433272087413578497504103555139283678073934011662722448671491142029682622914467844491364156499245556055594293717821680908380471783143191049519469053615317458779138571799689509523229568078997765284263506321879074079913660894635321069317327526030595333810350573201947971374281381358496287328113506513036380256792975258324719028913972675655367188686724225608755145235279384116382573973451236843685718992151202703274369012280797436632358895831751863657261958249479845180948425261590225167135917734369570270250920437850367802710639298547051431699366079699726966161715551994935231655357868695767474667538114564343733214774388095783406875267917422462018563602385700453302750264433207070417180912757965130768528409020593155084618963280716125007632699019171441854576134367122601705606465031526770153939055422626755704577518559281358821606321219714577546138875890634231607063027260388754076943806688818288091833280242166916864051364552306016900570501221903526707826826303874518356937403445482744872529808929361965828544954036726407238378476051588363982284809903940686260183537644652444184793529287773052780730971286312210870726738103268215748217879065679591386631002087650174134975278793190052495211945192534151545047767184503727438867280935018829904267868982432072893048821940480242334211829781012166538738289228663165236150754237552009733428985182292348775894123196667584852513611245633813628056310360095968727820196881403754140829256178986884944138266322250906482427167983136813846796957251505937488429705025159039498178111638102783918139703687597924251801218742061117788659023831809290229371011695700849239897500933640764353345690343682375385128305477482164463104093906067254811466693110245407051392939502382999520068314685074311528058220820846999551873888665776758756720031264731289252115717774713782848938651201111935890523816322631590886957524416154422800437997011208542875773350063601112240794920995740724280494758401088719216485307673343955917527202496198408285156271176166614145067884695921796205964424776366215744525868412655815355253110023625878811328241080421235497440252578248209981918085142151275465322799009733377811819289050550428707227165816173322058388376496432201889815052517050160593218923779325728957917537010298282096983280360581788486210549668892612472955377577214939823888033540961724630325376392894061871553939339758430947588298059350433672394280383905937470155742150993538331945916311294835589564590358050398510322330037646822513519834057936316197176844955216955397839456292241384507938352936641083748379080727037623615545927024327714975695384670951413507745344604441247723458307152892253443322700149717671547649347488908370385065550346909025569023364292017839904460965599007834113878292164759908087589643195136891758000875155433387878320751960622005957717499456687172801304322472926002097874245940873693693169853391837806192057349028223718326035150916039853078382431661091670049201035877785927182220057867629153022364808016593761924105033354607055906991846654235273596587636712374511885369658956090263624412732356588709880922243396460144167118113421703155580944409913069997709572284989315582425264070696774281142281894976529693010161277387398934480768663396720730202437806692611712496330994042314304921866472474492704225791213585058844338868350988698628519198681355523926267194628885056897534560653630682182866161929728981699467668611272895853745413956634165435558183992254919111488763633968853857168529649154321859895481328302670792268810270175152537250810082470655985347060816953445489679663239303797104185642855500504660782796123173765121639647285461322413126783966734938372161291932495202977073070545339380694115105190314023998814861949178296849895069889339359499046328014049828246647617830215930693897888394258963622605289776359560269382105067200998167204617709501783726753141025036171119781015073706647902752578552258253136084238145459022071422615157539966971789641478403946499575056439744368017407536238948697485563115658178193237319187132251762017834714371566644401847461321867203924573548424056364522583047764722409301579991103571781310513793059944353271159586994179268925435856377385619755210109887878318720529051705571405753821547036152242734546915915605748538343786892807175839831366107428246544377940297087477102662240600928718049972219904576814740629471071855528443802604354344497604740065232957407451510457072933718348612483032751372703184216279492014726419575522257079171884942400980841534304098131043894484207838846907190360912875146558912966380910660235251679299980307979289837231134471006423295475553839426118038999513539524654462952530270587321275076527667727954106596596447922052951148042425514970126910977326414038545218696221607985311740412120200537409035552774359140525242569870373999024469716421975842504289817085242017526160179770213362177940622921034148743809816145312517060825121296712931192061234203007647353210294380213512961898450132741848712378223714254556971830939373444648296539649669708714250955221040344036026213097286391438955574156030355414747998652522069155395011843666602085762339233380504512808626864855987723766654123856162256488727987991905873997127110412599957339433799185550506914921538160219468636880358979416242591628636363250814164849617665367786269174010235659240793414514005024335176101763691564445895639449919967484373227885029304465175722264982499308579388391733528816254370626449829012562028993970093992500894848890811798097271930413095436662979954942248769975458372952773224816433484819213600251672163179777906452793646947098797515240685877822048940905112380649608854433197483858645829294401295849468859781223962353049982600566801445308473495387306462358796235227248723619129645714071435415884642384747393514397280798873706094334602626866046953636987888698505406210590393645704896867077216069295683088938300519300116636817628239911052494125422351702045708522163493964216871941042021947044745861856302460657723135773884744821945368025301842424020549858405074034004676340133283159838859943886409524272656590310723676829615876109539695467596597557415105448186812979458092670434188209370961610120308481329224802146184230608579437687790838638302436407004193583999991161532653501600058094971498339818240450242447474940409120746439294086599772133481379468681026825282229602977233979958477562061833259375016167401288760710262440545338361839484694459422425766132422334377399480805524586176071746254493044648832233236585776679069481153186520481666494420606990536011181637874558013315729545028471430387183137157936461386476969937865519476778539133949667974608321875284754888730977347003793634658334601105333233005927230871556179930443085392594584385128598133462708050108164110382694584242964874945845243647700793619978934206753846618330661752574966111372903542368658712513274658569981707857630730414029534738437762855799111752496950085112166181353919459209376644526637025394020604969054039227013691150071189250012905697481052127973065963044031903518987877872519726939860355947597473649191643653084865405039915636041684654374915655980905414993504112622238427267910191196066409077069567927907842996327775453164273190003005829683319916807276728068967632910625956310759006509588901819846645715228664851689151048392246508280620284839467033900268138370902999154853349085056004327393475593519154120794299632528116016417436882690542016563550945816373504343323014621267371490085021685170018074974581255153017340866667047789033512256778231079755424832158094323623732666598837594660631833012870311382345892102531252589117471633493844706665575598071559416551031150240851515799875229807632709528063206996823238717575540451740532750305193663691654945728295345293279272758269080291826697915569466195592971172395869450148005488785569272770132593863077442827164685091979204457766557117729647872499914622629247790467327270760341505649290444472287000143622736729843191027810937128292350559605239458019514965948995903007599541814771565089029550565634395936588411369527191937281111849026306250160862458428477810652835615868544922705009391105741175324229589750183457350026890296935199614386729830901442343708370985991979642709150737986714032983437172639957002433100448447295402355322530057871627610372659878857654375410260141919633212752029874910255520411285617534588586524446196983399408084050861979644855607060365912352619305975366262206344745623595624122612465577951802243351671184492026850040840882979057560275282021553207691737900646003083988424624282715512178821871620680103697491140275790942061460790152801041629591200537913202373802368925378392588458269140361023142200030326732911747034246939185661484649483386937324236383999665302393966991519081584921727409886989368895231037732369444621713738035128892654199829288737021291385452873688987286440127610894081671301942942027253110517182392635062344248506035550916186767158963470603520996580949449719767038408466962886585931347654675453600384522190270453962867597434903838364272239595178922680319451401905544076754602741435255840140270036055995382829674321618630977967245066882044478594684894713491405535512425133352107901005098029711463171534636121526666745499923580206341839582501063287034914777529029432790773687719865793569276842574382550691097778026660609114644588190893005294631131695966458399478960344226768574501977903174076192581718583228697479394225628407879555055634992790688707752858821336664390725950952512333858965255782252890473257145109343814983673178098849198620826095580668855426258579162917846358846548883575407653094393154694866259258873144189485912480864603422313324958632403781264591054498313470738614830948002437057399613914237335766436577548703977670815184316017077920866426598174615485949940844567268495668829350340110589889120532217481819797283495765457356361658242557389655113570916432000265625322317395308761847806336406271264276916204323168883688187194441580227375903438568359604004946944072380551874184370434965226035120559252529367884166452519839719847238704571376424927915062967781374281219154289348175413921412987657683797618516222368970087483450479549369019989817171608509366508985887549179091095108836572659677538011320095633247769095034450268114770755672876225700757572445437130547093662402112366258628810124888922489052022128206328491712710840658391959976081679460944531531458322360439027318276652409400751238907079979225639514078034614180836497281791048898041296659506882954117141093225161961632776210602995876208719088009598439305002849509372206017972431650542164817897943564384278927082469871997376331365560020930881450298617425285795579961100955507098978436698949340424247964523129967671296551082872054746769081424483629390329114366077748138557507305033200947815667547195446618725347508348161474938307371549446188707919604368160671919952249638220823212410640739727113897315536241214833295990742125860826795364551405064440411854336777260697470114751817715526373561145770039542207941562458002363587562988290806291429790826757683365057473803270898194702546529409146895563183088502077910047183662385406811325798018750076864814065717465956764997810987421221856336261990249352025910477500274588773395046399299286704879581053068813770475492628744951805449804439492562661270085549321598849742557049842050241915299502029434128584416332867859967296424352424433350504997443890033159410389972360910522177286681588300541708418460009899288613213986319169642838765781203225141733275071101474857576290169309979153619665509079027228326668314340160781634709740116061163863104084947265753539404861771830014204919272589728064557055789473928604633249017456258462324367063202385221997543321071760178102651449300089194823887718020126583732941619040682368584874070568601385592357280096092842050775616713477730727882505475357889815535310937032439412901263515427173463009171858793045666626458881200979925967681978945036397844886008919490545324738601959234626717014766794166153449962250558330821620767474600700707615030238921634248630615967348316894818723701884754473273685009339593711928105968195281286449958437966389764317253682079107638235031212379515432216817150887909379248958429544236635789571014539228451835111191149444977533948714617433855936746606921949205652228973361530342317019567048536761787132625961130005671032934402487263855820614352042643569471070737245509249678316996738728329376519421832547400743839210999540234865259199722514237131481888057183638617740734674883793678167424934081882990080775389487852627850207779999702007557822864340334688393384102737851703532580028796574054291768904473954191078733494427295140003294162366956098157814835402714070329649370944286338679454535411105258469866768433502947275546954502309295377931345521989476633818240760445764153171780904747491504346470174122242725896787969955061077510948242942084667407039726560725194582858890048483774585160130508653953547161867609373067619714700122674070262319852879700969163400274973704023663537309246297382760351277926803515855485420433412816448221706434801793179357081057690770209905251013293502384964488446724085597393445884345055283272609680186754737171364423841133042994259298648948639237120116513849309982108826563686599931072885856257189800548295728540346628315549380682110922128548955278416315543399932295350427871783295220889019795506799564926454768399249461222975511227381907439870806101839224328595056061404274785414722868864673780104803129808328857350065664192258925034673989625794446988577400813785022332407089919584970867850847778005691999665154425608761027199885414693606680370597232345158419397952113979708103291385282874130897813067072582995769837342729573866806388637506543235736275427066230883923875476902773656712162674616263545868895649483177758940659935188899612565120611382180549102840109158092123672399671689508298436389922678149194603348742463042931241005378599992688930931413940197235085968613690507838665985035759033545694706864520686434593159528140875452714450170505471888088562703864330905909367687287256040519133880264748534317412374417826714460668660190947004941232266147467058063802979749305245180725420582280758710830073168297251985885881561479697448660705752779177117475739348007379514848007291715233199132924451195240286257441373997398160228983399345737803643940780108117920726021062222224740417206796361671978607864047294252725197805182224591600930063072029946319340095187973436238839401905474797597831026570068530205927582839535167872089422853021001268611049407942542817990226818728212649931811351413086571271853229679594787715706034757100389088695812071919531451300249459328677268694912331791612953644067715957109022065747010681165222191045408409318499702026953565634773915166942923428419935044909161110835648170903755589024298910875211363805192067300740016327196437138596398859801623208660667280118178647872291304035079064137127175839212564844692496602685859135315999758190122920393801944266014071756545289837575882033664993997186238773346095420321937139879126459517760713311831283318092467492922623134122882898870131573452213464644774336722925540281623253093827147164589250474031632084756712018916730070894062025569246744422121352141662827842694410868317633327187689197275295045994508252118554651203984976097916983779686977592736950766463323489863614351180817307862362477989888696194182646383194448715629066982117458214133208760490116499506716965696184779320877561188961306462828386162167078375188456037312863344975455895267966148139090316329637744438152042188771179739501084651264542836990024745706768389049932144040322261467193769780842028880707509411277932716954856605108440987592145651846269779667142664257935885503585346555769628020222668275204104950089394161984996513202601210878845392510178787705968794798209449340201834907931485751841163669749047371834630403531864613166359046694501214904041269780192654768627294830128105723909559057393954698099460123727233602696626606347812631194254314907280820585863262152253664967817716994428002147085465922868329845020110600176619013119021867542923622059188070782009459623261097756121338234940275049718545899609339470053904764473291451249433886875567034129810951488143425092410797954851690213602011011300857122537839041766587687097054951224846615133811869463983230907449549689933177538642459761366321849250439104005995655503618331996830727271957186394453148401089187651210260850008154221055548853590094823740137034761102863836690338467128592414934299822827786028614683604504700883443579017505078992910649457530611425536005021279339151523673001140707498671536589173648541051200522892149593621402577363941645058041247198855744176068274341443453341511365667868979966400935515152851993986488170942557142589012964191580394854153403810936815418452307223104400456046031916985914835671946397010261504175725023215431079781417781070262811339440677223359851427598430936094586757191644281953664601912717236375582086646393793614187048445474477823388472327801847240392753375381531187655161317354420512856641807344515449578020935041765276396445475533478545044881564098342941485137805834819040098181478658429177722691676011036510619462762450469350818129481769387035671285279579088041775624512295794084350156843700433449052778002267833898249528476269304362214241707805401972030543784205593029019302011563080427798085727773505247447131790307388091398579683297249529036685007411850527087724310134196254099748119013363554689574616842720210177029216716725211656855232955432551496638422111194762122077026018684130354794188432567455565163678376017514682890286509332781845256346620282853079714101025242654344979697671175575642669223267285806374586300257899775918600597370817103207511500823836080474152333990165826998317745544863810743317409542881845180195659575692903488039313640662905409358816794573653387495263070490108808425783653363049941443427425554731261641054915402473262813923354734074663745586922751071114496762467107509635719744626852872617766625543322835570434556951906127018830017685261840686616680559022587188387174055900353644420150670975715095547207252590402267692846156337238916686013460117556441048474357258053446545239410060578316047969908406375889571851614364468365060754643388596889874115928240179978378730695451243282098181541378853104904978856918989779778973049033205865295876066163219618969486002507870209082350478432762227831970823696329474122943690107780836715516915946712305635475310543434389246678481518138059839092218806694041050640670448469974171350381532358934003878129088949761807524334742816249988964411875454267905897057003655261973144877204027358335773462747675772361807413062291493918511610137889202972398095091704536610205886102385526467468801181147572500888395816290291680980816478068113938492274828539271588336840700903673639300454748216411978876868612021233052775784460336167580744038023764992116127021798505067689612174981666359807635780749506179287235293841660496264676258885439660562512153668760007247816656370299340532915054100408375320952610215320356719164068669275970503093857930674524854924776331836884453697465080905889867818189109427406705748775380920672682716342274954747331380564501732651519769650060063848505854043669447387840759940709383884844011690002224908774130255761522792605699857141365434292946494562680780831492581700044525580041996682180064048201252995796469451332290056132428810140037403543254804493867882758517462199729883966003996940434502742114267900382566554000574852287767889948899944039371322952622662016866909343407797049876261582999161505698791833027456013409131278859196007388178664721779707048482435472034998627652743911618116479348474317936066900264765804899904657270693178292851975167905970295613652338813102935326075478569581063496614410545468056894959478157131655517245425224199375546876320722218568702627152777778046138381064239728571485089892088548151358399353490262220638202642578982798571420780176273748538086278529933998435686135386379572161527328387517561717843016341548335720780321058478526529159682259903294193320690141300880699784386322954611756874682334536514506757892085266631771111015136193649980500026903522683933487336099765600632859670529657849061428693597502786500556572214158745377936892015167637321793872740066716733063743617046263123349832506638326298299066677499578654286866342696514353439209815350019435829359216838894032944145308323481377085297764241841869440404009442493824684742823388565879603764975496155513098080901517812814772617762913788271882867788119762441089589407312755125670292842248386936895509058263712925767075965359458556571747378565265913503912587880413218313607371406071819597872104973503127039250686581305022715704873519405298608788959017598806193379548989300316867501040674720759208552673463826747612316480253864533266268278979956002105673883144828668141215381646040368247456277400639808421289637763812089314827632418784651064487371911445994071480413774274834644000942197186508162471974129997682494651312597927712635066355891313874710740382877221559632774124672343527068670971260939565351709792669528869418834409228199725124549879630722118579055153479519432821608892644814232007949079953758232613784279764123168769127888322141237851072332978906203572164613875922041304254191944136572817694994851734384940849665930131140828066775705214708208023308773385667289712706232366884253657572701710389121460328495556715574918508934087545355117494665647752685936775605335257213961875126126191378573707143436498001940118622569508390023354981031234231346173681073847265041956747087344317427795945021255548873318273347032553293345063144707203237692236786835788318754577139973309820522576558503391204814947939899374371709264420145382775727680578715139993054272651119206468779090607212212199819460078457892287799743670441162492486083316813659792199623535297965688843366585913058693920425757950210888507156542442375549801479311429911416559461851132535495702822097478582787107058207254721438404402239344857433570181119348516351138713865022220824164084357401803861865256696409643267394963042200990905046995004600270168118431182750569265227258024271650562668180913930032102852364318246060342953765790779428384982239986561281295028846575389742693811217911972257745205142285878177721440656024058924456247408074423887086287088458053557205895577442367678654798195066659005412993546137050640890453899322370649798748235289214850902883659824780463940929518369140028289517696361214277933830554049188301244959694803956146691036392011392834915350525298881482885477349153818752389752707476069699874831388228593882752672878407981640758697626802924914538948124243727847094820331608661826488158279677898171079599443808997685740150356554798526973996960008404480397551784562632384109728579094806765948645325583644699374541698950781261235981564560710517402583212723861697508534496126134724729395060734736100341171224893550347597117996704609763724674488268086931073830731520040490863708791548068036524742771877105601456901284062013159621121633713607462782886328194362728009847931162815697921425469423030499945490616166368110111687512856840858001853530992626342941768638086269283860418965312147396447492405875736160142538168962155588792344551510519149033789359893816296908144262604487988720553003063698034409840680645434433745244647601726364683677487706220682682827611414464621650458134422310045503791909265290072442113731642650310994836476155108720016719933063721793199554581707893983193589960349451938746170763024805228810229624560542204483869030056546379757489603608564434724246446035969431376624221027750896687952249850668246605895251479399640505605684079201060956275958683885456940116940926534234223811199425202715148618299923789023615810886098653867549196786171136728940965758742242117391436427538983860454131897210545292434512251600179053471815572250030027939439646038934255068464017411046224363477469149839568545123934282734066925653298935900633772681902266691554865119516936828975801708661442827408826088965333998322918003054501108933902907947435204323903935965637745516009444666025911631578687625128840430119413132815694754857895277519338789627834817960406459438244877471220734651207169013411885834068647292527605382255242090379390907377280961413630026589237517784983960650170862307724216232881940265323577661069965477472904144702906668244007080657843464757331554077050287251389168936005727118743387629829155130201471733405189373363673534642273162977589308341298433771023682602563662061876154499372894602343958095573289135478949017466299689728090495490969734306324163913963263356415362497284414038842938656376423885051066543718574456175023446772406747194932313080129676827335434534872198281545189873030545359226764865667319514856501707935013505311614339173401015961704734493933956535271942268572972176577678330296999242692202133939946020180099312748018312901349838154655126529002077598895412319849368505307632962580357022318452540882840894826740178948485868243340093763975731389488406288898038835105703489262766785030376520913162317559127640185461209532126188525272133089249406929848200777257272086722346197207733451359661021305071963433348074295243294379244722860612146178024448438011676359136485960788135099157314157812231764853788100976137401129457552036749088797246278018445475344239836911897668760639196397389767370104809795245062522356196484872760191437004812858874006947000669293356940452496303611276288092109468310492418001710988583265685863206192025527769916778328017865640689974412728387025324964135581853876621535918075740845425679342223545746712944913888861233780974248982867682336202860685992190474201500823259967296148087691600412958323753555528613089916869483264249824781432302992486461631551661874585604990919419851921321415787034436469257094056745371960915804929425667952107109151283720431951876667703522232685933426867262439272448197036289352103863692927771121669884252430404685336130020353436190911975846738081947118307346501471532191840401938373733475235104959157811767521246826226155765521252241316571355201022263444090339298954843861298040745183933750076646654894567484733508402062504508949647018381679414947577058880339633349794338262044998539905347107126600274456823764418778782410191164824407094289768711324486310446855039474192634243792463364934040965877319686555328471774199543761639782570969700025322790587942780684211631600663212240986236106909008982164130718880868974704424042610288000863814564755704391270765840053955730292136527995347473300604099254561927456740342064683857515920855880208027658178986435653708271845403033652823618138263982092684070079093140574045854123371835169022557021100213119930648295817564848331960584749114252953032432128235321724550460563590528542774090727599130106101477379652696882562406507439375807433151904504771480619216554818211071654831114678889600397067124409275196164337952843764908841095148928214313075540454342500355902986399826292139925830229384395337917245252826777981270755714688077656816841394073838560160565765262865264960829483765901377077772427642708368002122564762118024959024601178409715958343998022500052270879065817589461910903737614322956151391445764918681015444184238016491515970119491086937024698084224804382396978726891259863839475248320682730755510039867046736125986499844170786023794233598236172316955716832589068812640652119856915029978211532593138266776647293659113344148824925203299724657166374859614115698471437973032825693642660029589132460328412012093656018857023480358703739482622963875413818841114178805649299012516544255020786275580087745082131488576930605735559802986335320488909256961517871359512387778917996801868972468674421758299204067548772007960121950766301243063168263518313168810980730061666659727046584981963273349289822082136408687407935454821830385131440279076550421388402447172651465646065230225301223830249831193196837590351016310763860512814509301603703507960906699912643497916149737298533159471930325168927369215158444764171426105585254543832876175704676879514182461966687333215742838328047066785785264825824730120700625067491230430636467591232731198559385059657161808688019225467598747439187568298291244627431892691227634468602601418400835627940159532835086963962264012887389332692290917862109752628888812173449067545995783526681473063222671867155938136656939117041232513179797778544416784955392942710323578734190487164063775121088821561863477049693104648545348639738739126057738027204834740074500031960557841332985790804476321186508009031382951312691748014826202278968726880169378963296991939888189752718125884375522947202262439512936426601978894781079003777313202536554198354148296485028629220073143605157176532886589452162704514245666125670397625818596074469950250301092168410053229147502816584541971017331421063477585020510703018519503416944534740926286044147281475457369540876562217438174988831469058996797667254922999975359187892820302862327855785933086300276826566600468723603977534631456449018699094562629482876422959586830401029997543026843563484215596357414983705504371133147081221405504064979019139483606047621272597728747421196890895354556529903689363848697881103731320645012122697350859994354205446944561009457402052127843028569627028507198837927706631300166492849139558751876538630901892312549802669164675044088132613309177713338087256567658113839641730476055381027919631654786021899935017120498098788700087580584507125089636687899015807683201569271490151558599790380003880435308869331438422980204865161309229604256709816441600191392729402541176193677233731630221007363576517027718673168852495586285304110889383878624652640605891586971860135988685586957106990165440857550510247502707560999955968170125232346600063701470360197455619075590861508717046214150231735745235911062695091224489658034819449695315575937277252106031748496701357809526952540717281867950341243141100300346149769724116110790741209389057101034674477116004477997715758908919841205592951063899112589327351028845578191225187655523407993824733436340582514608029329871295827922762444386096987749560757899975887191835900950976706608755734912610161962391021017554155683670225167708127404112297941027778225588699508297950724611182993803747440565482837053306730678894950082071867470220159364121133466822005517506118850452267855044830052948956182182118070630130066684050668760593747949563318699601269839042087216233058869880654077380208777733139786374896993936286016680889790893174581351044333832544167790592118478282100801859321865691559536608671153302553456468742283205726757501676630124864262373044332847512410429311446486606109855974786873898618535075383705912897345476673179469113820371747771105226202303955905451479102718767820718065339838740768158545640301641076663830342376146827043640301781036016915185528037110100600068226251468395758196772183294214536570096092765419244210917079102284038887830176623439181177455913847441710774941635634140118685096504668330319756957785317052582824360017768926613948317720961467278798108494469204564234764702544307262896281438220474063819249990721628348962981271788117455323152350483929426053035087283326061121814596861988231619049057619735423355360091943410492362102896514918601146296983101237940204778036429980192920663478118889920967385869508302173054814510747733781098252788560314662208143085529832291712385133823474895482717526179956961292186406918622098456761255722504881625890405454983753926530496736750449619171685426438164913190467626591052340464628649644517171168267150003142703105076154112297117385091295305651998517899910829084832455221166140317686204839351956953985161705011565497945379763257917173063946034967187171912130522843710788762853132024298853833762103483502669590107389072794260834765572714579643445329592565513423392307610388973767316944383016777982297283171585645818036070424200544795680910144184585102723375590109059518995486360999072904990995609294181264742235032774726054699163582906862448767287032424284895383771782088953046504270906526555933429026197227913763393696521544929508851934167294841825145071374864851332657061993518961381887699249873350049898606562312281322887873548033874369297128082385325692984520776375874425831139425825320787464801166165166680366285072357857208983509966661245145028401212915683352871854073653984703610360178722452650830480523748518347860257932536322994519196269853684652999520486654155954439913498039414161089657139233375717650089235446568716493485755801810802538852333982839328412174823703301234494628103081703847537875897292441036923219420326812324299133722584546156969096625866803753605466565761291775916805829587193535021329899008547080299238629918032787698355772046756892494321435402843908564591701573766865236623974292431351394831466932005280684446807621252442421353378164083857797921047091867395174480306053307950920016744608294370615654060953501757066892120842794677189105992147197463103912612157516559675998589798199178534869900960780577196726413844008007913524629505256800345825342768679789509695025147400619522114870391453654547433036546148457388805265005191817941379156998207853580402474372806222972593690899479360245616300211322736222801325855387871013327676327567623247264326083124234191135145169378200502391734229316400527351868161969941958844514532226883182585319528102277940893740528972804444916033927736143130503354375634210441619405556520331987658409274620025574486632689201305445640801057974643957131944944198965104407375481070497014480017149271078002261838952459454138152665848317623263505198309065205182492252004823011892369254021340969290355062058989737886968164174594607146334893793074128304662412698181433064050149795259987668392988715089319204714158253120802148406157101485550127100798550088928098295314721197971898996171067521329242311380494136454343253985215176823701919583840953508790607145112203988934845120210819178363748906462809382139081021801104584169392586435128833387652314948160947711154571357377964531356180237131477495397554751932207092256891655574308922301767697469177279132073942611743205246270490284759011704768924185407154488653100025093547294207057408721921489845128599629331993082262272898554811928431666437082099572686388875209188119253186530595134269902396515818921510349547427680225083653230798150946142899981608471671215956947216473192449842836371501741848535453098839974432983415187170903777689352442832307154462640841061068273764837924954032844071577170547425306181787620515609046919920041106206902017678689643012675516284338477436422233743787251720930971194370303684442206410786716563618787585526404168496578308540299441904474410346213911612167971978584068476143626961721166664538457772157200392610833078142281985975388802201604822018493010133558375618162818884814454367587119036665960213020036498778471762510051019336981529332332126480038768276914924647149397669416593138652679162649396939877191769485639836859393828024681105156312022675691438886988526564436848465977984509278516988466061398695951791258741748751435957587222435050812143980712433366529927892699287199262204270078443140903513163252350409600854107099917679387540099444733997976827582188235010109716766984778331836677139490339110067909736418704999988377768424829244701237103612587954022729224819152069130004522362470687520217884398484422760625622487493157548300841027238175328418278586681173931311508231552183779821686774246118303006813368476842715495333501649939785903485808242568072196686215841463769962718316158098517375351973223508708183646661823822314824293657949650508922088076178972376299997763383353438955006439066924867645022714598149749991297979963534004159072486520793655408961658733232492244837078730349891661150740220984843468244836756775652056879949098732922720157200673203409388029469934347803735055346865548448065370642947254281424378582789343966410516636285180071487664984067643899701862122050824269319643443553833732492654693388027973541080906045298546347295680914979004230751367944412276888688183591060000316776064973809328128188193890192688079031832037975504364551601881030588479911261404512228491550003160104003843565397582111428910005714954936612754245909075699253656660081903443928098918003424657417845183800473881741328076007498889539949699361932534202569696102670665225470760974578054290973485703373177517675513475571458428504707772950809279888861061000529375517703801507673375442372661041869359702369351871271119329181198940535603065521049678728254954289554792517581107277517400014345927228124935346010720743291632879380865389008887297999389380812224726014901421400258635740448125114619564730507174820098404416008910530269255858281743749837990979864982161193046536476568677734746684458194060428251795728779935072278404156227837535481746921545078639180180524122617452557864157564132539649633378629279927878681678463087493739777634362160131459953014348787626337807066843974523682081854058921823508951971198356345570957472915512567051462992962057570516605219386306946931889111940135185484331033531997535753208777389038870335531885512443447851374825161918568195718761260608204755089111027724541747033296381707337801319302515551749452162331449097609739447203652542730689338063834988528728456690979664065816008980953906230623188823892816032942082135044518034503884034172026737176177603342053788091077801525040015441580918462653079909075178336338134930566073485925960658560941120731678123866494993002365204138515782972544851486267540094000303099941179553721384857221518157934329047620630733045990983908862549687278986946859009139669120997802048157901958209153646378769951007187388024923573501618296528983694706507209744390397041614610620937102252576527796651981862718445351549215572444264743065232052082023183273032177372804410540087317618651113396006474710247664579082975078727551481262854592564522981701846449264618330280377704095554202700125691304777338794958502058588839162091050575068848433451831177456152562003838841321577974889837744136966186054749756585345973519291022341946354932960725861443019745163691097260513333142374107247120292182990743338869642800292638569046857694612202577939123998830781544676994153958413477213125655519949347527171956540391459538042778525259856701722758742040117085065767826932021242696376367264096020993140891467093011371845105863820689911686312337405375277519626145704520177440040071231195090684676606250197204105445503135330350209535942792602536160722426029503380404572327760836845949896041481027766308781849949689955307511693902526859920401459054945698855986377862813758599050527126257503088515751500048976090281194946123050622743497286738534615506155326699813090376035049251579035205617043423040093468347822311161907776563912534293860337986480268533105920275793252206355860118946622110688448138018953105834445368191554434854251153469365812004266008311561865671936038258072060529203121054518403455603906507096557659625213224711977294612769935245485032938561442037419879152659230585530148763505642063576622018487663080635253178040892902355180047129255459184789410823968335802817602041506525039866841038773721261754564481771341377598093266845896704207576649259073921622198638014857236379065606422899398360677712840242752437833832735772235335273341950340416048027064445395118242832491184535804483920318114221238404170650013720103315537171373674282563150556824554460876634840079328914277458699249287345287692515218322193556464064452833335890820108852831221482912657245387945196656213009450640919836185180233973787832615663413196512628537511315914659624418051880456374453302036849290443496807201703427268364611504490955530890227671329984154091766290107953011380585171344172964866713775025232245407164069875454135673523869096536385134034406899593747874292909306232416896295617955375371221973545722389263599638843372108101763156801675273840006594876816951238074297279521940671328988574894135627524248570900167053593840209456041456072524462393581417397777889768230418757434180110874347931255300658417609316969756132792614188071692050995529237872003786409359296337551748444998880274297703772186132518079740453065002326249506316502496404502653049665254721196541206880878576614478700681416563566957314807457724942206341444899495663708705342275056428171575634095454272570723202435731877756085327451083059665584619691035239895221810266118952099982793192485887513249149162660700542719661088536896465975007962146839062079347939817715024114905751354662479774440729807778196068466369841410026719208986853853383631090062685660784437109495412370824892555262510042849998331415340050580981373039572128852647447726040294843391108391177252966535424242960995173087601470982431420600821108983745241859297849499686636413946685672251312413006451924434335368944990656084388802774794804082496803984901108601173060319825660660362753240870003390852593532959643478305015617026626976431051808791615776262171609675312391026520005699495704373965783657444906630686571329743160575358037993982840842542842370304834695766120829529650471000879174291620930992551898483585513210996292925884791019059323671785493744009015062411306973082031556033322762231251970750404964253554745385174184594033851985863771654601076631835668474201426399826081783156780330275621684953324015916049326319468017287185406204241152874152577113977583869547890596625497228642886653086953078925781721048776536593658097494348987072124187870909521068064412140837038886972333178311756302012378405223217550740523365279091442351170682655239992711968247978616379892958073557905766393843436570873978766409631364605188334894221446952501680543529166078119276185577799957764683441571269901449377798858240798962838827132763052711147782511357901703611055982110989644950334179811516442596005936038242571964518814884662992730464816009904259731932898154293665919540891907879996961844571716544304802579259299851531856284535538319558131463840718796039169620229831111044378185571171005844280776532974825969651704354901410052003750504460410968068630240972539420475117217264632278139506245890719129266011147174762339611409330415933141652561390204325396733785372478622276476940753794295121722143654960867606655096437362561567500278768463167821060710918491446407725217596983120007066062995853313057775075981906874535704424629204435358024619314652663017387802014120881614015689908148819028765242927101055415158620547909991435267182094868068872739924393487047402623541865322523551336909475122096119844770553259607078400142619562596501501676109338729860163368271804497848925261772210482728206521579571227337320900517479164548932270528919899352073486849435801926462936359081197968241745055947176614796812540189957686805848422751363622053454339658824607429494795814025309623083474249783343724156234297026343562263401006836263053477629535883200667339229746971249159570959617888003683473745724913220907615715479764413262456758080939226989262508318141324944255195138461919446687277904902968417395112868849927090426561757946684980675591437590484731676394058395222185512812704506363092414280215831780967303851494927493317079066979446117016195522220387367373175911276534304865545039035256931178038865369634750194316083034455985454960971087910184032903703577012944760945085638133929315047831400982588049420242183558886621308952384806529857696190069760941040026338360152037570467161420797508907681125617613031510484542461482014624265271218843378403586280667775633034155545931267332671419860534317439835534206431285711751576873694032361713131798339149516458375216414004546834753439677467478401799819784214269771022956993824164448655056071885287329551528671034229049699213147800823137785262393526113445603795124032642029224025270817255605737636097210895764520354949738276116247174075729052477813701258517560607026535148484613580286462664161277035354625437291979665641890750106740097625908474814142881821002247474493064958752831226617892736703927069516841986334171271176173287306702671712793336174345891754147845216006233141282687086742219207296331430635141578237835519416058706465843752950442276159329418957235526951157465605352913332600878675310739235262207088172652164100600554669268889845366070591906772863038576716875400748114972413709809089472744241640133342593516768484221105168890449156045384854472312095724139840768101687890329928861087016411522852144011627116112899460627120153794150939100115956416924257611870734987346592688954619453100627209410048834933753300555859755108443796471997632029530127605775292909595615666205160639913095404187245213340615102056220505135625368408917060123453693122634471367172184819083047657101369110510222919846983341386134071718909691233853108117231392799232518378410697927868257923441291017854699644697617306055904540525867188689077873257494753758647157206580704439623954251957328365415407687959538090017141406733659850596318127304508282184333522193218396600883874080679944398686193743582784835225936391604905415076960936723151021258480122133646556718682389237322629630863814557727739872367330744160259369044461147385340347001387192726197459077499719696604672337804350600261532405531967416876519106672544499815019189615031339396709130100628416688241011975275532536166835895732689815972189813544126041745879289835561457184456684616098482624775379043306582464171904853094021232089414270161466047672311728775253091502333207274102003318465982990426622426512148334098653432133366630480402205794196319331478811832706153685649602800124951523536409178887310646082645544040593472267669825159907247715684475898839874979362908370929534799539241466840143896693993443078585045595683937986005526055919190382167684082408781751698102056724839821908112544465257384426609333285355039015611789498136455806588362256191968669036141207336658419853095964015802856868945438001529595894651377281909197206982860687786863313224781339756134232611805770010972900176135590270210687298435351135624564967113220350643309026742241983200885035813227195036661989182719372037171321758930650126691763010756716917501679856771890917330863677480797446781295212916067495708335109389684973323990913958640018176249732129936796645120245632786387398016628802852900381567152115260331963602874039387189411595268828853413292262624248341217951795906140025615316687688352103624697670261037262566760339140258018192631553738013652081618611004157398687740724059416922619717002919821465002006641760594227796129540975269832785059442080855411522029098761294086001056703862713920947304409778025276309167814495905883465999878849932541033021072413109314271483968714691873470124778711400506546313094929012735354081511969976974818506460883385898029575357022845311587906467206975694119675010574307035114540732270969892040602708794878512278179673198942983075540607421427752359610637149236199599374622224706133114305148017201295333052304670583956450831911159819498913588265617604661575663878413386447873457785440708480013182557337956222741443284968246379454307241923357967812546338296976055982572097734419995959261433053538937640451970533809112648845882938005351875901723222009426249995848557874690180872651777090424719683501559655060410068626893030753398181593359352505542581538139470716046022624929384159344007692406309163479333721007005562609951393732058099814635502423638990336846458903238930495378419986733438822852289622031655598754957443802365780063078376841878101754460262982822252742845476048685346081218384462334536275360822939336326199616684960288870402465915243136994674591970678761724815171700549956071039160437309700107244759856864201614280716635529111443117438114273123563072281667866321884339167910496255213682416273450859493626076834103055147648096066893570974917375812542158560128312827644159250539724624995671623361655045702348035005620196231916714866083669136250146700533391872965508060817733951429807815113322335456941805595316349186513054668751543423336765255023777976842281030526507079411663287597093684757966806436269196142477378415614753224024739111255913367464514818697989967848996819650527048508924880572189086259334101626675258859409283999033052210744932042711985668214272152399969582859474840147775853970655345808880429897519792400917981858983441314730907127367071281984712451399148937850375526530844788371605870744111096757051506715949337569366703226796735062600103377307807785650577454980828664708772688907386387411074136921460550989879877793565650045100986103502170678644179381309228273122291350745194878923934331098608082574991554556763122163064603968980519284612829671758333539518622069175000841977503608213230646737697568158788930812072053605952691385849419472678652388518607155126828969798591490512615438404637326041205955279409681174567277958606567914290855692528128576970288141036206431963467571371443372920052246522214466305888341263450891754840971367793250303791005659398128974495427118878287782286349099554472010274291027647871705293281377138743585217809506748796410170750797098140859503791449411494980279703467055498943040036798389583502619968103906286250562574558906145827526058884152120871057598086131681035832963284446824675189000987805467998282880483125511366236752771505165878938789156449569620218070882180762298278707407469893912428459365894316693041492037859430763876073141315633846829683525385115500584353844782664896177454741037407719159545961591454029374600226382423620019553633156572656377619756545454378124869358448023555818471153425786145401054871032230899692691730615759918066783240801789475645247071478611036586023930823091611033799334245845878076551431697893753986954943109117650990181015619383926301936068552801301791687132772991151962861879169274030247201579963576715217922535356844828851233241339118536376510355924864074285395712252186571506363315560858180293637591814230419421789989506819600326822904007771994067407630107994297316281909612750113189924242242382793353745625498797298229398457756157485700326496441384719998639493803893702050635146047866585402836714127701657661888143132839249372135260106813193605507778939860541083013398771425476625566389808892005356059639079814376639446005400374471720786911492777014851609236950766427751783672787291691006384125339325139748536227559847182944335066913890074570263557409467213375114699058525751071595865545120378247958800427468477563630182224069231040708992529957421055940761993470532020907788435213845785314677373672079240920091323907024631056015343480153733674737322607104536154795402529839271779774330397526892175044228983178670290976701481716588791090106567502932398951462196237694311539240912809592868016422232955838961242486747971302658978623774594866022287241512796466320812770561864405116260783745381716845114551176905669354994265104471659295944404890860723208850541001616435674171508115764363046721383540698636965087424555863818254216887383117804494532882556636877566431578950909359291424867176266824998135370386339305903053908366681007390119568732926158335910274089351388226602266018544858593945053541277431477486518662536798589545111817262711818241273098510492636558065244297503367707881208187451268557139025483741175342079445761627218511903290737574027997070161564358972678413182913606591722513757050283214679591457223302767444141891125117835704582725388083151686075121132209385064056939957273726586717267218505763840532043433368782412608551773211352272319947252284533098182537798918900858114896191966592177330654684799183294610611128179393123503490518870441202873215197223646139496466098334194042878194270733203251480950024450149108237702142770981988503022257777431005873314493834282358931398286100635406091637045832760923502138187360181956619671788539178025906985537910129322035265251590047807842658831234755698059071608663381008925391175089058598302580265577178538681139036703592853253443642368129121602580665490855886142198513096164553965662592824999655145920707768633506987706431987377076459913108871867670591995428353718783520046066875796082403032936289152343663397449739910908971455740316625503355446732944918994399563038305747738056530802591915283691129832495949522564456342340212924572772769847295418167590071496270839335892464692674052028502572213664218040528444076071344074581844961488417567266520907910387795960571299840051697169676117401895704078846078145632223755075841603807552487241930631020362991857209608006690846474572689036125828629063971806493074710516415559833215864946508756994970597551378198180335378517870661029887772767061431444238262955529619900477604941850550179845097592387657393487802628193511430630584887371149696312504255624270569471637625307101535190206651961878484959826635094326984594468285367491154353453992907604147876218497937822923896215103683580932396952014099675862675224943996840138031002276014172624390622600655071045508625900596598099861527621636791477341944756719480047123206535079925176334329399508613810544864809800358722903134461097300570331740581961516964560868260688651194564498950388605310089686544822426506981296241089159504487053261308299707316775350522522798496910363437543388107146213061350766906801245855793572860427160193303159754754308883292717105167196408301128400999266113446698848685100544990769832023173268935040554867461042632229177266039587901768381321094762379073380108871614992986593337142440648195651132667794044351432116555800886040552867588965458051673774279565044421919934330624263930380049290759244548465631830928184369720769148118789476288102415621541045974791442661340022683825561033212556424130294159749395998373102125298035738196906894392721448540607594077667115470856271655683670622205772764746961789936238794110707394861545325907138457563137935942354386143176042235416082264559380778438441643166640909256049298455317680342682867971250088936135531847520289200454126318588111019499549304103350217329189413631303843959400123914186591950888138601043411441334541464759160568639086665230421560625050699005110497950752379372002261389457863435164740990081102727826168761663846296251268059667957410991242385989607908066702236459549960654138618195311394631620614605787844398121387511900517409602532771635300951108580012921915453511088064086795325998921117243869017187444440914841537570795606818752078565602746334405517561074622052797598553328253995073236306970938549498213796205180647599970847074079450661528606443378908111434136751553285543398176219436089384100269158357026146250584605620099804141823835379673574747065060315701873399539647205816760468663738526838487809039238504921820762593085200692467718992331182336863651135729804420330099819785711619112325381827354067063077982457030885138240405940484021200949386803740056309412049024078994076207509160983436614688559546582730717189840819823106347472518388010016699097826836949221680469520858279746335160153794851979467333577227901575811377525272784205637262616998604918229559332873121275618911741226410234855651618253164717561741778218848084281205659169877999156620504440374554181117360019208452606225129601440269369215476246767265377525801116074632871924804980028402945176745761637126602404124326684446169750002117054683877242334640806290944421422067109005669084074130451020305617441637111355189884496950020829394827191510948757912421011152052135896151936184763367948257299087971190123615542191183853355651031549958053908512373377645358759875177952512346867047492652237482221729074433214809122066870919134005139661877137421032713092453572202320467190695994168728450637273893093212125858798594869049750081464434519613122403957881359116659901139389169539382197978414895738974913879633683195130064711715428197723823908456259808024037179826063719613939644153858644318396483596821131099610950609815069204344187042033486312101107110099493738075052137784331455614174688163381038433132905548022390846279746250309346960046038158554709119399223972163312947516747120499226566393504148153367806441757460270846166354070513980433520437761480956567168087038475369434742405266039547941299214521877685939966341795480488013827516470494717970219486870084973229459342113831965428341807034400554046828727059405676351426704361091618542518633630080803607057426850170660398455843004589259861365558669665809199744915300553523073374906250489617587840585794342564060134736795510276503558653409934477710862825298285310979780057976724242596860481449464114055367799264574166412514771476942305331409917052652080043323097848157184675380706547159157120551900318438099872337366508552804088360015256952939890550920395231505569664271085796332754578530656602476379356047463930185172853825208644070794848182052406481021958899693974298063812865298636564617254173816666025461799757312948093983392374764498635504204743197506229653701492792293131179047452739064595262831780854630963251636827359328796802401701463854631143213314846116457473219191337012458370719791679185747259765735503866010296468563919566857493947321490330381053654422551989927545595271929212424664332164799802554976576892657555700015050638529181812582197863550037084589065613948921214639162962691163190042958256445205767540358186381233911220741480186650128114751525493851989480573897519315414736180514276617826462402686012360469759423228774882241645453841134568566600743825770478131789175740813042030795446464534402206848481051049220173118945703047067966391733176094609469517387083078964761662940575472116583678951240203914769402555255373683291003480685483286455548193439210309729804573652196287280250641419088721138817503598466914413818350821535561089977252684226863545066022066611541361011554998674504536438947382871098279844841119300982165620702059480590754850536163840365197691337994718128159551522240352548018717967032405024068276206131526845808712921238169361144080314209114504136818668452481909931648478430930519314050070533880604265628581736340227090817146732705626663919670365994798088537147216537566316451227513492000858392179127387686662480744704730425031156104881569106691342499590166092819039408784987443956710266430758874611807194719993906172977576215409600913431281247817155998202346077311675509128129803096115352555762321186646679901165455503149458552622497417957331873853603501904243386718126770006272214830282829859909640716423152552588252290979684323690996897357610430601999181993923308868355673929620884313500899166067604994420697135856908911122330525933579388258068699634748093357127518063854578617461894144850390843750783463275922204438119821150382657634650764329838474153135143486031860768689929763121992563134027019533055091380066635725852957344804159431676523100636652678232759027558184492108360396312380937386306734254502126178266763312384374248059269568776000268467554711886298877203242524885632020836470567271002000307267357809780036827843351630132044987072421045443374090402635695527041216415603537608466922398593130848118290801742165098658956415865556103742160599219821879259222717507604452956759141129874823641601761398677149383109608392217936061988490608436113137345073630935730784875269660976397972589523518038031679844583443105697489436558299672780278774602633666742778637389552771468571690787107271089423826612526504990238061972687688690321348898464120572319552494950807072641035606502785644197238523644799457355623785885964539152146110364330144483544563799749941652936191158575668796049588643418855659334633692671599822430086983525421529418460560327903033837450953460645578455469865251187878688594317573334787496540391694287670173377997721109095009816062234443474032526999304754805337036348240738575499641035865631141772835129449571851995296817680361475150187333483719669901130227186728159276808552673419171775183786093862281042071774034780571466506125498493671614069519323794501460782324279554039161370016855626992534547150186054185885743025128973683472461960164497777025508935607358149545466165811486362376844658216069351063779105075712723642096111614497240113518456613193091853653291171479729413394040646416396348470997411994779402800915130109741362340156576071720154828162342868978907597994591516889686865382431783907099323139841520625017501334519785783044372424396253540027308177727583646481017485913382747564226828505587331899282138958791627733118348534667753001827063133626346172716058781666334441591701232554610485842820220159553463229095929565828609690145168074579075434449922642696968021813253712136234158053293715358188382872218968172136099029894521151071704536525966560674738558552895197753925242421296618188480440016350791069024960395460786017443592881135950277057825881856580244065202449245985021197466679443042013151979483593450794409926036939735981978517863503572131568695437598127845949396855367356971126032909361787543405637822565728641171846334352979673489595069110860801030964968181167622902504761021008947574890707564548995218837498862249097720911140870289466864223175737677614610467515653494383642566153339049300433734508600702157091926809850972977717288721794421470134631033075912021668665029070673804588101288426149792230916035667119522587713156899063885609415318231231123333562180743450058142833170861518033908115595970916299554583747129987467082099673662393950777281769328946927442782990501376541156463313719896155509028471980518538401362314814226469693301858775560003788408327138382432600205285808316768117936300947728273469586984621507174512033025258798675829678011807164515352651251737525910888603915771413061223504391903629917895956417236421359693580680772350304432424183564867869267839731530280558706137952810680842448364855574798711118193209458503168283516495444351458825687232886935899123170824181960901781563025374965197758511537708330066822925864318051726261909140162862308457965396342041061123958626510331789593764968070557811636032306778144971050035140569345654367870016525631146392429366358328998051379211506715455894025006067032767530688933282953842674548204094692587607775188518413342379742961483207134628021204085765544929444582556817854576955718121617911511619191329193986934148315389248888731066842354861939507956791575282459343912472629297885896041397190232647325797977166548877228068941183076910894333148348796500295676056029942537057989027448308490612434811229075116026027620115684794199942021497957447651035424187598248065580953311037307909298536122429796572919506728891164775014188094799306233943343753600934526547415204153042795631441222149912304882903582532923102227643166182005011811233248267041104887905490266539035107999308039822720354046011597600412468635180589193966038999362013639623840577531996412159317044971626048203863548567301819974101055008881890661288140220454759176188363762522098536861120218938237515519025510417835077233246316638642523158771985173763563209443355613026724003583693102892176330436017579399946417933352015005684315878191441647225221289125244370873367756046744406795264140393491996476285445449179833604996655232758650174000974498452331584591145368392846896962103116169854565924155295185041832570025758943320292703685095371099357802894724189788485562897057885527997097282105137000825809634386251654133580879473619537151661669635274229488424803292099175222011730137390419254108461654271579312787141895890907340765272411551696756847034976759652231604276009416809499611907647497585048030370002008466555363823905248549151652616391937504873613484152914140225277423182689970653780783699229892905723756129233688858324939961833076408750229016607926168697702124087395624579558427423867306739027743596615585404516638700818619503633798625509597274861930134334798743769754223035289026316818747363771961733717679486416538678700810121406801023116065871816709703904035048985966979014727669945648857966067258472271963872582454496021489210996467341658331795710046829058695618853845709740307722583167552464143639744060477360419718285846436878948739184536186445605796286446721989498747428091002773166222455086835124874265411745029820036202506968839005672686694515526498616486329600982102183592690055578013543053499178904220856835515749720163518009319887264023205222963233325887512515663304139864214043384297809447875209470982716676521070438393453159737786704062645908888502869875871647620253066573118798596173211716430961433421165634021368738563320583867226776288344188424856753650955623628123773024005029403576474001561104440042596970824883616189434991658749913438019944819955175523802711356645481348317695305434354091699057656753709090206142706342366148466092162082721729783404205488153992855515479980519729900820366217653456989588607188638510153839005834095180498184026297993326687569418729169751725450715337293982552935848615140201549152849371996982694295863772905261375247673937407816092478379071702373960517092982545872088138200898400193217930222009974481261090155013229969669006333452074479945817966305966483371694527418123701578086912432980915120637287356954170164109400820997736881580533515695036893795618470070854540666891341228632550597479899450433795828254121223216641717671275533534014351951915994382548079580320985512187525371804258210363981134489602074389966798494212931995152678977075497463184736221583675171695878333037963439527170274618602635760130749603566276872848273983858136150643301610425983787028383644586763961642172617481696941519964331527302893650175896222268196694969940988299652419662465913627092022768695468857968040087961865219445179248479871770873734234324052402345490523647567308547153694138300998213024806903525494686581866783372490806835872213614695038478234223544180873003644500304508477722228167280141590013993577249917514099038453276021660031607251754323148836466249101822176300309390533418981555838230460771243447620520126675496674825834460390481081223322863670961965845287022927232345456375194228281416716124419021823732714573774377034295193609493251702901359367385822647050579221797981733018479730214399270940512247429450265154560162397154458777928775890740840087413705939964810620540568762193312928003829376317118875727649342598765761515968426402283277323340932738441868442888869667196841125372760694341163677851577157331251506301583661766600212354870545645551457064385183266853412955896333354085978755383265822375085598455557292992437278446499492233447126150581920265402125042268121820238906838002390128984734458878068349652514754401610894531289624684814087004640850654150852032937859424515719778556570646235529280041114394783330163989776595410488929441208914761730879254379843100093850832034345833756031667168059835652833793968308964073137687776732120315825784016147197918226584316085344220365287165621354631344317495969275513951086233855983153739008583575625789072725587196911238473740417794672583763866897049190516338643529162899469107212146894016922258171092121412787484802327938209204852821482242896468299615349878603615952472028081597973513519428940660179184500011888502796073991321951662677457402114548111253998347924917664640858108693575841263302522848237951422247825025022468039382310209251737016755753544480738915928452635433713641184886912321370509414243250574295645635750854117082768129548308359073038283726753943173223344752610435581165254403314046639969018051876510315996243604811749909061732914759282294727487649891774044839846458623695138477396922992095152859454261677615984257556904338573395631253973477314707886288131665621019655997108533491019821114001099477079167226219880233662753613306949424296401218723355036874776564485115742700375133655494482706397033340774386514050951578000416755863768500809152189676606156317600002825203985456374331960925093119160918213544384565857916279262901172830267827460791230422036397698809576957471101609848093509423593743693405955668734171440302388953830033167408495523837965219655365068147933038154545601830428049258037990326349104295499925816868164327437292523530867084471039615394149038321358007917371829197221721741229457668251208316786104506055461221145488912689120611602189427282442104659641007129245487086062139597578640742272822677752546786787354822272355016679088719204149745623316585580239960904359390630931775560476441878080161644490011517842234966603167113708488712283646717381933767929168872356336751285016004518145723826620758240417652053375936500549676161017773590970538703330446259411271140366297040569082955506583968855584318649076969899877979821314757903476105215089139892647438816175618956340425045172752404792581576904448226565149121321516612257484617995710890063168587163915680931766777826319177292444807335436274812810891452495678483937020599612083205433742552364936967996629114221037705261965616895140718799665671326875466113067433910552065449814403258431937316834206316822198441997570041418749059727475474307570959648712963399602317183032872570461486261794251499847702007896389950324372513603893627807386883419942688363855210491999844209128534703279217002766556329011210238410622480833896255261085628062596505602316189414648999654313429975567577079771745943057487238902829948875560486409778748039136971338554759823613187173770010692766850899371146146384556561151481416416832742597211090133921885129270916617760557244300485897471750287681339368566508577932414175619905472710698976418404880558859904006272797248124166640384996596279472391066596853504619398934633777007691887908282752181234880615328616502621065346790192658761189938621754008968666742697165025952283957949985107900650416570243252540400985619597160075989080660036280258452771132143936488891228663136748471797603654486826660484553349584134930306752964804166730811144026622590193195451364495148655056629682416719685563255393542363950136201658747427504037741587936914268589822817044543178052047586920338943003299076136273104954638868739377628742337261218773523648923827783041840771123954414814152583095716574082730408565749892827225864650296769274522734744498901389463675884867095032824810118253853261045095833598035412252808219806807184814326556472536360439277580205265797954673369271085569354998513993651640324073028266335700572774701967310006761045403183815069112204702367264512648008753115312647980263207212332296564484585421656026983053408129044370789274368319992002817602066578205860765315312953977033993311679902496822520812305617159337771276810510556441890952070137716994706680159423558048035754406087035486687719108699749711324355708792786828492481384294670303631881572049037496214590083655370542048224401799732721765485502628184767528008386555400113348189304238580182146982682233829331429128098310522543821743298470959520154027746617840897805112411001898086133384473204583279578320883100441686054763543523451824309148798147135042236371066718498062233057152961802857736897753235244224222923614393724152657395159392827545784020251608631665263483025895039210821641118980985838689646879710080465671738746119595783135761269432267100880670282483514922784801688639495673915680433967772791943179813322802628201303164901280967147588016197245851392406292216571521685627317034019883916852583133013492993623938193992948975300840537018156277606121325545403488175969758319468522714337666541327650598033870768730612659893578938505805456477481329610491626844596111887826387376807278927737857312255194098791316673768857845401249508759986900516919929516676426413482516581930199622171214992128204731910323338848073414937941742648012633124332854882050705113016154840364975225557650118108613577511165030037748798970292804586500729195594253099227814513757059808278194185879679285770736310791996183631152619804495036624912466608767287033678940153645948350771596492882309300805287044994516663001944396897440197068285761627786158706266983915387594670955763788003095818623317843914917270188563283505952932491085893089587989926891270981837349608949507898802271898549978215334386036716475958701342901645858375187553199037347974992342789909239488927451787367433607222551463176859720380904917610614301119802513873225063950482831475200697468118973375723186664098635341073443501312092064150215636724170409367630787909495153148758715406926168869572066210794104410070987930473399438147969445053966548723951254412238602880192746829530039804072338345513701331302299144940153571056794277502276678301504402904434079858112791639561439846312694260134418515617220520434674066758213652800521313190858025895185532377312020831833071798320183720643650088533652931598428446006641384948895502574641174003459357745976772943408437390840617769462949463865043556755063085104269577716839246441166142555343494720649047278922047195295312596558644828384501020966779762184200726279776450347042373925754762799690804109460679381566613767102098716881191280183524121220524287332855220540132474477174832346999480625243702010609805423211344589127810376533518736695854873725540854087126863659379240909714530320141511535828203838546643223449912189513123020616867381573217859935995659006924224544568217404939604728006021294893255732780460476879976505108633651576617830662288116581065445023804423662870571175362056538031931620719591457520828975645744892359848536868821966469365987045481473035047531656440910144645314397447123156794577968908495893571937973289511240666894884671499204941903294251654704819809593170002351617866434421274681271371528711966058110603092518209132035969437565145028652440094827040931212201500944650638111423286584449899477861528243818664397703526256125218355235003904321474375075188414857008733908675795365378206553772480032927105370887585340242457830423139692992627649876672416149752098133048661878200336014288678682105947613033170379148210235804240835684340466956278253510912790335327371659634311903014533382530831059781415334191178083772564956398040339055904722879532778149453334343381448647606624774114311385982342424745381509414271037228615435854178761707849705517105433040519820989344115080555943014935106791384815480642014290545523842107418006117557388262767456323308474913726474438491295921319888743688911160714787574486046987104335456277176262897371336553362804157550589814069992641407549098909934203127621132439505207438206563402690915036681546191548424777444813556976148849400236038081500287719310975993161881419046167049405966647307548939713927032102905901948797873343733287971949994151946975128593450170539553527056360473477848267684337919250552134429731526167557325301580005719107689038712387512902883558267612144153445210660327705227730519538212324088916131424572438978221251490516902391176934544233428986227398012253948795446764505786399631349807718136234250245620612583743430368399381078962299625795660483711318784377277306860920791545614229929738734070618737099158140373144458967402678989330673594928489321451443980583125574942391464094603659482680935336105256822035109979624033041190176904848903927021401774212787157834644693848047714650399311344488949838017374622594913700127309564977199112255389387489985774675290232309316787086397870629582299398578178208730287654720941941120566788954724248897932875963030778095172581563456771211865639045358684747238374784860119236023333661889144643364539775495574409223001267984904412591513829065807161095460084554016885243795143357299228027904034353049652471344216519999369365963136944515065830839989865444143921354762368474074517822389084524030761465772908387714909237454864004786954958448693220190419581423438341967662317264105067263714344383234919048191821128192216833816460628328032160978490400266937294415498560842009937152669524039895572061697291804364952074149941694049019868972007482354707776792512355107795999075123045062768383911404772809019611715663554150829410430557239707773088615597686395035354956134595119098870236737129656657437535500802100962771396221636832401639965905316881165913161348354286869275818718554950096271524916785250193917041239849768884874410963523261987164169345651037041497629936117262295431520803389871788262931893348029765864933065093369638175194221494870465000356795175858414717363279698479734577694607089737606768899830411417168930505666495308064665439192009067320638341033536387616059085955091122765253721816846396899334342211552064938583325095676270385873723711081006409575428945318297449322123267084842501369115263498428199383835754075454370749923031935416962126327870768397442612112059768881808017283441592903378330292144887277250155231028399844322601269146792745250930567615044619292829705527505990761839966302938454414854918085881888107753423144206271572700954558784125837695903116523605937897761888672982005585150486747614887648931804346671279849045734041742667182182869316471762423863511942828186394873567419215803402574078423002959528845366983385703279658734670675612575569894033917760720171992295570815546246932790318406664410386907416043476855976035858882340347177159937325075268555749150988266957870675008943236651783556590335936683603509881087081814200501301418523638789711161298068436266191962749146670223321206999825276713221950387594435481771962157851968854446786681093545848540088436249503798681443102077897306995699899707499871929436937704123165494172783377905660157984675796973697828583285287329225930706463436625032405156235294983584891532761272795780673137181856326085665716130396180420340966144995866302534934462349217881680568914008529273626682613111802742821989658286197763714870295010988864164007969717876709570070442750691396276724652038461385318771203654928991798618555272427984324170551878463503243272188967568302001443057077151235151651710742766753539635051319468727295753953642887505648052401827195396357429877962454716100504134818913369935160121732725629390259102315651062405945834395916917408786302229743670178559047055102946222795944871029790962771741703014302737892870282815447518722675781115828547015712013986659208667810018585619919188838614073566228016227821682784980744263935384651439534835801868535906535965339082906550683755773769747678451157972748000421599302865709543030282372214070514995166131834730462231480467576231964579733051741964410826269249065756943160512888041329590172268360887086500717827316309181162274661871099107104030248811145784192447241667217524489974011739317299192399580642536852886619011296240727775635066675662364659272498967851150759064961362391872210724588147288093402750977244090071360491510161865040214395956734065508472605401290670399790901440589481785209206625283172370656756125887434025801890131721221572039473007306543577889164105310543842046164940427344824855328624729741620957647244597140464087864551547781859878932927144607389746635359294820050787136745523570410531549864217108734761998917770068036610964397817218312271165499808024710565802145297603812602226287986495931485873289621161121320477047441615423839533593991482122045927627828534686371668365135000784114997953241326770824725150304092007344481162684669336167719267034575201468998212744468472264643311070400557139621256680095988220369269353678706200401073563979548673886296405992852146837457290996264973965586679026742139810777562507516178753932105638135431075301516656409704013167703307643609475086151642349678582093340736898091792870953701764924120848760821258468691433782518455426769715228881972012367346442775799198155643050258352379455963767937139266771008144535752171252320626990259106997848657588026867185054158994982263516223261267739481492022706163006097357273745733947540635834383720859021641666529783224743878008104690130282911501970095084101923631586042259048974727517933259196302832636381945539563602482336795007817331807605804072453723395721321226726879499637070500478078769167467771233913155933918733544583820844183758150733884726710786659270924944635325555149025959781447386030720463035667232925538529670587590148246846247143023606133842065659884946881501437818440780269763000768601291641719482547383213034544128800426316526077458560926890987283474932779972548328704444326875976046649562506359017769778196267397418917813957786894447953242572045799706114840553679038042830318327105036562108977847431635312324248445935391419523590144256746884792219201880203973853779428855344122810896868921698600081439068775854270757314557338668944376592798356839412391873231240280381579895305624074537959664309963155592900218184026028836551619757807218170738495847612652470586940624109987512045361880199379192819316457953643309494500277209499373144982235463286847384861206875589237453749135227909100150042065514096098923224748288481973160719382798168214636975420068506189481220308861284965495923889750978437639167237089353702231512862896044359588659306391462595381246661225862076720813021074263410679209182970358956595448669999827130132663069899032520450387889685739302620178200529573777149987245653288540550037151025465873477720264508693029690113488178318721907228995283104452249056710650458681129907720944416011324955265680476515009859963939910057623403841637438182475346475220991730586472931943576453365043459048188209506271560670760989591079680698122441196046075848565976579626797323550245971629016343496477714250994921181964144538419592847200152761143008891809032905784324784324670395390145376023278140912859643647942815264908697619328043905566316436348818632799636610175606348088702432665482114498952663361347046973285227164923894187716008983344142234680888617114328566202177911798544403361619701415398221613797035014838892919862865247648228340554950342145778155301958486414723103600194460118040698973257142778685282371510857795135345629808764329798884970239151744802804801882800848448991369812458116090990266139474837075120805071391973199617421271904298386531815292295230161294649875043251222742459555139115203897783346025213244450627452173657257291727627679513995255402068610932877335661628170681555663403472415061276952026058192365650189252368421745209276887857368729827551996337464683032912586481735160130631234678141126853608337168725528914735824424934204563513236863065310798340975583080323430875685065412839102299461413667993017493567951402703977378135021840563657591681408850854526363301099954802255571339386018245913173095638086065022650186833529626663361962004158641610801307940268580946783100281826608484126599212030945252658114350412809225211119602530243494029743093031722831927964628464555625576917081884386417989604210855667421614290054162520747454132949676699117362788582947821939961373884835307210754777722912309914424239421080156659955818036518997249384056628948389996657557249365352718283573571336035561679695801683281941826377596640172814052511616263165717684232103444045893196628186258617797671795787784710803621041428434396805448401708092816917020643938417722262563504561851831863114579899651043725960340958101183630989572202053490494275859559341194191617032421194505675618160843640210321158126613463859239968491303222993340930173101971450267617846896969375193068504792767603109062665444609939081175815421257473638119442547119586740219436484857311663618871554531519864837112302849365272153734788205743535828738933634907974544019318555237283956914109989086332454648343860955484351024564431052490203941958204082872751132181744024109675808295505138867249439732320835707083005608814878155715306767304219940873182655878491250772703188642620797733611022279123297881252013226433816222560042099035115491133032780332759872418817754826637408079707807122092996765475777258130346144107782632627522186553940269700089337949450069348594573880531958401889172418828449214557930825286505915957265489271234627291603998305663221039627177150407699625534703427099574457471630285771703328007186606317824127623515461110675948560255534288378734000406718881972876661523246619088399159743672735348388728500589610055698089568134752817958307151913637286112972005909494927332399528312442656107049672237611473820406482167716842666746658649147870983195124001144510943811738784662584789051936708026338247235392831246946184825341530760662171045563200369612063531480588432966729592411698715601024127932050605811393603849690111289665144433119083297803661073705966909847330037530975263493010870558657953285644204990121868909025248478521215377858766264708918356375608167123677257307764548435812102448823912896771108396860270431356182821066364198374362733142502747990385988499890899872760893085711795320299861092908154115267018874516588776556485229915848599400028674170278702925500422805496940767241495031284471240906954450995456386650285356314032028389803168988191233589980086698039557889898095360741091062315321902218687083300442295210247572498171599662883669804731755411632211039026853094536182712114228712179679907495153086723933674404360797045264421966129168194727007898800869860614712885513370518386461830846842237533682223853162572869378077616750036744829628451641956923787526813336724305898735142632084066342586879387336593406969433702302890344591847648337469982927565547285835905534108918365366725941879395212071701244401263454219737994108614258665108688412611324581274038794588539158230403222374378290612755674631323130503788888698141690298645002751557707838058253639808397893274461407331694939584534313627282506774616131853277733317595339485730654936851300234265343696418877995811921547172540471721529614637929605484588450483960625613990540235034171298084926434961739175218395629644930200138209151560042163637243846229294447738397791856958756093076295881507779516905208138619588925162819371700571880671261512891133184658215953830781292481374587184453219334557766000153640579039813905069523963811575743169238074579487571656875331491692052834220874951083635036608890860149652771957914399869756205035423853935939629424701043005109746009780410955667071949563037547368696008370864818968968574250735786862635707416965023613251856831435497557192711868656774495041764313032957699897189497952486344316836206142732916853810014623928345717517667471517434659587497809768274643543703885117705895168212835219240878577214978358670070251721492399562191762985428133342419520537264775023802558806466627465177626265711658785411720699112983771685746973811421192681273876021416216574385092999122307783375796471897293574844962067541963173015503038376340059535931165942700919695293581356044137740548838257280599267812309658736078090799833065736266238220684257098824855199982797946869672535133727087442398823708138538877145560218424074407441863463166004879437580570155068330617642007614206809861723509529505412609916955566797215718780806022931920801588065768517209965032250187776276789870798722197592499251891089341376741191961743265669045031206775433733167246808315578287560493341247065046506000855097839199117671245995788358372760077328901899206244642708520670187376224734367020026323787573741822628456906851249446139637256469488141273814092653915220199247589235474898634296426308739937162767241859649280418709809660440309543552496064827209522250095662666411519538375182903553411481272590348024674096386371459198351690960279661486152194301941305318445476524579406286167504303188991458501687473229920752196526893691601154811289094676277210911865208522967311412651825397012001696270055384782494491234155803589737245217683248692947530788730758187230003090044722123777358954918929589283059009982169393965842757910143108579242904551897475099598075503410024046644817706457067074256190638388274591806629839992686141141544077450811479103007213069946328065327688425349157271663036556556516317603500532505325697660633617491652159695846260967760508529298836625495314745832881962610277285396689484235931984141642992421536855834615254127923714122882316310590501613296192262733643607822096216151300973178288472734613995737078600477039650478764498275329856461755754709730443750623318071879101085154407740305766701198212387146289312239132880367922266130019873036149895157924213796197104285394308155171712186208234168331064203766285433449537682331649822630404095361072863672653224954663110178839717148438081749914568929375680937418050175643208937058717132082482029694248306161123329312874684049630989630934114359611271199803380350384066152025409413327584777407247234958225659385916807404231892455342041722079989067352235918697491451302824683643936634738826525421033620032189634959328850919745881209040669987245092542223936660562617327999787347240025137490762963478208590532128346603506581559268665716319017179548944070969981866814321752127878100874170279440685264534557965548038333524416310394652115983548605559501245060134334525733051303276348186092650281176642307706599685050321829624703425952222077158144899674259395623557579675193648661331757206046451362546592620254305246278672056188362472285601779684180226865481264520919284053659843849749731979980032464972718158095286222628567527873040790653534324421955343251243322662252762689237891866912551993512569826234317718988563313966005972213615474659879604916149043056631199579536018614188158541707098024051591293248756752408507190320293943675208608310222485611617921351392736442090700968148826048865352098367127152152759938155069362587048271840268273520083737611124239887460803726498929694312700018332149477258544331155401660794191430755634734613548553206861689610889388598285715838500524016771762020535945156738514907587307313103620441333652578781547867944225332838154862102969148510023819050071538638657077661593775500771278702895695525282708509619558654505001951127881409188034397070795440751193704660983134152215220844472312697176623621550718318416665582169979903033875947573283628888160314127536786770528553309709261459065492478161375801419352320653754561569418031756059786841631652927697840030419986425267264492139890557199620791900142778379896983106608888188539436910173199082305145654515145723640580372046915946846721898877600643248995800395153179070086968298538746742752289371236209461338210009009229445464000293163811531319836673388908995511226506751743297717705847802925553105384759106998563084797407669532163344902890515080407513713830301976672382147644398881644606597406367232734922522938487896713250917108901630455297386227075874065480310497106958659422123659009342004286330037933764919156371626372810018055469901163003532126461451702966220133886165071064036863078891066495408197670060636894343039764905266190014066322248853829635726498511362065339319219756075344176303088705599317974288663274792641311503083958468932338649457711519256764366966538056717395215174549896948379555249445227267334902800385815653970333140127903404510831264227447321112488605749242617910837217992353215486768150654561536115190973319371616776239244553413934356265034272945035634419956979151850304516425210051612673740214661878512243296020937448403631195764802297669353269504978471881677069406382538511481487368636720508129499901125319794213233965586838862820583088956867152924696880798931055893216852637887868315008319097458084537207396918185297622262944477005183447615097311890616826356322766013191091239114789319980939830679738060211256283670873610185320350600934187795876455355833137538835650284090992672137732475433897551227624102160637600644404127213244869553892957168372882200865462516478778254823029015887028701964363081246727232163690410726799129321633344008443808960196765126463144340722557581414684328703848176259207018091112905364548301021238853160761755208953830611372008220464845517368015026834594753731808300361196987159111102618066105017856776696271754061459779636382871192784656617970955059550762693988129116183178370299080881781699780312755327046822658308692650295676936149587292815444991681789288430755858694406944753565994242529582259540380526147365508812603548382933345789942322606193990725126692309780802994310406223032173927589224128822262621610955872554669588227056282954500204210351823663381017425093440157069007580284561118748307238318689258899462980236767377990910223390606009072037997074472594660114960941055964287487080885545322975035345254682153723088050270864388395904832976381017665707690417795179261716777348931026571046332156972424605210509339018481196505258958117013937123538358430085068429341510829093782920362983069842468931703750334094357344760557162581017550877756691101962732290571370118118469541574232393119425345599567695011719109056014223661496444955983303740143313431420045248174659236050157556376457506247912772199745679050435669051350853703391133191726123901291854765369765926981640418852782629797839380138189245020729180821461942064469605029933454816735030894557761077568196977639358668188400400137856536587993609428083462342768256399218962994430395696521185130139292006292145807232298277945667780313096572480941637303852621528885320871229513837502721935502741746142362539730087467082374055127950595195218892462705558256162723099414221210550402788619975256245535448338932338054098286984390478389998707744645282215566385686339667612647877345757076181897768283542939317767044006292418204044589431015454214237935559524937344038575043051466926001890166464279085298370231073877956744036225795928252527894643802550142699897410586135934745343903883238722597054652176996720889439571327112954810603727504669495671835213313721561939016948044244033814958421055215428128400807485319420681983321969180489228443590174605254538395344975900540207083422201607258367205839299061266181116870125296203749780134534485396133391818934999086162545784272562113389287359004849383716766457331627824458525844978254255984073399297293201950667301326454320706634080570933211555156546837224908718142476287975269167902441500241948585247567943123527914671393801692460572177408392673232333258847395223415945774852305343387647171865419041545618171529822958383512677327143426277958601873987849423937933127574908826373770488636587532579235771905877704552891549854169836621206970877379137475387740428531304835861052884479402328382155882420074293355271321392312614162414503150858789148990509645456660321128795920331968477702209926740039811763003976089405834207725843144186208580024242020289417923738571774030927699268380554266969840949396635341512319149772232871544871519089694446886299472680550922916358553419296204924439610739200162741463236931957223236456762324614830795333737979401130882915093597590185115313454404981243494364494926006431191027080371705912356665839814054349598681644740881573965763589820887715094033933007659109421199495230126802010951251594233258832768082089944277535751279752326253737757786847849340168280013832754559056916733772898596218237113695974024745240375858916061255045617572073270151853887344429981914654250213132819629639154474759319049222370873392245465523504981692502774345799792647115688452648769776702498006484510095706639521221736614801028230818443941477619535547380439433913546253283583512533017018113036550569618290032632756367347546385694439004809477838600921314615160179309789415225899329382766805939764622334271801210851824406577290418055466645836902227983562144366891688699090897325826956144252766980470046960210333791634940177305766551088759339216199633377933508093380575167299438142897197248412222011994426894493886419159453720311111507068107531989114429407234384194124207441649459342201410683696462912504804778952550653733604939043870101523967658882286391734146575153393607638737502099884383707146480779361204953433237499621590220556948330568765913581750770764586510054869371931060672837330401207027425979721495822734443857874791896047261925772272917459904910944418981248117665647085422847875098311269729157224444289092553277174572312070992313689164168547649029362244336798391109622887592482067658964469520780448986545865953233559333853688512937453045700171250589992210433982815592459592594640921816999695439341239125193314184814124148910138360793908414301937556900618138540012463985665351548368939021665679592000936578718386081507766263648992892347867872990248126751431318810030038865525244174367950885075624749356920749179809959674322261767007738000983907339619597008648033880746048161350095564107488502067054844511795109482681238362159783865724969154361543211288454419104422055743105947574570264789255008116953464550755462018205766523647557594866381758604256901666627752539015704486887907838424122740681307039714712053764969887431139404508335668680275471799512500813663634930485854941976542558134623129427318036393102674524201105931443726170802087587316423832224144191763517218555994808991134663979576395444074182077514738961135883944092435638316953141623490354310064959783851806584695680846913024794596624201983895670857099758735573474402395209894020731900260118461528629873019245777060181007117504913290268439113594440105416090860957241619186501881809454483185903951284503453477184961123072262078163953691330317002784568238540832544053986194972244499173197900971667300425282461293947406111188484253895029632132269682585628209986352600901207671561132694379605742516818910567227285762736217258020912988809528376404199378315371746726124810974902867944061659322289003535926056048438844716718247712091379912109220071762780635851207689757868911012244471078931426770834199742641688167534509815521685689460427290270726794700801308772314958471666832072174360703891373875664342179454355871870343791323994655206106696302922387759881899731336642051143390349282730191002648343306545989622780310000231498084974609322800060798918579974845040496972785510026990892982393543376869050119257864853168732628543854982657320437507533420593975873899264482594963315762323844161692898330286090743801527269786070697299797400673240662389110695938067424873759346984573123458968911094998861710817331423820769662867734160952585730209342369425864482798590122194377339348374826685675668574759639681070909750797503221417684536899563129493506900394670620359050743849861219158015520260935207194605371599552551179678269988084729519864332860824145513874614588729542982183681808671354483061870176722487006422684685344178868333677339505724523780499044580546456061835798204066696304441998107708490975304938874992873248942860851650209164327374286953702348513194230106482022725131790237363585431743754895910949659864236778177932221917348102793952582166519814321075174497628686788658992525687758630536758894639869981630365760113064192650512893619492690627947924394908074801810498374142381338310042915689306216091144696516722186998234961755302788556973362097157328979993399907935171272098102298644007100284946981904644522814285746992641602247494907811135036234600986790844761064868921176091893195021592556635663928181836897504214726074381183614637013181367638896374185465019016045228358280191435764298723383768252314578687187411279563476278247068000701513182181508273460607783832129642841718549539744901221967078537036319455886612165657817446244953358687030564103928908768870927677914773891848459313623060433309842321631086588150902796294830526531818768887935715069746597958101936187723101047411713097969760625328694979160816790732063125761020216585937245897374506434027376318041898972363634989247723588032518432302919162868497946686141712196646293651809882882077028466356098862144194293064110174247328203636434539466564511672948341590861071694869898807696301797130657672190687282994595346764908579105803937968813519189350841561418669423536885990029359158233134930517499552514125799653666925404693806798304259429464666242323433422987381555031593375586130676937157892026180982957478678498599338221617378737711164740401530367885643949874806835876049507038593302267824214615818687780941653566750343737736874428076386156140790017820295263758243097531333587819618321707971797498682136861107589367653798683320063449248707478997735956166993815954673593661475754643965259362931960694186893827350956252252070719000273419616012314181394548942638100691185803364935020520145755526543348784587444404494366133321444903215130610805957937671980536249991842703202852912185326944920199213388051509290444346062852235682847061673869108937695312711071918309979826098307986870632988962677332023780820560811791790889488791059904042085498427759818910176801141262815091621733444164527888553722700466808831515091560147793321614161444255107243448171142005713099947651374896846429561635877340863654231336938971543797651852407667578463463878308718613126987222161212975607387534072490927699583537671550866785413301739232392646693821324138464541136041997009337414178442099902281435719688161018374979835071272094791226534763006832016341885837887950865320751783583509087750241842682637578631428232961618507173664999335840075175981338354212642663298309127759469860344553521883911074832516696598674359860914081508641931253012829527422291845219245486635031302437999750456412864167509959960379558352290890282406890413167749521018995387509386242390863639677288526123309927319213178248312394707131245319032484412794388769327611158053470683136220923769848503187987219024663737544727616363170085247244409553374842361500583383312078637932295841784515550166890853040508996305542214630754446538320904716063179301053165123559913027526655112514269880407401884412303246010215344212903919024618123429220323179898698542433227880493893017671845000526180757833404797494146438202821841904263149783941053809634417141304559631146800430642690253744269627200448804982284879372073882914095103435639028942313938076887437559124927238811746778968905279112966449241969598792406405827538262529046729288010589329273151950882957000018512185919714821316781862461289181914796490678947922702582292819974678484325157746467811358448486364634015820458510359916675260085835268812037332845429116198508063309408659549910536570364596408868435435442944725321167838518764957019536846448338004161128642682220320690461804145733282713689573328079442449991424167199346149271274330915845653992502760170708429802158064050690786306801374895755730997212514124814263026008951807231806670225287505220072260702632709749885679824407278751788380700459050457673764434315346708107704868770721308889660634741941923174689548435275220824371645322555562826201771227403164968048587550697105691260828497764244606440083530624004126567558276142455115244670463678389004772988879434384874369379844936905238910985147978595926613989243905530710971710257918234888264063464553533776738501512395946802533864295422296501274219253571927027648516687755478924153932501651193374603995650313742622201361058395654200448925945639937524293735547796939367117579785553766958814149866550131440857975118938413888770138922457804059587710575627687581704331211846522582064652852217341701308805038470400046516348401501075011819281678555290359476317671330468958669559722776524010769222738460799336949616001388094683983296223176950681856437442445750153132123337546869668891490748044224915185904248691161871530239623473990849156758633820154518821452071952063360776422144159361381600323395675222743340621888463193697559359418120159052219203327979024509916366705756643060791445610951138517527112924901419076453132537854644292841024518898066438024799653413122814938741586122609947761247600196858395994642213319376926369061569626661724622090045343371171341149015829116299166023672495411240440907882761804303550239129673636319291989567996634761005491999637630588389612450904335320084673262321325844699132606317905645140736427098932552346879785983457293430191773087311541751159157481352222705654288246161054254792067329144494399801888267046949069044073519884135455049505458251063585776365412844131513183039210747894427917092205251727569221760922091138338685639627121266562438456451243367289371384483372799909793989520803185681123895238815126385832701443811905819227929341021879040724454598067086377646858779113890101210342334617724179431847407036956484685476343318303905440148448425632102192066812590842456247103834052776262303627038188643497538390690033170765606056588688182110346550363540139015786820042594968585422540944998268327455646196727711880255015294197099548310659900551963126708495806043363791137701342572836047194406459061410809665411905226497907021713042992385602962299661586733769783457448790182116573291982584666316682124848422924057945084733553245666751920740068497348846457666728222659026564750093571992579752397793670830006747696312968262854035335332473183386807726794967527051903070900217224321887666924580148414279797427073655851551160516682052000840830975578475670796074009063898044761997640603878210939595227494037987594561894191424236552494475930800663599776457131187170450186818220027875252993508745317449502820675049353558502508476266022031490460467874702556050125772749539289502276026312459008291413342061115172331274150012548496455645494356172653465398842980730796555434196567452462091357597874230990073218932076965992843879864614988410879647107746197014067658125016942655728749826754421458530687666849308479248038023430952329027747612170401766911916451450480147486827946297488128543034425583297990809518135622471547832711427537547829037192703589296113472947585399171542451440509286612310384914802098347584967044574386619449191889196023745315956914916217416474781650267972857705223319934385183127221882531912723432655170544689045620336279813087762164105691933386057511469821637215178581532326477047444194930423007873265474078682166480826431610230158779839090921935404497119562603731353311674249128875760868618791724170131544773954715327645561820815965693116434218454523657417350473385343724240392692123030371724540391996791143233988734019754688257183704196020577826615748467314816121657474038412644930879483052788413795869997213321279679047183087378517268050144627501571476774563576069859320092380790882280347919640821631046139370247776602872666666397205451587556780518683819185440128863356957697344527427521154768452952282034775467286267711913354555702841160024033474443694771483861231001681046251002103795111260808447979997938995116442061085163467017829586658074753048800956311904020943231778024620060217558283822930527477253493840461624745390945242191570315623296623377802104708350324456091032908631811228695860504226566440392129290505205421409049218578205099173867718475674594863628004907946268433270507991821433469864835487370175754672290616965062223526742929011396900179743792830178550224256270376784378299245117215291405351781224842474992172643450647144330908653385573064753388632619986407291766146316573621719556752803234072216687650739021468222832566240091900664530209271028491512681181623905368262701092138232025286743103330350625411342337403574371491377750933547645111272175698100291136126479143153033336264941101700236046475729632145602707494966776141286153648330706987525862023600993379983635289485437492702638513732851915393676305138783911160565136205491312207947731619962466436647605112052593445513509688279965218011791433749474631130556934810341646512431759531413246756798823010825007216419528717615558961267331337705990493015241499264677734195861509983707844260518323962368521925769532581443960869981770512998478963727877180325436599372347861707533326893581924162214988690266926725224289507674171692299864782181536898563087491332836331597289573639821799854560034810744071188364072524724522372149294509434083818827573787747971142007615701176406790125276499144766318678535531442976945785012341678311454753419493345594339028187552637070661240585995044152923010412970143952931899138009454240854609450940753711892369635837974730690296067373136600059004043631490395125148741357420614633018487369761515089926892444302186679594773084148363714207406729683689285099533800805150894889874546768881847787998778980145096221260745017281071207900679346076580620078112784562280547811728200677612385016681473058063350237167978061836818575352076727116443615027472608576946585991761521199885951053653627990973635705239064797453299704309672108302002045878113436942334650298762899256494089886681886408083230751056429937655944481998479700473218998478883776822413600990863692177741239966344471654840850109954774058694844350957792200458224934204555937544822226714275633860227940211344535029693095798050275234209741945225123882088179473103210069866582349474516907455012044311557362447444213290636321848247530340799050394758846327207304188196739841433734919815390139183782044465423724136308984968578525553743795213174808005344986355093045339167094486250242719972575520207396611321614195373664278585943255118808064681520041483472802607044154325318594908833039701939362385351796486563193628047326631154181160677563773278625501926459737013954347351785889114818249264361186157056609778102239851776199812355420689453925239544508405180058339419800065428764578436201132295986609151412263386110962027576586115500726739336001234804745082791384160433714361231242142812875937903533506387842252003886633750499277543979201012833579914101178093274826720026022214269750330107510643068299346303974327534371958800130754258192680862555914486815117357695322287286666511299296287583593586488203340983832214768061166404916021267492174405293817772457110523641234961376190384187345526954452743052600549946450005015153616652596218985115129407005839670740442726647439031423704553785799076487595276018375683243351294440094360329578867300533562199719948395990997843648572153154955880659950647568446681526621251520946141272138853718984690033657629269818434648037596859089860451962885063430469064454754042664218356093776487869495356533509791656912318776665538822710624047187405048558930670234639076602421766161556183301486341058746062087278726426906168793682377278775128692454825807367980087701189763520799399556640657922752349473033589125647443787553354597560230050323823353956151121980558730075211544194730517347551558612450945145625634458516212343543930075977088599002267135635716336373391160557733083830572907835830758409478261981145779664918525252045230730406641952005338556225201633746025636183072899818740062993382760322161887207745891685431391071451745829553683763680027957031483694550621977233658545144042851440896697379677140321854429376657302790217608714521184663383158069147119222971568168877520130849193277831156987534880957010214532207492789946234092639183864101851987114351655949608203433915229342524677788322702577276704497958483084070499117408434085305188376360816479132652818614963173956095099226022903733900492850937475363457667783044982322148071541169161675321990715859361029716272516211947778272249080444073746644055725739158211561800322722177855027645636638564449978842778993510505870839497731415468072971892250123471259531346913383029291264058879290868896679779780569755607312119189482262462401647338400827230273208692322906542453405750871789314588763983772249879294515327831166543046793510843486917266531440126209431218645788169558042772698421347774501641658252253134422665862891864205226021414598098521944649086113718041188560841513678023987339878192122827197540662790248581728156337834956268858594281310519332706870268236273928419338954119919839751686970183169341942021262237689380184071865248631109897205664235066648286609253168473530600206950044243311441680681611886097002422156098028596409850728221123146978861786105954071956212424715873507181831185921050499978321579427497973916566986317134344484336136078048431984376874055097285308181240287328301248794883625212167543490280669743669643520956605765461486518425465710859406622841680639940736344385023190130054664137891149143942634861243045394133279368526184965800812428617368877372507309447717205851627694579921500690470993782611559313502309997415067093478570565632292167426801830378606484665671288088645917940320820623601841260668071015588730800191710816104252302486643276822202526217733835244038225348103724840609444257355014793356929286612308626466274428610057182383456215842428185486035554052424405464539690596540523723605923849529254850434461768739921718604056985162500623929126125313419689172293236826470716684954641875896950735182226325559987074681509176778589835172517480805303008773657583135096806948209547623030173224313426437817407207455214027945972948490212135089390208025395548983309571456042527406365962142554477804796249413202599240398633245116859632297007412917890611292273986471174219500497755797601046541560085382952390099356315073162947138917159129482763177984914843709834356235836200752581726756014075637823832552339241204601678729239747601623142843731106491334978123456246769571075340983316490447801571997832090405780269475451087638008436058558399312382857023197762355294927824694723215004804531557751367880841726493595352624717560680695013978392539863464785022279454127471628737336671068033953659700813804474883846123389782394204635484975717257508421549690567438487229272007228863101904527105924357480189073421772599808167323006436665508612272921757415863486893691971383309512573421310762105541713379523535223065484188656520731967614091255868035348362857578274172459477307683656061727414400898421205957689160209352768021479558169976210708062605759963132100141562772488933761465873986733340863273707429778106341554412151623873170640544341946692123580298333256118292448924693640537401621362341091963980584117488874216505583893351890319805324206956748833206968543952578848042994568108100026913272843611056556256575035139001508427447429805077738036905135682125683963487425836435959724865884478322644639863882189225421533318201048687092156215287058807461789079035827898265448205160217812212362992803349979387646283233755944479575460107574521543578566627214246199986474911166583570027919135773808474427028868168781637316383399150756126563906505326005507158225849869846677551670658608416740019517125902996272877405628277178948187189212914122566531567807691203345370328133403861254943647850325102751589514575020934759207758348335833076885576565923706153141555076576625341521597819408331158438831400167626303621896425417563271413728231498108530987383940167313233338902293816769940335292651731548618480727131861792331196226729344248280499206425181285915894375786915167228376434685872317571247754971995373007988565782836430140776605807063354417092762683891861311976077487260223409613325772708112129810073743979137472596267069584382916359658761982212543200558510795125238382902358230174224687841639723237235680146611297669346577592731519060976599056309194617224284628139268627341372343569794578433111726139999189052984990227140372775239387700707058765055545315471958161643408164882559560613577834758896757764163884159045411218106684077118177977343394505729216607955207533499212247284691926992358047984002789518123080783720237898225675998595110341660373057186522285933384538133320718884723184425743423123222095260186332852030249315999664521147475255513226615722120034212876692966253674084375586246056653138657898259800897447835949212143767009960614935252133680237095144314854344078827370085113750777803434593325885129328815949704203334622773775783907635325724131364033580961431475257960075959303346002273869211275331343270268206495826368837655714359301737061836476218840524771918528677896012511137258494102168545349084359957059583947561897620808709261390861621110190864534242193145753716637271015006328758312534478525733513859878954751571535340578430916843856192466099115656949292914715362933589864233482483017459070919447853693563433559370177268609815343586353611621642082874067321673408113647671816170201163702884926029997557527858141248790697724779019084430420222246708704854683885853776634538382826691249136596824821473016307276167810818169168426963568219774826748581971334719241656414418951781400946276307013601001832820846030338390225160846159590453903139432982256625992047192300278986428028473472327894186160995963763836063626818901588298004670195557565879232638144263823635325800273897831481360301269986605515358180824108917440126973724939289636994248902517443997286752999307972256136669738590044389790875470610892745504237961727763279251822660174810753227415191268739644313087804646425941212886195383529642602628059168579108216291772756955355818457082008445292564229571026376091662965237840479120733431466901718011399846140150270270604908631971724180137471827667938859260843988133130476776164293946991988694965419612444104041141582389779074277070402171262133721909640529592095855669698336280719312927465573882752433751402594456576882426634977308706150675519557496364957152813097928189443514654239222010399536929835225932874766323694975874417844860154308928317904660435903365465696349801897400886703889116343325727484380746314557910291718501300988498586410899957404375666580839845500903746890607754554855065118905197557314977031553633143307809626109204286304499140721125952236921780124165051284301292374574234647653493570144053868291016415629153709622017874283798943445453763670793890346130624018857671921950725810705654090705986925468201036632799639263557657587695818655474670977986172420707383882330070163715859383124655051910231608749055026540550790063486209498360810306836716651601393738836429894742250130706423447924038095595726489957929483675742269447509917105539407098041579651616694603297559917604024887621092695883866867411268335346103815957326197409138756922645345630425445513935096473631763225246104736875493418353577000002077274984847004697761020417639939828157449288232312669961571585250853593940414460740240741428820846756409792017822533626963648736233162781856077996727476377698747468000310437296307237378448806383302644045480285684041079640180385048120617647884150437664454820120272414710725034490032662634025478729338255073936147775291716916807309619197109049268001016405307540880977986692818617088560695432227618420415261206883947802995302067698497325561536315958004068917340608780166205140508882381598724324185857200183332576601298872891901919433634816639929273663281340481310032191043238674500364188679416790860087371818808433393907495807446919149350892042381087595864285754651880924417848571933280214396046822324793300594584555472582432989025267289120822222843133527916934151476039010657660065833276424564741210445229003853070372362899422465787376979096771686729643043059739554778187218275157531733428476498172847515872569093294934899298020876139652496869106916834084099345504012663382735419709865919186042327465026560510482708290927694577858578847629771781644337864278665858996831756695820283668912841815806468485816869499935686637111719319815289551837549183675521726790134678182356585338011846918723129626107813712975999596119905146590726665720172636472921026331450430133912789642906582556430681314263961039058634698888870659640261791154312819652676464872473004298911439605296451326429765309080415359941585106481690320761069963123362558873387985291819201422169308406343807301123639662851494741143039116615823368445300568619437642596080996170714555221281300067794214162740674241051400090312080152608890234325706071484822169775787343140612396020601682401345947787049068183682097088171515223890280437765404254537087251150076559589985323324668522700234099718427688196773892235128301657574798797908323105583972681308565635239369151285292253265409761396839616559691909509648440195552142101192695324582100526537946596370753034850173723961111749681162787106567743841219500996512873171732601284170006575679454388566138619436002398939143764299246017827947581837344917668954564209523033152628760897317235500181050546308289648781721705832017991103779109968312502975410585085608826144576333978879594726292117191172735845057594443030676129679611126359526387207075563506585828323420750607693480942855077891735915468197304255487517880206469753864296661643326509859489401836404648037427696570736063733438303746502389455100031907895225790394134007897118717567646885923913824222851457005598136995405208032334649004539460400432965204714412806799461293640602817698542821612329183111933258035242086039776119066158178104927238287146993972983565078992769613550173759209511123422353707743739901266501509636856426924103934761000473189235831322058072900098599310733509937424889626841905575162822724034569613827159677750143519484689057658190855548155536956237492110204522412620766173751865778521754146926381200198812108590700531080165013486990585592634350776381601338298971203551610323240815485009107151681296297542576072362274925485806147269108784904761426152396326279307521482833178612958077250479851202924158553163792131171707161296305047233734077114198776677978939733278321816245339053079873428899035892282176951478215057962341426684474134754098487821720783563424456515765586480112957256665660135075782262352355745050503109447859849332442432425831850290003306545772768597498515031887927181607967440544476149894308667577983189143156563762761227681639170634913022928745529429997098396669503325848121456734235490737939101943316614408870126117251197839795365828030277437002259729318694979484070722453406318980830113303853648673102945388010418585315591071816515624912546968640161195952075521673217804018848175627368291884255759492778279381091532490749215801266735466143982854071351257430867887612716161424884119728755133273443282911900545744809809562080830060430710306102577928527686776191409462278192217985989177829973543060835883367321338125174222780468381863838396581089010395781980721706429947064623778737300992272485843473777326633903377373407814169661540064770309229599015636478982183085364393911386415303942572196361089494889904408494893613451867363135863959201612161340230862987725996372806378691596756818256958311460487154593172146140314197721023618825509965976599824289110554506938743948023789933501570450013391031774066357915691477559828201263070932083753371211813300048070935440819269519245273967044123034060914784142777164490582933513721778002970891797501555533502615662728792233553517314014139451231612266780652586287737983686077536641446862872423890773724286861946748192315817827107116428696192397785884512898382497327089229352481002949230157761579960140219626589438524986698758455815418489563421238998073289653440043034008758936836569069479330564905703997194638828372211114128621044624900989253032082046834317902311266753815317984620473376522349866997353259709792126627518817225744698094443376530788638582109620511776842623014531346989537462600449619859206436575423688086770405735763115967644815812551563400506054857476054803589322498958937334698867901400385280271768297815644293286141027907557208762642251582366567938775409298441936115388583754356602021589520851500692751666781313195297629668181653899684025053745599812686340257599673591322893885814602698731228098811690192691074798369827469743803964795944322993457389392803301778781659537798212510636801487438355632492363959974698966084028037658907622922600892891757581770538684161260978325995839917310508266020078246045427766277112625042900731627836524435456644640788582524821483749551437387117153072408061325221746115018395982207536568212535330899745998327490363066418755742453392062050076119456354882628662786991438240522592696027413170348651794179816608295802738739629869791399266024430046781403294379949357810123606936715059542664667078093708376782483541191427781301495124954850157977107210682735310965710313785790398321747715810874333276429407119477248184439618095054561197109150727146694542503035889592817199497248315450925236387840491902315834306435999039081046397015878685392590661000842344873586132335492476950398831784121599914371123707305855502108011020808422934878595352189396135717032357304082540082098195621799645674684175261435072601643989409637802632746115336746882581061723797967991704301176114693787107359283927157457688423202138017755499815413962723735924884857911089365956718457685933139840008918797857984604060266811807016631116781312737859160231351307917655978476044296971232994142961049558797468412632074207357508096201481006981352509091588094082113047135199283601421928193556757871992157153906313896896424058185996182077962940371807585381823482221289197705616470928843172477223762234117557578560133233627960451673783838824882510996624467542544603333588473311614742727608137287029193730701757701628995455074928371121355150211907833284421110241967906712191196728009739888262678556586934108933065199991767383640548345379772531681506522483901539141416396897161293734606395855613175515578796112893707797622796701604674494621588201747673267090111395140952971680063813984791076994041694231098258672843250288122317816290060660133757070642651716663118690648936622380749139282327909260710541666507293283331110127163718397909879593313574815671995895145028874859363290347951326689376991177854439158968224389130133419644408463194582096409892871721440988724831322993026192598064815704675225635833946081113561603035896015484517746697221623664154720013071086590955733907131399974343783781169125011532074183873741465016888671267334938228078743807520021247101657637982683657638146291646718134571201474943107138183752713180558581842685785765335336127845404323104101102052533022766822407442867820361361863130032578062587167622707833354085431157775577252192186921519500857915685850206228545819335154756664131874951423498740358535276936705531143626162658286830937458835416323999493497192353867496125987567750343784472732389846864744959914265811462080074706817340124963739616519109087148293675609578944660674313128136858670677015041641550296622867059781245657899747050695212467653390382988744000477154889396029664356986871846798886429866505856637199611882606029099513034524966019698596568642468684263879566026322848514904824277900248341599107698260211361404989965361974504581169196491607389081374574931882231545079193052947208138471425775703563698939974626018440383705602216890721390489498897102298011428192055730769778588784684067714344723709663378621292015547353944311708455486486145047368345852886343390442660279744265041708149296677338045678267263824743376242085022247797390125037108789921717577509211342270440390891452098342096591106469041498602137098265807109669731658645359014182591523961474968151535389444577732377050212691125550438592134977713478870408873613140128196566614801853907736293102478184533410998082482732983232800429213533126327633228051688208495539347877121939176360990504272622118932366264486754190433456938305854460950848510325088986242253184272196076998396144505263259062384018685837068473934570854050207677528864774441643367447426679639883622678662266000955110560143219985913372585141279320509381728002334114828199695276832109833476786097486271568967238477729831915315740618271899602433811788464603666558475432884550341877890372021381241117084629070550021984781996882942984335590067272001676732984057923323338322759078329133194745990967335167880776531000797779779456553736642451166653963441950141245234866015472009315150280298925219029627020141431532593301481606917056019949040077881594589556896845752558471243658037753696636526307947769381462863773034609839029080179600264548442504981198622506367614619854583267107908648965956528218902013943645986560068437398294443786673771749107108707125790557534110216082706654893421734491213177189814544810145109190299674851402523094583085751982407793786133796042884144166015814249199681212055685017189725520527987046344118700600107981664149952584228576252639628668612150908367249316616978172114052840525282431723163000216135949189492613177323954408419578471647703606433020840439713822025459371835100395790892697418624845652453925649916091366570190226406935324881331512825578756821066420077168418363613835221516867967375385513835416826616084821781759285495910004957233486185869492665824937070728495308953977546883536161035787924518918435884846216309726616343545999423845989054712305160285155533613002336631402762062322724413337994228144081727109722785363930941162217865640725163965806708815145130582011514157315203311914195380782542461880870779604620140317618615267083683821464897067415819006148945106208142066987553841666117375749161083616991103346750451901111876940444594460675308743384619923594320238862021708979757315341073839271733375662530700436156619187722129343919371327510455610128142630621721773767609392164701450150814893607854565410625358814998468001942904663335275331238372051354573544713594427508292754744193879610895082394082322315663996706561479128472172912514446883588696347067137763823889107044125820264592127713137625813975620002743994266893174719747984809016719420776071275815078902703699880950489048916984348645902120879737437268224154301043642640991209009554647306829866780579666191005657617764048773513459710747610785436599485466240855126271785364606501636267120988020679155811698319366949307977741199175055516125989456917284109452841552009434501693887565625604657747860103129944508104257340936369461590614341643574068192916223555407691904968044598694956323211221625654444610770775884329424120615027951851023182831249367212057745624208234964968285178064231130200811798876351580531134625861271271520142230380504291709897924445961981965001258842768988202199989358740985564300622342739302586435693204927642401889218395881968779179978582622266588110938843215560365847953894585757430087893120665560347209846387523196597791362121244507731816026929065814555279133873654224218269049029883884758038171473593023754748582823437285102365471092229000038310286330232127501914499357455722380837395494625095130511243456915283736179275321893485242766201978945054915196625465396044454030292588307190848363584492975022487098249290780931954452067990436620017072087291815759974000541968446653429391703160311322697091060167183683578064121964667891506231452387809636937447812617383340073376897264845750091866711650636064325232437839230295888713453233934246357715525743271010800533335992861242160697182021306297888205282655076853212654522226654248913089869087370028716314209950377185032585417550779128273064202415445037146869039940172782042727610316786084677442899334297655429079791956091581618263170334596630334559100357917152593810816702328361354038942937650472971616172483824801105544649127621650031684310282832875324544870557709112434824566961624094321677035926053834076740323801376879295834994758376657824838162620187601419512809761713188247330744874201115875576389977043994206305369781283172711830838127219576064886644297060037064918656607019748283667379317147878126235819116485150539450135832653417950046233901998184209445080453908404300256527406162089714838281257874920373303138505238105282009191319814405651550050495390812864226592131418638884220471666771749129695929180232252468639545620346639117203489868078764435158952034303889153899750009894552649221321679605287572863624011026039232328280970473793170354955502612391590720824496709333467153669007840620613335288911577680459298423932970333907760010040845262343325619295708371882322433087735253217525224997756016733699867878839960947215991400503389153737418383732521172081337157937708158070933323454273527263846147586035186387779105173245672628990822345432182992511934034717746914398395219065720990632832967253806822211626747191118693753698908736312041366588525363499583104713502992521266010746030683004160414531121218620481236353304952825269451357028635295519113976348793109283338014520760862851947673892330764010348520071341543363815197720424452513092223636933062671859512017828287060203467504005862195623041243492196918478606509219851001259834549214374008881373061425257722293315147889555040046698343574309997253041744576815985710732480637118631745520264542529250314997997658542746320189189742968463054892933664236993313403832414913813017443788641093905959287304656444675575915386123174968432055458261991465126655872621875250650340058572927341753899712329698485039537281163758289994632695801111114017048355793522344078563276115418707510994769332074363372494222938840295612474833544743023872914880609376093315967672659641091333503745141178029941163440818551136719236328474381945478731160368208831802783389938996034056680378749137488724946901622806305454328798075421066078603319206475144045941862349155102596124396650644161213544835808480584564103976872203401597345444482429766407961794620115662769502249969117562196642581144098163464145204478529196859745081370410039548886150040465088526037006362011061197931733404082099386171675314658271541016852965102303572875296212852030957969596003451106375231649915256383371926115484384696234875695782537562537086192809121248460773039322659136724021794144092890475315542718603202742425085977277160465200487538768521595889807783798422490033528651316686296785716229194126519506332123588792634570607313409100967581211189311459540316699960375563190641826867419280874126783857719918052817719209176753743856987615552239283859756089423752258718837696774142220450988575474275293094090060223531298326535965772239241474332391598516139019049831706721398298300008445503562048279865964181167131550980928899791498441009165542902461548654285529359262057946048118791118583691276706115269160976775565242491055370456480231046626962304693139918769050002693666565610577199122242945981739455723585962361726772847416354767228090130201695085155324566890010092613649064590724099837630761533680268470695107504494043656462181040188671564277643528330265362950311919542695975269086083617506117334956083294814991329360067377952799821189023729305260345946704335166200435234290737119998151871368723665873034589080900816164043098884242919317277862719136096434274399965506541379676185427107409807720077209738996645370542198893813316942591860246354918550895270830775809054823376555926909559336578674181533772407031686596961601273560852209549550585158984740311372777885117494729972437298097869281129256920267114716897121898591914874385882879583388108651902032114166348262822619134756574074690759965520278905922198044694865531122347890461360184472074056882198043944970875796770341834969117316791630708853188406047691899636549056577504872158802175492485571478625107449446922273975609983263839466606444688299496450564036517916384295747578754971010989845147504807054142247206924428961045379195215129507630163850340442261527865948499154478646317554823284999149476464414775509892717559172511465514887608290281555840790468700879607015483263322821456032650514166136837228039148402498133705683419792662166042628900777449533764721017391427141696195401711406385880485049268291639750166469109615063003152321858006495359784205397944242162523616931215516792382826313368493647037097190405577729898951478944448549082288522035414896950327457779314786604461808268262918080235740739665253234312008075543277918864767267890299053887226660515195470944024971801412288210780079021468281646997084787966161026503345814311838490777956919580069872174117553974346998757536810509315105302871735852917070144834475413919079843510494888802695971225342428508533713647228526356867386248283049006004435891624991203760590833587779223055060909324910672769362283627886508044653914679800534044655862501558902294386407522064900916958622536387469452330689645109969774361983328529182326002290264794702759218794304795619239697886087462079192144336774458038674505454021584150601750513214029809216190572196520025345046759774144648122609802431921496475504356499123677837114614886567750358541280684856081721745526627090584167649820148770079708263116877513366115626749671159794634558178087332459651393997054559231981087463593702411582295775699664910085066738513970763068280044937628386050390924871296056010740351605296783316913614709034693037934684034726619918787255595023066841340756302471720128062408316247382901655125409876651535057681740757349815154519735555123383049228947654760691631384656172346403494818115486904203828350962627554631068941130889653162528734372112173426864616241521722853311687100352447365858305139909223814659305143394509846545076883496224902563117575198388535637128057904637995114585344868809672865431760672778238579624807941026833106529434413565579737524614794395645502135748927736739509353745791488132949394894456105211984287935465694819742717105130356693953869032387516862603003687952314814168474591798016881881060665786514489985642770567458315588656020566346533401332911200346679930232097785618192133386775292563791818971378804095286981248343991762988576634751260553728526669678967130529610301199009845286461072614012478544453218308227659965625120797809577858811222046178194902702397519872901569357265145863004630209199712010317714952819817777069102107328747548576480485373309904298985756037315019286295472590404775700432182626612340779061176877609246768175438226153671276826960596670103274226145310285185096640460641253807811233128133549215410667313867281525589790170491930808645794121655613242026016750838146799521912261067130069025008849657089566826316261841704470072363918764203291769907383770091682171504624225927885376402925534313663393326090475118458672588151343328101427282041650427899369024711623804741474653995975158505387868395803287966409947252415692858549399811195591027689248229401547417360505896108291660534896291405449506843203433029501110961535859509101244916631271305849057463290710000155824743444712575723592631679543164135951338673449156494344638480148736679617024221702722985366048904617899638648768329053683894046087305200828999723138786167595776463123658594537164269130049712490596666860112139490365858149396291355843653524970756574451031541765414537193446337479005765198585547483198630547469163668427565894014895947283361510219964883057983404128470771657894411724928508042712706886419583214784010060202007838442691592897464462753341839232904936177915278193121746457391123358922226720608308412702177368118317917806435804226128682397782821496240152553051255588380252154013546839089619623636874646504886156189299265153076288954860561201693712143492209609327612267070570235608432356439968722900063971985016385037179007359107977227312897716516348900934824393494292434014227358038647636816933255846003075597440205546988454376890567882335191323772887245810245946994586500404530168995983868966985081833146988768640792005154193548830041682229657210908407748730291476050549819545206515560168106952521898850988754404366233278267504368041952576967265622001575905452034141539289737762054957390357847260312505052934485825436149040595693127475692020401983621215240966844251672931959264272278620438463782643271370567500879022035931027784731755168358527176857322594575614139046352344722459361915348066201087443525289230682054585591425910042495907888252806054168284216448018009276393172569220661531819611200757432630363794022308511570425011947021065661271772268123485190161336811974312610802191874783973324688129346947946650864165931555529556600765079988277899121268864260856523987858016906274671894402989469997558187283291451804026580859243029855123225447633896604440322354638898147091925808354474210043807375331942866423851672660087498964189300901620628474977806649039011015167812135299404702048812678598667575118260646694077398376896074812956330714216565733711031394080971927650122992108691301857723137952124912767336222179438727159113144895340448774670221124366318567271290559899346896414917178814464640245415814982957362729245090709781638788111732720385661497651226344989759359182682054488667380031904554369229684089510794443369472852582733472390080301468591666440074453292752965027792465880177614041632036252772920871308450687143620278797527528188256333148359287810138060436995568484698597756224223323373140777310026775829781553105029212755056761115461967951104537625997579681304874297291116459391362779151618336113654873614705818155311973455946961606366193138789183028116471542134410916117066585792131681642928323358460280207096389232356278268932855627429999237645682986015427872219360513180868692819576503210217806363780835221351136792194803826834993799956307040792549593336791166654212316328056464245864275561296233748064120713655902618754482792171548583085611629445017247159330215191410445187470536510638382237637643993436794223866082347415874325071220850211508044931236080853339927688369762309444617205470045903715222938017185553592723244226955540354826870689613082706182457697156528444235803317920666329089458828410894200038302072985329848639568410232271833873937551795265604052709818346437066168474112930779809250544302782938895200845825925954827000869663102390086440308995198506222082965562796318672248662732142509025673655085527931853481257334153055505723598921016578148711616382728375428109096283387358725168013379215132888815720122423552686815772581829340280313111799024000608242633420968826920236508542404073632116207939025493904772350011497472111715276508112900586239969680181765662433539058314035157427621915347582458897002085704082772515795514424823016261081323902512104626441499363079731028774968689920211750527224260683256826435077316703555122098070670085811856273140512956729310730724300952491419460837017509435997966363283248986253319291848078222852987207725813385038734354380636633041163097740630263989487862337495523850650604311991841443909098620118827190159009571054277033509213919128421979051985397496236507091498590683725899211704511816178545043981295592501560052720275042792265738970853403843492451674654485983237636132119886943356600384366444018808913803342418991408296694255146325505987227085081249049798405815847403840347964079841857082258270711398516098180653828392622601615200070143783398623625945588051898084923647492324150719601123214425160787376613130257573240504550302121248536849647669470945418352617380192990957478234405582399805003506744801909665721708710610627876065452547233095974679320067772186494559781641562778035080337237499640165796098680906603278023543714110086829696993802810886217246356385860930522269504045398476150441864134950628241997454300325504645275477346549388786537689922670140381163700004795217632419950581941148048350795489362422959323568812117656860353080948993933278126905156617350689139851099802199710823329818360498093666731760357015034486982767886610098086438082728418567863487605282532415037967295797992297631124296719652119733994118505515175458106644569279552252475268329391830403332002098911115456055154976476999654634015864006600593165999315064890797663600240478974988564383667436918344244202574937427328007320629952824945152183486767666428652929262067569885712950476434670610713334423011828306134346612954207894741602154280585279849069319460038993501580072383135902170760682826477533118286133939095334290859170080814183663145869539645634466528461855434797652312967407129497252115297392447126453206192269322910883611476160253525115143519576397113224585243121085147002434029864811540153122748815115033906791889617226245689720913341115083448329325848246249246593253020956384288891878674653926314121073330771054910513054283617445712605264130379279372321302645391772481099230302949274832030962867856157621844486922220658719170121766755381105348209220874085760696027446512565704668052615742033988839075044433346042488512091371688403459947483323343435001361924130347416002939912423146975678590799827664589603980583559930124973997441356741173046137284679830149763155533381217201168884316617284993636970223017185248269962033230806298089851748702765252033823254835386861609085129813594225252934887339569513971250469688061024725339344033429770079812992082610472763978829620956275713204498603963495989732186899326283465395822576770594623754174863238929526015285575898787533030624318157691725862655951306048803560353922791408728749299459621820140539617484727492383319448238067293829089511448325503054872777135286203751147700947708384792556620130136016189558804923999453980196618296788914778300143616629140601608543808147887672950533696454917061172263124828109779415828405808945206099593148514504319006271879878260238773241150107761556749784429396924678216024030370465349602518720930210448219473781004027642730052722921527309395664659547825927620567681009850250504077086141767638924349729227812766806758651779918052512746812352456026776534149026366898799665764941175457511373363102162853897042910921543056442194686372541251782289235138676160252564664599020903174096889163866164257141766672836354358858775941380547031365522711031221947527363297100188992126615426247325064728759053908134638671743385105385279681348469292089634095018603937275370389052143793786268743888755002021413839169350650516703888909501726825346489969171628309627223959406137835472145197313451492340751309526983327818024590411846416012888368417221981526028417641548233512306719329839590101309440358229178073597076093256144234997264816156144237435714053681196543586027748888698417442695501414244600532259450881181761732182244692290327532061637538202986792561552305860640351419251949250032226492861667830208554221099621955075064201067384515835662740406373245117414457676299663366066756453796715537530715360196791325582080465020326181056004117263007797971225512623463206270223879836845873090050508764445686660632911049858717180588876453879964207158573205279474205669292826399319636782412580265889380054518102280647824540958646176451131824789439137341161646307964144687656613870134857988672000005954412088439986890060932756078385519289230377720180554411620465024458419390459136436277767456633803477717991744181703264009450900301734441953196961766320868015820365201166199682404868341435635895536151931653125501248665973730752069691952099506758574409013178562207006877541084906547980919718453968551215657235134958173137212950652521813327344403962370492211078774937829063886435555025364622230032336399054633216889000677913260641449455080710430577784185445626743272541270931453911765005005566863885664966631654422229054056496815270902719542958411592294680484127297181726112223806009638854637960145532674491076893691102276004271558572303926943615878289212792714085575840941982343505487608839994412079003870443686274691461149307271516594489754599296927463635982498906970537075034153658252736984255050836474052240647489154952391541351262149889539818047354764845882647820763761765250583688637287613691317572395502855065832236056303320506148143918983819466888795681847350393764884042656592140065874548168407542054563220004429090030237895047443120223795807039815283357269626733818631596287048870055655521300749667952508482685022974121632697143828736823080591911502679533144688153818138147084591015047673571756270302792175175713754928894347305460299677374235038077627165793332064595885252973255964071775288198614232184388957610681818110107554772595285511419657616418018140485074321859363907966567848177869336847698336866367060500725545455638883709467972395181365982444578077929750016697325136961681071343015780875137322235599724316909531056528336344212453144998360042655950775344253247670500945222107622035186216003400414023447152999694075714485626296611235008681333329358450325999950739871536903873058070578292486801678875704226957596609180955628198379644921086699981332002024344726282746008940667007765800830274401806573422110704383545463013690536769653623672231599655041007881510612569527361553259532652489517333178542372137415398328424920076632182918382528740133396957419593700907270306640016471083727354420498599875346472329935834181781224314807964735255407560595204323701945438721035302727316528972579650458792221632534309880657606451584321349105634421916725496065321502152155764491170787129802766863336809510752011881575950881144678053581665575284813568592100621046703212105895826295971626878090280733022479225915758666835967994075807258902240863625203205508020164670031524765333323059253211354954898947860834289101538321506662983766860228771649185150191531259490745250863421045489630211560927632090518448638952866997937614056383512550127394260505704096409007074295121389512418874990986848280611436275270177045448606587616362368689458520231045720712614183634611125092420093416019258628385347853376797726775607460933307261263232203680280637681592320513820903505204527306776108712878755628163009635858953598681450223521137777216156335837913885122020642811766311578936050162697598076148407869552509419227038973251910807074434130505902762217793576939718214402438758110499612319553904845761386166931407927446728258858634043999780121839467104857029557720570135545952291498474886043462900348231659740404217213907469417026663992901534254462585477848955935321696328102020251428972870537665152188379429153898802616337685364668144876362740830040861585040568374507985070769863056991190242342940620044382341945018517102677985502245441517433141081477889418801797949787205179089686805501308763634139120924982384576127535325626805722096326389002397948277977783080725862468251211218605943795570083098817570701185005743698579992795614222674503148088607817805864507762222411798323336172516495394379521053390188491761261023401010692680379765385961016772079846744456891052930803691840731932835890296620316086816569491132901075430549275235682433975681567229408106408749165271189486019265565463215886066455823181326370216628624335138315398972520226976023673954763409986092644613415033379398827119449280568707799176679595593953046512193684691887970060830738320565738575880696245235645496596224817540840428242130447070537082160766113573611064954301042822081938042563782026547073080843446041007205053607267244715777686033725042006248374369745923270140641111033266238739087954852119708090676523328680586587006861323100428769378484416095976872191303817698298884019164667581343638945154752601356582856193624661072233730030120472958993894248771651248176211091513041000560612829856764443068376473247685485043074586816803514550834229376134911894049746826624461373369521637452094649093091386933410861531620110304075737217254361086313088997517619342729564361847822204203197327795999525256755266748398998262118818535359893500956099611992629473129427128360812188892394176872772706016046138276420561958773588146618188756997496942940878895211742527933740953460766095243632546627562496606778023949534032621578948639592187272732564426172605035347547204119621392104688923242330350081291106516925351858752835410849636882049958139953458877823730557925814249339241524123386669129481662819810495525010088072121855364390744052341523097137869835634567562678540405244336108360502745055107442651627343519205718107422695622456946933143139822611299096969240615166980692363657474000952775657538374176210043828444562111252964515965679005863169671806152937468561636443514686805131659680323238495563646539989890286041096437255488892344502589921963665775298687447537899406727477488939702325612526138099339101224269490169019283310099204879620713780516376991295853745413831663088385392374523716199119722596380639670178879270285814214930716287411789825549860714107590049798357918872575151558506738889032060810135954926370477968874296323942795351636050551031220186235292175057222619396096760598345898817753091884541872162229275005132245013462248944394943450536809477717009467384253960788035535491113018888699969781552698292240567072536278472975192909452918635159907240624844000482803790432524844829461169786274633507663076737288127644444661914227815179001654655860548244024820715802867449343179140706472103643236833756157057259929183969764358256578590407602973537258279870439696835395253214419658702330330211369443954699945408504256161019021820297927585822110010602752830998213693564413148186011836458455974882309028587659537240572566901694949392960899790019304245337236118541098215699533194925940486688999832517643405553327401198349520475918354625740017338831769871199284880102877961391313861997828745728510981123428463400693395486265805095538819149332486727275711572720412568207702805122413272582872714711572556288274121781524647912629338650658187835145363153566914794565299500375641322067734827371840781939998503292694233910048416783410874492125521392076419376351992495554397729260179812209131969428925895733522171221158751917144819721143567210137269046233347643379568830693129132350468107301038366104661982767107000583639473468294191376979304825024736446235585019841846302879362027935868682575020861597310496412063003412793538581773652659188258326135653070174890999883172542925296356348197961167916772513248391994060289907227842873934213000151180161401299648055744061037448500993552586212719401558516515617433877359524918357270148227593160771685205036361861994757000097040093032166293351349299003761849061285024929914559013294425860480088629223504266597057612993758526191824243319964528669754026225500908356798492860491734497371227308674047582396087645425765916230581036411227705031111480388708616252042122528806599268368353640931598042386049763871948021007917958944583340106122985085762261067295640671433088524030002496486751590183027244541149441430597565669758537404787984331446271230006038831338908555534366687015940130351343805780211745938395974770789286971832112338086283510655105519605391895928817063782062489479182873690439400477322820987353987129110586264580199584813427171933734464424111421658452123732011011888552032609419536916074696330324512535547230455029292650837777972993710580601351470518988193958492324609920571260973915358859199355276379563407293353602361850008668871478095400128260521954348780533429977589935822696010527020187953664018023698143153552010277756926841352053970825527902610886624519883849908545662910588688349344544994529325894866970251265227050297936695443963778361974481241609108026318687196269829154862364792740437122561442050161733571953595537441115371973868953159100608478772270687663106530447887016788962499814436428898529479153820638873895645754175943740450911110412834367210018779578167966164038062447753980482531937882963545804978426675223208301954358059311691093136886944191438025312904361273517132612455976257881963172817345581050900578378854944332824729481949961295721927374864951271866036068125936483678293173696409001617590106348261592085513092229162895261643109655947582107191520761190332766958871390313892145485877005486529693712059435217500823336968523421778160950628526141749173452548110150417676769944359169546309297269475739439144978284108547366941408583364270987885946566523860957956004386890544373005883857856848905518761827734868342790747040796863082973607938383174717491280299873855460632005040041669937477686833186177514355773138576218707719596656629900652984894782739743655904136171984076579379411940689792872224765809192326510352877548818240067785203584895705702138856739704752893057122894753503896655202144800497180097136404719781653322913787543766626136970196740172583176083931072907596856861116310546720715874176371187164107209172273253835460072568823370008992860974209931999027493394134925176130288233873908934860494927966928386339551120950662129036187644420694645465735602841536645191766593846176363695778149662225934049461131408651448125651038153252339891647732679221832189190363922413277997366774587588349258988839463028389859479767960157336766225075951435485519590279596651949895714132805111990456505594591169560484836176811303749008063581898347945554410584287641098181611228916525389960138849936678478472297246838429370629369507971205698009179057881678627479715067439671282477374351738954784658805348518446710481151661945670611122856116589525004096976169718214629443155771505832359730316027236613001716781513770624064370262498348120072586512981558022435099254352554438902429292683113239949167473359568596914722452161394666493645737435727484295093393465970842421427179333186087017800840742293257147420031528245098231561942101175930758559327595287902925026245215929823509101434179739501092941032397356288871721025071497917082330374515387591785677704706818357894833315475002956081347638743219036528916691924773098459528893602218248537217315118853753163779402502245196962995879373775631478381346203007645884202219889411780347399464792783061343549516775807647188736785955129017180085909269777404843838986559507104118974979752476925527761397809700113968290480425135172633470745282426527743064612542242669438113257389181938104136136711804190027674726661308127865837789725820227219494329480402557804759463011779896979583990554397353891015790993423384272186531870357294652332212713052915815277832877758273391634861396482440082997652365391269957532877816250665426799732621296665355207434457314298910306440955180400115825548090600458181822164786026808942878692056408932156482295676638787532080587331373793162946436725531314759462881158667601584133776881465817233662352274612207468085673575336999068029532651558026843861652050397593311022567337096195556656152459848793255164469185713488644730821054817573594292543071398585550345327650331096064414118684275477272493439519204732946283202832643308579620500704875172724209947075693813581878974775774136542905569583570231800719892350807316655458724044410983033828705444449347242763578297182227684152064363848358155933260153153154989144570772862615885179515529035152798063278071285305550230191692058474635175256961377007633732126696123925075946621387043366019056176257505821084635971903499532949309570112857607985100831203951900520693699106211411680079527399873669047586582519923346763868517899458659574042114159203897662101510270712823184586507978317391935508736188171435954376265985346627092839350330821732449187421023854097629368822688860744683895687490697264026168551991534116942588623537407812147939630021605194294848001427293288005140589202676634815741443749144472376172567698178046215335602430513497377858113088910852883733836911012768666706601691346211600068391856380380691676206727512848175506925278458665927659166826352298746663714868105881723012367001236022795444865736046174809720263609454491605599357799097892585267804338496391558723778887713725912112115232873367670617856629531686433180223357282823383492963604034432282502666960084843419811327819367833419928998233243301446195620192325766497926320541618609434730740180360062195761883780922319515921304057213777949735492778982058251193485596260487536933270085628330380166288351551787869296116083009422073755455429940261006679499242158510447704145029282357507705622370576933291603360823885927302761316931271457134443642398233297375868989537708485022098731881732250123054740846163462246486238045470012037713353985801585716470372260994609865637897295544853142585375187365923198165180142474822546697105397911588215477185413766801514584730947868006030065622724645192138299507955529977000792242464538156574959451966339306823805570987005733161866842222381229900350076117817349287972797673123499776959875276880804175846059207081451693962807745595041412249668474607985015031981195063387082578455557994287568027781813045261619433031736301588491289934669094563579403933774412123167124721865892410299521622300531510208243112710298057809142813520708758764287689182420114207068797949236289165920217216359832002659161969743105620860544196513121627630675118695811093424689399701226898917675440356049835356850008400709242980413646162911653612845257999525764983771750249603243102936631406661777232140804438458103924804900462127857409112529251826056080650000166898594003051447013342380152763507018601559084289552442386013597969808554735184635715619044724498698606740681937534899081184553701448560466704353490622265859260136397302262326746471000067045791993532559746151185840342220579828281396719240220395490869952457909265447036921093145548037939348341251772755029098818722223056391032636100204730193363931614835525962473764403554762586725306766552035221026265612118011525673618919795924455189195235904456255293141565943046900658994696429143718147456273423001484340012821014731993010959546588498664497055434108120422924627629397653430087153930754225282594343726549046421936879880758550589021765217380181767583372165089059937984496851118048185441882013304006774422354413470165319097963373559490460495904577910333071748030633362449611498470482173448339537325571820139416131886372481421565867731795227651252355864334340540825931560160677532016896187381161471625134213187048970173192169808700373708791809850836162071093117907858138549391581482132869560056911079113456073618913194199015980149747185910528407346622712956538514683637905723664031462254284536420091404497629679418688832866879427875034130975727726200008264668139592430060942190108245805486923510020939840525134767976189327152252672835613398750082424303304181036050705067719959521496119260967050568347008333729859578318057903327043769058789853770420760407083123461865276148550747613338090160214057727768717029878944617372905106142269578812411142087833839427227698211236462785565949006435554594518286227006675500559837840469564434561369848925859829526649270187306815965695284551095501949970079672581614085698529560597874972578690139053725137602663656427303338896529070734253987911576461838059377526864276692663518664103846242558125667811382369301734947565313707949989049044220959855146812427963714612118844344451960384113075056621262657792061511891706351199824344868108839886657128408274769883039149026893771234458618157755539431684058371233650779975575997724241299387215860449761110334635361185999276579017685445585571563166882020438542567722006673447053252667884185148765280492997877670230721811199446614567340700097532847697985728341002324004726531995942027519796966145877663868634726020246819555157713391189696493619889396100547601307157137473425963271254848352434539669749399976842329073078610979310747757423210687592191366374237801031953785698212662642415295293653384808087047202727562961056253985301503839528022884676537159655781903231010113661070648173041947797116180525348560254639713504276234644337988559095621978728793717044201287260339371556651902841002864230541092749507088541935724692907251822307063446439389102170964151520523704744810496647375792158047059567930884643769295180648914044552584305201441626716746231899832796696914592703624162645106231894668913416331110552563121871838989216629242938349860800777724278655185682792633354417347264936469318712317900283836117683226987103442981844467950835678822096207598748395885390543727754590972232386275201035185030049688625838713010654493577910672496851555254411958674976966050362074579418558469076639772701790683924437274680983288018406149550307497967848083290201431834456016747690448303733926049575544764437621179161738938365728921954486848188997157434033429371404721747414861167510719048087043101698168475972462080841372143969865620149956588180424535335740549992130718795793412745677614188703083460661870016755180323694044094934088525294640790080441230805098852593532999281369478457895147935270393269640491908119320967483424773965437396589931180460255438821775992167129797875300001644008562994023651169643135064077818088154469590819871148311708549138010000093965626543529301543923070082917099547471686143592340639053284327215842714132627895023233743839521258797631179755671357751623183909968842438378342591082902453042557213196914931671341294167189022690746829456896149997488430209915249216938340405419036121194707345156439570228931737053245701087395874760334436194915523795995880379551477369029668842766337585868034473274730254355671403852337084178603117623321429094684897603075498476513011116022592610558631212253628456028041309607881143150640998600499579326507653179019871437619843586915960192943031074917334066504968087769558972892794667885252494599863839048603009169457525473536664360377982851336083282077948960633049942196614441020605895872855025144621400068234136537716312712957525591044169735560293627677542294101829586356473724767060372853069411248407555400933587443872170728985094695272394383535362388240413375683598521465308225269942716587590217163589419254530239158486279012953890664783644854071628084588871965573127690615860455217134002559675985568648069696006200980556802040947843993385090596987980601948427074277049837669658377480014738044381388703889021198552646588132224740017974949937422133202032434130484876430981065195021556581235428441836046654741092519064373521720159910689342533925921241687623450377489876919748510094781240433800225407201834012544380950060518703178500064869691999567445037785904125926027696589612200577288817774166017119688957116421583990617620747722007364065656188288687522656838619387761729203478372366039576116170947889925173555466270691989157803557528704588131261091087500762306797008419635785567552777435796132518048168023861883360060990535709988179957685169707196239322573693432006676914802820824216614550528251550783499154091988637649941125578514211413330352998683739289563219120784868007585998319987422183956001185470245949213980328647927288067472494442791058893033564074092808295059820204766975290161911511999438192083687048088106600203899551197795904882005854281784155865174550407463690712756153231243651229367472044620249171466075493956670643572911492287136492880132833305309445271217951455028439321072469123725585319966031037533660746650717033730519675567035818250675430973762333274640434006352325459881732432969433225158173292290662443899619585081023675496129570274005408836844705938853980243635967278808321806788804536898886710045474625376035224953970813985969816283921795431650419482595773859062454524419052560642268152489226307459573109793131919649240290398064972995874671747637232323920691768777520521346473324793884320818922744249503830260932867748041771585090530976509153878711281734498599401592674018213378615459464616456878261661411445602064707098121835885502549141606729460436512430115703309634044482633357618608252891177307817385861030548281693362691790012444477964654886500815731335867370465883829588800521331398579490600555110100267923184526526029322720321367554654781601073904540015134546061323708742369543253584247815966707011132391390017315233830743337001375334191442377939116605751834741272860637818578726510681413326355539249661934275522140597710023844352070776086863539931083488174024780443789591545199378262707734043849647444787716842731956604683879865147533531590175736122117362230851748513732291401428945520218353328553316126120883104547297672147276377839396216246019718573335960941871088988982083340691519568964185985398249444020273894233927631419738999411505219834081567889909323033086016126358676025806598492161882251495277268186275110801980092261020104477160853305427882744086719038637663027123157050793419997665686407083489581491851909333613709706181160814353529765844396778076686556993544109359352391379409006552085827993011172560438633069578389672441576081369250465362062119849009386735344770226703851529316958203999686735761500335936160017216103603654901219793316011593811697816510892467629054222218960049033107671765614835152734574095422859376669652483475975288322276327299128433339378844003266497328904340449255540690120065491532022022480820807669035106965519195303147076354325173491345172913090714982834860361480723102229152998019393373455363102812113094699797871872247653039897919834867770866748810781397251085783068065474577423931677242249946648516496510308417635789463810218910541457907535108252826647078871024348742281802169435531915274994814205756912004390090719402058568127599791700107096048496142142873358358972288654482516118043701875112548399939212224911130446465663494968800643416606702063878634175602797357697225107914729232889046133822369821508647978168503502757815431618930920413973836218005292759009890702514818989909475873210578791926460438171819445311823863479374751591480906069493889075395481202709509725899924453514781023817473664316120829055761519067070786069783483113589078267355101728233622824799741793545628782108125800137244777520428004009629193323401479453217442500615998535503027882801951545278116278941938955567968595748755744451222296011749968661826695420014986279653911698044445803811487389977678364134122784307847368229157642958236944451811091878140839515780386413535020921280197016975842065799966761040233787776950794806164499389350289890514181938172481120801691834228730944879604425027551973990231474339292818804975513452747504706208514401404055317924673171015818976955834945698560826346868962120448258949538120335655129366079295207105517758628819381718939823520237571304769929972512414415092592798575171897328249407961567834437511717833023427719779810171870105119242528545427293950940748039674115887815543781623219414120295206250128654075694089212314410832069472386129711414716772992152088499673639740951826842785745030642832056550961191752932429137342397998543727321319464325476753330847292590369674145905558367943878559117623974779440753995253528328808091603775677348554928399666068592530626181014542584735653622062551076462687268093915770820600302551415225071817378283963882758339812932227720191220067558899189955607352686091173003314094724893002499782526836922099262523047077023755647106748976288169961254775771752506351129405910736085147806348727782333422308374017861721323936253779659791325328621766816329154878142532873600681216611111471922951143378423626988925721429956137221691048721057330750503636751328652716998317130055750949573120882312546523824362676505122055278535121535983393647602543877721652701874602874359168013947998697979645586450238252350265733789554869304860076381172481033102348543364073259164173196754006473712111307067190408060779288867289523349608823594313257508169929426409702691129997288523218373740056769728128322972332750655778510730781827956421973945615079877426499069598841471474001260742770505745128742750378736254702743751377766626949198968988821808677485379046536015040782873147019568791756431808693963934810328864985693274234532693777844257338449377070217049781363746363311213279115883863278579208439505610754679239458890987621102780149662264145536129948727624412092370125963637740899341535535447319852218684691336781490655812830018082656815837876979740084050513855885403493554754082083085433593499048867117972261332887247666367627369162322390350812681086934678235305905157879671217779178701341290287185664741944635093025093458222222328897181240897205072634473492877054973592442903985213076169114768541418377357442478954761373037397984668085087822282386454365320554526746674107759802213575844407299848390592437806538817179312141551743228404627682654635901360849532633932956956856458729700821004901920833547763787866024360325979520937069945119477986070667738056322326003900702682600498738532261017523901053730701785305493655969777672561584338741071018006022520559986837326606715498442452514655738136927842801802835298978506369305239771551218694693669380816472919875963720629620276318733904752326127512379171448904754146464790025599892512244252036140579193555224484386738307760650346729595384047298902710542832471139631429104143298167567384784687372855544745761099129839985563531328647675558292666682209541910990434939404945211285207754855823512743127346366113628416475088279480400680672491318315725755450025274250376625680903779618549027972254426244468675119456446116128720814014935156899225259990175564351089115355353523179334932569289378728664476907432653570562926465870217555152027038271041493697571048308077872610115455742657084571654394942992949738011515873537037639448045977547572206602188796754927502169109328412720677570219356005315238792837561465627036892352948323810157000860185989716816037132491386758603571973902074253111543552199088633087895746658414714135243885062169984481932807481630319093760941969304915354845166400397321490159050241547558877942874372108039710886311869882894810555248425090157752041010268953492300596137639711563510116253731587369802830341264443323442285992512672074319059306630159958816184287629129706671645318216369401879157254351430884509225489060508165627865542143217095325066785590231297023919332547472030483369537596372690428750750861581404752960006317708306426222259305826351145819589062706335058906479842581395004117669140328084489973950588387180755714028983835257313419854117214578698377134988211904987513465870302643997570577326107309239208803203758817075712751740283971547349601604351861477821376218950064477918481572091080812139408185940491889270334553217285847852134928776316141658116647408476005631186739328314668605766534222897594528801760075662487299873569603123318084751930054093223648680009720299275703543633333692962804896142365291829263888945171786426699339612453400421970337686404600149849116429724560079202861155466247178017380237017283260625039109317756736690683892892460631251254243879533533628650913706906293541694065573583607828719626029237582319368863927854588950441981327012732386917309742345340630524599993087622613205307789335901625676323412756989390955432551639491776297690805031382853737959594594148768949888729027304112017881802654436016865583377414639206997339857256564390568528646361128073799920793472836600237224756871339905983289370906783971117883785104483330739182488852604316419109832671480574646217452797802339698836850235278061431097041358489579753584900584283498039143291121759407808619402431625784215710592341068226451388296287363719974312898189209662534112625907187947038212588158245574446278144764917484473099114464935754970750802809575080628146689615187097768243760756550454777565114288567498911071607029130367662722069376645819333279626349210442895053237107880299365860017375627155818125220809623748680285536269954249945912759107997679143719040296244696153109279214637413320598868451724360559899057807386347508771531100224045041303629661437703234459138641048090863778793625547333853335617243861600539248056979402810604554319209890506522863295161685782713490405064604548060888552782327630004728418581241808830232344004433965334906402547219964978740864615180849185034886654182988841042390398616372421482156646006079916312828605906903804406480694511162611338742596885653772320700456367252036462829288181427695677792105509748151974607081069916357279349094653904890157359474183509098256299104831674091848750881111023675288499646215379411389792971992863974876248283092224590618602520841859126088717173040239740801293066912267178510767112427048506510538124479959415802142102675468724299041804687883880116143575767087015125223962178087989652560089340016931530131602199604710431557854795482616436614817182622934731879155287276940538115183654008871599220514911257662264841807555149641755388079697398860217718041670885665183074219626334699050371338089447090791708679280367262374816351557323701460825930797590561033067990097324587810098964469002181618157531190680611276563841534136862538410439471466359119648156958480226016814151923488336289336944546754278547398405737331007772864560517901545489657508837241074103586384753587971472022571200043473401639005006941865569356767082306344566550712016711334567994936588403740309099817122145160658559685754829740688292328543556286593225323776077972662355458089358710594475565644821660847459794300150687461006687251115381991446760536804613977528881175009923487977221234636633937698028171910121134470870599242676088359070301792374828663561211205145189582837010269972043923963524045342319966442138221523867388427896748241665464422787906728753814946405494381789958637649566668815241810307557342612062771962463341378003584385338564591310289302336970089340324222462399979499732960347464561246043202395664447152056000133158843868450087912361879345136952927750574641797805901098472664021900889559410448056595535308363674547215074257930221306093459711545722176042148825510378365252969173171688031016548037504703920670702823271047775633440158748863297182506111544884291237176114999377395960826826429571177474145469036990407799601647998897777931695108116087170766974763568469290685528864001676152566396292613860376107132222813518597109734145701587515365982785810527417229547678339241659063747626039615778695428031383058985608988731319757740720689045365303866882351010894797822666660443758496242183357278128762231019955261656053620827924479575451767103619704262949610192231549591786793132493732011603895386017866412569138014571942994724498489308653793039333126495763420906624739029735446397222399899363914330282712699239522683744911036800686264357138329835825058693366287340059002976781498617004956930356236535057115838424376404065092750162213069034500604135430703904799354207960561539870443899633713317546209354141911857726056727504841719980408124217885188993526207229595170408916411804967123948312497857519646188122908853582712722523153981770115122714359753079183109472642813678165196765188056774665992439744931473440239774553765103294312935947863248554780411076272999173970759237087202746680218482334479155426614971931066592122775067298675665250103941983122843652523219918765313699389248134659242635805501673475130464186284261855208532732656023618695447476825114044548364220848943111831265582323003493870716885926008602196305596806121597168816580350814018560798667013956492461995668220714837101038103544573422190075742054796686959076701530607367330020269413794544162023179465670612707091470135973471318687283426373431288821030841561191605465253627660910758849567783888507081141118507029215162040361339774771303227762753343339917102344876650927709062060593643843192222484488889263559112939452674960804679573335372097534880638613183081258464874253175972463681725365875070391241313338863417261096409121810723661582003366733384984794736834675522196361923352551312550361265324277891713028593299835444307263749220752730541096571628965855522738845901908960306269037384717996698058315809421803983139835186663960880816723355409530575405793120470893980441762492461294730695375118605180131066758166594751378042682682871786668389055982709754077391518468825141810419780193460160437359943858704769963931359877318797769920617141023854324996342609132148939779992351049976209645953794277674282249549088327811019117827472634796121917578122989851623587660434790250776137847013111880183145550600861395378938873105315322676849983631099794630350146364244589732475565980687931186953430574378743737834239411245017795305036639621733380935793456414699275689846307576941334982234621535685612499026546092884487431079872512916029962908647821116455683372568223511141840516913589396321993403087281116363824364312551394478731394588778092000874719308753053066109643482151721160518796250674869609507311278475510563144755485135544842218317591680853236902551641915837246963534115316194403474374535387977599046394176096664098989393901845067367920166254910436381841598573694733151600430448843921880029958449423513232858624139968532658594661167895691078252867270179348012354961507103152102417552598764545903165674162595419503613353271229425864009079246116563799109931482794462313383891319556609485635620152815623104355237017389721852764869207147717539747575011233782220782183318125880005292522180447405866929951981480868075251195131560662109114455904603738601798112050668789628177812413755943660755806445219958596843317118524083794874148947759424808386931502585290768059092280804670576969811183574804491588405676630884298893293298321900230404105970583272128795828509807533512073070365952671609347042128944938082608492914759916083593112729426172598407780048308931742136142718178771023494722582672029867031999400218346188492685058586923864815275668966173863161880383173488521983877644824271176092389572525929053119723194203131514175323169796054109784519572660856732006593241188176081604426176478475398471618510799513914748271043145375386617299941942787422795128870363020277184343340282984440855844206423929317667103291885739631046581117936374985496174913097297511952636622034077552792952242617463151447589407003907741423464717942918874511926536911944154502637815145456612337124306465099924473567139803902710604072367086313077531930087887329743908137624235494578406032576664850022653894073098701105044982359271450742870545069038751063780606523747040154057532841176232227172456338517683614364951983651081502097975324272871388461767425051418252539918899649975943558246297815015266555398618375534462959485860854906094654936765155922315477423408302401250182020621485943900753774728945279714606167829433020663876833704856430917357742831549378438996859591225298636163534575618427191129942469497516601902996891882879212245914138193111661780756487995484256634168082792277489121565840308152684926255097348495874579797139934131141841497908628368425670635813833107955077564113754489181166989613605465229678354637223715559537069929717473897761223695610557106766741282173073599793809130853063510373139493476423924171465153186193934508770675795370063255215655465814063765608295739995731862810417959193710903230701227958027279959397232550123045894156038680024956947024765161772038536702573765388683317068350384121086175615909401874567236794529759095083513904882350049120664860162528352449724276959578863916546478085383411503965754057085352926645684121634340797665085002917962076407543177167835098779041364535823831249462140698407066079949131566226089832562602491160348047473976028631333871144413728257793991987209914304727643581886837376084987923070487614396364740539770486989735632040236668767657811180360801878263966891945617549508425529405105092829026232210635898399273695310613422867309991902169509974474496461828653761454277541084646989686671230884181000251778136259488844064998623123256313238640772764274462689963008912533520162767905571019035719318070781448061427601708000382462485495691456610415883281871030775964747576872642718200635496985462282988728181838199502547410942952531456149576499869462749032784352552591799832972561289766584332913205963200165053058252841901980864968233482681447931718866411485711200959013739371131668026607982021380688804660445895224504996710542491794128788671954196360302952743046372770620371452248805265257356771853352295690972200504248104554181828173352016654887872142978737711712892266744748007197264179133478739051525372080004563307158896126420363682431063558055987355881625577529350148939685535137082460976339817870622544779638861595498982313238088853662674935495877603037830785133247070498088900212645296389838670967031848948448043962326909047200205653477310358332452978973342083612949921433910700749098823780621537505669476306202172357584733808946237589860555929774358792772334362781638611106791133081848636882773108861728879017067032068412597434442085868596512305387920030510866351935459478535352743974919173696385248861019879251711774280010421985684437227531176554653984304696339522846278922176323100537824050834175273086161358491797874254231212928596228741527722011430143277331375276704230750996036897284984503590215726933068746191383545397802087729308568918070044036449748872368145991993826023491735780194685427062605634156643083503131834785400483275662434808669320269306321524170179629175786445450291013798920693593080752052920792373178633501636585229202958924858997455817458959198596257193837130990044478924409169074512047913451598092436052674701113862883501760415154741741749179739978339412854457342801898121438483256961384405064228957790302336958779901358625409035483240412311072665765289586635844598507769594744264211935699055800204434293023951953540030522678761382254920830305898108880553482968141118078058530565654850254598907697691368936908580918212077409793611250165448842911599342253485982350719190306765751778624834595124579398035760130961639727462192624873139004361909619757951111328561720736356784832608139594467159424331496901696105087461848538995605280837641969137367475098564720447369496724440284319004278325033629792732156305929618052895579829640641180723745933587780960654682772868200144551754561319945701462731127777649774334620830619242508287232757932840566965048115910821597400296824082061100534827596415890892351613800134431028393083797152269937920255185937315314760703502465228199885946395824498689692894922157986163622584921601872102369905009471805226711530515776651386635097893341220116784207507841400616797359729443285353844068554271344976280644372233701732436067540502108770680519071780094814540387439976040324771347981790188709549671433278955170894607849806038056706333056273247465157862358123296456694255949879149215742002858815686897423276019721480250079526244940300811729570460293025319425461318880597445383591241323946677340634268351568701603836487607256268143911909964329914541438784358434853052865575630887796211272102444393148322378876510909199556580654024237475845220800187137144421804348330691942413262320407469594128124342829529188770905844478114294135864919114048029134074167024727010474769069425222919941519694620056359773400702103174628031976509911665899626737473274474934597380387004292064137932177044552310774794430688678171323630371849982399814579724127369162741501117432114189081778326074594018058989423321849590278174898037644285091973554033301036328362714026877185473038541123848398705208347397713708928455935807378356940048408413821150928047525042518320565445622640881610455038539053511667752527989993082270326636472042080705441842495663818690855716735036680711615852607025057643014443242113089072425834065496318632013105659483996966798176828814851075307357333038829756934368223619209095345974307783991214499335015139395470068307491228311273683841473854195772619183831387222385986352832669738313244765957203250323944216244916007539697913564596749079172768560439467785876523225357735214941480921436965686425274798897165379194936124383265984767249342532607952364413527133786643810005126535859967048845402582338299811168639856874194897667087610841927367438801222229937978933878963239255535121718828957207936077416409034066914076573798591550618292078228506523396058789205411028835334517557458755708442742215220370857205717126735077491647731870795642452077639956910062732680676914286699256116591532572684300452931754322574596833851944670617202593563008448604388493626859308991602391455340764604934270697881006450349974105928583044370884817234902630625217463253824163212243388790151981886603792900415021231588552233983791193310616897504626083695411105208621372499692302398805986734342035763011213312994037707049802923712293015104862384216064471474709166075112790870862845338546457898450317328673882672999285385326047305860089635079672564483752836257246383328053345841168849297680115216981841664921548243128682346849275122719850518731243957153756596430565557435584635791463566881731103264502903361905427590795588450242015937386129606447647634716134394306867923344914791635982257440108896039342633540004695028599115518147277097143775796412560909032087951326071125674814930904022276186542173335969974030986143780897708442020531746601549284743182159338552553741634980012067437208233840368577448297270252294339066026771678574907164300245702319113922359484385098787119790231359030978278655360796287383874902589228294301538538025413841104131120056745227563259359871962627219943181066975514633814580081388263169467905297057149219841712290439736409155323159971838685823864403715982563190480345443066906543949755971316129839344967985776673690118087449421791454712060364890431915706047097644597567836539834188814889299182858386082795334209366761171093248192865146681297237595682483627085079745779043535955296310601234974176444792190345473065438874113455557061862609849169446654640091459052728065030807362615580941225714059548782896806373146073302610635414698254286601679192029907776794519484184652018685830395963335409544190511293224719431596450545479852853895492293875088537770190228840898604559483166701002517517159919967661678800278154238713723877702920062820750978304542530317651250572450338777861229553852463756240542064158090841434962429182884029476629058046398772534325910685894773564532126012417451132635102366008343781893995176735041893553954182520201841969613247306303932816640048545350249360150546222864659883250260152338052096113630044149238882833733305871493079841237079832990205343515730794420772272686456693976731204493682838810338500781891048119199182370416276200527708667773687838334808397201924185669569557475362112963789314299174352803604101364742693453479707197213160059690845809038581860094962734272547093064784730039107238625547806840638293894466712069740037369335870465105731579313859471761220464692392747748986137724569779145968496742967146139188070443194203207889329444252241909799588720589756670698991805569871410115632366913622212188477457904272086411505006612855498912046534414778885225560354472596660839505098243443977265289692983696131797130379112100731353128539939699022332810700763707420511112051995822047572076139790672050154104532222489542226905862077041628333756414066431697603789350872015989621915128595257560961265336372044889692576380458064818134047153869329828924787198692971699419436301530576711025262051242984087200465819137399675707961063979893060056104693708679335517876155647703651888281133902281935707550051426268816971326214287573085711656157342398264223462007668308550061324736737078895389121599390608451029222004278952797129906758816047761253608291944868825179020537690213924528319793196857346859738589094481657871199704416735181504082952833950652486777994317094913407160601145485555025284343396825650256708126659668482479011344389628888147111983509088459189597444521438826993208901135349269601605605837117459683016573209585525196555662333689796270299394153334241288221660568776823313450383846968934877723633359384637211711207504794682388904084677104661851381645586834222806292344387896296685824164921240881242036098046716198682354904784371274088252697241078034364314411595525775043692680493600899643083778042318314175675069738808489828809635936537596200703824091012170443275305764574596540900389852168848432910839857528950965082182159178992133441743309153435665107320896670105277799367076960442614357592431908189300531471496232658757206569210695652061944049653469460094693878904791520370743726969473492587302202230749151076892837386591768919113943118097692677008327559908210556467535612112437814379785574433165023249458446214316687978209447471977848303645652238910007442751349205357691866262880956285383137117157894332481159381626830366607269633147530033424049913425613003588993028331187041790924286660028864132194384901931093129921061639777502804955228732967960917282083790923656571753823028073175093719835634280559729263655471674796922697418589702301848943223150850027550565913591003798483498950436973813271053212087108159893842909673900970463592572442601956231389635814023688413243948665847603344191486970695970054578982646806674746946811188224736210321956563410546692349715951896856688749906169421933649887540293465903566225354206375003997378028925794831355310950036866836946920758478554454279031037617584535793532446069248902507958802545477579444690864244743510302308779726606925469853045479319447048469549992031628473966198069462668251345376338398100111260834004339476221398722651848325701117463572333003451686791505641228315279333960081783668677088051311623866055258501765208195484045266652393680480161710341751094195408570452141948098852159189880466927979164748630761834600591064937025390954375898373681176877267657728784527012252442966281466011958537365219489794152615862798286665422552427153440675886376644041265840823815484220293889050128062332977131287750415857365312772957362339473529469916730128502278006752101028044001265978381038004959588382598972196893876273801166562949162987031655846149106845097868401508681209706059261285647145888277788890538715597459843889475552798923692324968052782116427820238628141537228346700488565510167887331106634423111709424922149937652203094832171395156408699033240449450530549403201045036831388693383908352567179095403044001178336679656489475987598362202856853421118202742593834880616549191001815302619328772684456247793909390779905531481459582637205323464942193774060696477396527739458593622199500810298126459915807042037604615868430746305356261099423624240925591624626130685812753163746687076958258686991116207013632405594609120654831979070117942587640215293793815060337786792214354242972066454988277802686425205147996229273986451832102145899596325335552333121439073574005434836840819100368127584939741104547537530487976434812678719860124557277926826378690330888628833995595169735970664514149956486510096335918390087701664762094676863778947811434202509555271858946637013799081225489647214230077342341561809229092478172706670268100117431914284714991889238009738023720150263926523319940040311351180127186655918968575733624038010583687067881665478054734715646371693513256192665252639275128280038750768013876923973000867849438302178443128849264992534894341185082628721373391157915795460706945035456560620286378852131869079767360993290602793470986723775182350928171049674411195037777751269938949782881339600762871653921324857385150587888041250486100250261236623409736184620149770670997697491836599431293703599955303297545332920628336758261596953771424491626167579438128558520977563989728778155164109713469484831252962371483763564325877087890186767417987841653552553984388234396004491749429549209997129874391487733425777250560085990402151180127876811878170458181486359647261421136283221739314139258563483066928845860647551085872442153646530229764964989645158495331601223692735948914967460118710509082744793516551748630087887539078029940687101528164848382674690899043201696173797721110139480833892302539494465086360627632145496211617837255088530963668792636451202196888530148869929586464577423012320537349826950110272129463499238551606481047344356334900742277172855340786690463820314019786465227811621684266404648444017752652011125861596084050739248813642873858149721059626871066777363214384678735317405472960669315075751668972206007096979779610505053689341456283817072489741962289534040137137539047588553971492967020030667601756112821599414045712850847022909075988617376651530148522182740381194796549115963902745804062017484791981222236179296989117195734171310893347065018108045519133345532804814049179752925748906009634343001044832376954137603396840154614234219559341697636935388545080109077641460558118361375750627543022527477729342939561037342313703421011683080180408942691065654787863642781291359875164874447262018308655529335558650357876359117127842148468176914639369171476413643781971746870584129271343793841260201605947094866008484130835780394930741066333825873847471199538528319587775391766803724670256820441487580225158772235836904259658185508019119328387498003533441231358524699084562260075064270927937852335024500875880138805525007303433432603538400065711228267034356102410411987450551802942727276470077269435440920288653399333686501908177087863218439442314773811710553461361316569039717334167344688972439022145407183366420310924230978508514918231710909791483202504317541693172877006700750989557271847878565758095420598864975036230997205050975318917997652244216890772461279806468975697478801644071000438411763649129058815760930559956227771504589435790969118375576246231266088606473884120832039878823719522131932650073910626393134459936261416366661455214432648187424050913323578359570658057560669480916451220621833385926570958255130804323419981885544974450285695680306009536120901193239815126584659628490034829297468661806384001153163274417325355798805614892726165687604040152945972766973261606321965355276778795771374023864485198798170885476269473718050901446578974740213763587111738433837843321335115356531039290412404901974152275877183946996561613409633483229455304336768444293622843696254504891454529905815109265282560214308880075104814880783225607378853154380193801448195908504670142323071817250450334704838404587645085450518386140815321896945451723850875192875098127551085287364868236530117119734801189660371866428955373093796051468426351907415708693568247298428801163782097356017331064751950583545642007193101847572619599465823300631069828149960913565493576700440207302849511259879725107858723564182515517954005311002713490131413010493373457531004586674855060105112223552303642150645577905590743945026686567215012400868741680699549173049338456597937627505427836715611212761879759772364929797504432801182660490008268188413654605160000306065812503280600899843619019530158019501126965880264361961915908767773226428876678400418855675778646252044628418509846304835305032834951269019096037768614032151696186168677600766275794683413096231526645290218376344277267953955669910862804994944520506860151055972652620476558636516055755752425987042158748325274248628637471641360500878396474333097997631307511804806876065509305757963908953799547946497115032691849680030563278156643994441141948271785938936692774370012006436434372428562818161107002326660161539594447813551413968435605918646912288919860666647353204879275525685868060204378848628188710254497622906052727689209089634575895423905110667527998426019101231127794038548428061196051037537675276837838218754920826519018195190665327614981718066548518590660607665416629804024508786175776596665780547406793574661932101316878348085086371642834380201704706623544025494795832916376902439306468692677650891521866809756401413876998868183387104319141504630034291932095244015179585596239696872735414706656897571864700172369067008929791189289515759943072210495452324895306053069643453192326670626982319839786627961347159368938591905565645081861715849589703494348296379001972096847300495570582946768824407902086184646019698066824638930260183438127811108019663995228784404863262075937926584390290256547585951669508866714169747250510182010646710094201679386455399290864990017808091718628988213646719120372694134103621092105662215267166178322670797141659716673409034204578034629998612429308119244251683860293350063157119962738089381015847204231463670112456507195619088405872880778165337148622689398279131121492838697743967088414739936535830588438196552386704382115371891349152254014935838283189319755862844366725728233420226535042508141268787196735643137567911411762674776333279221058180545400687558090000509788827343666306453056352578522615767800681845224346932979855293955247335629527383596167290435995648001412709022651242471426444516076381259259620590911685726188152189396884881680864632306646225893994029931911888019916194867182146765888664906676751276654743330035635397293984270374324847486859195478137020462976743032219618226820173652811065536072333372162372169229758029216974690857334170086176657698130990387683513354066344088562644445004418159876491433115342595021595024886997877185040404515818850104579423722533000021845103377317963268580924579227262799586993728107574747286677083139957289087826243313634181439514970267328302368157039200151031368198533704789106167657684719256770564145625397438723355169472413630894850368455186253854603196164139549089957716648790474401345390903442343397373070689666434494932466024618255703746449182142214818440168072602180113088127831928467361943923876206632722521545157619397389957786733895209296370434693348499361163122369185126237444913249592380944587056168036672774751814734660982846964123004000174713199586425129414278677621946482483436131063052795900106416144877070134966424267790179423673763743740468882562082275322420104021073683230691837603677111748522449910778260148658078884647779988618975232286723496701481627129130073477437849022901720771876853995172395351995847768601976843981585850181061661946800059143976677522641566105564266806523539042305521041684229616645172531471297544659750704862262924718723535001316285605306077545587296388483938190491630904586499283291305157525764658734792649027717859180045738409677070380002648785272621808818497927323996295712583449010046704703468299936764107768603678759134259446629940361749456610580314869644166391554441356567137466519913717288821201648584353547141619266403854701710668560509106680672928942324306808161830361422551551184944295296848218155222361495754748172824474229150385909903919505457242287768373211206432392411962100739534025571952927944980999944199322158654913504658497082092906119019362223557571988612004080796427464338876249940651466588250808846934633550829827502650557067367353702312483589066285344345439199795708631425847743198037842000589212957678667229724516024733761270127017773304356992966116023708832649299580160282382447837588674463037072799469895851406900749115617830052719204158919572148442650596165583875237731511880224892427130764202833865333656509447197730484557707734988639386969730682930577223841521246394551813465882543552561225070689519873376132940999617641349182038510357481897705213427704371205800907219498642274269306341885879111853624915786268500103046383202059666074136275048987302523374456262648717928326719384082647714825305848161391119371812916092110182498170544323829189414238597425355474627629838448375171517266219465784945314311081629605295688380404042034493938282904815832511612268340076159381654903038843763106842063913210055123479715174500099635619854652373797447923288014285320174012051736044012323192973009392066262370433130402590731809363436403826442254438320564169575608975468670798545832569823042118275101963908775168420638026741673224685010008102891871760983204407567778008237674418656459542637822859667073514413943532437423225433786279639758591810193803754457040179025344775981796437629063326001718700547580554763766173811853158601300015520719798249328620176666754270183026995861514869562519486655524347063118384252899140355584014410043789787411864432473562710577869534122774682062585880070155315764735839775642565966975757887154652658013167713813499457066494130239549776697453966190302859788664691438234572723420082088049480746964119244299577463640686999749539245377475749105976927667566050073058607978545971670529953149307136036436378554373602730508251483392044787542105931832483654299815932118293430477083980397206118489411019131125295993018038354215452167733823169453712459380819093341194782857940671025475339055462429304554506223558208250154395476499554597807790268767964879110206107064693146398537776575089375460543973903418912895139766564053422601958239921398618068152729940486158233141192733792164505497284379896175489106300233186795424200966413996820980861372125011020399503004259921857921450493503807335503093646722127439462027126475131343518967384339171824380766889958764185259317447803527850956610487704108153442741984359786522122024372523718855522574871594231359754546400776946880627336419297962204038675433077965564856742565418132943677486143395010774600899823026384717619162417718382171336506611713142680276464606196488509006877416540196845231495585658568579858937377567161148378652126909804864854805539394965188173862336289807941056665993891265988628326363644931962907938087997434158504223455141124847341293247247680266108551251317107520776713820630215450713569955653675520673400035723131664991042713460691142305132734619153157875391419391475782016731661731237412142772283502370816492920895809711622245549330041724156007660094456934711837635943033022827837011036016540574424460008602429425088099832764760731247734096044764871502254774367062123710805200055018612360092758752542458751780812363320730156448264901819954289590164638232585210377352323009540114912044338942898572672142120464970773367539344956658692954223566082157399768272308228185443583351521303120033189764059955005037522951156771576341380674959458513219109542708954905888363537621604285499789626831943641301366141804324494472364897770015929937623348234934313732408834212958281010755699262195572539744971288621293509917007642788799407938108098052573608068206273886023372371182237601894757379396623576018296232734720689217601146083238251341925358674031009898423429110980383804222552157661859419070777806833141356467673055810039172276997371477382492194854634152656972197114000391590307738321819746987849165056637613926939996960498403099876088625735796619370512515004665591470859948461494642858783008337099776037074387123856695584629089859594482701868571708061296201095535361738791759485938057972343699958008921118542874532738707356477451614284760310888855965166837085220055505329213553917545958696249351222642557014131908642795940996699870956537326777193981724325573335431777043179548306068061554731210159610261734678690905810536488691423049764525602522864590291955023293580938113710524303059890817455329349796794199859331960358303874000871536001869990755420827941035073239450331295882933850127309877246036954091126222189223977118438159832166198382052691415764660965004044928580185540668947373464404113822730581883045588847469962617796800653779986900848746988499882993001372474695105657447064413294801218589423481083975245134262472816482124174511062508583010006489046694329681417905040613420197939162087119668505232014952457707160657023402024915572839809387046561697160479655882720655000667045946874917363058532816647501752356712243060406976579015120479690221161478837425840915543932037846231575343666049412869697255283632350685618272175747401240900871536994562880099246860183929068344825426866848892053098075533436875206347531486974735495752092968006456719754893092852179597961110188496222474396040726611881917056978076044599030565468596761212966088723132730154442515650410444567635526004076695363560459999996613646187328115497603427286695892058709542548752097353993744778393618569351143512116883149637334267242047848598509089429395941293927130740725296089490765920557029104535491796814904190480191938284795854481577144176972137371087949883465660034698380142104833362857503611761870938918126994949259528463653930846541029408812816981766438725283264317135900838388283998120047506623003659868122293254167714302344626958720771656663272289723880439688232055581879446554396336812269779839542997859294927321240204312318998735677256218774588557642496178050728753495780031328335742020498805943168884994052791569237127156024228594325182738085087661424994973262340585150501026619120569199134826290010484520318340703309351111689222959966344567492337639893422779828505154258114785329724548270885129149539398631792390631730930662858527708118773198664401761553423894323308956472475927962863794364676887475012090459899969631043491586497482777038393813529319445505241923161927194860903647045401292609356064028022970122914850436685052929708622057840045868378665173797047246644208277612571389251654696598596583622896768884038699829442467951163515032234621847566940731522251036216410710297949904911968862551774122630756875506829030305844076911938338010390947768938256995714107191448119175385616546290251856568382035999205573064367492422132808618312024661606340319641324430783950159592443741057220300198740900281143522243075832787629008545947872195831556001523992953692329583621731246664635954591991728995401449461296486045891566888865518649230404294770906507980411584466062267992363571823173018031365448661941728451280370067046713812879675496591429298173880610111143145660958486303657162991765693272275058986183330452105312835432750307962052046682829917310276813736983533932865375167291741653454161922845271265708990833428290515494281565780805518339332614065049080845043500441887297851604434606808574783462645061704601195209098911391246803641978651652507248727128745879357420613248160345800870235851973629154343043462882987967128651570779063747091767478130052510756398060238700899258259961246031503795788713122930827301125028472714200239696489831544879544763336030160951969758971196479381160697789188918323783005761818498754642164776915089871116929354862227179213847762980561978281260517352385974148469640364716146438742561732423309934922799312529099173598972175261908599422537357509915680522186999354595703879997043194883829964956916854471762636321917481105644867008609143543648978443679393089617988234093020156559923796772100446555200387001289633397605003277005787122146500034588814776324535491074256177922258724626989109231115538188093023760556011077985762658953584954078568958126407362624400191364754006419196383820939848877851588420446612773583611970501376863010433083993479906841836111498671195175541772178012002988919902557841671833034604657750507511822329146062794826237441020030580780703104041211148162480966103381370260283737976618287812091092544806404998146142021233752700505560974268329513646537294834484315485732304299840219987356318029401077114180558838518526669481028028359030706772036996177883840668735971315156071870143774058405376300947342400966359243108647784982031934940283369281136689142170257014054371657616345839263708021079210973510223331047139850556002293233489116422274775539812276674538658669911840346432629240291095425642327147603128844787855916723550538779121078065510657907838327564187651007754569502821657512639404883473312978474146032912995508640298853035669845677512097038721029398549864297769556542262298613885757038421232646109317231302381263656772876848686944997585786638030320752063536000614520114511465782427514102547067899782056998354203692575426250750999185426031018632370273087113060935938458181740925056794451833573101579129886219291679525526718372833489853446687096509994293095810631144664090818008270538567175518355000187342230467669241094220012850787313565949608651834694820897350891646923353681650025055368268238070291831547659294171209167203494107245485738837952864407998705551090975980381183334168842241125239021997168246900243475596423771805631941451679371680490570545395114940807034253471885796579311714448578375749178688870831481222904352384078636830614546124113471281741722108203371812373167445543343482026368144683702164499841737190846275487948879366029679415078048022778471189140577360779167446495403222701041841449369942948251663740498092201981618468262808050274854732635107276499236527375050745918124257271046706757835491251923804507504523823164982238208277023828185239837026248114166643938491776705048368781299965891020784796217191036693061174986406362246549643047617331098051875388291430470807334527670534502189567480297494116137693086695079374137507842408797561098432268759832053864646549597894147340921095589851785827450249274377761410678534228247873525781490840462751452475421205210950940459036739548935669693516435612598140508501033352962375677704623163176741339920579574920197311889370202805214273134023655910231145441523695436320404534842053096579658186234300059420169229368577931247695154685360698836193064901303821974725899194928695803126964275062784562610133303373491008350936315730168097168048767354374095768027619165766217337324753282893671620487472791022176580689881967713885270867305952909117403226930387824670428273485834405527175479500476966403843600296541274485258992162944508217775599247104658692171312761213527090361275900418493359914665916707028718395738581243280663254272390743708509848656526670072346996165774103184313666608481295376151865513794713130469241685940479983442671320041733560568907715043464766117311309812155333877827341419218024909217768260965226879545755229825594071041297091162526071244533272536516125466823683980128612274415375541498525004633332853908526370211775737718750210500717383240943579041526781079599828560988993085220762604644112831170312974211989955684960916881690087393780338813825736388233210958270010736890298033798082580311605218240450600255239654099471629591845109889831386077077224021361145822019950181289737219130735002931477288659175152348036960811980958448641944413747243498652306268662767540035830671059256857837199813548089415695468796484003154502109035734358619615691440999297422063972333881888452843082756553276206927327173737828149612708357631639911261436775505840386056507953668910042662754631370040714536433649451499992423251056150767517477001317523166247176081573405884087785451325431606484489228429529623548532801485156376802436105505095447609483492566602627293486960582251897486066545544904249563638117456356434291875920345314065728513521278876675643986738124418200096016064542988849893818526962986102835581545708933672398373964482639738822552918787789381750627198198643060027668285696622295373576497966828658391233772564861037568846104597312513336075869701436624952849007128810480730374092103398445979993044044370160330490517645419543642839041501953914998316051993724469920619953961246474692794107161492906080320319808703815377770463504937360486953392742941070138167352005871591555533055415525304793653969216764981272044851107783297057755896303328823386716499557630230828719671879390311691979314414724661104978232611359143582128514358198660043748644194228095322028050774025063185264241548059598775973728801452750498447635396045359144374797129049877450009136879653242027824521451295591359381473525331904389016552016789965845663337894749779103633519450549456593671013625441513224988373895528862633570882810454872167786181174888663518443834528902717381254841119867385789822898491228362770565222996389661603775823632160817478434652597008573531539654739871627319197129546725779978042171377385168874796093549608146891338095171480793518358567919143422096361505375012939556521114488508962758709443295254247958099138246912091459512841303342345504450854716438197028251921769340203678603873710826158282482279308174754029501651088787787171213745473275520943635098654454608725940539841702372210178736147028644690762560937331202293435535520017229314471539104916665282722095902742538626075007643936627031725831113533319644397568249823781848160293339000003732866109523097185217655118277041819126478932505363260939115236186279671035817306486641172296963394475419616125837493188077237264340720126109066424658450534741107510855729549966116030633055089298770107863253710758545758424980114997780428463889505185661706885170810970435630811455682448135765829264520956643052376173038596907653944785862331202395680651432292920779690992710210280367423597524031992997523004376699017318593722518872155283068193852486498650513281237594887537936790135404032311718896910880020610076820650757990724871632208743444004730859824122211755581940250634119202419191067191821807406230925952383559313628232017495546244290064869478814434462717739971356262615084381048974424707183399670798848365593810844867926233391776418356828083007671342713063494732212397833858814769412200127894815188071369938766701135498158818821520925222341371772101819484037378423626005313584248545096543077026120876568703824880872841394122589332249939447771546468544295459455779226544730411748379663477825670055197158658131877641841506390568470623759823385750561253687653564012753194894206384109150828752484722644757645099749321034256703982930763459219392391710174600502343385987135646113695347958369955056089326820039044394825239223750221062830375800842760123462765757905006490838277950009109659816631122277990839599572551428080299015896031185363827735317013670897449738074142051442520346899289222312940546119192195260235682380187598292521313645282463084091571808528204842712920397999704086886067582145685141072770665284739978246035457491355790915602949583028375369383104131812616938881282935597321644335238837197007506162606413198766163062431442005666464374149818381057559733710131439766189097299693570757775165961869616975155764173480551537368468111960275577349478630032705170481002657564157035766928554602217818877515037558422375026786120628419628164176502811507584977244993033697107965427477335801976572764148712409807433954046991523633552284298888567630103461285316304422372928668442649430658759192202732920914975031285352314181723603553193366776537297642006789445904794769465463047649241390594287819317085848090499460358176769294313537684402401326141114650277285811074836234382681217558219423160011686362806086134314302768657496458336422155109356412888776437388755318854816498649197433421325419240806893788068928726578965058751427557770196596388379254388601495839763960364608826898994198437213515050261967339268256897377574263335875876665798214529033527613733969754473308894767085334984062487028031264368949832221172927200007802844761883407420596300360946333750430591305641903443124237085319918475038672298768604350077778327704056022187343330932834354395395468710598219348452404316660074320455647334305999082580289445139844087629831577788404051318908850358935109945688977700201524391146551509897147387710686426204312224128646885232073955568992206156013644942803570077834993988633692375032273594693717761895018224783431715912619598009459384421709946105567875853792952400346948778949594293872859173347750511433654595226186676965118111635783829809347183078321519926222661011834684110574204630863868515729913441681540822717562854064684950776394771306329205673245127642538111589222020681867936120751707051961070200145701796799357724970428787795085271349818384119064215890587101734420716322322917591114694740376458219740045751443159087764675976075427114540653516595500569798036331318328286615357929179800009197003066583414321498988177448643759997039741555074968936328213260866181198517258426638899678865729478934634483919696405123044891929555041491959510781919123815795304650531950007149770083535616944121131845505282754455104220327595306515868373983172503330390063889785910539516760918545671853416471512468046579693422231426268744460546571229328293185429055086648230603478576692504954990947939089907303692418042627039004988736486555170294196341444322269899834237015149010668305852919536445935084022820254571214814299148914064177561001843110433485097313542434514375930509225708601039291895681683418404518003999545800738770225035988512616918148146532311063540370781183998753049821563670739861334522073370578471979457196799252402173716254039531396752564263284300270506723129761741267747418050936765213742403793945589189956634594618680923639252772102630993624412180776353306489008052738633081880087079518291348542757071399558648480932062636477028976727543094725819127598590135803821348600489682345290139992810499416510627916655179389561621594508712499425368738149019169928095186310981024615556513051570047136654792823360059027986966782590474019881514259703893737895835671685043394364832526170157509738436529679949689208958703980657586224985673825711312628787329682015015236831466129649401671156161397191113068212578761260578597276850784074073547040794401294859711606915409031089049620609969257906054625472830874940545479787418882736317677281412610900049198303235616872167773256810146717275384984658121494247565433421659851833078758430657991838691038834030022910961371378055413394475241008489186791858706968342843502357813959919623543788093603264403588027164297033422143315761331355240964936251807377405777119769827579526348848352149094097924553702637023278587550119561996586608682206870873339799478900044752624864974115302873361331991663234587610691067176314468213388257727456852913849888376791764732929737546237115131331056130862719607659603488514934939830747728439392634218737251490546054627419829143956211859158087557517951783491942512085435756630508449247762163478063732223395371499633713136861800738932566686380732371284881385879678689360485371443696981358624121434219454673548726117111213342737023437391225501369760186342166181303928191430357867936532650333386538510016050156796425671591316409718435707573305299623286049387107582487035589958141329851707549119134099870446364223191379097079889938288581022777989718425085921012611176249071935070729837206599470444825940595535111590194909500819649690526122327182772680120674862122789253495729283079325371679706905503214213067168652871734050842751492261064043101230657636177328951842778066921738712390315084667248728372463332643843940451983762405686914555234459568179251412626636491655113986769851107820705215836729595348232736004673915104170758562817981103388260302282987339821634799330023988420956437501178330824379167236542771560609278618656837906747098216815313405762938697228682319775529608689355166702508205843210876498123779037925083169156166104299804105571531695110384799642474800786694462760787774992711211638760517490952847458095611578299552489619737250270513760915757702289501443323002490365433905272638861308832185373189990378769236997959898316689173181354618321862784313074016492409001058739008209061507411037127589406701383958117382411279963931504539113191856653250618096140780190760723034022675574523549605102382695822791034269663091884636403087480888718169789028927509604739215760102598374433553559113927452541735201230382546951877587739853895978245913677677165765573765421490764374701154634153018719416773569911287980440418374026900300364366482595293001116638834124457328650842234780619858713676336426142407995856555152084418654089025317097637498756908571852430866162094512595676643036868708018839522021337973025755695466101020427190056792961569112255411607303222399327845870778634079756372687377728922134985115793124809198736828469861746424979559637968554400164866144582637626041316183491250657765852452450793184732479905045328944390527367824880093768718994025961454587987857057011458754245517145914448389059532115537682191215546416297462566928331027289908428331867920985704914289384525579271627991135383427103000511304120374498372208757047285669730691811360448539534878201175544516010607740933948655178496804275268829576763930917599098152486515071216435396485026020711012356799652231140843857970825426788742651977737760374829950202248132803274462634165032201872962334376704355175977494422133862967547534665877750917109055845004889238401252457368572189277213793484426848165529325472584348528288015881556377673019669026763045760028152115462351781816826207500861839156430932842852377152830165821628222129603652815970853165179140870790346919136017472354554725088706818679779341188487199180520801278516972058983435940224938596982961157980235511490191935327221500136730924693365725735297811053042006863445282348560631943263626456809024385524279299746681980761142482608561095269663659997112701627520585357482653134943961739861713067742956891075555761142231581385350184565210289514588544717174501573356226758383717359373407658014004277835155182306782041432989945864507008675201090335648197767932353949283262271630757785594364137566387309276919874798010076703056885742908425443497433193245998217825419429136733754974032675612673893978254866705265520071987539121227745635509537573121070378201601870005846099827121446283762214230621213496595254132271694333159691440961328706708716429633211316959958006972198362732139784922497947489542439128179483992049788994226310460724136016584922483038457165920723149441764958734587444095540864858880182450694536964988101764718344336847087808206205848582302946081203763992567710487903538778699173387018608307311109878561569124719197942616681369340668925720130498036489743546495909129052884169460656365740716794655504280591528119936672488947982706374332953076842482055880375642906839999652864373440089641352111564322807731141394643713986393971187045075025921438259743858766723964489622606136476226293379410458711588331656687981583493309797552477224416967173874040856918821850954752244803877605826225805298885362866848503840043306582177366426692738046733295692082377129687032853577962183356313766696922543182560296679960905954964322228933577301575398269839879004494320540569970313211858588123349792615727571823130079361031862234164055764200546143278875345544994208659729601079293011211297579183745118005237490024822118608958386605833977018607410626912557657145198052644649401438034982408591816477545629647942332802738988196392383755836165058461527149664467510626958912076829378237163057740630428933223023760197554550805954187859375895997688093640458338825960557898983737538677402649249894908752323309625228780335980286481431980215819241369233552093149400487783287590001202229328200228809219918621825908524540950695905859304924056983748564306502582502362974329762225223134307190079281257104727535911086805339043173319234182714818665413594278791953862649550316733860213338239804753846073152960277761463453954791583958644510253617344514356044381792011587542795303215048162749973928183257212400321071235236632931626654672564164357533629353136346801987690425224865454480143216053153223495803299068241203145188103110890001245849593349507514810955624181077480928872858046816644512596359328188893813443345503370066447138765217523747062520295901957920873632291682348068246458133327165034676833890497764681902148529436619004065071575844577886646332500794852211944345814686046285102413547054154489544255176040742125167294417647774530808395704737843227084952135606922172207239139054990162833064477392656015041499085617792984457024681681503058387603709122025951240043173821033367434671047764389835729881180790625095252061604267025764934481243107271436373178629429251383084021389769018295292981069669253722453604338675932784044446787470231478088895846470764536769817078746070672767861058268396539155406665855429106077742474296579194947633865969483169823734535836622574353818579111647995045563208328916257704503573932004366351326199778786336789698616093163319460680794132297484758686392913694007097256363567986739903184929662668208837410897651344877861353839198572361834864387133995583985666307758120341665184651601434247549895049713362266999009362396484933801389931410219446144256186766933841051104646305493524199447786778660903033447009764326652590313900408387749316725678870875840394198396604195991602925350078239402236906014271424351987114893772694444028748991284767483057724995221455657895440977687854730951499874473398867594499028730164983835840741518404676729189206325673711656328131137796024285360404559683677626462673424329355542349726940995464274593715720079711965796465049177170730184963909068241390738692263727212260603843359661260470328949672523380667859204679858324558632103022083259637111289062305690749400060235193338930013501238065648935901206637686550141154944998502869271148041192057494549431531377957853590376614944632588073561935348424505386882080571463935570563525649762640159902985816414769085304694456950560222523643677853668909395259718727002137387879640982550559529091270815453580062061270553443340294557469952790603837306528888192657114889335558283953941049376537440171782683918344059618345334517306050177877936082303722444756072981801378490818538707257359014305076437526890796482994780433860639021850400643586001790287959009449133652722832102703867643357637753412841023532132142362383443599005642632156952782158241984699815247094237384090587766003932771524809546499338848513705791457870715725771554788561783608914021522833332461565845380884230881503165437186205393492433997836073261467535241140655715386844601189054309415379502236044474334688035153158493061765973813416523257614061453483159107480875711977314319752070376368094887355535217694175623123553945669372283399714312627514765283040425774358845364871901840629908076856686961152926482310853425439817599120892087636730882718140082400898741865199761780155553053068753769550846820908055871834974710729670200091704093481581159683448483629287630057799337670553170105872547674753002625933927412426268827744302866530371715221514211136485012500945971049941281009222648980904918493872750357471724243914424105954868469017878063487008262373116512461080316679693766401631487792769598648076178736246350305623725294636906078546648950202685586552220607697333655556370910727496882731505803788388754602524418330747837436787556430091878700302281552586064491968046925689114237140472386994781988132993627684315532451720294317985344239693256818038764031876029514767062253724903952216899476458341996937899268693514076281318777827722167610216642410976960564816852455885524977095294129360383112634188643623266095562787975483543730956992028863628066954352199818772456343619230360558826519011117056246609610234162559538991109234927515355661848055333335599066089414579416143282606031833733814382542133754887476650410184458972828933281812069302071879312739988750056383912780618850123118700069914764446276986983589927792846633420852948951285234445907564092963470220205254485914331242793927313316986065896421837333564375833170220042321046516513098578944196633504121019847648465769951071253011617731640489927752959069135941737643296418491090080760679090643793996438850500363168554231399595186596645032912450501541499525472591160653671384534846760852325002241558910754437177347506890175650812764147315599479510651195597440550380121416239145641030264975302626553733594922888441519067321976991971079983833487911032039899897340031221557396623818158706937078454819918267088168526605176922154080880698732973764594209709150306124785249646030582404791503216017523396326894159916001123035144879509630215729203422982579528829709582201357482544471527382490989384237289596541618220713934671393847165536486120237911318930658369657078275921406973728186048090640898841124281698671558065378698624589226828611301274260941594044200490739687443389652331283259857285365919176090620505694430834100385673372234887090431318548824492942357005074762227447140011236893764625412380308641289796651986130444016414736447044244946139698783391965359332487514151535460480231556745011683909743092098366526675990552921977637479534906279583863509658274127294268117287272700908661175215605060720837869159664456717305041146200049937768222203627170266555073703063813704972298396454051108759062164065384750806960750527668633995479527765016665384570499204992829829954436118862327450710842894782608511528989762214538505625184046027520708242394727362393630612396356167440118924168223810832320743452662723930804496149128908106587140210589204191234807815951381461766087699903330562463517352585405660917942837825776306395257516466219947914041516174320773072642332719135069061155426758420535903807513364294223229427543164571101559742563861863052091380929307676879082901049906692507816639384499679698049893279119971449426708300576903058440212297773099270976413889105054056272196399587266746977174885874205148616940075049340203551934658522308119782516415688376838544656981513600036982335500345775648567986758040699886756346059661825812893147419539617354421125535280588316436929513345851673729384618807681812004978450676942038100387859647860446667943766410670106407150626396578185788744086449149939282987729703349580097131271823866236984780876601134038816682422526270723485667352794572362454225032915079601724591672009872446126338536657413031757253293944007096057365572783694319946432298894006626969574607748224061862507636151064018727260516502458825726483877301269188451889902916423302955816897576876503297464693329222461451975989654204224816917448900216391602906144445393414040905131462416063132978291678039394848896197353122830066591165178869702366666836706052221952334117459835663674323605734794008066825482475467492598077851064580553436939098368305728949480786756080552551457518687055318867099962490571336968142250314513238811791077023150168344430141285829121496267804418380050830432782415052326020569887361770921523893626287477163886172428064954110876319110292116216990582855690051392238463051690117830112691513129270284493422399594859086197396538157880983677952645390379930662573080472636129368126244308983772143267567400947612707948500332520752243159022802261960479548574262171071604646059623462923951677760789199340514717324140141374311511528394389326276347236402215232722952488442186314832152675669717406076501839507936970726734436127858857646105213343679988956573250256862975656693931908534608115656430281581610888432790755350666408067799811380822078361519750427111050623023267814064284438459621014003961260189953579728219907685587511579147123910434419790716450567362796909078509417008795033716346496321631943893923321066966653204606613702435252658285509528284245265462007873775868737015844326669753311445233641878708834805940536324943264973504880756909491363140756056688899225842616002361520638706918919843891552544186595227809714505264772790833420131612934921468845645863373262275960746008985593232173712008096642018987826110372514066273089130351552239673106363007083689912555100098593720612046520618502018709304722222474945152885348895136440634274219898806108269343538802790754582380555355617711085969077783089223259233257764886620327412405677476442337406489016351357583992330217927567390267882358651333742037068740768686103749616390380661413130163135402154579736472314610598636824386639978241994973177740731434796322855546056028154640551979984048185494966710382320176424904785780076725852789581487551600750641955505443683438570877936510043649939968216098151209516339977825459038988329577881660202114331471813617087703679853523198079367770674241621745323721637084725590067903053307473853253846075856428999919569921739214925146868434283494869837567623858535516395620603245547650522781787714698077824088087390641730807237217156463190678242003927159041970223535189581789140007431588311834150183873270113194503665564106293840399242574601619199092118998399245664716805398026502453466766729748883229202275569465970349299803340767785606508957986637908372157777796214723332043622256349114443135070110665722476590647182764536817055489333582451629638599194320791288687801911105263519415111395930763775199638487917348946927254446005299453607954706381685472539426156150895517091047965366028523531007380523125386054819383408978498098087381151765417709676055988284733517208858424196027387158242635617080214028957413633181583431725774699880289806581333330350583669838549926517537369515693144392734815812245699868017165920961034056493263578537618221289963649922405994496965294735702407105888462151782797334707040005194526453748084088597934850427208467039926858592582336486498690395172732789797091065445329433835029432004502690094470470517514283972274349245512689295063245444627233988035726709688787952295189346835095379880583817632626113431226794026053648794292892589066194146404725008491386209064049261032873433429200670357941599846128117220799459188714033242385771913641663325647359983874252071839436466008233879732769004903946825403037478930892351499486077028249883883096783449987044830971406659841430926305144900802356125632945884842184698601948631840197712998719266584194799491928300770426081284359049992078142449143254557248700383207639354613389006778484440749821558043570715126684211699470646549718687313569824086629896800354327378231653632598506794685596577910540743450509180635117439105026423090208150685106647155233535205620926134469041965690272103410245042262766108181439510060188876011597558293937493171808165463537198946383528002079506189129947418226503458060264130213169502342655949062804832353504852865932685339860172235897303602835624451879607787613331751049982552602023989815903799881740457776776245151789929986563545975942252877083012267324784680082091906989186620754541048548303679143351162715338322124293975198915670091303924172286482286077555065113077607525220174051393526068833641657558449384444694586779092191535238752465930314898635409548114459144900082496988891801428519197606526390578393348442430624889333760918493619735372391380274749564665267508378358748202652442869004498689980770302757744589844860114054466882451231893872035329195657685935568652039292425262614074442408669131808333534148004616373593403420001085917136026161036784221625351664160489308618170550680375882592473240334042826213023181605958656158633009216323285833005058864249301470827283838503337549678729515724296421638745576028676612304633863558013538772059399338952128627870707512403225776984840193590311227887986117271316457038374594573226592049623518399131392169996619502515838344813609756409760167199373477291151248266396519454891714860711506464722250729860236868232124717798459474986352132192847277093056841456844885304332041101130705238643743036263579091367937719546700302656633810948841081461958185648486512959101829502542746618889726431539958741644272522274184144094108996057970459878137791775941932993591453407822166198716618145267537879515466992669146558289674590648412798411704276724670461717110206844622216705409248105679376500245949547847291186810658964136685343497936897371970301928572250889666038095179717713082249941533927008207765975408961819246675797915999267794269290653632969993418824652555539145447989096365025982841075550360889463196481654413266398378950697877040154738672165610009648294427660380882953782499192830227959263069174397175774154567911875887523733118425858265631267295854148566437690707502229331162143129154649513324883241317325725849423311853779759575772590497722486668100200603691938418625217430124738676855360390928673655443425291119210325266630361796927064369322982093403690937838611605082703407004623168342528399251176695696824392178718423052267904956545200425421883766030833927384900162733256265272551409923423831179373570715446924498398047735840433732037753368433216900743065425189290610545315449533608464998185041982389696111039926159746322876282735147492749923366771960311610834771031477628413236740263365461598822835106453837688154829057886586949604477036710784710215213995169895394362284721805152081366963024820606460869353856500140767157541103104041594864721855481821937443933298862985594613163907413415510490556428330969346997911219489877285525572540705938688634376291735364709479939600317376646464810543501973431010413259617399780866856583138291214581489282087842507961673031177724456829427587723690720713732783451604352348730377153257784425321457908146029657363408708164531223287660012743653852534980641982031843572716144939006027447793031648274525643413406037386466321992996601389843450903644229089951367119597719904902632156505271331057714156894474036699320520935430849670132614106696471847852653576289446200393906741967555394269950113443791007329752758792403489656346746769097281605669667526982815443977543252169662959252459031838789768894014724728553465282118243199261581998499105062629397278393773129470019476313874972991447617007063356911668932166678679725837850390156559523787460615162494900079625389215951393158237478512999223371333804816385056355286545195902469578827669032112565804268613976487875391928934599070987017226076751221034841178992166475033041709240951779832620382515874946582172082225865822026488924670282308764275205165671120959973594653870299103269205903754893727556231312283530862470667680946733267340644436108018576992861806751122725417594414354918344204142478336293507824767540246778514488066245225332888260615512949391959351544682036231014110274497508053630227087097422402545722806175808137850133131961569338919443901737100354987272752968389536935835938940231500470482998038337974762557677342782540704284158234306957305054156616569104000411863637259318493700489690960161768613795067525373004799898768302989952223952134313893641552997574050428577211823383998022344377020100683340859718221309194228433362419716852936929117638160175811493590827901334951068662229822478331505619351684785114376732905325493362299627249398752140701263249505783363586815311742565902527897948180133688361099899426728005693182690405451762292081338122039825311260358165878049376323397285945106709280396332495826624747553124587119191026208206661645937127282884321208778441600544359456891072311598971305034026951984185371646408119206878820477934020627961042169566389733919019741004571833301465525518957179891409526227040224179402528202178453796929781634399909082668302685640232072779135129999693230379776303458688603256390650584436542185071172622309487144096835243792555733565735727235025802131566107015171077674097002886169070084209817868168412811276112622166875314049560604560334108326609190202025341021716198828757634023966141782527598282778774569645128002542961913099198924647223811230863446454583279844889078838453654139138133933923861155175796747955260963211254272817677081464383477919716257549354157876512524689784901140857066125237028012144569077244567826599103606030033409272653697820150276125664111733059742984243880336007604539669567106237560500535934599470041583230318755846029072640612888062178421433284698898380807653632578616282390700518039855541779672357775413099539349198958697949158063383727402682382082074417843706536022465937917325795727347626446605110925357230631986658163160994250813674973365932070212245029200161183423768082574347726298735476409505631516922438836003662010134441173538125252607001913747242168243892343298184930638431696827870705398691771150845927657783490957844603076746344347791436830312095413133579145300565818266349899519888123647338903594252985202019027784446411365931219189297567878242285883418710503025421025576429362269165904853400489188772567742230425078695425026976802942920875169107958485300862459822415563226636459967083206231151337404716248839993264144593797597503854567759517254680276380867907447291276897079576991540947709252924878831343648104292058879405558236256837491804426147387028812517068329983725362009743699627393657332707837418354440382256773995240260454164212051029855223518280403461421961205732705284840593954832451184527936197488130316430553186578209384831696801128204028668222014670299247176192687748343441427420849454359011642694994185572153704069617184073117058354308037026789759132048593543583258297946436340787717821888280485360333405243859763084416108666929887841516090198310257295409466699593931266820614391908576512048175701391259909766433704221376645715882139144491219188924654455775920276105728946308494493938054473554829337364862913469339519471473410415406909575079466719373446733828655140974358992238944993952129894591612988284647470961771987893038843683319295645734851966077422570057252990325339447294478552789707443903634657816796383476277975999797603947701100044011286690870086464131545147110642083088212889172434278386470431770056612533866751197446370847269720181708723805256488020881630956516546886513716175414156195373644116371778424585010822039987400831544909265081646517601644451321415402152270535059874971180485390790471273605245730761321710866798677512718871642242115834773217234640634357056500765549918308679659743098247027604196383664138200621296913433294068882964156839653128781976103780384895007253915727221424364060614968177170399240397644417122402007177592241735894175325947013670997666798931594558991927491557225237050121231325881352844625790272948534008071800369547820204414689491924484817272754568882395839869540916633770516676852858114242353210411336231525840545412440711922310297837510647332096224283283165548704468933633874873401956097218983787333274501698998291088707718100767154408347350312926845925837078440815096298968609934643625064205483981109838775707174046969566777060673433540119363059189730205736122975744257111921241932160580628423494933135695845239208405954438710958804617037575501220410414260349174379871776661627366760908535699575347461719395341067582596333226005154097623173829649311283329482724644218021342130531599376315537992619164293135614216472031882177928684655726478311690988377396747113555569656451196707201343171865743554571499229490089177205195061164423854557907454581922641813457275262276592975445122631495612432888918180454885585498000291909296850829154774878136695700027664320912036182553399487036967197067216956289916486960230278993005514849154055043707363090919402352701234896865851064145549513725161878859141485284072692487729848970035117067072192773415140599151482742247607944159400183566785299691220099149014839506047488235526455932700636336664086588270235916503465777455141808125612115557642717998254582353787167105904050894284660014293195416507201874655706553763481577455597768138874982211333903371629055634636806626408456866813216264423381638421892963913673695170822814173779520678735917883757786618536295637929631980764141579600068355018746139895931682624097110413885274469670097639999045312248555703511167451601957149232985022633026531291645983132493001817295378469322907488511747116400737969635372035628542758147303956653977610642729584353823478979482405789721991526108795030013584185307594558180244201882109682158863364353647274494996351489274887834854921236259213577942757298432165484556186403269742765535692226592567333549146021482422594794012978551942905087994833269694176777187910643557659700902860415598588385955342506597980606668704303054410883929755857066010858357983019370111780197987984677729987545608388401601532923736380218750470055781302825127654116262402001100402243440649326472816079438532821749939775123902012830098607331270257686914464527705418433302337576291860587550933220132408587814747141133597389027306817156927471792111916319709811934735992300772170444454229366312728768651725480076680691500551900447544916509682287609187232584147567650379179687418023705068712768509805847987575657276597175454572661345013094153242519134576147148469373712660735276112343019538599106501228077268023314346913720247507302351137654723430661820427792654731802882952211971561623194127184045775001572458817316550095968475907313316219562803399313862489655970121989302623807333465317027705879310228527072111644410848783639559372987425379960913460210287238045753610121229892922962718893308431367706112688845986799654108148207234940336085554518993471994908007233773479593715634207320404406981843657935974040929247084364841454639589831793791666338714589018616311125142049614137239002223015537524660577488664388799046158027101470968414930256731242059693575089220471783058007864282373861030525470012499724604621478822055999282887603042822306378332743244798176859924876896824722387781336280707883584077297493308189460423473934016079165910034908863036177764588821570536118378729512675393084894858354398321225493236481818569891829783694935746613238646149884717719799445060211839808174372133998443718473819399524552208437718268360811903062750657256353807780917520486419786887241456570884264060993254580053475022461215411365038995926672337461104119845543540955041508515537698309220147919253659335189501366278213758000455029255769095257705456146508447394591150277580405212177984755747843928573435471243918738418226973792241462610038043608465165714926831275591729150992699229328870654681474035360007846609561066585477449124602312782323433935147537729902684435031621279525821758520472980608368587361420250905136060783142304561012397439780489226508630155079295247654446037169314805666937966951245353621057006201391365564194323443926739175564966957021632004422176380136492352597900621165509619681229992778822526926243306607262866498105807137262286689047378345419810891883942846553821853427507960142561334817270049301023657191380192140526627304704841803401979735521321418220483568069398910011484174685866573783479294965525762457626892366428399537330322320665681991408844668545104799883115393737920474790827138604682910563015085405003305205605532715336348521948617666225296193633160079024798177587228534679517550305653264091158685095397205458130269871889277586549602640979048194904876562899751822711403819153628678622968582561733498675636894331309956350122398417931323704086254551018014557986544793562464905492055976124964789047037691309362915711006021642065651588550550584256242631246473864914850422797887677370177679078248690314901127653026445440669613290191351522255610966467219306114744255491258906928195283853345676449155242291435439910806578957468323030130064785236073488110524848608060732978832465610522175725373432487075150886131356224261094177462501358853298988052821385683978526686662464887188282968817784329823035896134263179180337455694005064858040058443695727405333561948626496702245410437462608364748567616260925402379066340900724545064472408487508765742986529369625322405229721539328472816063619063055930524784560391560652521006618968515298011144216678250385711154348131024478997652757382825601135922563024079547068078151027237450957184663867098887382020427696002154373974311377163479783872757459222184016583080295603487958700429110418045219778736640810178004693217009279549721663547711021802807362070731294366852208458529191732045986205467469149046782918152321536243429644628263212439504278277850223944736409440887407685463788472904118920277971418702851814228008551585114549580204848990412546949752932186792972432961595871619930527121084885345076581747803070986669572429936024260564863804355236184300993720880034940756546234678143982731982839231402897960121774639806405249870491182199817553649203176948945111666516680669745417076011678575395360131400237527096644642018311173484576685257729726482357565042474851074497658669356109634411375435082249311890642469377745593393843916063843151115969524522830193356441057292260861134044262135766810702161739797013484589847859722312769489081362533394595410241420733753099760613951639412856030569187159031935995490748719847262553367067253830680294995813132484698110234779841921352252247876041219752119640386906506585518723455130718415776132175267720857322810675010246786005955544066061134044282019076960050556999130536923036749214347817641231044747663164915906860504907695837746502689185104514185150725328932488042947899513407937164640366642857393181425945486166369862830672849432250627465979057105067885740091559081406328744811227979562009445193760469018009907394841525276053736274331880897783105596076947661835946462531711000369132258137018294514829777031984307299243017570421879745162056401198061773769285698887335409525747099224369742474586155025805075748248078470108989469895106626429657794007602581155482196039835897955285671495254066551861538152691968628101963776049834372147856735889020389309579866998906639606036483403882759765082454705932855734796160902084055721452156706279854992044805063993595655273088142977199540100178215474121067156576643265350591713211728979622576972032735141466079522966587228767754985795266388091836912362928096293031558725357466852145583957897467013194782144063895763391208004677895014381481410843666106702709654950140466253494638679452022014148306079114611765327786869930186323660274413954651332501432360102118908020662271427437747806504243889310444396724826226826294838332601704247561965562178444913341472252507494898607935014472490428152968300323525711149973715199647191626831956582387366916237507764157809755368234715245421324932422439333292821159407093060188318243590884791139762454840494786367120001128657335786915748220189655411623763356916515388704295027599217465087910154772930650103472804564531828671300964079698561278594141760361003574045671483911772567978560422754738660343701695223917208171840436904677661433870748771607011789993279995098566556959634633068167355917742759123371850521327087012045034384924847903737947239019660079746037638708474865505857926912985136171728860542002978238500128940481398706849994397839102872564525654681096225775522997819045975306787194260929018240099386243959844770329320579585224621700190769894135306296419471468199936417514515934874969743414504657162566568192766922098429490036507129053450494997652570408764953384006472285949444542973020267183679985609053168028378008675391041376638460120498298710763742714136697640497828194419039055027405804910922672817079526445450585410170499109948139635978293041634492888388263509097491391628649158245626056314679954489893800358885727747215562256172862949574134190782771390765465297651213766484443256035039826841664985636365691789826899282990175307687459547549615095979142716634993338355946757062708451110401014942706473928525028873991595131176066085377689649514016117033108541058368475925964088864829687022525798550380718987283982202609844168131959087119006222720249672122122227248695616195287419193138480577357042051405649953130111059183562786352698926637102540856847525696296936230468328983294456746463074482919814800242976175330776809010753022094633842059042713313962846503698981876709426337153323674004553689916275762252635151606120199083098414497609812942356271470546902414499403233769080134004767196511937482034075529163350745555015395398429688099685749299540372036834455630086780991767013895037201089629993406943475756444473569079886934013649007207252119502172378849745364261136623821866980921062989634502514583409441611172817702583241992528468311003001065955523712577862893640835790557941428651920844791473701962153927293065156793765402272349770098121365121337170358561663937760426627928973512269018572276682140593713588236962699258954680347309053435440656375264816609902104443462995227205630126382676368573556308469780410772501433419099065805319024812690994638490165267561271300984263748572954805070471028895855141209434810995685319807492403228652268120939011820762420560963308933522298784206491821054916184946918717585675953968170950098872213085419952070326467521888059725432994432498693228716407060728846511516358532431160676166398884461831423662272150451385686402872051732064805491252159430950794015269232523357947813587234371407217049154436630181734137289315194810940520779342558489476010623851652373723622416444142007211656901302327062441002246966381289453919786265910681832291956396320626231077885034776953677465774026223860275074411204448741795830291857138344536915143602168168458719134549049820725257835736832553803252120242880122341256708917913315096058154726817089092141717351545897925730897306202506115832044433968142891313712561671274949436956043344981026410753959627389855231174425177891434155870412225920184055587984165614733020050411819438073074243613664772415149344617420075162265690374980515973428417910679802596688616259381496062385979201111914876068751507746061639690222663359197696360553704477077625271386747470231394028843516078283289746211513671982377200085008482420027498752088569571535203680901472994599711157904911437894308953859069405674087641650919987167834994281286882537548013108587105933400744726893291924057164168136896642908566047815465290153924080629442990725791928646656123444234400078121513924190459974479603235932056565667651244251496884717576921863561259913645205759459415342811510630055996412447559123340441817339697388452487592519705927763037606651912644432205468249573505394779062344437033221326741349937988719853703079650710494816726532104504904591154598212334456258151270448008856083883634930309191576507959075365786236985410115336363255163310619981968726887610139996000377313274654261426417106484061508408231756322407562441513171596053191582336492768632055307904935416688725896305513424644280867558622544366766870245683728437079017492086645930429494754769270852007359501918177076433881453822034336076070373619151650128651095626023577983155536359173145844487390461109558650539740760270655347939593556064122407462722779846110862590219743080587946581939018791689313311197443122099066875396308982819742597502520250933374028193351596754247471505090236735244465456851838775350660519859901477206906039828618947522320898458051659684135750686141777180006271655178770755767720474773336585276968618725554256028203542965420823776845366195658180017859629086456167968495329051045271321912220928735078551104398534038150431493759618251358030020083681163308600198936168884226507789781342990471943175754607552583800099955095286409949213792497997375802968492591110044390395951109650815141176240126191154981468587346136673576382620987955429325926499293332606229475908913320768804426981796446344883890573438641405820453061950649528683995451393119324880697023065109423525439917449037412365279564114233433270458746780151231109041730312244848848619497512929151440649281901505149649754938116392365145834659596560941190777015996744018098718544714122469558592205753598392948700075959197285047507447318585431523392991086926299594913860853541112495274496855535125899032248539190184192902797830019706335619667529319795203791967237860248876969048341217615798521158596605681023383120534006665245280459309525004325380745562381624365998164098616605254086819612169180171659393981749759920160808226941880348070111831128186976934297031428175189444435307776753568032395037531903104470742550566826382206422237787723675641632629532246740325708383507946576454814184132917384759724613532087538947243996757411232371854030456819361847234093730158418157459636295124970203203378825065547725651430429981767799857194721458034294212495730008899885933617978956661003167973989844973309310809630457468228378701377251545654698381477339159543263728254813206877806757235848673292135905506682438910067733780469837321290198378891790437970629426312998107506220158984368221660024292963081182892477769450333087172230796508210519961347320286544254420445831448081761849638760546658717997284405745258590749836358245769773351908126449321409178700684615672353700626627414626904594834758940863737501623403074057945933246349966690537167407911449390613524626994269673293505365056537009725303085295358478597256107917046846522876178918988810657625170046995491208869428856141621521184204550810108713337656573149362122401585207893257837962970890747445638804011452226221025039063119884106101893159020712252639154160648813590808628447760444821743285286075813867456498429838729533591454316310551073510175577756688231673427718560726912596189780653722189454588228839651280171154515048915957207099413695090136606238823568955475312208310836365845498412998560218928639220656617792241645168716240760356486017322704088576750798168281459323984685863268012274013368738988103558191146164947372345494943977552870625394783752370269290818206604629752739477414203441549204966978115683449488737020426250921318317818716254434228137650425166897933851478739018033843337870204581968503938242261177359814059608433717969007030401819192784782012464614799416328957940207639564546144657814293934468748981797842904885075840613829236632818702180427516014950159753185059167563197848354191748229126379872458964522848595031663421956483903270289986176931418447056547075483749452843370510209977339274418403134930306407553798580471988875855665806540873556275254829961416657788711660391809414321686155233055899640356639987869479235023994813622834915782428904856067999023446661827201792839308129153739225512237838970402527019087920912950925647804409199725665759661905983912213171785987471201113956886714459694080822655537888370963518133477947773854478850412983425156148605916156009321849603567061013256157613030234035737249567050293860938183197700872182188833221789071501899248166968932551713820087398349262856172926029555648155420113747471401392274845542918022785712151744329519558263119553199517990239719432590540783861730502875246924204001049098800104480616435368674800786734545349619203712391221674372878883852860925950839925279515597251642845806069686375498947600918417362362768671633073043223188889287157327367245871561872030288191356989882670718147051595160862915344740486018970230120178178771222735644408472449366420729907166198045370680344497648864811003493579847938405804339658292922342803668366238824202001138316128817561091407586872025469969612984075570253836777312997690263584568274405110052257967179167710355414043607559130524524857349467659965704932061675486720517139842717715928434550242886641079121273746876775298378056242018770475521324099346905934955984046828822568284371082330579386061972918193367940877933082198305977794521541634941102581708113503961387364010399715343789559724059001118045032559851970064020036788905939398364078366617791607052516837348816801575548982545716595428725528247355027416972779415877337433113439955468268134884368576419942355304043113281736243516638290901511090640091074041702157078597863148192685105950071804905491726718557669924266175261734273077891451100535959644767966736622344058927675247493681238114636029094663031752858909236062301151879022458671528398213511419399380195995812199728203923921323702718221782616214521840274603459622641023231587302172378919978949002042900711050000152216809728172207426498527508195019548257371579413009804925120519486949350877427155019046217338549060173743444141386595019740577195702397615480182942988095010979332138548808742227584422942173774622381295336637072723402905364104531527788508778101932273602397798642609835568101807099910036608525400154453624085647460180196865055842471561230867032204849711751754010222629059101463048496622140600060079421689520748126892305415010167856820645123915169110938215296788794021236573758771797979721632408967938993362291261611187607546431653588084636806780693695736085216716489556728595316487936199892673014934127211709309654660175488663670485135835086261676017552337316060372522856166903190330160606534395215677016107655758211502823747674052293134014069958909984818807799715231085100619185936889232094977834497230645777400735981381156133046095069200906340778634978721144740561172362778100864902546757670252957181313052142353180754348687633010210556296784528219386407760162506727446754342477355967081577080841409421452098796138277653481432230836834634017127167617799169317723540730418481497204509968039670940293609280789427817009894857381297716739214942619701380968231314744707746228380755365233964255290463018670798383599620700171314243840015818119496728698950639179484306289315217416104165926168678574540396213362855607491607718184009051986577721612587522730960393006966353180461379770261828557079073870703318875634587015721313286541807492535975216487322545092592797876326278851990471198502790989060113880854085887223588219612999836443994877981606853759873781499602428741754151936220542813143936027297188224601609518094519697663943971943546775644048393128153517662563516471541059801970014675945581734558695471324406893172188026615391354677925936569862258372933924409150236122110367216087108956558088686705189219201138688168035818537890128679897054209162989029035405025749109787407541783597335354984880634958752486900549039972798803152361767237447773941834423336946508489997188673719303949386861511103730253182585742271207805295221125881193760260013746698206375925577874088602439560170489611059935359010106929840597707275654908286782563269780823442663295017744426851552024378466165329584537162506645871161709286000932702082040794359967329461147139625938467893153150875387971392772532818389291227521327908712362563813179981450099892465790944539504720167611413988223654388170870519346253134985802070015290396669169381920362921653046896039153032631387802285079692146909808179466558054177504895584483351111023589201686954611336193518550421964552011999000779723164573670525148089825806838977169362295307486752697441582136510217392488126988205856911946849413363521963597072129071721164830829890336461508866452157484109236111728869792210978626769409140820573051920946988466856962078976262963173351830403896501877993831064701519269714350586267405209012952881222889467146383411586906246943942798252410176438898787944870766153278548905840407619716726941628787340992138792064818431836061915888407972052152114709275491078070791983086058957334531551550093160067614759659109904206920612373241785415703643560358180462879301624109379522290765614858633935529766584978517186728584383518098925670082402036687888365852149997075359571317193472455578842090100127118995096644637066858314479135060463620902515449342346389595892085839415538335077180014453964434808097929106223826080185268548433254408861331610847313402231936065923159750283749252961219164633073412745950590674989426383219742725169519214449772841846698186655454624325887340582583275766698289318179955018702994090589702166156177868640950205285934930291524798839144647699205542237731903595306262684243898477711441906001426451674663845489811271674604655551957303982250841680685893966905088531712321545421910109856023595293698828479368381947479788232721764255362370256044251147871840290997044984920072872814717864677923547831101760802338023161701480583181706568475994292488518963886585194790621036165831424140741884587521477913698224341453281086028359674084067215277415119264816009265261463533213948283585901667213040418124102888676032431248779311530113314421157148351874983408890631814629365278854707789103037440886267242206048770507306104299164232181809285832825031060145728248365995656870024853188258632107368528634233761921694511867215674329549275371118934760132353871263111155620275304520969914487196804389827662974454361435922861432222430285415613642329848218676209771130965269152531064341900601936172400868489061243523952752603515966127789768229263768704767474012799587985738846492015668115468474833413251600367053042800322088780536055804380803979301099137615554810272280068096373108523049650717852935126348695489101188917861215472246327083310594302417538425670269151816223770300340741589198000546857559514944290304842830590094081857598058321276124909547836431728446122411535972115863528487641558259480800517112593567880377361570632362105800547320659296810446031832314264943894146162929611204044604960004900460749644028381030532465498191523411936608713654500765238147706949929286991328379792171156584312810588764916334438571190535493853956577303652268778702024254588945501982922364191570069436054402520960618845177704303229018955290652952014193265540635754064477227259008652153902726389048738953238745765762067438909584457721725932556906447033844097573370308426955805706195096403310990285106085525203761979620794766525559732351632474918513629131676021325505256879897931050567545618074558586452362431834783251858090199200456997572986386832496312202305813118416306611515988017369343558544425187752058663210775601453885719145315631083731562660499574152223219042556041093228957524196656847371475826198839155064028480016659050426076222040325042794778547831287584706381025274481244429173573303572852463976598091079361611011373025195937268695037784776677271973754224543221246626395272564622523059253893567151419006515889959040698135568690176279362979525778078086191427656601002647024199699595373792665138237144597793329992416212144823830967404528364211301972710656307656293591179545072939632292181523559222197187960302660956339294035979167782309662185902794693517762055574794431734223538634273387153658346546831073256733736768559897430365342620844680616703498567749059617311455728893436062378381952549821304906711007356462281569725041409031268189176703176421496844733823412956812036158675042587487603107247251687444932108765713660357279895172191237867114763333843232666215839404350006459056152833080749966065855233621184682491702188148438277979298439559587994649262006448865516169187019381420660927886294288935338011698704605316443308517932191982287629528205685698727164330215438015653524237811953693601918895322017311985107429609468679945615721815401524579756361802927912190345918490898320408865648499951752908856732418430676682620289632845447092582170196537080328738150010358991188498344154872029699095790267351516109380331047119970795113256983949987442950549642261421211830795443467068996531831968235109680972037732269157397944761607365655838788772044556859848107270842211722498158482992647420098697091764434848090302896686185452708309798238675329306928862186992580380713732752644527411378676242238658375891450385997601755845193167343117310297103068415054899164328527439702970478541099002642140285276470038059067282615332891498208517339449991854396962730610281721763087841140348112554056013037781642578663304167413247670837264982711002593785115930813803980881228673311138524257582483748907754758151894901833318840038190888471160319667561062229209002537691621018488144645067063107620032298613819146279488751051570378876378484548848368494813746075160172841154146334401974365192902189388688069869514351797559829230257773960481534295526367163108834185415884263659337093655197172281802813853718915567623424370591365778718382084795253740781370636856468058591156076018695944160580612418122002176524224167124622448798671554058171049265588774830513132923328393348719856804590635213524292670538885262398812395560749057534213410420169682514372918973812435124317867377487944762082374376180084215591110801361945283887085035389501271922892795178471814028000931342162942262903940239761072981767758211504709385440032581211758098660106096772639186802565051366762348812624812655795976562426365749885383420493245552747740589602707064286932534293277614975425589811250034751897398514312932381808681658416686552054890325120010205684745354908961022688093321246925937215578363869437535750895594113321120770255923861322005929877615981261347835214837154082952882533304415172903316257445380079994102922696228948643487839332022847666882578929415405737264969836289246762195393171677966362037690046205196746766180823868955883013303909799415011819299767496869966004835244014242761559144610603883526682066064029755447636212273613481834378010685633034381034362711348345312919786511974492772855632974909198627237109442291871000191841000337166038502622713222416936793448552197765340200313438053458722940527503750380906620085948845263031052023396000127624712378459410847598284538866699850141957064928539137347879035971361043194734224652356830544321002445680571630342817273009556184966461229750809177116428355743431259933254081653808504549560835380007456421256882449612586358424423594966844751508927781336187698026692654800379306532279986459966999503503876382025641461128005179989314116934826143178045076381515284369216778413320916313634749152804542327849805917376949122682820345294147029085401564753008302069708332718603564395548408439875769389889741968637690462945400344175928209150862216702464604703580396470569460296048693937448543219770772606650110060449258877158145501248513657445423696993126204855761321198242665721055660012013774478294276712145867792049561699026075470737970825094071108604987923871004476000436929434213698166696359908554380937006659790252836366910467695306760301998940730673528804954487911046847970561588631010890763681733840630160033289022417785448659483909838955512174867290471848533184741634767857617185851903068344622518152905391852078610895191447111157748090668583889003693768759925711385532719169818830542345133429811869767353428122140730565831091306808207351074640107600069487679292677670608397729779299301335558629739718026797662254873348232553551447542415695987633418010313168562265717236665670050598539771858077081075942979922748390410559546256474036599272091360222099931569499915930827826735031845007530567644758616545847989091910932111279442595092602638297913087145753940625454406010145210499489863021042084715203149201806497992170905268833675467141386924482143602148885529870375677407752328744684441848376091732204250364539589235693134828737459915801116177107684483982971762808596083827425588994746720151127405075429786020595470597122280688956837948386746599084792898396183137226715604276513234364960068551977864767994633981699424776780963633850638557566104096999608397388062877759555694589787642120973667635951835249451991093030581368360009545597973713091502951345191156681845563732704230190413805501890014665995513016396786905936737051248430783678511166043744544669219446533097153457613415474139317322958659425274540878284356534813849571247703950845772839574194133268126352999443985081707437055184754112616682463689638231718987147041521006567331435923418702392405191201816738770574292665317563146716732246924548046311197718309097277212614777147288298750340890143565139525406832841432421121630187171529983188569139314901949072668123560151763987643981884617578254403274505077122293638151243927743700417973672531409504785364692044439089911455437848338349017981043862147848516286629991183046593527024641989169104828301189660285098547721264241191615610396534258595003848340056000471990261239826913065900000786871799181496224029126600380073570364497057741617723082945501886132068915682431018772537518239812543964704019144303847351497391409166520547741589933043325581507784031939791597225600514651085745631483360416860828732943983928641636605984151794671597034487687952599552384412823198945826582525810653359299401149969776279379571778387255788883095014096657020976020646988809475074933569310976433782905659003725740705644825629465173828955840390327973984540809793442345837527062625730685214529120905453188917837108181995008784374441315155697979469605724003511019367583808766369982970558048291562103196645245022179929857854960438515483970338079116151192579142826826807542153856717835688346656319097742644071030617868193664769233614006241214690390012695808485659324080960370429967972028813076672194027280883775846359033767018383097431746998176461039909082445948567084605784360258691783565593234601120775236568858192809283251290120612688213381700706179610030721043460031132483845298701303124367401189194613836767865819284875410454620436095125348664004820474294658381546050637677098712658449972999766127965372192354259691555176796437812810510083729183119580550884348687654088400424932767887690813709162134229864980118957315937175595721807027251005431609412593406663647866152284401455701479672787585105633537216382333937403517494118992143802521853171449501568983254591468460984804371968077393003497997348859587417059019214770090166578698305104674852444791541999302930816410643193873185714702177789072482944126528213128199544180783158846285569139373174546120261163453795307306007230913076672688440229172501656479909078679606682153495728985911352655095471072854984915477540549491649655276563061611865265966379754459936632355890944855037647204159518165048848098890064874509344976432017284733914060245874691810570193261644608435172193511090712300435789503245819882734430064473815932735930059904032810233447717047099741391728887973122842367311313007816375109051612465934935957967160028799447284875271875435428615449986856975955419504859084186064469485792554707540285676897012689160422181535457528361931315924564297481807938496691063276511538573818854917056880747667056353556898342044605717839507461736016913423894785438568208413568413681538245197754995416066455360874009744389247910510551006764886894870704635290564143768845555915072546322332419194885470914436649462472741717606825682982344505529363711441840509853297108832010649749377172071329943436979574770379364974290033453600317618974268516664170520692083302508139317212606652590719364324962662317867868318089678149782868658023904399290775290073717709595640422757572919605992210567942709190041624899679628842195018288829901390927250980903117767293103715632410746377712664364378442994271654059065162016638436134045029081155604200980734973605434143952685603721938781331713513524628103626069877705732078535769462784455637252508013578240362607596794339231721535307394611575040074042835715538332055719095984512374292538708281880633705187902264589534542807855537237992782937603484949249056244189179542954452621095055998742440163410631484248357399608567748767944203025206407911708200237249983735739367586663003107435848043398694627352031501042498431101011258800761209690778211420977640326802369303975128929339911661966257295479314200920622841464105834256551075607496226925187881464675569901832128961523464176265563549086537331589677517220193003938396491222000730225132022568106394570569734104011293334356022531387437512744409536932120321219962766163615638140972272319690870210120178083179774903687730461611609288861540757930601189751703881563575049093773135955134849970502036645469130594418038297366825510821034076127455382657481951447431400629535571640399655529501999613481038573601549852390024135450733633648425153741110221787679782117317710488018642200294509390367617046359244659179807023573217327368006447732527002400215921356275341494824608384613318312054882657049260482256962555636698484666874822346747527583463451099435943895653253530020154225614649607893945917727658420318471878875604404283916468596017114275512342652386722004467633215692464009848142490515300697268372201875435452195544376351296408581995716451284570469782458871266883976441946186219550865377297973369541350968232065154330212812087418329135437710576880476667541813112053223154041080557880169023723603759698792115578686041002579276772989374300962030900130761689641284284374737550902019698896730689722028583944233286192575923959820704573823392582106224041107917427069013703826243458454005429030156698945578213842264003908666073590032477362909107106733550387214618357298900404589994247741549003353723138631395571077113422844738400189750253132498355336362547688824137269364386411069542835236403399656470785444937962283031601824863611970112449523052058060254204243377992189423080900998903365667376516119334134826135827573179593293926246211148555703309360103695665891912094541288063977382146427577096451672612299135142995499427671926176273223308110674621418663618986161660367527084135363475308159650202919155791014901498468592584054078288533512283533032588816011508130904665656966210145971300151044586760427316372819319907508215345711584352668529549770587783728769828177742096311770380323196585050412651584106240805098630074184411835444752016755881315472922985893849879680715567588135873343748794986299441660756389783420013604877350109932677744782997366336133754706851244538970904007359988297833272552518253747421190630461673116615578552777806619618005173545975093178161807189284988308471510652413914947259079880470903298768750077582582628723392908903518115938071836377585003567723643933780262965158771921099855874789194706608132223406109683169831280367473691306118943758510665671621902828796919244063366225053978041981500245757530746703513620723455255292059005609264107262995630060832028914286004239252693869277543812214084008846716679964203788032176851318270250588304005847629806734076983599232028418844085026226173051284054112231141473240118280813306718297982880560043522027572655168098748350838684806201872406451702165757126131570964451069469369704197067964063748227414481445743336149444159665112854466119415972214240486675240757534201425149765706588251365119798963332007198410443626727471061132845578223294250504807130439834900375163531717162823997128154998988348466075532799261801339925501652839376493900521883814150956357895211136363222921941177468874557146774864039425738691288555437821263961510249393940896546752557984393944189574800088752085317027949546522211817292324434940860484086657907052999135342820091309836726991360862986307268368971878986993619931593667307106872057950482091492441899550536281232679586262978952901802487673784985579770073240335649894328151623981567507666782467446763637352453501381820224404480097563636128998703687428140378837713648210324086703891761446655181347072063089483240102587920115362978189813493309913867438694196247060587750649270476005088918127163619166139382832998927522988814488140794922442414614985704364426252873418547098784569036183720932432254724671183058080393323287533133195864264294154570521055101978435032661666511486112265692074467935493979044448563360292943625481328483382468651630355608001354928775356602010237193679519899508311308077141671366368211132064032581847402872131219438066830395261762855705095865359561947388487395374910129356503308694484416483829595499921312851050934419976064515711233930831511304403791406614615750885223916374285903777380156536215678917057714633087038742300449833176080761926086350625769232357061346121361014284890111395475577560642023112202817460738641025973939405812391520711718298142271549423623149419875099738992376892821018924034572436454672413224482647256527745657908643359549940571338046997619608254945145097848361596314335340126376543923587002646937597741416117905825260250359274433979952784167763173173011110917417006197656803376792066180808585329780007863160694871625989066433843174261183782007435150280705003291652352722428185293717668524291205680977643017134091478600464627283784612304247129537571318909169475787441994483411366949542877589285479399516120460827186809857252846275630037374531298689028842856354418189244143573218191082997707966988735347383555243273536010344964305204071595985677419535839011525820841011545543180385138854096715798109291219458789746418779254907582031443330314856222307652047504793967341983907704258058799858176756260310051384829969773878710162966034705110343625508949974685274832229890489550971043429303129215717612006367025410171275190215100373432482216640036144161572942375311863065463929624899663998615222732092601876075992862461806997871272802026268225314186680826525159569839302992372084738211497129057117391768034163373524246963541133799452633385259902517320734158115281109021995838792035055855317997591236937290431960389639913527315437935794693895753755596253768367693874732740863097760755085557993720653584214598625462561329490104100136730993448382363787300489947174639207408288348642536297873879832590042738883972711281588499294525945392925214368781948306435345953800046188258704190006326214126874180273386290043228155583056706250390194677867224151190617382082952007231584995844072306717708544792327026893241418177508867978330096756208974360842786311967963643462504202253075763047278696836270058575145021182692347554828158582764404293337051654351836539944376399786003806788811179800442122025491088117673722875306613034738734884697998413548841383318058310231721290742544468379768586191844961083348722652878881947778117896190034777485821437962995498244858787419961705117992600458607503397039827578365332280677952312351718481360452465564191614203464612191486522758558970480957182167504201668337407781431907328280037357492989654621035161217053464449936872866673243590825226244749428979332482903452353170016618815355548703553348516208459319290286622802961842801252336097398165107178956964405797420573378918703361654652487479507072027946093860132932844282302485429354055143749706798849483892477172133261070107369484826757017358759490910789495827066089673820645602009590365073485630163629106312144817678988838942642611612062326996797132999169676487859861252167026906806067616505370177817587330229490101002595004714028751418014145807285559161892269613511662212139524012214213561378687900156135504819739720637144430718113328704710382011526807617537602427676048473902561646285162031510416412259743672079058811717600317758037028028620508987341525980736695323093285095389405199883858104053345694750876168715827381860467834227107380304765691613400858961948262063472983713599009136022320754081931031083603589438625250501925684317472238633640224884580235282437207875216093651615063084574930788012642426404029552025906652075774186718654967129769576330706186263173978928129949212878233425031160163486658876666133828059838723484393088076245445004261197924044307420064117489891180208283545151034655219712549414508415574890268788792389318719447830092319376360422880763517185699743937261890199573422269013385156746814324183963400110708957944930754736298950478352435674340985306314373235893267984203558596320332250991249224449826920620607762939812175154306155910409452095420564544640557891870747744018247976745992920263684746025609292779507737454575696277781821943040975005406603860163158932638253330841962989325931106503953447568778123278734761815515262454349007856051059545435630085259421315029709505082245909447603227529594085546284060835512216369895932184659150518675558953158803488056628573333508885181479793146008951832376015906766355209605582494048543299407028261596432456653942971419468764180617609770499859931449977929401953111107006965018987442969045001401478593797102308689140046683231150565129693747387865466818972318074001445386634652485305153309838883097639704350724290293565885263752123698591964565364529502321480877537891477338548589957900710282093544304689378578826728767765251838236430438175270894916900405736491068280101792133940392345778419339744730112266244114844078511963476860870021409175336470058744203264961224737963777697192519090184711345355665605409185521778191076603163937568630725410202263239145236982376967641378244436388182640790826251072056357089439844567733099180270890271564150792687670266107530514896534922360285598500133846471333510675239602619679808150350321196904223860841757263640673130644489313924680854446165386267903372394125436074472466356579701487880608331384976818836076730246862923292745566039703598069805552726094348330216457425966308300209684573172393756932290104301130847276283616616600764844616865751019905431936453957261447717311572795714524340415980329469207344409217040774539760354566400514470808253030134164611393675747716015182257532088375244694709679720566196915844094740354643473304546077028387596013014210465179295752023572859001014163947522980935792320829772887537284928322289284937393691719811898048843022434361676735250469424245666936708209552934918941326259646511690724383551501591958270819511163775507076346844626390141182079030161297334036824827325446392563440592360498575643977419945056534817728465635708828637217488728650364295239696188534687471497264797130985511384175077599185527307548836480752622050758549127713663058338907487906216559981268643214190278231479210667413043973625338244750583837577694998357831554737837443288284447968787015631476822203891739924590381082272443617687365458067965463181901774967741654117257464072480510598542134773228524934964486967612603639660486500862389808895279042578987242663354644441304530636955884618576886311409622053579053184313951435044853445655767736250564999978651151971031520839906855842398050506209959400396681519380196282263927994201526699732529501281145621327174527459628990334088182450140388985853269066627348346132543514371731958158538798855433450392290059080191035918609481404768884666302448997823035098152821760432737350624864381441653139707123623614015185993175725554320804786606360059913276461906075797790338617280171236019050936217611668995072518678042371120514748937181135948705425998467516390585264231904942559027312096162380847865485737382275725292444684508139618239790333617173290648090928172853300210904624412015879471342285772951970079880222698075243990063385503021235228118112118612720375620890262858734645616480698397778330707711571686987359640263710632591906708739048128451196869692310919150042784803137677364503168910131163307432000101043391497835550228145290037929514000126981979973674068466873744498437588252766023163462937480720667354837146540492413045859185318150659692340842053546301788181465252491817944088011497556463576773490721343255773144555403247800048913120822955174419299046805803163841854026982696847275002311430248379926498521405266723298728920537389192408443661291430978502243683927140507869594332589252596142774924058205594108317161412496055917089741809578958294818967694860100542497530502918645781843322873443398944985920035671903647103004820683336121377136932193323175880075746327773734776307814206410746562057513733883225283299084473165520992495997744931086657406390032086692849477495738444959475836012066549159234399121335209115709532335542912505716034117806631823442199972615296052945574596030129015014215999874158195015956938017667265737115640112336725820863993839187200370714146273663738493111000979788125420155538831336022220990778254217991475434835730810901143676710289265236810544600127340074604954900494832378067425368045969275325603573491498972312084521741774021398193241178798638770037862407597082851525566758316157996454847042781404829907750046703271986285795429361812216257730620043799546478850293528898841195100523224297077147519895833231993339836642957570059380751054342740184897001725234757339422619832214568259836601894856874680677047426584459248480707758271951170114856958639499405087493541153497142283050290964580763228862659274850480410718934511417869159624189562625568207307018851900583439488657826987894635179867895026881162143368527183083403908455070052743552733992802367666037200443293598818670909188866688741010998820922776324640136875663926718455648215018171752098932433120564046865501714943758705989262090614011314023615187509609661944035348599614090303191977046789765292025558261771593825296901445856562779155031019735954819554142087593712209701540473208178524786129957196256445506241960635745017055363810786563005910538474185147448820183093162844848571625947085786360022740496400668927288445688387307613488362388477155374435772279597387369786844478941706661290996943068902682543930875268722324190588603635171029652378606643027673835199778538089718020427840202547663405173938537512032916931257856297613342006638848422989881117091313033453582734580251386610480716768419526264362329308327019629773008629022678935853152152890820030381144750218739131400081244344425344655784578807083794992475121074747361549424601820678074741067449160422277698195851356308433607379937378473674745047880095128837119152209029812711741233938062001483145162070390184227028856447864691623270040241185671185779342317336049698181227514390838970063489767886479972400938949056325780805245307794688600708617991492566958939682362337911867462178621818322758366863405752759874180612746799933457261219447800282806449600562644568027968451375557450171432798324628740973775617991522221849285044539490323196759451289346317838900204913870934141372185514820538228886001391657048959994731521222595942285871692519333755825997107038070164074455395972369341732566873819200396891623192563063717976164902795503710563241174926503628670688523123562679534451816381562257188573134431566532193700353524042450146805987174835964012401496123963882276227011161953620395185727308077951621019935377498644967659841201650334249918125033275790245510658543667549595817513670615975673296475198652332151009044902892777550712974452254198138986942606816263710985819126664511072587638848865402806325131376027488811711179205474901157568919446461903995706811546784413984371946409814389477584623298894235118613494825059077118871986422987142027835807241022521789634882727595095899994143294826167952453084740625702730819631441170450125967845581847389951268294777177485224309312383323917110537216133817543584335751434958444134298295765872144208779391501432045201033280330567307485011516864133068241472761987205091070326641545537025938469316879917937032689977246419342779584145278880518867503056619527388190939824736776678669719542797222863047015550138962202720670353654626426635620145708496032882187184627076639817213055021027504273260406466188372983490808244361435978430390100237027863124872906014971805269203540115967796348531027209297270980770568895856453175516925196126474258081807253830805929262838969946663485992216933231576948514864038006341460177939001079566451215673105106750507424613806604533278705734269698019796132890402128913931301417614599299900729214298510458069527130053143691612252283820003723043912717462054410959690340656022235243695007612209118720196908946665270564386162886041494465360376147177525960652604630693567656560255823444748369394145432751410829884042664189316708784335057416132457537618588271107607536061338722721710870076600958111210057952614980289920081322301705296938801718209977258332674133428490898186232024046908504625874668008114537211633190943062239621665946407276235198860927582854144277392439591916927614873125471405409424305640589532664058393761593241997336043121908969023091462245823098370493384872885930890275453500249180209517900540226473228831980888849392631101016176439095876265168728429108281290735743217434301495797219590853145543655425619751804403323272454346101361667919740733817046671721939325074021823659303110172364092414182905859129410272156349138693274058623294871642794417124950220587523405980068259223280593377046060637147912316018963177560702808385756003031796710248339945973253549372905919474846294025809753831140207107481987609509344435967468373667311126416231012959928992280541345013048770295911366755058949480879011445572409000400744135820188301845059765804239423248110155895864994291626491003186172991639056943236078266245717961452425291642454593277424673837444557061985097373998085095087694862071150192758315816625860114191744654828297407730797607432652973148977207754489664425169955221713262862802276368704521786127799734047473104958328168292168970124533295654358702618666672233703231668274017315785592299649276761162936904925747553830731711154565765005184376236210277351741896874726942413228655467547176951171389952418293840953177901419477597990998863264506523411332783169596373603629499988015546790984957595817347504489240023373433338356425431072504185497182958470991398774474859897190127891355699798929871981622984523149611580427925442205130249871720191545546438001299500832345840040637326869305815161304110392971678972260087041252286239571418054273947690476373032202954120097305166350382460800283520056540082999153072694331467754548597066349935120915181486266538762477279008682279962987042975769162832352888000523386184747542287550757058004204379940877962227820477399010460795282955568242235690499176145123669229978180169384704365382994017104766035255987205026605376481928675102428905301062340285324302700279915490596544162427448853843505182832583508618709540705240827662639374451274619270225966393899672005618324085540117522620773886524717415897663672108661148708432716887684555669083425186916124997257522398376260019051053090501552228353070413670878330866166582648101504205766965136990307018132327235606948518975860944333793387154444214897733240946363394026626632610224352987505127915405058970513666701310217962190911064643875882503106551174767168643357773190342668834565195857227167795076145642236513033581621410217614976473215479863376567771442844935270548738342429803990795358496321279382195889536946078428624422095924814816696096883501629343237911491029919425617953646593861353376864519372043080878542232818769145855832511812767166406223150128573645786442733064728522855390966701256049184381025408183724735364308480461794344062822901889998612332910886713364787964603955896473715186513928489446815571584076552364565552108283665338486900553719713073598833196695831175894557140054562156758443990061188771884125053080989776718423577033870154169024091098970918662763066205975493563033880007564607773285617116645470771907975526273814941017742016748405339883937216363431998318022684878033641862049034108719490019290356664727155852969072237631405978081610975034844002951984821593490471263549878568389208987795335934383348644983628531285823814377076752101135397084432727834909271438191816665371770499362826178850142925072318223314102523242238027110140909123895349347592319719774733596871789714169575945074045006326215407656213790930249011185967283107990667398233979433489295063404975765125988917046758034388619686889764480057488521578067090878208849308568931763760392729446584351060068235925928807617579299267330521122950733227573145020238166108139872039434688263934285430591204248612419080141979824232010647211952656256902978026209739701911880065390173194459315653973189445909566653528648250318699453598532028337606920585821571109227143051364537328152720284123484650431366021018471808548687142112288043702336459729718593457218916029665164050506458551719960319863746821290817388645212814464394465048555904909116883942188081965912596112433994311627686554919555734138751707750537662430749651319376110537458003085938121928395598292310662546761558222602987083226261720468288688868297480787493346953387752918545082132804745760589551989865725157576889530515381305544502893476211942403470858146700549202011292232792210802944600666159203227772406959666690370540321225156569492710071998781609274493845090193354025952918637590311305179075974928549712175576691518246588870370207882940547771321307930426674821100380881026770470008550671112141279250925843704220563954088740127622534451131516250683933930313209426098166796810469805453025423902143175396289434596739306445640075488453042006329197702642267812947930714684076037119579844735349357551984208756057843439563236066123532156708405219861144175864055268473598851926706304011966175867753262993108442862238990501350965087622606421441240131291558600102291025202980911088046868047067408858821060374079040337339988856514240225178677933618120186576387485061273849621943207933825077657735189148763150017376780644096027818082093733885382456452485171148198258310423258698773873133705723462903493514053832006125313388877727055078646418032427209657086687544716552894269790234546145920144281387971168326527111880172877436104028177620814551882828527280613351887227269783896034868925021701352292347027208035318132834871718444397708905301220212050725600611950075588887472240222520587013136656173837750965739326952369754706172562682492591518096670063594564805629105525311275853964164788549363824521986421007082369989195490857086888620000852231335600780161758649286870073989469800588592593280165960560198124737689965479468950705261319877363784745571612967092850668797115215062866189315660487045591851628089674611302954623191188044253419229498393337085104435123195138753649571371287685084798469017210288168420519003372234114629694866414957114991143174845355955716233475527702758583720922337300252689605067970107991058189126339102848696102993880922329369867020166868478227001210169350333234471862095681844951082647616757678505355680510637638897579997213374318447358218836918720215350648456346275733059428551603547851880189956048019714131181482071004868503719282753122492493904467249934726084913793786004734765310372535670322077221630587530902581767763310591181708706986639834585644952153719879730037071580635847343074533379945144896243811614666069436762310958531921671459763682071766981386708449285054772498619585452843508866933683998249919750798423324590146479876917985563563934188370921926396835362829587120485976962680735000761411069769483400794841966623515334405098620624951697649622989673505523970332475596520971993780915745616627658762620694221434274968583494092344775913211698321986309963413508069549153943469555254103466104581612402896929586293750193660530373355860572883045414426776331062626843042657605774371516898259835204507392549990252528322251966935555808303427304443946371721486842813893889084900341068977778724115533162894311195864116784911502262029370177359162128827606836427652226728591111437970345236363808771352570656358944866288616263224628891885011533483320290959718489458735908194877447054072010321341534174526786187982552562230115342349143932943017005279549542656874594524335867430843907288121916425162325482789862965975148302673719695516884188653220692247041059735448418243517573165655093390826023570662303972757921147589349886718766046559362307850708486743737811344496284897273277352374725079622459966122703034597132043633380237823158662490261842948347757377953906754811730955228073173494304453677192807445115558881740533096276803509125525352277854544930235408450358479550542778310095666625385263734320427984428483002703482728393122929306250774786054577517338862664543080263832858323146974426496947105335712932684997623938713053891751782189451927037154705439608645573153433765197511771741060788094710323934252207629901199403310474250654982509133350914590030709046072700445258502635958754027459119297923670883355504864209160564941036818525013998099292716067344824777670905063582265343261104495211511219183254602411069224842904600750935847359764557026197316191590800040975958456450373284796371735634180484869778152227622280118814190386253124994618317668653806867091159129732214621497380084346575167931546971955458349683783942779780909003004275497345686274073587831701056808161048299783442972117863349802059667566874216749729896116567120231111206815845832855050935325401022753139975136368532998382641037708525898027881958034614328271143426458125673272688623845739986534956019352918521141243503040103880212809457427446534541943138019980328494004754203280951956286230697517240174958619015966574581594810726268373896431594714198959588771732270593880201432728951127633482550574993215558467722766568354645832385089805100850999360633811167181182666650908100122697873043485390181818103335122192787564291042242542012551795715897826528169221314471606183109338384643477554670789439471854152430109319701448821093891782735491403834135777703324822292150711571111891359911636270819677828099144187577026259139491786080066645751418073936662290974170201947871899795820605203173722069118546165818709341874030645086287809229607156117582176870952589423650043684663008992357679145757788407619168325100054362076598893693837160602594139806047419610981874954921580636667683371370920291914165572101562062991821627887673809527949192108001260364887206655108566620361367181688056958659895899318351739858707100822271353509670839017513940596287862217373857539197706715006713382243626759990165777282224747631127173069239864511219690311899623510894527696814935992615946696398704890458865830616408820916595335704552543550231971788891818057869174189928150036827408386395633800598030663343881613615180166896600368119976033403447604685701778865589970119208521262397342493750010585998828652931620897855289235376490610418683117251677108937474130608892524295872995291697873252945388328226371141558492837940601427093523805153814610203208048258627926272335738657597383002946932389066679487285413466443350999828897427212820766547780501954838829995344167420233363525034634866791459456694425206026912096426099808138216622988713157766695239584436556987086340480428413305853737657280837026180101983063401461376028269053940389327141480524490909727901130901614556550057658454148755889566030916850324437069075157530156629279714773715988723668714248888117031140466520469631247276834778699250774358761391047196625632197704451828702366257585525200876646261684207940819759365921914851329406004319244713327311040803175612180561354856210370785592295283118526280588006090467594849715655471242066147820326118045551477712175813098448044614423260066869442198485710246767759921720402205155840000077782402540175380359806312337593032137643924859298430019093769134152186201039273149858901702909984441057522601459887018799917828039668405905248554619741900904929281952981069099645472528162803695416083726634163627976005594423512591601884628810202591450345951147806882513753844162472039099180902329640706822892470011015184035495569474741838429506932192706294706565876123977559240631592477048862875551735749220666903180938472636186946767114874640804003927245027678755288901432453752633008533895761100403117157626137455468767704584901918235087668370643969124761926858441731660613924780061245337405639050208950613379260183131994986072375671929511641363999979118703011648077378325551060632557253660570143823233657756641692808469936700143897054852506652058408811487236947032230010867199786558606872326393752280057555594865255450791025467252813898303402840203170035541254847299037388513929909426925269587767387314458766458425827287530494865005001514727304653697633220093105493165216474604985072690742144731749450092726292358119240477263500945747295574082715950170230714290414728460059901059503995472921259108004978161308063587092230075410883134289712941034423281775628109582902248086525734921312893853947715234705633196889188782150536490472308131645003082577446271327075471864063756487673731559027732524712316920084739930670000202381491577453519651517720425266029679150359557736352529239014531079835848219679985963027292164442113660160380381884628918366529301353247655275477832910411827391860892786358119218508957903190904302573666210262425203601390669599977873753666351915125522536590092921200565986485208821723779712193582229305706684426133846797993909595139069324877628880904456662015319448747224364516967469624077616118268523768230141964973630077058096056382390474140907341784436832968015436974679299348841831088850223418500408885930549659064243572948095824318205381505019373118429929131645221472559975495397420071344396827461135717655170454842031257602770529614731540059581491064214763759477479637936241536952111160569410178286623563778525556652660152123646459893386210233375486433407507927765857191293212229701132375308820739379385894964693686569484398196541989189781202634703593638720053679401967000614178329223312154280133604876462381033543645157150159301771209883809431680225078543976163944430479834377086479720585722220066595919093037381211849479358180758148911197231596910102575425867870321334903792754755425117403644164920813602477950260427138174721330682719093361107034332147753163029487313182399646929113449519177474873358065768629727583996856407171784288709540658843878820977294892067607903725602690957901578437236530533849826543527704324023074388374301907358508826643520545270321237271206485948558523321547608187089956607987614163834526802554250349263243642229643617682062463499078230655039936619272593753041119044652684047219297362988128639264549476539405762558133123596569197852110277596664602758567494403199757626879836754071569053142963035494823231879942186076542935784693515088167036884309314376692843357773120487014740304880287103635845830645409634442681397031169759100836216082631330994388275775890554030744465139340772104377770383248113470145004013981101229936879932414015033744426289888406382203921896996630211962380031105774657117104328486215868165028895334971305058933699982896752205564490683632035578831394550769039903828958539021834281775176032530211190899834664260487380659716093308625660558680857640536676193963432157251516277019706675750689038867175774999856251759381211297713635131201183570051226664081370521032167416052271088146210021579996951889994788686335999772485091945375004762617182783996099175056594794055569705673595396049963650643246862451941680421007668145648372966012590353141495651761986431429091869107088361347068992835445142275752795415118395632279651056963096047319992807366441300828041349548846146534376087864897412074788466102094722324395592673285119483133889311507472761174380801015611401958456498435591103802400422654374047971126978341885405443779647872018650893032791136749307958320732674279946658096147746687532155592949827969586377672189747746613452069429338196783728903466880411633805552134034595233571466241519483166531857340832996797591479986188201531854613836534974165929417076330817631493115269608618989210088388626746531570439106899011877002254955316222413959485817181897364435768366778879321155822393747229038403596216074828730194823522901414227056358753102769371983061850964567341596884145119764271737686313236584850002685207488488009200191618148340522209980245864844935226894367071076657293542348123371784818213660725100868549972867756513827175654483464403423845284280858704600608310960399050679409357727863004305264479662388956901020208739226415476354366239872577175491265302284796053120670772644662909780790659259528502603474131944104649465752254272097436669343328669898529949300057867019406267003838662537733708963001307186799184835150177849261726703771692010230824241524661877587496723604484886050436111818447926454614135431202218321687202727039723869910985959591169439347109878467414387458928621218814114287143320069674619411613711369067545756424855335390761314129035955995021070873776552411498860903587057992997948980934201854158319546373966617013778304938619810839856845450850090417000507191989256195274985887793928301046365848373238742476531973868988302770198121977197602322390314007920847261917499802577177420700902209460349651307835854012495193771142673212365450231779341480344962736441287601133450998414263519667308365454590843170692006856797984817438044195909146079612088478653089900604624412445773925215891871990745452354563142568426847579648572139035541362055853422199573954813058198273429041297715577885499371168917432092369902078713260089610945742131613938582583295197662017534206992438306045613455620731324788436428747869042156383914335714191641800938719823742683125554406330728190262855231814839953531063229428523494118107125019625186723885206500438104234465976872364856964473885788443421597008418669654818637420528036690572871805099775256722421953272377865270135396559286095990717021307489520951949499584580810677561106049730065395902509364570496536874559685553090125052666472939698042575889667152286923133319447954998782740522854173782754086653798327506872179424978851323165335184801123990166587714367758142231860879146632510485646830930311603243022526501545162606608527416996791059710235953201856286361828866209566132556276236271426435738969884504866210497615855083664043907856811708985069516097551077628424160490499148887434448878390035924320394844271579138178854167023871400385595390633479652429945544946380436610549693616255880867379700892155224935024181986288752572467543879408207116813070784418200074747405325124445433016579264607357004691708984406236878155806012840117500070002825309863479857730501474010771072491029218867072112592277179704186156220167606979884398236451569866666429609581679981842701635728467508399896478915152261037871122726996665502041243836163134208980981508012883841320105426310882163040712463730369901541275196991500685923584104026794296252925315690740214147599496835916097618156664576080705723070275278350869215946967330606147775815940009459580442506269820314696422795787898750807710540432287753488928661619674935512729139078600747638610992398837618234413629018116094790765120995012627682368829860048269979325951240774052221333252534984828550007699782465176911893499576646316981285886542514308425554716708173119722890240864982330387158381246153886603816829661818175434806809559444315558930101154850067737761003320983512957160126084357505448029955549735658608592802616190328599753199992275118053726235551521388032674604997543404706800064805750030812504927945758703020099769558417145642640822208029279650786470352316696142627559721488615568388474563193589193057337236526440237784729216189476851743164866036937356425633667764503691224883620701331144062548957892850824394156633088435106536340614398513382262206877424349408525393519735619548071923489106260578448493520121441046204206902900218038512154901418720669771137467646509510725555901914029012965740670664585276774010910471142981227883599653450307584317368573961785456035914395630141251330792700094769005052470235363877942449328552044653788073369836187196986261042895550936776185924083193099798932308797314756267627464379216002608438533399917157250041478023969226712667174910600539728622164346324361078625224687401661314156479469893702311462421398955725777372574094152508307865180665969687682722081002960482736659004751760761693102598090410201386817867087785589694342485862658571122832304283112642240366737902723631097254242484478580845633173431362814564849276579725735747067967813039823378783154809407596549493161473764455869263576824027125442274538164357184107635693585142698196107225775745666594697729289749438565073450574361929864493129585168647213636906867543055935092045316615737438062831425152519687933540219614739313352575006539991525864238035141068678038885541857234060740586983424617838800693892424811245421350857762413639346660559617237106847951842846948831942780155958757538120298885700872339959269893429081442909656240809468115286545907690527045649481123912657382026151402862718900482236311025712672094855897198797754482355163346271984601641831819636484696989843153544702911851509222607224800074222850321150258618635716131975795088376339754892863273358768008573130558904498769198447278925428904186758479546093146202554921856728839572273805097073546528866467240221062710590350838412077425882529776321862276313853637209674400325609047073583415592771010402735893782683073912763764721858512420788144806485744986138168535371021101818702441665307547260649310243705813390010115991585123324349825811246461998134740559556753136298942242158364264151812258590962714958962813083612821794242946873469562428649724169787025217390976153152831667334643048691798036202237892884611738367323491093364452847047995378062387665127924146034786003241795517303703364071283860529827061224170114660826162329138891265081717232779957288129783274003745216900263553794520426948681386262257131547053080846237755238046426466437350833333884900680701955363047789157936301078131156681672518909705087674385256912147547434838292077948123772145674182578594125215019856677408829318790309068040627377139399385658783828947916706624100270543434911203864652351969522438063416438869541732496889109916905561692833515194230386149324133829080653257603992436688438522909893056231471070782745512938026682004967715857217611879085930992801737934967406382129094254433306365408147185891686690205975201021768593841126023067556636386526372401588872646015512085910634725570814685822505027130875208611376107786368589758360206249911372924435562621577474239035365624706239588277122621242186667028820464663710611159705140320970933572519775330428968108328958333586407109627570330443733156783110192590399265115754582848354883059621949345026935408322894497144023797253605488142685417236907925730667515164207102583946412646954227902512494000480488864557500522712897018393459042338133343176194391405363362187802986074622761312657595831271523118366639279979220469507617537805932805526909042354114340781628812208929488806144123663866539781171219892525935036439217845852252763523164024196568202351076214254209626860382375945076014917372968331893035922005234159516260607334536542735767720199493067208196103822603318587449071193908289664659466726975887545416803475580566976054831115537288802084202945091405089728877643035250714661383604026952004987037042384669665847982630219839250269821396131787303543603766030157068220452152749279157824182007298078241843100878844445279600109318450154311008495811854226421978266181867033426015677475711619903772689753647373462346139231781781149211782400174515793419472910944805679231551723347155666066988904396196109226755595822341298617347984375507091316813976979609388358434101956254935064672257247448088739701471079396345071608482834507272928939995051665682716998823765137018364926111950996648911877659305372478955961081379729452161353860504728181802297534979143822464084584108435640230739223385414374529255894747171053857817805196837622242605605470293921063777561629072076825150444899662752714789717276938256828480886454203529012486104079523528543378072216283990877981461332613068066671668613070354579430110060368091731026743448278400616015797596635078118968860115054699587700156223283434182501076130892041649497691101496781791746138729025912853904092126365100774459771608384081602047735507217476088501880589229449642935539893888768028205330095914370998389565236995653978291967444076092196009143930566966145901960102172671010293338300893921991832049351730904965258868420295402977550633839052950025821629682979939261531208509707290261439903985722127946435348393445864329379314426033158802967994081228984577364672554793113505294823756849863141773199643701752178801279095299303990479528032052743375730339072386149928925545411634542175708173789255117468184729023228381581959899381745805849535944852724394676146444498848039334453994066470343273328137280751600557720352457883953916037768673064807365966545100009497881648543046722754375766580167240306908235250259497074956692470004118034537743925616619053786588542972544860567139770448374457671609466460298893145769093758659034862569002118738808055274702520553837244503297525654230781322464168484571003544865922051724990499943439968367417263479423356969386190923742502080920605418010085459756524888852085032542235682830628174272034676972336324538816554611133658368995822089224722035155334196198683462052988801244415699718312741965969929668964439476364207815649966578260752789665379271465592861433039727102400071572584712244345608007113238628366693588262258239403615505860846685290219529118432559679454850417652611175941787513517760810903945614502983242103895974516277978049123557010069403826970400183277039544554326082219177332940896257465124329919790951413731369007222176685717537373121350021125404550401104681662516933249917646825853179457323668003614637109174710722156195559001392108419209023189674444945610548926353038082609745858944880506118325762693711340724764511386027767002990550657981181069390764515410657366418588089504440433541027493874702685213370499965909716694963449079150845299092882612743661660549059681928169586048714163615053562399823835509377751179625247042793545755083371063211278981498624582865322264979196935429695949336421712738013616450547579852151263852610983908520149314010874553122239085030201788798731132979132340058224857467348123464312991929535385591905332946066804549867879239606343064819825674592142283617317697266679873427800373246533792902705033974172801296873453708199473589558993282430318510876525703531894252205415245257208547640287223695429226941667991165133034237252099656874933983606193501900599032643133764791218206175694406284111180424136260257592454384464251802451314469755157941718178674074623292043718703881780030626579897105543510167297600538109347478497140537853243480990496165565042438379486420727768389705913220412606324382884339542616671369263979203130754764617042341322880838684040052005160398836735545950963727356520503664790661135278677660345443201512786641837053739178447438885139274296239085209046031435130652301674915613235954526961742772091399783049154793241172658585402385558421529572952671946532965496261426237867697828179705492891523899955380675998179580978941659459089730058795341140330428574302582516750706675537072596163001096234282619848682882704924448522380893101117230191622565520654822327358131187852556666156997139160232872361852710709948288655731482067462211404886701584280360068368875110936061911113651429737911336778016129733826365121521349042717168223373904969872022393051496056909271789641790670166276592812453597757962307871056602243359612450869942784665315537602599794794717408542335642568076791949977209286985934321404652788988789346012421108462793977017738376759585496078521675922992075439623266722047116299071792883046135149494290188605089329573986992288615996964773681588989276252890497124013037955292743179445046654577239066431540989990502844139977786662347401772309724844226819624345874736070067136510754431604237407717791003722489448901948176224860522291215466842604002090333382860971731096276005487864247963298849154753168384765184815411879936044205139504001764918256529877796913269125047487002124042078592598674185025024530275074227581601132367413367210618675141786248693400366136885721331093694289496734122060381297560059980310156801564304244456472282448631711650986097915699194803502915853761483590319549289437328950532437135210246132660088122747464232157962863147955085879161359679896658566518977527806946067204787643255000938274081611756932089782854165815797876043031964073889468232508992999675562444970891212786591408166509362864021337367233687974449867136937743259507908610123868733735862783013185611655534304814114227645324244274264172229700434333719621794554209645362126815786384411775455230633077436515774127361827704868166842852802157206886861212676855644447406941487675810121743783384230029133057944789714687276480946150729299636474137581416202455266164078434373456591336075133259014751916507641150786562254632365208913188366037040950526542470225405228306489058145677542252124505143250698622457969781314232820962370943726672852751047789214086183450323394428592204653533060771115212252557644791329920463588186303819480863077512728573364128929158497650457050045904236993012376124348113640226804709717874901973061902365380177613684512576302148936752361508611759698344123844762622384198935966728715667955857414517645290626275475817080395102960128336309738586452410887557314740592387915942977321390549026013730001018985091012413710661216294413535930952239584230611316239366732993613524642124820485942010150198164113186011066882828877507325741318881888356659080253114618320662989961157064292998919127282363280031824268286590506842311688507673368288343630851071902307785536665048002324730675432141176168657550520605504682082845293133155024716769521911013605213662821121871671008025299882627270771362618653045282759756946301844033484902365576616095519268843694929439927099232170746060276873782436591062216791657113660852876272633029398750305887549384066456243238750155184845300049803872495292972209382386142816106389768668769028634322004108274464430738122238546042840070913465087861712078005685662421891148037296211425445963091433285073016430893121718190330864589446023771675588386490536741919698795866891112174519861625156617441949683933086297209683283188180659935644157197599130800985544927781610284440446433972887336825164919808398580932145952853135304112718431637148146753359452965821119646236050974781058785553878997244328628670748317464468871605613274405770924291744936736796818812903297460905077076264864932300426299402378181591724492728589058492868498126881943747343558314208706185549662708955760832251774813504752063267216268421814876780429439238233653972355899351761598051588864249822261312294926024696025263050525181101288541549094975606548814061502244928417942082797512305750814167158746445490435191980556151732216742645280789174134876311875257830709659564856276034317147709426587541174708971415266117860227319896841305761834096504494700906407555132805621924072751501200403048745948260575066933949018128404915238860864906791826093802873493408500469272184824192803579105705762651745272770860103518465993759090360088953953823780110824981992557988866954025070345189426428506428051295246784316597238068298296163698395817584536766484938911411287740575270169564966882232138034705345122861032515494541256115182631259321250314335296025711681001042319238172592689144759565289953581346774154902987708228540441951852421305226355603807847076293697672627930758621018275320991341416028874953990445723924401602234633313902189279375691122484157166657186673686318763196393339055698834633880709289573315793146266590389306688080965889520936180550792162584502325890199465187301874933347890958349847454112390522016706457181619714812789036738015502264541987138571466814647705321709312063505596419539925315888495186698682624883997098553454075681285755740258274552758306022050980424127257784717355154470168585118517345517182713095537650422100908404400445176276274137553473739278550168344617692192937026910077616850267356461006122858498330481050736987962657547759945511600356922074862720809341349673141307302051864059164532364366455723853168404094127908979120069244986700809183644175713327517800595352607626210779177746394584815178147671779160045252548038113111933944254695510908107710780652894889611738283605152856076850609307968775962641752583820428121202909568010205693309164010274881880422224948226897289244523083270660014273223144680788048657152090221630017890071755573605591461515536825454735890634138080301230550131875197689662330172252807544560465081600778483871185571001153720011016730377381192890798578481985967808521868672393680341024211824377780673320004662232627792150613408779349122224783335202724102980002205574171273356445013330608654150336337216614793495329338965411901809039379350751169403863071209145873550147461642067122579427722720913811004038028124170312564472276057550811703474754573882913057465092850055819273410214018395011808079626397915496838430708497080261660955844932764103384608009893234764321401380536647366942200082937781530218849550158231315607938988458048597978970104881594299177240181206930006116117667297027993006732478023662387273325014258504327311098545870540355409193717547366959311485877585279553932725047542057631222109049519804106100623620289287502815373834401187822604667655428898714400788695651318914682471486877031571144916607507346220544161717559544718256562286744814698795460461027687312183609608442794175724344685181664190575526387550940354359185602848205714177552306470728917819703144841949189230219617884840269573708880577595221193115400995602415189161341027722959954818833902440772680738159539083661154784044780454810369202613783153482569362407877028433028321843410204127370309455722315016283655390061635557420189025726975448024889997648010578015161719927357296151659194542489887352050361793904102612606645347637301488148795480536347054110819414573376007389994237073930575634063835822091587149358602973113461044472901839276179980093096578866303470500348333184236471224290772243360043126368389545713044261445259010059963285054822749847793341557531868776072372919791703189147918942762014837453863245545336434414124809682523514887567687215964718586997492685837349400289891294824299481931068991864455647861913608893569835193209552164817442413918524007511661096624668128173104269703114593594513402447349567032034409293698700103786399095901473972673077540550760815131883038820762529250533543809678013098752046852705993093518066059801997358571059743163246409652450471474711772424393608691471044995116725711175824787380991685315893522094632562290326228596383542634097182481088458243440411583999912757476788462841993000985666742531182737925859479125286673152558574303746652688859379060115117622896417163373036357344479108112986187993898257898526817022233561932330764326377426255502502182173292879102436790631146910321073145155225128935474770601704285777780473783105728626697994724913058691995420718819503555685700440631947955107641637670251484193285418207418551675902301278907167296627965679339870412828418695563998800196265866691731890427563321899712546792458976586242534987501115531744509253038573711749891891446931531133670329021748110357915807641287307983352476170689663305855262195316279719051662339731245467682416526345255259268117786267487365208063362518723775078312035034533086854449244638332729625424255034914564892413554869545678944741455794358788857734890185937393454802307827999397246923762029814469556158356107439647026666332829372493431107691972597047001377188072053007697175478834256958727014258602168193841932731511857355002772460294183724012806597830790351028182297464185937007151657188394343874599183014775779993804078407629849611749209853111074129099543761678931707065833116878021456776092462380947148644522047222876210175643092757287908783889205914564445484283593053742324717350125935699319523184513022322440725360182335876829190287682632337694593802163844670499615979573008641640203648981352352794644914211194572870947286957126530869349656674309612627522104811412114251225900805080511343881375855566606174108789002299444846017602793573135089016931706826010791771506025505542230252682023324833516478887593262609111465151960374525970029375396449909347621928462731539851076159882268759651124954728407824568451868904896513396204964973242683751003511771974620722118974796152398097495154944707885480806264238119966103897038373040324917169540783524729853197141746256762370619156856000609247032533391830491975071514600455617415597876269167551370367043171125855369090235461394180996791244814866874772138346732749483251508453019840372873452736729891440124365043032031392047411995511609856464401102326430471701614905072974184752253592130921739158831928999812974487972877156958031305397566664935625057748919582534536354019325005907698547030256064851348182797742561679676413877917282043917208059816549473526254658381101141733069009819777787837811783289850402801164888401761374061803679264821252604731530225613068061315321235575525803253644872245301236554948263543967458717035370027950533226807714335681820462495591205662029515922113098560642534110409757831870901913137428689060808784394971842550936952245180271210980574923059469141202357790952780694987098348538052767381950093481796263610945559242180614099493181298852352072569815470385239021457321275282843468410113415622348778117319389864633064873156135110696711943731865308575064706304017536359484872648331268674820345773013768870586609129410729880194455313334928105789113596654292973759460548855394404528037851398612686350229539494499335412430173303923894965661574536822564531279943102295550911603796029733305509172441961130246388468027048191067865406738702933674716497813996978066049474137518505070403162931255469235604467147386065144521020487153614174466975704210869842385656328051853353163332478686984037982175299375051069076417989138295412194369497976837798206087509371203965867794645025339007339938888039624669416581157100945658045045854441417320070747748700899846860921940795199653165954799838987705853279383398786990066258502521372356596591745250514737786562877540123657552506109976852564829386388544822905142690526656538419107994902960787146705444234247681927178558870279767323760599630911819174331347663099253202437713679065901332836297912854359787531953233035515853674918437537887595880616712528949268906059877111702147723552196319905870595770181228497505927293161283758025937220704554781350979898103120842814606051314563298286924956754815739705085015856897265281500084352550984804979888627166112288875085545031854831397237178859347834910771583933567226734258522050811215160791592242612410476623217418008236509061934111451629349369949023319542987137740075880304525924977805809868814132608310221790925157286483966306159737523285490209930981174217755351779781923129083264405599651852078137530166544480547811034557046492858107980589559202402663888940851774721286825020048477639126810622097484160262162277643989288780895934503316725662913654999186003417977969156899340377629211815370427917492794504798555490131385445538773433783337293722003911568674397017470376649042019506101584812203402036037513247263808376607798602574058285816799883956507066172403534446857504596317894563026610910331333464063060035743008359540139138414815882924697921526064624563230525677513118597512444366056928011638519585743931431831817332127339252801353404688554234709652365906120921088198373494254428424998944147415228132551367852338217726040624452620495102585993863502732564006749303318666498343783216675801313801060987706741019144270089594621628824860579130375555548009551412658602749211569354751825992344458859272177390372369727300894962297900364302430684731919383191886499593188237956708801789512164158407791690534145515518169181754731009237035961691683084779400160332423305407129797997848521831228928827657561821758814747208125071783807353752252708445674901144422774309563253511532094715870890627181886905048373875346583066340705093946815981111657538289483181032753804382023591938433994992961358471052121325509994576637250476395116026278474930313447342612220337823005116306181371004099179397056767637809542452079648912755216868385812388288298499455432752288876087915824489161509397854996044049232385776008363787263726117076682174754841044724252480429358381914932098108229976953379554798879270402116524446110842224916134566283609894541763322163808270180912484257890918260637066634194942040455334781358290362006915839468948179111747338494742673691625592601564317587522455537102191854014588249399626468693890387062104405755925196201744909831134034387698474482414440081508969669796682283162997636847742558491178614236157809388875047529147286087243267079184272669413265611697627880476533125850750985981639855982947843158317987108988418317457218673104303016230018213287538095495271367585001353155941428935970821473679949663022273554341519113588380717612441433753801628179796274748761069550575166888547107688787340156559904596384357877799208381582797903002758047106856215614157744262832176207907031706741546654771595415113949293337287093372863578509716926764867265777924711743955359555095631738945641786706804167224454821548678313081470840844643976857689454263186928974184288519974596899870614291991363490159412374542314915295327045681632045331191629198019750023386603195202671676025879854646145517475163921136951206603697670592448022731371669479435911002403251811464926881730238864507601351163157098742113452723898598350083468227019759266380515869194970384524351486116046233796840717560447290378627421668681421037683113698282940113283585102600558724577093701030608195031469432403315326748981499133083682637358899602159978671119038276453685295824972571656999895802296874856331790517408726095172713345349198358475820804482998873201403012727378714508461707474284929901735144703394290347529456585961152995956610523445599546176041180162849463524288332617570527040524013812223643691672475640084276815463369403158090854766464958189099310604122144585476133060225935580581793630224782321939946382969883307136825473930221657980479421197990800873726143648136683964980446199608981635985583690072322543058732407191009673240603153749654517116439717467872169162884826787807604069041518704745058843989029209018930622247864673156556309070943646148470427581488820488651689813546273994266676670985909743660433169150821110304933326013552778491625506802163810331778013708105025459034303707647121770256345203226469973420407804033146885186307549426874052883472618226175350458915060224010872689277342723784860060900729193407113795249041325202146166422106675077086495534976806546344402012079702015132963722241240442818055636707940237661652890265249961151433410502489540298311619312372346128807196591726669733921792348017997628900687030448786723718269604836651922596872435278453613253151572790384030468046303870515245858679181870337714963656253925384234687166795816318755031204251708129268490100334805905215375450964472814479703489138319204022137092997824780334113156926504910401976140761065290401418969025487400878994511546734247270891801142430351626619510229932224855554973824956878115999572107392312849525982337297805308007661902719776674959237695620715428966885585634683934981955049754663700937047192039303127145061553238325794053873530218568636800826975947994546246805618952962495652554069253501007938841339246088239524725091825477057831325333898524322060676423565274212953353267259190340614965575888070801146592458808045890408447763481628624195537915926049218065803370962644062767184652821847956110562369473571491932816496183507427441620257772494003561032237671359449976797439342455133171778591696956164772228624224227987530999440543478144771497703897518760261348117395869030526679817551209797381223635485951823194347832845812568631035361968443166551368168756991061738528801057034791280724100210510315414746037965695023871953460964244636120793162569576870262689579240348289297332130971228116689279968676524777228394531305531163879804574885788770356480069858344872415088785852982228568022992983070235191970506729259377835409734154555749289232408816582648315177601219011735300115321057361668537915305821130009544441117265276021099461592843375688869374890851316681685688573369734578205066832529996915942521263604164397005843441504520585171818712931172254241918418513976403539311146051341055601443649480051976846212953156959690254620888790570296314888878974099873599050283854458226377747301500413303263506908215044582903055714670141655848919964079818317415168682127218367737855953160982450232255780720531246741400056347867085646497290641394085220676643754061698950945405403736890582420015492211719696848976556523041776540397856761450010398185407893766335180246397277935099004956724366597695790464814971721522530322505880612029041019114978716624653814472649693127523933530617007107242111736764323321879088612060653740478799109818646741038883153579561689573756247885393440447837695595155041258297944494071577501379189660115459626958206141533496227566619359759769098870837641496519965796123614961102845934033880735372442423518451713020369413485149901174376440973624261722491520029095115712869283517615101643375452864639826066945597942010858542484670019128361800643276672640532465153846547841625409549088082720937326758798233317916953440530116027926663152558499241157913604715090413577960401563356361143273533898381255745336313426429412184055178729720514268942411502693784804650593698508315933298546709031197136205151389276435166186000538749540840973398585620494839945103374303218144643617693447440860964745436392198593838348721900066110785585183961227457383387096201346365305907199966146155959671793976110731711303594442513293199910115031765701131135587993851711853303776825985256996710164248097346271204205259782226199845006698556924271635361788448930016688894642583915119251967523750885984371376529727407287488550741006739835125862054209280988958786789774502426699028667902972690324202551244780800208131373114971549760289682246696393191271494921608885169470096951536513283087293726372686064163513653513681224323516407166338450686467126604370174577917852560689699213092818766869221241849788212392553542880160317032257026642085574913270954318932004793984508201299252652528327078763579939396508109076301105805514368267116142060007088391473061933337790372446591479773739931917694778018373252330532603220502783325314931303412130088604488252905650934422365784381480887738381882931378979981138130018133360235155280788492339758986284237533949381054692421072656728600224520753447984863311129745457670834744376820500874885755257813195545508528186361031293984852668971755501240259100131293004018584455469237793077735041349874280325646149825807969933347528155529352315719521742757908606283799484632547822305469643423224720238847482862198929845190827430297165580803331478437263518293568537468114794901088415794948727727469929992865948112389035342650646406024864700107146006235709794974578270064210550689869076034286671917230486380424149562907658320933492584131956896717957786705709094887986669184240873981543844508128956506443739835742661180077635624754422327529536392404062034432459891516127681679868021714594489189591033936471528255008177673333974905855537324552737036433575031692592951665777240870099185739732737682872371908470927393119050458248764892651434723423235070329973378276861404322217299434290125280999826355666206503654894032474401912823328520928682964235821591556151421981926593304131122649400692392536296453654984095592769096328524303202562662395365568098013201195014282595237577712494805017466805731066110773936149716934667436129142511819616990406082670869193387983703024203996177712989013090959029461426331119358455139331280113520920062501452271523582438354491076298888156157411799101399070480949683782567888731303442892197676160714311880784865993293696759909124878232525722773728252662428373004175343426483948295556545093669094379718962776309615810113465137005613589502600396771559722934317619227068584042708835386680761893558794836887378101305548550229779256993334459430141908961428602025803256314209798709390826132011978996970529903809576827413829469260834689970912046979371190345489874660394972921831031277327704170720308674177286995920179881176237171802889061494770892762010289891626960636209432895383751026520842245446765580226508038397945030010967326238716190774975730927560295510910798633282293712700807028324132751936256128091935338742342384059777982040556962433115278294897921724744902924793523704574000897555382268803565150908599176331241081515757874227397820489687229432175789512831283516203305508964980630026465340508030028580807441207131136237313503046375995726007566728523620462550339711841332898063907489972369247583224540032117102394474479034108355006465739433261351008528478173173245187106597079230711891699257759769412848456576660495342333756660339446952714110436394061604620778446156902780242221325593421239897981751392339176285929379013385288429795065038652315687193964426939034246849582712350001076761761632642982749756374667882531727932501101450595848767874176484373853972899611011370315239398088174292237113530897356634671148790772852638740459711995892037371950969152257847461422142179500940476121460932939718110706508490116145200868815130929608577300626009992987377094888799463722409184801034748864114774617546745930159469934696448347088486549984159946953120109231503520977072423073058074723835585179229644814523653333674159349505187528449966874934663794419280354133202112152109386656940821030133209117685481002239399170986683328255326990737843183594836305578225215132428201375251308595638503536066196140980293366632111400016267012461037032176047653964937937829470646043799632416749856700534189958979052798736501209383903624893384557732238016894054593247107145251082183676331307330744092335075731707878221294788520175890905624591943292802702651023318519135357126972727123266342616646432044598373637412035873427260235924161926948467481386451712784318779644531595225918922350811941432292960119981986578938750329072257734033378099872532761314957565853551077794552522366083559294065488459821447597282324804882748729952125670971343956836435756759210195318747272340637154078981045349750789441845413406885425973160738114139404778417451173282781908623288571548661141418741538229666769841737855510718718696261325950710900568447733712259494458771083336859670951441187358869761030947873522839230497214611619681366864299275099061157139647107254579151894188084976188212490130782113633559027417620779846533840159742336882983360574380356720373994705482695263754154170454447607206239553916020385537106825797134859198652551291870687551615496834634252544951085353192575321753492635085222055947011072510045617980303704206873432806530467202702949583736456031482740709492978553722923064304850032392047399082358766133983985681352155095488051783679394724887594553250647025416336618262552189318576721480558685153748731563960589646319863842773825150805008055060242149915587671927525832905392993858792184291867225434885955451780410203451808721436122829321662402639621327329930451203649954281041720908198708701489576344740225327878436270210412154356594008268631948321148334432825084813503994306026207289963420696738938551892969095052706445540986112552960296616513638423516933950351195735996839538922981514391482667884303610025540245987078650878474645021569574483643840022149499051590468791226911174880549720021389026625842324265856346841447943051516116768173853185616826428521815336983769760119676394147474138727439379647442742450370881813203613264284916622687403922418818272745362149824746877844872460529734805467258929015808821552035658665795541536515772019749771268620031538874988066280213137412297356573357547070017505749330732416498882954837339108484500082768840405530542140421699343445215663579802301312680506616157332068095188054536384198304239295417056430241535759792654744487578139943840141810311102741208556365497475353324394445351432980530843652211154840351527663212808239627841768362052272453124017284204789257150117082478020710806924619093375215960125727962259565485443234538582078681263572074164830962968869812636842340311170524397273752312951369075239030520042735288349177799766898949479100718865533968074902741532302201249717302666831083807868599781286549976234241018521901935079459871699122395216261314584604144660172972973296986862843912483495190312107368158136041101828603628689864349258903042963130021271504114206605150709051716233240281372970349189111165315226815483681429077301292783343945478013417372196941678653214000440954876359904589373831776813992863187965090178932664094862692762756784039778435371454737649212753908952681057611052918002441204099634329198156610810822342497420029981160111822394561780222515437695983146097785796362099725217176323911920480116623078856752576933480578276059829230979292834128900373332270870053493168545324105030397444369782004898114146324124557930193466388101183940150177376999599438669958886473964704713717818864584415458180009253371198306145574655057151012510786036582637644799383223704128199653274064006600378218135095928494390668631456612179491812497079802906749391437773804536161366266352672769336419220121187811728736487385319990649771047757853523380096324190790381306016446178786471211089154764597315837053515596095068472184584594905445176992528510547201295714352902687285862864913642614156544381900939996323141978115254457283646940223444411337160155346640025309472880062785749538205653529750030023855345247156886603438157831359056393747407747098967300879644761540337636661169708396514284816492270614240343753777495346329870095278311571618471889108111274561331271961249422663776498747471158994819851803574212022272826143237428862606504724521066332510468681571005202728325705546645793745104035505511922834903134536755155772828599349363226101823578257809411955445158246499720654888712677662842157008323417272150272813202238692519242403047970454397214530503805348680628631273723747563320495589767058558493499238770348870725236904795583604492118233313664491759661324508326357016058123159658917981213257565635141349210373404309396926956385204195547527580784736521453818764978783495399592638256955540799235171559418898146082368443738814849325030879722026897699256486121193902698350747105408802264016149510706283874671212032642701046779495500878321568093510557388318844061784353708761511438397424324540050719726994881873214304669694146116099915005577456079475071007900175194549513345968566358487750048371235851434885093495197589245100469384632627071840594137560576611990212786189683077129689183014961353700745400436572558903430410687130888342663978655645083011709220454852729130227429420811820143235685519170052337995420539354871869766247579172889128952498810016333507731988207496925085437999132759643076216838946314726897842538230505493050886488692087330937740647609279726792232423463260873475907497850395101026474324104910184989677856447198951360520456777695730228803466254349545436307994315265757686889894252172325011188158195816016775939873531442583497837136285311610286414618046806502279234817793748540538547368482958272691495576551118482521232211653858002710188637253344862790849043460959251178309724735350996620592951760293368991830029262620139807758382212928453238481720037771494102121286689014314610682485371015439796343480842957598431806682917618740083341260494578158069018124772648145188274832215153836748771582237428342044413109734736610741475572135447221822643611803781667745293102286331471448421831029187219058832621830837154411386460589010046066524997992185371557711683821081894538671677939636945065052406993575703464706096176169362801564427688410196519552514102866393659894127757781500975064614561385330718131536459230675147882077379671647293022359767323111514412928786165948688774173898659948046879421025449090320373010787436437605625798100066118692828839792842835850721971783158510323847574497680225056991854835227989684454218782493262968015505771506134146945109277498239677440545111526821138828682660604865044752721033379075888324375199502940432973017614532066266750606505456480688418714512141216288917449054421752094796449655170607470489886541955426871127560219937656862091985116639474393506184865969229787347382817324616035682439551999322339929648967134572268557798698185693514706066049796864842683758768216641843371445857900543029602249309213056198552929318075297006390543595168146315996271261552978096964920772605225253312688146616196148016819443030756116713965738003598626969410478636071766424022464637213151811594918936812026843526250560722504053495690291518680863563645554666171447231278325623308060138330511383124383358411655470077271146719016035060630255687181947883691558670175072304238480873666580278774010582492102602973202852438341350929904580114843050920880276002446240581580176106674174301397901693847750295204420121489085647429736692831533979065970180484909739104121106688095730448477772189383122678502706532365116624531845301650106102528706546241213913938257467929920040110265511523133009324509775354994701925949646596306387420140284547205634033460495932005640053928036149376259904753889796792955183330544839104178323041587561918260327829073946212553511722487709530355865899566467561610364307557930396610237373328247304465856480822011463056078743562428690384138113154629729305386945934812105398825478820674845936670666551547855073010427794081168395241856321219419323415462989358509584981075038392521949436650954252920891935258528370512445440501473467001466231097912880273926423544026179901119154618567867100058312032176588405584005076230821593705098086835835859542114100428709256098972699697848010080473136812674481340278514760549675005457650065522450936125390747444669458735802996560145345482969153029787537817160654260796095290520136986887929832714137769619651515258651055828917896328478457049751284364082889375585376539943683652700220387775981167440685438531430250436708106469047168664763919502601065633629840804088846110747340992180232890720932021758759984225940713892098303220239621585233255467699002663824022566153695015526672573952705122809285304882413111902245355378424217389889191978544522240419370267027076839101466521468048359270247369305704230720808601399679038835116495491279451064291765143421170781385967202552600893054719755919659388115678798115290259967992680056123085457094412240001739502588241346876886635031238238513403613779450452586897718208999894838072005979529318416998209772063959538128383873262674552441323923360207264586426340545988810526031507256622132378084305788080447120889610681137592722261633683165308222504362189632382588879189495603112187744152934803003511974765021127636038318797705450745007277757213121936658382202089505502763691804015467033338015801725663173166574341865060313040017507869893455951241772812477749593501160215804753769092963773902125204528610529275042008255156855319511228119503043427675201502618764796960202615043964792335362453922127843248676835867375515699577800703551775296722619360729828965598787619426365895955087556278652844128665203173792786466941391952772621349993440998762265193738407199328106138791313108044678670841689477288740310106607870027110574563476133700697696336434418916366317567758110238057663878872585594318675036986196283918414163340742989144730549099556614533713441375463968443405987889399517798137228180691540130007379948544585565265240035398156938086523857868173966409097226427397784745826455289981454704851875681083438830887073888704476193874335734382481739012586225352179556017757268743390237233175443743038861323432940588251684294745268618362877837296660730537394540755087354305580594314292934517437142473415446227114712160984703694088289319172480871416173851128663460570728655202740953577287474052339918802813809438369938405452457764845613161979874445635898068650198379885158856424329319124956305760974306022154795216158635105102525777552907534675329564229882762299164705922296598132230298532239896097067803458052385017365452048487246527045478835946991910254091331582745504917937814787690796652864772854108479684474800519096090891826615342063400510060362451318403428199339195037408115642213665991390713628181548864872716226567139632517342150364565920853013343501131202533104826975913836793418669219913829387844203757688889191885610631794665481789627167305929640029923009469462831094160472522954879374131341817974432041609215256193414594572883520019239366549169358949412502782125153845809684423244647473432746549047417800357623592260038293838242330058415150362661883458369269923333620287318463910420711291110806232675431810907761530108797721816810116322612761730385667027144985040696306642098631565695044949293632996235442306752905575548083182396728423468790317921627569233515319867993865972195882645639575584654565277998900142073477290966056989354160233853074154123104207493571413062426801896735095223273599577552727240066443746897580804452040153629540899428935855017131372655466749726024313009460741030685727694735782228121597098692290201440935688395648597136654215030174070882434257611099159217788916045603142537971486019650092660952125104551175848619166477305033315527311119052049753782837092269546827860578337390101906783503299093669529485887870641785991480084982710047319586012733319700161745510415995347621451058377771652982336391851345962835897015907279611261579729795763490924672040387902599245513542885829518694878675058936150139597232825618030594932632189098727349884514003752981653547224161586779616992764037561114453854179485831588420940840067829102571176114475128234403888759338686583278014815194561402756040054574506349708569612573484830849720080067229863362559560402553896033467726493513563791975301998630705235743962955182013329479860604952789686472324680295410189157658723839303981907072057029900224318318165859984020413281916826572669144191918544229149077199734324623896319666935758939059878881960636249376512201883715158913588610431262291385250611277135700530984857793842968404365893105323475449203353899258120490640199582304244408920077163694262041758595034861376873370161779036694618031648626537200849593477244861256342311871409690944003560802872543252888966054203898342455487694765684667084653691446294253326190739232660449270240775896590791833255009554719515046803833597524687613664981584331114945641875354757194513341527117130071599143270353334601306328373143229709644487312438742821168869628039203618896991087433506602704012584196226925264859625754131476018689701856393845869912018557736977856222900537639616111467912807314235961901522499673290515266505467077133845355233637177783865552809071203117612744647646797848790666691905430349042108461775722395700691632090996453531091146779004562330412535892691362965101367499460068936023136267453162628941396181025481535349942072058455864937940654708366881676707835974382404368202313007620968547737967908643101311120564249120838026496644119702962768899449974572480067256400147746134115718349671891810316116926626447421362901821413012726981017346642933933734358494352705559543340918695633197968685537604150563765785589510358500065552437510176479961878144858741910446325621909002590238813919977545617007018548363962285467761860977629407055338530540934065832608126248927487794070452650508745606352806470464493153416799783057873526894048414711508239468063794697793833735411373153505778566994076025875738030444252099471091912721461462597894003891319092783013261916481150302240872697298035219116337712223945312530215479046787604186850399656055631156814402288644296071789498281573331122141862710422336505061446439958710145290263647092401406728584660039610468514766723709534218504312053120507247495114733940477206793781442812980603971590224183046795473350693818680568582958890728022326169574202044062050552314454352681834959824380452269766118709893095710189705043151256160993713771793955063953360841519517342042529930316475647724348074851934226395460412185833952699868484343195715948824968770650358806715883200043618878645359089599413349437579977840864045916850686033001324364179878651120456401505905479138016311114625970903572951697566485439329316530431564291257879694023328898757276942023677563959412026983468957457978810947346873259122395619073321692369860729783885236508627386876133455416256903307225219346266188682501977543132947242037710187328515067942686031899589940756541175690537762195090827732863283810047891076606677121783286406383959724123216898491644263136575350399695932167338506238890902873598597087981309865608793208897036255964301609373276718782751418623140771232913692861367245394354076767261304209597464093969073503178699365817920698728751846616681858109838522464145342814888983032943685982015017329096032588528458731895735792182470826719358993615421750914230454668509364165515324541596925063063885524595518634953404234985779179980402299941754727127780477463965038322117786659583802086225000670573822783035098090590477049104426691765106518590430543792271001422006604461644372106644143529729737424047163840743492701437962726377999864077031059081183779322735541884556187293182574965318753341915199062619313486156639723731928570996493614441965240972879658463786163559413547327854488095196010807742711823326445821802914018343727928639058388016668122048993146151632732835088014750962526472171027189316513169776569651532390946679749978913640688762345727718740371977173573022684008723180349667039111869998593166487759440979819703563083869146278281694948210622908119374215460996032453815649298741587360850914984091129929360611582895603567059923053712808228166979352283302350336910699788854938771879187154469855837401333562594608107003546908094703654028839743802953465541508990191077760977957806330127466236954092681170836551828713211560966140461169063680074633133017628871551578397430530714339708098757002039951922204284398411526284562690686348365061106108071813416521330343353185816485651390869940127890110028248503338982975117663460029848090677143223765998214813963494919112869871595181616484480921614937595686978859626432719767784138821018461889617825261758170758360264339122751598946400760264344755685068098388916283258059851058267147135439512429643485493222758655234675954492195377752379072260457490360308864367304895795787230374146747480450475913131087832839459711260399727803312205874911390323650780271616948139432047326164278838417145239824138753485239034212979467275101192195070621910415766825038121721228316787772821051974213797298549142366837207471885809340404335308360947973431271734208560220322880559544263637365373092423312925644387216864492013412054297159604388878601367770019826720228439272211244965902572843231482851245944161459401527865193876801380507813140713778793611066754575097492140706012681678927942795033885863325503930734209156548575870327903428399132015186188182241100754223763638930013344909441600890473300225574917115572610178470406307261926245518854806979970113066573499004438087908312433167039057484147822236596794127852659738708474286183976263389661053434205619562140815896471952997863400778791245197031175880792556042732374067931377084660936778522085988666293260826737811722178904113233424940019706199375852942552061266987187671605344750320671026832957897813045046051380353189276595049437804583738558619827961163585265800798318987743909910766222952517730944326993074680430299885268240075722243115150521213501384654364659993314840590843965947145970610746484994413284614524784183274138813711859673807053705608257858462815489661954447309893927301509165143180643462607774372098556863991721366912882135307520390094586292277924079780121554036081082407437446583537094916369880489716376239943966702378801182365217538091929365792151655396188900929092178879681172010917158270373913184223312322365004135575451068147674656295201776723941748139150432628135768412173262676155622648881851304046488676269593760838446313540999645983408262980521465860734472173916619780363884424999642798271988330658593353452440133487959082713109964790768543001945762598476919272043739307970338988743500936953745455438204205137946548387356911699296330577962133091321111990657034713536661571198540907428179114700436395893786618528890880542986341049802987686299067478145713115634022638029238282046694329937727377504913209698523997567614849513655889614069071307731113213311023377186539806960548716438841913701989519642978699965965148081170587474479822458711745168013225209149401949753529148257524386443423094621185203363736579960127399257165630570609341216559952417872849188356623377737104448848420319707914363627647062259313067396659527882318574514296708266016883193097406257436792201391808008335648671821319056879926636825528603795503779504099476904674023086702927785170337606010254039977405401047896815457482846446943690105712537322827541226426204678835037555645203808199383403925156862745362043971860579695583031262726558847582387535319062828719739076568291724847316046874962148755151603731071896671549632188182263526488268372734817550027189191783062851069869185341232027880391762249533467428197466057347662004638357276546162637545188821494393898931698601880980533158961680261749203842953422185638806582215198063963412233814278716717811151419551460920598091009082547054636677803429928009196377717689846673251076197461501618763497278914383440079994509177355058187817606629575265105577859024907747601640075492277170932310226715005350568555866393556160449381669420774563563530903163068328343952188536521809281186467010912473051798255747613950325107782881016925083907626166433405565484864631406733385147929315192223960357034709582424492097121288992405388305868710024407004237231863811463886074859923564350102317696821477836198490505197968745217200221620452275315596450864005651147860388811297437431609600111262208183462307067619094189773249553126178415351042580562729650792671904560049532664121096847881495960852520003408215831665117807929245484939808325104623727747467196627617892662593058702746209616581310942056791207230292040129999296854950151315510413265268238412179354719987537225718299060117825178780527486416016903895819674238764552909890885932560068269406824365668670628487872468659028190359984245165563653661669515239007117942258758910336276739143179147488067074318899081857132796752575716129717958592935153932965236274962864751800966873417753915857294931367258089963801711349582929760195860880623764289588632781326840737515565880387006133539394249210831182686899187507816767297211924033524748931402566908965398426172671124535567087635998385968921225362554097534442339890917002216566830707861293780204176795770004226093935383206565055028689818145631087395207038499067055569276745893558954012389894428557765874852790510236223417032583962650967301330477175573627621103038387094603604221758715223237706777418792750049408592824817285662321939314815778469722044185067878008671492911890339483741521626408543806992362147899641714268685596728838281139296003133143856463577333751154695274320938274700446641785693568648051514801463855399881953238069108342650834622585536213593274688292750400279140789999452983657758448465606974522371495513478637068480268388218646597473965087318887780109015012595250472184644753637372969662563281779937683882572314901726238868200014095822191867524257716158028228072449879278010119508534630215769988357455253160141778106660261915884663837560405259833096944362800493169734675505178015856132267534686749066439959382828229077970447163948092283883664017449591688097803982146824930808874688885183397241210419682062124735313692364221168764770470783295882477409108999060898295562349509102235285605356098193405957536434783432485807487143202630106577948126505253084724523412033277991787457416130652007943572639169839366060812513648406171106839570069152650080986148939576438127438330664347676818311594467108718907121138654359560356054216382962193361267328188137698835678360415172421335494971934377525592828564141667042826941705881194015162839392407631158900740654286980863028901993677307395056231843870671950136704449945426381958261315482260828566426738656050521163637621489608827310956854573601717832792128856362150743744555869017687164548789156881149906889931097260071921956949065188713410493302075706565103282580064018638682274256259526622153989764430783263427542527762343585756930490960011803906191392513280739578686559486136761082949796325862312256235978020816186540884922879627698103776723503897175575051388525269527668536730806466379384646993903800546428347597583607971990664247018021636102046854854654350106855951381141094026653424333413400792081144747609461632346653110613950584079074461337655163239653978107168812342954444225166342943759028977481475607752623758003299259137636347129547137736659974305990682184191989232900807266838700586025866949401442974019278633659866338786718522625525571480130399545767253511811727876348037349780228947414496938248748785444536426795243522934688597532461836018052307181897960517446314573757813158493958594635400536969699606051381361178128339142754594937637264276921255186219555749939290039818253623339030898814287403759033350514995202386495645428400852238885262148188872591824318373255048205427194499433095291992337554675731040481766690727929192690754662456085377893870369616585807438728182280366860464941383247554978258249853119215590902564013636910180432366532622536702027667897354500526627657212008065555066052206042152857534406568566102194859479312460857484316953664322134029502750439174414240608067766688388453376252778356315889878617308010679770742028760278313488363674303440317962673746353066843683534672780651330844639559137366124640621406724745219983094175421705987396106615089528394321720215333607814944502095824062682549762198270816842156848752545779511672538282536907213537758992433121377213358750405478786005296111286272911720709481553474716861753417755353387510226803265768919154287682690970621755757406598895866042509225553218675194388308332615767776395387282767455450602924064649610341304546116112659605773759922629793046624746062635244349182999276368057277100248350281730335644236596548561336844822279997402037275366599361363458237392988162171192598144600563208972129539963107604551827299786843544268827910362384742351596042223708623378439078944549940988746537814239832409870890893878981267686978748601190191781325038076273711713801780896642954024830374756517862328274612169856650490952710107827867855775419351385401612074810263936903803180994953823847152279015120522432626175141968595248743963889573903123001409380401431509217572445307490137059743392096449611131476950628252959286264149570467009142112736063756257392909261181225068327074247446990467933534511963453258811169927554991106087452577760844283510019599428748646343797077490698576234181775886191277871326876003205869432856784369409448184697152598208365909646991243127946295853148415371250331374387187915352167940782964868474010625171585489509038151436403794943588948496054834846438644705989230629763157936487130557447754946614348654618041633113104550840307659538103143892929066739964124009634989964578936309269667516559023571545119886519560958092598183027334292304412665552952202552365700057979102431910979541015555238172568765161642744727068778737027442717746092918684766598199482728462692426034357479068187588104697129311851310409659483710041144364756644374798403160088732000894535506896910013216136524975653431274467498282793333021666377155593381516776571010650524591824021702279945842743570304780635889724800676002744200197646312838787846061080739532618244434409614224399834810902540555341462202355535308739739682939353257171637483064148719031987203532863662804996647707724800008778774189528891786810892150122872958002087031536739221301133135759867655194441248325252588593674023924472690996765235349325545266315478600855391459057056684078935137639988734445201347225231780416206366658318439537557625306442665604577969894483439575646318970660819052943618982233320810516520851232436354975433820655793980288810440977559466010210655003999669225821357615568570587239384886040740509219621477574335516970941492334814741148269269270791749118370673910354008171917015497389945859847052061863144847081541520779378382001950026510185211921996600092228961117897705977263314260387473198532696723650873966708061607551032953518941606709377524924555068586809227014084866148117872523902415177362085585198972516323788157271984875165167680799881572237976504904410680910673042615308415135966279401704995362595751539588743210097892212178137307701603038575661849317733353309809648721869085414065676435748675394421396339560561319089127421301357706260463639239391214641081514858442891302990206024883596687102285053173971785549659165735157968790938503498544001584980445920911197088460376349579404513824889181870626962120590291530732348101992598000198126397175096872708717632359266928997932031574035863086564876102322401762136751981029937351542037047346620924799893223910332117470297275152858212975641532945492354575738740351538169222361063343054027772924999134329626600643189382418096241868109368551490181180635992181855176210212518127575263628323035832967712026820502302761852930850214630860689941625085681950717073302922074239995232179005978448246227453367816076824697563581456940586172710748641764274727579310200400591311801794138753656632634434093800594389087688608575673339108612724480415137086842404554532746419297692855435211124537519904337867401859741208148191365017129082227024789085979459347268047786270373191094305660336872590937377134506907639757206145206670477699208313997668302308575029378875403758813565505973390244249337708279839615213955051752502174074328509278028736382054683447144883921089558896064579503967279682578773670317363468195058990070081951168336302191361230557731177728263109203646597287974627143904128320816429110472027684393237201020644961216007369221252895810723546516734457185683460399276097603151482655418427894789392478384645328682582485663647068250984029196903958947917888923568795891014528316676868597059737201216859672610790137102359160506040256509240166949102246728130564651330289245792943646046364750081853677666524464584298191899234037465383687976290835450833388329428086471890299390378517429846827935706867969423546510843238796147976482963813566613937490666541259291720213093940253106715875136199808604086319499934370621356564500053031394102647735423988486908759139530800436688780268655221982705442768625863472981863366377373549130567059831274264792148695126206353594470512803118547857851485927057762684259907349552136696945113448982668396578513083452145477358250486187600303100164302648576289622649264627549140786275017272177574779377117281703961259221170778996057502469943203959806659170108580188383836305088640888169353883620728831868791433173230954588488559554173955678185581069612165580809925398264628389361881545741490215806662692378912736016232524623994168744655081892675172004618825960675784212436305281170804430632918369124022747075774715260390521885783375820762666772048337523623876826571286246878268093432318597393797532912615722460669566008412105554383932964979161285496099145843868818739683667587041499630864231670623776610866507099810946271111389551316588327859260587438342289341810132595175541052144702558433633775007362007102842309918375895539483339859715235664868801626073491221133072206547507930512408160987389527190560066370660811111263370787665811848195988744022497331543681448555977469323162255822328988020352386793583815925422592257179157678156362909399124180073587350824580144771301343220401531439122642866539821543904844462311452537753327416702567129665105926704567072406882821104565352755535477945194502046587268771426910376675149819841657716883365795845779570024111640843385561897560372227202496406361030113808576750850556851916461758091991573187578354285249725664273955786525720329543686808958684726839256889004649091992522118486280950625422020389833353080017766262759953059949226561222372102599056491666767888678321084166975834647357195537443256389081267051582464214092570593625694763740572181899171741798087485975156867534081981276336041380334717381779064834395616798771015851536631004759717286330313668870188747766860353662600554926630216546110596787393435622352554399357938600273164725929207348336900474584088519025061577843582717026880910853246397299143470212498285280481652195532611490465441192961478547461482932169955304779896512725397106741813363396202665319337144366481741786997701674982605905963020069162548784052119575629168420728218727919945514351874689642125232329541692578503581659919125419073475194037392193964790922472479459029924997836246179976406585450970392631927530024247174303980931564968412751330307575946732501897439197796692348301379913294983249152149685989978771321630379935611631823841867452637101586008847191745641302313969414089869466300926125882489787811311270031963584136476770568690998024611606098783470060707979080062705255266737549152044504612617416091816643474630198621782777369959436021440824920965934922859784162110243766970342263664247777915804512762363599505621673020388837598819449872711874368738017000012894255909348968573157005672065815201742941107497211818393667293324947344519934115565433044563517925907754166215766521554190043647597679822321562420876222463816309414405331674098145945400321138045483033708055486443679031598642965666188337309535553193547494830293625389562087595384476537757343100765161236300221848179205565331865435285272337290817445728284020966016877928592674220784757488591546405096169080219595079166167363531275862006628864331037339489037888781388499746194429830088933484122232535751705481057933069736731877309264269880767261435244217599937877299041766471067183300780675960779176680749213138801704622877177820519851436385774761934938838143110136862728394462869830867851634087040102861033602097974735636523726101520085076092162221126354322222299264811182563391628016860780395659690639472871286329033134919408973920480632596638716524554969585662551071997894241162363299335081448901696610098624061343337175924380741608548218528658353960740624728582409481066625224405523032199609579314936103952133812978180848491411232265471136411936633600536865177088919950031337600544122786154582567209672561442568434702207820531176943173003243352483131115972418149822825231826769240982552621317278720808853821827855563053847721150831770269846455522263477734506260549230848517480773972218212889565705541492004882913588651981595829360203349023232967045428406041614955450533595007814778168588091739128537110097212632471920195150310457728202192249285690909116487442501950558550161936577634235039877982475847924832846071629605726156569247510571606639458713818520796367620326318101081481031988562528099589206843612095173487675599736914370757566059420018195325231943204019737112641364608272056411383154550568297325238750803230923133217043477045537724848068180691214984835478614322126570627048023020822144901792656907141432535976151927315376877156079034411098944096199349832722477088692933107956734485105980939301090635638629636828323983155730264227773617408119789774202119071223717798508484497541458657956552018639218093425478502615552473030266191157888079818412851010930069517240527105157225886316320433164897951055364248146820546508412473604810974642417293184671012526724739594599237009505271622340701211681951640570418950590319512286516633969596795471994511864608710998539255771490655910696288096150194945545926451228539751065905587952181890778178903435200326782809107502972976345886281790294454593986422814605589038496759102300742337862444074547470208036711268647381065654938965981292604671411817514636991720537125804984437319637695379777907061805682448186560757165799857148285949022164997497727582390154657487159824068210638609567009786004578085174510355498492306090215345331588910902807963864606491186741277853131096827093990877791487227905179135569342196073477929671084004438703450266525630743427987417306139239404951166771397997657822259637288171936828461761709341214673466946570782568697732816577256702030645799402189211498555110292367972453093899443285087821584895868355264772766464195281487536052054872453925269633858622756224711750158643446330064413947381999015477143965070842501608259562425797718589051369349393571472275085784606492741306016606337278399129818546318508684909491361871206370201328486881123985672172879827817427057108096382152589301020622498448878104867161042701644071520077007093249540981500765062614635364237518387427560168086375278962309296892210769637580612751091879746995375951654729918326977992977608101493187642628359584220270400547006329456082689885224147085010965456032141997374282077186102791818953002162377735437288671461370072713391975576869937181391889308516416835120252207480355014744652618999151327827408627727838678576724093814719310855534543740994361136558825755269740689441826160245558134761050781397512650463187741374212562144303229826576872803992400472492838027660707696619608947599907535232131892293326568420934765324822992812156303312779086917163340050311151833138176376802403889877034898757495580042300043715891139846227834437621985371937689955562717247940702262323686831570894872943786562021137519111338276868741759901597345311089298587035773819372073367541494750798518481969668981683726075256123681561302470961870942191741885896978503834325071437644951678222444239758110519040114976992159436137309288233120613717202544555643802320841054522748772407860891566124331370698541421063200494580804802512473953323885581238815362567383859221491546846736574385145607756830059707150021169825232388661226340642755989417362961542052777004366697350090420807408502838883108301714339592433541157952079398432671536060578086317843168236527306057286625031408015587665253363658474430371223274079226566728301242324607719190815182523041413005087157426702619760319678751137782692544503428369034016339304109292558686519824802973670719501736652608682998550987081933278004138741588371445555179767832901944809826209217903561284320777542790596111700407780069384493435268623967234276119375790224185330001928262564055641098529662000326133225660225474579038532602257528237301128673161067847930084661909601296667099940551423398801145094541444007359551399695919687178099566001087835002632940000798614307599386473005369793923833739564687544122049619395286866236409388869056181570029126525671702590255527178230947080370934357702585035634819480272727537458741022545523850364171149968052553583187260400279217390425899738873031867815141905782053825848410997744932161806479717879619801231317532739897482614766042104825476555781750836397272170542632302789669312630414068024858684315553021003161045110348838059646935755250127159554530668475142509340907060849806715069417010245273266107003770980355076723045553140131413374368326910687425234698268839857700069874506144767965366189225031584964578567452703287379420409090520972490986146094691924762360002719305639233198606081621272735423969400067373272077564872745012464388725260071364521008992497374522668861890108136678605117057927793769492486068420898299956712526165239395468622608997386909232200973623602638962243349912048670817598869270438595788878634301919009012934749101761088653688902620883311735647468261017716031565118862761108925303416083647398382260040658795751057714519366446172749627566136809543032548289385950722547101777753660441362877627177806723033802634146733427147258094139577658538003253968146430105354859341660306754348464978762684322420802526543298022479432740806138758578361988770627073537655699013858494137651031338769184173047643468105301205096658955531258948092355663247400026514068012424285465679210700151115652060369416780263476095718535440496736022384124040080926500917452379298209245168671271455509169301030639947774639635523590604722249338214784471980545316136604269382150620796206218489228532723784134004128245125747232933763792949101742532081191931936125867774441895208672102687902376901931121002301161591137392573792024942214397059843819769887005949270206793410689817449036053578341168728206416975102592050080172424733389119227149904405581931306356268602321115253953346108551676171250882007407883552152215236700384512867076468940387000013663727318591852298669235047188487003149934195013750370405491529050411651189477701215661006310644628416496165760920236381077368559007745585169282460950392344373478805401029527005781756944664825578542444130210478760974945592735836855023091925090342009321323694866992033733773025855042676265150226058055955835098995768486324975582984581959983690171945843608801988525546574734014246278664118045612791956088483853075894002767714105302145290153614452167807403304604048534546526886038596200911639283829052745781914000487125934646650817282192924809754764244522401061246022681248100830121964645724169910140786603687356371780399280722733514870918752413843602116568061515833388196067575051854099515432515833332943872959500927356799942656626081555406234428688558338769631179290014949712762941472610437538982059858827540751705612573231754203871824854457948603123016607563279893033910398685354019420156045367923794907782077155511795286999073636532007495227021175820461128228321361948228004446844915092677497356252977933587687902781991427526878081912878755519874600859763793342514869486474806695981561958980597067723060410370199105901268005851580091227245196451913774133129533766922040842948833848645365508560851608053045274516048015688662918136654711913502622703405358600786867497499772139559557089863620600532738758180379896105577965180766363232693488596699764423387566733276073282648021006803008604644892380830624420986797416549704559347456714868020714390193607426244610750596329081308701727662384410239889473593032255503620830514489301963706060846526936158523977995041155166923097370408835390678239968283900956171296921010325017876477809510741102192276185269573542468523035844991815248348269739898168182939323938934664140033253748198006672910031282051547041406642150479485183527741425371314860869448947984842711796637036188606829187903999061456191855803166167079100688134117587562270763588712525771830149331911151899147842350734247174506958712854809573733885180804021885583601506836839606105125481194558066374597080709577506294856586199244077749997367545420798751506490169018544637077170930722641680458191353065768142892554813679038267643201592190548558388200595742902780512777406217635289184271331532069545122822467507563201828789420956060256507005751982177869335487976696572243724424849681198618642429762517402487298254605631035124728837912156485177184274672622670995938426854399450423613383217936283409783249857286162126138320773047801118410727023591356613584687639146369107428404025867499119689901013312617248535646153378978087404672502405128882570899221498496905567084058594854180349034186140756091729549180744431676135507780508336868507234701218525506675815700111095571196174307105790321203466971424847184218474434556007594715600692289148982511696115764170242102841063139900607667995132033229782722093573793872238195894011392606593802058135459819265922768567118121603059709717390940454543574988575826048700660000843554784943288089292839851378988343814472758559838238675259186989800904729572551177374496917855140459793781213320293867659968693328899203419831495827757696211920744023027173836036771243120192753686809470731805396611657125357396752389581333275752241734304590265625152306090607187871674210158849993758885918364672253122711998229312138753232863201838757785877365183223907615662849273188257972983752778149241428986523280566178677795442346890499461151105609050825872348583024116088452625825053148077370724509429018210019809449678033939787746247370697040375985675893175253162293560939966064276442484633965885013801068438727967627233137185181300536787206708502169790184391475038756560546506158510415857310124927513261139690143676067617543234215290298501637471374948016173505442538696941134737578317115100923102405765574564106043136926073505481384079560961259235101190736139696888347355628874250266189408246239994117935083982715990259917387129450918478594849554602930324568701748865922870575812822608757932654478718433110422955318353527674291479413595860561978538529508429984025723648794179508167395210972598987836160741035982791111486777181101636806080015046884383495771941643318710938630032838171738969807949632857867379655385104957558630100457747308726578959670540836726719111254031872128880548804002917758231886020320501101384861372962236436246275873151307067753710192810255388957796340311485624321773451950151462799392538295342011675803140564970898928943255371784269945283134802862697190930388148365435268530909493078889324257849874956813741150673967592417694049832155907457508374244512367965790410817479579568484963091194901914695790473109516464664589628944095037793205315862388967211517471086621757981835478780132732932301403582706746974823914360977603341056712171830303647567674725158491174356176205455935990460972413526849510120919414678488946564708309158336876608392115793318982947931820701097277019112962585826068617794753231752477639135079277128089175231041525162004792770815436929589277783015990760092210395911334047166118053356996009898769442322937631026357498680153719686588722680230791505986086233205503401130708996031475956694373638566978342156158288246737895858879064759549333295611085331892114532716806360491830355327460322720957822799920767063138787872920134014152045783485228294108672000920744438618496964436239522353188522980713097323704985496194317190844938622560913989357831976842032896782573104949354495632237853130745521838154167506334651509803119973309669920879499697408668847783897388662302740631867059181020733988402968060135883700922375069292051862411294209396970179278928032156940392595450851775814992254648770064533823087906588655471841536915364989709509958650479012694773626140199059766970943542155639570352273865226392650184814397314468979935454157859270527681415039116603667528077213849745739922216244918660192190780640675791790255934528903026218066715155402203636573806866541575662977182222035646566315958977105250941974202519423553850636480970426249117948967310399117839384286254190283577863688898936441940593971770228479035356455226028633503386958639747042923988384637081093539593832557584156262190272782911332884726547196799664600053747454110907248002190474177243250686881850129749287554940698133731623301801420048563209536411302469124632138248668698003859344647106181801801191536910003300609789382980303067328460800297753969784151981708832455253996180668698775213328486288326945572770916227477386892873874152177149184179413577164385961138566957487020256999215838680310853806168600233273567607373324342250994865781843643533575126293088202147638076204668934729766633280224722408532681959195863369136888989979731089740622546681409357351492214720389357186739160264825770037470164005129739021866264960343928056163076573117007365498599056785235350149851386312444096501665829735681796140142680074450957013136173423121655756426539637306598798004837988923862898852622265643657515014994871867944900163228309660356587246811570756372371889514763675595803767438064377173158690221722262617402547434499507590131229739421135064899031172904484245351777088312527169163315778651944007725184717738574509799622333389162502198206701063982400688809359496957753900117706768114952973427278261119120575994122895714734537725429323864946518797159605633075828047777593747302196627472030867316905707303121845749985738943307946639186791214031771906742669412598738535996909444797811087464214919572757169113693186173039345201648843599739052411327372593518679451626675597741127646500071469120543856185045428081225872553253757695025073612789059219663918549301151843925686887954490567058553485931368183261849599149023086341975086169366446679880280681541631204637129277052437207389355392642359368713172119501329662458981718132224140623357388537485173981055034243350290272470527349233218885714014271129910975653854524112335534659507262172023217603326027129087983587148906195223205450681372666571110090618870273739558146022866603058080318293598177510730618805687800415832814193505158382311009402879892046194650257896019311013733772837820400805690645523276551510047396338519326232318569422945105308549674287143768859066261459228486296706385621005520103178513928524945400978731805109074146856497904415301114379119610958570035963511201425421000390766890105570900738016171423821053512866945895081058948888491075837993740666751841565381424353167798211231583486089061213028389583694931985193457611689464466311957660489735158575019418069470559780565296374726637942543922353556355816587608597622778666778217780476272315908768919758979305907410085831664102304650982993400618805181110810410996941831785370461738695886131664749196499121511976685740190516350176893552152225806680988567282008945328303004758347107387250169140160539469200291228064782652727203363932879507299102743693496190899487127369656530986221494367151494539651344745935904317829582965516997438325671196645576243704869545998443889705612682660654600073637356874505208072160465439899278783547080486018139193638013853110936704960867736066249390031057735697738182122323586868280778925054585077730691361480414529012447820271979351767265402544777330927464896608060539131859281946437168375130776985056756674166225992173608037068640690541248082805458134067864514379658034470909791303791403783203009880835092914693044795274076262558955352784157470949718833731244313697814263178007800331671391203331645648965262520312104878518037219223040186452182527406049474411711929203766498147111653265920793449799983083293534691773154303738653759551642028029263069739790063542073796097305142007763175135994121624659592338436179507613513216701533445459054133021297063881551292244109244120656791191973077584207566244260862334674169705664597373591757036444297802768587574316912956116435166670406551206493063978218362735688193753626167872171607016817600111991255192978473986366000737076942424762531772293218102745557085125039583934814972659699544926503786593503609576867003663304538234013574642652164086415598367035568449708253346692399038558789753249570786047448564501075795237265712911741544728772791357685018838948630139648814620275245536917895441471148072685456892022477092365429692769803644254755378801452713409467833916554645462543716233926123516802768564832800321390889235524379067007556136738694600354418004848737219045611491936159092624501646491190905686502147721333731699128593462795609386277753599901729976306272583504152023213166585507917926646208970197688633680405880014759242294041583406517420380629226589258288426624477060407287242644549442123542841046059578010811657251013756300651577003005786482693419780152936509600729119327846485367508465435630519390388731610121418729193218591337796072722511840644081410730254446796993948793182799399370889197011915035393187554300331468861898613661221584381179961797070313834941868990435663674916720725328637307070997924088430320286297041787237334453536108056277881583176222757525826023153671741177802153746589016426923101369265843509951122107240907422372626880963128060583334299903338056121944791431147729583775775241345585911672585836001069752471950710574241756589799559073698312678465876317950645071062595764780167473248025398941875798069379862937255489513623348297568433369432756665136062411645082694185626191149244193891218953452143300406872443811084766643839731512403952342606779670008269393313548929471905162839989882976673036922914999950317818550580656112480909857898785466510776843062751515021529803228570480058549471061852299770217858512541666508857967888360859009263874582662880684333096056783983766835759541940981012570427907823525928781977437416227222378237946296729931445587856597098169955489974898671401305305030231224297253544180904043892948411575646698743274873974149395178285044568928820964373151112375997979423659277325262746685762572542126327773121764810245967994173893062403492163552171859623534990481184789093705765540481431393956471855862386936244590128313015466385679285194623244760379862327956726859294140801852099183227535521951350698583553013325867106440442460543360863403568297118950507791445960960824131839263457569807597773350088735290497358118661849547356904247358106161496839459153248862500718156644850952450005254102664251831688320958714433530533420612242035135804495370684935030562559006512574972763606969186625844770023621580849630472965091428063713236587208179233652462722419458097759962231411814954762875766691818579762583916211935030765816614083057940381731226401834429557391515403876010201118344244122554765444891536031652603824268171893943420497426695820435044408876522509537165239878667065912239963386440788936803933869336092817190327982247084232221035291557840678972961908613832578440197305990764456874297339139773006679080176410344644778112290713167235386205773915406752249767161938070104681533999528823720792635603043576284999935001631268715011430934389812448734512310475803297972030549873660877325394713874335911863715432973611294457398196938811954625586229576186735939836289482421889001861157234244594576956818237942338493495900944191478249303481515455514976244006583653570255552986538483142279260712285986417419987474322002291538020579755641710010872463541567229166478488792651077893888885682509590831147299877991942299655587917445418717868038312316916123263586725068365635256008014528814168685592979204981076832764271372174709613030452677958210895289810545468388903639656139086462019036560244275096681791938241110620390790179474907372919900822131678681097444413833563073338089302780716078356380942475582148327825187075949724818718344625765110229708467496942117945520748121145700730307532740315605212608888220842224837409802231975938331459791020124402931509612366280791902429816387794731411047349865526881517627508533374988933982316942707399110469543760854823341744168368305072469078551114109454112783411823261777128948596054906043361401820512617980523521902206974947467841081722333408789741238969305963473279023326949169207532109052175074523122636269594129192737672545590815492452463113141373355916129200126051249575160546355829784004127573196922123478611220235677058717136345396852792679902520012408288376667531893518034504453685834462251705784611396472392932814077645011635326158387792929061649029256448270038541257279507843443085939310563623585929819419165915241393458897571023244180182948396012577260324159397786684702487922175561795893571841932501192741496750429251921943787178039746926322579627065037335252852687866282898205428176245027537003217108801935056052326465078911759216939882519916446669557122932655138440825243530474044183395271191088342588632542845470803739647038500772613548337263432488439309686601789502902635392805005261819443678245909166431320212702686685641905076348265353617982743838433601646963549026489802150388703547756238812178779339136245436205563684153004458275930143490790794497894457413040333326474135680580237149482439043017406267037611554388928049199032677457797014193339816935404929753321655603878765202810189854453610117793576392386209336155861089702124726163190479802878251706961368830185600935836478697849183665907755426438113578686796283560947297585184351008821933576391683899616582743996624189952410472814339361110905171077894225205819122929405890008920512737770978703455722246472653742031632791001430394097774241838354187722000219986936511521767270810759751924549658843512102552616112348652014061581014927593668396380565117966371355482513555381946137386992991926598108881010206475193489292693989222314623900682224795355970610996482574118068813227656607489806320054436139136785916867298897286034767781908479067000646692704354519007909141034276521902752420928437002026916985175294164013717370429097101858635897432960073006205676724065209001503685057732445174817739371463238265821644766321255964622659448262121423811926681166610848842267160823957215534519992687261076871674639621053953369985975356182739695600376161191834698963914908686499263813030184174405593120633352806353507940577219389932355228132633049877286623175868616428431628584634431564045584255440783068151389644262702142858666969800481182165281907357265029852916937859112291154119800730598953704812847097443166822615985491745076559137270338467328643820739699130818228899850780062104892798540574662542397643605745319204832775075361708379394611098331484927723789488783478639430532535594418802726862471707195251736881592350075001279449031768461951604056954037111971715537111988897517771780417726412853719857513947515540322755339115283764154353989701978612296300866608656323582308159106208629341196351496048375244420547451494787457200420559698780538018239648121494662848943591612129585235889250177376293065411762119523996199044669222425575313822012375799759658184718478811659363495156729430813267411161178691121946808173212179916269192590280702847851783357938542456335489273731134542579527034399202177308534416229659307233987075737144057625012736197143522995888413175014643540206519108387624640710523473797275357720779873236313287018709213965455424312618692933579285473915812054772100032957305122965597000658291380474303247059354085454461135154506354574343612110779494313449669403472654742278970228140783025218753489550979838114567680600130855674110109746097188853785020304105965007383822477322966334268590445101654455862515533433942808258265827965089335341622955266353529522025785304263122004408438508478742776385343552356556586394830556676481955496880619757419525217637904222233658344019183868326226111942570181901708516266676852973772086322626208012698060143244953474882311688207788773328549236511184125800897539008679563118260406253940822676290933334064667050999298457638860359912106019541371788077311771149760382050049869939777705781486710722452625569605910878546333824686991385049035131987490010928871309412231604771300407719372936728191616678199885036037439346807928061112794784694937579527699698548023740257794163059292639629168283487163699319116588832343224283553777324495397008110152374348788635258345582969914212298083052008676797148716883824074206439616578574571652437020478993493097313566551818258620583858108923695874063610319907692673783855086037047578540845138452623589976576501001229546908162940796774238601234187499820748660645015325185088535697025103691011310566948111261197030293431024462574223795979795812281468281991365077720580411684017643839742251921551455518433040358280092874946229672402165931963273091777451844602625026963346467955869592298278385366276392980871074958131589784543506975767871397421300737263860260177983155633897328419849448387670075309748632134861871882464849757394873112880276907372954962949229971046030160747453357749015885181512746355710444131668963229424778423912435759546818931623882878010948845424176085329195721637736351618334824643645680319323070325527412714146456887965565796054846804083196466792572119326357763271690669303719908117741895465293332479752020669441229427838384955751737339981287519469823478885032635071722147731316680298939190924357800190184285368305728146279832188968285107653034213492716085066557189813829340345884930241722329904255513775279799957963254725958219101755963549211090401551435664751919511778799564217934996799168474289633650159592186185274093042109328137367681404725090915372889784155110456501494565588428826375621260603119540657028810574225904724315283124199392685618922704940386921036170643504082201581850380832084075091547924532452430615845872493974126273939946813615959945743358823520450502068759357358884607699718909868370603291551078530466705980532939592377820070686046860974038823487501187223466750545737023728052746751059780074484732506020002205468785649710340517795485865863189356783483840656957446053754407585932458122714926676043235551039675841260315420584872103283194417453262097224180706745351630475399831078446629507602282316097204420782947519141118045668621818401453551250104711914247512148841863125620020809013617834397014866823621324544015993445892545555348098531142239226279108696603314146513965269805583509140946091127070733304190949190234392634435227905673647581537179888139737266061894502152033614464000697385006305207518579240817840312994638270955688824097433308498578515114638447738042260516292735461835572032385533197628140609048008190530622830494226767796257108255575811119170925617346005333417322986480048945614780216782989610963987429038190118978075881718397011142810776442992744250929269822450611780194101744890070011327700270449520334775773137487935329837927150591054959314760509740885964067364413014647641744483837589795803963853160539442224041741698154944090666440349113708868049941104548186174916463515852494317865145483430838801136552615495057481411143394879518687933294044754799607646163081297671468562723613634884998970961046808133800007443687049764799259532861768308471524638807699631288974736609660339937123849236843979210770955064829652643399056978965478450918644118583337342579092556705995047341476982586377770962031645463515257774802648246751954360164277020204730183207310956017075201145568853169299986666483187063767795057081240706316989127455215797682163484681602016383375136202001459469603986303241229434397348006677025491628844909695371776539034910345132100547335813451689304161665754791640191860834447282962290599239353382792973051195742263283428493010112203667091148309938077376091609166035538402934951984481890518879770027357458674017824916355896342164996683256223129107631407184425088701809591366807278194207648011897885341692994418517423264353794876148937095438068451478763543708083430546464655336536428871502203645615152127279191731490391802306692090610268297896673990695515484252006509343708246623438164394572925445136514882056240472257521754951193856975600958045480251869754258018686747978439651739968331848324842592807698972781002685329210696417894229041813424731431740777641608086572455831825921559336710033398198891854856890393572674649896097752998093445973827684973521037652768119759386264424006554998261092949918705323115327073465807773513583068509510201764470901842387611098753930462067102662142396010161333599352225116715534667110604070595052366498978480485833127841757707703570370595926589848153671859641399810739816564720129258262912882607009793073106587489829138911639333687530353945429591546656139209146836336235850498845566871741253717335870073648420720330184402233852661352730386139545326540755320219415619978261325935178191134323455247036974777333129933803396437301134180535446315143752837987641463533259250870218347131248703428635361202254336671062617762347162680413585037191662580118274601418617037669780681095187273545751884234995436854812105111413347201074072423865469465972523921882155986894449118462554829796881968913784825782515416096948500955662221611246863024936949596527717088645394583843666855612041860000046661402674809286064914998585557632181857019222211209011392210058665387222914793590720712890815294186024278573058297988445459455664312256209775887124992851307828010906324601501759098720911856816967232212722494188575301879328233394105333665512825658689120080890493474836272414248252567283734966390879919515301504956568342666477382090250846499186695555317062035263605082471048864792840392698234175334154581062468437727870615888817394340093121066689783655027298400397623930720354410400021558638358523387040593507245478615442051466280903401992385704926442898038207941012660207534860290769362957134263188697225193214172492899230508704289381897935806614607502650336930953158947624388905763791423726537925737870757000813355807317770746848744113756788502892925719539741232984059462097467215147192480899544049373330831593025265165671388129086428973069107939205354388330566309904215731780136712211266552956017710714245263606525262031699424361257356313343590579336504570037742784768487481901544572370610337827058658385820892445775600001233235732942222197026152742787126121098220612206315892122808478122393497407179774716975409154652346637164379576617866463505272442217895526628117023896498746105807398056224428384759633395498519377381134685920628513657019702623466852370655832261026715052371315347966786966747845943823942376829837147587808333199804081929285608863905165695029901643119941969379060466581287028458093598234045218626041304078124308730272807735425193742754839542944197584442599348922268638670186267021823937810997210330869226069832799344517671070838375349349014512981101082822177793961584363395765279169750139385388780988139950289236173098125362015241956636530972168523604613257847608230887954895789733571661711121677944544913797879017338761285668883571346273258867780158527792235860845673748963117907040313695502496196489646717232726249250392716685623589264542263195927608573826576168668988867189441778408112072294815744631946535326692155110377007126806984161552010772471381560369307848241721203723899002351605786205285682698747263934322447116712638366700920383131656731518571825155571627730464493625179026083136513471641554096645541614521189593157268584444205276002769931693137787589963632206325242508824080911930109646265067871646883879499899893972721402739016776158038387011619857853441285799408730861521090532820521179531490171806157782779213339829617730549222403202488923657926925053038797745676792378338316387717239077589545277215908461111759407438584800006469805627384737438987808689786113733672422096783190876567660948369423733420678759659496574181819958360136491317670004059035787316364487607513731668860884508077779542856637110875825870593316477999968140927675756476673879952214581068509488742299541469708339596108615283573589222552585431630604195250262825965777181810222975794136703955944960246787566347177598887418375424802017193092575628018265018678327350046788239956569017068816752743966280166030713087241948898726988044613381008249188799408767622795724816947426619608486486110991044423743168832174373156824740372357327527351827754507758987775164528190534145834187943498760022007443115680927887746515144530102383825788977261393466450622857752879245796481858386060101666158237422913125896511551102967944890550124658705716193833364969882924499045543562771668224252831255331812570811635083217693863363832774663008072518739655820291356638577196546052347634229790416514117969322643864480650731353578636728286803258310064178547013186210932911782148264828642457211497796097076872828840037691825458751208991479828485129506728336744360535668174948945029799622882605948514598740262005864181504740704789414048489138391979764586343183221068508076526819962569446748778793046031616913497644932398992339758600680526386509349198974984301542758743469396368306103214413062639484323966220964170711429833016650474189317513610509640139817398236193179449300110062330227411144479378202604624106052907565758695917752435228968171572147577952487942749719110756588488394963799546118301443038985132036559721405822675972320854791530387552153496622562709087227511972848882836836080810386032014088606893842861202515301058410264164860722902551628176630220359134733286988505635455743481802847113234108315029438707198434125498712263175658201396926463533088556522633441899306858468684956640579044509096619527805899309833049373823358726982030403553699520331042300290292293968220693515058813758549609823053498734033987842941095329970401659452942618563261705407266640722236647443676570658834755629978849867882476966730629190325763105192366809442953359416731786947924860923002109939878042494758329081530929969577977337336934340275072092117292076345487990887805626313965945191752910766114800911960298169253624166822562414157244563180977592009391148055844650604570082283021862229687079494746350744679695995350487253621015595421942207505785954929091079914212560231201029960882396461879129876887477949242273390473450231283490303911130528847999019103543341876904302374949553181033950386423369111862223191815332659930811782525155422912494580364492679821112369313298794488288666062365565982826070083658049252217938396537351574021505951255882684669386492866599438046344612251840705733518681024267245975353291304775626356008658024496429090250226899258581591717964339226114658863423632982933770793852232749188360190376651986740685169185326871968304260723564576218913386007400900709085044399947571487573983132331932059242275378951910456830058751195612822867886010605956571900824276609177350594577869219797736412099603908211556828870545216782929177532539812399651678731479672816043454695867147193381584430454980133069976568013229763135408703354138438903437615824647332764358956445378924867930960545769326528756414936802333917540711562902133066524979757908473638203753810361202552178521276564555301878699168370000611477571186647313526705566084977443613978894566619830563829914989405491329531828453690004662075264619732752582628020408699781875062986990838455774478710690314226237545095518175539521050402162752355610058938144815314954653188055313669753333332818312332463457596868379217704727479352866263608505725420631262415086061638425727998224257617138037271908985705863341740073989601292420983470872583355050678084263801419995055059147615584905034729885662210074947649862072289429428673242570265644931782370005565541238677830094567891328285304987065875219907792561579243900289156798485052807423346291879402632335408811097080334495348265413223900536508416796737712276121913272172056285369468762913805083064726747262422986754322225332819963302094672121700591200095315510734960079867954183788518208861867353488501772964418009463497007914390005492121202801537180437035383911480779642111506997543956277547655905679486307568616416441599389245918718144727388226005552015969592989217800774443996771137752977849815875051148798342248282086249192998538102678001701917793711059240849617957150685149415066650245783486781405392130389123169081509822487700858249297740017474782540851185949868418609679193415841046984495184013812162606515216069754307344097269302645872015935799064806387683003045774540744421539609640850290483706011190152960885297373365798519178043763679147803353731838043752319039548724513494268610338943419712527845942916022458986896879017734389177155169295891890983789241502345497278519921046683373448749288516724919776562324727822911721999489473497257637488851018950562107562136253661125839190762244115942848256101901841896094562942039913417082377074350671022308654726116941823181555920504750271333735335849530001224207625478649046066108421102105645153741078994824588401597633917156958849197777709975327956178020810241847882512314046542391586125600533131380651671236632582291795301946369338359054941784722413957215355850145974023578194369177353496798857485633749110274749305394910199018597967212547279553431375077696062324829687871594851894015010834873234837641802239062550466592721024317607859080374151197010258081120650759530374477492544263862469189451699394293456560551124501383686247289155898325744006011252042193248638674961937491368045038633759928802988658840218790247837603363557558203455051042167829007722626759814641458564393597146722421312519063057055022018201850728590959505365206717383856877988673013820101643363066285636383865406636820205594276565398818674969438198639505380422154821972938571237362936009312379482192516125584992678656185153949927514067890542878991238805940153957950230163680393699670910552080164162269440827741467033830016467757534554417823561544529102578190423057428923815880423426186482897427815867647429954103596683016610650836350570250062667692984007476790574223012273038408590616935969265557063987153847661927510955653285637713790991197516401691738742816668492393219598223130002592454520069207869519734997684978061687327398243560172394393828723758252936716913117570743895126845754577359001546983286085946898176279947315516955691576890315700647510496913250238244712121123987820425923644362100944315032019539903194214726635626267106094624856335762930122932604682332612492484307917006567315636858995952796623833286142990080294514223540252464588292092041191374147683021922576032930493625859909988641763498558986892425855844825126681276334243711489588665634779061860904412271220844157243059135303695031650402104463963966772688571935232445873514964516851023062549718499951199882479153900653469108694407558751031789556394861216840935953249822827930597276676890675740696474028864232876747957552609481742312370778776238526753275447652141521943643286401030572352515987242400532826870364256727438320281029395674160331665760994962607128280667694534986550050411082130992212365840905423074258865476852702087074638139467403101011695681564868064127171901022988035338600695015923722929136714763732687693165409204540754393148930129542701480770372300071775877508344956339540411646760143225989514630716689214787333263284561416876134320417528055289808325507571843368812883524187816112614349279341024495738230279513992788302751640547992545218809769897359846291403802150512362094591699157046276739327496026533074123115557529450860663098352418167560728860187014998111354319486018135038160037364388351072365530093758548059903328646891113840554461817066609566699302269303082565144675004822891788423052302602414470441449894156793721429100946863161419231084633178451050659265416137595235611836773279561768603424064129325438576380709543733729065022122000817045559676268050227985589200845278212673688108166330154477154187724701680418995594507167478219064430524010114547192764524070784628644265944714719578828203709085431130947492839830615028146272551294134266901783898804271693717935055156694186453129658538797888273432643119938083058955736462535315594428707316327328940567254256318908377359839306257048176312199004004887256739359461221449675678719090618633936516238737744319844218247915910793613695191592122803347302229506545524309445473371957219589316958245174253504812293557629101532248398068571298968996435963764255776243043464123916254906677930299106624138686018215901185119505491319046073449647444654730853083028780110363561910722344545173187452088373747155800575468179240394109548365818341394507409199569002235501042392141577449637663935595260849659875849494643354888284916855219413924478749094339520149282739895919599204967905798130170409119113456053216772030416649671971487107576529129307376110875047017532710035122302835599581186882144698900580222858016928586418661898336051337807047878720045090044772495112139162817366205726757195382889109763515340555916636739744001988173923456863738274442333861979021899842240672399283540515672218401066070826663489258521689730673194061440615289707237646425287458625913715697196696510806881360112994657189382858598814372772931619544267010763292047825677557211042539468341892194123395377366787803082484159299816391857926453467614231924182917758546280234329535256404618371991877812071996439316614492900763320645612490855414342037992129657653973436048689865623213256807905537820277493855501031812036302954138335707163341486002729373014451337681995749274359156574061241331182276016317054592545803904718511551033919530084399335008892790287293357526899214519737878307237656656612160817729058168089026536544295196607285709670324429822346254448194268364562006547112775758605791536773259553461174404459652740848240074381678327484693313760313964749283464761957175853560257358556387733421940088676954081683201358407059204416202917517607399329460722796804842872686010294409538690115572043204003408043527754935967135596600300399111464876439985934627614342570189241541813072156447006086918885578176988778308500765951041553966125543142981150612734047174943137354699608519860714607249321579258684613927748599438239005913336738380944828318381331568118303306006757393270766202865554089961832019178505401052393464475050329705495296581570532921818095379891077339477806779609268044850008244424946019645018495153015446105500740965546977146064480200642818953943212979436667407059460882025723031041918460560709658900754430387323342767331705133323269355176917847798354304115522205438089177248700808026556563817930638314059549962437038184897121853245650872852290001652490784045901506315730553286360470676738962593009497879551425048340164685914173343962077169125137073428760992079155931421713480470485907855385434376192958688856564935568992554876229323943348312597782984207466071584800221688667140699471269297090889999227636849418984649177468429415436880791991485825913389484457374379728047521395904847992413114165533132346737676349820801283717063761084273739763067315165924384374987134164089268956163171771556307596777324127499518960642819426882549930755472942952355078885168286754492384759246033961746974931787982838759954137729337081815927259030285457400964649566153107739427039758356933811305050377285441272573697236852406998103905553942247789720611408927717824855856708618044161489889533196428482561032308184620321171388564188170943032676873236206715434708351534434363481467400146251095344995916645676881056444103296058807331024499331996706594214414660195623750702858994919597402219888243618514286156056063954128723980766856056891698589766731786199362141845057318623068212639481783283271979792118059618803804238195040719878974901642437267437591588496758764665296520447695019878535917390392949205346677171864978396529894940697902936934963327078808016258472601448596361768058559214098880949118233182762381446602699356749302774234938528653861346157212852525244337616249756662879828748036664842757493395835713760748862599504979764558807890870087894489170712807288624615888622786382553157331930974421233873194086634684066066874145600602635790957166886950287716822819472251742777467951860607881118891778817323385760064426169375536944606315219103177386227014619775238923213408878444318105404127616637516967787262166583613842612243199324618537864752129582950170124510925753365344100206947657382631657013493717182848211150561451249097556071344192869811087377328962338442216287332059695042137995795588702225743568394713145707953937559337494435636307621931043252643244308689606640557984642429921441574655844388811323950063931782838536973918863726894044739591207070007353835278431898179050792862152195810871798497234717117819367900317230450540085278238892514013735960956648777587271257413663798104595132914591084737962876788891878951888925461417438606155346846555747385493140872629467515636222640972292199506939266362090781612101527736399920203457494500715851131628382903095795728246663064854621456674295598736866196019848457264079620545414789177491636332065645561947073815247059963675653879266807632167916203177804834417477275263908074605864901150297432602667929760910635548754272508601707642473326451076521120425619374955071611037733613904449654457211830837971973208396400210140401027489793174346103857925744930656551684057856843515697214606496971624018759758167422732445191107110185330251425626266224093807872881748468697884738424147979032335637709039328133953745308275064923151066806211490553566782811498293727625642986818727828920330099606523854631886317193066185015777236672847513478679690392192094663513374806407907132396276384481484648676756776516809457927157529509222257443114757157726868925510149759941545542508567016749666073457722736321210693308313728550762126357296908470590145725506936684124861497512368350939793106397781464176158552882105274279736970926582749670088781224386872673120413989376181287445173522793661311588061838367888214990045947221326205914733585542282039278618780451572949849195867631100513602162559076960875746603176918899708830319061243906683908202638461975467356829116869222591301707233981663458404719349894688465801342949114190388680926651977149695669948784173113775232439423895427972449004511168175604352778233614716273428820491470425159719207873710842153745498293594740987767807705330362596395038156184101180030731123435278702443854832767124683813173964579983201027295682292122686084918088579604199877053951894715452102500762099409633928416711463643284030280846259709738566195389639229052716527853175180557827853715908575435461163147994467610457182693239864993249111659478701477707456270926226201777690799526592087558177213937419058965071873319489364407373377927087337688471411991113069469420967805524502033235196773924549062834142395184479640955909407835828671238142929289211101413705516252027364411744721447691986448710643772074123974345921826128342093162606417907267857290489193152431023018740735359162646466962505755763137555034109529321224177948468591622461532961767238306962410562250585715548285793125172577438263803350854034110049011441778302540440227959338928600077764435317586440671181303304541155035199443367099258087545852639381993829996198534996165213630483485400246141334401443383479015230391416252787609391322305000163790787656193816011818733929193875896514994937465013473051206358328567889362893544498947315988476347959685652278747546073014963202477783152767840308221176336379841237944786231468600753907601934084435685489399047548562243968488984314658098230121835943202685094734219431993324007369406544824707917673463212117984274631270938868058047309306685980473198978697499219717393178783690490639862564365200099455926785306218870854187150164154843649178870529918202530216110577171171523160233341471428065352921725944908354172767554927955583060793884860317858546797527648797556318354868879425893252478373876681450114093005533824902586021374930669564295509055003363879822767023891464781305698045837518330538204221499835894031803943457664873281992681426631893272235066769711247738440706058128884930732525604257551980856702107527556039778529143646037047850612469263894999013031016771901010187771526734929431474117945030383209080706543400736999037054927023103131182858957773930043825642375207776784573480526311170657747646370663445470092649767705772233561720125910122807891128517773554803471062184881232394641625115170329123439140318580015832336763401901887704296444852306216384004506919660790059288381908653777112636557528763262671448530678145147312193944765774603729433087012426754227566468755215703548600408729364402583294019515736486456489753548947952505602845223766232718406620027193587190639072358240725962656001966737764734093986965560686391061659842829316896251096564272376716222923563400254972071439499419018003003896774164573189331903667874548293501595506982914425663176384106108986044421881179524492659674402220723001578086624864750540968082518048369799766116502689138209141659765818144080451479880467078626662868326237374568216570098940277501768328739411276669879791155879698448462951173909402257191336410049078760907875405628866643782680850034898370226726109481700376586811245842047599956737136489375446099158724739237220114729388404088627309768178324848354436059579420199923641295212594231405908195674789916479330803861530275548986307641295259805846964817660122689390015453780628076800900393379653390672217541482645723153388880688216453382392437284603472556495244119913016612546109018092224296146761840139850020627783007228158466521977327898502616579946063891856283373630710038384876354835914541095334545976788850737258712727020387593466518903789028051958049183133407896547256747563079940964571962713871546231840645393376928785816508802033332303914339976800334558831333484600166701867194409836885205437882369175354846891702478596380553755044040250697481876904084979169688925473825953155086787320100559296621211873212876848120778039317169197099624708557583084076123222556468601724665781183608265057589184776506725160494999821562941637704894954762874487855339323191780505895482049226205016762662666468309833460807515280869114480248002428758667116376011787215391564448716278816954829098353588597230750771094330120025814469352387172267550534741709954704444717473017817699607626543862756338873310867529864576851155121012738125047138024999812325214837347100525332796424169233688510931507596841505554656002129153027659998864192298438952614489154623508285031946212945493652226258167793229700956282939042642824940168369109005049447111933355019899009885527485423794517315744889550906379686871171082178236985309702884119738779261027547884573204639542022029677745981869273090752868165624168985005572563591434276691754241509288869918844368248942727559653740466192420036678111192327410459905319602679989548829948207381763361675980352124879111467495431917405039779367447722990809345601601357206689813377153854708894595160461495176039997694273100940566944524709159203934039082181245224465868711941729486069705044669074699521941811033635330026165075465676627526820546755356139420078420439933996842200813962486646524161299694628882059083659014554101392496514462533410489037451676093989443812193216449187722671925326987538727443285614986554190151433247557733967578766148861465293528079506380194465596768988656280176585397160376736402594936146322025220905273074247586729223716171416038703955736272665576590144053162080162403986021176370595948865506656919233392270523672591255777151317780911233581527048698927622623584301822642398959714396097386419138749145651982971296244244009271999988332150130680360726444007697675060335001600014512757777808753760005176181961928589009211994555143011058023182024080190262386817831077576940186239130345604421145295000440750449120055134114828213852733103295146650493337706022475271194791409264607189614399503024756701297094706938220314451460412106308297679931878183252687831448858766370764650463889466182594496936124529274586203803144971728190827500385554728443375137954130539694051778670931614166351814571914654540972843813527484999973633137209135796743451346941903989546452138821324509996722510489403631665048860377751165793020285987856220447194446574386581340903383477992687777029081044533179107137569995005835300961867527585642218059653577207267622354381194870390277709559608778921477314849227076683062251313819980642890481474773645050985206616691802190781639839074025091654437012283970439738281660582550377021847374458524948686599850151590143794641571718631687001575912621855911736823820194397627136111317417774150875535724275537119097960420410445728335996219355830340118114139390066426504006538549402594734081084605181562590381064462320478916475471644985340813088167024177589862281776443221130879772250102053128999916336898227938353439225554405008686636661768461768906665899951147209304441891267612405561661751025466095745459824789500627075468130810846327478893695856506159250494611017059035617796717699007198659758479492544970222615676605267009247699005929667253694979358418029985143863172476596803534009910023798688731789289849424245846652859232303582858351817538732323838723609986468443936019965748421688076501152941479795643691335473579223441399868258565146927493167241292536152650041707443582479003684438568368573415188444779736880258488914774735230417311123841265665605974075398850691123114694216598077616791027936837533550228412086628556696443481442879865182721053343489416200785498205687443016087458326538775111155568837636758787385921047082117499464683549261633443832616879089009138090955020950019273026318536244748492442088515079465678367361726349534306275785126722143458498747853466802998237920288028433063024112944522181585304194595478875645529840756836971470377071685830562004921520931229486853306655609642633663846985720533552750317298580513134261059945308315941972951011465290271517292325648431068067261799323361782999796900604017753743677875874618421901126824138755344796973715486859540298666652077118091556567167447795349228262590351700566078151788202444240091136714835426014953843214206695468201393975934893826802227574523144771862206925694390297090595193330520818219341864417209474672285274769370340997149092407045949158630463172705294663688766264366500067833735407453935936523998544878467268692475959734959906666973641585876423289499705094742411883270921819803491257385931019712050747796017842218237863141050418502029801944236382062067697870634496176581359889520378425940354029992066794826938257809399805393552144449581416893543696506731214699949793318380067296197185887644877090046314821600397533293241936657916203570882542384589771143090244511556899321952343046166426943914247370269223667502635971942945809434563399504006787762925677540925332557215749340937721552062767529446651250705221356085398025745405492517914764086203192328920667987676444370614331184365552037571195458224195201442646161689802137027162017622981959707243340790820495179916218748382382796703199088316691376088165607608810687874666100287174562564745611075277708750653332809814856251633065445484726101439223039871187038954769383616532491737569401984552742958734440733415763367083839325051451552727921175192726113507968358434456977518554698612066624818933347900033671949813741472494480489006830618308506974781928038695080372656633718597393050536445098742678874392855527119709769060727843459337040890757931506603738560001483506725845717965354399988688080705505582267819751451984321975499877598517842446460597767629286017000107776024457759544095802496283394828882228482158549923774802342201592028957572913564214226970965361830652772328399165488306407052901747213100967228561865657464801562258839372332900538893901170891906554270516158082846545074994632030679973872535153654588530188589441056791669946862863833098224760791950868139117223122658506681339211498513502054813826806581819390852147969243996510738699123004636013716133505461342044651608978278634252154950141514845333154601015750963058476863106082711653171410829386918312941809852507068579993030533609629968671667379401321165111693190261576994636924315688302171729257004330074265786975018938311498986079958066778578562278697944717973016043208650921410413681215735074065274775938178736058941504718290784655024601988690376051436368918411934298623832989222699629844959678273326980335468526034858756083056564541578434858954209827327560034732627551919616930423171058002688071354455284327340581772456740953034587397574039238857456609137869239155288500791116098251394289729544450019766697705228974695305370646411462826188106427025584198106972058615070341022609178688613350220857233835807575921322432940464237805769290285391341466087852241731553064822081093570164001211309446261457351730461889046729926942595859086028470897636761106902380354839139464653807477727283158826978195691293024771235598563360422682289200572078054490206912875808719745195633029263658054864224926770595784236487501892751065419223786633831227278435407544668877317649929188422863916699087777996327093528340412619976086560578207873106925325596817729468071775715110604396494351458735029731214992975882020879361809651817646944796271957878957501443116856263009937320089516907611419372127436138737958396912995622765252952263478299225206599102104708467543767891358547568716969087921008917163007175481206936590648269005768736121393143098118552327135517042004602032455442980455486421384741213899635881144551856202849670135510857510774472917514442990421962696184992581922968958526610046296854860541945762065298136834844264522073759631100712629205505672871925336980910344924667318025222657180232612922016497219720394904684266896360119439388833493484163176056487567394181623355379768308634854942096771655242545319190298038096982514168045361302778112591556576862962197218902448596199963904896460394990130829574022347034153689593142482311077074131608382658861032980516466253249967751278397933507511852270004730615677914157831438329696019659276771766955022325135433464814310396302238662257714551425781883046925923404603080024793309622419431087862888533371459293724323836208471246992536978510492837052579015575314053526497303519097761009355406093948492094980188769352867221990939246113901664599876955288478497497226188339842685334084432786845949296058307728834205500839115140836945713574606688273936963633891609672398937983318822558553491960256350205394821462211901320553376177869906345004983344261337442446143312609609950759670577085760029478963192807695373231606440206486066774453241852536379506250482132082324177554466379860233510267537945563963881177835595731816736459235694953349650161395802932207352045589902499020617815696805716201038819174229602010775994688453132595366396663343423050127683348279771367816229157666804124935626419082905456854151392858463831528309315422709862785626340742957515070658433701978268899471434302316606669098809468251859239140680566973667368520412797488364857633214526178122219275615039452501972884338857929509634550475224098865152574112130313023405233971231639800340799697180848173315595841137275214533385434484590355924137324090382162035758493665948754063717058353852571162837568436918096293667100260323560774192802580947309449444269889195389243523611710637778684013014510934154230432104383905497426985736127744372183248444380948373132746592043742630195449000898058384834289026358747757446724715468045208807107114488135267802632386387342271618627621861885224620783848073725151226719441616558265588865305493754982756001378171506230777323630805431331258681905227869329449399563091667046856023927432201902325482875064785549391668203708658373790865012262688100525304357937654764061273806174946145073743802689145027628276093867380399817152524122269854719321175245146796620163783085528316346357920924007468333773785094930867827559612278607424776013083237823090462168463127887835323479986409298826738876918668653520198741528278475170219226421001439121791191359597079351874139378989329711352344717572545262459324594848919382165040480970179472447775510093566965665330047274295098126509650139712001948365108368958543169157028888703931745497186921759590777084404951510554930956042910584534636096842905935429223567277222792856258281807894195851255856983148051828018700797989218418914503953937032597006465369902556154837857638395610866080993670259111796742711670599674496990720559253637082363877551973379376433569407738743494800612074133647904473453732911257541340958453045471373652124948434134988184171032867650691737944264431017982683283603444469545922476724505591146073020211029690607233635343187464163989774214293115885697112205630182360612848281121244339045770313549683172629411929426724073342541207850701170842537800202782957582152928413295422098909619279849246218344298394583086345408140448108992670117186465956229956369759156426191582721311264684585382152534150510839756396857545860035666982066189436660023093685652895771967114526869752959664418762487897861192220298517894049309480878748929723776791921369838831245486026599369762815673093388365364896230313110042722210835901379529954614112453261904518425456638501229102379808736272883624658358664054514886528437874631280799337533895167263090271472454173186189947423751816091516347856900841723005421777975087261839187189145189553343459375565473060560264053411239044124830194907549340096996001804721799264533703618171560542504259382297419113061745185840922873988950476549522582415521338957903404067111308304868564190254430614275575155427469312732438736000919294960347538640046537779490886022672004538474324567514329794512942184216305648585757818016194169051773079106868651573070378162147726296471172074301490144581209869659415722229962546208032976749471627950967630441251794418360264880799854883639749476611321490252740018259563641061875017960401697825446595031094874520632552925500863083539506303516989388124135663059043626354456318694728804706185386168104019758644608493249750400743813638590440876285887752148431127714112253068426251608851558589075407620576537716349044663845466979364790885029715457851434285750601170759168348765015973316163993107753160424507075567193263521486851854218242823388455826376519670398782312595971982386974066492048876864125572460542856423619195306274215507619007429480240206991489793197585665022376960210218266187379970258161316600105419151137655725168099507829595918596742747576078960677205157283491043523804551012697536509907573986018154616484967115554051758462395505953983339848506731622132574173353905729602207966775159984530209761807741325227010695645183151450652615683979823608536150892468114292451894246377615641933269578453754321142250905018811192841853018970314730118605826736329819364517277207127428538183985355453089595565191812718938964030088091605472353119618570095596537503592408225243546407046595365790440533595665250374534610451193295888515148337862161299727047046821447957077739819088397867128840606814493847767165696077807228645459907604114113195339813947096465384364838972400905250229255430459475680436188598284081483472480290397761254836610821012566437780742639861791732217081160625714547000595376084852225221978654468978838783042551335167284364327838843641865283664091433306496116318572486049573550529080006534215288777281776801289519579275003133198639230123961301916003705377116918470250827892782923810204036513887940014884601181971888906511684853383434942410764780017288995803190414719497076952703249957699403087512517381839334594683434405724387691391718553955093932155324369187082458755327140793012063064787731561084849705935023549611990115128421799909100768186314925370586752459222631392974989318207992580232333570489590909699621110942184974103629148043301687140601966797875332746743895410881131982762305652700679233615904012783173130225107381252360517923962858141514309105949537598340622690049797565361809125822214002820617263314064347661687435637289595747964132395669709910743375135489645845935243893370569652942434810571769965747534133447796007693886547005067025741324524488339633234832062328102855683520433651057569485717704318981216783135668351566820135070311113855606312308792367368741028572207752719144813215925727873710942564435426150375043579517573536181159920472244192822973440641906799549054340348851807455561755279116095656977529735536496053033176140275377363526091400898150453656517289108656161227921403797249108154336721542220976471422341627046994018994362155597639568310199332517292696831071754143246030876868431877689328098422798382804150523116384641333168182908040858491525348765850658471083543496092417393840414582202385982072824141013630143050474818923814668241727982563639953036850055383580431449706888596606111289990684836582676427095466303837595600027457139324479828985293537231576397721307123795375465934205524203880491292356255234964913052742580500434690716665385198783572473248982491463365831258867421188344586238550604614250675446972367378261179941046604808512541214576815910850229818148102507846645624341427347725941709610105817715306065840377767550046338572526757875039015177320541437527956721167499336678489960540120634595402069974044630623240419260970309262862250441109907228428012035246699269895602992383928986429220216384411226938741448094152430403772688119667329161984390086687520909297199328195211222452317341677380483492552153144160469594948642465063174702964912009945477352461188204898790317740061681023349276806939757739772299600519204406419780560243295906695831807625447542231267945130874616754431602177888781813328196146379313239140117386811162583898502542004486491924769581891207771164039202779165265380606380767706214633020842020424725328374256687050362137228078944052939520446789955104960463654849569300142793931187740967370733578507192263876573446485143683151435687398660956101078577767370137114656655349883472586413028848687714354154712170977701022206509372833072595562425000359225081970516078025742547986464602695899250036387875523065409894318176989273604739421647425208434640279246432481460103271165070030889576561674809806277309043518536186103493441231052560373410873335858007160180794527485136386501832321736316372665497079477364858714498278139197553499991098033949304339404332880813155649844177858939228082362227056118860538113021129725464993259553005086867948737469487045438149440067463542013640778950472528986591940699486510795775053239395166882207144241283591294360818121013888365531767914308166685516641275190358140069454473625637615086905134244791389408332265596317894980510720292883957880936467793014156373162075891082350922382825269789509906272703946722745864856519991111620928115662459027660169626030180167272424727724537648394268186882965045594064554273995882316199799302046683154011672361651692701728943161660679855223046678499949410646277974546222493912837985387484514422094106266620982357650724633275105442318440940014947405697729296942754043663346244443985844588959408191216177192892754979969403397747862625990924071410242300720211497119863559286597071643707867131366931874174151604986064051474902820925083126861087929879034034822643180455641217114571673728794955691183900962348944045317727603457931904606099529509686432266176207004977670700623667232720211916267479452492621812745225876070024549391112220745418438925934032910606235231942487554201063252964143343765288150797061295850744468728682058988557118755251044695679196584717075882798882213583519129552752555869003049640626626369399811074148429854587974722498528437416103288902875013603239262615819651619672725941089270899685677833747035682961608892871432943983505182776008700623201391963466634811829470099229350561714741280898086043132327847913767462292017036062832998115547501346274575056056283223752906068727997486283070046853054099945444540723803909835321489558965914984085820231850642431909496966264775297161838780972347741068026886571142259434573510473416329101106293536490709761597955907998883101669243822122231457526731507224870306846758447616951580758960289488519830006984087640849177304429887162095436394517283370873630231399097964801984874347183519455356348131668250442384311251552161648541815617761747414055864458745098230605442723012815272297308069480444243626736937027902401615273591621093581138151912102682222229101273173362536824490800031200003225071085397413569607768724989588624562296286208129439576350082454028895863307026848766809046371545069273121953203817758884352164218070586862169892960938774070237146746891489582132440933223044613407339539092508115836323054874835303679559904389913270567335283444737988639642722273774234318911557444121295283167144510040759279175597350360855832034863050709611574503477982242566313861101949217589894069783787808828882731987913117286890610304688522786630156505712344863956506976778686936925509594035972867089731441547130965033760717377367770276503390820848600362571189049196801309322602392347585299758956507072343583289778069690083599780677424262971796563882785972638147206232684346097010953549454719137858350051520791064047099822906134940420477210937533196015828063474185082102958815218217030532581639309619505000682056724612289063822630883272907818402535287057722211017142092693437784402777237449017651721083967370389849779178864206852075808214154826999917165314386158032039093018019193419114991527737823280571059068049281917340051645044569839525862253884941694827736375988075706849551416372594873612159925742066374336119298262401089823313522953906767161590459799245716350182187044596572586554307547588091564329802919075168047451739928583803826816202901400828431381432655762329365248102770949180315335882750635722813115368921318192245394017418878268057681764739664231684512781457058454811531374074064881923902109884777987201110626875509206296338415454280296318746924294094281275216016941700484130928922647013674632375782478499210223452418196042778887586737256304043755541574253977953806624550795086707653708344756495262829321886493654545380222955410443780495611468729987107009704166245670702177772526165777271685483618473062701958754395340653036294671409583609871017490958175820135343927720088385556882389175760075595971468208222196215523355326876213959040303408029637642604695664136267582909774849416145092093964249695646380011585695383231485414917200982143412073771614274953681610986709282344466168545631649428829337403506090821452319833967902227716344594655174227959584161974742597179316000565395993710395811721938101766277509489479315234980571630125592144765536106095498460411511175471914113465411625253198736166730612474226276098941313676815404061698868224479758954192056839149029230014621499896717960706120398481828135305584619715677815507816622754229756250601287002918504084224263431534110826607165262744211399362512197781269659273563865154514748742176274415289083392417478310618971958035101012550671984039216692481870723351654260571396352330963435408445187755672248189755639781224358030423090569212705711196378511117100545388607340140000697042711039554332795881722342662545237257175121922820225322410871287019615012098460715838949942253505596986077715831106426167036887250624751715433584691449470300984535078592766665936986247149948461509819767499128891161055929413962587772814344319434925499240606879001402597378440536150898341687896712135710023409709532858333831338903534152663426613589346798930488351997384268843500734339211427351800286214349091825880419572277067489398424878229958469014057860995820605777073203201714979349881302539274843415684895951644878540520699122931225604718703021051893012513150085179117875830961515709108337953646688005647563308795731402757904842903128489062183563237344799396144169096420518469157418468394942146316043328686430876804830674534003620331446114490844590783687638480531523619388705370817888553031537638666871120553515622107681261291012548199075074658553230034753839135909103687507934363114794521480290337383442353491090491077774992971723439885154337413631954869882291194312783152444556523633843188469479909747778151588070556631612356703340818630926025636120227406033421401123732152838995084932624273657737763526084828839439160914973062528855183862174376172554298110549399439546534836973526571236705641673111379559184832914227225569601467930576266021970835696760877412381078391881144844548063018231335391189114439831170419469328645743346102350552845148990891489105665273363884895672431310137967887772041793119793278592458996409416265475317968170692032756876199824279019591075060109280028835926086140731544274004445298287399060565021695935574168807909872189584981502549016540127839027735971464349472208335543186677900314701201758817484687977167408956031243648559147621311058769946430246218211392568331335238093314685923344933798949177728476983567306115255507014916809556943084345015760781399101424378326416844812108817109486141074525067809649407364783340694173033825252815218335523414296495218501117948795562135352506614901332332715750962442529746427558448011952095256990098565919264904661237643227615791204395996881307126569691016709605328008695167976329835352259974521892148755405809490715893740328685625022908579693436150898199192077693505512907270031353751528213739657159083740284971718702130947465221839020578328030093552717990725754680788669878782330527409383972020201302643018119616928857582205237374195185622384774110703682565691303947229215961320724628512620664782167683806337240790226087874667596564461973115661105876198310748248561429326563438619510292619208259920849873154644048878720454444700567851036441689659242548924001733075129223720014227616852285959905744852044683410953397438093708197215048061540793333129420467808586135003515114997611562004201766814156008467632508101038051524956884995630556170744898351249389465833595359165222264295332656078955801945876539600598058971788234658333980879295567775207517113934062757467212226592443666400523354111846631970987165923585088137415392547851446088240815186349156253874316589630190471068084087727223018632552371299045853497802988812907682142014224131936194374832185580805914637446943427251768236455086221800795019964775400907036613472721485340484923933328880345980840245584473026216464228363006048682613092280285125972913691339948680125736994190023706720921195298318773998750838800426516006806841939470932783754361986467253592269893914610562332278187846453724009159394627540649616878280867935697705233816299382943754786741355463769156587439111276769768521406030033512367918210798237864286257206002209168640926985821770882850353320974338373000266607837505419109009232951592124302458256948783255727264671325238529317907603074372080174675406938135979844332700631962048908409393779152376349710625226806699209116075912337968757621154085643897338221876844128137626231574177351295794520020446959840339042983490945657044912912085552327291217631213237804116240140044360302893786591755193059046968900368287383937597423349920585600783571131076443555862598717161541419191483452987645071305344248094713390681170759036953919560942193073783062370373457696771375089278469182571658960190993810949515388515982616136414151760575727270424390744334937509605593833363689289185719943973535251320923874654650968908887018924139029882987993379460440574980747826067790887941466015048784238612591052274090994712621783425507775771802146783599956091805034765406507255735458168174199344245048051274303829681240961219637016175236888242996334143915131918047598693810580063053680730545055034728285317047764521052432525906439780627720203864953610636235481532417145943880000586165000343651613014394989387800902501201855575500759108881894394845772464562216411771726817128009799821615999389493744436403184160065219639750531557227828502929118269447203602678218030247613790438606031289339217771475621457224357801096132581163255187064094306219791623854227914566433674708881413460060983788436329869496855712130413292659169923578722627236228780531249181999357806958900350251953101355152716351357647603461490918250771427704342358034442820361833242753919480029279080748055443653082550739307520831447953643846504981327582682230582529471026245119615242461061058612406574781561957475422588103270293944275057133639368455553439571509419200105976534376524307093767852204592501482024785938886330070267586305889116254324616370395391475695957939350092121363966093258856356973861655223674376867165489653769901269474144887560734620598442828607659384251554372487480970568909729675515018394125591901438044413637791328756985026800426804086302841137479382361199119294397524296283932928706301153767187373737159943578360046628249158694336364536610503896683635464746746751874488745281095888600526871725401782797567544082676311894955803328608128439200716280395386022952671177337463013717566467570064527544747184788251940914464510990572525392744051752242287798799601491673513409578315387653033123645976672031762786482084096307510019351272417357583855837805408057801319246713738745044202149973658852663404599946575809761792014123038608578685753673579469893091820596189248941490601619223718857488461578709078685606697502108530498787183343571454167359476824718322807676385873567083364156504381060758171509204428273869341873612394962784586894651743575084216768401403960783512973285117302957852243070230361808292947065978698342815473347558561621286314009707709152424887012690728598356957906960293194405253895533549265300319128096881082239550971836040793487342584400734310044045491502065503026768558318049091025108204511279197584357938438931187776438497266591922617334658899155246065481287104814754263789321908578275144580337898881257425867317663601872918205987592661108665058471740872237248216612634569001537442989257918690344401614225762182622563404765077437625901324593829168235306020629955318889086020146685909876070168132983771750002562613663550630646161619071095322939421018091053346900555881793907937777859169977354315958934616988141646102599635613890602472937992409711813401007152995043964225852784516639540512460882088471030968305678333084306654191311741507092145434853863823996027809801691095916938859543472104212559931524231471510551712022617146186255384664392671693199983946847479192650676658961039812318204260947745036341651347888836462326878039332289445918328458305875218835866383745072055376549032004324489600992350077585860496238709939598620177672451674135131575451253290354928785967162113397228936142414477101920532011048942129025552420189421949593285258089019457162285907844947176065030145683551554001365853443527953289239034440846493918990130026221700831323257368678423420780641644350396820597841754158240740407768174681944484281474440243092670477324139730977265526663667543696154469040110954649460010713608340390733644296790780149406445921949109980325852043597804277379647516898412103277396857051409075587721407640450370848009270917580775204735953296576838912638649535693916327751738484883308249086683836530366963413817407681716652156447418580518159825840638548394308110632738291780248253353388584827531750998009613611542492053058707294859025747483540426965588760064579876983864979744700628804816178781262644974307551574726990795075687730610943330993750049187146711316708298780896998819748956084645698648372663186186326251630117827162884658683343648249185676363669760776567701670019746764124559062506430103711708573325181528328250150380645149108974544452945177365882090080098497439521777849655891659127383988705768196878009872163177806135586021185749016567628295566503158882146248748167411572463754115897377621389312317050376780894861138958261959510347294335472817946931123220336243729418616374262340856921876879018893868048032828753987127936447945596600093522483807198525270105573212825153192191441321495995176787726472157625316529435692703907713547837908030509355745234533381847547669685396085278134751561108090971175783586888147575112757010940751843948723049811950294959066025025053915926852873820900331234415054699077373590964559697820408034201181598262368578867546911230433634678447798616880230368573230012264140288831600347420411331256075037259130468061611846042136406864839535644264789299638373042181655413828200611788903481401394124908595981145092428281662037552396507665827704573188021062776996694637155521071644580590199253795411099105375225406474356053165949262480777291498470103860894091309304755946412592464092796981967654579704157231574374130915075807031474326067813789136013078111674349290970766400622881823190553374881714204159741571327674832384431446632635394662064084044707359966720963558233627525585038000008063428943854714531391825114982868568219559961437284226148613780057249825124812030415103731313396896092687129193387695659019665436373177953024838880629199612026759135124247992810705708843019747791983792744397127815314894544664281488181823595031834120465061244197889522755422257916402396820085403315817499466956916089467253360697524945065529016452132534572329503468015526401843597983022002813188741290391711946526889663372283508318472816276994923675081394259873379112776581625319178048545581150663629743231972690804526474563210523176008647564629355894448185521084288669148449416647837446285293573445937296249014612018216760593500826042752237549121474019622761719637710332893967886080242628825243848872491060380999502663538836677353098527384493637479291324736901931165807574497822941671132898263735789485293951082696070050871328949996358340622743065931830674578201412588775934984938441579617730917390423095734576677848123298028998175979003349079634520269860839150812780007445930462480237210250347038946395807291887019429355160779173627454048178675884787355514053615260019361859252143943185404821199208163112142334026469512745442363183779526427751270128330516046527906743522091859825710617603091727617979712664687298477852448052337766146821743478856563419400735809863309944533272361311837072943203756253474034234870347192654902427298108880327261693624043652078321308429903990694254428843917460125746519206661713544324211440538020905058209909651206514556472801353949039093850549629594043227491784213419571906375296844413199910674459852261656694838433174324709072947045374801362249150010425639765626018837544538131476664848618147980037758492067502317308347728800924386389351025571198309587545353418275971333278266567722126286080904519965464123065049033688802670389147848720000008802483248915006504576484448473262727023412701201319485915669154909148298680595818102537553425268156030749576599639967743262889324532643671590266623890688013849270626328859078484322105609661296902620263798556289674732666695483640028124838599261454248866657089128596211399341882798775864389843660520740841251114281862367994713502928937649237841902040679748127476029690981559641439198853912257115378131201171278710880247455386078281682747862551566874914181215601243853625508112085566093561136044174988547315714933475918883952847002234206370545875779502405849641713017405215744727083249675833190763580215905978570082776488623562439310282284987060091416332705317571228115663193336544520972149197283488856926649166021674798745473389931961193992176396783222681995519904618225338421526874433117237529510363803401266549447611888997773381695857299733466677844870532064039231042669743320116310661816124294375164461486376126380575457050477544777802298363365823735864419836309084100350253750521672103994870581483417537998827018854032712831721912587133078725204223715476603677302378846352577745198172253565293099915053263294982171380056032962927990300026232235751533948549467036483187157628688916220849994921413867733597459482365151206848339371832397992588769181424751516664736467062562256298499002890919317433298357775892246959222123197076928626668587227692960732237584404151080838936022907673670528983127936676698315257896360869406913548008017076735687178430641559060499041605615914418741577474276012128912617808741114242416669244148102271076106877043900292931453032365786799342891260579502388935777074617847056781097912571811008593052555964951353110499633985759367069258114597061547332211713787871562595745296286606635914315914255722026976520936757682304396699428521260452743107704505450956392311842590151822801781448526733962538268719945185096001166594493216758788361770103752956547254855301084131254186436606595355603488537630678953622852259993446242363810374548817883904775387489069230414613936744328500785122640796144597601556105746278798584167589350132230475343542535241972825717391218419029252920128152031167631951913583670008327092975897764060000777465545548559533173590877912499575001209365156506265408227116831752552159864646664358795969313846072226436560307660928111332289364284903127309885795524098262822057246561158766733942849360238664745233966336106730900810231879623721864225421123315047081400863468479117627688801693854162840917901571029123359461565973962013040999491360453553269916364925970692197038442859146119437187509739320832113360791239589714831447938098952976643412487506496976437160612671144140343861832214970650971843850242747571814952291470202819800240309410417107220342083972393856381973640170859093224610234179501084566806049508352428725165903479824654779893339679457537818394679718347775280425316358614299310434479349724119611931517964603369515997005584690314435699276396560290543614416578503501207494332610771824661977908610906035393916208001438205948554389293539800312683170383093092033538734657213073085957975440085019614173947631156231738739109221062016280675778643226249945170567650636927388599335567463814579218414629474535310433661639597499759145945439375660558168037808264981886407896870496608575279962711936213172005783466437137906833435128321609203192331780289599898113654322036834269559562143314114326827326037119881624698581208946994212359492066780313525486725344238118191447821747378462013192917497833556488639912199482324472766207180007893200170429906653833455369086605309816794334183831924852322185454494146908803049724885515696855078230986296015186284970311922393789278318503755881553981102344909726717234729699618142302415319005046134159210006584884324086621462920246284743788097087492587717442751805480069158909577066788475569014402779184744348900405413355725789586701012569491080546417422268545870189092794792166449552681989131192727860410431449099773052326629971628777814594642065826248868440457529633029697058045513885506773575374919021779391248989752411917008444469473485361798181836356812954834390273051022962218244917155150006332636151368264734492301959240723283926493169344221902111480058646788451338253738995314894535445155252468253090105515617051136685233681841968670729543655065033671835082178849182991785405697668259376327184614872387907443477599600467114700562396554067406656164038392848732236010431516643858224003837965124020470225417380602288121480613087031160541263998957691286562595425066961969740266792113498347365254989746363935089648208795598491796393659941166278576300903819745557117253677306231990164183268643685221610625671322671429840373487964172672964010955764622314599859907500348987554424275586265756016943885545001331079292634150527217919555549751255134810547975049840592054707745962962836702754507218118505286242009660907641339430817043779424274911419206655123831700939354403317437076798963146418467329998208654014303107058347524212225501169601465359770243299004127130346838975566706092471461715464183567847811517122933266246517184410472995271987624785322642934926745763863183705800451182660655827678271944400606036224021090585143094185813138963020547752637424571314895637524244328288372374272333591890421455105684177331968259934499209324673016318872043376965129596925972575011010251244103209940241905406060686962004024633074356978990106578921213115065078842742289963881278331083918175146370100969062134485780295314891618654345020618102111839672287866334952507415659729599902071819513926240290204954233361191103354131866213035273499803784924042274055603014775533615881928931369580842373292055246298129941741097553949953398852524593166225566895695435439581633917705214355384598762212203101081207071913661010830550952024167330211863961861118050715949218035381094908781242460940686537126959022158431018824502871914867508926747390246181530550453648488280402755537643606330716327942845407668561231717201985190890812076527855121925161298312271917344308858573452996654833313549331777329086072291492401886714059331566708966106867927559723822670892283088274685764248124595269155536419553440031127345191056020081228502041721222186292999582350196562986523394627035336295651707772055832426657933223200526218875218115057822581688177604939823681880150531082383459619637562112662206928934254227847113327775507184641389842553653342313313758388713237398898207304196804429968644069531556666228697261843072519865949532985322104527658813356418571075352675552304969063569591592845817692437991062877991099247729784627410362239250677834258851408268290610664041166231818449496248901573666744257016364621425197043479611174720227130600386863026967525408350475624077250429494128294564636383827549635347137090893747434022970345770098827980486622861202309599689578782732314887772703265018092981432487876836956801528886241891063138737348281675125004548318411453601470958177422422690203008678976260118854966923335364144249288274370528810057603375389276792624643095290674567099771596233102831975302821547890764616789038682021368477289133401152414977014893292693335862613599621120442689289020443690070838722563864787384502899560193981484888301986158236809545139902922124333045657672800702188116702639472995600039227944983889843872807676931043070852403860395068984077769542316893177358351282981358970349064102467117488751613672018466253119765571399275835189238554301221980090682348828863918046439778417371394720746503882656530758434872571385209546011653140326610477602699531130383842141976977301596210678880278738629829068442339571805632648324174874623802392475094382758149095478480028544659256360315160820134926352186269847785033666885236541546732982883525625397650357851394481123611501746744123776268536014058225021013277164815244375335374394628409855420464564477532743682322882831051368937206115438231661757402032685193911129289582898377275838597435914849435723135054626614983928021995040530267295338678580233076459709443101897864680353650849516886619276936932842032090197298471095534182452836399022388576234058940699086586904120832069315162582741745239131276279693615575418930753659703494282006882004919741144056819218383613819727225386327713547786493935744645071714394564480002115668349565648424477442577575496583888017697586349062452180355534259032800626459035633902557196430677043269633994938695251826864646389594242597080444364654836319213044096849564446104938755520620409533570240158509851557174757633921713783336471160372293101860970863644836498861282977964057146639939150997640353114979084874562063167150694872335172678105233978927028852978518182590009196203711833278864852761342870298646815691422742318088174239808498602989758426975323290573074064104747508889405453586688990342145511326035505441359469769183860673257584818072072106392984621077005331694542142231511645957298663094589790814435674737775579346336053190962546934358031597733435115706601123336292679514025433056721315704681804447904681766372860493800785080601554697825153318643423847275780026853586575389820916599871157112714186681650094191660757332208499898528601192706669770270754356472471774743780063549211632792686521833157866729033166138946978479130054724433079496181556396924589824277716599408668234076904222802725844790392022668552018270805976300522234403052293979967889377123681512110906521549692580670818854068294159473450963508852582175289951463435215371155528643501852754830028936070195656177526174725143361147767430538636868060124057873260301078851993624486075874423090024426913591197641628087587552427728615562227599836845086558655247494118855351470598714608967642134242884763062840362897041530099359310350029906869099708746919048843233943894874741126834680664553687300626391598708339856779863583345652394483965506063536636660629515397662963156132349624739362778753332138684903831416781322770297400523386216030299141235488599596537215689461731055810047958671193899095774731206969069823080848184995147271194188542205628610382613187016540044826201321145095942747059157390474300279181109534534877693328701921846347689846702288296844063494819762570967213970610585802140301149845123033590551222125786222833132495167849425752940671179993399664238785651359674452483979185886839257010666649803397248375303157996598559816148961555852255388978437280762066012270322076802552770919034000132119360312491743894258435930167865137663836373404575244985460224248765462952178683686506025316497832669927546395471488984276155903930334522627530864892598845108864892756303097986374900793142505493818138786217527683562312019670106458071536214027547630797266750030292933895838442056560515704789796851002077042261683127546153872369958257954664643395136110882969282902458611703186555062624335985937277156668570273323537952851793945648368717594489725581654213840484341118333141741224078680737768813012061520326545155322390234796642934835302129142554353288081596850986127445887749289948659610783822199294990036624503029711110854999531270617688355218147157081198141815778681321237343248781441100703063340969260579535957329953913392710986873395859493944772709945981319708150205196707879382993568040676078630138305653747362474263810038506630127231119480006849816791414124601148381025064536021940141535611531822853277409776416021484958694601062832578290782695933718911272951361757443048240389552742571794364622077321189622507342944616374053406723251352241990484084887879717338552135684813935595616827380865403675281885986306628275719051163177873127376178490780418837599089934436855063518078829668783120768057967578354030526022346049364696592187912428386433669480555280632209139954157263393484893302011177308756591564265598342577532806214828698861499027914727429598434840156329161190608231286221898488481825538555960641233202669168360801073296254137425904853441317274750760657355640352567027931864541988315521901521232060072788023705129911088051091619517849051095308915618884956611169659213028924090570749478761559999742965923499618529370688820891695790518650273214184226885053386457106224056331354789697478189627274037198995077783038626239837900699600614133120405447295727658830660002419525020874102368048656673883189853663566575044955732263382911086917349267566556003948690958976529812238826494675306831623511213530626987521067358786775746309281939620514342185224263588397293548272924974980906524713166920030871412066181647059980867371898739236424356073655503332968402581143281492190995952842984934464149641807477461802746363109181716002443095144145527295170393831987487268644724747809172951293859519862778854932362202506853331770416422962475591693397143369799390614621261511009986128655483499594259996138739838142655533679315097743344004386724320277569443419918664932699457445987285065044968497848254649437025756174070400672547781384034355037588474038049007324147873752405197545950691506956267952514254373591017223638557754260091145835287379346741827738073207875976883721617693908877216916576682112979896232994104932826327189302804875970867401680088491240744579238405337969054439043984458495599937232767760927146677173052842254454710044993590043261273344656699024209703165883204861451043782707029370024486203158055417303413367953475243097758193322194933921807012099458021990176990338752893605188007011868441504563547220525662784619780149803252082092181584019727144679222948263756475344303963139493162384075575528988878062649983164529341333675222550061046350244309188612135757725293404494649454658391390052442390632207046805823657542912090536396710474166165165086478156482900167765359504057345637213566098721757533259988163679555701001290171873471494655892290231813074714077579267280237781186453859426188807446442915545656310579355342365956107147030287315843638633579001113483972916624635294835789054924176405439979281090344839764336678451853576903426947864728056148973883891920897757972775919765060828062227476778247909443667308365802994681568720837036330746066025003143518321040819090694665357051861358530081631559540573221632264711875655680400824264145251810946212398281794258927897166630926338055215711301016138036180065416382266576975419901539693208147791334133857161241863245059325257312582745602034854654019371732807934904354806974188785555170257827086158849339082909283084150546628263772134925699621182608676450773285032277436197341656248475167837301650419780103158204970314469680753339172806787190340238349187864502403395392589328379189458302462730284197255421109482859620283653142945685305356700444965774850218768944253940491111580781723643636889795319205879948612839390062493547596079918249659257055823474766933713335293269139808024132679215640869880919516687536519455849173777742987519071559916430027042533583849064684939254922487947144577776682246736783794730033982733017202763183841329569054900731987998597696058472132250203492598649601986928875708141381181987893002506980428565147548178328888429851268975142052762841549982879351846800398254108959470089888714069384787934569147257604860178047889411991572557293817657221451472240971720931486745281090984926422180168284796357743488658048520841918841559868953900343060223696420389198769425040287290969548133411991174846289164280320652075172218015191045988263138053298210262039229102002671328751798554231964128592545772094267127144029934023623188922952379974838185189967375069691320828956900628168100510830448091158618191304812072316558053712319943758783225388193084480704722115605784457835260363074138619524056018069690013710868850191378026662220446059951060540262487588163770391130632556440479101176253748300141455927191978361305709825701823659594719328407802138342191816614322417656921223889509752857462877698553706664456955013982751406641558298241190191856899482621836778484429219545841839666208692212121644362676960201816604027724560437114471431240253387622399821579583580502119728260360148540993582034346893717591454467092815341928673732366725657001629225783637135250847515626472307651568536227612460561961286523940854844459034420719354060340084431705608648854950576954064237086480911121123107597842196476960964283592890701710600892757344322065310596113128003191258561340452035929992712450974306052864859180358235376242757135833540208958126561637178878032382926099507302986446016073464400655396029852921018833654660998542735263662811223447898784659183826145900890591182839390059962392419026600780258375292988767878923609114618916676079425943580534179093366286916817731873572707683543624436526287957490819798677426931752934424848078339197949467793027175915439571502078178171237576719844467033575161074638100496225994033072686603711045500137969083338215424837278718396598714170857422462331728508705159573412026102464938142180511315558957792294377286651083904649732794044301204718197498000133842217506922942780012013249319984878764670330928181609346263673906365257075839755390099360994458473171961780948944041286990497444576430386317273934787175295280385808150664036172867320500780111442858746803443906399937110796979861962677833923858305557208027650592178381130061973800864593989596141099956373838615483021710189255453163308318367108631421406602613870716952508858476077336779754263426913146086648195368609297202238195946207049493875712986152211763220319543856728724613778700073553539162227356197969988939211682417485921708118223140009759100027759509141168932277041840332215883817343976560873790666595702033332555909687564822151312527051698399551649237904766493472967753420987668770905550622800624551354643963004088870058367166639093164850056945971587593863325337253210975487319362338431728264481981191897155857468272717978929765770233605052972343371127343679859558076984609254171160189863045904443314379534880585043240802869047199140767349915004614687467915616535017825741209217141784085425010115361250186154942568067560323643154987955909493680993615084032240563774233677315920183114161153265647063715828373571517190705905956359081140540914221312572193996212088710968062481773046275844224155115828397560456407761053254731183615809161645133845738297921107085961199990878174854535889174960159102187543760102499594191693509463260161101883471113287192237265217458643770650909702048891111627607641628059305600044969074150468792342312698750996209503008466319490839713104833328549292404230131758040438169346759356711665025084113820604421046139632128823550904569744207561011971189724952849880393578067572121043152683673421471373392062499736927729793786730462628885229792413167797371597460534871965923368287155537017819326841653572089932145614530928325228025392824015651844830775324651322288725837774820458930795279597843268652740606949411054175668265408271250289396955941716461690163601722680444691169708608562880578184428998668196280209445422555618735638401380674008681298743823359104146181190931346969928723776696881076771419507439937511921270893218831775460547626081280550086437357107587755680247283747530392367482808013572286437518705737164322336165824185940283734663892965396686753193318175272177956320010515289712738522402675221833875776798206181926557146381113764661688653204788016787688597330807261690666080603019369102117037634501551813801249124208893121538086431898498213058091795396306164448421224517709890910557085906626741207604275300136725436880705290707877409460572183893145172385192967612163815765411467936380853103626490141089030632518993429776122424013057846373412346696682515152940948361457501819728874518386272988861438801864139610820319623273574561917048255459953499603640648702616151985043156086626809355177298293601443962108762714507951952924390598485504761014463915796080101382444516354104839176628815495271889221687832973973049483953601035348854858987779714056102123278088411580584259664202304003519451901201920599647661910368032013999346420260447991267352461498206148183507901099383820114165152435619081412126846340269958349620313874366778673563264895765544740101361815980222415830529546990496609763987340066458589403995361393670441380965484152124473748164018196125313088556235259441041545540443605064302586850183998193237011130306039191981909558251867991747536574036875165490353362431923144591342985792930659558538681604124484764839820981490522714431368247739562216558975535903577340241973501499437000395154954933517976173051839707630813134393488247920941293865396681903779040000691127148648901970890636678762089927963666751416450419688862226099548947808935608455462448136547908139549109162226271044745151767757945474889812872931110069719116394672653239177424072009352395093416418729764001466630183471774558061248867669387641565570885286121385211044969211350659880605746124770889333916633469086609265442578444199884125363799826118222265113316607952007129233850567040488119379563405642939993699909718913095352637127238507705104332995578286708036828416061732088704841547152116738117620777859030896882086332991027062296952720253872415341389818282107507949711195097768240469010116666219620271222811308897928812410083008783963898054978851676285767952070885173991021121578971108077417854985727646947316137988544280670910256710486127681305624724594119786250514411895043205575783599752542911027916985934469552942408833951296580410251029264014963383024140032559160676664203672292720079661753071837714513124659763216891420504503615907376718020439750487837458089876510300819226035707517351843030839758738753296397040032393301136450595838405201946080723738024573888664295762644200000629933136918888187761412488602151310487841468264701922629740234221775920915536856370075671460025439038132599237722981471252756211718289199302014097974901797133936749873839150904260225304411239828254302095480253359757528509308415009318796186294324419983071189555099586108310473501361798161569748831466694731059812273436901262229739450281498933118317698849824880707314289973294519621177978838115425163415082892632303316434021927395348994084730622317700252963279739123357446827447640092617693011086821659806946983398606895152521429372746667962843759110485742740354630875620964466944393103579672036732186225908547333125338111269600602347352045186005670747329423171470713187985889472363806697219278301932084483777799479868701757914542116504704933331881461963681526884232427389606066071035783084909657129729828904782274674969021568542070919516133744340260878741455404660639498904134485357411327529077780188431272781725442148246988943561838692706941723969328993707825865982157890105373020903591420242997900399928615022471721056334626308537140556499898551220186800860632948308477594049794194634415426165631916972989737837540114504876173309648147108853615201765404162733650100683282825896568371855908712345896206356379746670039846202695421094626480863186529745167913103794351892979314365430115868234531978194606523033275063043953284065473460367369147813482445978703539113191665359594002518819682448901620196379850314297727987611557045062211961549978654205858967842369284597693838437662693286880746810264037205692946327597014379105316102715204847949489167019182904415149170881573575750655149927065405082101796819474140306053479385909870488103996123049555931803118901781277436672069889893729895216107596187202392859095108726108073772429347547891140709954992936054433123647605351057428144945902436317715618603819212045319871499340391923205593777956329708916517649649698771409211337885633873582793350120094277387151192648030999967554945205016743997627318834292502282221702902999253757920142488880059048725116613518562646905905882794006562133980643881550365432952977303228194995666014642232241866079555870199676386868864832293536720882551555915863672605978003391909268307132169060634759980965509908144156273900574701442776285287959069595504731685365339613279611701054888196457474729143949858584449498948528620125910152761869017648756852057061791939315357358663819639951088827219862774715147146343622129159675139362771847472359176581578231338224416988109192336487095852075229090658824827474402270243749020094977096048185956148259800536089975511374472580722241127133224090701062031478482485859212285329899041400239809847850750637880046488430470997870965157750540616501904519194280256892610465965385547799287505903333877389171006573672375660588943026100825325690916743891061982811491778540605051673675162375320373869443938182367379639629572515032901315751298923908528090736503150430713629587046340761309340453837877376105132135002561337690078591565379488405494432536693091549961702786457876571746310149180296266078212097640185742207811667275783465657804663492013804349733589208817919876434762828850099779712497720202074851833339609259705858066453537162644498152760822907224324623773576628768141951350894760911046242656748509960994021548547663982691824142690310933863250567996097305861184645765219059201849489991077316539590933965545463723237158348238655084117416751402166216692066289897119871695971101148082100981317587154127096352324375365601042391980742924791480524665091658291681291883594461784270026858727558986964344464081803754515378873676767210547179428033787002601144170028000387271834837361013078429730437712781430612104111053400425261921569186790302642496136716217416639795799975092502125440153567507681770652692996855522001973210060283736285246173246963312869818820519111688325579546215189480065556900911281773635277365868380360545590635168164590193626517629899450157458049996243857951394993105142793847129003055190460127447564012387863047159354688386635940523865295336219169608420128296071129815376799320431597835958189725848485456933794109899727231357374211191258863130312618144533523782878050725150604702244420123671990938987404315300670390246119394622390956300878827596886603569154696994427519309963844717381347236655926645051323941076682076179698928235704762277057170441933747307274267493505710128126614122268444890908890136073394756797533624124147466983121683338232095679901977832369702794804981252916805823024897382879279527708685263330065318462872560943084766209447101513767263828669681108049990861769605273090390121395419512091712307123400912955008401060863818813709864192379684481098128377899421396819448619603009719527841591346196297150006088714714550746590794576102809754756745597330491622476046640331718883156781547275857961649911602530327749646855892614534046650565015505160889798211437271640835341543647182040805790846965390234689513321019153186990004173671481502008806436907151183038759210506372396116083440829329848506307913039848540289801213057681493873792400093177984468517154895664008675431433978355987546179258765509168428231707720794431522620508360029476243506283310226948435608871978875568206889331268668561535283834754933986828124583849730219787890287136914356473844402747452102634407584041968611535780823593376741177422045222886529319392234744283261479966376232196038498575668429209664375811278004849860750595697901770632881185073556297573527553981843132998798326766217401394851331635074078078312421097730914141914004292370665346659465296799996508958327778986353679805544992222581639198627169395499407059617582878247263684057909834760415554638090065475077916081297523400080042240165344011626367684531904053835010540860634745290707586351211745104281125359246560207591308619297631184943785549177901803338260963295758358577184343904234402828696858985878077141501475325264226807764369526214257306501313933324386585324355602697213152603521723770100168635851268666768877443328517472259001402126735453297392297940132304019178014666983535063245619485904910278610088357126219795371612739130621897955340922658896931351916889137464319400722015749696052607481865952696197308921965223090407218162536086111054161631606616315675764399060370570309313023641612554201237124268742673150239240264756078009866871766207720542264775141769816013985692134031226114601155463851438696392286778892667137370744504831108393376388198330408158947487615677808245312794583141875444329442514247091632157236416220138327271433528714183763701097807329321791798002317139344655370027314535567484888726328142653352936760044049029821244454547683753296173433042413789873489234596101408305742608675177256980052456569134882769347683745614049965390423999666981792587857821637814557251318069265456687394912108215477677845789508389589042713892806270315902799033793172495611892661487062371084978675347796445592444661927642865113935024598933495139344676886361696026858348320605789137813878859018811414333267223534881865358598822511947759108025220185926510479322797155799295161875613859966661543836319130236187984313237959051727843560699994999524128455254086376525777295838238120652516778632524019593609757101735178674917276056204722870545380888550106088637741682130454799669582253303396218284449576092353649770657453372120121219248621884577100364032826356000282760526516003289486372554853327673278752273228980068374578652394024230785780093218391506057831160360180952908877564062678522066337945975539149243953283560843363076745179095344961642557339572939923756559732893661247351227200541811107337601363981920030748824935042296429061119745987079369213860702553583904681785770211980355404804760348379961971668450367940619173798276440513548242838652316629254755379690306138734899751564811031578151334979572631023529828152866891080308466196611035895777141785322217177110023970148677743908906436539753581870767373823845408621809247780709484447290545590461074163081548736838952298630702651543727193641624327035394082980408415452391714932850032002799737247962608600523404921567613570037889935052663366962236061160717532439072312994806460951784336114315869853599202430000448612123270565833192709737049765238027480015717782535655333886855098962057541148216974253909249517879150357484828047345529922537147009033652990981585652891304163048755679539710211920467020955640066993032530174390966859830905606879061030832948469427654976096727674161257875765462282846533697859621547783637868306053992908252858546778841449530629360054879913328729862158762394619488838965760949394758789768770208925945967333079798904040876759643273615494597639054111846156101607130444078710421449490477395601780809488489563197346888241998767023249582048047853917723642491735229237989112761207153769504627161612130894609829430127871436235259702409955108314328118879045300516537208348813846221839324607001241356290644095098254500829282181129830235538651267340275346623287101170256042449282022433035719702917269144042348641092345356312412896645846268438865111049904584296677811396565700518053635507677230436323322896688270927720978944111873671830976420919513258920819119163802686955155959065063047749830718667477602729375149928604389605860785596533933690622649551660015306385263402371884870507824271595501298425885799680130301776627338179775910407533871717602280450771953832102399426759268968334356361818615917993045176949103009722904999368434014715826048485235950455922018482030513209545160413020686124991003601251285103862316775695394025998212591053038735424172639508264126916611550006822060390461694857167686352624721352888482538333593911435512090109444825519633823628313258439223692108989344501506630974957317850146635752364744909999533427687925171620926083996694813744306129930032811309003090114768605417173946721139902362621712315104742715448495875777777675308505969057812701852742658286591049902345758854792751205973615222521798646103642267876869200018974787879764089888715877043898415052646428720070351643245436594006278096706352011921340696319764016122030107849883458203675187321647551883408511162222460000191240769226279923680854393996115784718514056741181724731315838657303774629775297942097239681916465325828122236270814945572355665771541512921068669539936439683796490935639917067956567623950129467845480353191442848681531399714425431676689917667910983983054393364294655107685141740560552640945583134847432119252128090193488158959192377506233239337375704694688062102937741426537988734841722961484133522547988780736305952316510077439629920183376184499509710764734032303168730870936152771718679808181892920230948191478431162166978551230892571312714994560273336316830877962608834219936224933282508115790734020263769400721591821912820774061133697940132640420253920723864047135497291621915263617819845003603206302657761519227316222093210525346415828995191371902001913184714342899260033794159068058719195370525921471357356796268267586050270113558703551030883631926487092242415897242742993751914666766219195419587767132594113942974491355850615925015408810804224567204456200006732463780225426411976388694541711066877088786221660279456014673289817123528718918883314815417602621052659168814319805969003553148563132979511193272087045032048617164308022769100661244296928938864247581465558792340563483746721595618222334182933357710458926431024563092099513421079246356589170680458178007298017153162107406307938961944663643522581157157228170466856022768831805982423110792707653628327890806928485307352605088220263830983637276271735979124126252015584826947034260206994657679419371717860539145971877623603335725471898837555989084539451924260193114639737272726926335994587215909374796433429594013012630771989970886503524011668537593652273494222083412990613329240335074778028247951833512294341312017423289316281103934954789419103991788207724607223213508946332810666828884441643832830627769825484718301098374832099589768526136678265072372137107940831906151108325164062581773213231945250045254570964880913313149979856490226012371019470200715170764507631652723555163661088623567565844974606164926833766067420680338470215035115020604850629095896518490692999464992556828657106588506266779853496559121485033457871977914284508382761756592083841271886110502175813494400719025647629234102017741687630198797943240894091549831539384775296748597023912258888306666344058251109003323444562844060731014780528974268178094330529803443140979133232005536042969470546304183602159852923346390890793714864327207038344795365935800100795185022533364222338573341471251746954604165210098841944733635941897360310390834481214943294015445121111197719099890246799449525323930990248577343925614056285781873627669707271572204834866994249245444139695617502959407658070930781513986059660885844268941267815409630132133591769360176747567487302153741795214712822434238132213767255210414060419869718369431248425023798628500337900928320602398558455698796358995552722756643382063295630736839270027612485374560636155239708084876773846697738367200790303983935424080291643340244018964563390512667594698319741051675315122860532157195740758724155009447688234819295751287060728664342949725401312271143054780964897838849850925139743891383745026145949875066334115962909213661390148628150729913784300419112925466902721268216553053980336694072773394304234034405929709298972997283349707202226612917999448108863655200334138075536217041231057788393606430653266220997421608592124264225490185152006826329183846007740569494405834728035750773531111336872880843184512536961365518038597473176309761873323938658314064369244837380093122210387788696522543651162268583666928440860066042120914359063342972555567139660519516193011984303364845809190668564230753288742827884778695986314910087198542621367908561576917187858774558573131403136122446137729207908290938573937964350287313457555796293030829718138430919563956720598357011991548531304448133911352244844988152009827704371660882784767677232983967021262852927878118864187814951966550988015347808684194161200465323935949346154950824956794612634812965922774064294667350372975616046154044338524265482519513017987312720244951326755215759532320674411255350951909195796198412226990354761068699777212132176405609374958162289139713187881712857488806187098134617198807373989577031286568395201049726613700987167751102562279305338957133311514417845659391148379442151077311355346481929880756728398418289612888074891216643921253539032023794684424040118753747991296341879481244028419653095553345128835401841590462753681272966245939204859685251198858500656702769772026733340543597206095955768563420606534282503394154740765314667496031541452777277169089061650400848405246888013374328909826482261303489372081363446635438449807895156389398965572602586723014356294928131506490699091439150952231147313930923144098644275328602834374096040784328188023208328347719899989653696492569907755777372523794022802021631404888894587163837868880216642793107914502934661544779909692603942785204278993380959539023952449229198306551024385570337477768602115611967318864773449264708005757972894467396747608684043051805905422837895102149471167269989169922417842122100936387626522238591937448829364782099872195816923705456480711916177177501162788210825887890891058908275280475379160243010866403443726454430719664417620289808185640929072110797064983808868498701331842790961162147942969462145385589024612581614189344619926999906844871240261176987574668409936891358259811756296793588142208209431308598520569566392260093355138262654261634314892941780389421156076772438116229313145092628156700531518890190962834191172774810121704480815094121586896097098434407525848850272007635998409149124843471517064168875978975643249437296329051544618648735070627033363778498386902708321740772304988899061538881994470284314411093817727946870428322856203131778167819638504462161794531983467153047677925002336032019734612654281945828113870867972918475769887336226939144108485878802973293044967381764849384591983885779873074765762769494321585050467467293263057611722189986433259969536312889389858148424025785567744947780366093097111908273420456923748936079996963170486181210816077576914221793836159882865372815825044142659229898347498167987574526830230524567297429107958287395208946290959490486512175011720729501394771560685462306107601499781447715723035069687021163991576269597894430383229107977051901525488050477324725121704814991694288702306565837181766958858298993547095126664531521267894810599813652457953802149183100473669987885159852878532781828759853658763654171848135187630104821795683655429052350754332791358645272307202218074950966797940495368689727662390097544608085476074024713923727033250994028287604612218358582014486990725716554497915756734791436700643858581509511498700155954214172689794582977919045650981130997218147282053015053059315116464181568781491094092505407280653401184622655464986336628030716385214992512243938896523447154617021365157809474646757141763133935095907327979875858508128323927829477970301235387148460477380170318843593108469480121697277287218473717884291882804779624852381562699865136293545457006400067512604647970561074976833772886516395735805620102659214409934798801491346544000897004889659805596889677444829310675031439861441133882690764711557884249887286710298761010964230963000619800964660347573356684692979451052512980363951504298849860716493607228051536377001469799571088672628947878219189193968700700476473298908258123107604830633787289637289572188715229323189220237167721994451742999292404974995317815377769917802354165064550546772974404562449936326767677276492959148911335737527176148517200894117387394387035245398139413331158450759003557374481803183205126967867257132139845059827746258216063854831239836777462749754208969334636019937934767751627768193461213803959769459693260875168161775419469141644756709614366714958741041300320764371386454062538918838016249837721333433543019925657195097636481538401297284221071993105702605045951392343934368653603672242395062790185580779256858424971062842597479279557607474702972945785311565973562919971507824539717804641204840014622029620433404448286144231899445818487877520408784296309976616061634880910867547437006440249413955706566627377481089299861887089930951608668358539863852991261940928712730603193087780290648467541650285543674037293640051475100462324886957706483325491549285225588698793027755204507915731339122589433740701720382190280214055219000722787266457723913571689848105013564994689433522254023198970090475367721468429032582905725462948775496243375568003624185739250280440787737496224309805180725697610547537673934265894246627200974680038935390010006339120440913323190999925058159772504230564430903449259381188080204594387772732200070454403758751764362148111502333142065552764616002429970462606224059001905524149170068129345680736614847174554819127222861125664789595975953288626812131493425696848535331637454167514386158176656419603134058867392138621935191699187273662082544096431194298786883937517153949901498262196720919632027620473695146490398159918649742787758738993679691371886264384425110176873615049106866888573430133125104336483225809576226860597874458525978861069592283932685318274626415051282138465523223275551765441638032983310874678354344672175945249849126006254336281674710584396835901432502191744126098469707102713398790568846903242941584457480589416024242673024262093260895042019347984725968121772185164001023584687484571417720366263349122997490282315565307746295649494565062563748816841831516890147167514525165206757470024945797535535883112142822498770160715912407694836011234774824716642330131319150586591533727501014531921211254408842220677051302750065769195500353515582040903022210629165453918899123511674420064454113243621331996285845921341061608003304492321410577655577542000083542879845684279216278674512445906413106831782627393941974066099951601054678242278373489864670547584550363212026169720279595131819765642238353139743800312157704395881640096979051846526918928463473648580486017212494981566661131257003548011350582841427619866939854948483212856364335882621554693354269275554660388695637854439763301306874365678035338969387852285469729750014739913088730026354915569659451589542641046560269013429998372689021286257522283070652622066810860025575470070474831944208741834668274005753940851618789875825458412668208977283415897464414152956010188987853988452479960335868594177013388983925331239323278605604986694826294935379022469555729817290923566978449789715193313917710742293408308694866613156234616514951419411605550911901453272432561460395475095480933107034227549840457106241221628036152039032072608534909568877929194941415617435265625246761435843086578795988040233816709103933186334855006373131064747817263475056802150047286475447508488771937663777658133618812202880101428323500635866964487679594424829075742142889188727971161410895962253439998931032931343352638092591529215631400522548622423142433361080498480620081286059311356592809508661546230573813331527473836218947966062867367253233776627830648683489630424321875951044717715108174843918903924239096809674924497166788960252080684361270847250668827860450213683346559112363926735995287107381282648813585980673198540199258241043172128065996102532258178931698196921865141277957128866863055139118688520683996361395439553083645384126607767153493718934668654681451411506732865778563465040190917121425803297575470917472806775915973293384485147617937640976098581464649449237344220003838356160689523509677483990089523535947374831322568188689995459250976610486128791971887916725086489571839428419184237391890142954172508733525535374784527845832418326081673766110527565585499557700313241601673452802886377365508651717862955233987500433380730059265078202011399858712231873409013068233758282351741581240717096559557553008415178674328762797665618656138635133966847879337158036112255920749174753178676004154769186136045091304980416520226906971413247663097785173861523534645005813459918450562238674006686643916988561210567195312797133278863718273048476138393102402586946589284614496315849556457911728334878280202774761145187792166498838880781757959615525634719131975781722243112786680803539030031054030193331952892726947961027462839655906726225941997871435398393145801198522996875403878291216501071253741720166257082246698266503836743822487062456638334029810924294352017988172239139793830868794978821467083814687008954304890394160372962144161521283501120545726565412221219187756650317368685632295174754796095649510560168998855458087612047066986576940701091820763384747000705230127366082978179071777734638826958643342328421536952590756022217121359930843614868997930556009690157301873449955008038137161609197648154694033539477953603853225054410088408256056432057350327873550327819439846709600923749486066484718344321228343891190716449013469575512492650507140749619590805023619055672282591313148095375563351674066088324830283125380807356580573686880218079941977014465172790862083142243219785922915022421429490395584780108762219241509098228023547922998595406601989289721181760663451075952076296404933551752988600273086578323686512054847419713351253942325310490423270363618342832078036249744445369653973363686948903595691320325041022826848133138582746346936153837026764006167196662507463704768945865039292991438862674632669709374875870933382857982708997447983450676577683034378501278167193464097509864191869591798911042796122976504847718102114101877400457871866077215192352947081264317794162861043835594682698230317694910930093341065487904165539452076052733448833131073232876271496676224778061692106901633397677533224574159845572838791866434504470556109073381582841236587128888144684805129331000211611603088885930880970047925642750156307358180498114956566279854199301378513890116183248576994213868346889477632816842218305691861937841340147375685707658503024551089282542806860154583827167718647519932636274900792402533026069963933872423028112113981372758419750942688078995058715824765620104279996764692568113527211547022633499691346364796265910332160041726187165495501461718694564888569537251242534906416757675974711266316514390419814871799377896317160128020238104689590538316852944630282938922411653635211057246134008773046332487403081596386873053633715661758199232311871355233540166856516566252747227535425200215650690543101410668251275591324257071535514082019587275991915627095085958522446547767112912577987148419021695695364398607756597510422293901942172767478209440671941958702311041763678227022377648218376985321265227810381645663208733552142162820307344054926604264639420653964712381741467460136487988447981288225836924764653642742610019452699571875418119473854677276167644837552352784657346815219674092504083527474206460313840774101743566136299913484982859040699191512284604599780880084819056315380095039893849042297373140023861607843898013964469502408184120311547738434233189391677880213717197405054416856245052282831111648809682079687071648809837600532621775897902443670259158985215732554291023739446124407102850048302833904934734179597845319180810870003102573771786200435963823199154835336531932736302122445447143953752988697679937296023199492262605495291207222420786198408069505533528702740874355864755200487770572430656789223723683741165329539809408314259460132856763286529512383903106708020618088749516186615680909985409321011037435556079075690904804060444323482395556242643126505756101725453400249006252401664147302965688802103715894887330923598957962226471424463513045578592470129026515729713787178814596387631510748648743379447114034899913571439175532042653537335306529848293694802622672659622308705982134705639498921543509613651552655070436886180919153738359636052259921146910635533361007099055109399609443843982477442282526421866865098136436130377390166771345138176763689434038478277416073645983322480268059309562629326397828206270030595380133746475607153135537239944188454664122565885856083115822150336869650164495069360119286683680588322838179583557018359798034408690487673733934135689590260189699692044122278744207834343616505921355286308595786885280933285194828862756191269331170062663506314740976059302160709992650820961931459154065501694137419818714708326212429314474764643767450918818304098061713130484691076398973796982552126321854155233625431695564461976459238063010313315820326083493942629610995101443492886037188428317852453176373832601323090971210220431019060865349087760855026750496449834426237731479190179964185819470951622099175524552964430882504408903388080518766587856690883378991397488547798442994224861659956336357874131108590632094473117438139694451394086483534593785081697706108416575305655112373999859530693151920800399872113901073671184021162783871609363787810856078860499749523985512886158038694729873401052767619069229241111657410533403263012100166626518650366346940298713323548983747394215026459526194238801787316007406919822816732653803038818832055864520467866617271051405788445693860987298942724514766270723539054450170289605630722745118308813930706793705130853063534189943874196148475162033423616623446837102923021741131096351106520718586064759008270897856666145578343259095972636983700045824336057539975289162372916415468798892277919188276511446786540328724820167243539881771256851389443225822237497785406293072441571061093551798936743267488034759313917756312290338222724417828782742296031929077411353010776420944571291402014213951940746809916292560845539091789942752870640097621644357178513695652982846210886373397448965628423707525623937107026689778954538916392035896483517906880713448961345035828279890284393177107757027122156297053254214422712571197046664406930928779377980557480182336854097379503883002823061852106382061250157347445449758745907678037579365918311742315632501252720543357239525427609850142725660245236074513202110308911519393988400195878561195237416177904808190707983141798197255988039715426253470718423640870734879705026710614338617193423038772016614379012051656432072089233963332900214697578466756506348997538017855237715413194068549169960418248483470574980040439581310325899917459515746215675823354629158603552726322749718349242424644272095448889055687207149366361967317339699580335766303806354116220148333843793130071200842769008435994473488857539845341076515605380961441258339543717404470817708215590892084042203107118330950204473179484940224292401357098393155997029536608313371433613470779209563584254855928382934105217726647310009688433298911823767257355019239631158818664543364187508407009744694945501996519801252921209752170090010679701231082520882658310711796916146413456310386765911653210905498391745451927025465328059660008823580203396377099401039762106093132083004459486033858208787125463142612474636087311234487196771812939806134808068097974808279756869096498130342669157518182109213533108277961681028291458307157960422565342438569007619150196964691498359000900483065912401863654244652843466259400473522438531080122040269216827281484850518644147845677453578709825148617781924692576512070565909875117161536152421484191956587249196116539858579956038163062603861557478125293852322361573758864404520770176182222203545285493686310537980191614407065521986070460646649861032048279469142974099928587095307045714992176952640465686260863822421274273925087082682555068129807522268873848516955930823689211180397617297571162520836779445350928767816039077750436342868341020263359951129825722611466866992242787036161592772495952700854948068024232277946598274688680799075601578548990417294460035866787056330073975137443055145780624128790290683639307115004219742532110083702476787219876165201118849070523453869274646102823336347847554012463698862402015623889500553556075039133134163722671525213832465789194841629504148599113338994601263263432172900463207147313378548782983395119570063822769062936009835645327692099868050987427698027875609661014819918574561456157018301133533047103508422924649904529916082879697308416667824863403516909633043756055553074323800583995631548058345971243760842419477424038012513351424790183467194809008123522160276808212310887853021827787809386540311550000810202777782326686842671217075170531616676547207495235799399430584706789270629927253243040581003206829699904969481376140320213614678894087441551319320929406469085279491246438829938381413208424863153825839552112650630167698290870056613534801757784225690678591327428235637919922346969812373991021647373396283975111620895248253268007676435462536777706628683292463231375481548300399037379388196023828348045585593697161434019078851334895443372151954739007326102112805840855861307948690287344536067447530335697758098921388499633207014600412591445841820862589425046627928555164356447819962893257920963019117050159273239462901990156299414767395869926117903134747983408540372499479574018933371632538936156746661884170767178812968570482536265601545878547420670246198864811915705727787215218981993168011561711176371429861422284125796871989084946457754477968400327620032654710090553636123013401766942977355646663987205464102095256565589458582020848207353250571769080922462956247246901486129442179631922196376250393887489622658013982169870277656194054553461009165485560264195469653309843366669113908716761851212474180065342751677757390810134106071737124887977736246653573445440053770893616386412638079450707400631642500489387894352301003717355676588444967441855873886602069906533963170417750740879327915567851819033309617849961797913861953961222234039898710022860752994225055019503779883052316410080443127537171497743766590303073355140010517741229264640886669016243096165261813171295552694898198231362188363402853949962947462455291118646191814516007845347636594639187909403860409427944054649037290438801173287211785003386032604323742035711061611790427904423795207478139469980750144601298714485885047563458352513982894623920237323376930326164986345724633350060705792017928832754765890217388829111835492262091713551877340021656675395938386475536236800699105989891877160837646121264454209366486785898505098850965447598681583506405978685856105607255467113145430124683394411047008657851549096911544170556010908938873816655219322549856090376610022890395625047214160729959270449848918905763502043927621220812867389528226917631158454729405230008766309073000871938089648222716337726556465239812367237643710887841466387408002611346142426656757776752069238111048848558888231531938221721236314273377732985769587932025200159965574240627341873624078534368612351322869758208231469881711011146208281671093447673362749369798390966957501363966373118203433662292206519230182931406686814595739308498670331834389669727864626026853048919225650592520415023174545208998197180424308767674072976008544121541944429147850499712580316508017444992671812035525480878367613247925727855789376757831978796467485419432252706333655581541063427339100032702257589052809648266385837095524194472935712579705092674660853475047062148677300750581227783602546516087649928668402141681911028335571354480339316748880903154610679367398104975081373771471648178770973446797404619831815582766091952839208310334016805525113216423144335815774688939987447375494643167611443495957598536767625436872248701050218294254635255936713116625980756550438052080516273532539059449619975499737244861397126932343481462416851378343535517881658883975625826178238397850235578432357999419405914574096443912939292581471616550828382908082013445989782356225120835231432130945872499300905436400542034358075629363911568689006765510632637558377903232128288435767046976162974893379394200689500441762827384996797314038758143726788871513544189891967085879052997057264153321208183418932271442694810598836894223516531018022776702917686271877753375166861485702260345406253300464711015268746969519478833464866433552508004711587818108416085848009075007981526371263006491348729434735799010018293332653611891318506828922074890134798059133798237419171233770998541182116716022240065419255926513190371937670058110765128842440459703460969311854700284616168225044464532114569866300058385750210572572045228334808712771124063825359963086692029485612230479829425160852885364687364536166611258329452642012166526236525111123945596893325191589593603904459799212009425628231241637024487626754241386848371072284972287807959243558706425347511877447123304311115229395417899385608649876233641116189919569172323672436016525760679140549864089326161111425463815759525182429489944819361770708274592279626158566027464985550940254036291064857783151715591807155205951512910951878637783895537134967769167219735120036400520224371646013017369092354388066217398844287790164200005407031186515173913442274530952759072167141224845119853910815414802346363445838384853905413086015917912103456807734461494286831675120525064647413023850411760946066709688131017609875757254692349792102546502851119935176096709774103715656975152816604069489058540937689657079136464550999723448947055057754099042230544739769204743459440749021256946945689465772717235390591678949027248530822515855673886916090229474506703889298918219843179299783231847529216179301129295146416240780410518738250401824770477172882247312439012785942997269718048784184897499224356454852384800932055476312421228975728649562441591423245262227723634970077300018450171686200624023587693435989895853120596132060091621841477364772562359921977242598805302840093370541550862689702407861095205746938358996649701114375265828856523010895940083501707712012054844663693809947599378790647619190327838945268192065354263700541536082548146158605093453259328313647284140174047839400792394418222752498349460903632606640954868073418847620219716918792389438833634108591977199147797354603389811613605055153523408877363740410361942723663698193634801304402494202884543493677948585131153852858137750955117139365146265777851294730611779475398624234987253700242760145110837905172762338106140784218653587177426083210520370201473619039946813332790162673985881066794368370561683534882498556762117979421401947556843625232027862263409947678059270562839464121534504938111459888306773974749921799790175584357235324872554468148502268880011990998355395727536784799454601165842659991633856948484005719178489092539374547346690585075198721439856693301537681769707172478387140895832359998968568993952503202056733972005246551063520840024210541632922300473001154534022406867467018959483729926399018545158539180414992357852427507453994521290134142990751772171926026516319018404213159490947790860981727575036315135637887450855194212416031047094491472729653667208451734894923522866516813547619491779503901509817752272454973070146412135768455529391489377890341440259118131580272583124739012604613157635462154186301277949366726644878337457652215403292997085650410808336223349112388410830808144589760189825792262250196433927561821969024330370948033735171562956165186155741290128633630804089634660526400227448840932145663988838877321398987114221335057659898298804334233561194738884856939442790732821953287572894010987380900445882019951476091699260941277222727432549104064583681880874978136528888016549443181236927172466697352321554867343048431511482718644799701334045301521963872224186188276604201579941952160491895080251950624465589678209488978513177796763110597351765756557030304354465095386892600485506470778598168875004262863623392207087241323124894316843525023077540049153190531289424087666488701199517219002055738033430034134424812564657191704648829387893087438344328875721281630013565243677144808482937626306315641841068713706760851051454116198800557118897324952700462256379813699484124027599183177379520842134586589034379172588188889671789502652799825435804040139097741577039623929145722526550798704118782654566803693314467593362030243328517718887938231399944398918150616891912503020424565943285279716990515138225206706744270717798703658908867175382004614015105677758816438141117208901544685169495295718151960616753475383517531991697468335190152646417726066737285070041118854595803428817103173986461950640531248862769910696760315778971641332657942323113601371872627854202884047499349450518582686636071089752727203183142813498654312227060306593986123433826501254241149797564140230800574476647740229134243395633387310829312546886700060594788950190142560067000370389541897449902846383147079285247770035529575349728122720406287110005072692004118964224024605391510906796581962475843121470115253780758281918573618360836258531379153254304756081750540990118860286251059749850251524425871810281090633841429622477115731133430211362256962484974414353318998359274892311611525335275811973744174380076214239989846097449604938455347196472553933535763788612195070674234096720177736428492199973334574583338308273761409484361217463136748643027742447321352416407933831612434727951166333561891442255167887939711661364164782591731425094209164836055368763237350302568846643691850491405864384157233917254076501589922755126927858378330305449314459684501735238500221356923607800540148223413886001874698978567447814305939212315010587326460949507159620261480805882171428872591465585358390795316021587300770192386325135026637187405693709701884270111169542912076854742521791926872708915606641577634782137101093302108888998896862217675138537186195906484937497551364083611613837128551356976476874250280322545628171696743296278884047044032341810525770021982745607520832825472117922378448655243815174426795350633046117743581626147524116909965533658351034971420167507163547752227643398639114845744042789362124371060827058763680249162274147362988853877256512936187746926037838465593699033354642787879745635011851960692869565500886436911118977593011832680608210517017443949250633338759830134386649267363305524981359376609864507425771830653750640396736354619615025935958858714664433048421106410635942185546785192621332033736767874244102593008329871715297013897596356430925249732396299462981810865898880156916872831241289362918931316232244485048531707729537346758833030683684078276115947143689737296984021038458798247827653552810393267105235851906215552967861387558147079199250032706825407281290193539065981219032141486351350552636749797179512180404608998483445960365367413979609198197372738378644721674068028001680563618272247733359506483518334548655211934064340482769062326981415788853677305873830522672286439257037070888267556347270470600032896854161879304024863471235736286711169925845827925887877339123354373693448770863555149334313474015179949993155706704765004853062000078060726514492021138543937693711031840750306670169427509726153060364847381544176134885303876405090538498826309060915240657516162514151884504527509074672705385533475803848910767455520334408166400117873859957130723285623552766923043429044384189016006707057244090983801534866173163052356811641676315619191835589675373833140415281529729143380460503042305381296400116510775966214285777902383584716750773587052795636120311074613976492364773686204267179112272990064131193500538837758500256448161553025570731313346448785306774300667992471263340836601555231331250331987012057478919424438448019738013439446693123616796025127145974530035801584657032669933041102848229429093570662292752588026022289430756647489425953284063014243988827992771570921874415742945850596512680602182278356491496470400431659039613754304377147790173484510017629606101269281455331903778958121988365432017618928969060759622611204653305439998770161286921177148810320774677020920886842700669067982636379878554249969113230062031333122779339147682203105646296708521896096374096382806150163378158198473856871938526269309182908192215970606708129747010381858365911976945312572166648569817467713377618580197745715116768023742635078200931404512448045461491916232978700419993106766380889180192635162605903991547906878705604673178606766358732585350332051850855422609153288569999373811139467177134190848980033877769211705597314917994646805644406111565911548402067221331378591161708993993026458496356491236099779992398855560572462233083018412354730742209690055230754875940328269854982968967936756718644887407692692269617979334890934766271274992624327821604679434010376526369862278691276441019779288679937642215147576519104360600591619042319444870813160513065559101417975624774024726876126942467602818964379650590445978309593032046361681413141995659878363690050805527312122294007626261647874680120964791469617509320677923984215470267434159400513292547802939976096086937680684983017603387956678253911120886675476765035697479295998747539663287354871268942699379727655672101788862550664374289710411461534589196117982651070566599808531079572862643719005387590219945691453477916196094757147205328819351250568063720209926061288227201169853848588073207635199783086558761894425577246051571075404369785754123413658250981195814373508971172075396315495308504702825013450589258658499446570347275102291428347414198198222209105811863029572369148673496387819053087186833073762904805115503370216035593548818764473462580194213282956851509731918994241752903909959956227350742843523877001258364301656604825436279317101556436268200014564203606992050024155526546449499116147213199638331453988101529198290953539340756334790147703935604201516665865071564736491405230646629446298231449428326314766926089416935062659223180307683554905174370457801459397304616726132310595607954369067056927309801796176860068976395080315923995176131584709019839437028222406262731077920288742476146407809846009114122689957322107840602849768177322954525694306703040645501391229065034947110358289611449075781524458363266315811566746492068543288176196982262676767343091070461664400607317081040535730480024174596820100358034562535416371487503033273170751458745551452617091895587206741751042953382282448791106976936797449781026632702867425439873842549016757285899918839753113659117740410563954050957106552742177278603505715718601774753630814044000495109427102223553459746721114883940632531586106932540769649539010427327991845201508215762454064758149732361353052932034365671353521807836516184437955138502144567711620357355903945555176493877697869602620901967944653113771929893255750355811277718533101320099462636105731134242748684974352581162139047177537468523756843974091558212523152501661292129990668173417768825041382124869322017783358949866607813174099068044979330086676238536777642389142960318050597926333905583186151991005897594322716098337277269466626160064930492650165614431262006931530901788323177641911097014417116962056552175450950279540630443749936698104655051549515983896202358232930310416691651234394753741163659440019914613866053949226626464192079822851677240554512022926011924786865180064589096182448472669936539979511625047872664985379642430851893802311216281278493046268007778922953745314504915565653065391432937952295300393231627337138813182382913185186282457106990296406595529441783652751109908330482375942912750042331626491191131895730414975576279024371061225182378669167229391383964541509328180653355927518247465685553080446643194984623677027560215563195609253327008132023295099902163680179888768915938943925384809803258782938696119725416320087939823126566561681002860789292593987085450592765237594976166497778848104550544022873012347712340766611983735183465587756297238983358869118497882179254420226259087296548673998605492184400542883277149693295662270883647904579221675011769488318859009671392870477794862903996294251362191755403915579457077310366489088798550280604722935455592350641899489295436309827300403864234252041127152796477182622596349694896256480109076010897950769607485700045638151200242210252620466570652270998957530990225191190546273175526520051334666069934944095154310137785156439064220127132349209440782283495287730804369528003939618281927606579271763635765209337369819059990824526892741845744202362999141745581769063571594403399292849248854747633551102708994998034478834893333145244925591479144454029291178869727004703611124331643656367551199123523128774578688894442541375475764469239206563135023810899039711811940324731821415245695552492415001087712131551813990105226801034754015255600290741999745384782644313216149170184996268708237138051894944690893564437768288925484163458070166306644466721268038409834135994473230400992643230757054452135507532748136690734547353282969743497375077435467371055731928758979509050532623997896972442167088160817571965407633587678121866139386702637743864832008305068393692181545174506108671288450318644623081407832080619672876241859564541720158416814402899270534555047488019502655522324145038046817398745941267475204095529389846879208648522454443745954445399767433613195095863530937267145654983881596399493752249312514904854661615735679188190679978927268909650760043830167184694244351542139706214706297906916924605132026263508468685362144827882400848390384702417394088550916901906184923267374686700753496162838628732270666450206706482318454587737422440207724450184148114253376904907962725567213356509394315569322466386949517137216840767698625444456400886061265279093286534700802050375498249710680024778902150912602405972073437970634006888657804410862878978997129785662866398282390083368867757576281804477598016787211330006157926952034279978173141919835552151627259748678313494136829919679184342882593792742390692781840364257724200490005190660552137236787156934768421480404390410127635225932963093957726743870046139709772993883444268885729744561914003595644646849627824003581223548803618756572977961237663727572046439132518351383859491835758447962874786411556332716930895883100895073805958154339904383485480388407728865474002750601650752673488870686957127983309625911043362650238131049526885474702651071030589230161885629086149290893974870087842542923055706942161707288804129272234004454672395964074752921731089066572306066163675171269299467609939031260272981190105329550782328161109565263634310477637323438826690668796384693367863797513738409918798591214927290289478527403552320435632865100934393718445228287209348854620746909393395644242388636098930562949624588831253102644292415448707645474761772257112430207920618730310766058750197903434248635264915819781098727682032775726106755735812961677568965136259661873525115740051401735451301281265341261660414504999298911509662589596802063490768571455088925004098859951546167677343144310971317725150788315127563475771745984245961912778917977903360599777931462462653398539627367681859109549822235372572425660984293827971450793934082436638913423862740335395045837439495666247035540308096625237771107174481971119277415192840364682745837276605835483889715508199862091692765475291037990950336457518963355783436049366038192535127042368149417692568591441885537148445619003910530132036220326112596490176188611858942754921375441385106646255749670085473038120771410293323632952552771570553470918426103866837279151605225743298090841345605578509782750324458671422458479569087289930917222665570912122527250797077685434725365065053868659405967683721676013795954502532387308492424142444676175429789728458731065791226886726278868101632523325671734697993436578718079865086696019359364333694980923512102014493565702496345765461646120431338196573517762609820933439879621735333029700520001298718499835241294234701607899137692336299663335465699117123841461195548657759524465156288846736395343997222678050055259847830215494054920357691925322877359219046365115500904547466160826298325319634787808849858043315005755029494735821861680612237872561196868099050198995942949404802777891479238530192518257628502210557302645958469332726008802695467837967425605422320129993510308557516393036233404139182291131522161782364308491601395342626054259317794315958640260249828314995583509413988246394690543262473777663338648987016587389231709689366291750882880762528430882281519169875950365773036544015800921571720459011990079257960178237284174872929567966335376599238019728154261762058619298347299033187334689666103165967016926298888715552815132251992018685466814942556985142766171713736610162072366684606881437088815681166899197616058796776255321167550087587595393444576234788997742318132982996353236925922256835128706071198194839967443621616075258502096905174212127886732307345390177533407532895652865349246769285694795466581177565151990841186709458184131752955353162392063512574011946576288136339750862691235498391105313553095135111345158598989002957150585427070307519519192111274797881076273919779829234496073778920653020190241579050762173917218531016294726835627213557758773023332808295926845499623202688653791799236447540190022232393831636849306926132049007675296264592798541382902016109567572132699943751630742419921088217751710446347273574691559654446012824147132541985677753838336755619645741078533118863960298884454716353915941280296802410919312795734318068651245398912185230314519216081422480727674798578592162953442239246783401644611065598387173364812299124418122550106657512356776067394757356507329413895757452060759552286007296082494182161110780503557100948574389002782101500929198275462840507478118343864455371900488110166582462131484922632728032205710139339602107314900283864978332677449165779024213875274600256758946457996276308957671063727051343273581890053735013503639290549811374109019539199250540471824841150875308808679957048536218476391663561121628220851419741653745172340741005805192155443256852923846962077451219637768016209940013844872960932794562850295524354349004094963861570340807452759699396455258289875198620180747358544310595566441754660678880371382880285493607850659311173924592516998097604130895738692402151602303473945039041206128482229207384118545385933024813539841548108605169846013713810644829064242159189794811043217324612572022998182352450356505090992827579949664796037376506605701616229873429340810503334684513978327388774235528830848741799419762095928170338907337234950120640006868620931147797365272274327293095052094879355297238768148506869512378000108013256705921981416588539389064630887956392742926424028597264753576744368539874782882633154744135271323102707556177901200204383163330500610773238563998590647495927740388675461978095665367265341255863880890725471805780767540314211106255059937417122607188985401410691320843941925142565690794400031443966014243181387017577391869541532116627883192966565053353773790096889812467130376471178926490217486933627461005169303018240246837911750474563383338203304638539955585280956789608037226872607857210869635042065836129173990111462595256762836702853214865228545413646422508153266273273572265668063331924627597682779095252449113547347939041668965264299650455403704880529671501976965101583160125656691765751771661794554191969052968438751209514607886982916257421337856507859377425596591264917334180272033654891779681165947158754560843506190666876844819529697904702942500079921173708460797106795201548693259501156838096375049658803908607203849501773790051679632968683481663097700345251413902895234178476767313637075231519317915589408084106134311428844854740877287388063824890488487879733681177072459786295653515045410644239518858610144350229868228311803339386440181547942503419342057663295540436670237084903121631734200555491738624701849577301246874484719909723842935946727070314326776585330367531463086926936297262768711458146165111211509290467325331916914458902127276053147457734578985775128972762181310180593055516589884053732847391307670691404223287943504556233429662254798017175169993447197538487504003158309804169794358925524715579686837040005910650121134236961566460431765579863475717609812436351738901881585842506251187984480353357875775125576768418703191919269549131303925947671829757125873318975637237742498977759932879228589617497521999380797659233805067496468948575266322795257053686950137539039677504791106309821229843579473907119177887914305732500531903048903053029999216441515185624213828431949963344492022106861869990736555522602349110950201329287672591992523465211660049624238495950865981011116603332898541311688296102594470283798640918987005047588219582765815590777886815152404603976755971764284062427703652577001497037636197833985900402896881281188237585729871147956246057209960438568181097826248647598268563699226799209580437155710242078852307844282470235456440745662447177537928998334201987044946628888043884435742213044520371482083472745070128139175779978271416315582300310560782491543637133912689072673575646847523356500916926549054697174482668050501612859016766586751480346669820398005273753098205056180358177953690200033694325718173578830266516416772699536428100603834796187510278968829010335829198083095898201170202242501029233791386724272876105188744307023562727032988686080366329949371340708365935154873801026189456264994535623006594103058664505850228186125382626902852900814503960196128552268181664606260219270487767831544149023901799946459369769353221608281770818862268370317778993334701172871885997463562264196611404294681183797599505499636700764433528049257968061304899723355873857955468745244725193908205388874683239634226458840516117946186580259195356552854951565485365793813579113807610383906673058477205024079314486350076068027242085027595512057056849699353188147623277302189993341198411711625823374847596941146965548596598478064644351664611692744881416615530160946912281586940415323317521713097952265600190014999845900363452205657821639400122235516770762995002454867231323930759986768740501712694511546040360819260593151292420505451905889207683233374299128541642181845589551135290062496951303496816570881227844570169016127298936963103108004687340003558580950571754498015117394965313478814804394076742008100710949719772497398313363432262130747848213073293013496206524146439515488212027594080265483919238796516278012184441803112111738559840380237687646478828439354145246323164690577644767251156753508316129622552978609232867727286225421693607983317900792246998356506940085618078227910751639604703354310409215706782673284980524627180354682348214932714014507026199323418685016858330296953531199302292994765818552751319083517594255555449172185709791554243637952668140967676734185240644780253834777214138775900454104899616244669489606615847990263759231890086726984622809812701990140890251467195282738471809666644797757131606860478910467749295774660173423188147534325393462265335318876301989269161929075992546651038664360825169831904345640365262543210527493673105022045752431075040137758589370939617843662495089984243702924667551302883395498331085075082198928208783631696944460422966500322881191659222614873955104136082066728591249088355528252215339109125249554294641166157669771418935289013993366676570930701488076540135799353205982799131024302696329902429314093719028912338651123116091156994453249959576946443049376864799714374374723669194494868423209217721245176526238280650489426166748142879490534921719840557371315896786627455756829783221948006633106269867459407523089064252755071086183062172186419612907498980952274575354235705434671394868855193097831976132326698058091971200560093555151732623905492247131744333002606500515135376427171511327318904663398478946160714196163263491262787531591100864502855218131889135374919294680975729590132478952849537449045391859965842723036851713146247077473087428956794257354863797152834603641858878842556294303144179432772548487680774101746354824082528267808083804432933608315033555705461830902866105447186476106894811327337084989161086317140067025851294164286851776264476361687002512907356115093211840260699765419920597458119299541351129564535380002860112634726899190802271164538390960352042144481242562144723831426097606998469041078739051692715275406262149425253790295687938832982169264046865744137045381979071624217831568921606604743967616077635078849484494620425174757690134802727540101527943035598698277986061327778342907751969662409844458542328129965183110845029807431363258631184198457355751682871484758599654076123708987333849472601355195162532944027404653744385050785925331467877720503899158454818465724388837855294047080756480930967296065760160434795925745928115200094964899551289817156266106595824592777844316963531341748096291996338895494826505836524999695379812020404601276937303566606798599440243273880103300144629494063756795570411383772252568751448640648503572562029482390100199364104033553581028139179961543546977482679586126085278938150360780808785733181335834358802678199871061860932817840256101785175250544109114443758324699043585671508774994455561649471539661367791266971384582954006353325247992731495689408373043355083207174150506093465107825441633604531804779102317940371044267783796498542339466960844947046509773896659551540539828007950460455334205170998268680668930602503593129414008428886902494790065239293039940162793761148495718830212473017660250946806059804129304257332464245158866812792692840491971479018567123997416396481283698840790150735820790664635152739997792442743293700500033670197972290032750814374155629287770350887257590905724920761452780661566864500640836472600616748145087449103567261490282321478786677129089999159975843451406029117702243553196934048346271572215865257799303931824955453426873916076588134088692355805045161221774769953852936399275078780492922501012647484149803712843557230151400370874869669227611843485069043915278878065091205284391957239521399579822187132103298731894889552202077405418544137844014833425220840983885286155858813837925655457656815820861492683625513129789282505537077755746588956066554504719990580309340614404934414581972701669239641964380752293315797497237604425009017019831588044633520556755931213687981993350418229581904442927096023145914531968411487589894950200056531844154277320807092780309793536128786964751168617611769597540139606396874123585913667883717520593539601467650765075560497131134248984457480396230226290547113869963719590007110812006828957361626931493457237020503005402408898466531705307298782864537441901278843184660714534845293679559962642692928583422367361973708891483011938526845589891276215583731981836571962100100532392074470667859937174337799235560407406556280989246188198456744390997806408051439770939950278934812738488037233958484790018062667942063221428345398084452294983540830779888800319466414893253482130353622109119877525547183981256744522354111201509640794355128858253505974324025858809073605218757299312147863873226156335010299202189625330093996622525795843672631693920120331411651737965294430481063562641428520762024462847370643750933105702994531239520611832083049288569052107600658901100614628480314207536439909295429200754483042627036112190817014214321560380918832541136455406188850801010268398136150853115467858354243249661490780162599400194603393715500360941173988032754673514604590428651087769024735695307614148924146665962947633233000778618929738247693026553461316353106209342220693478058623767150983526557002074677382147181587250084653531101651257783392239610202882714586467439432383240825410340487298623834355825113122952600285609315024482257030218244585127637376528992998332515175911323541479146879153393814337051556670197967308625420557952812317467997477804083789278613838196540254994005881040568406925704747690556969563114289211937312383057459046947634814373465599045622724108037911743248529328556121795723444586988553443383023627670766791912304900101204236430101201935265877481486857593515168627139700853259260475684746414251872738740620083404283579154578726587623751847723131863367778896640746863967769436127789959339882150652245922375425232541247946910921600948777870342029347413569652809564748010377435637824523919513836896427891563149238997514614178732703800870923147492571571302377262920041610747277945982779961318525506923421217638138933121025385322494107499168950807293514950527849917793084310924874763863287623836228482582911956682529830231929508703179608663186443113550085337574779323889382712985010208728751279214797850883544756349443890645961463901026608138661320151479261733258668284303278239215843042064500678989650507753197441591176345646665861548689833697350005085507098207861617269496109360237154168701989514955705451989475660769602980488670942070689822808724941438253587468611975162432246000435959698119311380328986690278655698344017613249537574044900978766064628751501222364761712464299006912609173382984552750711679558364886174645958516303214321063761876611003882490940347314708893229573197701259847304078180908202711694991999541597148893586916002584626281887087768214798538437435666523862041930931498609722728453455602794566644139571281969476536282887196473950209643448387771400500138688005231298063176919496839475036584361057353321868281089970868543039655890139045437275075045659721805620638310920432886889297138571622617231787377561570190049228759345750804630929230389452327894828552741243707972490017016806696868602034417931941083675384549488873351894921223717491228993397035897186693656061933303981514644456614931098394705784782501145825392276980088007081869756948427201960304611286505032975234187750463872928331895509551883274166258689171265758931160656674779029960266371724889673173685179950041220642789131054540890452235081664257202249024301529534851762997020166333135855346794822252709380039281488279645374918198678311349611430760422820261477862765149421470431609760288334582012137633208005401306155856464354168617337963675213408907111894970831127907012959206084893704282240125820619499156671107163148384964227798783907180605241411751246212997035933567732593670433643023643405149624099837299520604620870895054513176886246964496722995949821835149927809352718344848712116800449818759768867513212948486711851185927042648620994432183679426403363941954497155683633524849314746529110888475862144638836896379283792437435852220035351840041000684830878763812017733524064294840467105281699834318137375142821967172878526549458785656404748196958779532266406683710332177369485187441646422463672588566094683539430101931298297606526221872099174549735704143286541285398456991521555516630304234402404719328719004178884096462547367285923950020159538587041513785849584979916855694628777914662829498486349194393935962391682879794590781877781675468221505476676825415154921264311732331104602478803500611113327077289542689432042494516544838328763790696358390085650656391518634558319652189505107446086152345273268736123326970466082939313651933616966002179978092118825340846737332270174310196553227098707599613013971448419880951126110693938272784210171837282606486627210781833055610173009815279346526154317929150275067514933338015293170141895605140731738913353206549137916319466450590674986973217843131866586447825399553613223433149786531138541441383159365772764779605763221944803232375529405049914700231795515030019466894392779733475850968713885796336265524115894830476798249775531227820421421808989866545179062699850707934216413339912606192726882831854561322237561862314485793496433692941560574764313021392950441884015890310073245370529037232410312612493645501430420151651373998719358724366999413143446011861891778096922952796815499480315038003936657360993146812142533451996261158140865095178738228033860352023615397521179751231099370166112694042274497452887060871087682534709302643799058588782820087384297746581767219224882653364534048318292530038199303684406252640435903215520760680482111781028909731700069775494580182759053984642065805864091505595292699988384027845410109726594831494199297810726737871759544438554872293917552717432677382014112880747195058441653999744085642600157755035910981070680936638191375117232922566042520266417159657377825887591113863764953759743892291843475423318400986008572851638236878301876517528047935513969946429722425638659012517496119103058110497449144562900363086271516025293721844416169048197877840720935950463810737053674360481640728627314749534592794204146295761414088262522391178395500132542599323611504037641165696069515074143444405839506892848725073369553542464286044624946931749791949482269931852180872409430676937483097165136207216725769803056536556964176467955326281793416489908642073245865856737570456517913875682291794527898567321957807641632649133625882257498192837772296069670194564285831744055651900635846373148862239645432261538994212433060569532115857569302941525666802775541011728992867564768842194868528055842177393137573235704390826303521914447776514854487413641638299890714532657305299020225040330022969008731260731794229490975393670951357745945338899117133250715390053914909130423718910648310444097205745302941069094219709560262620521747831511756487390061398923554034120551994981693593370759291893637927870583039570956917116715877786427126085703462091542807440093019232859144213075895343186655018972254422842284145065806988528549427461275296508603333807548409331561473500347386611833773172408945203900833381043858803187895355969168724095152733363723048569071982733027555874423853769147262426589288429548374846019233710546747678893363819815723410374438093602848512180882853365885365484352316908334501622243816682281423387422659341286832853588282036796866560647609519939141322636167774179520774964570740600711064385692318445489142359566598312780144421534476473502941565425105374222664236783548257212911099185060571845166138704870794724749970845079263292624724879967749644854016691038830442591555160170226170903035431237136495257929761938966692838178607323662608882884911446370547338548323901546244252618534606667379721668083466413739583966102307051631881768508686091940828627745282560711228381268522040124301689715272496169836686756122290859304251031038997712093069283549558864499313555974808903685253062511822492085681106622360532716230794139532383401930561346385316138730135665586573568157599458222522045961459778040727737753600373259151868899789136090861310892606137494698770095833216591492088917453778538640212303591077519609668202123886318363924433968795499300313796167013360008576271673357635991650594043146687049302223256013517434497348620151858455196237978727025131128825570218582893693825641404988825200781183486097035070837649370523801469193494555657895780694094418382800442076538652925813843068616173607413326419437775799779126708970431479276243888422944079372395046365173788828699112345788055202617966700549871692446102985257424490683431023791610980670257698245651695699891314633084164939853558738540961821372111265979863611636482621456737099442367099293217841502107761458736211658599912260715771798039032499475027972749212431220723708387771143303410509579405045780921200440467693088196282707645220907456086305149606314243624401502829816997950851834683395926689141298497025314845895705557281444125807099771789515250603823809253374997080047110292131853008168983151754362324280756587213594137664198656910844233515159853768959620562209705805630349890066372324954355993253606214454031549797049602507640277865524874542849042524858663802429797342345664644235602067039449470164224737120748955268103379803522164351862161528179266324704942661125475699316046506012750328085604725069149445543745046925248098165365381833396959241030233782666653232299940304072748543271913804208956714279998457923694832668709514518360011107282089667915838084434818506812712072871505233935913439307487540703075616169728676816908949622902886657576378191929772845438393172751245680526605677260552621071112758542630867766047407358234071754459595773289322112450890577286189724678861735937400715675724277354330472899369991202033252435807083780819741572239098998560819396455764228067190926544789507561037403154762057355626126916965145111020886647183566030588897522982452598157887897510656532844898905692049813137120179253418657012576513724685719141241591937168497891337343815747496606143280692908159074386372964081978388520329126747735656975070361696582797443798814446227893020098112048559133736087784432634166735899793016790356017743693093178466976353514483608716225840858133109638885683247700458239374403124484650878600086726646996471873681129303658278609354422388375164828998683011275330080082729069031950008363198818863226789847550131510969306204698791818634683519175854918586290021832243505439267462315448705417506583851684822002081854360636016627045753687834247653236717132376695394880319680391901232108945722509758994743937015903212550656134724875849220042535945861441752995720408506357362060125642462711464007616664336152659587303241720143264862787902389696112418697791501525921419349995826098660549298680427174247052163115762661046129850562662877126144963187511652282791843049202106993582052841224244767632215699945012451609573834455489773021556993094789695985175195792715025911500649468628297659098756241653867398983816362074020001021806501346234556196830567238061137551659428167510577445586843974026887749546258966401480469218910915292586680292608791208638154949478302109227837359431641180578806785289717348376772923332405908526949953747960177866870002402351505670233329652383835860540061863843879069369448335124078084688226137285863426015241180676022269911727339412804541450741716180242027704948170147396814416883838043082539636091323846296829295143921442072963314458090431272761288706644707174435097404143981518763439143017358429860269868430418403636450705524623592586413386943107505321951767959200638454471720619473641004491032387486509155878431756695142856356354665225277476276698673567809735812862219475308918555334032601239260126551971929585080438568560448427687353877673464445617637499165501936985922539676505028811361621593493439010405848397332947552475149072442378783830657714296369884502932181747312514965761748805948672242532681678574749619385109883271859997624243985254732968797218003391715207233109667321959063128272285288039991473395157951596857687904736730927346167815233988316776896639419927977546725941943159190603962032440824044921827225549229763942933236391906646973654066329094742788992485983759783894998646418200219692570549013251477047414585669526471754250030338874531184876522146061642277421830916791847867807962677015857198648353429607169398519138411377628335855161990362374227079679862468013237662908012609011163603853771279283057304312858704344440870997124347926971034103799977192786258959002445521665049674200809965852371928451911431581088009072134610135537354850560451284223531909537787952792259916606099004825370680608780316406955186884212581881944183044754592560210913473788224985115194774706737483653259027064669012486959142380561304196382866176706516175988824357356066166748465275319541416404532591763702050884219068928693593230282804971046233853276341128865221117195138977472567826230215320824412346532199865774740295035856700847343600473763856327491800898197366128939299257371221809220426256322068072130332237984147915022916297229200489705312681948547885737622025170048110896054198408932978288273267865405768151083532523186907161956745405818698962091520090739590638433039675379953760270822183232101598163533847358752266667824548521929978993551801916141776123878814062068187346199316280011343182844168614131343308264664408745584538250425399300229557624935854181412384958633597394557885063219708589985599955242105976657887422894045734927612567136995698104422805017147157734284021669336893919401222556032152126946756277884953714761260012737154337631682750030699944215670139407632683762046983224345125248538647396901761877074780294935669940376061999905922375646915509205774941670917445396851031736623863012437938742262547929762157818214359639525382202323900572655781731043400127947904506577493015918568986112013679791063176662400473258119250645498854184962823594886110303360289115571315162010075201832875693924690554666225156143467180782117578633743983118102841575943139764510723837427249563347811345663093054429513860780556895268699058195828662198143911509304786001966718464125116606651601944985315546804010108499996809309227828271525983866752748012840599922664396680944825926420504616288663524888335098307011992101711450341416676658515524953582454945085496389649279925030890037261381963277203743775438748193567868626658784560165580740662733234801255207515291695873911218587252144916425841813846451795429187815218232654753869385528035948683484285743700892899848642410460587558814217605400554985609584996339947686640615261398430173087678075766344878102256891303441937809828884486394674957544157279705497037265124212135278700836726455840275037174761908763242712128914679447569916430322082879480202350834172636265701346830873536364765945503968907691382698743791765725774732509403384308397868294213990116360851255510459825542011058575072946470252666642116043834631601130689642799241759794467631779974431224777194930815622853453077506329710823289735849628633776433312574555730900810878324689215589282463537079061060040320953812732074735970858041137076032895821705394000382250636746598235918117974039781313006405442520641615976908562598758245196511927905309602727287852637654469046025244293331646912170481988878908639930793146954134974491960081932310422407773120355010228401689104739852811677467050008857360749127890016529677529440921176161583071476027881624429996073740171253640069985890356860176545085442976026765042347449116849897752799622414157584599855795914836537622187603086499743627839232856325037070130333905329509202776903968673758583701855550631916402682827478654068182314426195294968345831618201117796645811673104226722552416005494563486165003732759669564659497259780163486633402453596158368629899173959688073908918170395530836845725525649156396762115568962337310184368689845098651492743963284704973371276948542340619950010450905775428638855004297233397364382247506287596431919856321388262186312304110917131324037838398723443077678089933776871412166754656318125036873111369926290306562566662719630758648768146309159245193099570723206199617542862117706524801018885017957093393758253702976399210231734490774147925831405008856511882889723842138265304003517534964810072020884930400297272991000845681142611085826048087159371949827681082696028360326128937629865882177279245558513668851623630284368178293086386556332532356267403746999622711324648050121520269390488964972243428448553323399776422434243122081152466638393736922728101795231994746324714038652786582998920364385362424921057537634424127041163580024528920846665622597590865350192530675910478315887626057976738674229342539335717117909623876504343240277701937126706661690575976587867853840658261890205318309260887571524189252360814408086904576860919551558813280535355042030654966867167339565599059066135938317183931335654655625597879528111638261491485363169137931398781824243390532274385735114859418830750361937247658257370348769546917876405373027059844068470276501121270922289540470112388277801514929938137938252386703962427425071880039139318455923290144922915279231824962347889619238148977963658946489438162323996884618861537514355587635365159617667084212405123235829298253502500316968561214958606932349808713013163540933576365251010125785075127212959839237024638161097253303491574021744461842831632643201079781080824017235729749929402214136641325948657405169257306552853655056287695069160794595632062286701877980523098478872343993765414632415166435619499412362856360262044016990614233463293989797817573218208159721645967922164311664170395056929795741778990916669011130546830542417953479655133398400877620512140060626571235584502588947851601844683814431459374273298002896067050475662489321339323536097173237028946047884583196026533908787381530312631557431461194880156970014021541277506551044944242476062086463926579828420255573457664199203950033610435198052918748728446875641390430449604228244542556231671240424323516015504239089107264405269180074850622381867516308648422117934697206124326757293244237234745096046460330564553717036544023974275567211565309151551008065527468019799955391624725741175042002173520080998725233829916137145556082153819980671749231220980844463298149843136006035594462912252219024295903869334651011419530952526925714162843474933597421373578316755292995023244111739926419880907535545975763029936526897708009873845428131847554009792906913938428527491877059819418498039572527041301735220675937126230457501813896494405109150586802929679761293368074764640224462045536451490394325272111361556075740312739112808709533726596143270997273471070854617283241766653214301466362401388038009309912502092408615476836244523610922061705068929651790006588202740521772822300187617593460004541386410632901743181090151993757835268407524548796878524765369844199701158855275778848409793659103963707966358071138627409424366657609840852809280080447476231919592080094412030514393943252709020090077611739871628507733433437949425210742315814692145175393334368808765372301219750705684732619663985804889151457466362390099594901462383884732811798159966622176369545041275798306949125918548584034096436662831366044216548006825883727632241610562817099535473517196278619759367275373717510306116969112384860890575335488835885670578347602584594103386912656622719369014695380914159793601923389180924662337942081498996361505823588054815702738063045908324711011110805488586350361909145800085624294863018712337270348946455861520299792313303008974438135628288530381848950001467984178696897131938633117068719353477462703445045282495007730137381049838619145893347290380843147456896589507710478086055142187750686515811942086139123673726569338615134180706895101471197199242176995063767550027543744437274858679428402990485002828037065408808127913050976672114836584785252013676574105190002207214647107791904867962220316634412088662769929333695187069867589176223964488103650378952740449868770345853554197730615918549785071522612874695592617625945592186848019066641326206194926742594597375950943610669207815313508817779163902171890499688234085470385565208443010942279673296263718126084434016705119371874052946883241027773650942331451223110833635509754170824226366660899736080734119239853613086907904146614565134791013356743722560984877054918635922956260103314159906193483904507824604714446986375439910424849466912845638188451918015116813322747112532235526800401371626649204914250530901741999451417684237526647252347836643827224479220779310628307498327050269924568826389813073577999695632042978788355835296590081770002267805277629309607377040838351174242017561979714084300280414356968975893849303332397930830064208111534177208188156324810656522567599253349067761547452999986966385969776821918040034586806226462697398663047824705184570703837252537207321372392534494088215695030836830492588043897762805096567229925624261541455454822800434910841127525619775347999135402758292548559163081760064254116293067799431318647767256145145041700685307875468173411821485151573592763834581671948890813816445751673897738936974137364605525444859036353182739626897110752729328727794379930296565385045731867433813170389795107738420315016236645305221016762638040397583772805759067373790815612096302977130301775714576451479328526063174954031951433622340221578821982094996722748492684670825715703717478878928779723902164969495721505624582598715357561077034585086658811686670474268746492760726779428406435211340316403930891591263021546807124539094531565297520889227128947699463448227945306607275358082413597248521828537694461284810391180285947896486755870766918034844062820715344771164251345695893408607696391053206326592625098677409804509675026744800142448306594647443736244198645916477098753694247491064190036254918359453947842380265409009892841357554271778061516790879013660546244420984516128728642275319007800745042905607416754643950189745104903143797278014449134171384496901288465393161404452864687677999421457969137762289289890017585008537470864333196690335080146789746288515773656126902104825450490903795240357596697971622030123898803160963667422501589090828466628888267812189228320875776369910311223535867985880717707657330537049471860054994024159679688764591732165616922556439912835360238676085412615190271426334318070276319438687128027274481526139891260971141670853662000572818467266864437347562686022245360732683347399371802997673473736267460569111572240981332512566191881457402778272179022600241977746884169519221002965398645807382349518288799767204994298565373468742152918082049494824661877252573200897188766919236398564285440718964966776591666674445870874466164186985343361501468679159281086067411566269331421717540811919755063132573807326708323679306684116421984881040808452422065411976865445685025969877401378755286591131081248683074550369999576912094898949725863129481666168245384030318746793963575836035163898169236254592868165491754684195348405731085534404118385371799570780524870645260488922156790203919507335311372393415419684884689336408499483113399046726712918888554815482022686529626195337157948352648296704644121024534101030417252635694658345434881996050423130837263085223255762667938978032025715561547062327989126054500068658902521069268133781792971080823516725658135245381437842014127142858822725641514114957760998273053236475164843729026942185016892001269980919865098924508139183983087481781199934725246560271177395735531968241282163263837144155838010740573652182186439740187977222885586166909415043267957902569131136368694518246945356545076260128220588829657013402816640064236471338401021965621112999624832083978723692663827967276933617661797178327058468208576045892983762104013625833948698244765301316294348882323813617967249564230844233056267146433481371507128285650482522288911989168063241368313272234151529177956539669965674846888567900541052006915841704051121674194500008631737320566931162143049988776690654421960369561981044731334863093649918943212171719541977632251798831724604955295180672325977388789706028739884377891801368530318818716958789722852346019183527476465153487561308531621998206189796349546330163562640865608863992273538583806694853349788907260753459079600176065391300082865979861950241338896166328110764197621665674700272154648003029412487829637701729440479853211711061492013463561900907717596183425630490973871635460469465938149585041969129560331286232940165161111741776415884876600024623337023617645885441464743586003312434591956545886247213451090881434033647697467884519423073252049106616067935964662451941528070322445774996969236514484809319342695597779614608717708822041537496311895374103182860223550559421853753317207265193939749730348561942993511948864145286256246082007495869369548924158285261217668410253051349028067087710852291529558678349077862698350761499747995065011214359318609799736555267461564791828550934231680894391309368844780217299509388956377174566208121607717958180380667480216485078860272875810547650441936606219507568049142403412614554613146240552452369501711951832979972500133085239298969863893009628016176733081758880495218520215413059441352072649323281715112762132593683754403564050731178699685601600276815814671422820816570192814309113682168912000598237743235786045375616347843061575147558159069333344926792250912697880152018071100001311335365633640298990098925890792241590081610181518340894813546565624202932849147713358572994565981435898822797857521269974201505519013153108299360265347402577104277160416875377444500905076002317648767844047062645437969721105378059335441037304919953660291118344374858564382617049650430342597170773575861002375345853039736638307347719632440091540791086824085243678613682404062461460831542901516528721694911962095038538421517232722483893946791811469655493665253359976127113853496403102750764186224397931161945155546544945931851276474930003878395118334460804953861781298917610832779103209975375537476371737949163784635883806239466717278041983055904274665969372921856221184077624643200562123407979725798630702335401966089905281788091473542600402599201913483744097359957526179213360091851442655520900699894483664392158575638336349744239703615636595620923684808152475309851888952051891712127629845651026165962607316764355201458493653510623783887662793594520947810057654740003378857911702827081768457151303789445417165498236846153156033850149223895991967896834716608139434414903735037370213554915676245116852263654751928184351325798263721842637502096886277399227076397607205666952161934007442052868705675386556128947587797852282919189165861964817691451264046463064372772717172748497063927071144270130325658419238247641272658571581634097849977405365977845041015712944156783560131570147992398771946050466379741801148179914746431506004071407038298660742312989283493698519223680375240094700944563983952855472017664827396172929528427850574759890634578206742947383788360694096260213697723009609427636333286916584757197400477605603221078371050623301478741706721629445118610103856189019942986851261100049883093521455192127175175185622127520889556533123194622206823873905379614324827394915998738167357348535256320192218000940739371806580288317157509789910011653070987171455374856947051718544133261646403452363859254765330479163829358300178700091506951850104252104032478958244423366440073813486032125838054079301881336173114873930830109850273410594281532491429526195492046986163722640670461398711429664167554817965552595678915403330231690804186996286540358293120672996783375631368091659200522995564962897037839268286039318853305108298482534927576728304663659718036987725456209842722913463116514137209171574486106868985979922378613718324783071354497990084484385039753618068053826622261065816082176087438192142913541126372128769809674687007316639338834891963055971437809564941848598660394370835237361680451182778730510744601752731568713385466856138997078708196969756859366999929024605172545547411217451181842707837472748612059235800656936759182984197426033791592457783415572920628955272539560548491069938687413523611018641635886183636984200662809041997628933206587372494507257590695783611382382212073538470472027089858258842524229605909372293191039902493743588347990107836010902627443587325127877022413244856696146191538464279952394775551898943153575635415616594002084486625382320042364518530888918017958155450963416654900808673303991473485608555387638529982559471429974986049625787700718798550385946356803067818564954737391777384624217121748263209273542663706251238214476493414831837632416290723432877593413800738516320889374068263758504258803850329675780140763052236107240817515706755368169271228839246261977462539104493634372557256414086384823537354466269070207696685823554101602528455016049929417022608422242477093699329774207859966756752127391657517483604782793722466985900196828822007260218631549895300181103496141775447534405628183288161749286936811426876782746320583519271444411674023079921710606287091167267374089187536111547387414803057009322918870952137223278990911778836813337483246688480193104145602470971584446439124616052566449433113146854306556639913412723815219848048753016574611966595798642589163595973237602931236391588212841517464263465091338909529354496927954496373204233131790766804400021762617951549181867153471213666493658180449192480397659961608964799363171080621015575083011094217356771181153224990612828752123739413741153000346104291513171436231616597168013923678548458267061131546595084853280389831089149118495432377917982990076571442523640032447753619474952260945297597609241341232524237665856344755479936978837751205963831304495571468807865155119834579429874814722973266291924072201863186592599283316921271606621682916838923122261003730963113657159623963428325728661470858134591802951671967558034423917332506080477530212858422079339163271450607810983480933419732717251008351662005546693834781476181978196456333924951015127698990973465234204741174299080226660722984837645582968000488921421343544981626364675410991022968021438965037303522113638319791777785108413050498377306623395297065796616282277378754763807476319206653055222110071737155416973105343361107572373423995462797288635501970294156899880858945742149225622307684541147987607997126134549764069252093289875333520176061684354236913908418884181349895396580245898768888510104154032105284818735888349496863635752130783154018795017006753135510027437122458325142868785528136733068012437482479784636093139988548090844137265420719610104623620079163037990425064553874682711827814024534991460501054234173716035167302161124185855556048271625582156696002467327496271797989997389782838604014398419462439260835916225185752662508182702695376507538922351803245445020822811556495786368199072038625315924968103607379324958264598327512127916738888605514431915710739880093862962593372846646026422706354767710922224184765983290044048257033295431109885849272823963566402948895499503461708945480582610002228511006038801482852133257954363144246982641315595655967021174849253844043344962799180021278723606922945594479783402638350909217865674569645448147983100225929927488231167561848203833952556088908634399015035412657999043838564793242588296841181172707183254673192523855524555995049308579679792885460208978322391251953398800023112359050192258880753207756644957845244491180904602854726528307088702477976614631965719576835229580526556431426447428540733013914857847369370348680921625807489800557301479648049928617440697004957363368908774852068103796316198434539163850821771446654442081194508170858897999875980163935836659648411840461195586770148149696046021818260806068541596971740212027368085870692792502845936675436621908468605967000636694996133603244809880748033904452326717140948292440150521591117759404359798575887009488057771572577526684144461043017061510226824316158092768113525213130515686317682024056629221762957857132570481651417682557287005520818414565634890366797403757847094004875784304250307852332843400608329989682238897594804028042379941430053040824132919741665993755187297700802722336271838987989569070650340223003463784584624455413248336051831631636161943049482368940550903363283270849415223399368116755790904974735228481133038071412392209842169378042874063925567151270553165597289096016781088987149810771203654485130070704298444479386138632332543739596776158492857190028392054478337217053777244067860361772750339722090699868197783428985219935572841867604333064775368607372194526738321534163678344167558860898600748314979702612477278533046595195182005186649342586860405165196028535839252601154069466785049711412603761763057140509132879466938061240255037545864699819138489923314779269280617086712020981783933596344294439277212180021192669268274300423564515175104563726774713638578771236496062704935847821264629315303106069182788887376660101559049549080004652108307324615286438064047180298392567461127887705224454023542397082690897999459684210325516797178371177212984178106032465891704544810341118824564351097231963928587436403797330511477790768467362111407692678005997085698936196798863817318659480208820567523273922976715479709212018085043191139643632525246145280169019178896677267730383376280582688820592400534234570694910982147726797210319207142518279642755534922421283023364080888614489710836795363480789364758361240265002291600420253703026594879982028121295331013953473028685435462912782417558193539475787347290178439948513994228310324618913812528272783301532966497913479590886463248887191209322155615475844255119575052311247358297797718707956377754856099146189792656269394663348469770580569434458386127779660843512284312182900679072262681414648270069370583502049779691903923783516380001380067793089462362174844047049043506298355800001375172176197032536179697359065432553325595067989967272696269496532483316262840925517954791467424861125977823739013369416202041395400490691147877551738442739548848917400796703754268554576508260113169096441531145927355482349824939752867067770650491450503549527948801038658176616040851383345276041048395862038305093207422133731264249710376999640345339978998425294328200767978604012536660164336858676709455663392245310505904636224826999959598967786903700219542343585385229947491215801067049405897947376160372871168802391839656758512623062816285596612298500481010910197095255755016464788488284393822171593539452715041834203359128023890404795378362925872979258282801047228747739781448992044723820866112170641533266109911384829225273350790599175927726995556281297057198929418994653925546954209583141355731708278323132110032054965240210455717381644972289002211746718865578531879173030412458119169790625013473980923529415441020961945908926843116401159658728142504327636068696169487050427781892466763021555483832724490576632072313424064153834306500791906668821511578357599201568212343601352920486478312004964558049680347456078106852829187955431117072074823203033407984534424231181532187225366851246374424793611486894269873003349459215312892630857287871184350240672647975433431809057822208953440975933019001664887913983796285967001768029002069948333128897002364625204007855255674838650075849263192761993150723864483122517973426897779495655723355523872668944649144792983506301982891225508460507377723845667131819551139242555588641351616331090000812859832154464990890240391330743790162543258020897945693983291449575612343780770767792947593581005356827255078040372065820996419742511911493867455868272829796892332663881345828169785861339937390229774790401924958743034928262271777050886529466847707891028547261542342534314959953543175093482035054992993771933467123736609817379715211683666630015889812174511102184809697834037174289357592574982172482611533598510768355705583626059856107062631947797949077444963954868900621783540128260788720216796718398061445717506858305795003435544631761986705172057933177615447883101981699800345064437438725537050411832415363969263335637175747433562202859557788560913015621671310267694148847779128441659476557039030936626929653637690450285071512494752855395505678686869042988907729115670094037024693660774845806277030258374162227645413122287903394212012698039914101753479338547557720559095847300831010952176876154845053006548646535537626569624102949716951709921056423610896759000036135912176951504656053359134674664646974957448023684297772421800853511111665357960572126490204341311436749364180403595873563168820207825601096445297715045977883843586573104742418135259990339622668514509247201102295506602152250990010090372727183727144846879030613673456952176229948531224692358413432686673416623081345642728454673813292737262599638929768425677545785400495902840722254191541058533927095489372230804220669925331388463916028753952609904358427044099039700525485648483851272385561089404217487983690748158008980357508921734227059876728265828516047075970899824849378342765678749603031462534292578222218604228268613651697709152587828227054515954684400620948563500932796494329147166818660712208870325015857981410923564904652870772581864377043887890869819777115300776236225339610154645435943638911605159683835715736551039956390313005327557500187057184995825293260074965284903641092045324292300802901116666378844813455393176648677312740840115115060531235084919982792913854935214198568950348543197782332963540098610615189490422974643273882523471723420894634693917838159155495394353009468789658062875585719434314463947001346228457331496077867335881958222472947595934769329457485562417767736160421757581002828230778006719268819895399818034558120071450935980949677343171356959893794804174287011551302258358583576457984920978119412866174325949263387613717651369305774033211263904990250845372533137024945669241898578202107428323948944422966111949626432965021574341821823762805555375911399396789814521242272428835859129205475096293107766771361309866151878150719357017284097679809471872518593562402697816607330535823861167101656076101869547817840656383069887942595485751258160649252227185071960261981471062352580078795295257790075626188338252706221118014433005016283915627975713592593721254261994567636450064706016609773548054695506083765085222402104998684890956115694297983916916950576101575516190092970706910479942345506859185490730615156845671105555892406265152751703884313757609643949757945942246271257211797866144734320968618385202219429868845224046290954499175760636258907500632650917104913001386158623046286497700918682640507710716321147894582331581134877688382408690511182528789120382566614664285164321736359184093781131683021859049830428128303539775460120998281962741288927009946966917223619788912150912664495200632820551890343901539555314206177092816796962425962820579616859523215966774506076409444004738922682351213018515877501170062140223546869551681250483003948644948558213887444900695364131699664527347261881087936900284758087348209605245528686042398804778796880663731648921331891851763851554692331049136844360853350110124464034876708177512365825001861613487407529107107347512329618154656705980192455764748696059672126462599010649417073795897197932286581834167084474899583722214048371076414055854123327787937044820644090161019375163592039375438994010282646736626162354193776288810296750122664139906747962270970695646112497971952820220563751594591244892004098999565561350850135930743181255823774233321631826342644632360097316078580998273389862165084346789471257507638019168896612682199691059275057572988270925675299544766595964703026538173080199725419044139322655620693517999531941715186057477227800709604374455957478721063324841305778011537180741116725114202282259207767492517066441388511320123163728864285010208616836243046075444153953094398694008664401963689124188049320311341705038159949510062540215211481161726207811295146697126113676144627708887502316131535722818284626650972718687849090333401202869216174938352640532015621641556582113637479032956244570958573854998552448111132275855544425343198108563580989570105890428028035143778346781217703266754975306067635223068461114850264673580430665922828600320453128272576597527857045275800522845125539798262651428288559042318226288477256169859480475434154690335699607182017878124612376845955375257761718002086407081111941279104728379605790300482952023725172965045960337242908526018048249446493439941908801231101231483295729234032908255617027488820195270340542322286757274984370381512553642852280801511803239261646600705469523512966235104486047437557525509645326444717673636771142099580094387240860438855996878151452018927056922048102083188786896713606281766006727584540769590549539206711435025573767536823423022158520674091905110685580516178179874681502495717655670329432996541884757266236633156693133880523725143784617542554827388832763573094002233919381193976389622867695428718118138333384425863799314162355916502219006010918652641929401056340981970861316518218054985634397137883668000454616185321664123327678101946956356248776498640946348650329850448931285772647325108618208972036846231301255017739606225554697040400998149745006603134012397461818445009227004129082474054099132789614199407029049746384909527447925219595391094541222404515285369463400628343001630847983527092624184963573476802609871950104340753025010491854752388456706309733660029036427375964867743312833855782792894127647418725140293183536702319471288708718945602030123108905526436984819407180572001222045696280737869343088330842738153309884877120335870071727803665751598428853691923553962651588226382450369890220535301468487741136150126960850075045742092365900030879720251189984921032000522729372160287692938461267300891752882125260912751130734554321502163257645178159442861397657585789217685950057350203247023306278207152161666853235726788804733300093641026996312480481389713274021845773940351780574781946971971773110485727417868550856351187157573262188491980522903951503311245755334610468492832177961591530641675259488621491832948603435462526413790014497736673810808390614938169012541239951847994374357484414612263371291166022042175428026686120819060826242161284286322507266982175267380773321026018491017013537066757795576578227851282869741271283966613018064566488811119609654251205861990618070162798873403097619901565897343954152383042906787993705737580330024409819513603971985749522011408463551810036823139421053173430387765081677885551413053229659399947332676542388379490116519947529689676474074970111953964878516999321504291448108635238358141396464404078127134872669687448028198097268505150050054408910686671270162183855606766479241393749991608407973712755250383235287082415680563786619954511219509726753399497272495201022096465715664699916660091318622146179385219878403939389852548397140022098710956076946637539702224605956411808986118066974595103817419858220122570892760433649956364572711408085097964883092340740566339050868292353343789646564606794886192056422524228133966897030764861717253278233818226979891636646284876958732964060936644243329282593148878430589746697607387446591344586311369642244456366405801422283785144800413425210002128788807289666687621393808876735998044988393225016449196711553170620128325300832931153955139400750619511517322105874847970664289276483822630555060668719744280907954245441971388841491334057196448785540640570218210652531154141855065418435668061367210496016429197274327796209048111142567083440881402831490005461186658173743164345257176835847760538041937561720223244863484578751385812571334507245239700032325822027608242699907361264518258703541190254058119215296996208178020311536432654148808634473529800709080805164114598696798166182968258052620530262037141400343418223145827934500853446774495396274095358358750847003105651184953150899509012434722632126126825333480858734351239572189072805542417662609009806271030700680744342992142487806787019037546598132605493710805815857314728992708752730426244982856082225822107251110837653877112608485099100533386164296152493673416261947747604029319385670654341931492499014731873651275997875778840317860308646485164336868391167588174856890656437761477519257462406850505501817898475666784844454975929481158417242797743725406838358944424427911806281501158171797740775736444955786554614056008311744424188504110322762992989562581632426678728417946870340395994018399974667887856166751864510642945717861270927561723098477642211596804698437945384411602906309716528467034165569986176527928447370520621558796117902330937147365986637402290774593006852115407205558109977682919468177776729326368668573232239722779579285783003957163361027767217069919737566870888076281358716790768402049249685391228085714403671445763585428635451504265939592371308858551306609376569017330620674387444118634302381973931397680247463874827520951372059921064921820517997482912885596231914229255575946136173939852309526201870305885630724111602641254848447890935424392836782289779360702799089273284632534266507993127933158590579768485163768060942504627246753174457001391484907612489766098558787415959093716003923065743008097793723447313211122620160141986143020916439136887086731582724910279185817026481722389242159703604355380637529903801498260634162257086653562555180713706870345234479024905384792275047675051361862991359397689217893643455295878007329992124667752847331916123611988303424719677207865608561928127833201948293758073511779708555524214513819643317611274940982235448801289884657619497935850755518659469575510078750340995913149300126744729816115965109040074772002543225521929950493768340118664155079547830268303064621657706299403449053251409946508470368741115368014189364619665352600093589876911631988921579628951858108058669715361862534769445694529626774293080657133223931326884427647521047196871557422257124677691343073633164183191972994905294835472438555938932017129502244135673980000911301309181286341685263647004036032368248270141464074989373975433988984345873876287847766330749090182494941381394896461441016045848670525217554278204533154749913869006583432351605285621217696020888509193648111778341950429414888433545487166066811925062814098921715937008607544722429361545578773403762813985937853445446603369656033618010385439430797918915315911124487840764430721094322173231548719311358471220371590943056595380214483237743162329464934995648524459015164600767540526207108746103020647591144417790736257155971731264315192952395175553775099354605487250517301258780628523202890192361187760341448449243991052445202047896425485089407415180440906668734738922304299224742523016388695610661818344703458059565627375702095158996897785458156060547990379251887594062146644855474249242557021599847507590930324147908964215752677734527999145357795375615010421002981095990463191619681215577393190508515141781661515531564153856595753165175039027021719556233761344812259530307261274896067294991265404395746410938648527146416791731598587335924892491162306973319202528525712712671767942067473623914248506981257821978953382981283178788444452357655155901502797566253568090804622839391701150792554975810480331377414449354743523992770253409069521601797861902358309957496639781475174463349215341364546912155700254406154058573464859331426722564190220649277709838768090875144649312518870131323313988068741274938614563163396301906299451491216351179587257227504553281903383891363123765491013436884061908157022025045611268501148065957197047149627155659187808425071640550010092389350280487312111083511186437186781850721698718524291937827835610379117720798105964470952447800867789330260337578969803034533298084403966479740102355891340981115393507477884768391286652002991504177007053277255596409440012625046106978329205738679071352541655482092192819011294524896220729588027158183253234816855802755099838304092068411811472644719942049345910817582933893347416916746590103883017522112263653836426266946398889494750659750018848768007887835620377766956326526805404782375227663106617700400732056437116384625189436233066927671520311140805715432887132639497324463212367815768797484658071169210953472860785124494986137490806559949210417660058104980800483252547876196225060080716480977550869346281202341081620522246327042250296013102971017722811526806760221989693522229795300489390705663407346786224905835886320287753107201698138729094568124870930834110534950609259241497809445906202380229011651868749166440787530004653332907742479371199008360267935436317947906956075845400992311592014441098065401027647296142042191472059445528051791261653606766494734431434395470859986457621032361149195959392103154904769587108329189531176816857291523368044713314599673994808485247784246893128793948546719703809104464121453168975798547260980512164145980078211341520255075218466727708034048340298337297489771923899774855019636890643496312475785399582531229766890301690135373414148571239594844894011233430009515756342241297326010766515579802628931989368524557312355351899029040699088538086269122172014112545451571918674786474154748431999498858795367397699729515582690089504882364231692138674592981285764461702413230435712807791620839493441383330959978577866926237483548070637081135089453150517102860492527732866828117050985754857220756859377736591369264613916168108959273384981817896125897387144469075898211203790877547589858184607277603341255812042420082317004144436669382936895882399323772800717901855673546736516874273888262236412233871720423172421412234944719426693792049703788092091498978511313045728873952854947288461575818293972705875735406304657862319460590073867627953128571940197485587375126163493196276191985147111531310898282843135943949764791257677689959115216945489378879353529362598747589530110321961024878247942779101227835342398311922672014272181992857068049177711757242794800109690550431324406089306666941105621250807695354376824971147263914059138546453044160170078680116318048761171774527228947309925911768053575580647113347924167344351489868462675221652467338426598888258891263288531106153824836496757041623544920550644020042098761211569036139316534377390451005015020329145354922439140567678671394658695770759257140940002311403166647348173198436403967908668217908420259905182287287753664925967685516252262969356105444528533985545546783010446629882065319102827858987170086346819422553820291910669431227460629337337628451772196626268951563522471218557145909635845002791561463413364185538188713141541140253625468151698701923200465382708634292855629181308375910890755499527397300206620446970727759108728254767069696695216400874236225475334685203520396354653914349332993439009878317315177467679789527983385628166554532741869212943669768015307680983683115987707594644066500274777625341362223363136382430936284744851272177052091537043119129137784753117755384677659452494644351014312821454721920952889098953786596221549880529775039046342382132542053066123687957463007735898908566935600903725760996438915541292037187480712362748881522833867592414593850467205335454900560419643690212580929903022843603967026439480232634540493588215751268697521778620622739955530282179178402321018787558965541404218894134209503374169139175549237887716932476459449372083403966885464197868879713051195174558980781892104618146259061428789326726300603868163494979042165026532656448246773593529154504510131781342250059780890199032333179414087586634425047003952986752755360451560585101800709772312043017248018919792595857486455517734658417023610497087879714224343935911736104407669602346190934657525371102778746456473015393133679386676856361261507398955014730406142312299733066389230764172342572802057652643579560924135409528217110532042313687773140130993954540756314789364107448238662945195815102060244514416630764447692787853673536615768532905703389898927234193820897820245335020642179455837123905611378229826389790644262040809189254144980268733500248662428353838167826985245162319785543744487094402391664399013971877830924389418436078980402730445167788500173720079581899957096208786132760458401437404322465555002249511505895335858564134963130535469325496768802539538454401092595941725299374274215649455004750387287001830737286036146533530942634155930957856219614089851403477396887470753743335701112128693358700616348290695424081228105717813038423946002103396965378018429908627897291719843256265989540673383704415612580144471035035369456896641953379896163535409152298399124115728364495640751128684973293625965794666850147835410620332567589910724333895497939779346159484573028648976275300434479368448867446488191548267231039802939190528415959284420132142306952401298651805824097738014320349681401987444338052189900103860881057594719044524931719355308660729293313913306921597620850385309897205430497081646161654464356778050815853887991801831226782792664529497231123719783268246148522182443397507217721692179182249641282928851812101379500685617782818530364662875834756174899327653218667266639441358177027761058460790484612666734380421597847467607951871921750606474498086806022586454034883377053566339761042452556545563708682520250133505387906033895045242846211446110068111214521718044343960462543848272253721830486823617716964427313124371087771248137392147238320102605230684493578642990119072020175163265339438383020224244110933926874645304139302447315625328978599273262621313851608099687199487611482724960914518686856985987256785890679725234399420613759930735146519601346408408078502968390033169323989773551661322402686910227395510620862289046471558252869927456729506098646136413604871671484736440804242940598305637650125620902311242098117636230216052345591643633410580114119755699028392296513368973600952514938929562632261622076668010476413654680838270805286676645954936401841536674877193633093273991450470550419901230100196078625466356998525531684695823927578511288888510322280911830814988057237524654919471346641608075097876690451292674020449386768126309573390930917889297208759906191918693329955090801099221086121311229351529470074180969052266935448489559756753629915019191552352233988568507083310133834746076220464515714917648701432175511318564048937799506501271714158317012133972167899127338137946141073055137170975511924527032689370685422078845620299525814905202465434608693379699054521034000420859458806384181787622970599321207684988750381652615652206228204123828565139322331921551142361050912839883725575164411928632954480598229367495704013589204881022651032051419387915270380182417562604785332606585934604317206710018570120873401574897173706774323690047428167492016386488616115357520578141303007127407769656026465899081930090963581680943489045194408597374996614751867355986821575861347630652024173162909072010227171064039552328688973746775945360628988589332017270296178921979969482690908286982586075489614059046800499589449392209792893395450670860552178238709847302464545057868455286026648496869656720881512799872601942423167082088543475152089647900643604063296063994981695524885224686517147937541322191663446318431147503743082255207307921993068887901601687900862997452174267676623887385931834237164868862044546216596412506118567628162145700012111529946174154223697196938560312327424680766769200354708241000382754944191131276486064305462237224838219548438090426576568473564822728332010790272361250444491038850247529569339474780513617248311889957466826568994556036098423498981564221541454266071455716905796626788501028961080059953379111631909674283278969132082689191382481886764197305065519620055081527529023741040057835568892075031323566400238571835899802557744637535068775172265826078222967141948424948722336900871752484621036988854197307778139856157164043619501053242124970333651145874303273841899184350394686892543635310328769784873005714524227866254481372099691361780135182424680526582700502948399800696476634244374444771119544786842209149963965542315345155514001872155270259624911970509810988153059444528827016674518580460795101545143648126707414006103800037076170738808594745690234779496261545501165459048252993164818723308035360310594511214037911470301665300104294037767611053795444217469589381614610880260523769144173880673786942595698139775794567759644314745880792403772526609080800757456907501540783663402806490895267687562707278362519878406927693333267194723430313367950584307422432912347716261128708935723785152486795559835420087575337153147467915631863421531140037287995454565979114421670794556732483862195417325184971228231198217928456159857767733443585311206123502144112674165140592676700489781815944435977973929987176631449931679681445850868369919961476198296005595579634461098206516303592886298333620822135866721349523205632501026746464420492632851329873893664893733528429114662782974050850323691457432673080213403952725669025985978118770886143723045735377128014708185897920586636313953125131876359486932140349901346784423412519702278613558657824137382113743284442781917837639652479831207178283620667994585835632901621135498125537165682044130534200014922265754150820390992828486710784093085681956192939056957105085893925068262290290882356122950926861700242831561812827922432720456698422763574518515701935844725128773623574481213333807827126170829214721998290179116260574195477886129965155444878835218170625715662637478745848325742817462503704204555706163494893699191211542867059040926979986702079667834560922779010153900974546751925341245266353445698131582178189827137175482152326285025632930219848655700173305614281192360780259952869298751670850624421328190412517127322623331281685788907727486325075435186938975672599745392013440116509400430811061333999546193104333548579750957302225623032482791729784040145859405818147102759293947515592040540092962378259475972026287009176564781686402880926252040609780552029153723877727898264341578772984896209135894592254382632709919933033896369321975538451934469336704579085309085895250240982275961157815303022947851290947921344022954150473839448192539997598537389288439573415399227066136978202758699862044119150296827966309176487581277553375063574799669090859649453749446870488228939913670985964570914939811201501619284587825449119020993023302330521521189808550067861321551625731381096160584396372923202433969314239635838771620248957483823536804032241210861370158519312842063320930702866808714774438862187688226599547911963556573363328044468203436088666165310647103119102657287874524074265854842505717623287523208582891372101454054373306379809532728700776880603516866361730325953764093276749067686952521366876723754613963814613897705099129887915277584426771009832996097654197288429971725977432620154906241954909716877961341231558120575367207276940903610541332085468933134482965385458060588651858140975849100917752091535501777485081776437190776744025363995496182346530825202083279370396276391941661170951956825551813532242202222950829952173850360670300230974998359988616424260801395496675021251540501180035686348510711805743418105365494416906806256741342373711573415894337822591313573050601468233262297692248131209401467765322215608063180023659862113789883754228104925922702518541381357554978030118092351731740708256119803685881197739819411610816399420663944815645309963477030902731138921944198586902902575857192939104551212404628540089687004700280943659325466054852933369414628617218031778500856736242246628930732019078579288436151288971109052765562282426231222630575706351069295019256055782964560261588914388295146202710423275606927269434584955428207593199133483802087651879746892138566641825259635353698156840236433976081399317863334155211668453365699694976655714998453652261446544790863467657304285399100239057803039778838574769368903278345111438256844599118838283627578501857048094260373578557125289527179186176535477774536050095819576994551589929635677344410301508759302645012104118351136163812558499880073723079496252964770978825741015830784844568396314660189097241123149605778132753768997063280096166822105312899810431743240099604314175447510203687516452798663858032503973133048874367271774472914764350961343282010800048633513845628990057357038290942708049769493943619963617271776766858412930673064907659600485618807087638002049059997270867751012462577162909009028855956798985664666541326177177694928248634462330567265190821099134330187749565843747706617959947302536265244981986325307211374152409569611933697609920273633519552512116943254811888639212431813791613798329155377992619103780695804584536431023851534580324086186588837069423961122231203316401221646314697170936850733883013177768509741467628564123779745536398791259956495620203767254990715214781635446863985919939627474828619652587444537458382866288860267909826917271106913142248877786633260092516918987824063125692465327586974845522162341937033549996129308541350762924552006524217068868808063493755730416792296180012520002538948024671749160571568257500271257491727183033126308672655993500582474959895932731467527790640080971309459535093256062255398722071097494753982739091803274527419213021320630988078352927687468013536841762780744177478606611462038955153975255578589714497355469825092315853056566406931936515066365610640090913265422953823786750259053721060778798786835438652102751197493956452068116568611944199406518022873059379919571549412963299088817233430059511594989252728791997281545296471337623859725259262171979768069521036775858604204650647194579854759135111017618920262278840077911401724253719263486096666884773980232367661347911636201698083708331592580912706493001626068110221258029510315988567017313251238286976793833480654247796445996151880087696341793760970813309389931686428833499020284848351408318258809781505669535036767506276687517046490802516767040507908361984641857741723878786742870596630693229268610810317773118988194422375634268470335860124200610298982132496895615174781771584272796466132068321842129574430004673062794902630696928115257650196155841592735093860863110653845210255688079806464966264418566970174954873034274517560864365751818504987218489133826094717986614689284160212267574153340579843763345046181534129223942958202715767683557701516602247364409146666615141550489970461027272168359656960394815551392489193850077138111134893413138304089424408341576351604918031165878289089176792189132728272767243814004826395944986392950644601850548457261030102338020724540278880596621793544327456370995280896531762160251613319858709777446137761696015665186829029071818299545716825711837310687569642827141991847116305663364347774717246937059724130385939528511397888420474212518545545647374942668697170150417654596455139805252174007456530285168654394520218983152081273897263858942188319010094708338086710829319369298695741513869166237223305307171211055769170885999921145919037484812158758612697042129139889714735070626579971633389307413393876495133043573839278783481048857136774930498346182521495581429704535166549864323036165778270679670319743711336748217680207585775512185764584105317142392109844752003385161740427075847686141107529935643594459635023134164929672565042042624666154460408383626773007448908161449500050047566073517869240647263734041281381920240374323818347541290341546079516892891784436490620505401050147788689308993822422445062355673448669455528300321100801567660852914605790877074313751741513003175335919602946710729789487520410887553167750017423497587978203804723198636207766953325139621874433875704013507175456290231015278976106847387895839398660281756327274411855663640940545126174193691603274521651536859935350641112867838524623397751464328124408480217837251208814824081676173134181880390105405503708243717075542727097122335392107674606828017458771460539339549889655421082722564394255685012265916392639066113546042861717500121887030272768190133912772228787328547769362571278726900505367108373639948740614871934063614676916699254583919075195338863961300267459532713669783831455489858258141756891158975982521302970619019252136049102985374582047151986384713944384351532758433477128376314659669951719447519273828631472220015846481782033967740467920340670450492573621101632328871583133696730354862154515473445472220474896819542153073776483107318669209410786709179119467928389033836570469538285779380685100652161168434913412409785883386142778223041299968008168372680762160332839967110758909201169754206457093524443773523758711625514527673782339639660507193504110935973842582274398767758285737645096864500448661576619602274944318238338570356659968582574036539889086645032011074262106977558042958863402333511233334891345294316474943313849121355966987855464740965777204328757126345751376337996674924002914901015717473302444814918671824494368081054302310329993965173177326846323776236802010442807240188191044191031432187090765022863630752410532459160425732608124749943787284035942657551108204706427483506698259628064911242191811884230140937408510427668629871465711980039670055664548315869393416075186917803121613275561276289790891585024935441363987884466803357412007498354975720854922415723280012630452515297991299373837613307283649456095615474707108742480024887568943522058936543789025849611227890261510205533252033018835149420312470007878004448950527688995696378830137246527832424112486034309509034836880510615024478725445478765804269176945284565161634621184899516047457437432197083591567582598139714805937558519930942582328081192464658923042397681722996840528667795574711141645827751440639067268330737188532385495931385482188678036767854995479030822212475717997943545409432352884378401990215253206093028812882512119381616712997556956418802237800854005206778985420095177208001191569377579874311802858264271161881104815055660748203035608628476359424926727551446693136994905236540729627473474685577133613347427042070792713336783097283306527620273051268872103458278943224171994591483298138953406089912713007135596250479098523571604376834949811449202100553939204974976881494672680693397920905103182008573560230051298550447785465415352188432065820031186963295168638596475958310005862122955004334099954543897980901760056148499666749255171103921033248995457017976560309282126099314366668639486062827479273254887282075066410703380551816143117505424979720931898603807713664804673018028844727340586780755043619452499354706567704571841655422743119008801129163721863309862268114208398496758834582423239224466527101714708480622284087210438997082482915014214667418931340524734479608347109855588202040456329510656779708851388522182714294088133989751574341513271756188268746401828368691894544193764767554020622970510563927824754133826850649883547620932027455951582257114451960909025782919554769238387167260071006061679198372455208367600834831572380833751552772515911395554085318178678931002491362967801565313418069711466887219641888476915944361796087311106286971294273060588269378140899742991440844575707952273167855318505132716793702067397595245423419685410316423581642262922521548385476726166526361436759038414857563242401156823768594329028488021303380350664889800327006792698027115247435271341837424376291057903304109072788517864812990095377897615946791594432644010796652700239887402695526545619721850424612970058353225773782575606407846953315519346330243377358205968461529515306093926202624602548635311357939354602428313947268272866087147913130790588913861206338995994561103474469134136714066129852347202817038405100165263247437590165679746380559192014486553835897728622537371644816849035441825164877440808166709835600331955569780414360913517119819690368003808862225148283558068022487600921868638690985317523114450426034602378055806819945513522783432708422716918716206279563392746779645943964003888348253060628242147528675544073915664267162360358272956151096640996541177709520966316568472718673961666762926914410312918928278634799755654411157772564504057981837313276528067866317954124599944897840319081819805133509411484860880762914279257506477704465233515815203400305942776759081113681577013898442467892411771378664719871119996582194866056898921389738505602313274617279200965775064933378462279373720016610171451370165358090717371316274484314712167754123306322172085749657617104707001948381289498728364559495179097684137035401340159215844119301431245735995157324208437557654602795422799968617543299115254381771366665886146930400930290628085742769475184114295534955759501258495019989457772708499748617608211583849150009199821110249611959289491079767869170406933972087216903746259688624374040922412587528547880829184302171422324350050339622549963527930631186011210784150142096712601178415567263066482491351786936164533992974541462924534068727194028080061043048350665874978018873660322790153338650982859447990761940414218290243250907222927449008441282755580194257704675899187768316612418107523592453536539903433048718047331883712960491169048552357370457113767834639428173514847105703148730681295809150524742554112283628477602025907268120510780273540527679636535151112815284785740824592401143839183981517521866169822474886161896442579964630954688288914902159087519211525394183836533731431116233727369474957062275837467577857945301818450162394823546191415641348823866232151362378090944685670007905519338681866609968657549596036588021539019502611118121297677165830411228741223491187006800211055742814897249169512394289079983359821098601194427157133265441797862916000998203832653041718410676865180716415964354563673379943445902709008684909727491737757937956248318528030863241754757480256988822468150039576077415318297499942660724121282084856560444478078755552258683949132760611577681969489412328596199749501643316084168990223883244907264231473804223633243397393618828792106128481839418991631380694123418429282075138007532090495068044261870849670666017189121310355073579524253867469728802496286095698292506086416185249837606420738168782060197847988368817322295262091279725950972188354239963177479673081596057566688299748528809919479598161586424411146006305995020555620594739183457780656487908278479055623899670558927225708435512943835023583074392001903947605842229046004465022510228868384747680909482515447012375544458690522342457340486059993265499895505110114692769058476180519737962288930730383214999688822351898889900861512007859575662173767544090754145266884737799383365840062181193484301162900054710545122228388910389307701960637001006136171958171334994252049862389534934118126417673350174736248511601472260626223842908204344196943283424090046331315456200435161352017556877254459210238914866593673713769897216037924786591620150344871378757477659391333297604839976399009099625854787037724917141751907018135591910820238812992195298113614186285824727759138306608646833109747652759076768143000413638925322769922913924855359430161598871196379318989667360205146639286607825988615754991017251118711093739094153806087178527098066156572805119201079182438516834038056570383833895220307070946575470057869514398000994230235378756471363937874509879754586877698013449645374857350558918098010664053212658898792305669804971088534803513609484279446493291409133043088623522653324031703973303112927914133931224033372369214354109316353042666418429784347568824845096283342265330149120768029262136373966830078944002025736097802131617218659048878202159820483909247884063681422651740395773389575846679142749897189639245031652162307101266220290838563155924167002428984710947985599179404128538962495769160658305887642227603926966723382834328085119791198309939265459713669570019913871363580383520753623969409022139429816164427460861025697771708291240967611180155008570013622026344536137979527544319603674327839319048509391919088988486316934019358418319956314827121053438108729773769238313728843616619101345205891712233769363621933700044813606587825347854196872032034866387673239267184578533421612820459189894541200749308639471130125228050006974566557391458490022003758712490238446115927716597791584756786975506441340441407107790685833310552841582055279458873886052115386336801370817897792032956028529098330850445221490206234033265907627363979542771804673183625519765539386555062592890042557026849757535012176383005324452036448604827563150465164956324457976295224716258785406187180532188169760927577777819661950400610596054073090157378451945343786260225162653510441677112238480821719293566460519670074799684860932069393885936074972846607168932164696643136834442073377624830518277449834906991253740367254136489698446902775459011248305723108282089779828975836801274104908171409916686983322398109674271809132885289560098770475551580944247760212006174066513444068865233562734171757379078205438555010569446839358308421141556800733619020915881459872903132687234068573498074562653377761678870740902588503849982645329007182294631110201126306757923943460943303805830047503206439085878370126740323022256054519736742661942157755058504343514884411637548922012194543649124012476143907905869698517842652563540842661806637919036153444243927649051350684147055078409972097531774279726057476846509815790799639606529664591915968380868702251931773409821929910146109632968579137066693143143717121819888695740021907942298579475976345744814324969768145509976720746355909334729053435224905978657528601655669394640904497343178436762965178508558956826059318084031386745879635764567856243532960948148973694095950708785697245268588387019540418735165691816271497159881166218931815581616284071187498411312211811101894613592821538011232238109989098250834600943850405521287062617619245938569634736921972359576543074215981457417710658064305113593120200790393729432312169119929189969094962599537580998811020292563231239603600118269403088563912268645418796172587053940067650112459221671103861712869085718679654927355384410866396127024884165824972881487071771910367311760679346870594150116408508720028740489582554590596909508316023839627251004181130281393221395065064152996030028678029217341525039508461791669327691233563264910104241921621350548024186520121702851438277502642459413623101509437554363237150332374754706252212396319574364270534697931766326924971620483107937348007797031215551163195477132142790216218095029409656940944381148159561912340121054517242302228891851481687866586846012737457470169220267115264757726039409111687034669670994202833857403548144927013919115838206737522622482501447561063444608600662822159974857385277061270305196327906401751871677859564984560385874493274045926100812490248552723454982224072598672833239501603823664939569250033706327144205859068741115785980621110147699037420159455601434718181870569653535552843713780182362377561527279873543567462907187631588518946307987975985507970991327444107481182918757598582288216936835578143355785425281569808993336080645679081136994895308491978320449284317129008155777213611105547667434279004673959206540032691550126912844706640533238386444906071342533259231596733688533390393796881709386139067700464992953922284943738931615317939379727524661104110818657476828594256858333845373714130482307448059328379668403730154552545348364042743178349210550205429259923173151971733898386745456362890525149726751752768843883363999814190322598043571512570667972277386359162088838334844941361613659643769942471267778971173693928500529305217813605786840239764393835082452557825716295288208451227279179927039732771103057132507102057258541284818329820579226781531149678007387144790244866657857203768684746066095469064979322368340852151398467537644213020964074190005565488641349604558844256588210685217567621177162291907926607351808994178786435739766685905130059334463555302382803323854045943248508239189509146869589107477172410234665527716476242934810507638313943060315299676901748076377354814097394829811038575832412922791816597817323181672191295783686877532622355015233765275134429405961996402095346140954754381671368584176378083152190417305493455602524937068109163141661342972478429323737148319517600200189796256405635627825625024549905939337518910551666666478142355608728624030847263654183115049736622144425701191301252351097398901060355055327518113777393814023416146171241218690685481425385991941986713540886191923017053714058961444518684793632645518104701108370457758051258839565671151103793175894056110860678840831343842617660887874146930082196877195947970664803601429043177116891744838733576015217795433670564963269258654507248976619595528212071449626335508876237610171786035382563216924187616400717011429588635701691493575898725217037758401284139118379832377963056401765951765366786170379276752109331390772485535272869744074639805369742392165537397408780579118845589247718438504994188406587848891935958505454252000618254013071352166576703143000407762336820719963249633598758646243127225810660911742902678602897989885847874729314285077459450203047676738088508570346313773224926023603441360826293871465883434446319288002585602049588213074073134631655058536786446950243151370224822703956862558566393775983277797193504757309905187473396062970507646337597376991503292321667716731387474640825560961904860602725704218717531915912371029296908848115334660999723235031950540136285570806719210745405850093425017772136096624665869666448712255316631960989324400739643796391580799210075738566414882888379921611240966469387812689830551099515679673295701257114011265809603326470379457687420093447817205178451732839894017627561055809908659350845863652586041032837001520206265007054713322719058542460854802027946765020917680724466538885625569384692421345677320674117550593128662121438209255762737321878505022875411575966729129270639448549165247337409305741919120620364440955253723347586997682532108468457908670899071992957656695067761988571070378472967825526482208737775226951985894064075957304478187942948446953032873554340910391242851088076181326952364231540691065485887647156879774813286783366634970665743488086261680858640416793059486642371805020612684855035971393908353576412556202392195545304835497404274336514969353606816981970985124802614016060760270006286807450356705258963282190948462478923860988782546250040804884014722892215502503637257612494568519659959076142045038125667124170113404273800570506170330092168855072105636787678201761459457973791141563066757992530723832245777295909328122586826781580605385502164664183844203795772325416305774984107253440423769023173077012530655694291393314799311838862484691504205545521144706902904491724154042727675727351873154527403500055946503844013202283559169294548606012534376984254325604806593171402240053415241184303556223970319164385991142953687263000061943053251687756872410891817008009647945557515765408497708177199730890645155268510968661258021217607785997209653116726571903590181022523272659115372335492814374329650949627138051641344740177693344739789064252393595817167696746016368843542015457890022250491737666877433789739338916887947385603313612034500067423506618882224462068912378894785007647181060674395076895668925153972464978017022175239345736734154226957435417210351588918433283218918436468009294183906830381443956956766850985696192716843529528559815166372793545182535173642471023159053585196799426428151646319713665949414684607418988067037566376003954498798720628824149230861330158251931542543808347690325597642880937261121242652689331165490084418933318956837512334033706069053322835398563887868471636647553933532433169054469641587229661689821891652621125276768992682373021815157752903671233197717658478499323128629102720385688114136318037356493333663261795496537984569299789063012249673564772392709881510101741655418075277526963992197808290303029166027244973402344299597658409361377074897070870999677150660306733585692923831041833437658545465670967761154036822655020057967482126642105696089533777447120532906368552585956794279430500988950882108892301260529918517844934846693579643534516384303708676250917942993022551870592081580446433930666092417436461608278711606432507315911532693046417196848617692080179640743618086592338362219499565465791975265882433182928198424054261420114543944601883591837857503193065031450960639990388312716563023175945055512824502707160742302611058621237251174207069952808346778284147014021782434000151259145271324781217679410517696663242028216584782414747738350132233797389015214866252043425371109754138377185181703473826842974777946769474148855310324997835919809818164945845950357870862266094668883699943556072695607238826893012800922981091653333399006117952730801337863688483862378652389212148802048121301891978622167459922895013754740722193407811901130217100323377956121298887179563453671745036117305460625652423850900647649184532898401544285914983315071274155560701718304795449424947840368032652666982182662760528330678177260301086375539919690015595880508384523432147925482454020663308797189064955661927522411464128790260455351894541257218046671421691018006730048582924395186526055424423278324510760172794479617113659662159533351252791739303264440525028892940003633091275731156610433958310355986438320040585778634936417394647188382550945121464871228421937891611105451227715720789765259572754252060336523059637998524023915301530150164039053576295794367405380395861346906941675322070598871253798858025300141579850976986588284120956118065884003237631696583366007079761770921702387123235249685670165808686914873680276325245352783653597997744095477545280252048379334682882006508476110270494715752897559164653481581687716144490790968317306769274070440327411922055859939155868286016296313156634888801103246483305699356268892273797343978557680343704310001381280557724503373796377247395123826877650934297298404628152136422670814380322649194297311688653759752911535619717760476159853895058173513520295929801776253348867629096195069338032103399817127795842516085543026026673712570757064934179779862039235754270493949107076884825324727279522301164363703058724566463387473282613410842438055077211583320110791837918229231585237893064573224702353930427104263510879530752767179803512724420096088707480717821834741288187925955282679952679750739841542028011750491197556619035343499815016891310074238693495343411951677683913756121823609948296722446084676685219418654648665936146155417354745432456280299998225494750670579434453249002945953190142833417349853074911127819076601539072177154128658857317841827594264936447668452585415836028327245638838655407435937020318225679143093278454988404378472135800876522935734320992328263870200643332829430970896132879546215438599535818433900900119734810094784319179179935735774104022839339520647219947239686007229635168449201382512017772549403319051039067615353361643417781006008383620885802854679290207941726917904678644163272354676971890148674930133053863975284673454623193922705839923093799718228487435750375754929436966778729299971191077424476797079824542332423951072464210554584580934480994362910154337768055074611415282894979324661475858917842057848989596478620420793706828184917868135433889290095840084761348748518436177524741390955147529137271038867967744722883509633807472847161106543278044162876284790851662744884542520055990437795275944021572762586595937816419013853503866345078741212955199819374468261618951291335462281660493526544639273000028578940652834063776823412597543870225244777609149576253136689349831504295891322596271988153688489727088635634650616838631853088059572300115212558119202297824994937624825917218436832792315371317648545942965493597726655764460950502741939456422927378079302622507079288106172510323321702892181298289567473276534647514077175764680064820793204635644969692434688988050303660369586724736048648609004268349901733346754851392106906731525732505818563300525032266379484804180148826452889902468603897745130305776673123637726078013044424450287338436262249967141498520283071022951191004972988982676280595333826492047735636301057959056643783544604120589497683770589723993508692999459457821074830634556526687324636712562443683271313198712596217299668925360975612731148912598633267655171157368138726441642385185758412912038157127712998224461473177244601957359247765056958775018113508757963527935180296928966909496924785075933683930685545499461256387892736104098623160691251582945100481423860437513262374968282699203959449642528800084474898765546924360685139037720134009017269454678616008282897314239363513274549578343915587231929062046261330522572222712329680993268999524213175217147103102873639197757149528505959114163999107466365559576971881072637734340802271278975781422066337805485119678556303154067940057032237501530444221991689705730826989948857928219114691178414325569598948898169139739959575907297853338567757371756608813188484239140116664204053226115486972222816181841396829062335349861069393059573386953920817494661247396773925707191351544667989180529748919722120082168542826906463596703267765814598610325004021799230640246669125393326086890669871899083886038932667893283003145997182611964187727417808329857377154554465894043420840795913370173033650651563602032682720588234021648180924980453960782489687542951650964589914636363867866668552136192389215614656589896498464111656514752041466527502113885885830348980715983952672014184429100121573111701175141346561850745647728980477811867722358886165551714253430146245536223362354878193084248753449292846447748181785239448164054554494344841166212331646580489380418261361400249625479193228780842700608030998241379060791125450405473430404901059035389736754475341685823961550156896375503151006135862502853706657388381474014818014359215533078367087951149783209310655109043856832380592822610539861727630670907548722719629508896037842706536206509307572804712683763604285345592321539565970592091494624797218194167155653002334041246076534734826130484566672699751880805668182670328094042239693689973035859538064406624584516449980681634237513950968983432181175352175406646823842855450100556238351694857490700144506829489615508077530755763628030583829486680649737585562408278856436169168071622298805697460221496173240935923418886823681894954576875246755036787538586723011228245039071845870482822715729843544469495371354950152089196395827278824836094796159420627014062786505884227202433141944958315935543097063927551780403412729339194772561482416353405525815929290415988054303799115341824357295183877401056100522559920409903614302243826188298565328594576370059901206120271053840699499733784099050825176503576645441555956242629103505672525194436241357912618892504628734234536540026145550240382938770500712626394230616631957825122460780092319269000987382161660523304229053713741016293691154598325333067923236629197760099595474405033452074486067959766958848656157965863438057620700343199823615268492489311855467175216235295313121856676416599820181069121168976942074345246336652673175567586388425990486725695743620449425113325410612770359498138979616623102270308060500046940712473625377161087718417206542271818166073278814818281973736034853922575256883448482408748112290832814208921536083401019236899930860923302622972145275542467781558006741442563704118630880741120628313662764171758199126712984811987840672008177603318602874298138919086385402612822268478977701823263877295792058201878232284600556737303706984981258167348063739363211844465214548668359613618305375649869548990693848498142727823319925347730298884985027316518736376131282533885169609281898619184170639865754773514224911585667276505276364888459830043666291655738114006988668598132902007947328614054946606445077469443200517944505073035791245939536765582568147543420422546089099835680682286498935553248472868745037848465556852349248430914056005241978515272382219962715088011505522003901049246753284303332564104718894081777667847446224373092310911254503119402735028716166232088895179049357766562082621381076788899440591739045922253832153976861536596347825824248465250886474099498360838548031491493159242832350095074642224418155913038936834719426805353580028072806393147618599922703585332721647637501319112253403912328530952115169532959831998074790351729574586445706000234166854111245204246429812812376537320287662847011409569251705461135687352419700002473224430520741668992633628973370776365173918191185217006186101082462906173947587505701426482892523070761526692529472818445858779451296755657098257369379646265451584364423501235461935796378381695112184574552187511192826779522086101508480204240972690977939414142922831133147363193744105757610316785422903439253721900967188478940178643349041519489534260988630734339299359846713171974499505602617095206064893990918078678029155116583196900760183262173961665400255274972814726680089407430866116591444457360952353017741329250547243784305179804014960625979476056140831905589750889673407672761128922755014585269699089168850754110218306666843443084762308567619674067191066362899640553664244055720558568966742718317451289643771011080027531819374981699237238881725263894120347029906142483328933837300994871960226088221026993343502877283651672062683297263799478711296959152717109307104111453258248611138350638493341439541627174752340727555872900851955460239484936335965784330541591309333397051891634724029492675905440060376156441243504547684519469804212176915732138195292019446881578857283509572914508720157317726534393410546176355990384772699462567962117707554670236284845498057842300762093670249224708262647295026010016307572978032675330913180665640682237444763597891835108813841727759357465652477165357656913876934655345005011506707513039168641456678631531762843973374929114696920614399744385967744548513089051666476723324790792039318134006996404035437809737903089490806548021476747240068224233030766055631393108338867359747996470202621477610129445041226608687685826121505652418801790554326565357641327507602956570980154801814132259512011611187161418285062894049108440153182933031214684427376721303830635100967879716089984234476092950193868233399566048716851347188565650784258704894107113935880003500117539916624600787447680515138819924075869905794033966362070980588102246428605364904431474130435309686214182719939736687743484684757660682018691911786371434023752551313283874998604523489195773404150397791371266900259231485353496743398962905257039318900862349850158745287084834961317425517064415510591026847229252649926025865416195138415255549602093763772493439997318553137544162305653649021799212683571086761031936164883089094892575767742964991258817869492689709185741232522425478368007597453671105044145657996192251113065717183341509188804325693245539701743127158961838631758247203034789929653906570462894406695286201337387632714228488044069768960634816339720545283386460265602893241642083571578294412690547780476448766362820782792563421824264130384966783565899666928290313518028492287691129373841830797830644546416888309821289643660413928391859680186515384462899078175277041748429037669031448340848498283952535716951488910142353065877136778173589446835911051500827993394798981778417362069142047911664857541459923088408843004437688270966039345833114797300099723508151739944551798832176876239804881650932046399421756303095439808196104461526134550847979405983878924966177458808682572319177034145053799592712147813193240495266671525436634016014019763655651723191565803981826837783983048304091737165002658310748780362208815913925351151611230661384884617749077089994537336348731407545887630569238938231137976297376418932918177933970614398116418729846360797041097698801903707448929231832437742185669227943568207113309021895866566746369833137372687885416037328864221634516229058380996988504777479996347442285616572663977359538442195659199707179608981465154577152548296275992838758862810063251262060688547637693977776726506454222374475148147426852559484380156580880438645557141933183106368699599614297516488677186052122725156735249675611778642688819739101559635455778959863457398008304752194658728543343047760375177029170543072643935816808141723800763346638220750423376004569013560626341457153193986788889887622292367202347006478321209365249732783218414366488279079678144737142161143371577340298328210700162417873829693078912526291680258740123011954092946185094142150730673476293301186662151334331249702796865477494434014749824697180261249893872888535263783615334586218166743504563245770918136838865553324289541223128789718410713249439007347882495200107690397244339116345794232942502369824798387612067126147254893138544681769289702639374778156534944272389143102855151537204443313964370548532181279213937941137987563424481258506978681758562191345442629369359728265358108151805195104375218957061233716196818543974300864862641089741013216840319248371902282131083549520008700252388245660987665549524696280570176836427583038800128011008862359423457646342703788166052883526375869377021800203070361504386565733329075919615874009901411693243013896439402150543889787984138127801815807315229596280166328422483439402088112223125850819396440137395141892311357801117063449936809461375650917795714574060369421774471665809210059468369284583878767578426580967554643262652583706408735219457167296362924060556591017935704769834368157680928125666712863746089466227006920484828632926966529893076169681297146945472852170683568811448183687997669234724115827692471371017085113954337090621918301176369907260378279904886794184471008551919156188548925547717443636143092752397308817032043924924203040553932093151901591995272546117719104865337789865020844875399301025124130288147688688880563771675694824523946818957651488423094296853646510510264779966881893298691107364174114291039094071380651766317276536847575237283204996933698433600759052475239354502252640935385460868693915026421112674893780462418844267647067026080419078864961250668810347835748179291147340433883410867651904608748614344733250629861771593484969252215715266528475179408372956431873104515866880901416505161803006661260514279181911401894780048031819766939534257016743545499684421426799448663421760103008211575251373606034008311936350787291577819113092619977740847306401539344805501835327710708582118457336305405666422864503953696303071318612679711362009505901258058047224346462330720774770800065245677346062056168035145951293260350872058478983641070400376984477722066165889072533507751151948220305619178797665419860866041565257127646398598967035746744462457753691421952622319696515678512625860717001444904000363118758278098646734938236895908035630893418313338300539400006017990226592384598265727301559670319847307215376923574527961390152284303480169291559583975315742719176387660242799725018821597368886905118749232873111922665032462051952328135382485387066914253468331459308563115581570487668037143734805943616207074188684033696422215383054452722352933417728446527038600614007742960538067227924678582081590693209622559752879590598763803872874157279414601992753442480026639847050734288979578939632231917290558578742315353980244471549551030445112472199797887318572250880484201184123931978807770234646244037506154977881184599210992271175321249781824609854002071795488372604744263104549810039450475567242239743424038829617674014042272068847658993385556455330080620373745562816276857814661248430652877059193355034829249953214133297051268078331022605446062260786690871757865622635204952068383424479523430259891391356286625148616346528737964512180587530737761151633232744979889428398661897202789458630226214891372560053971765845674491867221546802898421114250945113390119227539023229769051179434373277815222206750723418016759766564114354447397183499244111976328370946479576878164446811892970382992415634922326619727000141911611271659577273898331239257010521497001305308032996845834220110289749878645337121744340576570990171887321123861281704345058091871965866564974344884820113092637585453929167392781925525752813295723193246169002035279855910794859358530264482141805751041423162850504731142056135832434402695680972423123023810696589971566631559608988784919560265309105992743339640777743148605392217541736726558821088314762275454509097804550657174437796309178783224662102537811902821599068586208265391346815308345409095767524074651788475794789008903771551827083107389614856522888991814242203284261682934908229378755058800216314885643316792055540638108812316828468855015235225054317874354576872269043854018392062130948342172837672709851421634862238220095944420048208980920463434716612815190280165463190388412656557208755859386612536016694571946049485674567626480675901872092532886681437438425764984199512685975190806869828700088071189871215080622625252385890446918431128420463785825435354037969618545819556114397679133198538578626710537662691745691214971999679382562412372873049301763758247159051940448694248890823430095078239594147139524381009439133263591446696306411210894947484994853441383740427284368070950626662682723151712806821690883005437900272933181593265475320341909769440549001091121001476799826917817023282507703821079964939044508758976277500146487155901739206827336526072026613047452122432076070518826269889853929114612475110632288625836238976129508970083389090487314458319353107304782761785286105675259870803483093270475681367015001528399420178907080948812199208331641417228410820799606878132487475602479828375528901554597495477586528926654636709728973194522015546556655589880920698936592268623781038570979404935382455114121849543362004104073486854010220847668206803401512583888463948696776673838644370154962804722771326693628788840860394126028642978959674735880413414222685278724823470559213842776756939892253371245577162975358973135418015218045596647839610271599770540720823699282001394773217324939977917995381584661937976249571396842654586254467065113468342112303293110036168328486994861583634802579839493947415415412635534361144476406596761766211304897859242406894863202689450658377244634247918136705879748061540294970344567563352007593117890793153459807130257404953004186758813797300201970195519755945041662271622399544383219166722160658994228307709986728698263881841099627684107953803815430370337993234278678498029217491966914631000900940764505041483891657786711239076427452106172210758098884394343631317229843720432587748962948967960270692393076794315118730914887680524622661395241293056280154094363429426474100142674279506142317417414530140658491923717392574996961822729540978700158213387431408337426476087040037184566883914994730779134794164771917987270767022816846487222416761837319112088761455167771788275909449194313255229677251308339494366209011736229211030172424015693107666360830194460050518551350153159087729447921310080293963777115833936970565717844576032355877779524608579163871022126259684739126767185936141676480843599354216447697590345271495344451390264433512175354095546569489255558131419823288891197050252251600600629634498193540441192678493794139494316293186658683638969882359093208236684360247606476006564849803160307042276318270279536237494249527125777507271772951210266623576968086646279994018135660123199440380131103236251165382512522526048169505500498433811944213952154503870680529667371972802253160505945226759627782865201717413773940835270624873567461876136292166907788967516086997751458291853474742346986435404140524574620607592522933927636578853102757640382090131413995790428388241146836847272799479902182650406787503687189102448566164967807785012926490198868259540409449406856975603362900803737408206818042289066742191742699179146178798670863039749066417822437572424934252152534093330418430064178557806197146642274471364372246262224420020866751021997078701868790125996284829191716605020495905415708986760027796394559513314412938635260234815490388913261135864206142098172846732048692102498229094856607527412046734885605568620834810761039697646372658707555882500040865655948544016953580131788026061957031893883974377968763504547515122277443825330748220349793103107940375764970181174679000315914849237011498626981762874099626673599808949613666091297981535855114391675286814557699164796347814035357515357251829646247108814909824594669166083397195093926475461152420656227543262027659118253827219293921233010778446932067540386359807043334846492278641870043951915333348646781349697222262743448519991333879674177315798273188805883455852735070428705982736286298938218621114717950376608919659502438112653016719772016181467690872245300107430408439361251960039565489412500210576951104087753865113386951250988237513111050148646382846487553366330433760916014436422242869750445618689815962704736013070354917915757902535467813634035635447517816282751263890906021011212660940021528671082372007831176025474031982998727321776385241254894237231916505077777731896176519222058048773566771045503928376228564112083775905469473151857633939747971400795912395029823158567263788881312694428527909931036198004351105585734447757780185282348443189194892644631573202411295281382169596542020922882196380054397901478635126243077745522820311808613785507951012711202698976099632570882761432794106978839249020691286991974391032006184470050250932800343089877800555571897927925902262850021809328907228669667911291400215788383489444326230018172538776812408056031086936353046223609701326664059632329154036176868415653450039108430305619049223126115967396546067899747352347948980147032997771952493027775136282064245849813833170655526913610397066183085826063453285160049108321027447438506250457983836006284331234715903889470850274232840682458569505343312541690915555513743642637837788766884103023383009855966782267405121692419918946418438837784153771189900877839435263763162980432905415460970189452320158214334475127684167805637293603268179598585347272441210405006332824788910999474878661521848569995180229634244709662098286422691639338218515790533421952514985252853744604078074981935272594212515420998572609002714019036954600408459089445090615707068588238676317537536067466781709785986852434362701697242359515085513265621223900596375897609552834629340307615826161596788393985435889903755201018396097852244752574521492626520231983325657549026216851457624512975164995580481928071411159754475828100418344067234662521008055148188921489084236746568213952034275997243914575714308403339104633798497753060702798997885742307370776998665926376534839394101601049210998359220098558663884150809136872067260466409918914742987260873419875964761905142878118769638064911605413313086579971384406722827171900250952688051755647785106818403191656745003442222847778551236488000832203941935138287287808433457610057857256416767792230955410757475418025520829180298953213590085255325623253147590415556395594582803936538073390275938714657218584992496429245085944856297246047521334177542617710112164415125943525191355870293731019991242723116419213318086164888358279336531197256552530129358809369366142997558974182609881866362641580271701406629814456734549992755051693042338745995312655325140200682731697466379971081495408845532966179660230646767345596607427976823536031042363049247083423224016334093424171134483262023983554700031836975918448117365921993388148208335501438141228689053028888527948111756934749557808667119380328539363941025258729141301371546821434719583918807416980518020644518552612995015576221177400404132109470290987006611414975676015801948653934023773439297322029017840008528085935405887734285126577094073964356668489413392710745086220707953025596469828560289745874729383808223012626288979600361694552144750801986042975605145411928320144071810568303087137994744842813216906996934337886993170489043438369228293875846190093229714771717265512010337082090007760883580928473653817765764051639273216836115386819453851921799528418300171998443729987437681802577604879083264025824416483457984147479433931053115855103445705116237156963403169722626099464535508205921746538494430551912658782709323692877991051406373583953408232208310572816609862975060194223004630530971983716377693704779334534711831426505574539908934604569960149387479768398038863049168272498862556580957089159386896137998682422004000023610682636355063360272789462013884435178027189522409136189552862009484250640564701966649340707884310501605541256124953046690566205073994129817934608529449850937080669715950165520463966656588499639443489496201643287534829421105200308264748899431750082168734152293446868813063648691897712504213630372392887725380882962771544846925343249080514074207162296472079719255980960349800365414818722084374592067817694025675053616803070083830782392581256486429810591027143678144159881059088508124024084452925365889934216308806844635793908131972617020675312039518598876678324562468803219608433460787639934508163714547280749904005023996716510360762307234690161056060529645209408252790275334819079815959731128293749422668506437967148224893212518459897565435328547960920100324591831952324498493544444761442077821184599808196575450679569804341613780841196726935284480959597219822517638354399697913420147948659255569144659168259202535182033198731379391400176127957072675236839602154877874699019923125836927379915482987120307942664363102373936376275381905613967206616997123465249844439643519138354759757885674414917900702819634003760384564085077328462803154921531386243312973753309175356524163597819503665522936096656383239358495442117625629534607805223754959095059688597323645256156888708173148927024949538921287914404919667853564084351434215387726430591567848440112231698053882507989176357516143756921714409902053584506696490812339995378218326392344875070314044952006525874642302045101253880303202724220564591467565847807940366379565628636529290104316144418612569740593381061659086019414262174334464168485422642015477622663649972692170747672082211110415571388221027004435818131446839743358540945742105528814028739966367575262214114484250970066609708767449296126957126113140505555068159677182918303346517091004287396672179150584589908416554222037979621592137633274700356827880612405650805954407239267472863545531812674554096087706030449723545618665181132946066191916566761870101383048019049626207493832095695199241669980209183720260970367027546736657704071173421544770275481602951915974647646910417534806102132262667803556108081415808120482299135747914231391026006909216354741862929620404728704883426268899349415897474429404696249028896224255706420110122278659067133127312194354240006336198602265012891567979576648007372619475567862132632868721208376851909465802438765593361082246134391291538105625980353662303325679088749332335361436750380376019413417657371438122059529476986200310553445527228927010883290868058080047078602686049201876263366367970279526445736257982805814390329447697899036622930653015788359814448430603415000986203386466054886560886789342327878833033537345164191283540136091598933688726208357453427854329906214020184797174698345877860136571385737461882784937793939139507305898806593020435277162837701708641873611432034197109008608825530858757950162302592994466948314313218014318106963089063276778734026818569551244161411323465117440944518120922728680636623729347095001419569635546989212002735043007916375576164813843211987836196701697779426290101541687038771476003214693647189418517521625190273328602163198141436065253808982965385953484916090494486660573261288692236797204947238558976524650492363748899740907682957682198282836216711410393582354017317389174061444598222279493869447966618713486554146054108578845500685532344211486342364956154483773756156398414597609085413443579478767128258513358652133825405419865956795426848195590205540653447702749386791004097374309764074116902437528444483535433031452311264682795160635538207279484218553328352637156802054266652087316598975359704147631018595462387826571744002821773692740736486127731846870875784439608681057658074004660161437874139708314685055313345502416781669102315829114337123295310798822708413612176751489864535334407971645014311721264308088419649434095425930133718840261530607259800175342254842066516716274263201523093258429063511183923333824639808827342718047632168494017748959572665212184928631939317297932999291179734431096105289036198932428608533245573781754490400779507195382823283992029453242772810203989324705770926744533431074186369276669538138071910387980846776935970697605742705390622194069345411053826980424506318292841219248742999741624023917777121490189990654989581122912538490231070632153433364727796089825234771503737472199722354388559334181532192297657742760033676451799018170423382180303263150404947382316033630045776925476075355670278901978156835594554821919467610692012886825184668404746145292250987174913613247409576678967720170883893225888760878903917879044628889972382331152663362519535070081583902088693375595920178489048346411877922879057338077549679172094181223031370945607925526837607822210831142871383744891729098250961261662124428970487249544207619423533665840249407563881534816924220323257936817532254193930445680145272415392914109244934032181439132453979963849174811368536559438205549996820950149718466798892351565766715023546226645299675317876426831633884641172140808774113772714673102486713292217405402880046176614439545405081370113294296615787348129168736534150149748830297453138115329385334076524928022816610176021417767529393217205093579308942004391416673742708828581512833874176412691242916865272384940943849017605820719368321189368414823894001431085661189068193517453522919650892061159858596234684527968876871482789410059300307800979995577396551550730020206833171602338869396919398250453748003606636380731853513190794034776785714052599575294393237735675694442867420879272636019064676473511622541154273829009979832059796385493972856434124171133293146161523174585924152095706291445148582980543839285151878017915806634113414022421944066042837638934198359044738517986864418649450035067698715168506949689184074240679621514533331621660187474609077680422888081711241940842444707841020088177236501449670236361024949752606721138271498542420575332955267804265476864146189089079913760558948784982304350732612272422401550599509644859312805546654560188733528305227285701809147027290004310544251441994879499979226015512140414291561658261220178913881895267115720577067246773410296908552647600528062047269252863616509826673727351533100413147051395571287372160886990729570514133069166953172628814761433047898936192536246638172274760929895464604762213827659820664104803499150767028887699457318508482966286744868283782809611959920070783684763772096457058529141713443990445334155703036156719845826626284764603938063578847414961692153540231385745304989840486636668722339767213801259003718155504825906010625028182715872281356979995352806412193306469333478221165881355727411196789035311342382771051781658505512188612113877909601211294628085847508013829951185938134015463210966917370164292074529102176471305625447746964106638401483553838120076307606894894474437131487909380763608614374958888303572073624254067107059943717055673914612577251394853603534505581073756514551811205083906145981600640415021228402716844660783017815269243593978719954465584349494125003398662661759047040796704650928947591515502035145695635765902230356755169729463316040757623500550566518324475201849817574078190808637169585205392533836919607739530193402092125571823890701510064351647023032013338546103995679483318326476605711219538924525745653839108743081442264404791609810558917290816106283995300830164427844509865967956554026175417044217374746674052392774143831061659955267592376555115400728027608067385379811734924176404465122552756480535005200522091591711869573639587522681255547560956297301088615838039106381144502036026231221844956198803990017383005354619360038479866960236391394350903404516591329849500409555926138346482937863016058412061258066128951383649166851751412567785781749776779683420225970238134861331424661170227081237786260197492915343725475182332347148695434499401870853630464200443876514719938860694642272301286090930032325958091143800317317082632800679233670204860914792988225623130336551748092324071358510700251490976090744499936208087840660248447069602626267466437859144346292569060192454855274745997696602421622951995291170734012871484853225591133681130857789530500784620598660607225403004525894554626948286995657840735925281779117049929433051492531817486025964366389649995608616160903161723477962097947234008874185982815810987963140001501571824527756601404831135976527684349871630578849495666744265193679699567488771072382169152139055878765034300938731419414485700228191303129013416276706333319214887849090258799197101536978931304575983897150838799419642920784501488423581742915804887780112652530953497076082155564745131811099209141954984133492869746662558971115834097267094334393463393182233117364274040443970149056785277697304330001910156875827005920113057956828558722212718224682041784591746215455522743551838882208804893229694150639469819648642995951477098143172408978408085626187354746812900423784313604032978901535637001481383688174723808228238132481763204649015634345597589502916943709607970334365786520699843694467686802735696792241718438352239992839912063334713913703198099167049042555632034584763357726523710124397693830023061862066283270091781165772642289531940756796857135518615488649902216329097054272023711956830053983124154411580329207173129453387686895395943716253621087262915673448518916926502066349544417765094160423189066535943521590676830741996580790472239409385545808605478877576608109890266125726755399470197679910237027092589168132825134818492835079038748894242727069420847122458807454950914266950400214662342370662159041678700916078870975319844005038793269152581623435010324225903543303454406734295957869720056199773694266054797293334471330785479884126573786645387771997254778482716479995808725444289272967085883252171266575103813888187852633508075557425208953790365883859689178272321102692777179379692134727399153605798866352375801593704086222517507560820904584987751287800790471959934731161568118537992096338616389416087801159654420253023036459251368867336287178117355617062443569777854098337010639764210305438384250007013153482908900487488410889498655416942293793437575314432496347687886619288590307206259351850929873921515566698250309312543858303097357242228480465735471127697490749874661852076745121697081116727574454080398718454152082026928475749174535319411162290633737150415731149244952335388832668464733286595904139899204029917344951236749200171139815820098355644177569866858324222146585842084303998603373684803378831725981556792030687801106195629015846466998496621891714087016403097710681290921452619792648017350338358858132237897704806870455981089802216456003490176093626493349660003466734520875763269459374256113636422317012903602014306015442731007930546678640079895266382957794029548610590896243183985785621614356727268042018624638739790690934661109878647093809343618164317306742199063723324682897507653171939418740337957987865462025037964301668743775181007665686082023761903099917407490890742655405900676576130393604539992633295129523104124962405359946271185438690864768179871333984683232070117958104983398783286029042867246437655367133264191756108876588862112934919175774848717306223415523203383031233059376747555967535930797610678891554328341306240603780932079802147458036617973948140240945533870466698372996359547254693457227369876207660379180107927009118462922498728567744526210480099049035995617108694277586203355760735635637728160020523376008831262091240844178972069445163022899239798420417229045880119797523724586968808603839139823157637845607420559291441166302273114442264775353881339625295542675480785553336621373676543571656410297882971486327090595787095307032451309975264992168621296552430992199320182905580267092054405007293786515410639632104556848626577573356488537936456638836793717396407331988386273456681458433503813311571827834107741589781179049541699274265824446610170976595783310731793154360367193827472485849386673688606564351722602710442196332124678924501799814239139588163266816640748861607894849647506975703329385667063242904097212933929522855871679926730341649758484507664792315844575442409734885554598652027972125526071379610282895619266972163255681590408541471020143259477721654595812843224207660741146777693210319012224577942821797685006888056246661211542285066481916029060523814062307455010591635287221548183449607432849786099997954604014255881279443235647649575479304248685628850558766060022907239301899252354912590634219338180701946813438876410322622360188179511746972300148134166891320606841737209055900623147636129597208302204102969604126807612792776115292632568102610575830672791298331338475758992299105524323925777995103550269694632153815428683990445764721807284216902000697324103379852688763979172386409429647397139949451347587105847294664388632193105645082859464045469199640279417732945259040525742454486169736954766849100685815090218594034354686084435979530996062842197552896204986948925854843166577768819253217032589332998571808151835427173806528219702471952698325439031189413016551658040890318240652452363095532481526197751227522692926419178350740808111167137181588634237261505968623888005004811603273894037757458871831994825573857002725875217483847164268043753158852275577274953618242801689653372745433511570912731417090491640855905524182021064471975335073969881419867423465824917780087009259296201980065784874478928732559519154257523736481576239401876475170534024036797117261224577419141423757919669142810073667214220768648480777191883279042794319211216042540224547807044566156073783516053154537630920756606158977643333010702508689006428744225949750893317561545441569413365881720918825552075073761891091881524352494579399727819663204229038784511512576284125949173433588417084149650874723155337251317623166629506571960834371247368515076918231792309309014206603086617116949504494618297560930077357695245584631340777976523863660010340217938208095240580355923963748913977825024621398642960551125209563434785621356925919706573347296226795626822032642944736047157788474399998732439986316801258392663880328097428633027220443183152699967691550718747701399242243978430471351227969360255606440577891767703428184167809436112418538662286221929326784251455197785597119107095858198809583235553459421911470651588452365837323997432540263180602390045033604834575330619885182616560262943669769467511464893981959284121658027913014430941548907111363045528291064532581360828164087778903796796147066755190415761074437997935349884174664033010605290007824190295073052713570968348066637199440762841589121263068553337779802285851263012730152406413902616620427712371819257052141428547973515846324695235243686127268752963354229861260104806381632708878443982653102857627193181733789181101400400151456884936823638680668836835028967816018103823833462430627610330328521835680459479683246477320679708517507438734397808270332573926970071267887229793325735651785821705530065577153198217540184946801963104320906294809494533129315519203335274351413049210096733834093742359042807733547529838307489508121155515553428980784229379554296761076904379295686990907940928259222136384486411622400313968417989092754291805808745120273267603104829293521301162480249430955799062590236634722174615552010568348561047007383942858861327474808433618894095552611413971418435830748035197793759991586040188808845572883339086003950410129774400981835758639206949376773581768817099612332490540663191426769164473583735292662211731072993893467641350862997091821423064888140956838888991575653872605004869986173684596641848603552507438980087185945466950450475678429772546286827322787983368001392631679178631345792068986758779703629187254182943533727083016705068283947177466860379570236672570316199315321123109422921145988116798958973420751967534884468154833489652465565157156215183563581088990464025151956330787724995923562010127894191682280430147437644228881665464814511749901841916120985495712229192175434386055432048139493362587417381507424934319162948146353841375267849048693579326244241757823912803122190988542781708695154799666257187452072073903266269977647728424642841785501614002822911253769867523274759993692809287439754749696199581893724861306495705057427493642979392696089927055597057387569518268230151007469965494638164747525371940507375440156839706452784858873800651113754568281798830404875693564675196689338608542348375914991844363165200963153647901910120333871391316953654366407730557665155352344240409724901984500842960951507758383204024416503086057957795872696455490594417219990454914739004655154526886943953033728822305684454759898709338734604008169731371503748055733559118281981631253218374838567873246590368414895994639655054601131643980480650547200961774162358192000517039618034326061786273852080048695427475421170782185499497182423395321952452103944368947282277938020368188712312218988067056179879137886585680203264453924943908120793578253254832228461826995850568805462851309227429777450072221843664863611441909467438422410792907502759585662700264882580221855953390194471482829275033136107249787497630612936208001665975425220069896325015345765701420203048227700052301853776721197453138261017183883852515310477568754884939963933018769999892116080243926628974228199729467128245671182941170985585045592055604889969649756665831300509143049412849510755821656563174540819032012015060087661366891951859422129219085307641501264285180036421275096577463354606730580810392491075124880157699695203824834291244429948731311853027102838006899652957955259429261012962108845098048818978889758035918689009810551342236354511153285224937976807060108396225307006722199881134735069815712054369072723423634262981577864727420899441460995720686680330763519516984103156984024807616266896982994430781483075410891335521867730224318555219091185504831056395117635198004253138184127169797604504989378218951668274701794722482993714156713560062273821522067524716578278780182449993619536436398463224754717795343286157798064323104000456206216380711937448152217151747794922389549248925760866289771495178664683575351483980469230235448163237739181043803602872704552448973854391805377912337476895882453025344017504427309648160038916123690159564569437735277014998214654615087596439652340386656881688917704607771750740827416604822034734348114222141094962871704790801010202286118765957643025248825762868612158009524808029063370300736606866431177500002561503636279977546170610257316801606527841970410192645373796342466234619150729487252065366499963123425161920371541668116016886987166267567993371806248826831554303347945741242437196917928218096565347121458926292281712655241361513402015724372123459587337831088084084547906806211604506460562945363485769636477610739055537373504380743284904789395164902170440041897911870791772850200283974400814179085625050825917605429150551601256539837010592639765796624101329236326875924497721945928769714466007906701921570362008588869380992573525975468257617678031571289896798409495449824921412599727782723258871731360189519966081247744573549690447941566315227146779643036908253369152296325338848208660263147328874990430178055900218272567875557440759370296987333185872733151248202149996825636090408416524990223143129881444222483980133864992185409678564537859208452101520806268031332054206478791508847428106975909351587129267733842010632241971422347015106437979724105360334392129820436416629798298733781426452220069467788350797864599760046870285115220229242795318574458563858604469536377571937032493184264702171949398512780548155636634408208573457377408273387874764743575696645866024494534979267975191604530422646932588097249337535097599088586873287768415725608212670520292271306493781538522810736636859768326913739554344427580075654739006025438844356149114526807031513495928246487614257495735142975388074795983671448073853974515962256064500084439403638784803081387168014978247981869217936009475374113343593896876626760677227019031363193794943871081438493841317675844898384174205764756023793464029408514853557388687374967557737924454961252763619560430963593476049950259683179199265611450905834133106729246677272404671128499135618592969041967825243350518963297700191694313286289700696649793667050165165696418830363971277543153748492915386440154919187922409147105084734514601425750342530450017035138242548398382046010143562626401548410447593300487030475680282609545544304691022392367786956116544437910168488755807452074449273753256269844177746034887713841054479500720460576066457432683933126470999036623838161599695963537059347322866294690507098428188467993653526040278302426029274070631304096106839720690537646965887157305744166928407694679513689803997875527240923762536251966374854083486578473531026616250854800793129573430359853115548438312247268785524131724802383818273313865458533122309086256081553411854912024712141100161474459085879067395634776260940764646058935878603199727040397107874817270213501206539024645164130866991635707292385146584592730133147473461972700074393700062412660072782166310154549923557528978647620744027372152214642902960325730583993496893641255666322474866161942413038756304377412960480895892399488396470003443961833618489866198904815158598597564782057957213162066590152959249622797597929844139047745916415601855144777961953644614761162081802099578850566140242925986859370932469482987636713779735206362546871644378796923026062624844107708545018478032111276956355759624091498834626672168382358797044423069954311013234548784596757236138462700146612972650768754836363981975121065734591551732795640527847897933104222874386627104787057357176030051230803629726228596516998894693598290193252961099187495241040014190403933210087491486538145893460144974671407067527064187555882378065705377238641339607852706431676507497062668999547327212629205199520269903875427541653755305412118396389871488857545303612812284901431188022236335747926132164410065330207946961393492685669154638382805518774186636538801945123080106269978936079368880331413424550007213487517324288545059576488677721939034768033407552632634236462700892938336341997313211945536605872807574994373034404794860305530165568681704891487969307913394969482470009071307017582699422863021902988411161385386988269110942695616586619784929775098490513891153032941989159147827892884884249375097758605315715283898236128312784194202536983588341544855324054526361187410268308419078311623809985077392225683473137499000586980147496158536754933470108546710278440743217074628473468393835550954989579971760461770334472059783304557611643840705883519288449347170059388917155081410175534364282256428255441024111412561530044246934946360471545019121000933003782604097524885072520771875016844874915333731927544880419580219764449075916536056436134273232567951364365423407046552385228114449277637724314228780997575124553546179246364208667545907321696046785226771005773518474639857435091847118940313352189829203253816735150962706074213408881615224089830703780479544294922884201664326818676593680063379890989865461818312704315763300953833037248984676116636317250571286467689797939602658096463152853508612082766690977830240834519982497850391422766673344334831606513255762495770044155437664396049913717011154761098303790647727724967202209030880152444490858051514415512206621806762937308651579578930905904273189560351495428905630002317914818398127132566357516315277951421699091124659671732865510920130874144542140230318643716093088318148550918185823600389106572567512369060885964460526815555843625519604044816413043453126642851381087170843355926432297914249690895825839834412387350076276991195925382308763215312582523952974978423827084601082564124187244024864514002592566113263717046074366199599740709632945239821549040344663027909708099087060162060326183342591347370202240584324829872568907307430476691888415008316075030826244132680624980152040351506684882130734415238023251898033913922696566485768093802773293009128709451801097737674564353251782104033558413935032117185343154606579635504007609913357630673622613489887049893204264705936172017467771063040240397502721467571791705190786213270972975958893349290874153813717287082870579629402063489149091970459289875173896315537630124206669455766520859955725613012265654783572224483062985727366554872208545277295364732218063847228545785682915901499489853890089087948194674028421582465187339946240305262325692899777240208789565316298919720062544242532562207506565968792720916589249835637177007138794902056823496153730140063693639776684809357116732416728451246904297368889715565519272210025304231817887231143634609663703804326685400965986976392880809437234596500572473777521734865607221449894599471432683598979264105074562334623647409780409760966258276341963926056558484734026456950972571484366476288269305490262727371984987127024463705453498246587557743543860541769016577538675748803399775343857250385847346120952009359730713762157483145302574915376359621511910013093994542825059696856223444518058994666416158774887618168325519752258638414796492630984729894000653210209851333793514467776474538358377578259745509294944533820129396730888099362257212362712537068953280985616920778018343719506200751761286156248748976912608204317961018413639269191320332352122618042477356881690300467026652718756831946093336370633969729635926209576751596000061230870386481273160978920535098092924154710363048540732476933787417646534585578040937201678935024409496817771951029205816260937299320939731352536802627149579906902780094002024658459573614767352384288653181404122697378646112655504581411421989389995985321640472187600046914787584312074365014678038515587935515107207678455872647417119918602798511038821570983656524744828325884557652099613933960122713890645096433359400203464209253385592754756067379259172007262794604738860390222221426923176700380211179756050196106810023349194283006458925704690173136105938818913978348917728660156417719521456402214793280455879509139491922074750638269887340557369140857467242966486979519235718594801364891386802785828736537801362125101713847657242942626131118091940601278560768612981326596322453251024402619559859270316047800530039458943302191748832449097011977724847273454341547363542819557217393403048530419016841872111352426970247836852718833843621873408879275459956411123822669148643457974937992644264198092614890452120700346533759478776728090581014630009184408151772389665647750538495748142800511504749479956827699774352875017841743835802206167587171989169780863038821521369111242744377548326736368663105639703843946022994473031675333501398056010126122259203701838637773717622812210858455236898105136514421199290186607615088954578232241941928653979047267732256599303616792873463357789292690036142861310768206586063384015110611585461404426292521700030877465180431722516724238482111939046556316098260843966220903828802204968283730074541253873639343571680232277922475115818599733871586332132488863078115182519906447444147444111534783049329927457885712090112699507702798630768641521385239788093118074801139351837970471129676766390358294409963821653977444601185905824409019402150955902899350886053677485691467153532425585613989204536172979781249345562812524474086645287711828094411284678620493312724009665106320417497055557522629979236661313587999894889161201778364861130884741768713860276974943174053959737252393963092354575728089048515886650970692423643315426147518821140468442193384731135288606853995218132387781266049272624350420804058066473524167462264451393336214883671472048307410335384976760694754470767418365522494950879389199613736955532395915682127306906576955596772638308143563121006126715903822497543223808344770391039199205233835497395421362466069858442617721462409544937238109396805832963899316690666872451708156483000438470419374866448700290777725856100432209982600986519233060061477385839647246545898781942338158212596866164819807010884242546656573454678457549704765329063651686464349897752994966886836217410732174625325092782965924201503844902625522897569447246489554950541626808853042850828909833976454603576475716752120546168284753023798127409474862739937406866886876599267326410426613993374429567248255789982798792993727398293392575158763699344489073153101800216370093665194985460781913742083295929451575887104998143589452188283242157189484385903464202532881943963012488003709234924193171247994847529671800183933306544828960658096817829776122902905109601580916762437207871355509535457476631393627426557201849624828197092727788964952157045646065921027009011705320502444494030279438567394283675943513576229016532983667731247313444979428438866212219089960158719306007129296350483125723898324157473400469652150628096636727188021260473651383124523169745950503367360409594647366352690822044759982572759359070192499091703775431537632429445601023292674731802115060688404434632533675195161924793589485478869549037212388708118092216134945649762128989481086862406083035864975385142645716255672967551422158730118401336426844844062123483526703324590597418046033962896682802012733845124416979749147524667554242228335544880754109098290346296430584096828769433139001805768695652775697760718964473493133876166681258704750563220933466875367989609605584001381854682765645741177279351113174559869214121022435486728204865400213535130493264881256308693689190391841246190889000645867890808426965922502655603082411848017603709172775497048605686333245720569031140594441208551933118039104445021942403173362249420568255908937362535560238726997200141438674249929637947039034187304932986255186485080853823378969874213368050739389581660163411342936776829632306609919381097742935857863952958925047573592174155802373847473923528696182750871768989319057584832789600814820590375409621955833704501834873589891406682703769746458557716236112570590916430966125693795511023745517832588336150841765402816178997061951585225804845441073524608014906870500750256101750999984287625142158480396577077496905280791408492885742493575010545873553333091902725159851699884432358888620732519613064556877265505462473275526897207445254328982043820643786873821557659163890194636159356027693538960627666024505420578055279196360013708014180113822017996620625689134917379757876148673326499762278410172928010194665104602034114268291586948735624628117913831436221523125303996678699433081174232522155194196207593026517722486202078594656733065895665754055586341166207936951979174529814641035426421334187815268687040499827199217286227636229758372042823507411358472903122207525486772542971564761893734063605342068158853745000232898087931850358843316621846909217439563902512685216461453402598958054583700250378647856164643676781347073750754443208300060520888225933601192409168325924849301121226084738394425375537410877698615940112385071329107294524813624629359189889941558737396904901382004044831682290609618075909657941419369861230789597111326480995020801504710349680670741441994298420971109702073282104992781025311534399245645512805305747081220029993520755715238242450984573078451943285838814929326674835819404958373588744855264726394501241322161558170593394403915015447496607830104822332209890659274969584448539687614576713112606902940885215883614506940822736992901776821571401865311995223203376120881900139493552604051937579078859273671793657954011511521438197485932687888747872717924528271112489156869959553119611500595240430145471413568206054067386376335744855451914799294398624523148158287269391150853842650519648948755827825886412373080120954619268483508377853033975628607753999825984206694560779358231225710599409186325593418246140269905947090263045046890360098491193090833644215638563776263312718209649315650658947736149522476119058825664180066760226047838922535785036725472868464247799937721321057382618208250088029159705647288514555545638374176548178701334200571734866206890872685601183595980650917858555569778934795740450486988341910520783935564970304115055508836502182119623407873742369734516842728738007205863673365983068328620467671280416396983795992033585347472935509012110890127287653045018218932626553299830527303003319538294786925173321660873604029562775422236104271716037373100019029855438941357550063843856748252864107518120211634146069919724993128359989735656361220851435638659961502580031352449233692127434204484350168982839595422160658686827240644775199227871275401895054730251771673988509571101047815953951266833685044732080256788816340698146153303162967993558183697951290304000295716831857791747459427499806013109229265508020472116150811090314469884969440447742202998288629171838697160335110351152359589485772268371054917643564201048873590209659489022388917868610887019609358486393738787787057907614658670584239191789070348901153485403591991104565618470865504458198579944393932530706560436180485450305522642358006974886486549088502389726251963651586983231648123554674892734702082779030747804011796622225620611378630571702949128762410149917615985123546910286096779683632327377381576836884706274473217464429887034120730141279000658314364895912474087302026853817965825812925295716218177137110847916545546632544096438837274331475593416033436912417448800188858525334843077599452391819044601289987098573933590375188811805988659799502719629006350489871552506629269784841951956373203387107847123650821337517963277482068419796336995793184636895879685493972301837931644631927805680860805398422494163279233480525949467046721539577907935235485616782788926135931712653211264918412482882195395529102816388592638979452872597462489715727396049658950810044313912227869808583418682210988836227231173848519528294375735121435304365322278330026748457875070601508977224164618248596388939706925211561446584602985677352523725791015713188163403585668038257588168046057712641388672172322843972049701399632208953009011657236799450252130926054824241575849407486357426064617623417120911584878250342652375754338629166569917430879855020746531249031939249253476268161061014068127763655659380117168140340472720163693115616460542616882628526012468435810693041379713906764998231958821103273204120619959417555047771304197855400148137411736589161940016852202138165896839070325680067186014726638013248256923002332025409088716624824177132611292381176087362252093222803703409739677421297197511642017672964161637600475624040388894859208234014294534037579127291289586187653121607934089202668841310064959843262485510578020065858655306947759435241207695845560075040962351603246869776783008214108323268790675030342709591525551514519461796690129510112254292114502604265563519986098288252237257070084736843420248100752165238219786890893473294551818528561780741525140682656163997848151754152111788944935063561264975559974531305837179391249521968626660852010630055790621143636918900233032423308947319164606662318516888129840672553020596428702797558918091400954722395144561231466180822789889487436490122934539218914269223117213302383482574904138811037122358610087120519287531889813115500534570137978207035678736943210877747281634747523427406486522655890769483946686076733396980227644877894779400074294691211100813955589630307796039395912135901172385954685863306468090529284887832673029314077366053979355182330224793347747015104951917611014774809053836549538118867953857404034721514863359839693086022467194716267727415328170858614216121128766763141086606861592247084808505090718374616304507498109741806497650828498571421064163062526080099582590883477181854678160312366124563131525633208744729982915505195136284761843614385043265909173482683470709284768066479082746317181926951100854386393561781565587901872748341708446991930631934273265434927399434742131982173572782745698320476243809364564397851113314140434511847903883101077611180076351318598622371803072081359734485078662188662308331358927006803128571264622656879131728342506339534394655674212106216420440842863775249136249076275837910574620116465281006420050007989680755284878889654346795893259679920488507813775604021601717695096077718404116388804469830212713962470048641145179528175085274965148367062218283576371004858630799062242439249606022082514735858801772689717672431446858817640382018372740551159957595751701078110027388438104495893851378887199068094158567162456932290121700815594429854068272633583448482437238836298117705829521105469341501204844705673160935244947668137740747316121973121283280880791691335333507776168474961146848524423217681214533917319203401958689697013852576681293404924282918619505817081887073130573601421349140241324138184400656956381951770815023866376564136962385760513159438202448947597343803029648943017564540666943300231885586420593306638866905315693776180793224090028605526393310625776183965659463875215078865646763656677750538674244467136677055617601915028159971589856320863598343889591943338657746885640325631226478867565778353713676533592515641519765682102334954500494029159931971854437110920725195393754322535393731667379748498106233920584078389297298218444040550493630697250623043251361477416656203537206294325577387814275787162616641207721354291275488386250374387338428514169266663697717526587188030232270817800449827093943838726349008069756087239856587632250932042056239325477263044940036087621641700306577116394026248550064260937991262809031180075223351869577990918737088096139199311441160772303132982892099577179398883051511678883891218984963060629240580057828187802454165715234784701846892783182384020648912284223994710275911251601358264339904222841165269314259270766047597259493024453648230256631833739464190454732143995287404368868407108517905996276968531914830474547981899415906098470711749469699290837205148483301673026870913478338671809500092911961212409297565592833276219907425699850707018746320336851853707682361962999057902151249611967735928063663029793430678149334504840950420425740834059512090204558769238907865164773209909768018909569111952907710903453482157883800462754324596376180220051788410096287597889903880192307543104856278219796693140165685226837266845804664826662945327692132022293857918499462171444886754866049249324598466161964283149479057071615471690033869361936413409216509300047857938688794859090771165966948508155053823848253156634188972740665012364150664943997894798730065162513959989728042442015310752537261139612055678231322342750188974715447057432434860433067178450298998359602673462275952441428382408002579433117052111666666729160258616154894970937398977991161694430700870659662770940422520170007824118688797035678838879090973217442856573453650492159421888504424005964268752760169259264036141137249384957090873392321785323284981760272211176542298582222866693063362365672308741864100682601452694607041466852200842755436041549643145774778055298390450153125322213352906211856429323290066597577266637082688807463153462072983820240877933884394348753275842405605838776814964006573031064079378615666679911205438060618152641505370703847941841407212406426009993930084461626065730024064326445993874366017839936971476150441171940617748467943884691197770883089872686663564494444077527654824543132656516315319916791138046299815264438930830240714738734480122942846609178030391695554947609282899519587955466107673192267556845512092395259267501703132726264540760603555168150904948787692677876726344814882440588205871820081782850610187001821059925463759887755999223762037041129551100241090008602098366279780904750628362430292506765635442619564407137533929926458874740256198740854914973208285950955667634069010206940999474568686832051364797758938045852555740683773561155827588912002489437578789620507067432726648659155169260351750063683101166320273562153235721066980581965259194251176241161634500173102973400183128963560918749125981317251545875630610735668155901737577790493234645423397957411496940640617133965984427888528633746087392958107476008447271822280201587907627285905518520978857857450839122608884590447422169887539298760610535062986626301117800177432451537087523641267228128651081353786739719003187595697674665578555121856364139255480767660003000035939001159656312779832996370082577093337093569316450018394920365083798670726191770060164192508716373473177209293987713041705750784569824439377478718646002728234158969107128984910693546852488935725362348548098932329421426043157436584979201896790463257496656892491236162756151315423778750620338314686941268983549489221292495007224981425205449260091564297487607166290458596274798834187564603030935673768741681244687997153479251845692358845090274302445281077241169664911718988887318697582161120959448033826299043137645267784771315308655877022192764141510193042588964235422577835419244433006723266652778788178688166860044720055328590125014675344963504996827243930791197782783741293582909791048576627100799873079919626539768972958758995572727928167153482930478317619967437519834410614680396041362193999553652886919678448275719509657916104347111219684486502305041970607790891374107780530803699703236309146000971263842986488201346122282797816480077068324748136952354514961016257636506647876176705676542461595199009841853752086544767257557335040608963571121516031635228306175339183869244038928476257640799420345028323601987292825171156160490059765014207502755197478914097938915175907175772219164181136098496683187063476055818109522998968131844522670605281390612670429435710583534903712492603533126031890465721092840845703175295469749574254036580280775809552986295063488610770706865865459353809799705272699823869317184525361122736039267082839508529792423613305711745055541668569735413863145147760396006663086092243669561750612491408302903168091265434047048249992602751652563357279095945940420166475914970777052646971889801482309635917063367725160057561897000864225380903667145980743663511496626945937328662345798114716790901352558273864956822191146088510813854665690853475989854993964502778559603165966683635776450593735948239293271586046315198028338199084705356441838939042259733608791558349797610065272263501032905416063631093222644235912859891563649329656609420884916104250966856391293991368302023887602389310232963562794664306483878792602302442449262151974168165615935286103191588951886720012778800156318311140851166323147292617040056976644489903703684558497343701867960754117842875343711923552767003338083491827610802268876646464604387879109189911665852402950968073976328971481188770158445501146780894616790519732931477085134141968268951578432037411767864666834087750582353627725947454552183121863959440009004214895507618442767766618594354322475776862360520493087383934168511089110514035999491726274884117860545978917735013069967446554177607381611200901240094988234535205046980464239927919420065262639780589169846322770748638794162671860037311459852580733536401426906118029582642366497215213116176279071712318374423630831062662001764697572622648887232128080532427815391479173963040408969694669215418135127112893837493047042284341188106272674007830540631651358311286938665707896209744953116104763809256569938381825832036170007531147094850808189985015869761511498514057993168685246603234428053830765666409606527746396253280643071845921387278509221382945722603011791604744868201897920136524806648191569962723980110633052503505722476114583829706747158472846893248128469646858790556173308068030248031013270117373768840213137895973946890576404997064246579523819931510742400399552185143816542024616291500164540294786971286981881082704137079787471139227854580661046783959369994207054129658082043314349659317446536120605089916594326811977027344002297547867056201418005147236236292950003632006430613657196288848803226975216053918966304225119846150871840768264431156932082097493936793172239028464690873468901862060411714075362283484212836392003596922580137581097990296738293663323692376225260206008031397463967019031457037822628453870723659244177351970196827714835345754198954004649330651484641709804821431627877581247763859380665864402772325214168561784283639397469771059552269040459337914598620999056604382012989832008302135650020918189189230842467240904292792326254312580542630497957157427031603966296839748700863174450848596347786107052600047742062430783323173013017014186492262665465573548107466607871406478545483757489855120778209048928810837414070299019434687712724186983286375694976638868531379849831869745465869027960422775642918453322431679747342529336265667702688204610687491569362769013360817152645411617768706559171097167877804648704327892454951784159296235181893298704504917036612491088086938864607531293972877927754807328489061340705222928033825033332242707406482726882943375647398993784331218891999930955560770016160632472076888598296457864114506123550786994594050923022464815392518134365637279746051696024377687910554706502526597177706493169046950880472455744375422174438742444845336101813968160932150146233215189047130020539233437496505740106892217395676826188483706669301308520007599935444699697105791772998073132778159006710218080509467872797261272961988928250927982897796996495828083114638880414695810620714333313027251000687262725351301102298031803639740810122755881264028453328672489525916460588192130786166533967669517063268706411583144170244515351629643498814042071240363379980358934621488610485826250457700101095798225721746943452212903291133693100871617856141752138767652721922925125739848354504029906955465575417812520988022291212407990110742004924374243276870616149238717572980086597145261801192288630607123355542313170879257096151808141547719753354683460047366826867840638528317496844148524534889896636652874581899737568092150056349294499662435248268195459200315320740945659227888747941953080074622871757005416357241898658530856283587411486051144787547983544652238087726554860178337228575675890292975521187889348789004720601475147484428703425693526843303417677338751276244432789024253466094090697519120063132557228238113213404670460686883603403314471309119580926970673448578725645911946496606743173430632683561938990712447169644545007355829602549423808032144735134621987438625134797954631923884569272382601550285807436262671621657368441845666496317407951512746128877455723872726974249754156303685403245065129257331953334111358960913040414339688673572721415162098264693711997898464731490750663946751301256371282288497577894687257787185179960994207677133868777856519552535212325206873350664254496938759360389605465218154033050683360528389022355636943006993187601541683072517855166419366612046395790187337944195016517518231169054731657146472340910548555850600487521833650100467212318284783631553764704809956801864223628459676295112256501661702689753785243360916295400416543274437840471891514201952546022712990433533021982466740807700992277017095707914157086831269991338225735729475517845780114920796066987523585888204562670382715454802873257369230867659131477274543712666269268343683228145312365810054902789692736501854437575639348436535689249437933511738565708006603874948620940568850123406032896740897321334107590358387574654855166481806621526010751585227644344307381581534688069190889638089143003459427237323623607520857592811545754118307267170081999974861770171588381243092399056835116559069002323008479901087594325855427476895977972964409858340513345929225722054868281509817709609197005622808459671104489794948708677968980464077976568192579019654149563039971949943698189154152298680472228592191940949120522143710319001520198064354772410500924126785290940680779391116757777105498822281936022122144121968068238127794316904958028580030287243242078237596083808839391696485647401169374871331081995364548803216348134406770044332049309306906599891578689098683900547186715808325099386628325961863030403596568814115399538500496241333674735752704336012822703758623809233925120017831388785021501633127272821430533525037875662849217227226808875310354972199898540049275920407506432898379297149388901304624869612422543694968381778261758050395246564282438784907349552034546016019047281621487543940635844784847977475100379009608897083237941449955761022715250163661054072036517390756012119645825059870986962263202358732552532569726083477401423557106801628637327015352273389894014781162375131449461014038598309469106465711362164043193210636573438343192666325128431741849694265845568240427751603701924507357429192040818424192178798489381473875369459955959359064981039709412035521238505469924205310592378810492871390172761482099907240457685628938665446774990243853296081800117680575200017891602708407131969649935211990788444717944611668264219804299648801487649149866836551603542769500024888911853595771008542711504783976905693084563069385368296056375840636004668616379572396785602794206498841467319048696222743429971235051379991696532360951479296733870340542438621574909723981883562142313857627878573243807205587187266574546696635751071954304189636782527605445974051188162541168400154831043626801898547423409640268604290613567941727592481188227030739176805182157348888820816913640676505832951971641703695766654837282075191532407139926248057605788651138396566764149485388181000526365311182536761848360922768314826504042205992868878606862469644795387529865946781669749453041833399016957554293743770539081150076343825426714229006413881751936244217867933898423578103625977092058953923667864083817614383127651683424359057680040538987437449545789936768316971221433351414032882248199388139742627934034822028042794609052531885326586564878957417411236801730219629703323089963193053187016015115761511955391306286036882149425339891410082559914962653137046010867891638760303177674523918342530113134123556038804382794424387719687290354256874493846587264687262483428379109826357017801614719077924776230602920952919194875063831372614576979569860180669685603547641897055637377235946970912984274611785101164364468728606851255870508879937895279564118818332533274944059608994142141804700778146626512175934293275763410057570196295209866889325432555846588375538984759182012473713007586496067353811997571140267100785441187156639363306033719649227047197162977010465747789703363477259576217723773118001018377043173122449615385457566678577783344224741103046291435995685457155785288037457469707737802414756569844747982714397871894934200461807959516518825059385080413283390841532252676710424960494624550909810269138251877923499966598532553677285359253167786958543505498246223542673764661135467635151185736870742071557568747502317789300553336432594285050429415062668975678200101415256262390968007852168967523462640174192794323469810953319026524259749055788491889791877772093923678906715951248236551886012878094245610161447243501172634478311197693177410320071637964872058536902395714830951509335194043756482183241019548760112498493590777989918053470235386706408327938340043267912377284194100163508081790576494482570952048911337192031800881872652166231041428372321884993635250408822279138031747717267438924416952757633281930175671310093122629593297709037120996009601826728522117495636455581291063655557035915928371774783909501444986897591661820552224107141768331456785450588867580996629022066147700443390159196257964249837029022017773561901571973240044158225242405505287882389026281899729057145562597553730921919125538759672506357968279584506202931067397337155521903419891767853085407520594222480998240079255795666340662740901705159979660003393423930180589277249720136083020824159962350037110317579926950943162909832834388191455387190593396151054347183756795800104882774495589892814690451354867366895892740986862098210382677010296517867889204843985262690815380873193360753951645455701453919068839837105077559846696939896257336581118424134088325539872615573755350916932154711963172699354110018774347632105467814070909046214988752235987229346048335369544388901980304064126494626528683479982545599907591919634463746373274380007519006265633373756145674087915546387432097800847772844294535562459470224461639297602000300070734420931507383325219732576112915102733789781574970919225736349159346875874548246910779736131948410666495997657921659758545368322376980468644406610889409353599050885675660225869643875357709688491466920126096814971481081966903155287930449847807719435649636792784647973356107553917425857714587500098484732246189017928019319673278943007334660645199943233540915158699090311887717539757050324083054039000611522866347640302166691673538929995216279108952450347395297523051407377715136350212862323161988080452636411871513389720188645810906470658071869377627323552865577841657793875706854082174993776967640523898813401722345524815342241208442709653807353832998529465144956037585400372692863468146370943375305779583990169682481060633741174443105629697372930928968474491829530153368538194378808133565998812632866848482922341524380542423775178376530130675802944824395255310435050231753905905215611939352082910517651940631654776539756265050959425914724366370742290956462597672365478633587386079052569902024202228589943856994146716907908393816409292981792740956587288529329077045464968330423949886388294325033671518149713320999161797456181333616277157024446522102285914430743522168139596633203600755121303784691672915492424088168309250008141459265231182767262590006749426023660389839866345250449870948554740325571900189097776390421027463490178058843945982139174688820927803092907573418336176970484685882813090358604527207123082487806485316906406336627613349275534161649494486415519680193542667120426230011363834721414069258860650085953884509970809745140248281773591431997708662967373692336494562451908167143668223262838135523185788710204071431805785057710698816877271759283677138869344048092965519650971310307325342308687762688005077790489554890747272951435393618604488553794557718277891423069828129492206495129851832049771656182073210448372182260852268585505950466619341361220316050831748885919718562276020334634833491775254962844114387657928011075800947192814953280701814585074864466442229377856794712455367656206528064613346842271783875982690507544749719339370348726849303697113520691988490633559907358280973533874270088704267207425923193737098155836001694806352200300965128948976654141894753956144926374482756639464085851480451231056932839640983416336970563380405690920345458932465264825619740390783365188411910842214877839547283941007313386239240188095701563777618787842526771529562375931519101593147087361863300728812963012967787602441360069310465537401003707647361320868577656465122339425003843588735860169615940973584091184423310338386474057681705908114587941981592074616603555921050874262153426683467832013189917166671381664134126731760256245908528881169463691311744606093832482952163929949306783528167662977990696415979778481176104100511413739135822042599533934632860103744809546098704909703438475732698874141559973780854932189565662394723106546686348511061800965055874141197433556291727587636829416382587155451117157201253795685763673025089540316227430662652152650315190946009103980168828376895273984317052320659745672939871554252791615919484693569168031863960954020169321050830361721066080317431879077183834858964496616466874471573346402236151516411528709556737524889220996186257115972576280971879035530358375556421948193215036305071808507698221694962806513395356865917199961886161051717943153382029303359538096475761878907500721366323747160079247079224524623266529041903045133829426376412569431712673991002814028592091048146220229192941372523343665485280769748490153529296197436108360512386625203777319399391812317789844122210723638892115741508689967854197522889796423284235696026188204746941590058948633634666527175875915851717338299262616014871421426504080839207695852301854747531995504773029491910407286662090310484830922891907686668681022134922836578668201409499141925399029845268215908370415846864778666279060535206862559303538378273795085367767783683458064485227205103543055838317507760997635639812346313102357436854830116906610244457074939663392696102651021183758751011127733793607489769764141008203179633459858093023789331499651011568619622881839060051759169223267947262131262627731705380671059493847300601636366318824845142077597495769116935395702971333314888739244358238399710552085979893946084682296177383604048589128310013633574303633532492288590702851774306769434744289735005487835247352451693015433941562706938645705489359260760210334638649741530757288874195687422498435438915363219910777956186397665509857051530294166094058619647017021174463976628596273580743409427367434821727159764493217805438432836294988695360488567419675574337805766333131445837371244194325334599479239107886615058748944463675180977301472480930071807300020211013954325394584052656289570838426415065080254220124300670072399410967344662078425109499080630579908884104161484329805789744051350515769793726586558261134421016528860372462605303387222702904073606898779448159262590578852690679018440440401861268918470334708995351220245130195898851979002290540170675960957075738689966618515357213860177842550919568202442357082430811847185539208432384094018945221055118233547976759304101939472662084350780779974384294085753498807630925981355046880771727113585146406415423290699848331301215971366424345360659630285697372358836068462003767855098062629614140013323958485241035455241458918531089930089500309208387054178049692194833076130008601395796173592551247336959259880025752237811096767124137510775475891913632130402480429900236432623728883205337130387716944740447629687125921154690407817295110164309454954899663014452207731300228116280616280662106004902254928260007340487453061943963101914837538101002316378726206541877435135753393013213078094275017711977868347619286830754252268007159348862507983032799882460821527200502962030015042256639188216427524648032554027266271672088063118636329974655702425986566918336898449613262184176863385213386363042855523484481904694101591803068386297369228806921657656165655553424730307990751107944436993484964165107503994955051061701700517699154408423495723954847404112764663337454397439478022443394158115667229801056289297964557655721540512680115871619615816751195254151410094561721802669610406906475212908178737424811246829823785007592673155126177373211787613400659292864835776110470510277141140699346742804666906373601684964128189000437887851732890286291463236974971814690234696471506633981439726269485157844866113947584418706626074873498545092514497988975392058465470778482431276989255890516401101329645607900341680053789470657461307992331021285937190890673777429949073877373819039546383265219863045839310713565853273898882604579994322652990516795196720079068827567985839481729984876976534818070980818660452700652906051231957759037674159008064616819766018911939927017223510424590795305187678096587890203710484023771513464424566001411826411377027313583821038457494657185822558128980041574990204265918929533168960183350425021178302395754815086685894825845681825834145861310712817282791892406765615613305173185852166487549467061022562886415716044523687562735579538692140268834774568776164510307465540785362910054430156187944767780184589749208827430970311073488589591231530263973893135301543769077412699271938912896601778644830176393009953998372923265251184202943978652770200186893364022480030140853413998716217931340127454604540086901968807308043017286815637588406341450302928701033003658220476707555545102358203491641276014171161613867924552092483001574740881432200456631528994869152321545416984064896465108820250996266505607907921759000610932391817123805918027636653478385143483081974205992022462802483179942058334706976300282441962695482497657489487987769657445354402652935398011507270083839072779557573858089928086745227299344799042800110177136202091047955542209577411847729148780212566705361310763798710503229888160744141552184901091626193841992565429607957065346425531514583508599512952278745714774383902164495973391895549659529683562696346324349221700858613687374093229555562090697325618481743493642566608361101934528157221413044997684698413347104210092433600316304051539662313023964020850601146252638173496478490192713271055962011949401648025770301184342768752763920259943467081687513453039383249076035572066389786193034698919413668429977876934387811937589274234458967799619061486215670048844867248361088067385871819952564378931697039687635306569888095684200072534192064617297143528993425254978354382634805740270002323085448835066152870573829623823407408029160600494233328907475479590902536668932152638608105022825474667283303766801904545006563754419514704212983183198045691935516946058617757045304472097913200761894156384422007708129917551838181283656956914688342445714744426364800524912263429182614578648284907644583889089334304487262280472536561116023890393173782009581850311848660627141806612180316338669030986093763978769208741239828920257784605811997896107368173934976337052753226577440831885525177571263914506177397509932491156788544502143963586928088641809324400614721527771422619628293531785838117408729310862032194308579735637433508129097239770282693207336518207764502728758963569351420098963154315418711646556108706320096391792218200411899100406885056364015248200559063839099248739680935169330538476272262026083093555702572027265190497549565875580274401303609784645004192181205593468393977491736426620766005531442912219818390021217752577611600145987999247917402797801799452302282333537981203550075391298067682411855735124914621664140864471690005068438253455586174207780471331758888774538457254609835850782468022079564841204866582402181297328440449742455492261183749480529674176139765494979306691967706094989043034325077378107522742351907898718643942343056944049782614869474959644429874745236829079847864753181853963226003186613071917754764037084969007327933175757000015877214407664076527263810877489937019621208849991737229202871195490793251342545031714084477013829821363706930009941821532381222915699670990055145524362896384136594902186941120253767726108990085144320010075722803935233402788152258697038228169276842642244734375111173335808062316248491417227109011604619368075431849468450915791380626575780045918981935322868715434832711743496086636790600565798654039582530488329889950670016403710351801095276318568066097459375188378952740748489825235891680997290278868591773564857174967927164506512298394482627775792879207476411651189474548579377475794177532230816291281711700114473679988816195864349261887489440390435218600231342707970126366711773688302667219188923718227238053297553355996310230990390248600803817303346162026251813236280003712131485893623290787331232169845592615707389466902342533970650458961400496347346921532513359107874566582388212343939841598100878862956683768798246329739718975704113805182936311146354400653521709143803518717405020557467783674176897399319967350496369163666869835568213813012949817557238233646251560308187528261104677328103309721860885718268924396204758972403383811822889611158346063432594910923427005853255150277637556882435458528556828169038861144974274870023802825893209464293571573025498371968387326240418837929822950946576664280892382690449617664621710164173495877344339848577444285733522252943370703809773133508137575863155302878125612726802335921823745288926508622966852726917526707550684412230838566634181452398610608142868113498913762357892415082013852899865787011112528219023340893925585861443415231220545959366417501478198164943652280177322708761519081180576205654254843143175569208853538866793079392537416103539971734932064352135569117495259101522984218505693633980038650040727163082642888799215299731152058887002408893840474347082815089988013706116871456414843874128574201993922060411271062514074907436896450553709573152998718358160556635339023994279863774714442128482016722592622526137085326892220881923167725563372499616990091827282998606690859638504674916391132421739957553075458600714860049305609936280339119793893180157974117953488276407747834813022155818139033023097910432868561957645943448015974365863002730104847317797538017881145618574513063751437666223488689829160833872748903881513035749839116623613487417192076717886861778120060844018600597583710550315548973484873137229208417486568875365659012234837551064903988606390709070025957688098553379568106035819399312614189360111846965951094397266324412258323761287468757957196338612179841061410771264818858470113406405113774067321253023695579522002336239934032142324498343154962581111603987913716243483100108124152845011369496599131971017684681415343783553450144984191865796041927617754493404148793245436301359040563269158751300713146291363604851763677325842994661706741700250410928520892277221379812492429581252174485848534494084318917087962180133713362424188091207260923629196644419054167011940618896364083843825936509871784985238198070239789071179825386283343766078052897268652497054915430141910328826417764496633678751758784705823550264545906727207748604218302219892155837378271816872912855161555769424757689723329266047571329147618046585271954569583220447018058681708333868962976360619930453485124233017921373644857281036891939434587761720261837302707056333885253582412155876961866744718281777800075320946310283261034491403408848015681438353987808894208809570233681149790775232234310298862954637579777127797092596076349677325729469629061919113185702062843380701077341701341499128200150453816011417948568203907289206673157441897842457122527716893683035932010925158388473542114076718843529686184078676106025516590395444206559488371107970420528668352994021468887266156499060986495248484939342562151274905935338654945095732871926495590709294504893130264042616008776154043937170363167438430612484657178552881173905744761474757313524276079971624700245260008666480664393476708589291617894756454406089855491322897883811296190238856734068986403222266292608922015917128174361834240248279887871509775254506626002160570794588576448768406694756787902727075510415672385521931852140320637094965258926532564021422404598586340538685588207379787182548505903177977401159329308806596328341271577371598227375488657839740365861578837032545987677952239000431373708795656451902440615035395617181761155586676882422115526642496128834083275161282786222042550244273661443605381023116406106984790932780776049389846512049952330948229190573431534874592980479460575915922019584202338636527233807774200823247162052343060777599890173951248641967944027082256492241074591697482288329678962672297756664511997531794940282974833165713662971331157818300641523872386002476622968925505806388876816342236821951172519626176931961937594878961295447237446902210822820918072003260058239317398670404329234676301633772410261905336317179446806176078056652947165013257912876889958059080178728126388664506394142839849386965701065436706333043731499493649541967006779227526783017068281547246911670799318921367940331507363323384282632979127921338571181098211170857672763873116891863121466462142118108010140112556713118403885787000935931295813716943817528530660480087369252174100885164524403997946883421815012215270023144107280292635692663527861706415617986660592996825602766550302410387747410203014332201328033516627534039387917985766773339828756651495839602018453969153099505274926202873392758917642567052466835902360575423731734628688207072488182771203453003046078388611786244727916511494600342607198737173282345579206103308015455555615749095751183009346535853233248990544841578399296291705934141523075252006777368915093365387289028003998826360986376767539367885018900756308576619005284921819904387809667993527472566545783955709502872924933421900054719430070757389861599261781208869441001639182714159033617950347639894065103523967630860329060270849163676017457125804820157809679787703544685385392537090857989784431899098836422856870177834476053224411780548310163845932480096125981077686811327345727496241122411644440727962512599772311626676586122873096339334626437246542185915887820135832137389144643168416823012135853861647215009605295702971356030489200370671269862204947391281448388766879356101870599352740792022497656400037607793643209632284741173653471521574373239749840620458532270284908132275344818904794064911166958233838610249644313198116467307458633630023706194801389207637821226836190343614536685784352771827709018774847987991427164034978384605562378653113226976057531258079134685977291823269175619903495865812420002681296787422567446981578407631077359448699382106489698801012073743368478453183027837332405185516618798225975266969624389455719306643624955033755170013223008843821748683204211437100813624065395104788219023110091850017857852830739062696931715463382174268882355388858039141331855443570726080536082229276947404575309724644090734840560678883606803692809783337155506178350138993032734581149211057289995326527203435148447189589196100949787704310614596300833242228371852942429300052389627208649971599395137503930683462841942260330402686642403428311156384526964912000361887915794430881368318002773766941303121872430751285340107032387713897919025092765570057035095455650552867050195169476620040984702687512342289614733699837181342370067918646551349238119013462742538540123330869277149494352847913169198810025612701269045654375893760044873101972315263090735425964029658565457186115743645620608582419613550007418961628270074328135018398505107503869137793403462214044013349446793978442255076781450778477232664079512375175234521656810915297567566731877587760916626675487838130316349099167747973006067957464940337709712144585804368412764462485023974395076215746144796459657364384963351092290847711593064242452596227852867865357484366492260969828210333742268796087792167521858837410676109209082730231626842786679882213917964689130485007096919630718498452961555015321821915327592590975263765359702202392124609118634708878753122351953559440205730656909052383396194928679807744969160262951256718974361932406522187906003275151801165730416805525564876295169983506081822585858404758713711874650442817359690062787301469147721884353442037597298835436316791579741812400558200681664926135279978778799485805071782221523567819022375415870630796139320580831542505653152700311631356016923803469742268050277509585113403666379395232098524827537422845956005158121722378148973634917126892017862663349431223502654023504281002325231550140142439469735986107664840441388055553578261217299709666475637220964773883719772828201683966198674885273312232588431807874375986945931990080517981229141735772214260628635960176659370292795887097284194332169887651158705121824277745191844995940983633663658906573622605129897737384814789434027369505240546077877696438828548614679143277596490734242241831225649121441251738686470122872865470068676795055243074917090514068005302913463373300271376375879666890488451708450535173798141471947666206300313950336121074420563521444542288508792110905319578207273784509176196902662037822518688162387505475536624271187187328751792749747197064883111498081678648349056569290810138568886874916059629759094568144486571179724986453969031646364067079631799730954109801865902793517067475373903415991267718924091838388958298032563533592782450165722097587212258478847214377341183729618797999277957066518068793513851502381432618694021272405084888562368494569996992035105049438699971305845560859001416448832180294979233895421143186954958514151483579556452225247053929071758751881063607755774586012434801124598288867309457026394653317008437501531142988055073474479366672849327017539955129587696745526800442798968640317678988975747418010017250613311011086486973978314926765126202028085674567586235223631816176044186225594160664412548910009992426238156654107979347912490488741140543620428116214301933154071825725562896919310382234980028960043702991495921760670871169627556213839746754569112682079691796400287494786233531702460307376798097885024203989688616574091950399924158704058439129016824608290750297424096836608413474306193992790937268838995204284083319563059438819805087407075994324243693495605473056053119576853569884553054577128568144876720038973720057290293342048661043721990363991147874477966816619012216237747558313717836203324683552160480623906077343551607311370886443671618008535163419024809389985004882386520846622702955328123744188568383995222217708800034902356743631503431796090160242842923421008448149153278164344148919385451923211903243759384486891519509082409222634055014869353437406827667701122845184199197679119160871338566448917621584747234779449044028269820269238241116700751937326694314697608347458920986106047654398053413460488083704094651927901086967113422200331729028870589049614421826198677140726393642372929250864340230284931570014037279651722030951326169727799770566197942296104234480725338557671699665835589698625659521716505158188782628655553217335363852677023529729698598705479738452584637967914379001936425828878915403571141401715967360229369553169240741561828323341567016331514468119451520033928740992734448371658447322157131834460288730164036007715187677718634360411665129394029776091599477269342983241108812308265140236561679876408707123827397012711334642893869018435511994634011600979742950024298347105782318785149601039287604457930540267403107540904348928404929075765869364434739660481800455518498692562981248089124193625094304242408728278885030577729601963919223562678057332356941010092352526610515254890597529837422717213562571830820457666356940229983145126979038394540630159640121520571412927914090709874969455899499763548031788067117961628854773645179586632163548865781387498771452987422489980568890010717683080223575663657180172528116539159213898347023299435652398142461027505347317006970431447618663632596249774142795576581737508539020029369646016210569140225833804046991602132230611414375719091162513263263594902568229896330213029918105588729298213309589224733770500180688674260256579579250855367592108005301366141108196833500910818807636348797171682443084374446745208741890235818449274114196607444947742075688579512944172064249929269174643336797609375189141406541253658031758568258796047454808903615259428773152951705530918913179783162469122678618669301267557661221854111357104907247491746952399860718036951743377218868763161850185332944063813622472289626529621186627923424341512439484161876124036728624205846995428125532873236653307959036966656192065730658768584272660891068795182607706961062038553625158431310708494656875674375020335339992210858693390917652444801659614294151972790628699885679969472743833121931882326862839729426850031207215496107838759784471086007357836221404578702026400671630083925815793138044772891680924763412219135488070777219357249080850548127030026340970126607147619582942486354819354451199126511644053643577056959324954776316669517944137674943467407497366391810201966660468192638613378316374096705125703415474274976884018915924720128142312012281882807464559173004443606902217547220763557698137453238349847704522213224390018796687603057857410315262014274897771862247668684046655556512824615383143839528810356416585164926241423421252035333520400870424003389676144209415632014982332544784375868835550044292913509859740966293602021212107787863411050420081975850452652750402701547755569089224954035505751730184531701286219322889759244319777156881278214419427942156757868007455294336574264308352110500016731283517420087234635754055306397751296929081747640164923998875486169985294401853645206167874474159591193150270554923289398105143596756888646387733934311561243324091668242769978678450539896993105382566139889223544684697410002844608471479513938580439378026349260688975111424977580376658104856300629602058131511942316032853062568259545443858230250090213490390125684996281868887857960947001155538898330412700985659796699631752541693301015585374937625211047061361293801314290788414191952677749902209892236108678983103771191685855950314296163644974599111465002627249714753327341344859426435310843090447484254455945651548715308072890979925463708266306682842742791550084034486886024794349368809318884420235504089290459208522932438776777327782529986339548780520352637669200885992766217528510953406468630137980717482205221258802748836548528378274219961536671128832425823894137730166292932790405129886169411023510819250278447617819286005061587712371223489982929640800089033282780406672400564686843910878159248650516504773847761788345022938293135730683951092446533751147749010611913526063739442400237939675657651348464949787884092966268466020713850399499200230802378498796657486838175759586769276573070956210031781937206467489115488457190407361816370859998640014502321816367372915572003776247635986719354057926755361705518057587863073423706244684998488858494855179165063391727868553479929711778480639983731411170522404575151941834455098425843003045214742422540810382837135543582490686490269383697753867985618934937571232556036113557523744317496058980052007366346997753358643680266182694758445458292600725290407217809584737471567187722364446001098427960879826603446360674748653249438111076858393754691267028503298742297857508794934131743382601558027408916285904649464491538479085787875667482903497546853495401782903257916373505384306698439118841772601532714592785485795422299952567734681547774536150155202079453965253277515927345421784709552651334619364980745899988258678662876873325566793356580741839512364935356793351883115184924344925517483605245065320210087416413810021313558970482080521836084324668160485126283612480001395510826204777818464400820776657020095408691507766118015812443647428734860597134046475064110395169542311780803288080149704601430086377273990792731431531679789772044454083158651726875892474956798255140263863677378784198307912626789833235407414966590373283726315589593887111278585951631794744723256770523019567875243240943508974813013171722074198272988778510296160253969658930851535902676451629272438737015619143662494185401151864183194281783327276679220065076377095258103247405712334006207569867164662540311039707766964450218768172330050784381753948881747200643989927512752007367140491749804847615366843958855044196578859902175786967926702152419840165025942374744877611294582458410603770378038666753534662258580097033537475815910594085979960615879248673160582152509945131967303172456700994119544705388016390667164396373604823062778999989431984103005800713133286888781330691033694976446295355012733884121594692696061983641321331179037198902254300740533169051468147321301648100479114211944026019453060147255491050900044682890465175890540836573801599295742285966699785690339132611028199973354002179687904588060405744044360799808550637094924345551853955688976914883328575384513537697410963022172304535000236829513279828199709151575198330331657942979040392357992278989643688869201733997562183620434876908631166773575810004090073853013813003151041515711479669912690829237215962526366182615659759428010749035301594627523012017386827987927192069070704320767580910739539273626139872451710341448879110150941890339802860727940061315076675892961082053040191081911430958296050669251629323013117799578031153406204500781052876944877446657645522515678221101349166093854025667605901263118110853676105629976911972600741299104851982320544210364000984527170938948237622010153621266253769807085394975300872129772592711592724783233261414769134423223900664855118437325137683128940449726338893111708914594728931859150664806031583685511320387686364652207974475955525024572160977196700634742044929153650142996921645936461315585212137148313406471822383828295117442114776761783720810702145604275278805897629516980142514683128462478923003971713075251567186827853999704931455490005503875317975528598131631392379365753205685016280548700566776830078702365059813135303756645144385170193511729117206926869252773400746783409835293470741502184985308485900863872897199667038465209639367018980000252537865730472374102062460616521835456190886567339086282361941744001408907521690481285161147489187464668739170607337902453378618890586930923602634781625469378976081500619083255308002277549620842673546560221141478506822349195270766902824493147036412237812084660506746652430404471941449859431652536617669578904692676050424084465653394861096518271647855668129213882520571088561778654533088231703342044684455269465088404875917115559700678618871199576563899350253090788555563868101754000703214637842687538084911587966428395292639297751939092186479635541364977765712632655653553314176154503473456306121628344420812809649564384007556936302438905474402870073689649385792501524850906598736533639174780694814684590394910375291362875176688711429905565811392600176486573392503252996689156146151570560742376603619813661643855667387865599929414642167784747911808532143072487184464522274433054642020894083615341068501107526880083612787135842745366722475751882683215582718150033307755318096451777185375654398334130776142426921641062529872233201648812294944894127841911290617017424012453640914368410819061559058623281952423296227947799123379733508185318199370303165135959393214524995695224538252248588048673805178887839181260487695470137480156157170609080685097161218547498950939371059337242838240455779558949521388692998260020055909504874120456975880436357335593681907174154560398514099889511552689026180370596693306993048446579969784718668481244119513127688271002074247063166415434235026154563256991023760250360169080629549094017142300932705813442941135685124481976206310399243495591113346132222686878561672025437117392433508400243773948370504570945575884010803761244605107248291671078574016532914230345696831309461887594079308816177974174300734921423814744806363691873270537502337985809176986649315491168524060524338508655031242161529203723636467786967039872495386090504890858750449678364142809828291425107876082397618581210426718667377350433593827851001525630313147261535192145688418951325188224409340063403179748887868300361629960132313818665231376128215274842055261646179890044346185141302824906752935880305687917779076220385686020204025142413451130009146051065359354786199691660143237014487801583068477642357129185435734522570662497127410964666294548132076250205991111812890741306345726074859400425629839625310844792381180937195114224903811360477278919218079415237535222348536500139110184676610082616253614055792424033040978689201530292211340793947741937116580571388360461426583604972964200094362322193280664753119736057602925614706263669115636617005631771842694782658920946624692509450528759058930806519609153577298205205672692534177594768971890313639693394241224242567869599359803164875460709522078197527098836714107595554814330985256745213876633086537955150744213501309856498351649900363116308414543554497091625440072710305340109219733264489060897521194567330369921527001501573216623088516155021126107012396002642334668249802956249130813543453707958162045585692457958926158912249713158835941808370376771923181876842928534207622240508785597956718714414818287864519755496895936284446506796636661948022170602842221773938001564769857109117635442387986330529862827650104729292072950382845082086792320152532302909548833300979442433494682563322551419299407175072363513498549174736858579614242234595435796924779072443233357901530615627138449828941776738106828723713794955540720758540337797587123373144253452819871922444485786332143072764155083799341627681977030033807858236822374319629421746242493082044879685706545263548890625179216372607504476950841868207435569381391067536894873423417834286594483283615832084848344465525701858885827011781617269247567319991948606167919499666516464193274702562964231560518786809235067075116267161646041345340392849419281762878337780147985751438188064134212262466446561893980685863345982050967121195612904066840266254251576890810139548372949444570601157646169804129824519963734385495381842271316341151399126774966157140135545289100932116578256728447455977784866486945087140133052325550575753605739918182365299737458196649720934186154753110845741561544498942028745117940133070806085016223177555353322999680252112729534285033133603294615308496033345816220968396173309007753180208898847514915601057940035867711091521491112364267257816229806349712140455415716867777881583233008395032247429642889270134828949476476674485236685737016602372500189701868822638123759873194094936291511395448962828132765196116859231827157701654066889810158762039394345807561475471957396192605731312238802678687824035855456641849960234135295730643556107898056718513046858125948683661758397049656695302477306551560125319527303524864236550646550641147132290380394009075849317785663743786991288974257014332303713460146327003026202078776376703313620557835340677614595845014474658433433297818783704497214848842090797330422926236231208948866470196436944038270966813453197836129394450105134206957301538782326540839278669491866085802910054742985986750048173906431736254199367670124698374468460891529219532243173573915152600278166293864458769961729184693406936337372112522771485105884450668802200056608398840950642676924396567255562458025927688751092254395113501468843834514733264561717103955627445507918258348673166834932631618858172258580940068862843320649200780428200869563807301718247347908205645603708484401143906523343888779277585192625759620522575799771159986591942121287367203006326245053293243786056177263947286389417336176450893653792441811452577157141643503342801429376923420877077580238531371977731878575034212458513219657061630241734115840406240660624415328510997200973106342368319563958228215587966107333366342673132615278098575525439348517214618422197503481973789749447906938717840470867184552188016187403250256442039946445197430967412646890075138084745521794672221361088143051737550873820182201285383779023719834298017802173114909218946677768330281860785075488904958010122445885088826306795004026913670771166549187314886551435471322817251615717744210209772864574014776608870392849631177199836609185169512505311030684067930064137274052333433040118333790118420002835044232278056941572713177051253878169603840754245816451715925657919461340266085986636443749771864335079953193455788404505244728012942722723576679197229423704624445605377859395800118675710214549124358747427876558397306721876932692382062279741738715002233383421565103283045380462895016033127633940057201056873732371359559667588316730473211900321548294663621785007320612944925710800205748128178114659762924957672456463146402337663585434352536463136903701717847161977869901577065535966119344027629462892739201657416603533657607441456983486843655548724051118988971405842892029101281244567894566258965602256966552142173111062653812753088442944951694173559780293740582479453747971085097869696512147009757765152859064920509019722000687666235015516593485369235047477441664188717670343037975464261025854565554700370864660404059342432220762458162017949274922780078893485409336324155375989704697810706411471179115280288287671720377171775193274133371625758405287350111523535744986606176392888230637039656482158929072535852121907108413207404329681670816005551581508390060580451353556291383693114655066701473842253588697040535652170285925431404213845412283777474386571014615833041010304189091875782841255244028315126012507090948437048379521292036497282172581951215227167593262118923352072167823396686564084302027181351759214413896908210896430971241666535335631114895535717009036828943804607201112961689599423543697649049072727005449535446237925683326069122846201103611964235380414217983633650631035779174646390613723945424468381962677700688538448327022910557333224578716441116928290279625460843621908473722354036272105964646181953175011242989333730329861255232264894058194540216139325073726081758157752153861850296569645879928440129884181014733334130498112404800127423721515805079709867463405724104882079511955545195200811303354590088920203278590435249797807982577769741960908709788485968769882752066476554163827799922077348260944462648125959125408471607505580358600885536519634757894912865540464653839783360637775380741626897374664705479626002287916304393452366097670407770228389971441548272902383010115804571259249089987147206001235781004176356644919176516795105223759863754624839233726548636814791913237233251752463627025381442455829552534861865296635127693564662962734018028707761126103301794183942521143132830192140604848314969119248389929293438487086650018328947375896875612989348443903189343323997386274384874941495646221618994136216535907624837214224473535230302515332993481515499137425015856524893643887264175410513297804928596972097873872924540108768898447617387878118218074925516388013532090029468359676469890140458544733963802689135290527388182458246540588009505168900283077525080130414126427907170767661168681158214779557191751123035477191615111294158617535625420792858586909431832918135826460824614401180755156263754559525924382144825975029247965639590817636851926707431184070714914675475552915692973961419767928515353661681153047455322656249936895861578868739551962731320119942411775457151384240743322571161891155483407066342906463392185046606158363431522112494313444820075957606587582211021580957080027805956922625212710262878216303339915877009719480482253651548798845502066404590653798771794296321362173381771151648771502767804312541357231613512252442944762167657442407113860990275813164748479645979590394537598621994737983253790490930237932363986979701274976528793063616638349960681489173622722434228963800443288842530505427158192411448956056775473586216424429610641657525058680412116517181797914537372518461759899075576464562314690486573424800592779766487019593916694211471511494417113060806006691499568800615486993322963556007214430897249742355373125871856335776012424464514615393827790051285998690163941774300705933702417402992963899503713969638314290255137960220497003032292073073013938824612463417542344132658482320448939644640214403322269084596239978373074783609199427168205684534499939842669921222951283823579656191617306480114563235418665712965509341290912101423998453492880010093305606328159665831936345969010178673189930440405353285083565229707680697023353693580892429947358995322738402727014458555777943194953812978190733123829608979202973436033993945831809779449383826511565424456285735816700797669064821167756849314062696926783344639955606529875835200532537853675841279470184704602259342908704665677634868729351518791711528283385419036668500016193879520765711938208189509174281072854924058057464760429877452538874440450942970891317766301619978183497052786332239414384110434007319453079005998454526675703996189988962547017885704298384307482839596460527469740971560856286385780430488874582344865969339230676725579373902838247768888974706499923678454370759503326626112746715961863827946332929786602217674769632182389138511078678003482464371000692206421056950215371278315268627109869597071200124700044730710194654967848776419668626753499559407895364808380161882157249703888588013729763190243679294771391186947152940434436227295563225648046292678096285531091531131189655912268163741997386030931006275010913689148470768704237008591188309647611923682570785572742158739960106412015219224922308031024404073535566896841832387063191887667051797996709968183522124569620785337109749068208970807860854138325239421260185804510630469962254972406095731109017307433499976341949575783728565432403839172935960129963644947994933846599153156558800721823814095587846851415423223830345861716338820816445235698662815861847416460628562042238721839259547089161835495710848517511373328590085524633377245528600507814940881316660796146201083955592426454997234684392188744295275555269515708721749290518663860570914757227787807416727527902277929031116629631501852098567721557832271095444570214480964662887049215610775575014111935909968603838656419232888135660429395819828676176530081874904203486971314644880852548325732290800629492531489650179090434312143720041737579594698885014374015143860363449679056439415571797557011063811623502176503961467174995740820572990435708311943317055761440333965712484700957153904271216542648737157771379203052515880983249099344351143132085785946534539314875436217727210640292744165770875331763354610899944261335514415429857727950176992906906096377481167124989982148445694609340949563127780929686250346570842249415698132319133134887316177871240990801830429373102806125424066006509619196809316459935237365811063393793416334106737087824507178314127452447691426728814242267676322148525305232496592159504648850286233959536206333397599442373647389014564026227866706807750611626704742118458537696531729771244256623381035617770513790131201789430585631431676492327851776265072058685092672584923987697664344149196831026990643713463208268551461129199377004067109782512202992594447820187273762021117375317292071467419463861450373364746226053809852773208864328133524942309286351043870872752964856242489234117708602057227501149233198257300093118070297709092646187700541267413204254172299933388350219475431076713028160641424556703639010769752800071943630082226223547952130630253614116312934347323984379306150190759346573295095533410238589705902056849352272776894210390416770634931128899020563362850399859174602969380863549906364696036268479171130158155979289606423017580976061889758119984489825321220641431050676447627016512010726175802089493496912259388327436815142057672563679825218418807250798952960223121774360038660107437481154995581105681340800586033094809266767494245531434459749639167337579544265111490669038144543390583910113870012709774491509008335482466694366814448959654191008585572620266743262033204496425949457431893330961599193306580055921293437440512576310755453277194108482432602594837088124144357107812583245622109840516346017714345191734946742220709279929581456646076531037179325864982221917613691749563451366669698284204999253797836749981690332333450213265895045010732743779815085998894478048824888636648945608272550793196474285118646488336839988899965026958805369648047860507023980203985706653714125235074245668627345067454296758882749159462900928963967390993240963298020667814329702236377180155021637658338665423061555674698836244821133112926712812847436697562007703116213238864683649359285109037819972725153125930429219149216301858693501113890318276171596161222759686750397728924973682388419022747496709700726298806757849322287064301336631543212122797608082167712153830849510480613461205879499633693127615316167549976711569721067602937148271324534900517402736866542223813134264771769310092824092780643297744502855128025644947512469295675943125105410253527652886152225649940974533270738897942867115652371122152183107536528666660808533515937848517767366091053923522812399988059064949456129217796305598571215101645029737457666162705397678155881624148159679090002144571996117547493128492344686135090831865005325132006499773375251732703660070522252210404371422940277620719396192073266910126560192541431418382454622783363571020500723961124371529982152917133302807469131279050297197636541531815785121235296091956850573963723120672962424169053182656427104777536384522011110747448047943404646345940373588272858199953576394389662815978460666149194981687046183626657901440588397508109191938243269481506243608662942529929118839249147308777662401172106164397331234770037452254768541763013435264235734656081572927616466324044896119737632184366114420860621917257527451584799891735774945706507928992004708316732530060936019275258369286225333671854568660179506151707723802276102565894668705953690449707115112337895204196155794318216144260648665070706267512926089479593030605592797241839172757589658702313630770438943903478328289723598808230587736003096815624923041672610840857156003146015932345046673294022907014223726899809340325615718378890687843206180026818365756581811929343305607474359480655980277782582390623146719623696075024141106308511037156798835918673912135719143296572465883728257936336051531107359619476618253644790796360933598998210067061145936630945604662708344143771559102180459883688811880654466235390135477938649933191637333038397225626259355629522564469276650121589737379533694783939066162490431990549812573765368147407986563666940116367985500068559640111820838303675517288103929372196837680701754448452463419201677106594064485199749598170820379668248457918055912409004281462137249360395772803911717319482157066829095271013968009948853943076029730438291914810893455560281577357971180967120314216214653934078602054664561449094413218611846407356645181198089983289597825732062192460723101269171364892605601183719193417734234145979966708326038964735374882201703774105794952022554300463093205676767687631822995835490907931935759463913337599139574838238392419728178035205034210989985638192891067975002832069128656504972967677790600263790465303812473996115196213417769182829479129550856526028114598740031765426759249619616077847393893516739503971620435513546728167224558858955845609097112089690942814776300381789039291928340934204420952437914597013119425507115559510252843959954119639330610472029556832055996871830018577696312050243236723610640193684765540456101833482787893197618598557764362303996547819943986934586346040747696391322888813250837067841434833267430502780985888876354588857670624818215428637245981332255040348803198614482275760019448477127619216907553196237365433573455833239374409841142454774453545168753166661859571681679305790220992018011290189338124805117066782833539953768321337038489725905822674328120757971929383270473705163978195219284432731214106049051971792402874723427153571660095873200699424232208157568357268428593331321601188522608705091403887546470352541648241838750694974094263630172552401317519544907747266478410962648681944021068005747385750507910544929104173604583579987219839420121129895946304056040217044748883863968783669950726939176663665304008177694344076726535204214020428232712833261818245320410759941946700685603490502012757652919924669569493245835357273979966640402183212858543788909940915143050228129577643232791423835169411330001529596889936880401194483182550479204365738097682946058427360808279336241029027443499559394286489299147938740592008310324353314274347864753859117480968853390244894293717202720023712826374551621906484731716828379350557194926973006041650031131451821362987599701941751377821776195660891172473055150118594736449041988550732009301457458485648270179216100519083759184833415184019337460333580799971209217996376349200008667879888050815453443907907726088345885801359619637419112526006679112438816888015345166037142605404998250289831568884235851319837389713283271207409934643905892624312067792052382486514831274843828221842680581803216560584849794700799408896375742052331803346679299340025563564227216772992365677224554342600440535471691770801861574821567633861193046448013647808113081241118038076274539803859909264076999113177056453483191647209901894657041020313898667287516972346129639010654564033760974311537652605162232542834745141377730558700973622083276310426384503174456796040889067237397544294010000855722079317271295892354654955429281437688878818202824169745184127837767161193983326581345669178579803600279774740741229525929453989681964058902959904588993329350205625926444920484450944921845452182648867207131198777323834840732163350850910198436969013665509846337179020487153756340677315009713562353512357989582613364247709758567229082319689585413274693876628594866879942662039197522707296090953187169189623219182238118039795449473417566836247797961269912633097194239033623148697914209724736631317273738177444049375420245035397700760200996765310664306119545776792941612848583686798072799495032089967417051397758839521425295078453007239157289925884343194990844430145603112753672664820609390050338874711351737660078345162785777813328219817345893567959091806213778867619825119604877738262059421297842176770556224915112952355540294065903139528571908992395578410161988256954226476845400944579239967292984130602003583747023543490331955184870036329887573823483199213445045777074788349567517673848465758433477550519227972984324865633138642868763353466452847590305133087057905265388737194049116881649131619613569206866411227983423398528717265135822120988760712874047537313394017436091777280494325232613448265071894867984309687049623479162118821779850040562253145740050036646872660999899701153311065625873346087081474782855035364404081227550406350360387731281828474224438554243509879338550502836561168196481202512514279572245905409225116526891263451355783084499369313214550026085074807869890125238573353778995739130106587997585286527382193209683140622551494246590632014378937312825633075715794076694319287122216716906170578516557847938236557412657622349915402514721761492144008044999332781158584186079781891682113825580833903783040253674577322308669473683812538924086404456879602789576273514864467398223136430344884583863450066385222683701957821560578209717204676616648369489056750035975792765397557639006681752330139893772581089856553945831541792548456653371021199060694275376140350634021228461860162496692293454897212896116535625890153557323309704325846883220865844296745573577402007830575741480936121798523779576254868738459446081794391386250138242695721751761996363339431843862508470382251166852307644045665816736963900489556571906949485449964205216087772549947344040592438587572583823118347399831881529073504624570473682381659859577263864955276667280291633544391010615289150679853974672718747523261018990397805403707534361002040966456580415704866626026026018029734866465711784208986784344000242613826371588704403149158097023297898007413113497422180706575119820490512568449410620348038192508385046287088463329476919450250169962586823826882930735912878292376576205272937369946507854515996180464720055382924022378796604208495486167375440039993379886765092392918855520207106588376041928944366616351115810865172240038369277661283448613387416611540923372837164083734986052695735599336540071180568475849092965012624185728041734739135954234197905497355582669904042763639463452379742796903356094972026588706476944788625833536965274498406015338265006104017041661311023420278644814723573055385673173194651650552343051477071783095168659887071726811790550129569373181322081958700660103145254708753844692407758024706029036669826789078131885457825709557090025925756176274803637833185657048424164446853206369098463539006884684720281186971787507251759530801267806340849519336169173106153974952950520074187671674716792496083579389055424382164043761937449433231877992600310641990837107526870803935905245360687143767459539391064569743392334562985785147268788457271245220553443355946136934159380217155484139822349492236546116025056416166775239467668976474302288857046235025862358414337304245480850166073881220568042730367542942676463471462226820052163808967989243484406557651567585883607024353266527900628538197508844713328681370543275660280198792827698269664022064917917484939367621798096576971313041797941171819393839268030620791808657919421734740429847335493742975149673741814099929143821123689364319578353895213830216363253004314777693013025948906187605277159107275773137820672320396003675833680181479005108168619484269254858963173190657081077646212548712048098724344845335368805538559258204897891888844731477481152494283326855675343313921580408905034568463534443268610524322901840452981071751189717050892368475753963702137624775993562985081321445030853883594528938645630925813848726934014910427856857054873402983942441349040766961897172687844997191120910064548432951326924295221602701074084565652368128904904809481392343586807819399572984141139134117659348622605275838528580210574373863590163835875487006440047570663228890907828548765255781568649859845694851734480615552556735755627686383294309799360861910477369930899800978641167227842107741065466195457578491294908164586431375310344295590695476101679002748595856887011376419095270087877641347883691155300704325770893838721020555916905894987844892954179892763302305689263737528405393438374066980134001295040130050735149879268782743685784748042827978513853902569737857894582486803240062794858332105216689274026758307370537783897373619680394806458903920135983069077976747407841758381225947480522553855292371563578169155651849249064318032545811291783874696960279831636905851141815986583211832915525364134276063332146624206178015669070293969885405356803096670406050162659973013088410698161587021364021936536566325831931371426773336698564154953238354568802082883279197305611616884843424032777325113560804545992239984187730556701902937711984178409141570002569965561255940949036924782871920527771199609251542261267296600132690206926479543804926808976309236605222114600159851658629260732012361675194552397808681740855529498073411881371711983247920394362964574034213771817897558080360790744251157270122339798579394796125946571948566180176998797790621321342365096553875936893357541616271366645361607625754194115403969587943968755763150567318947172046957783490391894017576569974572758029959713573307246332515114419350450221794578494275094291014977201403116769469292024278257589071908780839078827732554683806317583964915809776097075583221845529158859271577751572699752612891252616031047293706179194241589718073967788570129305133802576421962533698565219679244355094560899179557303954243972034963988278358998940161802438293599886157826062892136800934626665365627455463130729143087690783583924932425118556234379633760390780293866036311818812801715714489471662652196601448510651052504361713197335467861904454429057820875394166496373821899509850387638176315590032557666115671835548334489127995074320111485822998645500486126012527368056628258172268139728949408981324876837868976608628891299237359598813246218206748946787754153777630271738697834057165390478316720404411647576805787717376593207511098510200354817917810759191679315881119217155408103300478731687423177400643887501179449028623819749980140059329597228316887431097358939973341403466047470367840063998518416115278616225887249250462060887001050968015994535231491123503283827035987566297035527036043985109936494810231102102331605039740162487936085212318572026169787853611331805715010509608642767001466673918973044718172106601992732460113801642876180550346707907955569203418182603271659417453456230786225817288271701795037083678129501574498767358260525644828456497729875266772986464914390768783799283862185927182063899465337862151983221681242253860687185543792718023437421402363262940863595895411827615343740277803296064272383083270709675348658805446482603965805258656503276901065869466361724175009810475845772070626415347289265843842801465729409397028834512522653124209275529566780626208936359634653775049879086584707420006819030520210729867448898233563895945451375577418131910386213452660832614500048957968695483625491252130680061317145518024796200708820480369480291003933148544409984714744941568403038303236561437811255913422279143134887858663786160964730155868624087790624994445059879022010440615838223598340594207920533904434606888706366421747295326313270482154936096948965012078766915758580726778176059735616902602637543280223192231670833523243539052115205430175606714784812254213791963260565166477876321107323642131408760579150179871934359301418776288810347181221445610305589950031749792090812340449231992044432407658579732770792196026308933761444489691968702848567453742175030123220738607039298333620967577208088638983002047448785120848499124991667937446985686787119575742462049843065457159974223246122301830690931388742108214581047842545028495246303685356294201851186633631064738592390095154513944632942393650240364381463474527709582601034826022480456206221846865417961295857298778722868086079759438401982714881904878568376361871822658509239499231126803125690695374400551775339290059855753247617846895127114988981055627139350839981663831693292259598666543767416412816785749447953026326895955039955598951706175134332249181299223823255509504853985421708001004715893253014214830954872920125634177372703312063752382176613185895186856590908096765437785470049855551023546240804021256979885206033182297397173372822806315223968066312161821623303669062249336560117826944346930557251991791351072565205945432904910902680702018221616651574867180061102886330568936103955837530595907985836559133347221436139414716341959199252325161871908621422821450911865788330710051319923964043663152318643395119504255539836936207085307415266715284352000839396450625248092677422991947989111668258793914215321344750006000331961658337252522699365668305786673099444767054992914834154767748427870194678343388694629348258614526242588730194372172060921367188977781875352616196454151489490135455471411137255808346608631474619214578459972712608291235381629982108242072820269434837947466660530250411033717518249985030165708917207285535691645154180234287145717720733909427523114796145672541730033344902662990290285695106437901861512275848747250891692697615320037286786782791236096940635350308689680340401256064879851725413710784238578320522203494912314196410216894933717331229049734663694548002346867798139257975218362062558351940660207214825351020534378079570827277265564842070479136757377909278342309599697404488670953267115930258720823682288869817208393114368583038275142815226648518573170244555605339065566405621026690955391498547720820619239413675461468163365606883781351002144387993232913736493432619204554804600145411879871307006831959330888301322106282581808173032336348175057873938818230584804007788356495160293473785782017712921631213216020368259500390088989701814176500326434416239802285964909858109079847738728239202995877019448824323994350592163945819831714318648414105627950496005238923761725335951855314826721010491410634024350823235244657860808605421120119275520098889410547687666553024336802224862105554587088687285822438558514724317894075829848639065964765898650297048667137840092724005740419477556690451950506425215669968648242906572965183152365986769251118097435429482975127484197459951293319002521896118908240609248956588229594453587581256224025056863527662992331407725995085147322287227141927705538966865765077765470843369007158184778413301376242159367124079732240218561125891607985476272817317516354275912375246406219047556518244518722798216136161272249872381541874817717018152355302616813493601025821545046239360154401231112094096265985298342130587024512140366524192676127059847496143387668074886912311033051402060506398785858319555630778400192538509015971115025150740570500183867191025247542823728909865530339682936081576087732477536616129798940855891336590454698459222417229119791260548383638510603137103655534147785656014928125254631203204306266456764420367339853089543826149945725093660241901975692725870818984389578982132756844714227068606627568371326485463274627923857057250759340799952006727294695880161711594881927934555711605759789763187705755514576162096859050018469054008864206357281472389945317685845365533523385438529231640714037632879959769862867393442047996686234358597668244648724302855236136443870667210429786945336542971101803339507069571663405713836273716693773342851300336081392710569758117100863773912766978495974243692663129374644634007607871064902373813878940650217714825996053037239612082103515873385439633212191519789165788942633209906508468924424684133930446765009460115949767368868477056841916496785992437262423831437686057362730532815436856701214094595676846271552752288300384961148660594711570033286814141742903662499491126024877783380025996750040951680071879151326485731927417956595951226951881153842678266492499507620664256305469868669187177326126888188384054753627448131639595419352961053475109102158248990690995410131922423213464932414497716080634803386556375210638041559627692880424866313947804381011419340151598815238979060861702659797947155985994985220414281767782808331371188585138734701488032657343741785029006837512593794895552083680716020203922894254042155173941155811550335771340542847166742459116395767049043959925892956483911333583202424550289352252180468952935997814192009701771077037857410063501820783567683684829306877547171802019563274091849691996186967535482387123893422579061861123677097922144358751733416493609329109840404160441439119269976336021621856171431654570382016770924552996607111407382158763387376697904824517974900270569618508030839748579917130316946493246840663176003254209085721032942410095362854033926725954649855892907377582893385781174835748381883664963554561791754439791714800290053014350664941726803720454007194621713081326990453387057049978547813266851780530257078027959544153905503389007094447707428989766818074156482045750388925054792983183586922137628584263173439524738606838386576928238792232949844801008523750150717908987593713523196861019210134534736936054930997529673807486101099916812665059912024082325844632625753526971812261147377879138024890376220353100267953050120226644348935736978880336692117225597945959855587010737326515500831908679564643670771169413960658938148494154008681171036546039840021390568779813040829361144081776066643016845075502538702633073407639431591920351311656532238293105656934081380557529453174164645227427176913582650192697885075367124330241954705725008550026722351045733153881112376785124833603067456772306781445898824551526765014450141923429214386158208651287751938167577171466149127130076076505715573244238563186181423498138950940262395027162396977418979162492112827445079570369737555708244817978494622509089328371359712362271899115286062264826829442697493532864397386570111828436770350859205628057661017242159766578114402394725342648905497518421273927968784693157612938983089223722133988882121769536609599450253151288205325295741918506832869943932971312937045905898302691842812165878481205195149253875305068624228458137287603852654086831658360205753674705140882010544739993404514427748393040181104121150853617686869280569350343231580511660036705190082965390387911496028799305669473875263593829975397832383290053982708574541541885711165606481697387493857184212031867320067258502703263363262952934875594257200249387257260629842459594554609617771263321442216899973398102562618391402813509663866145706756237699759136291706547734433122378664002731734776464040454822078637451164246572277888328222910583991518824200774205302621250126681660156540539061506465695444936370361611052442661839011898726729875745560552920163153278906621413869449078283571758637024183105441592168794020287018410869063753061534486377671898637977178249072992185306158756820701382955833720307287011413172631969848946629704023682768141662659666878854491518436676094603390941791988480774119921052826512408874160789408451417392887754371560624294567084594142792974050918313690092661043798279492264570133734930203899242006354944589561592090762527207046942355214753811724520034119200233725294952320326695250048597789561066462225200975288435637615431947376107418513126275752413077487074355334296920065792718481292712038389676360116291875681489640941542258709498407466396975957008638172527995530795104981263051227993509183531837299341898911719102336202856813272566839133138689097830764860946294235259668350565468110424694325336076092330490821248056598494695181041956500410498477029826297754707811021814881977608732224554713404215731294713378625362801614200333438623580848404167722355724953009028743816190417007789640742010302612578870209786046524929889336742530351559851501620534722232583483159481084422053567724960615595082198183278980226030852659116285082901563703405305954326703730486247996400957911663797636492766733004137130557940105939952781281807059752932611449006699164986188266218056604476175305448231843009804876928981135812924166880144688348833159687898560925505769911932083337860584938503203272483940557747982773819669256134337037044915574078359882954527625765504057395284306300758559411105744845664971950564042812802679285062210137012951617468440606050186439785150103806873238682522369821675107798003461800400465958130526789456778707942671864262564469888704695129081666352990953888831595246766361300518880357723343459733392188932367000373665675320514230165196527048546531991148049549574000914823671458282514338010955956446482639647515842805932142431367941544288593543270507924391901525619296251519954329207898962013023137568588257962497187227614154907926329655682763862316047840152224522633733392324364650835579556160455051430022531541051982476122180515745583908255296073660788371947575949179146035461913674314249304469212037922677496997603900932228940120308979729978951834408717924660555611517385528798561014614805606936213629422199209286700353353477223376352555630080559898625135701673247429318764481102713271307456088217206571958991089587105833111557215704037256301122181579714980501238397649838513090852098205498463275531333690091660744699376950373173022738742578900810288293563805501217117608224855406079737061760602673353901222271237624711213426317724571623998291892194588702856273091780716134802177053936546847999934627717371695272435776790959616082231665894438843212650842918443616970875757561781553794100067507772855951071215247730211564306943260955589170403583458336294653763429530497633954285085237919993869871564038053016766261226948876246106466751481804479517095009078460615100994561212395581770329945718511414870960855971477136074723438823877010631728954781997435012236974834967055175244659165432500169080140503547430489286574964066277476918847827109521397228964007878870074046258938997181044181115192590422383991773004400487981063366722938302127109322649743131302906456062055108500441669845843490909915648170907027571797286011842100902954586790886465032648267661169378534780603042344492069470168361123589276205491898262854949045563282148615931715521560806362412288488124524912702740024126675082638116076193378237516998284005470713648565891232651969096756326376233774191906654455034743862090263379098335053668807688522376917363767403557931369831307062032351860245882404098466895321234889161909515244703659834135147971133000128199930359042546099691664872946477629763772296734542791789709899120623565546502953655874449439857153052016118887090333299471157729381339142244857495324999250651632604413407328013817779294737375795971100581454759060147907249849382003707854472677763635430967925929386682384510456296048333539279861614388292338710621583908873526070373546091707063204209156622831799039895900683517571210825630340935722649420695626884688772531604793603916625175269488816594158559719829149998263534407790737195900296518713406925746523536833264278287135159755662214070387898774364189097236792829340672745463068973508354473654101901493511120954560082857028763940176673168339807538602520869807819168734659645186007947805741165182651696647544987097206030356517604253509685013026004538752032752465013718595130415759429369527269559170956259411456291785002909552007606504532987564174782572903013282286034461298133896027196903397056711291188714996337940127022798033995234960628514850778324190856690189179968504763009123141384056477887778236107136832499925022788379133798067592792435342019247698677974435199905692669713415992183384343960277230489117772982283495129844852958487898550461424034754450886993782012396496072107630086579665748265789492741601920517401698498914083610553552243559613453978092037585040151983848303625539582117960166465172966462031560192525041386611246005014379424125944842672635207186862018953069039646981649545519089957817007593160444552401751786977650354099216850603983324053358527850686923091684283626231368603936473126310839752751554889853058723512388969276920980019063957505704594498211404799219902055942476026443665726576436562460203367407359918060418501313428107220631487768418781532337821683328876115350106379958392507628461384698034427199354393665294014487447257499753735885092697332266521699157681146409561214450111226951697036370794848567607159655861873819255886291058422799963203364939726944586087260905033154913129624669664049408033526350618095669958413724631915218527410767783846770961327259622750699001581657122564490370944835847509577821074181615324986594034642823431852992877126034973234597680089527545854544848188631844977933298481809932995155290413029786448436559466684329006783859725898404554194085799598146116304863549397202095918278857930898802370657986069118537877450329670944470930101033867815598012674164435354960400761014489395357614677050857383279290667850474176778629908994146443811959822117282252585923026346148127129819207432179637769827663545101244841751436158050112553568691328997628407060334305462283130226874990159231983929210085311033589679061486139355642987411446854496626277049099620157331132870779942527139471240518983443671794279373298889547328781739371545369816619830500549084787926785203749467979593719034706416559642889890969277051437747641245275908622952870374293639879692378281364943966232074220522384448431857554469760514613241969462180272992569745666643469239528613594295920035053375605245543394769657455755716653147099928405433063379932596906011605434498270535993741534759388895440368821115441918524577407701708063281226903703629558893877859517356470529056830272258311809023417761821957967610836751908575238005621333258104059411146552532132397005828194469371117699169281746794346562519957146489853093760738791922999156194581805277699901136098018875159413373006941669064782510458655556153701515892671547285356980170777803355835893408225675087132680101553049896612657179779948787334716659104505712316509878037355021773048681989658072106955539798934127463869703902755861415654009337020056444226857960606989734931255449242123462551068691228187956685491121488255065213879950619283190441693391289702628980275357231951099266009456066420140083598961876889824976238094357181734540482149126416944531696162293059471894657167166221076967548920385973390813327081643592658897145554431974835755239279644171143660802307628036551998542926684988193078230833768814789768682277449734251500672279678272729666284649336088839558199813917052600178301230812114604841905378980198409341477181197827156587908910972287809656636946204351099975826825202906533076737391046817213928612252873472222550250542049164577698312013945724905985893588495799532692325133826125676423151026779140944450227933991827318779828012372430648723949481542619703120641968230235033004241058144248662004839528372217725845225212342644771834079669533552687201007183201264101923096076851774316254684294136062557242961413094133900372336025577073502974265553260440008195075236424590118146594352873483512539277665778115323993974231674034218773918440395492952844296464901060216700779463608959424439551827508527144498647878201002275154152946044338663220009474043821854709697692176995179909978961137003958015419171732795822404203520898451825962069984056585015761268227512219395791815991748215613147977915755460836501907849629334725541224870912229019910061370155840278696572996079409455766677394679944348816126271182005847864257926751810851932877589701567087736581194339889792026579776614521752237204319848243856738800490391033037401392178902199691085702010059069607510462788190987618611195704422148780750156140459021333634539590435189917035806789687281410839277380685727317718361154057811668191988816398943215143973107110541519737352634508050718512746137132290242064941640060818220506999296281539938544364781213019029802629219029626874018479075277910837534237770518906933511736605189808823360268742563827789576263405483583326121488170157276031408465592875946052203772762092942900236097509581978704515725158440526765054870413192849630653197434205598481497167431671724636581875641878721358822690222587149256051778446876925707317194179120499076115049829501676722231577009041206612168836682143079656565006685777430153722416911136148806092963534411009047712751852592542326296619675421795478734462397580219236650496887241205247492719491719821644801202479524027662650229371917571718834629112973947545327244932087548282199663897133469051108443349766356984896201342313409545073678406976194208887236008341882030040387575341412435514360204047447710110077448586273428080564259991432976677862716163199132795783659416567659737254810566420499729298181841440474615978901631843098662001794860726546516243272935972444759477338289261943460963742763168984828664597039231785458191394138291652795620838239775976073875944004200431319049982121964529344663214808294706781132382660921250816586694977159999233087114811400000599464394686331844061513300528736376894686860823980218562976387733464538556885030836921743197609290099031973815303204517295709694506599284863585877004964544174257272681302336476790710082155091699951956622872381279319066410442882982624354467497711722938070103366581117401972670709643575347708893606536722083238721739280942179779728022658420216815490317657992074607056581003307573613134637569942683271655107236021698813951802412591306712202559753629905029565923621978725733799938794106746471851284473956555162924943233546264057022122137585531322894901906633636172037744239681606600392234448258988377881854987322750299309034821519246001556838254917067147288342347758377230217044125629172336551204586482007395224696092593502668112223607371729378494230639001662002555679534584767039642559382331476474265915453584845375523901610384464658944403098390314354902161322074391478792427580545168713677907524027879883573111009240778914504457853996010679524838343763866170511745694264509359832564791356883398480154429467257755775820021789444565384880716655474023400745355334050122985120742133292131072150373001867076520632304375179229151252438827640417960426480183345203901295451173326449990471409322218752577796380105797179234405207394127686046558453016438656065812875579776025189036067171386946120753270969350919046757554335437457729278227022817861634313237743340225550779345325291255779176229642773540491815801223823637121170050379969540335045159279543482518881123246136353893667666644061090004530448858020215021873267729645168161529612185225799577597904844000244559569453009193338163741756481754225657899310538458829588367899319386330691534645125864269086782944671471597918584973558193269040427377446135350552920241643607981439993484495030492626347037646782950604842734364991458741646359980235581801986108222564255000573078819586372365555909936994427741869107565913859246105365279398835782915831667976833878298280809328828709586265617231494029951100443162091585482479563987980147664525067270008051498215488950065566342511259599411030576746688212934866656434874348679660785151642362669222965002507267398838173995698869321886896029347672889843302453711730248050857391482378697708140664538780906692745219238470909498091987526377697457592457072373357651100693569962220411089883914292545457138350151857208384720155430798463445455625008409277600748718824730901716963729921525442514859336748414213359758333452326035853778345024229199114876097862723501777789731567999937433657898224062915641126906947774519963944992963599909912437441691771728315982658616836044929952594675442432411872720906458532487755102647754849265397857387759652965917212570896342168550724581613433036912637481803899460033135944524170327135164586882840250487021491638764626467309205101668602457425080994527005817898245569663183006337251473405010302835644984898129077350219403835535675629458151336993656919732667689128796428240754339002408367376288021296263002781518365128327800799797227182600705688292241876417338742491619372307741881264901862621981539632827861864191506091336426273036661064997307126103678779051461624793580943256758389278210217774435779703794020643076693627759376461114117812067728588242613504051712620639962209970008126436608334868800697539758201294247392920902364797060926445170452832767078202566146027389785662860732825378953929702475372559738869050239828230342442576666356837529371457777405447383416427203148263054049318288054299307763246577311332816583019603663579091030182668600710780306614910928045185798031266373062325538969030783337249638568409534269346246517237225030235909803728511877334770610498254949030994665722120624511197892661709351693742469383429851227708390512989422973096039259309189147957214519396056926495643963744478848421759067597291237414678712853364680221163532747560324980228861853456911491454255047668709726723266398882436107073627008826304195342057931828620753966928965435058940270332561652634890464865469934615323775039607031615213293561189647708913460072140353072066855313584137938662487495231847111031961116743274178146636748826327712919966912751256585558028621885653932273183068771462423859978151494411161834016602123821120192145815889854276939020716954840693278628498981362757151887999736595557205257711619240216949091327317989311604820062278961215352891501277212561692352332885769059147948141892543851850664450684681259936384188680335959968773681487690881534531950523950489213497350335328256959017283154437910186848743894608256965532468797127500934524005520182079242191927989316594330640391412785701964115281314859075387459445226410799601349814100308745815576096714062485735868417316797042615017218383382407869938660209746614753444332522950863729255881275159760799493112903775640271621169377510280266671869530013675546980889691158677406201328800333866099290167478848225046909038177299355884876136716511724743811603682901697505995186656930842781241946642246738386314834359186324695204020964442476571988477029350431292277436764914379932044766029635125654566195867391674436345427652330818400539579859776439869173424775517717802146136860186891398158764165316092242289397932708708942913118243489170116835942956238078938727377181331881869658847552949554574380467474501597667035735955641474233364872859438650317113470279406423563894268814559003538563558922546831196094365316546555955188292687059793703367984517963614762640974435208007159713770633407091804454696887862748815827089122131821636279283738296172573600724037564086774577077207510580795281483297106336466907201086037272636608140528383523631378889125319431529520105604709601306569044610904357054230957427779097265003119440559039047483584279215318941537826896687461966011620996263363821702806952320145615332688415293569146661775870549581109519334820994934685700850625791193898887914516518264088274189492400239289381028855202992111592971008103799289063246355792187595205132764102371102987655769228635184710207020317621629252009015791173954387278461050414522825251197739309949146439764881474858745081228849863367949644783349055381010095069919022702092954569874765905590308174298970256359083924549534819113641671960821433205483005311603360745227600198304852310514864551006464113267144919303014834109450871157955059469750237293449041970253624884998813339527445587728627293276707610141496985444447127661329187023343992501923309582851738409296623641979035739335326618512238539449341758210163828427017211573762711312277517618263846501397187573485254903957565656254628627969172230778371567896437584066715758303798563441430555016650672426865616563245639080767289176738499547489813327042245878108097812733778987291179858678886033061587418308308336222351520111435845890269962723668112540270887924728809378390427849144962402196929784789213794588879076367563907001336061171007646806679996888459864345058495812562558855262897502525948907861334011777104636814569032777452925828362435393776154536132550669275269289818805971106972849013234569895839477507800220659377603514298422429715197144638584315805205867030444544407789002534794812634406900471884038477190133883580809128963354567494454482338766228195976060725019077652915745313968668535071474962266168362584130435741442998324314436425099097493753978798072566745258312074839955518103665158640499712407574653706358019431480902400987211058104518602785156091455060652883849705652716398299154804497640189926934885400315740592963782791693946792351934785034378016288254885186112567979072422136696129130740586071167341221503636571456400179005022615213055896592204219167473294809409567697466271808228154478267831347331797241040047697996702157095638260273999331952328373814191030242872727751606492937333792110716133658149751849376375140908832011668607127748644681895761949237053672875625856347726698912680692494432319144531735368460293240807465739962897826592453694558479709367508275529070955959029362270373097461976118445219503405537164418697841477027877511500681705813849099411491585533508656566807116777095952672447413442468500558054911352825905745152584176938801269872109507807716983629219601499799037432423099055728264789102478088909937890897979741589916691027669452003768686111376566240538259201953318258231385789173956634970949693637796192570865608445319195735144590613271773614611867204314890304019249157040424468858119132576565803144678386294569215410246361821928169583693560858052744218327421314210290945877605781137465835529910306463937043233175508620658055173440354781232975982132212963072444650190736769938448335965152233106765512370979144838075923308739190759851060381616946592791765096531651414924202746806698051135776237746295343757421202852506903173082817755107069422738142843675359053870735602519724850905196164510742438920003835564249734496027171796251674765246095119912386019183886260578841616491376627697649723783012016039697033875050789109077667355014875353566053993066910605140681260314381881610903247675794315825722816545783511091733068335977520427184664825671062125165105017353352664870378238508999907296577517149069897941792623124331646610153570030645013344408625971385936715778262683358639232764213708291135495978342598651363024900207279932291728610502355574973745879149287166371430630061108968900017010793952379036255735354432751800505645120787315883697139108645177362695531979295031561642351021679702705309700537239515101090774568331490248916842592155499876291734582895238381261836745816142739299826374283745940866933833445541748629339379600489233691969179934225833894467440206016812109076810030834918587783356837575322218738016041914264630254373509222475763556352533866810418524369372389689725155194880984508778368087237173917842278507887623894157284379598744818562634503708004224697232300297640414163717442484888252518527215529137024028441979494427342869324093820048906712889710338680736669190024040962101324572934863366028266992097084593721879125756263390093841748513468624014511844558452682136272560995834173415416570914183304669034725112212107171352035241102828800666406294582811505811443917633893135394745587281094730303697691826170525307497867488596842110147467809217487206071839562316772076530909326865013078591494145628771034867484672784722672915876400875314720547682214622351983893087181026974230589525225210393343147858041708832027853721321901713444343772951932983101471198108377430001073744253345769308383774631548316860105782148645566660829909288576465878845402473309649665874159644232201278673203404876244951599106134020583095290423512705135541865163733281255384242197490120884830786884751903043597283172008008121985578046946454910589710163039807310300796551673214442615083056206488894157161595550204160228650326932661394981760335809333119308401118325711563109480127289608627772971717491646018938654693182292903095952919037882533147370919478550937965465977656859298750188621076448234852293851192733229458660302298507780153925079662312517406825409840049392832579351200976378496692803148187741777316142291276801715819927842610085679308096626295288098009229235468670483660408187621621236509763151809719879809218231954221937025970684912718618307457037040545434331656674035226189629749165745052211638298763065485170656067624571943074468105606997996813403340126536685327365719730904451650675459481276997229477833610630590179922490705776769879163804138487390001829709952991698666652133817024957742688613548806366056376821852480034988797350840955680931443204677009904047542317276890899872961349601706452193315046244521359769333891119431420523196292332398685796280506733967065698053820801105255886680885762609452531218628062257832818603867426510113365135185276899160014998392012711432922180701350251701724437867831394199302704560720703859324621427471071973430012480914418811024164547570076944537108728272496978714402691479393373926506714383949285080613791445375103048002703596182202439599708218437003477512155781351170816088315853772921892722965380598016173266515789292901697524109671918461498920254392283030379728261259477765736805354019858155850155775490942564305639597012833215335281202701872987331384591576479098441625227675596741699012140973385771044501538558961482444918131887233106410214546587063956153598077581582307350778527875546893024929416251982803505430724307726510907387976693852082271028620226410847701825376660551477317772904372431966947616470439886882857398743989054223750569932099296517102665081234879744951781514214072965254957324111800384116845977601166176264569054774385501559548300481986859639868664700955643909879489825817276331393560965254854847144902068165850075475147380256678979900241769677800063525838511275068328272377979567767758061462655020890625291428951976096943313420407742040490787122695658420262378848403330276516425563654409474590637708979355528728718904694036008592858495578067886055646079187924520469987449118841691386997887892271336948952552743292045937473233892326794843819857702844101811855700939085113108449491693237444640748678849056992638701156051427254375202771920479772965105209610551993878798783241319750771903746508151786503768319868636663853402709909870074979321643062697510975950869890335364219386333668285594049312991373751852153428736427344750130842488058969382624733302733594731752277735579099675821800339699547450841875767965239358283340169226485553732638088978989115170315761667375166184967365451500411103541940813268084701463751499791627672583892245779778477504638469770991132863294270227014866962124443812482329453701802849065171134074643086957054369112684346680889090856044855841135483087664818655389625679749186953628033654437445641370057619933410988544257758265449009800351761719565438064216418429464447725061791327742699161728171429415927871710978419645837539355274036920614372582451385747872984530927444377114549891460854435340565983034312563630792692738307655388325019255409806538931696771061289323906916824203862046912106913214552305205383098102823271728467383932229206432701050171831466110722995666118119553161129429137020999089372189382476639360115327695176637811375812225581067120743380316747605817970625432448194214097182125897771098766645999736978055919121532642401354689821677137530891190822539491342127834048041077402361099250195724817145110437735678495158134537252051122580058158828138834945204903872089616114190286337964266397588812663049114796186689691160842070592126158035443091069918010630353099096854351779246557563570746796173037264206505390917607886296153760296680319538609305788026150014460873467809801806449545487300051378828135257486442023110289821349740958395743740368051512593116501087150901523181545547399744110897106010129265496381401110660319139429023655670388441276575292186416449864614127637462572147996946725142836498061148399987001636123426011248970723224882794753919919307874912299473066220771944031722014682351912182617890612339598238346611774074234550039270724309711618944198809156096568247787988945391029200836143110823309973109296420855659967326768822317731635488547957243864356266381017201224312001398415448549373142766588822427976478655446676329531853379454780239763389555313334656766694599239293752290789823808793321786434357715576585673112400125172275514638790658096477476414637861474034787795035913563482282883187496380537252666331259286698759112516331388395312625542450568158343955217377398697423384562705947625646798013427977572835601634766445254897066031706001355471421190763269601510781908959635587592263882683473852328390902892898391733843145897195072553667073403664157898898087209599564130787540585394470544732362427898085731766863817473914805771214379518425126683323363479125537374282876513995665389164479529717052316730942340105037045683443826063792769427098473393120044942908880816333456069266072032055517229975734415216130620235523032569475450617348442098960407532050323364329335202129231303149035483341301298300712275477730584807378499061613662405281112712028945153407879213830136988305616128531147124402010434587210428676044678582688165639462781657902948974208131956185946620572428342130850014370760792837694563498026650573410132763739116705563129464748436847832761968908715508707482643358246236286531941182801308814186533352729924789257382534534391149793840726139858800459414185404261890795249985526233728028270248111826486549616733614681418812967955286063230676297353131354932177854661441010878433220738855569589810839049212354755675083678314684370680958249882471582066502222534358629441325535841726919126879009436104589471619696178737804676274617005242176218121030507393180148668438249369547990128868366881619936402290586086363006467759876053212862872132559883677846616282648017964593410558246243854551695987656344499532027454949900133657163745896541053896629927820004116544347479104613533768115344043677345136038557855027373026115345773125797943772355065796099058061940580083089048743359058731757788152384914003760695218842612308381802756116038482027721550893666532870595297766951152194584262255434778463329693395423768985455191644377046917404272511964639262059373106954069532277489801360176670776983300639785581318763275143814065985934364630215385610606850913657938454086816536677651408234249256081288806558123571895446931640393989732744644513357433990007011676304626423027200930415555582584656644739865555985706754476960217108939231058780713617068979116502966899222393613046777781824249973857452182005338867083172474674005765746787425644246331759494964454378622051190218789353599697588527635880538911721147620234545543319663530837946548238343819856878304813172088327950706059269533709433085527173715688976639977545034290768683642889733380255128961886846089904398761741008059673919842750288773816861045417626960360339281369883690924642525784169206398435731791846656666920726802753262375385626736834675397256128678314856531461404157594953127473515260974284367191695012894682834407692077311343553920980655586096032419195897445988475307912509978349258683101402688822044048092403745049106975235709954997910430573132647289636562405417262806464225045709473968977035468933553537365718379979112203164040511840865508144441984710668334670632609847022848521613049126730267185906594006023036712316580403297490742469202377803446646799549342874609306791107712237970463848165309442343943908406173666255286928331318141911405055519297971690034076283515322090474139414083328142329770927224640562343850863620818163337927705575584806965426272580073772109562993512236247464018071624668543746460994052646794088260142306772225567741005094499025756571201956930560251810074075587952361064857147587867780239789613109346658558751070773902080770977478951362555142998788850248315089232474156781672526634193975802996729453792073507756338042383099460495496427618375781369239327465773847722954467544147652898581024765324288987286462791857168617319874305258891965560780978091517662638948310440782716066749419435701047333913469010684747446707409659724021298009508784252670812229056880901396581783164347334154726726893933499536583110189949428591977981084851477814536006868702567551116725781232749235066308768716058905031258461780247007219292388728935560206941659056703339029335457909200838447085789951987285532744205245861593270859720625009512054214623391251586170522248574518578216571642095695314919914629829677947821496065505045620527258963821400270515459189491331950445681650573296972834091361215523050485500380836496168562996461571512002687503683274329855688398118965623593209458339742449976328771938326818387666912095527632713498852796630309969788161216685657084590427277408248839175213168497825073652394755092774508193527524733287545613626980468140324743227075487642113333753915708566632762446414653829079593114239898552537773806323939244578518608637382934301591338738496294032041469578832558300125939966785472029114983291235203727512534929999350412092757581851129949299118560962383851629106306040933108647031793226363336551245646191663597519747048340469474918595825424168791252655097767617708183366828665376722191468470333764465829821133930158514925499065699242663912419175444320767814306375795000566176067091342222429644708491032680049998817526914099831868403939067426622980837007443773685781433436753933918449417587783995227607919071408386850249960470452349341893204795539237316806898181493931181353678402832462917606387635056159887416175542544324757384381500970231099160691344862954445413766978933427781915241711005461709886572913140775458974919459961936315255080205298592274537984556966685141944669264398541685739935424892969464671036956752685267496382187660451991997875516593873193687637073436903285110689153723061337998813742090068131908450500423426994604306752298746498713749995746712558499671382595859004345171068875328951548319969352184027444050313990155213599189429090501589134780997906111278674542821476975738622933278972466407461741869356161727278257795907838323206449782766957346926244216967033506025418702451230847561519522730805103426573504492947800245693585775644511136204753744245976212857795663857536559015807920038805549255074418296488304957512603068159431807981829911804310541175639065646270435326798455556182816729697715186251767167848416244771854118488776766272432781060863281273853901686119688072260789313445285737670540317724124964292767448687536166606764969414692243006354716247766593735674995961658380407385958519535084115480795871984546506852151910557573016634179156552553979595982777138541048502418974716127970109925026641954104122754936631830130524409398381486555164828261867573224317336940630165254824191218201582145409807511365155057935686432257314588453157668277643546958434752749149648830410153238482672558442074530216032648493578087123842611998731239730212969860977163401068799556274259514404778156622788432734531002418959085018966925945693014697568836508652031636582639503525499890667329513709909623692860837568437763102124483320287003141378520827728948432100869127177837033437163782103507835247623706149546671407295054715790083858668071566551232229663454864874283997665106595239239820363120817823355613047975019129259534865180993771814550897244932977140180521132043299783378917388612659749394739850643043605003584047395132001735544665539270945848892255868764978847387767405710720059577964433024774534961820922842189215835336857001865202587861274588874170542488072596303441291688435180535008371296855916497250145010712941753422979370587782570239258452651069460233747495636380747066519520393356602911493129497312760213446149662370263849864353424757581837133008335333027080463544763453751204756995268714073438385350516643795259056820430188895323163688530886340439870821310647163568117362418566869748765651348041953336750729677175774510375723972134456900379005718434094938014311907634130828199880049890082153157025485830488756933242162175274594492886391124196599065054477873049030208476039185864279928339450454593849502433759333613667628933471450524223427433208325163161812577675452423836318794753089411275437264810810107325877788582058770050194479630851075713538302959554014138264600098334039861175451928417068556146569109518087447135418143396860760690602587341733283414216614664269009677567207730100989698716514040107075634831790845089909177961425925228060737118937223213220899439020578854840298603418303030998922421020165281543142119069735602010079139598748961590041057110498622491502281872136429285829660308781413322938115268795923630301999887072365692351798313760535814656908300852371628883897525302187285800701385468229389681840370035144404021331563935321654019067779163688338888022343435770357637428539473580085184310756816529322059999266754042883101474639759788108964266174336255214576341112009115696291608930562403112257815348229409912496207601961088079792860161082982125208875172650468361709037094223391711923028928671696050799564537650087863193991840901341644168852486617073023755108235895348287808754735757339799844821635189801101796978110682274722669142754098622065227605309651867720471628967132470331196254634650859699876237370801674005241917786723228522268371757935055220585744376052108455879868967764858297159140255662043233045229265271521193912037996712310444148622286001635450224452797628565087106040857631104608952571940702132190469063820977515474251357737307803767220760318635416159249332457668586091202661664179699010751045526448552707049321286172309695748653912346641911809621049064905440060239700010294705188428031312779355420252303523005245390770935172803827649181901107964180085766658536713700544732210532516398125253208251936478652264569463911260043085587895999556143598698586716540845513471672787800994154108260752808011079399683485369256033692825784306776808905033802721423468247436496779394555862300853644382981643924053185443136815361095178391112555334843649207589235716518863586017824821116320088912042523774448527587578455740578520704511794885898524169929527394697033621224475927883539629381829976364665809932482951374529500940778837056664438959629840232656278086879554189240608193688401323308444043705116291928899611004051488718897280227477841287756279167214684705785999685884453060117993552674685046120078277942401144952043652577623469951397669733471344985251338311660353111237940129973320455700802038208309866828448215910823630667957571674387758402611063856932319741585454224960976729167536436582161505385778081655382189401211412038223609505788720303257835180040286918840144821685939089545358485847128108837254381269662773768666183927418031401599242107466591510060405127160587266608089005394460311187683012086937378193709463858253926384912067122489504518465415870496045956298265154815512779808526088024886681687598287900500233847478710019812179570910059416182479032970920033014159573588428264936419968119014920089986546720560970588992688505645586606756499310419740978061574034173553086359772251105768713121070079359046243262449591922242988189728557402921232816506679100973676062516108664785067487234069572180713227037089849516576286655501099992777023451346456785975198871360675898650156744527394883151701744620980241523473857427825088648199374399199567230796973664892916576506370019870346897654171067965268667528391477408995883694537253942391018076736053511478899204496020470646856368508293770315453823886354785277592705178713407437240095452460210856062676873584719894633817074215937497398859759806410951290034749258923001995506377050838935552894644742491838879049296898595614411526196720451368887052794794951495560618392731324799937006861782953383043269106747157657072488258966515663465554355372123388995433040017920787062544490716447552150126365294833445152312295182370474433530352307729307816615340143398422364462984843747890808559656122974047595147936932454946977509674088017207364976239312092565955286683822265569247364507701896837832272792782602159674039747645933696277761284291323627884492582143016987700769494757215550765604855905059465724150735872439002069233827361646136445353399939550939337478113716820148056529736105760275659237933465340654043810942223803792545993869715797679898963087230961443627531456303164807970266099082170381958500338232459989893297350571258116177952450022343732975541580260588973092581570190939710185548054151415881543753714431771532191841960475910618895799843856448841806081733465434001310580666268693486690032463151607433420401072040449117382633349618372825507226453416096381573951520154907552745464401898850285186061099447094227139199098508242498233834894924810213824783477714077150550030288979352676122693576583508315988386651216119791440941002994274645513445412734034476642230940266268691226563770078416808283824973655352165086445604083781149555202820067415864069601477167404879481981055493624932980757488878278609593977709811390526733613365902540853230189101229183981963784335447639284779137901428352043664375502757158084619589230093788275048406056489479975003074449302632493183733738490894979127608127767475139940850492932607366906347881147718010464915987965146054352163954319819567352255149753084288206506097870225832275837749780246794344757565325770730466536505354156963797477024604878689362313097030234030252084572676156928741206937084187223938779946054978094527988175520924234538318337595833777447660965577715375609266619365625789826898137255495874900441323818107994381723920767624789958869033013082282601910130316507329591404324112037140618620274456336618247903082884368121549078833154746427563279054598282397312584700496315937003291592842261717262763347733663239326684728935257961044269277037264737835163061808801570514482087078576003838242140532944292728751433223323657321368069260061358741753964022441808819307069389239876107918764493949334365030887286245649875082052742641957664198393461185958259363492329129434594168582318025753525394630887196935860264507722333200435017272686757997875310967545481412705831367059570101972944041197113200965163501309025225144765223184563698121772253487157136515253525969263782443929674473697228390519829411785854869849627218313712697242426900690800885539784198670023586707329242203136206880181213257278653661435347858431611563823884014653327047891593680043562041574097301459640886260674626488673670744104254654105127995180331521667744243566284961039300640651724294744318689441055174105360293160151058260841610847512774909401501953115373506099289523702566383102016962529255036286049990270357964579430261261731052062801722549025791879436199235702459620263234138200702453200796777035841621631667532569717812122049380885178788420011801461601892469369324151488532238031256899218428525625703059354291914208899292254766968627220587982071013622317931692538418845438492059519861480546406091540657667574870003321000925826104214921326223661807301503127714470208869130420400155447227401492567289750906519199883876615995416496323485247474701425554394329954603950037287091644227450389734910276676297006406761739154844995666206659747518583471635543975115073840413414763878609555839537229544715538311717323339818782507190987330448924000314604706960565903030791076113268362175735614789955900552774478097531733521976282600838814690801795415745613197935942543996328344366091248722539817441119354513760305055955297390867733852238976323771001457267324158945015233744014430177474729143035920842882834029465361429068168176094111741339249908340631690732493138596615556387143523193850616231033472965475804839323866540815180935921691715689760139509139791502601444341121446280112996317257985912531249566673374579471686825943277080118046196962146185037031875331119549353825332770945623855216774029136857598159437871539818311522075340661157570869096557546648211431156560986296105652573488998319871395309280792100882653694192584889423235513583755630766187403706253491387988167217535084877602214868707455805769485487048742067503486139640834674492411646028777799992726462268344701838853746588444281170927208340740098573472559617501207710900659571859226636032264636288437172565225039478498596483291283302557270458439327914020730421876843423580163432268453160500856940773699889054518586273047956840037739022774634898021660436729710003698413902721757413876587234293218286246971948550173363725209325110633518066643088235335891944008013059920923621665069000081694992922511596783597236239796536838555950074577971078676452610290928208570164060813235479205167785445513747961290195852179096441156991706705368236646102601515210797435158438284849511080655071133051364878547579621091504881391537073631618415113165322516242345243023081429300046130845696284779936503698054831971283352150715877861089115386199654001862828062602922397548441400521755354626273000825798425293107643913298829672452441385930672498851849246431149061294427853355791172120164695819729932756673742804574183415273593646950307078860666319133212421819696668762825871609696764676712082443956425273961770814678206881268942066416566450994479504375116410956820703789476388293835376615518292011091281460934185479954513358558830827396995459727366465048086285231054659208496951410205325888838179499711715812794591099267955259533726235288903073010580395263488404347703494006072477687019859291586808719047633797970638709100583458751556819298193591430254671223628090457093450411859974374454411266600730964057808024207559801086320324783708190581314938691607593756190318703564516365718050146390753806682451485872774603733221617978714649691434918117516796485626795625311312268819703530767931167380120045929634843997716152651640762051869126484251275338858131869134870287337484050670758379728070252625714067730197507377735863214497668495551806477184978797099184749588951835429520540159946576240369318813046380985805957459929048772020498578881828221169754014864682903165647413543631997446965949397381057058936587489171871300361689349617200700261906522759749457481160297293892040416298955817723603205217159002714880708501759502954302368556900019909108511945906540906468768292629463775098707520094175830745473314807461899024623441645221581864633543712051322154857117386980131479818752364207543441718598009313495379923972034463738718833605334228313646093153436248105291809395389980975448301938460505357382820484379723902832345720092044018046192536190671975623226909996489244041373145695670835205156036232281828122901278014136278726666628458081476472892239498581066949069000006871655216173428454729760186814598603986053882447139365105239820262628935640421916631003769622493722538503445227324123581060675743607912273550436982690366165130553795056218217640953899072621245696227075987683108132378398617218205526129849730353357799582598378642368861966128418492966906686142148112492159451311758248633507375922038990845312861719148325341476215792092621297027392374739721661059157580080817587510454546891813506069702348134541294223510499245517169753468381968980533217526293020762478100317667224881001573272286846111106965967236148541363985831475603821531647554149818502270993461741761199087868715273977907166804795767535399717903453140898422437583430018543703375924046988915241337861055093231267700995741503534846007416091736130535110992060683862298356428776936540294783601042686983831614246878512359489674601521847735639513467138192108320840305829716233049282334724074348365912162085271012684761368801809387974932636622379642731660666838270206452431217959374899236956543319889131573040178634092815291911271457874354043906677906510994385778127942771496618653804043060813727037688872081612242003358205096128388297484214679668658760657692476782745865225656552031940693649714016216941272752514689665697995859467513738526853835161531893163592559010622761628085300889838489266258556072799473883632711449361383887051504554542370184953761970147808599456798132498443131858640253344431841901725048458854117082795589329961260493043958915095284833714411232903079917867807730335451158092507453587667230318224554768806446016970260473303544061804680783833916963267386135724972316551510276703295487658291065430239482624535689129355227209007024643218716843540903153549938288356282796305731037747531943623068633690905360283936966657081422575153436180540486811846370463376672397910209239915499633690496431131649671023606327419174856251953420053707916882657058055421940748398166528570138171040715442842978131432697918958632284576322425490522353942066998705115363333317065895135407437618314233687434997514497352875563640562256444368531179254780486287718301054031772989486597676836396195395269093122843120118261301966299738316213426290050357392812304622927629088238892994896029904701365291289253582104978523540740863707447412728811774694544655207628179323177790614711442557335938661460572748005289378090831411314271043624759168324386066503752750704575893643265203165063224033431116280125242945456298792807955736822611134874349811150124586677948914533985226902278903799384042454778423067294542751299623771614010031936838721246686660038291505398124866463182927219006859653124782408540736198541399680757500716476362977046293379148501171226778952886611178253003603854720174276234823212539875009598608550867377639926935925690341208157291433004650099568295636058164073710490939373504841010277379891080634724026345786643103985008202545271553153761260257404751852130058963742544265949791753913004345934739906240589860998877249922883482073620685389798471274083028967902817038861349766483767073986418917117105833241686570170933665528358614814720277472033259257932733960314572908472380092599466096415635206262843426493535913058548801434106974655969694428220328575222673029495218659785138439895575088970953084436790092632158047286260606324431511630642934143218676549814737630983768520975060754615377802750921084005812833821359042929458067772499700794300615503127994026926702839081529190478667849336157349150628269040602369734715706014494008201303399378702378038560528738806919280715274057259914589006580129722042361292985030720380255708691897053325819845841555861959544331786822893591864331263261824378183545003771025159941357510084131928024817808203422582494545833651315284704402890221711714520456254087280381454845106264106896501844102216747325395319122676147006931950213352984522519239550578380770231293728247113706272748987684635855121270476268758978329208298916121145983344046616790880627850961694454774627446111693781979097199328561920634452851491585324753365721684659288484419068032448069406065210607272652469133299868065117099469685550184826590982358210019751887329305945036337328316431741723372158978844261157479668415780591536316986307437164284636528802221926366863445276515841124247501110817514984031985259250424420672695255471605195219623885489599152101628008405416727392897047928043994024130555691702136371768401420165558394033837860650461471390518172654447045337955034686823072098870411464732190463841001958309444846318762353702292461214763596415995955996808901203899008539487657847306819342117481020650430538775393917167788957876893508765607838822702049042443433037098728096023157332573910868195110615770389819302389809500106557162174017304504459375301157506020244355476609179207588107006369116397796122200789339980099799713324855954179762423279181345763320501426675120629123048220002396783209494075275918459931089653113649493399008816907546735805741667872338408804139140320286501870005305791273547178301292373999920849885570857505105412994406599826085247199954499007363876806205201099411211725936580522167470452292771244131179066960640227129281242451473502398578109128891795712404062967814171492016270673159870544287076263648483073031274200556581962345681872959995219195890691723342982792843381183582431775356104716133761347423589504245135751367833328649802649820472183350578461136539276362216839260530933883309650636501265171120559289791535437545160498759463380752271277004474552588968525672041422654372875804781703547895477150999737060297588521943508707872711374791729870482023788210054039724801618244224164492386473453094544275570761367036820595809900771851599320192183508065002370724477604018259904930360541583065756475916725969008747902349188113954885985850883375849344220102969177475870293855905385674195988597621333737433453454858781433973062143443423101321081621709473126828992253886659742063304121411109480140883548066876320837068648931939526785106366850035248674233482535611499499115231985552752889737275299064953233240530421516572335171995276002158801245316881865073278047409453606641086946013052634649064319857335741530206306210048853475057527869606887275213356423806984819293068037161637109295364525633073155203226453999390196960621804511958884683335163764032518703658198720691450753395440479292113134268704087128594695966388910309796676681414729833092809384573365295902393778136578976190086420980364362814562904714377918808175984191013232115007896212265871782840789228499961641222406980643081536726480091364357336147767108556617842194262468458621810877384489108836066226872463103745853831203802850773426185413365001162482201616670238032621510642879900895912759306775852201605955601170078049886882169879722211809376241071569608494767108698967824766809221824506055999468789343204968870833082159550195769576695193217905387113980535466163632013139572424219046513432177879800347375736416718132469322913234125961941311579716947559728231648853016497599772214438584447125479488755591626771675555674493782974095055829096320079033421907686992350369605917952761902709983966273160185429166628854903460227567156014857517521730132581762875130896062328847884724729989218982190657684390846111325078928205011645068555557110828472615885019083476589719256008857162498545095328196773605855832011157420917341883024081419893523541601831043486225175142815889830311909082801970984705600715875460252995721204540135690602316100868442902662334252234002500978155756560145749888001760008587215996867071360082261013184538799914661190127822343677391021218616418450512179409976154509422754801147334780440348074453769421553375186351404987286295134174706984097119237232450461795717285441868772582263154194230602615497469822683965614577350353285479220221339343763267641288806568935099043127095853429076773254353462394014577766132828883152985603032866519010289692684675178789869354953957411677391211233962799826917168280590398095055823679444576703590912160109356613668830344293083618499003252494341915717088845990905273786891831373115643121503556778247726722635357293764612570546303546822787909698417067132369795188543327279349189189111056007222646711656207825431228643076688487781277814511504179127024049512066246744756415346657832134328526352865682507815705022879741614361820564461570182955701276977800047551722073816057378485483407652181063349367062587314725663789987056441034855637525015310876704544516016953648180658998337392268464850749267507799973294329187124249359228820613805546665035221303616483171022780944464888709829651934854354228571863552650772071240525496707278410480641721751144001644022984068042444221880029912120734642017605916737523522021781275025069173613091354493410580607921865195656635280964024464063195152376060268858540853247563625925878184311421110365608922267702452993393201287950919476822787402705070177493180154287752076226837161534111791667816444299925639184827741554820312452993567621571435621348196444946104519932628082997666163194093237279086810678494584842530062106720321019913545551450951996107930063437616396590627055111127694215487064630270386090483539422748238602112124258676032205713330765864607733819743751671039073881905101524924426635978272235202242908338672779555892811954754985791188846619033114136160002072912999153044073563977294112469900179491038133417226530486042071253830610757385665142953801389222809143933249193942467137267164675965522382031449550179671451032181892202720843963735545754934233242412021765321583899734899215363164232528700240091791795978036872773620060443231741027772659997617099433734471194217544369635381532249504627294175219511754857843779702946892548566051064857574142306787297558114471393108050452913817454836838015952113575262954674893047968664631688612792794687867287063349429171308253389965776453556361474867717180306193329710903094262563287381129124744560345293503929075823923970914520673096418996286709328859809743693136507127997793282823995521985589848960995149873746012990765373134882565782628845691297138532318732084080554011056292605628709275221279682076956428853121533965733814555964240762396282117016320556376072946464015791382613880929143415415085250621305668685903994703125398150650899533968611259476720944481799346843803460499135251490079445351003770702317896076968069691537516101340440168947878633322125392621386355106483668478830555878678861461756269695398181488939023691464934605901130061048884706258765452508223511186206612113766594062637303161297664147660715914424609981351235634810004450280262708137101202810896773647168044293025543656325902812918083510944999839451041073515339136229136969775571967238248116129351493129434403761989375450203547946778205063974097242262152685959311753040220150255269670816223920193194921901292671701275498327354543773828532461161159484415014256517866293031678037737590910516431990449462467114827041479746828379057400970025974198042676344586181727229255059019434157158876250054896603218451703741253687524019423895479411272694692593552454894268839326051149568120810429594731086083861357260425882626164232552463265076993729650202877865933814355590242852671053565221470840203013343630307194693574718447393654843828525853338420640647492478536791006676281855429385744158669608879194607816841051142600866010858029756963895331705262379602707122647313257308928373298031994789974354772128543661295098864226037379865686015880959570367934584029084513958275664378774875488103341797783905149634856347386280529976025659442635152217917744362422734593913038870364071228749213481795891853377363221052052373207147458449036363952028147412628604202192926447424482647789446116899062139917096570926368384894838421927631506483550566090596067537102762311997087285753892073719777599081063953340461851142875668542638192912954363549114434121048559912439853877208875196406670621062832357909399249464513936176145516537034892293998477875609937913731383932053224948666300409055416595790452399985557959451988057994377166651260163591545713605731364799066714349182600580074129502800580427659310320977398793442520137157023480983105333629520176331454235845898739789461022332729499156224496607532223871238057036410613052799828328839955280441099847764099002529877614106720002828589249652696342883840131031098473902852377831685960510627383503875762115142375836843696117263817613380771522013191351800107714083575694959135847150964426690578217759670112841210244215500033981839185908605784185164847867634907991937992009157580241195232477547865525964791652051299633705950345776722407195628285479875958297390898008865151313857451402329002311070327670104001380330203730415665265096884878306817539059475624006601586698457693866914005585521173456513067064155736662877917047939395108227011539104346621206351894905592349147293593153749631765114140369960436649003062063120916717397206499505477073681899221204817476573955161659109934488705048511801828571751908417656282213171615607003702321755109545103402373303829042835856227474544936378520083321382278177549891406493811382221259699233043244276815801423290921916098435852665648510630031908341027038456105094085576973346146228255250742451734498497700814926197081118179274207715616656329083593838808389724621736352589512121445094902708618766557373064826275358544879108511913018647747994172297206328323601958034612947128645024542977947765967160234802364435271815352561963259866633033777797229765000912365983981890678624951325970519141214668664393353890003939770790469438262236707953437103657858840453438048957762153861796281526822585890295970481150994899807923346293327711289495697538660925258574754395627733376629554237936734484582994409392113607935693509202643115640796548021213262564874925385355766156417960919799598103324614645428750322561087350791444406085029558457441374821256905662396574019951338418663482005019894112218862988910904147366432933231494489067647963735658651269772463381628214671606483630616253118898282083485175687678164665987004634051683079843092435424445527520739865498520002706017492912953772805420309731517403320838148244132757405076415656778066523990268274821973477287156379829861752958640139065586488092476522112319629101849970531305676626476749335239606644638387645204273213159880758782077206082669539675936950774803476276654560758325314541506003266579945599386645294375960231797165679789497726693459358638699852590978718963878334858969321675294098358632601777689015008759362845766142953108857397565153818515822803806784310127829802902307656310026759011606897673790407655773285805902877868594875384318760461684502804294865259568511774476667034921562755268019092874107453962823968458810096487485576933481052963460150404779063437331977141444341838949505321546365392858390685951070118794271031599642843121115449803833334734423746111757823133741777450663389531328123836927400847166582585695917408696889868817016168968363664262270308538668708461536865093024580364309896306063219203169275705324005319267842570734294365083506059242167401652910217023587076800303570757726909696681280472265902137310173761365499079148087825035977310996368957493323305825688036199373341912079106367195690738947847540965163678740108784871282797284251677041239435371784309131051479761886036008521153499107180879117402084757977486683742299851627624723924237719684106549187179988157092739462382400532299887291290558045607659751182945231732507539796794617507798212122794924434197914624923427534092073345207956603959747786447749745052294893715649316897335524618335910896992949916632702101215632053324858767099053410494664097360545994128557964440886551450128548743506398275812405350841301724230256998295883924245265130679728885032185375454920922515045686558282129466794715082362939597757838680025662855125890748961944983498231491229958710041716057251389904394601576115030455890062130129804986253613592019619787982199271685779885948552167876083667276962487685296721826626593280785802871345123558788968509128586212124816120783449159223490681849349258145549557351212811857692151261536426522688892113097216518817396847551162207337744766940778553023401065374558251006760152203491691928352048504803463664488616119669953133142325196189190226613111188363816667098193537699245436820476903299908040179040280569445804917909528150643816368259999498156662289599009761381739390546718360509800001467041575347242008217252422439076300214749380866152721305206254740622908164345735730479141405378276152063391198707243676586921490070897013505808294340438259127379072585411109429864341226011645635416988678283165308244335420471574737261797762112897333437468719257823682765198773948596185139707375145911655016214407927336602156582728189570012766097378843966707642659632623536782691951961972457453783044393078697181318055387353933912251802057498373824318860256517518575196465854657673418583916183697559523996322561124558144274783124502175624489349899441016467080838411675281399525500862802802558586416978294742968708159541234193168698785856494198396600277244708294881084282268144259444815838017194636909838228620175907042974201965324256545091505046501955883810446921985323453904843256422943067999090173994435071709143827351749174463002679543168671673107498630675792731520089687696268347191294139394688419234348637023812259972372304595752911270800817518016932451529017939018643989021837141406727549338735154586249329711661792723832657957057087105150737546753998290663486090792986665631976358539111695834743076168036755720544233695935260391760692808759123664527861005710154031373035819333352166602509295722784237136682368591338461325142272890094144772100217108200840699943456498677736109620367772384076437144584948668405660516159405168690192664105578830150573956541956357741130921668384126342900578838292341282744109883097255874568826083868472058164382079758488695704523170175297733911984937629597995588161484522707233734615644242861208188292030579222722509584585255915445032149094166273911359130666673231751917528181782040662449000250348428491956762207631816872276492674230449341059137637055815476858270711106520960657241004366342673612418816110835633655496356673174464464246488394787479006584699550672089380673786187521315237349484416398784993953566581790040838153985079556193420751046892879454501704106637751433109737884991312064389681834723445881575424707581548072049346738593575569772471507124802643097716383313731706735985520741239918834100626536393251961076800440410468210056110693452365802265317771877094595211428927240788887185754140169075602297661253787645171029355346137992869939043385795585368278207689403768347226083526519514116796453247890699896428044081167273383587925943623867608969501118895960575871158922069411214016326488034525298760428962885866851217089165616289015836361300166171044754931357484242802318922925847521678587483953981652743811494434311188817051573340241427859577832488646560245542097678677482023587617812615402244772041266300873298269750049289542564673789880142534449244745161369812984771742380567096078178700742298837235313037965565320145299476845292157785608321983180360832435573816945310142011118148151456040634983159463216691982122303949402237870706438100491094552204706182873113473644008120599707318924556645692951643222550822068676005449762966057083214937317842676446837021943439094312528330887648998377420813851816788903700090082168784495753473041397625786542376820811678400471519401418041521942116689838241428009082224394919131069387043252722602418958040771618963534710229781287934840645476163622874918807407187388984957772305198207660773645277452139274223799305346690212145979712201683804983598701644079000308958822848963154225672143803410557551544156941566815104065902275717358277687610587845150440269400715642695854046255526766112024177779257735285116998277024009440233395232179734321363538496457124104480559442571092974214239840215684851466501089361582447107910796179698163007832358186906113838787702845797986206565717994599788414203133113691090910179390826830379088123260478157404660702379357013496947718809761333238772428325196941067332792527886883505455015059833022183482107003882068832089564027723399935019059242910227327560349818543550267883713921642661333881459042549863391194659884766509623541513486810720083790227580134784098489274127746427636229656664805824339138079202843693051438792745587083753459918474393915682935934610898775859495942092800189119159173833551936611751642997948460227022379683510174477483339260554306512485299250456846727245253821214935827258227203694581047771128745482859364035844871491070401813369569329842748268406563733583678325114203710521438136720176337757160652091884130824668967392948803718692063645944380888997420437129544190371231398587232239896862001681793896640236038764333494397058899253300330566710809417689555597999826896527268266197140727228639500085716607858592285081412827680069224296649578875711280793681949252611801428605562238326685113799732579555690250865880095124208471910379513830081258628081337785598915716629186556275317450113622745319433812625646592403424714974518030848776291996680195702203872237523271341375450373751312886855423936413751796180267216917418336112510566688642249445051122795865165734311069800550542741912466013626472573056892671221693375724099092246254511930935840303033438851441846832265583779143536117918930038827974231339257772943098612828866629936784978537566285949465954100243855634345470055968086305005940769567974075652677775273052001196888604411985495678639019125055801142957763975708857741291814278533353023272053054636836126877092630704200760652971319186494193474190723249065136032998049157318610357569949702033414550261316496419554934936848301011552314547226742512127167247692500204903930720797155846383928807024075696001296964417201039091887939394772685667157897985950034283247043196512241781986678523175985884607372391000825605466424788107106600881710347848954639966476302915308776569933906334599585411222239363843034160412107401570674157482826836732675537658965946331966860667784176010614027136494893461492282738982995146250757334305085077788930996462045173648940140367078255848290869845205242054770569422626381151636989619091938026249570369677340504078876110402353930924244545023427978499597619844837282922324006597664871243433919309218493830358577564377063630804808938484059972298350269071802346475331583860672607933826911338115891636186226341192602124113469801742374414635545451920587988623558341427199928761620563320650003525765835374830733607790277654615715109780511352955659421316886420796005881614161848637112259598080722167317017849139491094842138282481561200843466783740509309812221434544965579580910068484792807170935674959823536405157923971361031018399405303151208012040759270361613958157546265353174054313020061019459910311268118066888725008710942892605417271278721051456914164456322998918881142727360730040602960696555005017044593832483799134486946662876413192726485284355651003131547010470542845025238873749725139861023134674847190040443758269950505105401674146259271590262752596986895484072154404584569758858452974564785126993953540669915578842363171132659928644439164987218004477456100068512304730486119693086049228662519382875247136681152158144893876704549822422971082433810465531275379376068823353839283897863697530994535854097898736131252787641867036742717827097542491704721908135621626364059644075162259533044366441133068174197443898450521584559471593155293248635512637891992049203037150240254651571753031415459266022948729009850401018777820676878733546750516289925799515553998873824309975998367404815784624217668323393858436119829978700799425430360763464584077122751929800280437862357584880509903957416053990826432946359659161034176276142605443408460449527272217883051748699112206081597104170567475218983653683884867840518843538798332802829708783965767475616620941988748130669091866610953979738216092441969388764619733760694414274865528532406180473839038581956720276268282495001853426434001852868737272869822356045469771744436276967745413767824952000425865366161328166636575589339603891273846207516828638304234279381824761485989766722429125810933172507359347410425626172311721355484676452104020821766057733082357074858009941659766717667194259181044662140908301880348287570311558686583142888231022185571403853303712205652225071322825093200518044893743551111477754543045172910510928426655173756734468934818566079696573981445757008326740660912234026812336946253862551363260865173985173247645022869221793892058688447733857200327816268149540021525277589572255764048967515225555260495564936932803670088295002471022652219749063257707461411563605325147092227955247849060198447586999133358721972568948376958430406264003699590517122175484355673499847479308060028089552063408043760385184396241805004183583923257418674462828534982863756561250584075822833348524984101910308770014256221830939314980493518956936468138258666658310111190562335553201682381034725053552796099119416124301607656846897829331739314819091298030747826777936860671650218391845429470900642575579108275781421428725616708229000533525019542327941334215721681300843426373317720075536462273534626447914700059208731273949787883231456413982081051457762299309835806676622508539001623333581406824492696624806790801285935109909190616156161863967919173763499411924790080116640721361079998101213764733777725834080688105934821047052323551877685398301844670820569565508185737345418634742375625973140570808922218676265146484043084185852186928498868784256400663745762942449678602083937462022481276309198156893017569091704936627550009270643501222412612283084842408881019680514136230626007481932108994245156842582367085384720542773217251214853818413865102730399611405964279120403089881589440262509295230543578925682377116682394842441841332838128389701271686717089820500550701922069012676272193099560006179087187895101709808849310956010513049509990735297190568445461641496806660587102851202126963062941591987844852069299571620858052375015654862599824752133903153343336179979199624622468436933178046612635448067207977144897707623295560938552467138913053458362894227257143703950932228252298343857008373854464647361104711938790906546841101340654808547896239300477467101325871351773324563989070060173889230068558905441486272590567587599648956200814785222266543175142161096463934466063422596408002853664453036917773952126525188924772810855429959458420480488531616161845956335164364225597644975746631384885590529044640020321848566475832846463978937478269401171117731669463492707333162227665750616603841782340093720016313719753246986974129286302710717305533565023996772711851029690867086420603369407232386721252329425916084434025580469732286172322971460603395727136792753693133879855018811611574131029762707364399624414115846708149383516475406850527546463635675161363444795266633910555124750499548154368473677520575583877649280033708039671615113849336822593312860419048030336338821497913711811256760701157637602666284471982770542033846500442867662172964048667714430533778625732354838186404440880886272975896297859217718172069647290198604422478841404639550015989553441255789996359440947397585915869938241149002105713540194769312670509242122067411968709985442578459041316686337938484300641023991072562403307711730102904687792362716126764739804738561606847467140887350614395911942832980180495509897932535846420239060843920762733446703317082856816372245167182369044500699767536103239493245134215916053161651883557934097488231754578216377907374087381938281517717046062012274357864854480431055763544125478955507242047581637643354477944082150479928606271193735858871919337629832056846579898545992881522328196694640731273830374046455262594187325158243988696145662925766584481521114307653827831306531850390533591694958446340171289613114741440313581983218114264680502331255515107771265693771832755598162446370859153831149866664619767145044321460051518346638589491954236497112413266039265772808486365456143784372439079878954447918973041472187300561522709897892605202661272267747581244351012277897385697716513659972954839932594444345754479409134672750602894097917316288573701645898007113202199920184778540205953417674329698534361592724764760610541201714659370221943398519127211171247638369009634853429826314632736807551520931587665779048506601013021807378184897339456569730312597667823404926152810652442048655228021985947528650950471293329385984145169447857558774184879516148652223788855963858603001228227964461257731027275987298657266724574173715316958648651653221375076368037424343229183775993994820359290044240726092615351692429626721078659095066742679707652684839088219233092175748288902644350901703992097997102310225922474551631467853318555510868213665720077589638172925856105333220787399079969175092053319437730185680446348857311476002002287177030020489864730862299138228608809791265370045771498103114287745587895125258479446374563630175177492808443118580991882028125670430460277317872943882965692709747315940710018254227559217929442542681323001444775439498235413955221596741722541103553531183334481379030828199271869571534206612823180628097535138669279384404144957386662676977102757867047673905862977850865360579013498497655740305580038857818004963740267080257960134847578110152614275664208958829668015064843382159195001269622703630221689661005445168182727572454249850583736986801977517147738063292987942873614088860444604859170020328506794922252497914589984245994853469374227372701705004389582477680022493882927474817821307841567201884214716198620516718300502641664478509502420565212314203202631540193068821662881680176807027854288908438981276702770761216782467331384416643489403493560152802638923954547721433972982639635937106093637387496731197777151804738413181855539785465656042307878574871861199826879265978062787927295097100859245233574544217134804787692623058667799045117535355140347240780493938262998041550901537352639694216556451138724367645112567824316148338040296239937321544629640555601971652582764887651939828893217492333950685345054662238175006617799248673084011486333894390207480503930732225000714787394658097889167018448185766744852460141390918055048410728181542655333510601591283914999592910715801028778255223038756381037998673179868407976241721162409817656422562358061852135704673378053087937966214160059135704512922744670069300669808806887135866389680581830053043196791675639194740614738121734764295749171247514487826616244632893289555406854149734639840409750964649902625544814237267436845183267546405822394582449016868857634683941555239487881606992169666151973679322442843406482271202718427484055697781966355408781280070474551259418144940061147496895274124628687096898448328892473992526101538713306348158842922143181069443328719231764889321847226407454218570360767509146331423964447546080148342567603966171917463973428628597410357020332032013377514301886325673334466304163314443132853330858949863923465718821916388424772901602153400420571716024732839944229494900022556716546148976628223958507786254343180446853806784746436356403242750423921680519452316101103320882636120324985700412725066345777795712161894935946668215662231986121594416001366331164018803151452420342257909579287854763668253868490995276737380535902486908324879978564518976712657821015552286070880306848358802309476883019350067487096290834012595688755661349188422446702424416667021200282969435774196318585329123485547989619534588003581559223534422061585209837726456380427091671085218094247993728598214714748297649224919454045465299259070472645953051946394663490841957632021973453454093781222838565683363525295646558287162658613591930306392006964045045077147517994042041584480572803446905222751608652626501807349376899435381233012938861936097681590750292681569766874578195094271894983280610142773168458983015400235719542347388396473665089237929479787846737358897398828386028578130275049021337787491112877479255004936394206936229044775846980976556599106945813995942624540214558446241604118235298270330249126967892760938684611657435003243812874212716427960222158154489861807230518503138826228377125873163315696491922858876657850855841259860883555273650576561409588859335741925181648974520526899814177474187124780873752612028164510670457618056494406357565066076653226791045331182785314609550366765770590095972309025920127083036794119361905464920732165496612976413207292446676491278393396310190700894881925426135487354015861683039740080472029099219655738418046202218337279911057252682435661289520877388127890078376685727429419798617419025253589866788963969629048078930635650121428893666329246139443555070083279512243965660359913024390539357889729341740368271536652151927101718733645739403496830188210345767666922690566372742267738504341072628328841669971096547219798545020056144832840300758546303680144067286613550713352704523671002646325869387874075703100357651232349914452538998719085129071001664501661905060860200034486674471798694997106399312080493201947795115241584723537780474350297242644416458808960041588434678189550834015828252172521391071104559557699868204438542356268843376992095302682620973400003250913769288185034123639329032305529040417669196225767798754674670051997410460987095332075922848195397037526694761072341725989656212245780836186152447578737126299460223036882760975619995179801921403411663573815172121564275942503674161567637033855160422098009239355960389059777554520849389829165970259147485690348962922535285129015212372808017303226729844725587617646094230833450714375179007489806118698448626030031879382095739393077803345581801946675160969737573616588246833401371606200941467425253780225043699322483186773020419015612129351877890295777400669028860948177094403025379446807645334502374629002187684907747107799863359796076311517575256636127997423149159742608957413799598623039997965842769380886607334782490365051781968116968342711134792175149722873542241326982491043362217553129455619590840312787310565711153232024689144047559096918343851551525954569087699629009958157753853811753735094939127826247936691010098301432479505854283881000998767722217912542484198348461611894742743352843005128905449068678479071304528331499786128480327712598556713364264352586733364359879977100168036683861033776866364327482579863491927522759056373766805124942011687239135598369167115683672363075148637121038105477767099226402635925299064754070892627494694554088034276923627693652827905997712899477831599356026628913841116964300134000171955223456262396119074055119678802363458837137177878421822472679482574091521913442367764368773063476252388240976452104298412608764997708344970610781809815077523612128676866746410445459024694940502292096738929873730150547213357641229334741059599870861813624031631663242719716097987407497557127187823770722813999471705029132758667555450760560485193392644850472851614633767675968784805237942479780788334449195491403397782781763729051511173015434327304146219455264687971325291560579997282073909165118306118986924086988653542810260695492725584147406091884295696046127355989629671069620191121985595711068126484929167579843894468053919543403217308102881385847704231495011312492312219839197995701911282603388536845563376429594134699631591806705717055200765163638622462419506361495979477575841041061423438129875171385220542501864649434687461804861352968247419063471736198167283915081049674593640171924193844411677725659531898152131218902882036156692857891041289559057762540736661887249926549242966405751273483540728928795707726033080905219748475499802911834700059598912941577520586590899443751908809295889269100942820121335747798566811645332665320996566187056781367287250150940468037850013096800645767448758339977787113323988573405078471832070580963579272257260151550909449180268199557769529942726814831449707563012320115441849659596463522799942315762127274993561814699044936543827001108829960282155009441729318624163810138601621026458932596669023842775736637778015575416785287781512913785646247980993061182556431044603974890086212020353257362390103286431958858342898706585010721452865279643651249264178880554949147820199284781535761723937862378121013069647517005203468541798293349497913231354885624130931871479419852458217423287461265582697141265846528722726049383077776807828120038822139917671891240880816004802577457257585696883912533483038747618537388624327483274641115449279043900313409233448330392050490362182457354526630688734684913957536947422755128187966468040833878579080549138176969524881071142580876826514989149271554148001910442279198545514556856173003555074609554766537950823229992678344670243727070308035107319465368650808007046844384363780168249665745880755649270053993290352968422299485848726902775900732522082921335881059760458563145305433364998264874955092938703642434283137382168489281981045314339773554436827270328459647283884181008430816151297400372440893408287229227115706443797981334597827575632395660970395235023983152033457718030159874295180603744018534414595016322176720422979282318957902033357902487331306501799259195459123482771080264068295881712084511976227317329760961033775674621985558725824648453031835249415235760134870107809175317468844345603562495159413461715844189518919191296406606302342763283625822712218958619841974626831904577668658723509515605341510149059722859003651962845858100990536050921954072638929728404605311678455807388044834225896343244984041036331401971766858274925520851809193972079354713127344652722873636406106518224974711844932784210171486378052610741670142154807535895132848930126844563896593385717708342452444539553441595677944277696269706138128050714243161337349137101729014436809173821732833402896537498593540087949752033913518150274880676214246741047133943547432946242991051012411689766329821315513693490268005889831342161345712027681734404182790917434796464624075245960223501475476976273215408514974990140475246533230955171806483996451321243967143871292209304472618163463504393941740882780776051742380746476670520159110356600906934787692582751591291794949556837350100603719694334314560532671818914832305137416008271237169558128178585453938287886447586924642723097060396465108440923316147767855922183183609950633752105836414428809082229580324109970240644653116095336239131062980289744981346915693415378104723630666810997911799037505798058443345437508180654181860755157580316149635413161386626439215975756434241288261178954941086769921314016346420211895863866067227476066678811130651758639676964442478404191307492880702114212024221565340115814890932212350311533055373705481419663080728791168475601770898176833326861313416200014069672587620374649367097295422307992599374434235386571294486783850316853583337490517480930885780078601853460170171630232677306901279822072723159283168553647369832175635882096567500915228359109208440291553740676436977607315778111033046740645912138847866897596146421720200334821883761248199503205921835357147004008385821543747708642391048436551147797725475783148273857962265641291351968108231847439760254701278106952211591625554544876155898095531270593619651316217696692694161662037859607207356249744011263211231951014754301122298215872019193285132692152728336988105787922361562610522313039617076684282034148788691332740397245246097419167545299231586348739400935082679316188694903799782457677102464650715489848863580775764152747220136609023471814248549969714591288400911608572794173053598645973119841623280906798348013713247338648114992246316143945602197865048760540188146352988509047252324510652866312670853667571215620590006273665589715057523866099361874218664254638578523066110414368729391461642874613588242751221746220262309973596757935963413557403805310918584963986817327508572265641197934493178312254651931862841682721589647465121032983756913530828309712599091094929586794985450869884972836972419142059468907626906912006363122277487041879190583921072174115869511416693558273045693686513240359920606051505788641082232531359836113114668050593038249596095619059603087339875235784093479127482865006212043820344256585163239525161570267984091213032843192472725288065381708026842468903156173636563482255462155814415240729469705865905412267537097896530121884488006377260063704336250447110764954310184313892122238432459882446435602336939900981653111765924342614860015765529213524496805554496443787400365852766273796157712680478036983320569484420779894882221872455824383754343306466348779039146793704043732126760547373304867517322388277007853491723815913990281882663366555915053607037816821117098935006779088319495748751674133890807561178532779805715404989366545391620623165793173675172995432009137772938749458950597838344635018556341267983308563375533471270432355277719876066980502193619604327654275615678677155058675451742767455538738602193302642069518804027722010438296923525779421196967986199185666653035038752639073536476090589439576262483528801791631812273974537585643068676400158008832943489695538838373499985139203383247418995792040273142221394685194068319660856234334860850578352561555525408511637978622064395317923350699279454291828466709765734505140221020704157966639580367616659022005755077198027451162478494371155735011092231180200900771653892257307094998528498617309735056220198774146863230678328912083455231091312484618714259519414405538682579313621239979181425646849947180689917331653481344623299375293848651444519758450560698544655284719719353721006456228469477485420264235884347832368073887990123310045593339019051328101410062715775943915328451770683903899275425298569315741100103195910354974625676837762944480557750877018735242153830583799713522657575236398171430213180467578488353443475276245795499880671375817862805388429992318510010366415145094806262056343136831635992876129312563259293963646803969176247660196713652021079117154682822573195279016017286343140785171560061828821918835575877937609905827155329130223521211742090236732153517292259177073559223376011157552480699775514063096952675691038591112725791305718780598742290203192229670944491066643689199304462189881696971298672804507318122387315410254135907262915593946754160503234126411826470253316864837833860696067836491820532934659005902040202014935505231219073593469368119843059722395420655740493542496897251965802969023280164155136288184730958918046255612315942732341539468248010968082659671197023066852119149474699206047061618553842111684394395963796770440798587400993414826905115899185801172814317932518704032140847136917718126849375997337517066329601723899562395055658970027152970978900394414240293822634384911674131935370378726619777596135040215788884098912360619169254025184836914499827924980111817212241380167736581701320498686981804063976882402726859338628577402231376837388563815896910552905541267088833400507326995433551031597736979138277783352575392456914777488237498747385241328167001704126994356890547642597018640029150153595073025151639992492505948961917805008943034441153338129755615876639138923732226402458054470761297296646172240960314273700500551612971580624411863468037758191241920566127354420190526657843452835243890218763216427712049054034140876713944078503724125606429713540355756780292398090362771096091483039644490976174160584580101242141938688791207896292223274176524214926937290931658570737117391052581790181255963055471020967786655079357877392636213745731648933599631216059352321397437597202834138143479094450820041090229812644596114577722863654227949585398206319558248230455936846411680296284760981202389805987593823683928216395135400054887993667950928959758148915903784200772414707475869197789853759048943993377454248749075096895948603744853814570740348023897873152991699927123466714683496891998469221379434939894534878257306842712019724254298345722473025915108649810497502260276652245970451333129101337812307995255684986934935576564078371840700627884565060969144175491726112963679467998155364495059492581641666945526405418700382400827651568412380142459829931998285464984843099881373629221814191144026883898984352939832239513030236679285513881210764665599433201008499528591576233678493148890117724591353771444173646176034260602353149207674820926440557676138954997043014737948756889622574970187725410375293548728827575174748764671771575429828821463387034056847707711984715891948505580252929062045064597091979970998473992317613040687808116233885071995726679201985270952416768464909045693922735447310676876994954023227102399151636134249203045694492595950874526197917209242259497935558731421195519584913688222688406727439703885440763841861916273552126661617974474888487335643411341960819384501511065929188981705568686687930425644272504727083139115437592666769630542793240354030131886541404938565695697516907070082890998275246738987475452861406846795533580223025220517749497609206126206736808576539970474334717134342769202451561723741242710783080179088816614138404589076055880266838504963241658613705334373417717445308219187237789417726564231802679480272038248585190491766994231679694830593691959028154477110627478773710538290278943319672972077407434119599670156308397700338231068056095907815754599962605363953381622255658219299760108078449293011209490626500020016328430881836210709266693430416763959482263116189027957909943501068791027677420734275702127470975975163511162510161899540854242112003521506891778754723681504689379907594473192315231736996067973231254014506897773536728300510523376620404493345623601609109231266400793278272273249261543915013362746566692309754147656980810027163072034505149186307744751289038295497898510340329726497232876367103798872240874273390159267838601664584933782484472219976371211260318084830924620925045211124483979895287382250825540554558383915040515234494492238744543020697525780358763455581436083003726743019481537010241837014348800511719427465355666538378858301721572175806934095132672452991713925815202813647427176287114243797878221920174564561385037838115418487852553145053534523340151602182203301198385228403088387437386444306575421960572627479207787034200677431879553929345422076597817515016786944717175404764854264521610215750880690150439301782386187528850915210519374188051386491466056234311658979260496387458128581879881280712719035198968489156866429849919477045184943967183342241759813234688318291900904302457508163230725253001767824133681350181447779553821456018626349079838754713267501472133856041522281664202216356244174680339975795851751579457653645221505335209982302580688357742403657437620483097249650407525605776054870278529162804570163153960760927488840749487024397919145247929241985026428020752947254844772955641852924123240816741776601626288806894750658698596866675919481717219456041361519502987099517958932921015746750554597746302505172299155067220548698123078316386752393963875371035414847133138524138443487847348351190361061583112904755555390131057682777795235398712197723481674990792494693696772346466028449492777666155840198780233619730666427024479775967464231460157585060993079944940783353996223480572154023365309366977998181255539618481225716166604920786355334907768589366709625847249814740762434872128798765800604571346449418787980943166572802621860992989881704270505693983689995352956573208913365721992736096728809661968410831663891018787229254353845819782579307605709436417225052138318659800004590472473235824195161867337136004986859978173640790244701316033434178115580359084385894372739174289143890162878673665190735611595967106725847313011934051515878786849742822150960507003577516391294552721794634096490210332264444631164715642510408433796439511777354386859173674235066662955469020219151568524901763774629467428434249829573497832319626518045659282430830594840365981439079126384597212683508916990218677295542537293409204487184426297477905044549591454413662787922902797220366467827119976569882881159539224770197506696497828646230043277074231508717698166668873548960292614071436948578031848163582465409534722326085799642665798471801017174805010811940596847883018467054821534065508506860512638352107677185236411872106455222539252775164874104980477931139983112772290773266456132005781993938210979266175211969009055867485583645668366952346882242893452426513334150279766468773354391891267642393112252937082253438454547595501003715718217627603323980198469176884567816949108471529407753514931643528100224319466842813927863942340332663444679481396826538574764159780559354267865470359832484086378163537374211570629950997626301141121880908687986091757073731922197353189144133505264287351877883492325242274163560322927118676093324471393194300670207400426260893405241120944323213302947339138543164820071753849866365185882118328596116772918408602664743163348466142755395823993567869806176446254354082345084990976767507751789090891559189796058553268811029772828012195023580974405003594042928856005282658740204185414934758626961250037909400552700440536808023157776477715890016989074055299478854564772694885537836405029783223000428392756432074521625065372751670985936224395288828225128077778832239302743681886025261666070618936494608637480277820197802653462154855068917873422685011389966259701154451094539253591996100430940937346434549961320780050067075375204281797524612254933324031291072602987448463231768618512923989143312415289848924826287881337888818217623808990862611859953958760541280888140630716352406792842125345290063252302211243862450986608017411602116824168243102518264170605369176925241148147207747338951208762934031238330996836086660959628837612079205166313288916290666941779874757718465832297291770418439059088240903923415864886400195169009459514160141022369216843108618580962811012252255430380733323710644647570841395851573296905502299402551606297388593643329486152156021078014324709322512492780159714267008856862696822090454204199032698781258617980334146806151279046719646576114042163170704888460943907517804630539455157449873061663633888579753216573781487651022691219378106221044974060843894504791200042077875210359406414126517180316388636883470112948404330466495324387108157214502491393078454325926777648275996219329579848399849840203447096656134786679573110703963790422147590481767088603177556608325603753790900209214727100700958694140752074442515433747730897093998526332294186310944257494990719132488053222159203446851348025848202777001247578744114903173734728546378780126864686331567149311282378618596822014618426139384287921607075606746439848540527600581678669546527948424001451341972302308773714557273516810312467690479567239251755451142228073709523238344585394116312377114607967788835824899207206433500669015597317223394302517684544174326750156227995666160768228791222995761912240281592313170388729619157774368300261077896238521999205328504314837129965727097806078816701781526994748808118358421000476385245936625246000422266235144292373161816241192830311008845514174995465923214018522431139385751984589370502612733663801225127234986760423370900859914457373192696192205322164996503807562870092134170398479691432429906912796752595792677443265020457565077919809247805303800957416642546662959018633041105097944654767948398123026855106221567810553688667374026125213415444085845922220010127402034665006828856433015238682493929669435104496875439627891656991380813408114255941771054243355132324883400628148391257597839479515064104928772624192903732163535918569799033536154080696590838351116189992129774299042070837246654551546953794245820107877820491529227823717662857966268242393103680539894212679804235707193918392305666531527199805314114632820631654367498851328671469985145587743873955076926659347523269737910810371439702593493890716085481615315882915073480835435427332630788735169656843931835927886848311912772705889010823434963061897007389483655489476786760423712509102162208069762005742988827175048620048102966438270462424078318152839240313603132541694459460542864687960566541406005368768831286556166971450458836788317598540758595130177118801441713266496755592580332336073778068626878677552909016461071556346725222559677051649658706793534835199165119960605480087949012689720219051310271289619712898144007051633696963668108306190955255699641296933551550973079841503898453832018521839076226775960860865972369473513624312005517278888728069274565744802719360856911385455571407987957887615722379718481528650935991930259336274941217183138797950477181317865794819638741950131685361683880399676976535422477090222798736813037156392413260725466471723707713320773528742047334304015158224660098914054253358265318745111074884725186690120926451238777392275311129915494209844425661234052876094317735470658404908703195833285529963711293947391461882388555055257074639138287351994696740411722111941969045327735054813756310363738433872873339892241957475456685522976009868742076629977620724900276750364305814961569509103850923785423060613806625831916846210956368415484835041076555867535901405239339964600722750605569201921146795269652210865723835120556295628366139930395824965425420278523167611927266022970474429576287117308487711791312382442869515147826475456513891684355539296029736441458754159629811204930882178125077015835940156222801344115715026778897197959684811667938390327878860366716189679679118917905501690846351855784451992257186168202467075601043532301437832864446871109746615383846915993558965050085038168454982268009930042199051984288610287439655564359644786739820269577676969992595209363524541974181873920486830803281576797976359720899546515372898617295266683881441037517901890883354218743219128199659966264790646892534051559572758144665319196940080197591209225539346998652745522061254491989906668438498831406780085002276483217963188264687195899713628778316468116582423311030310915650554843589601819272200094692259778588683195959898869124525899576933813321938205812625429014297171603960623066751626069950218886268768831405340432705206444202318487403788116321408103448935039015948193297632537922433384726218620614690487182190180317800924789753053802338919139307878416861028374850479714754707365373663551012989265592049981895739630938075851554953344018103944502205329412543280806843636710878912238313487898418275915822983530531316724760895779108253877786257522302182507999722637132239088867373602832045013988645252438113454689844492546062672952690059601640658175385069107039681786189246483502804876746869464881084419760754058139192529520965083570721510702085929665671721429733112432349226716299993895154477887273424182477050832603362085179037947688690917649237287530505665989433866158020121720345908654561037859845339296239930509070608727264302901374600341199167677570550916659805407129270414401297522705152520577549417305667965532519026495159560288259374260315479073079878960449507730987196470557290583688948038433221441329136551045047429530895398978384133686049296014213916652990044587868515393769546272348144420552667244105921558521843432757994425807042251359701641711882606281272628571947260510745022490569098973889645630175099521585235777542999416556580702619325952755118266999425268506214587113817372900711512200975710881338044831974853815997379787494010434057266982539878183511675956381907045290452581490929681884206780990225682590083684194362401271942116142844691277030096289695429435029968488547747021577922396079145584668858187317947843186137349283100832723357187612984186358766435188495767646083837732775058639218326078379961872913992690331907579476182157161512610662722927112359157095612855852314580272861283300536711852218826678504549952522857238022279728286214135534077225152710770835178396844897431761455241109103418914222168387874433667155046625662804140231947403125112102622603586422377759728163365189778475885488098496595983928257613418773268601816619665465468427606394964469174550021423242075393416858576365643435095219581289151745871005993108067445929773140111249797499233460700181088279951552377342967339199042940732164610089397074762211531863943880802732795424126633421676755672802491728545596051242618391776201097001172692876136701757544672794094345612228630203252848962619581215474946088822293808084492734930803986726888900979653503999054997443556291134322047758242953241817664721291613404234719370207155043950977696713548603033528124598560800509304454743379102435866511444183034387540336241236251762270654960596728563640274987388284163525346460759491377768219905929958329664594339181349144143024256614740472195744292237877294613427474966095463541906548339755139494349711430503342190197520935593140799006053813629447725019905759147159111949599250783307833578943299000942859664107565583358706779014320118205179063334015258710089686425708187614320611141938465753713136859597902353923382523824550837001952003825882914571777504254789106864684725996831087831547911530725712445485588168943168296399615192565103570338272205244498356470573853232418507427506938440524508657024764185449559914086411753415337366863256122993516846541067331627528164729831589954744406402134872016389436091414346269414197571981121727652860738384519455174107470855835961559955670227801926811120366444016493927615600210443709912316920457810235000850943478930339634456453150112775881170050596880847553193760120110087483927823448787927720401968785687325575064567919659837801791439506400916271782216423761701509321128316945868248721646573682245337930770438281811880664587719905003631257205322320751476556183960463468946189028106608199187171331252492916324673569289865834517909864632851284307723738209990576904463847421451362823032184434317718153291940365577588558749735973640040463808105725762623254442924064381257311221946672966447109876679739092240875341918647410987304762987567409319199617681128276043981651122523260533000621789956271563697654379067986789596496927230129271876575959041394811747441772403458633455099100102649667144931927808946147490212623941304121487762196360097225791230155117117478808142536544793888238226701691799140301809137171941372851164040401132535726492405526316832335437957728305903445037567357052509942383644071582048206109991140357088464268055183613196401246335708351365642091328103217242105519172671387834991183987901493557191503878204365239133785977525975773627508270764267107789321066018065012773125840157777418010035639250604110785120347959808657415597038858191972943293419095740276319831156657930242285083638354892631085804503997628376545726723602385238669224147250303084615454128642812523820481272875556061602708533463374491750988329713760091507198385983200985009262455025003494059583010903394597428421031275140159595511821399571873351619792558543122222912976137703842461687108515497400210175546565457419784495347431996428665303793672917913729839824046049946327949748662464147051846731382430898430667107576276172182226357168401823413160990534460095761562571612421808352994369294466582108315738999407122499921890374194719487601954909152713675437428468627924401956769464901281718892356095784018206559546371085777184066668237575658015264311838605961979632857088598516952102847474039392603666990265839651156888408633002161226665944744931550399834353753296422098036957419125744483723327807370340163428403760869498760889894942335260608873570450412110592571229901778614433791383536182682086402152234475733332767063652838533493090226271100425364930353098427784816553972573103339005079164052982087981757303775057983280855408877260526307816684850094342025641104662859760793381937319279152838203313191651886832489597241289191549435926614803863209201676153519731032357227315845981752283863365663091658309337632682443177848925100999076627814618433534534427122183227493956336581605261335725888520116487560165824516158711295421014254998287541165419659223377791706668705725107650371842384549083567498521892213979894118290474137812906647493938857808933110698903811491537099149800482049674845497187573738403119600703854587984526666931011556590206511390029099517179753619047093234429911140398444508133104407973189546568968973221365350467396309350869153266765494781560306874903284316771677776211029754388045234021341820059706575065580277387292328204419234344362277594106250106801332328980853464418225243895869185496293982246490049258481133791768261390635153967338516363005139136206844091546548469706087296179657454965156528860709024434993270199140407784008148863613944076837144417224747216439480358109039249407318303308657111583915959381497620597583144817859779833932180807622419772762846706686474932783324733966407902557637875474793103513732144714962782510667264069611477705973799232257996225808705181356726076665605898111143127441947134185300002403498658763196715944878873536487158278635586813702071909211319494148283250772429195136544912622031375657710911558857930096878923944627563150712703583326097612461978022377490509826992037905578463876825396261776710616068952952831812115061874401033540104524379430814507962388073349957405064064426579495654439738604619869797073393607070909370465293961585859279030626487231581076441962787785032904266294885133141545014522776277596100414518569923805652801770267041839601522210124989744242332570847506427902908676858839118240204885173405879824107748213772810339794908823356021524557813438597921540356120864417199032364273798835461052224375778252921283974754479903415165684814328483022911106449313925077336179343995130160926135059553471494687170023003734715845932659996257136046825823941665652517773736622137907555105534386212930613688496670815404770705591459604734084455769399715239745512889441738105502614503054701202137750118546813237047089637690097885281016714692158142350805233585316870171630597861704223533597363632270169046186483116566227166808769006315190259897891818312122735218417243077392869431130981481582611599016251020409497374122828614084045733985990529836891173642326217268589000918058086381316469963775108170721709861239626348777457397436112957721193113393487809044331717472707698413536885672540832377422402722364429026288663927179106966790480652578993488587521121984339842248187417569460827465234169011762216450380810525824803101205349697899133394900088139607933070207659983620105738665332062341379605305686381012192288479073249273056015451970453542442098279941515689634154903209046020442455335206502684851350106801584310771974972898483505733198835281988140486668350938519819632773859602368855143264223552329998118380034698168025800552943843188523982614446683567240384471682831845542511870974719709370953687897728649144273815568727325890328590301697542794816692914999244680891587541025693886309891349016693230035062184555767663876533905594094988782475843545596362707559977989992280112396066254932896025501422915357163732874404581221757206123950398397300532902784810583412746182772254353515361935241570911228667014836486818939210007683729933682547905327833891965808259628824224626573095003202766183402690017039075483389512263531107539656718056598782664006291411171077740420303107076544330309345979412362550062595807229769059025210847323620274826435362143484614358922059163420649333942635317553374879049861725457465747271466290855971847245475652596080681727933874144770217347808192821260206698087537120658735135222678575767815328124079378062434392997342830689270031569387552235566713442736443405540035294458498482945935956895916951972168567514590348102290020821704945644071785898252036439452223625103825858714595802831992576457154228126417382647429892428030363989480268254551948245425055582355637522838077316445418269721009975870999263433700939277254892562507720297765265055938785174232886851341892823463200775359145693298485433542923361279471394058984462773811978780112734659411445711367252660106253078971509059003898214349282290084314224080329393866735099898684897367198547909463202734370060326756079354109102892055780229250181673255214998467442811967023470705743184321372044132428890142347076422701708649743223413758445003189867166688238519927200088093412625393699070244865760442895553487140695768680011751892869990001184343560774176861765892494918198015708813898710221934443636703162225114973293915032616755956140344325608204901810348561420751635689410419445694320883717645358856306058736651147819700252123195287758045331004390246517722860629694320321587172432557297672772762977268055918861018571531653896639039953536074487679879069321741859381151970753971500816868052002379740878542630807897929308296922367254378520390625519053341198876222823663117417050205902873270533599661015046672035462807936667566853971501008834664231032235359360492171516832621349650562566021945683976839123711919783582758501334268006719231000658367219959442886581676461243839549056890892536331727740084379635203090937918632740309914591624015464304170889403888936194207546687982268289568243751371970334335872631583966748669518439458151772087004086544185527784208517664360298423445929485645268520329131800728750201099866115512370086431372431354434970784378810200628841144881631227680013652807324276034718203542034370187477284799464481183956876614547791463997668797968279647836752402375088312379479721533967633790486988485380679680554953218345977614404760361618718119711816100010176945883714963040782659500078005029169345157964336715951550094681176296963081439043723473407512201826895573862047286664908767962436816082939102124422568163325932743360906257547686952741880110158229174115565573828650114012256825511429890620127440643318651922355595795503022095748903938589834519432001356079878896131619840964610209494742571130160246592514034795178832772662527688527798440506456176554151793595503798694305796508532297477285980255886177128452872464029146573802629242447799756243861980829633059988490105462684991706423919546257583427847725054057112594637094698743026027804296404878967460435090511487114655558521087178082703224030087794809267919486110679456367443170497458106014315356045617107315917737960952149426270306437005009078665502324830379527969983802730589504982843965480731252523894289015860971903571819189831393780436734838831069642564034318263272417032124372548739854737038759299801035806781083777981148834807788091162065717061630272005239254457557499556475608379371504796316777760144051528139201004746598816453316782421297572105163255324615897452196470503982735206911611328843846491600093224942967759977740729794966165613957349692850231561940574743561105768841954047219849038861030339299476169425576960661948415282250977647621574065294616821533436487442000329393885428912334585833532047313012037322875350205281677150062977003793779462406658878962769232050177993799763598515602699389281005313783863336663887162566378210890365037702752069187900208406413719901101340373458481887212497198838423221978963298444154933571011851184404694502687597617041722626240008281325348008038795254107799884494889177787786019967506345479127958979588881683341352905040605695959540081752798681167556137947193825615185607996736450160312848772416432100668178496017778749087721862978649568508026994708840216172349936680154842757817437638256608614572201630318070408991639871219746983586056571384272601814209666387110258907854603494596211313470628853259567237856884264065422071746973489481020108565289414536982773778740271873267509238844856465560750429275588141362055703722659873300759669868416022501972750059758553215701141360470727374623737812942662269761840070973986430175651828220975534561303633254969050795227303899945235015536423737633205855702068333701573311317177235723336516439336266973104103549597558042742672143723670697759434760909925127039402535976455980527781858481676465753059407061152082947925169409993187582878035251844207185904767901582029275724705403206476299831276832746059523609287697103080751108377789117162519044980841439595483495379809088871459319999090231038529090181169135859570043917914747298459193552179554271228026592922912177473303505716473940890836479737592730694735891127796741509776769167320306065565500027369959134902905730121858422916031662692621251193150655873425770516286178704399533700241717116926800521425313341753361442016645377526233151194648253242812996538143139416811911204303574147494602279722209638919547807351504191578054347084243330446623686775224008148936615549995940877909308218754351013297419477636803321058938474945684809263916520784916060727385551302106587432180749802793508790387185166330484535477105379919843901587312640389669361806921357393546618383280743603601418334051843585427918375405813222309417268760224459973479386636168457478578073748278746662208459099341672505529441162936941025800781100988749655663408853591405209687807337723060904226536360499925737515629245701162784630241396675600398485686942314026650823858206475670876900042398932521475999992442587451203155909097341316188763756731346852750960754860696270246453923350357959645362177277097780886684023901859440909030055106504251362004856050046158716385888152773146310315527541039815083830102948383107251151716259716368563910360469871959414741053138860786199671707312034041395073795323617540297211211154036663709725743025947613465616451720899767602558802956355109919497039325645161422245095732076782764279215494864539848042252889050549606923891060013535713883532649508239778251768101248930376375638244725070646877584376349405923801787924119609071059659333315678098891761879119593744933077486266285624250982266264024070105009601492850116842593701731691769445806715300698232832765340674766206733923910621368051247358922276682257321320421081238869451426236655600336968758307660578093451575363338057459329308697375314169581898456442256880842248540340653585291162235967327426355214299768898816179586254784322147871560162845543415100087737211558847795875042704586640763329454969266857393359552944887857463919291502430514481041808777389486239404396414095086882749855843755269789953556280187585932402404457020512235811559912669708179759850415097066624280241508317454066058280227091837619960611596492967634830194699274555444270485294080388292102102297953807177144444350535571436255596773283720666320074639094043417349262810418288679712573260735533657089526634820135461452605374903509307937811470786423031940816780535067397672007142098756812337721619659400350629764169768400972885919336945171877564093311077788012429591854210191203645022444463118847434410279417193408411851643081421638507252418574281751522470092929444591070398031850211189535675227300679680954556288087601523613392342586323234026487728742108601085711251418657665029218861586692519308319791900853898200950244882540588994942335023215165092358741104828093683048255983165368020901114565381017874620728311578767424628008016945889955920440633361773617486804138976904628698177013973287108502261905043862844327830986801150452214367473493139116597634968396033010024648064259258798886568043839801843608839288678632990793440132064734801376456136596100647741315896784621207372219424410239449115905410482137546883805998953319062308020864726881897807546624062248675730845840796441376379919221526457653755705593155316813603444130497673924449783949795688598308887792066473664714110374504877024374601489290041069025489617718858292285519322752345245312449302822918084993773341087836045284287963175604836400605461676742214446034545913439039210179767997212902561207274510218100092280433940854876642090482951261405068369530188136194950259218035863779250105815169990757465691882714065711150187061095870146167733256146447286053901197717979145465926734783097653759164999721547318044576743261261195090316652689650919389200739039270329032131686125132735552446157060126247534917755844673749090174149694439359650551860211817639810766639664029203167306224936540436993402443101901187642698834526256292802994739300223287387419447688135025278854773578801198197549367162048447479466003237540026095531617174978948900503665989443287006657292951961918741890178185959270816842058256057966443563626729268324309187073357937635835643481532632799776876919881596685079531674059035615465472009346741275451074566097896750436740919560140771938635243999632955987982741401486969167599831816751195081186161275475634675138430734818347290206623067641499526685630531522754371604069068010962322269435468813866328390057267338644221948035844016247218388978632786658649795433295124061079432171118355036937471016788766856822427916008401932749817419206859050542127466533103434118531101734962754327176455403286221451345524476337246692532755452559054614112180526044610465931187863032720114678057476337612227225423330046473346979788343129055082451703461331547212373468048531525084443304101111299728626953358407934467704003318793067104373585486371403519064970344043278852827688881740484068246835681288899551920926656740713949197799500279262781166506757618297568725244040509827440967134691607136839265207621216387317509302299259537752884474735889783738300807933626196614459213948109749258329057307153661366691351847604125168444886896135146758392407262892329673589711273409881784584951505610794047532262503745086229668058246513492427913883189981430900591185178565920608028527471300358884531747592391802505042107847073666130930106748297525770682954614207609676548996667840943333346234524904991876255118266330091740400067842242836713429081517460966546220374001010358099491320084205607014692730338760341235955307667889229197810935909513723574835876068968688273766589384928906782534974738031730647955066575603148612654140612269804634825490306612320550876363505879743640300975525060123477982243508427720496497018646096068159153498900273940510448037092583317119465296674666974437932639735483442991627832474139924441789227178455561601249616089322764918640292410594549876346979168780974733920720723535962377226098247153125499993029649710157789907288768568603541866728888406302536513056980095161598531733026477808412966894702822119676540746183128253542268566283603196515831444830924661814267188772915521130585404228169906547970394746744940536548531722321381225853794138687110071535977086946437686697198480811239241162046422694140676221873856896008032868150339617761621941905905261870286020093372603217367540190497784000485377553876702772126789495584450434651607542094663239138543836268331919853390248417068442372191982042639945453497458667648723883468976144964652179868201933202480461594103696297819644868621325866058215418725807884806547954377157274900753641258181894114563196006001344878686605717933457838726526761811319355549426059399943026901002418995757608609709765302906784634518620987328151828915460249883509188675490049139313086439064155543223155076404332809231672115533478464120403719886621694224207468890103547559728751290635441480299754491425623976316699351371198390274085288406232344438053995776750060566079979857954297506248305192717069055319050139721939780103922892326977010792114452180293965756009451959715537784279101880721755715146740173713966787744113540950992566923034960589245798807097281227725448011132278354168389873508668182359882155397311791421404329617943422682976118116061189462728792970384959263083869441777708747945333808293159844989811437339078049093230411766142102960492719060454070638242952770645811042725644071933472013712004079812990547609008745487282699717977102289120689152100766260648700828257417418937855841460900481036660405888007508362392269365785538918382063212740173989625377611512871426226435443944208845161376002167630745950411524981249710758096298053942429832814355399406747884069807930028689443409490645994394773165568511680871189081498494509539791165908119880117410471945758096133488195179133080016430464705496914093804464754872519925469774124125314987644859960902525017271074621374713980199794012378777055620367502907148201343738109946859012593043861244169052198914756556625999392238178788289127939204980163717507360426755739242223625077199092072084572143883489461641218779103243152245893487305716029488034126779917103733931154465330073632676150955001850129653819219840440072271521263852519845354546006942068991757219095589468267694013832880670530530997335745207220485449275346515074746444395207764408562564471471162503557474939992159133419377804488914900355097181771391354908105672226459712074995235943827700465307610197061243756158952036910328964775262575733527396645105566394637601065119995745170525958013231566252654978657575112742591868142857580793712118166211988342854276667014120279032485075378020112726728702929338147738793818733501237519629782737729679888988374356859815588924604519611212164299165597848365620968757071471499660884215088722180022220080975187760801311106832111705592138929015063205603837168760787423400779915141066640164895157309877343322106790789350913146579619212442729117287474007305765538895419035607145883199741364651921924286540022516705072181232833787846894864735356761923671733302000014264871102221806708152601233800140175928214999457573436938641970041777279838749086410156413142757344558481285989778223426330413021037614039129662880905858428215306052445800714902274196528980815772725087265849061134073477261394049626062781128069254266007756731356109915749220437258423376806657393664097352722517964882791869340672476700673128729743440901419280143361248552456807416306179517878553518282957824751043355019919784565822699738883797042432015940873498486045330069245270715891880151190783455325106795057095645335625731505750362368915894576708922908042975120267260813417613500662340724553102551626920855668431525653498067538788641569919019844735178994754478831983242857878292303423538943128365490164152041572103966429408381244413161159139792728934011886481365651557508406137484553800832508936557553828268685337505775161132961970857196582188542568581843995134520761303046314868790811216383899741785283086892740807229335229772705503079421752495915336279975613408018814029478535896675892802095781565528206007801607547605723036058138753989494437000493519390558224315586576470395268340546090074834646595038013820436035712364907456664139088699651107698330560412145077383115542261902141207962218836559591076723668531588130828634786911165201764948143475443613853815010664772565839360299058975395018153305456360286843953848937106468683492392957017377271510502658272846296268085899514416598281368354430691501430195694701528702030397158036140582324187393659949806296653291592079504947510037094085039146002125791711377831966718230779262446491529571294474835442004712477487568455833934255304310760571621587948362447708295308508799356177950330258053019701804290188841467962371568473938281621133264708009257098616782994363428046489346755525625893842253076366085698066754546821828812204696668891850487145042306362288782740927777367084716060504076412508307894424975151151943540607971839018551628808091529395624325653268263871870918402036966458319283418660524446246292562341182601044952268942848202563404450133051706756366616962532006339108838307561719137334816492425008042134642008549696581853423853489822479738573228204392905441979479240457416439483074754332326682838635683627244583960656350597680788722882124716574552688823097765062674072808705390235942307968148378750840056148071056826109198507974969455170245191254392970811084210075492127372306487990359063496120617092859347849001460310044497208790660268004099510403195490763972687603277522912038243291269604653420399346380914836770027143056320094887685861998038624912902226806749257233558026673515343280336252733517870186813561355001444948140384099319061683059463868005487209119046291613119321187908595692747398330930428721678408013450780736231004901793065761258561135831887396747407306685903024679164218258482704668647763262287864300476695178101688733817257269379690362356971797990980907652352934947187941171848955813260697422069049169489420865837452817214769372835104074577045039990675446673355356459495012909650569798547763549861160093876579218795447603919113835990937656836089331017400280412668150918911495060247542408785134892819583212376948657447432659638342897823567216688016810881191568996005380241896484033311419330504672325745585765286953965768482556491559695154157691648831520664725391558388127551642978133534779974283152343126796214752427040608308472012183442542570479476578904779179906811747976915993966198726451969715581341079570634883361018250109514473571843206925928501900133859772760537191146422282614670715500931733053562962875385233446920589415161669830910111954426798990898201936712953858069243425737611388236358757253537131541214251573075713598904519968931541882366344551899954334085118471703860398716428380235285749590835621187424119911624416132284245425881931086599868189898328809460845008058941539743003913672540084097302539099251698319841171714222165622504984348109606297007948647397235440084665263741019753159031608373590574070603566536054235264842869678694773497467971893709544977321377257208080774038831790571057346365314640370649438785763552167283244724432594308062122497041282176811696804676613201079880503478894627758555786209906560849489924625121501229771518885440025226059892241498687266740125261457392217795567967143126652022462156224118120668220778697630762899965048624835438312740510918838558230133961646007682398812684078022160062570753831999198200669691322450936528488601439523974767683381711559240461796397847895959924113765543496725889587151052449069855484513267919443485713964677328070451750470477181573652596043165139235152104878407648561123707066450462822022576401075840457436849196399808957117375984307551805850840039880834349058197246550068813233673755014533694711071165485210383547477795049926772092319121161159544335362638443643359833466633665949871131449423024281701355051110133403573247857571382007429079675358437303527954827601824158356711781398834235437137132885540865476030038970988635909162831336979335943040050533254793377359443833244787649379224013056688787269018221956231802560851037974888044704765461581308767521320932812782469730053933785158134256883059588556201017259165014029287241972753370760605680710271850389922121277160032851216111563599834681743355698300342871042245171994366759420302813745354515449827083593481861910607182398644470709330412938467725028951535100323897280819484781628786949868325828929106261116066672925931648081209919050520354740532726487747449774722350865365021948726017360446850929960146825815352210922283663439385165972134300415809259965892831661900969185163377551303225250121924080426856499292089966815499474828193404087538630077442360032895455681679749674114414053112071763386904739905774834233836428283865230522165946322448726919764151926768142280906996532634040599445762905815232307964167742651843669328971134432644294706255794691709538027241955983898149564488992648004015972571329678821883323780909726475724632513447806556323029933450223688719643851495225282264473356820603884806849003643603078535146978723683196594569785148312699239435888489320902395815379808898327990584627588161872405130378999000941121657018340252262280475748709324218246764543914926684606031619275433962291273527820270635000193678655323002758941631505605676546318653491133918695065259145599024717854067423703137155636491826311036479217282957722918205973939144566379619269570813438841925371662107056719293770289351495196132256678351167034388512956528468537686001676459658150806027175792898459234791234944914069865301065838935882080961834557087919298660919878827835467127594618290220207830335485153080821196497935409767659292768727538298035449656054239592016361007276586396676693633440349751054649470265955846798441597777020614454050316384369208071516872382034411290166963648164159397327009556683944681328463461135327582388536578014386653187537856080392251450128367608525312734767606800268805656333406352340345715583974957497316114508660411111295280148585679818586627464160434369068740395355550092643906362041220690764970872048354586752441266840768635132304880444025092840357867252210207313442499795830267582141601247252726926825179257424857785046178483644837694426107234942810876635734996726551578432387044045956102726192157354368748344579319707006513373949023903262923130505612715535142013072238934849216119917502863401144463430732128005502999431111093716273698917986993446412393944077550635419290674966054271760985667788712888708152358297802009533566192379400651233694680709948070561907660407235331379038939996219952695432421274078918202129752804241480498534025626370228548964645194908263098332949288541990183846669051944212811050574023624459214544595070447572953938302261269145114819360176811074304851484162713133623577700639657522264873624340781827556688814828836066324757537102961768063372561354284464912727362269695809273775805174613704620849211622331131345241557667465911099234689898186432183727671882359209847295751274016171956972042418232193654682848200675470181939901785690969909684423729903056060780842897706780509161601123435728272435492017082071669736925823542705549966376117807526780654518661241589888800409355414294542164097032089487433873429509021296267375699671262390733666052350141017308847411315387157754309490971134084902754645428118920799779073047560801429702941617549941790103644478768078944833883240240911808431665640237554701297332308677471707813895899603220144171644077781830390193427992600286392786245307631659751211310202875553124887775609379885877338804000969622860819502021330951013071027915208516515805798213709601076535539852031654188506066510732478909228909150057695040652257785599821322375411988664311997853977772774996184619507636699795989266300899651356007892986399807442866597433547462506133124034089071797154419011551576393208843387955173247039796854421573578745588551140657397533847456473832250367210281246453673879043071327626791737222521376774946514864464288173645412162739448282071402395846940701573293688970852846469595779549045998553294162833104695698821143966596337394129246018776680653687702789279518729682009945874718101735738127996418315845974830162526166613582227865941327737338383116444026840333215420588633145045613487232395431468422131938603386220799559200219213835111452861226291692342690124370190605589781932629705274335822797484135904520611155266599260897816554421304606246910738111394545757583412209513070955517727368362387027571844113546567929227332326140938253003302189031535739984868841161392102689016240904582122773071671165369152039400606988654218829283514675343717118103160082753835916970987934748205639599146677009454024536260064702749967650858577676788084614821088643727584592613164442606020826918268517936097153784749331383496595770589783189463177502142600922728682678344308287343178536172512317217700019026889592113383808308121064457291979047139918506859181777150786081230469447873942298730016871344668181500245316791911371419235882039746485336121138482993930240456244759700038614565580406699225736448493769794073981883777537151809463834033261422055750783875378273587369133724435552363000320675805297476488388052679125785083803836360251253984398574907761602685955663791943808049347696013677231351507501822430686137844742915988515150187039391076068250964667412134069862618436770257089578163044854716363777888054163811904788889036349780431897364630617924514610488902019944507957568127680115740797722476264198648298861453166197385983003825825625310738114560128431126024930801350017013039332046691333564618482181457449358220230579774107658416014877441246528593233841711298776902977718985513848651493504181359635892461898356069049198428881094771695843071766797870009870652612760738222906704175496390342857833856217665607175949236234781510766316080680925650340845230979218464424717833166260233735231824286546507520049581022765764297534489873512581048255330977292522057043039832168935041365942792601340852030696197996943319929929520122654350921324821537694835087024869507651068068642175441852274430145411189095818492510844353237275231000426459853792837093685424149131815336205186593875391795589789256371005461916288571320111321931651682126836434751704137118562800667291949163883494294843647354283201183808610144869408151386397349098412190413146211245982977051394850971262502229692827991124276208692844063938793914366472394338810089008128045398153150623924344544295166295177778691614005094802921759032831978817976239987396358688017897173572394407220539197165259177884802543562604765570990482067697360349533174456242775489353797335066653032657473570365838644961296878684896760583554609268496752567136550374692940741979573092058589929095992959768944611546049803576573005892793361327937555332221724237019594233943325897685154084417775958243065540621931587412067855674745068388297888595679517336087035004442320711718939366454870087241262318793136554279020034899422240639967835471616737777751239604964201128663430254415274694305463587112089944131976253867187452018488561655728127790887864942021431518589582752105610526134703973619854090392204317217408926647020090554358529196398268645690212585576560926045869138190264586318061502513800933665314893147730698172301177210549269111807292118541823300640659944023066600324268428714253446249659138491145982399770430270021430970357184407613428069829957071879257062398959625989554585444424881400863639125751233101043001705311079652925166983302166793983324154003302586668183377892246636586270895496525102256033251014266792125358718951675926537741711802757363537811508844693924815822139299901723034251170384196198560861421491885750094162890143081061319982836923866136625010487747389390230425959409797635306980292614586312906350518233853282631107845609916735025262939032410544752262837882203393086382148556442837066482654544518295938822039582781831299569443033347272960117608943160561296106201264592055421929027954598270704509842451477262527423142460670680208155889625094559024981202839147186673461923184925830588311833172946919198131009952127270271225665053454582101455535953770546931158856813501095488685124924102858001622916116896259536811281564317822192074613124431193522830436508136544643831150682089067810190709373892721761760165936500837903841587246228557660929909768752196974320227635306033281707877848745927328312300350987834628092842803631890731793284101102049127476880745797641464455021308172012783456284334662952323866419706098228126115805464793155628124541481845506459633040470504270806972456263074935063500597710064843076383925149802079521391840569131824393075113310077761991491287780581444011881176289952340795604203156492397052268322500577243270818065019594040216383643823461604239717522146471028678646323884009635913580027853909328966355967206265473240824264134062947312109542070342576368700360697877589949356490085262127506249982532572041798661600734858623192198316239975724589752861500674036611489918914992268119324331001818661984579735670582364626637896674425420686424377952146039800283986443861021217439658502285274102023937384951588887112517194278760393966077732695661159582080721927040538044196746632727918139923114883494224560633527808306898710332237482096892852405933713710161115413851564467053228069729184576111642859985151551350167879002034567998914013223165494237822042596434997851065743361939066670047583497650324886168740057618442244770946776619022958401640883042048843820128336046160278948179349735728184191192967980037001636919495620495616209774062906604846696050463227153023498269044520570276970381013993220405013162412979478728820657802288975986886174135349435946583694186918754222525433879565356923029418632691379837448975911163923819846405039897160101598801746326796904540093193011482506814836155533442516330477790008779147961808264047950210515381883578020002779627454392242701763229497272109742332076452527788502021734356946677612325168860337286960888944106314228282323734886632657490852775729966629289182471200679091858039852045796999984770519059812732798607740864159732720981010431557161468168702112277938855600428745653652231022097459000334489195414349663835100212112133533690826267458728827663139013830392969868421549886947913461785741456982782071541983236982699953804017154981200154439486244252230960196840748812022100047976412693270158938490480615595914510672356326631297322219563076236689575928278422166711859548908661579614086578839469720267259836573597688646875820072898940050742441860615418007835852647034149499953400421880508434182753628599238933094516996270980182374640517161258168336174561798308678386658479601747880971468474839137206461201583391976408998110289713983817588127936986687961819242601749503497298737067762485289035567017873575828344919005890820541680746871636592940747578759463162661895238520530469138984204589270489704843349137989032465502818902660860334740257410201431019668744500619099973517757315863386591335954823012344587384681800064631952436552470262667205126256900173720339355810717983512013577688682698267851414346610018964944681269002841523260461955707935409321050709422949431177219766942577945909215011659956689885103251590047405695934075120104974753801765062231543418804997028523867660378674597903678738373594755980739250381153863885360755422599356753495011595561539168956775871905878929638432518925996525518222096244772346154330829030791899438311103079010416653751553045380651660229518415397282077519008692639712021728343615221921044717691410845454556969426364711543021774796422083054870261560124248081748468407406963641827416370361062663657329008376457617185617884423589207576082195855423691715553264012516596236850206830314442666495167288994917070787167165334174265976838152446975473046399379838754603719396163176424294293147795103697831443497754694736547309912029065163189737558346224232715103711195293804580015744226184492902266405043602990950061580768689559085414519761148567642228437837748116931694070506744368956813537241341241939738246589463961528023960815400527035193188738132964147752003622072804679408447092312436269129611551989874270558094505887921193219075950415160762915243672190525454873042268224701488011788101670477380747151736110538831545306353569917662724545765747304468150913184563443096514918267215982605532010682188632280970089528325128580939080019681436178623054072776643686588251716703261172435816522239425634965969163990718771212239659926104842207981664730556051137569926516785383786884438201231785063491021044787167238358301814545358974556469713088071662284328754114726982603647205130733456455038509262232294673905133761772751153959563167211224180257898200593831705560488895552256009967377347355657603464656184064315909339537744719987467311969581024231772560399791337421937818167432536162399458488520941655431577189413884431174025872842139618384790112914083171146734247133715319696627615376915761664520956668401993341446883629366647152493377564432685276462766356660003405524692619980366850519468453024280254209611522646039798948997648591618501218357114492337860867609420481890408439666867678905732060170115917712303212349740813049151484370377934052002627084300401395204512248147289686884894856496511317110677436745211511514150975445803255187095165477046046218854340455251223290908602720509147229723369610961156029088280926759003204703662462198129076069989686080322118694227105396798027342339855466296875831396456764981808401847497571602504025816676814721254408907197126771709247808064853446228116325474947487311894212842288751209778567873129696209988634799761356082869364068912666963699403280360546459619129004808890959348944001374349907758264345805288016208422106035280601350286107524284271060930918566072485547597773549143096466635926457814859950712114996347271929554033908953743763224827475943061890728336059095957277550742349736488999124684119426208997541669776260162719618869446396746677657376104448071632846063475001183505461036245272675895903054296101495329316177256357112529214514785749708421316409419779162514415047951229957479578934616877438200409174761730513072643447536674209671873918084615858375672734580019979093691593667448016448779039813703807899186661722089007331455691360416374526957868484675834766218719112714452782748515020348300867873066034947515001185176324932089865172668637507331348078026560929376745684614620325308868754649465622443889026893225228467131710256594755315553145836068261160847075258472163975013815012514636460961124251838665580439897862875129678168569658728767701786286900706288949441935900843404371297549888831251869616658455406799225708096187304858227226507224040044197372076623047034846245131419674576903971467170163861761076167145504883902891598965983486827538798969199502057929326036532414513044665785788751228290869129858712038826378250127844952510952523372588469891015059420199965125561459708478101270086922015707689604295869755944494746493629986259665929271908156842509073351561801453738117899399058080177850947816137540544249814865940424784912159091138465874441479316656624548765842525208836462029540899742185132676112615898342768769452813917194948479801067103523269113855984856822877793750626948864782425471096092906324651418740943864860042671703737059376795208615884911166545304390342478481326886213759927271736849363219695532707392941654484259964568731628280347699752555227911121939798679420689351397406418149511979770372472543283867499525012951185765758439880897040367074827264843588710790379184458041791906460785552329069099871740752732230395671951799942732407131929522974266882050280810683393684700054571705746942590010644641296571461661698420427791559829519664321040394245577799926720348373880150109294248689313572180844181198851290252833553685170877755414778643168608382260686291676268261314412903291831542906760560050989024335947433947358841267895554984020600453919264070165900537544979971889504385882738424178458778230063820716384256334590913990359445252098110741294210664785918034321951925997666071495824435846103401317221630745119407899040029425285417343444485465108798144679161765510334309703189922043272951831138696580975170097211544888069612130702299887758843493143237289657475569159916521240380131387407559681333512921353316210533547941566083239148084589484404011661390267711788032204896876929316307386109488785518811413826080105398458609475098101149504607694648481029108205638332961503038181918646984833950460386039888273843673586188762888157316701764666782191770226986670532480001362866669468680838913912761453321518517965053198994157185729777415408767252063543516663129021705972805932701340538207482889143887423325864839591806122878592592164125268385912151652988107331911731381499520125608108200327385228326675242764631176810686855518610109583045531767350535271211660502363084701466899377863687187974946809741860873040814386332151639334825860833333787577714431073384007076462691373882168803383824934091473311147322916130872671441696332691171578505927050226828905253046466880713256135488464953164183481184225037131279620236237267724678930235835476624377804390179692312450406229640860235548056758550711187624112477604140650150123729631173805331035038608231633273964152214950007150107456543769704885154620366579533163864650171350379051671355086201046455407479930522566348114854362201453605929881619135323066803318731628623286377909982936982121203822817325407258211870249092546495214414332675538307087200105054183059389951835030703920475898293028401577638883112249269192678366485220822348298247976577280644410081563078234299450310223991373651027427150284117077460486385523730756136670734634549806986109104851409651908691801015890459927313448994516771754995530360105992502677600164424282656195072786027844917607778136768073796782446511135746724766057365129371290904809580717622294508471408043608237925024007959206657534154592520043257311487689952204854414080942584495852436750323693553131732146218371478738317698822433897803642105414083095191233897328917725252363263782318531973136025093686722023092262495691142218211744325213564559854464483556843150422045556453882666835841198851177092573338933674930558612245208220675559226831746663784135251275009365534345343417192693804889425409132561182433573975395085302317562137763530325834958076089225234905114396341938296746523145758622401269615726235876515576428598956534710563045183213045788064213303124715373867998919342466545950309853701439991076759629609568396534796257168140262094431257470744561396839533554206254267210736849764751358259880211132425082923157050926860273086560006835893833902852571942608507382035415274375136209381360787121650133034193593900492428519415510387104020941023703198909682158251894687087630298225008762357041818863081240007637028233265928132511798037728578384104912701521584349616637788443110410300839880094234599470408010245522696368319074968331118514122880151226400394532627466462431647254234022603995607943417989043358163621373559072256222314963312803278555207688448427879549200989961852288775610187520852705996025238096465968858979449719356585689225576792772105615470330568233024620644018220909362370839027390582530689460333024638993123176052173748423894997885412677534139746475917631228797537366127715311359647807722882288578293468133979057656698618550790332996172918215283902937530076572053328816129328445344657283762485242772706554045195637305735817004656815064552159223030817277850523384414553471633397785776430144026307662000865918771996794438452584875827664822792040290869362027100553243183895727101066039688090407977939222776291126943479923315440810353140467170122255685654488768686664487790281680608365489533867261013997663844562702184069476805413260756624184324726347402337657655526932122296161755881795063148877715091805571081461704668958411845942521827891017519306992601804523593269795078707128885058172217872204802316812456658129837060696906931727130737088024367005347645485424277218120207644277425287806489269490211145411175378062304999042443365872763777012437398285794834159196912790482854019811327057311925773480914384554888326556078685692533375943133688789701630948781093412336938944878680589812663014175870573653702833357813891935204426497933193469594677139412734797352296537371581509749333814058114725942264746487646001726459058158069489019397850198359964644604247137551718512336379672318408762714973825386577296126371741714577541737057769858974419750030788498188069285356615551869400299872415585391122003919584113579313152431015625525506604976846543463700893974113293338284958214233856516066622461185249013684869220671390355873836947463974607843308108932838679171148880623777178022753546620654928499639195434351689632542757461037121223819353114909467098662151018121393156958033036684988107695661478510733558731830857758695126550096770759087286082856903533494969435522113080329794739439319701180815798589313079328640391264328843991372170645333093183749116604090745973588329309814036635723568380917600508867600980984289125979931188307249472332065133296000451098620771610151433741524215953415976178283590087741267951286379204763975203561399969233346814715311279304459371273565166840435398222213232742554338889078107816980255989743259588659139361914116528418364556792933845329783601060793364438141369193710619989856006190698734413007076262210971429760740648806294704059140564939849990328506858804812396214987024968113028342657682735675069695455143551046595787059631151720135946464864765866070651859745356467635253942511828219663744697108635348406969021012820191762296989288841708282608709859322268350053744627629433919629368577040488794283364148297031668890540444396699722942179358011029752346138276687424974605927195328167316625576886221363107030072519512328117908301417610822558116741816826733776657318522842060689058503129184513880136686317817651790626734537996655097224299271600779983441399314771741066148260642291021943833845703027244172231007952188478784079893733805666384519438786728661761775986486767864359513912063568528967130077074912265484189559156451204161078503888395370288067553781799457379897115354297614012456847981374489376973535642918366699324740239893806026977640806758508878087981052992262650100384250747249903293695019061433169311045643349489249456183149859364324665038153709387832324603966275748737434006456639419777307483524585099712438570929568275476874367569962385577873820163991165524173955742924370765471039041666122845591507863139552168626858255862732634053929310837962101163068067444039901124437621371221131114471335636600635249352265989228962198537427336933672732212240211958545882264328085215802594864883457861146556352468928468800984107451891033770985671179657636192594395648367343901133198351393515443508221695930197918885135566951665072417706515909339399962902823202900350301220058389289702149112779213816741180222596475241120996706005269720027066511310270690545033675882874365509415526730900427355011667260639126272910367380919137636260523005626095043383008074263067302640465613651797999107695947212910025482235136329552003157142705978777238600420121512034583261095343611231613240287952916870731574806088290953319495861298878506154815304658257634952715534937947250589564511418751609704142395480457139108486175372940170771199825983254436916030012696017939525010249674803630871758132821873911885383269553321150003643870445266121556767552564429189673511765511373742149365180368292023085876232851787103843026496240891759278315397029320756556528962662754337585644791444068458485276366724302916330020518432502133753479042737000202069125722725165808433230120250282990676962031208217975754659009537491171281703760373311678269484629388649057292566008077223179004943885961684530003339953665107682229225629767098474428086201994271281286598569456607271239194517487951672595886743959439896268815595371437344387949775226301298582256354782582890965994600388539926097993598392118295740681320649752867806877806831269225333194424407139647990536177456909400513680975901361904720956192436622094475324826971173427387442710754155441080698587490178936932405855646219424383424296955821346049616577253514905218312730981640250418730461799431499316377873114969540551350677470899601925827714042810813525710324739324238449596399018732361658041452104573437633110909520004852392314049152852374967053692478687949171081453517782208441837441630566426267381847536104470033706591374807600244320636409638459993465049619515842333366035238635960912364202964597928268172194630063759099771571418546603392982955245266429147889955368485876262721937656571700663185606076854851291991146913612111854484640839650071784282018406484042258561545323167828196728060509406194741514886328303499084580438029605235950476529541119195451739118792235567716526550365400522740592089532192277616207353586260097625361139474745634250578476415563715723183954072897331511897233552835743394659162702485578294100061798745429397632463299746117337543111745532012968443869577576685724772544797452729865950394952145402411175953343058953264644943436082098744406901273410098087720772912279635028577152973615653876485719983615651414399104342248819395532648856850036725207411076728466726822962345877539431612074427731136819642180318855046381450691124802944993788367972928901107563619863333706633929620855207745360754350990627797661436347346940648424761276816613941199627084195106455033512452449221938973288081729812207325112640002179778970928611791056690319556707715192440856246629580768920813622641352928588078951492465569482688692539858439406047745756695846306679923195112588305542592665599972139780182927543420290036942409276581840956337245958326267476754113490000982146212201178666545034506188386043292112043911140585297017722498405217793111666795130099859235320631824207269143428823047294011390624967302340441235259150160067076318564101315113092313447124428091210554091955010317202453770031478510945540486453658201385976523092265765273188514384901261187250995502033651920670522791026922431408331021329001970597568071559522843016783234177408073935812359871874486028411569072837978072836248258664451525416165531333373680742982632994081817133768456290182657530367123414983958631232341852931202877889939142180985769262405993955936226716025862209074068581778211387455311969216459505227978171018997635281999670907301267559284529920902683056429037329489015775892568122875570422704710263897435490033445745157804197868555609452035299740870129551094662837043435473488520012571123242891393107519609921499840912099849331770167814408070986558909375834224458818058541056256016243863076785826464627139553011454980189305240199316274861482263824272434123110645673134595796659808858037518689563633012813349650341643718975728876633901055495478814509084993883471279108291034426854519270654911110998511605433963870577453066391925137914719571027086392888374348936067308722967017788091284266474595501487091922887471187713570774569262789150273574991792163350301394946208549265475960711948265245662849897843544690627575568560305293286645690539335409585407148508087121819541514332023709993419140032084081981173647997311618781317109963916901427851572340566703520539680649797695541660660786720824422556609153288280970880911578573082490626758782804176235399967235171587094811811020136765902942553400619552881903152153520040699084928871348069303701679795709931863597816427454373736399954615892862209749601567367675958616262951064791303560073093772281565154912950692133569086611847522296820251556089688452030491705866337433768904962023467525362670958844194289345534535655361666071301011075172091673155881912021044448059259226518763669469744046085460431594893612204165811198303846835895820211100452606037812847277943480156202654576047276693614679546312946283500758871450189003770240283637409858487200089602178412860401424428249771791027405865670132646222093291801812613934987810310114051103115340112227312115701397730651681895724244424819169232457627191650517878334868266040887549439711349227851078346511558263276635115272866592486709530866991398532805755565825176332800149939659774311007574316311906399332903015776174794577758151286317559155659122257760895762887433639617737777810793600062837760613718976767385957635936749239957687323546995200084391001891848194844809252700764080259187597793962416770569372911182058043206377258109983089182009958896687351266167643047225498257250713535840455671726945000868809319684012907145619658978454689270060263664357411793948458802110601218557022361687739769868912174856537979760854100789922994034372673433157265957078901669846396031794585720972107581750698111148626440839184457248436942364953630681743089579746258766177524510044381163222417910697068668308059520628291499418102416969018357014133903959686644374637140599245495669297415863152130161425439369347309626293263758773871505051243994264348023846812093257047605937749372833398147790249357861243206036983168361308896481783979981606225681802845260409738422716621779456179748044142608729243863282674307456937520618666161219932173048956259957110229336566516394310737030644621106657300943191149719898339288745751514843393678584460968860462538319345620520408540003004451766806820908989472748379176829593115986683850303987496527812440076193107866750979596981301009383026816572777786319391820576948786051552776689742979693856618138341414749349810122353990740069002524857071391819797477700476549207685575054420746382111178192397500069290513868119962400636655572320876082131041895214606082813172206977315950861493403400439378287829463332504772749495838297122178379989710172623337870581714098164592544105755166039457085638478874366115389791720664615963139507075313249531518225187027135055532363841508846040646583442972748240403656441349276108800833891545927948879518134876232694203352751282885488756126546612126865336847378639845977405283047000417677916811752739573798048410315195766414519163806884270546993285956488397063790599316234142334150625626228019955900397556100553407944914290541735513589687025085483893547701720806951058549582662057705568521733283253830513286668196690546501378854145469823233846709138013323725417093536012454369018762776610532640384663323754923845398799991295544924101701492338292539826889291113476749887396486191381068371340624079999980919067946262601397549971647089761292584619539283192831618587746855496450259542922743997634226025284417943683028947257644307139438001465560366955735876346650132948224694442210354644667571041715243257386579025308584967964444062545689067497492825168195045071626814248877261709322241579298387654362415694854630330513613408466040420550918799927450168894986861120713662327924016756320098172905945192964348438268947697258129409347526416722449788137557596900730289037709252341750498212273364269742433435063437652707699688719858571718628184685940049218534656927415303668921966558267926427355861485228817246720323340385966588371048360555709926969277508292609831887660796153760286819885981561457740307075247400070942088935198089377104039107397300397433436297010008852069879210304789069167665608488534617271404466709725857091307185643709195996230808083353242618819093453538298224898026269604397181672046256085807383645269226628525056311751769691310996097531900012149678813981051855875192634644157506801296609896027017367213048707407472818885627877180954000131079520891243555441390642074267142554691120325158831045421914200011253205386152792833363851114702521790921219840460926574236731101627718018720510918010043649207008229827590418036385146881615850174455206565180558677767012297014490702393847022140475583709769247930943265804277386839634516457358779107361521315615755897911273085585420837963198377367033068631526995401404663352635856596755017689700987921126275861093810627055745595444822719089147293123016945892190985922426202710734428503057009541064142714562322871861292367845926214143270377485264513775742591779208992535267653413941614911293303920162356532149040437285981736627679020604431452005412701132712089762882027395372651569820039116964776299438777804560322039402282294550253375711463259153154245889814845438450750757191678829090036380305914706457709245811631743006358607344175370714885661664425055867517545489585319287927715487412611570925178509392087017288166879303019352958071172245628838884216341564353400552860932090163590738767615909391964438930440344144372903411719419619010621069086796379256313151299776037690626265829920274650445847813204912092860296868766326984573648575368134756784461624249346203896155103493055861494621819305963820772749733282926442800593703561951548109517874383585402482445201950766695807600546954080290479966048525416249829803323586504431389519897717939380424958238693416939504820635960166643011243240614091845392948455934913250064391797753604311569467285525939600215993609798751185396207507323273930185643345235288597981651338549962291793323179260972954098850041105068039150573954813784300727840601022852592347568581715366909227109038700111057034767337435423839371081834274033295630278541073662231779826919825915679224899258097444204209517906075747075212862950128729071376435098766541688976434383222075986376036143571760710192165419175903371537524865423442198692822275841740505309276499619599980628996424445089821921349726694669024833955190431271518347024303829879182898463200409547390633412961694343352634016417169322109849059599011207511177788393611886239076032600200825649751231197661459045348459149139964651315807559501962853072182650545035914435988123638156814466756633171361550740302222584638508972324401719305837554324386575866313791287325772465505440420191541369636502873770285451888153557160511997570480802813509184132447493003484282478510679108036798174059629512700613715524214830467454670887209411762869679913797385771725770615600176854411151952281487713394798883344359362746005892092922007310663768272761478640878834607025743685187310992923204271392368071000222018229543838045706167507254052458485845904058194228563527469646920982805226326547656551750466537104823344315169782651067939791677224241916355480941315405558997453328127139974249997163707144650247886922229032772943733236989080348350969098138136030809858258887047403945394877501708984086190956774251412892687496067359981908581417447059119960647012690086333143343275719031705735520403060677919664627452559516957195973583746709909044163926816849298302277382140495510763141246881989135832636067732405557312625783549283775174156935698547751700224055554468814602858528541683114062648964835512150270144963455618762403624321885373267410312777702779612573190204891768493820451671269733238480903001427131719529106037212459102938760430496328675306667201476535329335403080380593528384721793814970829379856090335476594567394234733279030969040940425248961284492859728203262946064480195389893699336330721319757710263544779036336914795934715789730445662054258205328667592263640790145687286314601019344727733472826286787006324899765743718005756189428193944378785141860796802366133503723781491857537092581812963058283073877028437891837995355906853853110918311860818792273559910982305403422216109634782526877682203813614586385921749256258652024257505531357592484117518590363469203696388003060676134012345880404242495266981057769946473712609962692157256701153801310185193150970824087075503396361351566119798917667757166243996519554940603746730228746784961767564942307920783197107389971066845194213519690436641481269285513247091059696396484550124976315446598134639734968795829381390959947419666085209237778822928059723630873834660610211638146399282433351169173136443645582169332000224927501793286816925353532063604942611188130624095288770816984605695354589774468462903552159707496754134978463155356551262913751023724154077126436640729022426089543485271801837953695419919654125156547807760308178987885212480256188172789367344989126441339117971953052222272020293523840713888603186249789266480488096132001194974165871325316929015714134145469470274888387340460691621010431080033501734781666148966246939034796570675920434176283625977031298233734217802898096330091392788175819457926803616356622587241474747357453301801073816123146400221648280958295262293321869584191377635077308870366773614836110525868726156583746521579258352555985349982478753759774299726124181202672586028357473230664289560746373765965843236328634579616966424400696714061067003196475286011756397428751365505004074941756273031158865344062265305250980550604550913920506348475726314311196267472315144821043875888077743971155354848827125594965736836967762543369098284790230924756274676050508753731632156397634649258886208859271692454758219812102034895617928418810654274103475976840535129793215372052844896812797982269260864907999234648548579220899223613842794068602931632079416363583810322524748929614102328282501940882527930590631104788428408762979457371350398091379291831921680126565863185191707644786536262127875376973970470989950466092024513154684240880343324929612473914520125970375149043727021130923387151584940062211657588278713929560988413188593335512595882950129829584582515586504641553111058382659528682647405964575049266918229061714356243086982702083224337643907242473597544589488559138000425051745013417436108566181634086055309765713205789876303696024252112100551089822588134677252833711735035565579134480355755232449324563943836657067042276309102069296144600291527503937573002100048457524892540797829250181562185686224263746311968735565866796061334271646756694750293799422398429339854406893469694775911356478795745234280458876973857422707434337056345542172658629255253189088062278570762200015865176892166706858473674722981464427843723468981769247792801924835375041778392954678379389628223073230609103870693186116740741662308758395899050400111253976010019197434105699622570436359640505461400719280412705793676276564096257574898608899580453416602059024969279463243945433099335640674368117958482579631753046394559253669916832559137775645908633243786229915574455840332511060643654208457056081317066084900990277976810154036596230711513590028081765480619477588159980752933067136900896174066499109427088285265248059676785048513442423153198528723445485027354679000409891823384214721606198714501174321733170438526236628615253006235785811502089077162332375298467797260232330889819558526614862111383164607781691849538981589543228752836076051981191101226671955900760112166238584433165842496087116237306849457422116838097167676251073989236211552304661858814686587636519054990183430169078004032940275614150071408313397063105975325127929157612582933826413332880085767778176029957097740807326202951116314593111427658963643759857395776763748025322513105526605575770699788283134664655617265169711936043452190842846868974680026649957995096855060436418693334793824008093398044773698531185690708480919521402486146926828329804059102597735192204131746341622757551199825568542595692208408704046097416464735566136279525783004303480189165033379638336871817588427707244936987009336692029260896722249109349929811362707994214828404555107340492501390822463977610835336058509111439232899831627218022387379394832373862024683386935424586753085866916483617909502268268223210093283313372795072660092343287589717007403225993125248694676087165768493553188145688224526540107358341171725493320468265582823629532388460847680824449029027254872494359127932622779947089306148570848095082234451170966848997215645926076078006393799785720889496691321199320284035900880026794807118355988109867960275273699795337787935991709968848740264580934022814467669982146059980468641167253097189117259397057786981195248749120939244544823457511213651607877076125031781859339135242273690372343866828019386554755604929850704880562308391802679073223844377295837041727867276515829430609018471507167350392637507164538636663002555469766461549374930447679694480379877028838109853205853057977455683434745255901107029412174280080099927700467318100084905719293584475773597895790869586385193826942399906038894044515353788350583820354362839632153248040358154207633039545981528480731150317402960668323414613070731459057910115478736316857058868713796756436432030304814093732111235313400005341593116470308228674518142200843092958490662789079274138063226071999526350196156697617330614307310907194106563034840532399640604425943212975386104341560037486140296094946464286355003191285245284359789481104286543555649670945724443871877942391388640915312225792141190255953530233084733571613301480584107971776759193143445314914011286650258653757606463913719078091768214872961370154658100222951567808660707596267729479320183853458079947876518334054452660692120114808320605553963113367600753903777102800464521026973710282401663564037371599643923615813066581600322501812458212850933642044986444574485199999762554767295170953015036389312319354294230095452298390741568887275986813793923214984320192890575614585583731364413617627170906132461554001542123086088244389383807100007588432441289335096858123576428711638793764322721481180111664476380384624858600615359564822280599009668857323505866150895303755291535783878731470280557416701941466041839080135881592560044419951235970525356616973119631970119958309814646291492762385002153993509473655065554812509150880448604833025784411950787548313525562294178808722576300681754114521673403580719547399969422738965094416486542136050900738944370241836455890828092792102791776255745594055238948239045207639870110869867484323330448869628688358387378132091203264376393112612586607109950485975178282579087958417433016890019522742831249877090740736863871586249873963745914066102379487302189092044015967121929473981762691735717734345060733103377433527993469126157079554925260631883647279918312347502698895209818657971858158404956969331058766214527333219635133807110277341273853758552443012689539679064370376076227948174400711327314556423925801124041725471747873475706404542530339765117989507687122265711667548388115557270029376605275628153388913480027052605084102409887721170320368807035752421426698863102407539893535456875235249959181300676882129928217421889009710378749237857364911523898355327197259838607863531870234723692436156516566648222277249278883440191418409145811700747472714847428748384896769725642613690180124998311434281652500814177844776610404481134020628944187056251307677538381340649446120616740983140750031873913821858004202495939881376546686507568321136798417556325161576128177910654069150566899105472505567838681328044143805846383512109004692860197209307684453305379597567562700896908888902799005933275945332301310580924708102577897807773313626836763933680543032763371715863028580815474548185634552324867626186378836620049824749780269390395598337510045684482011582058042239896292716342981274719411277322898454401686490095138518608759805963560148412908666916527267490279526162476370775169197962155517608988182592220065119940479551486530645306452733641613896633234207473235066258475952980332509441516234856477060978471249113055403757813377805557094504039968279562998766303736806600155999402730855529351202912492608866579981259816303368298622181103394459683088315812537182319948613650992397161614890125111298712114700613988191167471829296533689746069762706220210230855588277465806664837705740262305143765470298194266546461030739717592967143467572961493222729497491837281713937624353923207364222285342561391831446459887127964021820123051513258514813377098293250251966245611403231139590192004673700184754461179470195352112245324698802449068555966756175912015236281966927067772761261495295523137143391549775322008380606822659319095673102844574532619178152179651627231395122336870514158463262389845561023221294924634132984131354447625076949639004034506387269740818745669488109896334525552417333630835731301662318349790990950142747521134945210952311940288284620667728937844447793233604220609450134840336395915445308328344896722510050125184712370116406179362633236208763326153275904472315803712031627009197040288157266372461565368164777290804116343545317894932178896463932437017159999433301825494108219743079177553835527737432100143309106223898552405410453197764419077498424835894011236394754719773928607115832438422923874427354912676141587525731520213647987561479383584995873447781115643239764582039349345838544056048525944030494289831795050061441737247243174297001897074064347663784526282427296930211694251550310526391596515893360834335052257652375833826291219295250292209916565852791027918208145138434391185274815471990790436807188743154865946567352088370345548042880211553352636787641122369932485814867763888062611738520079529010007968610052861489901957577412578364380741651814260671161871030188712604275926557294512918534768042097131839380215820441610137131631485466059392785920899684860218269278404719665329104645551473189664444476641384669497283500974517954720386509675860091512442915511281191276342716324812304242269417571799399187178097930765721543487265422780620732347144064949288315170929983143731687449229406409372347999860453509544119235269350715690504993543800849207214410253745379041921590729077996111888545257097257891268165303059773731319861259376803954285424897134808714453927322152213938480653568740330395904004527438439847629197482056440768136396960417844108962185377376614578641420889689266446407955684571783165158730533318107291596857447555440526518862272350974672345665159673831267571094026378387217793513816435961664693322188208698485236657414315023385313313296818741660638834505413323038873678441006571643503565428136468063926494913080903178022615510083672143777730856923806656496493142575308377388964707770636467151803768131954538140479385540954604174238703769960060716262392072651340003077608663969215396077978549536883118324040195220070690766565902840885562978485216140622628859188758077971248023253500247876763171788157716836752271213983764367247679525066988255438304783586674600076331059754486687427047516915846220135273315624298253255043563077115787687056317259635969233011710533244588639838622139190476321744846162727566407322111989393211216058965338614603815275615693843012250352202094070247982227873694063979211581951435639562779673789752394271690921234415742491656597178141889936901330202418009135589427433811600170584362681954110193040442432597123703520852236585197956717309257649386676747043898041520949189828886868933983499016864118557106704834302629944516931786171357171429738413155940117845444507395621071812365403584701329373813088203073356364464782910485299628607053401318937791746004690325815793656388811781113199145119939637029774267568595355226224332867809238965024491245509553377044332482638172018253646709008862470151272132559283751671942898109587652636930956468857598174042270670930668689521469678786970473445990540853043704237829301489850588048572357052213649613870953324452123335305567419354794487366968428631184411492792214031700993678961846800942346196628443653597812980534671151389435523937740298134996774772361738788190828058037198356669903417901773003650851866009319950099801824102054220731854807502097339075967342147682195403122109180164068105297633763251492306314852408680354096339581921708934413901923239656608900517632890164166846694064023232574763524275073938777192196564888708279710024966641281527673022228167715917029896699191306235672830649475270996300097078566751781115917042998829091271384306980036207771639126424576421067433614450515801844513634297616860989638639901338740999464267341553873317580822560457983646163654872382772180288056322417493127586373683629364849301659778351041961078428838125667050147300569946745760060541865890203612861929157841820114504265671084253218212757728331025895010035418398388619058988893795196567211113139056912626285001770270842787883824457741888536643102587899907578790490512416649486246751806418416733595157025950852873547822519039852735316003158234332340195063858930333035040382704721484542551514576234999494117498493556565996714111691867992892885033520820029549149742749863749393985565809866984927790140144974264132964913467652974225538963956314702516492649315989677126135039426140474116130618391551340053224205005737624076502120418520353531450752228316492906999869479894163882551351639484705909221706577300719047756276813085373104472444276137582565171224598555519768950363097685540495999668012044950272709573951864386804521659540726206136476254700137882071332918278366065400359544839066313622654202208856867615879339215596627676014275034081731387948738539618751060296835998901544281763854207867019664414347659583972907648733655209740432638021178858462316467239517262467146146175901384298955005877583787724182464725731830102173114343516662285992801594161593266957415134867939210582943445304495395808050498661849667566706289522446528666954261622747224036572199061106670752273779525132401839628865579981141843982289639690936379705809636406179367993567426651810313420716676347282568094913337710506974741110991177455864789446262711748284040124560596141745588705328006151508773766896683393324619927392486237945821997379901905807282109959853955798673403698789606095782488383464410971716307430810450484090335817848910705766744802460062528355165214640559773451646828345580683537727454921259648532584938187185473546291322689114777131482457303961041820830020231056434564114908699000297352388144378592630386794440086998056628415627931805055964124309078615826819847059219742884815501502826363025295682671381760930836167459134552645884846569135419300808930547478475276280059348914856626907506417738448093737308982956636953861860089309037693744310798559583879274457220264388576355404897162260001997165728034747901745472887367874509810374535627827546585328882838570570237222979976164442843178082061225528916478838333512265870984993397619447815346603172325842435252778461906099382907395420797004587694133195232233853386969361847380980203394082115698980709726404651176646319620061385872218969351654052093654824973259298401637853692029880681325515915791599746014924112485831305447913458076420925788588389546124168949634813220948691951722109752240828537236846868961873158261544477187159547983336215665276935623077315102647163559638996654670305406599851164312749400768967180015595895071653025620800997675835353203380871798502072619621874880083108387595955210761651940437076186913485125070629804619958167943069123251459645675590103460650888437013743232772646817092737391283840501031861667909710053595829736782297377764117438402164692953730100688899007365172963370901353579012309652185137803319586509676524272837551852101713285485655951760777113250981512341277556444225869078854602622554259982482289257761942539554672679691652297978479225780689145548953840228967900628087789043056845674118679146800552900815918407858460525200996658458035676705212568017537876927443258697730348598911183036522986425311710118408016390273969909665671826537013735833291618445527132744225989027319665966485923757953436408225947166767183656291634067288914906481545337233229762324924149621033681867379428230942815755239753799247736208966681764130395915367025347351282231989831504920809049248917339497591314524450400198301669536998754855338516223489985571148634049036430328222260313973223894359248996998872987521532686113470387531885547100665785344530221242020375079367392604511580382770098218631347035403439065944375617953676665455034738457328799291295681850129051194572261789313280714420851930301479517557497375768659168938702744974399692233927833259122865093848441773816794156655278178506054576916006453058414398539168875249304270369655360396674038313537267016585916456665858119474670251015680610075195618822762417236194572966099480819988273094168026659737141429191130723972683038852148455177575402579740791557821053697086901999122391170560926534980414358894035059551646346351070966934320588058182604282434707698149252955806917207512747591174597803148228050428589054861210010054618198905432788004767794802756155151934578963742948419172728421674163089230880491941650769608007604513519964344805875644789119560199570974369235826201207137011165126756824277986701200978215243031496933820745852384298053728422283533681496425919065783094465751371614817018954838770209456040112620348670635744123027097469591834651454551224165228398728276716687161922979113923763658404336151290579693705130928331912827034045000579377351468609592112175643360379791442798275287486468790423025596204538608401391194186673885726423401052497429205030838139256566308405304307040429065107386831072395413527065925949932846425620160006736874398270666381055942977345207289554964900533118337417782438615345579324121012453909271646298464373273522829052253245091371102227014597667845922994066125097145627124596740664253751823464462856287119047159942148861821591382083272317060129977354925812517871227651349649083469370279320614092200098740561374780989577737445037322291626165670563489443311575414851221145064850307232493180921050952864463857530576125132673897894937249695004454153595401292184484310058910055579801943956311104306668395366941970333094115806046834530785398951688721955728310931467822879177446264071050735717059044452642983365315527819600781843996226343648253793686838655308250477881588708889212286188376639940360152494351925327165146032308896062889914514887809827354339041836769030098527789045635407968972370628679830196398414471751740875582435147584174437413840607393775755019946533306489478429364584774687307436544589645511853109847785237263461974874886343863036023304803776827192623496376222947003727548809129275371129695528777911321686248787540576061014296405265711827997301402337372566640861531149747079221109543333947529150984744204155608325533106753184854766445842756566088611552977185846068603558261812134301436180876277174523389019560522700022177253122102094073719751571798671323147094646217669476497624412998207412678723525028146910181797043697162704227840308767025393293294774808336647271621455567282536670412536336075197189154074526270797617210248796304632510763941137062795283445877628519315178489818812163296693927566767950322156982646809022761601964910880117971165475813438412694354156378824332831996509544961118433767123993433951518258110876311483970192708054733603171043368534198697017685137050147736257138966199960971779818911549237160888335712039000271234228603632796879526352664351612136060298134637636614910986985330301214649965062607769059730889708808071036788532722119626079910459133417768335447629870370917919162759285797191848394581739501228380581307410983644331988696353263919570910002832123992867871413789031659416231492117586561635058508158735445984740706232375764723482208068049125465940806954745952227078270486721926570831237754318031732445267013348338831841078201086016937724717686366987508011008282979319730266028514366974833690543877468345398220607129286673127494574715078683609324427031228654482817063701534097172945308024416438064240373704350922381251778466381160604188060414654016797618003136981480335869981785643564890633587307115896952003463965321942096781003932845375084517733121739554525527785590482437541794660865670530127007210999715003241369267450313965535882474929289025723679653140713134000580195341092613961511024135488960284064865887720172154444831062517300802340391205102568866312724309170269168107122293783058218253133085664928988635365082708246334356427977034403153184225553142277156474751218772433138647809039058871090799040264537501913541512616849164161639659545589597450767013033983776743232149318827182699524717157916669898920426314343869265457390283382660399557351192628512713726693958303544826776827082060096259046104216556570431932005850812200998419515944246125566475216676313556258164089440805725360468989873045405924228604027477608089447235184601632862225369959727257584908307698149694148182749319841965215662768999227958543787461992008888586505191239244557949947557311140802415184287461473624855178915185965921008730669995800139802418555428165238764312210759330464436227286822168622507672473926865724131853778308909008063137137318445385036048226213029071402733272007238855334337978025335392649516029293285515880948049642954493818665737852948434630817980775202535745560551587501264795146854787793863947318850311226875687224030494717720751433599579997660180660661010871236928284296424372176024788747512002834809432271230126236326959290193971803980873696537810105574840355168701052468965203798602531656171911119325500819364951403372503170654041216277811973836718181038431895208865828182326558369732289992338496784962201600807101058674077748894391085825471316486705426679786086863303024362489233618927301533348920789920324603479718268321225643391890066088727817727809654957310144021390457090984525802161591732691769339923903687622322154605085615119647412423311145930320128709369634105072006151079272319569340514290533369497915351671597323867536882386407870407868702013635968362934012671660350745241332223010847301603135366506581430636906114338451360245284851751764356279805569623013634005918472206610065354289292042567424103327579509360063301410064864422271983569619781423041013638994571183188824006107330407795698100372535312053030137056813075968382055076256784109336536083520769826487059557226663703465285503344332084486381026398171767641731048345819793587432947373166428354833637594501294660594815859720035963171517161262394143383309702030258589860632476817671024165301678056601963849071749836772379499724805295729385831850389307348071544633659434556510563317969332543177286959696948377552350113952145453064081174531313447946476902844458841447877979087039859710213641031094390468279186302391963126379728754366063137007479002337474481495642066302350199371338134338563648622406984814340566264036790859920209659407590948822915481788586311000654478489474770279297381040087740635016262056470519688726237316652402133372683303701034022400527516882163408814417327538747957847885301562159289534555706860773418107854730502561329203132039517489632234555015043365616615376746567676363861589920993740607652725211552104065613190586645375545907806052851414373547320765088155069822153429384642810735820806208802738323086527790307893684887321118285323629757039574534260085601254688394225016681148807051795649552867488264114572415224506554709689559399733878283193801656757926798787399970907992482487583613526808339005814935805601437421932426213295560676846311263402673956729585320628162214031817723278045003584016722058837703704176475224235862410710806871111169511136255625198026062876085739880395258542517587774491813223541926176393631955813558207875306008340703634016916633436171458926416789029722243776373461127131023407579788933239455806801020498832089351039238517627974359428902185115927395060953565443396917515668829468327923698978239635165207000422819552009554533875762839583194063670844871383809742812459046614075371495919521722472304105451653635214104883520979035606528131949069224912737391244298950192773800033075483694265966386353663129750940386512638925794643102376067479229478047960737193183470061233888895653180269454816407852843696570119530421813839628032905981221733844340900750174838605103814253272823783992684907985364304753309967430539802810285664353073951512896009872543191181369292436682121303056119536316851942279071666108794098279989886575968937215784644208212041994548944450301499168535886928553472091331247446164691751880925246003245806175381655357463211878862176717451183619632330417627317570064373635625928240092047247020348939560425078147800343842359190035289886152365925798372412032665616407930618505401004356494604019411590363211444920343592089027515346797021529172760047723780512560115888959459790313931209032325758000888482096602168165550428631089226863278071589317508611437427819261765373549439268140330067983057092605771461396548309719752705558032478332578235564142021693800421971207819042541483968330471558296536309133029984115419506660671235474381379966190701045883395553561830875364013857535481477725505564433358381651590581883353414354882977466611854655179929954517322882556587223965942905420897429859047464558637330874813741939060638006003387902511626814724320732239734392229727197969345730740510729407249598643433959785336096025788903968588714488154374512474824248274578573866963190616444141853768098492520653668421935068905193282870222060480795278317086182019289251002149429360373706448309116762761771948584713783467399698973120101788612534012559074373497640757617810675165843717988191258013143659579335264830667761506147395477424093918490135235243872607721848469323797335058424704949386746117016363529754842371484782363846944368436497391501542369249217266803116870704717706314425096234852690326596614034218233416967296975075310911895815228973855726226504416953419404085507192643558900882151677928805704267685199269751417820535070811307943730005399850682077998513076478273106779567566326304769990142061632521846113434646273137397861823919612732604341759301928254929883718324367059507419147451825971184181776129403811960815613154346485146315307900493764531523472316268784348894015867398218152387856736695629819561796096484375079084558717720095524668337295101742043244684430219874682476672092511677751248940845867182600127650252174955909140442043019496398338353997009491193815567172699964416947997293805744274054330667919577707997575866664366445796381309368635560836605727414295790111328307551725542195999368150955867908523703486767043821854932532981200244277652225809319209269760611252343689136602028124774606167376551636436711794376155844090834885771929519531148271675694041739513540642266476170576470213324190013173898601790202765639182619428478719078360866065400346380633028069765766721912855772550801515413172215552746957034944281194148685801731397195482541727404581373516332947108264969268147027686514406675940067664079665578661989704698095964568699459944211996606636045191365476826505092038117610931101584427098426191362983916058311233037032998951367449206747651218668175928941580402526635686790348068474570018616252904727950838427749990615492318801844581689853226445159591368914537442099224361729431115914454528758558605944285772272121861527962846210199524331244427059064570978550613732799236387759805705687501224460975282251411406603432836492219969760074538454029798703261116239779490101121187852294114544333099287696366130181390473360897155399432740387864536730847875942412263321814683882909527650245207218518147574772048807263084100936838289834055656505889400969170154487622762630501335883707942554361845119153195515720783297013610955978075924930652208503070953728387743715107855207455778254240784234530136936887810882221415594759601509370022250530839531896549510554664641119775028912255086205149774479141060322171824766736842288017307334233606556253975604028358204360468788055637933886573018512574592771563917794510343876803266985211357582596889784034594023579023574123976940888385245058110711444661292464802720413131863396050991669379888406672629971801174224467528045941365188485402192414305361904704248299141143486080324905033009879004241213535957106158670340312903573267259714560143727402235676793093232123156882452655118110326916483598022418371794376102603374478696261085611378555449373832935565081758766297802873960977698297114177251451330472603212002184159865289846616250945428186480653837525596754834792101819549766060091874831137036502548403084533692932675487149905857858127043587314766405830783291798367951945768711882121234212764858583839143776788805908048896620880041964577117782295065029165890015961836084956045413303937678372001127030941387111185994513141437046173387458775759718928401708582753174536594643022890532387906584704298993379753287621493528671602423667931687027698268899937612991712290803876233677386781067943933406658288483556689688552083025258552582959497653118767626909961936382102621037723765511308490276558032298617349646949841896151820549961128970679889614249602229709294802356792517893354907131999528701496474041971835112263785220741008744860157810579671002810310065773851712569987339805574044307097649407402339644658338664177644992524511854407842365390636936597243341201602317717644558723576338813620526219612895935183588817058994745810246041297008839969625307668024157752388671823132418923689405032065517612857210171828491353041261263508325927349678419516765416575972979763026140768937969055956968675639223778795265101791783592594654584113252797792968467137334147656944088327833819192865119197716117505307420285766828275538176012025624630897176533420284853286578831482769854497054686277288987152165234163432037815600963742539805147071385455245248028977701424324130773543910238478480655363119607818547305550365767641577884069297299137241136710045547583754343563765075990864526985081889535320734612659577552751688553003050799863098572793400050768042087988509610951626003461577776014621751956276955322907035874965058871005160484772994409310186354115211894846464929387823356588773995302765191936016884710623731526345244990782855135581906436445103903286492513238300228416225754368916181205988055357114300616680207703881390819464668556708069746713273547287372292373641406171038211480250914417876673470533342239057255090948985071852646021388198740061728053574542194807419032077232899897765400991067664832922122019656869038381992241422779487611117199325472856866963253758320298754373614680373841163208958117924745552914257076294959471076514933350191070840547046161189623291436920426109226295688993360991620242579822851520715571179357510975038239474260212501626388431203423984873813388466500330864937129571500183266033171283323029345303364870246772136012923820258097904251786808996227079944349530335505512203964009382769465226389997197501172518865464736632560644466934569705143600483766546222418526490675351870161989789201293884615993464852512426990577519135930775301047024974572861244722839865478498757565463784055991720493460542274712289897493076786539546215217630843216645028455669859860747366608874626065023950600137857459246483936948624599095173569988377877220021427686725669465084212487599406231393491669287398444888927069161108379335692193223780633398148984449667814818542131537992841371124388678886656455560884182884458147129043514680727746655166835753077903029174496435377730191598330645926523925723886394171345119660023351771932002856731452490966139880097033460290580709099528925873723151295646815366447723273212732887537910351943039605260704172983423038112237897352314114200833709902881137557342216616090758272495095303894252453496523702251124415776049507384428018138955036992228893853247585588566715533741517554851649980842132558216551962779971411331179570725498477072995260450132124473710707102850300974976332116029477538759978816625153617869388688850425830610984595508266464736766668357934289633346585198762130157174557847570682084194970459831390718257579428293475571263869337705664799794225323197684809479594503819697960955525102914856482695052494338689310246487085811271283644627682632536567656444870494514912628265597800644265781664088093416619540174224635337573648123179187601796388018739454215973719252221762680987398161973374204616429168217194608080673401913064370187578820294404295173123991603535085594593504612714301306948085668309535575505573232346878299600914352864770867840592466201414913157495330155643090271046825422432643199097364614837573812678779584725275306329977981666629303476825432717058459229658007279791943406813675603808524610002814550003948763729442182488829309655247851754189472532184880806458072787437395920409621032135894534971906107516040321870728899268008181442802012854545224923212067605687909443139042829750878795427765419327088095698965925851575564162605837702109897400606478136998130871360036705815873267693738040561628945881767559504642457930617182516276938629922470358941157039524360880598530275365314986850023569627669916353494674465772611708392578110658784351181443410056861239842057566624710832335434824038571567051505097089146333896407207210716339701815378524483191512793346250141848826273188320916362548930534652516626312861547303707937056070021748188774525933883790308580797760624222314780907430908438925451492552926659922614370060757334587570967716002088258653512684385247214859086878722866178119733144208408834720524676476085759268348059393893981824144014236992348958372847983706340432453797380397439771930426289709293133560908032192012287950579955833296104262258914107628595937057672496533961070970870176790079144447087143619725096021454085466938894219060165844879036416639535973246011561181798018146059909648483646894341381357899704211215605222822200462372343202059962058445150777669220476985416468371485951679163697238769747856602810531475664560101402154578032086007153868258733456619819359989081012371292520977658333133878470298318971454516888902078523381389725774713052573743998934494073456152881064830776459140909335891253389971585406702488483148090748284063222419807407184427717647392655825106076960331393917222227956842744158746712566356745397294865374553432711811804045342791654015662485073319073735359772338293379658018472227467630565369196010061327590683126505420996583047170552687907714602194310411363962033150040856364248456218881739834503182075188609301797752062305318299848930169656926000336117556935160907165005595421720685844451004327256651367620184023273021907172893232989076217184700646404982592567372694044003123719001214340499456296793116191490779382860915918318201653966126557617250418697906377619635637598576457860036108859423757562696048922413703598840022928849821885307163645838119688723426188632131194133805971615335856278508201684959544176278913790088826600445373593705057402707642264054700495664180853868794886877790006802919082968694232034005277782681503842189046728076429883550007972040325808488456416613154567779144535959372230675192371597286173077556931572912097572435165358370578031116837249783361378345024066400785609416676755296248091236929572188464106618459364419123628536340693790278257542320081684498855124339969318976090675189421658881018898890080207537416475490674316330223122538684209557041981538355897609970027190305573573011884862225528452342913857049046392592584840387402698843765323049620720646132543057024315599938019714181306158321679830011176956571776581958709730826866270180043965527305122128189940927637918310731841450104192931078683012059647257104282328914234435433014671211772508986504705704392995586490529893868519351011708512035262458969344688061708992608437399314445015567639458224629994498490457252156783026841493866740742777447329118152772988895641421187228737415662249050471014672976308659331018827201241921328963855192862618528402309028993520688447318616310436870797424672278389920466158316696896034575927608949125531427534306951726367261511766665304956818777038394282908617998397534368824392050998768376532480172307576361647845522844996775338648489861149579384564998414242948744907695180889502771673547160574196500152133501780001643436338378761336314370710890102904418444634598912085323336514031589722501464052714228668345597005264930822464296177800899763099397325421954059889586762656322617052849574822223526614155170477741595446975650824433942596389284173256868228516385581496508859655248824479850687306400862465846172668917000864268320091125887353027633423262726787684114637886428185583283733391072940975042172139542974246447956651344012667406055628621330011214693655974074210689695374182420002166415629119343768078964739101842523817197633084801233728211920217718706068914616145456921429247068611317998631211609341844191523274308109217073135781992429851406263692714464032850895712166349758844903612865862884945673575092363176465614690245086884732047237833870979831127501109000190087633263765842358701809811979374205287594747347607148898092366642960925958140648485794957905033593437710221339898681496946114315459186409156289894093650760930602593249046710465203642810877822825705969217850786636981762694744722477177139019829137212215126137287488395321928071900834116018257948840573241887816845454958271322096061796497457285781638893940671871586845167265904196726779127758024934196126285943751117217272299173743758282520583297313546016564701482908415070282367658922222935262582929135198479491747315117142009745012397740755521072949476306495458360723085156914268208871132309408367615086857658357773628593858828940323584523144382790331016377092384472945684311806874600466365484809825866828907859628618034670002725916100471014225071760113646562350278860648712959910070564046163717556167796519963863518726361103401771635892200412894281694562069471903978427914064983511607338195674446235249533401900599264405372113847723920056586664546472769898166116632638886694714307247740571518508124856484896765094718129923331108200969025825031720764592063733629774435010851772364045538183557567133547017003261252793214199345460962879547979030925378936115581530369959765082015112144231328341252910846588509796858198295015496176154486754014724705653886604566139583150432689470072207471821641491354537305805747391996731968848140189273449991928929430397091806532644084684599103988411563662938248033718206324472224253126882769677077675623760998545577443272217650510506730955785153677646732927996955348845118504142826634297188933847282664539570572541368255496384388986891073021902677340484488313603494554869153427120118470945956051259212987752302383836517700703207827662498461617067013388000168028622108979198031444466096624753474364234311438682322329160581355017031027291594113175388493963873222042053570794035395431757897550767115445839644140537003306635086290146557444066551474890047745271041324799701162501657642311732259664362863276916508368491807155220311725897620876490410825293955773665263830640992983609259366067733793760259545531008691693935460553499891686174809860261165782638778861035461849186910667389328312704684019814389302063077297088863942818197903986417156204825336832963880790366318686781614577915270061959024684668952580354573415453417344915873977648352413270756916182241479120140458092358441087092575800559223603106303907368213304860729815536886825302480966575711634021851367208478632804464605433704869927998333781434033060967163362099035229184542275184706803507969456972387093986735777028851236270796865554493078824202391918735289328279296906026559593757146850180216069773184939386478147886035072861071143893161692326998666037870930250582817516158040853406826628800002313928511539808562818479842397945295722565822690619908645218395645479399280920500673947569681751384385610266076663605126620378337187274679439782344814895000505871548392184155663730182397377333783521564977947243633141930982489499681965482366183474805250822170728890547911600085696720854845429123587324560702414072967055958590612533845735470758069091151789156529013611242184256056294330512590592733176213696444830701976824742605605201541454081788609003562505159845039020190786965927852410369151286381311396766113001638626008979409976152818459067633236853532329234035390132331867282476521377398743542172367887367569997526209760703053114231685072528656507985612129944801505330962277128291437804086839053625199978554695931270476432857698427860074399675745657990711556128165531109141542144455909179775587816865589743590793280041241294762516011740149211295131302200422140608511252853971782720161114640760758102970982572117851947978877997134896951851174689738389436496439961108765588947771631802163207525949129573491875909443082800806369757537988951681763085119063884441818133261255961654503331061263304641350241949580292576783176312085990369411635305396525041535021299990062777577914393458524664666653005734506509453733959142991527019671259945380846754000446676201305877745272010682130356626643236928305577385579001114179505074423631523215978351603761482724636565455362038179595283805237420413477367033810613316256020064945757058313968398304338996952886204031512682834898691407238892167539704927763031123057163032543910672231944645195037829774167847194415963006858040911450121477728093959739630045522879294956996921387148628004267100526829526802180857650551932827633489989498436366742663962561502888065792953046692068187543870047776687275736271224430234731017224662780999666569134594228810104168719734692160845577302902282078327933194895596423868160545626799283275896303013070262696051021836044914779632755040093549321133736480616039614557645333788076234870209901904886853313999371340539713666699878137676857942503667108461050400540846935180886059652771289706479093124814849343234195463279030271012215564755035963728363893930555672478702345647636928073937647727787151322658460674333563429574248119159425008814765773398324644241515621124858760119864987854632294983034047670503476199547146452324433196974055033648658160636559778222380424424985292908195172519377016370580464986783794543440249398304952293067427074824740686838225087996182704320089272143199037212192161968859961049254028340919436913190175611134677147144069117831656078485168770954988380690294509846500796281735696362291058057085439801767945267926889848683467080529310611219396459982760443281426949007545201426708054629447650869957664795082590610993101562244145302337348202756507768529369327881138542736825544616390443940581458506403369561107677502245015262186362932979574329563521097152551033452353809046953477074616170822499544403451313569022362603651321397154194169330771991230951489640993914429195977372639208580053888145404328021107216587442338992793799951888435968061033068185525840711729658708164244377261004560074505961753410260371798626972501438897839779921584882315269781425365109852247417973858377741666483567404197252715823118826502585590546530778657363228340795040737394963479495774448421470913597770852809549481941403285192912935250113327974304658084904081854693769828079507632049656732004128975458458733837116584915288209686623261488886325839561945749593311506966287326899153596268312243654870623749293756004554715189346050074543741680150332374605313680776534632196442376470170193997366189541103503937337500917040179903659272575390613437204862252305565816033161407775670398591344341848968697059686713841530593074402381280278557499975598017518928312888832405700974261514021569726837201368673574155815463602578565938317168766744852337215964722744829420583520232005680410395460337766609548101890683503904918291869822056245509715104992541318131916684994419982127835761903704892843019560595480313102249483431950628201792818709462345614571670556704277287711962114560920413723245851310816363263044314656222914410997340090265573945278432328885314020776285800605181265043939396586273763278622143345339762164969596169121150019177406827384294537571249956477443529316362246766445519475017455995445032240486960949846829242323564027532996071363692252836441957872724710232386943082956103127652471427818994413837975194193979141982468749236450261027525484898384265914907448812671066740400782794231175230508389582576323740857353058789739150093729896691968976355726705764431898652606093229916367403134019078925739236550574192635088728076324259363412759868179213605016595698398774946969022325202285853129646583312888983825416383568045232811629768114784913593244324908466386552762986634266894610653909820659901092239294486267616845463011530328551812359783810185520979830232159705396946728982063140724034670845007295860194549701410195650178990202467181316956617662545763569422710979281423813695770151845419779964952513420293020465813838199712787657099782428782825572739727678680465652064646028144459949557290914749763793759530111137756583387617193327056167611074597102009264609177964358273981786361931080575748919042210369689319305146630315028622675740493539654966942935950333951232124613518537188872348486170350890987862745524890786439570913181727751135597770465393791400838382174736622008573611402108271703491922092940860093663963356642672362896365088367637038113535627606245401375768710779209209835265931807754556873028571157425740865266601811494113853316757323439618372191313560641070355801258096302443963114855104060131555372806747703660081525722750197045113701727459519257079828348732484645144688416249690576766644541684974618439869836634631633148616100432142362368964099029421412368673009014668831223813872537991154900895740770861362918133096887301331626779169967281918623336322172969612999888676788742784535356006659575386849969564503866164725236155252612697694539412261697692694128771812887228333301450147053236981620471232308929720587235001772451946662118505911754007524964276551042558908803009279861230140194569209535337110033760772641480713760799471266055023934080952178349000302188005413771052991706678718497248953625859879517131652368104868914910870916304750184814561892586897715353004277717842100429463603535343944369381623510161012066735061850612499807931452277045494436796796514393012288182404552278571618788828766463426167021131115030496189840557944232308592920434820103275565762632678646591985303624638637663544423646106889843471897230882068560434891602984450554025607558553001410322287786179225174176280016316754402000734336382650097317909295694778288556269302339782274105151564298457529088437534084479429646317363431673212182688121030686315319635351251561347528923375019492962078901028489543028527777923624711467551721514449664330228170651631210016002273953528936178416341342058819590256624643251333681287549291099830450482791162968650372981586363914206783301272717560538278561001298422551842651103645052127532764634760701571737230025880333789901670121015654015741600000891650944495090264091237947842928482742018614047560692634951587756712993813059622804562369838807929810928461614117870961316755828470882528770846943476134048731721702175707061639939149361036363486301619259574771546934566329587817108480590389919503943039448750750648964102154958627966094548392826413484974434055646122424043860108068201190380717548841861605783761105820129803453786019845855688431051023390431116061295543259975530229270489691797177552196698493048756487237248184002513161492444422367648485879890921687435320729787328749176018398193799823980882033963772510615970046840580142174037332871486343142358728611282313027243127660489942298728605117560793344424283001675704045700074137028215203310048631859413077015434634837651707862511613259055658107145083518027006189705597732996838566610117488381176416092094429012048281781712313286283892875838086538403369909575392936557648863192112043634547076631013475830362054485530566431924868193471346711533860580972500772691812943804121707905928094639038884340309619304974009779699357238736367761191780037046148487826240059708094136509010492151065603018025882902850295905974029075072773082588338859617449177893611613952270790754141410793152398501802750597152564278103806442500374141870278506035801372604371813255516938846597490378296601614445280028211306072788810935526047480616430296094655737253219748724867679399517276886296140729207038343286715687378191261212481586233785330042406230924862758615019565547860224965561681341942930489851977682933141644734557889624381586378170750848313291009551980698697906292218753985957787627406883076220023845361049624493151628013951416991687574130027326969560595199024536135051160059649726958815205990871785376238670855517396551494711955351130832471233655028584821013232774053373236047028312488205623574752845779564206051407907410220182909921860095852733523794138215767165263934354487909072507987565953934190296675210472877566642651071383361449419280354999422582914270569467951370281815809925068422362829717043554191392744557868864980486349312254334531056548732307284611177106814460969719025263329762456406001811319370414080623010623709647735494030850092989416375645917311553201136189000371257037645713314244128658145704733348036868725247771725749872481625502890626477679634823484916457724003569059466975174902363023913316118688112585185444136264916532018216857126715066908552449921484311831934241281031125324748898963605924979794900770047185190787954827083453461507749647514650973621947218318223052531135505393709761489039183018840998470471762125638632382432586176542916933188370219469756080197365146908761137248219781192480108912730264303284811407862274584606261046887309026942348251257660405287066055324149673608441605418603671300388019896783813421899527954526385460414057598892893352839374662768500427434661970483925709344456134359950224241367276169492013847902993880440875074528850457193106220741951217713871168295536471340385868506610275875535196496114252694869144776433472602246073125212201671510472786764761418680842438843137626351663182988076894788861693490291218413429846629936329437139302365984136623329669404993091386928141500347366397623280082799732074758407574988984875765912749890438326333822039144993566711396840385199729648436945794345247105025003720225259724757540319844091548227720669463482526053909716152371253120770699948913201431370836247806204657472851968429635235059693306443058063473191611956679375720478622649707205192487408658752475314281918654551075569224483087175758429723274311915903480290702910538544916512588177594971501987562879011686357231652800371440829498356279680228406382372222479524909450502491606358160955242090288925868372789417322525624167006779348917291616996851331024646900825471257856887609490177392519508149877121182365799005973530927320906655745417216040056289045347670981818208767492305759844272681066756802442258186488010765100586774342753607110074788256542349952962401293319473364849709944640472107596870390460065187501882064414850878106129278186604813863400219785121626700565848300033102758565265397674322743054052533622248063118305760666856246330677329992125077428426030119798414510651485542219305469501828253890692116869669779948766964684795149963936465629943251662981612910267466545584724259107880358350575128657850109483173449897319215342170057684604584455811775686831177844907562793990614393261440582873834036385915749854366841109134893375134308003318490071854220317383541992110146460771396068131225779295126870630186201202449883246224349912096352940081906962716489080358316623862104989080425034176293690014449087595971281280250208158718343631415481396457226464920036365327825768423637701546645898905005647018230696708076009377117518708759701002513004433335569773975564972602444621665000674464828945058745459100365815103374945044155530671132919109356744022142037097091345243402375363006498065772266169965462303973949270278393126018827609346303621275510284348841473016343766421128656803358352813406574051029426296462852139171010921632359981192107331384390687956105827010731008209969034267347088534142773328954631868809568975531850861224878535873559437845164981178166045903339336106828891392995273728243645381855920492750740973672311406925725178950311463803849371767797171124461257038347813413411365797664850388310019951058829060468987303412174503590502989643262412706533697436119465038353936772383543853746748767791101265235343489719020434172217564739529187323978575025419206648290538919537792963293687971804619632017881685407266817616071401531465732954005526025349224381992175204138951524219132556855767520116692069570549338606663274190428838467118436327579148844947238864437810592362116591797667934823368874825205900296027540532428311844667681171702643222699734065443817805204799760849438394590063101357329525536712100699698774289891155491711842655707231484916921701050815181790196246811801070123989712109456830393179614586650828561354932317845652160024079292227637440584877746402000983417070852102099374804017190247262696912207240115770711126516303100030580505680723161795904323160626359546804965310195766013406003447720494126974822806107642225201947153478314199459088248069670386519142491384766047178692390532711696888028786137314349604242179430487677793816627935252651705201020818735466905908746200271056260819918683683058701969910015815110735857267725154653411181265125154291651184833878602253939432667013734856560661581867839198448748076452408639803513720295867797844910349289806824595777466470811203076025772745703752221807011740799475459091255934574426231706836853467898263815925362984275789079964271365216330579376717992831508846552708651661258838957331917461610322262384366528899249111592168923905945083093461516487160391585627858237733484880216916723655819167042194180939631191040130730445531316378865925619078460985766558180664350853108747374772861630036336748544189564064617533263422142022918027486588194364757762826121050324216451468939761849231574004451975866566414372057894334884302010268999007258195990692530097590177359251584900323823929826461505234717492668905484570836255105576733956524735272915257607520838252408315495398572504098486571330162033184693475927215868344898055702887143637665384624930063780363503375389837850652914199112507960033155497252490285097837536403779347345054570763182657218507815824656099948677815958056716209067683584227187653915551154197905883259363539232458039827481953203196792659089605000170770147013528797868916208455685985255125066177940954765646431867391758736399546697330347089194692040962525405856093393656670347528332980935274233687245960122848875901050762142358006447535367936213255136224946141813993341016885862751322553305346045797248131750485703966239972408612059827480120039572484516632669999929694495019465984698939496596557639786055173294799687278909807281618202148195944369274185374334951222490076576316152318535066023555584315155538565857609722419110521796979774324163867725559730337403739454242610570337750902793288990783618672312969356429591611630001026113673735470076996164721799225318430381464128721337944129686403181170729688064983417785725952681019662265558214166523013199170405697907003043082248557797053407555604022860550876387007198327882458297848348519729996503747687991765802134544495430777993982736187057060005455354775864146126060031344182916396591627269660246739505111247835635150996713569169117774615965607468860584394047234212588428813842308781141492492690766783713117732354101984829105572461592663047741867133450645649815081540407238378360287912427694947570011716392298922437626920626899554965373595779104759391766174454920898900806241375626896668337439274803375275166264249004157239043066311104227134725797042401292640258021592525983899167969396850526036738481625014588953720027322263700897260957315661329052735312091624665527045416161576185349743229026695039801944990909136687737669819025617942641037123271406252510964700774254458093133892588634528852660514250224665338796505611211806213545963159362476537568324878038163705521704300477095292632134996605449755877584585569167990668837415155394652491312069642365819340743449157920592008368206523618353165913701765142388332544942302757725508678977693319734225797054013391352079615562161065118465664180527852750748755887245653924084663177723322078777540809587491903123498160466745820769263101476503447730510617274105616976436015049503996155020873139553434235901381067247446727713922506650568164949057312995611514908702298316853179532468201132555953091403184020617175953870909098062000854863974468507308402692659650923160774398172285290097885825826274072950066568088355467589758902797448029247154309566440901799154967564236107817464962514095364619420483981419895189905687791438396965333210486106306464023440284154717568878368386232913272425007840831800241101841796351792712491528256899937026756002278456259454095262146123662241355547059882895736524265191658607071605465192838740476498159611736889911118454637294211071125579334589358460565740852943333330033124530438070103763691335812700382780845799229098582142154481228431983681825786954791431685940920663843030246415407565743940769587290733944491471385096825243360837990862521455094931526435596178788433156978743162546275229425991924024515028826841201603962825017873142825294245305457473834378833903300538512137621580498011847361992952944648983703751900181934176450139788065515493726235919407734088433275030813532672711252002274087602710815387143079755355535462453195396229434034271882406336302574422270194278340703742244052853185848584511204949418803429819720425423591229691859349237088897884070240050832120831088805777249108440011673060785019850210115828103631491506229223884717066572415664902528623843314856141081132194988857455428290501729257452748195803026107716249439001501032463243295350572653051374778669265359457586334540179377692836242862691425878762917988049321230318521299105433059592707202460950618408822922973403507803698082258933828692164698076338656522540937672826116091989553940107104140615299572846685184813282035947023137498455674979728304155830588111964415146753532810863534017597527661256442112591454148964504596794303505297596693159901175529880539513991226708580152621121373766601510862106190830366172471439591549070526585449740113935342306669329449957931784504293146594883765586185847955648134567244475457647381185960097860630655127533016693260125038126170629913965448596786215530164763995211108354171817707521297597342455031614483090371849071974051769358541667787263207675354040922325547392244087130858857874270193725001709488197420897205901929946940740203712873377974647083851408839348359904243653021565509608819334711390216950425734885529270482668388016717162838151461579893783942306570088535162399723432875728629897599709885659098137809873730477134581153261383086252845700887221329192438639360838448539338721871776262218393379840630363516245812077007037104727950644983219538990093804017403661087260894756843994713397007472863297777272133354142364880450051073487136067996633137718313433740759236189488662650175131959979077963856665169273507586065192858674488583708430704817551116236103740237135102834133819378335755068739354460830047181690075248038598036058909687556232102462443738155226146889600651261975917047518658502322192613525149531031516397607264567533687676758226472195420682087795189103363133695416741355896166567957433981856245815719711847384909178629954209141252422018453738229334632727020052671821054013667870826433667870830353681900861952742341278684368812615196937892160003608620462602057003657676297329385622039254961671233076637126337285184445458262934044614327518034579094223109909706514974580284973554545769542210527039785654850620050419183282360656222760007605540398992302171789549692364670548556212112966742097661031546639554586816557049635281271337805791262606649495907453273914281430948646974691093952038652766121047213624118678715058241463923928404284997373616645567577465131269582791216102289654750586875410302547675483410701467159411235115014183682522815991842998086951663984730338912431112602326552631313091608516356445930694767613456387565090542115029905997391626373597486941818655995361873355604813839244617869250615517809622773882237049019844867850205061771259267277687680626660087547083798443607220183394855344569394168399798607097086926744668175302464582069293222371517174337792431827369826283856877277955765688025797549211991036108667036647628096463369619010079515802949300421545435839695747099952742480538222958003881977442150266667904884054128487006890608827680806332268524063252824100824924569436754307943976634601050247463462763575536644863561981041701219987369749247273754278301864564803636244292488800928077851443875603293910626811304449900824551630466037060038857431928224912098625001884261146566697114140336235177026852181488463486989374313694153321664284422950672882333909103480123371444734089402704563110920331256267768923579431512860598620527818043404231836715792451099376797681128403461927944989068694551536754183036964213913403944981675039558993594566569415272728758831936068455646277722882451849875883580265989537190165310217771318735003641134093394339437155075383201619613643234801758200655866195076514847087190962970254905847982758952739252638674725786692354265373284341101166745654908007015284230286480994066189391004654774060184530508208124448761587137790032593904729921350285764471687841189758912277234708437204471565389196610138620454003522904603372902024605375672942687831785677871302236001061269035530954378026355889726420622525277551601896499463064156116349461952813410274442356222032465480228099855194298756896162853047377546181568183351685598268041661958414687782000954081351290497451585602106838224569565536729874141273976012356506723847046706736479607338199732920379635615809076176049354543921088053889351321733381681731851745629729552891436688200001557264849272640958802417929419267799413742571862486737157631084388399600157220136810862858627627674706992378915627928723666839433531384963095012647156242435261494072595841590804342038983962941262514723991901089673610008878453019739686605232397111631442826064294317186902647729730402018239707499522490996570089958694617906500344706755038870473049337163382550069405735611807031485261181750012848676454513480436491905486403055520086491074857531747611050709973663825827437089299538470401565726294478311957765784512924264351597732231365793951170838204590804416482147486241344100984580988344260350169342721983099234368284945580102372062836238370058503997295851574862031281480197843782721708634220875640418753620205430616884784638493147864154413733622283026494463411595910637336326995597662482602065137962635478874726109272059980726409099055425113649991698435694167369788847292166748230064751522664755956953504356942719917002902070288317135158409176446002088519526840153860403052922131862513920706100885803093496475082529670965076058445214625686358710353352626046861592002366681621060732245396403431268759692789893752566778954142967665941339751664789641168526102595747781792581012812522498197791878345060151621034730252574229534351957612429261879844530254089404900130306142398076748849779421370935526580932135024613476855521492243607568659000639981097224997181377386940036512555879623355167114992258275202534265789076726763276686291564982384179543040441108990789171759522529494406952594886167652473000072979121185118645086583892968847635953085782919127400253588327409071613412605411176672276991850459335729251271775317676792281200407871358565425616507312553684805735622888179238445967642347315688136841991899789640789501281901314360532931424503017959295853850212296878205735079419277195585242299130227434954597736469956137753186675796941500259258266868933609243218395197707441587335925248718646044889208361480777725370104085402578675486747981195878943072885289430779718426299245938938327645520333165537208439909421783351677340201639576446841785313251972392504821918090403445375634919880736087993042848083713135195188302404624973539977175255460959386076949307838048984522900267375192763479012395943379380379139952346664491672804081205097432411655296875743604300074768451233655402625365173917418936614404305179628426833716356836485469939055753927863428405461513959047028824168252139995295599302693029984968581689036639565144743386754386303864708867684361107394897182254892037163976903026269740616725147050021581115700248889457604222927887026545230833635579226230763026340263339335577163021461009177140979688341003152466341286224183212354134111542404984825643755873454656522826734056245469903938085988109365688467387158575918807100583372412088122122660240881887088231380142389115181390207525438173024960542612603671923794666050244892669687124994977715610864556926611864232098843235925298008479905645773726488639886383540666401220345093197799996439839732278700105556327042431363724711923260864932951165133744896693231645293974781989793857344660234239626843352314267855101988796954596657947904003542450725399035402178270364733791443853661800582639562758381558908979273805328110805770119014177150965775153838978524636807003532917409977718045026228324915247333635196823970773095739520034743077458656489819221144697575272348161927409294456776655322920143556692411727868259379216326094453428837325249038212403610783008209095502686606744898278902571342234256216698252054852709501051241008391891424206471625564844024856335678788357992189308559017736360918550558148749381444093334267883590694417044586609420846765525377898452159802548485950576980956020811602592760499121986606887891354630037479451256258871814140456045324775656833303010622162243327155075823481211340018450615564464597896616332238969113578371752666991645381002216564204274601261335624563409875014304372914696889238646952099836832138468066863494218160314958044419459213229990982725547227388090210319940361306473648676246207086566237611410310678376349405711435556779866964095385593074790764669975207327216127602587859178875892911675051094169146349257198826127726878163006158057190664663894598342888622958895859022832689497100114555295174418993703168631291358544653518204685446285637819217969677967137274622538345542212599453117136509624443413231737621509654355536409055609263085811734652367169155539041181426742085126449339866848804446741094073215954513249586344044194495157767571611084254201423205670023037887528413702889651406726573202744012191689847199061200930357242355835676531757587793492226913255028767640461893762391438155181518084895984710770496661720395955940355404448264454550428389782220833152296556748836155944703227741457823751255108961641623667720700118315289078063238860908816759671284218459071755158486456540784666499607023200834519564675064759377318249932868867462461944733097278175868116370816347504728144863784358804768026530168046184503076031554740311974345317418925347248327474132682604433475308543324685970347709764112188786540343464666374351198424028499296829226851898741710744417265866786573142927998860293002773107923176884245831441913954025146248919181189859292709337943737193227937344072190558782550559531164066282170486864883461574539759870091851208313844512304316637641027842711251030030313062438412004761216119840578158903615898729598443030536356623410514584171997277519205690151757728678190912974047458377204596963424668982365657329181091864136749267829035275643508189202664467692511129553281197212885190830523635698678733095967730713114826875357915063121002983405713316563149885462535539168265476795887327744565374433521605509152188826563329074449651873906920440490339090452043514438378740281583965862496735997722021429390044710741926825691110620383269657547060132341860645921281894071057005805834108855271817648615325615253187394757322060075398864677502328676688186164290433773292741787036774994954600696501743351850939649283490165823205808785258804322491938627178536018373361795290580145439637961385566759867366969496516687569546084128485264033466108348600565624887608017244371350077928719530256649591371048929477662065187928599044006655625055704188504873108687034115233954336428945322712678654574744148552595710283401211754710294478312257768383122403581183193916470795477029882562888221693039227072924531624826156373459417203140212503565544379793752034024130210150934823708223577037321110316899785245036713142411289435740079810482393722841672221888555960814243495423112167754513509782693330787319223176679758131728306638462844972068478878175537168888552109368168993831619821662588478004171166659477051569585429112581867287313318334032227571429426553542989218387375784423795778797949598287589745131227063000850182709057328610087802735769320182121619481990504965133243295177682459439692444539715201326094585854697112941655725286783008372516609658834421058070576488897580915752403063885908342161435238514203216277350499547811385531891309131997624965910592575402902312827576893781748995662998484675270504821286897005712400248872982052192760507402773953591501329361379140986618632482916736809237686395323299682164770023483699631916810620399867658749324922969080737138010784210691597154174552764117005431952036527083373390647269607733003485450425241778720816768791348504922525082656272510642485196538621816176654888763213806097379390739423123677140120191752387068690164527660404821966168498617318463792737187891509076706371150226073921312430385336598653157840138783843759179097140536289832000176184657318387934358018974563798004019388556233604133995498464274819304101086143765361441885146826282680719273708350468987623593764300965472432752809143588380588720284372405350111177994833329870544537817909188223476982623321038539875959498866946444740267980725870202441733163635333555525246425026992933226232568021189427026484235942413597355740342646953122892842269345772688793671290024104964374576949693361258480575780996056879298278633854283021293811044570796389862095467099269298715068824536574346092957876302619584222871049226611472570760690890102439656143166342272486194410592297193786069489341941320436704871309948345492204741183650419029705424036602733267312733611043849752313037547265904515312675397896863916473303301137969329422844351804670916046743252856565430600118001577425921864124199616654027023223455452932775353563986966095883547462973881845368491592198409550855353465699147983781457802843318895061277508050347310266375687530433285589217517793244528370495889121594007877804383802189449751413442334968340228359870187698057738576145589511480848523279139300549290035671084718205672242850442352900893959068329620280520286505714090912800803080085176662395033824759755562846317496722331620390228909508951563773445433117914280850050805635758288160524597163665022848459297510192151161450394177466733105660190690711846052428786661365566029394339971301787393651214105910049893464519558941943537930869658520564863139395611767097585832046076133071654584150668903471846541657125146328821800995121226046550226835677101446937442065796613346082672496780278352991382229550076670603907626409366621855908662631012541768324812914726399104168881745801315542999765561847870776581671552836511224189478740771219809731388141312585320712733683356510023812554739500225854712520118056474304430290570551752690990447806039708566145756144947825038834248671898763352996644810285366021682653124606629898226181124729559237942859451569195302058239492465070100536382295647349511387112522600321574257368702502098878620499416504965959390756048971369701784945505076271937312238714797787761987079527408517235091360990270438402589640962723703641076017329334713576680155376653745390454533853026719719683385348419346351271048341958548063681715035373443470336874632083045140255090066987648463761571397211795578086589480563582471311732415199846205299484140831561151446933057613850872950173162767026240673090990634998134823141388391246169536917626029795243741278775000819040239446539784813559346093831630824210970886215010290294766395995901708547748052294846060106060081433170817248018875613161398257546950459976892378090152016002169072789942085657557327415916343878894181713775894046051294142796189320058056255539270114071454896033660380253840155569857535839672499632653917838960178873463562707028427961704391393600200167115317168784772165602001136517358481335992904485259388705437816873565097713855914071053769143263010378526058859125819571801908535637112194807315848761305265966277976070769837135143880017456900776212655217221028415662393959376035330754887899891671407796410701987999697915480561375634540839668775278481403379679974835247260504127951191418752066868998924470183498650387919323768650365299889632279180506684131672854932462566661964312564686184960322032838444807367905608585953897461388498847168175633373029840859376529756924276115994226008527391676844591679595308276931829764798186672167805375613136324796947278113002727868414668718958117409166298096594047159270304926571858619141489697266366764059516216028492844885065934358912877670946372406495144339803024209698900437292570282358446400219036599117516713990055747430497318129635370449157280110892274402146698745095276973098197104652248863573528388328418608380479270014843284498032555683955079364659506068626322099373629103743189054477928542421769933027710280721909219707358449887543287229180369712039992767243334309692728973602888605370158283209861323116872421172568598638657182185298191119741919445115853173029070205398434959265709227707555509365110310334573036301555825448735195187972703901196948170147021954712417976884555616598254578192440236595884219631473851908328341633532752044910842094946896691291884388842662654276055073458550211198443865322639376867951069546008703172040576325741468278708546397246903266668394803890647614054531058379853186752488624415260927054056142090771595605686031443105018421714569127045772669993334094082367431125731248313864075261042624095369058524721358114436444096780444014142629750244829744514825064997754393128745173880930625454337699481744329244807519527987055697130656114518219765824010631346259612674151184923054924509504975897442230438202856021977384377832904547659536619708994678882810332823820702003129124971953870968316208864526683685220593670754543528054097962135987164702210086392697329774913512790583221743253602883666480002275380871017794709267176276611692222187590872243247331834736465711598709852794274612044125737844960603611570648812502510698955657776698764993450423029452911276694528837980598260202122100481123357938802081398707591266226922015461473187152913539027494828049011933110637392168866038036285655931853680327835475159771265989962273073801823575693584981953542548511100631598991672383504739413010625186737877448882122604104886201723707293685109726715530028080136883236470230417266372003793332979158038832150441271958274413503049479426410831347803096898999363770697724172409494803899313167185936125860490203168308050403600421711837591391121354075417764976274654544232965044408306869017508440330210195933576809885759179851925818016926489789613777698137334283896894824205708039556006443322872621787978066035568338181082647265191841423148046760696175565522438921804264882935416459904713848942496642892364129607155144537452858529285556678612725830143521656651072110448244331243388410785515283768715529843374933034071870370005080326033114751710800675530307266502744584372931543970473928609588140781849207970817248596043391270995734089904193398912336778233474579349721480503772901328988529728951897957858130893656920522691418556787442096551206624843736400619069722350948443247997765902871726056790884578379664348442243343046767143144903596424538457236779264254787995297053491015036741563575496958722732518516805162921885145576258230246478420190270823084201021825176303442888101598149782316584729973586774079233892038588664422207650832419298604332019952705352788168358683112404494665391267859712174183112863133581975777321904884648563855328788123466345246650669222050696276796152011438296207779361614665609563356634797851585088094976061817084287686513432085709563107205600473429112503996514717153123568825140850114497376939262669065990773285586197706718156610102631190115661113962569936057641566023070409842327295403889144333960119581221798049652375698342783142547032093312858246575991433151270230133050690917861762805031551951640617375293473222281733625271945691867314308359904232911496256214921832284289484038387980266817839895403247723132315404228910732217413041601722662887526292539005914922109545418520665773966532492502566725280366170624632777595815749661545038689601128459344288695871756526189967869501054803522824994000879385585825126018282962880057026584666373581937035061387385758304510595502227187775803541378519540240173279737873910498336197053181932037624151003971712931730176979635127021155877768385233239818695027757597128279526678814917424800320760309649585503960938950726100100166233368880968771794261179313781298201208129282311727997122114927443754502776146610118709400315487657105051413235731687652665532161626368608179102993921124356301480024926846943690514950652584145928898731286364157991181887319079052555778866612103076493762548590909726459266886552055470045974986490760054823388231302594798009314024178690831462751063301084244858416598448448964871103125509859638340699545931513724464986681850576291085557726173508019795449583845243099847689181968792801778622948715554693342798978081213794316502821359532633386710338783770294007993405754173782627161067563943400399644242831448679458194462903485301320039647013360784335021818040924099553088779476660790449681657500827552438058259287433316300191340868549906577332413195099339814762868441584324318495673259690838457175984737880349187543831963495345865727287392576304700415610457699298036828029956050053704129064448654777284624324725629038831225618391897270065424980078631727492632162601461513010672448845186290375958263351700518772154029673547188419048409869477973663093903402108526925406501416738964492144606849282744768874887658721803552416219559233281044615526252963591474129394714142568516370718612218410556040681787337954574994119980119021459991157689954694550772520001154133939395508831219431010687632904612108972890879467628485611195028913072324122267686626372308692455560313319245292398645582153893863677141125435995798760054111514885631231826694874939907541424990200060431540108353628998012439378998741062620350642994840553900378778729301955624680047365684807658094361162044780154552802843950197803151230194902676839044422417454116831558634181365530142256511903271906322029327162662982515921060633258516561014802337890308748860952210308079916636517343410717982403895875305613752180641926836763402297449439586353826276305854084788646558027026890286651915929997505755653420497607190064317001803788644898739627297762535013327703027280423901481034928986226555997202435297527631533092099525551598221850309112393649409442436564892296893313114611431149327172653673239744802412664250753702419763354525646624292329887724051159779850948446175561593982107959340339781657282314815310204659610268338190929978809314953183777957347961612426546659807174569505370138010954180461865860226883237293598159068568729865772882596951081310481752785416354331438340500758001976072867034059181875544116366604038902343962832752918081448889946616352337159730277062750765689233122755850599403429761922729339123162047550867457269349641050603293970559599219508926801226935076816297072509782747942055968487167129760842485757970314528072817999983104513363893426085674505633531360315317588922443807979596744515160207419716486054164902401793833651416377577695783366335033353134368927872734134705796951822755038082572852996499355537046295556379482425397537190954684904088904592682053772299543607709192890177866483105218545593491238496765825094546502229794777144887498626943815080906019750547537390018141541023738324088957194964966197291269661795050482838679430327743894990510748359420096876163179247019618809467356534783807641833664118209173078139351798490741706378061271409306222270029827813198248029713514403366540068652150517309493653335433189833132790250174914974986533101262672045415040301613955350737318754144530930137752425437762438662612951371870481143348827750295894086711309278305149792261221532463654859713573794674355547397033890446970965062312723627329284486506577179735820191201803460818687770238715709085959317271972028160534373536790319138308803823668604677793119379381135692309004177186533133692747243184274138627521597235426828362269865798543205385967554623337027605666990663445964303533664623572775524960166389617209182965458912148269466247099430453384198501986631316483907500398027646692158749950916891682996262230768016148471082581784689712828040657180172014746310747683036300467984115094402537004915978176286371837015758726948773584914109719408628731681409425269923200713539256462766984773649448840920343316157250899572984023644553963735403591824122812677190321610739061772799271565382919394537101271687074705021066657957101167226682375603370843047245143327860892085271944020592392036578854214826637595948956303940164291912208704739486578447041275816548372077204873518133841661678653147180450578354894904834322290802467732583017350331621694826567969183302124186574863407282447817102898107244335420613584380229992251988196087169173878023926396811571113228710105623701267989727746155581253538259970893431832879840342272453587829748872998726479236704512307306350551082383537319855725592519936890435935853674945280675577247236158608349369234110354685666443961534173334612665443264935190368399626038312467043362093688898554326077326297235576147012870246080860424183605919594339481935313878324682102996712213237465998781042185486828869447989953656360847384805839355069724947611813852050148996433375620082872611395575958396878527241670326250895963718860145510922495237088577936643147772591577275725391560116190165048335662455796548200438173686617307266041333477138852104371559283423805519271828384478208731500233438182608211645239406296925739359560670160940094545098719583911838924318100829702854770458979769295179966135948349535421985163173684805470577006520821481790708474840944719139794663175231646257357793729540968533234494809708056078915145782843246366112873124794085118253575449150029368121340421313719598937121595181080659981467718248256588573865772745622870660381011186586315876481748223830070616586984169904740067423392007868192686984600832846951325801698109479763998891192978045361062568459136786212641759603734548566407664607814863637573323191049544063439840496813514956452230832652904344166515610675996738047447485534483385846308535215865182515013464268898098010683168138298096816615145352947157986802423670344112937086455991847501739391432236014492980921936338057441034043077227557576788311839048237248817946405087850989264291809598177229836820049026730856333449783725634194796429098304542847531926158868171427955979914126048375465526128686096054432855697292843533980893207268718842406415884585905875046756479526303132219677538218962130436517373006605980915365431148883520228301264924645782396811916886451014896797547682654681770594549984495211660036628404299003110247357450774002662626397108057623032555582918764873251473312105479113112589628428254996963553019667789618598300399909268197101511962501790785561659905788088383035657232822589331413546574294760907824605582773204122403147724267881350652796661581790765744150513032783433762748184895127892840038204123150912178600960991360954568315664525729156631012563699220676271882066644393317670607569726746998601000893787538907185599225294087436503451948987064452802205595282652789598453304365477259450328924213182903791220514080019536769887815737813355737640782912333830839796688286210909256385604038287329770697688625651211229123377694267779039815803119187858217648714549832252169477425153891986192134599639057901666693892359851879539965465508444378455157354514873525482644929599679750355647547528528222176568584488083899160770285718441795136790826050309697521861827239561700190823157973377839846963753903417819525557180061817763477136320414489015250721547502494429971136918186113285453195450077776177586343599944492173421685982408452406279316978500890468225709261007660438339948088461970205287300905385547343446799798761842864033898968214505690149059151279714724881356978938964399402644488184889305973845298499747846209473877522009659094031346690808138940916134867997851531543394581341960889470628731707242522825646821323031248164610814986969467317594435064873081516216901575260232313004529076230868698403881424043576488149190157508071355624156617660781860247156373925635452667566022355527351954192517475845821033992670631775513830870839155718230530831004305651899028672999280073520685318411806918592308518630334077186777444402110688736421361955558510824246170194678537718411195683867353219969991874692929103763996397772484827496035697699905176342506429107617719731376111932383079485465853254701446154254568078105568312377674132740365045050380975774445806457219607841059679713987061109921161476834399837072992401076918146159021191766611760522572085709362520778468494296138219366513032102175002765626945430436352701984093330831979186604679504364206598660614072794093314154710771441295419571938124566349114378960901437376175236405570624085922792249204206994247868031473453648769424616182693454458592296299270595941413547611571961738219142372477558953103909142900877776526404064000258500100530401693860187520002198116877329728961155342980597384911178481707230557001170145109862194335931294729453559367661670315879225931318080060817283745993564265270239377490437153048320751632668744050660455064609216067021844528769360535251198379506846474697633133543515476082098774441802735567525878622646911322314407891799978820951766998762164918914469415011472666933669339290678190830226048521334526413365662559937739910449744705820844822216749111898419824807744599829245905832860151556088337602272230091033851976193122670717563033157606070032592854916254993317523014782443373383783363783260690290539851877238726361077703956019833814103445601720505232651501217089301441917709617409992476423396426535214338672356311947422738385408940587729703769561465283932450793522639105664177880816917907680524617194063315117979574271685600343388492500183314634062968824068538263586402406605032567784323052321222760221446588199649270265796200906320419600025426893116724298871891459099866284147982054129591927643527771633228604789411750117284426609078908577368012947716521141734452388482067644026035945628285548374409333828880026985415993150895926178986925046550902256608158433159682504885303650364342578425383309337327316565563451716201501380574000654798904196277535975967656910928119940101870793934626410989283931902254666794861537858899647827225517657142807336487321290686006316536003405670796373240782854522714502193601976541139326889259195669098120597348305668959138097366585379478118847024662780377922421208040849882390745666967688134894907347732385751388801040776146121643169750714480361502315836164937427132404265056728466433340584904666791677195362271706457180372307808778429099923045233705246088955227273545775438027868941082272203752517499014968254029656669119684196672613509824368401921566409082687508938546067458886247455115438759130427735988788419843918327592655255967982115134717401069667743443849307540990038335922046453060081056031016534258895719832953879920623911000966560327261278858440505039023808367558499548306564336223448584110611281570364715474557816160067910423429319317874203530780059520845563661963610002807780007095483169743867763669556051557476929002791865329028701457496757511135775325023956493737742882167469826702737204237962891964746798925733960687926178681704958332664556667696300894421568359268365918375173437497830591002049230851973596640837467902855949257350906242398774690833399951293907763711950123560960503867523569982356278982574657096167081665709574309630686488658267118784457883064594528875914197387652562049105325688674067734271144709110434322608105308596266594454457066325780191806173559808692635474824181994362179743955372012727744981383271702439383197924936822119232794423667919679112427966764545613474573393353559957012571312819165668285504387928520404431058297439081601660456374366914816396985841179346875453329471212787112541926321201321790880356624775103487415932206551532634329929011637327632023259858233296640011556354413803666132154983646230999011753499661629825057207936728847258746812804811452090456183293309083695646414406833561241687803931594230058208953270200506880167030310856085224706310890104960952590238712811266628073734739829546220060764932877438488157289058425544250419058338164755971268024052680991201532872477080627570259988476424475889988662682578571591282098854804886821609421710622016286386943875606748489508798717010017376126427364000741724340955370938130851736094924663497168735333920973219412519592772903951583561078768904837082800088741941432957657352697421034890924827581577921561410160079046692861709385833178817197494793762083626162966330122478516963962532266712541375602801162386350512170494047516693577656068846536629116526035397686777080034404964878850051974250894536747614492509295990444942388691404719250451815117543224139139812306548409391642373147144467058476645378618537331848835529662069078991705197801890583036393648590809940963010580559679894209364465306693419448057362430936080244492121026831657511839600589156292167801083957822280694836228066592142519174978433674880552174428607285996156506670298854173615274964124316025132414016136630103680643111803402390621325153090375034404402747938012000179741229736671901563267222446772826656519349695274686651373306177463475714628146811920491971561300629921915624391292283879960673886489382068900022338959031543941605154061321170241835581548273494268629167660683529505358031943068714828273943517969526741920043590041333803639861937836038529607763139644518985892842735445219132328488603998886160273463083039044825718185143921791619436265648103736878015350036270806673929766122607520212003307119628831037327636892903879546297860660897330749598204975112595870938538180624237020047476239447416282137646714144916541472707151332545855928491227839337889604468204879409148411697338675964876318841510310234089723115991454308250743753702161749267083241441208291751498631551536327737558688438280945246604480998954092378990499624564417347146214265118942281070125735246020889509312893637108562527404674688088307801053520426350166029538567093878076845583432527856095210382110360133774943367219750288996872472959275901027311046972175901806130288241582174872898929244848357840311014192446835829217300853457691051415943387114365293768472290432874961479442973705196190375535721983643714938920295907155536918367289783188270720280024376169395745637289090475324217189146679629513997778061649886633991952201693615082856690035677401918373655936619826286826516696056973057776143030667073073080993416876271746356225995072192956034564410340350868489930059073710654528391722364459851476849837365622760786092424522476461441406171543491340996817779417872670540059956099956457249328666317762056083777447600847188876211083456279884586346949538301322726764463880070561117568072178445969873373598743942302795997387123854216140895836499220684109453420048608312445282609376797703576998748408345819426697401617219753526396829684026978447795152789424770659386869313658470494282065322399381906925301873304742473075467219169206780474429023203581639022103917119949503190086240347997180710162531166116600245556791175824990318731717664508368616767228945819189307461516389164621616928866052569581830201290064073602276551834757945409418408924006717971382693322459628771092906665066815170944719770281961746680883781151498818780304493630602442563918412002117993653400507205796327135569222104126410578546227877157172406901070964583303690473008164895746917042646555419916396752767229356900521583945203985711867684805600157298846267846844156120852516214649030644637904622753149899810459035861633017576350198158558580495056348090347869586175784803373940655421629540583820658303196402152692419973635530055882350479490986552754402724907574174764362161483468447822305079991052507023236237475769523081332483008557445604884925420803598525783202742553030408116752236660557518123473875944414321995865671958904976225243405319439638950473018012416116981623307491585521167396784567119601863309189009102842839527720907947993888043133267437027529834761387428539727666254674793180468535634019559038768225169585671534973036932132645439299909621090661575999302694245040898315189008952954906874580057776436402217103089481506713139820237965312301241684144119196604167628150728211257572800390272283610531597208732189803718222085929998343134313119160793413522369876879468605354314658160057304425530966845239909136035827127676518274294116335157417790097868518489722834081558705000342778174474196849260437290198759974738517542825641472346388507700044028109921372255525486859835132343722518384754022236842016560570985722556615670030045780447346879344173628614529118777974958470158928995965327147684840710431591841593427066095983235104842147390871475508178925836727525577841864381347366968742139904544751041857153308922149795346433617407625425367142982307364277935086850742364774822733619843526133018712706191555709147461030205863230315666837981568786553210730151736111647475057884922472736040872840175012811808218509723039225919420932609544458922550259721504141830856399900553076342383611891158598861769447988212884311397889197131994066756697131670277342291804164674946399752681555609508384176883014668147815174539363401919652102464961598084873646991752240684033578547938104819771021414862984116966237790325582148688079811378845742639952146289811285666736263256337980904783408826201796933154310867531740938249209496243057724011670316183978440224853399973791399085900852284533158139118888567831060527620279395713928430478570248567344932152364898093888376221822224311014802816721800616628122674827213853839123551345758960940233831350254956912740113686986493432940412518938098949979868437909173568270965399625515446402876496923017936917340128341631843402215435558188554427814341346378240133551260266899933284781254883603529401522293601149335068609751126480224703521022183073361997796054731525359870481775156295776039330096692457348071125124267588488033156906698873690173404619828309064223855712052269989987456701890718605671546010504295927436352052239693260518991582874785538338682436341530928222319278187676484721405642621341973583757348271542020582711440245582481252026587821212802970051577051313394341262191822009831013666608962865398264905388096071560568005351241507795736648247364923697524534216128980862599185834342292338833454264834310446454271904515613424285815915762572171926946813320523570970386601051070312985009453137525157950637227451608781843877317976936814152760243510740969500310316956180259406697170171305774955007596427873639497011265650147547644340482140194298719657131572795044848763907741164811016843800861587521555396962020141745455419350536294638453929215834659995820951880204729363086931928724166048820762729225587362328267874313405543315616514974614343683099286149595998742752524281535695391570119543597270863220284385388792097785373892896283222480757843722642808393013980003591854476357403518230100967388414297458293310242103532381884321454108096272213037000694302952976266281186098698681086385563789927976904856938488977027665344126655807441499128236799147946586299463679542579951439955599106372124605335243539741345615489026069161300312011552914645632466825591549806329386570032162931589105603586515063187445658970662620948570104871080746795499642401683388116905536573892174951951413570045348199933827258392288025256700738428359202166048747157376626692869543090089362554566497386453640667557553189939210936818564047249030865053580156204992634140330065327850640520670805962884707806717057351989468909380530743611875075125776058560150282772729497828816883598447055361701429785825995701859741035626437240505044209392403962709797757622055267159383709489426845090510511242139262191725900701352139181488318084701518153923881099044943674999623860512262360754767440627471185613447970231533266993622158459603224519300090244617564393006759609903782105792228816719875935129295727223267652249388009902253460105582501984789163102668399365617904894513932596835366761242985359645187978382450373726852949950741375166485072712801323721596245253701797068977007876333751009065295136428754237991022352131443673024749813527231229270630199040042672959582330071967923152513722692215497105965025437080996441220038982667908712756102628944644567498475469656270199622307867992957932314780404947566185010059807144573065249940143908108411664099811437268802708144565224241888317529791883073405058247645186196923480019111658652841076690536310806317792511969371418646555403680616442051450512496040080077788667364778410755004005492115054215700637400521808285693562767347656483661174530894371713140106792317795551681500256079256077376568658342688135994291850374172298710400001259025287182667063778371967348517280131420777135309576705415544011978700501971766892502423547759521643899136924667706749158251003885702264469577653397230898930754083965531749566304375785758247327934938523006386263497744846569720693860139465611715645784009491037849285072728849832498492798695640823006991645612932984795702469642214186456841447463791402320778292557950445289536166081837727556190928860536071133357425619852881942093820189234506111276238100275244670383705732695323207395453358176836088777287347589867308983982004309797270907910867246976608782888556494189976464010559072412364711522475857591906649728739246896327207290851833344747833029029438524522667978588299868700056358378203165671496405312635658126165732266422386883495504764256548484512479976586302665557736812210253630818725492923493567910945890890404275889552088117144686784889302254795561898696725368486703890881025630323543816223921528232464718591591622993194381859031275865443996965402929411543872535654278134254471008484508793913402256328622795549793100309884903701849329289609497366663154354256082392019481560100337431383634068447883738940604191044972895269237358639756326444651284425519388670923613528766126108998360283218852319173114878709668660529133233012245406620337113170456751336690700255086795631252614787610000740612307398119836365889475471619373291062146150704826242996545176766842073589244361675381230749751379054651808766785306203243025551181425642094859037730562807446430384090577679195617363718640605250106326327781327115978790457547158346272644590797897676282316197428331091257604444595144017461465072272185726964645272213702570321762373712986428485393861481908900430043069178946565701534700744723742306819740847215525224287850201777065953634604546436245017615128931907059499216047869866135093252681074490295345311017578155255223480775590536856649429204875126087392845423247471566975927926036373565527217623931421411904256172079012079615044287727554592973232201104562812422956999913223736515684334743522991529176485960708724738083664201126154930018112041203920536649191196309127520589159175191665209383570201528793653222262158073799765377145261426340243165862404457331231585334723317934785703843998577413473441019765884607148136493517934753103919225972844843225653245056175320807842294108291748519030061488099080116785231693443678706482260210278913870764607118960144261272857318081816493964676175382221549553402233652297807150142973624787743679432445142606667706156146978457120845728022374833670764215223198753714554483087543162174617806254899753576783784090929948587990702032586485931577171337583591228315368048236176427325873394818688400911021294536155549918057300251924879772376924431578464846805437067976308491413598788197638610041574463339735077701803179421767310752930003340040677728926298209935457637811956875480005696042277133168623131964992058587555703611131644893080992868772791906921663374868178247655086732188812934602949193089338553061433542016628382892448097643600441489441922030089459561081660440404815049628324029865681080043547159126742728513553688536725338015811893776798545695252938810202738259402763333744045573757691685505753618278134424574162217176168238666526761355748446158011305108802231206956540301763330283296902061644105411136109546793379843359575690404036035456151811206104262797452448878476878490717685066908315035148113212303126071987318107590763949164795475207553647720690841715884558563146120234481679070850235255507121501318418767934469738241565787099133035425988084712996720048131295650331969709277048412887797980072162953561865368001781658229131858459810175274634394963169912222019222798864570884214470395926508361922128299494095129851735926246362285308371018078181874248390591758273056771420187507329570323594988783813523334176763047016616608785035493538592372191323136721395131689468272670855827959375653891115483870204628575205433732640905368411491759118340069465483606941303296404207623997130869130381087370701141526064948245642521797243510711654401336341326724056968509841099146695649787884916490498603363506994946523448478332035734033300448936745929102679891978727769305874129820796530985663980964493891357180704083460431273583062321393599145469426278439623623382104557291885735918742648365517311958366344156708127543119352150717080418459948495026278430424769137748619456232347407812225823071876669744906972618930616508927594281871780814821169880795306935823994339806342642166386130858621066765652432186448707746051664009872050424177991305671947893087913456500825943178316675541025425354312035843112973499959964967423662677770041704141655488599864276222903125942138833001492313712169154903565423654939937868465574350206982984236194798690440313163501799093485262630675210058375519534999227949447410834339300845475235824713329754447476758573231316990119897126026823718277518566954734642876438582557828768522997303008273316226467605563515616009425953394368042543850074739373034588898160689793063340719964362609929865939109316084672002835211498255941501428189860369724330754809521080032283830090354895749669364965666241922898841016564002981696264753171933916589969270037810980095680763718597117094165920106605717049125192624657339117806778043958689448338121752713559400741679891007079160186819942155504322132517461182850372779888750741774064281960887764645130731409631023899723433467039321834412747938185650102745196432797824735023000481960258850342594211427314626160911415999173860779045832024242421388141756344624815153571824037702065886012851699163255626827158635758135047330591721231479207380507058458071509502163845190633435997323628491304944958003998029015081659282608553875159442505724949534483367839443664625524839203585080395693507742324493203401362857462748763704015166939772138990398387035982248389599566827796028603582251928929385394105046971799978197053189493520156629177446797541174213594812334226822622012284378089242787589215553252188727764994345546057108580202253923165879230470565356301804610065261396087841861115540559695097812798534041423657291299278656913480871597737597345017863501052830664628210855447098056441969113107811140704510384677648396148016743142299772323789855926097830878673081554021930277225574939614010839758531564604273334079128221842238652157863949604710014772561688534097043023161941890025756775514168608758682869656250214860902229678913582585460132114520234486596682377330198753658897830228065556293894123637945636338644005762491273360475340747781245213372490628701132419441226134488679033180601291916602222040697391001922269660770309019355174314555148754297888989666451359439021792969469259733721731093094864548828529901776107486091564812686376189785316680524186600160186538241513752318120793488744186273601179874885011372121593276947347004971104674144318817944438424631277935739537526306757302675623316578938359827844768692327688545181822499677086143979899435039513044674892418784364178134734028858003797500844686391435323778513999330233617905277515911265279488986043949481237923608619832936112601644833477505279720465278163313112100952236783147716333274891088047640022654150747009960758359712278672675490207832533803639946395797396468005782041818062146126388932727912051257119596742806350791377312706035862275338770293807397326745154370227789286877147249745342912154650809608601675513871791642259420776935389000080417932219922322342699928667633166004866926743956109005828899674459483545133739583192992912917224175508769033981034520481058159176982554553194833661892148897734128252074399812108373814258949792962861621874516124875159983198610576252188496933189095441152271064635652716498386274348083585777478249271901622342436137790584393854261045264016585166460099447975693724522501583634145818121685546722653441152830336931321146967328882708694537456024186934169445470667161343435206064304679421865555696728646152647515957802360078070437726355694880755666999886298753111295811423202811297538129871579181966793708505860199301365769253074421244418197649464707797044818808342699644685260876134530902838532917479083909187893884859442242888709595476315479937651706094136425783255375631508003423012194441295185164459020744238513150236405202993264189548400764114264330229484936703332844324958854092331969196029235394692748841623871937341306059031847622929706758795953398415505852337209175486999194306096963894100893535026091829189228474333802035192025655550669400882182740102932433001753622216754927265210761730406415563114153754924953061917926926348699175620905357460331877824542903040581277880292487161452246300229018600044754125244808682270508258120996499531749966083596783778978219147799777453795516408813387334076214807981360084202106640719135323536251738413537415808522153662569810279275998794227502065447613774074683436422286769751543001902570895597470260124069008402987249100506566957054814438035822373057660382703115700027596511710377124499643440515850788175600106731632106975711499417156845528884467378587360914632429079024153124699178468329574510430858755485309022955753603059640028551730271832865866154953767595532885856993444711974609814065130727888988158498015881546272004594574452087052620902682201938362807697606971597501704712165743147074966046975494987774113018274096913477240987485421646619242735293151300829143382396785467041968667025471476723029581131580042352127011957577000077379022250413983081815670690461043964012474829311238891232713508149957053364355395671590886769575973945341185943447172689640741217748401042015219331580364598251742629201034017215907688787845394874109459619370696757592424401723264001010444791818842405928914861396483431620546600804349338612457620223935889634911481994289371870649031125122197418272894450326832338643209560090162050570722025844750782151455677132642148506382002784206054130672194979489201002482163036638376044455472534740289299117752195725815406588626135191986204529367973323617730704459123008992557460973556526892248986700069281577958815130794502350301645076053462026089256335536233541669925080085646367124244444409283696082070857044762272649504946359728220428139806545967613054470485793132486682933115040928188200276604639573667739836319327666019388316503041617258900775577237629268191991520959783543630663408740947699356947555738943662023962592632607632160746329578432491866136938579181783826315039104238513103290608357124505728730539541786508812047523826660413584722600661402385118358900501586149399695811256317580939302467873006004178605275710503702202245173965189315550196310949916214913067057385244350701291968334416883943014959853036781317865987243377724915952644360355657558536325754408413801485958395494452146233282220043752109492857091932374092472014310985555760872422047485511516962788963533327481164377366565423285520211477493555005327226046076291747847086463940691033027831097712956984042390239085149095575372397753709855799905964595712432705228001819207538187889348210963257858621573428610289358730594055377780204886468285714874349739647673578604771544011358247343550816856891848114082704989948494554536438525258097493485966518995480484083546625016188735823703086101112919316353044854371386241541587999678251877519877686811215187848818508185953625518856379158299432344701345197183726697815954063036894433054727771566423235968363439337593557661119036030502820803285606150644194398204677837572709126683049269971291661018476016886932480594958718016982090111852049507232607309715252652501570567083020520316666390649343310597005578450189704349852386917645195581898843698381536818281013348148024560895750166573809267326903689061123554503636725257093083604736333304865374562825058186254396426510080063882553983617909837300565990541057095284073542177186494517075942749114292963825047075386789096752179015746047236547728123528533422631322411294601378357522834097603609992957391923716168427490004178756007005319229001946234164499561536621603595102267003706177918846838520006422246541394765812142740984249119133110502014247826795270972659744060836627688612084696450333308226283981610869406991255962539219626225448736916618365342615368260010866380935323411908092045171614761583759400991354857192365382844839000506157032846414692232496075225141207882853481579544890918333397990087517797457358470544272154107380006393142698474566148699940679819750378180483902677225523692939087151404440377796970821615086560100764320144603604963802267225264251960798372737736043341034601656188430955485058608153166424499066313337154345626692410449046725388060538748349401633628308400515192315298381718677833681948764887617062923120066790018905668313786677280863550130543498173337466863392317525169035041763191572797727209573514912730692152895728410846333942773683401009916098926346355577707683825194352807786432145274787471091379204449091116199985736555875884498129819453355629815282014705618980580524332709853134399816924653325737139236533422769917904298448874285563504173673619216436798480298014453599938420611617247588800540206132431690250871764264117758141746049827086385603809497288567997674220684047275635003375028124458527105330758233002231954894156444138624635673288584761039026517984042043714717336524538123194029841961197661673720960074085012115541639648969754487535711649044920307359480280142613879878709622476852669975674101000351844542206147146839594933146737405563811685206655941961313955751584192428705412961766530291520271416702912180834977679395799360178929926883051336408512683089372110755606638821848015042587243198703117750224340316864694690700560753143237540710912430938935373840708622141111675997706864270323929515535674891416539232200249454759487754705545856046332535177892550241792000184302633411774367591654554348151867670141312934872754908503995234564357152350773786030963075256052199823028671265027730646229195760793337614121828774716016409391787949806934002755816810865906774282819631087918051282946370931607219856978952770426170580944915851904515964988497429648377717293883530767125500257778965031823675745162714886872375911195127494451955586618533995743163729760876094656998795562511736615628081040376679471901964838493812572019991122284005109435820969834932805084618720363220612986554290243077487653177306667298805322554885431944462507458791954538681123980260491217908710182233751587302826275743810432077150132774915498353367401540140847070113598257587989188334953209389828838966399848706906597371947027078358897365134572760139786252165668246201460027972756626689147733995815354118340070543364292862256968718804712059692326908323787914871837221199660813674260472973715667819255287066961215964850462316661992877589464474719641612105297084913894102121612542274780018670077168357297775601714485709130250775973905178323656434032934021925827296585636972387422892322612688893859583775588716587760950351445715787725487422041148764191983588756560452544850561091529508469479572223456691257876571201328677162957775868356562450023844646061667961182434851539425622787934231877146163748368056622301783557927268013971564764528555076321493336640802517659844537125084792210299266032806990436554622102917831357173868429370028105035727988521396605957766478909997135941228272796889721815080896671986459916102148193193616442508141748799102245492597231205534868483217941459911505287239402970864842235178169228360860336739639900514261195688756280011161324769639746761619582105843563895017304278538011013271656245339970431742017124501432341379673355513100064622153407496946459400361439489705698588658307315878555029859038425927813661832787806082124299040922050930726633796825444075342905812861020937851930225754580849030634271852224291350225906718026764844379005284798327862713514505084225338384671768224015387261720308422480965006947117836036585484345821449192076749530420721567375816429831065896798950852222309833834631141056090811237950838569248861104088641430956065430006700132142731047403525881527782544534499101631358701243515388658369938197676707129638391093230885875746042521151428288520361155355060714350577834753550623209646499218493416547964579183645378427363856907247671909247595145078283864758645461215903507052113434421781511751161637480211595996877936646209593953178928449393664642289124124970407147122460712544803634778528549422647312608149046368718046894242619226150204214420484599524710124530020245945024274486591910490998115519790575279326852819153192537542575022401469136605924220284112986454139167398382120956275200450894340362439277743045472928207530969223707962635752067520184727359027702299319642583038422215024372256988569862771735251109184886834232184673633407987834843480140243794532676317192027878679186628661707133577139104786277262508264321882756972366262440761033391862081164982620960763141388535289642704256636110781533298633899700975939173535343653253273382883760910695340359035628978203779906335429482609656756337650691893186162670521530086403550410328039336701490194445893420585646062186350014746069151946447154827837009581779843473789745247246061915872443259564396939442702786686076109295009461522540045010084037746130610819942511781098656990376183843362756152391247086823960493663952541722582908062001349718796153621921385081604202335340361908892676072822301643291027029786445208225799801105022715056759959268000147837915962524008119063101215344068528258228104931629880131171686145476278305587527673143265776962263551720437720729628763462098963679919477988836751197148940812319669441717877998333618189666152543261656399094845296190128342022459895909776162573963067580525245542590239597829082112627317296907978437905844726867036867392429809508661175986102200310704801468725428919428943031986454825415413274437766199440379374718944255627689320120203970152707316747510205773297248602914623369155556006958667913480405034836313194367979590910969989290974356458916727970959334131997018942399666341344269223187884199313075250064124161361866681326492177496576051729156202544633932155757642656196072697227295448779426726772778140542938292939167572655043905330112859501743468363079365825907374636421435052536260431398532873159262113000466934699377613716356673735472377856059311453198269050725934872778407631953931045871039745284820985652639882848858191402817196313396421129799799548446524698641453163124394648851761484871950088025128812823839759244965505426936239475858978364469275026071121408162676207042063452830119982888586679811922974603551108390993475511933512314921363424063418273463379432772738317110131407776696069051478103113709442228136324187716984943425146005417986065550464032716759908383798875233494522940438521719872127453210135871678044023154055847737678783128730998698472469790638997091917851069637920447241206937842975175060572245902074716642089931942679219336617417970605443198491476802953241977665132365427074858817516485401048173731689728478673636977476816874910819987208563911666720392744380087137061412368441020287189105126381154661166561196926512334522757422056398257085179183814200834363871030672092114921061610137399086085467022258967993040381478866885006043145315512729432227498806937852442925327313479120631507076838778147912348524595550915867026759107738320741813712345552320615060664872682637819799038044369480805230085889952161254605981684539178887108787852838166574957097104433532598338589377865571501330206763386105605063777373404681826844264370958252229237025120906370964584962474359245599950016962105495416600092938939336839686897495315119320645627676956763133423519277122129892303717396588766717741343355070090508200333238167634031789122314105679214669531432071093173367605509311817132352295715184045040227861930096703730906651964450394842271046344147310538253406123168505891228703770605770920529392918799467877443315006020046623179133305472289182713056038546738783507486378505301405341835631367192834265391458693363595941688302363282673553934752221378096617654467049540798997659685184736742542117610941106897454829255293023508766352686002399436390179566529372294878290646160289372550194453150480382674106955267589079817004962732743930978804665113086382341665686838306389194559474127879833782257603159532890029861276084927100892362694954840092593356581255515702869622970879186175056129271375050607442306398314546772810771839861792470125429041186027884982752127828457295215689220687996313542751153824304731176695318767837689992014349554437885237412283219045889332846258972260309492835255736129078998074432431999892548820628229592261348143775813093119446755173824669357083086463989638795998961705216103596576200995654032861507006495648818469596968784584725971102225643739122247443669292774290755385831286891311953405956042982030897528654009819180456391073587020234460585555154668209102730478949878044129916892508148380227233401397296504116134324768940261909218606096876033433610454160554205359330024010820811517604824718260096165039433830260509956651417308763518146505577823120554871300564608849099061676516721893178799383725767134654850724560379555030894064388512490248104479861873664666154637716445160417849512684565698217415288949369500215204109569419571483369179759859834681242760075846022084112266455273806782538440121022833935446281670440954237485266513878143849172591663999499375538075989371020445543587240176103659416691449770826880739648805943728936139889935585201082594156306646784709654730883803208808099224037734461480838662698786824520255897176683229339078962809958701172013609184988803538755343899509741915330854986671593443896361918178841107812123810131765641714640612617807372559242701983512912438073333247661011217979158827609259701469872776883499936082454497106051287155100692527034326405453888106916127037925915987173123429018750741651033774817091651103696202489872227851892298251363445086478545756822767805657935802705021041546492554905275388832279625235044317316673512065167191037769670236667169251140120525226566135584443249324902870256361269757351868296749097077779891402875493668169338961514633776192340054104195269892136455654782681721816935783871958732285855968164861551593735457103793743081299504887527892897078001734751712697106890774771381753698576085676594486605015296414448984391413153075246178242537482182876621683493930734609111880072717816149752413289595918299763060553926637319737334942122625909564236102551310254418869687120585458455333716924014143807798413992724546566084530669246310527510588423281681525741831298205339881294304637588507764661330354102063452141010393945517823273226636979445711883353982271499939199026686969462608825378194151089835749598254567235488699141049280775185497084208949921584310377721994016538158744037914745535828087845652440225124224233919499958721966768009293341837610110798432282527402803081620916360593743278792613448310703730476067766262977795010999257365272217389050646469949997094945434549540018331419730059661084692760800366125460978025517550324978671231444585464061378998087938988803005072120246613891322453112293096578635824476379988908165164341749877093362383838645818849862239079665903873640049922911373860539345764135155393578672690501536912869731627938112936324620136793469619103203965725020920760617627546359232723091231214855705894511874054346496232452563277729848800492348866749008723473164809752455349578752201864266345488093900594378036037159902548270107876529558612262394582699697541900567980642788689719122888424085570828805698074458283945696476059434628978943845123182602972902412992729927957593975473692565721550126599539233476710030928672771531453611847826927297581512713837229051350216620715425313433671703350918180074987550353583307100420831032363444697115485985924252377713028638446222276695453490709434997472687609529097038824451619328420325600127892883800203206544231291023964150017378197870561291844817727802042128385195322201025224765745907397113359165654646890110734041035645911308265890091884088705418676179104723285469931442366858779298184659385488329095421402992894000197479426474083008669728777536544819666159247364372205432803227368218126395040706576748449988930572378076302002047734256008213085838783136530574497244978333174420815368376995522734885135070017390440592105193983637457765151595654067011637597411920879800254891559233950929218990452503447564827911704839502587472278559061693344008033492519721804632519451140339888848812587186875865874770547277624091050987174096539513724725988598508889228521947070855769762078482829360536764823013455636587192524261125356666513453450589805290717678176231696088338814807907324831601739286839201070829906682824977683069794091827790165226872589983353906966525223426792996638324659187442534564090077014859760121827621236150931543245976135422735033945718186432636430122665196544457381144049064143913223600244341087431103411236821819649772031101478060251280177987789189094791856503262936259808122890480896982716622354791910695224479663515353330607020947358477159234457481308304277957211170746783322341876152612296568956047615283320324785462237095522561134192347487496043105425301886740821869362347989943642573940554684539634378247212250362128034789067795064592802230397054674841350250498251794121170851827812613119861348936399446248303018619914992135443968614474140669185647735810776356240196232808724921756431147283208321267887578355560384078354475313301630071225455223672667751966866867119336821262636026853449146570689787312170548138459648116658291009284783083143873854016573386683576110885292018212897561004010669293004595191499241024276646129261228613060225167086110636425296599345036901483408919745761498360854400584007507745087320870275518062924934865769314052674900050060301050784671912938254120013374190371899036230105135373789443188311238676856121446631160755912604354968182824743507987850034683958033928642726304776892892696814345385604870811095529616751742023942604898948730089226837287967326238812913909097206977020276700579301755640258182278511995833297217232803928411059376401607668347073634505059459880917348332099141491379920667384512031562813587808050570929036989642046718187009646549090426854533952271677592353961709050816457058614522852455537493384063437383792717960545812251273739611462787387506324458078599432333791878180744209858623680122756452630896301996197721329389632608974317696255436308890731473196707795875888815787747157970115430647839177866019876253521889135429980636446443275599558278782715860851715226071535417685766174800866263252634482084384226349350388056518208532669886082227494182700372964195409948061131140083029676884383928886685368060349530211500663455603512135642631798313818681737434223767226959736661605163287653062254822872561713431706840572689020180735723882606172274612225402971853053011722372753611766829141703140212785899833890573286564808321923482586976803081252292820784116514216089506481558074425135596332528693680312087607298410047801746370961585480583829432589612299594321278221972736324076827348154053539047762198718260541417346157358051017208400448248221166983113274166685976970223027073885763832825684642031363816216582880178075862276627232258469469779559724896134077110189942491337953169000555158126191069895267023744234237336144836872202689337040555110399081500240438413085291719956182227976577095001040924301283369540811940980588746701804310561246128040049007864923164832535144261772477964534720965389363719520756211694311946084267904947160945218419882187521334526681229711480093610229327086328135190597283690985714703136700840111472551047668036517731557222127672795459189107911391777723205507215597405330081907027399552999741615867840780772519737138315566513966896257115065840151084781791994525254606722732630915142260543474910351669670779372082880081813642232680815331800979808001241651654516221206990968766453448514309605635384033954621879283011273968485336461050812545267044732563470704140318344865233141409506654947880251991863557105484764953410191256596068639741285924625998861273543828657077891810120419064880683864789381181546199946488076442150073434234689193005517014283171808460788888238418194169490828936889038178463473491935568055047257681371861072930400867656193047938689460478079456306527497823370660155207775027897147112964369484310021785557687139309790976823251968307762722887096399327527474691248875701618631450574404925356379294114747255170888142215334681902912502287911474447912971648088021816647046952312494680253731382778304324154578929615646649894282109093617585808872605392999417769583316004557451100887900396626940786416927874187827712975497186341964919533199251754524127962343613749937712009619178678065732822233865892870165549249677840117224689688864844128700833914661186996785076517934242584946767510988916294265576408034813517602498111159076891057512818094963690688373814250351061067916413571107410317201087775485280515500102633555621931932458895553330004074679184899773864507631822251229545248083402071134340214654156733536486305353095016528596351508806789451273796415546358491346562856776558087328962085761086208123098422476300257763645608401772409894693776855181336395796059652640423377678477536549709549999726933554964555752896072193837819188446628318936588368336669686126005909075208213313048887198238738277637202721205848081566521552783107262016075432278382383398624831674339434407340097259457566600589568569802114810578483001018757121484686161386336566042083612831956939033489165956889128198473991006117793289196956716659929849767517187395862176726469370723213158913483176514820654505133389524085792718451643821797952210382024662681649289818861188164063600144960451118576471754810899614707278807900627760996790855600898606708888611953888990519878749106182963456205558466380619796938873256523558221813625284398882546181965083134762323401338012867942755913368204110270630190920033245582098251219535635105484898524988208869623832385056973914180076198525940029574425587749473708497787159482485207651575566123415828241832154808764700167570084759793707567783433042521917441955577985042555068569971700851597149520328685475423682811062726958307182432647357460719489650289625452014133618985886301344873898185848504591353361080807032526913309821050233595859725195050748208646240571809936526817771435884811371125025988956578226606987970591407123466779914421361478927639976862299405680637724487032974494373095377661268368570861556312757552152293946911789464150297416615875944084221930105680567083386167590177978764012042996787151496340939365680862496542177161845969405944486287409393085725597016605511112227931475426896226523131766110634601637101962534387997584283917544604847050459756314235452476976333427817851401304901584733334582076527482568093425052995490387264078632383878687561955399590642578525988447639631260267476035121288711136125080779990948521136722988863817428607365418492072937114817214773301561578170148978812935705721534706249786311662900829855222576926320799622079092806691267887525159452833078962528091538823495495437977653777981232676540165508536283203363630379682574687502625784006355171123070251844911985062456781213391729676223035653290031783700006895673683190469660682796378172741960726012013497901857140792039071510362971389322440365491639126141790097018308429029137836722131362919757145916545030761764138926396870241973170465501777486707033607232851146040433567225403980764995361091989160957836386459110125569734245405618305297679102249442436615937204837439933855338786901713015041592243094425586826452693539982852569454424678951516484613595207027944207399200753328701530024279470354917724511434474138955463393319229646185608618340284074701604913984019814083089104678263861151048391144156928958262948344714050815101591919344829615842716183947137582899946567462416758394236333200159464359829046890570395892513259537721388336368983444485346157366741180277842149059887945712268861138309815283386105222339965653597446285573616452671142138488458169341794366514832730527739356097211007421227385064321182807431768221575922791965591423389056043433615534744669022422941527163339181303967337744254517050955752004729344025824318069222530712822096592887392163703729003305475391454803024371963754380807696810196878417114761817480816130610088140599736026000490901020241767513011360964698143028209991321453262739585603468572971509585526702244287292659230372263580825364954215129255882348119477554972889455723484383757599767126767179560642830144070727962679142073295616720179969298970347633972553640808618580771832305557548815128502048185220964202627848924420088607361643318807133829712790481081139760485663700248081956335409024827443866538362317031304019404426213960162852594650030510824106411804943112232135855326257328029475251852405444315679088400421999865392052003384465302856007807236194009827760801952975216265578499244999507653663520145816905151865615537637319732725119664829567929252695859163623910237809862134828143949147713872476590636033225631274026611988738511948314077130963502655584813934485519949538259357000293666723510333242369267936931842911865975069153119110207514023929253453319055772206741933171090483350164391444384578307019030982325639170941191525407024246469298078815172894626498345566809918324572640417207898071165530601211516906393365615951682703394291425826787833659622898786773607668058547062964757376011727978366798881393028069783589024426754994677664190324541693476084119913306913138315476978035739418918590966255302743360087396436090139752129872151569747662399289403899965634515157533806157593293221737147118532465188193618382376574727072637826898137001043038862130382809593659742292048958522250422482961012879320184172700257223696776578493406532416768309119336629553953066224686902016102504215530456230878195780447288398630819797859296469840851820796069444414649762567274248779020990997262955548746041287979388236368565453954148141204887081629210641173031838618382424921314310562052639975833683983340791665760497728920076132321586966326488220770894636829229110929381028584857936313165427995892254266333436468874146795018504989675434201175787385425359669703177953270003688253216496507164607865657401528319846979232002331302658614759176366463667335905969752220553375838521240713561557556767571123339968774909904314435823458415158203285259004162226503010922813625859082530016971320054764276227437442483649918679154627383402172123359002500592447394841922083544974613208616459222637858044119166802632791221503013362678008570569471537033817461052969207482973496495806397737906296407846580143968841006180219855142457024527972136050850511324625404398857817708935335542062135552843547857945224433091394029273986893496603807820362392971324735265238231690539127684103390767241329468163548102175975305735728797457454214427529100355758674007984919048649707028803420025645019700609201355671926713634570003123209449367269600451762759380852751685529504489383888438295079869886116654383410900284504055477021889526540382052013836394755481127092876636580914160513949665283653151298771133953298012550680576067370589475375233421225825470614098979439798868583222515165133097022251239775305685708512163650861807999175546055881611881505697997706491877609226745707252359734755180233231086298194708897938941093888835604160759838139332682076423042698050710608362487229450861421778513725916196313848087777983803709793340848245523827454669852252936827193392820796978602733512547192770157065921575092624614636909472749799564081915548927033964521474162072953965407945818178880421341518913799206291358976004275251096104547485313793880875653838314869202488889733038096083377396496857367541742101510653903785399932891800546531985804664210876196452065603126003753215750810921778781399559557216140486925293961151859853427491636933787556879673561635407447928909245491319856340973966832602069570381274153146013924761706986980547325767875608630434409222479509789536812305113790082221478906476965203180200487464892576937460010528891956768580768545034929725327162342001497846553698698357818285827596695121068654996443398090742287731855149830750626152581847153985993328499030290966420526898179621016941779223162526405776628317300956914681429381091831756558403751243066275279210499017715193036161039436849053024923043854760191756585921969938421644914057140859777380788464728272167809924181066235476588825450423342320294761245518804723680524563698112881604006162573300266920351882469323577876418338781837944007837254415991247874885136624808685045850398803382887198127021007645478109789932565938654815115633096094005974192024778169991289022204675505166044295754360310451840862850662125131150583945997164558539658765128050480332590232320793185361096318195222236829596937549527737457996852826946816384695331534954591499265254529306572155607091562160121462585401729458980780673491946922345576855708992133113225683263805785857817324114171898678519677599019128198450300995318591564253213926506017009903716597289162806814023648147936429950695498247875622836150919456536557175576131258666938965003020257814294913721079006405593967848483894566562572614237519929006893100978083778728211512734786863584757933539970475327057364700758045619567009838646993332274003821246175293715929724409294196002948498124568098448189720645834782370882913060092899996258033659616535312726997238996633188503168613369584603445865248142288084245111930825312628218492894269240323747741542982400992180530206525153066000874051138906459275796247877723491487947770182429048077530276177224012909655151691534568580778032136785697348195924325775081466663258944027158566949957949713213112565969396543743898045072768038400386977642047009585883584714048152538583736587431225949474422757211023759675114150378087360174138142619533037756141080420945667091475018813106723182846287920151871258905810734865198586420117662371133308095399188245069321091422864330863889131537613062041234185231017400546061018043912556628299754766842619892101111554311932985047282258231755225637149222327892925875275607529801989183411042104972859868911578978815859991376440565319241518287224331816066148505712339692593937242982507207682251911334494059816006241351825079512511637137163718856297962275305989735723630453570861548549472579138181225331026645929617881524743897902891969899570540016505544172751786806929953135058803027074757343598193454549671131932129183452503910119585154953929399789153429589221410178950075852465720116770040850377452282127332240530105288369128615337132057981648346359041793751567751950483876707052170373372755178783774962462376434362245776146564701049458414218419166481064876128638639029268308345342417361073958154391476166241497156717218366881638672082061393947421903946733459723144234316172148461762801098208105204548482760056675131719349978481234556982244286538550441382828183558766852358274001835543577864173864456089011174440399647483487156698987399582735718613178294976981597525405507767732952815640539157444086498454186383323208764916607815933289560788516863178564015079786418899732712501947839092734316685659750278328002470766962471282895588423720408958526453357685062266014590579862210073128669140918483768784895597502710707018215519370615902274304423214454840144907377147175991948824985533214326275528541454411359442480517744735934922655249782630065712995358891595084268505291923136409957712909531517779408263257410140418498325141037662530202588179079684656668283812233689693054393402705834862165636754391508088374746609155718797776239729700710250730024037537952538246892458406585892515386721140289637178172379358326270031241903261344265641895315513857431059107171353782067518210627007009330308902010493561228426154454617039987671383221088996979352665238206406240049586593389116097428464910539100959580318914647193717282527149953074999973002908250404032589379872142702679537931790801545269194501082512737280180453917246340650085061555965670839585341133017523682399448778108755038491675934267964871690594719281318320933106930623685456660783518903803888402157280869953590717396244752956085443187749688952552188685904066104888990186377604140546011379365635288211988564805038719278093482926109048515482568593586779532301002021826636123838594600995525532388122956110992706142628155707305096970946277395160841242269187157173051648776904636673021497346368944541087697756989101721949219253263250630524401696055249702202367620666190086620309564382622490457853511468686612538879861001182323830494464832269794753001535931225720492713240831106488608676467797576993465880563504140962921726840363294498429902341442922711573262678617637732942973010930140234285984647120169165083638742285169557006319567662033981874592973264728928653193126172143144994764149195613344014890194810036841824933601375638579649340437263711437840294579347641315585990137226680402298036128469982639787098719308224440320135868797029427477036555764980793823974884165060200867613921968888593967286191395184790450850266363195915359683476713763063178532805413804538986931904574451814105546057597461686831865453150070136583483550154698103773955104637502086135407712103156855940812221630978227974015507866618916874905706072562353761527771386260535250519954559657151344669558915902120557929383030034475732529037953028981617160394507402768775311425742706783841090377660779010368615335315642902820243747823864350351274557900789473953396678594773890923852136688406228371848800239225194270625070972990407894200081136347641638038594547612287447847124112950822539136233256565385365848662598732231134026044421741214497320592554133477221098424542224039072104580717549264060949963081148214015258478813441329061028013155444550475870097924112455572741447633862412801559378457873876807863444922178242805136352866406175104410955270073034007956805761499006184878607676755399678768246459059289697643650924482267500901976605466166355879622997607457806480619175172142050431770394839674937784500483523470656476558814227667499738885866291995960914819825975676764611439002261667750946986023318644246012586116463226127012303739483486156446344081402527467067149292566324562917560909813000687513541697352180057673958752610376476327077172052943852112273541409371146926056319628187912571291435119966615883433345092810270711521526377942899896550334820387366018895974959211162314765355217442194047787397914870884909422855494101391506280333872295384393344252044317636186000697593734169444352869348132650089360515185898787463922477315407193249481754368595477056779427971496712699044064917413251860391111743106709237048411004018889935529946971583003066023289736066591598961522050109608951882878039343218984750637185796309635163555244746308971636041874228312303323259093204606733968845701424568674583052924306992975118807354631668787662891478318218863169761240249383592243367086766249184301555890246859599908684070930993176950446353094888701709886496158429639514723425966371433492571187384143168155834411750418740183179513283513949165083181569664405908625159331291501228424997554858626351731034754907953416137851136309154312127813069121631865032618434246369637721412296129478477654809098575303316065939893150587339640732656646854987729994296312242453031400693041729242593381580633171178121637418726351871660288026829427367338983985658343484563434768916968458607669471708330393271651225953426237130910944459844114949475641366706974784592708122715590534648484877443024713915781648104954251024476405442792620889079304395182285141534260736074536466935452255311946665000939782533422149028687692050177755741932503205385304904495302821081277329460294988215703335162894414907034889885184791258046786994888190768206062450767619393529626379078559053067345312418694087374099982515182156058564058447313960301108384570279267876365520063409953673783051523669261384737100484445659359092500548082070101734483661373831017999992603854496865480599681116032395177288308895712426449568457110897494420212320045555390451672021690324544265847725170160570888655947542688681351434375900228773130497598989127367291467225014794094598053475521292394330688227679900823350609381496431215587873725986807050859228318321027313234391665978882893497336313033391805992103064566794373801479182796331832560447170897423260889973691253113216591734789934010650389736827290187485817549106975105218791240189532603382255506172787114384942958530796134033459732053713138018213708712097432247826188023961713850845983403232901959018744293751253712039549242997191306961173515933325048905120349354743245459549810503523868790892699840282631873689281064399040514900549869253830298584223690852197368309835052824360998295953057728862974134560780464235140697061204466531833947746274797394016287817751504827420243280558579490459363658420430497804343133496344162918203743315851922455074875193848011289794182767580412392348582652713339445493227408885632785212422324642838523653984273487916012433601918626132658007635586891280975552960280203445691679304557240224892076839232391677574023187414832472182521667920512313511992787417467026424041040239154652095380761039898787159426010839588445585110194919483081917328211811590577700005416623147026391558189679005067021949437463195534627875335639562755820062788998415745014319935518617668441364760041284797134231020753069716588565357664884219058263410771937169286885213857660206515694154360955400372457616575906132892712724139562800887770226656747177096043082604040362267859369007010559143692160052220610540740320207045936672186829835202786544045390909173303683144123544784785970007036022436295081949093101837785909873981248883241431724985818274875867576206980201547920892585170556886874067237587524797626985000782953027061962754635910517248093531601865457950335703464025645418801032468924652602905719479094782470281470073624127589571077170274204759097989139577918396711220338652323920448199814766662535071185070713664591956432925862953237983174194322055374415444542373408809257988785421885221460323634197770066394658742077225563721000173106693406653284051194453684226096866216663820028198278484949046613652009480650888989386775038709046099973557420236864150649223590707900382399982152085664844840895227173305140033824957201074989917086189738825425920213484097316006709846450712697520840239245231597635993517989883453947798884587055554797232855487056851385023369517740566088436771285616181460179643984497748648643738262190123844554266610226786621821258638321489653715524550179176242167031602411995538607275293048113733241955248541251724373723711202167232300244189971710590725110632442403960838374905307863581342179447999941750211021254778359204457250041622481378198809014764491898697019614637808432828305003403826568386854787423103876893591767267957710506243202540282906275575138344707236117366485603690478773943309484860811884279249932671182385755033812546290837748174679535364268720758347366677734086857910489348402102472034090048422871049490286141885617740369340884564177396736064999706058801781610746405211855544699898882339231425507479887331055435130172158992698605756806388957329018018230651683056634968435817949814127443136487419728297797235401015956303992679226957007914127856501290754063090178677389024831216689621097051738655929640424236065571561052083487861582999813885466525725449524014895783505499078710619787326398769727837985747782393685573975180449755511808689838431932914045134630432528291964008385952330660943990164919553416557434642197155685522872682716345533421078739688892807897304343385332190407651862352990608844352589935359336310611628110454548650999715370899495047642945204826693177552316737049052324519465037430444804441953863786244755331757815252739314946361647688128644703016595519106198506251356238879651878451108506367022312726316978878841989081046678060636622807166285598604147879185720842235111644913464065988304417412949076164684394053242430744505672005679873443640801313816988383279476431532639390976450313186480481668869854603511765549255687374898326504094237126599259194235553209209312991145496706082266664928388290066636565367580680598930371370609964797320803845558272133046801919467864155683936622928461651588876944179754152415185264780663789382440022447729644466508482672535747499156090244486565380254963872074709267959660753861134332224351589738251491880166243001186542433156919109421558644490128918797980642112042246467272060983888291373027503096694631506316715326543704493017174207312212428686180675194457047730372355688483135002313552996329304873715125056987235401274692595615520778788020310808208325730332868982322693739248516670679167729837594494285119478146655565947495218305798653463637009058377111938092762744521560774101872054417453483490169349621681399728513466777925753678044166248180072309022426153409927721036451924374187238874329287153610175575741961034998401066677606251161532076016175646123932885274258705211051345206888787207391069828822220663201375913907970379498450177908171349777681515977060205892769380220184216431079251513742650045384780075557301916228011073878945718813587428501034043728933760716348797918875945984558608978899987906823275919414092826488005539057556983046115730121057550744192787272730144210156713747770010137191496609620406660820160609206866476636045944584821796841078616501771095436389020620548072582021009665191220965114280678789028495971279257305408372632633166967695199072543699629393798197628798427036190171425375949640818940752299392213187231528356618156599805479129458759708355655408329166555584064814990393631598217851661561676358707282157000488630211038521536659516278807347982637883266074135925562552749313517293104726794953850547462976365814035247582905134570004611294956257286484744574102344623117253069055230018421780857460066733200158618131039506090460588218527428465538845679582670697832303841407241728622007267137249214345704996193871615136225455295280153360073393125402214705726324526593318842461378708200342398362058626380690770812101978902433297520876200745813224523866415214623421455743531014502158490814147851668217856185772114618075649497996430443932443529553658288346067049230517658270280442206226714108775531089160299773933127582123706909095145734313248419917400374048499949582531581979823793457208830372200713419554051179440593490884597349873808710069538761899699203149996553194316215288596521030911787901526743219962669660249505293987536113280097857104835523266590791428008464834150640436327060516435492178244434895736359013099926344419761611118684977034611403267262670872883130168834706141407542044381636684894314783144563908460795834496025439732890970576138523925473196013972446742660974220674077275866611355931260272194201335478394457496139773415294701875974476042969476997642686362626303878445945770925117188043884482423008474321916699512263535951006433313789580587562024986805924330803155923985736216615053004617552395975261422533040841684901278276554808497564878588509415248741075843563053598655550590883538269675208978530087815777317363666711408771140589178296960309399876517389296555754355847499689256317974348382391453325032390245602614863506574970180112972562214673566371407554875136909065481714973603331457616162545048287606998119326952611236662990499203255641370363249831173306157517744900542160653103800210506938826561392731544557316346780252526049854959219249413351832477049330072297695947849576689742953977589264092088011908687945937901545776618169366305612720752494199408746352802070315373444028001170091765344665505724863079639383881098616373172355981823574711042109305070234697261306517520752136454558845178719845656561378964849445163128353871020077086060691090282889587261354418239025169497594237261719722042569974814852073149631426428053783224411067251277327810075104339897852899790196794836707064808468657967237315870500736030581286848509438293563028478939445819936059333302631955511442667120608079838019573281028515767123944408578135542761552779425288410415915383188991483736574678409237694344193471501607741965970017862254377399255202154870030150057333562530653143701292927953341438505265507792881868481200967534637919210846948199027255116339252665082289412899400519413227551668327793855983231557908983079928056521111436623006526936533330092317539571911181067734341949418812528819829540161429816445231784127096835394871198026734349788670870571654854287748156245454622032451423176391437700920777441495022231776871627844985445441109181396243573495674252770517158749703903870309967839172538754979104148365090251904560243485016967689794094012310999157824266637411407822978694125032048307007935376013169804968538011470278583500443974377486734577412678813245601906469963779840553579748727521175793366317288579500987758589396007503675684383826226121999054180886354580591699579365297055138527874058496343005363047383661122027498594749253389626557831151987574522043388934256463116570740055351418263883173432252080382216197926848802182446255093041612132851832076268523820914825614357711138453412029252546365519596492043263975533738611449828835301972862344748102112859351112713439765373093291831164023061724335293890255540441814920872503149973625178651365582710891246250084922765984985141268256919092215619245952263029581673258383772458415790805461179464104128538645230819760801994095866789805121196314216788201635792747898464523691751167431530409388571574547922966795985238652198291975126380687883041243230674977069708573087382129518849422758758184302852262284735826664081683168003201710593360138450102461905462575891857805625356424406829128327010285012074615817891360136435720283181226318806404690514948391837291470890460847151537942911584793207958063673844595543871803638591267939240072649582161590590982318461193368530406187240962185554404337750766235013472512314117151108373235308696821753724295563405470490619249392149663479089709601469973711396146174743123223763389919166442091248685957452139024549333444622406478841601855321411683076334809311475007821329858276653622148964805237413708578682520806958854613378358413296738008317685178330750468782149768457796365871326393186562237817984621724737281666725387774952951070577140837825072607287701165549430586711421660776254374894844922634028397157346890517473743575990244855824667318318331698758119334193032528392458098588160662911623337185150448974976774394613785671240241762299550415568914495507220276230176565301443327861484433310696612423084298850598168001900637928618847798019969698709667047189091058007216249311827363757893702639647888006732963257599477880363275153939668034626334615934049170367848407362639271055095528658395277673374838015811025848395325025178314153554385925071107740091547344833461663467141422728252438161639409370042968660817909015920392476764539659293381745604915004494059696225477671784009077739209362573167854194089569088697445112211979159432402280210577875150332706924193837675752943190029376466075124466957706447453222388549429614735680732945464790851546814759055972109464931645084499156882406812595425450711091101168392040815349609391392128844892923788729069011000496746320733814649971502225974878140280370827841249336026271199627957403484630780729054744046508687480870928396173203255936026409514900541614026078244250888837670612798194956899398073605888474686927043575839800712507319162568659628608937526858480239393999454892219589462737653456647513668836747859952089762565630456087183240513172560131758530776868483286528223650453432542475069255302901168919324664925897248452504895141258588249646843675364324331234571208292851271338017665637438680119987671067169064293984528450923776575870290622693730843795334226906257161383800509133274334807204922607305903742501381660576381037719413647990536853880785931236975983118747548601726555157138787823968789513431391307537470110002325917984182582216838127911148341776956059909472279019629166627851094419619750374004193276809530708775955637754589158023621237575210330739209464857373127046069331668106652826934720695783249201849022109302306092651421953522988642278272021325312377381403007842295598352090138811641500136914944448118187589239195457929878450870388415210045449927538041255736498452396947107419558356907871148224317273658293174189100511483316642898938441584642411361748063436673686860027079876204288626116963618988356083400434225942613688022553723033673332671133147665541454993199747032080894642996184279505053914723834478838769389711830775802436381580574965602163566643109968807274055731853827032449761995549796997271712807878913675049115033868632880118793322506036383454457042729825257222175134732061040430784857121122405278662899083957804854374639201398516470404249789394872567095549498935200459641585713149019534113578544320544093359778223739070334647922527148584288959477809613206116668577735032976487233069651179673743663035288954492565800835909253651408273748530582422264577831952998355733892580971137677254251486075353085969674019088783298670998270328684888291272854397813807636165282545713020955144385255679705260263371731321067028218312569942932103314097622176691441003617105975399257012551786581624239710590176125076979132218581127345562581856206140652597027568587774037723270674976943001229245784725916177820278336730998196488325354496643994235947692686955380315931614676045085522227251560276862470084834020221674796417465976743284680139770286015373769825530276185589450466882357715798037671300554058569586256589949502170980012971641771659366881770122699279230301972526201119368280350387099324542406470674002594233350928663842135793951751735079967048196736689589334932813577288423445291117505587635820926536479396237973461450492960560082871621359777031042556871589504040275506692973414320502404870794705905893050253979976776095339063745815623667135307647019000115577116000734613732843987400547684860433565171436146842417396228060590831183658042101166328909120723584270189834202556097699050003828840321335463646184508045858529186310608776170828098704920390870697651487397439137034340193649337974574109174679805369994566192861255850401387207483364337869292582472689590768406071726259989805815127217565419944650849852689457168998665265157576056012746516722343715200116108771545571271390598633315356525415987777049702515787614217725020891643673384953019422535216535933575399807187322107046457357537476516197106283662902055218771289694562435370509992727582590297077580297658131094210112608920660940084863636454998493869495125252704760063190293082855745404593910560016392410938979191400276300989188206557820741394192477774533445802723302240194239793339974868974321123406461766769923156749682531159888409762259631951628710074031681516202035076270843430144697386609361822137933498034255709372426949746853168598405825731594210194355234685825945982287287363948266050140700003079914665608711663824011333744081356706293032274836914894497904813361751091108387469227360636433249880168087477488358559602773305878898872136738178835160210784935090659616414370922378209851917502647917249175393977218836149378761516012282634281041305985345569845168141579335394099027674590340648661495150712447234319969083746421330999021994151000615688978307308672575519027671163763887686367125106450798395300682887579624997626141107406714152335708994150239176138773563404833666070252601633781896256028361639291354945205328872503802081564208475865564708714287833004299230078470471888908466895858379745247792177799472487148818695211954137028517062254247817925165090275119178914978969642637992001940834428443635650479425737953924828602686538394795122658836388348821571448561818608046347611730930035590265051471912470430038935026851132917781470926805777183872965598253050782880646562211082715699168209205383916929037924253003982690458883510333472460948068864223716528286030890978170629818586099307358773375132953264033006520495828412623258387592148240088050282868778063206944688920272796638323099942073815969172707984448454540087588351559530524126731919995958301495640407859009392751137110655050461069024790992313778766471297084929817311106933829137516999963377939822004964506486368337309860809558648966981039450715258202520281889944774890857827877191328149779604129796297014295234602131190751718218819583130055363603123167442910892611360906895174252382223207125996514260307585696411816682599366474498505518174426613566352231872530968365355623374026744689136290026377754596434196721375297350344368954357073938019647996574470399404658719696791552288990910863130383658788174838865373704874433338299820687149421659729480817929806103042236760729949796873069363570558382304894098490665999225033946818521560833914990810979219183135648698683839302593614430732942473202676350957581468684314820163818795626208481724489555735652736062075303360489392984210950582920435066592571745840116020844546662256599053588575198019710163669267133928624033134725000599669708650146570205918943646416236232244302280083057627638377419463613460189081771331267202060302477992397123412321373594346079947885469134627222799706848223636755923226962092005380465159335300182005859974105333042600292307867934776660284904627513594943575384178389848689392992905820981446122765652848861364830233779682139498854693577621944581335561562997421162051923223744653080019828469807143298966411915053005884183917010273295122274342802407467288630367661787083039793900664930117272819176800551027486946902375029265668748012570564942555007461774571469825102298410759336853239690030928899411380555218828451347664552925653596499431565840203816379989835911518396696170359424559362640977132972413055995311078898495764677873889711284277295077540675864671471803984980887450947888313695685605578044984043030511035329034828187546248956217070318864766462660845051964882544482125469609261097480184355057028391789818900609592136000955874958977010694986317435304998262689603005013176154870995689642199210800313262295758752099594473271008930208610734372627144900565370270457338605169311886245298259369577510246090731844919070931902048827573842482146284537144091436098798421595848220770316940324792455785741894826139140688817183923288325523166304060464100889082170727796799150093830274117603726248989248645038011692903597474687496326432213422204679018039221635444270781165717759133120655655352215650230149706741874935178599919121058067899284139133057283453611884069918251758164209789892456802948004373323284553768685479426552638702111112625660824582981071173990126359948394673837981999488859662868501782214552479571014302455904188397423590773676523477155738830885480990191880002915006335402653004072302367120084297886022419156222577978038314881360826711587192841968557446217083291560390516416145070036972951669007815572284672744202963222954703156241796907225655387897722524879309052095491092717142995174682258457485410743484655235296327325747314988886019058948182802819500083164500340529807211727908232174798618385475189920352346469803406657090009156123954497326076807649527938532588903363383409393060899738128934809382659443716603512470496508479510717002526083491034837750814089078071874723702918731834914951844233337277061379414662080056763945886246917976541811110907446479492944496078954772388262362930273083666359704812664744587045754707213068250033669109837740585745786107819317399678537576653239589581585255876508416335378253791215222352714692761559919577158213023727342389637106309713884290318736001775857404059482450461795158118739221025939880742603917543923318413585599194663147976578601506518178343724678909296596046355106933707785314752553719743886770510519929062657203605839746739280553512090367445649908495964257959570975340186899660470859352235687935899909101128069852707563621047698715624782514680581609507478891318194572499472563388055396576094842908852481208093220672425156484063530421741408543812253614707674678876162615868187174881445500580625963568576696583375813457286560283665876031249215798210279544138576053587204424782005011751546015224917795517517347064550089888883467695932681557667608380907473984660055026086311742925386958449605760080587671983114571172725075718644846478867618755891147246063311884858313125093338773529664622986436501015867562483459176297617312668736030082590135682620003741122060605616274606733602974643445943416898484458518815238325849032178026370712251096041699710393025498595480397344841154762556063126976183136924263342992558885682975732797531120327962850851334993240308534175380303795602259251619394934776976267360962802387434934963129372354149926826856207311264766163900369354024930080537793665306796822420209095505161402913548644891657239961281121854256062769657935967176001495663445102374782454466390022048907367553889869160838326299313598979971128493135070239077412571799201494111011518250019727853776595320926625865729692012946009063594827702627612243102633565984119930891307288255499656881663840557649154873116301451395876455495393047117142079906699257810737719357630355178569420249303880801366114750441101774832801438970676300323050799776439151607584674491174222763581121229580121030878515565964613163085514694053687692793006277262150744002142913653454417584316346992112237574750738884687106310108813498227183057372435534736547537128477658682257044178739475278651989658547126552368360522574067740921545709903869013987164954504821629910904903529793468994474483729419458021644989406020211691805861140061728289668754299343348439837150961224919258558934654368332409635755379866354050491959978104613190873172121236379319499427139411801680756304378073087965959226563405663049738304132304022534931429067199452876252549209971640756013167271568024576382286048613314054925633829242940295864599707543144427561028545321260764245516851122545761482543860058568492301356708086474515367378016582080971342947006991292727592227763385678670087824795603985305650766810919099097170062592287132906513452678943290176816081113045314631407710906124180741642671787009768856131379321188873732743706607860908312609461139033277502093781755298922681275596234752978825635507554019421907552699930653587026052222274470885885914937122047538804554661752076196275334821071242900439947957780973616988954840097613604300559774980868029352930836608454351772216228706268450626451470038966654605562596574418245756284907537460734000048318909375441815565647284498755052405528376605978929170217920768058533992260777783860669533900120586587458777321211216071125295529012244301983967187678671404017232432621143364050702289348214647659620274375668280910815367625752231588270833989605257203954977752417743148725414742133751012630743039095053065725298332268774210714437440808839827063162816284477840283740275918534831266265225505985324904254692598124483413274619316747342045790971901307122976207614177533023056528286521731733649737729668997832530217629607682920424335106444197826705426894675624612819070519020804499753509194144877094457443036235376975820720350152567642298093773816788536744258877221017715124125206731349340604090782501921469533470406485957480203213194626630039258030585703115394482915546161694104434680299201623309906147159028917044206730389697240442423497268982621263079122588641917179054816654703333601206446923736487553628230080188885521682228633985772624631051928308246192225636892373651801885102559084863953836718852620205622370248421557426269292611036654643939110076972969835947113365274083313817517245763060452575505546048510732884907424819652084676387457693712349391063913909672551142524219489919583441645795647480868833523287909187635071630869608058386028411815610445590867609099270762504698362524211367686581079282084409156480025795712390618703618998394042386110908966899370364343314182933165601968894475887842206221422251512206892377341790829475178088294862411701431317677125205842039918387259907837906161792484754492060776066772882632613302330495977272403959468649088283702606373162897378147806967577189078277723249180823583888034417580568902653091516053352950290804142735842961738675319354055898744409350116657663152188808485107138878077514068803651448180080398166626588665682612294389310107142028585806389233798499477313479951473102441487298578431962163908766428386533379548458038715778659700950931286728078045400592546633135604132115416225091551372294262313633137791094851298753252406983254376509604320940236487531783279422369291400261774381994214948769407428370128416680049267366533386997825538811681074890566785379921127565259028315448777741101996423492902597443813054477553238813202627506763020665297362431220967504416697737804170243571235468655247207193952870129608857731743632403717276391611964732615007552039917069808069347900958964725856170112250087953859206361388517308929466562172324552963050739180917956023841574909618444000093227030687571843817775072953017344867917463845846297812258935628917092090826331546863237797704657057046216818626732581105888727499237972782844789635960058229794295899483765107797651203484308655907415106547019615532683865595537806171240057776458974663995782390352257314301059045509464582504393530281226691098558794605873214603638375160898010548113945447765352901111828990294278236126011143310635127293802250273255455085003068520587967886928243823074812282106434941671330578275908472729973188172154249657341000737598961638756526296958551115582064965005855199264695842819785096630110825173678330113600184914126654906627874510242918796450166254619745525582710460499316382983292835812615663561025899859110787233963313733245901543763410692306601164827960629849104459939422969076270536052565571311089015173213577821271900838046122126799675569507906116323261626277512493891342559933209324309109611137199799415853436919020685979103392294383085948583034784781916345694988101713612437803499104013938486473053068740488678462378807709853269288921674765007260068374334807595483149476710418932657505688633090762242408821931650608256507097630824314799209265643104368182651145653621829884208715980458783991700444504854702293953826169001142870342864014409691450472900196340668745640004467089704863806200852869722823072263856266057168770056859564628536521968835181979437481302618583847070163071724239197200067706374925716843563304634500411477306097629560882184760046125853059422178201207321151446717801422976255621802011743182119856274234297015055086585308858840977131315125647270743998563457687044543863091276765295631908650642773855135513520841003125146932613378309601084354130346624017184294320536181355190107879215457024803075296907205376681643026404042122207471771138396067517573226031923382840233884430187708743295010541071802040374411714044445681075872325580105368164193009556488279105627160196194409317831191638173047839578441063418067767632383097799853960951777956013874573810821068201974765005665574978592852505123346234406035971653245501432743700315866834225501350342372516723841266621188802996210862468126012187916063470795098903246950592614462177369901783686421874410685649228930769569297757700828401190008784877816774022800514488908832546104688049953371664126040259832881684081581831036120791049232395501953866050039621456525820063459772104399348901355255190543758115553787067278041204822666390391172038042669832592525416906109336952725450689268647622632770945599175200462669652593718527390771816678199370686078316892869382671974989611558912775900819518729020950701958354660643094814289831425967426574873854600293186416394882250105231740197145923818038274295253277876570232561025202015628247032911629472036723574439011175569507528554067284633430258306651254616413611847698300666269304482787983286905263589173238083369393894963696940572709766070205221913214946324667639978537645742599543559023237847624140461180797083588839439012856039604664403835155449732037928686722420711699939655892457021338416542360610167024670407763444898798416954610860079651253789934998883900602994356250064722654452624266843228266679766606813960286846213136733002047217823552369303649147304669107433472999546744864232231264706254754361254645306893533696673210507607391289470978214661890168400869546534129603466465984200579724943999416020938764685709132880072057007305433480123933895097479475546268999363803573439251085709411323459612066187296052106669449766524773449891326481968450254124334568418297844495052243823135884243543397618295469996485348945454430486436721561205706796356550276533072887950818949973862447800383955538737754982582576323008857215346787256812296934321120873111242393961017414837007594148001433997991614786906359305694845699981118353547231024862807780199294441277630152704230390251554154899364127697854075909981045990408322984159970698587798263352461900361484848426114090648854817796742140687705273353679124488187828732497604067889849712313113402514958177094129456066411470901380837508106827907797566407050885828966880383854002523990580026185479274738375887111182708379882869663029570294873645242900055916590973223211876870062998180180033842978915081684071537313843224033451604443493612973335615085045942382367257829001471343023227926276461734290108237312638778574332762854322717133069885345440482240239578054364393383221881988737711265037986744881413747060333241484744136171759335459031807950003300097784515877388174121959307799595121395940765588755450255191694831682467912677025239479531795444248223504119213956938636155201686895691938285091801027037199683397655085256788700855261531662511633711246019202173786039230184565906278672806362314031904232630791352460904526794990196050729964903800130326322764091914517012598302724024431430720776528112614529122987055232744537526445286641651299613009014975440557869421754935670228017396144518366649225622468311286162145486526043117958432353479075436445578228998572453877018512436215676703728960276118679805738512907537378767128668374713778020853148077476656602365290474870654313457898987486111163249679062043913265546715557153824451690656470072531241713017486391637275841921120138998516278505742094936947439801809635771681654097167474244321829932674826695046351600209938829295393546374363798829704585065959582677128686979153338935165832609182388902911401958637131578940600439103271587993324285740605705696723563338716410465656347419887068086396366156168892312432924632524133267623331979389342666768356496297706823403750345186515967036908596872547898357602494626484994405537621240267982188105254303995916776080078622169248629026604882850909662262531909135393290225285956865712047622945319575952734521725689672642469060286561048125907978195900832949504932700796050547148093675758143175945946925714402028796650924515707001358305925758477502659653178160536182524070711922228337557216826147690747512219163889002182780290438173011565968116345219613894104593421175840450455945861846377321606799785232614294123507361775812974880460816570873418768182876729006285873582410741978222537815861690390890809399492242445301103152031232978352130761301775683947145073327173273586313645910959402537382252988083814745135608112393776174656755949493056257841377488110812382173903389484007061180529628019862585352664981274439986751749076640892849771934262066497056389155433437668033310892321563852773189115330087149101263069891332884578907067446865344129983638594094502830268625097701702864431514342033073064346333487322839298584684418139846092611653025139664757114050984587619955378610386299241934390803899692328156080931928487170427694350315693802128842025992171237862855404341558520917129569570556647403341170387225761410239839267796125372082304540015940594999616642262452622485754186853645930321722758044562137095031883618567441050965108026020127124792671004862679518677858159345873271736383314795180159651875896516824675959000734670423046788715231003429346929494143710987704807425439176555002576705719064394651506930271977070676741648352956602778038361777617110024192992700852781661471307860865732989830187003934234139388908152447536231335118963408595860941895304869288041135314731156032364096680846072372480041677519812802963143307018919136974311669094949707592030139949860471224996440346246308861547625821356208384495640544272553315094981708688709336766365779301802812397274977225950619894194354015929601627430237186866221454761751540144704447338088802508366125611735634580255048699639187221103143611514328587478346241887416307507309115002353690806164727311576385482304209675776453374690257159980551601056641382029172553477449974447086356658823878030676431892404081311942730596939901852647222244857553751869996882341566626330380609249240246577369357971217383542801202183314879467667207165240190500298905354525485765172391032195304854998685453703150824930788319410357854703514567291703586014861389410924229020093775180108992020255080688036045735640606357247244631736907272242279167983470349437483741166133321773425907067244302627847549420878324761024677481186675335815726595073300622882960671382247208115348835658294610089904404223665675374720105333015115354675940976860620453374870593317860500967752106627480555413259759264496103872160241461089201895774893549292398797769902438127574373387506448533405699708901981751706290763875223821758217812672381876081885066547177159531755507811378234182653885213762530374890263526967645019640354594203237727675148823248849165004399662446529255213544127443136497300093711705926503691920949209027496112684606417990625354392892654723360645915764491551191379218743318407968273367813421495456098204077899092176348574035013723075111030461112510311272833894713756930005540493062945296950876626447707226209697739116071335634647588847916835490466298040746028174133410197612191175717025457894281472479327143743569397746300104754594512833371728395979273793014878702970603984023817098620178600323272269103809976704622341209072286568224220433282330807205413937217041957605909487589890471943867823314343145228147941926875121782236649718878268132466644920644989545747968620845863275038405797903610056068885781057911106421105935129799273159939909918959305334545334811901900055903541946383174682979209878420934232956407717243956366061049703212345046249866148557746534518969757409491035315565902260056035809756148357748001963279723058130264275203411621570335211192492482214117850560903630082189283013191606430151458047834317017764651063553868338455256081672370233106526109174001098975137837873556267174764000904132607992286313971225796658284880687210042954242617423380092374286012381712065652519912688551583625075427645398780267152586397477475213840604657762643103204374706224871618751458465458251703548947021535356663909651472171106068519047180108482284256373093459176794688837403173380745716438867183045662808974996654815359244278103787813299361008526742981983214670502533411628630478942040668196858190713138087087553207124175335848068389152482588815770617935203715708404722429449184988709593007750201141159316662223461085907603217821643924456005350905672217085643012324688025051799824064692046842544932136622901794507001500249702872802770413892173639477413187400352481070452112469789834002422115770249831813227050247458643697876666236574040147105588269513036161748595084092648107877235535656683678831141992177762990002939723770485299813497022910608708596405139175106084275609676096586063951229311043870120778768221223392750243717046650720934756825656062118443763297734073819773375833553811146752504353353593883893335286264391516012986322075330397921125063982288750658724630864365193615236638399769560705213672183031484428241122000578541159662068633821382019843854805243254775763171344264883654977691223237807051354055664249844107233250378857201630958606562274110829624452281384756058468641958964410396276007767363669685045493685596624053105024814981383555518502211064866442887642533056406338178763136585348588171796272559114417067565787545694901285803256024045554938474005909972874976899768403919709689827521736959401013681517867390869727075484131437596508049010715344236253121631100857353541162710266639525746906341404711827335014106972389333601451570164990655923179811783830885716633203894233489539270449991867375266786987132827761877229963155807697247204972224796555917610794269790625517941133749944765753267555975873528767380056395776724137194864514127915720203623484103263697823316569612521973910576270361212395027930740066122093733156386766722972926119233634372058622564407292457807786029933269112668561338799595185699887758035081022495278123803466331450606869423902797267518447241925501362443609572864153410450368496829030078049910960822016321166460335519201720374432949881232568743632400700532402825004160964505065815330692985675108739466572192143468737382375310978772373281490867864718853520251689014784423807663210811320617460998943663065994638208256985463788306855867912135233730914477738824102783836037090971096022812092659478129388441829862969875803927017933064757600253530792282644571262894445723123123010956139946755820793189719629581012431058429215460973018780241501939376322647119256940602342969408308672335991182192650943159854264056393588849817036718528849602615363194031110045616137195712003526727200710779550918313589193610110246357731563959603200481484337597722906342467637975754220529235106945540106240079476651301669326695108485788688112507635241852766214177363938810619755304304595015678920363268473459536585871672730148145530693130392991058342735541096150048681108225915885733170175850282288406500936998471524808258119073345359352399289261562012783394151552133077529470141396880620262804625270314276455809377353798197174151694950066685246968515969297854681677799645277529175547400163586375366752233841718022371793183692174660114346749103874074524191227032705153915298134727882094575974355978991074874260755934975912940525391979600993561060668073652712642211486412473026489799079211823728657088123920402884199906625051767958581829080979548961712705177217397304698273870256759874128836061975057282753210450234678584364686627595671604334699203074602398690320082896326864171734711269593353054766829956152812789847780870465528724770779317027197593645160536855891718131890756380795975844399272302830517207825993883852131237342742143186239531512723775712624288765180590812791105288077611940769480431857864258705322219821228966542894227354588622143765883325011242084587583096179583974516431021194996056889007034816011859403621054505716308382940572898643230635297667007584890106443762364400166016923252319301145960651999017113177098097726495220806079778271785638062319486266699476751396218305330635220200181191448385850885040351860285214267511388372471944087182866847354636478547551534658239930083179227919098779447427161582344220097526938332139802785906121543155174707114090594619559621535604313044399524554259535397883050708149364056397846149796432502853301422828610836866236824298339710342904256274313032777760099638443981288301593462938371389612410943466161514709189876454469315125497831170046984577112066849420609208265774773045239733077611946517219025315462888865357958540211067683603308364366388251219656983549409315292006892979548081026377620482813996281801902244010276125768255132493204262776707884489505782758246171124072279262515768480393466700793780325801022516388502241659901837163690941274048243587463275828611627218277121054715274713105406702878572411282562219405436237143080290997038956559796929518749788733833185698327199964870618806566457468738538420426883620183570575330494197519545605186196843853779605894346364023325690877606662933413537119805964368994380838938110083214079936958193286557035349041932106715484201544980005503619314604258295928590881538359368120377392693995408591310781130059567050220252758360139474395299474236379069973943185289879377930561088831943887361565877768261632889769421728932612984989526147894667791419236054963505856913151447898472828525596483917952631904037796033636388162210095055834982089122196655878661660349713706192244327742223955088410378876875121053093622830357988170166657373350203518444711839324784804162010392493091157739656570033981829370043622854049623243914078244779398342221924634843896166222251776388924024367172390710364268760785103250328596407038130249929660263499237436203652812951331325738431821326587984912854511396063006715394774878315157090444410906045502909992396198492900514213075685938058255603370243249128898052355946300522807423135523983531530834591102298530926342492269059514406503595978925765326756903773801042981819457127830336353443533263618787805653908588820986475389579982749279326761204642368614492117804414323876714027384777248256080927913797554662653041730752716504142439533642879748317078435355030669612001836621618719140428929163917070089090700610449070619291383405097444828184863011266015490575435849884169305609356799453657652918315434693884469966969725343462929656564888055133205311689807990990863246596987539342377751794194805417072058944863556604495760991674118748650307827736978550572509250557506707354865334590099692221221578560973956421265235973155935372338036425632818468268788172648505536706040758126514679608339391947564048956050882174538168338211718053546144515547153119476477534116560391113191262710544047174528699544565647139175608224290080829614476127960047516874679471877071037885536911482024957580225387871087204105230912411309647492543280690430516331654044335810758168579703019525515422226504707504418088278586584801010718455786973483947509901013689475582351573350740568678181764234383381943520599113414740802769948034946887204015818906163798586573495308038099707803483666197975551783809770811237968151041216272927649110622469720615775453661041906965314023743739071488285720913365916478815945584819051102791390762520357111971605492014496765173299552895195891236032707431090358295197107402419567706774203054696452859833904657663414622013215255558086564512293280261747939495014719003671172794827542953022015804960291441689129296671557497811842109159702788186989011290484677241762185358300353037030783251420452130853879845991609954267604302409913708490343601889524836964216010111372184901369392557330817694721861417312368112874990667327267090300537278181514342332886072791008332768807378344934597713782905155468277350113417995068399735647842748775317029974571994448119077689981022397682171667517030854949061771221979754615255627851700497962181754570501918322119182784471520113405739449893742372792112853286468722198389111108557337005996449016397579347420332208489462067183847210199495394399077015088014637664423391924380469995852869661964330120353731556373027433106679332797277070670803717844884564082263775399065844002805442417103351072946898547798780670883333543947202793742635053760203609325474699279718120936310587175295481789909892562965827091148843744826252382841506702574596829750741621214086784023002141539269244066999361690652205255713144765622730442524931852647493817136153435857915649584724100516638694755732114492142895666159343125085011608229989651971085053192140452992000597495639183128625729551762020639673037911444252225289750117246542485347088090052338687933422690466226686809421165080858932028125494662241908967554576272795576371275717001777856296155832474672109565315425656467786083453440152737767862829253315565078609635566434185190274241137058240612077166017966882324721435623148774469839501551101941574469954285296853165247671338769202514283974021352735717342036540082584793552732175921621137148585383967266759899603423203160278995738665941056152393180455865738384884826965797133941349067173956999946191640234445407507659968039689586574485357055674710343602321191198361708284514027312862664799485242029792747372295558804116036807000842381817468121072801093442656468944203382972345541428217525943620748528485890833686623255270977112086428142670738416675612903835017829413190311168247501034250482286833662105268795515111317907470269550580085471330502976523871704980529945578720292360255238625795604074329007809701987241891288822889383249177915574091175614106284887767114944496607499110177905079439189551070309464893004563675634670791257780599123708643410643047732011999977576471724072658551136528799506337149630783182763767103916572761584896840909741375058820264061982062741969354322960360745705886723526257824181234307027186500358366289102417013111970704101858168584896367329794447034225869407059851442774958044952208376984581515198016229089779984129569480108939161312422883100043857264928472658907801159928726477338818061136842232860478214254856954662647174418822465642770712655656081137182371921876506549012967248399066740136592135502097968502388496773305593699789372145613291352693653940700283060487127579140836720612849995347340406777292210227131652335137828440552597948348865372373431906263261266656335192130973079979440717721339776294059788976954263578978936082357822906323883330890810344317475137365943392107266149422078518297703300813213937881590144149249241834623838029096238877471164497858730924056107187313230263475025917974160063767296699567944603524052828988420575263360521738572824742629768157378701510807724036454672772163907620830873104072465514499021177807931791316926152000806243528749459485590684604711833973922391834416243112444484020237348371190633930037333272940516919524230363405937529090887603887999188157478203716344450195297138701435954815109655822511160036456619304862506262584578907128066923371179722893652657548820830530875012656560866206891847436552145388160623026002716295966064007506023982222573823418904136988923221759899773628972516948157926487744673370720877876910597562793074478986326342992214424614642792058671987487359275090557625405594894171646565392629320235534484014004627158846144318742558937807627935105605423736847415282078328448833152606532075360973264696376281102152526226246605376166661832240037590405368416972853704865912131386569921175369271159488898975086196350775311122219219977556516356709039848591548859956819563673455626423403186146053204734248816936756056708959258679431152570974383284862457562341073415174260105077509565857315388484011239892772151541983326938923208873634175140689620241805395914105136646296330289657382469587836208446969071790184661654355006526645029503311955751443079981847116740441175069584684219681014704370724393765528969484030533908611960092071430504896727996134990195769485808448070743183720531231741457332133987287899783084079876957611860234493770763752731402530848610876897492436939180278432070477196610727867781516103330690006934178031013385378266516539811104928145977878798918551786987343406875975144527684106457405607741998841538823176630779304199978022338582208760693829695272532004073416579100132128451063579313045258689845104692281615541037818345431832470452963752706210994299523405416948114950519534784369451226558393686376016694332178876068856384125929667396472637156538168570800403082831871789034401281642570599242529797928725839560316419264993348690628585091422368945831005457867107694542369326764513822000123670420236341825138595294090015172646040478378253595976882955460594296523124214008680132062883863936908065584416585026418401717407589015280455937686002342704688030555294567858743296915357032976380059767726204633898736501381185519264900032613172591289683178758842552281083826552345864337604818693818229114626318563017142728182939332475734218224128733452214243233854413378034401600591253769312742315659174046569619674923641611966942646984133128554088665940862080343458533831335533806863433440696510609458815956884697256520815384768054283259030671309406589686119722578056384797673483458889303495589295986443597857629847061947375546237432677012166018603228333360856823844474866002525204447425588258227185140594332781533128899607076276965509970363632019794358332805221646674751347544266979361302600520108340499662113250942943616188306677547482448855934502480941742808584988100354481709813689373697491568124170279591927801811684378834646555041803968055370195823358535722298109774660248753628349120350505537484369459686311890537588932817633552664339900159871275902458928142503895212728355477042516415188250389659842107343140008286140334985204465599328954344796443294220024435227708355897134560173703611282044113395941911382023070137253403251743533576884217346797053479574762341148328376626170401189183885928257700418185311729080109716831064956663747390758871048084426809395032086237507922787335548824192255048447163862564930429495949252438780966484593920242020723202151838942182479665449931368629842227534850509610251775814405526465212538560491435392724297841668742050204195341555285216391750818012659949448612013188547922937222851190285493691576549246934038108498119965052722621327772739677043704955868189043432551806962847005125077268302704435827942256941443858805192392275495443902660512123530924524772013011505403863812910290782636237256843486031644151584596408384904788523582795564221991174441875762599905553735571622659739790331892793986662956756596622852140674975871367877601866974447750724959797220615067818113518334563944151431197052849283501090518585453482189467270364030947793189425866586375617912648948278165490225961945140204831032572557276780143819438913062546938261345675751893002805254110042370513243616225458350403215644688620923268228396412561755074974412624675541784378795876079353944326350537570389133960881560434683393504344175814689033956960075560243103210988719559427271117848964429740880927124376058191885749726549527068963561856165113804077457639561693688518124577544877954518938532863092680256507513189664345548722798750128976856399507669359063090826588351442093383732658187465758127902399277312543770324939550370744485472837274709067292224093683117120720402345322919664853705756854171339373593829715833299165768706188289905808129178518178213374873560651041405576109913104686970935379718427854043597866407525507368024494070673373416195543168762046239538324014296141493503323367586210618599703055014252445050179803046422265598815689002299753071091538632906127993590267348140219213300785691323766774181051311491976352676708527868841068222444534066818868348451278049505647544825526367641796342920688218068849116413812223181297041346027725475337944763580379332420283742831279071106706927749534096151847953194325253530354145343113454755466151088554627814621200662279695193213654344301876668528111297419571099527790899257345732825278211943239837067425267805279631793196149128520566246846790512694817051898974993147206978073406699265811766864424801626407568477821111607600404729894913295992793046214762930975755535489288342528668475596741516666462033373638222498520742787110045955845953363373208729850000332292526018649548683788613396177252275978681694741651405571472861844029049021467046159779914670468864271307846015806594909518433214362214880234035123220762822002862901742730966328501578806262680578408185283629184315556145972731830735893396589703694219334607824208119206400944354590305130925581192213675146303960836189321867829883239232236016722081232482586074546130900195385921677873295242155368317983698226840803868965331137184067706447601262448021583200568012341312732977037819101448357670602327801365525510639589178355694574917615280296568024976606477100843918587510401809104893069814937726699680933441350310499985020382417153530648207437802223356619153526209771023464826161147034571694999912617830971134071393289022760464048280633692369066910467883322842946244518826239448184510072130266606311628196929108758206998924921761317022122956682096128560013965324176350164406129511884550016639752966899688025616889579316746343748730568217492802070608636346545555099422555039424199624681747149562361671539661922268360570434682956633769284718461732263952760070653961643956207304129938870325545664162304768098478284748182421386210786078398712519139372701071356429052487814144054153319884820637884603594787852531215393382568766308726999446882695054378641702513601878375092754440801119752660689907712116227900310845866852855425736603069502387478289103916823822704717374542316211514663618089068761443365446614650517523785349405699370891570134705654367814449298712192209372021246901299683892706327781222107435884057781274912097074972603052810825835029280371457065976706556511448875365289502396167965387173394871957419726696181521160783055419582461546179465303095112232596657984420900391830695967801015687055869748966210398649877809158973439431154158040921212351842906686994589257213208045990171911766652845105626637637654080118276731071892654179835362723786403617649367648767332060231446420287322981902205899099521753065184437977025847955937202816849737018901748906965008695332040179035122861565251965439030906870011348321400938900328701234476948966065969591460225716413337574013990507933059049389064476692999216569200149270469704223001646932241182299009712316827926495601552258720197250998611002043867101220031576644920899179060133156815639887293864088925746300751693497329467445935812213873178377874805464737417574778415378978594860451760090732908181495875047807364174645804505622795634165524007161163122510032414514291083270625417385808165534070062451671907420230057516734230582562905247552953015880793846317686879113780540720050810247690941840157393588277638653035595903924322269053970691127091579721096003968564252108012925586752813429512472863816849958762629636753513231621659735357579853905998484646056388335745484947522069585476493909279563873217531546208010411193121718883023300938153841826213181266636614498284765705680359275893701566563690818770220009553485862823020044423951477581715874572292661147280287350036375792156772758016979664667380580947080745629939894932287434794863100870063755624939776318012074001812669558218689341118757310091607831411657424408428429679095280599315115053088194257431975732623472859392913917852571686776227195825215416685688524701853231926676570154553559210308343700182829777689266490130066517330595810609531917283666801928861051282371188562817789388377319730276298310221544194688283185858272878283670083184221973261381393480672578110632772753865291680415707845348424871927565544941581990198317979650628064457912134291878607707763280328031097237278285045865636373881858620382995169359950765322612751983115140354393910457526791719422625751781662570683195769291967933563271732974633729051381766817690915435165860354942323400030584075125349211935017253465491494244144847657681963006408156422266982264977074228885037571066523313247788538334131181134502936784450875087197359154597308455355104884947652603057983199772120627099269649836085190657591444658636491010378372453784533089238623904686072998665408584675965719397998776809625025156965208935659126198650731860602732772507523517795552360825459331187177752674889119400969778969259917974905279285021188092558776828505749653466917177353950416569896145850096846724305326889374744934285280837519420664205820357020579559643124124531895616709251908831531342803655107852232779110778741205619618061934915779006788269422049622335948149570810173860128745177930406242381523892551162373686343650659390678802225015919553378360509352170484106849005858196688273438296096762420868857458304578109194337343682860956755925168513644570111922542742818014117476435705081762711998319324497547792658260398974977938887258695790983424490459010767892716891772413711674397183504469874033686444013864656834166324580373070830787582853408286706082045771553968615168198569044350102001895316919762576935167234281243522331921157411458189153372446619948107434233434459512040636945847170587791928886481671026054305031941983850792481065814609164587885417136418715055121700504832716814868043806707470823344722623974445897701158248196401587087961575150812612976976477734343754997826383921642452456105603375092393276510723945712305850860083506429697748857947737191665849267868109638883640643277404047067257299969224594762778463747158645353840443966441744656408524227173902174865707689206991386051430180026931545277549925007176236697779577455327419515261099415239026082154018016310991313301138198821580228412296099575969855952429383463437602182795621103210902174413180915477278909531864245906225685510372934645822713676175328530509862881670771800819007776949215386948789337380210644815292016943721568570724715183356807862070316037404033881497235174110215101641531125174164667069267487878259107727593548872460800984954130338662768974961997354294389723160792112843407736759121555431273712627071850274586855056825964735675924759448958513622610416487521756216928173736920281662528957453959541791993252761585319630889445332692607732021718019992980486994982639958806111588815975922508580485150726368339358000115842590409678721576794787971272888670192977023765251592134472495714332453705612719532801654612017194569773941474271776047160689928373207030255229330192250633018472120686760964527528162055678867523325604983598778499523991785320191709925088558137117111119669117371165531775063703618453751474470124801511340074806414331186146129948627632008052969166835070746297808376611558790982370840514840181478658019707881002661587677912972022031727711512685071659753592199627369177924330827929479684274274521059596753737923921945603401226001824459243437548508593719141150150323450349107262746048314458953180218269760486510805306540339393220766494569376687133583563793472541149042356296522871675008772188791021043303232372155068833841485864926157046297543453779422131186486440538018863020075677904849642674605309814200500820794815135960993068123804037954075530994463506671320164959276051055421159216531068692104829843190488973137128219139769979606240787752607287478131975633024055089152218850983036251661439340226102735291362713944833424142765527085183913294652172586860037870098546911585994718919518667609130128896734821423339104105720487657631091792092254905573232293646747371610656239453566128109752153690084579285459167060602320589950879851146163385027683203949173093769744815606580162472236277841320737315980295369506359800766438961285336649558893467135347092554395933188001697552206573263138721330501743492992977532647932163620193303987770911364746625588173985810722379304981348535448984836733829148825327072755614834159112392480553507788735109824165005076607477026197485410598738142205339852541474290913488146316361504437167581473467659743964788567956238652409082752682731485898405158689041615304996520654168002040685292210257868533932609822633920930858824434311945326451026691610064243462212801631248151687445360321013472574951156509948582501248571104834394531215388952690349453455188592580635850699788425917639564824987916673704065561907061451273135052080426601731066362222926985193561481552448955174274245402674447760250859170088247158309321818005383674785072002553212440991778762481592573935836477613015143382119786167576351563582661368119130032218005610603555314479351181403351217535266486806450871226163130481992430551553494662738219637695588766480938800181297267176776516414745253028100467918976853365254928724889602370908106354621831389905348123980941853731500631111801678226940317787382076435086152223509194258875311296795267573792363597707996038236856724559731592182151588277641283621324380262062054211902406077747441604579106951842797996167351784180643355999210081631022019291954247351885270876706499499943122187741488113220160738404419739804422832693808014306116977339327460224969558325813126197391990567344731087594802328752476293214212410503907453745385564024088463569785238885368697233201100105299642064077128174493492733366511268334752107845612068461402643739410104577001236875400441350768343418462963652103278620189473351120022834809386662249069076849107374061095755397144318206715516204197282574940186746411808379755567117017255508905205868264558156619524856203969950784046954269276763008421863689442248134447062889984896843657964210336093135978383847268163350660413844084365791772223320488141216058192413642775553934687125439159152803160355964830297497446444900282199760609288916716237711800772126053163041641250087476324074076088527742757355308684127917103853098855348655868087408898645383305574642031124548759821531387641406341779616488346591355130916444578913383061627183349503365887996998237621626433122316544660244733843886804665465168628051645837177851377323099993119062890452638741396293532690417430921291979902952720482656802694081039697813398588837812721612399698220595941264362871130058341819794780375254922934241581654120389639688060127734438500719089720997740517052866570393686012242701764028662490073717082669445761019223719556366049154114605001890132698821196136915309152276906042319545879552275838343620517531899063222636402498438172901206418082294153065038807041736293051827451685429282052759409644982415057543431408177873050377624617977691163784632746778760678029092700273281988937829333328008561973042610464829941974032015760298607828825052523712614089007364439780202932180457300179798639583407250559226331572601676746230592982588897495177739803289764686591903740646770396610818397327440282181516218535150073005023135636424140192530127593990538070321232135157382426352946437728971415807015225054807721061454063806691990050646673204708479466107077962416040143341750228419350892205679987409342353421653770232978371274717624614763876081804377152669489969555636459383324924811000626120402529485788932740702512998598435939360547393469611231517039086765476334222014165913383852797574944929212656709616380307762557479027021898161462826533034959458505124986239168149236496912570484093731246880674236224105724147002374616882284394578752842500633608632468850587016072861823416993667436350391726072356922433500136244096433956268146353034770329394336741048265464700529253746926519429126627197737577727225552708104781525049332422668543535104362334821192837149128492344824891012589878898284937608949154654889496093763179995150603875454621249165886234805300406553464149584835686054911929118941098833906378415402015399164151532147311623151169659219434618137008059892422191923775663869564805255980499964173554357626234011492008822601272266273446399436671490510781433611795012388468849510085621174649192114123207223800690265364009595428719608582944333932328360999580313821593977462896451385870213737412871544498416861241992621552061770977137309868940575340521262714925725967589017893143051651254142364556556467290986612687787082568177318260247182508225500324253101219455721711355766776159544237878499999643627827271625148415354546929028501125067108555716727764472085869462188089783540604338496397745531122015280403492290853079038719339150254327158824668859898357035520699909126656438523231905431513016482555439022812545483906030813976872175505271557853031991299558194678747788766432293015740648554304445994392567308741835672398242741160642501210150976940596655128399828627166523143536390777436990977756720172325236317384056063325821976491488130841347014296969717755329074892459785561859144179065566217993291623979384482122403548190649307271710063638942422344915885568723580854291396912217105911158412531797357015080430822214220970648135838867360748501688736786359284437323104745137187716988751343430216689894449857348520495253324257478792069822925910928340403622634274794358053170315519562989854105961679495598058463679107058355642164309102784787245094001950709896933340341857655881909860175333104966096201591156681579255861440944502771985993169177085155284702687344324247519059904184989433532491911913096077843975395460943501667851694438769727164622325165287503107961422201043987858129484564724043132504702257914405657524863539785313028376205678825362844165266573235219766676913509864849021265854256274073062811138563542017487197596334642734167838158967903505960973870635047622963543924280459219111915047272668864261865396775730599065444729633951407438100679292348543854882248642870769310949983698074707409394021094627326171046671334835700771625827806020828117126004292767981707954732886572256704983484503641438538493116701104087974427718067672795342052750979587821587722191539061453705815021873231042454506271412316886596074911169127138180622560835889084171953994622141320588132947764087174911198236565044387291200098228657613327887282220889710930614476955280615357827806385614728077815819142303311037190646283971248529326758538785610420195928374686452188512780502793435951364441670853820892921267808982696028906191937072653192766576975263029305058371586814369602592110782487474007992560248148842340515715376991680858245311606687613252923825693173175785448443951486021999478478597891084261832676385463172603427925527921294165645116836573787244061040819297253898738196423330198882911287661569863861195102548475112274143973837447535936026424159938017768275218589752350093592914519211040937111612113506608352654146738355034109521382275337558478866444949991586993135758999866403203655409937457747522013699998399045321273475444094305767496911410368026085357213170531275970244724249830097251167651735633613663438874276354437445747618648145560834024855076867709514165494874830670791502962419274337455644265836493433060356155846727904490427228563053400845364499601377258787358319855001137092814946514338866554516583343414791157748989838151034470206809902678297149514950754693673664546044583664233656181644501338384957462492300847682375563747253120613736224409919042277870422620694732647366109194355233183948505336968182557012037263193996556687490834717497726616070351779652148420027013741327080024782699369862660348563337288904261498820647270147784047250147935362023835405854854732217371777542693544328725895963885137744251000835325971499093769907119054698759523028129743981427026832416885388521669565620434694737752468130068937315405742770206247302157507896144866326085286818045837011513855559098457294806667542413502384995520115285409189751515330188592021199550253686194525980681504363061618397741219581059729763790800540453578077353287239691853386852279660329051653789950940505416923408274983542635612355098825969723613490843054690571702872587508083346244971938313256226592772988318317941972192941104356543799653130839967495058766763233731640165236412315705054109212158225084307623364908069207868226967777501793533798126535742869036678130747443205015817706458097423395315615428076162886209044270033054180135069910156345657060117711050585137911607741258486153154874147058675722141152784527162616145970977116517815656019977151057513258313849681090969855964303781728227553402708315060091015061792094316347512171121182975307097755701939291808079576064243976363290141221946598948587411198734801836838584969933397876763262544205340162687812386946917561035541179088494905706972283940596418324479909892522617213137030649914426236091738400239538264274226518915222755573703039439660905713832476779089265149089482727343715631911806990310155471525179395663721885255801225657102087842973004074484182097577649525215865398749627646274085112983697238427686487204172836920823514209759122571510778001119347638600371293346381767812713360260098407409121311392984013915121658884893260284884068115813059220024759723899834359895459484322757638623783598536622060396121227271225195558400301777394832735717209872524615763223233485583864699123203021281949952630677458619496050119789459729647132444389997459530162300420928203473910850592790778054029843298385487381264614807463697532699249341698582021785526463218731652313734752149460224508539441753054131672929052319324347700406790978129658471403070504282190342922555055744704519627036392038040383742860729056169772831486429018319647233765116891659418024674180235016368810241234568602199905083606146402219000447036667968629570441870079851133940001104266505840477960462616419305736012627368486020159228779138935497698352390693056825063251411446128044046915331093039469252791231030386299294520861217812644094254052531024264096270107280678777681441965007665283144992582537551383961063713326789096407936791193666437229278828453100763795574752761160144728198518681557674246427180084832041920686381800143418864281634158325512410258838562069687744205921705661854804553119151789665188420639025917052864843962682747514097345276773379194735466402656693574998973095836373666720704362914930026415248746990873594305065329333813649123955285050011243801993901336556816068289884217035409775407380228627060837925172366693556082237623374137943436371032182276906183874448021572356757668439352324739509435708875444106355180548384055125045032966795213003712670087182476782082172407270730447621737898895155690457799735262358940225743780826676884120531985173800351539274039492672192446368067424277006039543981062322501911880562634140208663581189352837030041803125252480561027462188997282251848574680347554654956200603079140903776681428862931404597760179680389951681930309923722908849716594480559230227061003210709711958249633363198612957392908307331479020773379152002807731607083821431475966850377111377964923999263726793222290320917029990890873189154923758324283697257638114009802345683414958245048045374986989916977972622284132542429007268048005627105174686859436999892193583027591728970512602918069785393753465839153197839743044375166907467405590748550855856261055253745453475451476029327418322564924809455190547821813815188909785824180391550809103276399296118692522921103456789346965195531029176070132376795327460816178206333666580386461729277603447018325382946507615826512992222257177353102355090088194082142414845331400668817124228890142304262440577875652812140992762864896589740168442556341546622823641810337715622762216773519233172069457418066865579909600709519473445336604040304437303815203847140334727978037811625392403203009035738580913151886349365295422438409952157689051577794410679063228021669379866630342657313203764238323747573432512218290334632074757728678353331254285870131525714916450403747775349796310908208841226587524308860994547288977530379176123770714215297706947458018028002033860359205665125715677573806211827066116930319535583165462364428102538532334905029753480596998569101816412597059805623383440008614733694041560607309352709865477535776595905601357447560872032079872597049170439033507938510600125206799346284134589039533433823599655929550210782662249630655061196930176074243120296767315750469523119961573572013666955929158511253940716835960291394892247008942671098976755641478397058883759925777707517663620966116003871987848918414712343256439724367049704606913475210918676700456614687485158335498938097513794125244079838676715934780997517048702784406984788796009103814696820258409604390063949166354621507888511692599782111541137715678230618390628816567439143162128061374631335877158391728863403144954245376454710812649784407471461761581774191529061726196692452178085895162217966822274576186740092153285285761146161843726703052217422464336640408304645357602477601207880776388666234219739356088852326776811405006879811039950503158658499167938840102724482542187007985908239873608723747485089276764557702548470258340257176133707407702132553878911308241104666188651617782322159498145618938586488236535103442142465109449698293100757158905421382471730578988756039925281275540949785769183214860049907616260542811966125594456461768824781901954194065807034046537015802547243128097479551876111859229044991032590873506736256273230878881007545406208259244766495196298196954421686623247810371880282225263017063151735458986152193038222185354162418494294906639190862674914803301103075144536460695510848659137459981212021848713551812866780017742268462643879196241614243190783593294735642711041358125391541052999663453164004669636025018759268012304940805720253578657456868932355147479877426134842224860671580446020519481068600839375411369876540093588039730025084824016824592362380447816715691114174217404326703698543530991058730254577078550188222575758056247970033182738022446119923593125810926016096161086618276944973466180194233819911979901754577578937414234001421018290568520988206402932513283631318777377740995882522639965022663261700204204028704118061723714143913829832853265108459633127385195170542207915765284998741495489955168884028688409849293208503494279694699629568870061391104965314762452241810257153689354511406894660257166772147222410656530863834643624034416398345297602693031043215534223872909707438863651554823764455344298596725859300656029366691603728723466307592284661040045372682029660603487840680228719726220531105362487966690078997972717715123457233135562624189305925357795130944886086407391322074630982608403155662936963392600611955250097387936050543029014077248196499940134573764818102966789661327808611012480365553339978461042166250494656309022387553782372896314499163193249214456685722813968807623801307508541569144770248597192350195652745316439022614816537570789669646950266382484347157336306159299886525755226473347998995525626137252898974966416212414508284180062821688471992534839247832777082509160889548186950574995884630960659880554451268363081478609571500688075933429854022118520873753675013054729635294108735030023586385423285547505001589706520462201398292742627603637004318638286003099613101832125719472870220819230416756235321861984412664643613230825921754310301404456520452966707471698424789707329365190679124906360068499519715011141669635153718511048782983409658677771342351426080246629297744458969175554011118342639077328292439912905577518443500020913163839518354672800630452061723797366492068254211522889157414028504039418663883933073160907786299798129173611168689844018802526691968573147744983239697059942671034462566005865425807452149142833457914112544331613393824151106029123922294294845778840783623606747816586116611024283853183038397152280472229977216023265378818898305279091211679753031906688251516579681775409364460394563036072294155959456270295176942196812594551649884382515582040686424007624973661569258118997270938653792261221356874656490164836346371452172315986020008347221343664021400646244912389137191745003243682602874136629297709901396500371004865884730078071045636772095048425997904439552364097320515234111335597327384548097168334158751896049648656126041965123306730872897911279100735392049888307877209602688413305168121280053626457927220333114955602167079639758720497219525946969510315925097162862827112873762163018134285215640397031901775520908126548634820471046760217299243372373207804495343168553796254603056707542455820620706590034723898671268498741986483991601630860983347502682301688112062597171501378755886458621998666836424280211629008849264821295141307796531493620075550228291676213462248935353974465357608008264159168032126299891549232318942009862373201599387313696268139058120689389540307580023111718870713052331943756785312047309198532316084273432118890239740807111784398597007492504853864442755245549861987322224260503668828403362202933493592218075568368323397494339696084230559467467520116656865067348830156783743711080711316490284589329569238833157458009757184915086402764038448484321229359761619687886412470894603072784915130703780827927464119390155123193313888993027197411289980158128956678783952600245650549394534846188985765874423186566029695360492686811254470991840498119385965647680921453180110006903787175207613283937468229593990773959431818574148526389065721417578310226989946957821423687476110738168341036077559387505362744880942000314503997880268073595744661113990887357162562568707938233731704970575649503055615411519795377769151015237867717138530307336580390383337627916241572208532882968873281304550855274979813486524717979514438111150881274027853015890858304839367869951169667945297686689956219172854000269075901625495781208968295236164667789340699799920728194114493136383264062161144212456298255892278574279664069541065568355619566723373333847089860837980282559234666075974018588243335349230055813325628048128613731044657580387598206150113402075166818094702778772427920746313657211361176451020840446588743195005241611159195910612783928491484895813076554082675508304771552441069282460549464737393237525827638966183943953464002928252006879017508919946348848258628727747236393846703691468318352673534858348050454869267028931821199995178126222669011528484923951766518627151775379547454395564378215070313443642109287331694418694537390749764246053955591946883753586072694883662915776521339034809521477635598449116886669934596261610481128681404045763052884712469752805927548688539284586458126833086086987985023583506781548903331021710130648855119718499455563206605144129279755102086185773662323490747648840374980199592841166057363349355058729206506693215552937150755654241549458943622566481245708962236498688145290345557196968193406570669679389722071690585447663471385135212632820092999078153593962290237903291106457119039191848385519865652626816507017870632502321008273839973020158921598190490598468692227894167819355724736240078144080480948460383636018021730687367583675869145937343387924608510037713697423277492973180823229348869877038292707609589998274006840267127857197582479567631058843952135343868140464322530797650162247253949619979930341342199046723913545656164012086814660501753902345674804490327447723192119380229858252084682745626567231369071546679301096429601378450025729186981038456932934994551103137305591711797053417627549568181578692259584625053318214291178641356116329578975338120253566970690479808630207247346621685358721126925669050687814113954811266608212962999309739692238101172382718124345063570625721176745322224534710962852225205949464350298038188431702627034911594067240174794441060478696040211392189309169930166015904612444673424345200785716234555275771866830355413467547119901752061324608383039272974559579922057922421219758383305714236504649550881468597543479385164938480039293069688512138327929708456399096843275760679152971445734384981287959347975171712210919546035263231605159151072393376700203059643861323539571365895398080034812793211871047355572394020443194027453147911870430167784624090510656245542211075819347697274429132347175681797582860389275591074328943961800861948473011321947456385153166325298318009289535361299487235741980962805153517807836133363267299372466741030057551515530928193298306125755345362724045378557843710006361380959252635706359669023782449097019709548282842531449301423191341840070132412597013421182666711403366415020639542116710081506633510025313013019103269931257156593147742669201784355117606470985340071313330581320016618940009688157709471820104609266183422079117069348466330213289327179732457385711513410234355534906241104361306707575369170130197397309922754465087736029611018526972777212714381793008676297572892235143693639986391243618809682554062192112966765200641912343435372589918055454440112128605394295080794437965544670758775734525345311184307661463287468630851246531510272493176947304527440581867005107402768459553754701382968690200232458162743740022653021228737337540783729884334732116163535269991879158151245631102572421545514193724458436979281612777533073218650200910339014121938445657592596660714125106654686557060904827348875515682456207801089840371681297054398470064348246082752186290560932335183787380151240203027525619268784678780889606485303201820272546457769357997764988534015055126321991950299469714538638039479354496527247054478159172921826039786834434055294139689475800769406976321811590804736645327253156996106625138680250344319745430934029489772984178286694513328058543875832393698395394447677968165651494654896169948724349570556785880811483783552562766401519600349665159708289360417821130245794590033662020143219894125809553158172932545580835508016339120240889145357625622320153198998759558810715264533579844090666872490291059451445725322938364941743205538186493159146279811405191697713776196063241794585652259452607250789121826465776499732568714482371630670368369354587350736224959495079705887330463478280281913433166734769901529289256879584818142571803340551408523530047168695354698441937083100286008985284528559892938569587988165059032753016897996690831915462082265811804584832624891324097580775678089750548203325611309934560414248896263869977570030738400789384890012630122735813365464130784743996252736274557744670183026448873765288575722657788488593396111653767551078926351363087798299493982544991957057855908881752010380943320930094013421791371690960585299944963651443604698950020894606948612847582676336825785368553809908966527733732736719825051355942805013176503396953044107198573498339552459337684700898743276175188178537709777297572610142739985209814638167808734449909103975263155734469961026331112476273250969266985061201953811285834876078174392965035005110496990590261428342636493388444659325709520647561494670542904233693828452195205617611811983308445464787936830774730062357823458272211665183400210942749975513588160242400499298524361087520961728145007690895631037528189144739859505105953534239918385871791002121390440270754001016963784310085141666775689584460893320175132311070271726438507003181690238353447361565416423413054019636947884106371343965066376456802669704775681453499143288618256761005144062700917017507461810599783179123602438639879555860094182313491072293017813248856046822722861985409276259357055731904868248496769126659013800275989438237118699084721961116836400435673180063972283715145516147540875121648607852148835217904813716286129073757291766043046267362327123561833262989664006590093291935035750808065812921021979428775473215145766870559303113112667324223792749301937065110159337465330161167232652150771391574124943949322645740333429576619828749909376315240241079469640026864429543440234953658145252374552681198530405377055462960382084800405303360153907844313729498980795053106817425690450371787278914141134674753274348370830850378919059791959097640546802082410917633058379602599049895440601833436714391446882467210792999031767736228607006210122500082706919036653484749960257736636470246049841633836892524503562416080907090583799692707162598542917968144791401457649029585847181603840250197628773389531206259464152345937567716675520725125790037794363115507101403297761635549491907047321774207121924861720238293202603983997376195043512632856517514177494501005304156579356949670829521330327473385783183556278443726678931645148150944118289061985902620051726842208678342712470712962723220061573123201725490850526595876568982195666974585024660567033518171968759418328150603723728257562186204409282771809782219651205884796068916028503986536887506551791279809922321059767345234431998732692745453439708628233347021500408104107783085876704407284353262580421467296545592670083060450980515388250708627754649420667016272977859806491553827914457582102328002164648765310166043655893818592970918680638446930886791492815237636768723632791147146537040485990870757355674083744655953367563748739673379449120688236084666460279240692905494855915939075018834999807519558936123321463801848892768961000126272048937270909157832290544827936236536094989005053342487027884990700778326508978233299259470862215642435786851013317721441682456913267545285786916018951054646543681149046546193346257349937823586989682238027236793123229308464944613136040388666244581370331309619325510316838778811235134266772705531675919086376014330152118105603098614592010895756705640334857013796610518492912621675711185742008653377727669759617182069543670156635649203054201476906123079751522186572771098450249876446358250213497572529182000372225657551809662011585290686416607280925510363602967734478734180418193348728689551696455180386894047977600137869830012862147749217122306853321096107497545733375931460090933832099730340293268216648118238427376735935059566649627021153115534425760021040926062852692667632426231136899039799718963962602057353609495068690847831354871972538601649182885102984019169927268860473593747739073343106212472370368682886051563131321853896618044330624705500479892501474002809668849566509662060724757296739143731454087273771927689851114303213470174144251280332590721133744048522093882916434195958299954628401896424802381076927498393343230614403718590188385475752360652365782450977483920666155411830372260251134071743992457335565959379742391902486796809324840720188255620387143635120298190447522054702188961298451408974236560773419145063826166997708904273197997314865975081984939620462052062363362460955381162698967505983877786845075562957787827451422086673747202594347380785322988009315516468312369463022753034625258850409096425105320126259507790708905589660450284439015580560910034364340617897343338775335699370576674741912152281902649232382152804041738033464164522431182301407474219558283926280784826008025200644322467896541625715757036553847964060733336729957918611781304896508375274276679218482477083216170773699334772553808335162896301015109795148540262004783741778020424534394226646877541313268807837128786980323462326278920343442123058302485772153159256454356085165638295006790006812385471958754374634995886742382557649195826069715031370463680369768325896927346771709975254101965147434114062600587233301707472194701700929724415437226404398060430556508882609036360645521675762228186663066244730293782615398886836907352540019300218767290589084002307131393514169740069691053150938993223324431280231618421820379268304239979610801874500768512934281240108679525641026635354459487249443204016974006059463736630806682677196351016752734373427037620265024960644438868664094571029999095976055674864890400716977121772828122875634293332665343550203766402975617439565349529750958044641930734779965452563642621244860193687677017024758838929962048208918647226017630200384544143389024868627551404184320238776333810214179028156333927984586144923278764070264609324638150907006926567672778676895503587816927820472923753299048813634530216070058912953366573201083934012522038356082869360501914679108662725354009146009615956018367287632420970994647482789045602618308906836957860487102642968037499880376854975500862552496476650255697307411411956752596390958673942123680691784879990708793582110918025670883148884579890366454698286026765275588564731085830114925729157243905909876864559352596384648934150962709953600390320289662850381043594495334234030851018316217385487854383842361666725072058704278290421923811605028956351325281594358965837879329355310589173227764911991809185679169088478288921458088018450236135804476472279557251691042817933083480179174860706625767578951496203918856365038866389769825583850449237993989218941655233707133639912630473370200146008077937861825940347540143263797569730130458514593181060816961301666563860607911977749349003189800960171807500707228600915072935960112033490262753905173868976487843840527291142732820927524543248818456336485924120061248242756444390342457178295451782992863242317374127573244208715653297295250366546672605028253661370022321665106444192395477242506834082448391144983980493857345919662541897817822140090649290311503370195625863636801545404801781778203086778511433007781262032260258893090401870800353671763866041104192028968065972016539857494530141594569464974945118658295196454543276345370130510921519251918062286685428431268906129857233627966549051282285889479027480747792419314053706475130876079979705843272700860369257326182265619687630490873118835061697400597390555406225910072929029863776510619355411441871332781349980776784224063497142744079331628144443219908803946994167366712376389818751584312808022248617875704139820215481890407876688629644962663272845957894301868752871677777276494273736236991446608739899990484192912276048333254973388497540621906721164040061480024439641444164902726399264987189647452610789883125290722763727082766789117916459989253989791097673587396846903185833044135378335337889436539902884209800576386099294318926394228986305399681863112659776751033169274655845271915116544319956021971131803339579023775707208563657970658806883357269954332744306817280152329442034587965311407585350189735481145625041142047474505561709351707060642833304336645322877809226310411036205668415867542234485751249634269909812532371040410589770578155577916610216110881247340388812647131525380692597054717447052375421455524752669679029958275737614022233540840744273552530749379225488555956561515399326500917877121329814507411660498736191929333778447754446104580562263091293660750652325074719596931770846810887998879173037774090010000395940851082991121636150910761671094519110646774431659377257817334731290525483568705788875162795567760821896283079137595874102916132955737927123856443406541890716968150764916721752814543751194107963698889984207133102612129117862516162793848840718850401515257032466699699038955194800253436567512970310128044176133570841900738865219274202498666400240854548285379156013012080619244447895655820583967938952882372471315574837249930693964717318678831984859557874423560435211303142981482937644805860155696031794337613018166107955128577172552485524503555493273164002003534236592213834274980833173031871804705544899301203604858794207700110032382618520118064475062812353059038423509109122369354221608753098897363252629889749406002027186044026832993653632555405795837381420899816938187626222494435875948045057580145201098361675248738130136084674871307104872768707256987317237084620566307965510231723457988764190059456962894752535604728094223280147479315807065870138812403273349142246081184268329424868297083466031473573559653757101667323844374610052132431040965963890478012668076778516339254198160322689682876552109161434557346407638005349422821959357211214908935973813933958130524082668363894271694612140247570813922404250374057400070722216535373711984580170687694692304352481171534907462725275129550818551948470993044008325228120067601385441796927629625091019295405633572944216697250667809771537204655020984340251545670167384048259911373051552166841794478028835758029618790071683798227469429198666334006676900766918091266640532965899073077159893600834971910033233265745661742931987638286684092329759323701635055245527960702003448354198660404146063795244138166711290174098177634331869930211873411247897951787863132808623682561408283360252236792125939520634829888146420235497773595868835991292633231845289882451264681389781196419095082460378327215150481092074343570484125943352958362667161265648236789998575914384493184594070060386352602423408310920149474561491219961343598410361953608106661473603738831188650139716749380941294514762957192714489538588658916353930719848862399452711643866172727125785402934966952390391179441788525347934786838384957946414194741921395729614853490218721942054589699860263291537242475980459174521608218243561493134614813082429554556011896225338950533159881837569656723334299617009941391277638655781714364565783615776184321262548698007245273414538954566338929862284051490977555010796011746720120857621035127917060151055173687685185464570726912213784700700459553917226555434124224783884904685731883383914050537983118755051182056201378246313471666020647509054770548715146680738268109535053614132248997604533881364390930643375456741708417895508629236651597675712726563583428271589572559253583515417903240941605585194859718397146810474241841642099804211049320806205824492622470176815999784425378733473860683896556376742589185453380908609574193889007431699816326941116412416920362375705406061816974330194824298066173495259578767460745520622640581533574464642008297156192075271559580411275162228271715015384056392524456424389505543006523233747753266862874903630088530795523598523657613721373813248987265032333914460682910461613395896925454734556175561753168929153661515561529214972620877971954711138324115115722434086647050702772950257119427117177762893681756381058324642272141601798951270263481442345978729013957497724699235883467038968614284459297167246781625646372835281596350808679350840682558255192970446852116893557853790914899899139421265410489126259093086234543181648960352073282371984684226963605953141828881758544868064620113187948806621940926761450775124292785316696231802680382615377986336483287255936025142444095567838980598961029167159376827649123583079244479785839133569934388095234817712388807113053338341767570584899053145108853903900522212908169757607049494520798084667304872941254549961273232170235472615377758248614949069432453630190194596766055501513283553854254030102803891565880341695812441883753135269056323055377226996673212684137062402413061726347390976147011584631423956516817450688330929306380014440897807306970609554311802246925384683584787042572455383147198173115256670990702796122795990542140196279642348169432930632254868531828790141873629764590061417211656617256365969776936523342252116356924279308381439361090518258821765379491329892140853569748174539221397439266137534964108551864378363417126755667260889008333100194058645534959595619122933332974110542345496517344699752815966923510178635760786297450323276586913239423667117689133628315259389223571656588474754235811126153241425009477114908000924105645216613724399765158469253930490455630484572294081415087855462694541371571145525579818303829447257436234365502408043910232722332377498949472825259794815043671528498168499892369239316962762092313563293550787627403442449998161855972981808277955208508153821002306291427289135865542185129569770682761451683353617227105058897679334669692204199537791487691506228034299786835769558272701203614667814417837241092723456354769155602674260560392524599421619388422265549299527918437818284795193126694236486451026227046909750607460821812211107978639230085983333807148837350955854063048986893786311593510082363801351216072069183905615456216174567534417696414908260055617031991907958380953902430186410755083473810631593163583983988290091339161360629445745743070892144327094273429736909115790992048774238319219293713315533105352715176363414172963722272589066903909692164355668158585683869678393192200613916505312835600864931254767625856532588048930491659427479626386731991996566908403891714299448706651475950622521507877155628438245855116223593819191989574539791923609892481749729643464023148064522923571471640227125974755832312644076439747564460145935017695214345695557119850208252632471866828119826578844619067411295288629608169614918150859680248183941288603648820237006077709669531508494999518083582015938630271747171741349234272057728951806741828756038239457860555550279055282594611526153817108848781959498591103083467955216289452298941267929955254190451832986122593236198942430331657172810156623229328454942832508593574193185014004076829798880805216637909262630630465098985414268920494657231690000491172931730634812208955368338903852300765586382389590889903668459972681528288477498589268935687264159631767052062658292354633043982622189273534766395301848822735196879876828132116574353398281038553236281085662647378205928152436445661961409345485293242386297878536243527016424180025545116987682031356250767360330813401539833746300735868091072045349082906277330341133389675335544138755792756147081133609716897619703081758680013985243422315537100143824031598428490388870860719605842487362399124302506925380308461199544938976999372813411200128449322363566052026772041414434188365888564684890080384901654405538860814186362123077457569718427319795648324496989124027733855090653577937500711228251033871548311416469675904132733315631156029576367495434855485033095126878983736891181093185366935832237756684324961219446336459692824100579624589250135912943305067874349402733750313612487229216903434644746014169359126467990257487280872642673267463063120369865852067093095502209777834393203908758325231697026070699715176535288582688198173524544067345408770064735345255685361046214878552330414981999845883574801333771930184726285696391708888056424060793120155004795977797670553570567495338036364172082488014190773476652252636504962414301813541260315397066616121637919692345240603652878892250925326071056731862109130259708994622481155902299628765351977182002286126690965624979592611161519416669338955885721803418963729506424737930294283995398530643593751231565740831604325597524886217110250542972759839749887180608970647697550363973477360378547585544983689223605120244413411483855213177152292827864665343142315973005770611696718228094140869285677237996347364273968361006904884149719866490321153292657385076611834513491727037683651263415097945318926167027728932415027646527330085333117609536697800874165739789532029506005165152915746323260612153312637581091014457952421239955068429252625825204581821996496346319485751149868615681777336649154113156004111940454738851039870772669167395158254474558859505280032061808347019646837575486330341642431091192221670302819872890290288188085321168184039874997457049701682990050553063222200336993331622935631976892266600830037686166904842479541501039388064827552298619692182645525596988083724959325968280418568454014136038737907339085359801422998768875938904717563073269612907168877203011744497238932526650631559545839041833535772039236280646716249306421856042341453453426807197303686048512295565408838529417173308701581061236815213937870550968307046583798920759814541254942194803686554596375221517182810918758397363966092880955184035858337749546546866349541248080206431956265916929156715823947796857796970632398446774167607384813396524820307171467106218775738942113400303553294090016011228927686203408435379430918997732980189276152303503356902263961406633094973165123406439520230603559115249711833035586270936621439995660959662018957935797159296192468870312367996453576947440948880766353424707685705867793833330489083731748108511768847509609896695654957519826451086746666843951202837358419119442032262116326185383612316833537434585721281212584629013552796451402253932286312584213118654661853976859292775131902309941212115902040448956437115920990531265415995831969992697474489815714232646802133250789705286394836510528082601493586374014361509152352228245346481192857956816552876272114767275590330177274476253164487501080298017217457098697718832366592189488486478952562408085972651162443358731407911165103816622677296874858505839233239868767997903813392444531994366651029720716334751145791356100265443957542331580543971552091429360497307315393629811112248433354402669955473981391370447438592251741515064343490171448395939805367116088001047885837287892026690153341985437749848197885790969135969858264339281469845306048385327362383266538829079127902006123311450776194666039186534715359560954146589241511445405635316956057811196338200554724276220442639621390787461548027432658724358779585746866172360111518910130934795680188871311273101324397926615441576598150996493546315178969319283323274970566208950095374419081542164702097794987511366210555641158210751753027104149999456658771970887078042584103627182310519931620602785358934401800810197881744295645152094570743145541271902552797069649843955541103172470211177903273612416796562775978990468368386088508329191894788008567572771417410026423890383614777071569792891115301169953470334504155703631502304986272305370446551861589501682348056451299963994260071545967661384359060523635675138132324995714312281896402645205573352240549314592017544423515057247618847687130280193766449158600025285875603751160634194322925865503990911610988967970786171473148764383690837834081964111786467565753922284838754738732758008068841924415007928445692361949627369642004089560072978083950548273493881645935856755650157292179304903231058216278464021350393100074460259078067832460285616696171298940938208876484950660049625547053772851311141571013526511019887253055423641031777579173289386658767231896848874694776976394742726839283211810454468684265587339505307412133732393327012993522548610419549991127352846029548190282073884477932436820281927682559574958398713352615779480343269339256114354568833459171361936780381117108266741394271805513099442205456757984968557318689400902092749925158629912791888003790921954730070723065490229308562737217719147066068448977796542465988679627202110131489628828059472107820291960265193876239377587738892950155166591716511773444755297264320599912735864633571158814745458169173562636597194254273655498213824326449230801560829128235664822081612406769579315125214716356501188222037715950722051753613123367583027845001287023435819997271182036862611337574621255840228039081328412049065750868506001441534285993635104153865300458706291722205022017312505836071255496508309399665305400770133341843623085348750546677674668551709404547729316398845500631828467157186706305757734884097564043316393938067626275179370896235184304247066517066986151687749533730454574065701302187442051904455533545539953935013680544262992397535185039101454303072784911519714220542912534854217036632834032257489713458966816994822161084470288972138734088372429438830603366850840026076972735390593768796974824248871572743880334827247250053420155869147594372480003574337945864933107194079669114475183922924069490157643980101799492041155362123310459269997570265680887085534670972760094195824568791688759997200798882763883398132249780044656380257412704043221176880298141053974156954217807050539207755899403018415718101338349492977041105843585698471878706714389316137359984967278266516093924707897476615263123035555999752619042089775549372756357369557268497387637675841687616813150662941179574460883968186283977785141126291424735360297527180339559778875052642387645218048378596397997801789790169845081062897084923634723460902962798465566882759929192413279802664643498524362009584891225533557525992138633297706318565904936035794587065409810053473408617526740342854705166663245138825665200196533768622322302402873484487922707848241451702412710050468776724720662500760790241860114333610800166205726476941231292831867313820285597024747675765583893866351322208556988704046433350078096222435452721763948139092294316962109916878253971477244012911787421573417492174508250657881873659497664566727565512791389880950042844758480565227727830515124136244870683876071132666116559590396381504861124642106873752367986700360397922461304379795689611989103851281580949037991665029082547884020418990994494941029586939493034800165248270953319773057411245149318042470302602278643953024242009199335602685703661199358105304044858167900917598841255336506385741688168250581517462515332054986997736820174295755015377868215054862036842157063276641739197392932392486422086071215148037621856139646592610961515754137845821672030723479805617733094863415892029831498084294063614749320778847823622253515431960092261445930722222850979479055483151783223470105208701458099837038269229245174308950718047971343185544368116846033992610911091278388332902825833017966494216568240951144710076932096846058188319914684611853437625045559804817828897983531560196258553476660841957879721857000237120938503469156048031003427578429877933435903881842948766651819220574232987304694934017204942872361043405340950408293753645952996447106729248326655255095097657817154207448730467512862626513927270384172751032593994712089015432158885199825228874648283142725665153338363988301836679565310541851889851136222341950473157107842691798201674604932466648801372408803811755200258417929028272169141396264541674674752495134153252194191427472950854181315332500762414976956173569778786240927175552301431962019744651374234720905407361712844878046388217385223414856607886915833580723427317253037533011388372454935663862705585842732310789354285211902953809016586929292474645557469935922557064570970584279213080716827874096766960805027986580393074750680483203072439384140868645030485133810510604401178780389610631297980831443361517879212475676163138999800013818705800104159266985252342989545330922658391074481642976849837221593108962069260855416507803209049526548274435092970325951874871074480133651772564601512238526574816830807818339682902410989297231943383465328553437389653798525255492086331689907087262302413484768462539156821031614320574530456667207258474022987438227306486512937195357436676347259806863913457826817910049528592287674573847182200033233683844085298388651742936247981389441983050504622160569267062464984954632664784480440319155746582659707547290489537160742043306334952949839588663694500423410569902286700393333766842988843566348297230339717305051566933090468187087228306682475915993628077538232121091248223696090068552608313532207026138554716362703316545794869665637699053136058803582243212033893736356923890681531460652848683522902700089058487017406326131255886294761320734253635896719830859890073545483297468767156160827971595227000740155942106233246044806254556961942427008507907315150508475696966358473640958952813742037247636825654339647240998628519001372800965060871686125765818485973033037833889053054813256449697909454997525054127681629052293726451653887605462560080460881881316153299855590436592589466421985999483076067467619881728181337764285253515019429276325780944638041525942217414694032644066318836536607586594677922350943320342667816474918282889284708060658818169520885319494827606164060163651460356365793918414893791624269698600150039250532763426153854172791506098465271704291116384212925557639309319679262016975501824516966746196216939465170923532700403528805426285016332825335987826338390574524353728884084633287901643994679813567572702856593575593730318756677143242987789673282793494573229345376854746777564807064561450355271467072643968697024808906681077581155844633988816293432593965333806701629109181294209320468674307205199280389736345283088803507514288657397094863967864363647123008777366600289283936508954304122556987482152940459050591751036164479234519005250335401565160028835808796073431457088199207581302334847075137199893838964716764853944782031600157770683925213233488553243337352037759083216456967073524234507353448882265317013101989801743280216931935581573347881322031538452924006339065128800362237037139760133753903847399254206958471889375997606578082918822684066788403611091335217709437031215917186899963493129597997936789645349365730975299950484707422150873364145693126942751110368975555614284767042779289739677198327147791807468651498395408278856161263538946208480027046757543739255980563436402194494383201192044355197264508319401433061546094243717829336105468828282256053129861689816427880409856742320646949723675978394976125745556667087017279625586252234389625863970305628158241251945854165750372224879558706476533620642254673180173410784065816448324635934658454378553689067850482998001910877997628151074628392179636515958954574165791286669960358964974751529433258868469319956555616556920196556300624462946198982895576858846096838315487771348879765675918454754466429557337813313439600666707520009457615487039986299196601431929324758269906259249509518183174664978928620956711561364243174855379698793618134203536667461931947686607294661117942538878025666741815358638155837030950240836753808415739818834446024883747070297902302880537669144359202923763711465993670974167367087800772319163353167373100551366403876222043514989818464141184459757657009935439761202957656060738816929288689590365246803219336213713394708861436364905749543474272827439076644426537818194503085403810902139121202840793407760871116417077551565834004276507447442053434077759006014341534468461645216856602603337151315641896169163380930413950080248133894401560382121965216287076123387482248917085031208329006282563251302471978736231925753239766796658091969966847517587474095070896270292901582028144665330615636584572294832607669256001880517761909879395012935098593447109301011132523772388492958479697448996162494443227259901512374579165089430281620709763156076690457798611230134093130169957217507385331866520283883982204358266460239008609038002138488930611228792432487576506464079434779101312446027834210943097105115608290194583836832126174950587496424585523720013632284102774092930861505757608001579409312422297901364235679812826448280296715321481053664748943634143917073783262564228804405408492401406970153128281169880005789752250016782811970664218588887077972790484508026712076307800894130185678378011906362826851127753458024108597037347294795864590121111850223327454736126341089040693525993721342968786800710993476296751970699367211218179578579408842448805689703749750743125441212415220884243881680907651216277376230633958465895365002349802308867162645523350997346832926835156690034172388986473788976645692022815426710279743771101635111460680915149529514406295710356805846954483243722884240349196207878171056694250870646197699812217218295375491128174582092770278149557855237886577389963155375659667176419903915931676146523731396904117806259036154200384942492502019263283527183004652334461024165526089459808784996905557009997498658279160327666214785439564575970297549291000372945862194137547313176826991657402923336476499976695128198442008271142101798027842956778011713375822801480610222167613928841116843673524564294902284163132107338241751053714148433111776469577761156368801088107411513004846281480486840519627466449994381711951618948061831274594904196983104042164155249820383621627467425745614244922586232667823300787915143908330765125977894279026863018978886706123235239008897095563564443395458435205120031338420435089023406142379833923957832917761392984020796787045768951060517944219314323162295784398185312907208348429046680730846082955974525934199722916404257357106917050738092974275843376197844353691472318050766448846422461765606186381695280805104867365951977893710340611489283609333673184901647500443202170885897515031850499305656825853637194595878234435852367495810709569465110279114141646657076697628426304898578673756418553412394632608884825513031208704103512518292096586363230050092927189551458326151092756602438350188470797918912077689087347689245885917202993598932213420621982354708274121373647991005518514897919471900011284509391264891707951954063257042458396465156295107416890145971823051088551412367286309141592604652057389718510835433349090727963225535521288871158664365782026180396975099868112721129000309500131418863503484338498917429643767892659656810652561421067071120710240115221665884656926803551995597781619478282099123283502751575503791061758085195701220403384935504724619463717825353219541545720373136571378733660160484214245274315087810544880178702759833633234837589879774123863264907655482368541780929673153790476734111802790979570536067399348746054920658702544730786302218417686779309211782472687176054939702380485238856493814648094957756203732862527354902951996517138228068013504692073560258450030556053507742509249298620057374636582700625669330681350248111867393827230761004256510196275034891820389968115396382414321191534366063249060814816169055850236404710451351864959222206234886812880023074795062021771333579266828845596200072131467779158223830503344582099023344112707419920017725282685264068482587027253922216919596788586711659354792551321637247821829852485855543270621684444365432464989361159099002324728076302773169112689527883238711107432016434364712028807333826315490319403184430350135725787687980396205898509052095777265577658205288503535105547967936402084856288132705025710943614029220551390596495678119801657505667476525551988767233371610928259667296092375314397951654955808164957753333377600892421219744998291277271723156496179708866406867477393783196107992328034450155549060512515325828568092674661179539456038119737752995853404531874735443499688902354992118550405298425447206780710738018860575416712941455936339049649043932368571403386342573235936509794644665454889550308052011376512980530424497393069553437166701286199108249572149606756908845918963311999862883020710741961810505450633256127520588266930020414382976656493179784574789653320750443439550842209114425414499856308138370564822488011904011149000220301657205972947322117119279091250913130883747066332678653913455949075340946989615965982863847144771571129021625872767323821925620192580747879570138137206991919933404667012532514854368273011403865110574736594445259773571264032299450309347947800129584032789426104082432804198537653877777105224848129780557809130748462015103753474033232658502548208977824184983191572287256253031691817655257563174884828929278591334621184088498971237706017988063386699659767409560044954714239857352456087620511417331821904145659144385590105529801429388428140776733608868631195623146439563380899264919998339447528425611706201406716340739791503808359796967367093767893759877659704367738978141450756125039306662391486508051480659819873253834138457606507520540631458969490307199763909925791625548011609309908565811521557516681945713348341832726377690433972184364395595882270940330870229114898360151111356840264273511384283020998061025384055954385639436991565433927526776720648811648485666706006388551858459458142067521315110572772407421049047875585389425997936197361468333613475978459559931029192818856793221544508860028919104475577159626003125994265048825864526223806484337201417424456552531421632544067358064886493611361987955831469980463123987564425896886225849735324462365766607013438837951649420461948966997802183835622851186553804038848342641841587492484750534856764455911063202712763165932539143873156565468278572636756042687311977845719401624507978440145396737824518218302295407360790580694816842657945582638323914831672497605852063993027731286193291313700421171250883178866068413183089706096925673162372937045727978023744657192813231357572248464947863421732572020982655199209809748759514987723476612006068821115205125669373322070191128872452187450956764056292575197191058074619930349825463394440647860301423241688570167962078307451211381062923080919304541915572409029136731379621747246069556217328022029295312583898418091261908819803585188873775742468669590413885133014099596680666895033138473553332431060062309503741757353797434757063798338999418314310017753271793990417635019603146935494040363159868986575494377823660421301216828792602015083333683876408473899364881647462465109282737709763429410650888784332755728437933363619157086966453675484189234217901310178037068320622998989510611917901378685570256485407214552755159465904766948098097692963065558089600389753428259567444873527149561123307817283774409168859732514728790490150254400447562528869331027078912105762545865804746035943260327297449751066287363062995534064795061887778614776919611077946349487570669802898959071085271669515391061750816283485814065903627614817850865361343709405262406652102529885945160849370610639528879940131530296837403980109159908065028275826264034983498260988782905974393996453973157188538285381811915303804231433976368326607949500563791473333760922787416765217260676799927945459603021967208739977447934564938544105008051781091877904439236038415004569280577025107808893481577444582096398363834029853042136401459013030178466282666263195021143140617933527241238728369743174459956595649414178140707366514598751833892419849971479832633960725884827671801162230141897462510224347283721805401503336957950650574009972912450673166960177186853841892271136974770884001428732105166849435582919377305890469261854448423429091026628027982130757256631168710706536268131980816950272607417330273510738526396640402713124194092121537464670530379423211681562771040368858597629595103907615018877119699342238885964629838063280612562235537108987804139976435573470400970994312195014000419100159697296852643507231069944141539668210169735073857484531872374892164200022696714043560364845084639835246618682345540654672133603862292857352763956023292078790708468453783195420635655835157322562435373054753441118856230905303690279706309850893707549190542425837577401762131632040507416996267663559641552932248399948305785287025057646134946777255144606806815495546784359180632544882038921467780902800464296655393155375946515560251987641252184980335000945337670063465491107298914992650051088338794102975624916264471215266513703939953866117181388222586362073089902487925880625378962904656847422806366773630474683152357262242751064508040972766386244390806856638052573292512307474624606642483208115569118485914564225004895211750251737077313520274210961516437143098277062358376195943477400656624819660225109278693576047299092670508866277610400493569541986806385208302398911671222045768609731990004117929736665586819715282879038510484252774056671681208976496362108212394155576594099882353295097878044175217233081953639757085523066186355511319692517422219970248986472682105752731141574565716170366591442307508683776943575335436011181920165732227495847338758327105225284369851149329492569571811811756470735060049175437642733492209809589855109452054296453847856843092334905818629481792017154781238719458577774458645061515254853512479296913491206065878064853736559059157279877034056464599681620326992574935315380955259878330356096312207734255436883721755999788659951793934080095389657466894659409457979756365629393118732853075415892413004488356508836144100518707515828258596434246088894111962703386367084360046883931652528409919966195693649532253155121751183202729290362504555745017342990373067574089890168826085382839121853422670084262026651259509617394664674908778056296918724044491908198192671475491036239792899112376632654073222689279787931048331960999642130901706642045676569873618885063329754592885683574726588695018768699728548656584371263095312447562363231824001329219477683058027343852601923630298100099486283655873479888377237133603949527957915214689538652050014288298772305104974928758969603962135502527090640504727084373498003216303162054347474399426548280481147016584813160694325424733522020634359888541938239284908413353688644821472124639589594036110180797197066146963579143064039832485364386805520818926379566764509933251519509390513096364298379743095270324519893822300270814326485904443396494325579082953785270854946666026552527476929976027586264014271084387269251507917096019764559230422545895181396643749031320367151146053109373456875911363640826598498196285600143541566047807664758949454344402585505050455929676928018982511392729097695775372623632191318169819606591007346591990432615479383864402470698297031056275106907525524047913499004926383688790159917215587712923831301944656783590683547898850305755340230193759616693743123587136401640573295225582885659222373276508017920029274970044509829696510980303931062734571252469071853227286348428216949978403573528502159435641313392093349325206135116805472855732621984040586080240757618158585680248434305394612469088510087179228061912211634724524498102263787951929902203643511070182556064631028579108789897957782072337556811894067300016886730506371271877420387745255844131924375884771501224779630233551742284768266092025159848960708220639732254438436649627423161136869482201738161042612405866482941465433531167102911513792227745042585270374356280769436578786529688985050332238563535392160429784534095495320746532896881366204326069329942948958206066222543281845991128315348297096499804418981728430676474930673941895915335365295293278670256029468270621126021494598610885905921952607969462712367351255799746220944446936702691126268860630954320382435022359391004480484076313180322365567027305411599183469271776173545514732700936128485419550235068986323844415835141873588581244189510763907678672636297182336985011190899387839714717230441119658732605046054714561337100260069786776102868010013299251555829720628955656893210658984384573489810224866929197820678913387316696667077243887735409636681154875508329300327154042442599900321755225541315989273710771273622133312218007105994963906672613469587859326021087461319214610073355703482363058238733606792953343079615896241531998221587010247241467856580962328867824795793843771722050975079905998311894481621200658957507989549629214610063428035171292816135730892075268587350354244881038102820298662703054729778276644331889975636362752099326154125126893368739803879693013972042332533198637476450988723777492738575425675766544543753314870694583470167003483054520940981484899679585055890844123016114810934915013119595194760689723168228125010059835146946765605181722198692750936496260780800928913230957219812201034172814606779835017923554896507952808033721355682281728787125425756454453680250968735978223485741750512525612740171293459454823264409930026353547751061428038924285502526394488462343762065111843776910120379582763253438981476312179833723350605959356596807904489494092738029750088661098844484289892913890214509010767271333554142512093765275598079858776784616698922120823937074304546412636689287977635854613922599390543292509774933373200414932197563302135063248395649501032673378823253735888430696644600617964855978106856397302374786755033513921323438619299652534281336287405666985515284246969761518573692290344877816860244173209702442320981049285240425811367473512960948988524769908784641767854018189294253275194618206178917292122765087898479768403156789537693435801053678160745133681760429657104390697629247015300231830711995304495856118506823091305498172827980965594635660035967932275576934644411032107053296896904020054521246792931747005013607369479311439233999831078081342869822297387325756704093038026464209351391125666428397227857395802560979957298781821680035075471470926036730125351065599785475480152650090470827175991944654845805101314446222391620021835996351579545068492064449422694767854148865846111735318244036496151967517508450062112267825698018773571526317755207729434352034373451370429848806008007280693644136125564370953328604025111946381716383718227030046491377475491402889823087552995416165142664682264913353606189070356500150690548886218121604867866800921077639544049621159748564447196168376177965924453987279784063951621543015963526429110665918584976155212511915212544983970488817778271038323653954340759681486776125286806719794614035940110973489821177882257917868293613044709540376230588605271273766294242666619869025990726249801806466532452339511346912245148664507892466443397830770061320569317835550851240030955557027726588678892746107615672359411692065133861814837710395602428248168864782639394188042175750586607982009144588959632237960425781993460326220277583734885887278283231133645782437319797726867226491008051757660749396454283955810221451073411133092167282376264395371977850012833756787098388137883064615499501515362277938020366500691669368598560649204604438511413591357697183545868207917110949714005422081085569170927495180689387810328538227561045851823936610128322409403834256342751871243173608410106014007467415188265656493841013699128167308455064819320903613256106105197560072134709015718079028386983955044552404856404426995806612205266727477717423317496493584690312918768001956251249826604946876096090697342093166922383762497063419775886152004635153829846208332008195835405745668233560926878577729621096320192603202479650104370115144307661591097685933816202422229061245798402138210699478199489509168004149976298184527393418051501965622610648835038613334644343709536030886038018215520189166461018179065679070059309935718039729905270248220400691943928532095547234968131188568379254213225026898541769193816157272596645225981155604689015462239239329931444216855268872727842748814466828841610730044836152196612203603182408267393164491521513689913890502856389608018326451459631197427761748889128617262183369721525647009660142506257573229970041163565543480032288363209186282581507141877696811212014621873001296214857926915016999202738484282903227064853243480163365342270098441866561569055891565386938373315230756700134042454562883723930606543778506332857328434665183860592391861339678261775951177289235727132963612076902024509113204764168072865847920647431636685345245198791583477737738954736332526082868047962991655651941453140687860114901106473385757786151426213629593936215668210468640535261587532993085219376364000070767664416775741117949204016057797283307164235173303908676934232887594588660921156164199625239489060138984687407674461502540548367031141329023063072354019861492748608499003445163195657138607241338597429279242742632201320532123661501073086579757588885438775160534878435767460305075776689187715393907377101455027940607870955579218440898988721292445483854244755498630613989730276160108538928763622309316562810039849844614635840053442845486059236147782701344326307460095699943897023491393654664436449252198066556833053628347822709217040273978249913691749163772441890667699079645626067076059335269951948315282598932088528651820631928658286700147766190407510016989238368465245372648412210364410194494213434832101099826859116325987186446317632696428094101577903678412756725609579030080776958179799000023274163407496379414925715610970635847487156488486278833244676713567513716810938157575286027538771572478952857401442459022681004429807556179313602081976230452146510288604177708863254916340766663405531769435914801697049869991183568215053483577372150157306623314049601544671002613532191885910779604313718960296424103117601350755834620407229914632671362435889021882052925239879828545174747031783638179135033040838954044045324029806152498265251266020815315272757515808294755952846545355751628908677706103445537200603613413332672471018840956354553730972755444993999717881689956827839394968890077812187978448435633286206553911231148604866458325904182454050732792871286492269604985480942262559568905440188091390088135880378455567404937796993486289118100615126739737469727512105439503069777671975267856273087726111630998252111285337893119398290164429013917806659198169656117392976649666293250705263509926306045612295740941699075801746929322458596149741429392799867759407522284170806309818931660105293151455435175696638118860727912307158096762460166343219301941633126080655827830811390079107879531072217672256007366367100403904882731841433045375394940864069448936902491813974657374292807504732908444490796716275011843057527569081074906990510339969995962570280411158364513221173059870265183119630571830437590998408066735682445394758581821765082738260678164968392397967424742322965973617805816384786197449086356953347604537532860093154503799155354335970158664561691311742001968894317660395193357617840238113323285891761791560210669419926616003265888448683112288794925210372483921920323883507535325794262744877183792697091677859258844913369757166844258284388584789004837856234066854523299017126680166745528673445611172817399912466558312656984646482420688793971450353003153729568416686460916105978063794993307467796972095073430885370286238590791739216656151213164108635569661924813476672597922231466084599646476992724981723851331640102273826095971475430317764973856838738438800315420364203866900506825457888446989756749266979312536936964568073565617138539288599042276478341121135839934908426806711794016113168605339118942522861011883868814472209797882037221269287735267033709455269671626007878869567664978592150763913604046505013055423738431516450271134833375492239670767739328161757258822334636251253544984432724592383354494780210901748960575053851388266260788990435544811256079957095315186990360172609015356469763595885840829996932800937238039576031071287344054931608733664029908305995553001087164530395249827289929616953828562303480055934147305448494689167760324613973755774853215113562374430415300188433028115484695924592523398241776725064851606782912314513377923101612558445881813948136949345165215783058604631566607017160605476847562071332334336304967629893784911185600018458814140810852456565050169867437913466647504071542635631941730506099894289168037589458010715747236940561997705093184077904397764937702780231570565931641147332235169236360228768466926260895067878071159795562005459441576705697586640573473791836253615022462159855367030507514800362794432204773563462687317537173920145354474111249355410089760150314478992911868775371971128030076967378454306426626009709062260139654733591504550117516307622223639856803004732864222140739487558156347879369372778797224985697374368936739273458155093631163473584578525601745773525422316652938075767862748622420201285106942355853043173929947908752770565039907538381014820736692691147040347619836615681360298667690555763549035401402038457074644281194369792560418855745908788555611183897738004624985758827336248032854749761409116799543583380435173938380355918546443508471746863297602985930346646204561893439243370915574766872460079041691237246930311496250591004088433908614693104646923497332846013216776792229137918111234051638141984636561039591832014465656235397235989763715818423897616086280081338873627360407551858654399318300183528051984715678835271728176896727343392325225184385346003550463393385890239687563837227909803304068983089341113790262499380770115664677060062939069425163146041511568104397300529661512208547424911957251432637968545145867156309734642145872440851830118208795550608895351593020075583397188662617971424821910947501463018807770618153055526910868112900141765899043585314933137236902237401015483722953498055588165761853241188989075857167814466491683233015420771521582583141587217000167326697798678706904494992043462978094743551810660478316562802257266982330250086334308089157518681288226272661883193916563208213199853384787243049467991491621774872325913262141242975921270514860919941025845689377175957779203696099266476859959846408809220640547946819727428151922926903293781571291022676858662072447736265836087826575924494988121739039813139603267013537438903678656354332691355165947347249280833608109476879133743567288246182580331173974093332670119632021557981580266765935028252187285252347395913844248225098823176501783722906705615516882573576525373459237553971962485066984390789176751002947811822779776156971545720641826899652727544380335305871484435834828018334153110848947736099206820510025321718854974340747899278319699326684131397542183565232675392834312319950643090739396643899151936173534734069202488991241624615304394671853517131093127907694795190256268331074876287589043894608913154225175492773398689907380689553181559893357728073026083853297570889754868541160788075744819454243413299723133159899119713796225783414840570908655824882587516423123832631555902028313292543100218067601503490602241981861930839501395293323210563506604708564918841029037794146938126533751361708945241169491061940690463004137261083920319017488350537403625299399056842442873494332344818570937005962077451072523779164452197870369361720289220863987653357527229763846709594345059948768309224019917839438205145113775538877056093313233689176893336622579726927844460061117629087743385747095441929575710311903986181022916811439037703954275776222125204859686526740211994186523664630975000993863676666903849012061493296973618917649716019492034381146231624270158818942538464592263547400825535313647071369550309533966916080244428019913270512485337656581795601957365810250254653586539499208267600410904355300858966684405241206558304009360645516778534313675090017850962049310434377842352799254027008472843067666749712015250514337702501109063665247653611816327972050428673859045885440868241139413539640943545175456795329217001900043089057484845461346751598074812070306511411271010574404427979587377802550749938902872297811512146224932866485827561385513881653002532976579695140594840499840512062084673486548008895200809108525408773673301348010134345266680843623594747187593315613301346694951441054728271159064512341316659531886529018486120149133119248127940528338923031866658484080145199655732114119441342314833699853808669833301046927988418346213418382123502544080774002941490146820589243365062405401607803091186236753785935039752957789093322267509258217614976040614981774537355660514010499347678781603952241490660998921945094222571775616778693655837499706611197948571894174885921947618876812548168124700589016000945249892029036435732788960753634607367205578799855371972256651187957745677982352498975410900439231480745464555276218578271241188629301546745708495659723967016934349346429033177601283610897407752452960253656012591094167545250679463699897772239257162742900188260187350446870965465210103006883549723950428269000083430684214705466791941408102384256780839081791560472946245645715904287421590048497048277980966239423625689686351662925239093059917007316507089678482346827587266142422647007585042259093293897666014557702878919872271489267277592721623778433636819375886316991489915078687198397618017705703132765272887387123412174989124594154011868550355873464170151124433293646001739884429106764032378679933982420125819913679694316144736791505575952683693103870914212625411283930731502739127643289937501819683611314736028934313791495709449055071821743615193864349853745635110246532704368583602625152957832548724072865565426797690341704073442277434103948948022594721932331240840672410718425228476068073993380478906825905188787661891998255979540303884872654320632716024839360296701628311166259799530796191119053328271506624045774878589925663720176918898820516585723038413015313257320764733903482211842457417118261396221762752349455494500682054123129845787131755135625389842321234280630774568147262811678140976756450977284122511792875012672593308468044457646039261620558432558329731599213178536304658139226070900918599185059711447935035065904910053114516914584393890196149650523570437436651121256411897216450158212556627688574839072431376222015711160516607242937357473719775481255685796814527594454065660601794770992500412442950314197818081733554762679686863754848063768670317659955056196821504566646437005112928040816475778953568912792859220010207730366068951073616544257235314403285038912272767224991932527189637313946527809986837045955270232452593511820726138621755595869866709533870189937190194389684192577755606436903815142722818991429147333508568717486132439551782023578019034970020670712567120395786827642199872123879661583952709796952069179625785210269177838156237254326979371776142266042574912366113425639448491182619724592948814757390781561134754573437249120796044692661334019282043985312282148186636893596191642500282667622826509361585605269816607714027202594645205431063304050990401510843947397667040191394309565119640347585516027546263222916125734082930175902196150591554871254096799479833663017851300280915303503943030117007153518922435662845781704191401191971342284762232477017201137940130626826783773953462334313444469141292804427722420298183077658582244784297781817620358197068829203167568482889115141977634732396052788006786244116079388838208930646193274319254180971666064842759772137369666408316003377410216099768225303865089589171591734319542420967865756272543510219205901298233706202379855592426706488561104822681843119957396570613968986401434535861485763982674317330173224281976612187826157851745351620543012425996902466867413699758217235928358304783333560527296537763963819765194486221428290385075291101203261534991704846174741406045872859932978453421814808751040342523171678948178988153205314450200614316451494843810999872526918656634698326921617063750501850596360865435840571513570035985773969693778516589108773126499608865892104102509260015044661577755869730644348263168111791121317926828337354576958688087123981695551587948766817123893647928985192189066420209082576129535898714861635249186696567930952278397531676781228067772307933412145448528520618328402376474907966988630509398769084528656735506149633059516991386797103121700966730812930473588867808334311724017313091769984875870707813720176323391681393313089845421166578721868989791156985452302617584813307275655485543670498390559362760832237281195069807403799725022844877160916640195883144928648342528369033904136039545680312326335450001963986073642359389948713676289938583362843737273157838282586935507801786581771348570721605857799671593763628810130078420606748002931988457434122501818593370865609844264908007412665396224732882260004136892474492202969628291451037903895729394105227664665238230063568609227306036774314506890084388369629224054983633046959300466653114814542652722985864547177651304468942081124022199857685661590208706345255510683629804964111098650781644114836230523825261883951086844629266111207976484426258548941603315036656951526821998036645346603243791217907295961033779386952362049353126064074050244248015712300694239290378322781066386271822573342199850326534337859448259324912974371705720579552867522595735412533402015143046635399487550028140942196336446695131440378402397421042799956364110186773443433511668600507571881173089128685814030910449380133034157021804086967626709066806216330866912915078058700678942036907901373509104182825867804372348237365435589005434336854062770529634007362505030456640236465661494356005702775628305339585676092513188998578637637498348637620369015476999385559922986397040116283363112768847661690364694237741548698836527126798991224520239318212633372314240867675119240698223018516578527844115183502580914067979199295271923053413359259273238934417872490723720050342441858506308712517687513160713872024451897285727538665057374313452948987423018047635637414898607423721714802141584855271690719209981037478664403337940919987037522468666378929948550081737766234488425942597108856646503016808811841095469391681773018277052151569082151806148139554879829583409459846322205179894721770859907244578311656089028909267326139901047586836467798339368458513799044715877667160151373461291933512833251656528615241693966776534672358941684263461636715268405952980255977045500152572885554033936385981446977726058240740101484446734321975944162057425508592926608334211040400785859861677034394020389098661436780959410933287971219072545297855938591146327060010364272946890985107860571488347070524159044882071228092223546920137087337689374661641585759604544967694406591435129746784762548717697857179699258574278894670693747623936968192368289893749682539724020623821914709998881192568965204867971069764168388529714846213702698041256816224151789939095384154719515659872794859129137393806179165696947432175396262330286834206576705156890562055067746626970200036863292084195645212679795776637136208252658310413427627705158130346061814598329211861485297638092886471685251639901157678462800416312632211337248129101321192761934632081124838541059676552564140098915422065068283911028816062020302826580683964429313892183531614954380326499826035355953157621093318553820797424970418985721444970577295349307395502407357040392043444533438547077107953814632785563331617786102048780830219185373086933914559510515400187793418251937979407344253955864239044063448578722774876721435024867159516386958531148718679059586848165409909447226768743287120218629392790028148410640841939063559450981834071819339892010239349894193575587412925348807589014153119001184120325165920456554525570976014755066379791121837285321862423797304821902040874926033605418092251881184970960929244932179268006996589823435453161159058220175368075946469308249797974349748943633051485306374674632429972630796387700542914040100900093685844426988009246682049029019150388779183820524209705704279895904211663530078554750600609117470034969700745992415987674665385507084989137956350123189026026994863981713453041674308089065150464309153735998505563427852724581065919427730822114176147659473831365533759856893973338226440544825239763331283446917062513918216487559800449587505112090307794189464661049091202933470792731461681855540420239086514630250897650271554188949722313498277625973329088536523488383213142610348461442414327346367604493920135810626388385818099577185283499473407526078287330603259402959115142241257821709440844966666361329290277808653173471116779370065294875532201419364208537899926817413587183449540434619637127945850467990432156019283860664345368930658214512568296697785032995941332688361755685876709567867652030199982734888939623363675164171605734729391573987731566350408943358666523946329530204229709860927471877347045450743372295874504558651300698757376130023990174173059400875496221173342594857438535103791376839048570048721620480239901048760027674290619520969073020781431090843017951484120037832232451500806864358908926671811843448838267678010666079338478361812598111855944081246523225723442911324973364437298734853972343682751100625396506363261331468938816247632560969446765263941231160592594310246231545889742171599184516969249173683717339372357791157500196854938551943546126950074363238524968912059300108664128493319373967682903043279709886293395647622777593451893124620944973625251422867857034657569701105732079396501634456244242203954336675401185673946130678827917403937223012306447441457260882526382772736894659793668474512626727166876598963111374677200054846546381708018117993724589669008112731224753339895704181500918031365201745286640206573134794904573390125968529158252358497469523146482170051462861261577710707955078960588615791389542691914831729861360993431721473048570723973263633567968693247503778825874864676783426122694042728633726872586516754832250035412132103251640972581527689933399883885496771550473885071547886903178576791219154856457185329085319892138669520024331728050605944140575493559381074387894057031539167656311857852940504516587822708245559609626309593926159927287082399341735917949681474796956309403272930741818151865349209826415699562362834584935240143249094378429466781818182704178307430908842594641568023167432081016504647228405732186900738461037158729198491288467873428808632001848196627833478942440793715413529049405223812966083998260444831003370189818316826272330720379196722271212758876315920691765270318619180669316846262757339303616207909851859364196038077732206173361498477570316773629967298097067440033182280641229102250585451247362463307134851964141821966278839880893004614338717566748947743754354151490226372207238563247792918236153582223544704628586497039837503624922246901543243544236980981240921822488044683989404867050676401643658724642508291832493272249928671173266547571399437957579085212301127488700473292387522058086298406464582274051313915686836860889959316839776595405948028341198922851793189618155664243510409139910914062999312978858452099478189970623533222421455906968541780551859196630164644791316977588180582318901363815401521739950986490734482509971094005899443295704732196508319678038589370155704241642853446532438846092459046896796610540542771806834595698032469903898869379475521261149348864164709934931265576091221649222870606445942903561167862111318574443084362439665122648368420361461237581688302184371930348408640896773400496787116923895126950941545845667647826833979847078272792743428401318629787742574665799457073729477541685894908130853647644338128598943484060672742489733607003745651967072786601233614582205075968445568080718342945924766668907461215119495631819870797574814608711898792090476931762607976920573628268552549348453750030001441135827829388977836034841422832538803978867113521539146485781597790425021734976598778134645645939966161213123484907979524513393734919705905868981811538849882394315008928196182698955026786206917104977452421103262502674679079315895803081919391293972108398347502039529123182811786409791008115338161645160957604837640894930750509102775646049784415715476581850854358476144452460005637149588565305101074664836296537935790802714911709216652109118660349353404663020489216192343643092678040789042657853605361105291755166141209599292454702212513646637930307117681833031192581329552649011809983486369247756779963939648479392565252383628111635846004799230455557314465269618109139511294340199061352334752013925999474414612791265260320744987725744301196238438523004360749473809156580480996462427240266358403905059592961250015491621736688729648232534848556644897271835732906472045429394280720210527812035961121714699500492063561514342150031692612993426020063780090903925381762668166742360931367774160810866761216302056359773957345294684045729355529908077619581683341744293620342572245532505435848165989261498740444436060257538725814086055882120557669006177044015710082681686465257955629926850685806998976214275504115859762678561819643262371097999066343324910367145992392748301784704079644167992069842103392666303856561278414728539829506508606909116102576147910760966850852126017204732442913122186119640128045327952033353184451009520803360941431129572627896934484782696515951834634854140503954821906324552591737997640266307654773533056020107864874248353352665848867767731784914273378188104464322293549568552904367777347000362981760793023507268041500381484347714827787443521708712961435356248104944065668205262853513080588236156541324173821311415201357240069371925749230080562717245302856699958687329207383639458165166392561098998776277301326144236399056321367768385749438224278061498803317142806279309003471805793699567171730458559037607748701215189168055884634818683674502212350170402575815868622850767656940278505836461641195578877498867414052680527163399491878444250678009531604948895553717381539691374889448018440410275670959538258272444317208773097855399512177022724671744326299395459979007074148762920185883244544615780162507322212605994643607858770105978871524216624066974457752829337647238128144447955602190807921059771238754658776303520933647743911911733392345371550141590427855002274109345908914854530875084390067244006591565813742457363603342291007597106498163766291328530225271134408312471721541200286072282127839137050177226894622415796233424500984269798729421730456382127370197033830482408138794143695103444801548365772464486822248997395366754006899624344488745418154307132752144073407450182097613303309622549482904358119355461196792185781190635417682427984944122865325067403607122123348143654631960451727201708138983377057488804221520414367633840945116287722430320454206986589287734495269865055288055343578404979845135987092770386240770634201909873981947600971833295833027926185182666997596819343801080737907077136942046504531344925327754279872610547800484681285092212670495042132566311709991107868619193523955325211926218800594611274857303619745568512288806300471036454735168397256455970235848609334959577236898703634627735276334837582790211234502779821359389689806478848295889940112744253466831094474281474607210164223766780094921637298101342979993287727467974621340673556603398841387319185679381776727556737320418396310417434995240310109061514591398982261117423062522082578692743222407444212625120387705192743912879422293634654185053982814032784976757726235337909405602132671670936294763664749357049192192476653943762361038022591324532407528340336016661895893984688517608054015397189760678301069157006219678631856129063806333090353298675181865455291194052882289780344205541402916772310048447828739777658559160158401678426689037622450213774632240851468671561465594639716440838223306224721520279422459304633440337151697290899088117766303872682253396300452323946288273063952173831398228838613942910505961348701862545229173849546466392734366439355860764944952267784732124394810949375287114118714090912595688519162464995375220268462692344304605269767646129515364445441502837780775429327490676787968043970628846627367060079573834650016264829456985082918215193769716740810389953315443065268301453050555093418649235657020728025935396589727667002435065429681517587588824729750754349151807206782913488511416615983330995222212077708979594344534151272066026910429774679419921520594323751085848769937149177722195496294390217346122559145150505921986786872233471421681189932168466676765015240270953834834022627205865228189197474502220471321836093447928152869363712417144785368316891259167843689168965574285726545375387942514946324868099443387381834088588104155754788765466059433255849070371710028896667693658167954733956217139234142694154401157598897677122112373374880103840410673476180464380506058629277156226290759514953660893392816006884306048022425376175607756856630801582715910157592256791128705125658192036641109461304022748993456560001858998132584947242262002295680193558138240672315117006694329407819050822660847477657765972559170372897937139855076122084188105302788467039553092568054271573599169491225415418090934404673101205239916176573980767862122002049394367674483739490455720373511596435769361971399857027456711308025280929846265344999999888935390559427858979874013600861216075829615731231207357281844047290872454730123908439236458440975187440792106053590048065216677023718040342922045882311277588620065081869627321970233777738321997242453269805951458273980162731499911286934981793801240033231170090357027841333468083000124545780687494973614996237854082460667598049749596499294882304628594240717906251957921596884612679712012478855710083851150098800071356271543113770267496591985865039898691416721819968250656464515449160095413715108347459495285377980204914296215530398196614789299858261019121808776041223607378983365205095720581009519647817793623461170299403670878313157155705403618153049914356924525901911894434115222484098087801361845041162304988068055130499974055273449578018527717774794108159907058466511610003413044985408872047356654940620993219141858842629879872420306545407339554534183383486961505205914274137933534086083065295690107658167413799575602293952908174269018354869946100079650176905110522262250560466860417663683939421322127955023226905110095328739394532828029860503802603830418583806897568482714998570037914865166065177014402966895069981462327872893434708431916828245546494904518086127603060234162231871942867062234242521710558411557198948763658536325131657945350110459638171156432860631965204307933959693125267884745113088820405682329869660299856806712013410216794695823968995607397758283726468178114158031691944570349586317905297549831394695226954244255550407365871079915055404974841903683239279534884319263491974214868485033595962269068364786855309678132570639261632350409093348222358615918995763888988825784431516102769841450315502756338548765162468150103773473026455674653881114882387200481907261759404262616982675617072230213463274280238722255831212874404135620769574363412648017873196955243443716126966796614734695978688986939174358610711639473111182658339134720529385251411622571123721339515066043664707580452435686978840552095172124468388240032519136402007002971605092791762500243629293658470678526815689459539161556855608450256132124459157572859613701561147084379619024778497206238318142189641373782996117677541463080975507245684830573359857237961046741162121038673515138217511409806992560897743922431586473730923567046296698245623402210347812020960415314471213677161380905245710797554137161178242276835312452327913667982592186276984753921892550111007933922191387927531547161291795148686522466796186944543889103392349555535068124324188097511208118344484749874109472743896461706878097028148794864692115248023205261216241761509016487892570236870959761122697105620087538479757078076826286592486056346405924461499693682437920790013663738210634848386644866328956893806812279592144031243689742961901768689081380507502435006431456978050229933838792667780209817842136403677197790550000003767532004492396530991466323314976309811816485316799090072743334702248385222046344804696043649498103576808057132748430804417826804472896643477214825238716264687575575738444712233543006747600593160522796561068665365483687740323723794522082273133580835272328021105176228057794214513874860264577980668112009454096332646125410310248076466306950831129216775693169867933267008088682143282849011130970014725849300378000625720700973675687810621238709756615271956478628238938664955639962162967522954530262633066130738731529664058959101192738533761245723217929303646786279319767128021147238354418365282909754048851509943659953067864338135855864718566457479281111134652619561535474477693649098767799064749473123705430244181040304644271561965161382238325644598246452899012699467457677251448865843116724993758492898372488495241620241753336299884951888829340949166262191516026169741908298037818565933268684291139525756037967952171731438999510881256944432478315318710771064168951046237262715543858808162477580136003667764510026673936862899865743871586246894111567519073516848470473445605717940757419546477711243294208034320882180675520375624173945401715154189803919178612861252125642114199234220292497367749980290733807776703738384798804638212893599522149849322617027324919653592412651436828891583571448059881543755331454180453693363717715854189616808222745612163514161209446837860379261430082567849312291062191394838793813851444188817465619347155854070871771478557844568688454340974576528504454469357199778290274910909469742084671298813632346930915946277030437359197347881879031385012096056051284345408884996732453602166829766215465559716456583405944265250856801821315080009079545920521954832230222730292898666267101112429392450402297364274492399681599841627780676822086838708678968907319042193495747174282318195371387646524575944683692681901202277139917824360203249710744390355976621505114530891844560086229949757249136634471025352517319012930735289828819254776725456616244389575954337382024103592548826078558804330772292719743544428314523740180108538897751547936020738631916855948496702361307871053744723050055152504029055948275821029236842838927376704660447676689466747377265819697480791368038752783238717849256136543072456494065570078318353104006807502125728066998760304676437471373521637851650542434139550869352398027620486629562476168591636349696087235079056861077646813526123024571877109909003384813475355783209412578321005522420007894460305323863017216212317535631892448983015421274695492452401309605584220133068505923124113576677796517049564182756494567713034102102704135599165270159510583388240601402223657104296848578937101425266271734271944580341503989319860269399494422900842567637150749540387192516639746313534344664026426371711235496640618573413718410535525739804905620667862957029444527000499102045311355388417586164502456742564406978025529336368903036521964990839509429225858152453549582474173841163759191341579541784354970366142820781817040520383852240637146757692522672814560026494085725144901716636794850353550327932416464243370192445828791131122514296685673822567841897856020772404959087516297793088674964245126564022783677028620254338514213442787803484819938403268182798667828366123678378054337477783794821708711711105933162536178552782923505993175733737260136874208680389261077973416297918322110836620431248082397680635188925914837336963672173124432897085082632129212234622266886358100694270525825667178322981712917902579376860201358635067072727292451283582888067723880891177981038125328597458278726496524392426098449170322356393493211453969442462839430503578798229350733425500474921730960095008520257772748535528704411516167521024013917502779658364469624453261506752726422555201772586449778707518653000752330191221379501898132239877165917620743839489755515691463646329130872732379065402147666104019103214229200257285358124775355364731037783999213367657856531707729368480162112536527406314935412273921869017643397040231839867454921599672654910631885964234709583247546422070710461750612657373694794712097198892147329185857931214154168551783800016915319252839012620087125436597468867483277891686831635640130202919613319568093758221639653506384788131913574553818186302047489272960214780289121355597926212268345519313398241223606198417222657358739680250791450807961742560867716215242541900432931298806041241267099074178144768663509817734216622703290748460717295075925092978290424934332393263634036646946116362597635418711359395962875846843929125269899857842330626712851597800100103915034645451089327622797286889496088783351753367902288623147207339171018704238210103768888986505389534138081136199936620356441440913547036842495230464654087909718234726138077117047351157677290907659850939812125056637686826704714458997834374035729590421251046943278851907719974825196474093152997351859651831385259117817646732508326692218416807884469084699651001618453333129671549482909325782867189258077957536061869816777368891128074267852210903128839889100239286804802796813953501293366316168103969820008496904721375325540875048546103528931679179625238945489415855279262072827842248706776136146524004568621033767267537076847938295849697588124185417526041024777647251819557140266777683887191770132335668278964024616772696825266264955128194086526594768315842977857202949503614354506010163734872201801242960893861867291120323019905411322460258515374925627066310187438870779224841194703287859538908341200658196509457325355128737564907429200208078136822761974455840840625554290846733212861818952427225130173221326460809270407975113596528737307330884005442544063051745233098879288175938894995748948863569806054929846617861846620051986829606808418403336106493299519705131223988087539831140066814055296996765598990953129670104095423592615509025196046307467524750319969318756737988125298149804362368330396538540695075293442069329502995743902974118922184304860091088320087170026013028497072114822979435434913521037323610739023327270162340032956570629748096772460528651988620133547675773483475361354134378349878527008293425803144362097650433172302983313773882195415619106898568839108782506741519716990791992664007496131316141762814341914137266011940494430611233075055941011597395711584787624345341802993270495317694944992920594199824867561601848977336946642823998395057153894570734835363043257510359339683591014487490787231972183501035759907723897101465584201010644346558646424248140775918432955232954994215389637847487518996935056569745277976628860762424832974124329912593451907317143402431543964596773315542725181682920479996149865039705560341783990261070997942887682855375420183707703371995339968258621142098159214232041103882880502867328215837481373883112494120526668074828731751271357522986689927085993316212636205469308192239739406012733399355322084296566738691563154025545117824016690578365673516188760253514740567839260235023561402030845798051339343624232574264547212597323367544736623787302512981943899306842346800274235015472476589028360787723940493877874565358569753593638284782033864122747200508623568413364778694632897928520800117532563799967721675107262109958097698282884392283825896045141452325988485082121186185606424980038581286239736041886856443266571237536584137336719107301781793568356041733728588736838369390055992690189380318379931148250671440592078268465467252851283508507011200503762654222476727175548071985718395905330752482010229217821086708346496111198736855931293359015987587707919978271700871340074697525928714177252569961083533113584824187732297682238564476466663876164969364511793949512950659909068715431494532715224751451445321471086321846641912907333317781005483337529618390681612294666129127528931187146016590525127048606459488167409271737855713982877978044915885235133517418980449383321673404956016351029550638647300995834690697576644173187236368002511014738026722887632519338955002961362931510983531950737635681772693773600356046330740218103178275136380592780119611642727713037831512617909601024392323683287610754841934226504278714211334372198807093937223882961944312149131205820574006468185483113641270344999219811449479583378117606970597918788789490596017397488575353520499115100433320290667769570234156835759102823477920827204075036297583082262014323791620856887748148715364845598494208517188382268411859472917816573940432501787749649795591165613633365932609621023905881288645046076693908714979948187192325957039113051982488633605816803371338309728552117010377448001410386633071930989608666198895515597716934265187271685514671118825491790181444468415661368151744276547739100850207904031792857673144447463058438930951394977130673233259639683723170899610514368403965571162137916449575250964913956672230729390471037943828707199101504504916625754416367702035669049706005446008398655596317688882751577867446077126891019739874923140213610825975036598313474146347557507513368429415725192519282201635288236929734496761374175273524337406419767153050219358483509216441122695694610731658872290741344886301387956282691889817608244319539523780212934431553875795781478098393436457264205451320249073464074172579774458289833698043174499987979744024936859138426111822467770401244053135476008298730967066918954551151461620090089712484469772959566779395950160746804538529103568891984676062311997336703598625970954753642468272924766623864455136025796006937721800766790562627540628241229416200703583970764001205975145953282406027485767322276184227147609034944587445023209574867810591566305600918540175832249170739734382601334376788606149025224591563420895766213121967494902919231228356735080780231065873221845765111251183288817738196760731065843852033258327907373630894868305346320132431728454420241203003203681094735403780311677417879101890278809593052386909649033547372482021535437016817712002642395646531846253580817312424299032606699170141525413198939193619414870053100160023131238617708198176443337761018098749692377519832373239382978508599196453589195035117768880128130305888063203259627439037254423374473332278120402127590537020071833088536131937882507006087767415182883237950377853202913858293736630957209087987183844622298520864850799232357890384073868093527002876739589037889980970182297597330608710592821836028854256394039979084658091240103197667782129889085825176544859545860130895686614086801998418512267611429381914110316199639893654287369586768323390300777671695450750716592798083570261709985949788989065285062002720369886105714338910798003264978483740175938250038941554863704491910937801789965779275411980707711081617112893664183155065306708068156536148471594862282179145280276755137577539911611511389641422217270218415333104415035267014293551669622525231401903624186045257172239379618740824089090912507380070398598794308048987701115473549435904171284556523357214799119269978908527941538331822488449995650972579689373257742918127887855464833663258816446610761282264412919964389904438059908547400222990613277594963042635252099997281803317591955382921992968542251372092267754530292189901613995775046256631649079558897614910443777820050371812313274814174474536547016428974599184931347374934511137684752703090214959853786950269392330912576942438508899288263370248373209198060026614004945217144653162042517645678654193945041225480188470563592918438044094024166015913193829434216938206424343594837080940990528297349572444796945883880157945211745161036751896394795343105918242579989100717407310360437524566235655463248706685710186512206189614264427409983085177767655966220863521936516085874882365306660200557305132419549859898340747944206139786665180034975512011671947389356103417462698001028738848469300237023070110329846633864628046803260043383895519682349574894166938952839634790796900678264516635670076199797193033535035706974683342048606060193873053145692906207421904527330407436161654248963079783656561537095302175383459666035410715629781487405278873550785553764864289001866688555192147027461390627439154507483962836505172853293260655667714684585499983637515165603693895153028457065795071362088388046351054455917072264582583442312085303546707359403163355369116792869020767260888301147939361411229652926866426398242548085026820613654035803453959851450040633807185231346123108286240378000935073060872058446370241829439871951328774833076781644834008261492736522483261603687410367570524442528075215526210200720110098315863340641214087280477947666085072197419919099502331179850695775976349768248821321203610881087035221825419102434717716146523178924412438849789510886044838850462383086830139857378000885557701324661176605642796990825954102165493582011327043609840745914733500865933828037080597029451947821715358526464706668038555724323822276843547440981416914491393852833600635536430280736450644998308999952499529239592245140927903317573713317635748197718528193854538145442376094169721105768720434047323359054295798375708153416004726195806211385760678187693367358289925268654167271509020418933971146254283383262404233938190617555183530508972814616009025148561958494670257932239750843764382961659593926455764014524973473323779979223103389512929426682078391937767771091244858793225571656039038400337114820133349956904831003419103558330691944898266569625251203196573499212281100106844120212816287736379405372697583250063538209781590597694831011876166811737178488609737562092272658158930379673224397694926759801862189558204274064177610763499929692367993722965918282966002452038461230676422607749656117560860132946064825929303533643007382415209226206505821078008503925200466373009615284047097584861026861689077442916252051348977123671428567054773551402525886824302641067639722964845972491381941742383480451868321083597253342308082665888752427974985341913563797021270510825074138152871659112332320276375059886124497640369813712094043890533436253322193019949057378350286852777055800094787252669685383069871836881505951964576243316433291763030906126708409750910592020875238387730331283813309798531877324947668697920064910478565104887644213356248877016202468495727680649479473487783190364989469112970255094662816273245417925896922512593314559639281407758384574097150177481543184761815882778449422547316259610114285494199257248454565810693541802207217751228893655521675117944029174441918743561002857183438998852840787912242776432799807772958597195628295034789970188890446982889953684417591615620862243537113094457766551550183960653492232803126929492382623225836820599862863831944755734331799653089564375098999222143565199938787462406956036741830877880966995600979456157651859809945809513950237747837416398740441944771879253603682661984728751793444237712860058643761014295137592873880910984855823862229999637396358442653850922384399875693170358866021418728271119682535662749099852249944935618932176433671778313321646184475380569888878750981229513826735433883098197479871811278586237095431164168934127784348294628213123778045396994998642288846615262917047129386039089703702638112061549063310213429060610720929795852559819664756821023944285783974373813575145295229078584405913226527075175451279303548233052226832928205241201851449970608563751989137513741695824009853521923459810528583484965116584687231168309706571917809522141588533608955353332990429878820379703145192964672166710168497177223645379263403744274541288971299501751278654686121261031724068064019239766161468544373536644068337678691033356737167373765630719933552855054898931485636050101006773828818341788589052002424568862666948569979605676010327701523470039672091472980369359541262218324665583008751590000329342580850524068750643928586093882270322301602171891789433262180913129765472806970706925799798368259344944481856944270547606363697733206624556060908802458640486509762526571425158651786006614720986408307327478417340447979022659688791990070949203948810085261138734762024967054847976170982217785068660527846104361315216306152072202960081775995915947035018873183903245609339107317659133627209719898246664517380185888118621226823291360146435320844392788886162202488596378738117993293675629500394983313130606652414843573940014026841255671605423426127898615661699113520194811049559209683827064943302738145344348958878379946956622999329874019999977074465549961750404162039814171735506728449426116491777367058362617549377777815293930893290608759567117400151732748905905348502700308656850427105829368945809760974451280348691480340738817862801496098685393633583534542067474934748029451028881441309368589730162565535566517009368096313480942021656797302192123479477549150790043300511334290711926409766137273312570090281626625606093534023769826847229732514840556808589283807305800883577826453392537819579095277001589202779978275380521783770946999420412309786368690458429682439746180254099223622948631682155748927034921621571798498423694321030312411816347796079428848164152761146585517445774719090565754982720337302946279977852548383186346407114760593508474827777372091312481323250640426720663518967225609975976550332219407310498012410004856008585834874976656437400272404945078641533210676313174869603870094642188762025667258699159093368097191084522488019475023496532677285502024034712746583009167431852392280532649639773810091290138687861299187638357585852783436334439935987610077014444570461718428356450311718914350761424041877444318563575304294386621234744951299424779396556462324611431848586619753697702431873824294713432054138750392832748185487310195281653196479385011330684617964638231136858883868647423002486139939388693847343209142209626501783660378247498040034984803745226120605984289664728299808772271816115550777047662510636658249049636472204085841886690141636282492659362376598362499360332071412801477604862675730236883154573390053134754939697556585018844073540786464629051274005464095782803525368477750689723647341392163841055315502549227338863127250095008548430976857204303851752584203662527248694348232075039302597051893343537518618380788563602941377375631970230436754258974347864715178251698244385821127829838184618919036303201001789578662822249084842207613263911660990057334122465798069372551469211417164442598624007982545726565294011806031224205207615872048259232870162541830083680396150439015377459342100787569170475236581009168987674351838734676487469891284028271489795048965569661106306285111153309671527754511620671174752896307374286103140775979357362030293332144403728381181254200518935716206485410043066766899065625945098397392608555923405132032631219398155964691011296606821815961467758613194096504494375367320761076099799751458145483239090102955470655423196191502306374757377181666970382618875852000295386954021561795476974636857187925980017240668528602721472334542716359780952754715321608934792196497411018175288190104729942165369202629315436530597782893083625263042775165151949302983250114279795723772203274033288933776694932005906068157737333068370464312994615735366019280056941430054984027723971789690530175750515978193151547153924156254518642980092490562583586447119763025941951662731887715359547529077212937748892860681283628020609234123710160677215306468113601034484071655854712281747711472482879514592119616609195610758689074930603116142731304263868071553602879206949953381290158134206162468708336469279626336792307064427574455277310639025449955705775528182719734338054263624748792574036803231530822393124994824447293652979859262117275580678338383160218483619478898206135240159109237549684908192529668410233922195047785044821096038857616785428896707450512012481078429646123787818445853993627989810014461609218180061419947587840148078883206006846500902710193464320911021234300219980708733096090039443155641847487373618868605519253614967043201817072213370233653566597387904021988072322340215925964284673905070109174682632779948907759340361702637951006345319642529370674197540987463888402578709915987081328503050086445996776466345958420824301924584470965787251887166157903795281546577136481947304606954273949708787532561477823075780357343688576892194100185039657720249396407980764510280024416300458758273673453259795236672474440766169310709728772684289414827702988611425395060772125849583644977229183558709659031534557816783105247472528785454235010917738053058162421524432763203669107283517032629384864773290542530160892138424053215091032629550684401283926301105833650851142060545729325665225960124366814299070855496181675130632898153506632830809996426645368982460637303389162374761279431158349227132696485150001609628833647962093138921526488497114469429281277175948178289657840537790419113497901607482527842251439615084804153185087295550502116556388668532988715734122860834323326556351973407690155332179928166675451466752620588391152649112227637539596524543806363439093075165256042425647712537487131915637080750026651305467516606855129258633676543947065913686012942077848084382590636887548488090423766145111497265537089033542909097470081413355306738306491659201408470177074649652298845943796014162600823686213050303925845744676539334992395716439666458993500271557104695697410034716049199472738988618058640513610307400443019368009016293367804209410307264956552679755000552359158798289518896731452617687774302648198521068688009974981554072866089749241980128281810225854168978160611195689507425800433999896039065257814523561916100274544684215992572574511234676223959065877772822874048696216906667847516350177570706316447760981352167123435179325152668203792776548839352144433436331291749105340947574187158985400069649196828505582869508777724651906129408414633092822148698138250661755345780664308427254844016168707057404349399016354522328550091586959294361386177584550834438928627289775062746403293211146828779193332546256754658633913641622837006327223205184873610802174520570349302833108950361012522241852333244636143203657241700439490576080875046093952919273064961923173775505542726220921446011270533355676624493047972099721507954880150074008207956711077539343874967705911100296869318977340755213659770068460470842335247373376863687461489296021677480539402354918338338222307526732196299411411961610823907440389278861513937976478793780712088433650732272778027452966396428074068015435378922893283428368314128398394298454842622113668615218348584309512179766031621137742512457320746346118021831519590607275042768768745777493719877644013378218363994484615260946100346691974261059896201396081287867012244296448956307751859895244634118075021116834078764260923033853917848673219589190219781443618274368067146479889339684399791874486196731729381924900928495708858575075882216712718294017959051038632715836911565766257258141871477821530001009419881815037901099024989644715281714447981502305088951515845261914992588175293500967084283688062055228020449350493081427268920093111807707412488756281076457851992860202823569603115232097948592366400187912287588240408927031378108089563004141770628105307332386534090281407977511004452625407394610091825641328971057023299072804176493832582809396144862702618625813774166674822048139624711958852118477679827634770255797707169425418746041972561718705418947289618174468124555034185370292598785945885155508797881573982083131463724457965915105301355632924920403561722074613482175669519466737388717154444237797082911634418433956817853413426771425619145736411161479581360587598394871956042506083641550649772270141498353632195849804571013967684427018976167525719567010119274934190424569435280192327682170753036968318319802837297120528416933880164051171488796417500899456246385340669867301003761532632481176471559991367322648714475725587678722590671599455407409381771567157470906389663288699055622354311812808742857867031456471561886292710178059020667006404336127901091028092611828810892304646261430086395682964688819788529367694391987148578340021943329362836491390804798050116061516688766471036198197561672284718852631931225276023153656491337818954729528807995937123957456012674566747791280167162506521686819015571712158376142606514309848119166183351449006273076164792093269162040821431981848418028186915566987797745749935408198966705991174967600209775462491776244823643696958889326407242015764588798388059266578231463526891493454363982305919816489222041029549286098942092830474912483343411575697777965409261082753722947173209958448262984161821891404599244302814493207627485810478796499541245398896856142782448965680595261909598841857598023630816720536480095868612205438901008140784069080327632688556879416521715809936357057165100407920031081754540411364014663228648915515395813191589595523935668801196407284119783716427065354243649735086679168560150827804214660774878207942845852683233167572806005495728372835074632311685057112206642856512542654005359513132614154231371101767964764183355151651249769161559716230379583930853080716883378543874881009349997750332107498976709771073092757481567072198136711132002560827617523522724666501011461354970771194574279082669518722553197896887399213238928977377156081790735743796275706161394749386468170106808172214230796931110587918344602083625305144847802342689592113950412208568734927867681578839038755016956823380987205889320968175447593287252371753737072053154670544078544710699256154967059172657638261342632710207342315018217675583988412699380625191915725464080125218643737189555331848246750255917092932548745774780336985291954800988374230740234093608046983424342618196383920527084366421019809735225881362290016179583707179962364865648231749520811045728594573341632571305622680276818984009805156648637562200433457048682322996922257541645001014736171590946141562067578857784168580441810047553570870375141964605680976156205164627109003305982418695296843729129991242946752973298034549882093612905920467826180204223592354214196597244547292359826685512342124660247962769120855951756081272696980008886874534585964679557217999334948668972397932934838882567568877044662454439250033600458345607499594627755347430854789746971688907524366866246000206109808791024501406865012051454189252016592291351769479365601748184350551058827506943056568445623196118866556656256135045913753550693119945248803731313806276965234295860030104252213888461397936849789105777903039628359872866096838235819245155399497410915994601931837699087379755702291665412440923652604498959864473918448256609077370834583958181903074995322851716976100891905886564117548157171253613128322702852090538563970966558320019669682396854865363965366318049705902007147934787566296778715925743921976443346224342452663311999501415315005491168480740806270164030736474757716625414231945031423759877278008441103541847437311922809900695815009611018831384036856826999480848656866447775572597517252658616235518256285259170299036686045030413724253381089864336752193252802830760590726628135842069912154870508328981192465994778965969613567690753040378457863497868005069140833552951956055608375438761117481532179576698660092126031954841010214837769894165280479210264223137332625998128764974913708510863430383933233489975387861046733470478528999129322270988046253145185553783595592628868392788494302683093848561780402170603624883665676007776966138418442298755167073460471015509891127976356041580847019159276494366544868053500625858277595560939131093550734520927359414237496748100600182693102169564040139856355318735031625048411348502043455309967214541533560445999081257133706493318072367860770275826350229036891282098990848496093045191031930114877484243200135574602325715648605235697584473019498670429973966593121415860958224249388912619692148435719165863822350246697663195231328716249515244941993787894387571292777770953473618414731280539935800034272572096229014673803394476427516231385473480895080478923834267487865452075548497198491400199284859837811565885014364450190905354303158599508140107517816656588472332951898154194243569333995913618362829203890135655637237739871304595706191372888848693753942060266176379025079906673340636866596118363440137881092601471749457002197469117167215636457487866381416664153150367360274066542424477680009698176166422570575628818100676929898056265099006778088218388051916954125905020316841363148300445726340537656999785955069312265209576978724760308395586250715439768631561538142390694639695932738250270895585544062201466157074504295725247170233246618945535715776872617756406937087407191210094051882457506064195396606546568488377048369980976595391074216978853584681700112934139405614192849972228882207051373343641725813022058044792625786429035174342485280899471467369681847411387015208870908253081833014161472414411127094828283620842372741809030278185012724928891847885545022394555733838812212108294187771774409115962707790673792169975468877478805770000627170940902220692644371815330118615664024543909788996001773643079363376922917116843870775077995387508850938464948974503916277875840645410368888484346000489248204053306204799408468584535379735873909048347205375297678452121603976908368166486715012193184032819928089018706797031720025680694280285432849092373515432846684407855947533726980656805289585197147144831704756559060262675275581811822941104389268182077154162119560939361814516458503642379751676657248188386354192590763819263664845413633360452349769978178917274264383681289147330198616557028812860793254646994736299658761236931073249150994528021682857836551881134163947227416248587034005137844250497469939056814758358432443765315068140831748800206989619312751391942646205201022829685333799083344687115653237115876737980876520373797624388089283479666204086585506165583098770816434200776696786028994967608377937310905803945361382624441638449315318714947974128203851351595500272620275773696546339221447026818466104010544535326225893151452993126326683282065240063750130508289738821422561653677410118585934191869790949827398332807296000260058114102954293398011399245212207266786512502949248992338086160619533338766363524336332789388857843392897749350955352221484796456838509026461810871619218681647009610201409722847913903277016088738497878423541662167694168981338148081395428119466456375752177946215747346763581902496974327111452614420470467161406472390815888318914009083803998848104324188234817111478095628350973032144694537979947276229476574996506874663100824565870626866889645063400009792104144313614146031145969577738267286094172020878088533104844412218804554108729815569196317213224401437978963708638592044008796778572307419621114829549525841507481578262961762734261689541186261659694709442589093021794002365093561858786164511133142997397089358232551256601269114767294921882833817641227769684811105681228449051458904974904002610204165700897470904917447851846226646019015611262470890375342916509242846625504652643888421346242582515665447105058513664037754234141455953043766645967289620453828076385049982428215408489646064223078636245820843900703743085585052871334931835044156080459701115750506252570842790724206406547999232408535402320231222752878231679334045729951573000456586570930911042634036041162451752366221563799858318192353214730010210952500552217063788390726678369883775266073516095726567347529953228069340194277261184496205959341858917518186526074311602183427534225024250459549420485883907651730645898829730287025559342055712351423088117038418613446115416252256004105290949251926176277585970367920766731358361914563846131635508497083492002333187397859762187705231023162883977655261576315130045148031962394918007907107367956684563902165585057778630446679289539784831019160850023369009561314659988632207048798992895299274800063323859104279873525859591674312779811312478691451148144738749919596548085222867838947353208712618325992982515893124581880094466034021438260074436142685703644365388818096073763197962801429973204563510987822069573707092916469530677944282215654914399818549946541891745462827397343819551779613267515039664012147455973832821785439877189904532959647087252530474097663435467316618448443192587678565731674436543734559023310574699086382558705487802319347635035330586042794375704441555095463381543841054078627037383491971351253223594359494807209309485241048763671983277461642692093138330332154274765902078863084720598887163313405966120722772229557299937210819836668038926456495950212061115383312178823349756871858429215063936256682155381162792570707428630322053369127102974197491572071269168194274441371998652657072993641358258482678237603203516018860517943697661331080776226364769131648542528467573657506852392342622758834992031623367368990934065598273286280738797372859358995323149382726364970191783660426121251949832982478298001409911740293781735445189987069865701122123798686843312251306369838423762582318635578411203501403370222897061469906336104359949859795181829185781491351089248290996418585560207281646262848368019846708981964391954000634757569609615093155564627484534430340940900507067352610998962419117684973741634336058207480331654737429119788598137494567495649092596644515750459395479565998799913672651018593621365119663664611252828493671494313454858271705196656181939847201841936431892893506969798820507632858778491441037010337451769395367459567869376659157549584386661744129069984133564999677614266126050619972346051847804043804194455539268053950152783899512313520674975642432246689270437428774078716688000153720841300155512374943635936660669132298726405764360390555412668872850915479201850017480346514063406225462848455168703051964335352662152910330941459807875968444431249714873683091548658773959370565764977648742922949114465710839823395697223851143381493148686835806379319360550080695006526998417762212481775371408888522499275704912007553554436572841387332228759768837675516892142245434504002058155072218514124253891603861898843415174439496566881821243865667326896555642414322905722358550658347796017178900029171833555362465323808745707612676989674099836084345075963611837364655249344830311499128312089861696330783867862866359548807943885291028976342551084683657381127773606675408179024786193069371645363706001477319815719636102463331883972509864334410596289431128082356359934710234743121375302847631223728670192022638092560293248959964276581468837159453221931794996870531432903555387797833430687568799372255321316980772859767551835547736235178121424506214703740783058173219221406780941140185542329137483389486629635209686756242701479182251037592228556519340325096780486758661530669424994552859111464558530981087542146373524035046285636738379205069972431799431901705525447186581286192650953368361624215947572743012431911455519172752864543389957105958707995610578320439319875322210707506061696779094660937838495258698073296090604619728069423380517354305545601177461740052352674534737674042186798084369559563552694919736863598039331019328009359284036789319729622603084460452485074178196752314089242126555863471216378666021913097530240426466002548380500423207728527036903572712410222880964843247116240264591721901434931152042058261227695359636765119347472812428863226029382562930125251234128259818537092245912585169909900331238639124651048284455643463767849293616263233893721698002911192112313594151945745075815384426744010355445554786935087239283171056589105149033308616737466245488420407397311894999334905449850695714282628660198996089118893728113532128442211832560495764541858262022117357074892435122675843496745772123725127142952549234844300163500997910947952922585613061511401482536434163836692757701766024519027062099748910958992356748041463886268768610601060541151004357841320293495350694595872498016461036653724811247487180566061210548540693504185069736194910237752111126927458520903883340346187561197217835121482831315529112363126210655546316802655970610941144849103469939464568691819833378625625091451973550786436422218569717755182438589979128629264141464926984913279605007950772291909911041620869888010076757140102601036911881957563418730601414729984863732403607472830846521997457445039791802651991032673095085330768915958656020047002882739890675619627709375582772984653082498067997613559041094755936790483976921818952902095201836283431168586696415906760848302751459070026834225341036734561023870212612073745999261988186032784905792008135563229037742324588796013064409120978535990619082920028822022608813584171445558118241303790646440386867106860750179042062092923861063271603116016579310096285146148616423282004757570963885525825501455067097961329419375630233298828113179685288322416279220662853424494634578630804383070532116167863606892233960542215011303631696080278062937347243268016649310110375678228316672366921652577230308783441733333315964572408387827076553466545967911931691406702093048275805606325724646182845021197987618657784091909575720311819086489849310238600477993528883456016244668557554204958153793935506593340832182395251623692514688195249970049133387140514956718953962617940564311222025703869261902501078074632844339665419478155147035997987145266641252860022720722244616948761762256579356577870267964379329428401828303904003279948274514266151569798106809747524425165963142656074459014374590976234543466670188311724091301497213693783578371246480991079236746034633676245387498283782809974634272941495104438024568842937893750813908737182349672917178910141092885186004012275616934987569087427492147165537396703800300920065536372821417037453903809040983557480805422040562361451355755467850555489579396109001183741357847152792262076960383787664841488507321728115416284483417240267622153902323253819977116366957894478176357864405618804611619184897557733564997034694184162046722523970258249353080148097149631816220166239501955929452053679931692036063099372454324331343211133576993456024037685618686922095316965360029943877670183326530864298072392464614566123401374628969782230856995057400258089041358110595314321732003219482049192139940926609340000460142822596191490670447672431589674183657454363697137570575720696361915708812314271429605629717347707836414285647675056641506791872245392599534427976613949430409233057333071118022566989213611321099538044630196160749494221120139711535233258006211775767766631350425225968121657525946485540864904425142126745303717558772133062534259066155675438827258782357945545291714677404555364304284779936934652604933772332821602712276134199499945938583241055135509702796638658623237007011919352061033709006048444670800716594712216036064702017450092656328810385906894076669751490251347379542621304762592646167685876981870095135805557501503757271094834354315804319431300553423504857214022044371550622588206011970187631651974907406645860592391107646859426554553618192502771569789437033963942454930134645974178786257974669375287495890851083875787906766074438726523593726996835324672343429044194876090290794620159277822959595704185661267336226580706311236199956056961406089046513144168535944157810946280487128517540086248053086096234545752660572672228387511016353702311368641721667207173443989033323434912754787002966977861790278996313112315006596418602155717446198442450648561470533482443531185925821131143383387651052317576056671510667927923768925694784714712653826263524693369466185392684071170667132959924335771548914711747734764743360115540946560682577499415146170799996134046580151719290636061760793108408128423889585368604865672637960022065213534397822795936972094247252916337209190979111574141229947820781881812269588185765007961114848932566568628040188757086979158693851704848766963551640483325966721045128317334084074592843186850451842173564665289020204709484654697930995997979172677401262888324966172620707991549983771403559998982240717989360164316605741462848320730206063942416372762205474653549235028697279162027684847053667813801379835076602864457547204643190889110193832392085566724769484608869543014229383692287097852736187495742603047788126755452536154877064810319762672368746629197898680856352174183743630898603275931802083664790114810243278721469821981669494810181161701454963088356026589128967339413838737230725547270751330589290688477613842201432056479800626286716241553639060212896394312711711334288350591941661285800823615926407287304106826150370703203777915784786504838120642567346086953185977312656572631680515555549728956411778202528614409024261403604189861983921829607404365112016357317543366458933754040245096469537289482845734007316606221287130540782740431785447113420467333686479291924051571586275949116539405589155737852521261581777067120119108736625215477538469419989194503706248077518726079673569555983878442854608187481898065108878368011633402077299991740530197473454830658682461405003528105133948468692836951049483522334765597756655887893588775132049934621579918229667880253394094039014760851644559835764435318438060320161401303787407297064205193429100729535775910588889239811256487458021968025032847102423403403370726881717028894000751619205509842874075365905399008457643732948485973515330408711411078846294623687437178788722164039745521750452994359467995095985422940017866556521354788048328752539822007692027330266528976419607830899649237651637365530962232199262843867034996487773983274164678520506091879312952058819762756073404489471240850412670400519400173487975084478534498107364960262283607020375730433066225294698062534491470265533863942292673268670696412367250198006562881347989854135343490387141182762699870763257139804319425520342556001106981702022536989694583039931865778838214288565861657939760278887099972037658417303078419749295048684045083253851382761731058008970821261353219595589729165493511183254024796715380444641676544488397744382423028756593513576852086694828441295158354151467908747365765947607360382696711822789606851502448578346725800332966223846567612910568942606009241349442685864815840335884936316714927453078579798071169994414727656966550049928598201791852447818494347000807279446058596985221206918182708821733835729369428953947418868397919679597860472406858053695677124301692661776281132955201497476416350845799390400764768573685117017672243699039512524026127294344566776007352476910074580623527308130181190405339076686928070050811375838289408121820037222738397284743609540999763694003785736031444454662753465523554968562154677133480609312601315834727531650514849429076059135537416214902678334003094657479699486591328944686480540328112532627863190427743318204038356277380985556054523307545237183850753502939301135653280186321851861913132423507361554905209751138363733738342339551231572684929234943309264513675259726286580139782159421979937512045616110945606421931103941672762995263309395085536104185189647482010804086265072995740113470205024655075166616681174649916465437438833537719918344802554598562998353327770464273916032541263348070368714529496147792419819251898177300484418010084489399462859338826156120479572527109729813136033159943692608957522516903149554389686771909003733340849432890045919534959080844201865421939825360566465761640157446915097449730332886193255919582029339535105946029634425972515604178038573747337557674719035321084244488213125417754262689920637322664038355106191331042783726514136400511991613089643334276779511133417175925345957133779164327394820739125940593367551555724894103330050961742433855630674754039269299561268106742173700785701437013821353111954193098721707943934133484201145732877484241670690797379161597497258785376946159327108879839860235501225888278443914529523712762122758631952251919565043022499486220240178271343224165659823448460009602372380254078771897322085936947633891978530748094974118776746399745348154051672011073818026307981085368779285564385059416310644096063995515277429016201880021032610751564022605326741706401001486499588803019328883565195004153646537946319940353844335286841440219318043579382629598449593062996121826744133930728326280446678034350482482730276738069813930552591896014120988095392751423806459252532508535758406486318153804418746187420407541887053342132191060356074383819980500460760065437878924030505678431821878697289133160921006855926815774295362549156664740397591000619692370075180955871788710351201158560151318436044784989906597393754853182487229368132457513681958756406701989037274688913852612511271497354793690943161251657675197900980423547094540175725744682651818798571390214579991066164404590394576718379709472918441481127456780537561545666679612554912011427853109617073370518561555675302256820777542297385864186758413874009119594727986459514618505503731651080641063991054999820132141645747064290528109213774073327214168357013874800358260991555636422974297282358629137692106577504445232387241628206718562552128926251210077983867280962795820071117430155408511105005399728821312510228863065047894124602927936763244887367914019121129823851235340708366113359874527583584653076336491498919872970018515519775468529301678397843444362788141856649210430902522743818400572103971689283325966802715443916896083931792710273936503084006392476761649200952458652856014933566241044119054059758962753997285413963388127142898359005919076501970589610955304695219577737833913807542516329832394007608575243691063070790937684703083110950827650382712557356155620795278993169949990206162517567154285882510766682828531030918671289989335095565947364518265092992659185778675348026604886743822843831682047759116443927558202368147601698227290232736930712193057417390072979606668188327150929890320501619082722525179874638447929798993296257103644750712326592136360327938919205350620054699347158700793530636407371698349864466663513489775392130778267538126894980270573168539641297010105064102086194995604056598098861469858512605485396008355438334591920579160852184757105427524184762684480809107839003355705474234543050998867366782151583794195895483047127371099368339393710366024000879306020331357270895968620192538452022417116790911988729586997927236914074419344979564859142699582068543885947270095723558072232927653691684623034069476328290582462625055938789063896285020750647711923519119812627841370247125584041438381356852951282332646705632261968172049831814893729815621193990442357583003855083346392295054538132344810814486006219909439016393179015959914121577754777295288862520897244224478278307062576593914214129117219755668228447313505501250011510996721130477906778977094164084214932954181690710885505634717368766584856211877905610579955920915828535827608011138793854873762461125966408678694750367992938521913871813471873782351783877062083326002302690331415445068027448689522119976299196747476449523907893640503040887046236830463927625504097092138784663187256719276847326468687044129225278333468805241914630335969172789913969235623188499494715666619510822940914416486071436048274197770773299816582780895042549099480907749911858244649235556845296282236920970571354438742160566567184230949850648911741502300984863625339907093324202448280893480398863020398107037946946926632622245607983278152729030864141952256793318210425751966816623904529918787798768695064930688618419042455938122410646114728102575352790246566232013226384507710048243970458294397965679968498644524879987118555538429250381657155458760734900342736493865819774761221471033642616829921861289391546243067415882088472001158068241591293109291842626313759639722903402079919481912603573005167632639250419253095656065904957756893337755094044361380410385930560338016227073034228806821671336420857780937449299793130945894478916416275914041729965927795298508158507547302666607255940405448122896458601135813045984573698971165987654358087401131000434351873558672864914005960928400658409342501412060924120345282947574391642020013766119134027459336645098503360597186872822569126757082247515288015535287371315392369851606294355028961075201812981751300393435551869723307315449306881544895795924793353426886812121121819956161419596164146196659436498482312679666423303380452647147401622805562898852719580896405147404014678389872638229068440173437372675605427512324498581646616785345968784594582597065255968879502545999345518173816219399639448782232777978304968403111222451705915840568659031109381973442230195678931130751332412414487790379749116311294554077269647074281922096141454141773265396891605207289149405898299857888650905078132970103293222474238475818987357258598281924143273297413885503729701500982921226145559182248657165905517022623457685585780339746319153846355137209787035505229063118245615810740440854518064786450147213968074314357550624591605201435472775395784099131714190014198745542480203212492512944071066490241950053372847245621023401546047059595459969776157679253049969299643845572753893524291789541789405639345557148522900406972050509118482985891758900185046235869132333099661164227542096637652354444768799561237379380180306213891169899736062026177711923951210815866625245012883050053369968188789798732722747639333305523236244947576370747613274967761639494653635426102848490170273820143223121147293272878708580044508441064855789267609375249646797762109051363748883049372788810967664072595034857931420011511275386917502462145489277022700475888676196623004886951396608575769798049474428481756623056960730160820243461884505525207500832628843819308630401036989267049718027298182174321024065238462754559943231509962631732600549847866312600918043972412713346530781720357554842668440315799826192984352556026269403235984948385872458903351953511754351491272388183747978979698600652044890469501940568347608842972747293609344759672583714890766634886360575234271303109831050431967050307599590975945406235235487061849674669137104501819539501827603572044484630217144072914801347632199500053386388027162494748426944534442212693778480012473859538590461154976085153812764353605173161398935872678654457533528313409775325003935899113567979019033355318896054037477644457094659911073499388752337257845697417153003480825964962474187659447338343030658685969100574584978383716245660382057165403129934163945438329950911874938489431367015930736218880230601939923236803973168421327511776411257709945724454076489311036004871943219013191626166033997936665070277147407051228315467849852498734053894912356340092526574187811544026388538185603253239217483534197763511273276273894827528626235517399421456907315170151737110225250077065207690022693524334250738221722321080903150157191596787221360455757682720258386498623654664948853931086799715606852557645354466198278346867801929722283089287224019392827414773940350470113279782581151808368248884661912274291643664824948104988413923245693050144145206964610360818406576616268966568014870199105659642159550086185070467150188298088884920724661964808093729116312439331114367350588707052947247982468308876438114378999112136814120085337218893197133107054819598581491697470848504020462319666880747505410397347075249094278926371669285168714748645157807654873296576928300260581780631834077942561536947771554992360374723315527434270257632662864434657135413186730335473202871726946393221570232709557865426601654968407999280029653284605973996105774182979426829019592282821662239721855606239914604065777469956082814574959567379035444833227225656399399205044784575483583844332336092381377671375267684044130896379225902544247493286184791398945969922961424151515568699252508045649442238546465713584991918006202507247577869050864780288610951646482851049790815907691687174190661164770221974837253529170187397069018632426682593564575762233174873127678459104336024141553962310729970389564633612185860453291617111051464748978295839194983336430790239790748865317860559596682018017668168990659626753341287055895553305260163490759534550739784523188245560651816949100563997769466857935173941086586600796860189309007474416614598869030877595730803861688202062649872096684131086960145316077038969482680663857218813491718226130629343305804877552211120721957049182240452156827745244369878155223619163516011908737761652611738072952627889668014849185598489846232387783046864316752260375319818848752862631655324157035127734963900613816948050458048467526173168684425334307763653673946521329559594226381909110177485187768484958868007029115532115347135286615845814151598098592678216277959615669222653287690388638721813437633071458684983170528888631059659498487505940615275554086690077828416528111723800315081129281800071672519626308820053442425760166265538935008493325974318486644913014376440496263048789952928850853825391725805565063423210583942765929153364161920655821603688167043189142617510089313295008841066456961155454084928969917214803356667927140389153210377343371538261403361059234910290584409891601342595043740115168443718787570787516619837229741538380123452561212685769749909301737883117712388314937894404679942592697519373162917392334749829673518324837310946109973144107417425450332311730058105974143310508512610789834513479031492598063739912503371143261682653751654625175314615877964068473096478342526073075503407482666605064445085186413696216852636481835039700571552424108971335325114362362441474597888170482411743220769666026889076249524710984684941409653817079501764510310318086907040519848629209904434712912461193142238919400702621511314370897558694707079566952558870770433006237637388715677791339365416444826068433626606129446710771583323269067340337317728466077818476341518018438753326133515644716566143117697225498885508266795194203876822903924783552103603657324427504274296882044832812653546166294944638526970653023625443539795955565682410064464036972602607854809281591767244873352225939735169152081445353466925826646916908715424703086805288563751472556604658196726815025182826179597923371144697501681591279517412026645802762916634049391513449611187393103141517910499460153450083558731816552775323824899419077744709195609815675872520627890165042779484475264738896704445895075856546009170120063706648804432486736899602584750158536306879581815638888321094895497539407219381625776943443068827560056064456952856227491681293590859934059101835552550597199294935953133500910829923248339634237239676650283670511575264829446765004362681756699986476332751600344366574604737646484305817155591185136091095742973075635772246521694710720403564584404733183320168993269120945103717875839741207515182776840231918723138405199047667635894796422266394410806255549071348420799032167928729422587490566236730631767471799281076338159412835056617486492474061884731820308255371477205741399238450671201166521804914340145856723227472377557445916157677729981538957135271444024764115465780999531845164458364614117588490151777566164850038954766426543753192227093078608783239546946054298591375436471284630760547296820098412407647347788911423672758639654260441770193658784909647251885212749050202237641098941899788420339979277190455155014900749746992377361590601422662761848592883546466321695472661843004244027289663740155336074510452914023950811414397154073456408311781706684260883546131000039574307540654591337992576111267387485262529435739435618081994606821926319559025400135148533751010840796893240507326938216065841861197435705963865464294969268099718344153831238869923292213398443305919648514553321353575355923914569330660965225642830974798780111876719690596296495026956192211425145661101265759855255446182925178530803852272443522659028157888400768682839918216039767069407727189225500532291788123278041215939605874696163574336545425698507307633574144843230281644812506247699871228219248345529398354674769173007579181115066664429227166473500283501822765060202390048192167910023981327450760402462012654636009991649568651839442631446080936418893854514254146864380083929858031976983222716209584569881986610914217737672030269506378040065333292133113680508050079990999420798129162891111699683375500799234049326486461933307804115163601691931819975552175815121673868732129741752408187761908549229584679558718013206729361754773910950962146964082241229131092722764811833826607244894936332334151034696289602465082516668994690146407883782881643781469861690262965771670404392434979295135761468161232419629653703556825652386801695575804801814366827800788807305122926935016962342076888824863716629420767219673874703075448233177913048674276624166584668659504486132125379798667621742002559950430897031109372111872961921232861352203947277311777046898513356331047321162869846773975080179100418200075235908994035036877496027117187208925992519496591243698874375454480976316458277598859732797638704896902030201727955801466396727637719825780018847903555700418772607711302747435744314950153670461293691197449714967473958240391254594017733366818918863143294526211414923978637163414859665833268397397591678598564908071581416441394969783234789726334906203253062443917052920437415154757335111272811462680170808358347954408696396556035611405350041150487832994177717148735562446549742834201041715468996956526668643219591723646952379571939520090620045383169102663302184198302949791219176959570154731951461226904928699287353983456581007615942115561698764434424054380636704048604464422112660106132245520209616757385356720936115035912545750921242795915668921033139538572752885200620612988358346490343481498714417490940907767021483286357243552890419552578087745324040781242510087008110413230519033106036310231524733260422792872518663096189329328953536599418739285220905511881962120042844678160091692665314891936524878018159176345870226969165758975791978036511012357547926290780683358961748972423394159893315898477201671370191731542619858588969731121960344426329088014789556216765650137736338384596384393855388365026835005563834800124362211582094462896268543063522112514620296188879683852528556222010017019408346195956351295638070670547282083868863373505583689000411155139593938507499768241959870932032841451427326471067143099691252600393212054785683108785304210184335691461226382049612573313032074059308041205027280574007962332135917000425442442391141031450047726622879442060231138817984522418826889812022541176997656100674332227142235170811928883006351934538850460340834636519569485391565119899538288731503041405239722502594878296585316992809223259090383798172372063016852028428900588907719757083494361975909526645070887983339690333101021208039082868692837018273680998463531587261056083238328497519821402645523422865863593099192722287323226165043304980003777149824747950534297585915513379075046665250755968070279214593382201505029688912612191346781080652003688260599733889546031534665493412018910877096465777861005752421917726911289611635937739051772475142190058103130354776454485678916233271563261984291248647884350796332373241988741373086643559981868773023023041534462740347132476939718471123614802602323614703983897075385290300993728393039526548978443319247567323799212898892161711490362576048968369298922775390897939375451276141103933076048488498779949017964695451695714027597036582698731309331231574501177297666624478578322695778810632070539917440810191686272087667922420771866119906781331544088984411910107006171646412229188250431448485589243838608756472514899124525158596844092589040192696868569340460567614617154764946823425587090483384209592298853669651693175423910082421396964332035017462671516849572696402520460023919913608096079866093070193342828417272718371140234253391523037142955999894417792431936659323502582100566035410420030591096856459945515989636382433247352180317510438097313709599058940671225139795502432184701659623185377527547131697510011192299745157581485474760730620941687356467316476145160764879259468627171080478818728306392532132537269629363592149534693723454501759771988548867684756796967210868866290386658567889788649485731691653570108317966087603429048227442628211434659815205694182195017580091213563040562709979497438443992757707726648566833828081813863133044519573877698652757618623139170749109062246690009470461832169419132660592800162401545907719299249791459105065074588576051453250386181598418568915810202879061035230508818844700969526522745819812997771059241332765258087767232154930774749839108284964908060205170822941743780205796794756568481601189155456900963322812119760918800451611446754827762016562898098031675015168113448013818189189899023858669497001257709618894281251365864831084556217607050882224163658837322247706785763115083277455229128874052023131015278574235107026494825029693476904465352856429277329729172697887622456417912455752132776064353455872751072362003701360288264576553912924917066992110400426548213792906198662882390449299801994697406787186328849547791309176292701933272370563254064420115474156759933862957504364226050236559493754925223466082537052766063956405900963507198376330919859503360036147716145927823500661153268558638780157625845005479174558705190762979540263993132204460384131770555763988670149430796936341915049303895238262699130986445686618426458923300817063670797402433459496943137817053918610527729249381555560003477904419284239626566401819817580100454227329671885554861918370103475112204661969053386225626367006624200469046441545572916715741518107755408143951491988656725662397989174119732311320424328761025200583951964022135131972240429681117695455427436727661720585534189098556317989397519464716136102784692743356499442632424232318080036528048176811466580448355437288580046149822224337048352166751371483118466472601629387352622324919275594307617394545504794625328780667046107474884251381429353870899756095694147132604438444083550058400861117225132922208972731370473790814265954949546403818202974134319479745636292462025350635534286383396258975799031269560709428966605832235437652225890787675377188841966751176897542382894958377689854957785518557343187470637865599724794408286754875477762370665843214048329557449357344206245181110802578017226350235948523589100816160898343695531183948283726792277821989418751651507785341055760365983537418835386101798112566355444247480845926560652628268716150269376133583417553168469776947222152678900077832213509451533016546011370815800796922204708715423786204723842855625537142160411883364117529435176311162618579294135590129515337656807158575961020348885158337728050205815058072235217624133629680550131379303771092315505839663086516663401656639773602501397915069027349109700130271767866198386260655162423129020689772357708926254183911224558713510096756358692048281806027000974061952660883230466582456565588772867713303847095565951003411179114803513834233472436941311561854427781594821561929984530416725828393406651897694166146504347448294174208013915505738188128171666388682349554216006001888995420849188331743897262416764637727617338787946849500824792607183792828120529042110126394609966877252879621873207174711328933383264987401141737202464070037413093088121585127090875880793129284031520788198797145406693527689332387531025397510388759732456098220931288300517303133521758932162366369644641253723814691256720740827193019778459966258577947051699737521363225215350116465086116867109106509184917645053390620537583332070158062973656175059570379692979643490115800193350631238116309018050382220364905428597019928098907339109668374590513508972974680551038540311022375182665006310868260959308805964059332989245356394612969648330175056488330457944950914567159838076720413227821079474185082266630408281615489133573392708048141961897016595280001187339146554249019800041931082814575444649002521620363608225325388465032249442845881494960920383328109194876885347035665667910601479934896372899911727944517206855890513091359002214323500593915559118780648325081216332673717078813624409707944041138654318026079106949976931748336179766994731585267863273187053360934859740531414034180434927920590781227637219246985610108543343774777726268749839745440074520230691880789164922541255556461495542163482354739400282391675471783830065256816339221420045362705816186652409794316841776697304018741788847089726288828343485806003495951097427755518655603485322106093529425054006014210820178942964154141953668411917361574762025332778609224749697026381092381402963726599644523477723130089029831993226588980531839994045029207665198660702107882033035922711452774597863124212208960290279490308572719850025526534210652353019052555908124602523473244227945122362306109378233547390424432245822549464189193908170610680253666283549802313151617414108051452142035880301602202217254976851576602817348026173296230996731647723320804198558157588681666720435896536942087083266114816458761277996500322278313106533151038691430665613642869114428378449676537822097062119992953139806919158625763670623297949918621474198426946988693476668210420809189344143310848691260828919838648412220827011673888006227726729098715596292212626721045871372636237120875611073416931619425672836786429270359840861174769495397150651789852485776153121235199438558317253883928325534958828843845541500720756180976321932585850176237118775536514715980387977419855358226454153574731208829800615264563725730849864486722604751444067760121079951599950104865397558819861958848952598429094113399924790173582743825489845905958146926431298132748995294823604982560862566111615622767751312494563389822846764928741195581192519606530432249503350365204794896561567987039358668522240102256476959772759985839353219771085632863325942159981967831350345260353867092281428204557881652277552769458382867508202170513723572574907152663109211755151159372797394341826258381037847705702352272237344419160827945570355926243415095293332624573221666150905245365144739915915326594136498087392519620070538211051682553761218593018312434364018280573400710968171790613623570221061065606587394271768778782600966993953293464825965878358571417607534030691618767537826880463943904328255211146820790629852027024701477180798697548029447241963445374562373716785200339617502956904470994848498861792879812388702854608006504680497295240301530553793035615435090206985194116707440146299045077939805246512987476900261250202175211507096650258125434458662451139165838446481328677966458635227635389511657425650460156621532807729592580680333809480762869508683479728894358853199754350547076073248045540847831713785981401293048681118385894833592570811758312019194370952946099911047458489869631968970198613546726624538622550322425945704482871715197548017903151824329486305323293151061387580926384886829848723655710351778099826018968755358722452887168077970086061294527126236935339614969160661557241340799956377282455559640005459511035717825439474008890065718022648886901332716104484215733217835195461497040811426778175883976705499065457137289299096297504183244614623311097766472425318681244286903218352462628498291953301994252357318075904603556645780450966398859528072082060207024853297916310130804421835934392709403065432103522332098599290054154841717289703252748230558416586723814130334126589408622313381292282603576072003105809056152241338304932463158890520867930111325817932548381742758885701824321601995256161748956583484635267449759608329343496269038537327239225109764409624598286714991415638185948620561761755300735804754924663897437383019105694183275925302356868667581616152486108189516666557982443748682360913834908923633520313359885819699057332206855501547839985506866600545754026693929332317200062766820927118175884630888573958644335813748807159223346081456970565431413647760483942174036337680428256935149686235637806549813572234404450181620796237830718713515936613767647959692458450975220068613838489446179046991043486156308779613644814812721299468243553377309516280121459642861829495199909724151936258689851803710462064072971348185115388393981228330545440002876674266924558462001254107530245134395359275018895830264749952625919428984876419638799294913874899727659749068027822602416407496383549437724436901466529848251442142329308448993217380394212678495548628701160888829581478355920376150825571201923962875161813229680999331660433598218086081226469531156591222327876053303609726450267461788229620697308785648551700051029104153955936176184117791181887724192455087531599252050756226903716506920614277206612679786021277167858327400583780221633456177401654610177287624636216723184371976592535882464896683519682815612335560039286014218296411881484605889295123682329631905942142783344489825176535174548256559800463017460849157772989759067960787911968487530099471938143266868888468834120543308053388004283570145581047771068084580834067441165263990222222696679821708859588991604615676789482847310042785911921990017260566541859994392828061979812138544368103515599123163736072505908464150188541951436183596882355127057714237002815197421599036551170896452216962362648470386274877797734787287835341577392806720102070336144973547604548665229104502411568948370576421606337832161368071764913277675107608352880247746571890740215092486507901537798761675796525952180273739913869291169810292127736320249139429290356707020665840636821093829839608669609490539913268285941230854522930643044927856870526058029421545201451968559605593799954456235715652675317791492441934545686044187279628893451165542416526123459033819017436330345844203867791280856579291134934942450188351640712412749822575498089387110214036854047589975802417150890732187863561895916329618178947401721772305470980919230665846623575979397572577688697087815773834691244701430146565497435937739162362901998695174352678152584943156892337241268471954799471833753012390056801553828478193295393521072640133885113381625648426074540985550322551869982604464484722971837853895800507466461888564692967463553315565470607392378492436232166938987023366862619930268273321947176674747160452295963635563949965588363428790144442590752054766918374740558177423718819166929553529007889681664628426166411924608899209514663955993602626973803934380649989501929871759117432130302953126668537889000787207886797069449319887730640114249677029077947020745982441396448960600763098608851826896851422053909295587179714538395363901013307001002951792849703002328094159404966552035096280955863768173619920611622433567473852157321258168295525938885162346701045448107133908093578002197384789252947026378118546563957678397321399717255587986725251853515644394778156399176775826637890780386880057064130998297104274054304668862174000275724286050965083666812132168086683333496499298106245484924314796960162585676761174365277172040800371534492670065930646405226327095755245755862903192927317426932941242120337251963104184142062967057418578123546191742249778993152079377174250124110960136240961934856405254473688818080101752584907708548366280927584707086333071308201696070012201310522287941238413063518307045483093526509669749171543993480001955089775841383123869800660453973135017096107266498553185497826488361729656176005947799367589463434324260196578581328661801337082228842645655034793268449740306948594767842703168149835894425645750964453736050287596501931154454876450164968943390495444860151973837341048788253365499874396992881928447416364210902130972338768322285714595588697285842141444988539734727549544735188721406432683994868334549438596361824391994965736479794481930584853380390513602279585695326307535751381455992928296407284310455897002607855472650361105837839164642019571276146218742405242905034358415506173924920193609586961588340735501157559965183020174452666398521086918081253846570296270263231915419970572393277550241649776519321385921787865009573545265266676594562536306594145527428784998664282552345540200854577162221448180225786499160070401439847370595881210516825255681532014628982661662121387335307377290965756643173897162567434255319368174171578840095561533605447486253528457791786590592827777341104012010294804834781374003958730347666106526399354033314772744049509258896068217906137770882975882077318682557086036271188601285418653709744940459627272803749224637272648147129845928153583341297408860711075882066081428559663332326273968887113079884041034260964115152824484339952755550221088011107957305850297428374813455822091495655604708048112486828345905698766044235203118152893347865191443371592765265120586544424012336119930281715798199978492740375149521268009955357405811134535828735412340949686971527251644366465913653719127639485332037417899838294679122427957622834827091452866222038357704832836876396608870325006467406762643614716350816901331451950622128899828546873500809509659563396270251545532640874917434301854878241328268527353498524390891484000048244892653758331369170613067333457865868790337835266185149844565986694488351449427262361539631002428325277850362984223546481078575973342762552507724180655062087767264455853260792690875406328196712029571983624282261645014806892006214403373887037453459044233308001022827094523480178436135566444873957925584365105580150458844235429894664354049406233626644298647144939791431615342951682844411231107035596600831312812687574949589829611099074967538513262186497821483855033203333691632913413032299179162990002158255953186866485596905865424475281476477889658751773472131640141184682204413238127641621948755904593481575742321773673154491461719950526354058821878742728097514602605545575769662999444719390302535610295688813944191652591624399495290356933717277300804000365519336426516515238898029816876243599928939200443660637903350474688270244382151534030547054784791431396676981337683929463598616676330379839990538047111669199533293551051111144616443431342497810697259192202688810682916938830240023584573932647777190896407771025438084956342060353658483530704924102995181694615037766819881048660740391640661681384328763949638222921936083123266878844125267450548986990143189816150696400790397577924836671358041867951753702369290378208577713200505078703774122061899662292641558564948691551634602781646809487185393683295245631791372946857149960148887228491150415640355190516367507087997671701797502411875503004533330341180676394406645816709738038665044840141836338197569878631853674410688871546078159069260567604256430740766298645674500505537661462296851117338456296097593145860871899618447756691494404810551729431486905290429694161088610148066777228327521490819177876266864310925538284268631236041905918443944586683420824621014730813153269059960371623261462017083935165831550198356953994325896565135950529623799645675336667673524391933300772013816612353639222401902074439200897850269923202615724482242354575527931903641291286510917182252778621320919947299951425714378676557295192879469989486235327947393497908989569695328818038540822375012743072258833821041659762116369214239281176937890738355188846675350246638244864735129384245990635737980107033433978951126493466238185438521811210960049586454394705454687245404282421568848459269777678106634839021704696510386476315841101562642861238211814823275878788852167902323489994127825712016441031604793189677786014325940893942284927249470652613282197850138217314545595400475779426821922382565029692875385763313903435167603031528541327072481854555241039286847099072133185749221837258803716220919866914499533798095618389426746531034528601895254176925821568840339086270461026695663193637347829770901659987159196852145725927819091828867284005503231393223303839320009652823654643944712727813223211970638894917034847885552414391933539560050946783938697287445996367753455001028992316891610683426381109628148283692273542371573013875758906861547657669648448772733682014075020433374076383838287844992123174848474506239817018553984425620183473598996719650340138097987024057558653300925921759205251504709479776636229735616754542872624854960527227672249578322746667080642896261391276430663084396913752984691536429490754506641475749105296590699522201643005697023927583321987107216363355815722059776593619160321216267159352932218083340991382352844432699299708299596789833285351421244728114541181952151759437709443387358459827964755986819830137503473291050240008561240328495442986797494846499868127633624241691911510016289292263514677126257227231492134425462979969420597143449301635330177014072250056214992796383198341884579425359226347897596695883204932197166186822078652656028782769156895489961209023951653887715452995835076742084095134412780923219356558363743488269203464036789779618146064619775232126370633825056134843862914776211355753421893003385545479871823555969404351250920883231909119740826950060755480522054241884118083049467323259854316657804905755069623908461149960102401441467790304026458066102192881847445841683169179750612879893157052645788454046427244692015223779977308849147151561059071869235528018707399747547271460646633182463294367675227061710528031047869050601426620494065768399779004796524750446057296964493886741204321484713087365759829200192924301585927592197251316394549386968821653319956554499373443846637489992036490456963694529413365128481642477558128650504355919881946325864723197652239980991997911391423684746352883998112539621225596816911642115977156555921259505938902896099124601376977641996106126639189835447540529439284878686743737593258192938777796785018813996554403147454530456933303309056911161695406603544010898402949697069189835017745286169563819659338708546089728530635818442461578392884056919018766382739870673829363884775990020775188189681668878992939473390934778529344768896006476364651778200787980616261347179079691768543145504058731559404763067771208781825248274962690361984354580270221171777537461294530227347977052589211354022430705089697318611517234758876054748523223388013743763461650571510445416944279155302629463130743427526190300810117823346577584854610870643096660430860798404321083903412534829726351828026361781002838774955440427838071225365164961589049223682419246367208667177530178445443998943063326974147032319059170323964002541728854646007811701440874534261286018473152964887053284484934977864773629704342116757731323412731830507142897413022281324838463308539227053967302012868878405290849044070367579715332904898829517353749807796469193786124257832797533367167279155514345187846656740762261369944037749064325283472713606139699266575603611735962071767274041428223715153810555353495827498248961820630642288793352743601461634529131407459306565585645180719614352696540549455118770978616713970085027058120653063342720987565138105222817742677996658555378676423605645073203890226144217705568263154324489853347225040723512559774668528864742259721090792186272062819084644895590950814462518124710313025829886752916050592379005239032674811283472990220429975136526789425305250742812256368287186003105245005841646476205648215764296563894550472384796457719954380868245711437540435818206058919998776380073273721612577553103984792744015096124386925829543431563575455544096973163999834727932012566471378189956923949075417285982843547299392029824071383143298994090389109940114890226316658730293519449212664626898572567326356257811877500603382232395628901623560335826450018848058727934754814535256027456988966868904995429496704500329728265932882967077714152555539072831709239648822539065900584616823884488574653527331861458538580366474563632017910813922306314791950790191349518152083102911203463851162530303124685473946724882147975273140811154959578056287477095739983305580222930419305006976807552905316130216030152796223155754955375918158948417338264659884205150714175827950740279232309178155244769771467349636048268733456797173716919510179647964250544560392913950616146764439548504421550297960763097257960498578623176338639759490783852638705619313970069272735194846709684825132023535397457847862411477811886194047476659383230305493341887869788237196333738726036189308615668841117869452440745962421689166221609734959516577909165475223053442973631203012845785922375032929124151994709434271794420479829677018546830331253758791035047851877267934818146280578229261729152284526332471052059658985313179841611406270150143684831648044212511588066999569235157407479668413873122809575125218900611817134515109083025546237707253682843523599290486657273668659284487291448434537943483732128935858232376110275457981315711922142364493187587078576577757103829879104777855879405428141956182171219634315518480800372114673410259127390311071474603484648611025646584267976428218657450976858974764318079444039051638631239733952259071126854852064718448565886435734795760470429899700504106175409000658429328652136309163430707515081038953642414862916434147288387372361796734866003535880785088064736863925955896725436756784115253523486421348580061966827992227032156131847246226799365257870957835624719246346850478914846597598280295429243222465614103149705406931477556424498546377158299942188335339582415948786725687682773724674737283923719076166849103199683286060979396776077129796300673616741785491644835404839415898467071540693447869218699619175245086530689062464108619835617583892447521853034513699535900609827107674347103900854264970490483353642962258143908437486547330215038188695546541710454174813031054664629844949689917711055266293942983015408579052641948930362043781045495971780079490446570622151459287345036406783788429572226590168530778995557376725069488607127042676941512205050501198561093889465612001762952114004014027501915283895066089374760244101652534937005831257197095722952396814382111527450261284155927661551442951297059056581332188671067124915777672641766064426475879491160344975005254545617243220245217865243961352230192400687577752729166993896758451683175562560987456323841219296302788817594987788436031988595622971254328677219044947129190447954350619667955844396191125453096463055151663736877275388081834927321925047859537781014245625512262350395596844199445053532629256529836166978628340424265607753589058321540683687078462736501705852607311177273173227796911144301641024070276188370767350450406851142989116916368483311105553866698138145030263522962715703014255033803519375037615853449788197408854236174406874570742413616894249093584754683911508806620811973228509540775553153640811868958618826251232934080867205137497157176749621443670492915480159359985816338858434922589107263232157792499169297510029517554079672999036370870283668103093004828912995162737343760604550696523366137629929616324273545089397775970508922719082292543733728754231952461863988606220430047589341210618846718023296486943271657991697235587436746516361937636803991992941478869584464051454226565524911625628919362641861010443945274442384162892513411882413195008672270475881025402576187010792067976983404263126952902242194358079408833192292185981018963463652527506901696462895581201721226745004716690051355955435348384416442754763562926237042660467577152563991155282741831827281071574766535684428113323142029249982641614830055412358882439421192278904531898977806412204956627729621785881685330644275269522913022754212924083671581486715580358274364708649487813006714781250735421225707130507573277327394930004505637775350009172071751767612286932208614982141065019124555040821428170801851682521200156120634813594732998500943865101020990144161965288943807080329625798696567014545919726516707076916963107283334785792914459975764893418087191144615068607249045477541137521642702481828793871457015743482459648570837902805917643295095813211312093773065312077538890913587664258232560868493486749923016833782554468276371142879729421158091947989486561686945943281417215417878657748656930698495492680583088807071311643310368542741422184033133755143940452494879163399145856534354209135634720077228705230634137720248611658028200783480191240808934168345366462453256809184567202633514932618051895395265775670555124580781338682174379170818695896618085432510205057825134555949210745004002953360091239563292769448836367462785702383089793747585557527076063344718353462194198736750688190987248794774416569289942331721269287963838263460949333892834620997005906915781045167409125139283176749622185792114511914290480942670121754446963155478310644067356556871675652535185573014314946738370390995218105087006553543311451369515113901411747997528099197645588624902168963853040429720983047499816271894211109051878928321026209499121772994241340010817698197941801718237485760112798592296657776620781910280526995844045308427180667256771430896953673729376630718817637249774658689077988902048128384487903209421397120669253235132565102492867382090656332609302273767199305217379502356155277488008486986936171752406495759302769185189431013950667689417138626815284578669531902421866383950182259910138734137548388005692488491744888469190376926748967829809371252067787963105101519257587026726978529287789052192046253926649847323330877573109750161706712074374772380203152703972549744685878365250136480083147491447147895442449860909903520241761483755298851420205756300944838129272487430375753342718704199259566474721745347021490446976266521320413784914658015475260532225844112552817895267099109623668513107986226431436948071339186897282647111872200664624047476569932550885050357106663104993364134832263827226338128397551637730489760709133846275689602681870102739793177848038665348909824660417152014845176803078171396425324188002544852171583894845633598467070908620942530664608482282626790636648905616044599539554857744019907713227716813304187786979174234023641303590106566584326139779219854974903504178854669995281505342825381693577204070589657822754854034059847000967716769652884527560131635104230205865621104326155502218948567070022135583766258384337017702208261099744685260606839822327777557720522468173060039082338451973625366475153354221018421430077280420611090975286058517797509039285121343284905908551940679384723387502310328508226787951564807190381793623526203506696169614099467599468822390003059063924311009669829148129223247116924142317755953302810304289089524271322094189094135485902371164218324864943716895450246966263501745071307597067604592930059603687533340737448497607813448494654649994684647314329426452666618974935557052023306958811300671326939755844922031537834756197743078121086294404133601528130082793198889981506854893980098922619979261973444304443706331802786253447582687733530039556307023699277349183291273258604619392193374341741468848423188819559939340127340929081550380741953114356080946527122374040390498511015828443532734734294446500475256018265846585711538155472125328664893990183647354180840895995703601242036351134419136172094801576099649654009711537008798883656426653145010786764036387976477169197535869019431202460254931869813843307176853726443024677229048442013370144664164464012944077448582922055384756915180278121960847791678688962716925631541689902811922035040022786141682029625262769256211193963170933561689065867086143275381888789806984508980388318962613531059423431572000840816655300689997104715795412597010385321958151941436283223435095515624798124735544505681890932146450288532813636329317911732945503935730750869471538558220616442282422963532897639232616835352372354240560238336602078695239882478204902983516047997193584557338822670805880126376639058115001628128441579369505686553298646087894773150119089056972830726558686430316448177535055397215127689881903907154838315946433548832724747915150855475424350500757829386667557662940334218504018956526144646992532964547428148517492098260879216959844863035583730712941528197562602654361417297332894208626926491117924319095297120581140771555418150991536807573068307547357015697986071985453080845482929906321255947565022050138352741914029956368582589894859678298602825073603827350571727948531314313908805642979928243660044336649174369184231534352227042589522704245771928841057307108208860453217799784935975878950715413770406301306927811332976553528642746774257157696184881333226486221182025004860339397972879863467508029339057653447443294391770429449593526342788718244174037860255869318222896690019546056579099783717014151004249020525891702394112668680597595179784350163961122825020183235825853864209248304826451377686578102373165992641057230408109251779971185037571837028308402091389480817713626335494134478276705415909859249702103922486376250127415843443666046461559211873216268236010272481082437301288880953682773476639060684094082978407944949323390957432325716107332829581297277674524499055546021720652161373547170746157542006744587456760239992333246075294746735742724483134381816499489752972278685159237764296084417849838839805256552954512260638352263344167173586277420928235895459228207166377840081073296216831332963332116690216126367888822029707145568282373259774401138276138815448976677506657229346811991370218076310188506597807750587826862564294956102759302052655232245875632024134285196894877862069849871606307956576799519165009499872222504263090184327911213071733842027439492283817391261049311830301248052290313599182770732003641805062964478159849164960826957706295400356899900906857199439166035471022855605290323832997223483128206969169597834595813742551069370172807696150787124565081000337257366746468873785729642375896803411776981363503099844602479721947051565091539456671597878894310601463531995770769490644071642648951763932259828008246213417721659831429493008766708406566796928077968445055532879341398546372258925283764067641798787562416013389080684791082174817640553006032833987985575352428305013356659474735930872765355111906363683230165954866968599423726266241338425766117830799043958989662764971901262589182392942458769106295700756706617380024244105921897833483560676325719145865061234119987864604753278659364361099181825694831518914818016096970555734348305327827174250659994086128869325669337038651887433213192010560326631909329619651811680416328114895404213081861986201821738170648164604351732172364436978294978900881852469307288180851729666652868145995640213699750690499871386723119992461776243192750525994952732645134349041840504957704220330037725255147103237462225156427789787670792344579656893502768932008638284709357990900412024406325282076725995489218557598444821742739194384206323206661373115084490940068485259888221716275921534034201434707489908494484585355342646710742758142156404618785162928590238466109320318284081761908125772951641781439208440986232525046991052199290516494567127247115188895776802122228689217259637235482101763136727054190453637875660771046919571030609926387604720766958788435183763575582421364173644315609978566204339435978001276711844302676225008303052254659677159531651774534513822016968451134781988599188662121698427241313150399023355093906526618733389457501481060256479317379664328516573674384591797121573789883535792545264586874330209706402252756635280708145509157456277477067105289196634549023216909231683597238350623131303176725543418972999802155509364979189538950656109619634146618929738098809178457932673682145499458130075388985229917915417728794067030162892117363233197386541000230027835908863486662496344301980283364348885424402490513621404924397345770280462197253890118700632600994087058822406540966657623428193782338663795033086028645510260592372304567726512954333629563800879180851003327021142634229766653878351927834121027369347760520794758169732770787499953630417623920221246191165206752653399433129159230133381373972953084392743318817962621018592444360382234902616947803984480804451030265603705174080293062719309693970549349837188101068057380930294349756786648577325597105160218564242158462269696287110707211905680629812776773135974213180796203365516990414929404675239822133146605705340523382346649707205352780907933581506710699347260396961179825572298987863474297486520201658184276104240034746654643580374636915285868801503422978370932053927427177304446077617632841380356351108598245343337501095995565749969797505823553572953983367570498452781921681247212577439743999565963280118907830673315942877235981373178714553640669192583910031176966490149130638766471197734053609629343990856218673084372724267463258785528517412663145108374676524011061217449048209575256674515216642267749055952203661011756082818422616044425965533733250470970068549297761743547248426653908618618980596571181234020054988338510750097749112737776715948409464826932453910376607476400136624312240171282678625605566602088533545830067217152399650791939717972795955176747441612147356427295628609653980765485340517200603397636767453573940475416937080860561118856423147766631160455426352749874210531525364786819516242348074066219215632886782218895879482724313224839715534215164719093772086574902737549044762298301571343491725750807613260978136994019325194955927219633190878193820399529178417851657553823381104593470340894561788119739505101552329646522988624626613494778325140591822484753931256305098432990270092070751279056257287523152268355462819000340903750981224603941173638252897513456027726590679801406521514548107261665645737114462876301356005912272921170105094710514947851273803379610450745860431663930722708473335959177663913992044494431209379364585980605417441340370051566546198034775293340144832549731232275975487532899046423086074042594624613004254359153461587300894275614655087638868138372457019351330363986091078424379589917689873549318652895384941428381722600173050069971873047281657027478971562504851160880032856013810228878927351014635931392127391195051014897109473175276107494878334705742576240196117247035633098597068756134498147439081763112384577586040713737521199016708946353439169464022665635614094223270422052424130630472049064541305325269917217461216131229549962725977396279343335016940316006551404231565172558333896604734889561946872968774919350316480791576095726049947549854672027120463914958217079367977462846145341231254930948849915116934653900910133959962320700630667209618635062292037845422825396253103922622355943934513929880086564374513403550905561746300196663266332767121282777926633036075037909890922560779277287562664287486254199899149762935558716344047742479419111114768327352392976485128829253765489561768194069310535906565492362834033669604131739527826255972866629119184054904377043964650283799012988809573111280485506659576665043743579247348506438624432872886151820587330655572716020155685931945410315488543654182125297953632138578436534825423390840066276382462368358123034168940751690464218207348445518139231099220762096034556478984712402268618211591247813059088978115609980544137730523097555854124120137768627125391177294362828470288046233225333382054230926318415398369054746283471423793581459346505634545189779857381000116279473534296687865082243681938927711263018961552320822255145537078372964997401546790171002839415247614477891263665781731544237552563142186680160649956491980249630647440107978439252101818973859067038905734194388224751084109130927299059315384634913772479332478326281239626726257301172394220912357630627172736209830412981806954510127927157205450907315784866728681544628757685817414480583450797195531092972819681043428708494132465558381357580452925689080461936047365852773921733821717155821410032215598270942254484231252626929626554133892817543730623912095861823469820016409998819007002650320330926767887029556251322596213589738698009395237302256925620203693548570868779808929734594658045609527363205908821388347818233215150444964458092249400923915341164292066303350457616948932581596677011053004610639491013005293044696707168924295104022412039717337288872090645206105340108609183037696419359539113490177553871491612026311542073425235333224691328239850175526422643288233634349587668581064373124678677719325925998304340932477245196701361994881935967421165219898553198615450423407860023348653633552797136310393601516298838038892014862396742510251656483720050777295237725921728310412806622712247471768005133679373120445749805461344211486484543000377444340141442258998161470109181447028214127111466692091740330218225813307654368871252004789156785274800647788965292804455468608782480543820085377882641794582196286772379624127949947707085022208504374013144895443474669696620452587850117701927040222934088568596226601828702335462689331396657483636926906378992874716185297729149456039539468396080895131135899472520019126176971237507506759368425546447685812543797274358226396996542372719792073091815543269227068755892911890871603804648784033943831356557858605992611330865813040643235324679495945251240239116207143220962307812250390204191207536362775038239003460567271889350295551180351159952293295899218237230168304853594434358586144315481062608866950506950554765535963105545994615487313815087668529945518061389266299354425021431478058916405932772126104259268076467730024962002329650060563340812408952751179003477195888284677451241801609932919814077507897152934282773227082358400889473788612675292874821560461947845013625925262393623501167963063053774443715813533483387147491865896032083592366427652901378701596903852837100303014169186054970079369038419780466563383099770412556639630606689820498804760949894036777421530210527715923034155370505930380706359833388704850827129948342789921818114343953613954163115136806131153737871903804345533389021964469616584089548895681481829167994463609710220027798018640769723743768068074121188325829358324894420932213207376192308373886699011469772181874301722994543700846956451816719115587295655788220933812085367882659895830432174267395888362102452094061191503747770932207714714988633211091267556582404621813284327555002320809648407033491442390994242325366592495289739900152009646600056204714390796729424170875372786066725461990622139876195818458242948637581916527756606540474143601370208191878167162067394553973521163363221668624784703617665200820203294580152880531290921431422669220194341998420801975601084800839495757961721538062674906860580073118644121808841812090870900675969218774199226400856611605887258273447601733769942684119431785788671806405338453904213478342755484045387575509833455541416168637031777969063941794275365245167667511763876154748934388004354199598268432406457064472010054562834622333685602076668465327878966198574199805774307225320961360572899163459718902264031798397184686211468378669453706580598172530095922340633604321328297087931829878702485144647134061251796772419390204221129957988851828013267668272254938475811327586135552702453300168545098622299018186494166216412451856732542235719160328717521863023312636037187977773970913140771691166888946518926072449082608987465981432588971823312920817282644494605091497862592035371283334346769954088018242347575018447820548087524906291985072492696118720172649605790385657847027140940878115067442365174765732001013097574916806133704260939826708071183787475540510161723658237334455967947270090289591148059331303202442564082790260635961639325808675499946193286688225865712603949426230404181128649223197386295563481201906315861226274996415081031787071751544256509341445904468584371510213353656137616735314881289858079932039230412527314926436168755953598321453727330875196201360973377025502977917626142434913549988799195156432308061824242243356186910402263332224410880444843679038509394173408585213460274429190778069377345935669524259966907994950690940295375962810314101155928091181397410177004993777032051444836321520467537357819224529312621978379015725787373147922808249613319081962681576460164517758001644369006703637963685913036965386863366587339211824065343733772698031085347753514936239577867456325006876242424985081142313215078328959466427525536614624560185179237683310495244951060441628138298500096836542915450239992509072050324875520929228014979157631442435409093927701857507540464637318506978229869197479703891178117925536208322925313034953232741438645172134160902384337569589461323392953267769955482543683764340982037384194402494994703313374973539300313986985794827912704535501748926611547141224677745226141249392621612702125192077060316204325585954667502608453877748425577387031135401318483277482870496638012739398731542113402522208824190992287723782777052679045605941751529312670143867531806873495172413603807960270694881082516345084673472941621555962130934363600340659440563860763367597116263129066281916444347890154394073640692710180522026326521325036744942190070730129780892471279653928236280897213536571068301817218293668676738931737038583405647581382782097448470486190706352653156486851599895090065748047245976173217779177213736084863962219722715162520889862063974913302135480140252379045695305852687640849813566249992580768899645301965236405636151846318906530730457335442426924907830007246866000309496825510255084271029671297619564416372121851624418380390111529157288925208372702575641990732827492269674214000141327542651995759216113634725304734359172930433862142877084510823003728178035812948176833662951551392370250191904726417953919763030838328436558534065846002390324677027034812595901630565088652958127622107113600439839850704500964880177524790377209428024945327985335298987082744137346094911337114231232265493852355326719994793932360448748755901455205380308258935827590789879374169944976238609665013142606447229625245431464906945210040978302713706924010096235974626375019256713503275544991878943167924149484210213910083105591016261219092153790173848153360452455727792341179203050469879578512326578567079999859668089486851271612358648704451371795269180096889922723851299763564867266563495118341991803902828842216083990180915538739530975365773289995016626557919206313724621769349729682071363459833660246929991840742522543689040236952351231817605983029453336473406114518832992002914436720531111067190463651882333061466986826795317861802255445571554230342483496832395871425465869377702604791956158678427130263618835218212254019895527614625788494630492681827991026310365332321634204767180791940783075779742975748617050862054028247647286377690110906809996189855001215638870616262276890717744706802374267212248067450771542095437304625695479809400067277795512753756520251537752208187110328112498322403388796049942386316852786445185695687008643662067267955746964129174064315868061596181948989152746737827690701800610173071948557968283997938937395144252005693335450398245951003266743395444312649395515618458914407331654869123309643918880883759589762325083551790680992094357123372176427975233023855980877773025898658460480411276683436858432896319796018593695521287226075815492102747030059866600436244568415773094084638906637880414749333181237242433961700098453843991218169195549996298539359867669824405315306738157334311414468698865182408256249159801464816435284143484905097919499744278260207014407907678125655899384846917719146363956896758414124496617744546903367667813937974656395659607820407974090389089200968630716324014547422363000661631528870873084142147659242567564374563440127163295790674312025002344344541968553086963221891768983914865879024873288677415834766669230693358223345322534662428893745401843535402452922457683442359798324402395364608916149475092352030111605473495246280878125390652633099518949229509652702281029694888877328253846269338517789131421224958818828894181193815817984071292252492515499989251795171178754335411292458052706250502091275355406530910412007686114951535601671908761126786462117394581981860159801151273725924650050759481645552580394735405052298752314621489735455895665435772556123241601709770005465059906945138158439007084298556653327721339601481681783824987035058171731130310408440377481199667865155007370286767503282768488741694329517865492484702731507316838750971991558735609742672958260432589035469212232877088948772721523010628335077882600353290070857305228963014168316635775803675701880344180123523582227089605458742544840919014166641817053787027804993277874349335090700634324879463070767843230810701077258260855575624204876140252893478580510855081429403749311613882830928925035185267554113344976422116770193029419411885678638817271778078994780360962783582729473271621106408473750455320371750548211712161813112357548630994956057937103464993680651742150796077752239089426360335348409115523781592845286255389181208515432944547447329279450936137338316062231218862044934733835326849343092513608849498500640541689739551177617096746513165523868817434320378853150003630480745696540283846711737961700746810498972311622430600889989641064914984666011611936293781298202415115533549255657734765377548445451956768419003045617259566738666491778709107119358946908636093050832445851392951806895091469666914446022839967005867049965045202774767107022970303910922017062970558110813011562193468746147760241342163023250928627206754298516811608340123878127190656482710844792685170034841360198678839037163932826074483206799258481217213148140752228551948403008132380473948066926423232162423015017460292882455519503798049734547524314498671351401095306406096969092876686878335558377355842897958058492612570502524395076711620047651921890644610926838672486112542897019777173273651973244481174811470298725195468564030317676118670795527412655680496929535812598161075391864478495408343979126609397831993069233480261571662396481633306126185430072437268428652646055794906363472124659266502951449652402142320410586983371350651099929000095011959371059476465551637189981552133578759874967146513941822925280509258913334788220816992771813504681614473112609078710336899100930555458110809260387105593885584837913986687848549878369146246034395690183068376912655540742349622668917208452156103031297008633399178945548001117602200816258247206335307597431212476924174855788094610951488141640694228037481339034934499779905792882848192016540149199247360536027412121581047807239517466594656580367745847183442855543133160255892815409598460731515991257334386173676093696573552923586240342412715376028828797035631011708581568046280831048219217946570081300395561388955835263184058774157131315292384806306919436421383002964604351426451226374303725987548125953344232632109805327008000038232505921267826840602934612607019622829793697314608332748678053070666335807110521622362054592644031430625518429558381425758765861483496494249379074572231305980426316151122889340538097826157179518675268616861338380801353989350664285270720866438066903516185383308102627922726823324896080173355521011122351508715389238313570022147050341080668639316067045299758762055345992916432527870555516151508109207965907573213182444270955477851755887522345067190061029245741059520719443184485721175560180101036177676197963858512337272052435189367800366706963655048873628010213234513374883075074643788731503467216511797088375372061589848683320928444271711846295840674043576135145361837558645288181667834984749690003891986129225293500297751913771761543987598004923328602878850036495963292503446631784777229018914333845311359347039000454483480340552452358214943191413665624368490902821733786195316894715668127805151665987269086667507522520930818806727402041588074689514997778748837974358235932585893020543803051556711614426316830917119250170309273509607157081896558064913180899052006849986121908263059891367013542282876233531853874506985122037248219142014620407401756438525594701008632219527518209786488253737992138932906077899855410791270666259904370413361348625716037216940678893409196105456370792382095118049298140324046036398755836289994421778571522274684493785351581885205152652823944055655041462880591162624978665825803181404513140558105230438455270915280471638582350398286155204922784168086809580217523230789424878860849879145692267713141060679032074834878877842232441400455222411701064759839278879266229793338686219184834671272472493061899868398962039066377723041219420997012849015862002407350706641547720971393346818068146383161442277502217394811973945483622499587871493593651126077085992341939326057028753818400026207427319904404579331184031539984168877881020584656578735839901870474842521418648704070552367847081890741940188979890371788087426041295273343585456527694407304949706298327277733276798161023952415011766851122687532162517181408720307019198238332610788281678076494175344189431582925463988334176978981460128932242943849066140279019635319036638218702864379290533883254033987928568966278664285750346993557627386334415009353827236930670573854476517253794061345061733049124215145129403507062198965052645723122252693660735769561876371390844099047677052648097239675895676501367538452750054069035846570197838042435716969031146288279239079332356795951970804628660765748191288472241992956983983166902291775661536304354352749486563705451497948942172428552327282355595121001507572552079617432039088965084447713202858372629406027398664881082968535337518367807415460428459290171263446992301332996081903371666128353714348778043766480309567442344236313424760217361313711855006312041741413045974656580589218175458293902859057073850658447654359145727382744649657254681460895304215605715461076184749935831253148691582995631476000894940331381472223061984091558354781326224285040322734559190604847788206578524166608230886350133354364386684030897106371745219676531027736100140558238045531692278911266211703865929706764042013284649296774606045803924968563858500048357981001009565842117245984732256131068305007251382065329551248953931877379474482301865824157462175127921542089136833851541558649292051602902289377329781941343498205134365081932679189262279143431948077634552468768832959544890454380422513158844479075205705042655547667237094366000684991287182508934444459465706959062054199642206721853768274807247976075789592062261755580193780809805583580169350539982289426147774163796540934596235292827235252254660911307868917371269281508709988096613600025277153552534261935738601340009577333420986276759707475279684746013926041434428940726540968360256721400438502110071668948472627755730063228994150507508044429208308330385416692696093259699445059650920229676241454835150032091382080253666214286076177804943958964212834378714279382176532097323638755370191042411663458294091144619479107299125181422900573429808551644971574173828999536126340033358014953181689707372123819712082333413021751924838694663916623242108234413961474682423303891869751426863575485292393749495884472093454732274852661624102345269312753675749488263853619715206414825888377544338805220267645264032355346744764736326142755458983189595209065455739856947367232249889738928441253727035732089112105972121579771771142619233020157488399325921511897269014471380558120536540292911853498897659829011933782894584515299003205442815535571917618814881112862741772316072240618792209291835488041576237419299565042059291290390224198917497912093229518204347171220778783980753928513208468642167615173982076326925382110217515540789746935872232386217424191707471484595789692744253291304818827134954498572658727883558701864223329034964586020127437536773210743583583509210333109812084816702712443919731760725188172398487651894012420781408727998753748397184931512388230660046216373083889377363800144634856370499182368667977363642297997839819684414899955121980041865598003106733988100720907927585815302045545135098377424845212616748554634061688876508085571116749515394224965193528805730719395530071741107731567996491722324423142815863334530550448443036992547155596845863702137591215069781431230480631917090561650112594360169911667760707940814249763118609031781187033223259321479043629681109969942374807659344716208704705228461101903619833451115086423697767273332914233328639794713249280688683096181597317042463019363465063382493119624538163073230790479169048270601175557518943356621120267307793948191217402829805366723954202879876736274578862156145902761081949900941452509952084765386982794160698342806320761996098896029513975920928979891795774986405076935656234124289922957668275531254962573200158027216856261459103077882523401301643588539683536388987055975686578383596181548844799740173449614333004944762916658492473584333627452501746582924012861399264546978447769540169227072298543202209133859793423468573847510588858785319658201409116389467308232029165785766240588748652516526921786222562383614053522275620239019353373918979555475094427928046143143422251737067677917610344936084529309438562381355237013458150991428652189142533459037510631770955039622272270819768077323885366599905293212220215418670178873726845552632631197131372536551866866035023625531475894632264548462020069990828588336736921176182474633864639084908921952648047272605209942857877397596639885292674198609087643447507919405802372201331090117048532265568079637677681108632577598412688037628882176210706906203650914833492090460972978369014039076840977301256357744078685753338490458053823203599469965915864303604841225020553706053464414979933864242866568330637759017026554772527214445797572979664092692283062540377123709373383720597294273800455088851125792584214518657563750223561294982230993517643316818613356207904137336660585799154396791996595029993737751327312925061861362577798601518497699831910338697457894706602507598392452061016354215226056346653655418359840925991469950666864716430989504717086033211618199349821964797012541867947751971776540506378464477872554194907402784629904600909004471332044656427734615750193856843466370382671671562501708200240881984302310084848255048611730486848568998227906281284258859671016492599105745612770209381936733685882933278236753536532859608105554031007721502675018029845649619590339419312079608819887385162467395334425758868924482920593150174868507678887673407419851723816097417282690708998755263901192048122757789144084305640385578557113055034043573466976261754248821669977228847599050375073654414917181138120834182408648243578012664409924043080640616050587888972025831862082194242922582586945034879041890740392438342492142377928331126287092066083629196363527222091415328075894680285839398053586219915395443680269560375550444952593120988107816144370668871989533975527620716526701902230036956574400879551710390560625152847900363420373275224493175252851091900409539119785213104164329877069164509202203289334975309543490721892135701551390061238197703961370526882043974662429121064007448752445560794504973054999273469177900603758836109474700470454256637419672445456579299674741544111228355793755671593860792750115858142802870084192466773408476691115156745617481414799455411445942975691250077415842959108132146951713632148418834035976867567395792812958849705574958549721862580349975438822065690387955716684171563604503140526087697227246599658063446048569235450042062745305518074947338801091779951692271049660068068871197203084902561764804938759924768426649132343502577741122917650816951987208947455276301717012260055695792217462558474022940597084853214574066803073589796321069611684733751620445979649402529966966700027002632299574826074236243040356823582216429199853154345382648812250596953722128994027318611625100768186147181961212163790640448208200868944777661643792845333073470466402234925838209065525099219533760764382660390561305634228428178053368908162058072318954220084709798781302303513663855293672768793326317468929019190978540131234798298342723991143983016936080664986729548542635049449471588599936131292919258740136232805180044399909704379542624409003807034338894942282946122001774650004987002868607578821877697886451500753875877442755635971135575891746038965888070171963492254178452731012483889073541327744704012819489403198885876622013267680638664798252564481883439349224133667079618374909851552776559109977057532302305633706189201268119375965210374195539128202742258268014015273386481672814591477869519055810320607736745245399436599127270557820308362465214232215518615814787468041112378425919477747235975112277700266711256339318023679037243801327506046446693859911174012262475009522741295845781377780599133249025775745856763829374428191922404998409741346189900549536725723255611198849600342999366939911177470061480917492994240151864418719786241232549442791501282280351768789268524716124827758676720349542873079824995423185197017609810775577099381118613144863738575091332162053512761518352022196099585007493094641076504311259797265329198772684368357297305621843701414744527357275353150722246091644272341764574132711265504315953086034125970967812115083386424129241662316135326861759920127393985050797728163013994355249938816075222554812302378726929710422157875014515011295208060714945245771259701507548051157310620777815218453934429005183885771665161398506795115252515725207346331357679892491368632823995041273207642178923869274688409981265789352855425439713935017545354938472870913427493555025955730005637981199018640905230672966610026448931115875740689302032856373656160823103187135275271998312762601800326751928670232896285625069485127675233570717503063480119543844388662240698435504702463227671616602497754434694142963419687041600363185551705723667624823372017115509200321926274486675198346480596556055887249774674134863151291235890212210746523414136772705469741596749722880151500895186300436357275221748494500402539073058645598626230475219767291981119222996490850886025974274991556202244327979091811929492334040307814711836522280787184521795465979445533080447207559384203004563576542558065266540496884276898650454464677399062384348924980865707683832001580760230707597244004096079215797270591149982310019944174756402639662041881735122539086642651203957525404768827860240848713940930252883329041526053713242827063968289962899391100763933297764202803037582425882204482779068667511724560306118567323154714977770003543695698575209913127987511315456306501134350326263098228177698037385593743920097460331654415475906773495691560565432910014081469823951686438927306654470120925039962130621541567339627561044627970427817385342702171921153001423754709634564383220671833423139296813759163040409611859282559798348888952832920520985372513881642969105133626565244490226761166303665872238636524423946939727283900792711528679555258621064039327324067620416856509618644041544983645601063160995099979702335383145327318389139877545154718777513586202151324818671739017306879819494865303356951439772251008094394745746831836574516989846839948149117560643989839744341092536367258174668791985042539319483915944075699552998739935771901574409773005193392888288976154157535855786963407364452080287609143290216460075978613964344493196602559335613683887884771334010836503644708961958987876117948379497900126590792045014219786558604096277295164408037030956045078763505528476305129359815592106688982156855314936937511600340232614594573734417391912574996372885746961748279824210773323927423190740379485538517634093130034576204828990920391447196467894858549252173407252817999458973688479984508545149798601675200631111137916181045994461088207857952580353019006250761678818889513491310455688891807510833665793968316396191493621555393362014234203737143244657711396922250489379180410811667063764856486849477627228537544892498114204815253049880563303417696622647490238455774279934170899318450266694546436429711621910161595035631514964060725527949599812427404341046196402712494802556847598025909368955765888767655605212711833030098631539065458036154273545814783029104275012433896969414304980372586704273463061127190199121001286999835129844805509545364595002185192530762084291127661980708936920645356583540977618429138665931021706771873782300342072638854087511200305093822830528362544509349480444507663222339279272154632710365151779739541269864127451743110452587953619899065907470282749494130602886398980246167066133404927663074661609663748047966679559121382072360259489327504144080736329680882610041087012691329314729727066871803169569595859288049295238381556022487141348137841803908931148397504629698651960836890135314724329174768026511300708108770429371016311429310348460338401597646413431497648093906648872681196918297655163023359412271377388111029502605149279307461059289786057512962818657967762921693985108179117956650358920222794470425389075373871272798031926011733431799071012838182445011704562442097534947379435297576421517502629531560581453009707072350788889746004481519180949061217142716955136308967293873859559301616930695527320580126482722910505148317915086801749126159775555089362336253493315247631628299007060612416965984502086021498222307179903865154233313706373715660649093826867766633154361340534176105958959533844439063855018402073953972755329362778495567634928532461585180692844084145885384650369738120190683848943018701550638785396718828129058412307397117266800570544620800917053938107415067045804880738595388411096031452492811949995172998670711097841318121595249798772473848814852292482246695852056092728360590744246166070736406365407110066629082715292017482523222339757890971953331167127747009319694938474045108223408229874638687385451549114461318216828901203008816972764038074169962818637016188063297635376816925977677634782234546161121559295211422010062196904686356272219172058282769434716797259209163646365753566466380297055057203649123407614839421231602209879787655129512302446133175865460395054250250520340248913261543840493764568359853771395236197754820308624484914691941337325322439599084215463077833913190030020184390121108766743829069578806206772976670145315290950197016418020404517452416916882122236312724253201991169200111491082738803545347655578883033481970862202468565239146591384740154148571273340031308047472798541940972700420885419793262861609114941313343573941089758931133233476256679781770681197124703271584180039195017881385289057720631169386957796203166090336263603998428207768534777125490409527336010161280837608257165874795816427073254077094868027550721409231940598440948142497986425324364934408305085620649324352919756141895888188789485643899600460445284674490532430894770853335445142613234250703254070502823696570791606708546545115914646360659996518357141432822723369487714731512898295383176921035542789480205621471646372646036096081029231376874778457469292934258214468672724582842403197161219815912021106330206948230873778451273952280053264021793198779130305517865292341900572058320074894568962766493261203847486974291778478463799678993337404947343699363546032504417928216168765154677421103766047050848923598698443953236794470497875678610462971744077535877467215100660213122329412760978873355319224329323887022493754458822968481429491380013404001871378753708525746833902509422943454112508052832412264555802266987188336954249528855657840793828970742713315064440203384902151509750340377626416158792994703280242131410134860290757026192906100618846949496896015165341652018210764668683611536505375658792276612415163576698716660830923023635347248136361093671184180141456225068218606391425655588386458700807341088488563468534401922699180998636627529295695814625217644046082645030075894616319551446410703101118694905338319181818169650250389760508924453229040513567906078574346123055013609564491210841992143088837261548603566080759727508217021066372453970680286500594130543135831086084696541494628908119947315390560335557400712987005390583795417500496081409870482430458920645438515917145218631797304283147102516448606019036686467904941975627884037339489779193573924997299055009234224836226252095449553373496232703756616066277827150732701040236697741028874668775046335570555731124269860502781600295789402735015039918441651660599097377365454798848597509927043707961233533389523310789202410696282647659912164227313192109719823742221936101242518339342229721728853963266602134961919165992617427775264912550732122859743151309175424022597719457964241140987777916450531356227858922329288816026438672126466512832313918329375542523994961234909287290145132567476690941794097170154826004130378627984040304040495578839708791857069256934480281988300109146759875252856164083691122468861182116611270424909033679835631098954109499969818545343072381905214638899011315631787687136708975498871774328006838563612847492515022398480070076932458862755841354637511872507701707255027697256397201675275806233304039673341463899455991804990088679531097560417703691689709540573692092446799600768246883584378632358337269095671409743087778864975564202313183154175516971238521110016164689583569754895045474404325113131726437788985451925027480383093299602326552232772147415778104964659304975978761191375580727967204862308661946326205404244886788074693620545497799275501305292388953530338824568600456909988067334621792829972924922787917218184326866760379089552555119126534346981024092470379445235293621921015291634076631261611445469117424429429847133655244553004791624924934489342627210976442304445135409279364262723036364105317509639611442318778824998852253842460253394567053770084677520371667777500428605740376088116527866803018845793234007074940418241458857151280165003905174501318954859814421297716920713286124291158665575509549359318505348034755942112532154716163283343715898412035466632552868022738296695988808620450150320718234501478030055679504416483115248690191382791981627006944542135161716195228997824802945911724663669905597601796215407783753264524418051272142360721910830557601284583247078783952401804203181079133364445176892960562072007817989051426767123453411661143778493262664707211530902911467039322461381605795722430421603217425989195332675890374833664271182198962692398727934264587751530725035043096560837856646134052718836799293326898120116711522573397616255367159750427182199988676290188368554678695734733336070949807696405433590340057856294193589892683957030360503869823221675606171397909121874095292148445114794513625249606573154231926234256215669125779526568434037664215782363693925454427175028721404164064234481586295927738356045387486673092819423844525935324528536512442599718501203133877215282474041495083396133260618650041142458222559118947595264073543616752628404595684959536410269836024622791692521575712664343200791373106110292266850168184888265402497569581188662929513709593938554682584488994656770321527561255511363908854892059342464723907207633557615517695183980601409552424485051313335312306726007978930640542740294150940915253899888480845984983487797259069830027150720283780279374222511228122497930554456842542984229085957732875072237861201446381327673798967336086902477668085736420048426708238371030560309026537002536757018314695384516879250239019550959162247127127997420459413477137309627395039502717606042161588187520215694734329777812798584071846940089906286132763734798955274786889279444123451700240318129824867827896071685150075818957502695384278511474952720767124757654439769076804357887135723247330359636724318282652873656305253959606969815287271455103609841953054738153442172709038205300946859257956682485315164596497575231427938279056121764398800778826945629361792233531114543038811370668888125594592083056772327698590446690305530866662742300813958427644170729556455511006175737676450631935852191155056881383610300923276404208743424727481923262801483555145160129272861807570701439209713700731223256484581685207211714996358294785180238989674931824944213126088393467535850864431064371369945504981292473759356190984730844275764428695850533827314203375997036531329524500613885759960755956501720852127891158670352596022869943938204089472490162443588113694328262866084593029749685076054215913199511078630583981458893929130284913285157285640214851403171520302340026678174791505520033991584428073780425392452329924362682055843789391093900413962201290237739434541596069930941095117336625088816808518982971382591223699191153394912939828114283292899416943988621176874917449273545757877432449911442262984405108412344541310798171598256132315046038653784488983918238438398359830318990097732436606826357373515655603184199643898365481561040586664304006264049586673634022886192707585677269002500470245415599151551739625499739024701339279590457357605312171762493337661064233623922388658462040954237837474245177297449236565587566325259456010570418108630388810078194610132215356837710168558062480482944816603395883940436611708238060711368449193777722722611205084148194666181920108567821944303326502252514444844923237481353636182453960007375330580734385308410478093373509233329441302333180631862588306927714622047028071577760991977803047532054283798726966153719860786697335646203002244341202669475560564356384133850780618111435663778644957036504708112632770447464637600697127892356713290968333403424709560580360204331120349077999856396309913149044679966383090796771866101998497101156982543285978540969202063443277826289787789832130195007075102005712005417962043312295035242834842016226691185223223910445724540947457343636617348373169448690757352910120195564400423655703735932174455018349286036956921111972940759056216886884977263800436039696641700605036579719742859211841761700149339606928623183271929558423083357173863631382490116972422571045289697407896120400898767647574866902818817659146671323123133037442013471165884361629024879557638971455854156591840178779358531086099513693799510297697188534140102981278429367750173306932879755566418962971046852824059726067760425775122740424713720838706584369221080523887527842092323042062486603392628144872665386436194748926018933597670120495364463995816592085006971343412661707925225997658902484352633861084882628218934183393096504191480971674820427969558990332310878854419849561125539827122024882495427298986765169610359894354572939626813243814050308046847355367297285942788566750280068115143568449715641460874149982367050858927881647612284761055440640005497426722714617403397634651452040028855814990811967435489744228073344787368152734256034353071207938309581401599599429067047255649174748109431088813850338786974759903397391691558336193448460659148665849023562785332622060173285333919122916326249840650500370289709965575983334046249791900562940911210997110246065571131472865905707731660354853928993856920533257686574266038503009332786476441751151193881692845612021645790826044564322169312156572947180672567875347202521306690876942906780119359655836236371371777148132281460833492145379124346038013109988213281348363366878267785024043355673281936080441838533538870548226832031365519520887465427399354254637590410550993338471206024233135583426995901132188688982922398735176441846282516902821540339878613790416930846785119876245852010876059506945216223553199770529783620624812110677147809476722165833761707367557072194497536746511719479187576460097057426707154309662109988459311419600046489547081367646293229824712134777517989141470975508165432432249476045599163221862489200441592997624442740731018735330704012210432185603974769939152624098313607509143268108351410040730385447535852774001449348114498685695142312668465004536534494162322538908722839669208245451864890776917003657246917908852028201041531363198039841779847070859945029815875632678052779593715981419366045770107716365995870389690047653800631563842192322986027671737071161099070917926737454415568514881996915967354115026416673512513174964312342727444250697130536999712579037860209215142827886372830028206847427083300066501259516721605330287050549196205085381509225014142083776637115157844911513830888785415602308511524124533838314145006236396356909568878939757543557404022169227259674775822376220997311808013068399156065653207685208891301488165549575652912125604112178932065702842462315177688278809365627862605804287571588914707661623242410520669161825196958759655098885476544494617253298050760126710362658564225151579538026621259749629148658652209258029281037182060281127822027099093818223287514892884448688001971239794494581102311306714461913635616343152240406910577288357610235850692396854257621625650130804597680971159679219871375506470594367060916384415720624393602349094847302408234814158302720734254145405402821200540027269672662444212431020438840648159270889266125582057339892955605265409596749430197613924412057207371365792865849696322844643335006821491711902285059526570856610876822129013696852498414779761765926198988288300720976077774348786879483437363217248896970970775214284678794122972269039159743198237273664344152364649781857274222247419922038755414974093864304087760703870771602770062843802580402986909561861254403381826382910306256294360832594928786594854558888337394686775840452948116138078993057176406349785179023998240725058540985381464860565046587120812874846349385082068709025630452481310055541328558295092482395898050692101093995441048908752375126313370274147458389022179187612960313684056894533278755906514344469809078251459900082636128161774494747720864580841732745850946400511823167004878591006712392999857844760827019097222436050174142933107741052525341528350788442669723901930899775477862982267136805796813105972915880727159696360072663747062163212350214641301301204954756011751121893641301033790168427705522222230748870375822112568788401773900251458632081377535924139047383069759830793432460487609867237772666256497831200521828607707302568416248930342815124664750569015365075416172624527194992683941555434922780838511482372497273160274677526453958083050112534168682731226637470354954779976455308888453532291876791007653630610355283000901918572239968328477985961610654507118197264229026712596765836447887107513124614782262107867451072579812199657467177106270463962466983943139475808597314416147981287172010789222788498504403071079060458452019179876558470465987711723527825137945477663303658193342704461446318959306658377374947997532892862493796101318289485999344946529246558252017922034959613770667502494221053612314617637444034716974461644423012974006597645381908840710541950556873884951730598072534255487237200857575325966639587011691877478553092479038028904065648305986911353869298831429428329488964212498936227280686892719894619040788187641708293153117604193218442600407755705283372861240878053559730955263365393229803527478463636606521353574123772902207707600067608571711915268033666736054173939824545759142131731943505611153356250467532105753067068113067034043995498303032662738198657792050539403313450662285465866308456853556684229880787237551852894568866731523002814938532366261000558659898234568289873756151134269776610143394750153340929131412556040605250911133614161121752663268795715488629635815676698407954959407924320105634530314294522520652846664759810672690423744731989691601300134448704320904407710625390026973330593562995623071476779249164443102925663199764986159755111563464088100525189907467007317394865733086987320646869660080283191282040404206982912824609233574862923068001405285046529705837481602130610659154699526272660442289881646601093973352691330433082773460322502639573489784728263275625593168622700277054196169695495809306896314944598301385369995109071872751242236178843781217845735673442900682659924494617985447690441746217508077806050603410397912611484764943434706646443587148003218136128921856050409271498462802676402809844482859544766475555524563647800493374488114612084695786193415137361973508674233472540203475306225813639813156758246455823151817321324730358025344090040857134950283328331916602098323849839475487863319044545580359303425177855921199606186095277555082311204827651234885192363519077849336681269212730047712654933626665725784303306399720508910761105616412038669284805414284742993628366722871312389533604534465458270140524749015118202076386103447750668081820254320469431890559200735596069149108141461885357236462650748749901829043476753242853231468062525031892655665498559434477904070268093059325107020674988676688822770209810561577765652090775524374093139856518409425768610583102690928127327811018609025362827497056829829978895234487850810161142264573450983716432997916070045554900504890434915391208989171717497719325164832982889948936862347637029344071373125537162434157853811735986950240686003559684899493344636019912089300133553452411601337414970432169488546391699784833262252891463326687632680257089704046728339417283604015010557089576174046809876728194482241981049610596773727609836982680487610902901297982888829329037802754423663520434142098019486188703836958599817778680356052108245505643525133904275843866253836945428328328756009209263859604442835197546409468579022122283309709817541307267617725311542369417418012382205097601671307138945122684720275868920407021533489739372601787668123471563137947656769902534090121453760585981533207164454685404374754642296122338848113807767686861715443475409800798272541313951955208203087332060376181029508562500136570290578114106140811655974745119429904563722744871118032765452271400165869008743485667741810662491434181160461748192204047204027897275958054384235110030161949540084612672350682040571891132700032656499958759910490750878540193815698033578049534839147660157580543677441700378030095746885819601396365832889717386186834882066425103253067867595054455727928392394002919947696868659138445280506326936311415196758083912026262004083180730284435307097908936269756114173231824021819164899247000029935208028879919261280783478917717998728610804634085785778777551767628449324512205671524264120543257158059010548865198148407883461742517471324086753721718645133134126791929633338153987063632604595403148098739117751089289630431176385419194876328908100263646271689479715802929352099439628152265982665455193515351218407403734039756433075464302379863852806083625100122839354357337304095929746259216292870708931113871463756149254566880470929803850938593284977770588910446745820473060519688328099451902744433463441168511269338110019892879498661643528612219377484031416028129021858288558779095496455059282986101483315875554773941711125700687969292419666351089464807246996451621186670711483560886837852470912640748130165156665470106979129201259812532764900188541035537634598957098000347804716729347196701736477134424682131032341807777268441277650710635448835109187984186325284645200008343384897249176346907844189643520429033893721625722530332063163974325504171583252351827460364790717902449419371954165059076591947172447163119940026301496032983055512821553314827146252037361718037938311952922272753863093774593171237329415105957063864438759913922347916784381396713887932915017042095467449887406468624721354805541626782812181729294287864654112231683695679793551450625054372692567319790136448614894666729754223409132944783982070846766067723811751452804914914226674259042688507144032958044500098589348881203116485546308554649617364546893683648166575379150580781628813921518415347544000559638689787457934226554813253812677486706225347603933402129208815687921316250257824320234281549773656212983204272483318820464212022780198379484521782087823269799695257805237830152761665536388822183650646057024551892177391905424946493884129592977704112502216687254878269781746183534375140638650287432161433205793988775000667260516561464968466012051141801238822436035635379354243808393446010403403340109551430001180452927143317668003267350662065980823658328719635925823975369919753164658169315723961350382098482868153372774683063135699786971966446339218348876253125647244083189042724879528574517467312482048749399720203278053016189234900893315528091126282558538583233974305100130559602445857089699721354873837683992638950993227340092143348551285019486909846302699357338759419097005244052279556348667160035819596139638461424827893831530783689864022175241889249780803671431182912364534364414481175854422732637600661268026349269173322527228946044446323372567066676346243602167838692579804898107379566650262324536305655664588084755634001438331069329164500014240599496991275415478347311671705193928448549610242810541113807817323191705957664339909420290170586839892164445816499205531434140306103511964443964874774791151086959753986383469423780032286549969717516256253514211997022376030890282816974213945832051454574139437936427359087194375746614727543941073657065038166000981250212413197986960250589700191944230556103111359115631308027923467367021489612886445347048020767446095353273651613413298312530719355784224693512295873750990489519524534677936368442798539206298643346602484517665253132766481263822997372493076453471961600303896130043005274610911619641150506755869507907781062001146841201071136079151463538447690447929806055236203227543181730890026316190596081037819581164084451984647211341895053700096544530623029796951937339070744403827101675045808581338069404446039060316528331224888328897939107666841431560616257910159503616683787647041326584366813931743750783829457791525872613135987603654435629335763632825820939156483812670229444245894704827488259049651273075696060333894572082978327973920565425555367673323225340638688126423072908841298731800051124457959488920025152306051611430325622659128594667088064018978058566243813636372932508503987981708841256736000057112128267775347824526258939258795034544086241301969532051381849180581566359354327243252963146779838378585525701057781973023734217025983945049878460133958276898749170829831756301213195192831970181610296747996618338119836153365748934179730968963330772813100257700951215964680905569939584761715845461710706297554283367342324158184858047472219489052421811776597798432868934894281085556141302387016235111425060311345727172334475773333528311266124768992910350566519012344588319602882798109581645522283137351139763161860676240989238634216322854158402851234226720250733964229437485890792563934197620502891240847749113728950691593054585229584472673514955172280068216417676441286297916553971440290744002842500380805814295680607800623901629889764868937579160723673447167438680824667426211062147147065949407350626331702906697715313731080830126408628520121723292146636103803313557041516601633716453154132933082397926241313684743865298995771017878416200646870737984870616411649292580715185172735155331956815262072640167692460149071905697673637518460415242734428931568904783782957991906103269625770976458404063158520347170920742341685243909079025226190558678187743372481450826745807126485519104124784133169531632001450464741045828639567778980379501168947556556464527548752718613546150327690511624816272941837514128573860419250597963994108325636839210528437129653955780187868059380732962592375084246618877543916396394377251590321353829462037334120607758442351494981248576103229449647864258553063540930356985972676669696556669682611059841247667674871032069859823184995107594333709090991520740016284428875915408268508743423837033257600952744165918424468115808478749759865240519665594909381634066870443114770236948433972705783517766277196099861235405068269106961023875034279273021777172503045373760219770878107376392747471814342494715578169436021311164514705875757527345158138110317306522092166616252193548958355658470012304048003979468033431812344290576184912275688730443062802985783902224961769325804650506807165529933045928998538264390857766019744579098467707453826825050106097739410111855123793656678404737603527661587224291173249832298429362157128959109092875767117125111682644988697965423729199378384763516592023086919440654649103682564055366802479718168556202375508532026898573320256653023765615483813746573547055415396095567307585426120360040792797284640553544287384337699852458355905855238913387658952930788710513948580319623508630623117487230543393397833250962071887297937369014285666307258877102351839966364462993307884151596210708000082704771610112752205794876611966402321537329103830872589368965243222741931526837468497354503526973102027086611863879263864204244602782605897985917553413287532103500096607600196352554137366355910968247605937398004351836892652922164810607796621998862057775275525877691235385729741277937194451047485934190565003762107703884711008176401875977040679914997978651321862505894031996530644158595595820118949732631040110482527540133359050127903986193441491984728008704407204499259690604448629604871439752218051627704008057578236995219534898117855808163052770991855882754363713790098639846811096648968036575798065818669463671595944527604184814770025748050995929433582310082697294458452680643118046971089381636318290832612063469115606004912848824122164647343249341785436377466841026536613587306778626414558758862690324086796246734140560368831124946403617222689054211253128825166190100658880269026426045401423750618449016450548056165260941930583298957678917595607592547434174596046118025714038539403996365293236947494606508610924393723625023399374228976767905355812220664551541551078093083596350353484071461365969400076682167194597320000010695697597296297636646709213030341888413000537627069916455235009813108314468249100704718948870414331330211949115084794999198186662753152076684577118415416611565218051841076230861669545360523805786840197951857670502146675517704644552261145579326479154501225915278457571611393383930161312579955465923741266943304765409543214754792644839814998714717223377253026333329555763655297251516013324763708651445669874284741433714995365106562278048713519693040713303321873565269475746311290209456102666663592701866538220226782150510236892142585234514095517108219557895874089671589715184233068906246538398836044700534193530564312971512285264971135857000370707728522031339637597274253370820458804524773740626086062509228708040995112767717750981858491155098594175398618779831820539645317456261646370608818329602387729016442235175037311752412937882889554188424996064688307569535059228077434211227812392233968511162879635103900051462563368790111308910145265220881827648709636396820371772655619362002054368650020798577642651915982487869582433143703145094460548239332073937143203908603660782162665442123010061034327896662384364380643976178682221871781980728721629131568839422651844640182843572661302114752011242690731551825697036197640051524383117614265807336196588339217837236446679706363509644795440863426404605906765996698488729806733039698246331109043139065263855987593831611024012520574457761334072548136769994671629433635093445274700946694583156033382794441593477749529755131035507162760369771410944290133440192569595621961829630957569690489596577542059839820561073881828973927036153506842773674977885537590218764777055577905775936830064866647550402911367643807536998927054520897906271633564245737591890361229615506920872714278201496387391311174119994870129375523446700241141088141494768340203907885415781418826408708148311352456504007899037804472454145553422161275860325382283336434174280159864390537758743569246218965722838714382199660788608917510853170838446613219147449840870257742123983164813579064758701277983473249450951547588418733130815851005780742526266261638009450790815819074352856745734781394403588694835263850421034409864928243632437351274677986933830046475276050216649125815717531730092248644000933689973707024662240978747799184512820262708533527979822515757878871642624512173625878361647352608972233233908646424066569707576906699307437254537399543678521280303128487338478025286676539271335260633281506365823406148330566331020901932166568860220010596693214320973906265915813931729741907155843417003233069332124817385203497069007843173830915784220727513705682404397723261598130998990963574290226522186130491779944409832843513118124948762097686670860460234416127782281688460478115654975764411081750875453998431236369208399503658608678507649926062783781171207549276783102498907113501632507579774975049271260898144157832910169119161989137891793844405414212995942105256636830341641695455468988546983201126633365726930756199765234699029857737738176381209271044309897540110220661079138288656906089719940338399014339321569272960755593557494234118909873585326445195336463860710428183923459476179871905415668202042326873289372265917876747803574143059702191804935956342362845924329439135499335928708144232596467308094802049563651047074604074760162375923898362534492595775111282693832992823681955932463572378770094940742946248286395873467751780676252517084813867046789838694421809196722051972068622637012595379917154680049881377098735652210280543969340383917115996648219729978629529284455293128844762477193031397268760567107766823008378944244311940080664077324818398240002067956934410371180984465575184291437521018388714580595580490857745079065317936400747996544129663037357231949386151838294730973608574262109591523047248418447619635977507476832585637812675095567326909334199455784097396937046048844856923038651586795038164028239064374825689957157246983215075958889235451490769855077915515947553112726406224265494358530270182422683354324109644295559674551570556874948616757791913207100297253252564686487607983145301755928821036441137169200872104674711905096093563359765651900732017715786858260015456288422122661830776527111839095695206090743384742921589894844976922280412924169443079727304259922072484580394341294475534340072923562475383820653049652819330807304944885848737923542927138937644698209090548713128593707710141792822222998236402490299326071642032662293512687277511474340364394601795051373867684825020100707374578073256052139889024929216936336413572752535643288292664272681528000188453446943751521040565924248993312139371446855967757951272057574572184834680965528776847903771168867331012322443303910188898315019972347002133673284853734755089154422770489396658627129467251078670034814332723646967132076759081874006761322064477933672081778320194934658572189671459560342588999542496419807103717989926200442508935720386526983745221606851279228675637974071842274537935568992346997406699149852453201560382307013516162185193458657763918227003956212323829028852748211639130595817312152673770112130230550748976800347019106834740127970379839196298094440096121193521637188722512285667196134583872862782893837547391149899765397639317811918603043698394802206847935206684958671672721353990657382122405315886295267828634689700052263593720136441812730135937592350074970586788630304689275390557333711897544704808602779420158155977593630915847842693218295751381355377155583766516602752022456656158782252464563289049854477370739508638842080119252084388154289226064849310253885648420080528245728988380744974118369852474016794533354813338754722308866285175180992120080766306030734752736677901830229137559773154941429350657668906969247164124306459313877314425155281039871100563350566512071906784043006363249661549879378119668636165646139890474069078670665224108230052918164465904680082117668935222549578679820942341550092073282818917528445422341156037681125407424485778772317684785354558569063552192852917444326430639094264971874772722285756584450036673445307883474031683732581954263621954365979960286712930934587327989857937032769954178090161741879471910886939854801578356297466165474578018012624448640011242159723346402997107037938279161533013771069096352357998297574233725124266878792118477863047505529650319706173296593177709441215490999270117864161941915309508540617489510780188608688554991029406918368670565781485203577784963406340852852403867692078066930539254777476636979555532712116471161634530782552787535098831191909204234355712586592335247783258007723902574809475994977906443826702889494417623663175492173751723219759735529171548831354835771275084533224767639902834270609393645875108533307430850735004765792628013515230585564693374158580857589810923402329409137032740988883943133400199531706661024924229002392789206951810210420441513125239611436527409937956364210648863942315740955691436876001915266743589505035782682663804742447250061063952549537889487045560845859569465593493072331192985350392826855207646276391342166043447625204192208698986997962364092391214834934043811145197926875489096588864553085863337401421141025846643262982009446613720749735169070011886349290733444664094675045160269603798248211439323967838681282774501355325610887084065144103526956512354449173826938035411103520095897736617743191188630401963256522808097422619632082445307192829224395942804565844054323613596205278133827229262194257201746322820051464731022236726041466745237575323669771031657166163586969408716850119843808107800062468932527140901610337330411853859394503726063979626965550670778776840471254723588856220341011946607329977660379544848259247037336804514520787684295156123304838008003721922740958089157586568874824177945506976805078759115541364548258371447865339320050689202780136652394990630088875788538575092568207019720780271918263337630572312932241703378106494343815297299690344803883842790288008378338954320729597966615170825531354099139990841634190047702371535542120193111890836554929992841181839408577034904251432317220289864222313084732175825787309174567356044911125784510697267011111446826134157576625999271924522741111124242253454416616352113686359658596176895962306914802499183827060974070861671344962045319541758421075065006179632595313879949256194155601259359596271271213584512408031038550832188668523127732426544961696960403326919376253820871726479593868228878393931619115937120088361826756693843311010669400438585956532472898877283957052159804700104134169796834186441165339773794287670072917870464952693792992489510583318635006937811715702904691970620667413842538109889240227217654105637018277404270924009797017509471724462443686217224633046533347205159441968502971755598834208273307275141894413704982113259846370994342580682655700492887727358035892476439304857097865162017248492939366123958772624136489216245707408757157904525695188704983593492365480226368239316113826205646762319614333645338529985774464930147543868336337414753498355979942835098545444648015281522956777925176550772025527893881705509243666437257292288078452703013166416746966046719407108489836297335783713297669900304025378622520966111840814524333690595910644777840785619750769212243722789187951547888883750225178458801285542868656198769440675968399563234536664348350002403430946570035512588219169733415338527467885469435881895209528921340020768344152980966161373825451169535958310163527017175581716052123449142066592140126222580279726785703979491222357055551315324915695913123586502291789211267676289021313438248537268407550912017830294083668327220862248965994705880003163622349972778186194242389589891006481893966244748991715159467792789627440979162572347994410447487410250801885999366272366355022749761025896242583336845672251944196990271152230713984377716623524117037464474115651318201476220527844144865603790907053371350029711604117677899343659050123078607864531972389889632833375926884361748225480269733600524965315101983812238057304110314197810816489564060121472789175888008387205874425649900930008398663265098594561415703306194211696662559099295061887750392033486561572903448003913285137068740990833347646874102361736712521711339527965218939062335883567529661062251098493387033184856454239247160598812097564357710197992054107532053132308223023299691711985323866735686674695546814592555571804222313866990325990230061740993171561908063101005130461193226402027281124456931003553718680061790127790517466489870443993591539423425999551741380921255563700714550573413958160110211529598542412679702949445602271958212518956722486510029033411157718005692189229639764379376948445516882149871408763586921685505776411374203737082560872737563208168609944813790898456422341366846201702277302199340729272833443489959359315563426425957837760017006772174459608485804665284313066910223474874154678362992563019407236220983674306571293127820993211504917530800621104790097629346629295196255414099122242710053376864638467620408113150084921776013638547255116843556668143002017638144655406790311056378419943236140726947513175795931330827888769435885216191444596945534806058046444018314786880521573956047361899956088430888682685123423650578180206123361608201451156344623479798551832108164779669382806355758215047007138635655302464775632712176016117247529346835609991863118502394536703733744229772061124861864944039815183378709133116525833673304671794138778178247908170148815485325383478634105796001759483213816794312723156736182180370525589273188581621961802275654664797871866167019442736305264992159782885314367453029431071018070421105608611135750508348594774360570710440864209141558020488945147495051076897019416294936400011713604616718565985474504835443831489014241936175556994368838342049536700632549282104494297356337541505735887821652842988752063069641273052598049831928941729035262866298219630757287704032003409095778702819322276606230594637956344097303053110354051157420768339944730305226265863237076100146936655025457724167845003570011659466375006505543356403117316839699629034309110503932468326810577274316955066163861933303032769727928762576029622199519852423514186149944549615685145027168766274882660503042699413230798287865507894753898076966584062724468015424137642302479836561512493634716287207125863418462265562116616084596452078101449137393596955058314860971937656097639750515623194075228279824896986263061655649151344305334952299506700785769716860912393454221536511537417589238273755655320655168552642960021626744949810858883469587145306382319587407585873792038447898609738125408687370095899918930140369465515782838260351244120531307803344848117937669334268323844513258730222184690372488624936962887469296308736407496049168111313817771055916193731452946690397810766582838832609251929672831457256854875383545497196961047401409164929257781238524859887699271436883188584173582636949258475849271386502171762256410182814075306699000997719130852751899913139981601778382338873803186667209387633805655178693312151489034151161814563798649335478610489603536210851887394353866662427508146671673112145535918303613840131898805467796942708940509561316300997855861820538790352275835015872920699730358953449822181357471082102180192901801335910193761481214423501424117762089690221797368118466730962175938807847275112416243641330814526070654676886697732291866219579545023727146939075386107699843278397783642539986959580732794002732376022950425849414470362134899866246070216761318680206250477514599571359540409015471652584926719672385611763126276141734835634465311132556837747383568464176652708568460348145487659749047552951545644467890894267638397837073835498444271910317787591950895617164173773061271229269288539575798157731035071491863891648766455195640354301500445098356472890847482943760780517682827037786930619050914229185653093164962521876048550145356879518676857250163398829397827655990654537543637766949924740106090494943550397562704447231859264551432153088393811757278690631604316546325617321957766311143802204816828712871934619262675298614854284890575529736501593774092229027211927275204285423570942231653164497159762648868733413857326301327104312818877602516201062242473115283912190700757311730381662294178800553768250274551528207023605637873691704067916506791764697746175181953306965930448630478501346796019281015867910302109643261609587258541614363517395560949491787256226154701375439635977561270766668521760803616235674732209631313094737647806374421970212862678590192242034695826329397574632792662349360256583204998070694783858776649285210899790803367788662787614341792366368342963102670108975560393699110113138788283108155527663686982529853072721210839312145745552427597916654825694458501856429627771453855736611167615385842423560049785619045417031717584335236395342483263410009215072200524615401681764805726890746322499820876575205764955387868746413093512265274347205073675733071183653402287909379878513565871869124826099348190392555249612038430260751326555386245487042588236695424978251478247114855665647918082072620667307514930885528583393263782418179628464196146377562484353972426525268038133514067571471989351127378817545328350377780146133233769526499791164623595057939372481117288249216650319438091583072475199252476735244374619425818559254532749353800605445874307515336632527222124566966532531094778187063754330392396142461801353395096674838079192754005351711292279162771755841804756253541270760509944420520431145432725795059618071191682000497523623092841480266699148107791691830350713171268761643380627590322240532494084381521977602871233421940972468585553443441042483525352845843791774182418079585686557735681997742418097865360295815070647590550836468314247383420154268799341470673846276433947824706364620161385153424816147804366853968654959098775480766392742523207701688046888225482122284371236392242872891487587618127251332613934841874179664566355784500360132075717896131591263290019737428274867786415999942041358971345922423211857206435793720205722433042039989501965935482570840085923086399126301789187070067744948253246177365419662464245337123764562382972779320438363601267650711812054731934412143016362067484945990327765412047689554344801871192919089589264945877074116706569050543980813565940362290637419360649838548371935631967136704590041341919448773135646500134960015961188327399101728731375222198784909406215029128121630830379035653935715542855579538479969227004942890492104042042434441264729342138230227279280681593803217346093391100404374494589534535494708764697896680431698769691953100615184275705556400828540614100322772654876611340635790990824980290072846292781926666433141668996672929826261936887620773834197409472049463684779737836958377613602435035820802486663716555964212877105394819375607928361773685733470360492796511298292802327647246408601855941344167655227281943219002530229830696865672198901161154721157383350929993941432895539670597773534367189902521137734553699055671954931140520764308956071124821213583119950391843511041721919328004864010577583878804401573383159312329585436299014224688800071801715922758255509366314139250172191476148693063572878278784991276441184517244090219974742172159159180723326153865525378744910703459346383842866932421136743811589332449952833128670957243122676243855982980369284857207332503489306755914250103353885971208159678239370982286447611640946917304881970647816610539031434771572204431176206152096393484236892335358637079681246426084829263916689209669537980493853677258003025223676225173353672771314531670281794899897506359829314152447021418407483074247629405808540447723100092996219139797410276251713933444741405986271216580091596400821553499258384061535556650038016525953873910227595509375750179978711627087484023032010135390258498920399021102458777945448335878405670065821425797670186590877910502924631413121319475064002179172119599696435220574849751644085646196495664623782310543393492552178718265900238154513010612138048585200736543390783143858977291931826530213611827529587054812312038776912790596613989042824614976694335796897519318021675204624583232178759166578997880462368799797083457974959485923946702270189642760921050674453084707657945481712971124171389661265359380854678587240936646352566305971729906728485919272027396234628718171895395918355196102095209680650309991244690846063911011227074623561376470644994586237898617489019240334781386594231167161887226776708593200508126438360137507899007347811804288117944881923736819707260412738588438374247843313899406679798510522316064781949021584347223662121415409791690852540216371163974341206618579647997548046149530962349431998187903381111862080752505552888338869401714786017067853717396500817025005320099273188403480335352988130349166746768237592165896357342571009059020163725647730240438316413602354431461421061161586247754817883078774432944349848289499358378425929756983218876592747677015253728702451564968407030281241044804295460097597644636368085584888325319436652886463463344491212608169385464449603159391131325121644412283168135997001041342216380495125785287272135743961281273504286429896517246113298796830894094279365228123905388014024193701572030192857636756363711966365639702022595733803189491576891119742758929740225660111822229337612849694546083929285696329946909595658505379773046962099949498122587060355101889567031005236234652871514175823972083330433514919819611986845487834460587110530578400722210762624878097659778986704667925466340449939604302047728652893395273694877888999624397003296137629910486533678581009609362436528181368765406612570203189686490025152275207672773016135697278713689838741509914186834757286334774644102278747539362827575531156786350708434594169538678600287033409104546714368575451756021204050914734291125336172223123287405242162619636039727511689733582802516545373904749632726778903906944799590862004635312853181696883607159516363423480951532095718906028806596725838597416678123588824555776720647979013399363813528447690998898150126407519158109381601599219531345599964158536614091216103667164154907964754931748105567991705144160639787406420987704223464694421908140901449587070090248063773088144982004670704796265575109209835786072061578882426075874172783611385329444468859525989244996170525415906446650382495686444252298078936408561653418656684114183872616113983571428541472016118638024860382925167889312196453210548181490209548852059856345662485788158822264124595499573030930032597067151635599216756464783965105854899893000536165362555024303578648190072165832008333848701603924577611349114198108665922063764035218990496307376303351109426433492695649228277939434252775905214719504859328418142579382301337107574902128304293735464163756279006430494343356757481439854503192012624615959046996660692727004656653073049706686371884663241060364323077949870925879091567604390952612909160550596251420545787711756092862981606980008844426398478837447230791576040149795831525042412605171542019542846820110065238248030284156569361300663785036750434365838287134084253700540166760854654712052390901684582120155093519358298405329122489943363923031030934422279651650289976429144265085971181992785522803465642377407958127261955987747250887269949811803653237501289352215542335535778697197696730746396527440127290860833233654816388497493144533322707415061717903660431643367291696432523069778500646734702120471211373683653049396793030175495922127343597786512055411708456463304261232340594240603464177458536754609170428437531417791328907244924151448431884019806107085343134631267941996470144696875824993400653423789923164656910907799268832804643848975124906196039008198149347282591690989424751581812343441325838951196656713942168938052662294062329574156270872610243577284504769306096011427839037323886298057462993548077087157723562670497581655627947719850188794516551867139895380558959829282458379877475079849273234490896398945010223809389409696820653288529227985052600507655455236674521488020003854604440616426269528915958009120668047395708825925021169559696413378984970929904696718921180597125231790856111417308694183473366138755998498778281679675440114556978466688493844975002967366970830031550933536231285967076261651290873964623397318221904144271007498750616128839864919743073127784920228882013646601479020100917443958260639250068109278019471875556424907019496231972007972668202719550383565920270727303063473265415848014114302419158783387680252243726230221565467856347249172631631621752895371855847137206614820555823900620881451410136772218323892764918628311233387279500307630582987826295767944433099485410081643150999079207931970789249996918220080825874263852224868975846537564892553036139604986621794013502588276162615705695365451082775362855192678474714318690126931865700264888249538193250851534305018095879047235371701122735484075541199027629125024612275768968846203000704627862121882132869863933759949785234133338580477167513820533926143986014466504551101409686790637061355642761625186609755546252884771205070442170056150436916959179120709024002998042632062923138515162286106786972504198515287782508457544165243250062631915646949862625299078148793837923212504804298758581366656743554019920288760047921126642689296715203961621011423188220417053663188321881029595646251036960398161496704905787611918864942180998054474486916424199707759116877236316297174043276830916568720239928878963937745355328457108491106845815971630172535399959952772099939259301871802527108990153438770340672964286690298749401462040255509358864800643875531346616438691583774191802006587363466951444494656393725899172656264854680850481442651441114841853388579122101473239842707242609640276372417482034057115439813399909551614812987177719156698895180540071146786438475670137762417200779714837148881809602285954111081896291258719848826098097260813718325286883094556332444611577016640237644104367176660200003978791819323040372210765014902779857141398415819936711139841865535205225773813816813725308333333646373129419629775641127261517322852307467910159150720842046607171391047749917809214599640935020899122454617869235970844256323246822997380064078413434264171608887873036308997526248489799617515479553372598457132193827206559177384313707427911692233473882118492066968692804964371583629079112146117699033340065058311222960153394163547847695909889355121628788994519730359022489838193250915773658733904138909725506500136573280438324238175283369380640457001673936726594549286965773127516567260092748569983042738830372352917066184054750904511522179881251308308075578056697404496157914261221762226934284035998427827168876727105931964112761594497064291027017677722467023244888221484808074201163347425934106378179775021173296244591626747301400088072810336239131679796754199475165184133660925464864988590689557778579714704895754080881592882523101769182125779653586716090201819191120108447558811853837252667223775902710989005026457197550635163833221419486250013624677876490712533598304505637088718125546030400214650783616253394846543214714580596352541933186257022176903272640270982127140783630415585463250132391448174066005484955749823949668451483309869079482185805318880981166520693557724947805635197920274598704648435733862573360735944833289565682273500130423818366442890053561584314275094054910415034402386486972785239659127054169856689368756565400846811463787389727838311109020237858964096639026113247762535830226867617707825800749800561815929199023250597823909076150299332271658821766003135349974510130080895835598594500804502047616908409415987456046069408990184060568315508220436980978341283446875587936396269418682065431338394337189321326098019458787952175649783352863621532744438889609755156572738834083044054794643030829927405578412937809330978126925387910321696403352549240461065650401628800702492903797552173737849585227777236758015231542160004984137853873392904889636648464122713233884349419271938818226504152935684900564598278595749820889372056350597242926504418664279490184408220739574601421648093982674218300650587551941568554191450828856802874835210491904551600297577562337737116473311314644480050280631321799719769671491778080587499676703135730120502939098398340266395510131561189671629868834572703548366029838613209140914513288190001927943113690188995716837414893238130882256253618759043750859542784144961005113799035957391666776978638632793589483306014442233252363445414909669349501805529191055515526065031292698484304733982678583037103805618690486167546743207192532900565979727664223731226778345522364901819106532296773858021504863696819287579779101574033915722699338953535714160891466977744165440400923320573364314988673705301579169526659892082067800951033192710176855561713503645084572106867192251066471729074089967500169795671686980429580614013181070524257743435818970956267377588374419990704664108825556689803181973319412890381332972715973015336822794995890337367337064207108896929948302393439350303539817812257090269581684629608607211707093541769274212289082453298758269549463808019020178523200966575589237302459497451731082633371779574264255103823587948742524172495616798859624093358551228918128070626587364629549048871656607894257288559446148789950400966223346379212902321453102736779827345950848818647021704535516397356924488578762891680721581605267664538793454832091631485445849410928940803862885518761221774930293554615778385752113094618329834943506045634218220994475034891661616595436473501895822196180604242363514614114954788526211449905210653910740608445125849688182527422911568488748732235056784628159855029172021038905334467879160706219445195325751070202835099775432342026071790562058996045488829559598333488450958338318117268233549743284694266674339092486409434280255620607212654368479021145761597416773094468473104617601077857866574540807166225521105149864414529420202915885859143722996854994343213250902163927858685061831844558002137900331367249481660754386608043528755532574523487889471070797352881793934818024307543608685755929304709657793397730875509598611333526671658938082197433083803206624127232822485836812945409339319620156398554340298469367554837102109123150870665869188888753039916738256746487139424355129805560227721510679215581190359490344392358166975534713508286644307377748570266213259650847643919429423405907372918115816068207396072827180716702388746844561497693340526078020828859449116287092233118801059638156867318980965828961227120807853336446726898561232873732896479111978998683161031365778674086729918784084634471730167732762737460698840952643816011156701866615610597369182551352785571060671107598427576033108618634532819133280410079368364761038467163745502276563989858288491762010470867996938829299665679773685775925116330569217644935010380688056547224755522015121622333913481481779942875085717340583068725066581586004287623207928359454794703506274419778786698347840483435842853541714539281146419636609587221067725779112800891777122849400429447436946786370165549277994921104996456932032794111905451226734280184959908377052978511999453355623356366811423935413043141249747723570795218436325578809412000069555529382063371139321610194340546785272521285809861778634329516959634516602156410127403082249232616437639915396185991894283250932657326426395684430423941308165103390233303107041604488701814452635681102834197995044995455613856544521878630586567370285299599829139469426851607258942587136184648155272309044948305518567454519434895676142904331622850028073007596622803927820999527100076296284883281946684352808705976546350234909336616846168578115097772710112722140627572943355948881439140472831172005680717267252240496747034525273600939724694172551705226176100554840776949133685269515405251846042042682120895192690908291143809303909330250439833415292829946121979084813557529520742554246225947332723975308114606170313527379055116071192803087001397053265600654947204407057771511210400266749135469006780655226862975082544987603241167826248231951140766928579166089704702328410831083766640366150410003795444840894359175352141621845341117630931084965435522327249633256004248077122569904020922607175206662379180185956379661543077627505450537460503721326399104139979661919889337289516183045952558897724684468664150870033108159269480182292641695236687852013253748688545383154232961659083395284094879406670515262138576604158519662225142013120118555169529810000776303414669021466755282512872293340635298218735551407670896620040166708776679237177965259612519711333264945943623305073659858587741112204913266324271158387296982560043110824215768739033322344008002533027705114828005506065524830988698239667804179368548704698913472085061698145787452037739163754991743439821309921084174384292299230429583682048562553248318094511598746219563989661285925020889779193779110732633223458426649915549335705119485691256735280921725063517962334370313954167548914798947386577510249608144423205812715658888389346005503350300732146679640330166825897579330209463367383434893597894183763082413149192855492838253031793687234188897106819756244691375483450202666078029348748446625200505485948654902403378037918194791124693899765602056720400619338388819140219226166115306763800439579482152999928556447606745219533120737886783783754154578426564553448682706894857758141200256486417969608860665544614831254211915222412215365074252129040109585222952174233449021260855241154633721455858567812765414158994107008187846983598057121150300779864275733297233638638385740917470985899651083168101661935425581880567761233057006587977106503446897342150289688040097682922631271092804062024123772813181774428473327438730310629159368700963873353771948047789954002842472675085181238280901738347127242255109019502401096512473261435191793648482340335683491782405100328734165353701105680648495482784961177609205942745729145567235682343822623159438051642383666554958811388935050052556170038590387599203408382394898298489608934940755037592133573432508137610423790025502759055522190640901177448077672517210833928174952401664665283812234884693263285348388055090050208833076529863926672540085200899938428627313037724857171726261562261269575208521917345909384808483721091707817965242981873299760113193604956912589168511671053503937229928780138999994176546818144250537566555734489460087957025413557689244178841783222341583148960217097403977583203124712731539396290688114656765656494980331763596848197248044689594833018201482925506314488392263317355036810629680168634437255241202982541269908085862563871506075604716196810244155874743105781372944604989900878026744717146694599418799514526935737896477418721711804698676315623647173498152262338247844185801496883047399603515474042405764653989985071893575547646063512168690318723277877872662482105366473437491746342370889228724600629063478139601430376894956268642398986676978437925974699859981524107036448765633844534235477511929757098589546261839667041967352301246094883094496747674623970118516509825036537881084948545135227662579096411046159555204827138054537483821587141165195345039184728580344758618259220654047494105132031313509845607506468377795614678441583004656424812720066191456391183010091909162196579696599977112286473336423696251265993354497957480346075736602887808514672649235468091880613507136680029751331509554381721591995287267531945985841097935686409251515089959707742609758314002350160172908453523589044393653956632231491766648154458818451339135137166024249862476718558499702395261037472167340686558623732571028149311060694834738032778204331749376297717734950256580619627772787574748746383223020814396890949024013894899283178615335221935440803627456403843293632416403289280465026735754001035950825851412753819582340143769451449773824650547267125679266585202963096805175088997283668441769152104988967502933625049730749177129815335834670059998156793696332504261501357520235524811240987779149910959667528538416333854140391828141387721815064776474968006065080395664752605895732160651026580711915461236586283087876618853520555397630514154771485698360518926352621298151453405959290529285613764589284478524899509562736256341731576130198664823075128951592760150032071052848897906277882374665065215638196137690247900163022971744146662135788105731199625695461554803153420974077145200589710210909944189917139034218057354394139696114608617214185819039291531254693540973045177890711356711807021454179998708099858753182613291647174438060886532780444453628053660877423642365573506436401849813495929344093881307725914573307896775241352588237925165554827244910992218996410266216001380317698762176792911186496731052980491289213882031920796894178890067319694184315615174924725461913409956989942803089515096922653645998895625730478998600860485908618326981317804287678936485012195121299395977815751465001936938312322359138233498445921589379708462046234230145059662432779125333128121607798626486595011492432234343629488421432900684831029514346480881687003294035343983882974206055108997360154006697275728709902616039834290743544870990242700930858058188954240939838293891542526848475600663920365910858031514810583133164367535390297898477872327792500273810961339026965153914023885534743947287026029775001858923659065149410514980111618918757195826406662173181358459252366166335936259353037747766845934506890981146653834326600483739577150986276315504452843874887765515404421642400280566993834139601435091910157979560176577494873850298745279200667064797529249754210680509277729477785869326336742281405757438437916818941613722142915194133285062173645215531116843743969837855425376010303954141050736715830714678504565036156230141687992072619790443134151986803885490751882117201834828223444963780358704383044906384183567609841731751392013844475056359892760269374434595113144571554844405803902993343391861552804347432291397058851940563254458638225057084640911301241606571480570858907238350636825514909165408167284462500439256262795573391791324610408392874929777280577419827567678860690183848709355133323105357172725052514574912127361098487344052137007798257225080925239431029809080103773978853723746442074863070369701393434994180091167743507727457392797605680005286929152762258013012273608395530679986205535967333915248447693332806780046353589312678583271154851861823947316082927855928646429898801828130468119901774154223833458764279879043660769533212909695996735333902945520692269622532492193544279640307406255365484259913429638158021994707239967808539914901303592101690991575313403994668728104162593993083672694296997980993606402008932061622454154188964089454776492085178274872592373290565200155436782351654225530746243942997963293817026309041644992387391385713476735510735906170281103159408102310400569339719093302739530334078966374865772528446956267924021028160533045935334583218666653618713817169229267001431302521094320950808945763266119573261327120572331320845191913291756235841683670463393307561522906875097607414953277071556920923545259255850812089769656861815408235678094355139953163642210639593190532571631972980673997496691472674639591326315529870046155852723645975523036433324695446985027491255377880537148459907682834561355585854064783740904121939055519714297958719646626651176605908733951841948660590277173641447373373657706250667601746398029478586448056460738174061006946409203478073391506445391081497657470530303729529550002758345783332488367620418540152374656612499691512907193102340215440989695091312144936185773596937953485825800384746757186301034242560570297330395173859172721701765637992560167710318114352210027323394214755504389811278207164599973038568627837048085434522133660717316102753542677188582850623863313061753575430109669393515146520760787403675891324666342029292191202880889175920146206963044313762966799127089306956543807012080144723050613021862866352154508249338358471449987391174406500576520625621069770315668401640542237435098714547940417824198683193043387457759761796521179985041248900482673778519810455855645238366663189455663489949546402307786329197412107256347926310061218844163209222658083857431896513591062813907196679479462913192903244050115173617990071248179667191353422004531331756011422509734720386774586391213987244882734621053081160320237065433857118869002955790111081607298197203860867020030188125605416380555802816911727465389782582110210268963102710196621414093243620146586467892047461307635268502032264861564806331412860595092358723456407178523825586260811687398988403250686930034152052906818932149327936969082387827868086686656882531348620271524606658177779124783345252611867614481704947421181228229261027402792063766292875580814756166651566752502823749028477323333115600326019594777655211548444937641294864584711812740021889262430797347203942501158746054229674272353389703824209754109393951212325370241959309534430639116086167040690950853591447797313132726586531186837481366906609174428483279503947755473432876351529511433723435700461495577857787931858364757608334952696434315903500332479763283382282152250129893649563340852365849130599834078510205486688951746728129442745415625640357425318240016594018387085345101338733384228219870933286568880208744046076618346406449243043749150378231493862673806491071586722320366784380620907804812500158337288929175511911298969214219362357571098934355269306831917443667160550973487817655317143992905559207554010896500117838540198313666956246446171019969801383198089049087994185000615028834376903601071045937699383537192719384140996092806118731743428178346850881164786909060002945643986871431572401368061895606752529496929318667293768374836937759886128514698614876295522051938214804587420469780888359958826569349414924234991592221334930619294088282553354922357674115684971304078281936495088019020062297249550790105390073359537465567369804067165411992814234988913193493898380381561994883434474278665533229450413160125043372714049898865157558797590219104639357864647717815882558157312127166228985655248459394139711315220599030785634626276691104409831751012378217983271375513053962997109654320359199193265119477295424983387278232189225753804177684157111216488496416167192615963085382456108616799089422697120151977719898763565974778123741522642574561553813875579178603859945909638480719188815484036313557316104939603000379493592843539085528198002080401340902642377001093202031209608691292635027731504760246774888068009031427015502588849533186139208924551824256309875603546759125165821975024841367978299967959671811056103716519066830130219175468159192781850042416828785275079601336124055450029886359856267490538159618215441922678706041604262736572036163560680463039045202673265680221719638694608129962593890583648747858115613330072129459176351585111352341894909948612321862067344899180743444585824215848118774401922770181656378071436054398234122459653281191028561165214035935240959379998421022301571073768870847645518711501872032724964669528874179804587893018904655773916454333884152689139231472986491312860293930905201570402810234971561473851393935372094481618733602100614648572666168181045566960076217311600665500471923406205203796636797409961530111719709863545952797682779011403192789469711486443889570164577417736470353452495951898392075298663209854629284201408751593991410837126872038724780469228169111895933302348836810102559165896331484199218383842381080303076452719119968198989635781397860646864461932225050961675304179800926397755726130393099192728047277819277468935484221725495524083695428618147257885994443539435517981603585165007540133170707147082493453361178493534676216423193910449630564764957879033396884702806213964194272961123204612177952330701569177973544424661280270161183835460224676577104244101141135367647403198058716449546342354461776373802827430252373720704518138380147221480910026104641176336176011793769728554827490423786151562314938242760423288455392172609401153700056537676352245204520328541329605423964198104899126712990228411500906150001373388834862331949485499039840352654985862769973113804799790660482783555169538176198073930439023916595362778865300880798726946982143028228806650557130294930051820037975341816554567916261911049778250804317541629535662849860310883500819592678368568984466414394632768077210952125737460521273257339816999864620354814506152701750214883399175390866857829841359503800285095211328110811060693175939561274490924652456028559015572482407779203672195126567985883280945753360383502673207730774056338718479349212564743272047261731099183939001489436776491651506991162454376254581413889464005637514050185615504133094940901477540521759020066710965483165876434238084325510991541966802865559459802215076038476665033508632759524878159791928135151664806135685895747611583093888690838319957382248738070185561605375167096100689489063364736775427791154615001269076344581138394520003260175782823664984428854263806133549857392066215652779149365794343456983848925326740562047590697307020461031768536997243167563008701750654965461920167563944035239464062835812171306204151363645641085701915874064581931267631626987849835408006776290945812974728388617201151024315619281625568624773806119587144501689912783442068351729970655284687435046047693587841753882823434737563552125021099994010714079765615801305831670340357603897609225720298865710464237395729362752858177942623928153045961827020505297907729003006493596889604169672593169150950018117800389797476692097421508711475107706023312019918927961004058498238903140623682091421503647395256530512704255440024969794233478776427440421763567679177902746834563876023900809888657400793980289857623268221196175187091989705613567846694772861863213763399269249741353641218683610057626805744518935155520320092155584864523461415342684192090150860866389080728999620294634269806596528813350691757157032187819458327440804220200237329108758382747051358798107104963087862838270395659477008214455358717872068248635183405154156534191504784756681676843794393206902626690198491273797992474608579780207960567457921076850338521405905216107353825710115295258386710705863875994718448832432161603302394706502969408601686975897541066359180521394757452422067030512646485899940492291586453647821579189175094661907588452440518046617362233738838324583133452668531366781868998929938240240618407412859183530123844375545681008268508108626669369663178259963132025966004888974168265948703548635532700818958290040112660167831348587584617050896863131021290614246145222536671673989665884734388081927249076641766144124397378947538249589376175053475175289229106438580836078600281702056889790371633593945117403329959655630627086660845070722693524995483133572660623927591434429270819444085074449142483279221109122639389100103161054005916289129882203913740142411991628842851577415998488527259040221675003695636973619430314810511474944575774181400804864952266004078640604305296546414081657099093792317175346411250265162299841244373192644349277655845621030517582071692083823231873151130987824439864826189557549310590235120455507868110565181321355237062100666705687251710135796336568987411685836192904898037046778235098777449085050272447382715180283697026786777332624899715001216640608642759523790437843653442565464978797003389894476138755358807648283601393898510562145617889126500624410471164602674309945173822211208323231566521722560765804680829410058944888599352226741335305450115981989538150277971956134457308754400103646830269085795618634376116442303139130097876867266347872324020648166684180977508753634943820648961817709715110011521978332997572057493790997549216108481490683456977735563302516040195851569762251390429984045531577989737449912415331269327713305259064978917471389583274249803491800994806002704199361556586134564956579884828854775371131679589230619025877276443008124825375460802091077226074882609346477769604345945854701617572937308974542853329959309789045497080706536838011954822567278047818615459858029658298351276809249916042185923824489798901258031690142392983763596116817352499354559995860220142162289538786498065216680069550908212530835020713735571647625409049078552920537479524845296519946550114618715935080505064202368870665094556333778976618392212271959621094466755952859763254268092758579929716769043627951331477906184948119587927466797757330931271698603564795513779267279758643425467795124107263229659391892734778898931986453138436376509319738247300896836650307729368342177830421955505567091765908506329356137776167135471375654507395917149415389665910360435120233818353039225166214050667403243667798136198467709195379433731987479156697457070780399687256720452088352234146008466441816741474150785075579330246265351566581581515177468806317737484129731256360548941077033702086254914657299417677554536417546710384343671699688775722164688022037609043194876539759841839687173750977732428016063320955475525621179602310504159733738193137776503467020194067803762307597144539507308301251331383463286709597694913022628634221471287314206239922026098615737957079421661541873487553841931737493642680577724032230576849446587072201838380359209986261769046425842920168619336998532686197666636409345084027184280284945357658481342339703710796595877482579439551324595887049916141441198965927842845122068492294358849539682514866121748649175725074299512446622953697185753238141842798519404608559910355579215703787643110765354006453348734559766132430322915301541474160791756861450937223470972938045684129777291806741902618396625202189531685010071533245810911661301806707287582446293678501614440203562100047981224399674601194216794678663761813211502779440830280025802726640014053027809813859711219568390864703657449496255535329324139222156204392229979356072778739827349082419262492934024703547962071435347609622084677547407557505460262535071835214702434213512220801710565113498568933416195046424389417613239285578839569598781875586528936805390031813032435054313746747654023198728530355791984743014856751005029863417417417719626676369040129763121614147676324789169636975240830971533194003060642532036539728128661556793619015599645535042515560258575942716654032105828048556626075166147013037182044694920789453478505186622917694660372014481746007210974984644602066696361432466395774691483803308100711790451505237086069413662431626958446050631330216953730091064201772905288521252479664335693323496247800433200286899541220795865940778796151905029977364293095628579246079324782114684761072525469343626866415598893667210115145467930833855834441229741158120924393847786372773059237919802485495469219842300383048393525445563932512754721168938555637079193614236949911794573153158880437980719826897879816094816614810116516573047547020546418403640107166847307606076444384808121680934640437728461367277953917775171862863918519794807094394000338747163521545790086194135891514921482534484850805954025030795549564461234534666352982526115327522561678794701479497116048476906241726494939564977634106825810211614172456921984237859204506459641065349639941904656165918157018956760887333505645224122800370237562827185118753214356385342689397091584057728593282869283425910022535322545594521918106138301061344501715408320067532089922989965181103865873752274473108203327521838751374106964551294429746840081789907396236653512572059279338530495237124190350073145568225954255698913366948322312136401203710500930580843841279599369385640376681757116254411820161506705593990154826622897378661441996511668921527380841005694206103426515129066525913466508977000935533101141947468845823741087802511653341407098541457345715011455363834220797904335239132850527264292890491875700810065922963365837084026029253408000537409980041761049611081823575441230376425908575410784645932566783088465337738144206213804440382005874730790379631087129161289918586902302456989512230973667011234105988142096339146756854284887869382266730800409722311401136238878358778638935318777282934771194625221984240725997597001545108177909379271898212429806906968124793460390552057594591801280228321168067293113796303945934489602195728654010669026272401702155672864652916986916162559563165460912286025389930611824757957081354721157480018389363579867713800924209119654145031619835157703075048305551950106740083183151163921481360992001112905220488470085817829513816206495261222459917750614141652470249238595968270742275384716501140544528106112742539276587541968635080856507682551481241930253261756182108742170874840856047287314090445261194742306178652907837676376233629315876097116524631406329343941674196809113341540300977578331426571632578613529198155688874516490829598090000638241258529971620269994303092718440687050213013812338940249347842984365619348823667268722147794958845173517836484042845354121010945602259926457295195287795667030427084067552134108689227942679430864128537060893927875938115412058865553837641037927216078364184672865102350591993476331754977376167441663038490923243338309334829092981244967521799325144550441133311611742136453885176207308763584499423045068522591777192493680103795514994182793902718598394205647627288097731623726346978967997700411251766198768907524133159522319807363559794049299070762678892392041851895588758088504102366941878093409635389151855293626517768191526173733530347746247481685027490698863946456694785672389063927627246324617377492865153793426431536903666925785817080144831449871939604645479018421573333866552134274800391176164040457927062862685465695281502541603535409171112215130369041578081664005750003781630511469005647570922284666048256749947074307539489357643656179469215356688213997011219979463812534460773829986263447220229436497051327365190511729639350299297372040651254623749020091043754441770923114171077207065873723380267131460355883161107836116084328826809344723826601694843246031850237635301922872039333452988244581242692602002766921104396002083044560617687503049786559861042878693987258284352681190682855408954310935696227451066764425422643504258672980506516372836689331442358968659929439838803790917411172197462154924627664703412757459480146799010714998798180768921173787084277608881254505286351300979618941468450372685767419450881818493243060719932424009076223699927736905861039531860983994211726360080166358391547425959798658774322563930294991507680374026670110430932020517040603581477151568421289970480136478300863623276791391405437937700239676827212847596422528044163486070904340445837756153169907857258201371640040263984606032948522064645510332133527985689345779821018239087362088672174257707891283409246231387415682933403369511141039959789001911788208397137918232078222590618499068786185587676803468599279999388017619342161719392392427529025772416636772771715913422386426264960138377452095598246373675414433234390681972099355791188981786565102527657116834869614735287549485627245375373224744991681653814034616830899409621989885514668558593088421461315509311001632488989189575903935587688153318314454874322205243702721402671524659775908771213260583584586290043157733982000609965213988578961302824922058516651570930341144760690585070612095565438137067713549518684865845810945719218417876335010466026224486724660091967038911702101996461190789624218408580133980488369945124297146469747002062554206990412635527580164424985392683920620292973290940533110593454388988922102020399936536970070915366447096321312537222840629389556290328361059625361464396990976340445097077413923642767351775206838665648617009405320522342155360734268929668072447555982528106659648230481749218954140802272991584501917416718022606425519945182497006652221939517564214531569297462771225480124305033847299565704735937848755941565620132085604403655587752055441969627795821625941341732120943204275364686172582708541363592456497733695746878566908059794497794433354467212159545544670230611466095500858382233530598343122083816169466958167969429218798356483337635570318086858005264261564450519909705443437626863910541132786049499126228167258996255132779654090663103086671404087334135847961338477340492384536536235960420290061499265001690070748916740200663721317334357343740748311658053228808386810453950316742864263791611879383336889637178350900521678981105438231840820062616956581681417498751552065686997922166307684953052260785860372077430941196707668878895811539296389297543359928362871980044514374684707718155305787471642198931023373169194529685813594886945505779769713608139770981258447293776126321582181642758359778377791477973061911844321617208484941464387794276164085364141144905503704754875821460194906674976670557864165288708559125657824020471854525414391988191814684309122906353647420343224388073953777916111278256555989922124391324498007624761009095669671179347653073496881389919904674077934376430683279449567322941992996413574957701474623672275848370041498868237475155377469701613584354733986679478438925789172849202216809449790032427175612216091906070542338371724043315779645882328138655862889695339513737846610057788220322848164592211518174127564418593097441735900483314026762006040878309314837247512045988146123199722199129915826713790575073723459021137751451033126219649495830174171159887323909170207070095303580539096669187325095867380738603096329062978996042287269343725349192292403346528030695913101348565409354615873079719314688891620841227008311235336862339125088185622526540428268136591229247962093997851302414693432886079902058966567815029855143964939783020205601686556411935333988413994231167520405885248683851437415033122475097422520887786109771666076822945737089124341772454350080299675477469731836031213373149519215383010978164315461628863851414895500773946268745919191587362182082586559724707890087053264706819694756160852144031655272572593975449203038828826753648742917578115790721924602380102315673493172089538218426939343173797524576658093997773377952066977036932092353718661467270743630758316763743925844904720578135616303050877775469126134751002764426909823729219572358199731724939647187681202396871065194012327648810902127552148616166851036266717093595504781782823355347393782556783362206649335918026111330423255478059203086065172220021278835750029563537536466222019632991122434870265547491292353464928583966127578941649208395922552421130491771709133655708238997744203206181518676142857531936833015827078050953249304045232248374898515789596320458391951658700174042309676505080335336074906614608272924007649408091418336591167386840311639412399273043395489153481513579998964947695162769283470911747173915106641141747800501929033400494259993979824885400713117866138815444534024998740682347384333953827259340434636304672399809206595472912481861275939497997875945598159538550269710686717025443888675234825091761125557273112653704427214198579716189905710243013419006481186286925813017907261324850678554177846519117983413570091895215778997124839102004043792174270079145376886541743890614833696273700087080758105912110298367478303617957686425064387236823047826748795665222395046649702967523682501296912721522812188927360509039782373040250946051117476099737951463378548392102191145573487418449747781921124996840165482852696391034099471139804692164596947259572656412658111652508744421541960647561753907192600112124484273356734220588943598514725074310933294233114536139279893364583581569476830842827329260027810376976687776168893595419252699782235073911048185990289167636122826658387896232249075227459862355280343153326483444597204802044660683669112887850041545016449251493783208845072787634578519735074979735804880660469480813011489770768576188240115528273734116868064439280102393126936087999863785867410889076688569499162745330677315063802810353203834607530461150340490584697288322732321481331240012158245849456508535276687472812758210026590802386694527662136662481378841001427119981580017321625628724082572949625913830457441815037452157345247380094173117855665593199119758343518467491189901104021174414887328279491161452125065056454554014445957523548361180867225525995211894855478621518467861110021135899101913973947951823875325914235026914671726189976324300076168197809433216131852284174819974214976031602100174145876972690699630715117685870538096162612452800930681478606529146647479930712265341958032400356890192067391136284547081868693290937356307610238430991920649700145195180470452784602356471770247551997309249398009011738542721126625330672076445906463556801280702847021065226647379887234317092421809100521106257010353517493314576612274794342651078817953996749692479542141780385152023801154666636530754400852572448193701860395334621438814378982693557830316453043466295766795358358495466444580793977937128966407649447357539936771077972690632593325326117554126304662692029364566490531452249423005257548113778087289119116180758029210346553837247508988112080752370098573593066286610087083689928122177877866034155868056709879042367002942504229288591526077317656215382855001708472289669180954388308362342737117466337865467239757219512978293034909709609874350527139725776999425813833953516092595498351370050870421417795979280364519607844429473292959740111945380647640367705114573621450213214903716305981025509637255411162288058544266435195694059356199491202689349983684403683053274807802776899713446185737716945767279075566455033448843161956149136411729723802997613010968391776847748108403736327965692397225329004641594471147449330076245914327850326789146970380738739132064397484993702789956134448836965169879531810952790282730114397152858990228890325868855901512593176355038034407255843036348762591221634304702511848731641585916014993245488196997554639936048945822173657906938706590605110889306841540841099838865678171486635791388075042477017566363868923058359523391586543044079890628878287546388542487061755589260508791671120987998648275822067585551807244601248998077442806470101182221576340195625748933747203626180537685953772283280773506615221164010628244616794161562851493125261532674066787385838922173198360980875767457453322098187861199347066360464712260722110600465969556119385247451011345753292634121163673100040625807299474051032210685718586004048541967922229895441904967922926301805802368303370211031379044219180754662789426910876555822532221522789718386849043480963258542362671256608597530417938591841889332631425090059069437266839767058746093620437673731088653186541904459284413816870160904637388917141604333428480527148180245283068873688930287636795612062576497618430675827554298820035289930170206986308697691084571300445014144473899426516348192737524333387455108244001270373520833169232354868648128990594130703337863367719773560584069502837741037140699340522624426979242407571580622336164261037062672565783474058404232900994116106293590697439567210177972189185689047818191631162856313224765959036280231897240183952479866508683231610904749170885785974391999908151093962269351279279704774285451118079296170684830042888726596481053379264575675907317410413385001459589903971652026767154646253694660677725996209172948904016053013926639666294837003792743852409946806937046413028849701020439848455314886704516921017872239522821896292612085245599168430935383961686097773354074130461519351288804761813818370844348663041685332268709469313201906174511285874187663511094064118229934896424308887761398861905545263319638330083196241552223822595511390162463877835078564080464379569260688500607042438107591671845373071209602888672984182774104582410904323296804756434158877191296832974772099118900805132089846797183397123817180950386293630358117510923355871667595493307011980599407992737806381746355002675653476401730650067595273224461233585632609381008565824335959466382292557954238402258000567983870301975308984087814142967158548966011323866736667366175572691499155073763101754296696671219668078087068960983772910297571493303102575443997281406037714575588143583166730854425977297003738529178993809929418356751454378905623788279444009885936520775857315276364401073311669059006818423857921635983238440901674319192951185436798732634667155913961767949833378974521435132832208390212532161194053194582306213775026432036444499236809285058648916678079121531157100028216250913632706884114473823601009695204048269734372612699613874521691147894595177821759966760096371995854856523632226132044650262366177739026080165235005404544677818616671987137310634413965927791550085351977275579746544859171359941831561468223019784956471822979530079402190926344277400107012698909321750232816651889907560130499860995841610996923316212311026281063396204083880981908967372337660442930060070525988371646844877241602749467432260126476968697268286497060189567542010446609809827805176613730711528546470269213859530851180005711763848456966638235499979738137092785821513156493585919588464795245355693936741982731889226923605767593282083447940451227788214101810512343600141540853689798211032308204052831887718280941776414177174679887901874394126811198001202839696272352220682134190737143189202188929992495354285593226491069721007244669469312135036161404826424636162583609072139344302321613673851012597565217659402217683183263800002684506795366706224707056315503263578252866273721481988378267541250488920054109983190496598941977615482662391368583390917325738707782179674374019644787584969609589461563344298306524253666475826753903557271333918128936990010962720254544774512837078779557452590337318592610074322586900778699915413062044283735981354232118689064640521900580950227385595015187594337902262592126311234091536575704459547151131495252181272919580486631259080638265682374616195211894430809222173201250312811621078963879920762357155955747506191559991752505787410858119333104404779902021053788816546349049332364987674382215536479302254492212105183174611002788384927453970706247257384510254281323430674443483905713781568583767952967483374480726901608373862516733138945346705037516063633947987556615105832289672058356889323173157139763903074643072400203844290620377102673394982510288681502155818976030628305226742184661854595064185174498337901106178819833336838043744526305558885027007673551096996295085875222491064791348343546622608340487318748204366604398608792041382588092730240950579793284723179498143618395328253091256441705330970507100197976466454549524820657931955312998491449729794533568164972979253308718288227362309646227502521666562750504032191370286261389538820676016993104803713403896363844423039282223591443295426331264747057742632077895562451868845601104549484540526033490863378177479701378893807254153802452892676385978362328125172819874509722881539616047747431580650076025851425713657318400419747794158445096828265513189261999925039975180918726262482062097882340149504212052833719010911513456612261802210625533446213907906223362146386283921865142826432254069911252756306765757365787768881705523689973485416107282597479031136811346028019980353269784216344490509355396252423122237311973146336585207518731733469788155289412648756162676688275140914212415164879963808744171104953089129387979765433792129110092168845901529697420532865651814032282639478918557161503334195622233705249710880957816755847181435862242391705343183769887091712380129765049112705744412736609808575591159445647776114085157026116470898978088027716749276548488005189883158015486196515081988477973501420809034751023126503451268672583687938710827397766967377455045865105307033032845537220811838967582189310945023489610558422104438952132886561658780891094191556946386679711385246539677351179760883036247807208769181305967209987534202556667468445615067856256512628179417731319030383262820069059962974164117411056719148104161818468440118161401167251725438752236158322304302535858395911503842399146141069791385260582457321517929651892972576330685746680459227698353792718225483078146098324215635615329636713676572317321263761151120843388207303831180681050280015586457954181339071345425748756123678625665289763785620698081804520058893135096337522177474929732089463084040832309653456169041407765773726239863881466890561202757284235811805955842136413916493407739949377533447342706382826765324726956099109968740481319153322494007042431278981546147445882877257915696332907780490278460886955139807879312794401678551243841585967039575913153115490719760289691046205574800943383839303265930824365833304121222557667773870938574808841768163495007283937278141841903383632642811341572045507177122538478855439130671851968841086223299849076515779967394182327724340028290200997496512541201448569777667463443605107092616164977897207498173814716222183075111661013120046379100990422342670792212484702193061923091830295903259129593597576725233948156431542717918866320857108142109388595763717793416964710928571644509298603106298803454811765548729717547956748030760944880775742635697813304434004988434689937224632207165835016353001118521658604789581706252892176269986144252262914482890944055719620647271147992572301215334331746358277968721894701974906496409797245001068309530935802844605495712522935741992781433825362834969444945686015239972536267848140133097236292920347888576199384699906267392788386454036309488911007253987668738718662781096863821595345237727094305099865900109323269897897969537032543015946715506782680391107673395306857685162622690841011011060553312231556638206967258415798811717468368523777229378622697356327899871897371092509030954023807323190134453708822017497930684891729953830419345285261861305046453100086891206701645645034242906937239055389714108834218232428608510772823289443382349977535158888482217803992119114141927407155491497048718935506711944319766491192440520618808557481238818240116024011753686215423154673212899821495957009629574955922610192088383473753714331770479102746539196431003795671355506529939897840317327819385888000738290826889538918923156681031091897336205143803896767672077923668041921909892802078264995797686055250488537828375287033046973558929601180340023924093077986100654871109312029316501137426459909137215956925547848626726033714667411245145068598287636243720184819461401753177969852666097304511153940000538402550813193479124301901816700467666277976803667488649505397983351338597873767333876865604271961713395493660859781823568599835324793892271322369524375647637366493869800218992630596838230348287571607220361939035332356665514525400657598208374805853745726626264048088934289979104905638696677399862326887447010885300272667664887486123542457211221098836753329421785365491800031796506336330393808853925060271152065053210269200420658523494454994751390335467920099052217112359705032150541964208822829213757856907796414539252770390293135080866493656951244904773038789358899609454035748643691656783093553062852772292729386698620001295768067207689085157375419174277125344551849429840436627427260469525675212369445412330902458158231203617806352873266757974355368842770289132672264827522643010986332696360085638906109353638658810395164512971916449871567301418112444085409531627059081220470473927788682206611424542147684122748680983361842485484519113376440524790096289688108224263413967185094002275894805116022286951821793211082291853191903994632074501134023510416447900984680864236214892042334373005320948307373770904517672192056987222101639866085284666879861801920926283690005059537723548926781361109584061019182930156845603002632900199105578423767006162193589587979162648268979561433303655839298330635692351353988952469176411067886345950375891857498323284824655038112876645200510652510424182229747167616630297009566869772028455632524000956651641472271190100648795263700480203771526892106325236277860312032392971451440289097245769662310105377565269283836497599709164585922553543232497131901392978801629203410632905638972117721986512215941293643578622484651212184242158050884521630042236968732996888079763280653096694054947008569261919506446955049201796296898683048105316148824120307035805811855848447991898708703922091182988708099313202187263267897519530778652686075260047598579895098282613670230581322654807098373948980491115831550023979444554708786278833405930254671014615930034403534758477942501617639126841182040579999400924711239524689239399153978766055740093289611266515854242683900535033999772107529029556517292304577754576477112289720599017673288837289913453813212443433231685860595918480861525885672696563278026344437137259667542095883066323734547545551525810367806766966069627133324551923075401384476403674133283586505334994856298243767661109878101050295742767071916367407997193454249841412503549535011331932961074041897134960554927398221079897853009416708165376977457189937865547141590087800900074671884348783780837981120574003514080690857496268129431969116794564423491536973664148047451116626316965317434484971951697764045744830101849419401166821252774473738149350497766880144621031036900501752283949539882273567913784268327488477383068515405235078140197028949334280751460298193600560057578788684648314514972831710586412376409247058372087760175551661073070982961997633544010652247910302645742880164142239832953027622481900247683566007935709793611965939986533274273316831609979695915048819004518876689395650145370447317613009198614004109057876673477379029098891961001600730135237697320595495651709698838635355774555384113271005756516071546198157426085073171972769240980122733561412883214237218578293403287686930484661051122992328391151343076912070954078816915352488086747539424612161560531484775691662124708329955035346335579264203144222448799361696448015304001195884066710227914651687935591331141743541495967287750771949201008500795864391605586192444606206445264196274563741843518676037998699229067430170645778232962657768810741203782714127112752101362568875169829881934417260295178528054899870211312260260380122214138686880371683048573187421788249353171541246266917312954073864943968006802497122539708318949599961744833553638830820354128743013213392045704860422559056931423413343417826657652627774519829145954003647450619157223124531401599090780001471999661981488454610169757142560240547843798088849858147182856141511699079008574022114166695556047795133975778501121781347682856645566951911394410607195049950126340100085312516216480730327100507035617675848266933622448614308434722433536580884678987209799065805123717835701638946946178633983141634860140914768124837344067849791578323822484020957665993039053150857545901541702997603629338499251633103806253644171438900957277890223440420551783676319289715081618116677281890156142636468471884852512029771684487556949428347466218556889680639589546193781387181899204181956395576671113523611998297147861636191091020497813076555446329170449823550771934737907579352408752692203482671105360631121186857906121760932943784643284286218840427454468611816176045388045553590544996021980730079277939374198060327681655997238854405430358621866052381829306062651861850635378571144246973075496654550602055954351991124055292908782095720682126621743933607229277256452767545071318501381608338615412480685410399270072939555359396523223370694340946238689952385821993904721625135569219853719529414260973513159461705199472031613361851067654291446852999718436099351156788652068517568415207721051854661846134683555491256548665749200345666899656830447115558579137822971951967802690618552350678065723394418983945822383475579684442329954233947865998152032602212192050446140993236488223168012380873644162867681475312034618478502892753652755933370479581378215421480394972126708878261330532891335224767577027666141778445531550855060138804575578927870314703782214893552810665899465583602566343513155226957742883058673080743516617369678104819045174793921508286508490204445751878927258063683180715121150826642317961015402390626935921147465234388193561100937282659799891330406218631837849217631462535538820748904467541117065157908781463049284768215740246794842074595220640024739053024275862974347529871565570217460000088939646069967462075265277552403399009829899242139226343292742272752266884287238796695405841531788407010131247391360180176532346050190057388656505871994069744186689540433079577045983629244770520387505270559697582638051686670460025707186459019432895712815377957808487149969794542567533330973799296814352955914293516380271511694923404548292257578426859951038004392011369502086602809069041913465524478851558381211381482090963750049065985417910855830588726833031722086308058571327681559046694114088843966803307007687041689835819921704574641417005965130576525818983713397056707708255761886503670019689864261628577055403989729437533540091001789849832480384600217364810150827042077817289424997686202878626098647472111085480949390751493704506218314426898727289861164181684301868830952683328111107951867175135990291442803325053964941751840381791949245106821904820892449131820251561184726614694716873874285107005688853265705144743969990329370548063669834026089323642490049444611051593220203642070492404562012838378713744599002870990055360716809442852449429947409012462720805243425855458154939816728536241373871386068604757638189059975940604511112770596356619305578455337729655159229855145422145756917798991976357874809674514249762936037861219117330805146587514853493298647857810216626250088211402536842016380609576856612523597500996893525278766138263189725719921575388294834589302388038333126430118134450356919343465122902079168064856072820626832422092003529827508785756978610758140422777454505203988098053191680865884166325213095156027040241389158144719664808268879591977512977328543401506601209513875900285463453597340984790875615371178875131101497439376418518670671722759948183485404861886857184046620976318784271637163002907435203009143459025384053657742426044350093896876399052601727665704612376331479631536946732740105393321199541386043243709460934310661908147976552013789851629161750271465344248117892153148420163446187894369762980769367339026650652282912970114200816809574804087555060489941423011668325454313147184952725874617851396109131636539333680737192045586735480043875314823836250877717252623658741461153304957101444321564494348455984418107892696396470074218825319557231480675604468476032646227862459026937238458487203245461438261997296023506090907284590668558049286861042723859615915107321357119770703726510902141429271960578676184153917742291485184954107915504445230231666440455843912951128947910871234603015195602875294374459652956241925034720624239014180214434541591544552709087531649656607721676317015173274157938549481084706783465283089758510066117720319671453969280749155493587689514950816801298044981126921309659792642458501678898635443284420545624636124664675365146279085444429553339226491897220099579183039069504317312719505354753777854704279654533429705652689595332130484251008683864954770753150588366658911984041701237406691791395069219857898991626043409889939944723292808737949938670707579823600960826892073730911180587598943222788224281370610397328147941663447548976920470197574165926066127246297955282301920278196911242499451484852851137053184823840600908773639063718536875665952578495462549785565662062577438378298525758665687263639077615946109655037772787281486332350958859375012902313585392984066706947108070262597534641216703564272241311276667421211835956278979302332882403903057673825883046555053934026322166303193097831301150848704224556999830473613872927087192299845058917321936373643086667456334421798296971455271397514939569170938369502305431926790606855115201232383286738997227011715413067371016764078370332335726055050344069083638765351498915537796183379076563703527367529570234120954122754423033329637288944589654752109189814605493409437442534278311961334769951179588280769820743625140499248716299745768293004406322517792006855868460977875031738889706728941682111955485924235824580832745228598347400880274385290559071168529219623778542420587838981509536982483071864281229973916389866491833111397656743687955238633397035580715881068840281629577511538649246485281086392256249250580441807596838732552074728142500897443980504484465941661322075762502954681427241330332873999460117979662189943328920617372990177699627303583188086877451870525161020896702474450995339426125948852198049315405081098517399277435851402179413442519130485198398209147316500925723024166400380973572423171200244693854546223875492759230822161203025691638611826161343105123406444692097285758510998320767548446121942903783017160271399087181934641039472891867682791076364110962665591365204424263696811124009267800229849373889154264699230655020735450176476594710157906383755411159981794610613760320313069178423473953157842215048748482853964730393404346781970731734080571709099030841897856037881162857862406761103884924897202626751968813622131164349287588259212169685120873331339467818414031011972858839032944766795326276585863294258817070411988874765034618765556841025097485818989504987375177930599072329913245994823038295559934756276132479566286217509463353909429876569346444296866337822920016965926604700356500669013964772042333579485422180151545747077348633488289541692843689619400937892531691151813432062954320677666530658368217962359557110537198021270231228234554462088330893065501085001771344799042756267492380289320227876468181807656893485934499626987296698629303745521682301506432320584580704806013024653726710295241869022680521159728192068094780846367595738501726545936716834494670159945988520763313663636887857115287086627127483443428220102066682643263780778542978145928813426569823454116620232817324003515793906485756397240562528718712121824420610073622839038028081488184493646976450737937401753618069133780159179115078240145331618474837418605412715056840442037226223870696752979083713811452583788136962512905005457620040731372811796414477039412862827695457017641503618538044082495363597495004733529056623290612828626375685923140968173451893185511038529513085744582239025378932206601790648848282946766699331204748647797039611259486357407522713951147728057569421857052308598718556003511788170403761779234985466462951048635151626073751126175269375162571373111954712320072163987807645707232319471306145630066881893722856391766031312761935405226915435066807313670863446146688095051423049072608410536482399036949253865426730856920459687323884853908703986445431035440016755243683529966698563012478055555701194169294323836602935330164008481486299609263332866332794794517453179366025162346711168378126924270773418956820378498453920038988033243140376539058860877213599753935066842503335319034454906965536038892539600061535707539388300075356736245698336170444022285892127815562864114502453857676593352262107983707678120070093911504773354307186789848107606027815983435518779003041286415384025678474291317550515161835016976037150042452014211794387215217009660645078690806334626451520986818549496204863415187433194247046872235953526533830418127106245854582471179729513355607848349775895646619214082768361603896105258943839575540165394788548990875455838005832703406734541508299384688503158762261152030182376502189992696930694673989808166267385426049333818377876372673777366476219451000838820611713046707930021580639820147279351483062248976888336356963174657945206873473834346595179773664092448059131994367140212030488823892900319013139958814528057354436029896528563674614710912635892598778608725066618186698561809870055522584319275092441997425538307583545373570455467049057702558830605603512565031557914370955478264041320162077202135279532480839291497545274452599865122356535976729479342317246605927335649438077679766640280155624395982714888541140296977190924591315242022471082183430491916134607435687730404716870634687986236158307473203438626843378835489170775784862282654940599317599089601262652772441181358705178867434359377845054265801619392831323670769861751281257004947617879312114965417606855484871946737191023657969486627030454144408027545716222003856148485880011336289248770368106138239229877878598191247896604300566407062340408403794726758556226980586358589722480594834302569988287528088900267808781901900432049814769981406542651792342451433822816521325225109325661218277266928308531509549029354423310825187438255457410915089631264428423506242492141948835264390848326294101744669257823594469705881415026561248841359031374582338081074646124692860362440092728069436837251613097016077661099919373489583651662006912674524884066497115458806924250004682383819457586367022699307584884126840071613987273789293277270999788718821475112905417898271056513805895646666212384723328028530320517534245248283348399554782011589240842356719152107210785209465744502943005798420831028461307064983964221072584294773044939114001772213154696471247057973226798636964534596168266075912867747264479909379103174929009722101150507058846799708318936727844200065057029665328204062227057091030997980981213861658533089496638103102782174743821595590743626110640963849357911080155549120942154790302368709800165181297524842139968883867554547757450336819862386712818959145880885218644918402304836815219868661931383017912669019633349892337520391932878653454406806569411677166366248374352364202580784425994945471714133524241594789117045391857801645419746919098080876244249931411301136611766768435668040619483745318226844298300354719510437606096979846859400440490200328272927808574068044697951595469476497725207592100100203062528547447156790835235433567745945224653582121494242790537171530538352848677153824472709086871975449317292232894592086616583943742949826541886241266093068941119447456225921424878026578901925727466655299160579246343497470524091222672750369004630037670333923401734584886577164268666947946414687769746157413252422003897293319078928707096166494848013315168148113549658744294500697070831170313244238426176232784628300828773561527602432761280499591827490537648374928147696056427971652914452253611342050909520970017426355149237273037640212421558945053817954809525932623238689679083385121116413588156120790513929572072948992983082576373473608066072426516378987929425533100486102076167755672223645421134188410331422244722910755288451392675378706824764043761722585915034750348461585733260918363428596604160203592963086966268903699613504825643787880427227432121410935311129069727371773212526954517018128565164548502368724720047807240604728238991785343734856434384437007327179663769907662258017464949129373042894232784727691925786694045676635645437113319616179840546605356051442524064297461485845093829301278917786509291732970873111517758002859053790716241376955646738984704488382075694942225101422434491000922977178344255927153309363809394682611093422180143165890854282033514195657179224934795380450300556825316037692493820347666702116998193418487505122906621429683037400184464557192208229249430677117919694590034028344381413941219054790713344559579076240341802046644467441572051979751974689453104065536378605665949273878976452166876998550428891702154046238904026989954171286936552666056137105567067661269005987436495049313609413012548587875267747731370781630506574739653477087661854182105483598023877937829549944212657745523145740559025776505118480893420165477797052775234237899055687745713355231964883688382361866017798936500820173089552839186736554375116719695114021095464789134267527098728532255938173401931892476497552712269157392936541709854409179991089031341500918175690657274041272776478405631110937741620293277221398512990154443928739566067260526210756246285572008581881763370702049016477021611735531711316826743541199550691128379257985668724570748421459850424543928914545927541205890201207863470055907129213088678791060985868727255970381097530248956789596645407326458134373830440589813319401363640636303048601125780750734234335005593474169095524347243075058266578404300705697119934650076914928098861367298794954841284713728485644257822186570696670585376409999202360631422137739669752222460884844916152487305338864528083240278873195176021528699460959763659892165823004809351225249801366974123017456858971983425664947684796838438202806830636529396857247809759344608886450649315428940224747882669841800341605708533627257594614959065473959400269927372110566164098146076508364834937927800474954532667325614148639672672143053877483110014127076337668948273060474344528504843623115076826688814569446042363442569445349528348791481799683365549185684209159579550065851668731800923743293978404536312738557853191967174104842651086543487069232122618422535836445120478451163745260631706013368097604273228994123172343056122423883823219264523951136043105659388273029381586707805443538141164846589583158850939044366814761718845718387753552124584205107648365601382172793414807361756723179513760352952123807748021556403673382721696490297091031200017951912682969992116951897026743719731969613164977433348083325151876230273144273518837180582489483257758053297956453186912044313775608687478033109366602472106979944044009572239085633159716620513875589919505365019848214535890522770709783168895922105969895845951380259783444951552549580024402875290648937032098194636890663760297410905276902926176935105907515582395068272657768300930031213152295037610357010910136096198284065163709621601201326251465910951364482293941284306347399873389842083540572529161251450775801540779901888750498718453378382409048517299478375643677857877760399853681966316194297569839915548597514864761872261272948155974317087485087574300627231267748872055661592274607987522395986046679818400578691156053566707370917782683810955853589002029316741359932969194313470575597911364564587529942303340390647611130428450588618782118307745235510535727517711596645872505269275200360699382818870068543537480635356169679432214238506922561948849548744108610966988662372746808188373853844145640301502616108945221176079551722200773342103535510638106763063195547851416796959301408870797497192392539187693328338073008989568595185237188679706326863875738310544276250714554929986545695395550751683797488833355382222700839179663079306964273225713042057454415802148749079736227208442303112189156275201017353419730407922605927037183854600917820260942331851999890280902221214873465880466594053095886568776276861973546140569950231789938991677723617679667877555107916657144588291026949793621744168320082639318599445333422860128179787263290820110921878926639221408592577892817849664833069049648136155298822767445198317470600560272435276201501729471003373963778338173448516920014786969298230793711729468043976195005154029240314939250270313131824924194185370840991110912776697621457943017972447983983045012719591290271544118302907765377512670486687110063193450040328285997178742918355058799645027392464140424932897388487696264865842729224800948809346200200064802545121028798503415205298387397558547263876511823193549546239540963319614874848664277227689336752761617792589552442967774180456618038469950610692367543455111941759425841098810842157230303959252587118781216952370207140742068505703601550196768170303986077792723039332893280977573700086643187493304567626429717996399696616086965295565614331435988403631082692123741585139899219779422857649143832048285765003923614997263587209831547720117993878359424263474167553849158461294563608144263746190094837399168814582985280000852011643452013713277149491975069837871172853308176394796309179694160162974887778673815190698374722128024660273423891811552143203368940267172554477685911879367197088298862930893466381416753069846711766661815212974432241673707454086928869817879105214429812638064318758679782775791438040983452523879262333874989665056652648616833198703789552214542699041488697819651338094966608135468411234667884703837022851587841015059523994989809506080868036879336763795520186906365776533675724236496520259255443489280628716349976636864833692741679642205670059308667435700919736604074136151600135180738842322049520853608935052880655625141176843032408626810872067189096415905390413803819408077720034759719300912181031003058241876279747394571250046207377418787802840541824033869100473989748117009768819021162993551698758226445465431308436866760954951953797499791141410117132480652552587176210105284331135464125421335628586478739471211837634088545293863379169485378961612558936934716101263123971198031397718029385190341075630693904615749653207620147273770683303541296275241605373667632557908635418246547832939975159866770751460179785115907662433950261891562866429120304314030039065913053544842977391314859924696945923862633986453565595130094472875922898683189556255913196328808008886405691900822578599129822012117811245975937982137469408264902976479853532364759636992961901201046080936742000355589001750867947231897269999794494032654443024533652600670954322729944852032692552783656245957097130205719803824048036436719110434866195570559782359886291822358496764212409835995458205395280981275497079343339771500451637592463164115800707937197169793136719240693416048283741321438976775279449581685673724679720789364037404747432931662896620386590544486834712268580047616714055246372227771666170792783154862693359937004969465763448428331961983227262405319866622787407622065459577331208030989623428531034152440072150255164650277890805448760046669529426546902569986370188860177742234779688033852385011283417973199817851482356374235561815405205965899873636603008947761305458917122138748917165414848150083758821973168659932550447532274007798277616934846251142048600003327368921803013996636789005465991620628288612109809400707951901837417931851501153561173455034131916366637639301652262677601692764519628954082159070635670716969237777553329470013842796854374969896799913613916395380837406705965184254931718503139968857031703106917543890637386119789948923651237902772765701872874630579758163031855860751748920317239620396958559584861310993405909010777190493933288051770257702526395689584476584873717463934922902361934335948984171186997931622588656351076240153567321295642358275944558886585377195390850572769301203355344622273515415341466751705878018542344060151422960555399772144444505328747942984243384498739353757729381223083479855413937037440829957775379591802928000002220692046504580169712743201871997722543694610639388518053494422856034120385400449976577241850457845008618061824133785104362593480940532860462196718629513755195135319688655117119677992352959910556481595095728778081149820957665413551341795630601710924652419144737369149693867042525105979331864937484290137819570875132025004817984805479988619305006289838246299169558231880296962612597811265440856184802797717640215748308546271251702069434128136702691720871395664203012478401960160153534258594313941899140047979570471413507754564718312873933312371352949906023264450335683739473714680664310736123413272599219192380127957678763637371938419516476230612374082658829767904403231598774202733507819340196605883597560222659249956054843362229215072448027595025634963936345747939698734834109238592161004153755297857265144960301808894930580770176537884696695429741602608595575695522798442648379579737015813677965051686853476038267891937852552047478194142343386815670058140530857299819938764150690841654267109078624613399968035811657511464031323852055548381833136232872840754645057478928164209977738862932589670499509783762192390857375018316256669328359201251502829407997532878920904919433389993477936430703045971302406806334680420619273833043074491920635786646803747043806233884636071283390528676344254417924271192124040218298584048946656789462329218490839675622477326232188324358806401888009088935758767864473635232224860961568083035853342603666423397772688447004693505860262536769621312671154499918404097865574969415728498812867944417946064067247184829073785302558748575055106428024970662952877370376682031190147641495014741343372416396945337435605526955255166391132830312191382889863580034525916764225852512184921050284844493089174695434610272610467790201557983023725042175285604117152184819336170265755161983948771136311889404935130720906608200958639044815015063593710566951969715525946184950297894537506192301531582037636567071078498137590529260987977381222900698428427322101072245035276433407021811347023731173542163991083463485596575551954957883848660388604957732182655797898491935492257070686085456183812413095040550764093828689338993011265399591213500122912784003887257767844344361735577967901512686837300704173644351910271064755204291457843960507853486899420121079247309209750646269753884406396018615715506993703648635643288484184856119351415332839776823006322026293250104913281278750682242263955056433729814780736440632690428023399485167884297114606685634225873664849672123823098892494009692557137645263456950149434361722051315643648893104981163496043507936545973321163141072800131405831052946948095822533329210051564361531077152513063064089231996798835112494972580595599355449537688150605926696578114371597917286630973213769846985084547003648399020186685030557471827750463196898450161541867788053226310117355292647145661854699944840761408214879198138937432796275325294204656186132374682875390356901178368590142110738547017566732306975716622628583558251108999275669096730743910064903923383699209816897012712035865848010544085070463302808926656264871986316396018365046958836331311809450675575946172214774601040563831267857664623785501521487033726586066723563117395812259673962161837459738578288172851189542991559286608988845846691319827659245890773543875466020132314746346838255240882302505068993445227825934351595047313132976024591195224075474242152964785231692130268282996183891779241773498319795114428037332115486639767942967755040814444555362891711345482254519124915535613774470856899913713120900544012933348806173484875393434794762216298718934629273728131569519937783247434952462529380351784593110719588843915024793446028116251205115072637020901008860452658256353272495321637040636507724678523263690781541629534757272767493749464264389560519110867718768398005645318849378977897187405191055956862763661054171123843340370970835775431427824424223499716329375446662872155023395468460660668520336767774670725051928613773475935013469837936701545269359742197623776065791498347673000309040604296696853043481344170233091017766921965650813033850143939755149855227608523218564129517928864061405862679532104943931392184327887398250607260542923517572581365567629024204693887538966229032150397994196043657156373718169697087755595556477955959583532891396768986776949758181187578653482703196265659591471696334642467289787132676125271942226858841182303755573122409935840954610812610444992758055945429573720193518350440264037165351572307960472314723150109125155038511711264594961915541533189272019783188964486104626396996533514098194849080731539169129224896018727815377931957163053966302797239516490243171089799909407949906889444426021908592589298511146158405246241805510687197305464616161786912511924577015496633858192762879860905043954442925302071782310322482391718301825485037350218552967616421338272898038036077292891098621940954777324734698531577927374074753786954617233221288927133214492831645778127304878123707305902320184197162768549300988308903414932061046973603704691874061802685681236906189624880655107792137842950731290700073219417939760784315526574958280317900491977574676204841863378838911521279932959133380121596784804123531460594058478127869335750676993395915762892587790437934002626260127129894593035564837453198970877694875273030050297832941504675432986245440683973177933764958508277282450666112668046995140738124655808011153549237685383144408271689318053174129828914620443003927315321888263010778317649414192272705371673475172566195564351676566673643677555890594526137625881059277016222607141648865021282065584073290853781675358528625441109895387253125953730564130070832731862063930786404967776323241191548692736987541371709193888007512869703629338229617246940594522322301767755321955794206486331864113828942366900141173478831240712599880738202801328861443530165276800248651343894490311587623817630202103340372936492744240632889712171139886589546002792121929479250293865149703170186424750885725063015300646008391982630246221556680785448876168903931328641119039669892286833272303484155161067552807532880696845724690286960928831177162147720520058467569935146107311408125015844127378642664601079460119546512963260202053016475781324262666141227141599909197541622567370096040756730538905295785795630652301657955387194028227068100544208254426100037408950631958709954382779577022310187853736880640561545848757771177383706953569639451914464478065935271167657538934622957979650118989679688449827705865074801909702057084117606648120296310092190496351529282512373800374760833357313727288921986696989332130262922629937884787177086232615375444061545498633448598669308264556398874574868700404760783107920761045785898900921054702375055355346767742677675733385715055329403355331132120348056171059788460606201164795210010952498727507464288273098512879590886335078538501569925328053048110597215277223639906008036778345990990524793740522051216222232447021522827675523580425112699539877725316913273859180514010642183681237421962789467330026966819279185577178763247326817981067405675502783619271833540480186839368020154566194509943607383426501817047730589755232299629628740015324018848277424867441493381137973683892064550748838416393364784778369125162118331004699214861516232978857113212469902632251960971049915139293056438501080668134408513358391852119224773348035103020000267128682194645629244496710694650437392599931975639260777004447173335184083163845697674560482172901839778218154957772886547861438155406630519694380763442943596228823060554511914946483550722648048206739076764221831105091751644125217266268109159371953908917152061210041209701204191269005678425705191139136890280918203398880427860752313998764615140362089879825101394413123491695920889201163376766815199080853704727774517321663594635938839324571770107646629437831228376887310860471748264068292610681406121188375468747931946332816776332495029455834792350138145374875218722652426700183721216024605280282180877514573492192475585022342634561778351795228225669568507049317427929492305436119584063230901774676219939972231949642373676308270571435159655068349382939073755988416624373302467921006912387580548512142554518004052067847647782202107244464970333676404653985213283220745803048609393461354307340458253293997404966325003028407005162832526271589158128339886923992049299197766750354647116550312236575138020240360474636139454140211240188836020091627009356098059579974929444286270859815265871153601530285810033339973789163715327585304187328764097043541691636350988377515401711944592118293642001682552376651433942646088438404684986592094578907319782381817189265072942428130277026958618005016341967762909546199642362961073791964471250448139195617986540072578928115240312478589189385360039258582006337197900235864802844826162147821432947168213339656065455467649103551960531498086997196772488335799940585581367136252247182854242965121521951751475416786194416618835624861955932670263224969390472810458604442509241880111797136775437166634836984139029765362941061268260073445123293190969029377687723601253346882896757282275085009412045959778984966577578184913571464624066558066904487144908267199135192849619068522729187299202714748872606255943599199490281721810095812177461765584594241866443655711251298602962803450005725906188643666352216434419684373761603828007667346165408863680636081502392717722381196294129166271276765323014226124766561295232552773383610049534354335466565364378781593440138592316467331359657854493649930091126366765220465620353442724481616081531557743622539357310968863387016395533155640749441326603472159680441459748100635164373305036642647613104602209504784630769595476862420300027334215613638950807053654063929386786815996108040077536198597294914344229148477196777301337244659552675370158633679278114753309273561044223198143519910844134395853258836598095755142211316463246414081883662995394548185982524274446982138889166429526441436007947149770723851864625528257296692630355741518139603495377175691183343870989569752119910861067785644880880083853917749449973355451053611607675468894240448400473907766381264502825490629596939568135189975134136404884230625327408646992585145585231340300157362762221978601981107997416408980848712881253833257008368243394509691361306521208560634855323626202687193158011492347519118429594365471828464424424199222017857863229987487036845373187865178755088581821116629915186075261798196237502377390102380647066953058867121332708449676353703488215869978959308548155005386675713295251491354080116291832708759433374260830020590993563749142860433305355018652839177350254541738843021119947414166731363205930969008801058468978077290661318370537394690321858978148195345039994773727754452253031183330737880765735308423377615029105719046752107191052572265107538328387245644681361638365546893329225637852878515614377757981972157523883973713333321629823057621648247917186627746104811938764527341617935429109374498906421095062376379990307883722016711605716303134571294547882057983018637724411064356082911940758177744432033137840809619223741786121589418594764902331655205355900170218480917230064601645506784017254158218795165392066560196184454020121256420251119948468261145084269475578596614695904144274202533934650169163601211790137771752924547949679898352117132904419042630650706185219750923006519985152154901436481930286983168011823464562569410387421821667088299023490520798161988361761770797287097586610682089968422135231429111412123370863450378027906690035909722244894076609590495750247935741439670903679898424172104500394697007534926846918346330842767335926940667780638137766803868288622130207426282584699524603322211801509519441015468205955810647005268377490397957675149802510485011317878462552514622776932102094364232400077944618492240507914282282401138590191808686386377344763490808645027825066945789741346487666206297722881292742530810324643316301413995570514416073494744908900164671467400395857200413066860436654656349507501513528960553412557330798700554272660857052357940317344881235172284640060005640658148567526985788755234749908121356835028636576664219765086861327692337552841995429114654134359582770029546253738545142932355488698771942873604343338012136489182044297568564585578658938943196805155678886286085369205188031067492411765815950923402744656583931704996285939136575499609307564626610817450538342167584688871137387179774114088111531429885947250395384389841544687154756928119328310171161646594144146600968217922864279565786805162990796523577072092080843383031442948434109904244551683184147711818562035099064222686445940800604007461137957589815700404206232530082351791448736019246009056581121821490411109878680885544215073471992281232762972924075552829898191421501359303930987267289940261636898182043044658526155629163668470328308676148382079078109411929094633560983788391047398799107889766784376925963912077090282186934254240119880384908761388472979039609218047809205989869559900509787156437457233943331513600043822633587557725588147445786810536839634609703022321433939081334369888887907103718755109301214668980693172772574116051530847353275779611957778594541576215826731777064103166445001514543962401202297933700352330529920441822982058082808868420185654615171418775355576623982576454636649377750760391836464215172565058805253631726127290553995637793118789658369455365839515138935299650745073576500727766569351100207561141275063878996971495444257465719544958946265840847553224862384725778804483497884596852114407523958544064362671504524119457578699435024687190137519694887349676580074127690303819737801529888917690762168898076204147175475849513106106974101869271012740750737672064085006595989313171203994687088840528043470944361652401328643096656692381418262446928006248666488674679204451585442990979132762850777920637855577237440779431860207132953177297599191940021210310304851071765325786991523551990523177657657522382337259199812514807231458691378782392216147623279436705627141190611536047206707753681474267592638175599928507370035642434567878243408509466872350398474100090531431217678240072992931974425193905175792096334906589103593430592954376095174871471470379489444375185656686252499533050185502683795602741323599890232864801669747281548004637608500906775970122413548589138390828997081593721538374418966365043477900112335673630174941515729199308063934940494959499136239641200042315463664713013109968777551928519840085981827975030919248181363966057249027912395332736992580527722767811063052386878791868858037343973040014340138692717986286029647139658696704690376317250085742330826895999672000273974983129178079856573508193849040726264501106207144382190749071188121700394506143189705142485919670435051764865391570914906362764719758454908338059428083728527692346550989568095269359655286460090049756851422002785475734969169289523629236580955923788552263483364227434429368761956422520939951030105355800440881561525721935571751269253013176676308136836642252012258372599418283960089579226998083297854005360817434754002260997260597187830272481455093911103059539057065530402474187266727721680843814065055967409401063320542937862330987002615102593386000035050946999712112758487329754900649452121323851015992434016326101505136029987610850592884274831419784454893867371221121629383534493752904534857559433944206182369878529226531589094937711994161106653744805130720538942587024752195281953961821357620621539390129881516107793633761047244151678421122259778826818129076507226865875335313098770773945144330897185472408257622402279848478019336138252687508137205916060719441019422579262834772261860804152251919003792846898279844126388427729802568357681621961345493719910337364539337941075633515513284685608683950980006296993510424415680943056211936944515618938826620955176946695756035700099701215676978372230321145141591858349924754809467147459381962417783265222787532908584564559480662255182702631400528875504263634842481355972593139160315740556710240624543106249366162211483090303666806613097549951040839458993703992955210127349818315338581943441905710327961670287929614021014574210236578585964610460597802556037330952112208659350354447634178123594752063644790537185373227680736777685020240809019509812874601937502927488566543625610929133056586088640070058464070213370498754442501808570967135334504561934706594950782036752587112153258970477419708594131053065102262660463688522947575379301410563542980700812297108064875210362991804052719446412556142299057165771615035373994301623528401335192551170350978152323747319680987395461854796045255129395856584731579714661391421925547563169433779375974413461558494362617098101105145227149641811080352063071734177335265901137298575190586876366595210030543114976118404479058247018356460071964481503961156061602402756941789588974292198958637901795609680487865715991674710077380517455962643130152734951944613422082151862824458496103921053073499135631069100457724088037898814133843513661147864919888729214057260463399250833679060128856360906162675900612318019982701496690116953399374737922905708049725552595132560183663754060933835874496660648919373324575073167353370131638957387703667725373293004874386162047337321233214618816825884650037740848321763722560791246732893987063899979933569948231826643018424577300611669921430081794805689501550573705960530790606314646415842053580279734000422559544728311685722847406309429850047484947452586550784941941094502888461977194378916597707216599124828076806943886690023471675555000544840293426313949825761105941649955564278079474142183671400827296282138909756790989679468687505266742829567131954018724045482748004583322368940561359453027364344833683890538888739539677883324021355890687398298253007256572269593120368978533153667911569138177343026763358834551716372418503630594597590326342609894342511834820092464315515918879410511135386541467570409483191372671295069683265184453169844752361150608362864437957741168943902257775352020049430781629489307171743155084232642590954612083588243853986748730071889108215182638813694231727170178262138807282149056083203641585392093651671516382447701471297564020364444898424603841945243412772178885839237190587403024873782753002554753613271680676220108167888709825785388620927470864633371689388703980666164244804011647080587651473386120496408145871341819842664545156287359816434951987474050386216939068356475742200269782285039070263636710937054681207928840280477654100608938771891637989385155977780792922265690229850020680982792780893938580852502242791001675307908299059194127915075943951983400694799963790236993805531245686874589987247999400069964936978578781088446731768670048841252829463193064382040019040616487589657945850191897679802679709162690092606426434145194721534552979570972932534724954896442349529909508168929954717590776630544337411781910525995355780270165444833779135124250933911365733054321551267873140707399002042461464817895215271261428685048075988691770996373443434214704266940976202018592231322607277046829086400548271858341706048090711105878445992389299664312538528610200661124479381916787393057836659610703605342355809323079778523528973339294583512636777005232997566316338355615362540972981063254853100599539187272178146151240456826651288199403463745541311123727162364863301211327342041561639466662483194432081488828821060223278167204619502910248530848664301381385887502379269666001310588928035317008677403310935004762589310771546839532653776155411547129206545208281512319455867913084440978982410245840072792554855331477876173090825144981131840088005635171869817589185412919994538754560790948728249777349706591075530272559601968396972634707922963439537976288329366572072259376993051130566900764830680919832830879888083294230248828646500164490821339855496420681760152622870787609033724834815046254903269650294774089916450381585183937982993526110308797431894473685522885065958871971544764657414624124913454322913167691040810570435028348133914625956017895667903888466895720659471153199374847657664816503218173301796563593023922986375409800359730500064091638894903713430059961866222782143519339798681670614881405434556908071029835698664488439777498687955116557028084835096287618833426661130395295338140826614416204750293847354998212169005914237953133555942472503992763530608462145385403946703793448956205018052130321934295490908617337303308722601227423659490587449132128046150830537940543939639963702565666458913477362401300356583167632080537932549102676845409436973370999947399639652402621609507446852135883162281912695848065046407151549849155575977751673601606260809770560416077555266634262501384968171953052468387280346024893575554071716373107132512929105633567680297135958600753757776243437062007245771221419197621505242827126921854940576459597740474639221798485589919188780888741204188669521788985728463633921092510615695094362340744053591583928073379757004408460191220935567526927452054169440610408417474955135883626543250633146795805001111520900526656526093036609707185586130478776202984293016775022892774134343400405876436070219874968926754243224747491194888358755018796325520812327195099008659094901905699607831648059786037275019235196018860859777333770810116799105493269588496451216692687400015871485462468270467773075131849616251789115222283397531021812205517883017166062067869997749774764950982821977576077061455141892775357159077506013810963739384839523050018068975090712860811478676475639424396376772083180191925066553898013038610550188383772219241113745114519357939066597854468140925817288508926379447819977181597401970753273835910891319430496269325030370565940513049193762592921822424462112148063201545856518206229205229925034632369927655759621517792996949970254324598031402829683128556984057478363550990920547996885807695115358588052118282390202593744081582068793856057007103569702105370447622285666985167166011575313574098807946228714165551134130634694522323397405623942803166566188713973532339264476617815246353719136353433033074196788671615425208256559846574678144923834338043987332888790885178081336750127632866701722921320882216515282912374962198208418759442276167691800074867280282457346064196802138962216369324528288069900004475441393164880096539453115300391807645028813750998320384811261817346652583167308981935649878749955371245859224268413671284078225999831912631179515959178383623095350325466466961692101738124687044523741088931746569297028226421753303132524969939189778123175686324491999834015796889920322393509793065725617161805185919118228275776055318966426716718883383026686031592591657277023576864107117092898866656994184260786177557293511540786049281595626646903120588718615200201147535220750153061008119638469805638927080441362022130947432868854312648006542473891536700521705180179183039508223108860811761138299763804679076820183238433836860015583535839600865209169899664748326803439428168790649383230547336735624729693726545715011796238918187006473889445155369525551198481413904258565649443574665079199235814560491727044647865097855606514034081849224658273700747648262059033470079674975052711354738143847484785332314477117137891519462811734193587657815743843692558124815981895790523284648071304767985978857463938329780727200573727893956740413508259286872749504649071020167703726225981139128390566436879265414149327539827854316821399995808933133661097106837111222627030591192933459681591434051708791832551663118674509352688906135265628592713779748352358280505159723008564012688057744426519443027116125387444441958377455881699576739052433878553185775267860844038706310477908309465926547476638098952285332067359509259293491977422702786589117457258895346802992285137581738936706022460437966376113552960836503321598351615185573922965173085660037919567056077632357162980021988288942383903096354523349493647047832096212759014223047453097587460349948536075240174168888353897544337475901782174755446994709585445088780088301194084935084222966485015839286084049206568684553412569455152723059962327687225717303317926629213169744912929429431737857678888325116521725301908457370646897508606626683670925998515509121688933527505372475970664881071984683207051404168811560609602980659297913141465968572767737913101451579895576477751207665073329835122624762793387415086054717994443791637936010528144056307909684596126264136118304468992972630013406256990146744648413323405440155720386630053964226572671973241686585350993188258055315979512567552961611970740250280576249690054150153308254795554775685241516959028743081332175386782736776451972024374009614643294776984768657608527752181809506177534115870838666645184787882726642083803754648473004016592787150315191896742868324807364174656702020328426248281855694693002313237429785058564257305391795513058408962424043886152942699023542020637532212332902795656965584573241632568321804280013860114861829127549775578988199024255544479226656244162549866338056470986763133843785136554999671568070494700453981380964439457814570638733921543906334928261075410929803442237391010172427537988590471318176391024263179130255583218859253188013170373031810865094493010945873818878591494596586935530192451045690851595039436780736675034777711715313009864574799408297960534279804055947710229080225921222289029431630036283424070160737942602295032181438344184934797002630273021759441130313691035874609571541980982411621595939962978276816808120970802135675078190339649919588584021639755466799461744917080225751191990134821104205770644108909806385550804496804295286082721340032201606286177962121103936703138517804489422073068113907372549954634314786133576544883053236619506966852166647931111192105825734613375521227602356588099810004499026231927500796237431364310891595040695642801305204650160395864693325212980641863819397238514124580638651753662814117051073992791406365421815841774383753447112289113773625602773723540546143917524287930765301721384501173873186336807373582391179846154887382006893736687517004948562761169855895095679934701677695413094474435332279267098003688307340625948135486312284417332949993214863085595881332125456420770635119485184922658534495208131084090353554834068475979745448644177462699071874095126028029538476855816655874646213655345742731460261981721512359403099263256017169835984762585990544369830339449579144631666703743024228726257071432411775385982350577800150119837769754115073899171043850131806139886910627555306039393738605702582522050641841927523865030156424868360270220905905998847555616697477107436708489068364488822815896948447155348564452012766619048964686366561056638757892102642390590539456381584704781719076684687171308881712623373883814122983599526715972522246218624865531409841614918022308947751107175949752486919801924105202962158268611042849021039293695738557951324589561146452588282794805543823307022022141122844251729727424064143861982033225042011905094943119605300102571157425929017769530297213569910584083840182802934610442244335216670961795522123847438932040669591580097032060807590259189408582888726383415198082361120884348654489382862565690011284778153575942807112153869117201388317217708431825958475434068041264177828318485612478334491901032867689946370915361152945526242922480564377175600976503117775890505966181591025286396198190768267704604067522537895738774706995463794954846616788497582004357676267570822256915418547518314717034009288835280678913296057080015050083888423030831340966161641045660192690623826601336101765153517309488259489488368226866094239393387048066824772807265301903083203020206809916307205816482586109759723089867396257755593990246200709856059500498248202750681867068883054744145773499152203871289788870459679207099955178704888046023039835855198738041518896731334066513888552401685484193461577870327341274513142943798621040432234371768928388978639938025842192298492917157464673189205466998218048192968591181829735663624810913037802990108673995832296615962494535080602004389939058213814839070268701086234922310320308629491386149278336759910608134818719661289731503770431552852265273675407160942576091207550787802452501582027753866556817528427613202219752786200860154611689570004851756767444453278662994379562072684262776397218831136282454906820533312290687829610247784261028347006218801820895667746055073878235353398755709385029756136193305102822110075669373558003495368146314812871641441051262817479946751417001184814167660380854120796433484305798166379643431170195945591331165765589965263375072985167750835301630096705620170625331450225766184369077521023635477834191591312733526992250609149062092651807433990903081858501250761634326751290711621303215948891807035752788215453956685048923874950866981681917978771916718369150868872921655430850987381318202111916593593983116797938633934362297073504557739134300891858203961990165986404682833380407973546739790289949637794550029806270492555141676465417424330171193912921276951579387255578067003172471064403324973233007149091909904007604230506557018398011877775447251570959489263269962529144705888705993596124052537488802241949999965067448043531266551221291526153688361129074515496911210277776131176996083928653071046255495734374255655412485894808528524390727823649005713574417932517542530265085240580671468232804398974712540671195277435118115377767735301316815622197162129103701004095288884518694914903131633600349196289796156298868804917945649270023132416915806371785507864623962209651514125754843011097011532624764300230514075703389877191602389502887592838200227081058385616210510914767878492897090577906843519066536475173506058970665234890464433480773602672972653668190375785353734641386736613703798198324728704937043662960916306997224087822443843055583264197390040676201550251044515157069909446894653423391197895917775895189293091132112591135256987663138797200884320677876524859344101432411614292090954141429703779902863126535229582503383233370396309938794948881561540896539325728896690403408592152013713749979891321064292255940067973922173820027986323425840727866475499830808441974463336752651128087118439207448499801165828158448157565738877919089448636040381913106612776296760667115255618547638135141831334635793203511868967170191481374468809304214651817032521599282343643325868073359490376259591850810606381316894092989318644784043757642313246940128254374239423021145801149227013671682419276020820992167497252420154858234422424781441713999892391473319895794496669720314254696266786422931507380383969848112941124660720293512949865283781422554342851593494219596081029630542617332515478783831196789997643505900092593622303404366415736243095047726515072434904301483111078744430186016921248333711198014749822331049015358296714493098742388818718214245523455101489684295111044382794818079563163706495627050055410367416791726818683713867031738388263073321413164490923668052588626617049763764022816182243524284309432902137424470996221126331569715270212503893782602642798833018031952949130097273509966138325315483414498437822241566316221055239504105583467564809244729457312990940789413742390476472402601482604173324677417339846380035833996064394908580060375339618970666242050810578270555002979436682921620784375870235061789361304116975343902371215464352188978007097705498364129297203304767865290141080340085006441147313629899967015690847498445104613264655666085332430437181149789877172872795781379711398360296870203741885047547845755138367772883805933259195974920094794479956133375164133673846371233535133304277666443458214079070512224348507539182044393158601903035203938868526345416959790160565042387678985525183262224764259438676470444676352791263971021965023269098456671425557676249992918445277539096699846482738187355228717471531380984285803124165248881317246879595220533289725552075634471715648363616307469345684837249127805335715234553060788220573821871882919951185119564759351808768836637129040456185053103926255984441076618428751834648053819421495679716300689080492947434341723144495999957774298148938658986465927903007997127797503678243587995523558083940001185874022402735039216366118110392641368176701056127621197444803344176538605347747752955364572092270944397973647788963875066530369497240113579806973760713927828107753278628972326238669043751297041786446271879092822474948278379777203307482572680108759340451288742555989475790141527008307763289357248011714448674761597725743831977926796050573579009973952687115537957442889319907853093879764849694363564773323508363092516360561083930664487349123149185009533268749948143009007949244399587526131686990969150046620755874069983816497131172999726466393627445169006253998095202511951972471214175183572081834533583969047190778896778760221472768639245362406391852592072418696629779814577258487465587117489446296473231525436354293817551017793312151712904763874918022620652543764016640181774693160738192495887643884447844731264457420949740135160793181732764152238071184453868723356605282758972932303140795281397159032540877629470702357554480537065922522003840511125698616937659043556969619889333117525802909780228340034367536775413495067160455526822181360298334228486771524626446887141592864618176448736636653006142730626791573288381604444137888849959083759586910922716302125534468598121286202772309051834933621576714155739891926966112749291391506438606026125166786090653153398149236009041236404279671546985358330153452819051679923042216677375320695240796254001710036626860594801548163627581483036846532997219561444367820386469395812432233577139942852998603774739175967372109651770623599494565486396167522972250278201110045953010732799635548119524431639495720241833953096002339779537810428775806170275244500962293647664135876468856283423440652174430684536282547738444392375106023879639944021873525360048765391406827998961178509190156630419669573291225106394811447992283173987187140641162845616303975142689593820194237310559338589479757741835943311244839790832683486033435106852095278147258444120261296697189995989304113702748725527134288542803939332268398318800934108171709709412289922111553427041936529386665739469048835395185321103450659870331815028785416690648727506276879239446351647109414376050776446633768325655262237891409724815850777367913285951969193290706795252389914395596433813972381143804264381539904831221462815424026628571615409922193909124493527532362172004560944023364429920017819394100606350224523328937146331070724322229593263208066455510967232697289845671467292994215472709988773291307109489224910108317029623988428535133809895229691683835999031914006148140860693490122810488549345699936601223887714520183478956048298824747507240242114074410529566431560697709848178663600130963595944527566062844870902818995498757386575029054214661512160953538886198003164763731058514537088685617768397361206525337801269290859840190384784842363919236036627408860690737901404050902939988064689588307173563250349739553995926802080593343719875449017153337695153122757058178810783621722310919266124239679373063483778928061818124407607117318416911099258742616448251339018607306838457481633027346635780965426057749297368775317085972910305727446416551217216312167102938662488641844015363324949582102909303372166184945190278373871421040190635613284664044818180557863730085066806070442409912622083116407454090150926673985101880113838222779180263430903508452689040028911545518937405083049501572655927651400086750330622954893068462928166809117030873741361732163377481700167764399358548348311103944509140111183704787589854568491804598792863203974337219689053179624812741656238732714228629504844492460668904762364785291060395915202357124582515163006245686030422680842674131470757269097097582410762711958782362852666932825210375067771617039276925113840995579695635745172008139801450943052021348321099218147346803724973205356802662519028853986195238048375160903001625837807615462552183584622052098504884376335102833373061612166064033631324566469938606276258841014909700625951767621604786383411682616008780689026215062996045514048300759519297979707762971933794972682877022359887140109323999770993347760076853779501985903288892562270179972233526237567194470385756116596366829813313807018161305850983920111888953267311744692207807864409313454219475279257872648030975011121962073201668205765808276834630489483498022721883936456106911917881838931637684176782916635907023832699593527276403419998207215876076658493407413646723018802404699468312431740576043676902962190759337889836521933146880674518717252365400882129283507154074114424579578111190448791640961031227491656025319490809807900474332978795010755656948544546173394195479702740042207896640167545528893186426055396744162149658353531369351068621320614216995220628336356146524683038120379971511693409385872852367031563981365986249350242581367733182899856040175989935823271600533068158018344565893918915805831940901126469757986040902252991902887267181199520899978159147195764640288151669976868846484105576361657280895807901039909753119558719877500856189203776567519907767221556558394366234024076641317534636828162470291923666621254870711098738348383035337576431783301290437966589227351262086612844582747543487720718222138687590709188257279947778916995892949063015183370427532476366125811303170644297575238870262455230230157412910692893022070081521297316795291802134710829099798234352379281033804099635800476913101250945907640941800555413308392881277700709407442047192002372956469268807631488407363056252003706991018602133937584763029555632419560304296079654551203192410401421682716488927286294374289880980733470364998586395723204334213517756681547827766952433352963387939570314071192982036840095774275036309258111270586573844257496253978836994243144163770250256035188629620534360166537545757640766661815443913289847380194217425400652610858622737836775411809154830916421547968500161138697817940350142705686664021132781980030405981561091919894978288801030163138062002949442852222341969072833081485337747576268649195403292233265781979697169360091696060217939882154144016526741952768301712173833898303056226151022174793495288457231355548769935227943087864766392330939666962649154637923550010064175789976117607612353985668272925510294645850774455571461714641017953403218013584241728235247740707894204335132951005746366733287832972864990613579819314540428125773511897207668937731773088451910083004162731938242783311921094071011084444919273272268031756246985656502187853607774246973997806922551946637967112491111732512430323973143209148197131777362294352976386492976547123572042109213599167072697539272016357810473786066403800625353946548401864678770323410720542416036107043541331364312258769989120394216844793809307096828284686440559236166277736769743280066635274931918457090897205610729507930769850285900518054151127292021048191926822212458572197797301602353831111410501227043161160857856125260364497799456417341437565064865792435545864201856691367899108249637609541083728598925513448524437886493522170796565007974883658806637267728049694951976137064495785066752193444544680957259930056463042082194027098599959179833760979013980966386890795645879098198586160626163669559301357134897180360403937102196865049702094257362579636840578866332961343541627066371655253191204412592790383129095299130107905411801415150410265730932124946213319050261572376380138654090025025391837690540844357587787828849529563512440115724498208008740385391173752627309788976089287517306736632755045012037674601518081869801992104181628154023446926079136828715367231706407291895273850652410457618519722176172614752093343942207184120777121979066070129502949183058309748579013327342419383690867101897168313579341813112008915108955536074701454256739006247035865196293763457074973884624839946949745540481019987889644734045107047372037238996351730771146432589575490446655095912820546485290362085093360093398247652482881337125743387628974177332151472873008616189927393471283602292919854102988230954761879187681416744169252308325946467864881662128296666433432744807593766357173406803198151128184020077744985122177930565322155079658722915841219358052094707687173526096773083657302530361838908703657105112904512899251000230359660786268122363576313904953978412423103930276355471812605368511585715327035720126172090628665666840103684349709900237150328656421421292151614829537636195090675315573108840549300422294059297433236341970515893299943917455288691649064941672569909118421016130203763699819125957725329235987277279136702519884592003638867537250042795422295418747394836285323628697488353194389119291679894467084304483384029563756704400773705980340592855069378716170264238849544610637702491818561653094678923150209727604717778709440127235748608073398513392938880332688864694650752352690119141308635522669304514984620252224409779125353086758079716474316166670480387426318604839888633630663231031307180078635522717655856327915335155519623829679823427006904995843751038756883229631587719076640534105176688827974791259891217536722486089249468031435920259821924357498638710047674941685305577001294392578822193560233974221965416592438127973921704145723473233429007793181063535188014703285480650894076516187692132680170653083730749994849091176260422222365787659762915316265404044263535031023283891890957450760606982153963033965000050420442671577196447842483813519969800053551927154742669435512917829769517140372889265617872464892560147562878695404669496194097827886085531033451102802193186340016176108758437076466417571361021738856563305125811636461307993447979051175125154166769240142896754806628539412374219064163594609426636446737857646390735001112369615916345697235630893361831325821890861604781993968882277600202748284951417763779171095112908744826983405948199646593857433532156688622628224760232654902162354212578523709204090279052102092368259709799426855328472487285440429616967072559075150105724625704049429474759758349440854264224521153513841927724053256683174691755814194533389287104895382368406074572706673576604264295238124577514412543983979770240909733447608516539792985154551490919191367798837888423511547534766827797685026168242802338289555074252736772736638826346877955120729437037549429267284894825521856489013875306739400693764018027056205130014861333777916434690370062697682847238353013720547823041156323006867906686545095839229193398999258193478761788818030679207205753037489735555819531665664750614203268089972594791325662815841002411471154136146819766000971101325424001052721112910436934889758740575600022748346373662069779876133661596535418215638072370334747714796187385197779697930299061865885931508453474760325866857234892823575683702128062854209914577747109234844318436924858837244083007805050139357092965370032187147400724242932065321153011601393517209135224357034364669293575839998026616122892953491107150178240958267235664919017830933325464618161422615622186521465973650332616728366095266662719677504511433199775795153668449280712697405644646707163528765267747153075144903492641041656016532972067031282073046554077513270468602380394107483014971069928300033888768723587097571309395399991287675088557120539555550752478406054847028341968360998771785343546067153110582468776047337628507847117753979311888213775816605117198863489333620787717331681563804971459981695067267284773091444081922061597415759855289523422367894427422334099230987132118209905042435851978357160632519588140867039770914368890129555794682970886645629172131390696199230763016236721802575479357274637136132985813653704129100796540190998033817448240542682865780306816234388866128263931501146947712127074055610448915451352481290615950177962574458613337562821363569047145974117895299985248479474973121781847594792435799866049127694876828292174744376165291463719214811262020093898593168704682884492858565276086957395275039692491380000045372412783632305078579750453166439211071638914514549668499852303323452424095766171233207569438805733865087494393773081516377448547403093013396059378052888393796513536083847819287373844978668123689480009076620487832613723224789595762783527943196227415223401505497726387910201893722886383428619105867016612485307452853875817047770025469047182722850697599829165806366858586086505665930287467392080703442531590829727288202541737054912666678992096635854736282073107944721918763450542369043220020186320946220456007033713622678586210021024094510157890857417029616389257933599494786041305169319801070362762881525279077102183706742498314420274936598920913839558046718707630435318203966549155562443276001148827848623234392826105019297532197900125242691972223788095090807249981499314648749431942855517713113930421859293361667660333700766355487171636667531377422306627641680825476167036409447426578067328500184359394780978193090676777028355968583344047065997001492294411532863751739966422520761991660246260413667698546981835095254818640594296459183840450115250593122546389096158912846170977811986648936477874313387731295214679715872493654181266520237464712169947835886574552631052649539616511855707784355099063935286814046804090932079069444444213842994573374677519524075144897841483204165916212335764910690602203362581396768157838568948574361023939334661379148298729696591816046739020645897339378486072436015905842674754657686916911452384245897713809516352487390368344881118981583736049869214511362332979387886625018160865798851451121445436880320286993437239494531015169088055416466537564239011513294340433312082689708964611552224078636292586439399026502552144421698382042346822948158096175063196938606211035712266039095811361225167311636538800660922079501725647264483405507210937908437502366047906431233592561011475058567314544662599882892578309362077037872304595173695857453051412922693954391823453104931259193491947713851777023794839352471680518844435106811333819279759198755441275564635496903624690549360192721207793520857601883957809812338216298098474318891486930009693701182364347820906207830732188799100508517556922249839380370865564000824963720402673980882023217037519164100367728698191319256897271775257912427411550468253732852838221727447164794471969026554491547538154204755492759827320392170974878342135272402879933331393231101783254798696317303830447233602425225000869594177570283867108022024756849022688336417123613039647530175934182394843094992417372640841485773925536570280928822862754767909598855195853003376092136400742223044370621721997267087177046010027883078021646052093646432334126861063216772024754004786093661349800906117615734010133734058870947116485750332612455799126015103023042732974531482854680473966177537912070754031998023340380695259284575719957442374119598936272582564073859597046377587545554111054865875296236471377702021282035644498595701499287389110715399980627327005939011440284793195323920345742785121871875876965990145857783979149469738527562999104539070460656620040126495563346270733670827370316100680036138163660365512038144073512418668027200883828857066623624246486551568780368006379735422681380758243085055745457262704689523296774637704571206561936218211011065418556103927068092200910026366968156512003388169713764884763022460159776654695657286222549121839383927530613727754811852458941905351538049070197489613413277884892776666353155578881581839156082149899624319287167172322649812502086954955156263983567922994933528000746068033118192493532190131281548628474648143294049802585593921700564090581203402711210318793874755831318433944927244143225334733109435592974986447489608661349130185901280729802382012560044469072964391428364624584438436675298424987225304402018264664181395907333411738501027429028828938826030005181962210298108390363299847235726071146901177347955490297711544103502617424512754555064446132622188802393900784121119105758102112324831986722653549338256605755530289012781239423348262010123447018067562641265533529200654809573537121648596488830533825008081158705456550021248443370890951739388352706269008934026529087889475528127994614348488933988080643968732269000370372210642396503824801926013323686792393821021296232606420268805808689326220675814566898243190009252592016019442437834392602696546460540001197228616233896194044605697824551692667427860906065645383964139265519662828705787982801392957967805482162906392229906001782549064059592961039893134241189729833760506680152098203821703609568430469126599889365242919575903970673484194901866708592429978689095077325683819752110641656611431564343444506540602589691735438535228381642615749120522947463487581506311771110212797084344440337077213717072236259474875329150168557887846778839545135151237391154282945290944994225215271614225894411794657994802561129279848074583501849055961171757117617143988758995444075641671301623947316906111668769820006504100373455316273349691870338018668736954065558236519757252182704466363186691866301077868964383495048171298177748327729279834758473435983763753292435117890404200609360461594579837358048061206997228019207372824266968491375842912415573203855661395557884439884654908711085393804698922769488306462731077805081736766762957082101611237234848618128378788277890928919498091002273596544613461426026538415665042977810418554432415494458080416127871739430364964580648566264126200094659901598332329705884962741905221998998543887536304919344053155995312056775155626470448697647020189625351769433692752401511659139554736287768204930032125461372270888737750204925368647637874058282226022393015707141569806315382263652923987595000304236142122663484922356616930080884339128773773254144115734688550053713620177785945215248878062440340359806962229295513518634217197300284246762305839237372667013783034277180450910571152622511992496419148601829916646288116843554247806834349021222283440919270054092008745257831496003720976933460268381487852393913216965455586664683214412930021619780698021202256848559701003380203997365012179265026071069534491052929290582263496030473652990299697677721180243426802577098957009540896392149248528250310666548747266819666755296008663771694928007879077938145097233851704268745894047992732342130000423525631466316392200845233402263243333608120503228053192081629273256396935413013927193153486381979539951700477452715463504609204964930751436744227669640883654636803964121119751885349256550650883740200251824758848522106078582436845359210282972629975060076095935961584480597620896539289216187205360038029928941366642265648977285203049350188203289397859992897273847064175618150507162491205828992168315144986559176146829512061543326928605233679948517356897511840543955190617422985021668280753424267539472121732803285922595624910480354047573226379110485313046391278713362099393035468294345580166560700055645240538846977520535471731990024734355248956372834020309444244125864085602867819802745442107336798581376011234233556128789330514763505859253312255760973414835745956113723850674383799840800387317375671169474203523920356377532845796839946390411135396587041267248553291616593604170902607633740804917123621258370074782429775413062416145558340107696238127007198968036008690864702781598812074619752610373729591954984287730640396851822993632759107036799875285779529196911332087571245386893245785680130704175427687877288179568600973069158728956947740448039627637193847386631922500544032473131046076062395064175332200900792225605645788309636164446143816670786749308828534249360223305747372119272496814001736486016152947412238163797068643444786935239457045086824715715438728238141885685641480678268512207396687774618393725334781448157278233148926188957080877474477006176701044320366262603412954711873443335827170606672132927254274132066229769905315865033282488661163253324123005591381480149208384383294008044319166780231850337978188804822853161322933185939634985790307958669248902226377341195364877179370460734038580195971615412519537027668567627734587984722665902264338071594404850373114891362086669201897126589267685536944681563016586878221633416583266709369083153662210347120405035161158798735901705235086018651275349480750875418454533408696734280538766925146300886568641604841078886528998555218485956738809614653947980652331558088752874509175533831734424763736279275921344770222281402008069007124453488339225145031303887173456996514409998644962944670172905969104987896318761480694596428346240491638697375296896880470848575281997247946724069138366829421339771528945464052785136899506970272096207021780284061214905711904090996674791907429255767708890254265151452666133084377732599522746571384201188744621965229535201935072950240691743676485463360432567697966447459299546061824669657897778996296638298826554091036506537869484750932006432931164113630224924090950967530167490711749748067771730930215902802106206387888170826524445515755348433895468064683227287780734170702814394755780394127093496059709703610586030368792422092810921809977910523028648002992188958932398224823196092417944440817667287207083611312351932240870729261802302908410812325114919984968628783460261526839273569369602310378365922518255230430402057580887221154416582593608028271875307651032703482718521896398414741951352127417419128418577286579733688060781566079829684284911635474651820838244896476640132205509555244985080720865345290745481743446286090362345290475742420026008319777497227451934257355949485754022868083947673564393382207803150388560335119167483420190517453131965058523925016279669940402973551080416931252837643021845547628707549229705666926257341894535438213618268992578241696904076562786351903664295956926345748493030595837897242447094397879646814347404689070588092365688081279643275961813903668318329948578912071955135451327226291333592948071562115955057626704322788477405539122754505724524358871190250922005360852857063563003737272994412110584873723009336310853153297213362677466984103899958814990727882787059451845367873210471744603544005347169048264294099096739608646158731029760315433852476821856632647510131328209965120129292087317361350409612592552288153716955276615696487728725653758118032609667502552408988788133715851449112192986611058058766723027429119740526388354539867092401769059006076852397652922051752445104828923399177712425731308306193814638009162556401291059838383437307454822386509938417487534775203683860909842451219522849818569735541372495971393680112209870181649037397484001209905851944832918444480427145202154826311557140765627427998220803681205160005228841339220104366274483687742476803498635900551320709833048405107677810583813094878598401967444374477255038692313538754515168473122696297990256401509802058947980943122547368715487153719825532403031952624110166161898438293010784611331138726470105458456733759363861431403317177276889378878354809317011068533572864494503450877745388434879666544561982592790016011595066500496899000894354667991539829166998094132266596027489424011636462950573956495259170944347079272881551618723456790073236643408196759323623307299107837883006569393108905893581430009515540975555247664012858205878592016540639815747496255466068245989239572406346484506080964214229869319580538735164173533914592864910739091794182930316563625346411259993305772772111989355880118899109413000588904855061340446439510043846443432529848138659099092961344276483347296604637712520828015321240904316408548090753426812217094550352397699100778799016412887655940899626762904135679030061021974066388962210424114956755317755771084486256065209304524865594944840639825487418051642079448869093529151850356686242822072776626090274755462162374684175614529776837294928156453398614110204979501878077840958367811478643469954943865999794938912148697174656878060623311986999283905249474012536867879873881303339848455347100631889832342346769876106814604632212736857656585732627842682084810738580805689118475661708748520215839229597047148570233034447137189354930648996456585140937012579132276590489240799594767920164418933245435010801352213442188500666596767413141796049041417855770655211863402130995077520548820001441962610029459671995394370321847273962279124970627233344147466301816104964979460003583254999638999072685692446799691162946919290920476603429775474893858932051862877452908151828424850032340170133397810833059408731458076469581047849885486892654841593464995952632050211301738230167966524905452050979456702407845121920029038309605393006117855528765406050189217992742579379289229288289594329884811016035389697577369046588946514896609516866977861572834676100520663132092532158774855211931358037671780377675081199779270608286207478265848704195989131349598543864921472468714762598246297119355927927370525317481584173375235422172031902875513757025362194473329932876306573331047027486457669882758411786311048642220298438893013635610447712302149251369544189061085980232683130685299910916835445874135878515745386402677811083994258826630587530504624228418655294485546397261585091031795545687805488551632801206159980552222160336528792131969366042350049354267254495863287340165981684900987025044168434237167835903733690458656266428886151784024569382964159859694694820549497000474759808325963439940692104703044338800052618047147913083815662604249831337197611607539152142025588623729557302422734651559136511332614342139681345234045447749756810041480918370523112335039272159648256071145590299967460248279220533846503182578696136106469052786405048425871717773682189635322447599614279696567859997411174196715722282287987945560365114098670864068075282482020546187661570109565255471742901692232457304269762528772922604215420437809507498882203411033770384449277955795936977285143553044530042091755736789516110623834647048278656420330445062712637802872447821540436325525663519375317455125158837603434529749068005902466488758950988612564116692073412143044925505787043448718967145263690434216821612301517612508948858664678114905050094706296036603638469184038160790015845049816030039887148826099180442829883047110639128646183287341302786497199499672407219859402867454694280930127446088143337300409554468958797510225670116204504777102167837708899800909563658155040296172089698806467801635343648659559756840479077042154431718487667988712276608607724804316239931828296462930624373471720895625882241053159784424276212810223949280871167431866921864157461052605162466934199279752637293737064822341782886204373252415401685652050794337620172385450211909813525692611546451721651746751440034904694229741915036346601415334413452939399327414707332048278469472409659887199878175908748797571328789216202644271331179587400994670720082852913602771156463155717565261014305478852159963733082118820252016198058450217504050704091316234360529165792447257402908689728000760235190961173065143656247229861798526170454888331561630590399942646721600964355284297485725312325692217281677791780421247835422104814074156066946015640867614627104224556167247146363528132750639800534651584819643843669702601347915831249430811429766711973800284547646572475499955281400120353946574509354326350850991277967270268168011657792177655364194595521231807616945463680776616816041916595842590456345154646696749139524596460351502701819519505398535196298914608483977132479874676102010253249596194224124944156261714859025788706447786222103229102834007208225219830799140866048814796788939309403344546615929522272101607301152769569283073852303089096057047325914946433496057196462104485514784179183483960477111553619496115280148262080648081632650416468246682947382155172370009729880571740964743686133639433051506493650618040258988792416519411362088329775690513424502866271068951706649562126467138428226086128226785984072250290600941521976795966780783179992852849098515031741999477012661320943294173839873980719324489398684064834698139423687577551747136414209960650305747470198853135407177986397667758707958150514321002145688427164823920042544371981337699787480271852977242852803864785839820733004933996978052376898551886860573939734828473995471315318345787416549465633845435118606994664529475435672456005629027678025812888411573647215219980501180339146944711396376757409211761294225737731641186428194136833787630599340988652769832261061025491198846438755321123906607047101120931174982969316693906900813788680687684291210329924109969438908953112479749991011284072579019021478013042041420354499240286507959587312867137660930641689348618438122681883822364807008468002536737258649260893617405884203276585564037414677075913153332779953926206753652034398539211326268597256762591710452883876907510146987385768736726292712161347071482130833325213432192464153137673133191803074602081127874834207928903395874017230732421833080688418042442064625729031535664199164735487651968282319883700467399055802221865001140737196773980467412592457757431187766323705293674259235615974678605614463817422760320199384421668343978281961638757469935541420982237878392601971575832971410515026838840143975519181380532314573483826147951560652834671068822534077434238754849799803182220006917648774860113434855532857085567672456879965636239117758282830523400684805832048120425710623236241899094118107033479940161626386484647423255152685547006095465878802637886254629524196007560385970157503807792698866468368912341025678655005985637459941797265020598727598728655949918457605207640519873060170217336430661773970138170481165719703760350950389562390653007866892084227242888687021652389278344429075541968340613013826314712176861332355475385784229993060701530005353361094988828017515483628156619222483231575495824613396157861910601320566559799724406470010737140799405404203450801646677421467014413068530644656293653724330217944025673286827907647941079615328662397750161962697749044310594691588647137469429995769006561885376669743396373650300569581686206994298558250462537462548984624913118231804720493016541297736442046214825732304726903693644738252465309521226790835404518065036213003227343323566802794207758270648127080012249322172737075966860662427759060742392254076036033360827897621126838654134890708406601416380147324117515572527612171862578787800098894804608307505562847400067149779991060317832705862467012494465727285329111132431736119429591563154463979015604508900928009805080877217969977469898632568239740579558429794335761578128445797151998691844783944345140454155955330102362905755416272764324031441880361194823925992289892842659639093050416602546838050936984456535700487291832860018403921891555461867512187939422601906449558827414726748274913937985699982670958124215128960994552265917702346232305153960492642389158832097212564716532624647877395677627543162432188012912463527330902117955588083959457240473232566680887975152627181020589082751114297989593883526222596803331118722102855875219685432842012635530222221943670292210965410441306925539601468638907752583564066752611649850351845264122594820529453082057823667554737363462836181483142120070056968039166824069569197067564331182503760246286763867060141552831795905623371845466618989183724857261645049810346866460093049974763665584456711305813353302062151195053903978429017535528544034037213781754783740906060913304893032560537546611176503164908643472786207611975587122626118460570513759277082278868453624885722315460211924847366476446039425326392516608765343781041928563230879430533431572815168626481228474337734532882565959495744581715198242237417516767310091034357819569897426962585216235406661237803469628074934094547295534282163932055469472869678656746814241424564964609507993206525797042838392673257394118023480913893154694695834089309781392147089916978400987124437693513251735008808311193947673356735015802692014379739881383302438921098154374867058340380727168081460593579638979862543577629882689113622807161985941236437078040444835220144174195575081277951995677123759733044427701059348811208745333507016683339755114656225691277174950307633434571020246494360686709688023739993273580349225425452077046973405845796186907647302718270899483383469213655062918079887458294441307998302894611630815889271485348540171561949986450260860627289957736735543125078013660078496134526381034311352809025157842006442117499937484384966635869297878230856309342460017575827730577700203117824377942602074238581800196518508808070797758434327939396521477202513456563361153010614137304899234470925406399768518764296214910657781136315794674121805824263048678641557543309610209290279267524293965043297748562325877359468716133600391574026448438269890060973709709374448063858788600449360380425138288215151809814844935534687814481033286748234062156218862198549457813554876916070643377116354327904369688503694313679473618312009920978742657636379810874684049301363614662534873868962044606636930121073105617414168994605583594789495348272108693694036093524499309359874781880129084354017438287345767906500022741388303992048016987996777905015952095901554661831438835895758329227144610457812390052553885695217193313282419388933231772690287768790325651192125913283876563950158382332732114332111926775539903704857223486274607588415556718445598938359787651778271750872850455768185809883485704600469590501797810966709202284462284874713082776243119174352301523400715413243784256230668465975503390732379575840071026131243749533010071536084016172995630572965783758016824857430197491968887862346752126649815108758697055208490282551110470618525753776667080786994631491457830133806944601486010634544545420246298203497615648771320344522699807254516663776201783686982813086993431854975401256592128602287126711711538156236290079336292403684860362492396742792702586149845565131657165712028127068074859019502694634580867074422368574668058029454885131403243887962221978862004790645439330097734129200392327574668912296320468461872517535965925592131447359154699404380942302779585437192583458791553671709247638375092014507444393815451777091919324695520883896648493879015563692879162534052216635902090086186624275082064261208137415714815963376268865384542615870324905778820934954859183351799809198283749547773427127354928741482723126237730726685552795465089231477081206239929397171182369487197150489810512407296996684944056500536284285801268026706682063976991868231212270220007628489176976716873005358538287760952089960777184948592976258778689461786677341763072136437558855550854670365171119561211650160220856804439279842954861172716693291537157008996781642749289475384680349179666542192890902395144999223570344887104834717676597826449863362220322669421907287380231845832580598437719098160162484281689679903131855804521915626673436246139969905843845503124893581664456596005587067337982615349353473916862326752169485214175969611969279381758207090598909134539310316890633270928197292349073240869968026493645251372635961756372188329699550922868227536972564903028526881139955814488122547526858584202351596914389478826073968352892693090801057748563599295529931589263376574905394853881039995004552294512258502021945031016038213792805750629972382182387342268310824709783774718972206219701111650418065028266962575886903274005380611135657795672615919719735628388011004906191677372355702859064442699908305385820154096089595088073491787313477004412869805365037994985515769918721258008321786253596716476760972067169848041910540126873416783853912279223556349904850534605398864073186822805996260965129240395721304044437911447037783903597494272620473979826834278432025216649103341388919300734448561510887965566846328058985616079970972008505318404825264656685469347491207158781668928338562001135691549338892127071581080977759270679277825530585894807837250463880293158211107868992351736155748680364891034791070279036190580899117247328763922507702594644253571588700094744998583708261099078566187803338739389394116257501422374761277879199826477447336402769602592184143602394785528477272477824642819370281143134707599899036566140390173061620024174673287810707686135946637619702809434216657182396177706176613623712361019539279315918829226634366457443496402257782039335903371170817264539095036159812722924076948377145468470069322544279041413998656248106847011310377907718115417442663611666647819902017003959098075401133849887740193969423762386609596682996200983799229821309121201703012397412186942907766900603416275070209032301733113792101363555911843129621232249705042468801267612088828724916936406310647260071869697903416477779605880413017868412846873971667533057456953258602695991839193474302550093741409538761552271489898931824644159577431984219883191532287130726479487169899656057481781926905265292013893210632649356756450595537886171105246129033462584300150275741301862467032853908827104750994075728547986275161312398740051964807457658174519134996349082331297619742899426177964560142785451038501435854771401239987066432853802465934458885649641308958047734373384459561132542751252540447057923740817277713998583293215240039087417574147236987854975357578547244900876348169800674314208927690553762546799757146294535177477475636848105966934799873168139054907829756815988039545915918534891016479262715083093150981599725495693782227501822576447740233987850211925612958711105802666793009769046156676394631969565042344165898689225863449603214094614499194667100417135714829468795426894080568335677236690337855285342217172600275162412734596430034848057744418763328104369755311102836081532342679222153282098683643111478312481246342198983699478982917734382929938894837164838588305873812388648121523819975167271254894521051789933481643884256094648692833526553185720158748604183215706282605047489557429634399297777732954013178367650603936677967996752368893391877317140673174645492412197704870849606477724801897249749074034445481556791371421401177257972499468841622099791523704190205607230858642875506283405155079226024239223318410037583332393237748996434446802414348702721183585787329604833319607638824033648282980331962831162980494052424473923548875128950387570633356206798933907497778393520024277610697631150886245992581655239742886740150303961540976273434327473569993281412216606557278057753466059105085319272950646337218163106297750738711359435326878570814516711804590140360722364754268679642019692154013786024189789973040208700279831183225716764839646443579424013522421445913442003497768967121142355798369479496293477674540866829110015350436234423367547070429351208892759904698941134350908078956679306433058556246588995954066479777746412937621009978115713076545992903007765083126158873523213405001390220018731360744971058419243225661315275777929420263961945469532348797399536669327894559710953467496246895527817828996707654537495150405508630880243244607202937172995318709145643953190458583821229352120404751350444488321953326855134370654870180333688909122628133303961040844019810444840923602576429963143622829638148310007753515342602072033076172452005462638303650195099549604645902568699010651187547330271343786583593301869356225043263606492332208695835390223364598243518805503912748036550632453925140265335597109707956554916621756200287354362520380393593424629244489897318632059685130398710504810542691881516881948841295148071663821353185277985880978170989488381908068926500933893908940438754177870288958573007881054330868414771976597676164924074917568510809616444353681133174065494217480194981956557144761665274839591002881695165977716055859552452367462047020273172026483401586870768408545024155031689992059998702179015456696815796848353246020523732223975631707975216409915217170163699210622033424770400359306869120627483449360844060912439191758957280776764308322877723921503434850250736867827977901973540855529750706865620373384282872563662186678857387482822970059250987252727958190920010128426307100399855212433575879480498756138535226927549807379857908005808772523998729822849003953836829708298449168187041499991789081972450933022062252297408778630977012675289377587795444539453782453573403702055454460604925221377389348321357872179655692545071347522022001741538162099055212369349968818195133707679483341191131514003406784757187137342976367854275409279493906681126786109438571270198704732337034773383072715808775664533028811978781690535581291329074008874587757869962749243910170012376959473245113227293499594103533841008648736700673835901618643780365064014034185129792464674207804975037760980727680106563653631752945493248484503927433386006572020896652034499200224069104523595432917373373959666510657117825843986692096424210255620694014590321507418371139837922315770884256841792484456958846007453660863194257511962260895874454161015910985611160808465439637378667408974257241761986942783591876365263971260442300524074454856748903220642464192915138977493533218509600645962927633027958340722958344138209055208497911671007217273786675256760120915966572101179691222220475121157532571543706437691291280402005408958120463251465524941705114063063939897444802266256268040074882456179617245062293624851993017261449961601893210177946645909859093861410171315350191818095380914561169752939104752654693925982960047101613032056620739917149236182269652011653202251211628569938426687074098328974994803872338577268759842950472195221049988154302228629883532921840997935425646284061185889630073228741901454192930010567344537247850605345856103660290394507068364820373541816763735459034692033391117457852871852247158185747063549561888901848701548173138132367119449011642604424195886174068547764699790945269575978951509182256189546064793462137427863444293022305607361309105147760282332902318540488976267294754218508696397224823185861293095039777680077065839684449861306380571032366429137308358383309208928106981681003723653880142988103861167138494624380026824529517171923866402399179731296631331425112413725537130292333702536973878866745946003478872521790697388262525324945037759550234042713215689731320638662371921154159685689985523567780318887858089780781638655748528311806256782608492415018419136322088209193403100154754398268213978808979157422516545422562038398549876834895577998101836424548404948819769364894056065377663073286724026612905034052484836902185510459118891173050592805462778990155019359227350640827061579512428652350520950823626137526051058734496035719673369006232774146386700894304102740489677730460045589364491925253599107810502242325740260388641541182831554980522006280475934402926466388820235219198403761614933939109120498654979797322813816488618755609810526125530944455366898001047133382020640949833437936129956038559646188192014365921370284937887864737149531834639028959119024862630454702593873923748842837996801140841380714929506211969876769147135424159420106023371685166827095687527012680649808533052117304124450115218124050873067907961589864297368575652261296443783390242180421022737138260333691878211409523778495453711956420842485649218944456977587961873246198612503105918125855235786332838236491810615065562070605538322570930343010663920703134825890539872914827886037024413460939147834079302760392898694366051875511086658555306642317130162309385574312561053316472945623686843887805528102289644803099670663070585290585437255049116284805618120126227416039717910660468310697275709552015859197318301201923475716174113514214148493027342221506849443089892127513681585114533134688127275084427397158507207503599582149929900365631511092646126452897555402282495329938872452067141003289442994041468083089006804518189377821146482857529934557087649876764818632265591043689798246100344849699267888845556677765242063579009744781728328978361468537234535779781164001867852285725036657686270417007232104595417357872870124431502516060936201818573188535150458700799387283120078968757171532199363873443493814620713980760908005488971021250953453654828618778265634557602447997846198011434717511771690048659126414226356018563848021027520012913364503064131066463584992157751136331719508748608063679148577624579363150153716128644419704713110994699802830363305862550847005725432350738559988969649783168883787396068481862345535698777418198611834598595121335723831600459154055598772134166868175427232911954323048701941897255379741169420772746940055454299582619122948468622525751718676647898814022915454550575245826664809188933249740990344517300792641046583469753837191792855153688637598413695138824665068432483809713134361542423439874739350285782106662188496609316912313699661259831131929411935411404766774520311882889697163492564075366998974253763346899888207026937740546444840779814230380103876840184100593940195803100002612958613227845369637721076087410574317837495879496510137345404259689553569785202353211085126959835167226070142345578920565864852175789489062410468977086678242684666188634072926982482717526907614390301862385461292910505393410016106419826000289058817600085215502658590496349749422209017200355181498539406825967129046937335463278293162970879866319721892108563680643115709537284097794541115127278979540842261782418948800355351345473933133104621220609890123547864045006824682649951732808822766695099512061654489443910979691401923073495445199643832893914607838412796223348428085022539303041016585389154558254627520706263226499603691950237137116954594252923874918183770960479262890520213468376278272305439634694240940687962397933988552746840030925357905849417589234742058659534741940921303430440235022357778416303532607981632909830723134055831887245908110560674050138468630794763921502667213644963570671189238900674933400345001636845370834361822794659731881913733273707544409861829719621238652811264992730067077246508122902824162758987359082902016044105832279419924161636092716112558935119126343343282662756284040184840500741143743850988178348046483121956723358523091447938579273787748774905812532037590024993426834716867218519609180908957709454674300107998747757544640222125732553659711455102076622964071165788120713916414557631581477886015431458702635446299669407879230931679130530848435331524002435148831275794542995748382480698090242202113575118006871838738815626338702986400646495397250556321004307526173275825190172140687819724260403363081805153141610261773716766608625250017729547499341908126906098381123539621084358952457911911571474032496806118182880248935076108447095356492749722161176513977343050873020452118923764934312697648002177990915338718891461948149522373856865378354200560055932960935574863388514806986520655536086728758922146769794996330122310166079900216780878695891114770418362185133827919664250172291262382695070541669955943380875219540040294497746947468168836140593455734419914363819518149627221790241664082572008165118673572848208229120938804624488381134465971347314167001006220194806367123156908366415537631280923412020006578353274978375934993986721523353149254813469431775620727625257019120805543156841419694962564446283049540596487895941693200085221267870879748386622401131078561114056233537801300053588374405967285372683983852488453877949334586026808919685002754779444349097601358564764707391469611240973492829361657712647254270580426637817072325495293954601337459361343874466389591668843618064935984165895804765165710331103348046150396331503063324719621005635188522984154947676138850573421806048608157991820180162250652597819428435717789746520627647364805197195649642868476973109968682621055862914071684664428951782635117530031390905502214583384807797447987238819488757850630594681024192974031883008001429332642666844103200869147152441937227992262110382525122506976444733071317242801648801883944233328405798344911603947014347245353551357401894191186294036938102159667259032350291143827931073299568784863743365000558124227771574118061622809964031335042832160351107736496951317833415542335357184468443690195934871513413078017292788519712066953602199998159408449502238681863253412707155716105137810206397437140820918199894055069893690364538062235929165283836672025909017072462088945744970774282291565155316706751700030074256343405166401130273298524160444848193622501325661856882153435797884214017495995322973852707891664362232557664017016517850293191815791303992496607109566754077534615488077221467792595794583908791387709295425747483351988663187305856065658480411630303754974648209973537229192459806158978179443002472796000069920183883054908946313963779822457493793259426122408751472792819190356207353055300662343818894937950216374342278516303568747538113762954813933450558221841007909300804812912117085029117001376125391825535726874067975734283294396784415224475901390086811718611407651528897102903255525580403287891582719916328208064401534145966434134896528914822306280450556820098331305730613360918062110799997353205184967232011452744275319263217901303362388473567584801021112617832676144395684240105986064132868068860950733912785364298388577453828664305586381657146878857379178217150880958632168774776726631517805926020448822829822178475691492229519436894050093997345686758317093973931885835565909624169470974874387842097853292091833146317246108313471092009643642540730639171571992405077160203395174670518804931635593125924434024765866233557969890029767561815025525223405363376377488329845072676363713684928967532736656793412381150555482035951974739160263552863312528075482682582684901733852901500614152622908439567272046346046910847182368206743051993471591919718261955363642795513478300822509543816833572160894577416867781276149439499505022142433461753938733592467293082394972886614801180646995160909157188239162837943329811272635152116975373175286359465713880796939815612424912049513641510154172344401314566330500898560571927821707883265512655422309387785699092897600894945820768409845000143676171307375438416901110678299143503029077437181271051114097677441532153365356665280253211719464243508220477243817677254883592940205517969521583402134261903033043964070431434300844330716922021233102995959300497413600464833169479576444379142093085906466888298068062883375001627818589137105432843385946829879264586363416358140940126116908681310312878269411316621825815383670372472638874646814550208598466127104055271274219617560004066776348541598879609383757273816852877326726039239922759517805813943354839362136667407838500718702963018309052322906868786372180288970151726490072620333350434002572973930245286603640768802587274508646688247151802549135973492297159870180654567043447251774368935179171753950114007405349007056161103861051824451528342869483923526754670859836432126060982209444956959691235681169465783313425304286357565793209470844421242917731901070105096925863507969340538405966465753504597833873632049764160650442243491554727798927247136972070440008974561440392586241764902720736532801142723392842845189869549802931974376045282310547833195502136203680944786994632095435266225157208703182734552325939254289362969298545841186783367917005302159811479731858932364505490947853055682289847206285451968423338780061568786156198364357269477701481208229942806982277380530265553365882847438946390760572806518300061967801560785985190843685993737768899767464238226347090871901744124493146314738110540701501650612779768640744618238833330111331524588546938274171512957284306223573107198065474446259558445751290000592089311257658584809646929579000269594918908548744386943436752532444074552290422765903727103399320699355762023909543829269204991120207492571167362790524417605238332608826528972385405425627776188609354438485098844969608883065430855445173865330174474105098512371057190106016217394706805292773405479664932101495214222604844290046361660728553979144283589331791969737864060793086695952007899158783217423726849310591063617342549620616297218713092412997989666496174974222233500851829755978209490798587069626637971699294161590143727712777395703092837374558633534435628179863449445413060813854307993954238194160050594477427251624109812562200285599088474303782341234531530172883457202691060615668796303889107756514109498007987755678474674011430354556954338724896477890413356642636755797943555004539838135697559861966449616967149833436422282708563443530511460919788021454286431758085406165057371858292349381743849953230678793568479154949860214442492386623144311328680741828502255646265889179014973197726122724573341785713637869973090649765087947467221900879192049956721047126735127014726212146760626289605619449076159406389680896232880399254701967943501884579267267780936747556518010354918986357265017586985758970746602998974764947797241889432321165493947062464612585725240023882154800015542578342792858178350730379112006627421561996109459249684837539160159913913929835970016516311726652289224366358620107612262224662440264635883494764825273783970691728865548236363194369621656553947732033249288036447245511532598991155369182681805328394965424335721787971863405493862147669891170250061780261625890766729433676616917513384895930713953970016685590827257573176118619029764820225898726915598245743050444927484939155255786231923865311534785652840559011371778002212686454459704003001332700030756017554967812568150400004491436456986966349845516884794198672651374377617017577849849412627590668001818146211835247635309714092510916764987282527041116705810154618099254404183367731308759879782183470836503820814934207422762615836448435396407614097914269034107595051590331355926100890652721428012959403287092533120584867253375979017945751390634418814606698204109428390297034886333516898090087297757674809760503980233238795959610072748820676273824687940710036254333262782033115432039923899984730856299912486167803620441168882061764215984338480716412828348719092240538654344451005191945639759990950552476918698441148964027041899053076718191088534160080959351844247766597263761973672044454650860464183453358229146209106283276818280809228565644934606425316922944135132848923741355061633776387540117693583664223125005433221006326117627161932682745531814441547852413456213877121339114539471879735449488483926905742735430070021147446093878995370006286873198578734173004861647599970448711286466032861907245218417532994426771136070252936894233366738084335233204392922401302260004268636863580422055953707725625622115497701775799252110127120555872439918189251349397556837943482068321899550464299606417891264318547746360265327764470502212633085660291036986525522228225552203696751832381749551427335042137167618966811957161616574687221401789347740799858233249676598948743073582114644914461819043319749873787585545763836472875000044011659473445741586872996904414317794607937014447405107870864763530327105787350125338127273602855013642267590312418065815036577596801703666566067261123904825795064029512228174023433423868315588850794015267872169056203454330383064335292754520143034716564979775635922779788296106570186430380863919567468142368523132535146685532718037585338958121867042015994379110173046983170907010883075282082758640366478163233800039033879520963524813423433381255907722227402891318266686225582947207994670431072530748514542126575317303232396942365036427692718429587628205545749651495107459924535895182515381401831092945739552080075911374848338903224674765153272769832146170931995693740109889867394365060264643139211126437783759425616295632865488856101196793223580694169075897704096274297309993576677459092613365961019096410783736843037999981099913841062142444345859497883239637765457908796981531213936938052921687424944523461439946343589897950226905787242227493611408182485505021343828739555060686061681644037347344420962669115738408478919437520576919098297679925436087331793420089944947240225761530830101237330490653157439895511229475930417102258456555930392081839425158780978265466994977397304891439757050643989680885579045794823125269498913515472213367595173732990673940959607829920196707506408925186744699779904378392465516149787077957355719254040189353215172998716560932158536780414577931286529507134507795998599505581554085145008220365219691178124472255534127403560481210788731625204729030656618622605425290917744352334537643972257640339228390696112274711498940753891575400982874896704142746513863329847503003549934934125364558374201448447006218687017765629846002206435620710763886386494134044163160512929751564431007410857280757055928448964268612477884943722171183337195455621602803067156802739149051930988342463302296482504754335549593505150396957295358066084401010120431717932559649436079213216716980370997350690607209908670453037400843171033962572634694622308385033346595865688319539944534390704712597048975389499758332593905117209822912634740145397170285920046223586248460098877526005374615866788326768020375282710671666493841498177106940257372896119378895077585523662202262589028355299682933694298704839630268325466824300461064461290307208957004537990306161175925647190317763012865223361395589335658959801431658829590848287084222972805711462475056427681971363290041777991942983147166444064562793566228751891390840825734129605583664335920279136583609818075898903069675485445510578354797453088676244143806882613040668650450441327130883945538428205167982065379064500541497215533543317583246561915870773656110488605867880778583699835729362281127595246384010085121186379797913789300016291887304508380511315871231111653766717058723688000631639527786019139046863832082294720559633341081022906124419117541212761792505951823425214348746643376885273819289684641306282652274462589028141660272767811709128397995429119931546508036011489255382614933275519591121530407609488122892196435351659418059805614354290679414680799891511349706730118456628563914810821040853629116986933730925874902125825515345479376003649121618991261144138701121088834417458247881527912769621251586026775667794591607515091818040175656137408428093645543135723441706069045020616591398213960207847003859665532236683175807593398481664096154786218142201825444185781722628919300561036832343632202720257644660755855770082606644879923360051995412154746230513421563567460096338023283458412480525428663095264068263906755497231882096998215054815030024047224054174118422278733169656464728229629176818058075793281506094660741325776935439404374757887980267151377166128692349393440133761658593185032370984146981636621151799887679462669730433318718013744451506181251303427605870882694616960973186736212147661547671378912530598036308302445933484812935782533966650353232165706505679163814249947061076735689798284924093262289787319365288405527659973411766403916015358861860235010276404622044907029812943866419160033163423849904889204511480948046314377470918359668574359435865453155314343298997833494035298712267650432837550309090462677196893945233523258220092241312095449777564055213197019435890969860626697544890887995166117535331077117963052514949162284871472904889163245690519711400626584434453010099122038039423499477270375783216084823481262329523175656721868079195115663914239414580869077878664281701034584564580096112684939659263418398835427316672832784922271897179337712043834368425741369563202033691896870639881388012451786587697169615271382547745914639509615280227956077940211546235461479931889292343209969868078992693402735618404828633811540732145002003284817567462102385822348691680919349314314305592534057020078510734171993963781598159567396336790733289097513421167050269122767836117321149294177010353467098508486470977939252750342828379977319656395494769242360723861247602529091764747965044238979487478072831009474450378459461090767415302548139510117796694916468046622745967330351765131678620614322724150923580439005656092396073717084365528772222430062989288141385142684005513763924077337584851597157586661647271910795845868278265395364960024009775581718078275669344140643935423340769067544084753078852364815134321864670125336199850212335754372921400804091931637704684969539688913225612842758571689887271745571965195445887970236037320479109293517187041454952798546363305593671823569015849310008134827350606856437012065857102114196159154908831865058150155640090885537217221346514203502377061339365016740160515307217518357540271665909610953569049882767728391237807479232570012702106341322546759121886696734738073512978810991834594088743998614393779816138447095303929638043503132332280043685967314891128014012099792414553994497210893893187913401608454500835974292270387493137472970196182801603009729334779448431358266357221599482738240875380864455461712065741136557022553303796234751858123121095560295226734519161199959406433234149668889463010060130454515347589634245946373861588796004452959047187310983076728553499358285670470510445952045027894183541695299481496481966122492882711421180825373699586350761358865569806808273537199716716816896179424527736972755070325214195268739255713062162076228506319150355506171684400611619346161941130372381110967989804131534740977721012161350790479878081193480642718257809627289257735107387344610510520006877873176414182744904199796526711727165055736951167485772415998543213409543036569690876690748465220251165408906749638412888975956311454033078436384290622557390938238974726695977740891541044439426789534870488195574042815533892598469056099309735030173452595353190441944274706712011474005945854559423679794885638722522322693197917228510702951909512356108386377984622017151891618271159995268500496642361733361583563055374332194457086792891571359191160849308727521880990437627176180998403024479195635499897022152229657137709896105820755041608186642426150245574538241123700000125175428620352867122210477340223871945752308049067359198791432348826230927615190337502951327378800506484266856248815176397628897477026497109045810620080740515379729341952215745837902633851763984315391314059474609982617310979193641367175824937410493836979785451365422523811216245945456380171405714729371343954728696890080184329701761830375599096764425132723204709760766509533486290857536665969142729124554365875022945015717301640737990590732930407058796703591652794105842574646037224600177427465280962941847574109484827244692320057958688042276286401992580587327204338473193195919737061143603986343396312791219242435628145839212369616614232700189464607023137711608233706628645556492694230531636753297472879652776908170688722975939163366964677976311489001693816989965666877983227465413428867550484554256948569806842681893233891130345740107052647896140651546564325665164090632761428604153266735024403736036316540279189533345424026104475409071158654593289171891408943241144014677442651634211221767707611712016374955880581998691658715464800424269805416032736351193164925429198548912773643386756731326703724497127165322244740307295030035084222249649763444248808053246461933861949886338103192591036414228673858675149613799885095723880483884077632486897080839867390383923784908476434168202020592450199016535121454451816186682129031003203416739225037596056230903936585484273706619125993072701182366769462899272599938487684482502038134100071029448197850478352218752528341193191376097221422719340398243959093512395313907225071878120165739362976575307617228364726592257780374294219937686840190672267540922128371526780124116080540211316244988951653529413696504341819523888897394786243235112078619119210249948448264401854514448742258135116845160538249714402996685072436768565650541839833217284535714750071699289410614988890171648331490497457982903793282110909710683106705350748831899217509470842066206196697393821979199438982659469494121993621572903386155219035163531794116684272590283964434936841255984830522335702491709172644387859288956110005372282050035279023920423895489886615058913657301197517854068278224988226324005787289374017564740253040060569533108586153110082610467134752747941472277239968291893687193211359043057400757525183699652763563749757403079892359458321593473905662777467652418588621340040003840314452103220237247891696394180504422270867550181046581412589237665294962091602374241391888068987889833918878102808869940898373196793735178104035733277962070651855120877672298962801380024156195083156458863394046497297268787803296790729416320363360768982038176677123730528493025682419147360591604134047047836223475936491453929676362064878420062168879641644020700569707198997234383978399963603017238427698654695621621315029722987648759831122876876120254077819961334510455784750305521904020340194363839163679996758558335311279068291775115321530339709964810330478422276689248627850494694308217617051093504312668368011265158935591936397400769430936645828283701544426802809937420795550166080043532217453523864269721989527147998312195725489869908367356074729345606890134106514194809524009566130363794750481230933500098357187190534447281152499919291254559332185569464910192805010256297778230559633936707044283252087432639438117830008777735196662143782240040861292940578292611680432797484871691368708364784909301140868381018521742950332382940165631561967195450498842833909247131325544410209131356571187684717739345730557803135411673179144479177225423428988318342279727059585012310681910510463842048402350415753593574049185285674939743783222967606069994465480101274435578139626616937266304028524922625895577550793693250662797638780046170487113144001373013328749435871267982011748629877829303250114821417941808451058366632984794142638424570724383564241676491448787846953821261124225509383928452880724394462878548638149334803590686673732299416537254339262694859717840560153549821689053801125681806165384824348430972918095959970955997306778865157712465491996423648900850557788928600341137935670398934049546228914616894655321188666788095736106530938791713596514716687580946120413213747501238521491457440806712565264035040255871879579076773849095904690528230619274670709010108573585465780539247368217474158778205063187215175734021215672222536993604168365168282380635522951980787937185541066927224647301567828771191530448399652210697974345526935854149243611893341493212451526901155495164184290001025127485008043425936430518396178078704762029230580663163040018742828012662730153615150434298996879684855513981478990273506603055878979328125750269009760474831284729894940103222061849587004110893449063231036577506462737979889386338196704711955396575480820779664884126742553831255261081297023682867550888270400637909966048258223855563787400338519300370222066286242085466286031413885455035125374897413500124153971430245934567721925753744106289623349626887135097694839219160040123579579763520928117835545934661105178935300292362887340193966167781090556769969805009285975903542046321392416128042637018977087977753692872445270047897457843827134054562139864143030674651970231682470887925801002931121596638801817373056002941894871136520063453119768380836907654089842539988314473506349392094829966382097525604428178093070186409666039951259872510226654412628502756044468024232956966237422623386868424087845490092180196682749472144329497912347225968869647802648728118251943013064840346745197392290321590972748665753359190794652821728730109706248487720127329772779847522413946396591664753548847696502007076392789795884198107019620387308428398589059004553116895690491694509875817358641026291436341871572894849657898006225952245868693210225927859548573472303844944798193855594684409394535134183258367094110104380294885538633996763244275219135880164490425955226979255994979599289121358801886420101062717752817531296154109749957558472255868993378598232734487189793413586261104892759859847843422454980131534337512251708003341717288317568220032026336610956652295699751125971071112162731917096866691073634294844975362279301388322876528994711818183575602125848475832516363519440445456354168758441854749878019855561716131187777936579253412261643868421075097708211045130075167284835366510953703209988338019641055105051250431936942341126126844853921839752079706051385715985908162055763102264307436669547607184418531645937355481113069361353374699395997085871922643480939334531996301951397418584856719722255319218643264327139825544115188825675379759705475236384890918209298981839037633207405455299991109696058010872764456579809140099450504574258130520982990262824478090028772775746023418468499932923664133635616835261125095730730768977415206929745849535374003283024305797731289978144464951237650363347506565245505155817028716325131034573193708278713329688741998510978309087793105378488100131759354514421725000064032631335272268500967642679082990070413204006774719789320965574414734289115965845328060795111936048094483390197393192191831061298603578981482847845517834689943905026135597234629521576341473620377509102515986130673400941634720535496714457981067394972391676031584345950013971110985296341285650671410097800639456472609484428519071282943623965362366337611592502012932921172772038152487363610269127998147341560302962349831403613854755055342044072007859497966130264512740222247224600397262202908875846559303950292415371556932224194041000769552816160750880318006734257820202327767515165289889968257470200849972782145281450831567147041007181768627727188636706007432093403272395829626822546079901531282049333413949401534412089624863540763973784392277548491845742714055789614947646049229083042230375348180844797193267771915494776737652600762439652970204352606598684435062703893255924210711460683726918880939739649456809259222574489136519691848100717777934057538920147538028317666233286239638858159652641310575063027591078614501935597274990096556180028214111252360110414568271793754348264604162199646244036321939258291417907858968001738134814551609097314946254690789950677433371466585135507474952657731756614683598593839629371152501582096731516567218890267495002767440028251776885945756521427272957590156599275033786585166218510635801312201454273912398924346771207365679242302407710470371805708016648009993248372899211220623389515695356193340862275525013957530536739160358853921271693983307846617236604920656005831778699922361655420351189396494381400016952412778522557815683288693993572959564705482888879593504973161208965082359360789129230449502350973051202212455204669340205335828336605179915607878290011090385170032070087839923914776943334169424090795922684994372357059136466921243681466800335288457166677003266577992154818469224699625856615452635350992367219620335618649828675899030821900333032257742771191435399825906175309331866528212276885772973478638467184151862632490778662757156037109638833877442379787840607582217296615907875557420743539887852414931418161466809203715485870538514700594019359068667564084936697090250175758799561666898616299035818768621240338080162677483695977507930123753639298463929747047533156039736478988278640843454771119167950179861660015561825207960236094416877140273091750855724816679398383391105231022049557245740164449191476593394208433154669636383672260532883935741515602912744562046205435158548163305921845737299281692737796809213173871954122531944507321371611513346581878464521740723413669666411378407794165176632194913090545274664490904760893300404012980268909384304739885588973295613376519775601294023254189644303109966769791509825508792781586733282980315005793066748335650553791738702553678441812581605414167206964316936002085539720857348177645657554930683647717331768983973876444177851951879983752515058749912978119050355104880243502745838399390191566498031337841346477475715213134654925304860352558053845467950868439944221204244730414774201087357024352230756214694655007864037713957453730338021935816354286805403374008449361649477588844489877968196413401635126218698144208995166436218975097635854801035239846783853845735495610833953967357832769426940960130744166910302518172425515610144564347662570366311700699096173629997776368266262847226365629223916391362107277551341564448275589415327011721052473355448870091132877688936949363083258612749308685251023514823068887069263337844360018420458314100720538948511460230481683083632687838867223802462566133863618846808188607392683699746581998556702922496287311547650164584546474039651830153409422697373181780424965951530671192269623564714432492275701690878016543462817502196227568529266534935894380425350381443302067127746582097092983930064143345868170353692933397440839633967732051123938763969940380779395105341729278209917178762447647816924155768444084088418841625226880883777109483691668234305722698122463584704648440417452051212063770218432616806974638481011331673651166445782400190805091105449246982821942214124677071014817171015972834974713566024097370165411213846115406054524519366675604537915670743189107472984321140471426341960189361235138903110031307608382029068540352173889076726964264852525927114696838712259709494625304854956669073128449387897847544458171506886679665408972706387378786060105972787265629020212289203453426434949713859613834509731131422381104676861203511017500835798973061006898152240145796813279917227691637571865149160555605982940644191471461705590866926170200990357199868379447490585915880908994254761304917579354554508856449506700389988316360093451959098494519346823089371454130557331709732604669068091516795863271631332796565555608901937713680755522110805430632902038692527412605864826145336207742938811664974602609740863115825884455479194167402634252509013021257736246766299759270676380620221933507900619464615937566195465972191340210302828265865594443024118747014458918403437369773843442108084371090517122200811375525280283288635131786925704196016001049819937167684113425915302375389883597003219049115830904313059353001786255019803248431809511023120856295588420212404502090927198911804636828769603492438052585939772255157811723297226032846621566857882699880859068535143526752227541691283131820308109601408868281369369511922323916766885154561878006178127852520503017024103543425540941380092153446401005368094182435172974260972033734504266577071266380387605221849794007931039338737384547365700571747046967605131080193441475689058917111814013135417653633270119662845345408521531316056114697756169700149855121027952173302169660647438747936985935744698202523410246657676426855386836981406088893968578653572439497606654502456180561242487679778176519959381355305116396425590099340509625187277907496828098638010556481921194177827574333232411648436382876424153699420488872149841406789764792637750412832520364318636174508713989400276013712186237607201616420830618236824032632283335029604709887050482111569013374970376826739911993922120136909418158884240117121003826659952179429580080189949483508240343621685052965288916287296919631197840553791252439943802716592492937728585284565409913275218366242531216799293325174656863233841860728433620755206332724060817392772139472280966994635120022927763924251930372051122523073390968420238095599619932757879543972374916151292186098442714116826828745897051908050000376703609006420001450771866559699290072247940247554747118291583857643806651417384686044688633838176952917249938155126755741979268490173681681039697088662122597002982289343484225351120422254619696492882884223807853024805592007785429005317725835317648310064280350789545682211812324833910442409808514878892466160966252520135763841025909682098273030956961093426106578720772645162855838421810704004190269556568613693286880993115356044795222048107469126254114921496058202774116445810812010027766634892671732168661585831443596675817161040596614222594680483712750435767673329151707823417646222434564884340966853958725632465634178702653242033112052853880775326800666406285410337757173401885468815550180908131519850911206949519307594468492459074372643465397532183168329703811487925190168795739565943230171492454888423214964506787557526915841798631382007967938917308140783960313998142503921484998133827278923587223338439554602720941487622876734940553705215389770357906602831729832727623140874598573112375549300648211457416364654743040882109299256683809158802176602701985323806503305000577918499580493712256284407655509419721604354075103771499336585559476994129692942283999133039552428532158507073368917760810043251071702795890904660834126442295436341197556298494602960626329829062678059386187214197792275760201625528392392783932548322633354238070970159368674529647692575308501963295969083616669970308621359123631100436697827589331426689271603135372071176755619783997775813178764119455835491253733750853603786641254374127459217598103039692179927542463234048271153115339680854995947557566755375809437674228939846223281064318723093547972494715429082263260863117982412616500131088274291814076606612404956730039823760333448292587952052508012118660922855551096970216174687885351814007309450144375801447339313467761250210245501117606076438493830984983674303134215435983914162073711680811548204360392722096127166352028167927007904444749154257316731128119595274327486565735884256275004298177946042092181682980245762373361213798299057049930193596329670869208705818896184195079186516895012120789687799275033884405385265596716495309920499287200545267624020441032821359520437961135797389432275078791247200682450742128320333792321118235524808702294867116439002208375660896106823782855948621576531860857674843440250628183904283149406125071519036182466224920675379440707855943453766617288762727087347792649892069499717992489467430192813319412942923676653234138877653281710352782661904759444508231278561757641512255224261897683021402302145679846392161615260517421613663403052615893683897278698126392120323135131236904767778540009056669811632230899705678827683191833945689145845368584313452433824756051299978486109136562016379984977357688454908391937479961092475553100255796898189409061794655590087853753820897961216335056499750276364281578243205645409415859309566854620251172300661377877438712609650712800907294740819443300530435491698065039526970160470964433815320135750630148530717913895150063016323685832080947131002038379403159171751950705190195791847321615051899080702990948813423705031630583004970238270603353285146433561389126368842208292369627973270113000813227761884976656263849750037361918255009654658219613406489253428110501410642366573865524536240746323879187198157054722553089926510427349774294726907730777657435481056679439642756285080880661066260462340467184029355322705264118382565412156883137958897938259354015764181955704770948525907764704385976358070063648954424266054926777972882465168738019319523756027949163724809516016732956127340464120612100530882135890621274541666249742964123393170859784578572878187486953388969666234125614612648362485483289480511823402729593997874382537773691473212325181766038882340693259472762445336717093524445492937053249192411629398002266041565822421917885222768147772891898011902036663105018505768732089875013634406790737395706179736271310598762634433680157918630132806147943654469516902239590816866454152900544438547772902208643870305374933181937970257882538089632583669007842091307796912335163583966027685474210881775283835954964263482419778448271161945955535301227757418593944304953428921886341348495032329779466648917508896660694230319460964108444356084173558681959868087192235295318789235540540621660868352362574137103127497388178719729067840332858137620061684316051715551352125498043062909694529961101071420358334445724628201425735930869624204853000700352394548372287478043625937998818466207894060123559633392023069517169493448070586177422253199452975601896676532375696538009139640496313336251214624291585708475527690676588618039093033033656785629210177012057358341094453808686583962805650118172647242096420262046109848517138788062313063317498183147175702308376515642879413947873329555591692397120976757613688071208169645749840393982386553753836672316808806399303598802072974625781789335350360961015402773989828536691842613870287585187513366924592546419766380549315335104324775673444684192987827752164977749818612652823311595594801752309303689910301701208758911497430851430215700190007288501794013479037086120481981397088717015301598262424325037970081457716518808298092155787632809394700979884137755550566344121350216740289217477972516295242570689836248626117568983342703329829548843296485157905626733407039579362373683836786252660512547753199249551294592083834434877755043374132082331906588096470380536438201942365325469574221919915036368468588778962108728584374558624052418347904546560793472696207738462690313068455594155811802893411538070138451798113521065315848551438958603892775128407291104614452757568740818402247240380553354805776242100672300295091738069194749881534985375696108823488916731142204316829287236158209017822514670761911088667158764261085548234233213836265706587365377479779028836447506228286081070407584893616043657448336681021469916522188727096015651527161883489015280789585345254550047040837908892364335754444548530049032923357699411466111477787558347108740450888517888206386970181233022381304072273562421641581376694610581986072383788674593644759565569644278344466885596232558154052958384535167512204669821965403973616470221600482382805025799820777103387465352221145203277120224771694334340082515173588261681787093103830757175645693651947951675140213176936932559868605300254921115603150414207752743236689918145909124516614776172919085618274855198560960143239052254102459913347336807853300260945017456174203577057595585831001701371131510897707885981726690210598171911322548938273787694314580325724132312063574601226651326780338105393077703372106756958922120547112583696455511767219441467320921376598928203087488675974554536220495854868338355357371619939649735427884692208603790061507393636845585998363688479242274983336710156265036700100441275857719909670051026524699762492227157286458545820231381284300475192326157577770218975978317191105164768304159523174876508422463981591128781571686013513103071528131339328679627395877637703475180630365945424315114997998310109703587235375618551603134321215502543743194173747180842978849057239015391226324962073303408252142510409122447361621695817989349174719475247766764123374765188166681172169945525448722438031296067939247482313622055910428755097812772699805554892208869089771349969950832331715783722741748356858154913484989603551342087958419075284562066092320108153070192235779468398225396291074929081205609445596128650972029268961516505248798845600213240715727148797152365348526064031225301056195564784316446003971315429664665745755205087789418406383611138265372149102483547990655799299283487500002241849335626682059798798438696326185266803790441922255729284772600144218216066324355450128036768265736085435021948872753164725072247018481513309042908976386797308362999285991207550849229227099174705538407521828178130928842410120688284210624608270901180088000020182431806394501449793071861908764034084709007197095780056874252395608524087390232361033392074200284795965766166070739922621812471119387689239947268934558556067632776742046406359779764653707272473516733075472457749528888795070268445836193116062686762370934332851659400745545299840051844274097636787365482544630700343866294978688415230054090664273915317461098707557127674181622776293786534711507378189255495920487036931495722214853962448198227782903328859737533684453577049539439748131853855889479468167495966323325908690175872926969191781383916436335537158685416640124172916558652746763839084788186213831949019489908773017905479340750635483080477254607244937739696650993330976270117877836376588116090981428603512397349110564976272681860826008251278345714073750112881753521971938520621478383661990866971868621965748334969217027973989875337472155961210235830497423166735415127767734445101252788349152215641055442513126208048210683446397825515175325581914843417126486471540047358152902652374954283692039898626692738902141544283994321719134106384601936214039062801825508390369561069092458567224988790784139707222060759088001645262210644779831219217534094894426306179975689040674473132836948074418928015956876367834575392110834438312703955787128137734259032533998605393217331204060564488904684451729158416594023489448153468641422796222301734842978516378074366633019893401883616825540395337056284674089551518400620801252708253599234181207102552777760518548581855825330952990010572361492081306350373781222442291901916029701084615770995611684579997201181294765910417795335536308571791208049420858611112090988889430849705976897015902935563440894222466213261867373631037356572146291881153565461715859633444393325624754653161821401221819298023519614346697419764688392757249192208332728792923025441676027577164010490251482602217953470360671297796906301590273150538277468981708844472671681571667565754719730992635871155391857098616058696229403592344484915450017866785910650119006595609050422026708318005778054819620208915069881317126218199041932605480908261560021674027561208452124242427839084197861136191604377257896733483662679218225884644875754642414233013798420828819197551656312920598546024205846628393675416497517316865827289426625470965965079000936901245485720264038271651488486010055409767952039542186962327443483552694443458768153193894222071128260690565236082878668809729765612005819572406821910810086005510510091958734457389355638512307268032679377992796507217048753960468260180237756923667551855594298504759227213588781964432942902926763147201289767406345575002290922555559120149079562015260843327970630743051757529802190666351474202542643549938623507026611007992021242349179438052978909548700630057196934243808119206980219499345186424067393546881256206087065349644184262043326994076122327974407666478391053102502103434968063154402429662579284309978057728937959797565367005327320507925124045703050841390190420093653754196118721242111136113332104657381033031419433699775325022953842002534943452567046089881755066702422350633811120121463816073184701541610028032674523113249587776558779413835306576144399080340857699176025573161723014192744734852149980430625461388102092685925465481428300587984825535570132554965963332245642045426132268314776970891062034195193731171905309629816874992058438374121475235951390694317878201983386803810509307739941378635818361598049458616806958240517031751379821555430315380860361567077675467368758938860786596604744431113225736351664266090070634719568985210072202341553435186918314167244905313617227778749339523173249598445832105144397135033589357835018956602187657178477259199846065645416167939559361388349993426639799628496531325017671206371737879437348902570611744705486573539735438536978173812067518668480455231057765940583820408104885807029641381037174554319277893094751945316670156646181625034482504746442085814646059522063927059626504793838534430933241207093571097255166398106872844692482362304806937330438940705736513765041577435520646064706550670862619778814258069324598599077037947883439258764774208897518534462297499015948378439162664850201334067839390003407971463379645157589249549804982716608954279281725490931181790951888461243996433954699016407625553164978186789339989910508310739595480064134289787539640187437386650261529057566866170553047284427131688494451014342405174385230226878227394838633408076600214788730539982968248023371173054720462791128528896036541755137333091610027491363970881687535469676714718848559590954451787949660768002027914639991831102452152560791242297595022279192251776304290289489218330149201299970371296871289774289189933236540706336904371735053662640497656366363446008154564419133290081097584936698058133601977445044855421999561757018923380849599621410712293181637073743502597000939342378761659587298413037461283757041117789943902504325270642714302598833166919641540491818165246646618697835566894312701948712176729238899980842765631397745797692508648032397100318070183872272168042758569875714758329406921761477478663769208291467859043106085264288366334535581355956697930349283910841140709701748341881783450533749575360202864256187254991378223283424556684911623672115147858315664154221079835615206796766224735319520100050162817392835866004449335268013009739963022033762672025357762362293300898878697672707382598404865661636101940422245015241221308663892507275402729722712621511128963347683977552068449929996335094201707815947957383614980064282805706795352439137094641671966156707447461696632049568095562469714658360885854553841875301871277484320472554155280163550542422070110920283208802949779593995412036031659023384719832895678012806403900479614369407314966507045666887658395125163239089448641264830483071918406437989817498131720781817999947927844876328400432501734729892261594268266492913798014474996323190230099573617670291485604953093106289621429801412763726253412822594294742442995761637801287564217620285326087133827199441440258133966427415339500798646345347257649688383474607004130716714715907902698519241024950765893583115357014755162410202329992319674428603550494915878687589661291678064551483771026085715958272024274815044288778024581511808288753856479038015826308409939272079699418003878580070460666655166076587023336659443402858920615441838422102191858829271422746060444698044196742950190297053438085759884409408581125270250446277702270214091291442858916276108345681996696202132018289674735176688114520673085745412226338709540440332038238149001665999257148580147906417053127467583971834623046009212744342185877284862170053983047937164503472037988437119646094766363304424971059326282642229811667327588977831670676286830945885876668148589660564804686388778783701266803090301138469628620611201602602527014642771758935652131472653019648553804309509602655087959605452724436183943360685437280053708769890905606316179349144971099636815701153058408489352247070109473389834998967911818219999229602881879029561197212746113699091887693114513353593336395589801253260754034235552379355964699903776568785873047353088874193252451981289810220480368847542237179674469089388621975122249588749776929081005997182088496551152420978669653795324186842575103817653254380671302390557613505946323899977578325134050293964426090949908771707515660050133278519390186479528504553084217335532722449300796518484900037226994604725121561153056575071534573087739625064301654447294038591084954165697486801161061607772488431413326496512458141076589982227553805501488267695649505471203044300682827069936017812891090084478538765284750446509213863489208528142384043826170379341558577968035125457660234998329051174160643419650788216285209802117278700593714494382308877917708673482033135561069501988989583668588620422449139125642009155085778672322349722597430080566098233263635717080690165704012846373942787544743506799446210385519269395126108037822902496705297855198771292250083908262655225606551518026323590521333464831396900328322066322678301011896769162708174488661549327960104649722633913702488557975981184360625254611082229510281800651580539738707456906373390276197791381665375777435868256398705062941752349243336825945940076648882278354459257330399317318291480112693014742943626106611212050466494067845714394087396390543941208338121985015871514138442156556272809932064280395524736177673174654296503348771737342231737068356616019806474429744007174112759447250615154967852218745820907848092238308631932182970641059785980269713623088011761325355044749663684186053330646362576180268829417873359827883376635915443083157506856462566780968432100898559546493462828679214054297981559183298856136465354378389014543160402519144387515178949468499039166486502047153566106316838621624960825910764013496695449732357043438482479924935153887602565558164527275068750746224727873989049015055279610061082995021606968244663924520256903571004955337391596368000320386963364558068595833945728914620383523648613442424576846163175139637015544685382354829766065730995930124465175368091225016086724448114979621002712050431712108887183391455132982485785405606146446280269607003765041145160138234813079530051711656373889781007604284906869659405901752416571711076765242871621666044007201614698541035499659557612382930451928868495048632364669030932492384013332979667529159772301860228803010973824767746071763466144574192361862465206923279166443522671806785047683068044754822089060763476402604897174089999854796796617137598155620740040125010926427202840922859384452240809204455406618253023361910946601975848046351269752859775376056892451477406597505103469782346498204999525332200684246718830358771741641240318755021958856495376142293674669591097834908477378139016798097620124260427017866305471763152185794964405603952361070654655647768510168420954893789061268055924375991094249167294926551969971929918275306246824408633056370513133985155327428724224685176893438966205977303917993541701905836759915178818186865291207904227771119994753938643008711674134457075033032747223280461010712313028947504526858630876185279969711427052225566402275683677871620994926960882060744034740323649761139378111732832226270489459324132702526849125088099099494761511644324897194308642170947540645327742513222322599487367553220058374155997904611334456017599679165831339437333603982067737391947955331437180452461781614145718056208261332560982935863762929502894945273660338805831092138516508046615754347718842774723244964013536030075737931088866770701219626135759181601992149159341200551149770331015520549394491204257200102007351862019562353162176208452051979699073868503173007247188716930578202716662128866986559935936802210020386096880231274313421107213640731616006647753586135626312365713223320581261699871393871311635346980999101862690958338568300682611161501096134877269260451673457869405784502122508819861906916471343172102699499942888563147662537343075677697866835445148804321043011621659332113019531018532266014740108778876940756617220897714898631556896437119051052746512548626596276777754471889299654698797214478058782608950312063535443376600300256239926191229376662248558078344946294401881411725461537005559767246157209989925032696847538560050109738586585514626499977431216768887537831428059537778339959261800638108876734223304613159131940703534479853847087319937784086458270165797070486611405313499488788838034365142407682413961157844999812429223831140709229449978774640344979269755097087281485047966810835927073942484986651085404908014754263409680416426305169273946103565769588892072201232500620980969597408798971032011278393759729144622529460191907435638341780306252631289379765125113546615211967391260475342087169857389513743564851595932008405773989363855839269461451403797578590407102974723144196172611959634490067196545414778608716410512376279977704185836116054102891526103431784690532825692582809526157325366644581265045836256343727846357392323065474750582758670805429503293773983555205767593180964387459181805238943658592508133001976609023799699056563013479309548711709605876202123933431240385442197380092200487207142390558352104601148464604342381995295116604328674851888593665784393854668128626072281989910082068644192939018325828582231575930256687678168368277760080349455317792464144916627710890333500406404353952948104876880485497606583057208081719115194728646648346336314454051051129183081299721265593621875850982346310682526256344141790998084926443661260683305343048438897624166633560969881030577860970927174072499530392296084421848954503493352047152483537511872065328175024605184061799026451890741784342335211204656926376669622814676199278806407613989500279581550021082371064127286516594980341672896128839506015389018914858687412486053181286613797269635702852660769609423681956776155375319223099831231090689990042314264046902781873061227037419738311688950391781093997631752192124671780267443670754041158072185837097559929268446700348702650935096676350231196510018580168778627612702656480525462163941613858226688095230233743761249761048283122667223860218764401417437856828304378368492835759329078419206687159504409881592682174767572243405909133153201408751013227827887130142593666280307392569921021516523185872316432327908650682429126465314255686577396499883515434418573905939082807101465208952781603972074707956898587524992342759441807980783732556025700571100043612952214186747608629955191324429700817457547984884964320295377430668127390288011530059541373339457366799001930492592207195959612867563355993941210209275346538696121595109715783864418500647715545380966240542180801978985526519723040477172189739780833531837151798270906555925973154034724181466393539844438035625296916157371650581972642186320489573387125868874764604973172058735030970959522488433321276356945328237904894300236026530347675328561168812810622227686951868916196140072238052844490497219155948060088618247851440204845183177356333742184842693045375340501492826949389916758341764074529637906229266965434190897873631706494920231476889069587475027058737705165630541344088454898490285055929299434711070667375823260489370911075424021111085895267362596334568716922274239734294539879151140604214538501796234724891951015292484505282592004042445703073874883767529737023496769339951886885058215772622099386676757170809221070392216929333110578446080327560079379532195061805399935733050786510322923395431745798028178099597989816543512152194040985156231493929452841907089690007761701770064871909710415917664983152337430958303429762141230058111144375546504573350633911962444212805086433562466508108457822423681834026758878207090153312699110879244023043601092520217207839752116498628460699018143391279048802962971204151547067698459343776144376996489487945480744910600753471230623825393759954373030861955620796685216979440497751626717068181769230009997741415524508354221919000675263148416046734762095845200797129220617895658693373982728072140271072236606986763214433710206699052089164388908974071029361925989668678628224001279167198480148683276283649561556135024842048105847139204325968422602996366455842023913742299856283416336091013166589868050548513613621215805114912980929830246025627284442658622004318326782404635238228457425679477117957000962604763496939704031310565883540344575261759322171165605152961249186095449081009962477605502481782717229458762634994728116175924709228481830638445334609903733499994332480495175919971652273090611253007647473580427815184772606860495686831624838941913855107891139381449627626473225494183924277945386688734732817233067921049452306932081953334077558300689757765531458867760050874588900896897787975052184951370144731161516055248036745464338033813611458274536733195081321697381697956941953781940677374706375803571565176061634919701614064025429202456953776693490609223841927492284484550383475439137067603990938052283426400786341044312376821674834157589316446991297072884446667210065344820025385261114692218571289820323865043072604019026324724101209283166071930688162747261977191570014500119475497721913786401088458956354110256538032258850073447787755703538245276295903746292902230830615090318891344787454269140271887340303539346066302699331114495645402993204773165323919894745370571056315357702925694088638387587488656361574297373289361469156172101983790669622846179850616679756086457435723555029847910787223165521298320576047970764677053101406338963179736298763672981624687317828025805526952932027592788804340980341809268133488042006825245195102824778400423800551790512935210661716250951592529464409774485915004929883067392867957300745608391821185700397979484094044311951316885204819739360263946862529746797579499238078659851049644839270410208869824815619031320578652001914691687017585639306378611456214910107801972216757796199298740129218239833048346076488496241447291869924248577296960435954903649853698493661689132686644676298437153225857023094966390041054695218800480825733027574056543017914691871001038371596006974323802801730593705154127767874966499211800326168931748582008796271292115682725135345211016733896883133445456026389331520218069450271982248423573516696827161632096966372549556873314109175667134089212959351777982385958987344182100068973992069616242972415556369048467387985100395031652509191496819034947432541685704712773992458639361202103529919069662602477068547558394979650658728236840842840467953012944001182106797498447581593362930196977438113759620877450854553436438385866724650803468293574997916642848709676816409463261095374369069527064226541543028899473247176667655567846438969487012855082017361003885816408130556022099937381695975763363310043210365584542652693449975503275657396831860266064550187047294267300891350681089464762884864273456084171857504106326311617194188510367761107892198598953284303342850138039398046957432959228246671989781895017823979200426178365947848709834935733820908608445062453624682895393830179099510763007869475748058265919844837228363843430318251228554270402608791910593213442145570048101119400350082589047357402732402254966412110528645047129114357118528985911325992593628982207131161866945583061000624146036803005939558539817718810540924926953085537563668654840670252344281676890404085810160463533542552683913184008422166416985269836395419437677485094501498720076357300879430255033061427191732174362237101878946838290573971107533292352775789104039472353139753192569832507387477129721811952858989911550600315745584189009170145900528594908400053840820080035006499785971219027911800189268013785884628066806824196567363565618853596478908031692113056719564762443987858680798924195459185836918349501169549819496119743899839809580974960625089779675611309010079290857952931416989951785366826430993371411113528904394072501820539443918260769389059732807078377393338483578619660313148532788510108001871717946312126606776018453124592123875027936929917000573948683202816172913941860683358899040416907635997866124541760190583706160832600762239259886109401793462016574818411554830284162612616392669431571368091089410347950792578113701440955879850767992529560533158482630454758799629520840434981610852535557077636510943952152394205652340217827889099473090569749885868159140099933783210663025431341693786759552198606589892464809266214226232378921065406509880866389482750239006947928379274851531559935306029637102011077133595132868403934537434035415770904118776790211035161720483498557399320472069549389797889438475042604302732947688525453016865553348667833324657843569737103177177513312607794129638601618441420830792563162020208917000990728170455472850096110504752989628801883321173887820572011710502662197034923764963081007203847151508014276757670074561878651413035505818009461093535592157786208471152628637504552192730735267417572083279975593139446720313127032621602743721524124691356217837163273390136056614812536455298432201478206411685117613786137118243510032273985913341407421549668958543147878454935380601144726967900490817032308658485278585311100580686645571296043325443745648493945718123425691399014277285410338879672066540509534807429870331613232983052199224908393800425461178414438537618297608241266154992279988197419074814414417166781530228043120964572016917250931234381004197935288898817263342273390973530406167388554473083489803532590142928168507135846838310216507078070075337685819920473725371628561495184711820876616768641694731546168963730305151802196738420338651380991451864189432677826591397948872702608491549999706821341765773442819305997258579706680578416795375245204725839843812413939886784388219077717324791298735110176043125096638694253981411320020145979897358321623730244297131413704073891711369934063637423541834017783800621001850384168084683367348949970788889331239588876728938046622133106934747727348813739588706729989660483623645157000916449514112660824780193180450772559531721039737769107594929715196700129789491772293445598739208280303580234690882890032278487581733723935622904040411015765444366022495148905857197501578134353239021397524131798322936301330476607282538587780821157030161083490725249528508904422786777600513304471089317490709098915566329317466592114329212057545626297757313822514181852627166337980243966652527983357673383329687256143645600623537001121489341116615037862402938203789987596195244319515937111394980633812361118207898790556801582215530315374517619553797159969970916757435524084540147310084375681308833624054134407330351336431263029162381392150948537848090870021492393707425378191764445331130140463683185438359985224542999702351913671503562768293482702526746755766550547342344960727174342976053228377509179220457091811498487440102835227661323396515634120872537780609338227461658522438433623777190621744902834949048085923046859116307498824588521258040334237415107734495356334969767977783853195553213787210835447917282575138248335844977565088869932366080985996733421120269062559264109215379547101650493197748280118395977046703935583661933635317599458951008030501772022844719625802107168231817598837132616520360571483751921860213378333822336031389486743732816165210666184898870461081777185694851541550690794865302128389642555371275198037744856422055615590774266711412282408745129359379610624082519306110446749011466666218838531606213964301020349907764535862024795308536630752297438203722551022309312362800320962057309453835596381088635809868626073686608412024668029907945955055847868514497854945333592366437218609262992950605477635085282701245317941193567395616789395862178117613042983624109484892690185776584372131404423188408608074675548826683306679676564925394469555067358308884930946196615345412678352904541301780182465559471847989764295744041211194881777788286569197325546480307184105807641338485761582634113251112759096397042581457322849456996107465979081920925533166520478548622191228790009379814819484243026296734422891683258433597123839350372523688833650227240440010015955177029592641453537664918796381898508616394912083641536798276728304876274572297679561264582102320561969341926535295892910848268193578810381164715168029905002441778778404645072967727187791040292965301780964985848342997050061313638857787672533395410209539797953409163441205406263287041857095461534314180347638437514609493120513855856702395870758389898940813633337576784301890003563563774612994856878250780626217615762113980256279075116082565679582137550511122800159414976015386158596686000644441512123981763509902254116226192282781102583004898192784462580126815845417309943226117774950719398978701112119462808253315538010049109238438930148418178690875303655038241244240141582163855670569883371806702947921394543904953063464277696163673425738019518359966602709234726718315371881189230400838369389005459597609418468417402818514958580512133599075698196879415953541703428194468034807880745451749484527875281163338010062396333222828054419659508959398502812065065382918132416833457999133269100345373664488797526674632166844196880040827960922612442261193431580112544966438821713849703805498176721109503756466980087382329068729309565958138466027409167545396019388168328908621405605831611856459681557849769193931589600287244631494149187583843035030594381792724197132234061676813755524015438649679057430623804827079362753009143756175669203376598981050440009896423793358775891262922638949781745299153384609126396618325115309763236243520833669696618317871684411632280862780706832873354410142763340968069048390990440980922465453850592537930034885847262179020199029234053002394722988667869507931744711275510492634544713857108812419580770860668903693165767290801485296932174419221172948343323353189337413103860708206367153745016826365675090749821785952872220366943111108810272865545729332659441978088217469011615894498001473321081395692201219142443994709446517664355100659318716134782122903792520994627589477225936788226305384439358399834657098980280751802331928624117835809090092965600693829672078221349904175993100198922832963246213377252876479296295224569233082871134361354386173541813386002049596032670837001872488478588761361334124920881502270345766143182833508273700323431495004229712755756657714614150302303645011587515067811899278636504231975533448657190843443273037879611866841812703292936656393468973320368849119684230207587289138823676309997014221756198399350974935149601942166638272286032631054108841072047486069502542485987778749618126909597618534392999279570907026153958407112110504439982823589189773754020393781294831611301026226413676069547810305538611288138945887173228436908096274554325177410550686101810189202682211090530642688675814155757416484427458068026323258329800795779575671580875955311727040180279445727004382285553289085567201569114644293864406706962596277124527299871248851112453306653578617059995930647745018067802562783299026091406118934929271762830120342293792281827319952252484325455117079658102868426101994170379722766248676795189348625339915383213356398386234427814541310972759795402802027338571775808469071332848621997070722919653362022673258607024897576480437196020052588720957336160388101496416245833368847656256758816834753959522565170059159402936403621394848354192451352133394727879732760555877230431443039299862555356390097844155486487637782597465538417057760346256772997250663506360539610513561927533869670304959137696797540399067951019241792503010245389168946973160535102664499265059400510505553311285996515232280756806099270824985152621695898892945473391959168283572800076836730540594335940700708889352164086471756373519420045878277396281461851125593178106027766509736162556796776608834412448196301986300302935142379442042275898214192336991442978612500563614637393110744543869611260642523441926188388482178778641419439278021688750635709973189524781965411024267187782550684131293489089147671608561502344365410726169013957569977712374026315012983542655331857403546593099693999273696407731905112581890261292688055188451193293891132230326593498610323155301883000245096209064674517045768924270486980630990659997552836542294534277194747965158397757404743483802264242594917495906815189271971275593006934822122428177906986515736786803447793103963066123339306132862406880787936341169117101338373108070265526525000923803869643555213089957099521420735577739327547897090773367718967766942084669472102692535679182669488891053847193272399815459234555722124412914321344055101990701135580906500062507902798626486626463837719340637672189949341517670019273470785217807060169725196659725954856622922139717921175487153057721671801633275204738497868215138261439887945593496039814628308323734471489114846491471813568223276303022947311297813520046669560328672941896269074470057856793354861500978867410026763482232480937656524654378945849466735457684341713103815894352220070521472522967673577012359419000236249255039929845133171378989816445396586600198448171198204498622243203025257809883169217658122293228990420450590008736722504068638226211923428563449898476445453370184025475960726814255570616900418498503304743108528702408879760080315393206795371581350711364248674819362822952579860856990088111194523369713168120085851473559441375055279835511904114712231525245920437719312632540460830141470770288303092028598716124951744065331204910566325906084377694072181477751229228479861060613628226857899070147852777747371583089036198261964923382537444934711360483500580619530909637960967657184047466053299140473137840115259680433002812877647533679213294263342656367292969306084037045080235359066458289444357484326298759772285527932072484850532491381704843222053630356599992729782769138560035623863424325740082206491728880434415713388976898246734778110203061559241521544174206449674667259129375611229138035489078781298788060343264317151870441086717818179289702811595136380907265372036146596919042958338119720671867238379779985665974382530580629507307661894402809798719843493949028969731824638283602130217647274794623457478363588483450403350671122378685107582588373334651488994094660244976182563524188363328625152509919046000348478579864039590798373337614695118536990709887356726540479240346777422086973545516358920163318912024806156964324077857647961669455626856633378690065957540410715947972213886816521342039718796704854519155919120110913176110884336776694513280724697300306134714463669591161899966878062410933446038030243229146157676304679234593460383869286222548570733457796867407598338670573110159862987165474748944596354259343301363581731598500892512573695549347384966561384306109011533362625048648116578662675514234271454010850702147983026891980887582569330846142353101320023434638241936297297071440426633621513701324799838612483578377630096068206645249673799917733309663987335812566751217917675150713140091948791751827050360872810877702510282266674199861468573596514082402140688429745684792500085604940676827586047894739424300948560836061002727680330764366540202073347433149627211333511391032854375333661033999434710051117759970375493676320589734852014821996053035877898528635109722315052000328283115754782106607671353494726378560950427920186093762497731610285072632222826598916396579431245072365226838265697980325430535331145904646245350619937142249471542141259076654482957249535467353152914427026561842437791176517556430436284435671196112533241977336472841812735216911909742619676588030139837369180262828499751701014047959865576852711004002094228036683024800284835649909585140147791958456893971894572051904301929917846491592078751448888248651163848422389228610915007489123944825391638244073675795739427232831246283356323674293771825157977369900542717230522163927981857380984765955010926054616451344991795083317243947646539192431631971262121314652609463523226866168690225473572357340643540911695021329310319460312764908641921995463306943847327002378490177314666217404794499468912084427058969365507927063157636250881130524946840922379349764929763189913314662442545821931839874246596397364704115372175100121653554183395167252900085724984362957153167926361816909972296131311538791151974224543612056429121771350496865618930922651935104719264279381597074049943095229714630481870771864437312916584008160065512684666569026686375170617280159886716432385064396600961919595298414136999214312403254390859494574043420715401130229440713882043162374751497671435705022214398852512844493042969704333942012926385396562194333089439068538422148058654887467541515790137114103722999092493160465662765561461135193206518874905928919188984324657325591357821592478162107602895632405838881887585367899546954733162867617267237701880538315321869895417700838207580495082844608841504909517428325267918344295337451621060923285528368182522947030747994508616827532957940533299886846638488407126088074241671395070818097042166437717906987013292730708081372371347343373217503271406304531667933848904726471032872061374116080456223063487012728269362846600743900508985528961005885550269810359952764128551168373462164822346316925405313770627298623278342313356437478297694944641482700341591964390519609554994129430214960632878983456761581140006437745527706331058335596836449141377486270653368899182635033560402993861175895801774665539283945096308363484918514461141774346713740697808623683007859978883260698109119588456384668810929215417708368759601609727315346159781648493236557881425167995733663530435121484218822941951168888792184721216213650578485751356889368615278189124219571500505649828990854077820159497774139891607833877002841561519278017974856997776776304304261354860897049925400691978277544941141295527763563200805060137585054140824003125844779518144598722437116923197975548206738705177046042145916849720904393260556597436837436398861903415492571247131515267731920379285928372643080818215060349133952300506277315647951064603068567061707794670013503802906369288818462717192892645332735731336343480624364149404339771155324852696785998172800341827239117912175076872805269271808357997983627847762655545874448359481912205249860951064336542996399611873705565299683460966136416196704962034468231164491317158846142920912669372411480928880257398647916712311434185651697465812487577800829417036708914250720278948770229181554707813248300233159477363778891650261293307160670148988270003279433203343819341276104089429854400304985968532561090032423402030777564050617189665183318447842202122917549810320736262150548082045515470939040447072255647860265766572888435728262259541627420582783797509570541213192765532850987387981082454380786464013635296022457609313934279715600930778545284805518120311791827779240204542386363456732608902772066826069307625785779008570273844310880314911660005141001659376953214834662736776970016201616130126462319607142553203367979702915038055467145258857899888556004934499626359726309239386608552921865573460741346734139267685298158972138438419613483210460626995344530693148111569110786444335487849161388117635121217450316614026457979304498398595392443740748053380137994287708162366521156993120931793556743870777636930640086205043144453867273309471480417214372836798867701236840791990808237501932700697367753528008393486253371468932045667388428735236438209091795601777075406784404135894061458310934936681920840248868889927901205356270801437096503522496631486267940368306791942334380049246245792129558945304756900895108763254192491854014670588961571943032195563600864268833473706010180625408449620441113133048211382339609830343171717293658860976086122803617947385296574382775222498130108061384975960250528239145852111434716768964668452170468536696800484989183467236555185217408640849538106912695602864166365683846765525865701068074376381430609661300713289526588123953609333732657657895019545830248749396994207501240871618312074986157188414508093236752051458451800421088234261827776354309691061920020356134014342130693809967674251314677632026532693213719358946959577294298232446853321091833448056749596212833589479298859112916902332238313362829979120903890691298340093376751076783325966524152384566379743751650384192421449954176802717241302177275173034714638655373864703638380383280934840584112630911974808596848857076510368922437833590743926416070935642751033873130587331482960043038939239892457354128128502330796709100661902774274075324684639051116618330292335623289489130925137398345726476217788838856179746535075956322016507531733362547227307074989625021164280979427807989292525243471552536317215317212621432963383027751155637518489323015381660976042310828986344095435897239816429075743122205774593403789599252567664832479971966664885382117844516406078380637941686666861822484034264353305531423203492928002021341353686655557484163423284155704775760802458417334864042603711599458407181899508914225245257296142745584143735079987800559649734966296828422401232603119772900803219270549804023070095304288393249243459813136288932556877546227543631537485659477534676767151956582531321174692262608074409674940464552452613818267901373862970471804656294490028583485637393938652967087117178376359888257921960577098629215946523071634968663796037601514780150612625937477996767681525657042062544187746155258726523983739308914877470173335569008903996417888374603936267095724540709673447476752227720204078243611126592451822131258926297489753779808384946858019561169692139414420450625335781917865355445255932882705021674299621676383807385781238306482167363247339113818981502315632369883189017421106114771873316826208544817226407577220873180494004754896813015214487570514508491682656702167643013732300655186253594587420059936800626071805480308172794116218660663909282414190482114336556711130763383046252649883205279623971029615760051403347273817264605500873762343454931830721319621258395260941043437829369916556419242685589616056990332718983355853693464900481879046914581493160926713113701296800127697989059729996405969891380144320582504075122524588469267695870368048244970469603132130372778375818911854150461499520174836697591966042154507815681348457368525193103589043038877130499767425622287489833619292979662188746227085352689751373193521506519832538144980349758697709875820258045828515575931148396036014656595433489085364067017317672854870244596843613169138526152877711548804182073956302457392397279647762716273766408485714416010947892969806165814783309179961272800792650173941257092744639196230428721024073778351974886997381830130031047582314961467218654116269785714526790601995389997238914284775081025690832360031142457834189221123655367130690315191275370969434175078527743973693127485904683225096957641905675126893193842704859210185927073208773170234076700353213436540827034424039951526831063597391881523644278640385604725709549897008325640948940617484791401572285495069416233014113436893993227136937578386330544452525192664788787698851987153548350552745171205359976730971460814951218056243156164631126142994118241981098866347066671437883734048370320214068539502838832129022641020484106987223528757905139789873529861503105142913856878019761529580364770674223161273284440142631250420310854124286402976011412509232622800107577673970226016848153817641732737734171711613637830582075410874574719980268768532648664604879874072824560244998781145218219738188755769791948317496130092107967414959647968757820547631710608205399526100238077747652115330280702498868582511115835344680958743079564053274827725191920735997612765943104419768604462629119737631661275056034531667013235889857556789337539951985402263710731683924266170325172143449316773351154606511646928659429770501359214640924735098456869413165208484968879334505596489908909137377630486734548891645561894010818468727227461455758454732651801393108637074879987386454850483795757558341858692846732050267643226820170057774156274033954921822259490051120163050854448230174110604916349148356824851978652511241901305847815389833912265563365893100588483244339250071440684467482155254798958897852192897883254011619928471678849558950708181757774607155109217167493847181099549304632481955562105799096838765483441252272934730801522624237617837471796122171751552996197186945599470493550947050889515931261572146925784977652952029772362926934389444444657753300712951940191182742405792793389405543437951726348545897601015248839493497624623236345808056632145519881412552029436684170069093789877128585295863315854754455361207831513281697981581719296587870691205657631403150353828366341946668767448782728788484272931759114946280177077799941261686722239999996513300369100570024530728659748286343046016064290663219779693001308969912833176861431761715201834875477332107226005133103276217462230507130518357204641118666852705912022961931291487712908611165591177426523080671701112224387224322562194641511172770869028806207440547917405097759907664159640031055709433666368993593967385504090556518285521196420922570703557132361941608186165387759291566960082118732165355323210425003924710807821524477966303822336375744972160914507665574919050645901439363581548981049675951607490557130923604825120243901759495875986396923228214063040132188078459287358857842782218500316671470567095894588798134957923682504947611191921696115203082401113044135095484015243266267075223556820882270252008034288090881646872730175770772439328651210705042043702117835417470827472532813074486455059804710205020985788777312740805606026526154700841168080079016023116850511974867831312951072076826309437438635192409900168298890715240729697889413947378222645522616795626511035622676646924668393290079069135440708242203548254365231811123642795011112212274160783975579243062646129928403037982022621526544930134900425902830264282280452230497195054447743213190852354934160208373131973099190400318139294988625729013606234786604755470540316004886250912572915622877921147610637598708917773039450980478037207200016420730717142134300844096652989913790681513640343906670855218379057150028318856551306934134218255361441882947600223661199485701686688251829837466190748172826736256078562733912892970772325994727211354173540869011614736613117547033216897904912308188754966675061619913720072629367572410406579024814096030047800161614384360958394162734605542119333496864621566251939752966546129607926470911888524628028464355602915222658396008102138877987363915765087504676873836284492295331419071746687448373543866937360327411164101745828699460977575639306915280221373583574508996368088199251033749237129582499681795832095867485525113150529222737746438661898370677825239687176853497579772698597827961544253223577929096409374022340367704750947212630932048995072682884836531903312939090221719794400170606628764831535760565265291081449147046453823581162211883632052404884920803752791712450391598003183898773625302685164909836775771530182865962621969709059301755759871313969405395941569974313597469406012374222958539040854491381807331399985080924775155521669586738012564303567666572087495122687108172022409532031787600588243041975756901409931842258496421853720103290045385650951450298528993516751543756842597505571474372598303024329995066201657764080005326134904163636869262489604026891982128064916145983456097159537124914146661686315650277804704403855713118172037631791192599425251102743603443787670003797767040362074671101805610509428412662419654220064863723058822830503575337381028780798850918609092744564324015597655834998404096675118694197748490067758790104038817611416696883727230782507972714255561787303508471853128323843885341378995459262338085400162606927417718410419697658190026551168104876508405201859056010128908828078714915012530708706334104548817524407665719485687896210610095748090490493138094377231869766830815736309523733728414845923684020184437462351299886245972185524566624445977171555906191729012541437996088591129563150486392943008131993888546564832116944141972813973505943120266346761689939529652710203201658339878949596610043165774061041687686621540964545778385413301192363255094332772730465034067388671092558113658792821504636574350383729209299238715081958142330239483746487007995795850121985278142009794418552196576007254073778131227519518779974912663455131102239900172416587624874094931668616894630619843381227498909174572445537559416458023765872350385043170463659260582865572969510225283524081945795274551029275094906476242556974194315686876340411975532659682584082839804158435783824099968706311347269138814731973521697807106494893870994373945821400575822310077521340505760959504586217861843933786134532667543941049807459287046349322094620378867810855403917548313471172289903340804225394311790230742424832636186373877705391251690461634071572929895065192990258073685968377860150538322643307822173988999974253671956380634860007509413716409641236598612918046489084467894741320354561568897048593079532240078971383684484549461421215731965396821865094023055856959683208064754706619259860377240475008626545420162204087835002761397762042278106940705911871837609269075937555370055182004823584420804428432095448741292199658092808600958957786823926852874822200674110903918378086259502491722137992564676928909584612871081625105714711481579831940308373628799202683277280238018455000161671589889197516929518568408853103743530894180330438796207948148467127337825695935529544086432366215347077763448849020291503000538388631750789987312258235867836602702368531139736897384958103410822137389147069678393893465382704041752598541226947688898718481986822935570235929697969948692196223706256495008018378547030795730892498398981117931680987590326511674451751871927090700872600452858814566287543926033931733662575046286144955450721550036161900251128855615220559869960005555566438037270666568490188895754254398044059714052333727266683712948458249302499480119510060583805481513994979549831715073316706807088532944491091430729105740585726777185142434171743401505711226798483484383172145564035740073014663863515441055361289434006860253344594520716887749092827667336747630253178809253841566344609435985476808406970388276306023111822158862250112755609393862070508806856189945669312522323671789352563333056441474844795294984971051302387721395243459408834322514340301965913087266048271176716811633419546962316422819729524437784324356744829536124992129107633311257289447107025328370533965586612978779418450310878085329099864915792987185065741603886796198887198050302761516720647341224677642223521650880976799206829150660623029440009733194759649318445923498286602331749955180282637095392889030618371920423472986038464803154798686979135077796888068628397850578760333895935951377616352898956932086592952747013241831799034109211570413094156666381473009484764621480580266859318725693433259663986310580448657690035416423819219851312622382468788846897888412317658111802577202763553001265295481352227725973303009637289351960952486311733115135946498437332374775954815551534165500077660502128343528420660801762025044021841140906666916575336699973718766133876711537264662581084581779728539795867699450257226769721405188484746609493702137022594602066800847037774017449807628792061560384256159122937741244650892595532322877215003117128756433341514869411931954168426896241140791287108907850570492990163600843554949596295089698832155579630912334862567008435097156041474333848845758430215245568446404820494575493374683020447552606101979833933428287811304313122479896351949045215527500445412476372342671182442886612889646132886934374953613509160340386026589815590265881303905060666169692916515847364564087196323113938078131556367474420846506686792083475696541439628619958986354014647593863985644714433998188633262258257541008750843002750668336979094862617752861324962052993875461498738014025201627365065979838397118832108334261098436310906530482255465715188036779305884645772797691568688050518216552493738627959685419796767015611589371981347948542465177299385796567882167943727552697790193800579990195112346874663675238072779150956367503192951093792333271866078874736219804765949891605786118175039622896160260659673039197912193792810645166722797706890735576344289948317674080974414587697695720825896436705675291654144030641763102742811747286057134968698887354425071035770355650613233135916934620301882003585040170188963333121016249917194933973477944490624036981218277595977863799041034507244946478440186181032699290641000211889869881285381373218022817016173129199334003097290549132239950864412745555108950704916233786523503189580485205759076221488128250709011768491265890869709168763101404730960929478943715512407457057423523005945261520842731670611412233992924897384576610620318142392768218942913977100749393592267937599470892695986782718581660959995080923290241963014416683078195140192045518577117967418922172058840251840695532319068196010116582871548525783610176595816850834959422677403628282889516910963666886783471636263818822754164457890100425897967950171940507306270490760737009574887477277758111985334382320329447259620673651921327823016971919953699116505323436606216060573161558917531853707864596917504042143596351618458659694794048504664340310521142442891868638495122594017747293282168974900189453021342270152367065416674933903353667218210050397554487431467151710259591966035200061809989610014799234516965856335217620256237904808197983614955963927844112550992038732937751834143387700066466575915614964738165404544563684014711571173307187345993975039505204205731706215163307021664641732383721178578918791353583576210575839156156620642059573731366559013150468953779257492651457387486209841159863138321561271182856891926313808272729882410156342915299909923418554790685793955110469720738990185340432660041740434767444886544028856949535033698761362091221606372626434710820320855375607834810573570674030647979186703878420932296040828061031309738689210055935655706496237615710649582418406231215669765402678510614342796119491792278571432871987945102368242525052663640935842570219309584821580423584933088702855197594045034916719894032130980841437483410570897696779436464826784975204266869800978775895165248697198842058390687173949840352794594157789471525339094502219443079547199179869110244702956336534132599789107059186605881400102457732048408272716160332646364280357829059783684182570984438982145018005100320955808697845950624854811723375846718491297997897491647109611355086233044541750982275204883755754089363282700561241981033479267449339081316768354861000554118683676462279346497529367560863137394851000155491578474633654563161300445107651931012389365251318438674866883993243363810530056205590312187732555177347137856458931458569472237487946817629924011852764166194055535577646749719490765026721109754148342664855268815289556429668085331443473555157470090199859729355520523695855808168586207540222901957152332742140860611224959230773121494610511705407355152410521591917960617152850732684820126213143419549291154704550443152426639683435042832655893318807597921999234173941383093945323267142004224806968620053216339547557494734187297453651847760128659902210838718316327800352937587573645053169619659771207897281830474602048945468086960782384196547717302862798505847431222654101412114908546046876283883442009145772970692007123710062168231776218261272639389842503256281586443114541514952190070451942613642539192153647922564023270877677147781698549685411966384872510655446491704569115845868205439224815999127997891328889721975966289558218236350667484878968851276358587151752403504645208256474439184829847267329756041153290276130624847629614434486832465891220816006760733030827333475428445017645688422314085680253332032818988773954972278284491431697372265604432961386218331737605330621660058278370586160745846344012454445004733498058210519043697679687932234140756789683020910392015862895078903557514533817522768062827587732776464574462130763125108674229117743483460327640128278631807063487670986554684133511392838577229118548666977723519992915179664557937201780135582615524659972013383506797120729115351094266753398312983808085155953417073623904451338878051752205303807339069773229005324525644139815026669334157863053455160860909111664443229163508752938233792947051273111015673439887897610034513428344639438704145433825920354284873048266920256289288995417216051193919618973887965519293919189361206528577737618014398003687493829567702618472827235682885026115080133972538316835154016039756783809806494345044265444800336886044254860134449057642424576779508511521792128901331590260641834873243223119974943257912495152462285476202097363444621164859128856437993741921779920610527033848884213289235340485321670940016404554195573099241437031024499444767031011052026276172263218280314656144096161328450740473777256074654459966809904763451591448410317095995968177255618019090839796934362744056402826701453785683613989987316650464704328560473074517342868246628393613216225357424176384256496171679021774246870387747877165073968277745338502495643429873645688192235686339024218204604345807480966871686587327688337270347215931900157971947154561857708635085966205114545206858132037338650834819265053750605859731099940169024899673379108963268848879424170844437672035732621830896923114882385052612632656205795082449065858290127467255213699050708914200520056128201990170844984074956504690602904213528656185345242463626974494458275803693456365255100175391293329410481954707748380102918228699642621274198681521390479905862612961353711258219019836777496561248268201268874624799300970525061770635026871526979623019965567640411034771389021243997319777718529801684575335038366815623115590407907680380786849271568602468160211856363406203620256534311462488502783646010076656479556103343096601583752628829043093222669530977072759082741068664146364568861950251099805179288208663966828530847120522311822234618977249629210656128840206678511317529316393338349617656603832234566593108007636132471669377955969990640735929708955056850961541606674757763098714761813565412973265191589377304302807566300209207922700496990101030192193434889797303241257901140795139457774595217409516257852496710170335686286345950607469675049350967060870200762166378467752395449656121703711266809096603094395486503090610180089097739108236369695763002462418354632150117260306433516177094575132083129553042122033019474309387840245638204518241751545781734591572342635732856798048698484399410569704399118890860886582303472954184816974248020686926044853504110318127087013797993988383690088615879493901417399103283053447362038870951501626927440611994586435634532246862097567084832937609695926650615878079930076780361208428239229626878514325755935654298823661201372687639644035088526891354435953209285859227715282061108903834074185930704313004901885395477542577311347526613885429395010809270716667262469595090765066579362550062933381186954493089613442044786998145729237734905071779294935751529092170145494945907145444508668360976011395494888726150791905719192981108605231187376613882446616623901131374527126037044314614981065294184124069492263500387003056052684678997301305853693343957258819373433627938412566044847767401138259829866806925085337854821509874887981553615192747567960224869121798608407219051489505316350325788849830508219879717129913360168555281664047253426579725292156114374148384905344594441816773620425473972063594304375426305263177153139573998252628453667098264250018901583176675488256438434662083540181865467299371745484665322186396375194902704490831541081131505884960879407964045719208792846480215820325337521491625317269081070101448346879463168239258187568684204874768674382942243162401553212123009683987580853433694215624883999796122777214826953582099358966090827616045952460923822712165541624143736750184014929178439966204348504081475283316016358147749912783455388031525185377494294307803300427835153448248210468234894037705819552101269782673475459731017347097273915036831624251974067182154101501167420957719805341274150747395969698978897086296774626262146987482083601586342314603531061954007123727026309686675220377503831908336609855529277464009823820185641911594482065680799859011180933403104530667958352654917275324265862880057471782326473448400306183032352879973314537281981758138195371028569322839550228401541380119723922835418225641745450770967743396420406194746101550189802118398696087669155765719979589136630065433566724943072100727790510825098621015671409839382826486403897762143058831747738563902136721602442419973105487755957257824463225336587289811695209556578689199442722405490496902197643795200520866749100625352649876548656122148486512212317908077315175369481379206880654012373305671851117790316162109261740027697519797698846281777126179318173642834201135031712334720054168640642201956880787129615965251773880548753004440129209835921846453072037820196525969510386825825524378004096457226865779780511760462282674012793728903771675738612646744551067769747437524647566627890043933145436152206038134151622328148522387031391348924392750751029074026698512499900214041862872246747756637253672841617060334666222737914550468179325118570739574045884266223668714705556539997014038497847550306259795232986108361987134868806347506009088820537868677306076464867873843105347007860159345397259266502137715043672667425988034430317616195600602690302925413830023099700389844695526431566896307911334783600006010331410111524971011288197032080999431785192807243550925799701660039819970725199045065223770247089349798037702166565557032151617444893565888240392342959976629715332531082886436825403936158614301481036437618941348896471143390834528083381190863702818535231918617078821662653104028979072380936294911306670528816454157238295079664751354313142999791131807779631982769409277508403050828967392608397989077357045766443474349623209387913995854421844931506067479501371628246513700179134681784654370987280582273610544893273356075758957583445280973947538441889395071232754695291979093307970438032402827526911709689757541536422235358384984262487586068107465610322046603303122675236557964048911967724997472918563726742152699255204905338871471472369588850342592861081724961007286950452619781944336646001562192021132607865668208163241787104212013078632190103394631120437959588777443804035045512762280964295366307638854201917646888171882697205569050722944825882944727062786044254342062408805900343176669273731010651086127767263431294143417131760700953192127202899011921161717497906944974097836809405206562671680662822894523063115546266204627426610478251917045586426053697392476852226374755341437386945608611929667163935140282345341101579684501478580410530030037146472312860287355205015474905991326426890215200601238881619220906415088582535530366559983225307125865958763974621536698580680596580619993266921583236648382631827851721346673510442270625999066663660123390889648447032111291498389308377763093076594323854901668082829227768896845449927897608283595405523211232915851020926782991827423976497915304535505238966888936326590659007732063706915380643007203191873832975739372625856792173059792029377575305426213022411828032003593286258637278770073239198664009296152256857262046756861981136321040709056982825107396019901768252516837224033358053900122872444112400193906061005294542240447354488330713062479286142291344627375762025429125272223047807504592659282161779428905000042451603751136377829933964245960609056690418859667405190560236695758015840308912201706062838829517248800546301234798429215857002852187516463553671314772216335169442789392501304216113296897917973460795877097531205633729369974508945686858512281571090243469158080684231695342243892291778552026234211917891253533207876163900991082477848390894542626008592395507392960020866590049863687624172012945114412083836092895617146298934815933916039477451710785256372487100982870261487096400296618711356474688483999573247413199240278718234723540314761440795158967613626270233491352172079796279493996616772359876666621861683905872838452344769521264527065130774286300205067395846873299511719783617202823539100774394641794083851065774905073493147013696633043968918047888714696617354075730112870875997193233327399286477693452428996722113229528203141905541947699676899485119992527795703557475945031806078550396957194391910053440240988348429984421423817515243870062491571789636062082988194329979155429378622614132552719890755190994897423088380608292145656297299815806694937219566567999645932471221798213352979422076117238470772205448505054226191023606284322723808679875260253463133220988794873845212943474612133222901170251751528570132994745822629358508794260255026619218090862615540696718467881408187007431112648420973916632683991051390512352346192696964580562909061643963631611092794113204328276518562228829185438664627959251607578483071844320101797776948540013914199428008411646950740256766510658566143124121561576572634981687298290577374717949887434095110536439453142208341983755632019920333629381078671213272450574046742343027444440453269559748679933244341475210754778165520561284543106079027317502589716814591280214022883508473677102336448135441429828749589477310282767187512793314890133924127486939592578090473011821268504477217005405560078210946372222185137054608833456534309662465240158032418176307439442004602915767058934068878968864909811337882618581484272808978232930601764279756344263977267462227309935297199086428640423298507272657583495045890509673314058275686945600835390957339717493514223525872883071954173933360440126962995995555351074549775885956861897754239676017682997647129026987216536104494132472239973001766374354831149284476711018765252586210901673246778738661849821363164591311850415051798212429464083474774350975653813657840104462180951623633655287577126771931524243625167470488996270759082395779347531212689223767791252254354830259878535718133954505269383466700989725021962668905245142378991127844967393964194625691113257253767481360742453268904290765301234982633238687864764558764077427206223786430195453121479622010263215776807696448597106776832337654702419581397624605739466686446948170058371813568393618554532857635275465549491817943863295270283863480374945192494805325980592289288462167192116703228909266796727040019528674429506251626090575461210110518846451655260150703646390457410435529976864632023104901185434505720781224501881304553547336792609737597268153441337853260946916738715121845361636042617901962322646818566337845153340926992001082238153829354522759313394284978519239812574087041996750899699380571812633054361784273196884212785107016487881904166689152018404975431700857766678281643038143361824377449862790111382227412520219690871799471618946683830002421642913689865392170575425907291420832108412763947595974933630653124002682800276713061374322734030869266694068691293386794606141464186232243338914277477753183178011827326919989368987346541206007329909985742294781695047529004082681407773877826740001497034378876923072014617578381453158973902334726321961581116809811791658934381066462811442511892621035550833934059655038346410455222819327638535759446036220508817329660286064184236126603860678721205903741059452222446461257645147809151604645742411606111874059243045304407418082842917679672366294876419762752735643197281889399715035340769617306663458955599495395020343525126413780322046316228732728798339209080935255607792351669049179870772445664856153284159976766695831164212057343752935008786664748046486990585843024587396449553359002471977957393503620437978555794232287558594730395420008965483546695855766205380362338031569337302522575502789599603300895000943421373561817257719212575144053851371156394710916136004977160641170813970334031471310739026492075290438685566683280972031670515325781915726468055804838761602460367015545264592298778737061827047371201404661249410906397996356387906215463630894368341462390744813854933126155058669280050850350009924505870026728810695768542577047130497005783296626943374485918290104045252741347416604122912924000462717420710860173018555536876244729892994211716066576248786100734053040940341710681692305869996931753714375437199030774605439568958960222200799367498172232119119243607785744284540683941312522233782717269676684907068864025194877200125673614431457870847511275784657811340563479115321327391900082607843743474198074976664645104854063766458512087060518698498902268995307956135203190960595839557484374807458778468290008424062732313489364809735298859388825458289345612044512098308823565008578180270620213524257464389351804269532282088006243492746287590150847620985603776764843509856122821496447631295968807667174985338722420298906990859266412562800175739164290613082580877473260569269978085772312871967294800878101026203907414376348433884508840084533254906714470416156089897247648659949127605657971880940348725021525433499887844492494901713131595585392683331106500165335567632497986474621551854110403584656230273495369572035477168231853305737613539602137458103083312848496878763611429864581252482635498097564662428508518285006859714820458862981062518393725742367610864444235506275922900362566825300657163147848586792931042369369416426855297082211136903130143155217649790411992919413772465645237624545304113765195402181898708039882329320757867323064360696669262744300463894299344812770617977935266143187851655526765817438238282858961848126667365901353220147997100886262295660595089741926370570653432820364596722145541552380400338268790238225133556706754592060032365161447179215495830833550731380986614576868291006673308823116405406861129577437199625843212938306087737007303317723704246809283676920895706511268776258265403907892770177841258646192548907672879287640175880949070139414458676587120593746472892568553509718313741667400785684803712582477330276603071666383058493312822452537256449350646292210443272342318436276027210015989311193338285918996694465041007797806930331491797060132935564109108891396869958395317769129057566096473291302022637706692876462894813120631418912408023125577033451051840925054906952755182463378528686432585585552874828626393938373662001704835042393609651689355321876587550043416759345426614796162661203326519580979611455666673504131502139439897382506131753207552512528559928437054639241846574605210900394808558011201797163002630202912585011890605624138050693843654767289165938852107552639391055781143362641756035535742751604386744404211522636248046709495674311712882732721342733355310963492281527530159882729156937202842147928066275923581005298083961480371117749048825618000388467820761836134253642485289133982910629972429797446068651105136799654484911986958151108123934874129335247623570743809199170799438419338073570456177063975115244605217019292381163695498906667739624928811861530631673241845003798853230779094397116540599518450251539348478047829178705097399190735023629270863385682289036426368951064389891231758498188275621694105174796153493960668114824375204316745817948930257204293935526900695673570918813804993135066251230155863810558176512923670316666312469810189175488188158869622465199417547271967529521195533273056379307030226017236183192640168506355246259490581944961006165285754897515792812654861417555749688465311015054104610699533438099529546308685181695320733860389654432233165958471895838549903335835217400063710260315488886038144406578852799129770710430078929001953838140000678522382455990196082018355560696997098639352912220428461835745412218985127780442441675478815318823028510678970975443435450142405564152548502718301019583926010435354009483687380448498305477929488535772929540309409467024927585924535479502509688152402744354001042694637861136095450537854022402866546409247850164331470735728482167245554647914934296343242142795833388044134777492596066301382797340650134740541816866764854263991306849780372691476003358900710023973974652857263576332968899835440421077661020798493458734359677203690911317209618496377317552028717951577793517265213824488101607983064026448468548776555491623118458876292990980933943084858299466687268636036982800970149500485073710860207775436842851128051476957595093418188137863760773509961214426719037214823183474484288230052200322193440582788021720380168671782397958452007726002743954434307219219182808628377652386845526167380626970516997698242186024768696109971623216970194593123382359964548670896350375569504363547677723864176833077998967344661191871417187120636891792771317808976679056790976751228813418048696596951190634066227880146479345423989650572219478467167446273365556684123163252819733503222799515588410596838835507038947452939540798516753238644801952837953875743832717458523674741083709690382699889899117838983967548261750312165951933008464294010164837078594126483119451039709421219299134766791503058182350383909761453771382568341063991437565842592302278106466842269079504610469623917444129451983438327421585440953529161033036595293549267229440278523374280691462619871509529877518599735139064720130019638024561459890869335512235710101869736927613724808815178711771853804061133903987974743074078526810628466148759524731528864974614307564874478683993816751392437646258581327685730337456354378902717551350958429125096532801832310608722034838898851545796701638242207231144296357056899687439333669707949856637076479574259912847580173734724211702754438181645135631850582474236129559693747573358217383613038391189332609727925917030429827903176922352863130229729267269160344466180350651402509172019936987311637212437796724731067830257410054137493928111941057180646222307248505023318798369162398763124123161309498211739288715397032468742926105482512708893553534105508701635934014301771156186908425910254694045979853620234633724652696187208586403084458803789454890734299254932156601847915523324304495018176910785896630967875175688784605075664614838568172419874087205590335480761770993237801978326445560749973527841647074010024924981172394537177229249021460562382257231461191869473518208664863463515229667348195268546342154685040720364425601939139718570006366056563679196135222971702753153465991804579547697516223357045671842255841306033024012059266910433026959590527789321605803788880150666688212169812065307318136463520334038569109289189334875965543653008301305392089250863509142986084582146549065155509816276733370512536476450176925813210721771267151514764825844344414471569483589310339509496751886507644126655861201499207233013702221806683590297975732445193769665359969008547672190909885818776159565087664555402238647607693973387991173438695736794205197938780982397732982761166642395089222488304088268271394973038928090532336892419220243745442326533664562325468874611234522932905420999679142921266985620769711810429314656389177182769063098511999506732064269198944891951278517140840715784532156653531432182725236155019966625135072688424369847269540740359892131534059204609769296323896480407518180657539871140128002810467739258595079438335909103954428509124192914350178582476526027566182905520390353719713005153282184622611631743547906681292531390382667860446729608519163219667486484610444913139052329800038204630052388379371180503282980283925295211239149180789722369482299505663584689149063881276557349489554407869074510538648659600203801619619675606812250850697946844962146140706745763663116292224171975598624974577477211047138505482245520794029574291569264165849120639429589380836965534869319486194003742043612192986579842131740880201308868520409234722852802457824962682118396735335534816830605924829275222679667337099553746900179933235656559806757830899904698676318925543237926385335995061571639698585553843531963357492691026606640503376809717983746806312647200313603928597343282120805395564157411503381243668500691978609165734166672030139784291183812558309929672652743174764994586880636312536482319157832424761930471133066681150845630444982147362868946858766910133048248857131992659591217664599576719691280812036959254857618233383122870842285629552751583568937322627955033240538060641926841628468110798269310036424452523533062413517272972753321663902887509565465958983548077483068534836449350186315412050836767305613876572293168482074830624599949385305901079074756686203414648254879115451362477637224750545321394953480026501698075483211575164007182805945509864006667591297124895540674817742419766205625630250124004017980359777831439056609207086353279151867867232951176688219668960012245725170912095281353796038937584014682118612280508378643069736206232204265161679446446360369583394300179769676193212880364798033627776236022239904946625028092221583735731112815249385719854843490961904736433810029472832258474729166270655748573709037500465000167916674466404489280712113150358223299094162199308794722614242908646924456508047954040055421962833594519711358922984256074638263369653101376408852368056308096743985810660758429632761669236756531356749875283187478370813611986792178631061091881844888783741709544037361840728730908120503807046491214727453980635454279599238229561828324437288232444648699732932245581397371220878981273683892968967456304303366712827253438573984387741735832812151266874380006041286054523219651429174165837836562442933631816713231812545209565776285594744447862740051980009433466258508843994448631409246691449755288893932797979244960508911982537538568116157004115444103697703266013593084689940731951752343186923852442658789419100290624871076161165468055525588426357950216798125541842682036032472568539925228609849567691843354646782933317580145721899384971440147012281194649671407664733060983962423366947542512860588049485725351750696825118162431002504365128674761421358892230186884842229897508338083119642626369987389035811603074241591910577935710879174638000181147767618652955569167091070094591526563409404871764818765444517946576555828118930433756688494036490963797481091320140931521894006522027879100495333703283330071920280174896662873947713425122964396073624015650672790905075945059811166198577542907677161201698352696986649898322110737284380313478078159987196483125425738138700318922491418495714555490358032819360802610168199159711503716984151708454429313282725818592482959589458678462064098387630799407498299122705010875932513841126699813895925514661997717984960777022874579956009232858939619144831810168038484719835953655863993337271381552048821744285088992798338848767833713263262527961119905498331080392568822669563970712595234160653886793681225991825775737228342992084268467118782842326385556214188875526461220346167845483287437781820727227351875983493791393668274764003457111550284874461034977732345351830230487536087907227597905883733610439722666104809298991889590044922363177966620187564565943629612586695901461589770301647798349820231017919119048420804255160129524683071030718526973056448643816523935900117961670612868670027269807103403535411963397903384996977609908269444380233282642432146143952942849663967956000445505359562110377911973749634219691700214854625991548798904573283662645274096532450527052940718381896164648879461839182012886228829801983275656018298777545188270992658203728611789745064397415660300178957821800061947422354094159922567905861363727446908930771876008655768687321481721486844779085848414319258511079944199100042932122430226291216972452270301519684282739744710157543618542904304095681557223038712326221905953048871687159308471893678381275363768445740836571451668149313819682708412505919760520543179493679025415980235551445653740400003553024989460625896327494340299386380465449823376066621980581148757154071902355375540411813158954014093296190319016797433944953713785442703591095823475662471732921626694174406232868572061721334007772662621124222540233721979374690414059555822399799365779063567615519280342868864007330280280805097724783836657437077645784810176517831355726859482457672342925649634837035212685135629487430766101246365026497274438346476912346526646175156185028543996449667608893666740539807230428559420385777279579447396229101506627743119452776070895333384493999814919305695981023519179369453374373454610467065642389866836264721372088180379699860015606972285053261757488200326326145331431703887136163391023550758944822376864355328287417873080188593518649654640870626585328567861225163592114216041164246197500768493073892334781100108270091443935111918235850833830979118222606176891517691747961200876582775298873096118303323694209073390372046355714879542527934364416517839974919880953466325406714541328936555909082875333423381025697798226927693587158669429040260541403862070032795196592329829134306934492747487935870040401251161425077568825862903219497582853127094529176793653790282695737264291405482763860653000309944280239105049894287445662016099469513577677151086081289943945788180466403788989291586024639231670128783903604340691401467352738797315644439630391447258803083107370960967301954516237371392682407905460982144872133926947655647058082390977649383884185078145806801543277365965962702294412631815845408189593455247456994557760593925616733289472525238212042534593736467004710615996634195042683763325524971724323705175545272871152384871489752888097121281948495400853588030613980429420161367297724971204537212489701712252608207228063086576697538935553133531290785341664329346907639617730659692953767978375851223540165373617490517249388593385341652170011179858554104882858529658861939755390200161830639228251104796720052587401139771346527834178970063642660801136142466830354201654313651605953186627398006816451010704231002095522235738726904546536361967351104143320737319536629548044865195190475131827398777627110562845323385465794207821067563975401428212140061867771899363819097960639924513618442892853869327216439233800697037434598047053677173195492657261495578343978860875851461100482200650816848967403621951956945743422308366384615283798048747144079543734392045977191281815116160150020887399512423885324712508445734126540639761276493156453445781671701090081664182395188090348138504848500931873815392148573802354899721052925145573696476564204941746851923110352273831858179441925382581587452553623456409239445497807802602868687559502678828137532895754468364675256684666444328229336986463379881816762822951602717110732176967127974723164977575133044533487766733847978368645415683886029474733761991457776088607213628058780612278053017534401629279895609118048930842542203671268179548320726324487888159326066386840152559939405419962627068136703994471037998174774354353500629194467237541073330825301940429433339517322104835859897207555949900687008593431040324922326776046586005961913761164104899356096774426206987562721144354577209202958109258713988915911814791223382276563135333843987400140505192381102983179310815071205831143793433562968916234156834504965099452983330704446623084539554337357902993740856992919087103351543920640504663186360931857577339849447128338589249646618794265129484414097593577590000816070918459193448994443691340231594085700237724050907008938011096294639601021595934869046634291450131724294648260923167455672610896939358643183093226485537862864368095263058000886355240416142893761669371392662609953780323892870193517451992703376444248009237944773578533749969923377207583150290896648299571102599211086074448953024297903387955752588531309060230449966041484541557780420319328057112791081697179337496413716340968346809840237644709556671992904740762379299846322334850082707475113457529321942533865013770946515231586988128819713328966389385315561836774155397358151592710290842091527915693134670971820081277055693197730764643023166129369657456858261039530704880356840283167456003514018663208983674162181847135121739479669638423756330067960526925758904741892426958698769985906417228596995180027367061830514342735489912738854119790486739654092680988793077122309616284644960368462838251969800311021927613888394302187556113863217324353793268346117236395806782932653870991477465331836822976017477485720251525901927012211564745054311189257427562279578224223262147561063346070327327730318221243892313175277143071423693435889564153647094289071183454147307757807094736359106775160707066178980746519046066743887948499467345026707459314989287627903873923084328226337445806249833225350573451020579192771456456958661844624545271693593875449911623892639527300180233098733802053718919755908832367466589449930567207189437339905510349681355165796425769046786873200631263826433106749572655948031557797625227948430705832839421616551652944827052422246583341111630253205562321817627174072115261589184553966934811906084438267995438772342410317656256269336435871550023464700265170322225014681268906992749455981486599772905235427911802338542141468089517803125888258926707268279613232060757392611326223070008372542539239271850417084638941576476025002174997036245850324219813592316715869748780667242800549391755889306985449851945012007748333628146839334200565950336843689652774140026775225793738848002416689913284683448316213964933463503445124627235613748058363738493525627986189296480141578532209567984190228186149336148999693404229033064033302638130710655036967777834860647814659614600043235639580685541296844656939963813327948391747253077170450362292361859910742061643086958461930836310298199407613942109360508943262797939518284267806978614586538715854500963914365392396444658379656050497203625366410743924852591697686586745779765793894754505612849612928035882929899197553577733773685724291518065453891906173791152866870693252748304397961270704534174618654034694761719489264409485671794760463487345128015616720333774868679543824588870785574276888374557586535524906381719961883004020489931003675673865741362879420522708891532463343201437563608305784982347361743075556629806506653491086756418984785743241668172932494203626241660108583290280256277975732128118317935098823263003833865013491406988852769849646768255228711969597966747038740605515806939796603542347147365231351246783001576722886515322514258387547518853334487965644886388999388696327356102826819387878905809652856857026039909194856698246092771358605973410231260469670822950632262142914187937270026208777065954576883707994000639002201852052638605887648013271996331462907008335750840949040320188291404537762226405315772832751884687990395410153699764171001430015547875728176630959548655264246467471211737856439969794113945312340691410677535427421168153285412161568573415974561122298891893521591137810191136279165188493074870082076273955631665585962338396787767068087754719511830525111978632622970428811958615885681102037237379297577675532048128642735001144076978165475226186752680102304471814240082211075036259050588290066689326211329663268252921680301696015007534313858854138922435708586461747113675878387742817430520787473099388112127528505754092192605347556808255953128765960732651223926137173117766498645003828066876783867430207448734853152623061795722229196359232044665667176706672973666256955226165168385244585638462040457167895090702646687387822999380288989924677842357149807086921142135306309568927690914657058554112177795396948236899602173532914453061144236962199976818897623147433665204109342912390064662623221108051230011434209483322732247701250688462398225544423781195381804690637339577651826508456742510803093973295288752410521639342783231914497896345347277428880297311462486406636798288691104631874612867181783885089348551186322888940046187188635932520892647964928332561055895610144423552503465688411696110634813084712171986469589042832181734989826469879509643661160977767660894957928225086437984656986552979444778846155672633550066137402028708476241373078338316650641720190409226383240012192518418283424382507657153192420492270128467635523944320375072835195450192572386546392702662174373515719098947670215644623191444938253846080539997573199577236800563354498303859870281545762485991578061494902039156607156466870966213577218294371545142374489962308980629936810284043087736135157201629452239468638700547754350370460095379277130997239994089879961716892956352842029301979805354174536022903177279808181194390534261399395757186694932479972092005465046325674032314171219779674532980596649631178701943231885811658597072931488939175472787793683025850478309435819109607429089020059142628832923956284261135069584698381901247788134080867144635931685994419638331851519155663534674125543121108282385744660277554483739478032624950757508431050590610403653459119531511297863108000126164771683103277254085138746056899347502053183572642100897342562678172476623709716047095006039523724240713711881732025544453676826977983343710692056052633361526949197160498651533180969025266146260275837831619650563496352309395147364784478441063240295016776125452069902949374874167865951744090487521421417810396780895585622991049437747356649849328726955372355593052789437656009917944801053656841927384435397108991792016313268633042556990884850173309631573477271484846956868875629436906654386453130435051147162024096259676574185227552442790700927557321862010074952032746617886214568483881420631728738071616723954644811974515696574006998843009787468133665803141149077614979105400265410346479859549338142948473575188309808957081648023155146872015928328998274848699522687794021043394337678874659143910262886729162756767037652177182403230521523407059942760960539489610982237206692507068042555727999597169135410785272116628496331849584260114897995860123409858137136979711608912325780850520675310863741468916252685174079722956708510112031285709073106358339220756857655301293972738328809534466903574061583612189129699283855425335043348207916529346105146701705094193681891453523869366066574909874991308165149499106302714552768208242295086449266619815403982237435553693758251631171491950144029024245925842058029025214436294476156206803202402121798004500204360896906429081024223090567306566152828913841125016443221139368083509375729066300945517308845963177679009448359332529079570722200041263689931780513098443034885476208856546022815625079626302216572088797996359280956439201381482363089685614736897351374353882761475165474446145062152691756379223565115241885375075892296429672876110353843162157904817678973536844693097963799604097907659708775911862068962432128426698767278184319476000514237224222242159705602165963291920777495604190811848202093479720511885621221153043428218160003822414717445816324448352586085613386009251296549410728385364112814612072249420408092614051522378511149881826682623157072406606376007429770950747350709211539477786666415693756840491821788253752027720729028321328447162710302697361556526833295995254917356410990665256724923493200211930698523130413802422738828692890093165910572063609963455482579599540747274551850723980006424401616308236846755806993720303772969550420486738654467987429952678934853255453766939856450973055220897403463798373474061466926251105677905999052975516384615764473979397582583501429700641017758988591638947983021839059481850431377161521074183705253567590325619021286714702199723443187296787889607087176350361291794863312739162768254838564347055847438002466115036522246297964113214344347928699927461018269302311051967211301136759492257410543256917478760552714658665620896695887337949928142036573442503230399414194801479004639361985529283278083229611635537872485688057649771955528450088043261400745554518782236537572078332242676981871048874653583088387910015715694018309433004638003320848648147488198433189148890566551175462898254006583372323410656872200778667357782987845947223578264172992227540916547696310264090260398880437278569776230447818647127934783612411571247940424848965276520710389781972487754829674277943761563794781130586217446354427262436128121280910326847506582946894216033628515924949895211756361111073780377292290191927524006495156047891329690334430561436455026342263656786089390556157560893519346411727924774124463942944858386538767524500536422632642047355178616518424490122987750886435689867587856013581244397268664983885947147186834649433513045798805768053993861015034635080758236375859957589653107610148473673401007108977790954423403826974670689911954632862996056404989554211124614901918467484400110330147221260850079645738447193482574466850282301957232547207546539939952497194221325569106122483003396607666486198360745493284008678671868499396493248563922856561764216630796147085486486731102767123938721309914433550746566587268320543895298315581770644978726952519220217555827885437883342403710098550049564758920896928679061467524208717765963014526920098144594070623023042567449851625123277328040471161957732557253133008964115639326930135365829060798588108839543039384055336294171974383179708361058855711116185106435740241579632609897023558051922427292888896581839189926471768564595933734782694284488163781442910734920122101274106222700408945019754508784475269288059885001027012942691862762865562320150884194968017894230230688113034044626293463607635147727671185848272237022605987953298690041304939282451262364495592773178544723438941543833318994492097732117861312537034720961038827032203622745123033401759762836542850035229508034010276149444468454825356323636604956254303950022814698334466457577471895981937877199676440130241594707454605768215621216597777160531537141130286178199513394588491920670250108665459792948235141890807491591140931540188308802171070014916530317495104700444272440495480653445257171920413597659194534914882648887241385806090556920069326281697375009679495798644192223837532643396642135994072941373226698830585797693759210217203072646215547454968839080838293524607944400394476611396596958787121397306089170074936540422329445159108237262920414200185568728153520805583111581641317477936327162994104202910962422614261306384304805699712722606268111646627619752029995730113315259631283084658229189360737831534291947841490974691196701935942011992112086782468675290143997823085380570353294780823372658051105065064066363278093031378619765551048758206899885117601233064459919890775956657566002492318823914319378891534834359672806043295454191858027133028824046349494565834091135665388278136979935463022784300143207591237564497414599071328992574591042845402207684859549918446290638036830153806389917458455420240197071850329649573252063616060397436139946117591622936058261933685673467306111430320091015989928389326351230949607896873799841554341544730415144728506823652157745750134094546752386173672945109450804271063616838178734138584239398264598065796575783156231253861602629053801232113892801373587772512731579845738714619345591393623199240972411599371869820146618825521935556905132281549342412616470872249380299193129644204108333861900887769110712689732094755984220986444163871108691122247251238683898846059671224631324350272699798285310711846721681110054413747029387093281036835340528283431495961827296523777130192937148821247752865234620265101276863784110946215537722006935905240494639753289053497225706325467446936679042931169423650457625939577562521454212256476871365931152189023105508928089225528084887265658891236473693887019340978108316254092443802168176157293361530381503166325977185704924425078724475051505485967804314653823832534517617000646037489459608314394868525334565296490284009160325458784317374798117660010815112012736632617348008550229050583392043797988714106972528855652584727033401052007517836646983905333476792129718206937097155172889202321438479754139922121786052710631637770568494649253534163082425012279626945965571205181427834013209603386600749411295838701585351878697715389658633096212881860862866020008952111546618517366717430335272915574211359623792872734193963084325398887873779460955395478386155512737294880893432117035651246894531864506293588933778972428575941327870180082155966417844987697264320494566315901194011403971995332711889464109669452864092086285303615706205863373205179256031106840191067433173658778501358104017375028517708800627388935769791171769720791653236148735528518532904552243429866781656153537653494085174502765012472649918812677515475310459930895353890795296708790347644738940051517092835295773396705456217450708866071986898054929039168148905720787948381688685197120698047559914450466726572472803673872811933820700936243069834483366446965841080147464295461635555007356349833145793483727914884601190653611464265493330094358241943645840100534691665517682021154343349616540722959679332170928700014172246729627322859709154350242662399327934784822363775655029139340389048027138588955671158453919946875066223526875984896675800684502909410410382655062062714523375074062057011926693759136058007517770192313517253418856000991646106749157354338119602524426904343508703011037603878911476069138439766254641167003421577268101842688487839354324149603913152540288500583508311710722664864966965860452671939662462407695035168498198713072595680514109328250654066196853760896771366609316798305212915209032521851499953463702702561844704642063684786299561790193228422551729669877523619801483226367192645953941893219683479567843883007290410661371338229173991605580057757784060169444877838515202078427589714748465405918066446226926933650685497497147165462299721351773227962938619454230474425902586917209051593786796141423915538115031425130906840162850499094788206541009010446223331429837060884787519011996142418337278635883007237571396515453924325542490480524321957813517219821745675032251152736117445809058176775063852274980207711317009185477599903870927210446033482948636046490327624812482869653683914117249831854339106036923840786667068873348939984645405946387898260280606586019694616523956124854827346140174824561894755842373712996192263019935218405782485659049878558567043170938807453924482817964992947077973901978722912151185891420902503308809502189362657291861751234742753742034705635372806207698879350420038046135963989380667897381911356555332402475788711068933597003176685413908361004404686895529815630379762939325294538777119846747831917969589019163997481079659835639907045467447288216137771822219712166831165463558034880783883285667718375393617534510959274129200801797792320823285100329224973561891462769140463077412710034012349995226287543324581265800927852423891124844521157819267213107720402816831435322112808476936652863771768260466635772414445930881270536865547756251628606771539852737642076946496371233856995235572074567852991964407480633780464634785304288765499136267423447739593475224806779530128061400684126651975913821090760728972316260030275743076987949390470888078865256055875808441788232271183476777956652716656851330200738885221362606253660945174975348000232174945488260041492890322496014015008495719593260513068958169377691613683894112872875904149973363884466063238496122445507805109795894314696850949461899899714968715919391073500188488094601372120829025067616655999143509847206298553714364821627484878230889850851645758169932922043809796632720601789013372151483773129339556338003013409235723545426809877439314837371538179499038918499117610784164950361181180443818758598331938275732976806955512171480268352619214124467849419937642882350282132901825972610988280489773553399319065516761441596890463497252127795975837462587236870949443370911269243710798314232736484067355405271153301410328786678919907448026746276401473296157214340522761412918562709500203218313362612103133519606512903904906014361358960709794304297919095214270430147140011236554302369174440529214043990630593773023538216964961441729631989099959240515247968572694164686075574648101658121829641283451650307712720700997078026821035671403871687032124310903513835748561231075882450575101321891553428316422085100869008987196254738584761330682168805768037250189696989431447551797631726866781624333545094409252222399791774868876961232319527377565209140272035004194585381793084100907934688034726328623322614730394463277717719995225794965904565479579834929898433956600816716306775246060818935396637524644128853807921202194353099650430062356745658856667787093580801096805893077666936682423152632996191670851064958531126531705423472291875943751446068433132059738103024480754780066843383996123793327176874466685983359127460865465397480692342174347805528825199988821791516993544244686146493030221765981798031155385605685131960963525059878873190339429335534916282595841361935897632108715702542605867371783790505668580210525588769876832702669672058283598739345005565347866521118983893546896682084797612460672386076702264012792258828413443622121431277002570721457970095287933914102153931447610072802172819560811058852845998001762119351368970360245401626240813352588590620726183057323225259653529972144468119705293503118449540350807611818881799213645035524718432321093931984575777066452285370469416458364664382906842370538173049903571501484125450499537287926126726827371394960006204410389582055977545444813061011166912369689512261339554989913118539747657895359980937116854274819832170204510438025944879720122559175614560117891284435532223680344677170220114481757196765167313018790195181526088587236164365678114856002936027771699676582060331006265499151929636367106656651825391371782023672682388680577995436626385276817161676712128622062937725388607068461463331163462863267616512197723688731715272549548069070971438019212142929985415116250465154750616933794140618447223434959060174029486617569802863367369074436998981748117267350704947422695597099314351540318210463277311081120407284848918215859210553602196950607916967301717236382705573282145327659587064954767212216057177139027449872776460645048041729689121525889279468435153539375520177996497404994719008524597754919322822720321413564169367052451969427513261146063348344848467833792825914665577330228967652588896853137523617551774220908779555208523814890109763468740299503993918270679302215990541997169793777623500242994865918879786533861227804070537980457928865859587281026631912152012095575801163791382971537045449034851756953679116104407652072505287185319595516954768629865895123986338276296512614179927210209983078313383624681907874667646988953038001973291072938327504929917910749038255942248681529934053173049689549319848044689238624179150637798229767487219471563115887621328717284793112255198132098755906368308576775922249658541713160438849774533194094859536722668619213344107780628734227470854803141342635759484538632821031846480896794497960439806326904432735762705871723505996869311120091621445003293070418955320745430077364646398545207453093411095667776282296632967281280215942766062010605392199947266324476779152744824685402476813736177890105123205548236066372484197001356176801389111490870538409945608078857203249459481372213206084973835841152381313488165258204185269666126570058224990419055858906342929741357092267432223583312926347069766869460991955614688094096362278170029615481483167231827331742202111079718544509441959482440341436877662243450638305127525540995588083410362263266752113999240117991710273761640524281703753896571638964574540375858427684800430985277563814434791952401972878914704990641224096618572911298333613364883645401201139941923227572622394407555727297477322733885234170111695057262407695156196594381241373327183258696848158295258617961048504602367827711986296390670947409727840500297541383612126513661535199140567268697075150623030777132183677718137665356808598267127954048949734931914095372848685531088125932433576145926459076216984215529366666973600685765404718490348315856936518914671544888032794660386248646722456679519041977807138365059313056411089295327500919007867873517511839364934465622003513099740631101319312520935133872218334319161995933412696745912314776636105781639639271518623393057403835833131805133258730270042673658394850645071423019455416719629120021512630541103725881254426116468023878324322153065593401536481423136122202838360041791712512689978046626576071360708788844926335798755938203916949663671167247262723621151486916427153239981941828382490800282687996837092844283941413302458582764938498380507377644058839050082766397523332628923644525115598810041128648294746424076576287807723777507477349904359598585695575088267990233249724185732264186953307057472178756605464029794090416803795978130747954329011534030069511319959073393233222133782171590568204391069882414350988740298903294267194044556898416683970726278650314375094720373567253892403710800163079376495141299177305370316890584711347282524330435473946522133397083976106826123129967057291835794241629658609804223285241509612033680049907617347449910104513204584700686533190577985609442276152403642016327954386889421739985982383131275948046217375774090944983248212554333823781349880612521688444500575793814081054738583212249192187624470780820746756966492653041631020391582382786928055754559898722108349959712345488077619691142211851617226409486979396180245243627939688981859169535838718319761112561387487605510240669937367509027040236606080211884347327515224767709777256466564036696387147570956950041404587416356305020784335549426051531679631480219004653726240176478219003474023120732692046108268142061118713909938318727431927900931667409589898711832100261265153860257877635103628261893048270634683648714539437092541860429932186149966049798111409085946886328659202966832105254552819132418143971206588940196786618880035478473523669977455513025498446154036124292974227783594532960373620528284561643014698604627397560001359906818655466127842074550434644653985403234178918319479307446100946658166746904731606413531126675641035930897835971758458251022816551303448942693091619819140309777545323409981950348174938458005366862430087825129025397608968546206132087864400227005830580540162638929340768999950649119634033181111474771990437277943198690658969654663124372855609265808697773735987460173001198472575742554583018990060731617822172645557689311286828109024649766140764312996148213341142848959086998790163428373878886093783187900706495323835846633481456402493840542037716962357260396880926245755853573510771206627600678676087583418990364046901233967461353928699285308704024829904429171197147778610708863143554933225556751590234747384017174421620998684726275729636210692399195986600630125234829010967069370042160318524555310514936811669126411542256253276022898475189734538857386074058562365844180441279941195122959542413519606131045417881714515769972982253502521264026369177174973415093044187437733631894046410994230403300932772243357266503473443069430035651424273083506973809018517339797252997758902769162528135393109249187337523321080509716409268271957966696064023392851102754113429634681281442365449169262844289500845052272036622837043110493623432190043279081644615004022257990892906932639122303320720105613798434552648224468917798515647110957401289459229848123251563817626056400340231644629390942070391805658866665236586935794822050775047870311959023822651746733716191636812505239545203624251111303231312793798864496830682553682779871242099127891388964493727534265440139863762163329541069879410535656908048429558926826071205517667163282503091196532666695149343814083500590628424802059772167333260380333747640669972539205819994947884800276433996839960340017275421185231485519237089626753966601713634880173799530746562180194039912795575337452290497577420000985020809977139375837779006802895218929173748131928059965292424849926942467194441505280896314224092439323037378394345746329173054119874461805958817586038127842898522858738888878413600553741528082953328331347078119969535564333641925325116692796490944644992028960986481637771604834146616038371136962467990837071316647725983353430190698940241529321615826823792931816149482416223801221434882517408895207613313975967408827995191644423715379201166618528658841055081360975120478879935428579889252154508848932544521500738812291861232643685988038964352827896551602365466737072158246541784196311721285771861085666467786615660500396739689887104753920556768841182165458063803985138503873652006513689834160481555542634062611757280477804172579031376021991387394150098867703387351059950837909221861657628380665831669168663758234284902428975510829116839716908660043018361149275767666131361006853783184390414027502857509015453037675252069506149098612838543959676616076950636929546056680840329601936604077893078933278855290494285198110362210222813067271320416305475892423030358230255665205728028809055192463612163855638268646494811772079565718354717657630600656893378485266478478246707353493817106983161293613164239741047734268933416400627401338435336230754384542065957778306781614784138456892047853493608750300721514516330471344215857745974653818323049139141357927746279360804917648588371882107497396604296870776866658378767319817882390885716522104955305830122796341956275497739121845171528107650992468304615730694897092732365265009740519648860002668149730904085904814320685359050475684693078328281492933646642813347850968357258704883047083328732541723624702163625139110454462073019966240196319487491598665105256687031425869676919197870817385016854947289092894685442026312697799314789800237648998600937951385371349191583326098945567764844584755806944649196246081284255056101479979650440181865431858018359244839462834666318189059452183127808671494542100341958854075025784726414253812624616232762514708816646457903834428227922990135905544702619172339426315763342951286184886382658423398406970705861379005227672600960711326995768388690010947332428977606171532642519940355315199531479860307550700202539961324987977215780573344035295064532512798766940037040994962020383467864132676737705035625926563961124999729307453286841698052126267785662083659805004121020212807698258480903824266279367801992370628619749905290423588123187619708980943042654637731837601689106279023013546311986449057317500014177329048975319518800301629182468781452955646516635864549848900288003793577634216288229789458983315561703519491301604860222949179892770804007907907066127642980797919798988430860766532806812994681490542062656246999175321756150221989965134453438377124469798863658043037436177895372544406084532571738877580808089375376559265099395275979147307330326594980634101144868950628795529864255503074728146838351554186066584587830947412859895539767308622964728853556674870212246116181797278079644191637124704224818976564983047369138400901862921481095558715598820879647221344435274513085595462092695082759415000728047906429199902813665365342268378514617032112071836054449159011259662158326995998221307529709529478272493258944759971776568740471272889985099046997138429245731972382169983396954522093179789331813164194794709737128496525748263942637909754334591431895555473613787562607217925577436598571208130176118373369420764853247476919605475230059327020571627217200153992776752198383118625012783046058958914298939203530422435940671429760599554820313611722798990924416835665958569344639652581313492318353457945805137933956648004949941718894461770399267026774278718979266272079880031591243857966175086996616506369460237265774851484297846490437026325820539603954803633744085360471427799142440771052091616910249724942707291425608309140193095643308663989685540569049411606888169930145740078658999993010830843034210997891662895600685308873707034627372571849177347457134795539425864535713496744316949011868599368860915224316725870333258926972513935790162206247340871982569607449563967098084706683627577742260647090139582924443440167828385262188636893725018564047572507349804409482412008289184519935532974967570955705486587879589143013275247584234881506404467150541041117854889052550905843200043439585883394711843304846867575443152751724698435166649187398586046834704482663446069034048537334430040176997431751493258627964800954730077648465559336085263653132761826022295947572250292200930642784742584135265848495785455545505396355424254337582909388239445688517841538332167430615108601515883845836500112477108594828704742086068758524728982130499357520717511216987867276651038157394291563718749650935623182701146704447307804158477763579863631649340314161985378369227754245617474275253034417921121891669116542620055761799576474755177371288029850374082625281695814997716501934863679255625595600624322032402944201955823717688076494198913840425907887854707846015771739961447804381367415430255676283534356776941957346422407758635574225401433778513484097333291267275889495734309396703587388241504707164755022705610897924342329372332078050251670073858455447078137182696462033191169459704572009393804390001010763206212197275569425935444649093542794787625076141391924502553082230024692309394211292237826831345367577983667584739252498918443486943037262547628945550384931268785774823613764619718912702745786932696585324765963454966170545662290146496440113669012349373916061048735764109757087656486284429351520496856208138314738389385012716352814685436502976875344492497205076125437459893531440038841022308533565858851624240209260627989892322906470422341191753181768342317874648037271415571732577670890639240395326653209086009117284974212413121326510969356377130312585120856944873922589473474509567187027927654128520363229330540523743886642377658394800976042426923542429649833565244083773473052901128805483299824823727512190591076126000132100418426506240839016343041993638941855787147217236704247146194062525869998932180874139636883213591872300931634267388285041405425411879458172796163811118548684151828098050520609597622895199688784344590641332700886820762523194422457739928329062917847149682026417558903747730688731095167069113237629278221245815748521209016588416188489103026417902431237765354104286154608217184562323902214725631440329796906716059420722952400916745411389196333386493803830673988042311680264898550287822943202012292916390839241264220586993393511989212918637342196269555324542258652272768831215187327361852842955335248366503163054671649305329848459706603469049253923946137233311966413017133594287487610382581583140643157649652590664064667426314307098053921260449057217914723879075513262652503082623273295123211224757228047733783721648149013038375485052102325702822042866383276215845160099540383539126022228751979056627276684623289929128381129302873899487515311064931371745392582201233006758572761754840232786645451709809244535823443195552322548984967323872386708175797118050093438450163457302804649339239547660876400858528482067468339504167108134547840832510593004432489657715289060216199674026054260018207240970924236492186672029691130804262467387590682516571840702697650004566404866433071957059162451014907159581638539062316232531164975813575475080261742547827976283308804774799798902694653727978776963444004382481141491382427405544080725118206508891522117006892519505516241234033127169147078549190651745285513276831224424832107827884343312088358053704296774212932393970809595036132916209966741949629315936379145436678509924274711439537348791574686902306504987524689966368129488548579429265002036610539885917271701931645412048614070170647116375307783265436154206457868164232858802123726342943726116033183093347103882297041810220322255147154313770078413427195073330401570376751561224161942891865090233044325079378746757813170849150361350731439329349298576478175023391046973282419615832107186510117262016840709263033738435744008241410462835585831897464163611321385535884113238170354974330505241794410329521545506044346389379386139358410211053815607062004729508734528814422917132608102060296160250531736714393451979310560891371411068421727941538845070267018009373234846038292439661621228094510991238876682821148585065684946696162235584688590066314143778311150339264464659891100919170854580376757269671030429283480694083758949886859209941853811848256034712169839706083579305701060361224340897974565444499546261018495470895041248950431734387704770702557529017153658062506337007347154147605593037064539316537498684537460479872798542951994114479933353765772548375756854644285880519843326341650443495624784257214708549171831510448121317627511089453474723643402104211317397786136307315125193826545778831925712488459929192075826759972174815533487707856482945216864184072315532658518355447385501561067701172319461683971260286840358352091383337013428911551528536692988163131618145120319643096628239524387019332590487130925637202427819312767113993927742684675247108204086951832846934289316167118440157619084490505585942707909681378353377281370762818004943491928131874997652090326375084343508648542141825070395839511649462655466744531254373639765394826674562850342207516382312649580293540766075651563356870179772837498413697179116516358861819733457662537523446617826279793182117721229059521870715742232199510327515528383799704787511548343242951254795079074240404319944663561717130103334121526363349279011647520356742680153384676266208304174075362096099473208222382836942366731538532611671937622149362723878796408564761812801146492384701864437097741220389159705364203436309747941050053779541325755740536204537124932370283112585600882124797113791950969305933112427915140315766254657820478449679045617621901874417728533788669238933140541260318290866131319522352555065827404281876868755987550760095569631233165116048670077783334612812598519458003651427962827848251946543540047325881920441314519176793174074826412124672982878337919081942849015847480349491891792658770330194005159684035044596307286236559091766443758528152189340915661122977340009238194654577607279990715954202696914840406579634876370725669204850610302111376001191487895420744197759642687210676148565553496392524848589070175121710145496873454444391509153443103202863517016372980306451981432107983945651675107926607938685968893838815425666191057398280645686954442141047556378018590208544409111695882726972164820883849808970858742229028488716838238724641995315686316252703380029246758693530387738778599710221899929964036724913270290296372765047327252073951513553573094543449738772895607181823762684757423730321505351048707202179679602399579643523740921210660010739469519092900835049853602240944879863686550753580640784581686856052940572981945588467318460197358345021532082357296492637293421635270192847300706285324152130061922689894937153444791217763444959908306960095350696712976448997631982146025584579327433857708455079810906460541069438954152788836530054404244248722854527857064232617470771865910124518361306113207287618440286500521143431298815810218746489506300952427988152064257007622019919226541976226207726184596782893182280872387210275230452873354852001876133414166317667817650682030546886129607580965532970760734997693032616240988912942421809615323450842435817306755625459645760497335051686268290234220761925917307473712750012776553817551639670002535195166071241812473436072955821423237564360391199353091991666208977762339677317032019851299345342457014149169803881885277305397313165259547186029149714179428050679645397625994525622070782743121023921419391878616043859006950815825793371297323822657087618196520633884838061669562689235838194210288770549288144261740456154113698278955427765865714371245927640478121544464674193080788380572819744438635577162123179904841558176801271831192193591973139203002308576771312554522753353714666606338746707794804772781753587709370357580371562799321450674711396147827310348890309622655290534596815773276258729765569979867113007319520930094644422860175761291385589878310511618817394263390846068257941784741000755460330659355284676994220167240855785112074565314115339900471664757508737661952899615754427365629071223524946439127660592524287538579760330256935643211135805515349025824348216802098671085890295541239336832748504767249338486397468440092069270928143190592217762662702708581729026617758268875227808138987331682643107635377527464204989990095640501080124850495284770702942295383930604743095068694562427868794456125936878914151008499653227702075813374410948060710064299084135744696569931106596971593780948476371475093164435232569290699451139469132222161998997806034352030678673224196996692294153943364472923073019562441229041027350018814985333761498884791545280058570031379566269450192499267833953414249819158153967998838448938833594393776264725647681574899817560240150722768013490409935215264901248890869217982612275229501547996605594058463267219440049642703878194308619045028918494113289188351592562407871154386986586227656087379283617082184840255977958965023180040221792870585280861369592393793898254891552560177696733396952903857471309681587420298880841948796029908303763426459770248141844479343191179310235411470957597350710324778455915872956815308246092281254653047686283286441963536793227987512815497494908677146517367368710262805651213532134447232546508807128986097997119901297657296391231058100003938587726701635068050515784880840118765812119620087645718918771768477439036908883575862659097571613173534730833491183579164164497153809926647672920442711982168077661988074486344517741552055725618676654301443682890922639158584059217246681044805770105563033778516787735562404620848866584713337737647849231728123804423218265317493846220583707062972696471308539164053468579915636634223668550938485404866101476997976332566315325521814391327332133094681893330083034807301486134359803433900305712429048305000432573635418946426509759329525730125175665492743643558226972450252317643004349878866251416698560028429559856056641401838012128182172274745588702220238683519421005989272713755311927093206674040197866297787945580818481506842933759232209796620432399953039270627346280769452645636333750340276913488628770124741695068877602431683892069126209871481246189239468715516192214096640600698263901099134764404935605942405369224907271779139576467990514738503904289010305934137620141604254913324893303774425921174621823888020594747215067248541466625483203568472464312701933999935913267008814701921657888427544114034768120299390210476559433604582979101807850764234644130714086967253357358117010348470238625476614247217615756326026443731989698993917796650573328149465476427070199690162861480837941947191977154653264922997871509923457815902005795356958980819439933080061069710865177152038607111667060948954347095538240829209344075653729138250466482261374811966558167166413462115998483085097463518061908953976969128410409128666268528887348734965238261410793598352893554524291932014640409469412479506777735506887849722012022003161417369286482863238423185134919640123194175635071371180114259004878135906247480153732267350036167291595664377542627359891832685076876732529286013836439286523259263413513219740457104596697083828642804353639417815686115682066591172110885966444396197590220679878333441678526185112047756622749849830528853415071438203210513530619159409680765326403315482363659389245032578243277840236947880378454127801026076595343491636807505427924134749950705223404742180947739367218011364578847339531299860374606091224387065674989787000368079002969217247307244513566212270533972183873883674708696623019099928013380199037878434468555368727791242155220974608587716363207032548163550013970538404654302028278075616668789046472950924703212774920826709729843870879462401847892193444597094194005843721028028984093733689476196700237348194837455787430637978590643376162548692593056363846799144877045560477815953932334486651566046670021260185142117420752540427602257376330034958789940583528159712857514048850768078843003393478829166288608290522327693984303576769373132889076968471597589119722018715745245618233678732306228815942831995983348845780517944232338516561506549219945232010788359927316638714349945662217124793033681115477582115801443621947674691410544830850637050747380850885311564533573736069421594898613205669915759091485975478890150421404837716205829081479880437362861356640433609540453848345025999654096042824234359048150753984838167940291097467066948619670424109558894493088377038540701220260352217805029235836413406429626709691010153205537825830940153548272408643769484758167929997497543040294633018172502919001253990581235190548541663875783738598496712254938415646963517891922134596937225355438531834553068110861171197994877753294072809747798545372442506329607088927901814418080587197456161313006281780114936196319023433338173793082470105113736350165088787384455048084961869372607980635663674808707975889769301934959455311197768463446045867322725886496804790350068422015967257041712519897975309277110641323864406719890518994141496706897346147253439288281894015881802258991931838435762914508776867517801585278316803161184899416804820184479133976877902161638812360778905627233409059271014029051976724492483708673887976923249179868986114731139388560916991755853726487259929709235255200532942217090612616509166369602621744938791849200825565443254106841441473537866995166258788980927479876915574167993119017389441334505241104915673601009382932073960797960118119018524966829755103879036793633424117008598983058272755363509078349615264423679277001025598199963150062899890235512169955187715344707655493501970725294672582337332695094609588113540605271397175725485509352422006014218110657428195545078654069538291946066538160102675108318482434892767071430838964351006131188720670642354393705151276008515271738151282385850392787700279805917903791194915609422520776503977071527312005076204371770280079445087374078893704417987013531223055894035558276820873333347391463141180001457121044580726619159441886460778184902339916412546574648193337762714935417790375336499332828789598315325095828265507885545978232152927868840341792767778793221299101311113972318479088059282659482224684600510825588800251126820471908902192208454772428042589517481142981802268456879874251396243726771361080576345806562968186895311515792054236404616840459413900805655089697254920253676443666737317770648125701539782553653784561303538771383094410484076110456561225232008854896275238158889142493297663720569027167371991235240120694828510686534534696746426077684403426456921526817493506540324577892496524278150952393116997275813568041094570460159658496246572378642507085048778417463561997602307493534637140533832176017076662069383805403696739416746145788563810247513375225927294584257812265983263857319266021054998512871346330009108294347633068813262734529866423289158761996886758907636197062193377099917696370528272415735777546456352406599357670050703662577064228233032104589107963082116991258610197937809670133665370483719044917260637255445922497442713021710795628719140276381789598981425010094955493829623444687161733582526016439820653370766316933452352130682237287353454182757089617346219015143873835334281769166731324308493222055791610498011728466328611688149667745123923631159580456478234590141312256466654540080212019762352837420849078267185970441551025791470118621861031876271013520538522792102843535704066759382049542889792008899308216429947866215455561293532619403636833411788464758519161013713427464520880187152554569968202281703177417808098344867022289132886898300601363122549160811291010196805206575524603361276480484409172308160274710086449727659733974815745661620420303574010576537426151185939483028561906055797331254779047310010502764157999151725815884466446462292488663412770079615235112934374465708767695999710196249770937429456229369958149440967427423708528107807309120895669329178406191918350448993795464945891252484603345207762048249739745238429581391208074968519517713106251297242041644827009503597846173854411942009602512222928325745814978893598438617867965893323173501470288896565738305673765570281418872220633437700625532433468578347498041321381540869253578085550504619449903848935182114896515225747057050383890063018030799867935471152671592462497386284263535902037842113815560792425426198598428508762263644254787256569118994214715024642069705923336699022442810049494333538472354746743766547937918165805269732088780142530965094713900227220428884348503316486160807325507990162598732101777088914135180291246870129281592133086607927925727275351212485373461491493582737018300129303690000133298605893144335675429607848821228455941655865962746519851525740061127964565437728292567289826382509205218333217347015330933021112047652423144098053943933459579783933487964044693362133130441087030149349976930587845514278036698699685881405486651978023439990010773533549475029565429745722788539657452379095067368578643048499378961802737954208529633455884255220789647439488910157888526212388916722827471514285832661582537099447562167133101947445503224322432803435659581939235660880067446883745771734635845966567468669141336395031217798993554081014709400114380347417857664683758842317593377913710208415775023086887290307396719953529365870835784854703440526409406086877044475517630566220339433444066214229221205984545556112264046093390719291591902360728608539478508275624542855066509362552934699236355696493412002377622162071681787884556709111572485838121464088378417964365365962159852139362752928209710834181431733741348847560621608701042672128659514028719144932275260651844264570698344952681603183359340311303633818103536494480450041353742511486122526932797954498016617742605323051371817158430271341590714080294841091984816302949322967366452842167467310326768808858379271712656560212283131320280310299296867247913307091477846753250101084333609083964793165579860504667709367337583689076109903179315657721795908521988794323501687615741030749440619337894374982064082927649807903597362654962629272304996995259990276005765617250610225544202205484975901784428779224646869687428371165848563433558244034940271094771450780270730780536573256596897210640366169386725783482582413534122700920998401530426235540988676716700455231025100879141001996856408791443587682635835937707371780221907564912805797274873699239840924914418742830292970621983213153553532026008435794657853727319476538481708172226612772912259509960365456966266828274236105397795012259809505466676521710215896522918093544459453125397907675049904488479774591782067071407582899684256754409151421893077247106864518541599510995892440079432543201204252130507362545303783484922119496974419416208484049487494958832830756025263432430229210762045290275836220229455491656696689836889557020067951681162592674403540074775703852726340747083479781927638404838287529947045315268873853881912136072066072058026087133486945940796474371062742438117607176124690543100614023027779807225484911156758720819118479022668092844845215706806517315950754606022474125825222402547063830689757721727207951685343063248753706870222213178381224874020145485527153328424767783954559581835537552277055071683961982708172834786523328807989072448654894182262561277507592353056407037828828482143273838128206177010260579026013870594793138234344099713430946585056815216916437057344609927764144600437592963762675354201180259883970465767500275356584390281375811520388978824100322057607842570443873626323732164548376375256875871644410157536864006594583812700035033530447816887662525454248470825564657004434535784848038204989562928490594152630171953644741776592666611102395723573073637485468167754619548660192549834710960957394750415820552493014738713343854636035466490872828107814371521314473732579189287650989218779569244101459665090566125278606129680529669814541214653788974537283433601258640675541783405074461381545637979887053825852651843424252065072721906125807721239049775359646816873627642445947501879299834624492053908799047642876303216549386173670438696628546084161972927515660717585052797277456974194262312423654815628143711373056620047481945199843262130491046124419985318120912329332076464923890842504739362834644748582909518010502798550468618475721784116151659833294595172796437952682227616093931407616022764786668803632820411816710153572539054199611662363573428881267866798787240296145088640154405625531537237635329852633629140568396182444082773894525872765923407366325722018827692831056710760196666463242266525399940438370894027096035557750328847410722021641467055802532246224875344741654450618533093113389011876703777010275179619183447078304223217711044018563436086429103342750869958816405796192506467138927575351074478048244228129639192220978118138393637847812238101084169952399004236710726030631167271400052596412856497267012906168961137597923844897084026104971470614951505973075536020212008669703691497785686153517092436648569186722144603847162759766274667816200908447997944388339562802160177273613862671774571100853583616623908780628223163760886341282264419025087436911853701332363011168334745347569461592101504364085607649549137371756258304697410658736574697656385939992463404046054617656139078781634300783779211335356838634955070208185902968156430672033319416052075490929396101125331060283559173598567070223089133498277609127120836959772406361867417032269245268224870752472894567403340353246823907966655765070732294352821274479662856658524295363155518176482136955478573536660226177429451922612862709371127394890567701940472728287944383338267273574743119245263970294947927938030124012257520194703165450479840677653093121762788928730521555320883878375893007278345905833840528944730533079145314156377667357435170948351270228797392884840784125272521274210379586282625084281475543400928396405237476374746738673404686576867445213067196830423972796415894747630718610066652123297742090586153879161099578627984577525821325351952749170353796319453052391072854862825084470638092083148644778903132938278910047601576936405363707528672537402525284796019092698900262102199443025407809890348103599063390711991928625202895937448948475494311452292745900547353970720758397658178502371796744366419369517801607633572886086234602834324078422072420024634927332681255115929486982798434727024202203763376222686185430877411224785164383596129289015248081465369464739778397543297200455395174922915326790592708270354631663378191986873089486022967809126184840559078783283551051138687554092533622148175049226748026577382333657487126862488934525578541870977260733564311023461297144075779304785479138860210200611303875555277798063693316045755539587724554635952415861485166795799038872102785964097504193685253834627008981930559106693034507866283049998362550038620250338789842056913778901561413672874593864739835732058814159461430931745007793722398933636897566496451848465118492023395899039488666486500779576261820260657716608297856281350418881948882112223184618570435585844490089895456761343744959787779186041255505601026317909107250474771270559884666023171261182488960494033966065782333906931680275363858061136952335682303301184117332995495135552051474714898624783998370682180566776762653842302477787417926737692999040923965360331769253568148403080459063986921661694382996820469023739545711711913855703995523151132748294611683393693809018111379030712201133321019935882546971838273126805894316772986978162495992463441593920134822431201849707061627223592290157070648895266570862337395497608688974544402145837635073048813971369444007875518701639459840147763384515226971466489891289219541676749595164336937155193436592091808187863571937832399721510828512045843495754148646054254145712976105797648725801124016525694760837157836722058753015609670182573070448102202827955479147659460814729743126291802361087952525040292982967242373538486781480260311050296649427390107531996641415216709224514525202168392164936164709671030492535754130118722461527872462158768353129926245006511124807583523427629985136453202067128718256960610705357977954708473364211548583840970195457183972129014049465617469055418575583656394749419550720840671082325851986461930512504122599824491421256302592034976369895616698126568917271968466763858139044971867510294853105609166741078819633984372719790408495652555190485278963015385410286095523200641693976744247968613988634336943295300046149804152467110364038632156976129093372623706656894115355621438915569362354498052311139897664623688823531239248730912706437000924376455374510086734774097300864324381065559934671535056784610572450550089026365911708074130480962743035322800647696269808827144566480316167207014911557653596967067378952558093803972782446148692781696669871428470489130933526856330287890432065372335562213414994892357863649403398796884217506670210512969033225035211107494503531875888966255711579971523078352095187960214507703130916638939824735412620651221640864043824974965771886272973194472337109582693725685012719050778122654296084966241118694433000915189554769922428536870910493400549048837328740608461573074031244198902532600639860803714438918939657806645860979474789007169834283021203700526076924442300054169941461664061209543892933961403299173883103312960888764893237866059358726465086023320336079044838532291625216273858642330516655328523798889781043123063319722443551507107662777155838761374256110952261802127345983343877206318829660412375590018332734268009577548476509301784999704227013940194047468697309518293993650992888611582580665485250328252001436618001353614975025193510345040985283935886035038321568925092485022812688734258548484430623045535540838828370628357585142931874875203046585345813907649997731650830429759645794769175315607561943306485737238136673605495582785565262902900706162736631039404644328576969255596262709976146872890336616984047046832391991497965937495608855534522539570047876703450115553385211159405780873193708258736570360690262736469523041088935036038743059341142261722726286142020805826054000992463540989310237418050443502908621780247055325136263357655879130961627692772282379027672800157753893419175074238516554499062247231981454609443610888421850382591606464914906190932000781801090849242404023208153576849716847728221758679627213519483430617876036555945212347647680255399340666653031596981322908024048477229849285959112246877056689003623156413606646893918309886695606639636969434058830343838907076616364025947375749370638448912465310160898311461519681112222658367599543915616253627955229249333599416832629744734234044842185913244861153326256883874086418509098726709609440645674043199922910797095684985841686594091802515582451145517351451637905928959727725598616189237744310108501535400062718812922730244967505665521840454028209944057612372074610769900758501817811879451217793228370445381908157205756728419512398903292518381758104725303791849160536878218935880204033940873932097198535911512715295182137019862599806625304097545913424978259246379355099511966130050128318544632060820509031438753976120338010829340987808421763059874436881445060794183747891785231658493925159642200929088396681726132026112226796291247820121973321731762641928506980419927564057454118883513109919073483534985646223406051366513320611547833410797245758132139589761361283107345950761973715527826168994578948165389790995179254787075845341893830526646183917535843505664758991591127952139009527828001679706427391980199292444322157862447134666925138307267672112789259171854177302756816681232732375869878262667192120686941536101394838557820288794141377883474359054616729774624260853727031069988723793858317999835729194854676935922485550376878207941413351239897866036306261012905497929170501109543395764490964384341732043206268742412645207285053822666593483438854042306579314421983865035889056432133425548854465876106393866379299594972838571365067507930015774250437578756614210938114116444056701582755844941706669809016357788739706832030854120393708250754211356001338973976798177260926131819183501295617289144691537752039703113268823229687860258504499080286439099660581341563287946783035972278596166333535524418212068405351265286143824908844109604220866238835547058281093924882502928820156201989711157504254003011273181966792138018156052414327553726381087848436612895156989632153563454544624339009031928557006319629284722022633943713143645608564668517694782438602284095127663390601781767981901480183455348924909415555168502845438234050560425655056010316159790946406338244271562643717971367012438275049355080824912053371404431629293339830461462488648962402149885158326504828145275358712299552740871046350930281792167402774439512470680508936086565211575890045509852997773443112014445594237774718934702170330952133396799027029133601925114537600395220312745640605591831995385987652561109911853094678683839049927184278757391740180221316420428363888060218972478116265703088814057608624701679671974810960542769773991736740780095104487248981728231101395268301417960182448441620734194612033052944094083615938519220992628382361370069870881611442924050325497673988646595927476987349934951251354987562832560135996755570907397177971550772423933433533254982224970046679570797039342314294504233157153247438687044109384816272397763271785242310004368554038982440001982333317419875524113402473661871837916515306796949434560159370506104556395809593441580958539366932743156878043002198134389893407929299660788839288418834244307195624982399654338673145100282970662295698334686133961843980884779191097074447202342204753224716782656116968935381213773692565207204037983849575446027071098440917003831600737798355704171952571197376060287404736565124438862495564179987194826711772338813686542847517671152661139592985898875893961273326925968497707807520354877571944536468182474789245369717317482654147079832018786270296544713772225930294485754234549568164737667292162058507290981829048550563881327397635880102210008385478385907597300571219930203820580303198142758431301300322980317954483557563106500866833075094319356728904617068804497097112207292380884355719160955892858494046254283058243743541379383299487689423589589143941246880181729486126142168404214965919759307897397197725830749122454132090734447894734606249510451221441449425022822696436142366310103609755056043276305661952825728315400658167269038930019635837518666495510856031294797575710590926867263677889786961371737956060727599176183291034626645453525076044349095254475679509542191588734459133524318935605076780847276441370870921127364129093961550997342067730540890693810015126745292860732898211614178155218642403845107794051237011926516403856661748354363827745077988058119724938490171435587137938014676938091151279908900695364695551925757741582141968082385714244137536976316625388222469005350638582799993911943820755748331806093720392182991666768592713748456505588123297795949176400138279496778418893556645560711459184639925146185218894618031326823367424563099286839544935357074514713471218755401659455231044197503005812318706961363303980680787611998521195432795503617499364839998752379388770512024913280379933010696178584201030001980040982865413230246112654690833538564976608696609917569439147388458404305378302512437156969841744585778183403748841540840103191180195237617136764309670242718975129862068403541919264013077355943014145037001667829884362398001059479143852014088147697367395167917364294585239545587465795223889172478336163689787613006151815808460124652504353259657530573787442029520126211845166365830097059596654988933337258147972314174860822844973846975166772660083477476383176162302026001016214043993907030227904782500648198726829518896161028838906416998124192549749139501771793952391166007563002096092556844069311534595357823508076984375466905583033291194295078933360429437567374462215898034863697580413423253387416640578291141162748143084405111691519759001594633569839116123792020847196641892146331545467186403838147539305686129997945189603144176125657472739662695474712971342468567736853691854346565610711107417920168604236861793903727864376547609753180537851285325425263330116371737418457306415921187394098278628693004844729107088921374945614356666600166878112014041626091079669359293927525544795235993640196341839819555806518329861080228632599584385174460535017762365072064932044893667189837301612515031494173327365541845863558723294716989445148834024510564431695047601326503211544868004645571515111465500022082804020520595965679248213990919570406813944477683064820600211156242411446085173234070524821036647076758116830794877453144568821927008050018557771883515122066533661418005646112287282253285049375515556882598588546048689215616137269853253882224173990637535868679063623859838964028382114020887706586435412394964066897440383370775504078198293735654076853380202276506800779528977559791353818043322157191469827367005293182703995998237818602461279868825639735076790056241885796238943642941022892054995575066955151415243916207412412749245661663305663290506300973703788699789574301345740216088018534930233162505645530411579273378950739674864174524998056401690509981261343818032492086394837567918398338228131275820074689150822469408391594342679145857004180877146946234641220871849231474368518791455804970646031326106080672760959455676008679839277181811090029984907782566685404215329916253229710989526250503020248531189695818991597393263771498493027207551154998295932378039966130162519696155637075222116483173051980533661490374006654980746467651633682555623491596306661235646442603250015089508875308213595416740189358163502921664688860755446914963656247838134492498122514831871452197456841169522099859080459187039390217948254876726416119984299109028502481980745893207577672445985761205390349869885424541279437052349011699362309133303030516463777205416396686415193646315471340710851123621292279680037966037089627995458233080500236246603418755047111118034015085822367202463692721044091296113026605832214438744298773963362489520867799056959017276508889691085812328114145675049734030275096354756925255650332947720654503720817106454458325293495334283363510555195024036369810561002933156487119468523041086964946677006712850304802828428896776084409209967683800713821062949159678047124522012383384646859249253857688100618349231290572203221655021806069790690925149751697133308269517679848987065654783885305187178816000428286493502877635323885178778882796867341118834575994455584466506015606609896134943980088782857675659197768413653581005916709161126125655147024484772150424647121949858426931044232459284732620607671587843786682055822900308459343102466532111110472633624725451421349512666292742726136378100036129247764567765153365362364077312745214675193984151984795172171375315751602797296603289414439215712330263286132708553851475901275826654384375072160256310982900358560841871344995219758400650866958582134278711743863247167535835691204070858995264101305698160632795731535100192869485123920561207711749909414025627765385318758020634426594195422686631002586006394377599733696373017168647873635684625275965025763843899245318452188532474282921046294339239504093308988650399546838596546752683273101113336025286531381704546110783456387246169796564031800825266228223645665658938607029808786328293681635112083059524551614679708371763280118844695210414260577411316250606122681886757691520899899984809877309678527002939102203328377777800803864597575455165094298089433107057211622821276553801688217519287810384570642214654305842277629816283486230006262879587381417937390295710138012755549183724483921095634572355959111431475774799739721686846271776471695731689109287352099311080407320081590531444464675998008544666843166729667445877198979517388021367354770616250284085994440600045716624379604726036221008570532828029737080304998589776549837008782925761298707783712348003790720305348840088930209194937879567036567384351817115647264699498628003023086559452867762856806262005990766631310639195096585637113605694442082463572901905064124433705881398502005284805738242491171469150879788634459637921844616614997905025575283020693750767206079555331306355015022741875732130465188465353125179241198088043257751604463280454700805540899212094809042681106479820509870665682793562797267516061898957198362904178938881866388458161463543623393999956792014710371212355117109655200094251273677188551360533538336542629240479041331677132649126963482384357930740752633237768436331170166067600183471705950167099899222394831096117438667715110265148695653600347289966534526479785505766305430762334199727391296590418310639227183778682424260821240231001499181147963770575876961386999414725628630419196777161726556605366482807291073624850274253318085267376255030476282189578468370661073058289363248563180189185716808094756671252466407804418933004144910605025488224681049822973270458608144998270094027635666162943968525438604277228411498574889860029357934299420713574663169236775215627381802142651003326023995313520815926869482615345848922405538018909482549882475117668679091439870317919332930915036653492785033854901796526639187389660578488291388065168617237886293257822431205890030312990469898004215991874152208664324059690690816700686366713871374502424401225854755666199481797647107721635978164231510986766379393967494252894477860899368401839725381616792097502719256215361055372030749148832208158227376232560235533748842722466235280380718885195735857339892306169773743101164801185785399976585330269162340574218834600302601474003573407295062647459058270163795308991765369484464736191988594554399429483699799925080580907226089931924284526052130022640278041151040926978794656659649895120935963390675952866843212668797918095528628175225170156386411732886407113756479899399190442135269014749852825372746441500627948525179859732659077211329370959894580994133813126427145230689257850538524028881436227083031971355645209918506616595550264283032053263885069668765191543394096880728528419520257557230573365022586168439878612407265490572938742642430042198179395294138696458127579280434267363396961104510688918009684533909124485877867512349411591742901865612839738191479414855159097991430748107270866115740049511574030782122952005398201699160173430819778039539558162281067704670307597052220929787450280597927823196838820156615923070184809259157983342515209580445368613620311107675065833223449890902079481580118929158140733525796443628645458325102173256717479813283968466054054326442454476913145952643127414287016737700453134269680029954952072625921484130866424393839647562364592902043034463044549386818634000609891974701705047933420592271137122352765434217967600965468936752024088859955986512093711058498763023935451737625291452309994799589250587579021614521351595028739770980992259237692376495378290186310017126759154553684414710272858811660204928321155831965004832147329058083832386373619977932066713602975029673344038574283295801197564403958479341847963973929235915481919733974154706302814424048375342759777305784245598438844228910209664706264851704035645121314002672525672823594898985236286128306191073254716855634842353838720469411145216830837744505339422748764348508472829403785885522002842957185921187340378813745264522664780838526439283428345777092319397441020731525742384941357449454167810702241548106136999408316129668624600607080403921218340016108922105867816572444507230489639985082378410589748788420751838212964030319926776257907347860893734439934348183451234332662562534485940185639250705677577173064352737975648812447355466336693480587532567429360552217741818478077859512502283858745104624249412357203065082286029036584538991542710189816151467302318515904137409372781213580183374387442421322474262772360056685394539017075397295356060365666261561309319487733387286422176621192790863400857651001582562882786138769836057911066453175442629158351235604551397956485720194494717631665233413016557458177950854970206899898840951909382408475708838508855434627429657641540599318386859563449142249074781536861224975231198647540531198749900249590100098488046562950036110967518138938520240880156402895860936189069983426145921204043909374026193843742227688346279695646030043102234289006748506155584578521858081257104487475935513514591505781496736306628317127215878332186937218498212357077460544422614023557075487943081482421382248297456111727286203189142822718425200386700778719082496663677252812736732481090607100577649634328594058666632449807569211171795904788671767476074712020299983990991916809554705215326767743101969243478196187104348840603048617725268333434663419453608053660441932400887393576416573589983166364852611356971920138466694677383619514079114772179836488099646029087841858442097184777269883825757051240350678398412878756151346991674460965813839207174604983716465859179927137444401602476712361446035963757138474880445197962940958447896650807935059638889094197245521551229649753638836034204221162698604012286257376090067846957526926378020620969969519555052717370888419243814078951522264656975532381434411708983571471973779393548149478166191303722782752197941996419219946318691033504163661169952891836573731211501947495724961372024165880267256163390997823672797428855527775658483812777230440049122387273732394964750345150202150792661081206557842283881394030720443113865167299616900664730055207439758196811756538474794474631865684675750075804978928691530926655195216659170959608445780533182977875924614191617590328997772644425146039837172953356631022661103657077731343609631506001601205564765733557421965347327248481278164615751281843817897647800420751806014590073320162070678669021432580681315430409633745474484257838102833977095600596794490695744921167705712020730177537964212149754256687260626489238710871857010421054181185860161088947437950521081378529913739687316400437329708463991107959457997260075714956532983423234077884503540261947320398768468095968901224323348939631623306091291734056062479940805772631419880079774828104468710638721781924652024534146494688970337896433084645776596608630950140563581149942240048485563406110512923487234538460160482323963839111048564479090390606133462606855156962105154022855845589847700941670479022209288059525039543518979041685627659630127780987074335055848407544508161474911402490921930312627767281987411897089286463784024266583892364863133227388228460833484004541341694894775548113783525648015296112381617994721809969580847944245079480195281686336024998151872001955977471391736174439470068843615705805373850003032614917715489552394846513918314363895079428953339655128299417624441636257926718731614184021052653073962384250113846784121768197103702555047455816651291840955001029881128630544399148038977582072385189251604068782333540958386700677456553749000042014273131396394380637064088608837916780645917541264656231739841180926965703715559854949109497131405632406215354330044053536636776216203636508742526586570654241094939989790157716656468918507863028297656894037821742221484872871761561501295454855576342363219292660245605929032919835768302388350824948403880516475293613415895155770316702030895005540650273467426920263437174433661891633388562605484048356699113347776867809694956182410814504803721109423744343284856088743919932763617169040505975538234224851488852791503429785937515523876216708574563704209907614817998113110031537663684614056513177563771458660849369903523665364234995202857976178234476233114125503265994211862288920644506986708808156729242894721541981889846460740641670235630038084083485110049965496881215972903800143496443067285462540819834655347640155436459744728797998324700836616478287780726937840125712235940849984143339860565594846876562440125982890552919065898495054526074411808832256373382921757662153081673663172210070555642140604158054976510723117261068360172135896278556117926163842667055402031401845293557529634177634057517070278990126167321297759752015801219337270709103851491764562082811014637273075006636587325726357500535609079701792489583723325693054543326879693356360107874541541910077640461955215315165953282036911366166670795578389572156957835144742575088369713472155164068582253486379005830983438409949082297001939251337073541187842726099444640505288758224371111667445551816216468795095866696507788543827733317613415025811406052859799661766070473828949606876574669256621032276058796722953109024479744931445704136459094167943488420902230075442604684102423611033923417751914941285920875537930458018606235905542343817630376011155077581664085004952397349421284698718391178323793523927277658754502419223240060037764876951696466966800453254477957254093887866218648914804523855064196960814527315719759790068169322715394065096826957581173743903816121479714732636617481898059850916672053316988724100860545657934438180578347910118618444986125870970578006498474361735413660080828890779895622196248338328787282967163074079998280614665273131261412248513216445624426847437345227701122717821331713449404374846860084728542643798908687364615297720674358989069107186515175528926938372828376913421228676919604091578495015781702777253795877808157707182790624699195124384662373939314725579995443017701497652351512324664820336020147972100236955349685017882043460938800063376233137330624676668458104981969614627409829548660273271497694819572580207712470065356200246732431475125717214929779133755362736991098604891122280098420831791411659737034458122318616769328312108714509879789254470980956739757120629877164922416424993558812652224205373725310525851744179466523168640445857015887494807203685490350420653662229209668029665200289246705445082720494289446444468657179627702093404724742474244520386168577393290871674300976277084111957660715769493694832571754777087494310231121697770777844651527838750192473071264942443497624838049711153270312441580470917991111178999817942241253788617133052132109769298803736542847900907559511117116233867572302903207409138948686962359993478930779696955516952507658670445816706143122845101316337583717335095293617523305938223044177114102079342195892493736405207594188902005651324370660973139447397770696018721349700497642722081884622604697130743619900368400815123161774946841375505403799841012600368218791922144058254759788672509207019021117807889661481410645415958983611870956224301961751069870440871571371499216792896611496209608732433717400482808521910090538215924421459060261904967753784350195022174493185685330491494487080420447267007423016510742191778409157297572127829210317928229329102106035184408324550673534728292436680082139846419838240287019582673927327716109539065650647572812118712309118772721709281174492042706004233237473054460968740063458619808748668475270012894181701828526225236113922088480666265417362069791134061881202720480228557338046905299093276390537914125334971943630552390811861390083156074683331057396956986002185826131471229715713952497477135943495086271176729768338515216191466933260285362459851703589558736803611034735468352474656193212631934434066171297361691403016837462882999810594278814252846608304067924037029551192404126762384585515970882503755276063859031149836056753812679845994935164813789045374648912728700822628195412653480832794362266418241459611925167212776435247165669523673537964721836432142794723483315204766204621742426829759903524210535683972238587160543995528416888079372540755452953773421717493760583515664911278784192883540702115314552896957852501521582631526796874649676864376774040512310478522232943135054665227009097493964612064012778538118617071671815425923521385108845252759775663586203021386846669303726800051774807397381681852689995057371756684444667169150578370451124558862979976469337956148872862145620226905314115228548471645433182778798439551900605369267228451847189765332386530145901671386822386643218704184641558827341111330622201185514951929534517413105983449142380547305585494140179619858740154477144025078640345606282668154412817399519497373161615172415438939930650824603281940707486716666362738955162487546822780339248814872778928377471600331202911095199806082631324199358050476359465671929902926322483940936712753937622452245735588199898084318579100654113803513984401870213682675978254973445803144681311253189166156969444256895435352411655179296107326059255798997309770594637440701425645982933568240308945028697609325505465823244218911251014930661461029887967568968617294431988745728764060954508494737486266490355541263134999225705838733948443589470632564207224986764212279653227010692120529993891856620809147849855499538593354401893451699404722979216999346986449422040808125569765716056599944535484938766971958401098697557136938175678931192347307435431258681179821236390950851185765267510436574501121987005307474858416496393336701239457916633811473998477089973055670457051668658820911942534729206751974511934334491539919945901132466800058510459366336155165541985129929467311339953478806584026860782288320196654512008607906417887014045241240063365135725549790314606702630117107186922325741557423382050279379478164474927453060619097579442397473959187650742319985785743457478051590544960397195988041141691485740672197413794759413158842215362423796591817053309038697668848356836553653667911247112103600923160458235695453951347258444521188673451798086182621465007495693184404149461537299285509100446145435192168482549454143458400136216123161516611616016849872589867453212457350700887015872183683254881495858567678142432190471550300056801606354752501098621238942349054707963734394534593766976278361896748889807618666885750516212749821046375125092831444041749055089402716233108036048610607200361593329107099979364009987252799205645442994458660825348510868029626940106992206950045660875205649825406599565686178683962154346510534385145026139125639040923222745085480116546229002655055269918833933317016553353988058690006369203945098503102833016342884265210217154126555603331568975851640661537232961025527457487079767279194147815380869869488582105591417253186036772022727296477476207068970251381566537142090468967364497284336748250364335302232698231786980126436067282739142975800491658325251601660620424472590386359902548759294975536325007211680305486478757521954889822295578962966507303294853242982549657977115630827015903995483303415488162797404393695946118568846863489489637912733369341855866216958101699462986141198379495003155189785562702843945719051179358698326838519668854876715712907610566381859403755346626112448661610441658557881253154520900122819869998847347340848340935425794474032932890299935359897917208610718152741076141241106907126271191084257118149395735549400291829547125326769537344571433248463165170607933471039074620186489800801836312423726688778512626047526715035757777464828950874720417951773954752891688181281558541440161165330837000590569292351979377134637156312194453324807388906974934894146856540192359799665687848639231427462727243172553862579959617114590065418180477161162495183236514112535483491696544922735919237549491315378033090229445732851468649848658298113258950244646823262017014545373766389369551789412909286082601846148549265969798852970603651767092404878309068238223380893914356855165294330528947321909278214281422343090249680473704503891575699533137645394820481775878835188902831559091926820357258447826521742642636857709919205438660468492964690890413186987128943574839645396340241448701238710583667911734197642991616518567411001759351975959557422394444774392823934245157717118013529328444458404281094512189846429010945534086502468251468040040579460463525738676393896099251277645532206634442217460175424860476066607882975555955691524816850338532690441168775309083905279066920304779111492317873955274332681974170625831589450905699246420206126213636701583830632890490038682249927430562688944215950736006204999652873147599446587049979693316319812785277891763163711746781284393979897503753007472462085656287806365281068354264028300169615034668736357131221048573096701024887807032886117746490870572806494320621317991580255702602336620226312070616438120672959503986855340233990119068123542559802361723587763593806105104149493590244381374751596094810810631115182871823500501515343394637784489482056548925371898336143454159114586828656923917793956320132220148617475371927835097855442497911364518852844452815012435357375528559852012207074988156071430146145033055155573214314645071684278018925614859000330840162194598605489248288310993175303133357788536403029970328787269441819614341009381107324257405902680206745761482378734538018938398712979837964498172257726451367755668067806793990052824142738381153988267300365165451147740868746481299907987375036111724266261356068000695562023811969647490655069411850258128312512237757948504285034131516497546310086392050329182445677962912612862512077615358001008216096622822581591525919949522633245452605549219952745632919281605195945071487295365687221013814518795039952333943573008960082698862406062119887589456336598205683811674223217404877755985118342996864828599221738041239633591218823231603256285483094758022371166420193377045347271810729865259130043570795151323439829009236848747181748339170460839628640956577616630050120753643990752681722521138449827210634397903630676169548239282977658024085402981810363308018320605652388300507378292230160411746252977628473331887523760135537221669454539962059737611852547651514493167599975750062381226165796554837234283111555648849258564697479916219291850462157719524770510667235271279440121381293079222631722614778860773170004346134538522674824576101043997397535110919161632313632132071322799717052461864947040646562372360607589735928273224498847949552735587015610316064588758291747272299321709610261924014805585745366976212426800716324440598737254807603474126310001713717141405889989057229469651724902318379674252153705686948844221058920182822871750200784504987075472192237117955740731960646513943668497469913325693167299335919642172288760283563943425586696578136449369831871445800566374973815884396933282995765793045370797557543302005267450809223037710408021430015860017666201043744735432679895501853686292448807403529288234596333231088849094507014810010194782933121687415372246955320108098263644345836010039733800641487222478685682699863287367958641829412817788408557080236277922198470112480039532575566264570379308207802649012325990474248063784646296552976707303475347731527226973794136687053973148283779920857692644755373239234497617858404421522278654519846792587238372661233387077684105799689765741454426356922000853838597507058589176868161775297358726219147692379252753106458314404985311703400830621775693539625478615343371622938280244746370464703121418931592074712761814988787601196237082309182372689574506922180943222117726679598729318075323037005129542031301712623396140827764821567165825381865622871938381083247405050214902710684777558221260708006450992938781956198134417022745427052896042592447173771301523621241773523739120053231688596210869241477233602856320394603827528417119978530628355143186995081049942291436770240439293487708097479844205453015561047295077688738440370135200171412729940388672636174771288928825346495941343718069865580286971829604911678615396423134442212532989788973249939357514977998241867291994235685794050834236299000639493338603364622190806903680165495610576412489686662045016367449805686287453625961278074342643313692687086741311219486049246409712766845383241475768416610671729087406103426735097886124226502637781928412001267941930212041503971531382536865597506104949016206473284547381514799633945640425302216375971172412562234053613278904129983361326842644507412034453383080065439528354062240027968130270722275298670312663136301231472085084427789425898778140329253609803684214719800451311369974632276036794145144146513258859497971745779355241649623632955340598427275610539961178857169095278847828749425634935536695840529009462482005026802632279257052499299571318449804344405704205019799683394063154404297849918257787241157792628890602054362621982351999010209362033869199671386356004114993189469869931121195125677901330784733671701693381896957081097177342829087924514789310633146140948982067664610486130431013310243824628119703793005768814837725240064069704944908556600734512846621242339491583818195953380673949426738667290707714047717903377731042025011021776076349595349101675850293509639602069663238956828749135081306719454735439500888677650318412662529043618817428237648059999883310035561382065482345381190127589559076439923624843745703139344735982427881637035658408000857252227127499746956488878688107008928920661721082395063514225079051833829846261893312153907309791071358658965496050368636263947926375887788188900079180200402937570590949366318915162213260378541239846227230003959747582285180692290796351680468640892591553236811841999807415928455336098500927394896730039532382042907518206616579911478904114525747234785416459065071377538857764278909407168367105645927029293948854639397727559924694794355086802698501357294189119976627733816874769768080971084840162239028935008741479512933177126421605873067327746008821547382184538533975840682625452968796713800553933398601382086675588828293040525297808544466783809337391556130515621705115334871571496225470081245199416605731685850078090414712216203777984087891589116745363641425498977769008325646399341401565832417680113942251335180714471947931082980103247043314579931592352706078253157185032126459331647630723139653842575656748209773802061616707084959166822071363831822656927312980971905271891817753966035870739963121059553042649365143914779105936860969807681531900263225167758222388605608320223845822695148203611066710503644332816708668292524681610554202097644129035476247820680907565668931470724853695791869785041687440165237564639149793200486275728849740120396763946571031195103323655580885033130115237816743677229619524130125168845919235777815777072208481938480714434307522188579401741804359488285685770395422553656265941939174354081332589751349403877877635929740465028070583955482418604254444806145072347040227899403338992556910216116740323456605672242670647681993721301929635028909763875382008999215306458516513335469793925200506648077414546635160695022451927630566190751558163397578532334487399135631630285348412941854813552931180566426828798094775183025972604294149714254663046550610624531596401611726747422693042249996735228128343775487840426037797791036768304014060250470406065006348261501619913307311858757047774049291036260286129066578374087147373948644285984591802603959401937550488914943466575775191050087239265792558034663052144488192947824912693840179137713658668196989750331045390148445571303572032373085888107766172547515250434410346561430672020523070429082822598671095533855132353320999553665561057738460026905393333515883407878234916573966761238690750559271398887240136555602522595100449838334889246740708731762569636032391710895612010352140079336943089822050683721495184498023375795151031562050870604570898786679333729418591397684428353425872756464582739442363049391253274614336396230723026430210982093002692943923939792483223100313490205988584787976608196641915179786505092514040929150354263169385365492052783956458690693736496101197659041867743116999820728992153100973988866202911348123688796950248651784598996559462824718711796762293153143479705719899763904411764516761577741926910750222653860153799678876470779246269413729106216418820624851917579599053702001782524091042862438645713141645630604080957180344210149983269216279388750695695612592785259080188886577740560835212250601617054051245387479880413292281861634809140014095531577091016814337349974982544237792157220719335761510623752531709395660724104846390950961875492475461590923261346334423768009647255222773867658711728854361312686899261718669677195656264935019163362740462458530718085079056793280346562351732150010899684621446441386444375029154200846437892654129682155494840895793133247871366325738000763878927621160192088049445167108686439442398064974598815266585556451591941848130268409671954006917379309308231057706293231226950103236946634980589977922220299891740509935661626257154725997498598852446219942715138761783751612249483299758405027231216153310374501458213314279757114440493852175433968785868521089899299901340131478457492784357490350807934114743908363628190972041956590224890789667005969214763178635828619329775679292009454774086484967937064753701594783162036518654824905045531091831955387242781966075564765171555609246290314158318573306299948753753159632073975117598796214863221041011669065381534452338455926429177974738407245838395308716399750143797927552977482394063791445426781388482105566872656078783978300833921626837592515760506161771940108330409969346235300769464007944658692914468459594446253414073913590688435816705745338526458281200774878285356959281262819015389314908736946460370007691697954457758461642814479759372379330580537153467240231285011968635834138079114035894853192718556233493083158611624487687016162611533056730884498861051516609040315042606540236846147384876960828691149377916066998042718457770860416291186755647968718240695471363761517190864022667837551905973312047018545245763728476316707273633498319524811626596520092541011557736466593654572121583580145911798680217407777757291145272814102284593692783815805625680987888013062853458718073183496931497704313270991730008019599005199979566912543445841183343598362938146964806555027406519317107309597644907497454579676637677365707467767418768672618030670849841983251559879729913988196041841664761598759340716368635111584141337136655279738826691641994018225370516561992107686974806640826911070277288604979633564438380297998093141733827159254109995244926091514873155457712181367099686403724771086617020281296238697586803359397309121903645995462919128027841923280437135236724974587980157353696621797887074521010014928819583139865188216686009905893769833702354489449015852256554085468913525461233052687434989243523235372068214589635447802668742408112051992690207404497463100088510364002844498282597188802582677370625203058861736092469920112886517251987979984492727837735824505350156371303084170989309418831336260988600476902431962693520552743550525293569983655295262839280513046234213867694534023687866789154470927144766059363345671950354041082409047405829999379745688993956578122931247702224926884299709973509746171834288408450111749619800088009157097557572425495233312612426060978791649488783092896835545513279280594150164554615222428532542661986006290093340023293792729013497244147347194496910284457742614845539143471906708728789789740288398370494912461206368723420656593837524226087274797028058014037762184480110245349682942875547219358963505820850669231184695163647967907325335689699252718259457070454820930798258346881941770538563964274360093232694641864071480223937382173542066624914773606979161102279836989270316101274949477611970802142562314579531940767749080914998821392495560163069662219616796173256984583595658737630648138140245314601081079363068246963274448729148222465921100922075358358607091484530823322128425424570295326393858742212537450759262549041919592632250445615238480524521355989386583021553040558616006244266888927916110881417856660026591191327482030516303641538500948414418593443238235958186081178411938083937886707430525036108946245319535796058450022983271678045278096012891892719022424331459601005224086904618923260597718549967268552402565134496729990643853049700562375132976595851873121462278365691857872290528815408627972630162203948227659405268048131696215159597310947193197776883180258819455474729510783265880221890507430194580623517520584623698877301186288963793250288491652113364472336043296758247444882300037729834139215896282390403462066845034540619865662523862353470269655522559478191554004475702252097819565739737780506885421802295287307244846572945652569504911088790654489508793260092720813841830737277344273789061632927209230115364676854193472360252384173813188625647436571454267861981037675511757320417088298338150420487036416569882534085477436832127565668075580970481695199714290233973723324492510834373115997404465683766790552992997867470867260386856544874293131743970935735033032666960745236417448163073020723709941940952516792455727073430854601253002050347160546396699282147407954067693913511778646911635244400428219548616074564461904587412060873744521480686692717472247415053506204893128502656626817637677535283184136905759697472579267781386643755280762321828792489806058206625421421950061781563707019887346791170188620504833840209586424606954218805144573755600699234775516947378413054724922206619944401175102524189152015729825767499842426982310563125787035695778067448332094881070300630535528509529711581232628330460229033291480563370282344933818167370485380315688314708565591555793663493406920391698101301429375103028517997369203630350554778157840703874892594984579880764412885614539525211527063160486472400711355741682160751431645181454147338377259233950088324153589288253013738684177530985661323290607326151064689741071646067947956717781903470439148613169243670099840362264508362995550762904362331629511817503476166083687787835433963939212803722198643856021203513760238861507789388413861697103047883114230346850496290445529982257271023182048343246711982626501403735460712381253608730603373144908632984664613750142297475338858942381676969931284908700718171007108015656945500226486669252259005835785566692834904597698588742655941554269182213531423223213755585671977096826052204127611642315275755166164631955237005825911519440465021995324575903737676070751377650643929897967745610564780750976375211129195371970213769006762239599000189487190345273407360722693186916952901631136519152418071305662917181395054007544712677208623167514774215451686657558875293093496363956515535235775987507254377155609754275260816941293799865955298949016895670666191540347285288511058770169574099278536358887621143476452094485743487410743953874880284781278625707629763186345542807376888883107923203625447406467628537438664651598346660412136279243940188120359372242166807334118761761208321321598748074265561310085356863764255220004836198037175433477755253913730034075538846541485659640509933068425155881402789691903779628656567229251629712648566399684211344134045108325762792259641685378819132896483965420232450697831909462623404817887411169386305758888581112185206608736870948374990384730660512529501198729884877688733116936153378254358762457531356943965662136403829278928964116618914259282446636672707010686178820120281487127463768288324303691157284653887331135193733600074790186978837871438965061866071976493085907979848179820290936415284792088259847110414256075733086141707441664131661138225971424984937566657753052360303742437686019262472310507723735845775437114933083091981231789162684758988572083779942324034150462439027628111673940926258816515609977849973421594902130492676099284621520351221785240848171514134347917361854876140995067331494306865167245282124283650183785890797096297286787485189961451550636639557497916184538634271166313788822818488492637678162357152836421610553868741065912641364833541791358043299930134834860334999719959084831653122596137935698095091761193104270487803838211647742493004759854220449774464548151478415481582205412766162079811892607249822674520008693215673771587575067523649092273988815160140520153535872678447768336629941610420141268062646591186276254285942355494493546799776166664698406943095460084647381335641574656158928071081748635206623090776082371628751799065902088762196571714198549372899925609295820764710395506175461195750301672003384866966508039005733669698006687538513458229464910535527418525032380337037431857840436284437282754405659249074512698848722194480673454374159665856932593940862580054011916081865536078335418755565509494179546791869714447728226179162153200267914528783326601419040274763425617926332732154403027479101605207763935729448092614249187949457031496897481024048272883868926498104252370966134823499607159325397544553593537902878969997143014634204067389421374642301962756751996677655937746424764421223039583900357109901948184753149640895978795145207477626157130093900547595317030169944465335679703352416907799540283246549268902843855186836439843555608851419300968925445442795850175723248247336716145583451627263837779927265347536073925377632331356848543805511942643337665984295324152760197613800361982919292901452034138918713964093627625542976236372377797733270984494448017798532137638446338112116532642685933528608128201593143040482376999397021289899746543782400910389088341233828557752284866732472342249128693693481237667040961725577539589132603435730798656012397599494584947359502038913670110907337018494350276064129654445256312510176020995684685260848545269988143668007915741782499209134050407362100231007633868901835345019038519045815327431070584554406192593760711443463120930050218786762425270801550397884517026825948280526322498956169110660398084073513481438891645572560534271735011820053519325995796384206843657382614903231506750512524713120000381561232261773465586942200454171143581173415758344427769007568600750718209604941989200905595602197741866248566161141916960041397411586442896774097800283432845059446567385637948407933274184813717233841578836594905217981041796182462960139180714952989405203862090899002775222883662139195420369848238455122791163470316318503911372516516401861507426132651482222848282274255834419645035838463896689373128378928043080582780983742177972065358536797108878513963522009916888498214841072706940847266246070330273789611940565450778665030616092975756012923318516664977852750326278692921882472834247387754542434863855535925282960396647533372539090348830799125480828713848635811116265970450867892062041763266829311962575476166745737696888593061945310590190166947038213414097030460448993800601516734135744309262909984688039459074377066937548618054171598411805908551354933187100574619801951957104250644070453669007989825754155814196733172409132186257277164510576810265137887905209360491297235971314227266062614247479405470725811826073605465525927219552454338462695551943237087525912533670469938253781712704513075244712947239517850959836989150423771384933927765387595421439047620047901184001653228443944373327227593326301386800035442095999690439536943333304125624229091103140178757283628677839095942185174483026518951047284668749496755045506762338613371318932219742304235618508040135247604309127606729108717811374357466379747490221799909395170105841299675635943334562156620094166778964340038174093485022271155894413100423627312714211739036302741915654971506432676012975764727730655436720622354345588426865607168936563588987630994054502148560338004065252790320481176228147422344279501634803307639666032746708740863881490366598679353185401521246201857700693305626727786724337217533371138382049980202039268365426433038950285388518782833656768341632727315949737937207795275607791771843855926099568077368242743113626614606863547208100818860068664511097284060642997095094084220025619078183837619759757560582311876739587525445763932064582918417966351470450616471443760320329087577553262996515772063280664846355001740016834159773533843063431989771682350973118889669910507942967193006385569291072544356360508273313928699811705631578040398427003625063566431266199989991925463660158742047379752715181408894471753610192043563648364696812149280000252703126337954151697472733092488289134933527037194762941661217909464114054802676378391357029718017313009962133399865327273315061170512040802613037817901493925609776462947938104619455278878435707928260889726465181993620044649991636010277116759063407898680378258114332086402211477964621320503412351569551853491556669793676053729153013462580674521302158454896898477955151383803431012193313508361540131206312117426891737892732820243659995323209299267352752570505930442926523971331933250827928221517532334469903910685123809290734810674743272776832215347756082160329184687127051523546491388728399611876687452895310387214604350268814157840316914377391516958604437549180267795407227604243004223366477355193751574507664407259389598307038453478194889992196578425383499380172896873377376220685480545499831105822179587488998409804051594199817709073087836688584643385395281084369791387733538864258900285750765702166661875429487448168256313631307948263481030057587678404570019886016875144338066142455501926026166054143219720526843042953300448020769734925088134289068583336536136551469394340270530386258786950547959097739792683163885575194451391423596110255515177047088898352691099004049487812496445312368298309781021088858491236671195534729270969971780831576582436000769753030224745775688891961070908336702848646578806904383159927454735759465719805812401271812127792738216904966787875123330119030521857838839295434449496811308111790957913523385818151072048268215185514893935588698116001317625153222295773136250509036622491350484886197455862079747787795081282527144443792100224030415224342495091205802938139576529137133069080916056822374460326339260715520909727222705327034691025282222470637180999614194954523692881446302134319115835515280972035516973250588329608382139033303628355307883648260136395002637696962068155308461730968048718658235138308723086815129505353231794192330681898838099464320741758600181807884997638252900066426663574129151401903191003947802858765945408972298596495522832958906394036414307147994048671763745606920682949622267071950580957940308826752711998280313169788731583525115764880375921816509360895201366826100869814467091020600051335013034108987492481807043770438717694616817639427259139876202207220212809025522843266522037279780339439243335926649822219551146937390069524752236273248880346618413317160946937775866184183411324676823839976714637374671219264276194506642363145667535511852309434823603843610186210422195670849171221407703997631095183635843038159965917284741658053720739072725614026077227450988435279851038051556935161877512761026704633307534142891951583421167315254083308131982076493760359786163776038937960625410542718014010888066060527092038346091270662762086305361104504626326626304027730727053719742803498465449337926326969631114874280844103993029039074661299095827442914278083060189141952608762933185520066067106221228951482377213074956843766525373958423060718909322838385200810376086041416914785157247681433220855555169730814092930747040284293670111369254561313961527562563638953414778513569533750773354060814877825059799593168394113184019158499632600385243734415403790844582412333304299173788992327029943476665078025299985692593377572839777472926536909927787290845279968977540436033824159935486811573429270908154428234058903145448314522484275627827238248244088363347846087817877352427996382087655982588118842361803535055969838877213292614586467559039803870036999835727347877808384016901565699577578389859421673133771105041980692761880175968682744679628466627967248131185718815565686576177627423010482384885296009641716924210931087784723735077920459024600188010158181867552710799243220241193546149787558114524293992966444177270890505373019115541555146639789552935824113721949779345112721282570999367687827270419773892706547703895252860770028847539671495053228714210837905348140795062594191301445232812880892755304349803705245238811688050017320098654464462055341228754438208823109672446707816082081382014133167141823610623893950404897290659881100330088720137130560375815170068270959540490788973202542670758452864717609890555977711954182162336919574417751799681780610906974454235418743480915352277078745580642184244024660449559763868418874264335992805909294254769410149572695906070203694465950274374518641468402822124451436311638282173882846598470615077355907555952650628053509259746849291191137037803242743998504050300591935138390196623248736994862254515192701108814807026983327113699208971332394257467927943291963787663151107411464749112710694544465596505411787137603991706405643288754672842970530107261943841679269622524107919017619114157657863666124552477977450839080146545995786826251191826869588145264944550664853771373500857406571494356125059004725200495024619481448254903853430132218440299978091746954518926380226466135936788053024289166588125707377743332924825673214869981934044706176964987405194854323464227077929550882176668389203293918923752734568288799914029093127069596458548817969776262965959446874227323733327610713288536078013623109975830191544369521892917520445808113240192716174235380275358816937857208206399450597184055764694316586556127262812158299160056386227972343374746558705094263857008051642453162055420846347593971746932105435601378012491435747480713492813383941288214869365408107726426847312634859281341483784583213819278179238016719026239311927883870633701523275324154138389174492999453493565621087071172798609691862016383396896708183295661138155842026866553911787996447146624839811270143297015330366297980619121355302698413712972325490045108699765190324822254609944980071697880266090820057558010622891296485373457223195310549788295417071632038297092079485826504700569515266882149620364420626127096555258815044721622701618084215617677732244902889538488453273430334762861886891840958176481452345028735975972907264115444666542779736702857670127288937088928548618209409944045349106648808080488891973003582328318444646889930056623352355681615600795947298276523491963229870100961203847677031160748313315985848908376293615559309688414156744740923200619654616023413990294313986516922710567719849830607487642746299203195488242217587214639415774118368892377445594811386749007469996041724759024729722857232619707703671036354504359577727730679381655270244187940906749802468996717817011976194340663310878129501329214654737519952360588622719602219361651743030413908037153112144720519862329897144231141187271104398577741791349859867230660375306269956626130771228134432940448355424646126849638041819239101617941870581522218038988975353114696933162020230100813832189312637433395714809752570747043821606553399205177939842463970944161635239141435905383273758826285893286966664302481410839641967655828519399521762992141283133872370643644057121736210466236630738728033959176210804053284971986104454105958826777113387516146356770886176120741281168430751920682730622793008255321064459837687556909652344593561830568439928858924994794845238459858316509947441167794922500819167100370025808703052159942631923268199190191393112432073095938219055485810179300019505369282809009565794634060825691930293935382900187700171423997642466366146617826860932450514746105563860520035447621179899425407133994332524920491918183372687097120566946241888662476936900104128868349773463343555925994809504790893576770640896586980260588177680754380634395605317380219687976678684049294930680964274906919106542051191389158824256002535151609467168080160371664148606487590120349949218703267066793033985970813538898931265921575061333747051662531488304436315392655854307121450228234033615435703403290016658071456252533303183053932497433185348853174087543792157284436774134453271575651240960928489283006772150473231008437154936734748715458614411285979816125367555570565496896705763709855333961624313319557531821986882470367637158283256925508821365980469538372073845102880111059545423267535693511906069397736585764898405438005936680359529285947753538746325732493529965025766912061448818673887663590749297630841201815013297286067796272488349506814712830272289533396533280666518982280165315400104164204116441611982642628804710790469204817412722454631859676273046204336437814115918700087690777410007349844907652794217137624251562906173500382580888555663605343135676756010006544880135868549210170038318702669464924056256180412304937483410187083231015645216465659964460450605175392702028872086596244774171509469625472744617606197525911429943353271316132324569454030030792807379355095387290518019397481732122313588773023985705456209421886012356477022195629766030788127479647319512810964226321714228062746804436237098288015663529607513619193821796164911242122388518889463441383776123327075418133850419753661874766308516665716781712514331344638714760329760906694765416801046571887580847303243053205183291232726784122567222126330183118138575700439255677539451321255829569618272928188481982281286732106612684514511703247363132604753798254592877147836439111951158407274842284452900382412813497671547553300297178248108421070070099659374438864314555009964976479663266019277752050728957093256491224137288422241212452830985662327983249984253461588272158395370041777858637314681370415192605777534092617367350262902905106423784036168588262697929998624999987436530822231597032720493231558499627083620588022860029144763455072900361304074415065540814208966141709738700151673415911038469584346832175263748940807537437571970407338881779860455389067996055682882766606967212017133303686227215086712636013444991861101514711327625437848795502941443855545265007742895391263785686804326554738106796652537372247830944337035583336113672086596878014477265914283964836838171697496921327073806036900476761573166991750276310152410203602105211998269780440474284480807494569974617489820617432271028359203006088417434165385323560714811805051383269684525681009013683040304882593586013432399776268679155404777665705548558410021409482033128058539865399592383582998440135283246576843160137800531420773089516152298600959454510888975214834656270624940196657951972030823773709710467519076444891038651093756053952540292637785125935347060375716985951772957086717865822116413217796997787946432275523690213423923176295951155060316660885709759725744530836798308985751520340337445743307794042513470487643821510833490453656973713218694032829923770535134137033493662197187319346433419455153141932210182242922098016418242154540505151007763481445545515971941022921649491173515114753223141337472178923036480694829191773993051304900170886537350662629324568687709171563409403229808325357030573651350579225644252313396811785142038024332696489094106470989083877332626118113931263663602633353641101986055449482260367312879815811405727265542189968765743838891313098101695243929895512781319272013003257175655562370915839806388615279461091531236581959404839695847415364222024699207976244045431688147915118133983105699963242290396325233774652789168002652394133409354828859771096490273229842960251288263016312111460782179215726054293380750181149246352884849638510202293697443128053816722283467397379990250781551093645158910492996515476926370793601874360752166359587445075603096481643945827514795608829441243756856387845808158620553155843140244127776671955309918158443281061336750426518545448926351040127393477417194009112729436341246152585722159797405615282767515269451165590548367411165023909373254132254144848454819868518795706618506691045941903459104587000586938891886987938377889312745183776710455425138448348237114965551114040666468223581058113909231974893697668349753178872508648406564915284360641531006039030678236955452707536330225496154090373131257045313372421915799616042881249742212131678766492396773182849349673343023868713385122713416436975117176389448964261258026216332730311154223110853942290515822606558821169742586412156700102974920482976458754945372020402894235954746432457802011743262412183471372141999943255613180145422277522724379270623676852651478547909328648203644008774384983059823195577524910922154751800985532322157841146652027481131306551115009861431289083498146650914605118411762085613381982975282450011899399577336723132963578116455743170423664427632680611921381069849736272853488238355337543605433582593353815279321321756090671260490662308219395597894804218147985944782685795630127815179809177859118147804607158861131887306500618804498524019061816933803197909917559005581176718718207523311133300004788044835430858200545699732193597944458345127802683582308554351236484299353804785032314365528514104820271597095706443529533526996388435719130311647212523817969773708249513768579386222191369961884511144580739515316798477436545010073228197134173613232700916177176109280286063600923862443027088907702470785352438728744939916128240543355807295256273570799886445192305044927300906776582005114903209804224820213971945842217705181175031992381516153479578531558899578185378977721903869005532922901117520221732811562151943239121064338434340252224657520866679510671418230962266341187422691375037351915228188659609269488974754562746693289800984872615138754532183428493875761207190263696984398800427429856024641680277162414594058668276310168346698116058519040044323209572038309640366022956905953712337255706731514634024479080394987142846330697666050896050988009307373211524686050002001146059894527395644898833264875364346821894553420002537717091434176460232312607920520412232464704717940352057733897370137784783260337361851599179079197025303820347788506547755224020547017129041386972852689701996883959012465950438200728914968943060371549568074648763112486287152758075294915223053924355313448820812336958498731876572101470363303012408110432071381209910956576111126635390649171464342070941128209144264344513190662733267447790555328911505162909452961620734249921773558264508271495387648962430697189610517250541901938054651643664775426946984112408437077115942193817760766662044017369533198062162603583275689518767318015063625229761020203500317595098541780373856984096959969489428127625265947584378787920570790105604855480232517841678808384486179728082850126760250763723169460473324926553168452104272786984150322633627192027002841156780902920533643201039457240099318409673103982325260853988243861300735902406917032102184995333074616496871279690526376437089968627028867738463111719382243122559602376744162679153754877140179444264635391207500853300734810521409595831852222209969609691220261667545729213800238742665953164404887362384142343908451203460090446125387148183651397647325860376465397902150672676572016456803664605328522069509883837093993385180173156509032068063302262850180667432727154422320640489248836222154220928167859523302947557584627242957974987341932028987094452371206642749247749874415521145916898352508419241413067929855267370989404962297397007058056000524767557513231591346573536535244058503394053910958102123442993763873836318509533059698944014555598477370542653534407969060530068572200856954357351741723378710474889810045220548959209498179306886397528999928218271557940075903685953662373329570372054734755015009142622855807748664849627945047386592382982358261823549112301400784053779313013585987443822648469613284985848282640678310089235168936293309487609248175502189548265527169838909530091941350921391507411577417753237551467685030136901843208019338889494278800507661905483991330082803677158258735547883210550759414363440668599209974997113081223664782666362369400423218040764001378129467803012217896404403950048778676184872515211608663093097959199635492803480526763969375754638536822151292781998268746882045704826686869322275773955550696643071106052504472642058042889717383699819406066521016550535429455355946361573695859725364491937703408936878227599923878778064386038254763978856200488165073092292474518911705609123295021953455574778639751699093457712416150584909675518947450269577031220104727004138806151076448064732046348071169888885715620689500345598056490065462074068773794331576539910836250793958747993343064327018925164152211075294836249085717891498589885152353733872792658834474858190547079994849542171555583769961828034477539937295378476356026210805870020710770808283549469771796509682901724081942201278536588583703689669636354246395129008455431380611681763201477493680278529622080670764790426889724800690782625750976538238013674881475937990188859488139684356155988620444692506871784664714180656032776522234808505582831748772939163181164155681244445007595890284931015072248085361590977984255591014276159082768457726492639473531286763734516393239004870726033543649050192849175573027389888515961906871639612871863814862690853894137738424214798403964010707063755157450204484361848600137357945479097324853026781990709581558644068541515676743513078136398988527051595433511734976969162594442649926013052186343906568635518227734942136792558449121887612334547047810148071222738561109262061630479485558982111060218885259221619552165390254043168325208027270122647407652030625957113177723662440882970983740158522626565793390382320995978823603546922934876649339746013474595683809638136651132214580658947054879644349731241548445467720943170611292881793003559674904654583178104216797826406838238657975444975363093912578448152300422146257771105891428086517686085161266755953621833417105107744041063000265594196047839267447069466491776528360103970745171488600202315360663252142951489754308184365104696631675231659272483650199718556812550282292267192021423193921350936649743932727657079820467732780967776981095757856194659833264418100430858781488663054398682353261732240000103795430363780277616582684978487185597343281200321461179239117989986968068029160250661801440389272845383451997912757065396933330847390711920890611269519652907682544870554850578263423172126846351379561490294751341589138792182774088670195330074799270306203012726292345270729128981468248511727577939812040996525781609662706003533522098516197789024719737653670122350657828373717548595351004807766325813202906461185661981106283152935536886990191206096126449759476247613463026717811302950742434637218715794315073238075588219837700575278295377888795694756673734014002905787719033604789638133471261378179927486251711644719796798860914836855467573900644758232914937453421079441481986035803653867364533214366825730624954798785733229555498020821117885079696147832063780449277738005715350209575055693725392867256655534042883596984357339978874861976658704272938217741131843792882730432306686402357133605477178057557913629945422431815766364011218821990439033086687027316527761215242442358499980853946984194007313583353314836766262217180147500475430950065969353854837265850526389781728445698064053464583580286254003042018350275189251773277163846231951272875627916266908643451779615918183191421798900660002276610331235699774209912052922448398872157659726453637465492921880523941006509163336700989466826109076418754902856447128909433407625755207626068347281060054868662088627694223250048348917442510475819331272635286034827422236615617165304841679716963070792222107556878194629916358201622473857865365117178631065415108164700778627209315856052760187624440040358572992185048010618923895638003038364304261789911521172463084036384317414877296377263855077463641933183342287789692299936512898699974857368805710502572967338072882255081576432774029752155512567992856056022657283384809803023097576395494614757820714715851239683105229686174046339491593335591633876593239227534709744695040453340130259283236158026656709585949805889495441058008780650094780795119860533048681478151982273905977451368787791099646075035474162251364446789245189332863834028323842474179897228390797466853004189479096466194752240547806846956940219006648790436916038341240508709551011119704675856938832408796015981615820654863008630747902938859936002475609028921715132149334343116521850733215956915950442759051039317816779080471749857583202649210893769777399869248358166074095711828911773186441961061449533983708721942016287649027112415844445409857921954134759078905289733134438115915973617572171174043129200106209597536489448953221539399401634715607501637995789028697740179834475742146532572053656931842303240747692616285786399285130674135869265284995367881843630172937938117257620313006626852931648059687655087738214817482051152421557082216814730037237341606667439361208366094709148260720380677148040663756044426114451559388017488209091251809349289547537680361558889217818788221086319525383383349302957139102893091814811079801157599608723060256825722646818395082369365328005049038866751108898215901165636775351336504784673794124175212428490153880219868587245908068636927335338725194104660381855343943546784433990349413708717839118164420336667352772978411101772514770830784106820872801551656001542970635486154115530599516021989611954845704831641402867039826438615624746380401375966164657847901110212556516074582845721168691485734029980945093287692245740820300364396257310526344968602475105701707867921110309638126430981360984585622583694186151234174503217922507504942770560019565532571531641344395529133827760356340113662113075941838465653949917244796966981855564561815940819076727433035039613149989478784473591804584474861491586543749882940675993361460571607259400762555265845148532287223112303357816180250385350206203997108475231718991722434188725525997581613140923061194214654599494185167382777847350431635357816100492217419389763343344479002326664092628357055440922089701806121789570149235452511433208142209855922477090751176017164488155648248970795979235403449200631328435236675567305941730023101639369727921809792651630337516942889150391570794024958825472937427008713262072631732151965511380767463014233630375206392770057548753537496315803125641086756409859762778344900004611069088276192826608655123438764766059105642713103484801792174483403970907885442546866644995674449487361787873711800186691462544726769476605295457112223525976698987388810692069398971793469222769775966344110864009488179974013221913812975219099007202957666931587088972663740867157336010148311664803182631268056645649852368885897583623669024363905071773234696739806953842190439764344808733241726250718485495897048619874419823125324486077416117652985838211629694441423402254836497908772911564092787090073742975760776779301741536608397359238105330574086494730907821380773284786931085955632014116021189372749418412546754606848025185354126536007391650837737502285072840746894401373860267758028727873077957367619146087223737446478753691215461644849055205605413913178819201540083772196156451284522134682357130340201845249315676332418961788775940443467582552065172631547406322005559621725662448177317049972157243091025109769242462415894007940009165300957085554422278246521799193714584192685482736760145613696294386885561888820061154432107824484395645795710909621991857140531879327346552927866095519409405372203653885890544591391119295380611790569631621028789144348680783467232402677843944811187208178752848431270567915167558468999521570513926920633314327012011177554750889313428288074665126724316181252832490282678338795743643646768641136574267149495969677386581690100041521778049968400014640587171443326147171871748872583192867971309804860897132220878237066984120497915940999849910758952420381753179340864055600356704662328289419945572338793692798509802475044605352769817116348909503144758577468966257581182850503171154141647803130993750420795586476073357017899543790927520821305417146629134755027422989144866470954507597745407563384143536287505748344584810965613487163867316044588619872082691887285737052068105084284224548900922481077445336633021230978204067804930407199525398534522064482700910160448122515783651431193273157577304214354448180603141251227188148084637897467168155881450090594449148067567585498769909094635672847568618936774005084437715538703793044245323660586684562099969689726996969613978646841772409397551997821020476278521100007335699969991694001025611674148311275094209530762371512114305605846088519092959423102885041634518739085340206691191499584087704343560240602278513928986445649513089772902878634129819462804242248704533002790390830119811697968180186905471805508336766732179040231555951932346258110118441794283141933453287780690394452589199396310957161876858452461573353144754600129171530386654903782194660518340811309152976204921676668032231829530858528043868110524782446893904495824988617352975985536647648617629069607963163960283972849826902958878438508221966013762928870403597455449891260285780898794360933350481512943684206041531421668284841354397248590923029514568690761116049258028613951294381291144972712966897214623041638114887577446542192939581619923651044742359134838655886472395127861358236996176189479872594182618844196979201469454547644783884848677856219347199225243448275401237699880966852872222253328556484326319298249853199511342597479922555209271708045586650960200873479332556788785057936406383571065163071011279180574381689889361111387909864145061542645803180747249287862919439689536121495987838177760878961832001293344593132976697162830646567532122074716903249129714311644928039738987066959981915573300302980346509794878307485588083236271244099779211342074190958839540904199391529938353867971915451707671864456478962119658829541935481558738072340081932823492120051711360866901110954540711472006541496505281161758579647648953651844360920979659945477482021377344985740736712234805512523140432993183363085135909482563244632685177074248170393190139828359669411525291534432489060263728420827926693591644234530098826828077895558933732470799101623714225665888954342082351471749537400387391722247989263381298378329110488886141142793709762877241885801787730361684925707781727107360164587866947556426620501207392031316833218558624743592640419029263262765859060714853995997659002137807373180710358998372739831137017204737110005504665027447501174193461638505384473728508754998824896760222788035546809993719119969294898609001465478047248115695664923081789566473069669753430511241469703878128970275016840684770816753456812257281181320909287569464231768284131994248275863315173331500276601837256864538067863184783365698807083355972079390150880071752740358340090890166089170859931234885594025397135538352244705431748215830910368641987168065626134548289119647497224845893100493326088303604791196463032554356741265501016268789490955527776624569329330303887371028421697159010793429057071549459346266443955018815878267706592086704649305426437116996701820049941574787202917280021186332589089827017327588836953160524195557643321693494006601412043912832499943467423088647674262826020980799897547049407724489437648090733781721559639025377947678118529397832176543168597773384173155655023683308782495156233011830822942626535181295519432975522054372819915427244539678447972155192507456154617233767008912821289577620306066040743384992120176262247349291663092974561816343716799716870716228600572120201947457998743157206095997397308908924314784325476325270737692240812546755199882164120429863115348035312243069057743951434072141301931698333868932463900683546119138975518715328674216337335397707408842072326701870987191139576790460071048097052585673496920076854013049957296557139128473158509129663904817238288863430895531729490901760475192114539129485555053424448107476003395707312539892487727323456021807944733598706094279645690106401706065871832662363460933774413551519557996074313818873035340551005799998595994978681786301058631297302013607283398647759981190352386293746339033567893012635769031361242178170739530021014969821085608316961044030963536771978141139344193412436016772720256212050314180558359829853434285211051838603822684928382297273420803083049899222646599557098963869377526409460575955151538046226887568849184973478462021523590499453876777752927030328620884314242602269566210448055048979398565132572250240020191902635863044002876887894161577826140009055914540579436119503634530815330158433546632274662458231560854714248976111695651272532242035502069206984009190374737279089971609744591214103997281305457534694594280861095291245549992769712272949342937634307046841636748373415951018207675081880570163631489225864709974070800853822280847817151420829783434503556267379520832842951036900653868251934303306652192679583041985125868879128314514824174642526265075166912253622030527004710604135309001968371950675294895055448388586504285894205471266375795303045349132706268506597599615803646478886981534828989997064653854199500453072622586822542301016549168476612964592673810841674249797201841968018340801414232792338832454948796510568755735703909051834912293674463334668585117957629828303276585882418180092656451467082070129272656246327466280208835425078142947962950655426622671769380410418834688958684939508015700838357233814450854397915890065803100467219635252516080624696332966272616514956731892149554258290740060756196508035925280101731554161125034732535847307719792810415275461027792192217156296504495865426110833192036041161682734431192466322961466217901621234827781307798664813377735971331633678884381161524962928534317591102683936210308420941816554960153635890654507365451631653345886321969267124152408501801857378805384649864707606683172978560469993369632299339862920153054468463240768683369858775557908814277356624472139218292979471224757017278598009459478108620844757068985826608212180930746536565252398033115615139692298117278673972807146268922658701600312451686400303676687310178927011310388405995005587665113737301918908324346172302285435496037128149348782196335911298888499788674850233801751522647721376635288937145480405878342976051067051483466169278058810502325229315602132496856493238713862259949547915370215868752404309850981240154904890015657960508965336685638482887316012113089153908251332008232505065662675509397302458018625084101554160425843013801509943569317417823801000000730919843256864885001944501278653769553411916587221108486513315549851739089214338856166679549992611122971127214369447668079981307277068176466130329425371968646462385527619469407335388713014459633868946015832943342973920898480047809178961274302079481334593323195594114052638354734689790668481000138804329141143916734579372171442913664016406526564722915780293173096952647060076334939563840632324996866340670894671868420322469338945149058657216697689980351822042879329357615935402965157578676001174305069251761501080889187429302572720851845594800802885054470923567321115703630454410575364863978474861194721227483367662347738036272235597875849364929445683527797139124642022468743861086124590094369982973487357300855526621223289795384962640192134190629072977545657774076181801667942080910895089839664735175806907401989471424979782985826318382818915443532450444864857701766758690588003137568599497460094369993041482945104976850794726219831642991706258853571001979765128112871390945279295064111262053152316940602458559215162482221130359107420037217374386476092732402762452501203129559192632798736987337959731761595189510125932817613679307571491850313113678014006660197373807733526048167997519043323805062389122542666836647719243059451514164830913824124529613838211775245651952979622125619218170127323463653553487330643266747771500988153956318721363800874876271678377476672921782839273951947842494607656879396345898962886061331511790989176730647514243034819130127511806672057592146717610313249100494846848017067648665640502267837558806075638724043879719538310285198924462471428169822821705935355983818067877153589050586025500261897174155168553142936732418665736011083011442241519349681461322341609145127512979668712770129159106595559705811583556192629063505228791132842852270404973008156858315026579355249562044846647465052948786602908752196819352131331399506517905444891491301020950439933085072565403192133565055891081489828362065458847360312157742801426779909086414919086413739053296650502834419064990763425539879686649967214896819466020528989430231093611572145604909851910361437885661564494000575910910694612130521185893775608565522307494340767635098035430415297933401354898739363691066900992128391484450438482307139484837411081497429484666806173530772186277724298904397586861137055439109250886063277935323427323350771382065720132590771069206158903045578248218668062238130696299942293051260290256969410600132143233675641192890821950994239642622212742440360417909206440925627910326357054687103361996267971262332963915390255924387280124513076357391507693594330702496727995384110492933818862357308520872291773687387944376421497625700832652840999567356362570777887473483893517206649372631220787493399802023624330771733028788510236640575928379498813987333725831537983619054922570799598770650979149145041343546049995145977499319462501007155128471658514719772971984580479200783712026422587231298333251300605527271038088140528844146786709640870736373953203658848918737892228917905653434810865992783220158140485985190548127793288680337130776618059539141003522213271402238532686230811216029385951545401288438908935464155152381718108920834615915931242672186466594140471026807889320076766592531657102595034593774306835602997257167733947763484441446650453523879310934677344183134032127784906038313276206008362600850714062011784675607349624841922445720538501673607910788279067159591407332015600995812854754836227079144896978814905391536349851547945577202786353775636590955460075956463591191073541770540424127373161424639531894240264490025920067910479947914895366553296728012439643565431918806915636296576442314454737604552995367425527580679343840173017728382768081942451175165535174828123819923808816335712442172690438795545478160839952621191824046595534167067672238218022410668896348073959854111464359972825666642516821052951655204261625644361409115793005213823136674900300307306754864401305145754774313479744038969291194300650789046129663474348170947998118665484035273181225495451158673490983347547670022537804951327517753351098673269023052300077295647223688969949829000136701420379455590929150325818549365787439400026068153648482146406650386654827413801901668368066765805554360761694835186807353009230579470862838850603807947612734690572865521829659978753477407282968778762134872668103759126322263255753674675026391627714228459268040741609563969359162234626755821521647426730473830210917767053574848545030887234789816646976798299110157342358457272329926671735192922093016287065503821260021283821651356907887678951065424398547677097540682642840583349097973926016422931290976276211356741207966428796029389255353674703054707797078487707847671114845258105384141152486581214592368438721490133633825763315672162671798433176688185279803417189803503144299413397320260653648610334129509726674925568878092477807869406268341581257439127196943122104451821597337105310359287759181572880805772121945300488288314830574047791444297815073547201118657875404126215688573356696098937184019739271004815324018313778548992860797895918189598360519215663450611541751623728237394116432035650550517206712318102320364845083058216374596281544609382399742296716314730027807239817555280253401867854134343381133545898025977457272166194210016366756480769103105945290827122081387341974403543275056736165146812743924460711217947442977781595971085554857459661696674218834139819917454307530142016992584379112147784942826023534446832130098888828988630544840071279020544864517555264009964817933159225168450346806046683611096625434993664899554906121624699639485953274698715436677764354116122536939411347500387229824960772206802096601653721707416208928525148397195254317781669041684101233902369475609768373046328640516648203750151666750381505552773855223414899614731282240363165579982450190253805769994335178488679299702807963213543270301012894082800830895587653338579119093316670626344282292823427002233540117453165051256094728497883343135582754587403939406235182109252827539986609773454956444977064395930545020900803610123568219192175367672207402192787371674173638247771365508627974898500373066375454083055311852217222362796572270014916010567890551388652303288025750517367703386411395327518665431243175446368818594309848422821339181837705788548257755944885702677396123843592315375819043864974090080802850635269369084332229884776804569473762045081452557130951667841102647768193034225195131896377024374770559862165807064724648333408162094769390825423636322959613111665102644631007259890197478543167115415711153796639458652361026183570785588852623943340938338734444161018998097074803827091572318804166553897735128187246136529805045990090686166789833359238943046830352177563772791755053483776512845279584197726116653492188258304755887587440322739870110406207070462953545835832394964837431402253758566942916589757666919853593330241305391389755654517960694651811241780043409437747491856841651349458184235671192834716738945517465522113284710193170657813998848864750952658625432262273875635544554574321967044483186101702427135390101544129904467740939863772017583060216675633961944048658327763534062233915405093191915357147219485217637383236623278945144159986406118376234998999173080496042101296893993842267988920182967916637348375601778594777726985720726458837645623075294778541633921125290926019222405861268805395185646250696055264106792860011243406657926436030105296873914175884922449283060690829649455260254232157465257669219676664736645866824294562359932127685435113311495965584948724583154964815963959395254139834581262972517517792093348982238685934057336968142523877342789471616931290783359991318869492085795425963069542506239312815906204432479350572797201058078613421765974885355517810261827308012816876363723142122467875409855008626524097989421680902077881244719065195232858261225597590214759079218400372482247818382551523112026169391406161319789744772490274736721868058454709797379828091765703835856609555669548477053796425142716196283737533436222874642070717774284804690729961235043072765241112546239453100639569190991652762120877651860197803428838135483306174334006113077583214991408144871591724422299235445627338140679334500934919751067464973800571680961569548891578557762823944324548562890134281721002634404802591396154076806472094603728268684960454840213401010822111176637475658257882783134160450571185161215713527040521173288508457575687414510492742475781997318262672461778064247514970406521225815346844245675029235303655693912997186664390744714152517299152486020756206406407719956673283850574208555409687310159435969075834019769531366402720354462784061866634091700706634943308890873075923806840326304638957801097060512279597438933590502506657131152754598919411305583449135220693639641787685331159466913637642517704056585804543478648089761075968386081787217223095734814741712790077588203222714280751794039644693662362586438171873381533981283677621275504765754977355356510249670023998662758901240501406254017516138545951912726416690399422472921394870200388791276220216064287819476118806264791005787879415831623342361290040840534696125192855538398722752152086738032356077672513571877407708101165594965895923947456299240993062903461202603576876184138642893498302107711680897766578856614701467195567361430278421428048339727700323009889281881425429202161268155276795240972370108120673418869085979894851541577937700302704817163654458468362641392272796107970311361617745249206913854241886025937432261584579621740752117030933533669651387230005106395879611556674349187267447903440658125208112036303087760905631866855115195145103066213015502958775738256536789503725659840054623142909867564518995142864352740233250886530505427299916488005279749760843196601789388627259854216356172517380685847566973170562969987003734747099403536824068315786947713538619020513500381215385110414761620835868183053886341672939614660558409406481824050274362255583680273714693224286521069951353446784639682721396776973973188824601095242550688664141209161941696812476324141765352506633732645963203892139856618279556800490363742876733046433337797604436593666289302994352388818190391910558661200484682769266561616497192231901002054539959298463219276660515537699225255333565576099539192349095814297117228548299764292777316579568182870329859245530207244504006649910966365667963889393162356296033544011400033799735613830930690772966697962697418454763311617857178116122711917850152367013767566761555348291399030978066856347841240161894295882671249989711192927986534827721142139187987454287499815783478069310287983548205458784250493390514695989525154427058229514874073431585769844604795375345830737596641260369755992713335930285685256665127637455466375987280478977959570700999112917662756955951068335053842938042169850241629145278936447644283237164433008263663545238480716657213253570839171604072343324178666687925093499028832085552290329348034133890841666953674105994363685878092714612082593888300981100608085571547704499980516621315788364225751497320432304518366104848564390465428450303749693995512911161392281832689082865059092293795543868894778174166386593410110796295033412408972511546012398475631323600059602219624946151076104409048756614899794017027727946432888652622134281378477179855517120741105134877335552745023049263150844628772911600198466228134601507240911321077693619445448165610069594383773477401436311704142673608965137430120179016142624684190852454670462559046668300929651881909816345586421443564780086889325725926622148548362482715388449657979805704748590924034060572929763504249499905790684927705689537193890321815335103887296719158766618447340419559924393641228644796367653924859035710959813022765422860568440332952602299044142321687533390645468828037571333502141248002264293153006636356064643003959283540884270751741020370519363796619396738694657201200264641944510971342499835623514384819051542003282277316654375928634703083952364283862936921532871720585838417374974065280841901947271445292901289399165467208348890779005873108211548755808934012553291220495730740807195421919868522841375117561695469938628732422721864371295347306469685051347816284174794203474506642927644049664540771695935904652189698296884864090370253409364025541870190487752654142382991150434295929720023920705660417906004484357474756125303898057955664159312822524781975186446819807999440843898058953136155313678719601867523389889616233913501057919522329124361847870539166534850753943775172931511184274477953058065810751732004591338698385736490296695589501999309661686008260601705576281463555736422388586030352559377596481096515715796050058716071671088725438943437891959070837941937139171759309037870146353590098106311314336968044681434335409359828410059492778556585819658789043803574436281256113571968364747325994326491530182038173408324527296732083324904749286781337356654034243801884941861844690181463818080326110137893944869316445453315817573597507400072307181105547788191793096662447114045447705499098753441402449539358945493479502433432497413027334889601929924194043432464890068586307794770180409255658718401287252223541324106938902415119021385488588269751793170648848453204923882057299108041449519798772663415005645056776178154923085857803174285985126449898223777994379393817707224440085514781605674883508137907172580260294613737090987529031902387510191874794776165966286037550456435310179645738210101096877829402616415073262195057752358713737651018447108920405896612716862102357223728139330860202849331256155455377728679285725017674219843069449952476708240751315418855269957087841406403830735544938776554973737241917784028580482831391570008498933078253673651081323012513542167230139544477028238147731549543135319638654011099669741849590938875565638324279717164599477007474567036095265684679759959595922564637632700171506606538221973794886824266980307239531808003929337871104377456101519363185474702281717280937726664354426474265269432868028606927295666707522340973648360507044049990517514802882410145460185920011893917069915869481611100405864209045228066886269136175139562054899675664805926866188185527540488258976166472153541792413675046002100405826043898196091011851142269864464589834629331228683421358167404372812441497948897790816971892923924764779298130756563398760391530167149532548729402270490154250470673171739679130753861064794346860320843026891920284463283701221114874248058224854857506094108170103810710923665674624310520418039608000832513107837600139599948315859816459587902904529086672334086458099105701080860139658347366992198627919831467487414439032794270119950538915849628743426344190273566754922197809714143349008480620695247818769538211344531280718900366311821237500538030912832247584458760248157431333176315149351471097534887458330059134305378626168864469987664966540406737903492079278724115435250960349158757532456955554936811109497443609098604354689268457445345183178575554414768588832934027032508356420440271811117842355919584429849574001462961487535774756604266137364146507375489281208735019985404213292576937266126467720528968709495146225895235298399347261246129610299318079507996442059949245678663974325822981693065658158025522333941162270514838732455473071595148305097519160535071557320301149936970158941281830441642870714395691752081535590582025911516470701801190060254873292479531999718920944883237427663985924605616036416407461038299243123701853177836187383420678613199302987198606715716008958211783296527406886845696641669201215042073066942917878661313292414038939307240614722598069356040395958094329363494623131437407264512681544385954658905827133487652415305069193457568742904513480948394395992985532823111571447597068424651939778464022779490316208668182977140407375305928618007441995355571447890063077849256887042502379486625761107735960378112801682098637344704952753510820024268201368352836157585400852458755569557717774678067317317180380126193737350369592252368079046639585214554633960945761776065477356054873171702138202971440493517742186150841915295864155124817809202538870890221755479144829563064953635759084250595395079309594311377622661231441114151484642735319954255482563011118519118762794772200109606449033412001555263538747438633527064960417298877409537933483562406040613666544513867740784543560171115177329357695328311257763885422047263883522390192311566514131569865587074974772065337345313949398821093066659071450169571114381223059194344905399588670962132246638308136279315548757005734386438445142852803241082692685334461694992298706188754630149415741853873956568289966820254756294120499737668259956453204307034001212907954190741804829014082649347279584010346531041871611886415600366161244175209497506913143582721176583996657024641683209481951191201616496784118558162367187239508967048196923140600940198691962747502580588638944335481657965016853628348404854145913043959213632188967052908671409388208372997798554405642552783607314005103427564214114729493474353964200387057443549078632966578452155606043827601660141155884915426153121479740802846863700222859400518657698278241811781002135789264288564757133709861000522615203633701244057301681957400064116375520552530821477963249430033098910365520084868339058641673899641111767829120849983451036720421243799617549275895403712058883760815912089327655364916262832236101610896313664836613101830069066532980542246458264540382051101508227822615773853576678549648873329208486124096605486869629683080974405246240330183187935996117064342326262546696096393909280058982887215776867889522045740554667350798572203191010605837097126273684863059819799423610497004151631216799238885749408865027591990487638318948575802526596899687362858425745881337784458929967237807398540146968071936177620972553575553585184383049994901899670811354687453924559391899129792003936580714294051362994315518918250795994618058234650203645053336397851504943138232223872460986506883361406817325692128059995603895387133536447340663121488077281375264614778738640223890988665141514373032520730611135267389074766741164221733000541748716145516441549614935918175430265179254135082689221958990246353871099574718430174457979693368113303626513580963332864705082531045549860258753715636085999078864837371463865359419632319458892203764951168132558764428748232806950589573794533557939334369999754374169685779998137220333787390535851229161410617427628664085547470463209025078456777056391437817402705897393248505168048959706376098000121979638495056871450623777389710375023407938277438140049862520016435871030323919477936954320447954477399828406767743707280096355498488344142958588199817529692894536159439198430949134912713373221891701492921866768821085235433902223473869496008568835876025476667306252198414175295060679785704776587362538710208684183576234768817097281469842615473159226765571662650147892213656879023237828924421934894199468610153079253852031818799562071193011728427110480202878357534148860178485135375646243486482530183567330994497347307496378420555046412755028987989831856223437500986445586944183138118160684959177295791259914267117485653478810175516021395347009981009739302894461902201530458074535339108925574271529617620793425602980956664941428677049654078191016838028384607338245046206269428533803722685651130315484429847622276837974898639210107716483277699870609343094234604404989741145934583048721639906415456358052601342793361975881192425316485827426809804490759553436298325519237339760503510603605494365027447067717681660532048942088871636789017323928275592040707913608294317356078237429913783843616434943271073244767260379544765507669180143137727532673883322556171946896504051773570530842590659416215055307917302734658484658277353301600737971364005646062906344628579273186356091794794370432903575681797618093154011716503955428884059873410395185392053104617969978389925591002442539855419570330364439887839287408018779541585785985733944539052559341480277135506417495001574605659630338563065109629685547259218360959114804259499377125153763494859964708603253522707017439765046448368734503282358367112175204251699011725345466208722483766821002308644869293325985735175421687844418393691044212524403940642110221736201641073043974583503610192177316837372342673258761147507199733086819871866187172179185423734462442781185607703186183673234839560234278129699472602861107070350168640880595181089112992630360617657073879489453952984992245417415456243164281515601903716545917030605075204777065037541687783205317759060195334006825097785300934731281123916577760183844104560151379349636292789553798319714351329959186728830282190411502982167022743196516587888503986612203315573807816091552756640626863983239551013184205170168105305478440912333444090824811296896423981853248910871298984859951622955299465452937332535107483101463748688921389839830482743915408148959794470884333455739793933458949479903485818631108263988660762097093986437859145602536008593715088819847804036466565692948090639038293923956110111425118379733669225740182620322973078823447732339826272347392346930721823266594060441525054311819728654888694795591089438825798903828989504217069792246808444772580614184964329347794454995393934170478721763542693853681929191570462326621210498203410818032151359601552228706670803181305757155300273493781400614361250847350845437433256558568041484280510207589278640122674957903845032850150852932108802918455129045210837536335641337603758642446322350855517251290949233179623330422006281608884741232761456048395589836082970358363839603937312992795863135883627625395028992714395095402479449381601347832276265917959665995727399769107366257356054644497771066637954563368003258142552486076801459679085656792635958690330813006483368757139928664344672683204228978892937752773707579708374676527918686605841018467068090804550805921344844830639766957430794817966790423070609558995804012406718806185105599024879562387814964880549096975872283641902647954852892451420149971929767559241905602280926226052146052113321179559756199222844092180000868150429458077755189485630859425352836987229983806391171857478584458627650805356133937985028079012946945931214520881754693727293098676813244482947965818382722991792622934630631148592088365684546322444456688042614203370242306825833028782851664408582649640996243985459122136618273628666746518288392176403756687519548999749918241876742013586711174556206124991520262879299428863845637038718550170704823262121541157136753065954132212415874437079845244866680482826392716026659199579972235751904269065441058311781214710123553554239914510221676634646470843661074903585644627831639773901565763739336754483585648344526895823533745394653488645288605450223128084991112795618114865136462773038839309652322357789945988077179005235156541170794966943314418484710411621695755707023413123680106956785099226970851275165591521727143187631477273460319053027323189518487672363986358228998247711486933543409182370795807945435937440212145249154490745607266441387972810141090059430165486842619949494993120366837099091374372196062240917289111214626078605726992970661348155278598726723586198273983158416016698007177042418370222552139196918566236167258669631626072549661856541927803273345464045084876861028987538991318077059197488062609100336988479843675036296293893124154099043134078188506046276371514860810633053341610566108484843950362831708212465620838110875192455968571963313351304503135031549101086851932708446190363388487911061911363532117297364655312364183457986067122772401298174320138770414371543471283329700469901354630614919845135713891295093503641209184997516408164965259480873759641626970187199075017575851078147684100131885851431425531278592323511667121239385353674545277814569402976450133554700874194570333589861049407132975563185649645862359256187406125404533676100618027670485872956785731992530719981631401132102172999644231121359043700099173322387203329405231100325197841818772508676658090560033402155602475027970136506449276771917530028003712757907692168840521445216450908293251746132171649831176399496639078536219680594283505230697190766991903960428423978546972979225189346920541523600413998094454399627460759078429159944302957795518981852576478408976302065403767470961541632168829185974656418589702020009450219795835262078343089609825747672034060712910691842012118934497067013068491573520533349271762857242086275964815779883864298222969578747978262008944357366499897462848451238981952413765210472197509391787660391587018449665768067118033226210915487022020965210741342784086700533253928111775562691726635197610129268442927847388145942751415246720976501867660704295826552503021585675083060256591832019485715928428060831238911025379860280972264467365825379066999260247527436619181740668830421769471009758542104564972050105030946356169007302909074974854207339785070786636060504459499740396766878979899663048555376726598565886248590811393453646625159886871665006996885143683802674438094021227259674191164902771740492007602906073896614087553594614527542891906186257921677719076566374551018463404633706925527234639520688351262333314432327947741502050778646353569559745415371844187068479136750544352891643705467497539555487902224994604230806046569405152953573794522548361018091430408526028244879153607963319575412794092390724459367274135073127066114336203094351081036186184252298924511400429375107537912633937796676385975535843911225397406509042357177182672432961647659239080968776677699029903487662808117402934081580654307894402174112339715832322676171405943161744007256960451498648486321906421823148574245472729920844975918822301408162641481071310333948272756588406508697782938526575095573874631028812920639781679937844282225311679329728205146301758357677312667499150071820810025948553208922462249146847497953532947888297747568331568877182974576653241318461489281625778619954587037193147880871557952745213087205093412177155841034259763682894366913174179802650696868433179131964072189471883260226332232542743099632475287696699591425127116495032428991248873130635596136856458840136472910234448140152340015031769569519870915400953081951665586189468471664087415588092620308688655822078586090471002198950555879719880362726472730909336600805352401087200623248982400478307144039629527988547713699339129109303937459433791488356872619595333997769016628809673141811418076661254455638328764218209190601797072146207735423953020764567076546243155940143333432225597683441434581638140985882241956465097599997377485771678628445391349605198663885208940908765374457789260642383834256364045119265774000761216265135245757673089526741983518888762711761252898277344133662479135616697362311634634954417026472631205612165881596696525645809175301237832565066296692676125568181355193586778692288011988623644444599912086119452956712585592537457843816262737787621890139580634163311343825165070626416419745842541009270944294380645420442453468434731664974496557963305920982416769742467550714517002797354846212786101939835350372355665737336144919629965145227558601178511101752044313505305872962336160401169786759063941592352995582589512229943597135805614092896740689819751837398998780208366921089403139377094233666704880309075351641208594447655775187878714893086311411906047793956621864089499090521977355624733381856135279262559085046520456694720714206049558582312629492498266811389682266726539583271107695474358864658956340671703025499680047583924358604703568632073118606567960921379649883664448410908311121828689893532065337799539618489058510785015973971190284092822239757673325108699069028581552235293723354768300084261108443749044036879097359225677163066648090909998022160615571567006754841939011368103382479043974832846525391928865562378991024114815854566584565343504831700513971951065631187328346594607004832077464859248919870699963490747814071680901286233758458227569188679725555304457034134222047606231960312482600290628672479016358620086105903420857083564310859284528176431702934712348537315556042884178229482460334511646152192391952324459199084452919792428884076895512105884077344638883353738363505392405591404389936470662195661468020982681434944416118034180868586454133026167477706215503704417295789674534832336586688549476841713002763699541963518337396118597656164462090021327695742245844099036271877998624691145518057128303777925556347838470683509058974309084902015242193179121739349298479889635857220365146542038242791205540957035946731731101446355963254505709495104064863797901961074187456818616000687603677828900012964410917728230172450373181194217688999580368930602412839177864359874697438649396271955452886246093432430295352597301558732806161636350563132842332886193054955407228327784542186080902291346242887868262603292021527214659736000634362103559577268191466567073366891704757759932373678070569683077874787813703507802956899808817048370915863559755059224905609407698320793990641738857186040361048248921970192961736390438562728641880558402508085248012232885356938585396918959679144565092461699557647780749446488972649376212372931008537872626366226780675669323897954564015778017756481188685745827655629675656183289650244153221761630821244479028302277921124357074067628658946739967231415461185785787244787919438155985058722422097313260339400891833546636595229488519434389855472687539983840512830153435843302910537036044652016769626879301427376664243187326624051795412261361155781390449217276347679589002379508955592183407769303087328828939153108947969844609517806735465580959409136957176955612268865084176154070092480435291442901476832797110009704398038750875107152505119063249652524910526175222821036017350611496765036682472347449746258965658670085396067433186020314487427997142104552909501486730396996190876533342497329802429196071236788470595552443143502004084227441898602791547442572318583630142928379680165176232737435887559603863563677852639079576589593699513585696352895068392198611914842567065937013712941999169672466642951730726076148954168913580668662371243675934449930517308740041779380329216431137516450613118139824800196602790856052375914718633831795473210025109617717348301162152854838657218055662869609230102835622578526218809660498935322460161289548220952196090158917627112268945551709231599673532340534199859863581861153212513384248047273011320148007042182682719865218339791952993179836939067745073235825276107204328495799509663020791683678637522122511136762140679878941117027574386794674027546280431950156836943616995233406642159185242619029069694771420839681915440230704916507632856904622096538640136378890142548435890134658069006508316581110773504123188951681419989334915601531184664945323719080630662855330740494797276707684509410169797394637006821197518544140511204788617939787410790045290123050689206697623743415216601530705947911333915482473409622788414554073240196833180851410900099348960633774478593473571697610600834127922270216044375254542113379526859187129720871080073579323190351569229984429867274441971731234353041942884088757078430337853360986645324698282659120922105816324231952416338983645457794742120172197484038017800688902458804250986918449998649844866311245060885768808370416902345434123935870243959012563384503016065478634371358896843102948920639104883368631052872226726027367330741796163487940941841474778521819430519072162430366248749408553402738984528686563885603986509807647976714935216048777239080131561944927742736320605093665285285949081088525553347254430700662056342417678971986368785416359013477055200458410610115517924207127888561489467277688332745942006407710465672665278659201622158936527577826570488428585983728662085812729458837479116851435295884645302911016001956835868931265222410492686628375128012437850330413419571731236078939288975420138715074782178420647379426577570882149524686472089174327254416668069136897955844511857481552183612365889465903900201719773900770354296656510925967481355250103634117153939511506056745295494082911253505131236255950789514749388706884977892284997902251028644918647307361051407906010082529622169981599354503548701428050420012753247764846863638942289157159942791428965924732691678064137293117812030486700997847529496040496113271623271036945513681910549162733441170550905679966626229386154971451927878598238555148919083568042794135579921241005124686507878257483759204463779100575022966341955461979466763523768176896947130707682489063188289768332437320491021544711037501550044236243232421525468004375770380943351409484044320050011226621812878257237758471261769977622581900570411609878122920627734618410260950037265162242156519363099150996900750743758540855119926902269331871883058174276771496885137796326700883503531035239083846544978443409374211826005833586856018057145410336558687297753659986008095253124933371533684529754848272134953444315024755558697749431410677426894202574465377277648867670758673427138697535514739812003557722092012396241527051277200090948056829625074722899074925468426687097848498063488195382385414635052328821727998794303348194859109157679186013934686916687255357706143262454769330685808865165626671027541374277150664373098152643189745291123988749787835481819872309385627341181759469414962260042573412214877417370940750333836682432479974719347705550058889268706458025066783312252947666308332397439636061846886060013429448129540619006732326546132053511968887580061241059214269627000456204877437047985263871913626568128139971317483426311097931841961319524996713932226995359975294124313386745981439143526526851723013385378908869204627286614610195425578147332232374648092339538350496050858210622349021076875366380159848769057195755361525982302987707370084615813781036651969249406172053486810203260011948802705182315916805188186943658045417155962216968058061860189591393834880326568122296045442722868301019009946154836423705961931876654847422736047429631734225336518214192441600201428700428020607950691169821089997089002076290223570838471864259585849799206612117902283919327777512203672008921073478191153840139965654007250792744269942430022627458014836041684139333522844111670614713633116312068733115680977445348632539417131793480558237861128163991258065984344618889797518779493779066475837774604150088217067340140460002539847319459777720473285090458669320169028062353401606088321888006004881974229704162780860044342720803271263565529381972632647395652404375791020754338308617444520943803915693542456964618277550962754283543787480188312320039327793201122853332700644844665649503346901813532175636538160024347585989980371794276063878270139899905783735942556586515932231014139332806090530009316059381905074606379854554445945182069531045818952601549864556679808188527274959667570684315124359880965977378875283791323463120743662120928423282145042815401690669485204778262947412765092471479721069372335286448837346841446038432262515584626019986682931887852458050401039168430516843205468758616764283359970313179243504619365857738308958198410408724762163866019857299416621547246483769916953009631341022448340320972262625174568461564250370515607662617003061627100009024306988538991545815018523647107624257587855890708551409192284414584197003696754701209791075783374506080973479469010794736608266397910188170363341864715179192148504134022674663825701833298045449663910656054360374071880575615801175419034790775940920827769173668797980820662192505374874111513347872279418957729980789816475412604563774328897870028636701029433028437710935828680458200379602568933793564873298192248648271626729673646972707452995846671201531861937977084580166577923422246200050115419199912130380494078168779487829259523777050019699402584838901178683032372375450118637806031988240801517220822390294098890896932423799653259450367824027026039654519480085118498240081543408995078012718096442651333244687820426930256187222670129133291937988971448362313184862353822429690648291677851589651592498675950914496479130527028731443678448979101126767501382728719754104128564768703559519686269441323848331262088739783039871585644771327408485204360565100249635345327395189459708167847248869144684397036154686640429992205686139783270592813946878510001820415045792639284611126512768332557890540540071705811254971886290470438946014618209085047179200468658527781883226461674732019169876337407837244778071278282365231920134313211614408328535936098295936227907873807165887251528192915903688727558878959615527419577877261026367394397543163903552935888853385131962157291175693540132152583930497565258206905005262158377562453432184420766647864221100000734379821225020327207795035354798422040634623434826102027015788887239324951200445262388260017543823725974122131668152844679498280937631041187856541121525113153874025798616723933245320140863117340590668425589064493884330209960793386105558711685354254217775346864845868118220209081579671346247809777523398764545979900820198162477098965536199492217258605594601339993693432407306946607283785922398017689472455563910309595546961959571973498698034062951451425112762699897016235114680472216574439948168429600117872776576413779327328450217402233489695138466469732342208198778743975588596951927703603198124101287074492307776945203341679380659617297592417219671487703200875117274939733435568010639358138753651734163184634571151797281052324937616978711585401513581983647924547428015472446622446398712256076610153513495788146474517723289816449542873021900947698281066664895473498241074005142004431687560267624397359661847036562970126083487274287719075127878416754071550757328717677608661052967358320008936004803036714919536630515582472622096698072741727631210197437714201537238625073329499177159016259822352403741095558554564360876495886681848267319593676319460048364025295908446816617880086250428888834666544572578844910744527785399871769927599333012681247203099153048046545269318811813204156748831414941770961324679607777924131672996080543669034815979813548021550753609160224151910386913390344506863401974725374477204820559921635166795383034779114962260754554957901185752013726595426999311965312719267893468799014447603612843239576519122147680312342240155047978954627699203211310065553551853900241262833839844193915237994721105433703468550539882378896623022849368982366887169290184288684657616459395797490907462252759359651786336383278715211703290983142533845279676894275805765438710882743984727625833462082337309668815482351770374120141419876820612017743005908875025346138527462790460892592004582747463102491832826888327360148333485961667445764441044408560392633535852555562378291930060659238614184789071412656347390104837518149782616125064340137342310971322692390661302512612053098791140607851865783784987450352858909451308575295076839779893335130182913866036703258880139842484523639030127822490620393665513750288785417330224636755505425535691201251389046069361255064121550346186796750961936834058237312750519621114908731628881326370766720500850063117645348199197527874389183848700221703077741787691247381301167261934434189494046384517160271655408460911634727195094739271290322629356567790768735078898931451299585937795634247300957531827380608896135110352753724005397545779360756740212039823558090698564757173887939765289411079875636099225219386433188415175241470882904747956855916527681932813036014700349339198302037106734191248373186954005690002878277265765293559718948350186038154967198253770978691735419894282955056775905581091507548628720838341324951874445729609357110073939836052429469863422655279150228872976261757527038115590943105733532122116568339593122132544452365289268702287409778237333220274306606616365611490881697121689434073056564555996553424850673152742401579403670291103949253210079110371631363525250501950114397338135453990786157635376285613564334888682912120679174999940437085631545876203886377407138268487067394138324258928870161808885689932420605423076906180680478576355413813713740047373687411388845888712655307113047172381257821359532971287134387715395079221344505297167048212684923098271743334128045854518111515405299253674517531329524042323200222667493417114568137993290663837090648300258520034668577837888058954608933813055024791036384915051715701390978864934812626061323570916492521082678372747637290525930604078286297816111764906682739368748033636501741667577826554127122460144456761858420975056321898971303263832009714714704211097183217741560877262731618672611122520334429355259925778880011704091153649315674218798892514450187203245493572085933859392060685556818683600275489719682737507832562666645688017765713140888125231847120202945874905199637642085473591858675952482857567164043048112426549905749144588180258512331169826764267573611088362418405190805532451293953221928603812372481377046416600161531369102391078450324340352938835255926603428370981075839719116265713849003838905220666103414765302331219471142387394611777673014325820425673367565782493402402251466915301197640097161283103349307762603804865866913199939046953915343561820226342963523473769193606166882972064880117780109240327624968931980938125457514411510837031872105024924009743916679912322165314249843799523351456123579846798429574590811883556643332133456815442685400991591890032529333475707761343081731076440167494295732324105049175321305716422870029543772812724340864328326688599059981291879665664709736714450339916022840760465252353242286133696046265043573276818478602632699751758168495333455234064263852051735729341478005433904790427079621095871788752083958934342490261530018946533976961994351329380033044209447293343634642847208472702093230890913947555469899328057590105752555362447115335677805889761509670821092473376890364803372618464054447194685948054903519846806896032990600371840071272625673483358777958311950658960032619054145661360485026068431604222623370783814882474654420569103435597800609182718694295469357753358237688428841930885333876293040043951630637194921276472805141086421374001805490723332274466574347732448170031388748282322209197548733335543983091397057475653422690161741978638611865175652384499919785930867440205056596910214960780294705155077159804618178915543055480396856781009953539585605221134220983674819388359607341568585649524405548131987679486919342942625688134919067916745482303834462368385275529742682312021476662624664637176012516410897449817866794250639973067533815795728986736675982631416453386067376877394589111849854907593409981897144788593455082404222212090344183137806745456794169806050759055672366097092233609435096084761202271909565676443530058178157402456876001387297101555379270817301401053122825901289808523156321991283140449030976145448838683524687976221038598616364290150013833457329957047204317834354725689024926440230144830833023651809449631487750868039873529619649142267862719691840578010235231423188220494657580125674542029047764403345097392168827144045831044914311962261646428468698138193594132807751835570672612966489514334665491239348980528137270009321513442577932925373891214179864840190643923093136203488109789110221445883519700641571613450257185379922943543553960686613588858570757410595535562990286908137508865824923474436322693602540900522335064391644936264665936338606176723796601055189216611014597755379916517133469116871044013586700976453282453684512360606118131858623914169594066043597138668659178099305558194644295421705606439293981960515145462408079206212482304272748542538829340908776210397703814687864475541983884869448035340499425591102814730343657820085275996556530116093921813985953829890604695575353150749270928532874775551299492450692791784025884076127440520548857252474537150277320178690598695831253588247449033827516459382601945688679593274648281484238295249633013440933347080736888126918384485094448890779516069110437902290938709822130771569819643046057342984162635074642977573906154685388745130231914475342833484128256839914032643609804053501465957959330224443765573528122129358419952497726097630878706725035219805202383817485156739123919074974152214414068611066754628688751544766197278012819330308953343101354178505759736769639475677824878604464335787143952784429336732459302503395255590646728689918270702656326905425033340358215400829602579362840221658072058045396081369933657381702136834416669225493783596257484348716604979440076961455292072126365742880110955684637202350228574300391776558756865015179405482387332443035159586445129147078564433479004775356126002798940696105027734141820668486722306339449075804246042695643539936989806325253794339954226010527388464570332356361587554787098240331470541129412413156506834670031626734170355618895847405709389243926301807739943743773125209600093655392147030519675907307136584887888121035259961607435368501992648299845972716412508832998337298904769189051618141730488517768544682708421813702440079871678473825830722977370705663540600229403395533106688671743966108728157361353736021454236600692157465006061590818225618094827119154050227617883703188813149540329099345790580402070752186380368444801874279783394389063622716617248330289523888825840298856274805986081544157267667009446540935810101245227786436308954860644121332249045608040824783053175862166068705718701982810504776414667229750446881951718631103912377754601782350093609702912262166926433167047981501300799750065645870589137469054267873497591989855220846907421719820442820819762506896635402403219190409678843135464176669424601756957289176162080557437087432387273544159764207701959106141452232613439732675486979491155168694411584875579528948811962257827390542890300394809212211522443953607584302323493611301173808061437586627057902463033464497377724872165935924527804603378899192440242106647765624681948601835909519400877040959080591129707727772482628444762502603668985713482698544477203117597970733395814779113473055241601429623832566459825848964544772122366722858367075513854369650184799525417341720035771355516459926291805901197042167623526493262699076472706929204624512857608405346252507118674041730865249427127709764309971215257536605886169851504771216108174191697853092280524450679958391223022659727457469458926256713153774391011332629618041952992909411846947140871129964355288073399454018461110327222087892685756934427590997706298691993987233686710801565356159600368278765494903249142918839857335971564565261014281778472467829089739513269939108323518498318950654805285754773296238362020456600980495235859311176129075236138446684338163056956470197086574633510418756122358074718030243659092620387884149183696815688816176682282616998598185947497094446708835000901362922084113607788283825897615003922165894746537665529637863066552048101920627002737799690900306418133052319777233473843925748203690721471817559217300550891298459960734970088752114271078160760922778049995440337032077060417048005140038476420878875260696557081209992500668836499658707467001541085281843667926460673701432441284737530723712970058127226284409160954595612233094896913139669296651180033986166318591623487484107857750454225652166837471599587512355261112562393896202717046476464966909802073366091168800126889199922494540125523748987146602690736238114302802059596720161386900683173379381177045434779735679892062661217644174302430725104227705078305022083000118051415968523996457069802558008743385634686762392067371018325618443797872304468088018081487395264513301510070285150770021022835537496918700748501561731447354967095917699679006953955406224263594264424853175665679902635297131750586916758698185752710113229810322700518553869361802772364205376843072036306739159855849747477225846615644986052204092738425386019227506918724773731133850521028336668042911399421006813524244810521093669600271217169071408408667532878570249106015387809150496107940675029383287647247604298596775524695267954205569365250124239965512902607762246672806018315045923829787828640759883646179294844043894591394252262528670620285725522635554083992251383685039401004935073468272027807658703115377776394072767486921816885052692215275634187055943094172539349628673935667766207336404598396429271324767087710139274585429966357472485835621073642333375772110003901761856013898004958843848212272949614719030185980735319523163610875395680707071178736026978466416758893615438522127054026326112067318480624010203259673766743733357452530568260059263599510431834819879473847905731407477613112825942298882807882624116071772150223577718824667807827718787026343378097686475140278201664267856860637796584040245304683129616819518364316298544057259090705824055075369029593419675701903024587317893667646538876932176653890608274974214852497464098458710026124366610142885180850720882278360821313901265638863381095119302904623521366526763811823132170135148822386863716134121718936779343601391058122238961310985641310783755190974007405612424691942858758133523863115481096285387531150558394242787006739558541094333615985904375459983806416051955629862393116024156560717686377861551661835914739050329578458700120526609534821632408846422077058235437796909764848020724068245968526490718575347013894712527335314318722967992258900398289540755960930730641180788863467501972293601803759526606386798028216915347083568232165049518642348009857582247456937913316348762102631576614485817440597612665997711485975929644086052295283338298507624476557339413865083468355361901556318524723791069993568909476787556878338868760358340675725243297368642191162996792103072880078972541242997299436839628173516121814981979173723038431442129857687869505413126767167421268465995184565995547160455784379050746743700867013042886897543527733847324908125143725120795975354661415587494814103913491562808619383699810512342746462706359243573715592334993892488714292846419812316749686418308680512966036098687137828804314440496422492457737999621170415628887729612528558200610713359020578824964466810541078968696245918543399990505107956168668069286142937213581014546422246695672581631500913695292088177004773708336989278910707964620187987126881996498342909505308579532529001384243445481190029162890940611328435278905421643120949185502224937837959370461548736206934359488756677985915853407821784693731465854321571934624416781635014222468104863857965784176556129240504754845265999494086254886468792673569819078736455654780953911638771240937317708263259078127288038757466209233334697277977692413582727260863120121584225238654322177118430850136520340642322338641130322577648124082255071588689857047547070840064098958892346208493249226701254762789836375894743060830824238551125860519748215530828376423059143213006446755929977239641163174305992431704599462093679594746146228053093588415178960689892175870232613621362332763253146789741338242316120927377040890516931064018802510028735958207216760794582270635708396554884220911054879868343141069704752522935007449682352900976616021748163289092279587919773475882020310260008361433498226287859898664579636862817252221816136864183094173285655444017357304234067746133369088661430768029782940030391496398222616513246140376635491929243188239490025459967847857503692440125180369164096021580071628989594430397681376368374839730323292635287353330152231013141942958052467875476099672327212255082172946544527438729557165637612095752566662866290941915577028879821612333141178654433194141866254656460551808436027358194157970494883817473706773570888725281592089063539611436718864065297699801483107404051784401007678842826384100943414243916409981605644748740694110196590421341966265282281663174641606533400167594424925902719303768679645784380914376291765747038464520208741991177758237815221243616659053723731235919112989844299844683879848296668479534251179976669689946323659838045360784089116973453517761440153763632525381034593581768352448704595068784193282746804394646522114055471813221884296431444162903887082466332458069245642816769281419114547039201566315856123731626417067802582647625498174712636695663102899201600326316628490312170838298295044003755258030734077552466017880340775015687316104784741941685521435365925484543461435798154464699464689457651603250297811280242585774417137569034876539107101312698963654022610862738435189708666975390231250608902210197391699821525321460062055339599814195418558458006037971997942238200820961665327336181339235283971117186931369292199057661399372614144913087493094280783010067179347577640832098639653658040482763200593670942559307299495714797337175962553184126215849346488402368404422500753988993644850602751699818160298460180441474625772830275542834498313851462975884781811365247021415097201513254267083899207666656908175115551926842491313653936779747141107681011260168678237029224589850269071661636262433945352329702182783756564151221588153073650649729015012603698415713956625859514841763994520331725402364049002884073136044268557497840242462575885231333429083938833626295767909684634903279792894511459601599274180876765663182717817630441719014605240713807967872928967387481749913128345664164554097611499272592654251206314765020593729458384293993213992283923402991977420522511486428057692444314520181332973834403270344785460044957389883659245860143825475026835660207870747461427837067551322055322149340687988916958680371292728892939182982351680113545421186063602948899625605269262373203250438695623691791102498531373142312595392598643706061908904475677721633435205648398832807800782570284373847726668302594206516059375358757265537787560093471406694196116123523383729354431655689927008802882297730590709911676658126818306699463645233385452067128576945423859028806622332180126834926341395858937648755037020440570828711413956817678654263883986713548531429220639538787984073862934221090665828209592512948195898415763776638596234914245919173568242964090407068105096821751296381918946909519177153313385728399308049610798793642039229483176883145040499753886934344637415894161060352098696467387355498282843193241141151529824933571541549099095067371449481439503675869922316955765762315436723364406198059443891307886392823348393692547534919591564730127701078608632901940805138223998465762845958358306863477297705531589263389704751967016066968488359645263193949023471062619978939271242496881129027585295604615493423944192978630759163140688058391005209261198353946512235166782223549059653003790055450597104867148520428605220914349151752119264371166183276381365477446201674490803439916743320980603674106825148685953965948375041258715354287476201331282947122446645161523852182829241253416783243517834798262649401021670631641995633210660896730975669682687269992541009665821589235272668122467481642755823130616602508863544188126543335245441944875501063567739010616604515851581548320179146721680197476261142076686370757337817127845094781560834242809713370653228106219072453431253384678612287882118011035642957350287573463199385283249957768414550456898314978344747183336167661894301285303475317245105019258938162468188384103063798315995522677241545728632280308619637109605996629828409100326792657218697136583374625373617324548479341139121814280474989232311696403093228282989644940157193090461584156544133564581476816573208361121847604273887584476767789662536837816177168363635193857336601836794023650941476202192321318540758983729012338102064597217093385540331772791263531666522449892913946917261581331771096810142608417793750027640305233038429344457358892458576151321477243917236518928925939151025141387594976997822911904215436950099162414969789268854876511619486275864266535597149736959503838359388462533438971206132232196174072112440093608407948527934984704777726055910853220452259283246190775003479985828925746500653385071634836459280191296468547239995985962562744004618648446801261617286377130234294006801911440175776629248824209042456052941020740204887170252282182213169394329081095753835679825393799423745626643675475160933476630978975887113105720049019194167787156111525144168830846567121185406186183422930000471556386092562690526187327974506917804343915198731814349616848183768791706235563175837255147629826838676482470743582271162902870077953121822617243662817996332987068444829536162498075938551664295832819856206084076915822328003073363739993198760952508536682084227758011791378678690966370224656034052276402345475084137096522431942254203380232845818129574155882220529451451749769424696245923588244820232929883540049261758226004396647205955698119252654456338725699715094313399605424958175324080034134813533422801342138028872864308328160974756416237260489288813808678269356056388909684701166786421422851714681006057695470534910766873617325894975056161591154513030712358139763542175713249291456777205982799134106534636266854495296842217338813171558632610530310850825995429655321577570811700419480666017016561176939221899372955358752779336429497905305992198148254290284744796426213743430385274854013107440348626397642704489728339444662197051866743231384113515245835676406865908039837492973404749406006735878541070516040047354543091584768322152810484208662684353081910512763855786918368805598513637537611534066874591607614852416616228675295401740862116041665179146807220085174293220772015958170732208130802132861795016006343913059761257782733214120321985857704583649581221918440110123884341715546264717687800914872367472421525334731415201916969280436819937519896463187698672809319932768671049420461510629230792999030861806035350386107128686037600747694041969433690936979152479255947683717347922168625977367338929160966611599090037552384133993425818267747788944040942632426975289638571700690630463080474209375624995188021013818635944415199064808715176007337997788979501574049249042794519453156938925681754824596161672930527876919354803567483666840414214322990383829177486638042723235444492033648583881948149692576788099904539442070175504280440009065582241921838955628504364892692948135895570991335760665400085414736064794316863714647299636939636116227493031744392130601689182702186167430209622482789801231522543747229909709922298927149747333135637443518923182950715035560513801671019933760076664816361538116833676491211045750985897777846976620542043644165195184687088986675553853199411698415720313915072406855753586102836613247801838137709464279909762856971256004106397229181247933716723915104803427750747257268260634041004865955706148857726525109764358442464688764897841340032105630551383233462527607756425028915756215639472280067823153466669785875080742729261921392760715024622961345189826858606750344069361922298627479409704829707147347848277310131707726921138401892691561691531647365885646747963596046937295960129129207237590429612326519965375948789972045057607771348519646699559764670667019990927308458492360256327996944260701344998962390802844103216582312001952603894449697770134712817075859383977317747845344582429380062299121052933394228165758684832251406604910055385821109311334016867634788447918966497473591316875082019029875335678340651275234522832455653547335394207633534526554279509179670582264795366882536959927950907056641554070441719298439493642821219478076766953458835298950512317741350146775756493168336288670334280739380841720640482949765449666424691135768631312424451650724731470095890492386258198689575026937967252658060256307817676160625109164432901645341286084865345049207277903751585797126186105112563605657880501082908681297613399910912444690219113989570759493029399955227117756841757606095716834542824468803290525163419308113088444181989628639821272862245770486029010162707149583226443036893495347984455215992262721763887532968470193638591515667648724663303598490944686612135655994790782245563807799911002959066269947648391665719593978894816793986750582232102535450310038502884803855248549487951939230094821955724031967377270925991647976391843607568853627382856466956407249340567922113341198063065710502529125564711800043964466686250327118863102073528770994730604063641747319891619689629563322448581998301792848770433439836553993887481194666355030788766565381390899669022824550860538945638228878558413274218833534237335924583345701833260729755406061719985287107244801153977848532207199681528826734600711743080416575464784762052754256371084894631865551913627890544057141138256888332550310668021713329277126948677583516024355776234344018496893470420026815367947936791340788805722321947237794071575843979515406906418477395076671159193510181197193958042060132891986737685809720945354242614016179602364466223351129294509955816789053451757559216066323564642752531793878461420915518328873674866454307593990641822924456828584561148662777207385380590445695568491532247190315388788467293418749500041172006238596058826498470187689353194445811937888961198030868252516850896999686380097024673132121495487113226242285468713307775876565269071333359544678076414477058343820969499473264852687316777573810903226607313994316953800750325618427089002729110386616981877250384715816970002477123417863223041470011035568470797566750058637225333050502080445080465138648973872196505040307471312430442046231819690912886287010464890084058172353536042346742584676135865685475117982702653060388607835772928141243836312252052165405122638032022865258452225806407251380663464430464975752496287881368619233547744107997508043576267957248767847249541331800084482567410403783535698963243222603729778538970751965285569361163743558531618500536827686775561920055502097165545912203550508584057572263090410242432425276476495087603206044356454923024749970540868073757310067132988763617224068990447492874933588396710993550217339189815716485117885082065693853398848338596003371296556793182849884144347968092856207781948807428360594310611307151470389683176991845637076196912131676631801933887966122074508611693500669437117248446870089718133544454124137738422254943947631783519442159509219458942695403231996423480297930312760028123360800195883494534210964670113778473129212947754531418111307355634083379287373666813226256741850041479800851620546416453540354081271970990814321864634494567236137967418624777756998953063532076635248612554929300506224029972668635870263828499800258410221889737019218073222487580387981609841764062654214484203513626341840711265006291196035016339682019685717459218731482483468424388367189418477825432592452023789029418105664634250858036941826680908353837842400200449440329479300873994217878414107021646761283246958759159015271212590822485959586689203917365729903993577427961901788450305666758676999199726416358233623592762861246174096682231794329405876485603888078836277527136891301096989143268769167345715478405601259565802746209963842751485703904825911664570222010793806667930385631182964558459020411237707292136673695872811170003309891935839800870509701624022293463745171385037141440498081011741678744194403689041687086613119824515398677386830482031683122982959718150794519990625463575083734296549944410498956670498672026873664250541881804856706181718934926056108918141289519362440232701953609313418026040737423901334487810157418746113230409032981896253949362712178497115618781897897635831849379619964800281372550321964790932783742369678131233266395231206190485813608075467790243195064732260014554890406048470765373786674983739611320451597446826485698684860988486992111595885035814497902191582254770756687850751667324805047966264580430429564289327237966984424697435339994243979914085472845256411350216405192035843438399892440406620485174372402491738121077632653390089710000124611444556700947864037629938233622364066100871663942496045733543060348103433130481394358070775624442638910435019285107460469351229934886205377807682824415221199834913084128021558993336563844976122706308556970822126085668080040611845657027487837420726241688011192726261956685647297167254624386997336880632294635386285929195768732632075018942693395939807991319659019968024796091428025645253840095107299527397090503888819958460453547059866813719805744057253151677474767360141146765814752285702012576879862581323341482661514026930765378363275861328265266699678956665857603505526392489497974120361179631501023581458273817884763489078112777797255028307894242350822188840188825112344387845121444403934003278179835704989196562045638279826454790136770797440519895717028206600412834771184344002442038380767620632626357833666521386741101306105091694821910891665295942889759549036678948923312242335338272288043722254809269090224907715339773583483876892886424314379489734333040270392967554329315659816062586358769428250565857586071912237915506842136800769565029205697366371368554377331559395644923672409854184071690429593062197494188115459719046396146582763394023184861544789478599385639160892184232457819087842791425144540921437589076977723847202572506509047495538513989213040869657463061425514890520861338955047725426986362641234286608808884515100208125164834775276098395876343236804295114693431599418442743067341230216221434110014821601239059066420928081626860623044207652558803509426513951225959979738379428599019642232885905948457589870454332866079509643082883799097544265279458857513205183902797419954707878432204381539006699884771166085594721373693940749806148290008637603187050461004475194157307381266373909567661998325656366782156131294399144861617494792970578236035853108169783637652218474030011691821298489718200358043112405187621589335631287160165535480397187783930944844062154257525686444341862406991888219920232118499381807279263985338748442872679522650128781886783457546570651512085205962994281400701370868405269704634945336302845250919214008202211224117621827735965961250521222194146998351830240186018818810351010612509687357129850339659320477862601202587715889917510207584921738787609170529990674302573956469980246353408075981428373654156625807398886290260804592206058328281597016723771959594977490364708557833297753459277490088717451545018260883153770395443065177709731930334035396074925140859002415376746262084477116058790955437514221152826906123569163454779910403342890472725667916495107959061963770370780037251214903183409143497658821055260190218260912469246964946848674276299662443083082289558711427069917019629487312607357214953329776486612843531835688360295022711247427887491401956105849649672235689362163839327532238736345408179126529523393601366169086309042044922122025167093923596517446772328611291002229732194539636535268062259769849111792856599403137864195931700438866258568093507470906107190201293950271188710558856091339741227217455654206706145705759385891549729278396645827258292238692452648100062055473969759182292011683145570728483848688353715925739629839027561967218862942707513450072421590336464941015153250233104549318274460235297325116395205815267519863158050332641803638739840240910221834942653779266736154414602018687595486962514467505112205653971236345726104503087895493611110115867413175312222939845604909215304432688946455058635058737245815371153143658011521496309986757210145926536008467853071932320805844966097595447511275356541864408862669241769450087982955579137429814317038235335400427780205257248101984397100674640364924913888672768196861842139053539616561873481028509440397251493249929527508711700045309192310104553780108355131978336991091288571903196978562753300456954253363153190888147577491343792895288034417049425013311853185277436531695449644759401451354564260588756899607151383304929134484542347063148575939521088442459229127696552133125555238894823580337889736627459518814623316962982568944658021004537638577799229031394415944644945059853621061498570666290820111075605223992021072512720295040737454919221323559047157105153253646988341059388272554573566057685330170328025369601508263561353191370422762732397294477765277874766268900485416178082575659972865151048539074677500969716692182779109384072272519517977287259588337453775712324207262061542668571200561830656907014022417403431772127384717883496230203760816549992147932012932512027146400440869667719025424850596904130263584966257985224236178279962147369248748021468905714809956303618605621087190576368010214522142230040423149132127569080495469938795150960517903661026326247841548890112149842897942685928281401751071432407934192055605523619069248499921564478783289650052395393851407589127036108704343441822098676632519527616790510441694120320611727546582599329616822444659708090495527446039253398564550045147931175347610749295585688852281173980500890639115677911644699172740678726031905988394072881748048012048759212950012002949966981897118323883164588067019807180751730999590550549042638721755993967188398949111658884954240042653863858747544057058637228963951890205227782656880142854656002423839419952779617016787703006547768315162310475922211197292595668393159318410919129227475750750354122418487680106356203991248807093224262935203196040047738926988412666940797886242062497257861598855693093610450150187816186164627214545757880909242142042684308306669666976971268212231228647069754775485693412124685399833273282875509651218046308205084839112110286903159835197890604663871789242638900457025314031807139077424294021713416368001145959027465352958631168439347575071243298800616792318158970767357122660671018491307202918382887894793171097572354358486188155854142600979920288415284542208531277118475592650335790675603872944497647825090398469717692415019243119013016317936603170515500152153335342702337604611293427793374644598355707260033037358106921617959669038486047300618305815454290008593922144007463077466108066201621843223212071231362058717770379269015462308609572599884558331961501364072521727978459288024868643918248932644649014410288758280103327609415321406435899074303974701310386788823155957462239886991240607245292933083631531390576455716034045325474022833134702542315651893155977325558235942187122844209587632859721881337294052162672177121067698589940529486688756231316593426430047329233737683947591743336236093415984151115100907697023541367702416840325665113407473111183217953542382929286628268245637205066994090763028600619779362361466765205797529210655821304021433351677248993130481992652065189667885705565247066889311554863809250678956999004592060492141549397533264136672885984912793367176756940547555989359735268661612866976814625371517401456042137198591752109108679793299778091128752156017740630505821782549124626160566309091013753866438862197446496824967541900125159306373508289676704708527969370780906244267109825081317373390687709984930306738668045371503343481084881438070548414084015997925631630381506585395284271195854168527347781126939220360264852356512203747292970071664390963748193878771478237697756022078558829246989902527282170829168458608290291247049627974908113173334702536162297304096199965707541981506159953562553005826314747576103189652753148588277697354964361989233218467505871148384866730602717020685412502694924272833795885500119587575182802893617848248700775799525497407456159103219165037695425021297963615721875185036118672984294461897763742917035629457647166790270343226442304068818349598558711186870093055973406539542037271742510428023554276215637756393560822459779448438529094982155539686784838931515419840294593406555982077497524769570992951663034048096565582615923799554662872109796805921126281095648298492953232520331004338936792087486486576506205971930421508023873061784800779179457726587782038072021705718861510371419075028757577572619772063982854029544183089170603762664503055783181544818630215095236363256022927874104732856270113107306920048310632465834372110939880693220125403130772004195839822782798406582828389551049828213927031783687024095821150774951447280573617824915610916553345885894082572538043388309603658369532330203900116535830215819141032465968109400631336616350578608882754321913487703143434860899330777968283303620717256460257193487790606451764718417970433876560844934335110601915116703024499304172006027331002567220198962492413354281248275727145964850948455874461269278452521476201293648025039495314556203825159828500206485947164966723654841503313708709812783216779231778261235891130882134049015356167796704391759631476219770940721097881184382707614653429364899164557173767974813098980156539401658517121918600941130022457227287595750410867310015498406581196861459381700326190816153301456302487118970651014454532632184223497307329482660229967860270751670439952291448316067738619529643377851985350901958489456720674528864741550799466667910535581360188136287554272927162857083409844603388815520420591435902192500209424824668792408508196693137721580066826559657410215651629515010409302878400424524636871228606456957843404265164610944314406592440738185825612891677550295711362399119716043979691404008552978148588237643684945917252013318100961646893957837723441235688089828663323902209964860050164042293145735007257791373425860190618967858711870878261925831939793404868635563641821786009598635322669561912345526958856134279937100439315351369691248736172279051518719097040754618775037196379617947009823390426068452719318326364584944582065713260673504330028692617124059866582661400313579481734376623652569338818440316997225633719739841883709928104416902497441146161405252892094261819587772359737596068341163708778601365227314175620694568975732260992943952849017206158450835277648755677834730388393197632117077273429504592404077166174526044902692072516277294916734387472303334252561543621236335787154203589962431244120180450428518079636026489452240735932980058796824643084574991339084610931145192870885705305368692777588114844283298922745442198974743995572419470568281968228157801861112047066847859299267216028152171569327708823252030892954852024205414025726167647952387153774788667807834233618732005557436004628278199109597048919350008400166923069415949373130879612020967616081341155952133859735702288665033643283533299910724891630008827283047035727904709160492701430519445454855891997357808131802120964441413148311222219325040289255289793926891003554962950061023204870083931753387363950648884771536543919337636947619760397398482663760379280874052664561075084916089169639754250604508840693990859325020857192828647062100147471148376029518949780343286829173348972557675554674316263386362753568306103112260793940860286730258886316596278298649974639135082948026255954160111962128522128402337953024119211492333315925218899413922934442565160947644956982747515188696380753554549728893292952974747995330956751841201182506772069390989624279458430829524108564072872086289095602406920718541204166726324254843993636449611618465648483473886322082519802432536257269346255287811219099538357962380569980925192685783916384502911108513055107011954714536560625183759286876863129739438648088790100700027796085048990729791800970289774390851617511010468800937825039538866896944576181524255523389169788634197739337353421423463648121293668272867029562272204009547767050228359745106465328611625251628963404924254157786802894149520167123462001872014971293666034082651983342051282643637399904657082219836363145558835958291769190095258411538995057218478128391960176989268033641143576608940897738018124170366723095919431862194711211245844503130545133373685528349196429715773566986928403520892877353676517246890585140047880567941301952426995598739380540668558267072992907813977817113793491662275771282110803699826763950525334609230064712719127031334017499787694816443308407243363719015414583212816582354087500457940790478177397518846703426815879827741464360199138811693606561859243360053962804321964881162388042538998706475287888996553292036349693122933062706730891173145370888121634537660478646299476753182349984248446784849838538452235502946066467427326038041106349623208961181069275119467551583931625443407715293205650667623761189196856529279128578494502844104404627328647421698599420840220367312742049486986654235207016266159839954399801989744845231990881814786921252703172198821949711591382482322518150302063101158616474895859090821652718053405386472910904637932394144321599562719948462281116879791864480088619183281148048829158025612273045441289117349978247829626939599111902370708621123851553250003644651864725429562377770697218723584517666881460710046589359407747150466092610874542570006526806007374475938325504074914290906236021183737363836601636851031392433144701502009903260747766047458973876502068449157742719440432419227113295078621549317249560857753717581786592728510371946059589769039065778996769819485289070265796154281383993346718180490289966880953982435636697558736885493700121033103033773703135577663448118581369199538291199323928695527936103715363337680428081664533040704865993493431226324122702044496729342568767783468186237530307884649283969996582134498118920020776090297295485250566035996123374065682401896046006310266167998571835237888529673170710360964383416551226878015723743333130214102119793097895115871381513707232354678448708450173056882307591627382356271099719683337128248938909635380611643835198956138410753122717005726441834128780220034474376013555250204335842156757355090588272421535479664355475182407718375832065548351822266900076670619453189848221128908376747940845726271966684069742573500345278824771130682815321917448374966736198350625123478337609656439104340707027679056570210977989154395762405691050275914053155052438141080542792769025809510386313472346187258521994895618038487088914208439733074250939885531200036270052153113750503634960627036623209645164620173655554385866027328012730125659083071822454416965858285325073950901770067246228192382897182084447967096221432456883821074277787276052046245564706865921919257623139857578317189089529295410094531665900287910730234303908084086594795171753196802967985964327270409402052297090353458160649258297571298867109905488240918717297557410453779875056391432506201872056934987482585220884620190452238302854798619395021249250472300892760582217198396779098517989000401717918945165759129221885199050846295723682386215265845988037354703364127919853655005406984313782651164927259489662741806072577947309732542385693170267901036476716306984982565671476297982434950514149663064411569886487168375961074117065713986937178527244233124466515617298921356908380495772415316246780512220231273029713085422903047458740921427567469947015167546997877886263534482167939902604238762573981677295559552872595465764831759421969619060680264789625980213350148918262419905846162923192882901651208261224855433554448085563109028143071750378020295787368945862932904836830765033442670763815958019783503169944319566816900904288449727673743623392599240866700488429782386657296650020422420702856629376335034606628477845479582662446036395784114491010538749411853740139834268062427511647808425570195462422621657625534542923351283133686334020550533702857240090040911519800903900113490395034198404671922270086271169282538011467602883745249672486537094913238858756206972099185529628282139918283546122442965507081842057004430331785166636013823222426163619084108242209234522660010507991417687832464753224128546297755454191493480664344971517029250678681410876400845691801051254886955974830929321412002878512351774241251549890045829674576902446595209383454414753124746758629047238087182725222461607934374127613653877821128772371922368982752589707195271420662887956171907975227834018810759220447043826799282645010672057982271550318238497631185210533267738377683692493376429349175422075972460228168660739474661298655031425173878306551715897795547535417012401766711734020085268157664426996470344665615181433298139846491046665714566166187332771493886031104967198283461802751337278016057888311424294677125958262154191423034004187079984944583804139602290348922071530751900181133421306754971035646349727025390392148737669180353883178089518973141729186993641910597464241712192059819466268065983037846266031890303593876963979355644931982754805216164703203708427341917681581046980080540377334702617579707073560234652512478291214254953525824852408429924637903794061962741110161952157400695297463406573669174917529988279112699030347082791910144219455941292354320053134756694997489882577351533576927775828349678532516453872117269739345302869429284641190315172220370252752460206602301059944906726511370671404719897432878102727623322609955618242328148977167153752701898414812346155960925652077736768987473479398383253926394620589101708296598507636732910999674431228265227662496806754377132764952282463417200834887282830378351397221176503359481442283209906247929531845658432697442274535188025404615803258099870553745957702084244336341462670797403893470562217015814136000690909247608864185327719801182500600760899998757478828824959666497219459792506891934785556428732423911874266971714156677753585874014032263037793204854556266574091837526432492598932997966740109982956546553364192179525787998585916300710293318126130568685738898647144227249497234946297583184463787602028217045685350153826305508042322748404983190738611444181963278578020543395360146942132036867098181503711615291429598762735510996863020000839773827228386877230843014983338267570248246852269159720053674122671138064138534779738572418659134000163445981094983118926565529399713757693316454473341690719408895382692099007576179415344614096200506058026223191822667009100146146929566145362200088846083364270736849075099636181770322465949246085094992570405718011294739220817161554264432183599187113977340597205260331712489798701968102624549388375576075387591462025860221191649129490818404471009405621942280723226728472199515602131953122063562110903878716818834531252598176328383699702825151578388690910443974966330578515393088514862264617559337333574369926993461104187644542275142560443643507400199404794001721369889021418699932836235134522033920418775469603436742089869495171745787090914799723774772197167502620371899738787206920694055507313119430492349305248138501645735818317892753676341088761980016863948207398899111319796131219324241309513876393783440120417014496848392553659350200294831738987218074044285818171710201100038877953986103447650737683001127054227235472151753143770065680731278387059978278566947680988772714740640599095489971331776436268950999013587641230947465480978929480788211605184518477002208576720986894917618852247730176618889270612173313711418796222389570714507790754113032712097072032261094822646677350091766237906319012546123827798003768437061938994945837902728741366951747344488896234887429749569001351508819391301888226172343494137897017313747364618527985780246795006120736755294785625949217290455595678750350617979446225033344125549345067491676557807349324924294024212957198767351941621672309196935621374048376330500599734075721441365978656234045052628253402807076195706255613303010834240730415941929101103528750322595128648441302149023313648669522695564734521659503277861883826512833823172600223755999298038500070682303120406654838195771230445614916157768110328588655148371078129490009605765425397652312594930704393753545082022117211313603662521311895124637913200148509160707340985505064504910929173612657819840977841859656955488709299641367033561235966179555906480327097012934193148342736507137371604869352376114887951415224405055473107622550094379487788825653155733534088880608394409494608579989582718783506328678756579211955648580257766361849906253083792557039700716557797128528926736743807268167083249354183005011795765985359664770936278969948472937493208773573769157078389527599350343187120681194138243250482287032351048935493142367288529442363960910541956826684594526235662118970777866582940084635391630506067835890391605365542685135971599256514351552812042162365281412064801642304353561311879059305606423460938549345787387801341187023885573617286868047842172067574965298985626835884074465649709041771933886663544566652897340789557566246023557935313623323743188380108153189242208050525312187650203980651464881986721141638302769993772798611797632325002032214639579634989767960648608746695522600282845867697002374845954080952655659719823302897085206778394573031959648702639341890059063433546267147140770107838630903723402778431456952386450413792615380862795558803419442827323817920569484544795434276479936224835066335315870763101973593254896681639587846055899153309426003789002211871369619662812422544989563759087964486205511311268120046060592064003555223085296873910956914758261909056878219037897206684122644941439221531519473277373325266719467617271859445948811045035563726325018908612675175910732490469130797233687916984957691164066363986460354389623101473305551467537069997129474427036107275521510634623608969944315583518685692376167818290120408495715463593769083205218804765032223360875101540385347074930798150318765494697074902124668503854559100735140953898862914496064121499457764031232007761214090093344575330917516209263851393022572111222482619132127865311871467116373718172041835725761093906628865494849652661648098440405818764451125490884531665838209773723342379610000502427321648882581371855560302101702868069055946501870550682707865577412645841930643899734361736113495319879078594671156180817028519458617418110595604158867241620960722845472221583886634934340751483852791634983245903486193472761221494301568593568881155553122836429886637406343558244922918463183456270172229623449926186117766935890420594947352569750815576137891151996772659728550476561201917460084612568557064101111221945489321686141677318872695531173254432120903135566933940882643336788151695898197653942180743978745293775284086681889286765864308270110465896172263449188969977772157697053278217940787527116302710005118246280827570806255902763245873895719070309915677909201870353216257268228253637963666366337539465747216580461106142338466956121236982486827516752001115369837725529563546595094805233460057001062310591376234628747035754432830507283722721427185717604921997950476082150811937694287525268269887409512008605977898777026025157414806999462785538633198260879156488643630384924320637072922491960408732139760255189576386129606110814368790675470214832965369961301063236277252499605049546516704287357151895266294328792592740852623469034589681373735908388520764960566449724671821574956554042111448409341662028769155988058631526494060721143254163958399556591106507157391462758051709428893809523985788306639919726753493517344581911505398196986099736435651591621444412316945415105718055506255858183812805792341045438890928502077368540251146944336959427660702309778193517655020769396142307658538743371451358432096948333085276955973941602587087922484781314736219993377361988756931170323779821335477467237732124017778302919443404355561262048598353874112565423469257292784168911532958312350456163264007693840486421142238662024259160330148549053431056077139044522199218692825597505107476700868441001382204256917020999260744817992029644986006629367024340114927864400212389406309483881162946298824528509967573737974969604949280723396030040225194032294033639302815150744613300706131358185508280644167309084275614186212050812630095306834300191347681105533521347598808280501650608656895135322977982553519801053991810616541624096182389857229787998806320790571450235420049249161100178689437691821707404869982462468041452807450372943121167765857797980862029380951732581977407886224743499096474045269029798950152117358760867570864115739030612484558132657889231761361653623216816456848338680432139887282000550855739427492885096528744916752109127065722556437442440389872404620618317210252304351689235627775642238980324847133775774290046204718108955470999989299799988437986165845639847960139154980744762635796725792466836248140688073335742801878619613664104110921865741980481620728855620053909849162088881548187386699910645174486257483066074079157800151127925472437769534329383707501434125053651586215194464670968285211458281063521185527767673123473255921102911921931358396706829676093783310423685640204236127523924312243393465212400693983528015985947524130252548474706574888289337893049885763353510050424109649719339830443164272763275225148801262135313747122995506353239437195171531013597540695070014234764340952078562293319281401649147424547992919607549686308099803242519730779789047733717922911744512995222800872750549266435718209745452373458339283593933855718797170464867892366853472761742705132022252844320321722056120950404401773443179197847858245600859940692267759491097530432796200519061947291440788701599588689823875461940934926342123520986227603554913494963277565059283801292654407306629452512339108540098466353809604447821694554913461294710083263998257472062477839242411565173882508316957773754727567618684560523893146497699713697744175637004895769284012325630300859095418339941740103733666545754975062936402524201680724027510068489671779691090573832021340741045104057140606094631198859264157906663949469456985038087488076757451404457174816297910848267957182760310399223330909528878443141459929205404440029486938934682841086752365854268543383853086872786394996494417009698003874636385964273732673129362007816734869578047889488446357643286020740646607263845948636217146800314905820192356590408136264526065083126268991227434299057600001349372637222915721604551780737863728981428398906883609488865688731768278895562025630340899168558780374010822988755111117336282793868732432294330399837375207740192082043848624258566702887227214551553798565050194143046227902341118314008568521509737259246005362015799094156097828025429379888622484634717385860466247438952919183711625449049233826143553494955350486423331221038201800880163723069258731492973445740720272497249474626813430155556646361365983867115028002578107495928502961421763786398999738671724300038450125939608241305779125396235669164069863680552284835427276442745006287237437923003458783592261370222743790914055798946019862053660959946189409454899148216139438837363123067435505522016939954841852299922643232085139796264417329457047992432404281459350674660242519753237840600476593267746893239125630680967308778995808263873260618879509371301426305330292221861546905713909123971152236117908411997499944585515984458685644850244915704418004042446453761123275528808519605284476677794558535031760022632920664596095264347497645338995707718264494316557864892242642927429944630965591686666406038777600679185728153653926838733857609879277457117330496673761580261122430559372684941098379918557859271392359131052983659820722531927487300576685528320843073643686595627144566613561430084957888441396988282501246186739234853838332315524482376655900399841671549982624856606140579352028033604775301498781924318025960318180623826760866683673844522034755092521226685666302502556599064540464659764361759199027241390972904510819888738156598319547846102043561728676233878057681406006824998196765625928139406465628365728978526929099807781731591196015599862871110619571643026039811259398772821194773593415159229231225618900427586995924435569208896599681244797026427753655408770216724385882488422245329383621150679957626196860418517023072691226443940771504135107831195154908205116088230739540427548031907169269856592441861393825462197725885192484009349179084420485258281257273106928737449842162195206366345376636469234195839634700307056371519556605916167152917953103099312540787597969666291936230830887182775517978899622587228741986443670607942657609397710626883365115075852285179711080410884391977018409317963894023709531401862570339612434649550481441224590527242766461194978871691472394471614320237527310718903344109685933792382833783725594329970916581242223043186299220844795287983819891747667777656972140443876618363727897879954785306251125403733167242283089491309551504695492634527148900877691236179436584381025509821003296215602874825327350986072099861821627893445884217480574222966635068509678053741012747985254221434542040809807295084752917355724065369478342621528198501680785862709717614000342822593204119096142894274589647059042979253318603414647229806841624312663330032467814902430510345992561166175845810958046007172597906842490842023425555587434030308158157832770330939084415782914178420045353324219967128343206241387551146754155273106696503203885850576881314725497200345269454678811169827323844482811737396768396167023720240406137106727180203221433576260005858880644895553641968916108654837110459636310405194049076342408825612213364998001815926823261435860812250008906077244129823514671413118296795806947571913734960908722501462107357302601607209654926613162618238174715452886577900385444107625301815013266429795384819275003813655468802269223328824174007385143813395343272013007583374451793318746322056159459934699839546147579943152337898033032979574402392370734452282894298896002638048518119254874394253203448010103206388644287480946891032858999962677969293459721068055263449585625682204556830062870914418883503094679332808465620722583553470174720827315657285098788305364963638788992192707032885370460811136241749808137885019114707876406630848861516476938207790495711308611179520137251093126164227951990871909549462241534389678896174226201633046312215581722726354266548114096695745342186930529186609441953666561629487156505607556770413355554190597214734746235544888995510998317043046817905001561408130978080939407294843375377889105982640679934849329052629896033922478253505918698441104517962083832926001019400544636696022735914766995385977108829589412264612012627958929431633310702546143470906742478602383601506828113215071562892880967838146652279091331717319458348804185063000962691882094790594325686846851713562460173604615788028106542867095534766047031314753687109226013099986188663372552634371981794979109913866130996329872525688807618928096916322359490812021766202617684249154349060263988400694400553975388220143979121113816228953416444892339281716153223921276048717384846938657700111201303926565483988029254803746738897818745991362679803416473266857024913735916915633079645150562673635033230287833443704654105181186950075388265006151255648454329651725489701871557155470804726597498163003329009651761372284955438659984752134951104554114048347160686781854537095891328720350435276020368291330723512067721440704236019158211482205164655339888821844259887468985545176290281160012028777725183013481866577356284765329239624614867503614980877525412754804877869431121705493332373514489586997525499961580085122512387861694772425491135693640898636316445257171616209138675202576871576231001365357005694692125942691194950023509330460701209746998631726742059965109424653073963534559425039912290456058076369607085793663620676239354264096220263021540872706458456088149229971232597819564066043303670758873946867352584758244813969428067414471216147410403008068853558753601972010896801521487225862334686329832937596185886143237193814926427983909833708433671330111114034432953873683243947958031480385311595728252727999688515810767734232684844362206668586291043185166446380309597074080343702468106270453664318257593366190810617341054906012518069635123974981743606521574532140508354629041158697680030267529611642483182789404778377670997817750580316569058446890459764562700701891846454757173917879925409925954781200914642184662756622064290774763782133413304623488987730156074764942918777773738938159883298509041299037538302010439617197134515211175533778933226861011472501100157763184205093615010652945336798602693414584414369998224665803520622129662936761787892864238344539607275219435282216201778356799917917349805530881447400543779304902692397390860378767776148569170661544740098907305705851124999691708943840424317096409712529829152394660367996242544651889420247939177662729105640038514621967715177150486688690131998049018725687889691288540533516569518535712248731547479780160252771513783513554023107974728428481364200089374371772839848119952870459058496866822041326712649328413484537459350679474695843117921654825756501755059896430808457321272531886862700228870293711029873169970230094151734166837532624387519712055005965036883516460402489579867811520494265078435551002748262328985789288557427923746339788123798545839179477827182235662774075567482658510306140704264025905190697417319323335056075806998759673764001324415056530312628805472275191148229593126307305987341896560058132005133362226774053880362128177600738617547191771291124983818052530706060924759772067617052093493050099748284754305240110191807792869471130259147274135065598577325073395366054588099972706862758717831926821556852611411976835289487905945240212578645937237701071506901537371868170102105848288610289037647892091001239492073209698463993453482857598610771042107014423640641598500955981003931920942915476499453339543605404533680501955272036550954195821118335162257608522596430833715303096283136163561199326724711012374039900365474388015781291847205559241508143080543610324911418107097538212960673071616012957007671975022664664487036362588490291751023261269909243449354731247733010636523738741543743343534734157635456146498546357624970245432116689659773348233776509125455264733546466458142541859320118322326722572174351624839434484761413225642342680622940169339996735679937076019648130371916217972087395750761721033338749548137910018839098211115880587421737281715952769367281818694866107669109079471859491966038109286154753749308923616145792684004222900594563545466162657162348364054720684534458022456918686347469500360274754299584637340331164925825340991074115363646109541399755492951821903822122824010126152365888543747879089151945847161749692885357562050175381170060735246635440842648295359002510125617131724167640069017246018935035690887072316244039807755888578099264457902834247653009970311142843945906858822330399806181784257789865320572921074915165138681730868071555228693014660774581830061772854120288990269900101789700261816790404893480065911572620145595276066555967496198454843953337940669496675670807029217686830607464550086602832405215097690056090922692132941242452834819610875928584250839999505681657546630858732647530263028814909073544151823221781372757084285046128850736503685342333257481495267825143321929818710182358167513716533780879815958933233421634374245332526315184820214023642158273155199325706839411411326349442807624870109306694130253908656531238188478518974697961244886551118790773597430668756973903580945384317018925237041031424945286990201681116688104811773850411695776715965936552456899667003555220211507065578823159978206969411661372807222963691609886553428272466845933021230826122186874633422798247535945411161632911162226560815846972716235413834661344141484912511614950694000611589236647976382370108346909926780066441103450393749294686205718404994937185290960107807002257337463582057426089983298467825851679378542228491930361539732121071422067950559641721951606972430024993170692125133011722832605296451689081753981923815757673840948890772685842823373707065202904524374218668561878782587582030265581073800444963515449512813254529086376644758582880891581463629713386356564013475782386887625037904020900868095194624044933702365056619379987865315948192943743075721823476070273911067751761000790604159409835870350553727833819099271704438578923597566612198669443247662444074240940940587478367738419278783353526847406529095828394372116302496454446537388720949901372696358185569448853951364957775217333744283692935610053169441971212121636766197123129711847626091638847716933873731192373912501337792973298700022988269968387374185596651453141702627817494473419209300927262628938566858947854210016689695691372439316889348657418956024429552948192599110270172335876516043917094348615290467400048827301329197277112011717841076809457825470266021894171911910608553496220109153791860484377567168237409880770395909275569957604436319094375849773084347266014649706181867863126329654628653491825988330754213529548137253325908172590404313122958361240147681749288516052754546958664715951635794232634193309707800456174582500576278432561998805363925872961921326637495561960179172850925256105862034337069722602019527183697321777759554887182257175404329093970718154461406782381269685500864641326802975636248980676820430246416601494689013430121371361308971388889114411031768562376344878535462693544790038802706357194887364777076219478694701074143841885965975453234755997894306805531537725200155963976243153267322280477206568865762389703448834428658643785069912213826071855973736814893033041065911078548025685567791789639666014932189039619637393574042414168021542162081862936590589392107476055967399482647152626962202308630496433763691318500294653882551297919588435532279734042953546601202888272762416982426320444634705582139410975761145603498349331559735825934254762719905942005885477057011241095629043983111144305622541284320948605745895115085232659438439839329959866276741854291256407054440362791796490789000109809711430068206483320104944318199153540762418924503468111427119865652527974587235741551317528691706468653251041507613458736210101469577555004521202448166964352604391493571252636312774697262506684183431928457385350395202521220758463484583658342669567010663892420018228918998827541408128908761175988313002272099628883830953102819976323076133062404920669504583439309092075948811336313460955234363737988149512861388661621884670578518268387505260752964485851399658598528007183513930143288784323435560681681987004649249907210066366112582025425998743996068484133667793230617743957809301374136284111102916943660392641134100594151565973795175653243383931472973449599240427563657419124163386679380700396209483594364283270470783648608922285390306771067306071534451159321458217661336362160921734952464592518121884483611584977788921337571346493430010196132952772602186874691192661890360533029546253615215961133673814720436554403499637362202360490708412906225509126208137396069348065689740493961218722776523639034114901582188642949114591885490173793426803183488471331053589614205160948218344697739412654833984319417519883605615066060987251370248893020715476907359305935522936767751038215613651311845154739252646331012337148076962048818703762998762758534714312432506035129792033259293833327014214153323999094052061823514250325027483668650402306872235654752282537905146862177954128728949040674049402808643197803429367046995129390676695355703696325346461454417179684287981219210030372906214740221701116838020855105616328858996589544865390806915400689989323587403571615148967893565205530277239059806034433518283915423694579067567195345310985776973312214332375505446281616763380740507405709223944835439559916144667561479254805850429853277899348188032025916690766054889493615227306627373060639479429829793120130693872860649412556427692040511533434694704377204173839065057642179905651343456821455025867682460759607957741630464971156422651749631156720543078949772458242536478386144766397482813426871454216529514988449603911615832107212755394842837299865763102375568879211944382560641579973041917768046650553375577866157121044990826420180078382316049325558240488972899138140829573668282350784093247438799647284258547206749591312931483297680196489657628229518508798330149293252651765387298874985842384590040095289954280610389906102461880496881852352707433807256615258053579750189000219142501242530711680762442116112853225093294071177321672191759000237105610929519163579361147716126307142590001121670711978794256332091313175626161547334518142092160090998545071618738882674019599170825918222873250309203559261885252005387653051905401246069996672964547124376933492310020798078177455437433649295446001118798046385082756240438420731106262949403273526674776016005628614823434167077507666595145179309774842925731698271003317162477756850925507045854822940134739088831680640473057786620500829870569387261593363367882731674366217635649593303004408164437568452358892395424815418859161921847492021533221910854857972777997187488364560513870514998522399314730675572571490338632872058508935069941024266017107232401510869486885596550263140989608270498443452951507817655587135372532458636703370503657542353099011602697306519424604441437177778055886158318630112996352198091175234385823859233951726713256413787022214630644370714128593102837644439296828700841982541139518837535067031377395993848913809622281141895947621263764407461958904767625930069437727388987992130215939227207735367621112741982751524271019787240551060779005745628757619704054797600667176529871238951131765045983866996981584807952664085506268237717466073405398458257818904348831857955699089936680866411414892057656437054710952216172337460252606744999265984979891278798123455737681772454173634363021144438477645555818973889241359968846102184363115319562190947484548157629989018609999251029828105603006545219453758205511420089860516700106759005701725562025548257183687400833946010302802112536162604405292185169792581451869436513958214469476105076218754207126497182064445523847072047905816516767565880364036872288096273043710006478036603707131369524206329524790782523037455945679240475228457316917494860052857612908289186516835331317087667423633265207279379886217620334878234066721900323776812644021360164144302855910872838296435957007405917815583132635925716131306362415964368727212743121858787110648775918975534038425209885918001137537257696821982731323788586524573814179375083092337466895275656460293325844751256022070239565545497834657086549040835289600372995574581669559029624072795263501595231899951390432425610760925405912328556775017435115069856942458056194671882960111105052547831250544007002852492501442192271302171675128667829859962510830464544000876856794705588952184357334136701395962836561014018465805850868105278305636658463382962182956450832689685885650261819503941709950976499285486078501448775073790208054527475153767854958104418980606827720676044132321121515086671618057563244690158594494678714605137413672470207802302285798676796985547927945932570290865925288314355143449980278474576362109501574284703714930176346439672642242886390623696266371718162252898190894974909135129437287921915226132700719824907126002307980945967036071688029275180622381186893290255733226183598202477588156777691033888674465224260874456845663420865998636362590503427697210368376123451207373543263356744239824508199072712140578676824646801319019031071828870166268107263859193339176046238352252762916007491920429484369753653955868023476546735770546913894074939873691069046397092468196501113612456769425043365221117077054607909511437409076331537905795981660169133943288893560914865052208440935056146111059772219640348383593812528752163259342508802177834228807879508696361699195617733774416626659041448436222644937044496824040295003191217723720700193230951117879331457958669710576590217234580746842364571187054119248037946025065050529357151951613185774817538605983783361483561993265972881232646821089121143268970650822757933182827893051352467349343755983930093095566467331724114847592576293162269570204838347946170080566262365683214706266663943580304261499587833609841405474203389937794713866216426113422747848367069570863796640662760148732638788314391861338593794385706626806883718282466326438318921714282662392014157177386802150711235270038152828406004589906885234188966094746144776317303902453824166262217433061055117190761709029925655305252945391865841463097997374937731667960635257808690879664061916395448531541083647064271269549246076701430026740383305285488232344137164061152649205286611149105400878823663966459657147092589017656884878480151379812079971553805429050007817389217311929299693003399738196083682448864147364306778476706354988154173543983314523455655126465468598217144860506758727414763604063629810998130678383223176320547559844299928499808476050884171120701568112254389991368422522213915234013905614180869445388140745608554331417079464489573643951268659778116976524669277869191670218639691677293562973531201858572531480587840620888092924870816934532019908780003876940683912979245964448057875017889997200592657240983007719190145248591109885238894080226975620077134655023326529072380296476561198138453828813689528100751163485099012150366961498283439354782433329267500584723921958330293413214718574191026147442007855051853034288366050352720323655075935193179952268588744409241397513696618377862931786297880521399660887648631759728275801137131708660816026638829628371814938289199436950877797876377379949759716395243490196599423245811341207564737589597997247111121611803215127100146651019716277961188730577387623615927822882108733217172672769401248040083232046253110683414531487916424257338689186239021846820482541113318086886666286209850979924699145540174436088991047355989061709444930121223637157636817947050167021698289334750824415028945480522861454070409833318240378231761344153267635128663586829502576505064878111563993167296424271913604138945970759677242170625713891553954459984892671391543457664329128867801300859396945654944737679269439496762006176265219423171801832487463453174175631737572790121032751875758236801459428833044381279662145562634705440761131527188400473832029291316315323599691413895306665656595302859870741900120177739491965987503459899041877155751936216734014185693748350946710887406226470291884705953627736245812164261128808543323719806896225693301828881469027285102051876831752118659431894496783746161166287930421359912353225769623940849107109627284354717241788608596309662359441895609450034813587749891691992127817740605212161956650232151371890337773754647320278465288123489683283988092330110242538415827264449657919260916611691135190914815176242407820722579568342496567932849461108949646340546378328675225840953278838400915868895701059907297511217569273435705239681483216347999556614831683181369111568318921600650228861332985662081869306572166343317099522199700900611896855247764182872425829774947025126355316146139874203281623539362122625225520243850786901172652126097790638923385780350622342654977519435393168693485572730030464545028051328529459605178707126045767902831975718394555091011251294097153629655846568882411897470802204599366736892439546541833574492245990502319568285547933992178531996916171575716808771803869611503581566022898340712628474738981816273298730137600642019738346098688212651051488011878823931279479399219243417713720820910093088394852652897601656962184384737379411257676177132339237238005973024361736156745851769665103642788564527316180093376527514922782821176677343301560557731316098696027581362703079168878672731901511861794217327775573232292142656144684468253235880857934881153509907947275017486121177759383335822709648576169277630622875317832917220411485239480577332800740212092532807650355929687201375712534923515062893340987373306064423934903452343753326030797216124495549643367619250909223978367226293208076571880089875145077617077551134310803449920255642276603915047635317407312260943082423690399369935203167253504989686236395137223742660713338193775456254975512761861779161364607479344824825945520235842426853978395614467183340797522333355564016147078883154377368562849860186410055906043878879070861392133023304076037700322143466981955827964804874193673825160845550194257142992601767547578230213186727938508546999510628213444397609427093926362059331883658027066410883525104649784858320434341200021741574018128736118662539416115049638921972257125773517665105182269376423900562431516781623271767616774426961864222972618768360402944865412525509408804230520836002652675577746462112498120461325633747789413731424334984892228522521375271642217195967645815596707631992932379204329761792113075134073870284541718006095647397411199121449741253957358725154394518398648774983069655046803718860019117177956411161894661104337464878642164830070361388923757708624065435387655924269723223088288676067623657948167218916432428070487594254499315150922392299045783654593509884539995387684827512824703535631545426779000055261980407278329272389426689376694047596829663823668193941984324953203217390970768161885715373857069055606020886099031374495595852888626816450967594433353890548119267479671555977816554541602683492289906258926756073434015311026576799835922303501450911611598245162743193575029101514510016566518160366796580494462175208232436667016918047578458426120260171771040770165160581867856189037618616018927432076843695575291175922753984961404035626333589459275572156932321304797955051340062476790354596570263263279486915097490170531857893156893263048725819256984925114226289390541727214749436502337192646824638644796779393287655888914398256528865452230313991421316620882100328544681474098863060936266601117551633851333555920351319337913986630755460023554086406511499412576950501525921092074103717543114322410817238898523654690932895284364807498415891372486774548616533950621027956932390363477373409818688787984360241483885858420751657634201162890298969290319031547782673069043916711578002746070178631587529664653641561734091736579684682953178814681212368750464328808401835306232127260533150731596129713003009925395557480669218538451772281802878055797882762063936086672599666433134360474118775133979769183304718954781761570125233905183979708148398823456233504134564928024932674142105775902134752272033762485368421364092135700432310812052688640027151947193261665798417128937389737875455601468681290769726872300880545540627592701638845754146807084339057122693442884464254484509014349692124864159440845763466073388637738971804702486928482155439995402415899998142234989858769085828377484605703996338658847043685587171610370623505418252226121151732649222805703242348878297458077371105812994053131755801821590592012211298903858105272817842408650252270597654337372633315496826306413732691488872679387754004883102172143613756363491516092791876641301495409970635670555619841671813001821657346160489070003493076100899187266579654753782673331668824742979993178747913552940940662368463129485828200989169158548040777218260717312963261626906386091996369107345115718977234608537027602134587146982263619582063081727375937494309054939046264115968316698834440461832930523978661752642188112395556851417466428759196192939784609787543566021548799173848634474586710674456669201582968678088055650542305183617373483925082710947256278610151807479539703178497734853480006655523517196060913376082004610590188995982694690534909058055416546044746785639169581359081694304184263425535071823815555437060922440768283089859106100613330740405076171811935386396285040203167346242669039100632010937691688860601226568126434159138010492295347414726334646227517354702555334628831432831290429483770969260747798319880197842074992577498449689643450181921427992508846216963339345460003705685827554374168166811770781468869960062749745595565165495264622848987838537390725779216455343189074158223807024963813970537647553466279796529741700284414687561214043510500149133822869893627603272201547673509242736989741619349828572141260547851621995750861805712868421812652330900270635271159261834728729327336610548150867765372837599119751802960260677485178968803533034468737666155406615408368937323447649710030817662775794934825413564393332672299067419742810817968606436838394444462428742567481575439812960232210377121417541741197267745102181410944797607757194003699944650469827046626870230090012566661031521708328622851429180384972153089771857417730919768310703755989828213471367741716462294399951102519037733538989511033183623840267718969789920976009261967559667301322907982008335464519437971095698171134246215578783341833086047061943740601589301930307070346440472399313586188545345337785817877648442647824227905378730209141164182074201101734716766091960089088596064542257296402957698756991380682732525182417740950011920874344875821098658836182133729188156047623382562136538586428380087954340803810904308830835812085145055842612695305518532474584885514538914193117248118858845930037104447194574218060275920683048087226320623679692895622827410893914496718016381628770955330269408804563240913357006573221243906981038839524447800025668683537356556938655816892959217092880307284239816262871403737480405715647650934233447287073372369535088575451482010113594631810557653676565916889369596718229996729581567780893683122390397783792036578577995346328969597599214469301299326758729076504085599846041391878334567036770978072578241888165462084165974057362965698736046148895706322498212133426687919162352856895094413409721690082234180694478370892996703586723836005741439890809730016427945358428032778421155018052980017974702119018383245122941829180740114507091406353539244201373062800591666496990628161131919915945926891460782115575357977811120946031374795869626014143185554440292877110496873762806855298687592444814515514907131169506938148128411193829169273297453479844623666873977929263417523323141828066819471416128945546533270744336954331847087995945043681993043850755940952891236695489151621414446757947008083136937299818156127915522523694819966867141600997632148294813933880261009056202574463182944039117407336758822325044794284258922988111434354839518258732843587764814074336907235481483103429958343786948049011389872310700880277308838245788638746270976307594642670219990516292032362700991942636611172111560283836444303047290554842881862162596471312806925995951509412599126695221003214903123116528364124430246955595344914909037126382378368128657613933232572133736490895353865269518538039682561721737098206877227919567769572520307876908986449258645166203906353920158512670676700633117951073094955975042015920434961127869345709509727277228291358339594232266104961785473150922911494225808597938572368999015430435343543739535893069356815828437147389786913735018122301653342846184589795858528496901623592322236667134920476498422430997080849258419825675422015254913756103583613706391181673558593153833455525248082630004808034548914633558983581503904882914650793808301795492548642949456634912357590824010101871534765722272177431988363834969532989246883414090555553640694629207243243924702054143419512516219190629046190674699198524447470351027965120534653134100717068803700654335452795792573841557595664280828331283939581426123568435868653510350923549647691138818103418686011016399816181259642588780168262344058453702291329330279126030375537278550694213427349855170575567605620248369453892998779786154521828151653730435353780880614051401260064109964857114415574328548169806035191303426324700941349358583315317654442879701132155565409042836011937462543668417469710505076307280583506441967626859735229076920815506167754752491986702693152986189428498580895996387757496588533975597006830566174208028659182624665625762513562838263192574143902689284429089084174923986164540304618100883203149874930341031945958604749672203418832595268958489122640191841891594138352517744621216381231472877161351926354700698291335322858259851041820535560470090392067905401957694413858366050668997684003928207102127502754418723728270494873935169117942020290544910114213762040763629444112824887509269474348080251015069483125054232257324912403528130737574335225777470113313681092547928267546331205352949233549364876732739017428334571691352101998534826364625001495634584316433743136304772398120897155049457693059248265404289826174278599261694331158452910133091386064264890930735275945384322797428297268562924487467385021374507575493623371306645863897439257532839518151620352836641360307326205614132989900411944711431871465282089896837892565076851831845998486201788701615976197270798176391970161091742143846038211292810659317657494932493801660095810221142401942357882942961036724277967100008890768242607374851246109756504972427693104516703165048899653221632047426518121969973599933347846086039318796701890758023577158403903328448447551779916356456265001830623387589407687883692287733463155063611382644483407596791353365430819550992364098404357343327325428550586684178631082148371925289069890609219667533065607803610329223380061813308169752740664731218703388782560227858679487813971572158045137923001832880762785025793869635970201858254439052807469815017594932453270766865171946271148986981458989692053872477167603443427123485543688750128727657025704753877015679277059133948217277638012623498814887673735067459460003168914180742599855893538241859887406590739751309576532616245255818939294435102634375795628764599096214956484155293374944982130482171802363858414856402514478117299473473479170164077949152938034919337773785852453896818483136981433643264421574335489390493165585354637196228687885544764024243972050294543037287591142811586103805929783952756460801915261695016772636275445476671138807516850268530546591657592359042543486556888137122061324040441419265523471383617099595649373461008401408136540087162252594125589590040894730969368597874557141630320491160101195158499075014522402051055359366753468902923082644805270893801708185362137945025412658547659850239667303556982473713182870246533537133065086117779536968144620290079116351565319885950823643534045203748868516888152491788190674845262956906331455778891813076269145509701395373045183523367687996029490977564392030750174411906664653182485711228656866288580818246527245852760323365598817148449426499305475486010896782398961267671127092254106986595678624600121557608322664909522458666065811255426212807691090738003191113440338280575491671105047775641265953616538927305190615435192559972567964443230859445531693705568230660178701732498706550743926806473787757746466047549463142176236736007992015480710323011287967287331300740084195634114064759793238625270753586908765524194655279555304960926886980680940064476741194721517484446520379928870255152608324598225905291823093101546360111338360586108068739551559126305835903674453191543255184032544645523900863305374951764890605703076181109291587936368262966460258641213635836814918131760083021909082173707503076184538779867349143546352293263830906750641245436017723188357176619639654103194161742698205734010864632414446050378547077329001275948366292064480246357437993098904307822153543920350889421879731690620348172122546594756861250117706811919709556592015535712269233578986331546029009579049408265526010876839585497775493637543163105618985106342492974108568914597012767963336218186001972909638586349030402168499681072532443094920333664233821042350514378618531460720313753830253337748631688286071060104683716895540476754587935959101218883999451967319020737476272039010500290687178919106945702292603177831904782638989690421802878668490014295082259713227548769932186101407034843474504639461295597049506631012074655329327694706968824100509812075655310271445916117133612509263831901679586148607257652740214194873940989772943937310627875562062309025326588347888612559876837504795645914895862390030441315650558283069656240619760130443654456386586230337797524411191848454206508081302306258855949486068080207023115416525494216416123581764634998220541378781734727942599475387489012504985919418586868756014511030838163208418221064090768158717036123216147130791975177488980144402678092491753056546138617238636464213326867722343222789888922718937384276098327018948898052654545844279549804924626385673462043421307590094715276654875142924620137056738198327626939354138953525978190056371761364797443826594343587701494974974911360896779384533367220445395703296616112163792669156686241628712780010530498533346770385663013974371231520379094401362863743394231843789405149870533923916177312828935307376973240177071335132422673490336927345903595292661730928689493776540872753903558743478690336453649875225769337686006928592392599254042344567364757911097783194075794219228388639651750212481116245501443913133107651975284889192704705728267717766162663631917250116480350155869609302796034671035082293460838044285183169386320280392858810425586459088769229604030546629044049057672004372048237906367591406727951347413616479904027158971706682806301504433740450314615929268018186687117574329147300000790442682555140891968000176109922883561019935331476569229678736738105790202011934272781868953964379441213791024501531329876226843603143112414501674913171028837096386208228629351816464428623747627376477413313795219966635625006342192096564417920225278048253950048545644447336822102601369861973703926454119909423139209171784842321766186700458195239696682464566754224677198327220078218780941530168738729887172063533258199520525344673050690059178997253957236196863037915485797086093652387390499789752038133116178024787958404142587435230688975341437916253433168952702672674536273151401850758223272960403657933389048505193683618115540094731394287068484403363042624575655596131267220622714970377938339280047404296843949146160625164234310425221725968166491996980396357407322047143232191942622308237173534505972692286097920881147365134587172749296009076217188426724715949713116702479970130817688205458151145411171501751614929633707623930275031222020478498851361498317521814116412953009850719361131621778047464092024298746679726738285256979680523395832158767391221320693945509341046851574325577205797084491286548832867374488275910555313016016745659750391332552041519432872715611261537403662417437409951124299467127580537393444621107431372445906584927091922913142725088441403221738068011678621595922437611128884509872062492908450812303234491522493581610461220095404628565400431582795873709888316752614913157798905424007251791801278917577512584871962422063164719754711211585393401064001528604229052032470270742604027480554540099929737197173834772117714985059756509028133321754753247861531817265992423036247138998348934315720262741995783193828914100131319583008608548907466456310649627923208240689210332319569770949778203609467927829252378659492536872979527864161117360393430743376161997386333268263991009021463301910585460053488736434540840916402091807409730624850249873944910099124049242782423071580090815166640930482630359062327171179574033411837022746165022100344114300815482298243207466710768787580271725253016414270481626502687226299569834301058172405316846714587007939909446501403861862731660063413425091627179559516874977005686842443592029483907492713458435436317272975376983793128595009220349355268829530558343186162253166530095892790952954362903801128282689840197119214158763815810669080974605478371280461191909092464399536603249424315478463912872227041917046170269169695164163231718470828859234325649982364281343750382798548122218081227061454019955777765034800179055069760641993713528311734767971049852011278990566353620725960837769092919290274277312335723406054930800104877128859670330273767953495891008971218258887782192972952711411648759928997440281157823390060497930061193161789363199293618985999706408366862204225528729082284049872978659000429635247874038804591725461611146759786543281670150420706300467989203920195574828292670904042228170423123776303865698921254986985000644934335370437523214012872235439075200950659060817432060335260292289249707983414752422048078246939984776827451202484653551452031948948844747745762284373784900279169976336648109262879220338679306705811655493865758470307412868415956073133627126180036168641160740968948536872445621702406545445694093916655753052881505905816255443687396831308766642150938533910020073468088075443931630405037325808050225540572722020653614605542706573880624744862640990672288782131591568102540717648007047847037452157754378569593524560532664602960136526406672037004195382052031790963024348478822909432903717821406728108275016943767870739500649034557852567498183265227413344201758321893938262554689005567215221147862383415101694834286447479726064830728003530106289090863928095287105487458533731389060109440327292080183296296331593599451686984569244219750745449513586797111218090397599336976845671874389677754932421916269604809888955526401110542949050763593960128214982488436780090694783261079199833872490956232305228705668017651422144759081259251519419471535629992651286768413584086182538434781310283964444614990593797960283701875074459176991441471381868289469058197901549621055789824348656525589692971034615938295675100504168971824778620046609885100185733142952392277794092339249656429797123876633905366073717581753957882122082343606584458726726791869426186071382920286159087680401528038446066001888159718353561959227327910056326228196992438029660770710434290940320775274203393324004397636409282349784556839304277012395535757816124966550054083002725412176922519322663088361568234772741058636771571600297949450550085434209739169703156157150584760421244846483265648844600851265544827017175862542197443416231605042609292980145775912465317082532423212072448330990274493917158229161971539033108167125590594252253529678997917496580306216954071099169818905268180054475503943913660989812091397802016370648459119887183918487517838734829876500647260950401855524723999936133484539618424288832535872083579515498734748520483120180182587028307833344048498045079272910645907547444733851426835312343704009380435470792978248346744901547264526196024214878750759346048772919825281229691281403768493456121853894028555616100925080909510297165292797354856078239754944268810536821194506746723189648236986315657964467060979291596270645553772241855433646128096447217518150977268423421040282454547757620398515320439217052928177203791073545991697990004901710637944460113350763334575298663977002251935935943984705012184682648766934539826497755835668389435544936821683768279018541579820782267225984067939708217368009676200408179343228211784269667771944862362738653676666451976722913015961018722920176329419579752145443832166486821305920277663775772666524776902396153529377305417851263337702312557047120240000220827953505079321322360666831268512460301288176502715099118369969052143795837537623367474149360680556021834176359439408600487524160897898353611280197039997006470693949434629342758855643672729283646958526204704039541800843317532579900637057249326384707570346854909958719650529581774143984266946627473761941332789072255973870820523055044913849818533483119752081935656298852184749554260974236100118292759626433517652682228684733976215162023513401919125983614973216755890214291928013975199794914954635897571024990502799207794791246922269579261665977952475778234696336110098458285486289466140119084700599859146741542784668511987998848476425549101120458358789844802568241257512267922909457074264013664986100692123646387583431979072943302828001672698152532821761860544899499019925908847240819980864988034642245917074387316163497765861075682661629056789849409764394014127041780461923630596013658076287687010245991434574062945500881762605884949634944370710050953347085166680505318978248617099877878147897603988599603458887805866527458221577534879199489020774089260745323348568617974841709874290319960526413863829053905405363263629741080643134841225225152504750186924324693423118306692802304168743654312729826660750734134306567774745792817660223283429351949335311385430385481781202163012340497425893599806543245761672271894739021624225181117133544714199480429223532643034791760989237929255535954014067767044784407346740833605218162277133381492468672247005518873716364029282429671758631690925304515414733427702747059557956516251340185733983500359947773929364897995581283946321447993467880404221029507182215031800196132235463635375808603692681554024734349831593382071979513225479347505012039745972347186073779368672210741367192936517446640644891843863741715192766626212670516022837671280121253343292718150911473624956859937963042007604002772405502706372045617557183251481447080457368923209292392656276043344480598427748520653590907857241641415707835014362594528451270505366663531727801022867415739843524896001997070628278268252259604792471829257988832635642065457873339763966629722142990664327488520670439298277315444270366409456026287919506572573337782496859792011905045857090986227772839035301829931836640336436706717975346756720555407652899869366122682373794416472540844546330043729809196043339410504287346791939347677332626772576137625517643946364050049291084672406001719566399398539088782506201235580024531391394254923336616647419647259666504762007023926311032485216422900824795800204978944460912085754706456660210682053282611897608727419316651045165812918005143831927210482377657891236533598873509706158527254262990267457022635522071157758756068918607675199884642876822033474638681418302629068791806565022676789233019149160700023732348106312431649254035038226146665154148943893932671577583889827631162583022387545126684566617483589906724846128583591109178247398400074877153814173426982480276403675569366010749179041754167186849312696709913340927975159248900455578725702774346671065013619295111419755424300983072058900707523229460051493393705641173925707790998130549562999294626720854879195888474125644694723907975449615464031984199718505676816670251010146026591591352208302158150448516025098349231523671707222616236588647412936028217667221406604626720736481047798821851695720628494049291099633824803985844130079401718540224624895746043248039928932182694892041449724624560004979216330878321583741388261392566928002350577678799158461467447444478750998323102298145980252562441644409635997687960791087685497159678429657123038928968900522136962822219057975496469478569883861893376224453059759784437294234236146114575291003986955812894156105004212367711616928775833618573250033952945597877022388609981963600145935507005690024722635343236557049000259923003774682069365973021589045662720258270384433237238728859468271260497735945982346715931983551289040260715944220934730892733548047698446402154463809872341103728197142484490499690618972710310989432700308551215140817785435446991216431521255262323881945586726563280928239602744305249765634971029137122642917742895132435981265153816161523315303349781920013794031537858267193279337774769864326265890425704316850971853299552493240117246819843287482728261160605468236570191807867811340951600181072444684331738091180073650290617284795019046705804809061204004188550138688883733432979279494101063522412645824121080933248572986536114284901515073041506458304933291086672937252704730165605438983992429161635447286662188819960895695363091665065658032720140794687402803652346783923787101047540323884967732233970182426901416978106043644063219303203656919015979309848532063504558299641391459763137078755766455324139406203192311469131821226466527327156016536321576493356320598165637755422354832213577310790892278713922825998069423859441999620152308889062863838153621097577732258193314859686194130975575553390287936968621360133299121614970502705834438454458538398937378816004028947938956137844126638581291074352924718730938677756007508539265255919546513979068831269462513355117265277003612128627801724854492265824907389505733675160311014744230369897835932031541158438223371292442014265100925876318152407160595832746698346706660429337611361432732135679882108197089700873850919067945382679955380907328529970255335162535088836217272137917040001215877459221038055494316565307495593102674193403521310739074365795257545038002060186142266761616179489779329933211125084669376333522181107451692554274893970515077164782546345105235833626461235449199723772324812361621694858576117727031522655982295131251938378997379059925517123100932741262611426187191243213722719056436861366765951964911121377155359648027922029662646976021468764604697205008004397809477313373808492081624949004139998291745070221722790683836201959295172318974552768277253446713791850862241761553751885276287785328204030955204689112061508178166141072043098201667387994285023224958877230754818919066664334444501622314980500436432945131127668733321441097703460085147422550312343081631946245865578597516400383024324813434785409883574690437628757442198195694177795661788020176965305389796921530955070094769824810150249855955295476987716273310665290892137797375797627852234007627421801692429917783981498010409247749547030005179124201212269090910510554165177421355021387471637658247719512522246891217253427102935344578846263395548057302410408324338459829351095403774466414791199206840541432110397539801736461672772841339727716805885728164295808244969724787366129956440316884041062220760601259147058913322594489613452662880013803654414313545788700438729310950930589375910046901485122753244797789980046927722703813585652947331255581119613433452708856461225502133430037272838691127163020881728973918732805468934303711287740887917827684347329447142905074163985537810302061913258042449604359139032071024832522263996990942164095245695213660162830345397127662480616551739452655101659304801671507473019234070805224760197950405441318551826689420730364855822739086374792994045712411153590707476264144363783360446155834855753036209281945023820190712747901878723819470375508278359100522819620121782372111110175680265052453111323726101885589245460196066847021712650453922822502080035207652983274452223888164252811179016798662214302615532056085439634343602579536672608932430746451962591026156446288373648410954647862757341373588335681017150573604130405071294408364340377630570309835613552660779455636486117837430549491466114286113610966103203383542959496961184920924285586800959267487452040961662442742071701550328115776433289366549903577987107320559800986429772613802268871584199044683553078340517552392396230567933155885814931820110600223542162076403831659699699464251913913703772170509490186595731111262581128520604035734786772210221386845032679157396956226354655459001766676543890184667451507988580402367161307371009485902423904213321566046169382151097185910310298829374506238771436745692425530805270111824218933594027495735942521559755324710511802381576936339277303190938858143984543943603416675524541545987259627026987328993197971008664322225592689478155579991216810358435920807722483167127379884088923138408242072565880641105808168095842662631982723029562618508676373618463963195170314560112779682682316165983153876586173412820795453774863250566129639924922082382041112822529345679182033159313312311919879390440531518077137476831306819207284754316757172513812203631402433237191301144175173104031269261716426394741377122095845001898206479634390878866494185315942066441864666541401804055401007055717118159545880990099723781574203066783616344731507808440264509775351022063988441978751914896262666256232377157387892601423733361676175440216392667641643109689542601521064453435933239512663639204750247508741967297145015543916971403748357430239412661727308650071959900885028897656828498830285885094952120825642730720620255480511188615130517725155636811468831776716748267335615917644501815595660788737356216409489288844191371945940061538254729225123526618121784502531106110717644634347501930405443265718920812001911129903073814921948747490730153998233136658292459769149908854265352464945904418912713070905519556136031468633612832868208884878407711661864421670968972505963373086692167420455056195917294285092041740975001863082344300406259095979156227215532909555063209393061687794631766204598227183190626482669434518987388213635396629444365608859830942815763614641035929478020709279163277137308201719622669593993190562152985478493114188077502407232816478217674489907008032540829454508909844464722561370162793315095436253547842819893271948290296892578532684222963475501608234914376264679136745727337994731320735038608616146525717578093647970369716074793516953121841267080875085209387437223837860463555072331514470663379760259960185724093005028003461156025104812306896761448902667034019283899919183048329357432950431611985534474912520098982485830818105756491889672735501228458822951171542542448303452123055473766932579172805083870186073529560327865338979476652282619837698904786960177299712979111511757288584246642465439509278711762833882069968756337711066320189551990672899675987933562554292086636843573314064811242628168980037776446052011772173920344770804057469066316153550745399909666100381371993713912546321418980222396162834016190487444643355526193377731714259472898887517260753358427476486803971928037198818729412486008650936635885839677809823132869307488448391749085149851453540336054196648032588905839075202673895091870599813707491811994481258546907508992458698101016632706803481698849644477853747442240108261674569591295906600956543391113356597821588130220532538482041620764905402617346815797967119992784948560026234522299518011338261286708651719772543211146485679293166650773274801959019146766173167408464264815572364388110618461186375271301772589469684240116119707304850205378192335178745806952820495875833632313262994617443310751242450069758010517567934331789475701303505569348344002540369657753751190510319549022149302777396407898094705751418747035131397374150229952825392904839427031850446146908796060727544536444507505182207909333473089863185793654010787050039458874281441642367519397045319458140512524021585972244419376167573368821661217816853529147340358122621542016132246201967868434790691771617752167477543905597920448174954761076592385475966292248420860091955335602272622884974623905601148790343036339663665275403457738634316441957219731404972501542583887639133880381503235890170328912635177799839856715341103455938078590839992173113317199723852505703979887667664711899519490152831807438259665550285427435031704234322259827186061665415636696088959414497387631202365995978352351344211419764951834334290329693450337756754647433654470698956392015207973127241741177850713825281739030979963629890080628866867753580264370809318714725404975766762778940287897561441806751484324756311492508436616952838578924330232955856214080375881542047466399675308327403252881345432314987621323610583337999030790008442238319532642446448730585960834053487699641016812288319933622829949017978941337793708642798274531222861299578596166263192684579410469594094455391267527665799984246629119329728797999602426010028645768739153850158019097238146643724625099554690237452485210383620598289746980051530071783066283826643320734818792114699208889617774367620823044214808774557483260011780630831768191667489855005450119062989241728713189899536624304179310071950759565666080805366992324967821081589941174985186906701072669258575417307085893534681181577129177593416959686852071691446801345401406580476437069097128768945436626515636342589502925969860842678661592724427721870867000752388414213798235524475148482596230295124538681386446694540815859844951159167219179529840746487327018507882330238924188349207367021107433862106751801890049203830724936487164818036523142463667203282155139071833544632667206583228900602489903626460851700269964483447151801993336136211198907840432827887690858885652707319729985938491266623683495965886172360715905877408541984973425059278960113119122143373433126185524270429069793257631380238411661591599563166036306169328620634554948161892540517548395104336952241472272948759909946985214502700850026160493631860670701022501678311851602010498295562806501200333928425985299701777991039672920721946962813252228373545904320052139596127526866095589523601845893400462184499087286841781124805947062251406475503342470487998790020879501699864925797993658147442006578575162504243853663092038550295905221251631594541791855619578834121661304197889000241410524051049759282143942588348248334163817870320018797725000626517086003127808114404472880838539158660174592658382653274917417738802590805778784209732914502943906828733656058776852879995182273798645436174621025568998039184773574958725283810822058149912460329027285618643894483671323873006627760158047963212482753316879089039734103583712313417735973141344194842334292074253978204217200497306433034908830232628976815517139919095796388315584854458988795054277958705449630260289548525743127764274572936224812966658746700171309460338572025191689081068882786960644677065826351359276558342349090389274845166870027740232336675298681384905588890307691930999060753362396840552124214722200992085193085777460438250835747205442223937279806200041847336606661147395040949602029662452665561114527573064979001812966584827356748594250239598250987545007530432165816642586510192930539021441279077179439745709240843849646525663251658902203723949973938040427569773816580657082181918057478786262036489191446052032468623156401691653959240020789779001172385750029196596128635970592409683583837644582126054448432899176698695146940068063329789596429818058411817128621614197502622116886310674361632787134516905078518224423544662174641539008978357275328407902594054511544181279913584676167966814444555148995272113534642531392040167920474841467738523120419142184044847029200441763669869241901318690117980342796515151236291471479014648560707228911860970221658329877549527241197628439127097521307076277498488186983588050797076404245936224404899627445533774756174926086813118633362341288582817962029038355224564163831138430676957050825012967740424348369577959676299904563373044098236042506892827024916069121871800605301745296973797013502080474094621662851253205213359540175186336744435189386298213486691400974241789983352168320694161119088970364035048087928199469244416064954144588835822345139535347414287209443705462428451773874524962933607467379178510093887055395267061443814653872772668076955621300701990998632663175255987086984998252336258905320195599769300431134024849909995787646758235531739480665738296959949336439400515077153233949670251890720710609977691320931338464265794457901635213642279772071521795786320314753281828366219066764193051828048462011801470810529418031684807098428979954570787433881666523060024032813270907835290564882828675478542526606137717209010921429287312519584675900888344521272147768001014428360057780498580510507171701454466458473610972409740099537616607003960153830450620099784891208211821161665135180029170255346010701544372668333775154446330092946504755655969501491997395421458782930690023821885558660918352395368753620492394396358542182047401362115282868483099941884905259820958573549174853024900528528679276594937485430162658278853082207424838187420664259631057290532297312102891613682582231151850995397212474936867130687266980416023216576559304260592725757904826757480822171608840022454371947583568359062785794039948714878594652510306333537678644414184139766987394756379654808913562873788117768181221406419221879334039406199582480529048213199644621692793424992223407547237434221994410164210849425232555805095519432517880851764605562960432653293968920332163130685950044379468252924366457358187930018846705627845593826966809146549731926676602872166980883115320655675910892668808072955063097209508865978580427521116956409110344439849723909933868777964340055425072834092118002217456780808914453732244836124473438674859013045395307187925881773802468077528396854479196867738927924533830871682095922841370891990439505402386284436109427923274025582287352545926108391572358496475356405720929285461834174793433800588300549340680691583512670247735218283055279238447754979040033287307787801700360178034411736753335286991389951096916673672039746822194438811932629442567815587469606471444696393578483116117588986487771891608723358704065780694903996509093256636457580334074677563956914421677587466086397059982468563667287371568504878117903521718450578007959272299671103639397373812913664617486801609490709263967618320607008376673264613134456341636952903681711681262271516321896876495881122897804414101833785998992641203237030058658975620268896463769148037532204070884057661964582296825284006232525510533153059194098465267305732463923371375466614364097464184836077175714093002959224666058168218314819948763526340781926921856576388445544437962292802814065386156439338538280437069505030937645232413786578919896584551020902681659186147208506815624384598185825024530116749320419791062002211502130444068810978600214893831165984027285520139714808575012546940424318615875339349489305265053885510002702635249552343859928426399730623346863412178801091877237490933987151486656558317261397847380819007692011939113393754632619213187184189853436457919250177950621288439131497040143096459826308470483562841571845505314863219967099957932305136528275701825552943170307615497419176232220125931990221194250095303132243016548732265717098176817626095614342453465144783750638428072874516882206586239765769143042055891413045380246755054197667777005864865943218002238995993125589684461747559558971325534651475673400121551658696149098296915697905792065837647487937274627069028573083900559200218457123675628885958732642640203351306637363312929839707275792647964284811382173027031904784729669446521457184619089396566559655033247911866696346154916538311259746699628832781684015218513694790419232752025477019731122631984469874503829126064588113071388924325213154839525023339153580493433690162642730802822304578984593328165537086504345164568488264740736560570282311561726099681674217115510932508493448061701199703929323499536670486851088408354494425788831319385325723688920467659273422065755370447309592261501262513276056069436820045481188924371817468006724289684750634158600509961390828042843928137621149377994708966123666241053872734752571220785178636661576546298659562913786278423291750262762478920216340521567043679558571427011286723863540403433472228353626079679668909068325530983419824718606754411244075093879196861079625555826409111808899447945854072974269190495353090251642278129982521879412291083103234361309321453062702774169666338028806548040542709681560724980828785555594542456823305253797463803734565428362222773095816907914920087534491027769611644929652451527451545505259128485993785592343654809775026866416004815811419986576276788377815645517256228798883939990407789477984937746213102022551723123964380459874592802906187716673696562552136617083498054680285997299836115993780398264817250408835667098208091739088128707968912925906519651381445149135950338478859087291131965714770470781347590449303847768909331628489311993761181472291446434307018555701269530414331303902390409051804578673265462214469652304173260731234609430440972332942058462537492364634704123114032889080635921665816371506115802423888161532324255166461368319294397215158639083527897866191607340135991431299416390908868229391194138092945238433588132216109395251590306803442184834211883832745151556972670572300571639040442907336528112163567288419917777701253880572871815457438774772063521617364927603673697664908349383097615684496247428958498449036659698786977784538006684078210063949230162916472032380195828553749946512656083750200856434396374824325653094369665725708078092012394177093983216805041913206338794358239787578092110340926357595100156739858276778717230115332447108101383610828106801887099326000998281247604172263654432904445927070001714189083859542294052037234887100764347777162855625990935052720589568594915305677673232757814689500750010283273479533244050094305318406477775082486825092303577321527784982008452256268315875506940542059386251433150569880798589881498304564471995423519548959115238983745903876918911441972045422049421341872273593955870446724981918201026390596428907571955708653670331640676995846073313382867498744733796734186186200504135515891137203925038506721959177168476918730442391274194696758236168132448152704283412618312537355447923874896589749531169463014630537570667548771080278195246191033404728681745669850774501184753471058476943936069335211994842952070817767761397624759271840130561587485468507554061237528530193578864477894003260030675931381440705935601517242077972229076031105638439902017378268121173855667342223972264402036261736525450566257586074031326260505890545614900089857058222571723668814950668857630978500998515107103245758772205835026020322644366885501769178429192616861307504827724798352936230919933433035921801123698249876682859496828617995983489023342727146606880903630048608066771211464885657121198768188708553384087167473024592243929390040971165196359999996184823460254787577927244461088739736160080935175299317749831561904359127695370649563976293301989544733816810742248993008465163899337731470910434833777416863957996585657946949835073944994547473621376382525777160547272533238645551882201673905653562043334238243967998324216665317800728829916791567307367822843372731199420321960291683227519766186238981816660291750954714537354443384182946733703866611897263622797454083546177284211607494253410460586963809420078980382385672415075617602203202030207044798057748651849345151992911738903103506576711175771098362270543262262041882965669837757759491515898455638005192697795666877479327556325051980647790721528770064793057462150459009610011022459062612034961896564425068616437714505625531950121257567335294230005399165197367106471101154509728183599671955347187957939095860011059831876255422538305266535578262770490798825747805029092059175082492924781309210258015015988105469713419639611465353711572065078544149388514155177548829692678490526673958956149318746132722992234827776904883081877561958062563886918230990840261963313778427168543943753549348226931202571481477850212428825215404103056055730736385306397077159442267228515678661859045615901943177202488273880869189041606635496585011587687752869692774488816555047597423632904389486922079491444991855560305462597354090088657313077618514244290209672748710039610033771411516422917288752854411439854885161254007899550583951628686549673070837971115565966700092110913318468086706799164133338037106877078507190160244401005489350821430444893667411562158391111993060981437853619928635583505769264046507879350819042090916004467108588593437265636719338873162383256817720929656470413894150126568206887696664056293876269535663073976433209356268621313412462835647956115430383422548301188908977958154028169915130132991904481005883290227173218463906864016713732915675522685238074938397807606239196399832232171407212205286810927212337545042259962162294928766413767350346167111424159614011907587926542503958929430558044391065895477095819715447577099557439303655208456756127176144316969863584490282790086622839200389448438150293501877359985392290680424297703247776256538249949183901897699388421964016355064943005735752259637610788215866861860347309023357842026010403181226879166116477822418667693204935786199085819106892367394955772319520227252466032527984011905169128590763323705345042353028886579878729687195996011479250080993933665190973256395242906861566435658469195271889925576850547730277747860130726602205003267924681304022374866434474716045985211169050030340063344308199443299177205047517049858840000970191495440289249908631035731588576999286281836643401969949642414973955044458185185379634723527161282088329352603276578369905235361268605425922733014926601157209889573559476961166026452558439461768185127864998502284471737264667387591270818386040466424482573674031288293802047199171493511982327048713583786332324854749205636153908910269146994884063190557885684776025813979357151600184015011023023632629429801914276818031176540041255150057353107975069611780433592428656559117219287254140595093100124842887907244066706318425086131872032685322923104196702632065874057403218283413759059961471174688169890836808697312997843162308181326914450833676653626976825767854849198964593331864177386588991929913983283427705102495187703048110230354617000711625717742614505367760718537724125004157683295827361852445652765689241438281320751814941326128833569156738826606588879302900275824272905452932985287060246715023548741444841473679303531051156423498137830111690937693377736969874126530766701602949268495081597584789441764275847240863085696083764334600195175942601478794946347497649001746634179564901866862825875855847178702894865216851090685737259352005129278295030754816561126349229304291316202678354927045141181622788400143589650962288485310745537722660595179842136781707366952895430653010996966412692479025486150036284823938837706064209577553042215921550128653879250464431617349925383299861645722835708182307175344669737620631908279251548915893623890932140542656551456965102823765958595160252828410318403324009313236942129058668360086554019319112982648160214345831267695015655615180066842544525659594369789476676450295357358356076425581469720751745459028796718501067847390144201212235012998954677574193957509245032748236493891967011602567435627384723828434057239128699213817969947581605299751128388787547665897382512189208616887701201558071344914511488398958226042815967741618099394591544518786327625596624141909076856925460244401273393139964040182251497974355431178402600970060468850179921722613624613097510950682598372122683857710816416214161380418569904791086709443744440561102210416212963205661202630831147285188020966212201277143895575476430368869193274716591316388537084625461078775125176451353767386241423420480688359318245641873510781714553860525815429990102288256374021720741518483383773825710997311693674705599135173968094602133877684721534616391083488681665333843789244181972106779252347005897657647191784951428634299561241286757965428770507392946414712991840564009540835440181157548974091628756695436920658449082211514176894502848736507522989978594962563632643201266897388925940797207718230188849303762198225287626526305285546453929069098738034688091488064535638686472337482387787905259978688613996930278965132386736623047408097129492151009581855171315161893021477478685536691142218309191060426984330051459657977366084636618361007182958666801244389137155510447526578742568730232304321029715681247808369405242239419189280568105142770871372916771383267892103592186497338337687829151611987241547952829088966228289280000223459315755621042876245720753933397436654817959886289041680776160260719126112468018168608548223938149744275124405348335766996653775613084021503217946061253267295779471068784382827405268560924058360978010901479752977442681215574944888404191384213692230995281806689386164355229547103304893966356854181464981963575136702611271598287950387305625663777983300017165133992017646115943476232807261190331947843038396841410302075910259805696799913006251483725303583165408067087681734094352471945748135782323363026869507940778898651019728154258482051991212477791993254133419076631423815432985126036742204934410469993068978301048280949308219619008249949773373832376714282439127954790615118799599297392575196649233938204684916684717301242673857379636477592993995290583177315412108180735569181369613522699119542492193601441693112045622690181947151119536902114302549595921233878282084901594390160540457538564803642500411298136907568692344109175510675059665212120858322570341283303443551624653184975986085316783595165059893323483079076404806468259471698839756444979529844911441582379024550014757425806118855769215592729126061228186388974594929795904787449404913592188030246432843485064079061433547544773317371912254611050630711895037754638225686275424369566233256362461429041189824483494323856221422141571526094784107679048315328609726745830778975679538036265328777214187986210552170128778748577186243146812708599656040434459598729177286105188575329540102440748270614339375531472458213041863516258741596786622306572339886962208169097520236553983103648656142369349711466639068462410324971904651280893942384384439351766133433837085479774358828167003610726672027835631980063237451720636215875780412661447591921836144227244644268909939896208547335536551087592986843860024788495255462461153170847926725637728825597849840425160812252683904411092596506327723448722133346661353967060698974348086905151444557482226337830304441745295183422445679477269003751974957891248545168656529819764300086434484137271976063992622074193310990971675361818160198104008565993016107525344916226074462555775122369785860512775669232579290224613906311536723121604370414291883848907298155406981461746274670209645196520657596557421573888941899585844833301128841002595101542748528579475581578037072294694329400958090076124037698464573082547039511375468951811819836829461543338530523104828004393040457720858373456709210706382285014731004817079273965684840229737979279911292687654315030531809929335235793603251262771935946110490680798530254497034360600623421751462176747683880218934807687585212448199082485137139631598834761655723735632375467137102223046602553525045210182450836192521858561031232096229779505703887201910716057715420587861717091174994147073359956092934160821131398058345378579756902803124499952736570098538188133742879155609559822421569859798091034912375426083562890020851111106991057994944060456712636201126552109803162190354520087919572342112348455445597681586092442076353596705493650882963747394889248743637688303517315923259872622694708608721130677818018276032621203810345487401660945468056902895842079500594737168487090878559017772100268427171778679438314676240666131660133338031655786676084858206589403124645921742677200743495911544087545416044606091654446037763982011549009682026547900558198039627813541952867010290049941966686757523558088137905976580336334020681366660391406045295977088858168943426519733731032309653343029192607760026486166447682746925308048541280599985467957080040213323434896401089291841323957492442329331477370786210594239231510262941967728599357361240422240617294441399241368756859376306524155421224321637594243608074441115774961704312926178393746068788640208023144720943027691734702915615873105931843025167497335868406847853746000481373615801055442544540275017337500838786154517521388488809985157499081074963400960968628106347905926028528278732620742313386260280807709712329874438746311114361351271743900026603240306371956619305708972108642217371931720291702069351192128671199870249295308296334095462654924627684179854347354844830608102663750647224222840578855796733801565392920263618013353033555754387552870352005768426752750062736888938828678792703065852586857905843537176663752316287212637950406995067389828929198718714281319801751660709109783417953310419745964157377966905113016128555525488784522772277832177034608362670709356671408051836210276828847708975596849318992705702241044372535948087947044179088848020903941976521308233484325139808642301451195413392013585847366288395387064363037711731588523408001481170754840619723194916250742686632346460893330442834458565705627925395961717714241747514715669864716252910865414860557260789747895683324843993247302762330405302586215323683205781378172817069162481119233545444130865388421724538502676789572608878948972487226687045598590074789457332757714012974515982284689442499065288354258395741909054042205330272954358821083561551880321603043237762844303654511173702490928804656859541796729383799703380543142065773561656850492093528228163565580290240673987004225394048683024038819426313778441306539351499335823223608284396732297969689630622147214576329762797889977309509226810149615117942114410918358211425335924649239346631078759445179128955862240154346178517994503507839623301850240935951347765061657581474421855525828754274802266693112851556227136360071491472187033956161288509979886099986692342369703818045918651498961383277696027675152775010433734615142588184088503272865831217487369847082708628635394907256083203089717151793425193551454802278570502170562608320179424263992639437230401478869408324853560422412518058375666021783799261006762103432090563288236935836759730423331504515178332817667402809423372234470315722222820913970166508086246481430720144736295058401189868308195262571834078018149401852041090255362539485498359862072694934322090496293152697193112262057880619894834199392536574814302627730563107242453510849712628538605940329794015994755628004275825684911728740312409153367085385503411871972072377107719641841294421877952429492958313337371859199428141633752545100989004774016345400496436386586322243444597023913980794130935886495855979772793113630859971124527745200259195798330447450565517834744295292730178533585806620543667220987300635189169017450826114174833015899822299110141034439963998735321666374888031385527263524343313443113121522411198054480315375365463365833839487544879386033334542402781284756771565490437120908494416178701310590914523141388626120394078610130221852524747257694471305074856105575014206910796570832674400982418227574077256545187731806397444848263749036099049461702343015875956450703398654166686859025972796267783545436979011051725812652660951596348183608200556484338357312665842747319182891214402620957006892809450525686408904096716995236927639007092868229709017580126238492218870856947247831866294635870617238637663819849688320998662438082837169313071838402372857134017072123596425298098438393714739066540730841564351825752977579485174188276716278143040090284447346142568673170033381911472213273905099859120143807007015200247441720184871806585013938047641385663748921357714095550008658893469276725849127158111051697201250285393401958787567020676620480495242044621089338277719499722691639049964379642363150151381517385473837707842966862216155820972490324947914216157504538957874423354488015018105231982482771589760141527061949656891864144749532396486300297334444019336534771614424803777903299395607436918537177044058943656301355211537956483816614972874896942127383531287350561671802282136552507202472936097456544406813801478012875531031294501431549235924706767630383649374138022258406293527262096783577917727311986568548174160947729677680749078413709888993259293330267849604761529797224184468073882933108853376201888026869367222248843011479007412644554891362739242510651940654931728919399148618164421949670128829432148521235907583485423775646775674950474268105666569804830957300617948653242641950726346374322812793871616760513048134971392833536823334943944278657861457873507963744125810199711650266697903077890725205703840874021345159688133251032488768740228568067223114613505739966018573969666515557001763718846201691735709373914944626024632501322755990260994299994890253197639712318944580119250990850846655651022164863698715538030198143463320641332236174445637011748616046721211671302978539429893407155124160606947779487540215456500582448493822358232913787453206796910338515163326699129375087542208621033703098549740594145369818806045386999313331914694503333961005424260931544563073547748547587376968829299156536144810933363578766254565611882638561050195755295193422144060358973005077671519386536187740986676839046513521937839466981919227516868667439254990730737242217538993373467263586965842231102599545640577171097547376091982783379023374467545864978208685130411308910804371251033362659592218149362064762595201642925094441656856542168272935304082965065972296505223966333429242603432769304597932074397303779371558884661415807346395648097002314857176227827534031583897422859493935438091761314929865110434147864895826366606052709547181289217862929536075667536467186162438717720087897888061756175325841830757674663869981780359774557357443862965585986902002151432139258900539941763720279444513236516676240328015083744113010771040144418018447365274579505723670309295581783480302882408590321836788375030112719800311907569238726897408156322585623643131147299241920964121647898036325480357998494564646476472310193456616442364571580791802742339225632442757987909584218257099649000986000490972022346587468190167637001184652913493409069076599890079838078757743071096540678806424110108992124794711554727883088561681123748604830755129329959070031496689128500121478341677279204905994648960185041777459762670120055528174702538832424615078954979679904710328877585181188006370112895524495113374527740303267476825090997978269991691891203621994096658688373049598696661313409583478453155545186359800805823223965405030463012423827962089345139139988461333714781931037563500465815456537177886296110997678396103110371336147381455018873883206118217125872337362730941372154274897179411958352568403530774753798458650027204021466554216297509011876353889596363477143545767601878835808630640832090239692437863835240117993309782191981556374827246333016525152326294286977803052085529335295595075794866102952111061633821380600203066545020052625185698665195472773218533644433311885971211339341409903880644347025889076910403815321971637841390460822080747999696380147286153906232761568794267410440661694303853599608725677037362160653489085303527440416417471903191667133795547185267237069260797796420384809708765045392891892295982866602418288943149940011122133289327704029516348790112816978613216444929650786309123539763651167140153323345488570437437805309863033673683708361256049070752917670956475885314912897243233953514521393896973453574134273345120176496515273951151943143078562481389136944209972722284192701622053293830708410315969241070867140008499328435001490365395903031749604333409790178033196205385854863405275608357709942576844977954120213500372417756248420696893101196355954983702812290732206355632237176987575638183451463399744992617164223869826113706958728620095784406849156912068087038543676094602727524781117882479198822624426570105116430164641727319202892158391900496558206388927862766189128436695785924254368969439780280826253513542516936836442145407819250845539616116074209609332146537512597081431199596935280425798100921372848614375841297605837310375183023964190890392817777971025443329970250161610338527475739826429708957391136953445868346187227359687172915711295081175837492486504478645527899886226668500260659805346649737561274791446643024061776948669053888295685503989698224178016614651653579477502678824052160608115826733971407951985224775011363493739587154537521784671430100737133511184560559667822394516467294563512768965696747778242134662058845336827294800064202381832352618572865788550725113085480639745195061999142077459967751920980023652541118879508412771520620149634872657034440029090046345334904555856366312083833726765621042533081772090692166739672080117076514074620453707112237784480328808249336134466576905882447380080213271669645005286110105370186369308745405885268568802938071174176147414397712137526576825020310063207407872383516970762982678842914187556464937621625843736462387882140349998090213429815432364595635438857926923024741717874781153412410353830366813430080357555112953690558071997386770909898201122407348434610277973752400208945367399977022682405414188777144660373033792941985558140769241029641538274456720932460910491959985359919984668539523805805211414749682340146675206166566801367958447776335350573862605491577311824374926518078598429844207982766413789652364315597724374808590355165867299865465422552603263610821904605013170608810502704112072803830104737370090665037138409081632358067931211160916315638620547548657761711284507816353838507269199044094263574030329545217725472394959243651620563204861227559514718248302263605050322406386113071308190193453159878611578072509378687977283145916198364211130191620872484610801720976834250081641347204421179612791359414767873362297126930525726227806669175976225955778781187812957826453298812797346200370484942564067662474952072186817439168879932726388946856180030043779681234368639901112226979754589798991384797373688054949192358301432941805368257110390768508794056608945029280507050067795162114973972577977004048997215751871998852120828500246430803095249993635684289475461341625845556229626924803701302676499369473743852349372016453094162317611848938182059285195470314191895832621333861401080282140517515952815932875780346243215834158327715598226506100330930652446914354709313115764932693305853321323896638383737442531471978682514132356810719551146700879128365063079385590448620928223059362785833978210539583014609484048313510738289378151261164138264983387020093671882356588496954446805367067679640495539419655556524553664200083795798406739779121785572926022285010653533175904226398986794115782256853507516852159233348373673968134511469864251588516161298042833284736727314631471599358783072913546962395206970653274883835944129765883931776337057999832816397467420536949212129389959007714946618480852012971982781424591204183522907017160729083580311182588473198885180116407572751493069176371757878377627065933847114219339830446474382338102547956914298383599394241216339339257126008656854532993736878258970538177981727412472618502873783921650597223432350365212099613795075911202044625227131287060435746779061445331934146238833437433257213970285150173226432466957861571576782662240598902510320618402383202497897070709054834678965631008544057115903120075848538401205341587273793007400482325913284235610218293595685285267775867738662726915787334436010912401909637219715921198708829576954568905737365849879937590541717206702404399151425330528256071655911321444171659356983452199309557536854943446329405627645552616393311937919825784679647021784921505993338617356576489661194037043029621977997234611153750340307990120730069051084474469029873226209688573435758315331555050376078461670622481499573730504014192551120294357230809534513885441122631642826231480129800525688226757289659543572776929945074717660613665546520200880281541846285839013016285280393082700895400963659917435030292589777875392025628404924121970733838147412695980064395783695907278319118240466749495055820316949824480420811673793027859809893411667842868219290262034746114965866617729775637992334893624029389846346409087788292132989300263462217157427496189704505236327056759762224648284396571095449698222486434499378853928924108195108541909287062008657731177532841392404691657166996795600056383815517744418975764719708940885587755606480384089028991106146311227656469853403601915310029618344014405066449757811920504714273052098623264176394670737728039769202761837026070198658194678910096842650554765448815965240645490003164353646078390548039762893144392925599416411171564619605826627632368054433305202783014021311083176721820085471986259915446937727787866820261415595446898057965424894193043300361464598708391690529791742030797002323564149502908469841369870468780336419385662593337248213304908346402644174376948866650261766964589432738515092890088334652669214816227892607628029828777201850751614046982244119303351057988375528312612959524379114841495348526124640136156374751045009337424352139830472967969499873943017404439640200487911341897022073510327976545484304004720445828808542089856211705280984704595167240758886970275041548467808322901458810319819366678512837354628440089887212605704381745481751122178585370852996327796875649806567772026232507036596368869275507660217057849357369121292018620923921173025500377654515466512198960071822137399600397168568593676320704369827121468785393024569767157060240658152423296069077686743490614939260890428463900067967340789444565980332298447146769503057897175094342623282474376535420846778637431133276944056175822695531353867630557050646488145350325868651005770529568556458673320536302073521818230200146555130578936782745513887802631716188508510729791851079508859888194489181693799866559915407101736629954638094366101854599555759222632185066455751927526426901004451108083269598187785765885587170819623503276002821512076905177147307690157110714022792693783218788081820754611935782701577158687390574491081373444852892556931760155503912438303034661014287081477753163451690954005746287152614729517978106196957470601578618452809236383768315739961803271519320736049579560008195776010168718554540843879131769178994685327668109407102610158386513231821462453766428702267432405737935303089324726145467516488315621450046877059175068307370184750799138974752132120173032972343996994960721707034732366276329318465743048104025986436977758663798335331783516262871679369601087087703937448977856825324691196811079500051851464215502494287493121225435592404731634239315688183048996780487875137800627269666990818815688526813869835203490349510107745991334032089650592202237079884686122143770280706629599466105548967640405860459835317538158885402300006519384281940745271389051209049600841029322906946497844680683647481886747781349710046562684406788295133833303443875988834367222905656016198969053450945404354250362859936570808693210431044981967082509728909699246901231528909232013892571701462352240639554461892462109813403521148534019415911126563936367743334284610995282397360006625784754252906289827667146392333474716665035983997034444458076994213443348712602020748935481888177096605493936082872967375998426930423087767318280126828039420891438394230359725512418434018045241720531776142193722860019960593902539282779856426644175442865434615917050701651219636958365619231800235180620706251281687463617185289304034720587666267572869027500509100532348916165183020555696489247322250875697836824604950865889044692630668896858728429442349972295043270457637035353326430092511604792562151452425678908421512311939976684389848730974821588643595411259789827936720646903120399852932904489425914092593057643773711619101387346512080746154870109231996775795239550865750727270050178095747927812438441870442592664623907464621813674626842791913516461821925143745983694919179742051592996621717405435675308767559041580261219988692419389002419669036857815158931899459753410687250138076659630077697957027937705926909491048641370159235179023398874378447596231679565291547217986369500594069753079648349076794013665187561194205004520890026196696228350014177622156881956286227939651332909251458967857927196996465711838196603646115149094838262019263809354938711309896116566768201868267080537016892160254579686887624279423676594974354915917280061931376125001668996369575502561558132848504754905318215410536552817683224521545151930915299916599334564753649062390325228651752305551927750325820244096612701154306581424415571308480117595198332577256104811426005951648960303814811204190277836119856513847447723368302608332097039733137827151291042792362794167114449321249188728014374636334669728549579633996327382004691467266625207171238824832386863386102463198027895469287917652906348204781444701508514135818428762801846181532941351595364149297235478410336184082431469361106846003770718039194567049160670478361090320456872896152249390924690364373983504219645926332324090023659612900855218466606407562357271142683623728584183549091504589744794450071419513657513204327914225643510072868445919988468481997166161016573240617585007414348841007409233313055018425157277710085525879209896573469747336872075630323996423845982173682431134081157337307657751401632075194126453124403116699056749737908081911136931378025547957419906719184288665311367585098991409641016874512934366979381012268705186561441268876210419023954548007587573800552422731161063842083651437769963516710284092894947650637188156044627602454523200314629142581921849141056903708380778374301817249777829087787519834158861293191942280986086878274578752646920528101226990444432782225534165776105280086987984132038736517175849715591291964383245993362475410643753342289701886026616454704096936458959312353277338598465494792685091602230058419638944687991996806652501748842663165823760495530470893664827398300573831844486446849628024392230509237729358827718221337094568915205987495957838977604891443875978171620202803054185709010127083664530746160098342434517347920566987064739264668780916864994549697424175307036233792703043458784598690245752431329143744704883524486494908106521738791859693682589178454135878912689379222466740848476254193456868362068449639569765199554805131166929329677649788693993674536586785555593489532795221731988995843608717779610362081100960951371167474055977555191863327376625266635495034208518580372444782001457987450591374322652492741312849508040828924643041906404834212477165596074581865663460754527797907633922569924429425392584129203922315632905215394599486261371569967709045991021175824088046774796006232077486230758954609183914761422562230167222719697738347511484154045061785639202929964867071364220950406639186686849811829157626993951339036102648188263871971367780045965379916788728449040708331352658426468448240400358716722701667701243768657511090156926220153348413571151206857324430185539801710959871915046785802211404522443267486189742242444357402078980807522635970128780221795453338143174134755065578208282053860838871786955276724494709109439824787399051213374236809399582123844280522563944603278812331294649093960430946207525276368274478478314318520024483000862547386931827447968874694757390779862976100831057935404212516411195391190451879512082916738298672400374426318315082306674885221821883495752788213160697556923744601493721829839405531228250633812947834984850724560543188283773974698840359592928112081377900751199718949736104204908213833962710589259899226245421958938637999274832003490945831019271516332783702485145343117177537510497726377089912660763388880231578458161866999801554364889281494132437152073057108825374076659225394750045262552622193312358947292184182298719329072788531417676502491845323669424172449122345540131525522943765637296175904410267455491280717531578857157575563721055663695750331081967261336664342612388641069357741896803192774254130689403620191895447293663864215145507367926017497049797742163491662246354771288754228376700397952454949187770156761714306431761764504184717992627227316232258208663470965876782612773810246818930295638481217023820620802147266425316818330662277806058629313581853188565428558092220886953531841766269006936117563660767646478155660907965579846552626772267267230510965247600785048239114886579493838360898464901877940274367990152080258561495639763194935187686641410233926894508520755172890211662094797881766769833924617184954789508477778456562744393263197379085017796171491237045824156503455161228425666956307566404038053282261896743410534542369391016416368015611062757928697885644413659465549231795486508024269289956339439797427507829531092835412858168905764752986073946587109582398408721559443236888305750739355737469909219788304629768802993104116751043931238897419775714446288683195526603633657452582484907477591711206518397144281275023909257831711396235363546208879777016341424373651036656611363673897267868928265568158609039912602178920745506645428882808691401036567375022954219789366570021723279142420487374093543840077599748860674211507171475560528874188794588554782188504682603658858790545313380972092419034047574649141000396284458738085050824044406488109541158688342319745795085919379703943879383386290319585031257793952106175418938491272067114328876345883520661666418321618463445297661595424313651175969369110256153405154918491510198238680285790946333621241528872439132575777749218890161339201021480300293414860956276792931533055344602972006630935713240732890508779990691334888748099237167728098208937005126991119883543184455744576903717250631796983638199511401813847335819526154039427823459307802824578091229059459050873796568333247739286658613362220680558745365705432084174734710730103489146110028115368731060399367529189050213847973603276582285136246735494307262727771293827755714853724314844857640457908526170240593800156344849996436458033436436682883316678134880840151886177517273494144285718157259972095710557692810009793613133875284655388289245265473211001282021752141758413756631893012816574115188478352687451344537541035074038766828005661847763553546988466132680693341457078782289355938758805760954719363169361612823338657730806869859752806607209212545531610917333288399568648004150952939265649987200367580020607227535523222081965990218592225502426447968135676390521731931616935854944988028828337810353222981620462819781993905439088096644533850777965014711629371374472386313546933788204133198633949819113629871669440212572365673080787498348492607129530855673889755203139365802338012490785145806690557328541151973313981705156137144433574983890968786274542408833440672816709210252974487655701244337702665434675356597965632875936000325956945669330848487896959031581927201077332804035625446353346062505023642435587627986262476340892699025603962324652906222820504215168209003163602547726383674546923631081801500421042270223421361381523300980307254504158985210501409933006971108785467629373174534061879852850813789096948827031364645116390626608539757412333958760629662668924939167931911784967890049395017661702696961254612127618807337888065089172352821507817906242533937608237526509055267453041193771014403712173249310474362114423371340867653782494964187134376123450463109179330997718745100729520428419371503823491702030557557058023837054482127570345950346077402807162996214006489102185271721098560853892979466560871018746846670610532448156255962017146832851467228374175997516864435934506678011404110328676359608144456247280186382359692167694945784609517345087444647047389740079908117469401747881148504090069703816889275063622491406401920893651585149033425877575553782392101045763360799932769090125529256372500187839914043431339516097178427242096578204422038218189147850048166303463773999347562020953753953193325312543318926447610413162946677485205314382711652163456661276228139214538234507003123297009851871115505790623074634239242392259028232903295988962141268316214525008605990685352219514459024462977403257084745353905977489514295815021826185152940016689208035294617226165484712329096363091927210339988141272076851532180356166132198001250543960810829748082144223512485661372251620227854194811898492656632506687143785724308324648774805604804979315153364910621216122571901787745503858931955855383069600860769890799684054265823266800974465064238099530404708656752604772370145188419388215638415011530883221578051264852203028613485229760526934515821499043707128453907719979954609264759490727596472767933220894506988922948154791101107590808635603620507752916117845794454860115160825955902393836067023415875132979622271797617716001174114997938584609395784686248133442490739026323264900311526266222628990439402084571669626673366437437820933844625981347708650066565640351253419930731584817625788877417570789575899338904860169162901514581658396670506181000924373744284773135029135795227493182755412239788741725784358789165585212328829035797633763537052893055313540545456352896020550176806863601373185754303434421846217696341210969427223614345160245263907169153795962630897191441432506567410312265081830132922844797559116343303080750257865955620291955686350621924038525132426465341639717992053042057260869861998427859733445871258808126195881481417973359925779884855262648934642716963684137168994360333531117829838810108556165466004249892219316005214452973392663879072188726052234626217444465268660391159909273124532355947142663974540492727612040739420169003210793010664521438201484190545521036280535400254549594307563236837604619146636634310949072230814965334246827526128006054648026635911813914513535638909312214592202822258967045929421979219514508786927917098499452713220833575546871557025709051201755002722601401071104343243707993531628359094976650438521816453279251011341957659772324872585221493740744765643769376787377672145441388901434320462808572074109108988956618871621966684871934478119068183263742783873236688848420983648292899328278695953060680897581158251996609390076672076260012636226142205755705903279936078657944656108851231646177099700923270743867783577169583220954719773077622142424202616504671158455456131509610027460156784829843676710869278807526837060483793941529320321751139420228412811670091162556540430800678809619313361253721043649109005800065603059487380041095303801033300652524775546445670219256103352786024276307269171980012007434057008271378906456156835683923220226894786422993435167540641183623707862161807299394353862466865594122081453563858511217733503731233391856274982054803637380779722306953238331867746746275763146123202697045693949953468973847580132989726577889233780574697072656773388485935147470854802798321689755366975403979582821546938555850897457081272886010301848813720138276249007134298775943336350203633576666625408572140558810373670417118663739979100815400477726643946942404083151539582454453472300605884359433092001167571717774582562905549946804588775138567276380950083111757522464147945031828704219166991791594488949571783986803328971505059763839115890439542795082400291109370557653201718303649141834574410096038737168146172992283371535034060363585534587367586937763924393225328842391255909873074012511477159573518833254362093546806365175759530829941996563452161801192527992548739987667637104244119993856068933072503466279673282943705966411780199585962020616275573986849531976868335917702777160738045846389200345513680589296542864548878538463383951347562899693070599942695586097290942250244962082637923689805456022430743777460304777568066120096949966445038054869147865056858511992429438024052231135800209895781934880492949995290908472293895235560166030144352528761804061766294604536805390999524798541598449087839180129439866552133167858262903173607907842916931807025503543620411275895603793361010640965610973924154924546894818387967221218505943804251656222976979447891922253783126542184673835482345701838385005624683138969372349672394209004503544209161445852962158019638722625596119135525572426033067068091041507749386490604254362079522037603076032653195377415726199302766738366017758684859546424312842213332561003763520070169900764676928103868058157811979714438553619729313454572574456815317168064952560802057709454442232484773744034719628903217320786126718561932428155446915273161087367909853865699029356022362267208080135924755911429665625016742603572248356840383865905782436607341300973529174195348195428487845470803370812562315825210831188815627914021170801738106535722027094743854276377779568478922898277511016545818032084007112437409498097389840984924617225448467061334619616391659360256513424560298653241935673771953342151519250162725779911577062760709975365740127320431494279290937038694834134674451576144951128206045627678041416777973476312232938101596864874836099173098958951068757957859919625611058756389791808600120189579639170500573082223091121535559328664499782698561375439777809829193508030526843594497980064864638481033611020663962177099161208793730099805239150641542860220869611596004264567812178812118180730581231876738018631267564210373772503768291583588674938261116118767147506835879620783926912288382733160516180512742129038937024933751508815586352241476345108882656730903436757348632809611891303211207038188795446933292755039855598280783619343733566706468003753010050336877384967552952912427742190682336291876793885424109189093601252457644211100451788232339336644014443070480989972804206333749333878483681263863333597691597538942404192854522227636599462858019322394180931498917017918178759776852288618359693430727688796442417747996055025807159301198997989379455088960196525961092693941425245079526854581611256968989200751676368285954964772190031200233974564815836936216584568796908350138824500805452438004105787958488655427920937838648831087569522300756963393344747615212004684443371417176430846068824176292829677034667812890251171348510533585565847884385702942293133175909125621204763847532738845035497198658972292574170139727277659897484019940351161736553306297945087308491105418933683121378314360744312338330554561097277273333019829717286820104610317589486357328703966946352990939861850594316731923002979398580844838881202333957855163556019919396647058817259473996638737597661057198118475017974357469153814738392157610257996033220671584375809303936689986548839016707026945952581958517530254495608370188843570357590042015555514948863537379651143931227377342276036029696911584364707921545130554201516101203003716091212846169549157353718275247899144311578322084894971217043969787194515754163946026855758935336225354875414287965516956159158467018075777832405623011938238837622868796086423166673830538210901246487495917146220083000006923646857944917406319235977454593300035238091247417599578001361455851418998814856780650363002871225896377232646179191163671340156215536529233732792646263576643004716527442194020884502761463929491857389437922447481274946800356488770671077610066706878015057902996756853803714582624208455009371741681817982415231124561044997151655644787022985122861832771230247066434028964568700850526359942973771247782018517396497668114459384046623134373147175584618552852892605741168104642813114672198893984928532117811359686002618693239626592325481252513737013175300100624450236311650888397232509932920339027148889242562008037124913378784680679989839086241011104476799044284061651017030219826264933585362372913369138967275574431675013039667647545950504227855570795254896531578726484941412874798812628969790463992994243538968365575617002457299828922416815511980583810091193515806448254234494944811112121910615637482675354903418149845815060883660422252323149370642025427236404791432114832515829405654561244717506840551880252225048596245254463374382443630665773848985378128460918958712792701313408609392297219125173539769480381396981116566935217211682235331595667820794933143580495427031234678217760123586640681665051191393188386528619638033508881713162424522124723674809884493865716610540728841495176207223546369403426253267180348792435079182077716968305918467896151500436627470560607356949965536064140863366411154999348083691513157324303431327364863852817959989573588675290584950839056467293879234072480792289807100776467829903320319498365208676238776021553696867014767340066295757334898024311730637112561842413075672040182349180398709512797349758067127186164775252891692916201019064500980764280222744285216054213614252446585939789226278933451555571948022142477262207843102567107461171729612384444336176427622064860166050788270604253332817024444239689962343992850959609949254985208395393980481911622882144460027278523400476041773155940301306070359558239938252996450836139386822236256377466732957203835370306941136389246252864129393704570733988220613678354311305803456202615190472975021498021099457815247648944686005819382597654875936577067895126001905150256570354638294779111032328852979905628993267214359283031255540207498864745653142650761470529178864309736807805250336822039590117011482589557768393696736445476294226303256416302608121383877548325372483897554218935026769221462402106407497150454194567965088262667695519186853164503620314056694575663892362662320559168160085148897010068907131616016697480531417396493653896169778500935436533064661210258630722315416716265746224460347903198286350495438282468138191840582736252223277669024504876509440741565450091286518553602297050900356427512076819027202389753586565058193706929215783675968186285298722245128724259352662734520016390124050023450847424204264067318053583766629300399457404119702815414358009668664843149166044028357195995454116921738736645105922081978141178727333269692485913129657882804734860891483340983876808502627412764650794280234944616019746414229708159915311844878324432758965110048541714308954628122923058949818075611018995189302123044767346347123430690313562975246700756438968011474100917182240709843594846618526350634398314052562760689184946109557514789038871765039238402229273649582702539826141044982437876309353174162578559409646340559750522734625912028954311466894221416208647437472365385350096681512629489382704383308799275757727950655510675685962555930327113898440745528642405359491611089326808205255696418109978443066268037789621849985929856066018794684543235196823670179787254249763474241459629738291392860587722995168246897677966239111770436037037577621884540184653929622350810716529432106695093679588833692774490501532694664081890658243476900917549352843767456215205824920173383440148331889261741910516899350886381762476955675384214828445832476156654327025410697842678811176661139600804046473620986472560707226137209912672066051556715803328478701836142037183463455597550048338966029193426424459105983849040179661197999989292390899228246951873440186068769875235168161930611203049858801270243884887878581077083118164335573716870904640777795888905738295444754934917964222866886348270383289254817178333692744099867202052415246683358041539159758145047423180794595720652122082891685293168460125800460874402166666954241141953967630967421018610127145283430679214510537296867433402512301082031865799824318489099250973899589293929426874616946824212231419520740708557281950756461954133968308465014846933304826553504622113948529429069972637705682399010467345330902452220723195211897457129186357997013430941619102548409394753044796734290198209303261549670205867624646381804689811321905424247119032418872340271118258414768388457805847817507517921769702734949731389395379706792724689184185323580847969935772260788786506969525317676910040216949693554194616424709413223260807250912107563502052088852567174133400109512510703871961009592903204331251713887730547653766903209887118115738677952333140608827371096493400116691369721467982543059564258028680905258103064002247224054041489221226374586512167972293889660337642544057137805305557397416672578376108790917762626668976143784321687519178214063338744138752605929299108196245214560965234745126322402555631144513657751852003234774503643077087172959163882081781228643600920364694674310637219639162655651075592708442040323370311865241113907552193535833042870762996497258858573064507777017074652592256799662663176349686425274509336751069874652182456750371832885731022235118007433501635998941838061481858663216240634990945083367322176296829242659632080693023085027282577322051052553581432777022492471165191126784322346508305652132656455815840850530765136754370453019072395394882206174209999405683010195119844629373259625052102481602159294987883842722956395572069136096511015653299536604238738088919830363060767750021792442490617677529700376763025859502237518789517769520623832254164488669251343553448301403781955693442870629850438856772770169455720946341487194030420750111329079803231223402186741598918662894288405334861611989376824144370255849499911199788136768364598580478726096151668200358063123489229097607637618843349469457957240410375921012115522380264418925596190588300588291235000432735128610765514959358978125134102092834242258794966985589017413126849880827428650535799322844951411423430216712233207012495768854599523677725216856115074471299333761088197978368920836388665674052946329190875278715789075031591381321822619816503188615649709050402364308616405773346495232635791780252536212912512443312661524359917731680845798168006315954775919125634216061466328060628371786057457622467576814493249405601976235446317412381151273119610082374452292188978696675539503809264863099287435938538004750532125610366130189548642244303061752022627289128281670652858151685504017014209178492146440630433566350003018176726837713667721012375633596776731235343505541452136405721117135513192617799722378713749563934584775486640374902886592078282542919326051809135920475663102053301451798341908698619101204953309186526548232796958046203501657137244215335322412617535810381857322762402372362777600287603487350166800412050982921359196756039654778807812912210231400191156424276590949260847581569066276630594403673478630808109890718975027881457707557200095847286884255822806651700196896281286827762084854973468395236039115321487692296921191261939661865773153139123977023278350661233299134330325894296004555787174234532108407610758309889474878290268729857120386505583295408257371794758254234728060023387499507225126628472677376811335897754823363854039941603695073125947960804224672126182006788391803306283839560150308373167677691659203465532102001110544998465760351279633367039338276549258220633325718254536036618205384935609138027416544177735670788400401295521912956048882271481014271447714963762711763476014210290672366977479810931807049183120893610449763784501336879647805937673482349849557058372174604933147210591266037825011510953531348370576433696436417912926922663624911147745887811814874104812571792519478364294852551203219371127888863101769790014777057381793631444204498453573457358784668369284193499314125230847264221987406225434184185585680022058383721595382446850238343745463201300444086855712197355231309412484277774895651785740224586881486874918418804317639687046428034683969441342127075149287986175268644101667558624546277474859920487681773058498370588337102516631153976323284124470761482394189127669785513408145035272332085937065784369663472573405712497847381649052804102722468090742055951318358188020526964505261558727553110237784697784832635817977047289939942877432347505157430557975622446758121321607030454558936837878690303944434619483175136952247018791371187649627005268483318792650542008279843636809382278029883276454992993989569053105489330578461746513283361959667438755482514979221052639674988971983406566443723188620367765505506862293367903519632754454934892998730058829129082806537889888866830492214818782719585273531381292734544330573933622248105495965440844059145380760861342143707037809169945906563773885314809810033064947572289922294743573856605785381259228528423075426486197995372721039171589066577049443662186503095462007129864454624214610321496557261159952050716589624150501713505746516262722105602735211151473328493760377197842235567933155849768958457479013825074520766730394729241268604115067622434397571425763226404164154825668391809005138066726409853588634623757903254151036283568111109461310315270984018162564881667513806720444518728310211095978400217698792670656094822270501027800223066984385647678957128637680206581825462763152741441992131039521594294214852380460965194835107256027902846838662655811613699216913076926218620635039906874747257089997370826204183275434246906393285012196330123029532362831462603241209944565754239594810254079064790818107503235611214833021791757188400232606146631032088740305955046047474597338867961463196585884284550304297615190803800260930770887450206991419691467320224807382600642442090879094826177607315278249269857727287330833996133190524771877681360568675522354566485871450117197710355151975347323517959042904850000706822792284396521789086679092500085641688982145691263136327177274559079493716680100657186348816274841125610274844319893914279300053432233316869244873033941685561616815029336560414839695817888198786523345146439875719447299658664966274621886622015474491319037588732670476050665720987075159158414016363807170725746613759846362549651731956540442011499411401585155411263637441467280257425589885531807401635799574452551327598447816416250843699504237122111355372551063810536321420285101915327638455133576883743367886669491334241203066779538235026725889664453059721980745231768684905934762588895043031732685367946525592865429399822310238633566960012056123359162212720757696750193930125972956449965670455423133157941877003742346864255361839582310005773934722499086554796879549821044396731055566139375843940907908960532066014938757529545257464730203888552348068170632868618908042537714733114144137306823036297308713276359515202327695280818995477701711999223546231590276865182648433010975536886076815924338422528576399649270804709598941323770347582712001673252892099695235568456120660971103265946293254815230833150405705078549444414407201653013578352750468212842674806812964662223301375951106382233028861978393229576184694613981060348040049883810250611342417883910916308278408999859062963159031625202927451665753869966913615592945965232338550752341387657068893661218229988404959699530568795160282974217261126383043294537523245876671026199232515842464782271425793583738691229664662352561741611116757158724848510738658550154027023111819907451715554400951031605216850648806713672412508675606906205544549516585116906889151302516325151353352681100694279724095578318752071670758215221498436471940492507521325657778488620273500374823053421823220304053352657256963897695581066193112984616508842476378742033882009265973925019275843615556104208240311421381688411764282870440821864280417749591047190879851913112017129762279924469516846978842283209791613975204996880188229831287074267444861785455931165402900386258512053525517379398090581010312078840175831432461362453387578003838147262291489955679063390003715082867215039671554814382409904034427031420585384645550263671146145234081415852786764459045000036891423149989567706913509822919653887385624633479516347068247386128312512285787989669030681835927960460209206719576363261992122792353221833959550641431937139487045924484558793168919660184822653149245525327207829017784449229621070050277137928339174366948045293692976998758277444722562091067604651947059640201416005975438824679995310578818124338954358306921861814022405246653454263052461834477981232903573445779105256000487595327006439057800143104581667503839967017469065786692313006275973470759521995123821396885304476912744303101625245174384268755425852878129972815096173585517869905750914961366200205897878781036950974674996009417297958530055170031243322900628426717948539990225795128403197287312876456144755643116218493920392238543671919978649653617970665758111981959865281167858247270990368983797642347455261075069497775899582719156202594016089809627696876507580353497478724400521618259958604643567008229353135420518560381864976446623883305354925420125259262707486427503766856753062092814533966582061334880701857243227942919819793048526890793089036429586316805281644938689944436336925205376646386728067869967882313777679896803414676136707848266065178658609067108839054666590232458497319476924520594032009903430934432705980831352469017368753321426141137232691366020849443255755819879399888908909956278462426672892994294654909247447780984957461669000017285572798853468589183215104105134781916053315167831682147097172438324765492465986819264243534250458121655533843073757577498168775086372831589646902065836705080629983368033562155366343124391163418870955621749276710022877528945144521715766276991747237542186838707353085960409469223571748569679073533470096430503226005901185858172897180732808687845749974710523857544287279416366089421919938935190303200123908216354290390356477892538181510862807440880755066260601193918792325817058201471220836185332975332473750931918864746208249701648973624999022948685194888662289716476302125769324990429564589730526914800161456567201521166904286211075977890090888920463321258535102672732859193312811842403646287075582195628148610211192223970492248950262144724935398780388303236305155986192612814212080207471587599054752336261974898955975813197992814197137303457096703757557341910250729179323997962371051372130353031352672325335674623746256750850207637565388858278268012101354303319687700224729773467671371193923598688733338319593760792910996158566547705941903046709858835127820871290812998756080393777209096179085303930150879387557786544604111186325065523835887856126393775133680706111984484709115611730355266213069540719253619398003315361028627540123789834707218070863225411215650243678717475529513182203600040853790980818044465469522885019488148983792795142556067009418984811406692124138144614669114592628263544485455311851379048351915800869280948054617920730708484508255888152414093377987863069803111969577611264061548051902397384725788496832586936320537863294326834204875188259276979240562076592807847995981781994132418509444709180200825454880040368253847190310666335882790579247478507258151083157135857984733465669389648516213715989974750576651036458062169305549771106494127207162891913777260489557397928292394604422665130114295697516778507060144017489889466757126581679769012359045138437954401782107015196230684524366617386223202083277717053459709667270602204391901701025711105523824848914742192940994789192051861404934279104163204673513533919719084742820712804564768720801963151810704682423685530168925360901076143718143702168482602694856327682459325445726791109116463946312205864548315044331375498731205140932990721940632796495924894319386931278390758104734789840471679602814824199545718016492968115778975784552694787658739604606755579978967197057955428666040286231297899323356738600924450603369512329967000544638703461580372304449253566086649835323245967388022868499220785727705875488774922569250509285711256258569145968300331532682479747264361229736977994049126134959079875010887982746796679641568235300235485735016843406576735103522655902227866730388921371760847130759585128620436815098941888385534345398751295115059774946761904152406570672008359824470544687902984712390881062688328132226578387068983349288371623205317044673310421773195569528498920368992173181444610456752923855435418736275028233364634946419991162422573079274291204824451736388737002965851510599116439969830356498145294233451303670265686523446836902540515747163392958054110113401983118608493208135359134335617243784499818229335261749815663013614319889818276230717438246155427394075872883389567301603212043671455741605634798666761433253632477760404987464290944864295129315715293919191988569240892722569115431423622860742556678824434820035471442209126616426640797954265744084930336405497682565342959768898733929148192650771659420008235838289401834149362045541693777836240548927309187112085504111259242424815342693387034968695380718179072016329999569823936834482574148002122744554169880107610222864893516347127845245551173199809257727567281733289017654057684642636997723569280015228412022792425743493245364168597750522317848506144802519933683666631743076212935440922958043149804826604211728087199012308175217629987313883989703338074265004159226309386640253716271393677478625781199119351616428037429420608046486410469207965116687727422614991993330149561939420409430019413844317237112068957709554867110672484330451085050211048325013894377660222680574767182686505428551532876427348375057686578051457144788902583260833518694168892136407141706157660904428943256045520078183027752765773885889667983487121956051173211424028818605179471118218066619866893822558821268762231510106564816656684358914728094701913405261829999558494720364347785906336235014824473004160212135102780435708354366365636175332141214308001781841085244428257119992654367043655229311718180336227325410133553828744796342632322755149099555726997792605555414955775653929184486720498768649224006165382511251575568924224384163723629344741088537267301638441250332452381345222008480237944438216629824055256957999239736815417159449837300151179332909795080775417370996115815374532439651016792132001863563537201165356106407393991263053846698168797958954821510471558848381170488966949525512730115750496455741539908390473710438339484002840563211876228662506449624354765157523997086767342574680035902235201528438932563406400349425266615358552465653296589504161038134483823583561208728577897904807035868195214276434828835886343807333122611581297706498731166677255537350828797610165116042775595281455866106060788566785791697995833377618974696072254783591435605484996226353637786324132583185984334928214614472753038317527997084592428072824969204343781568727932875997994460284933855446658780221962181350361777402265158480623768204060914426904097742619136380069980836532520788267225271228799816984266727399294209573935111122266038221082268981680132550588501696444853670949654930418959196929120163387996644076572042584099628558701484035507574875392428743086721116517810315232849591059848724612958388846494519782015390884696564742748211212478198175157793020621448019520824653964851576419685162263630298078192713818693815765348889489466877446944030788316950064331329287489767921953830775831883311687256358857007569112206792029955697983926179807663933872793202503007935736689662774413427828234111422794230458018932280680767761293792574432175419935801651074970637074010831668994715789005170906704099319014487864116358035099092626290792567312936113264835539925059880507870075563366447329633812671883364934824097605190075070517171907287961445704636259571398363945015537064420230904701957626163129761380062019675472796354751357761873372573509342099575439167906218312570171277582874464101803230532182089053119557699637858438654391052573023838986769875099691191708680131034399688304350676614468159526964558389356900039471106396170723933552885583682630107887570812426508174059284100417071802511344212000837108923858706532026723118964008944218080600829364452096860739068107598981894859854500013938823345469967234326539965292559196581238156308848931417310572262887797164526827074650909777648290505313386411025295904526471287477073736623699374745291255702133095166664028856857674617562555990119069671679994368293684912786708833729074606643659561547412526610728517706907231563588508158834235997233364207890147191117661561880130666735035384782112706054662755816265352960458212383725212221274146756233056080333208814856869687929603671345269805942815877702576894866388970841639562215764128904176327170185048269368332878842004383161070286500828734697643490219935743784195488919601269065291844329075001757321774744539978220091244417658914665215141971458700372824708773978943001830436302657188280010966582343855350380487457792006308664770435991951522190905385529981460045878186551044596335181749309276416352723674049134484108494941171275307859287443720897435874506719052388586743738334306129127503728016361631742783805909265957978301986026800870404714532947456976180302443048753040550948369338831882334000023988340127541974986273116209319431785722716097006488617523844041698424275598442706450318329341494195584304015264551723690785437296674399140216394756725321646259116166313323228695791768237850959103600569414062300707054294771207158375889969320954498436730631326019164344551897709303839269457760134714939170593666857316960595886991893322805017235118706462165510800661840003997488450472663135793412133919416393289508561144815616511590664907571320492619686237008562964594815521464642389893374639166507092474556534537188094849303899809874105954945576679200439717319178478228173398162293564854915594627948728131398883014227340035705803732652151667398725296611903810757097936964154029723312397133461174755369893481219865875204930695946137754483808874173443629557220906495476153527907014377805837745225730064556757133891215914310792831699979478089344762160275041875461081389979236767210465164294889569383714986914310786706567800139410520847591988223894221751042040250700664148751665359381623854000353257695838627230667171970913490932688630068292386754205202088136492983248954123411127628923577189453616683448841824637500545686998594984046571839419273071788599186459246874896298254820575437274877725058567153336437833796298656913626449865322432084891727704464210739986102013629703688885462891531794369946997698150445958493186672105101618543745161924541430376923922564906553431790005624345059156594351906558961179353586007912734367359706422532332869890877049835788649486582788878998913325767118261094785525251336094397927917096969664784065326426803595786652968689041083858635833183656904349581502603318574834207788729097150697151420460051288643936306054590863455092079119315017634997708479168328901180196209458580646506836995349356867338913920884222490480867359005106689750597462903766016424966039293863226681539815048474131820133275147194143545544495587301013250680423165238742666290934852070441851040862055775575488316538205744093081009478045409439105172501441148076527671421243958379396479660674762690972679718418237188723195676197750707298592592659518874798565537663744740625641853297463742485070131777665887501438200726463885914854033371088314669159292099485540692302311913551420223434188203355594260362681712211357949433857891926149802890358415988725986703945174176371177613491614921402067130011099386604513797236318997410834559455623670592779210756331480588071404184737719015309715926837115617616941920664480184100025041021838294005868318235562382537231310442832462843846517490817613669167520084531202376620601584001931267459482525873128144465814451192221145966570134409976920327805491757766228849863162307949322422713834561516718587909998084505009062246916279028095574551365653323954707636954190513377187809519164179349970867299787268515009434012240624091608999720273938247268393966730372369169629196641716206690933032477176205745899903414420995149850255944213807077749491947911495076486742236726820309711046173052848430629997222377147834103125309170668114260775597100614213241809446068355402593097276495840136842905944580318725544726204076491034711984809936549926651126212963248747050815108584347308890039924602812328850826059559203445445333928494295053076003062128593442141270142146637744469243690566192009904648331031930764967091927616418978586543648831207521736017140360086104048709181091121968676095158030883458585777066869821870155876551341817301041326702111268369587834191131499750306174769947297528967864509217029961029362521018910154565539317996302673325100713001994286131897154982133864446141618992279240679763980838548129773261440554052567704662998488933041587208633683914149496122425855474202126414585638054850679770958495244478690969696005698874324344876712389661153198654295370814903292705385586138481706590389300972247927574584810941721555057228068597417275833110909196630129629267260946244498746816460412188163395991243427417713370710439548648175125040037004949203947197368782707962227915843367199863700771088480990993051435447681840570999584156259119969495977732015791361879491988067704007461944651983391673890698474618221993154677148631409885402281795107158770037482499318364363731590887049944866497684418223207757993236872561584559550477198006612649127123108154509696169637809395873803134514690136388476022432778545803250321830658855326812422970057592917132925943075957543351015508903995241458706113829320221887390161723568807391419689508486090864812771066549625960732158767163122000894595302334081628191150797379494707195262611522063969264128043937546056384817916856284886350540513785609458057644508321113355610625107324466913139490397490592766186490223214497980024099237833039538103760564604597486572890501648524344779872942809682359495226802008115841290665956929936864026741220722364215467173682059370783268288011473692539413302664499751683642242749893508660512046636436039310250128466620058767597572731854035507452666262977401169678380979598490224786987392618579199517716039539205867399902354470386958344290150374501424361169272402681831152138625815482756097477595379444923772076202764129999334916898586878429714397376808718821973436595008551266234132138498214689618413546610840028602128812620937846139522354114314407319922234353710859926334506891298973539773519159814999378991466491998137279433659617709698423133725628316034146284506381761940868111652867053977859157504506933770465252079482484319079073109309070580020894383280488824855688700967102879472819765689118846544240950790546113531754539732567751301901318588211503454775293958218644760280961560497313702063834387297859054541757036651796211925565854374609055173653758091053045957639843502193886434487392170014100194317597387657805419022598390071361175182081181796342198530954745938018117240613509309847273896649865895784118997106885310738442196341579992897844200685194382379667579840113989472498433957271118768078798147925567809452838629104900649272021201965031784802684946538516771817287600276666019425743036692797318342318117988634056911109214543569649191998221486659272001949044069847434448764627108176306926736224229750202866033128653412840845546485940519837200031414621545056725444757635279689414694078611438115807085166216633879129044014536546242329623453989056219370663728951144288177772525011781962857132447401412144202591731901292679245817315907765125177135981138994048492720470579150883291015420073346105269918784076178523054133741402889104796443198490821486757022557153495796989676159490083687845857064554139383883431531900562251361395209430575379078403944681921925896882127972038447507817983219260636639037037386917991848001690249237581623133243078816153387013036952502150378165071985920225344049098907716544496743112055262244688941631161004591860355177882994988934436791136001139679693764820196708441472907896115812069453174552576893082472772831468134907062509860182447494618606015303429117564792134795171105572421659981259535011701838000795804224231775539923642386312326663455172460161253191440833273439239349535444162838301649410075933272310368339090408961682329306953632792517060539474619390539658328594426538391862861205174131531934412164741961441249444846031830635846662500597700986254339592837804415457276155463075992863429113163587449497640567558066904684544509839450018303498763215969858735123779239322156840786139120782424755777248680789387796642346370195785062485444082785565616380222529083316799895954542579167048464896304848124454467513889519044908551809643449827089752156357058092397947949262790305790425869298224910536510149147058925383602172397789689477395701963912891903895854805825773687393669768693176330141006200982202028825890949866515193252127503174747396961333250341013539219880894249707626708346065938748294855280596740394742604290615652647013977250147156449908998110053707253730137234103741330338749827501061880665745670589286777837864774025811313119512313775807990205539980464673149910614886588797624787917470021131235142847147745508939915849351425353564425347859901154936241279551494355167130165258066536571959435354684938171356003958967108970425672469412170944253026320934662197745630918638237261221070009223794845272857361738052180264062394434621106561825537924025174682576819927286412492646940969164613084385907971351998662722416978879686369409414946504856859623192410698018617106148916250009441145820265401166193612175550629047016078861250106168472481385162847345259391754470293552487268086876774774947394576435865212595888477659690770021110990550940177585574437114143939213504985336511671233080721641959993855674804822982622741800934291106795388385310096881136905093812774518284955372027009172113437305466934116265536774013421124861819797854655669823831769498744234085167791664550230947436883901790391077995304235564159349820859677502938071526105651346496672965264601117248366689812472180086369845406688259495147729456990608026684761184347828640603035384774353169807907048062676908456860063196345742361032369169141465745741680194884347992586560061012781727095969321875628803876843496939788436536030647537934782204920630576840365128528150969502368202932705914510557242701245480448191093577509025312994918761324185111497753089157665664465453976424528696821425455272202536705070004246610131229781812855518156279179113509808760714407162086442864279876451907189080875444533011182772795452558380610891767427869761322771135845762296448622332319769676267035980845127152959777348147704782880378190350072926629639886499262973832707840881905226582681856469415989104659397249647675958835337109149264332706773059011059191335969172032288571335381738919670171611871679156257905674894834026286034054065926060451954186821495364283938824378225222497923130017506479872774163906529117187784400003566846642112643653512202122169928055443131792745107226717349660060987357159581913219106021142988566491205474607286295151308325606382581837954047423710412980728922362184842548187977989249194779314515911582361651259717871788437180306905545475508203516940312497142485304312170712947966623995224216900641260500475193417018083238366915849699830162500158633668888753333054957257599121398096283217662115341408069916612226398355595372615201200256529610467306072923457496990843862398755042692757719721162730879679088328534559053530334946242825844469366949616163884021022871787103042233748369850616946240059168861448959604164409751115624951248567268590324192145191914594512062521859960389844093502455587356860299317695731307371302035421328531975495414739728222192788117180294482221182668577460767110829737348143085510678454105036576250382952144313447018000138008721605367008081867081119474992468810637995943585930334733579039126252714094609555585725246151435931474425132007122760418182171295001063354673425420581353933434707524294344698382885282983497562946646776905033704477035088599350002243941076157723979365065827389035972184455615495225855156789366919216388752839562950361190808894085822632920611867826827646751175521303199406477883624524033735570649695523022206838974780456355349730483523466555534828560879403107952881627679706795512904828193697736270623677573334628286063580573025541084591160957288380991891408094694935954847455021937635669456454881804385429756440148525384063706947172243993873573204814202773451047378742377053968524028348498614526215088135252761687981888082740404500968815214617783271703437740739628225555229506289983971417498203832521280977413229765632862789232713197498675217154558465500403171559641640202919018969329935152344259766229069451779869415647231193665981515069794207898747273460019338769658939393495460888580056208396820193271580665267089326295028999259642183045383982155351227530797970518398191166943569760548504847699161038212261375515823961431127728346078373296660455359218604138019343759054886313353799826387359735925975757482840678664846479781130310526283002178049879303170380326107475574977819092636963422195849252132321952932981665486837762159039769805329497460996307968690869608261892129809276380973350080376544480498282457122400007133435918953277450639502348454068773568813825842533375267712934974447558084931142188642946364186132503446954860591994300568753381847568070745040950225700474139547920045394760455983186146541788287787959126863569395683611339100800443045194403199229417663619151441002618494143151104382858344690264362717936427188340207558133222943571515059153666915543965810037586786481970612972277697890952918239293093273314918819021584080670091447888180740138490201334831741186287464353625572596464069509788025032552406399283943835205730499332967539778286729107194947600625808256129744206439133199742288403457563413833379771669838710675930016241063388141502995049713464285947082144799129411163847059997605379004324830292425678627961732112043967058952394663015093122780664931441904290440356050661548983581344563894703553372445248137518652152143179077695440667901086616716708345578992595239589041217343226108279437206520656268148104108403700542782241598281059127406979368634230471899975193979099581191192666573319146878742340021935377874757420333750345576675009688781259430967045931839304331315245041013421762806518403920303162121097619716771898719048650637665398913552578121741200592946743160204273542058972649489398637338321295063013222518268071739364345621773972393992928706997523777872165957125326755975668703581340889554528048932233093346887574342985639435862457552797263529043201450531283208611581236055721557170502825075148129499192577105656828635852249423128922000296504359106640451370401365365527801832746304580637568923759449980724968184586944196936345845463639387041860479871977282694227717589845760532505741126033844941985159400451522545381725788507632156967781437984418839542565808915200161818300850674687083405828320014251347978761394607091717511246358871177175471450196413374729315422676562318840639913253439972358802133498312967696316335761392479785875222781189329603919697578747655037382005126946886829038849536596653356152021239274452282720530096271583544041849792744258072190371454219200637890836723197820514510295692707163879935382979174504175310416902046602803510787921589537193856068128328828343379513047072147506315130855697927821436838108546331793175335288915072321831137829828252926551639740139061419926625896447852622757895576683379713069909561564446569966277538467548703963063411802476365964102528475548121074006912601722867165508126237913736430482896778761144618566402584517939204436824637875501229308261398153232973192398107508134929897227358756390877002402009697531359783098232542998873930499306237424327006016893390757898586316191699370956644281249419862443217732438315631017926262676703940089464087267499363428712152256344440706738247074805321864493612409533888221656797188314290867356183211265070534361900718230187968638850429672332956044783699634119215492407259630429102450548343343108279671445994175100113537167888919739792982802849315853179667476959359234518034736227576775031298565386159007014645546907349915267876091607795607122325269139751938615891723147097047937751035863330439834094654254777634208663624233731088268634108809299003833512843298816753547314002248521902984316520146253108736524811103065605687575066701187542654161613431260202308911965754027593398308888373744814631904116893009135230770782434220132008615969710320980664524616582176758892088251025087038264248119948892856537497043813410207894486380883433830159379266455894675582363698611167594897675634026358306660557022913902891791748146667860166640498417372676466640711783380215698189599805358676982996687007932377176116721795309624302016009937728226091777850168807345739591466287432980758399908102752195095864496386873365375551454398136650627614614820874886202106699519864347122968356964867928058558617159129980917680802189128040532652004926920651373036332027469131044932091710615465340202114557808679581241968136327605444418440790937593720192879318797930919858389362199053914728939677746938362555167056049289806898946297853990160511214353094602946334948754761070193489123968164571629767447040635635043276829056303640297024586003483462913248940643696946686947285880217893566825549344775510289566837734592360449490441547053548409856844939916779555100643233325595804387232213277182582944220099715196237139986014159199011347608979553726344499654730405822863438414832797563305673573293090236014336083331544452688529437484737661296436398373381804444931393662729055266713066663977829690269055465929670737066507983937983004293423233756470618275805787775896054183985772705025969560747745777909777209456555397666555188345041561135881053170716471343493086333250298837603896467577563331245151678231495007077208201770093262087331167599962846581790493003924094644056636005217207143462167210755197812408509357685558390461874108107276655410580309896148580659355479152213524452531969548941727840016971468738376361164098908633501350468737887163839809545340597067645468570077475789739482082474675905092729606079763724772307388057508457945242140383031289682048494777576715760023443032054650298317139477860348577601938906791645201534008176839908082547725683784699237174372448788452723220686629264421215259145278626505270110517552441046481487115999300624645137779856467130547970696593900574869315430058292234564308600297870754198138686399484788406077871485672264072083927472781889899121708814624351927295096856240198042095696679647557357068745967495646007010136190368679245973728517528049619431031328176983428447726110148071900063589125036863243175726538834778834655415929898884966399256421588683225032023484263705303774958985760862527695844844200161167013840083249933911218952125512668344015672463768394850983747965156359699008908319129616539390660119288676249982842238284705912098293727354612456601262536205001048456635038933988907251645016334255935493578115635607092126833229790023139270022759820796134737378303514072441336046329852002116665831053588572259114596205352982929319604184826801262188546886090639602783634995129158443216591894576059256543635702627542541660523177074230280244466014067923630609557606311531842318329837009954637698310820684860620183667676904617015409568600282056627225042524891146626119079309345174136903791862310771341287359694086156137309470430531393922421046748379251629846148141003013493624994436168099751263247372106631395374502210360448530279913395427941652209061586020119692475780794941797912076026279354111839123218980356508962665505054045297320117060372821575219503832857201907743067601933348034382098123199824702973831861626419960598053829125270989158006816377825039569732001839066278523387641000380015420776891866364890938750536450694415790079974079998886278288358744893634835727204021088572144555264841411508303581609772565764620349986304335580946696719994556432785281150459354933259392480343526804647613171011002122255065994535604490726269783572547235178333183730052266148818683461325400620738685083091774645626253047516635958588866854701632005393822814720034122564667331429939620345090909372434338679680515246591337931825959328036790400644987035015075781983336327887071951066120519627984937328641284386114317047502848653683873988711749783480094517223231183048207167095295778650315432434219816781981966971946686691625083469905379703411709792340851918821332777331714268283819699644720060709335377269308565100181755667961425764066873228245133899752118900957170990646817300761188469749647365272527266422270999435930289745516825812311340296740174567380883671264210789908378686355944622354345570433140188730573628932878159520248213420350839390030627821767403363285627321286113103448289144514457145927042394896825751700335580848108960445705346649435001872038396783913197743873339382433284940290937844166722053039860991600385312099665193498781965669547997543637046134989695368101884492615622022434696439265039073017903870790364600775964013555900892752056717343404399253432071457426880168345537622375052683791025174159964627212825446398848410754060962819463019928863820457313565345771914558044343365707315805220659201304767936056527818035102006768885552571240727764157634981730641851073945612720093201814792537079090188460453700685700893417642203404882693429491521794008088548461707835934612417948697828981421579262335495949688256482457716672621824061760644459985031331977171037193736522608161327440298959134843628684765528947619218198769136428426500070362482695907699214050812706522017531331478549680934236608027595018246497643332875889080955598740858633017928932753007707914466894869972665228855767445600414492920519118401675075794022741303325174972366301075510580295184814758201487758246804580326816999584225913292156114418401922173822761054288107016669195877507266436411580459783229104748064732519455453686678653714793887527331680931823530331551670434337938081763964262025791839066964301127973677706353671864688686748656724627881793602993034004593537083858639712809807275563785130616472871420412542425241887889978649768391990386636296164629629010006227714089447392545322733601752655421409423298911001933415172177123923116452494598003534270415126338427535399625800982531447303846428858479442676323105755859926837433091616040271973866189685170587797945396964920639457284275397706044799098827144578054367877304995718033015032674639074725939704045183311845158718545843958390949034428505632947154789583060567669029310473815750894853270684914148475076855935128040000307443725063868291642555839731840739278524741758167781636098535567372741443030625987329718255495698775382992468928143075515305599644466748227995100981726806803533694067811364210057817113791180484801741113007738269274153852926596595832207566611184705974594355533246607058464967985071972349501548292989912615879172670628168775461337458474869565438889129807467219404897515702227970627488431582224361612066308856314460298474589366220320731121538029501802416975725999089496664866697524164206367049841796230116620126512596247524066444527791554852424410525073581930712299736688972684527676106213874885570827178621369268500298970075493171551928442840658608385967455599385811176252769525164329270193884481383275411376856375476752209944746001626488140789421836031445007920592520362703423858397513693226531342362818967688343957275546041879403634616137910040568992799189899368185593959862203779561514857089589610024174954934931008345254046396831167529880533592642883528502649407717377229958520896114285490691240282542579730222963059829116773628241677280227003490144750757954026910380871000442856142733520998758393365735969978547047578508310815917013867251223820995057291969251719206824439310542853196351717171235305656704517482898754936527702770868773232935507408530810805425365593437708229876119554061128843112448815259049249558726473409734605875005468561131297033638521438949216653758600517191774264199776651099145649007465829968504760753740804946090079652635105140724259847195099298560413272091314157186497400060917231524626571075708705787616118069538057609660555402595182107785960337350226587577974610322470194457127475241494144042318472693042166609281412806211622229076488657061129499117669311216229970235235250737472878042008676411484433921643782263087767671945307467569210605225907004713141598118647384402475975939907742942551090858817961416317420479174697806897433285701998770148140095105572825479250134928870965054221567247024639871321447738820751188592793463157428686702484837516697315034171439916979887047558723186263456085364003480870024080300366055562089607213992906558275370601080922082909570769024901312426532485989250902933608638461000859705873307209667580238062471319082527268459076048210944739979621073767340992129682007913223363260253804669592021159491521310505043043317354072434655811435544121674519980554488883022287186613808586596213547308663511197891643700030618988901958275251580355753212594506953823058412472902711751465426764805748759780129738735357045140589423499071729063597411622748725979141027250990695767005506439794931310060842957388860918623477672101738399924476470172334924230480379108357437617505220091746910702677478257027369617587344778705580499151628014937734838611332187087144880999176047234761974415048124792146444594871399485093144807494183892551757231028044208450375507747197258641043252104334004354977332548078366257782233102996921638554549190099351016593402915996592972669996091682252174437382744819153681277978363924027882734557259816603426986382012294585060590717746412964134872349390753825195131422810775342867096969841847085178822400065118742995152532931815680152255842249369636375155777280778344094393384642427709108309325854933235692451238753314394219165509961020376911176261554702711862696410995179309636876332808141797510297870954524831008432101000652562434517869603856797093638850026978632481997905593451388438778774359026278538943543642467481741656438491176556022961939533091179676636507494650987794485222401063570013435289837683508511734279616333088544716149647684843947356316503494473574902364164690680374743968330648176237570241894673048270654361701687917334176531689026778622821331789444726376980079347290692029194769589852139597902718741457543340851293296848464078011151035427389526785359425913470500660292062328793998673324733225106321489395043979512150636493847432331352044673299192339916463735090054497276168912051174568523413375871717549625498343230940900526769874654484866661177581329334049523031611888943711801160522296042252390664654649930171424737283142693049181191323791571733568962856470966287416025802828600893756806706450720530743582157850119707058674838584994841589157162146079626984221517895336395459762423409308520314090617908680080007465306466098506449894493649304285875525822031263551520961275365625304950849958297598268703249236097961458400993204249311837396580452763400243605868305831973912191025213995220489190689962965615073194051452479970912334808115363983308791687256500996305477333489765896631624667019839389616404307887953076834457243410025473685845922263325675448130711528887191408730515731976386807587044946112511181424934568221766866273107304732815735502240008284916518294497849944076904754447962436209656107814800132711875823811780198579853392506930557123312747153318026898223120790412138404772702899551833429908633113247816020272416109316412173062406687412695193880164039122706456970169733318778529070508406846328238630408566385053020792884604493308248038824484827503580170139991812154087332067945121408487895054093625986923857768857803570580846764071253980836528972479663331016587704329318721796426473813632991903041008187815387543439219928727427735511766945877800317793981870357631922865643564857428672006134566814089455850168087375053296882361895695046480713427081083859013451263788892415615159057854526839705325136702484337719277145706107554321483530649473723301852777885185456966458956969335315201729259844293841241512550337776306951132673197144487390706181712059807235770129908999832246605870427700823296558941464083945722359194503868269395807020130843480615041129880368869772988990468911528559372587099579076169554705660048373312281755964938872871412630397553510198185945291230715129104665063820354994332100291359102012985745650596450362471301034999714971452819726462789161638172680050425783495514255915784091834304469518329499833764072406800291866965847188532431008403877518898927590151569225058640993292023654155834784643012062575924035098184985723802019836038614438660584871651489618959999332322415373667745507898031237227018221891651598824291756237734052544566191199593288332019957361877372876677061259525352530370216438238697515177520844122949073369604830100561342872049296987446540915043215045603115665211221691243263320507660572641151752092132928883995095968293549736506537356035672543992984587268465729852839774846179745012471903480858417578724927284750734836925872942632159961378711466604656596640888991551838757581114730033791429438765913971642055755413807735001867040935139568363039816599154457682458436543723158927680401000858815233732178618369273384070574778296126779785145963148319253971141562512282643725396769105866205484078525089476571024518377733543815962110075044802495985613706682027376396384245279106494680577611069003625442255890360349531496117518663195394585966641659147531768635426827283305792704449447621316825725912238495190033734553529502228630420069282963484368578613700094471990930601256444065177568040015825770441826750559575432585868594959034131462549979424957770643750731692202297534592384789347802872677017279804469268345100442448950420862785577318691461238991485318518117502221222247575050852888092823224894625544740106086404137515024190229356934345818608793505363375029344653541774133693307010589343620292922859045645283780011852582346509735553455418198124025865753714687591950845720143162466797532117969922673929200855180073584505150492643708965660061872824530898126265424045931151512744619973742190173523370213798809723950115724672564160386535885288820117961340732147811487186135827491480650862216987216225994182114125982834960087282761726491285598927427155329531436173207366874105815438109881829955546056280274002289142774890594404655760525426289012297694204227749654102613705407497914777260354179198371706756568893528488612310174181811201943706807008753119380563479341174289697369343127264252529808196139175952511141436727772717633327448462785350792435640506945607350897799522024992879945494559155893867159015482955576386379285207422140837810372707232644070279908942903071949455583471367859755793780885771459176171595959581151669125946250739204612775551149770682856029455873989761434326356631259246616805462333167007162473454944059407270498439902782020793292130215093374555133578851889134794513053332808280753170777581985540855244071578493912149808863695266703944710162376552607529046251319231226725893772813347577739904192223862906361564291343113120907067839422300933658846534073955074005086428679564834749118474998231577589383550677768320887519669551287536584508188324378694294964939969297617670099852251143578865271685766730048573343074116465344209847712084185203621761092681500240181018352740492707467492877416017560089831961812775420975498368682434432032526413880603639241943693616057839963912153945542399892615845375806668124263154543570092778114329396007779747758472755999092650572386728934496734793221917367136102906008255332456573294820951345703007752868365320223024271596160085396017231984450958778155387228403650561717443564049222911718633418436693508320252188203750893040654201507084200263888594863965735881224873397872591764197692102753189244002572930074912125780036609073898596755486964147233663426747020587112417484398842027213691562173604861259857772988206316270026468122252685399340122454211496019336622196201389681232769531180765513889411627667285022436835187476641973374866496130673630709564257672567632607441769018865343446075767730776897053737436839728914903362792627418131704366072850272891469513805126319659522099360443219609121418089637008532354055941527454006144431575765691609561298821896978615968571016211231405234242461362898453212409088891515238687500442415057675978505864164860415061161338504706280245336330338232969468302919557586892076279708020989944979076317483367752086725557395441240003289954826042481168294975549630495732265768176969515124763300661574163739173132100223855748073563029095185159445589016595461375164368500257866203790263659788656919624343143125752584973783428385383577321341888664338333973971091572379278845206552470941739953878831704222897515045510483500673205133439149823196746793724647548870223572892449589057226785121474016653603215328029536580288125084025655874915525820437309924896307161681338116766889781285873936313590765477344995906643342249798276001526960436402076344481342614214064560382812285703004057032577106878010773138773141076003998324745244185764008109510132424682483849318112873679464183509132045752843496459449566276792833661867675995797770621715119564755194259381519532178256126155561673356533831636138340361958553183408980685104786006427805678614311433223868491833362411144626210107343815420558336022887977301406599902843951500913379423699781672829217299934300650776093351281087321429545704294331143916696397356976167543519080711479335182322287645307390922760874235297861962781335722779406506601081918111033342690790235505084934995641497704377668982117514858912792748431282379273815808597474389017252069519633347873676783992233113300622926766519875571160435328456229956683903037739517195049000771141162182546783305872239193465862689103831039854687515573692195940348331842820901626298949505556503742160470376092504977312963620628605789218657985213907381248764764289047857268278388101788547169889126279439986761057391925278789324308968498408084564366736839896271717685148741271704121339938531306620480576442542980467826383597643839196386656600334596300414015397222341027162123470453049134755804901825400018457945109026579484756898369718545297211055246377752021322560944851108918916199013995545108338824309411278699193042606015106817194816314627184860075962837097830872304009229476283729697937249842928684186853841113131712354114108242757673048231619799656655811974703721420931620948119059272379863164504905173764086275257834651820615328911771146516634944653742187131328942813291711582447754743877016904136178817591380884022348298513084456715437941147374963287312216858762510385331121953011521213363737181037517326673750959527263551105854673315336624737492806167473819690180532399873162087985884811257388243677146775005342124109306094375185332459676540116009819464395801839698971269344275540078264725819179534903816319194139925476199217354958419019836491285581393257974846015378043739189389333554417242490899942972410385932859865149310691453463955440934190740775056400464323381769886918741925143671328257084868563038454322445474057477700165958083467242785041991252718817436427610302378389693321617238661355820453416410648922640721752795149209922824183790428034401142898269407662589335281568130878557717322291099797835646883485934035599905675762514620626881349161197407520007024340903342157916543904213092467359196120767025805985750746708992487601652879827018772780583203633148183982605045662577091176448271672092664430121726528955720500161460369455415231477489981468436543442648237344295387374389318519837093956476246545314774708469393216683189610411087220167149858841251520681806705430781611187747248251249198148297923328893088509969449046142650170096009042140072234535889351923456531121701378394443579880366076295339572347258842728443877052882028377432833545284089009752943364143405730886534855217840069553776568421030137687811599877062396879999626046360707823299211169865578734922838913673274107162053213879954760136249098812007563630970481775941248835775505317915236337414638566300061068623970384036203183225727740690788374790757515061770294533650001616311546389274535143759521726672580597239132015481343407958669221877835399046706217210222997763343355585258723869016184780815746141548959838569171957419585130596253536739159044058690534228670664286849222096435098569935947047730285826907300581417482953501664281393801733505885759081257063779257695700525710268073256613161123741893032307928532257465226685398619575326848221841301074283487683138260794636421275892824854924796651507312439047304549825829377011052687910094987565142944161399751667870864322889963975500996975269969791018233518373328835405134567643861918036165433622464834877960885389387469738705182149071574679217879395118196392762180704159666599958294147723680648142431465416795750457685557007556702088013565026123073714108343062436885191545734562313579564950012513024808663353906566529789719766487324349865420584252063866595824569928161662598418472463946740304199343452540886634741443237711057526831527611298476593419410782652204960223268418488239514274513419619741524176745331293665636084184574924328468855355865808401778064654965215523822851064350911080448015107730324448252739831465813896977469138025567184521761740050644531954616545141519554551878264250259072787359429333005770442876455467438386179082298146055944901708393145023410120665217486434780651370487592496025030859749844409264309447755699620454145071184762763947850277638547408804764150113246667749055941010112052305751709224508211502432905021823966637677762256592163293237804561630684935338254657870869535046203379941948683462538764902045120091333155220231881785994938255021453809953053929451985994184508791659702553741185569515705153069199857215888650080414778919576039822214802124996198265897571056924748346706537979208754625850585748622979082810246893404801029878520454182068433219228103919062447826816647178414275879777286304792256644107731732299123624389674852648835437518495080396983654514793336992433113779277336678368906312108890392995517014084287957402835637809534696020222474892299947367735438180443846636320392225271498508472451875590063296320962376822325225053036333711728869198441832776337774144436045578325781734381762863114449428696199565042151610013366424531087747087235938284640764106830825302347768136772309366862626934079695412770279956785137521465170401277962050036680298773814547868363674686078428430172902888840724907761404933049650646015804682085477352389556208173824703918788040791738465866036156087631003468219756607142448568536975586230915478942676068333744291354874562090457944798690997185882316677602107957169598538208546996313487273209623688320691613656054529877137043442473359604368870778289879746197991098146645453692871169457309173771831037282855076238488626272127652994532228723359769528940511599231164703850611395581288096489108542957028563678919347183122842053733530919719081086752431995413185430044662325369076152139734005131575248875028882266295210383044818803015545395198409773490794349979402362058670991083166990406134810666844282903048817820808620636961966128576654342931898746258872954644607165703704156049316142628164257635331082289970389749370374203327763933616361604048998492133524867836719345889358024569443454867887390696675778239150161325420677958294353336688493295967659082733946724655202938955364187742377739433877592886678019716412256222890583515142011546737293408232935846021546522521194973053412112840831107228696319507626473670750233651320445353108182518460870952730516124750021873332750984216855232147790189818320096199877745694332560642733708050926272221279930973443793737291945342779199215124694235779483990234609439552666679733523310492591881251430417083142986554824009417778280188097485850274842701529533685141932125075106900076679886521421033801490374918590284922439015957393633388086884334605059499247645169304217895895518440173586975285268924636881172543766215858342300424914527209171422687702040498538152584409978181917101748068285287280604711303287486620319776845635086148866996492945600599455401141448920863138124441071927268415763876381587763142331344529589957848942521100799664822998793641387045499693569928894541722586216517717168248498495001461844833123729843723167089757722707927942806454347027318210121074910942864317919147536982100900931440230556640803583302525461078636653640107085043550396148587826502876587803620145613307168682000934507478792210991928564081692712896367719103206298694015047174525912692048602722433262593744909784920692321885902357682930506728282150210816675511078525881334021979375434457196413574841628431136304424010527336128344249345357432376217138913264231543396102152342651824654221137556066357213722040208285665223582488897873819083227465047488276388902592012436467311657049515631956826518600802733039941255699195690559641137861175446374335835305145669628969943473813916694903949509795555961394626752510502727696219761021615996870968530760318052351086636913899135097995421484088641345874135088605835069409218191678766544225026818595495869148281326042954571557924592465383865463466268619233165368074703256923483577760820559744751414142889570461909345008623000666026536384007881715234921397935708971390749612716921683919079652592542024924645604695122555744194036699129174107431706459660546836785645562548615356134574963429064012905549208637902008733508373205479029627748290038027477647740441963270240406659091720459751976399856189900608500779870047511386984075882270546060157425894261937902156402433234560976387893609818590695326144830996321244675260172708777530500525707458178503046831016748217138547936257731048498764193939244123144829222814447171696948409354808059274200856635654934037412167006721730812424923256252971219046125989253190255986740352421235381630780329620400167519176213205858323337425276980007768962736912176038577933840647204998302667243849803038969938274024867677883032145794102012411627423142054285548743322943648964665521077172709801670855195514581327493448738718913104464466827005652351733874562535931424168556797299247221934720018403758109318549619385646870995402837679668263856896429762999324121574369285906541459816716033550873046980298519624780380568230826219093134766684044035264692218457245964847539973088556039403014236416293106891204769133935135592782961260977159869537680324557822836054331304169728719912475201983042180300662614471488558737902641827817516480928356240123542066085615806097764606678129173264142833386777072487806636684297105227650025936219393460225465267723578033390650360028325926908552523693169392791521738557797036949333154000315268016730032703335852632757820639230743008750596569856205401695111778587671390531028755158633109466926364359191911389334598872430306350179794033768515835953054377505708104645672012314057799038753554085329282805030940843951816903322100608744551791276533763974123629690097944036100144222636695256140248415733090768162319498749750480432267684734212671511660700871031636675899634789591990919253857326395212163906955034926055248178242870960162808791430328556376493048094618949423959153393157035271806235007903849398286755946336715631915674945525590171390606900771383328258206161714626605936982075789477670258721355370674903808998417192896568724789833406387982286805568879263312572231907500151017871593045111009517551108287252998748662262134833698383068439855744016193126420642595979915836154807308220293094384645314874017081568185962572755234257357065527511751372250350310456891866102116566614059431450873502341442022496309643928163155414090477557060541102554125936269382081836310544015584680362403622638391554448607894789581873331480709655652243054027195782549235389560028812559067577952440809756027650167509576616979483383809770748848896516610308921404499871490990760925626213643549847964580228915245986805763328134314212452463309258505046473787890217482072561296009863640483368587207442717832828523491177206610461339229011243552225780951634293881988844190374435544047169769638901726965841535702892517408611540209563103702522912488523661367015184836558529182734303141076574428228425945404268216301652172255499829146518769106778384465590612973186456784902195473278743405846737199027209981642211282807398093813676217228527456111386668217156062644722458705248357814581787972954206311243001990578260587137601464982058376346999898314601104632088757722451256344108428451497205659904263513033669893392054572095213877821008755440914263534148140250073507473604302114507446313307761691145177347187108023406715057134553993516004954868180868390932590927388614715109973871372200614878942158238406702193986374757491136847963700951151106823028429282033341567882921466761719975711260606239035062532054397591423306892157720072609528143259815548125492047923953924523821423903109393404407259946135760528323516068926082967328855334698319028802876650929765830632105393454141594449165570074919124417452387308053710463456650345906455472978211559678171644003862329071190110305954227915109136328615501161669477629689403587263328604745946114923647307284173585072323781446185703051651044202933677800100018153016250718080334077829881551733163455715240213067608250213747520666689353218926688345740289521065761468709424172882208776024010653899461475466110158446015554229264875763957599380920131158283422616634511972665876990603161484880757027899057798369472144994940825204388175379396226523186484119851333512018279200024666990430080568602678931959078039649409847509162016545030447220236540889693821834993874751919199862503021236533090462709236373163171805781858007932662675897473852940655846762170078352243162516231358780818340955023181041042309672887869028790601348708618286987403685434090075747049033874409719281883321366262723551285355592247327026729140055009424466896339200568522247706086249759440103317027678318154121268218108347632440610025115479757288126787340189612004026255596020564178792217483132497024760113558317048413245079682851768303398675429669680518581189970365843923941388823357550677843270306499509719117279235863986201560985701682723646263508764511153053569067727880378173270335281108049732854364932743727841213732795403523346793290524174519709083862316176823266377187345121848366614231357965900496046108584954648277042478161781018404339796230237432688717668442492666431501390092316513742525845015327644754105848534442596031015343384490650283684491721802087766440418747816594126985734867643511072142753929718185739921995163586212954845957778786165854869265050277838000878151511823413461961934947630787556576328636357897629347716748828071848164686179717712414142338500219770626628155175701228355106917355686511134956305599036483652295292808345783386231514366095643757180880592621028691257100054238775186977770093848260865018157901894244367634496291437634067466850969418881771363883387372211553739967203263384306485779531754510421811268438855015176684289933620279697136084908304020245082659528638919061256817366846063454178801666527126779339104360248083393267458429308307810067835601667747296506809241517613715742743177573445653071162942563523317672027816583487599982640455498958348256298425566638528272016235442139142584744679975249458517944397442475223797689324097138254969272589653551164189527986708015404351604783414257915427483772043550950696750567631750407924965145702423210738643096629368709839105046476342136473914754051475654496102265937698543755357335734953079794899744389980181512476633300117110766235357819794375517367310905508556637321929375031225254798068818628025328306168799538508197431140950466649231061827539651019543284633804612994122907940092710155411892948447849944376087469483297637270006952312496250512818366269238684556785903384758695481213101159599922842083808698566490713092237617618005789412202962552665061664317210079434190451544679385968488783873243724748668825664899818009034195362768113161494757934055365134230942790655649408444053445294697221838883150952757542859124389816827043301200121480125184415544118782575898132483465382230471896185250985305105858523528132916453647894051765496232630006730984824388177766097381940365271563096590771238310650792101560448981506387146018031610513750210287445144829437610403846794093845111758192122607539530015771309769233912038514059677695673316058513784417375183755647055441099341345543090626474183704443812206980239359935590248382666218136827353468466911412620055714111996700492376576068221886506677141754258885393758300250578169601208808503268411149645213144484883679610983790111609031796451943346232022071651517894216624537445107974151020718080251434118845486107409632903010503703200465825586846959937538528894514150871082594035524732724817387044491872157592458976537608190875748126056640178545332702830818559974771838491249730987915489950617358350132059478505834038640620557469271623170666505111178333263507293804533274326750961616054810348298464970966849636967015689798363313719760064116016853922681731879283164991805105846186459446379917870639761151118327864609384884887356785198288953000370137072122703274342510967757743060681165391739826656593337911199123028836700751234795178892595985402424885517186779762931253055770914026884189199990685282474843065211652314022868733200730947867576272423257903298918789269006366355487324773899351549073231288253455064780961866018845056693597094494628104063392735869232495516430041438268750625762940346238273700493859489041992433320802609929191007660815359523920375196993750429158957518693039293604360574365801266363065264997228511609217675561769913737173057800960565727571064213390373085784960778468556203496464845559391361933217134866600802587672806983525083665602950188056026837214257312342817776535098945547902883515229945358277928313251706749317550723671083997913838321334178479749682183568360898572411545438164786240199702429476441832787560950828632047613178637756671100818055260790224268131192293925226899490785189134738606721217412816959625954794024850146900717591754100661312532986468892556432981125802824759213291250736521350401145803939043823229612643956952742485497918214942515452596521010370338757723468832993196941024627774330974634413286186872142418455276534157495137660458669127416180986035807090228539795901204760226037524121964644493051363188812835798967279163918481398521322848163675243606042791537949512864063007561536534004193158281010658382132429519381303547724070358512844193349186424152453398680631381840693710899789995661152955815238462613378677957942567503693304401479037688221052127743493698723409023495008780684080763244645349562401605454275201140242014937840431541297979220777717375625469604356558122921322932870639942736926231616029081849842490194887821941173844629798940492905550196887656426358813750126214766826585299912911902286402905723182763773840511947759099742884404135818164692968848226403217738589463126896867017267112407744120215052718491170238831785898557631146677831430434499355688143998186085153400723777975529521665920491355330259684673487145396126189716727892880427554562421276289556966098963412326742577749894075268546265419582285662878491503669541276325355958640467662321991039537999215179609243875446129113168116941177413242456279764468503451759031535854602442628746720079436137896756415133539458177493385317841706165028774356750151285733221819949247479045816216845448405444847697060738539686505561313750356480264425784894101724995925915657846830266614452866506941636196898340509753640775025054691499349312188902947185457324120468574771028120459203310457236984899944973058753857599117012124933443138310143651951849626770166256799779033352174709622112946622295164694898570156071457915693151464342532006622551033651242746291987393080561955041833729849939709898728993964008569636625127760480129069966104455894885765449119433617925413470257844006478826200537448341468983031334978602731961431699911344936293117563911617810763570591061100063569297409361518244810759906096315220724055889537433497816707485382971531716478747077847933248454956054924863896470248670297123416617458273401600561726094119645273770129884866457208248422353004952310395033494430934017313787915856949548432604606666845294817921291227619347083875128233323270241938482468478354155695556010972252925301058212658336489617255805546669362954618331496909454597053395854579382362119049152904487553935058871072592624548385523797240580489776899645420282967451292123553069106034815546299880710248608113239128798147592900527089862189522299728995280955614062185339698759073876699252559525154909954817965926406841597889779211991682095993036815344650332736750358303746713561291233599696006441304139589538631418584372042699065742533001374958939457329188974516669330250480131677849407698758768162784234638071664238685358814663666363861614134913484958309768978362510879027223576792882795977323440117373034177613179085474423071184408192380094043683872261035867792445127756023169095764470010916126324998445467644792451707220234904815765111759276179217275639768969485592128113902903964154531374586279675741272216698112984233141133067019299037036275898044466205178332393075160677694995394389431875966257474172689155048397695959451504350527345014750235898718375216680359277767436035020496786984241321134476634074483713858113904422696719526756158759129937793450311030164100575065669572673787662068325069663002741163531667377587677671885351194898081290091816292647490552387410003379330657675119171522807756844117060504952023079395854081874946310319835617566952905703628250886402549290378089287252323882330052791179339132783288517288267392978520689804626007999974956186383041709834475660964858557209540134884627031401497805707151426851222394131400515570452637537400020448974915743903245244562016309773722001644812398762964427270621129917240483028788381370222485521912141492596016974553659981614618339933450294397063471880123955167840232450634664448499944907508383073807940066485891865907210330171492494245158965966625914599758016315163015167576854415813151219511263906113275042747364448633442671067795544351176723267094295221796968142902807074944115468806018365288962273100777722154859677710546590533600472100109617648357057767030802657951025418295385916657443150271180593328127573254887609723430553857655391839539357441801666855421830898324976130678936774960864517816041018009978543970608756760799912618282265572057881091237663975819469070729945279809741355167056614758538525750488350811284951035831677208667644303665155161257623496244260181107360932736398226149193582834553771713946961415384352501162147239739136341451708006537970294626260213801035844473083645524488500329783799849852668313344956929890279876886750144523967117423586135252411460094114625821158991559105117417439498081089681023504122264463218004368297216343299917585358544653382621229112698117059210580612459949068758548891070934342792095734209793436448838878868369251359441075436514456596802871526940048637318015787549472699696104770080443083462922029968924034981118672546344738880702576435212346540093854894385863868452246698400411520268237302071437244634238784726624551746278222217110352828583564146228611874611480700537859906798869377998806856899471157747827836597479816170896647465220061380262669154067181589987109251221199467635483576734315488537477649939845515230253590792566106211457862336686663594148586477270901550353653532704909759336614238941591461936855824153332155275398275618608283859439952586237101453076809340084289211589042272346007745630805906529030421631417252230550119745254986948297098351833127165903791944110459302308681100972784175568794282507526567030762876348002008049900225798788201983982770695212732519807440003239699012666337368933525583515894405855164929739699985768028593681373512097384593971100918001631196291264416662129988711351878599741373706503896687688135248855995259781847542156423391282166180306995536914339868749937878620095809694461971847461092019032911831405890348948341344530973958891311402809637892923389060984544611823347024695958611228513265081185105303818850216710557851265943657271452539657722896265108793034978451436152824711388848992351249040741490571096396807952821001211759854143517778799916445746277502385922906931310115203519539220984349828094596409398707740264164536119889253185107453984967577952900971092311484784103742269563213652618360912885644668235000910951331891965402967154636096987520271774474220561992012136220154868285824687695185201065741492297743721942260053643192967384387135168072884707548086646827363726067264971357380140239585779235677101252172497644088474352369918829967029416358263557632289119815920819812078143643261124018053567348834600553613121499461972655688620567750580458816828696820517893599085887979040578090911764947897064126530321344870892746268227866482115764009467742374280988729196333696811905421648509420344892702708848546926599841281250442707272401860910126257536300114367349382931361051379867022908927129465006305880711789907260611700271686147176397474344033057655188158616475262226783932705957759420081957731228663623449595981997899704444478935262200124538252286465769491532330466910111893613954945853344038134895445911450895165692980462498938638693488460202815639508424653584053392355101739234346973818923840846971460257255012694602357154903614584324817517267674223251057023577958487444629662674861605807793161644966449961546053345961992900596978215427054938385174083985346786609907380103960432017461479656287478368873224910577167710737576700470918545525289737940558621401129268026890616132627468969163951474915593582867800754770560603603058077005956058422965862785841555588333916837459161109547212898753774951660442244299441202302576354977326801653762052097534460932952443462438144652761311082915992949326424573214144546065885187533203383244036071580625211434055590874231054908429519286235954176155117926752278846105824801172774312742020762186210983310994534088867367663780464846958428768621908608499430583039020950036248262685601486581315853077316439629553161338123834965532144002289857518371071038378367469113327605646848847550100544373573698741545173723037458983460440207827593610879180803971268401828970290159666977196407544189797687729786873631073974336862654975509380874971128467870717921148727132160459911556240649364603763715580902905855889696855776407156019135575586550409789031621759989624410275507070966689912440910326357049806480450154238937378272985734236110954145883109113912384985918558957071011426761073192164724313355746462710596209843650576438976009882712265890917257969454579582949004169577400720095997988004802099754357997693297480800791988417955280980702782701249706634412436935061031282144484085709602831091697302719564239483402002578632487121574318050612023410618979995518919297365719183871465037386042042238595266524895429366384372342865824917248009819547354445048613873830668993696444034837556164650705101434097375807203299630695970001660376267934269411671137753127785463941720465347672507733976097609288090673138250275742328724059967054046364093054818122945210283825983410653214036570143587561222023714976783791000660540459896870270354776078080517201538814010854880175484629797046780944968524122454525777669771524688379743248852766761913521014459042011430216057486314603486443530616414214684120811103961965729423996015951390400571791961879823684751769067162304555198943721620237580481173124816764337959753166332398483372594814710591703454139103649405777272307700766697113910441690977518023565868853116548628116807304343881142146557701506493573351239536995999608166464730892061907185934632687435648902722179484237604869296631112207526290717032874893622070402566684041120923664391471301481964124199130829258348286584227213180334472829981121672729836251380171652567256785207071259968573124301343206126782962430462810546305200089613531982707108044740180070987512867065137793817379099339244373148401775709070836952913775384875765311862761007623114455013758050294100979579964910881930211878844079919042028084261228176369036821323354381389429971319453874326175007986378029372702569191467318835220335286676915213350807431900188096655462463448745380184291519945508400360291607414092270867162630985579992603481645957130848143442970734344365392309123234250516294172782766270000107745410302087728817714696970149114671603282994710398733319257264579123593831890655176119819414581541835203400423126258678485608463843619569432287234751517629151044584296831249070343777841321574584521950049063625424111045895915329676769736294110784391014512042844607951395175325937249525343827651092777278177173773274995404169855379259821830839446803550955076699564036468495301734107982131277558190891680293560541570936782999836966339038756316571050247855981013213338950084097823082540922643379380593561520113621865636782677669978265164397987420676548973891242396177558400974308978466501096656377865854592607329788480252166860172331457153583517878485494457346981837353414013704241428259070863507754013175094495826882191638659338790055416942301690813712554740129378130563854460996778845531657621586498250900648150974332946071489687341690258010575142265368356965127196579695495889355691258945562080190563025073121960650179715681717729272798285277601919910576460332809667443189738380242727106997363970797272304241460325009269924460136849313652168398982742700460463347881975547028466091437792196124281121815817740427088609390538003879020084963811774288890718750045533188948780897157541607741747090635305247060206399430051072215403593500884688551473552833906571615695952229569009028953260230044039611011137256218811978074742250851650461395777091912229364391100762809083842384095948479418103745936569419316893914331765209630599531915444694925091619967156731396621501877540816052320565758111869625973363616530856154377632521527201773418611414603664399093897060308094284793191459246609849987099357111434916034997442536334136576581673578220831285435294467386846069627810401339749177826824954335805470214235431032160560359939013955498546609527847321395577099445668488098371727494428361016615504165511687993933559978993080573051788267922430459994225752841882066692281170110767741300430715289423781776199746753169118660598272936330000178200558191537978006937465729974633911851849802463787671329295023215511901874224513760495930121400151366513654952961756427175249462394648314339373383835004451445620163511447944403143887467017000215691906373580495214984481644154067847373898294626704593278844777351739821204234866493149155616913765698683938652895675780525261431616873195990980906624033795331902266416663565529403214182252262158200044442017119478810594936622593643780016535623110049291009888454291438062917671021728693895546050355059668818748047290901603987463561682519434989976483894992156239604280920403838954636517466663124605919533931632732355871114014733861459162927062337575935971149431820877267180044331953522936526044949000180124767089469824738098711219471244526171368009549903632941599605862608736501963481929140907984767529155363420723350298173085328633875925924491441968276900130474592915146215075139703761105585429033183842510292041324693369025669044099450265963416907198051989299005610436503570516417289559116503726689232735528192916058119185205449025522402452321871610149490247265589505773825207762385163894052794329888348180947228974553663977713239855845997657193133435065305383364885675468231995253435929561253925098128638812215053012926026548741495340577231670600186277133390656329020013260752945120768915566404916914308129493456981812630095148451520693796196019974664158994348641963171944492158837121969577534634577183334931176210626514444654741428891999512815146091452714787317990337122932126915059692421638933444448322383730766926325854781912532162917872300236427711292159860067825362354064472440698197355713990728848740726753040435779591004458676217207333902407208709297676410863603499517815250570051842843578616716978911000954696626455783033110711161975092680373692358345102801647107472189455258209701719843088190504282008061981317858191305435471830972286261395983943107941131642856119790492612535166667781574875701648787464092719899578449605065369508267227108257633512615972237425802963433040807190414691914295346597094195631745364734452562841996739848093890212415752545464359065288778644014776957593576455056633430263786290733732170294102090193943685502585555723295730084794432649122494329604434854691850466101738686850370570576652581545667441092476054520311319129412225096189881585556352257598178486983629193505944756509758084938982755341183299071151825580833331890933641455089393455313347093544591545390161205093959119996255123786243464867526526414597824570911991214975686645172045845436620990324892589743995218118959519854358783565663718867861319087550593963785987114829506990392236673237941165284763723069250226453596044869623360575616989058545488062650596373387799544288387431943360214266480146952953860611124948739662172860548894431455334948545985308053504603847752328558162283684091190071938724655630678161686994460489135561610643628394903003567891360275851468729429226795344118301943555644558212530339557690992798884913695889680997386073369919371808137087305184883780565432858613659514359482227889708485507372102777421021980054577732087838505622177022264027505180821984084561681416996250086405836852677641585996899138748384239069187988591964352555329067507715125703934892788804469559020719222148949468043104287833708444421628163787824586350117024607218594227548309009382565596247942540449558939083725407658923986978222619357737801035793326857974389330265110979149736856477636113737473730549982802276604484520105219038547205330883512593688343570333524254468844085581331406535959201688708072437504905047101201204572703341411096882776534472370608083396619603905364180754446535178772448138266876810291964848060292772848236976464539819030543696104388763535619141541508296246522407357042292030273725174396431448464743284078753652867679927823981273729258254971049806619881695727070772648255924356917536042581934826676348906545421210624947622959745670488161230986599488562231271927480192896752732047795837991214115505083803566658556073555654977542842108907907390140324318833797890442570498374546133889707976245975458385206102138291799730810061290841196504237168169881274723338550547365638010587803887054433542288443833739212812576378910448212164786229016455068397113859738472148923529361802429902270729250436190238015680088447966949485382285718394027435334216481717518166057972759543416485087582812509283567554997826834706578999005418007779471005314629836659329020218976189534579793450388120073889506242024909912035973362316882256787953352910683826913853045525446700178434276133394037777297109859339077592568183753358127109005256998312447498729755394992790200658354958083419774083349413762758824943921756865889093949637682862202803769829087536287856796918238686972183528773101643869286573128508313744069036836429166891949869141969048676654306361496060354545678398666907749659619244670774248234799670115940837267014917905513077469747214759678084670122435182057660274242971582505051757765819726292302383084735343739359216703105631557938646266937687577152501590806221266918623588371403183827020032728306374506102943198157895447653572229663820829778167853983425139048174453168498951972438209745345221610196850634196618111905797991471155371326318191529180559777524910628295034004398567719491177318140895533725268626678482002551631955872351680951622809398800548727792939605247290940251734750865098124894850233619568705146136248769790445177112460802495358312825773229084649946997170654300691845500023187571886992057766373575244728492456929979415319150081296386365183894227861648961958285959344122053752139745496443585319436747570088394359924850243740093579689546828560397752401298522207093666119719550863240005432379230757681682534437411948843015246371916724512867039058937848614303489226184041838310729723496896261746749439915313548505256113044792958288206606252242984881636062679362430099367084117209554226210903756315845065410038060057033797337121818036808510866161943944135446428354235959729928130268383253761815590326283226281539971739765271861634673249803180137392840723297036556117603574309664086082522759194820748433918650899120061746761895029715197102649521291460735098023046180895225019152649493499711358044159591473133787036939201495376584170574006973820093197741025663841544396559680344987150731540336698007777056957359012490394980840576453981717860656580143045187223469481048119075441855985120795030655915066577421952720821914189186525905122716060468033154789764684758572966175846211768198991351107201597557958448912291635649587169194244551226377274750965318456793677381835901179425980341161973421871068632434936788596098911736163504123405075541295173433377552259063913723998741038333299204443567268160723952516910102724774365533320881339634013641383592735584525245892781020424356973360916813628699900950685805803716805813295857384335102491928375520344638291299839585105576113158431819849125676688162090260419877537916085922565599323374010569367623591075783814466202143722716106199220984014676108051636961956708136720080932387191948443851643177427452114009049100904996874122027820901852086869715083059433112546737951035769729407960114002532631022647560507653485361502077553141243065138601800445862272725046784510939183028325561682075025867331528244147072672446079489037567017407947955752710682589805561967190550415180034862318023304250107153104259321113718318812127755171133976511479579554551607062158758038740888062921057966155332275830208150583524072301730750805780172803905624363337579638983938149742588751894113874151784576563796454588225729768273186867865419064325151911938682085241520808920389636202630280754763485030748489091461378299735676906006879246220686572432130571396526800898127216598955036147915583295787053063158907377861733178474335480379255942559447813151202281415290990746860577431041025121155302278937800831340227833865304156113643959049523570473624675323929671477133319833613889758980538381603930243285844228861680578391122450831405853347422115047271015195761661871954123018901532124636010201116476740948969003210059630785715539748760978841071892485392888995219865360158172114736961294770918308192239259015980764511824311484782499019473226768178758100651753052721024827546535082122371222440752679109469592178708219851918960733955223008454810454909122988536838979083838902669366241934333732899989601690703283230732689484619370832671596785170411559420837744928347054520878217359027433759425035747001468381780249795739460820552930976342206451304528300282967111451493351053443399508153805147941643155695531242272841465024499501288453421965949691878084513098807504700962287368841627651709212253479054591180218253379519348452035483697353235670574533980188810277959512149483444925557333117096796927080437612498005947212744190021756884069078157953317719235246783515467983638575832280564207874142161041628815443939418579324089480347067251274100463417238999585502498415365264582882798194641306180197261330335963754612849703964855908463057720706341986644959910161831558586041867840777948666878954527281167153326217640200622292365348913804580413281169397883644510450008116434008714026906929074174817408781099816502949356334212686499908886794027624757919563356571196847584841644872949414831120461578063911041501475034305751433356751717690893663802779094376196822922846974604922358280012346249124396301100296384794394653753808271724336956307840611740826805032188387787308421999530967160711256158084063080707294797149088987441115255248112988444927916029535128968207494623514495385932738364678920361176078580578070655880567261139554863492083879644982857817261701141463043315319145284926674382584852686714705053498370251449104210376863974001253400259409461075451405757278752758489317162006589487484155450503540811363051484655091830930383345325458021255446228230994149716003883379091983144914061491132908302684202268777754758466813376681774151588858303493190757006106099536312458220718945374905984793153055623837739405323356641008149736269737006540702511027108048582441381635810835532523757076614771663843650213471277264328661310714226297423495301537637416822486976729946522390748415795594515291282308185532881910372163444857068891820624129190579794372516839545595076797331803000508260008466298139767849493446324808541187869957471513612268500723270953055703103517927219639245809558954674665257310966618041291262864195457191648951377642083784197021298631730028404998487813740199559179756582500185522094483476318263191407227318889713801571128790875775959271591993252112839222649126791743553415873313333906670981206386392772729311385278871080977977926861071578308467392112150492473569332774116941861083948315748302139137041817196679443181390902532800413501899107469744189687228214466885492680478662751713421879672656758006507104366195886380983816498911336897267707894904847182835803486171669220265914052574339035712989695385697974417346831076667773816786877045263450259388833276470520957456534480458796899947166349124127023905552863003180781137007068364990966061555154212846600814315021282297985235777044291633158783906278957016308099751012453041298198190039772355237009246385411920306337166677263178112130491310479979936194020871471774802456949168794585511815649887282378691429986241406108930920821903162132348748748105899036858782067298523737668265181522558601417099148220142886227367795234408106036961729065494512177270400640372368042881422049451134392329870131398034007480539083801153655530973484443218578282050471535576823026394376293140386735935385018043732568723222110663256993378918732324818997401085696398674272705423810952670776718848820748599578545289621554310735123036737216050258271752651106156613473010677195085130952427744605544197764911018122672696932258286407595509240210481304141245152678897002202431920687093908216625714735064717790749073991782313577921080764587831264195589996560364853749811628879853027996422918966190771009667146995821579855219243015921623171365306133093669285775573803736496359176011500529037360364671061230244608787067501341806159034060673695363276175467698489409666487950157557956677844935414365632906390631364680784815308711303799743837556744788831238518748962231141055515413046087454651115914292086974586257310092274172749564714252732747092163559303676978356800964243017955159189714230724608790434905792906235667436870839270096100246807506074781118736160994134019825187565107821852673477423941726132776199194066192738471190448464030499957379484144562588493585283946307983972247201644976215125334090076907276938000546541458261423881942650864500411431294721729157019837513296602551628934414320121071176465428829862372472265260526102494155793214917201200061279138580545464026458425009716528812611193673209931381582652600389596759704816243471985795333698674635014165127808201482972515045150356478467809379413130695895315255422548137784774794265787933383939244653459706899164379498596287844106675149938808413992125088084225232731439227558057097747350266799879731228216264338012258019405443181258211165445596139094829987771892523417164060416526092385235232813971225588329888637341893564513897220723661768352442227947320353711855170039491443369912257700843444212045777755220133218350495130233008204066919895845175682630959616756602705266451194709790330816115663981354365103421194719045348571638748799320350508937517599279555637365913790312879743884958449496871825183431989444292435270848571637449539208330042137176012925628130742960983362674370988832943345976929804139075915439079989193055046354129102692950646251863828241163024370855752853753891427722918555006705174597678481789284469486716517677116287113424354306890264519401577471248969145290910465059023929136295739020160696890268123902233250767306927448009315652329208114057475209466920524468242853685742033869275166984820810014551749102008402142736571544441434304334194774603706432862490488576124175861374007241737887836001321353934047379216503463926713517002818536457533948788112775506383852542969433575836349341278639184417951787387509657171083837420316619693422397553702863960131952742596839874856123066371494630974153358455548962431011375143677270789509141389708569412324422820159391943744184838180715291600278754181864646908365105493093562451218679692386294084767916415253029649982159304866588966319883363916430701650960985418722993407569120706250461064803120290149117781707697129366205560184160862580932556596809649756400944172292839285897199929779981945222616343525897746692682244303187995819174167858141158479041098585750229844567879578480280023217611101505845574893671979532257781103142837661113614927754515661976097440990361515142825417820902218089770768907366369891551318911507052622361835674479782328493383717850666503888087256747416248533758538817855906910177356404991210260254590572951551038915535550924539314477602373523467624523160102403541925797213677884200697042629786842035332033791596877741687395021473055418304873295011463883540103280680514786818441561813240560855135791264249608674127612707423916317013344415171378513290810706442685449769760281406059158612167097518806893568874204013514387217645679775485488765177177790959167888836710083790546711064098618588800943820086167534872910119595921771362271639185757899556435023817292310281877765438090810808579143176592711298378536096871138216299801269172238508824188619170671847250924049881299106450006994417183775357176841840666357571632851335135421252285068632837150159558866445882713594329854876381696091564711657751253770784560062575233271062837344609358352689472133366536652823201044762538851293905889629829227591453079151100413771296356295695704659217417185986183873049487548807842574653403373420615103412859672240135762832333649843824509094675790470311750392633001440155253085115517206732707203586307042638662042670224485182386850508686299828610158013719561747485209220846397238455000464016116663028315590540243322797918319317817512503191692818294399701657383181332832556177001740601082323516882134279401055021100765394699202686539910801546256068155362364796853436438212727439680694409233258821883758837841056989210738392569284769944416567160967135554779831109266210854560095374823902438756943284147865946317028422857688844144678680406028390711887368087073427292851327305351303360698666244778755102522156888898723591559706557551791870453819473811722469551582126272627746393667867400138060164664401798433812037807059713445307836785524724256583207702488496689378361786163587018079694110781185604961465467551877233039761963880221706548009024951841894770826533921340707520042957143603121542595001852992312909378284855715000240019288903739430208473110424773452980926310967685819729895277396233713505368658875940682666079266622765360559297115709945166814159714141878170999596591214411704192582540196290784472795793782190612766696820378978995397792277443415922877990092627650739608114107138440362320436280957731165393798287680669373644462947401373921928117812895302499433968721164281788702290629224758576305193528961123782010579460494769529687927581166136727475317234127789781737056824684996094704072539328922871503770161202433118748908585006272186729642676210842946276187408152514466401745985785947560896455125205720402751783697244920354803250001079209087586500094931494598235805288375113855195928554000962138150803829024858755139129733826130410425681824767529973385199819030326420071250287737493624463084216204779081049043665351702644980268012737889427889279695764476844030973224198728364167939106943664492892982840705710899662727451627084039477098365742974484529995438542141943475277347300960530423984426835781114391917199895699849051957530526026656710072778261378762850267217261912577609070118013468584198885523096885375817398256904097449849250857726339222859793820373092881171552457352187418017647209684071670461654758503943365892154919984510008697002675204510113830117595420711775733751401444432942471853481815095763555394157310421587374692686785667181412815746376419715543221426654780230669089485475379887111766530844147664664031006553149187495182223023391951482344201076929565697971994432786507816487507483467513826857893755896949642174279238311627851022401614970704648344537940541972997773247835087905324272329245326855209806273927299926566738012667550901918629160890628206450799453878675180549554139851090473648700636838903574728665351407085932145426989695944989937685826350984810012366762593709387253479538907559433381079261251937839514934229772420006912249420712270485707620190245669218782306482647477843516044615217378755942590252234855121178038929472627929369703986937908128125631041002804063135972407184132323583349733345739244649540122581189903995947073810372868629807051813764883629033933815341964890374495470013648433740793467417375212521141426337099196993451578889027219713533071481108815794903131139468258375618857330028864901679541176960509117987951274225231417249846102704482337069437818694992714467599322576637506017165035515749868703152862573007633771146798232160344293428377786296100146627677745839986942867500116275452928860052620032398069687346456705808519582870527346131064286754853179458279464677475944282543545549456856823190528011513824057026674027478746876635070331609854847322690723054341122167949954149024272436294671847845017557735038454697549698477625069166558688057768006872461273052855516397060277181128288771397302252036985486416336809960453831608104882805943522639536696912635473871183971045888217489348493401679656453094582946749222241186999313025685298176259756650809365067330652739013800517740737848440093681685831343617220047427509426581811591767907455960050015191002046435761205555048315683245943255938949943483254710517026491031144478318353469047351302236301439137976459687532113508177551640563228049526697675990410077818504567388269896286469617225759364342595220732494490319313450727215984111513574842933286133330305207654513676694813783446618244949047758468893311952662798175234804866843680307677784206199930430786387029489889236934244984077652326169576587340560800974789324490268267023385735983100862429218564509502420443930855375890637975226310336027676429663514216733343954211806221885002901618440427754051897429425415497129959207537115302404945833986887515139803021841701456296272554652390382837666332049575920921297365428920908197292799752065041507388291547052331980178553920398440860213975633662285223788873091944753586170936897980578481909412021110507466566855355815669578162367022327989272557094572876449109767680090202802953659720115810288005177577029324625655911930095898427477997747661990286872898024251436606534846083664469312624482095304351917383190410004645925768092893030461650524089554404349344105055394428016619486186588637808112703327688273230210466108172226853551337284997349946894118660888038501701880040057103879774243179182918014740561924663271780097278497027003796228658902480094625131666134008817000758251951254443850017316233712368654956172165766021005895852068678597396350372447934704393221547504637441841967734024774372039962803547075624634635540575097364493760037850513373273348550090284326688737704800911266057517386938676767117066995190854794029432205561225564247591757232848297006870543587374107573064042808578205541007173045337289009564789364049998037229830700662832498584619060287891549449384015209148406850618830978548448316544711605664148762975520365814354344214327283575286468459947442786993924701172474071416844239981823702288696494066161697112470873211256328618655039844687223815479942562902148549428893584443886571535654024199470122777855092068696779883267143264402200194415360039668810786629012720029878554536257311067971178447453623684021586311995188148992389882443753848891270387457155644461142823220404680853433408039476588993811020313802219958695909681384023205788104006289782605832031644806067990651492828117793012495354508599075122992265014939189306469718869337156831003905784539799001627346078718124943084163148617412911254428442700261071603732818033095614821865670727866744189316900836692454583806244123610690305216625524351408746010741729309241467591023648553891716061450518234245392920554673639160984229834335643402895245991510827477761859779545469538202449647186791482108534894473797571954314921948938249260616986529673235575359306930008717954610735604917407374459616173861593331557812379515084538542350583169512453214438658306542880472229689643066170525672898546151664596191144671239768546547024354040357959301520808650156104384264674385475920541648314907218474176728739903531620250476486950681056130812462638308740404422898931564481338885364838472281557436148779563262275728645787465785719851181139120353648490328513718929855364336797531131223805384930375077108940596919008966346238411491036699170849307795029588401976320822514678524437328780228376238721974149524705463136944762179825286503451177288615098249566731065248079361221724539141050492193198126617600595444900152281970700175396914056479443424322227535698870563675226203054863576923905171102417364887673803921590891874110896748530615259094906901731030869419920561322916179663256715843039951775322754539806598351011008994419465523915147384039401144626695199306213149006893772818104002647139231953063595677427417072456335483792344076616385751084018439888393532542633944212228375751435041953575998258651904812384213851855189415347170126410343472753649254656999572721609479938521435198596864285303027641562162214294591861234413113808853251709635044049303537282212523630097881145106172692338904202768214107421065446801033401305991636049407593448218184915107905944873709488216323767599289420186947647527070298265213724023036608832472736015558452948116333198382584463318530491603544123990309084828198036272024349593484511833663977372382690209605832620362797995585155898742504582177917808577143357304965711361411976963657883862984455404973637918960031075225358368009716897867096537490798967501997231468569866616160061875961169412007168863123659527521996890492535777861133377411202696174015827898178690234772308533090537417174835252652326599203359005543517647191232518227290526715094334320072078694368009153297103730930167630809353132315030951777571523220735586113489302289913445736926464035738064034646919702660913892812841744381896024111778962619169386091006907846728661661914006224294899137702966581919602348393686425483216319113975696558623759035022433236309119777655794498393672983754681629286867938879836983358594824215836639847355840342648406364660919189337496275776436353715960886571132779675621052445505964667146549847747416381634277600878723136789160191287746459774202913752355981846572206087501295895053782743159847337627442924983969355962494226144828744865281223032480360929456360349435614291899270246976841935786806059443730442233816463818175629687750633560590938527400184514245648650057494579663310585560163294821722845043731305461252098710604071264227317869962545360752622474846694728287136235412508430975951690665878300007625945395170977783217125194143672733889762951223909703684392358491802243169723765621715423578271404788160918092655500763136239178342955245946048396060041143510763522833969541711877929286167207266374989721947354218302729382881229802374150942405349792607219850619826528759350720532526343489588994449422870371388508021530508762560967235083515139918675730948517625270901546994950410207889856434854618443981206262994558257299144580571518272540878223882662593030486488324549183482743364594136904552368549698809381385946303247012849294504220791576047816297720163711960957845294254233931458251048015706747507018545803223314454753966788387350770569234620293021577037036467466776078125310773075197184584554753523795815882359814686491463967948046207709498360263363543692915295622530218228687910956824112529109243760012774994009878665960398085111643842386375535540936086077315696204528087386305998546904014276261847418765810689376461663902925943297417971969043323960288103902478767143380832495963267170246748141611267934540410634946767749977894554877779619965162043920539229520465580985788878462721831367577267284016950457349406432274032952234763932039614057326144723483410294272834919688128321102551227177052096841561516033686140254774945892039796497023122686424257414657686946395818328655170417324079303162839961134107738261130864893065728618036118718887960076200370236380848559947531655841777837223488540969875945450428906211297116270903629755685455404707477978301799568785219237101674874766770371831057232613512396383479664314937962797708465259421069859275367006847307221231674091007468264909502459310318569428484182979552015655492554002768095863681950399057358583893730743895018399385917498205719559207885869281389310408722683707381069520624478759686780306444174579125533099483042592298952851751671620517474638994206539753713965952803876155896113736481800168290901575561240239695599118614777286695940527574987287286934439080206642515488707674717907216349811006708214714925373363673783854613491842078337787566512081554889339119494914297569860694890598312158240433567884550710632516312437388109770211976076524859073959977556201633050935293569103445294545565753749735120344876386949979226841300958388161780484151373631643112926588059948307805511432883049064623318158580047892381780070654595077315472614415510210435475556676400983934783756444458348600091208273663480818476974649986902746238623661846077482316187705240503536333186752956866613434589110496099222725455846157022055684870900923225103809837162407880539777326434379032409173148404997900227692101076409207201409634605491830514834228403332083639363959319667802909489079622154785740801191707726411265941481339390027495546657666242562904639528457807261990996597344279648957576303355539263925474213039262601039345979983881320290681685663553507791759244357890825867959361542114176345523115760502821454957821806108019288166999390255979438997090259201362199208174795951934941396881609886334017219872742143129448889451872006917488892399461766734020591449324384410718603448022373238082168782984533070819651997617147651869801621969342553684816117695205255752204654582963085193681726093206409460219389918737758080321356670305112618505039533637916543328268093712646288033503559452655799890330108216483048126700243444915050199087862099407013942810940010365322143112921547387515641515450578346192128325473189500660125500191081027481606843346998574709211002487996124564505105632737494420932476118539845660442527625900041635961253776866465332237525758144280254645080543569638112185216301015144701825380098884667083266952044125108792584156057110970621129043727232203546671019367245324240478672352908245897293645816331512186021926130112714037336107271342739084233909794458484553634786320180887389706414076374622333929438270780817681386405553790488862062890294459833931664194337004320281208888750408840581251507374980044310378537363219299383565065628720674710665396397938647020191753205462407332881402494061656346862443409948461629795608780102085222664872444378601071523302826701390967411559565716544511941388948402767889750798594674766984741457550936143453603120016342711509203111287055111947875938419044847771696257390726638082639838839695960610289345600577218223927360352806892938215063704469236786715396549552022123321747803008844953288610855230489023721612194498857750638995240759092352908929547142059267920639858769040472082957583772188094628161991015891875534223735104489260980334761739286429489149406099799904507696753369388832757347004247019380882951745015274153696815536522854182045968361018226285040714870389087157480951816481655520261073950012685568966321152447066932868650266722528385992231894744583018293579377634427949462839898808412502144698276771966361825651281669539543591414840874346795798513911721632052758387523631502196117170660152481279498921994483554609245508347518720852678747448027191074505306086870128461247857363769661021781000555252549180502179672401407288209917872302030317961967659574944640178245314189131316679197104500582500711628149202349962356359249526740217588419946629653640367729120583356696033089477056648046738095922201754307247376928092069817835157145382615312802371798857990206704566894522067017475227391463528687650171707885236556535089488356031518558671650911475666246957294628857893715151400546569243641378637250767733194683311339668628428915670091047045073188334487890355139608848148575485926326689059692418152624101770888997459862913171771794960797603466203556876275167122294988542982654028470829809423994173340138335553846616226561603393986580235917217894789531675428842077990422364155609925761640577014213600447280431972853247011219678818097160907723268970555590467779494287261300699766988241219459599923464555023271079299795582620178223984449736830714899780988430796814468518048299273841425314069261711128956460397633224587687538743758210216696216743702829126754430082519104597355456577869072731986458528708215244159263209030524325200160285467072705842246720111246322954684021657096194730528170042019521121783558732805737101001170992672569643855022470772696953679459516588965727589507610540892185110275524484464588050570061228364724218063068896692753966589944398528733742443320828759757280774725309765872325149001049520986033125956448132238948460458730604511022595937030391468975376818712120139597371666487099738517543928218813476566458274742211316297281984969363424773519809121536288958129820928603931148331406511282580668090549964498203739197695361726126194831981572433657456104644966142761827055023482511610113866951594447276752641696282970361507890488725933672506637216651848030995698561237237461981736969312483070626038415549284633259426270347265315337650022134159303093430608429087042305612486158340531222424854187047780321766099590103838048691202165066278055742418099266246755101476409105413612323321855806543691345194543970545672250597119081685031875548118342786812394975298937204255595119538857284288213523792796314648905542276958801470786457757278086524287120331220780817324775480318083869273859846973149502129607605485801936222339023152885968769331426566910295046615247914813786556579052134137317497660645210316574124963473650545641959412591572423539339923169705283001518021858688521861809731428560805605575609806904763617131805893372936495135390864885251603730570391883100006504088304792327051696605407357918561938958641874107947190270427435071799574999814686505601071181800501076629488642822991333374308848369454742352113444022420124912831504828801177129545718964792100984993625352833514104423043617928536215557020944785263777599337731719114306382769993105849385766888261076869597583413242516926993251543806788123577386374795937090266638328661793026329485562260157802012503603538504266999333661806458986550814859575066580739121850950811233450569854614469951305866101152386505495351730026594224175159544522689585692299464596069573288388234775352962435073836975348662098335328105927441287121681882284138872284131610683339969583992521785096149020716585443134799506079093308375611719431642061738480701169459868535334400907609173724137872660613390238992031848365834010263943018470528325870923379876965056801504238892355624516089354700657410675994260257126578574844231756411060139606365378931223566528556046247688664370469219586829663525899976016505172587554055918878181451488096779577436005460021401953027570658866693518400817182181417947542062419907869477739345417822983275496594888918827379948846138951271211911503639407704137522504725509494296195488362988693979610525207116160559812666836591635114722924756966323435887474420259059782685479082700648585265822820337241492118078374538173077437018034939731498049681414101199550262883805625872549951165994155157838999856271849624571282903335498523047849822467792824515971239917931495176010399989430844508156193361316720730090041174616505751246756745764663318894097550330093612204324829462850677916911605583920731577443704287825778340211708856695975354577471988168077712501571997214551578032244911076669235278309979814779389289923430949036051920098199446959079676121829936793178168683834154491675034314389905755140136806179605433329180008161372859862151328438728693990253269468213381777120836587887076265300096119446146939976609807008890523497130184391614453331679160672574722518993584132066427760287185632836816759365404008167513999340465377787121568950993576354948872775124120961743582101250981133129013362028601255275219179397525080546031493560977736213110360191914590411235176321297252224570623329524141647652506711376368758994192417113211097633658117514000967640199477436320575440236012190277265456253065586383348655596648757907194879696031211664029270565347576490323601737800718987367651308591546754506969304779262276662277708042275208324118449288142965893862107962240545187774924378274318809959202640621040628823502067299902411007641209356761755559037026528676067893919240887721748229647416834730206111060731880243223103450047607202420953889288779630844495456919390291721403907384539099307353963508489887892789320605796553472521395042483663698771435964366236564262846615753649406429592845608712771336099951842397505909900451573157119909254533211353112608480172927955913851906145709812570273314303552831241863058250794264513196872507170881634122494437837583300166689877035771985436941434092669878147243496696481564432138287363197156935576486524292238398922719981579948186956568530353821277638726483692928281635582337516319582939569466205634851569649793263140921564241018669838994629754542726753540882787291111475239776051623391210580292989820685563158245693243019606598257280864416099124914699895306372248346246695868367562872219929755039097510862756322712191973813337244009603978016362128883777259279474078735604610343809005081374828018754627977443900179215559465106904274721502051633452417107471071668789533729144052019623005782042133886806407443261476844401172417247822220687495555669330503298180719039855285120507362180292213356691321960415225845043204644609483207690856110748024087284618089927527948726870904380831830588946922587555285486345258981845886222455422632121416294445458934458474630484875662909608726632904628973449529123147571886421247897453453239533152365561112420692758875928396880492948275466553915449672213692005533156764967996627116388105658866900353419011302712561254123853761548504653216045569404919346389585605255371878807827206510100823844950139449021942784673958883089580724427400574069187959478992401027447613468064364372197512825509018044214036548534971820037717034885541560735648262968819787616136466603440796744301977126244718084520708470396685628939974750559621669562040154286794408700504874527523027374362680846900022529722038005505857376773299147852753018309996100306143227708948704888993160661088535119722992567347661844844329187595544841065849371941789988539203392612993753596338709201925231652858333502814147677924250715241446124330547264442473679861710096947244908006622853125004751253222338004779975837036700337095650053230429408836065282288051325630432277442747272746194040274082177789319110741059136620262009977291438200199444501907723561211310444533053731219827448671830320668767657656214800800309435718138631126072563663459265355977407953019763147071624112281963740926959809403032400332941675536581501835869574516532510281178648628518516758900399513518300801136710324083240753528172367036536405536289814025389095484982026460824203603372418388699285315953516831079205173570491733284092597549454184329779479871146346901182373524782983695359482186361133176203998536496040527708312399558137994078678127592924476138705515119076495926237516598066837450903395495463662034564015942684304307900584636489651426376541979666536659489835174231435292511231066575087942323895481914943146932758581457343401075643999946610296339385133450003042399649344181601462891451201009097754945827502147557167418028065389273680392458760109047966088285532014512722183659866247419994575616342579505085907329478145785859664422884953784839852751471005406701963066795578951417017804803529276922482420903152251401966714777577927452032015013494243575651074580290910081760257837557952938781506528010529467843459973891117432917009134122169603272535316967558431536535084710447132357433625118762926104065278331470126808674967681503637909678225712401714538937390073256453944100259532966803655771231259189393058574330340912718601399942893718400144699331598578422294990156942022628096178595591575082650231604852466614906982423602123488712938588022448971279070811065401864270745896285472761059553755270250866965801752870878324158407371515284289642421930728810987953405309242735434849003843154816680083655893153729443522462159543748567034168990792425544682054386487455721584149571745066649749281089496521527088385993019933463592408666570756456998378299725322267315665718945707556567146778752667963671380615997658278226494846228883655237370802451978866863627654436582271626102853581633594670731874038177871355295448390842477850498592792604128155144868196303152771437260648022478014563848579530852329173150257374286593127325078712305944172408426050017482197167517859725861963117273104755875421857104134085272339397192937491325013824200711313597668204857122461307312158577112975616657348962588209655600338608841164330773501497630624802076004723691430223250142635206874544344063216243106886520978930784284009763086743661570190096493508438308059940034719601542766655161348924038919490956759328235002613203272965893441923643157790241158793291228836143217404044462123460111888442780469231419423973913574864832242095746778778849009261312685413431181134267170843442810512999500372049418335204049329114677092613128732783457310164127204933251183847107068385028378575911610040403107080237779267757502569378957102092148542344976589092871448789596402218227349972411303327545736133922578641991989526068315310717713688209049622770662692273255692798355999261793421929342394842863790308569090902294696512682318019295624796406701667973946903487876101725059089101637590324730456988896645835445101903475992168412041176307325167979508600251066942958125242312469273835074159494741123608943622493911401968354392009086573844489494415176682804959284749343635048444470020494711583785630942325469980562253819433471150810463286053437066667836214945229368841022676217668293398377431484833614397841123653235719077588987512171443855910310503647352833913345721920413271793001313379094423575655414132930811456911739340206212415071555068857960977840669865365990740330180945204285718011360324206914367497677982087150024301663831353764256612027867837256906759946527815835760591985445285643976839539550754463794782674043915255679082039342812727845700676443827956252687533554931051102814767627001294108025054215432501190315390452990220029839793324183778123507983494451220328978464535389260056923183946502239202495108266601069693958711539418288641006079051526998329377095419849156464583837890968139355490457195493133769480920001538024329243614283891194182882113533755991020028835292885667511372114570882348657748271293914920927474301036730025565062803042944202733017948385052489651792562052565933869216943989174344707293132709485790359535194037326817582137248211233850730515719361306112157282784452183580891993064720069072458104121666811719120767575053260047153145796766890889084934028835799646486320376668206105568147737254495046126599412049407035774468445891052766687928166322865214571928293291263463086916972520992983264578283520557863909944954457316812350421114140540132981507152962963246001501473514061669943946658072635217157682521882074042778987313868877463067813475221678527566702095365962422586389552398555427918478118676314034356024752497456322134916891383587696523894173983227722893360903564966502385874682541478541977393955809987020494772842126537395663864641312245284000188633182659662863106769323083087009949042612026645956619090441658224813094710876985327482295631670609583567861130303483325680337986564508990871244346937544216819324023225604254779454533233980370670543718935834273413398418135899516731282314766236486537909288898660335332636390790742381870563481107514806110933921984534364778078746345157214626593758434375055347923318789770874719754182199479912058027350172051465698161538952388840835137760288036499485183979156571201665071394573324823219594404882579373172665162412627015349613521726098802320613110858233274480083111198713821644154316171708798773925255599885764163249593042738629609315491968681952304921787022123562528183764863402897016754946977031043757397672148751349690594315470217680589769487831322958725119061467393950308147329928758287354722767669185001670196813428598824381459550000290588264888773080312078724524795952701251185616941842098728531344669724782595734328038530228111561900873734334748020187559109690810658778431203865503681836327219430948976730804640205258060469906390845771248162125165038979910194929642981313971651533900071467264827373330404226820666487249115671870443451649990685319104904482987957946329427133595202486646491226123662163080992537966428848899683858839340984381761027497902082022320204970469140953456725563809078171447402104295701523024631206086160416339475020428368539952200653157240399077640938804318930321687229998985439400117664285540227992679947380503521954420483664630622443715085429714559334806719617185554919827482802596839072595731617438321654162116759282063352056938413264316646020254948306788920355150379819726776454952074953300065255742490973040193881517186895259946251411864787069848950319966219284532481955022972023431834534646058038494190889914521350515308987676487862583868552920728307938518843249114694880800101506358001148976123002492977329905323412617060051202235485145891877692176063576972196176145860743956573330482522719281470827719439607661655424497225630701799222834579597659726222333018805560152366824000982670671774489989279900494302152257805942758833219700451912842590791167594796840853003678681324311847385657477475283328033098940035113290491166558605388057887085136958725609857617147117132656068860228185892084827145566564627948653969210212474735730900626303358254551214006745295227869596916201021486222162377901802832780073124984471012915931102075679950411254448024617392873211108610778040417086528172661250977181622247785239567401086250381867304082726137539415596850636008454885593752305802912175218561032591395973136004833490775653457852266529732679030988850304392859970993468451988041289147247819799918258564256842460489742196514836516137656173675962720654683243110957416756365139142586395905358209578667975979501186476261623603885321057840037754905030500757422257342512131927849927406781223233880899219029386125950683341117235724872011309490906875145121656767558949477728824311408438093476743960338069394398111633763693968949779299099317877012722634415242473977787192199502811363608867330750306995944207665965261526131106576721705422631328832681911803788664185079919099807062310540417599132400857169471706298551986224809719540271821679650371389141885253813219549578288676921544351632294777400489595631624385576213380018293151951674572928077500199463368348827014372317494179034605794661431592789610698735076490327155368983245883008459035365851733440796597623382581870759837236648067764582902226648314942315667884107745233248987196708785801133355328123392414362534128275323302617300576307686837173896609745542876394810400466097856265079102114829302574984199288024497431576855778453205535915885230667865276511882145140099888593534879398761954941250280166768274795764647025096353036966179872089163191847000686085107752637831905427380905266720027363810375315355207286028745873445987827985430298862569575683897591964769043305682183422904009815775697074052007065173342792887385155813465564187435932021213940572366798418476548666070476630638063753109983951366922270280485637313074024751876610837283990149914883119188027466167508215235645059032207585327710506180061004508077297330024263050948026360972225181257169892472221141671254962080876941878478889035885624162064031733632828629882328569152527586037031565823210697027769759408775091356406772537855119670482113503103518327042343676624427772361991022196329349359502176021550973670419656388561991323776657955834879555544292725753234148509089692806208515265868631665513205672940440314956341524732688109359941509320297537920331449727480452500327365748168172187389012552513662601029586116200659929292550908984010127153548542916074711450683523033532641948888410699616090223055974273449029989735833340335908428196324788434228326874556007528050064953721256483266906602562138860771122812760263115918327551045715757694766117147000123282909043228843670135154823075990326231834630926505957280213346986147079871644266636642668255114456698673321225159240033005545706661889031554704383437849322609175143082278152017174811688070592572885622964295627157791122977655359103577106822570513377443049095559758996434818940612857271290323280493906049952031030763021192061487646057296057720733296640078185593351687463401367344692034048011201825464169733846295832478336322506621095883606932875820379049831098721920572317055082747730787086389453519426885167195632616592692026918303938452293068410081486888062643843426955612549877972268652389266896789966989343416028231006300169458413531483350006112804648518372018114117423922152723375816809247400056606050969643610139585389614850526716615287347200026350691348018504820881253893217476742279087167802496643598607092270567118754531213821966817379289804571741251459399846981582866396850675003253365498440654650246137710224842971387324186192299991301341549796638692537448037205442445236453944211296251242901633721861191163635177061112659155019747704588120760074366370982476659187958182225520993296467383288312372633979758262115831033376151123435964770441484712659722998236001164361528750116959575340204616143991556289682583885427856172392111077303957875290513409099593098896683966500303831420622231524269818742294995928112803358235789606481307933225358725933240577412999547427346736782679750216407200041931601271723579263699383996836294805423272093614431596791480811041957847243207168051500971582523279583051720802546662601676168769922805178751635620321950333660758546078247748084231907774849421218937852349555452502866821965016032158847378289602023784413441741277475904598708119188489564411086212394466969381778506936041705291233661654640259077265631039764658524233991329852816970474520960489302430413004769827055811772363031437905055750090305514414831458968568451072019954964552707674551502352876094611994626785595686001511345468176794806990627374913416301281160002038810986181162146191629316946956464112291701403545232195003167266379442096655080059799916151391524560303910352468824037269927654857691547889397415602471434504012421112342283883798043137502197103976781325681433711678580537300163279443033143532583282240822045903984548481030450068934459745838155267916345322499953667406666141923778887395388087825427086938853335206961984107827927975950504968839793706540514943681269152718398696503794615065530501396981049165540157915640072902220976795307058722511623014901163609673601631784021303424642640561900450570984543406166544373723215409416734067183086894812890300632426678842928799072021193593391454232615354173397618053795643714173078693742884122580150025660360465574638981673259990400184298318896333145581041881317761789663096880541704011654579913604117423300997192374462140504144429345112519043529378109986816248574128507289838816078141513456298108644024571685139187739310156649946944181632366628802621224519785110349399897438492841359742622008666725288603917849330418266949678807824187435179414129210750258963715747997049445108609980722321710093031715131184991232071314662705789761492064821871700834011350462343959296615176119069614296457714033677119542616085249022842927010349953744136133130819482478886332254453795463546280811118762048592165368052496091510616075620578975253046653637334694613180250219036254395095961550619918575356544103016468165110914998815509230799462957993538619143336028521423729004636537113566080503631115321420015740065340122085803774258190747553087004236909398227963412143562905748572728275824449730320671201462860326639981381742287299372513717786288248492787409601019996423766670006288760907193719608160470694172850631130327531145184944180493218215544906548028703575633652724433580675525042846549421775939938238252218447314392007917630006331320495712325455778880505217500001885308776326831539231674241645717095418429667332602081859161619784900671728220486539819895089331999891097056519308914131515581908617361770876177020303612026939547076785415675672272720671765577348824596084029834923144355021836614545759313954688005254564671639248129867179862699163636436472654047747148698859434036614157842392886052963364202703453933534251196974773872670836982395544779235707526863036001226026272722634370280927202717434601422224486700770150728156897227976854670997970542978529410515402429146367775763328966049762350262957835749440214168389250765755773347218113641778063626224232665222998637773085684907294381492786348858128829439872624795590077219140219305651963015805292129242079355596509870196013511719484596367638019081694649513008923595844613859442028587851202814672203434677062876632136047570291897631947049884431454325429812733371779725927404890631692648651163595068332063658931043214836857224558412121062205601349859969024850013698716831258206318664485220434198580840955017879595376990302927056606490445309351468431622223197228826871391659828241298241203714222834306635713223543093624163162573681361250018579851224934970035062606963673878383031295751323307634963097551520417161684531326377844125898374928275892797166291754821672629536001813751796257609729861450191894368875901283961549228900323608089081445684969737824678882754865391020578723848074455506487934669570128222999452052344224766487934141637846898631910730053475094631411481681007404024179260301679972042671138064503077293536408087935727199231225975285440389403523709094849190787031001205346179305538124328362734262458574927725167231159709955629855438207326685391258914991156139948413410822994888623196848744341615331177229707873402642413795885327533436510002467824336661004900523818115344047455812893305341035075977751128803704980756968032908626095639166363446313311043122913768573757489850987827878986612607125860069882567384665371358282956420055339714098755145319779232761568843720414197208184852680990052799368616348260684974852097707140139744592480014252938401078582435475105860049332278077225365979375090743791208237293642108711728642948240766494258664501204329089566980801252049820902028653657492631857073263882358391242512781442590286725892677024524270835641506306990340924172084454890324998714165812047433390452171040408445355444255704458452426373984638663635179179633906957943259208071221136655336635808771084277862289615572914938577538399718496542246784823998991848104447693020283857926483876880372115565519989643790699238758329107279955674844192499375402131245019095472654170797840904159969556638343466490706316645218742254954253781602590641110861431216932879835730495774138308938598110632735040588612975050725525982825135107982628196891230813245924566178824409863538281656132315345414865283481187591131907111203613811039790994277921007248398527259183577490279401419196985375566516973420282049085158129770865097677307784576976270509236271642705051400736130080927723054665436359316017693571047822544317303625266587118996392337405612968146213574405341316369733661253265863549873126814177854119362342276439256757211564796288384358031342528646994814743827591124976925096466266985777094588831673774269609590130727294742712810174891970018123534530702021777434524868317257537483821462157782970667289469106708546002918457536656742784004848197824542050098064646725245433187786430402376873986046450210812186253302801176788575211740679487042160964775945816665115021956287688834792691941445352862938809458627236383033059434059275036262076721933737147182557381312566878235915779969924451414574461620599173453807022090725134958036001229980884548420497394170129061133137624899238139692364992016741843057632124080526398291753002375068293981977155373404180368237539624541122530085464732106164991977108220413624127193586092441706380855749097745959213878725698432998162311458021192565680735197349783743024727204127115124816689588950459247751547145497691971189999596670317468265844346493709084181697060041897305438770223705697059480079939777110127203048036926547768536946725508885230139259512927537835516934132484074006497499742665583459745177740396194210551315747160846077366584052631144654329679462392327222091479253943754095192542790936386556702566886602898119925945530726202939984956287587636057300034308505086887664740088486929021010840095429041222077030399228019099821797646930774562222307810674294864929899806526106281029232631260819587101589697926613569396066547920907717473060058732096093331182037441690693991330708903780084954541479993676668040191742678177389433715360283833306010034364333631266753402360736095310344036839151100107540260394879479742145028064629292551528565341124655960079821402672479993594423767607915965488057572872165187963406080068106247364696937358982639495133190066067371114649428123744668112230199169975516856930665901376822908623599771103643828354533976610083559691289381671103889826670679845394037903285689197691783125954950826582415848198919163641804719267182866578959247994974120177829446829187854563215569160956991043827470485640734783459066303826944277007533143421006781820894200767833793018791801875756163416798319337780215565586765612355076716222635924308104866982165373417184059762405876923056781952936680669637849362961669503516151347058949474878405523875253816320546321428335637281517164750458613149519420328962682034668518611085737470036880601514854684879653468109835099984220904900666329458806201637007709467305089847720679312589171138565283821429053751619366853174084039755223820217658248443183792785035929694700439728629337463195222985686690007860196041157236519832599161208833090991404284046722576659937701896405569218210690840899743516168325162756062171681072414770601962367652351851588923473392373822476459538936084580038096395663621066004512669768127913959597431834585522662828395954677488385390787354485734892424334589202227959593990353323555693023169070792174407951366253979708093988022169682160473639765171891874921532369556686102561190277504939803893006335914772698551050686465002577076968309216986925739308010830610342126468200898015729951362593956934922548639697423556269727922538071910824605715245509670944093428169193406088244958410249118986875541811067743926104811843574357725653255744900601327500728265219339458875381524558709560960794219492906986704605283507396932215238860013871464128520038907939175099465762427117606430857720163461296104727912026688365870249121970257839220596548666042161339815998476732894219917525269058847668438977924227310679793409927935404804929768347339227439303006941547376131778959973493869598416834641472673034772812045327704286532470636727501338068142139029708274149255086296938139782165477820084504709690228461975705063816521111810410057187172502346268095985410151464610316845025794158540099880590308739409869156054011061951888787444559174265194984612298984786964813415945354135500180453402177928224834129603987109401811973026159619410963998298173315069944654072913166818034970053108000803946920037151430856054519680289166489448094378289970791841297066465711447128648635351285568797274833304814479510598058520693582601465580900336301457685499388231115254475915196414713700974787495488436536680871077300428074546619545466932675275617906240083536915405976697540027118356744514846427115521819833290372540062021855059084516536799560571224582112322621824033078719529193382606845333455781614758370148750864566971227960894967155326091006890305109192065188711100019329100018345940842145819008672972101670134805814907987191125134228022795130669875530134306732111241719044275790948414636613146336393734919690522991848451841540842847695740685654284618767646466407525439944229124872729783923047191896516857680522479020679591851125230114035766338277501713596482476202965788667745234284016816016556521249037059590147728881397813983351944245045814530397244939368721790703964501572089748551090471008938252680334807223375278268916155360340688971450652872447807549097741921926848107268771344355156659251186020780742178895153281658873137608432160768133513556110872696326724132131403688734646374122968493954072655964461673620209817924811534662934477164640311499136886358248340364400624472221788135885696332726405369818843188434334298465708287951392195299354063431321983289126088288548534641187762610283082001001124860218181109931101549001911226802353909168225666877070152938251578693368404972963150538080614027138229290834389282846103158600785420991090719759847354089610359217822139069744422341722132970885139094661792017078809155046649667750959646250015313090553968780804700872264323048690769267370596405748896430721792069455342251876393430742749446998520584779836263806346047859417938790997989671262754187955861225647183232481733026056548063867255138272425837504418637988027595071754067399425234018093532217374016536681137258998699239095235853287114287428971351635043975674949312115371172611766071123294085353104594973880597810424028911035192439058943167505415751658184440843164304582325314350686641641583650301898003919732599244461244517171437122176940108101532656909364509314947414015557455586078415253818208897874728846935417386994940265013380625916599037697184511803164752666173338908692237128483339423857132085580108257512098568980166768132569538675436645423956841996051824773868019607471882281190268805039264551300745254264290098975536774626067826730156102631694633108914293975093375676615805103908603831523655894250947665815218073745963058419304020394136765776230313951003046846218955519550290876303504043691678459303836874708674862652495047240738608322278149933851554087560644424583720165411690270034218795132216044446027073448960192713957373779492426542442725175692511256509404613155761220335636307749244040564761037824671398077617359791854046262215310598935661965447081872528617671051146894793401649120649790573167751457878236703603010941139076812761282852293507472628201783792466947132536704068980399499251557150654324546849006704039744635660034251711955339062500090811579008208442035411413512500488893171456192033252165727977988164999809089909738860937538983193316886685442622484921148066945434517108479541267364424149152083655343658330292444438131204547908224435465523741015521437154624078922821861840334328849999025653608620149686605119942383260969745843987948662690451326787125796341786494927221939455388805986934785197159401167065247805206604205818076935853485724662147431027190210913191267312041993354516342612586795891347024077869485258699795762294688816418509116450916794452317615061358037768826992816075165117509823486172212936817397235652141052899520534124129004502575491082020936813690097695460331867983427382002775810040428637895793494425459821467707419413304306395278899417326162184435658389770320872720634164483448517588858703869075427354393985197961684726208235120892589934178983792107848343851548596538806417237628518568103144477055421802700781227795275268329167758198368675927881287100959496040504669350231334942912979537738643660276483399537696219363422826311325525540892154129652730165335878204605904215808141511987213335055440616510635797369494315548300035237457813588100667519633738062383565364119971046622035051004177733855821463598651976519941404523456746952226347147672527925728115709082866271600480804505983309605582033839847727431572443524352848385170269319295834356277816058263824357596957894811175153563678377675418299010774988946684314411141222988439584474843372454109483979733940684042643340397347872043513096411799239693846188212255172107615183422447837341992715614569615413488962683412957358889046248914535214994938153333092848600364820259595433536936467075213677311869310010244147608511393026517079211052564848772395189608372734541866126893768062791643552721197993865669236046161988502259795115469127253329105563016168161572923867168551122771343338808919905807818497688287390424296859309700028657706760566442333337146000659074197311239648339573779940260529746078034254421748702833358028607939590745614314423540202399313248885946320782659588724985878381034049296878881068951861632731275115510881833747745168508963665883388650018519608884983136672277051875033105843040439768110598772068865271708048965954699439013282147981052914380201248519922336229888917252749145991203572432385478733291437350845075744536164727558816953303358935139401705355449857674841133379992851565129446940951428053278339401008715945040490987859635126954845547654544772887368619407671981029514653117683533652284911854013162922487233628655094934645212074764292548720867462380404586624339068120947461425201890864725977546929314304616155472810057529274362418882964903707009149202539369240735384982673629101600225707109216010149607818332911109593194370171919406862804002514700500623575391429939675459760180217890118676410794278601882969047099298760763089695589391262236139642544559021077622016696469571669178377113021850294394420688123163126529738644777198918383047227761377323780902943306978463161302280434522498861439381090358725309191042025697819754444365961819059677836501646966087068267728569000068475584000727415423106368497710265378577325122768806024539747157813251263274879040628940415398639766212248244704087261912298228843089678522721805125396368201361095536368245886385895971461539953994709505562656063535862566879236760896898228150051413562240700647347342095462036425553580999476377061007365405685109764395844895011560803477932628374297461959467072198191992614424875866751583632349190905800700833148029287002781043426214197714115897332385454937569984917623928309052810696154990202120596438695258131878835997408174142368899959502386743235624163696774258840995801475145230328529842030078955636695065918800724695687570518670090822708583035291576132709146190257067798939906526225316960571941030944250396975183590301794303721338347920404472148412082918873694258154611361535832574754697233242084359755853600174243962814320937762487888285283013353497005350222818934504414794365178310078372584374425344398909027372353764420260393490129634848464001850659742772689863142926809721205024256530339389259058577264085985347748013883519593640614926103007452239761829016727193138478236599946290753820963516991460938865683723703923164294957740481584226620896150530195410806279130785319271893416662121754328981555544259333344299963181689057322081322002172840956071806581825937029434957817132900173375531506948928879780892200107429343010576608895365421685859083353140714511177659976220653398354723785586116011418099765047377678137694157198451197513523952159277245648207933789202759680757293590675365799654236565883671131243682060858545946606211118977069922662362110918198505217060128902226569009140889144954758380592162830934171415684605060689060752844233616390317876534182750797841405025517076883238279195528609975809558930439843706829793622959244558879837922089823438810946002888369991931837381161123879992222860271587447956153378655662883146579595172416950985646102677577694215018978415448459708043531705615307999067863338196024619448925305846051274891365346312051802429057348156651803034100528396720901442758294686880567097992709656293200428337334446364608607547935685864384693547424556035435710695343674979861506504042724698060212957196977296284289840602888033699697113678975419811128759731189751714800971107537695166980745610083247233482079912081970598900973607126139668957948374572131278217504442677849181376690498784958200669210642443011614612609693997396132420165450869617661093320917409380916775678018317444987059402488958707988046617656439437494566811016542062111667104550768953446881432562866079071580097349089800751171025755194427525555165506088497805406459653780258453397232600216089006938383026252326382931992032280128262679973995766064414954141696371538936352153276785562605216558699091288489259885927570444511361654540107883496569451178796026224395987978466895215654424110431604805017906153984992583894554768129006302250251434309610529281555181856861270574069963674577218406120128024962574222883331230016720711885411456976578330071695389137910691660700474806256338080775093371372950039627884151373790757170332958057582368822858527972822329212704928216263207066713038182598927196814965568875435494937443652286010544510327735751395580339777990258967094408955242282106462266378549063781021842746837041642492758305560719811855375052532886125700772496542435793223458877763047028466982529597298768934342011679357121303885368256541977071483086253583511606844178480502935286994512620900301741948482176415027290157325728697100352566844800451780747942338203036084988379248449754041655304498852685392573651628404693380330666678837340285016681207028496057065289024074080585243302858995253000667457221794606503761259990774564026506480398296951319128537727699970185445679121817933007642921312965518005786480221171379403220958317981749410565003598886905799735843406580584634823942805658684097007261655450619370046385024804986635252774650471453643367386669470355396181652448857525227687430938215420649512569045979394767376073472836133873755441076983761425305727246948159316401630722388720836296325431875390409571981584933807896520960283734422450307836103120984708500444916521932454061503053328145038330135729943889800402506333168137235951718031061600035636410628721763362316665881825414513207944783460598547481255773818645533247181937315537244794424693841741490637360513374750944523256713908957699538457502308447540406797504001729977663225556724277415430549907308121953816376461261440386820632266978495056623286463958264835995000247505105850979627707193991577616846536008634204558133863536179063260824859093434191289066805237235368880535232017236126181164630397033709864887074869158063764816271342430852482343420712721246758253937598968579776214209233343399137876201706890385691412355791788143143435303287075685690994381915632826162336317834335907949101859896829649210098617833489621007927396133097627234716888862651495858105702703866945008469658889953139016883919659719180621313020869168642162394371965956681091333699516177263827943962035493618658998391726600278148867389998933675777849377732245615189721726259788795677447013537919418183927263304185742491806171674686503024030766883210301895413041144521313495824522782153844362397457508888273706198241516521627713639177792081654278533668409490828541006497960003489201314118008338286900314356663580020349255774518094368758358587695450902205598332137672261832239631630143836559958792422968303926803986093453600292321139113507852124029578791531995556026521269098342487255167871793550776205809269103464849760446306407761054931027721448070360902269145104769433905752530987937394425364291990866611788457265926900047368218317646673168656650763589855927858332371404420815365145717758581892590338943609097159932425345466704835880797134070039762497401735050881105543103495624630854436807861339720382820011530886006180483346845725469075494532265609654031282897033338802149777279398853189796081545354365431161272764160425850714732076789937338977335078802306171489358652310047254470277961997493920003108286239551169533649600425098540014094559363279463785449841504064718715288261558556610101532498816168905432421922687293303948538667057538969285690376974881385710838684248671151571157458874939489353196769834221217392287950905216935249308965839968013649132489224319585714889917208268621567081044678424022414520377463219148164689617462558879001088196035923823085326618033019215600175897803854678451709861011472139227185439525911909851938786099087315745934148063884762664053226859843718063659728044305343504887470536539303048544124350749990531806854594709226074762461790601810714453923893861005910271976951014535923583691329251227626759132038895049683342158316781775627263414323691647156993999602420400037986616607893631563813243537940624222636295752870881738258403698590824718072962255935441272199977241024620453687839985378809918207659638594933338076553526267790115950917359356232915471414268439042618204551246463762995111105108993537314987769342312968391340466118481323469064332997910624846325360574803500693638240942832902156965417447426115002097884469952779433954522932602874476227255630771879486680530718331397777913603014392246730787755284707483482175798716889917078492581110458278498703900100909981732190134001193008092779942630322923771992923766519297053385841922451977580281492394684869328900299954772261843614448852774838452081136056155277122460978679542195506174155412422293876217549706924088609096260032423384577307747011443542553814621079953187424744121821061951470534265760835303712085171956189516743521345878636999731633599870556201907214057492453298300922057396358251017889936344727502308023926353760918196911891484388551185666572598455322361855240731725366757220472282299827273597853047663679529970702645377724809060803591307170520769259712208049163328930946094079713900022473747790697364328069467258535063589726851618079452395136236912229447134972491048509458734286045016163443290040511198842566667910705997829882056542426395198977577430810267948912659691266838613187342468196312846736217769525296824082640833081759752730186839158851569579773087995648549242936052844756907625256627797400045498983998636014838412957648651069700866480493900944742737830219948081687520546254647943806187905572562940326594540777056257334381242309233556133378543411694516423010716056542857401248008944387665534335543929913251616422164764028182684981114759602162671355644750550823654866088663010418730498332513481377450015359425090824628040047705266467478839323147541860106006337305896996883930877892701073875735405675479245283819937141151825385821665825649578460398912409691090900025736164135982808040357995230855726502298183996812095345632382798307088940433418205441221487965490231014814908859664147722356494013789798389207774016636283052791199377297707828820353941713945107384869203402748830272987939952381404521463981635729387861483009121817444019616584779683984879609942685534007484564408525566596558835123747902289800903412489692322384249164887654638495675206627692554943622125891117111344467347941250300394342427100097038100418016659432321735928793413847361648163785884744820789687635954628468626481280717789709660431160746309997752363680556970667611945275781995992795996548427865382128645308584058510290645047589958685186786726167679005401706436640191011544877238281058446491352982159900012492371004617927921341933098428359639320446807600107126373552909136802593666733454612437276950047281905034732647112762877319281338824956788192107530629658471863809268121230163144913284184575713154166895474313030097850273256827532772149935699944547417255912303311549907521691190153064422647463308496715292542909990746369618576119444234928854416502956618516255289741764277791494812320113516097021104012919815198116182297079657042941315108855461873403989465085093316851514092242713867053088157343889806212407289466411415553921865205546938366697927529762791534283251080679533964199896559222414074261331063549676312933274956398613138801629235233523478488323830620084704487284108373090690398454695407275875417720005837961210240644622271177679155878152035232928454929886986454029411505454406732380354614609878906502615373595221634751178464793467851653691721299939379938817732594062707011647342097153510383248431433283208443014253978008890698305630764081291620693249022929459678221253221548228357122232671370624989471557512413494924770490879014100897508759609736772340037074907890384732012245525773370052705254890046157728511273566564000467010656140092998921220565483944177540946160709073463346552067301908181316973707951424227962504658938110955491933998226593811922852437489591528292591139820250584111893019994884732174496336009801109962151955710873681118943346832811758426791810253707075277739902132575499026884314380050370670380921839668330176900985644244808241810078002784232173222141350471096063536096403354966951274033258190611977227711608062171836854898896455706462663283284256003906337835728429396817128199229776828807725439932432087878644752252298486974469430361537270476681725297137156705223288511370131351218044515492971608739429687662543529442653661412860774381534094919575417455006945850220922332230048816830900704100754078584181032420378582934447832753714000522157588588895701086657025879993909719278333680668959763705194428049099596318054494605051854861671971275502007919964568560769527717942942436612698093173638349498085530243175277464097150727700276295997600065056746857380318765023473494656853440409399111767476899768633740058758119772360791238021682256515194446464850746391636200346086161915793860339625697893100964590195251227557006067003615683011199396202686907254776628815883830689086987921831390122146501741774184501895330624575999363419793942999477980927176210231019290371069416383734170294636684643154338697733309421761421596220071759336440412715310291899895293454059711249066834131038059701811586281353961560313409986479798998297621819179824761570352225074621470081212026984329359936545798112459951313618249060140012661225472952116812951008882393125595499386703173123149671271338530521206975994362876935660994533939145825214326026493430696145387666909715562114525579236933602313764948399476826511174276381355990086208880835239611513120353413146204912439178929172632577515313520500596868824097618187465378070648723310326759047713910991574508638408674687517697739946769084012314367681845531304189741467147444244344630807163762771543643355292692329231108360970692167640732762382132710287055943216418166542164207339668043460364555311876314664755836211037043124046815958315505999523851349894282115762156852000680039763534692508956047988976515024484962633971998651587440964395257348399977125116219214362549578501976377492804123817980409730362202052915979344915420740771590014142383139628447373996452682781270986436732349445724957715882180215562074325228104747142132966298901767353553890697124011943952159577499205915112470990180717502125462803330640483743180494655640757945899111146190558865553111050709507513885581829907183908327877562623891178011657284450167187972689916792920433845173697426591376087095345555207733510693125977162174332964350628702862650073133564485019457862314046631353892715589237694967490595539192924804154896682691160020328511724090076141783765924870167230946291906802207613026862535298098040178798237053235463209074739858512626167769680141377876869040245006532565520830895742174046613690565544887406899973853152289996025710542970744146404433172486155851647733038405711936667880536045521788607035013151601089652636151584379252040680486216933167040494698364048235985678867537783742455522373622561445352539220928213171423917255858544326072128042076676753905092953809854285372075691192978975726138839169881542793391491061669112966850920829753624129824846500909528935708989595591351034000176375695910545266453679278085629582340489793304894263044360694025079815441847223059990563543671732758923539339724230683719530401012030097820587446435812803073257584698547886120126555982404028610893142157116914851889866248724504126241124567821409008961328442155776621253847200322508090371030007764548242394647835878574841156067789239743936438503627462471407614298846220560451896522095434933294404344400826335641081977826630665154582394276273399267904700197838937442716088459079741240877627930331271382384433840581557723776984538502209494564827806621454253979060590759031706716081910376008101695519428979939705341014676818465212791242243505119497834492924922013621654830909875960066887080568860812180219636508486400187523350643534619968739997002580456451133325315317022850383700400436417624151651449921488830879391560390560726522581610576778395987014830359584948027994133838627618004283984020438830411505143475202462898450965888469002100685751708997550066746517485515291506575144784757795388529800368662044914684585441928104404461179061310931817875524151149234043905834879480542150744140021155071490718105463875508435106605177857466838555202046525686784381916652938662089350804857394285329484014042342333189892304510194813064221668450256299587979510424499352386423992769900253561817399450012643098133163502191881173538028535840353601702621411756000571644488488053592518851168945274397381289919275630272509556781338926799171669032658409663497583867347592643738482977074278537119422539149835917596551009568736672303980776373037064213842287414750383304052370853654623621084967496721328388976499966168014821596236109613970054237383214964389234876906416825868310427935990509989087131183758954368408838817980176425474548456261003306718558557885122522604116696514567497830917349828479461998821766641021319017256894128231350406428369997785301277247433270960866363413897558117035879004500448138692042854397139774796538594879881194926990499567546830710334491815407267774267728568300938037804790176339531074897332637193948776928452050414676659152143598556129843489093600602875686538090762726037018142051618710304294169899382229480156443507188645581995811104607100074037640054702879616685176210410560535389014147550463741377519112354263205850812859671775982142275782942652511436141586029747023738275248958253984357531095479456379184403072378055179844108956568732183328517818772117152581773996192072843159480630812340343027247323784115088718024322803010807044112426284143351409591109715339273704024572726989963893406309351482400516384892939206475529812599933070133148940083268665570534769173365499522109387769466818972257999656207236361165295081999053886791417173442974884806636077722069362423580639130938432118983827721320133861978031734231546570587544615416799192255041804788208735627798884330160111552157582254208044261201162329778784376896635208201392264470767970187932613998675146850190252361253798022810829911360014152133387594574821304564493332077489952714699122268160812900006206022975238625220311090742954172593982909111824469549946176793954982668701077514240378868246403881702533692333937474136546402453499668579617200341057212039125200706996221279646689917534403707169101840007182401358678099984649357346687988273936912827125443990044144936649206529651108953333420177959932920305243213334770787398642131023192495153396416748407384874942325241040899711266512174140673571457031085595066866625068979017430812868879875388018163191978600325426959141446614392550455801384785576592156664957441412662468734769362788489051470266922778725099158379101537606798768066627098293287837643049734361180584782353051857785005839848246615633918056295681317995178849297543674000406854018068796797664718565395634016392258736311595955497163537855592772934735133202381867125026610852232763313982390929166802850679817927472851204340141787391720051481866445744292149202445274309509336020586179585506283180867982487682860226539301985637160280844284130388109625917080333128999705502231151228578240712898649077239522997928991604580218654821689750050870914725604892513037375511069970834691438747688252083578191046582270263359224223380973109992877192430705514403881441411182611780041878927459563522966857874458149692558958155046402935706046177183831141201734328543795373889489998614958593819473616297412680946348198947108095837326959565641516880274132676185164691409617903357715217090187974616897187228797039525800482462844731361023713613962001180300642389133196309420518524263682446974953021617036632962288289164945513952640466594512124260468824939714999780326552589749663629342233827799881512783942482966754258476911105510346211846984844250796630731435910726809419199307467445492742968639313798251498925879802431288775590133094954284505010200681006777725659921398449241167047858172518867624226051675669561679391346961907170337783524894817379214503333311675501075197917812532894484318419973423044548088579131026479245052003413674354638016147439213162511104639691381150658828383207990980364768319685071562564954913057009646254960990509941180661738726033748763251642866154631302685224482797346004542116182752623207245017349784494085465913848498762412086792201680091646183843100353337576401838725651509039993000237253939814160229125769905603940639020285552692869448114410193705917477988773942467788030863963277090654996445651900280076974964393973912734381494893142323609916867662141643328113294141675835042271809029344155913816102413735876578221981805717460619099707428791994734061235299775821221133076508715299168553113703462280054551627220392412563195891561162862315845937840269686605050119675231281895892166409365171065349451468745553724384824932261800400273750861349978317976125441208357768087366223609920543382626758612463177982727447081479896387411147387759598634104078592576605062199764471737385693947326543043345771365844304743773938941297018168910034745401804234979713431439141973428859810645785626739954090747867371629399781581606846258827650143823548717330819482878827853026589782245848494497044136085817780715866928849467083772048636885021724366500239248326007268889699277773977941780717101654070064213020535599241511499547387801262766085235491781517081145974554515609110232829989767103259945840011135249508213799954390622100569317473016576786625172462586597631973357703197742708775756092225882519969618049231107574293226550262112630671959433982409792277958023730049971514787759296266258279623485620994785342399406649535933557750648886586161560611982843601378067127423408645083016088115211009266238714150044952934172706857886112966342260272353658872753993887482306778072378956923801921718592394150235402557507669415246329084883487302836571507287076160087577908033783707294119825088622679240766346695695393581090590323658125158201290260211501425319078424775745635580235427844706947664064096254887730650087665963620759515578394165829451968665313190587557446122467855534910300845919138275374623594248283019301668081587338039808153139243493514661072438736498350382895745275793935688960232536775504331799382714378389374791681158986171734154153695078677292597938699027271751495630838759596270429187587815143313954801276968788350225200192195573169398752835765425852965711759828679216124286498175482023396324550481979579063944008555433536123637533336750839306852946217025645611203338659975820690045422736313387661862040874595955539947034976047568516000858438054883007561283325166254823164012609900154741233457328076760525630301693534684638647111681889531304373561231316219902330996170777630948549618225262314877117169603603009011053527166205535737939380680814994534094275158757610633909215676282024773778914096407962639513271856534696710049432294966310488568082358827303082838708852817037698672102864706961679307681158460955515524297132008791833383246307208922793014116795850520923467658304182795389284929673783032059006756276260195641531173785302334696255548047639008348157323975324585833352902884638229952380808846120828606420690331042360345825890691250176768742765224497659367751215074727224620481870528921359225276991908029035241429840256297422657742528974734134055766974869150079293235738548457801503149045828938660872924143772086398634877511163576915095327721546942539448581060662535372766591756570136620394502461372250754740918803143436701140065031952950916259735160294867250280496056235910657985162586358676179537406827300097558634538187615766061897617116045293159306529496748264028730287490135008106667802532112685445452749007809410085328707712367853375909777183689188774440419379075503323704635879905399533324343344828905922599152030580332839889374869930949727790206637431738563013363615735890759640050467407904797713684443344658059498582311017183951435141071131257893454858064935483312675005525919489720100084488114606220228872939879168664309770706471374113632084557004607598524380880897206445345824685905044677601186791678714905903978993334415717350440011770724229641654094735563045775803025766273160891573125052099315769129014748004425413294967935639622863513447426310813921152870914533300144310972994828115276931347233032437462618557566503792318651916722680532034887327436961574214686378495107456715517256503465524950549499082869292666584679816777699985784384793229756456277314743461622698937399553411342676505455589404353350028697034339283206271322605093099821995207146451785396673623541595019622919702199780883144523303185458152816222413176755263708614891537763265914321094790526160560236565707366939368240052223796027797246964901431092595195787967461368264776113196900865870714015822677732817657099838682802911230134990749010767443586670884575452655800162338881569149592162329258072485793758679680445150910523648665883146967959179012358240275950374938027427472485387516351302401234617159077189395832346601876983821310965073674144740159369361853423707973671397982235358531589607743815805903968872030395814304734964552679308574979693302620476964126759779538200585467186606394177221532064189934082577117159627784544334884100807429667171021756784807709955827004889292599897248328187411689831468455678707357085328152700711182476510621845473155357833777815395292524507862157268762000059157846763307004251670970246836133188899040840420857434226427531014552047323723652590649404227323407533721904995931984833014463960444380318549810408204676393974100384733019253470745703476732895109168128165611805474657088847602387606325885566472921596763306910086335211344271882956895261741018713876743338834343450957016985884174685986889665340775486082373762434533752175943057198132327456572124835596369854321860641590756729184076785940421001885873793544772857660808355085591656466859424148511259058069696461686428978738941882538790911172390002876553967893084068759431528629312609189473905920472811876082514713983430867225875514814050976718801088921787809704772797529823541215876368527505804352343556081324999071234814609101669448309887426797397998650883019207620320313675943658948020943235113160391255858183175403375492780009497808478227004744592615123470240151001117394809807431021454052707001558324256807548012395779579740888028308091266894055920757894509484124048578003248158787825527432176623477079615708080252118112212142994092803964495220154728048554086253757170982351778191428686715984284461389955445027040412909829338175171919684276591717924513284538466175511762677051745067668100082957828564216687054820419599955616425836534018153920823755975137752896811238947426224838447127352201731697346313994205088166218983685477571955545955881704204569318354545943540700533212974176528174387630588474689574770359320355142274129034268249073945924039730237546421734564508968727371292129701789523935201214643028702156061086681263720589563754419364681437060173788900535839811495067530007296870413876041695453093780466770496138933995421728035774721192826416066683256755270106417542884675701484540011790948720932868877911886694382845001093405509857018374464949886011000374144410111052745619596822795619823915991566411274220429795598499258160275854988860141603725242606677262429304885492502981896749816859523401233172096239508675447128211801300400934153860630375000194575654346079085065635912059143228505875067307484557157423011053588823001067139337688237373737059891503874803524211393494962891334819683029770637188089826043486275357190749664165472780357086805187496067631058063342478142709937744790409354092938792027865651926380785337092864585620705168238817468738195224304040046118070309733099032615527586905978002220316596455048176347126356433225366936528272255965214312466351255106520116144630489963571011103406326436815005001535877341397105835861938754514250161830915398652902498107168985883629439113712530066238054251133462805409741692501786962086122641182103613191779321263958992151025996420435352282220500448106066859567484731184664330400572335153741246929293769909203746696088744867080793392002244195714761623191155010849874457396952617219367563282423683129529949251280217298892877825461318072997023649592037946103348268338761553998405165472131869583145396673453210031073856877886046075861749842057785781170905733251744005960765632529867488147116824490797340202063477907495554541360430668388195585669463490581401877461592462876285418595473668535421715543398367841529345042897885768457383636833277312948718089051609318126643818282702105726802867326782131759482888309551069189889444083601525739684388662737775032900159416340338816363409943214044245016240767034121237698839261355910870368401784213942068409400254827571974889966784539868543875712081757165189119257330947243853006270089216891045904275473460051054758689910572122767412354788668259057999393045562627732401500206729653355748082808189966342779688617220032118290419633338712439916333130861748679350367414897320712139786872380144173325098574460290282335500554810506096530567109598712317104215907675014174750381628290502850502735437980579082676383721908421528210947822166537019487972522072512987766949349366057202560501412589557124456348150109437304688521669960292234533814341142516027973302528197518174900874158333588098999606096351187793076496241715232674289767684216246028082608208721781840960985746395262753657900851803630925044495085877439599389730655493166370453433646938075194084967608495423443007556165355154188155147027043367411075009131442117950950516971396963325797454786420303823638465602811755942681479422047337189441296116048650698006697987291538977528383582947710094102451048373405214902130310378033909442007123541310763417075555381961883861477405116587714089447393097772195940169980793866906197501174676293598890230156508957076614944183519793840173365077960595522567641175956237894685731188954402248592073819815750754382832056387382079475189140285987079276032868735950366410618043386813570903473304952619843977033574348978074889234326525342192849465691824784223098835188180321703760161375382533703941821328102884593218351792109467170483305349155862786501388131163166815050350567898393845799119821177781523915415257855054272844230361592676548464382437021099662236783809412928294337334279585244696540127617732508543962870500256634065455194417220009503523604174306593299325636900562433457232366042562562167008125735327293725185928803398334842168986757419855985550148739804564802912631171999307961112134247699852046407469670022278637705857712792336631660563348664280190829737607126769218744405638233402003892214186543079619447038606547068999683234179668452870259099485903390063465163778318458096183420718047705567852143574455772168192250076416191757011346256104823203574260512779759210302879531115905775105392712989372466272112600409789033107815823306351240796681591574607508372581554701236730059918615706249566358648201461628524074607873913638368461718159218334379430983592721933906176604983740571874610251453967692671305287915118776520513476690135746861276404757638233031341106610072871379301968270672264564928544319604189622557974687979457987561064114409346777455370746027387359973213131627538900847757684333725297154379961022460800184103350047255778287117413262766057168755578475096455716985611398757710661455114677927631703551278192386603938227484145487349671983669627636450488189663773507086783763524472191842449878878560281063881658425435400880675374188274661447655193378335917120068029836300648125488964574932696542992190438904034061614971531996993582834572582747115889788828631400198014186761968390860876387981897666933570136004674626147032766736326355241235306526734714209167392303701435828593449206839917588040568861462073590612812132312510478496785009301605765641447594449092896630060861517667531131845224025336529768244664350372951033514874384608276306408624066760458184665643135282286109590152633955674952111616308253887962032745693235812737601688259110619360443590554668563874988565874699393269931173295022530274903843967061742054213408302763962112916675700928679070027304602487930452331116415729118955979008396220282582064309233916721168509140365957079424958730731392009545443468606087381413133565425000382713662684366635330706051731873946197148832439601475189926548952283499251500914849858080748879728577880636816364727064984854165273160197536933645299844318347702033726732089928946236691790021483254558572814306730459951950778044034648256762941663829128197066121340435116643218811431175821245713925856264864905591579922845653373895722231820005360124941057892002602577502614959649998931590331686234394162526752018909504925399590400972903042172738308014657493643194390478168715181561191390808080048539936117495620590757807874948500253981297730301065422352627642262896364680527586489373989123171168277164821831419881231813388426247206128583439095412143439103235426492702971850171392683935632216822256281437934125732531833581000134884604735039534817480894653481517605041275168934167326712908633068080037769499007476975403165356410463741222281189917883805629778616520381314327995538131082739811425248890479886483046076443685082267230280801143441875571757028406004928883761830537995402578186760991843950570264332938128226701459112157954622892224547670529382847724554816849114711613149150311422951080749464733978382040274133015615515554898248937007836654163697446476342971354946717024154706258879642749106623215065875284374682736746086445047897700793846097959788165120297390173098454533924261067348033748002540146463412707011785344396897884269197134532496381599133371828233526794649657366695205288901399550033474156598626820742672107821338925770463673428561177190548403531636246509346629831839904015744145544190521420144501745914471102216632847821473900480126908080895104394170235835488131565328191136072397686540650492482651572470065902868948252247490721668721884743484421012410684998045754007614076523661326822067818494786283264423590760347669547913450349899104134401038605416309654439170414087381485874367693302561151428158502585428242497498916570701664303563577157422922511588507033221111530937282848613229772727033409298373081842584641162337334835134372831819807091620712865245201079829847936690938827973308764773687148462435397749530900279618897068716995939162688410804320235418620256225271167589185359017894784239610025467195863520820585844691452553112845296255487833341584830241363671144481421662512990924688326132695590412648168034833423337621592591142922229159645460020043516260352347506564561318293101835789372984625802450647796874909312204133216206228133278926307951011345653817733771534724831322472493669836071598944207950696056723425491276298966406216043267215916491221621458151481831321019903279161073143841563903883987478419333399313688089305701452344372816587528224653175519233385787818405905109298649879917971736797082784474233241711376071299812120123363816036078380724026737175550640020501270474909996317326883158837402157502015638839779464559665008786741685029346694923100389708458477147871504118371015903334744807381817542394801648914773869920995672632793627956481818100921294525794098669058116210417204213118122868936534168057942511782478930634038204680391032148415092233645819628256356136462003123024138460225847229636730463839447787501489908018581550030378719584955015676218010445271205228548621770800549394089062606038298026893058707268722692853877441736033380298426808449939168773314313348018768269478750218436552615938310479623505411518380137999769812471823209444894485718648565250073117940118343289820203722024373370342527994894643065117716640939387162993161672528793904576236212054694567962342755929457092042114457232648349642791186677840662299487174673356854162531042530672831189732317893405197975120759718137054497645286540577917154930417806620496868201589715997744387739513099974312771829049924587116966793133311262785079576132068229658387936462922380026145061733033833681459876429578390733973274046537046136165718507539674324288035140436098032838829520826601127894697565061401013107343073604657038015476144761727996397540463897019335683080738052883957370163815662246653653110613828010626531845103309879863130776678008914141073401367858327520123908296685692161096495948733384315226656054734871554619879450100251553112135451687576851381753224877078021490898892216261817917943288610213823932883568722042024112119945455750512025338030926727057915998333429136345129203878036059698269370691290955442219890780734651784420589269495190322213408120836818463883365644238676246319255146473947015618167483201805402908476812650210117578395421747582714909802968700309616622179086985092704044816306200046390714900212738739802026841987388412034213787620374642888889626431084884763973547884011145060513283064805162213308458348515359591269362820319712580109864838994187745223872852697154579250142720510020503183197875870916526934073247478860275095546762149243194476722407673312790762266863237561487129988020816243652832448548447916580527078372191856930733334475499127724097595884093083638905838168778277497424069859546240315946116165165942130271576291620918472034600476949504939261532403281131550786709604986093685376755282361584777520311428698136121570076637185271436696003288586821149438899472867747377123170977406602151566338860837916706835614559752507589126746008324726053210216378097895411196191468146467854997135874917381121402600738943312594671540699156921445545039189278793115299283309847608789206977523981650366412067708895600499493216653418062864086117286803801138614275294093386723650507521583504494899835354125423295515099028539459061478192286467416115578230479613528596719358234295885649559624913702795552654917779031023998209312377004210072018451097258055891899403265578094118885132716706361163149579199644808296656516051476203798871826634990738241342312116091244131580834576853093492472852492460744760329830671587934642778722020454714470196830078364215391569405813533443467793999036466577533622515749874557601736480677761620095603659434613180861553431043175819120874585134419626739347189319290777206884603819599949227756948645770254508919180730160047836536825012283187246591114597224413285438016613842248760284240520750277269032784937355930241187102488011854054894540501641181409404350533929006821725680570963143905000603026560764291673274068319232507531020378728519975577556115092226162816231013324110078313965404742583487834325081448150742693356213187012912711893386528252303741012227427893131188281322274828819156033414794129263390055374169260542224023412413138387058308419147188049734639335416421069802850536944596104139881661330917758619173841279021331528807152780228361338971619451040588039217634020245514640842065076372866953088679175232486439709564273081552458652631825710470041267737501238281750597701460186950995723415672295105205731921619616400649943017184745221305084925201701805505469525429108795514364401756582490293528027841718368178565201651080218243861423954583630854073105329166335576456154146008373544365625043254970013942341142103662803962274643815174752184635669457292584476403980016897468765305923107964450062792678195868849013663784582326172162695678041306769591732579899305953412048544284983468654410244704787088289955856303787435075584024680342779531019510328751131452829558606171599722595396376957757675541509616980780035376156613675426171913795696660083820211245595030232634181803362682814874638204048260189725243349470476997198934791148543061719971958682062493169720338399207999809244820109548976731578916494063541653807173110508168491486141901072643225625215309866094188036127299941531395388323030990376436589072463145245240649021144074490059172722155682776448598060531299968029857550162685654091260073535434338975445741640261324524526827795148238021981344860735455689748152401111946109258061939934907043442612780173804713075644256508098634714170381801490296905878297345709980484749962118090649219081804596282876704008239940714281269808821465081805363449177540321667683406463533462265037662980559171569378375932644561917959172766065939051125997551745343744728416003033903501993632393018790186030633662127270470870134681723974215873822583891726846824066893644084160047792753487105750237706519394509226715935110191817327060052523785822019864499548643236265091386937842698683392654768766020228466989296220056420874682854282319908944049219267498769243707399997699535566332829948466746232348845547658345420064870339262301631520004799791814031581727130935792127890805384194975464481162412906686868195898426577573904659289903867770156957742663624097197667596121622659090341494691601223759804951955046660195612764779394327409547936393548918077136642332165513800549811608657915500575502816833986548719047181192460857984827659407723909783688228497338591497653907076693492562457755324674170914479597820616950608527180121118534398835046013942078132884569937316599796849299793733028743860928782424466157234611751013642105952375047046820480022575188583060677693203469121259149094343119574317221286977773283235922154317286581888661579191269271693106307047288599511933006157092536359611246185201619209178605885050583281521349774574432108439547878548912697527358308598860008157122485076817695231322465223769129375502488248879374986844569646921959304205190933324096347837846270129520429498420492072642655205988200526621636639414424204817316697269826766524459092935093177705567033279788176092063106853196218085979341626142495530136451439102690285435939329353260255835241049523612446700540129546117263317748712702479882684571195279487866539315177265056309023181733335269510215110924062255831417729999849599381976179260088998015591321056839727717055352382757375923362686750115837632041130017473491287048413173127109274849626784044462397377102460467131710196973721848124105865158537047291642612955479034634644405005650105215556523070883927774010843083518883116757628389172907782070897451890860736345669359993959661325302709644350520453927156556826525891202133160536312860126559790366678171525950395507433574541551678463035893895673357512740519246873520620592659352544126472907173304492235710905017081066498889580558314451463944202696941472770070319902592628908868921246625089107908909842175463367570540741409717850722063019631944876384954801027747267141353850861836881959842018214334648116257905326625472097672112919705115369728541415947322256560468350922979842768041309941903669223870349008950659860302071826658261215551994073256913442205147987636565834005559459407361988504595431891585569128159269399876456435982307263845678999986039390341816718295243209150406410818990166559470693259526423928846209113369709861188197168562736822707095454220232806332465741609650832450506309779253189585451796120976506072716406695631936027642885840173741527471934864017252353545992317278894092884740830585342847811428624390696271949997091923555215111454618247504274636272420213813482238423463327071685475745311567051833933806395767493562156723279394423575360311479454482535583879662719288964284735230209970947537341277383728825348815930464041815712747352436420333812425131514579367862428608641861558596778138410251204821386208766463346058080316498292792397177013911633218557316986663183833005875262349576282324369349909374703999319656116287962132105503101462576944870378447731868044781339710929240769198486523744861241363497108238156059301775532874341757507247780780779973931249597232756974768708765654095310252347964208180645093168251704326946899264526091715382824762373664113996843631504369562074249991832852300975225666600371334398092603608120837155721231866099977206018909614812167956846859553329420935125742024717518775989875106299009595188573829939945332764172325818350937145108788402840299186634346286139852166281262228360725555909571556407953722878629626104195429220965028676927897248788270345353496584224721029514434700519087517950478318768254023724905617455717003121100324848724326529700803908996144058753408366959262808996642629581022550227741767710807113835150892057052424875168460147722192199690736787741732800298808735596490606697296987613741370147043194476843802840659181405917418662222762635981951776843712086735620463594102368274022050868381186383296013160672301266611835872683526487829418286554604386589306808987842014061893923304048242418624942705530893143493910193351298027227551628650611262416080626868749887754679766083723316059664210664011797251900247302515752159355147856659476038524756352632125889406701904653291241802813152252471375336829812359493081023988446603340280533562123407059526564282877132105018638777963636664263586313249394226060070626900468354361155275947283053996380894834948334658941036619437804912857583218446915638548867660134254763678805049712484548960386111805238196912997680333477407763080101473088487089337678129188569651953036301924399562747876637018580457148193215973543732248566931499716734920542472110580486729063068070653414060282134942486801661855026022659965747265147449225036499927332612392863807988804079092110990523391437248804556027749228898016489883543966871647006953193467606633232041172700382755169995486135689171006062668397527868348040944699085196899426049501888070579509098399469901297636933955009229881120530920315033801651395160287194146973981057417180141454161969205289358761295226804762311563764900495911456825649695275827659749870365884863511712012700528244807126924034193960141918908032686255251756585948899088111832311056449084516275453435027338110977754995605122238924742902886847759409254397191330683259526962665239078726700828103004222004096435949408268302637709981518407264609680782600992922717075759823207659315774885690554035817226248565380426906447018004018165742336024837949792156836194444409633137672653053797245134010085244631168208631436310594685692861601834833309496691732438018925744924339030819882191478349247845757819493467592429726834311220201699108768370544324127115503922554693848866829420981125068453727119228932108179933925582668239844632929063806452581544851359462381873533424746235208123794674710381055619727130746487672972885303840301727464357078035613542068711222218203537838494184916515271736341741626114710261526310408472409115534224347056286999108293021592414103872358638123368008820428241891014210763356255675742796899407480598885548101769737702848096837902293529623685406024106433538803584898053580016461506162992307945450100728775758635796967898166673205381788384852290484682729734867533134936075338649102971717675821650743631499150656271287347621424693278497250451596608477463442444682588708426397526602686369269109070548811436669286473212208012088017865804029052292300727906714190277352124046382527513025320010404386877212543001354306817243411390940785372976510586686642922975479819400791929898762271794681669434935609323827193289729369183707308746194039034890783419580596350312076669145289997549633972845569587071750359695626362794301025111938833212227010443710467862305695648658312948861414101791546056664292693831422313905838980357703532054560401513803732442912160736456676622996093214649985069499389168273951186833146263055281525999257364159203751590071822972563629277204362089331042005127103490029606355023962555046884873783201796129386293288261157153759706388768734947209608486062805960433737155653415957304230956602316669675888940422083320843522130443948109212076803742629208904190003002080515308501314088911250268090328290805377628620199239903273756511692011856698613411781668951189169123176078620101785766655844471402583635700041918537607741203590061972837949539080330491196586211114158473010727827644524669266499387790890255890156785051746052161674107035903275378525982781507852605442348658875180124748246301127424790059993830182128093939643001988354684723885453514596177532733350664286123059650859081778768351728516108846441724421738575127625807868645640623944970966438447893727192885289015403207416661563390989500474312336544555809740141762238861185206787983879719282505648635529763462607817793755400088068681730950231040938986997610152428952139974043288850108061748092201368851961994406530710809901172719066082816143542617816675081801514972625225882924407740700483194783049748448844188093658324702850410315246706961053384146272509442703467985333912802806340213302817562653422371164233757125538003725911382016607073512898241557290803035607949088148224482675137386904113480241920197977494635127954224745303828667182856759616696020163859199565869505414353181681767720004066995227716484902615592205045914902544990204397215127225726689161466759279151100093586266392721192420592099076096437043430624316012681725018659917999360580149896205369192965368156418742712989299534765588068157744478242145599735920315909766910924111889863646863786322133088079455258441290988585367617626878483052102782968726670453799200637476311880449268593735309493219632614834830869507961190626221364520458346825112634089120030914476661747292611679538213278231877535542856527787180726441512862790167278152364596671893645149718392204157029428721675976754578468429192429543201318536883327755828658050657088794268573372016097143858950694508928721690970950427603973388214563787457070989189233761085524231407643314594136633414685366468572061176528828724192931657342188335501387139412076073843038699978452222142617967716072450776153272309569556938989290285553838206831187422898075827439632331317904979239680464264392435032571480401270302501760394785665352279778595842276730844288800152871884415293678793177816819766715204825490384906550015410132565425988852773632851501293709216139975727119619363342255553459686132083602249947318984661652452809933695319637289818956513690425399229917969428457518271573616918447808957932739150318234830829695313409421577565267422039646257995744730248845489475031246947766225125844380238913485688563410854576091488081941530393787288284996340463683096506054014918320157158547056651790388584705844495673907412897988438431857672459350857944675311432639005604009505015590541466917724457274728288473090124862539488386362382332827168279759312165326335589701485467570041083634369819501319987051377675815156775608338433140834487512651368016046375089535385474431951330442255842547768613661100066721710828127818572323079109850928730774245775821639588462082846324945069310294651172317385689600112787686952179430532289761244542690445948729587942707545099990987500083270151107524857983123872631615016528512772523412241416966467344651696716905072088870299676740285070167799386233922667452793139779631502571830799424332696668378529983583988403795494075185870898137966515160340311825346428057357629838167757206922659348640874480583261160556994242688826884005418102955820643961071532005956553258161774722352289748323843748220385107422243521318881904037730809870915337537215133502353992142853794396171464480818094874867919763222002726657550382993535344780856524227968906194459620938193199038348586708210758674014850253251658112075754826523650507231761994451894722688773097561778774522499947925128652497190847835294345762316481431818556937749997603309576734247646082347488190991932250465687446616832195722259831543956207915467639096094595638854866131958214422186795243930649811891645744988396834560982111391678326555561039817558041589247138917547385710699696898463425601771051998125257152650968512299389300805608970201684263654624117244116323460364445812189061393807448384524824805135351589207543576432054172224973027448151568716714252659880406020439563112396133039535791145805285053902545449961816894873125603461995969078593213597195614182752866212057990151098328352762116889413899138899945609983165730868751497102706843807716335397542532265611259637596641575378318054616319506586917409090900885716991358107344308574198543014445059357849944915558678945414486119327023819539218171769454283959931849624774564642055126561852161187831599491096019374553784391146199717187475912775969509630956478190809302138400691891065868142025484098629521046818162619186257172471728649271700072015420700004662711771700932350644075940930501890822656172459051570826090853057452762966135472872380942434183873018201177703748775597319172788158216157888842075745155181885934738852208456441473650296356448996539990555825108050923183845132126963812373781048147302616831947795775130330850434060979588673602721631312525413374049836092720733251657627556381624218049315024490571040453195549959114563429951222082245364119704269813342761003922452207546664653520256650684896921035823740251643975144396254399272684348124816862108920234956916537524147264704468383981932575202886829749610420414642390781388897310249735080928248477439020746671122169977087438205406828708877698992514933967293601188175458005892157409784216505947948096896315189815742977516164565969519582584199903200367035801263659865617588177897334265377607868111808197223423773874431670181479116695843825220794538432410463380971815565508495153319456651294017731512828322693859604740306090620984934014684953953443754522187120698678361912545081293219565870702380600923723026671318741167097871784071069786127809019095297916044328263839850995200338171244996323914392894745083347319960584640372283604681443789200297227971315460371276819266648110766811576147808262740295178249073102760365994567511285245798765564687956401707650732574834421828688033805902159853163237303396713958151530911402380646644916303504530456539807864839481230239739760129376832945500284711075790260084589833777200515083648985580618455992358685524688420911775350446307409857366354755823188242573841848413994710759026002542856149979572571625814278230471399651063087334600257315440741922126021122049218275076508857396620333362776778199079997800548467001369669201246856846030222542661575563719140599678874011444864644659309711672400794835039905422815929262260199699134399375344473528334640107731389913291863312812370218388718891720263170573610624528875474422110912493010074641800441403526035144823290888527762814378317453386783980953455329048743404392059454354253917438226684672505243374848796903209692400507025005990975331350020285129256456217793889423634342138182994517985927850958474233543502862870725334691273080909982666735774603642765456532580716546487396145215583269867475369566242889621180194054521317772651122968401769112906155179491496806073697069343259878836557910060935645500225283966450229304772970503324393481271856944311978978579892602634239679340194331265706533948701087401043689664528256035407312851697273754454093894723713142090855461721894610368487391028998152972293997401885688885425011346259636630950689930382165198586877556964560769908434883266283087829296198334936349252372276573627448827026622459992892197252787952795869186737806986593306188062496782920850565458239356380217324038298587331135761001737659543110760647446467334630960270652048926196734028439359665173674832525990868972571241715788079932545682983554924547810281263747051615808788241135257490651638326825471395524078817298155061197412400540609152730073387669174993342954249399954675720283654375338040242385297108866861675265925846397755934059010232272797777132178744567190152415484763381254284963160076938885898598459053256834860556424883493612495929269012808040364075546916340222362109554121196552061454011827113679498346591720007404236118023903074964748446747085968696424648063925863635539001838975557984828373104466884263571889076661247147145187150617641775247530792689270918533750641166414630849045262359987311443769526007242167466977378670115944010701801596133006902445522665136137330884970517718898543343143666998363368616803193857035967381278906170573170943498734751065662788222104496665797980125835228479907913555461249246428897340053415845804225811883172984464084287521270134893675909045228763083900321005839063377608033240064734353561508541655047951414901791264844169041875334800427055294690365751821411819414078008914284136008203234431943302964268510410850919020789519379563559795514496708804857978558669353749995035621496906478798554393597674840525123737837939289684446180063268579253743913822612500223435404749848934716237760848224987046018507318285885766308901521425716944359477929408112964361321196321692157304958082137350043234299584015080033278925398635378672079253286909476810496641085918295241469766014425354962948983386100322188320344019011000142428615298600002619169334724972729294135428600431334389454270745429784074458147672902124106992312305116545550268245589905233314529308539070154335910083324314833089672933353000514121024169221675404448983616592395343053041035285428624300203870374515955838255367062612756608395073147033692586123413887375010742698213481944102021245976183590477056983151938702871905612281436079731270729690368006987573946647418208879371339243141152024072461985579132039938411643683290709585908994859059910966629613452653321987886082864192950868616215431045493377765758987745125798740754124363475207262824050139996708518748495249046300954159373821638235751414755296278066679313965285359353369550888964553473065279459707113426989848648480161797245841646225016071438718908474207672634968371398261087891866096007190658972397740589558633459085525064241522522872875967878904909424504802658865096940565345753064043487888431549739311877408757588254706580219165819508255346700393495922742829189185985044789660078733258099034915356400360313938966506912629406287481197839001969990493747550953307877264614319053765941795199598048234281910019700201263319597904380373770069238037032389615349409355477396240907337552322242502717335830493413309407707142425158584437962030751844011045035909913102881270944409909806911384968577082298148045574989706743468722904654458377112011304453239128497907748395615875708335149511598916540682616360880375269938027630309901778298594459937183426181194763806154653939462488895543636506859728371168569184574408912123056132673064300623820297505221168636565106696549131657371238044398106272767001750607238898323329624046185633012164010028021184987303578253470041233417504309687813221270561180395919264510756866361532586849406326375956641646882057229271539583381532627590922827620843992233432727443383302847507059660596636391927374674602849343655216393986874174840874375618117154984861738394845405397167568258663505370886295615224483355993295957724622834730523408095393905765708665022461346748793746341749457849797672002819705872989553609941274932847528820507182115683856909486758725647842174758117827744917336380749300846525693005354325277637897492661257106069232162225466328297538827617979939241923378158997682233473599311562039656644587994493543253594652032214216477113088265726370171289447792826962502915183361213447901091507795482477198051567172560268264219376668145092065903061523626451006072672957231115295943119544788684782484610418766158101040512989229222284657579897071929487957460261554037109513337196767941151025885283481672620929509849292370293550996952529530961727638987121857773961838514506916488931290131957018567815661410129681532578223156674270577689713516709482363733105831110572610553001235988591366974820183845240427952901509861467004253853822458324112144283293832270224753960324528783317462909273896920014682173745767136767231536928651670659393725576714026979565723305890707018858292538622314531784216520870261660167684202347064568343901084827843167341330612292693755038490635517154360187367374180322171686254783972494513782258261667194204922862929083898826460958932289328702808975379031001807227444457202078025164498215277088936180096004902105610692021581996134488206155797205745823925569315127888608903654487774499812739314469777936668407920242820438520207827949238424315525993956653040878238625282034645298606873420551106256963366653270614906108587607207343238472192601201628235268394612417255108320532703628203022072790182955655193525506361877602507436985082920268816708671421686994935500965022950810067027830016150696952088416889200897186557770968133071624406717358269428825066326774931679105752470206924876450766577312850111042167520895418445341881063122045570812540148571612018927381465116297441239661736541939356075996048838769187225109938061900854004258968155889370320972222111567822685080063912107065812016092033386062877896111953826671292361069156023233247481701526623991631302820645556002290779630492840755930664913604358903091605203263544699443271807110871019277388226729553387814148261349765896086355300634101593988633400308404014753780504974456726061684948656192967513464824192746194074329400492989763761909907221553826149356310659051466396830328451505953378641778019144515482223734480494223366968272328048852519894469938890482892690668074092063324279064209883840878020237776802710867568895849509768885110764374036940244351187873882691595297575895133437216194146311349469419329929699568983279350605815506658320837972278087878359588992022745308302903033772608461463137507248185157623176140420069174938583716326732086561218983127775728239443841408030076514679678638997521818250175056597713388911553497828298563246405463902527249713585457409999156149973912931969976015291948659712811824238619406157251672177409165207735690588328339114417718689884234994250427791360445640069656236457379354568447132942832683228236784171263705226720585101984428659193539406001806890732226470365849443734229184728063662617594460620215271331296142161241747422140528034059004907293104282378601573256698939399356222557436905622073082275663444373765672287111731283103956613011853687908454087262642529018907432489772511139893086530574977627716823166241128080782559313758553841193742558220974201758065300336974674596980705821737052004283041413670553398292569295666606044622677836777865010300881083238509069667979668221259477098397780322973112051821904821540074949504782502126153171026188276933566529241943281475600329405774571507418063254121773483460651072582791173292518449876153422532879537582273121573855834366896769629332687957726403449470621700066838792450753579525616682259774575214663485728625127079220127112158111789621383124623367550225791080902655687706571305293224683321247842740098335076895082730168516308045691075008535107493288928048744998068447267199478706295986581049015139709412428920574438480934675583151101667451031178357613575008907017146408234218324766149772198256609656109558693199946483837748248547936781341518528722111048696374834229367857540375044379499199448719749549371998399513206409934426902056304242839694805758892415329863175114385803416675965693913905822544856206631681457874710354322175994430749093455929321484837137290417905927964186199211397287706607455286473216670181430741272800344453530427205183416519208593820939613689687910731960364198864076294428338160721586300427736486141817275681764922348389119507278691746952433999053961011883419245642945491951168636112771179879263654269593964900890161800730101391713605668815831127052702545018041706477832827880869379949679365366540937469775754288995693057615307926171498159344703259485675303411242796724610892254931216256037394775535619065206949123581955838601960275416421132588062611514649868909617191737458594848925497145312851664550028212358425637522653769858124401490475976282700231473333844004584450601195971551483415764118344294794077212172629486538533690091762373012442330658570435930205068397315187417683329382185509592734739988737776998903544267801109222708995167393306952791098513529123680747539552028342161873869831757888485224672474300294251418331456953218217930231272653423893056436761418524609890262749211951058141251914993907884722859504996934792444639127431781907610833195809370487627726527959774817928788595268511427389520832370566561678464092810109799153651593533094818898874861258361175365575823249492217937307790427299379644214328265011220425760111080800975160202794762169332089807830060819504046418311890024205520171707919977150102486748714486489289113336580966990970555334008652786473029353321916252689314471073307281521228038338538063536200937338806431142590454030279984354381193892738796985987561961169646222077734742111182556058818138099541134888232106175981153930581941950963817324157943561100156047443973253654805123179679060838536405696483923994012993273292880170198452718970457595136176326674259463704016022352601015905747704245130770774074231588331789817457960961535000670692476012924623883142126603901005142285310299793959375939088312579909720341504291844076034939081842264704838021688099581868935670381148780097458434060437654066028826361496046840762827150806260598331055249190868286400030001560310897609290896964632659048273072849278017820856673262764858312313623808374170424264965449369785919528900520641859708126731085839445588829608094295671347122787786211195947027518197049463584145615975246623391474535447949265512773963278489256954031006981888297604041580980739626015659140288089725204421338502922692708350778102758764266749323688672570971820843659296470724455828811879753828673923579173054235089196485538410486970759094653291236267007157269488512478359383175456833530221145274206098783816051979963530339791862075168915519531334695674674727143713188852836357664245140494308840056077729718420316687958163329310805579074802716451104781267196051443767285392865790987031527226912949912706438931724339372138024921628178170778456752720898281787756062503209556814734426365527920767863202402484071035556569922219971862664196315047779735048714526852565351121850801982648602420583418813280787977426177615125929294115761968638305017996306635519863958777278395070079525610981664701010958546481578449071120353897107418446356451702793456085897358882160593069015795547846114481730191841587330974625812789317753076688882746530140294564497306882809181467868345284028691988405985002239106533266641173360261602081175476966458450989217274964384924318481940903105382047389340620873515433169652072809966262773915615824856630266600673157675474702923611506290543910249606941802341127357232478963871565657693325745792039602303316936545491281591690788648791160211313065050410464093432498431548827494288375150364845396235503170500455184637422196182991010496654063196570438965544383043571351852244522196033835343514045689976286392383439977448730103761188687959772454558291810434029500530190813499659889249937200854876350903220914200073934338987377826118584050325643438580129932092245129276851977284732534922323358852401671423084487687243619239801021773244053525310730062872565752242697411432925665007322545824680083190887787329729083159303991062581064808619531010445377490277020468994744477147255511295707954413609067905162048147044609439664087795242284676370135249581783931861364817792044048482341286457414374180791004567642777254366745943699737563537142521406703211119287161461225041068083675076955589364911177111876952748305681086578572053713550275824076366386477069125485616220346569883577053939692902026071803693383557113232756261603915366790033914178767802975916911649006810519560565830726071110772422250751457460459337357581227440140588002061949313224035986748937494463760591379586918335306557283147150393263441697444535495417065645286196513742264142638827194915143658803381840423094665888694876382901442879683464085822743132578645754734336236022265624663983188999603095854975005920182212328787602709543963687190433770507906633120805654834958839176719692900631389506925881689718806964739720505454164370944253047310575292351528960932602343930823207978131787592305159492865976610219469122524390242313734354237345115524959506886398393017502430259884195766246928327520210199754482397174018450057952232957263995911684442134283038165163705171394119259178102534938508123290669236180388030168309054028717670283591413284503881654936487186734316975103539917025205230621005744240520160141569839358553096045264226890221816856567955893534035244216957126199622969062875125458424648785843441251172940167716465539041411312221843778460436093393249510605638916914880883346935348467925575779339568016809975591256205969805660100071319216319665376546242109446339884070518088830459163133743551727946849023613546988240585402121905227107340993518416273967655633731557829344533657723520612929333151685460276860856879040805177532410710938253013177374673298293786330540051694855035360005059573331113342395637931607652481217620787116852233454862284002152359927999283909495133735511817777535917538947207380804174005260090777360313988882779347349013152273652191586891680486341615210278077977532141846517450212977817599063055766232742909781428069191613344186431212645348219988991181108910010077716704420326978619377159426590455174027937152536580965775757954756981203960280912370663145405150156623045775882048815386653855638166077626253885816689504945012675524135259376553496129399605213526225680321822031918979176032851453246841617774723820065293738778479858135097307475806023463942233627733561065110253770384103143144471502997344500967050914623623093364259227757914767544982876277816202349554505885720999218695396832946798456019494164798847840534506568905197371018351143584795917586051830806656848198011301141741360999678241684050591368949803679163828717790253145884668098419794472013262128820464599878398713501603280593481230565269464204277419025006534164369089891179775744264680503028690899230911471782825836418497004937826414830500842985076752280435174059519466011552465460607794331954507962772543593668948079534317733895837312092542405499522990705589317439873315440617016963762969991207929577373300223131801720682711141205334867976954757658947552670094880937384931624481651751187468815194049610587624856166300732447409663670315640350141775423385361050828784207636201789501548153642209297433913083592953949110851196905808074912453724072311628109421580766345831922347569525100724273522774426641891440215756606672909409667581319813536436038388077395716163925221376883472353189404409796713128475883425239680869869241968064732621041340687383374885900086572368488577291741668269225372053555635015716052162911180146244603156356681560926777775749642998039912499271735086679692900451908652675852093305370538337657045324888930818588815543952202457561998624425548282123404027411813804655845396538760017207797545616891619611993952261207605090726895788513872467105490202047108914703081257638361257269432620893144518676741406157740924927739420070859640626330600060057912237383421346848109486008109578563015321501351482681120289938707189334216267255692215632002787054674735795000302028964530219866361216073342730275683241903683942045186760795020479559121699155240628544355246455452548300658004798729052818605691428655786597286441647911115021697571308572200577567831190101795954583205079039426662673125733342637356035194659920269474781767437699566494315333489777149788326980183383893945779315168370538619248846512603157216290832658071839996253239427433640251719564510103939484973040780047569776095377520393577217602674077995904151795675111257938267166751566954769963390645638826877624780723789168018685307559295613137948174364796153751056593040647932328699745602512165383868435617604564830458327129469011440276177394475051452733529848537039808361885186782241284763975541421997809387694188083359097578181332642970143694078771593230853751630296502612449976438875435070261476975499195308639746814140314242889086051077878061372274439642951319183159495675963442015333203662889603789631521789794426772774493164513984641292523026837101614103792668017891587372940794484166840230596382079119473079930919821653985861469346262884994335775870002708136190471872586979078790937940707159218844128268505038156966892513327833283519774496351837729601451467803395758664507095769764895518051287887260548399897714881969343017915075363633050622129057451111277226910647376788457186065799546406996239033410464952635191062830668698156544436182703217498213237797406691925342031615218727177637746507883231123477684480922176805718496691986582001626328114498045851384039259150890369121186923609091169600334779749454699681327196130389733179278937509916073427567229264734879216443603496435553578003781668308480785302956300520194935246553353888253165933652766823808456895962307312731065501990192998787406147865899070906642415134411937731296055054935298765108200057789244059418800524920981228331953736074205887099016323648197124398552862009368180428013451955607428743503574056847836106632822044926426558338580609066142415382896826246880029250267820327435751636420456283912542017274823915977246428976621439863900123224318178526253188637444349389605922362492916542191139787177972542378329481519434432244820840348215303703611658929130879536451881240749529319139582422131683404144513594889384883062311382738541867853304857585137787634147561102430091151341196530573423746551143731343894204653461741181929918845360392976489661864027713281458821831378976119193328908399602398005215506801044979635849053309803116352165839765590749863137579110173708159450603124677768916669141852278407542605500255855590098015656218678294749429227282392376816635214546841925243205875715379416920952349261415075976154519013431775954819529809362065597228625461947489263015330728315755449116454620195274998061387547008306197334420644924390484574038864490157806188029546215872932899615222695603207699489519530037907467271062449464617783454531497779242747102318783771124802120535625261432624078023932259316698372408095765410759262436919245318904022714748006524463363525587234058198043875390456063367728348388503289126184821619176606066088218449066114790029195182824143908420889266733079810136321675501199240661691460268643930186581383414130834524850093764483565768361512975537175673701011094789944683743407197355987432894573459284082400471537888891859594188677277859418191015250005901031369574216269083389540156325876545857451208321101212466715458981794835494315218841969958535157966188876399379727131200036203934940427190684334927398234743898157407999112652461051369118646248601504293441701210065623918046090067571469030484869102221822547414663969185192658712348392137931413893498447159828934443957959114509294281654703254411156207402165826386895001865414584264590439564942982757224284545280191015006284889699204014680515966679904453095705948107648878135212569510739444330211844019013356062163958324151877920552023970991588526270861943489761879190594889810361896920246964203661923474587921560523732594157139316719685719465695329011027191314126626721535728450537544950309138113480212875270975829291804748659950212291793643310325170468105773623268406728739449342368015967949174820382094135981824185589396875763958401163227254299006371344535294541860568231220904566929672066611884487625294810825858581279810639818283564345558354185029396756757559159214118504734587960370253797581368231250133019743631437304768547824723630318788596910103060687539037953104505143217079440989921371791223408310695025024397185658558979163140464707782547685763806480714958857488795030941137449846711072989843292048841070588457055076338830547427761358250306077302375278121781192534222910050327934287556068453008742454756001049689527766324770704561792445285539550202664586677215392611262648005074171502109879507372211103372774666987916013985297679303585853200763923920657469178417713799037083193121403207388982717247321150993669068890269137558728635527265130111683050330800558088174151919981893920467464481836064302273115275954810542337437865025975393094438087713306624927261871141169765008638996274538632843795902333128136915405808142169151931527825762942094278562406412130630304449685061363316147451303406434798054237879521536255176228497610530748851280231685230064981731051567558654466130624210670345257932493646429334119660874540800163631789867796629297665123479407379206479733830379048767422458111652293534981491628730167700417209984869153079492074510723161131822728960184134958003283542863930971106936770711471208489813250886775898087031536302759619828109556055473513080421561425348589596133146029677100930778485766420361841936301678354425742728599354829001178666975858239700502003838589606517230963734585397426631454774340698767246991785793676444174518981553103479166764034466684410796833104074275569872154545509600828568492466711607620969629535309922463940682977778169531748368801288443510166768934181786956296215058620982444285033893528805363978090240764304677398746857453489993368459707660674014908483952819265279184993207339179552566498712456534375017134561105429448516641696177519207974501432585667570199246224081392605619995645224764809938016541434429162846200319923449264737501902822309588244047326461507502313418394432460844957789193905344837449142119791763335332383243170845968895676838709559108474373973290975850834490867860098479181475662190962017187013457922380268831900247125755695660135485804434338368274932039252167454780313459784813672208539134627690676349009940907121545564608694045741846425869960489613541606361397724895348398368614435482396680924007579546735485123319159902077032422480028584183627092647487054222276607073053450656942898018831923629746527839438600944665597434083556171128586353847238165574370614921623487505383288426583881374168417650065058720183030770430918338821255001261393372987200464040135513967037460343230616037666250304160798692886669721626340226678654606800179645256352193475097448034581554482305937348699218441435500965237497078628982099478982892132126284743855509249881114059031255964465211259016428197242904040631970177806683690594464814105755870228041429789028627243984355388233957292753621051602116405729624050773626172683299215973829300745215251599998618480006685774905140964420643222783904841669615163857054140846095615169398148989082716660813593595671176536776396856860988263291061784886090841705332555637085131521462901671699234521142053669073446032556142859641011238737117146140018956654409506074976577970578135024748003048947975830987836546862740807596251097136548617495176090081155877090240419668621464554794186834773970527997371917014895604492168344951017523146614674771431032315335599897721769515312063272954951252749167401750105978940788760269616335361578456827402614269260886486657679324588119152982014637927448989252752064127792881641056027562697738511430514339898618864630826381341587853634223768103075402135640054910431308382958909047429973627146031127274115692196789236173486179952286371457956697654771222401469659259163667068911480399187534340555910455389648487601947588847102951465874804852856412690964974888810723620326815626307971771704066752946205524312443737941602862888311400503101841482786873558192033229465480362633406781725950632100550955022746087152101455299351768620389289178399949177796370235753011214310534343435832280425258568948610596680708652138208585985688383944549099020485142184574957185540996051848648101345002224861352970680326732306392604663568291130190570317218351842545380623147985826695251742391822712893091355146135567867145483377236721094297303921877654317900097282659479421205772737867193324092816831510274762157875227224319419231201854355334759198723747022724993755297410912794847560343161031690240836916817356360325994420703253269057017396100231611307323736821219811203071220360650689558931040361270050997961854104011769209813551880825787928617949165585071191187639338927460373011764261200257755785702527386960846842340440624429184531879227422540104753646924439556918127748922414888193381746003368767504355502460461773597521787346529199787756239801908151541016090732653148798231201883669543347687632679020616175694789343950130270766824898405498430745704653819763603087255375637100383267081351953719701209527480479388751881154115455769750784974749523246776002657202749296136462217139974409263486128094316033705149398510072419751546108654473006082774714663459974211815407387719015870258160429173160441457768569620269568646102897654390447278575281349730600084074288485651983796289306769318926646905523851466826928457719104322207286282074728900830217669176664789362273691133460525227932096522002877292831409513308350792776881742639854029898363889872753097316967267367797482459799637413409459845739408792964471944941550285287447760217741992380066191932899116263605536398619252909689472678847844204458390382858537536970837364579072562807399894978371237906968732043456721581773675952130474785837255773523087459620016476469769523206579792621841396017915017219762416221283282811415088110953629166528565663681042712215015384996894465080011201449736560635138215740499826338264148252957962204447212345334997051482636425922195123164791959349070819331357632405458819407460278642826346954728523049903865029427933063592861399219195853100880437250401652615854273086511153344904107295187105153368056528105867041995330793709423521389455985350105051181302879725656098340904517703053534038901041897622629845510065544808470483438121482604286155135794357491150751651678214989074465699587748239150947553198817534749620597723565558098803054610542133901400946827352593261385991914597305495972591485664456876462813131903137588716662778179110782377612895202685827088416367163478661294021135314830040726414868961223210701712434799339064082459286837470183111220036396022375438692282946820426558975416258842556926033759340554500913666955867428998205938972510635218237085058274430763463300242166933762211391290919374707664865836124969658391384590502367830604190978300527481401306506587109627402014104181074401242942553039926878123538032981460970003557528039217277468517925275370753612925345974344150072453790452902728096685709466352169739335752236711451182893418150541931111445244489562297898396295666927632272904135584898081176192863060192755608457163772195344317967631536255820861436524757032047530914919363535282436382724415211501816514732109514771491820350063733972407087997156589259401490402692023438404848241926109302464774056552347379020802136181108048787018841287373178773498931886849644467427438101006324466109663725866602725265618606758291676100740935387158982179146620413246618459699935997311935002149143558976718137155045289774235173781336348485808137125408654043079799938493172415970171455796821127241160785630139671912462706331696865799641847618760686538235612674539860738825737520300284800408586685730423307480101397024715871053367776168199327008138874373610560193129400163107973209085233421304099730035747704717485817672831050135677941569785500528599314276633434983572372240463992873244402133396109898965580944088483299809321427485942771037087921223548926335012245392394235031444929183364444561535801340408873118905083945433626538698709583741775123883962699595039815688190044041958969697354369463026704899779158073379005311673634585217684554338047753508653538398225032321712760579390370454369579904934654900594246678530916883877676303111563357678051619631862976688117546752944551457224171242347542100354245798711440421376689536967599134467801271369285845393760961873177211761338825701499688961398422654720838283849401055986590671585470110311103038920353179559469499423569131399513817039915803928827797927501552417716170753581253068542256364872582481010344076620795604577387972106450571718513481346223547669422892460703857387374199912863822222144362143637219011956057869200052228866427256547424877497377574470867667036196387123186294086249755040524475064445341602577513626220610723761011787512675569671684136737717124887183477322775953303727150932193624687451938537081004757896592139345109636673213153890937273232802851015456219981028085804075629058802291828212871033211404741493629294956524161628822725017683231967005222196560134333662745181355546784231538077050357141577398936053824357972556700103671115765009974991566662938911779193737500848852854279373220495406721817379440689076361575779213423368517782265853796220611769866332759294775381465075508915390458363577772483898344702414275913609206749860675279172349962029050597042161890599686926279667697464529779565806756488392480729632040667006321652724853778676991620834426689611378236261000284365601257926212415279462755454422198979770170577198221219639329573092364585115677978403197711421621150393577022237361897705789595571986883526634471816830748978484706468229940664342249481474575221119303849248740532647448572837078798980902814792884405300688409477542946502830395974548495216580413071000212430900997979729602176741855836598153328056351673267098603266236717484581230271107044396632938410970171451046540745433645251507506822205879194401807577074965335857737077725203268905588030848065750442157496262623363844867766144111610779273203342488325890449331445759293979769139234045414865666102544402491591552364614596835102161367609265217847616919916112869484392132790027377124433772578466930207850264923908341488786331356945298613909918721723041497042237501495741162553210628028334712129652502127765691908448031448007273540219205566904135547706779254535373859517693286007419619433844959538428431236004793718635212126060632520978890057488299834889706474514656278741816945562625166292575809450786304608513178346029490813420386402976135085254450170222714075663360912429449179586810887408371045989556880680091966593736694015747720473138144850141860653831180470621831280556182609422826675227561265615449988893172391104193948541713426409890188025892668545945322106920867471358258740160984738170716467973068875505441089121121985111738411584211219067460461228830337485440210846342121157089062178317962158155681921106461825849693213118754459525302176233850712729944708342369700411758994506745333863318983428876889494155114371341238955385145637327895505134291648800059527538947615258947883320205551689995553722357539143351133902233773837836422028527009403374781208835742681508302003837065978763256789960637914437765920949011407958249818088697116843490759713427101452955365627263323629233820335228793525563402576154991311484500104626428861206525201967375721228939861010372753212696614910027252844680735634933199120219890016941113401106268518438243507431155140408776259075817072371656122683027913461645449246329500805085914506685841599024362546611627006035960560503500881366829044181972325242155727410906501106231229388785942695371352374232803635097087097836579868613954807866277452011455270870088495631582603338840486454888515409129449535604594175020132989350845752003011112083051635876879808779574398757843888957512917595316200405452513507560686520003874237980467557861842091499896321119056633394641207104196328059224406018640181808704392699114556536490380385314856152057706109261092226687196568780659097180229266755614705037519981455823428288842052265842755193447076325698703600159016638162177126328351193839426309326896829462205895598290476099925830304937768233588183409634796756117783172826111597520536263776050863342703514663620221882300432373088150548681859481572852583819378693979987293749811556287588882669330931086972912643205793362014551651066010763263895035160580493409580181536473608166505390314728586929304520154098684885109856847817036709458852529489867933840743123102699712837170909132669531897483600798948486406630133915666245152488109311735451414222001051218496348823524939961710345581950811318779976550869392269945965399302784594025280465793556832387503136242949882021060650833739081602719719796917378482753354088741140531851058089929927274834890415793786286265930676593138121428616264348936269087001910096786292698886598557872654081651733291817067020112504349519640717792268538465794392870980105048986100102317756351804119514989978990160717397617553949133984561751460165015329954749544979771165781414096754113184879705914013626470026813383991787982664500038658284965560371576056050774880413316349986354234894895199014146480426446366221425606413536088679054107540935785483511049709090589516242111091103120508404409929666966549559941098167976293968177255624616230548516999564152266883040162067337136599867544412136842519075854276212030194788281769231344236587235818601537449146225576036315515120202329784931270898142649779770586737053649188159596294897940915101007555416170412891483345152360303837699330916366960942576028229021930736708101002115432981928439231743139538032729989703017488499906079598943712306212139223917762555606801643200821458634922065428371570086809077453210886113325225365277430317035096289767524621820797722895817464700243331527347290493943218469279603579085467760462142125460648126300066196885893354649651376116672625564016186268798902644026410112570891027480865356208380581470236001899287061944146319591844633148677020387697573892313971334792459842540369222884232381554053028640475052328565522250956488096040345473555766732085126376651742910246758194541252283231810580162706298157903062159943390210629685331987735122890544906779665488350514598579559528698383454488484113155494396773961677050450535751155629371927097430344469268957717834825560050212325490532211052021675924726723861255129237788182059414404611288987685959759730854153435257808970951991827909040909335295421849985846385380379625174203587910831998079421398554358213084951780124433339436503984390320531540301179589977444136402387609556854613936213286188657415180632766239766984197707908185360999323319949930336692616393092165290458820901810856357961079302337865219792149932198759599510706894433585431135167710371563343452823928561551156887808895199636080928123849878286575765015715414966683882398609683643590535313060974076911836732158390445558150194434494380902369197797533391455369482070711653167971404339355148696316116023918261219473314340153178283996368777654359688311904291960083195898908687339363605090315287103035922536683613028157492536085065875919831938964548529030490723133874348052958840116972248575815143255615340835972488451317381429754391713069328632135235534043611897355938309440712105603305854454531598661477928866755202813088868106835669710467709946903976461147787599919249777834121696265605430570357608336162091713042136753288858769532065903753056474472777314080777600158996276515570347025823101615037975351358377763214256676014107250234025634867637610885496153148562048824284454813973919767730525486329156552555398961466825669910477583456608499804484637164223965405847883498534186702198024635734978362659683615395708320657173069707073702912385209160043580977375873191650335506725981010742821181490089824496739586782042618149414414047926344274743262226980421145687058226360242742222415424266206834922567952101499872387946247679410698745362138119547714717423028023093097161272540809224723647991308407676924416098467634865949600697401342536357400919116194342767048181623093231130130909948603407523762867656974666495968913493576678868183794650453721069397149820826708230295539508476828137085335821275859711901786318559347177594275425326827884493407556612327513879140544784615110683143780400887930372222528544366877106532262631376303123827498644051477215575898636589255404135652706620817598501370060311007408801637933350161177303890883233844717412006427827358644164291329484518982684780291602273290879082936370443834838761769198939738638443770974857393288846253104287931794375782320551834036061612909652582633398996573264266428425491820698448269866236148639999544160962048729834145284352579189857265510319338247900116130401294155967444014641219905142441945186419717531867794895802629417739956385314924470010002871238290113791228948395115126807185087764791699105876065866453321538107715841345082435471190913817671652131251787372242619815275333246804918216746769148943680935438169662149481324335287225867190346401413855147474898721697811191140303799124122614432048385079445726917475628364522466369478341227340116826851504173484212863624289373495332909172780033593790203921016334687976916183987300979582141251472113208930067524432645032502231254074245542175968590837558564354131740538170097568377768962614225857304217483185610178796481333732637099877368159899516208187542163252720441874158098583923723894558140316764566351357231318173245975945487583428201354149766376449813312972675891797568801075987216592616023333133151897859453643645888257047811295932891470328753449112665660614068310736196660794315470799431365622302086145557207922419525392192133351588495960830491250313209350212603624066792272559013562374095819804591782760502225826770129209435437109929194175080570271174311442574283567447814467274937924590913068064002020029571965448691058820457473815757839529667235092398642475278101076499265653657612269408123162709814069833918225327226168070494027700294423868453709395964487011848946928832387893104300881412843602944972326728744111326962812318481578173045552550362723083981764578917370495122750493391448245774962368830283124536557746912863958357757171419039404044195407878662884288987307654440009868716661644589398629297045651801772141563532591719337840460413426000826578716082764171427899218690925774883630584281998988336775221092837532852807046834159722371805952100352423085782788714586228337522313648520913945658877413048648869326633822728272066410665611375473724619724448380993682935080698252568105739567274237918980883771058306744103049966497074716269639984386576461924552385639133472647522815306151550146780662742401140116527666960184902244245822879886113720620098650741686736836569525111959056010026252403277203081989061809193660557965501801345056888865796955989615174208577149383125733122048441561321383034730700615451937906799161078781399227628741007726581262862876195873854020747528918361631275946092349451856426616761932745369798021126622418717563553112047973053608531941483998560216463177771475295974092935410160668962372526866318892682817993364309508458844410669849685441829619454725499790894280417346983376356089119037154901818909968869736846770593342388341867418160486920656392925882525865001619553106562733331250983953126506545311681058288049809218607983248156933140831733433099904756501024231607738591326254746346177070292460704431910549057163353329993238561457681004401952726271774853537799713775118098684430661912872124559453368101005908042665736133969574319952539760083660654373418930296086192281959398251586555055537675912682226983629180652061800152594354412159022244135416759241441659238002881773527533076405213533988825264317916686701669874829904980986298914226448566773205548401091365625963566502319759327610324766499733777699988020086764622035573316740932297501545502378292054321728477682767466611851998833830925380670584866044649183676127244612570792034619844119832399122401132982638162105747927562160451635167749524319446423910709760065694673267312920907607068656926670413287130352858476118052243940586006303591345616990282333277547509030453781811945567839836315006841834023934482292518297547908273712536703152958122856916458758915367606671880481829996236358215908962751842748072036289433410558688598208813105938627960809880232617989277279176113055151023520678486216250648191076202908306649562085923772022768744799469234654765227205952124335957032737005528503806711764223051149306198727694201118699544404613979213918851236491439519155657943722779573544988142193719993538522231996537648923917657789170088791899531625911957300930918007549589381490536396960672499061945030048266753552388248053349142814847206736380891807307080043515166527748836094331920883719929753913802864789526764448258118764798982111442239061834187134028749817792346718511067851585918468280371558050084619511113496524376576302735189313653765520998770325965579640488986648610037434039621406090003574838021336148208184988003065524688080924248182163392182359212033159279830939632740827355858011944247260614085292405847098771260680788314189411630339231406556325578409911200619294789903477344581976137321570398324354726326325457423449079706358061434206086041183296332015038277948185649051842871603891564818197658181440500729171619813835532603220957659710097686278593182067034313893971581655972800277181049717174258559660779407822418119986607156623140599670964072560963887563512772812190749428156636288834427014847530444682027506500469698232828676292074407387026024688941914147604226678364334661175878895522649338671365128070085792739722970141697170904735749929639907358315917074770407857284095311985735805722176796732587804792200547976374413875498716516232083841999392169007229699376477676972511391879096988308656571211627733109070234669501995047342744516274163858707553146772580613616246871640460692230958944768220049183984555409662718072254042333671415897187440367851160705846438492831880759438034152497738942912025844185305330741456940464873321544376087147886992911624948691817666292171372828602425715131852964639200769899476900060769628193588503387546858913626760287354254940074492169384848197454567728523485631421757202733983310575820651405408289110014287364943379743987174775831072146503441673553372546892768330805798857261676236996787886488009482770926169134976862613822067997516923494392212456338746510993454404408079886686876403199940098082671697504957851141926169638450440171742822604124162907591458319666316095099979457870200363529206650639295805250602192543891050807033989114864667334459765661589153086311243797482820539836358501813817662113692983313172811624637152133762886687966156395521169701490879908719207163852716855962713016376333686257229398982636122236996387803209895941227077805054933321312453618917293582052944804655878916058497380148088039165123422750982779500464738173103329387382070777110906301222574721304949883174615404630749330595547241767509339709198951058163858062820886458691636095502532377761515486421682597218916442453949146699279962620461543422217417742739758073209673211368609986688618726306262433558852320403597653448251907901637687123975181409592093442130936335385765973949707298884721272897712480754446368070203553736122379690888457481175196597141109664653558384269790764434334385295890443603927326861028113119890893548681765762647248318348385746207010392773255859540986959567968137958911956696125691580078149681394668630025243058152753495124247243558261578027745234578095703732828302317821658661295847265017912838260748335185674625565815293061263871948406928794416530092629386631627260734770961064488144357031161762624350852406071237257607294998041202083621360929434039040972529203134667292887878897078310384810498688694139191387860887370992658529956444153470628201262599397981682731971972620887602524676139956007973616143298865099751059145571005289888428120227055456572212923636324959128886935553202866792461614234789668754349743205041020175187567216837486567739976798316785639376567968527940331636085832590832152690314154375590172191062099880709677818569724817630332333184052979258816470170345657359155511727218660576935281598504154116349869881644761621244997525866754735878194598112589826024503179748086457867927768814912406361922509295254211232481333536091992114283844847116822623952840008983424690267197898799318162057635769432053943529108477386767980990421453536580713999005509304637743493309476157135311567807943038221263783170225044965633363198298160409762440516892726798036740454904219622939488950016262493273116467599816334111165119840630735916132762673810118036368474186726502510366908678597664142153238357569269699524283915935758781705653099027232528925722531762865849973003484819368130361269321431220528949962764381888979455765488012943974835999996655348914911810787618077619595835485555427480242241988257767329134794948494291985312815127656846234784624994673528804034023695730538499058092764419177499764798003915791997061467057604870750402711872740785228022146076306982989743241852311754887086702484460254451919929213793074596239336612318116375436928792928505108933632223017883236567193780547741072218513001928180053844440433928348368108901299495056446043479697844944979056595242464545119314958803355772334048084738176490141964973489944113268781597788821435031999819638140324100972248871185255317184414912167970031258236121471077779777915396248210982666216990568065320761075952820017789681267364974442148534091191281802445131800264380469583200107893335947949268629065215875672076437334679483317476592290937768821911129387539537624771534143826669198889746454257178521451722770888749897545298148279905381265571761722650225805608923853217939497366176130310377757224948211284069537484250330238292043274561684601264582430275502332563242261362468962652488972364910404690280079038936641731821749258461791963609170151403746412807434293810481043930224036748677889025573498706505529360903906984590630580871223144866079984233662185850965168640981691744920705132631885624298415956297866524186729463720495724033281034423607221308032163249229901784155950616570200590754066123214991924630227310082647141689404221520367356880307066468500496539259475894106121476069982665721659986898728511274030589000550902706805928760258118714294833514686939171656264522909051608980641352463191443356554348177246098749221982502657829363098915123684899094668916851918198781018831777118260392477104618201421578995218981317573007113830236740806081439039412904541769575168942850922008330467921199497123969562061631410682740453061654763286368280356332138798013179754968914394488754659552521893153138775600424243663835030063440383549287258317677268792582804428185178021580164947342584923559778793540987396610727778370328814553695103495780597460679641000172081086965412922639399818867168664436625846538813571641930658110830264531420268137059820596476881016040420921704446920340717481716658506795543606017582585030692732657944859549412726901622125062862632555916313201083665004037508266721588621096412079640039753516009991488504506981944147203462649689622090284325125732105367221904464210478613561007537960807353620079499209027111118051000874650516377197660567628784200936093906073547521536154193881170951704310323197481817602644553129718443091148564294340205712100792602006510998467665782743498645989092439928980366847981635027355864569654756014240987473269268206549824822227779063763070262242953936487811328455083948666850864568217777903396399536437708588022127348599404942526924138934077203547433939567996946168920579529636130707489841966836224526058442167960799282411978699707769964890691257889800692995638460254382367781357457130445506844543590712132334286135249589160315608719929094180751502942692658600839974992745722776608695638060097302057245310732594787139484320058610470305817083105265275050495989218539602960595551958746584058244727942622115481472618279688406234688070651785009558560605031545987517867368120460194920892484576459786813150395013606192195808030694631757313281245904960058234469232021299519182866422910594453189284887914361085641532455934845903056739874251950741073997788841207893009122687733055386326965405595001924588852794533678781066948821736681674278296625603224288385431695712593097310813655578352409225728793821083519722935817472853846448290500550862954900335300762977535636268090791992042920720105879260343144915561380506063597237060289073083159497437179657063788602421034046539017951551782451924612293209365445967994133363867022777796655104127290338249755197949729080676375165285202914592405354763302639418250091832169649799951556300678626548188250133034534244229346465154240304154963044124241079794872152302701794565777623635910136731615132116929945875764634981758221089564543124706249437397630650193100623006843436842585365187681558241379825794563780565549731017393558088416561840434622110257425162492105072692131027889804391710561368541649974543706988261909494900003209357487090041061234630555420768872827047654984127548920735772000886509720531103420162121999937093879220245768185381481115374357431256929126024994479138669102522982997403024774616962963332286969324159608746852934145660602688604680719148206577168147890703689901429996852903194100471510250510425528795005639505179735449460817987077049348914148993610188083668027347989894607527124783194512218738489866122766784787955112080597103472347758294156922706679389384988803602520199908010636356648525486286173059680195882314955464842897825105931168850374253502756828303888966749454570085839760406157006371216012620205497961415026785428898529706959644387152495003263901680588918352347741553073368667445134764474575040094431347487574155634741848559937812351968219846086584849820853291409883060481782137870289161450746658714320792289578515747933825492197584451005840518386763536729231926058941804154500958062656603515415941200584447225735084710300796090684936297113375018916099821017348825513067033420660867087520518602892477077101994350084231494013003773100542558994503885824274676970177828475583995030720997629788141568957155368637420850855509672228600537099199529177321463922445423696920049556025104459160663723061242055256404781326607366974774171140938554638089092323606821703962148367723682487285454365200190893457918285689110828231879279229083209231114496099427872949971953555910579234717769604422335964673952585469177203637387686327536083086098835528494469021567027800767251534003311086718666725452565053668014092314612780890059071927206502796750581133151725043483227433289478209830448897115015046196436665513828762903323394107200855222946983770670996555232107516469423295967662863481809890273214127409634173055935338606772206226034311488334623308139480655219995814355520399764800778389013664672323773334083539649317550893398901122059832153222074644275128542784818488027547143076703482073350395765655776364334373933940737757911690851743858253102107250366345181139171602034882143150781680803232269053570720889203480557149451768794915907321277398725053965330294759622255108256314107295502311420482409299691319264591028448292883129906623966032133686547526453510877343424611732597646170034408130871919589356328721743969738033457648086092624583344800066169263764261416253186264920326600962428201509438714871836028825975566436504513007731793431522484351453537322846973788096162369404382707215270466851047029543849488025060670660841514073687223454606464193590626723033568290901306119134114655724858468520381410258450143303476452697338091754051872151759323309224343005289111307940225016268346589977208402734006180739331896492853076540358962460593941499788253255208710040784172637495238157338002896920325966561114930693592186871988163791667961982462118901893416897051320884726418360006280731957833345720035701089362464862914380772483106647482382294459025259397513327635154212202590516249869550390796700779892821401873010992236772098586906486648389091926605439449427344624283773397165955457757026911347410141805143002932397382724083346051343869310502243679030926835672370728000208346917983039081551262360798093077816086937227414777658170592601129283447132765080219770983409534816424494038275711790115785754919680372223516218845284267647376536018131841017891342357959930077734309725603552146370682972035435963337837641093145868961683736768781989264945503117825875335173751819109548835132204555730694432553376323589901296491906883042148966911990694389376599192608381053393486588539697555943608310154034017034147592960430355842969827948958356730993201069609883548490759859267340392814342119101925040903986172569988889168319142555414233889420969453477514146549656337188501930814739557069165334904985856082054959137431844978251703407393539777542204874945062245368839318191828660731297797627679108269819263356930049371035937693266555467611218990669581175704810315574733683029351438277923949584536162053727602216782147525886464282231660136260715941130306056929871739809392209457918147204690042064031080642385549175127886721266864986300218870572674109019622059941549373917703788379766736372569133880925550517780776856938555309943796826538715858649550134081191639391476044131541846767896220564255317964200936426815418099333632822685147687491647100457012203134970557529607173212766399540447644832958825079872715131096147806870834305305551180453634589284653201216892857241592947379673646054045576953610714567722389274768339543379234667513196873539500502997660332843820421327903169241932296773685282697318186852399918137549760685185445935659379357788218293830268512190043877548072635273071380864504776175091048736683264131517658463717735985845918307579852466746822988662519546547638348890764689215370120105858580860580117847615624837526963732105362923309666883450331306007357396341813854809330558646473697136625708618457889057308513005321885879699152588120078495193093899751253885323377682893205606769041154482250151323096554216008919030812218694456572229932428070904914500438471962515672507781601070207008485385567298673319481039957835909047090990562046831228206714954225140565529263836017402905580166193037424581678633530809895228572684407900398812174711049188317379003404745079353216451303972079211041062169575181521957505644232174837221152125852343068013125325359088390732950316654894190055821012245321989377243369501230363677398683730242255627225667040122426064425158947259977982589083004080635582492264940482512314737851669421340795738877138462961664648948847395784272164217504071779621084684836409688680308634282701171300596016208779952027849877829853776164973369151137457461830717115622680777351428383300870900726175978413176979535385644424455287237121059027628440140084988731317080855092726990724615408951047841043042416254619756035838267029033875319050702700034991853904538947406021593073914501010742956196239104547442563195416567061149103193541655262470624650441459573665829838144436412231744165412983580947857135813531660748285312609396442131873045526295577344898011856397113044460135851039911236458570249851690288571294258129538265419284289116814188342198823181341690207113022743060329797893645149757243674039296585230008808427801913178314909581067257887880296288962197734790196576665512309803705596984086964657637192332726788820021791276296801742548793388398057176584785087696475201784559209116924322258081536112819939097927955875684527477946464409625080261932908457875037167515947561787180799576988298122563293762786182424451655439566675912829960773981750740564636614290942431033757460264103781986843703908244018132807961651372264418013715102599909152472877282705974291547246852629989184951784448239383917255797141600160925369721028917586993288593240945688660853401721187603262127810086837349122300307342844165910065319887293758389629973344937298747360090126110870881380610182598346255506286563584100333095591145185665673233557548752700856662383664661294920131400599388503756612609690701022638071115287663176177500514131608193494123087080902356049430252782152152477440200889600757489979461596317750209551131431300437480653025715502795560989031427123638727799803715617606518981923132849598880255577778443896188954095138927632499835431852743519483409824323049026127652301407405832957724890216515210531667005384458411118138137876015435958655205425360270535217445005375127018364175088767206435490358709742781088752439974766064843347564769109495698978606990764278952789767100109707984277086097535880440460687912376272414931149519683461461300572428650897173298450941932334198745835078782368989911929686371617256076229492990014872343452274266733583198287878609405122672028907911238583530171775960173170969006406842599123652293628709433989662548841537627483512853572668813691171597298510274297764219359641057394000437808112984398896322718438413203951112249601271344618651319468776868872116561579861096856439352838337239279370980679599126747055399911283402982636235028307100466641670463431181201160610570965105742560667224478223734702207991106211216546703855384678753917345622430383902134761501160045641805468027361118070690165154573312923131104055846334808691637921792278993634307300962530091662722778133801148484475376223010992389151848252057308709881818731060329166876033195050366858631866299661078637869905820556680625887121028465532981095361549303622138442831576031380889798699606408642463351479217185650561647188507386736868940179833882238999631466345202107391814741852099384841381813603795494645417193646308852045687068647652861819384707062573028710054649342149440142715013656131997419503194787675133897439767497361482033127249122707113157618047360332128620330263861320205611057694488712138688504502367345953045784612902933762897186374218660459816029155959603117276969312718634058434381186843473840192873858487374872994412707335898708065995960767253070494177178195682978416840422925724006739669412986726090439707649392025402308271822981497129607785505194534781314445136034757582912440899785397004302521743038437036287666117354455737419999030170711167417500296773609577876115670966982550121575364976274110560671127399007905844035917829130768792968646595344101963455027935210403055733813679230542482567411364437506630443238062809716590139277858866354297899846071692565620428188463468546204896253290113285561830871706215690823687719240828320666503864854571989582848607886533060620933738239744246996411806996046918613738280386321043535638741683759259102811824178976243694294553592123216360838776368213173819618205214516397035262395422617318196297140459911868702429395650198145632022216165694961399554256519349247493157235933829691107432938946888958251751017320264179816110130144827607414932349979940345657905782249965332321883746471327048625135766429601942060305109911144452340836779750522453522176545571648536814191101993998311443964373529764997780725828828617984940145054498895306536225937264221863844109630623972408958058051840476104310416628648763378872708532459832171349272370712595570838045214834662901827323923121399073908457845513874742183984965453189812027394812705060301835708501008929473278301778613397773560932255623860137527986579848055803876459388803380350414258699650753935876099111798229433250001027676689745982356461326653079818969662412745515612793650392792893156018783184099582344991813121760475351457716043542265210910303423328735330970146059426576715822244068384707018377283405718048545518332573665434285824427660665133990745566852179779523504343898100077633275845862914817257123214428768069257984954549948065509557349293044750811047779322040507517639813156562237473953585704921354905583629558664467193298050105971352818019945369295074246098226936508435367944136397635349684871902410334831532096374983047218286363520405246525640460305352603437416934145972319149042228105333089253984211069678235907004772060856047495923803497352473406940338361364203556076558478593237443864184443298345369352525591986233173683862391677840490983766096837980609953590267657355162096772299452295612899446820022866432516797957739249305567935313869687594289413987128913087695918650148959798446378753291686738875887268480880738945717192784881481641151218278213004995805361113602431988434328313872647444950961680371156657679709681369995356318944791264676744884523302818055010501816278610830921103581835649199895063299841240287465222020269168218774757203119583501594447749484365599336853301921392262699028814275954953923627686095900766539014157790060745673636634068263354557926238780452254823113131537351088855155529407667034320326224756020471315740606779149608840869357154810744355300712659078143748849873024966177994855371599878214788340418555768023971985681740076409191112440871518085670154642283388434542545896280889303986313652745017259754704975752952173990085137547192950077069961404751683125090075757433330592854565447338688231333198986202442878880567502483668071528261316180445159467462474988565745515435294589008642995583291953591637169850849235358978305885859004366577731039551975621867145389569156404307247563406756166688976584288979373571810849314009937937499710745348592607441547747065159426828632872376398925255827282026849915984513488330790338063080430041644783850203781754191352760876809426605145939865648842756046681882959469998072324455480214908054551600669082982182037820972875580903687095870406368189030184441129016686415093185771053460757245570564993273044440852294163106110862455690915551524583267597239952065028051718888618393963704690070834778622033216617782788066981914783722756632218753111372158214180404567358002368082704391480224791778397253554916250341359520204906429362242465325595406417511021040666862320058131671362421909221364017698696914192580816662509707060115807001321763939107970810219878826383078951782202746191875497267987017940407838814280924881619563343052945781449309873653470462329849300620928751709395080063417569438171412518038158272838855679329476316299265793367595342336077413534572632462791451378277584951140289436856316120800082370117761976184464970482106732397335914318872581138239290307979622939635325545899990224242525811536066244486802708100539070446273351349224983954697038765980726851848600438303134931718715991834875203327149266276702064508013451194984871483178457228388716469805394300065262948235695457089945931285775605305165310137112010798401251284220171266562940003420969480926556853911446810381293615288413084468499729758752344922521307150390193038686675678921401246102247203335921021405402770908589875543531033642201234734764575331805138633008166900081294371766990503179007107638294753989281379033191717148850034020277771934975172987802484472723674158829838760499403239175390145809639313926447154047328566104220907063153278851255826054350057928196885335567121661228538590771722558649030165506954398755800145968196189089602369163290929220114258408845423071202337499245019706942780675548090360287698754823896467640451997728668201940687258995220888923470559953368515728296034420908786697030673511093300234100734918626487161130883740025994671947831952679250249939128370020736291060359839806777519297948310937751259980535469581818888090772831088895576943505775632478376116796431166206335044751250211730133645317202999786540180418554628756938668920446827299056701048644408701880243164976394241363381845057399246709148747349506291795880118298492002068370649251425883298897685268827787527022273339615816881240379438133565001540666172185302127721017299537282581277554446268807499177468927355222013881132638398965216549250099197772036850534475833324243382984221354180509082805095597497350136228640326808547330489800850079526373885436869115538976431832878415809777469597958206534649605785996996868316591102423422449480336040285074294411562843072737935465036815606796488980231753692881801479944566928281039077093942841384954323422241072211298946301868093856960389017544848747072951345874087977246924567326668915196131989508137247069511240523708059904898296542731724156268209483171975124697849694187361188637558094786056422033229876059520183102133502113945987649835500815695403562611818265363393917360139344470835914618360273876431560209256886432730845240328603295173102328876065708520870040172148069964002842942391100466498114293289282391542445427346162774543650503964046031547819903883470391216253077084378393552614335022530472383658438087325214183002233464926527614056715669142854737714488463480636116634494811651991870117760950165795829338779162382872697465572888481357674938954334180973736301215718734758568386949641028545681324027012033839980163725149072873080694161427068848564475307144962331892126991069270742282103291362782868118591724575186652258811647050467824899319584439417646428379449359631208207770549280968692143382763989704339543869561253803136127538690495955437618635541873605068888077067712847036245457232103007852290355176306729766336466593200815820498240823438693629747314210535772456205419948825533149290232270247514390458180155572221551056465323156240670797795069221805684544266962644345861266287444695721512949876336234827529920688750021774030989858343844165430324573938115471253347490000449652070908340233382658486588304313251654094549838914588769688825231694501295285741591989063991668906851798492538831226127096808263143151455132563494296974532344602972567713966676130222957214259485437301721195071173560758423138709540748881721726836058568904702947049818005746117737397840651217382132774170366326260632032989762328349478496941253659448469840794312934717720109583731847506401083069376012549277811484166497525050311589374030203197471861374551829177523874189829908758698491075149201366117470427305473833629572287839652120417151016345312288169299176056080410852363202603343356216399837772072779998515018577833894408765025705561199304166403877947090825806737051267917266937098295330108904474610901126743706420138795552409006333320422942247269498014500556451700524461095091386697874026993167077488301190635824663445425092873561116508870215382863889135421609191878288565901098307708201788764181323542565251200551378885289484507128163471992912986342699213486987111732492165028984907282634008607203562288313060921651949691600631077032632756658672584543984234068962218066540614238445128929450260291084191496127589675979801193000134740209678987530392959372643713733227909432766289076232240705710457975843864928059854844239972065721498559659798882789948790384967583829794480938217171474517111788658870826019153218414409838488190941666411543228190672631105109641088404817523744345202636177378194722792719733601617953844228950851342857756241829002970158879919722426729744990306082569286252597704487809978166631731299519223330588918150830047181279893408940392952504686862685223014377059606377992812126238638394044831504386700208454218316645234870245957026283900627545913754441664556353392642959610015939047393245922565286176204786127466162845331201633134834843225358671695068725278440399091014660777548448026942739722831062411878058639758694461229809746550597166837438496771540336745661489205900453611509259037056634220799633087524633241290997112248369134504737430340527723220837905092994534638109573154833431962117612792814209982027946408311901069882622287303292862717431065032555643394845332708819354338314076612131827953460532933037955093609813887142554025485763460768673989281527544596867619669836140478198978823037764878585938097667002499348787170459228539662273424359159697464388005957097015276171728475946204158930441822772628220376882840096019842471475171271497638388125653814525777615586551670453173767468454678878561500505222452037026076904378498431585771564219309276176412396021707409067579346411397513827690752097981663205682255427709531599608530669907945523441796510839096373908573741526738250854224775634918358241440126347548676270638103984762973803513853910075631568103776625555081062991084640000144981731074048740689106467866584451846528356673087635141293700142971535817719146798036460390161319414709044279574233627823044443944394955163756567555455243613622095913717005765734753759514466741302449011354305586101062735306258436769830775507400646358645549149482245122249248499810827680421215723284984108792662363679155183280075374145273665990910790940748328068032647757524053804147135956448964010676799896187307528194831626095309489701145083395141283618727933564176250751199963825217276872107014017315184996857923870847747180923189262226556710858422171856254937104731424118098564278043878568133010986024152629628562797435991056112196341579963253706561849680320197156081182784751480407712730195851641440446047630035989035584704955814662640224303828855094699392531130012950992856298561329274516268547617410207694834554992560505463886066885043778482139465770428994650824509580264732139430736303672897561175210536269411978782157003618495183127017464329635707071884115993563441113436319579168918405415120850127399535359225175100759638252073499129530989327769490036669271127380546161847850570669636063446441074456464206020493651256320228738056466519043956583469150256705509907676303996840264923367783352794210063653163430666087558831410316511102156489685038793184634545925738256493765951309299049657472012739949078080431702195631300094802641443639937317188168225953015265919676367358374054817491069412047512623634748515588433979520540887192907606184130572531059803716181327810194978509318128533506900901800865958568108602628608467146772416708901841731048262304439087689408376142538970386202731846845111395725751414221014220270322819516861068377721505795119369370256225523841953851096049330932364248274988533560290865539257882355305363273376089131279797899174743635335621632733853119656994790189271188422687032852897096250480553530283891700067571083981990151831613856969640261776496809501693833832239185557443127279049069968098208588111725491346874369824708066842866278370629939100068290244497187096785812878716010069164449376972639057393535689259187570632803401326378974690205922190541829408809651829105780450841323011944570750871290874302350270559645996621408501294376697665906121810650271433374050993702547983869818294609261742972136405391986529205766664196458980672366502307132657804214548944534335545840488827222825780361312800560802649652335410062043396467301584971043887096513097910467449043955728437591268896615751660859533261319407948747163317707886919600752543355302286410964050029119277186162270815193125008614580675757249209925774969521384035641889346521889391014580210437057322539305977815346996978013111172720358079298702102709333736505663481571668934327863900811143955859170859070408829370617047375692127275485923275136560751219554135634138477998926663590793457599963370898617887116062867560477010494120792901194116439934624612206619859216038752633369947232345638435232068760486888463841870498159427522497713357567374850636507513931678512992805350127503008869423862350707499876743688024584415593480401350191493543686559463877912281960527282174248011479822171854327124005483167960031929562721504976641223316277513204557642574758272090012640630081483489004739726024887232558624864214534975164767322259981823945979756453789674445601092787993264774944572461528050819020502376501782088529813417489066840750046779413635236953579131044229151362562360070586782293745180423707975965418929224084510403155535836526719130834123308533700676439977751909752690846769822737549972653921035996912593551175178454728220713104887029221016725288814790276799117904415914771723846484955243202500037266747847558043153615021707736877614073475942631570779218249269115181732271503114971541463290326751112327477236693296388944231548496944309999554702485388959962855576082713375913775503855640578499790691927785849133179495324444600570936267088384378469880439770691635566002426272984095645139414409205380921071130670552361326188428096865532664534553529207296676650816999817264568483669794693915804414085689493176815775798776736822844441729876202339622174008392477883037583258483446026399928380960264978131999348908241262747128222556994412291235018900209545940792331744050974361304689630555733495903832955699941283612047737549920701159137353308082614913931110035313507629500275865952486512699931824061292736749244877975220291585917777205261870580087190038889070840862204343238392558683383676860875906757317011502645399545717105931283250520284372878947291982632869136402303989288079039024686158613399063306725183742767216767054246899324800924344071977399159760873219266517230333856954468203243957250042441722576161447450585731999299068538069401701207635923514217859465635159412743572271942073825895050818193288612195282466996152317822118914198697840483406349319654693223842908849955406326402698993627556878122752319736001179818304382082094833724286311366688959976692714491378842347181383445945962451242246479058213920565346578504115902064975543459953897471339901550311793858948639097460287733118749130745325568651035875936101849429065636316342825379006592860895253959696543334156309855869551874043026413984473739023931421296939129007376247142414719251006607988412455849889457362480909848901129409530447214493290871270847201144136822666339057363074173817745549825830774648989202869037412192771847485842192797519749150868468058673194152080985628270170587634572910617066720566208615907765449256104361394746008401440877088702600444927710509353137355038694195510671197464000952172306921503454706686028778845112291974013430028076499909263338682737716097321932695821028826021843880022094332711029968932593202924649595062951680989058077427214626713793330002703607646138209924739987253308396321850296326448459616128693558562339296295682166659780694722766261259354367286432602151118668557486654413914933716925820133935318462358139389027558497787359688444602020050894950621123040320410885840125867975050322176698752748858615827040998257359829730195552788138762515859393035770918565785311319995983952881697474101874796755024429813797391022555148896466007791392022088540706904955445072901619954718204793293327374838455984662328069015108888334186314771501084354137723013368350152399157249913950315018423443008683132354315971046707364282937985812831434424069391032581271906162405699886240587358861085122086508240587204493859518528125228787782104578653516935166478850475251224000443714184873881408766614216197047368422812864214286860520601951109923645217370194669313511206283482077397630640038967829439225168816646647673164000867847307983865875272747614074848383505462893784395596907621573984883847529736866864192839706519924982267384796967485215513922671554765666256004392979567129141878963278179738312484232700473234178718721759190770650110915545775491703244417513687010698663193435270548639920913449021865024421049683994293402481415860088650953116809937868121247273733028321377830871041714360733919291438496022177506299392681394207227385184703570170980182232261241810592274696471474398465828163311490164693935408834307250812641874878556610916813747764613435245739420426587528110483929628383511447082242737057381221988197528017192232860527869454732265674523145768936061973895318264088695431246828333590563330872707712476124813417199015471271039648650497362445049748410848455506997906424700937483993754493375561738081131816608455584385030166421924891910818849246781905843774166059758355200821475991862351084499931925484936442452889366441090404084190770138935866541468968854779246073332597486980087533716491542961967809530465827471802829709492781241056679463968711367701489226483316219177485013575540068393766778792716328840564501628209638998024448232139728200188358793107988665717126455607035691454361887464046649608260737992084201535975735963751768896228804954473299442758810482288365169113426807481355300647622452231204831990832941610384392100419973123068616677422406601069489000473808635915597439294643625304393627217627836240337499980501393541180379229863329921952633050054365986577122906765183454773689940446176224112722070787484099598036251287629650791924284796714070419621283931278437568320210638479792804349776372902294231296088663999467038695934569271692340888426148740216675501071083309278782296533157946593159472164643851228964912200813015726982983919267095898118688472611031983095494574867439602844075055384166698360115412237621016216624153250385664595369700658373310955188270947020944927958623371013945952600072456402599822946682132776321986048173046516382312551742088051833012865044185040718848984093071831015284187509017636976309758351954194548812198785064577789306209161667405727562028719008914618516790204442880105659392351834188914187726706107332642621050865062782459333258126779869385847942758465075517978476732679187213081317511797750347791947083933320394721314543462905715223354448340922956471198058839461097369504135729579090810134965187492975497068198152985835774587422339762314768850155759360525215545402243254133322068849756228206651702966282399837808473597511343311230664450699207210749605372904076791914773638616054584410980071416354200146362113625060074419946859343503827866167338991764776052046891058731976351304778922355075128477426828768648997820910554321138068153646238906584330539856326104542060012655281736992367210097501430200273969670926748252010047585751567858059863464058375180340004127559296202737170542163836794588792023294760448248740283949631258353750037332106598121306137141953865183322051879081271206727508410924823536688344325672086046424172703981703037251308000094301586048036591660596533729104132337382823780007794811463931026433353933196588665045533212755598019955812213441160386628584387259030272400279804804089973406314710029089602355113845476776014771996423139267816844665829778672434746436279470627882326125447913224674581073557052947282258910266858825170738674626481434868335570523689260219723757259096593119624507682303442375820614551618012585326560021778324327307321204016927558827993244924558789422324668716540883634779663931977153149982830154060133158202288427834662934004767536962113490779793942567592328880678390464925500929337808646446598611653865500560766975046981512175719410373990326129663946728318451358050105269327657078726341587449737843125319035765223833911873532713381611892685994500169184445524089917607737386908959014412976132043544853315490321985379948562006457777820207530084677019487942132372703948142290276791631727466500366813374350284082540974124336488909172595406613309431791813680993418268046157798255200963689831860635428499692485593902340637952247623574932601001383222631361267577143290027115257197587397792825548243236354130132811127905663062392175171093553080835205238094801965853323168353653331176018436796360260770180843410720655673824213312897840732691783404707621633092609008120504379991200027368400085341174045539726409827518467536417177151538281937477586953626670328215037156863584422010731786915650608381685317602958985820042378073431042104828586428852726525862219146126029480290423126878188139654897723197169432873859055643648337242581848649432745737257272132721522679674804161315972352102155840197040563059515258131573631194515820770293236668555720816513211297653541953293304673669466120569909604197039770591821422456838285587258886028211021503488146135770559558604335047145899652196487811535096147560150991796991929908199611999440537391499469438685276528556779014255801789811607340491050484036056915256362698268502337095808638386620679651083106645746544033497358509830601378893538741010628006708736421825533485145682129390354041062589955942441835901918344643786836061601931493466606847634664075447659737151827551937198675025823873498217579448153005599906288739569536174765937582975244514411941471159896843070040185503056560147876826394101152584369046414325696444275410122364274401771677989513326268081464974353738099308962097722393525835082229865983477417701509967780281719938315474323752525879562992095526521501940271111228558864376213093044516988654247302480251738351089810910905562167476655699250486274281168884321687395906352617893494937281482464435690097523120286779970632010220516118310041311800582603252805566266471322249757150804144074762404015692138342981140434445726488276879427432333185459686247897288018886170254177425443316759887369011118999474895982243701033991498459855617688791573216031378127523580758587970282123802594229147356758045703401508395667896034098034063316971109486107424774879243397322152891116868112934293976040421446747761892417301041305991924878198273571172580747354154134428970582432454697161023259040897172150556768027769358592676599034975518833880733155485280708272076976719626378061156232431129478361487711042881069021798684938099349183557830270982580744369023475989584547332892495425231787207216488337595649192936252771399199795517196849503868503095749762699996310872072526713455399271377244834605721964624718925925461502974468424649891568651156154080149065314342613222917071915389040461158681510809303762107476661193624622358183428597609324225666997490081593996065208665720684592139961030414780020126862107119567363584765653319071362646362607982123126862704500412448477510805897503490034664702978495297833022574657141752704792244636632853140663611058266041767523248997605546278424866735358134357692617366749710848894460011436933396118974546350165203726083944922107667102369595255840572943221709125633828451311323730846932710993302519740551900864759651142289688783726933113682626695747468897916608799440671783866214351478601334913306928666411760334133769471131275106316108505975606770298543062697449716219937861292600136265270469636786338767115756648190894568954240326342333851324040460202354519661966211312229007574736850968207921644220150642229790943440247611517839588150781599577996653610586797335839607406265828322673695195052793120309155984455379507353569721309435373725443612198805881647866870085079781659546628268380909262926725406474261573920890148862304053862283620097054945272867799081561810602323337618574734689446990809471226228875511166211519864137661760300457612279387078991687954762650369387907573882281724966185615603402804379439500615624466150398460024252070576783869271689102552290499143228660903337377309691111473298945671339507923377606326244207280283607411479594101043518427030878920399566778874662076467272531006755890807389372590028870109804370912968110700524197807538843944507324200136370185108404395983907124862004030892316938635529872076850930205781976059951657532423971395672959867387504708539994822905139881203346992710062454845536606946808022757734136746009637220353634505290422001509548096636078606230721790945086059341311072729131982529567542346592202344101446577676613397637150127057270411809004163114386755708245356568938160233008725178004434671734249247063715663240288700911175619364135466793309860668300307127776053545529687134057436086101420975099558173582787833099844247279619377893499010890633236166854778771204620543653033417766718233549764213258696327846311976967005386687506568914647609803190246233225859636071741806369621191801047540270193751115813851372433358560471357752302756434984415512410675798143114917853354977610594225046604829797729966875710203688565889924681150325043503361944277222044856898066286384184781428180811428975994662554142913753714075716818389579605629823292527660894921654411655173396343138596577995187775013250171434591746651631701712028445458757673677591535536840689315574844208596343699121506140866805052183331261627176890731299606297621817377354767584631250642621447873778127369954451142343721757301763914764421319249862060926126043874264152480555663200323657642170431776486939927526607929871132830322905329431780566433831124491869274750283978969796705645861631989601868952569612217627195971475053604562557329369998541040768285485826627170795751430265891437338176577571289179591956706210617985006366464295887003852378043101518928682086733482979608163795433705565257454782582034198553712926272607122127334049126080862251480361022593240926315352434075422290110859420424871917978363322189724862039063456812498870586267103089945301667521358929735006431384538681360431040850998944635001856938014515979093587605736475326010953824826039024473251075632758210807209366146466456192781364482137758463407968221499162367123221988550378650405662543677215848955491821056756131732347768540456109939839003231339343741176336307326043195611787046897213699536715174624605276314983183803204749136554997258017835772931630343795623173521016395568769265383940985189509425530608081560649952786060338062301472765033328843102253503480640063389143534777384790894216344376895118235541572472471030010569480573410458350250451546981400929245491586457487063388379446219810438090503550871213694660265210272718896489888312810657203133320331198198767783928039265493584845947659314922938810293658468155141017157467893003934096564862096368765058729712523059641609302725491343904657966264665656667089777660765772090485158481722329852773376689630958490476275820570244156103766484104635236740815307571524800700296194467880046693928844415085354661028968956797378157251107152460072722245279658592135067121094421007838000087950565059884903888740320971278036926655360931089624238718096020741395761675852063482075146736612709810940461701399694786839300810820003295628986889494752884098083734085601500224685501008416177252175276809946561770383790299482755282147386582987202583016227578691998550506745123214895321106705729441472222352981711819349823658055416673054316844048513985750671288407554294495288320332934975522143783531870710932261810686228305536613963277714605233603576990329804595948044640672565344095799635701845085842099404348112644692277857281710368865957749433301812809440298913160062144187107574826039440808761640161191737322555131009220000009696145286600947908780682083052388304950255498438439774394911785292228558975022688857903501246326943851493596965990930538083975441521778308243883683454098535154594286956006391253232430936014987000148508888715648771402632608840964383174764803487826003442547822317339244407166002535629741143666268674084183441686357130769044732098011496923857002187194426587683260654706200575848843626280379086226568378761558382459826634781952686828948854177604661614115659467692634423768682244772584159312225865162651297491207339638456067682504633257359886741270655101724130433259822119042091942985140690964304700769167958376746603316602888848412996467802837530179797867891408636096854071171462401483107848834220883283564105744410824951638715324411237291800174202261220498065366487776084861711526449017224359599989093673122538567034645169536016026672906435426411715674749252475897989945115913357662670626617570939528588152084912045418581774670836683396433900654199755700108130047704041631378424323660131686657935389405802062203192611364435577208954118394062519238390696381494345899694770492608905620394058953687781639954002003623157517970618113144897870392649092468805625417757395124659179216468496621390329234694069638784305175021248381614673518848641917422111642359863153040023265225821464337505538937464420108674793717964896800543557886952737633452013431428551590332228720854523602674960081681237605101835278597074646123840075613856539983124670526025111442953669998600546554372242753723564910452833353417009122490205305922376243779523691568986403502389708679067708044468860014263183455086286743219241947586607189497680001029028154776752347283178924499222438178058681899656910799545081887826933586728122085768720159810373412139889896015988273507215892288844199726509706044786080551067014022716493902818334120951653465490562842872506181531763972638297314351258832345628138341758853772995506253368781789545653571064686229670098743380173636310054125681256700706101730051653761190999860060241643440337636004730527505292288021542197200512926366857328886745691896578579501609959473939305751475486261794818481058366410190202221537896834157287374624079668840240834961821903882345934801623638676368557807115920729863605015284642039571922290551408486607233522563135465376283183757266035478758600520824170921901150719857215872483304719506161094359594134761233004436996229643394103127603806566482721855824369969613466790474948177456091061611820347737798845826588461421584818903707705245745412094119460874259773952317924724132123458206215816505432173723575149787964815227643849157676908967716293537788334548361776881947779220403581518662110631758128567218179145366062659921441852795092760674317024032505431945093346757859912195096137295285336774738784080918524171793525083270614160138567990950961160986221221490387372845739854843464836462764912038907440853910300673701212277894253018000151044751682516970134325857545778771286614544871868654632055916383685491313157693279799100976180343224396554016531143025656961395852632075750894633436335872996494564319359503141210107942049856864710050548727913703745722914111638997840276642140190159953787208821397362238105047417636269279440331755704697963749359248186131270809692163036702612770169604290074804140736048508865125175028575444431001100152782009353727900356243600488787922785062076278779471239112912681856383020135401501103080264278191671709911647089261139560576113177973582483969004898328047005704991181098415852388237357149094158961657318804870810147935220288004965684677664239868756689728093980585705173462823464490169393439461811666929869300515486499290704906394903487885382980684823795075808835356586578644957749647837028682764272352238345991606183259821888434810052011668697245874699578444210910573169739109845233576266639576360446156255950506845218775764955817700363272730029499179596814722811047084600681746562557980782661503164733660855630901728781733657264072953352553533549468995926541964343609853211544736673848238367851661168010499510764917804976239960652039543782125964846265484241091231206862127216650170953439603378955375043842218681021218312640597619580150253359687960966155899661348537183143871328411594972944701219011740012644813902127876895151454019103536168067538956753278081993528548849729388997708765545612683249117779163130551169857766496061019837422453339805675062139785133628969888758451814333837588378144109065486492648550792609438259384757675637010153292269327565329544532367997396461261052751662555004094292593292575213306710089416397095991866650450350768276370128483079444605668481872779230784150585754300863159459926251458910697062750562034785374042969368436020177821143048834808355579004779007577281641169900024308398921321200542692419603466452081758510864345166720650772195352383961529168518966008664994144729882309412925266260698137544337308504509837280502580998852871813572300720048156316687826309973885516683783306652433188356183576937372705380562137060460343177200275602552850939777774370130077223130300906876684110625245440260496482057588321743943910635641386793786216902493688088758533182323373890176136853514430687772182975154107915763925187029383879143377670318697622166666930564300777202987564444537489117386555119562315805302161157351396616772819447540977035454092025974645794955291697033572977142277428048006612789859351991856898890182158552681456607550792265694400973691196529065186413540036048707768625469769357646403661378707762355314006498772423703734975518490416542844671485527422207833293616151215387780932061623628662689495886931172838463277097673081715137325358072762615674349145480908253131298222430370019363384949163544933620156409236231122958922142719274844717943522916242561733768339017789167264639646801999128903324891362545055516961020271409512391292541568085227456846224026701026119803726611063865567907425161314857984109989273069795617151283592327376252661500005884392128545868790330975715693706146612701037523012220445467339177143537322556630696199388499023768243974226619215797059658655464115319459072484259305669604978876470158269432078115674824394817301560039619596409326918376705855857576965188796462881812209693305738275116386530232751551528046615314491109526473504771478457039382244234461799054443490368432357705710645660208860854288780014169328062036054825294075822485379249981834803043421073280362330186214220926567960888803081006632963668165040406136126667932081820395407152612849140685606141485856746083151004870065270484055326338241723345083268897749794902247285954526371097103598117878191879158866175859485086959017377128550077738373164948335626243436591282427106130618763945798190543990095767904473878334814819053061851619007585500638522716366296769801353864846342987661561877223085610870222780598918054619372439473508765021007952067532564096216801784818128262643716053191545876427280907918344643563094012495883032241758239856524441203862243794490889365492508181231800796007578824406496711514909636412145707047130473450775480942271676153772917751039387569198173254132564747638922808048818570910684089329189779340824463535187218923297247957185932111518558343320754080777658338997425663852262648009818375145740655510280984539922793112199531729041664000913495368619754522514983243978867651388549768585541639997507900960093696103729277010457426052786582797102985552394885428351357637962848280801539146058975613255031948149886266001987487982395205493638401985657035234764024649535329758630739721638651852610974668605978161920570031355503096730793900588843545306708794155738897632787335827009899660427305832583884694397867265108566383601167175803186479274665123757514945812461090467289722155575389114804954925273227022380819702676014252040275168285777152319941404811562784312045162556245367639542085720500283008380025117797284476758559570095849712177695132692102434971734860180093497628306359527482039228430316217769880029605113829769506575477849053839669102043244596343421823900242866950844687738905839097662008583605313482085135403758397841657710404387145052211844010083905691712391684587432438404615387876552726909026026571740463207273350118270692130881963791279870203776215409414436228477116854697080280307698752484675944221002522237738137315239720797224496019786515993095444772181155635731147066668160453415844467912631742401624224101085314343635477865797697987359376521583347770867800197434712562842714941136455895166363136021926147019391433582566896806056074299598550827001600457424777661503774062255738429831622572156444453438695015438228649776651423562777269802784217423950889306179684925106421045226149969407183265078281530422214039418847460287915762358650381147554102271742803394421230535747545027507064738305953651835149046954241022633815809353170313295806997148551353187443136117725359706436735180930194666660984904454844278847367904627781247124103765760969568267267043071040054886387873158264916479295255626794536907780910029254435067510536639308636206580328384752073446321349319355785596798884137992409495590371977311987686326933811327095681269765019707777520592882726537891656562185705079602315388638954567484769612781331645436247211025659541488570245208202379932511158341449456042740768358174632418201836745008733079235393997646560741119780944655372360626867148616445068100514782854730609977108535764151577013893661852275650293283306779794825906426169982387122699473935284186717145307783310169858713134392985589691898882156814960562306061866580835260719825569489520350147485944698864098273001019380618166018661699225169908565844427643817094767339342237132252495145169018700207947782358368428451792352063669371156732236483340336658013289096208569215269547687317714393980524632492567778796716651810498570700199874041664638985486793278076107591319102058977551212453063041705750702213576058399265744915981691778736550178604468773225299593456875980246385279532829609975229900240203619348463544760630414302634323307989559726085384864089889219846120994945750814555514431523260204567198547045343586631232932662673400995076662567955048517303065078382017805366916147221710526664442662120134281817307171135925942789702040557338203237114596964409898315100735606086897813367770377536370905760590434434353573659933334436161982602958605047606331572008780777385314748895591628213958494514845732836246157484327649220231375532495062591161837323681561599537507849139587466372842682556170439721124021365460068923645045815823630604520831073825092315380748678461896146603842566679448291940846584591591232692756425085978814303096732469553248307111414391193982790404220263344363034971174493939331532640465018400353621957755037120769105084389898633158850481363301271127269860544529389248747692187287727845471710653295600665113168753359620251855051560841067956635369162762979523558802468093916917906297410223923143106543996361070207805354720854820171976176449554296400904511155034596022718894590843047120158452747663917061916314149142630904648785215997750316960678634883967983084095932218358039177300466204742729551534326526363234066646612339258572429584393890538317719477963902988432637619234935351272302730538649296161921891944810487496465882813468419718701827456046694076779416832624298248595415643328206403690326220379715131939258629370613906797013739433513823540057032777687746384363157413223895536586961125147904503999425464074614902493679721057559818966222432982906096495411132019164477568347004177137164164082207103105943222211620720559666659573811174707177396920615040020955414434207468084576637829962400331378149516618191412968001387598267909037210952125924466799868809831509271568380651202308530158844538460638733523016662819029482441190542190619140095039242884243741449581634203228440235001193206295246998330260012746652331455706620207001366946292782532424053930706359482429011710026177694796265649048271516844986362185839407122379227286201164389052372994591423578384309432198701182933074795293786523193268142519226996016913752219318135374170917755841335359669578040080013880580534626612992318039232067091719878507388316234358159011819352765625480814405128171335371256216394388849349167897408872465944147233256951306560034509133450282243498299442382087610809052965671260862822356295287598386115977152519557184030529344640326835152509865739205068846383479045031040346936465184743282408559305755852366101071792512600900447373329579372580779101997174911752800685439870934544819138966369646909762317076808955389248932788424976106471885451665188297767776992435240320322117849961871255918036311437190045259589148608176963352413187708483148446248927897702643952176729509563635116802920456557278946900850024845868780074856251003604347001815881255491865989011576585785967767490113615434387330180994717286758688581321899056769347663800324876021297308308155467354644515438219476538190768458090574405278548069485554009186309885473948185100497329245270858993700848442303924751898804705343087010743379746770788982596911150227686858275707220545360151375956024505604074077331785946030781304389704625022181312523340584507016597441255069689597060736948599658515026599094790472469380387227920579525987932101600773485376997259178798232480993971507946717273492815067660837030513377517750338754356100539477237621623653882198808857127730487351783522524318990764031882912342660457326542721676767648328042587825999820630109602601762732153590416979805237203905059649987338882418855633331617313487076576012280870134067372970908393570212040206503828945178083728433723423456907084947030971866771309820361834074351138217666001598243521533569909584168135238626610941655390922144785580718177432949758543353369352259410075271009280525214572112360875490751803586976493071875356336956618204816453887110536727969089153344801063643208047436779941829538191194198857308981531738312397154832898502740334200846121413496373312197098831820584782761358157196098632181828334380041832601841939703817029928115520822363440961339831299339307487030172923603129578159361910244203582725531814675935166557943840177533970516863713204992127239738326683428001247403061748081892587649226044133463637384150315218168528624202327404570490761492512001574831483974575961071727935229086757842770665246780360239335575537414166628478154597948274944150287538943265436484145207123677052330702174823545306920125072172029658785877197610843430299969278189024707203895382855792174324293153120927763510738147871331529338308745812846694451535101137773177195321168587736142319401096669987073493805991931808410206583220838872874293943617573130696106922321001876549293284981169196602390459531634953626468856198801841884050447916249690116558717572055489685921233241211839715513382378819747628423470419126269823454268480487107595188259639306213440182876972873687701014327368563792197542749291946618112196419209548673525834472571827342263106553277899533897680656614112178051928844118657109860728991797810983413280067597684585885374747586533807906242227191723248193628854142820764453730973403797629316373519850830840421986227025961296035552542596559571941129225842845487878489855394863032636723011136045144918624430347168377941230923037457387442371737438019362000780902228718362261081199053475416225721012722979272640160527275406650748049544386364723096274118046771011042976927062232481828307303016265082009098368350080828277305369853871029651568210303989313441233064954788651417634898683150435707486523643599048133913378680537603695606712952939909064390170012931686673573583644248703473343127152616138096414391354760566116357140502047035301191511935844841602670383167487520453646292038027273557654732427203896877705193118843920911201715985497247710788621544760958657630021247148085728090522556575732406197777219482851165906177416112785361266440001264194811395036285562118288071162648608821940574827168435257372517163273490986125619835052044190448987275501972930770851008310883553867784743786760466074467491418243168698485952099879445293944924569834663071191176545052961452126020850423330536832606105714683061369668413880513569191219280747916892804971306953044792245670319820875934729759888068959171310379437495920687402652725917981052093515756727987302863423587732519055053403806345414825399699501832584729238947408145943548507565939458750571446581253029252197078778852071225331774777429549096015070097626640479214651135337923918777441016442533122136847726720822928688324508231430720371462700591151531949389314639067856624379422835371673680894091691167254290180803339352485774729993043678061927803157446100240771392548635409581451673938796887980485742970994264316849681710281056095142480442874927066265520732666826856804808737614151356590326180987456242983838114596802565007058000101612877897887653236407716789957768840564729700161993835461945717768732126486389719073104112946966353426788430793910238957377434132617013776570823267074745729514750152617257307171806254066286632187511420872726717142410368814918796480825785619917786709151261065169990471559261898612731715508007865131746004618071493156725937554859151310332130766346419685140416297890942259106981400971390097766139336051048584606293079772409476851879233307669154380189960508155601184994362663041239717209711502023131885499335323038080394056337682505579897527930244951857340987662079021888388729743280984654789491502229931045508157612166164720048886001755964290214778655926549158845004033952084137742121441980079147002754740069196609157966680881169091184249851527042337786011582759152410797484648924864572178204091879215906608569871521061052268874572816519536833100962320649077817718343793561461102501727456338576222326478924508402083191422043822221143815452876081566688955265154517740129643753483263652277956504010712899087294394417459715007657027421651668271580928703776387901498350015993845541303254004370524873284724045624555955413094863135565089021508562743812827569940223881500335024234671914296239929095595896297305497962595470927410662258159199197755406282417981949702840155697019605640814902445685612555633585183546461336411734451724083786338434613317737620773617186330996666803999838147222766338286320108422800277400015888247098192927386217817084906592837816053116734166147355988438966781247085297624850569805316545555293028085426119232035386918318689316284282778389738766908746076715596311744799164438625114981751186214683188240262322214169372867851502828440912041633645079037131768168910541506470711542567330252572460855417643915660288237541938108343397210024781384417263624064642412108579102369220362753723737041470711378624063742951875383669986796992401397156607350686334698314064551619251624985586215543564004347498956426909483777787455656530291402196701054938916005762140210397709186842385198639941495384799819910237520889753183765224555367135988868051464854461622350387101042362090478025426409310775277268190381141051708805289928696248722290669610438284688002360939844345145662763391384126271212218589998653216560721951302563610439043154576570593289522188428878139980137924430404470526366352008898254283448124568487796248070153109223725699305011478470757447484251145548301684417485249436250233991201130273916609442530527651346942110583463786381219879255914650106052787138988782376894451303394265101205778225664478055240890489033259117478606518833843531388084989333097676237553941391655809327520732477377026894829386780015044069824263439983842141382945748202077546729388284960311938792324115277053454534571751000202164435541054877105646667197397083148494622885665996404766357828101929667819025909645194494943693825742979363287650781354847587732323942752251804318258888391153454172903943466089189374309797348122034433749412070175740179036681239281972152910453403587847457122611899349561181040848634301342883989066986408357236234440987845469054382494885238837824121776867751115319677228667237966541635310867826429925718649801433437440178958224499924420013869780462164459276113173018482510354958454176948097464627974687686416070162156741411281677863378132181942750607839679393686269447452793152961625757025506961780573630531984574644859793721435940714631633230056382312049156883206173482435585375419934335862726895422909252658893256276841223626113542814584403468294197956988217327922102057654003578701755684680510000406877538384905880382018328385202541608516562906154963524787700444422547965505672147095849358788062710940634822336477715103249180314704441667946094404240254220607204024625921740031385870933077186424185392895213362974978632242764585827432796373230785360778062875045239298537788846322069349530936700504536155749566492487157481343654559786152153416937520607466741156932237965815860368276240275522782641178365530467780333212284035965125218762864855555415977136931015538000946343086514188496522480784818228662628302520327348416950181062002938294938718170538068326486094593758584964125258893268604966351813957999379742733742833333223203679967563206766522378063420584099580776695483395710574834340980682200446816555620421614598998776108817585062559721552372651544393288926487827588232130688040279912073322418798391056027776842997483268243164195722884694266678607080706213955808376551978318112676533493795261642460365399835004662911372524036643951206126139093295144146387125281173332892477296279382799196330430522360780312540008698782486799887747483547128368650208065578924801850864524552153259555135337725354569321326554479106222295379853318959391506612678872707305621037408675473187690041876724347654532007828524548008072662950920848299667286532049441318715095197395903578802771556911187472588147738597611522291623863869385855264928076042777821222519979673393822041778801597530655206749464125139895770292145981154131318740172596480353480078464666180932953936621280799502336839265887005345448816312684461039665064467441196950005543920405176257104790087236967743525301522941894819254039295177945091062998398457069094020014159148887128765054583444915318089065855239524891816723559651355350201039931482102286504356873884101148287402209537969985687377290046226204202836542321505475129599944489132337765361079685746495701622490097997761608606405023227161480899422500401541669205075107416597415231548146010342201959358910136613248900585048978544585861434561695250786199093070942379049832734993110743363897078466613259991539189807787056551996619124724152315397994594248225636970344718851798905909153717642873417455060463808913779306052717537800051053182287724795776929762756902927421465563788752971239224000371642937200258899342710069639948117144001705926007379472400880527783527853448520621910316815740066911773176656386558582322679845510065871352546017174712952610558763865767714701600478561872184503892047096444704575733132339651083564126855303380530220283491401117547084352288427620639911595602527445573480719546868353137891192283735014742825193674568258767479743718278955268767827747911273486676932317144904326789570393148124047987431538462509605879826329757462550823295442595617566477928711457644308099052115085143224542271721081858729659580418549408125262083829206203205594563454110456093341216152257572889446622449377748114876453732452942692175062897716912756169733969210460858902262375136539072696307915291189880865266314838783964735651503403588770426805564286776948278128253736057644679786561053189841754159590466548932126727919903566494970930747072474534614550864577765351792345920395910644897833540141842993687225899918704280048700615620033336186155591844126629954681924746707184266213084221587278259703211774082417927340070117619982147053026507476725533734835406697302352144861470845301828911465602860447333982641575939905334679779203268613057602531305277105507587725323515910908814264005533114645240194643462795342312462004952431941021413937185763309111368068986694180893758891623508918517802786588815162415343443238350298019582011579209301987592660913014283320032138078690981043582716218754069050566887894660040453988144095297081870609741922851259577400549995935956752323051645996703844109542742098022803148882234951239170008322367182601878880482687719657416225577964637452383749511355438067766094380552568506348559986775525512957569183025040543543717278896018096904079662734244385388792718465781921022537410525037920494037925771282610250165537016280595831623946571223687244682559371996524343730073895535494552888316509136180011482789195532694919913132938308061801942698894484814747335883790526274215683735193674191096164732051666741493147524275215543523671653026534372826299984845752733941436184094304251250425400337584022425441358475037774645179006054038226830189689750859977392004001367264043295239698703745148799993213223008241770948118724482095295834798576149373849721089237555938472981604192393202972343828260164143542778825532204423065704168929397908311409313822766680479480294343995111012705777696409672088528560297550721353837610507802629819268729644892517982900687424460185332244538274553124303688420308295601559839777905847472643076569555136498087910230432730585027905329712419476599763552167676589084034906817722132216448374378983614001796241768274918446044733176569476959489653139031605317858805863249840653807315150565653986323303312424889116803703683138465221334554539725219917160003356000346872964246934368019963042356506003519255616442683017035318721120114800453542644196982550742261311926932915914055518109362449943649576949950414742098851860131527198507221088105703182415160077011347631630683182434040259506150944776405074539518413059093736293146349997281775225449168021852503304692480043063349794543958364034947832392557679062798908193156731700325245631739482566960024099022051704729571605289962035678152584261178013700857760875785329416504561742120509725482584296975308305097441659953937069440633723666514698729643533847547795669502348903210115953604967772417444215252239697940957380139589742763506618171542164514770920365856120670854898362254988557003226117480514554294629231541929913105010721778127779539319682481748671646442923296223744069403288210739668388099773477891229733603288949742818309030496023844005262168697471288318985273581853075166235461479910579084230357836814910818999467867873541048628045207825320611158797663315443384097125752940809317286589448521754944154177252217075741624147747232342138274031649456955964388101350449781671473274600040869321596539425197626207400401158527518140383060896510442512606806033652092347987609521319850336439624615964061569456402025921939167451056374390393008143290638834783351905541736437250748386331848209469760531976848333807248263547364012754240454330394212662219895847057510464345381381382816453693111552875240563509849729454051681692438860535479618741957302327345068595511295521405936791501681900621848173899920589579683372500089074700531617294626084833307524456290435316572853054615401032228023133299073688594679122829408613105019474141884851390818008833139847155373131835957068464914284897701843770400552348861728706142350914222254117596181777369989240662880595414751617665850511731079904936498165210010479917294100331131443257044435722309212710528723507821086920351544107761802358645392487723123698590003343699552368650207059009160492264757314152797571436717553901811690146470171752617254513510360534500046455072726002992499699656442313796194854593245826951549445698018500453160478204764504178440452213857083824420870970984228744712560213449510607621454889312446759602616748434049496690880034915534307285140552587401279781872638154808718317989644128349289439242215587201645142340025454974308814933106200018757234953340375166776491978792557876281201542334144477280628842237092657899119264974375714512990303103769475807729361029464209884473619503716740475108571087108575006128415827483366686822960855714371282769003138550836803008371400445045516854068870318530201880482261863365350858074345332596968576197875731921445925183679274520492855111754577144543355131445968359299512648934001326245499435611614219380680639075893620068064612475131601756952153294937231000417824163732718450350226314007873735460833156631771837619236707808840008586207833099583738505687155697033044505239553328016238177286500373075538023625406359917166170984361767549457618382198447019632014106121643496448903587996181849976294209438794931198223967252954642771005878825861243884312141168378757791172184810614899436083945110553647141104033042158698675045455558432583738027957693891198964482024278370641363382336777914135069282919575715194550947770974391677952345186682039163345163284992069698321203195476314110406292151529199091992256594915558026287811904096311540383762085958121184886369194227805368359469159563296615153708477915993134903126051983311675384409633601726155696734909511517212399290430841827301002271862735059495596936466970539842982696724226346778316817606927623095515798622492683709469826144007823497024718744396093289997691119342092332840987751952786799527941892856191103873395688506361303331715590604818878967803344432865204856738652000584646273363738025926271297702497142142732731379419016444305464619659469008267589823735395852280755094179003405497825481195042994912684912158732236536080362555195763663689447991958188783456808292549478996300532160402542134411202002143616442547337654580062067062584343388914825733139030367424138452501182009880181935861581252236116574734960880192827349842107040284502729653980841594182453604338161875413511513674214559597396434485272453783644891374949925351743941501447338988614327563040859416585805407170130576286495653036693497174645574849512795577878337354473369546528617721574921854814745896269701032210801812557616271118142485381569562986734490869223390460470338810894390266214967654975200827553396705460978767861179361398155655315721250388781508408760559090067205289571827176030800979894884260768886568152788206367542140327324935241854656536713375425533644148445868477468293523901009572728586952420694144801192342009363374319671959435151122758159872089083230679349320746989336705194161419321619960756306081661076342390136379581461834349709516261012431548098807970692973841770631077080368957967395817143852171808315092492678017364361369335178687333378352339497847142057831804340259903773155502289873570304541219511733548686383471087346926490069550869552159257887447052043622926275523411866066633609957270756886146988418514723079083132926720680907416519456897152803163891353266177120989217952244326127560595979768190833194549093624567649232859417589320881443905299625199725378959689503842005791030832790958684303085630890524111955611956883247992576706911315960016339572018708956286144911385522820770754688289207648913939262727966131081140135090532107786409574622409876004961466632819009071712803112169009785409797130396677268462294684375940039586442590648618615783388929380560883217496546454654870398413004341796943722608769909659127162780243575008008519319766449884057012100598869473305405578644489543512614066422880649172706932806881181002430052772733756618082386573407237977949378177264346454731640434001230173692726824105623416638064445416041810847497699291983368239147276135612372858169533653498485470955671242128697821314566863654743183058188702784205260545148259869151296241173233996072248380198796660103084945902061879702941715007597127194392572127139469092572958463160741812528302250748689188621335739721392398900115807114165708440582393928963778774489665765214534703098976988539545576510826017016752299615409833865886968349404684067696500669651910101097151729797818906686220846908191261473992069864246538298221496455287116018407458179918008067061871874442213121580333973811836305041376465263867455453721201732339126811235352384741047044645061238207563283147434651414444720258299153831322578813743711872021970229839808134046444606166399488878348317743311611988027398409768013704418768638162210018210584082488190865358174948973313205270499341722234641890926648019509021642088647049024432136486204023802683756684349960431436198436955082200293831224514339154748051837241286049143758911788668045461629302598069931191910136751608612591243274312019004340805920199783457402228151510391615204132963784102761724412293764107493797228547723808719739126286157245672785341347876448579591013440017817667243214497574095626338426076368388082619135801739610326992586298648720234797255414478890234374850124364475337848031989024729775749614395523693652143514118141860571845035118314017814670609102393019783562357033685751635016544621484011925706488507565870205785446604778160821487537410160867305166338702588529687657685688468811382404007567481645166238125080355293539226736541018347240825623634357495064508723187857313104031727307959740097300162546730642968261522204630410197902485637191732780955720907251998287700643953360952181617821686612898532183230821435723949488283035560886340960719600432327340699444951282034330307121982072882990902352424731339944877358574831756831893608591177269121547738944934947493846593366216607823726686913008798357665291275876219693867641226403995441496500020208510113425362054289942373857129902954195504018677584607164918183116966871683257146441772232504874227424409587759510545691830515783272195742683039757932976641122323951610494308607786577276648253651015637533993732982676233982609164384699373447022217355162122968952816792025345981816367408549411009642090440314880220645809069000438043636654863654240656141461326108571188744586194601631958310667731838957936020672780992026753832360736870316126107788309967533366537905839860294818437771165620369681301812890403324395794050684544502243323844203577387550752025422975203051256485657615025052430997027774672630788730431480185946843170674801465985548957784857261372711328967433939297226338458191231330530757316342559892039766751936959232410581730187035410935329669662203199428110475675845302412239048261150946654062673726281799152164131054240028501598314232356512272801465843973069931514010955101637295027979809841022295714532428902942125562003130863311078915723305460085365180931580095140757541398849633578348597795433117774774090823122026177592026846733275548615062874213486371700939915840479956409136747978248628672647777183262479667646803815719950432187970275643896913854905346742453509448775049934670771251657241281029202551261302763352773654992567567127406951631734049058654398969801970495717923538073799707793113203403489914392152978631297852183422851147656095530632747672997432754641335577512887568784050067903218888149507638003676190741361668562527459728272399016543122358000878763775894780776151808329762430543121996005768153326017287780376700705723644496526404874007556903356000491348729458604378501972684790010130517855952144287607396216112853537935707524470604528004491537377080772529628885448814423134750349377316288325992631648736726813201739972584920897351450777091732248682418966073992695087902025274087320901115802214267932127469361786156954111694672268762579370621983469257745499968593297432208332890399853316171433952731226242105573673183579397938404827195725535963032238006965690687769400692190984190009292947747708922212518835143945658989732600385801049522262608756758609196742512549863783933134675060266812183182735850409153220097006582073283275787555120567065011360789732717720474471228449028699034351255364091844075639018639488024729745589356244013705625215496760351095847498769123481494148858132477847684772897004570005364264879459417818879668676958113432900881299342589827993600787673167945228408787055656014844092355799603220568333845178238873696718641894815178203915111348351573875231985414394946842744418565834070142771349220752753599597778125037095057095257696005105984533352190242841902291930411875864894601363567520255210010368194989438848078566104878758512170791200699226169796971213271937423762482786297606440032842518676970473321559233682263176596698913153781268990930987938052408828398987012184203557821627300078708129668210751954511885437522221662593688128478227462963555728470103351886768689736154579231469227128496114361268831671622320402378450296499391321223077837678489642947019388495102242237027994608262136719155017355623866856934130903812989640448854358333371419399700470654196184348832976501580276800252360874702418333933811852037186400786523271432790361423575814092534077867156066204420387136021556742838452709089620998813101052344156036865054554289624685969291971998601582262719545714701658588905476730599324627568541687391536616517388770411419472772113113063159758163337644448744685635662083205306941605354249484275703295186925001183363599448167039895197486798191813490297847781534507373302375095400934304597001846134331196454294609222261681711210374660503288376434737520814256036485168060528730846113239753096046699025773916461715700791725617351302996811845928652074393585763456027331983472814185983564984357790428825456133131847460940978137954818682292759197327941761467011993715542027698049559998674012982050435726258279905695379903131666385758695314059274578856183007499565585426524156971667764410976747832296888402195685617658571624547228218696128352073097036552821961941847111144595694569865638147369354784063971643479188704593261002611604378746457066662306712107550144072766982473809824367821202589539722929428668282187280308141002351772233434036970934327418125496234626910871642972839628615029808941939506552168031391747333380778454133156034071054132317133357323107688686875995047648354511379931518637077030977217948669635037583154545761664882228300836227851395887954657041038417074421918894908641136316073705069242581202786560729292530458307742715186512042196026299676627800120232174295649631634923456723349128327372524903651051558509350010972608208999457656778169223344311604487009057037803943556799993549434862694921641475776201439799813542604338244922958922720111288124099566224044873987209183894850959780483675911919719855286661887944818772988585729542084698860357306684593333877398362219743797081918503732533169192157243493111073317059653314961914651156006286342375393830831052896732008725148512990238351167323038784958047248998835503351623746172764089527287952664028489739183021918070404635463937058978137227598606471874394138774111292993481223057739796429448673262359179828645590802450220304811925376997590112859126451651581661491534436985987310371454911866647226921401094118568438389281803610739103266489130265133090021872692633270204027275487626374346209595290012436000149080631187858142379177923985102429744058090372746301298362277468895670954753004470070985516096093078626056782964444983919074721241658246154930534675310128817576058447717983704015595504670962454153691326895312403119338206462113350831515975182169900542588650850724529867876140645085303256624010728935557768526837236466601558814484959745806063133161108620733121050260063699119385744533499709131393427705902606785460423984229082798636140701860214004685609483219865140430784057524173807605187318205414190348563936048304620996478323582226356884245545737571959788471998107839236017125245506093914800588243077728082926644722992097953438836932409690348607799840565016001034825850955259083697905971694116910181356332143650952584048304408141171002370045478936232553641616757088100774738057939329918744004926605371310661077562152401055770656802760034787165476671558311157843200649153722136197815787425992891598927352677960203141159699550006506040054662276191022417579109329967579495934187111634712252548964760550304443112750470913322632456949363890084137393415386525711007430137798297689712831887656582244513884327976142369807364438817816641605562988173457966115395358020471001025485419609848920973189899426937105136143179024547296249813564911629380547567721529110277369204974546543180286913821257124856296958805706079436797591030391212785403882613448095912894889276518425112591486974010702518870189569164567312423829557905670215645849653592805243286250929060486152146503429427266896947693830961997094244905491100507770170310068545478533701703266726836349430482691612331218011398177470912284946206979168888610747680307703462782433127478035329699517209573872652290419020650689079164095177085479773833340446588711160348237241488512939690336576839428796413503401731834051158014029624766235737324921606355238689265078551289251071276224646544044924977563607391736511925649709829153806773754050424683448493982981406454167249505049642618620245980123448940203329877496449986881232589381967753246906620503262483482721231888904923894137849547521551485530139650082989696976328115481520745398641039150551817124111103537675732480552213096793305257158288268513252851603761114839079855928684850350086971866413698651768428761521517040176344577912466382627137690634019514967057164218825817417767838283493135978234201911520601958370296065235876964275827692266876298734989618139867750618699985121962609680424929983379596496993240989093264867006560123009997477657176059503797559606105361632637007372222327000090462102474431882709398190403368943189274276724303734664529806899383495415904290481484040458764283328118135584087226005031102924896991541778781711266048528323121375145157394970503544467834794133928683169668326664651613908864747897440272243057045965552791770779681620528935646506635973891080381861172470850050074958446446890488639622994855756723215943802574373817557306887833165585942924057655464987932592630019637554405198843637526816666675337388433420909336607249530994509917533276906134504432495864019238465230848638311579766176132766695147808481780318712927631280601647773609275926402096034520314777428722355251690927087723858306367674873363211849906880515630778042297827511164690692560700861144530572293196874584043132020503316613741937223815916270546894045663247771988031347812915413626333413827084752120657922656413703761280663120139158239804460116739827584012055916981905461871967222306919397510400910734371327942019507425188721644845125295669425025732967196846793466499943379906654623671683999072241431879799079145515212601862537882229802976106864228592523617051596287013124241882493924244535160934884947632111588200726759348825971905204309354048517869900152199893735952130134334018130842089395434552512431303430170669586635229583051570492730330257412635941299530201216197776673469911957656289060123670998856743536593249007797336027431588702050504554207795935481280833650416153616485113078967600963187871043969893495676651580267260886910274796204950301004951640508854326916626213488967303514888620718287840970192221737065440412131485546297410489632686616094133927612678092581795774802873348439668794651279080617851269112570915645706475513082888788164230160973064360032998051165264830407918979111049136943274642489862422869181725626622842693596519655700497309096950914090547085031248807979747084818354131071629013954590982282683892874309137787176924796686381652166280763925867335148999568983324114534958361175937321239596858112984499831183584676252739334412319091929332634571043383966483095616358435120513127761903065746401685561006855817496200774987567031876970687320790151306206788212173821188532866020114449783493197174838444297983839929333815926250879828328204877590858861371170713446238539789658142794595060741491296096133094074216923288266832882281494970958699191976687377408763630383251121188829291122561799219606783635941728188342129983187087556944780654174303609943526375273375469695538556204116403750102012200572747487662252998595536349475510995965571187766851962791944331056198284278622911112904034732807482051006777972183055747804623518416987605241532097903045884371915055614757630944725588469262355744998349447629194210616452313034082051477992935034695600965470028537646854729022975675255839758660171477484314996097747027360859965729070823447306749269342466320254162664922042263328488755476934872676537828011994212056331925825446461317702079968687758976471043752721329033590801005497962008723125360704104189773291855074506964677097415119164495447310684566686041105679970127270935222439055853344407300879734951347347080680799221783335136955628603923798336806542553506559056312224305758478946550048056197632106090594984297984169662824941381971092783249261442907084911261244931480307937368291793073986016671536925035696479182608121834877662047347284727029899967937167307448465770241775725297249556134221154657848466970334471532233918066045144639051489264616584383633080930486675956466623661288425869202886911739639838490293147757908846175568483515079193346996602318893061095903389191813298770023414121786305308368546859933624085925698922423851881742039878549874709028808755784979242062206657084295491263389592130570877224910711791909191214961014912068053348227929508533099202551625924286741833323296524133913937586047069558423281352149566020736134536986248501505712620953751943178249583311880765416909597658891288758914303432910408353091480590451801279807714840243162862137782248723124282147590267578938256651763696863594329207172838861702724906861626680043966295568796835343694484757464317193446763086973149609795795853157426333663937472425884052004302908174209856591666090777879167182659294056187364249486705561020362021089760983157944505298905633434575632910354653526477946368729211560731907068732273349528078473024804004458963539468934227722083175834216729270826876922246417863621854728654451884358083277171087368143176477402183948634805830300242869299649907614611792603081377252186220771857828609665346249694705818810466578303767176534898137217965859545978696187473538313418880966449981923493319991827038656235985876333585414893868561573879389820154246703775970012967598281708110585896062250159011850724300251791238080150999063304402854060955766102009392806865882916428015457750696192428419240034626200820306465531832902031898328473447933962284031087546750689576526647694531871309420952906371553349228307057302521453966020619610632125351934386822743009862481487743648958140563682597349000256018592433538606715804110144457864158804038653772279112249817498902062008903617581308153229689508349586342036779349779704487386995009106288101588556091305371861633339662558180246559824640186284821474278299429579680708573595873228436748538526865573702737262766517436807763663984343622623751546014082273948622173799650922661164519234714170060031725741308202790706948696070203261504662588111512232346795440763330985539371137326144684442450866450922312595478614652359867016637028594530613554054481177489702968969020706382299210653705458546767103921707286521337835514057099552565679620270522634317625919482907836031227489717578420407588613377338230021139900803121316331005285623796881091898424259766774851412574437193898922750422057986503821893476513775541763704013313044000262968252863507278297969425534765261885580574185893728630851889635713292330815734164717590401918987131178977421739682129666986314985715661845091309112879081776753376516388764348775978154921068899357388446191697949526098278431434073399099438370750675687369904987753513944825736176290734717679289235280018626420070273115371344721697009161565590073212446328228599922958149197759524454733539259660820319440982376319832697724410960095508518679734722906704570104453404830844076654951307209443673716690180814828681524912812546089375271429160359479621181237326041486858600667478205410519378658440482498110022837900811065223543764072128127895092648554487648350165047574079795207897636800533229138010714660822149101706926994307990273330149847407270899403713076381261331464880926129061852080174871299485827112860946903890978184940804239721555663275902726071100864481680847364653383886219360678125599858658083504420126787053939869402744944960534334712796533769606319867680475967678183413746165807094354039688588811618001334274159655252278087949118175516030383192097756357534710692809974153305680061359999267536860227699194092801796143993113972529540450694939263618621011584221058859577796036468607025998980141550594870642441397404982930307033998532990051095416469192811127879585223632568857723622740468828748499132029719401701926096704332182355354751351697831821920301537103476563043128070749295830037896070805973763017414388984140315598141943648805092840502517340222976582452125916150602858998497075191027727320361132002294643158432205688364607198112183373264168437636562693314287816821584246253701118794986173199999663517936674705595983604884369542056232223778363145142051164380637880405857258342336411915870621524951372738265567098457422157394996681494806927267808244106375481825164412789193864706174262258602705771721800159049186564335682194031705986726650770836333949098923898879436273576276152316523421358267459124992673659547043487687337937647910706013607880781548964565803007315198710337497495142719591343735632663796928161666357919229087732054175802861556361207865812073767786735309954363774036839871167079556281930388400492361928455460612242534962129642274747942602197232831295679911607874509997718940571586007190530642759348896293624286151084976248020271741382692043358122863704345495123439708925209309267851326905943668558963923027088614631395710634992354336630732149217875896163838834229441409519820045299018429912751421002025128228897819768128528231643760342925962838244579500052718857912458501958713012691727151686455726892987466723985490045766930739460815866403098673393222244026793531111760250925512078784419812079425208820495152321787441555916771181118617742156246734928920922929323457704875183767621961427617320288157550533635106710622421275028012476203172993018733508855163259810213906379699701891893587349353220437319907255708727267780237305569518965855437177742491772128607142600193444180337198967182853506410740482676452540693279572192031152173236175203786096102727414474525922599164894236487239214874423656817096017137816932194412898163548326747259039006238941123227391382827268062577882769190415785403117685715862093614744669186144279269983116014851120705349034444632874213235284112084437375440504573607069726712886702316937243417398736609196450879389353733415753343843087373893735090485770794036647824141701383524264461418602912518518106810678378166766402797490904290284148931839196953777402937325312761922343282740019839051934860874882596542040135487902340431163410054034503552333694334720350849807153141205351238171477934434052425939700808891203542489761544578032983371856879446515696080913715805378993561959600240147832554487729069372897108050341293854868972216122724049678478578317108685861355719382423542136704100712787084477355935722606226386290837694334815426433846947942343717772216016856313944093675446814839116164054467632574087732141686321702167218273364838308649930914319712018933079784811627751288270703311435805721987574700831575352619598856987377347484211893919688747403175019610533702309420000474488029773198995830250242199803437663945767903554552994446847385125293988126463852173961658484454211950035913406493662009306781096555981037250738171550872929029830655296721282131670020810836378501733881884343714841361090246624415078261566505356404117223641106695807778458726469427284145306233299390058584545748971966512930567509562496663591280496844259507318880572182488581323716007511232288834861992029438216441687064982443128098628665860071898260180009195249742790739188724024753887039952045082224457862909158262123013802365955740637474495010009034686449678215615623374659014198036478988740646608087559537725139374906965168668640199991916375618670171296686827764785620403292700574927880375652734049600567048105614102050233376974568521944337827156913808933370208247919698264800135397048847351989586481242771495179291863781620703033285780408028976776671379342210051810436073131612865693285035874867670850050264473560871384027348404627208731577534551777556916096327749480335839902201294637113328865911063135232394817077113772490723893990482770339740106660221577833217921623972458985471284741124229400136978687628427003980712518804668443189889864916604489435557236060905487521691623689140824039288438078747704064524714281989958600473579867887418180084330606412881465786397909237293840167698036812940191684503685835477576984528990662163169473556668537395101428582351499262407808477009376420647208528450705166257406498056057190018687620487826747730224226633396244543824904312631880149727773042155006576671698407275018397751283893528064658217517570371281232938257801193769480048653725388776401316615910813476121196848770942116652151859948575815282656757881388003920615515289655783808582340820579662524326092271082178421691279214818735624815647648708876203749959956017719326642624097590842515939986119646392994179451158435547474643735673529783281570562823758445456634440332789709849975526969986899692120390807780459556314352931577803887258041552425180872657909112809769209248846093843119392050795179279094425222851522771165635985896943705588627696835135720602918487810495294438276219727677655543369318072620585188934569686883209529230763537987826539792487021126280742341343763918339020787774004142817931574333120042380713458666273501368318672087571676676604663505460776778562778374647927802759871542125340578650642769926730489742471598665464172527296491520238023250806910186774482510532442118892492466061268712379809260806445281609748006447169642757225629629198938094708014961064754124451748896920908739839520286127211727783118760558803138094772786563813846061413452055816541700365897656527128164085965314363931377939223621925463957322664692967943620145166976880702825149463888476992523088268659749031102780448319529912892518067688138435717366547947982212603783666105573056137400764644359198655433367799444895269729196203228087471243024423635474891622578694183133864375085680812156071736412557447707196566518500468300804024523059500161589641981274198568736708895490712277190588002884524821976899077958489273850450939370728133017065382588241027092617086471759429817400244631253458984046940023659046129124977074509603864462826118892634393936760758614846906061434365177070916437446321342981479709488323037641968484101573992151733581262080388260849392935931201116843623917070572475217134405042150315489410158687987025025695715040816371309678090148235932227099188606606224311294308038150645903580087680397450245982520110043881318423779261020018640649516770334053602517598642353787409883693994822450581414148938905587762752916231669985053498368746929285695658333586589417920392724723246384905975226736441994254055251792807562949869391810609027697664527424611724436955221013185121773520086933880321257380946555784191198146255508908955557084384245969658171107489938834073169175794887424065647021732845659037556053908202195790657715440886892891909290738038666556323871783125324972042881888929779515995694150270160002693030268643074827368034919436762380161273754049362392182017360456286640447805404345473261469355483379546406594814485834894203302917733918646940802397403694597740071130870808257946958284997563853284195744595268945050818523490072975193531965888768042049725809099733102901476042710120572039322249498917993090677338527379826167817555494132337149311632329396061007116449552723987566191370170916547884453328180158236682821985880150092342614414649782590703490841460970690616587663822740455973894025051488396909325242249125833903144935696274648723432562089129339759934955329673053627922996931313383592534283805422082451748649754445154416930604332083287530395369949611628675605797264414450320854978122531992877109283477820169612936312249112575417453520350463597447076420044469680891255140368648066770009855926352599430291929245633785537971742970530801087866844887389349763326758406090314724178070578757743950800664170388843331985822878385103771134360962861228336840049852749909556166392166611077983983399309491095281264672656390468736378127659736177807401629187939322984311679624261670976146628843204449098525201661622461075025412996993903057656569521976194167206651881495145741442357685429207243828486272495957346636959096699577562058894910340206708474935845516531077836605963197098566292047385647808647545500439876810854210337533276124106387663971159966952771463828135861761294207560229027660628908534461792417374718969350740455935921953097658521175087106162587437294812726460168582695864603922283355937871553639117764701982813252712825639596340655907341834446022384550691165462057897296031483933368139006707770203301126672494363456652315753370378095300412849984317260756844215907170934713489615882459605230950534790797436829654583304686873966640433055841735456621919859094626106527510294530753144452147351591335421625053957306324005212144976746478864948424544676378983863980508019350597434554673596105302955270285448947050040620728319958615715799822422655984950256464618181776189661369616802814256791177171150238221453860838661342303242386500521385470704135189584328704646466017064850829186651905872544579263967221888897726366892678985663408204240533583694910593211103725944338023175491506561436728363644000520706662470793227133612239764098765438985904838635025580759301171369355230490828018250865447682512134894217452399130856207555241262964611698820962904945601976338988651353729094699193116102326918237837857424002475348662677136209763555666537969277646637353281486381479260782783624374413011288832782873726696718167444472924463552397162741999360901587202776067364248338722082331746410180834957534570182056486624235723697382821601823091390374911806370609883848851284388638417603449581965950482001344739165603517454152975075937351126645676199354687403914665822791426202932399931632548118976882979450701230754981096058833781856486882825807109081641915747480772821006350198778337480023532364074665550269196747200748682370371155568519801937843998704036931961178540830893651962556743605080883156734814008436904548745932302092533635328955542008278826177107747330834793474109302275534066046021498479195865274771087273521243082312236256708092376886605655929340930803512818000967744425244764863631009836064510200973438636735806016817032019041922901281927557230593434886977935498328289262426879063557203812538234137416704743679490906713225123323071649697611722864917341533827335924743784446419591719874225794177036860854194602587948847544289933276309483415735383300446060201299498957110073690897918355778520282523495896537556859324442302678145768186125718532129532024429389395575361162275153359617386182115433467680470198434184572046830080753328226696410945614514460152945593796181904665149349153080022101229405719451815949899490001357942840852780315032686643455266238978802720301302741951355866229746742025823500737707827792534408086508419221245111725722051670732327195420892312855036687308299589333606936570907414998947610028103618886807850521316660500198658843223160340247073268165719026283657558009624423884559068988370562539120081324234789831506162476899634839814277684196206041688524428292173052647032378725307752170915549664358181736563722170726465195867081053709347837802219717343767665873130737948381752808095564841573245293351283583395884537169158636253687447367869931657474171193813248251176206529358569336807602782152162503869147765330645929282384491790095317942303363267709161402009050183343033538806661337082658570014043174424300774637645200353437505459282254239188102470403204492652713220653958767186214989283159877610041478578674150723626300113545217287023247080740853835549603310745474943857350009051293139763592615069598637090510618348440240572627675253214634775917576764385952898428882636806419551299649315071513385238228517382211067257742578727269831520881659521647930887142438291473883236244294620165510883146143852788214289011968206339659756378637229059097087606804959311871818737488924021953520484419730425228343198560579627914953887548348692003493384291792299530939926729215414520371172070833740070600483719113828853448295955429027447527757090749751012398476343970100820954413249526168078929104279532900658182233653563236929506824881499461046442350060845089601473836858447263355927382635040338667418658484396839339535360501170678259001950508965557763328132313971332408689258719883511674217498965708961728393264046094222180614328854603008515346040071591156360177472057577837424711709914284540528261976131802594266275266591087317759572787610353559461632930685342743478288294116078534364251127370815073757001227109878344269927524065553513617541849928838453041079977986514838022047781321327210545673583077910469244056019682354759850198002877773241490883389658522843952324640999054845411523289674590504602900801728440774797412747840132910237168911360063981546006168814500336579085344682124281716148757375901991247384355989738660527163050002564656523572347367565267636502239845334025154098841686159235918499090196876250505174347430403618098642583586878578427474909300005374304805994083776966072657562837066723015426247331242642353619388464831443430344371124167594583855311565855016419985748750999167798177402033015136347485169094442934166468118069394215144930777991956054201114206249749444408877395184319176337337615322426797278881109197768770336732097553881600286514353828622794475778051246842776447623329851672334926219474351206145027606027089927771506067202491617537650629939085355679934621892832949959565971801212625101467161322121690646771975345637857802205002440574975032559867815756810852148151358422414920346719686486915181892046705270203884986762600273236690556212794841445328248127329130030083618755351163562354132479414242808331804275910758248727848878949466451486266525558879120659676402191934542626958370935941145453126488997888562272030025348904104495599644024575810304417391692234996400578977233391931076129673053254280862382572974299295256327065083315813035590223935404724847705388390691024256208385377672674452369411055106888261283775669223626674606749855448060618145141468790952949027367401450552166984340381160481247965647078730017718697094602792255387403092647828522189269922259956172815303745990145428032639857845158367045755514553303637874452801059391881668134513677288461001705634111090398158206425368663334246884468764470636812919913151086628236482195732056544985582946226248710975080190303446319550561084024152818105937645778839935568579459430887922576705391540179840570842018227812356944454966703451108271415818046002414738865088102389751863580053309479825686492058375186584274699396859602433720733654744575444187469736612224955557002541668162615226907167245811007339190271018785183892557045398658834048348167181871573326629608926259412024091681123537828249565135861674424129386848433644516841552196981494026036194119147234670371664464440268340296379162675201044234934852264613971073125162878902681468358948204526004797931396875991511128613066577301990183002225397403128115772719434876366093591082292514308951898635581482218120354837977648498463060130092421547917651501361992983313613790855542945401868563777552848255814074406075042876311526041457780362069015081377568187453508317093409330007865454894411132732021447400375516032490986751305092703212103820984480738844675655038726500267449733523735415536876783404115747884826419768605877486746403129691169631513929418153720239130315518287234802762556679647808644849474240443048175479665898660804234563301160555897200133541849488378973969958862738799924246559917130204800286456922763075233434751205856411626304981590973882384052105511112601332898744199698368129988308008200949665078145431684945576282625277737440172110593380353706400517539833016868395596808105546437757587221492020225678254902157353232368929008952770139295716593648850174745765545269544136557419395728955914001897778991766953673589342614317422464624651474615941144543079032049454741608427456160428226493389986011597483894001798022651824672424001012164724131632142844738963689243037663759110342756024993366288409574234470415543487008428048615231228533611346574863191633208588915821241604108040864814767299224075931141121031698059527335575702247119696206956997458999407646882742233022176655952910354268142705243450158076684244197538724784715114934963108174413102026503838139709855849865925978481623140830672537723555422290482248842095806840428839888152090813474199573607906245235968892396288858022304257435084859351256893824662842485167537672850524352731768931460821503517531784648180963941795629320210199334786061178294616852470847871443791234826420739226189173534562675384981054340937422699212917513227267446083486992075916840768695275484681964316765882172652978526471279747421288584008110092908078333307901381838581714637010053499030770726633898181500952558743409402802529477639959950363771062969607576781904119057431461735785382115133258534875672309597215762200317429215663772966262601430598322199119851566840644644536309648174283176234625937278785256473307348356370742780228562067151069572272102770279750075573612800325130466707521621698475248361970537086031746175185888994882707330786813045441378228944954918882331687567576944781382642205067433074521998918393093533515774891956619115306923717438833257816228421452408668562275995585323659097220423170291260138480521843582964223755706584825025687708202777597687847782572319237632249153992825999450409056655708844630374158135908658080877384593628296289312516886485151730354587954812430073765530545554360217810135130652126815671372507145768270928445308306176170134975794378675423736185865973672416056100082387124032900553231969759165982861397545071882605344274210609892707812167085400985254185580836899214976468249860328594834263872933352483905283870971648060520702594347480337371693585341483486354049979476771950580982659635418983318818482877266155635467416142494676021621286155014182949359963745784262748032346343657837982415448709833228283341633169504646980819329823682537775935201792812146781197813148122200197321626129078590950240291960510456872556419977145290049558442594227277447153742452732471310215351288276315160561590417967156748561556170410949946400209677065510149524510756921737137308227306311858097843626041128405523731408958294555577602796884855213121958920719408514860725833052728527574587316641108150253515908572915631384587821158638183070340259896781542220837510683808292824580259833040858197011616058760332949714750596279866272506567704469783477119209393087967141013253268256679119560729731530939551268852990110315385915034009391472354468515336153369272882630966032786985782969331473342663244899758283673182067099392141688691336490613510342673934596993142041407495109394207579262390247665158076050880411069896415416989990672694776833487156983813448598515296138190056245044495028889740130883703737998885085400736154048244019786213404193842677534402117301239854124030251947412540529371140821646943792761615879181306330647708686242740647153145444567161902265781751751374762734967772222312392580622087188939766434581041040546895641749794527453059578461133209594300202033098305340853418748230764735679754490375321771721158118432390684054937160767042329773535837056733107479208921333938186302738051637523941394426031260520835665060504482545926810509610553654523749078530981728674307437699917030216668215380330576696461162193391711798341398233959469759632116549204324876300962554494114347422019714113178932135092504258511552216762457882000008960972298703060514022068305040912647236942724119193133459338403244770696132796190326072979641880507293175549867955200613271989730340664055990268485263649415570891150880266066048678436233167237883091822102053054137564542467957501407098249364104139994324332733797323074094845702988149956765402512484370774706550779018778302461305618737819698185128778984118696217761606143397593398434963013254576100089684332676986977253059351806931702168752374418993255073709801671559606815981110476309641696180029259852044259087808665166985507787546742717253555548645573230400992335671415023183406732626948490837331460436216423186151505936400187119615392575874900624395652111587252796865526522191333717348838533890798138507857360224717095904751950077679964554983418844208292918171434803917264120277959145437479331825940422579133139516194024218586197466392643269145990876065697188000049749332618536517411756841843847208633920295042337850790927133763991854335819312784656971321262584921591428070980473774871014158212821602400804870552786519093330435529253829802951909093968808880647146668685667247811372497680920808082522603425943958172178104729567465807336958432919789880777880188282333034968353398899623016227446071113994169281058366281597014278113026185557904413680096750034775123425308271184392467274793492422937005961866367663720692333065904059216572440693854251791262308492143436245740811096048231269465388397634149826168741793879751216282559547806071728922116610363573527387126119546622919657451293360170244389407843777142843089735404494434132499790314090468609802976656965319143403589714220546573102705801229072104020944405006932066076133897495877815114724541427214289427398373999282258984289821281191116475212681945040792093015552727214460402302280728700311951075450469760598921473877780758709465395622395741788161812182374301961850339753486941339988278973220451987668540595857638488867932818624877823648883832721364612039750526143534730997987197426824911741201834714894982283384441505221214064066005996165477057034135762552669568953811710463848440038131773564523298038702812089971539234712496851475436281873290448129411119849926754291035919116640869437775135786201788919590476929152551887527429762660836331461571278533749400659661103144800941643635906395989927394438804588059524175077269433709586201416224333672456700072695730750447903831865201665146762463076409724983796879427881509411122666634310956957182076856253046857177709141153072847380400002230168856621138934784505581098092806836004471739675326601839848427897546731976221206224484617227092586859185135284384765438571272570917164337220832704891497034005232633759753438904108438096188834643528310240105446786205647569258031537989832561532714426288614513245843825359175664186010636766232584959284441704557370065612959773907797862293440547832269529455300376455792990156346235093526431152303015686905524890774065722638955429934195354237074242601048669243413702802244192187214301338561261510294315666555741964171517860471661371522805636759734788706810334697749201528949430749983816214504982147073476510542451352239874585695591519353618446218185647208682749293732880609335392925348219240059970739856352466202619836257982874256319270642290478866632171987049180365653736745698002745124287070375561657347861521284225420858859761630467214070772075847697248138670893066986415726214356372394183724407962890008643618424165799944115362323558015928805952215573076933873582490856485262627400732068045428012237141977578244940923150896804167895707692366614947579967380808812456842007779933538850028263770050033091965160599902099839994483763370768527442125533094226240229404471652080864859900343884674656085217919694304593561017256180174574246570637579385709543088828749836282943408328251705747826749632980591239877512025188908374885096335397175750951423345646291079955431968123341371329603920735186388716740778609000674558477852850072494266401009665807037306937932807260109570223474303831145817648748806654038856108304473076935271386135830030777998062440672233746541273755144171159222960568380302043774709868712465347396471738795967322723893753041724262361666375742802087754742185151754522015073593317695167989815635464606759359102364600088814288181964300496317337969244866619740789154038815548120261164540168267894348051426735327265790749222966223337201577881313276332497745052860776277774219661893847251479257950884020223426106887229023741580032509213283202073280606349566898958917380398788520870149024521171638631409176044247173039153703804544989556344140205269253375722592173879739619631475718701578841120356661080358225353550480038382156252602998573821454374722489631371876665534315061291060542548305484263359090145870011203935477551317899909154227974896067571706342008970322412762523080625141733269899912825361921165016192895551408741525164263607858539472135736665138388760866639579089454089797644249992280393469017078276101773108246676309023276227572314594032980277566941997635777382414890442147350790961352037711012815464557538822612318159127632631835089446928633121500096180884884408085139298437553695703265548278169827022349568522743977012012036940544407656931772636275105371332424654426132562634480641716461245810087449607645075041070358233572386608892257975844124407713107544914550570246657450776402643769030811227214243327697118272119511462368405746872064810059640726531488258835797297802613534255615066826067381735157592671605975037502598150661283983806078572061703851508753467196384889642426842393693936833716703767495127918764903094758626105759287974973215450557304287658897196181648434588674766196652156861473648611274753304532032304095726105535924028105825388931971430761667978165979636925872686003718692351608363282405049769179578122851778737204278017977098112118633734364758863120015108469834004975565953294016916462841528510419074593958889796570435279396621116199086577063617347584042932347478007380026696511826318449192525038004208223401763502094575536389549728878035758956281646205816551541931482333091439394727059095053127431067533118534004235305431150038784489557654419120707635641991407357154373261049032179204468763611049036276507787837753964320418303673897220024979940095274896178344010686110874913806338124670234927152632560406758610229832699272931762471164534457595855148467144912793897851211097249810104404700792423718314466209630355115970268706152203709022883657319986208182871652681600905768866429260292255724933235357865126136744092812940402818622442578439541265082498255646978624784764872211516480052767151303913101799393773819132430809551688699268001629869892144504030275980805077711976517143129099777522381156710166908253159478162904878462478742896082862898435009750147891283042532917022169576634036519485036931887121914652405075868376333904472181472547221493662214495054852037575553058889564651398482372864119976012222975769414429025932491315014198095227605450137237946550724135625435255922534195230386507565012384694655741317165600377288856930848854105954445550845736000611704967883335859289566562335623882283632685046426845750342036882225658977677284575834638378713360319267927498616540983154975619824327417088559052309870701084795157712203387333090864292559704387322742415526355865926615448983853723911106669247045873549997789831785100166436178183187114445230929325769755409878580421075704185513193277891401590184998974889457003230183870846960209975441305312524855208241569596778435185862231414160935572860225225450904432877538434460206426813626818884283748850408907681775214013161025455215946479925942664984212267821722323313262549525598501215126639194457264465644998879236087761833145330049449403389800768153559891560569359835980305740248574381031143836177190507916383289756880380047873497243555490001513029075754934899922046696732683802460666612579488715776212537696238344428504338873396924460582560387864994684687689038617974580514513613341803610475812842700339751033619204273153366736752746313722142436809223913707225535249382788244907745315600774864386679103517651111547958109700518534943969062666638242138765024357272338349771900143949741858219244161539652773431471568429194992342259421462699868596423677733145993159882331573124410799590518272539735614949601399591822189804395127249434792592485061237295124607516716153446105985235179190267770105039438829200214818837035377993982214210225996705794609721337856992158257531619573616174742064411063366784491039285933330941592587209113666015032743982371795651276858627085229892235442681460911364752004196213282963712202822349890747709776207121313514704413991615145085095948376907529034477066752287202360385774049638362875391334802991651867190548815851073355903168017327674159010274095897997778359314354222487936247529544697092079926280028029770338810089276847535514077535832887723163474445463790641809800914547744656023453562818557883528663773231395263002553795714143150139956954411541194819681998299970925219621497002642529284887643069073541927173908750716949400322466123973244143018055734315891398632178664809548825580853322529333996787469070759354447618502312108699399476659095476136481355660238371582421446708276176612844423985502170233301922660455109325170525989042729534958665979849160274042783923795537008886822824138700058010875213939724778113093454666748641529908090840757081721837715305905821775382893050511590197411844499059196871048284280409555165057422425736913374654873156726785424341992322064820608858461396596588236940164173467728940083461273795638784180181025312964910744416239739217082955108729757522860197948968513386259777521972078018256067659009416981101553823666797681120214592749880440353106571026222352512410971900084216711301975621772349118550583740784075961091141005980023636863526514449067949454315346882121276864133904597440665997032502792403648413829931170977884165967224529571860268298651450129051514098787659711717704970917435101913110673559282315982202310910596196275456589202286215046839771501230534125782908426676157794718692079132683690923476403755826745362968700816644200977523449020209850729967039133423981228357344968099530109209141407235103735315507835266724595388320750181141930597285075591315297109031221950992667511973292851533091798921677977071115458233231249635680434176147164997530879378515397191301923091429704312465708660243795362870041874196959448426096635485834006392583635627139413492461768763374010397382729463092069145176460831713042114165573262228205507438120556477562480031250808701554486659658998308658431591318434851724253299852763681331920188059044406872941354226632918186949142025320355385669395420635524159170021786428197822343921832297014401279613472948885691131503206055724496720169228173533810989096967277252946057616975289703479859843260483238706279379191108047091071001129438097595317724027127446151120900336993266724455037428842802134494971528315214716776085672180411188607867031192912902955803815967918030681844357152765256621631921438072647000219918029235753618752695616456410929173386443289640469657906742368906843326487982424876065771057087956353684000794943002233729388725867993776825672740374550683207037703404745409910958711950067304446289519198944284596466142470713615089961042524897387505098066182279229332040386334954663869973524939509314721681871754777737842344788554612700102901224498863301170268115799623893743917829597733861916185305900163802907508207790846937913665236833438156453382985694916654717872838439501445902039604476835291848361687519956804222325924784709471850821753398267261394804037867680635356546577264307223066614251967549859371386497339273219105667383515020853530992261439593792303455762179558243776820072155714348435083560378404791234975476372109581253952190897187170348229198192266748929199293731814588265786524006176921647794274582474154387663474461668891625051551617180663768782681906007045760993569941135723054945507835454343788755842395346958681231611266919006701817577810060223408073962580832260615060008309198769622618861936408333528111723064964425288154997336304365176646213947732588651748242071379227545398989537738612835768550834085249960003351288299934664146584490081435294440738801700855205058240200653304937298115822646457874667855890749158101769872454192577997616315517991231816561845610594026720504038097343920519946726502259456394455751426747360184881461666510945744480424288418394542011002706184011289553424924167448200904745846480964877484868072264023912307634116862112536405419007913055726250284687212192523807652092970201165859966769404475637141635789304811896003937861413022801035697828667734115001556209377966938514999495758320052537817037793642237738537919482033594429651949820358352792844901731863030511094436968881717934456454380072128260151321559048624790192919021564817474765264728730784877183858755228384108067623529526830198639356172294857297872298794312927958650377563786768117643470967286062113127003630741220823025813074784846034599027611126882287062847259945483628227258035944497856733970217020645482260611965665820930516761651844869761618853181668773545444544636735879242036032683791838426370846688427705268990160951912302622770113456308961133771742099567671739612800498143589271265051839114145394893855855410789618538331803942714891827204257842660550645468593109148002304415680839578326717434159423012506061363639791978512484603213652799697474389522924772389991297983306071760733887694750121806147653756928115922099486042921189736580711969910383841185889974304481024115833264416660625367504404517040154190459948416678906093810887352946100233208500397225710869275144053001466572319887103826817212816471796820856558843678855772895226887460804032131813377128224842811799199691872943211011915495367299194290162189985538334563010601388756633486745997995675199799213178138652060241356012821158032269182929889159310106308138602812756459781294367940614923596891787870031516024303078592967806652119291723846089965266766735393502417547914653088850003613809383066827663243220792750343056374247127793840133306142893433043652831072656566699701174965107926666609978912756620460349659733414903721670113702922903917812795883406732628312832467369582675766103811427550328283105624050959730506024593805078580105574666247375541374595988032137554952966935792387663807007491210751070976564695612944550764168621511756516410826843136997366080446912943523122882988808386728480489548113224416525052051172725095002405627674419013667581337802238202150744218804930473273645497997313892844346125032712500063530714081055877038337112468086432021564633561765389311778411055279762298797676253825585468074961878278784833898167628650322449619859843519919566444833364416899754488199258418515711866369391402487282280098756321414436593224345165947997671828314843371647643402141100530957025866039422516873216319463871081659563787087076628771248459001005552809560562718566367407043124878549004033992642157631113217137179465790876075956582251603735884957421410080842071149870271759628775187552216944658453240942781792418966230591740245014903340469467771380906770787944641208092026495960153081992978739355924549636313745101731955383103235643944565636314231640163494114689838648035554250491379932911796536369748592440377659889753567269297180863115434021367811416911540691226470219562050054201132183457961609995827679029235536299290969946209718116854878750056985465459745891566778177790158809537998862768453212856495177572862010914016896172907511002671025876009357449452047817847756774733965889709371834902130521047054228925227241222106746115298043232710514500875756209427794881121701788435264359223076844227305010021886948342541948268306579044464141575735711990910052161751188406324028992974919155591507112110643441657307010123937965908134993099907600444362423055821289714955029995523058238871878261826574923536600233982529264391150954273476660510731678258329720092141335140389931910716539217178503522260278428104156403786657744519768185994542913843591774449658460821930633357225605318546607043831602249157581729558528859947651277066812288294156076059678898098932505028583897489891795122646698740522805251209266251831541044471779127039162691453364088383647716686992020607871810966105032742400473629082357556759353843980856293327937610508692443042559044723381191950309204408625899108213861404696818076465902103803695127394540493440721468367819679920193761326948812652889016983745727787156530298762491609494188768254265743337846716598808573338866882524468338022547536506471351866063108149605196996531306951368519503235049631453249502492060999606993490078053885414427826534601492895696180510997125287389263514106398044501624206987990146409759535145161894077954259744423666630873401671766971137235766057615399105813793992285187824234627143758208187940758421558368134346196844151354328082543754832779995844242954191839613750981122774053154422002010045952498735668755077645941032909349993391976705747076118443478965349187007471135562598011940064141356162080401487559070247686976904465728155936080752249119165678222546229372787252410960666584793785199485805519511959982637281052592107339830182441897460443417206647528399279268163715281649458545007682315939667520071590335066697529313389940809023738933031548999749066911646327394798445054694387528101500060118936917777253835740353706649123743518476077055299325312689807853963066999976292138233003589213163790953474721796441149889829126761776322679982006303432172267820128423709854309600880371218803293152721433828073988924000431733279971905555864146076432156467247056028353741663633611163482991693291311470024331632320009583876816867905300116158810551077729006826836954428589095318503346099650407280590044522248001126816543899108985563120795099236558585687020442616149583920652520243875834878430325358520286779722155393724243481722654263423343249168175434428230674521373366127766189696869779388370283087045369815149905798102146990558477680685114181403543683366377274852408004042791037093677355218744012257711661711314403527528458838600752993775048280045682877388346282943635172964171811892412802592059324484504290331929985900415366239442404430560040839013710510483994623726503348559459593616651433698512696901502918000905806099835540805134435149313095175087871774081170982719352100797678548805084539126826258646294434275469077877342892447706820408156898426488262193723878107566739463146555144964018547902164351761212490512439284974362906281238434035359987458409335856797343079614066689669258467130431448859447785788581953794923155102956859458782702051225558337570853935058989809012806916528327086123312138672599335250820548125155750338145810372643682043413979398040524749889078001102161144763195227364176761972971244946645552194921566530463718317685109231706041287125449930453774992304183593263005089581884442454002182485449977646550208361203995109905968400213725714074715839780186930373337202114201237999884457520750684994653501110279376300967272368933671431900742485191147195770623165676078241853183526409573217866544514158147600564138350508556794361220127219855474925328929975315492537222616494753405240836914136567389511736680033186376904108207025293335402836832811210560703974807396854508914454154973424945000536677423391539430140506687275239492076954182857406849106828492648566897346788375632791668320238530612024920662415581542718585806268868343011627034886025612672093566739693858106661040756348634280265514673205184523618681937640790964237386981849723587611304170250075602257238064946774674569315802628718716387115481314016421313907429409135842839272788735163745367633235368608467321301699902413925400072600685992955066678746059719071504739365366916319477376246002853829847839468911899639779506873839553432263716617280612661236671812867719550720351781381429337820939609913046833534035800727659332640468257158859144357006429659328605418575388322820600384284330900524823569132218306176799083711909759679897981889626485249603648315373845265068811212566085255627758765666290225219031943601828337410322284858567751493171473015916578093610881817094249115097163176378337845840983905390801382169688818363363303921770163449930580239489712392862153885112305938207569203542107291115895713642714460065401729265978347893304157612749861674753301419928562839285782095365204010136595588943334635068600474173746198668554828267578621936351697821841251891253876580453680923835927223850413349318006311911860910744973741164196987963835981083184712160154269300618566593517882826503626786336161818814365813126548652587480330970563580654380438754698604627209560273646397501547703133988804050406008091997212370242394247896411533839611385892661068114499151352647092615037208293023847680109173188573033888954219909853795483424229434213833183868922835194098698845612917293550554040708316840125892878253162861396995019821729584180157312925091081054120195419665785876118351267847424719838965559954431358600693132088525240103358648063462038665046992993041561942746124878097416185156163572386207819771953971363733853084763041919790459524657947931475618113589510669208509763447792101862287616515063454963131390770617030308553971877273800743837842732275151800862269109529579539265015032753486619897359394197011785620092778709063703298730543343924135298385214167622832102529005107613547527839548133447404998654364593540040954489436333720364699050360604098973269294230907538096128174487247707098411880058374955735849172967230118179078294033533890291543116854438183532708448458080002701642576224258420641619982965032494169074167579157947524548440563085219127504294422764758705074964499847356489825900458651685700354634837979009930020116641567248637718096609722427873049808034936855962519185647671561135015724901819774747220370998861645559701058266581462484862597467773921751194366940708505605903120716904716674399913948606478500976664307312618942734199649092368197581070984226965117206117302066884914452462598856913025479571625530878661277728887321541748542957816268105984266874794105771346027523255248998069310634206429920334556725200628329881992911274073483851516073205119399659564198953858312193568812528679282706190927963793898019646792930746912792779674426021069753510643107156443599195290859717583801299508596339475575525253806960803196527208713020563065714521627558894821370138867634511117500363830602685134376772846388783974065012503592319601065667491627123767657047466253445206380836667124627491538556196183586332734942669948546387382088172393606938572652481878506947376752919949258022982398618308051531096490171116563104116232164176524818931507133747073445591224748756547981309785711648642219809081528322470902083144229254974967969552682530411162221872146128107924575449947213566764722948796446158039653423559938550876663732382047615103825665810209712137024005392813458834253989907596681568229615601480197884999955842449547772009064872001189274452935007344608455936212221192125969732075667583021964905668362866338476491820547510297727268674763780846473262922568018867669563902893559909685454353392648538781414608270311008247628428463862639815678821238505604082470440293095795024211978873197836706643607530659865130940792269633288655997132697539562077570365537361515453636375762662249746989603254709161699498605991670932800223535557319448402566548610244905492866393787667134219326740070276179204147817529264155052157251129684435033481213754398324716878383056203766488017603365043431830436263545932240086746528552285820290993097065721866543449348397230764317817192395090860675511479297542940023293521995626347766597245289140741974605187130955432344565770223309303882560973707599709428752200754307248884015229053430174976259560252667380744127672831695727745077843933248277916424588495190672298970184651997043911393926920372838188170848163404674358059537701486597670868518701227715254884815004117016577615429224470143418217744899287032558298369354797257653263885286560763586901888084595549948736165120761730858495089114195818419667697122783819808643330694804695046837262297515713592245071572097767040941675710885291199261313955346796931406056854516918048923406763554721759110423958524256767378941893067905108458165405873702844612741559734168368281780435680214168844105275997228469934104287727825183235258919437024048040151709082784580497159514599564183275990107741993872029503588753572639594931177407579565776178404825551258531304830433444931724154370846370027693985965871350650304105546921794534545282880286071612497445400280184551653620615026726119610928300062576920967469790427691535051039997067509598539537567718689915859058418409713948698553068767682744460868438191599705699047764713720267606874138330071081177121107125657172345381034917875666815982120575323915361248993043263029799838756334375445699465018592710374436572075186566410225496242656191211193270234098345368668453997852901175505948633153606819164238906049911316432075990524406943864596514720248369600688174487113391524711595690467149281243380294978446636797135612756204623193780170388600159212539317275507319398331627967467049178896847966674912281282863956573233666550072284599782316189334248308737077832564036059999358903463606270500513020822064403681509157666159330760705446918741852600984726282564099548569530259791251538960556912494423484858396617539187427543431336120703784142510311340041247225702291178796015316325361671436908421229501179692311301178648390315448485524652569634910230654656739590309105023302941411941781285448700619913621910927885679938734672888624882006001028522850116257082953400224930530532295876550290262207987204474866616949164679360321146655225179580857585427624698854193535964260307144103270059347609410319765756719317709846207477833192178337937538217780324948284818301903406619858888073236413810003755048424928190166458565108350805928519392923896269021092652528923146294868052405779848258592199807874392374783215263580855038090893474640733545607337359718609852199203114411372311867890664635035478390446498248427811747669687650036527865592337956619579633831669691975584027279512580733657535169822659974507851085766770989683224466521976082208272730759841843119172175142273237286817944880241360973446673075541429017558608449060906742040931250568571104158799320829239711558871889473586641131673945951169602092418059462814318847765092721786497311610336035560585290820496197544602752770615631474599833136988477915513084539643813716825400211962550004634014001459682896771279433386658751383387270362494504702768518197670826617939824890467702864849698755293061862453886761008741379042823602253435526906602923256488120458950999991034322072463639764426861330520003569799567852970460407269910925236149184532433964552025269200580439386805782224334199287076027296592791966578198069823884815126296267538741432814433532275934165228314243372353085474035368182833312465460647630496213859490941986367033447249703744419375833783630089587444385834920834786212377594506350126787564492275850365474522648435105563990054864130174075538355926370900535192057096437486771670867096301726192097572689174107792547314648415579145163324410698619142156726088950091843989112902849748578603519297517157060621220763208749018811999777033906761165289822502955134580591218613385097086956291086956361730739969629056373527856675906756082255347463561925884461626504627014690087467252371037398539078006060346176112736584966483584000097139812343855751131554837040451168114786312164026783647644976545943322271594100950728988269792577016783333081642138609300459846294860243324080750203677850687350093642129919131206446023747362386110984717617860658444049215981547672416312702702330362412332946983896643972038475118340634798546395492441418232645326698318159510669794225754247962115244985773676584338295592573083024853764003947121255856594612008791977359773838763534216376067087778446910791166925509367279424249306575204497876478600359567427016286959594655666445047820936544534559918608488223632855191849183839178950583513946289924289926007067351759192265592937910055297688166390894460377073747274503284692619026907594612564921428354360323891191527760324050609352854923216382824846603208419870717819112656838047154084562470861130235692568604602409639936625761180912223427805181706335277733722696964167469814787417632124149257195123270735152881671097324132793764440094326171163545886979011408637792945419690499322997706980719187576434531563703083964032966431271625086627832327047574955615745634841311156003468925868813090103630604068807097890163121635041991271810834460160099643489519734435251098240576346703716197255727267385342990287937592781786748720324880892020249361813426150620045350395356689776674007950915887142791324456936524556754165735556022523344595902160338153942695816040843760394255168198062660612158147553949159626901009997546518762556848352148906408231490751264753585129569833890899376073606733447401727182625707862378917685664471222475592738723062168360266238205077846019394683654705226684291365104764655365889644652649919030902628200481569053593525045566314701090791595639454696196693632219223224238238474838718285014447358314746467840280635547074382893440515314907499751550896645462481445107625167251849509404376266580683361697694874769739622823764798700998294823901697273871887745851485050427213896464389895050662229418241709495532133282387184285571638149779510115354083650201455354587514418970203971509312073842442735150608558949864287899692030326860967447558060436996393998784458106477528804933719391236216072468468239759431095891202792794912356174635893673115495626658740705511510103724620836016383131468915985631931894729787662960536954582186078977852144597710504971778526805932671309499846995519900121906873155879710945074465440511269602271284689894446559866839167446632341704829777118881527740850513662357343111269212547262031915010347260619006237737555953676584942098082116694170371284687498450050989750768011718283629534582260048796494233008994230148852536841872280731196168932161902565656676209341886392041550428263128703997652407657780075358059862610317795021221528678820341119212119715404328175384642361958573777891107371114310770271793381313220539902554072097603386289460007935548012625129932969290519024035279120135709284665483658702126860411250384313359598064731132273153390597084524622259666478457669168639122734728494657110951481625486585300282030471965309005479127007733344304743825626186406246667566236122831575886061359817952364235462256768930256672673665970495740200339553709890524081786782739372160416388154768301597107773665697427973892355705857087146859387087752226970046067471904579401957859383231595203087107770172666138949007830542735837227426969442973621561469166055837283274247302232634447396818234555315896899986083834506334443674573210513882171747991441884994854437582194069945601538478805635530374693248246194359229286211128457168747900468387699022380176706735345499808685115989650076663505129659830925138786668800984024135810913594594365390665124915621844566512595844222236508655917036207004829562728526500379833641313197318574455857587100423006318954153540099788173231883928510313639953059560493255551441813068254920968932462159996133834546235769636482288156622223285977403644222983005259706042861392624584604057895097825129997692703742558855656889734988622678269890313336411842448810716339692602749849413971216431108796038963993024003790367987767325237419897583581043424500630964476829156367467709635067050113800949927579076438450415380937494552230798707270340526370494065267854634975825458768467319003848922405101061645176504477109771176097483238266002735099926903023690274335271523809956930313602440672345454142816632237836133941901645714870524361700453799902222075111001477480785228058166168284328680382836261988209363811896978533091706943896960955637433200054322180422283769764053811459454670607456729876134580196937069883659704262412399387306213682697414405479691772963554395197594090743794767867454474734398226735968204107209953625966918596694819057357291490190243739742440528046945644367460611222956254856663308722494294631956297064181086051846413188832516703643878859299770340654342024391001885730120047185015145707258441747570193833695598483725064586815320767098036729675911825010879755109775028838444827261967540484505375425160958484279259728960427998149222624911479483148853953640788389814468229548426444336782040678946097665510463657596275263743617321749989472960557478509957480527443629156272635242066008005090709524799217153273651230257236924570368724372486570734084125773057970158434083816645100199361295767413878141724750873562471196736169255585540759592949805587681435870916374978202830248652811325658223389871470365602803553868478031492803798695970274403939196400146842078179161978082428727304478823973136870108521181046523906699372735541978345573135998370791238634888296813460635607034144927236962865950202941948235452382136995631723766038271094576148748710893779583711110303329153356005616184999320505935803577994276124208529147947500367652481725228752561191870516954063827609639165986589633381441753449704717618138499844477048073211511817286493971157472393231815603073063924078354821560777025278887608942247414854915968584989528646398106477566492802563124533933708721497078041350048181430964277559274408840618230776322909730676075077429669360142658554501220762498905919593286541579815360186622196316112103961373610490108157036116034783489220876677990849268807013494124840443398075663240671140006177310767404166325973783161041590666592566326720111069145993601641766270878414657707318612841465265234379700193584806427736757535966030261845688097997247994174631954844364504759897830589715410027807823467872786878022698180627455398181705399910634178764426867206218428097501336650862060218618864431176811431993932243822891598227817992207874748592708955756807322903040589287861161030268028245151536079300978931094836428586066096151039804975023484381424975656422745166050393470004364809563882081719007557707020148684860262407383088848196816047192834110276007724841275871527231754558449451817014785592999031797542866708822579468197725835170441665915611030397103811494135283448076805111696878994552781636941835752432535758272129678525329956055700918193854715779747645883451331906144899546133491412936105000272348661338962663813022010590555361460623872557450468598686582136486805987210750026663868042236985900346833079178130700301994525739414082292484645360470041296789377615002716333945635611304380937085039322459120118029145649529554966383735696355771804161503185532495153788918917850747562758684189226289694403053737905678251863479682157397295365904871401588745963193315148063303106809299640181070410487894889768553916298675322443423879680849977902374307941280398435570879609144824748618741968157237174697657258990743579915631983321730426110818679093511290418494011192449941241537321788830644982092210507868719642837071941017800404155704748491576563710853033345404719148647209848440696801449625129367675673223178840239411606765679383061666744164428665036655556070479405545450373916260224916945876802195354254997207058803909920231563307729787236390756079726249213800737995028798065051224629908188848352740574346673155341915641418540743525550774689388252724438137898470866258971653942176047799884338715099453507365792805934061805866010534883621145856032552485188920210423584829882030634993125475948919661574771942190648545288958944773020032180879395554492570990218765895870267713633303823881413699695094543187072326847840575728229408041004403469844410482532577125516236993923499040831124829435648847021665483343532944247191112267666370753412444863737676749277502246569035264665329415326005287233180415546353255405679433532264225059717105273940874250206076515379088625826602597828817810415921181456062224910992836636087501056404534058891767677504602380688736359262175471428023678388143515955708704886186441687583319438715705117292788164126549397395991756773403070755609575950261005421239645110636617638594638712410994949554811264850165058968211271326045261579789461314864204464623589304795555520207191845347318775730562067903430437318368302973397955330527127988946412751539436516813894504832531631997305113085218273615554134758920431685825265252880048725754303118251158832151106751950028543864798646836171189951850201668206824580882894763723883328972810166896902504265768367744712249740068015969239780708835806600291545339114360328592893604039168148804584589796417858202910301176737250525289840143779859394658280343167468336933708459140331883476359260561757606980780802402666457939079664533529496825130166197760947455492424805274549963060214699543324381845689688029669373776561827129216733546064466874698382929594574168710428008384063880695024584331717365666205969888641858918733128146178192586333314902175229760118208029889432674122171793091987657838088373733411850669725116140142601866297716388811397803888977485666054925952944158606387010806846380534357819035591353475787633791536687234870396790374511045299176974900579397541156368678600469543077882603787105414433754903293968344789444303481781890964233254978999785267957064930659921163004146208639978202322611848258857397672896147707442637986923087658327221150094868652952499102923172886074206762046146904261937747766863619068956322004295813569605681949508712469359393092719379921065199924113345960392097944482454693163759853634869836131195459868887089008967309840280623742548416556448808004485641826524496956482768782058268724485460022206633138733245214579756357236409368508260253503203483940994303847112992387668384220684716732111871248992387311337321761316952793558413217510282689178159728706674013494492921644003237054394012624847820816611890752919234994229363580405317167712343284699095603782418450286056117583277083930678627586869943254571419656155222108177166119978869602091644278816285545098068030550949210945439284397321865037046500761267190124422097307244766329237642249789645871828270342617836137505073146392355380961328940459033850699789064113690023345643034162201033940729728906594272494905884362871142557447345976034059920986308567497972933625006705381905277237438189356025340685798589669416427375859347682976518213305029110819095975225255781092033649812187639335147976039876254166887511928545068271209938556211760000268554818394421379661310381431183676466288534025578157154358019143123189047821733783426322413233885068612856555521925659936074627305906230890826021884076378492399312050398833616334684055468393412161110616034455748317993401994746161218418108159732943064080469187409417880964664944164332142320209634731855817256453249673138090160159488929971880669146328792224853470912251611148947351043381872135995643707610987631850642963909112894289085696950114987250244579108143169088261755812783815841333344295529249350150763736858591582911330263964607303233638638870670570424186014071343022316398827909973501789017104445729704273495309288027169999717037215835638379164031294704764864645542930900483310674991561849056969698026347977223056238856001955271009913377348447385487542302416460885352295213455829577503953892910360871997314242398063354749286947763259564896259377225633098931963572642791947968448015131826890799538367313389778017625762166001413764161838846334861813976790264752590805517392173470812089767897155024201361104548491207850054043747858724829778036745229072670816144983949791019840369042096299148396298683604588317245625920383675853749474368932342823532797070930725025091773773712937436434260204535268183191120877263348038483971444124163611508397529679313920529780488273641874036765630148547276218973987986522944173606179825941592083935778027124766757700831873966345294034430256833608412057795832176354267522286523346338983388954509086804462562316228685333850199450546524226991907007588622252715331716026308904699824743474929791215299984171255673693458214879903291477595089550153015964620566787709844889190339150845019740543449682478017830707669631450237701647710032271825934277623756870641187875137491983576633874495772253408215468193245297509639374261222929288371765748264751659164498842687450611686671931103217351001170083431311295663746911368284556656334353861655827050442985814140776589078113678897727522662323253009106921391796229140325417548615386846132949823034987868163041619583640392390115583326912794516501058741806324793901192658623411176282305298827119537167872650175033072752221317171506410791006641202394915904294820468618807203227598177377467173817738240034611300489776097125416405467577335192416086421776487765718515056104352050531545787032081931726621396609778220959006783726811442910782033768277800367403224179048300866121958252827728127029237433305537015247248285027698562721148274343591561550870855054793551540805701953534893198670608199924425485249919264597016914498321724930387527156609961146991106186341602150346861364193886921302039750244857229255497411226099153388560523171082780497107634495524687052416948653362311877078270881051362896135300043411009428558274857989396957447483201471420419076346809467890138127372355654105492696768827315605932842302193955177777155628258021456256456558685586713904153980328776223684316141834780169079764705509124702481396915043766341717127409290202991150766049159059200765676581462414610484206504064568562571161527008866656780338705888584259230885299282555668710960937186519102470857662758209304875566673059418519978897571939614242318901064199132067651724678152400654874321906996707386082562113860249616828758198105120761168354500490869109757961221342701654510445255569187053365368762567259657768374149228857841018202550655648110376321001956185198836561959168170343191478968047033925588381341438854472529400196127613160483642002081399961222849375703107536530835515173145778883666259146654404537295744267964663718611930769021066810578513911474073075265730829655596093807349778635131332828783009923243818401164225960791157312160841026548097365078420756835094073764020697560875389488637959499782612458049391609866051805640199627136868745830061750550299700542860553557260547886224153876208750037187347290005973797797734148723257002102437991524227806567757080004603924859348315659609516931873107038833365741500476181978482495236234898671027420335115125441187736027240436348187796013420342320231122323802162684852384889754389535340337264066089879765534376067618592131277821416712749775851964649645790315056389344618524338427707589133063349172341848968597154797387399848691443860899336915884750455196079937628998462869792826572318616115449271310677037896978359438839539377760067412410024706807458028126348171789980796320144990007378952115798963478209038213324083917834741332726086385067423118080112016470302005137248828394048298591918945102483520648227641337023906956378305047086177892753297951982950649853634815283346710744531666596145498771677214291413254575377234735508174329951878766955917379884079052251694293764408886803423243429038501144936229605254502584069132342371732075431132475475952224500477126406645708532415282926579701758199741180118020860297601238721265458439130526447288983534295151217885228364969956374831599972129112979615152258994039636190720569503892790776848485810326384681394350741173267374286037538179842807468745175360652705796356025849235127580341229478122898870076330167498330460943413690132257108301153133467449263930553898440859226288116870135871638002373149856938807726092999035552949240166147315865100199446103260566890610963511315917781287087623161010131428948235914288509541067491729926586316342214963095776596766294435745942431937946877146090923317369829559263791424082222589799834598953638902080042219502560545568445538454202809474414003570846753410234132055299851790692958537813766928751631585740270412183673049842491893869302025987615951469033649049327645620513483252343623679523023628313786022685328997087486529500955838337043461358633770155384876465449995073801776976535800818682127327366296480031598280521142259790864632335629004454310177003514635846146672791542557185554784426554009110135416618134481641854944196807670462490099998867511501231188033233119428612787931613363521875942866027740999579018033731603229815105512582633028806702830029886868035779019956070820106461336686765070352745002246970888867273442577095743262250470538546228249324276135170446698115100986073649817197335386853730895764693354606664148314993239066958884205678291217248932465568196831144751405023172375277467791192872067712529298394008261590495614811429463636624523478901945268539579636974797599016692729007010413735243771788618649311745298261392410552011603072630533986954483673332183629318475411976921572513734376857025675861074331141228057840242843078419267304580953624396713493875316176541775197483124341854175033929739557421361053392226650393915325996442959752855883597433376311842645996343926208453984517911212120740183676891224492021964141697391607446002736261732440923358367008117812503787205642584894093656425328795521824278461005575842962251477405556460735693483798361726822415714149322368007523930707422272307545014692476669262703597034612711084079283059558770416269045266774604652968551215418872649661615745153288544485738848955858450595875587077888120467277395436424922022842324562628088805834214315020475804949738672363156457216633399523723950851964677413380293981498601138526714159157472206951311839590125592437569952369796320537045175733944002070822657562327296657246643623558345303867787878131879193393931432200325529543064161318970717248388540548374218912007657582640912124776938129272988957989028294790712868917019118173240088314924878062294404628067330755173504117278994692195091650222033406377588228788742217592895098452737101958250126792386085455361157381897675830827543610926502106055429753104427393842143836475495417544015247633827053031695960749608509581756126330147761934925014840891347583403587556575834612561767068105152648226025221963414175840389711843738456041243053922430275855290060360170574914947553079796411663550442512488769380627382013297402574729461139840779816114423615997957304654657266858992788982136361850873408819823337280138422567619875712181965456882529683107145970210516340340967516946522421273842704589970940573054895613182032412466223604317374300270050927258375226758207455055183369864173170390653947946686764013624337894922885789488169625292691710008968972454566331130622506829715548507202373332718403884372555633638535395655538140958539884850706294235040643992482859716805987949323664143849904406101050121345689733830023289577795990409892206057428893574529572894372077868531337239225047728010752097821633788762280000423642959480351782456290087347971029645566001005910351467778294300974081558411715700339023482547678977017937760511892793274003649405477317142621144456348884787973448632450244586585409161815230138355257692579971393113195133148074647961874246667610074656880702362325466993893297901946006759574423343471619150238801216577882237718344428628074026294000341452607052366974850045322023490767612825582430768069305137323838336278171387777717066802061434245694222301535946437987309246941464242429627811027462791418091479331094474632463819435137095870286381369612907099355060321283782116761331262461482926168093117267161432082933268902769459044723434777139091149315688828614026448735826689917372443546643517358214267166582518911909691591947137490855580110946781120188208283859482410809801103535309692867889930443518669906082726475950485813107751766173904090063837683158463662995955556095608685055543663988061504722572687395477687806313586223845942711720320822824756419454662194165362600129485308364366188485638474373947371261468968644754252445613030413678281103506535850536891608479632236493380028809355646442580378514857402026355510038461557777534473132852009961169352741200303987824707688796454439818574793058260665086317889056666629753078484211776690990117339659201683429712814227425080929325617052959782938633727665944647615408614634093197135010426032714232169748567896257209256015063974954156320554981985580682148809951924592744628774225937119726511069575641733896866195471140874061213072811395968847955998043713467458256170339799421190242040283425460723175010403641318415278562284403873345401484413648288805488419198384134873214358908039445337411836431177145607742262267464519036326073055452059754447910299916029717669442859070666814349324720369508750356417409644696053650841082519162376782034050511920414621273958096396860604965443723052844996181112504832161367956748919948508733604353050224186106549776640255444100625112005590735381143025348866589142540790416863086116791171277536803018702027364620584777407852138931697272214235167193172485462253843493220848159743608456925503427503263896130694736666936595524543972405795123049795234524560070361373404710685112878377439775151787952108936153575994670661219966493554379229414664149239964500918661906076412080034682274052807554126029411580563311245286285022483418623529707658533780883915824532008462001890689966427888184884060945236166647451626194674324186576759924031268273048164852763361968080562196255113844973223569933763644061954398773522059973318717119225847138993793973919000895766075396663602822360033269438818627133823161110717418717421747948863414729745481640071507310324213875230007920751160770473590633324153463944261433376026673327525040790052250175926082311710775492834811149931434296529539434808094044716507540939558965705179641114076518603816006857136740599116696150797406111371456253154784920412873063747337310572788172685766653233934045934738335066923423605114377515788939458428694619596820999068346692422432181383853287923870541425232480105420029478587935578461143399748404518852528652784828823753760314033442411662053744471938530779720941609556152387913025837475243582198756046698862626293766960364561175303164656516387677563982103631825678026946550468105862782206052538431598118591635346525113724823889311018159012029316344430035701238677958005236067163785976285149320690403393421688364400389229522252437013180830734522593210290945384353735232970415813498376272758786599984975361922418017271362475660579352375313517980084890228160657159716552310018515442395162200709582357581858766627150864789998170458920250553861503699093854046178193509274431362168615864067257834719568839147645552506225692653503458563019765942303249526607655356793122939731861132511585686040334663481045479945690941414403335267634176727706029964685031852431321426247385250030996382678536532236384391566234015553047221807331406873143694207559088359392317547532350016189858225254236297070612562811512735261249420741652523125280939780805074049100297199633541283772812962209161110166045716399367333216970029454579778375003075050920419977925266452001624595229416461651622881157879352164056797724579585417817973174853670279511129910830074716938012336030823790484348566708020196152522783892171839770690256396216816134845242585317997553584871374043085115172439396588678924633962440389572965043195694347267990062034689280170469441614899954669224662220347811997185276910793711148916486848422497045832259675044559789907578152052478467836499364418768081793608639310647513563581486121283715873555935529365414562376489909829688200967905813338693293625155010311686332052193534151642274562403158398112929165729416983041932745669723436336118573084897415098394017148510615126616777741185536323608969656870286192917828165190716831026994040089628778955879419663374670452244204544745386302035907532003970894736138364596851727982277791534716589768381504143255183820668121224340992307112756255027350014199578024312353864947240723233392617538106905903556821586456763118492070206040221306256238185356146789600044581038689369981769524713904410715111527164887881841755391928479576525619838045398816378457859542537414732318792583730081839105234334726274403958303155667292900266162969717472124107518265869205031286321053043519746720067302858494092172848501717376515115127430305616762597230621367296160663099931137297396099924471339383329517284428736654503347218673011996957091804969418095266245286858801765414046676104550864819616011992923071739186429633011939806441393932689873748743787542440765492563954311718553519662862616630876013700118520201370524960924023486993939274852366744106544711424292801536093501559434254436807089452290420610611943668225841792049371494841921960297802241540176988273751779572731982533856013718735722354923182077399136656071789931314161182651483559157267679348373393417761764970847314028558252912980117438867114256176619879894909547074655472016629701447361323183055119810889368332336421713385162020170759056227498121059725929672613487799377075666505466994604868427891543169612066731154793522177226980036368360341140595413128536738272557050432490768195064894665654145328688790888875832076608981389742900353280840617160538640402174882784621905534588834130447786866185341970842556018325310657005873960791969566942652062489124229955206833488709776010318755710490262539224686430749505060720192144401602539271331911756186446549360000783921773563317738300601955534421542654056123932975298291774926488980510709042770670917291175099756360183642678266998115309867284619445699349663716090332037984421618236455408096763498271301792813449742118869492916529595166467847498538675756650490033080040451047418970373726821727792609146581164480843417358514952618861667737417301932941292811400787690535328976859941528732165942980729759660105959480674468471910665504836554372195043895363059552520022291887514542265628461053294257710444230604408696652249446919652061675631824601145454277631223993354783433556552777808840839961479793327253714501575282172352921522694637202034577264723784621881464990215733286386980425952971141834922605177858166264493311931349732809917883008042988759153051929456952425464298960285767713237832976912738193411643909661763072098498759634307770885258471544745048919183514468356318817380209882838002623275852614961961759483005894006976650121804945363733652905951749697647591569353516422889320294524796105976927554314748451296803037415463483946175287450298704178517161167762192009584002669226057033371567089819982337176283824954369000912007511616649328455994481726924923208752534545638495490823408301339912049659824263609435826331583781177275372976703432061277054049311526269434994673322382973249831123544047892567623196757659422315158667497172117564041126115911310777735128787776055469297213847879901013732343735438538456676986291411048691175680678387367393426096731948653435766234542203788970808649930518384481534997230515283938338835317033545254706039333564340637942043664080787530239355866513664386503428241322696771807263533657508752293427187233084834915625411029272968524161603829127177428536794324779744705773363129672572268661467600389855572407097373123676438857085463435284376976038364257385266947028872503929568347875718790790411135344373011305869584730945995045357712488860603888624017526212195031407174669382544743303480686462384613224593673573357308245680720827586828856149440340927285211066282807856700841377629031355151446073010846961824636312864132243470363508029179002786371518410233134715046685954123745200430677879407322802033104004812048397289791228661402218189075426584851045007552388243186664799616321974256464817826266367423552688002781593755704543872782433400407556448972568574879084832609892068323766055256303050232794914733480713736478503638545427034157418494671130540571250351298052710822017172040063612924599212906157364162336674525303535178067953195258067625378932285769237045805159429428843238954613210524284577339201712346983719818292316318194475226580768258571265029657880878041901389459685206244859894192987360730232063514055981433889633196716288395948620208314200241810008071100294256892906165886281844854940322402415562888066367461415636943357784359881259453351996782855300214654316448862236206714716267489283130690727120960110705892381502390479155085153394897173501188825506084448451409263902308502310507438420542794221690012392634563023471621753344434719194215828379648580320312547248859184005812723522773890708468006912971974284463069616207992338069374786414202052359313261114832413130000163450680490695857861041123703923586774615412230821448566570634662696672547959737042521357812927551554390003408883534330252196965597144572579298409649469888848632608794506634179880242769488134064538219553441018018861999827533707114899941726351406746382246431895168283277653437448326292905724910561182297286058513610476741457832791842517545511200451388431773633290335558551227314323446602681102977193298243953668196550257732328592641512568978069255875387878017381164451870818921513079495751667645496688936089098340952775886986501256919485395166691272792646125266493471635499611267908402002314134843951745742677082472091429741970184366738741855823900561378698821531657045018783329540052834884833290328132240825422975959082406817862249472076141788977324798174322725761305884505065016788174353698167007393724869688151805972188645408686822341536435496928862440762878888299104628409278759654341449884755696279877143895266872057837480270398178575785537808223477738973667702647684940018836574851878495056655846272029228122031668838834034488741293235648476416679086318591108299048930752310974957160222022352530021332270653423969188905597025456885023373128499506189558986653739778488603597116021577996815404947148352524239894698695542566569275292669698610832757718007956841794007474289097159295746318110226119176489212340874179384450006128340617455544428716106962198522031987863044141327592205529397133309092125525538999300605415245667098539919999677776717038785054910843422181879462675372572264716830047311710673477347382676551314315725331331855185650818873506370464405504046743473130985119392642221119266501655342748386076503447073936945463484040628625203540753911765531036175537317293231950241949881092442337070990967160187222706172872920055424819132494770510112018571212747050815058859911304537923676306633966366851716642151731178104155981983735918330195164583766853709653232888267261476088305422429870150799707018776212108024806364281368602632838954705099993692600298490723328843061332351957863294121180914160244276490698681146229289599422079503754568974969035844226946143383196065470352833822083648705804082266236794580588990993123302280662093368224180814246363531362792297609344257946873678879657070295855344193728697134594907530069892096777595788656650028147221215569427993941735269664520318761310660679606612415398188904693551993045334193816576028116590289972018400220700367679763168988383961439389835318967944792076345517796801233807362543986760201220710545410402209020245164163359393598659804901825132694990558655532665542196819449940360385871884355453149164937961649986971314842194359830949071941848426095024225073458366481677274860215591546249941094355393200364195517123820709153517566566123105106147629239929230026820846549959628472644482387585483499891385934850012854807810674576787937236084694378376207141941188638978237433903833547340758633052796476652578889049087433359599746354065516010246360665452864658125157685762589843295738448960418220099789581076585828593380464064004817851661478996628799259946682474131663716436105653456094831203050928695080357504207730912820078940991753933412603068334936999571106867530659770238929429131438044273669345973737817456362479818010120611100241270674290865992715030741130522982421454361387858061651097480637230993649569790515660219500095913790357722531403925088479742178425327582894162171569964028431028515850444195790007338674134095386378504197688551639142032804133708912075434432145608663535903434919467995568444351875806649928337859211161092823787232581839510936508523011210972698756510911030083385662847547303134369517909571217132918805173052909244130381216060691235963092109840950503599657073724385232302466344010739969499907460838670575949517105132910426877514306703040723756136086174256066248843901342713899505436426794303207884540526803240461916221439028605617320953360534987494327535874049790047708308373643514797486436299683668688870286389654205756637132852300829174405394403038457374501432327865602087436832946338059569870789932747495745818732983913484388333891475940071690234110755437644130269489392708315522616368007145563734967740250347823827673272649906731735298020579718300872101823582617967653212643659542813739823119933492937928428369183888516602892958756231457455554109698147998973181664887996373090200242636790705490268624139550692681974901125821165128380115684147565269777229770218754594762012275709561715978003387411388158064019271785845729238503938141110157806633967813260963194988462578674979293124736848670265028488847449615488182676393397517869170148237889528545047196341044573580784963986753702812159144617554049079097201031565951175067569929221893041802823927429601260407356966991948847026180931058275329949852036870397967157026243634805428810423050311371310368841719752691783533179657034101811694877333287521725092661665404849247434328022056172197289151326882638964276751058133290262147486117425523623524225163027755667954951160446215393289162636415097788507587033579166884975920915834980601779908680414274893252488153975547261650265511547504675218083921612857249524973726495988826355930422182384199724756504538746804334271532189877437240463571699272055399016033587875071901095167086457120189967012098208722922512582754752988054002101438494483037396338106927448855995050887098877043902656429403021904548817860426141195609970656011268248611234820061565933916824240359740909950181020149623069424681587053467776275696126657908260449326376604964627366669232862734730128692481609665307038565006499077028926103131486681141197754621898127499985144249909769266700073469890183337585515178450589858943798754746453829322959986555635454860052252745766433049098011892622645773038396133118335665954537293173482625282830176678333213694299062083940198720400059120419867477981692648747099007142488239413488842020950307771289775696632163006984975912291934307454505075233520163625932133987803108197096637003298506546340781185055251538212408823791891429313792661790270279645124710094516391501067876394428928993130345860106102046082802286258138654237795910336037428217545344578194888043209957465206899464214950743513713281165270029821960556534967970645762432363920718186004283722445350105505117187826983014173036729686739285429423966179286824096353564021868514255644360068829203180081106090897607744711611249633968162404065444287502244478510056002558039469286158840133722613851341165024802557564242906431746536546457417299548307883477601229395982232400630188709862468407519329602573648121572407585851422227487554316723826043267092367726105916082005636217968312083644998855270998364411824856791983457237298043128718469551127968505638497503099518502570473048651348814546020235780659807339881916341864659647377461634244129397946902326081503445654661079100155156130155691929800383321056006177363649217425664695305991341759931157544850445710165621772552997605345839007128256948597551797872958250869169062553434492065850347871300789444046070416504101038489881247326483445912978098126418437768475316196658011723935701534003866134002732723943386608046930086890534297287707982842659361401998023375414235113844228311713532159006202319246760216616865095391731560752356521755163471417903977982021298117379530508888110432809599284229218995130994199174153042276175385742890926366452561945729346582200024812753764522597408484338426062447094638664334935221000356234778243830878590990043880596765114138928490822095506427131384670813949689043503125397421966192265651943021110579228168715847787243426535114832989455914412760429573317792834781650077016281432575464368909107514838592356885924317074871808704374673247919364792852389018141081727470817464007274216517821238439223320701908923117135350316811327529389321544949721582401325387715689901039690306026590983717066989030143974423711700080739602669228180348043523230346690423702236083655422066259079555472326666222098603206375387328779112032503697757233760099735358422967891359519688157361065440852247730060730955444811380128045383581528647370678227923535543039826129987260329980815997038376938911458325408105307162246503529975900340548606740444936508014264881391404004975251847042877576133266629025496427735078033976565511083905937001080879990777917172119004846479140743133053379470236615883223943621245950360131075144341531633672011048860005221609678342263306904847694856439568987536468146203170548003095777254363615970282793494075227691396780105670235834405390875165050095242832128382694212513556505245105738117665172016864806309397505340931173704199296310890979198106650488223836580996847962827668504907821720254113292037876592923909437540989634238336789179711269532892852942054335575215594844637418636813664608874630682497767378678648073377420745913404304223091717108698862909743610324012608784836114400139969958536553239665758541828237006914113029133789010794215443032469017135162441793688158371010287119168608200596668695402600023749915657348952980480358547449968050074331505239714564535536673298550034805815972591004203117977127257375873509844929136074859775171398799875380128710697162709332940323092772474940275462002449932965556114195171296688573182860492866609492875464214394000955172553382384132614437755906371311316211877241526702715316137908075938588910507622115128232186108246863278605428269088217776587687941040427054875389451443818550865749076277337474847913689165098587494112368193385905705171455662970238756641206384523108027912052853076370390075153474432561853733150319720724456967284548936541069793767147553412436724355536828536325510360558510155163390391575627100583028407605914072852681655156537703266718427400947765885716548525006325799191501429165392209132552882217759035366451954464416059214982035023419050684389114613049524539074041003738926908458257729789781135089934102263730756108426869785592053307309292284969179997139415282085941682561356705718598296210718737587261010925656462453831614220202477495133199981576888062871664490236850268409497956720748245905404738415342610033698684662000438301503158124094867519223522626914390458587689963635283394645333692579871303058340576543838010767044775039356957149256573493319668853046513542678089897457870301847037687797159667615840891443787647792606061274207699439496821487711176290768440083190998931843788371797742098683916159703396486223944288779825410246501907607708363960204165092525892624697757491703372252436092811131298090986370068674011853629489538538337642795182772550598567326720209331104629690205569847114982108633220774212169047488566646254381876427170494360358668958858921487701504436401917763744798081456943159336436548864800261731309065219965630576749250915551999390205440448815617743433851694901260461285747538793520604403487294082915709972668570788445069990016904430202316327467975745647927295021594107746265620455646092951940230051538508356087013250844895652803914328126835381673045766875923923252540095533261992312616518825290499340715935760483958419390069517554297456476035750802334659440699674088467148124856001299777698220451239739546697313225015845039084090805429728387908668522748090538255862403434813686681499018607330147552180674281615158874088143109425728392792831767062142683328388786214576107308479774788224823983826969935697904137585362162367709944892482619816917424705646696786439762172241327409380711779636035282111004288697469596060503817798938630233060497071263020811678927043479860811699745038402641593112318960956140546767604737437570412928651333925827354469452306338733465187691531961492845084678882436785406015598742523478369171053274969970467277793527113118142785557648214609437578310357565732706751426234163887129349213353920610248253733558910215767180987752780474357439879058036873179529202997349455741801033922513089399558703220765950330924146987374923693800325601889989201472313093067274727465859246962793063450014817798442845895534831981461950398473103283161266277136902032332384110145932108222997636401978710427568875662818052924801764104640674462015276092557249575979571577509684950708050231898632215029463853582031236629040020274271366215596398078827747189064941162872738163334838570378965823133480567565568958500178920791256324064598922822716916136421192479654513248154372087906246511299551884832793152957710275577551012055404139507431211790336034564063012378307124647843822544378851312529020090858245951038581142488611510203840114592323051092880432051911774910405502280687903758994774112419690480971336515965667555454676307361869625768498548927531359941824098938390270827968913915358707623876477276847437761868720213045681566729214619156840180595965252180670282465322567865945652431949812729918008367966780633704380762520822331546859668399349464384406751970864051345016349563055773153022588874661107112108015948166799690739194184766929451194257396438520115957222822632467616646617148143100495131571046404869633110878640310892490174245715395414943181351547881832591717560298981530623625693312062809946655807474180184016043959924943607907836696252955865299261468146581392168017663689190006971883796415356702894690806592873682086666311183686720728256690572464363913583512262196057910958817121955840044674401151832750569425341913794234109996691596800132105532788761324920616139912437455027749603425764381458316725531301131222884844714880364826513068312454479371008400397118938112265751147199658084199971015032063984788712717630724250730680486284484139564676661027097669478383910444609923063479637140946419329542788679032767307746883115211799210138713268759086627506002524966927308635895784214363089127879199833253132961451694897414240596131608913824322794453753321939843773451000456343192307820083243299818159053874097626456173205314890188283022628293775428910109958685038539015494052606335718679553244684468635324178356959884209622076788915703685046896586012863630276222593243803796741040745203724526950255885475163086011355516917903863156249926774142048035061975176132168402226050049475966935634585977933718493018841759765609535649490539965490279760331435366462808644092857306004468602416456420551601132206680548338052393692075624687681152823083939645854530142877252865224880811390912209415620416097149285594135784425020520075940380393422232394651183912936993350342258177556267789824216326502064079810891209382252991099009214060162899738518545623989327518466829569818455667423199624025413125496521096149371301688064138218767087749761069332913390655292386655409396468589109146143418248130375210510240205296411994070903254901856395169815559565483792586262061030316169631342184576559452381347535919998964306959558384820416927474357358345467265245484721967950193055119216654916846554161563635659070631957153420071592482892932035421945806103867707440032241787248699280572380167170853450857889127278767199964995174111168332447683276445943471241451069002605367681748143054708162470226726759323090616764784687667238540477009155300864848207061440979944166811776190310825246025715167319979027335109834114045671986654205231433380023766023212395592909858240905264733412593892953822712366258174425544794613294961587036933614319495734196422574863537865228641533560365450734514288600671369951934365638255523259493529646545014727839568080599730609839231149029137460766240286854863686620943751845097703728776311245811894865409752210929239693774973981788392713529497804813361823427645165977372660503545613855161061648618989571310776084604352048178624907267120743648997284304528656275500326259026435553462672098067119638452178984986876168965798078216340352753063335186126430301973977682478235868715148186132859238550674818939137408907222603402137566074344329034250221769593402264127954289388310163589459498297158279427561799991801014722382763323662474321809674909324900358892801132295774207902218018363736855654246558529701574414324526279735891836845289963501239267293492378710768730212045960563674884295060647365273819878476064442816100594125708887868086525774738564487173743364215136872448562885751281704717784061829628360664947068571213579609371986943887333171343015298280138917730214855862987505602969736266243277092211413692441722568416173358012627613600702885713489832676185500211337422290844408550085597245386068493366495467529827483363522057697593315559471587030065943792363892368818162421858618106879175672602401716302113842251379236734899065924707875223301269686235408134854227971511546001949760839414888872355185231309003340680648164157518002518588019767333417010862585852681027291904397552860185796718571923237959312958748076960409863142504355874234758878941035396536282470821434626960656513307817508003041415610075133704972099698311029175582209876023255291321002795890034711359780588507167423310144655005598998523885758213318043255200675007454074625881999347144962002184289999328259511926277765775504178673255873229665708039739315236807924773494812621753921830354029835502039807812081792340435855474245590125200980247982372283731778822977496871698761721218847326888272574362156883212489159232779962736441403846601161426681008799943354608316996918286627136934131134785265238440629442624449776066777053013942365323845547488448030237398386846648872296038639274455565221224064918913307317440818348947322941495893720871538385620388803464403798428355374454646396549920167800393814006459634716743056873692084324003421182913123354099869169999212026467909936948296381843126607443617851163275991449192117805136018804823252056246439813456705830136956550163417538699154644827490027024656357768120246320363538391297299784883244157344524266730846507400871367585512079958065491837753468675936975716507010158217741319849852855995196718463725809372467445242740196029575958872659021619246421648569634576964722602543200548734526298342026029713077100412246362608372361086820139283729471626676535507795894077113790925932306264898610201295306119276727990819078422873769166686756171667701525342116043848891826781631220031706812638040685169394558450069614079278858854964001184192959536353435682475311140932775620993746215833563310840041632010546069820946687789843840300995028490243486375789224074892645763979795048947433023813714996861036496508551272176443800274538811337505360946075817401852636766537548862519457758552838176330045228031844211080137538056744920653161090566146533317793255590625023544705459060810312175861781635302133293781626584781650217050572392254937267004837326890152732134890032635636067619573894646608857406727174611070944647782116208720162294778384028361808058628866016865634273392083137935496029973486821969818714109995399351190805905019735620881572036383563054218505852549904616327668394726487121849368967639140310840678004164077869430590740493870012306472165764262765974204340679988625830602854226245603848439779234213499767464570898538292872501894142708744375599311104176312171123518023217199893351644343930355270517109811253951806386184057220707095207121163791299676564546113705588750999675126994541488827343229973050526437285911548030129707061260276357129874873283693315440392258119491417412445764736788153399125611537694326415895487111248090057303359682701185689587576280883088009954749016699486770675121557084520727510224193345767305661342959659510130724173991979444040588371451508284347250374359401838800650340900989558902101271226414183097685782714048091260443759248671968464881427763073325855482974158919865648987538832382772303918394179594015265027502253701162777332894415958315182730020365118216143576164635573850749395066273438843551216586354164191017164064272885715297587586538728927963569090121117357386715498765584600782916421169324745203048080745434107960685518437043505469042824979094358179410637760487502036487684550887271264258810242886381795041156073435345059454894477428200830800343441071413999610981819502618154491646744442502440345482928268825784955695631574440902628021570829469881534290821643051594522742202519868653328810149073861660219810772054374107565593019345977190564739823630522191941486390495130114590575645269803192463000999435741654501671129645300680666669088647102127528365344053325714559711097427301980131868936280787378002111762795154410328663676285100490796398265875658067475285990815175480495108743900241354277456264401482459014601881045523754955643682599266931817389646249891812382205875358424804685900803404673410532135325324608275961150014210252908689338499386345763481539250876456316188840555319014826822963932421071419136222293738909598064011232286598350341190351868567954853375469075922144001258368997580755583635359528413282339100001965433830726520870709624619519905301635144205390115353207301375754513585587242341212316256319955857169795517229611214849952308501547099841922881022065393662917758331386236998503955345499387934898738228383683714850386488330302360041882739082968043271499686921240066613496564796162882961682806874947169103387751999811535311951373316107465252074505251484439420226880002807704350035096454202563518524243798899968412388841565029594911072710150281727521478018240319913121159464307814065407800400919876824719635282943531501042207957602746383450273629108292822198284877817527307582689961080815848594774045057765500791168424542390299450552637997785648021504542748364444891257190933340565379214425293488979167607306460999286095712855563054593923362302583476642116790119470396584556109917125578001813528614172098186712735510544389949093659681780241482671091008988145107948238208107150125380997745619774575737223021490897643013635653643599504786431729626329534701202551659643052716329163107420720835053327662450657633742706514736368903630625854334849800470831248425139821028541390067852036050526827972697094383415137488914840376044222380137931261083736972317640412400231262204115945876704966744841382224392173206666896421372997612480743011949686837594644319774457778459294412821851632647958870132310867044525445163743182913578379445050463306716559535634421128137080372599169723733741380426453737370741311389738396220532095460298416568616319535532875158155875073937894463278323257652486605834157673094659684756678470055867417427443484879642374803368509363374387514851457474195607540155512443907805043944008039324063182992410850313155602806866092167273541556266386964819205496167542503074753802144624793524251475000915518069079922748195230742862243732065361906815942537193496372377592186258755545449348732704614109863590212783927484190506588170561903660076347274801985436504230711343922206619033545615303718561717515561937738707225322293414199806028625713410484199141196512469154357622795878439376425572142632629005473954022996397290442385847809373828834517734127524363428469640553018224709768038519860226210937799050094478880185566080003426268501319394072377701330702077393110762881003097398358710952505237451196970772234938016618574852946826661476622202643530849819163100930633519124168465731305977060782891513159530862000290013433247079612741686275028629697901171029056160774091767020212843666737903596815911589973660936556612934703888295411677381948283480428843752295913049517650892468808187897341424465793690496994594219864074895303148886941065249283794491888013304398092848587584860475680065941648799489322153078827621291661092407763008281358112081984576419816575817637597410803579338127826667462521642735801339819786936671915268020470069806300867842410303537798837387842461361744530605602712356032791241092150461964413445756247746488830616819181618564775736413003638777367177382113515155418746913751265905362058145134696706616473705798766590723424489507871892608200774241032120491396151527170180970506594999579822276004333713019887063248365599638953333925670350925577900501145768707827150818219552556164935632130387068111484155269021798298869952928723057223405188910157813895174185615796434940856278407852977093911484923210224359102246952846432758967569904822025841085958179192711484054816956761974396703956643883415710734600340905190866478422603707437783530215370180211045762170466021568681575271310608611048511419397212068156434792767061232033398063597159652373323637683375059828695487894843355315897005814752679561334034104300126307837824326568623421333518823943039658859704417930095920041009940959505303394404798006534225558163119991598797312687069339560783299560675733109292950320469771559284274248452687126439434877144895368043044546153292960765550535892983479602275205001842155819844050073311803852759088885158395780126109423920816260394435236682390934742887802230179606680861819038255366131251715429173769627736143821629888983840291975969304557254254230379278415047964758552433458152417644744637120583121774264533514389052601044833753680667252181190966184485077852055547465089136203625532320137071289045911639847614636917281592367927750135209519004889741143438312230710884331171199469370024163126439048532191320203135650225004155697897783700269003508990911211693858538448941407123552925274079852076198945948627853588424556548339018402380090321939385576056101814215031030161295279663479205628964509120172157416576476568045251631201480214337234334592261893016325986548720147804174711988528834388451910882030932498753475842900245837438942004764780909603240954380882990569830739471732840092714688303351974827737828319922795754857889481704655020803701029247576205941530233799775879451153988672654765022546161095420929242303799040148623707885029422289208736504519151906355942080079289171084379595865133385247460162591852510558399793557986082396201474430462488808346147419491063348142338545291581534835948250310385409193217880158314913766135755488351152655198530152025139981161174085182446532153361541481814827496504285473316680627625032382610675355770182495536684219178701200358642922103299275901777102980387925398150931039131912230779303385410250627586906711002479001871632369505351580460354913503981761240068843573425827288072400099358014346181837847071966816064357931729230718379580935116016022825100473929326545758084999896257994353058495859406782005779910115817151544421204125857170658243253176269646302158786335392529464953467687739674676567861390065495431752058432905676462929359801742196823386788685642870354801326848939100952897723604728216478471914369161731033296025448352997802761460633339815505071344729122008245096750231482435867749098019086956173710424915216731772283822560875455200372306979008472174327029796638309219981908464481086448325752440775854099324423259738805680624260160669062368663946378418447658697325591340395772329004666457070305987241724035894734621754495111386679787906566630192471914153721997709780927316492117778618879447898118750983805616395022798727550155334341211768064513764119583607372151419781640844502524407890534862721225217153140157846482779346955722039346848488941382819760525020682097454996090569759047432184936492482189752366284271554575980806620914712571946951350046973971270472916169297531970810536930983139534905860400512457424505781742064840767954988743786662641114235568502925420191184345080533678480818415646614641576909872376030273782083266748994989354566518953483743092274683190665561243436795115144596526659553635562488123320627599086499880094760775212190696554534972194813974290588804749047103347016219406818537407858280372916370836043439121992797021430828514058519688366780674201711509231504746482153987060818445606819855070863155134610716952695583470912484550267470109312311871827266749945738838757722113922348137967389768351067871617767029068161579266278108330323438683826457756194416585053426689875776023249258094476241784003359698575178906114148080770619835104379663590770930021984856408239416615039897930142765183510953209074397162352650067163308106046502567650790181151211815817059697612139606764330584173523804651189455889062486990212392227655924237667878532146246217421825875312158164531958848678333949843890447395376385221808884235930861851538003620986853293665736459909170602168388805968519566415225315006273827951331957564548525801262185060140402298114229486505745940129411801016693800792910312135920520990092579079786873072145305016341728181516461193143580834118221874842562116622424524208697415015996139937480969192774710254285788692917177237878223349028202622159230328322198067146936713113283978929331062026661393677890317566332786631728136332578465545110031360255017577751357845617253149958911852548590032441283816731567611799951844587941938004923854309423540086495349558245507005508837843520957571540391574413008394245262416708225967257478097636314697200096495513950126352730284363126971901505406566399733787829319079226793294623959975220675913815004378633665494731486277349177410900935269489395348436846306286148346967915769517984246749706870470618446160973388884976995343773480226163710280017775439166905182414594238999142515427076146516638508830348645495308338241578058906908335559836087227408749998555963703210419798432419548217227851485878000906928606668591266591903694080922555839907602430128914981049693537079526220582482902540662531809153071336243581230618286583892508532318198380059345254211002922382472467013609871591354855699361416971484662641536383308691940287259754018440601051025441702418767017084824221575749345568518159782256605519067991151737057703697888500926039382794466831843917795550487916915350971989169967586181835533110782283843620056445140955389712228929535506081871068078117387493426558596274000048131035024884349916309334553496299683604983270948235645002822872846861821027929086505983440941639915939567279629376167155306583595199037814398944500786741277507864632594655441547851665696157930474609632718626024686814031991732779772413510705646785356316412941986804025631162035274176705242553779289559799903768151460326540946360322141623291836771870990576683148368366963539140103028912666433855805506766580486462020878435485897582366838083046562039995596067637726740623814943368565787409490082227928786076531511901968046096308215135890065064229630783659868651765721835406573026532060388519062980833342094320472906103028325449757751790297351559253105297941278299664413641095415710380805457705405059338039689353197877597366520766419196135812319575616631924419823503528260151485471807367136596763924413510019825815827463310358491550391386573338007062650094482625233154362726369730699741081052378424044765821838777881498714309928478945137864541465762979631356184531235921467126665951322328820854949869730488884729060247706022094981355915567632141317997841710284358717451641156202043138389323303115703315383678240848318816556262839567568367093558388814999534310525871070895128139340913810305364160071600084393196177322496638063878001529153886312618921997997127953196097664704471273088453842722680430026301440262583789563200193933451390408278012770027036608204455282781504713077464024231666440473172025365732208441036305209903364417026493966491435547228158383346220302887401238404946767697704566674095994606892052823603031916963230869206878717544187220629461384823019493072994770725039639072570720872321369991609923264635633994525913149699866223657405298363484580412019237582008893467599353132652881660906753197620093407176561290376785293749358628863949884479585427642276060311796005759205484768617250632175728293234608810428305363386275895692253892758516880576229705646999764041910181103153067120692610589363085814919658755173298032377323673031274723382780239431151151668888337285866624404539519503633033183323929527021367213689567560461670615476424295998107271565597537317255276694591160526034081478857493669283254546296364512087036789888585436970135558077733542264002561961033420369651524768046143593076064722245089199210512130812700419446362129658576834538884718406399930247399117565249666547330115388699919735000968041579228670186014007737226225667885596503173484289580249664300272424835823112439066073245879121083891553970131443209491274915994577624161092159910597447874776595118196332213015413986289908934000107856926903069472997489307586743057213775891810772158232048420473043831881426458823956345978567097897259693593196977375367547863749567988203936889930150857650366104526148897389025462654932877315867312852308607848128537234656678913747414596343033777403568909935487851566209784694966090567474473675994459999536465211764842287171632546063000955068094579338053138294370384855771535472378535971710232351930501117102825008404230667303144444920587013591468200458855167131478948254951085571052417871665347133482548291615303915239075973123210439790764099431903809420879984643501580782288344949951496356319284493031199606468937867518018686479028202406569072503302391955739444135256324671626957223264768342646657458183777542976250184211775815596634231824388980625789520135116791755225636274933839009131406359528701243357930872928402574932839349143832133407785342771033224300225041535451852442707540586312696256989116521620145786024012678910093856247893104717234077294702966538110609989031633734642410574589837900131343602094213208434962016952426857847470754439952351002262987803329568806704896436287560574903029257000994482174119772135513653240474114536056132662265374425566141293377996806158568461520002311495456665026717252032526900833519119488784720685282530961037905848225142618700500246230596370509354956194113629880065066038204643465899064641601134342740820662849201226837847402062456964108242604101442168071973775426217642572247957369311384524454988976055949938162563857594450237431250021533303209426887594367313783838390523506063176692705646878301731593939402381230606755089800750114532920221215898312033098699034485933331153315937212918035061525213458188245410745521295139814671150459406548829294028268072178721119261049332670194168675183604033867681190539944183386795870777791958586093421757275529912292166562634766177013934121094715261826481830470469582886199481815594967566929774978308060562940081613745947427400562370206230848219140145550555495132619092135913940810430466977263548029825764507524766167318778589748403848429285956920884125822185321138320295555786712220725490198162678156600125899497201782188938129573655566452079105409794373675478177966673520479499540586539420345491078292652854839805977513021626796265527295359392502102257347704304948870308246471853677316139002236741642229569419506839727302253364000889053107969130145100666434351267370364757188445047384310389857757878113755954447792592602467973663968903644015586572151394567841995941307760808864110560442933163847277248060323138231640484246840785210904866935724214248543678703199039686546742710500255918700656479437852421249039518449795216765874000656674068243482485662161670132543563915381835118191998537563624142005017510585217359455800942991678762516800671856593975644964371667073702583233833919453154586412597549908074284345083736885609066031675436221674283715072394770615081779157996714077587834287977169432874848768607032700490220706895302316560954563801942217613219736354131433056918626251831794812332807475002543737208247592184519182170813432353341957206533530235290707575936709068903480799099499188815174036454305136252822806120420672047195170705071303628513593989379432647267756064957892219834313806357713706536490014022556432208141382150388113140880629338569494366080963138684003538415441315717628359286173112656285614875030386519732458370015610545352795738051010046191026421759368278099709312830389671171823796468841221705555726614456061330144022679933363701280337990022837624961160531364723844918361816681520865847698322616967300445245547545798561629871440056057117869517192271050760942499755999505798720381478653484977334647850083175731686443773424537736830002152962776941334126971544594278617901322245743983134949195447399263434677579370796672316752002055485968880181659690335308762995649343151019291648881655185920099947001403668362264354554381293876853741116746963540950060118152934625356366515863117387959161462565762150253981130124921778325269347141124333311188994392783302264804652097967121539096947969354714846103231527990076753993916577936540432259161125470809260745538816932994069589155053000966999952766757725815440659888786930567214945729275314104961415407532295241577716869046047489148856713156320759970961164605597569590794175342383947669110127905586049832631487423868106110472140663355673097470611740219942975174673069518829997522136994985465353273572058759359885952084819283954439821912468037836964088274452256228795716418490794462543004742339587956836525499927070780540803969245072458255617104459962223875058914743943616506212902328083691356986929212308787905465517387395574538736882298923003588367011365133470772590342004519664962343052400948938220922110293439499799828126512297446626217757026283175025815422973520775739319873643696121271868323966417246252488276679674022019009057333195348572191068655997301584308695752417941740938716565942298462571121445533297198859876817633944901672782290675892608459637482783853153154563703378700201361601427026027175032776135373764467594293737310856632035023738318137273013166500202256196544411564693928284762321694486546999393687829491888420472206167920037096661434794944025907364097450378799199804356665823503872916487996496741120482147804986923447455858225589588114861804358781507610729188070121758415926044775376239936410317793293980294618241262817999915765506094629851365370903138650706913628788868409444252688381682965736681114396861827780232746982103049031556689980069716043240599218820793249247206983991643282695356751320049255992662734447224105474743770248561691750178285058401560556056638674361936214347427397125551711792068986346959557536277587163203530346933588310930541772733167393058143424165429457509448527103382247487283727460429504980275258098781922475227139826637362886181002277917164659810941675054137069646228566197685159612459660845531418061674664658598178973173697482987454174887379608828346622487829850280072329323149214917928515057046151746272096782017369258479968492997144377475893099319352468494592663203664594175493763575484042781113985157446462910933925824390459067496534227791158874032136940584568001122679966266739184188545019245437221206815053584431055680067169543559446344770615549817778874768186439345328403658856315334321652855507830899314232157206790130814426068913371668607500656187619604165191913236382271599022561267855230173101275306672075613734579607363196552920986348465970727691882515576676184306636984494190946235119074334813697831089321813234863787765589698435784312571694157372879702604692024503647636050142828986963667263945845253937612898415708064688314232119059720203564388734062936429994706841266635971883692967591373777217489003843927001694759525535511717799542470295492342373994842207938793955143567695962013500869971789538730493909576148235477031737093258809359158946716966324520907508545400102988069932402832961168946423920194779316952107589510681575586389258745310901940643764124544540549652953280121424563229146215585430831739549341979382000551186326872602625501763561011644640171991074451802569861314439173283647835087126022620343059641281392157237633171974856295901443690015691595964359611503903775586254950741074691608084974297471998769759944363542168657474200432582255064056925590322175878194661200066796792749934260765860776667502790892217639880019729808763816428153798755288277042423884276064400153697344061811985546417217069884854339432026690483823504172472852984033383280545062198467411820871491097584154791027729207821776320164372023306720600095544248092207684790314184456476569784105616630837732573311849157431407058355267563362049576345518206539689991797538110478437347402191916126364667331867031889649889630922044137572318842399798890495170667685218680929845198748021863803062131446331452619830361777389393074674363217080837026342979966592434652082885358557391498701350995402569622497166862057252740490779495807343323503492313491326950166754569830674244578524033231831277454971665173469896587438482540670755969103401786668521961118888033088147421669646381800867402944600045280123580106542710233470820357745942108935492490736397875346610398815382047729681065212546287301070647961739229727480951048556748552507819194084101416760883637131858162984048035285114441408417048730153610203270497312851365340330108697278997450276056695761092772659063365504961804219771923799859167753882957615081934566622556224307009806476467490531982808865468666359833436791077718051283361413632206492787881243416279578094866540132501346893622303803200998276593589815926161091918632736325640747333053297274652392655691329022749230222075800441393942330566577775180188934913071154961105012551735541304833096585136928407633672948467354031829372000596506267377844820685689006520271744513928273686362352571686761270312101929936043763103662215119534863753163556665777938321273933116775278395523579177350145394861905878897932348220605638833919311583827273396016252785173961924986210614545456887330012654870349139869742131597879174398277829588967229209764953060353734988058235078248275309757249299557554686618128807083954292690317606269806477892623731375896843938562659051671342048749572952992229248690542306439886368561318556011883816710032325538231531092066022775755957380490663088751865464601449915115777275022066694160528572494368894018337750678431039042010257784321872459461924129356774733067032153988355009943530114595080609760430042349513130162419485998995065601016621514160114637535765357779635509350174884388258434875758604331635363634319300653663663675311450560293996867523255984980804569694556757055051980421276506631271077476128735099159179282104345091879584810034587209649461629196963240944602202233781044996849739829050730625568482064094929892531334504998990667736363887075441535480154937341447685153737633233133994762446150292170170314228493775365801379046014571333814576234934622538880347733790295951209780501814850322553391764249300875759027080175846824965823680912311933370490885442560022761101084100784222508431623978338588244494982462303309562931248386091232052796285607916942057467085955796866575202418643609875081477877957684879244363064263892065554319697902295994685132866574010971592046475273108578772974941510639120158153040876183962605750154321374492681754446632468397900682398851635552187166057618644929700925643251800137149629534061564237274624544356218951154111723086690539168925076240155207560783358711552688331462359769998015016989889913972060672659505271035639303231750111209912595169373931099187273690900612715720913363579004744023554378471580021974517759041707314298613854193535385144018147779279519968336428868399646135891739119264777055588748525696043354127463312149718729688950535051438058871845002270118420654493102065979270490422632230906993842640831590876875506191465186580067327795319419751422995688463175009574504620266144532669001293898834643010657771486260419295659784200255454479692018241425125499313939423448090744010006567815088235800062491113529446807943889355076523934201783559297036258338413786271886699809541183222857451854051184668795581022037465275464010503025325951926111653712089506894131700229371297264076784683669702622702880770332862274562921022004869542501257992317281740437940448064467377840721136535957754765354546871588619973552494071258146019670034502256016849696610781586519981798388650467844163880060665831960914434495209944293610825796895295535551176265922010094111138043312302384600761332492173463389707956369854658613372970777266725375968951242498725560570210917722756212068670907066530911024948777206797966446292248771926113041925937133036244494665770192576166178427398551152273864504796371279967942509789537970952432574629552098044837576951485363228030846216188477541016704257576259453348763997982265052003710424954870711084144874830801920761888568279555377367315692530612630547185070128037825132697686276001096744341894238484546574551791766932641375491355720907758173371058303658220315960007665680877797849345631023541340235658676877166081114451765531068404968638394253934266032115429634159776683823186866009128561407515099981005199415511769283889005924885281928466568399785400751331217048335974939849967459304045723541423487797490549413666304089208719921056732680918370810570314970328903313032273227965544549150871252278402194111595408269722729284064291956962406153491410409606745466881403630881683874210213192025074705682659629381513940081713411304824602325962841492521359247131903979353516085554529728339013339614270003789980181402351731848368313266215632255274371345243452896721491779133236745503372817202902287299413771098580241491650517358395745708602083649954386493021124545382314220093445120222116517500635353804306763974436452589470323637364072991445017608862954728818312468986580582642038184889047591981662361282216313797067651815569847643499973178978277289305734199888644253482155551292240462133149561063328804589963566203218148688236408564789357386617088535833829641395539200140753964143643347649721882645226106679678624350595758248105588068325896066554383386049631801609033796249724579525619254755572404223744133490267435714225318762877148434946341520927139489252781054503622471471167356054672552930996754719739546675536809225441313639468848210646789534645841777441750358315055550044173792270737903687671107954600666883613397196027596936817781601149431400687031159403437805722709379358901847426743110044616137291688937960151897506265274701550821980074463959018750595602925385430141481695872552960451860474626083758870273348306186207007026020074535209262354881919516517581692718455659325273785270714660018216783833229071305340411197824703846699952003209633729147921554936911010914183606744790159634004893985962440976876896677301056391581175436007068939359630296955546220067321871297715763370343019231445944031603368858866783271828437550147171265075708864751597753864631175756434438758674758797190024291258766931801698598408952976128342432629465965938273037938811450509903883824083028171840625812917263961526932072719176842338212468878073729038215355882997677711565697862842705662526598763217968974873968589984885091375398684584112626281569124566576263178959230231383651796535949197571223916520851142845352283249708692330488120999632029201754310321509332314904134336058437959798962380044439444054596142960368196632436243249418236865619056862851611512632758668056026409989648835293227764797281612178758875642901075657467292435514259406671535147786848842048239018040909324163039674788529952159027002825222140576406579383565074096538496201476014284141954459024354171011895081880856962270140017860911899273774065826297452881414495617234807804737038657836320476584729193106819175049149838110621716821746579642926883576878286567709799538157842172728178829809368432418580913263983424385905391104822864659996132950891776694602051225452959944959865203588076581449196493199695948763361946441546009694448148997562635488541282982376800606498783122991331155495989709014864358143964421038695712453327589611385106572162331428855351113786666257053945426748351711640919057407747930309955687988957165720947475275217041236072108541591550821444044195670865152721215651872127901290099951709912492395060069335410286467344334819300434298738858293447302581394866052426518470528559903727831986223297043296725148889733768276733363391190262658770881914205711239371374337373640189609129168611307585253963226996684305384327961972933666072162202376488360118811332917193691248660727739875969321607606566511018947411116735010933471020236437347276415861019538597746010261194960569377208543137644533374695405584900771581487744400442251333218237597597074374750715374115859622904430381471953224858112085066883802558347146014649019608558413378198734496649430111942170739073656687191358602632865921885961452051072089880992510101192926399371457731903088339378323930025389160729666772018258764656073075059614470064541615476481674830779279553258692428439234378903471700111326884811990450625724379089587987856840896750257740970473378791880131225398578796770155988532808377216818434768583366810102164588361792230678018821837885826829248976311830902636795151220085830888155816884400679087709461121472337782679890216438419402863028846117575520414239592726121896139653609098513085123465969739637496242512523539023468703788974067356609680566775270800546662889075236268540476365478299467656700177421152519413384759416992273459605948232705894403227247944848003379344556503643070590961850558083952411273276774343132469861144341323334088341000927680397280493484183011007680808023860327534821135396972978855798718753337230623253514875178432377480302990125477674683528782688689297130522399762044958743597902670207869930219240576480082855304918937738056111787057473974213100790368550975192373338658393022781361181440216344865648652259896965282312338122639657308906886859200335028470515511585251106382223056029294626598804096683064487451248363962235607854832868817980612895649509540503192101650778261787302922247810240174790797044660614229007047972057173959205865587808533393752442645202467244781116673851538602679173460263319127833224294254065921068757791482429941809100835341126751663456522612930745887220580583149890765708970969744451441802592220404702128545801967569258786219426104599467008863287468134881446288992475427093257577016500885577608917527826560569165886158722601566158254209231935249375282299442338715665992502720896344341842282099769925095025700966407937303819698476864225985440633207546150825580473578634319616166653237089936672453391726774736403284882505373964161072042127923852503485310075556525260373805127617941266909211676849168377637823791337757310099588093327731521467266047930338754357755647172744976169827167423712985120458096730307355781344118063874493881055483256427409815850219061356708564151754292005289049584811958679790324650237264019803368891401722891315999912373575140762309578698621542873576055955338946340519446829336528232685756898386697391621586735639386794732023398524213650004438152825122430113335696635533005513727489898712239898453319842729684360634296667939036760672127955524116108825073047221262115093928666927509875159896954790990014966095505459185351581563531407228866792170186237696627128381371877241883978497167187481706386886026857371353772436019693194973089756413832464120983106352554760550900249632984369729696846623098200038495663723730725228320730126958369082255760687346768814751055012449152279554094244727573275230856612512188616558599480265696680333742149316121805303878183754650348267151795371879763294019432780364272518102645186876192167862442903739736407966106921996382171721030966107079141700016617037573767745141844148580800417680130875410885016575026641601099930492759733761479555696020761097250102069776672933601806085765983390714827419568410501232151391051578037318713475771799537482939437483793443475121334941474127422734550319380547121556943712325687825431010333566270471795030266223391617953995178334954019144266180763802947992862773583923771020252256705403455287841540388588405222490391642741951786606515865243481211766964839382790069857368117801496401322104752010277103719796801347161660049838707060116319519643712886678310650334951234138369029667881321645360241254303545755919572501841509259656905664837531428976778939976758222953763352240247577829649485892696027251699899341385184740209561316257704456379109776638813021567526362808302601802178982557300880525892917222898964671987308390881381388135991840384095455486290648534197911319975740406749840586513054388573098921603038084423145924074411582142701859269792805716250049450424220527458300179084668521775312706930133088707866510096919711940861226622453782863346021313310740076652825998453818695863013507775347426850306711630517647115204115187848196616334687445287107329041839937749062709885588996721474387637474719168399558799682019836060248656126337905998810909098853740264203416649432493866160478286990062350351628579459676670520590904959041125049139381416889177930657915910436300224725019014910295222192757024656186841190611591925025012011335733344695070863464879546820112179059380858884624262092485560632776215614363452614636277483323531166562417265727088247039257263574188473974338946440489887030932557297777516079881698917072101314864989955062570657502329782176649156393574301472298958785959982941685878563615005006231892713340452068882796243149384261585298397533568910588637360252810311571771159127420819263221960516018757072578044614925804061317251576958893231369113438961372104720197044063919519764655749291571472097156483141200038857737189487270785349368468960777328973655772339765428408656357051173782762341006474229053510986303475583578002082916980855249553312110714686892770965376518846514215568909799193075314948187753576637984548300614409598622349205005541708689636420706224897195731291636411229819895350244049607783967124842956560970181126028281325031620553727330446633913059194488863165503974732421860901353795632302304069273096581234703115899489473712814781779527009870996330154659620153549404441662916831253222050380133638191586896028249831675839762761308453834898804402704093850604055896535914920854474504328427109543590038656729516092532529876287930371906522335209799679180986431195727709122932121062459138754416671292069471299480975365201575539755522173936766358815373311390873911418625016978424113227712484511763610935073175698829788078029220659506287147083311938583344318176737455357070088251648525845777699533414343636152748984131731235316318926098011725423271286939227396110058200780677521506292245830323310986461653909163471983954915024247572846963367010846325847668852447683831584420815114691483943950262392284511378938715772504942865579979669001345656126533245828214271762963196433190245929256191341295945887890510373117406298398487472064282432209611811729846463816700570590392059564281906042284951154859101446761377105772663505658961838286599049699978794164751819386421261291641434602755121067084658590966618018442903722681894318993824641240573324925184464605974561690949329044170720460293321969592416137834244365569012127339615014867725888458855297630063694544098152663082717604072959448059260634824580143313082607840136635777859386621775767538261713234243580056829539399103215993775333714902323416844378534394141818685075441550963146425684225322833594318210149508730343201071316106894509707700374745359108756082186582770537835226059281685951737514632862573126421756226248644838073115026123865782932966016012942974998220934564444994625323712884845461802855756428004565784375315650448133964990672642169165084895853667487667899780808607920671229728613494714774188839589848446284768360833319098306258335264792104144661352172833948518398997263862314843758397353792951987220298323977658953694002741448492542806130337085694480177867102140650131916610918960966102821252953266200763761265981477265079859576847840710260361658924063487633532901155608080904092155688386657146590696287610750564068117760080329287206451735647148995508984082257533125706695645951824972129164175284151394790368863093677669520486820658045595822429183493739851979273384633879983528384506579381170295989867942409731522995082099684709612777053531048436705079748930671687901814184522960973276937722905701995765850523980733191011649385821012049421429006609003070905650090273114755280890745926587333141979022240027461157274273258301443911708233465682955001764484215842307795322537289666365528196586697648559183394170890556805617807498074629468488955885382245303103631589564928125752710248813277921846386949446471531158563845814422196248379886211758127192711580981494677651379890504737561985856045581037869053011939294742416757104788619960611523546212991702492811874043238930614711207461174915312622362472152602120096428614684291957421971715592958282121652390288104406239583231955782402747825378188340240046183713319099127899213012443518244375265782277884181220959960510292287057661529077269265702971824502760385887484847010060656202024075202771392031173375994570085240237383360012416780309098229098244061687469600145238912139790233621219255706532559596575936435467565185601686460674419610006678035195819871186259854676786610268273133355992437555165558582358175187105972529871751991176337621067133096047335870874911557788834932838948289031744274799358333998603701168589101470691852021730151161774865172888219368274896368086399972034085389420630868445639082510587209167449397724491698969367387752170647494904253472283382112426116810351808232172407269897721288010216965980992248435114018800448938129223166344095417210428998299655822332389357528998889883023134227933598895952084174150524368952444894250068526159933840491802137173104643064258120913561243456053681831248928356771009400255631471077253556980453874277252620527287221687678203061346508928513078807920041506709842801209041244142503279008592906838192241444993400147548009977297370778417697131862768826070603912442718097320637926552490006456598741576315340671007658290768077943671657005098509009470944245508897366760879657095711905276465380988522611200266916670133770549394396025323072602949866574262850748776443720425746612695262190676812536238397424098530034048456706204398801574996482640975932793210315125150628391023566563532013411001196892461580648930950572311425709005124612462583375042104983776938348363788203336165152694878004717372269970327800385806750947651907869418764492104089754706315582641353462731840631787603296147083326425093578266288270437694135161418121501731819910223126754763702557164839240792469497213709111254277882376013218814862999967009531280605936018628880778869130631267461670268778911350205721392049927853630763787517967552147731595715989877288247106582680506175156981575270542071152065193733443249996299413530417761219875948415318563885448398038455288469458716175626004775452189674444823918029982310014883096127448993574787320303005669198100173037234555026474105961749522574096858075733429452937196192207887053111500935165108852225582828911834304585718208841671618661348782693017877899319504863002394656865371921552378197386832336853670481761642409819662224154047108079733237172688093263068296494788797183643409854690840949063440529269657353571254363702978244340557580975327099746915823768889919838954802177944888726480680735729200389577401340165412985600867311374741156966151711889011698823590557106563620512943237837608552213061519925951812584130571146993146892431072579141858352773655531415988258660692326489735607982251411446784254926896819804517758242716394204827130286732953372412253276166113763060570450847312793064191122802762782516196822707071342289612589622954030375619847987528137075830704381897689818518298321760579519897070680340927929078949120330624416475499174690138300790868156261548997395685971205110248797813196892853718671495916434400291866295757703698038173018221505654036691434287775316592571102482497902510166725351346243753132095840782245816250131835688893234352056320871196478371028311437027645171426082890413636109554109365773754583426906284366762853356771836931933152852534197171817885363882845264902643959401862212053298227310948185818486600810046645534521035989765040814712075766209591826897262056100846258075400925806442809390319077129907820069841517087684797381530517547139666068752572321188943110352972141985254980033232894009925082800429328331079225803176464193753545212959291651975571010620494646887853590025953190195431439244584927046191982048219928123150233490657219625949928722358431363773157021204861352295973927615723561451009118392946811464815325236660999239715998391204961624070559064965610273927762846848199353620918126353128758737627437616596471491990226754245738827100505040276542629770155759582242486835051403808554008765472242220892971028221955480935939196839438592751695640489122945346555074579697930121394658959142362142206928464941241469890571664292719982674129502666791482600742284965562799527835510389741575354015144425634871535849868490217676905339019055843122201940239418130138702733103878716729763404290123384222899774174991814856074181703304740327383616637273111014373507434202273237379713321799089989583878693165068882366190745938027254033732562163099351582583825038359873604477200428770220394037841758248186968616083070707893447075924263079853011039852789228616065788804096657103380706727319433714198688670399650687739841038890959276907519397130881455180683463702402481190521238052484008102431638602582300283262613457708967715316980350990620825805902355358123553559524892428559085110756296572756176733283953704903950698893658897760966605529698863133768839392352036810404975086369912170626511556884353555509044719744052257370173633905531645353064825220033860865445774114238291620771426397600917882313343305683618019511491243666455012735474403902173224082597132921271319818190942840098929918392229140919188034504169391165263523659492844258240251475525346151129048193259573349539339925404402233320493039044785321592003424981314394680945221438944460719089515345087352044018081059382941704498056337830055868025422357524307381635404836359939035149626028121899662618606205123914239302148318314403321903898605194636683775996631132241545745829923245277512340425226021857606406473657309231405374117821696080036708186858969674382106668449906193674534137905932201306271273508235298576904802614236895793425878107713902072816261932536163384466483598749562875682050735801848249277413905150825549577757132692485210342829585547527663781970264055969603400880113632285254127374228122072569159489963700219512517020255699016352237294679038116093959053115713933031532122970799767496447176707911127810328698442163826422966239053188095397411179148617263253128190489834506284501821711795775283414072852576656601441985505956926653197881921017637933574249088562963091363937223878582202116731741760143466404631713375495138912889738449325005756052917881181643882150927388178122096464396287754657749997454459919424962776716628747916204601087743110569184550527306035145266984072918427365209761644521988813597331363902322905301385630374188694960663422487040459996825723796323232406914741993018355449757496891658094532494769780861684735315793822229456244348150113056531673849430660144520121886497693191061043740067874466488742343104135709267198129281353482543086993744520664937200358244857952848586609685940645915743211868008962881707090319112301932082461869699244608861078608390499232487159265002301778324715487626473480103281182635349934166575794291719610020867215119877291455751865406873865504889557284032582894109495799217674494883539803348655681450859552964797592321373847019819347378019903711288672582067924352138021120076048805615304563457977632369986115356414897700279492088283778184410165132240660419245095812642594955787899620936210382851001639999694015028171109042430001526909641862448991307996446063645680286427931514304783140934188547650986707740878864617860532247318877438873024971932546660306687827071292435159787562807205560068457414900156486369844176820838972067999333575466953851950664224626027948424698706113902749441966321976448524525226325141670757393388031393516865811127044927955374018751064715909055261989445508326766239569103291423936599520799472881745683055936711140971323218620858142757740961028761533405004836747516976497515376089020663943235402866135665689718804037280543722252060722858475505264933906943258233027084933564401755117402833409717826336428889453491140016131062120901443525126516864058250240105045881088160875661010722683135824537844366103568351547121196935777558070235994115766291300976413488592681838453514755886146240647787595560426407214889901017938032411380740403076590651966692577272781903345839601042869485557335301988670192368865502063006019816856759187057976789080525338021301071596240825592570087839672711550788109025350704994403256492875365526548821031000535352974553637208644096944891092798116902293588815446434245994412262657871977329417532838986724525365506503984724272196392153869275410290786927547036501913249741713782252694387234735688047333371003915787361080144881952632951556139063061326989135263539471463777264390544105543106640236223729872541871620324932192358694949489074650658350066906897260694034601875512589157371888520920016834910115192264827030558971972793536692772611593726863004000880175607860629832277774973511714075233678144705403826273647342596875224777292054441757760650858995867196541055112693954166728696215171603279894387619080478188113814669424505246338798928677940393679679824636421827318339544976784472852432990500016720403251976232238429493246476755319750944545467796372962296112392064081641194009233030021093151146515218730760982183079346627236191398610013110819446541990177942004184309306800879533491072733245265137535175145204950398394460561869283288037912536242696976390085895500709569545160123910926495492239013691944236151606659611979875032051635515356513298156162342955769803651858742872439134953101041844460860171130274962891044325089284104279253462641817273042653680385001392569657880336644043560629118350233584751919700722279882021047716115309940154604575406674405669903003473380868889658459496272746124450884416696443998342452742718918848509906129896121674777980077334119454681467777370657259545699420711564721216631943697872044452384213909954854347529093650797312801105962667327545341399398235602588626293259669987142245753860696872093900062618487534832257730185000140905181713820188025593137659900373271077430474403662898960874834421964196355796571638316411645204356621707522219806010077719605709764082293720651565450529045779932296869065251776450344621804090456245670433601444134817113830763265004485990357117566768055594366487644991628081473281221793874175678797096743602404448066913484166003681681345630534187497255974302669349457263730245126110811933103953865896163714245229643072566543486304651646648843259512007246952840547619550635476284696851204518325770106915916250203214424298260082252834393320521335738172739445226150885587976049655174285393699000472187588461486654636888069374708158119745859421408065255503977426044798195942705884875695555341298850918783776239709483580858450639581783186328912598734728313211475895253036953310089339570060068090275347457224643264188023600875687620861863358354745071472368017054434944761627704840021275195574006836315142813874911775839206512881866783605699567417122935311039060452861447315083584911140700185672138730608137711665619831560150717567606682244406828124574236405382459447275829895281718664122341180674121649852088554297929483109244668654882843377893227267448704010261566544467564302869866248521510933527852930617246095592625965347132714612956311895054466988558619005735950326730969605047363321847797409996218989117184574346169055012747436904268421714336194576476226696506355518581386276330507056581691036406589990978774267682491027372714810697218571471488867985599561061934629527233749933228136834231029903013793797084201243774009204736639729469241431513712914636069397858101150184924729121847184713473525829462639636186159984962910406172611413263135696328201011951758737838201169520895724183153414729064086472569733864702887709135639438275228883714271005450434703772766502745895080908299291923004480115294516317997662696972560887095221931552335224059744164186696952030237723060651558059208476059070218549786131670387545594597973292731718239393436681691244388474636419886609953155693271851326844038419263777648034467446536832047314966510085980774827452074307047799362999126279584633572691516326472023942830412201093626044043162239939717361509747391656762938091640314979532949781635160731392230857440140369732852442138658573600176473357919949935258121378984731392297745798212100026035977321311469345135102272049271487072615306941714787419532146767305349569325451819686053526593332220631733347148706481970999559877918896672584701088271604763480900588067459372064997589648130598145136455189972023501982030936426103450376322968734646260561596767382001819129129071401557685527702755014023433444838656812569114362881894358091866826875308898488579426470067737028548307269813408638942720629094391786626743611438976642616159853363818359486576158884748421286765407349819721308136448073241908137590815277021710467588821694357842316771411540120439858837251692352414180840065887953055095244351775610589043068577634749880455673983437677789983971492104888974529002573592223633824640965897405925253065764626452889271045362203845975981437885813560224055638970552325986870812707886440081261542946004199044124267146276980146333999624800992807801013005072115752229726611558333167825050985969140174061363543776085631608004744126252690288545302851968808129913542711045757823101083527468775041494564766175448874519624005472606589958292315982559581922640620514154247227711870193945455526437367519307067909455885475302354847322264020574561739735685344231924637245695176388797739419430411941095203879067270318668390518246461484120559185314974694278101147341275948363380477606159367873188129722473911111559021669262710701349563963666864707074064300178758672807896962128882801705885031076274691617318928468958488808863741576382315067217709384808983296458260320095410583026822661976978059586327205669187158183228580844393734022116078700480632893430219290367567973381907286714375331472350946116706603549484835346549395459153979899232397193364947197470639338432864331529890478373387532367799560848434864153012152722680508724407542580845055567399628794890201777191002682511734288769120045792678634769501486446550129128420284157515689935743896369240260496230625237589670271683799022165663770734132484477029369166085910738379859196352530371832624193139477310651708227375798602093143092524056286320286688798039613003806290806161482640631626339810554181969992945868787934127728572118042130070052579117300279907851821143662994379280558859717595208362612201363987385664173259648157753690216631302928799893961352686204071908336701359693017673506135231041977672146006362997462502163384682253084110454599752208030970724885137137161863704841748772879989750076977614053725888704729560460079426179830382428619768838687944193328619001496677149481016755640312356868639406066173329088861663980953471938259143194408813639930986298201601406421787287200017536892192671615930548609758054756193970571849098749791815040132222440550052690395127982937424153558103251943577123100020731375953924176425846148619854833756711757945202335592717689603722007948528284125687189725497054394642053814282025810390992336721958765646806545341780948150415795646602996369426263611497004897891337845953596338384156900613744233156466269713244701283131919865387188517840960087784769286443141145635924337151032727392221589089429074969159893823298213844775552369878336200911517295103379240447059999034846594306177196584213610203363609495346031441358005013569497598142219884264736250196963285262131931879679783206479000373362728097754096459727958998993522636352419541671641171318407914979024949370146918830910181765937972554059315627331605867142743533207740381319629903119115675233999405829228204118613358655864305290670300253474811516143204136616787731236417703067516575864781485363997720130566445445973219228117122294289853828283474954786089025897528615554267875847600478007547027556440412610122949472439518420728090141235338002472646439384208246227278029720421079965207877784102427241667406614663870424892204083630963599355872099029178879559974713951493253864965255281455641371830455953895021298811619273188149510115209883400479578948129754772134132072225980400032652299089727597524758291704140194460614606318121082881390812056340541554257423649781334971809215677441942074020067377823003893859803114587476815111344890464125833742038033891285300969763325443103220840800135896297702255660786022759409035980163332898454285897266094418890506772091803899048569737556469525022684677549825483076063787884613769795101242769695361118712374157835958060830672291111166575878671606481710415493884744517586926417323352335648925781830115775992799841929714693697824739570177764052963077111905807168169087685839954260455085910982992262267066596350772180040249924969209102723549806078492893883649716956748713292662238652145226626085105479579977949350792735336751480608355598859414011440103721510966076246304013012160740427500380595799926120649668503500525091157308078621998809160201810566775813381834349728691073364342374276044006680051607894819129376985550848981910123977758130494336595312981019933217178020464496161921266783544036456086421472593327606536213298139959524957180478856772227930711947777409902800777006000157565412283333001150263621023384088831311281699067476288634851390274991379240085977280227175278634480207728624504378850857026550116513599289904138212432542332733428044471104621906408674300586305318934207071968814460916486333088830951007982664674053945982213536173805965017051024518409133471456364272812398670645952920440259025655661561247648528638667477504868682226234696817408265445528392176237122463601568505664777296307565988765873948447808072446507834950416998298043166882249338093100030966129906867647046373423131679307755270840092002612707600555396245649810519798758504654726108045054524996467466126450175654199960768545352372854586483777635282804877506364865972376318943174028209717715161610341898684138949940887505787960308037878951641969274332962681965882014810230825944157040666179861058705727730358120884705983539113976314822359711494158219213206406284940975991451071669150018795976188821249744227581220527695235233000276950918404167104566400975976008703184501336550899669694156671145858038797672148683551893012302445556836295542247286078316318160679603459000133112497513197531441761675696430708613960343743578550654152365797999102405825827152958673263502491086727975566680012908287967179317435123774808669253168878040833127522486440457041809908551501774181258307800376859590012991938784626371038762059980040831572137216290998384760608679409770516386352473730936303752471896612070881722407560989056702586680609038703551656047128551756515137655186316452462531332049912619802810064747335172193445553370314443661721421681373263562548233159053434333895504814610897639956263450922959662029799667785627462935700187331944796400866222517783187214967346301792931251681189051318207384305824418735124653645680557083558805816741505057391173326128845687227844564063936341801549241632489171953299944634324140517569941105697299721221827095840877957690320559732584763875834565550147665995027630751833426059247932770070869380129439950791273616667835714367901124003794068978676347425513766693354364496086429180056685431577674842231802860198465319701284011850006560696097883141812967699108120818043671366897358426554394125871381260314386925022342299900395239554270492442353125510031876418241359411227937140918205795022605599521462755315520188328223734583598687537858102123533351664960809676663633417404971175602506607065441147280033459895313001025069398185616087429586379774214620433424272122454154121172652389817507287784571114970041290298608761558202079664877319106022269228750064944842780726829552855020841731774945726982702233817470228674606343895094725641070482407056130712674617759292761007688045789905552345727215019963642563361318146838233233096494659134450116139008279747212698341666694764473309489938574602414848176813642684390790634045705581920367015389170710084519879011660383668637436080322115798815825751045183435698988360012525314016067224119721846157204100114959124492735992947373823904495123121990548186402225108037829377259371092792040445334447181590713715340887032925671490335819228237395571440944952273853721306594388969229934004524618691671908814224625504405269848764871316326435434185374780965536177541980567308660086449328768287034517045098604749645836306446072298310829170070477130946415534050078465638413541048844315342182532011522442445469216680665072638978352547448165486619637529735327777535383333629604551992409432077852787776146768856340654407148766528206920667863045170770163738116255663843093435517971495705904420669031517556781405356169834567844314230631833677177167517683765175024397206781802584266030920413938256536666569395738130073451075750861301112198145088849274782591822921691290557666116286999334374429246898819730695622781380467874640646307727370298779903385348275083982593762088678782110823971973215084894223589962908643667629168185580085590394048595387417800071835323494836305089518192453791117111655910689167413663437787455592014340541393581246923009157439605310449652122335126946405744775717161991998131873420116641902140334140536289447706105943835304547682044124884362019976503585831941730662846948337750839425983937564795261559916266231090976693132961277954456935451050326288813034061425618551418802656537247286212117282635032744430339695199674685528066567802095354214531988722758247806389395109170417198902299500118881994659927344754382760796955186578533747251076925164580048304046211384112960237135841617203438948008597535263300062691828731050742754171330219450934216868675654487763400346152242853843782037994808871373478731783121980690501710435329874999483976810912398461073901972731529119082503964407762955159803298849722828298550007180788629681262794938665302129594229799138210380516752933360584268824835272495685786410397146535963508079976722745969533656400634905976479158503908662279893857986078871123383784539563686064004507144945266252529970345842086272685169633696813625922649811782877324947057530925513622645784738225115632159393643440105581260740029841747544315831704618762015849782974929083451294054758704544239309883063311120955327531303059553179277967677357950937993387449946002184573596637522564664255759211737308711381722894290280122070934257994631268014791771417534078037573038590591936744610402525877610529302265718298500975107864290637048715590634848668349295190633931755267335803365060962322693455801061315321965506963080099648872714159790082911033453402943230996515253642766858956578008239800607501566981828274616355423802061287793310093608586263339591793036630336635147461193017662757974822644533257867037007060593819789564726813498602136048746489622739046954219631226371539374512060366945118578901034558804765732863072554227957655057326952339158747570698027098744576726492280552671080310797140474003519373283085861429775917540798065256359554017668264352334063649980556488356059935970365417617975885091356537594222992950579239705022682666104940848687737283479052222835201636528134855425095020056727215145981456888705324441711210819130076174826947927169613631648738862031813668520439663824250582081224378556072684667078742889419123555597209184885871595702075378159764610186002726312065580474789726693320485602871471425928336085301107841335252159524510610263883548231194760574411396605315715825803133568530116991416704794412190111532860509583154596036501149894828977631038691075047163078237382379591230013288839353519641035312747335786403304347515683648450217021879557496222450163229585118658935066608293565429374883023159908074489665397334868615789389150280621405113880453726472492732385898517200324204987078644650074400622849958051162927290725280111712900260764871071491332812282112541689110569033635831159779002404279700706666531445716968087950152324042041770500684364387704088089810695164930741968208129180842681496465099419497782243609791581140918468130722054925635851503128681686956868051999400551106063350778905151266891611772944801340744893008272661930529431906030225073688863573845034827339165473974837862044037004511198035324416363699480335820909183298821878299994864759538160150815683486203138382813573205645242796118150648401373967323971437362773390744143388943505252872055178090676814477011786716263959431707596422535659703695896327155669743645353037904913830201093312372265552727577810395453723164641232838133242075953243999070113647122219309437634214977275282185571441799577295572557017232438932549444076871515452528281908231540290920188415930391485109399826755027151467130563113976766385141165163510450153826838833275675048141965248574527928472526386107822358057293862675441505344159474340531208170610067306575526403173713083150065714447663366473596975706335007464232160422113861707068188273315252709366453937154985756730263990994682474075367189910171806257301417075941163345866906902836148847733601099591408441404880292071831267802352784510085787753562459663014576089267233354003143322895376627210532985373140796220995694308898537361163091530731973943132271994807270066751312153517475743752443493883175245839195678170272603456437246637354433153255789069069130291760996101309655778486968343321559204980362715424266110586692587544338063786393299976876566526763087248110644714565750094459212749208384432584950004143002911922093212908646714000722822279623520547205809203410441692778810618319802398014673673756533114612172252583704595710421836098866969537341163219401913073135883874975592956502554619961960067567097139921544904610159043615404602837985708222575153719055971724794152920721232436097309962886662432326146707256685273203517701997526382443645110426182095656381663856615303330210457968650306492960206178014088572757978000366024241151082475898880873125503504497353658230505775949478031105888395128358655070217292538232908529496256109381545475280082508244689724185846762857729866848499180136045755717863698163850112120009828924805204538321835879936459470124532587509736301186441918568636472681446004410297706152406011206939406918393675133367191588617673173584992752247715755118397700499392321912656477979466164209767391891096396958367539198654677242908501762899002942871657697468348517882819165000113845108940860433461678705954240620272822310244794828421931828432924603453820940457187190479285586223770280055635249122895547852298602037467933206131392205547551167148364822080559744149074024174673389749085012169425945198237683832895739177906740973750932198381224462479651465710931365910198401493876845718109001406777077253028607263299780314832684162762066256017977269814926417840077259675608238607487675314421555778083479204353223594617339314464391076181578307961349925980941795189548856129365961811590874966732461296034893600048712261655434749214298397711089087209201874731687956204025200258092261939767132579741391406992793726112806834537472941323771200141015556212764544050599569750632987385831953374856712552821707718934993264054540299031335864749619756893699689550848394763477999925971613677489980590810519367979021484176819279270963055562675923943971403057389976989225687254962464508779522789409046733158092519799640144851769586321041311154829953159529761513520253551905916527250630439373680820972558265872217831251864722254995456243193604791792076061466138932129469228267829482096525122535319312467297110214807502690690940775371909623468529561901527832802130577800209085315974898577093260488267490641924110753475880876676922131964746832909175115882196136664653593235818734389006214817931608054817972406021496770277030861420203842451106116459697162751700608129857008103156717349062900803796163142849252801450234910025921937146917614917556879370158355393239769512110078002746183881670470903341601095894595705973073794242628027925051885361137726215090102465656670924664049978297080846041368780005861837532367566457933522991697913263650284453943580269675849599894026060659404468976932160570424621699098777072272240296324855210834627985182796252138835083751433880510903033787906911804145761238842580451081140059139196768427886500323987503883209320037950070518164337561326625297481377880982710344580522076206962500762844540662425728799980345140119563251741724933349034932609786664901650954407811702317028107738026625339812959585402414646728260241736135884497211049111416130628772373554136457253046414571391957939087267412666142310801893220882479587292782314219398659305487676690933238765829313298316160067021686731767992785454431331319952788900977159573176728508462894415406067671043785609221029010405244919159178001556377596426122668358430690310468919664608068415736837659517253752790806951490019287860709281284846396841875659197612303325249990238052464056081373042968385386217700537089723399583257943275288740869458290565407022597037652870629155120192154463832612654811700847680811919025909519019604975317070207485330009898959996971963941754523100763770525878721943112805482735830623110582827221490363466063665313184071349170032981177919479437611658009300952887512384223245367847970143938365514947778822991829749877592762257783407931855624911685681846739562900725981278671485746789143191173766385240442898121768744274588862584076533752781042708765099695960690241269022204154312987422282321514756852573361922463749561417125847363468123848045408245211666084877866064506726346499563850406313239976472094323114972019459915332444713359458506963261808463631918209294037602752644966530771756758953261132155833018784016844428312148406571512515383242605186032042410218631143410565677069107331887802149811372923401096150851023386364136383155426986301613248700588908148275048364475010617260696533430881483540825608108449791867855911683814387900496762827434255582469181557842006933441662025040474473892500259561809867409193401060175655003306997978218994785032230280991986619643754905876911808646467660076439084945211852164295989558852108904156691929617684648470045418367137425600623024537428534775028196182821067324337845557965622558036000030967443922575293558365263604274084096617291778407617731842251213796159293204647178946120122660396614692293683895636246763203882982604422966452215574759436494039380924863683669411683215483014853288792940202032066294229114265100370857819417737020848191831884518738307460579362862974098064035912558207000184382948773940595635246515931676976075439250909761948999767921992891170739545522397021497587537882086424256303063979412030333138441323362235607662660163222756670752678176331153657400741185233354225412590755802017345711386241114316934523490768421108756452983041260668512750337814320126658379335677621655265484303994308631481843303822971523262975305681803234536780426700040655270315514661174447902659166749536068647323315173192350197928485120425838805710554830412575662750904869391960111430869837116117912106779304045253156207582969828874421735935252942149180173433738480450168477880640117338653647900543706766126849436636460037054842960292890388470445878648938986960214779180857454708202373136847402227052674572944327236199145333394033681374719882024429045410500946464782754132250849115534549320528673961280231841603965007108150256310033549499021337012413116857469538889591528181870448969976561539082099763317890496817959227985393369615831593189236065908060645171307266016303898989035589553538790918875291180066172508944347098585228567156594798817806903421165661351062347108040349992428626623851402777358036889177685413510792360548079195379334557846471087531992748093229477488907313853574785065576334817889694030735095427196879693656394846076443806041649996138943481106166353921257985951039421503240712478878439316534946779843908339621471209311782135773870373229121471724049655011563822250625801722919363405333008808896477336284822403062973132330376367084716669578328977866015365733493416913385235256244999966057664717877381574565359726658125579673485953852595114344678591732644760038834923543316091437476165467329590660664320155218796077251810221831075966465328531531209253084241516660469417182833154360200873685518792866002838347272043726704020549888595876167064058620215992577321172755329199334591813006139028472242475184730428902481403385636993635608733631947808083185117735269179945540423743856167948057127909922256299259887593213956164285878842274204525985628410116395578975730436041010973027483095993327208667017802737528230087615716918117080295601859299656597505423032407228716538296310593870158619967170136366542200575646371739262803402017457465714794024018824984803279936985206189826636234964052925495847944321595735997006260844881919328265294529341979935540236239186096326655702889211050695653458359017488533181139055493494541814229917862777270101615934548489675186939748347837768478732170790539998372560042264214164256731909044782796640539570162645607991363111104588481377956614071729147210772621467878163958286119240065606123992539690793212862471377883939032754000480751596668951116726538607614714782539758420111384404003612122290675515908621982526592528833842858230758097340409982071761578115868131027794433520132901694147244170310291806929290360219048691857055612415628429548953198391445264253886263041274028116021771990869359694099699084198264422387088303492864651199692502792650899380232932567236668505629233323544748225401099468400766723204442064908565225967297353999775702722669397797847679377521167205133536495699100425289291147347002790640868792255855989672195800669469015888117122645520094414656374514508180588974034524068584254350859726090762859737531898255321219156560298656511124227634035867928941750038212001004656566351660242151906783772416651746197406670525554412467582887307364407929911362630814290533289944623244054160614530916121704096491641165421067819068956705798558077070324856361475046140158985253336308440955115405555117333599406082978540756507609929320150724029902441303455856786225494875430449186403034417427659966729191795157560752591304856740756665303803817427182759998138350722287988695375667492866498636605767342157828742165256725886606978266261521068663901149843556423312010173975791998644445982176393594693289331367614704060578926423801582890973563962366488654416052699415729122079770472191060860369497343413722043990179054890928231869519376066030659383494306102774462993617311779014105867672626941616305218344020231872567282600408867619861433925402678928048523140111945637645120896534186689844854740175533150956818049864892802836504464527522371829431451637928342915392426295338394343167938914080276860228087562387383200934007896776000468608537652767509302156841735891383733534606415899513849350924788304588646873128315127794940094258527208068047524170120600702794641067333675822480712043469983243971426839406839714090200270139975775850915765714587824172754978456363446388386990362769086580745382598580432008085471135566692671154091925010311372477573804760057472316169580162561230566622183467073254391846546186678456211503999168776640124495489313683129469837392693535764695625272667074654457098431140192226141355178364403506400479197332067265452423012664356407970174689313549208505566429451274708777780719331394665832838178427273322926139878316666021451786369758719347644528264434047369473908121066193315038257762094364753179761121758452330567651632690923826430776957027860802674322130256911289798974636933929416156048327565272037855663863611321833983027171925105103291956414260119390832265687780615371504262933233299470793417191730585660032270167657602369967978167748417942657285210062383752337220578809389430781502983027309959077790360383658456971550562111828596090138974853477063497852332250537563434145125267259040741365621999464022447023059928303809415260008670505556494475912157385841028639573884461806263225912472971051934532227489703715416413170149147517192697846935329479639899663579075824393977867502231415207238582770325491826039814420296445595356735447459663519726521463822277066366725826352831936666477658482698246274969774423609140786598265847209489492271898645948105444251713192134637259087304378127701106697751365826232590134155721703730800154323312198308231041500561067772107711429068957293216223141896413523248306860450786124365722531531595520911798501593003808832640618597549018834656983601433185777974927609600912041218846526978671603761829318747338410984954316159827414006575831249550073936473821811695990001001720504497996528178040075320730774036418146686247627062024623297572171850089415915187259945066470567379639091613692947928771474337865515798753373997201643199986234494036474889881341742041014833339648012911382966206853606295339164214972048752611034049552989648810439012142553147961522151277733974096727173168826383738472323686749361158264849304180071407930232930692531323874896681505640570444185295202392261942187700473172312757784435776854280285521711382654986077352310942644548450570510982437620511280669313669428552872917735143504427845137716116195259146470505252851196583530529874832945807539691368213346246871143016902975274906706308485953736347670513060884405260561894426674353912264903423327093387549392684123960567320400673536890124050309059595517909990606591442834275193036749458774155780720745004537378622434275345926091875737526968914627595895787762340998711752610492436735109164477725922430399285086583478592764368670600414166379207844231176354536524669089571648607682711174944545253883901248973254943804957875302825262550264248223424178989405016108086706395740032358580605525285301557735921107029783365501015686286123367535123614088060870793592594588668782491595575758532251327926492679854014466299652805307153056984351320126616677652149693164237322463081960316714377268251213999539193914021585935793393192180368107147389271031160756178891108900057435235140063218393244056833130770369118973839731652530301888057469994970613014310163114558653878806597879007421666543356703888220623776603819083058534520798022598064256283583134368182675340319884430610640131480694102268293418029349062509067332227315358609728922211079497973707349487926588556511431796406495901524718770371187315700476323776670940777406265995257123893990294069274589769275572270298464928166812766667916418984363748629258912655140266106658330621005349911436528089517689834984247559039944195144675962559396118594834703112657472144752888870651794585316276167570003392916950273185249804043659418731170940032307047519264791997966649494802422252293702001215065161698100060386507894765073698990896486369195110803362893845393329531188440342005261741893173378285969598147425116180198574648851132016434311720454472009763220747060473988194917631096667602733290290187416562335829486190357355077743028732935799586166164402915469388685404350096950784791236803244069358026854190474295583412054279180284493916601173163054150658325910316569251423667481263360132831754163011254735602024842409944323785522391588413398135901160088258059880512904746389980548325187584805013744819607183943021208949383384485770747618881128003127534815536791406200103296953917768833022698414345621490990295361762357923621055068496933052545673602662899029651090193000886572453801429573756514863306140459589157925749529636886632616758495144117343069348392369688853835479914389683459522878137722524316983877312097537068961787010433631888676491817677107022304141189217967623616399905048961413426478657372370551977955806363337447416344604484626165830266112735839458021593839468603267042176870417294667275645724804419616092853186104073111486105831825713882615898663761282308218326176029025922790125003959313029396998962629597644749543620916814304361883433151695209691489259783462101164490031101510900813567596321536794262519719689751849149739372355725566486124721950025664732882798716666377385519616397960888097383667642383921030124416194643377646954408766389457955583631280578873995583140211691948596127765829917779497102938481046387637549514691738855160156612707183483265984105003806476054703270059561275514716630208126860251041361257399586620906472320410579977361012913347085506961208113784533276607001717717599079732932005529288119942012748062017974613929899988108376640516666819849642157254956900325807859253986365917533221742916931210560150807917575887809737063043737558393437708194476752552753756648553562692113618214273076866240193667070336806314128708594831243403325816425039875295943948075726782915035798172407493339114408739621757024166880710648018591008388796196986620070749974401937664924772730961718945480799407052033132398128562613359476682470808589390356339380311127493673400833843063547161232360601718052845206564029857195437020774498838726989986328504469325485249997981672463275735962360430934281178146409218756264346801545029472838503488500094546699025218523623572935245841222265217825431639177318452750612213329149968134243920740375743600232119526212431779246877974144933616218108266287893120170895299796931337689349531701051609856156877394647889665462470691112658770188666444171693871501569585788350099038005939505974914359985970576527920534906405245200447536246411408224969221747660048924718151967461991043261039779106558026280149070376885765306757630669021069727025122796510518164376472856350478277026794499248042354249040744588567319417590760144719039644264028784796268314033476683700057822932875612373833927046843430031199461691634218921316183373607865660708396566466435686056540549136418913598678917733145685969032808822136749284247910918658884666771088852369159143333682001021694900294499930276283231045286999336467507333584845661025522211182952939913796168767915961563843486433470200821404613927964494228421332771936027442712755359317315926261284772990513213593123654163164902241240072320086614107504729489796839481385110092674976235912964224326805121364900957602480801864402613498780060678606310705556338592978962917210236318776776057490467005333984027401083037804775747886172560994558929926925105631435853729040957173112692214838712932899063160781178674105589040042476208381658097191548894676252978428525717803934937817615478306498982107503839882889730644295505100577826685845470711995809152791485281075904342688055290312019596282815592420751313530675985843012160262610311261304382204526186097645642213682124578115958091840559463190110880489841911998268361710498085052241721965612045332410820323948912004425284137061962983041817061025555943755345554073728836561518940745308373808812253315742624194275891120787383640792221221007180177667394251449223478383118831486467369634730627406665136281688988643921165989135144126193796370077768724396762680857779562128480288754718955583348648042524833879396674482094879145490136927279152155665883547031341861526606523459789383325472084686818105978069615905679303888385676167231739565143088416986369568407885502481129483835487556160400234940326643269684500723566582318836325331461511391915414918659440885535335093528697493872905774349924041542554525781894450435713295921908511929027911218270913541339648111966476692621652451942872662400311450154782602851432288126647918925356627010411624193015549424544371664670102089454045007587049122223669172888975916997207817924089357039716734360806220411066981629910225668188354845323308088577390621815546822721677076251087393868386647085359219160442630988601903990006703668132450285617471409222411239420906749693083314188071198997664998973752452579697221729464266139823886266514638358627369349497331741402342104652281345887574827227830719617761927358316811848827731859608164800869940520225278300884773383352282308303010220068516504655895596523318876744411546267694688585949321901452086047799840377226562304766315548168711125530931341613408531738638583954729590967168903266555034186137533229315614615705449502250780137684255069427572787999680062838021314378864323333832536686566168379637123262749172087334508435760643303867476125259115927462871602336816680310752527868706408338885260130030874084196076203221760879363809952026324390490157105314921490087603119738633638825020102521310483639520756910694944678928127022651636452018329754297445808970718393441202725520149833593126058057422335628968823469806573037915095496178996296723924097847146771459585045507450644065054385533045933891351206436031151723534741895422731407153929677558792685466804290737712998670960498974360881398511979333882947743642072926186015773871151454974722704251485731452489013928969749855457183704435470079275634311208614547683501229341230095494403577719214087260181317189655738460736516649599261960568900485675665419321958035908148125430652583298251758621015971480179254994285328269377118935293097652527736215905283359148790667309807795582413341096191988709029260634475706996795770746579170825121495863129492953623050080825954917516397602257007015676439704379282153547853825926657363604774674844927822664008694959403702775384462882702124784788614655069294089779295598724628115689021506585777714856313367639473284345529300913509797721601775287635181009507997209047401736464262414794656108860204100782000918335917117872418863824558404187974145387595319962288523348306696270484390426297080594361528754791765236277049409367954525393894885552055328621174274612544992954946475843440292028585465695734376234771061472043259715497224333219144687232250521657369855268489203238346565970223145431143772280029977454035373353338742566432385330979890389203698523148378109752414785835551193303487857047985040693884325615117669306201056221388087860176109877492037342590169126508413097475584815188481310590384244894103869626321421124964371836905364929489137603925986358522425912407995704584007508510552813092076887830659863587343289264107499527723215715241543590345960299135689723362473428988725676693440358427886017348952686697471275887449446868275341484264091774254572138214473554334374642161811370270291879158605483429456588852621304851118020432553214111678463706694772833709045314843001396581858643706407705728351499057757838871971225530511636914605479433179691696721480935682777000137744396287692834626256169053352885187687528498138820014870814874057822044177822913373585841455470848787927800458376044290812552216125674620773687127747295845629781627669665896522938615112964341085772497519509363380492815419521563952346349275504289027974081313235940230296171201175409043227766873734618327257716670863676626818945814275347510074885780466497206186261933509510781615650069141868654633885228340768152426397119048096969287485413607733689135389616814128581738367409718297175338264180083139482734506079300830593426181784182503015795775250147069630005937525573322961162748156698137334647309922187457483704553817581085597390997670878179546348663844346954488144801004551154143739607331802851319770912016667649252425821773708416126365354563192402284707331959781022359522487700586352549373421073471650578477057720411536163482433452054767668742085507454703258344853008663252416944141920013982272018100615234121521286375525969086539897471052686891892696050022516899857304599998518294611984927991255228789776492194945287415985029685599669432549175421145476425630254440302598210680414889347612103346337568636341004720899097128285556150032818516132533645090213723985848024160612381944876795344769940341937875505269134772581864857135931091093483911055688421566895644481533196574336977405232316013660839434232889751226618622726563256743269846517429103037533695329209590079160200622029194095751183479590918864808451105470443803139156253812801949693519682768870788822643955943594074397032560870659590850598411101363187324891592444126389292800394140846190969942512518499562658027863135855076527165919152556270432221660105118888695007523918115382172776948596434853444102319113437166616839864974911047798972645704520817158502337949316911492122381200757526292559108527978024006335704444414851500646995855701914257436759537472343574527604701734976524244463986300815660956395974450474851239071258243967835387780124628540734752802860261874711813980906571982392443759847283364826399736564547498789515707790330026190232226631000617943397883995608966957604504095202468322746154001518687838652426730260920258252190486985259389006988655853715079343113810730803015535904673382717965576137595248555526199647137798733544782803734651824201078052079513541394582986576470629976400240775137665429072757927046606751824810147441033798670047490877735668530311179873883646233243317332370587142431561071631838869467697861545693219698917417280156131871368069555323750846734434651806846630184146756890659443022762819114160289802545264648253592779550760945044910370966455658724828204889854432542530138439837117789991441369834178963485030613633365065589419030738252889024980751142059925214447947710273696364415070503586570655402168834526360400075582648004826358556192075401350637507483427332897276512942843194462355867977791872090695201105158685568463941971002210879730877096274078091537601192578653031455895535213203456702795162888822396044316479505860865082772245157528969211205190485393185800253943358374876934268013946043778774778334167188939530427903276391653220112219014917918280460378963817170961492315446590930822235367706757815483595733506548022181113096734037948351086682176605230806476499046006570155127575379108764328784148076310584405046020505533827960287356167868975733684128432203685771535910194239254209227269569862710190107539141138408078479411398588829891237212363714715836408857060970259962951823491551824723514823331574031155392372003222478004638195468720629071795162654094353328747042264390046353623188608710771116365018221979364494979165811480219703162353858744635998523472696632329755455123571181215897035503666510839061148864243388306842048387457380026580081331258670413129850928349298110059856773817622139832458309556353883418896884714994683608814923272883251208962989742122752306075516681288581765155939347257318566098583959801088268321860535658414023502055886587472139443533936589904443464489565415479328374049456679669780384261236548120073540658824928065244018634885627672151815311057842790907220757418225947610556257578390990476162819690833432359867756131174746485487502254717212846360733878005336713251407240607024959895207999588824628915954191114870681176480628606158313941953858843754688074413665357159389101146795599058430034044673043178457411575848759231325037646602322882546872543312494074158824536239197411309504619488608142666908551657224736901071311122946994190904356360170760480995584865372537704687577553071544526881233926990264066268117226288230219007195247998216144336145454979141928205842292467966779554546489190695270581020027502987569510528983046553020208705297872025542099315134315297065530273078109413299216854736394976181503038994595666611849899002133326973993601727967429388623718988436058771566306609315235217172007437762209613546234998734792270939365624626725315606199190462035036973846688817451559755197901024203284081179871079260830742602302362071483607882881918796259401612818364046957451225806400930512880314267254534949942224808692199737345332802183532858816204687253084158518907241704174203014447948001992208166927319036295401370645085902103167766510768517544158717948360669712097849774672419354704340143120755071902977417669512906599426479625587857023399395851061388604917342518897603365579614982988925610887240814053262346586629999590560513060190605846752197178273548404158278558149627187455493259023826247270980395639762047181109136712344697535447109931644415302182975851865044483875139339737030535166659990554557111013996077160938708918824487737933175942410529754250107283916722919291467528714270538100622262827877381975034729405886085666962978522906445804893949468903803161591364917350589905173525930248537326835533770567141748663468615320596265391134175763764578359671145271956093836096990933400911302602295378422911222614378229672131816274789464258213581594103901632687584136536080155095528518120223021677953067683958800855486108535418444082494008745433484921770108806563005890605029307296887688617312655388784034579309460242271668601742923335792783477430373780966454832123909957227798445670459645387652142757601238409386767845532489878052298348684781704183741721475878938234813695636145611995557434891336160678761265160094990977523476517444012701202530418557643508215101198802834231291829537382158529999584302581049828516057166332312095695581929771045085320116396416132125610069584550558217508680236647027593953866166810153089444892150182995811203479883457044038695254454390979334602910132473560509847357930038668444210162736001791309494494319568716913483039136503794318296859605420085416760512150131321868032399561451858305208509505116824275259676606488214555434172189632335087830802852542587026188593662927881531082189923023821350163418160134917642170812369307812751184059335627817495219699916076753755388123570987007066561105302608176986891742985629834667385487266632323068844883408225578139847314802231572679665991342075414337152901208060387465986712561586720271206628637991804933973834073622195625601709513081267174048696591148644748081832042583284354745464523013969811119915367315458674086551994672903130204900951163701202389866858604360292047280448544770294162963037855983169498558082912979395834645451778751765016451786912053211073008658758002323117000535354462417589830874395084921252101795333539815747801023058183799451690865646888624599832088160957947961015661130427103613932486944477646321244925106898013266281859084197238528346001564259403219770015750224794063730592120114444017998442636797280727224161756041994884120989460153278292434549384373175105667676862274861946080692234064049898485142191691718234468376290560162765585439928984185616935495831715674082455560985042642231162167727661946776319633165029852141395849534863080584057660991570218531644103943512377930438959758460077966378300013045336614505766869119476218161468445833953062214260214061347725770330941938228923528112564741151584185980602619409853087777039186904850459768528916189704499010873094136299158223910422461657498621178838107254690786233961749658349136475698532624776960739238246429334328029661024464320822738196895224447196597425179890337339292437361637175558521133407441837082145437798637035670537332705109431659816567404105080418159390971111964031437185125275546170896597961063627736081230716738052692761403926118857285537085886324261217029719665108583692187611477690067740520588014163005076702883302109832622871595547562364741654212564648244078136078825573915328824670856387932484952883756388251869139305185197980764327880682839199451079748100488402696112371765845522085443352290576107148863187617028521542890962710486900686266156899100160936711809923506568732027341128374029700515540617580398853144914123351363910522731657031392795731413329405135596061529997191331494303293612910536653585661719543996433948421824499148919537492371660326740818263729195041841990189449429801173026685267691638671598858412376707132776382638644678806090898829047841454578286858112786365908331451397493952271052665650488962700757791927622380138745536789378421841149991250140658069297059017486719998354780388300358725066825301638034141321510595315226952963496101480496544785977343040330290653638446150967699480040473786009954826467065696059485953021834805312161327231664080700980089672911430766500450671411489167297704535564699475113296872790032331459256702273440679418825399168666002531000838987664389869515045585808639522139000197712515416187422741766779246586542781420418294188902138232685024282440209866516872774903363799346349302589389053888021064406144662023578597665832761620663902795055559284299846962197026798087117584827713702363466267723849763616952972983936075962832373726980604171296356516400735094977617888796587124077374502808086726761855844283115427406459955171154312948963352453228935789575853550556384082693256666382180406125413949155457832009223196848726956518142568256295939394199207312061701759577538569159425382856239920070418599115187263280337743358220431943719301997025006680341341904013457514857408717822906215416371322316570236298188022078035764052283906573715544649346614982499314420055659241884662481791114295447935527878978984761193050215130416862287130013102493596971963440142708790258099010989449734526091879344420465236587269016757421326061266720557617068214966743504744264353385987191256666149152925831654872477228874493620952234516320435694587548842920428630969171526968691442306892792984281904467504552799595327595944370684343429654493806669923046064762388853077046617176072254055488782982285160684615434734522947232736492453461161021869463577701053097040117410166106089320402968818395534930794097298647997661234354184540471443141305150326598347750069617049546225249043651894541093816491968656347349676047968820368171598746535212655159861538036184067323639180551128407011061089841268974535547671448995774544696246518834360703787501579012167083548433640666685336353332643924337103492432222736140854314082977955878057198616840503199691220814632323402685608841827010149150134280474837657159172983212909037358129731550129911041973994263806459252337341836246205494125435626590749979447785244822105740344566980281319807251378695457130380240163998156147333838613649177550753406126582674570395234893281044896940207795922868684258713155551955914502798445668610549826956225618164302729338635044793212652331016133959813331438840968216524470771060483526163251518397721787827801451760520114844544132936445672268608831551467632459849980332673225555923667532941004870795107290350412678167430453621435822207277083038927692375360925452362608022644681236002040861018363279341731386014939024135398532634188096932035507700841456163472746710452881419507599941946852325845141009597642583108511489378762211931624238563933641514858718568406603599992431511977121591185139281586407817740646134511874588679177015103053553034669453805682631529686697239274093825078205251452355704887837154896761680592154913994202152556827187021355290937282846678153548180441173104961780431531127754305899360531042998153700271642758043809287353743427618114234646158811946692287002835335435765797783977159002566523716778404609491684566866220600992564719027422599907980044980515427817379990926600147818422869675271711027231753872750260966912185846183404735456567737738831866615007370351089741074298950866775648488833291236263183067011005808137687864534467892746363917513340150525196481667655269027487753020277750344101788354073967161313829069595594212858065615960336225989517093278778008260646262339830491630404748653060728306061813882854065883247841464652334500759611175786636983088052448156298089632003754279381433482941908641903541526022022018006624425007786136356299696198323594908800541614536353331921241317341211463888623209015140278281136297863753892600768554933536114697368974253764625909432042662774702819025672990152698418734855149984424443340061424303350066986435805518610965436513677517494335435112699319909266611977712767658713654859414666490383730317732483114918211028252073875402509346925582147014226837832163537422653807049699750056927732239837325922785006914760952816053518071004897309305352176350025139345075751120722778020646237468045947356170152332390101817032909260045495475563580070957699412272057166378992418326734998370413083213898177316120572223365793974907691150870431297697127865681467085491786980360567034610832994217639603384950721101205192736438295857946385020871392403708721780073741606809716225372353469029994371261741927808577838520275235586213632423547817828406860273565620324185807525109712033809948034512841211775504006416462289189942612791081592550724416308111581081790287594065825330018881932713874199754222482340754241352378368763693322229754286504842239451123731063012802285499363148847760969729895120761648982870653623720405462247538269799577370904565664579303727028370301347477012999902634779858571454675006257834666136855002949350416369597746743562675211942504940960299355292656090696547533219611721714366565128302568031677113030134129629194487681050304244029820320440979007012767228772798048770119421196351883528357582731591295074678974389576186336545613114082497840922472192868343919474978762776788765998781632413111541034538641835196144021934395602406743758324005179990242237617497149984470181071310024659907782204494217583879052874477635423509156897728387035803248336977363079602019878873232674363427037089542589978216458674079358389512239972171329179449763756603011116868987598912037174291104239193520817613732748462377333075347697926721068129969005717975723585727037911926122879356337925282446625669435563898420022558635316214070564129074970317426319931757347960816326566300101563924336614729160741646311043675364528587826727049088209740566829619230463525798890569722325357506704404492356845208153086424871026431204590334588012567475703017944808360555248831767485206549969234102585598702897724612475563585388371982731480632212082560550344575179465405691292449648521088126187686110432817975100888865003283150245780000681206574245694765916104430762358950226955760926459900280012295617349329133002690903497562151071066250958692382052791525233753909751725186018730145088265576116366570091951645409701219926993572975206271136360045027914357020852825424354060797354537322709869388169358402902344085645079145990559890514008063483075718884740485884452288250512157996880822533946574277073925922475141350286265751999649472461143101409902066038437231298034581321646156638310775079918931871640991000315634532111584754306476196319247839627365129802321360777532003682621963452731376276969877404620420913496430256515689514181816818208947504386313094676778031794378822111116393458844675620645227142467111686707784542137421829426424599759938770490968864895396027768828836665230286950752189581717442573416678323486659410641423516237916104948001436197992585148084675248643312966714887488863444566263667163793016049347274561892674153788974701622100896114290845998179475296201666047189033769608085629387492464773236237728912905426021715314181487334918795908847196010763312036151994033391671653089785617164528359302115451015442696089965284088867341332595455079217130919965358540138168652682369722335500907322379175630849648485567549354443583168931997822693132901330727764108772582573762426538326694825160358988716947000725839509048468626038573209566867651134766483426502849033384083815822085353147130168529852807059885443605972976884492891054764175895159218405224616468157439242279426784611354717583680165934258989747982610573134008999015848052633626983509007678763321642064714426942185183024614875331937210253483490902235383390834992907875949388552419199567834098897596753782502457383246248462646395162929975478789631475376867565346450579527752398584539037290914795992386597630093516665643820059022096476694452985914305046839510602124147129396753534473085582649473198814002879419248812930430267194610164220921635188163473641576851113803136994248957429863749745897771341762876387479927118798573178853704645951098691930206946585659181962224767779489664480134179743648548002399271275666824613814910532730201950371463890044962904109914908700180750589060567675013072051213340913359789268050005460503834714160743423978080111083523554747547451333005438089276092644618704167862267861754624373927852890590308198464027844863502511043281690595043020566846130267910642075036209780500940716922380972311609374149854635223259911364096778168729555373180368038538754559133309552234849528396199959759407990265554975150604547572231406051392724468543624166092507758938959871586110199383733352380447871912320973020696784800514951812409461905836308983430336629095306312303152891584816628494015761748492270910459681912746210825909426269456505288260585368202708775925276106719604944285396758147072633238896726610674298162694303264028217729254000162039405658040131244089515119028139292349789077973729551878086591302867717493486397877955418885806114023831231587545623464308089305600155156262310088955106805162336318044118262063471792435656105229571778612189746778298850797975031322466279310645898851007533648555496803441945550352378827897601475332749828235071718715874219028967748503103042511539841738390045539929463037790984307079776723500550714590845073369699425811195664938929934847109763888855204163706218827857250098571816879072356097439968699398424531237945405994733932438184658005224671022777046458185317540993674628038889459348880582042121192521266690771288978670562556590509626284279244728149813568124427998452506624042799445805192330470216433410055000094980498597781817150858249859826109758387292756804082418893581383413335702319424829584415723576818343818363263621656748589557675970269275955065772635101376701607188598907598088238048571145165501772978978362676959633540743794832532602104655795097187672862518859685995449603572244963047232185859413900240912391414931258196510464525106555144121967112538561162753382043344478833457601100029277395565009180321640674230253926190996700039921799120492760003479054772941834616264089311468004122871193577593557880585366406336645809994707360109698787283253910582067506048175041097683161248715446294739036812143554068723952211857590933173221984008132405142736445654194548461520043651699345364942448872959705330166534773323233777750494171556139472422758338132158185717308344142767843115931013787859974924193832550490977705940977652969937231686681565645501158240061440157927484094107067354916161607187493526601516619845559828430373426580152169056391484501025061358569006536511812685525296309131957355484382593559454249459983400768854685526993606808914732030890223367417712787196422211827224003183144673178364761036059887593696116918355750519564798993496838420889874156862831517474670811455375391636320656851966496521877286445281900253129856188522789484905821229868909476402307082038955873315778031952242600574787644926899510381374912048803365446068120549446271418166146137074171768366754151615841014448433844887873651100016456250662014420448032292150455519925113906679131986866981640380839281432659400869247217667805878332439933790135482027231434745806570186634426855153123785490897293012276163228098909890156963534164086512070121292166526606324090933572088676080562455503467094869463128764987255999169372931946323754709129474510467968642014132952460465465294939637828487728486078093668763345153942155267816691512649413821583756910737258229290222607195705802896914735207079935067865995683735680608381798761340397103214233338547815863859652565773680964473772231690602604933845416978440841554040385587854580750889386212557162771593326120168571752296558517667907591481333672590939752497826992121145461403905102157439619259841019546759476898523110058142312222377924511036154967747789084568700924246599697242692413543469620963214370684458896713325744366669994067393647852574433310211513198877619911051222766861966221696884704059134189262535341482223092928558153990077493781091400659715592331309548036912855242887876475492317375781920862703708950811056857009969286236799135231365793432183454148721799371554312926548443073130550877790357191355996599268605980444324525997255162709119095823687430061519696343633621369953192459660654356659622781710576780446094974401488551789961928795290944252493570841847612955297867490928944330853221224689644028554072766409523571080321004054378412951609627815878774620720878170681294020809294023378006110051299429041736791429329396180478593294006251439964805381211096039703657908212688399756609868113579120330046163283677103323898913079916747691465585147854595324044592978154622534159462586592734605722245469934042587570064371863179164306153707596811983919225002565709914588849179114381361473927131986495875153383806217311633378776280847445757678614875904388861342516829561784447828761735018015776188870543911954738310303020643857078865876802188784374437480389524676706125094307865125830683710155000849256308329817177911199676919628791478511514609339983281877058913877531106498032035181717849208703597893120794655316704083480934219344515060468135334788407790572463483324474299960433499648100328183131515290432118282694018803584479910200192686498299886745935298335504370691292952016590535117448049675108944091142675929787695482393996285781148912924625947000749244235776844904573818490717852303285940374841999242408209394656913667645709243002635061911973005254647050964238011856355031462347155937667351275165509287224618226594895322177437229969089083729173264273862209636886742432687325968892806625027093039262655165286624626890525589361194402808850831221657125029274276895540566703341669805847762001792830639800500213403567680239294201718311103546135948554272052751365753122609256746291039984788299946092166768398281072083932603106040595771393057036615570191196799540704543704465195864736715555748179729998356627695646627972841087479534301099177208121500403205446837932725047760094454436752906869244107469331480055538271393746550307985276639618742695825935289797420433964728768574328017915309295092960893515312464975314227901118914135952817576942895282183993230975787999042160573921378730073355989803012758294218004330712584648004347004883876092826514744166258805491669236766755270400625477857536052575120169634723245621956164325070607852079755823106256291864660099251826740706742424388591309488484940021697006656293928049491787584036643711187153121824500783443152089533320011262388865486544599046036912083186581865303092585155774519487926104431999377449222937288503536437240626357614901088798152252259803578844861677567803651871129322440618585596505957574194816565893269863332071557000831541973300602821475047212105200990436495743151462815292713813476176718335343198757929366769563647061533577273314758520719880595994879663125181902116657467314649530927705108335027043544859609993958508304707510739075499552961749511525179663040041202790557457009472801023469033929363739723468094226499933094977235784458803963648308797694251318830944813409062120396705477925516816800415741570717240872613303805546048984397696626480417422956524412285161363371978131444972324710844077795072520077773197651207734762935043890936081128450343174362246616596959235950760975035233169079534457117309244868957611976735099870827282139227546624393740086664528905164540099410442350387859083678224235408904579769666672067556321502145469892861461983728476322111184320358816287824236563830646788871990912684533713606924641094120025517197496849109134208844255059368227255498961764280271440058472405963143500625343118375056859529864819290147996783562566396576229790080385266832896171026983908247701877976249531779899066484734631535834158941633612321445361373909173843096642702619250867451161792545217445601437014590972230899186494212454462366589468824895985685385991828456420173279127465280335830211630781994178218253928655092064297800035151842199256305438014276801019264542821916509449211106290476519533227261355445794597257272837362334290811440959472194053443428809434030488782852477370933482206300774488152645327204132144234228900634675002575589466255483391178712988581091490643035202758133249852581502019456851306563989304492798625964780982098405280656759647939778426332329197458345771931645809485592199233401220510333316477706261923287561887021057308611950658193415015347615090497788187127497572249255140582448881110482225937373305484091722587601137914509582566591183306031586487469239878177020432949330346002250904916788979248538419427424619972822192351399600975853406237232586469346727867439680286777382053077939260623543220883491157762993637863214911448921802095061223465975968489785231988487919040781558966201521521691911978063536320567616501776910845609060604969376138728510203988615776152497215060120599943125605085001820375200755828637529210697656992221424325485460183704840851599957917813341226854937298480642759257817591791822284259462337005083520849037444255298048992335950022127675670288449619540534452452033238140186903775155292135177407676504695438805197733596655490571222680498562450477654102741072029234645111787241530084990362846081343137224002739362057672286265950923904455879196902142795683970175370938931627008117943390112066573917188716349371730728318223221895742976335030245447755647047947096370517714681967731100244606121724451574909300362681883132619759094213232618516111453646013855549710174365829953359621647689337056002877042434280178482222994455349177732885073067377692477985603270594854985825968632025169214255226165833321703018239370798432844570092714464133290074567080752651440462632923415503885309326264262005261635759150399211990373333156302159415254198213559695978181566589372645847527703655719523781549791354936667846112603081995388394887302363223474774287776658662211751092573759109385955347373522995293498607703038879897000569910395361592217702028167696831973202344645722510625797854413988076777903058371204825664904108642901794394865343630125184311171051521500469593293017079680615722933632761530652711893138781482380144798196025756953943269035732585831275775702462164407109304802046310947585570327807061602960456538239290119046102147508658704957273483954047027018595379538768170376811727102916843836056935057732788801233195529251189641216237567457705558712715889819383038123450798558212201030676054020111930471465067454729067860007972629095412073292779624008266812974986176668003904279588157897005560510029080443436080024517501654110564673142124539993629149649980389834444014078445853669426517542209108792538501448651721582445554052015788660763619915095620957800792765164483005780034897371355649531198811209487090713325332703416638729975003058191376299127527548721536061042965641918723025347862661303107428651652122931940873811756274975183806177459277880193784842065201637157509471805899328248721271061732659296857101469439533241179665701137953558276312203303596354161822314572932912703790110976140053209363788076597380221525397466787507182210891360615257154278465472752463109558370056886261311323721364746792433758417896457638645846993787466746683511366800574638228521747042774255723397235401679441997451108142975154548482696733004846663197674231343710623758501794183974384799988432710298611264312188338037220864274792697635480719068963964846509489514502571474999312472324014838155109590175878332574351440548909394963246606813270591676384918783841414527044414283163060588840752496783014523972609926367849857643031423429380068472220341799759767591697533509774176858520104543168310476942759228192349755780704093872076781922258950591458585794019952057287653442174421015203946004967568692570806532717589739745608823785611143451139803529906789056258874372718170101284363025545135940453783764033806168267939759493026509997092141561580016770566443887713658614794742875838078540340302359029011600495542469335364088936171243066188244534772742648345241701654491941087951052661062294986621139215554963967330144733042958397633050175862602001894591183140251255928151136481424067444943606829636929347307278084743299796311776753542360945791395951858917816338890220613438209704978935473304092815564878406349477767513769503197086346604226960924341006610146893508589048544651097213600057536723048702709880403052309489301605622092009554868513121651254506886576093725919835531319260243863859422090709354816862601787961817575491545855151042961528944987362541903085434573752134812052288944848954206174128383217858399647042660566014988658953998015544527835994919286039874080749919465375240732485842039223563651743319919165973918108554760911780697383491647395446834111517090452989991784962930176812224885889835483671478894081318879708708005627863161927461548267104819467174038273204513581291510931735667464146598515503992461429179289022963693891642859886031303967187555855438228767461142329176803222041557519061620451841197615140450418525517719969499854918144015559938423552570227279471750671679161590439289645222807592332712613491145626316298357665993662944332668371925193677079416258725708571180296435514028167352639731498897734358808026251983835467499599850968042430922721866644719486081641891004337733199796751479565852967534481417430926434348227682541547971984447288907627456604056297438426581783458056257184489452396879308281010311642006953071436518828234182867048439666277082397982777253972889843814743114704776111175173391084672158230342149977584810754858200902470933242818670998530806642676136568434883688161354646221022611380619170372131227620467691848026746769402891045069649785856355013372133386086445399173712857719026822863768925875551473524369091880783037999855094264543108249105714920359972678063773700768152350549451079948861271652672250813157661555973186629961867287265752759428864438286093056021520060708326537333336183994629913707176633043020552276934500862315479298374738463236824333040795916431015990099364974399338997514838742362643400353540354915841239963613482236775227114367778340054921197222833329491229369672842661696524679181562160453403222997847450135955614647143869843993719767257921334226869449131537745054085753425803482700273903276084419475167864323358437631913358282351183306867949468585696771819232412500859121657599488671692748954399839645846877723417248363614973344389312934761164453109282270045747541799225154917392086504156208603469016739185656763558823951055969634153826370409465826842224383563089626796418924004280819245585790322553816485357214200621533561978409224911893313436273759853778620034732757015446353165291466360130725059722095432003623018354164105098151753607229091650094383266395847716528705238145009738863760300678145061793302631187602891241607850343555715626558067412900266974115577583972038321194891585358162399621930229487324202037233653305512225689237506613284071268693820161843029697161903663049950143590131487287159885468274309032761082388013488259997737637012528042418334494802907329467056676941391994170524706161006559974603590818553008334027555628649478592039356294741477504356050992244527240942600366871045176861670685436413498103596168495869053622046029022759632812560240087571961585404405375354008932615068149550439578055994521237143846712179872876272946398286858218699737912596343767268086744650143148444971718457349772197225862266113278140149609004506463252590600254484629547465225180977481607100879876739185485812509856598094902282059546506969186948371681403109349523748285695272878124952621306455138076604463228420480522574508938336750692274748092601736221300358174944458771820259037480986684223881641688961605354840050107603482067756019234502753013379285292076287632475064731698016757289236623822957104991343139534552486517109856573428117234147958648994653061119670093603728834169322460639473875649790229151396305151396957303351645592218717936511669517845693794493918985143101628688791880928088937312700614762492706880708611716015806468055069342386156546120412521905584493593342107970659275841684460017854167135779451517209035505325081603217319488102430524544087282956963817740551473138007450450336930709968101680747169174915697868367559236160181872365261019086089780850934938525363643384324723458585750976570481978947456922993984828427024271319229293366648119074904214188715802286887358342897303593689883073052042684726148508123209699163528506462856791144901407116286030667898829837780238611179833193093998951571430644322594746658362050277775465396844601393851518475033627205967770982533406309723446505128865284593878712742643457289565216914466122957982176263160690506176048708131544085759641515267729306044957268455017346549060148175231059552396312443904091493626106372497802696725323314963314701479022322940519811176186145536222824988298299128419041877202515333139985371750881534089062427810281148086380360274891497367290398477031665436383649475443701839730912790087568348161509436925420407749773494192829334837568932323070805331732928286561466283393089952539396137051602619262733853904027993561348207435491664581194086431650025486486162587712841891440325649388563469358885698805483066542021050889158811076313586214456705887836375899528871253139847555078086839851547758913452357321436140919797590840702519526059505166977031583600755070696845975138741322321534254696766737545133437010939790104226476034040592531420522487009912413063812696224249866924093645324225896708524482230828710738513449477991311991709104190746446856201943171139447190366312471421161687875381082827813831577055629423051163608595124142279616162025680386445195340669275114173278330256941350559306660120219546438944756309903066738022343184535048208657631366973352019917637674308849000387739227100751578135161351226623986431301594195105137286744695144223965159470415474766158836029238751186828981595911642486278955130822565584251695437659668289119327206941297355500492221769301624966694148988183254008360215399339760430110922726632096727360352841956137075501843990102008478237022480975626162697450976876000710630547785926141913549179213329401163492613002124456396760036957520134251467217213411052755051494852389057719882592699213282268251354344272222683911149906947153400396748404492358328126089798821853783006909522363113551296901333847844467910051304269585799673034884156269063457846340063878629718978082294446348425703229169994298107464429181018339003040494195769864707671088413644878334521167488884733301928355572580316714889577627894286289719735807157153080432200694238036913066799639976133674373186996187926630671113566250630253484839926091674094965884964922966384637833818942428930395377568718865863541145714809687578066345136253269151231826812058647636846462276560094177254704580670936034482220718871488256660848966973222006917299858267605126543831315773435293131985979341618811570882291462203275480860807928436214169978669910601230203102576812847611090084977851771277148473741672618584191786874187781302281261148001205230782489338435517120809690411563544644720977043313110381915346951799842792513310019007008298274346532236078101082199564421164291058799623369634686600304319086542036294106880452598493095172168405734051996839859765045175309173664588363982895593417550764022889853318849614615609686118512005974358343232418712829126275709045702345935312734882279217019784017511680976257338858136880923479994605501118820389271618193210089202952818305630087693908958273380024525549824297364764845115649906556616930871772878925728970512422931528412299816854790570582735970197630705140395213285956310786989993610576822457110142563965990859465041729084914053223875058140659404761177518812577588951557346658777141867820882781469459272202536940177662188399743202381604257940064404330426429749273877197956573488863148517683576576899315976056385790432758940337755310742200766404845566490264387146170601274288047467800595433959779596740074352157906233479172138026528025556458029035066309358814511578491112180881872220907741171599001516126947015013175064268313426361556145240847848619111712174957242268180864814452295940195899578397161620046325773084127233437943884402115557213663104647272277865589148243298986793879408884178728195100416454855834534236007346997310349474584350217758691303354010791195427749978246081532607994501288328357419318137643585775817087855281243332342810004400091637142032348274480678751237176978550217884651143912632170550498626617353066390674190482032953456759562895634066279053970442850193924603110989314673612878473690157177249077839199708439007427291769304231778963300480712531997317850126134454210330156164471036219643426451140463845211217521724488194759997378947252302335303151734589439434371868975711551088968132840199417332010141881151425776942893955524709885877006959954070042886438157336275630023014926707297737894415526838831225869575399667726584852364306200018645382737609995224236257579158606035012185017237030998133347300136922080509048978927730197659845859594417939235413446185670479934144566188528117148423067775462778190142171327756834804687773306248748008366545347447617359159277550652520197992358462165042080832430473907213479588982577298759745395205868416156734399774750399803986899159200490181816945031539216203775475792035739287475808404582812367255465368015020026717842013265750966440497091957657441785588689914011098327598318877145108728062269609827973076706273422208207036528135389544207692625096086612078324883960838777920785775350560841083877533615737604458504021643671084808241939013439092520483297868691630681084987317826240151251122561665238698117094889543557929807523248717422477897722095936380306652090145244818182593963722746714912506397628811161617802393254737309604780535483860281610736464074648754531257258359257165139192346762314205186008505407337729225187469886195211858406993450030581428971643954473960886174434663473928174639312381287086697633793337173257429750365158918724595932038646019679438869482632396209207426520274239417922152631551439271499458602387368398349508711364103503180544480717439723230567522904506802224675321322369443127134249987705900593688475895112296232804822821980266707188378247874176904271892526122920419897796153773084912074368323513370599910914412634333525905793741023592981979573839526828947830609720280558076757879591865154358315462722892507350986396126543934891317544528415629625874077714480970877484279533363441344137051472482309686085888284564509891271664253138167901760649125921440413524438017132132881802130941807103100232230644910122523677777993720474516589831726347412755184228072250657702527817906973166257198865648550426566128795471874062385470550429301670791123483561079095539267404968872628501224023040085432875210033568596881773532034962833396384420857955036867605821966502188445537262314282271236876658621692159581439082534154840389400518595726896203961073159153129559523203281942464692030767628737083951565268462507040373484529993871322110753410995132106524200027939518833516643493309964142097059450387606277203204410210510285506614710369518949658335679774350353087753993789826115646847983373396234956626513935232300778391444435982441882445288101018750690838661030147052557658304831585279063207949367739520516101481544910894931631364673805693382730521015223968305117841457038650451875752608443005945147919486550891753719611387471724493339088071802795164448288206855661189869967638436845920985925750650240733571117179585038000375674072533663740481975120760032726211310089171857240536631491282345575084168087157200312841019686138030644923971089719410394654522308084026620305158955470179901635125271920551022540752945360149099367465584028501403510027392527114620899617538872051836440732426214881333956738159395347475408524677262077591534653846861582674552885368495187336269386514119623263632939904916701498068325475778600394095083772374184325573363852713593753149255248421369683382967093763428449945567831071189354834241814137325326240716345977814407379761115854395814972569082982205463900962936773789568012336298690233298217723789778560132008289542363374360996679656564663757466112783902685132135016537481090526416756133826866646530418415703184451381217757838011663086593982582496486074125175101201986077580544411623805540407431914863585575947407869875832893947807671290062584640242441720315443900279327550134624191710545405506711998209041434737419743414148886705778871319062069209888621954552130954625518039318617728879543344743828540515794311871637170557637996031244773311179537980448340563642880933366966907088328284899804191462054398816504225997012814334362965270390965572529027967461750894321885315596738560495137194376254578979118815836800224976950320265106695653821088230596867361236263230157684079428101582791233569209823684396973627471778250448145803890299504305646345116077761473903469540056547692270035284245784423297414075156378237929775563367226000309223031893884599110708968880069494255089048835321883342389240039640709775097432321323268843909685170117863754799625001331882285060636251285930722972353344000388753317636097522010138663659576862056063512874847429364239778027410157525434442021601767679867143687526646063583170207716825590296521454799380507372675002058234693984680295793992119972178783737777015982910460606045119565926350393887158080710766865794041596196312964990142143219350608920616432167161309887649449541403165656482616272890829409733031649101424743298983580419673059857001172494692922440003454621594131285504803858020319207177864915092497737288617083874681754296815172061747904002373692234792408947790846423649377651991737892412738856245007048714757110374868241437103750292457483596810586504279830142570139723968338935319911827200225030067517223683725315882300252100902282315255969939288533267082993289690845016690770438691230860869566788622291106446993265441089885688701441469309509603550342668231913492106393211185725840140108045834524964232646612679334620110254325654342822672012711815450573460738596839150990675376499260739521710170280584100278406023361839028344437575070253406802344740661016813802705943812635799245241396739796650221386789456213694141367932013873853982266883912541629993304016795539916479050748910900611722072956448027760377020507416247790529759646356935591080946333826029928936099743306664560475161684368709193530332964614806532759397507338285457564003762466783873797072448261395741122114671263505366313171816025322980652147979946477417544688957483022328729133799769696168162049447050274612359718149663653639357566830884682026361176146237072698997024131774420569411690998153076533412789410028498410653795851421040006440570461653271884233436559779368826803719702451586943498903560384223596511965445565133907341871246222391074539481320901699309418956059372986757513020377033572493615883352709507103399492517293193200887545486571268508336310156297148919994959274247562018591968189807882071563153048848315616699378511186019714896676582904394781914256147169014016500063769450582776671525904298599549605362485024359085815087310397559542694604692884410154407278525322772556943083291966829617520717533584968877488989154071072781841335781179610913364764230332137638387359539580849170671544130319112832314813566014356201490235773608902324209969026361232370598535227115337888177338698008413218786214541136648391895864642535015875715692777229827586474533160555445865881655928317117096229369284951928190591008566929848544077483694639338968987186440465655576511662853047256141359296819221413182583586249153726471902267334932705594971081647925448970394973024196347472386514432374043299172060294299522855351037386090890788495925444839439400225466425410570470837279563897622801221308960614941726774938201238505834881859092834338998283453796181723292727728467430857383923056267845613236935803621192379850982890070037341822818572091349280627498582003348047986830315253973073993095965211394289301377092439318481985979456844624045594838645360927708743012441316043202475286172564216984272961893598631833201486768377508443590234414105860687878617062296048620191298204547901523497899850836486397766142002193456156605806589095492484527971003084692956753279226655970693388432500937929394752826531663371047145973074998543675977337492092441057530027426060652741500760242458134784574214975076805500348193732523702095964236326444872412107070895520270032059571354441460717247176266776230202711427555133073031308681461006937797935905236031078246835205454219950712487129117515592202331314849474115849129613987354752437928191414252541323500052971670524614141951978701900116689307046199647330834657712271729652600923020790738195075407169300364210665228596538748981455591161128421195105285076366635837112485280748912759391655021477929674696607275029477457526773985091003522583596108532980646665714607277947749651812910515745975381382052039609193523995413746441829593225049294426763561619160744288728990587005469708490902974267261771711068061165528322551943585091521492480084663940528405411479770301442791985108662109130828149807777533552886229383199058715593890038393523367602551300026333011573707400622513779021555894318690728461633689012900843845241152076188536927679497457012913411033980278373781994980625392501988222396315158040584500290069269929503716380218123450119146042715387818786973354719611516722065775297209138415416451113939540497507851491994397575965549165416648640739721576988156099742768287996940596472425052197885127890299118870820885931132474891878969419300512385185024887898427249028841348924718244425591617293125253040783625011971521771117498551751714221729891841255885517332321888298611166035506430346201696917290036855440163100656343279631079978128947059452121780660635165816687096035651742463943805906145909831353960324458151099584496230610020497398501858976634562112853314398593372014764472023300226520685383541449827996050330959884028749719726252691647573129495963986509174094706534149379796836899435144479613228896447911433758280313741533636681794596637237348894282482544813713623639389511950392014319467778189456416792765442188648838319708496575033766713381831405536709038322540900732101475486595579616516292642485121504489822938970241768342492814198406902135691016495166210618168104957521505952798983220991239989161037095601340288712347883388371624373473479638941382137946907157143322386541785446158419768225709279649078278937889578723758524658659983924822204572282154342961966804354153812530202182974380086977739026011654222937607061194658508384161048429973943241330836020590463812633152392135639222088103250436002579577481467697541893705309282157350703560311904954604080090235450552889495183864089578673266059286706868614294572091025506284191870699180738536606940254040068949465671339187873895357566050177245763484258748645181238530655318617495757714166645870251671539068941968224065379591706020343354046264902858830862237496309175843034191528320442157893345667799105730402416042054398603297153159875199672151649280391100695567328934581931755827195492628183055528241658393708021303867434786539211884198347567825807564639915839209785794398178726381646311811753032411180471124317789412745972699562698335017999819574963403058900042379455434513346069805438298423512558890234841475731386338955200170294837853597230621242594283677661911305116301917083727408110236147726616476278721205158412129836363790906038319751445888823230255920243359996566388001272233027789261561924941038816402921837230576306415703046168861282444863673281735895811643032573977043027863002254351869651935771512424032647367469029292505229089672597244855195474368528865624493302155072310639259722481236851711288857049754983247748849178638889575587534018593250298554570707083243308694881962457971054725027862883096583301364668450021909312206688400824875313948398402894557992192244000738592709576851719062472790341001603589035500020713542572598704261006593942985541044006950252505606082511952455534839224503783191937268522939091104979978055666009950931293123697642810568136581099980962958633898835350924450741957732855894617957191628582618798281783360603526290143369782366295821684408111199456583822233360829125444495873642882690316039825859713711205738006679438022570626457353292163121466910665262007432724194626674344957529364838050955259017385123585043552675890697245052700626731103866864755827760582076175882827660395718742201768648330577401698260615390941781932844408677230957553236886172628636037602127630250180278470118217981303100305435671175379964352747275702303228541580768855325911845337322132968971168909322624759013797300107629158811960068378715475739157503212281468242662340813817550444415871921140153149941835028088611658224490548687412770530789432667671445967719001291396120739115764234961357287606291908783948845199996644676546394714408717896805262460822467263152245833823015560083335314216643664244809187724639256878773621386292141341671826346285021492346668911750299743892970417983599306789735932463839853877377262257269713602635536881123375947886542261712484227265198693474179640800493077003906662290175012147237424525869807826505504975643510531744795381650637332761795713293090735731518989618607969968823620267030568967773867087150833512187590072438770105865672342007020855384307494858649884342396056029281176298951369839114326855216959273087251066327012899451175800515910626119307881395416617484154065610926668573443550280852795735298638372598161853147734528114335892228491561530500488315739722847858519664059625946732198313241425270607739512835759517523118710234110300900280572497173577752955882186379179973264833762645689874324658177233753604583955207530414198757069862617445507360552741026846845927657076899409130814861029654233455568837969104303980019157435249396857093071171348246996559210570359182984266784936315612783898226077214420292602689306052338525583054199110273675370667167300194145298007634302571377885382982014213448813815625817916912754104497552258180524804898198514478541563152974583549171462305238534026243068491719958541968342452206059529592110034879856591543396517333655051893876852833769254967468932357129637337985307765823922414493145031873025050337934712336395568131673422516431099358200168670682784511654183515654800864117890926754508752120337217012508109724678022676161169138332710427681182834597728723883033900870649661956115462287897648114548514479489245621288252252470833805587638881067697846921375945496510549096941516990511950093673473997031735529961620803980322315418660149690956278282639115009219343142097185422298566004860843181980747211861125793264740059004749194203036518618964456052254342412982889810908421313338016068828890205169872461580990449839752645907214300591535667788228190794666503313684970311581630828564717040844351427962647198440166239138460694578598280677949332967866570547473172145655764451152057298981578662725248860121022965644915265004459939138576042511401863826876343700416858487048404419856419596084787555516041926851953622959852012817393039992523283691030035929958953890656415543086815684898838257519199965267758857385470829027444590707198003219464025543497452267519530828462825791037766804180727952359434991476433533882848698489592369423370057286764956151981449127412131353155019619558461905929386222208711843231878150565397391975863394103318583769528116033701905125220228774299052830093191234212652617091894392560530562201323690549687214203297811341791379915782390366869283401627857307689524434301989906501081575738143446229180243452752992440500551897284996737588014471556080689044406957234680332146085319494936540953866884134903678744639727239936487058366021222050614414212846563916118470847122965091514305927882628185335959832748731251301626397357394304709994846379462446961596118866910587102625454432445234576568828498578260044837608882793669707688842885888383635448934930586674385436981746211487784790314769414663765066775042440468365404992465755570191456304277646412861427409792798627646857654684671729625119676793070628662707658114478070824472515582253641973829535725066124955121342649195408925146492321539653374206214683247399036450143626877464095174250638307479496622634721400197419808539750232026836033493939901777282119122428259319079773018803256013264001934506836679468610746842343114638710880793776405444894879851351817491218809643321002650622559936019259060410972370975304240034351623699544837496625339704944072993959925943367311848689694982328676910740511424914451327662355088868745111679509706907722889628930765522424315851330746232645495272091069241824436932910526608039734748116400445838052482533921083802909244964640402139915936763495637980272285627311874537721990425379279659072529766711734357789968714712235804400412370784392236018541578223403327076281948048796797849717116530061899005746088355418795628001083417229616885132665424637136421926327571447141794175969696022616969621777145429645481778956015061093022947908696707349310371936189958886204076845190006554736231838018018303022659719206440437881271721198050901280208363265343168468979384223672969841583745113271465910294100883321788421096119547440677296911826676663816203540938705941788676627236808961376635286922779103108554703842774326100231004607505867157277602691441791309189284454445436352162154397634251151174061254359251745909113266959277865224030343224744109811061744193181232239114620977964006474053829494153342321604898660080866745970250852633753205684997004182664584338613714471486643350998061212326601613923477158580309612913576514784541917019184930143373231311008957278442590247851001714724741817410038832461478343481442597384579064223160204674026695246960336070743236104594903265127673282665832462366763193212024356016823524067173377458623023014393047901071421890332920847790213601066873764961762049461082622173630789823754265422484783798870186773897476667902301949870376995911758131378757381371363226052317156841853451311435919537250987653460888385777427522075965366593379283322958045758211778975778984008323721308231032469814043236414666568077815731045564713521706817115238849855257496366588640022454448736478469143056250215756159105760204430003575596834589231018012607479180968209262565911958812213509123842426355971172560467467086070570468952009106940552893669691714724318970001556373862310452860664183658227859298567520281811606767701855358357797622861212668459383166756719932675893302071759727867783167044857472721612134615509182099330280472277350603005174206122419635166620853215898821918227802082955667496528386835085790555980158088141251546493740212617288147816582966062683201790802894476872726192505668378433970851993994555683856924117112515882172911166005711289824259690498706181617123555170469601687378675172388154540902892251681931977297929016023684032564130823880939703864821339802346451293786588952745645063834828261866997119049600998765754478391456614583316795678424993176546340600734652607094959538026192304527136563499891087794649559956361134353763328291724151576544844893061432205535826208418466764692827398263709958268390717628636163090732333235068562371429061512109648151415670312652192259423647742971350790177169432568993579964826255563877484182852401166811598236479077737138824362374340912155909871982350469611708133009692468222425988444080137497902031409680454886786823912464999344827977820208093180046417646738097641690124801123950268968715525018579628671628786049726790542250218609302862406863194633665176758914052304345612777475083502515734119727626833107036661693720236881707798298288964138467054241908950240037945864851261593265844950852278822603569864384089027308395661829958792162642398417960075075164568530124771098549372776177991089418897532450431084451819462411863206723891570991682958393602676800860693878513576366655896363907498968613514745261154852643938041622401634749749556469166240087708558817747016475250900291032432225907011673154596435353811668828217021539255591814844473345370371083715702277793902371486819392152886919676697998910819467179609750882030620115916126748931538083821548468483706186889432327218967513413034124670757874840548402341373998313115598602759250317717279748616792309915033138788512406434735825095488786757485480454773713807690086963876792577772327009748134997511836138335337143580815138077542102382277478312334104811904122863775853911800539870306097684843343375800015937769201624295545145054343192836373021421789517361894128580572545407756206170513645584184193136725444475731807490792376955884606744064839882390588531556323701198316834778318523798423553028824757137411533990810185616443423557476084997986250600614134543165814085429300180382033906291192189105247090770503476061998385738491824454676361751472501005173927080664359129784768079079978837719628134289423060712925276432885636647641117915325171653907158131739422140448049950495894400821825511348269824891653756627226135556584767048702486121809218139158665690224264478068464504641627190380507337035566081989531513508668080139571212600049079485842412122637273652533254575215570315304707051759060291452802595685744807665079089340986251799190629541414086262085406580471726889772195604504419813264379154303753860695840727825593633206888229350916932018159737341509350644282328135897746059143359196042427255678630832362030072401393349873156345739000064781684141183582188899434896910786186789282468720803021891728191993084140724861446964600301961581730630731110604434115688387689976180364908534948454526502892652914941932220870894299414603865565855452889124665154710353498380417983028692725783623421975663070403573334405831841502974594071724091970162981000256802943189610184994479195769641290311122900400546644918776541339747319028247261395351244618042040186759206232577317572105715891013298087171436389450884499091378475121426886240059649120647372950974851682509490236308295739718909156905432498871412046950514801745622009433480748709491293188218618658483103474193563747545854861616345653243890668629252131550612905409624124192745747926351458982931910563520466967845434668160838639779613916988474545062378059928783180343916011091055011319256593715700307286757844829654052279171410245575743613102514187423335794405448779962892701289227499670474975630049420190563122169295172502723621673630193851837987599303720594108290484261079925922407165860268087007832682853865661434829465401976701916812008579648204965706314954587194628984848945616473543988954249515377724749941683623587187565104592670449275067165899073351043249499374921047623276531760142155645805157629724718593895083504865791838983201430015450477791403177090219995053573320731492473398473940948821013673278738384337669661787679708926448297556600013826460942748891267322706229929324369257896289109508578969927710587964592063814350612024441196357501637889941575312339953704224041459019173007481363817322285591326423702831167492412704566697656826624520152477073492645261593711136839937073644093768468987756425072603505891072259429809778192594418361957481055132746198110805952115961763099804931741061445888579099999480486410154234388270236051668190531727074518197116184869883856019908689565865394805618318407395992983640215290473121915020105860553351691199873062082623971382156256038281971815105223362666394043872499400805989031243193046438060748416765089314327789361319366019942850187988449914721371450928801845719856773386438683854666142530547880275064161325222054947984454013959557228440081035817897672250916449888556918215073540812641958812930980252457575274479270505881145533502091422070558665613063267655704180403417147686596618425929675287876489646784979550983001084673630177975956498073736033452611611124890584392854847407177183851673914522109051994212127241500194212738671149542240597201430994437807506556551413577949650758117622666397772540136121867239350241760164413740142872048139842297855012749656007167280807563937254976071113047380340697458617468840269451059586516639038217991733294891231820053254395675248087256932448293037877384423078764997611230189468820914447510916026096876071276695081395057096941827404169905863893472840955079887869899247122661911748563299348216183471670208917888209864189482240916038100666963641553128300716312136306948418086528147144161335773276919007109374110431910337873899605520526986696395080440211441218577491969164583506410684288624955670028225652241733768378813100178788759120011317738690709453542401588369023776510277201166103951689715735025540702184385228403059243765840756508598165257355447386720482807588385960448066395439707256122043106668980718756256849962218680413042568828308019802405726089488318972296927404083967062685242813684568606920929012140412181101317240402311050618005531599399216426542678371990813294675518570872835011444766964245573079611403747450344382366001579071574064624978730629962887412678825288442158501773431192832094079067277821515209847831541019508911989147231499224717408058200964637710853587764748824357237152045214479132039241997479097816943355041236842256203048382588835580617455447381748736647154493757389696546911781991410439533541907891270021393999588674136907279199743018186009270511732280241753724302833249752881406615913656072741018532222791719685542209016915399315399733710301386330157565682780405267859748519149882241758775397577512979260922436072789956389044127719839499599744780172129077274522978168555262839999119566402844024826842323099176923126818234578976607186784436994697973244798736413845275282650060235309100894676980368571400186036448126438849344396788386762930920416735037072899166860761425530875858173343410960208224009012752250336517819682907054334103857235516382914408468813841058893635677116697936709045124562362685744520349875763336305517461045791016166724611641778380899270138842162133588674528483163705693574619359958533295598288986611709612982691714416816637258775203055529358938606276144663489645406519021107855871101582054387470459790067237666831099218619038813085846343922919173546314561739192999201437578810740333717122312707101834249889203650344206498688686102284948942100567570105371965354473646287602862250951489330098990808451504162534917088598026179437386124728989834193964220426928705723861834538661620605073389683974134878390079757281294902356641378065051618888823974248574614886397924183501515050244621939442340643551892280171822254409088076225617652742093760603857827264287355072071498831224623145917449388468115367008632033376624109996794433144174084078754916780543490279600113281605172507469123098859707435202476242102641981598508506259830239088220576102766316917297674844768802931825869632293191841314591541820937646257251268438004252903543690143571466960391366885255609165727565382984408136036906908806072566920651160688441590052281623163164016425551948745534555053422982144386335356918357831247107517107173410973648657676391710861208521066935836336637215485995054377256383516332400261296118712065342953430918056125242577896337600781190114128314429893636185029745695409129299216407735313270920433805319635156015144004728572850925725026404704055135480899385338585478158967418924757462002293354676808501753598416605339927940432152871352781863636058233120843911231647235071545493050353496983561920180520102044249696429716903247204933916978762719954263785182088859760386074479605811999296968261764391383813887518973502723750581882688784501760436313057684773880530714180259608803121519290315569532865227889787357452109587316237925252328114756940384334762767406950272083964265335074078050353827438689311118843727188743841724506616725565771219242559126778549460039622982529607028536877343944346577605451548665135506512586021815291201257725386514916654127809041677377805413205523895713824516160087505844542592399022619668951474908372813259339461796462101422024708308062020755122130665772074565356954411342861637105130624263175235179554835128488970846080285603627475003068106356976955366611792474784949518834390799396519345102713111171151602845518096400031152954888136755534077179332870888532150499294955917024733679229241674968335750984595003649378607061170118526909247374482284775926776980894891811722783904109639156893528466635420498519399213331828487397755331125154716496362292522611435464432370130454876937689201847855751569281839222994626999547131696774371051098368465438121595364112933608964752556067052503900273275020649484861335345422471150924070540678199715602641365214410518112309345331685430623712432897901919897653791548557714812649595220133773379506487978256578625241076121936039211024106131153747846174023406625259985613645283796837422309986732224666126235559049330972973339195332444967579260628214627465952397833347822306904147004655156239014420007839562117463409795374837052980786415482939301479089381076934025527001425374779149490860766737684392021322093107972812378604121489544401767174996420005592103356441050682978603921647921511686018094247373536730818725830811249900999824847816463341812775161038851132712622855284436431806982007420926777985084884673258682359559430413550583581438702963585821275505347819278592735794853923530440886537027062084205403345648803128098321397018310640865381814293737848377086275780949411405578592607790400492090256655617476301168000172874608435777473154202874850667561614895332228888116215578466322924612422835676936957401575338004235707027383328034403532216705344405771677724299784790490627156410320978663175332871560781174403718839729339208399276242603780730768751476233625056796725247744979029722439010099116488779779389122216329524455589015312736271306722000196045753943326245407339861152555274022428950515773865113099057921506105131865586064836660559508728448383478746185113982518346650190552690771526757683278934617862355892208458455336874109278170876665362720332392880207792806508095422731695360601047937452131764085009344257149605263348668012924702689810747460143834402586859026291946465234712732540057129818798461279468387923716031978726599938823295639282642214411990246551683195009756343023823498591920615201450225712958369376072591242739546014217695152714802442450103466933536144728720105227825575982348138304278903835497363066350789131331320245329929349202146956031388792942345475116330425701820679871148388913279107914617537733918157251586925582872974979691428614807093855167703291226754094700557613549289205342023171993562320900677016038161222158922823133944610089520946574176313712225296167829002563983050175791642016360691534923660698348874464468323490606592943309901598470292673825385837194497495211077535539260794363888081103920000540452532906346612072086715709831597719285435163268944524092027587972607475447665578741463519381847829902836145974824612715800555589447530928658928850324256277465717340994402954438549232297521171181807914304431253408438763435734139254874016934615848916199101636925808806909631609710891654858839185774253947609293043109307390684594461197976926755314616652887211131247418054525865629467602480808878468899834700017172257090944443066897344712276862239850368677655942728233811569509152975417506066620996988856653562656174599958342014086621285814036971907976553038917705446087119355056342706807197223674493731316304320755695027233538110224854749663296859825681054336596365007716158504035259532191641026923006150311271427613440166934106188244346303386779423252150207952171892836345433033733001812937893397646344099021870184488106326462620955108430060914121289240379334126210053858991703189551690522476304107212297714982431502881915600433405689713674348466890066054801596108977718712579505632130997348968704277492106437620859893429930598573040400545181163394496407286793378536429838324938145318381884262198511641072068408850621691692317867603098395516296135664548574561301082233944678822990008707391550094756808602729710695116432324256643142087361200296024184889144650340385123803492206471137920999259356364084905739699066701847163122462169160966714283108508605330014298964281422704776971233996584216580422712535766111753541495462432443649884298164149813812146036091457060806797253020454222604677503873660206520047632705873941516223506912671384255604854173080313315093498642023050614580308462592340913267652834463286827976088215235777586378215210488223200175334657603812904725587978684973421281748508200298058642438493459639912129495900053412632806915981284240644227351068012696003647665603436885175280865347050504828544012583900107599371026904916037649872271203211864739235647744820658141254791257793580290117103911735678514615199328642712288527652470620829802831531821216116221392782841705600958748326130478387451796064472908759084101996088049800725406150771600655329224290692577766021975176887394409993161430074489566287600978475880582441911454147291165737929593963832145744483335693707235326328138350278949103553368909703629104871997357689799026394700426630035912153593065054778147145164318328531949488365721036581345935728905628944392893949577588619433164463671511102671346870571556774316002013811738534643942185546046247820856539211122403539502082858049435010709549567388198670190128190409101437669362587208052304809561503326132569541943573360196225500327405757337881288211546729245407682426608663106156460252519747719247875915510283976406404795279942131705320620958692916451925110986704540626617049946865239295454490277961723785473025763449242065409992879365638648639086896051799343914809157572790020604899606174311849923804119571978912440473114731075373299780343094631809609291160446637896460235637844659135338212124872182527908832007997247784162110892208453434729639414382003908976696791942041421420091031648434645308432946151970975437735803944067712111155978557890084115386026566474376943224661264500588038441000669703383047937973486605959844282271290264960063871182540771984922099207548579364258336087025516782138273775119179545077857919517217492804896162142992352692056318381451274804975630055631415322151659263061353902933474684204507043299415002687655539408305314426355571716071321785668142479798173248706974169463234181766970471674817409970744248339298484832665054427485355043873856353859943620592628496613474230465946038560485881704451845846457171044517030036512640932342962004867712847961990439569638791695324998783412135597194393569424638205589642101030058804006323767562405483837370054815150312269712031320779260450344863126632402098847674871536835031217017457126034885332928662507823939307342058345521897503134335324592115438626064999241176151721646655713289814605622579989631827564427037206219959705067711918352543760841939207352896837502045464745947827034273798612854940712747047970370475643388214573011049449922558344212514358772573441566506551457077219692513740169920036810619239944881681272834058919870629429040976502716028540896275810705671602731477880741482627510089922691655336436600544412290531417269917813979354499793482870888610343329181247537801993963390879280106022761978983949402751778263985023605807214277418150627203231459145183159969147526252293506204320905892114700986234056222875762498469649478971648095608088042004969204524236665255695546898024298833685062994040493155340978548021173291890955357191176555602473318312014976795908008524953827595738479681453823242785502304804217559699861658868388282392374649316769829025295807002530888263989968788229098938834926102222446034200813283964433281203382800359134156572294460877583303539892951783516834884858035847477993660079104885700647651615844497550320455175019374707242724831891386376704789363839069370647550209427956054927419354322175900695333327085740998016662157111017907738378307970347425229037521154488253953693686404144323792747879753683246937939519847289132715871175392378443664616903556684641488714432914673691987521969202265785017027731170484511957544054998521258531625589504289266183010109276939390706279280232672447213821083931200658182298664793692175114410541879387758136054529673041305345973857739305352330574534643855995425135122559188181163872690296757970577580651725746497010973870812037531423701279459434211410702879201106064679703606155239269723841593260060068963528219842090086077300406768895836039006715238821511041499694903023215380075287333406143329165539538246113393059778753857628654850583098415260459507861964543515810978800272311713672318075070215699940682514449671949702810528680125746188487906439700837343888340164780642369571889315041527033601530729570944783151518460139973048054241232916451958536674129095473315440156028143083831806599472471485228032038895959617474224917135709547521033363339417319667464911232255818737621761206178414496803202164578571325495367805090764895702561130466408350294697078289259057309860143156687545577947428004514795056748077453145316509101572581370509339961121669615526680360366225637519902564108381680038932758828765538920060953675327010863038367743220890171075462659595890773851363162057933091146048480677379575055502763259188635339530508036349629128480412487703755914456747615409223427684276690144080431386064421477699645032209772640738772589718612518799609551210167905492663910625299198406790457990396585507304965392096356546483250651442952498027079398607294211939603838569716061730770703586055248209794930043985466348171285580612655152964852156220591628427485416466788896389887449398665479555712599130079255262363912857174879445604823660260956352793750807638827490579223564035135454448909835801622439531904871136701286198470438941388264442508235638567156639697636481912994478545034836295174852507293162983896385985833733809187341319046026754206476591532537146955680840775015136827560581378360596478416218826873880367235938971986504753261126769447676531273017367391043279573624254460047301311251636259666014448007489254249770962350941039426545310855963884060127021517212511912035450477528163489150791198893332439141080215840042731856095891792566524195164106167914206588719003903047235709061572735499696600208638595301876220167322350136505439972958783410457421632429895910477197823786074018327994518338943663088964476445332166385801181629762398188860314217600169177040070565599240079944686871519653478757942713745475217537804575613341771669533867905765156662473318674777390585057403536377336034644030354855559524979196902464302528641273065241774751156750805380943048341390829029430373868072235803428103315345142814876098039168629787222122240955106373351887415684708094890413043273303957868489202799968336279433849563501193032398507574559366198355728436131565156955914367251991760644940887273888779895239719390457500883244055685242015468622396697250830856388745287664041123063582394229734091749931229628794321858394107398951705805913194510702125013662752535558307143372129381963952922514521293875652357983089272879506281020448609752056005252121165765092187687184509103129125894063052670526733130650715819177986355197812269161586172186106160490211454243902304921272432181390005455393105390377545924725075037272361692911751563422007053000758493378012010580618604778676002667008259861889470412500581096570700518625376419760824471109442965887678356550699591664152658584640078765359008114545817215923317800478024103217257411398198786068733807546949191231150418853683114179222736146640580404437727255361902169169010019821849276237189590741814534691081997687058534560659671488867028213324175992927593609858468180937770793014907185578325260500600734381645762787331873386714727429188164155084715161802077686173904780776904925659323096068745972752299783518790633760184772935928976743959042665159190419182214961780506564688665070399442460864995073521974670324008560615567121279303110418725797241299157879388248119917650167064232751583611533374237601642628319081902032739974317516276644672682693418060426067936279305602798193329210689656774083411863631792744983357281967766534717313152804195652105753666675870188827741140145190556467336959084407891608245041432017294851596065293155372221386376117024068394123531197149216873694883054745928271877660094751185800787225446393746530346732469392552039767622481986844376621034985130125723274259044543258212947487527808166403270388022992437434116964998081234512245801856102989336115847379021535707797682317545246968011571231263374700670379084697138679726560518758582923555194034743957097363935162590696204544129129703132161041207441769288256954781541331944345828181597518466815620797591253886045600851665497769600475862634082991952136699139167715696515034096840295150516810703255636515171704620033364502714597630554050078165296117602654451927193241026461117746688795971126917768574239944571202536300657923254194468662274852207330222900927151402829995992673024380086736251184930291850189553164333782786520978497179135745706420189990722730265672497132237557362686861450759586830608020700617044921660682663909668720465277327370344591400323383931556005326343113531495126229665269354006767657412982395513229747412404846153884319595746457668147081279679369407896921810353974716900935692719224538669165039630303319165614504407216914982428824682553236271344556503389992879115402187840768609116868300939956609128601964759696867024106646587187552697490535092676352466379977467388240320753846345500348739794069202835744739900262668798822507686787773688684020065503174184370191176566758884569185605586199140047322816019846418417990751284102207869422680763864970433891603537047041397571483458532165525123776043744981367237690915366663069699046025590776060455058374413602082734666350207657482853093740141452465882370183900862490060710670468254399400643069229178946334414685308881118734903481990724949254762791029987796960421207635318603685404641094340122139508821221579991625121172706804475462721398331620237620856506525426527237256116125526251379325045855620840792492873920961727802991462846995643251493357461746630179935784795819713085781474787954459693031139126117474890786682264075015049388957810222258778494386506679643337822589193486837288766481411852330516817208243749750043602448681175259590130021006972204199555291620922333492199780248820647308016705802111531805667695271758270394697329411121520033122643248440423957260618201438007085530504438479555718729673418791178564362225566478951179976424705893207750005272149820628197526035342424214160380450865008198170585956271926274745486229919593693616660258764566989599366884370126098109981613764776356761643717877836113308890571151285291921395437318205746964462101884639308173121208312653571210801112453521244971245723713472661274508125291415752683387985145147513806377759472116633732950743600085743363195304089817216004270096084511916267590073832152469208699776108658859719190779844907759190674435567987521489208489607346571035231524789734574021077263639951822209741036967669884891685343657007794083737664652251935304169409917587696860225325638514151757402491893903506528782997829039571558804561107559048305359807071314067753172793794889615432256328543359574562877354076090569956880332674722093939674082696595948521935311903613874618191218470599296639768334217074197497137981730733756781629855292099909852160210131132936400307583530981437072777209490853633615054572800278464298989129985894801486021478086893405508476382827885399433744389276750482091152701206022372167562052048914508051300674400942927658040271639207544117722431743506106498455136865170128378545912044560509854128268531195454996207052104690461334212683232028180976612366058491022661373304204519119383613217955376569203454118766203020146148893224947323824530933953784242046810560366269762423647216118022310037297444531990690961540666844556793540836668716382484411057068856945535014614181121158993626939539262146139771850582810184736290814079308204053677401269815683158990050580376117184472530971592787068354885668833826737706540790177115902255018478180540656743479644057060496444942671796509800054358411079159562140699542029021709617263243228249280865661303098817789936847313906601790823012559340497697730006054405111992671632508662445672616585891080614511406883593863816740176028716951296164775524418524783823815680274369883283127872499185464067211288638693471157256640382165011134987196181902319540226682252115180470525859792275443575773339011588215321697919117945785233620455073238307364103095873220626084782577726841183297561786253194719239521897392097835984524875226971892935762407602302711450384203441869711026496192325143992957072840727796102956783479207790129400184079187300195503105269676212786266220151509974243394875284908800564891193992181768199549126504279727446462382546229099687365546158182874277339707883750524002824054904782936287193034081152313062807355572304532201010935582157357266008352751561987515787919867179238576664600800576094969290031612598784574630326776478822218926336557479198332558502407988044214069184136896220764773854950876127995442401075721915629971527705749855522543294184557014339120966183383264566209947602223910490999471061349651600455540680601804541735701788756933471590485780684399533908563046459455683345614119135323130307494162123341775152104929395840991186273639432462094257647811975121623542152636477408801715877299518708636097533725844012223646859275242387874641219647989103484037612677584256398098060914001245900313445969380243116635070790687914698548281643308834358628661308686141441253838466508699724617592784906869156671916534828776957132765529572549002229078553519779109197142526322060012560651607673981756250733320617702154466211735066176482607610240755735111409691006428274857838010470849900018898440459967344766678345096523986489488878737234073637167389071847778839450881821204637307843575063683720852836618849594841602440993174458671428721914139726875486093941898246978431890143292315622074999009320157670444981843792493736458905906673984203314515200483871922893277134350338920707722817120963125425243821877587245268455606310365075861102066865324816496643423000782480891986858927346169506919544287487560739232418826238255543095167972476052066593596737579947216669821585296964518929252991464509442802245063002031270374817938023056656465252928386840371960842189709531112600152129277964809232967044196198867390810825268759130637867150805080089141487409845420122641889889280409809472875814311376432088309569799762006269375927209731573134067152112722930172738876656415365377811078484665273307044632768449054935770688971893282747731931116116393023409722362662281712090698411975148187975765240667885474360443061857630738821542548864262424412813561494567294050975485427396855208858344938171569359754548656864183882662713305452187370582242595778385832066719015182544171579590152295916488705015443518469515463915766270232696671769459631833125646847528082858393208144865377452628935375402307588300832904274417926990883971256795267775988185633299574401462026952597351564088908628618774501121930604976026363689440723620850709410175120538926346304746329826237891652658810728906099471167123323060069409116769144023749842950461479952123485544349038648126791189500676001173314697386874987436725123229035475413491696081384154277963607659607399574340651689253591001191052911159045949263369159092339116365099215928939599316153513005811472347525760793477115231019371522984263099803232452779810996682735581424881411939993340083423302588872331845696316991509571717605595412953904123096915188720134062505993447659602598829874312623127043148364558094287078338366147886458111981605164622116553502159049636793268215901069421872548528630035875569769464255733680990875965095210345196548534748628743580646190924055207686448423507149574704959174508442922529067343726522347101188109630340047823259419702354005068692543371553631367397383758161395785431188020999483750708460893825128883748849352090824574251646699568101842064691051437938256133226577756159705282442916024291553152604670458559673096547316407419877654755948432620172079766893920864295105082051871220452942044976108303200658439564974591954716059436265843170049351834414977072134713662001052227620748408274791180226670371331703750844367399008837805861554454841979082493395419915201866232836057461568696398548785674892423038290669777662406152279556951190698162049803625649543431461936499306654003377566808261061641743302898991468795111281054330267354976166537651806559865389889804948512369455538723824806969455031610497166746777273940421360017727625401407279014293605133408551796876190822964337003033641042596760148852544028766198161653146778421880903785764007323911793973317599381366781528754325054544479492962128466613703526220413742312578857641066637177659954338625846013181740902540382329547069632812387474148048587883975752462863967681123625351169774801418511672733823273158207294631574017044424071399469209454870404285648581965773537938417783507164442642643923836993092176531569160898708407458190664426581290581649596884832099226060030610753054198928086316662586571859737329261711493472983562931738172664509978796378400786239104013776490720992609148442968308471525018838886185548712419315211885745702008488907009833260947600383137535270645278821252942943491379193748100883005363060564231878896053498780799704842070372371501078085275975027681053751270100523686735283033536192452911852071542683420568424408751295065727823533788934411593558096095850981724252744443522574153061487218468787632622493148248331831923483028206440814853179420680560535950993627166411784450647184419199580754191182255018643057739561429775514026958392089563504977811275222334934096812693524144565615161391157252242293145772188992384785520796799482698248545803772385703156442489561725437306408208463052822229173466147252226520108355380792250737726105326331825739862607963732476430278358402964701931169037870334315582588644165321642154301692163076087561019418185880477039078326927385314595254401233080229404160735827379823745495688826102099660151826352594802670787342069477762724344194879667571412130802645381939833124620408647828901540386584754747824320477702026316510392518609838586180006395068151900589142172970698694006655281153407435666226729664733290187031075724370327606040214604112469620993935226518355417241086729339409112108993187784425010975730835072660999469352071599554979305688842004791165156924234403492397949745946741147870854841962784137978464475253306006970225011685092956906844333181437429572158574333566045499834639753549912599278598439903647662916077465218114782687859168373709685171576265752982732939785107935384514224566463595431785102526497328675652896914232148973396226371123390490501168785258989020990447497398148205392738831357117531878847612822081068495375060824292512042401086122990082569480850502486646112449826525415778377690219685363804108037129110292582157686959851176651164676674047637073875989150356578327758467127114324488888340065480154790920754948195998482928096016975625014224794269554811983490881338900210064655390244393253682736669921982603406666064402898981361617970148407169279888352330593526976215141024891449653795258213117578729545727319422638847242713781535788482234958302071239104467786754358167310501350214614796755136962082087833175468977391065632793049151463986705646404682184247038452338891472934474898544551137475010094649821391293095120750426546997487965945703628145144288240451986743425828495460366405057952735297081057903223579939088563002777250566723738004330689226932977782821832686101678928762724840311810710887266626900418433738367110348099967513491519392876391654562724565581615199663838799707729426469845571965190280801720948137982914174915326445148162768429089680558584390725297488653366820878967620542577117476766560160395222211859623139072045511594233909871345424719366082777889470854514143116963780358492155194894228792461597576706481689905256918552737159565283458910832429460817647801827055551169418825995722255093004621633386194762189449077794472809209859511400365358218089886290333395110699264166289053629843001777692794620852110780196743471093858490669609717471848948851341852818992361949392159780617924751850835170979246320253414175702687225851694241731941821526573770037059777815357080133939005257926778325248240393270687603258567253052929440014554302341508813356781247658163094582861811538983587825315032080166813838250907173275125713769205194464504178486066407889585272196013977450998237322250059851983289497663095295593351991390867662834882851055471674246251038147420549124507557756479892699860378746240623028483348623811277709840867604091699847312469500332451248005511224563323692045819457571011341945553589878588212003506083155198025401442447550160786803837878403356507128424655489309382133314693944025111368718520231913965868953264124240463717796109100214788343565399833186510455561749932991195995262965992066484970039136830418894600316262491341616003945194872269253280858410837619571697993748585741720208686233050554154955976247389972467098478020015730991674889501665496640040206116368488787463741340650599680020210657118964196882675496590974762900778727369501183994758009208635103052398883859449778258426128025787264887741211583595181087045977891310422389309447033348792181857818565424488095747273327380280603721640900020859063601270931376882292190938522025143345571227346125333092408835547490069941536247882235102375941918636873873088188111473296437555367117900055697661236689042713376288758272699907459128668238804360177266232785958084906787643014368454756825109713988259302001805015447276440948149807282045943420644453294898878342738993976346205230325768332843721287840420050500173404459504603284240674000402994939450157644169163990852337344574959250816867911467270086666914899051335634609881371017874496244524955813590901999152680838594699346394994892440458969771083970120103198900455934025916128979645839367442828069059366015977201090136269961748430533106429486409944110800066444129281787896079752575338535751072115240054463413092241995333867714099669392153129516886941763542148113321589114719420950132856663456028173971347628881291476019793454463301675594592531896892634755870077021525301974402211898990822663900389983851555051446390118461972285664536369889051493412431252646899446693489313294798677393454654102768187086373898641444372223861191630765364553334518741675228731496901587006933866130495963609062778830165318890130248737756090757666326240278889803941486744542449409305582957357645433158045338667834616532742395231715108560100525514032880516876796228539259677690195266556397316193205149474543793913327773377290804354565181852620523465551329544200569774719985454049633899606819022925891658829635961835143223885219235699067358242667483745264208024487059185118579312676372760513361266757915789366283955775945683732779086292807879322201846239602076692967876887867067129567339581857003317658830165246257364414344972269173624620877103341098858799649595037037943884401516630228905272121625941882152344256799269309193874122337694485927334850090787432004930200674899377542856313971623345983773303764420518728745186630916068542220941337633588048360689591551364706582461571329312428057270886104051693088594932059114029437315563563749585166417782025984067640617008288377760588918668657310843495365349318458549142617805559830930592956114956951722686974502755707550969254207819296688860435070128363249482586801906410220245037080342976636947470711815854627861021601159457907885656338222196847911885750262484462997936843125544382418404788055648657388860928807083747405060357207227069377606280892310957496836988543919992310413120492707779490911353645818919287137487932227527608675289964978208304174319211957443248451303982897129348183740218979970853954198632052715053704281510309587965565895707360060910533695003556624019500885780048552118312902533476621299405908190832697117694958824402585970380360401385061000184978080662907956931290886392877418101614917666242688470632471298218278135219739187595601627679651346438381993399969996621589603477920002641073737539541427869189132341381995713948853717995574826967488514509868003910838390910353983093137274952143081870506612754377564219541711359187949216563891079830781597426485842644539850368166213236130810816274465992357979681738938949235318161518450062152495678043551007576438456055410308244366702930765624454820247725448823546094905478066633677319100470264610233086165319070228452689332713667744138076853815938599574583148112181885134093795698355644373343080786803722776126343933017357709180819504350712617137644418268087622978862246411156338585814143168452909321495344214766873394822014800008356500373053997008784230151178473776293476250640783980947817615286207123414470449477146613811847159668262564397586363828864542201768771208859581733001130592031506925369592590962828007773199037910024178878065978088205978554047186619786039230739501880013360496712624144993069754646586910758690717792521749527729704480855884570533119308894121337244775985438744883049791159321757512878346600465092476811176191486841375382207681873017332489829793801750832550905852094944243324904578682378818306685845216334658863082842369971050201072098437262637572964866918682336169302324422764186270110715472407888601188439796325753610403683474812534069264036500521072095077652358858380391106911969709769265933577069940500200050953445766292388273883804998049555765411832054009728157204972094350801653247932663508341264914854974600694712382607183335233661016692740808234463751091739779455559110795969455147795434316855627137871323495483930654665009418851426665691384434648865973511188919345917441720476415344193681326828223498432761362842127569225452129467027361658388401075394609369181605364746333084576685750887373860169132883531715024971062572479154629997369307080656775574883362219416275200045834447639371989291162261311070288415849483664319970846347595013783289132487543902292419431999026354552708542382589982813168051665370197107252304199287172526640835574429952760521858128354721936681368401055068051655299217515932030412709316746587359801244497650179245837825252421445248455240158403538566721626926207035508039839332495763395554226240553402286544541273564336057450567883939324636461586388418248511309367186257407907126017618325143595901766084782360206799636965284750913114577585394427209825612964506952585727885159091748733332399453165870061424974671301797891739196334812567111703783897045292647980013968388400845727085198008815218947370534573464202386375858879621484903767297677702465439024530835988043838903047016576684157004327925313547803572153408389459258568121329213449032740578510055242965391506666887903553988361947463061930156923280894504875877446068598041362198852535776303730403400977503994392089430438402793219815627261645727595641556765987866783579649015672307011008659866426345121108866138646625652318598327212121748497697551880842092761531763267788488969734828416128380284344409964571666736156316479638114901188441206351467309193289460924411958248710851592552035241182623044352502023920447513770938094353337263439429631629549507724008293198173964586397287585310369066478621612850673958983453999261124657993170134525966240472334673475295195233887638488049789483722213169095900830193237405276893274536443879166976396910249855622585469170422664891719048619242508167584965692845443599362562727344835955703639440039914010133399215527045610213851223774344274932581511864024718512139509053542710819736107194456447446058553889294482952112062981859220275795773426651320252292984684353360369911472381816473333790967318429781974283418471342520455635823028721718762728306041212803740136236163885805262424840578807385196072425141813586648303550677627576708318649286509816778468666050590118220947549693794562506309803059530328879419373114375937832102242915890241209342109394798697847960413356764651561654766513208692139907235456234357723786163177912190764527442652630950492563439666395507639200770648789077333591674569947261086611432999150414959117130837053993541043607289621855227907185139339110320345284014378037623375356949176433327817416413795677002998001375264685591594896820300754736265207011179883910048388681433026539437067936637286104538188940093022917301103983717177932295611355315248132315810827105469998033631141400474243028658058607648655086959294565871796728727020710902255675419999451932458638696477542808590220650195718854257677994135488877648571899816213372239195405558436435543971289554159350023211304761912370117470220781754174559683640878259502570170482678984269484776578477472984091440650220145732448286905206245086310646334377684162201021457631560239179102956937811846197898292200256603969124161497887798402769068741438650093253750826581224104243256257038895094175471126594295847423201924135518067176413010140604135947841159330552282843124731273841995769569863492920109492314705302571000296281696791967650932552760924078087691315920434486635342262265073269418495610007989168142326829090157928531334741166478631773006950544035739292431032345302477610241892569945241490174062098460763248463381145077458078784026590230739173700245231199280717272311746566540104487465238347290819080011216485090860945409419356193676350849070438721730954355743213040018298067894975861768569930306288483372976485289293111925168352619331141712784494810843730300162787151967866612329643105433346328280928013648115517877482333835369757301762661002193012471681690630697089317899369198538926449867336678506561973824211111350095054993568073391088427857200472612860055343870040882262574593520194824608740229516614266476789500160055341097873930932806802643123661315816120060670829558722956377186110956192681413985182784733933430020906870960784394533693219985366335219772353186723018967644945031473952955347483232730615970558840874402301408154439076770580299404274381820724212118331716242201266815122934198954214567719467159499048172810551043893307252509842031188138676102855873660802458292707023319725031515579088037827117172897615440637630843562566535498829022510230883427951482590548594316498088383785908267703749606635440281143743033464713322419634144245838038404577518746081794784796133344804644806202864939362931919964550037201872712576176839652626781457263973354490675541035136111743459957787200228031916053977310132738492806613981907516003538441338828346457003079670331972112460433636362721458451044712582037194848933053591665589398969837476005861448978506736510969067437311600101178429944339919992982788684436498506362813061412258351490646488109106947373231772149134520680466794896980413944107724596809047280877624666488102812779370877032073224603340056295991730189482948903333652921142649007501665566587838730136220840894573537838621343673401531535432178279968814780213565193092868076606367668970805057358207575327984538478459765605987707287280830421178638377339410164012887580529124308548488955611456718704287504948359787052364344636027047600393310887848550760683080505078033611004756287377754737901370774497540962070799031974723530571104782781352560633386312572158357398052364928995060559894490345896350761808030515036056976553061856136370778888046627380543272201010007766893140321248237087781839859027467995247581342684684039139807582539151043661204921662618305149007060269429596333356302924550640465691426782488258080694671635204525162318892572994301727356339284428434806742408207404282553092782806833212124119476314192945083600181327470649031022343648310253467312369070143715527806452992558802698533281008824008416819602555229345686956694282426264131047373312140695276599906650725740575749917542743851854274645651932487004494340290794899930401230396588786937403185652753898951506900322567353796047249207780626459444027010352089908278009674845713995655056627213065277517411633030860841521375489246163419251779097244103351270632569796772054079041893425035396028274668595958118399468046461512158056100767201588199967682526956893205279210027919405686782479160717005258946741255364766123449960214456110792211753264431069984184778773986666740740661444275766946629828519771848300684773072817586432791015576716767175382993717893123068359167805795745947782695447713349305754536296358053951352739773039378729533783855325508126831958982213894235375202884003114732385768162806204273330731152510671483255133416310872561255027544594787149876283624533367417300780594086971045679582348384656575633667408506242150630095720832659853836900965398439246856764072855608113366465544195645354707838041556596300014475405574036803041426122816741783997854785289737671162670774349143588261447412385345925674671053567735235151630994515839335727118325942563028408018944595850219041288410455220670899313423015982694629180171652643486418085753855528090675794077239664952873384918925286773715278385412212598175689082965730872047789465369371554073796092407800351408156722730130183527481190751376683211758496473348008617858869766448328344276922949806618326285084287039896606484742420731500213364624311200903454379997434001515079911752501598622891762251693372741528461651108593618074553754517091901451325485907826513071840692109219551036373341859563421775385153493427581833404861066434428741218519273803918723688760991185372824102784744522659115183606033382055218594482230229597303257996517293463555161232955859592214837917177903310751248875577356022643248509993116007412571097831896991503515730150475204674988792932911780771575197274002763119930505979102726224212786150237160009856886438016207661100911255353994258929819346719438246554332656371973106760492326649874160595652556770942050672290063537901177984480443042463761038991664580932112889169344797669336506650314914542947735152889462168794990392131934566400345183236365886178061248888185823563354462173915614092458817995140626158113309588156120897959158033572556627821235127678997667091310871035922632170802325679002907861609522793885647434658837891241758963837603422348488221276828607421717799904682890353764784981654049629289007656312825198796223253678667473256133546485343182671509105063651766534007993991097421106529280335394282184094280059504105242637905055722946354428355307369392510914527151246675944044493655016449976155226905036433724411455653133355526852814883049577144700338788014335711654789534255183298816893800751224085415613256577774702462539065753324923682381916671962496740080956676218818590540311030726339219922045436349698641893236068564607958347843547993262819252929037808536771242341690527967965357145813479109429167526613502849849599750277539707861536713528397389392693259579027762966575906168418156858535767054823494562059162221699806944784800152348087375752620895767523501515242843102921940103516103326490238270062733053446561883387771669673954523812806941034605551166717011992278546969425577378113154213116609326443515480715996322563368670205289690525121020756248727810218488285875148766195427078523216493457895358887429090006815719678038380910865421161675844778024675708225235040230031944839632890510628513924535177393762040546352937436918473581097022552905332636530361985416294772347780673508470979828553198450832069122511865087930173097464710817854072935680223564728103510655085817615401743401256264182249205217053948492302782877125072144149310884069433702839719256037918119652049331864013449782105995903640945311686668006574930279354063226767679142187509368334002351420994198277278940748279740170596678327555757725310428664031458376041889032132232474619987828157799905565908631503906925145381865618371617095864180405087633153299533285134313486938049735083435281029628569291176015454149907795615451032690238041305301939338308799621082448913436907874146698128298207197773293822831877679334151800593259395486102744935812867415225814904338101247765494504017009615729290258741412620166376776385817973292048154111326935280768772442046875438774568370539044053230188055181467285547717225070948761826289798499871394350065221328773107170309607691000827256734015923013733439801831960513493839044148359187494212069456632363754922793540621833365587696459450994701805002155010616144250913156633141111562989786754855203873908740433131193237758669177355543539741842089639533557363937193026393784557596429962957403958687276389176837868629404411722854863090820920807875502062981961696036835942881288044208308328088462402199829438384166952609821953106375030617991686722101929515099804864073777034245754296792597559281834983212201091824403501312989805107258236981400902436512673034272033102885220843269270673180315282223270150148972755996188160888937037651329731368220674843688562886546770892372827563438659393705459319690096475674402487191393140647575064435886238701645942569101698678015752809720979067122644257935087229646571879508734745021907923566990409978964993099636075345759834597546965903018078638242798926466361950627101641605751533385866936164210391481505758787946195936067596938662173266793378326519595233138105581223740923809350818479719973454942380316485732273231273521310796989428851082386395084057198251852867792741877251823945196172361841391051349292917678949724427639744884952887404823986299684095693481614859037354103443095269611576747109418003869853537477797896782282357450536542257498309217187676963813518218002387715198221870045954009935197065485823532676196324243393726483333642149345712188152336263680631861905355632819016729628432384534286681589951088624024727819024308646207980152269609075160561417615884470697045642428660148935540834931775871282434139284801603397668485541027145438999330727324653728046695251215924183973462566959139715889644203956271926829370039501444708120028577266402853130401041131563440599180879615798057695946210660600005321594163766426085710815998119067977896809496815961895443592934930095367955354177612313564258840966548292568147078176323022163665825313175529635871927381462629562275270497966817496684527692426137997395293539644840159190903698090453707540224530553052381788457821818735296019898895311273162364147614296750041236570571301738266468137264554177623384734726318608376122445769538038056389211082585503265423060138855706791163878610935414326871505068883761669893513306794243034105544295485489325719151222451050162008267147175324459616560381305985491844151142516822472350406881456940661497405397304473204226716064393000741066140318608154331083011543797414438455120927717156749043597257086462826256054604374312271654404466129737946401248918831850262853638500019904403043101462487307243267071643797259504552968542650062444560908052584575893203484810051991312521371484049288773654011102553514134189335858747277840695002029025939107171167380530661904371404051126922306907748927297373705519775537728630589781068178358706686189523669174971026590955433760514852428945181865997662452826599919124499490768529166568681709401815368244813412012840272397458730046943398784601943707591067083862627483053267319465519428988024048769441371535831893892367366831395509117537267970942051284973750666227528647816923930274046342810146569151991073019316563379523369608894062590008248864383386079763943952234271642111336619086887974097013680220661924098090343830724771779936393684808529708262295305817583753819550057993967738144370349229448264650186748444633254381719972865712424521438585127359260812476915389198528551946341952033141998869936511110786846904884399607549280092600161245649709121619727657937004335111003095317744157285090075868761849467896207068893098342076562463989922248988389012005938903406553470390607050238154909270509599715080095952299667802879539112859215589630015629296448556779719883851460158879380535404571859273172366864473506199278384830366302416770655377423115977899638821750360826743145852499830917129358952284343401872529297141306465667744657481262768667911936044187731160435377860209694855121139522445016701812018809488425360293605606630175233241867496044793689986991288219785457252130278139606395842652761084436925581212901465919276732684665086605859765843172008846816541110660254018038700843587719529934371914955638181323694294322313491269519329955849858110710750463554090859411048376980584105636545071311941202133266662035317730743301825034473566241071360555707199789585411412929834770152929477124671409870123320640127383040435329228501242256553768173106892499975349639998122786035777715823516002855463305352719292602728673229634916508796551125188385184029863496348876515851480088184468935484565991064511349161262288192452196197113942790948965474536851540436718814212146128054085388006028306759835262498863811231554531400013726238097875203977477379273830359494783607017261030212688193362705874396262501240108548719197059442315196853328869088788962295803173728008229331029136298618217168078269326390275520905205531641442377557432235812850040822583775135631898319791693682685767096743938845436089885045294962791162233286422433125901593973516163706928909970255737546069753546977122443135091412632498964052859655665439654572193499901413264720354429719951954479551712131145872878913657474747968385340224363297101991625806895442647706248524081484705730377258681845070524199783582134403757043646372776328182770967120668339885693897423701310473001170069316716864433237504949861960102749208050427403421162495604683064703114531278312266972027844832801592789429124962914594930411268264756191502087620075731665435104391885047237773203808935631559952416815992797439891529622558836818461515200206329667699447131073671626167757099659854527791824157973351348733100879144805163781410836524178765401666294943648901253130995210661160620765502523575063205774523728969572504430103926593420203043791660235178069648617543680320728546340439765713668026615187561605913116999398190397461137477067392697882400230622940021204112751087644183263094369006229755500087596816718332946635546917923823389851869431985551875668271119279012438819330006511078642090867530957281525592239184580438413571520748752243913032275154789342092912731330740508620074453527536336113315733782448223735820895439560561585814119407849510906598163155425077755371178673959936738410487797752053363283222389090823488618356035824035045445605983983253504581480430531772030310857863820525960213708774891849086498573128542562466441519433585729969777724893632462577568251887206144448981222820754162171861040064454079012389867572826794332114661186626166209462994242014945396896076129995183507086571628988055703657133537274032456055742841905515675869722445752641114841530611259552264952184204751559436759044908644661704488033718566087140728437415189518951812874568835750938228700456022023303864517780657040874600053579339352658961327707448331765684302616720474971008609413260974699158826647356945220939144881027325915951615271323539112671710953269652271151461265179497964498340681215648285696801466529976396391170604018422540523566540416066333303505987492663549845266106993015193585811508412885280719913379540796370714773894956421478850890019824626459634550691046706244827559205914084482942860834112436282450270619246953389792099779971354382639969350592769920320595927171047961987114114884490538509972838292830267298671990469827823377915935231718039380718722642022262408674516323529028483394247936730592774826408017999302833068088486714382285931141516869389063790850522415275668331257202939420915881358475260897636023635641428941905689804373712232712711523887088315360652633879985971371016558163016397701920304190903626521105855273934193757715573361112125102726713822430576292603032002983382787677111492309500404320187106076784926662778624342229316503121092632381065422739982550415479504965813678222071773181361657290844948477029514959380124824048766275978621226860825507071130320102500167231144746744079114371237585125031885042819427788603071908248201719355957783504255039656954085091417261861667605638159809920123401534711683478472309148864355669585272545360090450580885163589982945795971571700285096764471728717349168744334023165001765823182017459310783000097868182158092904292286631684341096371187252714084232975544984647387497326339804759074321760236667277588556316180720621647495999181410025499066296412322344646274609135954448401676451769744098525095389921716196602585642337228545108737786186036917715994525201262925654568578139687841643092531750710101464718519968701433769298533468384230941828806500745064936525380229282483387092540522427389952038467626226579292042202621798064802833857222899148142998255571982058229147835256682680405638310799099409919342948931834236423534903889239193711608628811259607674567729368637654590397727812802716971478491451302012673246051808557714225967915145581561452317953151621281191711898752124460287351262807491714591832569081321704704343248955562704671831418597163605109228494310097370639860306441579954889292081567535167836589592498944987768745552987292959861057846614828553799438991442141675774176068792883023918108069421113686807232898446225230575802785958032247337986597970355634458401743851604138457702680470194759348418285788899347712461640684961305490468159823922117274516136847678961805199093313929322071274346974404721918213287394520567883819786203937549044250978890793919267923266677576163067698663690998624742883887853731905201692068873870898162698351480597556150689536569518198750922320467404064429131323549292995473080601498840253579352210233237216870728366106768925355070217408015028689736133121606220985257720386179559837830831318270794683737696351541849260562098431415895214997653804269471714697146028634052652981079164108856911936212022121730038724940741322104653086027581969019982003145408912804851874767058104654925843327525903249263261194639611717170520098809459317361546095264489106551139625588440465726918743995489414953870260027787147052450389651466122918218184271002914494396614846185702234130362900421695796576007697888604672090024383738036720447690700154665178077672140616421542526081064968314376452457851992919728380499771999172356624174072324233342375944471810180269741406746063411643196930376993227015941300789339492679518048158830823512752508276636870193150329523948313343271131675557614016731887025544648468685671450389898371769374267927811345261744704708648808642384577037777869064501663793466867222794929617339628075256577475168161022985482400629193159892599862125044608908672198185187019805702831434056332654634550371959960381618315689467885345022375431610019176066114652340765155346535725973694147293683809891543901960102480455085108783955659048725766530803230382484825111386825258984470897725754072977987619130375240571486358713765649504776203529303184415795955484062638732560787842855348977001527398820519672784924428658292880048835520732229378949817906302567242857087682017722399289819727843330456281085785169365439116910819598412564634815648315343933217543697953417351969752712029153409902265271069969582366209670438134538152907915830183040613357821058168083587430400266542494851292381422260891971344821493506170434300910834965963773276743180118996774448914733458155565999871848266364236804225136644326067997032650975093682301985079711383396629684261584336548751270770551593307562896114475154277993743138336382396606601712177721321984049611282975766390571684689582258430705957731260244683195358781665381304158308719898835247317658087451007249698900710971202916207871520150734709780336862046361187599721705044110566123196687131152498213214826580437335082718427176480084462888006990199340069851979750602790689258986129973424861424612290869197257410566877345524429025426552879385432996583039803374973651236418437500610756852589751150666089163730364049001404693357493597947598382445393317397188229758094744255223035515647040777819542023596330371631456361839006066590489148464618939020499773672757296385922815239212928086195715487321303942814300027998428868481386847808195747256331681963984321057402246276445635710625500082237666842829769890762081519085888826720181557991768201117286927398317767813947933639905603429040849990330941398459381642621173578439768750262022604652436736694057904128518311925503197846927045480655393652260498683058323273689998041293703980056958023535993594292185323385676045192427661165358383832028584951695751456661684698205120327612378371963296449744273755849312307800543752535278363910775159861471652342476275678722708588172454317812380697983167348482966662672918962003653185625287307811749590204511498621400534353965816871671865243335824063696511408691825606751672951424220552419067421467405211482542909141956587375809643375512164151124788578238267439294673651185695203894897757288929383699639913544595270170083188470980852688175238082558066766633847240192823147612704340346838992472323195463056928692540626964629317131530456137271186488812538966835795124092649710366051505383969804563874598208761827468409028596584981345015147726339768205706114108535955723810925875205656001273389535549327477444166749590366504742906893634940348091629317064148633015025118211001271093349554903768654863018618754706486936221013888503940289154506799599639252067863458168948640788485125385553456414396627310791148963448936561255636124277985299004234237137660459902702427569821557959562793279649136298007894956394834763263593160169867938077884288419846421865679966705506199824967113382288130691015126581001557780269509326538453278166675345556055831668067821737508622300677612840867909353453251728963785213313624022838998205046586476764655635008389861274039050073984587804701135668060834261982210979492576290032612049420123023495254048178403966115655872267114763470577558684545469302631695704299009112610345980139660120929265947627685276902100407457172499831453346495794609620853574288641126192322302714095554094527689079128526112930289654520146196794852442299748442524421441882989493966549888743527541249741548476098264795498279012959291606171746403864961905132818983299685478189925165288382490655671736862601082158807933613470001864376081338822648984922071550528022348092853128554648030351741024597221248278088427134180455602389122435116992109811756774337344224487549197587166433517301753897927710025005130374786582377497821402733904587536410767368607313189521674957417250551731586060194134962787942129691755630959804658264220572662356642951689924196524265531646963260564074722510918564642016169748527969830428248018066489469638059355124300976758202113542669461791353772316078183049155653271812381962158458137240446533982710033991324005692968177501951642709530944417767734069395464248523859962880110159909812504800266641101026404317727154625603194338490687774806989934956690530237367594354891814937852179589989926740767183412115932567093191782512182730996113508370588153279232387570443105034902431777823479032446308624635885350665598763081749093163262296949894861690652414817049676222553684579525913595233744831882446805594946286289161117366861045293857175803789990425141888468103790043262191307118134787642188261206760861451053511310389425462532177788142104561599724655067752872801887567443438143155166644180098815678108150468391349030278452582574930722463668815781104181952051862989761444639182242630399540590098188747599501857148072186512032371351673431468100443539413063559360121144722331867223409774832974306263833362714451712653465573405655129387655673378699560456988289060529812088873023069417508115602488638129632442727609601981716368673125923157990578349191374895593492825505186834991828307488621713932820368027904539256446190509949687350983685364692551892900015471863187696474689498195181529340895878527329807144467974199136613733507514700048263844724101157673378868747402866642803875282919963485227320243805594195957539543519712380619595617685146328443558820147813869972168354608488751276451688692513640353017429279377194042023638817280186471312634244476795497479967441361846419218083929174290617327432808966175168267521122909417785092945793560609623956323076131672341155924990344803805518746392142494952213327802601648560411801027979325996542920696980877291823124326030463349231972467387114251093428605523464807923335260381579629262240246106607936722005465429202488448110559954114625194733212760308670216421455933808316566861315008126758294223338325909061611077171728404972266926026774864936750813348379406509786153064368713881432437966761522873429651322851889564296400098377278917805625419786503792582950183335806881834600882862457566116053282882744407546605722917913631768329249852095751499896677694906485794059827622050006169448122444645760719286549687078345312910495375690160190284205967502830804507239687438116901402750081739040165726788159496501942617473705582174092787440360643588618180882511250258868112288676616871125127838109552074596600080070049378522161382086457293585471605032918694759653230201813517949690551372282961991704590463563415885889627412460530554959061686178447855528774573781300729372927577940103672329489820399986398854924776191895942558872749105076199254992082740765118812085280183988074077774705995624206508997728460076006956659119859955515156277755308451422167160171617234581764083923369446396794576287745226830143699910707543706429167306092487299849212183917484641681917208202860544499746130398099499777287288630423724499396961561213023246056421608188320163619619824781995041310620261909649227008619140656039477872480870604491236652018167193666312741007498982571672108451004110769128962574796405770069783506601971011473780206242823431175113196970967278961703980458781480599285551330973849270755477070080915476455074865560747080512398644948015201727595349452155196530667463340440318410406110053226257380905371641284685556241628608136685777267101510535233574736067758914260060540637086870326030063596080865173282965181441524998197285768702370130836904221266037437142899979647592465795780612469727592432390273179403458821400635365813060767173310634677357603176843570274609438274053090449011629661173987833897538097212113457371730680216619711756431787031263039214246191276329297490207169828243200539400170378072964464138417655813633092938612541471187835081029368812377002196468830433597201816344060354884412423493593211333918559037844684794068003787868154272781457833542343583549127898313386796646985324722571780477000012522541360595008376282127578737652331700165970002320926946948493369073132364325941429743717869119113329875804753718908079534665942296378603686760737450605305581431167697363619990928098623274639485296972391657492673855668368566873691955426042450980146697078285034069846006542325277843364479881685601933642520885573688163879774117775969847497235599574083021931343357490421081035305979673145437196508800353358901146206097370023441596341097310956705938664533633083542040681501204994298820682019205187220727756705482112755032244006457410871560070646044888180448355963153713097036299470789781616371995115879890779515260830077776131920894046816318936357205801992577085834346888213631160702909079826345467470256391310495077740535940646672292331962044710118743744543690431668101131787438989280511362790741769930561398143520040295700151728294223828508468619973100856524377273581181137424756496629426364966157630247641199940339605051981305917948446334331398887699153926623226121891317290577040405165898119100869840651168596864951092102460376147087480835327844028767344221767291860939027443861425602655842395846860988719811183161594488120879697125311800585119230561347222341367886071900239814567264100102140102694880828974595473773100070831402382576985247563801434063297417842635419352362599755119652026570105362657028807628540934418397679978272708890413851852362401921250084802324876440701296463926277380377019967681887164984068357852237607381536892758168144463474851679705968475844254981760581385858199100580825702134417107102845994018582438019059529568573592215673355522235092660820012053224990261361130940418276590608129564569083252601419985704113504485704798925028242337251386968443739530668580201373096579662178324155723869958086052026641473847179923795283044882365044301545029719371466393641269322651904014271247643170341840641924338700060261313585477504956726869381544782013749723549312595519588469077004715766424157550269805182159963778582647101075429890781279157655288186171980075119795464676690493429139858432015151619595852449139392166558027747153221611314538593016069820240652043591003103818929100514884871363515827328272723516311241261172456544701752757869341174435066212339856812975764301631546526478204617114781868794565586961871423640323611285791552831312488458599306384922391636569397015167801653071948441548190547931634232895358625361137843084919113201317154129856149651682503460855314419535719883711784392774927839693188703264537777194327360368865523132438996895234690390752368019857560120200565781952813732062902860276957737692626098219077364175661612207906804012275541602069841714410713356731952126318502650428040626053513457814778387758313538602855540614839750849076045951150439321813487207868254056644364696492879626524350144821231522496684463922825564521733867041703932752340175161225081567960483206646369894037278123685640932193914321764272364842301894187918526479011759903975820725645268702365651911070734100760355581500600058390378109845559244979156276116763470773254105540595047696890109540018487311964379077026907084581015371781746820190412506152979269730835977777512307793387755387883270905673952151943614257600456094989045231776660105534438463550146132105580140353068487281627682905246646077958552873366332453763679903927019881308312839112745945743383953682708444195009546926716471921595455017178131868794943373478466942905269997650599245636776193659837280668938923720538580201589265767418844941374071707844159228745434785345923051246648270232297551865965063218540373355095941725282382676098967895515830234372003400078259959866689728756321441407349152450153894040492315672148144506589416648220541953619873907325537239303729238827945016760470808891956908754644675496237504823263890536336225049117934114973420706389940224187001961908822473199543674492585944432030810958149498945241396600302680511533654135418343504998368344409339245142504934071519170184503969834773422022142728476565637100866069221083804678478144867790111998856746501146278082987725861612234722264851294140395742714490634606760868266301176010233523144197665108146645586252814409499256933804070265962039452514439932220255869993004561813824308008821314374280645787906578048225190188583580410280983851266534884900383356369679419553362434177196397887688235542046870984565253358457298425762436590186074394202565393133768598049594009517482912734952446155099103622457114365490969444177026589062166285684377518729390617175009377101075768354935429665941585190032670108753218439767356303642246044320146791199464583106656565281576706814952715159285663788034970770401410676778319037744747545834531414483580415602971470186771357176569559030834124913871878628873336378551929644579720457078021491966370929973327887186166877127386542567502475124365409289179086261201650864339186235745125251869273872567763895822664531197142013991989231506717066701914562817314062147775082134672420060246069138047533131862712249203684148853872828438105165602427173212783810230843091298344478515396374158202583361581046097154689374364236153123556542943326097739774941745368775898354146932066792627805308143477080545083961776102840143736567966892560211742694964935756889964799984414682914448884554389814334822435489803597108939676420104255328362630706713293555530709846033724348231390610614266983040510478059149478188945216622316477017110923008819012710881910441694065565213122211009109153636537025044684734507588552870177867722140478335225136310319577765425494514293180335296577963507923565677326546269065680243125343887344663679928288330709511512703867903608326065309467734227868762013324469147459846950184641200414329355425795503280518818601997004489342327139683641820499272039650244761213134866084779815309956432147033300357647006638259252262604787050029271754607917776280711544017435449292684809193039444700018641106034818440429685958234616312974150808691381720401774087956055098517216857605874440034417624435126987015927400471425670188043055326321586490540651954568853165622804454046532632979867740843912553648015791773816476971613361203500136154811400235009011516466555330557725400437703526119078115697962379796447669451334816916766736535508638760435455868033090470859054133264626515160691920313512284441177205204481672807985270913730011152708173339229193465620737973611970395201802821992330207248856773306918703264114489868202958731610426928314790032546681513858194300057263301254054845282010171177477185938694562862202256927853989986469139697394905445737731967989812716901838926229942282284111696517128500293677430317333693356812332575479747160982678471374867598367510782100584499380050329748337763084577208259058485464036305463692834597385942884253756770692048953709528056437060143516927900994079715396778610347065478298525040709654400169606081647537136212369247320041724514758741150013335831652919496807844512465509230852839478063542586474470602010232816206209618107649453713100651073060500690467848068702084798206831607828680097379924891967696933244854849020618313786389137585749176292139544200879003192181968983738603337210578569191909169298303652092534292238873693172628547249787528844022428520907575762644466083060255250628789373175956147384794796639248896657000516540221388617343113587982280614003983056095635867490836525835871402934113160002534368854756038913913545116685459188643563321195552219805311988657084508889417435637473802660204314609385626689297939359614216644576991174447632236894070023401944563743918472189243327206385133491338462978343815855366457474258481869554852650259333580678254081346967210838145598659772929238447552030136796828288608713807776154389728402730028368372777414897730054557765599216230456858648886150773951002529878640650961294764087119856464796092803133698748209038047780771256388221299239099318562195206696243416891943329988721748711344903236590228014526095681635029563754265137577368349855898383496247355909356591828229022325415278350023328910489449404734562240436066235876680921776134556339377033356892606672350654396869442654959020669635708331445400258753233874341699853991043164892604388912519223193447207028338654332285491782849670735951797003992024812502119279110160923425160367584161608081299705784821617445789508936217480477480786300782830615477630646852259537424804471451888036025288829096188487194827464621571245674261508901103670989730098415146420510076769372814655612749739334696381310857380418059274447465459939116036212963781670368477578370334531813631482448951922648026192270224658843898159269195727965520018460648042359334869691983050508900457483496243937090088105393816542396811317325380840623685723374369554244159205888097910016628745964635743148459624245729588951932441270525980627662614231588326030204762956552730086414759931611149910494942311902931316340394514830575897908714729986011548461594914252515604779073104714951915544997009298714892573881027317710418074495146733322479218263199876865323909128663865361114649479293033989725097835381731383746254651488454604853084167800779584104459048275003147239850922886980433948321959284526216036345164056080783040144606081932488539123738380671840494735707674256893972945666107871145091148597227181029650213965847881080802553559440723912292876911313081486814860696485152901480848654174453830398148520117596753465423667218041694064495538288851324925124798570766075386458226622050220599305291469221661523913686179629795950807863647875249251546125630080725546075139400653332566175389753858597198021248044604268838979812640703894051210457216767080711975743848541055004834226026009994816337621604462464374542141837855256537844225591443881541416767941670946633172486765173782755913225013448472810021470017395969227558594294186570594452494995868012185122290985062283280309735661872165730959184103396318897853912910314564184339900482908261416257014976532842965542901638656711160741361836249368185950076404837698177277293530895528992769278075448943635594816680589034853408594319298790545770349819467164628295981406958329677742023206247030520934330938986095142744764905372591354971331571153864488388977329198927984892629203501036852824937377573518302989357120982776379285342607068243187386069772717365382082020451502847737826404142689421354198003705903828191674091884943362646602921465044238463738938697868037174644297564385010980487995660805939725140917563897945977743282864688013026313891567730594636896834998272028626137533147416300470814487799123883200696438429243306375293956727965679425861174745203658930777937111579570886805890367685808559315038094759114366516983163909390126424852998396232701106824958779746272474874586249992390031367525015647079758656077116971129958094473890127947405438253954801366757671948703880912187262722713998899550300624256004951934811934876354763415703040779918007363438796364985082228186031043758133140608226613456130820462963258515149419859526707021939132246625227828417845232731801534915948197469783838218618806747590140585594022475622012675283313826998468814042879642881969031879316336605746960284992111711541612775154760211723232888571406838233686071503421426032325860126003570132010815743652023319272183138564985920183603763631018195405136561281421506364964724176245469066253768299247451147923925646281553290531072565607301171931174614921357817035358610854911233519696697570911733610166021012875358053153012286805907955276868032718650750583208711501935395235985558708319851429181033155679272139391752321733080177844288108470259438871938514369248319980188187379595742854958748775568527787873934646414277370391233667539159394440580247937042146131650211537624701960434750879065849589256557164243986927165249053312463255813637403416591659393193721138161347056270032478758996150132015525492635643736367688487505376016553383092789680706504515877472747010084133993623810621804981633168988374452720756669593475852952331271589987803898435388245178392224786922412863125172602236174424351609465616327381101654064020115688210418007773611274856993700555601212162399604878637654287600570691539065662516923319807457315176264153070493693841778726525354134581493846246131460718504261898840057282526114998278945784095102988177756290346585967606769719533244951010218035437818497638498366357872867783581523772308577131696901317254370777991094281960602978028398751136845918727499297134644675912036175878849425524967242315486692970717224495200705840907591310743771266900092663596395689297416501972474110296153214174019630853525681627660744941317120015057158031271731734371893310631160109132450539823341341157073174684157167810473984762247617278005361123870232593206274884140071152962609810144834484852591240494262726505303177882281076715970178668637973909996050868246455552339067184367771214400271320728065612580067908076283185340532369417992266172106778449335408284566304793720965509163850864114627799529628622618422550054230831349278783402587914547853106834038408210495075552909401287880337845713706356617854274174127589221457411826322933790195826601751829280853848064858920025394082875034442388765135756743524250476678431038846200077465937973777292212178436045062278289725609225004974032229615702609804802161718873341952763975829009799000980651240479620413267042904672931793425643749681858167439523560128437946310402372073549886645537753907789567647841412657651685118668615295740536152850819518069188683229428284472017838828531923930069250930766814609079626242516692582385796203707039275895194568906849987883628306997829537099657620797784786606351211671420521723214838716424958073864479333490737093971022820746903908808029597539957408308406614533254834031764300113186149058388055706190150174541838547721928238979232599925997790198879581514469706595594937227047832792882785057101506653308505521070535366064862972890113719599212826423908582068242718123152982729943131710142859183369273608328248567779247906935970416361359245810832555515742024816426572808764143578803233874261554283017480551650592412123959236185347498200685223428529022506150724428645655597597573568492619302743245058079538160577932152988725451171188022169759087328797268727670269650685518908335949024824002167579212618411617223724385961726884257255837973505616363719412142708414232927829398926427418381963839871817402141769900967589936803532498942172171664064360756868225259213204717877231166059539493538883284590006678896094798906623671311414934938037160270760565578411418791724441487124768631456662574337102251853250655189431218702440697347814007283399960994230152287743157627269496775907318667355587594802763326692286091632788640928339008495664663929379225934176728203048971593516860969835632531122928534235692933015419238948062994709724027846722429614643104609940925071444401753864861447132017995892083673677199841280612105217474700556741951420498929209596151314537299994893650496136376858579804789393526759733675972736378768353718028857535819708609160216649712662339015223156428842014017063191208603639043588735409091020373502144638733904308942480344731993716678472069575789461033069803834517942259894337304761590143459109754805646896230669288520713883751611819819027861328836244471093389581479412296715553732000679353953551658222959889365686984869899417040668502702168062253661640157628010500421295254276803734263266498556697251927155987388310216152911629002645503165410224393545955737647706284692447303406320201239480825033648835856169887661111171763661847635851827130785307950802667936885712789238893263663693195330985739787225523694284486207903578541858298848119329498709587609940805097571168035377645679973479956177539077759309177384608927016308354346479974448905847071249813071642488385347053591416819783819636739598917480840788249659601244692853259868490650527784999542280929282015060241655875160522493406343858107649543151491561108014705289801366770270979102980100547812009050204195383687488955223533963204852244071801069340917365034066849482813074828514203894808768677122031822582761062973440780757071862015621452408050159039224811418353465409746059536484687509816225700646759744645495202347295207541681572360324880002964701035934614500703153572299796768177052843573585869458899806552069416741028995347874703797644723556076440366527356935508736496687808013759789045835911086144237943440829422031290608906958794068628170497114045478899300230543801512389091539157068775240008328021375085622785125386363563314421276847859646980008393756834001903056320642304919813882290093726300111828775323019369184417936053557021613691841912655081585089216756304522791821344116045918546802665757111148927437030164234647784964315756622750964866182504166974852925872643391878738552456880493429820179969132014956730157107570476938771913004231821667662438148544094932901927242449327494598888496016356617003684403301219351835953393698647808233946311690689450182305872880049494272133398047610226203033820075004173815957161676924881652102555379278467111814417713845694911154515300680682594032123339071401614220479419701856064345971934589128265208849414539467310295489725218181393836738835285051108869020347762214585187080725462615000770158483360293036750136810994537504509365086814256865505499531105978142196585399046907084285337083474506650966343251678868111501085940758051383729560833967454504654436023616617530442369347004652171653940305528035547540332429908548892301294071236369533043217502652233701791873036965619407656940084937903382173085855447829832269489764343722909632698115096610300707539321452274229658236734846811178344440055841303201138378900473932470072647503633435990609179634896516197771666218113169297738202313422202695583072667955764279073954629541155660099889235114184369702758432275759083809939052941545541507378464022263643442391233134567098534285683298060154713713071542090505679020271994835564742525599031756247029979200301389855099881040351058611791396048441115610585107987565409997926447436629719813550235394928478166068287103290510479752900511378559939674519192617139655720815842179157259616677446341915989630725677479338528679570055584179696905743844205456156192830348253277235857315933242060756704446551136579106494972160652694704715288496647317770414817215288753129559741252295649887761900629027538977855816320769835994313571054778633532577744162438772823544593321086619922574357492046254033569732567609797631076780254403641292926368437499944024614728183824407334241932001245025514413250676357678552834577966877885844381484384225097196034361961251050790870945898730586899570051529248716375895288843856339151744663279469961393808212453095423516301353976349345362798456764209586110334788219928148013660028547630538029437619781264501138803279444021234941460538937368340239024117475597532392765610657987921689370967339587810945993547322977662549902025598697080199814933427673436052110635885186227875876423452863945667984396836375329878708019021935709503443639249084259943700170072172852681778267166639725920177385420436765540897272739042992932879102139243087569456180283919819823260197990999924762789195373613377216941781855495686152439158977002767324434990354387092266716531987206935454971491339499723033045503564874341664153249765519199874474051360347799947585921453444195692588271231474889503202135994807246801347902695586014079852237026742875546967136413999707664053177336659867047515556565164631587389878848563299439517095110332727517427496957015114484968431753657462950969930713746489575300053519530651488887630699566198805454896130555838166893342777984133638148151539784199867793797739040039570886255008193106985048844932947480835401659603772896908585415347517649460163520234847405766389224638167568703738142891667546733451166274004325753394114719955000300267467446599642857567151525843291771632942056449104741595696273285080094628826094278202133829535430683499206795687379156558251225846854264648064357961868792335067752013990506347024565618463110465545564108230868443049848300739761545234018670718788933082405074915962169170033289417539856208538555991695323026447091017259810404528080062299360001137576644490180924952235308309889915558626839496737142838522987322310105388635014017798398374744539784377864068598543442053713709543284602039318765948583073657014707177188771446771446806969587467249356755875130015916992427900190254422564233803809341766572985839853536411916538950106158699878370169256979109369368078927548248561999031765058741557573998531117244323825684833958909112286520520175394064189912904509135781783920089567827261474234854792887028192155231588693034717673915295510328905851748868235003748665018424069020320720511154275002584944862333015767035429498144948188030255450552805065673520930444417166835892176879287333093680692586201427502764049874254953595735910821778475255921629055141581448796096985100331193170625600858100003378084187424715230439980654364632357304196537158482513664666138588637188924490730426777048397176634323178010335008330871417368825192234284268063511570291010556612914484124261624094607885772160502433337812896996982107423110880629755773648266615772736361183672448989925705262948488710308127869306294872311887330516589499718374093132532384670879808072281666150739134609303748379768274639981303259684557657352757271350415815466295259888101805630854406275487665332652897550530692208226766967343772461089746970954411516547449599366929731758877795828257317491360137159180932753949771979651975102733013628459093580510737033686513820695836175436804631267441430341199813172894585232241556341458302290469197638367195822350143060331808306958420067527787871078743656201472235902715371108339586833154125436140592703627906905778063254066431370456415968312750836580052322665512867922272349415996709311849083048047985164343343770818917436908618770621140224602643886984903335661959759516535155070173353420133051765616677428233987466906694567761651620490100795707951570452574291028788163608624018396222311196170679446163240115391091881044261334781667304882083212160643603387447632877594918044127784785412397072156445687404383126025480464550492177992092175006105104163211236384550787985973338155370586127081601298313152708062834897549078361276458449640169573897888478304248332964432116265505156088422139875167031896392765947513979509860443328664107131011230992707007951639828550007378269141731805042455606390513215892232586397002460455480044251926346609427758797946499197257431248019471659932788699642756076717926299121651227369461530839318371154964597177226910238126855153433376418143171238713642716576655103431322995879235591886880239471518141972022651050619428331355671029595989711433904065898365326904971160553567116466775799458541905793127969811251900240163260043154573834206263752725174754687981531805218434868749822990619161900464874546979463601208916950581782446936227751835655767297247379523771718015282058528739734143159553684771393008055779370248417127866777606397950163956780277011717844589956023892244572307267593799777125691171881421087211522270028390315120308567489752662687070962856925094727487981942226894487866183482518788171860326114102965277619918651086855772995069213547826573519877979445974628755700771580680512611385153908545440359835391852726328735414401629213120031496601788676148157580192450916014383356350404719599787894705650338167572320623043560998933281072809795700853151696204070093507567752074755075937571709479838087866524830173562038483806829148420327071788383729181348602442610129746662601424707384173142979801345790247648518650068580928472391954735937222435690204693580071439080759618317705033437087178433270403023852791102533828559785562329163589430625189128682241620398321388767439050647343282660123474403605971529245428910286814234050102990011088320790617768297518980022757177997530654622728801289808819750705204475217285926352100891966072228998088182343179415934133745810791764974015100424780429453439004266808589710259913431621809551048510682125733889960482026790933703164719331936217833010108820416530252886602641241288740370023281197313243972799710469163127789061965467472462342379740309758282154832543576247743178165384280571872207413514414013561196999478846290416686318375542873023557358879780939454906066376567870071793224171692888299960453723381636245476125977346439202561108373572574569599121582791631727667429221718245276643902528563566010265114919207867509338088004953213790853559107127297676283355969528583004876379796324603975621239744342437683402797100865288156304440942124766222332504181657963414624562901429266496551412774571166030982013499492287616833472733072099599539776216525409078703289416483666822697901603649627085323854786373422513304254310311304763058927694185202426393197272516086337168060548708761787901164561748169845341263625522349525380666194975147644135470978780324351664563645932091396820166121523843973186104204040755591208131803099690373769947557951794649952186211674202097931877080391563246224104512603765752910811965508221731615602106546402387349733382229548172574245226167807631068627588739163662159096184103720197903380547558604235459742589485804234222846419028676721302456274470443873578169602562233847456368130630363338297874015275279650064792770879170362345860814430305001630367466824902992315998128815183393759059252877059638071701697419815147887327021046473041182392496850864127199111752799146309208933680694623711691412578768106328738341808592235991165172140176953760774989508548240549968125513375808076549907760345235064995538791134959629034279870282978048761680829265384266553860691648101490308617817575420511696808167627963700520228696652142593762554829566439486402024682354148640753680863393330715239394715621068990690475871455602904143395098431528644518159291277557381304723525013347806840057853604492717289467441002392756142500967072478006732086432528523877736020387597277284910545419795371281491610115478781923034379805127204469478309018051218644520528180350599010828751184492351121637956041059141008997471364437684261308701179276847234420438811963535529158708441194074271701138140837278857143726346781226393262410837668158677623202131251250471517647667155854697794001224684510878311722022208332256106541313170762404243122379168028677602234282925666413545594393724873877327015745502855930374141904780812568707313849573714860748211878580801352813920786658283285776844927030067538184801282949711820756994077312501249261236964624055782484268546705860717802961469561798906369956742054247137395956847658311974529573777618842172741934628151978196074202482562990971096874388462364707666276649594784042927417472429578431978932843209493887506546525268662326891232727381651916353817918877176106768731703226243318846689658119813205582673801825169795873782725670701994933110193716687621547255905281331127197818824336099136116751327108456945111199727184177462779545330240763615963060934538625198725340745726237046378860425330915464876002743241149228171097400302485442784666354074064556243435956332203541025841239942926078458959453332029017835873921566120233043647306988973892345425310102933044673832225896574417335917461300840877947899592483355444406555212000761464590531306161508092888258959125045897255544609177715399304658720886068502835000101115515036203723665234439618165212132718940187890402337045947348398722241243358116777973982102024133311727256937682258804221102657020836507123067997317525397806759898239140319536001481785024783952095364115515920192063001263551241245493921933423449882337124850332861206311506064396438317722059552587356160649749657232475426827763877274009065361171875173260608729795053694100428432057123561143119202643472767249025833036527213367589431475006617013608338872692412907809864678257124426626477850841280178338294195899385641443679000890053056911689433906364223491860762090689281038374409947363587829107548657142665581624326440939945582975933245881402202664629561722361471436876955274730153563545696333986601491800883335164938155456490459549501750205207066612814732336076711435639321228382854502088742100683023549284888966508093628075081366241538101037530315212931541397641248923085521949417753133904089448201938607992485205064189274067003422508635075914541553424458203859562042611179677061679322560340755719671981027221207173642882141356124042821101002442509657129118560829700914470431888215291112171986125111139558877193446238440605335093252577478748866919326878046966789965786628188569619827990878735694957513570615123167744390723999001783582004793203536040017264195524680027600267093912871896086656205223299156695110149908667754015181624469545246323507911080989987785375621629879966277176310106937626743097264860949942352072576903217937452636358419043489791851340071039678802451518134999889820935007789249100886418518543575052224847060593385525158740298476995058514378185795351281861223518162207668104897972684976245478144062883256244921594331812527719561592156844924756333480288081014696030963448523416943954873891313434847884977376184095414048558315766672634137794329586459968007878837863173092913449897048355552925272772369792275224414926731336013636587967527823313608774206932169629936283486345917374371892047710629187698472916081753335330664884835680715351508883931961723633376742048733032928370758223661480914207232167606350465461191652075990320980182337199469303538975847143118211942769629872903434183129017006239371878937013298564427817773990644889659431759877912754259746470997966770320500498850450595977632356178832610671769199336329674171186912329979621940574406463056321271691129591107947235302053613915471518323065561126328636727094253420778456183662050747730417220063959847698477494940532442280920228155884204145364987849849534867375451568424394837579622081576800128553209560091844668932087623330602806633039997384017820181679916523722534797008925188902398570544623966884623231539560614396655681782260473973739272323814195218622319805815118696238358104606577838337365861423856082185160867313753483134723396347491412086529296088602411175878965390559727932628142479039625193996092015541247738394742734448463497435285077377231091690038365399652729288723667749058358594646588039207556013614572506274714727898889779560081547737474426101896230836842129526658892810631928596344195634540151705252747599115498515302761792242425936364699578578421159472112050986355205192535025775098846050409733363836428018115134378649234238669291227529555327369393659023251150115669283757709070475111782378429939418104492581348846778021274656291536065874776447833381666661618889326334553180115174398678699111087274385684828846444903455706786950114241166882042508634331318371872082199921919432901727071685069921290575326832767378068657506471174062268835260600644098779129267799750797796692159264676164055194372219600601284718843444119343403247172651917683915969590345283690050564481987797977285851970758312521865691317450529460670752890757219345476466226086374646660399416555170679923978804878907121836056985735899369700642982832021663752041824334171326103216999129285568105898395700044359358415314318156213591171589305987940707088730495546787055363335338147849980322616193737441839287291111092476383170401956081819672026627051959084446159312022450348880371949969527640173494342115952265335481086255135693926908424673156917835993878157230351537889943615777705945422029046945297682612791543580516750549905979445663109991326697881910426483611800361090077481202274245452984507142104157084094548303106321508123189951177509452946106075118831831509756583211323038195699625199710097644291502518823134998730594095026352840577340066691114486801751497021859025910090381538842091221918649119313552585765216993341133690754266615973619309012021221324084894394884707950226988063855827153314632403609922085262706506952534051559281447931644858731267877244456674541071082127325385291081581104435940951641417219212642768730997203183969483750568226883270677733569330279315937064141345333935723220122767234115879805541817090040171600198858486415192817233009064063446183286845119009795661903517478793146802643863529459686459466695140085042825228983400110578184384744783609614464727621374628022537897522689718775960216538183213089126361997458063994477066098450495713651276132284125094354758523122265375730761192710002640223360671416611157717613299814574765616608583940054034191113424843156772987273341688140355334682084286458106531844517734508240246732463693442680312405436992498920591534105248807789347413860520986776419172813948595428287968511457304180958367544328782547661876431974855428498020485548638059501596307781344323032905203698874381054619543757470070685984787183245481329594656947386855381796449553070435920903359074330664998468068475519659418130088768915280050119423173670765131790305554533235096725922505418944296836840095343336427820515170218391657754463646492853049121782709356061033978976417703496284294482506038383521341510390358846948874151898506588140828851666729516883106547088133446296111533404784980660043371594981901531368063233473950217385211879175230068150226541187934624195754819757456728875489858161608452445773084101053099150773961990304977738128122072158300121202507897025636291659519978383141855807195355945810042610559505902253844986315935422354919550108935628197941927322992653652730799917949491201521604546219959284472861151676453218649914998027629312639222079869530921129505665209526437589368968031231953486815107738454574286420949623036502014185190022870033327646235840099791833742161005707573574713472976672859305066951421717083660845058752430594254520824190148703603528497007348245120793390632530522927763114555212819721388089851151842315134384407832478226494797626364774234750910460179542364453931345666016125941594358763987034835694889527192435158415299306371502848939932422919263244235796182942684660688728533426676817681712290995998329721749409285791908677479391809720539112950641045744848655595885713028151349956351465737099913760840469206609504098513140807294424789020662107426907103106346448141624634955479261933504185719984390182869857465850584998230714657949001797431248583201660542699746745056648896540134252775278021465151627050849257281076504117861204261053437517921981143906544751213363874044026429238198057748025802025998802286397615104559375904348628749085271337275396898233210707419641741027486110520329421738139938720482330891879809709547253261188567083197002862763667540831276027655496538971335247068073688002157265981373742078500862153186641783650569698249272246674220095532982043349301090595934432836740046277904353786052585146966415282991817307342578709631083897450946384045373350592394590179963395223917918609258941110370641940214011859754237287369711311993859591129096200694219280213717593533110244203175418012426430763015679281348545598168913631161404794348548338596026806019361183331473849801534448909580808276511522091119770652944240723533830151177753970368113526216726483154853506487003639495305945367638696722176969348997670010788470139777371833211139133667414306397810012281752969001396110604920946265073693364508394832702109531919033240964908897400981548660074717229957637184289923059018273724900454857210178795031695984507334380822647798307270641606797856670597487166273091630705221098900235857254487311076934002638242169677321407051281643709919142625389242332032747625206792806287818814331310501963729768475454429775766725540696662368670994614408097478781100652249249473915201828587005341865976395340758085814771138427443716891719426675929967419329897328712512009341618861394182576221434847563410966576882750354653663767015995131197104953653439501123184866868392190994194213347933988202422773038962222221501702683967089007593700980101221217993277407965850332124777780853082695141354660748842144847299338758845652069290774506650392371204178726281880050700133731226057904169588677046966984607814427402211256467808715489788993127187905173762609196077448847798187781298793424182255278261309792703481589365456126162972784554663605322682539646714390426032406518949968541957359734654501796663192331862580129767524186300897750989274384404410862824780427237255403197285863906799284542491431360865592910739015811344746798756107337182662816816935426771464444083625356782304975156624991884264285871654845723236020409630459631866611854425425020526521111428833070148287009593631294512734246702768894218459780604513683301529006994487365385648814404583090075067162959655840802991855023278927593567735779164485452060823327522077239018526697074180038138648780852524202101767118861871811628820563188519245972330812925564708597539237915184195871968603024452177037295069379095468212054895288834763753608508202133461648200241758032591856200855555814350279306150378444605298480562992127942458908713202708431622295978888104253686913571677619001172273208432881784600899607741166723134851798479051058985930647533319675899399136986428531373283170622007270535203284774657455489791585084673392105130416897100780094424709996990149223246908464064301487992234188220449831700848179442578919978162244279201610696322541359096177717958462717296108598394502924760105504248077574762708317333387548595208708081179828076200784678157782113508335668027670212329290565921027173614752037484378621693263597917647351562847373294335615523930971312674526592735150049296001996142431165821444240170536712769297644569196449244741992903488326236204438495153870949125991976116327176547716141175049004233860925601857507036197186449466801387040764557673676832657254973153455965769448518199215447693908776808962515776340937377940609814704162470003792177842056268891378025672993009588812752669494637750313907732865028585167698962307169627438149905184619096138982135931407390978382765639519319833197573576651071340115457690697571907281982327070321522406564135020989344036671548101594719097973157907813700268058478222195567534892732655386893644751412683199684562052126468619712093206423161621976517476608431305840382333392430611605911551062810024531345642477252319365023749454672621738919664020280173126831087855116441409016412787440167642569167788785549549336881749946677545635953116968549203765715300710952450666157456920520017113980779910955127568807575300821846071957162386984514962463443987508664840666151265599350515035463032869051982292681617566408876287112858730817019743925793345505675145478120158366855007986067908522944031615328622823807013384330521265102240246072949544335048360294948174624776024559789849092932613722067345821456173963112909696760882701002097268185931551122746951295625520863571079459796755450202386399829013331201664622560624570255013463871809053383777139681189111856230801909489443023718302726808584829321716296358356217079297770198803339826791368311290993399853103390755705014803057782194162632438199408460965692141079712887609886431662957719535316466150916646669338484338787557859808570111897003503733840962616984775907110196225310588357498931373032936662955831057123639416370273309664561311418453745371050718313175699417413866446256561700092347420169149144017222946598014551443237104876158512557292861649623580440264924961328577132849776217995056576582994152720967135506547277523115838438346591405307231611899844897649686017145074263042508528666708899164484711402164098270279189006956695052763723697141639196504455366370302600737105403154978954344606784839426566443078027650686701768788825723376350458159940638769651941244567490697422044854912624858357829505051951787460256143871456055247976346255346803258944254834939523602297725149795917813227899727382232836709211489162649090049757590427316736918569711166166630201027068120750477477617264803240372856972946719218774804060660145769347275686661392837818931658474459086819295721366052865815365118201819318383299525030693478932888871033695793386201046919968983336052455017284735534573328939219896160908377913298665291753364106698587150291899649976688476365820093803112188826066373880884266625617247709042026604853645236903702548592306048241038087787297526295419574647709467261487809845808473200441252651898263146916186530172988191529801927971714471856118267396085663120406305424585395764431534187320543703071548581362476122608614901950394462137917865121003131117852376720965703633799322459548129438681106694481682694413275906470079407157596958930776304267612053636201844030095283002645716302791212572619478166579027308148248269584893606863566083824823527997690280995523017055751776149521190239554480218604160243954980652574674186254053113548141382485854378635470447051536194405113698158220551025922449619252541104519231889438835109487064192969519091713959778391183741551079694038192371881771774958781873072035429548988492179655855842137533981081573470104859824056025718805925111447481181709360697985205874840829097312623539102911478283628140065853201467632315188501777506359303810510005562196355538695504722091567932097634899298634965119159294141915336971112818588518628687312048370734679616251248904928927514509220428095270192288910929917313457789521113841669280526532343529304407756760726575635720576614460598664313864436618463645047848710504753384972829085289170630923265043881683308415574471393671976874970817809322128657085114132014008874189935791857634242465791083500622564382262121930795546655267360984997174583102615169490567640666263399562059187783196542699108952129602707484440360535533985057402912987739332121040135143839222892546337039147888462285312785593934962991293274100353017715343418437199938618308359759395962977102556566679988768352399842444465034905346347457671088786973938145540565550277644920940606717702829848459868126242637013816707026374848967638499331037161043430487619275051433551429314417342363408847906456196003015275948388684403064296613420566931523681735330698306837134290391909429001826725018254566848643104999594648376832803754749195893847461956388753120579192106046856173431767412382031716516957378802462730379471070791840967606598019218588840570486569863978737141439347335379739110472173532624887327115548211447426647485749716969500907913697612548971874170718930861219709611064881650156378583308583152745241978093328104345606443410537634650373705448542124798489507038884598237929307551033331884558055439181808997690725225829681632451824544805422435234253259313120484595977651944376367299782503501380627537319734879694591272013523139756039934424963312902273802218414033600943024755999430860917035308607100510530572357175142703464754463677175706608487549262641473058738336329878970922165709088934503879669615882177334234601085947918665845036089114309141474558847603573246231064647329148151120370999692004409040060515632220772553985454285323152168444905542116999434406899666077542280178814011488087926377030365926972982868399530770155623998881025520011368316656404164603125522306590996233555696759974842056174445270272755735183154381864145930725702880283602966594997606581795035264194793152825901097793409229110826569132473619620017656821258698524375015551149312100971822087314247692224105953505533606138478335735100985601489796877840853018744469663354358930711458799674323887442487706096336588628933094726048846233981923088557590657616793741607760318349778683570028023683152305609101914689146843706620745600227744214158948459778656712061014944170333435369931667802060735396396083777031999787288615817250781521838675687871426126219368586912070006611972377168958055341661462569800825183714456943487808473380191213437598624742083196786518232933125197254358192185439029382339792497542982390807764099463992269738375226951438385270170972706934305104130868653412124336525091249846225359862567606740769559424120036209965495444040970571719497606132813489298752937819493759129236140645308510772787847308551130129097983364144170818581661692805642471830494288749896233193597363921690285519955524694145699046505107462524144087005136119175250988620490795165902527114073786742915530817122884156202189615135920035114926494600105671032555618824317719677295876165858901116597776860525038914267411442988953379284484681281805475813622708009613457174455445180361186400579802806829307681933350558014992279080189374673375095766084656527003872615944675808035851797677941805392150327768165356315981825151194432933996668022493406107115906259530779504946177278656769505704946211314000396097803336558132084944587050707520366980218275928911123810102728956454446811797875437905489388458338847602743409747565948184336013105391341811067869421351553601642362706474840708412224974410153900288225736907504405887335677681674042104592201434470410575094624407421449706708508077351263340196969132415487275580903836898457591516528281028009914776789548255902714879221920955878132974964144525973874756786868949985769686476313528945141678031585439556558671370969463048258124391224133494856629965864677206410709641618197544667193037359442695512310819110807558487131041167158656525934365747103374023093067596162443076773773525401657951862555896988044036364433260065203269886068702662324311389729427425801443096762343880624102277671150428065467182591359420247428333314025173917995668384020355484110426343950377327107441607939131506038327057165499712175477880298591732944783208050455075749988342332331457530802020160930864257722232983377608894507734893381243774746269842914120990361722116044523443461589751675283297340078361340631082236423204636082046269211882535836319057447673993919727131373277755348294200775353143963000347511847137848439725883791107963317967541013703128958452926114213259668150839164572115544304792406488568196882003390468256335493453042208962651334490884204278360465445198285599773171935808396625782537832960396222449477642492925941873592234849047801090201463981889932201148299855358726831130922800167189887860278062923783598788074898456979562980283715767990616670557482779964228502164194618322596278361721892478566975130732966972446381400898510793899587539256012288925400308932794120436776130697762669693782352905322379753054913313432823947412302668961701854691271863739861047030840035725559154496767692276859048111430861204958929739630040855047103680820905000260693595301360850842578048348625899686733394155447670397823748946703390487425830004607653426853615598492293980366257361499095264419656952532828651078784162521577948649646578596737604614070515354086427301834618880208468136655559388982540455530570347391857787797496679746106912561496912578924343595166542189918879331556579816844190963312713474365675694585124060659459902676982126592339706689538037813992042866316260305761726738571039335313484270003270274481350405633658459940699432307539172078430437395049054322915045496028600554113273266133942527152249905908300683739069214199005832765103289951608114010126674440655588656752660763581634384467584464688256102779848273170416846385943772643302882952098683818435003327403939950908747724632686968188282726730768829893621985818442256474190970269796795919263182316299451902879243106618918637264273389635304887658290183105007566128710777585472068779991513234088721797615884925861247627531390074166196683960495182307905565463142318057648604136976574699721217636096006468985242488101029428751766641412319210407709219814316251190762446877886541806818987429314273101993312942408618004960714899013805282586496495569628809047136735381493989947268460806519919179606004617481885487534378510293907276981935494286735728103881523563568585890342671301901880611325183224037685241074816646448472018840014313986222504244030937010074516892167319624445172999192243141523145735787401569590793744316019964687723058248685593847727000543415163454651425985387736238605722376562856310503451525761860571507097268280997021689080811163616197745065808537794876982199950780904853493487294629770901151405854763600430773605539938614830734492547525170235327353209748145959804521761555667687763926130135702909148763852038446170910518484016636994266721063466609085477243011181250530518194697182196042160479948768032095091081957695569638765037166339057843640623022255526115723883907556794064391908088460770793150646321892269916696148683489863382040805554601249094274377301974007616626767412472386339980312876632270831468797238718303488467881710259329224206387859097413656055214972580148661472330359064593547714848836941963852560324700100482277655448918238255714959815377104213738968854587294162388993897319798170391214663960492003372115909557409624082123572754632897323997482073935825786898238061010157463730773372923398788589224057254512390827695021570652348519843680503282041036411023974065921797495177096192840446789299623289442030365017301855516800420139361298143051491199006868612066599283100208785037545077509953205283915908009122223634300805097238726454195908736238116818863839812438156219402330073805644495949152926456936294068813970176413746669907243143732939125599900900399005485608459148612081142296022613077589561599883065311471731077934109173590511138557295115894615336141171573469792987187012969178786401411138713023363266622887799313946092803045376269524963499185457170787029174397481355212063004465253025064987181313525823581271052196196313410510977777579363776506429153444243781753600271692298643944898876612214958903440275720829000910076525750166791844610801658737781517731477137401579795665730675866875622693437779596667348473000152994613960055256970558448898883319010721293472965833879974112844393791169405527368614384850350500500990992099077758726864822097652198852716852459170827857746557029224591210162865585252633735599981224207279849068714016720044937705549130251969832192506609333415806654497229861478489424105173113435403210427478324973599941840173976444925282359070776271797640538562903963233739607169891474034562131923907028873002467993331253812242680291437137029478140962631689179044634889765166270080056704663011902401667392470145010078626061851179824008220746412613976017788249750167650417963059756154048943904352537956272342514301357144648408084972705708262501747377475584891332336158625243923642806371127457424967122723679317475112581663175899499826477980726908455821175753338753328218487495270150905881744712850845305637946309122917782031389982961659474530625736123169072144967704354932975193094808310823445214611602712177205106966198789780957086318686109566086163120268816333831194195433072675490233032376092366022129190415947080046171536679190998014086555365436091547212109216310352678677273794192028456342611378908133778236669015530984669231396947887751086528904145908594658942328800479099534908475760378313457515441405809136741465898859067859540970455003319058060006091113105409257717248022041380599962472604048452314691497339091021328917089798519193503416824918513090568992307462198593972978664050602440825766180892579202236621605498332224778793724773075086186045609751597216333939204379770924985862704559217913429967167821258511138385729846498060877577260314126028054374192339426537962989800333568936905823422092252054565161102617655534178458532432719148775278858006208913938511674359215941439197094120549882730123518256748935525293680526718364793040655487474469541312080367575672755280177524096752750801705012199867583623593885058589629168089589272891689547960966248142510330977942614224888698636857700169666568459098032820423094564619198381329167395442074740278669547387668487728071198358236885166360604420844288220291367001647512047619788113995822765767459516351834851736286022591552926528428385390638679546826776175538131145775339909392619397228972240190368226216186413178594692585968581258046848418534625769678052750014302521592901230071352646679510028091250830145383711302974342935041071196580458739566164792797028510979190239376739059742435294856281566896988667783594586993352217888107480114622170699863231409968875929856740427080478855744741454021678913759013742828726441274727524635095715883730566630007572639282023125591545734568246856336556419454533717638186212439914127764034146901891761320729702015744646293874568806351783675816041886223833658065332599629031052805957037061294085874523234727796704509394869929686850626739158680489793919665256867059535016232328663499282560327969939968603899063689063495826178211759564788515943286675065403269518087461639882109533806746295701249127020151794167960449869352525479007092829182156424680108663966686114867517364302704586783546336886207091684310898819636559515835663765466868117299850509316000192104115787278896228842868243761001635310090525074282599587344975733723977319680043231731362273257832567739868153559448127476041806003272317236187999005529511452793434132043145201698770174439711742482030954191095477670835196676201205793997153276501024808981604256698428226823629396536067614326457761818156363040028195007178153478729833093725940893515632663321934576533580167920185524762766906110024465818629609170997015924605006307222205853954029399911385099445418934368842498208275857034153200098416363230983396924061094368767088332013024004273158140857932877541332754400840243296888622196744951079812835598153388459855279006002743283412659280003296039230415428511366443665527166859134367085561838868631219908987079050750707913071140306335295943543515174323835613713015277945930287496475918601754647062770527838129067568496819509591571291050223164184906433572798124375340832697680063964869573039574583576942280952959211633263115907533281317141030559740616488978761609457423682473589854623559915913762838023780382286033739058772923516923681434914645031971065750387712714772304322230954969091535788907472935220461467920952213716316914409420697617932281367576054907972069048237289413684131270819654277751420552196947819550429549895404284652759185964951837993375655090568558716661058829229316740061199389828369752205510551723977589445087191563547889994786107327458360393361770589287910931749338420977606036081525313401597044590265443799884901860489706985369537459878056876956398111223410750124280192236192611650914365360097988654330966612552305554711460590862103879549220833028421948331025653416646933175760436840731090698933277181579678199388026116941238641515992412008906469076961668552522725084037330238958050482809157139006046083147417047019684707757910838752213830177454098798864748785681174883382517283386875901753720099208293825394553069102101813980376487088703966689210266118759388545208742564654446172901837650872188196593535313828980987538883520345070277857388183841777186933003145099554756104402791974774176243681980055416143687494830410202162811695131251931021671907378693015922522507661977878114789536739697435925203438895735958876313316170431090685580729991921791554834700347599968205518357535822612374398483374281735926739443085708090128613697632262643749563498373300896840951070402278160320577750458142366123304293185970549644822713934414786592898999452901955753887381267414499304129449169520420064394568739761953158034376616944141617752210233412301432477410737025723342283606304162478861859905330777939496697878953864358575720881055616070270671597097413968908891390148682687492621632962052274435035993346042699562055662215967306514951448295760342312977751558698297193899503730447272641611543511726745298961041649819139837361129279882074176072909812639567681269776117558011537875610546694269882476147822261629722157321879012074250902059691318475748648546177161184553156633048685730698640783787783793829479741399270013977092754894712449246578963870859642271190652766588750567512418071198868271629773422393197499231274097315721353723430867099275316702681556062456429343751900999896274836518152135389918871968318882502385464563107502346858423523075767522370629694459118345224278475833041470009057518851582793144344716031430794721408609043032769837030521300462863579730601393202631944641161882675566927270240939895031227014240307983514273545326703070118429543240795925467932362279203886082208989306916295040336031431027707659082852288567687541125783161662317277320799011573986294296900258538590935882921189167947020889302239174164139241588909246291894199288689985183386817689922495842060980082081266156072032222460708570139764361447291926265365621908122049713179752587053514879938137159253695604936971295241147195515321089944602236919816633991665861489241041771710066812641783716204727108733776704442803971346912286176621816217892130151018081357981123446686133399361831337256791347658660245830561260550121421265786523653584048463738576371252485183111911859052828456838363445844558408163767130574475301501157248317735449122461494826284890959911314469593631235502771778876627163449207721711501695849391983285979392212526103658412560744957884244024127048168628278696667052534983221596157003231293139283296965716111788928476485476455857366852397727262303923344167172596968761521175841563555387420962366397029468136656922162910124607285418346220284289194823298509569643560579367536879005780100524036219627454921272845646757402474862733404298588487057560464111871015882072910379412249624084131052258105371589081399818204340251952758078391397497926271568074140590830587688181079156317956550654009470117446599425971261341594376784986776748675084815177326969525825116457029251017775425494905276623886927631099893233050777852539231676610106090356656374469016807835136893642545263448712522878872427263001419545130342590382514323755568404724100021564190256272849166573765200048735706256199960986202291423033108374744216773348099990176250768531382688166939564657013226999279224494390567387401807018094132483719790811149467935703310859047904945070945549331998222908447547734006383727289495589484542500284005958844375313621568074664199653078622312277675617892692014382145465672135516139597473429842095547816684497575373876787684312831335908043197088549825317016210771355907504001849845356999869260021468150669780074674964857629024660213002368820483625778425588499181922732620244316169596141819182009117048238518386178568274488568069615901375662338450394236523468313623863049065125732428699704717917332540453680551019051620292141052798687109188620330458364496725877172480853766979528767475956686446234068205353128255076277945544656499475485025013440236804519955981526381979994540185409789338972982946945905348199822073331844212465351896784616723518793402543894648099585325360466046264864819082726879526229083427666447071266056836407880277769308848754238318686961746652857475725884506426141240157483415012915892335069097513951203327962699664776054270606660961033523455924585524713448158150055413947983641425006540613512485635922522320712278562886996156989198764825442455745541722084099619517245613751722720148379642715776228471619705715206790876291726113740542976859423726030528442160644169007897588036837609989288627131091907918866737535102034985674757870608962819573698731485438491291915187711191348406212209572443980816445339970307598820084074934629177057719557300344385463469268808089274263744687161539771404231436774135816474274357128197561253379666472835645610090676293400958797104054033762445981161343978629839015684407003169504209168514467005041781153788890423546987755953685685206375747547605269808808945648247876082115939370795752163252071924307267308656812094020407514816989974723590925490159292418051224743086751662065333742993169096787608483295622571464928250106512312500864935726944190097597179793215519601163302666596068687020940355662474978242066076539303833231738137200506911824219970915445228414859484562078704933487062063083173365391261906272034419629163909944976611286334374798286373732503051220492338172116748297162671503665968285817232432103300341304817705679177968300438839497719055427476809176762627619885695575331815034896929875853007711571725142749310416156626655181985245364358220560958233488802530076581665066600191254627129253948375675074928084033243935458455187408256548270611692802433835372452622777986702456149309442419874852869775783038774953529847485601933534746663707644697284571217040051692788676187758593410146572173161956781931300972924060170860012718447160478213837232492000163687147555947893573027969586124348358891181247157192799834332353083110341967123518216286033251278895639535093762206503504990478921704080028990353797112332346407608795094140683351847754150510026408019983814378105006221547297096879513413721392233459007673113957267440522840995361327619635879536968570877095768467335323345763787098271168637830347724392597486233545928632571428621451840389786889827241656519493914540021931244471183418254977011890678008939066903152980806158521206741115578232408881040261455339401664633263454038676566912712657543536270964757887205332523349366490216638161340243868539450318156425246757638332789676224776718986985144551865643799512003237406591724523218149687456457759304716896676882930072583310077039343555197181966797002914808557556264158073318231102043384378913375913127379768826143892289113292670768193825252421995286092339366957308726083600146289319779956203678122558356950881519889708064090495704675883605344886263233869995210471846702564567217253420495754533664609677392556992615310901491295305316906001080586918268625956909102761057734943577453533179827657569187615417984450681079722630403771248157876209105584967304562806773062526287018320811099790170232414742282761701714440608868359425084456889871724310262147902057085793530713505129856327549179274716505061142901322751555331390270107282617662437647053842027642907776299341821826079044049923759565910792176723175020171929900010907581445939196969262586198611064253859464146318770181852668076559373956816061546144871307435166643907644566970830051902020171202476709076251883095817979688560365675712865096985982893464021766069311930554381029961533842851951640983958751983407574636495531078047570566186941447317159859268064525097459862629157544597355404833267448095415182535491711198746326424802785700361894267741841620168075148880112328719399657686221521319259329855511823521890713423212307053612831806953868277539008512146839685814032206894296744469638338417937888096180935755214901954363157114939967216582635377435910500586955851479162345021320784426609853643812303872475554744098005087628759030823979530688303311735618282115381715768980189017578375374302995444039998013641309939621802204815485196324306403091696558289414062236170664993749834364143281946341068674790460963071755465305547121374245947007429832182984811171860115337297599949701555432766736202549568860745421731041963513121431945418715621060083673572929860650684439415220319426373094568627252622515150020001894770022478149459919340399986930390003893992714920688539900991674431305676633602418408698123350099437797926487849480788771785809390256843561194591389767881670102505674062084256647473588210469063441127904417535605422611306056469858748528621224694349932932457865344909785114050461239435867774957711010391410146723041995119753245907833868275299944312141553979346577539084976932039581272044467037783952807757773526674237327038079193520988950166831248271349702971180717812656428373694967866488956115244834950893636198146969206902112015321324953931172664767485807106911878393956884033421875675487277650509046412315271115704855339595685809917414663520529780105867866566237176967919352322222261322628760605752726513124459282530263931371479143287420284803092006160804282243517098391782182324972209091454724915705157832431697715843012061317600876120270426055988497701310188961071635488567681473873296409570298248088523810091089546584594584212000188373287978195889699992222055520067955619581079676634551580724405015887263432791231381824919975315611189381695242880711784973416737577576304376116840925282403673612071258356653478054589549485028853344850155380365389332867357810942026079892245894071812708815991777221001071976657057641079261454176800163262985873757012816935457015879806202607638498736243106098105307648020794728582831914915999794499190515892325816296413463038369276544011309188786703203212185635128248270031944682651254689885197166087022648163108038702695849041458849846299515998138317066529006503029962723492577909776417540874696669116006738054217168706743016634872175896224429620902398362532257205047776024908198661032894886866067250939064982433112815759287122965379803696139841414169271586255848178777007031162755746822862335671582109359840578967411197867187106213942572607251514023627329460895204476010067073673480986609692911849678746035242944966460819069430281060445134345491110821924207408661921673738418162861994558367396990610275657038322942892561638100397994389220654862666794534658536717166652467195089421130983175666225947563755274508752481334456328325259917275256919586822051767157173158981020357696458447755754603239025716930738997328907005332277283119883702166083969272349286181039017423226307878860413266532316931759107404131084641393148384982705238541185431397200675814757773182118638166753829361295091264519299575907399125830954935301997366122343822904848301853094171546454255609334086767769671651511061338837327627111791742266851698773133944757490401654461167262726527862373500113226666691213044503020895284377246489529387212618527373451276298136835408585838405166065901039973217701699245198485839490814513762156140202728734002302259204392255088075577234059589508722152252934420462461830673382738652149414147978675392592537775337736247659687722016542980958920599841438977873560434816442067397421675199757866302529476419453812038396669589728497376947830903067721477917739737365152247434656064756873734999056779243205462901534321577001591038538565904956035644103722233936281276152114063954637136451115854103731544528242707453957169143271102451509479525894636671767535199646388789501727954855350421680550087750189260001057534048832542649922529363218238357085016749761089004896434275127837638866155682593287083402915359335961199726744146352109264255006477363989865345473879234531180605655985641574663675920461515819624061151771028628723802495720646390514973316182964236520607828351682693257733974418648216037135385921329037261147872632098041080502007285192350348713730111188992679554349906593723181197857406392366037690625826267031953924783735932610775089501117699484337599873438724454226728516135028243315594621028268073167064924343806774288047896614902759941465297007074128636267569883336801240763467176185825199927528348179813177123799082664511118811126081487067085847501808231842494986729331209094709375434911256314000650040638129459362787800014932858486778738988176498779074225064971139668054535676460335655938889000809747985703937328460696146409813346015032888852780640486529319357977118973336637254797848656288567485643326133815643565674928403190459726996732211554646061297577038135512097223239972248304758551774258620606062592690416988896597782500551776427776105629292873846209464916350846889733287179950564772336501196490982043907397598851704822118961614954889074296728638543237487781001224059637688517819005929798600579771216558729293139189769233897080995352293308457317275612059533091214897268532382881101886234088078151516026489745535662882430342426200102984623950769778926248730141672153957027763767971611344983159354995208565233793147871098177582553658993309219596435643474019069668256983707224817249906800661095609285851995467795532787457388366907347396222578356125322725101069709768719411742139803083600280814370103730680201095840044693287717348774273897649682244443479898122775110416750458211303762083178927595703543284194417618160778329392172720083797510214984428269791396166697998063919712340946056727088003055211317116527873285328068196192272339025390792162936357469357271608022465882184773637728697869601738103434630501106079062154614564656554701224723985013060342821047010615252171504465601616313861890791455987984568414215242626952704630420478312940234774689246628318846887662562645050335064513259971053010939813553625048743179597930752276898941221599746206643107843264114613403831483789467711335113508895799455433465418584955460303726487152970610521653910639328158600752645664288139425849832444746490014257081519957448694782556837675508385914720453557400290089274081406667305502369865113438619999602585561579040514333122032488900991378725762315842724335552995932186090047173901750633872396882890295457366513380861529703890725910202569084585212078440780872931192283233208406142726741774340368954345816456159750731853817501055795094245388371337900434478025895081232282105363538976193330610962007290276165056635927371097113288025343159374805621398452568260907407177610293067319375676001727069343215716624655247965306716008205487067262984307897794065694842175094143649988136875900180885956005278505415090423881723258019831340057497438573990540364387292343406981000894799628779986314703987405012526774925404804416482554830517229068585470960835816620921174047546980101629420349194889970128928798468695127313758966396922215872845300877827669962048604790444240936327244682544350164209820537136127118025555545416501072277676606094750584225373369106976835394286356389731692084072198038157174543517567428065358317508705104898327932661851227422620126478552546722945100304230615631363631246104709134213207205370143855397331809902237606625652464237366427081886592857974626272355669479715263204786236188882323998549016026766301619041283645212623461143062355522466292562336710620321906363792894307076337475528484955903538266797750292961643022216945859716685286008155787994743131120879984748391362223998333237999331265361670979309113370957610341068894161559323054947075258759831184443524365779989919862218368479403062286387960701149584424714356663904009141078887366423775683530286777616149697624031811684172725695585265087121747223460633303547730397230000561801851316134988134140142219717150231567567273451470019645816756276909120896243539685919774182581836476115202718584830398749536976557908595168696937871870699403702366794165052040026660344863613238229512046299264950071340945812640833065386700688152180425447666670735842431897459514641249550687849467394168758760862735146692262698380168817808938828429006686974097878701676719868731330985436721515270875012974329674346550543897969463010696694142972243483928241654026075990536198621132729554547999247638879499780871302624846711730608217135893474072405154713673391593937030161584404777168005377470150923929285596729648932096766815034535398029732842433661637455796300075087046351516783372441221376617085267760863017717847377828384511310614897125625542561494401306604226578927686125732341875033008165599697896788814737777032675339029536045862129329606130795446256156282561072157261363800347367687870249972626220708174598247269186966676257103662976396817288731157128466658529520324246757497178644357149813163064658537406264297139492857313366274327536332417084663480885275835053845390512920217336245901246573150814458855219714176457210565266937187366105438841100977317154980329398529469280277434132386414749202600989138078751687497282215160067142174447517778666622498457689322502659345884912202590600698636625145945731630744595079904127177061101975781412748302662456335818426021536726041377509735491910757671486468623069433706018619758456212831523567137077994401405421485352656935857628783531074882593737051103183142870836835987782927014595036899289039946211898253018876554246573131921921255927587483094082180210594254626244836122733236662293295741608975589981326429507761865061592146121909327512112182871723513728447954320249208447584413930032280808922947162485747084419913186009721140890359349800813042383554267777020117217554030915400436612342170733893416029779787447625228945878505036957189489586648641610277395636852232691723512463640206540414570861553450383541926835433738965064126739223403466430214195216493148522660555657733284305292320361250022773351580271169727020023798353494501349463118803990961174156525911409074071337478188913672331009770029510326249008240644501123999150798364179462748873677957162606440625506508926421293316558540105609867008323462373156041772643511809510925469686653423664498704988433746511801043885255842569867088978726030990894976032055782458747693017401149764102477817903292835908383228865924601176043018077351277292633229021469872665268591790346691171631188535671003655812700284308709913395989666808801399475567431442217295558895627648125180669316895975576948291710362719670463440346860188693623345596935864824648878276070825878197397887988205503366997522235559357875671082495558451980141690734016244569263487283798092591328449996336988977362738539441242945512659157124324066130373636969559446888070896896866367436885653714702435990503836882284606037636324897601868130230451701922183477601556705612394275891420974067864660372081300314708724003021710632697024314645795743293708424684800400980762082261376600730151244790027842626410895505679110091196248541044637619767232174241712532330110928562408933137492624220580242093118603088951973753378384625880680392359760851318273847925108216666034601836839499349656954828026049262324349905818429313395650393693762237746796262709265615222657812566233138000434785702099922950497766308674929279740502948779362424689138543198662736910277359534720325345837287531887758290072900969775791366033416361380197513674622792468708654704583342294405230537179295406951622965582261751609550074975942950119483716055889521495484998202268510712890963467751871117154756434780044212319912384268045267684421510113363897889487539479218590474560384768451592236402569686931683641308478156972207581413343788715069465398453437746450982953148777755357347504621022364681595657480528419987729067369545059043358983082531587137442066646313694019879529773499654387487950775584223027716957524096409071663702894990182519276728329202746711614074188309289986624474342868833998013109234708540206845501313265842046090785477844620495060556306104624645543144749065640139585463308855194476740330891665546254319802142176615648839220751586390885837366664205409145958531582128155702589404512380805570393202693646343714957496829491863275854037742804914281877510895838171224496538107285033298391289792198758643437041634875680155393274343102544280257213081326619111536833782503844778530503017883226618288073110213632518719919065254265367041404565420787099740150720537461567999001804919966728638308920123692809749663524360455502521266478489987856150123619492134699587059443802993432097081651831800757481457580146956521656469064911689637838730092027938087078394952418228123265801738841579093258422039289962674939668606713075912229514531109394375830903085420217786888110528740326358253975188623557752598215900594199023038122013107172665362195456699868113284557775048952396215483357941751094228763742618247099841069495745765827847260554018589107166275508636868195071348259408047126182295095800032396029661405791729006573250910699404809196444188626698544275496486715593844223537655530170293872910200161258357259215340257692469217866667582155519638057643166569190592757685535643932204430625451404012211529543219420026490163130708296041119458715216339609737109298362331152980459930475568144741724315422160656608677007079092840227462493121701292948021649067318317972795179112301716721818116799573143277800715766538228041111904916469556552194472905085650090420243942554753797639511248263607988069557666645858722704428706367220337556541949861084415018761708358255301968004245134135807140514990055324347881721985019232549875853669647713530228004461008102887906438908949950557841171639520333769536737664837774042537417305842776270754874268264804397099594138881293954748876345875895301269188704910758800007353150845998175678507519367991774485669473795277891408596976011013037800496471360257246107457073936053904951183283922121685760736859821365498494535040382031206164151014427591606032875814368376252142815959341406248496153357389443087880154678462458400472319749917178655917857482736294383874284779717817657685204219002473679192354407485964444660995530107885470181648931291125942304033519243498619987996195490489134371664237008511502379513348953443954520548226031535572083353194230094774012754380040369199552367187332281337407909319149487396614037049672146191211001737533632146905591673382029418954405743405675685089156949211059158728413053586560835895781336949362042443983113235171818569407330027992830174332950645211669775502337316642819423760187560074488468832494109933754742775271367072822854015659550354271695829963079045669365523822209252998140567384628546646613464162537138479657579037052925303748434119488873423727401587911048664793849027755401873365980829870170171529526325974837312336294303901358658268702813303897576372918182591954015580577974008118093792474727924516764974572724254185899399357172216990021240724617667213590741678481489217791779320817790443281232080579886251678420502312920960867901260498997920006149912955940838292632843567003974925009525108330444917423426118077335868279423225178941641946089146808505365860776800588215992771368583668518247575238789318204986496775827329591226133582422923177978700367138535189487023130816277893453236658282474625222275471826541318525356035680128984239859301252424754778392441921660304450677080571452443696872342694507345459463632494746481549755720563793567948672336011305438969893671649337556700481670679397341825286398153760241458704773294951403857847243990103883072685767344653603011119376738215379819720272109320544687258422294944876566853904395053532633906948118910879906695327413793409968858887727745128123105996736036383245808332333760670167011032566956602924149485402826989202158059535453344815407652628151863940579148347087745950195368039063341578712912551187290557691819605045111729978242953254740862275387182139945208658553170292930071865456798401605578095354899709767880659443046765962650383473693546768930376701253704453781400403070650778008084566277260150605546663211155039416545746841428715372970768947765742906114980327029958022161091676223690790797191191205737178868672391347104982445800395376406890764805712377074338872564493363169703818528432758123574451914996367590075349781953009033521859718973814724228379283310047711318225898390154720765782566525707015726788405800256627921928101168437685930377578965129160837583096998813001382875389707864876376168632655161993858100998785735433360145361921995748303974375325027179131383283250627628849286690842822235669001367012698855173891239100187157005983563565510875086560399681668795084107142341230173794809204243311385845519606380871399936052788221733102185752045115745816579993812240566751033653731081168603733371888143276099750208068953142013737995698377603966674449682880814046657744916987206180017355770511653920552529899226259791607551452373601114876345272726370667048204759837130124471279549596873626146338488630810850176608310934717848889498270645475965672384538709626417221564085715692581733755823836045122764449089721784704850172473638687336903099378938397515179981976466680123675461527928577825671107884387179625520152369390393598534458635469820921289962678265217406404420837596712084239852543185103589866065622927268527219039165368311942172931761273434151876892924725526727495504425562378357647493196943223691786454217230629227400578907317469728556143138797170066982239832272398609787121674473965377049598874668452141141944498657206342749573272406222535268969783860751236675365624141694511178493460146121748972139042374149846511032350801935883851091300610718422381910431889007726015617903726037346717778490937815315242531159882766758840520090953809103303568187139275345351726708063782431453799817496570808159788435392971315913048364388595146328457974511180542293018253076228601842707853416074200355794648525551754509193749802354408056040344387545311499403242818546999015408326161649854076161309723280981341961458233994780007109749824367450595605751158321648691972256589424301423172355015292940274084846007767897934202898570622327208671118250807131783611387650303112352522012199428383246710212622574780442349155709392214074416002066629369425926796500015269239028634952032288556458980581688189656355330722560778808725113114948717598060176139927865446085809742262634595443069133635866300492880109631067178158144643631890768165105821707746186482236124344793178928911708946983984049140996803700185770185485759209712661712027313451387989491177122235767241839774502187284198664313315286408708910253752204059564728220253945231914265978362490661496321107693109479477880607829576262231453459982861619473041098288523303460715958356801783458210064259690576791373725495730849698088600532950299962974766017220324683883564572341245712452384560722458010756623650418835038571259331113666524446912617647980472506583803482182927974077143801097305673908516826676944094163481874962868531233003562987529174566975514663000971586718704025867173151225950190374605776727496948717552207042158193421783577963858684341325259220572053546131821983532661358725185225162822735827716381797257810457152065443264680752638035382476264914160464310195009953697115442413607677745474968853255406280559786295252390515533192289276013052589676516446888883993920174918645282816484072055976488118288237105733232488963615885354474260780724238185365401575836198530162646979483078144675258020141303618524991627315431755978467306021729797852470111514426779829083297391468117445271066510301397508510739398544986083289173341816044674647906939986879036398498764452112842146089270692204531856708819491653209187999182204220767623445194411543794022427962070909114204185484469551953446676849534839220108596163796061498853276349880298969333178147425709479252451973310836316918094418161620834331668193630468983408209400842929130777625706311826429387586170783581999428399270167059419557436151537572479827762951269003790350090215547149394656286356489609513708941109830575880725016183751764681961626111069465237506624932857279893948185494992081497110719470234082977549350057050001790516727951895141687985519936602970346078592479714496341698059067023137172633896253171363676928677303659811759282736679507841927458595219432162433311201084051303620197246447646545720722127965043576704494939076045751859394931579379521824968608329961815527864628976001387508691065739890025333156340166976230569617092883757526216373172256815781279010137771477890756546806143983747107376599519871126470700291407712143278087160376956296569038076997928556516640492225467056258785791895371468579652622441094972856320963351992105078933970544532509016678726910143308144305793728833522206055078632123484738486821174088166861460366755390982997722966943016381191178060452930304674702356347070602302458300287294908047637240075064958091745499480364599301448796820669453198264199853908669998172519122671694638118826324024525225048171210640569304452530883879505487517146908540207806410740325165224261731790924744230783093671257355798154072709901467676240032795739152085486231064890960254086140047765839545043572132800025918954976364341457866246526156353871423624193505645137566769024933341473252127735370376864629415498452471321980312544718006885790274272695149520851231417801123681675431751999515887100883328717128125561517089844892442182021591290114583538091541021479575113550272254135077913207922749800693241840899631108906555621832953193840211367836343091355161246836412896195856301567950034223683134376161117911234380551214386841178054532411035863401717999095435335646098933806808564587341125377936992880478367790663121973323685613409336631372843266083900041417797518899059934943507264743694901342162504339432617682431512180863879468547058768651238121315738641011448655048812523924757387339188548250818018936102095239031407106454440654587805122603380482269169227656520168132745982303889304217941089980781907880087478678581612517895858072261914422533519281039693127385578234752227955700478389262700742746930596829045400019516410851703691097740656752975923223163583859290361941594113687498207100398535996891462868055715521931838665221232494659337252738795447346716698529763799271988891431440798216614292907780518124924961039089510543753909231778278417741589288181642817417477014720176354061523036275549160023182472323808905154795181888252714979404008273375780750515836580190039860828966226804246722315874421605467449219998252716293689774138177260416051033868046863440077830378293991059097543709508550507420081159791621703159848975093120102501326958754338681458945025379489989838522988935058230785542817531832797349676513151702383205017364516847580958337745634581344344447994607846289977759962320899744056684730778016782065070693706751971162745730159762458766309356580419475489963378374536546083765005430581353214397863662226829413019883747570757112802957130812425027808642233701288443960504390205597137385791294680745917089262937888417972817608274610853926502716630417896022792647844782352883716820748752205103807164534215906141665491564302503155305317435053536808376689675606571339813215108312444308555415003496422826555568236228350470484301652330773668099941126244329306416906722334206974666922500635935192373456284317424986166724867735681821753650128502131475077834539839303702705782068576484070340193021485585728650654280548037345241530943870867180739923606943330461849338896802876396153788035592459761896885786073052223030234209711207895790336810250124735042888065850961964053656049492200819075035186960095665290299560071767302694587402562113613899197986300670540671705601148997988955058788545672982086124036435009659370281544384186252354558390476874482909407403117313177475657742477843260132277362381936721110031775762681451836326058995662995960436763019552329994123342879746419692201162531945539996905544640378121634210925673815059139801721521557713509979802093530925479487627810830706887112383529138956083516456011015960742847579416039173174366003593843164521000166435564298618739044839080560437258229788478575245832354426072260784262018773282783292240087984124351811342596783312154843686704492495804015944300119803507413046313946604087885516542115718087153701344243605062893616797160706368449016546343203321297518214618485351934076967203031591117060038345688480011244853098118882245326888966765443791563997974553272427778424679420077752218857730260151548915570041625011205704878945781205109269080858059259387685196475932825648840096567765774092618019566224488967475303307952927959355844693673012435171252370535159221227617483926311893083519447206549007325575683392562322417083747006632166888697116823004311570811809537146945468529321879105640587317381977054549546357840127904104757648647178143639824945771934512564435200404479530000526452049762546752105117748446157475372555063213773064648703263548531048676894842578789977521809084480937769547044236925610447136579827609971993854733072149913328833685397985123610189936001330582454948308226278524912260789382354050887993423479174086601475178017433155980918622192046953734450657982625874521292695399237503476081941225467534085471400699502052435474443108062422090918366467478886773057869013231862878849339816986333812739381692976994109291122804570243881403035976292720614336948504565724305294630551085765369969466235301123116329739818934213377602354436075511358000530730300158745694871013717497025157909244936210994745143728039875762642256195111661096342509421101156221593811332976157784688117857248760461005160998488197220177564834151979020294834347958087463313166883100760263976246798243703766628676985571104052369707566941818490092676747466419040583080128847376357595805376096254792853737348214636317344443136558510992942018186488452812291682945100362937196184772936391599753940247313189391297064671493240220051661443621311150336402879771819341753565234360225315979533173623019591780488943284807249677601661701062949601442537336173223563611115060970798329887689745041095345813589854092394749721452091805396725382600904475807021208741848602524385631107498250022414322426603101271431205706621590349226591213398250258495971358743825264839355271494073612855150951450590639164533587914476376998672623887645431301507368030902588979316878989511643794459783605192918273124906228958440992541546326069536841662771023372685433489056306632467567630635532842726462319343909594011059113225354775733414238676833199696006283370455502277935781070242860461411459450296484448583078392535099783879902320408219502080334491393470077607067897441464266902247770939147292801468100838526871025452270518086569386315849642288040694781112260526506597310649743379562401389340328223032185308815389387815324799134248630082718725467288460316678673988707774211172641364118233433431166548557295970990177666773322373239797203093093319909131220307197241259793406492906661949379108867067689198052835791144510233624180564644524771308422733547853070863198129641959448739982805462603805782710227170479446427637983160204664984344453876768894452302709098861582804754168018671533685360534907828110537673623085674021586541306394485337762572981871962959532914685830266391676506503330060247291960857748665755612538265195908830504117386763431963963295860607882490140060378871831417752813052541090502781247206243395420977281712786910475904351268602075441843754885653743024544884358527590342981131725794942760160334033715429923151404177361027503168882667446744544526616388218939228880019149275836875317760651216019986917559991915917840006212838089853401372997235203832055984853815650591839212398938719415585628505363667809702608423456407006860067589967770891128260971272953310032286209615328583192115193052878035199929027060108504912433561808330597912034807643186618675747270574915433818918517193250397156026434510102140150945605073643518809233578871337556976107059988730575136956478171386944568958773236192662358056227661236854015293459633694643383273149954066147821534527763750611989871363409916652075182860372762989605075470629081766822323293948680714345489303037737182861861306786656591198773886564761996601865414766187973499990223711064373651030668930861555401622838512552208680481103336456074575508928417031401772203384330314609332434217611992544599436080403356370546373874084146516780643724435560745854850015073050153258670770506874685472564984173782844744987275102690490019510454815738402659699526216392445524451755500229448545281544349581556874822963563079713321053061188281125902817933869352696078427751863273213576405205196770563344326854099626449059421752136257454255798684366049660990396195195027738726224629905156424496111773867510938924070024375963407220924837060752707006169707517093001921115334356963646921259723363035136264094232897950797539085452378435858133514079988862118836238424710334316702177553706446693115659770681046583528051993531713384651866139150565855737492011892462663529680481620455168283343942544690327844371258316236609188626571555020607559542353903810679158264400629338874118750792804374462020849992013480078791767304559802396295570080276032362263143666806270094040601319767435071813601297323942307635226356127752295309992826558481193432092526626813876166429391271743778428219001412189192283591046563504677907820316641080460463159758559377314103795441646498216408449620969829975146162857045665408662248867288722110657335654922293914181621537293435707412028468964696831003661482353045707786220375378274956757021545024786057145787833358579596148843882389222687350800275234804636442518436877308472662778985350096789273504376611819639506790163313033343938925710771687223625059390045832704679463772321763632636884303571441909243445371512559537761365889195488471890685365278772515069192235199498993388080743999790497266026488226903992398687934324511591628830422813404002160188011069501813150517079288767674335140440568869273994090589685534937920523121824552689136563968302669614853864632278359158486876311278128620941936167956476551680718314166114773284498412286478537323227119309681437328996258888350128901219041964020385740909245284939988858937053792833692837670282475637484433204409281095550733931952998868249583209149933928104432462018773722515145642949745526690372229147514691779407710592913958845467255363584408675983383870769157339318312796702522201074051613149809309566663915480336473279893373593267833989371490985642332359895209611702404784533648784123583358158219557040544676711738025912566415740449960293225524591509157664825147250409806948486557200588576889533900894022176842219328914788952270452212404857763710867445127382894370212174898639481429214099696529704549455035035966031584259906982633175225628647549404009087537146586342372641571635747432661747915042630314083566561959921918536186962827915862352269055736972064326815212702521775766301425838340889028672506768867411488713971607446268627391725865406627344333316801726627410483931267059105175369141901698412902465771487778804322648968764271330001437734353320846805112449025973215212146693319552013986143420058072784308717599988802363313999363077436055805640238999922361063961930754757321979368706635237110917473849512280126926791606475224870179884994636509920760157724072580802086348428174815603352126644193478230902913417525027636155522927832419344690410942487001122503477685667480134349421944314782472281862529996298256144960848519249944045363723361655791915461831216396943526924252872626003249909758635266626729163618138881909765970285131013731461200723252085364768301471202812144496718233122150205705720736449495868503143037268768310981679880268222224308067288441715796127373473686025021252086886375633901310468111244401628830852017021419400446833335079230138147773222402923623364421690552580349424846451955793428333982992074045207133404479180427654526075737091182984873085055588193656855986936569336925095028489829847930220060172264314526959527616829176258583904274019325103415490177881094429748606013476066362355995617344436396349404606027639798506882445607178780510252415177983440539122465444029113370760424049813162159977221268061651374960065321711038236039558315393932491419500385032539662599040682848245274383554360106143556622117972262224914331694373141532622248913733269194509628831120295853429551537531031327570083964760689453027945045818724747305197431751847691969353561329823690214776016299835565012763105293299010662845905568542032036785252182232798640816125760273622472014856406199638511519121335240155630697441654768375126364529190458276733161857028988087680621052596402049275179642531132577872954573027985067938229754561790522599458426015594734246133090766630428331130683067765300940318619973143816205375132972784851647119301342697455489004553567878769507660481916456902453816848892624110682543969968224523893087977234785829037150790612131071683967646968407255427680432966885963339097000222371609360817471793482973795394985966596727817328615463937780141193361465721663920057118665919955969496336648911371675294074404618483374223328478690628208680254410771728230249668611354500913861631521772839644715531933527812523303171252325797796138814903122899855837322244701377203948657602771740178907639168122161695318298196348817229923254154909054147078191841019652496334993049352570256568514075278235212453046756424287872842435751976401959388869604151168795206218407747045048700968192485208503132552153616093844942589720031170506213911612406931996273338013009303464317458193018071414970979139457062681986100045297242899434482444601732122697581908059297339430892633749754485760239977173027683800798527994998685552441105324717121319290761927364349850706818768669097508392300905067518377886100046843905774838690852443570083927412856484329764587734721615441715876170209872423698267525888716539122301498221763934099340221405494788453463510697720263316134494394668121592891074707917096167564071020648051705203592032816539833673844029732319448600389646243064341693035688550224053703295139466164327917791315831113423570898033709817115450154920388129092433111660452201919186531532117450498957616722862855257524922277297436249097778172694784015763583080288686899251293693811734347650125391868164201080988509924228687174130319275203042344788426699685844085406417031805123466853585376837036444175180558497313818839130307434018633856990203606350212715426630643209714227778922864305177085673850602963094733884507912768719369975380365565289620062049058456253840678621172965302896465633152018414209361649482433671838251826382988446082640634206214652177545751201783897456844880376198237119854438477735866113043270444994544669118899493820487563706070325113119678931889879679290610859609390083516316416367554106173906985231812585389664717104268506741197759114368524134063834700004203425445870786884480115137469981612253738707703211842636943032740196182542824902760910609711819373932663918355951829838074982738337609047422568327119702226069638529806893785403991775362381160336757251383616667690615420158674236656677783328805372539513847733293075720491106912314846966759948065914844487582503008659468940745460838069819069849238875276357217261413997570245952999504753983597467264612367705074276395821400355870178308948478365232017169869298007024617219798427830091047416154990104766950473838240168066415580622438835656064804950621140841204089673156516608693164386885233346197641515035421371137071738973046540330393260762345069316075086295339997911670648149396299406105183442231145784635945938656996475646801655622293367446492647996953103772507421890742646593960589111081009056270846954450761088123803811726456362668712013579730011912178244513447731785934800432264763197179715182537333707900977796653859780538491982695213303919779843946520153517638292763896924669061738507653356717375943300611304393476388435369325128132288249411199758000371779692627586732888385304410733604750689760727355845863183187414007319846326618507459300839303538663912119548925407185528122890220302578114656683419164781299676513036816187685243859094876296476240877007244567426021093383307449989121912783977538375053807773976280401771083760050206944717702949491491050010994587751708744727905536284228126643793260675486942119257421566263895590016264981407269129519923973289683941586419690722805517989544055559323694169766587634712613921903727644891763473287169054342539491364810011899083311304928277638593697194543207367233011240919360526414305333119146037990175105374277113945717937295867527124490255630676097799715234546495672518859367217844564517403951565150550849171907526962126666680769627361038356910841944152884616946133539312720007859739957027586616585621351809027296213839589666988465847505310177219554361363055971348820689431452404878879486656422293344987347643253184234473141772220376887174227903949213749372352920739829794356800715863692498694340433501580222317825594882677104075467308804435316072027514315941944582405942589635005025981329897916386409979221679041950925874585909830540180197051829605063037082891150559764376469301279801529470443654120680645833667604337154490084986845613084617633158199768790757301762034896696875145499976434437142510017973011262541334791468789281406477442772124594056726185145392530273731860414304004999065944026850125066768237900183302731173612703126368295376816766347720778063874559835226560084385392487694982287019800384838933722047766235747884897295902586365264646557854514815520996484616693874292728241837109952125908122873147785346529872976424636106271901059217885042274692146721146561670986730393397178966140232656649236313855073474944925300710214162417409544609835367595752119705515354806055194049003207614661729841369098634887477894153593431137793079442128708356934590349671281207985783410035022735118420467730655148670515560020402387882771813155873413063056684613245599820959144127368538192874788937699231152443683075614469666997460954742742201610685271392797482098866813160950760491523733608478365536667358499837946072645970269836897858087969929646671869427539614675903214544980455727438964681399296508187337377234765391180663976649486514859434570620032173783886600924096703275142654778682504189094469096141593029251000225425448957367164543467392743112933206558568928691539817875374817188156507822045480116748332224802048723554945460686124049872283242045979326162127652540832889171388950193544657553354382367820697118554252090916387791168697259205237304422398187931993976420601606769911605373857640807077431071879126068644205710700137607950373904877023784820641134211187127657793041512262314118713291506222430815308528434400518952839512029215441525950974775655308598641711943843806644837545301372425506493519232641562344989903543608370747596841487089120400862189994002740669936082808026414145848743221125292258777782394556901661314907585634545141498520179262445328341463175323266488898394129728370369226585849238969555333795139858461942717794089211837962181290038606837877649295120654731781899815328045294924731998545411442290083830794625631632674706522198772772878277176100224629227053631234697488629111531565587596446276444096459028428373276718103300934230696726570773001451411271433258643072463254415973784634484305028972652364803665338924663919620452622124031590799313330927842229744026971788165299865941768058639481998148824812533671119670113422312811803307246411579599328030946031839747654805711919573620497746119942733066425143928520907783535542804220643316688689600665042851528303998716786893161530787011073024498093392982316977694050231556499728250559169511049206328832241316565865280509595186627427320446751707141939289283983101653854020732479035678985062802934271343109435017331396945185188951729655270400339488453557894961799018202100884946108687003101244220407313336439499831217835203483354685630692646667170410315608081796603283388822637860812205812402721695255621110973155995784384676270510102347000613795384070615327844321533705834361176592573848293872306241706794741312431978244299338493796806694601647979557483215320723088771058616614196960431849225996325548866915758238819719687563223320668121314627968346721635434562028361548513277092571504317275650744723689982125414615874327464256049484282859517205121766549610348824282965008214145170822637501166595879433852329370641632125885570184880206107712826668867775793955560335904010059460888362079446438489551220985163238088449460028246535478820469971095547501746410979178757412678597008720703285111229216409480114663432924581865873284625292689687022575385922667111069011756761804411993077717030468774726558063791403331376240079645520178365419133342839077479588028410910176237858207488245155346959547840195397158428048912119154282560647934116626605406020580840323896323510154930941862343233232813755552503053057876221872311732709868014642671966662680412468698109151919365716548020279833665358980133264446530327811503351124184684939263912277563957377533178645661388498079186676113635286604045625293043683985710405906997660219345255580098874518013323860261226455612197548322634990543371109108271965194584777589630357342463019436244394173790721006854535505018515741790235909438251941949624805116262803734357846827086149951497726317588101513315698999855527374421565606756009093689316262289559665151010740054268187483089497218980120206382121308235638034095936159971747555132912256891118426019736603029424177752410540264574867760664518749958833510932646824685713746487550204193898605348253029480461467746994070128191257173208477475833314545732591855869275381249081788371462457686057325655307591575536468097484009602211932231191451613260821391572797270282175460504554289450270186177659361306467521824895832691766927838955231086083587487239263247436451699151214540769344718363837227013331460124883268836853415269769670403276212213824431893388687183358316819006784939399214193883880108207112687623505193895022538437599486960433898790302314785394166839808211064819650667134559234761172357565049832632666224518429200465263554977824710387559245056264269214520674170699995898505514943989704467995833074862817803044015193795619003128218250257476144839947667332856683027276655083683436170686951750335081492747225726983508323212470815055131445210686975399661081520986114766965462142231876124451863486911976684438529356421774984994195411474680357676660702862465001904464086990951469410390003984169430501872024210754313567908209515176462330462475311923015736009962977215562109614045409632809948725261506515840410905553353940644053073971825598112102246828243723240337094059229060051994945696290351269255173628604989082649241707765468304786004055810080366293113039641765368478288353469909301695989749561200511729802512138567664251709400643403278967215957457028242263017761003784156208427883464419175755153892909080642838938508928198394246261733018655490475573574178846489685804411169706218874533870257330800627692337160857692664654291636229691035760498934268985010543198678608918749099293293228444998414512652437920329102845735614500021690718460741624364760968998065240312588226543625785890182760124735360221617234449065692951787859802592819240459795380447123776422705931409003558065060290499561529268535424231762607312266532107570111110174683756873647262193492242680466151937585557221018446367442523262613563646757297870362574249342587871382756630645588002869994935415812293788566010083451767780613765309938902793116858563799569028930006639565310417122794980355807959619607736412984508455714695098159989519346328722785763290609190212348840066565437417927959494571869613109048183214390800858111265882320032987190004634144232781649455011561501301621337921159591516811389946292364853196379535689994510263037408339106135287179727365393506199062347575904613316745859861892971398974175010572092501752105060121213060230455437424024986888753876568246920542597163354328730615231823331184735281565130738581434671094154669646993472115627422622103497294962774687890264322680018328006754893273546980683322722561213792044320417808600296026881885870405498281301126103288346817070335244254907950147571778369696331495353500443639218163555852066628172881937752445401888407794645191460270664633139424584805209812931841266490429307919056310436261622075204811770819626080044173474502612927690339655782268285256772002469413084325147241699513271353852465373071699915432046141746347510075511918068016946458532352921794226405628428786620361461865283324900491993506555272564659130145578431148441119995056650636963143807567450461589731528527325868373257805693503682614622628500523255080734181515118841986901459363575592298447927182649536674175445710259343266856463080313097083801604369116741466780006177675259347821849799011199974240416615534397348340712203340824892206958508828500810148206542467492793601082117796786916824444480551631008694084693001532122436630402149058878986271808875652207914927782360073113873736898165747425028440612461975887663127038390019480419832702029918511837377232744200787034746200325607737734920342360024268919671677267241874872720868378102045604550516452783736781693265099671384863432900414212124324313867511311303885453122116480622147979703023086152308395628867522984883313535233691708546127338559020866752520375771415540976025651769089881666994435101525732564395278045602299824162722075187743692848691772248220393668997373472594604212625852889924855718384267400252339954083792883883514193390897334572564301645699716693985990331414113809958708893549302477632987343986081632265487723005499966671256991135945136842161354294516515137069497197862817614416417900688153745144492471777483677332004159947290565490252946472358327926539505426363993763976120075472001361361792603276225290415309041684671298097282624637072753461674748111963890630330348315565000393760262115648365179354460141956401249082030076497803886723145038466923927129815532351362725810772380523842872845477697741972105980392432001443968252259540133049649093138568153149569343554745189373301048165923895321778526932962310648913563094711479974493907571912153246902473090022787462859608940582058791752301755499392086863166132727102973375485909721397902978648840515566205591833650051907862944382868169919363506900024615755307290330071159027692623540721190091821951712419944149330396441989377276696463317956714001616932498219269095202179212650860480887607896710865476958815595238208643737005008078645120813705730604491571569755420245016344258031151207996439247456309702434694642366231247192931832774513083097349822735614781218078603822383277964274041402973165863454346376995196444387438700214981259292325017377796205228206134316083926029634116202087518675943527699390314361765472807905630720746145461398805265238152009242056365651726968249663360051564306900875540164006376269645341072387260539368356074105573720569248936923334227403222378798889209046400235336395720411782614998375323662226535790213781313215469693980569198921724187080418334964255757093306795982603745835754117939846693570027900651170163974804244981424280323422958441450083986999264198457793167861151058122232995533002760386748221660414916893937020951665342769509267221732757913075317558557566203355186015911118977936741387795364505098980677965729607002501814374008672440375906786792821655532122857925435672904353246863329121361179563699257707665558585754239586215271324884660499807591481976171668438564865644576479367335531284150246445533447653772065303465255214369192507172993036794960823537203724561934226778884582231398095209508427801012862682373421657190877316408455126545460356153379099404294612670548676546708519394070246897874361631818825601664094881331813893026727613860737924944586915782245608268235713719825427340809520710198837454996500219204819221058739815337526743615947785805905232503212941039105487935899853474956534310418063775210301193648990087231951076057134031748600398334570250399720173664071986054316665538528325389834686806919142446653204659924027612499296439343484422560257250185214348610901466328555004813564641804812378075816847498080532003593378373244274525724312858568341080067817230131923374915613461569495397108061413779897685365183091526611852715038198839321388470697459668387196441143499418610774815384247563038204791232207971878025647650508533237820011485223100532944557374781037765835997688335667025050361351100409077327918074247040777672293491768211756299845387889522793180877678351016284495176231067605716337921666771290609397791686048688400506066790069069969365638909398521663054497173709021744980578027018881977821467284235976438862098023529243032146998118853133217858484251805772184401407900338990782745653701234607147952234303035086639967103543453856108358433490600768772966777423555918129225201338224357513595760056079184532168796644237259341058659468096690328895560598315204675263037224720837996185651929075308309042002512462969018397328620414518523533849410252113480150497500172218115488527143033320540523451597750893774551996363555500725561009130380281887780879433384189321885395852159401821602674735941030514033081661036535012079168924776879528139157030477366594799061855876077928542024515389653228482593009750958499049931131371598293396301870673274242585836443960255721052857198182965098403669334972597576092262347571954514848766566151936024546774910903670892698930852737470587633553418205338426919746682225189964338769081385471395245664990021639518708311724624472926011952180545181434489621239702269460820728252867007117021353206937135788447052815554923197981650547339300564330058763499022398140670973520090537597905714509867866223751921862021948570297896647930596484294945665470633205754104250006123128840720874030924760649445657963821410743180324614610283382583314437852857503282935903354230812906649386587231511973861565927861448627993105052512312950178775787328737820523473241266937124676742689788691726936744670361578348322123340123020740295342022252960540709726671312769727933486960123651747026252193915298757819774149557491127074935436989137790637237353710855798775514330493285083351090993500314033546355210182048754499781079863306427314160921329030692182459993252230679880593582922167846050315614037681176762339674421840963136773267676495666492104666847023634086876337244638578297395612901617863455754915566137432592475013637352756085949371644021946602226761582891040321702434392097494769686975794646485634093128278841861837218517280916087533076692416923727377881830328311729171518859993787774344839974906169474063786728721035503582811896023527749891685856830089565137030791225006394185502515173745792200347175083530304780843714852641177887929632799929957807024088764626169961710868728450650006061876672810528913932433766186590265887593802206165441053498077046279139104175553867120525289357860370679398795308280494533336061960666817714731062031712942976447398294323184963285588426687560635420191624475459367111642704572735785046212102817365003902937450599237464754289023860850243974128013704792104752251777058726554698107827185202221983296507819261268467406084984410900164175198879440630147424227740916046831232406816694772453362419035555015885805963451853485175119502048736057580210969287949221533036963105597357067552367955483917064764480472565859942742086777591938547035747770261103796710837789501229033334544335777077422205975913960461367795828118889141075082919038062514657317723618540797742566145692748356551860414324479701622179459871892063301120158505683591826450682655541451722600233018087886591064667564434785643705866814611040630261595315875872151877836109029857151028684744293257756190212859121144428479956779625823116994190680377724972516414126703502701077268276271449892783474359854487285702786119690300629030142268450120536240976266700616023996065704871480838778528135110527686719196786458661271068531934123920947111891496734313466480550844184632959422915945443114951255329913738172254766634392210506962638594358799387353031120545409587078247076282897405258139930911717804809306483457928805344231924588147450512446851524007712142369726083413387239675563998174109235674932345481364065917666755381132988472382462765162025247360027646911075010906641275200959091230996679112187648638324139726062515425604208309981912870213231563892241583901748363180521597414768549643866332277036891694063357285685073580357712587997954190175894502008264365007200283639148577321086854013711543256982244797054279450232805006808390475310113305205052630533563178774729302090866276671055041924254689218929372539680125003186029326775126176626030355463348925703003504877002706008222754761398370437851029921479153666086577467345766076906001484318191058412477256777723072844681979766629164040219366421499228790058374982701869594019275271081728354581482865732356180771731006255422462912577281331804201403953734022987939064846553722446756534836503234858011351969274296680505610985496616137019182297950499793222743735506385186401375681935703816706183740560302389252646067566281727052490730814503982421985607329334614920025295486653989374507577122756126040004943784185743864486189955120888681625009035934093800638438871286811156466645479804443829686605772251722432346739017217445949557096686128042965997989590481123704785054623174988409400561198835735154913942334278387696951845422340467158251364943874879258045433053365928960526122221828931149335691797777059851953735963470042973087520582423774151548774290382492888606142795850738223314593782725517780306883838280970990532530277636219207267289537297897179654467179644137253010538433461982897484437594414277501130358480710366581357247024787390268564715936960884754294953698120824260582476993768386651726967806352752062524585652779301491510625090551506933332474619890754163304808075041660726650157010701449128380253138895156974010086431129266888813812017504091712570783817625017532050775767014298152945018701409702542791132061817614960304017882166486614438647193991951490297450940221594028159981854758532765336793579493317229001143200219799343590225065373924206790242967768059802585987049082821804500189624117549269190691098196116398521431120451328280507046736154365633892723101301123911375431763974773889136401530223579162609102695602161403673161902637010951046453644114331338439614276005093205761722369690052489373281506471274310783260730665439996590580570312294419097030288360375522752887256390090533802835040884077361434580675414720146363780942464795277050090847078162041570417428689046248931337425497156031177019677208396489094218592026220658538294725819522286529268823092598638575825119449935692953542792719420363034504896649666263666835769968285358744870674738569674697740028886958204891392697227654158999099301070824684897394325299022399699151569731492842700994463311403421374110641218482978326433169294438464446384442070274511609344807904689072288159808093579331911710492462696123081712828337858002927414858859736586672489163968443060329802321561081444692897507337338535738192058744147356193292233169981296755138947419640406226564526381635541398724805513595460668096800272865366787097822450756134340860284381984768178273136035644331643565167288678965113455348874767910663664190734030341567091610211492639623863075859836224983031789848396684845246865894493104437246927844172386477920008221041789190507653551318270574295679620186069887140655902141490235359357772481288066739312505124642142302509277959767829182959374188423742348079427688632035073577733141229325558656191811629269323704078336722784795748629971192349392053327658135183677870211959438382910735052005455009636520171812602177405543963161036127609553795570868293628066780848272083345051315046616154547272917936451400836422354159250718500925665781344721026471237820509603267763743609372839263734649123441549314587311859072159589413333170053690457372158324654170431200173685138164393077206100133237120423897914711464751294472560035182923079154581492989993728786776123170766245207252500465013625714343562542837966232564325757968372947804554377784471302248164143993760430678928953095853091343165064722023571232355778601013237634045028594200903625798604652383671027697683779536441279040705545609211966293196753544728553551404840072606009412097812715010949955563937996177541333127533162851111053727472036931073192375126182642500406111682518585809575312897503894417116336262507035974870105612364543134829202638577129630408774901044788937003719347091529531114495408131671223074367772337230957055684686527448554401769665776047542077853201344269524176537565652478868982632465053659855871711411898661785399987077625001298602085159034820653025675673404084704838513771991569368719661008044353587582114729071963738522260419105274780972224647449219220920283609440139831468571553975164695004644589118267328974870831368806561398488933194556179710243638721920906981632598725098636831701303208002713754943469061608650945100120279508911155992110802149093808123968013596539026468103511269743148609493599605975822816826372896741585944526474986667840243357702502389651633904070199943541833339677578568518808963801882805589587714300854586060551908783780596484412704083652888191969981691355526667799394815567868223059405503592144185060387413502140886297483186510773577386823781889973756869828688513527006025247140512835292759126048337427806208789924613371822663885356961689139519052156242722191248930126142441475883939252799427091214491696799311020105642579157388151317045458846811325399597668848831727124190372253651313938953855074746212748430513386731468258577781933473516166570566894441220662841965003986985053065315591239800532805953549184959984643553886850514423145753132464656359272605580275498786961228693343031318582262723827733617414341690732510407755086696424459849971188272917271676430238676103114981527197109206076335995716154057160958048136056756418118459168297213234788010349162564770551132323768451356005327697994974863439932872867244266950510200901583572948584838771831060494527796978765003944263786482777484372977991441049553071120287746835935464009875565608216119954872644625438387811753577001237548107119120151229307500964482954613249398584035242529667023113247335840636164433006386948248684936885609606484911395477102708679722169859392157600790903291320850805612931482728601689632877076859534423993921186825402870039584984479309659103639762463616989823299353262812281194953509543622922298636791055193884852893974673687006914044937777927680301247458415403359789618406528095885294590330308851428497628344623537562961562603492983816701584043699046037159853459405971865594454322054038144375259116713986427326686518302145210276304972071721049047587995314563158104643870343045401507332038589153236175344523781262714670103614657323652125059779724703884993163885260535262025849722806542925952629072943522245858484382505291203898356122041791895633380794559028644747524901455070322758598952637071694353758824234939728820601205695798112970815038889598765943593185701535026049366112090441069369231220648429583866247595102838617142784988002728075241755381819991109429070556229609973887379465212093593066247766376000762311793683161385798090708290285670366146492050981660218756637650537700872944018614627444501533484071152740263702586304048088986283099640144201421929052324977930230223071160011488832650099365637227993050222602750029710873165483256377036031702788274237929048647293941865310031989535356884301241042819444758272428018210890615555197982733293153068651829439486827466827794621679365009685935654709775563421859366615863881390106859974698560158532241766801471733673210495509504078613082154824197631558527695151798269374413690352097409421739178081016135935928261256082558789777122421612850432785408291449063027270996673964017752751671647351878483797638280272089782564413863336213239631928750125426308544509562841947114687592871373896638654364182175762074004141184455222659931035720183870402718634689165978473677727232661872899147363986308840760834920025295524230138715114289141174499491329992115965360495852026156750220886754656783028269830345099940437779950838490933794416747750501606174921058246366599045095729357300260385543821262959650053743364459283283516837811714831069848112526306422629577234822867988264783566757849299570813144496408941816401796464474725866560412986946523479334639510543769010968394548177508352576850263474853179162179148146235569088128884070134824591421862256971272565303354676391512619718455890397279248286907191490263155267303553133098041407276680211762324252138708824195554257360619929842598423925507681041243074853438173704485322575255853788788750433225850182076241562572148989439763279124292470130319640387824353036396347119910267348352070720148181157850185103015407330233673678195059944352435477232249822974974434750393559072826421881187288414364949015717443634685261335219986803871403073158117973136159773541509461741520393695397412951332958253648296176817042070103144862385580405412209622772768102913622107772154569599055293606021564905877813418232322703462737522669627097891453207756869868556599251922856253029872173604518588747652728064200601026300403765939461185473039203975612337051930224677213300436371958632230580448874460498373843781522348847138997444888670936903307693284047487731021352301869029655797511170382439721014754704299235609981764521608879596153143101183005931811254103459565574569182557925996701183127361439846505287649011667170072321339735525229205699283021068619542229426815625265116178248453227293813514753877162839829193588460189497771766573244814344645237265727879331062750173957456734355470624521418937849924441916327183125892515159320507188120755081983458736670575233529500408107053400952329249599325918841933463362813566167132419174998418338661273434703248672769343366734658800789975077127406807129018074486479357181950046406771621478071069403078785266113674964221028671622712661150969340666304244746515290632616947255158690229041872808909243085454378264239133504329469901855745010241495075824087358700094678973458122218671067410411171886496054490906697677086070774050192759776134045040293058673072060900317822191078336286774866429489782516086037374728660423906123051584018596992532800067682887919880270487110610449502741348057802631474859878413327448680618419194779360137456035673433828430695825640180047791626416258732710990531103533141744538936666263469687498576782447921794340817221799907730138859875660234018745919584277244703695275065834220347119064265061100895797850674487308842157360127839676975119027875632092856440166586265155415719182259744340408303569743859869972572291820189441438859691696744151007813170840762150433960560740180096261840350704749598331796108154702923543254456532003170712450505096333756315195290396743381308913771469264788865980279300361070882106490902364512887755234691861389976305333174271855879277534095103404086517441708393971514360660456002617665171728150869997885625790700793633112539976366898460303191745312026536477756731471571490577262834106215205809978200205371828125771230744799370820189957277188539942095502757376916327532956539514527620256286478796689862037943146769846477582146328502434573204557286281990048751845696508812211827684638165075489751259845154566684901253796533436469304250601891235498277740001085728312075126364093818467869280826686693214315530274147427488188522579091889064043910909075775762166103554329315193262340462583813202691546523712461459447662375256601854451018006879615018737084925998710617713788258264571541395931310754539675693489847632588806514978818617672850950681152179609640585933181097950062547245575020512085764065955813221629077352434828507799869477737350187861376318662612558458066923005509167995394573592869208082116405353458432353533008224116688450052567496740872393105322025283090421170678371011808572805214825195530338409966481846850020072482165058613696658675334688197082425673369582592854505077845913511267945915525363557928354880573629072133625912311205755236807869837502607568286955055139552482347457840773301119239984064860806375098018958049826048130122607502629288435892954954066880661928598346650041668677215206988455660742066843165091369383489112924305363157524310608152553350371944722518751172507212375391441128984591122285059236091495700833001379670183562868754728277242582939874765943947501399557291496093372340720670509552399600567093969171638878066968050200400911342548374490870562231073538559838014829863900350762704139095785849464770927002564984246778918442193746536800117462330085743350838904795245998908850431032165636453207584459933136603409644301724273960503366040175783916043119327108377199427042707788456660630945129903715664828828340487479576873611251314157478479239633536824525893398937823621272666604395577515522031880449129461952782113383320519618702900284794411377398391949238871459645096179746592169417160775699701573626392440709955756137435388805790141895174288229934538012421512693746593314835571731531164411340494805428094354099999326006483255130298244446819551178702317035929777212880996276987065705802660775033422751053300182953246029863551414112248666850878107978137278859992706415194112939707184812974643113604092166136758983944502997236993649581675549782502278679249285087185962640771941641373328914261849789253184843284044157104605183078374142344715347313055931954685941267609306735606999738198620999402482506024936492775264447931062795553624068531730646482886592870865024255219142805116846683313262171112838438982986623231835876862697982918641134180086310779075874373136345849350687520822414882176443800323111717857101205337406980550244915292626972591499635050906207241000092396617023115358954732162670806751792066287630116266975060238054126730209895523106482025259329425784172736521523407406775290397547479490427409483775228827738893171449143023641125578157931024472271414036761965160238920097586712450986377642117825004846572038446788646626367744322635145289782117498761193825947265867119334287067137857878530068831833674518359268674065693517536699676043063239128465118933871742478767247408910639583084907073565079817449986517202558364501763748571785979469260446749435706208742401166591932704531996314366875390283881551667899828724877121292631511344468687669174951319938729011533502325623547584916798367515018046292106850217715729164293541861965465633054961908401652038182202262589763503597510295080738830140240538563036038668750896570471201598389527063666287892888152140828912015744277944967289873036441600263469479983593735108455469627443811068080848552484847757864796320204402319803252295203548783792338065116943572413207821374445908519020660174671374893747273854693633857767321694217832145026285593292279199518272407814676840418799575755554026575303566533958182460623895291554343622335746871527873623093817344485601031534147308165613360283017711301333358538722060991925143773320618793027186023487213859937030394381554482644426722008527507276849355897612684205688968397084411187270040486193482553437902080780656036459839409263255841395097044152807307370923548400926533846389294666257572777613384939052201897959686569758280684799821190765427906845589638478066888756177038989431073583024996022532188479643652846771806871798373068797472836576530439524096145115079921808162409093493791188759512709537211864856977548024967140274635966595208519065300879608755806174544068587095769326764031420358241927234302905165470007672235572163777668779256209986381391777955024977501834708814226245235833347976998240415498593420917891583325436254718720942819650599797022236041739285113995321384910479796763993397527019338929260280423929618242166690795382294913772668694856452266398446238697566018827963456091486192944754187694031749345981424070115353858328497205679521629752042586154916720075220852169717436117781368939452665853296897233538269426957547511293934073761055170280825890359826270232506520547503354692487782755240687098853169051085369818169044437315932879891506717098560537125480630994288340373277220243525914260471691142237849984277693203575684284879970418059208285082963771284077685870058911328464984605501285981638257054171000962763476862389499665573667462826763532783107523865664955673349884504127711854861574880932234770405526073003515536029812230809506025149866878057489769712266635447405583301365247405402983898203536052241950831744836405135889279125885299902555279405983814927274518709694487620309395188094339794145016825662729431437159305235130441898172599678432780325779531454845634529854051569699706629041538356191375745527269851495653137158511538454611816373577075825569586010260157656537733273128673227333149847001783164409539946634321838948198687435137396141077149744218893964021067874521209482288195225722769109056674932464816967145485602505925797386776086765033868531351929639298682328809215699071201818964877977785326931747836200811606304613274147275507944123479407957526838865534797194729446167686241021672137531500760305385019727235969925235663223201325228448310189822732942883701028552747168412280378629079559962296823170590231921701401841827941428529185654171689984421742934580853914695154709669002677155161343745663644831347027595310081785820499811010272075278619632937557501584945403629930739850515430350968987708843256447197071276377858365768473353847063246641468872283794070113899777808635695636214744322711606409743419328849339830918244273624537911120351351030158133146245004128977392296020550766426672325887708800548707951588063064251737560656961913153495253845235026794523201194720552551563872073936905672880816918756240303453937361555031028802810168046280901530694494510747119532104659552679301000784124082902450217687759647217295658723168489457010489898802038234444163352609652483754217924390969414209071075548185804662913948700692943511550199650009521123970461520166964497642576464472156828740091896709179440856624227228590578937886979988245705658144990260739276733327134055647713093245727085437522267540647315327744196845569700524798244641453702421861760092291379918206402413882183889944404792231602005229759707033758135436774963245697022798372384210243404943427868740086397674946080897629469125910547986484326455644234982528076641867728707588170580420490780955844689880678488461075207641725077406471040939323903929527370525657361268741605483845375739952491069322830669798517795561945362280181005115288689557942958285538526020649885311877841516530902306796206264714633092343898125756330063978313020307651284247181581203610769919790066597235250272906899906689579822729777416786676232789658263320166179752913649507217435387895739413289453721038568911814343224672793232459662268206880246363557099070863779342484965753115659385544251715972659231968712670031083902440884311369669668251322885579769080853178542370840844957589569893813598097354310194436000819953734972902912704438916024513772164228583113632262831725005556647348694652292741323387975269021536516132593140589392268388019597613369595192224763974673718656997017928791720972522364558275330062143984859153983912386098584147037128918683113974591734479842162027928380685217334612624903222027449207767525176830275525063241847307198219348695998755282830846216595188499830787186689765460518385953238078470249055805475883439407171763441369177098146444414040248496132362088411225238435899826343846979908451505912800907629233273173201298915902221296647764212504477692987031701087538345376233607521574659088810783566689947013798047115370529980813160561714141718579792157885692014320949145594465917445188486840084680896426475641753417405311135887076467096451619558790413571617151722863731892916765201406590991954539975263834249824337862297730611956133141694711554304244624862806260706671171658770461044710316231400579520032134520517395771522445698849370178151776681825254081298592552157504496456830493411704212975188484668000352453034174741672861222956464455060134251194695461434769117482568908721810791741053412060278093629211107337296481922603891875744615641961184262079537311360617344504338226275826915395361695781092269986817781900485957576321833914487614322193397566985883769375798673035950238732356722890919797069736376219174001299170506848889971086499353423892174740108500745732956222338632176924574796578003457346306259104768766935429156238356218133839533117758040483916765379589735979508658973130045174879543075628982841033941055742504509594479575189816376452319185679672399949077678522276684901799158518947161037132100026065193711148643010101942942475261056814775391703711984717449995591682184479871968916171240198167754858574842328520181844296788415307725876231423482438462364589054895726632514558302451836484557113773099390708333412223010677391351924252778414358105298292660033437888267859964558698800526181738818759804332469299731005836492149883680502075465951759500582948650282065642712399377592754779077972888644173954648785156522785991849272313291062691926267800790255005555364767339710317309144105184018598399926331926069546859854572839199298433076934962373654197820964250341646412982018214938937312437791161511628346534139337415628314129518223461870150865876283007877218988862067277070695467250426157072616504689212607647169488368931016568085507846201764718637949220761229678190354865247491448523072037254751473441885427307980486667389659971937602652268367564808847365769535518378333915465678390210897483257231922689284826151244110438062907049942719686514904615062135458706190356637337482692405551838409839666542030280385233294577574692247325982270793834846431713578617527554208605303754447789374785247598542659723912611503161167766241664707469685887065694927658330852576267204950315964488956902730926840993090388135686084798456886355391582500589560739210567179375521157769952928628611249125373351613897433284785946549333743495848538096263461450820132088735401693621624655954580567474762134667363508773442259504318710145780692149723782764162847198657496708721163632695732627799478671085331718709716767421677646593429111291838284184525076432750051022554000179434995325571757164666777943550718298854307756644741216773196682479628041883692607587747373014370209179908314477372244039172870017596696214207748452471640298507551169053606143453519321259193087521499836254791743148947377453351071360915073377020626776207713808445322708808285732433454849540457544317787921817595748185782307111668720388937110988624741879917783189133381458288868143722856743251863642659783708933632565568145922242369493886998363954071776698844340466445127181298390845134039509310538645381721958901468016548336631599863671924517910886246346203043175375108196000210726876017049121970769203123046542585056612460909276727318278322210549689909617135003672204975265828425032001457429896149247871041542997962969008781865573228443470173529976006978537361649923871042798131011485136729203530756198320612139452228061200548393663950367091689434327685345244938511629997862246373986977781823884581294664493587613237722897655750716196290195251702307997889739803891741166346274304715111655316366678934777184129125461125780889595323614493007624437530903364552106867809212254270510430074301164975305785443330701453791164072694315758521359260126238853824956859200922500093978577552003160430459805762797828820476393041079810713528889729028966499734418224819118196080313372925036172543945547132571270580939770335232173327872719862714611839473136038544294020819658412886942447977027424676293843448735033865760993296230000616059639427763935187424381171187958206473782871894585102755706623917830212922456096615755772521687070401366443892111421148608334571322819067709000583919137760635332800697760903045298161859908677163102222344434681434474693577235142786157446296009551788718132219903830490775887479717637539710674627390479836434732280262061890575217542588898621325462948104138730592844051358336898618784752085061724167272954275129098995034365051063278067823639556070796053274527456332397400203223904556576021752978149715337483504344598024510411251890947205177151036493485627231942719826907580412177875751445461620322541884583129224370092472490822408344024670936036606475571687758487182065568528695750552070365465203597318478906377107067536048006171233932459635203441269874266573544713278600741296573506648906412599796519521493986541897921717626807197573844540152845407315187502643145013370787388317787305464915287477112716736920029217464294089416626709608185031914787668966466293232680166344108605411352282931681004976753832780848287285753016371516164408913454822155550904975305482926767206413737022567315470678273130183571961458670895419024562582086758414667873867080576416448944023198386208091118174252975557096932878137285051759834740149427323986401121402590565847614435894676270647237172814299303214278249938834136524335659111555844744122904371461132515679136655109271951382140235846216874474350815682886406574178087113438955171864560357469294320467564623905654455936231699518521511062145881919397588654026724110153419828932914689737375652468572647831763327095603841234828593078054222260992842434724966489552614277979916434646931562016793717461113453628381953268402714377307136095083675736184299200466076304039926175143918036005116489728335203860364830826105023409715557931554458691964729794311980206627079566770836505807737809639827071779254846025218486999832477632504167788241978144865014810607609508105466630895480038202301151945050522621247983341710181470602463218171254209053611719710622418276351626108458947471035138698692834065434622238332586025728786029203859513777099027487392205305347445853072597336092373111303760451470918236200629914757270435434819971132170550202337568678290417693309290711382366749541503008656222695541670051446299128127161221521104524719446973669038200591885719900326569356121764197316662014345261015056373548480905822077499057261748070523762818076826195998774343605875169284731360120915078830379116565769476735743701695931500739273498874460341206993144315168810504056829648952723251762208921868013797151584914067053528068224187564790700395163815093032000208043698637580584453064193764368917624104320304753197832990726318237787794100453624569276301558694438988123160872458213515731738629344828171867794778887832579553021805166916197258746249676641163680570811150935616672881608020400198242367537096852522422094045481084226097452909876515482447448270083155212330338282458850700798599359553621075527947868140814207307366633506127220725033945600347001369265948300215718308145232296216395865569183669746853630104723606515684417215471572773651711294797130811046783845265709503322135460571265189549208985593640508528148063583281713150411824435948689475972002378754904143888404512153663970121702735594871084466332023369547650795921069761559291573729682666248042330488972247063696864540849465977442920228207183081957891829220683652086597882819838322281308430632534510392167392856243692203519734332813241119545680461261567289135833462147668224391380266674405193323731042863287125049019070989745756083668126912926269933809489982128797722465852278209845508042913957620354175398925968401338336359287274961687337544112075269013453452008345574782203388609281071945953092094729957019949489603820432483042759928759771318059578458331805805556662028922834499055800893496211852321082082690593594457190439955241369150794253528930169168740069675715863791455993871772274894384975149196130312105190803753783099794452490710434548894386105119071525135559964894296782678156235300953504803856388734912270925752806447047617764357852613827039824286922764653362121129271997356195870263779609710347427028604628413455673921582034535593879505097074161223958284056685696356051498143547281179309392964521350732923087119532378499136590269694865701194806312176269766549544314527820237068293964262246201046660808267316430012347525958959121793349100040343376080433834320452655310788607933237581640479624277513610882422483199772750463650317027870576938610871350547321915335289761752966433281997351915478341201181124978312538706988737733751233568381525339325057088172202119181186680981425013551599466661967866541349060757037323163992202660659889123783318457555591302711781823669524088221797731587377193766047315461670658339868328001871316846166841212615966951447550912663147547660100420237009531792461239759545710409574072328345299991041841619141955724888106649770420213665211781588544817496166881271452478507153370845543705850015055136368935889905454444981371303633981441263886642817829593133794215428519545179804539435923998779905423654652579998361909036629501674932089697448427656737594768481762814189052407926416986674472526635393858646047413286946431776465478217518771168818038873139467651529496122835206818420112821552822532232171318673466996695936750865744570504563632549598961933102483519764380922837154173060399073744967002275050061958536830620316892840195402190972001888400305095392030436191519687715547902025901791195352877265559690238708254002951798698413076889873911146899077791902343081353701189428586378774625652755538878314584709304103522612585323422545688290294739040488024382293496371022382558930643740106387044433429439053569862801142757554469356092774245233974187155899844109824493317257374698071687594721248217327723702884351872194353098322162482556167927316203346005434581410177622071091081036074367558052523281909582132032523515817193952965326942017561396491588140390114623364397848877298557885290771943721209371564499281086660633135945134414783775537193823527874728970575026732830229259741313285749926600129168914852712122664975958517730421935494446554997487454168518746443334466350596532048072691075925890861907605926913727418836158240282421286242060641398891349972482821020640876918204836524673131523706418820949960130536917818794998600841811366255379613867730580632591744543567998065643454079864032264133654281121246284693355793202118068718114564635779107256395466967164276755035178620460744346889578484627246152478740422463381536777820687854831090746140188580989297582565148179290592538232030802156816475437472136000291171366628564504263564561880476277724369858485533081659005407260655589371196281847395202099694301507436307984808789191638198708890092232998324214680781960013624737907369024760958136320002072937494779996310464572719064603328077717119883198142572223845369977288254807779191544033615014436171123783031042446041676720809908862892845554532391596321254109618340305147994738721794837843434702677121297836411576847915372639612680025917692017837590431546099890388077131302853643081128368510117571362047120107245522865398899804273348237482117130711826823919737143053368735616105634644194873850848489852533823364523443498287158013561674326657064090734101036311061050971057910934492084261854283917437814024662294012762082402346653760371615387089319998163452261458183733683316932579520994413485010912868675543809485404824109246341586427479518794009224988818992414331659254311898046091922724197092501238377346727266484766269203248728277475984314477925647941375318508563236790623941372959562190989962883373703234882725235935627046714139842839784013370776386171688527546089898370292446270591328732620785676270499212261001520633128929276752508950397115850672208490673060983521108996094970205314774098812551539723805898894646819409450563141714667361905024662084263025781572031580875019247382759359840351818234043200652580023348672003426389005182655560945811201936189581649977023986257122959975225764561107481747038560808544523447462409503239440265406670106622687310557004210740505793919129607202013946185017246420729621121213974699890168155149131918175225354583308537715425883563272162338531543891001452358822643112984637705933080909730457222254205661028049260562816190170469548660894099662002401879929984187397339275568287093756374893376203367373665939921087096704998397398433692955484214728012831596507496711195840451974681761377978123104786459081122711700574616111096854036118043666175892370794390522110733381110398335194510195438925077502439097111083195651618243479081540828962529708685899763867506639173177954172881949396333486640599731375154913804348465595081078475128626400629627624901206907504544922310007013326865453588162647419639049532288080169178831870372305787395597507291031798549345879705443680023607626342233169900627190197139495923389106102523744506823423831568093287197864191755032090408089919051556742212735984941306815550488372629275041868034649323247718805241792405822733024854605537055343369317299665652412802343833555129858567555556640435436959443411355408754112689792113891010355606873652666849797845742792251089567877986372092143384259334724616349037194389795858225885456446907653010153320482969644739852122602286354313921448582998655331819737905164065694774857017145921977357523659204376507337377905450776827799478290021208104245517279206026273118674649198800583026985419431931240566669717399943229382208904944867197538306806041585892221160426080412680228611035665469950366216315298856005816582186829672092503115192995723240277712113244246950020569985685753563240467426108672949665288360468686229183298713379881270428818106700622473729832356737463184052628933532671020420714667562196914169234448981449158913727076935931847734376791681147267482564682699034298991753316908375379319918132082684269681661899258820207844354951596742720757464933662919444831757408371937024336387620056585243911254491671527727790424975321014023929405235366027074851408812154911745490910556776461582168138330972734173341206292041492102411537474880886020553567442853642249582750092290666909848414181258163636534059503557099469707122146860462299126671625025967111489229867911989972003094130974660108081087260503498667014666427135054355663981636975666270457666464753087437919244954734858639007175526331627799041335221938354399492761199461495837753258974458060872513909512727034691012625233665004359981695777943546704473276838692187547715633795688932289743772976872774838824322805213024098778456508547953290261687155021754356844228391374701018874073909752401709684208758827796523072410946580592625645002057365485629044543999543523990437491303371176475104048166406844028381485191835538755821776100307870941607628452415846975601676664389352683354567160178132639762782607452321484998922507236869055922620473552882761009693688218223962531740734596265918960037543898831405731257520946174586781905464162420055621703380962301563710763121843554784072828475336466621989750340137949461894541283948784262821339299303608469364696611442956481606190829122040062313381536744235024693986939531401382248179687531160446483575707781469110908353634567033450159577646189000398128630112464114831340121900912771862983255253968755450669217138115424245706304969781582353330047884199529157070674988069871552489685896134884734192298377857106127932570263408403939396077576434258648489653274109602888516005915082575244924523847133080512043589589311328255135589627062986717953750703153851626711575410217181318803188780212550527374801028666309880128290448765613372152188395684904860148258125012248903362190972004064796877545775431662305976082370596106179596268584034828097903289308055657384518144296953684746496919590459476369084392899244391579730484455447736415713989846212763768901884483209738174825756040150734192708918668821611115091925952330716068248972153625276089461672976904492445098499648887119386104648505769097501109286870928891677244218143848739130940134678405858047164740735273795281565029400655854336744613019982621784919644321584101605921567088059276049484542013414347303561614103781868871763636001713197777034979242654629598797198062883674092223626323591213156261732192221487446215742497701165682062564957734877710395999428202636846300627795640171310490396882919316580502395399435869953294939753502049165996636783739035863685241528164910096636923581019491661037967120938250212843954022970598856041141023465104781858479927368067364934942083021636014230853193146784905912109291108240561095212177052904429516783658985423814178942949013009709139865045562235396877320453831029436635079557773611366244366806578230029762608790498960980300148753481092747826466589143210542455868817209314764536873226267806859100624448133770096595616911330582451972984997871885218163228948664455467695216162023570588188785017248218104204747220479232288582569241437539645623499502186642679352531095257409882815041806807566597457845264724838955718848657563130539662636410369710444387968972136531073464518347596357612204628690729599106430003899201055160693887447991247284665029646557823576626052125219549749627566872980110342486005859618434343646085601722739578530880680450808353504359483108465999578274828948697208269391371039199444552951961813564235231797324389509824325671059921328672566982326872533222724080806744797692326977165013289099045708251348929436326571138641006668417194515633582887226663033921146163031968563585778359598652739185705655692524609932440104822364723805018511034595471857078349621008480130577057490894180021925620917348992116338337606937671769012424249872515693280635675952802285333693656756808179499434971060367395651410853941136774207141030495281533256895695275363429186182058779198014390862763444820333998023712964360824365073799811544872741584730015872135878527149977664879143789134547281892797759775022636514409441559088607585899161988672388190501207425162393745501626246209774013834757310334443413925354955465521813983444390915873204450878070606734442055660845709579645889841033607017533933466785574194232325321500141887815367409993811701411672099204876553939524101136221263996039378510217910512107020543734804369236010589904694480909886049330449326486913592868771909480402088412332275300970875627180918391872478698252389057360305075749001445905435337719375477646547435346819867758284182611204045798552040314986111814606455580320371033951758509210632781348941024200283960998485766287184637305616782906479795457635985518949917718523554759496111954352813377943494986450540412390938191665297021796563762219569035850856764916764882511312653325021918307245441947305607670485503590236337855340447862825401231223491242137229309728490917757496236305884771213878942201269739186018412676826239241627323170106108615975974998180116975596840040361706804590388332378528396177298953789729060418425180175591296001714042152379658012922414267086527707890585666444542399499145729183062361560334384362819443753339444886824676724938399742781773892103169024765922014518942660923001135631012153654012241217525506080850014284020442460832508337725883212657018592917384771578088804048847335107151380743498264910489663899042612747071789606591883824550492897639825057349728121075874056488956701079157450412597783023693981839070877213110541654377273322277732250533790823239462070821940562761010664240309714068385604739913799152617680272100726220716462553153524588668869832555696072928229338135896460265904906442522181907695415437835291572148004019337510631709777040226413834765986780525287719538055790420940850299177597845664605240756984933913594339934150985714531726165846361349669473937295083672239069063771551774905039291661525330744672762305279772136264631558228194983309954940166274596582822745023002609863626204105407488526038306415810309470890593509163055588524373292160378832763442415425445314923458657443990078597167600222445437915038546220495053367310421443896292967969103149726751882138473516650137838980189411294037495975959868481770555026097077263131887614132596875098841859881744449321595312562664193279818581319851805668358316641915684358665434218631889420234210727557222790342472123668071159031249610475208253645473531635552280244869225078810828118505864024847069159112404871454058600924106358657052940838031483872389641182747774251228836829476832115848989139582161887883394030325732043054302796253867457313355573355861322271934075125942959973465208985025954176442672247194047313575884937582969166914168580643117294195014484494257772901771737521202431896324759940646968449252120374228990409766756582908280530601254030623323662451546906966553789892812421231186522110253317487601798032587723793523511085319766942008753263037814090370102357105207335702141315532148493245912874027372310097552972771819420099193385357609149703339842023652063756081347781174756684983435108263852329482784345513817961663430767430090605160954413000016478847940758406455002960962763556109493749379056202604974060451498234651620192983511171818848835130820621553286496070589417349277939397893206749729569999752997933070276630818459552997014704195593374586690409849145717349516223916670251099358735119303039395806790805691195424629445546453786017224143383987430672381467844410970981473666271136659613404619437271741674115708026914219936364917530631496138355202676112067457741530014283734748179875398495255094856096625424118358666299038892614694702870819526637120283665333687088726942808093181205110410346958894118222024173125732758157266332160060076808001416724397670009837720611191829135434885480033736589034136103160750620030825179180432135531328936669355923567014936654719275594409275867429716787937123436818916112263146989302048598674725969579677812075597211490933216637560656045925314038919494424749112784991930667174158392556002634974230980281628971006983529528360991369360991275926914773370226742106601058526023703983519954039222772951803084532782269250131880958456395962514108705505065570481504057464840498740868333652246489359048411515232269204658809801727634025017110267159930114028408072961673893282169179097821090316571327866571506270025453746033965047491522542806565697262378717919627250827941031965517292632291822763613449541426880973951102681688656857298780477732937214904037426874676978419145274733522427985970893564995822482999244120512698733831545842421441590829092168529153276572886150937008518674641902709173083769230167542223598688896470222854677808284535104573408025769046364812625684998871680145814832943359051557783020332456410739101527941489663006361762783314997283138038722222490395939164929115029492356922832770834160575140476514474706611510312144628627457735171242737004606196495164900436048042237248397867325666696621924473715420831626290383514627349955064246749828554749401871284500607409935634635977112550725197947263001187561162099508815539440838621424538499043969250819184536640445866313313409604278360207028178020356273228881799530951925583701715233951195100643877932489490078789460566604467650328538639868700348498463914456729563556309083122151186213082105999303792407889531403578359037503048917653788705480712502036744058995512149173249722433425618319542823156554299964460195892262851336762022986097021118856995107200543515295168412925402410140363972566819468205180602720758975329764902175307459756262311985672865179339442423345077562974707014221527550078713955206770851990130305179422919383935241881843354561425388001665759194169750920873790676953681863736068920705899680419259537564713720611882819692548399053679085235413192820240607439811016983565623323215088116971888940242900546110005072514321275136397716428053487945399049828904626352398046279847231699497265872865361375628508517071215212668947385656238800884416991786364642734423887769886912880975312829399092983272929238473136340785070067441081278911720412529136584889497072007481824439894010201599698039074015416655214128760302162260740396687170539617572311586330399327388135124947422384411398601279901882256119191029527288547379687823165391459684511948569262542454217668316161149952615805799522110843028741447868582582887451911521407204351812079213484218586634184468809224112736391059714846171067700109788837747892089186404351044100283612335897960037834440065064535503326399685647009505152392807600976006186944815663963909579093809927526411750451256157379345052791749315079453202170075013541445854181695359802054968800514117947626638376132444431576108372497470492510452129021775596911142066229628271916113198212789974894976743444711149776646933509962226430738120621368517189517800971051436621471510116354717057596087082661640809008244238890201536828699515710911345634431910349709487512705263807050089172105782451531945511222099794260331499203948296411556933794450782546908058246639788274274823478109354918782994071589458031753381999378322415804703535116945137350882774307115084916207775739276470894741195418311117668733926844646060344673110568714703392664647641700812055212187336175970256364859432105018430022878595211328172268850302564450270719568017852754366957965892667671038132642412390453015066965086539053340292729268550717347761815843161134038490501883917730622561196539159323269893750491171640804792832921870747168850015477144456310655923521192801151069173556601849167824581311447619347320372313206305503070517455924590574583077317009595132800838460142741150344825888496503069084880351606371040923124001383759126040658164039419225305046731838616770391861408140341201716867690375565439855580149561183631895928896644013720554218392513608090013622535951326220449149976839807822728897745014377662658171731753175338701438045713712790080969408938514072425842781935899117685305069622360081761298108398880976240869011850528841137216963627415543659809106896950510260824753389868822728874361724967378350386730874718753075427006421945765602560219462456812847930393796373956224413820953977502212435245697939772253334763509842176659181357950606822461518271640032982979223018092905468985437715255196010050434327149490462407840584546402931465529562484068061080761246947706032750402902838523129254647600048659244269250409555534194276353502784297279620557531675910493247113806923153205058426361281592220173128116872614418345972145376981188657690725158755298602089612545630203375159754329061242886690769490332351507348774822334288648502173692611640353414833484985750553172981243988327282616969437341728112984348366155174873235790251123083956749268790177900171791401440820428508798659142769985593605971830094450638931906495048016132966009694410180223606467840441177866693879712323991050256230940551382761661600046375993507739616597314413844288868539344525961890328359475524591076272718728671929012318122233943670953223575753509254220027692412747476788818280949784574386436019136430557728193757776844499703568710233833826878588419468793579240251612724044953778744897184870671601217176271064484448929187400627763550326465896921427596969046272899478265758650855861465205626270850244748738931884991654589997212474872797152373582453574169468745824633804562225152598588197388669299055254178904550106361314015826474044085828028474994999610772041346938375779455071139680113965142431918960971695361983912772752381712569768103477243361605898030592030991148082840210401069970251128669903580741023754195082616275693482662335533547759171175119576989120592734910442436806979276476181317427112274965832736149703785224218086704514738950576839951761481080775372615127530357192637441920735867779861991215540973305205978212801197803764564593052904233792683420864251202611338027277315124159503781532448024668252905719484335925815766174454079812102275607829863031026944159526119245199993445438616986065155412853088451095010220591829643293830290737471650721167945482117655353169245623892777542232025515856485740936815798674018258564174553429594953382874148489722075933121867376114754681501380521248323027109671356036642663250698826741230718717945106815213544577010699269210496468138806900555996734132969323141353185787593058838614865686053903111811160319422193759255214165529091125322368698353470363823463425683761495779399756983244820371354423445491642861298264190044388134834639264076725211382345228597847425066633058729530645632530385295541199928531569718188543934459300819791089846180833447127464719491167145667770874208859116042585889194636423376108849784679433735839390985127797224291933810722648656133474008323653633828749622575851171953495664573284463804464476513331221207335542415717931426622397980449897680991888950250828299820761668536138282598804968615679260978502457717363447553475417999710302116589835822973993901924582018842632614084303725738900659171969316576567041872171957899012975477437970028181705435112802138520596910992306400263818673424059824708889896502592999433285049538857504490903205466349286826822565234414006495760240778650170501928594023712678251730832453204399617366555011134029448119327235220454481897697437236052638903605588564635982198350642684064971984777077413735880043837818928903510678957724874485091082142488793165827417172695393965257476345685499507381223446482691243771794543399157782555607725684325569803994923310451756070059326829385441951673563630540091069875529769546358083701833428874745410703848360249148835938246345624903038704261788994092224232596344903362671624869181791049221242758987274087094512077144272564647289356026873464694240256110403266299053202305827703211692728698532354321530910819899840243276632678898932680398710894814071984398938264559494155204198795667155765665208476729528086130143493544316037476314375276128815213672688541363448975397860730291830295679189344961797856059737433480712432818959992640509864782760959822797002088330101628025020120784585680291222503162715153283153588055262955289575016399543853113670239987769542335491579680076916625183152749763125891695723566996235777810692340844837592595145930381274638947999127750860482572554442402723041431061671665258242633215826770804596621409877018531714076499827882404275038055275274883989783642167352971877586755648347772889767608432484526131689429907069865438002932204904916533608923643651387732958088682846551141419481755553317064869313543879055926268676078096076830203201114847857764696884096277963428768690553512907378791215335817070555358052597765423338947562679888324259478579394695115017410025644735921812534266689191580772910290889190929639093166956294842268195705974795528624330619021844140805477224047599179684573807521391818009367896889218871151973503502923172329368440400256506455550471156556652501409856237234561933746334204668057599129509854156831971331861702885931550407621933281324670460007591820461099920071613239729562577663802994616951411532051853228576032920925744732133987452704181306750794123575730837353514344668190034661497202252806414964997686432250839439804323673878194881040015037572369484640815182259338122280830813466556059052750613949245239633827783813021708726039688242292353360324817733362235010561550930388421487263542063688685930819853904414258759947226460683332400259376164998305300108706166521775082031963962766421458943213468086262002401714936467710519493706776538506353406677037906672549541356460341526525649203933249670952354409757987834821329242578545131654038010683899540692986244657987670296733993428354044440700931678717301483882668961644459508742677993345799352095934943991070568138239444262660834032709490362617183313475538737146311908138818999529762341530681301073455159129802959713998623465220166485733195827700378269290477617494134205390132408774785681356159280755229374079578939034041613770954362833043541467371551986245191445788743911223216702530571962087538373286990253014315625345681184404956056635175377130183385318313265872240510483754893801065987620079087211742484047186892141303138862886121111330205907246627321686227619222265940298583668075658937269234228027166642202397692013300929209310035362265361453676976976893196963165447490779750931617868393879670154533794891676558781100775867848060054346110455065766799945340149243219175019788669563568956428492266564090935988732729185907836248216153390522350981998315038939722173606085755780212482584538914075379864139591118223723448801854348208623391318920556003662512386464202292994947935154519154576743419572671432259652692877317527948756380717624404767955297112510855532202131610354165307091775621436674057388110664137294558322608690123813171515405951680493027824830348677208725056363639905975767482955461272081583500412488235712491370277473356413318721056997793518976387050270278643776396117942511287687518216007005803230596128457825096523950221722840806905782823481775855629689218991793064350740528568517111065067114311302757303720345877186787242312462757354914859041611616309473501012142529747039608514216912693406228586586967321497862501312640098146526292642779784075357313401114266988223901917251309673278379085806444343145841298128351222124734969231173750965539020529893937984039198825137067746554070047006726686476429585538240924496817412519127777365193871173006771871661940392377644739518199016501735174051981839427604080072264537857838366469970032929574993024660034701483082122853287626203798591667613785101433461037836726097033314432487090074249747316531182373567722538860403668806112206290008279470322225203087492847330625469143633914434620345158528511648943326752703760680250148538374633955728997272671924922272992369767056746162613994198902411351459856504606709511106367169466381937112243326165153117593390172066649147594959251621287210223403076200303064981497246670125964084564020043787814147517764711852633510482009447997865882499933400707623882560111597072597777202757344579256371151335182949592112582626444675972044659156898925316591851075000227736438712151094563432874905197141718335604890952712169867627216004196566241302317288194558962617210217248367638617580992375000567738815763424454261562387525831666722359373297870108692059344402007758936912898494908802140442488194854632544187420991946048840967859907286647410172512763811900923698022998479112808415274875491729129818560383286696027135869622806301656960179455449108492910306227371268762621378179617313137412633586132553951406236026224817484474416544196698871480493144553075037770662678853325968076726479796051979187457692131556734158817794957655892523991608572079733488163806331520049619540412645681713121970264883223134232021494970317716246100586059710748222203768914969913036429750422650645052066347925508209143190677283869729996231308052914559932094768264027721933365937038609690019020347306910115269666652639764825479603625837389881053790430377992584091428199410705558921465617145432056377885110353695030937703564914067188591724307928740585061941412808577308093760056599938455324086129864641398427795186790633359010246275430112557597470698550782910102187040021047787543635254924426944366956276121508394621793422797463479044939595837100909515144145748450208393496947222443012740408478283341660221572306605065357822625714216011743199368380899984425009361722860419219709016931819228548455333243658093270189699987611205019394813729302105420920101978806339816335536718660589243614023464176217021810748430286283139206520011238601493094850825210631579030000431400589614658177068866640981252475938607782247916077857926990726704978146914040205624082018442539555702967261542156129791665859590467813470001471176342434869343685846428940132916046995708692605219429365789077847599000957075489338918137576951657796497653454069536657204245175999755652822649864721332643683155834206693181720651535242856944263293791965961537284577512177440337319520843375464438228628303924818615008304455722917307565496813320045353552818266739317021086653217987680055309834940161173753827660943622437747497205363487492532858140283249156137167939379455635559076974558329071980838893176092210933453872303221918203380373544943645154604337240555397748365642922095524186836134293644566338743760464302754040968290484468189654115836907776447831838526672110524309166229984470577905967708044033094003449252128599035906495446245992706330946288887173762749459124026030245309058958568404252078026617468469643607341092482174129003741798486254121254077021200725565872989322442341430692825656072490120326348752634948767139382495226259548987754397223182227313626212079262040168157814389226956005265426819098524512486813706803921103494963826759969414472765600745346202589336882908358684840627143413077852737002888400971333191374470714264418714026134808212829837377844560224666017801989647274344189848485854735919728433891107607643950579413676902433048228428834832277200246476602112511876610807088890283002619049902964642703585102349927189101192126734220274891224628447462604703774771379399637200413520678118712784333899109766922399742729874817700327531533145935250996892116514282865990252468632998352751580740819855846915500631790001662459472864597822183736081960571003620373473755196367402054778253701149689063583072326317222819587305455622582692543412499511206762839047307230838023522892742910620047011895255177056812638324573694882683468125603936810093740893949414244416176554366577591589052736265452888206008470013357055756544319581653845817750849382733140585212701302952782001658806222256633901759045240680469200615995355691826061838206973972627106934416281574389559057811668931851764501231035676048083259783529279840157692277145528132876015726670787911878487625067023435276158915206995543175131845305065619261192505077037634791983050838947503730867820967911835601831381245341111367945182163875870923617233905890364930484954004302792828749699786953385581710584402793169737022181190696819937261453073007610522965525243014475403168400460329265639375973967714172917163559549050556094752037487292394188004006095586405435387373387611179197427976072434718353094796111072341984116836968431569980804483862806270771268246884023281960807313564562859082063226342400856341075804289216524759861065366286446588017906808648427176425760343881887689824135378910220948297157076168417328125209066885519480238205340285253519639855650541640267184021011284700837374694832283258153017839896139171565118693573868995660429938751135396192173122705425552261698806705367899316047725789204354967275777766480804816973060866718273387811078514089921249757847262769541732202763587959434070512182447395923793001548503692764010627769397258056250873269519031135640811746839195647480104545427080252297625189618167453494924978967954988683136620476273284726619570421008128026974366005510345099880968941236564188897388059866829993866513057421740693469109261664745575080792547029327551524390327427196776800101713137990378217046817746733042681675490669875948466340690345235459549497072973942763651029785342563171457482858476572905504926665826609640434015043180366407158336863086907271626909178872163482275446078597426453395373173031018282538073882684993401592829397389426826753673715986569193402555883763654870422274162660823330500434671506217624015671472767215395331873871851064863575459369834800958039567921717170721652241154508923231853209019343593180551248256396369322893571707444415948053912968071964636628114805661661127304015407936113600178859170061896141687146695122351936156055320082416664838364551928170189030223727582651781278548749007243820113834555207775046262396904626385176093002432182212072171259144624272154531054135600507543001385781510336100113966970279576986463180275406904110905205464221408390013305395294825138430717690273221128285156560257457297499445110376953529422745568476761303130934559996914474309150756250717609693168474353738810656558669064833916586107539633795152985861568694181415579280611835000057807415457616827988094573792466389834604000279792609084425889843743047066231158832901475954251623487264288427225844906895776247769983319484531375447556402147182357404879149281822635230235044274032193291121246525579108841732270342259127217937499310954591214963655662237455416337236298782430133823590900735859618054496674018622651752443780856284736317382503139784285195918004715386874975745449899128362568088689347073894022378064078119606211180960059268357293341503490646750565631570766884041803389931384456785541354173611607409303288294675928811047614393262552243376434534401112502259215790261696104691848636969509172493252992613906201490189757540768831666524889744112802891304605659739897560756077473009864172439107634142370231833013268525435311957362491806683732020780301599661813413656346842030747862622618434426622853150983855612401030629904946921061275810564740984679321895343809650166657795413670660028966887228931246591799424232804917705627393988953375335866683046431942010873558184325852254796708743169497620733271689085189939726704360647784317899461476566761672170999035151555171669085083429652420043586407980461623593816718003905745166458718710393893244036790926350887095208016726017006182551817544081326028573152945885996246610977153285893807048720159184540888049867265765643083283744025014688088364630568286483738944072592537583895015664288107913497715075206190235445236669624863889778762859607295205684866756392613386709279175927902332045330047962977300807482413819579043029456339015145891898795381592161831299183279788493571783492808455785600538787899744677696923380196455843452659968823870545095570044574514807027087840618150500500343242398138284500359395002869242676455681949817966137245777821425864280615219944555129591869032303685912608699188650041409384108843872124585207948479541910734530556753480414002366649041861190508054109882900523712179134406647056961960273522524275732857175438963660662422558053913565921410685719281247185407360591234174435014413974169120513255748814249229380381350828806993617700538818426545683802538727762937746743567539469095634209068137545192748595567184439304193369315702718737197281471829196574858455597539589897199113963102663732277856137596189265253076485793157872979658975827339329703018849740001993161633444337788791571862310807573498511153087565757550745533376510458944179505785280325166566864966877714042440343696910593472115278170033024690449837333270689432116575207020338130829853883401092428467691749456499564805675749256622135812142480884273336220896006285294377994973289625141849586918837082002463431752371020176740136100949522218111649307478729981725017892936869239942070825655587249346893720002403527639785923106805106120596360623229375268936958412915628882219975887523572773403209741876594204910008507090163578944185580255038796485386053961273679959751644157382727740316138710634604704037446612573679018854544923469251986477942860645793204675359578701809495056087396240578537250441878699475759522674764676492384378582402667336774376550433040635731959966597644106309177547566245852933512140658480726684874655016272697524369561698565120534227142963546868081806405703470939467262513224076815809110776467679033016096783066955504655491515099227925696279690900141336508302838703379285409391868722584714303485774435966267595165214753300999728658391691517255864392367101596908622862743986416603042405851414867783106630581175909867531503153429656173366802360845523953657796164081177699182001995180734277027627245654413813033353639808458796728150597953180603616008565517319207116580563897582275628096656039307645946959581909566298044353582967067029518341734939728547801214170752319827218490762366572124420856815966938768420129037440110700893725109072988372297577027009090175637409223025057830224337331920285477679577327993798451134120010703661114211759269150921701105513076534268394228528242131259166998827184595720301998334231183681737329803541273734756873007570041271111413653089453504820516067862571988638488385896023636819342035527382525876727320037127952548197120630220782368761847957880046598498529532163570256904842804048790093838651325336639436139277909182491384743962483162274120347419868189681126754662294010019675014887650733311876991731925977010335238713588250351471993104268280025047575958702409645196258343552531632941905064355162751514552649727737419260245647515155196256996034898392402428651058625449597051972480482442739487844949449474358119690527837533835227371594402262565773025339036018888876807641345775481217104454856922538642813822361321949615409816894156818818245716324159910289511114462272943518174616131957263011038148102057164963704887842791048141577611254562022477073391570079636210136148920571072140881503387889060166042790303817233383131348114949504134643126511467742915665488817036290026256567838283554252118732079116584299258470041301967624618215070966340774311669559370252859446214469853593035368669943262911708757938798406733772842585122151422081822888576398544871864190471913781592110465705164014801271151323276621391514120155558554801226841217667154222788674134569748829669717938238971731086870219400847370034382404971455566049091474986993352171919896401501836139425684772924102430373883409265013684732091767142288560565500976297052641778582451933494215097234000577452821227941640595485500576381971654992966969835492076889965705338099350489759940993322266864158810282331263961856523490263270621383438724435554842030701052404950297400439766521694887238528038010120000451541198507032394110405038167387613391689475739826778499123255356358202161449757770875716536514857082092921704786209385574761574310704605439602996556543189322798154949659411398810171386219546687650042874736749546392248290186937074819350065127575479675527049491479599794659591742942521663402774272538535824538398593680623194658005810461811820144328968223063959069267163595717254271609042358425258976393567038673193425557166070929410005273125850763611174392648361864121994437524549790010114795056897856787777520382920683462837295291153436097173398586483093279918623628531444353863146015487341262249114869506123517755694857155538223704213838642376589259710950599787892021677257747001548089787736639276544031877474519470631357233112582810858894358526302396456030674569845143635070162299321558671256024692632053205349984653795324315650856538021999684011815249592628848982630780392903080377680852711068348961510913497916199536651499576310801384447775902679216139513817148139792012138496749328169416242785405756701797793103225032790373934582940455890502632904517224825541222867215642715225562590478830662624886705585960806787919197308524332338438619472344982987664400934028299799144686081299761349654508624643798834108529167529473005872969600024580552162153727048817570329533392018659059692721597492535557604019318602736130106604018522056493701377505685851879821536033839054874869300408961658993774750934476472256656896929055940894617084825064868086721311335009688876764421875205763712726976506356415443662851109347466310540435405402231001202981902436744002667816835978719055684885886735865447440345001073670667505832401534548016918096525539968194676146000945489016809405454865810604160099929794942742189827485896420365035988093548690618078133999401004039100824523254080163252099136809073518381017449091399612755357850523624594162709847676135823622235275621611095623387119438922369919998831918250210167298780370040686029075407286505972084212849179640254003059261206840783713564901960063816666898966701807078773816027939850423880316260502592793256861860957324691218177571193428367629897944633503744600883523811146473137160949183695156296617732210014088179460150869575500642220298758367457286612623198618646458443648155088320080404297162940350034145617948823662214361678138217412859415386477277613812112442435191589794731871456676367942127381919955863114498644506630608059464543536222083419478476746509308502583631534289255069243828081694909628268764941757617424716383960354370777057721757799711865917768974639942023663687403278037583890034271164214720138677233483478934252946732865573066536009186114557893315133316150871335159045665908066912386701283445216609795070772987295416202782481239788713958673423937561949220421343667260701865276328693286543839452419425513437593115367702494584103109331653257728995040896742765249957110938436435848304111148648901415559464918418397326940525243441503940622381304411582954640155148919060798683438491255168106481241284828380671419971891412553416734119659784570939208920778463939854776579264223525209552714202463236258893489012984153681382029860435507453775746531844338349101942141132952340005396691883642442074556090345211527419569004572369338291227404830048678043855950768762854487079260275627101708076480428822389551993857263078431376663659137845617150418565171929340007810123882537220242034651082282499117202120001002209423593979378178000749771692993180951283450996367066805099181884647869111756995690529446895812184796924627017971101700866144980057716931619370411968811665303812284469579440019354482086322206751555216557140820141069813163777813738303545219905503194535312978860489933793448250824062585777159113274142764228454138015669366651019588372227483381199704074203433184448461646811750814338121504830644338046022669519222188308149197123630852838836265784615336268597969872311513850389624628123422886024979504348451925632487469651023122593435495642205185324392072846435481163575450244069257836287395219838588311672972824500079730126382416364694671435072904354574503404211399860193400546158920413283902583967308077873414255987538596527417837518438665955606830897318708670190871720683197352496741883752248952649208413060188200990315696221270633473232158880572443208457608571536255635949430312780243116089857601427162348884419890732146645665715808434229543559160144662148576037393957122252166171203761849933485594747571246748918786486115204863955616877536680572799243892795525243236648322608704209461467727175620838774166275785547148046097216426894596126462714384265198457254713429695007566075333797120762758776496937813162945137057322569916508849173928739693594578495903408580369348550018873865020275628000477500661691485417964980303485405815354813420130352582300703051823756706080227055223032101184093528771587359163453974313385703995773592484120281783500982346222917785805444802248950345825060057624669590645033891224465178332905001877220409609308127568923437635200946669837922800432653955721249094250065491091835155369075333896360641270896486623353193830664975811155597241818283287529215734273448780806863201322466728192815355181865638735753304859293889113024780346925172061803664551925043165189544466332792120516700331389326066545475142968059862205557113395043299417440015135906712380596348381175276403732574303821258283765159482223863564845890271692754808784939180809348698095293873866460051288260234603627253474907509847149899906174692905457585989897273776006923351309060835873596839154005002045773893179018110936128884090076620151044319571273819894355957503637780463271993143535069422145006970248687007227868767879590469865709255083112204278984931463947140438411779952157834739392390128853389389051318079409160133655366242783564028430409226871867965308476990078144585710360145982160639095164509690289269619828556544177020426066023395820541043557894387683195505793582201395949147107867692406807747769999809955683827345624562618607709341542025675375914270853566785032538560326962542734372269482456417561574307503699590737450778618004235634650667996883669687062421778195959448184378385664509096224615971602545429402041018540988949276115535756580442623342207932402174363602301355355889108578269861277133537599622976607460141203401744175036411460357441525079812820564635160658948103775640876303295035575444848997885081980290917841807862593316391342471720449545599740323633564899367349468723820096073386234800776408603374123249731075751586024657259104779508524197416425776510657941732073266687617885723811530486002054086375963225095487997807771668494221105175861575221079327452081729461989903959313647597544567861467813483850111744408750912780514487840251103729733853651981608573981412315004138072724245527483744430510455919618321730456066887440706029652510371175648975620231721284636943374247813530447276497181918383682011891423658900839003650697967332463000733172208141122498546791451015803617012983298712384965980115610490902367460493349908234443268071820478879015599003988661519402981806511489337632773422749008071747555706177373698541555679643056596038335732320466525349316732042550891736507663578981142010795277626698166372689629722695748312832078087165543515216924019950309317451936770957025046025799679376022476685591620502997059179507387883126482212837729218694738610819002601186363872343631280893394711787860532212097006689868293372564709028060218388111634709807004664431638038723259378085542906192419502632792842428339489340043979413368525228505272694898349552069639234192635568062574773925636359234475835566462675252369007701583232195900160489155401266702405788745557620899979437297035038851211235256156762152440346429646840821721568990873390439783542921423367709437296486441370230046547248941051832982782584338818023134082609009949017031201968917042558350718690875270549466007656456320999076459803871574088845303021802027007567538633720382474175294782175786478570210008757516603489017206215153933313725072773538993979441807263939005226936926601108657517941653664986013132036070491783758246297091036642240475148708858484778075503831207298574166826287293270916094313923101328823412623586269007414662738908951637821828448263623290081209614620301796868663891316381563173684338049749352508992611900134918673110835489526138405505410596140412505272647230784337803351922460085651862297557079493634302457156780240295644161768151725509390171600860292707789456258685089364581567892086478179837508572135214108699550261472438574453092566361826282085893069708642705945458229866035736932706157218606459529173200860330700464813825155937976214102512814504131874748294335318387363696916345692484839542948589428936891375037451085998695907385787760638483008210858660336363098085043672006534510058102273994274686563926480584252212254728149615787639035149070161095148975414481874626253333797018852644843831369468992643499020475002711128469782016804778756073004244237995420735362645848202475821313252879718194088560948389283923027906966594058518206883985943835892797503554618669015990692299963502251646667750596728698272595514168124825462121033823274657415653614919543169139974957934736551384833017793913843388978930897239488585443033576255728191453480727913525886666381843695427723257722123631008040186991731173737536486774460695487469291083923235059030460771363024057417570667162863732711224694998217983457402031835474352359135491320000194984109007263682036215459550039571371024472152543666213268922326237054934737362463041481900837420105070047874470698774694461869538222385039107787650375983957785594564143501797518322916805719964292482569729245830008775435986180856813587474758619198176742675091858531643063525873975708677019472843692370658503201723226030316990260650133488078293796953254242221109482077751361181562460698100414062730747138079186644704581252916319622646447710801505208843406173666621614054997307778730949129512748066448753865702463426312819513959916574698823139931501357108176497488669523197333193086720902445870692827468633355373748379529386595844924363103639222806480137574515099101416563870040260211222775746224224067745802030582682861394004646623867947037576235476480075271772090242345008205788307709092085064290363892667354543641779911922255723832371946201947653394829484344047042980371708328836755106915523764918928948101233567557519824262272656704670812628202450592412732942493804339812719667430848749817455001313540772818659859915929787966498771769874760836963508469080062364305238509227129906390826107987094504554861269230608007776723180797038592709033073730967834317360805312545754280822784473529776054667949099654663801874273538864821415698099425821147770384168988927918189346985215989594415785498896169017256120308653302733759979738382505316982279675656596142759760326446284989460872945342095248403756645176029873873138452481133905540521599674163964615930637264155728028990898574621061740042715691350650716701975984220157984818655425986234454266182857983575589330381785270647810352406335438130938594161627671044229457446959664195800764989951628387617075861362402443593334277357133693099185889501355050176509269598819283008099344151965109517589592744667256893046034077868192639271797220839501325477212123904240234785555320787622346035332076852794174393595014361829491739939603545307798900496799946062346738485062947155529317838289828696207336050239965931517920176126176183583878737964274862382285754648162679669408069410092757816497054848338155801285855037635496180924812975155342492664534243703239427787280405520459736707834215670369265740057237190896677161065794404608461840977358016314407710918703249911559387395912558225676129539609513184900846090996593817441454306128464700175876658066131146510979673624333373796515101863061817921102114798184427332294631999874935037883353500725787147039284256556832417431937794564251960851188284160942447773273729299896579440595270104726086937898204253484471826637224909356452301222592732355606473165288839409271401025266780114249604656517024256963507117212880270286477622769193043334728579199013910695590361540393838482536865382061407669445390752826682307372192609840754427171129700247594346934314224779656185601330215423036013282600779440353271724877176850785729581849108952696054462964373844856412389090674090518653350117124245655760422653304139273202946403362424536993206017379482365177965922077265477694524685836493637438141737799001579239238466569522914369537934274674941022671185222699363664278101418486048665353852365482076830295560570419470029661998632307473936772239967074948662207262350553287334238554943542272441119398507787374602685703565131675797701149275196326972972651839428451356908540783809043838647496872174816553309161274226293334728819987554497786808612081208974372537839809046928827370936100219544141945862659621551104079581731788629534208242915205296213524719756918154243073234253609183130309824386381014954776802676051173140364977645103596074812226895327319185598728428029497850416986898967726536866876401868130455515832024122181376225527433124819481991096324058576606531850104874068043266031652536227542925806823546201957481454685187438971634218254415167926876090483800072105904276104433530770929194795998341779749656875459016583468464217935169104999808640723365115121233389335577933381238150189803403436549886826260663148305516721399675379933851213064144267970655906744990520882957125126985175401352075910756235043012619656476349458970600123858217624786736348436898326368535331571925214707412492653041237682053003592102500516869751828231446466052404409678086510936619885320465286308803754403803818940495020384268559126227015950859333325574895699351771640121370714028508229367094059242976894981520131749764977592250003190069539382222859891407426795438580348505060746738583677264596136770172327958710528206054834515076739239737039423690624012575254882443932940816345994113583731257520545019576894133846340622320993693441348963407632674656030599753435352505247955819422005993367155294269972693324868908892789636125469565973328578517592518541496212195060649059630417303767325168477815292635080718430913202588765364592691590563337702613107408433893880044441606631108542405165819520251485166234379480336438817616024513109574021295718114528101029672159944449075048344501334323393451550111619367811199824479977888679454534234496739486777015525074043322127352654909266997384111206134951850661165353871208018235461157749819690425731060411733134128687375329652442062478778747111225033804052130006916991759377449908218351269227097528871773313404352632286087656901435572418577377531947649224553470523209970665006472605043421172041697475552465423957632348259518254583631907721451568566611556480928614977239203102849518667015371293925615876586857372008858023461253429932000569953875353081735743988029859175799259708364445316629033993895784039417971277471788236095276982340081892339641091836947305900141432153661523031668288130997076527329641682223404968940994784051280158372493051056034089862640225353079804261000225101752012822039757649057378134418914391126520307437623622964835272564226752058426525339743186727192827155995183094602310717241333254380321389898329302170475748433296366412830551719826293040677723592596424158353676665440489569895815980923158808575718563763871595480596991455499464980476152346645622027997179367472058439807701288841483278150127806194430818728855467863055510236409485565641472684214170355378697798730681144891154567450267540429504998191988710867699185425392499060997918008431045208409256909832900638834899704565020831224263418616397179649142822756010567873578452692457115904392634451777044098495044491409102829453957799977930629830922723733478625293387510213570981890722989521124370984627600413220568833509465580234737944529485685843996548261361778700762125562750184065629127805998577918802461917758765607108932857344827285524481551375411087371193301069558425987345354698194135097967768705811847880266546949231647900807259683865028010530980867580880621468675863512013462111285153081449117318314139653617042954493597708518304252399054721031043192147648704190929050021012459561934890866367116008917688884164151219220498505430985094393122955040246418148451555364366911812333237678126055634219159992048347478038059684204661277182942317565704836659632034081145469248052668842545965831639361675463692374276777616427752975536298721661541828354848598919418095149538857697497634966683767879967821715334820146144304698191623925083814408295245017863634707824537410468506978010524348435501724340307656475462500086537424897314950377341450816100182273350456746356878889003855805809913484207539269105705235162344415911868351912280719748739346927762784993011356731860802973827114685575693235907979139064861975423150165281284791748060989402223757992505647920031627045015393553734436226848220316735032500585694835925955976462933260274848573904482050152734122843369416304194000814167923208087555946810107171754054921761478316635549383221764815237020785140410475183191809221122549773498436649344465346281379493418862465203281673835805884892501899062962920752957361794369256227013950447054077467743393656827762739411094407600137266694578777161817476623421057598020377071476945671895983419066755511526765819905324928350549156525050639646104536794385015066757106914953353300499295091501709213025398258495180984899348141578575836671158697191335786438086575969392444518284018296964633210611876818246946086380580827921452900334147110742945833846615494832317050072261888425997951593406325992581051488459920375313994283752600804742868512645069322723617397746001689679770660371391783020960891531844535920245010442867326421140218937626891212312777196607593000768996105208253519941938100886916023678766594175657858861545720269185338073526026631444061349490819586674511264679495853935859055990189149619421388653662516576193279589308923797166946863409903554500732212625646098191548447609071502226801527448641308926981146250467591862685718651173805336673104128948446771716227228853512688777904365011394991684402948440358238432707998743908084958713478433300262830617651523331927125624780099831638230649620242742310915989693154026423435173190977454895915373477203466787579908356648670060893216748067087101389844241357288839911419522520824240467338271608647880166233576387585807394641046127864739904185493707407842192245669720603987820875622109365153591849822454718952123594255831190413903474584623333647625139422408872653325955217382512403137824918865830332776741388616804276404718987502867460271586225340299635503859613736054723024019860292216602231478768769893529653690902989417109229914092797642116168499450852110938145035801895690798832321511722219732079331215934870306087160392742186717230694296304816006185019580903286039488149760737245994933346811160816569730476547394144957059070326732715759293326311549962371480156030826656413737607630578502846921993188852106815541407584933263375689332642048419652627023163860072988931786446137471093460744662907549730348325514326911736406945120202112768308063889894041321804783947502490690814571039042536010300650313673228369352099122413890692268883444781662875214548884644969287479958729457782395706159228631566171937542510536623070068468661809385391589951705756626074437548506635229670342246443982481783096602457977031191851420062406618796147260515532129938832378094966697988351857681886845924680632054368987920024841331741461885520886978302175261674532737827176613401901259027167833738638329428651314411765937828949057064199077357936495336592611351883631000738128891795392208558584974048191789479127788646981774133622774739578928936280502624124213705275353017186209026908579248436611237619118855255232041284333432009237813661387827638732538701085939521076826499367424490043780773226281428729024801745678012185789481083397562272032021659632388953256551328728736647249144131762830832505206646005132468778972787526705408840227140988584511181926998506015389457590340994417809373402052738037157146686532516542521124211326383313468060542185095454484649634297232660716249199697711195423973226000926872363531596728363341502499293778829506701589883600341461301457037654729793089935928187909947529623249354648636882179543919020362358561350743481702489057549860412505525353762852507942060722465254966634902550054933429964343488508247200810423269081686816564443114492485176540255255430355478531374809318220717998924723684824084175642123882023741109661308591120035270235165426832268908439103003162957684913632798099939498576225229687690525838855033924166026841465817523304089292308100582136406704141827961115135416872095883213501639410787500663180409451871856935369464681091462279958188165133204683579549153374125230448629726847564730214058938014100189177384964120294092562890245204151418914771923780890868977243786286459009242446150762987234681572807001019641799172005898608275788804899421225449799675295386243607112186691234495038119609938279646198421960648689358920751201372751555277346821440420316330696705410486553686525924347866027135085832032488442293707745866250725122288004609570556429366929825865200862339992979758106440835868266265987020637422853571215365154180831325019985719278263900429531117475820287090233379982782657595858486159034637859312290656187977710357303192462346162929703936417268450858594110223321385537004496143943799999644073592403263202970254555547308185950742150146703710314540669496217481550864452703382241625975703774204986717509917208947172504730285431363543421798091190846531877707197878585760901924769650608604268796265480674478509102222567439390331208784094196036513052651460333863420825109939652885331973890940215704607290844822410891150383691713683078850307873024043098774949376755844616473500762752473263516385204316815525291021538892113331566814561748122333086533597373449677502744309695608040667351619622898612086005735369350477493251918936700086440407463030145065444499235219718583706108613858898179782520369871399465250135154309191766490731200894835332662043861653000338760696623376863314110231059705444614057687552918793105607221984892547745020258499435101975980581778700567623699837297766134687264983191658077167364590287588090974857784686184452549828539846805967602381825038490378957343077161759884928435768713919403768299113315054179862830910690742150860132424964219364081724271518387154352028010050637787150354938678823718002129928787277530970542629696517016838072982277919545530741160909126404565070344222501781906771927051527751245183278565774879582951069672035171305862287036873529702203342065950603941898535884986245901624616984782540490005453303281988347547716279741778606018871708259499381003463568252680645300705189362258003029105926034107438313616713890711426734537922329801983015696964848343658504311820560690688346086727103754863419732618509813787439045186784932167894247205327404835861596835199501502765061882691479451938333438018621721273008147073858490650438234933100806023869270585367676217323915944455787791376003123299135669905225986264495207970570216049454673353726682565127338706365719614636171270786898152964782071515819424459302463745062766223542572150962087832386448857035247885637666119946690412892452619602888645390916107972601726989839046677338264137155372411341946009639085414970748132308261436582260367961260544294536487013677529005157854996972505893987597190646726935645153895970557181995084219714655990573432980501462904651592866139514214419788821945011757302853408460834094437604289632660242758560076726961597049878383582761832964379489788155984312099887919178696287176552310482550847665988498609824111721774577319087795071865947954406996902815597410600337648101686240443629012033633138403991185326876323254235730094789047684857497402164522900536097617287757586122614814104546801160375922850084686576974443218563019161234113290664324846234732181700813573728321347727761003472902992156339359765312664953788815794556394687377688768679455312215277758114854282039074920740146929047780110048399463087592206707780602909875042921868394593225524892925032094829697556472310062416482989235413387572127229070763714989862863950202155100856339421469468718433915436267511780833031005395842136804886703593624829907178486045360530783048202190906411307181292241490689874654895827666248355455081660239153409844560093986581215328356781058996064456620643069057415645475615683878525052926501345247521027773804469411736821037547565865762601184916653618299677667653244585716839890217055806611785196741358944522022338625972630374817071488726994599300857529993226743723210336625488262459602639072631224982899143268357910448729039211962635143685058411589831127077994893963725919706255647389621864603598478560336099674314951574026928607787924021166458062088708897132018644943123996693867344817910590152245513240342580491237771700188919531076786173444709266141388967035745646338553081343230959322626599426883011520934885610303112947163658628407242520786131970852691311112998445695528098953125936158356143668866334193998837775234671017708481160883576953874428659436691405275645587762536784254227614503678986607858415186201174111186168789107527082769324613809600214551705376564363291886531245647531735892255721930126394154229337358447611285624438900150638835303944345085218359302433683378649768777525631414284502869177272570063310416475391090868612566603134767244121660928974739958014786121995026675961175852626100404714201600899501938335163624463216514769089250816600513005893173278081833402423423428059009518776375918135012298734802439672626620826496156089548938967516323944911308191709100301070532854882317475477908580648535110749139345203820575073971049010609553533069507304470799746534167290065875851088024384003176078639545316986205571112357045538436535015618284112609905497908978310435905817126309908732923407167106517843201275869187460673518603784492145222991013203586805442527969435215929469175139090846213021791466819939262828793305406945809501944979127650432593388485519114629923430764602234894495097201149929148245078727711127520486654701306660931258513032850328840576925099405182880419047070011530740535745111114321980215082201569159502133578578446304874146993630826156927346350867910421217106704305567832843656378936195669943822706203945601187383800965416476698675490100827923807004698575493275658091416463409251405838481718331072774505874040899696549435528586003152548857324302572298017731215889196369573018809708397295229572383901575028263836130017114029737559032587374904881364928832605727320627219000924639381322545747536769098672339373753289748788840538273828800457398821379313466902595041828155706396880895460650660071828799181811896690974037613950664803996598122579450721296409607660966744195022652969897631134932908997517513021392241130866749528271371254399823876783853518875458536972365913546213840576779882348309308756673125971516721171207925088776588581803738996765086762883081694404142982835305181902021325532779971958877571302880947610593051079401282740604164833241906428612530448679035162322492953278385011371701698454240164441699162762088595793523149244185514181586784365335332073697337109718009233717892872693368563538727156358108899203323136794275596009745419668467929818069422313721708614706014805204649830609328053055817648675811185282623551795177461865356551091032405181638210913430345682950916576134242867874226485469812397800560893973559473612842322860640905116547794206139116253757813594864953360409624736937452783453937047470001854337826760145738007904365041043733739225836738894850436476446249616850417515701617823928666657548169132424601216179797791174120896095741700890762455147405903322236687291396298701128234314452337815242975636652268818478335988448560707663218320365480610630884278794026993018568381892427657901812421866572186672751327805950381593939458873118943296130975909495805630428263923880650175583746387707987849043947934330652828410628936928200054841005656122615451950839664240179635882852379198914401397216298375777151014836276796835350339376154333158081229838299014037515822581730335181385047396159555522911423090746165527300070973668742677318863707372789443359667278345117786942863040293323919835222956753075700657897912279964917558502647555712407165225329372557835436089249039943001260791365633691811222365797194575006226376264053520914144164882467416804075995586041374851733461183509305430822920868619734162148949859061378914054970947549492091077038870506017570557972739266083742584773338752159945855768109434160381021546126549913880101502928598112726350990912467346084808658725863088633954421186799989476868405241267767122919802972419782523116828908051094561027979955666213107467753451006336996315246087413727673598877047533246185019954568709273849815492054197080210920577146638865733849216481663009162066968048884156942207617471839740012405628629726860075989470745952199531596652872954010628015239690348990941138269365544056292883010029489804538835937014787719751401241435594163346786708722799694400218707082031726461361772890775540871787354524795397146500151741602742939213851840270998061186856273556353927138479271078124441967741338563559416821893165767024604386642167248147170984477628335612326028905173757531273615362937920507897739082760783878520148469406319474897098205261492414150806100033884367588197380751200079133767893600715522830879113793044817055689520493824032003712226440391335233953475259574389232299091811345843092638871549834424811264158635543104379279021485438760819879275122731834441364918990039298400670039157158947437566607654581107810273184346244359285748787449051566740795376239155971551204303465068505055182190045739740270172448306991552133720733957613601760916620364963143258510657165085503888655576421985712521130808202188317268274877646836354032988595875811848209743029594894902764217516255398790239021183481541953992242403832379237332002014355338521833911052796415863983865108537631839051851880514792564082829193646335504016869040050613800219457647586099871925181152836674697170877778889701382622379680962905045374012074440278502147241623094220433622884233132304271290389739801833205626548483243296044469925731339067450569560921324252928274628199768249906026617295619238282533798102334359776032368879035654985344241139908692005182717820548445843139749117572762204533008826320691330607608415880230276881764807478078030666031988296953532760940474410191570137088467501640394087534884951388775147386714754058307840110041154886703723620523135331830296955990035703618101758422955595927593358169112891405551700743576430490164990474559431094857326250910788125651864091530999983250169146162590080803057876808038065261926674110275427836453453147318808667550843732199034297270201513963379313796201731654585808618950370747664171853367655639348540925651826292174261781213436023508407504294060832495495825064816662902272145232975751228112800002727958045019288914720305580792827246722094459067229927516400562759306443501542192185471316230095122242626907856978239832430199740035232654048053492674934587581553144549363571249947558681524472323183261284907357524029493774455352746701289374589267596941679257079658069994749901840158901889165177628580919760322464956490021585282858084048906949014167885627334011324144453171025392998817518556142190983900957066974707000234800605971728575019227009943105668671578959440325926171519068059188859954004711708193151815759630482554941598268356042809437991658397926427691229981841390334246028992927962920446697283576131630098288952147428440287919906919275339369657641881533382002531242143081402966746874639858184776221670096365061578783442827532263599241066691328069964261878115547167448202513856333702203544677285188650774121270485353913672058791530589400881220890338190791263647352703702298125287911305078471911032827597770263948327913957076493965202724721379738119926925654918394648649174982761785247495632131217420540242527841852931482015219663198926098305759307946160921938371516774061243763194046455274613573423718940009624565260783316878191362117993737469460787671842651805885182281112560542121879031430760755290655802588417432459375842228172191095055485589751464171494463589224117221738000450146570448992416795746727346516614011693087856313990109027090585924498318786705463142824775305131542144763300795536799463228605114171296188903061551539201209339799066114086301675788577678987307350318406190547025312650577171308849417950015445233891706531219900041275305208392378705621159413135705897175030839756721958142201369756659867351444417715151986306647112567103497266696951718498448671126582136328622090039325116701374452101008116028793776035874691264589522667682415798721116408573840514358404155348591501853340305278954873065635406483805899480387705841100800353090310279100556266192485187417082525427301436905488659597740035738496109473025908042397143305772137635157956590869869581502362619418885833606211094351093075151800061401970237648638047966448607494855716593567675422692919424833355231438321042678291667558206368769089647511085208996852448110680610091301475640563281831874310170143028912668278324192722062206927144792518259966159653154509934356856069173400594668141746540941907836098800724135345176953234153988015726504781183367250992308667957290513854876421324596644696285495567875947543410615778247414205603151284455477917425959114687266897498808271102902897895529934333507099235669028315375312606871391338136984814759708499835138699467977975508235333862554903638092805528911200602517371488110537197256578793384909019376230665851041383810876923860618671652407079015254849945335757509980219704705016954117968753969486949530717972343013595583034935853537520259935707752356683318422900268269067245701629615565486643088318651855158385388622368306888991721061156509477034813421546835138379924479679052160506765454668276718622416764603181884514791876757832959176343043424052858235190237367397122355080265860417667509301250610861637112868890457870382155275724466862734499417682429519043370686441126740157388019743724715178761554107773283889832163452982604724500153167952394130216052318313872404051991070236060897763073688556503185854723775168509341613937587749669290321020108311400049694857803973791129383363384730568100033284240195727402691801363068912001093575813986169173052685809110589776342207886110401030517767970235149311362941853768164013110137865306693081752301298564827352269781391878475006428944547320241288721568759428431157919738449122796128604626654340126474561694098705929932728042714136116827525369395139740237212250992046009484628407973410324407427613373013639699722154888405024191610118775023601121425163182226924768099387614818899800034106729634765548252256215490883662738192664118505009219498763565872651147829889837375367229425869391006828802506830506051770412297773574832981331718219590579308222459534942874539907184417290174548068179091693658647601222334896176648722131464927759911718816558872590689849914561924993940862485951985125199391564524309156871174599541382028303667169527780383936501289464535423379834422923450367059525199213290548782404171737437662697363585558424318095090394499268481914013077610176946466482334072371364368667968472447541628503220856569949187175693241678012495025754818768521555488521533804237621499855664960249034043391495828439368862363434817476572834038691407647667956797741732844619953232549719575875276624471698465912766876585875982689623963446175910840459529334174372425182166442651364455686923808244081257986440335601232016676115484054686909755746060638437264164994302164782858028589590878943245779656402721870829586745973261069437672187272247310193731218363030728628362234405886347417969190877374317977234297053536170534766449438055139767404371398745466260388779514663794221911567870477337252501024342535354110657198675581868143556850179885986895065986965726881818668036215685417358924476264338167640393896872346376634181558091526527489765341434687744424051514371462319427114819488959871078770566068121317708657898520254630012179814010851373705189226603729582459139979088105906163394523330459068583492564679820328012941598768145178881020913837895350130246642589419955466970036907358301767417833785918258321279480983005504107698281090535132429966984606121021044138298671882381390401010109948463062479564947113673606332842278482199166525958095564013927655938216463053315852113589706494002768540304180737076631648982302936900379660710627880582737723281148197058647701436464058880337166067995700935903842578939197061380716602210976883235759969426588261861854134159255165508624931040670956993901470785989382255334013960898692098218191290331411178545820106487830278323797769447187414754165812809868671608799598077348632951472030828241127009975091856091951748595999672481258744242206799168310858295979900377071543544312002417964054613427653493933102918505750600331258573435510198613513971192251667161798706809091674739209481553462964441520024048109098104278617619120721698162205020372676550147206022246298962147985468250684147222031261810077481275313178622477539182001863616500919215003928425484673777374354371946984743511745792067379685866046512589741716133108238063101103260726963863115427035418312310003617437154473900221199499099039770663895691246265411173853942850720334425272491825827474633012704808799042980172584272280913823535238780541764963294868274471998217135093590609369673870402084776022918824603896068758496670764431619821754645584093149464089618821741989742660412197036218474240738715301888747004589732617318198679993651588594903546587815659365114617897786188767933519089281993915786017344338967402579703066244449819306977749546838183839146633465078154461116508515309857612568676203984761214031512261185733315264594466837153849153068520354072830979492133875413097173457194952995841135499175945605183347459785994075880710141590300360265822474526810336867663536401003023463653107243466356291275793108868820004929789586462265811121931874085853460008873003531714381601273516785158449396152839597314169196209609050867378398557605205119825611506817803664092017442364462865973946962356749237262686758679694092947729558767104936421872838831854013502917054693833778805015275384430930129013853335858764916624249045107984080322356699584631388018452392572232047735889976231236185100448346945916393990335696103621476152824975652994882121959355907948205476700177301139222088883195000348059256883731395770482676124102809568677156399975786988259515135885876660121965341311817299030424443889285326305872928077727537122006510082416603103822177876241986381778945735883082601940081510429952620553231132193154547777875710185573195908418136157721499186537895923366979289608395529322722929950129844541114401985098387061974366508297672212557661871445200240813257829845592227771201127984099296633023753826023816118330517607330228012483680709510886924157825199445785025457939664103288122780958051422805066264196150326630026141954328794687605044418244806646596969951873775225468543780363493768584018119935075613047049320866149915986572636340031387361608857897643666614666113548268694765794571214870010572410916544322857089909242221852646378437366882938600414132551992583984839748738001798174326752123554834628565955169431442001866792489367657811005045041769502525943752440366797341172789500580771297645070633904040151048813046429647410628133311223802875161493314783037085691131643474929668335313425694345422908899506025175041694091244099742080621698585104934092880268366120763721364026300235433998071668982486335334599206597604582402232940247495981307225036565573976157011011378152162831302666253155958048565593175925609345229447588394650298786486009363288567785567229820610602398196956506405268952266664391213457692875613775411113467458262139799159284426755843712055938552953435435619062509786990701497420967778717762478224123742674005381794026072051784394419538128830531329858855787425071272448775851304840847987607637907659688232523664943857322004836965902578939216289282413311801253563680043376769141447346812914081868532387123649671548156173281188278179779354039880716561662890507693795503833024625170906672145828931786450916280620639989152644365461215575960603636842329822919165061310592297403682896364463612832201377942196744067608842717572315878433061441685533817167377146951256720137452150871142690748041084978985172311126578383456078019312434135037179825581605015823448029365361491389755489025371687580565428477547457349483864513453090554900696034202247976019947513817040690128978231827749852498531052086108028663072106243189496728448941029592231915134515538429359191587699829730879604557253414185469377252601395501699627395939081271376575997934204159166526015912044334952353389932454547315317728898569116125795450782813041376896356798264927711881865352287731441467744258004427522942194131264554494246316241462744844166241598888727634336304447819540722807767672105616837882847094976510384079582749175872390881961614241872525681635770706069071036855615621018638651630075131551761762695904452945782648256271069788517815368995995609112050957225534961811243201466039977892170061194718284372624107945683391958121459693346530985270980963567621012221152104454513371533824132200756025717493600195483139301413495083087800834427154773951949353172842043955870944219760291781179656351228083314186167464753201408180254889808212990295772175468627464011905671465355635400150717690609950783690165347082747390174149697009061783252270907812239291928199864845226664779860685989955853024982374786302475337787692369086175743750759033841012653658754871552953782307181088144377687180974055754381138144609453288309805726255529424218373815423789862821187441677165075240650500008602781792044116219510227611490864227313858181265774596994970461132016205015393782906621639509029733336744853154087712100673809031064596678654475434541315946679574997300929426119244937265758325859752122612006616249031384002806209897164654593886743683451944576202700604785657269807084901618802341560772721837306779621743245113508407180319334805585525144933188408156438838607045547541793613203480016110943126344243727997317905391994374358297555056046666974479618515801549391725137746134771702063893331367521832727282434923575688107937063066967464159870837486300070062515689794628885087389942583385956501581890787757937944334962407725611452126492425935306683163181683649001286602851301218836710414287592276159460803873041434088845377525531820629169701746101809434363023279821323676850025150381887834383376926499429007248671387866295708021945744010378363718578651183514541108283057134125658748829893447931605704060278569273384600014725167199219189053037650055512931292564570980284130313855439505656000116267349680004497543851293387591132370394635446933643483434999254683418347905740116958195260024451456718704697543826423421503343556019585141228954341374943225381277962988365291202409730175796795973242465757165078114403046955391727936435966713607357674207448985771731694583486089364100448662459669407931244412637823838153535801106315425727023375231688691980756507650406465356170807769083009545416635635610269849694435662897671299575630518649792828151205259938136987868416992050849977307854656453739617255356343944785294373046110097757742463867638351740894258123714273737652704961271648652530287445539291283583718151873823402057020708043452513280708154739476509513231161436265224082243824155750528101880747475747945766398795991407679088989125519960726131781855922888151883018202163853972633188165071924684451449605608757721257581953274369651615167755962493180674754011369629770572446211191059989094362466411050802417540135271776990408651282349029729043822671924933636544532969273571948432042125509595240961038621532973746029957575976715787258246218011526468045562174465753544669675345375209082319583986430233336289631001267389820678028439297974003666134967903728911306082821680195529629245868368141449930475401032494687464517839424377240422128339381453700832747855449767363484568316874514408850524772097509121384450424267694672950274647999025714977836356950576343598503754472240616563549001680252854969110629040723063438302206198988276163623101233695121768864762735159127144944088626439163714424607167451030623299703137213746706855410442041303330419293376353812879476446379660667413586520910702862467814146497163884641097892794318571814246035761467199033956120270399076901283329335286962338413224367125011218421091567345108145166173950070482782423563209535442535981548806515679785351164822098928010371871298056787240997700589522535811322828885546872057432693034906250944564043273090486448411229223450177784893923512378891564805690321013761923531989997309051691760109617034567794176689066984290918434893402628458732656661829126180806932490828115831996953743076255199834952129375020457959770018417581904644516460862556964179455820706890488768250075368515775585452459693174563046884846001786468646428651841364168693258613211456627581292987396915152559486768815534328851695166257582451220527244264557659662717896095599029337975328629194191318243959554904900682205485860847334548724780684504041938311901162782363848409635790702197768449443422119069468793119621119994880821729135462894539786174710257981185650441982095820931481564987681731769364821943414730645453789684768540821425016986887334491461166154229092161008417550076624942507251756751169864926708632473906788334571876119423877382107115911167281080892974351850027634256918683192844053044943678878765022435037531353002952036855844363592224954520405153694428486752219448058886372134781688837307438082073011537350783900814873871245461767625183683265403284430625781097107392615218077682345877509710602160660220468538138131193092295433729224706740295937717738867540528860446605387636349829555261325816902933281461930452426652286744904039471860151273179298737302723041208753229944281289669916671287144322754502036229776702975854413578053280365715369904058623247981917319725672822238383361083772342511656026966890224070123967803522884190318631373996386835156001031600815169627409538560245856354512483953942533737604524605751232890445226569026776465473252905589218443919578329365404227737869677086443516196979677911847556696534952601663583047248172996353159394179613555605072854552390565564841685784916535011251741982415877033142199815741896260023743274447173717090755311807628078886415521371653183675515283094853597124799884044436218922617726744251234604355793336898960215726943735799520996140748284471387695769331080289998289846305659114598199836914785706373548343730803066962410642714399913431491283169245785067668157844777030763086320237465067149075303187800768841483499082431701615020367472482529815618221709733173842101707580877947273387295807114316171008049862282382508750648230716796408523453302089720840232420087791829857628447964525505909739680151816600884004590546364440496290728385921905169017954906487709207713641313394865876372499905720528495929502187778083030256181660853262410111720852530729417287926836886485887333418976545980510072469137857650967851308632692355775661574826872060542659376156759788113873322292419231500611032607602896128794056019129283471853416133609903741812610410411244932103819987275261758220006285640938191001944100162385796915598881306464173501984216954606044029748957153608479898700417853375535651996886160171708263515941835314635169857892379902579920008275976650029199759382856120700576266422003071827662235643064495410607733103834914903939076593107696428717605993488445649901821598357815585854666547579237623747472476220032258150709925927326060417180515700515829964920511971179050015769193388647226690484224454595541658591999661695764552862395877276936162183878341624828947907722918811619612139992512602919436158015321358410590574669754633072632290822862093643110335934750216365254147627770529679329350754745141514566158888290433514387509004788363118076665947640781753655311327182935888994425744681580913310676604668712003792989831762157336655300198867572258645334180113901522707897350202653330238762474617975072111870563482529723207910632671550675522096412941581796984788449977209113473462521182651232426609829503437050385641733398177845989876827870932995467881081051791235464957169804792502116991577609612349173246609299643682305858036547552678659501280837177179498146484277728196563670097931601429795765395695776766488388169169840651060768386869953117672879084156360150443686920503799995732384279346897538624424604424230413522538002421648246723039099000336256785887932142975212143255669716226885308407000032984870878503722209427366969988341126318582202978345679370023647621006099056533657362589832054159556227854193556696532779454263573566862653169417484672958403225676453696571652714979171754929942929829986937758858888059895394742241006774597108689600852244331380056577964660977996378397731624730269042049751535383971745532984652237998098071735393083926405451712294967341629868078826547342151412715725668858591492329933413518612376489511275658462022622010350473337466232211820347035993283760478559625082368455480166959959468725819058798317677476318607079272584103466821023033756639751347416295013572407925114399909498827566220820757409471149528178214884301925016849715593681144254560348881840083987756956292935418012951105454509570215976672882726595763424814663395566081152901160624015456380110375010901896340385222211516439358611481544998593533351340995665014954648464954554061870774436748556163639930419025498114555825567258791208167940219357396112677464167707589816600977675747876467809010874068036494097045973587749177981760508721475520650852699717816570256871991787579779751987419070106083655323369992721925442623260374823572320586798459934698189265796816216794652254723062478850390323329565796065482257805709378275589341328923361012989817933507718684829295648221676757763214201538384660496194384601154300475193202446214293021694940866894078056189109045016352631480642930147259258705107788131485467989759689449509908981988582897864169598158580662637077888470617287479484258295212074964637339066409279146203124931634249327603982393003620658523644981265100718376563052675642715776051002591705263487835815578063383467190801684647876750371259707729292583938257249513758493848429863807079204324199559994307609417682989930126270746726727355279027099811372018740139191890686141165945932074215832696303373536200413734832635554979945261816293901273023062526908536736267916656862583886249925936484244969641596980388058055356543829065697996735153391632234808068716956540252817816162235331476316748379737770184814124737351435582774982740166943582878412502097043293096083567983385888482808704827018572149795218605502144571437584572256539864092930101167459969911938289609819757319064506168213427327146994626511889948455372187344660075531512170439833823987859021359314650322542500791696708921383449125653856719566511660245129632031760212864086076210926785689944616188456156830520132199161601564409384374131933732025424405496805097535801246067256844015640236492995041016688730359385239155048465799170138270441085346045546491375205188364026221914729825214542074078920081798975707390127659646038977614773099620487937396684337894578782772004229444351152621178859658673966420770037323261127483027012847276666633066036076839779161443670654027205979735421652363525810373902185035703854546835634675569041930579151395632411441722154272572756542725507478611761025951039092861946323048164455627113718583433703953723119762772685693211015157609830267185830066076457797161881726094350949000957797378863179831690910178484212999098815583994930773267045451778503032524622400203337942796188111884133784641236240167842614656730607657277170791260176965404785617732408556849122130807526124840554330119901646677053624860348789640345133613070867121572990465094500238226373232985246806307466094995589623839332022253237778687104955430668050114126664978812800159435188692777217505049389296526016159481565753412647267985145832942163148461203548413418033245470297943797123095482455938995900089312452889014694898304616848799045113446261353288509907191997045859616552997717859110690588948211423592710426076269849589104187293976813563671376057248091408914497260924618182551254808097863225466171674883207014814741283477906341031592133682075461546437923122904121166639165543922685880365673959370562500817694677518541292698148148739209964306570886812557985788977806929244200992748565114475558136571567445643542306396052643388293363774854345433281145673156658091068753748837890207231022557419994477581719664938272569669209117273320053985402552702658971386461232875155510690515198798893639757719864485591311385597189449971955169611562263618007900984339760704951024735950912247589942852051401274691077644936104184442335065053974167581485278498855780881012694358747363172524656926562150847072894511406327342974769946784092204051153683235543091170169279651921100419851109934721679763580384255205423776451121339518705057119025498514174410985817754013290345220438902506091466164236326289102343045841222329527329363502874759931778215866084668406870570881558452816899089239025111636157305400661574292585793042076257530887216313540837930203327511838540441080632221388697035428493723625160044715762380385716401099559579582596382748907111807250502438711590951332417706884946000710653965820725177135402493802489330097659372695135526088292628088358106767525372429659662876509399374061673075278282118570114086427498648123177329296820672642626349635873625467050909539693206747209592039451969350731585024059658059717829875362756723432601342271205608749714122360113696976391321921398317759855097367052950062990097956947854733318257262912300741361017511028900254393555584060153084753968255005336892076928905330042806733134913387100143574197436331001134681436032433673730719816832730117946623152133266524379160280803038687500902519868026098753476418367854413944262252152844714976666608030508187843473901385349554202202953335739929289868935570722277144031210450593319516811574316984726052672207944393165724633346283923706869550780852858040043474042638816116801569709106731453879728780640499452442343799549534514785770375796600886996271058929788127076440092868226515564384520895663529512716688755498261226379504402512694766344595764437902968622780534504857846385091210487801184614822712191579198852226975282440867204152490228404938896935416531976953192618919640042019036465952103335242275810427476598684388334034029438534237831426080580481060318306371966389486401589224261981887833599406097940197909308219318120104578663998002646617163993802219498680716571605814556774221482752566840248265611394247285586982356883047434649845740511668034906972653557152018243718440432727725860298794358061378932805118116154756839573921574694113997954943021670491813808880688221919106998924111325388111038980633682810587507101184009701679583143741397385957184199988193443000316798451326872732882676741183315529663856101903919082412115129650009237710177172766732757492441397075289019279869649596820757409372135951743012616323846680011439482061011763204789244578563907619832337604590431719989531591124687132384575498246040006888364100871045220026449196413200522155705728166286929365181382768456495592407723031210641006966549143965208453446149991112177380136076455224621670874998480764385800723982023581013129276300564355558726456729448858813432991372307678839528483674593184826228510074666147351704640117265301045704669200043725379248605965552730338805777654409053697939281994123096418939658368387199557945988525563875661346105815536001055753458049773451021362308880292825792894076961580193021851749760452557227093158761991089656098792258122253678728573485895905888291637188425925876954455765688785903486366810030670804351005759010006094228076450676154898972140537614244874414761086622438098401970615808463832627726267747085237190310958665055980376179001685619215461898203597614890102686275841808280402674677136035563058041347696908861151813229671077419724518032359584449442598873601925267520962394658544620378038127749674082604752121139494453907233254300385605290300650034860803981767404434420620708413512292619690377430002433091313045596993146988440334483463179555218596779218683866604320442540518157425234165691765938726944122639219540207177784227184299772719265955984394260235497001884828419153099151575881610374523195414332264178047747502748831760745479067596668108854500839920206284312648428277352410966883339828746621610710367302238726451530741076131897396624506913562109658700330034545417925377817176650371880476517530964039096673492745156297168481717754958161108861968092766211513929725757880387642847453238283873992206792296423835228166537083568456695874989955211783299309219774153727628408573109182327364788322186467808380278358966467118881862789840069625924594009711741479003566579723003184170887827972216885247545379650588812707886477458138016983381888930543126416307055384483977411673139795632301194767762525689455425991708995681937535222101896017456750796165928539360205756422715933786730735981326283622125612757368704242536216781774817818248214197483534627299015956080516326756025087944169059875837180667845325634801087259676814980307358406033777602248229080192524283747476467763879808762915034210613499501909054480969636740240921417570292594455009365392953786516370385655963264608520456404630805525194629173237290815796450230673865581442823097771131457025490785157679517881720039623801204348075486285985324094008584916590649773532364869598754537669534831562978830313553741432188109712799778633576864812524810992896656843309886487295995924465311822431853403115645409603607000966417353568426445111227097677618386644883209729470948390912040050645149156117123722344679814390326262223887229117116052038366116717079245290741914760557241364037696695246575853898738115139989396519638702665690912025935179084313113617635649883006717357099406925250218170688440803963932011401831347281196108541795746471385637317760012128650964948370670868252256364692805651350699542366207901173947154911844782229938544659939864545043713949184520670763536517786245475624798902540958827524983429033105959506588658473251978749628596087098251274960650504396820580548743491170432351895841149405881458287554341497219067994215567061269308391628647585400280715057401862253320138116819214112677100755898804134799833913352882614390477165104739250259758515849085154012217816263529543922495496180886367962124074054916629817593646224674482678241062302321554940813764757267807064537773183600007904244075681036804343024732396332289477864912441239430675446413934992229523607141212817076316724231563628544038085522828055530889788482630335612957382115450283786689236276321893738525443558213329078956582834219007439534187809210355728842205655522092284905164510887358899946675837121013520609056790356564558410385298471794937430211345075031511634330151745925245614176005751884017619660196450925397261008765415746782682106330836905315442110676347068298192142163293443293762865959955314842477949878887139691607646558887626801801246340589956087296514720639000399262350077881701339115639863298227672970437966779935837641287471929749032367558481982925189595709593335106417564748274338167179290315733028727498541282950587641302281149871583900061592239256518129425230995963011377131472177538536945350696583426865681782490407333191083216597942030053956063848929852987388687580103162344375469767508322464468000561136446077251099910601697479312426503233699007659695375584742582698199541921639866293398968229051621322162972515605703909334064557354014543768671291371813209877438405342282950556876228622855631226036761703874689297254845689524586298397624208226443588675610745830457283630020384063161749095993604281428396951771332565545339178668997444356911426295289928003477041419821963925054247030610486983664576694573517632194383332920791807115675017117732973727356924866917079267466300903545145987326713743552765898812154772996032024722757309566393137884627655576538283733188804951551559575973085927415034048512461275452955987147143141637697086353983605951531832984143271124854767704898814744019612022582266086277547777969843365268257022647798168540010602931538528231373017594007300344411982329665912750973774436030932698289746953539627880361454563482404847932272109511946390798332622347742667499264577204408610282961181690002462412143903235826452527952870997420311996275215790558952745359784405402255513316854694848007408928403975502302782124679972191901173759634698896572232408124882533429216777876920006313331809940972139749804495301247110741072307068500377691971731625018355403261236388475044905174399267049819623300530261720499353080390825689948544240405979807424103301616047068313561618079012250303591226907308423228335301515999916352259658605782614717778318946776017210684363179781158880179488419354187802872775739712333801444692699759355020508659660144275897394652480902113351747817168376405015019506479328265913961944847000220562536881401669055212314625190381809170040670243220728516995018710391789767555917133088197785850587718409249673112294536917290523561244870014740390805905907110726355326943057296271792451043451646740569898809265783212122691831209684655399335115037811306415029519910021102060261597437621262989560131164879472715188614701700544279924563138189721527049550675932161649394362531281737773906615819565947470857945667824206871656604964903559954495527591131462102819196498367895294437482288206126100805077774675729741713726857418596367887376086758317697747388501982186359390796538211784864738294648150475315960394645795999835818975488351752084194258643433274776698937106951072642818693683272762436901876591518115194181577205934811204028428861924440250707276110643278072587935187253088567969420949451206546286788504614305727316929373566206506064529446897608846029938910761005231100833935586891543545294106441176771352949687895344634647737982253721709931025288374571124432592325034998911705137893800923735199906860368778512724917920644676367846792814030487973250681528254540462803079236306598288541023225662154687253525418330802674017777716942755766220308705924127423895530950563517101719040094790827039541796894716026287025008249488991945535460310072645519038416562902272711683193091875346577646002576717503324268984544579813449177510342691631883530354498656720158453114400734543570267815600905172122993240758451772421143266062959429171382153924809296277814092896794999358950826134387161820236236108630874834970887602524919511166535460431733376976473382393753514612627297494533250739448008345903589171163674661248779344554959409277273582952647455934326232236050950615699412893175363599701327014908180456019647064638652046263639690061957077435721167321007392177805322594801471079237250677549869675048457017424017083837679888076568230694551322874806368657044892808411400691364889525427747204588303987226272907848364311767677673695614727867196604555291091921481146407478127963707782933145303946911459630891967024014706688684141252216776617744668260055067181561004787241242667082619415200270390884066051069404553952880773783883916697304465453981269652015712431364318596660438714593847001316621061789811956084019167548639373888760423333666704119861731384670511722768622967027771709626811923469145699630842049712626022990759356296216183572696447880951923511142367316045612029736576499217255128405347282306295091218603854286510797783554228658521884033078026838655942300977187529482105221959352091634265755113997101981952814496269138628794136253826518198991016016300778429326036796516557654474599719428965749768327628058573379046782846668021019150200302849204832468221318850476004252817384645996930970016203408215248335032051628425207295909671710342654149367889407926104121424532843384156631390372088549431087139498009032355181285033349804115443690407789207039359540579797030086716395182793414865704870614757905689046230523955439138283904165654798061831545285911260251153357328817610735872532189495380888857323417645251689621148679729614515365137930570282087717085540541870574740168257104219988609348748867111284904537616200444934925474583621857242331966097878527501533933607193905338943265380525607324553444450679608253541712346578505244886332087574533004796085847645840640832564100355060269033916306752473233243533840101541527431779452067900764906580061102237222761406533013108132426227726308082362405894112489934775469039220736583432751119862515889855754671487349496175764592830504103267138277065492709087941259890163666238238953881253849142585976202829234513074081070143397707269759726693059315353764575667945766893717072620305721024178590666395937752479944059047558654966584873148178301581521766346564271197420155819273090837588550633346237960826355479746478206523019147009403246823929582128479108836217555199385088499700145307716309395982711671838092766136278106909832743347364647423209467978682471248213104026156105172932556154641107241702002423175662782004853337995552487157668582546106311857966423433211939839809819048204420915307664313832934295291844631454985817570819843951652982064110078972948087225068790354173805375388795583802306986762038835400360164004348479394976983814339881861954889989549134309405816936809896320835144592009112570561952108888221667061286570873003935333354432220725897470431045113407926898438615825591858332324157441464829889487822774000385933901684002599319581370600103473276763042731563019815911077692294036294741835331527468758437017575154882535218354769844046782006842658409937453804058642188827531097917846849528693392966343674537597575846604171281976786385910789394939119182344699785569146351265571754320232920739515604589078481680847528281410406325146077228180588382200647287256660728668923310082820778698721330229200244333221139564023204376171498019480777060507093720407743834115923469551667630526694284556311547873518986332067713062623469182126938256396391262030960009777542374016301626030954795122954266873054908833045418938301426562398689356720913766261491302272126819013283787760839596748454746782152539067077088154041277497361243426363516299761487025714343755126318929044156259516299148944684636316446070073535678693907977131253061052347095924885722432895366919435514393950479457445425888700541266286166464950514160151649669839111352159667037364449211118549840159375039497454084410050557455743837814554299100180247710858259295651777556628351814783681462199513118079562135554530506653356123079149984149554998088310680543698672062020112319151661425779276869897206639361483203330936996317159204987726100396350457028293068330870445059335512070552931588598528579916160380577958603710227160468851621571015591003839422382833303286865646025719164307904136213039201474204227146679370411842631563207013131049170804592842379110800770496146645089724938806962958417787763534968472288060146323168305793912758058845008373430004669019188607775138866127918876491877402863869553960527980504962057318495077719982586835583373765357191230579076354111411012946977969464125885391957276979154587042711165296509902722297169045930987670842942435681210284398832719845864366122933768617364891701831953324217289912757791574464182883834518439020400912401866490258429910524586815989676966284810163151657167574802859184952762808071878642920904269960632603291278003151055855655810775976240511548670894833402191097068548056903214376605717786668160645996721870271072065064765323939932640898674942257730304568378824595270418262762766696985522899089265376957769932513695597742932359081186885861101501042556945777440092056861290883649817223794729837496783222467683343023385612830201035375577506813662030339920103052537766919383990998726830111881493567058523470588299004574850760558356660209687194170257391316425605555668683600814178459504615399014975586749736490023441298867080357179215996924953723919918475930329781692739862394773825980144473218144268768347114397321522674275999661220205292832704907733693714794104473183187467479478482001252846025287995236935949845270984996079854644271068882246879439077336880037470738515868608065099685397472097444926297196683020144673676792152853433505323604939740259918877516718239322907084555064552590178405978072229001527489787259313219990036872631205361136102693490037618912465127852232279436447321166765204311949120537365479855713892936708691978146364408216806339849815977979529038178739958837900842746605346110753156601813460978558887281672525208426730674829865339988058946918351812448940806878554817724844520343572476875857904787981881541667689543938232991791307503838110019371227380343687854877781583939110858300728541927891762490395827357096874303372386395802190564341286989657806224454022428584222164515719443726868613188310304338954118151744536909732918676747021526470205554480720337937306482616859910985129935746427811249026554369161436777741283469565396687843320135277316972565209649669495635726077581400616160442848666555192341360751175049954310650632936888342492349799081256823979352342618662555009149425042537122774832113193563938744773847475935090077840646337530500757282885661741837085129425811627267825209713051535030548945443046878577966097259863485855217165754236612978289602299339303731826733566424272607311969946819309703237801197097278485137094604184483601279098058089200689451267768423892404615861084708706254454117612062172589879886818463111724122493244575256162673144720624624466176825209059894973940224333375499915151019356727416334657125357180094615403801596297495841901660085397326247598053105227252764520446596236470737550266750024684329515391081163377258489050202472928594300910442543635697971859600402282314909744279308929125937564070907776793995825637835389508834175138820876921035534001959159619872881541533711216428221875711819863379181272850559717727927519382588782878301290926525217620740837856435927450666746695175588869741061220698025383636631355052235405068644927356599003925814545444542260638327811442984671318570192427807655178146961329491688623383595269479699202091376688001132248175125244686584343601939915138363344824757484221596072282681634301293572824856452785078515183484240950794362841755638363267895757879178736946280254672083767087957906856484554352255717965276488263646139315525305899287329216366333949889632032068452264168420967334537636456208987857341175701017898432871483500798098984627152722190466055452176410813505284344724899719454779580708103149293888042055011838270470255366970047317280630175660191294800695852528949192537314246036443756378666373442426339059696747015005327002955406105019592923763874899806497866920329167653913782270570093370414431526441876545668248612906749041027857569014358688056644958363345265236119326067217591381870117748225175298180578036573153259647617125893843581220279040157640084607445683469782111827631243133214559333955882825189720827195898670621229968315688469140363873472229889548885943733952106725074942670381968597451339106012060793153680235033763163137912291608917858437797837822808183598705888349068343920507337227980817715800511746412662745877741699823154463586455944301738778540717562274187981641208281752090701583226695184930654662947657945682988716912611175019311575721224476485588275949717825885615461192976758559451190749960716552456397740126921489699138386000772630182205001033356815752278838471651570022081594718880023402118417815347317687599737086734013220532055342768849090845666305817874894601066999118568922953850439379535436919196560999002474443000691741128014352007243737627005245004186082363535657972221697313087354709506683356381678998899994656153605599922670567083946932065897856330222737755043686827996430718597978946905756266677965231337694147689247196737242389926402358205524664627625164962308429593738866947972756821306256992685126382179942212477175602198822866802790181339230483936619686740969202452940908999420600017652666299457797043530550448038130865999980992479711026095466166721222278411067977686721311679032864445750639562213907586183195163767445515303288520240506349283131800984660085339326453662288269800744617089170990939182648693698717782305089400057632949265019581623394601735931390216679965551369015331364016503143330618510623145700079790743161402275416535001274189360294804220823451284349875590001676868384334490587114149500619940199377820823687513120816676149135588623592213110866308601499764425234644555162549276685134192306193178543829178678576285641421650427924603892285713880556668353594898930080407852232788652621038379750777807378612948758461543770205932960248639745819753286805361423503914438595336455432518540677225220762191178471090284260807202615766241771027966269593848666379131496444543718129397705670875837131060365521645659613386530708129926724789853692240213523278433870916012796463911853576698762563422726891229739557925046890740439161726957117279314479483592682756757889909568666250390661842290972561124174839755614712345867906336842374903877848613222608112498038913604370647318009629010697616654937107259672693767497390062378747549229836058511750985920664465684472939013879549988894800214591975722258753381155168432133208829206721738859976165447670045489632711468234962487492778434160867307209189793144399711509762007064743581020673944610151487337902435846516129948843199035168296500023140635631590505714133199124146866061517346416895937138900328701187247817495850378265803791047618363592833181706542314572166494588535966720615621102213388651848292113480166418517659506560742850692049195090131239580011175827218843037202876333872576017032217822130833614380820328072252215794087921024994083196916790809975063940192326112988983590412875171756600510614177410490996982675871529319573768681732909864619039729181521112992297289152841145269547791688454521316524883557485827156901528086989781550456765506507544974900975703011527349988483648873767716433315089765582241557161982349543587167316207446225639317619781029555410840243005039883587167129822954469384300343189180531558617492118491455978390443525691124707656130845553109729001203888552058141537852381764137657991871464851366893175241051873047376394204803453317023451777820806651230637833685507092524305651806556326661920706196959543615580187608822947784930252121784704602780610992793909765323483778203927402501824905040063435775562857950654745728771336318309337245434214948834780518852800513974594937039213365184675476106106635550316533316683124457973299921882045561736300034451749930051039994623545440883182543873995602710710399939080783848985891232901405883560502263116322146555748707207721981292400036359115052392830134550310886812708634910855950180144008907247620606827772158810011602554390268953792778687735336692487749818955314504554719308302353391816997326172313731567065650141400451354944190551736904486360465889660536796572375885522647869276619751722765296449178777595796446660556884110322812167184576456385439584346744977906328565306340883144438589715336309017038754233244961660849468333352875081037913213692097858274918026456089762868146470817095108096245016646391273591630091930035456584151408983757324594636013297050289055641389248628572262864360028966529300843254026066360536638438085687105871358498240412719640368604444806656460828549747829216143275261126201078105998386052841162799186267128557523114057691022807840880999194228908533344882766369477152634390302556935724705046454120765350092461330245826988867146137105690234598282969598655024367320375004246392840065851835625173246949778923264218292223105502459241149095708008540501762986032970526035798659119401187156611301697804271423745104031582220571034466223119615837703830556366073126636702613097533397651725231152706019136766684710022922808064921601938649829077557193799901777937949950579216481422096805999270576184216065965261572438854361947210012960095914113031865634807386748148104900124748200144571820667756648094625573871642150301750284020088444191123951018443231883860954042044033390271157182045538248557273707148223167727474186666980172940973250330621884478467022574731242436037289387202092681973792950062728062775914451208925680013735929670029493536645734462240017830711925633178133176464682921075548631651842942110501176180557024649469626903959617499900160888365780220299417141681762419607804037983856339979077927747744918651803526093963034406427160581218527443493748990000665397470925005360037263642107614327450364683370215270933004597880029089170022402678304397673893139114425451977971963381153029277032119904875796824757208038381729059984485925405088965868008972242248411665873135517766186987821209724527974874268706386720150061555207612810688110387210661993972912701053415923091531790323922086464739574762693562989303167574903461249443486582526144550723522024214322026800914029568814997504540655266066616981034350199104179065214247328493610759440782200786157482749507534850219962473943151522227220774735575527562509130220364026993474531675501111697435245054541265082160633376991255037387001860575046208488901144026814677312897794913368977863668921760897598230396324595708046409201066150640782277628801470669589587568409546263695260948107998761169240421281895721280965112862210512262369861986730310644601968327919759324694501109157576927862756154201999843749895445708056602856394949650840885533425358931853862647803794192098454291779020464075314373299001157552570129167612057418925685293306385944549180964349324962539440034128068296355146926690416049049761873314473049091276965516902701189760797924028554281890660782980042297622175959433463902304145573498741823887941023989018351082253278359248902988184916711552472416695698139606177279211940808584003918081498973227737221994307029944195795049497137783171327229031074914382462795848315181273117365902630744984465053629461629861091203187338223556922937056019495654300053552804020791413654810389087658768947738520208292919535786843385344524981077367858006809875369659842631142457221436693880007825736963208680816000173596665593749314735771266248525390485566474919009655257480883523572195836413062556849652208849674290991038484013028288779578886026783043575181859054747595884827659847563860969036273143244809157096357534692577705235296187225695952700346721342488573875883327972552304711133538713070505612440996311356324291033313395216902767417546006925008577911569275107362627729958389988914514284308165232347717616525180007441098466056465668191800514691437302375720470831086863475862866542753441560687694054863117297490147040038882706630997591330679474960044134023080765826789055532595690356229948317223344882078814857534594866097176967223212281118661005601618444546478038857738330757246313704999770664961595165949808354094152642626845704847450912670899656474182494206237592336962135710178748337916862095797797581038258975160757987868216000256483486216665471535636780388842559848171636487131180324065787556870109006615218831161628703603289313246405515732139298302126818139260539428506939110403876081766930877964098034724253735681951132311483960435823983971933793226287505250899822877299428308722272023300966414364380394686190675079806983634842650099949132114569167959992578146919692126507598190489078408152876274098895438713798400485070652808369581078675843858372194237303466017742622625629270526727101743372239599712861837213479278293276900126801211457626183095884479975077713841992078662628590456987860218759764467501643084185920414082409089608109382686386859220731953522394603759133160313022301852745340410552490591300429526923138204940583770609048769546981986797428619002519195175020881195627993388418981452959311360854893757369280775564206320784372230898719845742458678734634676038422656864963078690424796494271181830571611323212697423602495418555203325540319783918661420971843873084822282236165407693839290032962513008710125816681145471418913890165421930903771748582101059818854239469951538279478507603690475487423939494347633366556596206611340912589852529706351618100883319417646531610690524884313562074807234074334178453766373331782829996820057735814520411282429414350375639820780750506002379029777648471036008541574932311050423845018446136466192619634367638936846270824938635888556419971668802415661005169809934776900638494876940320669051828789736990278081984957110233863583439842239707044332027172273707363640498362603734549767243528795538095834514883188384921348484443890298481322930966702422389660260912830200046528668602077908560350178128319630429957396206817530085329534711585374173934005764355322558036123107324542553969436453652425022961343875729336221834538513165008228709713730962004885888709935767871372646354400073126243787413173050107777238617186685357558030465095007333778998717485795418978473926509197987025113892280444607790477093395667733470562177023761815079312983913468295303004257902755480679918703209560613379470566046316309456618986979472968525610373926365144025228347182548920880167792460683064070514601871682689611852885310315466309302265822747171426898387059668284438551007711098228128061298673307605744422201891343628353741739728400302983817837570756802657408833652109317207393570185117337511253277121344584452859788145944275412159967973874953931249085628753053922064770653050630541853966675929628707132567867051701208895975646725556637369839702414937392413912365164338255001831049468420769911155700164184963273273843684835530630247204805141304793154157710064770979762634217341397790472224108649047150783188100342456513861222702046986356783825541356809820941642172238918984813720658417659003579511154235964328232341494443640250428553197616178690959620921391114722838903957049728699779704815790573214151499288865194401064017799106947522223918472009889644393719519263687252204856809916788338375077915325675820010160173746472102474504283901985438215704698644247335494865293125994936556756143298181842266544687130114450414894381635624934947227953066686565449018256930705284824039708947896639361271362265867812389339616529489157041704500713812153138405579318594765687684706515452292548694159316327249803962752381195987386027185111048084754995778618817819562778232506773445930179932741096738443251271515011978378018148188204682288037721044449485009671676666077149255447709370463668536390976712751384564767897098675677973968775093158252913784266520984640541314022020886671877151049727253674948363892203879907765188288557003750314723411824296427569886809321921828175629536911288015420809891300744621747306986467401535774927633096898407100425854629149473856498438331452810250645335860929156819309033747645128059697020190853078657582918731036428485887422899805877523668550597238821598044644985521467199655274954043288918333309604932669521605001396519758787135407318811504921714940671583191049638815851843491178356641335104672639192293496428882397779183932294072820047571758358826633152124004818945438542097264347647427789608855262219921652675570161117468162537282784649271927691512822636914540250188443153597934762241904000788292300702000189986959323813535445470278020145136048072729002259454258875514786352207769003125026126839724508679914034316067920494894330596989963724648075554166780438890923445978599106413031613456408544111804007222728102591062438163887812091302464363405279548513651470994314408247236478987096365743966346551517882453563804144622265014136839913402809326298821919422309906315241927335090915645906068439422458130931410321015428876250713340499496073335665796876519893247880332275154357007574949560080904186809370558443013693190673475359310562579987663811825038352129960099549037306706031407215840085696178292691810069726583410369830710606922789081614924820467421356171135314949847429079379214316478693770309423334285895446085773893321752469815467443160850744185089697984969267406163726066103864423503220509598158028510276027465361124728206976314341191895391389784334130945737166467787886747377496165239794639894927628783200760008735503086958098541122198617151054776687570300453747681330656165395856620767290683432569752154284547111640561538990063293004365677426980280079295932298517393110359135593087350178474592641652006157840121449626772479748302354338423396735209692263455480653692535923965978143438911896001456616988227245748964604053378898584568137390095357754244782023729985305417957519687503858703408114460383686680450629696705126903299011671395381048761516865511594122137870718236101169418774180722814197059144513210621068182069658612786274286563466033558786910464884435429066824774257722252467068242484806718540048491649319608871541938049429175337388209168770990779460689923121492891879676701675370362417613893367982931891370707461558461974287938347866976307184069195010371816729343860542762195496886215164778260711711873066214033081914742712796966365077584232015228418274794120164802879981923783697151007220813140504204626620728582175375919491146859434589947868848006426960424434001449867511834567435223543651371433641768650660167162199330762862422718705078290998126175741137435961061697881836880682601347000740165972631762016405390978717550503912988966125382063489355055067925698301609114054418673375837279743340288502478155885025050095498071314149997001594544015164907228759253996571142259416015673581497579042834455714108892394403813719084518173000161382672531864314532895134721140438843886957886080584879336087681137740885134286199863555865966208550627826724313818498615258064535873335686041606016423608594872423547455603850114534328692028464067851859810454326337562404182797843846021902778163388155166397157940730678881245482618430013427664478414942951328895458842109966695037286036557887534679500257238405242047971911714764011174978096536511147207006751392379183513688346595310048757676531730589928593472210913116503423933059052740980056932025093773695563775247234576331433910147905737309618998466666746719812315665021768057293798500930404219331763900466215701726748282126202379915104579334973956128799241412361094206607460132656481306084006195090116821715240919326904791848314729498486539896839786997410426904388961244699247498479483716080186192358026013509805630503445148369561372339934470127166804305279546384354431535571553457779074077632296642352490521057897604787495634363171406220548008278448889444174623426795667573975010649922752683821505267627438492067556265840286371204203186228662214451722032042651234765431907217281437861862559396831757660500125977785947702021794408581695652527499486054588421480422337027016346240491012738502614215038765394255587756347271291172332235737262513351384697320677748233749467619397264066814500018917380025222560046489560695279528347431553478303732204035206875773163622141683028027709352338558380551953375396621412618208194310883321513656834685279882167076714417021958592491408695694971988923612842076164753910784870701344037225372431702482042401878527716016736679972273048659601511665287921690266532249289885537089271350191121561438423150669496601867861030727717091547281106288714060036482974150018153407577877816681739742010131734875484896140449229551428565771724745135420440938760231255750988183441735624359157661362574602437505468435336088286577610608535082921635048721601315711815275933522757832975302229361493133778893097060078163074239316394147031953764778807418070608968950421393446738951098069926812349885337518530708263152269540929006844250973754584902070917447902837300534465309427050319071001391773482064110251825171775127026725212418080661342738949237604692024925714892561560336322287656341875806610293168879335338842815255635627179762744936220136137779566580865032236904391889221280517660154605022844750295266387556118346196876739493543339996833992322880593391040135092106142986838590282951685244279547787015090427296396014697211350853251171315722067562966127627132869721560733006787244172981971207333719188691553897777974258348362535221044914665210602646392825140346966188352158050945222141925523399076378955290828941853602446223741804458522768160530156524869158161732639250164418501553198087017040310439328960635595734462855531725889346739282015992042075078619199619516614841263794703155288946695515900424294302410115333702096617362287737581585743776641019761803286856182992733518341924981099058639021383478639189850377590205428967636340714808151077597973472319898809143234112528065973790168271266617393970636629651363913846501324262662646985382909795726498344087451915917068393269020786680080992020896765041305349878166406541775189219243248607109969854680917353627937749892920936792349852859994816718313225587072649113316264910826080351317102469719282697240036886874497740681165713659616378742666267810331084653387722777453464032384574554685790026350210925881534670343552410454621999118360397479067629665371085745688128416036510107116288078602166748580346445370150832325910620019762582450161454162607316320273554742939155905354755559272971290149618449122067199554821132618942219814473604027478892530640370186418552231339195623791646933890677545468124993902261092252785754393004938895859730593253818237641106200781434378321688263482243622552442845787289064613145009253986001691701176768898538031343001981727803550053622135769428610408827588443934248768928550838538825241892832749069973024185509281054902210384283577169572055211256269860629249632689307724904878251299588390172145348390301495763388174500206276178849313650958763762595443450660828481924509220799106512392853121185476184004584014369989667368092415667447955384353955398779731515653912898186948899554754471623750640073631675030954593088631625829956702665964176247538224835371488514982220469432705627068529367135299008064689240150598916276677445174301191458134420490008524732147824266995717291449938846114998944390456874193379048875797012742352905419901324859914470967715591724448717137476070598584992237547432295817520358749196862968888735999629016992986305969995075030723518268677188814326938744177027096706967906818411560672872687236187383468784418285256451998405641412907392500843951604512227098772642953821721623351899445825355659084529366162532109270805734071415821409082215023302401435993549569168554181603171297762066780871107546890938113772724926175748004014524861397970265368067742071121274921025792022669704741949955118108096160566146275807291318064982015476336517234274591063409057479246817539097696838623833076428333039787843798628810121035036717704551293058815853991434647258395153935403178178722014295325577975997224431423777586272899331006324898408113786507364551921892313047401623672836958541432950379221557370214612209429473796612340245595512100912707576332740756269681271499128974553060616890773728206806779616386982090297816236965014942959549129844174675673253860810092925408581974745130487215506252060774991755020597485163956917860781974886054765988054299499377767573305296639226065341689362338048833171720104272875013818388077542241470320933932054654801586574249752853466126568206413019961788560878296144884684193320465808904534798119239181281529266186724160260321179400854559792080977227131409382809254650826485408791231193253217403125151898262891824930583465801511469216505348760554134063613709643921697113653657892821237584009580222938836509019816886848563392009352969570155318858137497180614734123656806526675640329862965292152277220126601302180601912500882694955717188293768041182495198350029737309362732018080918802807841394794245663360294197213658175576615334606688443997697380581186004655875151099154766230767885743674686898430770446912855592234471606596032625174396366356579732359812256827483425526386951217143226941776368981955961049299602976466742261158717532465121662291127230270232350401858790466560382608683040169158845028615891607175564310772590921863726255358643603008379170661168636815997713485861331331164203523297033958453821314658723664213238666920653094354793769767519015646944513711508379968989951845937423281219244549156497274907946435273334142775144150357241590776486175132018517167751326538184624292802047948604281689823837676104616844260979942110443785252861581676220889518930202193227893091010787516003695387507325350613398995170766669393495513739399352129610046393722141578693241658434592759163789761570814359190915910134112425705054601050887752958325958739923058496024020879482578183759204215976225393683808137230291383699093497145396728850980118079385955091103704112222495797469452526812318935070704464906732253340463185768058809223970048842474403976458649264381643161846410496541776277632416436133876875622138391508933398260541795586033138736546667898860099056658985459054905602557522862988699520332234570385028277351231542084432603242613178438887152615899254758787709311942645359077720687601613798463181384690502030038005807884989913687681893477328453104198158387385157447936381629381741767695484872909960371274020043788120820772051076854991131278076853946984516322910226005789709735513396742035035429084067398143349860643644283411750761273861386837327158164807372400369182911124806071736437281836894608083625793782383744903446203012887113513095773236520980302387159792814818439235545560369922305117731622570754880800861797211619036028443053196003259475031493961067027365490541141463242232349469007680930977205241717846721751304755425391725011543467088957329310840472097967580176947487416277623268596163140458840191487649268767879271530930307137861360387810492939468998144527837453559859102573339007162696911132435976414736315580707194716698678267633012318852071179307707547078737627535054808889658265657212866645237664386369114095036121429935505092300004932073910600691139410177657068120185572923552249386150551660442106319635217961683136860745675207275161787640299227985340674591358168540838444587521411962345455894025165323450433812187788398530311407830472854538321748272331189441706199392623456945148754936507570739997341696554290876795482525300769127613075683162523150876986949285519641793476756733358573789204280830950059916310168249632165603188869587598288973158790932930184624705526127451679505399030188216692584172538061557334949092263047195775330996286973172206975747160358928802346694485056364989834753964013323984885622970704827199695097412748154130552587844382154831544905707291415191898386623765066058542500376071422251860413097082869997981265750616296115551104810304724988712330634564733822942476114698941995657289539908680551055173605577661913259558233491234130152616097391096617779479275504287727205441218605780637148602312580122776789366259232824459473300798365480495853104422297823192073182577592521502684898815261765248452032844582547712006041161331260383811967687396611526471441447821923024272014412627656893137747405701701214814909728904580937766043315340312087119770564530672276067105722992780813650684194818379059880227443316808597607182963129884206513894419061512921509407176921711430856634849266656159232493079081679831231051794631270235423764033033728459457179675526537013578672778771908764902823749139627196064091807276419830801268854500304150292438193969998553118632839363095043008864887247251549585873868442808998273540370418060893854609023046220850686690327318904186281543110390047281211224699308241649286330586751946433843349768742124177307809608970886885671242734035543231878221560767086521773476887403320144678575202241231926717280927041616055643523062557572056191626482648047703009527851254228522088086379506552074750960502761913662025428121684129261973024676754612516047873039466996688501058965977035538657954565695305753951551934522985117727319438146777947675778657098854973373301754704694476946365462497225498327669976790532860373926104303343537424646387319415796189723691252300197623708247654226236072930348086699702010832487793968443067229595923532588462754902597624950322595544798581645552755655348702262610428309949094753318361404618035050151747408076764129464999730180105680014244383106109527264326857014875478476294750964822181319274594137206830235888287917353763426163206966591897204817401330678953843348172684256238149099897395900979406179835012346358519938279489759896570796308645276268798535207940543551519461993507059246156997268973069140623357685018638637646189990158769150217625308594618591173999925771416704971998501085725874563550260737509830146826488935941166015266141813696325794879576993715614579196191666807961069941861197573198926563040445960957643460268921458951924681471372948405305889470444520781987331059931023030420170719542534381186648346924416312121766681106405829126233337345625877462774785948539929666931725389820661786778193416582211640454705857228342987084634398946854348691194563563826522138780195408639002362775403633933773742857379743097871458410678911583297349688220542909214808467822216995475596743427667346095156320461617934320666907821064942030893931210963114554959018369699773524505597892940816849811690672029063251578041704835755491935545411293801267763666311625088547989530575848367415751611930829659917052474096429157695276503768025380390492464324451961794696375179319151737810730681568193262499732058120103935665039484065453503140373795089672596896799198986897552813939059952032876127073522227398633202660272634039406116279967894860346268076271279648087843616005307219933208500601919143513540953563421217705328699929364725455066243746817339150016013757446304533978293901137413160380677567133776690162899301313226305633592686284354991159781859667270848352752312616249623679740799775616160259483380331891617770641394426924114294193667526384759087362981597964736376871957114369459812916078935428748709476221525351057399899470451030546721997524477594526715851419459453628222985836771595270770264687098304720347687977937340569643654143094051537483215266715993506824430999808655224605549647462061468671302608462138877480263596255825133702733175707123410210682875348985319551239555788877228787156383512157689631597073760345007341944562552235253418868508056978951682937001911270328934969468826929739846524934167356212738112259459705885605707724259390334280152178760956406752684443528353651222688137311327884918749022648142585488648707561357667882020776612436054666968162034011690189697900687584310100952799026723905175063439558383009477501239424914591761319940641251324291837920607221170587186171069408714155335845972687811855954259049523857713942645862790577292694636955306029014592379596632822537823934655315960501498390220014838996213300019108401770514234407704351856410773086235477055813607117825150413343835407983201454411156436732165148896666940400225792597463741065010972338315389880591489087662043523068446138639921938009987805015425365516096550354647794690821292479529620332474149156370564577044145361610285618218859551829955760326053138285069641381167665302636571359960264844083336862854451288477957754723024807184800254254541868814407978110508916065898269495360643736225829600681344067361961986416110399657532458788748704249004755346590939899020794977938503422846994460381719221126509737460275143673838874461970546341489748069881271594039873592879647147079882633532821585518971023842252254022653785149554293403010436103561475360482320661838344198510740707345908384014117816911783686529574040015647200354478451285376059456086387582850940190769838869598721568086835086931161369135223348194315356282605686179344990918446720670067844988849250321320726673533452759770963300114997199704805910405353621122262638113125037722330967975484410552101427435004974497261766388519227122727482186272237365913133488923114535062493478890269825075863935569491336992860484448305211739411124833159946233303824820743733855276394737774211452488460454401485581029425709060587906230090961986728142646801245337224378130123022410266008111648637060395933277122760856340086527898339872759314461653369805050221607140271942573233996158391271147297555196808489033101899210078274401067608764824594154132036499023676202283956236045630776605303380697291154867274906490783998526231930278621471100756686214349820811875290527042845479304848332431797634940849346627882303417672610091226229213710067244479350686692335267255925272477213265083792871595298409003169658741846192294647442222163590602914525121538892214512510175169930832047666812324329594783911553808266875980999430682819605246529816075808854182101296061700044791986527201949132454566984663855514825638771336163672041059302302777662157407339169212767774638439067163504179211188171312612965247439924938753283739797212731384305129437821978599448866389433721389187892209996177780764960089031032799041572340150881750719954373717744696175896557896205121588151283834178035370824307020681806465058615885673541929552946568637698238172232108943192400577859170768594486351020336290240838258381928511845952126879502774125571917138349331522119617682641774026580086689286464665487342222543627624119673460606089027271743995500544678976193622878465152902012957256790823852037043784856030417411511205938415565973432703011372288967888219812301665817283982933211240291204753868002267953403525660460035058804994759351461161447518617260845223980540983424539532689325465712286225399065304412446933686929824040547032899386075798287609848904696659590370556547974947298026594466169841043145439149233253331634300931512285243966468882134770453857584297193308441436290060351372322215776564102678358185735408646653778950673698171303465434873756100001336173093135159388354057174528351474257622445254242831759539826719956712574443309793426811694095458056119316534112522056150535699055746906372192669169649450188552442553785761559966348570351978825636483319411563927655106066081766589589431610299309512413421026068619002806927646091209358453193847789219589413086490201903686912953306623309716527586039633654875224402321387449825760784982172760097034642347437627359833444000741886189412166395509708931534350345896138066807100194541314479854716236983551058971897305127270617003717191379100211992486608840558274659748729254675830652110787056511620714358364384947582578642390530366550392254410343137104120667506086460160725545074058872033726540628191159795066344765192822570717671281492000164970122901020660495242036155661750390644841821290772918007406450856018665664092797595204249293759688931505607743883172604942283331636693392007074804732294716878354348848179535068897881428416757242398025598657926610362460067538397548718331018786827207634283987673033073875092422103585615516935770597364005158199873699126890615024574034636888302949347678529002108098414160910493072361015639521857782924713236369122111340183406790895559175462013998296885630982492221845030293152522445450143195589605559237005161559877028978810039939718275186186879847305294168830968643978551277472734752021201404410121288329789384187926561704470897097054046144758814814428088924085282759296950472738531722800090569718799882422003054253489805568736202498596807159647397605280251830531995636030210406054125576161305939077362417042647247984209189595823926968939365545765374521563466464370374665602813216848082562971781919215135418512277360186655089409365341536041437037124779678032534970199141263187756788690432168045457676786453097430380691401094814987875664053809471339726273768552516903950178132593619610507317424711677465128988063684390812630291551096622219524787315799147813654068616637676859822011680788578801857644528816468972795322891929652913644547550397760008001857999043747001028150642988195366569319257540263968657558230434878663475821994186953431186948229263232511878220447418529251101076348292525942109454082760902270667065190483716314216431465372415125503533302087563574052292252829516691432889494315864968342517171554186761779138866005240599145143987724222894337805698360672715889352604886149266304747056296714990970223915024203162873353079342814309579797629969675955267552944339608483487885145857140536408091319464794487125273333761788108053101937865289505632601979870396962043830949325182748933958859525957243798753789420572531411735868357783180337502297888178627891657000611491470871046317642750625972677349617838163202855322368075752268770029463020837080434058588449970921894450218977446007056028598161849570440097912936788151840970656640275446927638176594925511746388788954770844785573002848077277350120961479009101865688890410775861670651673858437067073674756895235285376646893223113056487613151629987668738395558097607582927813667807340904607610353471480912134156463651013945824836070749506272552678464434447776581180413145527739467808438056277270926869918170180032976332829525367195994005436996563734956188246073076846307995571171979520026548286272875980363741723275878271294551034592015879705138866465480100789377945142790180994375758305557606931644382995626109818988624162869246550948971005265373468853912017015446598755809952897243259802260906941148153028151911918063109250054946396722673727216514633644337279196087526876509498518946957042997716449457324350816236419938847287998528931662832070935365124351597983504774465291013221682066914356297687173709933187948807790781420021649183013184727106766829307866407380894060773197151836842402907652601929712056270926514862024000903091090631724365024096468656785957233132095449822749044957081467480344114327907653734565925188736300521801798334322987883568599973415049648212141321104616693336132530715021957754904734347916666701688205757560007449881208334336569208748590300653826916410366199934694749285080461931540444162723120548087683406268831194220379377215792315446841118581556315655287429673600934286272890489867482750156144172358999915370774496446102399533392586596489543007124645731927140345665245673593687722420479523842203447208301331814481141861252425599316067667617499055880203946016901302459892984313444384208975720037286310179803998472001652149765100357589950705979702325633004955635196298879791046719708950814787107371559391853402736951519636406077114857812312572810946816560080624216359718576655280695774096505205688363619539589589759170452637319790793235055606083013729395089334246376907301835587025859659732057795504687591551051100805084767394735344854939813729673241131597737687357105907525492936426827228258065065969077010434424808397592075675555121567338737356811337555689470063275607852002567818219221548024254840092865506713301608489223439670372356654348091312739489322729404070447000708096469079465772135735837230578194117531924482417015216656555427189892523774434917161461849103682312422694297075927507093268146284930319046677968325013809895378268066642192459106254530854128361504374251022486485227850146784949121722257391913611626841463927598520534553735508527225451209855174647617769181661160351157841442927433047144611990486141658041827847229388128026976222004854632617392122156505408138597268186693924454437174966686496736080965967498190809757240239110653230577026448652682835685939528080804104991924613773821944742921004498049183496134546182341464484119901619328182190072338443680935515578202734102434211603821017068282151260435145493961784496058533503865560976040853185853029805143068553635744841500064371741999000615116613659279673791941106552427502660469920783959551438493124649411039319172283431430187782983186615619218703223864615994262837750473481520280625103505414119320610938360372017207283728390218567294083538092420546799862257768277099432963757308872246391947920037417075059121560772911545695869445262706864254342857723707095376464134053973766476664680380159340875910425076430129340725668522952567185748161330216656154925428400936984078099515795518371803311808951879896288206396521102607900625673887429749499670259231432903730407581056473147438311805008827275582677685046646905594369270108537585655914210556563749100755223191892809537930715812583282366918808682867744975174852853266743162325652613101770871024892411553900171186880141637357783507977180344283593769390849967249235834799879994329352271472012417565850669340283270846305381295260840640439695568389897334681679822623034840982027904094262383825051348588953651456922030877728099885856893057466114174999318645243535560037795067097671897668256022194353374977675811765206363702838971746093603821025138707802319633791726952631510677533008229570599809769757026636251670179223880092448979782842595926330439405721193513707744493173245409776941802632673613084341211869813643645594267917577184848469676937529488009045659093081031720563315272448991857085301640129728539932056001494699874807055247124362877613672003800270996369826905076450558799392984432296027522826409676312559122405731557941166602536753361883277468652345539132764501435747387415523430400859838530633239439381628217288477985653070501271574669759916103073006525022872552160402479329142752532886626989786676819530826621949382052906797595627727543564779562775489554119009509689018759495567142245376874484506388861631582783925666623263554268167230597039238083983417797065210161800303895225377230838513638740474190137971101870153746736300276793076804664363418901080484851746844391863574636438986880055035321668506891180678653960945382300155526207031387892488014194927123192218587080539987169698980571436498994219743624180255193640361597575625419340496909336866411029462529629815285682367946393182753408063925619075869419235137806230260508930176837331739955759522247552507395890281780527718140801722746073357825401113855069914038740741250363519106588965909846163202477423835781164766868919178622104885622682793486299463394191854215921689123874445495694059978379180077917772588936357801079582210953149059650240491461798741907339523767675484101898431373510278925303199219644072771388344845447866184605154257532459057692258063427014734269744902376397271284970674580682468551303274975585966972012079648730632901093247885311419171513899824088028687914882068374291700563787346296010395464119212759660518701075261945260289096363672891905597278867599443448166976673792275772801602005611120081651764093075645344592787772338098431299350196156784912466457294299573979744860708446144392514120127978477035361849989634516003348062962007536858345753423920845779355973772151348841780945212623595396560004902940723336155384844684217688463515438527089164957269516031840889892023037382050067147747256307087086218696859115663844962168040200003417464044710768142572494613659758362304052381157156188711281167014252546794189403583189655385873449650699669138447726814476633468316834270645493295273221762405880058365962743124049725836110301174003781727380784428166356453470806022649887233792662625006168442994239216241995409109844152993172631250596610474993379576337939805361966473056268137743861793358429954133227823886826948231617370719992333790457725559572715732129413428426239131304963084613868464847072735844713976958667699569155859202811829199340638860744855458979433047049356052962485354787355378006030564131499167972482988757275331165128791421986606644200328817532906583572128957965597575211758971485281079000732638428206876328817321445526541518198824228149069887639054354696594488280853392054171175592226271150248783108387856382239673819860764953412999842369778305230408401600192560463612632875839019630676845024861509117490742035046139763571602042567421381800028021713229050191558410782638346762663202542321648588808589391269656344464953354655684080554378494735965165834404178495055855455756124358114905177009793890786183727292917681561122819881453325818057814134687247292843269888823813501989140095573499547197625688071518083112996574369270379903667088664296915795633729209193537150788372845309430557351290240294347895163569041779581545992655307158488013753995849516622489936184061668576871141839367465374579054183123486433545053792811424454045735549588872868364853332094778119308383402429035272595691413314717197191007320380658695539323693426454998916886756520574876765861203829480910493395477722268632526330571029740038172840601130203424628062223377860849883248929419839257948635575026658395948739914328289726071141083613629372574217128610421316045947597271641876031944488485288722260955958441147942384792835499327964385407972294710914500309540478605322385655340851103402072967623189221228869154649046100109400440713132488594546262734040801143946442621725101690089205590015306952918813959461865819938852290477031903181929115184160420005468758828958834468275470000500178299363574853347307365498923683969915267442353834844068447139497023069526337717153030168329541560721001828487234990746966880401606012834129159560641239476210401819095418590530926617807476019667257967211576045194431045026479529814576567516347409658638051111131847664706773732861626033896631232727975168649347442207263796335119476266786753855836159605009773453918872075247062290553179443191117714913620892923970855899909905441453718476869101029444649719627617002035475126854318064029194224551090904568726353990111315821789993122018617869582822117756888481093527246071797843926070719113764468489719484050293367531575379183734741525610480942057899594013686377798049720421144242734373359156176692371450099950767380222313138139205494916510717856727637470941254630754088549157748596829742592781504979234571723976695080954228548930308614569595434742525960062863506442134279607889741111096588979934906888438516353009970168637912054379352738005357996564142786362324298427089512643484439669223645300424461935825396779192014824104260628105470414539986535324735953482436670326937467092720898742368270164102302202368107262959302959523628450817274532785437621810506462275365209882943378985107081104202850444992825605093239096795100664752768426648655903644257583429228506778643653473274718356772666549979040848467485051438804896474100230540398342594772097027479573133159723207374308976732976346301118221914345778619487569951684043658605382971308557900759107157830442891012799039291810892467232586106742753513281790917547050159033816589769191704966566455022504622615615830579410236898779583168094650835874962708462450212400231661302901970616617069919448098730239885389566847660846744916117243165772635600726300954552312741175060691504604446687412910754984792480124391062376665535350127806593960820575646020892964062350312772850024131530012523070362772010084722873078778093634604399951965072280832369331093208109491354465167367103859011926680554285697272932532013838799367663366539001665616986325882129219128550664909874344668273086563239810435822607343764613858869418718937859026102483681121070800207092796249318978003949118243197409188448731028459934681324137725201602943693542074208961593634350887516173351005482308655688544055930432865040109805704461678419796366371599591632936598125259106711580100957469785749206311681902505224227836259621638786711167159357355626384397217974631387454553451270085320165536594651055706229102080868878530421183670490389318407878428338250559116473569357435886005129320268638990548148658552983123578301575526214980134890912429117689878444155342624165867213520441074689035073573543297685491204067276349855647101435440601856790448133555524806280780132855933449215328781173038650956418896269375871340999632452348012482232576909807992394745681511122211135533110520003407293538697590262889360957409220360050954547753252679771283701261742316577340881204526200764024329868969451272050265216462616048324566035887298468754048562999795200150890239593438937611096591364281540773090646129744045401638423942947729020701307731335146537173500951414056043375051440141725783004940838717134115300777271945374948775794788549003478743851506672972637659934896209146129370733056788013878528306017261335512714864704537700126119870457376945772330025399375749557555040931360852012473196049370251758955668669046846228900833817738779399250247084417186594899423483244721596104090567579844873564358488736699142092039621732214130908843823461506721311787428641277106672848157045924351355338103398223305959681805775197024559131741153782902619171529618170914345239453418054690812587546246054070175715130781183597640565913125287486168169082295407649690075083464249188015692131694445220378811969312477418349719906075365374211462102579485180383808965491595473773394401469027413461243530593508996481273750067846487509999265263933491564672795178423477717908474451100089700244513119922544512079126003317259424669017966787909196045217608269018291693299733451125999182934371734696519441407397266544645991059926326298888528274733296772286051306171177703840381139747673369621939883401000973167546935897923858399884158518996064836772688014045750838463493735153925977559714716894160085981780914371614722622242650865064555303888226043944274313150080995588318741577175522043941716520767538527852203976724226657969989323607124556826445051172226521814132117618164839644996334979243673659360426518450954642981467637202332261967400931236136289259225792508847228225157911323995063203442909119513723115388909132576034353398278120020305240877318969233986571063797429555869025284004978208983276407530123515574823089201885238587588009074199230343957086252137595773753362813794881496774645370241994445711640913251756473842754422505725294475630622697706727153959621737127805195581402599313605403063941371017546735342227237763623510142931842249527880731209566740645890733567760692579507796341828616885125208356117969681392376624333096196333709308736714910060099308299492195867819742254070870879023249777734427940278531587431025345980274347370632979548046751638839723322932286705860564553198175178699521093722989555880965750700134870409192421959619045726280468425888439667505408658750543866541423550523466546841867415453722543088986500328627143855949458644411869423206010574972598988192243687967606933854178958164613227725894437176030116539149908721790363077373783663835652067437557457069945931127307855278268450144903994659590003634118685348383079188201557467247362736285540817120740012118829826335641726696310176184062718806319767082848670453442576163898690830024731579498787839191931009771867125745055436004794236280369969570733664762419405715881748103797935060337309508574457589721819584634182606665116992127480224759725210694654341406801357394126888692793101727574468907962232304045488915769757924354348057096645065253839745217103384964766673472708025858470317718791020817580186326453693955598676302032925361517362387709721810613185962952773022168613543398214068205183284592611174499693671961323687660742650691349567754337543210282162410982522580540004424773232780355358702659206497431975856046462514025712817717681190584139388831095881993199692085191095430250573774092339653067150529174352960197339458138673538187114210711347241257003960832877659166021882228588749638950689339837706787208470768547158226114766788562943140660199306564149656423794302379008883257621233477516512309837671723235861835132123888320322746455747885766063376973316820789182995464590449056083267292874548841133722846749554267641290159389290791080859009270137423379392541996390273520553517894498813854901837096293341850238641337532722381969183652953008846552449881085514684672605966354423785068093217220696591302216483776963957238437892338312022191882433508490500344916459175227440231039335262837670364631359279501418358072658549679733556324042077875246857468559765689875732384644815150579385912106748141591855823286298529649346885349790422298646529959573735825952189231496561211697081294156622394550198032593885116217900786009576123366207734508008447678394478150399974613597424655884812671759328034967348109742113715143749895123680111020374078863030305776979794716149742298685205060515098419987250877448817611974032412843450175823672128450099641454211885809802164122572238785676211046094272104171752251403101706675525418552701510305708192410834590183912081901573545979683710156482486452465389355199320807345960560586795783907515367746378087678027794354626085590066785517525288196414493254919279380717844051173059928415600375357221007640610557211730227919012550751491697147157698314352735736553028731877874826902992623831265852628104786107855330705262735588482284335034869187467385604595818007517625149894804624863264022094159097464755659425751268617229736544637843611986688277750113410518152369385170142082454805277277219393031199687823255909553310559460281575076021767082134567621660065673541182964673215298329772156212145933663969394371079256147985481938157751813182820751720873181743495414167291284293925500820417139864909917495384345256525665268215849122747064507780512797884745603587780287241416448148292101894303949159696978798764386033731346917536143301495723850513393225650627104644751605943584169345055163098315707805119146603378431036906255922036072683812424179476869124357839500115335278654780604874148324410192498992784316289134459713823518915540391089191627084087929145971467269087941817507119599530369331180319665994171742665080706122719408248534840096130401269290690382126080720880425812771020705327889489879145715150089761357984548584608165936592857171781321763004530276985352905541299057028869764748733246910763161345238595549260720555120526502519253594367997999912214232723920094185369230127605947701104108669773433507296125091743289317764179954269912667370217800655808337731825504934134375856778096328571112207478328563829978846663072096375693665865355431835879507180981883990885183115892402020627401231244595187060547336870591559693725632215502869754678829927821497158504193871702761417415572206803994702920431457995086163128030080070107365450927337670628007139106739749005922881954596627548715659476844567088422382021458770452365441429017331069063993872446856047805787972350853210004921103589070916696008341466131805737686781858145976738715600133976403749738966333247338761305401137036781663306228781433022016462316970259239353854164144388785700247499635699244291799627330560826105038948059571149478047659545557016968216653490351213748935251573275103860337572546991768235776066230480173974403110860094177210858924420690542777265061897131778063952307237014477054662127829508602448632443499439383518422422623811269228758868090759433557571553993329675393267468300282019488553367954782524930551420286911418406665405286806634942020456288844436913431766971649911094997179327508015080438795982134857547477262461713955792514317879553576499704300323041695468344613596399508870877699937303357649824339734281557727994596649620342364712369610241791980116238703093446350881500854079021057909934404987346448768779408614796613545792908537132816966044796141261629271002764767370630302907484489078749476821028739896251920047651266688247449091630744966000840390290136241876028089407891563474829062257734979621520291462187193758647601102815402688893120716523980806604188667978090988031284260113127011656673357103419965137120996803925394198792343928568165128300015771962206212585753942865483811311236557967857521350704804177395375218658775624293846100637505696585381987282446015148490961008862474023073134948658969845623913954590802186130360768612121526160083035876830084991277578154894308246230959445541924798899939225428259675856961607977619611699546012211750698640811762589186874198616346825621791380250876929841023141110279533479278760352363199067372855256988182959997481891448122018888198799662904132549056812899494163982641459278990500077807853088991133596279059934897422450987121918971924217354042271992882202146102862302692168895021241194341595630098198992007644741929436587771237542565887386777620995205195459091012242598377580655205893016527731917200244274152202067612628660193081357860850374579249029049517236917060523106544629498977160673005163508051507943696657631747702603826827414231317845844689735806251069055626010589804391416920138863495057025712917874178235290744561216948364381567310157043921188344832353186929977649677100529337775987667031802126337754547824320432627074877411234454164956387656924543439421664494374723654997357342865133621445080179090917636549081647257464022436188699794862525403251222922087933934508918452681957623456610105641478652531639645775774202182839134738268731232055651498177504369735761918743031809150724647698718028422659636589755546500236720399921072039443400759754734729598473690449943697555059932152868343443420069366877618586327644459567085330186416369570094453564855374372941633108576926861615081056792569222540503787818351303522803931217106999925725372866139132613632983095923084978455692611077215830298541808556314983742433062786381846110384016771314942948991387338853825586975814485431709150894621578595081003896219471646548802146820875405945821614060340063485327563149311156237275786735492807241086537941018273485481634541277881043083269499862745262526159739251227919934406958490843386299581824389078320529153491038458233312130153269115584226380324566162117011381103087111940340460694839568613239438370252920461540243516014174150577734533695409430778249617113265187136279995495979444414558497324965384299119356223445131503144784910699294742320862464289525773669358220141258233194468030300788329258799762785161044378476059871638465533233965890321407267797479027415372028154946046369952714627917534667494552066315919330873495773278005977846366662123745293959475087756139450292452080672310382818210546990624067653243186616561909008676293819830108339087093451256104820874004399593538707696154208115408413937362100042187308016784075439840320653810869640491626216806984314218035798997370626524225033926072766592755977679870633545484115183948890128533302572744260801986776824979904564322901807602731203037063087280494335174542444792629873119623080727267601789099269778118011845991433928877726910169404041831553906755475592966616046807975131087519923217702832917713881159648207936002172190910107556823591191733619769173577051491410493520585914568467002263238635535383065525464277133318183503707458098950257198277378625076683244734745366536211766722472246799424092486509421003153239464150144492574134607999916497708761552710423417529682551330814084736026475360313301089746600978463903458014152940136985531974809856725736238675705696162211642810693197114757352288590569064945682356790311717464074138247508882535542672273845755693480764292645030290274272319079567177767331807846972708065394013527765531991965042654950611992068664704905159292451867324935821770331779043196448187945058208482001995985415077206024884109057639256668816668867854230622378354628881730853971147034359590207513512533123729451520129966845254323207854017133205153003016028304077704093993179310571762148967913078408280986053397111732722999022863533782788820435951236499884193579231099320558957541338281108231832613801895438320032901027452280867044433974691342736856695176063219578330599997536449309131193181485493721918188702969474368262717062341258195224467575536023567685803866161145085541744649144389453628307895221261769876723681403665237040345520058895413025480906496282648197667245872429603335358560561681539778927358390781588589125403639443735706265101908296909330021785676464787116995890912154314472339710471288516717946403894123076642185526300045510359786174051705559892386311799437280108536649954370107644599415627409850633262297865979342350775806432304731447843935288949267825635010986675260370587930787328288116917126822703022860566200584690635015381790967149104888825701441557220078444103556557088688264437472330473056983047563344925029231870516952611129661884631382461902990958689640022035883633342162979157722858249635854163352737062904625035912211665656199723196098357137277625241262534275347241799168829684942123602633123780495635080382506448034802754737427268673720188728541567483319104562633061068738926471572073334232231093512170279552477726164112608055338578772470184958573320117513619222402791353358144928024565618328858470017335224840201185262959041497665185085196286124297108639848243058499324709195090285240221781331933848099768826513914336069714655762751258434661817848324865583207960101411048833902280735952956910085954990673944838578895965944100358971132779163879554009175710641736903555845036918745696756092411267370623013321885360885384919400254893309248601278954626950803122988009931024018108073148779629461824329353916589827609738580412576402839153825044817580005474662613328083599354931768107998177848267564277902572411192924907754074488083207162443516712783010800774338593125509089910403423283439093945849905007348803059609044802026452377719862875818051234535889193887333887655203487270712373529438728343633841429906306334432789808897084964276776932183643947594162953041903624663207644484909531637227756948548390292851713643994429871349342452546198337408291541128503371284673452409597738773508099274411574277891632705573601808989261511295231852035709666300695613410815559427194386540135889138785717359488751386270865791957398296582801218324190683670810206605559190957507351702881323287852574434189426848643078922751673369868422003056549349229599685632373871358227349028201579395957691641779302439237342845587968835059246251645460136363897522958587947363837235637918709765010107021990343661533905219509532747277924026448033573516311431775040267844242156029816563555429250079032599986803521421540665050867328070673634286908641929791404532291900694666752477630304946257023120595916174764867260231533692180583510933094013977734277730231818979293425101868467315405417937827122208395561075019266055519392434486252388540367606872728943282327866280550881092244015467905587002114266424791467670346634308582070943428880010760047281050042607401533290050695601730539051071328899087145858181352663218314344321857958231705491983087659401437885209313552293792438381977367318889327838575219512123179051104664984475681453948945146260152779588786136153518492322264821246929989797497873752797600322201228704605558172012331635372669080230937087592208266927133149769556003966329644551453332224019101599037106447596785007228729947451648166333902588847504963197634860121122156273527889454704577431783081456600833437518708889426421812577685272310429908029660604346988950029536551636833623319557432582709085351050558477414683648747875329463778882284533097754499403637358715834342139867399999555391317765075045822958095780757343921682671361607796188984059379450633548596028066576295997424343473428847966567383066827706939495695932914650869068509265013110604975734592577037811485621065172702957408258200520848186637170738742062193381756872808164700293235029625059843458525195808734175760294391981576076665287619591782814003999054580885935171167917305412407051335964648026679475756222622883794002816872232370176350772114772739460422274690515968687955930453274982945715667265259903386183295137134454135337123469728530658262024420794432710877707843990903920265243610754184783538849260180035630153473154768232173820493364572914390335948613012370285507693087214083488811112953665383216737253848785744894108213773774170820329604801216057522310811950078438618356286286994138513971842979973600921515928324151325214728819186866329945094747637939389063911935024343213397369810261950546250663747907217358310576393204904270702034496194554889818458028200421721020577110372720617575105553760585357010583718541645366348375704424311029197771573257169765464722437624251722197722839563477753774123438524483221018468519046629565289761037722210601623156802199559578427193105321263700592197591332832268478391539394340937206788126752082321049501000696193115818010280395414254779393498158966759549078764704657485386948885041688495970900433317488171321389553056507848117489848674750315786553718313810323061769689928126313407928001228859801852802636853164226666851544395399402382362420298650448398478795899797284114480337379724223318656738395200050197330682630019041904399249739346306483880486685642773022643662905653249140324497250090139820558452074831246464328849604616560383898488122441676451193836638089632547604863941876749955812539793204318132749139774866923005959604916783423521199508489783540746826000767755475077145686523426525272482603145068533552208366013817413403524279735381305425858674150973103108235773994482072585153174811955214283697114394696074162323250295549812475181520891604182715703433235968888735786406424567144790278924970223122740733977128241525068543988613857567466685721250513717260774517229414700993806687229913705844862962912851759436418775622912373321095552405262374015593861843042792671089868235464849919042399484447200648212005063271278463828959331148577862638119743156169901525052953905283312823265429064831972253909747250533880261930145440715612103587256608431609420048439723413819039811735950150939941777992080909088199745957961820683394568639182097779400700074600428264725153437635507135152663256742857601981482121288368719787263276037578014113961693456696906674184564800204621194123723011237290069390570258994637626600335792727841408445630981182191821068485221281836233812098142664581335465556598842632557878600964355625205333365594947227112486813570237917778992850536042466386725484336531483228925326659218288101277702906616849083638606760192387945084211046845019900812219066647086058927890437519028561050878041804447477064856021179612153012028970361994332535317634554336988398288969759058688843394923476011926506739596236792368599210417419736939816564808226274695610804097844734086493803873008685509770391073964485689039207887857036924842687204040610257960167353725958854701700223134549085069434143320373205832458756375982058446993007013403336738028317190584858524950369342966768982930732427720117636421967754673463728819781187104916406916368350996145853622403910388485964153359493784249129836880363964884997694509890524238783135363152384227372727540437917281703454249397937657377778626500242906371698142625632522494542935634074386138156179886724888142551576945897728363921257756730557039844038202414247166131545043134510852352897245539903799050198451357968874681533942944915756378675266132096848309159184863847963079777954957749604572109617635159867659951239563873429233491490650933297403016181026606228725408398187687762384082708456980376720018774833812735854230508108004306266864574084339902543038244150412834812858296852849337156603661588924718412037922052100068117244356554269571989018176242039143358967123934894075163291956604470491603843966643092019117511177051165104322643732612517876092210310452351082075101391517588850195333240733077727397699409348240080111922726255613882331107634636962453449721659999481833870597730982597884596315740203164537958232318563070717415015024469389068005818626450151145999389900354323703879762547544527222734084600578646773724589700883784621755086368366076857697423023016081191286974380958761145933829801484004836350156958646417447219054367438997432143742475399664755091379241335854809137817876175187703848150681452752723568484492056851184796018319928285016031999387330178135954587946553036998516544078577592503360611049847073199010811949811393524208117031547385475099584933444811089055207766147370033566052709772891819999893096470628974217525378028256034990930634263648810437422128211796628902448442032879376885762470338198958252444054137361433061912988787064532744023218868849045191152442147460147557917638148602385532486493575050908193332453525573850277152206587211385100362139116536317635332949597639222000444831582828209112674954720391859844020408291943475627454470555693478306648417858123606984166582690183287359831915757471141000951668700267849987294429053713733922536728793796440909951666716767061919908473973585781760893539906930025357926812362204989066602499802888982295788648218523629188583236062845052267283838746960266396736280244119818944151081987446869269640988121860186486656272196296575073850364766725898518654259771404261913894635593535284493315096766007846608852452717888089959219785043610251101067909627169660739243550100500155312483907221814348433809508847466894960465540987491970301735010262506368325313321365613993659606675216027282187351649092991439272306433975585218376340004532320193091962905125996962983434700371806906321641160372537203470204502291348414519472909442579442827994038045960397439388375877536411774733417470575058798595882289815151552583056914238712298432184053780061273633807916161573640090968914569478103144055114484013244789847109247851288415014167514950292780497424579838682951446750994574934394018859174458902067049057396458697129920576202119902939465444712465324960496604442604786819982694872469255588426450927450800173144077505522723771913893309660633191103100360731615176527163092377454580721663829570248664960352004278097768715260165051163674985504664618417706587053427355969918104140409855329159408746401230770139048591940481381463757142926846210175503795566328703744162797520199271201264575133255816127793371207077267962004772698314184612877785329354525205408366314964520554930433195845897742363175077969657881615007634979741996996898366116846791762993078315294287945784403743254580420980998142981361069502236986380674858186546478977401925846119611305588033992255929802106480418574124514647973425285650953997640391738829582229325866409023332945968839729724376141863261789349541314442890006424116862794553288003833305951261713685629205243569787874471870208333889377723803830475172764771908765512020252479497348688075124032669067536026491993731960035823384190279248878371980207073563378708249362950023801254854972872730784682403492854935449929813850535347829264575913822976959757670234932611868590168235959773135832059201433301451757582690561523776447620848324689650183871313421931196457293201259175030368255475308331948048530850012213751893238097229460379607614525260471470894386253722467898173692551426001426424132968844360715463685017010984566495326064071777189894139603639798310786888559122882364014455996155396690988817344698292698364380877717609846173619266531960836112495013349725114398316909097151417101193987562083586157835083606242322553434335616001512066725687907587005787704125136169423955869354647971913374165298974136360700434340570487773317430042239090334775459149367329365086667641171921457150761511461248439951255906748492823440171072845573619080428527167192717251014013169561004466119120832767367571655417364138719036076386631854440039612393005105223275147702261373830967102978843674488892696839298389082458180502859424652061962766586563763183028352579761051189569400576513811254826745679802063295322588974843836664996529876703107893533202710576889573270245114297069458871260323978903235163427055851610273807563463319665408155388743146491094842537720527366563088719815458414283394679551317285675411672983000872044191773321572617397872181402054795214154950109339312852100599234834051169713728124155965723064541167080586615948179845115661424188454723891919329161214713202277237719147524239489412505115233778334526913905717088203007043889004368530489811264101215953098045973692808121703021947182207843400236729017256041849419075436580589168865393734600311989919856920282148826322033958762009479034307310858895882208766962663376837103317426021598155557405657867870486238435333589124446446838267400027151183173356284643913182992877487270090917977662268676254615902535412072212459561596078800417952941729429263799507567792358464777831160463506829694253659969232607263003409333906393037222945090920829557548638781904882836825918828743426551077855664245001657862405429349388082393716832845177665883690607269031315460087690396949695110169331866516448697026277726339247750693347976033063728553046462949726940477731939556526552143359115065964227859322049603296662281805692245203844678745106702508421366416108693635930396529703946511504475937562006518860026548612875069878358173863084197031404408753338035533866202396216713241015787107116781003096935942268550696225658512965487461085465432488611379210765439038239947299846922642666233446651762319849241088890126563495354290454344867530703795180249205590615172738865721767605933914531999817690312806296419952960380365654623811578211615931344883879131905487558365534675978956449689382969449226159625443099930294276949864946168169615942585875604705826629318491974430740599757616223668986430915672016977485473034127874462092093884844653404069762672064019215920005944889549602718022154579862738516355686356206236658823947240671975759875292897537261805805682468963701372860955210998881946609851626242961122482659686102651676178920656568269504903415374561532158505983681451557472715889284398265983888380098534332550090658977615131084116489332988225697155862253974900617404052283420143678375007391948213433872609231307305756390035271820484629840690299336617370162644630451437406202510359626510432911071284266895370570707105632645882707199221707288123384583184721920532399776431754310695060199163698573327433995804509786485938882137344127312029023499339794628341207659428356340785629475501311396714275912754308922701056216192412969819211059361444875759120502867678538944213667248949781450134689354632022783297772351108625103463007221253294968243785230258699121792137305568776650751933436726704233406520212317821915201666545023236459141940310103015508966812666243981460762981476393152699427864891540703568297735820265221381929946552335593155008767406894676057090305851903208547517982322765156925667351660517584657284812938195732050557719055156344583575805702943004792818634397319895176857795537451050183273735598062285818855985504422763667754197017486400129141333355844423375967986265604744965953388876874718776705954937140960587952085579427973010081077706629753539283360710631526180458010871195514422478428466451732826966751973593846536069015597962330241955027281920772589124547457368195377223779743099325965554512510516454068636180173358138465349263507714888925289234043344345089706286256974489579109107235293498517222615784455960432277336665004536755986423425273214701880559872666622852798003816922285936114448069816750408734474651566690859675581802438541690010274797134397727081953883603180268827219553200625379003528747948561542841248314504431981910546269440247026416844302495602581393063704348261059115143138817023306501648969439020638679445258253617920027642836390786964095035753441225419572022553860624258314003526870231830263061015343496612983147432195231675379945715658878172800092838297418673028590456503152178516164986873750036956516394952100425285251734138661136535016671841107748387935176228271452365148979132943202418120705878448527373349625948921045320112954223065183824936547825011524911903612215640395365786329272105168966755736631941185772420122107598706870884503482215567404462410338444130179455294059532335025962862004491206731442754162958360050583323297284559022874595397153809138841109925714093734447038993101045430779751222897977559341993761850331194137419421822644738759374275537745159861030083002177993717766231826349785664913777253933990739143818912675195433774503040421558948781402808773680767742060058233049732104688882306963698943407073374305418981925284403385625185357506801881418984766234025296808728528869567612603760751033744308676692088282095315705167270640395042593380597928383123313890838714779380854490832324504553941524437878537473738459675232415307914487936336315010137081291406978402302840768354160803651645153720187161492215519879253998817533334044068266445557984328102047181023305002597711691441956910951747712334595325946943953774741771252463428134514481878138634998056385675573125113627514116715219382391252478940612800909273207852653407464145497453386790114755973118390130738952356648549724231377042557882843998592758587253182727551791298404110704918265354253766951301214975922716960558491563545910632340262695201307375187653719843606047873999355152699433333335355463110591210913867676615474851036738426212908699694738700165629374251986246977903081656656353033913374641337964359445028014782053489206003253598548204246691835318632249107371196289572689990949880388149626252014686808260591316836340928722480118422842150627618943612238283904936110612443745028607591907919416972660957567616221126845153763450799390858962103998187195277667703421123852747749694645096346493091120447486466259413383359073743123140252445485135031326663517860258896231979603110018485621304727276351377591047869762968991666042900925469103043212576561997209032142087906706510605500004272050308332301586960265801011292650937356862656536368231580257167932507370576578560751940070320030739781495089865138553302091234961212649822717857731069921022037507318021628371424841774179672046130498191197309218412939299894506690642389232349959408428238264431220190666938686061808675688775238649978831625791671335737966136726073847893247722111251496830080035786174989333454044756413110195490153088538843913119500265783570300888544448199162854802446728562473085260625237849682164500756672014692627125674388214998309187498983035793942638995223091455866337088268223152956393522883924183526881241277528461070325975051370786243932359651390009867601576289845105931105219123787888385654455213609240083881812592578018470246299426640140027450795046348936504880346355406949204413285454500457299640784646781651734939642952071605646850213632211215895759755080268996550450559740721643395217258131602435060264257168190022939657027250876682000978685168471295730072904310289643281148379556322102347348573727593827143067581761256250762094278038338775483928700602204267694430217411314306324573402769047616273230148032814475000707843277311650263296558118673830652645511128719324276368155633042875645896007513613123829050335314443801584823855545418754519431997302635779015894493346796944333665768804483223238315959303471063961622068023217066766156899214833093890486397448072691958252551339265432630487070583079059517342378680981320652550640442049239230888271841571455117862367477901687884491164053374072293171350116514750940803694822895586984841356516404049774413477644853323274807254063234579490802260673451413514152376975922182923974355713998695555380506099120069344342740525661163052704736065084505172926100806254146360875861775284639449528864022358113690564063139191433617608488332167632343323034444841280651119717073004594347380880642557228609690357328041447622378826400809365973334113590967997156997649004861617039805270262538726671627873694296411587065742952174328101099311492948853383467910921156284034459299723593254802807986337742355889574132616209125531506267762601177619289714613876611998882595711645614643657930780307191649055980237644949321696622517038121568065133534031152822217797013219057387951504701163898348268888075094194985484682267240880523482618983932021604181696019464995371371323555388182808281454841582623705904479367119086120133078954513338507225042623465898451655815706341887020246218365740523721810447359964412277696373403299600155598089497416624309196906277063193482509715295681393051512691177067255630266117615076473034832673113981574034427012285088661622860482460053878675131970335232456682460102046248618547369296823691338203359218544569226374995729431651961577640048320255032844291173545171454633625232748150499838694441605949208744505842254458320262758337727235326412458553042304267266777099916678780592007201567994252675548473088068380182074597802812570760406878949254937355151307812190351656107775430194594568633876888647894998077902299622185452340427977134887391617426353411918089251959887132348491202005210554500670270592236329062887358721797680031708155601075324014783152186324474869109450567854872013222228581532224407586081381623393706631496010946213266945986456083481999424303867420221819198295458798430372455557255664137189248666871723772196143635061989635214757018943531330950171548426582371348510075176546174461683022955540310524005788590624027603254628962080538680377340100829736469923828140543689757234965233807570799087578284179445913313809588020000649480294987673455768958595483796063283609635330320341134296320138529380838420161358460543294131567931577698214758234753052203855297128354143471700474299108219413524462226945725790786830778472982564688308569930015406288058479728993413706957853151743292562077950641358414636299058686985555628577744105140405815589160706975948943967360369909739926930231562784933953572691589000731113912003398890466350770928063216598125130273730891475014901859541610446390426401496403093027905140834565436176297291272168169405838826686272297206780911690905464876224590489915537275534614027092021567543444446762326380304760978620179338491546732746239650805720067309705553877821650657994494493826180454478395000531776709034244203722784070202886766223538005615442277395519665706968459075247259881113093357687612634129000285879846703307789713649006749741071798516793630851557866164085372166116143697952935516251463689123504970869072737105336434307948619648132483065605485301391079335251138249369283415718858803298483188893967469468611220639977510106686830265784644153826052640926696842464201328209671972978796733733301376243664598762854879508001751732095192207941350120786199587999581504679672484391292119673672401188477324341288776712693726421654409678917131352337908476281856706969832949724364390095558643749211402682955700746676861577651326913046579473474501027822823833293608247328166011084454016060828128358714942825034117297563875301955685740325132885121871080032928610294130575960674443432449492979317659572594831341293618449642810301362065265206710261255514668815966480424192566561781828986118592968903385926796237594203030838824955936338957359088139046499353584799010808462397527759062738638468937880553111175961034822569938959373422953282667689738123895469352988504861783982087755035631308715164110480198025098438573274646775301941125919483587272946224422764077355980331502294397551727674699831366264119633972274723434492228254173067353217914090908186836693485711777285597200376482696295693447101506179470213617572925558337386318387628690233759639170102208136210112050822290962555760848257591938264220621151503045746558704341902406020648737222115327887224398272654691898090905684113102361061308284880403154556021606523232203318062102032092948747617953395831243024399642055466359269938103823339718399426752761144761182114482947020785310872742685541983203304341495776712348167378526770383850087368372886992608469546139664719404401943363112208817880940051452070939672592835169101380646751936453722130222510247119166569697319607603456219057972173026965113386572014428513267254824040595624298348714013040184248249122111628895859967724362865074446163917222619984768966326337101971002182420294080152882705310687863209057007091134319256745462177977271648794242420246959023851091604502056382605098262821842126489259130814931473684281597603816269715534802024752440194837524893623793306806646817995766138406933527760363213499637638001161428749217392736153459903176776415865733688344514860429933661179792430030258575592127989574622626017483334799190610937656227004217690224002973098211822313766959815582080991177214621591198873434254834710440495301406553566145638781775209604979092282406089768729583015993568648987903325514763489292719718887219765781965896993562993767868426099371711685280721045930385352418204324456114986629590516015983223553553127438782807197820176856301053947219138168081640315385282575362111859838644119878761961151847604935509117740404081768083783231541873277159208403277286769976223282067480582025794681891691342927656146587853507420119025582314589647908099833172926316072527960703331718294970917114300872018985808839031751179412125850150179994140362595871753548676539243304516875369781686324725671985781711646020865291332946146450303644044011270008753462619138635862353013852577760436603684507219650576061888855890280355323245415265523404431071144329530104932447774369524809999806505960759546790892332880206481021615280442380371935682682142358468122080460135312295837277206521814200134548442787770455622616131079559146449816842759817469495807841795153139266085472466215752941414780122884945016477004728497283279545718862297525624136481764936337907455452999949711009917374254250284772335379432591963091043310359619645600029462036202183745527256889254582610853180033985732876847164768162944242571815611956422058551087218890295073463101459271300932533806223624079117481699403267815723130015350167218607416797697944780264331766361308636783680445748370134211536745341612769652705072922309137093348103980185046640289059271414920497798064534774312339066000099749785466103235872229790032819444529963491140036472297926664443084973307110591320076793918935189040583359461720187347437039079568613238410174029295618210794694702454596618328386310820399755118650061900455449191065514713197417112572352545710179013841368510196345138824652088658158479032822077969378182279776259521640295174693570304742022409199001007043919407728193433069895602267302673625684752670211172189834229246002742089237514560728399415286741135181824514711446159026895037546921747009079423008419590732970601978830655946224642555952282572033872141453266087008530318897958455013557907907815573313593724681588917144262751685948048470999135626384783088956744121539582847486618762694993013524506812005966830897098403604438365688452289990870529343757689796762721738810564705583696338229219022313976406547352007542634473415037706736175244678698128249304483466721748946709899778824887147960119557339675604922746638402365338959610568546510770745341408304718246039791441037301836719637856168729052024976284260772659505831375249244258425300761073179355719147123349015179199119370092751424943788470472002758115180298193771838836175380114417514066584384357075191178279875639252181324503185503462808294180040439407602814480973872988027733092421443503986187502140585594276930591326068900075760863710152910666926186347985315886678788574959120897270383531038528743504261992956049332814810748945388008406565577582121858565025483511158874789673998960262642435223144393357566093998441661136686739599025281889482000614137022021839503474391836143485656435258536966976828856465188775190680232029677180651269693706153893133896625447143600769979731293385706943420705912619098817094266616519353436329917571702788712854455578369572989271720907551459304651907464424333696723032391000007752568225653819085326914990527705961860357086442614438031492198903230719887076877133516123377050352648143701251010792851744158718648319276294511332408461175732807417947579241201257335888442092314746462158544348344142201097834079136718829600938144880461838247212512853345534986333334028997341393087495208929880511808281451561745483902097473921065818357660040624117661262399997705366895562215373105436795956982100584105358546600533338523111225438066880415221102724177995451697649874557072508710126573915030843655029565043394228843180300096580507001421570404970928996293064224016095643301606559162303772556287319081985965077246721542928867664779238043699326723807366143105012697665431058438271058602021438660297964688126540582525200332588863330531454037816056209195392779877821335147950600385145021617988597009407492856946270758821555310102917917533849473734302467220237990506899039817867114387410813006288811789885085000224251282197677734662998518105325060082555470578448250825796461365460759523377989719021346525537139810855290136069332167114526258620958999495951021691250170055859014453092976429146414040806506167689630291258331334244891295393436706542758286729248177587042085109879836768043390534262381209812155401444984842428103804357965762376369105955904908560507080646079613669728410655725056408608235845891335511308290079672445994978090797043712014027944580762043758239327900655827380868883889944255533172331386472486252201557520737611033400865283532529948959643149823759750550153716563264486823063630110402164138258240923766285736729738453585684473180552557868121027547564023353588224492279755068324567597795062836025602387221960436884991420321216926493863494793904262624157856215755400766424870857400834565024417434950244155281240588316902679247298597735833881056351166202866398717511889086204290257361320634639269092215826748827855798816627403727778634063926085720612643430838287081054099755439910219985391487203621827011616863778028705044135220078152334121932610519790445218826618146533408925286447475887318719338121940236604302876418013369515742807000770086156237015742916012797046391239758334438997365854674982525903291364326521007459089486289397568524965421979452841172674375008888792094291635834852426630841311372947927365683357188818381533590147165769720472687192386291742857607540096678879525777541346618360153048641745778093711796909451378205263124295885984863731627171907313053438225598479547216696020993917791716972544728480702619822225051164782991660640603845911150251439678888733819006616089593898573675590252981958392206040060033168049655239024263816867620439843275063646308103250989793223550398661273945847017948848591975064940765170821889070253010868002132250888183307421123632871311830162461138672615812111129348088002598569834815887738489393466660993349544859953533404345033226336580063471856116567043793777237792987383581400731290083225118819915496756310973504808816013814835781268545537118884305017053489595229254626158750153338932616714906168164551659999609955048681553900162799188334033512473603508944296016662479889124706723467746873493075242136482004753077655461065969514475698315862218669205279781298057355673789771116885172159251779556041712832061986958919809008311012135177303920295161605636366648314265892243800652922156695627878471765145840339886285532304417771532993207096326410506331157869022831127577120958767879668205369739035769979720328159262246112283259630770004979031737662035215075348908517186674808879033394946830083575109986473843494460881087148555551574468401695126652025835068707668399943830582364530756474644501901687073800827648803662265267362730424785326948777290365297870248353503926983448934102622694636904467880533449019413864149521174116266379757399023460439937750560801299446835198461890969193928841401337873365049811847019145576385865117994472815694268754109243109932198172403213107615122966200583537364518719713467269559939062692849710019863211075476999829346309660113375130103471758047218588431846164219307262252175659285502139254619539402944498401147799691171923396093112243766601153315603652526243801534358718315473806624034378259133762797225224154449941661070783239986254786151702275366613856672350154598504784486683793674930874695494939438872409125161355566082403985429354934267761915677847739551616270284201783301077987576847070321067288965618349981685487131857072730325354509850671378405460542650525185040176358689637339830431740396257671388205349798641264730860592198252712332492987279620758787770377878748382777965238945415740487486247942253606257761043866080749997681736752896880837673445834632155891283158354308999936404647061804762342586737112896432808408981934342976442396210865341658819397748264532744157564100580868010619223282489021881181130738165441910300749457272810211223297479067911806080970034423637734584859534072040170365521027256701088659988259196614127707139897787231154844439999303019765776593398104383370871462980961435421930091767550923371568344173814819360053965816656050050793112599365580529696687676678429346269415092924173710892399282647146428701220375459382892454120085821668610986386075991681599155289109291734137799119390010659081084278158583362682075118062699222208134921693679311637763460363698537030515528568687190672204479618384036698748096175315465218898813052417228882756749537506610941162770019762321001675048730568490857087101561996385431188433287802571122169481126805384443879878626341664087986141397705334513005720904891941833937836545212921178963250070378672882604410231093621009009113927718229600117207560418743335971999698938409788253341555494382295183447509782204082371180387869320947759067494359837465264860654793161422568261670446405136852093079535258223529339532987343690839418950044577088359982187191835153329491643579745664986441693540942451607819426717389504030450815834353845319563499957419139224736894182476282677512725830395927058797822170056769572106512974699366831056927556952885440295347165266418401852794276820486772177969983946612691846556264966047118851163812892512913629025761808307891689580008786430181420969852603483512709998847182765660320115892568367710894145942514425338408497038158735918548912383355727208996888458233414485291517015211504602024016717170725787396929602160899542792330919162722207940638538578068214905612836033638052502081335046945988814444607249645002377126516499320588066818408195325474176072282102281330740038074387373158263125246010321949336831571924816149822658618779721048236150012112714349532768435606420157509277166841760160464404817319388555567735488824847738945033217282295871649143806404460559771617611050135737026184913109228070919794164940201746971422726333562792305260553557924031020580149987631644656735965530175185161583768618449644241468014785225774442510240864838337700438729885717879933887700048284532227380059890089714186938417347075647692834510268563983662669960897174175982265383582668538479942639274753378411130608546450106498276321334763217506407124169077643442722779885951969418884033171502580544147098400664271850552143715887804450339155485192152140916736925054045689137861380971874009909343551399833900895135889943045368504445270443178302708153902385884286407045792779939045073880266497464898822799125990377633205754517455900526262779996302669928508192093568307757682491444838824912015029716054954841639244787579421619653841454279159420912609831781284069559087142049091943436153932505320451842402044579031691958103159005541592785908163621337357617632885943068791717083309673126357282290684703848233963564634099106598305784313962449585629805978543541265496437207831186382810657552239204737089508270441603592214572941307971908136368740525422741334045218361684961437400690815798291242510794901426047589496674229337704883053099177502765066328399045115901525034546419733278199244980992816540601333014558934462768122245841989987601344254485233509046909653349870742251117463906650097800132546303036222696757804134536915189886759197924727156721305824051590502355074323971916156833731891354961993391875708287245619612852135043810662460869474114465551671000247865065279656959599704924267373558290152689563975426129190343148611551443342685494404333982384880174748456938712815612510917681615859688624237006717092517791154338941236407112820688970391427368456999432094206326063771137490767614621555603263436215676342468303514690387989182405973768103178013718779383593211932455465367600470684366673063082037628470830825994780768349317350602322263401265081599881700629124395977866872054656013140870232423750371468833902752763753574107189281508137877341276994291147232391934012950716258142614697773983583044179987878553596832613411972921113895743690744285115818522842448457863471945129425115381146950187250892828983801138556128490007312693010340126562568709322490899134015120772270573603564351500541236564356823088384588067914828280843610960832221535025497499216373239778299003893650326818438214029336934151787699212159348317597230668792464547248347110713428436110484462721908777297494127394700659620381623840323527313268921455492259497507777007614394573524253671074746373717013543720445046464506379733854041038524097888981160424778599521858158032737684391351137350419726958444689717201678155138718547095476979129700232824451051654622179350597964890304103488102810747396344970634817336525023313279251781758602892465329436732141494859027645352939562141621275594929819855104307361478125655051875137663376831576859194638663682960788844852744783395243794857029569212346208765217553478557400651320525911717134404221331498787582729220533993467659153857817267163365775433891589449761303622566774330175411565363128802740337564945837380822759236090735190680702532533700052137125911723792216589115124864512985902449287903650838491996800742152606663288389370710335362826705383109507047572214137530491277837819592149960467220452881684306250034969455997058422616126233608912927296370318419337537839586501062450379342421196245340021458690412584432213563289489090396701632672835231323798846148546820208039550533974664278359115130721381885841572526998962491466842172909019175068977933237336184344491994500063765379318344550502325495606239994768209441569271184716398802462531750165893646038703918070243577692153430707674005080452587651489675387870358735489936680307883106027951773538218703170573360234572166388811622300105528207633301137211431526106476704544620762337341596060498795695613642578047858399191133568023332796359678704785151918440799841148944471405849130084642665438788726751354664350402198735578604095901044429383455901395066130382691050904543844327948593686128403862053882713401772572650983637186001951209356009419901264507063436294681579941569160023859082929469145830930689210589967787512147205569674186428518384026473825087733484240811833921729208188576484905194158371820572220977389723451490764250383569885848218108467254216935558158147507609574349910159623703467072950239931460594889412842099004816328889952916871145849162098114953507095538707997980150902199186696248093682170654134574595517944295539380478562102799992091817079007390478920487450522744855527068113732607734623818547653361621018728204278304623918735954131626626385786142309388741141804863125546412113009022507922891613583439865398936849451450756734544339551938918218719409048559966122275591583249268911828460561969967145065768900560955680905091255704860022172104567878616706136879991571219315783315753207688724704172601951805958068765274260884016856784089870119226910716182348876113238550052502770296757675266964432375970598456835519315367109606348999909364645099930723659040742273125581185763060759564579743207803189729481529776744226137560030068085024189911825371713598169015900530964927489960218169250535910407763066492301171271435007649918074946645852057642162492476640383304254132632317365055167304017461880978386456077332745487604921372762344576621246862009222551936683881587470165543429554860117287867762377783251196777026970304661021989442487505067828987783562915136109511592790557654573885282348126927108172706988924555701669735805585946206434883512622614549075079454031921119571839164571320293731303534334324625752850419265184570107949328443831486199574540256779281887505227813179301135224074051676559825239017506604225723856931698765445661320620716045198424019409534254169413536759873983909270648262663509954998731685845644075728283214442024329959351771556728088911065392949003780805750162165270381870094927164402369704618272897403860522847545424551526647803279165524889489583968029760459884271542913255771363735294543486902350079449284560874821181530433074854847295332732164352655250130394674975215423602105760161752283939501774119834298890302368813570299015985422535675526849314176418726278060322564581864809840933389194121636287132530226659319486739958707607197317553916617100080761164977378629481651331351124534525176999949350738772429668930867951867156591484062854738802676973792700426734600248214167265376765202442943813764246980429037416995189193894040662037282010641987801477498570308439775691022517100716635249109275439437858742821036650612502125175523857845199337577696523434456211540039278203616139454786506373796192168972322448360503245465401039462825309440092928306377601498387684580039932841073993748539433414755947434879753235660060924024909499123091956407583567471377173587373958413295536319126037533355302819084197005450571130501977312041944755368364574131180253068412352804153581851181473041976016851173555870659764899494835461643501344437283774938284296950488005923512142756115168854161061967232828235876717141563365750317905446140312817758274499333651195834471689023637229753815820921735361861849768430868970522178465130812027328369360314024041474074166671734619179808998849363353463542820896140303476921022737561418871238990945495048784460566122406500694452317160921769517718312354191892401331148161079833881007032328522977409727424633301824011686937117935349407420982435013521180990031156270338428959037000104284654107298341114275134262624186789610341867816495538709620824428144112860444863653553620058131212314970636247908191647552568598836361582583202470280926393247280445268680082149425991835341257797380297364705433048947579623451167352561171150521821545959564141951911369912833793186690507093520347007382960702427930370488042366139059200106066437392265671012474778583155534335379000549884217693091456250929440560574851844999229869619782669359290206690157517825930643143139247891291021179211019109954670351724786700751949959111231834162101725958966844569092407437548350710466159668720129003247858868042170457463593637315908852237577300032951988186550104761685665821197047835435971611601568568929113675039578127962051997899739563602079819753537622554169152869272994221853180764719294209105006401539412245720456895657450315653431762756774035378779528669984484709601000797909038943086548247600078230206827779345114290352771913462583691757491253159034801541560292856663148418602033759381656913425308360513555981784862914787478537057159338688065418747181399395916969379044589804971659405459160123491948717293316742157552444320368094526866626025373357710710407789359371706906526082702703741018644068319629619991441833803747515635908236743289333261010185415675983857852391923006788120721027518596308814978365000934742323253923708151112424379786965868979144723823365968016024026028465143516705848589551341596450158481478397657092865415097270265894330676656083330652432010886969486110847624426608247122946795746368671880871108333851735957465640314273042413994972748751287353228000749714078671890991120533017899452427095039487702760299378956154951532665775777048626114932197142491400989348134887627459174862068241843134543621005009282809786058064425558462837280477882520426718497137951875484616450571648207811994724466826222165897697489534408306043815625290949557416503839766192925877316465395228870678279135634424381014869179007461427790543792941835146923918634199265601610488526864006710789488486311628157275593752345638647131656118188351092914968136437865306532502478516385166003455300770095326007334338027735440618493513695442658861959625512140659325112415788508775104914346028364040575632967718032817822964253641086681102955233788378714900710855366168504142768579604127889758777572818362885602451014401836472309547290394766437582377664882637424776388404896116580684660774671935831121429020502353304236374251213040698107036646827632071491480506686167946271778523062273695989918723838923746024494076562197104907795931721287731101532027665399587116172846431177683646611574683621723536112346375739776948574291832688333647223698857865208911881113169170618196124191911778178695317955325858361693692398881682046527357880693276537642426042503348843351850537735321416334776408589734913279614061050398387754801660333792713397306216013308023807281185106875272041126134009370199889582627435148064786146123868933077219156254912664881815667907328427341759937546605439871372900576264721428094807795409088733949384014978102230570406537834346951979237417677783983058079239029778687019601006502511437227405402289701211832557650874348589496800335317356354627001370454857915195152118935078001381635542950801653761525258273183932614215868176703801166263138072602744369878130994744303124324093816518884619164865729939734274059132273557273037030372032787659164841020676388786024464606107610217704708226056034108686514227643384003490074581513377665778637468689671376968001163171331588021007636053259429669268127098548842594754861985341618216619045598745807100487449752395212102250109042850443537894158706258379729919829147424601979497498258148133583718611992519149228668732270465608949455076924242202341424959547300755359626646449991997627031413184962976107113711442067025717767439742837772830124325906662192182282865757094337281173341920721712393345686318888240042844286881933996667398305420564104031408066972975176178207567795991547706585978402710879807409087821281932510356115252257000460418797925900317641852368144022241052242015721639413751977475644533260109287143032875943525000162869351797673248853045284732944906545601845544606806354665346661677175745056145662885561615433352441785615544887792282635305018384854701896237627432807519549157517074561693221818179421333079033873530197429656484529227995163024913503671827659784750979663860633305238001124987334392386463934493194344025080959863471449732635604274411391504815326541748911344642616507045504127445922593804976129508159703081291191087060862315993945512275729184496547206209952178415828062849543871529129017608780712925003384177977384546334599529315077245891996783335461853641394363205951960447682690615338949169285684294581086847130787175357280684822545299615933305387717394010236414293542761330813103790595712393805472106133074816983227747119061041228745858908266906721858171002030951739110368231942407012042768958805492745744253476683871561815045304391899080439014163322369802633830545136108958771131149168353014467593464138842866889329387862752860374486283923790178310948830588692517228782808399480967345471371978261497437504012512533580850876770517344046005180609448889076895569128230003452371172277331753966851565553857477767643561737355898287517365628486875806779806381913850337697503519674667259963529695570558309806585898061471345033889302011947460023915301173547860608269596047991589419586841503801311023845965650015074150615575689055449981235915032230922278828331244053032118420715243346793792262373851216206518028795358696966012724301141581473197577013341620705590050413896303603946198460246348994059434706550457519748710755496499204523261835778216649304911341852127786486827104019932329427500334842046333921686965025864922389322290535424128700473640701756181329341062562530989484948594106266149818303305983967828555385077681053839121539447537003668974866709645899911744365906374332741752820904491460998150893156701400047294722666693956775572414647567852050766446316126603282240370995786571695210585596717862107187430378276514650255689274253686564389930455174584649628391589764057411121551720562361779388762602615989331139280890167358465917697187548112292320718589134162230056629180585041626611404391752181291580871221683010778813013272653788287591771000126644614695988103180728087279714366600698217092956523088183998509426254588673391199648073505812763334332996291410717758497899328675280148714728279994326455217914035397004131041432724807194191407874332842600224046642003508918541719082173339350183803938148507895883489713309080133292112089037561523569803638090694620146421725532387516213897252052606248753620208520120687920036892722446710068900192099409254749752617521698885203814407799776475391908951352362204234012315933903010832750460905330136178481919586839501006698632129204412572759750433537493512941819789410873979279757321702853361453459127811028081850226259875795792092550102680948406847940512556719915938704885685102393818720267669165230085167683084661217231177442379891646055281382697884350944602352456681685374230706206295570119952091768547413443813341887702170532455908827615342837314599395323089991261626463465889401628255800024806189643011983579958391611904360250162608446849256122956011709788388436870141853931792427630447316191066986849922543714544621982805010021495364455384068718582815739565126464379156750622796718012998315054870834115182857722858633274195143065036305757733207163155347397000647074110372189824206024008464990453372497021220644754666988046760226821241613940665246163334077585188516449417982971204532198298776451131687544628168158260855035823947746425094182230512734763855335926884637408340256987054528821905940307704527311009959966269716743699353925253715002639180998958696938050566214505984061732621193068926798965172253221453238918467403202712795103118954964837884517720677366652898193872162315512469014116272322794167840035924719992924909334754453768244940173393312328756955906623343071888059776120090485857273984894517905487684225729261925652848460461140721198816783423313570139549725258840356449833571067344228567446415038173343760584648303928437157237580259714240791158440102265275422684446648575526091049181291698774429071294795510164418998500778038296184514850780272666173739219478675858222348751529557067536369532949849778048702512844581525173349340104963021547770316225355539960395022991317216882609979279160034155177630604424632239217412025637097932840094554866063246422054374983386485213498698352744154234375099470862143031588935534414741018284778072214060457114107845400868848573867103874936495111607432887808960926920747506614052491598838325751956502874967218636066823250821070244362598849286924818836093403655665620835597963346494453598453043201165853045290039682833494823546890016602488624472408443287769550875659173978964223546810712832892519870889525396823309218889120890067587079729199516749935946425114788484329044824814015144216860311555096865743876106139473284724711061586713807611491825239952723550757665577256868520897620645794841931284648080056699556377293469567465332811647763189095793575284398141377813848859349271098992895421613407960299271513107357141450093922786355375250465268499978901193344713978296179919886937239995985376595666370957857664507306428978756242487326633698186470034222792781183584875009648915331700838638837080064230248782168784258493728896503802942727954166046280391953461772395955475866082832063556688646564087703356393829857671843679661817832559740116125312880471682331479035440619475268627271321452695660130233957554262893189731663767213334926074778858855325857905383731023388385390298296158136225871560628021720194592726723711634889510063357250071388994391771132778892213416804048999808557624180061240890934844761893845901112794000485762823713948182121603369122655367531608113669852146867351115462277506835241497659830544684964627447803418160946429147689797294350871889644946444985475218164522394920974981272207991481434334051882323476569379698126228104830409010671047108473969411080825372130645915098519051603453746221168638367814582923067352598922948538523232134633364678936091136427950031166844082664946654501021825557670085822689636785461788252467848663990908039302458109191823815817026632546082208193321721355103140440560251221109343794562488072229067913404837106397497531387759456183419318281336444241724844697559963941841124321186971169518147114235877583268583402114385119475074220956076280781821062218731154687983233584646748226232482043807730979964371525258037722072658738742638046377510203829673090412186510050312306736950402131745326522304248923703763817344353404388488145153243607005614374143783787704132222116641767392792950150647437901170862389154773740796467377762638654275989241220314789101559562951446600323698843558783981647061704520169654713560950361535554930432954886702401484280930662336045898379245604065722779092163594340112021313724413244445467139096366651305370443614337657331527558027518477676105258700947822251333500693503830546643554602036606575409711990398279021040688477147775282808213208843123741440636551656043854303335208872615270350218953269164177646797230796608633092321160436971108618886925689306204404003557070870317182872651861061636881217435402426925176074182653589161973734504194899905086071532173948163928059398437101399764172332078737689336564182195906049366236530048812021735598091041796335563606589315528948658749335714288416920826722543048807102157535803826161037590231280891420017419128045813214156640267119345267462793091054174873074690558424168573191341003843424070388353021934642707016104640310327858470512987893531572674340491564336069046940054660698635818411457872106108384433204992982826389922586306490920538628664332902732936541600359213334045629537455503767149906569948761630750368348209776234058652698016712759197761197998887236217514866771551670117672269385218041631475176215316266025443232537233081189439131260004932984917167791506251769694076538926780810704625255672231317943142817083644605360294528465342201416959294353820028366494898670011206151800592896244349218147702611067960173773479570236141789452970403683729026750890790997186999680464095232672921709418910160415674460959345821004085189263945441864710766327713880491808242315109483294374260392532663895842317047832093375111058452024035630957444598440444822260790544951709311801008668149042352062589869838889744820894073573942840946536536595279582305057609678734730157552681597192541888089562532654879100110902359742925137307007047813402629565636236671114245400106084899086627374837582088122606362499605954258235645345335119242413678853906495032089984256793503028051873690322530220568480900511515973487592607636326799028326275207238215116588212388149616937888089283474882112640556548320239092659299077227115126195264881194636185256895285506439828872434748368493405635341764921621355806934470435157408781061917513330247858263891984264062401508805353897066978255980152819919637349935706582588895034021730318071736620288242879621273448544007366771092443718794475901086968384049845473944176177462894444161152665385648933756929496370335451507729078888745503705310011884314980110458229390807770995899326830487903529401641601227114323579357799212033129280698744291420198279835096517890722263316366673745953815072098690766217421497902001777532605739750906623989448325947733741283952908969484285702387511464445288597708169037988310967343730825667606138962181671042464310206576894487737760766904880018960890264982618527786014656671305969052378307501390460539761604653023512744578765043247401406635270324958487602970482015980849410692505470186375294972877347359989341837857961930291760813494110270028059955173092683454058363408558647536872734140688092212849137477441521274125291236229272335882665486765617917182814378400311722290263195543677560628332398072515777206346976499324005069191135199989966552342708885629083304169822668726744893405029807444536848339110022374395616897925089602722418929868383889513484167639487213561302212762846048549088067452005553238466099458607854947803525990864913780484636597373712052763419807752970762118984540387175444662513339425570512918742489711652343173578699659466703894268232071067528446111532782126757353038842481980753741090523178075236385349210436821964991510531166062025976399498729578995419181166225456348539268369445255681873122221461551124802083766954057266890627609349607153660905240498340356181242171076461295561947761072503731137597830367103755600608603991090881557515793936166961714475087536062467615700454385018482866176005121433270809839022700143072805769074700410476025317075515890903786308474241463323620786585020770684418401341934766078018066957395752519444553090050348000236280826442956457681383759910666452789572444390100568878563040542828294134131166204283495775944381451125863042816918563707643531344818996002560149803422576577978718039417058520347505279889077623596993392305217214738038749643564786654740832643850406990233544286094637813573029681970763544794606946230225819688196603855674840155695504067275622716384194302360115760894835906996213570432938600802016159306078680629633192952134248007108516132593604026910131689466164924212990612560783311310612713400480869993372466213955634215513940449155914465962614490377521032642803689955690627302452900938712652218454916862673519649233029279987122802679479717601452964935148642271834067934049713275038197279190103797723663494848600763985182329835143233148658084436414398926733646068543999895406224063876542232202600918489370407692764092815969977345363191039760176529608634883939318855069042662845087042505349862594361804957030195673799870915015464795476814594065715627890131647593267500224228275525433789231712993286694329109711016149968343645270722425229601564911900520799797828337159348644253073257822364321979724776918815260272103328559022425155401383353548833154664466899460272311420308507609139619079732946058589218965703942266244798928611328853794442063220474724412130561902467409803390265971774058702730105974543411384551543556786537524184037621820496400418828632466342977758135940877510072187465756513393286252219269648866595755096931014268772836723423095063651918587961524253815296988507661448879512094647217409550120254052624442986853203459592832361189636828719103767098442878328532630967547206161540775749563354886849454072161714973265880137104129796776877210930249263369251852105349131898015444192999899130923668478729517966566978777266225760005080277783752679179838579908553983192547747131195594429627873824987515378601639297713727457407100541733405147419899690625771945316145600717141642573186119850390739233747609284678252052993370376706526474361613754402878642676582794205762562194202625190992236468211606203301016294142421751875885982918982555207379677565331381441611494906008228330477336848409058239685471964203167688425222405595195734910668202068086270184812720381217144682774315770943498482740732599587771421811082487100275441808301476326937148354023385339457475169382647519113155385178683191827672307350737488132628218879016968369033667912931676539510415300077212570230945176729718562218239562895222706056472869454958566806128943956938706871221850656240769875302835552787051952156674669704234444236749414588217640258875356526118772441749728605708696168204445981269000503594797905613979098933001913143994688081751768680082116918387221630135299777935298105129914587301417691632952367642243997063536576099495813293613334911530014202652191467494327484368626909935389785203261903769451773240362717277797589087633243655394224918720869621575571683197074612211442971393762597650605832260213770296176778980361885518107589101886141027500614062660721638457468359700987678416487036328705803198583578719150527296543896802789847592705322249956810746017444211908091110010332060633951537935197190645791829422474406844569866748646785053018948876504192134230703630638583841621119492735476567439264846243022355139984207042228882192194516893328645635283907249342157871183960325236591511260023841232195661369449028583727345808954739286065071479868499959516039058221112813411063296597964581891211835629898159347865329660587750806287349365347507409035669246573798986593256840301661251556451855918633489769854711464255411331845259592735163273197081076673226447676611698622754855367224762432453930944110893108646386724447591073705504993497740902244182830938891841109354431054949114921068327726740727479041589277176013529770343467434719460045767319269413004347246870998844546468413796879090367799143342799449700271053287203886327763425600498950813969318152090270254876578137757276831825677903544447228644546223221080925740462734941761899489066478964670914751607174250201175631257867305060660009074086644060241455426005168402064455330163244543780123670504592186884944223799451246652553023315744888162965464841448655592405647912767346242317584255983356990057969981418510146737205896493412666048107633738859004039607627599091227825967300334784344906847108091569750521118425887122441807565195404415178655262157520875204557944337852037738211063347854867833824907658397293363709280915473747396112607000954665926968003998688449871760888757079503152824836194039569245974494057518510510990285019462243672698155227431158027005507188467101972599789253227501317067178181628444597168879387265561999191731189866451906658195329389579594416006442216574952858420429908168944332177868148052492767285452043821049826339514942413079631891650190726028671165054013926677883983504790290858656627267103259036344580575978386996619999389959806660947949902013076670270626060874558983846457187903266144948308264486123042007445610608176904970297512352578588536688872721583989418070734786057820320122275123875827521572815328022885419610460884710345886110145531838431795906837379404269523243591443779141320157840530189731584684298625341781387633867544301363223989042147341990475963521598941003075504977395420352542302646218854733764129883440994179113708096688708595378036801865401228402290259573628022896161311734590148705734365579423901327550582439355114676435363683087163573043791547984539726892580891765151914640225819661834860300144302413778917866947092162918741605702027090487229451242967157343214415539972136079735728213962645481165051619893723766376314674447042372480259874721630525782254152958309893855928889660013936143556346875836570301175590275822187695269388789111818917784308641330292457060648634078077442937049969295799221020530493351205358821285992261210487761919870489010248141981160867622502225084261421289185465717328898677349719982412237787196792385357973237795898825834241944064013795797170333948406930593899182854061082744667598932261326426395155290415197278135593126062090573769982713668211028597637866254343222535706230252437332888301545163065198546467766818412971888896238756139488452453757180076502303894636965175310108207144947856662511377576602131875181235073186924624401706738259698206417900375945154585171507370693616653989311801190346033716629166289566513015639820493952342243388288681452299227246318634427400467894142830804522846677443535450963061357614735675510698342092851562455729123747066624835808360052168647164057863223576810531465050067528466987475100107064985838339642407738844971736716162779587614595291494201278503240703836931743274156273080679301634355722895433620737259074321448293162597550240501842073320968927995327033924237963141030177939119952784286762942494245192050363698574846008576592980243641641398707145439641273909071919487469789829708271570916788644415043135695552534596760081583302084517933715306379412130376400704947353745220741992053727957831055638653001585133078923615554598935420957901916240958448854319560519152717911990108833239080605541201801378941697742558536275306482347699856496833373583971065095565553706180259373523437462407653302204988836172200970974384636888206811613382185564055722153015900469538907519347099894197031744330447579203491648404113293771218557465728241577012338041862622976787283179281422877263482413744926280477434025091143570267322608505683661719003768769266427960282983022469191508756597756710095209886019800375914675958720087353172747732261039011614632420814094595425417746612580639740232741273664560445187283848542403358357839065487125387420566332992682239298695517043907502345436127026688345340736366855202925746457645392212714206765598797585501157418843259816256427178123300785987886360631979948967606743424516145220326508461050335969301063561455119289548106424276939596765202708604488782648065201828416536574545181366265907987888627124731683678341771680591099157106671346941542318253841204379573402676630171344670940054570196112033565435908805112243138885895703115169111865790489176192496457473254420123083273081012949726848065415509118584795014850464455501549687205269738301528652587792894612837704867461549029061626698258246759666270291343367043322543069368344597682448764029837096663089070292749180391400351679447338799769243934859607583514319554122521748376379584110975989119607123456260125266404172396763867100483360228901795405354189259898590209058716876386871831311569339077077200940715625942383882252349714080941039509555822295803978836030137330966094407320916542144230883889703663696313086612196675921064153412311023521147150645886308763931022766083570545655316863598678280070417018879601805805694828155499859904783392966288781768069588842968256852886195097732926271837559042780548638278871986668725426824793153664367093890504864842466609604138036518962640057022576228114887506654856163637767201136732836853755626158982583897047497888261663356400181783627518144040873358990915694102515694009815489912011746415982900208436359360802605982007343816629834435432678510637882081186282373904912506383453639259519819693223763595780551775884633405509324589628598013245587262197496225469261026906196199535719481703059039462091820791287162337113648744014243135705942961023125729457600855622477222437591214038528003438391449391594800168466950726858900762931503035310094764731997889214315704691781348803536206988798071858251401641854753372995466366510270076844189867302337877255322927293170911417767387947361253275792804154887473760797597546981836398035567541440749858329845262169464740597946603160769185998329589638815447803359332287417510301517952912354559274858267881084619915044359786769530393649285209171155430090032167317766294418516156081744428120827061369007345682654582310944094963613823646701559221288307540962784108024468971334501525222383383248203702676929809953930777646593942038409091823061019116350659446087843316142892516079857415563993028941593559034662443977539419995531338155316580909493072822642526800561281033988149530472570211166431612727980385289617931167585142505511770465318021790779092093409451731118901731267866182064031845331877282199709313325388663250752696318004003092601057156268762413161827390177839057022756436189338462921693772541197615603313516759771259291571568389576386980543357926508687562050913588947655653375045509459411588331513170145801349515168826567462407485162492571426740206311552651905246995388019914202049625673459888446383268894020676285287545530050813441694241357130694974394013973087100901584600021745185603619025468652239287349870861923590122961801249074704122472994133684351700283567309327562436120241874704895658372494710226927818319404623960478672266468037231480440934752433958133491549050539672982135413968911626209924587555015488314636327397036180642584110069567390731366317599766269236649868394641171180779196711400414854849525764681207003017674801887506631315059842905564154472298814588321201536939734221125604019380197644009617750297379176731061450767747834032070150362493335828030584969857310477558864107216331383643205606932090872230352201780952046599014191445144376410400301027249984616072230470770250126171256340904055761423972411676977450560740070657288793443833809715388391391707087034113065708643223559605937873315477134489769841562346639051885980856716001749985313646550159292090714410263036543849325178840457806582252119744615582157713350337507531813890352654822646531627894686005653832518841702133160218517240325253518906791878428227063831049011811955867534822932757556138678219965682301391660035081925914837773882649936154730121774873062067911368729506521699567725836030573154298958657104627639151585011919412792411432394668753526465757938320447089635588107782578092341014252933730546120985344833527433168769372585788168098851617193271318569489379321329603734569906964888306734914646593824453344393227662991366238863988168129719549730343450264273338410289210557146150576982493385819349616750610331976036757123255445970173628562683507059006309798228968638334408173032199185455702186277155701661864418835209256903056236381837132797055419090767221572627477018156444170901206841310957375912733843229335356028929253285235696546244677282010947678520530540578307217558585526333351864088905231543948969522234889434551114415933181789668900396358364640834036293389062487087328407990174309339024341486490631312863314953825499000372302846302795877436811770435276896011542299883504452635317426589730149493980536535263749734019715231524170005832202160212899058894955072635038299166087679954965168891706076327610751424724284071450996819462593154783820487826259722955704360788089519624495442455739515053275835596083849647450676585417059337764166410603966390239333292829959526826556694333494470671445176181444021983391358907553331732503868102306575376544352703993625720277913535481568698666386222121719785325262365043156712281639316322997799119378329271386147218117809837123794475848066683091901978698423602170273944469889860991894077206123023309837385429158813305006586081285210621765541507556921175456229588924315916887856001698530848733818082241872739642408989326305001980149166692634357768792491770819422619000585744945178773595317475659290695637827299743402736099997802143177435168893832528033009849212664972796534405535075753268374551328762090327484087264988400635202714653235973933005623591561492554187164359784379631732448826206662668084524050508369141932201883031711043186101777456638200741163531927490184845388634189789033368159363710995276414260582306143377242087360842936439929857059989084569310204298646693345406700122590435656201855705339532764992273150009369350681135981414196373232174679195208061937288264281867869928827689480229413795897397672351329294041042135296639426926226319698377792913764699530197088953267459320339146464522636823367747841016958715308998202414547689782765191199997249309792558712484937538950779333127185688594179736231065602458740726546269996886940388283680532020306756127500047749323137910398117275065745965652699377970618348554980514312833370441718011091526063716197557850674045903740650109158297866607726171334686809157143881396495087117841285499951484852202464555344198129069949000013604081451278394665874567053356069463779101051561098701154687709769538699559735173528996936986933074406600332226332079401048366959361871315755267545425097992532884666653097105951175443378054419301972369366570459639933925636976818090619001539612706626536641577614268138175588121716728388739462763280173206911493037209045501907439402759926317725713017239412655181652879210825161798241931919412982940567678510746032566151860008660233511341132999610664191191990633453007344481195373763505753103345774887252390775470393565676208730410322119764967970534290951407055362230313345357291873825646223580128997100852157454098396735918066878247394036759682561351333218845167349327318948005814097558942737218829742079591781532262759730452134211504981479407654676010162887316683765826733803744122590451906935332209610094758821714266731585385909472288667980019783000804978954093758300505909857316038309854904861514827318571764720585593544594896234119088747186330348789379476752404171949597956809422119589091371132081133525299824096635150489419402523981405751375643609928936636826011167106243984657717713838619464335481481318715495068734239646400071606657234534735793185241622690036889064891044623786371369586794504054290070685286670974368104556585851031830179834604389881198545207844353162871622926850756698645011634244611784303100038329542961956569518304555190713785642415161724584734034209763897656081384213681069481876754487665541508753595144927090637907809012335180200505817485385964979650672469742896818151239650385847906326353114411461030015059907401874620656221250279136203137658601960967059709594423717924191200349904425749158599731778111243676411234426678022414356509481031619090787337435870893543949205833956820504636436088839443986811954258165309871886769721541572986688775042088671442375553699912447330101865873658250291049682574014567190885793947306065373781142205619981503162863512179348062922864298001736647061517300103712744841765692680864728701565694750340003158720027166855021659575739696762424578939242108031095891047390194156495496017423675964421867471797546605291404969042846368052886192694020102929810961989066495042206394058163221991273918598381529050802320444482998844840443637291834102945887531963527568312292438291512256479971918231055699653182440977040527527449274835824093961572044665694145754402921920036469334080303406309524570842311503912262576421352957674181598742842610621681522968754883816415518168269166742857445672335078493267368991080604431167180828858862537679940204480530560259665904163155819775514554711328368131903743819318663204016805417838712324762252469410670430428139225290134052899898033770883122634693546258573355411764402775320264833581304855633142351953093646445315952440070678762120529515152906141202525869942122933274837035673410417100932157661165047472017693654567581731013635716713658585121425701561311942147968431331136613246174788906331007069554873626885966687121505914193550118606529555498710687131767140419570939398506263883241683836427149031061607664102510148059976669247630640356625533231174322365415298123966777709991421541384744119196058381347441332855069359581034124842589184448039106812891020836163863818205919226945797335306326007638525912131928859525705696321383600555782982254487537214757422492079349891915751622621268282813574180683590661717892174373643522930628629646850479375942297369736695635646215871092595038332409961103353098902884092527213751356230631469461179451647953306068018619087308895916615417186078570360037559926805673154717588464759028146550483218790979049843483036731971439014212561539747030161382408401446467982828898534212876252583194854709801851741962358379653326363064462327950668276761123762813747040471404318130249793100360660706534467141479691225564844953650907059746587214734687895451482934790383890242737595671828456047944461613189860898039287602009259171154257244453086529571467170591145819750109514355606286150498040339858722588070675954212654650274149231733562762969887718429366978644049899019813257661573249475225132219443364886374215949827872099675827574380618677175988929962079939080730186594762222094802671723420045538572320246077124437707801781307723939603173603947751230897741902395749644557633941479967771856715286378284421752895031998118938874428079154337193275047397608616196038884089369172100596205633783438785173355061499913743349187233488000203185389901760457468724384003349385034145992782258761108128782927364486891700544608180726461942843281400776107259958008012411780554168354544403668645940010760064849834214966786419150604457883366045555195777137868291494819738848017899439214938608037693435883409217291978302466142766758108445141069209696774430777590983410991846829718384333353536462886543313655624090972715015203079521079481152625472752116125564336511021047288768996568544829865330424048748964999114370148418097455177909478488689972560440415216607586681477060047771962951677802290395035527005942783021432582663754146072117219570348709289475947444972572295608879239923829127762731930603513187850997765073153520261254248073747847710619593574303648814514258068091121446491597446938452175850798593194088781885486678208443125624377979536898577880279758216177438418027909588600264838715302619371256256280078217995420154841932117256831947709044547879055662389201083615732428692483577402978238500993136259393322667534825233399443904340042935041240179632814346885470128909487709982740410824758264997630996794895123061389388770026704625486223936539078202021659554118252546090485806579211239830941745628883932320535037383731913931550147330244527286041269359888518981707743501282788574537673057270383178529046117473555434568524103801397676133918647850994717081819398496925523580206421551953985798214628310482750302707012737121635157681350743524466333167067045504722477513258880348324512077208050362153874391750646891033054200352533258354628464606143829487452378002843181654701419463083824182003015254624764125921378678182079720560149800348579102040565622667943740745188547718871011483675950358263937968763904738523409052877286332843637954129244318843266508696925359672055451074894847154177804912171865486961087051182492701031881185526721339865749076687564746135976032096143618836659065814539289333928618241143796277565221772332943990605298127041115281878649723641033467342215831653950159663809862612724240576936197302089538336138785095471130797594177672883625672342829901633043489961353980055983232239366214244642055710969574393277259998517082020802536341348332230452758428607952184094259959917045797745048942679605096927848538689387547844912892800361295698371109950488161576905832051149602657869391391087261926361137669218692630170232349767710157157597846850021959212012242076314440896524232354057214337710637686940620405478937966768034528480048701535285526360425901599805380969869143121625959357179410990821488770133400699597944676674536868078964346102245130172812721101299147911682209240599145361977900814472518075257221798687683398627200476638791639990867545834494500626319185244936997762987090657364035837039108012550196025966835002978386016141869607386432943486820369086407649757855151106034013581555555041512776894998242582825812980304974692409496780809299164880924701237335247346870086497198108082030126183349187033881490872935208778822707492432691194400754178480212678269086657388314588769361531911248104611522907938394112347285260808200094362754171740305609480127494455011883392581360165783406869439926850936788491749731382792894346649086680890004468517437923077260573048269220782359827220034267759301105030419363083121305977389909449527620819702480108463655159829787000854657859392508774722137196195416047817857817220532658587842044723719536199624384808502337343055828092359762144034419161254492280629378415885293796735619481954722258430336528654592333908685895215777282313530386236803939517745732910473420339711273649850857120776575909182686390712988207237682982547666467402504544783636902275827798771226736298469110896384261730998201311076361980780744572511681308336854692499214899795246202828794929346526001339298764369797675115713023438476244496326379245254256927513073293332701392409928177144111194770664001873395559133102777592346038428315880266046029829557959808860079082641405857565730136912458618290215896481121042308114940105291828413409679992598073449166887490571359133944461158923848710126802265282433189386031690079127753068780097906289125770437559598434245906031942673030728336001278786143756207104434556415007268971073418454325156060446114785900954637792536352946231266804469975041719704062000060219883053959279297914914546712874800881180099548809711087125116319284878711045523206797684260911396523218587434412102037743699774167286485964740556009459691081805377511728076718125282714521055322474644513159107556953024465237860741449058477986531876108966880752784532909870310999395598113846327559710413305326178753763379696130565724710498573371212213432242527428275193941656825831351992772848494784634741308782812367034755325869211375836825710865040016341170034652480976330267171107428701787689117394227974087999692242101040231791269038029251915946229882963140262689869333720797205036951964546267653215787451612366232059796903584796237768665119817718924398798103843384715508655019064718334662532808452013584575844457261023830007997574746274463014633176307610767471937853458557416601026932836131949200861770713915995217028698686769875853500285292757639883124226581802707258411282246889755175498422490575172255934675607792167137116891858846720679686820297622761522782335896822988555162095903315507204302644871370761752683099752317178798067660346734798618775657031113396074433635008659807131255735849576417701997645616774542757610476262303096993332266596573196528978832724982866043666601720267319901453261433610093615761307327110793470746868460692579777029147998455231722606024190372350769458887876563558779272654749453688821743856151379812812912562922002954659948754046454232437312807236308913770050282193844326343392016246564532745388681263028720910053357539694976181072479353341003161258175067804448551257041063362628145529068270928698621561354060123605923738755584061791387726229266584125183002742631917374526835047239108788514281380126975474774391446130809880027418218923554747678679077536082501486062848537990682243319624985747101619565244780029094196981882231631950184273753780864116449671033423280899679383603898164994275276734013946039182529633564470907385529137163260014070843780477420648911758909930302721403416927848022897629527230747537738577169894365501661055033649165245855415389688801843623061981315283219716443372203214140222936288513747601384181008536163666975713668435694378217933177636184401452971163489818150028301616517086791290954051871163048689739808043017296930511926331524278495790269212048790968070498067208709382681562289774159418056303502648981663269936883064599107283087955988573687301850001716816548168303548156116022533906656191987139617103033073015211767464640483834311086510058517646730379583133867902385045424541610059381846680555324950866199658155679112743418747434264804622120165713031343605257709643738326621775957744977296212613745650188268020662306843884349614584200970930868181244801646977900765499558868913292696142906852047408759266329846031410457649339888182640184233298233658632302636129793181126579864807157057016863271860735708531936117680969622840291817586210572573770932549510307371401144144432839618076810911734689578290613399058620470069098881175629738316180848581510424116651993579083782125226744962897832440701754251045636136636838269220119246619610313013624415179085786420660699296144621686009668338095476737720859112966486573722394084986386680358485397913718564678832651202838119569059660440081447940019721002736348056599850632894512748361289253742426881664966547819038411068757827318810094862913989549250507446115436866668052977768051731130269313198266912776767192825550411228782462589125385694322054430758800263743074636454693543339024730569926830959094679106604099316156336653223002917125515275822530089992070225730158610444254019777455049740195446031311520671223016999736895665835303742297570644109517805048649372480802182704018833280477267028077499423313980277231140244678562784593237366230687294679377730472087924154483216351155218324524742335431125580956288511555700219973580187921688933034744453450432705915523627915332794915816905036337485676769633373073282490232136473346743524963506104969474105873700775467628622417357523465934995421147019816392327362894588672583633795754787032058134188870329193053862144937995946816853526804968624847573639843909469295477086231753123815138040074608238854778262793534067150233976460615252402073621576422841525818092902766020427453558603643203802410547322345626636106465217078312759268546122675044586291305060868136903416063805210615510346613482270983377877828653121409198498141832233560352030659554344783867385812779316666517231081667153137851475228596356824849901494226842153202147299592702837057004545297000570120773238779810403626291971518368245871968406589998358834719194427266290736034488431549716159758256749224467028661724364070962711104444485196252734939879669498773248080050442578970141242432211894377376252402306717477997188774145334783544081324523982452364835661254688635453660843460608686234330225406723151673493868203307450243628558713495840357886453428108313508246700958965887170803021950074162833142033128435596881768021142148207028753232242361693930670771468075166734028048250319129074139808150810494622885315526643548617614823476535369715941488333966489687100200099647546259253346272250625915832765295865864749613336298828285444793273761208327318302784353488109950686289397040821528607109064331748071405162963906640166254584301438413778890604148684705474800395876893527233166146601016419295910150554958714579742365389478722653036678056425101478219619186701034641709142741034775523919382989157210978237983025133708413160923494528124152463007232765651180206344088618784278706046526059459369736656273063968216603005991201332335326355808014187041677900797448774473940949790838732970894654771442285392064930338143489520518797015583062657474973918421620338020941775033497411009266589299053189473186198478305139630563141051533348370155090979879941116520568350210661926691868077740649601477762603551579226938261182394079985775381372636817468454454702288249815515440184712091435167268316818995639238524245413996675011152037096592851843455125276216661532344405749848148812917806478474029962867622202461968896331852137515598189891099465616472812423528953056916040854060802724133396362967501919892646531404666045567507297670405929638871404084735402519761040664120838084001764272903389551763909630178351919243206217001579362552190171090416256695726456754831185897122045181123103575862090953373247785994489775117873063468925512458016146280842005744234829532140365768023085653420142736391418005894678074877491610433959605409181146114212612775583627647219982643995584080364203491109225595516518090923232218186102482751737422110030094371411017917727089653439120918492062245225733809728618781839894563571828142925449225385791813724709846246362867035993997055240415581085879206052669946776405560545191692287457000430834653909645895430893286233892145467330427966800118119204619805748978339528809730176509336887929386214350731051602819459389050141089313557191414134500913911843703703129097440594338260370067615106674349539428428176021241516696997750765877308309525139830496759145238270990169247612883019787568316135280520272809880236503678724037253964127688948030408861047349508425077761468750067609873900715876167218210586151789864223376588638949968019168267400052177200572909863745266669905903133788711429319014642223808399486316141593666193752768605604582116961884237634115533098350265602883815411806453136992333417070523305856344126645442196813331329756093837174460603826551819275276979787857918569839324566305145038179412652351578418972699077978620533912352916494067903831697169428863984440019970637207180223645317460443688848070319201441691105640968816888688789023420212925193075056246083046650668424837736873709444838237536773366376488761322327594286983837867657208219114086866156850672675003530147831033121062385949133887041603450460766722608233639150013829584458392460500521203249677735700226287782906780468470740037036694984774794752845618333512715055587715509794853875269751701055159654850896084994643972062494740252561300606059366870037205578111240861875386735404549648292871626879694492409298046299646698288364454433206031505358893851304282841634791426268938256821101589383116981487461624598194636587759306093277483846229443581453495040120492074537134981984445373709223567077110880208182198619528174874791822391761530412498201864894335724265748768401341104314947034607265781125402334464409762756627558019969656942497091639776742258237659905931628989755894922814892160671263898339966606111613790698210309149752599483794931493774940836853344632666490231935564328373122389138188672541696517924754674924309663212143464546276826151966688433599640562900443224340143129412239774058454876775246650629100963197390281960539294796866184328114017904975135663154825316292870884181583402201198707379844702466680252708862177218345747181066765839843189580115642065699735403334586400727675347065341135621412067723500142272688477074821389443257873267740514534615831207690919466393960278150627910389176782061661922575344119338766216561606522571685142074104161974293456261396311747773999420540047907410292226534471672376369807707215404309300958020506820720430294225154876127698327978603497100108874644898275905504253789494505264944786072564151775565583042898553388122920362284115085283429742969265823969847318144476316086513619553906057877454312188732193317300064124566786353953535265632457390166446123597181372310612951091997024468466502390254821899184771325191188343850133679968572794551643876668072014161626098999401169877108709089793303939334167464616215500784937520660635675978496566709268816031014184796834295726755334748688709374780170248740788833714510116144773884864587119219765082432076636889275725163969470576475796631659044851905056804798060099779367808391577113244277719523164398664515164851168491623875990289767620583266073043326793998806254234095604972333776813799232356427506447463903584562768710966841771225633965510394234260605800632514104021166151771731747745250929584843711523192613293968847994502385706802845488852720997337299746560729946308160889266384214305788865487752824009476000282487820498028397022580051988009193264091634391163431347915413034172321834130719771269453922453023643261308042925465858754920202886009334409203139383916268034044340926979635542599124899477718861095818149044478571256578637414266707076490055825380989046998176497644946993698513299482910260667902895694004365488416272194766650463908642235874195820141236073692527983663755253478156688292206125764980001534088322627264444497636562019458240102749542701590133206446743877696687079256694134122868586437480213616009443836071279253533836311862791362693607383102726441466778719988558923063587414670573271174655852564630703049831611094085741566144356794538881145647772452832384148513973548898378648441231887305076437730745107410945580845142368263106317089174826602781788359896493499954841050476066640755355922243812269349959442028514893896812853112467542423905264092087205197974291222400156398132447055879176111860397659527445884505231232037775842947919472806320421916446494692714042667633158968573444140548556040518465833936938640807669536916718442387970886604988455513672865391697154812260824316391848250281573974625045468739893598122112816715672234987888381456525113895814154635934405538064892728920562260309996586438154503527560015099773392292664482324922264736853383063479842681253304936040678557061624937184891281280303115684487222637463170775281924116083734134539810290587672447119158974214425851203699508601788887531491248769751507333006192218899869166228963726620261408137036956514300633652280973740897589392375617582612737637142928189261896627687206408279291387810645481010115165308087376049100267923871971158150946138142712772851634211277576464747973569264638511062606655550818802110233902535251086314543904482565862708744320974457179817607609695492086432372259762220268423820682934377253331483327998272795808606062136944218181296795374384373647728175021024458677635846591718658008238676875153896463374148250685229030049562909209331493916485125966806047784558360701403244907536244498951765380178245291426319436573186003731119345835986396355364716854321579744204832449450545712202833047562299586830391404003939215706421658153338844939687059155362307019516832006340141042813063821923895112449433250369748438799636405547956111308842611157319475940324413914648949006022885598980765751315976177029460476118062780476742487067588006607002205605131472564686462356717793271657380815344003515718753242905043221375291982376945271394131418694769710096472389225419510800068554784515093421450969555619494372898690825888884514716788477471756837728882260377968255715032716905698305827308709914860039490986765355637882405829483077741045035221289639640383213799689157304179872234911680862535354232289363638370659879716332847164391211254540094093438505590732037438517496301926798586526989361010997178335332053788144508119310489023684708877439550170135975197043645269783187357535993561733146410998437369080491418675998808202585475267641825711267099607611723363367392016575180648127681929109085410264403714329387525191256027992401712082038510871207325177383422278370695707726566393380547522937384892356445868945289221952255976863214693533134383619153713305856276914166917776689258882866470408374178681637440969767953586350011327155124430333329987819327291821096501211038519490964608260271382559712870817143646323268492050964120168041698394277382211549560666062548430713011247957370660137777449251153916459410587358172941701036302680199654658445450813904154335857519615401077804119968429918678495889027781118200725938384326932518544114565008141036451590387237522588957955974034409422510777364755840478313887185656291168581688946947456235552463083552456795357378026192092041295740934700890225619665367277617288319791372371411522873667352600175117538648330508296135025564594726462973133460243930181991327500940775797925336522374891271861281480389396847440570261721273226349108927641266787171145497305495733327986705398406176401719143924166588398444498622881742894884723812096636215880238658436412558322865720046524432157419848047236662544869832380878387039481843390682361845439696191269514005459611170314923417615674068590895344630682545883750173194526388936442626964376245010761974079372114370511243983817607646706602288356045527759417644653946466115977883441685256351704095886149231912830090756729327716000684037134280117936690925474922416970586206353281125095727795640280465181500264718296432756650427201352396020679733169691727212255814490728792591858466815791732995980795146341232517744317886620883490933199385026899425763362048025590561110407568117202638383378273369436613793793378221186523867782783583774443208934628457085011908437458976631732977032949916217455229690948367219298350760752359753127961560189392869444035911986096162626489818855380448406089456099396292399594165444185787987388437480130494084924135976556147807962085842800728939621299795841026080625268210810512221190000966818465632979622074815173546612080134890432641650174551659140071239263816913495599844478484604462308622051161880999344083953727486163108277506287900209861464794519931463332514575538506812959227155560347076199802634836835823435905863181009340422059804973198175871585752249940595872341910213478388516331413576727546896820745564550872095681021898697403866722082015845909055571567123453589425066352114498254973956406672083805106605290632782025239967381108444830637119484770972767893203811740555428352686265199753116093627105100235586513297190329728177270493711927823189939713622453045030347169046753071302394132554824988432685563781656059106688305977684606198705147664321475191090700026250122896822089619679653171351717822434171752321484517781004544538098309616138468429127006358909867073617416353590710713680014614004529768740891043965460043596937420380860892381916060788094268357080610089625302407229576292584752206778244320628779479760545912616214436028985677788956197639235332248578211827730774408666100807089483661855110293389844240411226390774901709303717978432807274682860525724938963323563069386023542636212585970163477246772939056375952760998684859685034302679781852908290803108933626622429332989731492212559444075249258236669016876883191686972995220936785389659418087835758865123728443862275001211603009759415604832421201209985432301076584144593252153436073902788017809848906279359666428588110287545668631236713725565673932473018269742159580756702788101675882309158983732692695346989537021661799667296279718617767587251995263718375408960246292093870959483567768042101823550589398685741122093229007204412776667005913069977256073452250265430791792297900425868876712895099709106144018094046614556746090443891921960819916447196426888264300952089470915266417450455842570092249076433722503837641152983470107388589671156134847922289786640630375548588751292861198949344816028625527654970721842807589822778180339433888702668311351303857420297436803015370182952012443957880136513789889516906027377680305945283660021747060649420856425758506671236412182068196118299032046478340602141424918410726197194089923976621648047886623721347958557569105334567286439524606409253413769862132667122357338437615853884707661998733696626174735287738811072629542386409161166412399956690061368071306507379020523645930439125944790781230017718149580739238173237480171756648957333077133757317943916066706589581433077993884178281571248983025335368494870704876545243004335501690666772985540717551621449851643951945217744998090831650019103637727730437196329209187527148489979986845620523270070468637521280931970611176967685135752740519611568182072366250115474601542757762742343428912859292222560405185779564302757705925833760257951859401565437004287282113317448228405040915818544854174767543966933079450265364688916264740568728975746142010911768682650175139207166154404610326684740964006806609780804171989016065659498302595143586468925386283615916231517410936939558072566807177042355543347373102325130694364727251545506357086181996781520307131859412145542104230454084730701938640010669871170177420844255511487257390667085551954998502306473112549491464169687121939460285867523628386424170728517845326848819495225818223718870841113433655907868538919693981770433915554965981179025785844801689807172864428561071758038867740205774987073810983816047175101330619063979407023029204159601392849105846952819624670283558928594879566292894610871183915922417281561345083236036744343265920228369012893080284214315595193272929597513608507743839834103877885743875080855663960750631975114133120094628199072166869424709238126957332904623086349096011667040556541783552339422783782950201100932622804226075137704127230795756508540801537711054107609164614453533740653392745509976036711634509553647840049870077693363795227304464291638106627229048060513264796813113792942212918306329056931402268101131925908968908206862865443730810104265178525446618783699851971963104069075013825325337295154351039052773771171477728644622888352686657002149390147784871511411255251316818571292179173404513933966885961689322291405943053461041730341629324520982607457323213737496878004915552931034873026959586397167380090135219599597701988276422672788012191675290655453666840701389882877566370243826973092145307769728775784250988998985673354404945742252529394717739095225310244255402260405974726684801642990703831471689333194062985509292391206251435066927372593861319250403468820235504209931406189715064695742383097778085929222184071396692991114276467411925837222138520925845580257193701089388876613068146499287410776431643502373439941965647144926993675578939149615560120223849938865927666303463113782822789473106801737548579073245788686793987547436363594311476416967059339074738073421435172704686391683479933089628582327791693848432147114541006595588130876162747898797104302460662477616249930467204040108728038080515710624689856141803706772591678652802838468489422569496612756271586704408799651383173505614507509800096231454917757562567448278455842693886470096718963894519523441814439062365517897418327610309724953874305722773482477922050851947835759445451069176912515298531652122187789112023073686783463502379913892375094784000598777001755559136797148524736202892698044489916607381209649607199127455656105370694189494296859182035881172159507910537768777199331936623302910019005814246527348012837441147496710219909921543578498497495444750823469600297299792560794457756254788393637771170346207807194915870388476662124493525221720714368360094728191823726292575351015605834713247360818711400327319005421757302819330491266003381996248307787972819685262711640257432908774501060864113946947209226691243085540808823154479868096138288832270379344696263010277038387391770636508612174594024268895451127487105669082593116327517628614217903814228338081107474069236470824761687209676974499787087035070344964262383651910054269772955372318856786285677297909326209486487346539181184426414601150503154743541544015853030516294764604863155484129553466544869994533031096436174858479933408947087200365238617431075913675846009242138481835653319329326094477174978247861651731932824381719339362308019816940732254449105331627586065310614429252056393035829311862531735869751084153575732775933151430055720829544246983361288438720789066747838970056232362062681318156162146173576510416362955403329991780856828634134434258181169836650683151132161640625778418120566172204817200748746810491625643068300646279837570936246427700206266584059267165330266727563547303035927295141516205976824864884516931797800069077535323498642781847834216498581941547351917329625286482509191442904911286463726350163122605129980232647620368677979488807545671770063712642076522156454347104635679996140776950536156851118839868639644987501645053678070616318287126403334346651325483563095353739557557247791379207033290105798704086152381870775417257833911420184476407182968987284423087918428702878331488526805714786450030050443742526925860040546089490585882712306306126219519259882789166438025056220132390318432179406518845336826499238194508484811641257799596685208980328367532215924455616465838450376039025293070927936709655116658354549303424293786822726049810932612393174180401902318514547490852542504647399263284194885801827060834239733550824023919196492333598861881106464771548305394736804740527686836572614417117043965611450734521253914825331465561471071283482866039960637403607060033117942835599116167085860937750937713701585920211065406807950184273266255578521755813390151750492945349523732181717876786986238586540578469193841827042474442783152006160460603093494722921489801406780564572456916312542250641268532599308325933855301855284431629636712792955870300487645952067848039651389043599232875179949007040434202120578450810751099275477467526022778909250401955104445005318566363741002473893101529033530634474656612401366719665250364709513413086538954793896766128592464868371874992212658639872142533813401268532363004126682208476742457340498114522403045910240517634888991897146971037811020018658267800925461933856461872404668114916306652346349839257477452931981257545841673239682505523657050223147887174142911094139702928792698937193009437923542763301675150369167223659218599320135638928015796285965770261149448985772753884847201496652458627107633253856224992300312177477514855989302823546417454464197802503296516635684744969333479774827104512521485499102847600866304906577585667499993301964095440163005084458811513742996122783513604657541576520605255157840029928188017199009606182732200568693688257613306746417488729709785592540152286370817103131376689134003450162912981637829310436050469473197110795924878017344025394588069823502230654566022772952227901967253271748963483271973217492372079826920081608182797485087313007134514268822179215626782589125714689022560579174681235233822598497600312223340636671014888648468612682953685040351101524082326859416858954222474310325691334407712674410827726348666289482329702583622249288886521406588164443534688860886925821555280386391613775258885752371429957168611814472195786360053793764725159419084313844341459566070793706551135883505232385501306928388572395839105369752007961223429720395355047226628937296870035249398893814795148435190823181185791564362454597556181456298826277985445833089948182258165076231426326690745735226392135034052206620352451596521615740571618287238838168892869651871605142141507920421454911034082110990045286664135748115123572565284344944724307540704607382428426757326354421696318489492082525052133498695271156936329848552496175301921765065425516150529612956706882383897485333954235553774251347366971304371175451742814105228030993697478279995429509986225220545959822373503131075577978281068083200775615708767207964772204157331638891083060986659770917196059959508574083642005444243415995893543737693123656168117178615809162954010522715093473779422622595465457594694780468520141099681801805867535035418787393608763993354916602237743004840526182306962166077899032827102969490022557841149364575272589926992995255554451165147550713211145200086374201829607318123362412847002166358882687799527534239691368931415658878836002448977428482741606773001006375623875058537193197524719408560299326019492145509283417658549194506967501651017992058055803947637703339208944760461155642392864074693249683361096450857692463242261054721174646246775104375342356867881729026992588838190071081778187598626940213924252895899944864982001145916743361054867468719984437770340334951620421513177636147715335377211398208602536488531837316739708966083415226926448956550913005666398721959546310121679138147064450606229109819187964537078741079678504123369486480869983013509526882403381930282196531830010435663359529575358674882207091039666638257595965644578901346689189970150422763198602893761132509913993632787186782695032336759153892545486452997285401970318026190448953581950703531680534034271994724765943439474181292879011917389300158672436757932903447651033917511117588451145091158340978826484565042964539041500876867229404134794583669737519992539201817679279876870729241762259112089913425614439840961892505846068661722498644694077379800571122316285306605075072520326462351101775474844620841217851506700076658308642165435930642127571415599539169149487671538559033297040115209020683270617618603782165668802945440656593128509491653625134577712130820790988286696554639271062821208437904559063974609476249719749807935871885127659463250774942658605240046590798343901343008586813547892311190706503559477452724483414906009347897201388205925651883118704944252627556385448709760312164255955592686744083672431700490340353612918435476842949100342321807177389048134929981638328972658418077432660787406008667167828725065447849705403608039075696065933022452496924692537763818987154813793482912064460058109874822331406692078661109401523507585690550458258866176186705716004459115577428240279665003909456882497467447541966132290970893744120792338313820014108770396353996783650237619222103464688021658695704988540230840926653718668869959496754153580266576291317241741092123115481374394375655500505834880095592528926360394436186792926672541158487154262025949907585204813070850702223120064805209472509929493996633154324038477497152494926622210497340092486890777333072322359371223557292517131727861695754511756886561204325007947479762726285090905653773818088298082033230222112127798384002255742525808119329259576951374402716490219023381858159753894051264955640209513871565789735078025924286548131953400385400266735311711540582333385491538956044680358940772754436189036207120962058717042739024247902437585692756774605610037801612025630817809007029996918306926279712034109214577733460169512807884851334170050964549464060438261497245918960216142330167912374928712376984233377256140159998709854711660251935821535904627984101073288828080119196608574131493349259765296258784396040077358107709036399423498488510520757701755602340281890870067891989890925163212920873300894939986077749573880642433193057400398679118247705736486971295155925403980151228695644083116785027760221357280398623917030724166247299631090927171359036745428017694415928301261220807270547786320824353391519804163563284849077011419653753316672624498992976149207912811636546178072638940490470301371543266823231244234530200042548068013522540524373603926043040588651196577786537563945958069071386643249386523249740074185354760788685310618798513535794640169976384043833886358445649879587483552365128889165466360252194786851430643559546243621508669764712528859731313748230700610954835149962955759962787223746061694702703590571375915848527173451897731238684666949819013964071904043016919829494037813880002590679956410228455106642697326922323471236794371611616766034979911975049561984582829478049100773335588069132370031840105041017861863275737308063725871824674140887259509659296609950415153020103067246340022583284438256691771143857737193557648411419685113702192944474017940622434794049462563006830775874924313901459618506823474296908294880357452272545834175110144965867639661952353739490721335510186338182500096791148562133985649401874265142371047332847097675653956034811549669641673265052756126791570539111995592061866956910051651419989065474479205732049275879490274347278714569879878066239954677305271977705181683747489912923363335232800081329747702406541355221760352294977118923843038658102129914023227565772956507081426275949747456058108513870375795287956601941775887231885721336300919152201476432085061722202444893791879078409226315255815295329346346250480174522476311565902206650783329588754839128387801458389232105383770793496169680441135061755386973240067487432924068060079713386542152765104288963186812562871254200625936908060063141826533806645047088371599140152719914443202804165760565004427225374689053061656252486031794986718084532620729752497739839462562084644064286725242830605740514888831756784861283661476669302942663894310661530416084692457777903130824171586614647518989413481221607854534548629546254338892948786886289417325402542998602767846453384820737017647382022350581727582947327875557490214671269311739063380197922460505938263929899178183027862113191199231307556212680460259593298157996018124169705714842327701032271271539711177538570833254417870632211677992155760042863671656716322484559459298457246678581617490137024686965444098148697341898623464505427699003285744652278530369628387688092599699104840948078377082240143659825978192084309619214928360324048031000697651157258670838817646771909411326904678069190604289517469106367687563273161244035120758468228683475227249638568268064199215128621879832002028639816007966043987577874638581158058440676667482783593933914798534726461502378071761869162118062623428242436736054580062952709219256245847641368973282800081390171150458742274790823232054964810718889549780897319563614493630912435451765405570284592985069001490095649425223747872135111972725792400457930269330450372867594850329818150252348877129340312195920808753891718361861592038881329555124020676732191246233594651731236616302497749511453847709924554399026007279690112299602546648951055989488515289040724706145900986639801757153558872587050696527479606066237660346550213632662569127257427941654475657709443878386047470719025765142229268998786420822353044294181357210768871094027013446983963079989336004665298370230165166504154604377767435048411633124245791312502908814451561637949026646457046680786349509850350115017831982278274153181982582958145764268334777350384568200155922536879583480237581337411145614297878249699035720324986056872426277448499993143304437208396113893316256320788689936500157840954675327352760431930378440744193252469181219627652893883431637440090165106831250419304180723524695547132673606213323125391909513705973118508326508105924593200421953778474524090269908504894126645602669782710486945835481148523625946866861437280098193269139032387748031086680494044840580169882126098116314941736694364266912590457913240842389704736778319314567681301049973237267496285452128740492378106219497118818377125455604223159242002042180817245343906100846893842890698411010786609712055899651453542213286931466290594837181982961293042530180365890002867189332516903764931330408618147619092571041291499622325741761127088909025918544078955899319805331804976540080671718274743454730509399985702867487804070014251885963311408658186545865736064104614934264932302297686171338550800163579257396303307771222538186351450593976105833829491585783752132146372952230680837224801624104428470437662888456741534890049737920165997343825964365332089113802540569583801436723191263644547696697614731161649817235015838867397036333437954520394276697013337543661324743538638885935840272208239167780638777991930812054752513273738764050365466642302561920150391698722213761435190726085946721467735600480571397074262244395605862623446371655758627885847669973025902937359650860676485298638267489890733144394792342786125279731103249074865492039566073522269305996224196822318481914323594471727706936003251600837030438692272572335913125603993950739117778932754792950292110195499963146498892929030673946003040707375260395145193797503844710686896751894300112871280155391123607668951898602901756897201037875767350738522474938527906253376399586527891266716139382076018102395061382349922521135728537747268128028019614859847663546492825448664002951381132342736606755810619607844182132459790154480428112949860125917869511898342976823727975213053219307530169279906768337655515662877762146433940765818735243612141686232503197116566553346761623215695745985440200019221750795372006790359701871799851385871317392183808404520120805095008144940580010432041589044145645430045776392995036682738799754043474444144063129126303423027237933497396337564873038612518167115016018513380417034632547319791265086855627641922844013213320588773994533333091762863398620490135418145679242707631456861997089425307675069675920826449403605579793660160906249523871086664491688314188126214556569104804564761305140989746407753890961638423257933453524810172145953887649375105166664339391077616938827164311462797151165796935728954995884420920946263188109179704172035670082823399977457120305434439770930446998580303557872252556248527700972553204423206828972817686221358767108342643763588830972359446961724833500816997950841190942935381771125460116323777452323832029542141648834526665262196934567467432244616055219188899346707597036334657693854181437949604933917562436511388159570512534685157616022305837277170941262277025723679164202360110076851334368356409090152308709886538224710676528338218355901833246087315251105945085415555073763698094349329696513586935212122719678018020996358667278008504138130443891423220329671670265370544973548316614005367567449765058695478643186186270970911982539682531676503359712871635027097878969938022496079728604413135621337116879740075259434621492625457501463376048646390373391919252319679960507052958570355626543013006806523709977611699642643105236852824759382844855065761604087510951338989082123785430305462470771445298974682208154505849863309044768054197629280514209408252202608667271859991146436552832866014105525829045856307479760296627466872259355894345893040241938634621557470583351035895692469304802557248816106755477506879964982340491332188412940200840092840987804853958743782444818811294736149134002407197835863003492416455567555808438511497555705218688322047363194003873701206779546158286007894462091282874020904129389061426849165467405017525358344118027755233013383878639308595926378785408293072268940086680608197120621568948062177296830963393070633041717403655167148743945613851986429763352117537265906857457984122772793968371815256993823415121885398478196148280967664731024158805055606872668169927594174690011533666434170525159095368181108919867119813223759619891733488936247412654406760630220536038968914512751796723284045389767488167715022335301107099502521517780820316493427295907137156495097435197633761092589099969755061509670661161822264942754702003151825851878543816946080613107670856381255297004177117275002991967437591580558370110311901900783809063478850849287405588926049479930270424680628120373569245835387605851323574572268020042439525115390186468196228167489769037700371079325372739974240750571411659020302810559225551201806347645286062362885932087068167974902601692252953324437197180551998683395620506188522707187138736052652795385621689076799868095343579584211548956667548317298907890890714278601031413634795527975679728813582181723721525964161307410184777277424400455095511240480551632274312992482732251339804563289783131656233154816129079819537519562123223338711737293256680727564834259558295693231664616596568395247863303109967113031987762206291692337985007756437607309263365851255894740388654232941499092110262965232598987031964034583028445516179967590190320657629494864417472307222716716518857844699899912359745510822648851232395894579156860757390399360560478557983339492636275502615242961540826296536075853472647641855008943687011369503593573612610636955279104712574279899863775276274576171020156129567639849409543679803734438341701142326961769943118163464988017106626011944037725469832905201237599819157454905855198257695624903123400709278911744298379660513450736273882505825059545954194446033793000384638837143061428786571490823232694439069707853246435176410735955629268274045683286443040744877664676935512903204663217406112524170649071678388278254166232850787636097913675984765416560232305750389798366650635269853506464096063225896232600388481769345554290866108579715096767336926527642850622960314660176829881881026545514245235460269789928071576773671810806806223337257563123353775853824206864854766313237152724543101081491702705522054968463478212289844006278896704160076124403340710086889284970334011133426786966664042749103225268245061162767251082998981725200805388716639511119310642491797958210038725375742914547719045154383547833988654238147349221778938103584457065377204180429784065222169263760174132848876112118950291358639325912667802285383948383055773098948387103315033108310322245866593176254194594056811038952299539850088163020423213215532520496976954697854417971937829457425735267685838448989791614055670698600110895887723970562000307742355962725930126101674096924418652034773629199515826815395121310636393692799807100258823554210055410492204749647064078238909615357942491506400808448131035428507834351283389314603716395533888899862781748843066655884300626802325851927607537910913970867372916785767254607930512054015490810804422159368238018631538387681464130371655357954744556951776117545384552692443536065031204454984922984336044291733872390738219793428015364841621942899676629443217636092445104003078633132212396633837257490563944699228000577980485358726038934681455272789743126680944978679285450011988756536587832364446861141774145061650125763055998777693781960191201061174401690966500646624392067919978260526086563204924264797426345746050365324856383219673340650199337929819724365844396940247700344065077322965556929620332940568158045698102660647937054688224713543465057798878598025346331215616107512821834543419246523391491586039697332974660085851715440760126069667500063240835200758031079514730410050531118376950007907437823022052192597444002163604993018559420912778383428858105985201123792210279559165238494236302503126838483898067146690780234896272860097295822955908795232845349876349622033107620182603991757470578875721144060172833521761284488763295559750572355296177424535478083239225997608635395729235768686497721505597667670306657081611562001905440203652081317318274880879793398899815870592805384250585429408977841444374714643232024274612452610406419634794086909617729535420272518040083939788123903903356004325334917843057084953324697106233702432802942372762026884900580492537509704451546968271447336619703692137509488467220569912499745047439701409795715882580955192972134348185665946404583411778848618456432671965556717815886226581926843779812196498699330706374962046081605753642481955228590359837933832339027144046675099868586600342819257742222363639043302918787824211584169488340483083154212124294270923868258127458555907882173596285827024968052225121598055046025255342515975402977232861663716275866619384421583989894956329638118629713383736544376762634060813695741492351175400696669946719909305157291350309729650664499394045545720681505302214998936248570336103165668101083309765316292753102155941655054085049205469739119518152316370624472736287236675277651635138549688185912337942722111838877565657748364509231790956756946948614352187465776480643868971417577258959096590187577066354908079801854245029485012145701756234264519743688764224129550903779246130463492513825786165852849839965923717432445733257908425214474771363773229261787947614603533404881370338016980938098474313095982520848899141973603194372217589032130963945042427290746971631845507441305785742535580501124771271072042828212824965551370567383605399774511058856489237484214202212617406022542019386674573624681889558056247046281290386082146813948878667113406850665965623114427060377369215513080602649141877080826541244980719256130752550591180854952817818322656415346166140890698793377016329019481749178436156783714035919286715836378434549621670264852896258219285152816309657949219244878645097081373702976797017748502753539781903695438919315820529038784819765747549682542932897945596562173983916910984364054302906318275029697522316437539571708697676935469624719219069073271851377618899447428335490753426011296765101399013823327881834306561847280839737829861014746461527777089772623944594628508050104027214617195422610780942259204570407933912339256392510261083120322356051072081667513609757982320205923333866041766534106302658833312183792419499577354088184984744093370819188199509599662428976400066754024128164971814329349120733175443843326115588412582882590640646787731591607226295238980721724299693826179447550797858002848279169876623048155481246397588813761723602064969958044671491445556296427719604880900035468909942617716769430148241516736187842711847819629611304176006596564207590276589083898062311974237495905972876993941035043181548267308021798029499213777269519644868064733213380741399492534128033328889897738482788159135029893242213519793934411349967702362567208871774256555495561603043115256953400216923466787651305111726309300202611316706380942146974699268871328715347900883112770839041933469526298621942214383021736672304219410232516823772255479177868467219294346668089897175631914170507288338654905818903344284189503174069657712581037278632362658880438461949157173164689942534828307799545489935184892995061772872297152434215986176517914786198116077699463384864520555343710777610632585673004175379462852674486968912985008116206453342856629632255546994223433133781419843187716723485266507354796461544297852342444163981110234764941730439966282306850085522346118488753774164731218585160895186282380741529199707475233877332663461591923055779722269510975611554782369489631377375452092331826241030403692934563597370612692379931141194500395774461609819502685808527283700178164906648800317616891027485808709402037618846917372844764416851189477367713961709174258444877115250218104976112725692720497697095001675063313934070183523675963532946412610176883686469556794282406101552949115838451985608306859649546081506011410208581574674122622439530788308491398321775929577275871586059689606101691468099138966187053490968860215051074529870442433947484278587365022721195981695744637596892906415352233872169623768084765970764087117666816997859199208451590398658281037631264862142659871719676418128485597129363584319096327988773691860380624637232149468390943431806274212431402490603708645849706812619423688490768887417376467181933670396169073343077857635208248201342770098351247746513082718388100624573893216276743500739206538000637825376050718471371842862980808341952323296540149797616402762631326526345299283146615021774676742603375471528857182615931741982001640937327140199285279708000116367662127998869569816887425759674302338448927779697682773448949894430716869147699944037498922687320766052389020016196573065979793022420006539001586420710079136695559139783170594105987383778152287791698718976396362852825337205829784195563247458997173078540065139700183479571689329635737819091597961047215055611599776118865033756780846418232057962075188058920332165664180908538526558387462331092132200641441060118744984671122459823228489975455631711098973465718400665404335263015239221881090116294212760710114757283809912559511618057239862879861431400940629191381189256788254267341220514001864083276465130467098077989383049817558497552097414648351529398583129501622718242917769731556930140570575068825833832822468407474293328266410548858744132581779499175894607210324746021785752865396443124038542474646390825701521418484209954468042647125438323886250959482548900806056517546997500667856237394785041838185537888300050992053272958255362993531440676508601271068293720881564416760110670369147656126173894136841164447250898343410091552022578183857292319262491659523060589576669000129496012385497481375439933088050521075664765537270143072964038585891356067806125579803247820112906516620907105474233223835869525702983236664076303504673622949847712012942355294533576201316666894480235422821564210925969827113141889672145416161180269307318634638842567819070419687244699858123051155060163073677582278323525954073710762769347023856953480142737371883092708735710544191683717787472303843114475189054188391990982648434542096562734045966199458913217135045473696886850196205472932569384967468833234685474875117443402453716204617552421776032936039883459176414484502012861855071865721012538468107843444326254070986189516285754625773194915324855527970435294666308744878389159585738670828668167834377334189585305998115214804399663205925909744514876905347565041058460965550721638496369332796240578325841129948174281547007693212880133708016101624385577939590813575569418870366122424978856093360361787184293324446686194474219593676813767462679146144884641823673252243646872789012067366105553655179725335202000910144147858689385921632211496014385969408256238979960030959911372020027518244799600174333836919608899749393207860933968337747168991887837438706089676878488080151000799306994514378307794082978301777024490680430820116695174170976087971591632555691557595311746785893180494293017981399942912292013486255406776174562510908830029366662259722879317949769558625015265411621565450130007324255150627928831538033438028610862962066896243886224843946903543497621249710721976342967801165565923027237484514943018206377222444217013290461803552311489542011158645555258562028819604343829449437346156404558315700015750909441355770401265859285195496982740897564913318457188185169793576461389265484485044450356131665338662429505278590156486533041033436440230560221447669618625476209175949303656566990460129792322564066150469162335255596511809650479371878081949671455306753795140286264376225310040290064771795659525652161388302562276504800404473991588843669223762582190437137316304165807121965105135166902626205019650215009565925358862788599109297271281578587794512569056751379813095406375754535539847721151490897070669401460318991588418500297492746796399102812976487367962149568222874699655102672004698004838568643556088515790433795401270413122324342617703959739187945629782454832363440715472444378079425523969168033865688690116971876675924156936518079648116476584394874044519588488300519890318106000899952491540028085334205016315351593922344088178667482842864647634530808187122979957678853301592935017467326640040966194154361359293219199050437464573832273578330756479724913470915505868156700268973110693552759795668228397407721085351034225991780672174613533777054829485534973628299437134175768645746134692076382452275997430792543674194823591796974831403638631997036805746576522352089620499122734848992113037251979612987641737228581697795468958410486052058213568446977574730895031881218436210391963378814896122000064744679425963124847697248153852290001298978024481325838644531009663551650375214913391122589426843482013962104309936072085769361912532050470954536936703947086189948546020143484969354027691679038788646742702814036526467905928176598052613035008751769881326425363223565167411130498388039217665416908571169143526816621070286528007441949931612403565983306221019016027202360859419616310972177553330341735447535986075273817869594208792207003372903778728094517931954981116431900974820622403063213488805279875481260587231984385913521439291527498368286146047796264928446677653973579767705795442726488033851282058005119861920212504957392803789802682653270171073739919749201434630045006412499791413020060173894505114653079682024516350620240311456036922575329118467380119848520851217589295133279078516249655171730043195038288497562599422477332745534492177226211338445339155978211265191541891879755712397092420872811048911538088328962433884065635813047806992815898873755467307532526186172943193666239174481372948177230461595684549484958606731334587071140257032423435200209501481985851646480837330726929725193298400916277591600460845443097765772637025564246446485828300046620420879100452939618880860579247402863658643842145726521278180842368907533498398343123837253653984183479312699887747639780756966145670894501513448322345920804899921484358585524668651109744687405532710673298405213516619908894600197861710121965115529805524908970908748773919534716072255652823370835212236799178729789591898045016631600708436497079310882569145507767374967612736580552349868761509764992442599664993020243219574210770752922248205507855293542497364145293198164452680701758073626515539578625996353900571378458960204905999329771057465839653234138337617365905996658889011286029840900011490968714179761847730531865170666315908525766204012902219135945488741098975424696114699089057670999247007733190293802084906773814942603490919993077319627986373675492397469354271412644396302061094070149175927911784707427619223876921236971249081796242636790198578975134504891428016644690178228855819484633948580919962401933292445140078227733808766864300479269304218058160695019733845762231315789958291282685045634433163218068203976586219386700562633948932686895254449334514822380268889810383170443586125185283532107696126716046378600279097642684820079256872555093482502566198430352870938471215792580954982420682975783390651795659358538162911422348317153736798046415508845728811147448734480345075057357244955832531378183927502746329348751858769049885774744264388220331612338047200899369535094629927840258225363082357253265383548704542338283890095582128174660748238726864992932232885896150018189407211804730923266908308456916786243815709110654934768706412102966041695653217948146455001175018229331089587958984622961322367575099691440361538287820137026048356261373303545625086543397409748615403871633878564616852359300719450334245697868684083243448357581690187165734530700936820739684483109414866238958591191082983938397396799455189095023736991808649930281197028095807524187001670355335617158344767949608955341555836218101523083950183301673540265008630121817565567692126540352315112486577796213739860644906489426090623150531994637464195666483123707679203573890523240577045385802038849950052600158452121915690258057487979184825042980468998332041585133221692169208895561925880756512925325046300712248021285751163503774696610577647048025049881608660879846237945961695079635191229636461073337129195717213140662666925205471757325631105683285212817871800247940471880470682277379811398858706654377391615034137747446666080702483873538452308671496536153623025578905254032362762773531132420105095715534776323776838384832927427896419732650185517461256284661680622456181761003652581614426200968155280580123587917346141822846834396049926048597794750836308778395405599481612756472878736487544976517645549912579129436328850010151426881443245318690225265744302950306288253388732894521555298218843662054523473441398989439254282758526600352548848123774173417318304146399040396335778460497657442651059226995342507427615857091852909538498939595674596506413353836468325572862079601791175520663712200845065597311808612175348940322709152540488458292665951300345931829312116139825420562640488267392383312771713972457230938499455897621233689871082083027737713141286067685468630459503556896954299691422691321824605249112860537928766381695954128559191437761153293045315914488240234351049858346333935104219579565941606079867666956212556267450909785039792191610844709333801166405114534682675876569658141086267969344078339506085950113774041440169640289232991835005282743405746825153873582468098160245451187337065543163558116159367126117252421648514328164451566938271065110027581457030808116457844672312172099572701596217389902702143874170302272116133240659735576424226255986022222837714096271389489186190917578065081804075637662845785573477786394012467224304817931581180539544409239289275143650340055268511929267982626886485090662590833586248121658211166101977626594474863323364180897177680717433164512592886419717321259122463969865339849231027990042191334688355883465248951218698950334757790512518178039682949349042942485360273071347689402011571549521735960854957951856300552331851900586422212589520834110582504185270499559192988470807357623292242342106500774348175186474127061079977898786179723335757648798895524590816029497146297217322118251422490133413629134087323400048128892016569891622078563626923345726661016251385359736214819019311341546989987814005959188617542537356685552987687814966355438981627485086644394089286950237407353538403183865668598898165765855713605418306718451134549091901584096355367149790403156408669428059928901006790763731893397758309399180790862257468322535399656683485344801186699993441617614403491470226316539296689150949525030309226693550203294633457368192913688951956348993304508379740792013698104034012726122152418502923523849939846589449929456489774342032325667323480690917461796684165713242889235041006024908335744944303636632748045203595876925669689715173812181552931262504497702049451104227691390135385592811132041619677283088235667715067407831389114476986983316078523606919112753221818797356331965839661458681582306070207808798242861121297720025002695242377536485081445679125319573255195998280179720973956657529826859551584829261031498787997069312285883035244444245228020239399825036653976498877207053380024225205911523850853803498585570089965231846548627471512187043557642372542909059619619171852348796467804585113953572609756993964639707741516098499153931135935785524089549485517981328048804659659389253124399289617468260047780604022610229548406608570841922548596502282032833435673713471212303468238169135187957253052243065937966127376923485278738702255392158873391833290034844134417699558754647616805717339057549263885280869667505710121389947875077815183137370919646795740799067406580421016565729131849145330639752215976470113001799645455364949812073189888280522996591741401852656005261764568760098940012672409019380451960136980466244660799633917950704194725934896104346775357703581044696891248084697356325195706619775583400974141340563193905244558188384754983370886583223032342272879726872484427250428941691715412461014910250249031271701412946091178999410334399632426662518071404814809617065091664548209700139364005643945067384125755809319471621445605948984881457854696004998609404754259455480560365965637070434930058986257295142079391151008759843912195566062410516719552037314739937009122143201324571463048040938750097609040672363586284502573680569249901918126954912186107500327745995829742991177452286481565956657841447856583484760077928225435811143127537859413993355882308361979080857763027283050432603641275967528608196619493264215645708448648285670309171751497021002395100785609166223961138073030789965893738779173194969296078634954530119772630443554679475476385268399831801797260071139235579073985210633089121762561646094708597969991621051534006808258485516826518937144129933316667181810360715090674649350507383207676525540615869597598248279084358975129366432917162298809662032171283033009528894413172671406500900908061273358661126711644545288869542125452827639441501824145440965878447480232412006638795133433644236801643127966680947331097454458791390703089270993964690197721507040833884416856537887548008488527266668013363954224484596883058073741931921246238099049111257384414868265601237233536621120068776865710135665303155492652503342250301309424844870534012016336034130990516839736362624025713383405610957440090913506048268290022943152001666368666132429511233097302311724126388889729299795194167132504869436677693434336778739464667689289533824997199849207049359741650351786129076023195132078719132891110985222864093421160030561162968539995105711249657630128820005762487022407494187242510538034646665895544707316484893131689350755256526416163227098818242725908018511960224927131700937751954589013107349167059227662302637642185287783018701043833951175459740866019328216125590919984429863609413463611390230167193783218020050574090704688433382937167852452251799813690987358049672605865660525730511742838450219857598049746466109002447661253651197231514351922562420458256326627409877957709079363676458855122735932783108508752324448092630250152531636149289848230096390102412675225589329043437677319839696784959385197484093827668172654528859820515395985166151125215123811117674999199821668615219901253319631239370184885242048556001513280143364575643138707431654744891000482539046704921576089352108498601856589441807747279538620013269760221747767551170785499449247907228824561389780340156169975242396915771685049465763031697144059791097545791398207025030225540079344007333873755757528347892096674700258921878618908871669564640017240869041460670648642305939131139112607269257532808484072601319712337671903947300273138364945593852210361715421503084901821033115859216591596534431574531493740412893011094891013207504550056617987832240225533511112559787793298561904268903041313941881238872130095762951351163191271073193584225083027635101792326673539004618199678209940177913921192171509722485151675931039407826990349109380691845747326769030529307111528464787271711786325490136540868496686981815422047207394008491669101425074501519440041565242786827946795300181421064164275302475883184093334488707516087717775309213222779838234101949691590403708514057546779991531876837059126238709351173480151938093183656340294112703156893447882082374942378787891390356643459960443869597681323757240024880062585560608347611548178230603767324078552925010780306670968074858617533327697018550408225826640045675911799619116100913194250952641896173388203077438027664245345593390913747920253268842605869844791745874535762418528898006087918531083095206685690587878958797320648212889477650949572909747629187205743527624778874778557940933565333218488145732362602124754315684823578517609140047519252352591672747691436315347926458662577724687161468229502281708605478855167906739188039221810100192543962427087751153779327111504242774319225185176523189051327715504709432220205965090795610600731765718771236795575567929655463612733679582009131521917881151940807518702129457682740051754863039600276318886644082844761816646704683345857015286183116347961187860163031818307325917819857013033253514458266975110986460275179356120958763170952845898024150240652755543380159316180660838447643164361344773364272821208774333088720688511787085262524651114919839575265157786671250670889673847775753303573390851134824230324488843733147956024941072499428047791138887284680739179328585416138890169532751876078347694133075078411621378759027360815153843098236942439648634914920071862382917714169353931873174011615689586082201366518646322929293897418207092705178613792540186576906927124425138336839428558247764575750756198376742931324348916891443665952625149017775091819827186955618431772012788688000251974320262559373811643584990805251493425468589694710044094503850755765813975325402566449693859070057951558686465993013659076113963151485550546608061779797607877419242816339852069344589802115577118912940438336380253465878666607170351812090944810911931609074246564264981349818996154702352291005568069205830517784316499577029346638030047686447111505683067147357333691537486404530837329500288163726959478269026905269540060777295719589311675124887489340864123557914641554177130998443290080361146775951593939222527848913927085586269275309811958120095490101408826973720914655037869948130452505186626294906817374159497788635253530991309602321332771167626933704200222478738779180410034960182442367852106713082744342113654944409096241245024945526487676927481095023833980917909576528410442778889961419985744063314048782062706873067200638985820108182734148200489244635821759460974222131279809710643348920409885746556596235773085868357255067405669132991898959215289601399827112152290779625026561788055076962047298957166411771251180327428459648351590501106070375432251075872296461822347397210208129046253764739940302091529740625520903393961765315881755651273355943463261670673839381531265182638692841421903632251950373805865636474109992738173863206662605255223254406596484755095759003336965718031719774440268465910663294813677749814753103008063526853689807473882999805970402271454339668852587576955558917548538709967982545674951843315705513465037897618311256807961856670077680247500047086830540626935400907402444567290951419685891589483137090434938679715688145814574799653354176105867618286236996456096217341619835441143727321661684847904609085157800904963273471347779995784651818540880096490285326600743802365211016761445257074813505778236570663227545086976504100037931186112124741591511112535656877294967062328874543948540887752451418803537102849192971441346968084238247409971561562544251600331382814023659615199832777401540369421903186311242029911378753047759175537262590536526953149378351758313688095791832616230459821992725570461229734672990898948860868512423829208255648300667279646667733856584724133821499551248910528047358621157964100697602126249902254945477662854392178514904919613471331899487563656035633825570776450756711600600695420666026792755298269659776763578273540871304556994041476168413359573426741933066788295828707612917065465511261086231663799328310685942680229892515397678788085236955064207785166710194034620238886351315425072974896169765672851172939719598807712665114889306475143195022635709012495323109985192721339479984783288367357394916273779001348513238452105336900146622629670103387111506809026728966804276412313221836252836266862352889309378591419094403349974698820364870862502125602398100492143118212311283521057007359446799155628921797174573118127381293737056252176647940656920786415604242300098209545518218549143383562641976781787382735953027028161659390000737984880887734255213399374470245079791001748736755748874347285664282875538220692341666899901191562624939061298415487727574953248882372138431612400497120438116594894008428754686288268943781083199122078379325024039049597804767468647626819013781977830900394747210437679505663557615082003977633977329658951470045115146485795803751073529399064678021217976995623232194578135748853993020740893613380514381919293174221947980398107342695751118694184543249302909050553642362502542034303750915112001616122076364322768012617704012445640088264723595547146916513773163832924707348605362386228113868799651476447899701110608085522292805376243071256614623229483108674152716593662107571427152890250385605926684113277021293796682350216747875836527162890521690075576973590174362175498910930852803391023596139130952000146552791892927332776408568354590751095004518716550921402885435100605347465888310645447090102854056145526867375306872648331127986917531419844923416027761065898471735698346529973781620050966767069210236158211212954223004549980867551775886788588900053731773369286068747562683329494593969826642046917919038451525812878005918336234418819841338049609454271291231193868743853694753389150856563443753076142029644944409245999608329162106016734309166189723194077873080137670338133269633531660886419627212062086521202941402739435319440863289698272011634270465348439643492758196006766633542626057609902113007831911796993328026052792020909818234830463203721022986555431156938397206793792210848201344883081990916523024712216896575906420174560366391955316906096885375506991693370162140491591364176665213050062961156431976166668575643299220404921356604597500173552578862522019412092610716391275397432360897723469357032302338633441743498547567691508796584682877409716406762825628377676618124285347438466115787205068775581408065531243662262654675252814426810229980171658797923650893692300085997663384475782662328442518562812974207029047704781218257050296702702513292829209233712096911095284352243419070385233000338705782844623986850960048050716318073431631589645939035802889538299330183199565585234642437949528495939785382025361678753857678804878272314665868161625421180141900736313042028606907889244057184103620780188464411242127207016190538674374081581086310783729522969610734097744388307406077589805827705993340759161199270477314238611455685477669295028575502383652482156761791638135577668027628986329879072369170503949363722334755781198407596253500962258577154953262639050933950553060097423492412262153404242963551813752856389743521238513254806580910248456283868083218388404956582079512580645424209070701461133957834377927325301094177219087305552277854550823420879478360787001849511753841831362241179100918108415597708685504868006286139856514329374826195583603891119917484056122664878555398217825465946785346836227974054494448947309827544229514998702123303224224319866248950540420057080356265926709525606176110568712467791280626710125705976232216284898738602575303625337444147560994390089173643049354137649592248897726471212446670825262074369941451182701225824245904066396188631152818198639469583385133220480719352179123385817166516734151944185481102507384975203641546292751164814668313409075262374327260126892125739848759768226000937793386951735443658797396200493925487689468930311257192814300065717097583507456462200117871235132043975102501799470427800718936752263932958595669076113943004014784487016329451633223406464475074615056665183934063965763539171696242349936010619775988576249352065845443173280697327908599779753766287300097429550248428624686756836069310859489210915008245477757671106194345845080538528525548750946192195296254363119865105751322227045508566621153091254148940476418450855143341276405327768298423278969962864453684682617763787169388370150317147440114490060051801789506844995221118377386762056601106309729276673808991579406659188479891524471272789086286668806381179773366202996359375773084622499807678067714942517221510940800545788049624997860757364074386936423620232573377341993753321588337803357904745769006052255678900429381796368336310341831823061015387641364479932285868514748210728204769088953968682353642755709645768790821551783423450811720587538931037010231310548945504185175036016599249675140956584837910938962257724029585658764908886745337815522888681558345799119464035339134656455384807085019999686041784208921197835430361660401140326151240647949311698489881500765288787142897748658663837110384105764010211615762843056746637944139383477667825585435869871724428545672715888226871412089235927045184775654426092216726026019371765678230536203551132146981434554201826437496281746977569279501424738693661742293409404027918218267594707782096672789417848309701589435203575163372762711385112809961219861235475745751670245022772293646671310539722802251969149328091970528451610450581347786872822745510171022188807900070984380376857857169196701307055693379845583113117595806184817509952828470658258228640885797735719316984400582684086161365431742076822473275315643355642275136634854208648226770747339486975220602960994753946316462564994083839116306921708127999485298306391904720539969616035999137163725680381301505964940291539966735992009912016418048918931327370189139646430625670857770410745709145776074487546100660624887328700751341864287463017328400023359375807629752370174162884115458000061186949518882277454932527884113431115896705378895297676908266722817870835366042593589533118420657647954498779137382723464709397616382958007868818938500898470150613718867949574045520884973376605074636215421894299829466080512158432433030911803427740527446110885214929747612389769323174665783178241208381189276724102317999997896610627419442663996362517126944155886598162656899764716872277862517628361240005949669122390404319138430286370042101055849909425154786569401219329744289061313461716183270736107675440315712995658621208696696199804573935981787116226481571363684655990759994121737445017724992486636999824516692144053200762788798198490817940725050939820352903676451189276826838348026647258731917972912278105606670631898946206772809326445676523523572733675459470573720990263277322177575280520986251742755636723190547287791798676547179208026692413615638113018942256990947456879837481995871849556895017842271518267005527502657257671713918346528454588609252220224736865036235549609823734654925388811825221879244689509677968197530299216547019459505680044641521583556744671236458394494586381729915868958138979270454521026187708858918736624902130344508746262523283095464893773324108670014186253764703157729036577190802755218227489452370410949458869876050102273493980556281745363188388076180328994724103114956534844343436000222897815126526614594590441947210145280954401990791120376218314092985955618421860201053045407840954692417696556636691828945781313663681838436913619636176928552703243116172050507109311613535721101877461879355524238704891027456492089617776237303320042756923248979034529293263057592762113823974422858361362336044809834043988170245757058205963450613779139399962765971462595047211727611376741538932118836869172542283977100524630720049644385596478298965683769124939768646304253064410059193584517552631039878732491261164890313287306422214223430241804625324681809452041842232685325538899990126879189304562019676165937939025703456464243016850757729812547065194115492093736961376770770379227975603290271909042458389544778131864981781185657207162770891137378333930779195764084232614920192876698215035411608428823036110158537101757251075463888491030670864204283559903816179198461965608380757494992971294222045401722189533095046802105188604409588568102868444896519540826691840213058055589803327551331137624061406060872581446791423375015625637492668729598023881267692059290540032428929506285705940067248144411566722776877737278469448974115811971163423615625894799179767220776745919564114887081425436382267363643203096713956316922277093376676144469515486351661816846140140651865981310086709485035257349299386431467007163801445180282686955519734732285243614957263412123063155194001049697514530070161752007606635773637753975547280304782620665585665587272238675024374790045844810563764593536827847720366149743768180830904901276985145286136335526021140470686494816166915962734573159495494177783475038910060024125251185808851613189712612601429964695747545043251891399752510843391178617493460659026974422095619854973609737876355315952602247090737862850188176475146015756737105562116198712414330486416177655554565548765836554391595316663900740003809299448988525819472038520285843516293117234140585149008364627059159929371446458619631825989416329370178443627112002139573628889848878238471822801240826917014759973388809822832615566545892418002029618004095299308483696365311470818708734248953649355407481692030813221424069981253360720248591920802973195665340398042835315278466166330062984094322663449879861623675267114642121952271620995828738575646912292138045357809382676737289427624664218811936841007386945094675064941627641094600423929923272003958761101476399950684016465423180940203529920693936774572514242092832997005848336424862703428603339308661635139093970010209574213344805501320423875684135071989553458048200569222380374882407200016323143880785027572137872491108829746923641078035482889336418674650040320136702773858527612871031645674565675340693514737633849558696202315747676725644103920471926077628702904812606003066686145370268765880053810766957479604964656411405397281760129545287115583239129193563976594531447261260589892103660558767562027435063710255966023527077045725110703520760140984308911498028050993826070037105384348053696404542969573243682717268827368021543181662680552481903121263144900660212068169756124220318643253240347374169662221328922647582922455551663392282267122099277454315963814986600179744187548325616270624327890771112622216591980628238897405904950090086009761085036547186791998192140635988588897731050956852446772755045446287317396853367069276909030291626255758192496270880431475720878657455594734887011198655367170687505208188044261124042741020362269275745907054306495293333455017537814413315861680640476877182772345969802782879167406268978121560004050328000006211092543224588203764888063479244908955617553033158805583910364440759330177591086670192184418026219572568500017247005122215033900049294328913807496989595714044277294889961330318197109128140812333032541146016043161945688231783880170854666353957803469396092700677835914457528129239695790550396201729989353862062073254534388299431719572472603015347431183131243171416201318010675579190702766289603781209674912874152549051104366968180797743179472937511297094801737771612495833730690243934930004491205949951522975149028064087617621454518098912874866513270872034732936552351286229106784219536513005757473508551266359225468446428186569047213223635602866567942062902190106584847589626922809465564395849526545972922391957910004014368667650005987621760384394539195888389221468117802414700609674350923097047205190440859377210841540235483638193456403491151085312909729556021976613387146721235241364315505562398649586295238999048657612057292347597757972509933937880737291421162092115000190561901330080404058732558713739779287933059707820714382196067123894872094320095255669452982246816287097918853605180708501641483736219898569041639367667641502036767757862650600049514418057155969304514142116536947494402155807630688871779624517358732016284173114774416772496436073924254339215488477246622186003260669263917610215344210240450855058099283724879310729365994850158582853205982595483299185607253449032875644638221181458173892978288983342672753586623372420216587051895012368243080356075324508577561002636850499295709100027894442152896486751472710261835188213665723674184507926962433162250195915747633583265330395915911777598033794800802893600713602113753910971662006806014524665086658751014597949932742426560122870975143497465116987177175987584452837648455330928710506447390108259629215382589050029677439563194887591857609147726846810904969293965349023822455116165047144565262658346710809266328063225231020616132450905688186851156664577950341449759765343268526721180865931402218525799894789213077347720675464853854179630435026575144929204978929967129016697405984781221136015131071111173814419494970173719029799749992781051717693604666532465735929699185777000852273804552615807919020554221163195451019842396345159606385473863106351668986868169293443714656100025728123051618006203608870098529538309965797728510089742556135997868994120258716306166858010405576263404727419795279967818756182184705957164302391907642366158613188987328238932475200489878019398563634358313739233244431996413975529257871353156640908884867667133031606229649400370267870786998540027383131291470077452402772411349689480325226706122572152831402088469797440580689563127879377831760216772158335704815787752580048538450548360718500492905080485290936136592678039070652413077184998797669672323832606723970858826284052797320899204157712238203308852321429915054899881022917131350010924955703194005314086813575409750393987236159296276422355013974347271036836209423913271336367308079780129694049780571524758183734553108399907010481641777726449540110234424476992306470711556001739882096128781324241260225712474583389167819819860546776574017129727567661302346806885971630712258722712517166718784588701254741690731589495163727809581833133815464782572317364899304525711011234977598132932423122153415403854660135849232650942333043805371329310813574260814661805152620215341468236019843624981715924260395447871256096292744265958696803949071803244909534624596386625448865159675543362777764587167596579619048276953339053555159280144709009834886753358046847836041458675269171822372251842096068752001616740178480107185453881419315835345405222652325715765142406298894090603609201221878492673679922138269690303442034643713843583909481655779842511879046143461777934881207430489648824003398936946860331991335214098486954615122143728511122850434503401032724660931590789167400577590697153032556712465044206522352312952820607736018402073187003922374151923495851348276064887316113303874374878437261351138191227193455859045040550856212892395232148478371019220461125692594858664519679999787497815812773148177910394543714389827239305095019744339755048594995024982308319988771181633905023583325254303466608763696620827277492295212972055826649438330039650643332372022380836478839401308594508388973400943786202293423603200640829938883591754401173556238859388240484133146171833868326575097777243400231064218731825510138191882206006477339237928460619152034526112672270485276909533479475679038211813980111194089766460230058539705317894335771015087757463749786881054519969966089664826251900160095205347109261618010603335707791816329498653265789536573574015562681507944662122315836261982268033082759635259986926344563719613315329914856242462725743757888225137642844786986352518701914002117148204133511325166586736277739473648747157694730589154131752184467727275868982444498579014914583446145093938138895987683838064884905337126050441233815942705027062599899674876648554963757952317235529386116360826200036785433955675715789027805877460970608944097524173786923358057573367352265994883682048054868586696295140104438101720138651535821327695053504951592370057581780482378355663270063532838496125857628328427729421093337693366817342261713623298901377227183760904136218187719228203967980446675590139782758477963912906765333546442165100652752926609627316155478564144761910626964998237185362131354423111842032930154307223161875119942707209933122510281994450552822025697490725568843980092822738424647093807688270926444213334070473736962871472736851819409639031763360356725406969108559603497654666297880506977575378000913270958025520449771683936850217102723268587410566695756873815807589847388583894254763538219760120576536223695581300701133383779027625763992654495848492262068046528236803885060375045758004719806433865239917503243644634893487259618220903054986240166176588375958377916608738016045907906197368322646182549827701551643406592093411629187026176118714639512975927788435107665613086081742167566600936989371299058116588577933655016022908664479764747939150332462556343047670865204774084167170491805206159113419292473758283238705683023864341954121019643101153408932700036896554017427858546707719553069378944458461203529433936881733285124886825042435821228791855364422552019016985943689008695821067002370336286754557392017917325203591702753216865920398028410308552607135762653113743480812046115853768107281104199157216297372008220332597149069840088561335587476032638686274585009887885904071525059869960634528647928915556096883767242776660190829304048023217391687803439352238614205781773096639776257406107694450890454603181617595775142338524147795847752114498291196553568638434417414158702983157552074323623545954649661677054435471080469284823745129429479808538059756386565936457047060036694709878691687817324513790067605691636694739177923613801442723381070298634202358019802662901319067107231077478640491994610779834260773502098557742130010639865985373162358000438201122361166663265710191522291288894344254521789427983640054932588017807058090809322596755402750496998667304881169404727066833897223348503404986690560527617527170792819775903204587447003002841350045397721532326799535426813028291372154498833229355014434306543497529041793710579905060977912047480439801922086498909600675598734039532722083431441854605514004954851114082131362384347640668932106532431723029281433471214479842287117459178717493380421330463245966952231696904590356255791184839661578603399995355871223021808959473156886748045834750470529174395371114688069929099535357306415447540214493977085167337435012584499042439259161650435944968261147939424267926373281901839344753258849617848452599494565488507585825365809460912273791595172639528054627389038858650581071839969575689030608959720681216927922725444033561167225219712053171418396411295011581287968039972480838674583232522981313244965827352994451367867134347519511742597290149138121532508262118355457390561911139558695930663738306558876630687517682853883270738796062742585386171569450343944326939526303200521940782498460754477418164789019347347433689175539494283568604073545100254135240352736261888132798717385638011700625625004146807556143768150693446323923248872353911863047181316432790902403248214309872167549946062344607685486519610748095914506278571647054846551897970863676787490959454173353954635471369367869298488280387901833834655632391184287311971992451016842999984001351165811023873890718589641430134090031224371689621618282882828512823999965258898891843259267557886981893693580861727075676921913610177811200376476403102208348510159588992699761413209986657122867077426213815579739633846375449491354443248096196231754035222859403334671174442237975775000665948848656114023640352116466886760700387092457022375979460861828042287484295878548250410187695936378808348442876661005135284303767271369895368500802227470238236410944547383907124275914298469241986264814994088524170880635029368287968835626509375551897073620812212033155433675015486642104984206977119146136896886126343677158187633245848668401227089976346756163764374568922785350288842793142145459990125846804272948971682645569902124346865164970073859838755941432312923825245957061740407271906533741973115793482387620786635789415517055740431542527098452634067032484543315050361326997778196927202607218235483096752141189777508936749199958977549039900822237245535509598861872199566924352276488804727741155121407121510486885011668202806143880469337784504695167345462848176776250707985029304990275650683123789984658012904075665604858066588802887825820851552420195929847424558253431558583217768490605743233666990187840820921634699624807234782477267149930180618482752825066941153110262652535088050121896986234641126381403266687149617489041414471302863113993050506743976482087778277647928054472978597518003114926794211648048998327483300479244730194860032832253358590848832772672759792369847255298803555955595415087226131709153695751298967992341728937035904649157768415612105174268669293036296566538495537645751203091803736077980516194259599093867892215383214267449691247086573621443098142520746848097865871106528307318995303811677081602130839023381187938411816608532139624076134202451983034547741777529404006006412096059112545933693200825035956071535688224370947205856241050392138496578241198576260620189133507536568658822190929139876096105003079213951299734960156186420080183482126243891593136222117566469259054239298045945666651384374583706897842082648857618886175790067918863832030765837873168706554358004172651173843690888220777563274062813137268596478219777251613266595552069618907996666415351691210320025803872384980489276351375550236038490995765262480462220689674790475096530615823870160199779784231063464194444757353557648928980894402049529648006486985028425107157704489118377143513898354080357113855175424843988229881246406636213435596324532875576963254729182743576371687041174914093259429233583491115026348101195445502555850269664549144227418051504630346887066455102483060911518485048056529653033620911722670551633509696025388405156046801257738040143726498956115487340367466550849396314609133696965234764895389262137106242238157750007856732842025129752380200646121976643913659511880972436356803817020278601606923619392716417744430030033251102926184331638883758953136342841196518785223790404512614990447163765094485119222215451212834440908501778610511975865448373637053560568717826951617648358845535981309879911846748646050169808777069358242718273534481597062518750199453579996447507950541446489280149924978623088630346597222161393295633509055193306510964537796009976266811462085169618369666915366686685907597485447731082008993385708180705443046012209334398265095111906260370430830390105720283611184495257437107680728124482880553512224797591909836276763002276760368494203401522650479556208968839496340501270892956833702947524015790374547471067984890345748745900152080685446401929085085077141531657856755688806097244744062609793972078642057009622591759179106468103740954914217355265894640775962280620832892423412981000232939967350074738145798006959376007734089251942361337554271518913807264367900284069839834608938497470651485567304086238227588011834261302906058996358727551289212436954918234097737607621128760948630220744453332492656411566483440784689948302528845449980397014820577474100298944658219006344756431707290222894201035901823875481436647478061507591337860400516202794024191236763384455203994506000030961977894066595978026378433146988765498898077868023130459798663419999707485050471345028711122956303675893822519263603447193412869023432342927819920944034227196710385939433408063233423008617886538636350248480239790032521788100824528314416452577002419315682055987476542675665002085327300612929960496539568479844895638096243356329219390529636898033860243351552482918259694871590911238530595809157328182962535482603674498422671758268787971112525684866756829920073189229753791077585786427243075603246656157050959634239828944666205047677421996142121552120712429324159848589652008903324250966515572476378765234350153474584184781417252312118584527197802536612165710070810112694670371055817054121023911741153635208022279732805549973370984266687019189882181811630221012244203427862051743808865553716759439083136809400338127182599462370188935226418304308119155253703628962569071621572488600127383086877250538084306514504730834982180137882670498207289858159777111037225833028714896574234781263711722168246932725434929175557824072440215825213172605826230747056481505086434958723393872331269899547322603062499949048782999766649846382910589294598688959855962825057315959318620811552808645614439055626920274908711758721385468543941023086492623302795833133632960485454295576006789150002975266725072002761716516100830124765824999595923394352171062768710494304202664047012665707105172865928544163291335361312453835135616850695171299842599591697338234695395216725817037698787865252334221005649544880484779676361478851574659187774701447789979716015332220715895067061082615776829748198228891479779439643029168237237620661286969528991509703597164266063311574328643611215818148559669261264788258312958027169557788461073348094434080918835504369460807426477608826576899510002388314347399358814600793226318511865666090978944240282015095784451383173008000893000729651985840562919839326132578906290847755694242417147057085235058075805145944948932793416443740308667976886464931850000003364911256497608061367172389606644041547600076233757937674224315538778406843103112193566658101149008911242731804866340961984281920792250920948982252914108540155245544530361036671119551824801139177057802600933906177592031167574871381664669587365292506318892790421637227524860472908476721159354817227976492252781407527527621918969527223518998225186279701484355172206625571697020429911883902759468758376297977551301532926538754363512948866562541006330667688037999580793226578408037137230476648434420394275231988865566278200109617101432772723855815462547941282043266008024045208424023411963106491260994029806203023527020958171117451859358952771174747723574919713559169987700915230849377467861301601158515439546064942201987246391432275425402363869776691792479203202373768078473309957293424732656080621424931903074810597925349014069849845884371317143612944956848973021357582945248525277368158715743535950377295671310107163412082120609106876637865770396040144453329075447897206964531443255837263034454004987335455814319143948098520920693910670025387543760053135388679317149058300110141129249897383464092525610735459615795502694446865431683581982869169102175935612215849320946907037531639690059166682271620986499332188077148164245829782352889612545363130682626269838480056956560474006034617398988439070924185729176976314408271663825465682826473581532472026144022677230599155431633347639123090709947931075046989054995630624922021591530266134835770116785312014608630537839993975050148937492814458978402953855467306475190810390427963373155881273281956185125735865190644145367402810921503050875827525599307915715692656151641025994159027578384976425500912538699764319174356475074401862477475269271777909767885066458258607173650740802690537084651312727897277690404387148493061881600189214499994665728527768071315352404474479731150749143701574318170618726934029338929364062722920882844007246242420092117930902675279153061724339913277407494996920590262037943418079307191848919129741118419757426071169083307490778799894690254195113911946097863021054077778397692530076748399405712441735600648683773112090401460401033241374520999676756769720286547898599165667430735422170650006878183993210186657922491786388510821883640160790086049385030364609407444704715925417754016075067756397309654881677673350944916252314448623468385536929213477064394037191528844380671207575837977020645290284612654748294756474259879106846967596866872240980638609921545270937792987223802568670963071713617690426493684760480051909376987315758919884735036474873056562998682021925299608494208026516514125738212980733724205898295693012854499284974736229912814710298057803882915459086508390992744266290770318121915197983994585652278867405029803879845944504169858903440945556128925695991965949244708087410372566954232580285732619969024615620353292709164030537607960979091970894056945190329622601202660588754926930360289509245296925943907569968279337805018383823631120777936714993055764370978955771984972215284205344517293983172685690038685530923824263274048374847298860114961212508651984090775205501611508170055021956637689369981540148058592222140469670767088525567684667056206641802982927994573623906504563666153986500078249910936156562799705917929582239161122450040255811818100828891026310298130546375954432352705991125200222416355623572719148722036805954287226861514815525973098613289763431119198596262456991969896771237826093787550922526327498807077328520925710036638214263228265869630640412585412528872669370511469317057585816017951661437926525136687946961846103793946244539402097870988881920383499470101731767235277563293454139203117728893059423583480741226534199186328615380805434282138051855107178730147880201463097061239385862927555542280862694447369223665719925601607274834954701494653733330784704302923871405992968015132091629099067950492645864925607367777522117099545193751153078382788708673647681426785027648408677090514139766550363914750162263779860796494028255708212954400299196342092862356507714582460803227135156244060917971813427758295337891614942158745874602511545335278210434968280106695607220432318240942399523768368451166689897325255386932732897960537060716059511495133648075402530029511196449732374418326716605562054334887493149481604864053219019312025083082410988772991577887294965322270314302957914895813875442390365195407994642391154707251191838435302134630138092174061010796021532475093007340642095540751822778072871969638847120068164542157777612046962132427932260844394956885851059240879468118775835420971250356314699640290128283397568629483542042184071810169830011551086354819066186163565175233679632356984562741021115480852697230379132318134298770352031738225604536167346132158514348677700614122086885932584645057990113734684283665410159189813639199503054047496029389045037656629485488077338641877622449978338440667836615378357612051895606757253536027984274686433453326996382866300746117873888341506083213896083165232843174854946367067662843277457051411496240597430422028216326994111964857414887722813407412378841236662776275518433157720367815491298318842234641952770872135325871486662101728586106463219521067924179767372624065059181864847051240619684398922229560622214360404192539477620045254901927402544843701383872255613279162530680247076738820211331709295832342300453199739631937791313030466380361794466886140089702165585499792610938856330632772357830085777551821063406303056049570109536096968499392646238969289790663863990458761011127637635663159714349315713267776485704038471654198222817436479530755535870075815559584090011704382871238434421554062570518887127200421493367640731777228842746339266352430466971224112809431617682791270088009022663112789138495520554325950836046032759441904262630480578148816752488775714840183736967747177729528600673949825421895870893891296162297743634665061644515424052505377257938622306672911940972416398713509875774942912327758412260326192784380504325740695390145836312531947290758576662163840991429051960674010052572943187622294959998662168525940872644138339719197761870118242279425881119017153397966144705373162762440118934379413075857196502704687452466602209305709843935824081815785498500403296221207018397446352608575541079402546387628046631649864169912867884118751726496572223320387649341078672892477172489990553941666910707302311835444175466554054531080244274250170362154064691032771850093365892697040808124635766777102674113223966451123014412056678154705583062835303251458093848472489281571572005678210152326188708610036269728733972033158699250192903444648464889870471601546678987894904435700942410975739931432936778879108547577653976208333426997419507219845954231626864914871434240298618159254544716602724239413064690250461911385789228767692506821914055781236514299421638494163406529538576421536572276086864462164250486791241313899659075382477435453763518220405649107337019845950418459719839770769150350794479770384034225745698021940868289614172395705898511453923928190619501395809159506711880884327993397742449019271289131545441484027827702268269914974948975985670946633314256907449896216895865653321752122929154851612737093165976832196990227533314538024140364491591120053404528600777003213781039789639698837668382262691420224786174639901661587077624640837799015249182445598613674105715856148508203576082717357055910880543321853134141545160803234053966380869906513348309273757238164398964431045428074326221773552533433258017489846357222181769346119450840031046240227065020624545731466799265194058102194227228572630601311805817231228389003870127611081677776619031181435823347712172302439993694417240736715184298589204746453083497017387588741953796424692773506366286968999008188206289291005439600904144156217641023172745080134215473842885162552527524843668422520858503112153982445574968426959116705734132469478712039910842666083570395715318499904041156730680163932635000584556484100861104812869682717018627077961316948411876084745750208692187132177745114400484116968777388926125445436823287221537799758859526894524879442048538592294389524710470315516133774257554709717190152521890926091915248756329902304699722506085943636890359205305133069285044227953912525174604004774223822379994186927429938175499598763241486949097201832149232325097546040743877854275196422180177007951593228055566266785404165247702399610042660740674301246299795762014840740542034625327308796199745190782741296913909234298184193408440002018940595221130694317836394561337875509428321671628164088124233276199693202051317706368664457561666502164000920823487445535713803415435772763195456472937774230351326917612522059042790044532298512038182772766640592209058964674453767299261112556598547917081792142592336788706853244132570518903807763610178448858110530964443310792391639934768637622949466429873527462396922931283588526466897809916562608946520224268673926077353490554196034429498491731507762203880590801612974708176941139902830508629089205168630388063694243681046323798250145869555302447465608088065201689201861708550168198951701347640863858741275190072845915094378149961963228212821779016984794885317245888154573525472777983936169590934188224656839710170072409576341921483881363503017367275826076918354003885371774837285139103892346129664151797397021106579392675460748997268951617186034961671360030730612706568458759667476418487115415076092321300682719897856632769480419775081944572601426315229784674847407850849419016988071073583071783804675014728276254315951875565682890988733337228176448350478586867488269274197306420430290072386777936127728236470013031839336611206386730174252416431026990005956381886600756632777559296734465449203681460362109592801943162589693803734650453504780114994085685413036834110409304251604896437556787614660882571254273094081103126432489052941381207954655981878153385923415014443097912784801118686009967075512745111196084889213600201748656030339693577267893872916422544205780396569508832088985898680773917034468757979248138208686857187870392272161745113300234303081269283490716628633742067169982644592761821689334231105989284528426348125525741427441648973559410879392713960690591017582360632519781565929016339516177108004977293674587147257266897753236960274987454122266257121221827140729017436984067415268825820577596300526024284921850076392067816181139205877895658784406440791325577803203657997063715083858520046098089248027602177967543869662497885260866848946539401242459726469249231003938742402721749013592657959995634083217151159646556235625231635780310546209532155313333334852215421016966821787055772122633471933924882553795433472067020066703194223779084556775143087520950653255883164175991812188407112935828170768687455080771549645260905276994497153300517784439288070104172485652169966592176673092634973911308316661181094145023462024864901831518277081246434108747051629104433599784633708543340837781616294365514293829674010202610375900178767200740133721784691863510056196335653737010438017286586339349204489083268123236534340333848250313402853232077970328670353096745863690442114690013549730053970962973769224625681049528292791654691930058987880883292784210243750022298029189029895280494948251022130162221613484791205447938678110137516363425037052161418828255279817167247275982744661356473239425274839644684936388651609438091209586919963197991720305811128760799514653378194952868584517080175168927716476934546740322888174373281065526871078116597041862944431838971618075777233196488191901832276857941821139403398694078200376230937851366736502457483064848460045637396625972019441416150795885450011953525290638195707043977761491164863850419178574210903130971947363293973460048337419519989725996159969994475168173025453193432355093892275794036296036484906336926809562500711146979262323014733721381405209263554638870700932706473140821584704302406813406337875451006685947831444032009809189490972668630341576443930430631200395595197937148588792320282444502054659630584294137866517763546961789232598103165460369950685590124060083604004649922601659496400640403946967045843725975706376988020956914478972752464147690326702928729328733512376833518941498689719976766844996179270304609319931011068122252683485495083825147304491627604946741735381858732977004830886030271462373551165774825232542583471576213984318057472921363386629009283926304820573249421078480660404982552509689599444401922210527563795710174895183696975422887290696299899057781980886273789574233707699003428970793321026697384175107620397391282780477552448480828926386922232755715721041082745909130701321690402402026994769421409954461469340948861163854238962846358117204662268171398125965880960369145978088997706765318624818435212338314307995383575998882109643572915983373113767924135605304046312271048047378967324760916146904015316623774461206375768211199947697816876250736016930279763941917240329016204053591639786888391147035659490042847810660236638360959118974831707671728285591028827657109116834143293572876405038619534731574248013412722366964236134166082782210967126845206332737804504611397097205257417161906592047305850526413394002469815267964402255866278465532597344335057062752596305214628918132732523298146572164635249707497803154882389753101635553288231888792605815799987195986088378365775537355578512133460245127228702526397823427728650477439787119618764162138983979403630052267180637312787107598447604052220481067467226409478728659003838973222890441030946899864095560909284201386977751939579886577528357173855467008590008839043085571431499770706895970344596450149444950322465071003507266047625768783058953205629284145958606779220226365354515568528364759867480748106699150902580293821317387809368303470281171504253165895231114214649710463140817870650301161723270085050534588584642956107664080358206705337481027870171570696908704445382503218169739385028323175155443687436764110857174910394739577801063504703290422366767237996217718633653781880792110108603717547565926269056878751760912968135997403804661895980509447255239614645272568103485634446354029240375077063470945143818788712311043866278146883416282506353575048651473072529724623784184251366783301783037524829073905060362135716762466378416757890163799346676480771053029032101850004616737799717665144698229977943492960642478521403049361159983261911245918093320001213206158700913847286319316221016396931555994558887274522896521019440273341464029024899661591423609012318397306531581550633244910469134751912753571100788771334966872957149300450176942340805523220565161306113950305123167244895756205329142449844474666048422408729386481481066965168011943764880489104950095474223367592908898569645644242991839518723805191556609461943540672065110843825534312196617110167713824887744819752532399357984312089120765415794465240385689475624256503630644164198708234985559571810027341736175058808709546753596775174208077054056286291541348279624266862614411289545276525166920798595181735954414931686964841262389920979916620226780841180639025300308269205242856565555243330194281987602705362007042386924506608739871484254806287502694013033810570670334360419484965289078870987265578325378247793762600027157598316925790729701913315127068681120336766397924022682234906555530778725442981593480316214461213998593992638144986199272351062978185038037985653211588286066698055680204492349990566851424499945899653842518221130398572609201008853063104292097098527145945802543085083796728850791270843788638675616975177572342501741998201577377322585843468548045480696978638413620597906156391695940965558166882765328385637959706040412042583911530584606849670787877513236881932437897831164713723085955250620875695041243091114027710952116879857402362349968356120367972305505962404073093330601140910287747828912718884268710099863728280412991129612543415676075131448286007134788362093662231921968386796707993869855191137743176892625441304712019023811826646505209529107125010289915839913100958946110794599139107164607320092250869482487165802406381882540373460691329652064558738886850769814705059777766807465538567018782301703357428394660618871877727219039498748469674251489203102396468450530352069720391371626879898316905590640899934106650088883081787034412461568517808474287996268227041556418418595823722010660768515751489302668114846181291114590075986411612328419683218948081223646674896000539431186441530966852579362672441456664686758055789817009283728986604794148052901037098309807691808188672012786162702126714052607160444497664561072742470523408464707994774156969101443735751262881505651059476347611810096209231771007998721014401374039079483406328641236394838439163317002105284622691738189381707338002691368236601199297123280175901357030196344271071960643336687082812898790837464266502375638156160050365483392173251667501660981133095392377937181386106316418565912014409715437508672109454214889241527587542404478180051335993480789657465778068208388803339971113445556660461037049374360200295444658747994950976740391882378920411191018070825295473899052079527497194648437728104443942960151184744922327031049728061540337627824293297693672475189918559099750462873635734427701007269404343127425996891611107455262594042310797488516144278827725600014646489392131195554561079382135511184177157262465880919101651989765406918341694437208330284941058976446479084908215520936639927493828217675204058911596013060585525803450283228926432742530190052030842903169706241562260848546097217204347636930316097771021119492384155161276262562174497887495139953033236320528730263901428282161672134330777327363821551263010158749106066918601027286351733077836945670432643867531151538925811559456036633891598837597879709897548266546243572504246616240909565251269504046127175865907187330875196602042439502054002189031986481170290787998513529007137807698958880819119314430495903987068187479891808356404905952847084415571195258705643546434706511479019584473593718335786462963546698017982099238571959546079721511976898855918585435771762387577929993982723342504931502333139647544791987484678222276158324478451776632692639872299445967532007652236960164641467171016514766343919614882458588320820886406564768392643251585383970611442356588667202226321631761807788124912961265504786970070125985666721062145537339406700889027344224354533824170631181498222777441959779610363728522675285705462845628066369461537279468924510567311145584109372153694454008430533034257343989439238004837612949109842407941676110455465165132724154233649283131047193203355339391186127914864158291190423531781760924009554646973718883346344711509272340677266875072810185743248751259458966501085376095876586909651383604142556887943238810302204210926950297467161572234382066079916197133650783286555650820102218812600086824635966542525435001826667305734863544125063874827488017544310764892533839425747357103710874413054086807730062027473687467233764117728198093003772570761853663568409897480133891739657076825339471519489073405202677080587398356868591133119928381442321854694296464623690331582752026978005388906234444925712157751453375350545151168266017885740402208923003160963260050570825182536709646360410792225001993814451315502415912320979871775216175161492600640891779270327146771420460649003122301875980797916933826952909729314384137005521451396072712392037250232931183296334001860158591537206208120940984176413496365640739097234076220848201927621840079924751666533477425215519050206151501048235350167350317098710846336494762224311548577937933944686015656583668755079632013645120204132243557311910781350773957091877101456055356804444431982695168610748514869788687617784723358229765898903278251397084203833912397473601884491909851049471765789789004315449761523491610234795290714715404935711852365782609259271716743520382383315356229612663863046050356153266886147453967421304427734799426291329634892561083474770516015793533398094250601941889119567154559620694008884160739743921005690607300532618497305463571562825810839863187731056484928177952537691704328395867959083494347744650061469106330011525123813173266449670647298869458862564310373150542855173618881168966268411252983536033756046168787513851768290543212280246660940254445037963146375298240428995669233546678702624241141133817638448584751992796151470616191706728872360074478591205085152968961935868099705060159523396565609187024843536053156826273799025224946338745983357015854988681421895976717116004664038338782092659474943321756082433447106323720088335899723854349259882543972114746304999100104460277185574894681492715513008968745842792010558819635852996217363187401944412180754945682083012767476157662148781130023400137756872721127319326707290245429240705940741863266408673794668021496458193606633320522439660625213273366617433088133421873330516962456982123157175565254187959111171909121778096562794180342632838906574848287222382361345351383190125227735504051576351387070802008487807145309377043638488770799450605821761742128612554596151801892505327482526865623390857488515611210256645418687435229467919206281898080246506963178055039688803206935271112027275011503930180647421551658825196431500832547531102498716583047770603193516649923948234457624913298255017946976571878433354680499580473369525459921163230523151236679901684186364385790759207289262223520987188719222159931320296156697535687228280037903609826484219202230796645858336716074861458245446331010653800022749488095906588318927508478440964811768391947568305387002006706141319889772224921978017783172907780014093833885080159114688954582517520896171546934112844409210809760289892919174056566019414983970067552814430457879128827679667765220638209088167660783728205817106934788287856352801896694758233656094750278471340562436351708676913972712575385812295246330244898175682732643968179826442188511482717971880917789756339018196323791992178330768219318031219096285186660707761968386793841801910829706336580922473077047316138571881545883316709602811494871501860155616818850062434409410175612686202027613896266222523032634045008640722036645652635407734849897028222325529782559159156325603354569705455793010034719985033117042618632409507769363853979558014758391397289012246330489462920856891181532472400333117149973176852274764325017036678249125045131601113030530460576958081527787242224861536116292145606593483634254270046878394242265455080283811604690288905673238733860027633837864112710175276129561847899494823792878907433309430999204102149088681375007928629730948676034094100084596883414369111943878937826722242496205818435106539619425800511567422630175124228160656859106884479123532369827652308755519853399912121229805875857653562838094343137500915872289763755641459886186321258346025423887475097228640227043359850494841916723514672480020291781055237315439372111534421865139038761628906462915845068410509909614366293573303452018939147672558673316697317201830558013196189448640946471310834917337574047464770893521237480360484196198781071647556981515859039614497690312871812783232149596348671089790469855272032788033405007694152089005309557323733664877464797229727226413252924291523841620524883377514107216851710789347694525177698837921784749751998753907578916734343138337577905589301222910291579878505534106046183457307797334330920604959539161316393343541779180277054365933637643313355192357400434369015829890121891378380476637548072705958788227694449915229308689574442863795464980772171801055087561713859082677998652441012634439907595310858178753298705697895515832244824559159036245134033491595325178565820049184395334267700656956471376115523892007111401388950541103032247423541148396609124505120212397956881758624659670523532968851251152715024853946043646022375354696507273707851490899909776877296643367771142085943262265235794493917379446170319249406484239034534895369880482349069415753619376441673488518837973074367712620395011613572778641773084874834850776119488385663703087962848779342702873131725841723218410215559720120761725047046565151431688207881398240509161593261510130955892144209390163567946921424833471480972054378933833271613991238305049517638561045309156407211259479177982836782558377490209149864507764692702232442704113526819398570313995777994624897124704837182787167319112550621713111807650037520122021846013005877227079965312109421965806040647592068870679185624509453996251982892720903394457025391467765331849559637024697951328866852965841126135907290164505176522793624147840665131531137611613528451343175920719950725649490654844559846415394922204804975794301873774476201306680553813149067018406304004569998098607572539764326005099080633522619447260603197877802186021533784988310013452764824417966944843726233191985632966611713642254640641497071980353842583423041941280447570585008314351149597795533260425629798545969428487061489915286277379777280764579324211336388899780247272146626342033960454036662884261921886924891445133973751404511379731340070067447354875586975981396013190505581874737324576742612545340397702297283125998677269268417140127818491484717793326892194141232590279770538851993310051939256249992905417525299030897577665385599798207996398886177807368379071167339829285249288224394238270741133190759123120319752449558851509768374135574108320394997965860472740128873950397760452887558207009185193113592760585397325632176883682493683879682217928968286995379732288692404870519837517381693964730282170488294623633446547747348354814850000538092951012012688160084077451570287052551987513075699184402404754687842587361084275689515269238441109843326862361062032691834899859344999536252737285002505433982832703234369664244867880501749692885634155392269681798593785754764180237969461209758409000640652125000046343077640275182815195829078758068321302219483007328866698926609461708483387490638964037030886570707323068467221836538505577967554398636610354135986695022340084465461343097191682724088594591496116143672474939072626499073460474452222677232471026996088002351175784350272577367247781827361640074676623813502286645569943437208846933209498764031158710321684288748753299095600470638654703787286742240990892814653019800534314167930972620529394470605340900892825323000301859363367698862636230528531042286197411415654580720272339540230012229400601891468542694605867552718975276055327198948647923427079093445971525677882274087015648579632260133140683752963088840538184293490313042399489539597750245398248763574905680999680699297485188631919034907460336226164308685206625894633157200551584257209283840368038983104281036924260776121467331519360796091967057899211560528087061946462515056602099872601495402931885018675496669459884495253856056449303909108297410946712609483093581477478339361249509895738367725507980901353357915301818520057062998557083430587054909403087817518966955340272122400552451111923793375814723959701209658828609578736561587984395350258423417047883412147683736203300950711858630901044325865076335947412779541235806645411927897907705062521080075991858070618351377846715485414574488421723119217524526597565839464560920099891244267907332845883998316225512424185155510465701355254809121818236859223872905608865016732804755163517587401106023862517550866623693538429697774724242453335552034906812808165574908611803455153843418376256618719836673076152977758785768202649394794058302801584516167584729700827402560757975258261015964803484941069789182034923933014027874292253356075240448188909615823396387617838709048428033070275052184928772405186870258816371894720269092469747940461612369392196609711128421994492083970157151995234992952319633844573020480710336296877107967234259775974612790665080442941126016186922352892838062948377933628007947796914430638843635324768121931168212724612522945516214596851268899094255836248890959207956039154536755636388265927855864517359992557130017413166351549604952615654759877338181667517019901723488491161200915980102770936450087664208733350639422594561443368136547606484585197171590250553975846837617083582592404260986575164815323746869706736274871606180175775228752127053793842288938787554774883843473432489551079488572505616701265625782394875677702246348404696971254401009676561608240832484042779929188002909028431636887407837679438812211963990825323892923017896587298209397494396809750901067628725441068165175257202059321856515494219355981479230328077820520949007346012418622666333950891811446432328670723722874264529321059744483510989729634799986332690016580694381382704104570015720005338880528264066369719302722277869573303541951838061723447786602811970321526768956612668527502992085025359884483512942356080731238655645694626303028463958055800899259061299480197388320266325638207851310037444998248185245920908236725815668216033740798202942168249857580488055726032507031493624082958748113940027067791544236159444594587509450454909549642126400768487676681528477213819119436823558937711254038463462866907162676862685757612358586555396996942072417713618023573651374921805663862615173873775379588312842565948056985745346445176616470512768904252195139206279493999170438009209925080576571595625707947691099340860396731284308594506982912031993264143799587094067656526215354193046901792088510405556011081497733521401192276343908530139988041877338956039767193926380506632828999089904363363336063914275450455594449943430761506823603544096672787437885171210594469579627522764986518165468073954212168680502242957844215500652367166739092827371135498344268234537621252038182835225028599312463879092106898731728712675921906091990409772952220036760210424013771228921974162973922590478856501465269317867734760732293009812609835550227287266015527216496887640251825782527933185234804090578858728411004551885752580396387054957842185246948833073569337392000702597177312124284218331848028417395746355583892685081788181375444183457923803070679218362764557988218590452865327287641560117165809900856171564008445837136199116019662547849739252399111337856056899031726472777761735610532545580125254514109767551525113273084458201296722993571979099685471467505866529492414088782396250990771191658096905753873544368329198717060686565716977854686027173472414782263666706025947464492031790973397800532729918025332032760385005162244624732667891019829566234892212824311595370669856388577809173771691507040773162459193290028432580578230408085393651752886812834204499631676904037516594471494097543919269004068258042823943086159434444885417700544912162259449765733409629689469872679625439400109775248055181258043544157222829291980418294921136222855953126744361155314677299663478723330702261654399688794899237370171791150412966134838024227131167498134196457598025306730720398475098452966259368030905644557894495130486142287806516945412428364995652652884203295688299316711638902720718163832643370524764742224088250309173466131832057685510212032554587963579164411826653182049581489244219015467520421070258154042494186185018384179313499365174981761255461989036233914652806905001408565681211260545290687905900729137628433260685416561640048415113804500151526784654820736780968006018598033022276415551002965572201995783017316325564032216771103771768291421813105945445250173608775968942752563430813033243862775280036207639445110018026584339975482716800697644315968424800611967548805498462236353455901415409708220693844916930691581323604145989451081987680260330825848881331778971475391054723090321970008084964624589988941685758273692287121672920775790316611677875924294450943411946243764560418093371205640018035869316845190744043333321766136599745188518996049322986914552155267867560930843002827359172745019529726151748968649119161607541369304715356958899430822225456124411486539000850398713908357931921141720443709071013287768951057509747925127823968700437943226225118630107276674016195983133271507873778634524371655895362350688440878298734042922914842347970929914982144741950085434343118391312257968890026732581946764221448417247941152802303874298113436560589477100520733581913759135009849367420785259684799250159463837112363723218259125643363957923729464782803829199331245050822302531111150402943049590539802384709205016250250172757801861916557713944329421609087323552515010914023066812059094491111221726762445740768807517836366542040985058046031397331285785010289953263714673303929549125718074730649007689613182652082029977394703824898362095226676074964277302717154931947104790969743034538406715369913848557146145519170048744731817864882892902172027128394307590831239277305663031636389216740150708982463370696256568627344961028088104383815918156696039087790303100763073338863066750351375902538696348708439948764670167218584826889334049035242553542003371652235016238092812015283797633901625033296489229710568502798684284490053211827682782168847094600695646834736818552942162110992040120550269853742136143600931384101575396708583793895588507436718428603160332734720541711315788904237557815215198881039177142907548413339483123129474890222531917039136339270084518156208912540615946492330987681056545062044787618356126585433150867405603693780271922686439643702307461961149902465530741912974234543009757648109682553729646212778512129801384846162321733924754653180171108568722719094485057519244995414532186855000025494414374944840473309982099370295180836380458276227620450265137463942007483388562035558351545778133294603666229434650260718094404278926834083917181490289006739723536005946571259282423403010510266321588469566398362404068770911793924664462896779418211372470848426184755649665830905592777943623528862201661674476859091781970148132914971565899612709266741424705229585592674554718320244923390032177278353830328716831462102169039668050327149154839906578515207857377285881741031476855404480926624750255353150434429490461650823494083113668696235735652012858773401637766400791399790636314337418627126343659828155536782211987026632454098473206630134904248427493944142628633870751334603952423561938362888222651228227234568234128785375272154337539226804814431779971137852021039283988854205718874434143432075390379497748001716605431124403397179967457518716425528590158013357657175198672778123478272013815841481005734197853942240869321432235791182850027880242642015884483151675745165586965539614599493245472777119768603670424399358806092866227199347957639305651359623808627887071649992659253608594929383108240058664393417526445932130158249693133338115664110196446342041760347371290421789152160978138554630870794617316250886327364028696810056300739557501592072913325157189256765518439132090751122429924137978280632645340427679477332767941066798441628890032938173438195693448411413056060623072826118398760117257382691237729354679799322953563808555737689085940186981008076481053296311113228463811209116669200425313106376504411739653483292935084626576571441019517659607482237327515269029503241444501691702199247999760588461560505924536354759753967549952212653312003397189340491471815742753387466561838993798768353290471640914483618426017049279283789420465693573494253873194688049617741727926341114348383972634179361860946062378223919125167051408025324578147766967822780263873760947017874398815001643523333244622432751412990063805238911730964211244933330257146854153745001361494998383397934654389584978925875036758421037636872248822114069237095463438901400065729812771968429183557758095917030280527492686441888231369731236771541649493354413616809397819532142147256125060217221801009526833151315448994858973815155821235923262160304282230828086238808759355969167645883697030031721718269860132285838555008468166208007400250087353049302868199390639353712121263454687657864166102875088703787264603355490885173272177728979373726326048789015392587123676533905410004098922809479305937406357649643512250421996032872191586432550288191284202880529737806183242560598651404469954327446176077619378881836526940020902204164857262525204230350799340831663158745591288119093660569596858569617155598689799844269896116799477614512357676775315242545092369778550041741605393420171453570473304152318075026033209361787420519175076714072885130010595349294982372926294466016536402674514703526049009886821397273815808117331494459955137220862164915161812197910791577131897676641790636892135814619259160749146379071515441436194830674624788398772381573335277167397848435863626180537495424439810435567534055392223862671818308005304977256921033557644780944448233809190519487693308431773512320185665619647902218663990059690290350455095117495772290139779931178104590184255505544235217735843782631446068749269670209770523508711533683329645887959464711169737738620425575675269427173963832971352583751457487356989486374092205490219512266753796846439073512201563577320146215571668810125151784423314115357069552859906010321770214000184558807527712578162270523026878964901854842148133136261416700322975534966372929884523786907339847488932626970015435724551111296289917138538827724320101334906961556358438636711622524747545920256817378810389899904623035305914004908493807867908619928897006831684245250277301288078619157633669760283821728126602572687897564961167890549826255422568863615212553962308477908006320138197594066778967128086914093109049275211302195077657509991002987761487321233727257858597512834873005490780734741420793977914778360723289256151023572884938868144863339605085623964503283870638939791209148367676768870658938166252591671216313489590614668832198360574420024431889969917216710524380457758866396326692392741588621143079092516155393912609682055043620470097803610939963360434577127627565683299317296174918647521768201634324970251337821731049975009095473454194562137883173049832824151690254447386467662180699882397749074987437124934273579461408378609963086244615556166468591957322049989523739566605540790072777873834503110050224777193836772518637497719271044484506496856247034202542260273984569317937419417922257440870237019650879562696431818974879092987764001919712063863055416853252836759595087386861985888887543652931799472695011896325793567655212839938484912991247178572434348814974063446905752501221329876176036939875785412088303568122071983413411792761732910442019763713640292345042143165975290680423990833655689793787773238328055496295513653821871140663676122787413565175149872160132093726654974712554034550980430047213495245379052011900213774175932604412375960230632415234270335025247457543076592495900536991680961224569284695481206513515218274122271706771952388951600740715612846172330627332507630401440984874618639840621913149875222381989379182395795378295268801431557507813929268692334950991991978009037038877514290351546611583529907058403521754476993546089646811538449005122191917603590659788489373573507798091987438433491406706563225591033462430659101212817699625380519202306274698471404426049581307761667242614690317885241815666264753458613465188837162607935655514964372803917674650822640476407164010346205032821643794896993944833459662768505851935476771631643748534542321049419816923730937308458798982945881725499978411758815787696820436067442943300995723264863624001097633125718330531230854483197386770655160865340121079450896453334234206516414819084901971306737222045325792056549546361107371261337314550242748053813445306321669721505166179208274759684028516776657799438956691605150037821518828784403670927477193438735537459558241493814428646302490342190975283929771393684952648265773585955452716351993992355590907137960828000198497317731769941123033444203799249337292912213971650422554181628723108133143399597313849390336474504525252219102996027042116600210855059290087251861400218021010504396525276679976070895864432466758160167050295180792221546363382442419998871250470558434423832290427128461411706087767499242582341194656574507307204124132575314515268947230518924574980755461878461272610198098955229042093551032751569753561210123411434784248509962673589749725198043414333716273126579362369231939516999432480530980854922614722697546480872694453804829291792313752799948026205849347359675659693857676375992168541942293480627467002703697141547537092235151980234691041542126386359248633876996740639404255001982097982573128841700400678695926221434562171318681556844614310641687507612847927609787357720357856979361612740541056779247575964666045926627312544056576751547206418100797132085235643130251726618863881908193822254959564559785470042918255807484386225416804730321604576010469961254800187198328710958950891971710806135253177075477318094167989461686397309249494753675520819161430767129979233104779333260784459104487627179385950440590757079553949352236159413955513173169940463668798455472444973034287644448617494617650993371718010254946235934271341521859149994682598067994353070114423985443963558694373861467113005233695995253796275640408825374745937072477645479797946670810933239616379578953383625391048180876183747225314779245957063282867020202708252194880475589936120845578443873143552758281379285918535976294530652388630467669249813894666422416758554337377112595716723869626349483211938140066756825286259277569373454290530521070135880657565098803305757389754955793858840242195310762744189086412034514540805795209614597134466232277034857461558063567726860558138326787921908379253024652019495590067835278533188308699274162365232689054749048869109224371966265357339007539206038331830176894448740118647686959804418567893581892145537178883032972450382322270851161005165558457187096137801597077941515533119762703827387298731342316426449834491374950722026700076905200517897935855427442328718427149437396699346273294615095105384519825341874004920745288253308797366953279504299267805654308354052689793012373964695855302697705990020683928858463831239559402178526491566197753552823570779465378591421599399736756499381369549663465599704955287615460142767388006019181883731501280154841257895276367570123648218579720067897661191303343028902590716689909323604801403221733097908780328632427858967184553342784687951792561095309234378291302677406737048380997820472141799325057324974834424517979533754113499869794588328060072981871056661174740571837811878584685778930529815774964924332433907523744862993005277524387567957008086858073635556361069266199633059648437780011875917711156847165824540655356553413982054269404936256930351848837246390777412146440442878559882798971158440513657320748821889346651042784910286864730186695643315924317553345381965460908189742167467089234817786746441737572314887130092858898686684158366412455173576210606962987270927670112975707234514539929619639513324117851438445860411436915680895139211210385972547777279021460979760070803030852088776557916514521038586942069376846111199572906014817628235256688003486300215572661670728827421435636653506052519111362173314268216449650447823341657766144707127485162565731552767820127798790574603573746845830701489907093672288339971871055227272514128930424913787831217060736585655270371517540015882338183032232749490929316893009464515463901054088158315122529307740253910627921389448423994394906824970369542119364051904479232001778385435300776061837821287121469182691998994520025034358073331496093849095146228473615357276395995057948055938641509148102199776667495673238119374152791600741788116614570411372990487985074544390047836915942455512308314468345432395457862830175620128450112482836648683923337018045653852636967346298268936974453583843803913561084911043712694261402371927354475949190713315927308920543879761388896352679936161914124406886426453752678352163085788550936913169701323625581676313452384607196590008791541313588409180530057565490796952598118199201700216829804688239184024606287724693431125073600040325706755291676335629218220517919221874885494612520868897286068147002293459834437286536297718475452399580126795732364665114340498150049960312056721903169276832444279780506916937103591533292024000946804962485305715415162804113151480739420696483248441911025574555305229030693139060694101103014009467214293926119284811805808381227578449622745565158415459614294701894571808141290572894314453402868475792004809665562688493098355545809087249126374046454674062997275451627493147144135402847722380234063230023321709094941477145374978816752866101181465174548581208167234625884386006524070930012256822671614167164864074202016429601925815170316833905782580656408514720387441217708097687591103501808471648499783166806823611756817969993007803060421478495851912390111560339748697566838151238892469612721550016278956262517843305739218371156965983325902971094871226362576193175920600165116287173647111112450467598460148398613388628014258339385113598491442088314094794253419397359095869323695910202742337736764651872417600803193264137069803256240252807183452345170378454175331489663540650079359282443797778983026601788876552969542310387566027271510323342289037016982636031470495097304164314720283180254492290058247236272942370897937839606278666405062785793514202651692516487633225534145021890408255401225537355736767345025393284258782566706560145599297876716232281359210938024107838050648854693571747961540564074043643297416241042581834242555316741112141721515627441905858812812265847876862634753753587949376342142158285124996033417156309193898957703358197605177416850610375093360506444517260751430342925310006653038786137593269127649026392111659452001765233091894458801648144896215939437565890578980299901513258420577079638846514422202505883918528733696031202273897771214983726227935655453846660241023044558128050048440683375977741474815906495177891513129687274225140358594969016300380794807703918871037509982109842730062572640624708068908895753920081199300749955386904816038272990048361022202559646725473941846927504466662229642718289636557043063106462157603170031043687964275332623778952645042151419963180352448074778147693238901389617696464334825709292119529905823583549151789003205620542691120460657407712408898319760049311377869640169042757899704891358784181837196610510587933752015014702367062986921137089569121617466239939394351325441895121610654779567505645831873321102860782485276279204939138821055670648124744678250340201981847685097596918456179523928251244658051319455516299039286311460514307419666973028411916384385505288247894376833956190608170579321235828812477613631792515322111322753292172672727183975118207063714133875831495529981162154669608562559665518648507465489615868763099598550834613449641539038072887637438878400477244498592691606202116576552388880694895442672711266659032887624277837515682896040607155098479688288319770068772083615783895935281056446904592454854886519847358190011901888056556787086517941417496115766056003164639810058093004170947394316935689301234815715225012398502024690310771583220364195697592000588600973353560008445481071190697050766647232110163244087632070283655787067633630443399216681715067965444157386323405168347905162155019091433272667943364499127513107749219356413937624245554169329634245062139020837465569453025408667432444840244255588676183031975183304449026714585952549843969916298102863799578922935524464640380370312925056399526863466082249167671921638514908531288704395938160662542510945390933942021483477595723863803173738854444893728599436170047840671246180337673062610077571962486354370312703521214776965484475772887192139745286302950643458917075025793669864544955535608284550970084540210185660902126926214771694613569594249597239754882953321554788450710264905766791071160921040190920936750995435094500733852029867082528854110754311105215946584968565984114204714651424460253164990502347925380887632362414570036893152477580993304204430877095815397395901511066463443394665092175248748269893770412244431220476593333963708931426469013935306805325628896042006877343595058259463361862340490638970820118226148927568915397861770829769782323052868961427721627835049478353530849451058830674182362002078521816144443831579322286634980218183934992275233691427704550407508352104826781265631739880395957976906078004200771984675736037290179771084836374693188528182949463971044088326015430678014160669954924819658397991181174486374184427000572294847112638826069857255029790064002701771961779108855479850961264671656055428793991029365274369082240952707893770303827465038504345345643386582272647213546721530977313270702372564338756013577148842036802495478987628590707148147649972618445799258407028114136713613430296996121525574057123095569552103317008748475782799702491808547193976325398485167947194686288780529423870085321810304278511475010906947682752704369955487292710023506184030756551639463938413688386324083287470671008243580958068027150248655898089830414482809072811577713402056206771425580709744910227384617157521653113071335898320545121227879998846142606212351902082695514580053291814915456764075296801053780882100127065922421281061865747458519767834890462373407145043167298693233606971210775636806066260116103830226152916186137250508078127995417074578496438572461396790292026620922378278289171963713195535894613466491582990766596053555145336223055565139822848321875670622931844086143033874927158966996117428238797501115185693263471798621149948801716824137708214431847669048490503644399549303370513123473093273290039088167932507156868953302451761299328698071331808372032122018534002207185887620803592214466041141123358151216664925485691276418368683027713185262555189788637267739209117167351713464244405664792273908460080987180859099548822874591783234590045473522122222696161929338529327207737237395901042745364286863129950807644612878268109296381023374636410211608440691748795994415500527529924909198705931499479524658634032814567106792477421536739979584262600787377668446134726344140692224245412895578275392290912747291742816590314456272935900629822876466496045210247607665955147851516500679527130883690570500904003101045925480512175977623779834459074081023902889944145475086099373596261188977233012892835683610665228157729977609090118750338624134104228642701707128152142069456865972691598168074112983788300779829072085254094182041208850690210299592995037015291567612506775146020283246963115618804367063832300463254319346392774510264579458009941292960811101007554777850694917775520340413154471319191508270997455527872605773942176334734220282957178686745129589503005927059723713758853759777764774070711377094127020119202833055789098698545843743823941602476818424234527786441809142784699305389861621411919240514455719308460774645572372147290975587387717294990722949802774730542221570480539785853260102103054781443581615015926474439188685553657866785337750635823613972904524302180271934353957801198362952984265834695181366380325779189843697198047412556708023218522073203131638581728804859408461875810671292607403661681466228542390465248971752266059088268090664648625230140811521562727176474021914538801467685455743922062237638295171462210783327880499622906920818041299935400248756844747256763384747566960031766199603816950504715037115759529675316195928119223903778325173676498704357548012641860817145724113831552665103080483080992667089906370071814552531572702283725564630542438792028430262787128929472681847190042170881861012493435150268552608007015338079946488286158284357867978922329980309534915349114047206754093739251868058781941478858825329229882471544051466001930488043133134090345471847679746255390833201096863789354874515365025413348403231902144365440925734717342285056209679073381485944211548675970846925552183545055574145281711014524797773885831278805403376026382830821417335371111614120425571288560991832362196542139042260139322864907475551286274397402295742241650740408016959677952190988861101329808807764392636468383580897127589618536577775934486912910545798361261335900849114615292142766477897881917002039939306014046475535510609142638331846509619932567828552772567134348115023361385213658125511324057484254149423697348406180560325487319096084234843845905557705542855295845163773939982096603917329717000891023580042230295976109724082607904529653189776613629969987407969199659797193704632454018418141836479216883273838819330587202818258600640879998042169327311558910976957947490166488972508105295186209341318921305393786464225069430746945710103594497309046098882275308996942056301972937184987202370033542570300689606031335418665153932449477363825050491825127401512613233617305402120994881616986218416277235361853056095047449475291693224266125274456824165045672650858698391536363600200877781071385829483083058359161478384471559967495461886832252771004989772371041654125592086576234771443669406725541765847679189935230549291467984569061810781470825745446962625890045006718652019863092552207600730176732415500789021983078095529185174645010713052190446568113232869408428216504992554009142722262146277582815245337903703836645866268825150811469739147031482508559201171898320613388298904999493916904492423582642581066354984951744143408923845313884072630838097066073330153402175671817561390255881566695713745821682992350575730067205447365526159124535395269797866548675286535698064227918845602040296470249359331414481440976165871271453386237947437067437054222400114757596382608717475759143272258960094480496076624290392516891015954521327009440680049948259552143732070733756707746901089864251940720429524804261586638624695597609104076692906885515113986330821776649028940280969540908369302481622945399831488586157019452601756836357227250083736977697463757792202691943980079994117292528153277347017528748268000561333583196352692708940243722071726624967616013790508244070627087861430424682165592243885756077939458988020645622550825865689696739864382574514984247089133690829489279110081873598300140109243565269808394943116568767074207734679567796848650131077409033386527646660967133124345564143579412109114678184441765411066377299893990091785282816314274992249011034651673869507411340628636880957940841463080616881620276222300249407457823994470082166186400847771147608880320933888991547785207449238071921952677349885333888619687197511490688166800469165869609258676305067698890797536327749804082294208802349788868907635608307185960405891337960541644467573340164390566801644068707518805510563404137095283494307215798591856135733628148451491280261965452452100047008700199835393911245830456324094290326513720461977569309640890975907677951046151411039988957156972645094886890484236507150691083345322611563750708008171407208633593696426766935398786430931156291877232680856796721095033251147833940490827407898111286334760757277427838458828486018574817484584926816018784399911337743154477855870787535538817313246257521837185519640013780591275686650946131656906794016686161421533378885128959124402492780080316394251231100495192555940091326603381108655185963090824704981686186136841042176780864285835810141517910238733189431952056943699242134874731916418215641244716871446301181367108369107986282800656863169667624355767589963001478817195436070911650703212884404739011930218069601364708290657657220193793101182658000625946247154241480734700250223143251413343072757467678853251214050688984250261540255211230473795821095096552285383335395570633785765309974582675860882255718681388367318035920057089550683532416602715461188137719856289283767642717315148157356692394832433074506393959240820930350255906827085587367587507308157542176661659483369318902837756764871117605675181895061442024241104131545049790297501127071714690675875315157842560763587475228434158501017036163557778133047094425948696141155469773366874573542986431671579681607774219038265126628485651254818072693262013544295334388709092126577085301790201458272808402015518389075499642684708171886689483748973933774118820900618360426485632311924297400982843871176534838931695176068416272492353121013736292616005751854870486778561858168241402324570866712507308035837655221231812098310737670565705185201500310222170249262332211318168861659467404582074468925811579258378470064225003941067043844078297789048688057463966968570567772459758671850303219296943531597445393629067710847781732436165386120880915255385751384957813248080884790670487639874480279241948523517444145544063571231917013693676245394273905115463578770698207198366973374524342432466012824286170764205597976339367952723201106213980292861978892730626790069554074378680335234357225641930194431201031282941285775592641714731294968867944164422766983364117601197976490072205433199956591592363803780783061555730891224848749253370662255758686794619655308196992904049956055397673008357644245269560866936318825378434517246375281618165329510920148199230718098132995363432114079104602619350655904147618907104300990038962428834500114718550383979531009153445272047921839633325040543182742542311658207647898997646529297185117827872468698218439009242694904075437899061285820327789140655909207853862231373206122247709646434599157298762289391871887282820967814333161266136309398843416011696488294059161444007727069945629369367435029533622285373403774902130564178069179353636384713376928138047553126968230559311282457949705926114358761732616242865831855225527555396789416187829365023622043803764729506141576007465495478623721057143813904445933497079178320162101676289245748742218376697516544795302625618507775529803259216440612909381297722757057427292388739877717136978324296741313919501119730329478635293448874642664504871655605929011843185342353449914710844775466498262633694286439035606606998067972023417069144532286715744928714297995343325161553734189076852832162165767657971524884934353614333686292628892369973336298416265672848707103270641421455612450541308546878220728027410250127786581147102448734705881344540475813567201557772190684598264087822621980146446581689338918008555563987735448770314684746392418241557430345961786725016417473087720404690429974238051298840384993654160542933668411999260883730564870379847636155024835937676844517921148613531783488636614427292704925466126343610112338567754826501493371150342565044273616584483403658518380658408873567612569078807869721288990417986874135544196214320350763649895531398030003932666305916195746938605021598032853384908317428607745377132540153980738492904793849574235688990089437639757309702657326320867479565817842822409141493492567717967078145930097942608356095129893155405044572097309413250450819598564284983792600966003677761430822506837563817983334187668965372269292477908490682943054374154146275665493126231821616889483967334178154873095818046874261256224846491582242119075597806514776695755347306338575485900324893057563365354342011492254169674330704448057163997110697652694493400785374258981318905930866427848779830149435240369734233238484879531441100969223724852540441027941842467003654093745162280194981701775628380610487147709215656390985671696369093253977521022332053866959072334472563301463759601182711361220696781760733667191730441807786487932182747677159701005733614169596588481586601959118043825040042747525804826384130043728135694425049279685480535023218226968571759403096284171259948045353823415126836273800473388239491672149611069985478706182366739430256586578162370795159517415413104542430891327966880349539059981275083088833536111746977663509895438189249700962595047596455891872422262471299439813250855185837472954772742250977659682314585805182742664924959897285637307761689891091410735045733666520831998152611891260986944366683891388196626188930828811556055976242545037367181785666516996200635588168289362753927922722178819708395297847848237060303000729140460404287448942853863456939681653764709834381608614347165096626161592151366292550832514260468114506564513613892128705974852675633224614709138923197864925129996647707859018494080193807619798242517989974776243789016094711201610262065674921417650925385900875076291952718029292863988650352992490294400190294184216464210234073284232488333122210153627798103143004128989596606146533218052040907209640139344628564851389151184848541410773893002062733891045013217539593906627012773146956195688527794695301837781562312245436436038876438720422958468675538834684421917690648569679012454049858827885057076363544064734022431282568361180895087505048157243530848939814874214620741776903600122566140394080172210075244459876882913889786458020544955805295870696398478313262268605161831255601504476831553614158419733134612156680752901367917805781768353550966460875748917163675329053683775964954564093563001872709607909831970945905426257467636909902986118059373909946577859849415831093337160581715282126043210003257505698622740165478953444480323252447474751931917611847302200634270287226334280299391398326978535063269023892178369917531147326286432622735208557551742308718844805837159563335217820959683935488546700479893859078910363767102340092110412797268192435056346472166173516407905356801460296497766164996412684227026045870123496591716906810057273947817985189855215381084394342949083296986806880306591291304398568920317999130000807691692342710692169196349898354683162494798517783297037556090499943753088109311984323417077193843353346902142690731027319455951552031118712453168771100075458988045259374715017018215989575782702373597489054203346872641844798350917335524495494870852013252521452720890729706740047478682731927055901376504494336715350728587006337927032582078311965211927843968674213586379110015864716661981835949617228241397364296838057826023116502209534812563482696313240327860156638645281018781031620059562413560609625245134374688525335922350712423919694555378807474565534799496349987514608659952038993715235909433134495523629548689304239038302122299239270257340993139842119960973914630877350467291575267076952510895099063249731353351123629751809860572475020291863339946965516045030220810564247507722693693724036241883243490518962366169004798885106559466789741404424647312678121642023913050451494735711796721483783889037460748200639873985317152558169642528813908000107690004096020162124655571311937756099622094769206494516851408401996868564532496535467375905231267563641284129095052733441018527914041451576464680513587576499046053044285421222885859213073235675008901702012301893003118000036480963917674438279921166316473646912775080924313500532049308420368703926437912408684278192063208449170664510399037976117196301989223336606136746851475508548972023095499328984254383322024754552788170380708116255152123117843465292998833880712483995755234143667829059952865911764280827204337865480809287244564036160253289368554826991950112406241962818170428376371491735933588760657580242817667018947732144352925168215506328080599432118482132516335343186973982381677842665369227925490866876626835441290973574717927213971190545300490903544451876491808823397295875743691355229296328235230551900032102669306903724076418390007839441747897143112009492471308699529542846061128879493761184651260279676199358906783691653207781678111175911757859152900914088697323494448108444704227036796034793351827982084647814692300594225884659879212106922862121121605413549805985588217381517408305047092871923917030296052020003834424286823099428384648645057881089510292965209238173513611723113297609474348388865558835482498173338185653749298586319747365853018473800828660118958692004264922327220269221402131398626925412197036632121296088786974458070721386997691514748560071767988722343682971703527001521518317532917491963962492603285862838322390668872878970155335261711096095157331533097912769046649814003469128801817819902185344431676218115861264456869515231932429950197780050051232179742643169862690704591995113633021211523541490387071818603163929897034694187356072319293864833633942533112332152079230029615141412217455200176134586767999413897414557294227274687753231004370190750882926573954851495793032588781056442322144977492670838251073155254354410545817983903278124591487614000430883103738624130730237268138710121929781697453425305211910577411611174573136674878437640034638221943034443124789911255467541787368883341273854565672151672275132735823372227516189253913771981579047400682919168803475089879197180066089770209640233262027527551120534673171475603231014908455082697194657633985861458144943377884296541813738089409358779830731157483377680517246439906460020128883399998346241463875724930208551930124462906773758426482067966769529444926720737463841808848040001341510746277507670912403115696604842532562827519648173272756891590200221740339900729471649933220153846011024119087797126323292910307498936208761468610552133121473723561366115022356089071345283637539661179163048631031999254317484498942224532116747930192377785590901130748220602595563997806023653895054742441927554067405410498199881387159621261882211279692323432659644312660949462436626993652818818858179935146064461620439145695030222134232131851538417823461134965112173888574221739042903037652107321869872238390136870095841854539449057156494698856235713360194912927510541066071511586885805344438464256458449861688735939262673475735937715091602957869082001500004712420819116097796674009344763032712535183487822179811824674384468391291117208383089436032835021597646848677628730450064787048949855089202447893426491199719744831311380348095233806071086625345218273716058285005077630185351174892464681506291180872416944385506227288322227752019157679498746345886644452872226723691681295862967867165297653037785248963368695409690116929045443853992103886603874485601519371820266822254561676741787428568763901712625436286018415889229128950982628804249938779550611175836783110366543051120958355554163781465596657742749460298100562154318221671375271114943644687384602022399509070145429594860116831904334709967818018096190837028546734645866859201675113689149272478533122868109426723024249614846778982756969160115059996585666467898858216848227157079353552317636035536670169530596853606315195088407143151502543522779184518411178345266368253628311779057720298847152734536754685381610954437017126330798391926198427282939305008736852579263449540810812756305388547585689524631878999310550286274433765703186057325923218084162627916570468594897250198162708089267123672555022332333870737820576046863824377022201148141312240990764030404128882282314735042898611710949573690570044185616230461361180274273939158822457662705290284252890699185306849862839297330922821493909200241184603370800263935014584071153791816647838943668878806302948435886277903261014671235809453286462353114613538041544283824839030072386137953889573886130573812395942624646046337900570869464468947885597589618220031480816922092559825729193440152433704091722256214474583350294654588566006471445631938646249577919397634792827557157951618578342669515226693670070913784807385203061674279778119908149763782147117948082010303379952562411002338663985137227921212950635549865224706796338774421449785020591775354192177527286297802354720214657910889942829592228348899026519745786474867218987061431755736855410761500155995420473807170875649163778844174262411006249784193488763427321359052119563530310401946608606444144433876702389205506254815298069771424253680907030286388113467924517324698263597910187777555453607891672617347703514109450150951122118397937537812849881181377812847524529571036741923721265698317443761464347798117453950044949211077280369443839166069755652483187827849938700236753441896666494361228193263909990682212373656688060854380795007931155675645986121970100072111656595362548335942379289968579761320615173091206949051997946417294016084521546125742916379197166206329560882833492208977994185817437814961210789111792387497241731296737644701049812895046675585747906098408550397347867670762681148925707544219351052394815408349184749998635292912708026481336308213833607202084015868764233599036329728028651474922835689723191574577940475041524044477416980807291279038706041109166966299616240598708188887576074591174113313030624417663966031020692669071166696415200333553170177053398156331821046545062773416722161602552017940183767754715851161651582467113925300425506555933021528087009629362914915096127973777762446284258846309955321370055744000527710157256732080905821583756390271849698769962369988218056526693153435167841765965265639833156613782985674447471734689168567107880587544624046807904217458828555897551708032019933110327014405174640930554579737119105442776668889314990989907346275627763981231193730117136244670493358064830386408397136756566334978208135524167176766675377422404968486627546677724687110955821273009625661775396583563455200236969407610889673413041618287350511621975891596787325514258952160134012523823825677269825564590770170795075601857383625329177506059663057648864713756939715619234366921619188222832325661544293752069567767756874173981823978406143756781452809512213307710714655908776066726121764467436575109898713565826441755407662061437775463138028574441465618644610701242559214554604799210732947966544665263963814418860561266570025113294578223330829108954801993178469715750403423496152024675493286352948940135416854963983603314022248415616551799976516880839339651821447658104681210418768923713777472615758911273712282305595876412468508571224055408554573026964684862109980121833271430227640102626840303835780636973206551009649436472199973482435580887769247593449444326207038179759882477544968922560416409749677304776545844954036746883450306972142551179239776075621690594761238493354116546227729217152121085731817179140730391257576134253150741511100899392266327046474067515850481816817370605727581273182254677549974431815283692648221730832674139045029286892217385851313709519693568193550360652897911709644787500216897484651608492184047063581942421889129439139819820412394850552230554611301766884106513402332799275929510715124539959587930415278289011969289919251944250324612730264384834988417929845997925571041470177768388446343443048442026914123787718222530785767891172157244957250713566854625953018157556104512033605687893301039870346582292614015115160569189409209947399266844803140653062987954804117299553915086360834830069297436296000759852459671810942107806895408926884203345088625331254614261591962539308325600286223890520038661162621921598673132234137438111361802293399421220294629335096992967088585647098008436306420723635357936955852776054246103497664720818669514115628901974327564614152090256494902065604080975363479388362276619707552177416907023475558083716096050470132318637879334716323117875308228167011210947219205797583102842077723142723630433252993147899957686115924291699140047144408801941171832355362942142369467913722116003615682641211290402088305025605716149423086722461953006219605444698834826139402240670480085755735775265303139225582418351127365969240107329002202339718051829946044047971754937658163724224913057428086999662261928728119054408479535788618860491189180522841141245266354064272715387151695498823206419318912826134101213431990202032923351693363841810483909003035253436113162533028612345422292088062100693187447017383778100485368488737616333979786021463081755752878545609005176458339176065215995867099073501580360115030385727606007300709063339020775838848539089592920152611143914250193338638140488368269599568293435048234504943949393437434026915655835481553424574364458935631754256398752848788910970131998505639461077452745938364896768474660373383825110522950175303407754198316876257209313597626788963493897336644064848450919971389144400774633262312435358468586512299938281043576537050397935330039598695573398445201009273303558080742872330874533241248833621945107119694023463420976449909974779923019802501598577698236553853078126486266038001870749815441612215675732850451044085989752015921950144603213231537633373832252418066507616836480240186187938275508646355697616696572750462447339396433591411908679756318189360605747355879369174738460870297578366461250191516345077418114074306463784821467113842612671341148813089017448744560384887049044612696409090231723090612552874817442362928329313959261173661770370854269306874400048657668069632282273917055191572711517595027917775232263326076188816267016509150324132831434178368317524222670612802633100060603941144243586398436876220422850314146120953260222345198762560536142189505376587236835998361217486481891677935731329860956665448410577526686931752686719982697495142585697836233807969185952650777545726571589463984947378469937746433510058081053121953133313504725754865844424079067582792825774363780173715675763303060325764524444860402919487171376437399729178313164343750406086562375749028860616348778917399697872716749555174928379757192913641175167838695790722551542169044350297444760855272628367948400004289445536949187870855960644241794397693729646047190228902049064023820797472736792528441416789103200375197343425912590338594008767252222814329303637025084599702228604017866031991995694196291382268002385970791675696127270544488722389760451545741045326028261986427233021972694698026527890407082450900006208043962774964044688069193937431388269239217710484164752505104456669432123924946973419878833806850986636296606884323228477543414953261339833812610194971470683978714473894919719107378204681949054941740138521279117832023441770962760073427313474997766208260093666200458899512266672427735180954081777038534907939756560135022737100385025413966320621755719087738903872399180525549996034350625960907585211480559341281078740704438849143972216202704351715936590839394169000526489061106508599517331089938028664631888741177967038894847187060192118680453036115260748218595831957057149151564086718166623409587543410290851358966422162473250199260104527385989054844282183954905134034876908109464182209261619863969900316913131465877373753031918086926138022078827064221980684920666214696752253719769167695578379304288992614246477158568829325546367250265510494307234345654239619987090944723137309882685557226854012260964262511928178227031109649559717854774535736062715325534616034847092659740578871864564003403954401116427026913280652566614127281198664467798862435961777026094402179207560550580398071091135336207737579878396350622884161779996884402028052911668191129464536177015325644462491806816298015892724878995132169900495751443919576558217711518505891149269753895796861869160705935441230707968116622614158792794595846634954155046930777834948971652701390133024714169866864886901176107780389557231525137614874096727821395576362194364771826850063667340800887147048467220758343875031522370373215318570575961186972662336412995281412226523265784227056930349669588092424525346489335313156407227990228636320981369342566835429490381182106788416359590961698082835555772085396099173374415710610192567779627863499444196372232749721509136797275704844671365603587640401411249081464683194218556139418870651824464619846646445380115725808857619557004492733629921139331799860680913900331204956736961067226157267459817907898228220841093963980303555488346185538056808148094522684652502293953078655524204901640558093987392351647588739380566630619666734640595758896771290660185957943294891274322511689308468232590082379514414843774466107937110598793928691280449985363537058865131105002643191021032842420375850925747690850161643412359007473646284303942304639071423197369184890971121142639122113456942882955266263450551528696963037238889977490586227579635092273630728478375741150118808775781665179144305735731124585552189992344017789003418014627412654350361759015867034608965727185645204557199467713911568259820982411310066003862107383525318744109435537212452436852811160022224812190905193235632011201389578644348671307927812038452529358587804028226389781440030584271583224919950643618255799372075528733847337080329295449361494872756914443612658233138531624462987824019299117735240328952029057244225401493272461722479131225143995027810508052410223386136369176211733558409989742619422787350473485087433303039441755177470123505519480104922738366469877996670402910627150771314450970351897974216114731023577474238626062998630117826758712984654809652008427649582598008230608730366276947845202582471302812019770907659245524073793365110239746374648289057841754340392861582575175172191652021342724781377445732855151681624931155860404453828514573246366826605037467718078769017710410342232636161683354401585364342417434725240009669138690755267744832632231897766941089691004557578734835775522233852695468085142960150297110970649445485062402375172259567381762940819813817952693331905199294648350032560559935445889139945454453467838689918727220173064770698148565231048813692694811144559005084854413486154768026930597662078804985671857637422388020240866289335543729081614030063033668074274272814184656418845010955932507851089413641270109454738612995671848485627112717037715076139916561991587269970089041208422451160129548612332687007422871244761765609947109804233645437551563570609007046375626550103740160272139658535455791479342087915202097951382305189252909433012752814891032162134247839419442263461711937473471369853634830963599093062483488328230026809503361331794750361651360392809234181155431070486253154874561282154696463003369975898513378746138939611364972778731429760451675802084040257832112765698996407857697198667366257929709017065729866351761558545718540097295780121869917512968779996743575385612073670461080517947957371513391782181562878803105183556419930443351679248202929811064198729617332277557044417166773292444985901535560479051782626034343471074448217401770161821757833873460074085972901068339971821481183671676144544327892527923493012834061126856184357683047633737467092073237297640736300561833958287649888416095139061104909888362165834089006214753541225045007147556934506873392680112595392601639988917661467968010488862113607292045746125020601242432228334788628590352249545512338864483220862025341807834351590587043062319202429546010006930356948246972116018437179994136028709379292059214448360262229652390556148909570317217800640685373093050469146365994570287900339662215954373727531950751278886845536992491103696339126530332581558593326237652007855132242803063245335309618296452344052279052570736040741065015289943177404456911118333523084398037420456428076249499362550021436115379971008928869177307844961201692594082742695096289029965853696273790237843308375778284675560670722713454817580288433382669291208949104883927776066116434206427005197027542494583880145352471702426657318563604860678551463736154831090374167800144400560687441089770875458908511828778315576968537814790730932546228155685356477282471177630907037380819857530989034514771102904570281319050906307513314644086823476269454433355690620051556275654658711788583015915605232191589223614425369497193808652442938223762234136007537447662165680823554998277100127861063816842653483854253228157830437714170208103190859899475307461916439076248223548517298429842359898995567622953698599158217382889511179153182395741145118343479797059830458778752394049331843660549754157847488912172871431619038671148437021734427446854505124902695511612031169910987855864342128200185880371013045919963646738067366206635717647353670028354082729013440407337913079499283277899378857830886537173260597347782169349544992852435851988290523456109807502246077094966837867450600569213738861259251807847543585041923644204380150339405679308535661913390577772039550957307216300563985421528173343896687690820343976679048675643336550224492154416656209105730584106687619941126081500723792857940937160635023391257733950975833912508564344695986905691110614924730254848627777717740447005427586822522462029008037413298955776906335164144682645802186432559200869561813595816617091550673237774510706151867033545377725055147452627378163580471494407212015504624634308421270265976362209272550799237722279803334849547299472323269621500098371315592170781808033518210741382228759556894258350368586407799206557242099968161390107308670553113438005488058950148322898389118881620068951409223903256636479439440467237347668508390709738287129099769175264541816633115071417854158864498636533645586129723937611739097622868716471645595141745407679023195172927877944004647307997349952985405321134058164318300165345738083813737257510857396898726378594367054942084027690071753654290823970015383766779842231581268488229674145178168074060352187623968233277822154478316842325602323279519492835715826271158378166132617743761045851295086747216352867668955467299018077849422653124510133115817104736824641411053792119520913054070335677870747239555119772085042257653431451029561520990808041287253636432637904395612105768481107174802589519358153750494774942599352717812852142287326428125527732368061991259227210205032430794921992239752198130510914182235396857366766362607014869312994189920514201730679489898755133090413855139312867430023249846269358900179598487898144969616927407995219868790741374247513772701137888863478197797359462442795187164382833881103100124662310321803891628860755183363742808242600079816875459480659149876755791040372224540707051553987998931375626484264679494025970353907381332546311237046019061206417092121419009081640923304838468817177984377764537255417591250248040831220825361660046698634861378338451775031805741914350642123205217772337925381067410606376912676161821752742888117183312388194524317607822446718105542660535866936650963425785369662132365510009988845923232217585332974090158240601527019687303595378854900798700949250923696436427202922191301346601652040775305309306164686080299086048156635314322993747940113660103548943634620729983276792378098580091230179763113557447933760736763637779337270229672131123911103976934301326830559628147361783200833791954328867954079023988281786615574054114985145213546719115895141448893810179956956071732762994934903401386412613746260481510292079045754241590421428125930645336600669999622928099475700804923859892926014696332817934371655311759100488371596943460339613571870519892416559579961115645333572982016335237926318981483623178857190635855468649774089521970479442556770604628842834218551329265415863037936434644879508827881701199927987413401536840922086511389682940119389268336298273084549660956418194822123985759463960082882714378419004043685150738539831742827809335940766176286017004775292359974967681792227797816215406977500188578327867872829012449045148134220782644862064758193459545295974356500013909259034879378596746991487782459845530057320291798377481997056810001432795131294200700613124159945453717863857293461632152835852915737382865675380492949589842411621733727348051047657888942567147811622888629098846664557829506497714176415717087416524417087354946654597398274358337246017898640626904070487776492964191025669733977467238416221032071150473564909499190534871872669280964507435303225056844293401563547238889243144401078924597434897026360917586618253853823338459217278899891218482207404364100091951307887632986422518368439880592336405909714823598783545604737790262984927909926083057706526253460157031585731430596961038861066522373897532794368432215156513511448633074633065791497525168120662359660549452409032871854596591244402222883492923516248485949654566220336622781607532669390336723806662130869169707607508627978876746455661677149331229985238292067958680352876694510509364964508197582620375397230094676369583255113667807251776807112827848440094491670230977213515583024928313081937700220441669733835403229246901726226008390398441355033096782863267268029864253002641933608194762791744840930653348552310318923815639633180989905052195140002865672350059157212174333275367217885797912533656866409256813364282452020900786342599051015030867031623159363052061790461530174183287438488655390918140970460992241088662152950670376831107193177852677809459268846139546215030743853213857618830697341279817265084347553625511638033318275742825870326395337968110793048523246132846956604037395380721509185903933711551172843964691427070550252520281921468979811493320460665102611272763019578059322705097966393555360215948841015471260671787421151589979363144818322878891974094446823608243693527860405875705669186596599022113326453877535488878920640124693530178110014876484325058068669746924952821282789836933232082928538699686855050970949681079590407699285927842346680132659810276473695601595083050955456261914774280317659937329825670702447241035596404501523153066399509976548134304915323956359817580754311327697380927633330020597480513928429913190078732891014128522391943433057920204188890674774572352654859559750065466648842278824120145033475402277366195582604008723995803182832662762798378111034093566748414758785410445299712100800043335299970217873144802654451315246692091902494474915618714530337640552062594075522731615132365711108783113563985682066746466716924891644278903187066995974849439086994494635441859332026156549076541619210757408386758151727483410465729776580620750853466246560044262135222469090567911421558469093539365897932261049043924665351459500281747457711041246611006417203414581969947935939766218147124862695360116858260920261570253036121538038095619503077983465178150484204935778253004429099182751431817451117403356702528394768731216391767216842081806466406685989899969951664274329818734214034731999441486580970025782251960003322104605591610162991871140352465341480292071866902004593414585012358330484621186875765910639173682529215527479618971507274493293200802960079734245938132115565413352500066835848442198555093955692672360784128035411448859363069468930505471711046656102630910878703554589250269428614868679308637286989920187190539835488070866244773077290308039921199063267839052411905541921724244001549351542381973177026895975230311450299551544811133875814106140467837399916647582645496854907997430087291427061034081024678489444876912804076139096622698078205051720096722573592480666779997854578950075572622145379643863741231306346029477079984083809929466792661333763765213855809860946537727039766574834105631484577397828904888383875149920712005433429090106222996097117638593506401867541509500968131845372486103382877022893719925861138614132596840996510722372383042872029761200309933385038783039324707396157295880350874384407759303570674376295104652379702818860727234227015595711459836308650494031251678581414089231807892112214970334932087740006395958658013864590925533919452068507056702621339743416320190758180867166624954892840830438635118533896310614324421115060053510181978066006578371104142661150745518069173990677340153924888333265384836329667895333226230746538813395056866396594932956852721903693676075251510027482158788827482577497868976511149328450495580123502020353692719784141876561656969968460531619852631657007186112048153874975949983323993415159291536985277340429539867095725615795988816150335058818250162097412884898629722374314192469307696486905157544263011791435366899743426238540658966477212506309366393581356604587265885350653249460375470825574700972163422350528034621016416789308786113891409885098405668662518262730088111122223683092103056765057962647089134714967665127148756741055871745334077646998031720508322533573547054633417708860594062705111818226872398439181518087794079174724290088245463410025102114339921752721350328856006497782603444044135662840850415799123530052196614947492582366937588757810262916132491576668605206420958931221422912653335594933409719383548282056179073180417000019768491064823846916090056240802890887797123588565119259993277252144661853566702126106755099358445980048845402270646514830799762648836722285180609699972780015529084854384040332682772014998320832968510536848162279861225585541636084578870114209137718825331256562373040654488337393123360096550817029692425335039661032952083301967349855179895376910966494740853116367735498228820386614111830385859213491487124232268570507148233402494344773897193293575701866478451856009851617998102250871930892836883716960070618735139994871029542737716061900128217258141557131459961478300937584234591326922021523748499469465399665729277898808771283182867885225593172784868363827323047284566783690072667217952444246875886918114538121109370517627534510868304715120121981424674221927351931902266177686735724931182671659188260049710360806252802889623496714251698956229700168832321068050836888987596804941416957211132268048934448991301671887073335897865901237217736075060538778817272909537671079178852095246215090177828546014270816267139356896293200145787889651234896029502458114864805245111826373362116209829444108529726582698367995112883076957772771829233704674352547896415381521644288347904521630686262635286795620463159112116512304802214723291822201602303674002243022710642044027904389034639304428032490046777287536998621521179439337346064716516464336174883205173165114139355699159646528802146763221366687499939209464548602414768673714595653229745804254717873650490072318927375050358969430881881900030609174556177755044304173282641172216395245222341199924895856474157690890793910261954713714515067785328630510297287947647622374176754879264648238552850507192427813930576110946852135960284273523568447472163346793869556675941575074712808860925393698203653476976937095758387443377861945724156149357341981085630473285154220095467093368975736812428521030454920870004457902802848044223329742504952735722970536202201897631177128554825550315449988345494338564999830509403680066312045214176330239264766091415591941829787239302123709503207224992520212796187396160239440645826448204503628115746881026330707841446479330542601065186512633862616930284798242154577618703058580529372991413138515462677173716283647633395444436557829371300249895227880049085954707943998331982352457327184179150847366820833399029108923808932610674066889744481350202747278351697139575355658831534134960779367334896477506351926088880412132807254119694121888922678549976155691983348550930243807348917928625055399932485446999770966090667963885380215222272716049016022637919506138324809584019445815346943842394970783815768940743711468200961841144443117336054598737381642899126045384361938874810404675896841204751318256834834436408887604955592533596453342075218357251907138936216161573899838528056717615645569240297953239375234270651015406717822979820129558800229572168867266915628861024520917571738615069123083318947512192172888541011887347965329921079629167801616312061165642256479462027378011151901795072038607619247306351502575116905932154493509517680896103040263295368098388562191554987879747875708315599172776310480771496416442365459545783182350867438298641969165687587229942290303987138697188944704480860286072915849134764380068699856285901411961691984815313702294772558053946994196455411910813286598347169748179047115286232819231524971213312004711564887822962186180424838439338710837433622247336120343095592713189855203057762341344192621055400555113206092209071303241753857617806952641085868755418592242214615541348692658575525033868167575158249915261487677847101517060618933470538742503069400112643774836749959023153037711067164314390896302894213815919687438850371330143134440260420954571925854696410918808235392873992505654289971146608933603685348868825912763391556174516760145045004743976819538195346308766248464610235296578474114917949161189613398009699833934820827435055017469856056793672157427658336633457051558422916403360630050026182026966140523094148111846514119891689064922262949936620967812350956085107685223658908925638120453421369814432800717171310189086333469117406872317324871359592553100486743102334368666764232907828552527868718563183418327293568481875282208367673880005720449328874274642189398432416097050897642220837707736671501591097644066674235703723185305744571126009083535048546765199589265946436269594796273945527254654205678262354927468041891420064414050459430975922424591097869223039915912647502742627282942447110785907946694046492877680504449003554396928747124190501814156081708538332831571861029119890509536555146925060223006821379616524815296725698596816428731478632378478200167155337351266071493139543892354297149739376643393160540691535356928193931152645063012374922242118532568422204462476017091090094033511833874726649934324120960271838254790486965927371361570058727352396269818807154176062101501361596183014011344863429032038806219446188824772816991759343453688182820747714223130282155955788487481641518432735199894842192857205561352451728420590590403643847022509070877937147610987582683567530276534948342921426085700345737050177490567814256799619530768190695254486106759056361742318241115702005372409832015236956775368207056239243195938972094903789612683845298464780454552327528686609948165171013136844065026293042859918440779840834865426381471694306423899464003346139282193354873446833191234637890026814597092079083312497861694258692990933288519319130807600145933862370540790870881227336325606043758895730027822869250672408146221988004535245927145346275409604820837226300973063166789172709753666792907416110512542475021515711434587286695684881631890396112384295448560501817641622028869503698697068939227967937224267382387818236069413847728837635834291935747790918926527951301579564802763003617200121868737081115619929457125849487593602336898865490273403694191030228965901037911802229051113285845439925913480358169626679141379897371557761629487663621581115632373572053399940097726748319957695374326980301972561806996543476806628258464747170939577710929762637307043131238562358893395820270583114139891250885324729423552810117743088986985192394049006278428884907695985408733920944523677429175502430779439296885834058557282994768583124488094289052282368876075858068863279985797591197251236783376065923562976881585751594167359553166313575472580566202537958466947227510763966817533921558510788913765355931474925357680860563225150182455426455036940946320698083248044807159483901415248239800182090263198534867957515637221345030217976483918883276726246582551892373250435464043401052323574381118907881655458393324693894641404261602372796278589201003855848654218811725732280911936597724274025629822609855601815518541223416075049163606869467953729231648813021385689669116573288122466016081588839164335369832158777219339941421160032720197532585020933962568193551472359390635238585262017147251285357039749192760286736072723504124359123079179770945896686811081414609963551613152649008148562235522045578712649220015393668547976965307386570065301454933580005325694869239895175299030744408334908311698677672595139845807345660413279974565649577514260097619524687060554766130987630026525397428987305301548476639842071749408787138290482353891872687465537448078966864081023263471888677360506344335505376052882455452191187097550841847413406486815632459245530584857383377592378164209191916752874952163289500198675578187279261017680385745850119176977248807452049487005015021207177164301671420647194058522160781181843422096020486311111768774991577675586110364412879598125355811338765515339346411315702887846759385697448472852678825832001112596258447463083704533414077172910788039828459870890061431299357777421826511111369114876958416779248555329625343322674683093034544674058103498417030131379029659194091079319564654328930795773810632730882497598895009827909861053306258260540964776787979654078159023213369783465623688164233110427133017946597898789491993735908749013170158049116357646094611873852868721798296135718330229385326944471737138498983296830966343120472744059752630766414655184142901516654280124493287163561593563188171511733006923986520007163980492054727660686269891506240481470804225627617758247312357859472023983792414520700162451355716457518485108441978467139144668570130192911985930727590925274225577593160067257588874796451928788133598136132709162520404644695491117755351529661164037902471094176481799884175492256074767593418542344803807711305948684436376919339794826420830929315189167856474057893008281055053015327667435634680411305183120702604096450589440063968761423136856345433856524509066966561204166505585148197965386079974967661502881935769016840638542632666607321307197251715704247008414541098501492326291693514087358844810339198134929770620349053661767598631884219607538055084332570674072731063548403730695736041578935406913757649656078091641532738591346825874736186424031088469342692793920660689470293258115170987258029255210058380863775469689371065373179370536705952596423443403429464874442709733812435037003712226605892348181295188148097099449911226458525245680497144926539900518312107073553358397355884174027365990351854590187333743942151496415729068241205380370601223879731662201638030395410405893214282797199204368857230867752455515922394564142387332712456717674487705460680493587551428947744266827048925352451248917018957754806588953942333553530678399797116853950627608091541934055486102052476569434215800621450123742986088701844284720544939474170115460656007564035409697899720757102148437939587449017749564897611933594904312487153319390501034272605385012772774756713218590494269103308554127494789702747974710124132031151564712685469251722141999350625945534646905275645383077742557088860703126810982877707716256045896229369806024718248887575590048430713734191804192688778744048856489467043824676177473662923745241858505818056899121586582244800655732348486517441138254572212694888978371368290777554177712737927789048398740506279695755633499750703133586411542754165695695727803426576038768605610878297473432520278916287393828284880525076661125840615125924526708197504862603809477517319318447333341004833191473346694391222486952398757009087364984861847742327819824483880426159839317821866299147097810862811774428856794394742188281808655943161156776528296406361748199140981149999192803695738838718423025645999375290528314614281517386518490909159705946381378108134537095255408163898557729140742309141992915378677941957987522879772148585884027272552603803554438098783372800707024135723608706305064757310523824089840425671953622187789322517025304269051778295471655056190957075241543775451059842249745007366186601583435048934482952065856439606670204641126305997073424660412442700516479858603251134518101628221687718551886723921531031043229074189347519847928503342761874399081639097016403300018999039779117763592279109109359778063572928500033186068064603441396483717396969633915785056426983929424047216781468647193229360733808834975669853007088980376859034421949551872330128371763259025496873776288520720174169611357629697646475616284767959998274514890717703117200608511876005230869362575631598809263176096313866733689405018005783603309530156987392739268304890487985291271795335065440541753381075992277597111872689738182731282967414681037862388569652336246787093326791829266837557115059409928705171420752954235954113640227432669583953969638191929833033635436354720893053113228359239113212928197663343894514913625780139396641847847929168707636990923319878086463739776393921981294325951639376290558365113371306783586408395189101288573992807579598463659216851471324331735841425917488153220408394581042908376150204498789083459503363038162545977185229839868362403078067454546632162606075014318797530243319459896428023271319387406390678452699897625899337307469777096196898107245450570977592826432703188872519703446652400582265244217656277077923994229452936301291461039429043537633220067248196495918818122236589591676715157718385726486706849291715607943001033648344865321057969769684636336571840234915121276456783758508663485339853613385277726566714724288098236850219681868518707603636224996401157756946937325426992466452062374252500688858698912035329446999879012272606638288572238851001689071562498015945972025232820757528794050223519934281289975264450813133291314090769105892491910886714951053906601886664944529636022677403072778971886231107533958609297681195193586557751884937881610462457400892618239001559233093876956406999840749159211822656621676945873646134596189962686260592820723903169456784179233202004205749096842854714172062360119015502978560304477832799775184655241277632799209820471158250177468084156437491395275852001426724313336680757892691949500380168962392551167444358239315869912118298803104405017376148080241133425351565601105336975266770243328064636628218977772753783324024471171945927821937571306958049318431641130905340707803545150977711260718789545816478988849456545809004297225394066154703050471501408942262102330478527537537934525321445625438920245306972070722480784288729414735380041392250083515622240881776816988328790610332419524744375788482368537708001189901937206087792094849787410640949357005431295960613970177476456962138864518043892603851646867366856954110034614826578322944363658686400142695889543487440651073907493230702189240387072215248082977730654871571868235441773071862770591454325619432014610877998367108280258876428110117839029272584752445193150123927129711741807934968960558727800749271763904800607439031282231278000348012317479730175421923218272330587933448200705054927616627571232951957924058704397377440305807709448412117712209864627672441466822252220139776801169679034608861035253705950937938795694216635118037782851185685249391787381900099398606225918315505727811118364296751975095074131342792252367599569206790032560698757845764857453680274618036846702162890478873895433580932144899005756426703311693829087519319360579023416595739561556123403688259157292712922278083662213954819631241522185576470846399502238761626922078403348081514227946645591874774085777178589333627630980569535327758997244422361649084581247639801867356519486745809472648284685797681335307139179300115792624678199184029684541883696439290980464084841793663731252854459321661831892757081300866783150457874786221062649054097898393476355779165326504435728500237636718285485767925287832114315706275911760869173586848738327996350199089109134355937811408997867515582496061629301426990772660752845061244451891492567791283094099422722367068374177264201255921116931961176505296544572403317156202382125639454275095992603163297780426270112844809268383278925877773387914831290660509374078570631925471825323108925491464316275999005737654149102573668763065599491943163646862960148294594498910769969552498967620960436501447678808862783232794097222593087031043218441286565443937580255956639827249603656941971286999605210220730301051100027289666742331166019961962531648293576107311215992755875877275020255661614041965208110257785675899213098003048420422090502054984534644481941460802202903507528692611372795309503193787588723852516485199085383255621779443679045578373945322648448768589509205022886262602569260622199376586920174574031989967144069683356750361965341830523287368349986125244877515453203802255187119253351112976625993312982461772353285957740386940115052328641032639519909394173917990899591598342805885115960241471153354483804982829206331177528315294824213844506001488576366142094406437545858208953810355105173879710003888740300110121077161697682862340096662500293118219015173749251707854944874149769055034439162826675299187803536421554693694172341920808999602936098603625349834063600347221763319197869580297251692488895487251560531386928279911160763455063509623413124922810815318078932566705220472807930457760049023631878285289268649062382202950734614361408685246036892786325489217624733973213043129863474389227536433226451006456946895348279875604416894407151422555593543929555029688751014201234084166210095579453834552340056831185001707770116545958736912734992636882789436679275965808499442230372358849822627793099047644196925837634637729184606169882506953511083472309077427113615819694465778007281283919801494784299990805330260787925491138736443570507928413727799002801072103457527674651007745331968959034357823379606458499187042265871508610669041692758529723871913518065467954100830381767858161904032280656964561979709422766915439859562027579079588681020468172968303438964057297478413788010804128371598841201870740496332844970268305632268493083402427319062543741550244657286369916758604144588862657109821849534794366437794579213809528525041993431247155349597093600791174205624155580541478866904296961687996432234067894426436239486655972824852854658263042787264001528435836937319240064079326534559328490288204014855110215481168596426303692295985202033925949506451988470036180778860702571634201566591167761221151853468546068485718126295679204850083535378068960185527962880467006542391886657399246946933056713741617332359344889138205462161188850893909424464828905320967414244931344271052673326765965968679883842336298661397678707105216833872353191815108074735442400303473117711266509896594956398143498306434886869242874038924258880892826888738714181801642128504017761737990582315291698854760207666452354763303883319608868905620872670861033337216824182578220825523466133118953986063124068417532334197308412208498296441816959934295735408447761053449298244270026051815491657725999058325590424382834705952736844592850369353655704189830072008791550160950608405885682029854009032346011201814860184062648166583437288075751522589742741912024792275519659340698310844139737971617296659864927161252447536228009006795753264074992099248466831011805283248409230694631441888839596128925389167190858982449176400088301614701957863813423742120682604685998652296854181882624990514649502011514806397677070805436102480160946136493011580681870504423589114914715997394884732147252231067408613326344537415640637929668710729668264975491186278170289304364092709038084699933795176968317551689140904498643145758062948339070659046659027540391113119582934687169682512574513702154607195030770287441979457083615200571212907501751532823016348260384013028803394147837459674248382982134746955775201534260513834835660996453130109564081222981179326132478590676265042799863146369440357919345606833179353437016518210145563339126573160401853656439077661176827230739808806163498943373449213221233260034621660389044022292663737396160970665251356819837464750133308609765016093896670318172010448273852606185990683000949218143473180462420793444350451071074353442095934107930179385645666831373432554791917039740500926876299034965219265091128582000767055693238133316105548633350661835355077828968268050267012889568030174869200815251264858032010253257311245143731629007422909281664642689502688136411885669106152856950628968664847661140354896251995287799449413150133485508234084621219559722617777573301261969844782905661141687626279885396804898023491187909441716106859196956275835416300926348244374342141914211284617721418704509233256547168718418699830993166252910123432762218548145750908453893323188898507423605228957608921929481697284813169201860228481574254059091063607687526810801793876555803942812161316047802925655849348436987207045490294685230135463177667284629613322382825657285021460395052576282783648737831849964796113223807505596835887625690353052400184511006106622918150090512242119761127094648710533971315253299603013676551378930127770073986379226301817357564745414992315486757691817579020837410401891123117660703667543738217494824551376188518030283208388679404456245730141573736364020928459090580242453634519398257886085302294305510496389683142478912208843758530363658100731454416455090493259488419081665289041287542175124821000316381145460147482818783248831553226574053680137463652302253738390640122839970766732534142615248129839554398544606290566351054575276182729098036290133609747197513628406581800987449402082736303179268966114458604445864478827998437257922698170273207075783537387909067568938326150668733858173838907722009721382011782701363139672520815987710678589678561055260615901071580974749643602031064650822905718434497769474585999824380118181116733356329895607024953766849173303754682835676093703936669276511670879218904439117959235160421468738165016712341819625001010599002683098934080559285353791055020544038242126211695516703980727686267933413289480064943687615293704794318675819982449932544957513222142815547215128704226188210330876780745419805194535350762015622402601732978290102453366714065519333030072858282519246933114793070891710576300978872432082587926128464754953162571202007760489109324907600015404369934929893394511579109923029780884929376721968468793658297313786851236524152871216169870840944640279211226173822011446834345410396530778312594352751225492069160022508095042845597589118718970880065582492768535825784071700709971241406422434144777875353545241094400693927119546979562617113575602013997736486004358570252436999224666629021967186617026603376517248372513375092753653477050598881637998004462574783980668859651963877330010130504208766547693078841754395297291040836433282285326301810648996033113307311042053130158893626910821537609344942989902279960193650454288577721135369836525810401479295520993819368455887957613721718644621393315758925638901281296349839884188975541237745758289905497005715581945261645822279702916032106864960285649753026979470597116451583399126487759475045491323920557029581931240399973233316533749278122579235078230145858058049700756940438231399676180896871877742015051125871831048739432770977608137533535092180626988004789360956583597350220367201412889557321220939562929157666093040477504945655291150357600049361243332125290568751996178286054412704753618459562293111528102200395554709443640270577412539206336525235507914012244928686273497663383595576224927590622662768510873490722789368209322073520344779600070038619325515303705464464100024789319961217462812268175359425742667579493871662481692714870189544458725289400415827307624870539596470131222687458605460923301385290485410304252756222323383985065959062058306588193054351088603500326364860480704985322865369849348623479809762903597610307029798035745847877255435225411627285044542686347247554312611320433793980650919495445336933638148076512363304833902550798659933614252269189542524714014084206480950175219232720795644128084344762116689739458457532687001268593132749387243482164074081709927258581481076783199547270542463808017290933608858009326075528110186221355094404472565071015225223962029246661760916209670761525672831288387695558873867779518685319614930355130513565478541266774299130266915621320012284939892128555326408020608720477816313805060868527061202402685765240436041686125065727875612471478066864979039854936126440228729725671194116466482870341315724590829286538823394102206554271753666883555339031654390778945268067583487856313287445431496451987824751476484970665100070346430592697579384269098595079547869100832129098862118743341083520818947646447627575921181201305530031771048317797782843694198452685561657028871534371774972537685710536782004846616600606493847360670054121004392254225068700533440188004052831039016052014158572660568855455661928827503160006019464945637823613539852099963738492279708869323801109096968458060973276829545791849714394918926312380549748757659268374721611069835004951577160993160236541558275956308752257849876218692603954710286856371493080573832951470545501124192584356883750606709094441398613104800785756170351393622802986366296115017883819112322925353355860000853753564992637283323403250730173997843721369045581355976856796701857571364710863918518752951672764381740564369305519251901767025794473958577419634170267273883101161966553136334467070225224165764738607485272999506782561465855700752428089736626037478661611982080141023220669180372752524904807794395428816610925643652707151493975791254285669385259515762757774972004725521961530471884548074762561163000055545848143298057805563442292295024842989741277022038715696046989578185552118443982378297275396660530349056680992179587942892698045397824932679756144658952942240752907412124890828652527046882435912123843484592355792618517732312434576641237279483321640176994380293185965217457559242036306784666421928233959305043511305339537251007081962876910094774521183258166531458999261048314664154140917057762924730415592226225278000566141577385076416472163157609455661406348643776714424114757593029267045334264372088971880212192983013351509655025360040068438947092736715017801166563282662954874642847084438990122780773141711997065895868045089510177713777391178991734962768925359792503577426423224784801652707513952547144488952189729182749578618222919542241106599170946605230607770398838522278474970994984061608361276758502915847768637484772888110331508009620093135998492538856570581076555134594120250434699616029902236383099926024534248108066772065764211802125745852158190616757860847244721420345423135551105378615982775724526642010494092347557080031880188469572816521065063710658144358053533583397805447814817365931223208145282992260406323018747934346765468642782094235996065415273674727661992918509226396085468612316245858185053914980235634025801159473039195037467077092111047291266873998463741328388854204420892988583908422455329360481011513327332149399980661981348478765341155283752464763846109663154228272386609754461775215885887902301910037395102667156630023505382273317719251885907626672378544668791872165306462754363853555109645255357383453030686114465846803992241076123431065513608449252500177062154401612415758368010489199463076073810013636145117163715430366597887493457702361526948555799027117799408012105658459627113429249916419698378869551256920855084998564534311815072927561340514703079870781292148682771007775157627632132887997815113946521884048434512159204011376530218331392722602723741407087680438730607589873584398110494095770340228171838327534675284197026269594809754361167062108921931708571120118761160344894524768180241249029406621441989926671367473215467367049340395856340230394075864858237127491442338064305336615776314152547605275078093191485689534717726016730500295668905233948129499442492581714852866377161878215822441496491612810868615365380120399836257385145924204518881054205480363225764119736674539438064991406917083275255718611449688601355832766969441219145267425555292594237496654665100068095933025887316928831029094948698592830396411053217114045329098008589683520526671936839861482285936747400637277240394156539221008777059058756453987958607323103083351250817724000703880150357111668156047748821397855022314712721229047412037230568406396610765078694785585331604229867464643650100589594821700671649450366781520601057391376803576058258803583012104603451423548516045009534968327882203286386908127942724526534727993592633708893925845553428648023930602612375768083236351378802906354113049932724655223547979095769733532911150346585265235196510698948372883631380965770285063874015744731657371637986617131712126011689238201836384347116693099279146413426937156169921218753906458942896402411622121081475628713214663663662402453202995839226485516267676021396010453181722730597519096480996468907574161922718850406682172145666478518549388971507597685027461439616539056386988903946020635546126728104582944227193102759698204088649658944268184536374618663079152735231390146638053432107597042539972061037665200034821977388848581549346765787091623078362707771941067763317377273080053541517804547704808531401228091981200660340286481701522145851556737120901882346822904675345067907437280153487759826348174913636234923613971914679586897652963998278964422816384512202953887519217773967039369945241612098732656409872005676694759705601795832391610326382732203273825228551839530790529384766432585880547465259980223215254780261218624461316506119943082702204314338709196478982267184460289692125045917553207917798669062190630976515089074780531064844137245783568033391603631347368554072272815483323814523748538962310074756975117254653790264975331593092435881040422555235598184322771131852524529653236469489259767207523693474303441779739462475849893459268645786224651365054867933068359734812817154125809674510963906847712806613616909149327408106243767933889075229610337614102393807672931577303481663701630472297561141500616718842313652356719075069596951944152664777361372483930603716738944741818835954643116984715233619254917550966901175420970866028798008214901378067622905867284492591075213357854804592824494856701504542552654154260558490464215614079794829199066966044430359750609608554245266575648700140117203893832558025431419953376944029675013994536717293189104670522301328111606983659306409134625644969905042068195972427133935919156217422225729965929432686841858460611984324611714510891937515842964506756449222567389261561007513939168942589662600450960460456731164538108499127616756173389186316165480887025842272293087453192537701472677887066108840154561589764093606789667844058419242046978074871110954038017624353343991836537974532341535774382057568754163410747055959634537073740133976324593436547867419587791289456344645388048531452828015197938300153324045600049100357544028557510957356877361461261437994432295181335730427920109156050438532346223986909597436620049722480092293494914949924530554167622970581235055211813551910114705668357756989316540485153707346738416419515565469388426358221897324529246713181535384770606980204474881190338331455869434444335323058887389693938045105472186011206124870503990332257566871395069926286486726815325090526554957192171593224362156360279477233386046259404772979609669875472161303072102664992598670290490865588838889707521554970425877983199854973676548603418053729289344579887903246972011142122717170529711085876223241344606824777881302569748333667965419081774163822651637174628877565982699385333605854415185913366609979729033805564499413325494181732575238081921945559799183599712388626323112610224495121109979488136064863825751308248487238870014710023512240219841920740302476488280556678047760307913332242718374468145027795833109521293015377298827815310749395129873966025601091050779800493008077179219651062304421066808081490357158260327633436873537092188121442420149411791882259300257928593432458317665608444591365333730868272715335401225971408674614824198586708679963687049737126349067015877605838436819415577910549279984165642922746002200510642297539253661008748552774183445323069284538518039265049194283243210579474092359650205139175459370796454777327141044840461711540492259447147681623692078178917891980303904571639992316488098417092165866301751851687930785732783418119652137775172898528038529987800769695803360230611317260342794398956755925529786598006334146533079937707934568335555549446105443108988920571478331751785827007449667907366491794191458532302445038314936025104409679220281547945714093180017240423360163367092390996307975334173527995987372732559384896265239742298727306078460496750914170234618934891389498464005023664372132396575573124402748272534434371083642135529005309060078280820528560243626468048381710752217858919896021310937958300737445613191877026640912033037030434239304422563793604368907892475211255842798552477935162691300282217406260822768990731965603178746657381943750947427839665603178720671529673937149358140916976456318188378922131996945510164348749137504978551310186917879013507059524626729627831794681243352319096244281506865613151365321971284379739250859434677819252573141947867913818812836545026462083538805905328518331522109953409881491876831209549400274007217532621927441189737287971245580396079097422855182786728665743672414142211353529859235805559204341132995037074690129709835776462510073070259852042261476029056372583077166951858393314062801594667344258719161947175370763130909331694853761476029848812878891590861305824787603529480055990858385210846949858669619124896347386740067535021533588569337828703433399716406249529965755926793305123573475248168609302964269917568700956699592870662757643308168151360743425361195719116293739267418121688198981769944346946328449082595219655431678782072845413767942120110671503394576403990134413862587832502037048522674320553410091495108065443618611391637645672749084226055423699700802236035250609513464412098694107374898980382978830450359385142056076808646301623242103651623098398592286289786682802412689167633336676983309759593177545813498924974869926014721337042417363678808475657137215175685697501037878304036982113173531967669117062446148024724219369884558744906297766715240176635858389335361669129208464454130784344519770532483180059280424097178698488694161625519276299849057111499337952135569050895997999479246396053565038283385544918276569559178258365236960422496398571241960468642803955807372884912479062348004357216690644075059357180624964889409431798477055503094887394314632360121111981075333973835786880730266813042196157168754628895018839337550213989532595563263180985684482386867326289850015541449193777872152452015653793494547227577584836806870802311685457895487637641711538313981195004564898770234091676042448829283745341956433761545713171990339302014189661357954246572791686419856401033533290630186358874262853387763828809900621978771214706664140812486945134027945567653942041784123515759946658139030713877072681705550560771348321904059576508676364996304683069500599279360482218482040590894454176085706543715217605398741884434929205019329659229196951820619467323123756599419651033818148138037764347378760419499042526060573313546881539248613848315133611724226079618967251362600706186378095242646934636921397910155087942087515821113358806797381030793072850839384427670834758060047736094246507948929041970252134582720867341542987278660146262447908826450102351832668486331169146034139939253241104753865231733061109585622516902286424790111572183817816817803332954421470742299520962406941922941180261818781624217281155729254409814848263980990667853672953151988109684816643450270502382994167762263983704437471289394434002231543982063049376316299645801637611355106720136884564112470007358608867919124323438285486007222888013460556396230792985071279392274653556852409835298371165443693582875163297881466550263468525111309008107514060982852592963683563503064221680606899415691500971283264729616353797351349310422642401647585607416276694251287715136816490277514993074237907989394003134221872917602943371232421591800178287500550284994276596705792630152794635797048834212444867404738825891934839912463179365933599965629078283750597111642493071996134543228626807364707709326301768590974962981180151226270810962997599484646265159006055773142299791268385062732961376902444372382671662393643861952541765767838636335084323060367161299767274900828818015543913543040824097116603617372520758021012244360427763015503633101381958599877569255280046545324596506687558679132609659572037974395019923973469457079165476396662431129458385454422247201087209539616934277967870343664930959052972620130768590387078954949760191886621444619694857552438275013569179331012897090320064711369160761831637593779454802725880102389179833420010190640281370145655059761644513253684561657906555131704698698968570723081854351228947583339708479703760346585240754870501469770194913270136584705616706764776565100124943743337284049536010642864271168880168142719150274138940454881945080283417516573009204987075092413828771967097692157099690310762075204956821995054921375385018698848161048616358580043864280741167837235678592648902175469063426802806362556009309150406812595687340666280731260013601932982065340872577164686287115886985957264959566319659319974193699099890236203279958739512208686441860686275173840117794368869796613108393512030090155199316268356391082383159170396969606353725160721115766643084121744338651774869602604941750535292513770800399340068340990243324257042180619848096124102827403696984881367142391036734181720264906523556360093135194229611329055045883410218116794801636412458516753658767709083658268551716205402656426494092453966385243999779686849185909591164342552577502118741805032678447205953298942504303073162954401751021551050213515214687287813203563679683744839060989793922497532528414508764110285145513797669762663969362772957689157487741983147147653436499632255304005791203085006328222658482184804808399367248322395717902360133767452098980730295332440198594756638990749429359107767665262283688064195775698378827826398420628335507593205007415218478912804743075613241409397189674710702899142370168445060677979174057742775248639256536501594034497732439264223811985077723581303882599064460587003596205415468477848215342984061292968783737619239195766885684367018384887126815827307416483751261834723050605215107803352653160909011673028645491901717370988373336073570219043090032602776131224329647300355070582053862201717749396396232595348612033430620979481146310765297955297913517233169720830337678159534221659361150960723979316152015058239832287338018967870488877616959390382372722170043453009247432892265539243573321577372788288807600107310660146264910726361876047108430961728310360554729540254194357038202503670902538165088823927053818028644135576718726144787690218032267231520853327930745706890609237047705721694687016012696501150045745385961852926212429036435382760312373528536037413943792970679482703489598789135394099111696911685264470598231020923584740861155131944443390564352318311220248978011362993323540240404723153570566511887311076538757598828541585527664250172136640062150686297295927649782948129591375691519714955958139029288680876046487350076844621829476251311534931230665763841942497825784991821913592048046032290273694786357294744695837747722503645383675126709317078559780685599525059152294273004802239263022936201468989553817188687331840582135818680713171267646692420450107493364547301845369597255832227586351407604484858431599193418394517094871823563318664427800701749128778897899690982091150158851284681485940041002970477292071405216513583874060515543493827908567983455299008407852947654707454876545317488783764198169973444797462738437958921909800859668029873878494687513425097008956683743980394446306290126973755174778149763524409831244826409553863413305546172193933541069123039071018579283364992516754796616039479167392578694844961270722183928610628238124223133190813462586989516936116430734663626531152413658950562446216008597169988927287317590358708035930793361466977360694932958312713202404673072426478702624258373224604361548827731770893668079796945213916572894365423954832851952763434454908884036222345085384288960508074222865574217632610999370257959784204648730175776355120394846004815707035263216316367549360830277245495798761259518239093736283114199734675367094060335057754072183834232063046576148645760811050984826423053789677777478170228448415756475017507152599361351221007401635581880699183283968679627873230688041459971499517709434382221904466625930012194366420543365213481356137985473381365512862288627417476136037505575785509385387986042102007096367793049576106502784604833091702556763074202281550191501618443809163089341519272828506925409702419305861794717991238788901656818425360643890826624068607902058989883438921357047757706750333793654406286169779694302839699950771787347473929057483542983288563946736203045646232226161399384933333269198118892154113495566190867169623577308358647334436499650820033124713761244745514794276300674708629536627939158540856458404918342913325431054496198546129004949705083703338744061585634197714867687520552495957875524306377492324347984874777709762365135066381160124344633723619822171133003088802171479954985117713290388772027595192084811972742014581763234186262384165763457713292304241102384363591085627291784033502617488181337855756995428413788150900699817762063292451749370754138723978324042168128703927594226742810232734588019648775098758049538976998760881358896508939769539691883936392258285061864332871067053487425255400058564342716538275746185420068096490188050608462450798391936745353640962597081637677427972532530502507817548430357653652548813832021578914424759465860701274411897327192436835014733667202412195839629772448920769515936303808104175012811391614548503123919595145385728847853060060770128462705281766499812433740737432283678380654448151841678733278144411908730208365515202601661362859115305354186409938164863783494828289521327760975667703011463709311571993023663387268376330658841452336485655096985543523719091238700858311110357383327322905100076472138316014944532321841764268516047979966050733195076842309744558866095807717953299870047467270116357046955932738544352602190020751969949281359911025866636263713863264383130056658177301357733370199363805326928152458984178415359066815838997744930092411146876432287792877324451118293718410468412628162967366083224724580508978797987500137998494950822046318953673295502912881888227996291557698505732582677507063935177701742749850411627880117377799307447387528751758706137162328631363890031747892788895974473492195102222397160139942909622462934543803394917210344611937580924293964490578519482407888596975806963903490373189455202882559438911049031832579823598706756632944335315943174519308871284818093119966142580416964401554266396625409671656430899810530320472209010707550514135659862419631757235364398352157079536204611227048087854193313118020115826231615151785813588795353689183908308868249418738199535433132405398433721660140835796426674832511841407666988304794559726297947137319283513534630119061227059926241537904795789771751846244019810360319108906035262553209491992446142329013997619221822763983817829534317068936046009960331429002905595930157493445039397472615019044638222780187124987031562615273074559526133933975780434462061562903860520454022820923090955340205711000401063940628424005732369989004705868216099337557359606629766046011534698379948267587887755331017432543585971856093439382546559562362447946026914557229389987237435336603646557571642105694849850823364324341401306718368205123636057500825315037388168579032703319031957821111153663247317982699303943177212705757037547319431469619124068237147044207933149861770608923142629848585931658449279514800354336946051628818933294677942049087073768356710907233212908611917717086660462375435658093610795683634829456237665239038183357419709797308121225039749640444220789526355992528311206266402294807698597292510114304443249064576259575075572123987029588219789563192363298839910404821033878509469756561465467231951633406551218408644649678326551860724572642616602458778672390321771020345707358136506783172147582181061280194288069109365467409988352668241388111797472745560425343134710045429961860756751471461631977538478544265487053702160369873848716572205811678387512300311225354826979891599192565993874744039638697030221763380099245913998943937545004983871037326177400984735494236162041473447629693599088124218711580072874342445624047441362097412088535741020151683140051627836763330648226258024690407023291020827014779708723340156550575027560723075714885926448930359844739929555197083840159881522621324240423131104147236166398679263776933103485235237100668851148852746336539099291407892272980471232607852028606631786517802241805397930456789558235529145837545725392234700676556706482637218030091284269266122863235261022188591134559456508842590515187558718399811290383362562354790323861091286649238897110440542388395587943463153760677083476810183237587471711753997577546435963104356415771951730936190615333335536510779467040064275765795453308541172894401650627849695113658814355538826916093829203020206167639259858980814190528065387856511499669202306766093094431756660645141992895893920794083748107574522795680839303445464172475620672172793504242280951616325134846216762556369682849978024591053746423950643731527309789370426703213255777216668991460956674974130632493551630473019566184337412780299018565817054402242504865458510971989750036121913254251893080235105075900031105958306566785471652642531423972440567174570896758902070035981751240022129952915449824266335230408228004339436094238929490013862231834120346772221675340576380589086244017464951961917668540672373323551996858112502737525036002313692628831864687701965019967311331419002463745845419157324712436643811098718156373968858776381555810600884834264104974298607039800768196731302995718957724763265284977537154343556129707334303228260431923550225552560260459625554224935746547783735304031790481725983483361475181525791086478841275299580088319769620186818804529718508708104950212460643259864193510765266072301986039479731649185209702524894659854464207029078704344004764549814866715295549684137176251788628904867138394850270307222222058123128892619824283617175273137767435929827817367416455954116750494981628654990057407698897296858012931243712485239806369966511617656918178949108028664616271748104548174688924822850496704607484620170417040536025752087802237320309892316068004679354509684750787193603104312755015135271527322006267236177925789642855720125077248538864972880238286296011140461203894066087931463838298625199561196687017879724666094466288626876727985734894256540102572170372812705258895317060717442702265160142908749813891064716716490779378793050669334713377520631198818383940843327682422184658247514189630874362939338364267699744703245054458582283514740279785884063152698326688069484610498790772368875985647144381857084502753727897658058693113045755343759713384621295410798006772821623056649182205115912356269120505933972210703455673553285788463026314345412208592995998663893061765957337162222767005530014350764110629832256924471463020706172584895171347802889939513759394942689441019373809088923053282468046951320156152309827659529854415513823095712128732578934718879533898445077975652047444804831529202096843386555439973197795050890347748304448632988006038462231254164659656984168022675333369399216956432171767099456870435921478000902576573036530808031813658023475683237928198089253592212131235162922639311914137188689172560280393427613280747141301969837649069650043095371451470566578415232038132077308441773627972103017158777064928743812101897055491852272708867085225619539503286579982441126400089915208089179056588257459256256451812252311193037448415806802430663016106177576850045380525201805637774698548138824821812693751922761755117064353282203578174534871035652594370880638216957445139298153638403309696035359383541690429557793039920552439563186072842874591133357066845822681341084521845650517530920855635853342290241641205101381102577646643902259633170731031246968243963973124776001224960860556882867142956925944769246549887171678565819522368309278841513435304241145383615811100529601981437644089318679140511824256527127951475884155946216100008075909923441359529423592845313564826103395544298216846875853781191904021842600018263364283337119875318455707128758232960017753111428141876878497789766674930169915354680934144948364828767000510446259322496524539747984256176867328631374291765771452353329246758403935862738284407306276315843040919875168387099994290972451411257305891557383243835924908703596164155558957835863710387335389360178040678062645581377126839209023384414955282625261757824769438601315690865280369857597394730738575495447934674857097145200762604357078217982174940392266230325514141168275053561778992797924968121076279245199005023757504518439101173802448608237564546409933168915194597425405747400687598578185097845018713711376462700870929669310057053470466557029698798341652427784127392237559567350909003422273414213295346496693397419568245880861449011253425095642476653094324437686143946212316799308072044106084152390469145611540914037851573354722552644824414769921907639616765304850648387027507793504399403924186991922763878780194881895344667357040824701713094726959726478514828298154323742396282013749686169672138270441362071415944736830864651655265566060181691438917052113447489739586081878083851346333787232889149567167552707260821304747687106793736764863004503574243370540136988305819577470217305957900475002015084276330334337605758612174812865207869014620459949529241712220802829948315315958359066546588404571955821746676665591646604244988619895556016345186561110992476312210977293247199656975536931883931198560147589184418189802699135638805716971785183781568477715904840969498469226869303208964016476539452156816141188885454656662706550207780890310958915029336547991703066461641052504469824560342033913351123721582267728007708506426992250416489140279600505369498272934840203943541087298281849667491624404395109528906009244696711084717233831946984895057813073398304393549872079420024578038328103036332401338766658363555059751433910569232624888004615511903678796136138475922687768250351774740969243592084943103179418766580787646149426705832370367825740419627413842614077397883129704430690255045211588340622880709736526866973469121896913422286942639523148787503229493954312445784016912282663626053011008724674655274763380090678787725034457034558808651288261449256602830612880076323803976896230787326784810477258794830700067159181895046998413874574322536315267093342342739916085029661483385883102439364856931302207878888803553024396779208922126454139783089531676604204683328043596114173537372740192709667200027206989060903236113705347453791832475662509483268799977884595082049945517571648854456977902353998831862968159541622585977662026399052300336226037309613429586612849586264647475501317261869164389766375954026564250010263837982425848394147478861141969150073010879574250389368336115089924034995588977424731619162528018370739570200681063032801506925103366602537996499894070193715754329485447078722567695210526601730872230937102603154235038949812430546570098803059804059308307214392287265603727078557682586722966242916273546155809532674202037462932610558736415082745435957019306909813183827055509241653562205514610716536226913057206617567829092878181777459499151942544904460873525533194562173637814075113659950933700002532800726648646317240022359443671989003956314520655130767728109033266734223734017837533728215853655056419371929010447696705571957086832851165329884869930423257555158000259126718475890518858563153427683681531381229209151880584444648126712461101515238692088452575331630086325569871037365501012486715373973387824321088073206785691370654962283956886780225999829679315005308330084871269386119741858183336706891585678386233556395087165153597139458493851172752870442116715942464846969963776810505205246178262890472139266248379636088265879658317941176618902367763048806656996488232210657227304865946339508207324509299136814409863576021557472292297815157233189644486083246941945445785432008776928716287177624980497555627609664860930466629253887782596819226894115240475072446775733209277137808543917365471104787222330668587745235212495763527079770910349894170290994167544554116131216407378874808909771028352064669945244168517440297643696447477616875477592259923353612068147409700080252042894810917295049293072794569243236827923210144737392085163508094725289871506052555329544276455592469267689764058332574871406608873867644176026239425140475361969157594690368907285090906123634265849717282404697897123887229550524397478417109319106126854249491380875111218712024147362588672563121994534717698353221887470647783737479421079821508885385990009516231707964324100561191314944907480974343889057514628556830393819475801613460656576189548318892956527958762375926691003802235923257573894987970149197248566002739846372714960784693225264880964034162609384408475385339736121378814384152360317577252029271412898706250970258867556323644138695701400949739000566245139247911902347366119736084518841102120280588640235464470265353220506309215091831618033930520743025259371471827634460706993992913405061268388824339385858665716939108022634302217589886132758971784155862727108372072093653866629123855195925148597834988598931262378211904448444140113710053454445585601274515998310750911007898684754736886646993796927057765946402551630799328353420274493755902942420732851637607280139641345030682397108156199062031439815654357136055968697135014666060093472018168080129758173203759245035967761330897195825523351254188650862902056126490359870195528177263365918420499345607895095525912749966773368600547717372150576644904448509243000871066607140393321837732134936590675776610893364103031947034553387759300897841159135971969173850106474947643035684000036859134776075637071150231943258853258732917688016267801011853885220087688590468560591267837591739690501203604706930198127124730025721732066599251770297613293762406935597383561365179112721654038452957259715565005416941301013380016733482234435947075586410134919333068905262622555178065178551325000943522909797940746999598521161592049621103981449898328781417368960985869773548613803572347807351528167314596902065039958423342946125414516138571632686352140770344637062206996211268461906313973901280474924556747867529489276331866171996375146946082402803390059657438821542251989214298760484718282727424311734913052139307013015637906619924666677994753569286282331427076116364212792010513536144353042778579628004277326440087848224251926771670327272502612276004189862573705864678084142147925983512970878610260595509379727351879863868461802711070012823281653172171860452872581152192216668076329737819200526529990177630171711409593677378107625251455263978819702201166817986755317617711110276205314443890533996944906467377075189729495223459137224483556634080712824575539232748196144309121407352145436687878638619124603956616043712396888056889314672776094428197618766156158804089376067362266214587503328934694948326953929571914826054740532923078333223400813141761277373679560237466264691460247034027276665248320818987174878839346196176580828155232711148152029728130524685984106033586478387948386546678518199936793432502298064242103467869653938074493795222240345572395075757384623901419377200476992060945882775068251634164345562927915063532604492277368578825596603251018196951007343632751239300086334242335181926347121490146332289300362538997355336130383550321278321278551980687447353973127024595740624534781579719767788808425825288328802609793123041184936430459189391017907170504039240287311071692003890476729299456115666015414628187676207561369765691257177938924202696612575979762727356152492698376827372956489582593856414606972005544427254126768897448209720990729317014061489027282432388020842954837664038722332994114851790670624957644646854676911353848493832649904484948366659126589072300517430440036561203453542261015992924814155832874323611722515655631702830291299546361993189376667068269261061411322750191418368836298890457348818697856460140804956410319498930191664564707425148675333559426372857314348943674549713538753270038512522771854046425091099620179596037096626802900588076686829036343672672156131073283161677558401353205752797682295873202009463805849499983555067928272594763429170944959906614128394833926213728672698405080459200318396271177611314626163997611467460071144132179986031352857077530509879171314072047239253498342913350709105854774399042436965297769706819776555842309512709465703448859918723353982945262730121916134608210584054280306565687773208209924087305460785894751061809581134746363130525304957166120002873872079936451952216010594689573835951293815617075925657698448643668845507088985621526645585517037734718104650327149232249722399664661056122806928469887017266596281976214085320807350703062541804735794663867723258428173188864207497796183529624286128208152616326263703709341273462388848551590899886686777436207919360153870654555601366348221074197375228177691038585475110444544078187430970550111214454084821073666847199579245891604178708453767734315033938255441618459495183279561089688779450819748582718368916504603592346266517486693674781412399069701824742432510948187557055900578378286192629368752589849218037828651909029560223804227626496412775386249219536612824695607752521384071747464135606701689365504517864460544490886770731189834698247993633563404416934855368372615202956881612800406477161071797255361693234447254005794368922083223321898674482982043494825620401906148686155598540589697333978525399699457652850308384570042988407455975697330567605685931941095017457562416730622660901240527237583703901931688062630621944428403015697262255888161235201317289409914288869911000834178389418790302650179426412539913706508961649470262560209129521697140365635085680504865969379090692862376562716864334491790487136538233796556422983837277980598026645421805794549375706693040521538243765014656735762759666040293719222682517741750394578639113068552331210512944314152008228681781738850031129070964892544438578634630352247355044201521035688554149538215030403124623549387420633967365337690826453010220544544628913659205761426365560048427799206797370094524176786466677511319173984403201550592324190078526531744341484372033252879221011183135420823372496617714956274044434975229285129836875848417952598441715364313977775179557612555610797903255713738647213613654793371014296516584178435060313043869605004581024878007005405543323278444925547614884280483137001612656611450491846621017186907879973098489302696526298821382647888347856263388827732580252366414679674344778556807829992158139896991414601541775205354878885972528009381159711981917754350545770271993517626604020598073726368575333650556992007458484017770770298253375129590574596416779642561878615085477829656294025409225090149952777946044794055898502517802674201059842279258313591335611900846864515970507450071305440419559253685604735394499589911967570396909215152809482749166587439758244632900276275199232240275132769558694316498865618344178351225838810662894972872711077269395615054493254045271081296343736439782936640642332169539200758913200544224663832419128942565059282930080051524019290370997976931549372302550744176209589481014176363564846672423984597966437094871211293228342206480870540518268749968424392324148745705130621488296324250567804426921966099782229866366637018476449847405488787117670348921693485358948386182378332429268017217461876275648145378698912467255671861741388676947751402055339327253556218368060950391447026220625997772693135564863435966527701043286073911499053560842770303688321109668642031751708221777865925891826729009022976451889408664007879208408314465358341619369295318587041728934359455509059400045064261786325432629257485473927110917205428700428178892768886359487159878888175980570637747983911674730168881043217558364534530991257779677565992103062129573192556002668362817909403274659524232151609974523016991918672417793796422605863231666305780444210207292279807874881604987091811263637436369478386981574040433105184641697962279814641728202691917489104901671744767375095401922620231872408787175028230191828521599235283647850082127314501363076231880129716909074638099444016789694912549550237152209731481626103578140026147984246387165947110973102927058593359667493842610838814599753069403259726394082516750126383330952379682099949903733767718968534813272576022924822330129160987091830620596113375881565253959727379244451419193301260766588883406502394366551416872982154116162876848018707043807706265042312347764489362752381366209198542273205244456703694941933775577995168322687435304319740448848464144400674557459889046830560715720030461675829532277591707892774230328513938117026084144047143073078045042661327957068893575986741712175072515227085505751384886993012191436085556677242382898734197636937131009478302718415322945298141266826038644786143975867121788471388225115669356626019588643070440243622504850979759921193444272194178231225284099005849645326821585228877731995150314461199054859858728790986166115571765640791853940460789069667959186892270493227166841958779884100389283409907078376822276196706870326850883194035556805978093487963879117856048468060225882828689738288557811828718952678617761886401816247770790615412701681004204647071451312741941106679046496850456708050243128590881065426873306716330118782993580126018109717473094380056929587444943310396206187917952154352652041170195723571395745334827222683938011564124945784977244158209078159737774900674109545950623014528682446361838194189803849664582645263813698973195984900468167475435912803800607562875227186755405147789666647468523581456869357757908589945501401315047843083065857814056499386681346329865580176413577153300134268502461826698809824926438146604624022075207856985203067644124695040278372848386591386435544226534706048465357734883417217921964690166697843166687522625639640200799992749083674810151554385256600585405052378923717205269731988267332797868179852988125598178231055020660428633402620885587178706497246082530535316648995642178349964160018276740989176988279690301302002547455259709805927113383978798781975592945329030380663683078934062303474056052352064328172341467480707084648720874749411246817703961245083262546101176076856499750041553151139508498288247693760547550233008895537414538608971008818038296998682147231786016774973673047628015710324804255851060838825168204019675477159901052531691782537391242106745770677870773750815336637015167404667979621936890247533049156704263504927662809391854858875066405185335651006605469291481936139701519932498566398499272134537782495317702486881671610144610695706488572558429967278483748792752393572118894692740341247640508596056007133795814939927288447644823352385895148452464007788777038884667760218138733971343878588280301655211220274554296761240079053139824249536198571787875131329246471556523961937157162844815294250804438603418265860394900841468985211646358267146329806242005015830007869546457926640399393567695196271919882707988395914561217349597617435189456942784846132673302256579962442097641580555372605798035954928342124862915017244952865621620710778611502608515117437419574016043928924719618934846980731075386872701379589745723906586040459980164859931553734290463735557771818091816227443971085779486007730867587428492038600261176722939790639942541379426475497457993932372997448669208268186545131110927915021488488498977081916151222983665490041462804436943380803262554822998786045985707874784774826051244015192649719166903866978287474503884154516379000093915826976232141521329140351277443946595819902039379902662587073753254364740860308041441039930500135896896082319222427106999158127199034338324740564250801728226272226791045835137821880616928711908105441899459170114189552897445699580862269168219881963676392194470467591242426224297827074124434835906048345334116675337466575751390997163148700586823150010127207753247936767308468498947774866965393178261796725950661814580238697258341529349932226715477053527620845630007227534981334374343991475839673998717164033492953234372863253714112149225201765670179872633164655341684387377262396503113737636265136777005671347814273344905725285727757329360691832280332633021787148758864690094235967656548935185637680988567298931927363850117040460987017025680146383757480174617835446250278386147799096005586015367528487026073598202745859508605139563122386473136366634433992529268909592817501588108326293999237147188957210567823119726999478902584682446971890466449066826469271935675342361790032328157894610785812054200925875166407073583085798177374390790897998074518476077985474019834303978693756223659492945413122441227196066580851059125449593448781034087075391686035535100184618876123981527550911422665837815619594172789863541579826698749744529230358579432675623587643075137285341331506512198287251348293697078022562295993400126224603096162649485858979344948812826558836560661520262094339957839246343133738295908487158357303442324334833926162911436812466634068112354698330083799383102354819236206362253060171964158719907992908728328734470783116525840289645258934322501239260138496536477522071264075182864413729520438281719722416933912699699962928156791786629292402690870997109857235036610630256543875726059271797648485610188811562367056258369772545980117812997115576546882194170265494060029137530008591181198771403184703082226374885726160207887749331895767219668651133137967480687360560397750392523297197528463785203014868682725045383579173104295044057023862716056118184609246235119141208084217003613219286846457197574633781810180394130133766632857481812975316610118870067701413457053457420842429868437725213738977357694323465712328105199022304077194228516599094872423988093704395642445058270661773292234249884310543673139074749766129598910883753600337571747284582781851826248998710613234034816091739209042312388907147915332037698631575372887782298220961920288553699192412290644867835293818378966249163515791307528417719130811725697595380964381094241741410753831607324199298390799915419814999815564099551665998681673689392071805990783981431220290200867389390504799609802887293399294381640792434015889228295684486110971426890738274381618466815951591751290219085224977676473986858180090998330077271338376140838744626612456645095688683594963338998931933865272914206738062577333549790189748786944516269650898612534114354536810264688267793330419633658394105643725233313462749744413051924890254237837347773828319612764627574467741898328072706775680221947202081754776029892181461845498897952814168618241487441547399744383019333469376119801368150598811272465979583484985790585780615923925419426338492407852102741824404623617988292899839156149683267590515715576047939016009338196841800945875922650829129220532886395506912244739863582466290119813756901479569714283084322097872471152173518163734128411921615316932550793790840801934889631470076210635979562216600477869149514452502540943920924444547704410983500056324293312863812092644976117980372385774264361662431853054235828396413489009383939338454615106225507431921879425584344608074955731246439056394248438402564126033805138851591233125856724667872716806525879701146057754231098261652854564114230964783452842363838323762082691087350791787007519949658343345993225829183627489277351188517082515004866611861759411810370506867695953312817427891940731038391622808765372386681680137273340713492061050872622305796640831961278402275904132440155755750372075398633871809220570316853427903012556537746688328065092652271507891012883910406923872749502980951768045487773797417302210670589620809203387398028511379788906409832188141958543701545422614934948284334064463582028777454052704209328164384500885298452666101022637873048614873954672115040191732286119714775537832873156563211076062172635609777423881509195229823496311048663139830388982092327782638782340072127342031780876431400043983101812990899054087648276425725755411386787985649404721416189007267412224386031576201800407163925907184456308889020759561526742376755830091878718256543386860833153040918637708940247151263828010039079762847815933831816853274217748269632490308198301608582619436413178619299574832468805597505918050506718324608510037507028887067659573810104407633653897671413464736786234890904144716806122453743715275703033811112348312655992989745325130886003799676483306271125652698675671095750299558155299012817095956903776928493493966128357629311251103303066257695956648411884037655313697301219622632427841785636111993374316274771620834501535909161147323734957837607897745559204538808091383743618513053090371034329922312312520896945171899455995663321328934948615380437959955724281876835930464284030957098700144887942150611481566390236410255301069268966928448724056194909394296300025442523255731389054863924739204948871093968312705631008995433242036616784227866017168069751405256916766885441946148958790284964619154255276099274632236254516920130219536756376421546308683033569926995805939625236936086806546593611808455167339172038475236098850236829343145372778904052282837809945668557594521972786011948541744104994371298253052632768033476783737872730679512426487637846336848843368595875721438313588723969301997199070335124923406777687663517186057005037219488632675688389104293643469700800807694556459454790438599383890468039910536913193771804481751940421525215762436966584289934896110077150354585891239203042116655277015958090649010186263477404070392157536353890749350721186923019445578646304970564179075941012796651156159869348170823210914841952246574108004992828694951301961303531040401243179577180219675219236255889657914332521766554963577847296120262249490307061525863716275008432904906316528945224820644619194877461607639148357624644384903729101183888728299770226857767592356215486373409279280477736979006152855423221151293091490372642259887601993989881114156228252508073541711294055098197026617110148531113429626590950551077728089959207129498131728069300099220430862204978090951103150821579054723483035550419374009047102495871750566120577986370127969459513193046596151675872368714579529685932828451790648357129219461922679393322115896820722447535885163967719949956453798323776546332664477587367126231987239011204653642052019933318532481292256089442684175789991382139532148198071903063477030695335565080115348917176703981151350617769529283130056025128599296375796853541541968844156950086063323986787161950602071297070690188744555141819086006172935327862064070384214565379359300807234128806332622467353741400921540715483840751178059506030450668627037263943827944101273351132716262460453881818795740238903327011037542566744432856006669523063320600981280253043628651336759809750530903770695330064641246921374834987392392447521727632186445384604106025166019532373297868900161667643833242919525546773330197250169079023363612149733180973047303443219388816425838104583851390238642780184871042965946245442769477015870250997807794380349466276417831875271816591246903737520594358753990630400584288691819186702484990858267810890954588717520552038827948774845975610004024736701885203485966193593056373751668558038909331039667226553860723338619632400115906503627959262169115048670390562381630744624569074828434809041441089772487413449139800589498363595477706324361991112921136429494384620843543178518212219681625495247838508069082310554830680482574256897054250765416988846060579601668476214574126055140310010881473074375235194784805412051262142658881594991295808723208127585880058625987983031425947363193716814840049429886125222775120963102364613217516556390195042279519434032760198215571003320466052464991732412566778729362122536435066673354367685893075343862789248675408289798182211088776205663380913316663855730183876543172713918906885781768359983543383790079334060931685718160931899190512846459367903357488468983022181225270560989495196899122767610591425976798381711592348681811871572415514008249207436233389789616746294194129943384811029079145243003297460981490266077952546938521565178078571296505279305664889536204633641746596439073319100899085206602721087459483141670056858572972714358507652131022136704949821554940747805325145624924305845456417556181405429144803543862971038456018703716506757531502325202372726582916711487524519107296367541768515710397025121538510744107823850580375766232600780899302438077396159878349323388875026109228396721421277228166484760617018547872817955819241255988116251775999643044196077213137961673948736395252815762476248152682656927330967494484265133297190326924783116551087008283278848941520107414839070394942625297103547271901874652450717048345153087678465856689919800699595306503471420672954972281965399997300303128318896978168369773432198328217638943305877525335185458528455688149531705836141909668095677996582753271181868174045413557891783856150042139315323535304092213160920707371842749153708859011470449164981247665024494956205498021720443173861919396694486665797040614395539890013390474373765876779247157170881726597415381625588388387429558353113268918664003980018147135325475154718355551407287993376696884811302859223973976702635576526478522874399750136172811577471582126969239186153465023515607744012424859788801614705669240049131162849359372468783964346623556746669213599745511101898916248281210168275386192933795684726810669594392443996453617104715362741323084158585685247536734587633858523935917671906492129988765855330317756237641471197973990735387995785081758063909708064570586243315218594350305142590890830579326385905711813223631653477459764600038827655489059602211566788986592964891321609872365144404094938467324718428939166196878434972867131703802404642240417461818546706891551731921730403614190092831633899081638999702983853278170506025028357757849367690885018609566955918466302915611804168405824085213086246160161463622156753813893302977888474454417530923706453432570538921142541678017073919091518930891880663360864898172476092235542751473756201562172922715920156413085642473310795963383480767625072285034969182823067479331391654213923090844951715881827282421163202277720252345950728713146483416222643911870246006758642418228374891583557553063236518979152528714704974830043941156443344775420352125783618396427987960557693194715008812451137849603126894850619616352961510445993315613220379271645166640552093199378856619834766335386867715858285879115841555853527565644907592083635405747720645704056575206717416976764643897928773615867296961972007553388755327799799236826279916730274242925886268319223367461016203847382227293202766692658180080553178995606784838019300392036433693771592531409425419682726926040441927494451047346178189128597607529424327378943264670440488292866882227534397290490109194550898005989950554399791729962733813039902712976645257678532862815970475283261497334682382317121533662914920118368049415602680634905659761494445240545576769578333992849633705189019028924251107293459946161885690623164142886342032598368527374581838691389938574189670817772279314009432970099686514208826802378346828553723887445356493046960968235394056702038688597251549979640722617446925531810755916517365141824160057195165638444351870089655080694643799323335830664195303951462863190539364626013416371023810780666383581073390203674022005699003340801815587831483907694191644530627986396583675933244765813140542307747505795245836784800295474188970952836878822717210704560853944400345582011184951952011707530243193812802682127334081034290418015378386709509813209305370216989679055640346967976199052266278417535336165964395897208494392237244796800810352485346744885704917094962851658859944983487742724671403404356253161119425259576901807617324825291901010230322888729790388318953191234448271599511197658120425177967612457392528722084030572298445215459160067925500907270882480297955132965641540523790448551033525200536551261425868914585892581621508097486165799472261465270412674993324748136000538987158757306631566817742154738922733486438646668570002911871923041406968945357793199867509486429370206695181358658065617891746555888798061995715521482951562924144088900770599853088147225273152435175466980404384900779987059407906071413174795802218206750941107120519152060121568914310430772021045372944325692501549814766600057572314868593211816975714870645101363559399513086086529045966976357155970363330276739561630604325428126565888382438323652104149202679677837066289033791628051868105128073286756131179885716154679907483278064112873158709624865992918691199467231539858151934273956606473139975317152626087295984971501245356177348281338284247656498330584805752109448245035827455328960927098244194298386260235528699057333962123995093683670944502512079750656037826764366087945633494507640029779958875369738232953228152432876260245223436650867766703504905575292825170889478657979485498030946001452320566455305082618447689012376191367120264881009328897477840427411783999740406794526936868180828097780298358475644124351093251542809947897944731012266444949841765690086969773718637033303554589749440052805169956768214787547104175779339422690658234908885595114969796432255446768254298084761038181956308873757376959574572745811856316926152781910665219716696533375935633183240808868069791632068808912574712625597767936090263695642159276206351407530823706381703590244020685132395509267005252901015685625334307433335100636864207721484143279547037148405180115974005710226029199697005645821507378303568920356369084430630525360225625666706867797008157469603385358912215703121588232592209270793024758768178804433086370290280155878210675662014605471851703560523053909220882658230766974603596016985564983453782871009292894708058462469871260335779917017233228120978739000572133695514846000310163674618824630659787622636533004009689888051860625972591811186159460147793190927474047982931998538404712170235170645800636306109172546083484625419722474542659075330605413875266771159379650398695004777417787873366773234141017894355185626836556809834281072244223420852457460117318671161886196608290303005045211744792432141724371815468168556317408319443752544494732518001880467195220597753553224648546186790668264868084800630630320075173303389421646493998485297566739793496317011051783448142307245973825667134950320758512759489864207893964291971377325319675558309940777937618335615630484541728671291071964785249721242249995350147801310007489725617761249209495140672818450250828340670399894964926436874296557029726995761732839595949975463708500415712302509375933241148223543916933079966842590421207212159814888831459396646618411281301131027373533216515696732149025188144102593274831202684275721537959517422358791283092993041681929890171218734257192529674476826586789638973741179160787765862022620648299398689948216160079137659992863227251020963987190372113208460399408674636255212691214491727418272183551870794554824854535558707518750637728135661360132130305828491403489449478041577469603008112031284506474561723374520703567453766881688029836867469690399739351282426599899808547570272367458985899647090779669486645669134588534810559370154300677063290744180387541514887516632730983253839419760990774752816348126579021889370284124532011775938474742195636226767181620382080717941002469915116759660358097904432148432778116535440774071594357467187605522007164348118336974484724664738618588006119374355232527012070859538779465371608880075892156322636129299348070131613900456678069854302800692173815652003710794717913487185322001605202791841729099585842740748541664135462343813704843172920915677537599475208730318180620940887546688814308507394112125529920448100664353454441189416624810621291402995144513716321287908170650741338752434489639758175934204530906176119072703093994023200744950145824927629435867266173563012086423057753798623512683271365357880586311215771574741538642800236416114885661331601924224432876935158765575072446323310748245706714881896553995869306470978394818881998311663028601672823349404634080757708130876595616936604474848471495866846958894735012278026555193177699207429669890028541283321209840400253276781848298018423235698416945291787923491695000826456399956417067822247961780065371993798197272087223303998450861184439990088146705665677577340785074055242788193453056900428688692915502414307718116210911882536715639818225234612796995510482334692670705170940890275660624960291098442140624436650276417841352775905218400117643276432553193612146352775759733219196172763156080783502053714205866362159954258626378394994818006227733349529250040594327181765917226541184353519470595010325177323481776140791486370811609587696939252004414626349434296504620226733953724967350759958580534899579139927585993807367114429426967549253863020592569042802520862610205437031646752408761164218063664516685840688956076559727086506596369933194636428894421567823733633984048037867462465355833762571956489714685436225817654952632135122776087209745605307945713904986875920007310082711000547852920919855507311010341837102565207687725579493243758511630677803495540701511988390995294033785737386071093583403372407698276732460728040065822991932318525324544608264933147648145507608716659536040420427262902805226759839689304813568162875041383519446739462341921197014789098232697162940302772509810132756668441045115849694646809402946307230487388654981370418078234321114650177465580920842112871724835808071606744174320940436710024208725781664530077338195097634613597679724611329725704885010769569837836935714800210633465631833772128499705159929746715430901324640123964570373204128062175787342142129398261124831706351483230370223029029303219785899536602217988432075005134567521212662439689285209622617683702338102874274651898109726785521295148846516226113936348213502760289546719770634341806738712261087979056371729779507101004950304932136769916617503152117180088332839521405744272240025261406575595611524902657090679677711765440683237578275274984854499946189046320442563297668759443467679568063606018087960938958777463262707947004220470240753649096220074570575567937142195866713698938639967215038076285558260716048432483737021035391708846866136017617665498867511351054493868861173117325418674418659709348373564800245268833794753631193639641902983285331293276123544454811417788976271738347108011084059253154754537951705499907176993714629985525831607121908417179727712171261874406382636370858122933332762406957321365623831394560034970780663896547529243229335117647041864032760107986671771474476720987480120751380553023412394391974621692317898666944140521677032723462562979793671945944356526151444597944718135577456680639487632383925084586453057305351074693107779278680093231643109986374554375917913141174280336601833606135329537980724221895601312467816318367525011101579861364719020237584792997458969124110548382457298002900667731056634861100778309319483262856060445349830427887640884626530447013513195395367791924645251882617545134784346416104450014907187046833165461889753609528811630028453977425742359930803973395584199410129740932749189292498426221911926875745814452889196122740223229304365879918990062648614023649806419174971123483778630731512595201074600246868329945282914006102787555137346848354272371330663485333922117457338228113039622856929576430679819099514396318978873176458959908508362143858317774362138456019789644351804724655144810865120265254557737079500966283935923612669591180622372509467754249040729916373074630569072992137668868386442249697579221169736297244663639926469734987139214253174766756984635798287891613274191794903445967256756429904354187583150348098035060701743505043251443186394057130422182247128167704371032948591236475127821974669869385267170965384608098773761552994396307777885813159961921710776826457490520885274915307741711544734392609968694908735204595227291533737319305371977813549662010427547773404080365051138857486124204848408329065643388087412808254630210006362859033181844276261780683251010219330187394274158509579200047805187796559771816309474793327066005495060366407707170745900485269409047504860088021497696685351453022779486483263545884871873210712278167623934590499083333921776955392193194301787651670097645155999789379807250963070085727318861346945428135889721474529152909167980496547029120192656594388669275800030787178648863447480730480654859870765216609036422116164101694705444094451740528419427337825832158912271528704120340611273199700032819797900218842369425837959461013346123558424672089317886321889381339300514015870186728116629957848354876133517694998409604847546892196632529649179750967920027193749372128019205099780096559090039141941264324904837192823374948478174706005067823781192152136281360687873549508645077758105729925636862882779144733213924838776240333901892923013628166796873258944479261585904832425521743304219703908206397167332949158735056555293796109827828836910306854968655520519038840138637455839506052196913397050989745419924416120125871632035619580647872654138049791133370495839157987839954125391903677773163700309270441142013361830360381087676139124895221768237170799799479753484925959584951213786321191976302111163626073019038744561234843681494479374439737520506449162779138814642990286243608194714558519874090877533025015304248076019347406579289687706947234548785613375426001664540114360009670408417781592731454771624438283464224892215567460628030222894569019565882383706742367583033600888851728792715475316336560273148090899624367941675428509707898307358762712009774563960824732690947411189377860204807652814541463684345856982699405507317407085060536756124867126201029860397035605353961853240177151182574928810866054815235064862983766744505139661244783143090199828347077551270225059498366046409026096190246403027428870404862238722502536444796512179840778453683926304989304018284090026149039562873937538495212248236181392609240644676314233551898690043407228125937220701778375524199085693337078689480247747307024984527670529074666813772588465234310715612866384124618891055551160764185534198663706523336927090347340280263172248648132916023079006447714408152452569522504882693550208796469488687512456496555091803579252042277456956689270585695331790991107123758877118054299020781154139187092757540218347046193910645930147861961648840363569194150640695317815354755637262384773949711036552074453008908951330355507805119156503212715146189534016880095843837108677409131540608041008973754791058854890021474262778086378514776198402247653472824389415639026385059992433862311691741709447811096197867796838547298717650744814616310560112730891135892675800710077819233361701728463661122505893680925080445023032493531969916961671160747359749959197963871929174330727097630677265814370444219644005512675407166696582437518470574291358378013086887061166717199233125466543600360482090655652707739797310151342160736862310839527463410059589644636267292936149885141920740044070422615868635699812049908608158916991837414178783653097975701473507033663548866334428490398115954796161248877095252549856301556379362587414519949350992148415851598795021569306591264931554369194004963493488756791401225698041527387918457002914000444385175434171202727644653972731232664122005130035279101075786208338529859483976750782721642632444284448639472716548316410490154584909188067414630395178237239983588496619747910676757743945894085751574338522386115331140865767787944613214773553893471801748053037284196183362647610286965719698665576611296494402530584720988597867602983929903290300343602549826591922177306152083500889041096546696283422600493650042907382966542015541210828687537667927446688479013188698812961567546869431461502750535991842685385779055842618820409865427657518504272909299648675930261334397381962642221257617675261617830062287549683972146359693631345317648205221303201080419460581267099611981066828744274052106890974832554650031354448668911544611149870488750565647587500175197280227046838094936536161800764787140975791801777714966112864968536650279112281473898354444906242451664537293076625183322611849873335846344021599980905642206491869124931721560462825856305663221769333868584540282818881160611608191253469584464153771577465379270823440956782709987742318228983198565468719258137199143661446161515477700877759105858840189055935630953914907564628537994800836523968992420089846613363328270410516844880255214781684876554743540965039490352838773928420119560423135538590727665933967180682924112721840207671223914044232247053550926459454978964322058588591901732740448798300929386939397327197398968716523572910830207467305020839348709355459896457992954569752555882650711044152749283540600174525542376330724662048091173417035349438083286342695159389823781496681311755257637044825381169537815366862614573458153061432212402804996020342433416864576080064525032274865343232782847677883898379675557633022711253493034238900235717650915201197972630840381783624464089410773728083562349368293207918327574075816564963957014478801889507038084278737459493405077983940788322425397619351989090379742731451607587865026150544564600634527648007546407737920867664949402926500979410982114013074160964189227901614839514271785694944577300283406898516373744593661806704417369693566719402396304081664491971921940638109363831659693046757945161556044905588042807395195291658715453811833310577968892665131698173179974556828424384095135569418400479107006732176352445010156734167679636264807604725393965755832948380502364882919907560369957086106166904162189321583882480304342275245100241965139652926659674553038796645353541446429439300045776276257007356367869515193846339955940785956746224460402588167227106885983176740689851153370163898275611673253327755055425549065131412734895795497940428521065683405406100368460539462435274365473330379483451260624166798822592339018823916864768687813458408212657843990465128477848865819900271525277803293124203330267744464927145583878491960053880678343102014731028209598327899817015841972498903470626274164505125209499455362926039009561292735931381989473271653754632908605590039381232496509806762201380172063067138622278758380006991125769103135048949234723200357571908379354343159622103792160321395841587245323653343335782581255347753981899978950716550455332320774562024820015386745234638961929546040568872749402402079781878800293145219103141351891029942228554778530828320321670433091521836286180107825683147470028296475751950308818142597085204345590816617525183037760172222517276789229167465169449268206128385672101385056787960000769938501561164171743650522659514878510735802733522702047285131041117335482528517249052022126908624428297446254997389676272824430404878825370390421924196739596434957428266448831004263046538277402832685522421793782322954432115274345534112689706640658664641782283870529529036936340226727758852596395615509869857728603809912991936094988100068657425874825678763664958081462468914333709485249083522416681013419097187152442668846318286569532029444496698979630903507175471246875484287177700564968706121210111844825351019210766386329653789670632830706809266772560165928946744439338048018124779735099848991818837919575626599651507770655656829798845354885987414193895446342369943564623194520209250019709279942015218248467371260117955837225206553417917016948427255497901230576268670984712832857176398461042805797406592032726856862743112725642115159962814658170856048253181335640409734285451761549657593264616503461531000399085424617946694390536858165525136522837864764166289592347080909850948388691608655930192987549783875712277860089495573644327116219818786063076967514282606209098074052292278029148013251613232639934859846573332161565965700543969326858893482371258497555810742331380966169152068307725329566754911775275365682297996957459203217484893824723664999492358076645147717766161366609154216055202812758568719456930355875529586679782252023222466825913270253837257841968647111478714613988408599771054607630633909262894654853444892731164248617050985174046348981564988167292833662275745369724313462466546528379453805210951918102274262381378078306765708882809309352218366504828152501143422546932043782306997170243824305309458632260267698203112043722908485451794228261527258638227559153802462502720843317112814789049230210766751072954963049070213125269596388311268325662307185438557409294807046958535143908492665804699602681007959811901680079074816774272883728593309397571479886313214753343460934956636189063155375576614160540848104229039943357033441689926695072631968543600417407939111861250019807716131677317974628425669203884455430301807156477678460340335147919791457034470736035886711490737428434249753021327293858748296616441991468522768998145660831588058746126606311643371486815124067780119867205712553825774684136215914911174631837013045553163055739121873710777354873827451032990134161680844300072884797199453748996707176304384579089926854085465015431927425245411294699266298964758300554687858882091440080541454332771478103214875396730680648633886706691338635978738721108963296028989317005305378365852656486465883569438792631549797694692553169364918644415161935094920282980542546126668288470793373467496044305671146576754001809318112334618077586712670054013778294465990989068928534031190255306140946182675936584187660516636341883114652920363223087290277434735677905303337565921626490588531330055010724618222465340410648475824004068637823466135513670264158316063081983609991574725971559479539070703358058571676718722030485571088964358908353266431392854317732000551730000320938166010383500542070597516917841287080130570997827643181573670333279928038935688767015696015420473491225401871775988998106435440202024151103104190685557138364816046953846708616679102068311930475170217743909229657053739482239974628846184037744223353913101724063459064691121399897488591073969545372441802452241829352473942324080906948713502016867676204883903363742255305316385583278842773586236837192002533545555053352324772752354348373373999418789558632175038405822367652322078513965609663954165146328092998899098310644232223392782347325543836014069509608333779906730555196899669087655473305443740550188283688135493122064591560319799770118668566860549662640416963990725348299288738642288642971673269936275683760175711142363343353825386539175402193143562527418071703208367943978660679896831927242701560151234089555193414728750085576285188768600958038982817210572382238134786240735106476707953365426486966114962878790559516341217015642300696496197152100960952001647583971277791087509796481943738533289891281989207527041102416401643279527037801150917996527688535090935406530996622942858482405373837396307828777885410676270293386963987350052368773705069634947093796702896462029653477219510129715311035115343294916473361595663751420517408117060462994196754538683683249290279778967058700356529700423618745193837149708244165670323239622144504412814246345292914048904883999029915014854200686164671956804302369812520218307448637335945553189648084948930255659437950847681064586660877003290785947163240094165323563960549926869695189195324345247993971380083890764014681415541281797488767594534580277121169208270505268446074668123898865500639695151149771933057156691309710186494502659646509019414858266867171334920826397333124493815567490760577607975229146415742124276229803328361141543070631076469017567995040031902944157861551333233321897820071168619366239459730069666267070348598245056640130738517890952900388808627837219303622958622620540040242115679791666129000372855077502339459221710949824015589926086600286476295499824323770174079501306522595356817688721441289431761921916670005999663311077559796551451010547881536648449857113285662651195192344542073133933755575808502926058495025981486660933321576012672781229437355908835648700212297480109988751907994205045093959634358995455962301380996274818556444680338528350502067633097116674234285866297608680835310101766499431742625055842291576348331992501136349631557334370962438945107578993458405306468973364558458069721916152834526184275573993410823515984835813256744406754550144070916312122421204655586281172966911494186319132301294804724951202270181697012561316596778198024580964383987469955816527863636418371883166373494293725340266580646484986078273691697802026493765506985162839870800286388369138846492210334337345301560988655757179236526961743438063661804330672303270027135226311698503112740007989648364837615740476979588927667459596786050975979545259240086626377713018085195459140921464729077010293984390059847420060136482350821627877040170809674905308470238858103628173134619171111580682582257552744186840763811897671351325790295097218611489198940730363524385291821604802779664935477675947565134722866312922707675345379710547785248362934779762292170682753037971997572445279198239965586335683910675692588954031233195459845689115443306489596652268090606689123529905381116533362912793745630488925660892076111532700631506436878147858020200764410727136922392602498965389936709014339881930412965895267292359785888872670187884894180135405498692658238682926531018268568810301355839354342639486005653236216601961920294504606598389919909284050169573427819659241983200739979369032807370728257613384372772867706063032843747599303034262067156619737940666645099825183657880661592712670229755084498722595717005592292772855970331387087866819176614633851558426318963975296138530853708177058233803478893606716147946989764596008801001905642766738799710463462428597812266789310106765947768516223465417025661225597204420598384492287450814428310821577029203047301636510816995601301567880327615298643069294863199367054825140494043582466594163855612081365098227087318961059469386328495912291271608401775093933012405609293443034232287015803007839896978185956665792055914064625323155291388415185737091297200288295113582737995903596663108501979086758773899285586837324170994734481624048017517733956075289059018049368990806617046038538598757265835897424325323178836120930925959671650766554783858391732404934954123076572049336739818041009932192648165460065305342093940570614137535612151780199071747901586650938274272701974179506809141105813388117725720655150350808390464742363461280959769929118103970089478555489355484224441186351249485118863395216573245401957277231025036648026534693322982404408906342284818837953419834675915900832190039140763002804200995697625350268484221524210248953186100634191015405471069383419375016187638112636099014822890418409917747505577526501286800887453978047209841836302721806819633351636241421969021516995600595592661908683628118192414378973507843393424610610261200241428557581455008423928121394373449735177531931339123955271269050571215604376834070441463680313647546534342032498508504269844003579209784264179927822342576821510571759150914501998563343937838473167054188045328587679705272260705554778547146646680815882772283614141080933650690794722430290067567617729490119265939323284235740499590718241211459741839985761420478069087408167910758761939547696641325426609367337259077444399979587535353108889645188441356199521586506826646286138942730511612284301866379651230999780199813918231243596935657352106311774792082174437193681461488341333760277526853351255110363219805652114471459926331069397254877552178495309159133765452326442490609511256019788573948429146570547864259882750703941852251698041113168954830234957250011535479163748966144494778311152298530021667656584444791614305248264811832545022188824554952181509512802014972631751879990192400826320259456117055199719238082279115308560322982553330698910164619780475549533312734897215452791991567011589389596300339061381477268269266648221187177042865418129931162440648784094575908309793007615340516371773795857948773349105622549290817973331021228866810500596292193670289171582299214642912605523087700218407330490801388127956413216619476253846749465226143005984655689692548303660766970334996728546627804782524633458228086208779316990166259570177063428101072235564019822851220444402855725149550104061153156817345869373286005262360056161924766149543068786614886192215263993462638529044084997992666489648358832660989746263887052821700346951136641870084290208864092669774903865926281961755975557653693555943028559016260566852733929176250592310078908750671451223214687093917563473833733118593254420375572612354849673650046752545902118864070535857029359121101377477880360354913298685529388264854871469775971847090172332417913206387053296270650670041841956534659351669668077527438130437651602891395554848814382848096380981037126827549211392861145985956473666209267263981006383387277753676604908028482936022866168247187627082542905123049749573852790643686873860665718212312050269179785717096066896564960588898073564850921135496228543309492163366642396885582169078842885676418571593465822430224459360218176431578140357808234252252335603608899161359821283621950406158605636626430031513564593963895749180391581438111085366242465730430998525379464477507565126746553572290816642809640868437334274889668610765594022216447344869670515767670631966477722708817510410252998647837795762718830202316702661747778981856499368939233696047254761107577084754769641127643307841161078013114709786757205926190401558508014584666814127035173644861119367009261276901943617256153926393951991443701396166141722923256431345453721821115755447841044632206864380701949031199388326101599412438831779140617846974296235978222408896310585423727773322331981822427637544929882105336055342000571867115501690643405018474147284848768200218879803597302357138524945594927326186919306063619641748753059946050745244799761399065916733418966779877197547789588495836295097975175596569015867464397992634971433984401798100859306620829439663240926888435568938473211537123500741224933074205351737674568803120001984176772807922941460499393007354906505689548710943748887930564187527611775484711435701923191309994829814971374508005767634769145709161758166533075223659152038401696064956893790799913603681083850796642881077951640259999300962433743388709846044144536771671670119450608551951432955194015967987071400555030809543891818347552876311590700986068098570914863946347166535946471846428464738700085969826555706638741730626898562274337421851198265733259526443414422617493326024701509990974663336856185007939182746146278060501786502643915090894945947942513271349378694944920545741379150800749031777153009397095411081945225450716879928816161204452574143830127139962153350354113833155849528941372771725337750109876623382713220912250423644001966085286516103676538349596199469980728892786869627097153658018611841574425437228970452385769288912307033204329026152970495711580967340092417033663458905922999275209017060986153086066291287602454738376735006440868687750159337748588823095145187318532766932597397167138471287381028849265205130035076482941173637398686276701737098165129726697057538910623573789936424289317481342112345785292661031343488431327016818468955034206341779241538817439852673317126184547744260335998548867864072207634940477191206816725168676780129899809248194995701512876468877838719472505624415777573105488072943549575789214326941542745724529278670749502313510737225647060687856002421337162771814553119954909577710586181656250504060965000124055245576885787077126035827857171940936988909985265764203594456883081964039423202631277298174294006659766581540752903097554088738715940373207384141334439077461668130227034176056030815959672737031623470776825077096308420563908362733349959001943823053536722516060217560524120111600882260978030240657548294782310000285224663692600056833619228111104843599962235264168398015467554652074721683966258634791426333524694085271811353300003007510802581334128923814941115513406383589835520879087481875987377639103852611674773266436439129611026305800828080706278759318229728179668796220095201756922343713232095785273414976988443893356366661344285351997678057335442983096508647846974008763227558535618611185787956251482462939151668598323893071933868011435243802435842605836487566447338855787926758532195732146909534038513239845930339401414520165632719177108082195395063642958947633200060452083954775287650582012943863303309947215328931288925363107651416912774718378064377000795082993731476324917965795864308489676137959833307046246544248418231474224275886254059376445534178308496233759143924918280006949749275085820087419803711067838892338788797800647494592171501797043749836817658994987364815359996134800577252077782629694401585804787620769161405452374101902999133227603169050707415684703402350804509521305721039311670451732579828835964797660690853741580811098210418705095459232488655092399074618569217889681803681081422015902122831409988727282191280171107712402751579375715879330100776077204340520796430131805608078039241535323675322661233364255266260480975443954638430340545187519091327459507264418400890569168852094862689660082219117860374906214120715395547370773165927192204186860188927133269800010856914537182616866030559905210268689768809164788415363323507044672638555500560251061275765929764914756911573989350741045760994314295587911962015008991449334695729574871590795927865814115179015135972753755117760000734709861418665715770227979028429126354078604961091085602847598623399229016816087506538291535924289005976706465272054583077896529388074854681391352017432386162263408982986086077625070345877785794147190724361371562098837508610985363669114607085614609615074759272567231482265624549392466017630040461633938885911734895751726981112289253094775945856802222244340824371245015487372799572190650651535386256951213786379729960273729872375482042944446797333923386645315160546768996625429706246696066598615956637490733484062890450056853285016531580313965567934741802378318864819062783153057383816187617128634704860075687130665500774345019830867453142643355646864937340151134066427386012254634334862773649314740040370046786365692687792717843904605005626027232614717822658165533417053679423578624903300293196725842091456198993701593341770752479330373667591388422858389281290579760761105352352374587952942642995629597882928832011011543322327918802070113378630386522218221619381667002439063636981120926679063261249911730160177588986187594432257975331650228472075065268752129789691980415532908677583048875529171496143038290774271759574389755604533249971041941535788380474260255107074590262006438807560644822884162894171993693189663330887130829227667551650123940615335359405363532595518603651178777539558914435076500821194277081216039716931638395721324220314163811032480785658857235328793324879507416796824637449391334916673977513357188853531525430504235398501914289473332184862991248254283666130162526481647193615230229537110770575254516080366591378496393870287495483979217681103443231190084266461623745590469805295925965662834385338432981761827629171451581729842306246337105586149682737655622811127490321788195453570372051384951688463675533563369063255228313602137616522943536598292364334158228179641406480405683547339900753312303235994245582222606753333645784778459090743291431196149597976589273738772749874173576356090868952316169455875361481464818836829832648276194840691064167609244636774828461858996712430340327364018227630113820746461143656328167621571488395521372516006185392765662476689543276974710094948009860568479127646973827811666249809310500883772519767712665033067485204560503549552421685789943425570848536066515289816620238922665482149981188125755638736714523176530399537355329172799071316957416273708448025777932093819015865823662079177295732324438757834735447369433020881908281240238926191556324885620849841490234749441675809082071748499946707457258035395647568462759583049330815635788445635742628811006419025246410481793520059871151925194002195319903634169566455351235005835404037337136517564344427160344477724503923006730559703073243791092839439043461320383148126208517949397330387286169057419528058748669293417718182288506918115910813339789327196031212712900797824292774659625740644943864759695110186563211862928369181568422387430205187463838867527059215782731513910217229665058936606543176013953168439279675004127605265978438300289688914982393534460750691540737364459692503337491932835462126650385372060778552098983741416494843312537020871632301036623476458216143423226997313270423353536678254567140101265941914411883730694136403933348231648935947270137842540932154210556098082767865763907077935537765671823953994900827675193928994142177876002443596869433340355868458601181700907712082453096367252244165039965302241922735337694454867747713088385438343512014439323078573360183802254171057596512260984546663840432135302581230068673876316972662535468193219240263061077895569073954438595320081467456378495366561919632346967504896860618059190639521568753002755739600619547200384895525161335994862988476132870118770529646398788811551350231970034612047968195864148479463473584099683164290179901724405746006586530896222896611767919977280151206762018716911695861443801257667263085159178063247370129766713756431045962979252656773373917377589556663830195207596537723285128956416288169961533625739692952286389293159848880149105518272046515321356555094630901418310859483797625814441337553174380694268056913668794185604562953229028822224013006474465184696124312368292221029062754207621896012049471648313037302179529973159575868197905649041198178912815537407506025829780203833448508441360764866914891289988364264232658253308944998388757369197534426301317971337728117086628030206527354308145302513323525106516764837342533235490762753088191839722972962868465966103288024448606388049212348072795857750684804364579649602822543528980858461123605497489828687588031807054148034656185525500571879422742967381194716697975912181927492327106281217808609661486918777028816812726802590338990750843458268062785622839788574947077163609678809766267265525921118129001322415285118652649426919453546286819659580539274829355374998688877183248147065554371715346408610849741961158401022429157420338816494847749770587354314327667248897429554034922300088436144616131327092820526888190397122344325413784901627027653613556765078506535673749264944894652971452146748212073019676340308670032684346753928475372647695148178439982150527128760223677123070660043488464316334593163835294382628179500858796542539434699280710649530979552414413400345615335260874106496676878731710686057161296079571879280666163370736280435805725614289436703528335517367986227869082509448847158829022726989073107892864007677345928197715403987472993389625062677420253676458094807563920835449945163999847115524433900975665861460642493468237272146144770140968766369596809575806708024038803301612313321310034670027399169969239914066802539333376177640681946851598542101797075300102165063278060836896014735252108525987373898888737647311637462631525995741563417877905958990051196434464909054632827945445389055267943999934132248839838609713019517293190623451260556968128168059989369313299448991946999945959409856055967955184204437338836046407327739395108620745457260174534334632230810501636578411062263876452818274410714346383082213236246509357477239342563140823773704193510649817495355739747821409288990504276544175377679420689059319777442692640282707883048506654081665917107635481139576958067526498326520003360047915241414089543996535314484179570082060843618866907971614356827163112032453876007905110004637982810512508888164064193413328072960644262578299057090123107108068008944363443293210491020807369087251411467839114401911324219875899126072307462676473495866407527874508778664618099153726471359142935575618788112672844317614311525334249290790306914184856645642758706976703532229315710480838195858894986277089467465430168726891191898605148313850677680743162769156754514887996821356338839663127370536565136229875721586570131508375970665759376334205437201928338280971617745864017073552812797373510367769957210931236956497856046045479030576215664910510880881908293863614478093176903141881395346035126325177118537866669466277315765733069590168282576487439247090352652279422381504107001504502035204270891778616595896755633405272666209579740016681818104119449211524185368561256212234590941480834807199365745455189901576607806608684430002022035414382766040855552424619797032920470981775125211871365149723837315140740576550897134276949111319075921805561901504501458219506390899886656119825787722293335965225926568482468419874949504732831400343997229943156374275158155117626983600108609552546024297793375809180098077402488769708418870259042316961186497782746943763434679588533035841036388068860492983203005956699404540417544793245827138723050448460228073715487399213425569187022158225053492998023787335069695233067383930595798764850781331455591464189006973321635199099593895355564344526205549198778847763189758643243981177168467653783806385832777739875251639137558281481145678668022887362523213358729394927204337094801000087434565171531347039260348168953766002735297139619448449854944036615459226883416393272881416860950451362827273806806306572300235019859664432567617170071249538456461939479031464633419672007513109641818367178366687580961065517076202649844256137200069948776417444751974094919230517803340561540171341064893376882112063786719934579655361176666590382702510769395393411081386414506352169208684504004019705463266686048317825461410738120523930580830114681374908431291726835267761873718768401444771022294514935761105765215732520840727316058022436217654538752535622696717199438328232412825411719002138615022231654325494261832103944318346343174610374619869983689613773081491877982998696108504488194084113873056100397218463824416125766599204095664259455479143781078438792190260876662475242084435319929299701432193924536911510609312709066350445966803129698699264073994968573448598787519137208429961499183022000746165312314781560593435292495863509461559922456237245562542194387566973280683047650479810174013054016122905722982129433112116731568072152058091518598578231683589100735650070147147453804096498582442111219422272070294579628050002953899579191362962902016363355355157887875687591637490063767705202788578507855293565890863751115198006737155504576970405579075833049002547929593010103562877620141140396805877838457118270252152840823276432779474899141208899671383737225947167583081908658376891983278149523656731367766960814238620228802119311097012306349395508907212085377418869457615214762661224122970551821368287788538798249097104825897267248114241565115912161676426365589879248681807478193170975099386569897930023333114976816685882272414454439624123682286309249542056294603325971093671770456201703794983148778191840700226860535171279994091231493270130247858331452482206103653329157363620444915402152544834976418240432569597893844042280004819678706956382371179460938952302968279535721809093062924134729139439833286801507763293419009405410118982553264916345525133309874655768667371601964447455891148295405067897154948225318335878831710903190427604861837650079756673152257359082079413868737339312642153887421450037172113433960172209405525931847337110450661717231439574315211642206785713600849756996378277552286483200573300403020706104169495970270996969620580770404219307325914068996618844140832467183883123484891652128669201789513087375299619999158392736802427838039726602256468260336391063186238904598349344851167898211706551165206757061536169754885610995619941143962747699920127756261303103624673196701801861546479940763293787628576055732447264590966884703295553986837896305556794405805769883518477863708074876713528528090625215363607634208109615892077111201186575539983623614770096291011276490669887627699894407679038381568902833493619487766982057054156283756985293148979918300062339721856250395935747766269427553624407904967549303372549646821322235123683706880257468960570670976646291162939174194133951275787897548855799033649525443476102567796533584453447734753514420081824853780709584002997159059448539155390923798023122116551896777065723342451050329685524166567644690150270869453077104460813836902052299975022414018295350625519696270432535813852138361409822479459352774095395718019929208224852771045375790787370432514455225854346007463225391642931427837560320766376551789444565055369980756915309994539507137600415740878008858687251797676487303795002597399317949592190732061947255288005032254421257131972926034644243058106878511791049541686684830581792299801018249236095191763984224910483426079802798294559415683847702995375481884131437868308220554602805132592921953940407146391391440362197984975478969892326845161751087528578422339691322908480722905267590888890933004011693092848423412873598311573449417973668888144127760302792826219750575802930491654516627124343105190671176132625262971227564639900915552346167977035521675368353518728083719369309814416538987457486222801149394326552369306381165100545896541323298441751522806680806888995650553656573823136802669586933357995496812739853188358463329800357060236878632040614959788590043360118684154281902884606466162632553669556188529953088483869714707371116221187188879739177409937312295782098484809294847165531619060134166813682613197981668150863678964554211576857403470106786378601285227797466519173438329254591153779259759139076023496812073728975467861402239986680229417173505249475191600200571272689117424766877909459893011149287642815799548538938829446819556605735446638903512808125944932727752545607489785154512340979724744078689855115316011256747295001813851205735933491738068396819736849460962348657144613572223250002795209212544524594966973385895954779460479366562917744787318714598799351490999931764316538404243740987217109480790996056255936892124553546238864616108712657175308760638430491109039979078691204547610105507576016152843082157648799111950944645040523121364301418759150059560588073979380355597296668676789972229773116612515302489994015180673696107924439769419887596233274147546798866308645393618859169619953818161400499667861838207357499033185348946347755926487711450933128915166163433307022493274494225195850603538443388241785660399229116746597271072400895024362736588061386286830269262430728723235816170306554384463869831262063386252885730693458898405244070278771602217338299368442083622277358578440507341891499144220379718706695381888053151358031279837200153643960132285382525959585916170095181055812795415348438698793820437796932440982493585510210549310835979954910778797227218873086343245421375560163068957779438174038681411424941088643686630927667839053433240857010139246928462202302602433727643450617550839168704899915946639401772946165312928571406451184475270838608739013692528089625951895425324400313154862531211365833985875940754348163117682369962413512219450953079953817674108569854259499567955238486060620689002974464577050380513047787260196364811837604196182568749928814216380214836099747875567289834085077391038669976539160851593298283771344938196659311459490458838836858891376896697319246267303975722193911463061199692754458294576850813744551187640955354917669197545051058482722721485256530296079065402663234102092174303955445095884075429956833095485126249460603042890444897318456460494309440173142683127341945448222698828803558143640971491044005357513264646595684722824259773449769789142738108423362793902462576704995003653320722566837458347522282861580920365479021505569319425492936228723353412699987143818679502287930293097742896417778285879472315658072026103183778002695465484765463594663438112519340432600730550632503619071412132477495903480861782736495474456007121273682862745339600648638431615207197127912444215152813654070582521413702687871563235427379850101080737400167658449598482952561417105379079779456103579194238984966585424913530695597849977618547972900576474423523727160155177251387047386026011211675438430850349077576078986028351126382106792259281167352548007527326979801881842502243216130066479043730219840338995892483233399097152981985653333609289180958548345530350276109617105104428128816601694998394232136981044152335155919150100856312078458100652486019683949294501370762157769534679340992576949114562587838704535656300176638929647337388140768089751029182959621408947794732175608285150576035302044243156155450423059175514592969231596050702846867766720663065153779828765751094218937855148620085925569667970938062503629204728559882186646614567465673776670760834173947553593206079157267090621809386344470937374189010509118806651350104800809722730002865420736748936911049511439918796146121507532343973489884149291848283406395144287963315345230108591728916957140168917826035585623654594178829135435395010013638828960017062104758042457805105731658623380274202098950396797322032090001010315454752217037177031880527355665841804248482235641557319043834067552486130234418594245099099881340177772994492179160180789029783083005879614258142117153741889833187721271857626626285108493752669355365388502742165821626831522479082058877400804773308199945528349814400578143007398601150305727263207334089156246512706217710726736909441721056736134491925511229021018493391793887028113434931775432715692023377924321274666297556161286998549882187920380148395596575394543307177122833670291560756399025236574078047915666336531599736022619603349721895323772468270475156549086313060763994238079730546762145126701273266253254017614136260014016868015557173832466582735958931941427118903361136302770207005136667310266472038128312554137041646892095342020325757769629533757140014174452296598454306631454745712817988671268959697810023962401115557205198154390595299322547362020761974360621591724296572207902704545461017082783532248096980135016534111909057209019144690664524555000159595069003470530296181759737520554652952164624488387496073269303896742252651580197856799179940016657615058847741777836030775484534456844116820841817029549748447182319023683343121481136895070127794706341674135981217093022972725567070585522114309626189151607828186984858165873099797569927480638793068096172537542502362105055749203532464840810880234184404214571412609656658366392198649527688613674973335251912384499538170603515896468598770139794357125206089940319007308820951028558132707172212488603565992653951699240829268052071230469320617753915370254675891050548711393706038137079436085967484011140863687623746801534382249242670170466113571388301512198810774483410808896159880252976458639590045643862390942483007507448245518361548846210268298342919557646317491771209461416760032486479847060011085668878605614825171589094258828616718949893570313435067987365167926522149428151327215067750662704132383633096200644133960967661027628513507329008520466461867073518510176171943328171647332860091927817139260149640031864390563561071972774177378151576436938348195291247792664534783009240201600578225863213567510931190991901683553919469850851057940210296533659644114452802545702596620719573446417624313909198579952578423058440215139812942046325325895325813138254781907180010847139600629125690668942382386572638448284567257736318255908286541517584152999546495201281408729747934912378640189615724748838548671476109910607051964519418378054016546052697768344638135412706544532406354911785823476545867964451073079062019787240152372911097700974500260458998458188898313457394968254386289592418882271632122885084573522615233588912103056634091520618929919969868006050811127065607487030138093727959571949440173926792908400454732722510759473060985918711991020805940222365805027975147276958281525997385075510014384813254798236940146807442717507855894057319373687763762671504608156546086796244377101933202326652910141809609306086959909920791530423640889950986413832577917837373844168954554035302976630664963875875725449869394162443325923531520108370216511897150481038552289568547022216120598838194997359481469881468513099901366331054137453285719778862333170109268296884545944448924183909747419204892549091224359688175861706143484853225229716186320985171436236705086864565664929920995021253302117582502959984438998637734938082698786561667801778537610302136372370859800647643158759605760922770341037975680796525350433742436798586053684645553128877698336735401366898962281950450123738274929436237367557841266365420360552836954491468926169393800074250975732339888138611831493843970336040229891778730614379622467557016783013806806815707576478713855610115939098659945845140698459735950207024252876116277692434539369191175569173857166798294724363732743095810133941123798806441952262585992491902591177659987351107972557950359069800951545092396838715184891581950573466047243539511086638576864311219309965776530942775758269813503991841628216660426573502436062120207440277256881754248321515128048311068087285744984111319563274528330670751523724958038021043847884777622583222777777511257729731100037366633215122877952111658751544194241985928014921916281352331450140582149347761327548992292796537960555387409295839385652472141598097921260485106004998474479992873024445295918292329934376931769032919483303466168883511153758746798562919391040538161185784229632548897931108607952243868473519029089445142718761640390670843730768278478347180035474932252786618704214217192412214670498349385349986858426411339717888989029155194782637649828364570428121934965618840517427598426999024802469009261686658607106198505179260443995657195736358674859048710996592636655232156930240746381295353692476016785165512346350049373934802555556363965354624082074061354924345381458886221498176058673750187563042522482284763256773008988757928659808110385603266200023304960180495255485186927742928123991084854278034804870298858394143723688873167167277569576466496469263943445845112239191638011560030801070339381018294348792094250036123013713560725029254654897737683325694727512461183343347596885961420156336765232146090257446793861494634988531037479667186441599994025946303286738833454980521875608632183070488343715173364208523280871429745347263330166299122736854719995596455601237273554146390905658111878240150412883273254959014926719520561840209637252476063668900510061003100941829388651013449262169166275871774900769008718838994960894368970874028838988212495717268437367786774769122618518883368476357984555674841382589132909920566718011812866160892303006450137055650961141384861991090076947849060217076974686845538493348941632345925823697837583649938449588511306891144428912884512875547637284364454174306247559494456725241367966169013011631553454270962799176129358723533763311749717965023703486281161511646111138568093849385094111419470427417055368812063957045932381412331281723625353935694763057712855791877582570087855074426027200699027974017009725147783815896613406336515946621467735821756885691533689757114966232735990308814407103043379119583023066292076765659190132431362855617128359229154955678868739666869742383482253495330459908385241786927188182526468036439162616942066208192791474212118583863587278509091655523176167814415951025551103640921676843102086419186768812291674490480233353800674141509327401020611916660260363461811700268036959313027010564974217696911848429738681789523500649638997492482121152534099797013034971131068001311951781132552107725485266425270417816744599809801652444201957305112899660914632171178871447053245814744797920809943359241872504267073416550182821636251694006842010627621624181750938820760543706099005035223690732009990737199638266353420644513307793816060711841335281607415506542633572903856866521530176587749279172724346843823868443486720407757528101574564882317589957877679451926147949313663654802658005235854745495752951072837456672668590264733785014644686215853847657700054804918555546424862791600184625676164385725089044878849734326893308553197649065017947843034896139846816603327651165558613050067366930571170044387215404921415377440857890545968397226634316968797226192408060710970092680740807820783178192073312765414685827933341422384204060223909752875861554071973627768338845932785775210276692119480209528165997231124863217448288164535349442232080743351951273011592616506336280534848511612197667983743872142110769283864597179641843546529954212012826309531278761621074099008091946943427713089137896182817939827861563806364901438953219904957433297087778781842541946708801187568485986714662220883263555186606482720361707119491435493157628217837334174813682351066396344188487267847386089308454723716477738436218240490767173244216678385005067974579954409213868666184301260506708652011521556178161252784121771845465280414887996715924292288897425112623014207376994708978111174611538564096814352359479794909946241191093717200257050705931589827556669909472129313898773175736691103215547343575844791785827956614265214619673742733074006969468077090154965800741682896514260962916993820329035515678624234077798935718075755063536966053859907689708176535643639641455129776040416125643099638850686215124066537339643379680001433036323492979579484028108364095468367524578232364637299848198223517452219249798146932022427393055085747077433057052516094925841622958417011198609222133978294629758689779095747288160173310802930679636400167874767418389317330677168255587447147570948921089757650653087460590710553961910902813050508863761925464335811857120587257129062882822755794231849829951485169166416648918694839962483535135742026233829158350522043461320790971007252279285334292551490168085576903008466469799554246163363230578679015825530805257028881852453817357268144098772054797044167316958573087844187146063104872046288476821259839580785144897589473040297212513020371692378556404503973376576171887718490224055730947773542193511160746097338703076637150337170231807955568531735418310971548992446214877358072391082799191443102713047222407604291389580663355095441131600733164625602602741964163744287914451218066336371271294900415039095233085664170247265975767881824703622430533679121275882849004706114636698009581082680019307580631167975292708625853452524076935254453030725136032480008732263265971606418875021430277852390524429973566058815600403099424325674657912318099286745990386593109821388230198272024779783487122333970263465201932692570566837428584321094392584771647625183836740351327184694909936952186434123795028803002726389567489058719750079459394924318221794413053677196715921261174633268379563541052530775168955160979958951964048053161169800255868206029235862118719776480523861907915242726598816614572681534128656623200334619272097292442484380644856461964226302629356253347572258552606500610867833887348935233710801116356106001513922546611400140018386041307650300360153331636169967781629879126332610588539406880105705773204854700547412131570525295005263062739832335513072628090011837949488494395553343141214988165063949867608247744166052739478550574307921984809591541406619273018248945743287688608649724724972869656173472645610380617936237136180661298106408521917179191296185574183887045092740435681677123358011172248539443047997276519800851180400042821849232080211825482131488079980583348541397141531322885715988539712973005520858858165260835551744477260852390325723559231080075932791019594858913684476174237245807220883942453633150659852937453719431806536890340843343324968939160053751965821407842384785142450135369140682639961808269729234396938491710487986344930228552385182999894570863104261412201537737490419698940320209848857786250056668963981864387893017681507218230279491609757602856703061926224743915591778838619397799030074718331153535034050412497852014953551012541180997355727414344380999403616074690738812594385081509140197915798325050350777827507117737974563926067275277400954111357776440053835346635810436170937503854943282581136832374378769720477892823979362966171042608418183923437920663877757985751081185740501775839505794377943732791890396913004236768754060383743860180510786963298503776854245503681728199667128066141138185308277096368133673754785253607320472443375159457147200252116641833778536587204007356486837613059893058066686495024458495774508572713021604038915134266921270717921842429526057308088661055566923662087909361240849998383192887755375638726066706146387737406403972935343073523688343132559991942336932567313166310908718579536750761688441274662396977263340306797234699576615620952036145418123729445785305255634126821060984488679715935892255839450128815544493740018389553102481047132346367825872284176640845760612246242989351301499457389340281867933776604060244867986041095925085195621773542748282592949640309960673089482386402119902722952513145800234831278977263295700180528754364329188270305938047644471390081982109633769121000331323982667229832562546087021319876250019963286831424685576864946271497055524197303896388847595973653150435162911620202464381019744483279813619821691909874704096110935714387384184248772438867527142901028115399926096569809644476067098762418644418715068325962625767973202903469399089299239679971721429199108792355678049962956820518885796421365299201676563821101765009822092017800195171122424717541573763428163232288102477971311758843667247924913070387382718370674444882467224886849489918427515089154142667159905299909050228389425752023159166833466701942446830323005864982122948417275769893306533233536344435658395655565131815436312538176847940024969199117229535052312691937951241667987568965428284250894360568742772197125840718045975782316260895368629424796369867814291560193222566361421641737955390576248406850704216538178786589644306899269122243104904999746150383139336517026069329228045046225019999152066515501333779151744281153017660199525194848909796143910206909125941356884510786558637222467802819416686910311946413371435294301876933688581604855687700883999296333806508636392034929179869149855893906874049624372089798808525900224427845805729739252730573827185568848543659724409903616436573941924628289390465585669756681416699317334864700882917300683740491057142527103951416051195894994892601957848254481033742421022715475474181815910294104566872692023277110701017386960758077747616477365494688786213437934065246633124021340257510253768281985124062485315354370624099642028800200143719380442860155193714059568583962272787948861924249148243171262181923766880419956288840220994143326426525711583872013799728803405537596212934513318093672406588178511995790142056611836417160456445281056098625535441646888455281291035658097181809208175389618312376463112456139419190648745058806745665256879003830873206528673035854834280306654953359051176484993094283690831983543212753687060778006949153652555989568308655019360041672271011427706387463214134409641326681196101681140054088059441495679457577333803318458803894327574493042744284109149995856414647591312852083065576175318282870811600114150111420991639273975039549775742978469826440671664329430975321571515920722900548470056902413798829851479245666280930917988978992312684872385819210210010619528179715459869842271768017665637759037578980137187047382085294822984981552785071361774709829966978105747971438317774413563579719344946791934722847423413085362696609903023240952897026910922721471373164355726881179543025350752405128838624490359438249681890712021954969398244655269568749007197797661521899538213461542677525942433633814923338516616078463866604799402017411133170124342308372744888266856067034958276129804119037818620066226206409111585513398418736302570957549861905101051077166839056163273902088575294509869329865575759537739001761052800829346616622970637324062757363647875578673987066682915662505762177206189605347890372890968401712608445068297859182932001632944568504286169698142181068141567551890047828561670362144351585360247529738621011363181429873187315914363419169097375062675712374745194881909059241858908274756313407746490409834675789326731766072257067345349789646901300513251869869469043014751675302028962480968146091870134665589004761763389625660916398061321788566543795904485470926034305226710605555680456159945131585284132632391602607743720569029512226207446506102314837423414612969328098059624174098031393184990906422980853072195822406092391392472575377049225830156209397267441035059458861502499288097823891349843301465509628126809349490542972553723713030686660042962208293281287105670845534639791919276124332445788993997856795361295609068296844964967308479195813590168670935057894625584123919237087218727978622701520927900468050032545368667137339652853008812809949504315000748851425191924627531273083205481649317915413673219957351761540396319420742487814339450404366009085233126024707486725394044883113347515953080347601672270332556357094742389852017272999901812608784877833144142364404017862989528407455484154586046960736095317161928676722490220796063058539941215574067809564662378817178170941633405213368448509135328331475712645780864130131469602829645600159602311859747467079322263984814441735559222834820991918559831197727603443455764492449947954227824162430933565719799938772713962067546230391477230712876520080105073503197341575252052148164096783539171213569822360163320802057471461039360616141938625290634328559348355743403421821498183137583686178366890517103755313455360330081911882292524126820945176782016054280866312039420088894157415239516149694125618799051280442405851577632930466666116334665354455927565130295963799474041115229840734608352169414604104815680404874074588233495587065783897910587129561405519434662410746384128118303558986181331592441249729214016941747056376338871986721689768340061192598341379977147078108669437720884406845331594122060670976765951619883533318930842955780898778377389992350614597667855027795291674374185133023781318241230454527528176421225754158475738577960558837162146959600123815552765910760761466510411707178618926185966786521752379613504920349950227020809065608430699520478270430692850271158233654159691730682766664344469888943821099221923953191668188232318148834513817429228666021894890665249662958643778256939963964387928506264943104779044020069780519488771181442151191923769970119416440822326258705204762601605441337970433143076282893467240170265134022415360532738711436041975037972520614590816808559162785274996286356679525861754056487578346017218594650249338813812506881012158079008324337454971679640810501681734688789157285228949596531218287588550889563024463959216524771323685806878704086195709694132297654688709829453848122780947419258932171290821046370483324331179522116987943072521201954541434808883403047857893608219913108844391470409696300192914361277805970408850532809519066561621328993189929515137374258356146585676641325855092544660743485238013465018255333220480739488062521562098237775545991614264706448689114400796303409095771057943976875360378753853025361959703374007704699773580750597536211612249914449997014193247586344404337876065855375719721817523792719435565542754552115523835767868761182606859107450478574936679223968343684788150222010335798542152354947716797298072026494393500849900759724801471469591459069670193370183050216841826598806258372118355908739501960714937262179881451539344290403086409110152005018934866489973375849938000764892563264029763907169037677335342254079923276293538088636657831242085588314314587826346946535592206282437681697400834713675701319985719843043870718352046122216192046293622619098332466444137248713730580619011239658286942662014864066716414478587000000491352632534922712406442563540644494444310238349579701724206079776998589388146700640185388844439938839006233563188199502978090514447828113038121981055965183131417112203609146904113619199574083031751086170551026082808470748895697784019539764678398860328666904599241980308193229299069242011396810789323976359547038640138141546612136163885412153193567226088332622802799109265097990667839272183653087985135600044024982953924080314724611020983966687943263403838029367674895186856512065772272237444949569567593150745937406694189878871795943990908740800217904625546260210101117292683722563439534768538080938931025054610055085918461943912122108895897610397603053025354167878240028965103280871458476482131862358401214995092076099948706991317846402737509083076516523247125778398832653592544078285653580563007142765205477211743629220336525704980928215318000943846843405466769483989110968479776796418694113834370952244038807408036722521433677942854402461809355372311600753113571412404493036042785208493231456947938484221160496922427900659346998966828110244163093957120407247653850611961132836906961420595467173564631624113517300451250735397197637471049542761104844891911886401351267946764517163296610480050391669138421087104087009678623667478012676392776919613850953115076038908815855361299002231572894351453788115814567802257958466357158547980547378253096898003420529491870419533515393911728156885352270588360128418138231727875169528496588003161773113295121868978525802845578429325874763191381925298630353658923840342598010762298618997435407726759916421470292416565800483329427660211215467187424167401870298937554243196941422048929221100331396599896314502313700858421875130247001401776218483539737000591286502210352046870536743726159853048556655585954459532369749079232397324119365054598256853585089462336543326194477358250051029628066673975596293935622076684199878374067185975972543095764461363125169025067067556374513886663305417158058304866112331961372002860417591657182766096928980209000631600811027345819162221970029026524281237698180098638766367095819048872161440220250992186629899275694821285597215032228938179954365383591022748541313715247771762635506082897834044545742437131796590568228720639250258443745583322840889022175612309366964274482482656762280605833355518319291218691342842428023417649802389238521403713192120704244418910315368708141801910604633719912265684432939759164908423580840109762453295267165299274378673641093585183774631239948376511243566459562732991740153664237203309632807105199150753863811801154839937157188679565585931209556598633026552361277813867896517833317116076249612541898629654303631165822464931682838984813163685333831834241450701444424147024365598338161305222653717362104598751149717354477586255289435719074232419308134431010449808213719667463517816056709590828266575698376347400587891512540576002734363929068602857335669272863839681202556269060236629583864886736404558598128002675356417132866214145100179591861669250359463394668487249838482256223045474665605581436580147822335959759585505149907111752259364102207593857226098901640528267460541380674484356430902805121891606685226191065842022362747186176340280753344474553250408544772041817667368086245342211623216355998095773122106628927525877346035202444919919995462495782128365723107770382153048469365348900000237806890755964828026296909322697451460368863514919828300312698663376877587248363439278803347331211374560050687567788554589582130124982979498432755711111473925239350893466665841602289359385218632199402983991770561141223973621787658708095070486959068343147193375999248741871373123217753698676679407490598498958816678417754598690978769948020735824186286789650612061229865658771818325764181841155863298753819782999553026270440403403794891536056543942344749453374340544140325248606025936204318134828325362925759198127320228661077148406178465531297212697484501100633421555710655601615370553795860920944820033064616560797542705915114534725679858957817893747740855090875769662832740145145067509208287881192174927316630047965195186882792050840918125509641129362370879101639244977992463517881646609905086964107279655667863191753565213192766615614154799950219378030422731011815057829874469655989909327781770717222361808424409838736909431649098009015564643314366007893588336580531517407323833836997439938099925001610888200456679210281210070224143277206650695828523113939500880386604674953056957063887269115710119251093276348359907065961193550013415646248329808559160783963723253496536490176836389970078782178471588387572004103413904334871044668357724522616158422409495562909004359183300257258489230351190086973732583600044261602797644449780489466375205131597838793179424616516367217560265213255005353521702584932072182566365175073616342025797195524606317401528753234982933681903312881302039163282852633373065570305979238521815194687726258888760734249552896222723317046394548340428201296425967226208138472574870087395781651774223530972416946451532928141973700617773841271134800640401092943891833709653919117227451770585832864850732072264959602771578704403679515864207717547703744700580471719287440429929788736154867505887553248621463802938216851487875784027192467961585169811207570301107522065875131618602543301035377605716383261783821332310214845296521639986587953643343829315242817841500240938823277583086942346443313665886111297013249178253543821610281642601663468777413724808391988662000235868306022228377133523150958768188924837998133550274389484448777988110568239156673202896341987840296660763865939901051810566954264313117276028107614670752331994485215393118679629638091550719821815697006772761800636525731136047037980637058719796845599077199061633997356942250803117352970843418688738505841435988461928814616506393519633696408498973530762377872594066460851046458036139380374149670606854509722621046949038471578728510301565592393178693615806187637930521076078771525117361771923682444929580577897215699430176335867890547385565361342457124270858822451739763996534195031476253998367904616973747324902330823990573941462848611512799084098825374171533350322094125407396279271891054169048398007005495546894255302430299468301289917459969030889422575061978655031501041914205366246223596749503245590839776249156376847072735651342005838503848554038081688002751079222653518448444989473811129977946091351072136026337279806935441216407066876344417992501282387692235347643528469016316202037270755889374931945880393267566564538409077959247675959512188062904883564744695658558338585108281257744283470892905733099794203312735343041407561765453131713243042569090520035365056715874681334571233766242148935340012419884155969841088780927800151473867250695992127701268244634268524718932198604751157638022818365240966564232773313094409630836243578755197217175930234255813762548662568104805261350304274953180419985605217298980773109327588989779902555592382937236673699399946202110789013385413505655579769462991226951552390138531527083330771887216702191976914844791730945538901008195657607457559937475694024206807657647621551050829854091576077903217611123007710095435190910078286490486085378362881483341949233282551141512398248562161679709329148107075904965580222105268291813386038459638666907385546831958961636144371714102142525837105781859881714031528100602337784882899642282441410380876902168230096791735026156148819417889117186280094540658003295807316291148540915060050548382443757774552502601106730391558374802884341507465040483996813308519212784568706333831510822599054204368485498394645489596349810874304810506915737982774725969418857522461732045261492276053043062828152388920727247563867699485488547965359011855606720303813750015238756670919121998293979968565246214852788605791832063197509526068667337768322012090500733094667630748027989668979837355510008400401426704475848491304446716398836692556016931585389443899665288806052365950421193176640384273595033389601033992050376389723070897832898873334219971388633391282533210364433824745280135359698752080171929254967528316438366187410737601459337697592510844419587389861049151208740495241920708250134207811281591415745481005054122825207768063843689763189620975143145175402188994351588399500398552152797121623193403080690470855785351068584040017790079581068243421837169551623907625235714929400528281631015729894557093473709412573407310385162766860363333856838789784436962613276913898278103274148421051626673655037396026233181330170422363441294074626974738812986775194471819370343939767461298935832624604435759757970815112373745513569176274224679261684766026588872543995517846931054618102480237039146137966706340007357475964530671726176622540619251255526057571844404473850694561686054794542050714802125409556588137907128375135925203122892108882477794541039339881843124552009272642035258067335901838154049794093398365134011212058880243865777874708672391327293871059152258215424427515813310458245132877638671825513638407498682527744620503672495381499115691758458070287689505637226102633762695095026710500397477660110545874122263055975616568520438269415125876163488909420081666828713152914622527334456491125644563645009652582962220966436046190508615308096760025006075850705262537263824031877703919314432248609361008964390871840250676972992341436124228468735429540638374606452329635622999912834969989658054131165843896243240619670191306662377796233896084546943480933513856268190890586695495528160338322553690154044410819781005094396193071438978580732767928725635092502913462389522404641092820023069275862781977742275270505172546294073583160720265667129197859168945156495683745031092867780789226820122852883537837808065343979020631572190091894953681714052382399454167819791038558074920739969142995040512222821990657304363488859753850941359781275389072263858751802084384755900935448360697423434315789284562665024816580217806210156663144341979946922236798084019334830009999954162922786353850756371737523867367725288629725740198534653216203635488882198417773687361360398415666048184389913167058177524718127237264126923947940428418623917462051082973003545706422047026178602356255075157995683467246173518471242392279336435906547058641135329189151911333185650773497564853716516434708239620825020335750681537445535002169937211088844975119502973472795176636857634039240212335946780284598025977835361166640251736865157260101877192491558843905053887620622189249627472503019072913081961401781328355872841766382278060473025934607129620819664935702599830097698168002973083084660447552671681070452266611233340336180470851382385865767225623175590097184570069378833292195307986478240929179932898186032796835823952291924169246931905919948612800823854074211509496761256285802021717286924640905832076979161419549902583345301530173135075677274649782222989882277493288129739639004818256329334607842627524177172585574079216246637522751892378125631093108511033736993011964251368690817777381328643853903512843386681495565242755300285624975812694874267525283112502097434738635522327795362504414313815159538012030736055081981463888085504886043082661147852702021983605649931317928747386118597822337384473726956175151018149240165144753064717834162527695187904026499680071542021641558206472913780396437620735502144786052487897591720843973099188143381624075071082548314417726983447166471492898142017279365398891719879443419711717152754109713203745173793225982956221385423097560908980607682754057655680631089322471057442921955694800576239762564557406848894302727441603615170678050637822063751241106465965170183992142250110879605218304521264646999995930331965447965591905412149462956997295281434857054302287418834332535965747963334982367909755735869589795961331345575257231220015355934685243279770538577774594483707850095444587664601259187332984822153572276183926235950878576056770052319149610551334916200264201928490933783025563201402207566130864611089411431225639522188890301536349773868788405520487599513023439226409150351778858798497956405823663444062123566763684144585467231635573280841283858817225106685710472759696818558777263163611067640630524049063978454539781153969827361762533963075740124776274218577009610327415396674529340120919474889712190226647683172617079065979028240895314266679997152420508040961030208821953045731072982136565134815648038713068764249637576844748644481648120996728700398786016077364470034191531728769544588132829062064778453009811931285657573336291247702036608548405074027160554723551304249655683292790121047503479175339861087300082355579134032250084561492931207752133860266653060108212974231319483688066218682131253229909025656027086189064372726338067134755408527260670229611227508890099407901596917223165684373385212236447446197214200060463467352201760056642790579657451575681441980571967407757435068096080498508032536959461479721404023686696202565418536174758488517801032329575147818059714592494283032639744616563067631239261981704527680540774158066709875138292221147696708634691796855256937372861525479927038412109884956904728245389879873380352685823656596504576784168411489961410710673573435763175680893859737573709740294935698651417442520547997243816045152534393142439240227514001637323251017733446412453035047714004253350132907025267540403714298356084161774445193093122472657820422733829732321535843565816806739108265681280780874507652154926371286518827757859297261474569626709872299107383854878934721944295573621258731041797744225300280107072774826476034457304662648250008082919716455112308448264295287929131523748413584273767898103441652329404147423773974162969956204835375034036688843081594457333519272317939583131404142847384696794512724327857903773851077400661010347098862034096034451967066123077209612980105296446962574405560830949241142049079661202399295106798920240789423207803827032897908300691207488321857485940025201237553482794066283198926076786482611726982431934918060386105291864917512714954361734561526074080593702188676850942836528986512783702804704322117082045038322209128712004118890346266449479883779470380172997571697102382409995843117862056726477273143093422746980264638533440238520783388514706982158495197051073772491982679337823699286007370438432900620829165294364009099855566900443925671963180133293437292570736804185195545164099335281954081053757383358132128196726598693052662181408388963188905237352017532503060119669652391422081238929266535694916992074695045501123593563866025555948442526584105126074312675022041527705206977022582378685072107977704338310147215218215860645427357697201676149426744246084035095278272499457100206393598058399356103701591159104971927853656365518570410516513977719893849725863740873600373798498325564647653959810555882803723112983343332441411224260582105003368256264979395058811600209273040202840244697988470378552600217664799199200368506485704082700035626840671578155373632161273739300453920836171159609893553011222739187765297551567683237304754912021205214595872150331923351936237008607448371736232946905329040630497189291876909667869712836847315591605482998089461708950274882591822812661841921037474944241417910543985628928250088809104673274862479486242842646122940501935383393659682189360663493700597291166513025452668335693973477245776391044026792764397262058346029069775766207770515213136674438414661804011987592807518858776702359008967833598172957788989782526019865335945890566094768142139086033630872231202974905151996891542796277843245470310138003724350084526301808458915304504420456135258308221993064348927480890397587601726377339318602048889457820717755430126504109000352407903669483087091199635584671683823412099392600310344884099489932517571695667072826437054555740149742611519545427010541490140310648063651160944716666153691471220944759301096711405597168724939201593262958816125166755383224999948441503951803764232943026076326795920188626322741580088554384629663207453061307336859520175203820389892394572245801988169857034390016795976155744564595458311992756920585432941302522395381336146436259749152580814955020812215475995954845876750187509237205628856247062190615852223314667020480560190985011510213619207023466770120081320371782154303828047775290075727085960217107926877250147199215991033360532515990829878030605546865880173405774507546207142670622765998640829074633259961509209048232111753599550192892364482876332995048042120158662533484355520410383589622706188248984075325106845095169710634030277069735625828723437139710416876185370360188991535302602341051593407240214532951659714324686053603616193510280404476859365456405499808561506718984070394549890892931382594798859206231715664616998141348224395678165485534987008064691489299825450801140618411244993834331439295626582661500741183476257038475314801868700574405212259923355636931917135773217925608683498505355736727898282135273605355488241107871715880506635157720445886076380498708553721462733806038103768241618300774766243195821298853200300695270322579819682392259179957723338721679932515511443194162465063637878645877154612040878295922604270180402834347822499844595511420622010587744919059317926246747342515336860913596119144092839071697436682404831672129939665539477052227889281063171252709133564331209508968219095990764746158572744941977630786213771129971660725178057949460342660000910951671149238592846979790131937522269278392663744433572143921544367724415608296230244209152785590553604365364142244865326305424719569943354549932956938481727759043590748071574450954729287440297394691666257842825893226912782926178055768645392550218375587945504661364015749916395969692246719815152365860976291467309248146524657859029082294913592940140404884330981836490969567346781408335277788309165607929821670384573158916655747579732365990526272744006975810524490302187690222549425968426421481570439279209696776569235106178481716644170037589697192760984818959170131401482834284298850940531733222952343274245964528112458267578889729774246635425208109191512956286991714901231262522704178507002549512047872414084940792275422323853092476326700358521455792118464293929554558420818056323431365192322132114127820905812711788382871538302408844784202214633312917237814992363711664319583504908016202679618982257584767476705223503305671098624720135574209555717674581875026194018151896227535925829612800726777654504416555541994564341416943216086784150259015636073046385235032032695671327986270063549253910333606939720063105182834468279570559280507300071723607910654320854808607471544932256398045022708126732508798634446492445542649660192838027087366152152928418558393318418931255156365321370414747810466132218152671558036479191113687915970898320491882349538025278470590301096977861734665218754442647403648724234428982406619646524337762547661835100294536575606087578190840462149859516680652478905016467491599953854908983382265894987002636677496984818052132335936608291557020954099009502753683353556973114242797639413346910064179125640604211464311560660929475838909635206543985773906192905120042621786261453046656600273836297057226852154886509454173699256123564756700635157741682531594596988174747683795896006940208486875365499358931350365007352126917784902843265756051813076538553076162329775095879726082595245008631229129389389074460903850681997528710258101895863985519092494806220000937100752498948535937932516047136578272673073597141556943941122268692194611321964955664752539256315254806199779714960018715434811338764763153090879379562672370313009788192809106144360263935136441193575546945744128092808095056372335912411667312273483562573732321476199561195481730025094553615944119740414369639206877906873668134353975260457321050375297113111370309729800194255956428673023915984409386520417975840579980920661221161668066857991383840758410434878474563483982690718447823510264351295891401580903329563316571471938773587698115596037819138912943135383700006666767915717990813690827632855836228899941968279564023485505709664529070896549573589905201331639136510679969995016403603061452700728569813678627369837439062560950684223924599750596754397801315074719682307899246609765924411428979345744099300006427066155326064080797972316647838652318569937048948861222339236103906503201422891008810905733159853565642417629683558009592349641695634588114699640289306831457659299909012085481766540878833160331320387246935905344990305217854327443290020352586056514418614835235588413377790631657915936986677482014484185164566382543479312682947603327694638783514462834067875785788756477203753165855871228867804444191343942578815018523924624215805792540852836437078067664887627393238813805116739679203970212592826684076604297155519595349163233337440224243363165014359457667298697729149879405033424188107575479155402467519514453384495649490244911806163456075503512914367066428784658576187486127281526709981048202248872578897587134933313558720966852163633385017797912000858369914159830500078089161632196891240693991800095902373893247644825987485897792070179071927397908944422590007558733789108251869261514954363798811446717353165176772870617123785129053050791040180125510397410765826480969052401998328374319938037084885963915287948331526545285184722413736200844887048039936695983998331917211760118431718014699954787481996133436383107639923713452399503750957695337949715391727898957243084816012516122243036193757649107201073882906331311552868005968669424104194552329500114791193665029528910026493606102105975585538993665123551160108634157393861781023056376714582822765951169184360396401724109510926855525844733226971712976131393662027611683439500327837225846754812460759535724042081498246190258606176549408704983470420302285402149263183580404405404758842288358896756390982114863986816268653389688042110415386927128867191495295217431626288854095604952838589852798603902524101834876717382660509076724279428829626736415354863454330334926873431974518710085517272148727667525647617636152231599407762614428793639681777998123051793142518493825062455951211399760233807420697124671769658041716989104569716152629122738246404363204591848918259547320729732756653496229214432296620129111952680516239633716610918230995743702338408849159460410307592639365515898448469255138566669663427764706202433360747671128098008696333880499086570255518543249059895916795743382034734270967355865255191587685705708306869687931874216578938440411169936119317464774283274003750038443787806323406369743228292321230974428605331848399563683226663687521956108733197287614890143903392735121443100969532141169318982201379921372471246893889722548666653041197841360912455337092788015477671003754512292575433262522467561871487690375279576155834780849713331192544784304791944841492130752797434385411385402325294460729241248869005086884972552264959948660601088273436808416646331731027876510149475885442858982841515637070442773679666742194159419830398561101162887180245777066044175758029619844293569633349760726357383596079753922277575518849160485346334598403530351588208205215278505162385060092581116405255921560199341837081620574797273997274179644069579326021170597594389699368166971423922001159148228494338521227633364533042409940653647338952894759714193401998859553287869288416700661339028422280155094373689713362840158345269504202076884513651932388563303769819086265513780707473708661778399253472839609421180076882466522935385728337076849063706296548526024191532070076492921387969652615119317609494138920961675717732365378179265003368203769778934317410834789862974553070305778055892854267699764102386232760426745291605432529113700501599319382781204845565463765557851663016973080688371218359423254888797835390933145801375097625123202729704614489495234144949016105671490364649266098977450678337017155964313520366537534128148135447634559557083750168098810435774298815850446048593839114580808209868138902383390969040061496013713732577174175760661267886390306202199108679169082711719949906063500558120427727933572520993101930947655227879210813340351466708950826402432852177212241447646557114211707885488143292621080883450853452222338434274787210592875865325019323268890736920721382924813834517213570098694843864818622098156720962229576637361109115508690161703069569093307220512273484814499329011346449355579351453911632427348625224865654831365638322353238369726375106026999663536522817823145299162029459360328572373871344333161946640620851902918671332153945983584523452466051606097256514817532714416504512432858482628973376671823539890679658049804496946514609545041707370509073502713438349408596273158110723685880203816809095868803723209246973381691677937953127489679460107999050999856652476981004406253824063335106853649323389824442777437942412797696434872135926403822280202795694809395634549004016281557895667605664479605753885883635444117636496408784970303849009728255289917430488659139128709219138443593577460606980070578879550016357707506830663249820405650366921268373291981032079231070503654001364244224302630273109416617846806918651091757227142202882569835966557225427195037663675899430505840794683534978742287143064605252951429819834839664107751055538058564196713147202080599164886288743803707343038627799170526296732870462691281508377046062960791838047295649123521983071275545697979799882837677342099281825268516579366873432730123652282873111147036124902135967063599724485585405293943244209007088958825326630687238508892611495160682633276059648377368352228277851797519934849068753003610079050965042029812931607805582844622856610083153388773179220041899184111817026094726141040359804104656779738842906781624687016095302821125005365442403657871378282698393912666121536937603231930717890628479184132202118287500125675150243533368603598767079262585538972225854699246940840140191713329096264748425588381747190055563698214524933014292069501559219177118894229848811067747334318646549204983561625136520672466001811408244943596997601876200946529726351065363247315206724964700810527997877658051169668355120512220254598416743648040714695991918693948381694694724492123917790533154942302035384511542315461946110876538335826081778074158322762651101080051364440583602118420432161791535416099118723799645027832879327484303345126196780383584161862178908154462648125718551737882584429931560582231926719568620537629911032759863135647306354601558171454246978850805300947373482836987102075735631662990646550629161896346384446339418886856617037758024938661920267993746760260470386811753909975038107208276367959085263760772820948071206811661347315531567882377926034300574825119155099434606387541004303650193417060743345650977374614948317903837161659407478557787417028992077207497581972807170529085391602169076485656838256694857667802606357494031114768789915773046782384447670965511872412648223750350743080827562403404279218150635703556896828338820225440377441600763288478842270093725023470697611689371318207876124371988559890360446372745731974166909147372851852566570545400112811912801231266344446836423134441607919867126836525614325062046540033901334730732550394814965162675902550950255993249687042087936612824478968305354698483940695425005376607653962169341578180302763001103848779178461104936205483518811269094902707036584105495684443998355828851315241698457105092530328813142741881595571027063415025246306608239616935015426237246791471404044316632479268621348617419057493098740911150368403345881988620215943772652422174859659470630978298928767880462902612743772812824450433749923877320154966459293432859259195981053489185979462656200799840768223780205016959578005511599482537632314647326593546374143437491456957433787963037062316554246541747052428160645873843485389337037635434196620536544627535596568625638102669876371121785430489271714434051257783191560861595912038584726562077401049377441611362295070704488956286831652031044801406192166208970341214060609040153684189371865686653544830168463204798057840745276573455955240746651948168384407642527769588266911884077104730015868721553295636876957999692297384380157762063280800219626896605982960851694851908740479989954576468711191878897167911666108476076990177398722962804679164821413396111411217275023806626279397936830246635375521597874214145122529583284521944195996790129049050119074160253818336215143230799066487829195688745510780576769909325934576591096420832609248124272717131923290920107135673222922910579016611277170461587828636977833063117330817775758196874472669965489549087251886512383995075857141636061307620111838446444291680206309309640503922035592516804063249247209120601754881119516861306717946457753794990769166508609668275603478658760052809948285456484077108841409419785265441761189562654202155799173811250667456025605958952324715825071194072510531223562026230590382057103490658726490231351774684742249162028582561424181549042775804273449997948200633119964527778973459181401938774234035031074483803849575661743363827147504376453077055913570559623439341269948257502189306067672853864963423818995931862572074202885389664877745616166046448040123189103150666239321051768913840914318682765539455483655355012232657422860541193396941258442011610052173286270032718427089637326441695438199213202238766148073315787979753153412232885429634463843406983622809586665401408133740211122599498778853167010262229403607052424057745654292433249551992204262030447592886723223064723226950790100731167780408169050744779915695889989867442594367316067769110535017289840606217154227598431632329896861454586944891009365625230920615920714444920636384549734330871585223526079412952450239138111247902670457721364879982322041896470070438234827619151732314225989003818793638330939024949801010574572454574987551941466751104928572881435318569462501649337960768902882178593895570667443151148670574699273518718783350354423724309323273444065719210128723931960842065385223368542161358068961578742619561045656806148526898753954312537025831664675934766982799208988982285050175873741459301256823851904023118343943564207229877772797557918149246230988981308481718502691953792270890586774968421558693549660918361196751518475726648529408104040337808065395785815541490528605266026920784803804646197544449163272120604040358792257804598343076412043273340257040924994932503263500295745692296324042984751859470792119094606858865419213247663399182963107001906714641438575348318069413134145110851523242205433265646633832280371891820282145401404605579438021952903806268659733258642187665389621017519758812358160806167951593078357191417632172375360299638729768264784793558289934067653158434494339599189222892415000859258011751675924031555672528452599732670753208533779711366690233316410919710912482090182609953929164905362383738368980698903850866685316076439081941184665331348645093053802874676671276905895305710539410633968391267460494219738586345090634083276042203426773603177559530932991291579681973938232804654747936567303026451063193536559484330363998359087278469640626302605494289719265454178895281162124460184804563139979486334642630964260190109873959476535127463798822239339378947780905876947881014971073577308000844204371949160874162424771121183484142908666779339823238839729316311143334542340061794185773562630806883160378291051757545644925036208952162170626166146546802410796038853000051600249585164370415251188875319229022488414761915024327940182591337625688042276301699299967842727103069559510284972712416411637501558602009834387711171247585360872614847447117006382303976898918149385683394736761679383939985743106699805746561452666126319648737562905202892772122035005462188535978097449305246889228990970163974290155843118309634030229871349054207722921854605579699029322680653865902735074852124700432846341056650486469098413311177687364751385253085667611230456592187380761134964423817423179158718284002713201681395679689352072708038618872496641664806193725610290605904079666939300610798223492955611897656965185571971174755220412469996421665698971843021256228352877989877535489390197134594530852633491977280378977502679295017145352872678844154383741696644173449891457566779771089774456980063425393752605431430416169544162464706175565912181191878051482124606315869200888622404007938837152006052020553298804964366512386494214543425293439303896732945970771157277900867550403569952582435555596301692265953569353576394938547546833512057342101287359863087746436786068891183063944349666970708358173393994097911896806208932334867012908056617589185960388978376377068103785684151729353372324643607792385843630058041238674162548202576957261895911338144806258919031450733137259406202259091034788030940013785963370196950254646114322917164656948310665703630356838587340031581640454017640311729548052231722244490394481538493155891739316386193166661881740950873801380896857599890373067854552698841520354965356045887159178124669628477814259469977919560175977630048237919912188356433100712223809819874322919387320005217792510503042069685042213587378386200058785541902450854245747955619948020749259902037746259640329633047698572144276592024997591777577686550018194629299796882300413544900658194516646933384951394541124431084286865155802407858292082979267486239977195246013044475828805521381294195608905060847721501487531558175045179072062477108329881837825016600720383612159381181036261218127772420701586631916804100690458155816281977203592359480263616912786282995009676792281782088237797201411284061592050421327344294182771925261984973764564195846329372205339638058652046384034905940287479794003275176165076824903516080442775309086698786249583216514615982589715962899671976372095362890428645676530362968959451741169071706870872915987105929250961529527308386189951949545386640245434278841876821070659214569166175025699421976819103363015553963245171650267588621910429814471877982080027436619268756622033126736198847038613210064815412910407884052682133223590576173256034569409171491183669155240867066051164700016775063219072234480541753140894006608014330923605056433456712097230241857284134686433068986381913260066110942509012912682335692630852174175056399934331574876230332033022804966901772085100447542539475677526496749178351936109490363477438867969091575930586853283830941419330126132579105821952788581767075995032961437970899294660780218178167197735122941676867266833137202997769030961943701784620631234499984122001076495002050111755101674181907302207965132348127285444424151263429136195872600170729445773169189690297040064365685166747930334078607383346479295914450526364160836372917396846630182061708686502893696792570587222973418580938816366123097172417380895711163414469763058947765516115132080662236037500983458531177744556245071358217286931084894518195413745105984573855396024369331327347193264844490143465792274526009943881370188667034569677512305857812023251083573596788915672344740976501997692312719787870039464632594539908253974880296421645873399228201322806473996112082087036920230079115818814995457297843416283041512122027654137806587265797704031334156798300656086458270205342761352490785640125647740827276116704178509835983796203925335343268028805670442431591598069270335468043569586590554108704994251258144603050050975222837959615374813788878062375995611425657139770467699239488979109388851582416564643673717886751998504318406784094909189631759405426159912440668561365391426159902128059927517147131349489631515396433730953367275289483907515655036198643398248140524008509487556470378996751035690328893879496099174307166189260082291411419387222828398035618635805312347230948271047455702254579033654851156255039100834434897182493143402850811403823569225544306548453166549724495917137468058106568428977262113909321465823680817097295723209954674523579432709975479118606000450158267971900022583951765304422156823339849527049682096179122538530886224845069824889572884512266649232405967595360671502838207095521159630298655068071446004295272161891619229294808662547907773040331423862889575544344645495095491589974597626710958328637457001570487606616746225025092283100663130032547808158366215849618136739285031905579528958774963318565792009258124627536103737754313623736778331082940846809647756473734561522072358962010668367595966587897966003558055317623593035859587065543050027799587508838287968828795259635681252272050576485282510552476600406191863915037859097271747840384258693130572402897178105804294020910597450945890194046707199011027922740808649294398012139180663788629069012920051542336980041443393541703918311250128430206642615768737941866013316386733217294787690709642328099893934934652667205563282963524193702405325149672025364298921917957360854337599446356193350268070565889052836435584382996408642635783592087427633186299810201169930566254053649076319045190343026636847051025670714402371388321643002322703808213228304621586656712393847879197444198431451156379720221957702863920508060547624518179328114642894510003176002220620730240123185986376941447870488275182720038296120133132126493609596831011355913055128701907767474812879526964208243258140779757198181538330343094104797726819102073169452646110952211088759649472717065414842962784303113882120742660121487386090804836584900725731004861582480212790850658839519187167848259663161393602698206520270667840584931610197115248623410585973821214464394422286638670431282388195978671013158060104691697651881641814013118727246110835756632687708969222685464185297080807489353249061157857091444637419962411352669118855018569105692650184804076833797249766734337054376273860111868083271250306307884433753304924333630368723379073397300754739830399508542906772519528703067722440063203947309079735360517293658643674093506569170715891912103698732301671668755656896103784319376512601842269650456237795121990003291963597342873437551873455541719338541140663223751146575566954452324483020620881816933942739831637666512648552750862849190706842332341719253462980056200073671259358201798877421906393268577322103048254144402904658130847626261388291122399295304621809763880551864753380604914897850929586106308397662115139549852074968130189893069754278729761836666439098359243275101532653207360943341175841596470675145128495826920440616480554883785992611489877137076974603170302932497708743260562184563412525547593337048449454273553252802176082728126170622427660449684176181664952338132085123752072531395446549162977686276271195597591096801674321189537085571791210146929330440267079845050209545721437563220942737313643835313842217825990559659901050885942145663246856902970970253665949409250203560587065392672679631508478655869355885388587873802000795588863818485256211421212368081307546495896636974948377269882955666119794051156927669063749949053519915531522296965995897584037413919039803787579234414563397350740044965130910997713756642600577814189877759627939555243147633955907360390078584413765089235534419991627515192385742327835141963614096241110748175495099579216986011832337837439806819096024659299425282404336252395960145946480860737595033172010353133746134084816402128754282887437752075445930835856416523533616670088548033577005572583218130003116637115420262816378399982805735272549288131433834039357557827848031759222060765121706412104873228420930067578551056531145975841729952950016091766092059965417255447890420750990927009907065254797441450318317022535481012443030064045966124986328335650171206459794331082920068370121678127883796180961317139749431267197484072910396603677573860781260997445707241118565421398283954660679489839598699711219989453931785213322175886358810425556239317671970596289248515569604937719815279065406590211676960313535919582575485322969810981650644291555742867752625631418850223001634136620471995130583456644526732755814832215532921093136020922663355677935272763242424540518141301808430453827035896104922429285901025182601851364441790978748556034494319693550162122496385793463394116032732119866436424508927206616365298341751470617078056810610583083539058328551182699706025729627302656341899365388797034481885377146328122452122776237295662241675367570676556110458599610090208794874747944489467137278627427139454077840525482556334465566920924740426058369478960138236719881729856690706678047396708061283537592369182668316905327268075775200064048976269432712934094101096658958812576156524304096238115215757661877673463896254744322539082427164984775461701126749614049410398391960103479292598075542285254771536061435531212723288136931992668961531733565284380143786143547348916145363393432713960944186060965776265482576123965818508467081043557765037321347152590523129717759598259190190155240379808063157920356231551012509215118984475688106997886712263948765929037652423703976010012698234141631561798831403406609540738391088798483343556051999206559123281450790069675822199984611511981092694384850264430596878585388307412705167552511223674358204765149488995785800841497936001060915551645391924343170544168706976200380459931150147844878655554918153357093919993744182263599352581533679512804085219195539433912869555978512733652930031522385763301286591311582321850189488505800291014754118551578538498087159075717549687950481958259435196447068503773503591646338956062507438602126927474396467818760969342737608203916438640281748175975653798643035656083028582987198725615505812508041090994254625777057559923676482736163114397105528734117384995131360269622063470357338259562474281765100944365128787570293518955497249900335117002795173344206791924211764970465752665842996460460928887435149612530780944221255703365556495190834649439558009440809090567930326266427526291823948231851848926445776595461342571146954225121427572388201865883893404837276653089778753371796649213573844596210740619014335500735148330234854673675787504206202083495309443767248916301463590056050442460726052292002414178123507004377877962748288941258366151328233697025778024872637359196497088190135012389255559170829800090065619974630311822415634632322683841687804128273380695712403283602616256507293116035770527055257438948535337141790468182610194862375331144787104254381949821822696058129914222583310383565551793438393779789498846563160950892526799329230482093591716430481399521748443993631665990653427567570753506789215477140994690898653358242581445838705890648646408355354191220313778089363710435878456725345050218900848015022690116262561515761499577471482798119722991481252799557482977385159811588382387827687820882133689682433406115983886070427923996048432029573835613762218787099027534383859877735647053785758850639668593756718881186202211793401583062919435469586203867842812786636059119080420575756135484519743941061046198724655643805596225069658578854007315830867385475150709328527507436394480888168475804603835752591961639299861645985537145100662847313643796601946111406303809842378499816183574858282824701874021440045022381834325886864420054517869324587555924563209956713768686568577221519614340282561414041759921335112861261346354903746422180795134453084721553003209369447806019589013636440672549194865429352574808075457599028541354217648601377231327194917115741831298322254301721928745103324613932922428159610426726168975177278770878053770556646942583342976971341645769381848313052670158375579499538230384295864124293296319821997078201238524266506144301244412286316750214081342176648202961670643149276178750488479126177944270673462295234013113110696139324734592850553551714752518606286938016005408566136104990334144040152939859550082314894728247083793803542656686639499865985674463699449137175425703179694806692450935888267643564018664557875439078591813786539097501827683075083664371152251408244586580140076325370879198220531963016268959005717343123682251583935748057370819747097070949538237407653519294040633856251334856117480314831468467875743309150908978352389431016380031828999841739358611280350206571603937180108958196778997010127174396605708136566175508657000567549689436995853453540603017691516452323372096018674997002240408929118192188520121133224111166744917520786326589820345158639187657073155389880862211274277860979294469632210892684213636026411111124314654403417854515218875865220681541958944218368180447056203518400254213296856277768764354084042588799362228995346342042155483329905635768213397756132354817254651458653306101205602980063791821761836393548177514804413941999807012029162519531083135059219718275170490556779504528947886143019210693826432663687638223216491885608111152047968500243412047876122527065321552943666645738064771447402705690589064053862899546983762234564835096742665525861888784915568874702988962236150638524204064539110145230833966421862081458972040942833829091193197703962027070373340546652187555793273314133050954852255919830931325228666282551561164912330308033766239621888870100869287630442392609686164941561209683046250069622519029501019004689252732353846706307598679775272992436665974572071092536996927867839725006605563847270565798191693835511137328514162264011281363966685866742390813695732012854327064813784365103184291956433356072796511150588495018857021294634216411228327192484832819937777375546716425568752300396589816567776707041790135018045603690319479298300612245190247803224754950304319313277652863582975029028101610686847015672803586683793471748925842608102702812387372810847335804452128971298196616256998810803190287258173428048086779057068753427180513034295421610006134117655350770154966734345589457204810390065889396102927591512294258879650460271949305888004416067993215863175887727231033104846663765155577872016592965946578023619225238689776615448264919324682462938996445305201399885403360779382274730320126178577531624929201981022092026617389204782165304141312293989679013279114874920385493590484183672089095821217928228331564855313351645063433231728353285809277935075972857606391641234628487879195603810625772335069922800270706056441434856482750532941115809309488177817057619211950187680987958171793235667077591562476489163305264678392116093579313609213421435300702392599657541043490623779499416028930464820614889875832064750755944404513759855601866656133863430369048667937992156843743280694215586377414891607594954404642448905309092518306056240876618527302845879480253634360949322606642875560337215600655079615034687675640245618078540354830065551716786351636358254934783523960790879648781408999090930763199415251556925240739484555335221598791629629347089444397623655421155159952170570072824818857915204988212611668661933978941756902815594643191151869205210036246994656263301325575089537615383217044435362205087626510929623401096083528160915170564776794554683179239288445979900512196238061296219292062134488058357347258622679707513342894283570356152209830727747457419434232225066302387599396579973242149196673107060889115672060057371716100134191003527512267231153910629946069969552497081170616392303606151074390275605796019856171462804912934154243660281394114792460596479259123078214273317582536560363813647942246161216173351421071642210261489990744488954155969005554932942735361578951528069103550922921929174243606545702517880970770691967280552292052413656432868074612466832886249605771676286631293907967464489256868187466109068354585236653977875249495430065763561816741489658094860307005933104722333524584883784060650975996219937922775453226461686503175983806404541169928301243714543449689191283711827888482438415886144229217949769279464678864098063508661093662437129269933437655021338584217065628952980183078941019764338593910846433240460904416440551317482532691116158932258324696990338707650531776917078642563778335021179315452812611103837000398234210107588131185748879413619911515830564095906702401221941429898387474388331614100710962025007323960310140010804245086729683545890124387077452084031704389742268947853823502580520979923731286521806029787557182109156890811463410360127892978592142822364840788920127537481306323356944766593186096002104164769135236647018540691770682827602898854471683205544439920676177583755506522841094385749766706101597909258223796109472871805234241689340797486445570575886244886964897176510417974762835992659981704947320291312279473208002874755312868498897312987605701962051459200743586262407110357231603925359414390222124312722265550292218063596926013319743348104560909009927877389939471165780957623928490379160648425841500581556943635724990363238497947374496037684158639719548475387509197139178910843282460263355262160451600072623943645641107671229273228043976278477808824828711549833386569661966364075260708899944771029079949179982696378237722157473790773409475798696870628323924791872336364227500903624300694019775601483440667792926606592796081736409717968293152408632823245230127288096971516097978162984819894096520373863793241593439425071864660040139104543134270441066060634255099558577696698519381827589507251881924644040344580688264640296984174412032399336126766676949684359338352371825195786902955665923627576157661191650803278975831516318328972729194358876986684052796616721655717506922178839725091074561715844665038279617694910897802279344752634968874156549008472802759098724423977261818985886501326725965381054032999251120871632210650670960084619414395529839645476136093772555264316447475456126095169457874650192797948291288491248051875306090509462655427271544017268610597741819795491312399604232737744528394840833147345567162486049531793633175155749577907590885039177850398500562843818792477368686869419849755911395417524639650401918830439118688756424675910162873692348472813679322140420881162933809033297482259258601132209949240245849151749293456466447533343098649193937461601717259861468157095998207124408113176988042335962359588237734500731045632688466519922388861826815316772002842167084061006089019851313513142893016103292735765521119150848923478992448548047629535321126345282220240915280032324243348597724119392478615976761829155490429871517399738747699606921526215089717142267711434777872824785137885743784338152209126333373887768241334503544819423265495535287264990536894525731870689658547588002752905005417312514469697551655842893580696371975912990784486039812542887919669843087708932053676873383852450041101937481330166506999049682456789701160093242748007613159155351754297009264576047776493416699767185175339601164095292709573022942951494464820436226783890971259488222811437850604176904265943869270798065947546855573061200503682617952466768636662433412119473892539218041885993333902724119679340748465901985949746426501001730522216735137809474476336416558627781470541293363417420642703163495511859099113791088863430216061396570301884299520508078821490999686538190410841849727807231068649683816101251682165829847861054406939273417552294960050538853393876027614689663151510622682178466829464809595264302924915108664798785057058647770731690805690382490299483785931340300731975502668015028545562661287886585622781830015669222874918751684211354148313425425262968259243969456794337328363280448623849907363939885291795386851054037911644051184817115325729053509806137056412973026655688413177487205031531812450504791902823714176336364640332969950164176701502579087046608950544783506591989696681732098913892204958725201217659089888343359232397186634687114664659246525855282731029152936913473908517317161745239191774069127612365078084276066281781997834412304677569109293122504816542605332167011245978089278131909544335045898835402463279792931199929059111100777593567008609879530624798693658715322660504082649806983789700323733880430106846447951093537200844961066180392165486077122048030363733745704837075535298557116725203388213403671028496470404245966887067415973239516475846454737829975119548681436345174368717002945133826085195603157578910208742847015348043686649299011623365377968836028635632277356599070032204149804482171911409158916059561162612106087635211600426036718573438008957800016304626315764070006054127214634975787820447245446792156201706465885463075630971411496896749393759250021547498806939301126908269081222202548098742722207357447515656012255642191602293976489121518064613859347850575592162576781650085040725471578254666173621403411053434645692897447452155723388528461071080602523276029374694703380525748090372786503649966346527735763214477162908460301095500243219262914392597862994165831161822624713894656890473864306064457065298936985888780451702742949184486507771853226965337289119908402972720809179244028036650706203841870942206155569718276597423985477547554148139018546093445878071386619603766468729469833284883497552663762811819534549530473646497602303992680991665459528625280863019732424536845679452968739330269158264949557879656216056145203960478877387646259677361891434867469590108100720933676944001081847285131053033263019808808092579643186958243088266200602791838423437392007384448422817655351766140769931495326723765463516896150482081294562740732111992350751604500172005560337343706244078053782884179210641287416665001456689393963807326812710260718677881825498779148143327880352514864826819127968295265108129968676876389277439063937138408977879953685940730962042776238482323957224639076955887848209676172388433378713141534349465470966169435388200108965235709053281865182872536359857863427322877514689260293404550239209866226112245282461607766512245222141222453085808011875888040786298451027650009564872016240243860775030343371821876108263455248760668471224901813633323342304894937232813674885540307548985417652429807979286943314575575168948140135255798047652794557095473574184234376202864051494918479488933207633928843246116161863070884948973419990266399834068309697561207339806944370819127415696678811807961320981447352745255399396940481364348059802033119843173948669277115081068549464314712459397223295228918697084018876432922771772490330691300992698264264513177301698972922007989346353076421317601689964086104241170828348840870488868552031260014949466510392055146581708617524339469926886890543489784455740271664189928562433609882193730325114592424077470975039566004153701886315184211219576461006981610860852037155936815070259493415536502277685323372046625301041452582161644858382164388293643775466952380241284729538281110959169974147484651884015963889555794737452053814025778583162352365338008923511239341221869282534572570709441412725737915959919978558122901428030767359147093026697024935436519245789168904225215175141009463539430018426363899277170738941228765478181006039327863927359489545426918935452945505467219352520202744467199518502242249964815269907446133913344894713738657876006337716918024638343714622458332328284988007832555258597658654433063085087896670051585192620093316040376132495254709836846288611956843844788845961836064395945605659028407053852819368804756159633284854764458521817085660864439520744303192966760529881756111802924650007601088323522774188768850355755267652929120172170877299743682761341283492557680751952813908180083353136834510567906863857279334806574135062115071500488612120933131859173535275657485884659998335506551458042042350796258839071551180256296390528717173713617603553380816687301494490265270161640565990190647591072603651754428810749710306888009776409334907864186040588546350503480372151425781116550223154796869456723348773047528966533462310458182268599007244037316496795847622030241319952766280213687180650653962438974273218003402935210488330233630104753652804781471351035338305611067269211667254034119881506032825583871527074057858541108126096137339949936675637843183972458736485106560777885760150000317050708764663915968033456663783664013186358892490572739371593266929089198928193732636497732576703543771947198870872950181385626869113810442635622256908597788875809364440905942960170011187596561578860400138347969184134338759940836860405784944000665207011630516618475964437833733860057087849413647701949891817399194348906035965217837497672159826276641492022773808062326954561390948293666389779938362036237998791631123264628829992885280138695952440768446533250181744009098355608433994982715182637830627421154926156841285669746683121507427419593414235700478235205955677418483754322815636435198300970363481284657424337613815410243259229455809431548092141156150635607536165804121093805475825950739210686613170449714125798963083416983121026887926790057007714300952923581660446820988157360350006136378873919605747368512080803359335403072756709162538166045110609119749417917775876432666140010121573018045311220045778570220285887416335604002678316953611928752540013379992825562193700780108193494769337344845388315789577219297212955692330811394714532777883292354892708683417580729449676392275775028139013839262215688051061228174439962302181315898137449190155476928616616353013552592555161737793548424783664733826401672937843522010121999761547182965904467435338522880463642163384747944653918085254900718800161199505580664744818678072434552594502468407720502469766462460227909389222451094418561809514284024892817736442601655710769604092046942894303514300695560563926185301767528679529338531266770201544618403143274161118290912658266367104133843413198678169811340638081564286418052846107446462490475849097179209989142965714975334783345716624006379381548915729651519861078615849590592199299561795884321312661121968297086452709760894568844738703120656112460634658204515652753591382169222988000712725341611190534931656043526473614146912603472341103298826930395934702140466440810572397805731321516843178230134629997785622397995792182357489377809348631449771738341369887303058100944512044836014303877810922236411250330405074786646760045752318240126805979973211738154291216140084214096162770756230169453975558659413535514113290171481421904405530108583290672732027077110088821751828238470523709802593548555138884088906334751345888545445644754523184867571549533697394200494316017392074339331952912755090305314281329446195217941064078773965974359183251567534178329287768713030768283962919569055232747557193374366193665431383345287043423685467153138000789705782912225079699728590914672742784377816035379938075217133992575894405163045131293172361063486212807034233495848893486969561220126190738617919136367115809260746130297649812621468093373268049593246964853167118534011158549222630150542745986976505777827692503588949312918952525700323324361499325971239657764056258208092650277400999676347653616206640888922119524800924770081490568046273309199507524506363494441552394554125463714913883597650697414704547271479282946769419176825473784350510450662579886285545596372670112319299871031284997911297437743498525766005147423416907201829445204828202137137334310736588346035163850925057193274505499465360437330950083494811771705100102884049846386390805836346337100238379942453570392517192548779013839934303211385302866839105364990727483620185492309895079390446671215081477617968918896906285714493488059956417851303069376100214232717211012968164600364293486649823002180156923039706378158679792638641190167406735687681164084697531261830547282477670469588335567473760935430163167246581774906914751355362356635737749271796670114541195041538150030454669607282550740912848386988495710270745090032394806725968968684161999434663680989694790339667323567724983619670238474435183239919427623107018612766493917807279473670496514944833049524030726074061450598196075679380359126385589554271016058594251607512178172968227552762314332019626858960053223954654650949203620499560009202912109263630780728461416928068641739570179873218721438100788737051813801261389138489433248358838744862106368011415887396402514335103150576343378246890621588240942594309158990733917384335763217190445038548755594538385796190334810835169130899724412811649491516258513944624600779542530733654386697955472395824613387122535787899172464816770861513759093504665623323792359882113340449224281789606681606776670975319730026837021095565190947387995710739713892794167322941558752393608978031359052881128824449032418877145694359565530170829591165194606725977749093604833784095167118063103581049593432196313397364109738342181174783390829200489239486107822898026844686619623301022457203809465862529100926265242067664961426330109329094670833482805362849079827879491088082891135235726919882375746233112677449813760521568554538397838871182513842309794738889269331282626383478788033884297036254192360942609452837288930342092711207110953332874330552109759487979870442010238697546331613750730395041411230958218554551178999073235028118919675709635009848848448578864750259466017893604134570370852241865239712368379365492117390679473982960801902041999028389598707036848485033397535853338301898690377466888994507166376922215362925299831359665303550518282050673163202442565632415922793982764045208451874634051993675412997896209164993411578319880571749228849191442372456740711964467497365470562308120323589149309413907508014373626260091231512291069403539214719994372302786500045140337275643271623522024448923536288565782616671779628525047037361630724889847610668035242124762728324758729834065482004046757044945944059484572939223626880139999978942063442837270977609827186044035378318608382257957400694391814349234181125132649420046346861120464439908006178104989836738626988655499885888208792299180856329963379534619786619655421015806284714185126072500635432538645500414791749398088709827333485506422501134858830448928222718951205704959753185026706970791065728998165712623438723224898020752413302562192419893318277449709323980036272878080510851871153231908067059605270399136992291158226838299479882112339513168251045198836431460141373529187170618085375608669715336719391708987828526052626217833196373459791362132569284386408791595093342812509921903648238334405141792202111007502067236409286996822920896882434292281755313894483642560146204810562020823166277262727132799047463162173954997925313926300046449082811558942447432876085930822148175496604664656003001529624050109137006077912465359163033515033424593227333050872545840171727452707623465983184912301052554837836424943554652637976351377347987973117020747339616433324889828387466188365514471741608254139467846230692790667690120347477697475027072602149009606805471833503487418660506163080736749061448121805169697719902074767075486736423034209391325733269716310417599681536398378792904574382604586905124555537933013927395654940855629461834447307842370484673437915768800165546196648113937050915696451503975810729675986039193200626128556409317951731065563399393737312530644763032805269974037721652925523965440050017360992462243549094676228026719449031634570211095441083563647785509285992071260464431878856184684152126593768031730477132231261960499424277532597975418372648145992042713148653825334905745146647466433383980126832032198684807477992071269523427857485676858187911458399054242019589016362127465321728457080280041005391508481975437546260178745090526159934046765546624449795660196983676738181297133076210007839465026579343740788634546961955864999106354368707370824249688505321553965377645080437311860331299649128053095478134321570060494344484606857916334651261743091625368384703778757637098259158708652186270893161759228667520025257736967085198250153363613750567903620616566696893236735894876194136248610388996921878431102542762876312544903805904197849660545226316375550886819347620335300619326027907697326142573886170368883736545921864956695979253766221334109787416856148232885939462168826841817816900767741962219491825830493545250083352350036058923355939032356667779267134130000896953421153855150355301425971999579753603613474279177413843623647733177842415694616821798027316121593390785127777030474177890127499670370189416186117509532515610014785516954190299839028340594017933777304099006335340619160392020801052090394718043425058159243297899767840714887668430812229386292567175541946427976917347331442936797445761035997341397257073019393746607024705246146985171629601989344088392630347365910879860128841536687516444067829971106811533135654244773011460449764680621230486995391718724938450059194740926295136508785969331319364190441803247228399736240382151857275370254345244727315231655900190457097677009398395606689068880994019251625294980567937513751308961468870359554444331628687354405484045614975661981349278908281954199319921647945949981910627537749494069313316996840532529504349226150440868931883389035619892196297653500092216984699109262813189183590050210201144912087804897422222647111791678117315105139217337454393717200974297203097647707909377359257091779235976039279864541101525011051586849286453876066197964395368827112771292206761497474255697156746963209825332465102224738983668087618942345963226768732610660472370947998911545435829580680576938377203219460843509124625935464925740372671170762802532291212359081861214903277575168602449148954106842120796549995723982889294741375084752550121803557578471941275838966138924741505887876451399997689487015056812845557028681179887879218542660545772874103536969558393020635448386670011589560782889268167816923206278802658648415313023856012720857686671935945235541624743885522445510696224970141100712159263038607308363565649876325619110934830513898131662987692380553166537410601334613925242187012090024008551779979749940058159263672545369842666790435556353199595661596760404736461275353323784012885130337789946972728872602159660407798710802698712629829925245956859061286479760447177123304590499154817952033960361964052842414712754403071116825939235842689120917392186671120830350002051686418622389257262820366830885627922051576950270081567766987475098381070390145970873328909301953672699605067566684077046531960171281919543739490831127383193559131137636491240049037364633142408095569515273182518596645446789496541802588213973773975964327955278007103355058454163486962247741678291530908681718238511802957687311573759362552250793678936012236035996486684492476840326237241881152827932038635248595398306530814692852803599474051358291296491616356775219981448478960763062436374469383500522379078398089511650573304159137408930793042037809150334011833740828423142605875323516957911625498245047757729511971455709747371961790586179336275378584300857093275791027266926040121108431332212391329147720833838441187303531868273424518290866829906668418785348556495904734015030581108747675427186682411166317164090028620017884401338382960213517336875290749430279447628316368420620165565578771906635261675208987311808467795923387853629603889088970137254159883070182253050232704666626417168848042730317007443769748226611978167869460855563493768606595122287108104225018468772041893515267881991685287538581256987993237466703520796717594896124736654281569075474567086967480605696871374454441226764632606905616424100683536630146513784409249901481370737694393828311614989207135433515685277359251232763346783226791853152764060398223239695166501802409878493252879330606794202568124553430018493653292059926953153799533306349698407900209887607495161779502787071939626623732240215485514967177274958420858375365746776267713383518872045181037614283046118489897092051810083662005516385717308446120874150648130709086932706853335026346334928535135257419048874957650135395189775758564707689480528148679353831253056730941500698257813293147179134152966804509359968714569360198329792936294976222795155513362177839200694682795575092411283972636229808019910268995713008227180718344011120781172721113205159869694487402097610501164475873621121654746690835737756289684869155234041119331016556990552027055077903206435274509034674527098418903121099506788879819370539278210643467076940961919979099180880697635257728363015051183387874237997654914818497485602303707325256767288075224411514092723154671371078588882402894850664288356133897473482115342576589049700081544973269496775657694189170209941763753440102052620814384054311506307575905868690483668739186446969483214097133405961018744241969985524701184298627017133926125459067633482760309202831394552228463258825971194305667687851610372618316224308589212404775714734522427141878214216225978697901451061887723940246528448839492100614811105156547356475731953385074512338634532284326933463174297195648608989126296689454455122553922397333017715908082710481122152427775903062845991909305172729995097599575847872013746147978486257403514676036286335958471836998308859031179680196741231022866227289090413039425897954715786957883688109182909678969715542630967955616879410975308862966036209514587619492620193405747089563983500399464832320512603560951985974963634780521749369689879131475758761578455357620111680461684988611116877093914301050279619248312470188046604977754850757617825802144140015731788803256884608133341941527381416085404789459345036576911824984132297225812654982077028390954653925709015341439848181427275967709722975256204632378908695845240939752719262037670760413261799151813332893433346849171258103804506909226430174231570575339599890694840914014625661604719059112560648176986958802168039679351605174036032238341084917309049856538375826013897188384449279075646029854724776669511287624890007367186456338732910577573593725879007510985260550694724835055357764229478416145351454678386748608050525592260130270438851997465130998879169632471080203136252546801497739533968093102561357945590004532092386327944037195969921283304673069180940498933945368901592764287549854206735374303527786814484054839481137120123493352481139329253391553558281787134033075601233679776931252205596356518153031785642190573909347452369453591746220824368319993101731793565105154974228901960384755508478836642956312631073646782324871006401913886140620416733723255464159564272592063396033052635272095430809286419917534897660997876619972601630811889382118137508592040161409795894933250394853751850527770837807896336618605120657744596107996126618378179147154473975026568531521423557749601735500116815682800495583898153944231277638960729929216597173499479674099225277826032006337142190924274159378295662191619800760823439783925377783371061479144957850481373588818111381510653261944027712681509523500983954884925438775567517235437843186119880115424661909102165204846168136381043427850898658452258609438698371627690795326461553538169934206456301408336576265643078857945438820321201274139651889032544162877036486475634148323025811211822299289888162155909036550962862827225428379182274646398598728510676215897113709877750301610158723206320678813774220034355267240562140286471237500467469072402072843837458535513404518853194030050676398146619978858052579255400813105343792750254904365188079972900481169028775140701190109227230005375988979174401541938193291984340197760910015643423874216315032719609211098387221142581064502366869552025362104522583579342353157950176770108556304591695669191321286369047053465288975815095342286158350282388444794041617773771828931302885843258662059764628905534063176474289401586965550366219445413705909107111646863634652227222892565382567766692810006482303076169079667053154837385966620262793585531448918252675990007153318651517038726965517088651337315942952811697532514514322736567943978373184481419363596244985857963908350022590079312687404449836929444924596419936664441439608006898682331660247804478563269171477001338638797802578482153315442485081064607873148825578478049576167016872946371154118163800963616002983675862852468904163221207878021524492863649076682159601965518578345315605474131638086464227399562093892527990288701417868850676374549265952929214655801443429915956302198153557939515288437691287469406774423430324837121617721477348354644324474484764692338168003483993600649866260735390109625237926270607403047320318316656137823270406282965400681764677671647156758640462463353734709200807399528212828013887529971080426494953086917543726589169779597955731665101946245911589906433119461667409219343738845376850004373195734213419806659120726313626208424448096180972603925164691140820739266247790512973737813938114738184173108087135264311941953043113613381404098543744947080254191915160836807297740564490962130575620666824202263720804657948108540035677873709581281129312770033117002006670011027241564633085297446051006196423814544059361885228705060087213137399938581469314035216784632760739463233174790056264033646437773615905446835456624094270060174972958205459818302643614650637241037424702615003868863071102195948274547238934073186214993026483577974881399752531025248961582002680605799051040755990275092559288338707049607147727860448107972330968931911265195854280158041421053394644098145984939034540718903444400698086408101447755346597707254456125306580960301465140419345539900621327279631542322832530727810645995912510458400015312304423962026816349243281301997466415735117628346039665682833610344316318656303345280897310275199587869773769600745208080996342600539616960447909960176618107602012807044954676379136489047554335764410341741067181638663376270818182113207899748054155070310372083169048859437008728769217723194047440504481955643018489711339290604517397109025819758465680307801761794467765169476494692695349179310579751265701813265881321146140579502958327551873761509658159060109773499156295016450894872222680256015049608123891194359369361919405069951618344669564221719220789098790680296833198072941082388884178267501547197047263055908101868576544387134956216148206325976170487025458073340162095148294689352442460436502507727481526010381065200258886656446257589566324828516488024113942189487454322575581314905972879132784606689619599476964773081939415722060185084051824520375615299588488584612803602009499374707012705251053223146983660694694595098932366306836764490061891235469827489385297198205820138695845291444070293536461199812132638688939407412814063502200156249671188984225562231372080913103125515968208884808926210629855932332787868882819375265535478932720712287336209521581911634659607584936239816714757012993151719416511888780510424442099494375224340890285333441149541031079335782223935433715225255273448294773851011462462941402193619199182958790117200201058023482971219493116920414391799482317897938576571930829325761800851637398768670040003714457142002448549975842051347209915415508457634589841062231566233436358959674582248667533082152449509296245302242192874837376205060028887970869695343218211450074745590046902049701641348642851482094625340129964206705699699072656293538299863872400747006752810041583164079385256530538047421666195044919350274135895221615501878952730572858009618915613447819860418570623916934213322430238339455948425775187804248221942509133889741916351769481005351402609409787230535905700804925555215939649961434397112627496996583402240112561320091765607048408168013452054451417620169472613847954230049074350053530505999289436802665418199982282232737116491822686621741909235512483941210142164347360533201756144775743818101508015776923273323818363301449806741559610148597080251454271510531619094393315112183243277061657272607833754891902567439786161389229407140450914672364296604121083216655447948683383341235104786498135366172321623068895595661324393080220397327010915865079943949734071404790028323775591684786021035066064855087057774668184172124670710034239503992466724696356918286823648267912735024915119148985193341147377752875668391619100685036805743802939778238533759323276178385296377824813223319557216502923510690403317885040630051982565758532994238605129487996556686129719333897078279818760715064850961040924025069501338713743414789787793644720502824990751048491907353226821080177436631296985910259485826171270159630600168489288776310162687317646410499747028626894934514707788254806365122615071652740547208250629350200592540137142118045917216624683057081218924492801134547819229593583876836846478016413724647370493001525211414136984282602902228865472182872513712698541945425186042086957348702509495210402953736405364420679543889814928221399079331676435589672827894741905345562246470081866172671576064562786451108275943094784735411874848743820806457098480000662069523864532051297779951448569608766484614884712770680488408524709051267764008887016693758336365704362534912278763562867100106124012283164741930408391077938330297912877210983875866978271422424623331473285105065465875427740452664764533423726967462839868209118110417569985121632928182076214247037708721313450996577160683749887357761250227259428100818179630233463241534322933109600245154075673849131457415163271450482677039602921856358569478541133395845179848284336353182846225996858845885794455810387545083434434448513423339711420572313722549271346522116397540823288316049933291390136212389158116061406408707592922895402776596065687604136933750080716458300505755914181856006371962132432464009568004954348571751466707088840296834161667856648010834856142989813707864988619436020303071927175960302048388324734660209280684232683969649535996958682708935694718101791495544484235036820538418695922518303182461393945409000556994919984189475497203073157360243445440759485635934279466722064001924366802822965277185025067530620253438769198885330431381231539993949683449675178116946848873870397917981008871246293945827959699558030873511210385055626130771059369098210440277839996484280962150587668058275928058668283297057794385394849351362505504373280539998544287349260623546862863176704702023499330559322507757121430436348151400970225499340928561936891694878516592104089819321777290606154983565290085652381796736520408732587307089835580948961984381330631838811144380917516658155277794705595962992021251650763668512282867349205324444841308683265720894152448723695902023669484843045516849631205193791988768241246585933303431245339960995654388531672347704798917820291827869738813086093080776644543075166096868860361021845944580245898240941328112239105758570832965303483325015384930157730616870808001665492330534076512642862836286309573825448576580933693635100568881324996266994794984116504041068120505392063657768956193915380148952207904286488443672916017276582073661952585706046309118939672812270945049741455672400969969422996288662026607121084469568815857762098936239474465160843615518110627987436529346946869209506796358242492481135787545796041880323272199713185300591255102384077291762471139350973482901621132874934067414978247666917870417203676553306306293700833265646096355543750520182379013337153984702082861840505433368453553450292042631853417517645288163599510342690152228552168324949567677005120014150869436162935229709998054095462146124221007190457845148539887814426145857241603929476977728612246089955955490656011524896926967778695763521078114882934494653737707541485020003747664629868574302643598863476006115553007647393011157900590539661548463778690326941305751529024597283617022067631533724279080476419956675440819814273803884256354713838544411545732655299003108545495176082749859395217957728673360995114143042587702648109579266011108879461128967023517597534572163268454367929869111421480915321613610888392339587853354574295451534271374209519910893488100794995206897994202667584263378152115641039510156334775280166278378564057794330341475169616337998150620283515025136953125806724791482600516328274853230999208383333345511716070922147508191000702245212520404570418374341255118834651404145308320323842892588421559450671341520597435429489068263945633283433044627037324656445672646546598797188866062748986578996923461737460902655013994342769077108486133952489803428771425414235562939329330127853346500235673941951681041951242756884366914107827993159864434991080038074659282862539722004998588074862789372912667125426027400090596931922865634505968623673352392124078600503026218324713943151062499858066322653436810419318273596679722851693765217153521873524126344523050856290505701001360111552608986288929809940756640915673285731116551041765757388126225463878547243681561983389664918273159912228229830659574204183813274047286708757604692927119014507279077570809963025935127350882689038864893422869157657082177224589132423823118027675771763089792730532192377312303646321053101219378623494605241647487790251228602882997079675633660470715451811371620947504311579035029188140682094440913683629497028543753269431280468044834039717524821853774860818224408300742599212210189371675408873703055491939804216491568776616284144960368550002260036897724588672601995491125739563605444509083706965277455408601498539232160400515914571746861866451187142756646193137197745439476371270917447652772666526490115407851496956071269549249932177757255155518488727740815001669354152503285700485203374241838212820611583312798627702406125029151772401839716132569850313199245342180229543140141120430927670509759334979026607039260986872972016958467203939935827813316877432309633519976665271673887971772746457321237273593482731265839934764567773970414137007168652601673361533635508041157757282144017074843062461397794960523459904430378452241014393222475400602587090350525796694281547183615987356502228465956410141730514206548865869185384838161138437761345982834996544773569578657833588955081343472854317097221021256496789417407310545325413626494981694319212700874325735978569230599597159714330600243262559139440808406822447401697141050780321302896646984114996401457421094788709975897020236831296065598083865862504606214489856710930729084057313647210148916331410022730854295960555002681771028794638395975002188277396622991690973686732092189330333993532988467108746880940264606414349184863495031279153180439327142980469083836821168191784540268331602071504680622343318027798667685778487278086744724416821623573620922592081628885617183248723082843457010039449007544276382874767713996962321462303959130093980093802263063733170181631495307466789465965638976100345878182783152514258755267563927396040719574324161254383764743770080628650606530736220930113332809849171651712407913329164019659616008983431438564246124434195358709057012936905785943317043181353327033682912645990366590989829578526096398721521341305109192579698640326231941143393122093081503756392716570558844548725174616986683830412790431862237508560328257956137627074653552655404376273775083918773376581603208903820348561196650162776791348633979609480004933902858544107964614245840304133423475908901419879685595780078647453291072626925822401873084686608134998607336506142529449265563120608621916661377035464857582560947215444648817531338998625467796850300055293028602267296196159165644604449648817871340915668735938766052785498226250873069806241884054914230632283069294353160550505416555196169729310501173924282857983395181991900174033284154396925295245069748398919937878337473479619923807205049074370514669292189585627077125344206100560469311378007070743022213177173062548056383995523067659564319187393115470891142379758017604365612488461828997190301204540896393189068588075474467312046067442890287565390648804437723422563057705437993895442947615433766535994715219328288962485612849580231976686350993814337478408599417488938550986714002318187811718964044861618847444192121036428326295276824999077637348024040228419834833321663015269800945072016832544543999018066085052039137962376747240830712062224734873920280424102650427635095590935285462340518583128458345821720921966251592906043346512786255535627780598785545306562324642419979009987647262868809637032935777140899560351085226684926076452811083578672205757976887173833580010352114970581347249542028152175124144677128409743269295809105639787525870114442865453438127688599776556711278237230013073473752195565068103825847466606532316174664820420380867437653315657297887492519545115571955188536651654034716561301718750959034747998277630443691673100690744075115409678777579551766269410176034819757779489603810657247047244755877242216382599467729979704068546340075066662617424120687409993537217280824205387295847692731578794057763791514505684349431955099517653925053148325733067822710076553786243578543162193318101240583926360769002790402773697862914948361220921960445568979052592438530483981676420388024000030948686161720987322877569243431238422795182064722563051631107971064796123073876906116719452416082174748166610394010328630836885818480820297227913913993582298157018642532758158278006253033123875304438421711047569832448180599391306124560295087939704736017951209437366187190715234983296743999533481010160669226856600484481989216165833677574920630078255245101163482533259352003869533331446893109792206523449371092660230527866981702197374232553604154903386828001256377487403066877147214714841005447681316517646005998898067127574365202632614381877263092570044549244701341493980968209856906589011612319938703211283517747337679998151632981064657216232729081618781729644420786539248249192747587902653241231759178091762280969714922017554373009797891662784513035726650963214168810184887498212285664928147179117349092253697862085343009475998503078461983840885541729882136362349560308513400125160047368632045551087548203081837921520380419342240151593366761753743436475475148806186599762480829625792545980563402678897228741386179118929509597952381761340140160443258360069153713047362630147930320235672829577049689520657726832759655910957996211540419700596308792053892262981219543537404227882975058027891057221163117131706726068875411027812533433737961053870855750364225364129713892496591838873444143071192673694791770951093957290652084721201933185763783140705176718776484018556603361438583924005527513468358385164288399595695166662538873173236054188349546684720421449005973351136419176876824114135374334786995001260179252308205268055355973367627952537782377094916843509260859728739035683898055818264487735606147053658269589083307693754865974885869571784432085370282709710755426832226738703085822856619202624874128152951911434082608458443078753983390841673115576561217410238756060725854903774292427866022966531162744714673466726708376402953727824510154296066321482468553901452939567287799863274078649739989035854350059716734905228096577011380626253468443218997185526088437795783844380917238815580392865352886023617025934012377381562717199986479679466825514561461131061098987049724205868804230576134595257797019395942010945611687701086328852483925998794812983178254487507177331784160531911888320634611450915455519865428597503205643407693035829584417070694495689113864559364019596372075024000089884918424983045674371423456140329718942226426199264243548312159880788557254286636509165726311956651110405930988325981116952584746122145841008841594917964717482885465068373019060894414349400741514302212510053684433244791073667661184067758551125637832695300000766126118228681959931766848660873713961229530920546542588172487673631165046087236261003946553749494139290423563879181816312899501277282936735062580030318034192969148097188458211652711243020663620301477981870677743287030129306108514274034265954208228495807152576192070580703563772152393481780103070141822044981099795580149016412385596004145143858033025748651067569040736546246007362077952828272652731078073045371816699045185023735241038998746085608975100760826527807827296609625888058004533001600885733822019791174676922767584015195720708099522945197603529858951637510905856934202554154679761258086362036931580658698768164191933459909959522452678220952644948737137649193726227890187365404634662765648577646755750654502355873299590389537690204834110348542605059020880709192461005129904290819441995941797269046390836688540035522375390409389429910835408486155446589770250144661443685574468108063654985900116181242779570096260510489654477227522006001378829926920795293426730477483677305585458912789483096574065532172734128957497366830082443504940874751438224098429268547605572532067859069715166079461362721565472829933941559445964913361713445931178894461507122457755758073110817377030705245931030726184220828628968153644579501249284313017293085338691808816857162329234637431335305782334095454887416996074470335414880314486711826628244458211792745859938031597532229618182434137914096868471750418717623158623473022807502913610143735784167699966206135777802960177404613308851539294789110022073125262852067196662272729684772343539049394140153045768809602604492128399824475101879020090473534679206866688571674892656186819361725756080468894009099487234400357926315456130166579011393805280215871730317803886604694419785955100595324869661976726716986467096310700569203873059878222335400442285848555111872805883615524079646724130862523814654591274049599830767735667778953891868869088580028268807213382603184485233892323732711034609767341500303317048078001119336561825694875365829257764899498113693897777620423799131010428177034885875740585306376218495923049325151174242868580208921371024123049708628552465469645834916027096847894289556329910680975446539244328111319345193226001464509710903215182643524742125365945663237905950287037055882258839544626310220566664291920442671365704238896933231413470578466493782593715184295299649687147452658227463460039377581295861505482417487292985376100946187073731823089754563549266868186205025800830896038261106109043909005432253845869890078672754091223292629294843879882427490296062581792467176771045974455421237017826941294049817441764197478185176001219238736702994723229791613759090744692388188725254746437504337346493519942296112800953335156638654101064251433038816075251101183296545325597353946448097381386618136468879371427548293212527503755195277134083990635388949894554525753484954649938269496481919537194588217644634457557577255311992807510834205081057741855317297497391206612615754799993748595296090363647238409140659568774105582081619549411553860045547274438392983083706355132432824234640480334082265987909268177999739223100545685178429440921151175465370433460053000468957146451216136171814151982932549521521784317896733829476881194761892707068995812779843273569185671234641702570069231676728167118897553385870495181513332303938392811000014263682065076728157120019315147809096939895187541121606365596367320229792533096793712611361453218571945670452264296501509285716757189058038308664196820704771725206759002011615410410790144637133792145219773582850520592189958520103199621459110853869573024647064550277671315093415732857044224969549006620438207684553823435729662384494952138210033129705647813154957655661682801639838182453815920586331426677483479318577786047189125491976136593734548317127505153000015451725437770104490545330775046416333836839793221573162217757551936754881480630514513375444203333590115528138874245188631965079629687010965007483064382028650369752258859322806353969908869337290858003134815067332727990064936396669601175324839279806342670839614111905392652760922159034743833256113705003399741849299398873972709481014055704014506188195088771141466598472170133126427035695156148653448635583983833102979025696665582848090172753310438721123868930608137646327369785801839896933451990480709710145822157838243360219687645288046792849254334245202906479203800015775365717850844742055494739987362074063564530110944182774060577454647968654364910168687458715656134272985802649226435315923744896141850203639859503424024287067502675814553718515077108318238144755414773333726236759975172853967657004471751804486411938579700159816756289031581606421530623375173393779457154328504019000487843816698062471239579694697317862121659155377265030949614169623356024309262842928966852317303175850454350259325119355845363145565588088745410133385793267576253065034117180945001636673323586355687949316085713694044423676399545868685342758751822382657311246265469631864189215213040469146798128353768149234302307511561804741713771834642795153352172890501002946492290649066787232409785917465566164617556722306614293551815301653089197467057727434318401793633292100419989959072622609985116311529869130444949210168684346955786456923045038807591239074005453613454097783011855694343957574872465400926089735850903644864756134057622216310900508190313295122696805250566721062144084240677880968086859439559027032243372772135295824549177541496696711453975556419192670224352368877615612978644059258164235136371311226868228144965521675971752762963442413639622192288807904310847235829165679906176965469176280643961492495708255900151007157839913296307836409914051798049868882169656906213463330312576179204925791054598312191044558679551950124327121226560824522696756265395477926329580823158280772248249996136474432870185646745638844177182025443188090922178129688677689406971513283698282260668022208213675145707972364917703718037935671017430073403064853061525999148503831213371211219809825432596473295688512009349340354796423014672126147962454197990578917312022394285801228838023698951201924374585164373436464637443431391718472595931559645088392794304218664865005557709701409489678687299971638586703477244857669419532591286385157116067736522267740716470193229575172826764982074224772093687205087932367129490714985087853942067452743205529457813658308615464437232570523264889172452082602419930249844433195673577051278919693568342270503872002003288063325603430357161871238916141400632407438619126238978680400231523624154519038122739846835913840388855214784494439750939517741352524811277115114433608842537478480369587300798800428725839001391842616848730578058934925676472574793853811297755734658495601044315704576973565345394158281486075482819366763423644333029396438081748256951681274315082825270955249416457555631522244346634870014244356854348200956410309786340833833927124306544764665418765156235476215013680020829622129728365277143344628726629475197672509551884431645683723979972400710863752534750027232979349569029634653758989344015143264073474495981715228690186105344468287440550936816256413682704163716365820415516923236986995883900429385563854237134776306590783678489179220295082787018135561472288277405644550330125772850054076684289652353968122727019063253178242491358026182584874076709136993172428400670812776042056717342684093285763778173756564671714582955856686511275403926083842949639150014328229099447703778274343999590841183128050768511969090431646494187926775564967474628594101358820239224795180049910515223226798594441563994594200872091231436634042661906663159788551013968367950429962785859732994422109149510272155137950600496750397234160672803726304397181695018791566246178064014952065573103576087814838564306006031416540650696969214082284385287646858148640283345686531549685323284082224764782682143923418022984578221136478331937303993330999577730162804985457475845118501141350823684062472539760994570783915981671965477438492338027565666235019268688392940718656528595622293316941288516716130999686532873992004348283884827736838919802413733732171020391743831708151653751445402816967045555184008920233285530646461261281098454519305481973908230730218455325893296136395767062706580254762714974582392382731233260394056550059130644033743974852125414432692631103600484091071490475166617832415933949701325190972576878106154139936206528091982641220433518955479880456170890532919827937237844325944281674034859780328498908058473642431741044421992495093590829115245236971836243707339907344180448551853877696224403552172504082661332357649811430965232957334942282236339759717963502689230056631926148148805379853329420479883725928185989578504030665227478496398409783645220706137430037674394036358461827757920277626075074034517169006505174957698534985047976710856789288046583062946307407367860802605057680295075581159953842174085321838489119786951309190526648388121099624405581022268021690861189004432623708780784047792687688322569386170278882854447148127530529977349274067420657645239874842096820717677883144004956327345028829751900711088438120233695123035994284601535924791846131213334574088328568908342130369729553828590928121347194226166466785785690517699505166613899522757156150361748866923354563398116619215789943554178572719776650792953789523761542212400395652391007594269266481377763080625995345334119708212273377794829962725968768077912579413377934533082232916363135090016712938295134582071539150895509324299561853039353845406418035127228533808277068838176279342219179322132963802190413270572676483949163008879107881340844079158997155573437563026355422356798427866867479208379699371161410160852491896707206017184983100538857328390222081760239516706648356251238310660987838311707996708687672382532730480818828614929492191349651965403062281528782349898963404235607240107044320627719739126890353790811611821823697352166137077924802387066367471030540185684812672388156219218390199856923653450257485113833213352355352966748908480651072791314990553568377843835288734550135586573155712514445194347118456523983801290160805167274567713846149336898142993817953992458268196800738672684667484511226067442312411435826560931482937307124126303184256636171165685383689937354980174773936078133470761608477735351788887453310325773732731415185276189338613937797506000691622071644412187783401685702175407289446106521009409299726823150073228763270343760643618026981522249484934724403880137427501787702225233191240294823337597286811815761946466345910871055759732146583303043537683267852583490107656084039609282287114153124685261866096606421528755896411702354628057620359265594614682116238958991540645373461056306733227867639783678781399587448083812367805229842459054423497172381679791644839931157179246405204917156952936588397408863064161303004492325005958973259024628985397758042221159039378537723890939003327074869575315054500520714913088090922811950886449586538271491976319653061173425464238177991911996079254552266110691494107281738192566154083200047800147029394218902465640506908180019234279187321125620653766492289172430654207477319800673610544953061655277703166904163675656056626164236157157021819566435752632737075033500776828136273904189719463920075975075135416438621495001424568267616350981602405019030076089827041190643055216666617606101929500287977725783668637521816811258689225549572793579299555595278341934876783664493626882461482641568192678041280107508000123182553288143125065512507783380809616097595560941405372578595814760539985393007755812892375550653219400570364789666249209207879711645445830972572019924027393707934052971741890999914449196042802751210957976234804067943427138373361923250663250153231596484512068362779092404581313542569757113843446387827359114549991465839736203018558929558618632074633709029312473864665688503344885972651119096799014900767530071645869663888549601701321959074817692317883708226251580471953073270317852203250272789148642280645275360694016420409968869831953921844143320865390519433333772819220998244658740005894533017991129975537768166695442396121131636596464738707788869225311056812508831787543230874009663141905676367292461441417223777207359231328283896662133496907852973343594956363272020168637100440355933485146036926212066335239369123579789955732783498983522086576698494818680570982863689282491458731759616063764413078240071668711863495530652449891704671983591372073450986973859858750168841270990840686467469070972603712607637753583610927551344870816735711806934364812215627474044761855140820006531625783260422285599995281579203936261450128844508783739784781693494891715297207899038520950757738992668678207046948654755862288691332458133780303453203664423783695190617215582891280775490310065142425993944065432442661120410858897450902524806579761173189571698931878721583255618676460826997504642265298889545154896329998596084698351917864993746500355696232395443705664771905554270833851609844344052497552628738693426968889010133265213541365084761535447795701714325125575919239793391526291071229737313543297209753400232202376551709018190784499423554563721714972080782046494503241079696847841086475952533999193344893280711866328106275041230166201278481460840728093848508303441334385818024388242514636702166623902759594336954770123727354521977734645575847613816817261916346085490470653033222244741352736488495800534567416705811050070825874716104211497091784030326193365318581458101512776254191453568672097432445406787393114657909300210003955951838096609801072447967034961418453013390966250910515177281545642780281026596972424345339292595908973010699362688127974598705050531752448547493086083139522406014102900758233223789654073078931455280601390975700195107148968792949588324670697089519428404253834139362074404890238295577586938663200109440941676133693992696383555319813385613166259801082077617285617362642844715778073137876682348016496137571997226738855389827013355543764776209687622672678851709255641120331090290288552380703773847634322756815185979957358235354503908767759841835614968113277804903236744485513798888757496793343887159331927155708515195826416786717978033265781431824262680727526724023437134102919004973561362520191047158727731222855033380168631210218813737346121087408825278452572536118975903749923817781010109377012374949691690652944432541355253976815010410235323319407519289361273047531712832852480184243856208727399561501841731218937458446191709104265367521832198302249211706343720551212003988512268901820599707644741226315043338541909861438193413124523391258912288580481283932045881306041700770800108428129898875008648843166237832241814946719219357716288454260912589719963734039892695606986391483934832389111208359221863782165740892001143582891407581025284289361816346467573812232361519651153622225783120462965880621782849941097393296618515936871979872005342696352146563565850721274322856226184409096800197148612476942060858331719619798005473081231792962303505174208381078739851056515234880216938163303435131079025237482373436204525971184897751331940054710898236179668060953513106712980039235494208550493608139939017857185254508144387989650299215982956432760686722532510404548151628006145843912184897812556073755184380169396237109298572602859272542480494028534922973610333492813667585504134815511222424509455566588506716124496832516890174544421652637843027836246797346251631910135841826510916784354222578684790295016727020214047269687111611833688301701562586774481029766371668718342251769347286839315988122414875544362138118452169477772781679404580281335143091272999987497403284343536748823866998848317789272751564607721667210693041061424900621575222353921722774811495519142325305055254001226350562491715229179850833866020209626182669942559228762079340455272753360036540786645356167847521375758744965800421709145358424476572910537808144196414110056682111184437745235627110983856563231771774572773551856574028222018445641898437390813727412741251086312185200409075659315044161897185549078629235246313374228275282780113373656465190243102142736591807357728664206874204264394496740147457578107958323140952394941973855827537894018344211546020962836324814538752829688521675864909161067355636648183623076366057055906441960226448229299362763078754541357224356085373322521753821891793113751553309045870188535754183372083976213692746842299681835633773110256780074752472219625215494732422827866457899736545258267824962418793069003064773058161859954924248591976163297530721318755666165066400731855717299540855761828243997165601300951023319758803397848241795279792461481220108990245795552211148682565494875533800981489139931915575619455302299508005536199768475152571287023562322590021707033815978454122241851369402130705570127995992395147840901054381622415731810908208969840517066638484639053680531768538013624877173914053976255127529795555741181312712602005073973594557379375513972811550057853461560971181613734842608641173841726154791761676688160484815372883454707114269530775432356076144592990826384691919278309500611594647009346761081724362338465893190118671649505696175401433686419908180310931873768629719424466132044217168933227066764706007474347721880345556919725274538397525533601131418193957409177822875932984726007694805516624856260074887047006582958820925480995915917606465267147800041100519136052801505329512571649361172453454793121570484342052449491521539807837529696000624783241163467434131261255366043043200511620824684548033782776003061953901577195498599509540338057778117069964539307620281121004968001118700841313178615922009513048968847659358818320112779762530622401239326759203173178883602455680523276965634426306453846906264560985976807236305848458647475531707191099058045201985980797185616727731480441968860128816467875026142546535532315148330546993800660314522855473522290644119644556837017943314752358446847101915045316368770465652319966599161721457044458143868798480751476298146314462555568159046137121032821390023576958574801605975681947292611653229613022522175254336569832792115853083282771886879482786933437482259371855152757945767878227703529414526280751153622609966941466157858723425760037853330073943920995896250407922614101177707137248564697082355395368897964003076914951021095018470554912689177953666489107241431201306459056443547943794025161667675304419167118028234525307273572183608129351029218429371614064907505901596155270983741045144979387576536217850686132110703104058457330506768393052664468821752972776349593771689243125172175042395744976637494596806593502733936162239986318265147751772226485430762121170396739641920536218152247088110672872435445385351988976322771698727425962592071086104391193279452161064491264760066624693494397438393807899453793871760537629897581456636284315583049556819793723303640745969558904469930515098443125453911309559381260881929080797732313090345216794566235454818918502694630866179249801426509283785984687424696762462946108145107402725346349293852945618942980027360415558013269479700137301735286866741001586107862869278826607058650641342441304867824417678427506612496668352520531651810884395410837025281606778041809192783895190347692324610023858221254947570678557423314198953941982408661638920673543430418754099098578221958108887720027578601392713759072914919736345231542059852737537823317281866450655698244047589620854107173412114472283773681549588448750392825111381215732599206624560498632277691536898945940365281490044134378018780740857209411547814914802584324659753191281899095423919211476766474939180677356705456773995634203453076312931904078144026699754754503052751444246844995142520317910043271028030368556092427528859090438076034072676732579667642362117227171533641702040109843327789405830984320398162219708269413651284990845044480890192512349841934352432443898824251369909797131313898373436558910572521706082494559616194466237479112988594925717543293864418189148745574793343054589170784873394748760320583750198589173165806353218227946941706396601817609314626189764143000518006292603904003624578536885450959745433511081850410790061371577766321667317888600612662742553980278112799566046079987881053662862214842656865715391563846922089462734377651985576309961874994289581071162188610052674314138760469012011475361644337898497096470977681374922505732440879462531893799376644370122087753456201775799788219359503823095707106723732099561765226247938051397727864685845384659167306542463060680487195336399221619472419830144069050738269623935452987131379143821633596612918126672539243216084852575836565846120773110340378269492788922438523627311226643172386529872369518707390611646525429630545884595954821076093772648547237235104472789917612827712181785528487996141446665002794328432999321665870946505462679013860159870673890293917204765224581691543079155795673503942871912334204621660946592159370623977640315985660733786323251555430454372657484335988715098390314820185703783702827619746714853894402316849982130313266730234321649126508244516570350535471196014811035009651882904063661791318548363903136685539425039700444669626939392981495899862607175914057053487146974000911782035287039433954148730689215142097128436477819840734574494515250207258518894394506608962016661151386574537847847566906366514640949286987133735451024976772300184260930652661502185509401858238553950074812478418262080493347952413653777406713800559607505688207776635009997000822815409049110431269476237946474460547986159980318933706152694727056286742944275622058439343286308651294579659994209532217642309084663737110436268742422381349505860284784780901283893830896581956910367553445702822643972445708277952503329034880861826666577030998833856612276304524594070146930454075968956978924809321194756165775620598393837105188553725902231490012202856614156947692630069849767471445521636194893469768761094441980343793666425902047429820710985926034919599237864928177626746331882412203520966183210781127347745756797389063587206759708737630401512438324702244342316688150553581221940089137750724716531650948846309828814170413418306197746573646994724143456140646395886637884465801133740058933513725779644004844134431170120842181965313894862686807030793450168469942028864925862064018114294980537678160898283188752844732920676432994208687888902382017012125154022875439558949389589726917332130358656991922233580686928234880047589426780245572119329140281935648124705078288811606264065784132645130562046707472470972583002967887712429545265056028615986680690082687718644500690528445000093385601857176964064845763390590599721958403096084055799784992306751374748110137584294377155243834354281529903880424903439848106150202225459081672488777393273389917884994083501816701210327236643102236841365218597784373399536981615660503514038964270347782401380199656453879576585456664994277852920206820094647414967964233745891789930658424385773526939984056108604728767691223119107765693869547765561728763817064009027764228725360985715895191655389312184968181385058146696244310613681582679075658633062327524356065397006686245217863761648293848660174450309796067599059635873257945772484399707327977789483766608320438270869589151117088863108102217148825666732613349970113500351180363554307715830438598106383633970908570904791912423137479851829776180724677811654629860217256663966058125513627739910742077298192328796224609164621344376116244224724916748718616504594062373799839185976960584795882281469503296887954442968466325398837694370989691687243999855892208374660602768484064349189873198200593425245695715679176917862605726439021016826511533919019707943048329397847273046020343605099934474703444503273619582101377491819317279742187134998976642726125067009652364713704664745496765227185266638201774381211502862106978204657883988103171114435435726152687482184646175431016567162184617838072685331233547538696435671149096997774021700867728265863786202549158671492107352317095247717942797612923700063277080423512871535653612849930671545656926021056564010316904083257858503067506465813797245053611825524533454676871321907414978241705635645314784706312746618360355276093548111941531753796501206743100935611680484426916456708333550994314826977529498583824436163161212378591682515207695464743578183736311673104925581482081416806190512304600032516956223609288207969220331673565115602506321626966298977911047172065457551152884030315914387602580088431691073353001672865139928432703096137762873016864276373946539505172704516482999355252153202301093556733435695477286124646281158186901043935941532055218412398144560641458057256041510060877693176516446870941779737077517070801640035684425749647757893680417142493461044741992279765716246088432799912816972711870242086035682264657027228086457216652068268777357343235909156664410977732408120108544070442210076255054086663415040084739131956340162702211399489023869322379601731024548031341710151247930079915458011519049328699695961673832509967418045437979598756698968171908872518630388662745014840433747744385974531547240130683789427035792482358730199750286526161308573355390207647765199105657371536018379693885948728889343651593343520259366128835365309645664966583803204276742651922546522029205383039806552197311552587860270034032856961211474185963990145837041930271111270909439042431063429006373239958102486227424105245586672651009681373470763598279619739780542033369796791394054961316700249865096451952198839378121115262185557980642240228851357297842628865483869384199918825755594278640042620323277114818215159620820092998588939197705923639115765504381164301219168496105666065135544717733817415312285229593205065600300615288848184455551749136336683268952752579239040263075750672597320302417162568632893359336706643724755973755822806363984775324100021073629052705389091869121898504561725291187874264046496315492634096836785140025654156007747369449739941392756346128144762120411357897026584553946878262402407568088961051904578371992420805217948818643427540503182003402634110740258104389106559020056668820469152629160018021471758448208040598215233588048791859508001272397517744718536023548410899119355126487146789010725401185255510541470289176431393787410208768632635913958328860686146144013219215001216687621568600561268710919644322439796394642919362316188722001741279489704549013030894833779875132539473942547816676391372341922377322033698658680405014903677796615731291010302496179173680224247097692142564809577063847112392056726297472281816117335151295547076245576040757708200090375502428905756239317463242796363845606782982466535002683905933541839699335486580240134065492336550440792659075135386572803094967781879286188895810949825204272228679628823876285398925933166562612766818886688984632778493126215369084657866877303890294995238560156230795372223150527183333682782574057821687468366146954604487031611717880036362392456294942045110001657738022266108403467606881783147212108235104521785744666432262041490320318938345622230578886722582467518457300637456808226518149306892981522706729639562661272712746562487914131740989429442160173250025520906548167258546732729917213846812033944465911338966551183637692475091070788877622242706914603184727135571371446211822030797837649426821075520972134824377628598966248492424866452586038643005677838079389293409367130486644365405511893029253103435685045563210804714435019457370163085151494689553785096890090927338982540736028630832304318438412054325633500935329697587349727850357472064761073093095818241191320743528211690058074690308182625847282601289899351975771465317490280567010509086501362037702360002076463510898844322006736961395688729422171200521317950429302302417704386269882978412904609164434556018980673828801101042004363849176114088698923618139878341560968201191235482451112127630618014546432880179428306540213806266962644123630341772161137697174197893117833792987874497259351005911435844140254590948477667069767307050039787308789083645295307654723384130358134396412259026406380815499955964763879918287312681785536586956466935139301465913260270760538092166469995693041229873153576975355821850493786768764807667007263958478929860193335611139392468074285539841557331418902414634614650888370650030629062345063013411082051475034199587593549603872503340536139619919217490044103176224877749463838275698127430598446912412738205623302670925155650916608663125765045673928194304049197569211604572426010981708565959029770918966292922802055394061217036094448197465319918922262269783202949625786161551250629685766265957200279319864482447451306017033768655146081753180165245186944729189473352634621542259033376451925602091491875083627351158147843163500471986442935327969931518184344539785300649939990762521279045124419400605284571504933623852227506995829692336052994759188605543509427014841008472788059852270392137029512791352471803228190647216598984148987768192674466695644111601539425805001403431658572924032453356023840408994020842459332851740564275150798560152270182667785020971007938688715992810656773600905705333367869553457666164938384001943803562192494504263513962560936576062741417957454946744769966390246343904727585599470462390329936508081325988452243049656869420298790416084087804907570778212666453399375896263040346901894221550655704091100419801933654135020094537598841397715991596212559219416632397131062633617917325958462666823715870050857569728726725819357327115547448934314407891254295612393051678566779935653118851974353840136377603095765854702823801729807107184421969269709132164295603535929841250001268922441206722832109437338804053020717014877929606530068787755333634117469779162532174695215916547900450782137520890065288236736952080384503680736791334704424149435649988268883401545465799703304305621700550921656390332300791452522093076125491957967314209708723052889880240627029790513504388381098239349388848253729397662440413320260030439920707745582628855552650089793418010988907192814333638298613347740570612156849857479250602227254539471254183605930420087492336435818443525189512374070983046306147231549494802590748896569347014721934466838746415995359743011605057686438865438473097437140920762581951218823751042927678481865977895471170165031571472153797568735883223138451503508138971609635629199230286857964884078569517016223604457179198203157534259004143912656814059059240914707059552789685072822321509064826330271617610622115976047566642054508444041603768413074078363927375229970196698391656313473084156590965737873082725536899820418532069219527563067976361360328916223460981302875037339289497879806763042279466439559925631370138295113626822757130082381202361127042008941211356656055505431110075198545824632851115798552020253392477433458071663496617130288973581996820785294004277542039347450485255803915747757357137541240328907881463690598234573065458847513381172761298902277616014782493458517863630457077506531702025094569277373395325212752914668327896055391472493805113098285203515495753040101456307725116473501942123756727783254403459748572228677214780740305030533516244662110601177770858761232585723943166608148332549631739581493230512043130967527506947304799183617799672868306600929303402743522801609178813244728783030749853723057104754294174437766728827904079981155576951649641282740768954586796674347577583032448092196576106510361078086689141891720664110272867220160247483783653073670000420774191786671666317484371370931016285849296940900178824098036853880225460125559706247716854114818477221051538765792041377889824473279353159936351970432877099196803818974937357664368066741220092503434664473630101132836310970269761931496954188580532052150724695652409345262494490763073474203109665188760569147067967206236418652835230727569189292825761070560634420607030497471522748626630875787221613711874806355325900314052183148025999167107619298933633434659646431428767158098103446526896187195756839273511573948809618487080402657965000316016624043272200591599910466454219657469613272741394601244294890771074864595450875174552474686822789890712271154046358829989067284518750736018423056705891029171716601201068384743876508016100339157603796588863790065184160174359936836054060481762906370909331983628381127870986834014752062688545547768689542622460143292588884829586872399471706937096837218379281578542563332660917533318997602063150207713153217317097229333373627809620783945358211078950661855530922418682636336502133086795474034488135388829079021496538193646902535706274187996952183170283567711344518765358592421473047328238343788782724078228621035550185597150889790075610362578615340786013186960201796159531560892687252413035146073952114528923387407750421086838447155097879473904729315793489706853429638358116387772221901295938060246422105090977848730660464107508233000553489443595435638312081252371817238505531375453617497962241687538088368144954568532298602134851916138585163599911634612614115977071681297518678410365908051507239443334695862345958902289197655574541813901208471665812353250852276046402876424642375479058510088985375786203214258318791619573157248270105395040692766375263761260214694551343434172154647643150294283173716080133334147207561855906352054390790396531381333392925950666693926300603305194063785300726960212891476775098859503835200657313126953441914746446870966134380931158512818459004602982494739555844826611748196631507489175033657638529160960633377593164044080337000339716661197193003172031461335159080169233588730392017746639560953266512719400727725273975828708339171236849016661598993933329430722716010614895138907713099921744741706895791057329909313707950351500617083867471263362124776805197316896612143887428680916884159079317985259007596632741030235410790213572952700627143829249492228277878541306272629478994520381698223445081579497623017848662614881824161735021454763747290715151688214812967533100825699606963631326706689982892875701828502907565205364689399703391585829071605869405282641665708453964534861109734769254774201373632889993727978650421593006033558535922998204899786517545428750534899497067633745496173559804423187611134652025652929520265912018659392675945959638162861590127352745321765345464839120090820226297451092644387631678297193979676206262270377118254373457586934810442635538193939155357301677209186153777284834998933965727224179917178302240976011778535683519653197640159457334775440542313963860344003434473126482290639577011486491158758868593871127394781197720526307473136452240931010473555452627431229540422517991923618729059998295845502571293753381734734467594481306538152140791068308793696594089233936153137345713336168206889210422188545082404795412438193354764519462604907570998143265104910007515905038880090975069687411466844979098196891277442222676821017320782063961892546256504481027789974499689763511650213844179607051013274490298085330029542324958354994370728772116825139817254599306108390162065697222049720100457656090564639326255130375933104736543243273052111219904558333624774854442727899658592468675975691541965078671412104459312522133967115185834116846017894397717722960689031438946615161208124632931492883191474471061553569099549100598511032290516580210766745104447649393291102090115144513696639830889022091847549268064955405950757874321684340735241557726656218247850562804133994183051502046981781210267849060441649146287075924965631287460765667789642303140671838538294555929134423074327359620408597001256161381467433754621013863210675455050861600187026997230692228897962646204479986471001412965807964916487619759998759112103174730718563546645653758155155848657526211165551196921959853188812860671648241668083785319209089482536120084276865275885201381798300557850647602096843506257329194549209958906500255470411180779495787605885976765698382791216187554098812250095683790875226606310605817434288953673811641390690003583985328145209445588946640891120960058704126547744141059862496717865444906898405676873492283059957218482199130468447709576075522191561753191293563553019757575768930048253939905859718236269210064294047951355395106449620727254487241067356474103942334044537326192438563463748491379900439979201151549235840171162684118402107879016718500898200849578950456336707477363431137541884634164272002655568420869416824498884465414229189217399201183802720084616607272835417736774239400304046867582837364267209339840823489171048771185090110469137792765592038646611437834910341131862489234640169751771193363696130687575033338794592767911534309946879237188965323280189801664484860544110063910311905710165789735235869569062805387554454838444400917222781594499999588182913703917645228713127383326571670833176293627095004742165924563915824672936918057121805051412525799114444069011116624706718892630310659204502629779420771552737836765920690100829013736801256414048818515472428412786031824036933012013184238935662081912201883362918154064109052487094387705115004019174049390343901679590507827856535814539864669557744390465794185984029376351093833229125580577163067109187628745892480182057051540256222241821539164710099770698032592890355880396495769482410514681275489694632315341580752892877545326612369326589590912815685597950742837958512817070287990826042223653334134854621240033676440764475579482906035722702839571471290340066220632212208088219446220974575087367014196488310027322786453607679107529737604344346808434488466542649969363356215297689474643806038131893435047519436997045672999711108403099704037389271232714022596947065204650703878926432253906217308741299155984339227771958124180265528761964491829545354744200238835776855212100026329561432384166907866028582294098194404447196119637006155772825394232945678192446060093628212292833304914062737614225816798855802281183753973813609983170399846150108956596840847453467940685054653407681265828565837145777301421298664775453321678147332108868344723761132967727448680030645642756671392224788330904529177695896065872474490531399682489529156656373901211497649697956152009938028299238722179966985254400352518894993789881510005549644335026110625284786715611451759381565110974764533565407761476273462963293182286648770897908911783778714656983896938879636115715048128458419407656406157556920249959833129454806833529630030155731266202300557103393380689687691485051141392920167053867568224846828531314734834515428499826803299109227784316309160558787725665662109930758687229515562112185551091984171020666889441976310000775413365832993869975112801537771382079414945727343088651671680870192497496161340973380253599996010392611444619930019630558068029146181715549226200326881506562963399659620408237441423868098999348599227817187047336436415180401485790688077315611872403519430834578876324393759555242661631000481866598605729387296201311116962315931146720087741222213492474624096969050840011425763570566730850815310339351980998062727193706100195252084322604056145785217049871595640939375165127400609036428156690962339560679902726349025584184803661193506614932502078740430712730060463265486877173416933996307348168209507420780054391079186605141822726959188410797560295957038564836819477294847340810290338861675308575596887681911182376574791452832814282176844898881096887624861303205077812845922510289771012322569788722019175008699325859550621239477637010550255900210434749493246914059965942960466218317592831824375981652475485993677779182681760523987598636947345987668030522582117304562717466458394814599374466499546053026512433953152081681428992606492151084008331176845383929630586182826926480079286969510190477668770979235891170504196269199185593404735794347799775823973935749146093574577591491407056304820304697630743353236182640744256912871821330791071727611698368437922570238227530751570568034721196592189920853944630269346993702047644461087734908911351255598146406976104960432273441865387924294268569199077911291787258296899045875555830356469446285830469671265756593479276759563360514150584457178201921251630798665328344078801223167439510895598572314435814813161226971200495843399983273486851523796788853695363780968152450980305246773418351312225917249932202133135817517145051450409260308701230816283297600955300706697593141404801305930224191381581251830815565295831595069893413298478264740266208774528466559148516042073754238173576162543602163506405671848547839427330358093880993925324061431582875349977761017808579470877542637935357098096578694371594221611331247775179544998279749980846007065417699823687631575186412519030518759778497425677074748963841891533509042549556942935198814797323681362831221830208013506490969161359141092437925922898158881466125628945612761993333905210524966736897160849752765004574932845745695525838356584487853181538804226313878741074263180029820893551019875709672458848746524167271917219995238417245525703854416082819855604275214265858818687216747952769775842658461925144064222442633041667844393679070678870937297947900767051361917448804232694321714461700967137961689608653756493915384545122348010982051433959273420986899185236501931442299963912808534890804258121300908202385950238274058430873796903700585882537504348836069383078066117038553763271225822491777257686485157319094901942215732378004223928318470890159292420384392174443278119818413774805690793417870812282180384355346952666595144245340649699889071554046760680947198310179785889353830008311587075142743458115646725991801681419882950705618147285613136871067019925405097222884979570373646280468559112222150427747579376816589936352724113374792256087142650139292119654614183796777776730461106370468941319469413113303689463172566872843356837115017205912935826256263101200748224452819860593813914786612222318308168516788021926065514379953768133377351661226806509199379385759868793581119576079327534163125080160093272288836283325635458794714209677264706484264996082061028929438827870535995725084303635482326039128455615244238627517723609595718816266508384973126745462476701350812702425769386317735098836133842659102566010996458711691015785279000851561886863394275489121560775470859927639384260687274459450039420756701993259923942521581592197572391272596983418929314431298101716621297052967634452262911898418185945259374360905571546728980190004366123845128153386021982006629806173580470665181022219056208958980831093806309617284949962417858838273331449233670617664920255269821978186900620355473516881075509186121299606196693104717815750368439795993500371694501204445084211369605003211450176077819004467166337405714185329068336868135234434961311525153226376068071577460061745521540116986926594901220809817757747527216200883734885006023064622037733065743620204019596961816987866546967180623294625454144885077185593484222056407577546774476057105827609372923983090187812499123990933004022453572894683763166360391702036091426378507888687101790650508226456002308792738912988091465533585052118735965848820086609004737666298624006029813577987103569165092512772801771745744615451293293445304744634851969770813795832332035161864569078941675287862890580609763340637037222064463042581506257241835790556862531378009980703630226542820169868054958811749854202298316591963597545932914796014710645431510332841353200164443911190261528743026721648066956273365075201987962392990986638117455541536397242565308475424913589115102412569711298094313436141588420384982595192813595271907277103738101096004321459437802392318573462626634135741609839792159142612342992389293832608849992607991197702271523368759601673360887206262952041898882101724671962904877558786103041819073474708944791535980664913947488890197357402218896952403393484096968345633621733543492100896778635569923836931202715998457932112773334995005811212681864879673648006453549323128351484802436559471033248962071728549486158484030136694213606209635837720960531975412287971489116085418966499727641708532084321555432164151162737242389107141259752837575504820447498696934080276996190474228822687828485917357625698706764013786589396329237333075624990880629723104072985843824099060910101714599925619968919482034465050099217376888919917801540538073831519859553447370986056949233380481981692169300622926304156627908657039999431531927196225246620942770511301948839545857602615682850726264620841690349065158633728660411781020405298224876961391312439726574415480688248861214615528330312123914405492421675578999256711885085354043987248869148694973316107962531640454603947789641346171850402683851039887625543045935721934303620289530071225367364707345929060180939677467691805393587717093079494186262826662773852363045532824384056498987410134850915141508100713579702050829738305763492902360500456119273046657640231343791510503735582229605890396086109475669583834750482897052705171167824029271591427268005993715092546738557343332612540141967238629048148873716529256534037285720705800499683297787755963323353697431074920515052663105333505518285028380943438350469257500705843767576975432645373858419292510478523955860420126371653977019791451596039189969937681516680272949563990511193916381644419663411905504856008972226420027412448868400851136552142762216268676179306947613509131226051440254388458635584561610902230113295938178954869917081306670836105523368528389024903690735132083752933676599132934392742455293127740263452704135448759287792345965416264538123759196389494255189515220094036271820410449183880731745148724025712678324527805269621872756347852839826784160883810345196924069340318870729454756440020875678339071630901696716167507273601003989800576793460895070093159450138294429202666939961814104598157351471919429787039720243409216507361253540366715302668648953236913857825204218926593484624329915015247380524707020115371591910651852283583539086960172410628601096571720655884118098049422685609378839053103528681784605411084179366732248101741356526331375139540179042229454333333142605349534098855877680617720436798535283083648219309628830795007817672237883032398740168832119764162620879042755748423558753229361629095468563453548124205533353247118425086878548297687706132201344291538342348866249514150721482099237254644454080663257710093189882028921196618217217065178356034561956096441178891519114209445107341142672089916415231861999192173186625969441762042694361159522596307221739440293179406981519699803946636650852873855012346574932452381672491830540851671566742519604708778588923547526795447598077395088531188297465080069927372584906568457899613439836124685536857849469069021419007478373240642558135008979234814117509348186546814311068171612891142057142658855690502555063909013557330415620065152751546300112003127609971648753669510433646798186727758198492711611559005120998298790594428318075917348258880328730622336475806491202832495463230441259947532691821760695213266653138976972991957522712766244431710049925468377768455553099789833557100308171404158058860532681469251153278983168521966240940964549717259072600679875670872750647626194331019215424212664682313017923423894991956897098898940053079911642212738565409308525363004970462399653281464634273620918128999470121637220661861984192045284563958528416771930489397406916676151596969520545902047509897315702767676607246990055988810416987250325245046365853023120062673545900764955286214911231836433656124593274466528743611376163864220031979578222831892885231743986149094781221458488557656543961382394691952089879993989611844111597467456385612637418026446673040834821220792527101654964725687263320917442282276125410716655868460569597150030884590482332267406010835933950038122806975977974526593165679874971070403092506350068369488742462780360171629064687615546562868412139485315745775586758340745629478583231550421731243977846181589678049307706711443676161210283645262125787900595813199598501764362286332158085239057374082305400126771918307518179901847097722916415476706692129531198669094510604998043338791878582686566617147346998072125427205110893317899638396449792199729347640937320058030895742006704044228459576864148925523448983174303452074606505836616973525367722837270786070936858464585600879001764307056169079461353700077883211664210881621435599933894078580569844587517670833560129104610960604530325526899922978378046716418860230453024905409960596247428310269628655019842164892004689223074160427284837406650962111429294419935005016597915047627258071579913359981488200677517256709118585861905740923606432974094560996763736919751801001506885008447061476765372709018169206913731605307149536562442482443807593071447051436429984230858435908572831548474795020960013173487056007934325096679646146252422068889351561423423974887833369981582618248752770032752093101188293374895117805103584672676087512077434609818958691079928615083106088464772658491468443740453775231667757779044963632427256486000960744923781481971172853132412501067789638170122360813148640506322134091566927466519483984162516105023584206612099531170159283903696020834598341071883806290855383738553950938348522302808630664362999736497930804143627555668091797116206988021143917300608894835789404171435984063169427873900292666058030464894307255042859058986460281299496066568256501365750334724284835064894591859058418530783636489897555468498133400906302638831548339474400373729666673763051214529867021956339983624535939940226635199562317554747082395845033423057248133583630581433655644705479905840950794970351680131531037640577408310704136902515123596284319494553597813599909419033433679264697173763407188140135651767965841334853655586589670653413242358348087656895607053255917763050691731796422247394685840067292264690490360629973738049486554510963836742717977437809704525308821925736304098228134118710539878460116950331830252878137822092415825365493120339266279770149535084107638961802430980065438145951519497712094545416086302146310614654427961736018209032635753203963929155602776691987131994809712309772047663537631407964414375828446252924105809432180616261924907658905313891070360211153491766914934436410936249526692523421471580641558287971409217561709963979365478316150422225551653861827518510422143727028258370786538094367290404612221879686237070685254024067650480243124711614129749457785084405592145865936479535324724211150600714081127718074165685879994109141377483097470455545265651432923800573596308276052264837272751255496557962555862460913616229855872821864483373314290696301299441922747262687046169120709583394201818056015203740222981042163757534976135527953847356747125112012430177828851790310275307777824162443418654501823891300760235568757854012991315575981452615547139510682891931075629621687211936078217440355533009436547689264604964668040544791974133716570304020351904355309485969577019145013411083737553141275911769206590715703077361968088761804153473781022776573342402187967281069474171955766742795102298343484793086735607616781725687853332384540231306282490644255322781230583421832357658314357467740889252459466028203075070598525883317028522750763174030438092464212643572916926197809238230264580793364490684584788116558556533215696462056389538710676039313421614050093752673794782756727152848802349709338043503159697468295641647322666825980119665949477927406233686010837983287807362471075811568390033492846456652969611884181378955237000306564334847669964952175928832953268886711004417249306787553578408902241833391207440554622914863308295640262779744212777209727700584760042207292048296888125003793412097630738956451650387618506832109987136650418034935368544885107499635404671300730048854150357415638554264116195399911610437047326121809094346550505658838541364312345215470084663698605850625676314584541259112738279529685755042413263248054975417747277404964481031342555179349972830601485587833620525771471844931599138072240343987916923056262756180353003359559760468875000669071641954267802975030541661096458164635738431331982554197078658010014745118113837094084640304288915379740786173734945037304519391260797821026809548968518965344044802373441574295955608108241912086794067961674400136082982141919210713802515871538133122631481669964875453326272831594472679623679265692539784736377867534155304520447003463469866990476720044769883249512321529160579893951527756146849640775205411148147002205230317254242544667444777033100587230174109023913277600246858229405183230817397337911278850118613658329641091405146154413049830941756763568287843160301458985882299903307904619742918981308425551977672537123475579219646103074446003924613762867058719256199679474351603042025849732508250736554723356956621090050048619083650227519612146755238442764384316536066468525021036100680681195158108840165932480214176990638902501952716727420029954957260155412144153862608056469139318288137908225017900014393822285000207626382968063570997806154910302996687356118332206003820679137088268505929455776301718812553702256868349582701969960371080234847653634075203013371615593015635569323252873324136048763643798534329368968504318135919724346766314192804075435533838648960683407178786297569971923107310371883542932834434726470134564799506262916936863592309337664831444187870782655850545475248328972873048878914468164525601317080770953648040828532620577762814254510292965048910066170220011773641105222670088704493528429248074282049069805599581964810340685836286937688825774750919619877976754266923314475910423406967297110278778900745664889208176866053130472783650531853157342546903714311113902530703660232051996548665731277220014691403347882443005251990967586837224939961713371870934598087946839262614922196585849861904896692210209045243179635025113699657446677259415865150085788895393084905614461278399650289317918386595481692491441586040940080111331364081328820490214008820689680124556400039709911540013334779636103415817994125815902321115535508321118210599108693345421432786751052760336825214016230733260542751439250322492194730904829441350037897957268437639064824997434742540411141649387814624520523215796747284987596453035563024121937411612076749991010771960827749620311802809814110531167501204596904649937503527105045227238699831032031351673925348311033569320500524735196966810971871547541540691638513950313179013654793891854799132139987016987957392369578705706970894328021977706411337224460556452122386089247476150176762656150460693604990231053622988848953043903727821462564765489372374655565992670584033672507282960064476793804942113149233653790356873777191449269237807596681281451096728423683791964018509465951151373368360423928059090058923555466715567740717124213409701954318687279191303648259009029913782266230561106895733204254584398383162760070262902537106503972382385261321313847640620454379615684158602967593885522080452986458785943668490986639345308562849231211441918369899159793214672398884678420324046739060285722536480770879291504368522436934929147856809102329333069996064340773495295706946110856919142825543300721958575231959043824350822920634341264634706496561340929026780087495032983098801793018844131680011383824643948332732231083937927487361234158820165129782016286236343218674538653431704904917081336818456292976234532785328675108147581932315566723487159381512726432589068419767730543878028380955919914490995440281660518249960430442479879166846910456816973251638032451574132652499221084631574142405422198082817984292114515540925483046019019588975753201242301091389833186312191244775486103367308701861170227104077248453028336320962600221449908295548599869182673248159339271457635503960058769168037296232501657426229310596505197889446813716375447309991228487476954705485759913449944354960546854065711513430527235900579800613076451887977378472193641183938105582221867600464282904354651137029297230273012139497617646036575243418897214691117297519141651358133956857109476150563605162927029080556566866367427787694267865682359341504735663056237017071450957073779320905816011054497080920865358912712580717757159476833469168068295784367171963913129032743332068320691705000517157248234612711273196704811847440578900728647476515265687810590717356749449973047335358842778814343235607508039658873343449965777144798753591700221604028303055881656449834658903658803867069512692728076819465982380218255914776472753776263932037872042487626950104349330075528215355321058744727934414374050807185574818896611522373903967627479524893110296883970902294936674905674563048858103460144508553552126355555678120254827372673566026383923440205452031470486331321734440548129815881149425793246416240332016347450779275361103880323107343159507946021472934268673919577709157588418495537127815933262865686838586234856325223039331866086111227324584588469126371974802398848963149909379996516884446105820270815308831335782576392356166604090808553257774055771589871609315529986847058968916953005390289816498461593876819658682676758156098377007752825253892980481762859700648551967532623566094293270626084920785648831521896964791191422689554738954921016205330484060131078358637473715192328950263805716157801550125230132972364281159576756431348812553620982553928129891054941526944690179721268812122148807537316168929626282617847935811100395696245171504238656724572621858032567169256098406833111875686555652024260129930979847663767508318011302516992949630069177764439502097557903605209535312268744967875526219560330074859678910607647853347124533263170282094733957729985800116971929436741867209256971657418494156568184622695373001310704303655023677098293349635830122472789477996450431721840274070558260375494848591612947252170426807290022715756656346662069990218504983045479260627423848241601809094266420029861522114761254158046862011823958750901300274075746860297901801956215895892115263312294545826306094830057561368876647468681763759539841776149898938803591063593979647135663463017769945486575173270655259323198047727162777488573801225212915695999324864082144338677142916241077090100282107159045542844720554204988968843462362290993523301083211886616835788933791625311043038340557187272678522258198221218570452670858973441275176615680533643843279726003341543039953643565952414219139686075635533270353985478900402061846639720291763623786080941853220695937712511593847722791266625523336780367348237806159227975037126934073222014609177495642395440150426661787845613746310776567740762662678225052100321006033172303147134785900407664343766331394783208765647425072245017369433792824878993295044668372982864629517023605435641289731642923623173989315985893663044896691302439644619665838712768443703252067818328652486755600056185634221586723771135964796919334338594290207736939184684075953827235624386663999886488816586460510507585420530425303744834698334760889834209598443011978234099392200973007007207215460706260719551650087369908993031493791518688815327802890630743242052507276340329838219002812614467314084913171114967703488052647606316368148166723943597657054901377243915590290370611433482072252621598668555397869820874526711893258553717016521596772559070739762789576547021272845363696736740294603847534096444285536885199119570313520944752928558358369451394614919909217788269082592010113655282391450510230843520939705406201143726721218352536931707430640086191576669639352503389811857000858210045217203846051550399344871724846280349727368794212513645004373938286430427181916280171884905696866737842383721030115054001638061879635693526720244204794825688837976166258230258816183677925491775832701434163372994104013911706114358885444322383442124432989996067875618445583753943424896359713185546954595411789904293027570292156588314590155685407128568039496038040612380579391447278885182426871397902767489903009950580269841251408997353129263906175273467064180300716405020358125107104378693762561093095363732856713425653048625639341608493082172785994750447366241207772810054640652502965294029227206293139724400815875890275892332728185943947860577810877069465689426463500993324034769885599087435073237644863931642157496438053912078694792057022865716262460311772775217781194232859620076521839522560521453419484186907643677587815248838152865687120549449745609305613463786409593999939206497315336501573767789217265749913011871677955837232324304526942567884378409260085424839298710234588011971489129617397115964138923316542883614857578267454401393047881363189107003261178868592473872011265044533328414060334230963083417278609134305554213081914755967365321982967051337966159754788846741034592853673059072147499214060273438982349021150468291308350500182221311315080714864813552321672524420740560876546863983526285327310346458289375403779056108473420888632866002447208581513010649370649267791318262169134251276717860665378806901323175119814876874830518366690953972645646399932553267815588020627491910890458252514352664267425388024338847448542555427977722709852669945626875007046626471985518015463233083280153754525511525013599902867161056785164427324546888887931280314648192234530015546664420626790431013131536254048343793946132016236770394749927789620822003963380338318336456460424674513204373187758332550770552984526617132167466631516760657799731730793192939592859291026805192688250702891401391897832547810801925034258503625696726945939642823177304338912658323317347274444070659872363054765591743745830998334402152977277922738107817292567989785831358177640722499604778158246845083522507950058454679998487736392493546641709277011107824481689045602054592505109461464248757476601484718593275783304884286956309733703753655263908569045530050446935359846157667637617377772746996166257243846288770889372876417933340491169869694836607994418451994446589541036390640052782733748621209900798427838843992037362161759631106145129906913798236768598024577630801750095833478425127328882501522976523519462749211709292053928630253278363977623076682406471191565773572873167273382839216610594823476200815469579397825269483524295786015600573632158832698161442004069937874402244676350178019413280229584356290411102369791415573438701476150102203598561185957385749285490697692077029410219076191134891719342992089777778195532147420810637615692325143036643810792625334056608627776667715422853481338609999049167451528366966374379127144976986167148065124407448840191501988980699001862877866652417551406531487456318362398107848679105056700256073536615916302568952642533539996757544721419657747171278867074790481479676756319019314748878516949551401418799497296172731700813662608574022544413088191926102081010925088463651291984303860458071314998441577314612399205323805766347037939797637858074585433717359524374615311629344904100115990526958316388977327013924050607429424782334277020128279160988928468408667783987366458880927901180235550183196199242822810924425941744305527119040204468594866876016042128033207217442264663715436473801421805864418664621623249772962308738737726800983583126295358572814842146466943080036652997542515291314429874015367408880555473463591540966090863869319332854723404794321738683392824244632673736532660631712129714499584043159184802491844720964543648893765229265109699289382383192894247145823022623140710608754011096047299088054258664957144999428391551136465577530999418915373258288313712522683735216411350271763396530490729449556082611158074314730864781424695522561696521411623651264162899460048651422183013725311851156781956583422592729267707812602645443322848578151091137983394600089494910490909008476440280827391489812783666382975287499566659396197584055719496594060770400353118669267822654811027723143910494143860758318442039138989081381546161708869756155292258980063068266640821753249984390726025014688808841027085732020603225256467019319182576021595885731660701565289391598108131492036410884094230060284528260839446181666310678358890374476597363736999395239898746168458121357308768825759767385062596755378907100841944158923799956430224683273517765421122294729261601230677256363041543172073333005083762872576413549827889358429291116175967651988236923878793020041085564566435594960251148199503877227644998721034127385130330608561441920990690316340823270880599378231199921741148035488307529357441620153451020019769686398239038637775244105494202759602867131375906060203818834429110370154246725589956180293407068158039520628906357947515190702636579542848842277429213082071576348228465802517268737327753174336198870121100592072151359402776939135278969013139927750710533608415819901961568958734671762165048325878258800484114641391053704552274142323119006926280593226901838898889965412275564799367486870148752111335846489532575216608855111102117719195081290324889069672206077898809197055011146597204456050887615359944857449108636756565545019982351568878181727912816068537843693695651483732691414286498389739790523497553158568082895199956950620351000324822190293399136243426431021449774013299147159302355518758232045999811157144509242314558113121925184871346517366467390077238518485172800483494497882004700223535682161386756005707599636808514064928211109524252301329622474467577114946622764433019524600987677614990921242741970535442863428139058017379776541253700824383399643414439412186693600117195114684430394730171904419094572345257659371193554094767949000076401270220199228102372523544424986465136712592351046103343654716539756590796301478999173864469429938818866617510352779328471777848730643976416758562585786205082322999387892371430818297073780923110992809263144959736729578619996227108901928021082486055826385316375613908040393525490831488717279123507100897641324429617069406403668731704750888210686416340553579014970324709755952800602203466802986613170689453467973156419033507868876110312318702779339284671806088389766622243606479307287713790858297309427347984690035169744269931127628839190618382202988852805059318216987804394868561495700232854344922871123043426044225021806601630691252494566771392282571323630560834354996548983054874738573724818349395183589117880734413653762120032849964672961803740753164508331665645639710919171380152374786524698238804901286029818561314982423154109889867964603918214238315343722785890333754594878529943141288290400747160306801987024006709443267257873392362722225225812107530035704118371733569432021502003839105452888116267999048635395860054042742899119421032341353984753584591608879418669777895460272090932155081670675546996341747359238582741097811598256569707252746427802344142636761963648945085535860148442936213188869881479762212266950233665449417151454566581061999273076622652497436125181913090261060325079273738549111303011060098498412293049886581089009085967253378125924323848950313860782017504476555873120817822173906076833232548915553954316114717519795182794031997376255755839980246284347046429101406987659969960965043709530299709045307415164090369548113912500185206596039691484097012548676453954521483989204341118441715213776346236648400807240015984935432289163757289430326517998865956687049237331986080479635885980789131544424280057196402719634920859169487264026844212752400193823724829105944102093704434190798250842667293045076591341098746365090654771341364639755994826056579496727307772684130007408423850448035165529937991464977076943251220484528587051094534408040035553560831768124251520648183944255174441317643040760744132147444370042175177674463343187633161783003209250468125643293059275664949261216826713336166636097135580826314427495600983168185079140661553939404164453936859086757001921820071240183548112213452236919119642415679788427301968143722827295095907128716897202172322015112583526820029608000284923045923452663205519605144124220923873520222118276334788401555200987284041506850191252690660018796489557022710717397395449342463199829774146417278661490499488083151859442891873256475230985300530220493966315198400608533279921974133709461187523375828360773931037303154008239067721072187232068030552650170723158075069503151439176238133057717532794446463341796000260590344983528716141274644755555328391487557802679247254841012115274891692176373874230506632524707397901488676133675364276132824280753394454234563803412932374470875791711862884567775505673948715077637550532992784306837689613680914940001684254455791423560075910685621581259283161891920010267024383485616222487766558084068414131204414893383560534848118849070349852928439086683082451245860474478393652413158624909349094648951954250302653191045081272707214074061254847340611767892039975962600003136859270968576254526609765797180029366118892938572347132083762941565828640812686690626248626436354415473165211191130449787816929226267495279802882796705335891112321653015376021131942847766701819044812004280586224080111110467772122816030331228931404842405101967902584152734255734482062349040978842720461215101942965219015362614902945249151768117615106956619523760247584566595623356072489415841156652623333205662190172124386549028154227020697957010256500321334790633272479639829684399792492582379757078704201450364643425826136798896601237795621008107539202262423772532067223520454110955729887586298322868762207002331821265667722303156314195971641506167355855919132430436260548642382825507567758663248806361277232408606161118378495127892692562157160373263539444890024307733270017663362390356604239816212066732478491725766651738078805290205936097475428385342454371030450136767983262324787647810960629641877567763796770508912786298871413722938314518202106719104618277538840883984621136422117334055518210322435042664250798875233007439929588735292788047746926504832581226553487295704181949743486495295995111902080955697624938522115555712161279729722726899914699313407317063120172163811536490954005067565802521467750936112702653609053987260326834397204590083422707780824024191041524946350138763352494462446085174961190662496563577363737759212989067403597402328137786380430349737662587791985186133662759472126473930426457737718758032519408504220797087799663131968838606895828196386717426861010054289677513290145657953706735220245239954153040575156070426562221906462173927841681146595544790920618780247429179621616805192452524252858068392923911481868756415722133862710775205758784210890648142880966681330384416087098108374098673082106457014831102425054385595523843925732686164364046614018836031484510860877426254806922410165989111821635134183680560264691029212249571749586832007222469949267939043129033423366655854048168070028605115414988189163411535821376240536973996557917739145764130730997162899413417947766716214973903418193696192405833626111123817667441061893881440362520675358653918156757963219011340285406150619075213241763697206384427492069262208884349198571967175630866844721906290621147491417392127441651827587363169845129257439800373824524189004751086864420159078745991494911698256431705302225352380639928350726782657728818813135352063803567297456927820602763542672826419625463844411421610734841804194341726848681127923327825154748877449907226009083070870428123404562708331272647755558343310755485301400236715262285620866300634700141136912962568742366280619029456300569732369346763475883168584104193874817422936859315169523188644845669883839250615489120952553271949581067020967018396168004117429718738640286773800874818119838289598319538350559500944023180984304882109766277385068593510613219069255281537550991394890693390772560692476059685552810301828421632968223153252435821640827418495308448896421433468781860729521693260487653359338011497347763741796966623549112259440294208550232657771700262301451567945622675213442326870705703093857824198465803427305009128998874670842091580335594852847857574075777395310406063630290054472383690624903897731736040415663631993144971514049297966437037570464392081044586118897289256496426165989204411571093862017849876995625712955810196305106230536180349356953876403104659075936803831316107644631230242442713062991258093961972382318738783534263228443129148805312021109799413596048477492485120177676212083707558081794093229237443899145188255008204960506048708230732148857229232009927693520562469006401211057509846748141600321258067512896043478583068161291782997862125492327112010069434472518754581421239158160741417826216879511456203650073876861380429734328962220966524985192885517269698359229860019507456188367338144276429158288710037215786103204826256485559295223026690142274366958288691626677952702962438130382014743543948580658816724635178792901745464667202307032546577914039856516037537349310995228379629360898052370886871588300657830174965858708088783103833258949340579129977140586821626765528310681827170047021087314329213180049798144165483774833654310104633718385297868935504781156607740063671449347942577963786867149027358321225952413061369496165549972637100261531767772327774138177717303649564002281659883347659963527885602968377478363217645963506765510847677356399088530935895851807622070181941187128737409983276751239754322365011445109278212185444805255538074397681693785143884054721642834561520196040947373973355703949527284660017486318181171587148252922626696127645222699279514938440261538162087139726884177908037820938612910801760431524499926005354269842500481156804690178296749128260171669346262217386812132332861569111730380570995801453269706870538581781448133199392169561095796935591598078966583539706107233136272847578295943583730294803865327778458884124190869791929071177822771248915120767166015732049471390469487010792705773339406593177408746878428036360363529965021877309316342121150662306920254581780635735340040374496924150358679508049961928333909710023681027529633315747383676054771041155542516001994297317609814884949215256991757705127474342901975749635252420300947615079072931122432391692794578478081719123977978487165922225474958960969084372304693886109516557358507369237283122651411269190197725662020693311632922132442305896377015776110274502733592785904230970465812372004702716708860917916531291300796315342247003852772662139318007578146415312861903398129409192905929620891181228077385210949373602057569860714028135841233175591306810576899175615059965611791021777790961707427464259580414064449798656343876063931424019393637456497218234797237334485945182522923602384041185641721559330185760008785037551516837576856095718801870808860979533006583557135491154814088309787419891951587380613590186569865379539706533912027046111306257878870968710323792723805411604757503542648103419932882989168539104589799452268456383589476771040985246898384890964881448728013891251118018300922147194511896166195065391136683553449666435611624083261151008750561546969520130835120077259497565323828850444569251081593520773762569497033541699125068734746765737895481910755334641994236584683145352120784047482809276681127566881011582676176009000131676817151731034292552600872058964220112000442019213369026611475135364594138117165232875386851836423278438330825848148871698196784853697088324211188941011623808760883894872937054316463951416529564349353654099414878137953064644101329787410054149552640889623075576682111994472915363997398094169493381823463186537673362248569685548580356615492931336994749432628865717618768988605922902732019973820695218458309250803637004254380470632905863292201788872691583877719142791068801809244732368090950245135974647555271434262702929741892739097849174212428166651667091559778849987449341921972577996147740766122226387807078731233934430754061341401314477637790687285838351102953772865109466810143877175850988104458104553678404460635180887695704095671253180785219229113593610686491467426900945072796238830068579655127971351743109331566579817583520363264782077299013458553618084430768735704174962536465057511196481820742332283833517093724754478590666393508233257352523871100907912541386040199844227138814573970050478931876484876334892971793429427601857369557073068911312781782944251073486059854917084209847499819398418566415514721823668688446593877873037785317445625914041210486837206346242847340973453243091974499094256139966903039365250576607229571271016824546128247173801995514075937399631349753862610077603864756034296198003470400533626960384233011371191157021154845588301630676663139286658358130790353764326719733280347851431687007012303196850915970014354699048143318981070145068856185826184541395504999947467571496441231615071789031696781746456376092258826983652831686893042968000663188460355764267638155229445919527234778279929820584838887598310333716716181241815098099240717779534927817207147740383696073896626764324432300282434467756555279827779649401857185528761026093905645211062574975392844573785418169926760310825822669369039096470649457387438087898390777041450897453338322240675403007337479954573240192647571317254105130533762770003254448364025489282195044279562335521629202925568686948170387446584854361834529110344544698509227775447774418637202915150382950833295774824775824762044397397998233227690653200318956219157403202315206129402184206909739845152942879746453257798977737233557578111981304736318608346052919448133211275244105337112341545751945357461595403969754664616838420846985559019770215501145949819267496072779400849613907807501677470516176329823972866847818606069534627490089379111420647197022154377220370040446509171896234036142288319706793103947650313774822487492580921940652882788043102350532636095466600671801145631655318278966192167434941338697837102770954354853130203175908516903061449404682717733196724281859926434483957709971204301086208654203290074137563837541157834384853378409254221657737385405539239461319121662573273160734762674091428302735059360917296304019032813325725883159551418079069549428659866078269376412880768479668574606429842196404254008240291474168595301302353083460940259284870591405397203775235989432754538115656553693657150863398839254074683932727245733720380054413388313992734084795346403423148973170434303047078723266861460129987178791552810356517952023662779111541911434333331377194887656005340700661631786406644305712898463201236373065447046230272489571246670242174348513637815370950225600190100925883296910947887297966651345317336694319380501935815023318034418047797619505742278229192007578052950899065873138824361345176805718270596468842433128140162532366450682788209570616779757254600715062083868198380153068377970735559103704060783170466040332457350547481412565267711015815052111318478438197072120062775150218347667265473753420077384907441391328541712719129161795285765803371768575709968320252355316941326923753339280447999235011897112212377350858347015599903297244513106037673914677468139352661805907871889159686550491895642439560553373846674622740391001801148715674482341892868018338216878383380302460912216533431266619422070300883305568838699992664528626811484487425446734456612341777628480894096620029354287240293661052847302008039184702115109436183802326508563150541271355068278013130235099192148118194645661579886197386889456519147776940407979613221558729827598172950271608973694294664441844695130059384435366365768625311116097864520198171470978242255550088725606403602766226125656104006191864844196035822107171692409328850021891012091302359336728326108101910059989447330267262032289929399507285840428375156419327150954910456873875824699067401975968225870390305981035064553523863354502851257606728665912604870957433721354339622138763783989419790018312154512863316666567850809407232366834627796359055920748883059071841803373099889096032154641330432552575366385627738964931159274979918820030099579497896238525791481591536479562152232209216427089610266413043485352736360730213012844494769553712056082175681864995808105293253181950681075966379046813664456060266619790410750514969737467958813748238360449539216382826748773404333205374612759778507445965825101028718378539111149241319212568789725510414503213012056495998261700037346924501518481430648088041196665229012486670396373664584136589876619167761735281310154042604016237020535719991143465467110399280901972475323602207835958740461978934742885001775277639619181569967086905807934607607810332824359706803478012561059856329213030254512430504143232009736935329649855423749390584101182215235931157559002051902011531862397155329404357498184635577804112631032939640860753966005694079126622589007578147372730183465492766769413238170360578081956184844528643644526470126439733114510427316123188064510940509878981179574594497425102232932649897293369563442821044079035896231733785550465063506763814595891332139170442317226033681287144353929635064549053684852920345836730918745682196404242289491515547364786259047307646028734369531545814092235121470194362809469427959611641836732220802271806692612432459695150975969314041428639274142485768491629885605318327670162060822572519006023199836683008523517119859372364181723607775346001494454058094566405201080266816895264843998641436190050473675035495506818991313772794919783014433385859062048793378957459647997870614904890709489233727915336168176570544520276057396059177300210927822887884683938430560345438403941258015517731534550996457128875161948352714430143442038780787704857078313767541384104794529870356672711659703760039611023913810086355623860857031549846667170381141196836692636759272388528779396937697378120372398108654832761479629532969187686584574010873640013841444431624350679950295029974531869696700494851215073885756519497860972756102500419417170804976216543729498165569992717185491675681892458876913933181132798018436004834579857059941606269915607702894563945100931415283428650924787057692318527883526925305375419644024680911003205318491972717430641128076203484537586827544743533605237893115813037868359636431295538439428195078989158179570452007055414962224640566352951120585587488472478285721253925575576784846276521718760012826313941577271187307558004254111628255094698498590997388538657993025852806325578241425644913851452636084307450863062722884567226075317763233432690821292649687772934463178537645464162253585911348505071957257880317328119902952018963749084632959718994268271328731855858775726562328725887089106257328721553819758657617127771397660595649665732503009571352134618147467296735178719019257921309208749694556310163013369079276002573982507340466149784930799101034393667126908369426267482297695364746360086369132236383969775754083494969204003406931660202470421946743005866192795210198237372017816561638021318265272987534681728393054920280373555288788394386988029726952158715316201164768730785369352128958466541494786087140591735866494157955386197327943474083916850378506469036915808802505985826856143043899685069140186494202628939225529138017841482985067142636504176436860941725800059997054242485627082306715621269789024923706521107515819611671601839410014283470444191686692852213705189028501180376311736839659343663311927078793953504365575345076217494239759241914245477799822231198672785728050761847232234443629908814401480811023812244106692213707796564502615907957685520926005497992003135196236307972058628241561308899190080194937557129566795833017019236497844767354306234021865243942406090961364296434917060139775665444015523430921339414768059160343652859592333253293339000075260481197172937124704225366286194559784154761632898879655440540587916476938699908408740072822605179107978739461055853634864973279571509347122095486319779214966146243673190541095178323714996150073212624581129120249505140809756414263958300059899156567942571223596279848010251180985759717750956778669117087839560450689330359388515813531487088884505832578764940935635651068251455347661824266202054708123977385160734064262638638590088483278177961708491876335979048302497576988196533723423105412639661843083441230920718878519810542485912869243557534943961125253977160222917468494697418547310949861854375619934889502913978116658019037600222166403116573749585688533523703273381528364882657632979656203878638750176642055866294143989705862465142953844770773334761255114859141122249182132982181411412781951226751796431616516642998859895980128713752704597240914134549916953389058983817289456299743936459741107771912444020839546447743521980969867635684786652690965148670780065363879261096431029801816766063605965301974315869160322282397655427799992858726748184026719473625187260492503820956895167932555956548323555264403515972125615314023059821871977634015833473743198214535257961407134326508306461042090685255778278008149948514972117494045442137248953925033353568311985808513561278796900223264967448710859237229649604343947003887391993356600980184284742988008780578879766247960880267911631220087585209988997367739514761441574451822098895353431924042885775945401344846588671033602301306672475570720156667946832541306814635974413687212501906240279614212537777399181689331966065179549459905016690872478689990811434770156784730780885446381910930647010692927246902958511100345413480682854382015806159980936896163614138404423062001761897900808761387211672673414129154915998644769789653453562303535295156334852466670021426893178226492005525293521570124483293008813291133022895592199642095378451760892074731342914687235787882270143109851051068395908090563551677335683386766124922196490399058118307662879495225357184679003073595448484679468573879108044003783883895642529204621101716169891583233912931800382684823634690853766076373099519829665730200711301228948503499040398019851873906238144828925541775991972863761334867498421960762670911467308910748789576967748645379540911189381413569869844059409634799464700513464125503548043591551477899329722332117374505072530437957225305392156307653931602689126191104943440161429092698745603763538128442170787198600016524537873579276938392526358569998091825563205038048392928609574934406768107481186925067099467921282437650084668025500626040989580892087631011137127688400419121106775781236569589228342978477524086827567310840177528362099105568490650693370749939126598005983444151754578656500603291433208974126531881168058115749423066425134553789358016386094586295837832584947960905794078795508852945536705969232052920799301302638966344993795573521839039067062740057821785130946714549720083425046744721449169638270943859065679853907771771212623687130651661241716994794415016734310133379142316628215481856795879869015887078308728231945221380637008363918326146426879808982160952712776374968530649330536234768084153353348566522932412407440822930584808057097187958242361102092601073067627902596660896467298637600830612741231047684198091133775152974014201021871222927242930760274141214980513052619700136519041570080661270347472749866949679939822941463368063264997958188954791968452580720950959664575255462877717182278949247736695178286967455000761006421399114927321140588083563166626565951729798884157208672515287966105455325436767939387427696326694268308240325135045909333783446545608333053092259812877495480411944340812996582501418855224647019075308385274904237236264178792653021790556942530481776852900272212818728372905758853552945471423750906897566786975643135531958954114135331339699143038723212178042114089526779744729575837769907637005102985758256498573850267236635032754453676313003970377248131861669890934427189395760124138980420419875331308391020190078367014999053536195121210711728929980414527812509895272698065811809412693389010528382137669437895415778060416450496347293503278238860042233444835813246576380083660363822222365229662265888543813671815663903403459340559100543051498527160157941954307928403987691933640085290941282646745057124103242588773023402160737809460274818511797843783901060492014418645259609584290803351269532323685914637802019333278597506492906567233286679305679283724102874427716504715230979696152128611421464210848140408019134450058377576316081146643942293272244472007896113465768213711699714895117819195005989257524882269897176174247675249502392123203993096657576176394913948431289069792517898117351154980844455355410425156216089875744695528175376212661195292512656594080772710494095483642144238812612625410945855468646669726358694205800586918672825811881904308393686504234686412473842879430846249627515155149420976070943560538713251763727364973921314836895332689612036456686709888964030506196447924199994557211043122098541043087089961788324432488243849258585147560879491853513631979722912280077170631295162863212561757453486525174561394935257393724514951670490339044676066783867920286870477758230036690191861865145244821984225145563575975172645049479134998246172984290032016160609986503927257437684841190982755340718916558068460818345647025616663621964646398817067909706362286414601618783226354111674511881944515471131480596321208439340520506016069727011332228762539988389733057297252609173305640278856194625926955722834126999418543279359114367348191551506036357653612086860331404921235046533237411764805354501610220309649391679085290137352807367932865062995697306939613657734876127713071214284933415592143444387664140629177862306076678808063499312912274370446918452341568797214432333654516351397082420368064882102319550967003071080071474184744099457046266633990457614596482180874169679449624090368841110034506229982573003861505663438185903252331821518782224172601531939278016649560820324220581314849359271095527556284120974595542168899261974122130131537521348826717259894656817823933174360264756776043753847760810797290618048919444013041176295883972746944280382047137483301317218957846546608170593968831055894546540431732857645433600548652079652538610637265480997131789516672054887889028652508603934537818408801717761200945065535587426757373134671697662102869142067877747853129902442497265156838734793191893084504535112121716534456109517137516492803706198465425723214936139307022619128492440037688407113630585402404780697690594800568438283658670138910808744626558803047549613986572675753571757392220918763222656952965427497757678352631153079675615631852856845570690529785048977478717516417779972087305385961759401193489234129645966262078161924140743636324593563991492000458099582254899166738058124872376176152680829108091985550660504564517696607162777341496285337860461101206224359756795554119814265537082149955778316707352299758521486874177148677615009881986035298983211431480206143830696589396205233284490720958710950095818785172509092352397324426050638251625353073662005240753353186436236439672895219298171482994919635953503168348813637232976501404500650818368601712107711005529797541674491436540858758177412020078524173235175217872141820118582690253465150955890835170782654137934997582177396070239649794611951909627701464345167849264794373663803392044112315403242576682649829445044458344783648324773625835287107540246972645081398367475318283971499609044376103834561337190883003501645898432264074562534541767649064286811079395889103838245720767448023403231281068334530928326412633063710783142191675736539726162904670500308020481449260083305267340316134661783857262766950174390738373240948000775460011416172031607799305673583311383116680378826297886228285349104167898881508790879977813347562011563469648219755519168781436136008560890692707591800071775341577402719614481970642761374409426444677629775933509074223985690368541911136609481580355996361420264256186583654672888127554460956906210968102457972661426117272127693113866889984238159098845666529829052447324987661643359441571093419466625999194699761265118628003817117718430382411679993961278798707887354988364918396013056724618620250905560133798778464556481714750286148920739198072151636452515205078164679586668046679031992222210411154202068446432927492286898842820132131060775762458779340279764858873880079391121241474803253356496410526269486348487612732950168514348280278448630643911874339516755610228749860811489918478349874326864693809445943162900263186998427940299881690586822620782952295546549589032171481395447121108558967531365178434459338494319116309964312313627345008535426731427168392083410417649009795307543748641482689722824161337822051169291724081764816912749298649724276692902978437447591845794063561436954031589291868125133350517840273892141510449277199525536500801845901490853469737551222439691994436646990333586080962025461017529719511544676353816598530327296349301957885353865307497709258608927050690976321869235805473658083386034252643468843592883267605958038353577339319608448346393959535513233083754475385865424817249192362846921507748242953205691944481073226065469176298987982404076638655766693700178373650589709546940224966245819813791151112495830901359800593734864318496920963601479844578964731830018415310017555330342923759488797227169369179974737206026393881390828746230720206884081982139298602758647087094469145442285184918053244164182618811423918081383805052111806437930806911988490225519960752782374208176954366268897285289914160746777556616811051580707213927652720143856348174947681849842828141832273457229713175075246266888274963186125856227607803700286660213913162389741065371073141505286019143990818706529721719203974091951406939541500651175491281461262464031723642622856887677564173301075949836257636589148062567751917438383474340763349412572189640591552425867343425094831793015422907608021044325997499992776728405025506350843651557932426482075404856374594059736515648058565792671388017319734125209359980692355410052444418270071514023521062360144667726149300454087161577060866653334440059311972988829933537050477535243153622066675359946720955397187422411539602457785933552238824690613243326402524644560565813971321991838868477536970661244802687562996090412361731648627987961226579159144904659978057709281284802408117700180676333718279987936530959826616053604293853711912801882466462885190513798410058116293992035242680344104234711641427476445204375465662671879415949417846886255279911422171726971982363388738944573335141654262074955846574594863322307176182580879192212638163939052522435975189838785485296353972976057102958868959838799593798383173740032184773813851660980047377520013044474266287831493557780787716755360299066749927359737579893203474850129624549953122623954910827677138209051362249632516738849341223009878528154881078390774429156328911762600460803938570468420067300904953534961533623042398473087883227728180738685186698571448390601615145374096443207250884761958702260342786548531976287269667766237492431956851070977226051468495765587361933378611869711532314660573446810289835907668152754145082201393430040411981783243769381630015190865953748964425831646289886158466581665036764883635124935256366373543259044618471306070142417352212154901923411519601598170966254426788968747741592999711202171161026686697014224520600585709824699425437455785436353717419065935961643469950182174976363069904218319531072609567650038567209480884599432094971127162648166638982298804764791366154963934297107837981360598571572955774983855642307986125631250795075249412590274723578846918858962313466093794065312110270487751749256217653779674595480115347462123105756099009269794752614073559036156182557988134110315754437312641536789227873646923505766585434247720553484464469492911604301431765471430035886514919809072367651934283221354107152086577507212120010691437973908513807588099279610488746251673159890306072757388270898958496057549866001227932024960161596904554853516297375717420267051989397778614841715479806981494365098041275756812238609953627980599530593667962350071952511027080783219024129837640091219798169228950444190561639411798891219894882256141405044296296328980545070161849932642517218738189637146987965467291989666302297301707085495022636560238175996255363089511312333814706092885712329703361770328805278873076590532469890632578316218627293418729448378352531693065346215212543614118200185729122318000558059387050217854601977057984984486578329070435478051533190077515649984307155214507937080054190761774592310204083020067643153640705131899309980324010162862785209609216253211384048627450953797918621534200048760221986883880595106135955543604715237954425110414437656381150545773783058576309493544367537604867439863517986367634595627071230868075101839587631033877028417748465081351308015590466862876311447059652023183223986685640951660605507160973865175901178949297407924253704724434313832184143461135978135772682902166578151413862058962511905152640931907584983830206026490066996087013299777109027171892190165241602734584323315975949826357081403732160983159485472405191946458738966037485355444620274318852357681995811656576330425431124409868087207856789946128385949790621562563400285867552686552510597683297853105855252108495427461941072230665208883397222427236467671712223407578459043319092320337511806590095284154284918604714727593429539746296013359119002885846384093000045878596406239590210821710106269170099028550703581869011081385787273297209825765759947273903613834890271915477850551296657778577051633042111772346881178240541644758019721428152521792422979257223595316499054777783617764515964872807345749023750708000954090704631091284250877708467073104531036170725892380001677670100534520245025247821528978601954619635249798124424255484227926818425692291390969105822451022321515516029364793318472187240112757238303984863157291705844364287669989924116810515837232465800988952631435019759040821064459169224389431167547451347600078317324033577471415672768416952174946018991944950052485827245927278433265816666151993533762497641674022237607442149893713368795326012157035433645799363526066441211546757723986293574195446923684989234855850075657583573340566332297090770119781153085870622403132197458779691340892472705220267421545031567570617536420110354215046182724557388231560535202693396280650529201995202655420960867000198194493969831906020686039182992200606470957782139173066184252668796239286383943671822112207573731013956859134236475534899539327148694849819142924254059918483558526949973308007394201673299180755179844923796288304632226665962540133801639707794339384375562463211975787265519413024056584728951357769092524867702265410692640720159152433118970537448322549882862179319192116707891095043012740294530997206104843015986370048968192697506729927425554036886989786922296946003826489533690010223941500851777977171022360408817869126174883745623850130588845396493037556736768188275049374196479683552082229594457677086311924140792838168506767500580902445706145552353833560572998252215461813787625258101796399498088615027463448121828737403170421363550409387386539230330396343879040795126178792639879821173982754456946865552870991941795062221068076909203367003400559836337680859844343194611811257659402763637252212538504316804019331938079601244030316560394773601713035308163061698208715937885824180376687943901068287146363681663955354106065634993010650168791022300800573117784671242998371162079708559633233202294467998830628364323005374256617044592433984692135746770031587854573098865874604092492262086364652866122598342006455118870118693744194465395488867504467556410965621530625549182826485733795384921656893756169048832294118086266697418462145908426270766878364262888474152595059421928763022166264880910573099701889546467823401060933069489106089644245180208002861288665268413374146259593536349637579655649657248660943055777762839106046279889049147449548453261739726960472116398344971293902993311547956524239783957524738597665632949028046657328102965233191718746107727344122596157040849988765337968218454366015120582058517274386523117613506584428379819126624747962749393975873751292525730599634694165731873317639873461795905641086476658474232428267786247045474797992411896130890393581029870180740743007743587367407406701458611727145617123450434538069218283755084826607094910816384476697663755483067255356655030566924897685021729510584051322840372901838514978777212569061478523970935117482417347078899414828504132586183348848181830913397107999471842644698099518703411402596119906928550712127337321709343901046448683236857839122933682462646765863595008696153565075021198073107619463334100680276068248605079098008454705240410661379768805166114080614619684957596097469002113382761935980039996784861527887407259320504216636222823274999651625812160981759821212956499879581986943570827279414542668697793736594005747729053641033999526957987734349933805171655729432627906675396221738848616474709513626009066966251252168689549699311060186279401525656161631435208698767516159284596194720772805788956888399580340631854798680337496484905290941959782671215535515703266994041554348005811457794130224836768977822395136850041915256376483472891047535580488871772921949608212233793925956318237127627991150873288562129604705918644736223130898054714271124275796319300145740781407791614132378669664327960543088889865793501125381225652432876963496564961462473987782462770052583457248613174958805792876816549775250280115631890515485492116315418326996209519523470306801412600146268972445289461476206046274665426665869352062353738743968628351510672850634863051367456843731498761032868977262112665687148357534572601407222886870121524243496405524244410712837982793294034565027169699101658015075729534911381539857408451004573699647627482624984421751565092893853135477418482756721989690007470011231509277509623305868718567740522509980539905938190986778771963274520399682428913896183719070705965301780029837403087484266784710045668624617823133341369454312690919469568047972033775553772990887965027508363019643837173466273727526770704874031743632438239290984195216941980768429503218894472838243072069353358344039321635311959924584725220194875148591065834150850039290941705936739812229582931321788185784299889850467964282973354293327720701255825489846400172134223339015919515862792994970665842656909814719612706123257521256931584465729068066194772276846532118513159555516362142338711052436240857248423175373775548575774592266857253210346832035955502065793059666717655198448770076556884633776234771594855782621749316046542198460662326918477288544796356989927274349140391386967936237396187812050404531657977728047219054140911914427272487905168056180988082401887978501594555135782311569566474868689675717966354198130150194991599316553238589285996345048609675872501558218150661225837249703236577290983452752068135613766768492385761646889372331408049459364657713148289052340935026177294044143973252224665521823486060906847804560038681815533764983273897400225645602987710400048742085473784746485175986754933133354644031560806229843613726651267868763145284808669682811651631039246647391708149566503966699770747737414361165440740854392913533142504852842963745884098426387989163885850744086360656139159682570430286387913310397095402621348367639254550683662398894529985820818705052159270109454689443115937671692014151280382732080698341481392073402826249745647748674202505622648585783726869636120345465780348247694626090554598388560696669052234830703649093790945002335436248219548841567324959627904650879871530803395004332709176892130154439568285658777406436523137126487289046396340443633328853762272020463710058584134557994106802752406581964225902842706109040392256390925881952572062514857695105926252030487800970534755250428209839909010679488201482430074223578991693108449199009469272094148063286384572532805153769394524271607566087608225124680316050209140994528373756858881125570576952081141758572814641364365810081946768100126429962461906205839978530066043827300221414677032406327744629137821603558994215188666403123005009131886643153323493986888373722772514635636600515704029305849724214265271778356302311803857920893989130655081961750332067569021397566710122364119288970431629763759362353478142464843744059398030798252672543484349019739855741360792366011155236100686264529202746884482026065856135753220247260279611513585090055071826472272146287922969950967186033332478720490676977102307245186397580706839073043095054271133939931772791544607806614445413319204833799672291565084996681004327640460168173603062172389556905856505871108927110366860552572744168310887523267299536454123005647982331294110091266133517565903466668926673099402391266543764298437329452016806130152243853478055639041922538806690756630634184214024683699663877339383293862896986805452596653633427856435733318729948574672639993120404964270111803829279745762306156304126845969930776930064581333181487165330023502630717397384196837655704256945776303999628352643235742626753750108520202852361723231678488597170523055385498715750939741414251376821357919136206418614735281155149840563989273417166389281837666954766439382004639843721242529448303918992522634235025938191287509192535414079954164547443920563765874579599931023123203989354836537777458541772878908101607358254484358860605087382564054797412405912259461038691834488844325372679208302952969025959690199016658340342105040225458562722426653849095816434178064733640499627181914395235240078160331839272405485515138653233272779788898980621424469402042885332016864551453702899965927501415661055157483257545115478305211449351514320997474383742495033455827789749340857846903598787578511964762062033935563454562637721496491910558117286087861144226617066171774666791409778818825665064696600427554061859748932325973090404519058651488112647792416245795604173197929469587693174056438040085229210767561352684590401494783980971868299676932094819582020853427791610452125294841592406580706127774660773951005437129020840706125515069534327971061134617248636951343130005950612437380552872729039614803659194540301476403883578290282331598518575428658266744097364518475670178753788800912069515325739507025165217893468600479470999787907225189242302531155711028618262260099517180809503735504149861458241773760998116087538722035393060286543736218468349201351122533703997930047112792879317692093391479034913960692300233023596995558477153633895235086054530853312445051255444006840945333869134562305493173725338763616049088118709970104310543649147135538105165158791358357121386000796054567323849094429576792357855831843557072445594694935759552717728774754046210614652801957841132548217918895336203163336982376826700216441174816063861165607032182693023618155334961293196148238122212506097954953490571420820291059069410639589023070469882217975363207659944799419227239537841531492188039905167594083584267218344320817447237752385932993874139211247705225264763419350521823049185179495231530350291246153348823786827765706891303540047720449132662715221227857795815493147455309989548885643169368435053538519929869116777755641000180924416626639398568886830791181843236461230966491023844315986122789229084704207404577316736043026769293036220293500479998161773703325777335728729723913289668007482778830767538859227082358120030593303382129521273355843709748420194929719397064662812428158486980568157834364516090518028378620570897763454619519824593657005918690630868298641924420478832639240169388264296787590776349125257644442038368755680341080081258048617308080495298862213446484047612853668595487526879565782363191105472614216796550824674431099451765592412649176022052787596428271060307311873781619263447868356611360860221497707762282528525275463511560365516093713475831515925713381796864081225795223592282348578565943104333570131982979659154731109911079043944496675117838602828965834199001562057955191066076084135086931913735270643696136726035374670891040970359572245268080409459493320978496275971810036464301774322564062808843483949180653987701294242509716576613360566948611352306582548924331503995728099317516277024490715146565937908242033419197813274653796243666278102287147154301745255230968867434687462399450059093630396553557610822672855921631790995095205259001674609492351253512728161721913571177479086275414595572451095315246403980466416647228370282489390607298257330796482872544600945802202419258801613752897096708857919759995637276269517023360000762471122806375253710999532431814500995241073726711903736811175962653158139160981059001075519325078854663476361109392509356838351145580809222496701123600180125323664724590527301634322243794308023712620408084003192610876871417388826834586470457808850972417521185298657794212416978225674297442329711803917414135268180089630999843718296914279102460245049223951718696442926506358774036506503461455585327435968356634898298567140158075691103643578874764097186934635717388106976475667983047011013258916367307911358299264388503883271330656719015543383343470251587990385581095409931372272374791889850337709800533438476549310249172196445253194603580261457638454321552159616566332251350971630819400299266109944669292934697280661033474089324811667619341666899678670597845489688649902981152312442359831619147670103338625498107181640792039825486613327624764981485436592983700229682679448489288880727455877132706302390586027932940134226883956981544910604889369129970809589729187959094657013319461677014035618242712376556445736755156406213882496389406374859741566167872630127353159506099892003370301768034676246077147787807367573211247784830535313828102199270118089577031696478976747230778295672667327575607451701937327608227875027030407713765588868148330988418001517546845630506198853561766144582630422557996012274525100832883712107259464496772039793418553851167211936966847000558452521332662487600618850811243835948040135750883779001075648204161527838723356467973563000526813482183282913027396691047469134424337106753443633222750542116154363485901861746677262058032253762820000371758842657068943339990963538410662764550898716996633983940711061029134701249648054823872249152861055581531849211480425838565949150284542902250220619179349828760447091916061116400706266840658904417200545414650112832299720505554304880976843164665537630960694065557308932469490549069157157040614531213594401632442181913053797703615401060440485281473883671721782460730472777628836728700261813174894302595045550757483678208613165266561880353697294324295135893516005588937912994062381029994695738418620861529162620026017527851520260306209959164095720280131562840639518059629407726701535403264202166160073644710525302620191200306182314313173579130236259416734003525303205804072286889205888592553018765774557439479886331989831956759943637297779077461177421970373019877858652132930583694829645796073648578192210559035777598727947169916874973281476522890554761079184430904646460093435670101644810338163509221488359767711467175649459649016812626786303821598220900353037259946239574958495889717615960994843828525861216827691580127782630822676986196456419941133141976054733989812143676059933885826779047500052093229997316933487417993933807222050915838493861169427000107068394037090094064799497421625739054381198684640375851621008904890536586929201360883238479596348567249986358029709414115682220505237236955228733064807003396331327597804728851095438908832726984269102627234457413218664308069261262621460045772586366714840753894368868065647430139892770052099249783895773452425172972013408144846012799961740300829785615301724837129637776723106167366675176362961908775459350907981954051286136522678768406079378865673085148243362719989777929372732977050724212847891117685222659956750169569461086210837678206250382703656830647845470413817099463486073219739393813356698162769412962249203695735105540873575207776940080237407236039193719484042386540131367454259962019850635020020457425614402406534302249099341268048490103694613757676552729003025053748509473106868575487511666554419521269891527668785302891310692522026495228243051904904456904012684709211977073283496483208322457064374861044607986170726113347646590733028186756705631548461775238560808781852251416794726705009440153707665104317733018687942893965558570619728655254950394184806824866410861139265313244496324774067050432383951204339925778579926878671778897789938361342879498316757560125200063626420668577727744776419179174340511394885822224124594978417698032940835586621846182360976246073262564670977423952560790543049476444938749143898568704306087463854567840734727891272156497806192251670561231591684986445282506781243047903406076851744162721473371198433882656521922609839520428070122774445789068277260617801140338436348576522430949138101757508620616341518180102338666439915213811358293286579864233065410983500859558047938597847903670350940134105447819264584825564230754459632946003626214252169084221086540061334788453078528047065057075231769292071070510015242667237029406935721992368240447957662468913069747851496612462900191946751070225056735502586119622737367769724368810488524303030105559118193167459660561237296335436682141778536458492013723867577311176573866513266612653827536753533270951841590164798322444776206016781363980500029158992030846342780775296173121250979222212786414604892947503492084177260172326235547294239068807238262646803355177484529969105691674397310756871952410412397610449741316054268011731066542938203675537480679079022156274849093399053076548377212600117828670448183874485754643065838524766314820398575587862550941153166248822280568743666852567422295090437231865728030461890694110771765965450798927114723720501548400260053461813045744667743519166567906649607544885773999861704905483628008602259243665412236690732698117354642888099350368185959147403801715167827900664340792911628322117398514395312187261697781923271124754609753601470573983722924673483109058775100432406628481065356531602214849523082815856787668192649591900456321927716334452572223361317219336621856910882980874308046337936934348962830138086364378189218549018271551860615208007713183351724082446676478079462527199360176966650495611798930588665284557637488351812595563547412886451917141057364006533390478803551569749499826956133091645351295145961640370157124963593418589288851073585272411895792184363027480621151121575106628998268128963586122432200043598735770708842232799781154764452947244652514993083147077449844301900494811109241544400514487757042796448409640208546982720204490105656864616863588501315033813182986541611198455935821664366298149885570173616107272554976626040070716112713756458891243303300157221178145705057202137575600055248628745699596170700880792907189854407160794647543799691108186669031979260254704855345694390832209247470526010801600886792185651601920741608240993433373498775251242391329876003369123697307376170428319271350663730924965698249565701977544884335483052137643240637360269608351524174912063792419309977136994491685548348874053121293918959633809187397516132684137660722089403229220999609970066503355829456232080397164915011811300132369553367579836293381477736725156299173806762661222391175665527225923357170962534694267858421448930078705099256910036943198847028704884269312669165473917172148184369814632147989454871091238368392740903198843722276842809715940394724198742233069773946367230725172972952859089410435725104225658701372905414751183745217567462805584142004335608316675160303890057460201170134636531640424244074120532425945237065508221557101870662646055015351893375434334593771280991119743369131675412725403257337917079902660943869124727889205790808923408758951183958202861419247978941591837760664215639662968083391177048428733134902517310947240555522885457069847686083131713395389098896802912388597484513944556158177466826594083085926394438870370023292373232014940677993532684809453191497208558098331175995238622263526516329178955295802875640264473529157871565176815818537731263809250590977880125688775243059363412143416556053918516303592430954311078303182050536161091331428590635923190426377860079252398246470844982305461177908658767990794219009220273918374200238124236123238576506837129634529017225814246284659057898148063884924327718840794477231171914341130168709982323428067817788574788737384706839188313576090963547676435390734305025195535792990081214117602389328245157603549316948358439609339263833001599349514259927806308190065299086296752584652859239699593118909756105288654448560897102382881784191405231734432652164624417957257099955085580215399754356057331500002440071047305394141886577468916875728421298678700718172939858357054470572549169214795788071956802001107743534774254820835355571082839998753145210654271389877608348124888637477719562907629011364698850779047930722363743971523248591700807264016967764217244843070928900257698066234328566736983594030066747397858562382660040761744504788829671152227241030204392302996700705707087989526789674256121196517093878697710683640083330287802641920025039715729835199051382093036496878918744738396868529095725933408369667104826727996455026639977258088267434998227710141830384609944540387391259870469233674396532453449792409154802388159693313134345556886328813663550219897652266741562648911754372122607072190592307269635062928424682063559708805040063237909802905681643364881354775125434312302909787094264712056785850763375595209842038036418191377189088048958200437328920338401836294749180491485319361900061470163973413144295028228635388576076597217612940431715645426723206714139920431684774287345423576113708751642280348013888499709062967880698011173807522075226533193739599547590281677206679037045528344124285703208056378507374324483906841442292595170725813299687331321682153464772730615902771086090664857870274492132945421462590165291993624199662597263355818122738781118740513860516049443393522313989804207353283642026724845804458369444643351258305545577482639312190143063173314794833369789577696351120975057068809374682388701544106053422252493233836775646573477630699610278448359814065640772352809778935053634349423103586169285827459114452395191249860595177400120175972657646694808594027235377043612705277130234306063749120938141483480072333063437624810303995459644239655935086843221882184188807043406500566844956768079088937194263422647787865243125244591532514773398255556208873049995696563247771916216464711837038396964878873091891746189869531494973800988233525851388488416596935273656322101964488127481211039315436899203525336423108834170099486047199581472175916840830466185702503021105347157293454932248759197578061981363149151548827226932478371085260626255227170085484811746906182148397030414599882730431930967352571188465740833741212204005685709880510999778339263583570779879449413378144458338888444915695223983302557057480965639920377674881694072700215149556015799640115683450595957538686093751280461620875089692454456034240450439549196059153556452748941882210995772923237201565712440753014657406127033034475086246658634504004370693815886504586971487406221419109421355829783972806570599507329551690198419399799559837819970366774034680360879700072667445797370661174332308674847614397224029002878825415570695594184281378197563161925458660083792043999366650531485200303637554681372202428487642668357653122647405787515275954060540937263694112688013063057206829391444271290240528935881802899897172054338588245722200284375435198952200174722305733800463529008471491175272602583201223609885451047910670728919091290146601195797458226563578417082242181526164081228835582277849546705641498688264619807621157117918208275600440904424215730054199716012724937424087833581909055591456872992564268005623274477372025738198780277711306543610150705293398345765626784033724448947921570450707013256342230156211402496710806286481810103302664655728146900836130902647368443164407816992593374782555206815579499554920327852352859785983969274103057787902318362367729611122839939918582764600780185404471208425084559314529680606964544225846771357565357550015961907806186382861620861402599916636103569692231258148722593011616179351882452698586148776332380471840338303125417660959271155357180447351706556181336716196087796668051391385387266166595646118442156726439086104312095990819768817656348067004120468467948830345327809180314452183361334280940959340394529360420232036359386680373716341696531559357843428935743958924062241522735905028534428472668969599785787205270118927343324183588056142784983511778357799987580245932411598002513491690563701710328585493694833346094836299653160421168338550326817172366027650258446502362262523890384580435174093458518170378538907060950038089780688210714179874114921578638040638658575867651166897712560034644646832395637598125840007565889372822126035067076868838221128314397115426677208536871671088244742611504201826987039023414116792700871207011917764749595921983409914383483885180910909166158735546810867595051285411261937553122920599555745202224105615170277646430587186028600042851113069754995017178038049637527807402273657709301776609068117939270581475931452947813348787067447812111593346125456807131432668078564098347324130784154862149224021496925279602433534892821969868718330623136851143502013923267462339159615472084900784604986137328724026413425754584309840523036015420327750269385094257065371181250367789817850632638400428871795808466178536678766183742282433809590516246829321212632063439162610397268730673096569189818600258572746099115438914425175839610691159703392500095783923094045294831281443535899743477962652864600019024720831115845490596015479728524098474390257271606807934125718867316213492543764845657676718480327292717457222869014087716823637235502660270270853683596376223248825671431521474091534299587620021127355105349319983575265312283746724317276386381127666644529693058157781294018559611119475787355530847955488471190777821467298322393274708196122633925733124305018807535985059620950365450890915952203962981673231072944359342297713317893510072431975101689896879897192985926316933526348009283979233715146023495875274183455148175884773957558962675177559064240857126506857450518913353310163241876157965099951357851679282202340446922257976089925298001910404005510761238164046508942175869094983916373718127288051909553124722573095478577743627218058958283582428513763445443403023128067457644856891965502734667283545457651332067897745690671381797793436165273654944366155342316804779397331889164723717981784984484420605389492991841439852389695102357084413126339344340817835804639711145356753955501650523462497994651753246631525050973067635984192981066069358293305680812025246950278099476703197738679502674328942743313691357864454359878802518685959150449469379371177345804080880681552702688807567704726599944894738780214251916343482502752959163949172246115436857500111257676973393051197121333309968355159632854316001244318870772064059017707552707967772087367443526241869000053408390178944976221000316242864393044696386380962618264657737949955845084379544294884692536764584561121979574789388856591836115224416925692734141147154709095342399379495839592231063906828800719948231445854728062380822510735381197173233030800765011561841427425878355433176532631446471860376941312993407803873650117594102449094327611400922740962680677785744206145988194188899611421164412433434313304432277761726639032548280972883741300455092681950925392720823899540776952567010636304182622910348324458047201402584908202335834143262898188275941393227536595505652430790640391789615454243165417203699564067402450270753968396589668927188866490642821506756181607121904180764736016514253956755701266672692309549873214555095837722684184768585915683846836814188165038023499145310119714849256875860496669275442525718692909071248858046784850654045166218902209448999047114541528801226822898192357991328431815724278531898572605231689422585831679417598953484508595363952673928507590831201237923458597103985629162798670990488402633847767191090841905614182644594029684898493705282414491029926566839253532624737920756975262928185596182210326668250356296693656678629714883762702694202467469878975207671224992078552525521615005217042267399611958664096322981115941964339166370093499566624106717709184344499534920988656827907606261556546439715446121045847597480714659442213489284916197429924044954389682787819139644148025809208397009781993990847253116049562894376015274032420506450752315375582420320399301724511992312363803879512830653869793567133004556779408279748159699712611217308490426079876134905878450698740327992185493366109967917898224179199197907741504822947565010540630791057215369800287368045264212075194681869934378931158345948293159919141614556652277766815287650098078475254324709446017776288799302735737313436764556005278581144866984058758411203562015439989145436614109809573811640600696429711384152039464574911877048215452456412498973182151998849883568472508212975665519333953247362203908620656172107890704021231631542939997504027117397211735837174203214622789864112900852757373200469380883300379512296847086760415485615829403394721837994977839829605444947832177019862021959378487860063360083661291329620317200220085720291951956030225879679910219100631111548973099391250833476986437650135227145478936629803949288028269920650264505615772522674258386954811042178905322853080469605177776809855584912073940338279071457541520563128059250358695996757897223021733766834306412264554916508827377287536223981004725602319833078920482215873373357575028126694518514157466271539005850360423696087818696393557518460689122433402883763036129349914592699364322226630780089960388437150546401948139831757072571861737108788366288277313984742598259049737356870524092052177251634320502652839679249943751628309807410398005011936679996706781636593407299425776569618361848371414840580805913161484886170601507960255174090044774788371100882360677101321816565228662519803838743920857070205797403400089701476183353676825964621458470979543769113184177562359071319843241672295795382659618330818364211336184551812470495088203942769391370572067248340607368004427393501393315520941207096839036486984689035504428292888212738615403691692349374745057385070975358598348252064398470741366558101909697072290961989655830309257427827739877389042779113146114448339430283352068154959001734342305828574789729962079341120460414160675815771155899007882098393310120713505546324001789844871012569127049287623903636011735872175190112564319340237785549139901329535933609048914313437360261588638174293674946152040082510379509076868029255799443029776839926446667863831560422984491278033427058572120143960213001663844731091330443182923238940243212254975336976193538136618884690916027928985267613818020413245995362282250746275475249342580760195235594004234445806708489539275431701626085439932302793024466931690739732971845893536783808496303344963987548119536981963705801856989987821546744779002198659790646219128035396003778202369678467093675642471323784742096333554103736678158168618568834257711949871519890296435646409120574922722250570345624694115837684325226633907364095529963751485903431113418434415452181843928263694501746234536566599901205495302867454399040107559264236819945512973567301620627385229151064301303527824181601779573121413341736539681562989123461793398599928381497051716576255895517015147222988032377397493922793541747940186024836068782527009975323319082606400165824368487424619821820043626281268828560408040642569318433004588182634339381557872051469671653291740643300188619017055226742645579148295459413402537657942254757272279375805809754389738793041450769379708546678899443436920118682626869891507887968847151516032837788526333410503241910130057323749159979462824211425345003572883462988387897664636553339186521945190273707207675574294579222884135043237681201784201473683712679542635653829199469133260136879993690395968835197715238695008981298536383063481311869093579255533682941056054201206835131934417488281834637330783209486360453743879858318060435226415528698548958849405803114364004630941217168651686929536887674456247277732164858030023811195191609552956066245372517260997334892881218846448490502254178703583596388594543923054021049897285830827862002449438268334344383378591130235190131045276777523947347527666420915139312351039762150508914488242690981050756109852864053316450747366291786829987074273216373099501758669843992129978320358749889400930834026993589737194711387339524799280872277988581831062039408564263251535798218053253679619647380223611547254888161595576080103991153334040694592904182099140162035363449244274526834221584636790626907731066128777121296468208336291192232630405810549171907182199629170459764198514269573470763387203095894502348356427259615971171571903770406831065825979605357968122202489024864235287231570141190375812961848130275843266734674157019414328369401932770372908311462802449016214726043138904733216850242719461428959533423567235601536185386048694012398334967878941190155248193580833057367057630387714019570478560213081914120767217419227156554900573794071903369735698322530187917670511437763764496305643785775797114865062689523805194993111990329217436674366506378470442722036769339433742178300733091771595633972517955479006098943575684527360660118683792805021551449564817980393308929404006223061139232887680654750834574485661083997909904795531107699296791132332000972967269852552320434846156122687184832243576502027155084489807223709216773465631294906366868375567359553678647794923804471214572906788501836271967502059559830331415442253961647851236728531977170973071509845043719096113927536739782873262596346827505871839377503822295757842402264242332840334860062305136046272951374945289671174327017281318331034486196408630597783025317551949582785193417550651525806720590355771286668677861015149794553827336977742084540343284382563536470220012503657317912249005531774471146798067177573054151313747041713190329659443608231267834730954139350082168528997580381887532028003959624661216316240953772326114651320692374387231136346712270336230788380483412958138794715777031736949112490426699642983090860853744559593901838821880261309963673554659306459414774784865838340359913605083630955210631060675019242511411907833820423270474274797956346179133214046726671040830562318685987008112221039236033862061561285329140447434594064888010659943049801200722218929112191454415927867920693565437916534876902498845714998542634906696931951110048093342679411174390287372354582759558477267267368136697351803110958139976905456671238136417799560650992159568627980705353653009049919820878144965654825602064575174989692316357140389101429286532814207832528873756600662376377326139673181848825738126258929310691503531153564175279972142285077800530607628147956660694522026242355305115993798854814109819017858031696694225426493286106664607646822657590475000078526578190358488215592270164721158760781069710182077356617879741315402310859721635764131627709000561898187084389939464946784352784812860788112782066278099263221140662635850824202313083572580384874229622929451328278896950561301559630129575521720877241778569233640896461076818842231614632904558471518703543564405600233622531476243613791341415807540406335756476537182439691965947991173577262859789490565993149539248965338247133294186572059842426612922782693580371196025916658315908651064356879711108210360181617887803136870381448186286708780214903880358510302964817365712985867774432404656591826724600173916339714777306928774917124892852721484892928463468722981670176747906747580181258086446253958680091944773863692750810575598512330385411324146965320100234901407358094672660448324335809040306762510882653943578181108809938073563946460922331648385850114480296077843716849733474766842231534922548928191364288351843196196501137947274849007425622486112242185227557887357835234394776634955073593691861715355314338830541690023570711918192399922713794980881678572162156775396864866486724343226321760683351632990033066637226375082306455920082366877878496663518745208754305149329097569756570131344966454517507552846948903292737214054330329140458797457233120532070876784268413375870789971017188738754122513689265925115345299677527166695446495105256583664081332489484761351498449592326062789495004404856665614979763661519434734852603320849226310334584188685585791082568084238196647983186072656949453181330616294516245415474776310683193864691137992055437601385942962788693407462272666984350710719092985970280975437355427067416623617564986964736546762287136944841117595339295573155848022253925515332705598882244202079415817628308776797583182247111428032349988863003850332076293462859210912336004958506053855064803633722645794259576376993766434813860038253680043105989823365770302090951111841768721860485869344137629503341948085560104094244800854573623258331224679640669583634782252484624244220696545011093915866415953929243986525511774111998051470936304528125915496568827765978843126860790251417341207911972938170240881263990089939506207860807495866711352156218028444691783020610736689556229394613209005481395141710722577836160391218767259087057785349687425782239405888699268646574208705924093224947944043893036527698312690611145738264085203127608636175076598615289756167871653177282054104083477945746116692997850270493242909445465244109071432995217082765094343732255313366680268159359864154676226798439440069399576375304933474368154141712479546661731575521508096924911493066244643193645823467379315455877041326906847783619335233947853800782618603988767813877650277829987063138997184716737145418708681133374860314789916529387203695569280924860363987004088239837149396319479833827947569232209541858998812975956537951431150776097858546538659432567577742391073477229726962812549735794668064358280507356093392745447312047611772441639582845794872191460379192575464119997894867108401450213989084554469405351909276509246578306645123255448180897464887235369168492925921483370563199705135071152289928051910475424513798539514817386875958774582055969076291001970020679433468393301932940928490039776253413565174541181610032114372857327346116661939335998626901340015348642410200924550030488598363493618283439582415862829124612920096508621304016240018857389703915036773740754275984520524103196279580243707045284622114152515289022661447194721371836373917696791149946113026631310463958023144607031584061454002848030223320142585090401039067084018210659326716133070782808210990343570688718415105675616881476697307931036739523345690698621533766631240509195100689463503414288780827315042742094420804741243063598314919127957764868174979938817872856805071540329460904431271237975713561574943401265747777454966385915628601890191756718642658669128217864870961190166259745815237927677102596870764314368990266386145309956965535533903834034379296240570242459400691127506892689349851178415236186958090595436438013746024863852006847501736037658519539313891689829627993208771686612446203013007286730887033181964217811032960348230873925579963679931773187354708388996944378333096286635187686547416008391665517827796348181323105397252395865759439166521567904833294940778780507461758872354471900169770043285993227497478224364914898077935402502803216875024710855618434396035980965983351559781104141822580600678770369841741826800256352878034230466989545665916715539788999165638244982929651270915929286718847529040304980730863626638745895998753491583620233964245909384848537479407552933262876959445117118023337545290093699414717694876051403266927448719554805463864234244351618509971714894461232388940845129497172896227030080967545741396623404748433964885683137864268051767177773719415710536398847908762804368197941322308213756339800123352253180490029300297534787171242535070256452839518805855870597916663633559821716650481020388117369786115415836064854396254785947605248891072976931186876878562453339340293080754258942184016056817591985306414537289592703419139731644848819657658867159284389662950712265085468379074774887209194540089807519512260039716268989048537910455224451574437082806263589267104326699189365328028973159336857517322918997991053405713130767312252678086650296523590263287784385955483412598878446046388425364512909135231906381100879118662932027476529786443362662059038465831383113114631100671435313269474273662638600475281136226940856558400520615940196366205496296867687502216548435975136383229520926499216361406874707931144370331092501888524441646768127404467580678825076899943038601513794385356490652369529319446084081341876452835700285366964274788465421171431787980416033890431800735650690108226309933465592955270481250360581555222721889308853375763092839761706121601583051665964538197665937082101327266929260309549700061530258640049053993870265746289395751550224265795279262740783439699010194414288464853165940767504311999259135286883158813885467264764677195566405033970854491788086002758655211624424754062500983364434886126855587769039377214515768571090987015296910389602464367084693931099223859135948273877645146833521551346681478212797719527432969791812719831503074315137396105727175806232585178541886563913299812087976516767123908991579387265661877590375977976833212988932863585616247245999893662307077694760400073686584784029080697426958160839095514664150954907413393218421306738564643412685101131891018363105566240307416663503532290729844799217746658288159174181511231514789650096134896221148900979657452675165221275289794988046446819747777510754370918696681375550916348029665441185544013272702101640001623540756597910016191350936825187053679936306810293836782368533786722767398840487152366740967089628922109151603720203742413181684568208220069828181500121612739032992494164975160580531969617955736101300672078465269318528521658105832937036168173475894615431747869395546285124750390339297355476516242583556084454261171353126030612823226258127274471712221233931525564131352527174677555505648855224652491644568936893551457562654938682218841873289771980569080447022634614374462086139091864432775322494757917542776203549546062545758767513754787037538573847941871023355661158726502770747730176864020628425939099304390489296992698034415266633980040683428893587645785936131050386231270573768186689426975891133368502811334207519925201260400232549102948374167140133039116039404121713935343410688006660194020465988520611050856110823645388322966164255597621702143537841571057416823729206937623770380729193381511890237668589638916911921627603626637758340278001281819822099367435857849739447411541167141420936026519993187282840803036766045011813994576917612134295481539060683764945363421197502417601019122929215562238625575996841018917454927097247737705004534338697566194072032174372250178715098851051105062961526582059265537644989457173171398173689863989840400754547476635006094390484836736365057043208448520825151271269510725393945448195290438585429910482462760101527154076073006369017262878338239256300173134027329518915784386603484093332430057570683255909859257107736104608013810383654463141708520646234182647911507314541656054492927390193885855957520521233724893653237890726280585586953843051563621133715167286514258948116522430722370565218883776722268873199567059182507676440730505623719168309911556883751456716968658782632817830806201165931224580414218918805159338910664905440501348863018256385953073360051020857969147273557480246187751107390734346578817750747995469547353414588083867675787776649978001481202741958905830725727622305830546679887468264894897860601320731172949859692798853164693875555788604905808661791565765562790013428203543590804219790850139625423131653014199207111745203052458306859043645576513806029906690472097441729109966545971514321539094492151628037763413514295146382744664138750287785064599735118761643930904719096614700312924301582692854897353616657872913508456513616258435950675406284136893674322520776859177434582227737018311341621228694845001719311389227076624592389521965231711402884833145970157828770307217128910479839341696781561610988070497923945799276739126104177046496435366129694502945608015751963478524472363765250028552429596705255093916972822736210742095241337444030757203547083208098435601372310931758757523724082421460782339121596567621019413570799607977571075827632272075997501539958925275337220694666176452932273533369850982267231677671766178676426390260811372705646581063746243614647717309283408765759856862971370376601482446476680502574037446672782043377634468434443056540201108867007040648169528271849590802897158636678881985890623948639265064419922026475473555918254197200371871950413352511527150693147980474312792518071439981357612362098466056080168528435015980385649265199872892069518842057538425148925075214066240506790846706737325603299980489619285604063666256258533066478118439414210178758358001981158090541532653084705612812696694659374314018099770686619768360832580406863251258202703463284672293639056121728417378752157553248642056147454519358862837656705889951365857057645055517106354448738131020849126867473433906480434460883646978278385298023137372148842493870483558498702003324847015912321935593729524808158100425724523032114919502159004192977206288015677923843214785038210020881954923062624378227082375140862866419766783639640011353778122103132670191819821438337500268806016418202123100041517396290222090143893508812622920644679081802202235323835358793390507915640283688823591055055220743830938002273834883200620694046852707369559220576526686151279085662941588445144175111916027749204538075965095022169428572183522940338155042948305311438231795340697371899827868440299028973776763899698485663205246769179925349287023575756560106030372496290085905387011303026713892453356988459703359912267542911736129255258431231634884650751706647776367004411626891720085455124700779036017437515720527176896456969715695501531175059445805864534542868196587271233219073166656851703522573542521277082720002997407322188490290251874143648461032644018592590634539936516490757657851534079544517923223269705698901182278291134676765758102191623288754056880001109467615620813482271182701619966258709227567793435369216212537325163616067816931898268716849595164716593168108268348186835008342861274218795838877880583578347720238411328340175448604382523779740853619889351607389480256448679139209240932497635707701117594133513431363061963326150031039739144348258522794904417446735117981357556644499622413012776541689448459640088896753371814181248083998379372711591801129091795294111428224621866497328892764254759250524042007290056768535452301542266814245992146081145170193057332532558064042258331697153322339636634577876166365428813179217711052146882402321106900732078609652284966995012771873361021538870671349935557793808753404303991231023938295870505924322804673089905302045686947922835101307621002383380695175497629958950931818030057436560079491460281199437779274585020199822007424408979229354483183234373290437355629927424992584686418633449854802294926470251802564565895848598550658082564062845015963230628364576678514989535897051361485071872489222182811592700517198621446888835843842336714821238540759695681021017037239024191255625540765352822879460300188391538250020361236819012036856638197541220749958150034248974803675642087550959086936012180118108284870044398837018907655708540298600900162048333358755666189197692955449675342142223730088223822460044058506771178735913854360177793633699873382029254328768312051130099753631809654769250623076745646704596887271017935995378843114991827537990554760328947521394654187577853249027187397838044592161716373060057160145996554867379874278848407602441673217557553910633048206241037986601612863929965377996796576185996861034698175980851261236487984674954461927439842517986566938044330918280705833010419612271592581519989656283264676203926790003261865359290876617548960904854904269042772301485940368966788697058581484621754539816598771608679387601143968236086315655189836231182224457397923955118692089834154603823370031125131044885955491608354023194252364201667449240467756058682773299506480865901176414657836050010678448607905692945640475586780281883798562548094494695626443478933145400694892898929577480141796404747305491493542594546470798211153224503046226794115198746724757414717092425883555969384910176484424894777023601088425617377058818984539776724165501110817040957300409458423891496007087310780242232405283734081850420991069311285966813372950208653588578650989244189821511682775456308490740914055876019574402653182037617023682333897061502130813667424239443220289330332810884198452064137038382163716845126158665918877546353710796355243155887575899753356776255374856758258054838044312457534704678071491898128424095014643927226867825517042581503902682162418814056881598560750459050050131881383079950869491385492133714027631901196789706201887011798228661663031609974886794456571714659504316344731121071384611176022202243667588692937909954342920992537987475716548843812794193909754000148629333300242239864752453356957696197611221493192829415544201817998133883219138607376505592800458417490299299638658031084846622484358950309095904287670734724955275020054217135137361585065259869614827265833962302666251274164655625844113951491184685763659022662368066539329651190057283793208953948944419308508097640392193775153359856505936899832340044498338689349478603878935946215514794395034037528483166500376785293724931411542209797127284752576264110675754995878288272183831810078119274240766250667329737839384081762657527065767829941711758273145848951688161088984558774011719480091525794402002397498568021978630053089533225851198350969381150280614663802067290333484984132806218694191496444568044156681332472457928607572067824006857724078729298881521623562454323004890916250454418671374134639362794997820585125124946257270958273889444329814497677310843538653079033186731938183605642223834116240366032769686236959667843368018855062382480789309580641768348122981440267991941895760724603503621306972944432020748628376550895368588582826500574261122431890345938889952881944677130703839131158666680712050424571011341258943232754071056951068015549466448500775383579023777777277094566539739475114892433982733579887319420998371363130770924095973480442642362361368599840892708874931093568290338103960654364659261366100271909771382052860370577247353705264174090305284863527255238155488588415036102241008011657133696976000252252084547993055480992691171495090739803189163076484349689214042871790285567345480779061129468247036506549549476503090987910725957815174527805450996663349061923495922923844071247335446579689114015389447965858997099553177714010272756753460946510529701890044441534160322694492132687045299910213503842616267974364363209028416429897451990672766438145859536713688268190069459248045963461252288330186746129551799048910215809154881311024092200683960345750941646908766390335267063934554885741812863488695788399398571580421539083106766691091319661489894357471720477539081154848409530583164640758411551426358619993289133955142495326057897812461613572050826234348279155523727330114113005210286672013407632606196241972217079875885861376362348873117120141998470821583715135229190744595666185520870985247031186505495284380964998790519030366678756849025065106631396500247806845558572599447229905117159845587155660623848212360470074264714288169210549705288199428905509457226740214726073163389541494455059865375256036734985296717417609057828506250238891698488998479346652411494306196906257156277533378482212105881058693969830643158656997158056660622490353646682822818759867854088068514693182337710830678123631444036519932971420963424227002386145027772960099965270782957395165111463847008784824315394358427361454018583470061011845878434414188122174028525995490823322670737225083925617317597293524315884354717852786199377124412266139267236734595413422451281630554712987168814666845788066632121506025427564910839052555770584241874272549561205620657753747289385799875706677768285015076641962559972708581061331647313603681560106433244178322592440122646554402999552775732401996757588104692039070117702495241839123584687293083914075695495441977010136179239286165195307651144475024851245644437801356749429174799869321261961673187737577762767600138327396684698513847244685216842294957522183550149766613235705491568334741098237214473265460899033247226185993211274302386128742941792711396760374452448573533320207853622545012782803403833864064846280936822189687092517658513713725105996675004801253238732745994381487849259957795532124730857503041442772725462986315335045409851232444208918963741902593476486422930594780559616422080686822014010611322447846467580577670168891824608858253763421747666912463105510657675148527676036136519567991497793742402597430084127017856715473214543114652293624832729091910897730024425364661909687930890078892750895306368318533046498087614436637325038340242784573442099139307480912086049746167954233523683107660017618686032935290108598628658353600829658146346019373949557167573498741318062557531615722001587630087134621763472862238990275096467568427129573397794998615849338652400604075413334337252281999115968885986409120535788879032482841656174139704447935995211105389197446747066689098972500747675920542904205447657849265087635615468347089249720314477339198268271566307233866264893278086792091542152183630262468181497645058777937615532972636489619486060387655785979653959878999446490354707130587463334749969291841833749389308558076533211312983100389474339619246516317719422791148835419678809796052367986989327317634293674625481458374676336460024474409880468644488700020928714139942871454533819178918478133358289420190366554912483384772425600701076944609019407785870323209018028078774884987813201679242840471888201002684918487888426497547589834342784807941649646944001009574353001269277577694130549234589762239828933793067485245579562306719924036841964357782824215562948848108359173513277696815108910503927159450672338983045286259709204586615319857145665737890565055206012331668774268687482304070611757675136510740364170048116726102252798377428734049228514017632643823047288291982899931537296060296978209251164431531290162625847850802250381242954208930747169649010585205975586546007441596267219846723230501940446835087344342549014020603519895808047159410213890717602588854556089293836042452993536396910387326937123701316909670864409141938024989851278460061863407134507171706798845655096550186180335563917073170688037579315961903757454832317772177768298430610344212877447874354833328562840273968618240436325208114505538388613402560912678149733867852526377564777058876122109140586902339312606954588709475705654253619702276763860306182387253417438986205148497669875513727195929938239518363514781459376937681830832670609117997395306511547857632658993983095999883436409608170942574413536938908237154293670408665870252543757981064313695257943780106278657601389446668225296569363814484271309868288010614627596785277279442225555412129199635554778143755293968106595873677640182413527494610445836727720009646694082105685334983359978605934792702351302836579802312295683973977748153472793250080900577245906607144190414607756612411563174055214355524472391248715800326501093780598877506574396561074846407205728521145657161742270320381656945061331245289968190392891830783299902222047237844906289813453984237072505200471794207900363833993148769680380970368157651685895336442854271175542698523776342849077687484274494293412783872058430044817214534745859711406281921009355796287524568535875511257062926833137923944185913409453018277738588721221376475668142353964271358281786814361606201864763830765751803742358432106335603994609841783399566679504003184355924660965161733884645652408433593987183228566688293924009745324569436953839520021830738134110679702816125143495048538945654469346866855776044777008341890467711293677978076899454384276963464580052919908828758293097903225639045824941525237867197284812595406373807298385154887451911004679443581228097296851539011503884648178523707573440546681548801155820806448463419438883573691498002996453412123410128066144174712629264027956380793234268576687898402580387303391939469457743661797201572287762866405230275933392087146353801463293689999455008234122768170208283235576794750096643294962270111475191947007527365487823815860317888066604867681054597188083217298559581643211397541911851024278573345554529028914211852617955869077674930262803141786009978066790992130191798814184928982650259709366057799884835495010335161772062372013805555099248065420122218323453783593777059988830406818281386888670817561208670327901323773146307890888859675069222846232860094865359019693160972529592481615092143863729767795503721107184924609353654666716620549293426827558022563074768371622149682883798832630271478250275954232677981643429774569293452488069863235913569482388075278413139998142143043661183602889694963126847814565684765269603412720616614105419555817981036671517887058721943601505700932775025461942137759309926540721126467210714816060088842117398651750599277025019329628959383164952647553412099348292596713717307104528659378594008928861630831250265259312180298273068172193025313597034525777367447993603351424196843004850018595850009547255514291176641951483462641655556805395827292229672965161006373255856499707099133484745395204147955300109317004962285403182145145756327886164001957324321417761546129115624927573053417110113155070842010744005204291548960008246315067862165937793238052061449815166780863521537890029573578932936094858356081750251442272848496354830904449996811744806249245286846085559149667116775343134058289288383991202433213758756707433423512009881661922929326016504384924848272777921129838744610939000388210833910895441022058100165817627662792277245818963529576852519152516598407094497707458770208254704720909208276182694254907890364910559222035835809512558732257017301134668948168272525394468551599502239579335504122057090897474583641135829996982578348591848210058693741524936303072438742187149302039116081233266484160197009054137496670368334747424973842814731979576927682996041374762075211971834628379207082974689971118988818194804784535348421292659875629833599896822241020645076909603346035377497196112070954494362581773257226258434043332560344224620527455246895106361282689970017307330926454945280295039034872490611970269567854306778870037991636504077420102131055811375667158862910653461201973474641514811822524368213086390598843597782487128110135682396427164247203606322532507367853896679780799083155191266454442681340641473182188416878835527641257611759418767051442167053480376752511909956592848695651674074076357375916167001367839180346116522186451777579033094556580727017181977212450476143527277692055833612489581640607303646875011325943480621562975200320513357954485481796908150915769830976814189760990366993679587694466712022523131417837871251965083233915397443432826427476534732553256959982505812787159510584701699167470426848377870761341073780454923781975604284580081749001014508568398726651367578518195929942396229417574695316367286660054295949331724675537374027059085448460171329679837493065301605127396594417489307909318787756907339753092652504111156471338711894241107752247358231437903740249209808531229100659965092159124578946392514124522907840934757007068724837208344766118334689107908306862742734420435463997481893936759233288077125007963739386733423556419182474279383993815292301098022528454219708675554104802468217732812450112016067510731225238708006419874935995741074414179370432651225975588215649929122180717565561186609833496010469545908462862584765006658716123255146523779252088964638005510279517227823359954171702180464693387547084432138064288217528305233924620935530979530216003368009117222632908713038913626344066519130806109255191877668887987202821054424323087898362437463651900324847526945236483359157080460975881799187290926303967882981196639079180463694172022583619361844699807646723932699036129623557114547780069444858589476072877496839724570453279833491624057433076474055700214474946071960064825975488103197054877496082693958454469721682724549100526371237915657605700351155904206900033131454363776063733647195766224722847505748578210178607438155603670331686356388215885053995777124989101950964244729867373240391347894490210135672523087525069107923080577337439609911307741103875367630754329123444500285332545494441528917882935572860820306985977312102083611213549259833512119258086616752878846109578996055017851897945794521220966375594766876758110507279753357137706857011500220403854518446559175248686038047400307143665182263455408259824585720126254493177799122402112005033998365568169812946202630176629790598014189182583412929302784778937382941538782352189156641812724516563337323617682179610841975018309585611528999296136436924767556060590028305005156347434032933173147038713679369303350126979698065688408345974029569976242336257537855744518297595422082538511529072302173048428092461637064243768767078240470786850179341028696799836130511027755606248363472806872056017957202920389213117019345935960931956639043288285943007101041861334943114076476144070085401423331669130210712399157152497725228081500896420621121432157611123945883365170503259221508083305784511527128507623289184828062590273924457810989849151543916431800257491931181759771797663054446574756187475411143259885049228861696434472745541950048041572184061381220895579173651585950674104502613065660115595106194030335179751129008748486754427025564219425498048385967133121076126864059890852515957291166959140023338263682416739417668350976456321830683399487013795774910588426835748562013488052527630146387252477891706713424350869203008204464010280488720029190327843261850383300287371156003039996173378676946226220971932749998445640782402309037526884121085126417517119798045126489825773987871786759445031872254129875710986447311078304736085832922000289175280173153116055866779600305346585910424142266890561857858642711750379695960342287583745015374184546030003947947457350394883033535962414424570167808981215400884040852804171186983435126351829891809824452729817845212986158992830765076118451181447199178064190772060971743492652350109999541234295812941000400533461651423127867686806592395135861140750691259603640952619557906866850678448806130209087443022060848141122917317022739630091395044354707715630145313715669295748413715772787585765994383242535514242337630817184090283897714284823612776383261132621783239071956126399851498472094594791922117782932516078309613604627383246264098426694484935116861653664261778503674702191254570096988994562243155627452281478946686671556263590394902493097568647981925950261554216276763580741770298201631360798624620836552742919242743561127374310280642748372553569711913925124133941575329876565133588417474139436529324949036024941429869093876484026939583025874491257848364160835387727550805571113378763425213823889911033891166266689627620895395522841932674905798920371593557031694776407958341958134516491979399961821209719903909451534085087758121440002453888155562549414402142476015729592224115926345293653519054774552703734848827136729337269288056616943430223897255632720107396744036693738859561079346518671551148201299002525923864877555038077316606555471507441359608603267820396081771828846512824632124609608272286104309727616888368732020426418575443925929392319555509812329442258915068823846263312007812497457103794433878330763158721153410892304775858291062894428389576339065760252707735861461315245806738212162605156023670366609647678941288622663170292881079102231953133391428232695449615790394931742369003227283364470255445691557311660296210503387075515307964232403230710728553407329143701945759746863615680612313330090690342178317527240969876878862069248121841935082869607941611892871354512381057014923460042053700753630022402705699162980404153496870500247115428559987559271773693584959531685268475491880598171454283518439625772219073015364805855522075412675805110474916894555233002275611021615541141759147141134648838910063329461668474557018879626267208109151853873803993373149509791159487510327772120848615460024892576118892707167066083368067696042064669600443094332243113494029715938859596694678251461008203967850810838234406106081072750745986327886485289333599477596415240822194331841923297007412188520959065881580733258585347429538543910886580178058495392436180112582118823206125333796214016508183324749217940222622027980096089038752100946613195553375254169766145432065533174928165115710162363943465748176754326763212515722881815707009618089769186619946368281298017147960071478604149951851222470293909304093586757777923061376554468905062172543064381450590734343869737770439812407533206407424210583419765286446101258303858911322933754589412380865842105137144961020852706950145574876301827262472757972377851934337089590353510182038734484680662844410576327311525877659984787376140761827117356639754912473966921478825594211544173858219357865718403718987880573145786586303112103950066859653092947688007324808856007348859540547180509319810249288741818534526570631070686481093107421375258742980666969884592931869683102815981509347124167859191738651751795888496807094828669858787001478860015929110029812192513784626658279660883703688012460312573935049601575268857633323889810824908788009856581677104972710465694869656111235308021539054439661343365275424277538659693810262247124801808384186558052079922402995426505996107087564905626678191536385767392141795546833791280887351526013829827406858605613641920199617546116357092469652316560462656907085121971998930897612885089866150628958380231295902494429873221560338051694643159553960241009934088460210712891779997693537859774782491572075579760541228713763592589703651652664253762270697202178289103728274341267142536280314270678429815939664889944153835313806320096272951111890619542981019423028260733990166136368827962869703672076282730944282651330459092744258935376092559579933052539176658679730477045957805829322459964683428284172213813052274641782774926147560142351302882640117233144099212203439067180586078520594351487508216565818044812335717712215881075001879597398679808186871595613517357678155923301581425306192704864872837262657171496995280608917025468885020615887763612161135322108679543196931337356296637607249977658026632433590908214251108149576611111933740933138687672614549849881601360180920911217925394209350191869793380118154971704051782372804863452354963258620609808976282382258680483019331809070659732134485566023139725465988180932964189206499226487594941466206000026353623867956447409390627232532877126417754296310531823405666501182923298084299862509284095102616701744436930997356829152143012508437782460977351480862562819035430356698545188098401308844267307021843533010358419444060222572619193196131199853183506656539622317411015067706589541455330859407745954221158711685672419922505735673026683948750125310250270929093958129547133109868901383834759892426225033398265709402015355771961089642481175917464986310264630370802526928065223893914559299015828412472573314137411098036244854377071376311220393514491608654285232487444936436273316754199713147734957862976081417405091801257291939592170237277335526024889764680448499317440995285019923640366580297732902527240197130664612348073717016857884884466823310943167053769394228119724991962092940663681437351607545927316623964386854589847092703236087920028237084254669344527399931612484123472090919882887247216207975321940211643087580449482949509116927945951511031047710273370375901807842668452233252208287731933944545366270168009807195620890173911050883541153823986596765856385455926949210234625524881111833658913869729893544737194313482544932396014040324684694215442958463021370304527720287527051804315420374871521972705871464515535558322861672397517108750273055946531563237428492508011054392652384749460418219460763917660774835788352971815832125558724708164971687777423350462072863035742614106870715030807365299112962547965937398021420686827046539664617403282659438061391992401026032709408356205706865363693921707689127161489208871428608086776713695376759473204347775373362519631154212737253236188455802639198049944442465590120219863451090043989600919156386473004576978629958229926411244493357943989769152332990812595159447674578088309464550982971015005993478965940422856661044390390801519635510633416652299815923163518702923335629267883631186082279474912985095885392409928321241572679879883134005273734640201281964582768985238019627115820246585798431223487891144935833521648129883455055253032812054942716060040867831227299767854807467051856624596638185434766924699913026064474667891696404076259609450669761209205482058504839187004555761318171492446324661036906245075519052851753790910344378699190991452760146909554853612680074193473208426509988388210867712152229116305157653033695915970712542368113105240101764623274120196286298407657993378025759860219276289730677285081589890486368863445928656742250499880100311839390502768464320611700676519824098237304730940236412005177061898608738783663685731933668175199777353521970937220013342784354741188998276743986233154777703952149265277638414076626991415857287206463389760679005276503505699832544016731371481999944245993457201507583521503232501959681704573790053348431772283890141756398090352624705896864600181723896502874821927998261585723848095383088919211854247285558788595589112239791326703314374734320955658948492821195697587088200232923096064894862235813251851123162447498090090850425117422768027190931075206230535893297379901073904937318867200793580027389477884808767885375984074837154610931536071286307803380136936772715236297513143194821809269206640126128934737070906314176450833981975126068963302203882882304994770033050167145093384402028015129650850998805928166912980126577907065818938958491338964259548474320527830839444356200031592455130014402437973463947918070495992253217476356225789738807689109971996968536140133074795901874767468285346022531915969370019300720053640082132190960446002349451441247816159693081151714307711167466248799600637162174117363602148013518280257254367780374444730846977325650036466199867528561774972984160409505816789239318319729360800655566362438797848289981608095790054792829376866036216672330399028161941451523988017840115023046856570096460707038885407244300364063689646439608590832571266970202251890070896005305203732177689593987838096637606526989905174667114564323533146867218345483206095237678859394167356548950691499891691839371517281626563175585491321726250303870024050049508394364341165503926824837989272763913042250132881800149138239931067226720035386312420827921365254871534482663317619425093107946569540730544002548051803204742656538692379125580038382020574794179064225716988691849029695276439221978548489620998734668753468481805585045631263265527925798865483925715847893837252536688824623609368862340655771829239472831449338995629526233099635942671410481788872059232178262888669274376944074813792826787344793068566098486336644111315653787766893602883455856745632498321716899250282089482362017574920000616486032963711717812654729389943692246556733468808649807241023331941044804937998339790544357134010897706027257478867641257296894818952520404670304241809723966156491617514672921224897657901913240883002785987145521557707057714170222977097627654916100382480319337868319645735496401510210967484753973202099141978818539220370833009620040588422473691246970841337582183728177587411359226390457096911040485894288273024367649055433584423668505238743115671608437974234008947147513447053840810874335195274952393805678722516917911464185035197019520325247946888583607828551681628498280105200037850361424107808001295065765263207800940321138752384059763198989885662894406435488882189870351574571432244613838847225654790343437753250807020105135382592111993291719107360583553696444320993981119981557926042220387122522596862661663766453761823085988437715505623746543867032461746905123527666259092299103236572165794882154043819768790616486781756538341414495693017049061353947042522245876965831303932108272166914096042771787529267744156602243407130745975563164131147198613711186215042491413531903300000125749150743689019203024134448448248914539274943876816576174782565005871919941924274234442152435341227064371689567206436563131316796670345499358108118505840534002139586607058323840282059780783577944653987321127139956491192513414548599906984032320062657223585327952498768107275998399752162687401746801595939172377580102069480029907289539033853793557861808300679175777264528205216848839571814169267185369312032286366613447205326462839200105415320471305713731994469583840262023079285587011947299222481510195308961061971547953762387720723427610388368604090251799487634613242877814939666246615672815734210989734115090021342063218102106752837857390784117888690781835438870248015537813545828279998171263867435367292093555579102356811241210138146350180170096048243273155566556359344748318149759265550983523540580819178583783794366276750800120119098936345354921338251955723386269215729548430280333489990515589791283774890579956547582668986391590258364532533421914992155806866794208044077414669404525895469736309683252921291926526693435156755687930029957800148204713956327464645410618057247102673646275118833062572668405690282066747374198821451543799056274248002522914328804048208386194066551713281238056845071440947706755950016687447168970847629414723336733925245005385547559922691140504673536593695427917564664792148491864034375669930154134226933649647014847730615302230683604170926188342995945627340083408325828249232616359695309290871943580862963423637352311885578602335110355797659143504932309253997162753512146008519282930545576366456347569680504196024010262121231612929018237098224088973198498669501898903760664322395576294956731718064144491529117149955248490402592922489513221176708853821462289497417516039486070109286598628121627510510203989830892626316314084215269874303913617662338778250749524322654879326155862427880418146660015866766909724453707592647040188275452077137780847288139151891994411153935417707940895801972367410863521893579548663629617877677406073528298089476770686228406978091271715843691398365536307786219270075154824420890666884861284631267681124452376563795651368943125657113941500385807273349629611375054952586118533858475833600496691910953508136160315279841772644243317242098975470399251848010364698050802791498248963260696934113519741237133892370710840692660454390452519152601829309555227819247277277471018220876878581626135451738103446004843346648138924361191307292234842406288232251965206430504904159625699363973090744912193904998174735054840736846751882699641381201013359012712721708113978714117941998903345629770558672477702279293615318503486446776855463678587867516950677165408977034509180043204123985770564833918084133221903607130530009955391099680389294649968127247255066599688226222941740305978447494383940533976180594109148787915130554753658096864039794969232172359174661909102265280103402794924794158218990186313658904383990938983194835528982767132955377787599024526481434735454927469037817181028414110906739309464924439883626803552705794633825526626418149296520357559987173870877164582449225833502702734073507064598861408488362385908027419863513500260777869471035087706679757325984709175558791806097994056594003455640365290531767277566237873749816413714796676552106275627329712613434550008875433975035647298019963042653895309862062258525254039411599442182316704517743450604429150170867937977421950806357313845425118474112530312364812252466616715662781534513980445114334377587950682703205578972467091786736792397855562195021499885877009844109987371303887590291437110272399451315891904255430403839536012189849133772603383823447965228702542986906616496370265432959392698863498341327844965961243883004176974175123294134173593212483914090366621837868166879430982341571230678705798981083405001976860165691659455285081797932887924423867868769202963324780720094338319864940382613002569579425318364569532170099766867562958462960022643853777470930544079604616764198219644857487366535086075858603816885943481230006481173768679469791982674932311227081727359905086165121267371320106135987939291202361851357510726867379076841843179844521962379680200053804474844942511978682033073269023162564493186571298582709232500757428151934748791143594894561966113046860472378578397646221150158977057821474078498960438644208442380360164605081865874277541429822695703563801044999690882507136350975194988605573434877329058617036064314923813246618720326887373812042696987680036784442610646249701775762993483164227143862155627565415721793803803653831346483954542727451710382993805566834872164720620367919688175148114720926320311678695242706319228694301564192245925304243466014330858210120227235783698728274892261018842814375648873543985077762593314472733465324881888736083209500280884019232184252265965931959274168891416242403663163818364400631121099234617920538665816103984481710513991133490589400329632840506524240618138028669515720274727648929926303669667791094853729346195028319312527717772607342528199619843495047030105546681177538232502965438931692091885024533676237773457298849703781416775595999464429202957435591537666756940107234214712371204824722160174176169829247207725512075569997338256176006835985920098258040695568527058066218253950089171742808760267770371909152767407495580727315818846052901725078612086964856465640974246800174544633376188296702606301260895472411385157612305994494350804400963755705029066143024328367672513886614177921468223048255368216862716118330856501224936098963105552206416416614559233105577365001024303352893499369336990043915975453972128462946472900468455605159468735851198833703943200302620517370467289760968009314846472488655004616204544953546867803179734867686509384642379555549729499693207106652717444846159454661924297372080287128687304882996123694974584504036756089233818008918133609022171126973452409966412770771762704841986889754285746469946341203643458552409783899488122897604723044361913521928570426597062745077507302409116435369252390590373593121844001281457766735345580095482569557867550699090574028486093531304150621104142059095810970710863205373945792941066861853767835903846178402438092795438640624895491337061681486855035292032727713532955136205189560802570658410817463750283018334855368605362782286733875570800466480839193062433866413603130025583243022226288562928983279174679865611584227388444065236894822913218300253001811962505960971931258093569995618108713825516639489598780261465420685045696507773470073586808967478756119541057176931816925595751553810805585564550684537027090444883277558466597861420984469587822629005092537197858053542299816621427181168883485548871869741615614648013100376784024850664739416627399875508156297323465178097503014217119313707160338063030040132417063703603188992470159127790980370089339491787565384586186073075425592302036991839751308009613158647628449713023820139354099351312944808735160749871068100156020372925371276278777926270128076153366260209030549666369063649619019399179079119391467281784133256143367579177801691655774178662714190681289004412147966314960053567824000727463398177763418356900911973441607897035247587336280243290469028418842970038154106284219987819587088038109848135927527164321953889889221916854679939024830880330607574931066783466030328487382775863066551542836083075396396725557255190309238204865852384515894974613694822287796626155565468096848054305890878359541986498922977091243433017209094583231116542495384225640955174419661286866932791359770682776143987553254037275385897481259422316369673961828031644495532902348467010412707783967618558171256777184411310714594309594846118354369004977233125069298923512234366878666741846721359704733752844854111542312298474151411178551629656390907300862951072714197244277233369069523184304358136707379207524524877840456775475224568724244349250863884008278953359455503445380246988759596268899899325766280769609428184828202221345089471356044840961135823193575752378533281206141546522267717278690375263938073198682114798795844140357362888285539452701044518319720979550170402054589834895830152424662030100069751330469820889805207580447589898966761270037103424293083123217093420373458389845496037672317510502408979852154353986082797095446253242189044532164017185718106620139223190912953705043513160147453908555823703965738280198351890532113179388706020029355598060993379626545396651468280791570149598107095579694479472459329797432420930100650217836656502932542500880724099464085908892847959709102431345919149576997162169125553518686433364603691888480801268298463522249008219036222287587448257296117278528163182176804846759570061860083057883310960315659953861798638916255939938108881818155949482975093267507063138250725182528016910442687196658762778486786291368623844154231254835121990140025631693645973319497169412758620270021152430331659153568975954691016115198785842452285309341701617195308043506177116549391168072547202369428519578011737185811073853057450573851856931637771821960442904321485099157071790479281683972483523181267707734086843512138466267390295785307659185217835570758010916958905608725433887839651290877369617861147802558871120836570551638336438420323161102780516093177109830013308820103936502089028032189183110540827306353379976956982437357679658378015213439828126239817654766054134152291246936955416659223342134035477344865880523282634395240548756331907873706919203095024618309412943164774314410465020747675642777503096287762945436269318388097636059652895402807124125205072156048405970489518112533659139525537216556168441546245370979271840117065682703336205311484454342817752901392994923775010362521876307761651250832310567899784487073735613573028643297253159160897354019674980856836762679169576945057531857216229397085012874386357737386208160875902609909013050016574591919165695128843491165732262532299426376087609442242383404044643505411291378257194791938643618085022851257199766794305355092461319603247174710973129581698778932460248384743803492785243147297512178285348089173970546175456226102175774386977844156085566654806050897946321822097395990068725285745396766144583592004556384274075743160320449044750951989315648368809034638235858545738145548371835314456898701153763498395868065604719341360003481944153636905578852243772131663865336778077603280674627510783584704251504837668884271933888417975374345259131310239371055126576566462458454023823463949552766719456070454262328741513049661438004740425803210534958584437981441098484725836388802611913080387467924327428070935168724733437850875744698028800578522638529390336261648756656694652819924163550034334222561951921486053264162233364445363579061896794049367228479354532486493169665166952452550539397331069386679067598818546414217262463433070975273155124876849503049884293075697250563771607833833640834226394980505713634248853913716690452224483056949652581034955436354175174003837749534240222232331649491017175056308608352973511864898509597132456054611791574163640659865541152244685153040682109123391852525127222523578987737643101349463161172427012257377682329791935169890264157929999938415522917543076457891057335107774653290330778620333237923780360984273621058008754563142097266859297821461225842046658985998667146064264487227885664593103963673665074599617694722879582401840795843363998937572499997172380359141516735963369999899082147597388010798073046791379865818047194892541918094521899893181422054763928637055946046077739642803924577939123846494799833394981126950849559180975083122733523652576706635426285206275695918493940847850338299501676914415185683968249150771995281986715478075773195183922675357479338926602753016230499166695168574251887995143446339842330553894795754123322138879599162206233165555026420713144432300443466093964175273107403005829901913734729786944651116991800920018874089953854938301032168162404160150152193430782012410744744871350506923831909913268860917141529467145167300067607079897607173655150269991097941449620790651144966716952142470758487346840789088844910762677577533568101090398323161319870316136867693497981113119153871263995909659145723400050376477221095955779991825569783104030698094890535228934745852494149029887325428478919550161899472457725820833283975262587041257338658414655446590168349589346883903780795587767128846264435234268062525298206558780377651708558941096295575642308316990864344834645218111130867861477853208217025764009042644711161307046748672193096108895893893554915562249621322190071539570932908517509952311906621277194578008846114830421374893761733115515102795178310373502429218298141349953776029751740590591671966620421304531060379950285741014818499544334657251831940120855980150702560221231543932053791457711678132674155395067936379418240748641237787866415657964174661591092126976764967594055695739980078643028891532282081325269970519708660391717296643787887170509982074317534796813792365376667715430651970313874556757789558156640243560044154234162959550693317212273374396804495249784591247229671952269822080077524728498471233525538096664813732425536910247899809413103420324161595732224700022363663636800210408178780311561784576733178003646405009122051410564602085262373740475007375954160676123659066146000152785452140649266014139599769634390789147215505963306345374360875989768941269357331085127858417469627295919119338639015283926336429491694439004588022414288882213169113522440637296688199286949895458517026492653341359030925666076243562160651972337394044068094756433316128489093576042435425611656136802660327994611943900863273290067434735232505830189069499543590413501233743416579430983059865436264538682476097665557041646855572436160594067885592915418257526013500993783814259703207450110710961216132312299244820433155309878306816471723336243067644807797318500673820895051611392539946494811626641848833620832830785764003886563712479210581389187916240380225592845470805566469315271228161752785049602886984769338838816548995071322043261120201054683019285914959232666682421403133172950491234562240554360828833016232769317034600978659200622492989189676692381488840568396856451679670638237237720236429487040749236280819290407437630601388471212866584495542565517754003930053279209068977611216803920660864862596914555326499599681102994377815697270133449025741834362562377827434148353284811146356770355658628205974803847730652521151804001713079312378553138436023853038243091476305687423018724139561931130682329290856397362506952366948894151503674248050950922527161921173198984741147877642924741379686003848186777063759245035189315343455572928415275378189915055312283126073081689018636664836517332842635003133110113131951336490539253553067051369882541555116023550952278719122466403950010187476338856740153875482088005192440551495683518360516078600575167067572371313504177775962502681878346027896430252290172707404813926897799304952866857831977759610816208439613601509318476133009933914127365740373331205991284331319870523112822284149640935951233331050025599897343214067382133048385413990212343210775873248850084766765186377060238083709298961711605073919463124528210188533532454812387707858684624866597403329383973103303779678557401819323031098291710300460465670677675620593654729863469505744422506826014456280387882087100751478346432501681615246204722896439121801133998444358124421543096865152007777288662254412411602530451511679355754807077868057004255461319859646127268345277312231745847387322601653971826409721133529351287293377396955998478670071785076946344637867769510694927468234925241736109148173363941380702815424290124063583898778354204399616386133606697359529654870554587260210629629090483614213236036765669064187021543298900820089900586622649000937715511474735039337854767235475561035388457178863783237541751321842046265775208904910594799749997619583031349440776581072875112594778250962930719692617026440018907835525901746734984429348173835393651979756776200703250818573634491626749519112932584220193865438513110509024916209470226346493119805456391567786189180641236182292473140920085454970135515133420839915484473286039914067802780686378279408953880693849089169828206494943882471583592497439206115026698642682365853909712510330231167974501308799161511743150888381251739120976480233122059472323082541671419232791266460012260437351071440958905193242122350241072087926090150750510156566270459708339966500695903209220717275963293059885139379664669978266253213305191474543734251229834037252729464897461563364928096727660535060316624910339802858672069319973445395007349081143674419760826255281072877223189069941834982363219283926468664124853031886002263625431743034530028521304655164834200659327578667668209969409698356914643783979714816251350864612590921626023487230040975605856296305930295079728374500841262554304790666301286808275119661732231512265870662913680548471839636682688125625694917108112300066803760531829210983371084054022487241206598461876935104854868236525598580092072259778656053545153949668610495182769851723769152804812409109909351303259532472749385189719262305389448281846665178992402989081333057182334686119673606362450390631433386947335687444291201591135592953038003970413968444178608728980578049018505017166537493889257544410660634241473444820015992764827713618271939182139742416187799674550085038755057550642105526328238238541448395779025828232176130449297107572840626759549837366719962849837163828277127778211571555138340034815146894171238057213986973373581867285292569713882370532929720604463150837265736869082388243306250122254385328027900533158578491147411899682778667038485546849481469405112495662049102187430112059394330885413179038712490374122714883179371637628713441342005005554370583719181643680258091291001267074533549070200367243125696792845087032580701753583071745936929375309412445921936892716910820078638878031530001629438439271869448557344216423818374818537958397229241683410869448017298260273450976755658092715124276890012916844453820180615090579764169454413567555877101289562558335002873773876714662295651252698624135321604343566194056545932032801310403477208190429236503175106346947190094311508149622549274576457012709419604420711398797922678420619660562620904402538378604937191216764596321603397034723847216619116825474021551459741894741699294716497180239119798806451823708222936305124473943054911299765512733512018293699102154900844133416662142353981921834581105954065874049183358304670500506678914813853484180344600674095712563152609938668110752379397006744389206358204469165347641077737839736316064402434579667387067810923262719408906981249889460098051146157972972604598608410999404965443356692060699110371282224831429278272674185742835719594027969395604599256904379635607351800552037323839963658344457525176841413454638327246212907094321761141187993285808814297414468000883547657870558284770418659153380279991178165809203446621165185682592605171246416137068491256535494412247479746863953210765194083964604502768438395737010411097642185657997336079362906489016448036344678578346053724032213125518438197023560180368696569390620585119649515316782484446719079107072863883349341934802489491500194199704782069879203885298251580807094807175406910404253384075759004192188041109605666824336266348470119047736852473747089011144435888035337662343272517131372628252268122139748626344753845186382009014764986587594250478540343022973115620649794329590359537436870824836305403658194602814361408258292534711615988670072183183863755457179181521128236570810570110857256866061056359525155811667989509149421225826048168299342610573731218247624021256257696153109394943404616212240719459375174096586010126338275682969933277765996584616476459811614367716470568069740646753396131455798490748207248318400472785122777603457946750730910524086528679295099428383578535380643158472788334655982943871021452239008470635879852315872338450460711226398116938820644432763757283575463527320052505915950096094841142742271996949791461945089614817636836272690143538914812876985151798805384371763605898311218076739327754982175823463979041170406053551894788540616241904947394610035270816542181279970349223068112697024649859941954606179581458388720413756930829060723798968470721181235436034086640508931468981177652720162717835829910290761560227573496725016440547971595093329251512282402163449722976930545786380770802786454029496293519151633104349217427955516977582564373725483556046353843430129823071831298055113433699388861009941938254794611096921847580792955924808127544665615715438187016179506407522009588043647974047797183389704157379922009280064032989262044396259366714175871016367718487913734519236469743134896138366390655103278628321391409766244020195119804173230674319175778197966652052837401015699478857492735755250022491902660267656341651115705983406678682022775007297748685139405567090485271665330487199807066831419954248231630206869115370680718786732868204071115683492826526873953115072418984330027894771269616829093537965562462904020609259372719222982109909731148597074756202976790392529374562843320827931519243349719022187871087627362196291111813750111763562858654629024273656960395599646652315136125598495682117348851112155809169019245224541460005439180364093599689686640420847613390386717772107411598403435274283766505325179734829524437212558567439677076151647295715045743804323036824700956808844907125677581271748218842668766626717470648624998468065131987466103058463445435002981565239401463106476212658257980740310586084716988004565522439241181497690995964721589436539388825319898260580196781094556860194570804675599125579157934298617091532025440942593877984805305910882483717048464632584210035645672593899799957571717254386384237879177567837993069984102069146924471652140237932618600027391418908433072805039390995273066651301999270076093822856224385669837552692271153016616524942633102545264078210577701243781912319193800934831557239436874255667864456546123215449199187915770717003180256444538965835637210350345288639357730744620953011251850286673354110340041234597542763408288375198468573172601319537868921691000336098736631696444502860574722235771855674253314050577185413306522086197807561857354361764117465976028364438149594753603217650926481778476613583299835916207172457840843388053478985763469905706328835255273736848788794373363484554075417427386229628019076156196203722665844250364106072039926644512086544656259305154694055696448612301170162697650071937678142343989007561163846085318373007883643045715295012994421102809788745280726565320337069389226761394347898264451985062509466218412045965932073833090111148785337911015726826349540634832549257563916346545506462783395954537994320955846897536399807093881363234948366198444980708906987622606720625716672269495251078432648578787959520640643487447258996044821139877032797176504370271673507193241765240336991141969645327463627055957359391260383921922540994775528873454611753192797527472558698286257490810051482225745889453096817338796222299997039031917194047955063414810352051210706237275042552351546068458013090149805879766070271327905291490090114900896608255353188282921492737574476530697781518133467596194180283966804387276878160801676437206870029466421475911890974564462460673836845519162197468622156087630419850629163686734063241948613333229807515804881077938194538200457686426664423005733526745504447670934965815383077090045613389828509851662515583130907757418919831324630175428414303669056348132307777900070955428466237751361243216426276185627366764345064570964764992346344515198446005600624383034136178747439948895490131636825352958696735369571599830990647267584655401793475696142247774116963863514478731084225233799149010718657994624894666949550723458616265025649619603993694152208478610321458306011378488577579495133128227197303000043981643005237925795577918588362356677732214934267277829402861660318573863882590874978492672813507796709199919855007089161713572901298559278721645559282233667079726647943098289070776133163659695738642301591779740909942293102724405745198702734608169868853286687367853944528137000113880157956228641668583238045478086444758676745305139062810221328943732975064847074009566717913904683643161688227198081410186838803210790339036025907651621255825570032316216345725885175337991598584411868167006708216825504183926407868289038783649850217349537895582052541518631969696263962581396624887817948575469152299395402323799004745342120534815505206133921444179972276980979764600728905853923555069775394086481395061728335731515534789639589266425278814221432113418439045649331849790586926486949614014201270117117306291876192925278877182977872851485020196957783725685601140423129039043531311195790953527269032338742469748534798759211323796219855136627523015779121856414990761077856367454395760082175944617060651667205054333703492248215493525644820992582051706137638414499144686909288480033169021829288036205524715715230159274893073388267349847232846808878466672550530294418409843227684051160320816829392905387605636039842502982400361841530180122920536554554417604204874221785133720653110130761951551396849334617011990696121038647433828158274836913691826421082377454554372696905911817828040213762672633153185072511075304915085975568624647992395771625643823193449959983540592865740932652139325004721783065899703763906515092490804645317232886737515251783849469116112023771139005677100559839009339759883923170589875915419029205438264245579079838274871370810072126691545563225558311881586700587107359909037861535856330918055823984432533664895473596856247486728984925184115929650816190259273973384028606548730964630781902669793105402829754547067097011468543474792017539047913107030605886190941618295180641096450592920016505669521974062942278258442084209016141909218137225405289040811458944635133325717339612814502978055682609915785399892157453653370045643340843868389739551937644635537639353803593457547627423822653088445823904080291637668348158227691326469041124920150214283416833573925819445914071661366560702086103979016101427396836197164731262897134486144623967703657937948291284087739845315006453922743214924875255318378348183129651085815831547064509888421829197687193166928618457978466790028664120848588757051089362587311371238565576159355358661696232738867308940094156015275292392012392248732177628104614972783854344516163875008778591063372881845978980545969123866372690246959462629369069262662772580151084625684820960375271466112033157998483100317940439810202256058782595113283831603870483911126243787510000233588923193461082812763498566676707588307084838442836337197612279384687934813109535910053668538501168400103855591006797648824848324265881853674012886586701041167755421023020650617616082904671237768782907012635697898876613371399223797464401871003863491785198525203874272485540504428162437457946890502682641609197891014301107732193047083562308723637184470389113052792577715219375918520912160299812514224826802855525121986595881118143789280355080022525185839990602927701132486127712241238751941675693988908738666880345832167944698912481958162278852860762540509863163350846550585905830429323461468969203085153793127086573833467822391393514462517688674246543773881638574249578772936906321927493434747392868493430523695536645363727058730559869148112691640534895158360751003788613179211811834809685537458330933363026806562236011214396039700681100448998273820862582107709846627238913838069692861700395366847691131115009181437118873171162998070571975941358956453678661418111422911524157658927472551981116009007982381312669143633886616360627463184033546384201046186320567608128668305595514759039252545310072905563949774832146684400239145442931649510893257473493665973456034333054935242468877599736943707688810052261575521645932619394829102319617559691469727791777346302656257721617468373868542153213925363032599525798516696223076374039124726121003689432617205099973865137448095945070467447524636388513544404582164085808682706627180494197545889155317997544792841776378138434010457174024860308327772979230800896837525101431538557429783833304661916253351743200997233455383069288447264577730570374846779993979694468698044471595406816871649366265534143926825213117297668528496125034380557905711993651525389765930734163750166057715327636815991409909847577340121451051406785456477743272910416941545840439720547647698018516792289529182922730000118943171837370550171170354961551531147995560200970525853526771629561591116735671854415430897608301739764623677887285715386542205358957837673631529165496731429867495763646077006839896065317882826176785646956553036014744068993994118472920423217836129976380340351546097620761565233566427144602809652502812962999889651909754575027535018622618921278525829457912253412124972541716363924278280935117791022472535918658169537926798382310995951304355507293858408099727312691643086846478251687078251065199930030865179894910057085274792119226355543592700545818201212369152998769505246843846348750476121528627733524601165760942692986177079303580711179476244831500531703428446735454343820259192804424793662633477516593303665454877279490197332261715299305443771848523365514739563599514485631868720735230887620185143956442234818334228001196968120923798355961134932965606922198082327600397570026884295729560768990297177969284381928798995452513686691524538057949754742088441099822940380487542177419981876031435583420040355927868817731124007402143406957493249293011909978141897355091521956516346922048782408437543792458342275473747500625331851656705405636552563538952563521189564036274011288162382518922852422651277974922111464606183264203916219183271099302069203274756084179392175197339974778340299258908548093920348192192595550353602337719811551066637487180167469945255820353236987276188266307183274446917047673880138340482775210922976864535158163777654808881953161131373926832067613727614885253275193487772878231518126620456699926397148412450192605509407146584602367645277996232593649526518692859054054237162943586371113526494198643986871080442931132839104398432167347812277610592259135808243589884311871021121055039281954554455180699142410537704564362330738766938640558730492571273092636134558519731752790356203959930397853518594019642970169078283380846655779914703120057767056705996138596221254941397682297804276908756340980276794026153023916586675158837656609823867472917113560515660588761108180718145585213881793351760600966990691167839049511893605815192592160529128891133082634640051915613435883386061251273379048947734891936743791264321479562870784325865948979847278801556593223288207390099665343471528297056639241902874312073303221709999664343598936014289783939416547119276245161981888327866479877096316270274206009999536564696616046773712957944191220228694114407701091652995934227069806598331548238069932796330170096490902975412669760942811889794749175030015383566670338167390501021870065128791466188033398732385971632910961877425922473363369308819205312208181280395431418187863554517194568626348844953093140455814712061883729059579961172546590626874878860639068704025147499771194660349743568221279225944093766623797562894786484437836721964030760412008548322842514056251906678070487548590365477109406220253723393752423420246035723240579035154136485792580101819275516626883361984286397408574725894962087865504580667056299283620014113226981890921368606012088143232770798397014749634816675219226814961599110197532691159009320213570545981801425421605779501439694472384644518357508415057757415411008864632872891092412599019172620281575286358518633505548834884381135386841402809995202640698296583913152673846085778760707509279332511108987901928686736575302055922926766126674687028276755503183834229607556976355131317487119055366087486423462992030891306676865454273533452786633459420281811390349098244187882196707640802325224858768616573086630921832785503507028942078446548271407798185172098819506862358073798401084102657588742454116090274966057213954444439434277076137584205785448242482367221857971487514357096395715394135620063436732811559770279676816233013513098111203735004548474985726153272139738300626063039594767236487192789538082108675454460435877079863328416077209487531548122838913037977745664267215064987049179913807781311022272818036707777815887228956412755202363349403001741015708055515867150924795111635594507537953408634031575716994645194059384920764397428628394403082551050586184913536064502400333647758032976421032584217909304576550499669812696776064853944815764646085739071933420969448704659520099123321179056555969218959859284755821373229760426956004263407437153434659543862431400135347094006120278546778033557871640580233803356113734243030056690303891411285482475264821825120514793868565031476421403603239126424398024657377586435685686302827238565681221814936901185814758830219386111936766929820979285733718915080509254548556952859370946939022529536867817125011663423020137162077941482286470364039492748686765886950728717490552716249086285975159060041963449247014981497144069979647382910156949673206159669278148190129102857535682513498161313856269935137357807576140400179792718200223702728549162785374281832897691408033684617347020570991457311756139439965065131472288715268025800272962340639616861125787265530898099451281128134595674352220712692221263006091189199877642557841119354136837373874632175109970501836745877389247197995452683641903241817119679896689260330374311709621185467767477387414924007348249472001002939766524281146419994748479194986533888438162630447872388624394417226669390338222342575615745618911768107114665182225523896129017711942728038441494950193755035611983852805453978093686415553167351884709382327078663945166342604110449438379138918373763402560522272566230973359940873168451745258512550799091664884974078759949015067974423339925297778298772734185827736859270095565255048340806304746841213294559300602595922528797248571820948730175105064223168940418879609616368781178283215274301497334027269860949819520107590546772981003844862030468366043862580005842901855303136836621391896732378163509013786567138098802536770068933918704709288434389550486773484114519457049456883887476406933769770524280594656889078786238562746289643151562907646547230221703838369526666316296651217092615866661096674181457888361671841749071181638620063029963165640952154479744355243655395466978319676033190766433256202896118633340858427627168187562449705236097439388918019521970395227600489918301644005129737131106775939133034161913949640566412142836015291036371439178857699613230859403424911810269326556010556881121375970098216380053619777768657650878160833413134242565642549522256129234982700135457715850442334184244447428234685572787642120111948894128344220916914024316088867968258967625329810414874870516874987861973294146361984542033199025140719393465782671463151458507314772987536914042703237197188370475112963426850728739058995609477227622853966472891408755616263116952790577043447851131743951086307986202881323700717478598342129454397883432930521359275854500835162421345228097746930428497822072896520803856752219259407774271534952049952692677136660169760592662952377413223905024098747089630763501004360978804067103214632633857822029790889227657566257713018068944578598544156173072653833515073549362293663091336628559171976917232301085569601566258817753495698608360021554848101484808839676131895755641676999328361620528451760609953424238884987007572865136144412487362275503679276075225664993091233482117329675348939488411220086535607960607298680453719568602679325605884819452701412599577685082749019922324059474562276579314231645425377498783222684440791288234936401031724088000532231789538802781835018457031317471845495570230780852398854046062755353641385230775061278171351095540811095417931008514603049889531958091517083327976152610655309361278214462667050648125807475977549753763196938700578906973352784191334000868809490834064668008231703913370694673444160094250061886153860079291160897737244767358982614216664726731215111703553934042340248394290297561806700584450667127333097454169343223345238619284933120736694031954529438372863972618362390317066913589569675601182638916667339365414094888187545400000253885298702508181253664196966237101300496014561338143494000811315105303559422186230977384511927908346239399515999374629869296433429790840064179444879335536679330572018792880470151290768668407797920177599505964167056981692690399347365455786393962470457978110261525179700750601042932756005894582133320098329818714071459412121476230335524660359962079357881875921894769825266285413937153169174781700583859303439242940487177025102393842284974904615841257122178498168150420165052759549751352118954193178185984855330868015161233366176023916796605128180529456846208228669728241155621575025530489193949934025180866095689197867840621347736974340499199385029953881997667714053274403011454582088730208541618978834512905778468680945568299728625893234668202605746290801985579855321485121626552334355262233072756552941150472033102788005866201160358183979436390724140592538385617868385191270689224793586287669962029949791099060087862800044817911593758297033958246819947549613893422574491120521418945384963867022441272596725228450133190895682403784566332013992553483710161304777081058961997517918236396212516893984171965856697101580472141287114070930077904794394815820512662710022927752681443570893890215330189030033527562760389190617285182169669515250488893814202763877260115759704563767946742818326799951180678900703308556972015877521940005183864771774349482320647175018965103677098177649154766265448977636261923226679140742994324993632565999748410893015410349829635007570219756199058230976337798951928356372856273846917982686859062142835943794283145460414590152854623075484080509814044361653973021165301741342076760159255475611735188000174547342962629605798472454578292197557912440578917636352419690711261751105606326580841541504030075532483013154316201401476573576237471341026736808990407365775625175879601476387720341374835657562058652963148331562149259165746737124346104021657899442212163802893593214401518308340293469700053105040382590787679249190437318715951827023569895242650844812500816374555745867828243325195088526779988246868689439384098855083040035825116588617877845085449394760350538843786743952158258700348835248675887654240844801931589786228911156322933857611019920361921040652875102176206002132075819572622377143970104027626148301253843387680777755008953763278461154833684587910448461579742373127362689427061425329808848653029036457619476041696219283338537913902475536159549398396613563682553596065142760905499295641185768347441084875678479824331196498626218958593563095629639081429799199285288870453864944847782006266783484959616293731219494388556446461334650520162312572004901810030517086855948624202964966267128589530862906490567764532502211509975726195214116229423442438743838997445550862930608857674255252432187304651202884547369874613815386012374206612747695798744880773779206822537101219330647342998778230733550006668043684683530333531908424939937511437517880022547676102743379316050098241100536637271080296182751658694166369277340958996147483734351226146714937150808535909959390144336320909486469451793428993740769465083768814549995638966261251937980867866150985204922445877394102764811656427136834571763114571511849957147049038815213232523197302434277554087871668204102540165880597405942735484646292787314134962886489293572062458699467739411027146118674611549211353917089012292074120037663535820173105315227747297094488400337834460545573361270353242941782118911068293824866610684686682539874184581760680156979965621990757575835689975707139778922106615084216478392508401940099138184709759765623157004489513031163656707949692920823381142614374404212653272055066822615285783918312998512503236877890389599089720556648105794641177029362304717084250587597903373166569444332924550941558453956040866150958627047330136667594201242609078562709601815054382134413148089155164972848019992393640890480173970635169192565093404963229486116690258483213740139144265758751588058131031342427595402348191853459126500976560549420482453792893764404740006295053607522228906301257978197196099587356935630896049483680072157315226592512235107296939460143445966744618077910254067159154992413280110228337247676923180142196953460629320918068961240213038677843731218934113109447003160837556162469722682626711243225088191196809976812587183461112968970762995222181734224719935609747504993566411398077290540003004493303661798547721194796924884706867516985255448076700341551993212721999862768654203601697603713531602966556088880906824949459170591253542308480391557224884117693912584782484959194850024032728357188553873979766705695407503664403514627117987230531549364440339986155509861379129823727657604949227224438188500052542245523219651018037867692098154495250496529272747365068248220236870751597387422015804647291112592668198452145926706422101556468999458744406516284713039338372182457411111287794569371670836302580332738918351443084670074384276929199887840703649886040487926483498968561259034108430733437232890663662142216239072100483925146677397457305695988828522988241951583274822817124629945485062813271753935544447481916742190404310847082714474818677375135551956214626310452950009358252341490233050521634896025756861577588455967907358688585275349181480096833164302198611921563768968872807888655212292355419037576638865879369393180549557331817603031015953444620385152941617708119715298011264991559632054632741472634483474701986826916547149442446984321036408182151688556529818909404584967131872775976695241954486411485428526916810915370366037922347265191697302914332013464883565682087976222667668270659853906860730883458973263154163230304987095760587565661495976286198802068669986959709769147308310515270493612565554375518921549181393535921972941943329313299334861306233933173900250616328246259317057621920598717179399528413158532039889085627889282239509161735196551528168003239543387128122976505920295621819448340290171215221510438868807190025733470458007549176682501283561694332060623571776794272671851755757152586376945353543550334450036417478193224489768218935239561428073610429516096803644014128438078003543391304161609347468474250216846825272581043951101042808640355005577418789815692274204041204626542741011150804792626063456068235539507443228178637616645510913316499308537777380350083355150281670036724323779626276180604934034405949180238108593726566833497220283578396033194623601155872490272228090847026505660739590878687075172406747382936177201211669731367553713782955962282925211383076111120386785414436527195719193730660689175147386115923486477226349684675104737249457604599573461590247687612028137549428422301091020492329702193213893924673527026134250224447744512756069537299937699889155615893435497882878545269395119928710223337555906153757332942998240664510986383760801121735107661463423495847470963373373822585821950506958314842092581119832178282466856483545052650102320747883101949130711019645679827411641629221747015980636272189922206216197415534544132398496962294266017115985910196403857117030621576682739721536865082942887984946444179952618639466437212995796122938680539207823338254673665405183376292072420017121689354116572957188944921238645617863620678572086474184287544601958520209388070148685473237705945469707285942958539765173450545971561625002713911976461419355192537216688893687350605673275660818793711125668000668542658059496077165626044705432571719581208379721154556968557481520285764316280610272509950753334975794038185305978135832207523935809666124832371358915582615700677739497195722690490086342126913253401881339169789480003789675976023510931045040620822973015365698790034433446819102729174957163462933965377801375705550414524336566263563245775318906151192059416783593103284846094950141078427654594615278823341043840961707163109537001096500906019985459643416989192140592605400340174864404310155789467825088561993104728281538356488232151467800982469751298382367717793874314951406349243246203476259634223416428821810658764844104368912207506116258123089277345941381430573989316368985568457536771242722503928740040644235578388302447746875887993103244531727159665768284138748038898555436300030457814581534641258859503502021167940997718335385375382101729116803919690730189221862720698647042626266848950570930006440633493098612136296755778723752553358849151587722342168944714907370695847883553415504493444948470367695060291655112329596807247148192076829336650812246305619714973218411047458164355698518930162569769924575486610045911060648912613168570480329355730553145015125747177550676914509128271364682387250812615526293784693984703730500674709406360740955494731075833539072386325458138132966560006834288680059856093254167330739588274690809551352915738075879632110445845767232303941973015282175398203207631007996303232456831049819842608121935358702753154434299750578545570125189655031898541965048934164506995624419215029681427598380188288467558126839679345990552607001184219993143886583723693694186916467632545809473946537294471436895855306106328556136914357166405001618334292123733524561742579072818441480264875719909985017881601695304958680951560846234964625395282348850265175285729216040877302113421271679442660764093584760484206891610569801434320686212902544972136733349248937474699866340032134922845699501897836537823128832572050592352358545978275049022693274662817494512362329660904143752013819407515155056383199236567755970336348688192881297152469711253281639907659968337974808930288924652735734801533664218383088306778291000681969561455251501989564488888132380250055197553650639829679550792139259643004657820651477015909445897972323904299134160161001396795502158568745580372510713784132595241478856913734150694887410928195975011850339611948433084804426419741755434378016281411885609884870163214896115091898526664360477826444765132283942375070866780551243433108234186660703784306594574437765852082327596256386509388365346354252731877485327086717900900823206049027417631317086169021903481464723708876549093672119391147184268483009910617512093031253521161873385665904820568218347750263545570092286591009917381989525040628592915644909218312026715775368764084881253952392686995103393854448570646136545492146495599463330376297139468700295525810626546707662937219291561379642834709098986262261159439853742411369882490268511311193539577343570214946283079331270964579248439967052786614929392707824883952683594578721056312054652301708157822981866535890828453927387617215056397948972125783673932430742116733111613910769945990133418441248095044396198226272297516223828947056440821643447922639032512129192286816207015971790556443082684582365001568071603437177720208149245280073408332250086956364090911059532277591970374092787531408341023377271861140857019355736254157777319005081211475259566374290264038749298437932148546241607190128659362626038862233620683569686582813441811834525489836101098419576834918112853462189038167520213288434655465803663648938972271925073383675227903556593782323306413992062229829687228960617960285911966710621711739462917625852486882935991583804952934646276285273334559792182083034499281476542638305634894051236087755819730106510230963407255989354736071370770116900333719443216098196167673410962839991739560442372564119500727376149394159161160050647995408266956759537675772959117304700803890919666364660294127694387273102895497740774149171600973214863472300974535943803691415407411530900842863208843905409784062964791981722471440351822342436685804341606216462344359132988198222943955710028760951667681524228110402147069979074899813192843956008386820242648508094884803704013088363871903362143945108130048671334070542692520519107454309986418871544282634098337141601816922484987282007282807472475761468233956228292335214696593268652271257202763840037946997742348613912153829589741258612129831352162336061727134952026907488703882693193800861622273029944595101120453260709157804157168659331580887443317400349635911042108392999938656485307184580121012732753983770043235369203455295975991463965271961082567743966860252474136239427192106884940932712966399796353454764433084607659498163256492404516812046046540346901525059658591950559908939737347378011986771536225586909474749438096240241097675482820367371247207074420741479195915386549885207002323735878235014996115991763192605473670185027408991250118497418298123745797909871775605090900429679034518832416731707141108114733478724255265376201849870632166380683784372543884075005605231616585665562655059553601697895813096002032983005124972173629230001887591335730143590248826939165761692919845047388236378649229521040431359465470301851989342127409339504874258933434275572407854278428472610510504566764707640519713875521472126910660704402190754450110039501404061935140552291699156327117300741045615039175853824291468715655845242416716644287647115897850859342107194770544380238183601195945519053663994961286603382212482210161269086639919274448901595089339587692931258878837515453190049367999463539050782173277396436386547390811020450439838735957358171582005876046236333799651652936901121075252810230550179927739883507591751159587084373048837325228646182580133670197834851861093309156771608398595135910655314931849590706793673122495551291788268366898209177857516557078307206395507904090996596498064935783664457249518205261729510686945280801464276135073188667006286918317888559648836678079588835048009368297549917140442379106842667661105216402124650483513148918793692544561554173339566334703965835734820894396928242391525625873323066386964065282862278701215826712635152823484407528487764886371790979599125605359796990621026278783157034516878946734022173672381455843500411124832759892414606390951619445044436144083772197783376354253466005982995546653156304472935689029086763393030301106624693575143283132274079388141833153590001053728426768073630059572340986056919685192291180131684091708758152423150934375430335288588520269715589875443563842946798524527385654364335433117674282577520489162711418235335830283007115207191091662924059038559849138521466936375141598847574077961616058550150009105681600313496309599074577661794511522188991110515812935827177706973018009147495651796002040623165262128062525021427101720298451211910297031752081986616908907215886826794441481431904332511114417787509899926692156662681904694894760883167174626317165893667324999898347246388274086127950303411358404235402340507989893120855131436284530773628849794828081130122966451636825704462357814088886377000577576334068788382566864023380431000236498703452451570837731680625513851245749079499740943971080573502903111460834352944119253060821686838733935490300410517818922280267116779403734107959247567763042186770658691619663186015468994922551988125125474165695580414968933792570541147539216301106855267807905064296150231958815152476256366763094685423977994360748782204233347418291128619067767424061230546418031136016734083402284928924990896580447079294502616041635315963394185292992430014435432880585368496366540649413404840850019534633068786296317864754494243938631491435706250564348950723750093989156592425497896309075356382906919718371622024686054470104860191322941922805790805411348691340043799476602974288866781673350919628637159985063787366660776317834446782055797937844448103755692045180037176959310154518869166864110874032979244899882471937149928975895055940314063371440875982497665083122554426006975067719875083203695944227770636051865563624734663410811253266457270876901732097723855023027490365839194546209689530494243459112731507278141337831195717765813243353105151837627823192106929505892463464225001027041309122382333652894942342234374093392950463667422718460627713751316256168936118710495784478157684363141987778114714539495225266234117520207878264712533324821279350364716541149651704223998999763146787752828284037842624394531944836068167583995545085740069965812831944248952211785182885366230771854608177986596535409729877427087012040207143647499272479954637299341238008530313511929957198080036491689956789766825593797627396415159064173413324048009030863631722579600355684007903035630404184601607818722823851315200324050479334573138775849951157246366785194241920175008772228365966156616448372460566252061579557261811899729686228155165766186605820337720308364826307839911735168492230505593374893359406037018278074290959791650320034840609620120616960737007376299611942637137431607322356631931494615683410756054059793964432113869222327262682455742324638206899922287143338432149116636826539596994664756069966696779347109701608777476633332560000166418427437033026346984027513174702273344436472180068211139880422870662851596717154318510058720055471915811486416299036679170896323010470341171657807754850394797440813614980214058382648018566326930423640249166694363713897332345281275166581268133877152511047758245882789037400961580772458753462995841034216221425383550588698756254210593219114581273733615800967404913403518052921788789350427650536738924472081239601506963731795178533196288810320208498569800073021605161054102585078651085359177604660994344654976742648137011328731712726445729234628910860865495260017807302196292298700176031255477168023482573140221196265230293335841218853946148916714767328695890785658028311896258276739989783121148566272894622797529173507957851509477917882689789372025955079422364874289010150040536973475570603506214221609178755798150148993954141899906009217656868070646250416408715697268205304239997261244047256202447718171498025170044694496888073881763565434417726398163016015066685471004726431126322777336986789413148748014859429117049104573226647216475273121815508104819102918379459881715358383955925244406460804471010017268071453604591464546287138245682046380786194912766038657293757581152187583774641486279857688964794184869135644958185643416029324605408108248269715871868910262241015187811609582375825596767085135218415932384496460464490916176592160571340745106270046382771661589145596531006628984485618398799247676894536039281421854851090138242391477556338159389473704976015222620508032056773092011154483531356695771412899930955796809219785164808987351730065238271874737360309486033868197155061383194901389139825831718674467324174324751739608586611160551913085922632197061343703391605761687525192997753644825136012683536866675467836968247833627761964914219332818879423397875399697610891515605387947742232528643644029013262989092925432226716370102160206915149811739270489874595120914127546077181857072919623496143179809407283786330347692357740513838050040716531189564280008070359318368312949958669008747451991921498970310202878963062650040791620847939411123656000972074232963504365663837132612778255037755172332479900858492616352119661929918571333250734048921498683721768638144491681932501860067249324644824213641704295523544288527432927878906820335033403372010441061707222358116920352556801179951087233256012361982324562523087234858311177082064524059682106148800134011491113000960852969080407976658240753468999132547418817830885145580995185386368921301746689277644928245842172054469095541056016960685162274430467773210030564615402185181606060092109936814787961518746683522935905358945039258928331661701916850997159986457674101689108388452821221453957857713051562550759405235946726978173818068962479363846061610881112231496108938857042615645002825699957398560408955386797350902346529829178923608280573777584754848203036097555169656220663193011168911533487617355875222399315466827862097440922573477722292318562955094564732759460018468779692249034453891437153742883735546024186061496220145182764899426305835081041720893870116313037908635090049249479540967826636435864835212099553911240513032252336493830578690003397665810105728284195187153997149231438813941117932284045926201875835724896501850390560720846556024435561320045502872697123595237621410516400462724746493337968062563388162971357765010406403739578452304798784238643378859154470770890565420299385135319687685398235365221951068164222147233819564683443940425398022964559482235811141057617521232054468203837147823709813951121962033434441346364905511325831914909534803366712229388370210849466599842906728858896698963799628987720353535677230187020622761638989693550390271170716961881257090623377955649046090472587514720719148461588920073215437860237402353306856418567043281359214859282379597721740932646505581320917589841226505527692851529104483185650830351621364258499344689345923979711155994396723540322896470967145984498022823611703084932794174716028130425397616592336165907389126478372612180211189788513625547732092826412215347471470870348970390150868061239621694733196803106110641514306759564773273772418509522344244205034178454974305084939584135922490026017429251138995133505871671816773409626804268262983876126055336607681562660400940688787219325454955238663203108056976022160874975107044508972292344033357313689761812994747484165050565513564223208699077995642873480327602547685323559572490122758451097505407065035287945858602943507074401897512417564373923247510539812605337336041680242854211109391063052400655277467765887844069810639718570756460914101011163958703639227766413181877842843720949831301146939603579599934579390219914672093979598478954925002924753256399463375174209728603145788548469330490714174874877889559846077344736527689579599256347657973661781744777029647213005726684052413608890169307326909361771496580713261719470847706032657544853315420703276744632795777859027989300091161455033861163757736379939346460188533146579606819186765638192196676286389504296146422904871009650010805421715213104752694604314113656722808498592625999491225840909718894352512765949000830063704782809934674741124630271122832972278088111094349778636009854137483107375728481615311250947218672620291882514638729666888086890502702906016592955532584876266626429995219184596074745367364595317025917079215024273160222210184231570644418949728290019910147522628052812215583395193590164802510114627730494775586872641805277655109393315558615011241202729042426207743910724769542693657991959978383852366198099681487882769374753665139772562747236380888568035895249531113324979987686615043128848129360414170968555193626058045832091452556902555795146373792418699992728876995548950049261961975728292595173948623076063452234544777803181003067240648196870613510206459233974575458893024352853811147229400153035839506464348201945544124668812554828934146979474364936937348848311031276513694696867557043384926335855291311566556087727926762944287302856693261041770842935001021001188304529345928384300824881752935697924800051957362010738444278988145281816495625177048609269527220895402350215022020842236392241075973658975394458443601771207782238542015673459614600966683382840676433418507572463545261053494238692044831733786349127678338002360648959678472074217370964951795063276355757283484311866130387025312651198102275362918340250030504489255698410734647559949006745737528538083424898461891011249704061996693760590595926112082358668193274579957010440455706787253965932946514929583670022184421197720897911720682650216998769149992126268934936978044641835228190383722945776845434771833823818773993827276336426387628725844888889397471291082447348713315673550507085041023865829346867111066454264216003383895336450163440068646688643412214079767385924392983437075681589791407321736704436703335951799801821728143904064188729463003374598149634628652214279577481980953936971581229265030557372036531468793536116203706998762260440928695290549987189704729243927686628919339350875151359975600941660539703885334887471861451272593835788697272258685113824216249662552622503979953240700510889252996303044698963880779626077471674297754320514270011960095386087649062107636354744065096679359815354154468097751463596604428317161096486490780698413198647410496953907763573577901923708441390193790088714885734880345188793798498414288604738109856923130273060520382781401912768827724389188688933197215874815063563778417679212920692301603550836090216773223785182306659823135161824333963040108906437110441667775729787095319328495527025933924863607749044360527683933439467777281008770376672511951977573682625966864361140203544603637657367745550368795587018326853695210106920341817937304134983038788154164087833080305615703295549989630762040486684878345265806655295731569402356930246324188507406798947389739442126317642421713695209287428415228604586326310752672684403656752396117096105777332278330196793856002419213286383369125290958587378369611499466110460594832797402441726009156714105993601476078633894650229123726884198434975303210012322261246988688676218641979620624815670656247513665197570454028001680282798222317355952028498580053650132494797418798716135965163048294624597471583746176535692601731102644728891456079803210752407820481766559831786969799018851974848860767211121267932741252560090335551256905166028398367086743686454640448513994642674630362911075559270483322375382420633387272372477805394333405169967565370415135935437076489520689729256938294460285680744823962432369282101488941916348637965376247175320102377073159051887856423192884519362594862903186503853085910995764214478313549729453826215689916433956514861980082203456975094010671597281749798516193692537373611534207226091573937985063244728106080203547565672668562627186614140310041767063665405314616330871186066541012947855348351284666210157137223680701176095012514547489343298546060255293464017783843867499291717208943382071599088505715328085350960874928131405408400752955104158971893334134684979840363723066161280262770529811255684378023905550195145200910414454664133169874986395583152134477108853859099018078127296103071430340534289011767172674948298945513752780434224488671779185672639518467283946635974529265368590506382683875423704574429767944916832421260830705234677209453435439291438418396466422774844393083839440872131952910985456018518205310815272069492178565171168015198077989006004644731483750921306863956800641455439489861431487501738793219511538772213239409667483755215059114484777610853192850569108648412717647873995454299482407037265964491663302652886358603873833279102536081826368246654631694324516375417665618366143088503932872865371627558404236235480677063253046260072116056785642788915653928101296799348730865537192344415161581305745394073733627891866866539714891170495429499846107051024960664389614850310947964368873683689027730216752018296369010289112586136632408430976320034355024521647485065263757091750618081603431450816619887559060830016225479587624631005515219359214637644058394728628697416979850609904139313478683140597123393066046325096091546464007785571937204689372846626136302224790809868956746322958872974176579023257796589958712355672057077840999064417469582264432730925571804999844219557710050009776231059855942693004750034105428517038239130119943380705487755139454909552440374093310064479572825123654050320513225402830076284356552282173095577422863744051606179935553276742896159705296678495793278997937842734549559741463220822595078704448624670583649467411997226919899540699275928851749658438983669522454993020386354606925568369699706531916654768937056841992029359892663781573228606869134205740495048833931750589077365586093349366654350271567860287608437468888603970691323453594745344951728626903235058656818447223947305448452277453168932774125704701894421572073323799963277762967873075648937004256211281636293760185644627903114654692421130437691712103726371053563645439252981632466620680645359472518487325284544003153884858632664007428509476944625537399025178839726178741835271032417546916332654439559091859904702712389673973160006125993731010337950538532057156357316375529453284352851901796199219057612152781932870067849275323022718758398705922381345986207346364077082990981325189526725978397007643815675832285774938024087974430385230437632724486711731544832319104622408727305229036150972045998887436836743094804082692634096927500030213801423879376946401048873605685765476280272062065500086938727610483974665761224336584162326033251243220653363412031422089369331310422082039209994741539171200943870671990294675966437217708599423970677744706902902723367266097559592175835102377276064151371817482975292951428300206345978066924337839923220840014115842385377362623522022983918015581560941179644742569522770761703502688569526316449287387745326875244484174592766790123244931071671519148372703521994620391222015051994691076597592637368025111155149273772169232963456578475566727510467056243847428847115916198425268491122751843885442815008590744837917860607058444676760775335087293938093914845286337978615737115126925778177130899672071199363664576747876889220515375403861418855943249907100639009409642487414642219387795851140127386411175751681119545587458698647129660991329492049637848221262568830698074145206556396568629170952095090726694136845168396184931041844298641973817097295024496470536062769515234231369365027007103660162168737397793722148283829731626900068357263284063855760828724300154908975041765769789863058762601061535957368937335585949770467530843773074464520050031234563361920975608208350445073135423334254556165842892894532783552810180876708879908085281468654314366186406691885440587470736423336577544313156901484588116061784273033958741044872909448844144489185094318719396553924829577363558360750536443132860916454533967797350315638954266398255523283941334289491155170214358705864270562488465351619974148131712740448139980646823979709668546648124472538570576791912574676515318123446754795513675913754528322659554938013161555194639479265081323245922370686637132874836057285292902110017693145580309200893307891804068521656354145261038441216843924907830303134050385392328163183513239488899324508062061764183086070401462468242186906079361044088658207596648369252404837401380825413823364098416458729605676265043956064500065546822616152737826752590758382323905480183737856846346468838427087828084422710007628576414766688088382709568903922970802925394805131609963050185342117256996229023139110723376191401553253375603813302140279039603908694468249413627134224664273868217408254218787019444466754527363116209233220925987376468522266261255828298815495554542077012711379199188942822307229498704089117697174840416629622126121345454164707504521431937973738945895421631047667952054299113530474330630241040126265071775831643516696341609293572694163534505190662565193468273879342646927788894095686481873406622902953544585139421459365936234846374139441030759085829156614450373357974145045851677738470745817781427975612287459758061694444120051999589247485909140790234196346057864186702870997378481189767694110280384977704484431453144902092621815315177650013675034673791944429968668799413423154718293833971934851462970532812250338298557949523306842535795838593691169195884998088109533655811479322688291102573614195989925233181814103481223718497324974832582560833412476631309551687204074018996048202143027649771693925483040365848251252427125238942518509611833333716365562279267339337225304716480399527855026764523294643351877686945147048843087151179913413269561893033193747595404885890462611785662355207247146814267440071047392080942433248072051694328874739076858046334962805107212431468776685605082871327491954730899673844637979534867696637757545952486443927773132022864545661854208191308958187981018118807629051069831605598693464354398739898280329370360605145023087182397744469628713724159553661765764685182994038262203327725833899230097724859671214745091914906032713706483097031114510081930764924765978570842382659094810581616098512846021023371730797160224063983393046840753996211096874101602191695105637290162445227472777898954828849608346693427023216443520610682198842368588911124290939529010764226113181954084821901194394305172391146526170265411153745479892880238086007795815828211540812412754789790360984065045933039477676880113374416755930933197728483989501294263538019278532707633330019719054957056617108198460507663676428478174673750221494951962749351428008228440282136227337942282810178504462166703583393832853435309981961606580518046864405031653781692780668110580598316832853669132798849049170810234915197000907784324569702671475710937713886595855634731232297805170847844360187042165173857347509063620568916338480514011541619221246376607488699544445461274471905371043033976527344381852170855980805681698069432637162012192978783692395705822952296094865500826172189120537799780216923228810852377656314339389841687783248368600865736555466316771461534272627353762927789580029800373158235247802329854749729709457060149823599838163201552605973841668973031554120998101165944043964761825367149429251151676008623707774809212983779579307242623584891696256057814441142464247157628052812673001076841072655960164398955463982940159717229860852677940546112285266385474051631331076962017401603264436155413597967816020602586577512130863289019772562743384138101169689212818549622512840366674557766889959371119647532817561922446536268697665313138201475857041949321339521607064527625529079119624425363054986815916431289458393111701379478707234057937950825954828974942044115013436306003434913067434576897467984227785111806674496871611944358466773656064633349625590492901605424291685109378711061709754424581931068766301801149884585396669916027259249401140376092037439825728832283540913626857609647440583763776397369786298093415416953627645508976854104634648466064599782934689198488636206786717090055681953846916976839651773077808410394542890408568909670369334920360769805856291036305057038233792088486689394217657268769662754579670244208048102430224121216214674289684647739336222456780823314562332875576595462155429955982432305894497434853422832539262712123464611312188364913728559053530563963496570633613736068328484596772345308893255772870987645944100662532074050799545061099286581737046890002059511271399541128708720400751231727793789620378047403148355996011369375205662909347604948446044097912911364492084084538045341004280060579610823667850566556160725125100379966801582646974184071803552770145913266761947479111239017148439952986080880068837496868263152185815178294613212727862382859239732490002751006217685293695429456106095290716846648534011606535242081234280638362009918039655581466966415641049669610350205549933055308617343668381675888838234155928968242164563415992679698753612430222598096438956603426172768066542471953135788983431031683971147946634210247605880915857034778510503117752803881899747842415754313015240079438335054831125711859774485678771742961379260893070511337820559052071982356498795845430544095305255806742167667663462551730314074244328578658090937391469751715537347180021996342546806209497155033591255773937821786385492251889993410876961919623402610626482283142970113705228253254088321257646358934942130204883966896560326668436630935677355366391849818648417761541179743787265340273588982795383705147634500563007741575475089571133515489873830432104954728867707866085687179085778070136412295701562453844416325452903204730932421622546531400678383654676240466001608931372687973173601426678820801957829390315365769613424401962025760067503685112734835868842650973473776370412246652111004565817250025281573063299109676284076697337591447069266610584952300215619444561338002319651464663942403942245330588147773114523755077630522986692030581485706735695807282925963668576360222756461450723899239980028995431174724997367777309995017940596457200082778793570314449683297625325624932434154920831304493122196640054456688627062119846992097404712614692563290083645882114629857276267458915693210540004205922700115021020611088420273478143586669727134789656145443515251496691879279959285033332113212402810235878198150032146972106007261949441079248250412894108240640751805002408109793976821511126658661624648999946562181145029218194847174509049411678972240138269212592534410665509514863901448246735423723535737925361693654316509797810064947668575264782392315264837260506141988819571532305323653621955254648949158230407662134159343002378445666646421930068731970085345420669532566058545986101340042960403105664533184970590412139550251509786022296633392155395715798374390257732718971423625264631193128077735721281856732129565877739776917519566045254896804118160372255326718149351387728113966948212961105872504502255909438287180366856399517795057659448642707809371347960227134853776697756313207626030836020759308644375642439997928382928817659478895689425714209455824536395563156750399811727524862592160913917947349136046727552028401062221308418615853252259366955516831635532551715812061115737416358555304770595267893701508937120065612827438680488367312840140295530402474443257207497946307960664606396082547575414244424590870101010431398134711980420821681033097304399675000721944212051671896565229188703356454720746385028999675013534370366386305641526995721016666206815808120868493939006617667697109874426438363252766282769666069157043835774638921132547857503267121456083971387834264468910758692809311252875428213159956253674326910289635073626064527198767533166687222434506789759289614900632899398345957137136520374652356931777694862795517967545403304176818470632164114714357564055817720236512672603010530243534745365619814398547663077553525323835251237747543932424269858099786959242403536380353417164837894780548329805560235133748143097466528425024437472634467735126659569484484633295716136111635296417400922344218654599193122685730680727259713317753867230823311573831769799139797037650869273729311943861665005934174837044345455406171925661566390564584684881600031587376868727567635222722133317431331453521281469625278449714050374312819707400057325988043914545618398620679957211688111819375253562294764845951057140247690099229408331561144015264444165465802069376556962758827925025506004687623927067337058630786812395697941223183275630522882693919113093141820612884530328505784852838098685379634623677465294794687812464893779169129823834226883821947814133047443778421542477313524697630225663259189585664113836548957954233726042275246005425219633270708532121532919342518517231865847956542624886573357003961653840658587547617350116872398600264091335399728713960056141436440520582232161624024289668750829564885801589783409198674124922434010054197527151363527285563161299415620167130053229733360683679490649994099624261427759897105894178068463308860701063196344152355808024490460515075352781857535408191421211599814216809532687654700013922951328807149119978338572674308340079767385836895837256647343833007118870917078234505731078824415457551631644048407039047332379133030193868986016168634641168392979583573956682236040469470564633896994676980046131184971703432147219890945669131289925519043023178507074891735009984832247955464162052398312585541194055990186982682794258106558379680664693001088375339311458689654175798900580837190375669151389291221314451979184765211747346419943264136140365533187793979867789728110284244692959909989418615040620731268388070780951315320839704942884189065005539254442521912254217899399882889129383281048719861164118245284278642485235615820714080962210007370787284355764960448145265182152769151281977160798729660267258850841350387697797335186142259751165026153909099610702136474665648915253042113774252650190216000308635351079758391905392181769801055328510486732060448707498934696132217965182888155941536943505180243385105567959762362757847923747128443282416903534807574153426100007202601743953695085684549912305744709223245238707516113172838431238382649686033942354411493054235748418480124234935312942492046009731909664361400759398430495447431703681118077545321885980407546063025552186157224148040968919361048839204241128732905822319478800479040750736669028093942875124049085439391572142249742952380296304887575433989667070289164372502535332751571641793956874771326841732546400794253446507067090135695283941657783792308314763070704651009807724253286629450782478145433382010002539105105638405821099400203964612774221803023468489081532956922303583859870574039030635394923222780365885678985208066017489059650128504415787128683178439031057482269582725315222032742065915079785977590069725780217270614156626696255551787877392133444456551140805773258801189791071763015124153166271630252194653923032987526728685900564891656484306518889914677244710159040031452553844803734051770594479599396720358669086007133801010784668559226495850755214767157477620762396161794528517830267136400059297530113960821071428290369630352119015772704165691990742759796072068691652935518222914538095619522644163619196787034824427910722081701510180812936496659846804181392023820234621704408968167111917364519323696655464685876206201160520286807784525907311167009250309893907675012885482906079893398135180295136764457214543549877979909100806403519362459842054640943234281629109410003682941718788737146977759243143887601924049003230260028759295937905337672172743907346600938791155172979480081472791968005913751147340412286040668553472871330238545369198137162250244808219887580074892161197887106325833931072036992988120538823161316089636801390516046041520644859074217018581209687241153740162505071146612528612793016145369439192356274467729843317647220035173683443184829155897037918224694068941478973405949138299888567659931616197482843213954112289843599383419438800802110614794432479909587934606686748535462869020841730188653009323623792019533335698490062837010609363933813534027096619086641383513136400394596458202462406414344930480380627413829611038000780199527251655202839887870857255075084275756141317505358033915794912049571396345725343968832970782650608234069947350737204350247352335689808484630310610590863488953215135455287167936235928159922491219058474704899977715595006630680756220497040842683158480735942891169719586081295998965547301572253460842750245417205424753650378089284173949226144229420756716131916065018167496194972515190267948796281087798757892561432716160332087880500196488451532502480461053581248383466418332486141839741414442193000041470255450354355479167362761839610683934862585840844787430434687773039316031541013414133316857958694674342457032167692962507384328834372210879432310006144288650889246649752897419201701900844369170275156617989149020178599367517947631198960312745013807573975964098552576059001027248771427324189241425409450182166096611054332807161829332441350867409879446184810980798878762255005670668799650259711125544061463782211611675678606798775943326522955834128098594137252340768858126215818185892708213120784664351329418242014986351259086794527260805048472878817744842161211773419699727705893521676830846041446844561541885232497123235745569793865646382389104237285485246473775516620253790753926137974744003587507271775767627699328193553783725262361923663562840646102631547988476778437411822662445663543074928982118512097837789809883942845552985914329472832382708140802477308347540198491665220114887405524236397827043993768890336463752729064160458796739011991479624832352782251398591865050320962623596420321519932867330011181942532019111012624186483498459738718173928782947375761863252162714950330668565399187399346371908364862187749687741671276688429274297275472417938874913491304153155699517553035053455290497333079983833304501555700697607572218191351350766345834215987573372328921648542693363254253816775473284197512113876972421675809841384921907431771434643850292077302304595438368464962355451514893339873107655032511008274439119970688053125694322193497735490404123639639779599705596410254999090910067092690888941248219489279374041927431541617591030762176370059629458798402032392179466938368148629834003156104261421797860237430348328650942561399485528975010874995323144229639531354008429123199620987075105194756271056675054877503462968633668998278752170196396308021649263047454451181285061682490195869738987185193177832244633906797784641671946997249590649477369509277105627795143460555334803427010643360680234267142031739653633439299416081891646603896984236257676934215904135968878975721449664484481348898649131624034719489183454713157725875125896468903052940465789123561267110519655090099356538504512092001957114552973926693166186237137576730977050991609578878121493919470417079520595925666154630280473560232720461633720832921930578552903193514016963581914958305974144024913175508835484401408334211526829274482947171339807987597760996893931590071832851075680507130672194833501033676726963903387613286481228259612437568988347721868550740826505238585911622578984818033275540852269590822359792430597560075578421738412146340114484715887816295362407208987078406003334779338148823550594438973851728507589633281922842070251881909874999667222955720531807971189191864729118084370801617992635283573640949850437676345428051209735496020924664806897432432769837229194063340719912762140830817635351216851031520845255062057799995836801358441878749461099816636296357701325794787733277016441723824294888070359960500969082714761258436010926270675080888185639327004125487743421581235186426943067076327689523028951439699669405288604571842457987128533185248902349546954295275033193549656509696517659152810950818453688724906353461650883575792049383660296698200140353511257981995329418167896539228667925995875378720339653119178719137118981039409947628266335790448886645269285835557538905266680504713101280171315915322435756748812633657991015102797163408547451937788138983218278140900554510954730739134251254880023920707069421267420041912188629792638133265598818327520600432763865308465248658838162034455065738020467107752949734837719474224887750312962530989774637180454061424000188351011992950439555086143337681632447035057148217641337033895675325398362314114006537435766098455828322527940396193666195643117181190917740829416825584032909312605857918126658749536440338604249780648412347691402096954109356825776872854393889770091250362901122987550180020266901817316761121152927614742214529436945193759786905398091717050558168322738899905666060135084941650961126011851616069559024130348139410305089248174648073606082972842749746402011820495351013991589291448350177623463758669096921939315460428370819566105711000950726474410948674757735093115273803123092305511498294257103077247393816416576349989435185096308312699914919099751393123405887119151105780759685976709884285335939309082122084266653778414187393530213705270625188635037501479979650772207407981520735350072946202460187710923970196575308550899484683132224200766430125669264567224067868914526785964049259857868054367102337178556173313868077660413680427566505829359245479628943970152460864489391014179388999387639448770095195326865747831121946811299157989503505984373990924232938669846818877105365305179317447770730086716099152644093974094421609230708383240543817509919825554487898688415058718774578753505589674009352044465507448393809296218121311289879503881110586023757911810767402070341796388505076297290614581684993187169205877129838191546305720222167239209318893132340712433238619290398818528114334533278686311728647618596648135265028078560477465088107280256221285682678265304118966962417913235950909878091182812926993194028078828832296612268911243636581811224753765069903769800855578199566178786323861850094825565482618120129683930217388269133805668573384860078690692640799375726280141141712092087634072308344957763824627950391408428555768056054104360929888830659706496173479079255546184462500449976110998186865593158513104197302485079898115242101735339728719161975880542838862071733793085275654055855864504212461667976486023918635535320212240158234189928555067204469978843522525448556227205334112982884067786230950803361869874569721861377747999184918612614689029360318720149884286852286139237283317427077167247681148956859688668688413017172777756236798187706642386186590850684972786436273943006645768145234984259582116514011686916393874224428858564011141157341895255898457306097024310933169427712489770153272032851297661632315974791215734140954040364985969991917240290388529255347318135134798942542155969966367678753337387863396206517645021863095393101918814479917487849166754280907499077586168393092957583608388650295137491748506267364224079760853102604443725271059350617151218594227860217082122753004608095762124960387158819979580725082869035971928016934342567587983569353227431986761914729692608993977687587716313417521846637804868536898518995974917860618195461139455498888280897302624441594490199371873537120721196430360279441587163051238980631403049025737544562910733027665036974166504846001384746168786415988599398147706724833779620461251458871272142672867970003717053129657386706176544926065866179353492549516587933818198586677922293182254931059490478425598937905383514200862092381915578951351723535891970933970114786216247380374979068391712271337922975390826791066021573576068946203025023474130924516608680035306717345657162439882886689774178086623537170715051525975471991226038487296685707806308731816287634849798817347786368793445547894866522214920255429181285114640775801286464307938919427610649947671093226184436905315664751935095339129594303145704011483571403210999320932960490841833702404848098719925582057824638534509392991501710316261018394661118450531462212830274899678622241984404505212171653593056482379066509600717371623137823631791840424427468563194165456775420005863454692430240292925084001433315740493508527852496856294851105727861983742210021729967602426990596534689159868518387425109805915787386121973272823850424606097289818711637672144414355136776344691577680564547004698684787061168153694818185118589732621674874527282880269263864591063312299574395769775590404916285615179519336619856503744922363599319583101178658629025720194744605149124918643430733654377342991374088310425941566005107780431525180491223822922794788210307974968911162726255569706623556761647670993518728293375718624442709166081307701436381658033321249950572033512364777326644096749421252199912559654590364095905649665661814533604508069549224606046692979914440927668389967019748131223425538679498348843648567293785942635658563340074508777800451496594752713761420760719093920494875074673586409966389584858128416987769859875299721109634726789461870131852080810131834962255276790861153626708241550293602157477420299410354107959903347257496648089106131565808898989561182074244593797674413860624991279420708188602388756465873190064388348220016671394902724353289616925309285577989759045275912964587226050759555176657855847995473747727367791952822834653883748904206081746915988754250551712136746983100903217931597241670297989297538737680080310603621854355104225121775811255908321975765492134526914926904780048933400923562505173611100737971786057389811222905949625921924848059701194393851260307744277232124903149886669253806319523303679109740959530706244081335254759490676807892920236075938002324827641001710558744128160737574276372333199705439370116712429312558451865379528162938137342482160295156586097417711085837565495126480855424851288246934147997142514220159571886364922623750744074700800818875917283001305186339027350674510123828841051063951783854837174365739935588435573169099200497841296883352880075400131084818578509785960828358869136046357557476085263737522938446938037270027795317338059665435583126467654299507223899364662174785063451174136391654013046745609057569286073061094111553042530548106052299563348953854015317695909899118003694346039805730002611303298595116722075287956340275848821481688531564099035342375148931406845841119174313000762779095674015653741734434373586923874753839584022077221834004253196759729185983247723277928488839749026606243100928164220826140221833901254295658126694977621020099318828640137735674895396193276975478812561797034358475187055817767481178760539226416857617594930266735427020058282748912164532206828210799361986769048494339541231063647020415591127793047975752020216950883443525946192071336586794562936853207429927895316166634770963404551426679475162769610565563140250967004631707322311716751622884171646591334916803887032291066458052438261698528426292720785357137252522349584791724022019862448419497093678876914228139882229703215976144067661871886905736986565754973585582328421229768001011390707210820730809689632683041876135822321547008947677940408520458686290927061442322458686085360805798357382238895217057091902980704680828257813709640859179107283898805566581559669890062943114226690122316201631261852326862233656420768870686247301971313721476844985702755315705640461097777852393464971239485345154238845499417386408040399677086085508609581855819883225101551148598466639688365810806070780069806066795947966319681036781680626381990368103843772445040487530758279587588383751027229439640278067734803154066588438027038615335639196383550890882410815576581204632664735665356826727451507972395106340639264434511661160469444108792410972732805057812819088026174574640341409233174274129359892169960838469856837564569432877184248928735701264055420820376009386720924844643395939902802239664854168983214796507435270556167298336145092673161782987086381891688516869201492174338828842060459349891932028402273737001770000411942930345383812459332279115922322954794238301056524219290801069354917801504032235938920354739287335875923678102826592332003198256630964846592721479271993557278949049179356581588225652413119578733879093264355231573517718795227748910659971671535394356436832499668642442033544023412142444907733567496575137662613805647308032223950554065629664389671438907377804061161198148703455092903602368112265917879786668950249779232989804089663566183659221802491133946489910029978850115252336704049269251479294724553412585199779832413737117914856741441002180644362509089828119819498690353961291427016354289104413816419616533423573866620849010822614051615545065119092858352750445211050394503880217583899545006054905573477597948980343483998208135164758679491472362280156579326620994881772837750190913340915963196568940259885635033051355180529316470324542519387428718436221842433441584759005583340855928969967673224898093272520906073530841854546773559107470897305125417233151786591008393103843335851975033547248316014073423856151844194092488715071507904766187051829197912054666660188252428178429175942984946657485335101454364946199396325137381001219100552487145143737067796055419996595394855728940182588480485095670893253882660813338565380017565403577215217101543094346877064486016110772426612446465844427027495781500676829268784028363124096110429621168689684386707739536761972979666339965170042409230580033448945629767570116552599951201288619786770259231462777752174365501481293672982340605156677914182255623748495870558018196763053527340695476145491169231232309066421957917706892222122650617173886793252329335465945640200165790560457528866082850326498932059533444055295747454079435566622424068676079258987722461428286993414254287745538241657811629512649883085674507562829673469879767400916294356983396844431864500538048278526732334443595081973952845054822342230485018269801559972694801449937748302268938641296719726898842535943903742039705578600785704753713566542555455115172778351043069804858120583820914512658972024685128382918314931325215150917674443242832839816650759124694891087602199066704814035576389193865086711458789733080951270895984928867535754804218870640812788280335263047431429674833019501436877773542217615725377298142979971567164509270311124271130860970924590665989045789122088092840691108268108560919693606496842345170292850195575126854428925734243333878066941695932799197585019035766039913896520367715866489538215979002582449679573213927138618714528161091291092140999875126846070904839963747780749383651029579546618911977162183516431864574335113357179162198249345046055066710284969590508130651444019558341366618326870526379829312697754183520765691434249173945022096169184011160030502290254338358821996788099242226216792954005994815173455358640636704444395355712210146570018396900744195265560180441581738771248492074102321733270796729962401718688029432043013567875787946301978575538784193200163519222134277268283069470651566744559530478197867093022815446652396351876561791549218401780072542819632116675677997152448445830021413641300038014184715232911048424266125942041205162508629007249727661671543883790073821712300631041025032477278646673252466688785920785265722932921455011131596534998397259740469347688138843932778102846639021795094275494524426728583752406956376220991046411213054046876267389242130303322079648915995863344108984152441684923411598821251693008589234582980274019111996563369243624760556697147462021380164430230682614156210418720475256241043149344278806024084080045718618058999983082452824077716484158640514262773187026850454411878013456938772430037789270714595638667607103558661526016052370259271995940308286917160071135530247953200479912301350099377205370094498594204671049819020707870629820803818032809659606884823285731629796481708625708976431179135938448226344625429301304873245293488295803561942479222912290236593413213892033883837901818130188969542341180540416016436241571661998566904090183526864624491288860000535037372130111936181899507443103633112242329043763091155952271139471776292306319404460679745167735696871586926181157266126823514988903898583677093877310762703407597675491312087951745171080802256449922536997264887428478587028702635846638419652391962351730316165572072841035571212728694312677006480742933724660670685405228861046945955668217974762330709631262695714258874757594636657884009089500155924072782606142165108135865840217496178131876933689042274892519951867861886437761445182820562706009455989951436152539007974513550373930145137410842949660725695562018107985165568259411751262538238335114770961416731130855352452224816209960947290073027466868463124891495492361962641451488628254713577922773897686931878251766418424849850398390903683444593068577455176477886491790103257296553682775355370081986618310218922760101565059152646486487634445283460016527583611367735112425184220772177854985551402091794612232626673570902590866126722241150270865527475189632842723627044533557066989274111631254949248401099797730652493594874773217189398014446407337911442248322417877936342571788036345436078953425942833507581550409054335212607105683133344348333939131852674248104073796121986872638914663293225275406917969312552347126788777181845666769258629478920890358876502585410571959034359898926150574699666937205719083780217297392632767228433900225476884053828917251109292458372105716239738879672248574774791572589301733020210055744746399604764216745078270486673243295310536552504247919211124402142744551296528540586395037189144772897264199327099791623940959175146987667059656295604499728927808793551279863552372992111677074066052545121944758757699068199407090780837631474495655838964856604618481253982334324144781635115846046857688204224813965050989128661055968027055587507652540690352270816790086220260692100125617586764289064373960251034105012117392681303178327034668802640308558339513532190084907548330984252544571515335447014753787822261823985369480990596869426311074466955861922344630494368266451541731773552346177427022183356745302838865595259431914466306931065441246661878353569180058958331338888475194729635872228850529833642217964238584625333651745388519845003123543454156588625760024679099267987778259605241031021150742791330473258248418246172061009089720401628388784885961315086476070939428681613290167026714315134355755247980562433361566447506046891588507257717492531043263583433403910787982390685785954807931681373808740505599819771589162622598198787190606242367306546111065204639808952076380857213395244151682620923933261672119186041256850052889267989587494540881342384468145864053141662811750587134534025128114725379645697314444990768312489822965577049065240847739135463515278573099535617680579076993498617790976732649740330504856305671975164088782837059472582517221419052714253391738354856438533733923118530574924560721811139892772009430506649232951111014242764832112251937791707086631560631422961008330339846170109379555061698839414888117756143582422594876813566091219027733836522418714393614293196021198286707017409860712469793963534764091977341339104982038915089508633539651498533320659948871794092898215449988582912346678259390055876328603644875094989205149545955414424460407714693573592243018752623164183963501286603444940957165739426837604176595530512677316737707106776370092568359471260786859488927752415146832393815856672907152926877014795861138012404572162415335204941354062386192344022713649544249682875500954003540654870073500204168233614435735904512902706883467418320841568743351718849806186503315692441811498740965300367386169713244040738884576194953055806859280603437541407192597843073637704579210020921184699193000702845291260791509174661860720373726347960740567173018728909059402866334785812590239801108089878391543367807423129752873245843147857845890974037993230047689698317415990909193502294501442376332730148707535870785242210505023829278583537364694102992482397425780821798784735064501555769500268798004516224658213677174987015430572996858092128695322297150839519963090187303102146053783487649149356760561074969980695653369914178210741525046593363948878768731467805783224749068488744567723858519717960810965256629830186325905725184396648281940599983055802538958219739710683619583370211054756164354396281114257059034795199179669405075931636033087680708342814921941408523030565814495324668190722350676958866309269496440484338919526898683874150319126244526820598264449253005080259268093953347635863417247918045594648009887586164084068059522806300638045738035075571063023688708439505942904748431655303735352991998183081572199778132026821475244625659840161687220435974874647187986423192827798931620560899499728864140342502403320094095742845350215342699987587888857807289450754170660336991918246632363065084890658209850789044720698968171480824608501464923828792801403425827769894686421941992178664797992442469661213560317274777007338351476845975004728205465577295247736809507218103932371006131493719413220077434606519774925741874920296111733660990680594076228498235851727597590663332245038988186316723027842021095868400710605014497285129352488031138361325051048200544578352136249558556322962270622930128355009981015606000283492514879837351895081698846734209694117016508509465003156063341659042397526778687531490971356056360872484450978750999092514713553481730865316413978630603313567674079269089244411169093004203886423995460433511747898691045832262653455625749511788285750188954210427005494126045307975427755110251743784588212166275862326104885907825729854308047898412833817925319475299252137360556195288639959329057220522181177836328278051122051999422775811484329332704800342345217455807913582189256131537287528263680535424545027618324362135883314867102162472843572175947819065436326269603210318949302821361849242737086491456907249436122594056934872512125914889390863483721264533323265419740345031018759138495274909192991347053450267180569423061172087014589840214477886124770262350846347900537423583726485776043611092639669423058283337986140037634032772539990085328929877157292700618913943146618184999741041363930581588011261623535972004805693970954433462348828587591030109649478578481331732859265345092091313348274642544542556515688337500594512067304988925690920048498562634375019504653696508307986098011477482473016470194731148044460312346493839264449986218147310318160841229675801645753633446071584358277634469098344162510508381566302136184315906493591191141043379297824397078534324977568905652424705799763145259108056188307077805187458099483350328217120349258820500926174194630107622816427615966199022844377129019071824539315737828268813362527500531175404340491857165851989832314509013595561242504344810516121265102572786798580023714096249610472567132283591476219256729921296051696595046359604073909514591518989565946060701351749224217454402552279697148538122866800576200566526019455626500830708815829109943748236710014791831096545529450525144442174656554433948822927795598964664897086801447008500075363532881813214757408681007894962100165869961272330940912199297716801361114169982579604033950134568432329821636583018630699578529697146321202007827636318876758277439042116394409375229559547911502306728920946016572134287062167185442028814366079116328159906835089826807053334572945458597749379548714811778345858067755041889745919236682852844705602672872126208977528525271419949926874375215697232685690165629323048141183929330443981187598766520226797392027939632409096834135478357531029502230903640005419139031937459541252633295415154831568362469213929862658556157048790775438533956314359284027418379205227208272340476081913315346450686698650502628465674240709549897203827543096051712059312023412536486090639876658755178187920052099629587483327718404943545046229704278221606529734449744595245471252846320440737984454274962838313581252407592238818954281885406268821665556551614580390451236220131721961148365339054747207454398237021013747833412713591322181656473656181566046837889912094848743519802995553790930077004518206569199918447267138676119793635776938432611125326624128537867348944051971161681441090806945688436269021513326575576988490939099808855333420085384246970222160404183134865808112271480423527959949730518998735856318133732214606978845488873069288123318961917710076391045270293287039506832650441838837505725484318952053825576381328085457412245389448746092109708372200151193222275832222235243293377894676021661645625296792304104258148561974977473885235226691438578248303044915850063754223849927897420404223473294938634758039243712304055409862979504059672325766412874868507887956347450369379228735203902694924299079818476700775172297013976903609786576934532640757191801963982461402839807762411483506423638056566361614001582640321775042685178932178387286643654190739008603615926476262837197959057548111362594133324346379987900942011136644658856098429385554906568722119649653657277147781473790315090761200240259318399735566683862046143293490599625051949451829945574341393007048196209821922039467173663506203619677758859855093208277310040820911644791357166536405886279701275968546927306618453655308024414250120647690513737089393808800363031075875206648773816728503943679078008998312608761800654333300663593022927802732139152574413378807576447979959753752451177930890662995546973892956320076181854454717419933686986891136929357838526191467994396252424471856517289135140547374611261610623932043549884886058015227236398788029229644781675045212175020196122901586174672761825667224872823188618156727602322489804615943858562240927391398401814785616425497328445009368036642387817255779002842778215904872882233715642182171091288313490545980694410108780798386537273251899648618602727691895752874712759407760540277472724458863889460265640477886548372712007250629240624225506048410107111680023355890681616819019090562344979886095196428085253955966470082856388910384506376175907550587438831953509736660309003372403660463751636874748608083078945252341399374382730462227082710336983314132446595996611564260908680884609889675226511041925966559000500633886805044515821502834668454145892999752453751798128230490074695998166040920745004089500311947173836297102209887389577647337013773487775127154141557309414039084219748244561766995754383463252267631333637596204308617782541458783617100633302493676371423337885552080150776631017961679641729227717334478333194088005175758099077785555556812008251729988301759947032931409622426657000842942889119467789412914442851820117205471934932235892371551186002807762823996393137834039635872452955324645477365478408120113261098633245137043221348790781770935647605303832776845213886936787603498811072958980962883336386941503758105238541216252583720305491023906749500598824737970561212768685686525540864522955955860085450704584356276311341358054907264036595402394943258084827761195073784547697711473904833439709474066031627290166868609368353015449881981854110603759991971131582777009346335453330096898839122871338486910225310365192895519902776082189346151690626273499775398810935782675142881992546397893697931761485634071876120050739966221579209525667476906570356595084334992708992859599955880755147440725795671210466361817126643940656555517674151268213497362791263327675637510211910356322372438369288763338032238058036205627278530666999809814390177418042951939382007551717958925631877174313984831256620940850084864607308231120781274158539514509506936093835520060154319590861005232951629190723628503664524818193301616748098743774980634481579833446925571620294079664981776280831345919797806141943161758660483369783132090122467608866878533141939876446937353062818701095019946028422772349087138731088867142752575587518270955515642533283019235992311332449393599991230684140325305611978908155690216895756408664149069304822468334276361209575649736717991511101530786408494688042217214454859161359691024882566350528282313342654547522047365963750106513445843417032635712120145247428056993292670300445235200586719633334366479703636060643176075023317741248983695151160744475011791246526519607261330381515001857150998733394863641011103705139911272472186233081260155979033354097876142876781581494843035603873646904506214292431293404412224679101150295450488681155440917837824048200748550598501352106981999585931621968252472297571133616744977096992226179242762409232226590684953969981133660010316985047108999476990884909874094591918688839128285847294675032522492785192665954740262652026705842758485929784519840516552356622346584590305733908945441768821088094357394272389698399561450873792388598927290848791021096233482086072989222722245023566035929919921894281638605956594727205330440905217148817593978372719663225516772207945092177555867780535731286341900459021319137427709641667409954173822352040705074630673202675925497813515052596170662764959654156796979103338923760293972213833868495557342211471916201269213627515922351521947160900814213248739586474895967347599214746634302958460818180646514557893730992994981152944619169944239218005883962448480855105967917761023869000734690500353152461554123191524809993171265170631285453475682571011426116086276969200852178646726317493405323934575850266062928333775805509063659003591944283982145734549362655178506715705005171585087008571609191657633554805467167214114442536205413804104194577973345757468142270529201155126925488114149892103169982764923435499411773396194073370270403974794892589470315116784553068940617684468735719938201971938247191639413917255566580168625728088271352791425671221121353033538046979018983439323548473381627947807050043436488433755068865006162841978384635914036457166712288955483178909731176052185094342048616564622320162460838782127541387606967410801579712077306116680342982375229449302223713508091203539107946544172441991652215982527865444853824166208764293966401910738855173557171729177578522189232924932709250332882168919819276571621052357247107951646994854471226742098454490552168303806423857488659250075823939694764251038796943645619518529230141453962229567589280905775708964607065955415973377385171446884247223479648195669442082728532924778948746713772196668125165550611307339232773033968315978542657280990373900941359870993519818286478294530592740222130884634169397680320340205039652862762009877878896630225016994961530302385382448392162152620402834970797947267081430670850974606999952191820347983305798783008873242331436733459679602138147301318042737723470303853075965502020105391740771539489403845133202934040458711839993425303824034295871801546611437913132770578299337931009900651406697566640412418907203589762499840980802425507048498588630247879473808675601214174273379534029809882228188117856623380030831012240155845475731037907278572001846031835230771828005459556321256088669914422254952806176887757350087897974391664686545680308700115423937765867425874604843691337054586257003113000213775649509298444294618801122267342011481289282333402657053342163972768703169391728233045260362085001505253966267823785847918506693247910278838971888292888636501753301529055669465563362669643320873269154549919542611684006702988126521396515134540021868257519523909274152639387785490665939685218249989116220726221417017173729539175547815496029356465156727060161271952449382625729880496369660195243189490352330449146934607387808162888286942038141713708485311284594695666343897487585573163361865603269371245955653317250556934117773355107503058450149196799013642491105111667162360240427158657054354474793145489196960360507172730999184450426034934886005651875880885333567499810328555853353547232952425015493101901616546892424512880117519233341278339451584969434934502203307804854546171591976622242185539194011201203042079571586201086657542173560041554758350531273510722010261186273560266662432231566377274551993714620797495888720821102187006727125217085668268483466369616935899295123049839600397934025146130872431361340940835958979223150408061484977447650897391181134626985483640012322419503855826468682749696421448381689899353972973983526981280349623907518830472109254390259317280316883902638545790075844887635917706468881852239876170323222152487049502313151623645848660330829632361027457384056666426151443001393225236966718291737235114198576012646469953351224417935935103481055916053382513289994854421426140147671412056399302551381414419091455880253092225241459286079745122618424747372444001890245130609139690753798248403683575554360740473574588727052085414078721808281262148828589358635291686947880821636957887632702511858041985607727273081790769630340954703872143725983482035621033700041337352683179200480844174184663824297814797551466088873128809762088600635554696742169679776783370314387648502657435716440989612406379871720313992020532662950007885265361363710004161324392304261327356383667651522518554969782975423293180301984115884850864657900525391193804828064259830669695188156429946860076199425600484354459680315028436517589617463297066914311075522952790287952588733613365291026122114174155996410365704713535016092730732703109271535372840930165563394879211148048088985516681408606375675478880109112240678083464376986753489283880853205015042958211430643734511654282717609676904718509121506264033303673180757339455695197075544573983883494180179689456294922314545136567815969625247736124709627471853459494322073971201943567902290712404582361209127212708088327052309102686992841442955490351365795138061399033965161649478393198099204666933548498905129099169887123209150180723479179738574622534310594672787785854435394112130275086494189189556448050076656448574272515614046273848462511004583285139138929782138206848309210443154211650858135985324588146616074898106001365424953569499090038123010381706560827672953950058127463502799055562883176599865515750556093077383721906081291007199407199116835831593818176938686993633027743685173889970001915781931343366114744411254680796633694901890410562699220930498937412858354694642747063678249613937380792253462844656542057981920512611217709048028838204224208145202794811906035756706629915381662881670066260890516027390285683284893512134291886046186467816735565435072545573440813096040557290388207142068800949471552619164908102387887987067753336751003708693956298890946995385249779807350547491178370649858738318960743491616304888919136479006127495039672962253381009307555395928273713918826469358994856056697868500243215690408732212226000287459050870364692255225723529642079765870707880257735702611959858870004750592272708588143592638476772208739110175954156854574262050499463851997966421076572062294847708278460727345831458125888225732775871264839649097639721079181774588596561002854249183215222083553338125606685832469178305431610999352701876220515860772003153797471222300005142086038344506466561296120065344495546191050150606399262350322503462481716269413476305101060733401236360256082850840330290828152204737051683345724770453566064257261928674481249410783002922133304067680748779100141544565780351534005097897636700143209253515320086208382041651895170985024453715919440831277245526255956229523252470218982207758842943136554552431831940722566264034811884462468163526710818464568240422559977743198362815293518981918262184420527287705179196310144082728161043099878892743113514646071943692431257669837367646667597520063306027464277609362346722592817307070767420429846428131891779072359572181424290333277098332267997339267757151677511047069666279341434277693383428814216116089645361619291825675303526442969435029023378769740816363751029396737459497700570096397026696062899766149711162300870136998965868404624830278079659325142943708871598980160449397043633217916372078505252398119084013230815527638209696797828613250658800615837179156063798561635304389427935074358502673132093474626576144486783198955089700414696020618261953287882519463546823769692818311268228160696891875295139684638344173371567646936794256683568632864773743550288647665396700523149119139068045276572323555528496857674599415179618808404311880596351305577342951366212698390304948399347857004688960189468007056695872618368561681570443700445232428083781163131354580096375410251118839110759786518493443830896027700612821499680760688916667033151698782405542982850378834270986428417985803540178163079639965353473216818256096315298272304655351691365074659219178595549858396928535205632645161953695012232412184403665262339051036218511137617211018096079310368226704592252594947539547987967045747889164733223060005763808629782194964747707766058402657427528420539433537195302070523781612361979798233377345946578076385316925144693668190864376777873663781726628209924627562648874948033299961822198855716115327392969860474949694604912477402272530487487547211193641457107514964302736256716659311032222686154121056394829535557439210795577333482775152306851318203168001549029044601197457608424575342233523810189679880119418786727789335195398109213936315848278348719547502431766213164282473818204485892480045094348634022944356601400642616779768401529656766116763613606669903495006112741917700707379286516828529138429515272800051652947103636139353209033627727261382912611189356019650897041535648784811998131026470285880608509333967709787266757531733192168750219025817941470144089101571531065464779848522998086562156741862066426476548496892849553308381472332650442543595883471266330033295169152033447014602131414589378802589243469439966583744311614180618634217768783523067720678345418517066754613362688085815788197938022599083392962092824474517663514396641817979360168192165852304238559528156822254571312394118715981328768256566912658565091924405362922906388409583711558201250212112046019581952019347040973075117074618140767222225887914439969527513651929803443538322624552965976128594111313260375999747873887930497085140991875471854858093413977738668839373666577206556133143093536749323770917608919957636030173744374873707565447759098519602981526785477578429362205507140661185363258485664629521271541655270469176499892074007543399836568736147361272733103957816629545807059280320870512933935608714225284380821294587237283548313971281662481488482953981837938692552601771701757416907128457328430102345480405479398277658161078081354488300512967638260489675365044091302513612510538209661092214403266058385648101126167846170367919932901855966211011014056722996770270448213313277187873614541936039644135198139494526362771963608662345175235363047093848127036665619550144158850697433398254231209874112019477649840205564305014547712013580651008380945403434601749369412569172567575792739130548904104296352752379511528663994595271224300421053419568980535617525708507887277450968958097731092490081390576935965005383200324377334459566811188064820540538710067527505105774421292262704955096827598968401422509114481251717222925883337979515473158880370807315004790161294926986533779516868871494155816064567143049323455258492094600280669267091354041548025945099635840870793831586508727628315529105480218130091863102334557826860436071411494982640092071358623890359549194979507526741727440081391314717206336391762717866614765249325738181106610510881802924941443035820236930449579362335554680662044677944646273705167062019243567008883878646663302352977409860659680654899607176265907936308656629182310087467561402099223343609346624000501886085870377038652890512099081553492328014496989068558057467559393012207382510616238992189519080893236334994485837893713352671395886555153843847491652890110785746906007121818268162432216438956998162423179364021333033927029623421126157334364470011413932822771969413271590743799671951729446996554215402139254937413041920017562479728510730719832572454328144418958570835843867327387270612831230215306029856335553956369039558695338036260538314350865983498959493294520665701296560698857367336065387436540268115727282334977011960081108062594896513883321968732995389017375883031053043264419425898394286426930069857869074512920007713480616645846587900499141368072815420079527797327466086171327580414980308489142695108998424676132531808397155072485150565691948257674923838148739957293334192172998486323797960395630702875644849252371401535594172400892810107220056211725321378052664747277599345697745643215444446004752433326263839280205643682854919532695066567486560816245351227495244117835699352538067958172877230976856229239989833144054954292105822202433726377175105253867439159059406147516722830807722927092187120402700344477657276668038951608218684769244609078647334558020018592559075348489028004880887917660298348741053457910698001669126133860043864607984412602358634183817823861217953190566456086495423599373678903976726094276658979889244101523289701925935052419246731536336898396470103538128365561355872066146169961036009057896750443841223680248422957635537840417837306745137177634823071952830233520175426817663002396400373130481860162852154781662758917216374156884830525290959374713987579170756363359392380534524649594341440848701236025516509492636801537947957588152863114887052411195708419196652665799758438094329096065987782835389304169070972119845236928329165331900669751885683380207944617122295322557970417121968534611613115155243295122238857379606877538418453045620770197742373362041754507627845502768870784183781285514846529676832041581103771146643355567199234689969529246770654120063091752037622467173290344118115242722320550715240891576018763344862257417334954272917734363467849640968658073484050911920914083734757311942430995239876518756793855760822614049601244890774085158813131600154718836063924098594280449295824225508001731350479092577979364913148881168485614913400629014331054636079807344483714771967482660264530155655413622025638089240488206501845340814573290505234421649722786469161660385216058657575436122849125857933100173211481744294387978684701780815071877476730666379880238490214382820770816087454729596048782427927368357875311940126973317991880073220740240890065500247673419262169711116393716202067966163107846396931877042115279235354705408384316989492625275976884721467446941627641060857074378544990844975149613078078640352897783120282050901181363145303956806047218110121322152740674631899591337264414253871053365546589423717668044551939952899989369709212546049992071314323905262586211622059104844755481898498052720065881265340468801318353827206802342956655978171079425528574259184435830775695876986739840544595075224611207350245911198052236806050765968488387520569722042818535258142528267241778443443032097362531423158294870794840443743853219516223198319779082544482785479852566702181855172345764448908191690447262858157153423480047535424905378090995398106754890186004005862293558247652125551024906083649185898657642908649719195234424562238457796079265515970240605882755054576841380850014476833640617165830521484231447048133734341800185483218305847645506342028243256641630596489391309492653185949373199627177884472906189034745839265561986234385182046067297410442787969537290224845883063929501672216157112495486368831914882999162971217691573878655017079468624989027384900214128127073373159228866349222523488628013230725770677216545227953639311976460968543008043317524288970075909681876342449348691943469515837097632128315800121167718231776605142803091693702360409796881369045787609781623006674886965038453460286835445290643014834422867118236263424566140612051828724357410133105947788499700703485884732640819480390615879144287904514154700716424362259050769520382210516141495706689166062728414770724637530236657505461981772585967956219941238455370372750264693402909405456122787985458329431167670978481989237255997834283805771100384267847877046834251164543142355829658263166425397566151170110186730756892556771593480744420137524343326475635941725145527159827743656369990774909139375634407679384193861245408057450162862436509221686950252908294074511210247836598889426815336858284009493539876303874911890019229747957410440853481299572054524547357298285816927696646640872172032957622316584076603702175353658284259318751358602535321148774708214118152517132615528707480142658343759860699344972560091981145650969821354196731434224471728527262618642308711142099235391150574520823004326504998263246870882479592784239033481236584702849012918639142614921857652773144198951625668627572187948012875763257616648494178232880734290681452019981053319740942952599160223763156579537413791032409206093173622443102225939793872880291033411241239921111757804312768373455142817048269138527938463304030823919819021803942541358014044469339745603541339180447446601680170067948455767855367838240753268853721256210945063207490680921945093403812612569314850544381446991895253971692110445826761841614144421866733965032174287965640219845046145613870166864555718163073084181085705852233250254767782675941630402274476897856167323819588909221937103225879355043224295391352833166308574203122709042993344665831108944592470967324832504773830921270548924168094823152529196002580468037929411476633204366045956046208554684611640055108693440398136575116420623350270500638275099746096264516899240964072415541647530754616882315487512740362255883690334233548303864784180396500025770065208300669343879000735590604793520428257716698817131589121983527328054740746553809677517348203914029106750153706722138233696246269797213694358787475515587893245853854935394709805850865981456216235397492499612556564482614627798939997188065196046654394074910751790771820673883988177420028732888030178687982099294764064176309160261234575483642488473353952200684815964798902338568431199503249588141747052099409131707733739276461299302143659590495575079447664666821378289802150050276245726662641080126481693461324494235807870726100606504412604485035157768611869301942386679096762052931804464431075914762606337104249540249332398385651010761169001549199326343869354246575079873023053278130043466218173792016694453992646642378317400390574150579663954805421616663044921649569748351766770003091366857949446452157904335811740397393049127245783978624246047505240983282738898297857407032925616069880349468082123745126721757372088594315948539916292669826357778530123452614981872192001608197914443624914034815543506159359468809489771175531566132528293638236306789678341131853011848130400947540719656569042953321255942590492306751372188799335256182500636417751102971930080511699591709188240250114725761998915245323845019827671748106855020900225869580130847080936778161764983587033716770493130227665189009969302253266990987122140098806799949194339676847429296097529172595353387705152812689045989842060810936492188797887363036089251900189642178307992248356867172366422304406351705121446984158656138240538558963796519485823735409859720583553207432450680777590529986592954739293019757311275161999927196831679968670437730597623767143687718312429328168235666871187901126024501229866837650092033879268624244550396359443984258893428007048250839937703817898029650987341677377147269932651994798591627976916685002044403324514959050566724418593272285314611151645233389483926124345263373432880796832460871879343052071612373475503379210935754026559586506390291792065638827253730615194550179627457471216994129531617830527610898690456454770231322030957077753057739956931890402712049847498034516491561400812578579686812140079855312147350309935985336541854551162318983155123925174040955234804285377024283134417794123369041263268006549919606838051764641967919812239619501882830889525782448120414446535921887954907463999876643808016560959810626227151004490079314079804187508051466880877246434842959099037773620176138654196700202154562581309433198845040206592865079580478325168381286071205750830034547349635226520712047542165796599572695379204306358702547336646983014235239808367858902589113902511929299831584101618300150100394985312692687414719335765231743021899265057118479404945269818412965645186581524842247183028358668303350569031531461392485377851816852915149114840825695271524673319207987895007726354696392472579212567998387767501655478389264756293114510806263960260407113122277054249691481054408239691219806442045705204580481445267839658007111543058398230274294362567710178574579820989630284822081267883934591514616982020480774976436193146872617477853240332211345181580053038656918670204058794203973290651628469386017722163618116895048754111774174879255019714056536408419801733873657618376045106864074332562994025507654327051686464960656936852032017282268670613105811944452251549627797934923932474325122032690416647688123878066163072696045225142657302734640371899391601608698769529912383494879219730878619900288943330695192414031064764004818257734221842976701166886068802028494734424917392971063387070823626684332423941018700469108584101304244705297376877050179006589331707109521177402430481273673424010221944909024392239431524088450029405633543895543003132762561639334844480048535540640308892849606811735270195732473659475764279074304172808801418536838314689095605334947028817219587404876088836666570140320276301241268592925971418024774675798413405721713576419949018565598678992872133253021457715046804969184631271737670621487612072675881874654827259759515121914610250206081606825171853142490839322417532572551938400639095304711535698789120950699778692651725938006494454881031752912821921044025730545207198910607985204824901674652387776803390568241923989154266058883764491207894653677759011566534452504270570530960277382785263480954224858183167390891774249959930901050861588406031835784844829542413455146543169153855273528772872758986417590502254248136571661708045207584452876996946580826133051877487110888718752118216394902365255194092931353691997077518825921117283627856573693205574301568205665715585407843776841550837090708031563691537246349656447801374888389535872178040853994217753575012733320053808958363023226549478990814230531907604391246129665666465315506002878661338892393854865688351188505822232160545940933627092877755217511146013908805733731431097337479119083593332701627559538682703797057970053933028157511854962278834553886918743164906162066363032297790814285905889662699858981132097730563352336670059016268462622181595005250062950446610050081977501331199099377875991259023824330931782207788278810007284972782364681240091967363135662350433026060620154426559390478759972150262635474833319771127700738767663816487524022576428057461419574354047528214467948915509675983922685563408539486985982838378157502562074706496236857447834437511260808559181963591537103091729688832236464939990132186448308250883718285957804572598974731424861477020030022851170051144298147442211347582308950531702720496521073943050832514072298973463463928065304100989931194174088436362734875371509421365086128333491310006966026874644280859046229577704775709417779816622061150483420263871394940205741377011992268551630857713523988939492589359252009294181320082785320957369709240311986136550358285307834523710807085325199662541724882575446890294648056278524866723663778328919437200182573553830951225946678813487677603572752820949999928288407644909615937024962606157779963907426952299331316197991207934398460072956533652472788713003411576571691726736932557775451009100523975953480128475848524265404636656589879683224603232747425592456274969239678848901094465920945843723687139777777227239283837144484636555924726367346968772224535534986413044319905261280462954211787442652030959532285293670940553698448583204269200235311961537536762096335118270016575188808609601719178021927087976244786589802386797282076567039292130028052478554235512083551759948402380123624260817025364105588874613047992966256355654256110875024835198968640570633877920029994866070433313962340120815895812090406154289652853858819661897200626267103564103241120178355351823420671863489397798171301415373487081753355072476254763125901232690079511894550301753526098098657388231683754433875177374458229326556580836069927154076669475995150038467681749770422071260316060939789880354870684140837619407139844069000096881885718159033447725816682539864976430868455655958949767746513153435252311419896883905507745447996841433985110472928286798047211625650496930279599518916067274852794718079213903212208297658447638824842294132840865200502650782801088727451393342050155925955617773380365352385808768639117065119749389104351976595195269763120683298305907128045966058023286064258767799279302072488807282100235048170821182112829603449418391433179526688258823664870800431815161636097576626391897102476270967533610164954340170157914692002794446485329560847848277006754863543486515995976790512532779353760618779357082951817645415013173893983170986739424053297993468088726859515704865128302168400812186194194867035781301489682694839704530642201253324765843336570553462501489839286287509918887396365502316505591450627300627339801853797900642999100193181919909870945387726400053503847713203769510548976152452211383934566157940729929835415139026024375955976897317231726156032062822597361103251460011940997278901839391646513227497486613639423784850394405563980145217999835376335580766154875895009691579697107939487637042498772303783435722433436217644082922947488331627824075556907945827732100855972687169406819136997254105131505823345019065285731717268763938246253964590623557332278121462234380306781015887774768809269275684722299329748673886144726633587749008192726959444333109936671500439778351295010360176556936204091486250831286707476192467350258770326692754052023106725441947130621228260216167503836876220765514567548823596809695879551707250685058484697689729481385143092237439760030171501089234304896010054656377507785727365978981528131448741301322799379881307991911155963504636497110605684086240017823163723624944176550022533566239116135655471969585223500267617410366211290020276933437324503036682409176135118626486765705675448742302924546886662400669684506490159453881675782632183673756712059323797318705273513150850387428713529181001952413774439370494155580147421510125464359220783626101778892757850382030794695831267019094355836326846173041980998147793295895335241170200207794734845495803786060750703364620829511452667953847455388802652463255627473602870798664068959795935585279129180581026561831063196564155790967635297464917245098719063056530683335515302835554724912516676108314677524873791892066553575497521105249947651033071722975274976663569494835095588082405119276724863396678492088434226953520859420770655133629501704724474332086683931395611692723301301091714444103078139866321867207042844710552928315639984468621511842469535176067882068921458336224544125485614537556768173818519372288500760311847215173136369124838570136666127751012030934334853428737953448240389877214514682959266626183065541974426281886288531881394155284381825714897427316370464848013733784369564228187923520400986444302687679187727476465901655503099111990129041711956626255264746776312554276184649857379187898669033801239229459896582785617249134107516393309294139445288991913021781616857844384749721706009505930445853040985796795393136291627141264269173406919928100277502481661404459522817566998026868672007637098577843801349974105007913771210901467546595522706109649500136897060904456098713617072481784600096953743537459328971394276168821112922037439197235927562301690112109012632287885267520739280760454048212268318731417091065363541910730286533845525351312571589706115624153395806697538617034345972603838570613620081022606067051112451093511107779655714745229494911774107518403089574291580571148335543840397883783063526567239194527360271800356291006695919570193457940196502123790676597805120860348201514612796094871106207183675143031045806943477895824472445194466262731803111163254874958077159597032692754742767905808497485711860270299713936859058217906193357008023132463696252863777429443359399529110255662901139461843623564729518299027713588087848044413054663903624318429926558366682237285536665052777886929262616131452977468960034434808846213602071351627560503899185123507162184803479129845468458187092935809056728833531585915810632075923545026287051072553796266858075657740935964003866286189044525382195810860537588095131578859045703435137525761436715757917516991295916566118108548711122604611433391147336495095899941644213517853734938449514258064865907395532322203901272739232216829821816076414113435760384526430695719434506194838788583153448009427483063359069415467892401333619390802132116655627841221471375193493844519608623379838469697658735661362012956666632793741107190962075744318812040513359266160717589645296670152786399376662730568426400903566850585574821041173745049089943825477053785421114786434760410861813972322356398812951888798313357124558481902720507759261799167630660006269651861499809938922611548544449253619730295534033543619247623163330596937902777923869182060619987457199808493487291996752008658428403317450771829409959359713659555595883627412926515988740959238087181296742649993724059483290601224223746079988767327826940079641430331285014251536694057433168033826279375818815853251621035211157611886821465876145065696610749153953826366600588393763444224935420882645678346677122425953511672467011220719737323140365130005761483938765523254170762743407402748384042637048808220486149837770591885160062025800811711901872378097742633784443010639001546466399575922891622720793792525353509328410709249557285512359152908500524332258651520360822926060777015309910972670532247477165853799005479760153199158613930996529473445748959736020815900411229558290483780942413904227996666350797005860840605494136354915391044365628062486496263839206857409713229732669103046201156282913134977203544060125324295124727804487615403172971563723300468081871331859843359731013751085066226775524464877809745346876027195521029112787547021259617274557920030983020232750628702366359950632692471309040435595430292813328088348720650155816387955096077901461016164120853663063351798528985154475046191044141568040119545656443457525094745241794961396520662287563652656176771830244231572439108732693331664980514941638031973273459873440786495653392171712427127508249219715960325530629856280772659614716853164370824032174158895307566535167150883377466805992642938431757338313090630694123690853592062931833979717332686735904261074704560885284998587722310062119962477585766896824520934740092841673165946070064398015637369019225894248438747666136732877723186376433826950367450499165362087680507661668641696101246920725545583658507257475856731748294379452171146960979017921737367663975058785455658114242130861958526676034243041880215493059068093967605019648549266547858646270312242419902075948501453508321368000100472653083883629446925265545269656657123236210405901408941140992746292057923191311974071941383459355906878175843702379086608060373584033567143803776429962041302398285591356269206972253104228940155649892781750491121221138812625351639180229869615190963235267408748275155859950255920913810181487592008104485561885684378354110051395082923936416069637611388829937585907291509723729014931238401218385350220403442921767147937357873942737929256059506847737441487200514480531264003863957242222577382143521098797395589387410571281458367017507019894898708985638995624781320582342661215774109433008843476610973226923242819387988517309564713654597718419953108332121671501652861701472006802893222135210804429243581068816822673642304660377114013336029341773420712642851406506082247798758064666808535936251101609984543097442754225419074906799629656896138118657684158338808847705207126167368490503280628757318167655608882323130775910468994111609369598566342011267727574940488944620260116694167448390135299204010630768953662076593345118272484955337337234767158245528430091952046512687448407260311780258028765158863591175565370867150007577893854327980233000020163561195093315108454097234920478452646841334810378286883394829828977640950266372744771347956389471659026412075125156067040199776072029989572683539873650956569681597073829505828645602689207334989462344696519655309591858012904489830801845875028680962617480224588035828470953300656869660572966958207721892157963819873998521006646558396314869186693560964497807584670212337936715145405247466771180503291247261943552634823124826997774807818114314519478076956766686251059520681430246926222958379964758406749463663933222422705639499277266420451956976833197105602429548097661030625781508449606959827138229662544726184882455577256582675845940237021266551798034718828349028780514559406099016300498182790971623391827803056922867288152332281556452567169966689459771441144153475121018053805553524555248547475743448620455061977469886011756500212902130677293335120941939320343558488251350052858289105195146836401662924019741973227409817877667056878400022199936121470794113530111330060115773957018531294088227523163782052227788750756753847586574701684304998073580739583816344425856075495388001177193886599384818395751591680270037578666022053729362908292946090435255078428089916623814657900062810035200225245185299720908129382708632227656442001344077667215419974841141743568799785049315888573568832254680682766028738105554209038601932690222358011588283944887511441784784589025192118946114500558728384497517435374935882540620385915864015970940027332708632846750242438411634294076362070628880112560736216376089248737222960489157320747588810485696212527687923217146358067010800475204805594302077716648367600118864375171823055108449228371664471832343294351108280669286197689403123625589092135419419074158728237878171276583023233851648960728221657510801366838960981868053885874952397249883358618482296613863507037295342892325266818940055670093396552018902565200923291148950589077081778511336509134696172542269474187497557709372994960048780574007948586565700806343070266160572289901683169561672416869618032618665212363031522563534584490131879689580213977956622982962830712030590227107381463625502480459966261950361019212922349267975579361248588772000591311280840940367887830759271449221246879459832444726969289190528729731947723078374942862435950415253099924159817891619605459957050110409269882471000773863978821371150147265893729443375471552185485799324768654305044750049856739874971898614785538931067910231655247763176727818141624675074676205767321749673834027263123345265038370795234390952652088573875372787872112615915412960953763389784812831313164481797932709526914308032997562530262227949549710617356909615584249470512934139222290442588022275256638379302471477993352591522728974304360993669247413394906309419773784625746690695356778053253577443852301730541226306764097864545504143426777986667438320266408428667066919888100712902715161585865012542189707764985254814494840331525483914823205172492265357330756689737024733476188107636307444552552284982632588717923960074900759656770280180618756744528120239223195045841596708592983484172635078072401182727470868299932321762530016319800438771074493818331289770344742593628838473894026326184710434247738361846518481024340360337532186518453299108774483804151670060504388036911891348879497512418863589612262153377563788069723696154817002478542620860653410938996966529775993492737738494772478443471729926934434287564013011167484097433277133215016450664454605792322158555485931057056882470710993451866055669601002404042063625586962861768087253126582904351992077448289663801586702467832330085234525061417715566666338575794814367181426373400893755983600867731615455800686790927429422933404289840571933007062088936346057077947164941710985474968222972540534304231811329811749568579101152448443701480080261812290948928817475236446019489604165811502271322452997698170759196648505393894971682800947035552532003020483176449593980077154835324855310693660536182042748954413163505083482642328086168933817744133429530408548773079581658438750448546683483219339645228509447299531425031548110804695075878032056502186571161814717065955917973181251327655281270844317198415168881094868254187862508680968189419620885634230147566137318848121313490782116227468436307376715818094191753177847032039043524949719370396290150440097785253897337125198223052846926447034804340831370194838672757696648934183610781299652701458654547355885168638239504293450991844753559264621766173308892021418983815729970052355062186168225739835035444471320223890897847398917462240722105138209345451660066713461042848031060369157768890608512930391187279662587793672270237382934935950898697658639332847815548427529021270018497453080746001063393809499628128527218803856336427075027218739067473346064081137900858525605762155079598306349251297714181156335962514386222681405995755319480291589870488843419379172870295169792441222845948874785870885647827131330895498802641692351186810784392053935208619993137855101106200300700194769480374829362112688110557430850729110993342639084017210832993725512746085965804373154643814974282302056287950470290639542534224299041076813411917821907633138291840372153408602994423778898153450116694395826845426015835189408803486078850335475607070144742828153568555742148595502206309842709141970766337340366797295006034846149861876647506206538169983427799411766826766031736095445890078260302642118960119675687738805878531874580937522827635204998165245797679298569323271093606486800027743700531523054805682292693461992004406124885888453651320071424847687799788939160679096516172901894720612335059500574608521565406182444846797455035387739285604008278112524907680843669293645625510590474558403364218293772719001193167845957581744179376226944978314233023168637645208253103841539373429025768665283002399605207632083217583261832453911545451829928513727920371964406856887295638025878992833406752983555018572687617813230584924106076236470696867418633632047353989608753695447240241829968803615224164923881509535809337303852376752393402105531151904599164517245731481784787372601660756281615461121035764278778794605267421590416509793488790548503521958395333684343252288986143430758322668828779622255465258623431680102941840373958230149545667988139249202222753031150200359169171792799373086640622312699566200945933069584176813429204824489358257675496648081968179161057910308852403055325497602318619890339874094463776343731504627598287719892806065858563949209750455362584264632609515164794362785438189974447208688321256915394000961341721226199575063144426552339651690069325467727772949623857699788656170272499929771900246837943878888429130277320681718987336594792663118174732734341177457485091056003908085609619620177235259749844294888354161935291490854207948442147134793830971975869328557026731000251922471833028550780494057004339026403982989366712514343804321092978785972338328773351188480579355159819095189813286660892030937295635943215618745301608910249909519271011960019170143656222060110299887727003908202227543014992453538908521322601385601711893099294025839501136225832191708066907700285698783704844864504324379545393185321738521125221541165299475727115544354302025204153395161901989257223322194263648382082983638057523934208441395620193506096351605755939938386718684415358320338482303385251004781176730484025174358641855668440444964954263428332597852069504299939538521509653024666689835784241456575315566427580625606630587905415349065850089808975688431951078410787271888903038960141507282851844286658045988135137442764361608192394337567940792760159582497853840855005214781057522268034588811085880553603047927872979501150935393567991629260580070124037263744393351387586056912106719495479270064402466177023159725709761040879650718130192546505743283154681851244889850404205943037789041813741816767412293954731254132456859142035704402665701493611766289325190473969388701438908391742144810020921722151268802899583457282684033172345071440069439049886763252609709584468678543332565550423724553655376845847598331587607658301406777353352833433833742995019223901263177619381388820443338824107760405363303739800165270898450512193429425628984811276874441943887167970322589606955664234954437723460699758959086982840547832884445161519695103582064626464275995937490024584322052319335402506670959144634561027375697253289298132862200361506997412970993602504467024037968808617756219172628911699202666514872373894847554789830202155341198567689126469946858586503877135650881537271074439946043095170951652895596474417342512540565386680763738756712625761993248417179604930130485386185512733997206999225754487913365074672777997759565652596673706169373764176713901818488781017862231022785031984446370456321425187857692548413777569665177992874485095559416091518027153428239567453512982528712663197633677072370139081958115678748738471518355515885130387149382898904405749839353388513820147478758090405755590400639073311762409906423260931357799582516024952870079703182270112645548422097761087418110559835781444844203752129886891720780076566475847061247767605083593319250529331962357810736720701917851266477642048478697057638273234592694481088356286269709803964184654486413365653115656191991737561257333660248638530205571896220956550129033729764428606558184752599288763217405519425688346365131674966208488361720534707390629515291500696696577140822583270707933867725998901008185597748762513821585081173838168799675042608786021055666321521156558814954231789048036998169381082725976217678969007653889230234972364729447681016603627630166113786895582661850802275960892493989470451267364485211986617574744143326733029874218352150711497137627189310041008842517710450594785779449149877678614171325604680641791549263704933515509206116056272730092806091953283974382321489703930909117855249819638925814191556918541252666624898442680816822787122023889075854878828799780769624083703797928565620857078438675314307660063155403255946436427042638938282815617952605068753681977749852026909778315351420060606696800829484814158460150332832857778355870047528432957585827748951636795814950297008004897584317450242704283805472440048991546616731508588732989476419420113801379433511372403471219160012408628562485932423122709282836225460721336795025215691969622524346163044031153733968300864711201355214883383712710988700396575484106712031390881103533453587589017902107516918990581198521016248010505688213492483785123193618800807440898040131097373446839947650883131142227325140571138465724111731509207366531353173813253179110665915757760345334315346161763916688471135655278328808624610597657025104134495100972418825718852498171632702347021411422371655753173591448400982193573829204383288456343958218762240426272997885780351872435803400375999630371282261538454708968704920500130505628783330308809819080999709468722731693827843568145709977333138183437688691366168053790232297197705727752022432074221897195225560534411404379334640212465224541905252825997174871883375433434653502308534762309515399064604836702666618005837402474107984667955294170098184069021536018283795243770039344947160155685298988559020057979332950883379750116581640581876998177541876178953180014583948283529884798080409579523423791831237918788958912011266225812414361259406555160786870353804809722555154627424237391949343657250642165304896788639673254981319139746768756698130047252611898123343710692693896547775021255643171438975493806264865206064622867308864378268939204413375797892910493476573499014592345778399065612164587054443240522973382402039302662408809731644578702689254932183057376231634977517647451717746407550310055131337575176291969848367024994644926852991191562436268166210979535451799927224675673523200571093721616313477813351180224837003329340479778032630724108080942632951782409926483314245228097851425617069649281029645602499385556649857402913602263540973562182384627101421356205133538080156255467627894074457288296527104924956729186621257730970696326011775410755349532168624669661514608063017508748925027732597352328079705497460522505889695625029101604579900824139930529232425532204154663894496729022179348850585872627514456657490751843912099902562771901249677497471295143204526600832408200498617398395873969801060495581095145096874531308415574059917055587331165733639630799189734743873686890721283131355730738359929754542551736223953808278354948273044168689458846497852233655410908496507008300354659244453606962369652647754108541606202918968097600333680145828270810629979340369347259177636280494798413595185164537981070066425031941772340089854031010892404346554791667561143149165555752240608575280202653547848605712078411507677690101464283554952581491914822716649743083651544425735751320477553330493916674636713873364092014519061733648665481152255911283975927343245430685432082830369791878429509546787407086559938237991925380072711221737532408663079669157171501550613980704995994975948138621884314359637350702048713347923093266097900657796856698485634232139657585982190969405449342491657953039071825397262271224158014833375168237482246450424063749888865437373792855597154233755639549117289301027704221680611040293640630435165038318751967244838602617340205354458563495965770239122830768528540858622820441616456230199663048839500971045468347040351418475632588988102621221282634615761654500599930557153380536785096968087402402838542597266843554938799543945924737967313241842731242843735963125314876024085161614779777578487395616746585518761616883728851847529495649187220403963367862017904999424918538606047145154953080090883615228866404185668149891647584762050474173529618522188690005327568530926327220914350453929416648682961073160813525263891987548392234108154779852542079734606896801792932993964665665862926252689837686383588570565302624390998364897682344182360635946917745135532845720820038963559645151215056288054490272735708911049782672152642084267480989584830382213217539845300031154441165340407623275036382610126533970002098421763606104112858675290773207778202730690371704146552289518844036392995595852242452116093668675023768673704927234729720724258931712448205786746314147467663403503904077125778060450241220112463989548102687146387952335307170083757118657474809899463741055432451805142304910771032731078081758128541192145641957744940229808203235860780850841548749391787028254737228928995569704323013250306912390840434123758479093320276613688150021645083749260796325679722266607164138115964959655248066399300620807221237638301389984996888091560581270016048688394915907742724890106892946263520837396483572920796758762709917103361196669271481332741063538961242752924454371471913643490680078815250924655624540039904542311080011319545760491612059209023889331366935412117915722556323897230484531210521132314608318373916527644742517813234951346679450736435947263657249340389264790203928277517751498990012482927780377366161498978094465028060608423178279474830257397741450961954688652908511265801791145100207379168686641688943259507668349305283016539239172583275515374290895401882954395692471158319978919557837896841001508252566027717419654472434854876659911404519100023254510094537305486776779424052000523360392915310751298541696713501795748707969849562472967741063145546675063967846434678270498292472307544689450281749362398856099837807450374489363074795648176988042183004447176173417087770577115459372045527235505048532611067483392000339863302275713672029628114248338109719919771182811621221833236572564012954447740409216527410777214188994561366040662735615729335415438405939869933969719166521384605756131183913873604767384994225708588757055531451261993616068879343759079432794555755856013013965153378121451365317118932401376429698240746056916523037276156938522818396700336255497707337210010902139262798146127533160151557658168465734425229964933144204864747546312662668114616370611341823545767551464419453760673285939242227241846251861432852603438130645050623723171052146298777482855279820974325013027856331938123449840566367868100122558466056579279320848154631105834000904398650101168181203344606447709912166805581276338908867272534823940721434286821453670957222670554411636081826722420992569108235286956415182290673698912127005731242351922165884572271304775552938595749967638289097258306134462777719772032537535014415152488882861553214933348649017303575328279362393661899217937706776627176014048983005078393833916791971874828572794212808358528239706400237500402901085156161415240784307315669268630054040261856207597841920037355743872850687436142978437262073138525480122955920078529000674544621882726711822554789438242556700370666527866670144863085743819778754300127934753548539248115602045614106134937647021440349867463905443411516289977402570407568863213770343668810624556448003792486977152900984310793384488821249254779831699529317646531149540465780186168393321836043081796149290995487148565468445086920646585392207379244818197881515088164905156749388929586551604105934089655974206570687642959444123173574718110313503795679401519182343371548290621385153796673476532954184076554006943122241122345963156193224645103524227110550005076363060381760797182876582533431126823764504419596120484314114783384651056123806255521116123348280542019457081266922494148161551766281652372471350497246226096602159655998859371052708347136084611878083504756014551378132385789616671888541399668277395174061358963192953900944141806900470167639503176205523692773883843287720181038512121582383382055945059844850066641955987825158886714751327753745151908105027054165406305232546443582177293314499709328188245283385322304076173035175237336395753244534564757177605770252656815021952252965690428072452195484132620443953710283918067452129618394552400245549139576357745685987789165531660142714489550707968139054296876425316194738903013335382601294102173517379798825245911220119079146636048380476048338242530047762596289372800028721017848830803509099651254665094241409738654118746680784276716588689745105018662445854183250010940076300142434200559397587061102342460790826303962434721183482793277777394915725454674303828658955928143596692781729737268819976327059097654742111954054480241753861864410788443628814137078106783901433386986591929122424022695951418448249557880160989897548329402170016874925637039054040681568499713765973580872456514155674444187691215399028426158104939782910132640035591391983838091617096173675025373412188030851206286756490539144839736082777484990173882067451170114373383155000203571491617346605017702709111425367488714791635694050076070065334357425021646309387992324109351840146637132962986575365513244582177858578799438094585507216182109832590914746292272472354861100831241389075732206972048079460578130238478042638091833079102564274443315829315252149755759486403827797666025803710554695978782183002628540337644185491477521283472851900524339344626866390409555837181725861033343804710430640793139072536061663480997866938467049175183421234474803732543716865294378406784767796465040467609784266778880344779014727940376150913989516198699353327379729270707867680152703192021615070480001616877928301938686546609139764886006433558598478487836964748722263410442815242637467826437304586961380624428661279502607652975564525762392498982804870737404475675418536805175763428384138548600443529320356810986517006037544303321907837448067512897572488082095802185393041391794092641844177957958401716721938143401918607797039983303818862085290573566092537885231150335928929585777152423194924759577695693742702317883133696420787948783960046057569481298451298961567522216404472105395554340373323524894051212734758878912292148705170494271786752601343135679905692006370575140528895049969699509685243590888442853596706871207202443587063588121252566559205774148052645517244203941439841032952452628179608490533680572782841699895004378490530625107679116361144357762425852633255733843592817904630982399998361997056840249642153469031640119536084932803067339166653717464720297511940526825080844034013862856614393022668591226254396586027723302736367688642987305111631387612350356283081119535463419258254311267042017393605371196804501171930289530284709003926484628434809224987255788126118058176671312253689038010579463221625909117325664889306281714403958594455692566989123379768353969374931033732610409333555312575830951693504851459400082925660984041879252447935280223446316170562308694545958876335180119893014566001845236017990828061494492280995106928780408976521037820142057312029484566666396538801296705963506800538317806439661752169633981710895616789185827288866270006786896552167671285877234198879857850597343373635101482441571747305685448813192669968567731800995928332162202506056129381629900380980381185781659749721732849769271655709057043598825326864225087755243632341136422377273063284817308789764324291222223604137750231658368919313103673066239931667230633893150702114156661942454783260845247312547543822029075027094996278325745394556193197771582530092659136983012375257586096302105487591446035089310330975200255864688838427979696409360821671403701251487374521339249832008490333817514472321422281892101693433783971595666983940517699826144184358653151844802018809270338468887161384013000255193347710387488962642938834167839919130833840375314061841801809767872468194136454020650746094130186579758282103353138178833696252662662838918351472781750419985126088674272574346749257056181101393273051945034696461651950522972502705146476588088611236423115046695674611070428520930514984177552951785494846306653918612865198912567062182740017869963222691566277056258565808684854970748639241127088796637449612283041520651417446972853234060440484102432712083514740647591488229261186070616543295654328761434578419439844529905331685841693297438641063575388134265321586535426535787979822942282378782271626732665594672574454392895781295273236378615374387673638954509762057769128980562151506926641166454483628768320810263296733448118757821739102981361145692193657337673528626022090934753766417949081802020305662914706594777539407276158694912142287211894571386850378635078081520114671475553102186317497094575724388641689975747961193514433436524173761674634083023065204717695033688434941406771339572732926589853748756550614750309381922574567813908960472446525136597476400268210530123152166778359013271086104121707248380545031161636954412610661646637746919557155981511445772001153550898126551553892343965413485555574011229202677735068249308160058530219778453233415049030692544455008449212046928651237418322020266841798821374362710464964846286794052644420321250319137907739678062360155182435366602618385954803484532651753678381352950554632129470964802300746854027500420095792400867618488687036143462705552139028871220084543806583043974275114773976013922098385654362586853275964016491483026653869517200916659056646131159072328142770120812866969854656252153282287781389352017488369645421444374811689741451533294417350657555566892649875438283196952639966039450584843680428579219213259490070251137225987342972576792896380415848813272232348803072904309600091263192135045666072929494315675058671301793138120033791401952774215634550297758659349673919249130681669403915233770352723638491226981381482491033745554207766051410514459190933165477716370338953384022306588801027833518556939883594965674234655145920208723005571432088623628723358272986457161767881268467335053582187838951618653473087557199146545730902459842090531990844847836385961515050410605066867334667403081272881559873056444509738442731446446056996468171391096303434127215300627000757674035971111445636265185395628719738917080841868455367902471422693361728241131407548630571960113863585320400788543476093763333580247045530629346895954365454055705438875589879541372705292837556151405995116107922235127776948852716818299503344536018491965705783504923447416535833239167571576407119337494998181140837058665386666785834801079288138165654341652146517911309581749071835434628221113124001962793895983017089681891941081930857540796751232983808605932792503468674593960148609461575765458231310328917389363957245167099173108675624194502954590948580209126222371139073921045420155011382615305232896869224368933664804557563376668316495437732543402371540931354282877366122596520354838272961828262806290406450359784067628652716998893713811714921610715349498562014307231767313481270788542031167851267466161528482697791644616584297368909037646970203142114953979179312137093486095677506106256255387970535009816248463144767700339459646665941583578187834901040144338722501747338518527172820607232488642610475915250377075835005149185608963924778328964735457426564130991807490840949267574772157773618364577648860949090823208356136610310286957679771939485628567861688594903811640136608919706823539983979090027238522465471855541075636007826094444667232936789086858454460761759875576010512509596858471527690225758455984659287941094339578013013340913878881567658027986543952263919796817818775960666642186850205936583629166793783524603103556940523417810879032973600739656000459565219787908940295070482179278011784993864515685698316843647053943007013385098084381728180325666011379453978395607432063775525084374776455832348581984576136059458041426561671217437956200304157039641674579313308912547101863597131790480244017500254684842228303534447805503866766512672434902587976978667550868809757612002290280392334463949515670921943002820160614832052996951092409505730922604220375727055522971051926293243279954737866740439448984897099473965216701774221565489698419886534057483288153393132413322287579218602195805626521668281989916780993232903424227876425511312563877800755894604192470968849717025251991500535163202450465731172563583373776492337950595186512457824110774456469288691019637714639218664974049308596133096016511233650933291424947077498439750674738095040020114468563753990495990599412627461904107754262637980324068846367307554770256073042986853026348502958183991518399280707282576492374931895976614580902284079356970777320149145571494472311272006080538577450588387046124750395316531699755784207073059417612690789837336571212044853963821679119485502985324571591876450708083680142523798796056940481363337170156185947367888472317382600516350768223324453388683635931670061993904661793252389952298089314149854620439758455179341207622632209272569555766483137136366878397164321876845481128021555575893530592552473646919498710911103447571592143939435356885119657119470752173011177343236222899610322784852332118859277194241088806117647856625793166344215251732675291942790596285927781357343174051630667619561094554173981261576831508821938752373434300258293395154416521899110297727164008645668343223751199272668348834792840836200247358137044185387060452028320268817371032585503822218212467184445042550962836323031219373496748148823197276626717626296343093642814665795742422705443533279649890031781170169734398221154997981569565572801216779003963567915275333573055258588545550942185546142594797118845462377102713895531395932331902055142581353296298794373957312766815919037154292669993778120850237246610118571717609008000201978712300508029679802162054291935016211539744682704760281620035666659171046474423247026330644890560933172444799772873352364907328552055785284490444750214806711876229621489889990059574527082539942627339193909929145649075540567988019395183647079566239911969196643530254774332098168660809380620987988769081831542536033040916103844476523544884804337393976071025893874021493761816167397283150963544240419701766969569924000236784100941972213268014209133852901933188184874838176019293505706025861290123566107957920670496586599416717361070254596128847430601501358255158029684825318860174501230013022740503395665174102481888263416321125850451745056467516488986889438854199432856864603902078729096892580416222154066435134476897206878046369008167290781534993751673194051142286876645984743250242043245166740849306839447413157884263416136160888284201761641429966750469071177166825166431096902122567255279289713679500742361470207534102986810531300444437630930625267421191130837914785801044694245603809428557923044238347449133929815283744690000238374347345157841470387195215818049063691194028127380275565444655429395754472775590809724704646344031972152879408181259210929359393336059717550352906639088442102557383623463206127401160759761190319502021517501061353301171696228853451004809159939811929572776398365664554039050151542083521923477724581857037042942306392171007002609964303290143441175431186834334848536705200715386192520359782464637354318356745489344602701581005844004089645846074977614766202569090911759442562998484448443919029174685194627728656368843373328799976616312430068615594584302008157748735912998224744526825524679875197763084003072612290631275645040233003355014319309837947099648494985171035116427797284410118246275289153411135536986926760533469817429789773839349107700335367427745410363666600004763577724827018810883617009276425618650708612358383753754292223476230211304869742144450809675022764709771841991694552285644254278744637057352670205837988155836191256192287930694803497655116562340592810596360654063166840075721925324737184988970346270604834911972911902142663456322695280249338087812265383000661131958111996710860841147881853507745770519213130823736221173990220102522649394171322679454460467898065892163556132779142856030287511926955533735816907100859302720771120667723140747256893253046758741189422291625417863535226006649748660792262135480097004573747677907770285160418777566158859529848132654109569232132411787949338223597626003643896443896945292112348873100723071136815040576552711499341081581949899096319379341123475099804054714854040106656674231629498810317923881100414540191551365599020691170307716400206353024800810117049453949882164793334575021380652196848025639609647999949194427685878258870008912514685466377051233876065770905751433754651066296163617475774738500266618712677131758242721988831563956169623934620418619191573821255273548532041425475798702689392042225298422687580928197418557035840779112781418672823067201432675108311628316029884407813110342959112680248681921796716717356597865472672309289169445695096186604399102456201971892089725994742696411604898131122366668780722590054648425777043851621170504919408115465797055913558773626993676995793187290693027477460906999973873262103980952249414781644049893664538640287280255174167416638989572932125560598286140659958820095812112367640567073423335085470677931111993849102596747299392821262410328143862994521843161747947261724149570344689530662534201431987388720368359179395487994166451271111543419764562468592314171684883102465727404238377535669557030699786727926036972632943005093635856312183252941579479501168495210782375961733119040057372667754193918057033989615901337494072750354989186363381017242797316947493079190206399317662006161746810420947613230943643794710876442962880816225729999878210171315478171688529342095000576274851620062750310809320534053703749459068974450027515764259656039857684463052860191601035274648278740147895966500782834876845126204050199775800854895439363070418991351742782244395158955024050592484312490773747884465445829068270829736854788782411568102367564860710351063251433674895213428286745876721061420798340152252923526524675355848359062581370855536429963090275671784665475993661788859595805801742945442082688531908832289139467372941448647426031834143191834567745511390027790609414254534484512536948894209601736838272186227807866249350049981529602038312073724507915566275736340363346938061798361266836573176642391260299843325908415595282103160432813713384355659333610875992795098769897063517574551395939172335998151001544563218039747819063630306188925598215352669934408696717743678370096340639444338422910341179180259157570926730370027821060972982442593717750648179875445397221139388824314197851497423074250049818142087491549014818326200699441495665820632125114994088683794558711672247594248919289805859707635963117817358125464535658361872087156895421753316719424430072416925336129255208570543452330917870327727239674903918051016451797334705343967658628740805270046791896915295943496505230588998629406870693067917352279412404362498681360800168339931155547092674740608379183742443509139930366243134135393498679583337517529082897302481522167486001484728880540306623648425433383734792315292087305356391804735895152997970124435054623176239317353069294237326053869913982385549132643443404800084530383174132122099398862234713102195588942331398867783440385603880589972847485895595933462528832631876609149168471092170104227517768089310789797189043389582360143008761831407716877160419976496206822099695906184752126605110637139180701487447403544062372764156236133341485370415230854474754011211994455629187662160856011798384288536744975489763384192387392310130144577579198383917469528158034519965378094894065043668134932179911736778136456808877337033757163194873284642486875528381256134607499774204157105547980157381732751067176182631573000498371404839500958725471974149125077803759669795079270484213971793602372339199046166446176544330585122619313220425557132729304758616879046834531549235000843365771709621910464212885530907508640246888668923134962017617918571035892524911624131617446760475847138551388740574465044783053402343294816640464233863115851400127196040408563433419020262759606523901314254137969322397649228695564555386362126082617342230176307639269169970856213008092361010818571235928162404662397089772378971197430743841821081285117518777635369908019468514088254986357630386118260586173160495876419510371424043164397092876972289680485017182420496588305346541053891824259098789328343839539887260802887278031255718004821766111639669531073606039370863371838960126186495724931040113876036168974179369172441815897345461364582308776120976654588615768856532443297765063396238601743979952503397780850708590815057411438230859741800690639026639120483867404430443649101023062581181129158182592954120083839753244221323756730294856111619146175959840148069704170312647942278325268666669607399789469471461641610045020957529759050481846772361576839248459527595952465745949083683716733689345062471580936981107903088780982744614841075947436437824998452900897438443728658327929807318051195507575518073211785028905271339160926090400273827915148494940872406111944852439059037308926605577973223447105214371075056679448057694004501382803841685520210538449594770340280681704808462765584831165339501626147875019858207992146884609203373874642465813298182105316530716442400692525801499625160833904749511604444315313930368446559648738370274944282455627993232275683474826680697757827343703194912847797550910505979117904697895043399922565332608238178398662757798471597704952131844211660253745070194352549516003047327857804444371533506124388175159230437562648496611329901458570800531235092573155355591598316641513807301889177357430614022612170458306570209221846332354786248222360211807412383349710784012561276085003910041282884117501780434446260634024273223467391560004284337694077844655785542148562620567930074728602167700660319965397191993625755844433365565741266549451074251501207457536473182659837049381346598690321165217599087475061002054261953672787175495547429571868265012558572740722589153798745554608467597833747888862080034613116603507739047061715003254691117710325522462154545263422594484310455557044183805416514682097022260577512260829669425455718862521980905749871920377159251481314837337221454067121988360216082388845084158190342271233901545062222278535073892797491068753310039017236643024805666576683797415371707365533173160505948234656167456065104961362944548355694162977527593322010042367660222786082279635369850464157087159214334673275380339283056615667049092263724597543683696819131796943661107601507882711202468520556226028792757638393665413963773724020168490742391102806516059972576558954257132854647014937666864278717906792793722755726311657522389032355524814498001980070976485502340625846277033425979221634803743818615466679359602733134217055263105246111181797382942539647056027241782970245867474720732346157014160883878751107451652452714514442465724999461821648493419325207428815690807689281362436861255544633773652276857493323922459644227435359592011974916561187634320043548807905608142898870351931347325260151257988907960449653400856410024763571667553695606558988544793885435130805529889969114311799494323933826261064726316861707742325870944971552529190826397442712506231304579144950397363798125495203031064412751215642939442641690620442814535686857829114231818234175271458274663625572512867286895524156597716382700789003271527126411878373090990380900160595232075824691618615997944509948554124544345762471883413891010867965329047457267547962119462631172739771807821965641044854654019833363402198718798766545418090243636269842024094060621476485301467036438885969125599412627804815982988992894395623290808672305408400890567458310982553062921559963863482053437291219264569134360777975263337296522127073883377747084401399208204275396564171069352316187664823423222636278893532130000896614052812994561549915240831189469512747627989050622169266004400231128154709525755548363803880740917736402906125042646326590377377363383662402204069297438888321780059772748739443000319488571625413554796040291304494790433434044698286852715777816072995852965178830444604712312196550689720144173448248171513492693643789457653692377172543143744006319852849685675855842305855473280045976517479171165385650897660460723577839734474765577178981853401627743611857873901413353087517607060731641999183178073650548801776845350476736926754691684632864819979645123222629139587640231450278005566012774356968586496088278113511733321645540830822807776766334621293419145409237984046592561023892896454572161099452571086127948211714136506247027060595994788808522277542596029524158510625401408901335900570751039100371842234601079601279349410508948413384314892303493148695708107741522060715416975275904874467222323605515719969318388652036419513199801697346653234040915718320581374164925634817706074990270169351415566365158819148741626838697283170596932804315145711792537270968587477762775113305390081350039920160597001373530791140290578554420541480117656300314379995168474174699474154728392349185298823731973581367134847831843563276468640998158344476201228157463641782187844430647164241383309281651891361768420047854635010239128884063526799986482608084084091142994523175993076458124744762902027429433007135048358333182543178902806474288991822916380844660740799066441309080722116155119698271797259015523157528862044092413943722819151727916482987697132690345520560429551189255645011087717358620299693757592481866751864150231123094250686776824230783829402528875139174559160648662084355225894486018869259442391126446526277857389688539097311615513142269977648833377496874431172855957039503348075106656785368396761415934508088604312602984395310152948974502137554035662719786621849875942277177977196076018186684366015619411545770984280007403179407985566626474939974317364636169184796203816470154341161554605506483493253806812541224442883887260940423048828631576394925236193832624595601340824246470385194524973291912889768342014526052812563022918547896362388014280960442229383293751332761599478717339627567821898131699199617041601815322948238092211532002433829680280480549728739090988592139052156694388929081082076792046365328060465304584537046028592438533525444179284123144026457629450544387656700921665714621988010338699391055340629464778254407784859655961372371623992619624047774846848604576605004384361796229185916534409208020631129025874606677802046964658557924265291424984452224686150401751743569922078509052771207081136754377431729464246288901260973082939536726527702305093956724358093765695432507094520703064555945119509973319338344751838885650687523158478509887815479470833038384924506647937241895183900494997784980610997158721795212995875172369359868082208157424030976358966717596465323221067838786512854101254160969166579020316649079433966759920406509821675109104686714847111534092551336543458653753465341073063379782849544740098206022946214213428391235939307436581736137402011344166754660623275119371250714151190425303607007665252732721561745065774005142574464907670970816153690578881341053388999458359295963695168534483549747546794093209238366305988580093793875088975057901464248404669269483365783776998614854838813647566098371775435183261805897718947700009613146253162226077661792649240361754644968249869806556280792788521513290413363664574307852773913185488465520288158953966663332790473033318431052039814068781878770193283826287329521782830026062578075603575610087231204828138343399415120851738084806890534371843753979616691701964627360296680022538540211431713450294346598197742022094145744168662071440353051508990567759956804966821796668860191366265633195556836541875241875621882330951458810415852693191421331165764428511284484646638532034845972461825591797502445665461457848622967643984644009079317945453611983898385858352712200491754085038004321682748482617640398131722884011104398013863610398586362916802125480731174898311965666656366268627394137576120846107658568599970186447816619906690262441558486716930325424441213648069570202917053431793534235669129518388607673379954287933749228035285805208962924482867641645063193437367246918661085328319364165012960953587921220465734880904157255582251530419631273909399638476434882496932957671041837698684131191471847510788300367314752040349986191649234044624813520277752129731221700584325623240477913359254394393237951939419824096468744821318469253512103972263223838274080391437416436437799448790822995335730869629781266403132801526517328975799249326300649509214311777755946018049146270112689463154513134906509513808598222902312837263650075246278705390606829084805258380053144480835696386062723774757231487436814252540176057006438334497666948951901359159759639244751603420445134432415294773684866836073451537201854182773670460102810091361440439614495823542251916665855240358346614933790593327252148840911901227517400945832852251537558957172352364790635540036770297874858059678047486431994032219754626210338426478612791972403690451333596794290115787409661027267337700453934867943513775813806611799798026779318023312837080392862419802499506655207307797835946153268307538290976846421299804220396956023307218622412997131053378876319159604597261436145480056445198604890365729229997898031067884056027286528074814533166623426544677070658913033194124116346691775115981364514287506062586968966763158816737936816609612863547560384900801513261600253847436545803358343908506882202090729883606416017268280983914840720235492020213313955552035011428812975507934785523538979283098770210556925440414034798265743052439373500990884212451895420751727885091484409138744987285979836960189713298421709362912196480349435698333868631294087693807978830729320202437337988566814096800424951137837276856285605569768026328719411001511646015782906935658708954551720607768554990463553498269823980274376100327052247188195583871016747586321711200897020235824179462148281212651370944676275163704527504085687951715262079105171154589931705121112882428075849201390078668126332250528206550595061506808075194109093697264313434883711108121491412400439731545448647163096157276960744339623106441092899790689047898025256679008427514931150206336145885385341405092907327921105515747889910455783708873181071308405459979762122294859153614696223269687803451330685432607329223685454615998232853902812979645700154902089908605424435523034951861246060218378066464439229769291896745618526666769055054503345478780518652837454134056309760802896309267897933771178980046010987382012059786625626936250582723611532781587727803643206277925248676411282359701078490537252974452687106576178542898357811343588332162241657304758886994773332787473532856270618275522158220184648669520482755266079003971284754704459168123415439746373989794190423863871792404717134568446424666548549762644217275548878443954209248195667740062915639622897093536525314347483279788124404469603780505950710370850971770678383671403983946943673557112156152074172179462101191429033002464416225015407229525081170329797370745546675918190628175992875058247136903358988606188552957181850831023190133541808780652362442740287734084638565218030804957436357756306818645260068565229665635071525870116409546252902959587331737451024220308150624850743506736496924216227863521008032923310645017987357491038907313335714300664985860391885553621928070600781372532843052563184562684618741410167394095531096861335472446648884174415788894329688773041493200737094082098275034069957773036028354951192453434697134312771080302251212065328119892325647277156506289277072841820818819524022902062506595098399396883291241208413562089594821990525317126418057926929470287224349845686186832515144246619525167374817329241640084194543849620252462149472394894146926423273441227384986278425569527648956062056997469147020720438473134047868820287195111605791593993011836977116301627251186257174965953212400130079336743611141793440001821290047708885467500839128254874869904269181222945057283248513897550885953900577612729569753167673839122354487682796184259127389322418786937244820607344784534912637805361535267688217242166893573139653470627894692074899991633088898838245800472735695029197467555379624806207557956935649773100888884779917694596278738383983393111311214987283056701069939086025819247424938860356420154119528431590090197122884502313860430480917866779283341982361529952926816755449081789180919232297306973664955150016251323726003530424909595186246602170549041614083995947443963793989019992358201466915577031244857801749968875197215307017144844854173395915669426231906646350656385837072482459594749513198428395215733198079662922568648870949110061150071741566594544934130934292765068100048784784685792132043813024222563097835398181349793512182637979310319089700318565711925327090842656507984429065090121169174091184414862785157962241492061968710018123593048305626427363247197196897571231493430907348614204342573487069059610812634318421041856311875950948264756259019876752184079210813137665314796082440814740653416446287518778533245495133523589411528944955345045129077170103580298096287056944288997511279105482027125870108233356878784845547079685416544747875119464811509807469757663383985284471507746544646423831404790277866713882391424358675584753149356203300344151705723056319387012433557836188713232540253484483145240831914698098242692486664564901809421234350329746136533139267386190919611877100095860864008149061490838721013798802468792645697027294249298676271208843130680350277623933530955389068386697253313046592033950912395469421622879123073487452237061194557348041263852407278587793657514041012321443106544386802015994117116838410292411871635884902347321847468002373768123062051947300896544705713934546271943818407296301848981428075587833918653282930338440700084519498313310402715638641464687348647226818060065307950941725488668683782920036129016491101906975780761674742565995701255429428946561611143881457089377058052107954035039196356326550539309820226608347011636699845385743298101048034408143580961637545003987583530988345203381442756856815554467658464170426785500756300754566932949998872908578766689132444067347198933320936572031104172126270603660020143124875073722131116829653389464777896995332190313705725237077204137414420794818660729694461711601953826705994031107311741084599542204876846168210197001736015919423766471495647714787549898875451300331051175775434967972758614818035950838081764229470506217059116373433112019075327337767564051788255463182805350121249123520529597988412342040403486803006895934849581628479315710555969777775917035494750047782877946509914930420738978892722345096551086861973577968168037373650553735303798442120375831318814659758185981404444452005348196984002137228079612694140983682244375064944385656401796134269445891232490387440409270064217304170297352042066195310407661825495299435991080035059121561222904111070564359014217515624193023524011933991057273770971909024868245297146755468533024268453683338585480797204503224924824884816104133203126345279936825238179366446516503285437291200049901613459001029518609756272111480208899357706069035839619655315256705495869463993474722193933474042307104259308548321143831452593111080277196198883428259188031879680061359622927983684822884881722285425423105306833778075302380871299650245949627961331931577564005531293395323530234226594390218628149062113019256990376543489117678805788103742019276889607069187119934496608749313576316517645219523525634013250366088933966823056023768844688857126573901654769419329911623638596266607044775808592294699750640496429107423674029014999201547863070735806160570771199791654560957893697709603198910267070749149248805084882796035854591786016833134809402246860491258854776931146301229250287835987361676088628515893205713648108203877280757142386256839719770614358719183983508116832880381969364831436211646735804795347594109091513907206168132719041587776706898591286697919246401115375782816413746630334544686286842386885162519606108699904881803508917231848554632376964099928048123979737675166779676168023604078944519740329851843353334873490681565466781873780574676998578071249062868416963681415990054465014364362054680270463232518344960737454419877853527516737776378685186822202451571967486565597611638134782958690199438221392521624701178011900154603270994835553042025793401988177413621133693263078075386769921845717925404916339307299310714483838745441884864972283102890933339948609984214534699712386817277066946125083970164054462459376509521780981035487984861745888207132728944744807244194012806575579032594078874927737149645505049069098060750956881726473430692194690575090779922987403113566879253234881217945168013277833386203180868756146511217046759702727176656786403710445967938449693230825772077629629835499860515378205616393849710297251599435650344357435465525890210572094721213055739554336249535544607163621343164061236903772856291372227978282606724213075869410270261008266063748280155742525068520872158369869510893801503284558284109920744811144041087167798138555781585360998891311881094864453625231277225938032939576437792649615455622619938019718831485628836666006881563164234711998847114122679295564241344915786997701269488018677784041017012860056023039354718857742496450967598901798488921369835030453287023949952296731935967826553385440044917797739748251662918152145203784084381449320213259369278433502160802869220456662519879918255438353295714791502698206156656775550208928665788100608401336986849874496922368112316572517557715615463079086566756227127684794486091883420464357710914820440867339226231291445561762074103431463126098153629862242222007932506224829244811371479178316542764637582868223794547213905894264810076361052224696398905645102199089471732371942164335067086909938769027457319999731480153690748790739377637741511221649624025887150330571719595954345191007444894277682637323961573705918238068649376970937604416542728533834813926746966634392886466402347459513877363664646138713635822494310935070314700224686011904867416920282215924139395554618596390422476975726153209787083087434207729965213756853513944701317841975618266613351157995835725582957917142230335888700944633424793206200185921869708417971905174244425613940034544158827040208158578745192224053171477296890910609906911086748803176669987223717152506724570634641267432783324809830997944352041399064292419791259642037974280408697886206920189494095659491851421648318483978725030842057580000400389551403879306710968939876589619528602328543579551478449157611585926399548495743439587732198435383622229632889632363707289969786221172701456081584224992301070315030284798005052399492919006901102294152451654084921670645300902474603035131257660934443912581183679287648459626016803502519339123718892263289670248096824739458580976380239279932958887956322356707264400613581568326905062232553691999170231598530744122281969525042257817270376056000224781284004053503505694403462319681045908851332275136354174694382588980102104317013155293978757008355551280031690962108108387093926765916107758190297031543075714945745983592823883994563964827782567979235101732134693126285885849434820945726822678755951332147169175454082521363242521528387548655312716394881799945821699415508379509985779684028711950173255226593859579093712595313918162111867117540937630205623697782510831146107397409727198203217659892674489937275525083508745728151295817710631318252389814289545595555595834805665441771289406851343215439083066463211318862263669667186937696201680256768924362934584877954447624090984626134771178712274174178515109894891579845741899728058195128847570120305498445672503729704205672070888909482026174793195276584875386541139994514636861748115497408753264603039195113976159866523026827246885216255012068801819025162240271172452738375696067713681052689187371720445436770409193856272233037789823064984025579183289844627514546298746726894232509935922177280035368553594523292625679780990548545653601697640916719869349109866478194471079313910391596575725704808006659378076514170377510423473723491733976264445637277039637157152095755644633039569180338164243815052455182011781349994872692260866247138421638208743550797532904256802122636961049165723028475516707653233146282352518369070929218556867137099664054531915875805073983163119256154653401943139453496882519370348722700237767524276472384308909729059352121262659757376449567310600387494942010733452018702831118254659761214145781496069478276034096930840200700480477739674711588386173921753601670208464288799060363894223083046569163734844864163439286804171839604887103162175708342186398302050102749726339259352987956824132669031990440389236531847199957210288356764267424422803448977228801601113061582550323387469718421836195844086383226470180143796856417373905263165664594471775291779405556030628803249247431988668016938067491724133482815742045162336545204884558043762163691558931068526642457663426499865502475685156127248098331644334568981167330936190612208716741329196979256738301380046272440013273248117300219171308208401792241371609225484868995020911882496554389320287313721873905710203492054095717714340787477619253852025198383856301576706842086445203793735182400917688854604099012808001317539838939347179134442462125704788878236928682536647073830406573894887521263447233047013429814276470545121728476843917256387679437927285145390695286587862265053661937958814229556166041089312634465081602746751226285437160152104498343004893975156282050079017667646689204544981268640154605460300912121481607706482840760189044600777587960858457267017518452328484586647975051385188552389817407648147318503448827823001896688540635557934449911474553856270216627868260258335187555234083804296964636659200825705187352360191766940175594482840505430383334863968158858620416203020123606153944252153279971839468294217185910953537754158682656491129581338494949006164241279453067062432426689098732208317330785240384206845884759785562387480279385716086236546791040848786134786167283844661899123219823303631398592271554238752587540012967649054082597071223342085163209897106162935910620048162508748424717952390195118686035748454580948307703413953826172740213542217040168491463838622198704024053050842040712038159968313270455589417952224201845410922335275707957833694728391743631345615922478315724523389893141442428234423137289677319021089513597706654886562112965917383602858151289931451746011273717874929906909148979844826841614275274085360103614383322959963215601027602792186566104704487806838249416589451292488273434736125286339178970806871971216874901772870241723078373645459132455587489264660604391170860330373196198738301682413163797622063270567262839523355386134582958499721721023760052172470729560508052633902636057812835492706347956649826431654111644305468353894849768051310466387256372761890180465522288771511206319701494386424132686740289452536879765670474383015878140049536478087815412741450023520365875871138518612996514974880986637323519816463404102444454176612587293480500633017595916927266824987550448854596594322544305927529480449143827737182205916791756011773598276726282023702954238383563212945958678763666504827936928919731727680354565868924775572239049842333638981559447938816433290269467605427889535026746165847677542362122796344006557908018283169539626922442532506860929417502721343470310386486018346002505869068164039255422431176331050762777958246006822085974494687596195792149929178164399856847443971514302860834107378636576566843849335315083224892093699454804019278063155711595169777558547266522807898938563954562527637035811469078205674805262222298126625786936268390279682264949489830445321462024300291870832227938508980472555986539491427569058105459458885776159781153356840660514447572811559262734241237578861586366913520973235329132969577738039513713167173074501622569067668783195291214120380108332887133100904091830267073040650965664221165966072067203691967087469400848730122153284591000528451623547861944315224559024023125360556949456337984858301041578279857682404365130637198719772793168761546035780961858636368122425368609202270500363185847286057631303806467827945475908458609233823107947909491875905290874538064184558543452164020111071859927811744706368066093018969554574626987643903922501099555281654461168677075445575268377965712525812374547337897018387603425641457171915316761777739772833665497171081181213827975466079993468076912709223141232730286693254429856794653661107683847482964119592036920764165558982279539769766051973070220752517765071053712174068590861235090940218908189823532979072553575492410774362337135043673744732480893251439759291088749336215109652773468802876203239833514399742169060593979322602299011564961674626046861781976265352921509259165268242681040980713171032427337188460335307407055888785598791217286157390867293729608500646045277712563978796109187249808520541537572651556933238498514787005109366378367074068498853530901504461835185256103315452915316240611534174925324802420889030447549839195450979205705086768582621601485383180867752089470196972320206661472109523868996167934549102467663925673437833888874635825495961319816767415429335967228982828271230365329687064262664898527573687709585607256528901691793405947091326869921864692790377704185296681874315559208257445375426154026779097349040377296323351130373494635371466526605402515358047012055757314824919486069002480648856050453735861650227012451200043999083328273084960251392027441052807243237075139199892729121344676858711361562043678793299162685981089987838161156708611196011358046213922481781202069619147358471564679586305223770429611220477885028513451612147122542959073299913238433394231713300359703859846976328134458227243807261194878854774971769186242839673679290449380559073026603115866498118204161273912732021938417788033013446624080986477551036039793951018913787791000992443334177766210131075675669742517749799867767850731642936175665202031607038390638778434728950461446406372826954615892643268874584260924825751106721697088633078540803971405230321558067485220789096042292789550149778268485741028548750225254695654104840713865392645931497029618226172919935204590416156628882827111657404056417460642865003488573172665338578060450491846987073522136726687307470919628459707888314881865380397261702355460916603974715159073158613694800516511166913234980726986318268604902013135240678478306116951693150153357618714821976219146964840303412749838755634183733100767817116442971842026246370731368245931405754984622831535534548431907714049935843830216181180192735971426342169258680732519152362616002504497623126406524503677491438582860147855199455081485573749754991947848094381723497267410320661794727714359272911976394408827548094416009862020541047768593381360275673209955301596905674816243070295919785181566752908091833574172682767065838202891327534838123393707865056052634400720885468735216487295188707699104865143317347842291869848924462735479682985321290859557111810830147083753081334341520204831946062941047699821895130249555327796922976396071454269627748961383850177692125671041997957026104282397117939400120992329287579642947358240736127926083181096424766578348939573538802222743666010977727998483970147021280838164761001270094730437538970444011633273026093210386425231143338302218146111466425022520230127563319696205111904415400025370626349517826236282705207967115254357938353852966523785435529851093467747520488187538680657759766496642858351726648284669562442384789946486659309155847179296165259190350232332717271427338949000349693151464403476564478026870583555549284403056395580260401223316769623856582354889355084674711506244507519552397420878524785326901155628357209373629877952748257503999152522901508467887316019106466939856427657297718982614056591861033375476152924143278990382557216778336504584349990876602006937811258636287841916658628311319295636858741624501211308654062727766342204522150320946994272426089002053653063954684866243201215869152612709644831794637681738031013737259456065774252673888945620498940884336914911556379026315943435403832369819314724177428844341181859368234898200860495075992628439540471882118113127066674205001431034805283647586041523175940346099725043931909175733289216393853032764668969052327582541391681282703278456693856892382294184328889945921299174916334192856725081270706186309741713651175634340439797827197392815988454494456767881212771891998395280784045189447496149618314393156885688870587661949200633608174560836842986759326174237758222265309088197213770805224112027333305767302872860547898960645158815747551327694777610309052859052969689316491667644834975417358650271624680359789247624765254578328047622860964149505766486296642245403199057437561244885758369402408824558991431567104275425818381061632520893117272953540536790671801520017208429593736501983022026144239861058369472890110937726237939900708405103773892229428899609871970349634056618980412987865899959270216481783897512302958965153599268845510829158420423174083737904365390482040205953073918259508593866045972114122153354524906088578849042953091445931333910199635851738092563480564875841572886313702622660021549204776060688603441314718723365653321334927914914354712738415198596848828056840603624971316492418669176772836635878817477249620909008205077354862414960281585659694285042044800000807578144665303589807942574985482253449877101551602875586438526381543115914429064072795682968945738707599231749805350770913830907491744961468527656375253120638465716353406391229780455713684129698231602810927994224946212235117879372917082811266808183693640742469507194296404114938381316105287417217015557383611726018205576207157451874971257599364397875552142152654583394009384827690356101320131249873601529031207441274070589413081314571394815587207591839966929666921710311843406199509091159293575524699129848565421200185334567061374564928308563793441334995400024769629792350465882743140656759080693265135416189867534176908417333233105866270869634756831506398177729193497577045891802662476534067358367636468909003767379079907987351927577292408055772092519590310770586717621743604232187581151973421731806345602712415368801334928834470188875176965397803951566175960490570399625570673691694371472496401645628038827855339445216317205545137381357402096997116241169468634498566664560424299710167336106973186553809394303025592447570306084550205728742232496363521189102133618414719041915287699520694312586470966426376812975230637110477636571509986998705583161085708867115952220110617600046857765874681276337700021085226347711143500822070025931290028461954610254899348870674377254925729480567852709722442031462424085972220154280566147064172589407106254074752248184578730473478851334186701631881833751132485073978427398560319127583189077038454527904766384685638266607775420500260612177487554619292067777018635533707330480032533225413015790375833515394496607876380006092530584245179804823616740552460589912968905818365692740962319000075156718659166679746891996868407136666872694717608065397743437254550180700846468425074064425115334313881583689674663991886973387545598348573512792127528141996941879539315643601901125783750851962051712462185348109322773460725795443220662867995222801217857714969490304894305337243326694368757906272747334979498658199679075639374805259598251533913075792995466502156926898214596312799309084304772161759278411548148622540363347356055663683722483007416657276670870620630870383738905441212553286973406929566652778156445180805554321013517600582939943107490484564846888960792562434790661452989225092832931512182723171448178648575063785610286245094608279037735677162510842002622281735987002506235840573319172722054587731734950384814198791158453701247307245952998020615383562978542612059222044751413525524742574184111230337048221516997323374060927012932632655676376914909562339910131238773370302428167661759459815518587699132531957899493327562747178333998071711286068169254840171002696074606634099282500226940885619106753636192567460301711981236564544855650165669500724935681600618183824463548876518597898378129915254612830976485916026801239942658336945706155783432103409497555841970596304300190896215628009927066076885741026659621305282477430069978063379138673644611147321395078387382984662691878884568908476353989291719302676322140493313192636596276621974968415816074227986256571095553229790237559423332321355783436064425814701052019987971685322104712102534757707253624151091921614061118174414614835980616173132800175361861172189938239721556229637494686167359660502837396930248659708159335991456079146775840536852398931097560032114452583634147508790353995695511628335233251923359240337378804190211653603381619904065605563400957737515710769818814442976399041963359730482330628405629876044151578122983177356493974968393974058412757460065585883036786527550913223118771519469973235273168562035853291920109389701062029885612063343488875681797812963993923121406824830057230654443063646568295430398644636833996883047590343879898935486976341989529141564895289391140523103173472169293942617468235096060777188414619186879025170886475312778710277378255530549727166406237575851086534887604238515971067629651144821845901187143887399093424256618731224668144729605085419456507183751595429903608578702119604607204107500813169054027263767003046060736567770769716909418044469513320944638662896786760728906541312371001510601332671855957833379846179495601470740134473282453176816948832994585122971955764346308675841343240600021928352163464991100188663716250363613089175113084747065266151736721555890875811333054395199809991557469852410833451814250800363685673951915491770609212075737535943460256732234146342109133401607196305518309846428434303456320258295470357519276374346627725078368303257038159085505626761804239350055023590399129049747878307183363477837261979841273429023308433528411577887724867963344148228389810411926336491739573996234905750285120810323288079401346733252884257747034497339727258958685921354501550376647607506971849914383519434088773901324922705235431345557820548234294928338294196026188473378670442340940662669133166406663204148685804422949863528665197960375496402230214879639146988613196894506693706308801009779621329383792400482826032354275603173092634195716459751697820838271973622333797325592673636352691482149977892859400575302528533556829681089425064031398298217082104817139273027917165445480119907874600524179921159467688339863833162885906793705483293746538199825968507468552985068887888809889675902320825411543035341128093925783470701558899485672910118378369717307178715749040397754611217739318628843205302695106564814426302805343033654911545138145372664520956980953588529382356103490530081126421246043661593751641368058813912299943088300684487865692249828107201852975057572418980659705413472220402227853492127932296597354780399446184785249034938480346962427651450935140433071625587470122133668697135380102390827709643368913392963575903894319710138244903072852067306618027902666268348507436550333768660104276602043856339860927557370603103960334254365906977980892342964210022662430969742946437869776049316023638219204862058105912039062165377323180528764111607921605186095344582763124227226491123415899513759086779629112404257710104809900379362457528709263068692413126320366053937223118497219900670454214438916049122792434329895252415534381933470445093285572626048875751464165490819220343754285601765695574745157793647611272784358524471488835890784203901262395119993217611358294467661921031939350628091614524222645879460684126475469362849785244707834322172115894486255324231872461114153344753663135259724148857192205699315507941419301966551134125597908156286028752145237203926356109006067727346131666104008404368796076160888315230764593953146410302944882495423407741163458525474458212406485069594500333725265011440783970296450506539001441450878176724202834758172980655868666226864328401069370997024529568701224296324533077614412683915434576161219199886357295983413015580118980751693389353809012462405753648117466931037269401868098812039394067382117746011998148222529270725567391743274389987175442491085172457248057992555926211157933387473741680250196503429782290524841603778276351368185059317563077063182543728470434536291194749163769528968292462069113889972631343027007594374996567247432883497241708207349748995722298211319118770098317119524367918244810406474563198821747993552507789335919817910705976906536264845016621515693921605607599255904903851505763290558716095995021023291316533299015968464797164139259267616089330196789528296188629384467627422205918716092227540149986052580180774590411139183106873059052699717039785441286589473397168586429566625969871245730725939311571443630042389366469964931532759553360016976302649528839898947028427322109528979256628540122323079135363493425245378093057693943712862960428867453650035056365127902334771232352333402450221063222175383339418091148383758393288792316673684446421781007393083531453082217216781231537210520839497961250637853184806136579558343576621059436431686192656809435586083232660485658283878982898302313094324850471850725726513561312701927222901193344570180014612352880984552529606144025800897071984765180530823333410764609449507678562818600166590086792873910663386437045621145922790809624577572325283582294410346388615612736260502682263641339902944563683316330754654872812693136254211052895862792583590327614372373591243203234741581269764695366030728637692023491192104376891490176326761346712384177175070600034854789822531536491101164978536984941017614025268150148195633414759972296908485952871133431796025549175275163962186822958040219960057131439005863462104431076685682822932788748128989120240944525040772763247109265880531073323680410220494559468908961884679950609740985458498031276205893530962163262965565558761672049318350672985661328276305969031036356009624964446009220389477704292497209539872584760614461950903053415446403967930489496880160016370217794214077664870195497826815104525835442335203437304251064800921746804208482348735038652444397882973321690119018400293511131449285903409539728179048211851862975561552327008590265676884975212937392215633274657872607087828010650121454694284882427959997482369942894967455691731096596949824867407537528977845251168934789340665834909636635542174346486676035105838650972744608258464779021244806640782872997440830019926737324776138867356308289577682261124056416211619807112456815798779221249188164536953928417056096145241078501335463312786051862280175889708049594837361076257577403068041633852436145687549616112967887920533682733764930848265754407805603400423718669741115458324688720790934329872465807464536748268714780345660053795109757650393431735557037299442639912168178829202332440983423118020214677974643166746076870342956412045312199909098825998043575850174448137051365039573321704476353326668979473360436630444342292814775954118125129460109250401260285693293664052120261540620441309305191596238822703376198115604604925359815362418990822920638262106943748451340657459478234321997586537623465092669173808371228279028265436545680666944034585584715303101548552148017004018361088449554106700457246721726482444890671218334094621154493698884565099670690578476455007993635895185467060212843588615017995114993679749915626024981817046094138760223253198781041929991061427053702504729551144084380689719353991921987532352362156924423834161938399740077383131751218089349449011952090017092342202921802491518072121582909648160567139783131696589746934652869963901458400996013545949681781615135219571388348415260681445767780709961453789069794907338003925558270625153503355959884439656878183603448452605397318818448526987789034716626711361211924708323246003415509757735026298186161965732615787051818462651076327817729514560114656046667107845243977838193966731919501307756674404927667203125671996703077293066644322822413931021423015038770560495090256504973890848455738278695724345125201763370968941703954304348984692902127708590096148421789637837425219562510746897987057896980707022577970160811410227829995955274451552123591515883161501618920150110413351777097963757395489789717185947825665968833941531480534584253064487509195249690933257107998238545830634607499355297555521781623515146303178784636153098327818353296004292709828756459084827263732218297286644494907103290653965637085457170314902782560730724201177763057358085902466859773292752454648005376235740685907536596912578225271131231842988029410319832741212368646164362711521074552178945134568613581226126737069663726017968591324199093665288417937694853966966445223278664539439503224473695014592891669027779330012754190616536766851097980184969674754877580903227997289553575379958982456128479980318222859325474679869857874990753565644785338011740162797663321066618391335665383794069438094015452127277288378693852792660461572322700948452851285418797181615141978370757997371451646154198133170522420718112284670927039743705111450778220876190266168826869585439607112015775065258023570418415204269510197272743907980808823761209287066762919136559471600126667263343043297909226278404122338448249237440140473386039370817963011387953993138307193523381001402977158822144300398248119903912996962201424951412803523147556662529820148789418278844185056973507779851412505257175627516049116680366049212255330063146682647475096674470712397573193959469985291349027386660570812134908926912494584768997031691163078242353633290692148922120596898852198270866408607752600082014594113112462584830727739922324694269182125749150021317093077351477308807318720094545754067482746167771098533949637947849834826664219250152098654252024724737635381403215758186429158625671091223072692564644577015680491021481171901251815425546011528402341805970190531350547336079503291284471700336485911071741134195775368654812907675509468352856619432939271179133550096996371247244370472023841700799550428678309521381934203199023154288631687091704509747594694616725064881768875913435139671463122366269832902831924587546336213716667318490299428529703803737463741946942228904155756537138774625146736839845998379165024610956680185448939984215041477611706135721622637735467049749700378456493102746944637347898630328550755847106179472267249430949096358310447582485519365743530111612106194252356106438730406960737457406249683733652889008478312699575017089542475350018666287500530817755186338214665838707285876326979062466808225292768879631867330644354554274997041543465768216549823238090610449916762178860308983421472312879523361747011553340193206176016912549550443302042365017211824414119503905714719429052103777271135624831412287411981864912169271855523489214691476894550878885690097285594302422031755585599334326713054508331037831929203008910577095164638558828701450811031751226521997047815743865426855381306078441384688131576705336040001935624782563895635645881147386618700619012875687872213800813875059781111058789042104265417812819656961819182966404149440483094940838631695047266684850655164744439845869278876003233508507209562655736821983300833080215755684442787479408261714404498774349566834936480129318876157706098105922237152209079490790259275700722067037645782354851638286071990487578294525537209556517003745790267395854452958097798785338295884961153960236612138005810990852777877315854407579586581355727004112882367614893704240663549105635084494055349316780220627399104702123410651828339450879790047332276317875724168521919513840778677816281251384536240266752508491506657868664005242162234048845226924561872992379205925896548949697283408385622281216261957707320554261939762700932833446595576986844780293488435441886193168584393145232814561114228920134989309265221999994370544110224644300180262940479127553803106642698036851752475095542342441540885545596050243311971671516322969720977918337558745620873174565670751872569802378061116578005063850644798718555319595958986068125516729347718115063019872083961050866282644496766781383377025717147124269228833668023480364315580949733361784864638714259595264674258699606677915568043237091502537885462667476116966585614872471562780130585891803788860890533260365285266474259135331870482152408266766866883883452894456405017586030231550115521251929550453929862801267890532310640401976940593013797131472416537530843331730087897959570211139217286784906461460937618153691867376804379101059669889007875249218796401804035627847466530663465204876515463080339122990430841982082101055202985834298747814866102059932645706598614955238810478094621471461510782020254578693010130695296294683931397252636426449381998479728832302599129864670340232396251610941588938085353679526604633723202781104043286359892331427891675896850551358560114459471405975919062139247533116659699997532444413847320094297722270205011768647776851056382712788289500113288726189148924340943391094704834515097911316423363745804021864765443158789417086727809908969981193171030680874298725415528177567518216763827817085664269717069256545483099672992698017039677356449413238545857050040510015188626708079351875683408242764555322797097120071258722704255413010504189842376171380658765043321651465936813025558890562542187531887568226030785111538574407664257901912089299226909089375200249851718058001764704388627947938988729174447389701325225637130106022810637244939847458976181560432856645149736087452644278438816715994853646410208428925361812306782576003722301217236424920889904327690424883202296760261689520124986477560493152519754900340022653570717335739184889262710473811366307001344582852228425643576635869456588647561028907522025840763187990276290140641443510767215238226102958099329209897256022829318054246883561513471419308041804676600793598796987016911030617763767178934756574462220139518477749229614330171610859862434731988040675740978469012131410436020183363299512540429016675583430120226479508692724068080153582858771257762489708823559920185785636465538768367525560267771259503373338638064246030104107777259850407379345826484513789291471789899316701943170651997193164380852278796809672281568169627118989467050744768573337445779996644651955235209116446698930341589573072517837966345965245423977256393084138455557084473677136703114952968506542120182073130810949087921778421239336574900317868289064085550224735361544474972544456718552728217880275736987624864489002222673442479598987806400412958950954422175005430004122819354608949685381907430644785084127428828676371529174955916861515720695856190897837075661466343043621531015995434044406559235609974078924943488859211366752648031173197009062697643330620664615569723636339961362148595434480757090407624760671204537389493404550048069291783378964621622209178095004440899321243974298640331312271116563640277628947750579937407226623969448141761834240804685630901946665725901518233693583397543406747279080242781640183384594497719562523053777812580754616961076905307415450931290153710666629768765985199896813825877867834162111578224290208958141072934244218150603240291327419227258111830939502445929814221392215321115243682789809750767459155197183020531314185195252011316404597415661780802384363620589888755457365473915543041090377330965866740458078556718799479882395903230794837061606161208551309744978341823623448329262542795240191933880561088997972381399544771106044236334308095242425212246863194385808004501673509081739340392957724292992757446355900687727495013857907900264267831559875548871847072624742027142139011743144496726652287951995983911248169420980047190234892919577237361381732736425858831933349073271515350861296983157365110823191529467963596020140962242842046534538609683952139831021770165004374064513688481930591837044734296913736272304487400420981695768987456662704476731850828029465189725483697615562367686994524240025448029858105592013271259184977836168418708264815338273167344088603032291397335204961919256672014626339533812921755209967782697106644368916518405785294649729622166365462987158161078802740018121135580682458704581749332493397577973817887926457101767778864473130867317648738768422422201867468276705610828508853407859796536685618402638887939854609792695631416914768759374658468231549720971194509108765738444813946673836312873346338828010964804639171052430549511853156946235486618557811202418973645129497647631492031063293484011884461768321858777325552915089869394651339681011318203059280917170098774060045492237876659436566951827132936787676799450476733808693266582519400899338087258956148594141957513363941995554520477090585300579993836164012084442735871037370760104907581519061945301713417142519376946127362891087868207026345300697769265171325389252767614617185631594345411596032190452993489618654020637856020049462631783407590040039232585903456146013786428401554138886383547099604230914809108079140732605573832651235869175582341222664680399207293501090951502109020168065149217977196863325220839051128705675199391161559843730443783039993145147465280858106830982013562863084625385297331804622009419265620849365729482613083603286385253894574776088958603417843148992758112973145142691625258784193069880837248282412904457807158798306531413605523167402809037372688779821334543658295184572831646990237957933208950981790364921593707721908425940554067173403131032695788452051452491062308918274768998282646582964224257038477851093015423078794297496106944014925390661796888812549114944154614626116793368560099810230722208577358907186285879628804139839203647293772976820095309971144850848996347817039044107754962501650377934168824647788958720092782641493717874639927241108345962031841690017253797162700190768103773302719448397248777587146998111033751142089094608360271913961194578730507979687945025780098595170906393852969031111643819278193324685028817740891881200158620635423428927573020916067326777196675213451219723550914767589148518647820775636610477598959414352983781075956429067537549443627918712559370660546866922324049395053513127978224850614048186966822493460207274060304390754034384179133324890454390570309010179079938058402218792360517091222448829390317957907483425560529599027390503037327629933059615079935978687777657373996392595232715178353128935410518578973390809471569671282496901839375218352332487345713980226881145146031474332650148969745612781428422836268858231434010310858839635780019209857602470399815776089458346139480081338484230549698159472727860667406419588201312888090002667657641882473120652744073365141385044685958684665117766822416139838260835718304501237554246362365134607853111224548048322691161210834628186130881555409758713250883817904063369265190395115383729528178028965009144905265900763770616960213969261765774712127277556170800684302881715914091192455194160096030018650365360126237518583665822606884702064759936705690374927783423311700650824304451226242893428342086842282073789460658163249579216988089936388702009451138543372113812989113431011740011850879166555624282398421668900771251633636175995600961876173473463045784759561822732235231089981009070491637497514352571048159067695869689171509098847809811522865244511444548213737306317953591533548614228540397906064956081044108946569390855356065305823001917946564056503397923335456199067916248506052765115751027430832285368957173444036602193219328831668349535483839186308530768261096157547482241867254960341954975271317414548524436781521383076327643823111094319367002307003424681248603633842026734693108051198697654004535304193067377580128238101954848874189173094420260355746742441444848823957204292707066592932251235287619450364408551722735728021028566758926232847666314818342219048880309109967881180775803387086501646287070654616447637156910541802677241281008528165686389607113207946408605824033466968074570046814323374424320500351191364261569635011273807111373273680937583231471867229715439842706792060180111675855189058139091236794133494200032098007554929921629236027716559053712683634841372584814387798969823064284456796511437152791085947827412079555127741748292655176261012815224938638244467022915156491924367717920831193674964851630711522113649336065815181841031388196994046260418577255148742026890164117999793340639252612364669677549439004272378588668541039479920038449868614409319729876431974512433414644245979757803220303640351427503439933394920663226925694875560077336884655618828286261577046370722961206014907368430160018914598688868532202007648477522978495596468402655333207673962424977774718121392100202219100954573224556074780593903142023944340823314473232335621721801267559082251922918203023590220727013466723261323175084376538709725081563384871383213646787173404319586876876178985277623436789059797014033306048004261668110224703398733627650663967765117586463717558192500027269042848222143189823822905683478210906753072585460118911314304678646371369627761418053445169740216784990837881416532401458895148963036734738443910706452306115659318429012617330852589023943714399242167287294415118768925776826614055677892245566522416926079941988221693998740298555587915521569353792739630658810068947029372255879736525445027011337984568358804208356710065957366564221421340132794744812895169594185639899025826004712943082133599386585621776360986555909823417503719289104604175656166422957513076493321252312986197846637636716119013784909899748046305949934769569681486680122787132520673640470906031298835492282984790672498662754687710115880504167364710318999391113755992184503658668486463778259198242365451751846647361443126107253747058199742901707282888988734170479936280254842976704467576333164048534528734185226314477948730460266470268113460760105501613544221427259239236632187399546742152745623374612489216509067146830308512737258927760691183999502193826075961895438614455048786266289801435946571335745863666476099941988726193991908726513993412991358592910040549263005219067308561400683718595108265955840298069437670803116274730404181055861254809081889103406113549043999752377160393913954447833505854527457730133842011473075354118999322244445416141458513250600654410927896899157117429698597716016012312429146867319265708593701390508319974470385985133537371468945496934037837248090552160006322310204931448719620368754621619454962218483216130613250595035517251386177726906447004395862448450565705773006084552545386189636138259688141598979221659183928102842124672886638578565819004573487880489340382720612807128712295135615976722639781402643354254053335583790880076556881712437484081009053987317914017900308745625912282814859882524037220623499758739021381148756121735658856545960348537750091995298740534171791159060964365161359047994901654737735173961556005806074690090978321103554075539017185325162287201949490557431146514938634128240675574943133198729762278970709677184365212176080118490894704850156128268670054872967503239104831582416208808819766348812531518448804557306855812756492570696644439171118830588648970288188873674883787752469125198444298677885848769383015442977123280112918501324569907523625338301907609216008772759623056210797746211746861679929417338156134334229256043668453085043119681083387061973229535589841687676888575837448041614297734947174004136060930891367819151693052325803673992594080280530917088686679292202759635866536753009883126707124412153136504731876615719042978297333581018075595747855811034714179538488988140454673897448678300291156148124542875932190733527526343572770282620340443203533197329296505182570023106581112629549478601783630538111439945482432810174414163127852846198756984388098808993786478177716985557188542742639885413470006872210999853824305953001704809878890648908419599007899258064978063579578824202000023150657465042290581229276408878376751881636419133488879722146420068414239851748850873937617537952961446766820673718291875186394970020300728882375443235619406711648206588558483464784771292768106639648464389432591240665552105906638364653909588133532764175275901913695563308975157055959762857177477367102786744348611744654323446273477078164784357281014001439674628943280208019036481487051733212246043367476323849620276089136096403137460361804987768766295962037612092620217332499619991287629890394309602874198267998900314276930932996968060708409316326975597493698991118869376803546237527497640064935834274574721451983418249581799133988816229543858348357975182825898694323217790023614466944972672372190223687115893639239100101677145571154986408402460370911716748509694272066128422313578169011640466064592495302129473759246667591438507535691543310106762982232376004078761798710477222364007706010716113388484638481720715776014858840429841266844034230478356975116644926503468403419631752247268935532250577586570550806187553092699190895382559786142214935335945508414571926485719274979235805739125912368778169600593041453158294072600438175756173134669356247779969109812503080365759293377539568183422760052434828582179857854275826846347440402281654166735416621208007955718385406862950319004687975102254816512180526363180751452428638750040587831397206956664121477528179612412875870439448747677476943951588876894229244072444403156215251236795784350551129683609687287554847487162985142952363469831411601036063852091646532674653760473213175320615619283025199394960499553918152509833765403831868617795446996915943274966221894588837376638232478585253878328374676644298572964234461176842794684660906573267271586458554134948878350820244831674634741258343609096214354424731833763325384879564702781638258536504099240168743808819997638288688473014621945941102941653017990521012492266040363622307053231480637915033748352120130552463759306115255729566411475563791588298607171070982037212681555203065547211962424254044178562021380159171075860697113082069423651921424623557744563242013037483426244912193699231366071242085955918367350748513185606837614049417590189330961328764139708950031039757220785939599541061218116136503690021777973938411705304541796680800967551462200524690871342283939170491409650625631830634741101900131534977458045196382800640472816749905998054108830090161821500307767502981831844255652916988849374534839265158060178597289562885607546970770714531531058752589315505695662974135748352095174787627684782793471762751758914792359797961896985691290892317418392063576697267630773060104281988858784705809672308774055892064345877096384045684013537049780612112709570210650763009236911356505687689865206192734666644811228432028825260943028580582618455873366625564773539631045025119303623645435018282997352808649801080938527292617473962067999697605799441027009504224056900603448183232239147162784857909754073568715400631566245735459213821694098197155077810617538024261336839240503393527751621471367725059391765799599788059514963009645398590165776219133009532145522808161017679973578690323450502675964615386024672545033916201098688655984863212631081571871816028188396322662343072072181418154261648604902324803397907366924934285041051026115683671512463242020700632766790030208731171241116047759477079671593979712417742126418433601014663194030626439394188374784418872068067385292465823882647960998713717580829976469573051294311817696746378943633170571630955006097156826779278047413038188831427694461742040980285631933417482332647421522085008074706591082431481182127277373809579301736610709079000638472615776034936210471557254232852418522754576670337284139380400833078583710403229816305420749803366752171212701751694125705632865723833198116420186655274308231120066479959030097744292494658595372666572729475750289138528785933905786370993562211737123455427318318689809937336472948107750279421108248854084592758876058389445096245530650603440314522016945732349935711021940072210730419962103082064999395066561622247639684167910669853401284872970125388032048897531388048564005708432464893226226968999167298533998153338151265594516522868649220193911374922639276003878176775521777413461839948173781732045035166027475373900561401066084502254126386931783794938190615292172453624642546245992294109986877516140216666281394187863774822199338966099783234578293813216230024931929683808683110052485298849839906755794986178085246759841028456781008892423512828450088942705505842793598440813267160374142016900794737698575762304983409713918237698143643391089718628256168524708853561705270573102892773517546852261410905863088450193357897889575510744334359568078899553457700315016451405462667966918331186698438070071842816196991958143965287035829859107538905965035474715193512729674128563097311009704729157781432752686096377026354259931029888774838744090382086183925486237950709103374970135784434535946239664551863246569962704196848180964054772478481614835290367301468877252382829462714368095094102639820358493946799353329500578731499356451582881679384649694033615763399008274331888739748904620622784195572136642785969660264930219706327398330885961301875093521365263430204022905473789955222969338655364967104577275699154367837104452708308228335484214039241163532904108874464809235480153437517371702746725103028999321622812174687190299697734621295608015255659323595760070660642426047261259247397967877332280930748381348273065364388527400446671788769816864752852949217143861223071827356732823762414800720794941300578549393996868195016477989495677320041460150480246468742788039752832111949568300714904049788119260701993097711847226937608594300405343147707853508037460546373288678430288416603738941178397865117691560021743295770605143907136444071449586325021341660820055327956689278298468744217577070561621196368336659072727098899218764779676865136587216276457198088569785602398990745127774960123649266587202382029926999929234329647178298082142148367094966462998021371671903858552573940239942968530111440774809688588976185130449013277489786520575866369815649318943624082954509807707930549333477670061422486090620048193422213052693149441819311452345789006141105341171179032593370840553522857650757874489539992193247909781704261268371862877706650888333292466333188332104760421210959917638122957081867178196321821076971864270107046213689792225301265874116598018843018232378408485318111801057411675792552552290068672149336910414430196488957607993813380056837932947546991336073312647074849943355437549454691672935593338423683614735159386647318854508986012399989305071244847826362184686824705120019196613910854413829403444851567974029536675891600927321354763956466589064567531421766309253689206295931192786705659381685224682345531744250346906690168146452019857352057932219452180976977630389241240768987634217972829833675841857774502148774054169731619333627657766409876936600635986198415963694899124851502925869000553640805447491826464962100320823627004894054501428541999333283104508504057563208851156753418933689304692977235797995620718343015938986501819812813924991886196842763619394462215999106976604570816493415019987190200695484729128750701003224573416970922944935046285216143989506922002763367318337063233604434443571571489866087673380658676958114302581911905692837222267381460970521163444515699435991331871306550091610003540462182767368896842074703505496479795762357761876288454944275653308271449002220771604776666020448114257309314320394900562314085534511374222460343716851824984819616888658787831950818104404128840636489918083557624453999710288613730681991615253737986990874158874513612657234600618003213302150453448863418006993520045138367428174444371430971106383322122474277600562529047231617301410451571940115219712083333210875101977952873097481360840557392512070951391747964270715935125202500088455281431617026180904041292356900507719872006398323121533479548931317412620025521389195659982428369326868973633872393828310776922150020448569680095531153861943369780862838378550329644093209633034817565338478178415846166238008011555185835919096425820416179625024486087770152446535713452325813659421982194533823475562134360705184940491824974390253874478002750151583123624547385057063643131087889950716534417781217753131359270841403640543696520977594906406319990488300123907313590523538627700361654996326819363198932156277324481259506855183413659493747281536750175248067426826343288021826348809140242075349308648378351102602746948277933835868375099794173519882061998774681094539099484864089638358126710483946442451121596170934049162806269634013937930195071241946354002272889124943015686941410930108704647030321502866315844083675460297990439481521173622133873968586938332468919904478779387311122130043661989999905937822705936857720455131972685096915714609250160042469654607639228273818381329469692002908511561634815080565619512367934525079158541524372564315259493762324505377306102562116930024545319836024228474184882574592306619885621236049575533257277234400601275377269261030673721910282215308812042155381378174823317170488392634643057077213407271676558614209018369418680611188908536045181962748534501085802981063259346379438792628903676065673611721882527876778154405266260093093207507815265156594609258599815791053405271930831012013755770571376010036968486526454228430573436347761597029284487433703141414579666295166945225251343567370659565649095911125310042745903665993267388693136463814360088246130317563226234557505509885218866675936112517239245809223369039395274808543739975614105473931364335543457629332386771340054193117677497870398733147965142545301966629438946387184364500733028497720796263105447529018675284642199443028785710130222685654779426160417747310382260487595730570761289179787987562116836193607233473736693488017334119160355478343959702096904111584037846433157128966553314300127350409997364124578641729733468807537481239674350448891929152053596246983387315500102870247930593727070117401447913306180951304456727383389392853859587760253747468325163910347889495623210996209031981200396865220230423373667413533475778146238632150348269237258906450214166462758789736748704061482472343006864911540597147817570085426056332148748633490426915207649373050095441565790413190379917965922079932204424778569240243880959078904200258173006486498674325956384231794980513585804321955225951649835078584490799381087272904044529440533802087870730502970487886388842188346825227429139389839580315866662521573288846875903429524754459112900387215534618503161432114281594777333511719719315294941538452603792710640326542761663247024674003463300185167921547890414457485202742416007637188219334064185266380789949195550043917296256422633952169828774559304264727984755707758666591450505149589778957300250929407312937323508314522743838832511563184794496554139219501307110735255705429488448332063965534162088113359141264061776767884879112013236142252735500467030384324989033320299881411504939093556172069329077497050165551518984827873559384594159718860879488614673351721466309040349266024281024051158329216271488953448581031971097949377220393395565235744806233963573107360428047966974909930261593760595033930527548924604175786132948283404936194800500808456136670313905598413325215663661181336459904271027148383212067305875335538617624447350512248879287875012557949207317059050092206786283690104188264527976575372863587446313295063984386180252504823029779970474109679552454100333858479121945658978974348061066998753745872223752483964777882606112697928395695293966294345161847586962035647232537670170786596810006251037144486080081609304282568162317774515773742108745024719363319988001275721699699981665577383666842823057375907768459659636423822005995150772835090906027820083109065973420023715064302274194908786261601052693116367844028210608959016687932610499586753377274307527633562148458090125292506599531998870929109920793877875621278597052646560733996778355088600398442550295989685129488743577453905956449102393782462176354039090391428853164471742945486035249432885966350420524293170576998227700488671406599474931635649583040807151151016618908394835982126389625875799043909348484371327947998080936132010621815322754731974926454877734247746573862277298426017185641893695456932555238724791562441401675649785017629278089449508241364021892170896683179444591365235483481060975799178276158338310093406319414900902748702217502654937600435087367407879939262424794952589338803856274586717521369268985383824250984240430440970316698255925336547809023497697988825285823140131936681712531508954462405558157827805176799508891760276411673606987757158156450437156267425176597578062365985830090114922267653366191622719519023182287417042062876794320283038191001932724667102936247861776169131919332661612001616874354595859406795732123896459171803416715171438297714951020756029792954815127504217996499715755938508477823218069791697417254792881027489564414235204841502371492619061685027218232985503984220147190081550662410261781460634340338702002734789376176840483358194958505192620294981751061388159931043130156918322123257057672293837413516479233463323232663754035483696894152082812354429191169133924979982113358869517502925024994370660666533103938606481194931459988859393373524100730373437837566823004106775104849203053599484229299749698970794469900624419722540029556944844207022077252039059271982683547878060428995584286717107832979863289831797513162510742858756852765092058734375121367354852938968693647039769408965289139291482992895486352865960581327102070531179543931115862732997718631897814166500398521085856501791318568716903082751970423976833975549013512224666351665968070172226878352603186983378774424638391654723384624133240863746860980314331708592117618905666443330490617461976437987469715901950666035140498078106532873302058584641051836493629498671627367719910240732660215863217679387597635849518615886377031435301288582751341746469334998698478402792677633148717982139403886782229801465559215178483649249963848400251663467149816308751645181215099726557896847523756106110257205380245588541218539225214474531499241138440881410498287154625367417457423328527763119825924397463558149910469144809721487056243124760445816325932444243189220915517781183740041699359699025163977860682911499467792632422811763022946848532946155212185960566900348412639379049245362873168730605155639432045380001854413285075256224425592686057038931773284849921502333571195932651825311805015781303076325059875735787378077613503988977015316053981288425897520335345854853581507695958406150259517945308758752437883021961254088136412540280006994810898496826420819540206611090166671863688195914172306153930666746634992179582408433153537390810002602329800100702054781730127605744496504181638217957913102759734111066908817564115737885727584522130433433865096719190542226105777382251557989883992909658662532562572466482181726724733660177517372484940614699427697191190849039774027141764752820371779843730633416253446101147443233078850687716274136448363945164110309956125111352985983419750962219803744373396534490160168887854457746801189046851332787944612206471419384550914775803467323112980187440165743919315980452778659840599416776461492337308730580849069119253500029276353133552109710138343755125651538147354521116128156249439061270816578933920737881862871017413612214433998730405812194178873446078780556459646625002124318890510501376675905402698633839345845788880542799159843693412244891838988792772693204283931921141153874490535530312323040234988764628292988161985000088316777029076570642580571547295804314873381138923443474649890417268942424772450197245700869666847531583723671291375264239559684930642838147317843226315257667431003119519013964508501207516101254601922263457510559217162223617374579546815902406953069563631782814458027095536360578438958132763047379024262830820102711544159561666528159587530414986391352999311310387616867370771079832804750569398767368065239363273652168767582270502469129697244008275884141854970373011630343368186783679363169959189404090049758298612048868655281719049631349903897813918977824516189565837855900413413323265611985065128432050572551405064482145354708799983863056576304628508587645510639963929992356340818153717916235991013076843781934637113811732761909090773995544561783040660984823236541085624805088412980989073804439374096083894336461995238975648230695386218307307454442101176128424497176057409890196165018272216872282808468964031666595655659062831877518872791825129784998091087814133939043999822602631960919699021323901220346205634460169804916219734739521707954253729698615957131460190971995369057823032801652338067506640329071485742796699632077244156326268258490458866984400667964774972668959146953356114746916371987775083246035649503291140499140905216554006340134045913236764623813374754201459215471822087136426754378480276340571073510758188295511909685939575165607346488925985174649970633625638406049176002074816108749749838663068302053535304540236369348947003062958459095549251504220653345216246888333216193304670222570604350091000591514914273304659364152106162256940968186406183832224140662003136847798684568865595607534011953101883398109272404174719948173056008805823176387886282648091146554601737568011389325587811538351174775000461231527845301041621085873928729420379977069971178712794363629620929441142720129239629562718746128196120150479832460609183602080088033207654973124913639810612486454151125832932214026105829869168256045166520275633408854493992366746986134310002008928254030761656206951166415967887054319280460180719391572867209022951701609677545706446422030816012968087233829013945685013187416961238097798360564657122816802267420224832453555522592173759478782296226109752208214166546164868043443476948784281706235817436640372995243551801584548881581869726786999756267838292753016140889967158813251044388299893710261649025355273772234966507471680809769968345968183726807308052535499220707521091021807357008386602846552439019887980859634236035111095742811174732528167458134432764391438352631286839285760077784625293162740010538571401321323883171899620236789576753428873437954020077754621759580186345267216614072103737794249684332230143729730756843615420688938141609158308618504050047302818743275685834756217091072573845855974764165907872687510578927415575597141993575315170322309229514457706910852074408251331883526750538835901842287129409958432428994264563459154069677294019910697572754416391328122993072271344314396464150281059479770859514906050176317926937160004392224065448154178925677129567381393399026455103473105604453500369305659985824620280087546019457753480516107085587694888174703294749598543883280842635089956240183794291425043624089135414496056390270329905095979362062649521399246343304560816888889568389793805248063549778475045585250574155092406962395502120195901156077737432756655719199833160537396498978941269145585540700471549084323881667542951804142076087558220208572531377217997180524983720587060420720545111563101291566064426841802163382885069149569119908429454113720158279336084938410650441477654618691569563407767871444403756161170658994861076814993276809136421706927869145672622784095553292529584715379003407546303411499345552631949676057215522566397274426558980186346291586019492009793891466104082548002807185469716557142990801124673444821906011818135615929956090079223982637094452779418686653837165567755427712361026761554435504183970457772711901571669077808229726443810739801857650795853689279083279362329750654083148634262581287100784699216164182663833861009595226138014917990955320164080208980126480567235955111654011371910217612060839741347249354175711352852951779986910429377047090634643821550175528699510311303002308265874824741818937203641268864585717138648995820978197741260849473433007054348441456693734948578089546870982883881083836769499719865684105143697786436875955904350390537081372555746594786095102262893012430251488042150900750053367015770764530401870916964321317712747571717724054584139029850297663169242104777275266343142542477870938036563155479713071953668517812906966652140624158425916854185693602643172663172458995915830077530644791862984484337160245879560626436251401551174438704583455533826809650023820515772312418755961712677892881796571587444768960876199064276081528905197249904155759192153626264602231691868557062822701476894670476907246318993412676531735555724272898625127478173954609682627956553774576713657532516469905697167644631832168247816717578754825738482936997219679943503985773779923263147546253504778876214405455640539892255791670079542919494129705673768693333853527956205232501573877047836979922807437190927952134407400153676343254444351614691894341269823541979749955986884078424615687429209115734877353656071803139185974874464346688135965762016020664111316008739818892748831457228349878841373064445597011751806255708301250935491734343840276395003312508024625825919279661934580928404113142694018052834118553466146790181836787213073715022082545502344611446648954062455163699734476888353899491046680927376949575997412582761980047509954483500069695655598290559420969752101289154344518067599476717530923914951347628674814604513755103227322460122726402615817230204661364534803189611454853551162330997319704157575499514497488305135711990088950253534390486924569683504719200137348000183253668179036058086143622482455780280032912095513776338101374624027489071483716331177566424777090585943186522325942546222881233733076302136403994825444725465947617100994120691871268711571784580694822991654886267058567733335875802750936427108649590950906506199796574781864092468199421432966279374791002828769804390428314403124542774524573987682360034210899246628200733068949020900604945184955976148271638936706763557947388038149504562739767178281108515890738941392056448763029575260800226478791907118175164615357983378755523936272212025516457568952316335455468663981432219181397169673903104290684658777767467337803682142004307839135243622846209295529118314909992976108820733381330604715864430628648581876030711861901279866518522489775928334754006728465478680926898894733241379046536394228058256410627498040151866334157771418327963814482551482286934824617431557968282267415786029306647328650564044108994574123492354978743183464197335916714030498155538179202623987924220885189125292736573407549993063629186616667344267861911645451423619348618886741813856810855055207979281604643886303798576485291446836794410073876204617737692482525811632502206407827308519108077501436308755316432612534094893543561362354869740464279065269343090804506346811268323727310580054801639366527973563276932997589281450935526447130828188867052840414928814256146242276975274877796512538500960757048121937762141297734756023143270212176880261648598105803428676597723390337738440654571381643547337832237068576912026873256837411869515141080144749422729501433291661259282175159878285633211697517743835471298359761329522394123832809550388437585257961821482126562149842802113168860819147588488380124452225397303222703496436936428787210490864643684054746193613536992576489070701756976605731472240837761801972383263423121075460024273448674342754397694886035712936222255280504307282234404893309974425746927294822227295762655806183001775407536720991383550680802083463699179848489679802312111423764461849806299614405676715232614972450696080525703455496114839458981224826849637841585408034034206706338411242979733661845478072691176473894266550250192527553347604500537666720557634258010033759035507676205549934388357867790244014359139900733406514932493732384432627996639511603659103305158378604223891776262797416724035429163724155414465448667521747154635464691691423404293647870515091462207381953332312562048256404234455868561003391080177627414118311131333597620751027720131416238961232438234796064128685679293756704690127882822398597311709642735696821066546034464771270221542681208459744839745908474409011405308607884259470221127849711329910213969111494431336923642010717581062199029711714440161061797435811641919681901109212936004986256119416409084794344757702129670197144762556401258146612813362705319153632804513315686819735022400929146850045944734042109663556596045226309156881597598573130456874611110874427398911178893644492198675372517884740859646599762803052957386966479150264315413021268732703853099179472189453303914366486738284205857548660921937706380745279599756224587020195573993527645966212925720465808501328912370614365185550965592420207509233906246455923694992366225007652759872594124549922644425802273870679203934734626166670959574660135101270557606144503087074514875078124716687561923846306711804200363050419367603738175966669030131500333084385834808488694163471675309661681261708081744452301244127938929576402383484299889566365556969392472443671593331994417622809515917844468562430057328912078102977257249535271846986212540121421749251770721366597307618044219514861321777674378488530596142756431049644462477139957819102985995741155224937207804803033896425785702374012060743445727759941187277187548092679109408497604175582931345605016859980924226009260736042930089388319045359939412878963570039543463671952985741398317930114221855022151161192244696853367385388951730478119163932791822123009002953857263301109590828799177775481255813672848869362609920363140363149361690493189643537903025527382170653281883919163650304039736783006470087594394819299295750361402810831296279091877780701303916497497086074243586728855907990818752048124864187359080954456451806120954954767849875382167295782343209700863175642112678150699525083911866238388549640123869987925128533278685185327062584510135524325656581799708784356768186533111517976470709150440523824653419732282528908952275779724232962003640400197942770088835646947760092842695457336459079354212306045631827992947611649455510948454137818556824260273044041111097480488219697794950785370436863036119916701073305935588837982404818238857803346194551920784849211669421525309000277017699173533020602028180940274231519929285825800124581155375317034329935417820376805681050995799531420304503813196055001324362854345838430597163931383467179481216795210087136713431926005421365806184096894344430724145591459244457302611347870249610402800862085363304088906928357984472792452075565530869059571999530150833729004317757369755154732083905837633093787885439610671980192686876981073374799143749477782788753172790998565221339784504701748779777415884472173806336874486954980016988651716685590174245975941923356648162045949032483527637542217721962449159135420565079314296267661988403055077265389211374983800933631087308695586565456146069904722781408454572724162964344911355647798653908457826487878674060081829219273605639819201897381314713365177670165037049334388587406061024445497251622234487663363762604936586504118556287441581952924383956897003286119065351781992287890217499540265053451196840820398464367809777577685499409470767831322389724435294272388109666147180021855453678394662054597816133149903330321785491709445480588658717700734021653894266151335847466212209986223207810113553378969968859805442887607923154130289821531495407362948976820195055120090939109530432182695973905872473777576440959920942046540387679003267728084344921265336092069555020654695212243198569985485048105878884037871575818690188274888217309786314107586491995452383723710455163478645682291789498494510473283508096167519736601570816787152568599923416345575597092050315442428960149609010791920432579410989520169977801599922388013335671588258058235151523564731376770135910573752423010326362434668693136355573759045032609169855643628935345533106008349372659456161553464590698005514526217049465813571425847172447170869494074847877663106096640907047240248639156178747845474891783735273381290628550604429987648436225146390969641234459716472114745846262667209126991068994687899292094974168180111132121841999435102219014939271209544441059861276392182863774237908524838038420022901691025204861490598267972879065885054163905257063466050771899861152707186701790379584610466821437232357088039119939750280271307985291837179328188794922499251456917750833897337710634728887275978957400558570119412440613142173859331651744193393119440602143696545967365554857436580923168931386426728593730694545758956054681216165462587998714179658798796427514601857361891751358560891293001355905306537236886716416027890220989389218190270706464120166559468269474478805419683535987404654180034131517727764504997790204315452543160574623929400610997012693001905264116411515454763928100024342092996629962430688311456975409028845891960717579104856089254382857938040945348827016939277393354277642501623454247080275634046158029275586539970814194023562750580161859672577795166966776211647865076215452627592791383072177901984652788521071874040814228688934600160238353784592317634724039327295930987167690490944796064679866131427082069330821663992843090402017462143675820359179085322379552525551727686224262611115806542223179986762017256776904132544603447846051571015203536021338288992753291533779998387152197405176555618567720132545086501835039241128852382446507432285536918380742247395250755529848408828932528342902754640412103402134619694140326999972163100867677952060280317206198915569549456803599167855593457967902843443060136074971816597615197592852325591988390549295315749763557224272757219459087316190344463661560589687924696462398911756647010646276970650874518770971930845316040749737464605435790233876665402316240557007100294089528231775869355256178801125950981610548992322068935260297410457255472688238386144992628070986619880897818072244595717567152599520264027706376600837244954600300463673199792726240763915502521951102701904673370088254247151830684746023545486893105863028315347508430160350136752665063789537166185960399594212281138657417881648836978345859214660055071713223833325557548197536076369129925198542503238704366989087650115809274791412089052306385673034966082344843363980514818498537512943926154486327696271938468240241947255715588730913266709354455450561929433018759860251923055823994205871593738824689652338931150603578519163540935310371554020015718841962477737167817673684914994930076225272071238419661863719047552438202859190272575392455920383283042083509648842490331638200607156289848927895339743668039050932142710727804924055172320503181724530051588539782825828695233351148460937524652752173917908746721545688447535360779951291053438037048771301764228709911088115218300172357735134192039446550322460737969458938031048727488179582748181928584454732660082411782862818176587645466369765459391921880599160315905096459326344025862451482990646675774977830098783988358677383435641623641569640566315025082691195713405435175639453954337573475724940037400177174201503815918829739825093801960809537838960480188335257749487895108539208379592426929516422191972660072212948189491885786114332770239082602959833384684619688845008731065998379375553723687602707018319961612300136328875706237652774098178575259369441277836940964638942622390090939959980274246114891820674831858335235369989201290103618138825342413266160175165965574405079259906893912363611293920313672371677566948559773220203730279273542235578939264407452511124772547130654821802392676681850769185575904695610344162874351565093882062974369509607974957209980199290541672772340340712430739725830765201430193173809900209069897329639769532446929438609484917337174785398876172979897217160290581532658895756804296903924795028406124715427683804107589479577401958707489897080246430189875668031407660313589950800608637999116978550815963277682674335387165394503016054627163610022440848196072078781537092831568867964893750357103333221285561812406021050180031433830929192606358633918803965221901137235506418761121412819387283302784040691329820995291090730933060892181791755823150445960719577949017209010972452473399617268065599163848106187219510515391876793269689132815045063100312822863337217375453818356336551746126651875007087100745672314289361451480163578112974043450224069213863239092125218477664519800608044643075078784082425817589124011097834740570013596838003927910172874786742886248696939391902544180157853685908881712357325422776648348835005013752663993569721728067032415272355926162206486303490239672321833551540591800952321157687684295151256310022523649098627892410862163199253834005066166732590016290832825972628346843328565806117446830399911203976349496127510089308755727801986694537325257046250336015471416894733262865237926938618267562272781857616640316412322729310638589046438629940734359081498495066113083637668989862288358206504179474727578807405054250951014775318143143334024435833385529279445583907745521523992427641399063873025010478785092963942856296177267484301018420342459239879188289605069132114575292753715226544778915857161565664630579520939051875991062478255134572393360101010331535921673844784026848242034249828623861654939010198397150986482663756827696628072187373835231111407303649724125895159812993427305796808562176465811483291406751103934442218655397039618725780347969924387854787323636922892093120648118135399141603573237895366051244876358017603831178740643151924835023750688442334737020810902757977086034508333282245881383380304867854806497339152471061465445088812025156838797971210773733345999820171416214331352657503802105438266235936444262388329449634660154548481557750757921488237337677704930768649087102225172550660317431428821481141367630803114615135339446090371546917332616015586652653189368562192741795381155715776417938638947566887486073111541594709738385134728620899759910218380956844993688982624337606124628799148946842355942508769133705100856745303293622775129422082970017397874361214936469531247455186243723393926036212823472798547728759127771811129741425417640391094250753169629293598946485148442192212627104673830316229361400787559783772105756907389787503685638375179850377468117923892352047198235417353677207057027495045000595875057677233905179552314270487761730910422848248891216962527008516840413897818885048424430156006893846180349524484088743357339377368499065619989868975305678845898098866069406577039641423664354412033179326443577179905375716768080899176421458874653668439553184779701741902994547631885412870409021646692562550232880832603146394474559979511002879080993725166359270015422116398277962354990561854672871669609737975538707466903712999451539153004781077807875434519702875793268454619810994772809986067092426757899671039088318973580867290571250478177095861548048519246924607574241505975133604294346047038011042499275640523185964780874829961420363294517714806726442523278517693829552622038739265959591554597966325915937557634941214257978270996651897954280967739198300068458061307822724462757172658467777794484129383504698641983909442113638690875482115040008966219853316117155135522593527466985846379166983137597654454358358303686272358784868820785288895553442956522204712191332666779894304398872907951887129028034167272628307015478146199492292769210345063354369856535731644042598151806343414547358827451623217686711323456082989700145791099732951411326183536731857789295776057605603287641299901108049062844495204730906570558150888955448451860310664093920157326899466209938147244932367128759781767718289684884651718761263747749549533631555556582287206299521686902000142744496847861694638145742564495058189067838038355214010374405848411333026151150857882821482449424944661034495098095510919294139830589056279556398650158599731921066637347489974594351785719106473230601374289422357323004512434247586412749633182184197227980848920903052323139790630402567762595517642642339049708419694381070004461048824324009477386389443061994572726360596003891596330743285404959483396399684175103680329175498773984020157683919492849136333472765680981955970283779356291879962131592828840317927618130546537547308733627607196916188932567368957556121939842531317418433528115360263588855621036040274758684938924758219924423485255246780221106986690543613301377870401274911255998085059822195346088709562825330853103445156592613484675841629211050069356664554398453162770388500467041992511553470977192553136420603237380114636822949880440252592908698391414340393542589620620286229891363814962652196012399370517634977832735930520527107062382686013065684799198412859807502331264446130422781897025350822538805672168798142734638179011759522741585686862463728585097504070223298053709695344119725092173980950318035989035251857906748957834411117019190787227887473238606927448921560328556744377995639525604546348161016646412662493784681319743905784490685870470797371995011887225814247815646212807777260161335780538577243807856283823110944574813562205863482889486531736800691143034522749276577999498303952795982007705656834794023428171631093403543284668342736469149476965259993550838613046681914454491889759454366878644306620616735783311871963401837935868035002384633481210883808374741509848224277531894843256598245040457930022001602135123504524880977613458959647877054982909243707193533801618351347077760037500162088748143797488864641376027777246999614429972537516170142930152528780440877757812652080979541779671699347572244410586278539410360108184188321790031848864202464549930733512772640931718404231324808696477214934361547124745657008695433363980757144389726591508264191631037418573189132754770906196678968320210901395364514154191431814657945082081098030961691920139619150292561014377015193699990398081993351810648320072940555909634469913398203565845135058500584779593806669635866149316326030027634658339682217666197866099091905958291959331542520779271278959329103614068922787103119165814176637914453869387445575649978309784837679846561426410241350574161247654412155501111857858377941931259892830793349297615513652381247606893882569369121973653967936392451223380489883746591840032560137609157501775760337490491009786155769182991083195495977917851172990956325990137975539866745399520085224347456610783347311029828213851973258277045877398740491135996356929611639687426951522328809537742688054005418514083024723192239647037361195435016011285543331694201993045064326636117075326757043115286195673269486036635739795841727631283085415030393049619986945453815003093144369476778968999253060227591388454377032904663676440586204982460002459297771079516226549385679850537971183003665265911826489582611763757861893503645335016761999257035180686130405006972454783056335457122534046491044858906466981722653596818599759237300087271830367740107077729064172449363385446012797560793272349618970013578285644016003737558926498138591255295405033298083439300596148634278241139935789518590117710277926047619975649448784841903687014260658765467961280760280187278421938482057554153279781657946540376998175251608159588807517844417639616191277248004327852414260364391244765735325010985392661631199351917375415140122983348546182684607170528063690949966247612629608756953685147676772915949891054100604554241666510646118567915958070303695947288047780030900016335432890589793262285159117742956186656373468949056374100450116476485629690414869331620608452499924914986847659009065059544208181762387297277945019873023663523883908653365415900049908075152687170578277719570811204592732129047183441839427008469932040182052930244081354970380264402968975183468257527561947457881963481067774977243814035583250840603509635994487191944774547132465775570278107383906355086381538891918276622664121324659156915239568846816771638705012645059908747787434353969895327258138606412874243604320177684262166865294018010081019463882619400692140592059438972470014709231581838541701274757537606117432371964238541529422362017120627014943956193232561976006786028161879811591955358985077606779594067216041501309323470230168662398850677417336585835751612025666949991539587119628299294043314356447972576943635268879761318682693942992728250933733630839773019498835853829016510822394090664901540111533263329422671860250084601929565754227865551434664947717106375411350073301271935336586092695582378122757141248547071774047294430546339305301859951338453155231564059445397902810764675007855408795100387110640285688375102787505247774534682563446159016546744468738621824340764478358153835319787193838706895871720304694115544584106878595013088689118429719132666065471380880111644628695572803770601092767403896127798340165485017480183665201859569144174273976563193801529555308245381986890406521557705963079154416850444297413657776714468129893421557548821789554340859248185706238581818612226451719901937380924684859066585243367233953356907654961454978748027075917236287916256356645584424311199020996667373973370989960571270539119709554860850632910256946055073514239154985617076439845998546443231153528996879716904672191933215717702028943012196029172962955443964943259692171883265304580289806210182332634922365173976641343906178234136556714354314770805902521982106270988074864335111530360838296331172343576881297968174923038697915522767172251242838770322715741915394796911159634136964222193386681031112048496336600020254225167027826145245513244687460686401595773094675938954044647394536841891751939041939195948084443122757049711410958134799778199478546413488063471321315976001745265182056423452854524300525444020414518860770799870177771186809762045432236874695568214308452002478576718394109229671077813534000695444499454226172601859271003929309543350330581792463749467793549539375803830844768203254090246574141331717896573263402464824146069215277901351288162581505821538261193398180128343554283564790353152777739891763701995115505011930728055783603591833387295129496090131461403825943990542802465170157156877995024563246935466909526523145854704297061317871816591174911463688698448531005550050098298162646599780741761656312635764943785039025767738658923689217360269554856767976186261086429823733821252111384388721296709781604941170356175570950900323403502089796196098593957655128212917515300997859677977793128995260094659093231586555787841062301065153479394871667611120659871896633432952549217626982154096473367749090380877972341840158628338448442964474602953308734566453408950647052919800973595177738565331490515936789517702632295234782528541280764357700076652593862121216313295834390034934427263531338017124432714870667605731441454685862984815934845959680979750907448937225906151661949054267915617295893283522212084723756073532718715491620992169808834783987568766432683335224514049050690582200997651113915648084695828324062986871577524488086732190874037814269072885193628572052405282026430320184934186970644661309066391571465384575814430643538801935447655733975516843345505757631867968445242248298355619951479052674666341042687610200748482122458499254708075035829084459159496768266680901955945174024097916932750981548383822863979545193589978304006796147897477543684930626389847310417691785869231744648337364703884106860358967881933965602359709641383346389626050670346442373374358728112664782881421601830472036145808124247921998196376745603237123114164788237891150917614281786591143572564345732319190598211823645271869601872142981620031183107843928007008210700049663188004327684623592155881753986821988084436843503104212005419550831080574772276549433812451362317577565593095482609404128552578300814820834655881351921616407774946666957743665287706309332718528679862937635412771723388403174797004851863117807266741469114146276524678339002004454807707191175301333635628916036920498323620680640654835462937365293206939155975640878095669629558248673041568741625942834635479631144334782689087013848278265624691019502317712521724142492054267372741507740855009389005955175345417806538528206163247832697722834427168913694972086402366875042958717414636112325092794277653166966138100169714717780378784722721319866261630675138710231948089800816065620746390825357185582559114613186073211946316847457047072330348009726361281240737132082995733100281383930388009593539709773555559955577918916977355986845457156401958457167903989063425311473279023462612553696118439409002352671845370308509345732185748628688267982291455922420094483957330027435111794039026859395652372378419149646436117063393577606161874382430805461902742388681037560317853809207902248023263307499469672887111263310707402492998574118783428787100026789880038779811831963468982622443365352248516438015823113430893836256409845628665618627102344091156472149499851382351098561100334643479975784678001907496092827502987082168380471845102804223750845531683518395466748444809050905789862543411938177485929296966632985820600766453044337688333219933922478538277489534992650382353385361147611403029019822350105300121900197497520752626771723847505576188704844286634130688905689971559480466443034617860164711555140817104264531795772904924224015763530149292111477021315555482485866701937745036528034563275688134488672876263611033860035016000513426023031434981651796688256670965135689273516281579032308021422850488535473837870983937850284870877027354352233066407994417921587916651287527900601612516124065732295524623286361909768989570414669913186773396529966752322225529051184312480969791547494287571278094639279931234744110651098401112964018999394368502053349964356284454399589901785699948779417586575556483262193750718787463215232360109025986131616092701404491840731142491557412761532114690938410452418110875975248454115070458540609846870939063021806512349382732045992797550295545103570056880673422361175250925021581092676055489090880542609396357025354918071861887750024523031699682214204894482616042691524486478531040784018872241556284658547126966743450943731656708098381381048212882200013650670122286521755577544090494459291783498626536959747052434244464628041545633578058094300179601343212385301028185941078866646910615473731270537482025976739735201612662673541274408567177072286961463182545845551599299588743857234545027526223530721536615929479129360128933750461581128515907242614648523988135477612061715820659428866377584501912912499130516062340758779497785076979901842094057782059696173293198406276475496539920788947137678157688887937170764604881958198420203661000749870824813496581000693290621003409246987509068541438104083340322850891469340834539049123791822504764057955076030486353518876665274847808796048121849208980275246840709117407143614239553026808704234786274210665810175211855854222337016619500847710775790438264628082440606833592457671689411077802094581828593494292110071464646672383586818937273571572148604437233312549479966975598380042627082010022862952173438018744652152789031238829149115887359802534707930090653410867630288723209424880338110643521449746184892036291468694397464883282133287223863499793490493737273704726437833225259523713476264557296414837790583521934689707446137859270889217243964766506809147365251348445689996223569195144893487477997577281742704202957267853453408501980198824288593961036326528450623856623706373356793130336395743344552129074917437434953260242196897547470403411460305965588130053686776903967946959605204474533521652610769139267764224691229473311349478916293003964766874789999574230322516647516834994109790101366347590705246155707937084826783987874228415763088024858888482544099430517039760507429401107203861462429285108766438938509724905787028086285576506912204743170462489523752133662229373999821770516589657166233277358665932171852500465161315404834182299342870752222371632627682320331622276756121135041153990880042935768922648977060457424642848311644478030889249813696989648142430922678770654175156697688263798903781020516589493009904735753357643642691159661411869315056303268062412106143305393765211889753593994035007365586464167015108908410433627026070601062225830780102414532354817972539256489549165140312281901125115898840422441561445145518849758495931935610167214915945641488347914745443272072932782471449138736670482008996368514298424721930704279987984990620116980908946510316845759322998483948713505901166267250680459333054772638796989928028413832341838061796483708189748733793722708938560225997520153456381500079163577314102962468614114797778668248587321633066121844830864866395424384779113674637179545584274799953260122555498900636708590269194798740528983203314237535658852336622041048787046646036497070481788831919572573259992611418254793529486617739534001770923568318846528782879054484839136567183735860188471973523039111925686523449305648624695434614099526537750315892173503731325700037521225841192459552100042264718806288893785329206112067894736801028987891251094457007378539822126182569968214539567820434077859972030807810726331059167326586592589808337956894528429257007228011801998670475773595150211618590790360640026641584301830089214301762791078987213585045104117164605567047203229225525936307871362789749176401735264415418041650560447525663029428058520220970039374536287256520548014638816368918854154112844696936137393357507233564669638180954098595366245682016402400777589981188174151785580965691315120320363757551541833749171089213083021305046365945657088382218502977758146306596795982719105238716713291026883968202196341675271451665583952974021124543710168986333144056246730780424137802286343690513660371510985168392285625709265628273158901376880547402915249426151342510465478269393682325947175005940718838188064350203828145205506966873423404024420847430135072389689411432436124865254645422315535854080449442520224549512602338397722685627452294475265300831783923385485212047460178041163871935217504132090534649445958508642991768461582575093475817891460783294298372206266275665269960853410702884558715008496124458843845364671801350816275287252384990204829470680495520707057616999569910558447713508688446879603096051109606491482896254942242190663676481884209278471101562569165647878298495769404674899327610087721633892533381172077574343734857152966337846726150288019712941276938331990753368848611063129935186466308810410997142062978371117789273632494319354782936343572866785683541867112402016726012062806864652086369755298296790804706352243944485970319018955075573055975575066250116403804417723329651545740633676230080391958574913377184498797660106032612905723017189839666170055594908973132987367594645767497471134774605894797561136434184928377479097485937272324969475976417869098853965385806397569914425659693143560270805862929091979708019379188597661546880517821808180809149835689972980989709977739427324256021986221259271336258399306506046152730740281308815206542966093378568227915292025677246588844089818134629027382858167878449538451654777731910776407030055893854534420925712714166677267035176025473016422031482092607344749309870500968035397866819017079177297972017598733612612006600793399100176377689302396076554825764481813047701895830199045323816016302549808305822798646408955894709360196856235038547261425087167588891080300141507462001401281737942598504591542137633001273787251680537928811556192487042966596006337526317015321206896758246229060231557304108687650037087222656444408141881038171439407247020487151064863799971272196320127629331031760528120825970394651266802059876231086213591509227166515466979053469551079205559961444519869102108580579400615539803796323335778381459737174346759913378743401844771607828142153094817062497494998212345617585722636781819095272372827451341175341142349558630091408113125255308023641543278272707665549448589261015578436198736072286724287986684315226380756319162218320161358601630407617511549231967843403638948698418449753095173728993956236628687588624338459143599265759256857977192690284307348538459560393322073701809743305056905516358785003835100702023719997383054411392436728243617629675877944280833041668136788648999670709815414652882435446120927674393410277918295234982950731890738160579131532893868436162542890535163365530568927014785151413413171353133006814346204747420732326943753620930608306023050297519150433584366326064781207103002280586286783942996187422940720815180277497336645439606684272211886554993052020561255189955326964078170378148979610919144584077106287807203569477576419160910391634575259340843327779864976483757457188533194781993655065343806676511704889134132493973408906361211723503962842608628593741033913132318114202263371993562802489526186945305869364758172046307718595977971487154534086926559631920660406859824363834914294469263688901284217620963108314938563613638840135086633483126723309122007564341999153947836640443141784143927387285607081722393454322173629216065675465161918809473972307490284974813783890050046117370032643691159288245681854611544798100902975776894317116494347693624914882171816926163910321678482628229881392467321501008770528443243949096727367744003127273924747447311556352394538206542010083277268328475409678417537579563488347951577844048619244047766182515085712002931359712424361927193237604890358082127148703615646477756236572919357838558533876367197222396874238231969928139607832129299394286216583623018485203810610982594802111682478041879787863292187319971539572798066476907329615231299980299371879387025046822298978550927754997587817576059654972970316171042076067402360139300373462219490130493202996239935622227349515950063059734954835072853826457747842087182083541673467868528654805129497746844232036155329438122806044591970571183050445958688284580470235823330268952029312876080619990275282105491802424932792089882891940324308947636923339157478712759904221019473410780552642688882993122946551652330213987334337183937314090948966686173691635979625972918187865842692326296838317361086021418713993495237942358193428636463580983370278768327120823320014118769714876377898563828278393973631842372496652428266990715674305948375932227188126719595814229628761951606809766100747770405261091957459980296687672854916708302569277575272746900090520285480142570708388350259978204763138535658447900756025607714093231443103643326500197669833957472169186815847808975332650171809040261938631873754012579822359908654274109271776569930303344180899364407053039085095602932062498844796546991651535210051665770301857516581182548382982079903494554543985741650980577049639976454206316733917952569928161040060539101735271724982936344777013770549757821466415150520492473040972785717514614181876833830844536079577478405284285972375248530560070552083306934746388241053714677016643820953862623088676593185952524851027820398716539243576477936716917561535816049669580761299039317768762930417499359803905244515185852034785580384758163776546389762558346232602273831734727883114098047460686123106950110804651421201141275883871872641336656990646918630846838774760660670402364059768009704107194354755946364168912577237742837796398121704730212593589624704351484653170254849413066149268512200080107113565094733241209227755879742376403551667624545131352819482613261390959957566371162181334715727332200479338961643534945046523070891782814659465712401052815678690468204115961224638982921655339778804799788054178614708637401862989577328308801143360821871474518993874142023746459469332466189295018960393066048420196476310255798056485829425991301245848048758775664713641374856866042070902959479984801225544202351220572400773128352291034294658789751458870343873647480952815058661132734498635736163009618963355818007517468756529624590086969120712752495149579205108386216914462256213586481602973781307634760994318151149137574184934898928021460880833184545143010991909522162136726904061862129793288429546969048926374886900151321708431380854700159314266061620239625187581446323035544059005562605605869540910709181838423063804325714027391293960579484907452817968741721154950869796826892498190538432099496884549738581433665753818039036204698009405130671830850537899403043386043494233881954951770882750430076449563087816132887750320849957426198047220876935265176875611599459560182907217744148461438863775413003373445157282705722477893844393639955413954932256017380247769659670106571193903750962676830073293254383042961430501085969986875176908441386568008278007572755919790484069417688867341665417937321737084246847959883270627096413616633652839298239891440810564788615288585653208619335160428807955399165177839040165018738631451830447013590426375853769547508274990738120283734755498250752545868804005788610737575357930629513638125849811655921274594869423838761202758642648720119872602338963926972500487740996008762226774927399938296669566632083419475317213288649016153444420704034970336402151234423665340923040130898140615778871873300122806670330491789735974703006056843855471984833641897583785223481487973396993612645649226991362243728221395133054451760490048065113633811838382603590966102963728507916649373642649909293047184811931665990379150557601092514778645774330313664093235378252160278971158397314494360769740614168424098892713256921877358043837950734250866518643894219957799277783322068983400927590918214914157200265883033876282019912619432414487339613772604653654721761902375151392854226646341981269899330057094544932928195218355843923254018366289009316811582096580944685851480473187838419215005951571621071219086635038205359677445950545658565823171953800197935214308747879709527918855797029072682220148391238376006288504688917725928077165555194512789278583099756113079620180264003340658261231391666189878785907229645858412453179610755360199574916264984530460845963301723506524730539823778569070475323112480063252373190073174051092154458055813412064454347792859295763483910498592149073985392011117110634837205489800862022122196752772069675088906982157316179913895115440742864013969717965226690646913947945994563386924965358617892222252580477918602323789142605458645064388648766481567421110049652075432732717608370769969522890176282892399777771476632164751719828758839163673617183634326885615036073549591060520159413351880587276232800732284000371055819460181720930082586779536472297362224177406163495333385795116779253508224111642370077615417842234191103056609610878001004971071485321745232878616662801151582935475537335932013665483179101596460796539295314684103164126245053528715147969874136986034766040574307059102127129695328776417903653361656567898611417819768410706788887571328126565033526433750030110182485888911849820723666757675979707911236744411254474534594151821710482456917912890790871703749689674978837408928103786771761408739041164495228924145260864569210562697338314615091589125984932478292433714870977377427709307690964248990188685581562531775182089826798416680418505469969989216493731608167851856867542561325017650629693927818785255230610868773063922086638929083743483479158396811545572760833607310382808320685420625857476720878811947743570551226683042869671343709889281894391831544401425570863764499220549011802882242021663903343620800772490539674240435048194656198481721226655402234307740836140562586162865051821049594213422269418551120922238001611927269233092080637636501721203651109843790175425156349864592165103100505054546139607895251830047552954557204874001453738647789206655583295825499672356664372795682741214635497441145146117982085393874806815597176716312171628032510668643823013136227457493206064562608946783012788352673663506583200119426212272525778043743205341712573467378291022405716521507785815543606601983134755148862465438559240886958565520277553582849376947206632515486536230994367333991050933680903942078530652787586695543642474056217484237276556149119447173674120055998604673607939238755450653283088571598637013162259231236187267572170250773738235614914429171126915192599721470230557624657493111509021755736278947313103442889730688867058185267824204793064843477322228943762611182287084603370308500836597083338357847992307280068530591019279930068946722313012747034579322430824560337439674138100641908635914318907152596287156511272277119278399213385163684813881927200176170899081995871680860865245145029708899454983979534251563040237095900317353415284818004563654978244083790835480020259598256534699536705073678015412324670054488534723494367478550245941973730287688822601219696320315164677722583314837592301766149985383320605686570677216607186223646041379042348112366361944333860563923446022990782931075009020924881541865814384357253251258707001621713899390952356689281866852794946490615981896342151422167539246111744168685947858718555391551699190437280920132987062729535988106629984791291331477721537319074536833507670686249002396438284938379858847033130020419440066016010668363645224473636517618444126415592760338194955459261442148713333363183928257601179046220884716351246709193011546090284147404570927472665321812768051293835047521899049800842850196412509224144000527325790126931454276236327787750826645913034611301433865496167109302023892565155907003803712633782201638335166300319208960064641413358826247525717085794113022450316049927970060107383906754620317290745903065711491870842732881568034884266493999596916351757773224652790335007610951902609456198599952317357028267986374885289462291364051608626181330786307311060466621404848505388142726832386348500561047520148151206830735991095466752030115408923478811251527185201665004546774414936938294229830041338189786699638547385448124740507687523462224518171143649578061916218004778792176261473153700986966479425548104472945289888795053069501715491098540084769404229100984939349426971164233677705331757458606946890892197151873299898457787928800429251214518717614899248595186889839933642385093329766196949660547891710308112177710345880095652623696040958030533146592282469540666137299911245710409794956091424859966364100911507242325650274712614143280327998209866766892088579044552552950196292710736866256713261112403618842397320088948517297027354812568488796003050640886154387068549602743670321238420351618475499447841590091127716229811352938719682714673403048717105355173639180309947586274329415598825536128593309504560376886254615907974113034237256328843620425793300209189972444407196273753051358900367027327045206951717478635328543413333328933100230074439360202875325600880244742226742071002496388650892904024696428708385208772819604735461200541829831977858156010703798407317085388567694037498409911510625984711162361201147748415260236022804055903285012681699877704180359529085920349797298643492569497312936673906801933039430241275423388046819225226009150247989068738636020196050839808983149581650132929944223669145227199347360771836691812562820156431532921276730661026998803181033847027168027811759468402092200523010619150383047570210440359882159326997905902912183599470593255686457297936845267660711335388502369481733257202609888938453043885251277461411438412432890542393019503349834306252479488725733763386119915556749335966444541695550172544447394709026114844402972712164735342995481039636442069963260996496851126753583411195245131605120071664753890813118387189734948561300891315866335394763193574669285298034227272859772204552468934851772132307091830128613121038869111811150089621480394571881023782369070636972678406887532597339229968512205776442168387288671503026953427423526559678609705563226709300662463123037490021349346219046180864988776625686028539375778305688895723172951795404257925417167010069152670726463266588306469372858245536589879264896128607434399750736913707328846850961777259969640924574777102960269288933828718334457295158086651169386620962731676160073891819023659126189232553300975966223375981095961647367606516355095760770892835108868572037000111450249276169325282707160588404447496174726931809308982367446218637085420252149572977023992756727643521314702921903517226425534700692540412620005933272314957954155555285441902296540137101687472201728172697970491411525413861615425555987876424505344865503437971044190654844546394807029260514636500953060414639405086845943484696428929194596061651531672263190630304663232424304262968483904854379513326265183469156625554285351708598336209978925893289212652585112399810881032900174031985866485091524928667931166180794448501069152612580950160170995626068084709042260616109115555872416025250350768983166291866971052226575218044968971335239400112024320927889787508107250794687207301854508637656795286754179973989091516808929382784894607862908734064845181695463334382214336162834648620262446528700690367653793056393675945687692340488237073129831417071371365166464042626012364506378705909049088607241469648358861747053729679725142976168062744220020531344468971311964893630482525200825024526687720666419638923867828502865657420223487726000874740950276480141792803603945757223980015332895916604118210840928172180751225487642332096146248624489357879332908787985140957128155842923361182888705652120460129894419775650545520256341551936104491004114595038594367725655087024387783237774840104141358315631668316701846856115365758888491162267926013390754814459436495111834916022299233026303720894062818282349369303114883616655237437029253017853907032589722549386313362892732896698645043164671043344377798753959803335748551194498617939812622959725221671558870606930838412760288987020243215870898871655712612750416466104128303350410321960643713776613908809696928176982590318346021729160823059173235218617510037845229778249918541289305842757187737239928941466609642111327427321347963665299229889392188709768223059244548637772185112235716018411130531857931461271405277454846609972265874377353982545994060393351958528462916472278048881341727131442897769474864349046494905344107876383126936738043524767759091123542135772298764777462831310709944428668637250707794878598132268828872667404800698873259567640252102738719588472894522496196433868273062281120001043586672046009862625698061443141230568089161200215042096372442038488035310724398769961597516011529066202147135126533411131410030256973283538846690730168013168770768697351700005969977230078689371694747622181898264973427651492112039533028110582397140949406133142098560937375904183494464646626098608884717990329483340688532073174505940117666576007308410175093517277349931031942100566840344253450257163559542518840099511152782176550964908031390432847484750467732967725539974358592048074310523012413797584160618862481521695392229412392295490128370501047979657002689088056745032017438520318896637350328241643017930642355064749595980100004454897995960164406365632249326846248810070723577120953070585171130271634381471713731273670162812811945675804034069242756763588369966894122703127598898013038182875167261379899942267492832978363612105376442108191034081966158587817741322921594146091819741313194832136166726719986149171032182846502250416269017753659448954252171740410272772075929721174900140100039462130965117609420145950574141160152639580064445986691687445990970988867962182505806813873226872714706334955431846899791294051373657869848573091380731071943579861921886754521271843590886653675272181278482625022746771655117670701890095313075456876363827199977640221092161953689047480250450112959844530339606194828107597016856288331195985283066725906017206815857931983034132795513534319179040161048300962846354587678520222156104204385273269692630129397810181823472617255925185478129027574278001357807683529142008573029871283814457260204004394862697180662651528840832018838764880504179486772721378980414278620328061884064665164979190573151929953272596949678782967030759727796324276494108531755845512760662630639203030045255102765164170952894467262313404137435036061310882952471588266397681850025924769238159781099110329587538709406504804420759868623096847945961044688339988322152999087879172165983022628620876212712081402864234524796924436640779874487377613494900437812715862950295776454587667648386693941464366243812606154424309100591383928165499424514465318974048974870770013354427731605302635136166349286961520347809653818149958993648855399462801725722003730327077011094743655452900588483478046203857345636403324045941627070184980454641963761223940966858999957352013220238257999529295647015603671976140260287011693221194874342287464561046399046272271649790329246190459748355657368220105775678072305862989225264606355845575462934564681531264492400117621764079937786921190078278648684849484739708938483077178688240869508939923019568286358531096814994986055944246519265352517970594797081165998534844051849007593146425341654215919635241863411002952011418220645981041298610309682284882488312372863117201818016014469564170946792590190416603406730947714459626436330834850359085950720392000206172581595574507119734160853537484270972142155842630652312063562307938050998209136468769175462547833836979943608848968237486988207570071652861761240899485820543523369830877656043208295887543655881881313238812567916353260268232923169982783865278788262304081296256763267165563345841172977371152136581169788871713096776857302590345972659878851373555539926744294141743456544452421442774589367573888035717185684375835817922047169949718308669541189936148160092138700814127222355465277077299699929535411076576588045831363455383868912442033725316867993862707068705197138868219948966901028993519802298125999700887514023210159212309900387186956847808446735037673248928633262072637040646336280992416716701719383090294401004418335000060449254114426279780611399108020419331322670943817908443383241862192256123795064819657618276858544783670134091085860209377760359128186470731125263177433845895678222090861085579130426871987883099561666973738359518144714237956920239199094028837064368015370392854306994456349501691159085880009075667721354921522703804411379563383842696227916152502787925691328216680136130754976909935114132301949404826157762402387836002897787150273989926185425850632977920952079286947295214449173225850060210647558366597408093107110816831235432037604871922198457006070880981652610576936526685010710892692481953777922217027141371478936179407181940752391602563211730980535916234802650672725212041695948871742787659193555745822736847888409033971510862845860521063700697030935743460353855906629185185457221058002857027102162671774920658786541034329751367419537328943135775788744697502905948025128280937452025869241555677314858859800505813785550648302933859428370769904964676875280745242784614677660455939830821227197069388196348545910341289087680207903563832811425368937382367044572199495218579805444099022497487160087544618221775890473252868987679912389213027848331784201436580610292991082476501784777277552533137605361784675430331432888374415955263488806909743443955183553345281632182932798733190741512545996700401188675337105876118521649499633556551666235579653174281372843742798545287642712488372983952456263011891281089376749003533212158354394471397806282936559290173111030851882237343109448454846314969237761358563432623921871327263798293455439483894819314690506394432090780801191541321547995657020731400453989086859410082293775065725813702499212998404524898131129716835410787999362438660954752403125653695729290508908745098336407265759162027940240105094790878903991527749080202292265961290991312387327854752051230431863272705998680557326992503650094698856103777908340098890275384458864858476228417661347938481798752879377637302977199365186849376788021290542362090465894049424189982287253260247295168337504475942466104244862537144965777140103548370387844889748300194554675493641116887951024262463925557116358315429942098823726483557633009132958542657935517460268629073785509345438014348529486596719611444519332337445377309050153261781419562078077943243344641993540255478351727051231926085372285675635233252552310843830812535705569471746999177872542235223884618074099544261400667145214765768026684070775597891033921098496582846454985401673006819458307549504814767353321708811894754889343278902559696355626365855097800674980878812128973302219320740964550687392925278081202975949656782901176574058699924510421675115798184724284130855903148803582827391054905764441141583886365641863267833037192487995619400482772910115644960714007874258202793592057879233391311778689950376314577637736108575056051447791312838231105935075712264979205871084376130014122921787793437274769557263913579730097944921892092027973959766397246008911352003883056836265547568082218631481929378181031556100853280374621869024026708532396065550587695313960800936521267970334258056113640454396647745388184528000287826538918860599379295277686179031191248080942441920137899388745514089715417097754095416361211679026745664802703408080991831545251844502667629015936827697201123305078123449163769026506532508486168778278294283261863274210950006660079877477714947438627422623392127265654781881899479771710511827388350308379141615400924686892005978992454978011018452143395641441849933829874934961484057747848854677881777328130746441030181699823515527313107631669527822217989112181039099293715645801030513604779334579912119939821146490621600320716011572703376160146865706136973353993759289095371592120125450399692934402184808352737887806199855964481119368971215486245600341561024019214854728711328979127781826473178647617430171566358333562135012191168311882299497808374030563705908745030960715854142460866053951871872197136816922662605642009785909242483141279904969108546669152147697438042077931518756729395348106703120343934459480693646113587953755322583900348046822121259786125151247068159768289739362731767112400935260980910689535742512419660587215525516376630723666248988403675751354713416562391883138689740284608229847496526760088215370966474297157628885870695980961466965878909541544485388649778501386543996683995765610422523162507021141633011240388103278081373527930712660031189448803527167574421874043534825800399366995472309018818587520948590919546017673410737850114638720552253597332633141061706978159946338343647351092978988776295141571420926985469522862152759859346678379854403710830169400753202427350973571984751705476127649723441802610361666673441203433294984220643662788697548123972117984629711457918461640850007292150483343957713736656391824025911936012829414382622915838322756594367465684517625515497918145053510419263597555608482027676530396945187909592711081211791933413743522886250118382940730232895165403347128460975953405617766423014326737279124178964741398969077461000350899958804772485779076629652440065744782326299900905556324834227666363688932171994799688913580840570220678193212238870446418070160803810366978205145796537948868366363218859380227676224510335633390138217025157738421464454076366281942280665387362340284306584160217934888300922753483296821969160974860266203119873212759607846086059290893798063057316973305733217211465343946622810241899707790933089633535619525525149340858124214847500265967243457372407003906947682122243444887357281493061882250804654050690359662746740160258700955445225405859143327069548345328400681917310853056151010156893199521994399216804566971958361753201304464034850767566635533887492367236107460759579049785365782611030227260835034122393745985232689434141381464362348368032127146594250886671941910121206256195870043263950383320058430784126205007841469204226006679054834855225527643769091349177425680390800412669671330506613481131647667293726863171617363124005556017890414404404330975481343536703115625982475319346985149205187651637320958302657452450052058679495215066364118527210802936529621382486067451931083380057277047509813489111825586582353595592226007719053454695989273808274247315183657370491679165027022326132791740199172269306130052329039180482273585882554077434113899008538164269978113500241393313710416877991126174814600412810998506172184929315866250538339522098016970732902458927739049508476458151205942549405187501398883047881762794713282290803017902866418131552206882568482703435108308227531802905863528263969963710102858680192370384873866474523150183502455467057762594280554259028844720167548051860258790882199734895942799826977591474450761328335412104498206298311441960392169654735768699782705658671944194569050235124496567311888820600343009341981658782402127324085161568434636239890855902636466904824506344172946497319384300910932500799278462072863907038069068485420432766183763785199586006521636705449633303110202594788936461741307130854011901013749311613350095551549504183501666370384029479920453003640143560976853726400149316234899262259513851598444119724796304017068067547899252713233959879660917563602949152356926052824380300945931823056293748546847492166897764942633682846286647640668503544973590772697208885234980363481829073850390232185379927384578861268960067603140167724848258059887578714620240109896537852408395047482672236896666742724522262973254771220287464681810575742569290880092132512989891853130941026617849974274228852935327978235421002501034851468747947261643696201653114601736699598496430509576697960204477115555447875606227918436933151130303502411729120670872216941715380131617549575377778768409001438281954505947988104188956335422032328471412647081934054635111809792742400057949546744027064051455331404910374409356128916827789546622882368970047270589797393384741276991538563103964968211487719819110069196798257835374403071188741834759351002210178281111058553623548541773947744901643618843723078970226512617291333516868125336710298530801407738539366932552004645358853075715189580452168604400622911299238030819102388045521481590236213778347636441397174394807002982864914512317377302525007302072997292442875228031145605941647588168478061922236411119787009916010148196824992351152531389699936680107696569390794750984982510463181787157198030118412231195276140126031615180300786216036848143711322770410774682450298187413414222973032867933172061089599584883181959633457983293759544386998834517344459479267417449695027943015521883469884493624335851476615505219495296990340126490596308500900755732586330753113950923390584404398771719063698552829663474516133004476701610322381355159390984387226313669149624379716143549031553409943826445606820816733698970910526604916968500747596645847599440398110988658093175727768628044618513664475718667574348125844056003601759411197222357488533280114168663912401029312009335629323947781592233682845907164275577828957135246314633413878398789679929542906711288635880011224967824032738835951012979922361089678696314884363441644145523812047642529100832575055237565961538854057392410327009959049986702129783748568392396338852016843549747063994660490304065239268305867069094154989577331188185973122255039086952168191358820774984783202649952120154948438073599321653454071308602542746477149114204592406156663234387221496726676829869374330722220899449462617777053744570237733074905085870845319480328518078705684202672541715125407789643086689298250397623698300977397867772089542632744828968234246215082870025001524550346622133324120952013384598559397760716437462136711396931403607834518402096319026342471356875263610019623189374157037823860827006055569441797587064666192948291143329706103352060027264708594365156652950276898477418828048629297749599874973451522942219305538586409285069763662422377845944102823229391761991929167371779878077300209910389274748467957477300875829293157333963574725207601734601811760331875651108176996718456691871995765252271815013933488424833247202146136038061993760856623634845135599988690483426061816815101796443396902361681540739362266726099751502383662535151415952771259844925237887078309017235943646277647340629518993961950579849133401131739091414619110162565834689328286208986004933392197077451694372547566113561933230592021294746173868477363528634828693024403199673371425478088891359922390512577560530582808663264957840922254968201120339080972382172993242159913261022136921526489403171510256716561121008017470608430233714861249956384645725815004429248933525044328766831951075469744752405112391096188499986009107368857763431193875157104097624607807848606259134653659570267673264464270033380142776788421144576268556229888015515883079604972920207376862107073216267252050287180039765898566851493222269107450317032185519338782814435055718375642108368645578517105167879254019044678481689146426439493157729475743488748657608025353996706082469414403734390159053449289900820888918690972481020649472129255747810815648392888800675734285241879769430525755542475673443988548049970358726769472235241499844830953542696705346304588839955471636734632618134620734009912840504778029424956834246561086813136614396723976987763070738747103595809208377600305982003380579787768540068566208740411395591070315278335378492973058373495636530340830165184397527530277085929673805511775802787381800469395652063335375822176360937959768758892043169977198301760972165855069930430402858909360006893212228138826639366665933055004264748622800477768164047177886241642837716572839345668298733710513978153099608081439484180550627009267843175548435076376425672670363321130530287904355944434335556957703208926389645137028920078666136119285094686811621491817342972427358826893249733001702310495209141783710388251609788636545380627849586850619668249489644352610834358061316926077633847667621383405276169988246530921703388777244942709068308596266068109088069568445237882890094650511023319377645509638401269956134485250399422046212729581434868736510983950626444199715279437577724446309921061681875248328277959098711430647416793466768780582668702620675367405007403938786259061459323217003319521864095534284944002522634111421529998983088141879143323852233817456893235611612330554211464127297279572690747614864098313169852490971544544780153762546372205485665012247276326568603615821131628065009562779859156887804669590102391244360458965245018382390848208783856933320210948560293610248626344430264552514206476864691249418889402691439366005506229133653376357672603372085789148908712315744586732631862514293425066170537452082085867819469997082539688817073353033033641007469148589549383601345296095957057125769649739944822492085694604403782720873148357716230590765330607774760896181322090725710308420695867981607010483031826867972976156834361329039995984283140470873168103285502734879833968279954086079349077141825082386740660862151695901733731077459610371972874967168669247694552519104413168267499895179500987297964446347023171362938837041147924492211619786595564213450372032606974528633217464838057755929953751459440022347253473065275708797639461947110422112648651042503610565617329061373358499231576051186465858266923049324921486320541868244309150237267489228704586837025924918062083838892671952110471524679099645193270459806751807785849326570083807604823882805884831910617255889376368494308242545467191184274676960753832063398426704560625657481919685740904633207420492755399537919557320710596772655708349389508929189813704224829188914131004773751497553673014415594477886678116745240627715459086361318114861319926624282550378024991572700761683788833970532706569632392647520480933652820375400836123985091185107005850392262932904583425315853460843796795495110157914801000881091991248173447849513038004066950120224179581076077612214416476739221291448639193398024059866895738017630273805484210378609672834139167806890959337299028211332877494027580782081779237621219738214741039137579289809173580363051070266177126502314537801991497443949451043095711993589955476569897423607872329547316021129146044810784942956741572868019748983436279202128905354367510184479890462774126792030960777846744826992112061251131514701326228485745455233475187456309145894789672886269954086766711249624003615192762211050249319039061549244504430135975881299577429543899583481298804321293067474686081896505841046032177520967437330606206028054234871088400306175601972238923080239116456483830005935812194763595811127457560324003307793541983444276307231584156580017782736848946522070800253024647146565657265370009559282117793868593876020971535306649962873919874934408434878038402470361140475707029954812455321428731953762676539366931783447394289590234862535703187798912307515704993149186830069301120387436458416509350626310937251890711389358254032463834760790373417939631737116586103625638289998199657811132006260182451283380265551522441321763729259961139993590812249907326139524736079958391715110917603171874625105082992681545999693267911345481634632290712850128311635920957966169038618499865853524631989917322167753730509879035948166477888754583311704162636425323511437886129475985140523663205008481750647671556866074871326944682849000204142416106370336354970500464527302460060818491425980663125583772231481780775955867193633855032901196040355333897202078422862101175674577843111972153555633844879027213304205214555371468641213072412126680708837350544733679392313286983105674805536861713648734479672465456837904718842981553406861100357046351497626144908362768500750416723704719082773631390122617749949871206246655250010718351474246755968448164097225958893918310723994675543220467957176563712234917235553489893092031842949143084507014451734314530854114798502877478927027221007709287174884666352655488851387015340226985161482183555454143382395855252363520997948892673013835734788262088661968885333368611290407043987168379453650347584252866385124533336199195624954633122729595907582589017719099658037100073108066105795162258813329047411554555457000995488500883541102198770988919425584860000446966141245759190780742175923487791570822556521960383590257639853224402277595878150711957668172919907222112169221747737633217374295033087249523953293681309852328299418474861438644633810092656431583137748271333995287849017056990986206382713386953048621825747975505686067718922128645643313839410631136345008809653590243290215150325359833600857573687132453363272893011955210367252477077749365271580106718769136518564574984781463403343294321174861459939331832697513164393579659592445057113658233098225396356913205035969111078584502422803518956303794721408746122532734079849137667067156033551275135910934460124180034005310165114837296196667268973099149195831567244551898971674032109939788018451130615524528988898118689793218237248218254499230902420728843668884065354990924578929004750820000690476841932171820978614732154841862955007727515597920024032111540840129884886441965422820821007217028725488679834935651939554219341569959945709779916037026222666671795719322408478505008084248726107983149445215867114141704742741287090895624084458618924965945941953666035685949488251400788666091265916115148466126243075828552110268274018783623278151793310461946522690430693476502554155678819631237408349386061758715109224434440312116536585504129011183198500708085131316629919395241765749983329044608071903684108462495550796433982152122274192128102054592836550833565235999148475398653818335564961469593916129269687319874654043081459365526832042754676558382113170958342236823747149687908949465640765869246129012501859117519154362977444531082924564097052678989190899178518380317459957187187029871604243355845835147111457822219259864414898665678211723617334121249528873040927509940679859681834499626195867240833602014930957229225215959347740803717704710543278088519127632897819778878771687295726059010206962256731461928082277935445414415619168330330887277216647551754724412046283887500210787901293653369697415937470044152509343216972315828452896486730421791333198173945706021728108611277042105193467380429111317862094871499880731219707716667442277276365162166360734073719430594778422520220222514186655340049754516119215386386227476752549986442634711214973581864611673218407391213827894629085377438442291593645379277506887091593863064004109748368655744871449735619533744838665042388608572097053993081334568479769513017895514704738188845902170713685377107644701102932475821839867566235784657389758348544506437457647587479183351674450244559026090671633070411702127728402060915703856459467192006385882698792282228035781113603879033924863053866732156164102800871815889946404624359526294548464026625818195366078610027678370924367065606468049770759293422232009204796811236664281513068412873816897640871810669074606008698308780996460566582943647217861536948389056452929376111001761050053504628709134802916668781556677492355445517298114755317225590898311687173896680737302456862730765806032977611253789877428802413590996806048188333532655628989062463479708711344826865550845754694228598082533626319726191535211420461516186549190301885846699491584223387583160720726215495748362608277609503043807189609331856875353473517423773920541476244290750787061217947858593179579539072151732954878759541465725874979370292408267646979785931222212623367469663230340017623289112539533622319102955585026730567678261199814496759748382791946778781690701836030975529400269576640241453769635643956586003269757792518297526643478696169954488227863804315978774139350722492695551259681005490279726349487747630318614533967332310280147714972789450894345260486508235166243673226482803613612213721598939549472096542783677586257856401458220386511871811740218378407866263932491169963453716713975033396080974372626545813914001039797066388109017349344015050295729769579191548030341268469225340161456315393903455142732336936562284866678998297524725654224392910300195416942341070829520384683945081781519186176894937089834575751282955340344623497815974418954954688341203205218565301895937171696649796052601519111460861137418016036926415941739687447433287302250710645651027614496021895324103289153035290863325632707539329091467188985819872067892790326752885770965455007382720183979304704125459159903321330133621407897808068129215170150786095990772781174164475509342796341041733468674914463022856883726334071467184568122488342472794151451416870949009332826763200487586290510555666636738216012616048814094303916459074330247359921739997021559504212421524585040937083202837493478694963495510072127693973186168525923651143993064587368952378583534408053582973717445354603930098278824289469403856572295858103200356799770663212650709955844159007079492451259682925377295704528009564267585229840406970980753903626554630047634891826118770438313946175347519088546844219768035909506123034055700392646437741638266473040969350248167193358183637027268262526584487462650190911977662103366475084917763630400541216777769199450526062760566821769777303166628426255197302909099258656911038257581631506980671486353496268493689409973712438993207004047146491453482281346553098920346828184949905168368520950521294793919787411659443675146618893841299423178658765153510375139719951663465176675751783171364159743951422167893110039164912494680715143637254102077992418740645409782995728361494987142417761145899912759071172520460878352364101366722005262894343758841791008971915725316557503665972950541218047628563217103638800188576005124205980232762514451308796564327972667468858626434250520917527427685700246404636127619546038455430248549619956231810133070136813913899526708597635320956465731295454016912345165579113361856828942474337444129390711198707348895180202517450656870809887248319629606172418566485066745196135642553548284196496499760437387267793859740035117283724329965841176336877750781848861320539599272488423331347150951128579213466171698150312732347611979599325124435835968315993910293757925639386239224681076845823544149789187371953793008249291436614209446801224414713936645231452020583513695893994036889165416718472325312251575956940460276291611921969301976006786894870398704622279128655660168062748811206073433885895727389820928531278332057740306143266199611180274350577911180806699795632604705761602410016265201620198153475253244608366850223664802711813361442039306362788526627949509738139003751766748545213574573932229099902929573731551971895389984639260518760518968384567032050249299704518804716381906969846817034934044425738438193507097466206194179766032109873295207842909352822785897875149388370573391098745100370210196786039146669986011066957497800388162699819829750381860720286049100627224020433580480375700987922005869457454129999931397453530161332057259931732487046581450545122098716162843852282760412031270578143364388343436884746438162239837510658014515290316213137940949038715799757114391398783707069748137230030149951785756485820558301871975375516776501286915485040596669875571216567650690258126075899723559676614540481389572286532012101994170412839573012468854011055142757261976702428359810429138380034060253313840894490987287434762136354483577900814352421274755712588409515990675656506986921617187244346481458042235913942554774538725877621930519442081291223278136808730599656920926414309079935152660971646813809722474084077197408308746938209276452960249495461659168602260824753360749193263211871163685564767991221966451297356549422807246029914782327155106129496071333990621271395888457263358712031215862275923647391015878629613847017478720934214725884535742624956933422503280115661799919152315443778828998960764833380882828611571597370811915268809980511802277435101193857101511795485552323831057691460420770831206971316931677835814507808382398522646829999553770748392072844216790855722476507596316455416310084163900910736787626652622414345028290970983832374998035361269651674035749788225579227509127828751629598495760075664988595152662538231031127030583604611233203247662378132533183037517382494057222947189299689277935142129782681292829929854441009085144155720050866441252954408581864305451159413187805348911873038900064279234175975552513233582981153773116115361238031712981104093931847227143334374515789999516256924315028555250486861592477263802045927155340651963279978350032644611796898442710089235066463966538702549973636482732688324400196438931051913831936111395339687739392005716812344792312424827345049132944610814875358157680505834452630724109872965458882797223083366189109258802847555130823403920960193639667849255504012963858447926035960658941150519191552657972498309588590153501145243916336756117154902570748396233919375517974866320806001970614283875924853696529473700083281624991599073736138531285253160166037771428416820420472332737675181717281494759430530108125660880000302422805749862986705746733879604311517814988509613053618299748645932544574648143513488791419410788326946725737421272417858780034959511162665813205352783933391851967647040552535166336237026230020668772594616468894330754326145079091783044746459568848197129847132105715069684250763371270777437287999604237156846551127613876533962940562217514542550634980866731293125524001556014461460105966162516414154740103867704031433524776672529057682055766878703244654799372106609066271248290601045737008001612892082804340606162873044976705459188309353888151215800694498753251429254049787268984146804741787775774637596952870243076197370563842075820373182549718793992422161231610736929893082218070875978957685538258144161850369282221487650860305802174652643591630260496569928973310269658307774121360109887341671323641529712991060205578894337778901248414271002080292674686722348275201978554827678057153525171799927422993486949965481893371340259194387397450094289279560379433788021611581237024683714380774437577395056709624047814765104565050424793344439332271688746009661474653694291614435282557531924339170583121186944896184188045338599117028366013560150706440958219198204595085059315557658884836381851595417674580929956635818501676945842205540211840381523460279322521595290539598291519195922827253013283076150612314230715645551086899938503524663681419291187211005688107599562165166962243417263758721014517074458426948185684120197389524648917491649861954853240378012322678945239274324713926933296417239508943718571795045397814614524043853241053332534469035317056279482205776762034557772573177000171745170114282485727547914847478308828856104359965230920786782035068441632135295016970352640780855336752242396197873465641239756882345415369512420210030366992960057018801194097049835141059664091114585300392892144191555667889064370696642487726213367502689075219565881145853237418774014452487153291437861156475779610997483975753344035895334441337587801570788942062722210125196696904964175228676286530749573863632025014271775563504550798015036944330747147459613948651616983320253779150262542550339433544036923724099470992079595156812265757688646441132071607155746908076663435164070059878760101945990498033091635816955404959810595193266103271146575256547592763295659957112389503307228663129073034767122529646654295503048763416607664579536980402514947436336461862239290792090621208466602927753590807720871444494646154334673305177918915246300014389433988865682791637471636365300819682965503836527590573075189326892363750745851148091011927956655655787097140498421316348320719696943986418437923479993230031642526692788564613376771002442077710411814828110909414132302105421086495076527773689436173416402425241882213860592657471652556039687393769425660214897859030786506204755954679648793064144173243674520857753470116231489519853479891343158834782049116355601725912075560958042861007709121623678488689313765841252403611204211420795537173827424763539877411124913341132286640994168465689334761019812436747715803169802268597487875521502981919618168831875560518450471581939094804111480746019654725983749270656134284440548362675105850610399092962928971896531053133482945986596333726886342915383287163591417708698482597300285345514439486395102538061116179673636682091798747562926842440110721186765587517982221665338749439633548945973702654842151550675157917340611659338273343010146965211625068149321824546903464471252237739611278444482571631968798709050208585100039406653689508107142363965231033790341001377853680374301772158045143787496050777998555524001867746164393456285860574883177891327360185714253075415470877530685435527219384578770977442548463730634327139603236197314316455874935664646330196898529256815515365629218570712707241353748701178615646974339628040178928170419938175208857659118242799148025937460179359103768238316329674399870914041948966344480124535194199382728405600648754936643929332731549462669410990461761388011526005974364031053954761727676160883647349049413206016876829916905923620566313497393288588768736574100716973175787886132757921939557658144044032282275269465107633025395573139153080040831797187188569705366392996555920386591109136292883438453208883887770010671840263216386879190416370207005204423642861913706233719318375659153398917111498043659092656127723791386967299750334742735546330430340318800161861437840628325573805143827353378172409181985882508402541839218751033304005971608121548484628530047832438351349499810572657624861045164122544273749510355117545752780224785055689396048860959933302520666373720569793814108727198166242398945705988362483031796113414576387691065127611446307572027823837586918044209597337985724743410596615761430063328531879705769617043188440007514347043377632884925486035331185877658390865730156831231515599589590575942972838939669229424472772201794141847707064022357462267243906620986086078510134581503813308833805396772634329028122714075336183690849607891090919315780734712810927834740590734809822685985843869326480426807101444009310376459659314027519214196696913641157013722109684290485210252271667445797378660038030724337369197591155299531207695202156965286265249646100640187976713290143963212334138105682860337602171884964358883932361029726679543836134087198794860102695033534757139942796659837934297124890268199299912665191535937998660296321514591487221382519614303785453082177057071359658288025826085040839595237322655449821955492552803441307380289542198275910507478550162536802291902552415005860458986437552175820136190692750772234064454676980820840030419431460348104292481927635779143812905783722857637859142378762351683764819797824453959246527402219464937389161931701387047585878689397637051019897073445591302707089322674980901629972464066273602686808262008712974177277916169137341729183894396626846601565949620635551712158685193765573327474582605086854610085264063959231459718077865480705423943521318271525562820746890188069538799438422369153563032022713093434357652892413478535352849869276420152003039348918603681820446207438901940187056823039557851964635223805718632681256497681412859946001877605060620409762100302108259042289109093781346105680992537531489363253664518175355578194254906011350893900076287901031040628087555482010208781800609737196303172955830894960213819571304347149147025449784718404627012758310190627332842404531455360888672763593979607453404876285817467010151279155416126875637916284710735099270062560856258700321624337017529850193665594441250965354432771932604202236388726911302456369390172909309841754083034368225581549754394559074402332799449178789633617125003894805986194769928009919668697412149600578426691132064208551474030989099295030669305632038019767692460856014286141872448838802474475115597237162547656095032473602885938984928255120383409999981696815223439205442676447138458187918213808329461931819367994579639719719058617093984544988803683705498015093188508647496614868948564120922379748907587705297547354755385473844778385436240252183718592412657797931911352316826552825162079431731655137777008393386690019684843711817069480824866340962897190135785344586467961862233150149215667017287955382301476206456459036588147678430857262801996066796728359499118695578534598441398631372984545369948206227530623292736173929521497583751697259529238891960327067780504665420937725832616295495442674395018777258312295578445845713944414024880667281743842551553698356536809090664631652494110217344857050592449659655631210134837064694216269523277379681164010138289534612952567999405546143002554020933238459152937849782566056094458084930363756945416531712178134061916029507117681859305130395130792795976113355821078538605889125134002143676201207643176920449834015067588400409223964687583746467246300882594325345295619041092195962366170826226442946711895972690428947343859493243236389930292272840502125231820590864825049278336844537560500667078053530809042210669584680005535390974475441805272112759570385666984072262037269542456668393140301245658052363511423515572965504478366425913473279486318985975157921613111645600657741382274252207592784967453150168087134382093931992270932669603771649819501865061819096458294641126530010041926476902617988491445878977638679681395245759968588637409582463183398963565882390807381862270800086148325329008850471154452961903375431725252743624020636022608826294831347196282829708402417201519753143402767143146280477012579393287719829830022332763666700288968287423667475701371213886097828305555855727353723575462252335037651705840608260801913547858900861353084275118052050178081770461579554538058163638099304595622907199017107154347831990734756360949901790979768915545077352494682029122268164296690848973378198753609048042502060077768833745076552366859707160237330027031215474402657888261708608352986588584881495454451770939253683456437590753909629403372351770272583106867166685243655237162599576402204603117640863913881450973633850604389973768093150233505489273377562946892302623571467468755819529694756807754927676281823811564292925647303864428271704918808609215849604641580924656370355782139721579150772121221480024445038536336038624397773272584630160718036561457225556201135844087374090518376815283499367049538641154399941187151297751718711633941170035186575998549459491594835479384003459850553740059870295982861369243573304004425202774312439837769872818870990682208206274015078374496533760692779318271307196768479973435796473746383698519964274036250424508184640451849593120554687880755796885676551225845171478251243520997926942454111323458498048215613750823434558792744362804509318013632130611450136621858387087693352092268628842077333584203736595334096754893905783862967094834339687283604844817365685701023707392629979231540314669659768892793556046389053525739882813982421376081361887475954423883342099019915058746147325199978624886114832432163192564049248527099812827019857688359674923713165383937904201909517669225545599949811143012780850097674164347876658373036008952842770310362232646060816096910715837343011724222535301242606201707372017465642016550227913181291275652423279110992573930606872747581869548283744251787318898247129469207817260617170383792406337809856064441743361061446717319418718124953364447522335320857289875902359566581783047595536474908269832245157206478502906582080588423853227423212336010619453196211673486562062079826867061155715198775719036379489767035605287397375023484067962532205053880455389588046405994637467683078433197006790848228567644201343244446418290992813413044840290577811641352815298043030391391651652977685070281529438503634146902626540453401523356410314985417396966672781691325583675097759708979329783019957831967373049597550384541423951590021787026348715874214622259947169569375098074546034661517725240728975141426928817960802735388556034371925613188913307627567956471131256782470268743456027984776213087508390870889334260062470228079466771922616743597006401051780322589396453823815855604947810442383343869041167905510142836175764279276826800291612971208081518684448556480453980349569262818910866689946992267592328699033008515829177422619935501406371054826094818987520742454674485078633513258353010546422069767261458610376284296751211620413537610995770078857914252684838454956585270920064275481995069359772968433584001492923833320778419890992841312736064029054416661603417213510584419678125163734381937329683415502730783333663418156614719649821577034591917480465299779042277715103034723378930602400133708166833635192624090566897375727099510024957979683032271661993380631508453402521850255719417222605880957008339820403005778580791982816457572268679338945975279720334143188487420879400185376043945448485167598153353981715381612257416391366216342420441165231675210005068509371346642855059583513620819298671620594737231981969227678388662077015715854343046343654611769307333065466184520079486304799881352451362315983771938418567775414636184874101376530256561519181318205285282883395351344186968068145171329993575130613604711981282580854059843667834380550153184957230814613216168114946621502916842008200151676157088134329149621747251632554875068444103996182818043461699844432698178787625859591719237459466196945867530176507160769035990395778312237193430624386081783301889544422245969559716191959581299352934407439954534862472207683743117453080179237935194537433131554471142834845280504157641513244905762968943573410521123934661931806712616191323758439889329666623833054348536628229203677700869808698250271624499840356443259181022525557980491833709257008629139986836068639383301390901612728651887432178656169511980215785189395900306310459677102438307874482574912871650044740286226119066781091391186747962560592299480560430180180710993713790496563897551841827012416654821611955052613161038699607379613152619776978202067000752854866228005897152348310543211538268328782250439677831997899458012790945582209001653728000504509905731542649873222860379253061044741343157188518396088802410021026194228410392287337892956511968396374043364718333041619861255188973806435288085031016002017497587196777883751019403027306088316936732166882220172621291206074631877766326623544236693733585080597577253534670752329945577976489320037054975671522752402226243419329126863222527042307416766008495340893205969206589717127261407806703307047919353610858359851605650212447390347914355825231694202645590444012440545476539538441782401083959768729386613237231527472092156553410750447549664501482216954279245671806510785135571520289011175693471589564333982312544983983910354057428651125393697737841085164100894918804553545229359896377061772549252554286735897319843868838006039725686284741385825607237690739784909952000413926645584734740689644580823733103232889656975688735794602799782390732480382386949150891766528222151207592671850328422387379152583904013442266195555083878633821800302419098435245027992488372283612281228787665077232459470288355000188379581912915783881200561882373726341207130118140063773637025838224115671807677974781898475112829380336966452781895468328712304975044391746369646843381271423293810324007717030378153948140858156826774028508871914258694587951130054140737658793129771002374492506002413262221444116690833664041957363965275674840255796782738447683405937654931684762009935335618655092264384657752660834424373027835724310806691168209278218730891848370605962646483116958451255006783458856634475525156920911683600427934591299865035167612365673224395887499625780331337765400443596991186501329527471463623616733833472227054630403774143561220288143289304624681900188504126316633464914853469245706162420687326265302948843090779613166864036260296915389861026202026883921633691886000647573447233903237903287724514569448342043135390192444156215401907144371471789541363501569160604854618027263351153360885291139721945314005172337541464381812278853117564420037209838440368609488678654304534197112593526980036975197119442133086435251880406491543400849385210188204574027897799452877656243919149470884253812526071975785370954260502655867628110355088095911615039795901279869762877998530200668628313489967966804318866824451066729901398549875181405420373182000208759745711626479325996394789787449728162103496023185580470546946124300734611447667205173494519644987660839954827839547578632078363990605129872696088425318500173453081891386607064697788758312414610459172998354762161842192245164741635911079165258254275402942417174713038078313840902985977254935064403018435673894878392140084315328373165682726182131071620263372902993216968258241600718240307093201790633739451716113401271329095823007225976042425853785398496238300580036640063163734421560656124807914365004342799990021650244418480717117707379485025888639765796488060683191031986891064023732046956992702691811787094996737955480076558142923981361167470267856463047470560480271106294508939627340993461136054837064146057513014623329308508992223681681853847200233157708857106800984247973986118682462616966449651551861069883135518697811454258806847797054501168380455039657528228949210902325698717982481128865379718802240125164781301104338933759005393550278843885925510630773385658676152195732691629190017236818259665845287357438106371333971738185543863891955653626516255635898688412495926120678570931258891870344261764453673508265455296528803229165918270005552308747110139758438729010279378128861108130074616992336589911485562323428029165128825857428428324467118203006562818249481711431456662912141465349826528755224723592559759230089417546773090334615888435667889748719430905737016226430500124372751136194611291966719819296190844510968331938113135939436991306366960005301186798344832653123987451046273067223178573209789694053672402496711458020967809427030663928648473816106365461927295009870109106552884923740304575015349284389968037062052799599826944204828643472662655767010982766126356735782975851095087472352170297493526761116352808275097501442306182277306714812218044338125721591624803963319092198648651150225564838302970692565302334690850774757422019773630922873750847503677998071237801290179205145406720764961612599552989263834847094931260911330831956640101759830242963832857449110699413100429264769911235863508920976108111369428473708888832466983133492014857182239521631212985192501106815385396942097373675410065651769121080948914879500370299239765258732274351057009849134311678370102671802656455693230553915705511765231075755137843360300086023333350991061796366666568656830114072569946838335941811815486269258923142827133796693566010041837928637134903891094646322503969185247768213813626219894428943938625834407558069407373208115108274970586391725005658876266615449328425715790425211267222986814189140262285489166185559855776757572498320368292421463835448603739127342812153780125823416134223307627151246157599901668647255383714902818133958489525730507844424737449172881937425408267265149621571065921763068464845461854084338160778272151104055783233817113076059525691534989940474474469000082702222177534585457871863569198467626763139633641712092538061910250340034881256030738327389573251531555333509429139060039018830587775003056009647055576798095588052244645029206377132637587320570723714186855382277837378063755264783663552808687025080000507699071494385570208680499802037078454610791923019216934795557728679269420059574754241932503457529944335607836376372428872522493234143995196449590911034680317109193862821689660955116581876467046314681429729290855258757070463047547551926159093334495456728897147747310445859914494001067448401459637103221067360136612760470641373625922084241716461968198988465634975144091846296611880709248998025963330083454845076502360490842000251804173209031433779439765817530250880191308681222766712536873980255904147457012742016322545545150145497706367616326304124198683738778243533919543139879745674436273052028127117051912754702683662528241417982773646241152547948284435975183453868048438598010375739805816867653356361792488262102980102213927294738268453534319519428720089568323662573616617653199683758907619892902965237294428750184605615629316470024143614763024051412817838369172393047160163341548770458635660811970838070857632278279032429901680434077865019873454870612145101519584754542687212862299884749127529716496919140214502553038726267219227558560369092471007968140039228563310477075379342709499691661254985574009439964675607744278672248412852108282902635622856139566152776373994905561417078854070898140751369981790304096220654906183884950207569385276520477516950249875251676883438920168733142781414424767997031645292887384549560446851935968220374721286440347782975894628451352669986202726025211251568384388932517092937753208766128684510661014915279197374689633291211365063385264545110127789038591149461476940355893122597573154114310397223694071871023498912577604256641493959476384124920849905828563822803534218247471720786181773812575804049733204209611504835346724253118102109360595192125836684203779316432403329419006896020368085010510824174419426084779093469267074472350859738201201876521676664820781780621678107504150197824357337903599283309871665135695812288466892052015312788907158179537756619326385879857492481464769979015066388228711830180497908889527092533135559387312242652773305230157329078557301804946338690571615083558823111107836615882373285506930868664371517788736146093467128392365930629859804360046412077490556547359656143345778728859456040168821682532830984427279552398195280808782829196874730218894970017137636297287111692924638386956500548999763444998286980685108989901108547542215816191373403360132291502146279525885035874098186056739110922348852182379000078392591730887993716552727855788809908298586486558766150626328582178947078407863862107120832020137310277061782776751849570731044829427065666429702456726608517919620307317575252244786708851142290144834035865496590970980076519439225366669353146443434740020285426941775569754340647337146647763939037240099356846646308742116771048640143206727551977725272905112034047196584666717396157392986725797749385478118470051606639221698839318346122077561941817404880612477597786291255646945379347979787345692764595996357232296849342171525731069265447840442460973090813613341475805308755210497561423453338117801628951414199628704341748874776154873161868844894583126000022457771288807746664418264250612855768070008484007430376858451032353403532415725722185209201532051917823950021054765951015511459069760054190231336697508441168093131240133555478427100643904003892803320906338626741211798458294773877257811460171265220423747398886412311939830809636302851208748117687644606065924428528932414828685655171471765180569675855702450774407366976646567986316791727157593637038340995761041866173374301653769137087432467880777398529834538753476783346868310001492912311270620540327616800532661450863080800143393777152933524955613624825359974583263642397383863448340157455582851950594039528473488187123169426244150680029770483508647391215609051307470351790048981928074733725320819657029695347443406324713090619907083741092944068179213483719222019787934044171887932429034641090449383604330050798930566368301933108515398720333816042165862562912392695163714015395009895013319380424371650232807920402318755862201397350964653856636147544350674452421457369903545173269115091814974133083709221713584679811117368329817431293789680398305407169533673204599671648618151388511265921136334169580324767937951891488916037282091758740197806322442912268252915253839109822943417264938981992984409286568383157394069982522317915414628963639696707002557894709792969831081226701507739050281697321872419036231918851792352886081644179550800089392556530659596529171323407602677943458009387153648058799164535805822111084054695397283891280362906803628794883618175268972748308562692068471699004918105501292494420747052532225308796663978194012957870315696955076465187125656884977300940871588522140797086479931404574102528687641854172568017944315343571540491259008233389982181867584877481660627600490483335726095352826908838910066133391119250598255285850296260371888600371274770188456508757464143924590102971632252506147565481367716080162369370549393288650403238980148454102732862986594683615080966414954031765550196608811825344079762716281648355580427375263441449904036907197655446930871652675323228240129968852810451062497372613246959892044143642367644999450718451396302894055269829438350474565065893414766215998959028204857806254144135495250664574754060779151487949042701867522713652395774341533342669430443286988157675786665057640763279119498697376711203594036146713172019119194038951430128761517267644832299590826286239875841354815541905806456503741400998689942130500117628326940180912473262461020540358493001543011962884179680048833883388605691115625174828412190586945023963303169490425596452759646864072700675021766266906652862281328429595686573706362989879502617053726013776992636343331357877551019381419937870154686197226876147777222608097969773969489068490386869416612462882375150810605756557270451754356223701857931976182132334415672208758194985481751344289757545333512049821676123001186297754297335036115083622156705266862923633763920919520315937490602873138751882862407765056274594860895945887328330013440645491151571853143862382459544907452589473559994575762606827316070157222737687451003512421760591349742319292325027692068420300944863829991039339819326816842118799302868649751361874530119765591659724202191549620388407747322158723126148615803628336512899231175222202164225040774477501708818952249648641192860618626894949005146139420712888009975314858691188557033877133637683898967602235891785853872729393568112811215441072045452778205189291556763978377500147088666121844963514882140319132827402271662322847718990737715093954249650473970505274246892432697415209608708941245856620028962903029066803235349833372781831840743323951690171437595991329940126235566507224341341070485715402603614468466473435619228503238770366286093480222592003301586820771363584382661047856100861963595987783614179272085506161612420960636258590811851403057449789058297212100881653385231672599213032867512529840703002843966473639488824038870948423496358579446755713242380773008259778427503939152129974000114620857957311718398196492094119369786049628889044080297694924401572022944939536093287354649464495412533614264557171265468198004781856867922236593079037391102319671384316693531280643779768856447324667499903492837677256137011323911583426730914166906989806350017212902364946979317952525698310484374285943749873277071285153753901378914344982131301647849375895318783286860997440897230227112865838580357663056083139838676181172755170682154380871757475935604678867915829964177866964027420841026955944811092611588239221772634118099798380823436729474496155322511106141609216591038567848715713071277178151645571588244330819319386404151672984922188310121405921675280400115323745058877775417847151005040309297170914058014394443900737006983610937640319832855555483185105623109404779036295016727622063629852122773526653829797201779238416856171663632921484905474935761688156728853693666968572544835358485458071737842727709716877840628690302920943426226632186802287179785046543646883017868163467414308737641171080195261766776485455253070700469671030269227627106232923835434732995933371989878601113136246042211051119103582782968680859814855144746761492363087769379376802184319635516033171986173012328911189479527740785618862202315889130203378050492300346729218210695510146440280209662242853481638818903810307627234039335325714005343119925114891452563809306058878880506787347610946354494608142849947091099811523068141030768214433923661398563891965190468487482767648809573971491577641416928707496783321748842996093257223681202192022938532844154342142603023239722381747521043401997563318393255094656765495820997116130768136565135822302924981882727234137660662521995419519744641720482889812676748129147201242014420110742044112002687590002583628727849852744929258482866252151591935734946970528636857388339958054476048340531924088600752400486265057535011851663332032709682035284786688612182100595920978955725044793961026342553004543511697889229488020164369423671132050638581488692538406762022861228126608799282427090366580569514511775696101304310045820611599544598472013440137418046357603185344803905795169620202951690790891598278339231818786838294271636053259097399407722383453059049589317044470039446974166831472680666034677313836848202847538590413908538871540342833584576671242103955818089305631859659350901751271491328955537184331491320401587978338046817217747920929242489888027049386251417300802852924178524894195253481320112211128521610009862389365782806174186557390775236113815739940851623594699375163141436105937877189531822975322301922118235053190407193827704188555377242825920546295393811514848848143130344364676896863411879191119328750544907959387140493798786671188303823914360283457171552327951884345872211416922379138404548946260832713926042834876509893616471313777343855326952021976023525268581310467798732124287086914515623065245872636350597260719791312497875394249883003698864736795509547960080485741541724042275541536869290016446485634156474613425286512887254074189098684427416117852884867676600859078676157495989096824547740335951516576698701313796536464695798095752576205744245312237358039933121928907391468093306076832200930632969424632202758042739148103574588904907590808195616519371418761820249178677787861427266426076308961458925307497880916400546852141035896834111738045002260965942219248467561997092861377899233540303874959409509015117790767961408802316119135640082028246041421802376326338851592007432765965225146567718646228346195379124892139800931120693970284942432591221399397518044784402913371272640755658914580461625449588548466224686760230571525194853333575830203489622071069703465089929426465234424366004615363418221845907864916329519947401410892740439709079869375829578176919515923792041558165394089108948419694210890450628397671680697781549669832985823371732759296258950334623842404036833560822920529385667590616592232674175179299853057554655243165010028820293216831853904060282628221726357487334687788369687458670435551051035661308747600070636610647915512389327893172316650444162301255825900200294073828795112374625347427794560563032260688240852686369284853003423790012153562364135836493204693354485261297419387644679817502732902302636948352690229670101063741233804222854755993845885609216274175879651363215073123866521020336342174608453139948246161244291588285866698582281223441109355256427747992276130773442904508933305846864360565299755510215966452458661986227390267048676071183388855558910624228139218787424600329512449815476741999332608356584860057202522569548057797005634442251606385258964943988224201191836005204069510650127266268546822589412299089692195335857411867357121145101550008607756984875920783607919845058233099391219580727267628467180524047094398375916522843264645132786914357320963734362893133533001830979157782226806213246072415739121539452502316996418034883097696009256160477855403350895151394147128191610638800589646479095742670032407484739071065265649390413274851727836230942790453574493811284085962179139980509084650638637479439855160709393817526104286655807186014817498265574885935128529921424787625494513098567234436960329502723610134772011981527126196463597231810736160162921147684637039620559872321179182315441921153946499243704375266548848129953121946834872801435418632431635690208333944927012750592849449505508112212957639530460013153046002176957162445802597585224715164939604657905969678900447874432926778173656401821180217442842672533915020928571071439751564251694869246138687664220157423653957581149439611402328958192082920848646324509146610457733999541991224432114464717034441323502764693861755399066562684256979859634579620927476720943979374116343899089773456675337005433535668409085398121023274080846108894152548050011285471109693634520314788627122114914370332133932221388153051781900455326014033621715056640278489084045957897325837796401102992049419699739973742081702838078987846527211376692544089196304557215411746054262504954973031559838388709070744272981468633165938642519558039505553038312457361159721910420954864519962219700978147864481633300917142070327672232794493143486018552102878308139560152835760018855164293288363279197225726444803448961371126514675011876457089156942665837962277779520044982552829384130315362301653982356192064241332637495463516471565443461872580205786767108261177671758768584792159720896299428085552631226267424994369460398128627260552790883425392006332360412230988156086178508398227752168602838029524425859301311145058595172159525068216798108257331436551652195123115745384955987951267446757109770679530900232186695202778649533885289013479641315750654902838791260359148033196094612023391885241067172445039130025499343320221335484896469466251300311720121907443464565842264592421075972304169074063325512145738993748614349126029732977123725181188067929225693236966497961488570540260826657899690946907619487772798854592358418830431716882256969105788260087889982833698530406478194441007923391363657204842680718230728332187983940122964409852302958489320040363937965823005185620679629624713076177656813188835423532098967785202767434818091898683770881767834647792846236319837597386024678912341904985141291848592590743430676685500188661723710270420467008095520887171151963860700351151728549909585201654534325418788489397567769649426197435973438347511560920261102381678488700609747038613128521660282024005389643753323714892047157758055185570470844567520672355988808414556482461010131933889485945326994424128611644016348528644617111969733221269985063285576445702033718525583518742077673931952009872976623284647560053792296701607698079428390569686635807909555201849641849334770127555396416467705611873427810256994250267793152780346114115932764396251031791446670415011334992203864362826983832766048588596586300646952276125463472340959023986079221278612941497837213435402170506050088022916309553587086318375060990524472957176544314986139989635061389576138913336856302015220503952813214578901198536939134008222216661517568439865063500565848169228148941348788517610937930112972712703559624843090447437410193606380454450296684252212284874353648915207118394665713273808751132204672228571388915929380130728064031013073819545877017701912954396419308179247235443985381269893947220289975084620567091583791351577189177146332945151564609455540230609137397210978353344744608279216970797701187396476832391358402086783878807514468971104292931584722807426683480083610093068215225260423101592909322460009046902009580506601582579007931229093398382651780186792775980468134071000362007498890072725655502872942494516925749837920825671379297735811026959507965136658602444008288842974236069278517680730598161498518730198265213771123056111160956782811852510821997278242271735756479699114081310522746112755209384992729404959408664028307347889183348599895745588974520647467660148967458567393557194012657338758131748138811369392384800977459343684969021561233574830523992699793925113305800851639272895300091944269674071245133614837166338782447716271850092485302582835657246606771506669226631643239292130201433511983110570994091676574894529528329379352569015627305364091922893923905057151673848341112511011764337766647025353126636600254416385450823493624605706585282445800830885398549149489930361480202418735668709838666886684422736955993828965857519416708431991930973324302056029269858129847189131358456363801482860489713043702568167798699937529104312579310761247041916673485998426240223702198377829827390857884004077538130220207792926578855044620817010653417342468566766760528313077994540071405255967527045517332276378479553440287368952134593779424903069217087955886882029455258130580140850324231835464931941292806726852370003913826216651547473478454735044400287622716582811340571281946905865826687353174948010727888737691198175698965767351834658536549381129191832653831403742518884248844613914778767640777577303071223453722079127306088049056686377556636481401398654062396780274015540809863985612557085973391187781691378646803048674038805490605197247892574519305522700712052981542508101069785071096177840519193754247932561311575216851722387446437117962257154536754532710539385483808983078916508037387686655875801615562123940106645187681204123889811822745541720198704603686110445189593983834443988906927945154225253142081496316141114265081362860109106919458803740291266011466831395103061334879803001339646943867962035818283730096665769903163020661178910068236909482700344886939318029406647451219393232453157416035554830537086484617120038372496281523651526425380408680377626658648793738378797779866748187175922246116774356738310486026825378517153532719972901761095192128413855098866443510525283627537829905358278562392903659397022451418340708973165987137669461863548925414152192896462702925140545958876415934419813021838561040194062953562604671469191210061714390132533748661887790871213714642478918955734050987151187050322263625908848857844400255969165867224882198268225363471425475019596873663899538950777605971030646046247920649616776107255293886481667943614502893617531408642428009415824798304672086729509207279535263643504738459660862565754426526207580230547050793638221159181021320997958789794778148385350295479962020367635085285745596517734333081533484692847575305465607396289091793692199718647317767645354913073684810439510517605991575359028641568895700832472735640115415393797160848472330095559386744892491980929004135483737972539499982899833044579760748209849015364789272630153959344608002020210409379767876920300851535886401224432264524729527678858096866961689969535961991922123933402424987583384772087925791782765221088636806228691093690013747610893873159619034622040770079453587427126952507707908050300748105101862539017358944237064026434296212893874152877896390124834796104440842199882238882746407263166008562989175645085843495776004405470368997991696840630034580454005446103860062755995935181087708883767924675113566318364356373625650758651767152289545980065446795868991673534673366141599699509835358822159185616084642046367734152247709970903769854484008677479583630161824696415509656698365063171068575992062989079674209383667929100771231986507715446529548168920432768904601171595034081797511602305589251763569219099875353368640735136422303525621754218621758640880959795474630629097697940656600493946173056791748791524925013181931170819806928475030072280422711455078017221379607400239551188073599912421641018599379192746230526177010661666664030813099843205666043986151563261711986088174344528641932953398233428845900005332082963693682499134019171962626417482639933531439187263307886614011577797885744879711365002490513353551193540150375425611101720792855757645934935736146116898096673232071323416737337306376309269238878073174706484979821225172135371786312922750972812591191928084669473698062624761537329107300195167192241347324884385040892957981708259027108196166669390976594298544090930730586921374895718430885504095829600271803935407899607025069903836867924130002769672427293122163431679904693962613069459843667529249803328884790257345811678770568553058690789426891847684707552671482538712601405095714447599040583375072630109564224482062347528788921003731737133724061579246376168363059503655565183602379406040725776445343380064693607292599559500576680887595171509634557389806232385597359930109365167422662290723535215930120895164823329061142152078672952407248197279283476397779446265552297568925409695540494822358607431017739327159768809743755927691059286831915808273164671448549279347232090004354644688321379753070311374288943060257695382871864660144510338949242688764311955149567064099101476722448354280292862794801076758987066620359475494705739487831358252752757309395257439197775772853536395112590895449649283852168159032468578138986943869493281434412322362503052442012742274181448795148571011767760735135300735610472263038557396677678569243184687431904651892665915867190542940755671774568574339374044312391721606590765222200109642441303316730882623171281759330921259381362150771001180543621504087423986874990731551999093912120848134045967282787861587828520198331102284653773206148866165864583217688596574515111899265966430129718141763904809080646308217996151916470324796095805266973332387766653650476281807927241024510897704000393803902873285463630665446191081364405421199350072612105499860977276969390205548541275455386131776220245076444371125233271231459992456553665958854504508276247021422656961698913871678377165965420698516811181208806243663843067410583332552508918924142643316839287796080235691005469672507855859581584038494108886604810330687242242820140771826730671267911529286211636712679472392319805135693567585285485620382316423821870415770861497451905371827241906008346512460173538069358247512628898887076556057047595596605791176926277114800651570100354066541725421277245266308750552996385696655463462478381196210585219779265312614044702638561090765880680395501335273980481438631137951271503557941740055388409598546830637066511766864212078237756518421026240271990096470944288117622561117028891890232046532859040327056824891226996136497256785895582792050820276292121904026181597952295614552831032133411209318762755367845898888556451154669049631833397994923038754310973122864132653231641241546096104854786901715752514545639582749691565859190396054262688966364136375623620118687698289009309343615954805423409607762826186253665207721382872000622900745897282753870768961804137244347023433522210662748129615638962293297991054408747915380579628062316455184425710124330479310667265754875828350081530681043038302792574359072850894844925856623513765229220354143727193301072071396804437375558400365161316454255727222182769359920614839379963837761022354684102762860500383711999268122598487994164068278084272684854961411517887025670338265568024303912881856320373367382290058031464437391589106810303594303109908996665869999211059662234731217001051590541655740150459968186261259924824717656592399782922314108584077385574301814810027191247220248111540516027014680575368317578335275064352021027678489874833711365291462932255264992005932294428809582527880117140250557749430793336821849701694500610539064225307383752810510143814879768894889252319644326377762772487786901565114175175295619723338052039852474821033340372680057295528567600845303828237786281580772282543632897986966552609714305618455187407894457894194570857572471262637636428867590229954461658290506724668022584274020932484961427842777603372995304915089626218138216625492342462502258037254025301297365336823582105029274667048542922776927603305495898452924524454229801156730633684643257432965297001946224432644595364139912707268681190374250715266833524143545587458295987465305136290726903484825729632642781199965885147460408348237938477349897598769702226991887621820855722693009357629348263506099669878255048990085203052508122651990538691436357624885491366390206872019487339211988781269263455827700173818340292688976868333984783224946237273913716712961161495681358598804195367391942441540912900511506235012756257624411807958916213590740228724442155548177228111822241664980092502267238976562559396480705923988433079791478057251517463358673539136975488762008812575651997569807381958288324252802658550543306609933278434260755616985615188954820859555209762645097984246099101063361792235375119359029113307433949053648034092616701029743624490856723647085997758381850801664781386123465759791149467570131601719334460175558297898588047927579732703120889675129651915845340422793756442988328482994237169883260686337115660413062711235539430969398817444306829135130606478736923377401704408535505891776371357202800131580288630957875413647993315811786364548530344993080146083103667264866142775025326218603928493200855796544786462881814006116533642173630752047238008144480395783813065773457611422188417597543644962417996649263598583876403893323261342222182544658433096686859825744286168001593012177037207531520422254768786697412540691031666061835971984656874917203254517379893867945617175788258525339091656167718303937351413498717548209819182941503484189732425287134027329911353733516554284933314346959410286278967582891284108710843401572515196556250852062967696183218139487893091797307014890162516408478446481310653214124962051301552929382443585841140414816106062360226962259658804958251056462541524097092993190866357948772194087020760988309013848657643159776848569387964223741583094240270012828949777128735337772886279363264029274427391474878948326956199290723881588193434849650495728069291945147668444264624211694492950617836876685325422357370598907262762537407826152927951441728503983669787121347130429316436755451096190785686036911876158912995462202681288295886213547043534695727784559157337770656917944851584308230623134193138450388737937446200275699160570857713445450491917953872031810899756383722296252703462194146898604049065076497393573160624505472449520340341961465255769771772254418693964199238774944737994074889233994051702265363333755503627314459040191431346732274548439074027426910068080892261731956992286625029007472244266968266771588263625302767679858156183006244046234894895920163599991923923020647917280864742270756005023905401437280932025021858238742675680914188336272844235647405619426443538934799492071827177537422675120073279402426632144282239677974389483417193227359507390705228243941798724440066144913965979153848111495140488217323721329267409815730051027789981280731151352756322627831514927998686997622225622700911682772409417277063553750184746747499850443529972749580955453897777121496140036649287176387495095950582496192669326339883545867706098410249804394334033641210829479163045371804018201356502370738303289150563387624166899330285619037551019834751460152002017725639378563712523786727694858922849874225790293163256766802022604958731161091583085237997020961172419705192282990329822044132701430601331644570626618377685811876610435643173643664661680350759588824542641976740703023922091189777944292895022388145762518708193465193782552936945201795023999555841026283553347559862136407810128670776233798286846271226250480206473173358787465377235769814602517438072480899986890294017159455356741969193520870345910345237560720745419062942977102989733005665067093704975578502408293970713766468155572791645640502813018701019087191357129473950259402286275835960584762221783296416401041759034379345463340307059175602097915390764445703151937334075588721109302404567042092919277968429239884327580145718346538577936008967640416374711129894582832713458565701057674215437482676097793638562029577222120667918885855115320344863062477914607083514354377112722029081641633471062371768175224429894845129058380801824025413520699496252853804877010697795478130679238512240960569802638329752550318555456351256670497673644254845650834121711133374874469792301504807825600081337699432760473583490490842468686491485294302767642480211068050320762883540535011683992349831316213779925404673210307856049432748176424695004910793557360314402455623232443831678581881564335123217821208676829543813180872962302047034428332655664038992108828020836217547546891180620218160231297668854761954725882352137636100312156178590601187415052369254028768836037699613754773632982914698198366251756130356255704517053803492104211278886930092401024421130827243896831190977051412656261258550356172633052001994319109586847747993420875371726498868031236760497225607229473672193935872104097343714927489659441378918985451209555222635979060344365354018114510752038958570216603348714503357612368451368666480059631813344822444649230807553866066603883928963163610757183964777017026928251014487991431854935183608280152527439587364556456532149075121748275424456701791415600843539171195571934328252844219272140683690674609285221154127662442059496344423854696512400722423498421995694096834805618733270217123617693319778076696589141931213986242914270045612379374553062353451123420674806552474703554093614775476745875050718248692588580595134564406797450604260231231711506682569324116867487504211477638072362387108534977533019469011433213462626368379767636948371681017362358146308931429179698657707892194896927693704647620997733674636346834428850279263935253980382041012217951060147216934033934466113164727298948320534406886381917986341045126972414116504697517807789569962209670840329865724276009011961602260980929999486794771350930700446145632325161257818942794350528079735641028646592704253029990233576501201126515058556455350058440177381587517831067939736193185608842215470750432135661166100519640023990655684402317716160049506579880267429049041973418714973361654086046445270657187094268777832983796870788320287461034835416821030427815695350309064230598388459857835283136366463867815943717847687307929367033052786985221281095307105883822453235580007538281449202770396479411107105886832253555995425439026983748323823366022656362994654262911675124805848756024200585267599176703184009097618494637518379636734932684516493340155195958826871363968853305343486628108556892004957831517810048812600977711838581411873480048869090242755172078973358031725364568329279319427775486325573093548966672009034379375125740941295873428048227538252054418287373980269433633678002991970909204284920447378266817301173791650385973639334444547492906319924252710577618287132802987456717664367012609818547690874322426941092547592356253914668278424930960988423998636096741813056980841695746360235162915304391998706713724256101694262837810420700746722514573859801807057215571321246514469865438456094100250218419330593002013301630707335389057142212156368467495276467757584765570776440571117216903890906492540890611295056331204266692099694708893437442026349226490792460415019023851718708786064134572869000011251310808509715221393313604004859217316567587010168816445940685507593085045155412138738896856983334732434096687749946548767180254026779783453194977274562335926034093963732609778570395414664343413505346439037609085722779891365225221743426667823185130832771382637618296286984443106419991204743190125757827307335392610175413333617178868625421717050051478660509142803914399808690041042156185796836979337099090827191905556752572534831538700305703558031376273011698149564040571107896707094045097537218169966144286874873936419137362402314765860924366516657112852606701071944068444021219041392942608922440831611949457616308783255596331613565120441574503595496767422352180892143677431581900104909604154928313201739977499949798682462500250145591984429321299275093023734948510303791639534853789107529987839971537169060839929817656087226763008654077757284762040693913806059340722280634800387354753223296425126980631991858044933712848766418996986233428548809870102424111793285560448776952841128398956916256301487461291073286706132989900457027729673652380060573796316195742244091770362245642278414417501338544723551148025474235740941551510822084503905262095463741527529279533562281332517194477935601750509884392533102214648126435608709638320697295395161702465090530189771856127727966653357910689861157945869699482929116743772765831165876512265459115292958821264114136766878412213199479462763434872646476895213012858202894882511723485683546478841794805490167152782933088647653956411896768632743473995782395762356593845077832364054595475059773957061622903133927594444282404931729782257799410226049318944617468127590456452986822512688819486618876630529339412831113283029314738793095127302896802694875491309593256525933006507664169769000639965863914512091533904167783828821883220353873246114727015772884196983425398906252043209497188813712791660379291021310253142447967741229820278721544865096921601214680961338822735572498180888423336887795402138309000077896131722164625258742820009005594390299312419866153898250130478324134495961520725130697367662302776275062492949063530342987227691565680422227642612886592301199811562751980366854250982283390365784231231797080236760083513252726856416845193992996205864170062749315926418666356835103530278740547612569186687652617392795205766608496436910894545848313152660797138865119063210204248015475477491670986674970266861659089547862654876095489105096804018299998898075853972147790572527213847950797259429908210628241153090434335950744940137731026657583093174467729399570873278771516199685135149543139113596104269038534314320278992983954513201982823319517258992524600953437500007949978028258364422551827559263614520226051625829560138565845148299195431884624935285625806604489202580136791458538116397869139528380437465384023413086300247955344017613675580030139866553044423706360585355190961930195189364553823337455756668627991285267739913150677704869206554384847413052339570721544714207433360273431357383975817088747595119452496915077706285141761213107823426394917528226072490309988979149362070912724432816215017438616645242317105338378433977302998795129058991702195800893818445313085776359312368596831955530955246819491770027817933251723865784250356961800957456558330137942996980725321408376925790147875675261977291545388644020967332903753133645413906084036707371477654253084412151838228724763318902665052005468998164471606687598371283254504960372624464239412484734774653393479399643291929120119228922289554878778281080611290713624830617261696647406031958670196868104295383273771118310637173354840389707994955542438349872692476425407024145299714717170715857482174128182681873762685768945618383686038484052524195953596963754490644135101410088311280275876910491199729527307272195197033358981783227072111847521561442309143586216838951763381243146320141350153512087800414343166482837832706834114043576802682605517610227663862215714733266597703774576156365149755713910980979987691287976079839190593454041172545967764978217262930921352941771057637888189717111105339900812420095400018701751382958860574932364481389104489858975165321573831540701931501482568037447656608661251838128015454544901781511876358571894747575989736952148847362183457698677976653528619657898359794560610671606712863717746016717332278564575079217474777495793852291694069846771336389823978898371756901387873384180544017655926816393496364622153727408948073532415572816980990931754980476531104777504024172172553825760979759895012447331489277977555693250856828322756852790169029401692845437271428166898721529568344556927204149775598533394613424342253046129182425129283349206789900270761006692689423327058360712356495837517435219197140367230446195893618980718097665106677455032989300585103332514649522407651092389606938046215253556870956420289564744405484734584193363020230539132297948478860214277608636694171061022439422939644137081357624731722510630589993325169001850042444854173956252940897849385506181753581680312141356182457244734005883650326651105048113727602150361672676494837934338628244462158612485611784389426503064513085098081044569250947914427618815132219232254348391398858057027230046921597864131021384099321299165867411549271720560143817199191434055734988457455028212055995162928327522625479047817165582261750502553959980421310389791852960116877727762375182723591082100766507942251541618835372979875103528753626595754181560749082408495273499761548319024174395347825231997641133709096371965302858985053148586131440675092287831360506316162957715040077511482088283008752612400931076044389385900006842461997625711518253441071715268454955333770098208264804550771086034040635866153406541524103947577261376502608929100290337213264464671360748228887184005647809877194878915270235193360904428742883302185357887957029385074726064642939645425904574920278685686881617458066261133032653653303040961850760796089860013619018489123382243539355680013043723564343652348909253032549981282417657766342059592017637056815678929207040240368681520726921953354630537663687640667179651645769675577698764143196386543141540114959362280954329242914314581318088330616467259738408309013825638378043934749573150060434411292173589460714446661612618154982940140001994193695293565065413382619236235309831954047672742260628286397730388287403429378269326106477661235785314974348709505231084814805784582777070192624183039622548661374781939935227614194393362290237709976691576420502952715383341222046736747586821612287783537380237339700245453704398727433285272597321364929638824857465499622925289302084942140697242981343853352238783029684572408296231143769691002485042060073442690257014523698688550861828202642066650299690319466495034853096106661993440926133724242196752135169638395685168602772511545213319262457187522387569668711053799089043884856845544131976646090141061928906349655213106270272420547082806619292754568084192536309803786785275544029907538170783354457795579072005420135105141163498876974672610997835236989563741117637619781026621609414704310916136044590222886383061468540142099256939102068800210495308613607023027038216239593272964713969284805437746896033180070343056072629077006050159459254904840909402137938761839269331147199743467718443737882079352465665628208315476554672906440615865455359739471151251774604493456104476453763806479666222473679405783683201486623037557011649420336049936668091395415934137220125918743652865265675916817124811162361656741966356158554379910699382905040930139033727171901898027111912849946701748380705304446458450552661739747329792298772501942562802387144301898797225686012289461213181982208115363377433617491784462018917456052993921408674324342059117495704393770213766457320689590445734428968796449001993117342815524522942594698176225912945642151818396500649088145057287430119097088688453700084236746800508934633165828053226721704605952064851563728821611818263217479775703637105579319586563939662234499581551995034384158222153268059621310994045284627035202210674737756082735717435831398129538239063775827234701646842435323449983586304566846025733071249676557982408766411980667645482089161924989843670293096693517978136840774429786476507125389585914054451939833130249110428489331186471133964037985684823030954019716516670758206811260072892764608329443366209968617377934457630367335297218891566739816553837019734099491915462025888383453679365303077551538895393328317706817950867676960242306143735170705615770530361258409626687617808762233330660467048134081819556284666122480143019204015325878103960353778246116478500238470023636401875900359914155347260544047048526438114491011536632688821581344211218201206779084308821230039461184185314363324031511862814854703104667178448560733517377392304754360004927165050074448935110464308135913155544480236358363937328010584818065586639889679276823507561084915930802130132304092676850239542018044548822973920086241286025246633331063404734882094393036439205854082571109714679909592233121822679637063711415327747407486614673683424948124096499049525995290900499448758135867793493875982271825172208508487839867521311971412546458873540232308231980248119081319532693016360381729103709955142905068086134387167467891132374237569745920206904134733724124916681469020510905855907598883753061093826664609794009310429101941939398992190109832619756040813066460296841887579526606874705982521190992987652685567700307512182407138122440076688702894790792250392118038771179716588747689722213057166083715023505441089024336286854213607530833363863187871745384857071649222239871343221632477414520741617400668160823589227129606234731164337869846242469294703501654455119051842438401329794368898815162708203766727139504459778102577992901076429800226046955308802404133437067458577414369331841603683331235436000232732177737460722008366919384764079508738525414821912333960203184925913383881244167899729052493559925380583938351550003928732152351408593348464237507749089666001815146846945497364707186657171066841055027285081943457222639816732218096990656306042705030425121181024551846862949560352883411489452289551415871408695135607157044182132836282308119762636045431724330490731304948635166222368696271232493624666906374871963992476343961793478280004492889666225723087678311424067017098230536229147160009075430565449377618180859249665708973641813823155102464179294631800167966139789563994096544559159098719853502575563757205653109382491299144475375992349281008519312456344779161721200769639343540017820708044839246006144448712437676607291151801701483940367060575777301420341533103648791403235896140056440738831687129401851377295887350423173166760823906299049441827328974381942599799056209611680909559240214618022232016697372983583762588250894044302474160189091392044247856562530655017916672820304886005029231849612578985663927368374528146167538366351664561259088696244486975999609892885088660334769022616660125292094979677275746296759064037199190861088065411585988294450021868594815681120360062394474050644929949910847870117350362432218847869351337314718193291997805699749345679850741078568171090131387816929144067762851487091664535311711827048964393912115992916344276619452835430479954788499749121151425953114350761753678979753211667299514242795603225971035000744911653234959718704487786089047250853067247795616443367617278762911230272084727866613405170421734967629115740477021651011687157848250512230899793042831115267811410214245033861581534186827877138552360126457252995373274709512026272252707308341571705039724284165631633065296127138070880006614212834977366626819652341221373072881236869499137336668480579398099321222576816034517004777319671035847830406448036631191926883816103313322819361360649115362502616358736570515690622690097497914630695801765320271856390618421694210522475750615907341750234160029232962435865184081280311173393072988606437897430007036192813988632451116925403930920757523737868167292788432601460282369790923723781941084679236677975820193796652378966877521703090725623135812162891049161665340489223840316758996812387035938809860913680555003575791740077884937287555153187960212348172428286358423226771004358527723697314555837282128026724289217608798196339447735527019107212018395785155540943521712124386210459291783705056275934669581743024154824460811414270532550975803087034372929740872748548177948845554619731252098410087456046359631739098690653719199582129540955194596663798642777593530677659617947654037181726554245835048919382996684510814300924958920054999552855649090910873789919317803160604165887922217975543915971023507336563327878653849569315061602445010511597095475731730418133328858604187936016151655291019536672870728282603487979852251313855190704998549546009096153634481028379784428175216707606308529882094520318387488726076169634045270169408521391689627034071238060583967021548449141057758609835529197878984588815627843470863453716412489496180997593615683623706377713664003887220659590356867192269372303649977817000240112685078601084366554548481366534731034002176940603777375336167518286480981062729016220806981013761010016927030439813053416029397506543226085972637804286705554176036767489682076393092769368074262151086153787496830558237808492615335927197364876828300782226597858715143976836451594104016337934261031595607910096282128199534961496908159559863890861754597675649823050062780611844425189124729772754015729585674470462922970128257801450748348253874090206032762508132174704711478778128341377889728282853295992750943791974328663178436863306147390084721352308948163392702292571894898378680268390833729618939200628616937420312067898435595833081111221659234467893360825605318890427477981636538111783282374726875478719080353128677223232452687253136013482149013506378603986095080668499693890763757975733052459565967870308156375522488990590679135451110265295912512495345523633979383749329291691425048330333466191102755005677550598504259882177502981515416360200328750725448043998593366169878984471268520315744612362569826239284163958854162779566906200574665060747917011781699243020180096752461592932215626517673548075212324665351094903001202054083494722563633216883919985348973870446203788343483503216771875432377894173465893675956082367593298885283754880973380358710105056247030496964995762769421556215702282723733638795776024282217612395928355652553059009237760475798567991995123893818794323293791016273436288046235026753208744976768400490097891817945689972490647589626343861832722788832916777006527013811592352896328077169444384809849793627366159092879594408206531066421852591590845879927232456959999291410221687538956474247684337374058685495095719393557652788206376707387276575348497489393797750238427640864562032777258783173905819931601272237920235752208489240223240901637893535212513989421159954405357791406554670870937789008835010972391985372316349873423264761421815314700850541901278608033600225633815280222914779348599305000331079639120783390933155606466063114238877917127739204647821898235964134351928624831058435813770040092654519093632102163152822800496383967690105896459538522543746109213097380643233679785615027739944469196909060825675029987385429902142710376758381506268537778774001882506009849646747832316437004253778221772534204720742395423632552132009215468313574309681620791724275199412133100180130809440611601513529928720404384507772197908010212077442543802175101609389566444646970799027892853257136625370391218263613635191410654904949106754473129711863339564089616449976012673302313152209650692552484049908729450856258929963002219532171693503779522081834278424770458745853939684205787832175031716750106523875823013389022936537669869182088158577347048041721753708823847348145271062845620829892921105055516662646971340509417166499705071026323919735085080377104302804343700205620087917770856944161565885112826199192302560526533991532186530897898826019812716857726597746049236767962960273349104667311234298565426343969902816411589961825174293161162437167188373113000493014425364506998549312024707422122959457769314172102434058286458740539512098233206608198298498366539428801165350504483229316982139742147243840383843760707155320826962980832347398141894921843178403057925806992674456842317816013915745413389520315568031373152916823414169604746257785605311733364770067256972276513762849340997613382527404427465253668654314728086826876271828621473057227109905098875197205791229398613100935484568316748554312193666784628848443675341477269121037439058643559589817726335590170913648511942150236990448157933451702578403684301145154814170704507413098388790623977726460844897542868553522757374903150634622753385220950753478785728384294320080171775057902420377074273073893984776139481887933350904887696838884964457729664100172387562249829614912030472835016567974429885483165621170773738087545899600294306627840694236022101697268561877043694888572535767363935273899501679023297151680667307043127028900586321074469777503663356279159522336578120947370638142945694612441983259281679322587784850534030306786255186583847298718573974061918142399072194387677615228080667222241999204757350908701752104002609775570677368492830906825267820807927926003414935558739957446965221408446492254104380065100315310983874356959929264362907934617079407601029131052555643820023359779266758682213158149856739369650149541638106766471830193573015348606661716188459202992925189715816889350803457742036084124436716789638640172891977005837016938872899789660439265981490477318437027499110120755489698596874219720249962080973781046274049027792922699891758703576099182369878236692129066080143736492830162181777939592074772219008042929175856645322741968771622250504458486772026216840021600464647181522239211413830452926538858110397343283504841944312244761851274549049533451823877603403890272464062851348927652050716635260988256334450575013336019091550962492899070296612998685059430760083805564654103029124451245721371063199624902304618541646350633314753501100901878577932818243578217573483337000410490925512799960021734989630342275820809695778922918206748207099243705968301703348702687187210222298037360557858966893433161166011943211211799662970188724900498415118607722701592951416748537201276238855307997555404083359070520444582523524293323917521055660291101550589009013927240474993640505182923082145444530879691597182492038704561637931607966692000640425154025013121239154261101711046878271183032617812328289118909162338440776676712459711041594768095892642765228263007777544197799839606980232801015470259885265032208444874527635759092757015364316853612630967756208484794035012421976674500841251297859173477506547660568306442426885611775257701962359106645209741349881043359332269713790171705008636972509154395833463396769171304655371360368725929950683118109798334275594654399429505054751209098104080161211968085188409091018233991760634784556363779439723556643218392588122763621736232897196110706232749057941527759557337831722229424331076779626569785444992488731001452934258284541657796212001804628809732070103442628850616300433251861334450347281904190971082569987840792877180829374707204160356607859773861465236237498130351981700585895388214348916948493548924129871742142922882327879757281207444318497500573631587401744803239998990480069805852315653744237373684818208407132577549436696312459470357839291134692231208289090020187101414727932493413976566995094833687605785340361184673315387202682302752755016492504774784507626455242746802493352208943453114843868296645813485334930240322311733020892318300677374630470266972227898276784306590662772274457143914843899604416012401305054936099614236801654361050097523912437170245900715050589720520448985176423223711884674205160122732072040059256697024996337257497545270744587996023015247499393399480633741366022160832414259874037437778104893204667867937448641755037535479638488683197013478080012191163612945027157009010216400215042504067918353559574788174361311986472550930994820825616744499193647288163547479469011998837722554915927634243724864468690954362859309465133557013462475120496004341323092989466933436818641426673172910363642265524699205014327437134287872901062926371883772002849061122066686190351302190653220404297842196388228223659330956094501379139407099639016927166256709127640376380753080774461377640228357665822254225615999861902584750346010336343785197743464827816249693856715692725547833492661733384749433434638023542372095157238824263026437801641140613324246867231388487964321200141252731571768182770723378948388350871335836573543937098913441081466731804296508462147598109899915496460317858370687271581304104865842958856217818578917493546258118255601405046617982233322204535854851878804972566752074614007342980663126793126795353830581897901005015384765695118201560558221961012034400067382520145823760886404280684372614028952705930547326530174400028738961130311095712598528510183739820160006719286041288261135471130616080819257963682811697809146361802535956281931242994835364456392290450364052345985061975862550314934760564904257389896000709410098633673323426674123109275777255723420422822968991947959522469441904604693217125223993206052592011856026224805316701819341916193950766530264744419346583695698270525550241392418800103768923276536695514756280974355992400200668032171103812965674737905120010163472112171801519640223130508069578591010957947492664451071068275201436548394139791040377308857315195122094725243811799428344756804342882129144527565901475884011865748059876527183035770746565844905457670589464328053756092124431567426129040385278999703522411411338315940693938304302737107875400328867118571023676864746147390571707680736600627481034600296761360995371100423485580198557502493204381838561820758768341231588258298872238262203643301883663636773273521781047866222574327921354798008610939907863575470176271042004868808132904986299389222403764080625382263958280572913528244857801308196095473850620894630377810850328483563608187396968275762389047781764266863043186964969896170856997866560223979588860105952910582220186812471428155061562522561971953504932097531979471380552089826812800416882759173928349645057750325876553950038459496803760208049247664108171870870354191489898233296791834536161819028614283190475293482936263609036140773268989545555044112679378615994066843002536115490852427166049308154286010750541351351744468986843516369144926038782958482383443446440751839234120017426609031726349800042788021054394823293871440708042623617827260905064082738424745553087552013718958765580015349029028617907370854033233441396631554775223485481348533814140467201324004972691456167900014940276135278407289598400794321646739597983197493824405114430611395320547036915552244461727820235876873162119329367931471005739459985783837685581510093534592857707693333466724730199117938879870845114053645668267306640698038858590472485341666534486634202912103285737660216274258062271289730626156214680311754499415618521889348332335877648990922172081980384162369936916453070851267527018027980998505984257266137641960515024259967264701857160830369502203701822475317783303865002574465307911804446171184955989247117034476947641248320364292783122670819282267749248109104024129077263887003304089533936834110193006533516821136949178648326653595787186962836093856947408934036160734097599475337080462704838730857286006782101080323064301066969942953127041211953992169285286646259483540824055546618786948087482768778770080409451584175510347761819083438709378296353901115557967301739914652288199738869502432760652461092378389556931444509259450030789512246949254949261033328313029940821289200541970329794721773676473221204190998689613881062663650497494454386321930982313794408750401625362848403032100319234992475549601275721438484147533020700999165646456172389222544093597625201819845784134408402490257385053280098157485660970056163227516582595463239434182557755321868889180179263244322901843668756431401582395672006965690522304588029930162032947837342243952283581152970942609525115344770448377802703170745242889525089110237826149216144232120215484690820933831506540029294060229693023920989853121917879800557825106641040663163894878437724965165902323153123866447613724144483345548870515939291642743849803876661613668310309947059459187615001129093826393304268784323534168890404234596319173726779190984030989110178452728186947365835764902605517174135340247227493086853435167701418661906740044113264459886231462017641431817018938238186815404952269972858872808956566658386931569839620109279756074820130390870821734411882395442564727625217556381801377491327647030415726923657706636944971433877869356138324689265963579593070928192536975813913041596171509035794626912316855468329313092219551474123294159737615269318236913107725154158912210904957170487885356727403152013180253760454913424567782238020190966426953208492870637234454907775442437884363523138982125956604190599532593942311619438600584515196355677616633983370885133854069109101005432080357704183446594680638274654465232796787367960939749774852043087923653328912330554389962993871381475173322385998699464308051804935386126713037977360584381900465555512239387028392384056931571490555670205136354164911997942748193802836996953126654481130500803920399261442674973457266601764695591998009013207984827024339501246468208692449230744174992282316594621996769760841405374414387575938563010601351096686017871478169588121406803283928923090056894779679772585987979991216836709302272338472075378379671587503179477713340968487637189356601225158757805355993782768157937823508680924172749597510507424408668291907056242092385153859366591614873297968562392624257160941794951922118507114430843067240902553193692575173857200002099828292506098903291754679129046481181499602310782993241803539292445017402318168985110463483131784760618250093693092614521360083427501735745997324917912598693157418288613760322690146997313072528781651881115278489980627830597036297664507082766191003096460850091870334804162839756373043795547470311465165867818091051903279788490267212577105724562188879717318489248680493167031267985652136927058295834057025331298860989778212279983015310951620702583404750361871418462923531315849558740347806734818241943147568466639218393297817564076534093152032308142521941089338007098800448741826939270992478582957970836716539779194713432294791879788172408959904067909913419982414034703847493940612606879139165384621871394805697862181976747599668967533313661889658279991416275157231690543041287783829327209423796052884755499633201693651839817731587107963857688056853254066404685246086578620660677601670816076093000868198590423613472235348668524809899852427626714965355448061392781756559221759398944850150803000789205992085447452175943291379974481804891874844112651044379179218276596467703950840568670842920375025211582855849732670026302459313106840021591552025717479736033698822353313644714573602663863416596426908862782488906348853238004363904443660677314755185051173253749423246104027383957947277263604486130162090205794724966020275464370705211697800783239215093710212848382695277315390408606145387242809068580912973889359327694953609381154041068722574273614448096485709070472381055642260693425376446245345308666067989997835423766981121470803400431744421617831428680324894517843339709576024663213120955409733276457537170579497184683416514732074249784960886792464928472968320552684408723013715324146310616081728198028199888719335708855613820908217849507813987509764166025165858921967690555289503512907856141962341703727318220405173926725006264498588342870088724502299016480275273497631513760035794068378051934705723150862685449341550907580230621554319612369482649906958278501886069109604422893720563202174303222287987574067771126170577982488402509043552935371802610835327556978846587178080348826563796300971868722802028015716166940612496336601772950854104540840052094724286707611626229153617809508174707793364613179736618032298854978751154123419758775207151501692501917567292255251095383772931127779196540970270691255062927698796483176700640659192235198037568583953422016352616714083204340837325469631525334145455407557573857074581354989741342356808246227604356013044527634935653779728118677449157819699330704920023871346054079292647328811781795245112420412107578561825276185329622784243094969716350320227909396221198302512298422685773926670903089618871616554402343132066628487131858443289237843877681657286981827035179115214149042734919403805967937966452689985723788074509533393904809744509675929259064033919872980352724425905803676372794194594169657565641034788833162478498374210983938225273833510319276166121484130697405431709791630837500200292875538717592516025913152504791252887708199698168195581803956333285937507624792421574899457209694395536339669745668263703459537416273882780142011608234035312898038123090314629763544096108559555563815693628273725573595056962916252516666050793993643810082145326412029072590294002311426067122594220518962423251923119442128199575934651457962230698110605511952858416798610254843428012731273317434903589923113872663739558432389487220817439187390029677405467105086118106534250970431713892249250209105125765486069038925438905610316659506616672927479789701890522386069228431659236730779142279682681893957673715568273938978701525026981334653726732084333406812779882134820563225369741288791197682789136957032529848175736112464813584799987936092473654486493213761178059501889910668486691313002492659156114396814407917860470478991044229783973279315859796845980448040297101983868417190415645311336424707420355247575726000914476726931113531759475556517536177808462467697079241355159995365497492413060311897138754526570845424769694780808570350206782692233462349851207971875160584191419852659985372894891785308448903271767772978585629801212507078537983399417988624232625166278422230935215300176976006377016262508115266807486245687471729832036155923657054282597048767173984106886599740266406906550041210240849541087162701896852191251407404523204880203066189580117950891657360654676567641911056657300501790951579408238174985834708546783490451950489867828877070030882062015458044099851940165291774998415638866379049970327201212857901534354239100383082713823894896345944731634390315418298855654271646772431046075876281345437822867962256503848805227149244089663464906977909433839786406337653115765155654280830230948539843294413694697328673748681657349146982963959412341273560699965860132202966402115463289958602091705450466779974943364594200045245141839685871768387348988131728841785036513809916880514349799151100356611603150412427772501414771664817200754974391622892626956505501099074170606666586617851974906462418895589600966038428840611322798280480053373876904396512740292105548690274624914533432778995713826569426312031938675936822261694728077327197084236691912155386033745872085250984014825648789150057991480686350575772548005282671648651527644020586664486317432494401535777365622712938922959897069931596722645950927444031724998959016480708309922499480006184978038138548433164882889685537006229257989392378296536361401214196996354201241316351803984703688799898766425613981359242484539608743955784500002601064686300884324014788230097582038781639231232586931230739411801780375547243773164767437230304375869778472967354944328289616161293744317974122394112537747030159733607020159325244605796060349954121271489937159540358342093148577525109051491082857732651461456235893985814253358720778054907324056684726736669805745087399385454321968528836609851720321924258690812699805220170339715790977459554192119087645441367030184350500454142620376569975342721141274222191903629975665538959737688334034202456820661036925475596489403268378273548808385424951098874690958740817758771885170824429912570583923697204286983039306664670172161714011200179895917609158022808376201534156448828171855820356781170852984648575520304216240627183669831964077043117851739184950931164270786930191539730460908317944084623801736785836941708029856740066827598328501085931291849611085014519823552204987129607480034260317557619432535292045210911754831052910186239555909031562261964277529255279614634846353801692216693768040301977959623358469383361317022762756093841712057874881879320718872695297968515693640347232385039551075847512096946805961599722345458646410526875009417760503717302455292588605353739126671311003549754699395468834471865551843514808110709120883975475230100537084468841079119308042167845596337320810900113974260901948470574503663175787779706733140178227469820442466569556998757452855569246357176184522919452113910184117757877465172646622523538780551917956965460317281411228217531156215778777670114768914484155644209731805689766854121314073296533139844588498585467598801106814366806655221108255171800623504697239739721626680118841729903508610262227368731085609868012973798800702262407364417263795902482317738521340649577001781583949080407474366334636643983112964502853029033244966626879904459578172011159909996194727931026523873935383736244850295984939917416052738823911004587378708727066097175710274457003036123457559248080354394593960314033495528604094674829859865444613923088313300195057367412189912920311257365971837827928859971826783262784420694601700953911113884113228083158860034583522853505512128023576852879493006248563149784490889339110412462605950537235810367128429923621426397830452330124769336544530605391847019638444169666100347558623751889393762915451260771017649169667817077661760369818116178214391482932416203168905877625645205787362646540413123868640803840012780140098505484198755097449239207734584772797612905952854779382875348394236917289840854192853022394258320668683970279987078268449224085157425190134452343080480981312797491039516775008966505356038838516890084169696753098060605892076614101853613678797445110785626561359230724162582760735387280718791124666263801865288478572082967017574809582832538448733305961433932753322098108819342016952485143473837922717265323402891827923236998132978721737408791994772154627824279713854058577007253598655131877931650066976451374206334383593215226413095036353466842835451729480935465895486056365395798865719863159030685434226815280305879030585764240402303666359473240851070872845588257582155591034319253105913786484942689433567157937236214191591690678624438601940605321160343285144670998508023589646394690948052160200070014183011190359680249968332450576624210006826249598096232051508521266238174905628151173827584415734276629080676601382269515313006542207727454955614937214345227567446585267383901909238749145456441565836009737569816627216645772415133295667452449888668953271514051101453086248487910720071417972064209095631588087400159071435076012099052259578887451629610397238044672721191820472862252465061761690098335160952782129647736703947398118547067880350266376748012176303127608448954267758840952683339712202394467570176479594774078991994745398943441386687056298939129205262347703282028871860700619278278460470275611222598269677755657315185989405548555536821816447033488671428444358004397235300673026737756915577979193447943581169505539720155007980088203644069378483382109403410911437312437394837112484309010289138719678636551185954620366850916868634555810913263769290315356772173086049367129961875682050378405099004858492489184576587877729673220572273191370888524336329662840478473214365427746966389343989787600903332495682737588478899497277817782717521561084722255842052756504048109896279213895590525370757928983675790810715465291745201122503327941962839704390997577554320416238952067848671056507342032365000074697428949959209073879209731505651372702508987270720072029013886063065964197128182284458841644469755907892119343407414159394326463745850880007782980034078408517732274365746574322032270645207853825762015213821596131142898088972196780366484779949525676312547149943432873868622319410896813432835057201930324397568640761643645478863194613304873371692269780633208871877192595954829789057495566730781608603443636928206975396710718430203849687302407688780064317963835364140442486236072811832033606877919258279611977985695708238369865967976410644106378305594312797979288790792052528305716503339057156426602916340772098321401429084983294751253683508786774478815615832873710383917525819787035600152223740876159889628256369878282874407641335974319915535308924666152739372787955364018229202163907441924565894229927440146803226608586821843871723428297276574806258893464777848653528423804431323563087385495460892688076237092560279299671652504015918980195642646531381710656000218162655971885868441894145092673768330646242634170021237401342992156052367005581532984058060137627538807259566793264723340593954082401299314775504925646793582541954255642480897228634133305947256722604028858037994838074591400512855244045642869985832709388396615505095505752784731100484557764119013980935331125706092565711938922543484686909174333580616690901723928299413026903614672951688384271306142458293516671379425367631728307885008691918279824047633708898007967019868260621335037832765455583150156095422135687166538649597669900069959475395849132176080463280065462006695941679560872146694638531104340263698874894169901302831881152565036906237031690540043555219433048714669089508248310331961133225368041066029733881344672950280246252257341523620796401006572624632791285821765157216517987929514420655165526352874728631130110809319300541387816166368723700846020675478027609665955296111073639667071765660035919839065525738783482552925246573168985071753854210104884837024378948321166536979320648813320185307719094504970468995856832907715845691575744856783107652078588566566513906728829034246897349479579177476079363515767882884781338741778681215963829100435001173127430874782185193766207544310612044544563748717484465700932640482143606986715160379816638585104559284396367445653812940124706352615527607761120634819899040632255236734810130068151412054497713897845833135134943735205543603960472276772371544558398779669815343446364803553467141744632289560140770235096351143897688784255367251397838507953667329869664264640929161226853152714646480829625361880038617329208978449243366472506103231496105836366820848950367552297267191895506204917962070826387836174950232978182070057708818998785850862731588579244977444667204964895744697504861108777211974541919620773957313753915951734909591103165763041210337626983433953330353102771293060233042936489108516656430398734052321541195482310180343318844816087329642284773793449617694396675601431665219546140143038490116958667876579429499377221457665517416835964958580224060886155953663769462039102839561198989978388827227318410521815281871115648994218887078578900410892051844445806879631007802815047806326240425646661149596044105480777710840815415616115926666964038884505425386440182342705385724775567807898997555662428595799488931460993995262966197580182714352439108944177110998951954710609165777247319768922007185127119744139693321569522571799772435863646082865668141120844336628800253556255554401960674772173102326896437678016387538859578145753410302260587763390302052159631217704973017325945351451772399464324250541190466297467430731980047243473809044679952744832930213779901467713536264494861891943336621447500989137221973086506946409023197539153933895623980485812822946074854504166693197925158188105971431153114548408943754763168434894722456183618764769146038389338512464526136672125333841537274442405130928465865707815507958570010496964268995099990848842788097615993864700285419871316971730711258294218918906031741526546823521702159167758680104374384355209527335451903052490653042798432326956302819779436423345928849119018529086533426988085015521461587123053995439969049989684457066107321348306366899434478191042461072638706525438542980983158229614740046212305870007616656094630817310481247023844561939676927329753559208452963313229247963362461839828409668168363160021128923012190223878885833088482793616168173941837038409533352945358461608349477588816449590218528375294491438028817207163180116206974342561226589675271121597192320590732983228551781151517917419127434818992393079967970342112661652620418382755228612909556020945636001418589026140270984933961699985422915766434317499875329673556653039257327913997563379014082962759920215751758457462146599412190972402239867787258404316389246007569582262006830818333456751307588309765163320902802739245720922462384263428732837971062679506048956285602685683454512739120488044913797295122506886568069741675053803487616355912786746885262183565208362972043576817787887499788770720118474418420417321831646493820958121343060650821064196891187155690885705040302771367150391466205634365374957678919404870828203835328911503788663960725775911726313289450618621717193894893066096541907665147971524758648964382053946452080400673070533954425813927776917400218585743020879841039766553494941683069430353814695016726617019392918373759479444506634517651177742353839947829024160515434675236517123685886119989035339229819240058070866900884820505635821167807615212244152729886754187331837827245558109819685999421193383613288087606067312489525075074841440492018093176999982805161073792086268148315875158863280153414927183018374007033817659669071085202503697979254380137709713438956645824260028357676003848266661764240122669617943035699101966703249452623911457947932700426417048082582737692441318310948231287795731076815685442393644281939719303323693084694477534108143739556239405144083055720855532265612775491304790387754609676442714123958525661120533973356073972787513331260402349186737541652049698074961854740385980073789699758495144266192108143835425360457032304823981226960369783156041783053207642555538284091990154851400575386470178557100652816251956589258244094237141695985399879645552688536674603348658669001514418779532351050876692820178044108663647993990106059538968111052409845701691905536324577870156101440840512129430663406586535570733590799822397706553336407672212282439256214442839603582289462683508133457497113639589925003385726561713479074458266983401815216881041126388795416528306491847160031194712202528140472823734931846763208792027821401304998913053083116355082518553220806975476652476240133633695994956099647281948785606428127758864253850211483423589847982805952400917115421006261193751622627641571943723372007722653937887784311703299000636419975554883859610900521655368932927525271139599832636318415589411171962724010458049833529227519352548733067455774193267977529136353549153235932681004622577094053030835685355494844224726161025597074264080923255145598894542541959640222578472452553089786421182866353104603594736308113939620140575456567880649444257541263206353782851641835984764266891616676446893613326119030600632679257411943437709938152541294331952944106203836188565767687517806248505397313347617223340432124677584189947616588928561112307716883862771417618567395783732529105389660191449488083744916932460927994568004895731469165607856717298426209711572560122925452573307902399240127134299543778716062399268026868010500469804255460683353726134364942666492657149091636938444991228626834712420361552132078924735629495488058984092031318677047012405849537265695202602788881793055580733672721054525974309657687630542842504094967801437369784871793082843992743789315158580781106684199208548448179860861879560455188781129172478907498382435183248508559678409918437875334122559868542634135085909599040749083148083637410258164669377626306766693095728261978836186340381978620977410616406334896755138201094658254649339176323815090602184142764188123410339763435269142039062880831121219061828525583058346911186600557690640569482417323297393121813570975866501994099861131755369103818853409383150110092487744866470151541117400310313792590323487240204314319057085964488557294172763253001404677707225393631057440387730938595764723412237926600720352602680202163746420367057890685662736454311853948747667418010450465110701297212302232936741216683943418658214723881418566343271754563546286799089293415724662168217496109617277412010144694743585656440360438246384664835347713101547055595948617825785722046509034848800591466426196156708725111444378990542037320523686193752718239758320988306320190914563371411633795779135862182288174093674377986265732990380958656488628520043804807598230531131792731802176933828247202256365380852739511034400356175506807069698815603764630368641348905131972374422280176896376071079193182788971978372926320297624068301059242418168188874502270804090383947039433141101557819200021247116998109375505946809475271174308920688100154749246246967319286925759833361710238966887124380615122121327745683533181879984211110505791856722348495573964446485484316336588276222521000051337516373424550447100947889254040143154028462298373257121068862913072473336291645991885818480183322150302869659959965840386350973136719926343319477778418391074831080151371345709427486749686293396409753908389438558523738144443238759378243788321854236908749962792647434511859786271741156827384540219269514215210607790990906067414548295367715201124841555134522644612132323142504257614594689571231190053290873177990304935096933371734575739461404342819685347804414332544283860380269351234305192146910561546709828607767250654748529483825202124379823042607481404877481943582424018732985057318074272629741623278998402820397514594116965761263166926788610203717078563309691587985015415678035736388856796974482711402433225625137738673735345136020395915662120972678365134158250440806648792080456833690605650220953047069003278540721130125398953567589354807181018168049408744680140984414868475551194665424997408341236059461373228083030376510007344644565546841624637693389174602565054362274948712100612933324902023631305640859532528415442433590765046344921515431784163810637768129581552106535936049802383424597164254928755346646296532474279523967735326284046128652672051155236169304980355491168756224066346650873773123718615190182450647941574183461748228466763868844035485601453399717774724641290005067665136501828577874659418861321786692238180822937906832925580832662548307380226781945135494663544693707537344927054365427296548917231546168847550827476720506451028490847965235392365825980859761227219383142520919563681576054792999661052603261664626842272213781078304369292540799740599881838982315910418425718787258994079624578977549141021362062923876704567221766173060257574619349990822328017801155014711820035793125255215942340356377401376678495968520802936316882470929061928261136160997493809075398913151765947553341758904289300014102723896743175903666325721202176148273745579379403498630104869001069017934330207354997784828742497216756294026479605548042275975522538877024495200473496241657246956458686936389521309197489558718662315289210745224081105256698976397411554773197256571903835648813189571711542274122094985524849724892157655501703607975510518565235379968883106166128931038218596662752479272460667490579246093122254436866144555051914394906034024032611851446097299311502578186695143089820072651582760091207506095173824532379947036607560490498873428117740598305249565879540472618562129246370246687661316671815552409579262812450561292694033206697404303204328028888019293815382323715024989677870893833282055814762778958247320904828463153337823505013586964864485068250543127147068000672637906172158143981196716943890947489999653154147479288508741601972751988703370923368930433940481684976333737260723968582188168941333975539535520789249137974854474845414439200010656720537513015364346746080142501228218653953880941422532518657358727827759789692369967451763957955666246183872260723502861051191575020907161173233698904800535624112764993204188171250519869946255990209400248328417176807022806257031721337962742638105249144502646832371905149519044135405315709842577804599610980621159995368137510848431758779542023470690122749504826784610983487831748458179294015373166809662369872756986065348705762478731971854455784492558284087280374206799639854018744802860126781688288770069011581327550498736952020075787019844041046319705265844374614816635143362776470156725977470718767137273568551593225220021496188876075470237660334510568983962818886700289579521869917497375278574975675169030157415523655750300948293256158535635337610219137142700990938613638225917003142949110283123436868235213284378674337482590630913341866447777879366939257047608273082647484936059662249936398629304963891881035600034988238644025167804495853670683074087451407694199215025983861975178722879188268670953944408264603002771865715805314028866681177301669321901544296956449025114689941215958339954062364930081286829126961680469950243084994296153643893719385012192327900776317447189038520367646215244571942520801561681422594387633413128435691287979894960767797264112977454320367655205699405916823194084172505729788388981000205146696401998291726686667701527478314014306855748886595195357230798016301953132753764141726686888727120511026259598577518697330360181183205976680900451799855807238374155319958211367135111630711877110694632986245336979910886212915044148341460286343103753272418576213804162704028959441835895508053653878268530424712441242013855206783302520636075316331729081074782087597751357894576714800026312814162501244004436922963723232961893304713948084776535772651365519087002739113246778547786435904177852515203150842601096527258651646267395969184332478082953720079072576647372788226854984490357647977158674894976535906979516296659625033766927855863214756882260663536162121478549806280258016650692609679330640427198900243084715615025320811369372814419142919070924178965251164395891537744200743058042348279895700099392006080807634530811276605638295928105695443355138754701331300263491174170690880817270973813659439289456835191256742034766543581366192391610672943340022193819138453190744297033087362381264248530102680817046129804345074151973984399591148126538477137235734710248856416189293301267678657462203820693651134872090985536279065839565447704312500210083554722557702099970507794693845883925287571573127848389048396453121801626870456016488391687528700102304895118493659206017953015046289515989317787734472886590190784106293471589175401353804241750055570752026974361834671146730946584461843812188613830719494223202957366343706782758372921971066758392159467411896821399251030949118415638266753732771345028261357594604762534651170950554430317478199539975535802168754028561528121585920609676139330767768603895602311739046361739944710567612187903031857587622066115272747426325321065060924522164508549794748635446399617617319809249854954285610361646065016374639828728756273539814576438590001373389410230559011591341930781972351666525194128582007983885210530197070764828345524323596321501807336923566474960604514986615076447743758988498977897532809454084760740771358426375319130750781780189143240534099761811784316363379513115073764968287203493838303059729767401403489066110020484777409556884109545870914536819380962985799784288675166537839470072611246434923302919483897619210638693352052722412513470163417257516093837498147382617112924002529202451471829136497159660251770346364809268823896037454359210567835961376042461906735835733088243080885443978068388816698255565390506930184847637001285147126018192359085932088378409897242759221340192681765656140251590911842347144468349892391000688260527997488150024674977394550677443028125862540870633525260293403818391102247394268092473741832243686298835694932002737952932312284657401828887929345981834301880376640123464434239565955429630856762994041929512595843620886593001388614517379802504376023273484311998534465720896867838554134822991406667527629959155151971409712162892639048662387866773268200057924045326665872038266931113533638146922796688373101814007359084008814164516898003948464087903720874053645236162645438174113723457613161518446436372650438425729049536664280036296287010029072041015663195920331320661131277789010094665398818125203135150222469379415951049433212240456282753213509532073906233143498155188524650103183921079674552349054703457368073908526757343750902420519764100565765336644638601724853519357630267914425241651895459376779057253538867856049704088613093815774735591201561693252359161728224697834424192285688074563876363228596585763442519271447394496126497986878996946728088625838114081672473954437922490043098225539330332427699808620615162616817448840407611431804695608781934208062271416500080481647131826898172147611117781997829012012178972887490359689853496259398721828540978212315920390469136725734030886908147191591976344728885400010701785922994358977776828734196450277068102641611149502122327693133656442585426573690999855192804669958190704456812028282799130333981189502725681972000053233524209393028013683205635701265685482559159045861445379695732827435072381360068220635214768280379885124094877569752571489226954381039232223716844033880356611319184682043874797492117565958934230989392884601666408122748387636261346129372078461921035236310052945055514688003050058893838908699998338932118021421654532056868067272033193653911559001029275953122253938318538700603737929818096022091531577248321057939928876641461575325540640128393631176254440393181765247350355814774204154319950602677845061131875569289839820587609363647484455133820867596303494098895780254432835930381439671092636804252201723355765849984489975195984965251344098989848649230531418212223672036627006488204260582630396610279468319265813057820712026353759015643537325926753999334911097147158838439713259468421231600362343957279295377176536000328597696467883229128603502254867659368688936465692234237962121652551922972641423257088675478829083743671967632631042466732241768155801919369658197483755809912275227221498374859524826735906884479830733529935532577019819696219862353618458524520198766910221336316650399711898244874365100578695200567364940309796334017159367280972495459479325711586080098178927013531993281573176692345870028086831991693895583558879716148593308385931423005691094678308335757687839164729610215167030626336251361810716038860055060833213254093500276913749427764655570362995908927206392081961328365837066667696242230733115197165835077867245058584147807575251808431298353729850116539163140824738767972730215045011096679979758701218621253075702404024019428406068718870127562411812477021288650850860894794495164198916762057251307453254566370950189656544039820095879540175458664948163220340526757241960946862528858500247936867614084071502984315747251824660231500473091931869343587812411185758321258178751989687179237301761191578785538942288222746386328757548690063791151927873788133968897992444770445044079471327633192080665509356103457786606521469832859325055950046000126845272113067743476075585373143321659504168149333595678645247983350710369980728428640668668511496679080745874828850111285165634468782838599908593545578945526962354981148852728055578049115685245666421250093755905936386620002375664618095066400735027898853249678506401832210142375052627199136399840824316615066966324733714106258398060851990033176534613922627541452530288572999962151799837180429949772892760505829662470315069463554029395818203968771997902740267506839152852504214619999050551977414473930734399606652874398755289704410478949067467539275210060672183482129424923904549307215836374608018716392472665708813720074896760044052832081987467530878744411801849010528929525654238471771445915874331007785702032295676768276163684008078607280253267505233703685390803294827532516438922372358781726390279458177421917281059715590356549196931215426714425326597963669210150033286212470093731176253823782844223888286941632249858106531445699736167385349567336690254413058902048534325827587892147717339974350641317392057010937366327409539789964929043161030700485984268539761456936805343825533188586094385170119152639261810176146349009566690973309543413037709922146036881345581029723337778573835206395235460070997472450322070298209606447060303441680537194933636580003137675174549081872589091932452191223546849550788198880494708590611393361475812582603974531144697977794839582002188463869434760292664662352884008176495649016912769436205522084423947562493740598572197223142966469150024797448382155267193397177617201504815701764080108753646236315492790353466436338363745350851629715830288200477526110052468449745461745362292768318177371556519888810893610606182777869002577750024563279420676346315206077967515335787912170203587545909814592959961663600950359719677884937107100855010997405530393916385223568769878649234529965551161215886850189658635741448868600050106235653188024566937616836272572129568483045700636389733734748597525567632948300998118312668703268806990570979726566038876253312358280229285994651303449364432091179893481431467754160798895320600296808461590304183836695144443812545280095790225819808499679887770796446779413149717901972010711834150523624988266271874711562010022571998847374049573263150818403471983785148132433191632722129200916850239278781799819626207843042213419172780245301714700912567393317530951368676418783929195131315198025574438537078311020884981981374936851430941056031014127751496766439351564959925851601020863522906904657219795328281674450506351323287790577040726096435299154623462731241298649870284948572048982626695018248672663615847156408293020994866192934578939306389366507268859091908509069784330423421900772399307187958409392321637759127015521046460203328948992926373282096522655225553104317742144584810382252760180342236266112257271100417541538982003131509967032493817172893256508953509924573012976416827658695789754473681492282926679902824610867181981738446747962346732033944805120626453119774377871832578450970054260411410350456046385022333129635761249602565942362921207234603137446937405052534239938461928614823238404391491716190778640805075777486930587558044466928416833675597497299149371825465234933369875562269361580568004302675372273945120916632334651665208342979693032344540034791463176617805728702130215263725700610875335603357190398155768420061507004331470385704877504293832267412750621681381530488040264622581155897855247603327255792473282030861226534343431984119284861810775208572976761011834126751706430879476246831489249151972349016563973101736697722473417392681302698467058350277495134531471113787864121345243264311167631061156421760970752724190824724147643219651532848355382234420293145449500586704289732962389051239919821211616589224842797500900521645240566310079313536161172253235995049011218891528477269666446134969450759991889570157537114352681785632607240691147822459297873815555537694584319766993216488177267598699697236083966499509199731806899645354235679452442564277668841518585413283156501358817739555231472188798866451827100216601623505317292218266565263083020938591328418538875877777532727517709795991550229700049331111283281708347931239997656509611582757665223729921099295343324471931241719218387630525707412544273239456810367563336736559195640871862525154804876674177181851328199772220147643114174781703942615620026493272227269509151576711422641500003752382009490860412550446106300972186115352615871486425616612048939953646319386304546512026404813913430320904012181797840166379234933672297865407394814383504995149775986368833352112620397121041109551737347031980849907661420341279566098633786101663886209748492181867796866573044737125020781457390543344938221052409305120688254446129707029127809431544394110051690614944508872942668125284882406449225490011922293242146838737053611145749250103425989202585686084592293542939608886855926453303912102977605816173988864628609383478806128141841132704941769899875170874403739836531066004884267027992395376471486340644238373481563414615838706075207096517572281909914479037029715009967782244728303287673196103863245938789086438508810443772486620684926657637172549006237902705475505958633971003682708024612032111539615933067352698232312135133911384557383067138801505154663790914856806029833949338569265325933842528499705164696178903874690423348817020672726499214375392364579023910751003944467133406209247982280689277954559220371181194007991344886187732485560921937163504030056567442825464293727189073631102989670254925750285039050332492159550324292248505905470520277944672552464409129835911366144267342875800410823378144171756822160935746648257408463803555811578579787880730914172636635944274388401233300703037913776829693529028539826424739916082807120883941309853494105271616546903894199265360196210503683727155646720903079612882172837753099854767646001339327446520279527103665683013541631924914901928816762960023985699959487113067204112701062680668356295957238970886704183337314191194454606528065281221818391512935985202567383517165634159947353839279049744775167528729099515066378294796424966828699086455881947391753440989365472724997702682412629149456151636291380553906383899491102978384575949919453127563654133449623074649170732573817632405711764340757522617707799203950375460668435252050135766041413052532188033149636091390833322153604446371899438791190450562515429203794403332138333250219718385064670010915748686753063406784890827867166915148171774966058774612173243377699849619241250021430959686795014869355455645106550738452011468855698076015095705003105910468826741075988406990536417883611694049828110507438936731008916570628319027276570231522687409127535542234501959714250081615236185739203597681727098457129968819415601469947875570590480747474487560631769616354149884974841034263586203416086748932266660646377075300203107406321526942421531112990945468464453796027085372946382675065719858141748001235074537722416187981957525197076692227751355197841457034693658096521963081631789440249697814621250649086702700802913378505020080625040095899759926362687520885922254310333147040769935511070607148769766070800482059381025124164477750249400776146381965181824648918596462747956402438977005957092912614859493828959371675778045975017620133063678613766289645174768546207620889137993774663109164547987776552689015185894983767802185663475020799435386846440758564962219542772853591986959933342939562883864160486850224438907813071741122993337865677831259128156921026206737458757552967696664257931663914899045763314235492436820443308597596559718582178922731902176106552212031308976081368104306404672204507660677744584851293807447478245671708607749358510582427165828468461069535674710258521961886459987188406290997906884530509878235176672192519696853387085435219468220811092643615190998984511055274938995243885637955280310535022093798330663788656535101935703081433445759745378745172574692890075623032052287310169947320197660280554181128804079330051731683745749763149726608482095308081975653208054075812944604219925957108923552021454451363272160925112937983864502709916928772071839517627030981256970412787854158479960581588278287166477169158107578586104803141527506177217648300147151570824342313461619469202055838203969999215400343156426205085394723902865568895206658227827422664026899712546843949406438278055606906924681783804653545562987692185213555044233011514962812198895163430768852217895825449237611226587994705611128452111912609825809150739124920460916985574096605412736068421339665031263537128839123185152717318970908999419459839162523979963044845124595020642459467056778600799377545157505070397041444504613304741738908811595190475217770795332550919794642383799620002020033277944605993062989585497343629380179761925327735201684727091289618214909777733189671576028202944543397806625443046552696096580019845028262373209715176829482686724223134600720922978412246004194010489345588100935622612574199289200226082685491182831501803989593293835104265743848561226363853091189276160572018919990988371647386353578128099982240786829735505257964442655343939320043950840353143993772356682102300048301824514596762750278002528898652388455817502400408568385099308903204368682654130911501494856614041983212974522710260358255762386282706604510004255230153925731804409497887777547123215951668998175511911650895530890696508545822559326418615856519363451460185745886879354532674759682343383097930866985931669783080481590289997475357779897901411449577506907645501685345551559727981672610615649607743898554577554542272699003213288621022535327758955861884846548131364090614565114626852755558323594990401452282806162489121282598658077470160961446083430810577218985678304615148463280834547552753441395645970042802675661626276676433373281890199721833944593875841452550287375463891196562560671823594790577290947996297899585188210286488779620479473967306147920345351043734924062042583478046226892785409809402671556125758115910621363910405564083818148194110225838109696256545701698866441307158264756971155380966532323132733197643977379574084594321805079787359132885158424778096681560102626993170544129213917440799160514624397490605161706399916399727044062000129528382983786195790105503860500562272816597322829075288506262761582432443898749178568431734988883778005125623184165402468999047464149711028161966375644027018841556546696181779899092243682105127340463603128299134836778475727301012278693989384458895977276579190175520611776096238733510999697295421840208846886171282496000265415248079362113562352436426533074266033252940639713632264811477110213653011431517778432387275135942078732305675173571430951831332563490193164344278036066758227299691565938699441536019293862600256501767780795863424415424462992007340895281741372622680898559355657348033459157302824546538291939361556566928881292567338994152845347070446561180991743043575203679541199424517069181304191259536146118579012263562410002401971119243692270509294787599643061433870260150111949607060352833279475512479229279445821750600844549574769001884207960093184309657307489408780093041906430463656723307630714744232409769861238172118788775062652482106916808267256197146431758520149107767656889196717078047157004466000122555124505228241873482176002258116221152231611467328759771393150628132850325170170629693091270758520848803600506852236054609590557874746468536087600589686783422963949336856592993967795267443796739942175934249012466969568072408442383881086913834848366446307515112965595304786480331217144456417522101391916705176776148614711247115958726370526746673762022564164749262049116347236705636099245796290467023931455350608202284989031611892138715868343523103179736751656820131941507179035328823863424309565766306473968682604597432839487392507732500932293355890218852662285546399036873332168756870649976166691972290252000043856218698736466125973419343799206214936773758365590068923956921148403165698419589581711793880540994200070882729164015483069529799698666411877246552676728869052626434171301701698809493983026765520566317485600747618258595254596051540969312209231076473277689984445481328396501423910026814144263932753577911762924172814878196246463466608832000118671190479891794064327602809247843813147200781340323062563769598281904898356123275956581515216515388792813416862171482993227795851308296081685340293948601869432158937595433853227386108645251822993298245599382911289183351118934779085212767601082603203624927530716662632289824572594022975393153854917323106266265449159738245093938080365132466082267273263580376775584536347761143950241925722518501954821488016811561496185168139951661913819377132165494359758848835732764365064000079021392097113699367007653201017896671102096132636676877675749625058727968616905444204467841417010776220584322477307104451953999656805284633334747895237444797144058819782441422717382477943309004800548433883736104567914406415805436185570921035244583832626492716006888406013997100463484294968991253798031080723712862197670399176107215280257616875007042761433667432580958509688871187756066355074567781582656734233471901247076902273909502273499607678422688775169003477346212812009227709981030659179387717573495993717676303221725262666630358851198450548483109260412509168491676804417834640191765354692816985008967998735600200511624884228592368210401139062606566363406531323682486763376294521306003743391925982172520225029590467568313704062770071648294437749297859401244548713510892949909365521442880063465991087214540055303109240179112810675883129201758062815945043686248214674726370604902627118965520829878835805712218577556939290516269252047565797756641260958502832934920410724945405373989743073822751247546723060121469299018618589033743921010228785284055504737776883642292909635551910835901434198253530212547365699761525580111940657267615878249214659641745038935545507135687365657769539095176371826290071498757348168401936951123294637018973774039001373058259510930808231336526552607987637186658287269057715636504372779986076039408473095506283358484321642948486074572442126693322164431290942578947646095874911329339148080816116309371893149712557058233094369987478510432261091211962446837702171454355787669732352915147916000428253642443911279359927303804254679337122205019307910347401988948289744390728350869028748426878807867053302361808122096102532365408083015777675573588469910863875238404676043295296048224663573915988843996060015525341542384799857555703320661393769706001279869334650070057421035520475385028936980314870649507274995697866577886240273212435027422283589619207061767994076752079490687126862368642854438097211380396974677975521879030060556227756221193469001157897407013171648569097887146359093594738711353296678880420786702638962358044555199820802013179309694590058915786956797831714620421766442302449853288592798892237009333995924405504235832647639065982196795009064153420395629446232265676564361208089615395890122557598700605796522766590508968404436923935010794645576811513920923015979528519949790933423881496319840213897227755072561969334733801602889255355232346746828810210564740292075939461581117424300220934792214092402217416168954349095572404418970803806171718888329856355898121893227032624112647873543311978026281891598987152421976926050470628887600559663482202628336256414887545579126124577428861642853017729511205440536691420812581689962642277873637860039236305678228952483463438440771593021460860489061212571335584658756177086192438061066490992872967764530144674081828658258705984020849443354703005867711137647291978766904979402025188220041691528660386838044556680323673092880482252603782584002036219187449844207401306806268546481393179101724420459603137620300678563175903141001146158600565935789626529925956190903432926265142574461876798897540813609124980951156827264563357681136464900856810327825826307753287107875704508283543686426374453206718622007515603766634950204344568340140794916971242865074545506592010799629827467078514920330434115119566161114222781061908536773224781617863619762436864383298988555514379898583425302560583986628838709126931017204687782384831735102847963850942908554276060926358461813864039236352179557694744031269985827922510737109358920117203629399787862195922110941173541497373474601337821361655566515534347117956253168847253028537169341331370146285763685225947334215946117623677281879982130128050626257816929348848120861488088431188726070647849700241132798671167015743249442699139407196988686975088659433939150380397814710609426526421176825891200513066637895323354577195198682591095804910809186693918119534184280240716044744899416511343226754610202406464101787685899362616336119063478409273804176933786536069274959334136862185637607336800099636552797710949617437231610152919859995411291447352976413703366616477333431119872698238474437302630403186785395264537552116092324501011865184683261761159007036397169612516383170904204790565702851400078002292755876777497623675903653054754404527978129599230516425898458064908318590386058682891278067868962805718277996435131219771384564120498241674208301432255655446344485362270737464837305533922089022042936685104142154078995159816675794906848067817684514008689319234664163846188661180402758218764897979833911825509826168419202483264565909942203970281985982878973095479727495190636475121462762696387894547596237207626728221162751520724388390866680423238178430220991899196579867538186010703998698336978444431244090633574368132162998759859293995139542195418612118391027747111115470041474063173736333926170904545049341246072374063337315147132211563531650111291354958779706008874829470216625413173933729028473139170988532719552723148118725464028625682486210530007449004608225209425233264742397293472955838565900786820375619151171856392369306402411561282216877802794085700032380109271229636788109843762148625593941510153116991425728706364018242580589553260304325128435435434342932843705909473201495212953881585474930502094358001365530496087001708078455621938381853718256389288955050199872532749448836912051882530165682510308556902542025134216329381123154702396911977616028045597306276836761202049262816189021871088601649693285789369534065404574606358781874866256524047941118638187735438182201993539301719169898191485471794474038726525385199410431567090511515988617895561883565361555698159326411003829131871593042571699755251689703926604992268737612963435207788709498486488402341417057770299800855756340881367082248690017276285672970583887966225724016715975036728995310108077232701627306283800366953661127569186562474910171084071015245285755169402753983313792652320284562867213623720148481208899745425328584579116044630306486609484070520863565622039503968689645897232224517096949174995845037164548427368137714851123325499393090845127978211485489811534115858665037690487148560821153213844680327994690065855937263620114989916306000296967406316570545638631573531706203999121416497052603808754480790388916333869267397966797141690725421754447731853837197844353988663430579527647119891039498065206151516508995294071766466048374983310767441307161809537912128623245175103391226808593867031052334739849508315698418542727981835321721680639068083304552524102399634908471543986323883269666183777176058978800890630883349327190450935364730594694675423494845389051575140258271388171362741777559196098049003304466045426632239963047711373677007267823820117435342381316777581433451701722717594604601435162032641411870722433420470537486307400814865520014946794808510011034902567915493927894366529959903354652619734979334110288002931072255941239153525602181338621784010014301290964046931152367704347446250900329767066925196930415089265548078220733889684090440582101789404226379922767354350181483072262055916404248896834616665843283615882416495176214587821247421848884633617766902258911194399676480423914294052128980276454310130520587278108840980464510875896023161872625256000092759203734530734369355640445031189025664045624738737562643703079855643515836862054063737010882724171226223456094929639915764682144998597557435763112447828613502894591654462367046409140477151954536055995308280245906792640171085649405292688469585107707218144208697443035528406898950510534803565456246662566170150428857463732886705251896241019845279115286713084094083391732618608658791442023168009937804756141101681694753915906341665602342013596577155662501566732174729831978042759500155490244103356912443683024502749166017683214694066784157239051870264530632425362818725170509236443367342832751195000601021809369820629849408701892436555829372111329589229877776896195380578364904280183612726484229737716085010457231287776461960246818671279420963505936553132172307424530561933878007688409180715294722514140520146293474613202342428936222515681789680544366107644872414112031315279069838060791523392719376042419978745691573403694070991682896337294017418464740009619039348010162917238032709196875308009447347317310563665385012164620031934195352604132737051963314292419916285431405150256705684164328907541979674576726527058871354413351803493002361542357517295532732090703234764805275882830780319404314151649327069385370291289187258927383790606073816265557632419837014541390045148912412258458909959433888678213813919098277410335146775070687061419084773192325126301246891425906761076781750269363685920314746928424721104773335837276980915157138574134397433575543843987326659234568901226886058313535649712324883121313358157638985714744113649369507124723431503938522722004802051209924095965102704847672073178008607360412538761835758059136151568458366507850521075675219877899394874635510693797287758971834780922729691248992424954658464251945075523027614670493342545781874006450427981473871815325683865605321372640125727659012485170921939915329512097870599883241295452581058999291945284935943821312295349597865667931028762270819451967387339188873081388732724611288890885970413441879400272360459901293264410159108247443156989944540308163746012766688549659522543818504782971036658595003045538620989617850626638860635921071419151997586221685326439568618209639310514957664154266046828945483892886609214950947313206313220070649944270585375186286686846205322334433810242928717554110986111892431973459988036075302839490930286707790883643806462530429226035024752704105173891532048714544976171435270311711661520117469994308321787200094705732740025760804102926015223727384779188101422118913076340753336660209819220752709874707181013150908974704784527128383015204057894046586843123210101247069941981037693651138504960160491064262324214642403102571377839127095724020201282782328783749067808615747811339523798811209127649674192373369382940899262149606050666288540495236469562109084244815773789543629974337911844423281395336195376736676936620288997192748845748688548360522104326082845788681782639859341744141509123565562789260584713742154386614136059317771772598859081705839730916719327461284063938919389166882663800577204680681369863230240657894043635218312040700422333129187811685422079308122599107504732801079781495911560361801290487663755873645742408558388135878148656671638851094392990803617943212821503867700918220646329609801488301698825652884647986776285213702285969570420401088640236154867213075680024224551821727723076777664947079331117229259824730751779031201747362969805235478319850242200757838712891080293543826278425827713083065886738289476007672365901048409330563019981385478668187797715533071578805600844141024256125462084373942122515090373270933135732766078581227024456830981693989077053614631016760346584324088327596642583801485164247697999563685101428074697179614104651181480198077476175732083596159337285022508992492292520895827057268922602782016133082327025295718781752440466608282210959372370916167499985556806605700144855030035585357806614375394518418142288540979808688246352373721532700615266678141391116772120202175962130392361935097769264514409110090702741017195439499409611410320650703086352395560867685892861713948998262145323694566835586073447147320639163509916491817591967497827234733136824307615752344833043399893186958489752034381472247750602594402765013709862290585649770061992819770964354715931405071274853398426724518410350742680577229027815891272620991872811331511999057772331563934696651202335725614012474641666863251895669538331970675985870514259281209917658222483733769734686896436605937691178845925731331074566166954117827000098567686204825086834918998951853954138867041274733988196827628333686873962251860270786696201375437154450982197267889914143918848353716144754142999949944678602689416714496021644075415180112475067591562576056661047187930948863345571582815882249887891595004059397270483269383360901943101870040719478331364001865283025605274438144975530284193514152384223413272325012920452254788716472398335755719638795902199368299241301913710292555777822617072646493645342582124749773535179057975031837995315487951790971717285774495723673270000576037472159882620119173496418908584915417563595886961377221729369564973183516444313978411097600113892300791093345204979327466106236993937718380940236576417402031870070201034830857708112942343827836218478329226771939664873894768882501017758986813395309143758118605935361527255731544576878935320004990783713872593558875893176815827375997971705959460840755642883167202846846213627659700831366009491865234068352611916719404945563218378658280460618057294587966092989918517046643444130759804244087499154396894537050383098555823489009372392551786471726976354451077706865465108272548624860142971737110697937261634409385421475565577997385493250877062687931329745056238590047810865587884956860804469155800148991752295064801152764635202580558245287361430089905113035022854443478500230379853862130896312449412504312975591523491462749131828683190965156205573198995331466646691127554384170762094015279067570032876043783585657196909499301161236989693635274673192053940486340596259883247964430027765306149531539608370994084040825599107565404798449732288174106870060064294074633591011559307987449461695826404162787430262216204367934409450834981395747227151442734355624426800947245433251000061325120442070780989831116078504920383255659495962947130010825916747791786230047836766844629843692426025653506743424987075623957298430915903138266403767127336940396934667647858607846335416243693140666167525217167570685491696408179392342483652379765483701286620454494508869150156893802258693399476837739406372588968630225123102678341079305625517049341222017354308374583533070848462650865335382223583290578646670708047306535912625562316253627286816130880310712092035264956040705906060984320181717241760327367729145794091738155436300464466935612175962781342786597648467093562759253396119741319354267887657658711869644646623194213407877529351191512403898681188023963162039488010138552398008099990266231283021389188102259658187008739003928577205345221684395302403824185715742425159312384337101906761399905843308928930597159956770640583453274279189179126951544984683688282738940338109069058390119032702773330911100931175455569471678935860821570528664310810555192798366324751529960431830207614574237113033339272307368908873711325045599492094667845230687262091347261191281631202144756235313399724903832419221652680715611469157648601136732101011984986309198889336350775267664727344175243853548811881098685057508045888215497752503026352717541844743577497300466368515762987753737664275974569701984169427098392302734806873721351897439732997848412179907898518974987590265949784356699043017147414503956095588933540405927270334955300242437110793993436254954396574336539976672708072735840954298366769290121213885537272931109032459794363282402450857948322706251709774986531969526791666492755783455811309995094253792242303195501430658319392895241153823389230742293361596830066185972863083576314529063329584797239136731983888841089354834794465077983795349609703453921188595276099557269693765534251531415735209050576017234443185058022009425241334945253565714770004428834910654847800353628334438309871227285369808749190012321967198208344415793593143970745407882334040916516930503317825867658818780426419029938412865684550450316715661658154639015007390949254946033388413687139000251041862128491005361606204754134649966668263940475637709772651283706081564444555904801600749797300424640239798477766821988553507739485509422499844464031411636690687687406235397645563419031285673190772040708357585725960048575524448626337979076269743660236392324433480808873325872738376381643153055267924705604259681791771754694509439505233220701741567159244182682543600444292007537445996684220840780386171311570944118395570717663838629301445699599260711950990035215302246809924010336431612584642369617679918052385620751116804949610502499612869368396970221470979974920822054280261755596933703792004454037950569347567399976527524584256670631651287835197704826568012703578015354618347428633176658357851348826123110360294559574152371811482500632893711326278891060698701044732489396079361949084654126885749065315461173323149270579485811455630647599474981558601146046258686237719816597387652903009025679889938277682708272039197086701585359584510501524608316103697717737839597189984658987553165239331163216200946788860079758013708549145912896661380163345612138233941734413497743804983051953662038301499125397625379652965889982395819295177853570396648087527978183883729434184571220488967941639112196383336451754257568784160770668002307375560019545445003597800402087131395986885266680112502333275781079034336046577280862512545860989320751875252566805223873580558232480448120672167130302407787875024924173434834234272870387603259097877044662621558108447781108821143763474177907069609748359183274185676724173187910897006234509476033469065007232166982040283349238476985418107692841123213291883848164350585478206413587080862764499366826806348968549116608484957226454759456262067711976116916404441419269604620876989112629661596674686901041382704637002434298623105496080878930107507369167134817040272714252347904704624643965764331607305797217498852666235780565505945009750522990771957980200997030696591573675840315177677616261895500644344691358626393637938429100042749750545192733598431277676280308315906394250438321084454955463876790963972763450268713438441909271744639285625185696483845917243545111929675815445143633048359020026627816204669018318114855379794496368934722587172668726390601370924005118221988841740437735306417926989045184418120782589661744422212244069863184371736978759467479023841024937716345401412682358934474454194488554350907993733193182987740320831433857044472109049719224761046920680203001926420903090486026701698470729106067777836001093901640128073411041539879926330174834505901349910786614576033601940508251070800002622537334306188667156260891452565759511156492714618628067440312964223336869751007369543426424367066178461341442047320883876509022914691556477274707198193771958733541881433505216428212504829362538240359229928121416890377069855026536008956180049426709422598144916242465040622862973257938204427985750337994423680704120421779852300204636403772945963824863123881704512766159072514282584870467093666830731075662397308081836272521566603996789080374567616742708200803552322448711609029628881493641442004030108387040863293711880495428733453220543950261421733256232043788073886270261957594872793645175663087769532656747767318454061089896272972868016547514851477885990483748448132917023521272365221062369457821983408553140933358116417651427090036181622451310940835864983489320513102157593796419204285217525512358193445186978122420403249983482438145355938469720306295825749370912316651503335366905506348105839281672634911892423711481476868711365705748516479271841531753590623779594367550181680209949322001204726372001401457126912561328861509616679418911526213132497547376970326891916577553322443567245015592402982154792100555572815229368665021414900820550451163636607839694960107203808984594552470372523650870561812146697984564588405142739957652955074567543051814456284844327117885977890487812262850418523121210951415663573934053464495103255997767221617619437572410690875705301385406245031592324712795455854933309787950910838245920284311948534584656686023251923236264815003752731260230146804455118024608445705056620438713129961960838232765769886470311170967198462720378836686661248428711491251314512379915677339528369198356638902365725649107723740734033328514320728286423165487055651952786571804444619799521921104993058056077200059302746191143705810687527222817312550005574248720239122863721877373041766216961187584245907960698139350900418690294702614605376760730458949603471051929649609300983716762542351232385910668759046697389538983426399595868582737602286567830603884334747237249578131619514455795705432424579735926890667385916407084401863478744548754116634254779058781976554674822608026762695194172967324887579276657334284535574334851757691926637007169901713869390172832267824899190338552893220878770373912061494234084029338028581425017485146285309889106008204564797793510269320646168939936006430612095483713804789276824539454385661094285544135675419105018513851706859623033515439020902494685513305455015436927214642215790345765957197835309943284261933958848322722231082969743853508364876197277902384610953516043374331982468274079959161484888912574056476421949585643992349942768593115750214040852811059674866207154957765951065479311279772704440048940362239090620244227385499951491563325727264346875927801249308577776134419039497720264503593414091282857423501652389109354884560218754586371933983242149194874014104344905985673748523567188711841493757830726742881442623477151772283996496626173572438888068742690798761541048820790507748501728202308318033873750361923847262917991023345726689448805559132424687956176955402709079058943385767429404698727549330770070371351273130355170460912313359541535462691304921797049871084200438993455942008023730660976534307475077616190605803140906505526025413137259293065232164814865162962317786591005033057869210341128754871791796033097291240152563177903470598948274678617222874432777391023058570828573378481481367894516932898119242422260135261730736772257723915296268306684353188069294444402040930123323722209635225145134992423949455591776223124345618533795133367480105936312656847244311941993038779920975414587580935919161927609183080846746991606136706877830995781977706795766139445863542970888516621422648508015616200158138158869032314947916122749297170874914212531135468391876582487876736988475960921323297029101163232467351466187756797519351807593460561569875796253936153750319786133376933198927004784341472500131316079282294292934196189650613668684770973158665873155644076378975468122279680701160462617874609895822212075933141713403390655890147613521489736417628807656532650164362514046617608317253213118027176567478563016666254365424614715643344360680030758874690265684868373595957135224348905802346574304710090974189517360158854250081124808685817843596087126920295364864506986538313893461304231071348068733650864546021266441783244482073839678752491496082463201717900798440865750568655686150421328519562413268172744445276882368561897941451803835508453933168092645167849217244713897468922472675898988507677188287471800247581719169800443391260246091737868223644830812636213893747428654758849682182053254352066409582435219022884936747003457699236101801534851131503854478284675293419583535839849784598582619763631151593144478203340573000292067335963481800117690551896623020297273906804291018409681722144984207213911370941043613414332397801380681901316799632548780175425994766453377839046638125713628850954743018855659017364335869833061034150557538232917634402390765308973453706835815436696867815501495354301899209380355674178029641973787305384042280166637927521884433423267104897821484586848026198028229613820158030328501730329515193227257144164734258511263380854927975417845580802950393375718863567724774236233044840326394047454927387659719450674720708099511040109612371889134260952899631471613392156260314952663211638469445687736934201096930751190798341349140994096505544020198042244619891872543593056279844948083145995895146318760941363617156597463110023843035411451700188482463171758790813727313922566585567883229724909188101651404052300290002417820058453431830592037551807275005279095686696622619030340125961015003265455356544146146715930313173634791913664998140015687052992448242561659242226343389931094645364830160438277188398887736737623385975477349143221458175254108278658008212027322703710770713975427009328102623905859929395602952156431625439820683205042222883168617328996933270547659114580302236716463204835170884261148128704310900171083550891870451971256316443262416313052888878517111064778637666245054334809345962934161749538668423391880330034082743306889847963040229376991514232698323937831526110180993636656894341750764848437352324462435182182127146554700274811269119122641224104034851435732700980691455548574673766393554861785720258241015125951611907235828622960442542635769750752940765230791578841651528972345680367493738952013171255087420702827806289469611123694352968860426788788881762854198347575812172578569574520089625899250670270123825998062946400683340506548841656480030191714288599396484541976588161909316814513650115802072652225259325064693284862650620970948891924172173404607402561740306951252432623502636125452861235772318783814774065143884157042819300396577983839354663889188154805689580787189896053960557028096802290630189656993175628257662811361659529948185643437492983644833877262484710176621196868194460323699001225645518106487733278547996596695032915836954549800611563737931557361477211285560392588917556304476341448403390049723122643193268467315402055935870956724548022068943724358778489040822316809559495779240410647997065470806957555282065792060301419689470513184591861359741208983500699969336189273506423196977807642326092994599868058280454911920329136617702903999800570164329127885230951542570698019443828516512659455513424382949722662328758338041102459728106267105645015296453285744018702672651105108301544573381888371772323563596802255852473264395288866837175153850443574662581336408582737567445247462702995644088958969198172096485411982974688837123162255823605801482513473629110541118690198567218370514118434791042943927606998207321364217110182089737452761205540937556807025801983642095234406929446781580140407600784153717779861717901951291873059801266167348848228183156165194144722342116456666641442681908201243053818852407126863222074678388770526393436861777709086526011076047113760590731035240948879716721213797376494154778983761724186327781401910730720248083794514842502560992724974184330280965765549332577428368261246976161919234805696450930855502001895835147533200075907486430631687156431691278810505114796192578996812754103374517609951528408300971603827028234613902183159894510211208355780465245599738486407180408811075006394975228651113553064029709550090088424761825796131159658193439473611891951549060851654697563125535416311684736281826118429096189501802667838096316210397323505524555827734257541978514463640923107926365784412631253312075885872563080191069496280256561549082652315809502401604508160462987819426403387387802623145434589590008997991262438447265310350075715824081505570493830032790115964193699817312136307358111142304317867335408009233321469868323478362945563887246765825102703931589360975496069426658530045236931699060182404766508296061784904428394115935030882519277470680754470979778768656504166580300444727806934187178373364297222122394069969669595298768634799536311622094410387714052050845625846289119164087513379241581007219935386526528001918436237650452279761509917966921439452599376794403091451328592520473869509838045647925956166847416839805876296307404402813745782907184072918144740638580643247576059254390440740158193142901604697333112435612793574652413683495967644782842220771008099150739104078300852789641305218418707081237368938513519535074944690858858045463978774836107732675311109366948146120468233777935785588143900734956522287694441558547495888204702638648631415067811707987792564664813062102690656213777365665138254239084431986970932163309745145872007915535456961440510765171198944304614350799055611251792737186814320917036183146749514007656438237270291779260316035838886557965284562211841213877037938503491832356922370914717142296803936820235842560545414843658230539506558636039888038817391342368852543023912924647384217267335882308321791364715386039846408861778738429661143177967157418988987300045947184815381821245331655848667714981868604296523026903248371127078416338687670960803952582584678915659921918747222534665136546015592761394302329478186390716478011227260765606115984652681892990085868731795719308348289916720816723002025519273715356693025408019018887145452153334326166618881304201364055886126548735185587934029915087381041338349156782845423612681211101916012509184435536715775498842782295751161424794974155528343577228035956944346562637074606296151994366637479539877876581060200951615537122988875483254275709800590873031010673812381553501217268023673588022821160078810472143778540448013003594464240507293605267747004977531710751523093146759444994002302461101194450052575964769930047825605898140374510845688143778474392434354347153701353118671524134608684197510232423960437980507387538661192451115597239769388927910416847720664116340773005224551056501321060702266130907827045403000651161699616993442616531526751835695727217158947758910979539508817789436398836851250762199221306800005785804262890413709447959981343856552340528775092192901667658326083874831349930529398933452425064794972169371155105393338935079289152285073964604047753996339834238965873759397533984185963936858516835549000698999385688261517820298800855244517365945994660908160798345839891233670502017865107566734976113918995486258747761686627818041794048183077640277296939514418483779745048988303327677951963397336178727419043391896146211236700694228494915790466974799704062240715783937871785741406460336928316946341194051490522925301408492071912106118135899430337908944866456000709321717740971778259894744767789265185626086408018600206060424396744200966241113215213914412860038854278260449096141418397443375167227224586728419083689640958718656308604770531334026149502294174425273969709545012535407051947047136938959372882147756563066774295690557782400261734827656732770152454660913385492112167412272593327466708687838120364068902133357691981977381554246066931857222555956882764134795643845295424893852255301587117411277400544391377081755103251080389514992065112852122726123457334491675073951754922077048223143961867988971026139969886697559952383452378685721897136438912187797368602566455425375184665489516375002517429401148759355681432682851937788999320582307234472178462512657840311899231308159250186424666117748402102967530131073393329889170255106368454488461183412358492609841286307998988016376213611573040368097489712951579913372400457214176349890755466083421137356960785569684928021715096753888027741149040256457803587372103843640256355968500040558569061460027459670955291315893466129966407047673146165325737741540649081199175018302682131532119418229009416617224442127201103046927817603646240449945664097219176955482244170718663632541613368771497954508871617812098054619830886528162714336432798374626094583026192281032052547013716739575972200220534387938406444930104465000818753946194771032475279200334470447012619963370544248044191082096395000396763800266739539650911319595666331729418761843846832556325363642355665784914049067572425508996929083252712992732453907360334900722155581407724307105780133244673272850801132658652681874418404364423723345594268438020298096403544834651262055829002505929863941633375900462771699617638893782107919348338813165523492028932715576783959714614827603029393007381720563503375013293237323107907983793928459385521121035924849080000790533450974337497962797401240366429574890265661579540864833931371122816425090064200689308673150586298596600960683257710447045028875154642657792776237484951767020819984315888483861674022352993714503764173652121694225897531059382013808530135723411284035821206137709118760105577549155819086888947201392787150259722367789020316038550041137556119863467965542363596023791050138134792116725086811886019644301783915141532851250462627078796867025477851255779972972400620300899219564790175441933183255832130941539870636304599908794297283102908822473827509576193147897330787733611558370739834570835631481188665325124342516652783547906870910635219313077521923140226286380188389634298486983874245418335691894194951133307163686917512137569185233170551735074834756922373622111311143734156987016783490842232640801327123544224811451344451348398467416167055196423776552896279076121093031281684459611649728933954700794530929847032965184675987313908730079355817939838206161923296778415650780706867259213452095502808862788464722883374863547818038809708733668803787078274912519722113441157406097699536089477126344807444282876886136385800851940684177349743735513149899593223439373994670086711850467944792917310826879508266380531088600159938132764464712481500935719240721134692340086490975457779830436967348876668044678872855240458610233265542265134222264607221379712006268903091189310927399765797723851219622008264197111794607387635808088210213105133937894032320883233590322653064272183268985984075653735424464095747696431702857148990707425142304276888340724624337049717414698403564220851404672379238272471781470268914564825435871638957480393060842920223980594728363662845934876188982019641267319319385753807849914994074739492921978432599700843324116250458086914742708965934971615798564472165608072919586416562508143592696071047819987323841026251371279335633423493506386640059338588018015694285654614970483716813695330235293201999031525598669929712382568148820383265991811478748816966540240813466310232226693307661051631904270850672949921113416368976248477247649141624405572493707019615989994431110984301395051062897032261745959780561964759697880994255050971045354697449871653648861804119722424534973919651896896703553100983628568826912323935092969172878614268418829281711306986910233752469307476613568366834689330427516824808956000293628866378293950962231476849444311240556718204923570002376025161146393186341684249489711122252539377734597111739203712014901937649547483534767358243851201395784706213985705209802748430991869386344259211055635517298116643394290652731264447617106122307749618538486844659619883064534053453929250609364652973509419007361874330970082342280716504475273157598684230355347127432084912170278360441400761312789740076709051134697300437520367589069739780275821488466668904277844282422487244627973055453170038245621790777355589051814376008395738192946621045005869376214985464440541094293859763282198489650534608825516835626466289035902866004949655501081665756139284744652566860634518129294676987881304808405526737700211917386800848593921246944163896639340405103966937318029943018879183453010890382599127846767473976611094196419847787831448417877995554630791683389319707462135618414683142300665193636248254462445290445514138340771974924836359843471791848144791095437094324757946248169375085270564251657073598430197591974866287619296672483596361284304576236747272812322261000710809028183288133226922103785533383597289446779176399490187446218703930198269856006961062561479960178460866786067058604165742242366949917875216341613230393743587145052207727982230072408826905990703115597587627433761284135075734900207589272227821369966693249789653406958284237861163306643351178988857008364058521154863411963710199725661534912254437517441268847803280563528123557537226018784014334539047854172636666904341095806029838206945742755588966295149866388102043297761184368807667791431746996799729035071355224817415758913003634850621794490949203848646802561381756412693816106526992527728577841001954678786338566592894337664476211752561737785226588473304410907943030001498169936155188610655237733872215513349333031590613919389938296534862802302820730501650986140436537246501926585428236109710678933058589161961481568218566481732833681300037690348739532079979395776606416664945926578402884539420590983486913204862434983580406779084516091029738416850590500349113444986626297019326000720541924166994313654941073022557362728414753997027070771074765575835213338771445930637795186745883907554754589631085825873385447302459617599113275806229885044325889012750633094491154793809606585496293425184163351116497799816519306317891433731552233852226367644257042184732665982103671926753052650265485919994838916174671197167047535448707672098730124735506789115020639846267364804122108287850241370726560968794831371891527780287978378176452555552705116901399022279024240780622063023882170033627565328485300979722688309882908048684574587320652591963486518492382955320025189191200501870727540299850468220044088485152921964102524186510639567394101821426775929353106158216695537066374263408733068177765000123716269805659942965680677158325770688048370162069474009081652047683294915444503644192292519104769138929187243299016762929228608945539936194643777256430764709286750465197368604885137019914004594531608910708552809932364451247988630980799688049987169610631046883859929273181505917918913330443217566001824398297671719644267605338828349623551935774528200024464647214780809906292419130614227019650032687362430476840168877933314364565974919256460157560411629069063408949833161540281141893684050783687371675622212718447495049416780479215072772509495787304270325428304870180644943569638390143107404996741605246934363876923889766471575912539255067913582797777379197645811426789914928273938108412806132639195489070060397765594471061502403604318684948291462839150384128882991398771307538047816126106433124692400531274353243273561846261734941973972791675882038041261876649092995817127084475639146949611873780072512958437821822899965925687094441089958320050914152077617458934010115192005891026641279165952358061623126349449849361875291183638810165174457750662221495235414841168399445029018095489403894807958485103477721447450461317035426786234442981979531527487867922714011931553103958760814441449315488913673277014803896339463224138943907542750414100552159414937443452157909022080181373365136506595871640584352074456198829607549121307347104662822852531134493958665673940310818795086454537303999214904193597631447341857845494466043336362606739453540300707953891103548215065407727859689718042302133259781993359884146529959485593180430987843694743264557020853206244394674050624800268470366912075157833399965597999616617912667701971732666901234897005500527568255456079726115237499399417327430458554854790647934334825800303234715545998254182474803322718642257706841944902102069202045468023529009681238469184425136901876136994411613909339992871299724566931612538100817617899102619254975715182319001731484604036549413627992686160983889755239345649399955655340246413375379341314373825697100995279244743422398189393666040694999397954956433907665661642451952462252867691633939287052081344086730633695097583273436293550134802188909403934478427430371984330850427322410707084249788708095026243570553553579858274476870592843038000706776172670981490399156287798427150631289521561346581348366713427403231627562189524555293596905078481406943987863926683585507881887322987239299562362859153690115019182612953987022565910980876023737750791491972370110447050352862689686390565975025933246516679372737528706427968515135790792374432533611299934158701218213026597213857223798447079874648080513844216828508238638878243078395067963583451688175520597994512409761222356871343064213526188993472339213759753703625427627651002357428315359616267949383328277542184034408480561379684075931772283119087599179950144912209347731440422911434670754452073470082065735647071763110164172675586124418559819298319404914340366074443554915181300144766566521495509560462362017456131962129569729279160207211281527463310101537815849546997856000920279462839051406899030991449352257319486498774767236045611623901715003401852220472942100556308560790691725066385383123527208374502454506855311149999807637686509507675450311680909390678629478307007227481947641116515572282288411096237460690560800598046152713563033077053368964688718515672796204048320929153909875038177702555441975518104782224753364913929176524352824680108517407370396200693730371044110829718271310159330736634753186561858209273855924609312317871607037505566831402992896500100711182443189472292015577363950422024790756338650501552625787519190010651041535528386630332681991728423319482030768071641202183053364889361413981369372050856718315456200019601953017123994278225894740252869620297452562128397166853277084325280107352263215750142782972674665881990256382813411967165387913364605063176011201374788368867336046304197312308747116100892140421259388555998165248766049093693834202566374610208906057601612192226265592352012028004005224938624426743878687554030072184363908512205636246015775015670188012057010930240139608290729317062132828373841256535840528019632626006405512545825721060110456905668284705572436217947207009470417020021409055703873316131824261685510532418638137455383728472493473691739757284925048899910166839181711154006643542283304372829309786725523385020409615061378377202304510924233658058353997343902245570409250888466739570725412823496289672225266624954503993514753867896613476183290943619850035039197159201105234591168941719693596755059649108390532182896886845524819191083263187217298273226589257927930417660026230948048620439392331740657325176071242882666977938959803602053232943006331866337332665167103310639737540151697731861824873115868424321528763120100986787014036844093790627784548561642764449491852169258815420495669923837916918824480900568488272097515285650322209723562215260480268186011744755774186123532652503458328713780753060902725550449197735169349442335169993156466715745986997204546815817018285415467545965821979969341646520270887449416206690984648414848486560767600173178671705070736390929860561288986737305719144995193547467886566166496350637686381104655624919282759527797330032119244653485237105989283262500321749360813183084021718158005049344448904488144377027531882992077484669517026112903169148754358294041834919767091919746473618663312791433354100589885223745937327088131087098048228852962479918944571099181512060719196748354938348803694094647410907189478261906715520239387492177982402094835634854108854505446039928884864161605475159942582171403200709899049694799656287257128710180821797820892572084394648339302255739220491274163631003562008662839349160203295893399367060070176824081436633578803005444474119245891126497795070306793898219711660676866676738943828246497866178689191458793216535624368279981334948597885722642576311198662952831041593628244169318539411351885632688470350687463455681954490836819674826026878064433390174797766504521311727511621957974644167712491394794320060212869796016410797543113964383346228655587346262051012897443427422320860476520499293424423655590690949729001154684825307105812024372230940382987316072201276292555515521551275400038453572687655608209405524203050865371917715457000002768760536624030531028442009108420343595346492600412015898978882948050134486238090276043639998784298039629537710446061912756094165313132946556118223239948833548791810511642578346867755172515633902810325507628969450930105986716265195389933869221120465644670132265033039553081594859888276481930885957551472537947018261721951235341078794623982851225710937122205433978591221754869928021222133339970129959573932084941803591043263508294746959009281464590403353192053457478182256645066976314844753404108082187411201476494920320098488787372171998170533440076170541293174370897542653302423237405780642913099404658877994512189137309282188596950822841821053384303042666123470011502736019321320452704751448139687706178721400487032234840253146473240813921051233040033527862158124995768149261264673339463109328580613567504345758359328829442543244933692459448415947415871909420748074674439934790757580955542705516532365782033194012848369268878824145093490601448082223576659818570209124236498802848261052907087915962135912004655220535621195551728284372241544514972560729189047013199259324215253289325861265610369759244036438322529162803271887976324206309934028340649748963259886524623053875256891385808023591250093004329440910393737885963983117909048653701020857542530231970726154517753666239391055400995270931481509545283812822070577085535035423221236017659460445557471304507955643556997006202599537466345610597064963513304716618225644788143818952282757203965386644476115687371044008808766151555978909196735319016990034559965724823679572332669592659632254544984164080596011361935311160801570309168167417002689763409522467655270076185262489462150785163384475222387400334154511218521084180449476467400482353075731614720506277700408402545100788838473312241752930743244571777314244043091490818295608596945157254776207380380400832817885273607970701581697843378230851664643667702704747007674782960552594648951645744327126624720894058218898038119676033398231885785585667584938564635449274864749988993332215222089817747696660736237625843021555200848738086871450214085479771590368745336352203358525452511432169862578984237675861713203221625122295172402410024598933259054239646207613907934943104456585779441878412565201829895685539875928117114297401618677277662217811946956456078079644006225673454258395406184722143609187930122814685469202918276689140957063399430334072280635433209109733024068364217521666059026691918317339142663148897072493620232570574083456949389573614973407452532888667225260746420568967984687287339918999899489896019377512138637486286017116822715742641473617120112406924351807768976321775366108230085074336489382113613234456123914083673089041361979512203735447708633595816856523989541375984344377167142558287710566208483875694289997668228645641246225439535480175923234209470919401082222967523339571166681443976129125446577258807328056571769964683552818169717727040477883385144983646683461660627800952240967185447627844865835215448380461199291754349445465256914330898056038826209018562351330626103635232924408501031185667140376990869831344148733742964598217944213658425222164690782704753492885932312870929153149652364891150733928977606392596936278898000840112122671378534827077356671215016771528969460755179624174026225005053551862779930219953476599362591361117365050085810375076793358989035459288429376361999199627016504563410025734095516992444768288036439072432031584866551764223863003417066194401481018066676284864704654779482019585879112826332834382035399331990331491951997706878126552785583493525346080128292771753258518934702515313058068190560732894147009110193661165979016508447503419464833229827984217893656452335128157813345423650927147481033377299093441962821719935499315372700241066957632493342505148446439790362060379919801587869752579407823402021647290799091570221361596837905483697138421751321434257901380517609543134240294883437852795425889922636232976396481471175417849688012339296109598135357686792378955047314826628256236487061301608456866872541596639885931078623210176806790935200820952450312747895328659548162353737626187879001246653612728088086372478667550897371637908690919972000237184345312248017837866370093793276451932278707948011796936095235092177678767231619628062593643454703668273275927575848780079894610440942849778995488843976542609054057349508054695643558986633177997917509546371482953833625836564590009780560433916684432323452699314764728727221819330020254157389672507146770477078412162099929072410153756685816041614514230112848376331569108151818142043943028548396313921250310573210663955116557749931098230375451756005026966565976549630671915811076275101217277011320005778641530481955882459766089263499894545396323660031538896624047706983231703260516264113717496694395552503823449457031713433773289165608391861166463869188266725533099470438579175932387719000286036789790323916656592575882268378854862389739957223408868685471708989854024066689323063643453029832476997734711431373465655124387069038260972837045558711969440635449383672275961907218678884831534854096966794000633723086568207690495278950476655176274715605373567903905769044647727619378418579011994201476582360445989045709066334951666815467588272044917726783889031484077044769934295621127285744045956862615663593336309598249650185489028454323115862992271136558422972354923676969147959089065334246917539330690734884614764442453130159517064279146075701039887025832884953691615082035856472762830958624382067470726102821815528047943580076393115585992697256761873299002922664164795206729922807381255146745770322446144903966076565044373981239426290360918094949348226595123662036671682239655986958111311056709753627123513304539030394934264539924911942652005143194326504628493301489084900641919253284997476237128608376899288438916183185442953776935242477768928456121888059356239778491386740309707548706039615039390405414996267359988934319416416569714378960724836729267636334466840744391223414597377131147232664763272954770968137678547531865198214433404239719942370533844297468266548334501830491876281588694464695960147787533287485334538206494653058725369732971757961458068791455034979442201360379515329398506070803155020891925126515164723037563181920015911306235171384019588951033980108087568538311288765620104388880530712654493527953986855981949603399107410444297657117991926104661980397800502958868022164093771090726358192886657742234170884765145103692274099569215160359572190473694386327172916943165158172626283817259540711429705741280372015312656234236482425642577470942544784436317842394235620284974310239425594481554318915203084899977006345376317890171574376544156272431178343122514148882957600567591888170617481183316382134423903400501096500614396876812693388193691860195204925846718629134465836751306133618147320317575971208806184783267954688735357742043351936056667198969771106354991886647535954550169155147532726791503052059938474056014869131090218853927357078421254786203573937754953498152426893818177303328893057878665845450281158224670979862711548152741919534248651364776800349894956653480628402794574712236030402402212312948684361272577199874654223863554694140109505262593359120675155647930781858152316095021554239994079416813775216638637808391154344977570184987484249328839548720743785379987166665052080944834591446993603622536273960792757390853229069439045744560112566504071646281086153260580043299346743699579485115764966693749661788354798827143610991064511821191395051190721570101496780756303718265298972149129498846344648125603906401139184984769883238069333838743265453182442604895196749187944638232571433519839378957678416199456563890410798168297481626658404735088100078071552660645872720892833362377655546343242346688498855397384821570121528163162396417022241621465933952292326396289651622366882573299692008643668724882154444614488228826690049872455668456375735473263039892782190509882247394057339160764050459072312323985074429422864888895461235814145311731522580642447641191734381300524739747187982709637198256740725707445475734300475465385004308288795486213065179174472439417765654783548820134820695702215205909715404824479126070145919025692896186260829335857845252104337169343506556135121225810186103101210798053296742569229694634835728193756683496313786682621171476388213596240285916088437556954926668178792713242858620863357557967156626941814136045725155365510701830484959511104287882868474055220059612522996602529001404478898374463734322566775746470801191829708320614153824910873762849747031103569118900522048174207670468683092979038052628747056198827101048112059656516328559133305986054738224269337245948519904420940151751151914459316473056758989309991876807172368367446832776844230275405451960996825559979197380712257999136547859878981906521240223895811181159860994324307260613434934658879738794865323378871516439990093963762580877827280291348154289489248404764981520756453080842174945854617087643566709370248007418957056454012719698755303582661911924856140849081535083034267486340102780000718754619777473944861269934998101740350023445418244979585296930141374206275345562659909872295567509791516132420431603599869286593439026613004828017336894605722009318692494889805512701523814249155637072590706523966998779249289837722721880083831311275972483487177686432499006078977064313839225665376518915351453227301499447774929625485088244515524638512798983467554815819325874631199146589535956689602265187794535840120030290971978926791144181175861817952712525545332670266873614456775306146654690103003195891122033117173089234343356686900887050552720084783693859846396370980360839267528398568331158313689737398278626070711682107523334487767752994354072781302920130908491852573284595139981416753148962070446431927810076282552647629445204068215706934578480618276717218176195240770853176557355017787997919307731116171723297313971256025513546763518812167497313874378715773783909469390801365096902868983829337224352111149907542467024801099998148853957202465512182674161295648313545238886625512722155735570191938390642613667774722170085861185221989937189214443496875615444045574091461633976110614517168262760422552724047023511798441021598907084947304026546574991160579229119813563034035781439866302824457022833853831686569257030442637166664405724245241877029187359921788669079137329653453441151151957007631846418893308751062389129851592971358180050546388212688656840087491035955733622195823393731101417537964035506639105956270312458995029589672005927082499564907806408736600241146873286883913286621541828871758640744784535655144690582104291788619073999582345948207538395506387362132535591616477009533889650623779005504771324468035688852606125715245385880903636958978762603061400383985589496836257947303858825995993976921419178611001360692469559119203765485019426264234889039493229448799131563860826926138222415237692416211110294191648813548541028982072266911099051464798015323073648711688632612370930342785041631387253273356711276815648287991739428270455750146658932341530059021484027467802918632538085429742176551597403240933170231191480539606775379122631221318527856759410181031816378137111650892995141303648400802184467910979623800240020472284014923073935881151652589666385902040966961414433344210258564099920321276538051097256803539161600892186584565991481652754141520999725929895239695490153486978798202240736623329593820064847274131122771307733332583738506048821597742274271883103293646452394022866837011802746091213802243969346777495265156189231143883487701983867156986377171286705081111137709443053691065936329008029624895337154117118605192039188025794421094653356790726986548269606934192091839575498022870693308995913015615985455891898286153784929902421010771733025226592420441439883706639955336388909558677829146164333746742650583701846287206407128360156727645709127823634102169957152828141354115312951094187611338640398974653067490417301195665603702843554383113180279341443586544998567490177011356270821806651468373717105744248817397657142047411311905268752604415104998409561195948235489510224457564884363802321479546340421968183467887167308096742733999719852827634931332548569736681791469376601633076288133792415554560381564319698196323889058519458327543738438704038446205400741413845471484178364736215374881917593304676729396825489706136077032341395765176592245928201813500334400695267525711022057253648600342255362149538426070882912077378589789915181938020219835397442969842574448942007051523234341698441989511035189230944167883650945520807149872702870498191910925371061296755331293448036085596258657298492498320823354763927409187940542345112741826025928414134941139309853450590931946997549515611849991546157292967286306763854082597619541058704510621974546150272061363418605705402545441477499653669628569885070388958342274925650795864156762389340071424584295729583812474830504397068318100955927321846944279389498886877653749763747470276183464842942776667402828499768120062504381909480813787626013730390057329831934116534459430066905472664332164591053182797606555441279880198859310740096832000199659259562062715092156723945462645465256725721258785732816108226727490961476248317329537713763119052060108569768552494384018093750934401261553901730989113620447525553604669946838448697209904734701583552083216261603248097475145768566809948292605841257013272804449284296401604880247763505274635724393709539829775501350417615240851199419212840731963520468975081205722331351314760016800056629645479066419670036522399608080195378870243945956666436040432233020868974424016904244968188853004135773104989914956261227648821423203544242665236382056188432852847402172863371366759259712679464655478434076447275981529191930113542066988945736604516002386194985245770997462080619249132712056860083023030205202625235736056395697782661047240913237893571152125211213434759927061724092176430325926023822821255110168198093715949814699402678546767523480670473320404872024531615490161666359599435702974848834674420536689439673003447687717538516850355388757718987243180880645585072525442163963960345128240965046763121532583364996248950151526669347007083403113248527601047588665506106011994759366350789422636028030832417831241871291918079217445020076140960036443901940257811214915308766578224713278500855812476344173299324649468884433895252686734546999443186069820621049532073497395579327974237977902151359246220929158708886039254266936048465534346764717962471308824379759494331252592619778532427683913033922818695933135653255303306500711655645118539027440375646753759795534404620093732502383993063435194616131778419453892921339332080209811989022627872065885767468107085250558802690189609571093552352538231176906970652890207873046193945548091525200416497999388796548564216714760293802498293669969960400721537389154921929579904552977913840433084043024956453860219011335683402671740496846003749242909939092026536031688157774123379132338644175987165976521997663004641724575682457953938308929799315121634125325338001185894700428947771131207466193320992247626564965919758824542681704188643698998254807177528858191618020378880408378061729288347987562307996824688451940616572896316116319173244761513656729033758439047062285334860476344197621893936068804077278932889758963969042976386851749768736993642434468732855548354397685934979417509983188845411991304247847376584067896113110913011907842197969966653700542366918474096289348570599200616420871105995891320238737939396973869165361796839397337539822070793943566279944645732195338669615017936029390683913903976134554024193218737876249085367840065292345472294695010939255746730100320588048616482452469263019838013581335121510510717824421831681494563418907917152621593207030901278752550751633332026384090665841939739028788146277129344587933322785398816318628048998787540573539725087649708627231350201295042383363749517078070171590618132024114935778474463362384276745953219439670022757881385801276048295965584629318205202969792271039711679467394513241618039275867030596752358804509870240241470130396321350720945322731338642087320416805781867190457178591777188853361874540646684945159179610942951688930860924512695043951886158224297408673668196922903180311105925485242639311323516024692270948517250947328919804478473401833087953254213446676141745572355148104184190041135541814707874867467306438986014712790528614053360337004983906298485680420566604489156945063565397183914285243248567802056688306096887712328806730886426796427290858468992326921221832370416460864679265446884950392482162184956297842351075076423018075086001059311622058594353633737453698515629582493411614113819308231457194053587417401783098253778684972272975348616033268066297185575847243999290377516005955508274952914163963944851576825812332906380741286342868100285983027807075177743577818914722542529521011283148799276732543505810652611220706972216826699562023274728102864843554756706376701182837322225300622088718368002602125311777171034020676407573847377211732749175164905690543465638038429392897590555443084564704867745864650798866683317768728865776965034241371726547777783909116089759900958368629460654007032480507515092370308953548044529399123913533777182846881646871859896676717908453649689841533671760443358396371227829587374437148222188850707820902295176997752085554904190109072394270834774645804832728950351701520674965336241882307818721391017010111875637099217804240204650421400113660064229925194109769521109070369329401035845741373753221980199253720455276215216245477343223311026718424406326199712911327224763506619863715994879936910413491015425600952035042227441765702356081641270903496019899653740198501429954135188727212468334474934666865118262501012780206081523330284553691356868636149332448762808883323807968551786282716954591667585373253890199526044893638319983052653462023101804078741108844850698498012813553744505041126509058277296672892999547426274983797545381615855706285415300396835579061759907789287450010918148750730003746352557387712410141891730931593750289525079789326334101698028125710696488593944029038524397497577008003426069737466003310147656782414354528593575431602763352383694644652932034509685402838965242463470031091444940110494212910052863403015979961182781801428068376823554710082192687584325807884869211086466107018562651102895007787937512509978371902723834547025511285359005957684136307356333920185213545454491702599962714655682393730018582487516507804955860232207460733149381455146588450850222460394461153069533967417758780955595465370966455661299659272621823151165128554125778057742173783734283330811230728623257255529152053773623588607875378672381766976025531160479752271093701051995781956147242205375331388718441018607827390886509617853431454432056702344511358345373071532011815868457611500994346810432983451599903641954105518725673795118174950189527184650452162829769425749907273912868610172202810365993060893603902286186924846231335763408054644592537076398028788308282326570569675749756372119494144942912738376604647720470196006507303969772548251939579745434093202398072279473429893204125499481056315282305678890235355941817426550916287026166636248411017071990337098385062113260397899477623684558202220745983810953849983824731235676363818447662156367904898477565007357524876121383553877272910089342014756725143013381735084301102606582239712906079711733058373182367720921841067463918455560701849719671386477235788309933785535934042915498371208749427157005508291835892801553284792157579314962864141429717509170420859607062984554718520803845353001665269167018713773112988636702860489114309712809137373094589282541999007296262735538143848118106866471289729870472324562295918507315187298420728460531622054552481999652296658230000502459356591918642134545299590067830493311704174142739291613740804087143078145196049552733707162573382523527555323172196762333761912890006802707044192673982920417335920523991292740636540644203064959778786884409900968592090891263101799608531738959666844250623325735093872783945851930472449870530691792741610200418116845476423837793914906373087691784679457137515801020592487425929002521696291409991011810502773679511152177532800094978858413117968294931384909923684675360115256000672500814271029271264389259731750852596315269283295659347647274880416927501666433649494481780905371852738141643949419564181918922327037436937646053400457140273890964204250677680077962311717882753301697258656436737443316077566108662295100703350633175715054058077144177775767299143384718922861410731737201698027131082179456248016844876349902282681435139028459748337205540658201626427259209616151490413066636258482342021453680381386710481047122956126936366668266134027260182831670553149414343415871185513659253488586773232094910726956505947869861782963120708982730422556312569317186827734106598060232939109581243777904040803951688332619731771800351401837227385947808918398639794850842974666800458129918020241418332149730160526426751059549618004409763188092481384697249958181786792184793376425575820982195113212637198124240231279114100950128872400028360368821031751514770120794332368179861474016841434736414020633773364908254270483241178927848052236933845007517756585406970885105910666488597555996515996826111528196622167335314907717850579708600382399811222978876091070985899126709963231431277814436139832631874304540510912798665495353630561776271029572456114670404551433618439668262495853672117921429616202464026564774060463553114427874965866106434455566872949228499387651453178220885432264483232532559817972397456690995149919543789579150407360304761188658533818415295757791205572404064983923676891754963543225844234192770439072836350620299049085716901649194508221714578348742389140576029024669927347245494525005862554892696702618717225113408749206307245580270773674375378140715885724801276263426714066202072747356598835010712778260024153394128124983563102473182326297963908148477682882288255975363144271517354676091480086725263428201302252289376909481142133670463771190082337584171705765976690765447293305042204388173311487786750655644481735976419850558950018820360142936086574643997789177377548955085239433664698250841707065075212572053553127856788863487313412896867665383340315858248641840483217141241257848562680391803226732152805754035878709707407310328727746961552229363932672246030636043523443706875704868190277044449115540370609667098094181419881080201462839505892319635615233160709971748367569809726955503353781287451597039904958172612452880181231185426734842401147190597462427387250965367360146724887039848309679973280868487584732816950041211779660017502531318540762582068651605073312822687125307108618766546034371641719865891108115117475199187324999314358219360886395975866900521665930852770773861599165650546618636231769590814005445834399735198408464835633167840753099145541418592092008343725195804425949880239269215205331344045893965559761069852149977546916656792604038378461826270811095198843159094955506647259516869776948759815546049744616465944620831647378305338520256458363669897057131078900970009182256333180279127709249515214522127708114637781156149708390399993943529029420871609519321978933000744761262448379491737600676750335877077453956415424413442446221564840916254508044564262668059402752599305979966522069807836695130871511628856511768471770018424653144418568067521191261947150911167921028406423414598037178795551490395483250022654123422280175001050013294396453607569860588281525421728999337815458336808326415081252755636837744797633699305465892551522202761394359575729733435271989642106929303161111070317972191253777924367784517264041123596448017447967878899763550367509773394091471948147364034660733221786671223856880015907235098466295764547524930212637763955519077996799242784567859981699840717849160937715601577506913889180032342952125798872745472792383727174289441789466106705921850926199769304843972468726266901570776258436621540636369653290527243440289304344651244702985570645708505533634491100880888999702745434521458155419450129533396828172401618184308009885394539766635856395560987461389177729456305715484709960190734134462458634498610771503479378174406641444944977014008758985057699511181253110703317281403338532226972634113181085914451849855946191065191156904254355336659352863508681300611025816650873025292326298663757922160315998807332484380184381049681090388596098150753432062655293371590643964401028059619599163020576530395597774595316100894485030416676614934624082202398058588181919229357349078679136003503143137060896859573140684735776005265672392564869051440119696204911028873026695622989414519587044109828372971687503511837219646408269792208367510419795758990990356945281235563185235748553305383796493260134577151464198755388038312192190761101791704692180896383410873018225749313178654886368192447505118556537897129849906481701685803201094614081205644108742196704737237350157077162087904315681805292147079527052927722947777838210093653889656361851980030547615915122802609896706378602012874641164315752593197794577115407308650389135836024688745216515295238770758070625246594380176251636597401798590230958760402690954894373290395197388457038688337194331979866265751946816834400803156115388926448324555169788938666476870770688802954253187515456203812100601003709292427554811988959051546678266547597446204271856132773675573293092851797419119702983430825756428287465556643232964769623884029937602661856645626409073642477827527879247454667725088094469822870708196571181654781990896768430597769731313604444474480234477925954062144801632245129865776921296967292650354829706390373483462322856945270494917392639894968294300260954650791515486495868180708276352675072638219870498518573046318501058277447481989742117759950447442609599994364137492404103294108172908154995988006903436550754154409079388542379631755717474179647300860339082228731046747702912594922095949868617983520429071755392124673992752512744600832179633381061986411034352091290836813668454740280217211502175197786547098622557518994830808220127411113011494252831886103397096722050071730409047053284325412497513168887029619878050664097814927507119484628399086120831054703668984456210463648361618045270040540239659012055228782473246885502289453328282547537220354004985181630468166549942009743069964111836990369339848367650839775748465961492044309163337835104854761731590471150201406289560913309252626277154062369923298609253695060010956210869686310140182999871122025020920994851923060661949509121934624082664343497094557806495466338332417939651747955746046478090809816635015602861337699064703624256546545764239237977732457751944037454313281183752205326161278752328514246937843593896275584320064037248562439737131794771422616173532582547927641528079150566620183377925851072544473540652390584535538941655154900123909210938429199727336350531846092448587816665382201280190437264873406518882787256283114964549306550568517604976222211112459078598864717002891799218500399630344481549097948652335938054821691121743729186027561940085298722764107183523498903939829268226809012658890789648645530470831076558090077546440454095638258116216713747808693265123028551298403634448059820346923896188447158685962844378101496861448205127831608996692718208596217421580885156485649868457411339799699144457484922518403845354254601631755240665994963427533511008937177452448425376699468513273458976727131531567389720379103147839396357871534750859012513897496171720318831386385751803829681153882538875575459257771562493590069132960894867588579745766462719159989629491637223926788518316018364999624683362680372493437142236306113639133644382571368689645793900694631808986742417803203960310919071394931044809420794439113717533283044428942886952488274021650315542770262077874239666506948017462667513205487393422892417869778013851889182678734403904421302044207168758236157569916849634222641622741678006805970086939745316484013074037670891019970084379967847282495039788214747709798403471421588948085252230718148602074824870376530664422874559424878944801410484534939772465497061244334536743706453143458423615483596494629370187661043668499308319153212663426210231567246014951869955260696379279188505440393957218011293788797445170233175012683035875364382532009688381579468509023690472955077371309702030711899466010679318648284571226026520443710449897016456791406771433343302076410119369418738027585260955258453527099566805988243544223284675411279758764986877629845920069844606181156041789760912120086081682345389901870101040494405317656443459255628480418823051915752005822573093983973551341605291567836063972129412439851067547597808894023616723366031212735902605732021576522045289107613535737607085011513097385630278840429162274751774939569695218675020619002764717320168819985764064473353750344986757054075029714650274317444001935124483517471038329917024870804787837302241479695339582631068077417622789947602074123223954257139759703947811762776257828363571933660635469987101253241239257706783998262624345991298952968277165934001780953572860471482991230515072210486208813422784567239697418713335833456295002814223900615243932985702715942319781141092906644873193370159432744263891395108652643109138956699096945537082906655751763168094723080882930884618592904779835482424987834954966803700847609395061838459244679093084154293197875351315490871449461244805689409106905293810554425352549081079690468298766535442262071270441053548438575782498847864525037465324995096105510435359517479403736270622855811495412938544227926666623684004365257220689631939731165452866638338096806786225231157240045572042088291695728177550000196232197278801331270489192018747776636161138562357424978962626018338776287379449129309141995701171690521688791208197732413154959020105638474834189217888089262619775111227878764011834843116092698876515225634614768013191810908389023276759491668318951508446640054708833203276035587712329690300674714871683661972945625220669476505245278252863149527854569646281472187956609053379387747174409361620115554755294643732018234891777169833344597934680017940656191973094493283945784694382430859308350133606520019270012685150991782828636089843514397214217202628618298105481036820641435781299821751319935637516614544561847277073277453056458575348757611661911225319596017007748248231067846126459644700720385249131904628829843998119773457567428702786252603512112507562579901993854634576484176989890029457794937425651045788555412889592794025860280645290300961760200282374231438077964955020423419994890618719080301967064887550715469958878374371030963510466127219556926816390357523807328704422695212025088053338731324868668884484557705792010287487501734512064252446989724841874689389155471040649805840160275728094846274126041956260331932913981386773758978270437707093163443464722429256378965102067575251105948457741034415047578979855391612126885992727162157284879544190854006608865507654257797779911703609005632866614222146702536401591922823353694804999391249299952088482700407425897543627038111204802864460217725373019005908282015703523509213501122528683593433080131208869349336123446425355066078766252540216851594492897666726287512547624541069924660116461435137599578411802340965438766231087618981816953203574919615288008604854586052068776355760904650467039189276586397680965137844552416525218894106732223586422166717568987507668921726422741208324275829379995108343064950883603828409214104203477365789294773860862951878732954242126276241785778260180427082716854828931789073378527724704004847761397412587870405906158493206947661874240626929976267858779328347697842733489000151110757118610149400155114406215705476039040380467315318951109181175280448702150542753681159764469969545660738648355400245848431760095928491153172400868104502784875610361954550082262628831461939743104123011036922635648434056768831294831942493764100331470870146628746495347063299326334889079890247875175582544396304947091442531802208108421766881594779662313220382224043189199169812276810391308595665692303982411908637783808378468364165030278046921336501663590706442893118143432932351014507124468874944539001791993958526391309193059874097657166206452702750522430329914882190634237010468550608535418186779316124000638747470578163151525940246761612239078341348667096747528342323284382609570278372661250717205990825961990461237215014863126584387431779592636079204829841814957722118929022782530084843423228935980899141764699880943166137563736978777235254409296508067263516854943104486536821457596965447047874641066057980109156477950235123396864575762818701360952927621438154214989100461664037385736661277634865437513202318468280552452370998019598022430610968850240228683437885499286820922655543260183939409687966358441368670193238867740191859948668270318610496699044592131614649551661101719010095528604982499150011975251144124036958355099516723921023774716584062013984073067621322944458932389758447364465885776841979708597552543277509140265481261905930612258499628375606548618939311100758120168329080341826004368265198870181979232075121307884057006328818958358275756016894868166978845546203985106871357621279196659234023711680792821694194291254657699585327299710011522710737876570849684380990888747233790261039971843118416132955338781768962402680362976874159216612376501163578882266009979840570970000825467094729643328374596400417469500720467347159428651260933449995511632851864056415731103144641202950227994329600713991877312393703436717167974284254217512086747854777252866413757790237299590429835730932046175473156046230960025031885309004565233428936750827325542083240369038380863945309516520463594280635085724393846850428463802121331735000510921207333750272083622709344741821363162509997612325307166198809797724620795161816884125656694725689101029258940891316427755798142327040189582787201038417825670904577888100527734769335533350325125976052686560314721774388297630876369556724295434956027214829960039195625320455179245567917209865526664107362188045576731419569402244732638628322370105853731367857427991856221835460445722919999163338865656008154883077433492021752682557144433360617561026802549741068465065925793960986741980865354814685915699039880861590192081853850185571043838584196963437743995705370983659508765212918483767112433372198328212277548917170493309130744009798883902742816660534514563104472811648773550399120256169924438328399294579339243253195390786751018754829942899812346641630896245837999449245205284359961957143434468463161157591065035901727702640322910067045020512122280396858493278676141277589543091277620956457523195649777889049803798947759059169012754485699074967398162472952070733191777760575433460774494082767127407994501769649389808091791459258007426216960272723701268198696543413327775651972833230666077081652731511762685272332695555051005275985798030302413786185933961080666184498218365851968735715434812332298111080565932257568427215276641908957425042752966116841153742195588429582391814064652285882281941289637486883769068422844451777250884150775066813700848689229338690014723146749790344081824643716735877438138026196072349623314842418340060815707581100101637087851017984793271020008159159743646981984534465171578027581773872155911101604427099070007096360636129771004120934921315741476050242220877450593019701643372390296247044842156269158404452201084860785649930134453077249802999618823723437777787589019638433269548371704250009901291038038877802097208117201405249125389956586772919679048305896920954273965477846577793455990804096114770084460202409921862996901831719416316962062180939288531452369800704465116250923333420286943617013193847188411590336238374426685596158928363272765888885800834034484645564322970441306076322866713489414078528840581303105603868424394018249738316411606006098732972820292779320855153666808391856761620929555397260239126796563347562600081928444875355919710659286272109368592233115844788885767269953751945637284458864531825271792276705987206246523697101501509161185502109309192931379626026300131470351115120563876068598435853815952395155407351159892440268423683399170608057021968785245839653253111208479731511808861603582596956821860911515497581121586423027874164834679117895391566577241437284501919765443866673278039052876916032030355022312372961187742926342587080869093911342540580155049479742129903505676896233580642139371166700072004117675437154553020669238489297491934536631784515972114792687051409560453661571076764110899911774089365236036798637247731901424247748705658192972738225736517015609886143003187315385666697352894408753384397002749747173952816943016611031719256955821820524080820922659514141038962150765408105848978512484128777907415005942261124514294478046053327328836993083652846002603408002417749191827013525639123492523771698982310806544609021150170065752865211857817824351726314012282410575382157914768342484586849278322001251125454697482215379270643630561138123663912341748631284972594922339574635435045078136735371121214874260878166089086818225982433956368379583218625515692537038239021329842559705443791992159115270682957490706528977596639391830988593129858912617333732362878402750639503604702370640998559554353963718390070481538540174483879095067120446651002198389036385671342213357993747430542165398323352037776251825050335241595642710760086274925625917134761122151067171062019282018245252756080601435812399884227611306771118842513181801416305953918396828911984412426884744422594512464730829683629174046811690759665525367036950142058133425326326226123195935812039940724063520634217403159340066387550810209513292465776308732187012368261267242177801708403663216754605224073577180269570548726164862637261497762478967414427526169638035316417572204280730462106265683908404386608002131829476244332448227541013622120412322395821288172472986006228481481833988825717208795322979513324015450191263839932657790950731008464784492244928155883046142861001212557807495459182057040838876292445576925767787269162214713227984564546401164339982489143049733090927394473564437966379722329332949012495519639537144764296648553255013344014840517658319053259535681336832138826513191529893704179992556114419556676111345351121464134203246755971908079010806456158315405841640287680652815847369847001536096085631643265807603504322394414025605487432104266241191779811921416368825234114783261760245558026705446527098217610080264921717170350073465120399742406046933588855949730358127430929849543287655561905450687827350339506491838765589733432306282162725607816306369430730426664747971039997268163058463976330093358146923496312187187543351173813503697177830215283309062405309384254688017707732802743229516019722039543788636798431048868518880733227065803156364704669628065172397160376417593575056213819468942636202366750851109636861751332488934916168775012774417981024956690029084675698363957320656031969090474104158300734522410002426765126749349066247686931158091970600039486333151156994355939310414097968139595508040072661109497835322069143810322499839822819164111960159044402920110603528491668700879908481666947195221662223047499417543239331562952582602817119346585007528703804040967449535587672156069364602260703191362060938638368543736853755532349057185462074694421284070941585503092550061923785293870769963354694682368568430134038450827483732790861607287916940854786074333628318263508301477159193644277097727018269081695597915180915351101665940873249810896732454637826309048431846105858195585436469523965496091807054626520944629537086351725665092581411964657311632417358581175721305001416642129231225315082576909417632298802203494525525469773920294120862507031396787551213124571613540132306808570308830640154178264838021169724328617148835021536339567495007824386057764401662195381864459195306364067870974951591914675331180444028409829983126995026225398195561199075018229501380293272197286264684272387910328963423855706532522290853488258667852161625926976913890955107891565809538894573976022889093851699875986126911046901089401091349344602731994363944331399735844844902242946661442521070178360328995497603607329029424105324877418935552751909024460043765597197781499821424752982436339713385165849591773784086357567774345009124796651877122421249430953487008849905738407828872747935326106777344741092959689638380357187290427268225718452226199169925608109423964415640127245458679186692467014185713135406638693862770518838625367804201661177661255466091038568192470232749722979758724737073512650843542067781381926700313852762307656150902112029117187902861532673247878353381696305079839838307379228861177347139562653429522115323215474044832805525975185694113157385811365118039772884261219148897526400407672798655311269144589885556966703837553167611771814705811512572523943650034221737810707008962712404305245710356259050935884315638532445555299261929105904422760172944163725063221118165059124620187668487792877467738194300656712216653352332020744157572670279770947750890944574848704307979646169598258553168752675476410942456740111486488246834607463588345104676052443133681661642992629246868807647787090243210941974251301616211358692914726608791047851466178950087521269487871547293260895840503625475950478625959228523394817312316479290582867669959061045216240556360967061200801423556330621130047848159627778112328520477166522881958434363645400947487669750403505181904749639250375900071376468491906028822925540906844232893442542039598951723371950688839457784796017521581766622296234283691733872743914757888952739610215517072835122894923962488854383695544842007581446603740399157445456198216737043423042567944146925693542875475832537712661200029775932288507802031419034918661694945143440777926573777393456704010156813946402532305136052247866455836868080253903911699348840840905865702526542121832949236212083800651333529384775518621906604455668729756329078653467630882525440416796510090130504347163494150667200598080123275647367198355961835462572074749365908400102558434928578833191421057731990710753690345875065633916736229551151167054433763303370117569663531148932691174965305559710404373567930431023221142001683856166732419822207698563699450636826733955106634199757897432386096918440355965792438202447379029993271558884639352958155284681559583530295829687615405992846481416289177533251156519997293319863667323425302067579378916747316950882371526020111769586190231028895802184896410293072842650157187920228812140518720932131356591467935693751772783018173624745711837805227158441805584142069383345885849367760359471746934217569765958680178896805193362467480600121960290458496406653456846557396411997895837133245444295060771615893969575345887752655702774512544280714685480227209051519852971515793740725493822610656166290663389747355562786368082724941042226121534470965212396221389804589998298474834143351150906750224860890161127485349070608526740698545789836339940720016202500564105055067145377191285817786207892445034206796157365545535007052131829099283717774310816607132956177646409216686025283583758407154264862142479400299369876495065984555492739678318816303478925239703634386135545040252644593122722930164626845068552240459399365204816954008807508989020560902004094021503081343454837931833196367695165844263545531277177897939241730003485977828581702512090351519887669654550820303387265995500672745409540529828971569776914261168365070168681579076273357709649094447172478138368176404329575228912763753200024055449588606985405824124374695577653371885999434664476793889213118065577369406794846920009131053623651204430111449115479050106961977897934930064197784866301877329860424398988462572803096727746851688995021992088055934808357213589880870183731548338055970368628025743484078173366142989812529090771007688046588002395750291442792549099709260992625339364752649052344660775803577795907628679372177228509635135888260452296584903238596992793056433862001128426745107210720165371414865553612261528010759298801351559646993429926498752018631873135694753013331393305957588683408524429851518397110606882631858263682640171142925242696414839560532868761854061311604642923152957026450375787860924695458533658766947072444415545944303355853245843697682603866986962944915632106975062004561239903348001558540081461282085884177985042004012296965290765359539367138439441581967418053116239100196693596121913851912344885153744045569876826062438275300406717278887283984660198044990357474396018486865316442799811545581820639697560859838673282577533957822857317377259588021136422002962811318971759341015385552169677846836539008526901781146882756208439160647854721936835120358225420790821269451865595464281390484841232213973650456330678468592580055574629037267626356848099420321901241745578460155024566223023641549887339060343660405601575247652499743697288586324995577207917122632380054528949740577068889277615400308208647223477127176418351227888257206263096046237358110417945783461166450491925523300364408097776443947212295799895496903407316869291604838038024629532889952874437216337764062796392132148515482737309361345687454365155640924794441701365494930903490474765123129195079571992816659636617275876139616891200107288714762334467997123196418237161005888472158480176052620821875264115225551795941950453103150339984800974974605553235950844625937910782524188797989455825070820700188156102584624601516527196943241965045347558929290970291997041277505842578396661380327085568984569773258428476047905915376338483611160763561093657277821439612691867190046080121124542251066530146399371991678003945312997256442805970696639622668846609754202735990656692976932568891874325696932019682568543988862595719401626618258562334186292397116945706262662590651920140772955370084535704220695141667651128844119200416799899614067598704639852470585699599564693012078663417228259978993258582249322573459947059191110533953106933566959008307167318369152425226147523789015650144637909412318469681709756023208968346429536837174527877680720242113804777140805361791645360255660632169048308476380623762330311039389669710295821131913798325295692718695290404796067751412766356551431347248349453872134089282744732263522826701154454779349947438571812501343675931757814288972547749736140293128390145246697985903646402237809119884369605870600053660444027535576520080156753699872287475432202930448341830399610031834321523854960917364094428929337041820272851765077099811496514990073143417355771383409280582778777595311077021357110264085024130032067394132446225221755677352993932637928587537378252541182323222124784374456760075155265523448799445534640721111579281694647933557758840332265076465318151677513992034800921191088022302751764818162874929459390227769490109860165234043674610453296855024071064736408209118870743169498356233133823651468551267893630430512236158270551931665761009982733552523362064929915357312298961919751789576487394925292348576357122806843097549422765243537059459736077690024803342157218730642384860864063224787511514154575820976123845736406860316107280864885572888034781700956216471737038808123174352595174121413424899443187601166810076717222019534851218645319099831590844059561576323437522304234571137236539388158775607203459559393248886057131120555074079974389781292090679001928141844808275141625782219078925700585236679587387697195397673169446915534682005538595041313147370775462897346924091815830449204064226079111187105898624129197159902581772718004614642222025366963382476880112582820473124540503108040810869200809827337617078226993466097750423290022590827070168990383340750170037308207070615307414203088440015043812898304859916789414258232115447995446253932774877114437181442972239515700904299367357928652049406603594607043727866101688157911336546376474471177172335873069048164982243746312922716519071836611832626480937951913205741523676974028893406585248268321952276649890810511361260918185869375721432267438171688201616981934889997323059515957855357369035105762659717734899085848088090972255130598555137824880034507399586280077369930448371385362211264507073830830710233061106339515719711539898770623062023292968709187170123653775766653024631081005325871072028818255468309249193989950898452434373417511448117412952247192813674034018197975114261242920105458383010497853678288868778302470547578360992710661009895549172791707343226738959768347694995322658813995337071846154463111976343538801855561272089369223499234570345921205824831598240338126058722537301954668853067930057590428304728317533841624636461845714848250772930026798341611689003078539880643405491641261932034550894907027550139232120137734559518972942979632033968650648695952209174778924704563561619366988103776660916272610528310008427452077082198541377754091276482331797644347520816635331115287839965054006608738266236493167770850566307763519030469379232086205174389446175835298070169266306959197591947538843883300807553310150628311910773393561397765412252689221621933814812229068345665851216040408846619462861641257415236655308475188801376203327089433218397885635728999408590717125238457922720277922170085715223533213941242614684209512609386187853908599114387159595062698983374839553052733207596096937710632500921353436668221845456414422054303721909227254159945318359011561947648227120891824139226854046433504698388124291185332107041738863706608180462306878603610747969430424627784177735395722575723728153645297722785149605383291761496321914219385804418245487858699973820252934589809937592836737669303546569497063909458652956101842348256782181780114128314291845542710352986239014145546343694321898364139698811272314196905166905974677517377537413073322354423306443537518112364616439822891433510682090692487572885761132757235772094309786104292066650156842641448790532573849673894431038988570212482786130035278047485781607345449634756359570234251189105810164496032281152941929577438173098057859011442617325520111843800189396796353255598898328725695655630646890248165525169094648583606231729743283272856925010134393338668908614795448207592626313116492900993560695759140772779975893130898675365192478360163374032260006865987566363957880130871825548891691611469458577935696600329691990610539655629287674706667468824918447783666407440121589045753517845218398925586770675723177112749944394501427287160641494647721382925270588854709896607359198212381772869801330862902440365446118749793071278280310146413195663028144872375791925060616918875987452460817560366293615559002044911542145951134063276399405274811157056609503119092770141166268306006782142621390236653601267974362526007762729341937603494609847847804612533392851704596255346453708319167032789735513700521109721451786989931638269929207669606826097770336732913495976959955334494086681483820007438548219914824040286751654437984079503396406150570116140322545682650320358721937740651536794498537117092435042610078383663764151941141874474673947137597922808843889584193292205662799104576276082912021406610782257651656729416927737989868860468154739218435745036511149334615222752181630669738202696468894349341664685700925655741846121639674901751854066121617427561176077190011247124608075821847748254996453281550745987161951568091523724129180901738129802126062527373786121940496481819405023169042700054235292613197985896085531834928211799027981127396003964271713685511201703831680705722381495735052423665941648992727477258875411666777190271155903238085825326979477705951368201098028654869391367154905631270214600423676423007506070141098500000426434359092572537894463018029435397227539706044512265354648035918550080597220146609617138230843438953124310228472633389821720850297129235878357786134497581890667164913209458295505464496839679070055278296679709544648628744820248857538623479858946467483575319710723255159979137717936364383082789209402131354164955802079921183034688134941560597061267924224551235283489984949298232503339404764215786128192849253840773863798499864342632859329215768539718873839479298078706015717205612080326771590190750256642108385295354135502359306663451662191642161956067778285964683584080128530404198566415019554768326530027795680779062145410958017639323984752263556062936930383705304236717421465549180809907647009355647430568835358540355757084217829966596568239294699163393088824751365391772578823406895178713548925516654297616709950243626372629635390986836358366731821437792411330199778035981281961961732194873095520368869976024599046394500256429843751235905079374258630285330019875656278237994177585255630224116739325617598912309080619721761852331314788518641295613310000824460480714366431893596607854292176675938621503764042907223384921260966082332385011720818086471192515763338466545523701845916247613353019311863586626206342005712007843323587298365722251669693529656206551984873897731890280948667900094424726192024003867278760590060709547141964533791156087419458226282509699684284880729117072376382162482475503034194603159037112814692900641073832987767635187182713317612611639586712910932752912246053813933471587669719302024753366810768151418793688980133271210510159806574877141775587385891641657038796485664849790742728613868584127239781795608332305134057393987260699324660451868266673123541961299720003535763089159588488218755427492858634484547997347207940226272129723416677519522914991837735297998163860976576149075292017688435233640036498548872250527319665822082414473975629686432759873112276978438699763362098139695504719785733405651887697356120664987582993559884606992541284485487493953558834163952596815741210541150656440011249553544902937702849408383938737926608933133768443204186794554068284317411050469238075871473747812234319547811826834351800222178965111894294138491092621345151377298571083649307950174626748359385593978620924946069547776479530802927555165666314032589396890491657837109409389745958329666028046228135985607575919842263214324860138989551160459604716336518112957984591916630109825514014190565232029625267738393847614018594793741074216971484340454333875701848205219477835246420955200361180750531206537112422155004198561701357199145444747686240529268802446803324253116473953780558395337393785268047041285733606781929000698397601666022457105614230498349910345832383539199948308137080296325668126896976510616046798883791412983252727438233718217813783431094008327832180502411044245825963399115824460612364116140264065748822791794851587370716708665843996474831160790349842881333812720858180353512819570318160127856413543758310033057710697539000320982949162562104146578856050362994809374007858888557547927553383433569741712735085183174264978395201635362337554402381001139757502478157168279369147699659967404020171309271422478279951247734021227075525348000283518617553793227686292761890217238208480425727917680405377556978247344803231303818994388997988484645347539793441752760699720357380338943210893046850337334926359589602532164374822601998702396109921014757429658066279942728391784908739078150080917031199484724169458308095473833531322313554499472572443473295527730791899456223278193804968918107162637159406480149570959466012128884728063593507968659810435584727857408626942195234125835172208858572204564571619780270573627954027052160038708392297877528005249064559322215425936294990219631807672332155805039043046712782538408212557595274169275667566328332816529634266976270543639616500940512745504544555688264903800351140924173015002695978895165801387481917015379770096731891565442210706031170183472429854876321423002516645156764514508372293142755992531012607241439565743080897463521127434521003714495349421364711971450241301447168069503930849025512290856821194861885144976497954698692785762848921308428443561471064159339420196897043914116975325785826064375964309797536106733054871370902684758774094539932882695163204557757083052240728469003921709094627275020998666409945522455887317781768116864400847963170314120896214301250488745709848317837889849622989477610016605776164920260283549859337327217932884705556504833185050036011035845982123268947401503471927118485364089349120812104756164603090426865985069451298389868590515481419630198337504810680481408600735209570878468512165278872122124610850908021788422010088518403588206551808155526301331428686124841946066919740789043726432324299024041422260560442446930680773992760709330459630826303229813022111819747051401480299999934617930161550170595306998400078947972491941250748278998988117400087388703598592730212079588398217315368778139770719355494379004986665536796003491183161047431129722830414362137518543300361330814355403337553991387629770054237495949675063058434901363387346081033254678853858714362724246877060918484871656994064913456215127506530127821930093592976355482971092221100053051277767184476623539323005229425616727563445964112821619100210277160406596139376010259567044630833413751752032804860314161490472208339180655137396807360829317008902420873887469953824645000013844996189916389866819013072375734149921741160808437298153827348558408465935194600599978120878244686323080956442347695594008425840165167763983411439475009983004431066314836793262779043631682708532197621658107580672618751062923065761783284476044343821753840854916529500643393439868561149763280062966651287660700267836750363728744294704443903436575208505326264692333028016558963418557836298140182136577384668421844476410279415460603345390353677169355887919480390113845756676036722779797719779431342962122360745924226506032910932509695235163601198361679367312851455573540714360762826438151744322002796889647208751539091456766963425563604448880065631833775713587994435513752514918610253311212280347568972525366534846534429809757135953913126047712160857649730337090830486480973592794560928329898476043772163183195499447585638009578893953846629983591060972650531149952344744639792969449853773442426488759937746112085122729243038237295233645895819632524396668059154580026516824030842421757448251925441343270233703048735784193660564776803227580964602737647717800835540033423828002002700246710753146796200248848219210465469627585572693498193057745375028660192101352710933711985238802178763567921355775980380398104926178487592207669631299406223652110312932659059417371624884518944458118220330757645180517979698547710584590811664453936612672271947346992514244631662442201266029290117909152915471676056546634611689729293165876698273497089248037554818980814852649446081769969551240512315530230180663555982090938884628354949819446487706233779836866546427893519192573930150275291795103946113433986635758357654246849322892195890296465634609688047126764408529825271665760439186916203047319924169359249992638634627933349148865018516666241498396519694156998006857384863042264829419862230394050200514751751686284816609970793962330509906723932343040576523938679968709159528403020610929335297369816122892596242481794375845147512711539233267241327617630292490866857990755035087238903835533097174434857518253385296007874192892116433038720517644245149770723822405410179353651255689996174955779570163124968141587844697477237186549143828627240644467910487776007516741316781566928079370792310652216941452152591977400114041262853157921912968727800075667498366268645959753283336999114334504224593200327154205222019533288140443594250130959157846855143292892729003929679328413627052575223838392080883098264274239774440141529791968094774160787511253985648056055610714109917976345644844717359853371698254110473269065893447040805221903239377576638897506116875246929304685679861227617796179551093851257110239136370314237541377747411552656551415738442123874971653546940751993697694943703708068346153385586057989855462520821050338770308103115297201093534295064024812553703616576190382812031827114337859836586972293524211939451477321573376447137535812872358757866521580263251125949196458277328892270654960665281960023474678343714773960943168538278633322527518067706246882810377753863951281923848728897541538199601489970162507387861081800268240705852769215829024227536371282190408938844026734822384742979716085008444470102203596338737253237828497839922911178592327886630106264042603409664760087912472111484982317990821575609604633915033886241785781258881371759963797388059936628631599012034075095099715575078236885566598746415493682682726199159206491569795419797225126098448196427729198584980034819572697493576002232968540206272465448696479110583434202755555093407244460063693587429306192424754633537263348461940198635515051951314276241542521557194717506182454503857172464038837467907302070673631430786303869779159479288159786919689273713110446295756920657021647976746165744561762748966391435052781738498803693005898977963881694889710423991298156453492578078460494224789038636508864110482823924853563309063317361300033718883636880206085801376090846624570521028764784284220649867498768510410157053949432817505815663876961353098574908282674477938635180629413637827773926023633384976560816042341694467982934751147590837350937076862901025833738159598181258757358243830655988807701690598121192300675492530969943106978773615176790771071052878577047087104663829779979236562560872397774113635860572563253234598465079099664700129194056887378623815825436170904468309874462600333708993291492668440232201465243705491132665744121358227301629449237460743022863970979782030056063752275892646103712132105405312611877595428424021711272655299710127202670844896744596158915864229669137942671637718422941619349260976922319780649109217223165068452551325492220794677965676168215928571595326514753418714635413414386163888336223203059474361754412984090484517198003764091410147518366605510369915002086895444689384663912303177302573172102488942135652999167809498654382866564075082507073942136118810235282055090494963606767970687687180575011780736348788938486520254054587335321622222029425791057962615088677333320897806136305184851267109900633691727410354405468738453347900645777601060968810144600289234466825619940547801445375360929014805986090312880876742438823815580768258774519712262685328736097992324123730980008029432216754716862133055682690315258180558074696577340208602637001018076436710270432062661820649275687757060585798136629260154098948759501851509758605692396878310593146175268514979621068840841434800110701498720001082874970918477050295122754384317392336592816555477499114414097444574412849244841940945787449222189422726485877382571621881451042937960891375883245327005660764422972893356482405643379593173225789007196976264344397200825322555666470393526800512943538294585954541895129470242836200009051842448704967219278185165292371127912454631981182264977716046472013724598666676497104454216434604049787057556122461987811769103173042183676396195914076111083189965944611936982841483526309192458224566770611745363073915055372922492362004679728145884452936322137094107000922644165850092263261875294644031279588088759540350699463630592665186327287949845247587213030327600524797572108274886663147011669844801485031851270713168497685007632496191480215383125132663253569192289199056450146578587229604611756619954258786643231736168871083917063729411573833066090119708326348142583521495895074772791706041095508792544130874486654349356301007979571373166175161393252636859652203493474592207585428126708718029560365166745896717197793795291210629162077441002715553266784537818460455827222600179264002629805832341673179818416246293291944759694072013636449953739423516146897375699105662860071381509370021080918751744057286495012621466796830318884997667519605741307299617218962195931615081047671123057362589899331605653743089693537236167397172183503944369699321118225969429027265062368066341459272665565379671194327725349283853909193565102456378538079644070029510308793166045082813648948974504514038965418201642793022678038644622966004289462683283069669446817684779038103381200062617666416283999456693164491953569263017110657362343827969800470431353917073804458080224009791178524816585214793671316134437413806929726370460210075236088279410775252709897325346255216830270892655948726033253538010355096002440040829092743980093205614842036403120273189607718664378642667454204151813202929306398523293183332594687880777101347025089078010398288982317896992244384507145812751202796785642265957377647905850726872293860817760061328964811497964899060667017513351504666915061860532029279941420517762647286970382136890598860330887338496352141565758886545123176015621828291012063250023800809102448127192447868346543691331018226724415813019141888109516817457163763279841241523045819505431973014783899071712894676494385844185603551764747892209892418696031647065872167535687725520100752978256211250562892522709884252323285641739859280971686263181182856088914575680770752066298093347875898121037722213642358687812676625693408953589960346964380295001251603695095361485357950797897160154706068337544669130683884582471697032463218013391891475276286319195940425315093829936073911675995247074511908556267049653895884386228980161641958850999189326171770138071628026088712935518471011089337157110386243454741768013580951076747170659317615628190270675032057594172615913398823506322850721396224729648512968159018438128491667571031055506474564469354837961724570617899610114082145551992013789985063680626024454232015414154384537297832894313267635179600184461203263217887980449113984634163142121495516814729051131113997282222992183407873015704330333143349215785818455843024455102235230818583606573025063063705177727118513002644930189624766105133699950323262444325910928699908020200804781311080636902707099072069469177418863585494298980065397453015313841187524198196019020483070072946231090124286994683890121214163770582899168110612760204064598327344645768171538123847755834776604797865717425012468031730631027783981887126389415641381729440620812798254117238886470945235378506310326055945092126123733321328731279484340087420899134811133248453525859734398229503317393708396508209648413349071825470538319480583461675389948943876324504369804791210152550093764195214665419507622736545395808439803956293707019609815611963334285257697675022539963313198467241468509343377771105078140201741848092201828527485506919552219010883228635621562396564121504239071866809712671988714093935842441256143086510445681090457218854164359953376590476405049474494830133012537041550832107209215118224933811701483221562627898782414788126763279169950100251700581926331380730302335497940349642030856968364913276760712621695129012351288736310596370461605831731397528184020513957674167398442740099599017013373795328252615566831699620448498330028824704529947715069432219432130310695282460043683258908980083501137575855501151079264661735113870277541545126861425242109611207193926869091741688966702340901025941199842148296539597992727184538888437854046201805431996293462402361008069648983411927818366166389509368712936374001636818861548552934923552717816312578695982427044129444591846163921966229108837950572156784032493276575469816042855386033894526087351390206961797185118361489691078811038936818895977138460492309348132626506599148271874109012904522726943150140946704258395898889386852094604315109072362108106842629153597456510513396228850237213955503493832313379498366399243370331193145334896947497394714980804139368651260566564617673557093838727067857361236911098392653587764553873452360652348471460327266556900608495099992041473235287040049715060713221944500712431702836201750323929289180622691434365893448389823913000324104938111690605975832237426640346761524248287800147044582977490681346135083059968723023058872775776310021874037182732843918685075545206446949059325487378087318783530987532709816849374633759235734924535825067311721762461172296078124343631984943655354177395511470595818603743959794417139317427279014798433763911238668277378994419599548116934721182103479498272642889368018475529401807893741902392492670693001881946426694316109288934234463864818678109937795679306024832750346522406728506071390146414259013494913763010328571578869080876773496360900668174581145379834137222792448764694554835065868086670112800965681947979881787710639540966140673176029685780958769514949510959853216056454586756706595017978692613733240991233050275116664207874009082850809215520097933285660183945103800909480455050448680702609203298365712090197708843470255429731102514761212221398476749147797799874316895941717452033081649320460482701073196294365248264074533753672295057503581658189781825563633094774133475466907012470763888110529747670303997801496110566315787904851485829387494213150778812352596259120671904725523204976900988654984550697467117818390622743362564573908585377241061907602834063319682997110400111958952442108984639768223769305526996999251640092510581606463075745393075768508252804775751445425146655279315553618240177692812253927401635361679787634677922397027236632963533114361326550717604343637240642702612899550064839145339192865349241233470115548888181009722978956611158540801555423818854486487099934607580026315159516430273655740758683498879593824527126837960348883297805053933234689721850041814286862126967002210464931767065692786909485270318299860504288433465555470524910110791027089035883584463161096619440305326250684597322856426565244546202978839214087208025147054521352028140967185140537246474557699320797410213405167001928392165492088728501144898057975709372652662487699247331378986851425669572216118625569525807383839450896270329957030278054962703090523909792006809135415369808760044898345073848498133681020588827579607121951145528644200286165963744270121585579845235385188691574610216823865178006324602212626997165153062709633522451973681816204925391691337754810049793700079630636194084419141230447745316304308373535286996723842828307571527380994174385576695863921753577955643495554122614458988970323599532019945594159389855911397265902061351797088068360923137692255335172723007963311865156121528136435174800469214255503191568563496344171717627597094268047499603076496277603905926887278481094098200796725301053258119839988658023174252463020503432988421398758191201482019524727814120077546836050133354443345575091259517568384898739140990619542805174912294338585630467445285100001578079797875305726832698083292814142553241877394698892769521345248129169155884378352405474374372854611591468393497909474530471579013895506364807319606998869127588150763040619655892171222574309287858841504160144672321122009781543157649113063785028506927249317849619893982203827589421589686662796265191517084946389147586867447048578086731977259878288259108061079749967244038067764672609092763694546416976993622389874719958119391693070803503697223010308645354312347311028093160319924725019709982612773532348612547324918784717189296008207295321978514282965551762393841679306547711435604717144657831890576567882007848185184778437398196430205177102392380017470499458429123304415948752294967486562092583099088659062028522970057859254463526943356141050483500973217096322743425033596845434754574332633287704808987171977575993847760929941093912476959920516746030844170309048427690076909837584236958852257712561210822815252862253104584105772390022623792334712333487458376807296307085756291832863712197607484899769652139712415817276830203125334468939995966353663700368049114361216461792294542699067527289670898059689314245713603483748501039844621049410316690412824521085949017081146101562009779025427297997322165774412105792632201208272612032152703499994385175273928321639697777164417204196453633062202739748274279835616328232159365012457755543569476503365930725134477760664309612579077775149523628008899028059018021760077042053538677857701412020760424954178275139591543625421820915256865552247104510768853084383651943847076381310449239259307113169811368316808345852609713585288364905920338900343349780709764876870468103070814904512113500082816743917054217477353227168213652603911949591284961399135975805216525689951329341450917779789250495112337577577738232746208015162488940393421880095391657457479435161106373833077912784997600893715045719641535311407462172997142572424511197370865285250371396984397192637918294642007229063599940048412554110379211736163190767137983265484161058587332455532503687874306798648250474309237750154923441369937009681394881739359041480157307051512158467600785582756651422924214334583125652573237404720896788931003873922718613699961282257385073667741427636678693209291837549652969939333195219729602687490215910598882675688500746631043423379067415144646512914842361217899558162535630391107212120868441307870267705900832639800450879783933963085031248903356754792892869852267331225137130546742588748677544125532609984011268732741893356395904585971593734686196858035960094317762252393531096623192982609393347720082999708928101029424157133874711771669850097123384281810603169433689394191790165003315251857949462978339579156755428217731373691730865630531120184322895889336625624146792788131635899357518725883844536941712111774082659551371337497515546206232063124537598010260034047491298146895173071876799664724752517524534198320571328175011420229535420052025496525675369249259782428358261473698260233101615279764329427682924026495997467941104126837658235786156056430352486570208248912057806815008614803081505661736766481467149646292386752817121929924508124308535019694256391613608288962346898330539773258055619985440335987138431409030390257246962205853713701593743273511763356447605705839156468941471534754416342637129425689984513389508954917091394716294251651711216422039285275343050658182591190057583771442100733450208513592687465864730115500085439209598408300784364707820847795829354246165506555591276763241026743894270587394830286702344517607492992926868541798926702386745623450304576119586000734098596140220581785269578239761288202506073751094676409967303149367365051479416302348484492803588654514851013626837953797863034466446962290285938636433411671745898267890350901251348045641752558547483555984478045503982157408528973537121325292190397848799215207616043561289654435879120011903260673697618873301282586344195314746347653931431630269900015501751464079071658364729892878679039251632349083360849296565570200158075823046320265448195096049700709488818527597840857765909685627023531781960535003645523631887461857466581033412118530531514536901210196637117168086804022348816531567370878524498694586581996835529855910602188445364949774487585024200814127451419768982463781475091034451406294172363450851979025579974901035782610570015778178817670917412675020571221067162162480854887289972373291934458862504885894348185027798488311422324710024608317111360945259074929425441650843666007120521374104166915976830196168279548257431657963884029549882856715548717643723661202008119489525540354068223088086179651899231768638067737342838990482078455596311505183732569291736757110321725198124498486845589920870959155814858624210445909646420392386208789165725221535691462312676327716448906663552009351054278293999996302258301477132867669860676074806720036925526155609414752210345495575851556987511038324187516726716349417658883593022309041302256731831111583620619781480928201033484537812500757243991132474698524715719581563477797013400377958483885503237633492116320241111934789589187678986281010350034201794457802743317005917120542760201730323071885839899798616370083701082053139293320268849709410241536699301549760904669248345341187838747345039889525580562915511837074399776002866522591622083691001239033692494860807046419049106903083964531872569247186830256151538256061918685452270942283068247301006811894375410446776204532266640656128270279840980933997645156984014515397850859401606851499551447967333407768486982485997393282273603363872918823657047733382870463297071145579269580525090028378502038287613797084796020091181052895028113105621745713620684321151187802571687446567032085838188968640161459217280004323596373455225326798283450391635836303271112203761792369130385726532475504521028748696718487421087515378423490355702563435974575851556471073601126268098496400661248733523995597732142366044979031362605411361826663829220459991210983550408474348403714323477948315043183836880295934610326738690891179341388367542490165016041412454628690635590112533921070371684677300464582583320976928668055625066132636041645870799873914180290362762233450834164383535547510382584235410351697712504394684186211134637739329300155230759856518216611370600418031644263705956005488696777591983803329150944173760619460171598511709648807343391836484191398320179458094178787721235186656478353814499695149140775748052233874968486948475488352862204533014516650056533644081358924625390142274680494581820987447650712229649232548053540567710948856931942556594740580978731176217611141322561518732830485999863633549124640042842784590511784248367056916133478154733922065699943302529036989104317611488704300489862205386033863762446175719237719538425018268003367110449207990065753033054757114104527198351310384059871576837709537315350949340186351372621741181413781594488651874596184965008468723569036387272107205789332093570627379791979002579618307931174259967366430841105088943701271971799088689709249564089425495836924821400635628421628374044825334105087489891766844677066020796864755388761249845504765823808234117518089227694822153285194996742866059679705097745116780725340446026011255443039014101300104834138625544543723532260530462149389442046453513852380286819868946541944261003056005853428840168686239546807956714644214559619567663550448099004177824695822319726440996785725750725189900137460864805460369271468367438283382880792757616618085407615482582174849145290758444637326994294361526378778559434064869714374428926590195792677668694631280974459386234430912460698642283522491938660432691173562137047433780437810858851064238370219397036997220865922175750012894829420185502813351476445463735299025512732350642507095280064730651150989042664250399580485929159355271524022178791789709197303282194239898557510648193756341123872956459100803636034940333700718558038446601437558500217519508774519708673239874957036148334397681944870816502777992526705178376760784415606551229919227167612066701204567701938668366741115304600529827442152034050712488000667353480970834492003671222143864562408009452793229824322083748063830518102896131091529242450672220656760280912536297763271121723570412726277647165212308337750436998850354130071975528162170766928721787442089729160101127044655799749959538712242756769757763209150384804534613006975183619148851163511437919068735699532646985099422279782311860428673300124513898421540740246072950307234713327568755130546155509369863219567576335230366967336374485863500544979023812646000486997008817381368909371172219678858657114483879247589937540889797692289369827970955387949784121230289047152852530963173708321049811314181637927195022212090178209954123704160353650705709942051019284038717925421887721837451188101352332394412793200009039010845484707014955375023919751267106000446112330951019250512350188216720512450717395348495124695415164642328304316389772708421122465432175034775075080709625604813179328176158605842871088701952363261605403494955719509136126997902016767643345694762258139584773488034799660231730250624534457510111114968453479187217797523747664911181289906384222155326213564595802518113440151477100149427886137108455859640697938350819314325005098242341570673316209933372246927288834021409409709832508545325410002931754188982309109552343569466007477858339745486462819858907914547341963536851008962672942194537646389724620988140446871734026465147630641877672618125083917345490128159242655561682966087717825064117322142268819334260751995918880327802504487119178884450947487786677617362426239909440643874389509659558997172985208438486828893342631201459551074783729023479515227619198159994545876243471483378293095057360210456527953733221973122442571075504674154185572263658589502412750222132384196221555681015136858469459800965751991498624320920409940038779750584983896288896793284631142197846212882704954846972207235925582207593558676122526364102493931912901579625234004511504630196653766593393150130688971977403550968149169551428784591350559230906613053378744203219026302277479722961748797426960941718599277510132390595969684744609667794721765537817362749231500227886258359185286234250432002930614776629887838506166387384878104127008110056561878534565373502891371460321266463126958464333483315719509596379880009918885357249457641001733668775308830668248118421298198312371163141245225672701247904544157459926711637850440846263653974470983233602319112348168236289726470157238469034923027568458328353342081862619808463719062474609491577783824288688003894215622718409114747893735314629048392705549679183883033271870914798508574318200039615835953127890308893233315767610839082887433422191581524604745185450504253453818774698010647255355943619167061619863953096395094786674436425579478301395582095765899255978938719184085038828127095263783732720333746753409394985030053438808334880087696344403358025479432575929434922893230513740401056023575863832597462388215910362841032302168584670057160769227095228089742207784175260699046211916392606496012475121177784249551148491956909272142643645634633624128515768077442359321422016317553098499322661914928247702823262435599228027793296778515960523975770866380387104016974471440205555150127442185023123720235888739632856680012868602025026078241820853433443969830872700542315114379717413986049592119633075628790262671590003124375885191385913885261166571837645804719449481840353973501755511709704505225116367232561646986922110426381946759236668628828645440695981392821966178406574460030971752874070308732880771289052755758216388711967587837582608747408754080739708937780123055345599447497188817090399096394194817234196948669795905980218802133675956018098777651642794616504733076358957839994160854985736302349504982841411789270843115167578619807856870812856017698099647834907222526706237735429682631849665309903972338005490285345092567275972873279249713275783897269067064506215113087570487894372732516749940268464619705643198604099816626076025195480424265214387239553604809125708305455119296509844719954098192936556850300614987892917717413165388867536417070885260053883825892416368119660403689372057822834874799274724234324747514423753379112233746408642167197791422328282823244942405050269959381687818299037665627687485203762330853597932642775451797060298633647542803613724038334797107992234942162210287430414624634997400630819769958156579275861567131211339441233014911457666100080278274088790503446239613379639853540351619440966829461334426272821304328905194082579620502647029668147756530280446239710405643020051471894326503430220580999608264805694522294678140041067259925762949781765443527094919939579993124488396290143069466614343337890969997319085382187874945494942919798707058544966652911479108333601614040876060643169236269179572215529030196817039815633114784614291855477597563547479083578918758459395132347845134380655525412718148655141765813515677399100187807405232152443587501829575775853169100526564679392782337747839680083059932019823088897559859927927137775905603780150291009363652912636062590311818895909709218373879466826988327169160955950538318141266213813610970112012606101864319393850187673392975638045822681110480937194847375696100948445544585813948730593753598523271715166226414101678785273398439353900611665794665296541749095251069413443908043932166205411465685418095366965647625513909675396256312573475696978909899236755617038003745195373576433524419954637667852272770887460007727109469970936314219515024404042592271409161342539504888736037170016528614120638777092879096107441152930349374255932581392841907356448525585673016125608355932348360943003120949918321274184870539138998205738223172584622076815791689010339919617832055598941129078654193916048658727241920911556502404666754216824062068182219626919121664346257656214149860170873270176833450614802063621683431910747377599309903098138377492832032577357900082458445261066953463647198162131451293040361886453272803331649645187521611104721165394053631083720213109945264377749464700071076803489570012196825428965396661438537869065693243162152620498256312455216310892718242544433505025269645283354380730504183288574569510398011147206593676045041517895471944559771962490703717995293466726841257171074629083373646200942872845938779209410199210145773379661397547808322956002209004235951046418003563069824321391586955186315023393763743536274101468474828655070804577643825656469210132569373818536833372844528741110424033625242787291319334278921358880710917216986416270711483530958799062378766816932244851162243956861139801646988905081275088225999902452457266761438519724072695397408860456677789283588670498426183420824267020681850646655523027180158146315775482086763658888376839995203481451136856311135334729075807741271572800489997715339408254412898181331953557889740787352978226100067231301681746396889741326698921202565961263911536669125014570617217706635391667894880459606260276352740202338942558067837374718682411624112334751284650002182110650630146009742441587189558303803315819939691352603506771335808120775873473936691384468479373940185261170131762382145216963345684862894116298826891934222260216873413773376141735015235206722296550456667138708584051618104157835888195329513446670566953315179799433498691554379562280922124685423154283818887189775914383489616653904920250377965356341099551737861319282286050927987638848837517715953809409112471737265204152338181965779513782800346420657448887900263393146867636536864258077519097257529693782980445279221347392922135521807766974464013902426699537432773961929003980371864007357609077503105390324615103667248923493703388764680208907492578682601808858916475573092653746763967806976368112713680636337476149939985691509963210163077480387371703291850211399150314016581034196617492987582153947172403716739454742276246702096093594020089505380284456973578453525104425446934210521365677605541695433637183083250500845163007051595056881278311255817177965395264386419857396453578258861873269631523931955730286144599867181448568314718211643222622813861235339663178874832307038280471076768105119340996985843060416949422412595333149434936905746182316975159376655158752222936537435468494435350506552309142399841068988675868486321181861560362808013102516573947667306907069600958713352247888755544295765570992431421388212108462555499271835766078210997991941914213427229246816886473947859279739935422128619939072427555460158163428900319184625647202769492161220408362453165703121991448451171709923176839514885440001222808120685342086241183607060449221137540102917121956499201335026798440198804933011245057049226025382341617431637167983102083944399499898995978644793548566556722867394021381595927971612730802771454715677916434114668108312972384980038156170388045999351665678086394515692103946236337545845650717257511009497223027758097782513132240889617233645522167398469231940837677779180333868961946875255681968310562331996891406282191039026873742671401408393484510656695237271841732264341420008865377002409198303971360331135382580250301933061018526109549036463744473387517097277924808998087453062461598778203852098026733343297432943863540605653383624969621048818145386474018021172331294461383321782432763678472929630680243015863641730483655323890359789885721325419685988568836134887844632346459602056579820266192365195936533041964533853622598279937767367998740998473028185304298871496665987419737730130600602851898011610534672575811027743834931410142442984162119490609032796014969697382626467149128795142609097122162681134678654103761438163520712986735361115234636859101313807349699760568053840802705450635725453844272294452711400275082456760961617118413726657559054484417855441495707353684949482059562297532270446884338746604513972929148609441543874549782162872570006963421731371448529657688879217164364493941466956293448575989519144517835218233952611464269207496241676456312211230004613827240148667511745731534604240947037359625641705080999237084749882207390438523096980041051702165643604581389284564261650113634849754332217392657692209323443237545060691868245971703335652596378317233631578804575263815172228018821146324658880785694020844130464399311540507161595478434175508358406081888962507290753815551915376231978640844491281613203694440371808674848201054981136235483434547597407621515853674051809804003487103933065411555427107506367859319505132454965302266583581091836090431350358813614804204653442341631878876851327004290782386898121460747522500896934848813458675113990423865077575148286547566086945302284443456698837588533462113246471641639851077425559620099327711464013341061127989852739854965801813971750328061470215016849649684354468610187306547731939793977275518578888519800845573684161002984357335138170766889994026288377040343520602533296605360478352865774171430869690070617411809715876358717445274665083824242279692256541729571977051919421669161881626484630396773693387378310088889525695797159396258099356474587946106170444866125453017639275258284956748127597683849466400738266209883626184764073919274641004104296191050903428227207927251776383042729098170216721439739517677404520266985572207611703860460669310205691741425077958564230135558527349863096109587110581254361035742473235689754386966696999642857343232038504882272618075730263749176408971649061797197101359067509519186296745707137159633052220641408646402576770423535458915103369184359545705010968643504903991663975794082293205347903873672045690497719264334223013874932802575570931687541862384668094621175655223366342925979260058211316048777416884930132762403859864641380565524691326831810148471901337135703967586571848826425232743570792886148254643358388896735998025427969915876909183132589510412289952030231639336329025596472868485680994917741023497242325361090308796713471567371335058864019971885157204934828027862326488650050908470331642064194337467248739895644350635518716137064137602194632786813736703244573017901716420045320756275781555239575655408979906389385196405320760414941938522630911633246246986794439840814521133195379209921979180035849567308281697886094207913592400563670615309551813046010445509605162598336876756342437554576720454231138804633145437474628463524534869749241384889821528461448478704603789281341748884691282271591830822331519911153502614538684053321084217368227596484659488563462244538035085458696703144964029911680437696360795405021358052020409350343808035422677068523573846206584124786416492305107408396546683847850790775764729174270343580256416378589743696361393766043140405346210744576227170385628915051660333874521693609971652906472357860586230571252098586665851441063138641818124381439317429253117149523269135328052518254058348994048723571205261493453446155248493779934615736337310782276611923828290284739683896707943999471137230849956390941902283715280376695263270397766384311185169002921444539420036583376426068804675269006395824214524853068131743549496796241781751765914944754019223270564585752981187207036755938979615982512350442500288707242925482289241100900637153939367388720076134927821743290120016591673745918847373510401021146276005706599787822495096554850189060237164791191523826894408170825789162955946793246969462852700861102483154704164888941567645189403172912513777158317416500999742676856869474779085473264136782044776289854836236968224246379953238041166484511402138147457740557987458097035560456208161552283416708656778542465476831618175897319709559946004759949499340782689530143056369468724988917871397896414715934214548786717889715682736597150874137779498585692008471820751826959083454920660002751652161025710819792952063761423884165546914389000848361591404373380247732353909477966319359034113586675525814233525331808832324317415624697561231522537075648270274495577019916912313512848090772792738315185457438945164808899288582793012203080340068734912352169985814042548606111859645999035272249451958455334748041336370632502767935388209971549444815965972158182515309812083882120326300372901148900879490200525330686566272915746239833066867612734963041758777449891583604191781390277732834255940180918921953241091147877805831108155791014617823922220840560777150636084529438272742345543918528994226898977340899586665696241160298111704459777632586767181315092893100065785738959350770312416395144325720440358265281905821939545713921695391815267210500423789025868445650767685130409534658950357638241956220018554846630503895281603513396038228872950257273540664003843306738217273159879125426849392489876189736384764809376789518690633332345524009256448250495175710731866101448619761667396222233837646633159324899852465910731767602765344980905741180353733023721399543081426805264686209004835652295252823293756360531091639351115343984068948790847128524600904395909895241491074111758637321677021065790635072163826626030843609698916766438115385651378948729205935793340676517343811321207634227253152975553757469779826257877764708782499484060158711745756653561628381251983439302424181360375496541853020860348368274677876612652378766265329429566209729198007914864630222704671321109823447512102592019173422166304159698272925856682114237513320525481694980699231600219518050714089253408707228485610346382800239499701940003404972531384375158291473867192348560073150113128701966316445603111920786200708420494001647506292210915864498394802310999906692856620160404080218922642489098401550368711905582978618540954517698416709475167472221814210970143622949483706242131697027808505160296152177124682606551096635603314015660984371418339687744314272282269656512087602467494190544034063434295340820412601965485041294009468726718882962807479722649005619998072054486524148558175100109821056168592049357228914863203410977053210823972500169176065639633449691933770166185824009513412624689034496413220275543043654860262695680256874781619909462521002272824855987803971146154724961897671488435249850781693793015498385912812561626292867380897507447384338839090838018711460971120135491850373700721440350076392449687500108534633023737042263694214593942769229106040522198337039827893436764149961273550248175252412273655078609731922218369623095350286854126267534264118679064729015987815749936166000645553760711430536801075382855515937687472859092894995249762469897397479194061979608232833489255729794459774197270212221560178363675138485830554774082192442253726453591705320313223201129022816340814226037135983385951181735942342499664854902971284958295143011990585811345369089906735886529891541839250950462224379180684209959114810316971963549830434213946026040735501568123900225187324361114946832231528373950442054269580801663727639631230116642280025969649395019163829189320437877426827575735793006412711829076541796209784474899680913191675207338220783988460123157178444440080614766969053986618266057017362365518110453973201912263996459868428560901167415230683900667069829155010623466587197885037435022571591171265382005992833873039962673113759763080101246561724443067756761023371644050559757891250029833509157474889208987173479123988945532393873140705059766271016665734482362814211844706250822617716018723562922097986055158257202466877910783545579281725368322251391816571563368863166045811789513155263707850507870051230950272047573044549972156510672786278580359188331959609597952092816826763754282357296081944037168122865333928923991212766875568530461570197741688200525897073981247881361862591445917750391983543535320026682040568308368700804834126156856913353998448778983834110994810861285384221671665234881670738566634493720801976935522508703262857311583953546481029567571990651748481111242555075053205116741534174930754119429555094286071902076040257704766706435848637603987392084034524114790383343362109535524705162679531119373821771614942010196938753752832599057304434534816293064755220005980569731069631381439945481116988515610141311376125120142051333366315582829448470803376687101566854804323610882055528618099340534759960138438931281164675905500682207625171659765069712209186586705377705295323123319465517888328419543420012499768127562625967399324856003289339317472902368916947789450120276722865685851690583927735555349139074820794144027012539143554341692994067799365546114396971235587319241872411896262542879377882563981094857492687309181910537563767975118026777638363933549994167897624812627154752910107842939621465237899363565974055474040489583802438701678046235938438183881783061704856118649211292920707619666406779273720193128757888444504517542399913687833639033393989384801597441185523319006403146697667316792937864490094961061874092675777987681066425840164324174525291975559075902474295156125067087122104507281311968318222592435347382336313634868840133529275541232249579960905987754343971314917407393476334532275870575672134641358337773547296337827352788505394891539151239560802776856272741358149894890239528123836106133567404998046748746303434133707198432266030199371607428946512644151193533987029463143516076415808997621348776998579608043663175114638339330595648057938011358862997230557989358459172332518521083024895084959096088488685305186866412681011391249739762011904754615099890720366175699408134999644090536754387498644321394834428289819417242760173595235307977358219929544239870407573452856630931726453046104106563549900445743023069255419983306844834659516651467492903904803366334427689224296679468628966730002516536075122126524573535672515402608712356100178109710173052470606492851958089389834980841792086361894926973103795297794253581389392661579155093694886252849226370751322557582656166354197562315199393215230684934796931839948785257298277323353119685641010071130019630118864537554246479906726003481452563342896741143929002180234877733703205402811901368242470009275855319502367996908957290264728924737356095771848988862369798567844582249960590948637156873964091046120396641595269686894912337171559356384663719381425880171812766988447465730057190778291444200163675803433812217755230451106801882951463088985626257695691874894059488589083492111061369292576510910509901953181347840506452313482140197833191554697633120674544560679318768200102901574235165126507006080265148850449321070428933217195563572549601543268564485654684386544299543819890191159225333838018649309135015441039353037693548387346894606862704681092529069977265068509506120529554154566772097114027342625883476903425718980054612196393623431384612037300277426697303526286081291097416552780206549281596695627764443136470443381186859360112200484082515777447879061376279915900161941965178099619310571867943528720298892082667859135794709154335502638237309500093397739773701266789356229652957243394083873336939988091138183048202705734981683453106842319420347139801994480646990721066500699062812667740979442684654939557362463956055932537588208875818908809273367072782425534889565043946476732861146169117351641885787722563179043121869285817281979943747108613998397196541808664573705324235802985922188282930831317334350757335253317433486555520555347742438635238537586871913241579008940128954372622701172443804113747353621679933943641946297192487159457391556712425412625246732607178414886338073085283164719479906274645545028864542117001853559792877222982528218818988490351362487704080994333118917897379912428576489294274344642027413931252872097248430665146509138047163189076356010099511126572704695234691122440500122312300365713647332235326671789399851440114629202769691838144547536868624114998257063622924158220451944325048139000844785700811542201219732124430914163836490761405794841852850185350742459978621424980379125753426543597603327142883727609120724306869866093185912768499074768079192118591407014384038137162186952680411993990063443438179742072077873789170853866703016339744219919011826931481259832956102856054906466053555617476138787383177255478860251894841237372273026953598707577287973313994688108847328437392641957852221190685003811458297386963119324607207692781149500758081040644534528125366519035740058300370375139498941777047908345333219551895410208764974512274747376057524708372621126133836669669075337190095865435214313472620514014850955205706421105644313442754578348176324908665216118616011232177302029351664914222344478008142510233020947742986444482270490111975159855228485466310668467814288593315858801329424557355961115860025196490423729803787588099691494456919786581025515149171805937942782561204718607497461066619354851289025660312648116624934130694259483601824742970247474178280183594231360466176859386952981756811193058316772356629120863462152363662595872035066018990802905094463629988631510368859073493734709680598634175202615143876857710738205983542886128360230223934407996370822803084177966597970539975341319017452170433545799562142519993179515395646980417934325618745600443455779104607424365236513131955567923456000723434732819914567282246190551709684749236909934861078861888654889393603641794980313420845507881712355210188377457350953705887089109596012654053480270636529906399309331313362363556229892164052958188113198421284143785511665779922877482298958068107440550293325109881688291588508934981082561674610571341514651078410159141072981692737243863179320677101400331203585141258847020961276268557425296784678116177066668710175740437409575014598081587361717226863002756964797876373034042970311271006956726372667369534265697975343807282765711447732422815382886144159046146591193171015034895122357321602373012949591352433372804871914811792546630507105469268313180210004714423763525110382121761272963204852073288661475772218311864232091224355645368959641208628727803666817861199486096603646050753223851583560640867794565337084743547094273411492613091888729677623551955488286016488724453089492408283067008370970978427438217448145757130279409061679423415365334184362374590746112470312483972993856564461628435343144389875615035610128802569942268149779937315127726097359082602490106265403140851296940029145924464054047096498418045992549785279424549934022292580744735645617436083849832179092443102628549109705893340841139306556648204378355361381485778618408565618432392411373890375630006617061271004630489121201455197277978039348590866449938832243021527070272559210788449824203178073594362216414082924733426010352826459847663705847125174168865247848545430893496861161190204533411227607097654417917077527716431202587484886210107411919756059668282390616585558497864492018068312887614007084001316445647266843250590011881282689555831465540710933444454949203101433220826392791463223966552316408363782836516256071784309744210352708155254019905790771547268175114964990481670937965830370217750231484403876221951695362383556260495652781438347726008175266133176413051518428672651616759585590786968407653956510265289463315423016523636229948602392583020002963437408639385019473766664112585135837255228055407420847987729370876677477536797090035635957200616131639393628686941320603912387882806653815000419348025148324014258023208298467926089790016040141511688151590107014295625199010736355255692135504003534677248297299105536243654720228570949374924338973716773456930467146773635933247874448282213661951793434320814811873673974501583339112703547193062719635458765342242131796527858591213330858843383958369899725558659873021098215708038981617372107901140001735332287732942297447292137397393375427129215284363079467211231931469027123441968957976006491507143614186568538491980414648516131687932591591366728887656560944340708049810870735297227321015981354455290714694234746274728540047059660533311319436017329069978464574830792866391237035741789799312080939688842593589218985771728311316948921962391598595601545376340243354993234372326847693753361054255968677017201024393599602484477614387613186325286601836494617339119409045829028409439945262830723286734730090806478716109445261143325283801102711757331201973605468765193408857448949707037632606080126674632908270338418584632404202449291121157876061492715287410846491109432031387888905169459905846340373960244141023330291179430722357232728859997574571372825515365948130221287637241983770679540160204230738652894948519448630560085192648991969931291728709686847735894647467373719170030109850315084460516545594605192025080580133869226575871406705851777988062342436979533140063622618747412067441154904712997084720050256511629290161296813293056725952700379231028028353579449225355422733890445394004856330493202159381820332789807129112866747679095635105247220098478250115844776707068684405743399520330973298670629941977576816273429044639537525096770064639828815315764301207272846077034304276536137030646261745918264065580972122545774302898934873444303228961598846004353350321772365045836890421989425592539737410136736517121473128571268598838170403397110905391278628519571685370213630143463382119294541861891684762882295698063171841611045350998571432046918221365436191652012635366112640580996852947819457400994446476321973300088174656046393178980435599293774610147168973787318177620049002549167537248811145599375474765585409887647429679072612991060757455167261203358757938873519086949227648880647911512217875496326351848856428816883890996237682281179855191921045236834688169765118670928230363106844900243706743532509266995455385788929605414116054636831309415417901494719294958936380416119572114804580666489752842275585340185900393028408759626400197174663091133618496605847019851107818550659882002479400990393131439340847764157003954101324639858429244560378835379135283636585368047076799975250445019250707139298497793582252211455421207569302830834925095428129805113818777523517205241802076840544270539282195131514432244195683552717965962093250607876407711257990345553510690663219021444777320506121806693622458669920750697917104254037963145303604869112816429534900236204674868881655639958789443612372420796938364974576233907549112451203921679825482571760973391924420979815855289203776611507631257588242474450838747759305350191391242607718512208619867838640165772914901540634510682350957387513879982318764167938704706654322407593678378635311656050309557810214858620080492717823953067234077022215675063829559213939628160981822204591172174401989563207583186983460829732734304733248357355724314056038765590141680335613025675526088738845043067419257529876810088520667151820233199014058666149551036447189586780903060816797443678320495692602341088475430746075879637418140778032396392450434123613032807268386024507766031355253674472466395029662462192170245570858431259124702912465454671740172322806057291833701672343304115333745858924429945506530516357185192284470718054384069688764436758298035908000387951161761349807011355329245281820144933695323981480525495408230985523915396316547785643619391128952077375285926495469317322539985597737972884394961681229277785845027305749526958020046769046842482238968398199973983536110432956718195514792162404181481126893989564035233512666481678364066085095040522156717714855098700541587819376079416590685495385901116297247146762192992566029339472712114564988593492993695865627067038435936158220506684809669600024051685638547450654062638955456256770055597687474253492938846674713971696439331345305212817794035525395327551408476107495388582820297426062132750057923805987479804544299789122920249530281328412998835233553371736513730746827706545369189065259169621145238225313345425098239709656033632162791284840447186323148122911553362719824263013068058758795212066780246775608357348084697686352979397738042686238663429851729750365156353154875535172202266489756845357879418909748719412210076196315459224865472544997658751887800004304136578619181678867465412860611986703969279955515114919742071158231977879817605850000039871961071576602016609015262460206838373010544339599533908988834780348241923391316874116582356285906666054787319530296866243704255436569160131989476525243962093412091960268286015373625550322146021900312121429608780774144483554719281275696329365562488368261429692513622748365098723560240167674831796826245798718042001665549787916773356149562761806259870024049029365440812558753035236023089274413713120938382267005333101517740956443031892754840241146849767329698115710155870110013387194887033752622897935365965962358266838917521151660345382562421038517725068906790976406235468524317937414939318774748757923638464329856273327939904110086846340822111001906477947160634924574129577856537825231717802463294293698518510310884342335066381352139601712691142095009467012380838992106724510840174574043736875856832747128264602339377985829744145894519884318276624606591557593422625702311404995268321193257198118707403878805370145089054971656354855138063883806059475342440665614176193718255608583092936237017850705682746455762736047369446979121194871764584492179884073974755298031236087677565523700376562421196503829357465433210767236330832238819677957440162629917856610348383873408021768486449361924815922594359146023503626164761582191611976503810030536246190813442519498482661623196121076346061561089715833624050587280393506041974939455019235054331754734376325491027885934262772752297367585597704945537419717823900673985751910682621228680600032569364601551192283313771343249733892675736658866583924941005587675504298674623199259347990591047041277000484565649385554570798559297899320867347467302178737957481688632108133989901121262701819933009141607961738882034328906677058110306123233775804997000709730091129022178566230649007089347819234898180091560131510223127305198234118832206961063085276809629514089491002592493954150597006824674484887748693959967735737537234493436524157032578504244711722117512433767475065577190434175833017006050696711473497200546783364087484798971310378549199939098481152678091127213731579269150909739812218799835305512074103340413142524059829974806603947182164490222922844423458471650445989596772553667435199732471181705057925121392164907607290387209690469671355891388612504282489650367387405003761953879099624517286895019701169773244405478102227901892572956185579612673413633386979318283012893627501118505745150128575168410558055530339431744262675729204294000956351685693060315511894561143441655012601879170161363933111269887651515187635469810461798365648052166290215320919681031343826141068852272665912392766061112642356328433244897692885642004067189815470512965909070601615940084382241047930691428051619631363238780144582952065190893982397257945141080745290554136763934442901711522896988443602299405041749145902901590592384425934096894241416266889762626805335748023806759293941933674684517813038190891634586270778613115952236533757040267684396473049494946439988996085157233313945683217697086225135882208167213151465771707877944457629767249547418922390555352751090376929089924803564065181026344261689796933343543380717469001909320406080050172885650483587497578066116508943806557489616695513647858887054906264826580647872096031809213400077132974898647374013536103683775004640659734756634080521185868708784509704448217602021927337285242697115439603903240732792339654560455654454724638395754389168976088086622870153959419528235808160457337678477356621540155081382771333162438705965218858548103298306229973047007982722642121893280731534626007581634884226475276240458118563165223410659941579873566523674439244612573866012569000085878570572462164732374126649689815791649987545441969728526109002630141715632237281039114393722224035341545759914497395677600311035223881131482489442198198186092133020472094355012690880272407047777084197928117265440456553292637503617415756848901084178281295295717704653943168530206411438866612938718973804500398686392047018566323036958376991696167179311407446536669107855554531360962043027507110649776349819036850435225364772585166586050330693863874716343135439976050240429134843179069036493040612222849766603162224758752712616693615402179803585045641068457482789245391775762919710812124084581981813535012276953975761277385497918345437636682413350749974059996557954047477223654088017324631506682900339902555933972741459307977975580195107986020325864392943323035175783098293272771208287844499489184470765597539871080699987073853314892784025326379646326807118108834733333414716834424940958573106522564878366240193325614930944183883970580025562831026613203500040497175667330433530143528292672199223479652813376062333727987300925095167298197483913138662881765063002509386433835276841969331745485450078863267378035317910366183315059485932300721081382889224529419565603376230349161129485686418071281055402252802794529251504224337031278392113714913915588033538168734653909798878548188553521433842109432285682731919628998097949675031105576819268069240771300762887311579935606679586196814830919826249984479553708805005875388011054673147662216139462535041020819453912919239042510865112530544795975076665055388088985665813575583072709730192082639203275835530750764796578419015673281146633804991183677974414798223865845330749808167792134169600990804167407909646114072961812027557831489267064573631883252163749070358383930650692466327495510064422968194758800554350421761390611960624921401301499159899198408641874254121032361557020988919695954054899924619488944983494462300575541785772918935060224220938223295404847615258337739647996289174940807992424419725521494070156912954453626093177720682574909736289936692494972291122057048505104622548476960076215367796895514703999330676585408330047796682658491741656046850429296708043204129463135102484879449250185462405303332387768503717801531647107045305980116390412801603059415496675307869789179397657832088411863026737228255203685870864747345529397481606299576779730401060302852626896684667130706439573286982043233775062162597164434246643603448278341048886044800327702558710585798528353892126010785881416997834629104238529751950584879802923075662575134589233476273193319330047502698281492013008680160265523786449705950062259877619920609098797750714059806150859329921842041516263759377555046927303905858066175604343802154590041092608834561338745522836768103767303826959408034876004785674763679130824158004480092835455653684730561580354606378759282604483095265582884969314760535444761411981510863410514715432196900334631497834841946361703740845280691952507805753015685269800957063065856725777151204361200335913298231506300593208244539595678698046395319617046951644127843734137650178629305321710904922804478792203486839089247853934176115529471210165025042423777192673050926217044613999633556260188888458014874252808563304679092523348424588939835657384501707291281174839892950178215909983581268035825394379500703822727730797140719766171966740076643906511384672178086498182913241951747519397660185349445495056673770622368662675645097943664978438375189297099184527699740759517061312309224651008449382826835791697113289193588657906784293810833639450691232493230844501020590898565860302399995090246572725022265547375845194654857116924920682833678782792906319657590867106860301668826880577486027400091485938478053263860183374269771020068044738201022024450969133715163159057145301342159780883300181295980063514318311076284109912317983463336484355062782844109260770060007130170159413039299199129342618691531419737093731994397330704619292561078175477234511228621039943120516849717622287283535451753920782990864302303993247534654463871073826952039747336645535031498223130365387728503360730285161147319725251467864712047352129639494099152836272149186283048422060065359708286334705265348308784644426485830989085676729225290173539398898697870038257181148117787129369322887058427248822052907062513970768604384929586762354479552039632293250366085840974658844002601524370004648104996581685874632107871440133570203894697827075309650832393291878983448524099579678214308702960645683194516164919178683405497152873118338324351855089630453587649578740172662317454247403637707617433906490396794652237728560724418414263581589628575030174920000057104301464110596298739341077364998687905400382687700173291240596696210198738481890469236863613451368333166220646002955343720019947519280362378084502069069495365329084565122972490676075254000893741542050001105722374615463857288475383828374199524235552715310145991190456455708836855881913298498626604308306048320883345976397815858443769634206525980209659837076215490604259426895438016276299651392745963703635774811496015804175929471592787066680329936522145072792862327638277809606259276534967238267354308401143658057990542285489713371211570852061104776383796210562846604315589695164669833323472716423298766574592437385945669507682847861377397720529926146170840425537758925170904943584755485106833995652517643516759303650805954909334455592903947332679277891642506639563976754867710052284652470385077545036263059710094680294078985391203406608118870988807007916464383344665397609778193707552399251063233998631294342980924547825497176033168378887032199930976919959875018118808561599378188346388164151796895688173189869785026811846984642275643087897406842956557582874532558756056528717531186262902190607816029704135009117708082428186492321415683606087562696106447769578894942542425014555714793613966688885616886305889777813304765249015975295196510550251969742515226863920137628683334327739226422736745605992915142315509702118056699004265891365332635924484537110801057913733368518524176213341461411203167088281643007298617210803322125369744071251704938519018428198524689687949373101081976964721403587600663155071807236317004966073649372094308737391540951144540192898403135850699030503063088396584670971546678008816209707217574488412483504481693867753187349763720765431580762701873020485486403182381299357434258814583109456543311024444403551694766983666343734835250602181329444913707002328741391171333912866536003313083890338558731756473156647796912045148844920763071159020552255150559266469036248320874178031610434144591119502432325619758957706934929265780457756716577959566403830883351675291734122183348588719051356231425074336533245826256288922672618785589939973646381022089744602427096590964494176512312231462431338299381224230195381659904160680142120428427192108648996669991472510166832228964509718076159071142082390790068008663567898899103311711669229802324666936980052941567951260084331838616913138586013194736556376134821547607633371467677643354804923469536970038188891458817507328197567477484716358393488423663811738567869086455475981034885836401174160208403495720461799714699805073999595155141914941377194491283307955971340802343047526969182458859483737886853420346659673490283158821556648096132707614331172756068195303604306979263100721194973446106364608763804151244471532908793859685142975491329389387769268699873299012585444976787419047528494110916714774367094234305808958888535266215675327250504580507991587324630038860455050119840455815882930670849124049331971087265001325895228030762546203539632794264124785464981736308078531503436696385240265732004280704626155510355834194223214457773178347023581026721159592474321567913074397157326882769416212671129581618837679244531530990424104951447270641498898765194853205464558685211911122486864599495658110819770710819604996746995149993801834934610431860068503339446775053904940918259166612646920422091690796494462831989103350174399646557439912954972779824592791698518561645876264393883792294985256801021684426554334866010578459742297475233722224379145731056019615139119329961427856833257762381340179754311069220086582593108090754580228351852126497293390992841801723938566855437752930183943387682259937308722806380317514528594004263948310680209750331695393585569455109424016284454034424863781141275403242907002204236056208420365063082150443770486267303199393519708690757288082729674900313121426853816881490063286867615053711708578747096781260954611352415465257801768114484454799810898508046602387085745733871978887750872151830596703975935730748005103875249846338735971034047149419306733836462295156272297931297907465731251997776647272020408238090650110535829958707303184090691354387773742150436352300709669133268643775582532891226278579967120448014201635617695178321523714189400065966590517016160622388892513735533052265381085341506244243195450821289216383111733197274780467908686096218433533752327756356128559500081646658330010022472976897748321924612804485021055394947535460755222551076903314832764912636646397990994508887123193930792547301229795523071681344117544117986876378098807674461432555413766218664415986573258429223840452872625623444613547387827472486679563365518132255260969899254434348153370284678202489127252901470831566717001065110345729552204656357800048177660358382557585642235346479152621135531123877301546113393495054663142986805527132636144827184822710068062451844780376709252037212312611134369444391709791749250806963478502868303275257547183209101334760048193696978544827565877057816484161377784290566334161784366277634174719015450867989845158368358655041082454155586472606935069673272912103857037405491959081245840516433073037679752301254223939306337218908367577548481345391495633133396726921791599258323366926934781406644649045157356872938036567826612222065813074962605716976561048791440736584651257843222102450172097776503104383161973724192346348765940338538876775497191352032981481416965555595660798519126478477455806307981490178251804439312104856628109182418627276210721907869568503590821262029707725316180004838445323931077206090869848415000113714209816203069530594172385947583698084656743229236959316719241225416193258980158158534645940557445732020022755187142313268546758924074864127763402460758685058512970437380654591274545096178337287977150288805762149093965136227555717141096256866370806001340244605098122258956386071686228208612601397038442442039585306918587865053056426589248231780527321540896737655461440612638287093566255786768615791152159578915612971678855337964799236931227084803834658170897712103137104483972653029425864694831750073652245261624121466693468316452291869231219474918589383098125009927324932895211078936608125750795387223377790577060166328642595141494466833876026005521519621877538628985220021506184051086712552420543158890457979509194052920032991566281455282419456636452925952179067868883828269309328808230796771490659689035182445459591823320544305589937141310471744565171313263306903208043831564741503493656396301353709045085367632839958251423659585318793251596410872760636734266747248364227232549701235252052937916131242751817610697533443925530159407377295794379324246441789941394006858327623156945554477353912932124309797373925031297741407741366245326796286708679125654774086081885313308965712963597829348167318554405927027017906931302160075541806758564190121939508965345901230897744258245881438292989276496587447120932803781794898595659141646884747389317912918050736616949379184840607531845720173036177375320460774520785312029984295554721210283296964219431468383171001172035027565877290474871802023664666003157195715547661042978888798995621572244300065307462118103431455060448420346648655909178108898915158141585838234892272248506245140471508582608749002489396221757794721259582836051996489567052555038564818129151476587341244133914499985308957996782576620137678904478522738514050431734883934151034834262341345976036041804636904378174507776523023684506734722425368274545159330127282626761597843499651631763625630872636621980588640409402673440235006362372009888175873751710973605317985746051669383077633314079732141886540053339546219046033332395536096816466191016754393626404672579540421455967778249699220114877597895205039279578363576033481249439720550129083838161861161201528162969329816192684992993794379594682341038643933679990479913773485267390038988158982203245099456152808892438573903922545974128812386742673979081300988984215175409272612244526175085405123543138358034173870411335009755090619881883353429890187165020269671969579482808118124038969838936588726665475545033303756629378431668298416380164333073341392613027083665907873590480219646980088361644160247921276180019536152003452885876902376723889130483549752271515224562002976119086799883435610652102925230329382253248598433096427160192957628516530305125856382078380324019705613255462777999320381494409697334648005513320047164535685762449211750592560835173079836783316057375468989813335372524969287242302926715137929359726933312748027252888178894335844487822659698762995999640708227852515358371463955246080326084350337558271522527545297202467971050548499833394976596026766163624668304160079726851531303763980668765703855315713789970651518630007270380736624268702258465597023087373003128651313740581072111748283300322732657181748298369603342060512895680204343340527234886455159941915417351564928478042844933694014017314544918933522391624419417823728355211704730388717252651617079179086359785911222613277385070289449988819119737418995914388812815974297774888589705105515933107154821900688496958587741817223537898869090544289510089842419638743483878342886465067948494210627974738069968374031241044291792652839766372382877465756590442600913749479542217692165529407699011202176556745903649771864404851073704962338482222861314729886781296122386520115066273483986612180883446791282875343571007505988833840373575115756198249615303427454627222239112092511999012097001460653162800245811182500402191833081781463694565268866829301476585988733950653092955264553503148757764042986337569560544655677566379743144644008296187460576399803620353911279284514450008622266786202155782907800427782050130603491769539934097909174711849782502310729471930626037758733348267223100277230251188207409498880211212020109952117220349431851998704430351847754429396717333487328430437622875964350483747252808211301489636492208829052673088910643378187861023916632731904896247947508568263033530616593219218910875078828745571328749102257949842870579351369110318710269605894248458315800950844273587219258722096388301172001126299975157213459205684039942271800620006443635912642463125777981315538424206249670741923202430512306488500092190124156355166269800428993570573130271949397198324249803499399564270338634832431848235303772640084480173462251291884013512074197519603498682715411863748735768830004837664562983347421987868630741609219636064038560138194863310240532844745624934140697550731268826587520975918216757975307452186981241364486159299858173207014651919937667013015344120265272711725953147676019880221434593723555167585055267642499782530461087271255373808479575754132057013015340649801427698141298518106373074397739322878053651741293473532866551809684803658400108389627852430724438515159361010254294602882203873284298869133404527518395793065133675218053741192153358631666671899707447679940487661011603657295443546378802999122452980847316424463702527203696899048796173245478805291230641153908385900733692128645305809695048867229257873930514904323446833042014853810704535609556258012269615156505339400623343487587817311850413723241534260229560917692945588397321371206985697609407538388886763332126713687545265398768972342967976905878859527862985496773003687209542993876167786974373624092563594049638066339218445040682205316405778900219009207109707869879525538939366108913338731943853457088276318713519423478117649869066198103091739558671834090538780984244270698463171289982696084979441122860017924678663285507507309967705279409099616886600431452737025352161813589444999078629756045433780731590575022296330823122624422510603530407750202479691537795344119448492930701418678362421751317128352039419678517273525690241951500464533023447930916913720071955465740297252514908087562102866625371701598033473444840348003000715594334465176725598943196369099736891380832655395930198886291310680414080453327018973469050429847800016537916452300529767123798078635128922679587388768124422211966775815020700710691870441621685268010840277444158508458970684260601128531106961693742420315718361876600337201247784910485752077800644581422753707436194483675005905147779935153371555741171640012380710153618757692539551969619619402791575883664435744117445831391337352538541488882400270795127696556150646567537840623442855422526427875105442176862059755527484282316484264564590212641259462730849297489204949760139010923122691840329711212481237549888472751151634552534767664108855885849970323963810724478859456971547147908011905135218093284705768222977117626660732506101246356979884531594270420124672573553189792581390696162469820091624898703924912621038632802665986616170062876662198534053793889572712920793931261938620460179355293793192710963562211910408256924119329448806417826884742676367317119058857473904606554989905628082009796114433400926926260965707404745416879827528450102662322487534028695252741046200745277713460764210133013475853920690351422894619085378321105061774332735476133439503310781922138901118736224216160103747890417979587723508716121003186457546890284989386759977957827705880787499239848025809062866103282045189772777965015285597713777664995211267601918473103399247534560417203925664896917251083631283739061153667427479565624454979127932844975045963715555185046595569905523842709994647760729691702629631057192699401967465271674200953168375400777597457022194676522850985448792400175277325333726901396796269755345379428075306834298787339880797031956975247503308103562437193123097563406750848949481308320574062058751255609367014595863013654265192383610084850552958487925840956201435526476016591489738885090549302428554711739772168541552900835456176372580585073862040989187308547835327893155723090620468637989884786577823900519324252705479802792880688972317239023908089078276004842854525202439420000007687314556083400962763843813302215781014932179251804305187192476849062669927740863528435217031484251167261460557693733635257239994660254462745300325278711108779722182387953473965335231074205317074677064003671780106329759349526894005912186687568730620239665497302401475070876807064751242717537732315858408003945547920823070731785080563907527392890543029457343457191365587375740385705136344678732628972485883189937989349779555711153274083580817069682127183052391915469219644375399058140338929729691696003569717798678178265938702542530566990498465015901450223244711753701826921279166062795761872560079028558535328789289370264837352746134798952721573749211347819370985653855163538873135276523296843054265351081766793223378003346380830697516337226702734302558576653302460267128405818405468507825159394823897278099919493641721025380377786534217423652844656137052669787220090249977996092411088414750349587497335011628800620455057382836725206721792960503396997667128718004196409391530468261968121112467319831642316837897484403012252146258482811003785979885615795639853270830816682139707230188373231690200271602043796821017039021170864474842485933938410039377022732138645069820757251299644894400797985011010185728306096623428409109574617619098610013714939261275565177952399364965815911866643415338319342254415573807467365943174283189528866563639118532968802765551593973038267680389156600107359192530415939345684111128528417866112160880036937803533252981599847053405685078174934163368360894021262722234202781934422084163493858280447296667140587358669619592703614373849035540885603930652328193671699104874672523347645616124026829196325326189916030012078785452993777085359856670064956435975488206136161512068134937277489965111018240475593895752911089730917620764579987149337789575923673562267230696577736875742150833114483051760387319465025984794233247608357950157028379902651127300658167609234730993999918576579465759275832525415524544100815186002077949126738341995124188580614072173043408926736377398386194204577107750755251693535982070159506982039767628512947324550431277558745719901485113063479201497070184818112495664501727985855959594748121564742655509784707716115084757969383416333732209383973922213289506702222955034420934992972328738129893460894601701557282906858062340484212167366973090538927304543369110082189309366381035167573016320337907448416627671934243387345309254146834495485281425899335781215091950317707772972827942454018566466289509521125229993828947228778135190590903290090873271083365505228154038460738565852564902122239223285777478128671339992331266023332001599439308036024959139209513157498046528452564541370129368994161808519808457003646704546564791444295144553592549903792369432498960112945944702643237831882210395957974454731802435379253135782259413512696556443463813640340298738531294928357915614266381509531206646591224425362319618077284331716769287058049435320375435951234987326763052525217542895344410324656102363055926519392203748531171029483674814922703459569544504262569099111056208770629860203285989109886924423223104271172504897303466851153757707845201077806978409856470019553918451442541996072022191295757846609579607315020371775293992761146965117604919153167946449464870215367161251468021273764804595879717476968169906748505223948161982676077803446052568023574140902075572057875897178502468122974564164787262490714308244363604151344594367178740972837260141933144734345497362018682555535953961012940851803097632523840255908174308178436069681234657651479258466280326811705257788755263562423016279182148870802506058119308649073426699927119219138463552348028770260215828729641399605473887052924259668404880195226775641675785720342606462342665435318147937372497682361531249237741186207194717744129887978556022750743142483749709520553725279395364477421575318753859251898957484163585697629780414245027070357092197336000354583625777176234943080311990410109655120890108410944202677895756148111884802444363374663847034399830861453116541325364410614679967340783352685798569223447938891637998719327287724368327260372213341863276477279680188220548927117397363445221766000019901485508985134968966669003911299974264591147797102358497592965722175638373035540965672639345826871343453522316408511423206684022041960774845713056105882143706201672664438548015990767046345283197769879095167285868169750783052178452268855291193128112064458203100620291087698459214866595177469072197537568324054073620233638402477823770810481947806839065489917033133995405762970787136203261207842838572387273259847892641600872149154390361911225713189230394753363672000811897351923185914001089131161023648466831089397186542721914682749300786717742371962175692073328393939258260761970584434895321596909177469156535677895727944897525916025005962029567289551132857265716849830536311412099225313988944450205147725269606891368118970971135575721461382019307876148838344615287567872172455131033184192063561541929511933931299480322251148002119975439969818959123872826247143592825705631034932041197440204952425644745516868849495502390337295198888228587583032790665469930954308310224608157287048248768592895524277605186561123947553029788780808622260375924994578509550163652620571265452294666588044175972991627922299817611353256200358824837893993670869685764514436226515511221940294725654375191148116805705190029119767577243125265219650148976935437857524768544149163859615375492716212666812174762177564503186844959011487814142290086810216678742252114867819043886965577558286457345569449808046907818609961527272659849191226921404867079407737183625149038175992278052810777947389642050466545038756583671697582351486669515683125577121983132425938149052570578598053631460170221179325382651291181938418818095851047468744877357245673588296381353873469275130912626274571373085545978481728502765568949518812583873840655163593977436965363666578805400295244223821684049819579687969494675792043574125318789168384273322949650776393972938622582034294746910444910691626056496572047400462651481942002733570050761256256734457085160455836353144748386487538640787511573652007981688976383029215146901202089511553753910964021846448985875275847457501840563545852585857292317655420989314736459654099929549162023776575413001314768070209098788406742652792245708068555946796600460692830260265149782090039585466255730901856726346539335059038902460727119849530861042671932365852821604189236822764218307534223801321909930894558720953241379875963876817466307110650319842819817607771101633746001101613230738990435933200227436387257830839644822963607048175975461225222635363342776714581603093354531691045645796058414841711820240309519912448403180896665168923334849523684659896098176779880930440241312345196089909528179369484095338187411731597524669638409308236787170862198869975682584703978258374346666467577522941596993011223269506712293739209298670387246150667835719686916331588450787524093831306351222880200572521082269897820315085782677865808069650208915709231386244117137012813464674095257650439140485455057112106586992890328876597259212203738853679028508149963478795237663330365072093149598584939331483619033917599261375451051317951667414592704690568978589454266109480946128300789661687057417120180554466105835264432863566192000987721764701945446711908556894323035825400056780001391390564047497833353509496610187846962292107481864419555815888270168698668547906488613563731946570393000847111280387924232266135095476457823928018881212830309401425717121080794484561876310578530418642681833881729026484510024846311959096988226058163615171817324352867561984713093725173038878171927733990061679734429375931583961833176249242489420858095578655585689841442183307137984034397276384926295775240161055351719927442044133275791527845904525325372227826014754614131746932517025983789270992061132215091946916983455453472620080304617554969302285900114054857231269953926063405676524734125431962699743490958777893128845588012411995236384841046307070509333262905978250022943388156942563160903353369181279956326495227643509651493921709316845654099811777398026252807076749710952701266624916282127691897302414471625323537249251800426179341310929545040286336823163351554491537563405640231341628145537469601232439325982896390374423980136651280012795966014898218206306892834943359587255546382767788129924206874230619480482911315318968165802678778401096006009789882972232742430596687693385724450741256480841552185420380579854924968467434522126204054944155582952107704127177185641819084471047196324984182471495465102034043499345206340747401606527716825130075298750408645561482887979958512266875193703526731608412230713940641798184055124059200378709719673354566277920269663893364857913620159380202585735277656640412859035684637256531199367488718595246504425422234238150075768182825480199212817191781950736238377216358546331789125180213795977633350493636375610212522658588288901824157893995661111945421190654719200719483161066758945095882519859288366495471439371654550447594105866749819448655467108735639328434939570475435187214637548749494053260046364385851483578592848286039829060555062254748127329358349193016943092346710234116463674745320244043831537434690966705498417378377067419794435441009878602060208405900828076934823939719007195184301998850239658643678710851511805137743503733169786265171066084870104071999293895170647705202013932667097665036797534527067680507424276108676013981282696926669799762530625907562580139770138737355606210548595640617166824060431835731741023533018221964177676516267968541497145596339876575787555835102129868975152301274942819957796834534144817297653244645941208026323083290283100774432145914034584424857640108714783293565538293526793556461107612222810284172291367197680118650684159169628601107240742952299898364068221402139908595340136287277723425098954875098654955116854413011203414549264156142401224549811951793704869414398291734265514921819329175507237170694860518377815103269909855448750530212286175595291298337509775462694389580969346256966475219515186539566347853523125647685857042891206152765926268270639697697341489549003363219327022823062148376763296995927750206362773988824992339594792001027597021272696553269640098511696514262834333403443966059236247682248774439112210687311835159946178759747845288712254772174657086325742898752721337788086091309870198862496439907689932591797821055359382643162418963622990319618574113194826235414353380434803244329871015876554883512133268405948320548270672325871302966682808266889962486931420732436913400434779974955598431169135104419817657922341016060579504860411880687006140995345169518721007483118261880860643060387216171105154771037748912767082338866798214628934303641898225420292678068154531615471062024463827236850064991212672289351470913096412398158892996386805704005090513733362981233708093899517106107917471680847636982560120586679842737938215219115695821118645037838176815413247963798362537127329946400035419656785421199477414997535436346750724143907615005708514449167562830677447997084920402139571090546594035151536141372243533570782810110139324605949965927626794032699145980851466526533790192349468586641275221726035960349053276931756237036484629457373970805077197696405705663947091418429695629017326675204705702183448522691209094598792386376808926663041439914291105564738641853868388819285368282600942079563879635400561710403978793755161848877866767280706279528378488244603113939474927633215661622801435876234993830147437699491172771589389517013550216465170339127852664448031308481417076571542295104051865344517504191677149126650617260224511313536567159215938170053969368775881171983969108360760144021235851391544294863620224443488696143082650807500336782332025543007858081864657710334528490416186624566446315352338730556370897363294970792561453076876785800237853676827561505524633149633431012197129344145293930043429957347649087325405459378437563951399537045217123573815020666816791359674624853604431737635986285583750544731166038291885342351156770119155421757155528276834192371468094023396266119170199624421019549240842476996708417584930310732644078173006726699385690799976479933665160353771017861848428130891076091709938684502928673663236376877498488809623419495519746061761380007464090581229978416377125560214627196270540536003697713692864743091416614768934435818081344782515509927732230566838871553829020173613902812806393743389873749386309685437392462132200949722147834740112927478363567687672295608614481879688836915643858457890718659480430202792185679369871350447999730395944239798591609267849463199142905912759591523939801670581623499529779224178522498615153542550203894344723424596054813352059014145304922559126103752382796088860830106861255412572001970924286738562490776060089695763127327142601561225638706169507512948803922306016856662167024795340511586384217443925120634175024707444847179157501910925913070754514612361663567838311713645131033118081472498551533493981251508403777093236501626171372960530116875501912185464628059052776513272813343476062517983973450732597572802714346869550295657861522897162571255552144986785976742165061794853147501130534280985147821118866381284949037534471211984971447728120453129033074756984026176153412971430197281283114737819645622604380016133931642372376365417493319161465335657688765855149094281676591734961494815930442227195061699337908473000602570521151440450697799619261033251529897339878125958409161601251554266746392723573864733499193634969976506819728259013358400136955136834219452407308919703307624765112449595651529120582297969237283971142843628327010265447391013947362784305502489520936847326060257605209393286789966169583444740521681460820996412330911137143367094685602760320559519826129363431917236910872403848216917808764897899636790267431172070503652027742322688355345229517357381930644559108170696617267797981404716954415565478298693946457496163857273391112055538278186823160304638061091488889157586388618530878171651664218753682656221910177684781072725995373911247921499510221203140871964096920904570617024684073728298439550009493948114847613785507777256483249067777951507240612484647326525544071110231292197602024825754088787836146406228931156193643052801772228110513606385009052785237156204598094447434628626460920648553640909353052753734470178528406257046075500442401494585305484195318400298426321510412584291442817727664843283141113247885449193636837618717427778238886077731868730652502747857715935384166004520853398104739680316926501713090854949053074452672362434700003817582085420162764697351218307581917699213257639847880574999203025535961717365313652134362810858290462998774591799985047052926911404307375020294527412696947297702855806473547979095808917019763711931695444072451604690999721498596690321614212420848864370751576975855084556390392981649471101448754436807754157862664629897400187010887221967473462017970146503097045329528896738970675195611249064286472000600676761587685575219882100256607659863572355949795326936918502540190170728710031492230483633127893637239993051490259676065968303739614405248519075922148830591485212971604555804713514774189892258828414179245141342852164790229395529127921823716065330355882979172321140761251742268667314832995378266271959153865494012378895906002884032532527386622135990386055650471060463674866366984825486716627990838480357912365691206049134882459327827777751809740157128554435174084573500930080676580827361747582788284648185064108452059655225862776621162557355567493687410585675829923166711271648158182871528811088085281159692394411256786740073819464264489181782541279351797168843135536578630349674874505775982556807443993039794365464560057290327938916386696096387315682493429449063289176697727803064672179901977578621788516203951727476906221477569370724760732725993199163863116643606129449372107660343450696432138574086377712315902618071365063787720645549511248066783020816653741350568358822386014735074691598772318336466541622683333906716566386031463593758060002659935422102209350457286078883556755379504438713694901020517150968658610841067853195419176318004112312995682175863799008280675237020000582275117739608148038993091139652746361587156690991736437063134426598702854314754986058082420289411447713496037568797396017309854346703439292844384774761227741357993161350584411910436344296501025953481594138143929769419019897041939256246783146395561364564597158530692746111505380921630408688960775489314398947019732567751876902138963431602519302277282618774440463344792702286819840565114266672088193554360999262731570051216804243140860601462942131157651780840737217229304490660941658043423574404795395594369165003798365701888236902853102015980696215774704527527997025795007489330144095592702138193725382989336416264294413109822367530824044957265378961546687403478421760334912263698382237878951496668139051919471324608063494729815605678145202708406891298423875931274060727202664010272311910423623296113608167306097978066275816430979500636166453274954927996568781952261762066133557432152937732344586755771560727372611668466092389326363237368322308051740177988352940690373820265930357379607816402555860079080332227812945852645209230430420983703410505971398439312317457017066350425145397991485009152795940010568035771659669265471061958901749353751694087002180551525268608832276642614725641244027085097871418869272635992735826455157726676087851279477844233222166007587460784459911968376639314991123826506020906069427922361418872805651914297855577184700889556319424283817951894747399080256443311790740169921188385430541638431058866245000395202535860485725849811498735690139664684714604062815645070571593520745452508736156336203531376988485768292915976856167345267623317620159677761180760890665966078807548074698580152901786926589484746371805454649488787806414843966272159745649465935378504002288283576853775741698945578467476420407364065357349985188967880417602052950949564991531411479472771673271264038457456507986837330747343778209252710306628320032464061100101789488993749498633853966946773808179787443518083098247516230570849158712640422174375037162754930377626131547456191488831947441781710174155989745399362478773359445663320947619221638961309488673001700601226774820151220852155691960358706999288000666277810596891596728460962249548682130430268970707449642105267025199275361221450910931024101377990065413686524235299836275746585265320787896069926416905242560781397314490615575481023307327716469638405688448806966129935894360099152868882117474350150448852186566142465717645303917830661057741975522961239239549474464901353784783346476213680393794190679508319084447443278733218367818323299378321878841791384658813197725504145782258241178439029902437773740353866892690380127475334622659652660145153839631396589093832744036792281060702613109188971870476421921617540367576959971948959564344895321545749261569722163805185825850838884922384063444436757431018829880335581509292742013649772847873187412011847696692311652545374508935112490419037216090593277960775014782406702367877262623961766992375363439367506906433616459246914140347374866382935500215236742745215059343609970821715936550181633950938832549289237618960561665888462362813184470700656724254050459424161244553717833484716289130797350650502795070999419702830426633420504882079973395200202325810910052504758756779632521411754700892862264265664321145701489752033259229793315847036195491481105549730037709086172708753239339087032061432338536226731870412606919487868243345275648911231742404642068413133929106262596503259983398975600467594522123107454038612432934622764500807372701789702983579452295338435857628606088278305171206867504509633792923888865703831690002448068905074880319365839114407082684026619857857376688348707236036093282862688927405464177140084242193592477754196955450018904076756402981869579076728900724827043876423068423164366620636299835203440844977869624806314839256665193357451998856849859389359221964632467652814573766763135529056333945532482856454988878626734152989477601067943471289147422433173753852002534636140362719055758600540503060337339214382912759152768446973496427451689703767499489996153708152223922713700572552365590864101115445284046196246165973375154263436805309330032898592551264998573087039181357027554245597208218242620226132395193043890046293317681009405134005600384320396088492331778121334073816104560873172863888256580061872045270447953497175130205782928298007810512624587627340861388590560133507849945362018993914338596461576370503901620819250646292996931199775674093156156815361611017004424837257565356382932468694267922807803197136143472002866635217959486361656904259110614240991557847273749491411772779069329866637049331678979215936178723831778935663632158691018592094847109446003617916211784357867622014490365828943875718347304561557124389485293873950763439672809986628501862506592571511848737698992989812026357364104307073501844475777403064331108302310361236139063430819045953601528734096140504032458946511568436349761728171716812511967307976570710575960434617696048646552996298372351275426916821584781382777730447452232089956265071528359807995784012287085225868510500499459553135354454076367794377080714597418445390599511272052688178135136918115542699411864501356468210946349353785207301402718679414626650975250479980596473761082517846257481571495508010812184354410880070791476105539824008874878042712717776810467193421858980848424157048519366942216481141769070021922496725772909900086907466835660895893875527781790406316017622721571743251843216635917894327122423074327299831105773780196529003922599548759347508819618788269844155616655894149663231100855333444792386338491842532547561784094048976491748082358151954820276542088976823011967735506086374828005890802251845682617332736299624873365395186928942514759561477279506768474930978436222463871327720647958807080628074248150702081253960252936308278951914594866243217411654777130066045912134625512087375922995555676311734745380220951586902716133811683957178187933595968253002978306734572988542160202279900348907072889760245631146512124143917877822264663317947762781474445820837718492907064951325643864290803580009069684389596761533951250181829480523662478507294413519072779709242197973350483407439155967297967046831894109794458215759981726465413753567028513208442163129214073430050847522483907785022723498912372237326015737801208279480094019578589711981846050963853561360174130748519330167193049601269785438625309748766255218601414586503328860501345816871224132451042190352586749484591810299553494584125415842090839972490962700469610153640526104094260302555293850323636507531232126891701869186282717103420974549275194373451361053912823623309649049574729893978367157847357389388682775086674034921659956480695599926537765540334237285158595528106542091494076833330943364777307318890348898444245753247407234477948995550181116478081682850738185968644952323583858831612644600966108957909169389888131408829264906799806253735208348887515828739094701901098562188141619752075735338899533616337322069471253448765468355224477926257508678761127048579087609300195681002074742356436442587134293978051719271522919313126525482889292006089530252412397730188270438130808365424052871693712783087255715974747960103371630756889551025191069530199495462631561469159891471060919556576933432019151426518809703691199513757668147324698037697385737885473667243936339928574863042714980540682065725840561421201168715919477386964786247515932545044123864263393350961723031318230824537312500351612800864473790737394402542628092250662895556594731745919421561131499157110327994900784943264619226301756287047899931845015565076141505356124227956596736712751026708020979022345718964398833355262701609998759709306315174632810323029758934280564518980490630092001533069418563926151856965134827601960758460950690393105363659663083769269416861890540980798185282134630014711519411400719527808814154133395990332115755267429187366620458876237670521111588632112726984034941394807543403577011017438865399119782548101006699083344159957013812127138531751429529264830550179942109497530503464077374115712407120943998339739932798644823505449514857412874009807325175039473691135797099351745012999250831108481069101901029578610950868599692254525237993104282048397385689946117983968232761462277338532633220106191826988998619382127181960896789621862600155441116783670749036249385441622275719602009947235252265590588118403005377043521521736140823601040848197186857762432896641713097018742474797576614543492522668699278694294408580363240607243467703528781809740038242079057869712258889540001057362302249199291829830801745277609064608273810414103452304947840048929253982200548306651858700442440759561946189273269061907124474578888711682089366624530307952461482344376547562564605651096662419157042104003272117767028806583624242208523855633624830611043771651467291702540693810830906132386885723566726509205505176930462589874436148328878579148309709677601440665373833464415764425346073030987632542456642837547999865937491425914045199493814523779046643623016062343855025797566426962300920049062153961152193819649122981192513344024783864798587102922388082442097940484531858868597240802169059695553945895226442605917604592436067324014990984504388842687267480399277541438536070207617552795618688376561965153574229547852551785937310087427417832690387021354640855482541425807621120950403495628147710537553139200313704489006817342421914437171463408728107646070918767458661348124194965895053030532600327340028903476192977705176659758216893490995210700847776336758959263716701110163128940352570538772511004030440067900974267652054717897006672208213502730450806242335032430437187790655718751173961213670632172956576242255467393580056613979422278208796860658269301425543434841020953643641275869204806929227262046268673212910206353110062258344107471006400735071517976618666953770509073605652280169176010322057057434218642621532993270672091373539534723867758783513401613993833144455968959293453824610408869814248606397754594759523915922790054151519946363300032386694223133879190894604020320238101702568866474122003361066274278699861040479131387351472594242897228653998430340900764729448868743569428324354134453980988932532295323138705510408303470329043139936592116849645486955847669487770638591969008426945735991349380323056010299553846313936937202235128870436574084192649889594007063643412527230782758501682194122749306062966286087763349890035533035018164385639703787126065598960817845521253380977335400667483108444332761531902060243597652701170523834253462567498534493891007428107459114357178880031189835840516454785552746259201059397207039205516647540034054182350233651249225469511186136253635170747398525520633411381083134295783807445393732830663284474841675292598706706733054300869772978831122818362498486294811602342099935920970629376340288469574558791124151193362418564864103490668789665657131228206798873760794924736083361508074526159065996064282132244185916670641974774267550412573893479980140636541129856209319827192108435423707150526046775644085200855447281517487940211465798791701232971914798296887792745417170209029663787760518832805761256041932916021875019024207985303737318479670317032937890369501930358062185534929306207551033040685142664131190151701901488944176958065696549831688490293075922205332545172805278440493299949629386970591142624079106506069618265903133516078563978254887927491812155145851755706017696379726439622136743597116855829495626650790277736751078658096868900909396360669616129857490262369998912081786239865030129319138618665737229703520827850346502314948665494559328916716671375925641127600179225758781290571376217391328178866869028800683615642764643596269026239117040518703494877039527556072735523215082622738828033971132745586516100106001558117880545231023587816201990177194199466765367080152880497801351529356378154323187329258125301513704330248976504407192217467706312322044472525290243990761170039504337459429601087434670812587719942380887079958824069750055499303710318281111469450207294451622883400727195898886648749017743264880536133701376772971894481998225032603428368442245649411929709015481032187141931144263522632922718751630917369986358209001423300199458160475462219854796480404759320977538294284594824259550555903648906443119267127979761849319974715970986654642558564983857501018459002865538760799708297697361967841773353960298709911564568590678029117023600734313212017857054542721217531040543557543053807685848233158274783741654738753666561954108024410194096165932191079244456406251436872053521640512347489985622693630351148606458291332517139761403284044853494227595536133483819709077455633726817654672784315254938926269139295679397598350950088229774995308701664730186090845116480388539959817442882400516027196587387575613959600903131227573715439943432513451033312382536144270639219831619447910896320690033825098879277987834590296276182043918492437175496234095038120940539605587530937770894792153614496125012575676496299934053512580826459739162771896024315216732732402531217873117124317687085576861415186788587040332175882994414835293632146710181044491131498968899391533599598272324841318216645822318937665197041598657946547563553483544985263755296136756057725434956681899804825518376196770184877730539977497104094379167808084752604613971502299107164250587458822995316464660384130449103996889568156211448778893776979595966276551794269550302093326125182762377110812276872291400467303741609077088850289351763556245869785805623160088673950211888812714644446865307864645893639944655372456701391505078911738654247563610077941944365458083397821210030973263627189741593837993364205265616004547188041519245419705215120835846819660458506993087083330628708619637594987095118756953530676589407955231865112118093691009524257608143255375886217967797811455900735889652921052974589101558504251402331722879399899653526002559601735304842990778920517808689881514458771743054187137801561927797244875812843079688353908937274235595041528441079266332768645735013381224592553541280025948109839104678003149693403699859300418490471665616450697999043910431218501108621958646587189196049343274623146855622702731049731617384307944843753922223454874304271868433333870940506524818046696412457956914763623800640148649325831371514959985131181660607289851984029393375544044546665101358807111816078732901255610288136815588055843482120328454571732062100642925602581699645608292829510413897493566534817350637458846047320276469436147859570768942984713693978007294129168582186896127632630660222960316786726574081513517974665927411852706205601093869343503781026886711080081656704781207338778432213515247129811217020792321106452509842825108008898305801674696120521063757311564958572976589868408750531897390948839225651188492472247103858929584910184644764885856325221006800089515908908691244189264788597032712951841198984579550377592940931895318741719111258420522150237263665418435603308418366233004722451037737084252440226727648040225702686766104473047549548765166148474399195180030325692780352057776244292455907994825773587979295356622018447017848329940488952604782230703032468758763372408113658011462248653331970027130031388053361863991144288125027117359460425631941404812689552363875528673168234158262939774556316364491931347129900216147734411586046612784686598797782485545235633212411694129331788763701452329482753823560687913583142023022144913570401141527661385381462873431954076165390481954566415625823561453254338595311026576080981701847199528368500881593889707982959075054177310394474102269480284421428074629644375651714669292483978819077547100255502279560516271158504778089601521831186629548093603575403317255698431489275572454913811356779610811134356922924092214847364009551030724369592869441603340398879352838025103474809600035874119982066195681403954129127760619719574830167533898842506618382129486520807308672711976303301836921910357134115671942664508374517656783982348686207622719508743846880763020051414128463360103577211457627039165601145140962542709425502746024726577893840631518799423782842986097172284434985634207200707402629408666075969361593953997413361776489519792741202625509766387883709471623263291497247839508197985531328298781227346538713683275860621989081492475103245776244017726506946848569595958055697143571389184318982886981070244802271598834481329562155631914295939986792813274666683282887982293773479967930749052853581477778826968797941654831680180924655008895739512126900050821163348449457980317440764605009806953143169762602590250227514293479140584673894799245020523439501830655686700772116856163405986002086334497995859036233637308025566586430079774975463915765017877695166068285790948521703667437175434932709344307961842151955139123239719201892932838883383232829912834891397214792140647881738255949657741055288631431822415864763989279463651532302416838666245917728169263886922787843200175440465037716028282222555076459359301854758425844804140369157548559234420807657073865832912382087875693412262112671487661311968362571316949122672654721013553658881893660105782051531550099915636240167574537348465130651805738097538083801674697105511737827972224050893286279319315806619793949788165982339710870618571618358186452216585769241062347559538597293526483029662503266952578679686874976365446847452807970928089703925175336299887141801663114896616351109885463200332373415000571954129994213516603222927739912129574052272949624911783537450262375206818418400489385001568550100839975691945229629345650882816016939499235726687598475106568633666671622635599558341491099928947669014146916807216940621650522101884240400013866225302894459707447553547658709112721863042137164292041060490144413457221642682606649005810056906833244041728900229977611017840638538109107287833930510641786062608496399475298435395179478184714098192388585056518616116088285215915661706338202138951492373660619635035759695202346601417662902794820443807658618002108376837374859934184438600201668732612160293871760887291951878888865068187061185294855968703820587052625702593883673171593201463593076819613267731219315284399562051283759664844508513961501690734357259964892234343953106617510322023776518475090573716593068852278155937490730371551244098253344412220191051810004667259575036658604445766349943573848846680511445775291436419438282602707600126903251705942262036322555904348031668649295244448110819758607967491053428621289875855680198152123085652567929012990560251088792357663419725158667272571358337196285743969984325534763965427190336115762428865781431765074195885369499713701149650852636913093070270492501061463689965309063028556646674702415917261682955318777955967426104422573137672083580800970713712325539674343399581793736090308128082869439645125452426689038442237114616730310939206288070772491096703608436143455141082025068395254298392084691294018182438129723429483254676663894541155701315084416028643347943256224661645814268144503421443412150172336409656181203743685819334169731047506626495793471704260841651920822509979527978170501332654315152602899306114208683565770665017758500072557809182842926511446650279904411187291230717871863286706235704288901959658537282648096977240757089159994108654594826297835696295932794273363307613746247634038016771796479553401932784959097473354996583747563577303081315777018447798750685954210943767787477520713277720014177714189688300059045163852705372495694092019333666653510007056685052835292790509482143882686091109488810843377709816815018826894518093561805162370030185846795765470064917421878559746041463826184646316550709971444293606915625873617358095060535249018312629731645675243542914557326064399540877748641760622453324186092609138674154891723124843667326737986075284727185512668198274228108568245162703221021868098469090973286137889722116045868707843072070352241645891668863763119239747256906233369571956993206079473696869934031837150002000571125545410091577015194585271158290460122510127446677768368053595915213364468432128280585767911763829198259235558898294795171883146663528507331050907925273242779666821257763724875366004858503761608954401823248538450867544816606842521737730072397338872635375807877481445158768709617574981693759917605036322333647075553449511071335038980340867731068348776252498389326345813835609879278225008267032007380646696758060559665617066254871515111304784358507933034551320380068791621272359010093868791819603890624835764001009226158460486808715140372131351270420666230451781161674107898009025484515989027493073071315241494379428508120420975113733904676744040803666191604627115446042915004735957206348690243037345958565036855561167613377456910092712516088894853179027259526174731270261892351186472905468837460616226130433616283226464239365917557576327398582839187350947175325040672357141390479358522942652882154139441698507263982400505611231391392577341632297759194804178004024936421001357120357620634583762793259098177576170241849732635184299781401108132389492444212959784859299308502645758525187584989984747436078331612862834258850520360146407544487841044482233809998346786071773994932007640459383756905452544253271577109717051758343418278988862809262063702487296117173568019677898908916241614115773765166523472699961888207094049163593255082298823379711480434788816300803110111610159739574773977842831041059209273255790335704568188866958523897408885501577489868953502236973238640818112225322744071447322107909050211343667183812583591130846502596176947032953228402886075249597571813519530874732915329577061694109279874366750877287108056613556304438650753699103760342398367344484824614171003802653253358435123943461023784923144795868356540085624154917166793175011543717800641445603257134094387162094179686271279615516133560181321066708516313761421327274249204063331563277644570337924680625157377604826372769356602990751880136948546180735843016101941789655866114594401007831590832702465529332042658847901066797375772772095300137947135166562238264303839897457374268074928397417427230131124192701048946444002310213731056457003904723005718633137950730999193756611374888478666819330733193799268553930806907359842973264294694031682840613715945572979428228340614519490421445421399909505930078986174910034485091368191432782571278732707577635869252338519254566401852820362435505772142653896132164544362478445856296195661309304729800355720194324330281456452858877468545349361053429558015429171387525746179572970460337140909789160685408881201021466594152213823722045482760797742728447818671436424452071137997835792214782048247321252205341161809378777892244929773628023096947806958979835780266920239053854381852368371283386255937677988790753053376829714169983892076406415584556301010521703700273287322623457757020417015857289423681950730202368475623637516856543555918881645002374050820524977721236630125357493958711064459508872039680216436615428495826673125585797176059214581936457489510418118438658625532647180251747692146040078195863351243898877251099261605864695425048265502512569294538877385969816262494415046488143694153007676861299840946624250064655611178450428243403894321518468934428545571689205512723270239837155505572885410989360998821673802098646656954653302120958006193191771589427153311457718726223578646129994541871543591455444057121693178395561105078437583278925072437070765502854413302358854177314288484562610916372476646533653528399131758187363301612587175498579209010978327233837571719758228318179390363410409819835393699235497917990645688585302950453102803867778086248453684500060407082704522821038157730669069250641008721320077220989053697998791685191199437718190830362687410112941937995824327084562196663527813376796193180210900916586349314130202303484799571324406078285993620732793910192274663103791574785778447543309093459531592192747358994018113787375033557162362475358978540446738917076803599367834941511456787667751759492759880409218078115998296367018457131222389849814404284083539763867730530729420429683759610200803161891702568297803433331255946365965108066894242598136434559084305232426781317478088909392681334572262149329280609709677634855185955817278761830764852741436995082285030803461305199860810192860959451605034955111078255835516641579416991329365536345304189837744055709311436673345134016884282150882079435267036792383825241095544403260158057652427483795729783105960428154066728179409197497558467017460532274935520976842668704455681995480785206740085052603731328120857669648633349049597774284944447497796266978637657715771365400017032611523909922717424512637817329975144294450325571130125208724625764630352233215862016354523368149565401831777586751559849498217997279097469572255325029429120748675305348801340576007558785080090117007810125458924557332202467206001569351512572083508153619165310976644601695935729216434034784361289605648132895899689592596208044405322306134719892447493074458331308780668077583194525313504969197963435389250813604576423892922175008582237589112319217425388346950194137086655938740599368839786623657933941578300149891764337862181626265312528463831142390687482339828488571936648763887034291060417741447147823633275715055811326539876903363513228241428724629507219289080047168256909729452396600700048912997910910879824920185045958570075464224555503358100838289911016045781608093438534116497920389305425820085178094479657283167279228539189224588563508962557085049495831615888585147081423640355054836462424728716649594781055995259747183013112335146940106566598530556597454468881933948706926204275062938772023187419265647283607352938303213432234637641744269564661670083821719148337811169362084088651857444094573867733397780029005949792933416980691322138281866611757738077372330879498618555042514965706981708306160198413335304174584366538056930788754994176970041697918145277324488270299412566390713792227206080368122799880296765250144096114665581135611845845605164037042771974590408177828212303419017280096065434855335584082404021145291670008193482265871607102347599161956362816735501207967319743492793925342973900151306913832520046611283456115348899518954598351890869213078594337626771774157281617611390949456667717183234612017261916711921455070778528803291793596403823409060837782947038007478957692459925187618091794292531378101446267975889919196946443782622777312149074915809167229052842449540372259331897440242025327747465986569887106545135539568344958714619135354093068666336678316595125943906225138992483683473734641430766402210019187037622278362924492000014186462212644304878313250537672048453233381153051786090267116819945273729803741654142445151783406922859228985844464616557077193485994352980494794989722110955500271193723991439342489659116285492910483834847595518369191718613856665690887902429926435549892856495943010604204432294731442629631466526839784019032915584645634269881617171837229123365903293352748960874911207545583181710636763881678725450473071005085742240744937694306920697809973281892006525366241886405824953116273590693027248859241260465581273336705874277541999455381927057476841665793970271692926307430536073176141727768698523150769783081869605294440181157689983786218396944581691144984546075037443124666273985353568341072569704108150156300590867549078807847396986575154410423825036010595790463399548423364134308899800157521126839382893974303781369614492392729583864051460681289293494022427704172319310548919783548296278312666819108384400140115272875939059389561881608317959715994490633192784050952840492551711292729697299549829851775684260964309289838848777255217088076040794883432839084257598618953174123670578884456892509196051607481665060461723743300845475262346098377987661046427815978702006814495319735717157185590130905953629269301051947410208673002768706798055687011940871023032145932190026654999341372590487774973333442160226670824677048539188739326979176434751954316118111617838853554810655659593591521327811425885037763066887354295092062334914105128423927816109072201248013858682694787456724207542723666998632030806123588108140529301384714892933853037450440411365093289260131756082088798844800772222616773484437958402802404848240220312074570560588082592234640877831651823553495925388732498212127901590372969785701539322056616863253387538924656429414215763203763619198914683679018486954291327605394225081059025634564856484323738335126628352286278682976883631296443663857187200556291094851666085022319191333064022251505689133195006674071042620728855303237882661641008784261460266752229666793456834739358584448130118937156523838947764904071821889270672348110527342749022481561399292178813329625747474263378674778399884921143518175910251552393040569340485152175503193594452940605780697892629208495646779419678586686711546935814248566632582350155626912008510679986501043013403473521026071844749925931268625172261812976526352694886009684559631539515104143692510506467051809714098139760559385547501528015091639253201578527059102635131239010870155230846256070807081205178095183580597314293092192838711520332013868019179367001056705772654848332669609728952085794584447447441817873046363363541889898056999844507299152840151253935998416158526069907757786474428135976437887870240568282964824696660207373184612851927652675310190387947694886286538804435136400071681486139490779455438904550326435090624237963859867710887714201046576923867092297322310865824734290618366640134448558101963334473636093185469163344927634921700023325775860833412297188105855254764502967062608565999939571331730960622598509100328817353910264129332358958622478922956180823348459443915397513706554434227660962181046235779791281043054471525791172570954600288605122771236558610141281340412402556434593823982873454823626114657070175127645602484836167104564724258580003553591945569927205097126787415198554670747808785879160545311377787235469322745619740098897184001496837681864631429171180866651336644405904760972574829883881526112044860232291501192474281862733100400580567048155577136012178862541151285040903053359466058532535786433786106788328284080271496160921844309382303843481364570728978647642866307033907114846823557201286024768893298866808195414641976068194364695592996340823978700626683641982943077792443609920637787897024705111622660993266117893507930316525767244795094695292625871181817674768272338605363743949222504535025174285892077994123420359317697608904606066551889398945231536701246544839414165870734592895483829500218933956351999249976720849020740937517123929544859343679691622272688466555491455750301635938072120538984450606195538712219004426340540646586295389030681625538499009656821177590618668609584681090583567100831145594205595673417815820746396810683679133068662165243902422829737610731540471195030059648739248883467228572212279532251344072667387751730003475922792220662862184148058301702200987035535282673924347869008654949314177982960633322513373567192014418374656925117948930880615426091025884911308778233753404872560808718633128117646667019975415373693877229453662793930436533011125709613670918233640315899925785305599727942584329283361364188743895608543802860848461835467402946800420487944616611509270150653340672484742182503414565740389574338551665560338388015280761834216480107976617418430304674973907276457820812113200682014198172777711013038071998030846746068822695435292964196232139436054818605146596831825055072815755352204402062545413712199715321582615865954723710956843861262609726040398216221639748989121108562107183795626837173402731173901982674813284102636932309979862423049286777447637422247988643465932230666436652146519606742390530108478904423491578714231728331949971466675146534913809719284684157026907571059702538299958891551393283763233077579602877870806639197754555697091766657569317878762031296349732566342149369913806434821627315956643110185162812539950005452295779304540143669471596172561660640088049403005643955024079856578154489443685016280713658027351035398898607218413438477293856245580765300485869356420165268076254195606918414829894681861051170516797482843441644395124464899520072478309581158454034144701657357505830583003543099589503303719387942848495777185392220875730689067449250029552963770531504777360176153976925247701231058528210789937345776090376316941530914680788446463004637840135652561432785998461618220557063987833544808603808543937771631878300458116870582795882893065500514199616851274802746932191369202659286269963695258117099427867181979069164378483307985990258568407002344465253619237598491689790631412350252964409145581554026930031658992856041125458834316770543135901043413435742320665047822569238029511023454947009957814400127834820166868683657578859944240454611623369030877313773154728264394830219047975494283579708581505921541104544454961892088566467263195339982142348431361095832811263562278050648598294009750686660123578130202337186497271375980015445970637125198689946388317510546502385912203517956863516412530240517364997534376908329567634902410591355858816255487801285018626674123603406368910321972293047079833547364828411462746471925536747969958727772534362396018438439648031269168111913428716010342024406037643625094507817415896647458356359661432370663140725047912308945958073287463994737661853682867500723368973637615030971761529143535493052386372026238246620379708442108873863941962588845823937224897294683264074477404977576701165722464431952521441250005015800639583607580257411222754893821425838942214689541111281888226812468303315390733620444657289548752621864429336926388625435373742379028997389966414846272619544820141060265501794438602759638216743335475227032245271997530917054638043446911881082309845306521371821638174262119824249392912060330067616981429917057629542795718763363487296557418271799688727536767871789442405752330233742886160217604105241989819816745661108337155516487920561609780776380210250884704016131987587236262145877434527514391700279169750543936809529517889648350902819687617253798633962199059516656881087555503147300908379308123518573633879117857066526512760834139405743579290343872391834107490661716234770345123556926924803266005505122587684611223914305860485033754174089508966254042643344327432913698374018914952109688713760798656498965932707835544353699101197563572815872207057635086420515504411537045237159016556615710072097642865321547826458130926019717406847015631281733238715129110968957996268417391416070991795682569393555280590931312902944644194797032906512213217996770931707587965067147930736584923552903479382764519322460150575123096361124813930841837949919001605216142864237603831301180639908303017250939497491425350762628504006251644650308656155219912470004566551957898790473545954042402782019277470249693664287072959167493706649711523963392185917233812304794486668941098101572208284179676666623800656196847196991576238687262825333986101613415206440390534577857917386308695201735830459299431566429086509317210104287889227863127384515365192313185371331632211170606623996624780816962142608124561376687595258319123022965038008707250245589406144906414203998270978214508935597401174620167207473448701019589767289206171374928128448292349034661664143279023365968703968547137923376322081389212365547666651597850989749879076015103728612477448572086275842420441183619070658368301553362707840457265549485988048087857819108009342837530695093235069281467397294521456295820758309974119501599518870158750113836627638331796964768502155794769940012468505707018354220285450505317446711027080008917848151241482830734221221133895068921327290107400856676694337435249082874506799271227756603831970015577275048996081344569674892458095981259327592146536404478561889739141922862063602523276825416794294097434562369611232509133784186967108263101781130632606226901233290139521442799524678916451366506167772841850451193080136494346150299724266081847830682332756582937774636839683657210154403131704732758459363333714786670393948058043833322192984690602159212576635532158543417587645128430026649290536366119667880524308301491470274824545926570635258120560966086879183525738581235911182382359273832782946757927789371549252937386100241664179493181418496518037123419286836274254328552595335661575530183854116266728281759090370316445207458586594040216882293817824821558434285378390900588119359295446257050315885745112623354320384528718864099471598959766086486454048152907248367847957453034860765490324473465164774405290917937680424965087348848298180627121760063557735280436487468673624607294209083328606989658452611723326352637894316815877095137231082679126529687549949748928192184724424822349282702256947919495637518929854627724603282366366121228299271464822909183079074214561680622513251084599249591373915163278541891767894925762401052111779670532882788443858914270265734885274047317778577681478065677703604803886721204675910694690059630729794916908563313413720848259434235516835178554007589358323042993592564317538540000598685092048746415302142352531971401324540447905458836354565974110503341206813238557921238750697552618638235389846358907052311278114696520850103889917563871358652404584756103551998297314987177292722511589851648785886423651274236904282746835701777551868175461761108627303195205324203299841617686744846277546890075182212257688955758748421150158447020482504478810949504518767596831706812749470025283790901799204103828673528420704808572098870448052267116852767495968644311023692597796724067956105680751649227337575891706180710193268804352821471609603331748778874135235205811865063947010203639620335401108867358149856717157303444841571966881638992200137571378125055023056615169789962432775383603462241715082433955230890330862025081907086458003870648760978957388971228793419856089637677948455256956683578356313318348120741992281921368018272983792223915498354304175172921786201073635058332682058288378596676021290251515986929501571638576186312901143684142786823626427211746758010385403528998720199270247068240054499222531416294405778317479165749240956643940914957949025055251630869414171939119379711382193073207647829673421671790683177343294979761067334482459567532954899961952041031931310022847122426858536303488722366701298671196923960220587670527783742860331503136707232555786703781263892967394860577198375551173722112865217140720015144560840418153358584713401787600816005629830970169324723434436530488856715208508027389340482572447034195340459916967268460459751969435550654933079664267087687693805096974586395481253816970725432019877119362713055595641311033743087623350059824480098590094004658656975012738688814167554224665138153003301294590499005801650993557703985063318852223505205011532965541045112703369305660601281672523405568315340344830310323319713653245399497880492447158009911609087656358773473043826205171308868873579005560655077601730006451393683581648248682355049429028205763083417939115192275571196189002246069712462140482290348646169023438968799099194481567155035828520536797873321127598827591453408921638392836722224123992916239478136794616974490614586980639207960996780013762791866344790084132991592700267078254311857047107414864098330949367021202940152017702395067050521248921585529498292383499305241297205920838255192184180782994445986662314986362030846768145780650250549225064699738744046219990651955505646466248316278075621642504258191239309766837442553466260408986619993649381014308024286354673186776008668451427767553684410906074302851687035721168928533708037313266332404668703239458753345904689241531193319805316672261331427800972381030019963115553615133079241353542866259381300705409124852841439142280134889180837762970496923681577780198883006111003219286503818702002514391418264264267048780990535479840567552780258254984729241885828314423736099973634189990175563270005975386505602525423127526858533008450099407894909169438642290360791151377590788073569521374483836374610830891841772896026166682488746191257805524271601750624153965901617555308416836546684828531838793489476118221290538021507635602860468449618332252699654171612560437098566592433141137690296265735183450102108155457244897351426714606866166623584987010839003819569817098746292496843600626667467050467032818075788348114990812990481597435311825060550303547836157016295901915545930611522476069369236937155991410294548666969163594758314909668233704050896746312619918220091736794155238935313754416430510508129066369698750368488425905325479281542692530471850002512878624529491137939844809929857091866846250012410133896921560212884814171116006592623653935835897448359949864637019659679843007764598837885486301993492787654094045274259627046897878673577042662852086198777161494816787831973364514155478926362583481587758099397964673619607614562945889025660468126954039681521399053273181395245375918050850990708168893882314313135914481605228468091187744687031171016704724657950901008578324673274797147647468063643217871026834794583256283659901267882920920113988239579483475321382826248057085850624938270268027880747291154026856867232616665404730998671094797298724123794716978863349477681985663045805094646173121993390304037787080067825968148469460407821924196965185735971103208119314402956032746808900183094312505040286557674712339129882328177071972803797405856752268688864481048482803464980557390460988488377282192325714484795666757430469205604182011960109727164311400931137435952217076296036516266264534196692158550576135745614223846379822909104771490688121005041868667343612813008992452411943706264903881910760037106855200565537704037297067734933142438194640097223963130993152633344751685820191086252066337775122642366618380954693683042523348912423893433005414599453506882279441588600881903566640244647045142742117583236881640702420023415607981429122199731638502488338407971199677078591472757415243342322330607741315557949931390098225742751850213301100683518622472034834711651762097420146091326374691388580992637318207979281685639464666895280172431794470109644910800108336378239649920663435711295202933247808140346674568861560232234152158295055209825732570848338636067282619507602939068276188497308940404701124555737312795084157884182164236007804405628419361859760006005768352838875703175353563284413619606722189195884924459056601929072983245277922359405826543303150793897036335331750277235711650337277142451579993290493746283859389853463977557356630697902743349527918413093141482106462788301561912245272770376033572565270246220462653178324721231197795396962348655233344033854260270325358251725645834520720630071819278326482730240050795465389967122782740997872167135710534255189313014792563309194636535866363470098942937153666902247097222298876297439142929234884657321673092890046719209411429381370767776107757255026118363015573521752434160808943360552392626087522046879885424234549707971902990012799841421135546201352680940329824285617005014649974752192018693179080134093007448682703604387966416754254802088022577628936709243496730105722022741371117001511871696161670715842459989909112870910750983357987617889826672546456746587522511524437685013692453344887480086515075665221133839912872278267579375745121186545319101836014181514725354275554105968038490833270441242365045058487219787385448539657116143721378846596740804837578812331221907858908740200412296809889239041290038051055589656532106310520390020441218752482163363965019772691481210503824051803599861622548063270321756739426822211371478575939056929694012769556003345556071088761066029991548747646728166497267364480497957729958674165793850254543222104307617911381484279190153098048664337892620281311085701143416208348430230657892246704682553003146008479555209944755704503420656898742100299772557315628253656006519008865919970724162951597319109155529784378394868533063828502321460072457504303364435274687690289331256243498560189184777282596385246962570453431631779331038594023853331967994654754406403150952315099171699290987616558734467446099444791054842490265603348536923010388417578112044288735585745013651096707069148331493012791623070290793038674264556696772233236373567413006349365381746262852333323870655826192243333271685415803246501005434602862252714926159846482023840476370927172964427638829107742978262794425807904664210971340268706284066770480794278779100250808545755160018592908396961372398384472914893269332759425208720259874413731465233576638199740512160035308699830320926760523621756718951684219803048542352872569700574619338498996636340247381155490258638148804783850862346757245966725986976447299313864193541159513813670360048553180386591032102665196738397001332986990867616812184301950496180952755508540987280769380462890719840438532234708772384520126650079292196555035172247583504175046815915219330534040346413840239797909486476723327504815868384201962637900398651854170909488287238556663100040705105546065872379900349279113020259985617111000672808707880655365314516892404916208766658415594537191714277994028123070561730704764831797024591005016580138005785383012772716767909385257169911365528604621809150811354325157441188786722371371669330392375362946801734259229336802198543214821627717674520954574680126978277214849073822738072375991471904534196414812932469146845567931632641490613822336965511002536054728003770739607276490352631713048397951234463857548224471271764232796978475366006901870335617640418319348654750396553199649058122954519677379820580409181062250673355642712303089489195919402550569233288513701655636282525539159397637778563823489883768389922061041097663071990058710202031835901394266195312010327807309183896044799849317992130998592850871466686438305885090871553958078632956354809034736088361515154412416973856408371674758524911778522302016680904608769995686108510884403564490925999076313417185040790026560980328021020086317715783381520816505362764290358576579948121076978268377446163546892554022890187573547495695248348330090718762597054482982472823377542122505218123523824106446100840855737513409273280569512353414128803487056531777243332045941401651826123899237014114661087396275445956957936337886125122373158068065744612678776165612289245014267576121748515072478367404783548582367089119695853729285436166649563903175643800186612495861617968441149701681122717784967090243308847431089014483240059543777488049976735152682279071512004988720171133097401713800565970695729978808654511551465711465748457095188600605396218527323202947663379189578139233682891416074980495788346529189377409860806907158154399412202211205870123129419123575405519633257358936154360124996443600666453824076587128141006777961059114438136099833342930646556673717334779777222865957807975211455772279240093432088600962365681664375918523383837944449951905014074676122677423425000888850865308898616752719873492454932934880771592888694953152332726014745842705920265419347155139398683287289617603699569914639111146474549535293472139248310531601930189941767912910803885815190324662952150399168685353634579427939578370541942309634854219227049393602892362559130295124502378404633632985629386949954087326879518618434682756670621358998692169342894433845711068016393129391416976289289809922491823291203093278076774317595262742542402273875869108686269217595049919166148823141834511001694283950292765548413437422087136241572583101111832977444019375849563703607086429078255256587211638799501095965416001123429736753304348646412463997559296365103572086069897474424197185085578714533117610551602177010460753109244774068970683951601265722394729396741871105401998583371581899665419593565237610117030992793390777273679822319593256751008620812531541619248213530529395722380294430882915839840547971866236683891364836808539819306299490066685050833105770224410889524849565788489207919629214788778499507681644554165855254331568421886106868994312029341409770012544613416180004964766881368608581691106485290998106416593021587289318600521215687633575967270135586213583356831749622103280174733638309893838795353141740320872996159478378789522133025367262501244190804758501105909113023730011762293303831886325917826439566103608859000869109152740354115988868496203250541801131436858238189508347512387366668727493234151591458981189050771187085811097375362953427953479427915773120420007047367965315226506064807342325117077190238968554120134266932654186015698549424118637180871373717016330332490494509283107248049070364707845951933415554457250805911827620911229974171077599788937766340584586980268425192375201235223062085928276797740454832637162270124415034206849874118542193941208680355246996744436903155116439495688328924256996357903182713562988854241682441023786343605166525802556463791494450283662847012834545570170125265182402637630159213065921814195891670683165934641234839210657664305475851424470671407856527880286232257098247067613323555378549966212698154439846901965985200614118546717721557071061918667412690436055138198381936394430487119636474091867274978140865219457409636751772108074688407682036832734689682941830182385836845748508392898854882825786554225064399466851835210913337603103808800898777592435631937411434830843573181379136158429556494333665915913730985880731946035796894965746882777751601209796089240414356230354416967386906152481004239306806205785911927756751900108752401070242419250720440758853172826985454534593715575947654280802336345948800130342330967999577252624839097232006678190593194384685883922102394712883455596694908980098147231540583623811762192728408221019134899604281309484632045204212409203887554898714022712148664215756995248982689421075471113248451879726264333999101862114990657090731939771402984374787657715130021041960147553121657137237606952828207786350099540877072646310071359863709339388431224055233585016065959344669275601879848367135205759376589392068109020092335187397998738787025897236142523280717436874607209143752324212729719392107089673727044135502154857600528895421049701529669276898974249294763691280388996104303171427841224176938662580138614425738361953599765483906059712464835696854255230005211391209780256733506822313362214095868947012566674452644175038716520386085956992332459927982584464078069636327859131092382214404180735436497970836858217618782355442031435212848386065056124171021068809254668664945695952156420134188135754694060737770121343189010845625856206449267471659783271687107356567702651331534198332725016619840481899695903954267709826960678316450343809818287819829248190558205915439829707686904632476615974337747463015234856208589010402941649345024222575357823682079934304100672193156681327480501505845669431078794803165254123274102408476307005986326820620360992782966196352271551920020982726383955083207251113593066073245856664849566717992260223986045581711814723043136935252258832348146273448811295454731410166106977006411872757514177647787620497229043229347574757087422374261351638362569767959599169155144038182600240737473820721550065554920992294005669518038785715607131705328641429257571270595521884662976202902930429997644217271146001084104291560800559087616178204079241666896429464048245604136567979500757120863094736426808506376164929118251416864342309502494216623765491610017640358210759727941997802834431254215856883329982873005941595365388295357313323423265836595104471221879438865129255006562778878583432682194591838654395291415237658507955129391986929437208524870414268488430673674150323293647008897577817844239621735327275485388789283241193323716900231364325409864911761282200022291957702919971971298565348753276855262266512837721438768464456242112325406576982502471553028883807804631550720681296089426565155188234860346091667548893086725712361223931343338802449272459411639152879796823982485200660314014701015302786780458594004409110421766001529585242278233451747857013915163459484649285774055306632933977003492331232823719496940347691472407678137745138092382624637536292992089560788144455242663920792745631876068038862684307959325766610092250433521462165269276545591960627822269871548637129035894100093562545195449401886155486171385577533506160628150043480979323916715742313653862550121368813732025759140582528965988177385139449251514513433687307188021319899895709474698996499724763004983124103471343541108289277322203955315453620513699760956515986657736219324890169203383855403405902717486123389603707195104563007432434345687576639466799926833164727297816273327788799538234926506062906353519719421392595578637083590646995237803455059568662564135791884574764306096428418040599675204774324068311034708483369940626856921714061537128503811741687614614512681630355925957677548249717274761173022743236204779505727783141049430823739920035578350480070348660103398148490436652907807059494412745928076252594296525703093328078838877101612553110570515754481391068836594242466722021846128769521318168536292233396883714983972593598521774546986172033288886088901644850388826790121734730632223346876538144592897049658844845271373055625142162987304513888087909584412594754615877546944088630384387423739074694409291592522816662933574266240391502242877695368197613920490544712130434141994392179467288513852978330961710951529123855269088154992829726814079212790064915230929883765124656018606890891803865680729291215767138327387078864308594909605566066429027105185411380525653540373797329276025605684049079559624745976612409251301618230433153220231888102471936521706860676710642690229559591433383330708754882681123602727153913653448088296072284483897194564922545424014788366889318317503315625400868554510553283124472980133002386178694000990586425629076042318228667529053548717810885359449339212408730632014899649233792983266667375237220421152000239937804451080377054353187761594601404326720520649758753215088174925838994935463911077049701370144835808495228882099379271701754026329959459883682922120992833441345879194467077547645533240504248249046061230684457467610301494647241732634892851837937656302975839227821494990406554658788880708753818408411887649529637764164240171914233579884770397452639021483636095806024368179827609095659692635288899399443026122517062729453050673751366236035811565083677876342940046355535722460641125836123510695442552355452989672555578610147297711395127936044708635053911780258311071146391629865310833315612476930881201363634920531717642994332832818092485333022665571419509400673296733875207515991517882110028148559826259028290970688454609466791005920709300938707391886662039595974469752034425255698962095820646915671938805580511236551027723013796288010897954135852903438827132311725951720562539096139598608128433911941331835726904069480069131032786514745254312757183167607925326518283633459833074742034993242817675470063084241364393446728292401313406118657720418153289542554775002731286837001678722771692475569741196587733907099677359846815346447330554618909116594698214698369839783294233391822014763053536120660736930738826945075997740192754673985028602297667374108092664322791301209969549814912902820529175369836436787771685640659164144200783282629195211468792197041165186648059492791083561710185933226354551786993830839732570399632971730356177853148051500606985705125905786409274306649903821807538092282965057381783741761045656723247627185634268356122936046561261547195605353951049900681439118260879475674567668794312063756425295963768426634024302908302184363220348416557022796522152140678635652647176553597370313441601012668058011538988479179971469961229786002435771332771913438911974529617723479038070787589401327663100508325538108240630880531712227055427822657895277270871069184351007502332187857546454947340306845404499756541431649903004798857130537262987685014994727091878288011372883577755161902859686809057879764371688382909781215316674048471674141863708025719212381260114412921636583282409080333168688179535814319035074193522052729913989308598058765870371025508423956113308735142347506044829193066207785660915120001939095868313731022298492990392058346723910835494103677684492671303554385226100233037941346038229439142033276887162829240409299667428120838324332341731002622353174913800653467206609253137305098041748261388350455893847299793551590586171785518401594266044542955451467298731164985240968917433977661834366796223634342832574963193308283192978787389741418003536499533598487990437720572645618748599343060371018671134853112615609541151405812244035192010669892144550832647865669167415201411751923346216689159010781509084767914561331374380241642187274221506021405196249039160434348954110992520839932090203665542285287734423456475708045579772572213613091414865979012754207495716540377939668779081402551714148583597386110079851342647505847319468099296329679010656893074917990172193786447757597201157462758082737328820612219006566783910342356973988951622829521078865373396312116353757035958270418005938345053501780584026617897360495138743387022814276480903818444685634226964568705333864648696187140101210940694278778781396523314904887669797352127094249413606634038097981341807249410618699857835530435572586816158812027766403630728271726532841514944736271962029297322017941633564039060122476047364684139785095660016301967297307080580501222822077436697333219673050841460008282195681630691498681647466143035116622317541681147009733300141708235783763943993066869697832020458239307279752288476584834095528601051554632015904611178885200942831257303793652753934985021570403083541213748398345057276196804761500164076506670401982232847114278595194379629462443486520007302107211476189588283926136411130598408748530851919593577614312432143980913675345205114964070107367076814093203780246939846996131828815113043419640025297861550487254779979952750045157928217400023650659272020545592045822024689653759376117740348868005922731725789842984261000980745547366314294010781672047794597397021712400163186168297135690384239657227814959142742977914672169107807206000411157584183591727703374286705974482612119570343801452451910260812831538583977283936957412100355392224324942117204732747234904487563801250802126042044492916039505500677026866034906831047508694392298521712668110315984549803369272718593535824028057284989967841661309742516264286678400404362950187616951676116083700548816181678004002221737474660158856555349299541891862450495754404802067513614478352801428259058447366521759625017102854687309351089058839031491112927955489106898654999429466412060248709151224110645948600370377619574259911962759917101411632208881857903526625852351557216262231717452387222088563831646845542476973948481022316651900346237597798089783974114211933881060165293861129767532464764743900985432185707880604852879175743393522261034698340182017148340920293238228498271930095497501340146434908104933667136850320648263711741657304268149780034846629424763124328681690065289051538269521964300061347820217049841395460928942125005751502507716695180541003501782078177688878340684806912985551250891814989350378733183241551936046344367270972373608208434852104025750113547260131353618188492307869938161351011743471243369661668749536868492970609905982293124058477098611805738298073042053738039379877016834254644936767462731760805719400162925685054249398314278361063696882828579481720304602874807620655721337851252088137688336528734383037401030210126740642347817424309486086473219900029557958647710475226824088868831488299740820535825498379715502786775063115437523389384549042148781904036687763702226680222516795418713592372503280677942449872788746680018045468573571840301364447020388015987867443014983882754479606330910333399424513095188077661696507649567206586698151914573271844854245954398677642776839149082009989141379914246960240641776721703239219399027364946789369742943759104525233115333833549953764599879569616257505573969180806528603581944130879343456214530916573719925021948415497608819397100704035366915443888553758282850937076561637924304219396270198632512092853708904295115439859022230035826318648367005952603563736057499490653172413755598960802729886753799527082485642233868727000834471228096036946953009588445451254842098155764141333324857484047984565020935290930734955302823312474643989738072408429330587703381757117060129866426637984847992861955889156089710408237525359732370133041676181457223011480234900331967995948113852562400944630438513765706249963297353589524496195384827698873773326413305193602493613837371859570460803384759663327360473806918652358081416901333495647956479674939238428698554313234494090244537241022435131041698623567588432237846594479113678983335162025969826078640703038351988092131895971669268696141932229660153817921819833775756826823976998931720143825882366879895488727687154195869105408472938280565989196511324442581910808594913318143023523411983398296901213861181948649709975903392094507234391463811437573663249078227746641538832076612278080898730915377084694097461590378201625584432194989918944823796309041126545830528320135807364013102722017579572293289663398819074893366935662324256139645376214104791601343198392340524933446606029943870163780443549899309809589558617038784187830500940126649685843512211343688265316325585259450023282867647038142504463612269567607288136742525240434295235376371332777301512896312189749371420522699159265760789646258032825790607423542447690474638227569758845787835194318882530317607249888514546389840756260633955707963371385652069422138316090878356261644870629808657560958806299008423541184544601620025370653331521013688186274796069003030171827011470787922676008810760495327705786212462444578629771143525451374169209610201984558222868851026841995386096471437963860756564766493778339957301426311262497970779642146986896711508073071502834098787305941854848324176010904742997748514972447426523552419786222587104843097434812827785842955088142926891775632773291688257918450136478446100861078691078702181056265075229100194019711610787135074606905230715624838944281810695019174881829271598298811672281024440814908515519264471082355646476193300162325958594858207490567967693971793879334829148642546331141334387789905476946131057738087856566487559929156714621990585759967731510860679700680675577709639888107089441775591978798883517976829092695687668074496724169620383902864599722862722292671257684448825973877121048239272031688705000142492053705722289766048798746062516062963468320271810182318729460521599270280831949679292468840863358475412443607730523303623437459850417656027640985881074511800812639158469628872323031403774360851145032916829975446661710850241335532858631051565979764852259858628383315123997087713456236288647754466615648521832630034540896364664683845006233820545440497390864423160596011547827531060502903174916453703726060044691116582885458252007106358348800588531596253716922771819239176654609521945031431795464151413930079143916511852219020438895376422428603927840243512240639307131985585857252582642066341680821316160337508895572629200175230511975275842214854990012948642406650274007646920941407568645571706317695102688893211802211474453942643257515428057294988158512166767692564985670313131851695426185451579976132395914359375688351307597730071812561704406234056718713063766181823698426194800598371790639443435542490160946877462362298587363666490375233457790305042991214812714317828346426254896297647064293559792966805758311093866482540485157995072386380069221329529819065298144741471163526924493756281719959123114838543661379021108013038699299161033390710154595670724165170973338153302189944923760153698919197256930289089991507609673223680609500570999666368891851308370056016402580641219784239901793507788507932352021790563040746872332205160316380265716112332772340126111511407003132075724183067276468125927335622886784898244209654772294696703831854971045964034490292493042464269899040742722714359053250151796685269129839226122713827880907549848348243991539131350501117018597712886575474346656282048526704985689715716115730279455766224783073941489611440460978090425052103036138447320824244814284173751396677795606157092447954834129627194720595343160649812482128866338208520595755902339754356264063679911489998686112050674276041440711863117220816923777311419227431215517511964328440827683543920622643823798357539743901177600887406102074222946422008567136841099424140584723196523096025849988408594419378806849983440631473504709397727412420193734748627009515232180684446950038815987878915271628782072997514547934719772540883761433765187957815924880690953474539223290106987988285930385998429497866177300196461524599236795885506282824829675897601606430889882238244535497379349186358160250362212308783726395503322071156500941463624506208978616351858451069075446253905250178271752111753763051621032969189896906063939050215057000368158957201477343703646043522196000581035340148488083254704146215753016331952662048693634018187582718849018449723017840315050236508343182542151183711197851968293739290184820560047063270592333107578269757032935164788776705515141950076064528165998592832550730440659415540015967618348542111892033197396124715237100682171671057322162746551655933870143189787275829620785734942798890021892920893798653871234677611537257682950522365763995683913372819978118213553585675690911801089930829272225924928839822179665647112183194530526303525366160482750747632136707767287389666283150365846074160200017600179608065155861810284368130403826767929593522831271107657593468980784921005020328207297857232909809583975946812288978597974067048181406273486393975372151589758553747249106858007155329265843502955310777616594611676683286708397079494690419795844179693283208493146265181787835371017600133009719162406862150273082075576310698089952150498791183088144851453224646668118910538687810951598036196357245041036026374104414698838946060535006284403399919954062969410015391054230180170108888503600382646144109050234810758744374130115298016949963923731895109456337132055462077171415521907037639750896366449357294291847898108101565416508682898469210514481576473294306472676731159246413096523418751830075732179571085046995730298001155794998013906734413791869164171588551090302793970088801126438670159504354931749691790914809091153132920843550647775332268951282679710101918054736901533266996751941148615403975018706146243455481609554528071209685300859514731083404833100339280770804376285579141945468330441675638157518752707490954799258234680515556157325367131469819609216154574681383106839609061925756160357656211075475289643107799957669317604706080375527019316774272950288041044372616789084215337527573612844972423505931048405595057034093252197536000577624690642520775062215365223304459486369419212585476814084244544404057308462657518519194056555227557426926553890438955045652517535543808327780442375445213912108932638854834880143391515808000685432031781266495171854787151346296635278097264011973582255513935151119808544611299574435702541669904518223060578192870708055547186860402395295580803614518089506243352802426664642679671092931567663332461712759099207652464459114234211392371004874921729187802786055401789900324250494351845347739832477163647860838515079497156174851167008231755469152924434946742380306957753450296180090414199415527724228684887499331285724644301198519236988189193626522966807212924345794254852533738229660697529353135923544817306001419124523509207349886285916340185093817648316247520501121813827402461416902743112483643560110691078365860045058521730222225253634567362627721082437514910005249516029917143908949858766489420138164262332554836503492324873152363070992676401808586069335532943648581353455788194707480920692204741593201308946097648861067015443690102578299400033807465975209506680777962223589557532004594443495107567503423776425785549058508922596813804588065114992593127079417282474747264590437795492312713949387151675201861939934213964003462109747659890061651993788364232782859877200493769526860289315932615610251023298454094586638359803675641621453824019685774953652235889679692508760153810331030373970063524418207323105817914655173787338999660967629171691198867441419855430693226847191325797584898831512812001492031712298804367246718612789611996739109834506911483726604479499732257194649431949430133883335856699223625764873369361010087596420468535839775292192521948871429785223972459759109546917920016225569286286214275656883954264713074299931962766836192092698721968011741391794467653011239920401398109970784976278106897882383600207151379003058848246795092877763841749304941733361928464171742156161680707953076022754852797093363296114117958679070422103634659690707689878026414698576825964808572340642714401942541410976974780028578850077310756233377502843338395659399123478746072879486376767331234356927428143575273750799608924403268407530795959822142978525147600834214409243783616691060472826483298192927382143890421169601536566127626213442379478625244906220851964285547116002446475030999838033070803349842194221533765517531699013650168509318594936733040786443758309002983097884164950022871411246573616657553473438150928343786139680092654836727854510846511968483887391721940933409621855316199258929125707963665052710036158680160208732637251472899874851341493591731582288208011608737346278905824949029829931814604893900101298152670355678600521138685043474046846321860537641202173214022208555074597799996695970605906853667551724533192523687970611550911324641253553623173026537267114774815789173279012350776122441726239064198326181888685081665789698331889138279542942894401685993643534645234594908536584497988025011342966164850043437390043981894153586588683739450799139773201953793483297653026245055509335302534947948311962487042941573600144708452919477283412934720696343234883592429866125412102727028386530755058324382315215707737320956735060541827846707145241985015539843575746792637447035032917747134043271625248672898200536555272501158840158902461049642734008200759135543125338157215216845393566808927256482783234009385644800948614198716927946369863358773704003081064925103097199785249986045292109143172580959570833256763138008716388992668423382130654628446874544565324759050652815507142088935030009852973694258837354264208774703125096867275440965891568104218486696600937558333183383510174679529853187480611387241574200459241512121980141323953544862554845230556682604178193885447206657757551829077445886198995253399346793092287957043386837609389069605662326460993202446428485579359253382989927101190108614383625668194316005264894728474879091853720510468874197330751941047673449401461162868895976893756117767016594955566974628102789150499400505579913795412915040822151713876854787575954307447894470684192650727687893043593398860855402476824754236077698196574808895025471081505727137947133119194474793591757783925994882348438209636279230333469210691818953419635970778183637753868241110893715886270001030111660434124164669992491828874970801814364851171498506861839593438694448208360074798426195743229552719598070957851468089136888587413022439411548767348229849562395377346268377228771178615723826760581138991029284401946499019910144376353050587892293163419355645126604729707179895807733090671829404918833056876149528669206060750619102727091628262507500936218821146803819476708678624382462706922313552598770362033510224860054527221300288317644571201220015565116455955177287110398985461171383692598880594090110638285294513189282757384143137017381245198503754171251472358316276525400447718945843879590698963803262372357057843737693255234693959024042789061069539364385941825346595068337024961300480147450648985097819228755849651254662196261021787771639280165543052883681903595611649548389256391269069179240825074014682844194587153227348033331123589149149418602577521399290620386454311623868273998643515832813074375630626344089565451759569890751535030179379027902316687272363526987199308635546617425044028079171620858613962731015873981006366177907219964587608394802503512134430011522022686002430272023887289626606662627546789969854325844128110943136523997319551542482701812763889054915161429630331355289405161636125966011568713008617358192421082979545939331555509301282443509185229530823638027819030713573029965298115705532400708699176658733194368787732775552108608461459534289692197861475853629407799119198605329123861039340319918408314178280864983717609039409064632684394153545730425574012321969013694845736717370730575224111606303011050176835740281024958960549435379495789098666348506895207257277399086888647089073596149417521401299374207641445294103876318039891808585692334717605526968798527173014389375715357168118470175691633794070525794441572475415695508993340897161369663979177926596164899698076726528350975307257688904246197250620091620500615951436320584614383481250202992846934870013451792514336673254055488653607213599795876846945034597368267352220804113452848527889166246127158732075779361909681075435721849252808364141831318734821183264514052270686204185851797566289454718242401929138696864750155440341510699478347607621893959522345878472081121895703957889064459915593907243582361524482048924228892685077104744519683266647404242193594505011738113518469266170473247915737136912433115635609166836330169673362271467462344531426201858239641504895187822998489345663325535501847211895579651782252559499516597556475453815561159798755126339704716534785118460909975388130202866629121366529734321898981553569249573322145139760666075655037848830288802294698386714836404960582531055251728466704137478032578508330510376669420911023930295790565498680240423495500660247362576498208511833764407886748226735471781317835156284638303184694310450909504388679457706200415826107352015399311669105639908425668988917522601693797037640679976852115408545389357058776865124321384957843946829698576914360665387276272506728517218706228350632963688913399631056655208251501202649165296817754965994768558440242664231504266611662975576477840189590132600435232125287446821218501431358280183496228850927916742124400473649025677111054510498392029894391404186530893997351686245432769800142131465862835215401953178829346771891326979211727628282024145391652039822767457903857716295540510047108902472384501083115670757829726855634216144081302320824920497407028187957574891431889218013299677782453694200770841401128966414463480080091426479940837283422627398987311288890204167505365671631258998821691290914202458012869266738376665874093760499534894733721976740063258037710466082331076748190954025375240098571259348098357047447089727103318588515132448005061727234844868577175813500264423400040064517718291773361404234823065421820385055315916497596809446138887559340592434866626650874716763033403832191352636201661375860480440922286502928660084902072629147938981654413445602714281200167320139664289810027879364681931613315192173005798518493975646151956339767526144541886932099695890814525228263451264371620680032360956138298927639390853502139380369500635794356352523540350625389478374463944637262349650324310107779532597328174578771181980053738866220720148363673100274928686442861509066636580826418269825391519728869017673119211622338514916957466373236687513630952781072864165591040545783838824631049553026722636505831393353259309364185241134016354921816946707214519666658996795996157944676677110505192995673210226861368560979533344190078041681798912018630943625574642611204947412287536537167754935476068351100173145445640583804453902175112990415963215526737376737595797996319391015470544317378556257363984472346765423361982400309770062254110830377659861500909745073493467348414208279278470930954403662770822270900883130704766473029724373352521667777335960228959564153847332757555032225212294305369314248000306146448825086357311540033992223542160116029242277434587540851258548845308972619978171446696738669437042289407633235972649958790136491493179532813122424692799298628432513641717581329026057347130110806542470286531782049597973362210592282908150166489821897250881782896811173943781228728821622612731542201933003722302932896587964372068101151168594545260879012164847374687244853461009259940346645561843173973860953119309870132212902831178762887734105409510530674842195038477276595903550348066141148263242639038756338865901620240847263373484083349539612273153084229656820629558607567939914720154760190080867392360636558705935848272445602122060119113713668271744419300425048140196066472613277373464009407422400544002083445400283151344480124541774300842318000547112415913366806512835513552832456722314922402311224670466601238569785971847520806417040168233489319586542962723943412631365697619199225685525022707985736616105392566236381805413444083973242917511782417383525594879331141383056958578835323725588745408728640415907058737274321012171449762883698663128807205508161347120678214538451281041830935653448103108501037628186598798023474470282481986682984397054509470834294023275864282803993782815975712865255494146418760069738365672913663997697059679797534690155810893750337892000020477978456540662987946237402203287185032391326495950015245532180009250488564202862723389323557035325090020368662988731960402055515091161529703176342717191578450719893158787380460774284243894585604950977348298244762870083762662377718406176253069812961101159793458207347255001383858574113690594864952219171740264800118297218123436909875523710356975969249063426757752744024661799828385253226590060434230544777539042091469095741702555631033899144747189116493568529755078437857644835901837236248283481578894370799222454131996908046184700546859119273498661768652989519029747730714540220172927490250341785991795214132353653706382635999595362996222190942583033920984728027031395534190690229667902727364541140105533898278262685379488922160104960165177260999202618766254584534098600325846842774935359109291881081720724305941152840575558218361009039729306182191757487644095796862705081493362661612145915099942503470376553247014195755966819360158511968331047805383946674582135802989801732595793830312782351121876108990021172308080815898170808593047830408635370058212065395012905653590708876810501996604056218033802315640849205178966582575906498655891739945893986555018559642527947036099138582605628616967917257219454655777329029207824442481428259476337696923658749250175169420478683592238361817504195426326460541455830766442300216474655669538696700152342562554159941531189452204814628050913122886461603411682185137349087287171125712771147188148364819988040707496671278752109133841977701035967638665304382712217849754548503980777481655844108555175888858676788325249270193837366481745767572873213141629002322248349370266715238659402427279194906025125615079811128403984534110448248497731749350473433494171969249648550283790487361194959750382024540052442926700418561813679740984477827440043651727602875249615328838771387740680963331307472420396706258702052865727515577275051611431276190863320096752897580263820694231374455942908971488201300849927801386085391258768435784983430489394707548327133469207022876116952203507530972912081042707857953488267222840460629537346590232347024844457392481195383491621125951581767302382634298731579830326507247355414478862687435760753052012577096906147415152296146528953439734863610701710545103775889246491456530700001324262105142711932810368334020772297739744479637687713003388015543729436140854585715417738582285482593527734379159837429713409645026235271087385556091279953606238342421881484258322789044332039985300092070378598071239652086601633942065636274834315822930768433978435776527993499059425793845591678558211627790328720017733191580440214099208607705615454560308857786423937246153682366081780129851593313271027397617252999730576592177263025461453514629143434229923567774140519543074814689686658969444494272598854532713049628222220502577984873501779127430317907012901905335248093486304503539521244215089911996993262350013424783361358274720075730684396751317160283587119010901701135940960492396676495532456681575283682724507922246951525465680941688728626777670091689471128608258588477104313068085085294585415733703231274329179593141260991586352024025131993804519475404603346390426362969766445699355385754485854635076445041794493969546065806507148248838563687800465256982628668119226159324664350568830061984219463827546989512814393284685072159600874934751957348723201476893561529857668681024699008740082121885868736634386486863953063261077599956006175640329804395111965419147429488659871883835951263079604953512839601893367091442626713586775128879030205285379085154579861074405608494480689439740402220188551174273207496891789500653092828276770086578834956734513293022615790302545814069368795235758809358745286394594155814526233256884746481845938221335594529784038826803773397148516187595584522796981172218194626050182033045998946083782061044935031578834503060030578792064576784780890197385155482440249432626044878939795950982689105595123309090680177130324694515736034505178952914135061589851570171554545873471440930193074558665630427853741608080414880594206833952868193192374224652139890509258181325950213208496138464555387477811259426198178604967936940377904771973253692188789865690110329720696703695701605907944587116835314375767542027333238085292000464609694360605497242608758579989025519354225391995818306843626266585423564366032974253924285240658696611821855420455073661418195021881721951111745680951788565669793690727487410623636659887044972305535227504728143505218498857275224825680054443378681202432080572792230370628031106710275248286810544903912982768019761565140390174173275443285815560889644026148403523043759514046459469684113743780822902981465687282023345840629523062802459949266502586621903094084687602612420287819382769508809582183811947401588410668180112985633901235311343296770678718017689215426978806281422286138987670246351860313080663531584494690664470735209021298073227167588966137856670325802639023669509444735614117929311369879006306741542703898302014412466698042362784193675074652732899707386979358899866666164154609601461480896628604483652084612393906576227065750339134057110998601525538798236959319464057111850990189941312538835104242702210482349929925080332021432167007056450680456381736362731700789609869046447272548765879926300967070365085605897790893246475496946739941618336197285141094049581594077528733736626072592330893696744532163682463884716042466337740206526691179593506468150459235037456703404987324096805857811744558284679383140009392311588555781828987672113446448687810690972541696534381568537282525464759119043964507980763299644618120100289098145793773132551741110414674223731451983837691419588487954042308172055671251782263196861713946376695787281672184507955976796466362533734050559832705320909210746251243729713602561881893706872295725106187951189613695251764210904151079947696264480300070895489370175922110396930149254781752951468972155202489885919527105281992748339355206116286686726163628976138022071668868071388666929756321095447606017634636941546431160763190037779484699786682266442388283361023682563585910612804151679869030138116449597067855999603280942399356033437379078095465333095518254681537474426854487590496871271839547487038362060657122370646507975959253437557411500755746824399740649150016907961671749352219870303770411269319794914921751927174746708501029357635516799433796883319250017904264555601196924348736025806152561021761088740608202332937396364143399766128652566279253253044970319338440516815583725228655538091787309472934952254028984421820429675016489054238856593503687290348678092202377201967664769261275617967579676545166257739525073158097289278289856293383434906460223547843678649314056688132830354972747048058101251804915420689496475733705721149688024299263558533381633473687645098995723437999035515795800636484823027377215209159026905870375821003303724591696699925976745390412561986094196076546345709642268471699645198310115758377344365878985976740072096868138440534809161989978081512619097050561648154287110240281436462271538474035154563496745033953407293640107290629039955199107928218508266504166021211726901295919361806581134676412522570153061237193343858365908533675257349224783996189800538424323967147819483085462343751100172731595417772749006553026878455804808357112805777726485823048083457745635832365882070970057292601414980810837179702361273189114027189328718696073341961904563439528270645124463354588440421066567895565640472237031452961953786466335774844963266262127779282595426076587683133448394643784366031044855662514730451529156845568124092882465394053773194979549213535118252434757817238191808026637361034043050732019073616152725349173181763440983069435490680668421045319830076203951363398676091769746508372844011757235200111903492794339425588423498966956152457875753089405595818936815267917133537315851872287271723358002265037492658238625036753440147987937488184305841415708138055569266343128149152980996213304316492985069104780494922809939733767196761803671307579909318304929400831418298344299254911290119918829350700205911641152158394028590988573638910376709951407597791679646513510397758954602591642553375116969972271627948518890054595649829912198845223936282919240311752175356325802301355330589467467748904348273383503858951366610333692218804027392683917546337337410359354936322043106518482483464249960089707567713295435601362435001224917126175923447919378041013294754956272735873162500885202601705846003413940472138091371772132516512114482296123864055881154192870073217254337342266384693616219794745386831446490108800431606720416184719762431997165051861593909705432065469942339764920857366800622799893750543296833045606504623808581328495385994402319064865724297884301581587171589915005066374964953964993505574204694841012710730824514185831377417078554201623027432482366050967577666281993115903552068814403890508899287450712638002362115811311174823358764044820154577546254675208070038180089207669282127822172315875088796535333408996060669324996902750228702754280418711680805566345164810464612739835970468800681261700431894020941561940016999140534901510514236650559512006936689969900643703178230427339850843958200094021500537136725210062804863662858236832104600116527177067067388009149914569631939966029401138697349626763748172992924487558479614977051129055808584209468724262964061716629573508911596795796870736667409675948310762131220896922249317925116828372520983726726998396249792570012316517792413123358766898301215769044095095696124125771118511607713356783456245441504309347000702858929129788164278815941652030357122202860136480023045171149773162739578243816693913533676955541627629946773005014301428564847486039577624422879048709584328903898115378176158520240214451159739369857902683384208148506387323881048069550797357994061605416158525734917486377280772990409873533071006185119431691345944783822058026161512373019211111410421849607946488887920754215364938734553220425645486781117084299907164050399240278046243931007770202969369064774898303247491507811353939022355510524603136622237930802708706924771042576195346766647383757830830023670935643112485572030427681652482674012037146587385197163508556922748073211600009214514711555638318892330507733431099609146668841175857541566379406342667426612056835199901592152085627164611992761612932451389345555141307812582509452223593425500507721015558629205155081844140551770374480057281490987001942046207885846880271685975191886030916114800510770953632636522588053536573141679152547788124352891321614358454155706546070126528256877658480071827774333281614878539058207893761332408560813794457323320032493887171791309267560739871414853193072361513466121017656377022594258973970566974822468800664964986215168810814405298866721138953240113323475329680419571847927265084361507502123719867350885055523860390021678498986343252491153875853589505638175158172154791742185641229500745961634127320535191312472760483805663757313595857054182667548477828289172930430699882484020256695562913497918422264758039739895449192087040476762633189506796909055068000294048756936440376115372629473406409772317809149377216399402486239598353233905635171740208982102779107988073011191467472139478996680304758865901805173191037343470521302416572539627718329552315525738255829471795453391902124128576342217001332420798233798383971311147104752886313964194883878198358746172573930723410221968347658910953922822328874021829912922352710911370554977743414563490631652577818831175835721423313901798002411599282040253179770125506808144316464417026054788160668837343110538208264538490934494072422085530024588307096487350989880270836539450914707614525278245435406444732128048804530406196198311923374109127096458391548919786842595681080156624527535026585370487743683836805513122088172957201932885395508427957155898637732843187719691352895250669900811349399084250635944412390977404092158206526257646710716147815438262266636928729022028847931457061076338040897481224762794302329862129467158874064043391181983714158544456641374263463611850406153885340970720597977457157199900057673877064845760821943399931942239672196944637579650805499456128602028119225408624716964358082096682023762579603880672231273466581028642366360868249774449741652310713009016259971819370326496439103454472602378527578650542492367245011050472512664058541501037721461358465894374056545004274214993467733551506718595275800272640949871668530178818887530720181548896985468177142968709720958199415510185887953789132167497766112924124808435330045640586431955052395489797839777744001061258211722614559741511923822716326163411598390728250965756245227801788479133152978033221842878727732691470258542978197271677677468487118554376643856382521266512663526637034464301747755260637488913035696972167559283745097624515972900029991600156643508226048596713728509297805833786679836530026730341178154194039852574571580778214929762492840454971994556260923887632136967464104557001459018505745114144545613866675915844545837958055101712006631171988908533896304155305638442464627791307943239655955835298368000741413204729006964464850077025096774085493684458398023716459315627345333984393476429077044207730208781813126980619574870603481314457153136182770662491327236840951538066553079475450485695727675795167193759406860864777341935551247310052930119603332933679229608076711534824653072938144135235512130421419689144770590221350083117325159106568194775400000815867810954560805536148732188808481904073686350883505993685716623201044265233427457244248620764605218781713673241187019214060216096304996022481252044096803607278989181328463720855977957973377740903632390251351544977302593841338514750332239686905673658668000723019437166098560253584377492298204493845754845506279244071242195897774238791213076079106298161358058693967935152619776937110513018622670916964612134830012503190044507617929910258852000269954267595997470771346323009149107705618250441521916998504944969037643202140178620017367509186073406191433693179380618065252481694806947142692522407438391525071164077847536215776236611326527948773920832933542052358578977822194278240585907207740475129136057666245157394568927198701690195547007277261406534657631168941055083782728781362372569834992449549989983456367078884123701931632577252622937443895058275173919485305054308803368052601625695061827233401860374437181338638762107259558708609399321756399784257703982492499413109658382879240617165841150404435794100161406904616406924269253109587336163116617492276285973978407611197576618273293899925047727359557333584652142083654895602309670944482490856310673633804235091707634254509556539652325060200761240497613494452219406908617714990020075420481375852183820536378277662401463665501847688911991663457504963029491759422148270009309269530329478028779968196759381111966130709226950213200915282634383187743234133660272772224723618401960973853763771090994065000373822860025647225464938843638539814452906086282473363096432744463070363170977267241160516793983675519156516942046224239601566686698905502450210102385273784076031204015207653043373266047580340828154405022329623448448757546034441813625060490119024324123011722297112724263542257911872369760878195550277688065350201915847507063071776132022013299602191857976753789061556057794225588224151001801800646642527461084943502970778870163719844173615750153113783003809169391290418557377961089835771713854180848817396405914226652388861943440549439165387000353121340550327943101999018691208117926578935638301969662042629088663837423936365740860876720251416719913024032398435370451935328953765884354452465988974679880819316777779679144255908484797186173808330811862702089180405752093398268136102558066586244171030688544086750362518108732297674036284520109950309863265965993018605818796192690319611840678043306829076777011788100524024541255643380896184873339823820024555213633488952387190467629143857142561465328903841151626829246203279701904709733084688438904215647612344230387966150501028768054063871800354553896224748553480009720565024432577028523891598429030271013126434438983901824274918882760289165316328668514403908896463813104415151113156099730107937370489686142805583340353823769589225897442174427668061595959992655499390926775128719753468561595484404037318956737881301612297701152188078249147305015249424324320087535976914903499984061304711929834323538370066897307815881685233954685827517647885131103117967575093703315173005275586184823505863412532519604225987088226473704887710258952005201848426515427171772761684019020064662293526290530257038439451187810322304026905109518708479745815583041358661580079509209428458541301076411578654913160171615776090880991707898518643074745838805316565391708401520962270709913677459321666834945996488532137160157737805093246742858530060149968713179850320476985544946449704194961309434291617417207082531625738493057803440720902373647837880351453072849896649742834123467842842322657114003664963172418315950941829323421490799043354483385201720714199651404533584055672678455784654607601817443407871421685462318994416491474717434031742020339883366223991562803494162492831469577301416188901477243417920353029383093268770259896792646217589777251321668754768183182547678040205884219405407271285374175812135363906316354189227191668380887064200216707951264575734428542422367125033274799889289837833478271174715896163286068129827923845043853807276767916616676858969211994987114094135635916587334650646118890865738428717533370564300459028443792870025072831526500497656453136175276875352401400655304356459583646432697345695949991477819600994428153734799956437228694683298395808298433613473450622821481691479423390741347712893604315680871606180593475806369268588026712866804713702881739587237095450469007801876696464164134606966355029368150614059179302138253615135060009923343364066089914074372372403085721555259758774848384443534748856961189226862006064977914012000826771054008289139521174541266825323545793946419755965296838951146423131753587731361846604342013477496402694732375175502201415883919487163359631651676327004346081371067641975710344699303627986048037570284065251362962768867075214699042374634646861608486473017693850046736266920192038297442938291772098323625985570118400055113054787296536613648039302005762064427576274264789124655848243810670664189958215077981506556494064410695533557238984042058896351376457216373566755448684020220701077480615864513503849703644532466560119924033470285024600880674484893823989309749450999428410131960493180355094650089709475653181345779510596887765746612473523275390262155026906761978309041852301199472808484036916091553656392811490376415033735972578932341563794467721376631440292146024857280294610364200807297514051132068267483101093433727431712610898871905091972740958866547331483318320561376324704301342959249557169025841962626445862257180191623048561815069368615187058210490182130029389567477196981655495964410079399990147426244797641077928534191151388055276931942839961184830955736361758657499148162349120550347191071782957533107432625660792790028157648006712720639034826708025704279090906426267033446986664414656826832859903674801257986443461876041431375460687193471307227343017988093884383164796989246240412831964466138737980829423189753940453516321396583213436733232754293930679560475640908798232631146260253295429821787927385154454813395863376253098567381642853651193302078651195847446299497793591620382026342904044590413533172838803126673846159841401809656391764226505168405488135192246963429372146488422951294097312107145964620807945758905281579137095487712231006487686065563587683370635224604054010409691371207150087266441226394422791050182907669793315923167682419710636911820035224797267298088959533044141498166830979835261581838848380997299008509065242040523950607136418207722505016685618447507564428758124026054990531977207493530402769421470264102865603978167769130761305570140548231022452517796149348677407063141143269856086051451424157228960187967123008565095463993093931638677718387409444566859182093745127485555992463053909018536084817974020151178981776575392441671601993123976193961970545316386537669245070737802619056704930078409438930819318889590648551492879638815333473107454259272525818848840441878485832532750287672452511451502666547945150456350513196682799394670998534160830384739634404879002033791039261877145199479745006664510202883268258550608413818460048506997938461389779433167538454188181735911720561019624692181132187819172014341715593143836530047525103957334499886431337350451220057465022784242850569578508536530162971738535242577424762443588947183593786848387505108650454194312733723718753052104920266730779806298383012446577524517170055273474775375724156783407359180427367025855742730004237546887556698716306508329153697095951783032585306845926771047995722912772765296052275461058060021009548496718841480607027665210732696769498107543776042956297201100471779240291000454220368230020314921102171871298819997963796922102073769640914582378906155805821006925156194207087915932798096571384816813674621438537018244923420613188443998319769739992490721507090107532057157819679176978802031431154985509169300942978754960972800536396549559388692729845894143787943686375699302533093934880568259114866533995278931643616036756021226337934702426977567995552008074233745248469822645918380828601659665662129447407716176395203294812883906158704178495045851599334756843429823639562964165719375440179348335346699698870892175983057056671573921888881314704876414618592397522979862129922739132797004760143199454408929843102651730516126224475407399264534846082268140982523802718569385287464594296074207214313435069182656800159390629401588676964366128752935120369607531517157845808394528356843528450132576575185369356305390154044333579167935891856009053796705860137524433923533470460128113068696186674022088419222859901718985512412711893626930880572890805804097887930036304388540115524256593550011152380903862714231694602891508855360735814894954609176756774326132830880716536573690210995652915299904975292274159064078423728637125284156480586506150501415185726632115347640941772892501627598739124321041468259115832757125050771364843811952043762301524515187894418640755536956798180150416144422597165709759276381940194923564509542432060037371599930485940847483455761823230659446414639052290555702097450169531030265869308202591787884221917169706088307534252606081701392558705852253248299384507231262684404763653473796248952078383340670062280168488816050248142778340510741720977802328196674051301688055894249286597900655761063336765607701720804528608157804257758763393901359559067911453301044902182089297868922392874370594399912254925720570562165702637023784813066775304669690429471551588640305539561311286345919194198984150557686125908912875628984892216653902372223971734196105053382828877639125492491178511821136018654014469400380557842334262722387570835669606140717227435599570479611008625809587844933471046971227924505985988221162017723526979368343775958424564674077423216118692298077390294173368328799103119502949521916782783350110149077979777559309624437314985831640326930366328823818592532007473840570356256678089079175345876982837022170396811121235270281566855484333778520993244631476298827759498515040641555299172055000032319605353318605800256451732550729918516618959392202457399221302966837120602498181830071248975603974616111679824548284509131151003912495975598397095367401467899188900767094145230763361406954439365205312380518099507921114646868611389366773809222270367538098385211833648189372968965426078332995949055455097508398497695729739115732671631615030686479583044667769257822607611255244982323367437910791699447973353241357159863311081431817037403859174771340930031169253344802284335910747301554818329914143131630870754957460492051981361051896058020575379778551153451257545920896285153723233051276850955486940846421461772427142224352366694219610017823134471342550002683061867672378954702340153334796421767015171212307130085443214837655640882272365392456021226044219230640765080403190616240857342513142798094703033545035923179038483884627184710052201649002250590217099976743568278417473775793069699636614888913670515264506815777409496249138871684286817080607399638700154249011364441718754136718194342097498220571491166434477558369344904083519436138911095410917382207082470551702808996855200106355703886984203496442378716169834800591950281155563275328876822473024241186623263167054516094067315193750553333881111319070269827871535344041342289106186608529704772398149074542380060713837805594219679689278727465980902048593905618939668683147114980818833474811685157765483530913248390783668095417745453544115467350944628976688298944661754768160084916561803261950845719080906928552425988013095675103967620501307262353491064069684016199967130992419778025876406542581500843471663698871535638625260096671955592025954846412747440591124604954127730897654231495986144210586664072129495894830621137278625704823037974095143261786577693596018234775551347385642048547499869710981251764725446579042547034574715471675452708678106340229731728349665813309614173509468603239834264819588887049167596897218036431020203197003978110290045536085031719875450599722170012616408064537624685110894614206489760312078441221073265326191129233806114028902908380727220116831535546899602167971197974431632740919874287881783993683747521116330841704597524247711289332623622384146574124010164215920436593784790899478214749688978249258557695845220763367045489005540736886328223785130934419303460162393161212752295578299199215555971690308050572496877178446862321248044453800546395619867531641767797681250498141644757127795845762134675396435741392107245771887995539642627609951926582400319183445521181904657580240167927315583403072700647360138684355213908636062449106106454722554321150373845934744989332656436486188092067352930880362243409891282120656479233215633611659934907518747313232276126812626818195625134199745978705256966145909803657989809201074125151159379167432404825667390497960397028220150132201937368858370621477679718976067336961879276621935156628364803067217203188947679138212659213424271171604088215086594264401368456179903478393245276770448338931271092306918479032872600547342017143066067379595023602856150056259200957516181375880068835389724715205247470447303699618774658128554063515736652049659306699170579331864523609353110868751069052968430183558293163890180247170852129397629694233761046001639012936982154073006177832670510043694371826564062158706668714811893749129781189835565822599902964348399900236844669211700716151363667496541228360383821019331967225368231569466215814250864312101068903886047765654437256301933883730566350027409245870619782013435799357681486874126447662665921197358506124867636601825557135607255445391237943816113185101720111331524744406825627575258380080576971324596484932685086979473331491371897281713135167474164089995079507498951653230585761626133876463979765221657804097768951786809042884258307924028600704842576326030549560974967110893650813355164928656846720685134635213508279322526649668503700396075009332805693301275173357376426576757798085463712382831344818392641935917136481308734001677040673149800907472158474177203631777315849388632608353811071659871410732537547757411366686493518973641472823651491306199711517826718118288876801979675499542611853284854944292685408160188005733174776212331127229494945251722849580971253449711257556015521114634778247676610395936869848687352166261687430596884947268442756809372606497897374601963800251250734767090206254347672262448943550499080860539820192567865237885444631733803206150579343619036121937149537510766458758243117720308237926127410085927853238854393551384166840969659116973306078970419630720101981910676582205403652366855904263240727245537369814146452029100580845505967843302421525291901865228765412574638559001999112368245560613801519451198212107917402626573224486580163089289741794311203244407780397908326166940373739600418363135007821114475468760879128522676958741618777437781736829223551425269480564715350645483596364529171295328048519543917303379204120390078122915252161037633940035767609470360319765530477616091560743943995583692986626014017696218809455804226269067474382702219876857982092851030976924818462555896556599840771108869231404508312064889287773940879660409776900075922905550413874845777569834437395900981497068984329160930481356749179023124030687661670238789579409392260679280916367648681779327822502515432569752559041569881143142205793694553202899464074876326372030404458089805902154066961596766249776665099253079835600333557889185089870296104248009348366539173803798295351335199490566637542689831565959245896780785341121064583879472530109173183009550722699509765982824203857337468896410589696032483936252673577833201974958243945010922471937239083719346555726319809492433071949527779057203444002722987788444219636344781138478619485637077942394517657126587736942330079584244316717522381119014441410610630793513089449319901644428130450609867943742575120833382860421482173624120681574670211696544771507681998595811496987535325749684852632692465710537660811530645850101471701432334735568788692200987549935647484090369856618329291924843390744875158376859385553982371804082468142245508871313482874582450062127878833618649998151850460513450714856255315221793973789070359360833255558027258386745533801019881162881375820461454970865436004639961503411280590576200421055485698074099164177641214240619199584926374726487579049780111134970645891345256827038187113832514869262626146594160584463091136036602780068187158153208732159005513744708472770674646260500452311666713269494603122007432865314424563544446372662497851126926929542975790942043836631751142761686731117392145636859058847524015623370471395880475117240690349595546234584615567657797501862415880593952767112031694161814832999167975233590775086168907833362978213218760792106336375457828653925347915602320792623584275707221516778385978398236961310065660594382831540348433430874212413206073222282703215972862480610732844965153230183941303406898982857195352711130728994235839250213564553501981601646215912497685236994293127003953845031705901855867952952789478406641462064661160850254772912995414852083464419986879863316565089163223572084875621672329742898989290365421937067955302132697036364964161073401512347655123547032278776798244847591590706042197452278158237654837296052505558795612616344725605889572536790781691984673451372201644907533763474419933847372849659129864324478862110517829639384179727097133646466137714765042050834329157795985923956201851313428508344870802802838593932057856544902647713794586557217808578508327082241285711894263538823097645495567325730152601877284873988126812488768760389323821409609214146308861791758275832870285411166529332208116876997744084968995007793919824939546706524773659798750629802497192077037257050317562052396197010455784486857630403199084578915997880869922278214426364468940193526990188542441923876470092269560847697099401933159914766809834706229170075384514835541475551470686834470506393296822137798855787863621443754825918480318932251298015829698070846490551520526899261296129242230250789847168381418165975502744272912851829749274640964377765067174298363442161593641195715341992426081669365627426336553217719538259752790321486406128656450727597052248514279347172534047818664263389984323653215288310630283760665502747072442848454456276489632319907024549784201949659337700746419360613689636340662358882824155581183138560130951009584049500467786764442691519916656483100724125909361274077629996727884832602083051813679029099165464203899530842045316712364143914162687680069547643828306080342796429308933345897119990621046951943966037139094844967103302800823445980527541928318414886676485678617467368875470354511974520260594352223568559655020737142733655297612276656793583804870615929985226887116340263732936399354455267087229517846563850659973389574823165624066369662855134516441000281530922136523393091811225728734244626232373462386495095384837751469612472842978675337828379971494510477934448369558948693074929205328083411935641576015965647913169245669769980608116968029427162192513189787317162011866067645980431409025220041313120658709787205261420096332755070660380231624209737462955704750054699326881134929609921346756562634743054528141663796828050716718752437175502154140469685350825062785172140648984007707331886416622708649874346488955277558534642701574687820567251751108938910650799644332365761384541097154284108983338038474720131718308399803223483701785817979299800893766062401259204744330996911643698424223584576167199410266553969581345487164429645671213638544272428416735626438505671540809710272883017480685036805400422223899964415235795260919805338162711457900287833029240413490895652586894450805639181862110063205204672965276801346421570663589312290554686734502137222535984626443537053743449380901435491872817386387958190762713093603318718732796224960560695735254668986627823469085076187245639846593972402087822864589180954907683767708805858847191789981552925365598618546343146374810495973522936038780846023887119258695893764830327940453879894689434177233417111882240683389192924247600007039882494868888577169776337809658390604353049428331004210092679298241966085601886320774601033649316059072581492985976777115440748108968665257236144184074498338360927818299188660668311745733219292686013449848176394187802386768978151480174078465467327209033388261586858952400346179780245163785874271348865071884886355017038690611842504327581845004426698115332010072165797741202035567187074698752673600022063926440058839740761994452046764729174633826204606948862918247316696140406207964526432470925817233597544281627704572514692294019591610994707921706824804634412214667109778062986457852812762512507354102896413453341599482942030371876251071224949800100704033914378990856437670149470704952223191872742129355584196423770642188010068661757333681429626145797523070431166998057134569567420188894311728217363633179546040911491577364048188055384941998345376246091561367086868972820896147908143850402914296973634723484257774238409793784212820855817457890322818543585360546495939707327562350844803762196422578131315349226544699207145625613658332290617251439990962044658504121115687395425603902964001293301511121464269421114363269622495450538945306708139888830618934955107687688090942121965767865834992411856159379761375415499576126832555534381331098009395465979633540289775297040063638273226218065991356102960989629846564309000213542825436174916310965312459086781364097338081926757909349676019128525214359529009907945782459370810560469807942578363170438002042027694667546100512405529324959470927924817954281133358898147407638663075961446980422841222575280435936658506200430086328149901267758656861958735549367179763825799546632137160679145380599853095642439929303804450634248956994885104431192157482648151673618867731792517690009249547028709619625284982230449750806783528397021040750633370139325437534000102746003533436210724403849648526228441352356595670599536166984715832107738214733048147453039622652185299025596077822026401946749211824011739467546947817149269642079498074980114211018780857134253739761212694827156940602050620233132580340396039778668176838435515582575469857196068893708491626492423498547036905969599798359295470751784494762709308465290475008860956317225178563628278900877174372149468691594889064545958390789390349703630870843956943752788437050941349188088570599758816814971201459486726554365009067478144540543047566194093782025530150015467859944109958864998019150873996507882705533797827095801785859451572445026696815313022719396076574364611128428016603318670256978432146313760613122568922914412348023677113821466373232574549893133867337230411173012103284828993120956292170825127924254838694291137396526005795704034070093302959876299577266582753981200432138089469784341734249419648596173717963256780572471918310024625743366420647871295135540096586894022200860576287562141073018679072223690170483964900388623916039809564117165136525105607654436053642307992880804282006867573821647989478941673100932706686602676344738854071550617799741975871233825477295901479113439849558734514692637332011728716109306877911240819738612612697943714140511806813972568057061827538873564247094941073970756272354055773743998514634939584455225440635685148207502034254282346699888739504045383625949615801910776480859547173266125559586149907708712606744769149222765781586400970165032574321408689532590606729356662305761375253008576847421701246775505749611281006302357314712163047755134059620101097220725229935923812986402907541228845276452785718841032237588121476353210895088915482920851856642943894911113442770819014375137565135538299636704436564543697851606525460402128631265394212321707405543504576611685385040133024862531055636631501129123209172428137926227828745202472750269807786336903568265239433646463837657612628498135055841237309651388411133278346750856261506866267552175976655643086262166913274481259172061992528880809562469526148319084673552608540884755753274175380316178243398694059343398591709981273922238072798982217148642486528991738273513504154226759814634590865875731051547705926456941449831969541296515713022400671987005686241037307908101423107994990332392436270106252293609180946075074874891316731761317474476925389681278562239285909637923750932423908947618437776958919227219118149682446709356531254994336104603207498024082259473148416705900203878803751085254805528792473170185922959667137717386307751615438096121691456180307011170742944480596642006208421912918918195485295634065668791452276991251065122161858277231159087350571975401739825052929941273246829962862144440209716253223110869909135387599448825422997086516804902298336994752977473103357286966194769439676308324838673528310573036258437970517586423283550521487280068117168167713562422041554901354403232434509190319123554281758983911692624762965271220279265978077849328725315220617343312841248414773493508363064720476753484192519787468885918231972582776419690735636351384333252918277148867486606609969462838701005870068497389188310721105889572433596091029280295743501007813569197573703550676552258673052000981726688643653391638401784863451465934745618468528974580485853137478318242637807685793968402418108538369297662188869297988183575082852691359981264235600703883278208601771563863652421789035528582712610029431301649093961235166987368040344607273074417106069010084690849976569911520878110663333171663493975476531584373700657319895315989463570819346645850214889535332387684001729641048588809871537804375408955603425263388338410949834202869587744104427573894692927433167635377114471498641176161460790807458267069001958817324520004219408905052024862793945569816088335138407040416306015359358857286931879537781508732450575082859312712300674358649815120277768679636769080298875161903901010008629680363916112850616151245876388993877401061027024838255375029642536111205383000102775207977646463956514824709907548745760872069639578733340311981650796765752443971477410802617313187489900524876270323515392615615188486085902067885833005961119262524809540489272465077078562580119641999528032030844506462288593904716620397248625124924794526764189614829753994766520047046336011973586185362254690319064042378984510303639460636025386204244574232516312182110960435116867808221656598764980995908127724791014962363970785550015893261112016305529275530932507396949713479214330717523036982951067061537589210027880778713476660042710561196134265301359300855526554688863866604915680739348681284576308058971926797683679416852052147905411748439307981547045144781123587997999458181409912067325200710436731539068791437100651681741503060449332040089509936579077546635083499496594376569199252877264604823325299830805334648988347201423469455629330926161044923334036076662704462780102410197545897673963771353423200991599608915921114459253706294223608114957372537318666200265108666310436466349211849566823446294859166849242469435376993585347886325853783045745645470667679666302198614935624975712765324373187926964745573133741638164049714478202989660511218412172994200486370442631212189537043118371417171387580175495103801795197799439099594979528461281526226009694387061541805082047272447886333752177253744250300322620866860413014237620117260431170813761548871090861891587280834949004572603895390820196418401569117480331754287464590960547359288698804214302750154641645832858493253564540351662929079399284911692965880602338243018587944528774517701859537292938566860990507391949201768106142667544611758779535632309908881677437379435755093140850331189228839023370531753994692709634161863018058192844788343731378797457469399717985253623540605022051713491330304110824275780012444971885633098100756611758524958254083246687428300578372527528393869422897293829932996117999225411665431334644228997048416919069511656936542966757646168096006848670700757838039111661288692422462391699231644237568511046192806982069556302403759822923538827021901071421511583340976613330895979918045858873581779606556652206418099685733853134788419487930776524551200739208050818852366265064701473797414641126029495566395009874647023499123796996338191359065302688753959204782603083123691269244208566518285826871113571377169611720414760544385492287427268176100325518506452830658559120275359031328798277796569004212996580135423065198080059959234254677397258877594369711212543497916747567464041231949811761064166983261515460423852866676372253772794392438917197835115485813956425034450315680118827357238660669786562092751477324449281681451375505200467386778915697598477390538199238921480499806160439849014658595879067589890085203705579020982367794487711052960371438239431441930691727581074267865254259059760405044924033534084850028644194008515293731589315841644507532993428181735580311895006308098741371801160044720688990057970959189425177425992340835128016464141634384613563759131043186891277922611389256313230811701511207013549706738224690055385260763422785368395492795283895815287585685100033289412004502200416801497045421026534050540917591619142487500032387272873774875494043465724394921862776163030906945893296912281011491163399594061203880227325745048961586540519863626656346150476892529169132766130073023900709300761566779192264595240964241497731680517566100327683378501143762556541128638556108488076264210392879406719220533393677759859700032414223828187655573323378068171686756399111228392213866029148372383562463409611713335447252032724661874371509136790957001414618333198619425594832362075428665635919066143244939496407865700827515225567594892605494480839611863041401535187332615864987637400257560272538297775945353515942294411103881405528482195006122795328038225227384742175643689391511413748842894582510672147342189232705648442815369637251752015372144066227874857095234125959854720300205106990887805586083723399178125249414234445293666965297936988428839715733105799992978541764029243727770479839636082638285505774913715630424205973477924797373279715453291812310297981461917060859174919386019755921714855395583957077453621290976053889831734028780425664549298210047315063927217880662369694307878692639100288437412680091883069362492298317611906528879587652924373545553500905969441586394297202406653084934000220626701667195938153167462012918770220273882152211774616011515176435518400004182126487167542700340504905091024524024977236862854903274776480181308597897247701492511091045828808036137315868125925781084512684560561471492709218628814342148134515558329445409932949923662936985079392638112832462609807695848452484742477942976996041053396812874219366480035506693572346327201626235954469411740544937658769825908037927227106779708420291001781712985668684498669498115539667481920541711721253517676392374938362379913191199174761448512713490195270642975612993507816198959050121561748697087172508453204127862392147684163159921614033898140708577362297394461520554020955095459804841637410488064287033744919539407483326395372775733592935353942786125608172825885498223850763304472757889585948503138187284297365153189180430430173305773106599052194851846101731833932005361810377574288187223959384793743692492164718796207049189138036521671381900658410550152079471103984727473654334198575123352411831405520619041674373009304611091631687789100528187378587977441779824708275185113421666669408608054344164046775276936778215623916926056146109027528649043937141517007736100881336819400299980124459368255203137831934020348153040024086426608311466063778572369370895589162682151261320342766438213689535909599370433276787974276147846994547520124658697075173955541336386988208807616789861362360480193386755956480007559440212764995619828957894171634932666895125914665134861199070490124675077901354766586473805658889185339028387744455829834562170321445924696776078344488874465387041890850363232598390785333080039403984184392162548616209492597993629112725537025437334369098810507483167282459149793433794487444483932900243902764953980860590061468477241346536281999609266176966207435656747160607598967281961202581422095803055335980639759542367265426844040286194225249570539400535505147496157555371096143409409729918614168593584583302682624184300827963069632140864638681823530237838377604426605090891955489503778031891256105205647468869095333540709215081266861604195946358086692302399517903976966594739871141460837025763566462376752448251802212679756280935835869421906905761095152059375130642088546094030579062287401612018724618293520233688695463826482374703817727948218047330151463241226900033369431432006718828425054396770761941166273019520395214966608402520549158427188267586121992246244354500080363022294794626096800039068541865088669867355250761732192802547156852776113197802747218655993155929246787300610010945005137438878851911417601478876714062851189040051555756590278624005043342235148413134050172769620932721612815276780455980043771147044884303087050882623744032269938058907652117674672089225002989860356292321981842677285660392088252907926019783883957416433621124820501840765718672121476489528503526727327812761118593131650782375197696332624535424935415030464400501614827999879291633517866826676298947923144924316483257618053207327249328464715819182423586004276053069128454504982051934163301226771082227077946684863856958204999328808527113772842955576467081010947344366240375062094014780278028108414166197193838695990617944101244356890182918055547577925142231238618446937222767854603893689481508421906975145152770176064044889197108547182929345522335775330999185496974890172234973242423341078580746929489889673388505794566007713907314757554339301501271095711597494891793965958759511564545271463892743213804289222671771354003811099479548468774770658091526060850055665870015083210416268051794508742955030013358895103902957677541942454640667648968772811488751771966620866309376004387926319241008854680687083809536647851815678126073158904198869468171467583449394922078204554997708253348264494172045633542025580623640758010039061187798270156205937687489537442568036381427138162697259441253502763670715658242003112880897848686826280769345271811168962257777751278988009865796857251156959406691425782032798874597346579408709262796626489396647480984341027925502227175152907151783902684366944521141025574016677095448374074758679836524127626284649371069485879813446508312567678185168286447573944825810596742086561790864182230088968578014019383201693931380986148401280510119624537202674253080739948290757484670153299805637953763308463567666426430468517908842500419812736232584052332313082771357624422340079521981468606771188632116609903104824489571985057718280049021056806505336706619234775293969127407856833308947489516045029423989435061397767877268567360605690488018349116031126149038450741721774547469239933210482964240951455295798953454437816541150791400772923710687747103098303187821582309845449379469411099082164316382468474931138907313004587219806104278711196513618244834457993691098335423245103492348917577174353371055992450933921332685199834677044852140911616547114377412886269619553457636992518658178955049858320756459687503937936771109945792577135227379042345388691915332399495385474982390195682116089307959985071783068635956762424543094120851246990006725959805701875498574447431614087347240008451701279692505178830229275359092894383798256375134906161060864047098434089414252423772709276410013137739312601508962528443564891104061568107525803649250821571154944885198398858188391390379790491953765027268598766083062116411242013007871794263808010511627622925788196654472909101909857245232599711903659508003824703123214333067707418031235586466235546348868559974414150625813385599526296594101856328640622979984708750356834945248686824140587502964999276594621446520033993342277908675494175505498784049455610995727420616210487063443917787754799407096698189770628583263293647938462236012369046425628088200741592156899168775783453365370347396175860282992898537838076022151319368208715260018226339965491302267215734379232381420680202652522949967870670872046758995612057064364571263587157476945027853437692791312113259562587410723771365320900219343726880097188979668465274330546150111648387004520768097949293351008562879951815021067746935608868583013968054451028269471690975367351055642799320715253242627663354685006617592460601695726009151611030227153090850646790683044177279999368681207188640073086703013633860105598475613320515011303220576801239360414019338949595354703092107324249633641996294934969189147002210109854423140528423238441217572831274149806031888479423739639948502132266631602463007731500089271834528795318843156324417775139682573348986584480211001405260084390407546922649386954339334903710619101162744579038168056516828532670168500680178529641123637983050731526015724004371858231287486380282995987089104298903530380395274917800335351421053963039473703889540812952896917969959768996889274221923180196201603611232607575100728860172502467905405130335835043914592547736485662026853024635051184440341437449553619377753211948803648387400373235700003837621152325165098438107900167317440511371109650038598526411568952000837513216598701319599932187021566083447261215649801487003037472878181580982112615786030574562240842076369350499562703991675161479283968087365066575952536634248107102452306543056494676417989707035021607968743327742536973014043194780205456343679128562551690889102007732191240550501131042444398039037697260399459684310764842473925232009148328773339560878421067445548491764296139706027131515174907318707495092925054489501573324285752550783190520189533246494598781512535491603413540297055529480906930359096281710343746470269657160881091024111731683274483560469287037829045417782083321160958326060289056197690810414303202019826723162555217329539328229399556855115456822303431941356016851788108092845322815490173486149385781570437136770954897599117693002368745992122886073124735609915057052422156594904350285756043921818551906832859137531485582202413531594010358897408590521041224755664923586619521263915382720985139049975900328727443677754965787769207422651657847541766021581114250297670495428916198030869131108595162742801423232050303541789984588175466972400005781063967693832309898185980535772041996430286859096747292696346472491874215177971731024392368490886857260989613049643156899811955347209128740235286579289482762441840904205470110721499754575192766049113865953275717145633464392584580574403674481461044343568084997762330103239143993635299930869555336522117434183739261251534112198876210094709242295705070105906476748793982737852979902878045241451123931389481760877745739224935084688890065893890951427906682727635129634474497855685051364973635160380669174582875096340916403349395256620947082880361741123381789250283438343778619350981909149392710761784497573768961429358347211953207175225619299558626282042916576760945571748561181759198671977559603311705429213084840156330183308032892947006135318613544359816881101048152465893120018844052523331473862128498842866778296375248283224938898333501614358736691592871027520757772267757449328070763852385583944420363826042651360928529151732985344507904697986391143768474954828160292464483201949747737969364279945223305856936870029323765164452429221481480079440928857832963374343883195326337388612249280506163847695935504892682809335402445353059131052907513028788300632951374861960701955866658333437397062881250796893525325058813252786415936995171185090711493273833470263236228316898089332607398336007843242799233155524867751712804570212591799209130794458722306901063211424650720654816978236351867124001900375461510264265883425776040051567979431382147859908461562338546461757419832496831616176697752695600053029776321512381406292039597308839610923812089412792321248839579464121269307185975250028685815278180055771454784774359449565905486168168445731300046046426381192264838800936969881641252081501861833141220696724325396993650915556660358295406941463269753092033230771523795915509514358947041078971302241177776775660314639728759158722621251244262989662924171600191211499155271129672268178962644166672749466517053707652971105682013267850373474403948560272748925373713787487488869581594063070865967695597436601648313739954934560760950457300795918372220591697143876015351302831166348314942687308688896008915677992321270741770999357931753551566891793542554763707475744644573437269063784922228989003052113663391117102002665968920721845452889589438959114603498089447384902537689562891843162232960773572184624388792842696378811634267071861265399585882405262825266547833982196085794534165111317843245748468157832171368497568597334056830714320028344421537283346475083947583874198404640940283644006223990437210516227206437327680576516433658612352462111959067091750122225741382822144292341271729971037516270106385980579010352480223228248138047903506517965403567207782829166629042546544340755523208011030781603639969992418822098578331670366533077362518760066652798701513986945812671080030683457513623320085050983031268721595184649759883264229936039271204448471993635448953246809221705018694012403480860189827299900210391242142128682633062817823976125344163599280345583939623142919542110501670333393200150615849707105741751850918782355984430279193698943631800629241979350864666391050735659698700957168753388807070040272751589548812583570483915973079168037853380189837368836891887075612596707577700242045343085766793069947515375864942596536095335951698662500765095751149241961757452050913556216181352492603234014813980340234095510758989026801348646661857271288339218138588927629965858704346142924803097583875372039874612141044160637364112564258991445049330487358622906316575311898817115100741423981373997938748347941566262467748862855180490431577989135415652655725828040535896461041102180671543720491257013266907482624013591136117710130273107298814082262461691241718027758626487025902824687935681413600209946479931054030149137425504947708604991936407745762193266933428934819094068018955553630296279613838594047542867337937765972289057288138900689083389994621087889060472456975328342038113925577784556658001532050795926434699941033292726198953089721548533234688957997527139388176284600899479714644165179914632041171588716928127376358404959603511658880048819571006125703733059925081572369566410300555182635158499092588365433548587547982180826048906236324659482696481635268675625596368911471385627493324902596201338202307348690631613090790861462311666006166876685255437587935432608174735134216931344406437177589121923729045046292412625853358785926938153982812281556732686798209353848844794224772833687090950240657296642572630518393457452030107059012178681059076840096051692925501041497981553985729583044840889365060192495906267502619755199823266387205045181544024346569421249374228679094946763470429376313451611836140888531177301433104482314809042095415227008300254616931658882941677896975212092998825473253878646877759788497364493093911319569345882536336088937361009221136642169174476304842389557781951783060797356073981910012092488508851898300386193190499789684020129983839312421389989984541178281286363673247650513477825818713487753053088980953405279146648162913144859740138048222697908463357594000229730001892797466603851247177805962044246057849113480827624277207531426879533015265506888274303952756732774374919226406115316977590684787791952616421760953591010112631404080114274748553063264480824180050991658449672496832163789585290737253972877631384759344124071568188728461698744260210337000696876313740497693426179563736226499091061279866819229653130122212973786647052893277644013038861892509204590348167884585864276436165903856286041321908619300681616536320412010291515377330020412832091446270595389484683060956865008779818943066423973005599150826726382547630345556418202462463193374796807321280733202963447263033854063082862879480780184887186824598636038302111752037038418164507427391846121279378360973332493293181894151804778717276773168810059680110771819427798867978668816171195102731249787521914999726072748841880565057351539514667058909710549731975489654478329016569856921719006001434019213427299855467930072241341900005853389191491565375104019799754715693895141706345704579496018795042177473083130838505865948739714645925676352057916440086446490581941507248277341753777511256040892263056989687692811751926321159602995572138728344531065009549598148623125593664795443385092747184089074684310053160053193363518156135189580642742561077476694692013351290446253939679533461988144924546491900456505000209065155522362117089770402988285246649899489635518896945745786383444963567133764783476463580995050935656812394539498992732090983511765396184093030712410415044076043176021079180536998976778349823081849507226899213251893586526078270514916060182987157650881597190639785339566070499510945318154515614206819692514159328557020049572746915511850093836147094846874992551616538987595980501828525870645560112014838068096375516355429333183282098588758206850896154913071819091836086639937999943556836771800262146699150152886475611915847014755652865434310763942265858002500218009213704805809346620331299629778151471823158315880635015248934062851349280293526837823757933040137506619414492161373156035126470606005251398192107438361424453773426366390915371970687074835000449813982932813363878210219344072768376681528407098476190736826439626877522715978905073639753718041422336428025247753691109157867280975641396165167832728821043894926070031160429138507437667762115755477372562862204581957916223788194799268326332022858643060440422583957820455184642521449939426668052097378530774446218527051917517404435233424465332727247631596571530068711230752044965864287095840546320767404043546293477511782826340379604555987574195330251854376140639072112802255492263252848064266127504374614623010511001844955297001098254072012012857493240133879452982488483633890610921274259123374211801865690288517038238822681223610677724428917950948552951418275370881365165902062516901620003836326772147076981064201506220488873578465112382277497836519900660638252475740317825315075184977770421491776027084108912077125591542927554988692306023053976281617489806317479034183100772350297359097862353942512103345545728218198070939682441918135898474197738005438207787897548422622487463729933940893628832647758867423431747105551216064172752996902700203372218478339030912671902649800446458604263791241373509830577811894707825007831286312637574245536687251097561069466876977712821191177769450514103199348182105075957121812226321761797245801194859384524650244256768841141501824138138183080745876429748238857104235259726520980105805408667463415060841268902979146459732896341427436809620056433974961136771980045196447350854188614246508146319947343547631653390141221743151856626580311008375485722629702842043111352188881351502571711403653735799543067383692041360858970189346172758009871987445670884801069556239456169591423333446185555814933387651073530689756806731412606586299584975502905224498907378441046573266295518286130859025577404300938648565980656876096595554330299225961337653049225284506860312552390091036745887440385353358721423074118369095265013277490633661413171818238461445664848133262894335380699964044509623300459774266010902674904894914652613965493140069154068288525915302911387391503233064969507290844260989163679200217650094179064048534574858979188504791216170588229021233900784029418609069957235588809953903857135985766864511673863641417665754020111428475583434956126286232894393724744407480084313440133608222107736847444500352163262209542447080805380657483011468526493914404459675334460956380353245133282282360928644955450838441841617278827662913685865031690989944952458673229365357647385579070529178280092003725981201307023734274522629584794521791781437771639437589943633950875886518721052376476143214109279551458074676351999285282655228668664077985514914730740456146586096158413860358532863245653773818444259221668984148064515790624771955886709872659831366768533711204518476998661250218431104096028653923747566370414054543342210308474692953888616289679674871992522383702517801523782966019242593758815967427482570605069110900098625871161848139523649543658592329809009046805906537688093765490942251712621592454201752647097125934754391489357785701771457210008439275283397835818780901494012371492968692035978060279348986718306196635733175514135306093806921294374699583734001580490633948606958344379829215193362141499606192511224263231641315587912645755917766000330446858386465217208392308958095993179371850096135453645380148628330864133384615299609303574957493797682517063842176888869454237385747577773989731635276630827259632773296262062802329459157855242117206709169633179389814637372643457854358411083696648631694908055710736869154981679989328290571401312504601648171076932327504910219242677145076152843405054034700660559795609199478374236199195062955942587960001425478911565517747986123939767565525367567350585155230713972576414745506616694055137551539714821917359039166784529062432655067002030197571450608255090453690700561644808726736643914825546483664039388456203100791041555100326066494504396896041543559383429622509562819719522182476586341422632266816835446711010955069082391944964702511009615231457638151754817313915297486920600291539773628380194823875772623368025929631598217492547342583341240222765004554682830904594596202339331335208139402179528238076323260032888232756638002190973642637592095954063624937726118902348875529300053683894796784822403912703312683387506350178486068215482381082082810935537955591289188477740374535525136163130072794856109306672223619298397601538192291273172844547822960686790558056657531664079862045927157649917225630518817813081242514555165275319905453495432469992285429602022548195452690471821288217355889428772049913122258842557662613362104535882122362506586985882202567622330035937877457329372733359092551147077210990152447150509474030492295990587113981310718700332677805465073085454242814084055198267685940662369239112990178291194544681392701867796826082814573223457727651098693207030908776883028312504586194812675185936569538236733010775548843325533513620586539155769183961622431502524332691779813245004375228538858090470618409428055399435798454098642087365984700593966648917438824321778001171033837292188658652945981534258176084819528839050698160613968215012431255452866986073515975390700921664349995819752071038188795587071570388174713088431102329127486083227625968440339113546804958372828497752207182351315350340321468542224288420547195658164929321381869219771943222990429295041484263273700810722840953820996686623651161337422822025068166434041590079509814978173813072598710475841137464008622513665708332358471288935895291341204126682999738920036613310833582281747986265793719554540412032350721941947811268552022337185093072227438922971700254828520262827314358552474923493985928379135856904465570293666884531403983736802548458927519562853190948821540380400516282676217046619757300589947941516787174570661241565060864442667031969316447408015123602426742148542466672447144357483475716423450461856277539051459371092492343158099395594529727207575645509222831519265079908977063402617088067369911016145722447476414568969022967019163060418798698096414748570003605855138338510014717539729286563154415814312371686269025118695468216584523062602800499755404631251895028006051926264959643273343620885735063278072747654090982546663422688420080081407343968567783610594016239925229879559259931142203550744396359717677171539495262995139061141515752270568953065788247442669809881838891328672058467675342442270543224026170678955157161263770139138419029427078500915554862908965185966348748153455350985351346713847825199413048770674840261198098736382906353504623040418133249968905078877203699019529251083570439490235602287553362506663869370317298024704624902954858032899103400804718534583335469850810789460715915328293531103312450027030048516831273144588803359465293361108429050466993555608900679564787187551085918893366626726894852831031279999131261783808252890789479498051978283937360033599897033424987762269352992590158834852929616016994599503305635118576703337753355646008764681810420883908692139033976700574217620561148813777065076692426156247941471729457713138630809167977873111896961831689320093680561669685899091216283557994545229356624482610862129565434536816774621196445855676053291356606118236067782683214429160785460724502739954068181463472276091323077898006396637502053018296438805801728183401248447088393543434403329741377204302959606371551826430066218848422911909620939956266825826215978213472937135064954064039525942630719825062213192417471546520079766991921628527635977624508448664438311766671383861800398457484657630906436550387829757155816339039612435438964081537207416166334559638677158531833440516537720280819995528301192063930218542702267147269530148564310439293917580721015506671636845654450363454078292005877320233072650555574241624267928051409159361870119897260109590282809717610456895318965186081756626124330295055193937251199927952587066802731790569405218806432100000124070364905295960757544847947967621278228140365718872726419638858297397798996068067293775539057178350741607004740453281703695795436120587046316355611233184892018134300191136655932615928990451725369719754312964322878579788484741612886106146272389773652660147544959527674372388806538587412761073332479823026906698013600563175997098121012905682723539635642383696266992769853773408918968955175364845647487171106665098515105480446792655469304165383400901373678694622750164121170494229887935447454298751120748566074926498362819995002552694620816965867753745931970208982177789348825339055942529455740846105530320907788327466953311448103051482237006963990249736817351404833721068269015823912540761566484456963918817421203139013452577788281980031002615611089502049560054750822070469477423272268771470900026876617076745958580029660822266538891893786054744037491328870743449006131317461333053968952929100166458551480800349501373482897412468916871106151014274586745381901141354229080348465036423396806669241871615092019919846572067864496407860778554033879202049048412617132259003122046924801759456815467107581766051378079571376116196634637358037765069241920533989077346931249309625515875640935455604006343532660124409211634337017787030250909060123946466583681174461140614374751063692839424717814848316068339020555294060029664218232638660593214243630074016508675401038990115060688645127450472628370508202298031454649948550384307041767187836286373427734268065740398898598033951654545332607830196061515384885160198880965264814817712370545297259542650877141431197415292158087155715748868881540300504665472093955449034552304406438553113982559507302627330521868940831130963500175300492515374488010591633415290509588378685431535055457673798642477742583707102024897378332777447942759214081154177354642978876611250330540065984901378558556838171608561013886585013588663860852804105672434271505264677827632694689009434194810824995872970662054477639099883179267776586735445859663605402159234363857181362637330681846454562138605935615553397765779215429539061805398150981669872070495311104105158039742703481773231722723903697597330588874126244881677474426919249059987253527785430818604241987819185795714600595925311713973803511054738840019277414456032322418869860172633818793443598619413512061650199492528217671648625343417707365917724367858793131214568724930379717931520985170100378129205614569011725357521459602891653765633499120665901774548060506365886095675885077986017287841942292704172765116743982756833144806517744797108967387560417611315138861094939661203960701137128701484320118069138434483268242441771660958203327414501463557652414055943381841421930313611931154855985425342460994862543355325547050986637649250371598406629183204286095309736827813461369363557028717066411628154910504520287969049817154833809781666895169784003507402665524606535661403304693382203798198198368314681529552284747922538557010349112666259100569268306188892524400569915484719738763061989720147653245025554480707972436942482844353371201173147790052808879813601762764740056923500386925491877435240772024751946067462659434506109760270199534174707349105138860914068226167976748348045603625105011984620000370730195687913485540548618772747572362857873139703457886524048356099787976186761910631095074597509623815009532669717556654332607101265902955063540135000287645174389208181530943515186116341502495508145443146217822471886770995896716606023001484385493745080709845078143816555439244899306831616350404090379483856453848330151292490380999416126656410904075742565220915246566321458997378689488457189604215606314025339869167282369792496663472142337449923738392198471636210537950265827439239173108512837513027250918266638743155107654753138872523264216179541393679657240742130458895012845554079555087399976347221176483197066944914449270678533716933251585119565557516968730620437709078354487229860134812984717896921808202369060479597592684538055623892807868053605259850669957801521628742103839742777598891940072627167291353868180090786567071905979258509871842524188599509522602663942102278661112310510262489395172898657061830231274280328043785570776471592170421392108567319585090597279563903055391573139317064960286776756609616955077432000530905461991168349529165118074819384803148837879836521587261704008661130215938751408654340226590624965760665616374075182221137928744939078316889031509546130176687180120589406241389554859247399444030575122224031718678102595720250597501790897408663752195146296269317385074978381855518437802871522258119125973269327105471146393215243692471543664619351487418319682992018123362422127363050557609461152649165058457501054727875455681969027949327216546144211543134500949063144191460117876735352738252539583094697571928639036561995199648773981457495244386697081103570523046142918689509181450748100974279247387065242811062383512561176794740671837118017537267505845340515603361093318244239540459115166717306559611538718164318689899913706706683490203018549894723862626942345846178834056856248685572520045769201608248488904205402780221871057411276157275163541188624313111464532389932900104681463527967327111545692729265229029543806549787944240813490220074678370078276290775816076473669146857777028231773110736694704864536686179675533684010933501440122387509334517246551063633065552347107521523861336719464750750826928006325298120234146368547124947222913974042703700997395602536263989423252227307431296824461543950929217820731383385681169714923730416491044740061041318504811253065694949410264594971701460376625838499684691746916862317496275599523964683194311023793499992317000765370399531837546628958093445181240369994355813330726934671665322341182011167655186637700650954953185084330778201179084437133061094643642299874649525013682222517144333529831623471942186745986062271226112393674254370748370921044382865398850247315721519546997331356092134745090575591346097726221128809701061365778458133986848408148291286032406814657197617018180251266097234638925825701823678439464196147284881097622823531323737941603764378407560844451243959666144216144357197893234650822094677470793735812027191542641094909678769036313835102419660258598234482621093487565217669141864686991172494642156295716773834392507091441664383946480044270816792596427001454044879018848771250001195191169138337450618921727979130671966106202224588955950627318309943053459437154164069861598532745955687651261728318042544606781012455462172938752999643584403555438630966445990508966510572277927178818490087375040382169482596932874179765100638249765024161243430537024964430138553406161562716396975079615710607000115974280783363182964285965246593249442173220529368039733174213393262619894501436822045606931984837827033281654139612031870102473897635861793874774642378746155120908197147393679658947765451091474130773865491310302353372300798118979820141158132632528370603390959316659388287077573391330964123375038253750684356238266394938909067993939906485802191475132677964122768192854381862875395083167009760093690246285851612134603522984137641934835999050220735113470782157179956173585866379850201292768119214145820277522889307022278248974721863036939591262108626923686687331200923209171259308197916481967949470455365533400694885315176208486549460883735740179531390692327383727350536558957844442268731178042202430176888122852362255652685602062547142891656028799006551040743078333258224563910456557621431847094113380127815795077390975958311257370428321332783932864066266997292721939822237617833142413420326562985234013255494976329189882454791456490283556386814165551477696292415184472788224262444621979111453948183157076061425633883234705778104999913999920174277083497516947284834901509205366103894780481754907259320959902023888658557590439750100108023006007873911101536345207887902716161545691373880104942758400422089054800869525166009448700047179739933713563915309201443801011335517171690556938952900777963748313948092622867769276396032667240663116537241528537569964968789925640387110131184100590208418322225989203879485826058710514274191718529410270306882646789494471616922613981697046885803193637349686703759670166640554112494226651825543668362220859985110602557750815697524617747148149966524586404813255222092499715626478726106185376308493572993497058978572263574200087363073222601893409692794382480680364975196902863811971624676401299271362599817258167487965307279551209459739664421935607068435524314931101745692634138200872573775421090290701085501957335058277425970648260987628018266521126315397454019932458685308236093517366576268010108785266130087706319089451582750132722661476763194528182682023314219675726726492788449941641800963892994442122495352810854457214729023043378068772171774595799323824555986112203886586143729726408600683084487370791408887795227040811557849284359651245422222940643223202921488247165650771185978458908543141528476329252851626277866182303945001618745747021183115124237756807159137185269511400336297737646740239633315320641823971438924171167192338008383092652534739766311151928674888620214651709092882380031663082577973421395988310886938976959438865500496162958927620074271161951220314506010914297217051299114792033277003939449765759053061370177112386766496063556971887396819397127535452463007301059559503833698170075889324100257086018464270936011797316983748995678174175205255450925674478461246927016130714353596745920920068889699015152258811446513313839304171615913217472883028197789319531707563286346163919611889809259912864302976943812421965220178439365562153572163756691133542859755027766087785568844979861328199150102948888538504437785550446413646470730894003040383320964236034839932943004051770528652163103770911604837723688323364856138296204155518688828966684563986273185454467229408010187072267742333772316502660836531233865272495086141088899893547425549654909355038549410149564222119710075255389403862393684930420469376376235431760451966315561311008795457376880423921057698086538006617221156753546880708950311270048487681184373504090595454363439347258577741046113153311445544489010612320239062274343664201776292161363393070992954230513225221798912148297317348961734109676759936006318918089796810062129360906586511332631812168438087691141644743218484489483265904335481300112901654371625986895909282919492616052559369479691706297942607312803023722543519646627458576282405250464186028793878481273146092122381050570202214046032569175551072746618358854708071888181928632522973256699762783076635633930107772766605511657962962890572903656746228497313892642010091827808546974837434511603002175246282744567255776006990184996659248514250838155988292204985324578544492702234628406849174961919071310985243023456395271383254668582433576124163673876375241894204860031575085395093865971089352844123129187706239710621081921832109182017991784456549907902431828435350956178003344672929122466454393406055284402919825876024378074258333377682794835478788427444383263466677263483612549296154460115547790171992595080046442663468050845808285017668261547011927805933643395567319024439063219011680896273477095929764821852325607248495016779067080596107591550891055111273203943729902610085714825301610791433629238154609205966638371412155816676055501496353378541572805623988863919162910479016490984249321467687631365541940217490824595733252428452202453099137499052140770743520851363134755084709886014952143134897085157581251466099333729534634188492465871654633736541066830004943380369245813186433272488025992679097203704018972166217036026035335982840998233053125864651722260566557419781878588991654446809873152405818187403877982130385828578040697503701590453072433253923226400385557717397953382024431379387639176522701521445631015452370877798944174348489931454593401644260162243336989248081071135601935714254778928224228720187148289574020840331333636981162923147011211537629854040691811427120194020154351581570508109108335869120416655982841760535095296971350717123124276228286072047118251904834030806645424403029669726145041080542043217841625297557542120055720552030051559737513011038128237123861115782046697759862925110273723543931636524569188224528100915384407578449908852432629032424318765678282713759897979863204221310886449713768497917735533362556544785310124198741528183207498033681280222843215862966032109475400092873795087072788256471790526474750648465219780797399788887433777778736238547044874297004166582365858825919972363288200735304018235310898331687357179906860735851271758491491414748992952238146016440878231824063676040987975395366267086914740841053597909835841452408438786016362099581534089535310459925500498032284472402693445552653865075127302754523751789695024674972174390005083755180169053644046801832795986851051347940028811305351151426173428641631061232393891073090283063370908068279219462343199409844392353478782931048270392154728893805485607461028754593603681695527123560265638796598418108259366400740486826687624978891967046592619759767024398835499551872950231334871310390351093163413145179649110794502529059193838684814323147559554450117446896935123812421933709926162763731768305598528420521218917616763478492652727858095517059952731272233420046610802635514878308237400726706155829921242129157207720980456089221095839508745444256744459803318974932086720640692122913434476558300825462332790010785912516108812866858181069376893846185238226147245913068365107377641444792558398009612786873339420876706156938024336066855564641308429774410093829231991009627583239470565332914252279863928621121006382530218368432252577902689069886565393587103259847331187183492355573105411034671607573029462156855895763879946069617827496226434678932054661549641631396965566847385912626389688136031636871102873203833661873779771426118833125941418246375580467918756484369250937825789908376551191360676365089688973169697575414153864166904332006006194358502351622986960062844032954229926858753078626134319706253133021739119155019760242443375229875505163875471285656033294859821988467991409138651393560910063592293310397302021917566068360093141333975905222552122209201456865748623578273340086651442300182982730866250259581712055003051321012008524439507416373350498871196828453087601875374056930590334498754247971692192904751113335037835619423163495456204648670979802536526631914248586739593793937899718055364012162288535514821353697428526358202848125706875617853305238129417620078128067544653176032598703817622154051504986401012706017626605266994033500854670736645062526449954693199554190389508886248382169685117100173430964867247264305922885858576119475853199719000370267778665605810789538022832985724002904184229651613678626058178308663531349395826464462092826365933366088445840920625445836815946678066039913629981442967691486016988114915125343466762415397073278801242007275076336723137364623824190923139010648879167188287564754117078825862906422019568575762893786164498661456331070912832022270344383959011832427878229396286707264347409887303477704923146646993672209880784647277729843325494496753578251931609443813839379139437529231051567434298240889100564010844119888521878114553149847429154740489779307305027175349368139431043805755105632189325440618759987686193809151593316396983463958328262887440559404313323802134620844006252639692166658346221446138179153124034756525616772051845453504463372494377981876728508412381128368557827216472539759874933868448807473255316990204732524842725841873086171494687135602396234278786865571844932464389537298747798842393483853669575380856067494217783953238929710855597870118815046966957711332981929983950211820499760021163600803839047678392192786007121785899856164684663808248693095272306130403308327940384178415437213001159053780228704351663837786573492516285865048488437376222560945967699671169183887061788413068383031436831774838646792427559225570740282000481040498777260561314736156751268890091742781336279284196415346683557286074749613232949470456182630440640183197453668020839049806737559194797293035118748813562378699645220990211181873986339805003593180509640685150686656143032824456038001457409854876313234973075635739784302160939002895900153239632223037741995361673343845931143930777888288466214542435262782333721902707054730895077188179587862318430342157386364701985151565725862406070735845012739868695939272529920459715102914123200668978368317094402070846409780050093110559801668866856261649052650350590561363053799867934228110385034618847229654186196100569018610186990029021038578801730854491313345402668283541419378908577114188099504477271166070459078883948610091793959785441789896194953576182703278664569898523072948652013701337318798875762507530253532373048274818213019566951900354764676600669953903824589578489484319653250486818839540023948689971685715818195869761694608826875736962424300236519883443159179235403888765682386141364446003053512471527074184361796494171333927101661169589233004533366012488036406689359739682634775506239224354808640693513593008425801453483586692656744043068637026352221172576117270493855823895773282303251278291423616672407450580384703339856412645219034907504899628389064555189804622120911898050934780159324362980333318610812503637891474128253434940375815391346799784151047323228010512773128405179617193589735146656377415156443009825474665926360337457519180400835335375153436671274301139986866439544103136157881623655309156812765301719301898248447787235365735610697936041688157009416439336419139629227122235818196680674932541547536195051918534865464169938857044013529383165917556052667827139543462407240699298201015388982729833504059613194383841381008453289636519751884190051953949022843651733671098382415166506278501755677179271215699151598022755953746563465331409185977805106450617211911863924588349268491659229908320134282086462171868743653570012813710880398252977424521828835480205328520669138304967148004255440614426618778820251171569834995767673775004775480261439627005217180439025307235491753335018254075378398662226570099168941215366522323307216675978422154406644118192039220379078413174341958239697867735823516948234967314771032449218027985018710958943737227909294923328463896187552760517714761245892670695234844282368775759533120112585159226207404623075839093817412311499316985591778033961410434022153514203510690603899154029850990783480708252003224053751038754056394166726748877472132061248188974749133788488663241116506981420910267674332614254336657225322460213060824537781021110071145037171056228884430942075062994896428338546012307728786688980414281625593355368132013620207314144299828616143764568434341131298934374055471055545318558887534099128906849261642695911796334608748868042281856789499935313597425038658762670751789763776542328097891948899960464085846598589177397788257403135861111592840120924974863766788125159405837920794680548935186678666344611803150759537072163718531467294440486878988183192075850434027660628143851952296688228074235330904429535882246917198405458317880962366766907559864508299132964921404383701009232702021863067296001086919632878938646937124381758429459432875665832872121992194909111835836473872137735352493536798344373613618305657726533730409022200788519741513897330488421098026419746063286247493775816047064238637313297193782353561637869938205065891883117138447483440278566348089351786880430768897968155874995418268244248953233735518285408743819492815389021593613628938081023728046107397275261919905552663795644069378717711987694349653278143819209135965972958426536936280155087740789272993712141095481535295354961869442169456481047308352307539719988672100834326154765870969209771281766374326397964646589959903432646255311563031233787583646334955117377048288548626567025829022163272815842079376707405763992320588102657844275961605942288978911280933267982942736984933408400216400045565659587800363154480064451881528603125709161859361833713273763977747030115254618788875862691383168579392394585251057002427344773242756316174820943854760765532918710079308747616290775838903528310531756587242668980827124810988877005100305786756749837019898825392173085695964538509486524472637304189125024913484165157644375039163316904192774288192324047148623881990460135054901632769603859278365248747667518478136267166606924684324745931219435560974335377214925624533323580334646577019943280883028572441852465853858640437701511879478790444468797012538121668666243935298796421467560852790947445222015592251194907798646006448738796101638244944602464193448256506462782918410262358128546821153475028249706603776264349181395691059096282123011544471055593804447130928608476617344222108740691991901897470563900616374187578669808962219760048980748829429089373089148665904141290141613203986150809680907780589207624117516130766985367111080391260094324769356761737202471012725468879277256227773397314548679183180795422967547004450851555555350458827140020145411690458857170219445274180273394194902668503864074340164392062036355162234266854610762163206394570930703164132962174840674721441494588855223658048418300311505564618249686069738830956752206160981582087953361557931560585833405871769720081985606789579582875098448940705883449728421871939079436305794109284958644179387242294009050167374285467506442237304671826591695117396088607681821295152280493633513633317255303950119702780257744710568891529722284350760571395303474975329328940403373881419936110094145425726153855388307602390946477614485622389814470868806424541507702498658198858325752328079464463681126815031699527478015007126250972594814106742746279204619784864670583851992484405372364122609254174271618769332647435391368970775177575160830036089866176028418852434247428823557444452615503764955953148147226200897453970021452035532702185058221773676728402516341336550350910801600350449252950576906539773934705917912445382510106088332061815112855483969556669676238808687391639122573989774246824848003024174246083555660590864919818505043040065276826212585484826361057532566528107595420995294775346652120392938938929758654514421916897753809309590458997358304332604452136128485056580981516490022691193397290207719610794459709107394746586752317007230962402826513372768967258807043214949145641835044806526500435334598353000233369006194803226318408488430326020223729582775257632227813888545019422285560978336172927404611659852966040779098153002173970084416517977632995595425714390960739160927777567040882153852977073522751395677970293662920314561352227278142558344224186998997900338862946854478985714381469251893919418287500483499415219611946617051415190678686678765176601088153504835450889380959413361725812241805688163261842504846816115364805890784634989945670478603621571459889186712030758083885850486503441410910768192062879769704555854362121264524796604176522015762681612787944330407436399687384866741389705928562840936176828520385680322555936791237126341872243413757876957909151269010145351558075504636650691752883625512309468770470835422862576139461992761422430280950551377557645587550006627794836923829173770103884071033346289374613939685158989865859704827302771481999088034276174014827466149325590320504292430574717545444443532519199455522949265276827778358212764877456436017782881207413501599608296513625001852909990646049654610168146725645777379857991459603529476100367950219521169549959582539020759844269054946899422705793377024089929229264666135425342935150259529274148175151645647434897545968432167281824833009159003009447693020102740009751397903357317389134492308267809972728434803697006540712449619754744265508679930350457193214228430181392123868252455204866791119495809107730637755913912508953233549598552884041953723005394286622456454867135685277171405480829971248080006800756765243394159066883447758347529956431668571708167011982525930464613808318136299376549583158893448766150829168015294888831876933938372426045708629964253557165176991950005937361994987550333780883999423934151563126585654728014657770109355387026288652414474887074913717308786013444547979628985390502818592532330626571223091280457761613487836854674034071236726840083646245873187885900188919280519415801142725396420927995749059765003569140735187922568285610083541957804022181266854958348268828777807573674381271838101297176788285073921762148050536183073948245346296936135706922582705391407457121865422061029944394364696796616949268455941778299900982462243229433921870554788091890230667672826140914327316642131336028522616435014551682489466981411652716792198962417813857696381792253808683836801008957037451664583869302598826134952962532019210659444952407071170294011704692362336553954230406720589060846479727189617092023279410014079415584629964690914335594866950712730110774727430418833512187716370508347358483357491439915607380960267109651594882300021274307850135883477304344342716767244967545765226237156222478239201569410797039007996731137343921367921049178708067000335908069274833052143439001781755925126182858424459328934144313700217963331818272406156800703767403866132319841947848890350684804135359464372918554133104782415453493993968734328597227587648406013764331509268191716897317458868411934689446671932659119708399827696138812169586086552299996514556564928553544879767867041502544196595484179118338160910927339645344619278388017287021771141340278855504937746226325334014290857158410356155585339127972940529044228677230250975226830715779770321729074560698042242351413907132510609089800896408708361881663632147812521936722164603145161472815577952699850275910366655992439456742424456046024278066794428554313517399348267429749821060106464059094265341274861091789140324143200535983620223128882001776646109645626830776943200866283944771100825950306070921548597152770634186272779692530663838618203186638297007402555828461124992519098330197802342787171366207674730683442426892456521930187271559779665330575504898184983018531112073911218678398857998620048254801428361145057090840011632249908303832027086744999463824911795515378664703051753096905724417297753194145472221089212822440536795756303528799742340906501182664655485920975467055820796038437600933388333796203977707665087023712488396610290633534550514334798122640879398549962781017282385875397785543469283796069623699653301129197300642378406577637692186664011046121128827018766420319993432081797072048991440841428610926409602740172168737065759311240544957138096815836304922314505154990157799193031874982324905147059709308169559907394474804524437389306900249934046067083580013303036930583066699247395778928011669094813583352453172715341476553200793489559890842807601450927801238778167355241694341878487566403665038320679083466117861379060433127123939192693537640630685238722163067392715057607720233421010107765396844844534250855711267708753244251795410833344510981493570369882231379047415580503759216853859583655231376722772309251819327668941682861003437351355161773459342011953527508403191285430572828906587028368230000159485129585627449176300002207806178448490633503840781406611096901559227228090214235105842413373824846473112480349396635894560263061023564142055789349636972459572029307223493595045424712280913925082448829269694286148670919957002626754797108029340767568283191628651358797487029900328439039223468441991255126728010473143604119716963217782850610781216863163009606292339429762713818404738454756903995388164237790388121043704679817319145322565708918891868152688172763512990712505929930599358667355035664198892489613269931895210725306103080092805716555153140214363928439870278183090651795619715261416720407999356102258287878116961219581202694692195581696572514008146137934644202470273757892892482756265507225718987287928610975223419617423324390672950391920061562631963814429459262372083165677904949547267461324659822608794890537309637857617110967446016823067045591058404126056141891232543104918212421823520190981844242838821145277763822486298926259380925530395379274899729457466745031678508834650377370611024348011748255736883099523604320417176610116555295499089748868915076378522717149850008627787255002699531576518003977467954548022211018070861072522421986353154570247675783332210210652180812678825251184076778408920067607073233229625274678286849223538488336828260564867991238640787615429727920399776218973323280560154513312572434465997685378142640388391179590702937791979417716240209859607316430278433949234723902927195766998619075863654547165857696934022676419473640986326809608886000145160641436234983237249093695895340835660139130190652931818491481917496253366423513246802067881952564021985881112151494366011011808069133411238188563342931058587707381490855501754734177447511044534261584237854512607966000267233842148680063701126323606312727436466690679874983486294484668662117463733293321891547733031582210707879331487096772086962927386327426076290739940046495125713572464345178246385622906171487450001139765498424116600602601932237722830368047697556232370470921305519024649696989355025986986863229966186348258733330325219218753130658765687978098187200572616276314957861980274829919519049485553621231460940820722634160524472413377966574499715829700380695113260466327771433263328934912329951872493485826173150546061114369101917114776484184522108798900519674833361066899879817175437321130097401473947831326299512781883466412592168756754242022406680797376794352275584088985156287951784548935596199729709581289507190161425630899953496724021043932797175126323378198710789964140502248486375811927210478557213423243212881554688654051320782308087612056033139892550893200775205154895532622126857443713130142879404439452909295292821606900696928078255093088020950805184967927056798391857685037622897767432757320929991053368089141996542638259110204944445596450018459758876385720905487097997370824697198656325062185612812865305685704443334490108043743872684650740310654309884546808926079332749818417086216921107042659823018713247493055852376141414786495957019236349068066550368500298908545514223683380185336022776643616315622702948810112347315574229614296116878237630287507336420783915083999391029998932071455578152790699666155582576180526870671201715067519237349663972665623295061208121103106882308442563667460218858924073830363329768125511844119111239068040059636638168780954037116863382530470560887604964848816720931013051956931157478046561108905591198746624178205736861409204311440253696396422467723303810782141865193229457433937637288405232106568260906120107166889381700607670663417598053816173156408931995891339730924908599747137755594569242151872860726508225604177918145291745756397303993237202272869941120792485032570471633422660569510447126184074493228854673137292088267168900649816220029660583931807242345690470608498921980157643598195849108281949189798641921543574734539148867199193059160964070307990193585820762476486274189125461353624759693246840043634278615836958434534340571076657924903478969827490230902461692430331820213130559712984311542860368658916943241703724990275903399776899700209804487758376982256085475949706173763742468644444025358767609619353773623842057488579167336935344441333235595587838702945936861289481775291517847232767865206822164571366578082413787036457675235334649923016523889377701556579015979813471381102593373684076942521469470828233484445379892130667002400618702004533103950230460579071493207827325180752381379535624596452219465654645929824440463634917361307826555315198153468824308002630625978788256700996449050418886513675758011551000250193478817107225398286778929912563152272198255423477744106239329874874131651871428469517165617243101016170414762545923746353277200911836891511470724767315787502623630856255395521255541653248558956794655521918173897906135162216796509845161628675836245308576680670384263413911082354554192533468493908049406446587923900146618979147092843679608273634639861190132832844694017848440529162605924030999352911050812833933186692872479597211850964124553968920278015647601274202083927356969291251430005617903011597287713185736110614281941514493035882469371625996360546102623987604943459208513849014876614240398149639598562344668603278267091230962606509692044113524371788039526820582867815142618736683228520519073235423964183040536728796033243820657923959387204410253772265669249569119536589488100284059539088475663107572550879426153959751907232488786671217864257183025808890692685905072580761268112646229454063846221257695410676750523089746646978049562543610063375513607260682313238243018691923003813115951211364448937959269658876000124759271984191309458689904774662333089743313832837878107860361983443339030004002975594612002862056900887794991947228230669335116167285784309042649316750896582390015080079800076760788541789714971514020810632283027358845863809810905755137610386434115943585439431866354753750998377532921582701376100271885076423223289131974299841280529652579628906610251720885327274263302286989690605679402767259262939237973053999703055626685028058867626552691280933000188757718445984236532517839941173297465661083024269127295740471909020124695919665201213222655130933012033319945691650527391512420857828222465628447118460810230620528513914907586823917531960466653183732502156573079392539784078922356132472777292401848971789103590433933778711455790939256925742826819073677076603841263703589478365152049036539983208831399807645987780433608171121355781751659687478748086654240470912460324592808037890315588653679282836248580886838199101789213684403685467343820870150746247998962324442054037475819141938488142830112902862100669961205905498217740943672863376789595619458092377256612851913598138741898685793327774178163047292999563689485399119539078882049494500882760029001373166507235249495190031768986131647564863623461573168907135943944236823732525001473597825026514013049985958238339199808742051083079434621726000507770363870843136902129509403520939477288733412130764236464574674710653282918471606699116356940177052751407081625550556105074633682348064477683546359968794285870298181839697036671289825564657342721340501251147373992074607072619605427358191324433231460488940219902068510927357671657652895423436353577937161312651662892674511890031638293733202235136096590003034758381223604432079747087314907574694264627548971659668470401660518235904788266151677213905231615755557902266064790456343704001725622549452597727016766896837648749426842013201443900662699414472541854620795133970896357798512763973094809326395726894878271885793468312211195443842288581388826912870787087221457950230042619478021366951223562070247667828423916585404346785575109869367959747234603941626812334788998419913601637420778815346812833509988383792540959576300906476016872991635273305248480612221657343255555106231541719395052632254298123983400434299889960756759867953797859452349151969050468001539058334564596896304526907047281385822989760581691481826443157308319692644154100283336460611824333646014328065936622277488069373177741096191962829262263661976750554963705745306612351989658966192577368758223531083820821000871654195409078042580566910700457322208918034937388882905854902915686815177590506603418171782227158527958220591144505667182265759326267522757701227554911305698165538348982634748500287671740629990368432185506840638770330716312014724000690717109257086670899559127604845316858652341679413347834457964488191734439609130930602760410094512600340612501484934255293280989443660911672649622301754995710774757627077440031975906134588157874190980024686799193024670442954696172191920232356971463265039128145517583297421639116078410275923622701106952797209906202973969843552559536102388703666783088463107058456108398655468125983708934091439089010242351670353483824866698493564719101856738871881776992255721060369174064980524365092298668359869269486213715065336387700107688333554130694370369634853944793069516364875806206670308859405578066942468914121537334219821563409718147331222003036714840573051885728071859313687268375561608333219010644835816554561850830282337863399512264488941139126103833249240155785649000437397642211993733892991963617262967610750067278811990582876398867365053596436663180443545757869174244421889030547926062759164996307191795419743609537305366281366038782793233339511485567935047121207788760932425248051433803343069902739360811434519974906348205641998317730812132149324539610111337917757797119581494082971945899193631938798119323565513758771250578216067366449624612915313803969981203229572883729272931844653947539372262218991311137558166900613644595525649247357788128574393450487898358952384811039524258943227524842895637152221826448016145375882648809551584409066026517774814822005262758255678296808854794070346576889642791846573833694987633864353950967180540332387107080416277283902930171925952974326512830219096796635137737540136149557653683112547035185546175939191672776132530220782428041528938062914891319076637205860371135998417902383004569737031357084392522140294174146619712460342014213974342613520494557190607003828025718163663709151492248958483613055488562080771926178956073972823419691653204594155273921707646093832796702630646848170980333471303683308913199828735186736980480646146134775104352315856802806746634378540114029348099912524133915742065495854738860908175210072933222909444854270460476564921682070556416727010666170454517076883789018949368705993231333429219585538791917814724441428468791796551994467178646261038799872671934092494798352643610869216866190811444320668073101933409733032465917136718453665776232227996021998217957706852003511472526930918605199519403921796392020497300887029709935987964845922649453739520054913014165514806907761113800247844085999704797796178228254109416154339279394527548916854960457179631911735099781143663597729757513377661481587171976803605291364958596036252938743490702295069071997922342272366513324228581929447778721959733768150591830397973052253060843382124988146903775536982836131452542102154778415689892397862581821205434812151575991473161829669954463776387206492734499335086094215997171149031729020348065297789847244352410026570582095080708835291093286593244534244902827962899796404859515057936224842632772822573714226478047738363702712868412603007089508470465483926666473518611979604872281123590774938428492382608110449963181127841579284574760540406018759848186423748746312633472360240320309623050172895832082615912124910412977176438677724397114974415575055137916837944824469783934646643562680601001643206365900564308166576138267843313494010614687790576741619190737392288756013437721619689394315182635502913670225903277613470177565678506109908591281038601050354731867584065067893089239300465391560540402312291554550354672276717373112771194761032477521530989340132757369144400714076373300811041109094170826776182894050887987591893025502253618148650143058265847514065658334819961725869903540042410679402908781799599450885790717320517752475318721655899850822126132994383103535470982312901589946908208380490171422967151745542882675285745876986531645519176155017330885059329819594779054957223453128822002977093279437984032732790294255856786471994144729560895789860014992794935666131851516603492868204743995059347187650961720005951676229485000498811509259690728255238985110221560853669134861455018505386984373262392457116739300610210671166550375933479237158703491953883194414635421518003557958346630072526453964304121698565771449953028994070042025745034983879583546295232196808269971332546072879518595918927136931102560471919944168632440612019627143277945653370370739891449619210295003470853771991764304571453720248504914431066542973510431883448037181064685937704962811739797245014876482749317477361315163109035356281498569750372443874177974970777265330839965829250693633711929369193032885638536736686578210513824164537096026380530269209611481617031892068503601502968651741477475843833947905905332354149210701806238016267852041481305323263094040252619801648471911491578297129369740765253217103358442848738744782617228972013925048040186264472774640085261610846415061751504532769413005923494129203738777022119046977121254106785192505561737783081852953019859694929591712301888152664223976095143870450793977514273989398557676043591289953493206843285817435763868014464597737445258301994667590837373320762877976989228687378491907490573863508216285653499303837657461177106888799843489886191078068285415871718570234408541356041896273955856724916166181945575570909504759509455307225973821111156832789740602468417137679292688395936998624457556836036314022214246574295620008433585927394140209952263604180726792286236286868619289509193976344759768187167570875032709220442100063149970653771920794628439793435339836057464939958425504177702934085180408559974252840858660818873704085699091075980561444114417252836452980221103217812349218212795465151144851425601425482054932190397151530699213185901888952260667472707372686338223075997632395831368341141096200212625233290582988770905268469282247352451929124761833404644994816068873436616052320813319065746685402556068844405833810036389053716000773491498598206898607231772291976394902799346741811128805979348258955918263797597721526717829051520294695935491221069503019917140986771167463777945912732648286359090455390189657197247130877768712430940107841923584506829522420862090126478802799138894802662275968609847578341194892406541036108560132198117084993876344648032849097112031960498799962633447338819838349957078833619227618095999454073449767919638324087438214301721994048714232387622912036749921808259722620614519304641551809012489307105558810961189809754714694912679416188484893228429762386924319819399765799136944032958585825037276033876502299901030281044213574560910082002674261195408657275001741792784656184761403213140182842969597946119885999679600423382291183976370882040415985371339066329503738175150534025345840728602090144195032841809292620304559761561929258586748937584494070962434112993835228730659256024728085539183918512169400599054784112896204581461120448150320854746962059897136710910729752846908533975941923094360306823209410316514713936822757050163659792125559101181539027705155234773134191347513679719086695985128692955669903286602480036353136725420299820600204271397127808866273863428240948737747434508243948116791368632181725385819235948106996819168301271439774588157399857948917916623394169354364489470268741901230259477266464638511085274065402542028958670684163261555731499935619174255642445311188260789508679940058389122220027846848549279330083333905517456503135576541562404655770586522215525125800690590055381237559991342148349119519090928497128918597076678946622521050322691179470552358366322441624769804723081777666371859510675447015664447959961364914748983943918885533750889049900432237192434499879577879927685896538870489006184552206446549325310925795005885878658230238241871781171938788076254731641075870497928425550712255422524898143308542461495175789502149167971832291894105952016377060619710150181613699802961446963794323518280013620936173027516715099764988226197247261126137588131286350251200111687289671445753876743356744579672885093726683163049967608506839417361991206401854325904008650193571353221833308799621498027613013756184737122888064652717244752901295906643117971660644069560765735827208660033694301180721982803572597438565427769175756206051372361512399562776345676872621074978145940204653320002910606150120816526158034605261372038549846048033725410979568361379439616699196467156587266863745761228826818396175671906066299517607851242419257924867993648065327801822934705052321168972914399692764270631813819256146978814052383938360381720755647563003452466738274340908499429483584085943591511486080747524582323781570211642606794156043630447718774686395379271880467038067503389787976456567827632079313324922534301526689867020339561142198508143943630826376477899380556662752210386474800280870217500544065672032306079098685134937711452474814658248414238240488660082483939888077364179316179346536824443308145430695152126395461485856088473754512339416363031811843470172005874163008577327919247457209960626676559224820966371166258525047630044901110324375804615479302940657332646624408563872355173383739302611608368101896317131332717259711387416319990865661538999953717128336539284225620286024972713291427497396147748106485048908240553443859691028276009029581876701664132777054013534219209785289658081686144852167373937935530129146529303728059777162264845340423923413342386343632594960607417685950283159649340883635183779394884889852365114683957790578547181876705892980868065392391190772662414296759049983911144521913228678426510867208335629363092315065234078756795546448530708736657742200893780612645219487342221644138378218377073048356218674757552202391450757788660278190030644109476783645040102655004860292458178826142025609433603681478509756749010279858008333568515527651664689019886446762629165214241898375125871049491797864552198102375085328660953898234179909568383185944842400002535440873031170382411565140499398157918076188093362689601376526696322126554435237696600906767442264845648779186242543286391611421308428873326327857250890705436556478418084700800522884209028664198180689075912813088518774150194179481107867125460535730238359118862095677679538607424431227826730166009512166495184984194989009525394758601558312670245091830634706999980233229075094295995714651178890387042104496908320550230579558337529430510277653653343916248108875277748474401564214991554633476067641674672767429752716312382162110032444911509801228380220943979969785212173149767004331981484460503636761853772783419937292675549087981536612762287883581203142563902647375012659953799579829794819888582756758656796733684025673142802546254594969325591378322718224722638891360242680150176319263110066912726326782540415393216428971565635709026527372236701770369486003830573531878601136047254245764835008952984820621744729931485320508051126776240555053658301826929743183632115651681864007631738980794137282343373737303761138554203981376383760634705057172283700756709206216991151757224800943846064168656555685021280476491781995282144794676266741475477453540190447044171602186901042351065265033489812974055588046990604555408278567673184405048525847869157012690506248350391075352644604796176799657065503166139228029070422683543182188104178753558229342391007115679022669122449511775999617175954944008101738872078110407263107275169814457432440607627407462378454292387084009174381927605783547341374875893193080280487218844479393384944253974707619337975925818929746611881392713738379581261365973202057534955464164154800732316531649913787324893415027352258732348664533945476033097141885334708369155941109445866410441544752441135122040487863618882985788166830671715606195495314349394189518404798759315487914418532370852666204053177314140100287423796173920052917812547854682500199824400756442930304045184515217062661481051503987312020928610903520894116971202418787807114635453645033787602070205883027422080616267566642119220195108638020378499638142330972255722024076433962109689800885641353435561053668856492836035391372186862701899669323086746911812087383355626316661179743596163873872758547512679253025875484674635916668825064035934493063707534867493204962641666494584965856161381331314647346992886559145378296326113055765402563335156496673057140522163053171125503453101749591787914189712339941831038460003475354314296412282257459544959027581270854848789478538412557900451240158948640127977002426801755753514546914683174587383907809919094296506372993296461360060913041913546571372555801856003133426578612312255723289554016498500147623836040445748066220834885844589057999258146624163376129961501376900365699458040994560645785821523521789778680460254901667660197703142101881183647049196145477186779176493154304454271522084915590056355621263341765278245623458144774962693902719383845388111146238794419000000997135791032816341148731212806111202685346454428530308007742850193524490622630256162854318159495279568969133258010363061298853623394482241378036483626497792710405547424534073064817498523275908417648632686710170393868723463284660162022866890676942019308729206468983344111608548198384157932944162669213233127674333747077910844786728567531753563591239661316681635962351853446550677918753743365223522476516650118461717880469189637507917640464884528890434546649201450187614730138538232283513115473230358107060835541776429876347564169016182398690931967607545434600796368963870668570299902098433706663767103386136788658090126378498540521906862587432083535354909730646391377336289513698075557914675951327386406883440307747423096575878133210467404071130308695619580868898066759647257022488240887281258167766760953611531042749464033614655542098233602146727362996451949784331360415794471550490922705199985739365382067722898751517945548973591468238375092773186589845489762144191213045759776167534154551653953457056047407130622099929944382254601290162027642927766189700210989991261573925275533934685447588723475016161791557900679232609066410908372713751538213729724118877171775775903551363220528753715637227507327372144730882243759195412861303190753848119680761938753161670229172105400543224403009725374630943174375993046630101519517808589033118218680219231172241083145523623088897573958729672510649425030623375681738108381080265091298468458689819394831731286451796037250596975280631077953758287436897267937791542047358992441685014427523025496164726591777787666152193714028583221887426864801698345722803841117136528561855972475347803043485619436429775214041281106642121439128529177057671202463163391512576009161261283121849117803320501728917405423698978024617223744255553615541963908286691718117122407089317626584477564701698858756917488172150767537643937412466575770332160441874807506283282272284833633901972795218885395569376704270598343825183312196019174896584561785050065580518355791729198622834942380336517004003734585636176214800211819852752711514403900392695086459073851241771403604252237173376577810767715389578824898892520710605513089697617147147456809708758558688321870537103801897411805853741780316101971193997553365425828464642247328856262098449141521943829719220532587545321528379032368386063190162340415071316755276507423071324789183501167816308678007975622787476155811738103153313948221204576976896006248424310787680800533978751015603583826086913545597242142525546605953340831478205105414448815231057337985499723359311221515283144490234406619333613718869258283813160996972788754914070723544226230269784482948354091941913802280480560483330893064687781527336395019044019127501939373340845125316969707408559700289450790446724748772461348280793951358250471955334821593008349565634307699485605251478101990398326862977304615844118920906227118993752941350458084296798763381080521083352707874699046049131013931104646835783812034428220127013810760622701629339052839512418564160557587235540035660733428511539870016510145512882103916636735155366886319738441171477803868572647842419441308424890330268269763706858351863476332178804324638622175082594542916780077321760624833495398661196557825818000649950178306346531127800310239134440834210452814254969217339599972221222521755658887999809655135542858455112995802804363220505431611042046718965509801484930139486775223444703412904285341447953756587933392357658875364079437181419109175912513578609433147419667057388704720263988028996046436976828044581733223735665752168242189951153118925336070797668652772305638377120032124888518977645792533253087159739083875803926888169438576822002558476071101210400848667520235403491442931786815296226025673321358619290906751502122551734932148601637873036707049166045120209666847528770559242261287699427354435248202134366907480949759007461067516175758943148533969285656724930602492969343917809294244095907306232726576405517994552090070064209630102595499004485080127480513163634561276859515614234642369239694896648013832118493050004526739405376416392270116409078713741061109382830020482786970891168206447462995437643965636703936292050187828277119797410889363376759038919800838546827866709628335470054267149011021180158603273718091890711869224723612440055837439379742326703096236094306284471119745888223300774560539018946924514035636024678049777700382484223491449258502603144352541069697923603826330919065426486572353053134296710671422452959569587230767558216592011691762349896596973831840603540336532485906457990772334975278498267058531188941069622142188746861617037279585805126436273771720467969446625681566411621803165323427473478074724036120638997340988583374637099055208628468544243655567898468674721581829264510235250320003556574220165879405665682489451755359315626691025342710252382438911216969159925392926727488090064746316549415148515791140848933089800146566700324249200997367310643996160081219589101367664504504955162334497484653330472395967315031747638529286957365673718790467739275342199632289429143921729667346093541741018786663568295463959917332613225831479484695164278435410320960614201090204362439709553308768277240087942972704914869659421244136168953207761717051341584192028180259359665399673232767504302628647648057224685301369324504939658659591633575398479138693620602605080225309022337796701553622305906975481493464804659510385559858423235264261323726823780220378784096704895653658076977237148471301704522072586279953117015465831145921892804452902327126790377974614545767144807815710844426598023011564666959323696127170800426850566648370338804433664058159599697444913703234232648758884657968880858886913688604479420310101020363374791938560017804401125115961626427392584408603501440814329220195097963625460369846729172578074718324596020413123252211362506001218880674348564352012113218173673917585597960461269324614608567923699430778543054112496737828119659237787116838547822440382947242945744823205037387382854469010556021884640955959026824916297800558978709469315366526311278217560150126513305933602481220232801912046839872520140890575045826747833790434986977445560176053062759688312391562999371994334974428050701029177324691964177889093180251384088374817276584154020306015841615500473638193213775554992327652766796733716733421492063111988899470128109027904223637727903254445466339659857650070011647537493517092403849301090159087805527840336380674831618390142721594618351505513990513637645543674240544718371976739219208025515785348645461332158174483125964268771111915070637414689023778639706411271545263145805830343713397500891108596276105237494678966006437436266580569325221972024282490342105463647196128298743284653299199733242066836364200947181974133114219401873306964013715577828835222521699873152076038665263689653161958372341092280190236696864161079004967207289402215563679757651054523966128443411445135682754161950354830860651977425417537444078863648757065790738728071469407361562762508090848734065414711499055309886775158205782686820970383245679186072475516370712124188115955983426143835392919117871542606507105233353992721222039484275827632943218089958146406348205543289739133658707932444195743685487670149475173705995427379819148966322631927064107572052989901640056028477158607647545154615380570494033604982331158217187378176237762909237450693049642037944518208597023358050416307718266107285392984389203214928220766790548819888865845212181100372745801995655559331568442037129610746956253689597829527280209037728170596485193965535340321755662147661062442112252664327868995088827557024446325298155969410181098264599198628114896867033707270005925355248734328688195913020632099473431086141868416110451723990253596399297051497526340819371452382859818555566254861177135469767324846991209804298364997496674360787835479832007459851594171662914869878473144934823967114723348563362752991085685319271955446316174305517740382426822006355129266702202087378552758448083260862211810583634547381267622290515963674463920089170137704680614227306384080562527949232428443713360474509357681008855709495098027279588085506944253503734631871988702292397295518282414401426541110516961024902679155474677842909140175413306103253171269432205458534266636642867638200595429125128788278869497853209699719863670711180755845901399402073142902118130911607695101599248141475312159966167863281606606304675554697528769604987226988980063925214570209503091836375843497490503125464857916497931082416936052593806806292463674800005650154030111633543660322785824463879276727979247964542057644012981326321141586794615054830491528242200747011425673704888515432304764835267572259395672776922902343117544830524655088655170015818657186110675830071947802693269830735476118111057712127498299071708159553712539320401114648437668002141012007827503109384911097408018223665799963108660606644567691331249397086431860575203450613825800425476187104962986744132353604605213870216579478470932066883619601781378446970909998964593029644891045724713070505418743678216185615059851099078278465412175538017532810849404702736962564355343560487597835737373308718757898073519694544105856477788447765173018650342570931488170019138224355732229572167401099504049045604702676134588712505613752456308559698024036514228348585208205365549471281184149113439265334633410924608966227292498046247758790141921178022699196363826823372482820666380936832315450145194500624248397392782534125308841215621337708389644009962016086147667339962277853755198902582213112005883289451877434090529454740842128814681230281803306495690428490686763069588595076415443614457470217017311196428390238409873601971888629301159083571788246166291251983433172396550415666791427541544278926195643992265436337197948790720161229524425675772735362851360282126426452335797150411330952343638444787960103147060002770798207323284585034287300756304786844749663449714709240180322700667263852038871007115717188930684329485235692296735593279267293401270598493236904415307567368880743325655441498774814997209483703446104010672596294888612683097548202706557625873023008083349897579638743079211721241000186752348017080303576370106375306890493624519320627812885520269972684172048980688086802425586497328908516257448297539536465984315382882070622702679497584801753373266865089596228654429642054106857011213063814664868085073987924112341440631960260378261980879189128054962970644946246928393642908858460383534929071091927328996414543659406322910804279768630333903379339090975080620629198957631508816239406315249787546287561257039077655233531882226510450030851977609237105093679888575769526035578767450217863126062210256102826437067599202309456430412553429711370953504003106601807638531193595318485776994252417721001158374272316319462273293384925609661339657222238239296062569062050895171117562112920871114045598362199153028314493011661965776400588647109219984103989171846781056603446619336842278061730062223491290907902354918788583329393016116127687254318571884293571328701156557094004692641118365251704006137989780181167716231203386942818859203313635031812987731157713118042428824170457207561378702920235300665502209656347656068446034745760914716336454305845949450657931894266066514617366774603667412062234804226566598360516706184931479466613231921293647150328875229793300002902564525606521915250915572294708666109796085766763310737308735707849616019395286581732019111272552329507062440400732073708541683481841371887248707114354097425539709185898922782212108419386271289071908893493579266421431318123016919329499585658671452064669778844839302817791387222275504490432399020648197004365594687797778033391089755802891862885302107096278926402161958997929363157978612930844193930513482440082395329886272415880069336950353705326552892833021012046852373467871740583617093715050509334278185428257682821782212380925082655330848013068205125987697345208011919064680219792925000522846255747158674320503644921042863388714188857296825420513242505416599262834207773665990218647730492479273285436294397503310246892673062039864336705404841726757094180552078957499717353532076548623170091334721643368045260111747591392159048030765788039964264042455315113739472370900006083712519722148518409040640261177278654817075418187880836307395121741149669430908156639753869764212726442190686890645306276711811471277940198349669336857689428227192660421293353991332187793627590228638817426446670146336281699387792302495513636812237696512140875396800061435146308053831209742259751362920678864835242297013213606260301811242579771624279903378066299558827829900348026431616197802363817441924810749766386014049253295885972054382741926795121539709398343158488830535323048647516877935375776410567832594510468698599453544378710259287461211082626291930964023098462234919377852462961237825007327836297734786803074865149287595051869047552287296193158516609135567912381240584352827717046087810602080657357119566117568937895784506777563041221300265317892064460894008608667830281690619173725173840311584620250943045395360103110188702605565484725974696076691482071991863557067947221227788112967381662394267865782329071794850310243869072629645675274146970514240179981761620977918132126112227126435800637153023875027399581401357864073390587021165905240841861998802788709790547433132161914667310625765675422078258681622257595091702443727443040973438153642078259967465486375404178124387108536537685182396797356584145692679864314287703862228140245849407369205407261429335214683278310299122696623431168321539982831032575483544922594460812723239966886213524637185670223867091392954328937946552896831126915876553929332054541608339471644152476894465001576104985599144692768831236244286964056623827602155281111599269987530577448913595643952201637284719018857544755743678216957835627659937379169779926002359232730971935166900559305133005523759973052942083405202035514683521058255296811705551346145853024504432830269307416626257411819034424652088463032697835959726759552779014077180286644328451526480312961909384195325551158678659508754144109945005267502853135639608964185338515766108806150478813132142506378630975085421898256307505895645633311716977103430995242818682822998068963605703297367885963894540830131607192002467219154498304529131936858954475595033961958219653903585037606403548999297656024146694806350921752753243525127419411689378017127052903664383561777557388670945902379804630521310363895891620033659587670831727086227765551547030688447783799023341757987012449493417421516781112151460694473524691276864041535447253526069367931608694255157644472925787211729820716271915933971887310791414980378461760237124250944479248833846306414616076119729181275897876786790899948475403108255525910351315155974974320603850558897809889743280289070535073438144805942700598354572508636231999255149667246596602401812181948992269391555980298075520987616506068741208152045113021681129854564028428946251480322370741824494706183956688417978108766653368541190342506485017634175624376153526269537564956469552060219481655004649778068868194281100625429562946077508018137052614153684591933290469324705323187045809058929705322773347146579257680397712177930138573387595151310066451798950970755868032624633674105651570720887342887951972485635585387807120264409048210667392646453475855709356888319225991920914754730304583860085959913638852834835416605250492001917641910220443288863327604027993601595727933025159344941619228665672787867153799314150694418008480500346891635671492059956814011225288592597682234098514966762681624407288276162650978583398393323463627249722127719913233641440072314682549644108514293649058047117850684353918171379905830244511002288215325910517540041743129450949285749971468368227024965930989533319190498115801895589629003424845527737613870840349077889896410413208675721878438279412236267707868241510363993137513032274721548249686610666853301591933331224476862958540276604576025788348956876124194506868193461843420562818659089594742552295924277446099819508460662919900551482849266453908276222873131929350902691498748412756268443239275122669273404881819755174109747339509762739212440583645004041076091748351315080176743036404437252401900542186984705634596730269702221971651057924318918210259021380856765543812938217219458846362438555090436386685768893346011783953036395578505103678402664118961504989662430350378458016780258175534021449086617808784931391366805659923500390807125590736570694463178621978868673932125254627600260036568886338204727725347460747645400304940993402886521192528176234971403322826770646765527137106614424461278260292191080170590686668701575048370955801966242138594690007811024995601901636555813921247413047754800787936671728321930223212863554716152533763423693454084841048916384746571181456261596170283164597981977676882627758416432970852044592896108741890094145811249579737735530238028522273678047094618614691069044315383555776332463935052486038542663599360345397615119714347888386060515602660155403975641927244876162698072282321151513740220491286876444260447757234491297354965076366198903562993674534741994871696460266466481768367476865030605744077772278953312509823763031631520511642206091844223256840223268781277668971713440991532233764396473029646151822104809991551822283954679448118446162593943282026671584711117515926388862325157997885877120877916613951101314340003869720155044379620842263247103311449986758192302087252669057228314221592371458650157187404778273676554006508774015637975587288764372366126636503178670200585949546033833161346856831094960127388330769731966178739794564340789057573095528513457029925477232110283480939027458391488522631290889998511196111808519373970090640155412970795195806589755887170907884922649302888518507921368226328588245836344204612849129259240035527508683558778249413765482717705534648086750640722707804320866343782412259180524015735374720471534436137303179805786270302161566099410082961822723597426221382550289517633900534984710424344879645728154294908682861528304342492586236008263045687036346710171292782874509096636606357778566978889621326709458324320653733290442819371047908572982544812978551725452083741526371193239323959279320274150950393427635406033665482752538724481185329348885487900902752374326398621882781065829355402065725155798976697535053217245711064495113922198044030673751955855758849119028426105958424186131590527203047322495530081142418801781367017478252321808874894784243122282157165048102208335125391812071498688887927203122669295932367488384145022788752410821718211636131610586322336103299051960236931819304529000096163244023223994228051499384559849896335259387755215417147530872861164539133793934293321640149273730931968627560558167625408724769329891566838279379187042183031989594097662781274070992750075294592440539481970379275217042883431362430297985792376137274975229923978173512394397076761822341121810374570034751465040284569875032594134544471518174949252945028831985258380342040288281574424915801851788082838199503441035905985171718750056307633688753509115990401936804010642972383665662837484252590599675219670406374884717555651682959627882688971318682912274090006612286365323253489741189368132977816388537721599209294732358842802750903406439811173713186006613731713088847049825487419304241215253041091105807680948474065544124215288168196886605753430833376120906105528874941935545330176041265798056308286432231271373529732631331201828932681921473826786534320705973584361342816187238278358335157104405611995087930449801851241753845916356205995868011083887126959961791872905897572141566982434060425811240571987842632835982712983992052665999809353078973438463926866095748055257495696763773253072151995530203873100558984543926069284124587050691564430278309976379511845360608024813855352314863460647630882119975102342977713944542679453871295941216327637825332187780098891986134799149405827751494986450434069092875513808205351042842918238877789298908407764021623784671938257124689116042839483279877235746551212312840786352573874244765226899299579133266006490488459206118701388947276527992432103297017926902527063281673558567406113031621595106913347190508351210927016251673389407849682005898695114589845877763262260044786186361390301414498869355817217994898990780151100589087421994056341945256580741927816175275369898584894454835942499197907734348387160252768245802201271777934922161381436346829995290164678001373124898475552114155932486851838529337089869493545554106108998605671772411723125248296663089374943366556208619453635608417499904519910105420346372895964144485087830186936857362695831953523287495193102340685623847380330452370926484532009319887666405550188224997125642711118096878887004963153595183651282365150986628067266318457157246117635713165849173486685404673068554033177526873942228518835773404857559300441122354815639625976850799311697915919678423116559172812475894914974394275949150641158813739794955416791728489927814213670072620748753239028158025807941132131884092906158621370470028677136994022177603516641707781944582755019824355777148640979490675450756052575418802172823802793120500393550395292103980764463225115926997714060488045582931361918201613145249502749512837017248862722503869027139824628750655359177075385601628181875603317077266401530221268153100354652620341016449800768466538225595802659974584163448918969891196209918336400290069468589714397756828381975032135592733522073491428802573448355170991980939174077208368418338012011079874957363239082483768382470018634181634901956297516083079978319448827375557205500923103267160480860934341882795240305853467869092651661720658350389497436053016440683923108487571307617246982290702183383589095135704952141667923717172159913485906081966931794997876930003055539716353360219085777908348235811401712740957543139957056219245093390826202742672888478079578758717916603340242577534426577430190246298368898590597012259869195419231580793960925318592857451471666709929939042370339959038686541400369243976440099264798745345738162339019909095876285142231234483525885364604319251672994694716092508981173313194298208665617976769491732374169916209707333707511868522367702151857703295143139847918223487938159453436714881032957151120938509198307050956321408825621099955141031361831288545359961700965822959981744470801078524987818106448556119449159951339473747806580286821948510809868997225990327049544659779700985699653407348953456167212001004793919392169052734642023014908530408486861427680575978867337580027066107412930642461633663141996853665757843157678223190920719488681338070477412451118417586492403804537980556232798747954763562306005583661185700309363681753100262456986312926441688734515771432464984569379687119597758949072108674704032452772930045009040529077947492362562069412877540526200369571116156575254721701625884518058777298550156287706054738582026818911248662448803244903445294685140278240475866715373484275713156590230365122816865274458985607498225140735592415273274327449672925584279923067712283474543768878274473786985713385885995517279071561040341772403247794593724594523604855958773491669562577545683545073782286517651409233296759063239879322661443697852545809377296757842294962463982099479098768588929271969197610764146085313301939933470924695791578203954396369158469004316693316016020203385106077999175826891929854022004446689079982967172038532567233608231661568999217561948147656811141408810937047945699817686624225549134714563295724379530046663149680525660196794556095924475014265431478601781770939735669707781332521241452027096959730002723924764818039396277927166142817360405192111793957712634048857856290159229514450557611736842186701458190058236385654203623057839804447631086046002311297727612434654251271880276358476583354334020301884793672684446489820703877755522189442510733902537358652848723986471390350543983359962218780637750638255164006743444990805121102752185474707192009923637795906864659581953174972764334602250873917753915557684966386084980476012807909276920632621407348970439516601062153216924247470630513421733406089127825761694163644686397186723196527850196575874013747755965544231672878569750069157990663679927066744831513065544026509997813176297305310483217188527689654020301428517433270773327371352773387249094787251996164326583714108806971444392303245292692589876993147715645916483653241227522518196307056404007012100654463760396560174138509818576027793175107922018005139966823899415225015940272253415679445343417611985821728181237383099844842636444279145488172506531577974682934954831677168530266890799990761637480171754114525845137822734692542461300763589919726334189089496664814377309720596640923348859701427850498261942136721791801793252129199705160600234214632442748857414603017790763186534065234693197323437994571329912811296350750170861535460378227663048751943257888515660558946409252380545418154285311567773362090493456874692786710174711166473188284218823240494713521796229897577736806874535641209363846777828969168207585518793434706944474439988599696171331513649036150363095118103168740496698133751756108648773255714383585677649313524006176920908218788381973154756570391579438717605904222178559153969615086465524250352966814808474263475647775457321628734374661562211548883401481138082041729297245383715196594962238359783017593731793162666449252673689479558174230938659435815565724996132089077339858117974142689790049298700507460826881151506492661061030305854143978597208042766197635461523821329057833260822049431011623628782606196992826023586854958666011495529159759796621117670245285602581567058346962307167488892186119876353040422707159372732046567511810650571946931000873720334772469164392625753043214588329972359731221577435032805069467058084253289006628213747085976173358434730164080907511105484937805945981481741981168746367007247472446296916518320043819498867438594309243612848145386966876451495263115591735441305401076048306206702424021128445830354701835178517347211349832734301220526772198697052345222212023919107007630690038631484421529001128675163809560232366389750361092597415095185191513459190799559383711865727711950822088049231990451121449221865866366702054809638802383051747916936489125431211623637470357608342724713806049563622075281135664300146001930060930464681257813746632806653662028658390236672984616411047021074393026060141700585842167842909345283290987258405378034369912332986999641287367331978151975846539203950870854946726931959212118644650535623776907176237828495117201296545614090716146252877115530122646521781965687167528511302878078125840988785181572550929283184225774253818015680588728016064049878047008472946351004922983926018133406462256036773246172860081080715269354300281259869064396285023270505517538209286859144080804890341651051907613965087025686719561633044896531440994081723077974447558494941743072654883707380947097355200132550973335163181402731361653024674719156416195901699880161741149719907150970901939946422700238154054659202410443081826203028620650845386855974969738127465054948416799393301462016319708069036037861357166017998007645708071979572698575492233322440540279774444918733133290349993475722831801730921488086281377685599067660025736595166544888535110702017553566463725748136262792953056492879056007557246957975657212634783374002761655102921283859813037873711099697505169285676470182087483235716523644161302889555497155698164031834178037292153126271582458110141088214310877710069344177175805181494341352403929930556359575983433248198942742892970498779021063509792332032974413193115632484265694838518191010278317079898283228638095466365946983657072670806276039734053076561183118489549238877130969163369351949259482027817497342194694524739942414242633407354436450121881148520108485799182298192904929366471190516321690670447887336593216279144430595760757948720585888937947864884995985085518364131249036011836408685810360230941904585558142629659361478488776595930904184578761509833281432280106399546882577446369971719384967144435375839377643496177805336946678726548017761477238073992839540878966561001584097137671501696199578273440580426452590834562749395513356244608505955844984446714924115546314009367719469501186748930915827965978650076678351403931911433225439634095584241918291994625300260496501451703358518800625218265076404720104647478248384216368461382733464477447325202537360651860405365544433026028620913030924863438235039316534901666148227753857315561050909385222060473217312869811501394357482773215031828632729940670111301828380456811188529985064996066509409396922373104936380650386418451129810157994943928037041679153529139040517232035868444094226500242906881027127396320457059765836129712448960588349609884247744768036629182110744011879220806323061755140781182069161579144814460903364962135289759349246879964982038732897784813081382752261233604625668885962009766729531871224348377285906865283351955414480533636566389011760221102900422644991566472971835852157641154124054422912178789331421691281325667384403639225839735668738533294662843222936209485952366104448523129965752202311071926982972244276390761904095196271905472343598061254328794099895780237092216274359245828019177754515280953413442223567514056131947502593806971644547909362021890693350485200123963393350979364819254510871023845719037532513578784809045974490235500502848095721417884521995256932936923072683504057607832138434214011987159560812983242133926500295377410342057494927535974347066792624551497614418267947441045768123885574740040284823080863602533650885970400980006302558006436013418161688297020485761039890168791679021853932987007322600970284472033164800115934413818904683682707487857672640251008450000547961281884024596880731956587700341944757602581544487911369657251899692335187464339715101156374258198879729304459288086852235606702148733232620704180788832282778665098604212834169938388424001785241073635941060663364971803100495093380448247401196964885076698450330265404390843248050142450582267238446147297565324823484576843899898354356215191521100658611740088761014375015656863210427389938195186561819108440223954692876163600805306085236569940522913938812138971836767999258658304193856545210517181744626947311672796897823228438165181596820607310775589639994702086450343395600054517378608847332960590080951786047380793203505057682573525624272861333310671275792327379616482221405081394907847585742589964178463272204825862165687741142844355247620212920855087671741290556369436556907182872718156670171937246808107445322552844752944808596175379048204657865108371462217509721418030252766789857823506784307613091110208642703763569899696826861533788076050932319044532382386078494920144191656917174059840914545479585146521077497200646245832303783420473359471722678418027193183216881495118107730683527866427586928353051264630006215927407818132840484343288630635875996200138806920069030013372378540406686551039693542284107524658261716727371178985713794430372859208779475460647811144773689367000958968665364171489305454007073387265708508736060859376117750384622579738937680810063498478587080699143709523732220151312804125185000440307807806206644068772445147335409254335741453704124923719248917175980997507637655934712550245099330128648789210552923937212407140864968931734943565130796853099420396311815053167075845037606610638552750515203612652879657996393087115198838751803378649914823392261078355708340117878510674350206919776550801920508296651548986269742540014207065502926293478576462243792156094568270776545451889388175252310403342482146737481968266464203202504600543146442220583114999761598050047576171624600213993997365799865609478021610889065926790228025461540018475325946488442174483099924982485244056728101983430023570956328560310774957663084386034397429903411411829266287492487122690729697857056515679086199053581478916301077749181338226679959208310458209911025757452070445416662493682558131182734592505774228049530173762150911982452479532370115753330932262065544442766427773272600026644399513573257097164559506948465821040396339280253697614174320303165284768486506107096044682911696595865616332076156550826988675969188739693675029511850130842333389490086435185881712421906191472379029273028815393980812060148118299679341609912821139351804922815482069011819116264241804572437648347358125741668061960894095488772933614413965908179178405443248362041833863652822078161378980818914092812809834402185707189108484357425335939072446193936527657623447085363046821623510398431174872008817549667154970497771952901523086353501664077271226213332004582323802946505209467016787329764419062121089129011556558121515226764567232473584220849049772033151184614756322667667032478592047789948326941710028612519653125245111571330972087358528950100805221460606874350531132688411827360130050690764960690105420780532481868434773278812935795246310044582452248450103776334994714634201388165820472711222622511878502206349202049834854703626383938712154918791939458635104155816483442202821661639690495402374057979925872409452840087186405444250159507036399646657946092718296881021488611388842503651843464056201741086662849701934601663745875612706464784807375935836175554622151111109653704152518152492785676008584514315842329673509981428263751340925952551573417893876483780391613699312407212200117002235805436735118298809103131663922386598023769904499976057846774411211272323064153565383841842319598611412592528078073869473165096550353630994124686033687724239368382907466599481742493829175394384050261423112041367208583453450671151589711079888704958634269667925347697608652971063351360396780860462761921400394736605980335543982359830416072159180201495008141360176169175566480356665839874964469291624013027824234843022947104303836727345589927212086066586393217198151034657520897123973418090813555061189782560744154064210846086048754531846215063608610600774961519444955998273014442335865293040452059274668282797737950746313470981101946631137627274844565849858427107964481505144575260027732475022513463973861186840527793836088740580589075082017717470575255077185216095503512275484994555443885087215515159668153856153075162983663473166017496572730708257176643239719675954366568197828708171082208050329617587004651415531847560976013478135553837189365669442566544580135538086231174355338204492126145880749060254765238011182342092710581494741356015586619548384892838033054132177489984993102599592672469776088359372767121025691750167281929195321815862133003645084299065763875363819296930619885974167402434574955776055498630289528473391259645932667820874524519016473277299361600679341046657566581629775305630811649293277211430600626285444601041697373113603832010104970739151576301162092276715185799000273226856239732394906199810996775453220703320782497091138666531864263192797324571891358171850583948063782464872118983424611258880272468478308495118775667445367193319008449090429743061189603511856271236443625538560186489207330971532660525842174338555287425634316851799789007991270141186923335071177027556463852981580550113589893479686110732720090094726236538913452049456783404586600254648575091016486021724126139509388651537450997956688878969336826128663745688613040511599997686142509033432617032716006704947741752132007389618767804054653299494431347345606624001936200550013115656506678112446338827365842034125835608352562507593579302256991547296454469837990598260033565766539433837866666924352551434036413602779651321552973500927107653963522673463319681718937586090788072959685244063756138140382570763780731407607399944526493691678953785246015211454020568625543722414549497557668807207971510612995611855805116849558718154874930905249074293523354936138059015012222009821577875318213315349351171952368673756375012316838709383057389850197124260748512440650622847006998133384737695767824438138166405593207740512287891777831102362740920916041091182274398320107221108157688024772483995882941254324942120067359872752139749377458846182588995842991397420063469583079056600587356642582526452976918753303388268821994577264258412874279544831563153316137749577891309395951577073514199000925642270010242201785705331050280342327525050126119659284412565856392060396430058663772841498270283871890498679730115663898476285347017407110765611105534268527476872219856735258856433696451433462756194709906637759007020598129847451774728444817001858838346876002691657581691615833936330098297768971676152526566365314297378732850764911815140525473289838883636908636196949341466426882992441357417322931065855130825470635281262291280744265790456052291480890695084930633127857287506486180292118673391711140379291928192625939927973593782593996979297341793929823981609847426610476802964316097564770424649568403396057642791604415874216011544358559053454476585448952274315933308166954849685918087145739871382303438777668516187259759393164724276103255782542847306431575589185813776979877696646337684647922869932046250414273499611529835905263132570465047394611409180709614100534939163583232633555239110148301034693511175214323406704284282884045146669324412142721434540575489363330862814198090009739976328321858853503913075193437175076194344327267093047088406125958465762725166467235366116758723813371231066150566418884089953591178974054886576464430148848477849693532074020235286438368794803073085899923845763470019040999523674983804641153505678535719598184223679038460173396967588439268921954253258235426596658498637011858855862355309055845679121029476075781362975668289400602416234426787786352000256996115085742767572185964970972836765298995098969743539416338638690298459066947224572987435715348182362050975525040505447811205738086171664802844182674852264071160556607972850161570972915447274024745170027719433677202511914354785057409867932150995347581981451301170009183205044232555807081135991073852661421328368316347823173888101463588523003025773421962940357339142573878903881202555411420625864150816442782212207730047974197174372987543678608724881009588641942838226953530566553985283429980633985494602209828585489301327017315448261648010978908820421182621254989595221641479600288390483239588393535859829647532412921725278522107090564476696785549587258575074515904104298690221837853061623937180794861196681346777983829077940790395608182757116745575408037417542284213713501697939250433822332617335586482435270541042932246572157857328488855167339517144207802941884228443522034496404996724448169969254679502809121055850701867924369412533008485940990888749557309545833368825473225791965900705007299834223872532090241789981542878319640284522289730663105690140830688341578971019299477692943136360994074564338978283660439886309954742324070280264394730562979535644780426693273190614603396631621865180852074570907978527485596120911713718581693572510031319632934744245430721988719320949793644924877685722635067106560071696930381991289029977402752239336787965632365132244195423763569943881097778591395460565706686371873107384571983470648674203739896422963267009904440626064863969370533754781828249470148747050026274288451133620827360607009933644095657898873387767523345167347996852093854612746580685578477751871732110021156604045125892724117981930012373627221698436968323073649921701842490344395176307118122027142066561553784981086427226509983427191700208575703585368246949142653420053435070561395392189258591609517548076502616704579459693973101626909959649674981626760915528734736596430315649582386777871844637678518389410099936188037243511612773107726388656204191825302673023193434796464701381634455675018089380930263626618759545050988048915609942893501981612903969580300133788107691705145625237362758075847080911662061264707664907158299739972481240383551521031302899576948398922977132653210212871802355951130412589216311865207543722655928270028680600834473902707098613728475325878420011481927261568635883904664690990534080126728699816000841928237685092633564104560303746031134849525450270048053833915634470820191112803325428540435934962039034602158644715148656951605741309593889584384359488437280476970447861214711071723875194665489814772742741372804802534991074966527195819595052241076450246468474337023379107466520284339519223596599954073016458377485185123309954189775887758246267720754058450586993708240696423747943110774306789989534950388627331316667776872745017553027984641894372220094223696614921994917071761303641332993975596955908749711368680850605048565923484920013047385914762167889503940802956289782959617551465921223437104811446295116806173771433677568885052257792173589461891211043028391928174027511795495807116815558678778286333706946144142242821277104982418111522164683952971551895727630026790348761624767584327456431451532604632072834263810653458171199849831776426575422850360940251450124656700579632336180511821534480687659621695555548285596557284691159927545039413969532200457653592723613730610332560585680721423360181399698142439928096683261825892755764708827076053409478742109858056754499092250768579851465650377151211390806984985669695605448218579193051355546656326765986839653735376602151548843118485589072045700145792999221496769122443838880952893387884160950085285730587033050440531980348372694421364958964736235710316132739004650956692669712364859242887216239092779708360009749360156575276336091941071832559287858239319723382065973303675835953412851707285900404859637180362070714174903529264506862550182189849718533933337268339005304207558523984573091506895014134931024016110801209293229130153048956577523640346367502266854775887174863959433698444478742579656679044742786764272827003828338408027955563491461476266583746991502250817447500942635595721302733982696645192668728893667231651902506428349884172462944059569132894279307182799638971161816423368073685764406495524198102625898738711642796079781897812269857388122235477533102706880887174983821390966182062577460595548380876368465750922970258611859109730537247299220199917790671103945934195555802647893593110343102888342049551062388232333238507764516118959030521609428106419450729225746651321137372789718306450662564229428775885779165263005228289741857806969486973569936048917445603679473882043767766369748600701341211757371157060757892454361585171226936103029779980742907573866941787573132126862102928812628196135558423610367798927418394921233069959666505333609242928769135185985585391105187492390772482483703478380448122388483798653944923220472783397305004820575877937717564314496041182001079526316386766075080273707184145732659319312024738637214014055086384167250483986165380876735329605472562036623417578114104240248408724922030902037642131559480166664572029831369338284292028302124576650399857234595873433837796851094225225258763145640828232195725953872883146891176318702679782979343871787407579431008785527910311106518829185092625635926565273639057765824719823005401215620185478768655151184807117155401243498462781427936221593019749927257107155975667200648675652554560786327532159213396009087536320051303215191263887406333629444335587800917131992139195541074791365765726996238420261193508551444085829863548753187520155461817016865508896833397291209345190070580019378527755961591112900977390906897381794451875813627051529841730048116115865937843026603356025212155690618014540655848029821806234955443338167452032014332530403071943289051259266441614592907949558761894367245785419183570517633323669281476825918436951449502772994956846061124369210663850030146727240691877065641859607540998690664123366471305892131700350930190878278644483910811652242359238344068630779088978257452250745965473302276812716268507040410666988230493069736095745671514728066979924617707866437578700616854695784469016427986520891535611659446235648661206045538448104356724990347777109341255603783106634533246839395498518506183406138274294453444687248370008188669520856917165475583722673288625750438692344142375588090335951045325590776793261592840279340039181346176527424420064320779883868635658024519382275504371804960420332361904744000616464855493995086510285976451222927256253852963214940929393599785891357988350630467568033943904951197140489810060746204784097342262094299439341216672457013452789643576127210065057158455297672075396242016964959927215561639049134330353525116739865359276746266500669246269526617212294824334959026680661488164070364908945302465445015530831980022382729085070146117253249901062750733545762739996853123073120426314302336741470837761052348985518645803430103226975083087361134510511264562511763019950016154989292421203564145277786317034126324042674713511073487430884032708092238881880907145465278948644197625759983619468545315938487394810084018779676431583315745915828569731617897626160462356880449614617639033448170251655922616412925077197455615852347054571774219328615706395700293406396529873018358264375014991603255045276328191163250174559362723177626191911665000815795455647931364375259564371676154367001201403342969011902524231856968156172970205807540720854509824520170932207437059158665592524019483311929188246586268869747615820025003649106438115456184178253304083288871524276421726948545293022231882213920506087295739759498387949326830715878110237859600917436789761800566316254273273647547928913407957421463242109779889830777887346429291112407550941723597445732316743796607867215765081686181944780320098372186454671852426729694206132765296554950686399034994838349240189785181234844447503116013142671406491975644141673407317809854748639869272851986788428912552213246988107995970887892094468190263899219518112884851278450786422493096547563170651436639798598427913803766697417599144455701270433291742696535102177780217390307128577598033337050569117346210528599063467575894582569042613267842695341404707422360131259374116578397886916540738561561085075392019564777740103598054065504597509045134249329113766422835865234841393446871781274700135357952748526178399744588238371255521781878282700996273307853676836342620353266215714672857032813535167103968719203626465210160292251553097947814123114530490903403172610084523456567029357890062008001575554878998313216625870117946894827570248524346768819241735445123181697692263705840355773476731502298111018119953242021994925256598489442697719971266351995577666427801092585178264749702866766694563774615335885842544123116633668741459048169091706293719411411534000086088442837633225122803359362266680927162963654747319154531301443643372875711978076684005719106907209626961052254263539015577883822758060276223245929355350938153782127314338365218441050322182717826187934473203300964303422034653709774151862435813853541669091829547724632658289160137874578845176462765417700675549334335774466061090842692639196535474889628150771819695635723295681880842214266541480253464977556871342623545150446017701359514201879292935674819532430851973262435611009573213704191644859482088250998552545514057954498323456581030917058324933240514260273751094615015262327963538641612553276608070428095191780173784191786279190030871762631946562045137590722111641680515227787914593076056184196616779460230851813267678206774415914895818203312136224515451274821326466823192747739713296255450698019829894267754466116324254500487158297538122881437421746465151536563503437853955325258522240713914033072795347796014899950174421039780845419648946738495469380959738315546614040640338810255213649999407761403777329373799855694248740149330244762205834840860238218309027972776054689897724846597364363851188391395173529561845944082003449409276902458086646386450530604828841084459032272363909116579846847212893791244519004423922101600049397268290983021398624490745808627136372072111128197682700485117987276939496464534901582382709187252288120807628873141585550784959983756637488673324569384619639941046673598162650442262352320468344854026954574410795279060621624679717592229347701365657206460046600736747669051501522548768404623222538316221153955647966748727169263377620122597471361082781381755089341832400200686761228967071236905664693249311515647362158346860597682492385183907311318223194787719573885371696033091378507657323781963049669794999265418275768972779529112893347657253083721563588656165579593375340970822420292117248444076591430103247863190633162677180215126083937054256684081143169976729200211231136780968800727057346660383972293644914257635642050825048833060162304828735404707368753498329026765986884616304597479370620387170565403524494937183421321619913641579859341788864475815408297363655502638874760995345541062832498693831782431529630922108820734096504563770653484460674896624240461607646059914003834343657142477990280514227363066250718999614881975057585130293574768655047329019238496207134668887497689532898821379272441012156723336063130560519916415427388730070407126690562656612091783381665885041613063447387679462912699115726958233722751856385631095930231866976088026199362795374721067504945796944017338697960967499110346145381903508615078791242208614270509728443808534016349713359204514353152094307445207086667967683793608014314147451412775993658530210937695634204939418892032658206196673003233780143644975766435436306136174777168799049896250706024386575532442925902172524391923075228966028672689845630215507283513378657401620326765600542356926583295600888741931888909686428395898343532746709905854975108540966309086709514389099795951611258371148982293397478563443018385351160217963376022551379707131927398865034675426520626298582750054665100102050369113638467157317772459780277188253157453267390010225301614936467450445344274380225120372741385300985247714041205593630040124886593949455431871500887813640836139271844583333450155164088696208812616588063320726555748308588273036837113339651620989785385458412148589975851848523267055149485084805413069055652265542412184007833094511738607820398621160162870636935209053374921355132700308136605231393275176941675314575614659254442831981010243835282662827350471380144497700716811791706245999229140194919094387683030792012014637283117602961862349591869034929519148110254937669853512696514385428256046231563953914021921111562329667327574490696470703711491989995265433919647315603136696638474142792154496621339253583901916071547554253973204775622908074847517046745776019426658949581046557326073096762231649322638671823633021000034765498229912791912162490001063445443563438715144678673677149587024936580555922701059998262168640899916707877578079226514241021950675941159111804184528706786370757793766950790532281777308242540046947182112605621153992050953266210148831501787840831106573111147917931178713814176949758931238090589396767727471341372440097035115167982505139025501206010012384547805832516543183939189166791023724640135392971082389332043795487342646210435632300404693688819457252475970154111941439728416094871189590615166305383601190916509027693698163922881813128650419051037426078503047097179463366138981502855571951074996194705208451590610954155275011312062193414315962323881781680474050151914083082724153235943815867407129367973555819359001824140012867149058679984639360031853306879956956755226276042023643001373719323902047034251259677115598365242932475968696808030057600515570348582363377834984216517212638210044332770742630824262289630048786167964574492769317760939269649016334776789964694453336481622521390087959868808892475429596116532927092511692227520080671856257846429963984997177421563024011249025947342496025899161877771565042064268762605135193086027027226999794965148240028064168021330951516251571909712447011492627210027650224378905407054224877643233961077546772025359798946204297636774071260026343310805501705410580238701019379321381740468238236229751055932244157258331235441709507919431473531522939571383566752391676946772955500671449851872300451284667397065387697001929212902633937375338059176108618809127569769783616059423847313732934731510974960511899527426896313018287936232746414862450342962063405359824641350978343194552057928265941584831367809917768596186574789466635941991890427223357364524692235102041762257423414963994870763674732617918709915847062173192846090605548114685537419070097476816094472905703680217035726739011455190732326584103646154238726863673732584113194855122385049029527358046374416097122339622170991098417887176023900879530988960350609177502629740330195238689231151288709509004200021585802468598092261086528974668508890537371802314901076764504648391716011868416602556563225651161045764118160374501967566118643221906217097726913035599835790323331012125287128146086377766753116389773556668606540483843014536656173103785023916874528332231541129802678904994801361007121751706523714579344657750636925127705321593091946531480604353917295002809961522284100351480189984187571081535630848921707718263172675179900808867421461126315917856594401057824247729665824019512417382991520465414347908168486566523154477754589939146349522949836870895406166023075980340341003369873465388167897909475351391773599490950643819809544767741647502078060899903735721588042390003711536895626584345584007621128937071302764220991237733778198059099831919129275815098518815577556446869065375820712760096470614749525858572063188501691121745757238210067469492765669225968423488903428885924397462614652689848897552588230105865194676942580477908346004717577277983484698459530582386550187445357769306750229163135451579914013969523863775119914598655863529132679440846921698263529705740745623473761011582865784602078557189431969012069781987059617300429127143328641385183118647132636174901107179951921758470433278820693254000256488321732549518914967973383089619967284726288593169091571342949264294395959296035272478400320843795702734358464832104309374385577902996833071224262972145311712121503311009519435259875692612133205264841101827246856228267960956848512785693142094834338270068456224849181776055169633118733639066225268843796142955766781088877873976797892813196762521637997550574525910405288130367494016152734056557523107801851529495259795681416400460850946079377212079405182638949708064903161294021371437809362173275041836141194347479528554811788384233447336399075164000811005669525645557600199267787937558600112427012219340926622016960059754130309386157082102856846781700503740237177900258085992796606164900579560840277947114217836999612516205176643501927315652160960476102569560892878162851280663623645761642029283278216996511828589290463251170941280850606793921695845894935149252002470785482712131676691054003588747802488643241699745210791093686771535772379161570081559240775716496134268757228836123582833055726305276377490845305549489130098407384518970008214289744190354910600649467895350331679172870220631829228957617971148691482820081784522320732218760572723704105043211652893598824360159352774499060211447877705516880550617471262831467970439052068901140590762198690767591989466797882039169236605277901727235313501684289978233549261516352412945291147520821634399595163030300448760899784841938638171784891297398703353283146399181751664348364035810465723861274270157898451042212546711632188072236059005529939973659865280451514108010674526127382404483556377656264667676881434729407803913836140808715129413529128950278531394461837838159881130305020502833004397364091669648558754566845868462103014730776526534927304336352336136613775792969558363368295796314497759098640761269545850069020916161272955176503248957508889602818598810400065343257186907352110164015291923736430939072574866380252668435285654603516904332271654350292575048913683253370192006729008859117673300469165649738343142517212949391794768797401454926605541753066735088967273358206881789682901176993371754794759499213367348937839466412045139060908997329539214224071949412141308547998310337130718682779149232903695181444261415552312641003935180349973050865248070194796670758556763466823594746012224001188285494911198910318093678218982981518202986590595595717384444283491709759912841616112412464705350210657624216737987796795653610232915639303955659892497485075133589839346009666598803112830709044107499295362373195032108533594456860089366667310858758515214575073082782118651308245474999034722923034461550766470730858234487573782374377191872239082728782883455707658976332360857178459949100137267000490310121087229071580554225050388521635284413712686954003652138369111760899047410939120500344181337422992656348195813188737601349214207498675686644531476924924198659170797526821448941738627610086487243659189860419912233790736924549853453487459084494613755200868007699353465628751797353465067394586611379776456086354219302824196532861954873703875352503636437789290774966754392865267954584463509545670239342485185469577298251009352212252378714154461717661741511336257128331204752189093846070585250276232693573375087748375581117807470276156464998802735724068622438148171929063027856037039652446136664612701728580150698365022201387932297434717595208482897971899735635207248280529750774657356912867988658208688652733049183406467292730242989949197354460212795015980329587270731065765538529254821170142891917993710216908713667629021298052054073802207353799495232514303468653388725371733001938139811767479587383082261385699735485193082883543034473789393915827235346184646485113579720475996262227581808534375449501913392310284903939137421179010163047967778349608265235856513993470753780139582712411820781093895973903922555692211507497394978674695642238290880837804861427150761438319028506917575764536403874707116700623908338977969809277283099641422675081187091076420456209148315749220005939449114080124181337244069070367195042777210142696243049209643415310901010714297895674634048107908579638663410002157349658854217561837781041235329435943452987196283068309619143193871573609263089985597553235592029638578538109411109400579668369893823928868948728370565112464321796856664383344329433998039574829781176234506764240393197291473241799426125058407827887062798297165004482765795925339881236827128174888015636997918510559596644478583149666295065899102636086372208278361353680336592283899707365291484529688734686515310444343843403713012725949392136274605809980664823348933813989817146007159452389135778827317504908343092016255495228581167847215857018286101790188719281043578961388958323078016457630737394141290609956458289148083332235754185706532231979790845060955786318899891731207526822334558185094657784621288004566988679178211548819214419215045897418515672219182474327725145684270142822182499603770975708170860503328990133420207426759245628625344569571516315216382132344034824310371269780091983384621147699603257350850879973604219889086171476112531312121871588208336281364772663131422898015490122962729967984737256430059672144333498017702778244927208605470458203986702164437253758424477484832436183361502502832481090037038946054174094668898592941405673425905442667865864930619175884003325455133816591694549951791749153790071373704333298366403375364864602961125868159818244623928925733485371518387332874385287191824889511524189678475511212222190153431358608227002978718615365453296094310295366794154806716693628121521580034860069154500341690299625463244213176870395977606218798651246206181789957320037098388316301597347270117929879574671512089472257778492523490526391580802438867776055935013096579723548020916697510509375780342181490971746017915438843223046915446593631803013692225332170796405874946538598414719425919866196976196322056896532142195899134570270472155807277642829550013404570924798903994135761837551448758663990285323611558867611999874088893488972889546345716193397417297040352667434138602451549557914008090232930815958534322536034060834294190543430215521520251563774507049232429518240746779449520851924570634720654424616516444074400916347816919267717543193757931773863922069086874355557420235608119611623244066758393434037870778715385827805375527002774970224465438220864593471336251209310874347961823387240827768937144324260563107855895061242412997281840776029456194333535914710674882771035077833030871056112772683883466081319926036738346799724643595879882789767355844531499054828472314615213937408173733455398758448035287658098148478254034506994362773191168599929924389261439464831956884255384566687817940046926852862386657208460636674303171341233908914833522514024141544426580786032777220107182263295304654483021977800510729748079203386001766236013715830865249326228700084530315868854919501240428216667717059914471866522791775760654182140450687140749730947148036846788627225076238271601747564784364752141033674897877377349444754413282242397606004758118192757997563827232468705256771742764904067483352950915950019047855380887358054265350533222453418863228599652539729470351671285860181473657398985802761544955511143708347402259561785580955843160237121636447536220720683313094990314386011106095136503292144826864931985740051656693673827453160432198392534973820069828174221721215797444919335103498886715295512480173184531045332345278406935157227975307883726425532903032273716454570348264897997296601234170884059046343097357731974843034208969659733418631511243643984181135245447074395859750884607177951256618564819759960866150561061755043973622361686430388047350716480902510173476860717867001939446980707931956544064275014318761133347448265406518846542162318348239799679018749153142484769748862867786318748193629317873039790432011678660251595379181257772621457749543876307189775190756532092511656432041814095708076187785658220920760921132911099867282096406435772172797407220664234548316095345166513482642282318748834809309666752401154475600779224200858850929224437044433711931552622499254921867467473685835600746710404204825713466999608282202175634657934004678724968249576068716590353358433796743404274943329279543324530843094659579560879425000117257026854834769350105747038419706229535416294923337767870638198868766316027002360586119775864455228883531537589437001722462162654203500683219445855925993126673914969253876943316742885675283243853551128977724727625842406996108142612573675340089186907763289340655457419761824903884635300798955510825949110585049365346343170420339538033235579258333746954341966095928314662955611239813288641088428491030236586283331144014012186451692720331142571685727901037749200976136403712024080271275039789715282100880289678709686446785516328455482735367210112551780202092361458169498779446626138131181952711923167303472083491904995116809888840488546592784914542823114358642292547430643183991310961913395652121917592287032488727666217332794020439715163425058870098830765873268193243743050817287243683635712816171409761553198158379160175302731827925758107135056571297858277829866891531012871118677985126630603572919426751899450005727588662890397109340732022048609880720577731062453137453439191780834615196032682494864715843629190622444038947970414450771394422149153736331227943680483701887658587814234865853286433622140954447915468755117194065705228076569549809801132271536385508819971753381458787241017948593250271189278042976885504272021524542701239832466461192394718546868034363930542358410980270867638184756831415106679194966179008927994616534835614694242373981505659979309995754318591741207907567035667359439144362305122252960631845857786180307000030009788278597765501263562553740477344103671835806489767402618527346840124797398408273111303636193241166954501425155012121317869824044209279929241359827736894720129383104643355989771894890746450702061415000098022771163783642470226031401779303332179915708761959649726277661649950734352052053914424622954246996193744462416041454983236552593970016762235893896818890828227684659908703701455300855501096507141312021811407010433357568589815048616444628650446438240454188687575481535626223293738767926823467798662679801068901800185343275988490622282600343492852419095959936659369345764214644978074300886801870929917870143947079169163125381466818464052103388849997217167609749748390148703869421658379180008516088948948986846244992889008780030611768215329208911962517928304368878566499593223292549651306348816407510599767449828999333845439962764177435270219099637072153608299039629415806794725214224094502506877549885440883793807911613539819142239511324669188745463701622958615299913753968671280872582043407648449181265327834540503062713115976335655522835503590885166814057014809616725160601000391602073980407361473828155212075787038895840350934167372797071462179704177756906370718094500418508829556808636730880935335897625109366238919921062859575547347871407689719085808717913220217039359372766534814841652765677490231872917482234300848345379437514366811630861444650268520912426145148912496650573649327797062928842862297665344765068980045242406484883745738645305591795948282778035413009846679491977161630507918076396177948472488020304643281842196894027585911340323337052096902852730999970795717557993586025020512292622461675193946978284656424179821644366969194725434845110389391506305689031298922186860644656166176365132533257830038533034594064665869334245341561952637463167479078776752333795560310764599960294540476193042783683142194258143043459947482213789013976923948521602552010446240470119182728954153004548660647205698856141620385250746374850606535456473556874266723694513830425148540265600451005887164148979612312779302294928728457378407184330350395174405855073445749920436023103072860464007232744372490585397153445527183703398612276041272784299866637378779075026437789472437612458441147197904262463319890298644489365417158399558209205873177469268530045349928635802222846310814643627091550326120715905416426879259976531485098823895899883312830050339661931184821409185637346807143276598246413285764029201119667993835985791920865245181294712044862494451086018027486069671093415712320574572708566002527806367534290699356924945279019815527156601695032512756897398430234305661816116128318230523446663339870087199975413056319058914111615142465533160280407524362173488555882055216555490310494292189330593262068721819204754105712870568322912003863246300931829156426389178643607796886609831852123836784340196279125257022980900685266849268688541869898798683997484146748479724176018638767067936619021425852252117218775756541377545087967959561878752302253370384249151663013469419810680786886510356550459590266333828754700840726855897939600914791400875318766771870212600006650892183953574655869280740465482713704888675753037601848076101020353405207696713910199858718762946493234616239584122215805433926988854274968449626091565088953748881140724552286809115343901242852294649122911598893168107107085708004298117020191210706772192237347628120794900821300118695377048162606891849137353128834364471324744413852064701547831781960860781449700757979878510105319385987807629498245937453172506546737413562661675559092826879943398559355896717635151043658765159728530034225273764905050112361393509774501587481601827260455865654945257829516692616269368458507064791865962616847699455911245406920085026349322192716497815219004947554578753091402214781346841994634189847060046777179649527515772210603821733750065033931496250955430947296329030443506441849459202931887824382934323131241908983065143172751509936073675362117597540978033146122837900809775477020916973252876730890875640462554760048534652331179261954814431644802931857193721662175650222450568266059197309819298084711110444068000161255826702496669064805596229505166312167795150519873850744331754630189969236770811534948221251236851200240336387642197015691644496984413941967278198207259672083815380665400116872073787261698313672150655015280385129596921237035467608839598003619340467926639876132687726301549600883968369997777627829932611290659178915344585951857803469530400166603517781116927528436856353731513797707453926273946820692052734092468579660226741403017739987833173641085848771793437456078691110014186399940688199190503488026632123062184108202507627722969811424926412496778521096206649402750535101759127754184242748151777064207674854238316883826286101477460884623256523661651062155065975756935436159606281443506869596017258048942305139071707615983210800037402929670146893529500822211149293589696780500041687718191294365214454546556647178771896762979909695028622384862966790910915789404950649240299474479952148974533144359393040057952893702897761454396785509214772936577254592524796739105345869087747957777058771920892819828034060978815387891120472464771175023435243041887972682889099880422354404450107626866689795499545627114055502274480911062556589924239532067872226593564539727127505415506756403717551902582027413267549128535392905489659537942759903472747481390590238239412503839464731835082203725224522723661897374387909852540339377810718702587528840372968651226456428347278862122729826512811158797054378214071357239693985726758940612524067981484575460873999158649512155487079101075563207438445164070295448985262616346814743076594344970732548954595745931928959249520827389575639190432772836056300070299800348046529967813580624203789625939207460483789456371258552271792894642778018437801767120572892137232817633592468024223316503715450633379343818347103477733974629208343597595582597686765264591243250443564691886456526322547669395166149669743362155164807289605414386296731389854702665695728021545137295495701607487593600336753074595652330355297508737492683636074977323354725818594602843295225337202829975203607740566564636365194967208080203136488603604754596033364636699695713304054863670326603382354758528020692429762257621203068628319627402571750408512070831990215594089294155808470852644476890978786229126629048658736620029023593371066412572976129292115445328097785531002029192180692100528278776824285382819240494503325738418953866149860547304721214625619498019857740455766603546327821660133644216041010372128129903011476621214145725505057915307110055400357504005966394332741982595794608403126228013150722704554499294664652423633992282950846210569974709574613487836181853862767848564417915367833731919399533309871011736829203946231340668420595766652299997409244301122186689507430732372427245779909246678967647568791542949844084788402447961517784614710617802191915295600313353496284167400126915496055243699405645714265689084338531433190228434253131180752848116336828030791825390524390984144421431612177805006170910911562729482737810169373685848903172898514706474762782218550906089182238545888521262306192048412775723222998026164585444449152925920748168569777391135755860954006288200070142374668242911893351917977182124488996939090541994186122969353646437634007726071919455943304255755595910990191946315254723500592201538988942524501844339038565974206676830058614432230259120294191266224827851116168816018559588179687234049764826449673911364728949554767678299206244725299884303585468756052577989330480542373514433173649514028964350215372561896236526014940881706564003588768654534292429939862084855429526539636700606009647033816466287859575524015078249211156790804381560604159014625066348037192807378554440904461190560650661712809698168853229635620001237206660264523306916525306709452974320462015596980712837845075093828502977986963904396051543465267785290044596195187485053901557858745725382368684109470914492609732307133456419683945322995925270606518636815230174273298926201892613057825770214105511063396871220954308366887543743288247001181903128957502531976696434757963006721305327454159043893736889186761113473487985523199871783141872199550752108876702397188026431114852931564118112037091830830784479175452552785099099494190533444622915449563533561368613815923803389196636892635174191165016222486521915335277968979598611023403793041106422990567393154211744022056681998468582156915244861740465704048093004342097421762878240354269998167592461690532883874456252119926502571036635733063056648354217386051032438334023079552313309030126327521951789830570890608102979187600302169041605219953249100166430953777106594956810443292626174712594850845727460165656600874650355548870495345573704542975704101981745381333591007252073122986488914516055788624465660425877333732238670576677683596006167294224439258127349374689064019024333492045519303604676488458069000170579036449512799843804443059318164142904895772542791334240348436825110906176542652878537491873978837835625336556463633805752946478186567490195119407219130242663585764626261647093617823693235784975779247419063610787353915468712635665836026340114147312525678551934198148287508086682081254632503049384593125485134862113675568246837821892959447744216529947829945140202199314828884224597923355545077962913086474651895945349536030673642304660964781503104430312572428833460125594878172351928772857587834861895364562447553574806883534298437703460100397062444664306268082582832662744386446917788846741448754502423764276968441387952821033289437628390913503721093244009330290161855523816900326299075878639457240919686034841381436800947609392329693883782151323269736159714981335021367850060528048269694738522487460599243200700228498143960136689799495502052364697262894421917817760727312086405513346883775159720785664248796187977081117723655727459579890713213581815457073842265382270620778922839435913854023878701863988624684847080622961104082306678395569681164962316533234160630275788659988071189109508528743119317175367169939272130394284720674419478999088480771064478427069535862835346222485414964028130176284805971486692679363219842384550215791623522697746676851388801034906609778975831402968666321219633655528539946321102937166727143181782545030102254956347942552373504195279954297840483597761190032271453738857123300138187111574373239838156920591309041328982953655729729986488705521548390049266022453557992208717055371172518427506070449615467353485215828850285323576421488766964633842591895626373260232324393175211101278828006693517301824674797249239327838000958024180873068984541486160833163860886607074635314854484534015218832453665149857707817002230771026654295292538217012679326332226623925744807970669976004063861342140711237692952446186148615464355763500807959670827404797159241759378384691534568530643167019691358222355414946660265804193974964231656507402977236551827791677229564106520488153304051087536593057253214829303851283470828722761535555691712717669235431422667316883991316633594746476010800212283215917131499095788229879825114805411884917520762939799642221561121221170425228419300018432800148295876256049175333816485632240546475339268883171889727230534044562392706377392839056331565022455067665759203952195855060331141758970343998933836953945979991310913636479548066397169083557692614570701981705224139463354548823236013076299201119886608695883201676676328661961433914322940519654667513868874282966016817229478803544099137674007323962626722320753160996810425575359718943898782686147179661723934046255408000295470972329830976353237592174427666516563584159362009021287133007691309363147501298396209534248461446062933674378815456094743835745120896322803502097560781970870582765023126131113981763713862515730477164520354333826817974720395758237120266967919185211294433203653968152268728002379099359879960410062386193477746116053668895545182290175767998913546074096995483634901777965480527224474223215367776384667791295356320554511230614536583057368427091669987631700365014197711128573834931214876512552351751064350026097128804159235508658082920332510313969257909495646139448773875503010355629537868890258228800325744685306161794244889879006550953025073974283730303945227808282208966644677419900779533695954432127185570159291441207135939450785247309770531273883067715845263971576313678385066739581412956516362558047491898462276223956295217970104571670612317765912721070033394122939355739195623631420090359013979304383288832514160887600846562154196246762657201195199928314241134985793842961342680480702231147905089926278795772886326570056784820954126845807540405339221129168573376044158307502210685900423995359326110819652299369786071698963332736902756047191017496920208445373883445513561750189824660308219378526168394477489640531004742875150534377462701658724271988023715834101564945689351224535276068292273419198865784354973611388697216850722183944634542599763108915197442160920557336123115125410079678040508441864823231223191998146048816360142831015575166831117612605145847490923791033024026681969483532109502881042613970875226127447981006297938996311458194248565574588531975396246739438224424327168133226568067965100332209034742635136035425767500289317629030145353061770336545995470628719927195419907366393344286279925791005028986588042986757648481285605737229232845422033475446321114314504388666784381517154562270166676883529139892120958567165653760797805109039447219486409162283314213277108277508324702368848396829183247810164314859447383066382830438191732793696046291674434643354485739927427603243549125906440321762980928299034917757943216151992182794584578529832568756847053076111512892211345359853134445837988714193544823194273209512851332017417042947243426133886575568671631099123774798041279822526205361003585708779104388975717280216563288730205205426540127767960203870093490375601506378355276360805052171690043612358208052650427684282200877393370893635378347335373411350137348672555770920334945953211617635509600052984298700397194476072348253694510824808306233702220641008826198765480244923730929994479952797067275012872019574123578187576345097322342529096549697360181905231769565624150442855990102274269109406985858005733819386654105390728946438805259238109246346264507511457300603441532470584716710712534880253876369388560585028679898337603153258748599001292488902169716363452187100931813078380853933982006222143317305599633977710484823280889586276310180871634545506783967157096013926448447717421575381040592544747396130553864195602652849660714696583262572933714539538172509227500480404722772600030371563848303480902228394018642174718836062657991144584673681198673448429544175110491236612342712598187115071096285809631086885846416428330302586291714219442385518757754022060927341282862180318206889825509280102415076041868542778350650088204183421950413193936319997042278078318376769583676125525577779574986350187465794944118734559422609779944767280318823833352033151068973513868412021451582704240223470100847449138566965995637575587560306576492921416987792228503923093671470751874358454544814003175216312054919170378357536075036395545866036906358194095752025721806811709652004478801343098038834851909246836347066902973649671485880018872461427702947009452935613019294948996232936260297490729904942480271798399654539408503565769774292352575552686650586562381393158866012814245747956076834762385307118456899595644255376126991928740723717130020143046223444933905862651969019906416687119025135934092402681937676676097121365554495485554410558537618737062987639690357219695029265238301417604163600018574366973876349326924721402348850103869870097333398902032748349437247988833546492581795761168668993574812953920769242545996739966178122671376355951881698386712235175774397120019748223282135861997062902230790705183062485510534450331565267939671471248312402324955834421874918359832034531489635646286861964087165063059119862143469219897403100747281084081518235301427153602656924715888536524331016694773866969840151027933992396815016202366345990278418307342176674279896840116465270497536450173930840725394273327204470901196372842909413665774708070881106862237927190099709077312464540698913938928201379295505881367563942880673906852311445304212539173771737393191732948563041266376887612655312094728561751517877147968479278438363525817770656916602995210882003465011690564694748773556274550965711655525869920587529030319689566840001181103243168461413274116470969864485968052786230616575596075146874452605672998230084620036624071289377006242030068331225297943803255443692046477447958450436422501967920362072005777530680244736618999305792363287149641399532806179357302354683901798461408513351601291581393065001430190886573907249195609154895465710804866470758043383453531908317658682627717409450217858628243525111935140621794471023277839037146824877959447233808258226130446782009211834365870386213613886071489306082369201267856757549583842298431510308621181622368292476038688323323472424100848178067957601714504273082489250590331489506939218157974617362410442515194633715264322261104613390507901221924337036322581467311313158067240348778462749691932725062453125890950206879280021111040975934986655858525420707036768874933468266340215474157194530747861005189084916912014621262380265198460485059606158134963281856122917944635043161487228584504563823111909539925910670794412343241514553311118766416119143837985605563752009858761338107253429976936791319019902924041418870280470240788651423544131481500324546804371196730598185212898587321106935209023916506850083762264007607690748806837630288309563013741411146991578164911406969218442348236284370533229707991099663519748490108890640719540762985608586626486129721156700731104623077900359582091923347857672653907845624697295852069556668965476029019207436158795197632997987496007285424605265196578175144648574920106598370889454654933078874011714922169156439201137337278091531407393376173580615451137058405460718294275406103443132088799661758484856740724158274218394513349030677413538601336036714837645857874024722317855454171711787612451814849721537244528145499733761213322101552180567705744652271733268848410455439888344023310232884112725178051205708784372776954165357123532012544987141811771938753783612964776343476079812886951176890607406554124143474395022327726186050281716047836136183138333770720590834321846852000487441037841734512246947702000552869041708751541586415725461333619381552531506807478533089907702890155324953459468500904081405232268694398298820255597481430593232557152873783822456508923233016416682100084707602710890222428208906722081836158713373103874196441887076813824100979912302734652647306314078855635468149171347758714228954947221682431535081803009172948600732055786855305886256539713798461783088236613374274024745835329766257415657679119197305148903516394837873362723833194902619197258960071722970678834545635337227403258536072768971113052705409723302324722201421987083799099373935513756109395203516941817519321095833930020232074269826744707789468870541846200399255464000573332830017032612909048468088080743022767856989923943340158823485685205501047462168880490544571081024777190036285762179469460390405448913368419669928619592334395136753665230645413724363045656144034816307457995197297181202922440271017229883452213995727909762821484812865636707575698743998304466313606561759914463730972796861541217099758369806750990877838987813450289157488040281613782021005299889230996895686845097756160656085570230067245085612962438041822349003746521391539028710669095460914339202275289089038495679626797427677387199668383748353056741719996516103892162628862791412202851853974183896607878189464926817489876550114578843313754085703172425656006248892892845001522310647717073645033368250820539262624329351038061649196211689932715095448883316291814957474251049451490793239553236276823499684418968042049050810304012647348392537721160451398075789352729890586586730446529158019870392150932129852130743915331101217732830473909032602941033084946099226532623679271075830776252397161010873701829428903920701471136422231167901537247282094590868802507768972784946880408739152408063256253627172500704969223944485046032021989417342905817056374862181943289490043344834978360936664276796401062059403008795575986279344359300598997972109812298663638986442189433768174840182915491628044576922104989957876074780245096784553531772870577018622408771369520514169540711140163231185929834634663138960498720043957945840544251339438535196905647303266282726047790971176524970249932836906229443584829041826345705752697120184602518373084859423485459577767669432007730646885832892768547178434895671654830919771189121922284287009617570850230493355792824196424096264149780142158771703891341795664701570943163328528840081606879643739370757171855891872026182512697427451815061097237730216352862947132817279442318983851650200011255256916195925678780396982529489806976923141620955384703363993022279665598938297177969305269737871294100438013663153097404967522867719535079080103533083677061915952970701307861950927374774715085435976032695899331736210765189942889819050065069344067622009980625353270737684386336716447902081956134321643256070253918232542529977833695501739942663367006611611227498205548533547805981496454650262550031707552707997773238842154779799664469792371857233604553946465402431067431268570154033228442311087406801526970457175037426069311700579080793017351942328440068602556401442585900182356655083034180376719637818689405398076135194740705170331106617884380261048235594385316161393720192696397162184515928174789208491720911396434227916673174198224157919732352532653677001730302905643856152074848780129857509970615775132950272441541730031259494786767684250264808591790077939647648681746609042799702238123371839665946581198226432161035929793561156376066022242362355582548852315679942768029559924696137777653160483478805471351149266075402956589848520889596632351846895797603652930792698975675136634231596656261882841110390524318518687782533080519929176752910687744323533541014732903428839081969984972731590587072408404387937177274990367497148554693429547913733089320609846412603429158868133633623381269548608490028769147401014272641369455154575155706433520222353447739074912963709987700105402247451217707092160700702646540687687407897859331852926637723248775995411648325322936506179962577246020177173246482053913589929629983782333148521845549327815175244033620273064713830625052487380557262377266851042319374172837970336566303423775052085587916040401588558604471208033533277149957676007867153266378538411705866565855830063924478995338694395058026448933367542901227343885336522533847373074426135878082393410103033930564892140742914631454883954412092227321337673037008259790596352953818370038196832340389354683180237305197739373669313757636211504169350921293702093761839195416257573056114733610429544327746927597038810747499217630805876519567718811066010664649852636547397880030795098429329490491698754777100702260564906869970687172403980248327684025252140423860256983784520673387146137075791580506045271931322915094187028333621784653824280055429988959106656348129592203868537326069592805425274385389598955098194637053319989431382753347370269157595659855942814807328420235527125585578550882282273198064206322344262087217509982892832214689165269257114836960389136738365076362097591208401879472117262405488818964328628413721654276740915372101604166802320223659117853678643374162901529809701003045711939303446787109239368712675217122979699471819614959383758446987843064936759596384409130476182239050581513221979480182565938810438409794607203591388847486697951336640467810459656562319439899014670854371296626298272205415959156897343364199403854090233684083322908476666965268299373984031590621299956117502301978273362999749269040350054815053511966350036379879798327062881534648602961928664451126454595978543357214845983854832753017306537086694588337179635174961828695724545120898612289314199223818149813422285285071749862639097921608083970305714373304835174214614416156309138082798087857802565720838964857544169396737053872205234059281589773561019256962495836970422092190855144706349010625505235817560961985426859221148484773457996634457810118213178695486278179798706177769451170824321921269272695442746067690682964956378950116907075331510217070339288527157058464073784234342261778191534770087008303386732502720781811659886622959827081952656786705611601749902572823564955542210246255619611583795605116600949685199791434320751336508841109183943213836512267885339457650782147754329925856239262718932381375761334317781289825549228140570095518923552793215832495199758011581023099097066625759300876221475202018691898412027079007728282638700860771093395106824305998266267045681822403212258234158426083145490723239349300569995635118391532448981020383539915371993890817364696837209568946635882364485273045234477551596822852510544412867278853609748799526938128973876873632125371322175809808427272715408386618805330177291368894043374069016172705615499418699542115462480696112131541236590156322454102149238588663928682990535877849862916549498109010574266992670093200041021891188186425842636753428450079486254038310154822678069991425479823679974617588750015058652112568151020105400620139937725065689876620098119698156688250885747865232178710708753749177992445356418103472772601337979788908413407453101356749417200940299632204646257129853523377454950719895504136739850365093952199121687231518063936272401980498840148032984986711722680290811939168468410006445550460984565030489084995852395774490408981363577161444170106750440971725420878000174602806096082326048259607457465667151938962258739930581667830660261395729126382707337135554909652926788678674069189784150274090911630818129636603644947144939206788168360166812433822087168794205807065475591200215165738358498597483393584922561945459594583772025325351619659388588077121690191257744723890951388330452124953135520068003537629263036131063361353023724034460140903233033529350016186413937665667269132084015088912157676890305886309146104933350741133046053873216423850161590532392626795213440031587029594193102926817166411817753071074465418479165025543726285353358623494638330040642743432937415792302716224226526848324520930732556028021634769869103143913365967885380352986070383252373516673815174696189691138209134970414243228460922521369463571655795879691232782560657152072075922440612945456634019313112360064711700747006119628299336811688471083601181940302720143282226087790752415855261271553311068186576854648323026078665588362176756551404759230142999352716744349923448381764336922834404782315597950220702685482403240939190299383955333224901690088012963277912451546993677574484965596269481716218958315376723684390032769524217175137658700979167162775594471242117002600413186099761000835721547657640884104865430894800338060928661221623663538551233260318916900996426359094836507964598725138089168156498802997643647225293640769455756107892863145224156796055618596460072364860100559524567679158047568222476308630150808028256225287848534093858749032792289289981407883280481264392925400427046261580410581526973521746047864062199910631459199665632852661129038418373887580517605295347345811456671282722144153489115698329512802117278231892089129822100854420145681799558197576435737245693160661878465338118823923509308521203935198152460007853043331943876584091376623829239696572417860636395453386801631494486518503246928693704870008316377711809962064065285476027101053191632867385247710449654128456619291726021268958169491402521323271793909445845181992574375869470752034041158387820210255657987534121309181154624883342704604901686469922831212359212782801790566298468812685871561566692078012630988317369582658917945329291568887009937939370193638762012023187846077939300843300846613189354348418427239513677473231077835976917149715413864620053649399741710892248649048545055881862197801932918605205402863268472222847890282322712671051469833092071156281361784432402680738444790441725289052613111715722316768364835607712484901442410581268930681122374624712541231584431378737859021676570882103267014430471377550307983260496906372143898775048621482041019012649849149998615861426423162504501523944343199929553768892023131011919910903494091525650525882298033362780037472825318412266529981486933722316112887920487363575205138382318958381557422898576145525269862525857476702511696083457172839453896887342593638612636936508905163306591123482882878354805431493524645089880978923893718753278853098422956487116830426237544159224482126487587745733151370908634743782482655401203012454907147369576691635108826509803929663738416861384162708844790589844981674059090817975633225872347966712856824162765885217370864871582093762668153739193346469435292281085700827253597162126243368330155239123502958378441666759258731388824939702730195544850340780970270140854315625613957174407044686000987662412876544872605855739131134358783459988600245718955243352415746709573140684917809189329338677433621614435660977394263608265331987060487429758103598281213837260385853610176128329216353433833205957958000490713275797078687868226756110475300596382276660798898093324201893282973803861975178104749169472914973001347908743986466492495874674808308296559356433707100612229691633563544907572614467220422579429918089533828716761709242771825127749956398004514335442380588245511801212168980824021412922189584074601702297982697367036810713796627424490239170121033746869182389980068685249243056487887277975129560538540745700478524256414144009302181983452560784360321984438934379806993640863327421271406197059714935476670878567026454580329722299311211410035548092813815357444403943519765664483520822531984448817845159856995694915547864651864631756871943246206691761518650201494690663648564863640021594627311319182268540296966240523537843717623412984896282956233723191701488439971260367469704228506120867571458556413050734491178891079732220213966659393781959335788279243302721222217918478792889709318072935729805679281112891342309808619483338630374152104255825329355693886910094236247595867638301593706202959557784341723554943641609053341266089411252838423250669203684135447100799525565714857761650112816156158311591090526841964992517356812804679610455648652896893004858760424405096915343859410441655841587701527164726428667839076992494569778578593477929318681896816694462582228404518948721403771506219435616359815758668685026016642512235457255375760451923343832744673539021756820449827572649616122101999848904179979774170556300667615678575972058724320928851684880971145147437054613718784187731380350818971910027191205763023944196921042682430323480502653529702303421749332398259444287076271894723253567295284911539139423649338299780933243090148531740066834482383216058257631609248670335840135257380484552465616919954146144249716681753257505880211526994171025269119227859051531288421864224944237541896641274748555439000823104193327087062234440929651320803761700694133004929670838487689306274688459107197826789335370538926665991668264152841023285355980767030242782725067289370522224995756111112432142116757261647219133898879560754325519268587812047162128491246512426634357621433146538985099051748359622657849963589200622760467973727392037754654560634682444228167302278666746726613584464346029275916845167117112271961807858905557291407926519451204812343686493034161786910061632762817937604319940589968420144387365358476045094589651537136206223750564473513355028058556976316161618514084499944048384119664473279443427482187987774322949110994642468260186456065393277334539460995390064857267665580159691996119909195700299572898534883123275921802516558214734449454051490508329390039982538216923409995496818299219049391080977754601261379881281275650282466584243093435083452440867914402036729944094020200718301240455932281763298980635386636778027582980935018364060413163968000356345342706844700960917117280112657492080139299059292673213146516827287784487564086961962525537862047859903992152953100469090473625076270398077260371745080340325785540632092749449101992753781029725784215706858063421952954911509736142903373914134743507277555405983903581167391194892242944451370099818223002077535091843373286034465629058203683206200915901451972568170259772930300559037120910474102452406246595238682620090127329275480575662299628219961834188195994485150923074484417031326217232423180667853016129908512385159728246896682047859366062607678389577687165757220362632822935589461291456172882779729518345536015661270664620959105848725689809209889334993527830852472940356069456287492729666975503982758264032556161892042178478995152372969820733715394138296859628832374560031229332348313077950660890520791208143213287005446750930826939455557820859317052512321771658162795217076840435854291556890939456388568507525361746223334403071529693090494101475381107468031254336455928835903436765282108236499703108472948064988092838149806773618039414345525361955159579119122376950473501760438825593300863892138875486810375628424012517122439507953096015008937704569788111281597812050850554145387697494428436293877571223761518196707701665659033163528383742007887542099974034265211746938671041910023274645164342357721760900211566274339659986620156116116352563949791321767709614090391710170932715808177056972260328880331040632205969563868183041839074815004057969319821487838835505872680879884231718019879376655068999476438482736060472764600915973940063917372727526411515138595409576273432924374297328065334241377646951656784580566391369190554555912730193728655595354822555465646105010334234238929728225796235441260929187516254189099666216359984978336540480217049994346382079672900691678421848597844310615659363882124081062865983652930970020049583941588810781114886452148051163978923421187144735773902919817015857855199048531299055212332636395244068035209785339966343856934167112187766887951740130852000520835558541892878117376227264984173586181392485579670158971667642509381139670431705113058237968535345768271816805006201610415456856330854488459062336170321147716057682266147867214071814293384483064807951985327912682189240900773931154455707125014907485829771403228041226253207774274295197202824668634156170790678515520360717612657558358458512221247857422559977510706319547815368112654227608090494240863448980778589964157434012576137222463529112450712321748766325864727109144435976951055256466876705926022466700759478350798164690489688009010311519427983302591112471262988287823811005304685027020921114389465886199595303793251358985394625675852677811148935971074236679348153936025372262777407255437963960749134146869536834422028446483586909742742633141274455622008602546954212401310604827612803035915106885763325924651181990722064871457711624810038511429972520852071680358074812200826815131104176439682765173939295470954238308800859543967205284950596871361867392544300271128529323870254557017633625803459698804094310892541947910512620230489583047358421619359698981970319666372376254356033556806763240037888443765786089724123641021533981597403868804882851253998903310849173080020730952062726644891229422379911752126813528242722523947988403140723845685589417926895213597322356731705691030766473017895018860117339883563959407902855644530984654294916377204719487191685076712262688197161509826337962858146028999347527149871182990647226512720391115413952237537399945899144726254057255863621231100123453793267794936791430614352109192581946948766676612905581129380970231609165159530279476690577226877038780228525915459045308763496352284966160646532105253299526113051286071797985209758229584474704802368338495033683400210677393951133626494868637406438697800177944201277533837785676346537664170776762912140514574829147334441719603727910395402367576948169870028749207550565500613960155090986068585608711602693957990228313083199638753962960244597232329465769843398810420874032495879356657480301842129240631054849583916712204917646639811743771995205613412208631201161988697082946901572904520678090916407038109258296097609407021425023413756017011198441260694176884756701451867286925908385163039962452531164588482073759249627055096348991138358168318863997789603954558564169503547009447922230240853538178795580888382035240943901449727090024539600046808992147060371781168829664291043214969038291489526314892457518661150519555286020777794387843696501431943276608749633227115542823597893969380838320914053648911166908205763214645609987462367123111285668058674235272000732833008788845677286607543867170794249854852056854444575130045693210522547561456975948505323998951899207050890433608582097637472947375154837868568132703738333316216336585071996861601689688518660010540422174510549875625812591175100882648148740120149508966764861332118371169021879511644905725283239616572752153128471271261957960267793930946921047377958138264545441932151374393973922116328822123993262134339764026822931330509227195747192340499918785076331300629297389393748848098578475065974461862733057507615755590355871598383046683299639622070227213147369829032096839626971680629813931488762468527444694767768457267784566354411659067453638618997307640013536319691143742223562622754500366799596236891254115216342663988375576078821884698945384991502251354737500255528740138373098812365897385982734030133079174358402767381327681667778361181410247011416796948647258598805573513212043019465977629945829121010334495119248564533372937742601934897189356293501896322424980804881247370005056395690132884688843224426264672885429293478857916504125053112825423852891896729289414453001412161625573832221370709605326952124815357687120355184914420965775393247966999854071186150535539907545069767741913526545370799591738454645942575922283185055490419424345284684149733780939150398563625962713562248699509491970292856934074955067971689702326072532282144241393513313862959477187573562695898440087591595409579142620966397516767119481705903510933075028183197247572959557644581189328219367786426798708235493254576535131127948934880283894916967037818900640267319586092363486766255841816923518998725232488158606517879728838570062236264974487523607922538046552167319733066228878404333487385270524334191492692079425190977215120918582228030435789384579187916093642779972597428744498911027354442516979953004852419342061381664353833574551040033844536529545836073993845534593173345162260879096215964886187314627645024725005019582951184455454674052095459341852654162304112972850105922373338685250424610204299471705882600555866174578797436076634642531743537361051493690769839420125131978695720084605644889697742135234368391811593104350544639963117120341810651769245412531065596336210939848432553606610521978509951187008225183652549814944458109420299389836886434107691736474068454552981147198808083492435675837101818344922207367908564852807834095211541428188299406094639395908500664530834610840207911668579259946373102733271154101057759175627779698547913877701848644600223370651545025269435935179643266353701212728565615209032919931838380037419438722706494655187289924891229259296570541567133650917565833682279642831971566612338269778727816411671117069146305126790858809575267760508891934755326751824843709487829341518362682422782466471626026143300686721791963943115685520944188419247928402919854908656029032629252380952977177167594532892304080282009312071365543701594026824055569796662099947283314158872300519248304924989646663552452927580532664414962657017526552783907118555411373882183682108069127795881121490580832488056022520055041386839741455708629541575713713455790811566286806057393804836227249581738894067851153787210941218531651141647144118357939499406214652707841504752114035475712920667818937722122022700771701607206841829164316700154085195297253389417352625999620634362096692923120452230235244674861755095154581850976143162020926178475224910008262401927741941344488561210200917364505052199372404745894971601017646363187915959222443899832971055986516444276205154819658317918611926645284742861194060269189088739946564683960948458963486460375938561273222316286900589873687214199759045763202895920147925711831854263083332367509731145245225294239366960005888204252683587382013494142406120037817173329130113141484893037245930918573712293923815090780256434512781507613710846782967495603368129276734079086260139571948689692525355145896168368016697746643846963382198797880152363657057989729786409099723481382404989356394607251246375416465979143170760189754162672499965054739579826181573483568976296335349843981451523744818305059288621234795475192042863763356772492553243151924284801931857364032920457348207158899450435804673909555757292418939250271849655734045070972362585376001154400432804766621010190282612203155379287956067380335710714654820210827933213731069173105504087038350685793518194038109472553293595763152412677218715074532238508789944606846189505762000896868329056300268790302288176031556910531333610606636567440669231500537858833063457328193487919122448299025964640041948715286057697073789091076728612230418291313368832929682670014796904038668843143705852979632997552610823258584636244130659557921955146753274183539794796724517959035594463185651641292439281009716361062927118701053447855149503983542152090965871902829193677878876711083025675435859651626985409271909328693705580790174619866713096876645894427673477558540764777040226769170070640990378890567382877415114763492642994794491256518149808193473416458391476481923572537943332548527800847309480739420132231890351274656151185408975937130525957890816294876076877668851370216532969180758673865896333638389102352818297826072621207726480397959360595345725881961969895361024587488164266766312650434072780856284701865320369680494749310924915477360623729415471228496278427604638024890872387986382611762168682633615753628456276382575516779437421901754032754502160827774545291935264862939533707427989158459086145008296994028718205715778421242237303163962744144038893283174661331048102491585896426564974865288328500355561642865437747460390781992500400108850259385595487874827779720291785456006809286802102607272420971701950980238281977299359162495736610516721371205213844817569870721673246364706540974224236466678473705963432631789645658318338901919730351720142850494585180534954920085760300782991335535148681531716534910634904002026675871244455585714430450022848601473883743320353703421610045845710117236221702265211433695374355307311657474567375543473531844833651689680635089603774797221706567809361136914824163259642264669497937751365750556207467614195615070042606073249005225368692741056825673359788746422033575050451788411261327448385699640357109712556735146397760089874431344237225432370304632263363595173049047221971546944487533511663256816643433000214288179974294720485707294236662398808439060026356129647997640073663510408065174345555036838279446647339196219315148867064866784257473212597438470085017259086365178075224600621787026171166125180623501346128583018212857651131047124101714404378226027879515777379127803124201137709001772548308743979481603988299623299616816174284817096374310667451540551128326323975025879529025133741352122520508245881120467293813787574434996026770304217413845268518414111079332174247481315803014419233836189092897647729622939637519633828810991456632550792730607469835854425107732393321996548210680203157545978836474160769050924272307706866746662255824585390072185992120662075496985956188641271314802380000442489974768660625411532253607087946979695168220748041703482782760665281483060498372846838136582891707824509320786004506085138259806612289151563090214911598260760606601094177650794951070845095143687193539574140261794249189365186557499925735640161584241483381896210198452351705823922602938926200779895965695821602936501011644468901905820149841642802621270805713960189201861546882462393069682670539068013351666496679796292907669606199055792859184831560759992637345201186158217621531596705612617393483756995462737949283976957421838245272837397600457450807744718998576553885510568302350633568482036720662126049409457484351903620682628944780626523054848572443613918331359148149246991817817631768483877143558153974207947520808786857712819234000700983857052169715461043677167270613737953869338933778956340806233440648235274609830247318919329795712969462803116330011909731632390035237188563718872364846308601001984149548716146584853850546655487767121902134193274114258338035314156839702509174137875547198385898750851973416509609645712228204020466269969272566560507647364249896337291598416705717189205604413750191165879166325675783766857704415510453756207122870035631495500901984178857696446259823248530016487030066599699897646302434259467440111125826309374067895996368827600806211976565715894400172966889992509758094028786399403107646334422248916133988232608269225159406200809816358987696226862577871338144140857867765095814385592863733673762361694464268997983568971366509639221989108935782497104466040286155788670538155719272115560099171232241725550834102272071226981121369237083155877126302939646530530031373701972108283820164310717947277637271169691823383478938936562092996105236398616594400665216722541026098150856082578369369562410641396516951441730634902996660639508209010564361097624881047549188673943982687141625325006569902121118946373689350622819124458642228362189336089154796974126720304872302824036446789434867334506561589124009198437408592913576708324956984561793586782824767989723071797575475856619495304255357771701123201490219114560731642158535346386448392217791476228520749881856346282860126966269996042877021080018037734080186423029048907038345156656353076625453090367162833478484471285842192184704693597817769085880474340734035145068647083823122242030382185890501516149217982939246747777091042714232792795528661073140853807269221366351226289248013975121902137685018645177951828762117935005265401479626475975173577867419168953864058617158455762423631382339779259769828332106941263124132032656897737913736929733578201692753697883075395984768299076518448611342000770594657629093110862317667608594090071498701705736374456549242099327574730453769231296163762439291845085634125202146117514174604371492192456307134723497285394538450775068746027739022884158792489152014183062197292278150753016228355126344466537795509507384291095236344090858887517731101227074664383148762292812383661909319748521835723705937110188344068715850876928020497382931119912601985078926601291562721905136307029077907976578475840499511189444901270788285072226159743121689994839219681865823645069268234295394289884691197741588286173218031188968266795552313332070912169406109925675303704455167725944304348979580525310299043231336381966237792443822028247130892182446702174278972884727067494307329140703498895554150837404464554234163478346725860314130257880729952749511632556188770440630925466571764891185794764162143835024566427618289531578348410479762466529476317461187694849231284835343829029094496099811254058505318277526867218519334692927296802831041605756401471578206878484513760640521617608350472963518177044334555160140916341618893162552494558561609187220677621590065957263821379415771319308055708808505043766772358940170640319392105827790694082980262913453565926875754373019636720643904857492172453808638802037120524334400259835070135413846223178567568108014192164109943222542868821071040210099730879210774527485798451093625680996253722869163849475165365862338942578169245560228634631576129093353535037421602708033894460869779253684907623009418164749537539122006971357345479891932028291943135727391625238775352300371083506502907834544531413566784024026336898879816921367722785732155713557246578023805692523001474368471696086666893394142571840713197629663247909021004111946125607730529473827587742024526678835314824990215728537394787581597492638673993804723395552503604266094899356738058619989768742763132390705285906524559257623773943059459474396283608559220907265449905835885323008826269915237775556583255155206727915560980721201894067598624790558605341149243198796262241346959507308965392541702018997221830410194749689108583906661638869999927760817239504620950451541040314249055702874395132052626755513726096126170435886340330001045993414359211717795978693491026039199877527677765569453864958662054279561570285036269108732881992027213030568487131151141689863794634247061875231094776831362037307290485314946506686717530132454687170542586516659032368218645029991712311200639283917833489174573350652125241466131503445364521497531405971408952436683981034872010659930084760644058677572497615217047734239865563784628493740603108655179053469499790370752938813277054945144959626365448006059377888111934468938313681817655540880422891603180086426154457013279802955360425056433929173224048798912105743796797968324831004332900167597434618210778968697397323216407573966964611224431198483904435469668684548872437342371503371644285856543702131991661075990235530901680885228575555909049176803943316320905691146696098034629661453989054836036989644585871385788951708086851275148059485046257653536178049718112164997060320325278286220953344790579520430371326375726982709357853358305794204084979382027247975428483554563893349976806795306434480114065717276070328731575257353125058030133629924169394207474990884138884990263230415029324937102653735428542975420392831644908068545464166295509898766283899562257570193763675716184274569776150157848733938209093681204451362318939990253604009645185202079462038592429238009639197980459253231757539927678079411929298618939141872556115212952791453639144149758712064140471586424525448792034159424966809460867325206887313620509159210872791243537682212161084675649439457104594449118047005631044382262721495271625527124279826783028867854061250525133163599921149158228467890921706286222095110866691846412590458956799366202203383751691435392604819077002783902973398850035949620010389053939274332372084083906122613169118417071842986677613317088370773152077345469079256519531034683253968134607759137662465671840928714820626140679942132862639376655148431297018441914774305263605930848768202892624546271635452348871479438203725650015094538596898235728276481186817421864478179799152143737857646645146299556414915712525835725488121735278892398750173209538350003477555928797334881132018847403438633782908657245936356249815433380438323805598711117713723108902153441220459293315100803381355572133831559527241383605854027787291377355515729502030992026104418683383704152630622703075179208343709635103025666483189338254559021319818296455485045968859172964940968094463774617682626929750061665832965302794543959471877780794920503014449752273154213930673658281499932690633880630416421972008765970002390954619342725968951560525020001615111295954969060406132109120554135110163007660421977039881745669959031247238173203189672111993256860561678702850157707222012602258508421951438738497528837193118637328700242904191613260844867228331054544173653261851991054733816368897207027736735245379325338860580771410771928920384448196412151170272238383592713849742296450138576527015393242684003765523132217161734231919054351454041646137235450788307696005277446007817903649363616534075230876192706015900384627554896362813504909229720968864861442263940055121819704110055740047380242432799978468229252505492441797122684006416508691932519865279700018313854549386380655313620066613130980612302021582629159795513349964206926176257502861165881734508699656028651422115347029731929604970946013301412661021558607589308035429618699022388549571402900191249050017958606179131394193534208666318555713896930527458935115721277413619806593693215367515587303668982458019816208129925380396112016129009424885851664602600010242621943557977283677119379099615153992639170616983766228061941482790714522973517285677921861549059013824301474348192322777710436462940604245837365762337449400852426436878759566173400112612510925735943887423503817263681780680451148506239916168351497153827620119888598469365087825897641849876001222410005267042682091590665866431271340291591008767274665864647330345844392778604162091119404252236666352691462436646000355408522498825086541848054528473336143419583953730135329770474303362677558086429246228467835759824958401251035957471427930456089050251569196069883424354458193930936137205878568728083288341782987026933102099075042343242039737136054987756162749683227072385569020502169752579809388747388658565272845530837409033082246344625561055040533028604898602012283248389747643017239063878797181943573762419340297348781669994338642015296645265753858416670262744871412381677531461166454064626859053543306020828009975508448446796084718411835421999020864875263497861373056220343680437724911294812380475897710237021025433235658121524056260044376162417598362377897883864093184333644537900335371759117351101416471664272133841074155564884361606875020003747005429738999096335561890465529230401881021521353600262701500088761764642182811185732574285049443362758411421722790275911084179450171223339439025329028190395860458981315930023740281710771305721396370819469838639364519016984187761210304072496858285683619387069924107930358887407508136908630338151151654504124178472274399234397087709453917333002339316804264531745199461822758974992601895668523491294094817374027392456140461901718283211960467864054145573702805261941434987112212986254296389323050392792792787136840732553389561686446515621943402597547727097191642246015404689946171993749322004304325442170926280187702385793890342181337970521442517989079079439933073495053338402851444893304560571130909182719117981341363015478485527250714172734425408450526779125678829015126114610285768522775525323008365268817592977263313933648248538912933479457112634323076968616361433138408118499436897919947117029777505784331225036956435214370005332597405527482314336914483603483281001464413430141825709320755650866360135629268151703521844569893674994982614770614474435448740059157118022165834622168086975118907180962593148580065376785654080882860621634351808253514140119722281991504991190272104929476849367039517970596138575684904645968166116602175923870981886469926646967532264493508653888975985319316863309709247899986696302398024919624444654729232782659540143383601746781721990904376551608321400392293471296848435000387183475157139034253999513272920671753045326038253122027798565500575543800395849530096879662101633918902252853132657706338889434519996030680562852188966825580169678341533137647816804306501982444927906342781888346593379386662885336592544003319196794406546242119906607217674817660944338694174685014847597049208299072936224340421816944571945837246001999887200732099180987202267563286839000116084299703717638560808498910298046525278326601492763526838123530339794323380488411274228455235493646057692129699549833076876384072115272560930891934432753061313678265730177901691207865232267993624874539042699011981349220932839778207194215524156563755300179372011496240042551067701311489601569117972898700469185956491621422898384939330174910339661521704968362563282197903802233233993879675965991466524456773626606776641628669919995230941875599236650217754041588725927809243445680620254548878264943290781479543680759095301358303976806258711488291235266514387165025267971372234731200013981424923274190928085138576759009468220882919408480618319742153991660057620000951746962983519021098255714541912693914516834552061752215317353471371850267320029002458013375572602772589914607787521913802528331990278010756890992389205329312151304245589804171116795736942595319225216495794644274320765798234803363322184686538360390485523881650699333617542841819762072405832836401175055176966643127815944785525166136114068831164436885454497411467021321708494328995498243212989607059890542049642524631802517330142923794127234624749901814220139890849531919190799637697882730634393275135918017039119171463138048309117759387060470110611621166062525867582936919679244127537584182705378362392242279049560974694877722155191394646513874705253141853146582365915930971012089142189504114318186919587307508499970418198496459759032379195196085041055652744500843793292475649387599470229848798241559484130257257114061810941969859140314886813576107938095099933529864410018704089420518545664049642939004193564735878486804393149666381415957728811829626092207385893917848450764745804743457262668240258998985448942827122880213404629450984135960654666894663391129176030846523756562599327805328922433429777030194069061372208087041847354377188246013885798186807836506704971145094013414577102203437499165463726403502800533652636938797265056966929655526977149067819576653317170833951746548808315857900370775163784100729990927042479089225569675663505419464419918267593275118636617631244799805832350239211686262519345806907821773124178898512849433389447910203752700870122730650122326465816956632628286431146893828172746249048672526354741357289219186025184749958973185547354054187549951051601656328774028589462410215467723838507119797556528166098921711846668270720349557212644728716835535514987374205707216887472948981793759072536503483938953430619373286194263546428605131275184400742160967587481601372413719394568966223868516885936070397329470602311758385110408973349326139204792778360619808226050085337873473104365593479582951774937219111224001713232194420484854176777837178095056829942387124442587861135989804438182750328193607408338615156530474592355406965814185853085310075994393220778960145922195519381937639971298614869202929960431691515912435426318532402415088799821804871943298878325298089005968354085014992966536758267244396007991688711511710596462673366424250316656535577984205482573950272983748583526399276127388913099245219917895332597390907083066836402002548858129264062263506347742064872089479320146421415359663630933140641411715934368551339146925808839862577723712298038217483538544950756338361735597670787001188030802353260152278804742827791081570873681715345310443895297400710191596274164762605551796764865415813492796302494497951418897791360514304281616553649811338792556504191061486120085322882895627801342120897292111856148917468973755980862318515765856414780879531180702964600402402678739911825230978459560475229348481812763106098742689912904034421266243424284733907639093609355556767943888701780984999613544755034736549131947944987913705455285220339701907650802733680776449363358876807604922014464262476034490722079182634093939027336558903935053727266155345192814653898221564483051173720590505397475625037814793469998103198383342495284722620324397763865760696441454953413344771065264808445869675351388584184639832750526339662094295523829133879970029366027540989000347914784634502383529821464989410258007226329537429988983049660186704105358834492115226658226714190028510501003175159682180935510913291534809692156149414785267288539479068812503045022085705872436828718569751104968751521253371007370704901705346567655773911833186704073149047075363723779232374133767075536719690945762195102095717790968872174616588265614755939959331511360952380741085315931489778006012277300690987892035838618455067539404504249647043995714281692977625575260669577448999680696835278409096472714675993333048893023156334779447747241287359748965514143679250481113026405872573481955677035019571777952187452136127594252711817707982046882177700488246420871118850999448901060395806770548648224087216558242362869821365768733273215816782806730880844366169299491905287825405744409372513979747942373602897432591766418978166036434672164310566195876265880931227175985649195768559770180395946592748755195581173954663052937379509833991466721160809088726692706149218153184178960924995115433627153349102922004692308583478246497181263964512017302672270244451319144112142636212636876883874221304043580938393189933968678175587292515175079421735681637195503346523938528643648217061813249302854508747838980678146846300106237954759995156891594295029832413688690405853853755112094719396933496599709252515414931978597983403553973026653537067069139798958999156049372438634922609758854646741449319886245253202245416175142183284360546433616623979012197165358356217002000429039111877693367487250472232128961552462167717319613388207089309670110361861828540097364220759531844175038884378912550904544381748476048301254863637955019436569927839154417659128599264700342431420241413643237776792622118665196311170460916698013380739471769742811613248348076647400901876373182127022091669543943355759433259270295920012158680370694946741195892111602095658572612618049338418448084388604630646085541481892175834181519480618986496224242003654688810341498057017256439589399693625110151721859883227283269069772301208907518427609474105296586711775694120641166199047987053932566175058588037555614756443956623654367102424656170409242004260719927021419072239594083481780815913018516966917127248586522684004746517248757404761076453417678260463641509598949852959330508438034873261175724912986307329918054695551980917604791608873084292128473792849885878769446864597083120784984653106173196754424455755988953971500045350567976822179368704260372270734093037827817110122742892802073748159381893510392829991776382229518199972934232220679617746932346366942087828979160563894712275146430487044799836620771305683387177098206796590080349493890450582792369150062114511927582497857296242280825891991836363779931180281936185785308728832573027484932993175974224780424519199680111698538604088963038852526184478746631922206641628888907269970069025134323640076395027697309530753022187661520890578540730824766561255972830603500773665616086890223171907430507918940854417610623199209077486384570546847524763360255347206696772685726744138208423777933709134444578488110029535236047777979627100437660127504321642619000137721225859118524330100770769900170535039409225618094855982422378685953145637832107537740256760381407353967128594617625726784997892725569867514134498673118870920467290025563736922128400596449065547166610115678130113804697843289227215506960888581456773820642492823917443041857381448648431644190144443440443498441864674304127343061345781987014818294801145658702534195472234023580235831457390791793910769079610421433029486435690971368256624865677116326503697661618019023906982551137184439147422037805065642038274939729846447563877579463955903995468015831990232425500622674030832046410630614832213079712170531176413034837898473769852095661345820362706207067687878939855027733691185892350115714319280478370320596742879130162070259754683221434348412130538263219782603856160361745174254275670463441220684178944836849090016115139628739227477431979957491413340249422884420825868266452699100554204813311473703387348062484618520912888895110566528601248554460679763896894882663764673271803774991406702398878259125392090331960134032740820764957234766454469430141040618348792741371336525751013693126787093157645009623103095389681057048696295905641188935163189403280889055711906240961115941873670983338489355694804772934240118026982012863944366443675375354808429833022751466192086685200114793665167465939412523392931174163547930005392168304163673336791676849569470587369978441991664741618398558887642168487324129286793304244152799028610823909077716778835480304622696041451423657549843987003502403144449412165872777164071868849426436913486027654506021669565885067063747713407758846054449245715070407020888100355913631480950782220695515411515843103527156122219455928101627749642021515638054297405083660220124827875834419404985097126231569302741003675315381599777862973075294483542791166283861573882917943289747553781806277182144880622513802841569310227863091486766887325426998841782998744272264654385034622712753791319661961710135211850465132613810476790544278883040647345191082036268917771502505045470415993069917701822598198730032491792673708736351785067950313914452514651580811712828377698958937861160877506731120420009886978915257378031870368700493930229715426113383735039983412315511685846372919867889587585636723948923471529190467147009648852638852482069938910360911849649011606599648582159956623475968705248298404105184642896210323145372426192640141038421997966834034611542378253575648551592859295562132971335325081790519140996615606621408761523965910088686587508480678809760630902640213790792568102316733405739890371646487142397769433420578135929837347142367453644577070170784003972168621680681895951932400530915851357597254942563002525615502808158387128690834223170443972175992383739050024493535417178272022161856230954894364220943265468198868649029753003072244791457754614148654879839646034484778188585680971180035181577599513913833125221644722429280455983054892062667978910835015907329544771285042707513803407295701153096198250160236894212985520303291145987983473579539174009704189196540695373794304173406844163510809550181921334869142273328877718442284389758756246645149722915859185083012229470051404273092701883562789842093344070943830313306771983861359278473943832705476875190674309089411435525015387251141075454557793165068750322421983930127382657520069950942356175718779144421320361469694668390916699231349069554362973014553109874762078855420116807049549212009862315019522241454500425203692416401718944856057882350438374149216820664180786144880573486313241249094034981614545277326833699124807434118700951989789083123883235963935536838428771482737105908610836834034567044681662078535594262076205176818162791692974421744627838098472979026586273506551009949832815882869309356045301010424176009873560573833494615294767230742030446077555554430201930950485286959649026995711424777097985188406002785902393463229253186678850469053401736948621621819550302101596499059113879796730959039481613473862341228791296636630182223969532638917924078524807345235493098028418903269422367804673828955742070741796260716836620739732124808260884095381464993478059407195169912843209347486113736042044424362700670001841364272331024976451259669712141403125992453726562287068045572615963055753522109356727539111860939884571844571144813688472303984017841450720188481268393400171840049715075514876958450780168058736773186177288010656791603809188309375502600929580253099092284843674841390406276589676582101190187531535592171589692181343055783865602483966388065397647765579911783515273590078389364884281012250593896499948972422644271600480152374143642927938083333648649180494600916453084047898237781335221679783596321685120618948359175323036543050076554757824543092916698769495453713858462192827709244745134511056699813575834561891009056854748651760127669992647893738275710333234783927621272778620183241581159398269532971701936949048421606703846394369321026996750328283585640418035767048340152840236872935314158029483830614322351631601322495254998235302047673547275809698045215754107612635009435559528574425036051239762111150921399641323715767313220849013905121893604264638562657138605554522934703069129893195236697954982476642411287272537073419901340717707454134351459008368478906866761995422687381075962508253559409704714153934847828899103550456053821860504284616395576014051020528149971144124014956535446838174999894517321298213762307604763151905635303532278364069557912836813025082405103098626658867239470223146255468604664552474972962535712041272123507188340296674403508532381668248992531431861567615905574096289103736722600879878294833115632703542740161529966841355866604827662451210560182029201611851285407326706085439496393753809114991966093913954054840001441115948932567034754252560614422524655952810351711400858737962058069868069663278323609693895742343680162464628295546009463631222989887009178535414696611568086597777229175272660231811899055335416280746147459822371135587730421080135229919338168445822550960177331294355885829683555868492731997464691154714999758113983486888857983029402599217451199580442839330363646343349684739033540160778234375122436974287464037006939961130811022187756989439190783038168612198318555547818574880983962946745089734316019831715469335435098831673479344307172086103508549997195973984910916743212718301033540916925666183163844656557134696944767827293081642193779462108931025612109707199317987877628206757743958256446672684267598188162047649022982762822853366638665876644190585825195589711431721759269640991852020491715356754103033313229211598861626511509202234654019595259785773490794590589277883202638358261080635693748607552796877134209564728436964118479462690388075229548710237199759430382721735366044149382568692778782518531026062567571870500093686274839000777570287093772132876835764782622259168312383644749044074604196436746783949252553840440977136733901340832685369001696555776291384125098474620259466267296457961552679812643263217372738512996836759550868479238399533240197871831274992923578121955073382514972318651422898930709432616173900406006823552229141024920034525004919801356760460818190445604660939850316077260939431642144742879340358316936145129179960584501571376001024519476810963586773619698343308561382653016633331698952216068980298415510525070196353514140514528334858219713983420965539556005960342518601334501135769087008110887280397406619589902596448964616423621353581564674635267747289566287798119178931078972685837927883158347799679768668698355431923092513043273744280136980765339251186758039666734235493181113005039779132947695356822365738445262491860707860923464935733846957536785321402660282358603960319836105767795948634542567780769428535761281013735344150693953757770446037552854002255057822905564957371388977790570020786420744409396083213350185395421049892793366293547928489302667282381097138483584304989090825238429801617946931247672239395840261534816246823145633717207953770593364644109701746143308345098050853452123523860957464027937909899928220288941991881245092725947797647760293341076501354281716760394784088521583418042300888536084384875112768377093380154785927996019591199578002867415015912287660572037376976966664325354739831811253148787937878114744483246026192924752746052067350681265310475810458640629436614788037063474314901801718567249320800759701421876028674323523863227376212357821911324896982782808509986258146879610284508024549369207401330170527357280295287402933340125056646128118303986770486342480282974915480915720258475147288523840880690929577280943443022396150040296216574258460771486075254301612155911227432108113768157996746860629065377577338738659507724620136826219711123319704139559825728982953304795925512537216608720457767736371658159447862187021608546734115081913957700337695836940530319060879221493671044354391515707192911248868923467545551492257121146587627255861081584917326292745804885271067456310236810112156329022618883296001284021799210531521338275147034511175491227726528936355424911049224890648102369075044021041336359959239618288142713643358738809158494274773146972821886206364297545432905152948960029743042380269529429038268119591573060969724907341180241059611884330860264070039503623166167564877273804553150354128615178645273978074914349195034563797455912070369884794843408653200269635117169135688223443119626805406797143994602616947882273827234494296152597024132908079939797109743293219936969902887828127593672146647607293266155349152153067786628059369589021158144321532829457231021575923403304827740621852973040346154322065336629905969734849371426158337117017303147169236489609949512990069390994384304634966502401870553306162661572940817331684208726125513871656005676028739311160435208415149179776928681869230304658112621161375746966631490419180300619702999117611291117468074565715203608522127915712928499380163132119718075511719708724021082525036095322215968344011374386933730331289518859133640002045026910392424441052460960209525418194811320096556660655096364849087903046066161473364598572176062643064017313682123540849626489768080739549181359212830056429563131426109500522651172108491018067833078518395424167996576039464012770535614420823976350922824652111087535669340458644760599040364038675569682993673527704677977307055787689588090636115052064440897114318187929402555517605998660798293062941204351127967547174898795407126887891184730428162237407671894895042778512790924995362609024948577100193959088778116450362175477448136655186438461359706506745966779250977282948191991539262662725566885255921936697144033327342878882585188998512588717684859925112513004116759762372346265841179650396664968288192228108034046093070069140617778099331465900052108619913173929508524162852958677851885891687309386709482647169439761550525811666557764835097909819572929597041399941308604821999389492349983665618582523171701515984521472108165153290735140959748065131186754491201028494589236082882994232912529426546860516632741345037636624219371971455953434782127456710573551822251226448846604008504202734079270821874105081408202003215966654037470849923814767433227986561727974805732954099199805048311051648853884300426693283790330799170345464094895546022222355706778231195071027845730777108193984455337324814574180339340898673540122566397831220700116858368005441309839976682255694626661586103262122974563500652886989332974366911420557609299335762196560659668050845303290722054420104504278245281457230759860807307352068313168271554913434909943543897605570594178285025758008706386017275378800513603507856026613444730870230467595385757645940090140509406147345103898211444276328596409395015049713321602982156721474694443661706285126153264186971643616087313192822343375791207772729174453962909046261644611881037067952190476332010261847669279741976131494853919517838845812554420491450219092855887620092079732540336625015207428097740365176364060550802301217289445869295081927970790297808594173765082954675591750090149401596717924153851198516474519097388534301903854388807973639127356642217928472824420442820231815112772435534290688013577315990960255476555544063111195026956889701499353369650422934998611195796242169876016089631047241761471598899877690243408998892782374334711287181740130730761287079014435683992661562256155790290975186485476082279143361691505142144817976154020443223378711865364725717839866497170450398496789169077107791450407086859608199805298655138826598017771663197943586091198418386014937505632214782196241482421301642675493020209302248387105816243380243565559094646812743538012072964404468757355366818542363190317673276300420505248601802073922032625594739944300802090435301096945144479132980828174520583004807539941014792880868620240855601844305482120114051428366194407623882043958519645279024223707486192309798769622676560992111822739973064459436259374992346367259782661394804871833935282897731721047327345422589877933205849984390974012110868253902207365642069205610921350037888908605303924342817848474662184446317939950292978572504308708088531728477331306711746409583469519632890729779214845560112429023899156732185096639293836000629525328341104305737336202336500747696116722332689467873369511364714791385920291229060366077678951834776124271368706751923885279002167584374060641977048718306199743863784657243074619737121004756778838868464644924565388150260108839205526560302083728906800155555674072147011276801926067522790248337268640462465313372127741401297562240079974281953812377195680120798435889320960546783219973763043979501281947661639650343973042309889818106721142159000144734782117814829804948327856963084546197774112655912166541832941718520220574772521351472994486750782023115489438414911148138006150654182635747993010274211088406364987112948892802197375356859558863426031616152851353947338230346951409746632134422994906027175489409561483618369474241514805471497213380709509789602231056023666245142076335587362068574912168777450766779655219101683547880329534500989533555344778674113832722415171285295090859405010694202590434764205030944863974272363343293734399497885313514315898021344636093173566722337435475894707466173863182938120341608100852548833688381187675442836629679555601730018033802880311569769388622249956787956076980232278465330278168018508531875496460935429579363487882685567448588384137976520976547775174582576331143581085121211051902415912389104241231846375991374917809221234129204815104264910401162995265858167356929087796613626748114946135970735421738860715086708759431529355101338592722850783070457535508892973012393609919812103351427794443211937936175550726309143030194854216082140190399029346793425605853594795724694944187499105908435670828046480275969784409783159639929324197608287383346515360793076620148459976350504561594927924555609605232208959607302742178040292932966183431382720731587586717480735900287501208977830203280785705527677563501095479262641177136609825927944694253255095049828334331136421106800014458944636862929666787327926470600245163089167647732519523737867995065126217396938821710852628936842468856331482948720275140244414278455017380486962567958693103980472554411044698661530682137278494474222450291822481543759347399011397116674815808271727301768760795123907763598887971114093222073271178208522115319744618308494255063930278253237903476704055925791453624033067977608773834065707490947431566005537155789461820494083444947950724526394716365480726215748777044927182656473493515807218350884958147458286348831370166626909065978079022641107984268071719970600659302379081065372029686998764052689203320461403891271495503424838862001295033762986967075057881113865860302638972742943513041987341414492810247831301964720816616114665397304525975880916043423570482954465962796952688730200662893426865915046863109511570108613345612243489620409537017573745814705127413521443970986089540869627694830176842062149762327389558431115455469642816011802964948133880279162740909319986295635557310208220465087101152360126540759381199876859286470607736213255479802891139198065721564699214654126171558904775771523394721798401049936953806893123389012012339824087590130444063012478668538681913523083538508269237037522998819119598819200710548147529723167288337044286734269140278988033841950404581126129721232155289627420382722364142869480611852947368805619513944246958524720010284080589540897241384936118326103037824526475525123346778997878478092655344497205504321806086969596986759592028691415781272180559611224822210075276747724376968406922415857777973078079375842502654438675116652608168532351701984803985155685295818810838993396397997796946475506911523957491805833775713983829288069330314834968539824347490687825953184904763005594084197288184408573716063836070175237721319058000643532083626990583768701167060585001939336171692113513118853487873345101651175950554884164144979720469329423304394111997642531384319872379193404934183958180160176626397460113711917155632614467265471910833545362341647572928910702375222972891504335458643787099620077484454688526106998424264657170019794413871543911458827854093849404241556560126474201393785429589759335311953785621484799254408979560049372102326456548434509235060795133330170097437755912498493339631428923230048032360329767727447462540549963760248736085812930869060183141875329354568956547111380350290266404213221191251764617584209732698405660180264913844558909989602642855546348946019791051091945272522534604403826285161979347909698798879721176931326998874774445934123787342672496356533241295772555373879794483266532856303028885699738935160250227945011589136687411597156078675500570604560445996250429030733723901433844250174985640028412332852042705833715062534678682085907441856831267368655870114419931448214444892605226815818801598656426081229676653944609209857355098665307324482731101991993248193102381637076925470101938240448802235467822675823534755186386438406181341729323077128719712937539566599026722457249580011597845599661450882136112369479335594657090620131534776477182205818736374336314113574123731621623563815257672629635997263042106945213288640025700293499782901566383651522467037423678493264787993669536645457243280317386362979549305390726483535160400778543689856482992811637382836346304481690672378374604609369933460988458509485360658512134923855133160649398729964830603271077720781768877597229866078693581595253918401288367564181831076496935393330614467229416941817812467387599686192735952806180918102470928444891535134115631516623591420436636082040514090294283234153895023321518073185337647322148980947419184772194715892529248396782022807649186692427791822217291948149017977477525822026508214178646342257597591415639509768703661066346809603582973722140406720516329636090780090381836936766225742239744220928002102076848434023377462306924955527131133711044226879593630097230545065109527791624717555962206492396914966315330839915141389350613398607640862446132363897424447737615795368737730447257245425374933343682788754448168173018759356137837438686138636092412711392771902591102324793780171017913668571232204382815524222030284289417989282073124824065625045060209843314565030443050996126664426694197334838383783348500249680507067981422548995173652306350340420728061292718754495141891417878545577048650817878176028132767589588499322774732152868805984525258493202722284408044435541637912013363593022240110227876770825288044368296619369045170676267603837371997995006780698507454513013618515018184195147846496865295512600923905596760046591757459287917538818632284225343710004441269331644747821135566607581184577874852947232300301724320975685268930820039898136689587283471572731854832974153021889658231233223109987505140051104143361469158453532424442481323596089570937764430299476344313604244320402231947577307190633252908078503836728229297452467233453116010445547246699493746963870938485905312973407005856456267224663802705363268244879736696001663000997200820730796231935262630067650349985404166762915519214216922897710821465762550299567920202081202196793439767615659053106864690764606029581483265150198889483541148655640845268504081279150811659846416040572978060646084147290704855776851815257320161320096761667727289867811629133902068214089565048964739280516933925036073084469769891996748663759004482010447535820293120676299959603759114551140541211012318056538841231976167220591512344383335235829271620350629560975896921182241841994156918104047288548423422609479233176468816026392921774042371385857399867425128275537784066277042654331988576065583960496903965492990761075613276556994763973450138205473270316392639460248483652689432178868160612656866322049307539076453025524365437073880349931935612317696402446057677201359911865909179457759914400991426242172431070002916778494054467357847173026405853640673974258268324066411133473278052627163150790073838447977444968534563413335847745647323179316355597040368656022575276345274487281216761911566871183554216399427200284913002897113429566797496182193266673809371414838318510157755155443333092060524633611128793761250746876311934745774931529242247984581989049612794720309506945108973494347601115047807161220825506821961547797831883459730642278416604624139455277049239146193709090041592541758691599552422048361967248080659680015182337771977858899783864912169886977173892984520836072957224447048450575334784058533385331950624783032274577683608468075103663594314332890628037008034983348099640882271950055802439427187027721149039663093125362284234691893114836840784783474359931426147731108841245867805844386610513852040472324714278889375764549900217644159509611095538990475009290261301343756945497682079907474741684760365446606826478995593973177195898512753730408483536897586934051064587332910101952493936132321878667208133654584588255729678475884320837413060286365745481956495687558238007444151134140620824949388111902853381013568773049999926732825608764104422608004692416556364131833039422806737916040402928815754030179261382639722350107192785381419511954307541263874313769419536486582848773611589432633162062578106973629572520190754037639473240471561607544283091306368882761703322695976320179772869856373770298197609561355522334224175507700503610954364378396964299609018532339460336739622035098013038425784693221872136938512470653627922654391557666153603133750963117266334659985908599000593970430294245421930748763344897274026222892839716359893873119792719100543948497446449822747910997440930351377425582925977966763118085022668596500600683555975361247207364587737106029929832337319033044534955450165524220653672748319990953473715757157284394191458742480684669084460376023013090387634245249947999290414952620456817309357878725461554164310924974074002216852590705644046493729495114331056529980471375945924005460847051509173798481817446542785656860936356731987308134022812500391407662329944591288079907908105446797808299570364365179202880718066023127157406907928973782593466872619447384682811495569123124146320092731343147775061800661455324403723866660741013422050871166084970647684018495645617381054603107213486004977698871338268817847803301596225941880204919551878903962513616911946029077105195784090444429707525110251324368896895706949504880778901043884473300868089264185900277158262846785801462948386914969793478520270537162091046810441208263027325663647953100220084036165158142595157396427494136178610522427415396887053280882520369604884078705861528988271825187777065244293862334031572985366809817255540504683203159909452362108049446245019007706149394958534117404846195072854380403419707648195007318245663069316576208003692685115654647722942597592935194527123662861204643305875442357920536099750369948209739564306290939758147824561030149745024600017380467066023388706421467509147227908880499626014991932422978473014938599336934564621605793381970997170410037676838826741628514397387646092038089904466419165450461703668707419718300502792909811005549573728059934800934916081655479625880241865650975837168165634392460887666623586434569660368274119148811980302086336122247005301724209944157550645720464428064476531858696901424963929105986573644911190240598880221083695430128847915867715681183360684435672921199081531536705969343069409106854221083830587903120056350159920739731303636454415841958885451360072516012955381483096344070259368661299790577037738375349004821237520392263643681676479763821894924854906476971404344504248585623367018673298038853238007862982675214639516639487629678869211634236064506879875749398813035636681880167679400445271293732390119330526638190787145384445844063292970088875454779193706528641574814745143917009856352833996573562736651675402874379708973691590550708721560347474762895963022807774217971403403794440928331922515049162895859723118819777660251912117204018354679066357174404929765046789765181163987208172894608478849753111729679124030726562328180037878185381935001634912750951267707072038165125212456922335967904590828040044482659645907643028785730933870867150925971791865530069197268745741500168811381596552825780213765515038308226350086005892159438858170137426419792894499836008388845826751407580119500756798492846087107317073444994786187859750182267871699966348620415270687041187279438975657332212645909767329500561025759453477958536869611671921889655986989089637541983457270789394254053585656331510053184573689693407591730441053506174734932442157586625227493785108859856878846509131240108627476828229583047916798496990570448189638963732598800113483173343093258711370915641286647403281457604254817080995485869247154758935470129760652874677009008481813751675857750513514936589915153584419307849898377106155235357294380165467870015845879841029320168471278941507419961504352739434535582997571074954447756160746065613339512224861521558448768952602303331210557994393342768354740117956930512318137860581938964019230159840973590578041681508515752440496648239058445341051055429944780271182282159703969388152161770468546719333275203840240858798111560338434917527142728078521628758569220314368331897775932510000299166962571724781630749907579943148966819139066406088735406521977169359396988611294909026535830051881083446503050224725026085611159663179057199085802025715947269292677320364239885134464693115756708709975620096877805886676471609674262136209591467422690523193525261531403048772887929329886700429221235337062359571252445360745937047543828704301850374423947863642462679041390298970596177196674690893934817203223422257496119598165560059708602984050987654984191432662177441282894117361225300938621257344635092328347855888628958250029846719288767394763673818356506452496974658887207174668689499750359502460894225317682966670904188774542820692352317826274001839384306661003796202911013837222901989961771441296803821562862067162261078839850661014875457275332071172945049394670571482287350355584875758200987045129332505869747901049163080765096983078390452914639824752359472721814269207450397520841151527274077525921339148787453587741135942893144112673225429385389310063966980778841273896902252241099081078140439184471555462684918534007731093746276191117003343559678438715082744616917863473177094700113199535227119616891794369790556908442388806313960520624506035541685819550792298209335147271849548679595705383131192847004732772697956835407426850437715104330583388972176664000385444822092192707469760289993785815942121515716693853932537457198720742922265984675896770052539442862513072755334826584259276976856062946048871934855093183760635468211204990074065559357226382569250288263781531109787410116934196529016835421500434022402117718917227401992093226587273577786628814339208686835769317912313812884328463703338850867208603606654347192643366927124536447578098347972533386948173564673832908594502522630591032888428360267443847214611978718741097056991642139148189296364449387014770845669199262709886776111912623843386862050237878119065883179584751739298084550305148411966363259165568746430354144970707217913705950120299196932025386652938705314859623044774676609500626938667803123750553004501405162359545924800576789589203804183706711117623881890082717600268387157999139612975744498527468906382260481697098668344327923224165275608728856341978782435299682855752851324355643037406750711681282894763563497078345986078368709358864884479025499764361603953555805604686356610148387129387272324231316941437164553031771606222550110904443315716366488578606710684317235620256391303520739332249394378282022199484786373471935293601236014219978581517405680412971805930624791387971205294620039156917190872626161864577977747577429403027850659811388022481585206109930694646329238734729190230908627375790428716586196151757772422442731604923995544578945415129277401146397822233597037514317819562170219644230318583987557405788590519025476450704792443956434502171792846466435798763204597631050840515404910689165077407170328741098702989703245838253369900129071951666952274504096735167229573095630107024110382613638353250414179986301250738947854017177151290789005955532635872928211507026268115663533948660823646526706163513621075723103276424277046321310284106155653985743954528605724579267061807510393282055346707165453095499211967261264376503307248828263185257299157543212438859524333072373277825259332809319819222304559000029625995287982798208063874806478099610160783878849515124263578660197376005034715913178611970917178833169634170705902555972056307448733706651977065081344844527552819499600647330871658535935372889486814588673852655884514140109195800480731242276049094221074535210336339032704075395030144452179381896457320249872883662397592346463719490153200849175117211227609449374267897311474589944629997995861583204891607033595555258449771125959316754864249602622576741495641878687642953113591198295094125895242896576699485901425414100126848197260010174472910231877074720298045764789299604334988821032773168571025321031327436995445998061924226634213825471427093028671415933906818017271952540448227251413373886974542524636023715291534630092591412469868531711763938676612042293706515277170901273250085224066717203327734737245536571111515667795984469237025554562114237406750975585848811069893399696199031743617809332617876943623259876448627777943951789561743094668659461412312539593501398833955166244724609294542931685870231450819504288424079601107475860759936099567833979347637664690054485276424808891539637606766142195820889910328983076349401478738347826830500257906516986122079095373130626591810480090749903697215140027770528946213712933153478128129622875836556744583455710307372950766402397760043938197479774449580715879741283773107873032283147848523751408966796492423524433875255991005359447575802640162693323902860415663629640993420595305533497059109030098743315831833321472175709681534289849281433215462209747699209663929409080864442731915490847125798594401352147365196734606392400013668094153626463141748410181285511045787884153815771793520209356214975735368216662322877591629880427242101474628643472870979868011361561593938309588486277692680854203973125894552210973894515920557589010622383332264082339916434592711246415870694155766563876567710061801859760417962601443805336841884952897598738423056357364091788867738063726121909401015488138380434231544809581619374686771683132671287420994290020963158029893372398825638973925937210248179111475409964899782181595376840923613903495623791817831228061470079101089279559045167637772414865551475405780836828792833337398415702742638212174117052472863486206985003348726002067502575429994446619787188143912295902351672047585539212694598751744913501705746713972722053076565937301629006508127651035173865366480186983964938169845056873629619697594036462152707556505505841445140071879423321498954399289387611309091570630335515782878183192993070567973760311564259487709867033582424743583228742216281450310751943164958605844430011927879250431810326907027258214783222303354714707785395570941430360964479817664311514367544303903389715052861088066124639234244418903863607839785235539329135444343275522880655293483353659620365704197673654698256085746950096613842938184932879530152257969204074160472640359868311574332364801593006299785931890718193185238913121653525455888700455559471360994866404087838607464269557866464528492661515885515123763792713816299225921109563652881848427171213751949594770229093721128124520480890232437652058657191046231586530842837761371687589928063609751657294690612557692102823301103061231074917447638043547078604144173461954713197609078302168561982955591954635361196965046550121390028615598603274631815393340668228912821252188399855710614902215492285734545252558869428879502951581438745748898424717424727771278416142842182168225587556935003158105993229411691787771529103917564313192736351736401630788264735994997388456402550570217663211586357039663382212605171548558799223370303986316410429958360374126524105294560433940633946608545846068642118115533791735389974362462811735005117094763823651464855464292203586426562296644475151337676912189064870178078331118410069453568968623860131582222662724029715816325343916957207076412768497872863227950793328694027306385449734413258734617496051913667480161894724821542780579157089375451752222108250834390343338471808171333622725715264604306969301173415117973385556479292902318567519492302360664195199127001865869401283989034794068824095932530238760257249205827518602009252802066068903758684135710136308748140011055869458533400759227733533376421582904317808056752418732653161150347496470010143402133959900256448573596115992553852501678205096387592091504939560514690197569036131446207281679252633155993063568551777587549548649152394086063675599068952111599341089563396065738909874033661038204708996448963053602335341872508650291246614873989267880566576419179848881140797233595055987425990428095351996476969551676252604876396531369689565392023613048305181352628663435223755553373030611152102292097143519425446712708155570199808226252139885048508911417680854615153704750954554475895393055784342941409322554640533358413516409845012649980628412662575606745927731076607037245328066833032068678032639707237169364119503956268694715938573162986303832522577099435170556679262797785236380429918478694334539611887896982918847321603997448158154588169005951268978451373081871469383805166503216788568321457815535850480543116004074614263824557040544671327313465638749630906390648543122665212055082231848774684958297446349205730084639957483772167180087809966846251616464283411719420275753422197246075267765585231823338519647431538277720071277058408548349145638679446197718365085952159072034536721526274487165445428756162695036853280075123497817688847253005287679407641078588237723202260405453320836447567988831446177542088591165888728605671636078031816090867669420780721829455065638870458825306005262189279978241153530386273939453775116647656919959770427898139413551471051513820004861225265116686587288993741112471546798282394082898435889930452118500612594967471410394870516878485219610833404777863817013178696243016154246560796612265157971194680685966206121131439635845288418491038077091697885480742098364301324516730914363761951721061272090674674223388904877320022331000186232011204610747797105273722850503306532085879728097697179630157629612278555235476953932914353255249107831340029908746450203825769008583960453298237692920044656491588578711145051646914648372075197804905455069533999552723994255843732050245101606309893025785261863162128333739221184627808344058316372723985087930986488084000505266488442034669710168798965755883444780373000812184842741871051621040364387887887914329114383717550187035708494300860929629777930461152442261498732776891317566000007816891619625376674215643876720624938319611394487000338259093334068652794364760866608445292326754104587815935919843551438686198452468352100607128873270048083651997010865723634311105924183571544855627354406510601061506267906740103367638481708658610629791733864872063999281032508198565406778842752831946208051058358121537681096921834410311882925477464358487890939499697341799958419708426816111916815484393160810286848068689460445074687454633689069097970259042283492073505610427182309662011112275462161623507594020908537084585493303283904020438533119342672004660025840369518848761814336548008732297832097220165497355175182009133141994455197720000424099247242562135403065999474390988432520414647577359490804078558149459496071290445484294927722528209252443826681697007638786963960482959402251265870549436145022253046453468913706518247632795314710188299423235527511038271346601444157816072177915353060160679610641967206723184052158526666642730828678434528905201208440429423882598276505715915037428676582710102445610280805104520421652695887591465421984954054796278869662893267042901380647293083890218741406732342758424071917189047500528570935556512325943673412615682733603091621240930456818520009260813456356898549570131483261727120551258782603431026076197388835155741121447871465335766035963100774011743849251007249241957520794257418483708346067487851707297865978292339842267385982171392110835913005241595668133802054439692677740360871607737725669707968958915258252881239686436247387167528719559143266308966325368000619707460887940962210457139343906190030186366126599264437029975702916463413828099019649883055832618481596428425554782332939930746860140249165617175036682743735262940717764201176425194419504425829829912449406615410590697458482690430142545250925011400737115108617491859715647697993815084112293503600171941931502030533552145743896223581054023226727109556307648918466288989020879722285690993334618863820787806055961431662987569141015583882688461280323361908516573598255157965440385200864898961674782329299911895189518874000351152169444351904834700206809162192391039183340301045256465388808695471783320900957313636858043004257104733110735784141329540154447116481670564120421452606305107698456051265273146863252267162173180078391061740700125192924602120098748258539203374801037639075406065966815512428195846741179314571096541979948017960594806693656689907438193809237617341178106288000616716109398693984868785667621564809950409625780942852216604164041850994392506749805365115177438916761816838796090255416490222938936888791924427114701961730228450721413777791640366093197584118820213164434159907550450353381394711706655250818550644939830166022613108729959181084877976435115543457772891188249406192933078538762619574954699507730790565334669231930629585691969718170464852513801775924186133165517907711725459245727498298217701348514335551906881577161488943854611976968637028432633294639459447533348008663081471653438363664793682554123124088091966754922906473024576757586127673892718984727349591183092400764517760807678231785867672054757163120023374166829478661681561450225201317460791966599797291568985274803543638209019372753574444400089514326067856115783625454956041041180152399236970414548752278991753886828756636402963650178381067030847678851795762361711172295161247199462335475628174715310721411651350761965206783971814505087163841465029223575620360464171886602374456033259081031099323569969322610136832380546193784623470283994834081337244515977609999876456670003323324841046434433074688280640983587338038619689969148926838686646414180534664323476741624219310411662115887496455177443506812879338157850028672585089547077088763973262036514878868067361468333796472920943974357268276792818841803546951923871869806645765835840960758769985260160495798053798980844067075032660855866571589187548821277623764807302711743278421897105594960562620762295903164594402335466489980841783973175515208114978920155156709652345933455832554947844442927078400337183685679641686156773585293134313243749067887411103846609865750269588306232730558034405187652472433807644626447575353235625618277810040098067366678616157222137310381555314610913169138357424312016121339815324951329594086480708997019977531964425664088410079167243811200405254882246029739750534628264672736202699317034860976142544816698165243829595211185824292259332009058107717555597826274118233074198947924279904362327792579004784825783015516278007679440663242663869952428981040940577339566474277255945576932276672877247297092403148032700788749729085047378798627905907208597688057609078241296327408745591767123357496193916173997384044060043591215216268532379154400440168006698752031153206700589868131140489435356359955041569230942134306445854338733054292890313907858280587257591872972485080608646456508004788479817579689375081503415182571117893787308962603754706724843342449164122104889048822650104643390503143211824010789312732109181900671620981393307648134086411689977327269285450348777857675081929914110497498763728577507625006390933891148896605554519659231557780046339427992667761519904809481201565644801049784011625968717808354940311561912558457268734719074385781475008350001156117608488517657607147670916182824298025290817392576333532160811344139645960427678593781696125857047712387069679762334948969584737594592385289256798615756664069549401887874036790512322738929793094799120916888405584089289283359007341559065735064676947957834753678325354152693722482080262597416809456553924465686667227294185425063058531980094823901846388673579009705993020520531055878268937950830895498131555599813626218210998761203136703745450141093402151848443570462264503746014558395880163838094224209519665540888698263435581337071922352331930309625443079981141898802294125472098677589388047213641462439728169039550403738325931938095719569177734681812756370656835247984766395653817768793478738555800481505005588997695501826977991403019289828433558701892442404530337161027416633305183915536946792029046736171525349373130751489400933569113804627124827733496589584706102051422698798423827835355393107930958626775304645299612009295088695538629206183993704718860378082711833622632882061294949056474055250719964312167038641845206441302804990546910444719386073171223762709179102687764422827901862812730589867775020697751362171088857656434709282375039345192328543006884962364574389967852078786306331585428312040673853840031006586650743188847859571989008163336715768990206296112209712408337604596524487366592992420808717944812885911991340074457364877129435399741868614540451417327849900312021041492753246582457493321384460561659185612648099346256385457890356697083954859744163475031311656668659742249497078529394047340656584986189277532285859863637747352817043519274858140351951865739791540751050883840631759169553196519265506179130932627190677652717062167781908603551750714530373643385538626569156222214145276938344120598327286755853823800599439043593062954566613495829732444052385959520388966287771612859978306388035832956978108976912266058522102701084518023677267564436267175281346499762715051537466664943786447284314193294204290255107792179831979104720540441293414112805878237965796390857242138910515215990887556601732062015871631022106246781058959536895147108480959585671302919957861553815524426237191117489090817424038503029190862602439254531587806025952372078998656008134600837866738647418938486708593926328113970218620928151165479220737523682610613796808675578452147394526187587702923601670001790692009718816835424904015129584048428626517713948239888017300062658062437162074130801324387322737585434197040654499137336950948822035611439952998167373120022786340747509543485334689216102613343960565006817022454433772410711453277321417918981550559636234190268757272377376534044381218451246795205434951025535653840750454207337097555328658408880702560447206055327467670376847975423834348886236393857334786994472340446575006533868995099586006243402167383556689084062902205134603837948706562368100188138814935586442006435149136635041712117653560672209260812520125592353478081947211765858826019822795381876313007659854352916677821305027190163951006388770055823045883766082334068737809719679716001719966172333392877305494434654800744562615783441038825704355618556631976967624318814894835702818381783261659979902259954986924479977047040065712286884139755825840490835019935166140088438664921774565659765238954459257446455756565105116442345337796876529389428855029813345047126580352267590295626430688563112018033391302157918131173288352095204485601750078668870670460445893328155562764085182092750418938250266834094944653541742079898699784485765130952612165000694732499283449816690343947172013401529955977392732837085775533820631257635679884506775315677528924515323601655503306553476671058208137235735760949471742190314689962177629853812075900314057937839440947949565629554582610920720155322627299875487229486836058169407605281552544579818615438980942618313989469070297524579530303763062583250393049001310605570454843104605083130288146174017815407020946622974960711255920567483007177982300451208455623861221030687647642287836330242005205089912469923815644183354638153874509603252870945541628983266447960366271137257139043729809634726126138427742566101578810484488082769054560378480043744680800195282044652474552502658316742265251559241299537671642122713545369364272679606212889866615822421252580390946794051517096592653144919040395201644408376990511719369056301568981041421827981786361919158188647957800959959918733407124419179774435473973805361115350722024189816004945664538009252044269028814322107010200200246525767440936832166686452981092713338822217584178300270722369376227138443823070803896844224465237335995383884198339231602199336490341634786951734052363216117564781184486911713364768068220726598760272781560830378380290928356765840329876726117012274023199873069922951253300710619279050906617511490273523429625253778915511714370703175868166792544294317070488806005521632523248781415881445528370217373338264254700876112623767579905323083192805148415837285088359843070612259670690689483896708717637860643750706964181066938548951154597138525314754143520982887426262694823453009737678154853161196268563658718513002800672979115581013816731354044472779688987542501151496453252921710762836623184066611957462263502273853724528849212508355546412089587602732415458459534143052182190733889249945759716017406435788948722705758983321656795407395968586396787677419798099723491106650984868012140967315682676231467268678601068009796807571158160454745407122403375941555605097218870938312172077951994246652038490759401917016553139559302775471012135266545810411210351487711354387267523808246706977948010445228077062003941659417560157882203878850191444821942943138659652183573636771908029905614261961864437795475907913680377860291457233487433919322372148127737646476132794045945451748596825888755225486260129451038621638887839954150897638414838813005600281059783741470302345779797868819724494539262933326888528271155553333835286582966733746220835370238441670689489735903275889480308734377646725452391086499922209146297942452387916660913588897551815882197916064013830782107942660459363734688982453967295703165791381845888978661525758359855734192977645106132472228560716369286303053837470161338165011893318065662840550435985098990506747355127353544540515299453497030000748293477176718710667715397889497177061674988237684338279869162821407162284095395661390682486464275166193793625470620283746712915131695097884834229944724867262075649217766689046242066407119683841681716143716717907040218538696239863831922020383966420676124839181743953204094815715458204770709797614332303996424744408898338086908080603034292086344145466317045094551706107824460475795629442877511862121717596394589501243060088413584970876626903433164473008495077253537864240275810496137514760670234198510061349673549181700459289701876639796432457234041354065678399343625874885974363913162847611049486836310168931929262583749772526888840405106090003655975689437998265363031593699921053634031332225942799659577020232247858295423113392037264999652890744981419458903590068721073943670183121438502098540945471153861840112983352381589795352101203843361334492753689182910871963895041179059707292917457750391848887769816897114768259787829191156154906302679333705550025792280852374952244523720477562091294676250019400978035197822444226157140672774677145632219204002918245297951761085568457770747343397929268595622994824564949482369017883042733025801346563603679497877694970914858185598094193928729821965970360450613708722515617375471465005338788181767259757371182192737814963141136782594288055887584773782762305700962269110228251138430704792065348879811443026567224758804429881698673183690085276769031172420726963661926954758023148218741452540530079702104864151129590304725924996552135674555848812063500382315355823656705354015979435008406327656113138788356776361896662759929364535659977726325909099978372724966223476642772213230854422537999844425474284901717606539683936081598820574382346118134766718489240038628667271558216370205279761127077907234948294173457937883492639680006996025798028409835496052453725375983779928992888913030940126339592316702562397009629582444098739169544826169149093325977970853425883078579398892826952131818187251304893756040540445778228111352899183858876728711760151634225300129020086313266920130599055161037708963689848379646329810676678448843714873336496058214799382687353050119754478781528457581159348182879799569564616596553044731092726267912942878926847283326754535953354835252711920791701479109055962875523829904717953433395060212229783425256973503005860475407057938030176589324748905655329565310722184221712014921792638172999054444900469054869024782886012872445396719446762269538182325202301830340736157345647429080998686751102907473629952558033689752181502319543557495604296060085384479106627855065655563918047976136839565639781413820372695937408664385337181546661407580975991885502108629834721033243673237763599668679444653190045450337228868207543223749621879072984828526074271596945101053923187569324666191735195876860558539442471580069670377949561477159584596876199021534836964922815709007240332863952336294343294075308380871778935585081551237895724256740200725844791181456207126943419746639116023042120274435217232398443958358677387755476699907733667979837490188877494853507626592814787050431932082426399585271041418305114085817743655271562623267107459764877799477944113880015475832634185944388358963481402344086075950553596200643544964948556009952255111838680389127817971353374275757447756506482449819290112454856582588146472511600231722471005185723459130662545732233925264737854237504836877567352655521718231626819249281335781548238599520427303627758021842159185443548513735650280064844193697896830908361196475419724091238324593076895474062004716273588575997166309567950096128821246977380639843718238030859566031390187334955585327405931120993111861368535162479312077948745474585884394179934898576041799012631618647486002949834619071062148971689447351344451301664077905120098181124127435810662906734198475221746819808183497773256467339233148572533416223994956978999758145127537286539382473488699479190479363336567530013556498975727848349839023854763158219169263593196840757790177583573235279530306637889921393138986412263285504141574287818943367385719800520020365376398480568681556918688001321746703994955879431267213232118873641547274011804169398352960859071392578711762951947874023287125262023718695372848465041957240264010321767634726718476839590967654263615972889271529063375974488512912378574802446656808015087293552640346106914337583586390969689664121421782236230515005280960232609418128355198813482082912603666850757067015049858747527979522122664744668024514248418738182748559552120630599012475276452826721111620198144554069715348149517669242299331793849123186981294864263720261065055696215480598594751421668864332823034696624479415555693208709562822369540513082642251787468168297112712999580594388830960926811103551168694678921267107809886011651033057822864456029919824787783970683972524520164606211313878564292191431669135934604355167852417892361012897129953591586173754648478148853656710070451995006813462271038861612982256068636327368123655330947655147821731104608704425452946529790160526916961175538379167935156028213585482224814637409287255909343359519305457663405291700555814465705567274373509241806819069229444063541266570701415283635798317569979140075357301833083672401794618250071946664601092828946137132849596921657254602746448519901817591925626407665224989848527706527880950225131170689916454750125173504048397096373664247628986376399521495543016211905267013158684189723054768787727400546549573431510282326200490970670829462095756900010691452382785515714563621977998294087399869304435946222191375040105714960954584290559221905597145516736354474706079808969967782506208833960090718276994032567998215244304159736973797643486933907880563861337574265978155829086752041340607734947673662983209433420495563318817969639900096126857358726768191072934171296081372827213241713065219132057444331272658424277973722393300402904829270340588078593363098453299659838598310703359495792129803568365498299546913802225606361607755891105704778031639253116050472497921321688846764506333818931101009275275618459721301903223542872380543819684920419377930237107312010366640711493152194326998150255958828691519945752552995553980852837624925976540121113985357734832272424685123171532972486291720967878985228202341217739858312886900405352446513166967634978762301534172193052198679820893206757714129294254054327557359941194183064496528906895998289313424811488579477046805435530285734623552908911454327657849735587593473937948949590827980918979586029853840173092600625057003686877935024176702476390427143327239745764095853686946821907746545441974922532658956839140711443827293540329797651552044251313845063305058834204896880313215880089990180930380010594582443039238488324090913040471255726842439595681517024976108617960948217891123896339368417620512185817580889549074947344190415722205465262778879984568498718074690252151932254552429874566875219185937168496921538992214684938888929713204504810399491468766132705710680928163868318182944022219545495666423440630714574179047223613559722693341632493864673000752783458747913611713112305773713421243064385755809858030244990819387413551969110173769390836452948073537971819736057205798909980886418609349552559690178158623957989872257029322741756915545932611338455835041440114160430700809738130687634487185049109993276432395125588748613440494699289081469089633318846116980735716011815118006934821509382557890241244361115813614260528116690250899143833563338969314231716546538766204618638403823474574021798025046369396191235091045244100181876247247254951925391699979735444415935847826468072286085159440552663364086694818479377844258143998591399937599160132199313615237900899789048458862160745658883475981196209269327935601444519865407974078165690890434377143175440037391789494224917655348329375458462755512338586259599874163625600050496794431412717224388657296215440358653098982800004263935980548403518517724602725182811593766063516497564401592114609993433097305301303211166993603925894662544110389741011758146857437433102179098618468802078322313778363107938378127597251297254155772350435604609458931003521275274961677344605933946289114953312159885389956041255827560098400092482305900937411974376497445406856183917396401031773939486574176838476592663771575663137110925273915831870364431024824508927428338741968792885846954111675162462479150673549322796581605037625455473052600576172623709771069314382859539645050821496129154581267569487834372561296826636713955349186702505361413809824644462551951311858319551147804887043577745042275814686545538123388678070821082927733554833784044065410055269332114260660814443270229992329698777310267797664559256780712524377722463078982389826415988377916484262315296089813938227798221044708487592552721191241334454902043094200528946584776894506565081043751265974235605099688388103391576807464356817190409644187209656611235494666399209784593992949009992616279649076660201700489413031335273266446149570349355617456600161328463668138716202548545193725708105341857574422438087511049583479511069784456145813892382377981180311772560230512064985399981027760742785973437771358792893448944350394476017061795601507003917158008667751256813028312706078356954171308133120146025377876443247321595497718103602434150197666596131444144286364749312120640373530278179298083089305358719153606565716307315395920694295202540623178326786313747082936188738772165150276023242249472476259887781405620010784491193250557722659666184400193149750933705958224467751344615076882434106884581601059873590404584338491826129746884460962378963814334921717380344976668130445300428970355918119607493988650241643018618127621559464919564851953062844166929565527700780823889722003731379973770672085653710078204333588789932174611627082846044133403263864415335244130153772701961500946843727219595962627015679563388269193488561239886175935985759118591579846719057107748807188204649160952373274530848648138394186640600484101355271690439628767646607292530648800367967680042869034493647798120058295514922839965710542617275118344530909969687686594140773767887023500120744422005932300903565644900501877578728212659570556278718874938050215329087859473588077485118692226202491773235044904742720443254705204293138939125772573949096533766664684531166391819914098747760548859144313674815177355051715846746583839107316877861686378554092107407526973786342105320052009515723514303829770257057936300115495747739879054595860255764516481288080196413027818529648179172032521951354645768626790571757389870504014084334004650191806837807778461102517624037448822636719878594426878012120251404982261153864076054177844591512731005311107010500411455944377768949724888057875212409346544240838122064628739990624625027057631606639879151646054595714006503769796316142596354205487949363516737250010546057641277943785676136940225734732171863648097998715483887784070467199025128035427168274172394979885495438234945864516455800012563523706275979916214583646519177830227226043641901657301094658319809149946031500319014812222238675868975315766066775588497623629150514237273760485848962307947210176130736428422573347965440783918462326718291132052597770063371041393738826587711275334716091799691672795045206050909635614834272743432712966066462555507329656418937618043735811873980505307813332344008666194542442914425453630325022683334064522768391573069805931990019039887513478650420071809893669963758610568145466292523651680807426289787063966620921114718255794672332916688758682104954280233921018436645472814235303899975738287006434521851940361610911790477538977665567698676140709081709638468133025756662039656181233524290034427532985747573812632230711972167126841845761207671717536937523854376560523886656650219570772536166074157716405718153542433782863828656064910514077272441596353502227926840594169585130931012234462185182381460399877302685815982551951970454068612232173325581689576622845611889445511852700042482889455309521518636289581391027650724394438313319222017679374816943385201865814871514644891804760394583370338987014665133776035292598514597028817196092931737082351461897528042216443165263559165965594618197188109598661583740868046691054542363176247609523558986041932701692778578545296834852171300624058143832208775278808815591730440466087586716808997162128062781527105193399261563930921096133928299985283192916954252623974669520488461092391705063856343141619466875591694570960800006016990282765772656502190880583984760629074020477889678904616317997948228276732987577577147207388927513883179135738768044968916453594869076226271052862594722987848310167873895792940571673437747579206432533732514542010012822839554392517752025706692156180383040783511909308037893071812043964405401887331906032828384134213447963932749415330499812811234867522854939753148897674511602670720097816344527244966777641214019771969339746065607276247448202020041411058179895194897876186158080585729876235824236436759573661120180665748705398653904382999652079832062010773878994799537776852658911557504067178687555870574961076851454565382682844899554447250293763472272656317788433420017916563316009342547580548342349354087084520492143041491229211404684752735295553848742655572025075896124195511006996842636236112171623286670488295030003316805739611834676408758258717534686491839590279661410726476487670519701196674075678857342198668550531574144892589836014362893362195273980843200182618052600197507829608021297760654638954496131851957978838207116186686187716135001284505415591118292807288959377912425810965614778139801568987290211207986562017110525890856639192091104796440640015067375267834193336890411487951486059327865074272351252514973390644358695930413489184460800256772786738189140556292314725402642478134518971891158745913664551245992782957236105494800482035475424623118901246754001650468887044783567623786272804329454277827406904105933313282249578815716323310678633973046631775571512269731292282641141523094291222573547747650306931547124332428553859756177088039225316440581601890971835204554683742193694724922238721249085111487399229719360830915619182342188843392184146863387422391635524055704316738634382019622448215832345295436359855726728904684698018033976235296011202712183324617585217813859533652452464282810634083005914883974143444606690412108541989204697422362977409431717182260488315782537858228755822492008688211855601575996321833808197127725291797974408032149706920515102039754864366783795074767785639100841559687350072654676841636582750504769378159160781584826250322534608590567260232550271570060368912498950949887905209849127533349378767980289077948858851029427467875156170788662023204845654222827199898870930552715435947465295001419126024940687200825686347361307743099443556894184376689398271312439015763749512638818199030609327498623262959068989997657061353214734015541799904186214102211814574673403859872022665821215349081756762997864142080837790344939419411742064314400611611289730875913493588190117631255348695979787392003140694978078938443552674898580540558137154442064598478061170569379032513139480451608438795386571752377296589009414883175239059500814847900655456103698103501537777136702255246018202820720399241756275345233741002741879702825356223571811846701389803747327268404466086998932270142469039666230522267251404256420149123249604668940600918252868408089540225437838141657308779960702055137211701021709877905050675396579250061506726575351409833254515403665999683331523211651604871389298065268363683882382513550656856966361647867691939584360483246174343689149216289408465814828065337463675156956367008357718589565519457736135492423936021581638671458308096286435119870866014589971672525324633361456936292792555619852063011255782366563078780875849158634314908867207177899678043481486246806267902977976829487047330995014415666335632265440831502294948514554896238098264036223143763672753457743363140209001813692284265600478607833746752865416004752416788195297465146589446494074542967045492115373640858925501333265591085985739951311559942492900613316752966044721843063219632163950182330649539028568927867660925428824509283243600023277293139261524012591176766204581024351011173767157252849943732676909906048247756314740344420407627554795367155650081127598588552091507408382759391797335055616027342102964039980124188404569457710199844177132340910008830842246590264061691661880924664502194497669891717988909070816610136801170397133669644315148577949999663820060694751612861792585335283174016079953840386154704404066641181239505584134288143568000982103137586961461671475047308975502772048048516287118594367667293167628874114139152854615567478246498640082550279508724493473894142061853671359378611647638719936766887238718395029855331207348241695564182341428907312179271933173473297442428284303546763024088027865245635975844945963246437059613880258045993999714096926975520887493287628418206521081312075316947027156973729908288570210025275289194574959511327688062778082235113685948218645801706769604157453056795827872315175672062219360952477778694904550305993898416540421331942723101335707051361188915220180397910563952267863711744002412300126807503224322987861852907640452007201964898658040299425847180113078860917465479139120655894402022557885903544591455732124903077414194688273773341793143339604359967412811435719858867217746897930504710968842731354478746894404231632607860278125854259994058641915904769623518074665236084315166296060350865378296241536328854618213803934843761296146968090187006067397519806311644855448297802538546227759657682007769198871375619224823139103269207879767059342844950606953450765378002170723094493469531008578186395249689154164798533712496539350396057374544206640924133591092934942475510852701072419304124166564059838631833864753540871125940649574385345904175428020449878695050517864070038958595677869097998518182603527970756690511747985618200853776244484026346426600710195908953523909280469833037060845785848705996337134477331547911358578924298790032946323666496376155293299553458777778388613185201432628825821990880683210667713199705050578369204724843142773418227797929520042568477739924637133401047322840978778943062646727968981518200272520940956073775772776618460001225117258999755606151770884091542820212535345735801975309905042688207894156886874103098244852355762126029668361068259916938928054489016770958017876328653050655107820761325477879758097430926529201077111034151230810649927801194646676861405703920487697691122617064675448666304135688207998079739868480724678517098486587573750228833433981600751586176185341514719316593266462258078859637144578759739116344741196957810525102282526301837899626181988569815058857953404897803952026089420811014030640837566901421127913845061510577990548309338611369169948562563666291696728557068986196970147895839848157315632828026994111258128499864579861445419805565966621451302250109362703463417100584185181077598714348830623928806479201852189995625843646199947140046205538718152784091736993400400632115878925256282124218275128222048131714343446281625992010423597041589312161043838750999169785490278171043768095363902284614709162285310085958147354408570571278371789415695843703201382285885332648133752305496509246978924137728177550898466757445976129020255357839066515514314102698996832870145913838965299857931421854648217424927500878858138160767042785525805974160541190022173885113378473802528566325624373269994767991533072566501661867214081855744290853437176368251600128881134532439941343890526205258692658078360440818645456941124551332527372194226035844707126679510937077003808691679687336038164525650539976019058396526654791995210514692765992690434531462335903663920394938557655679781589455841283188983032705466290923921422419223086834676782894238346679219132898026085250513362540950528637967308781872391535910390885772472943060389834799751360556881481627441260087031689437666429764068318816528734524182349619866478365395092526206318206697964059553022167908683783144655183770000221378160267594266909070471953761142713412059239424719196036572839192058305230924144760659509561765130817945021601132177525928273668341651845891663877184630242637762261121196803856837182497290960201794240631616312915210966745014725782742888490679347457918051062856924998391813025574738148552344938349757437287783261799777362039914500824431067460159396706389000250423312119366160549976269254707585540657968169548907481502395114392211411620059987144557321356938736027144181499912834449101393860290734124177099884637742821827214588715785430939375929243881150691346666397997592251734364543267230018372579823753562670924701493019943243663718120828902940020261207101345588331303393615988605152571827905715710086394779211948276376148638544681285279654817303725911620236924387361616211691877597618719030072461924390850084823206614350183516285759977398646198460831077022595856492013935925303558058496820291330908201573164419943569571383838467039062497533331590175028856931395227452087379511680874039293768859403709765270996817282355053074979019434724387858966750499742092767754005885702285256600652800425837036083383832868768616870323597400094734470136526825462810627332793257424114461094282562426727654400875227299709574207607857764189563002896625937550304204997156760765805159133450131673658153621595610616021793228203010285341994555755264337143641424144306594055256404773538408719996564866712844029053766186722328622384509683186583074298241828011998376439504380259094513328888125865625176881158553391090145550837509774880552154943890453817970794173777296923973604395998244886330019238862757703336111427795820617873191055441547995087910672334013994974187759012578099616838366034777754565960080249707498243695324806679340358268909564480092691267334994230706958946246364362905485055000615283861231881680314808043743621007925879499013234563763888438006307430180731819111443354120732161938256875431776053433164718793806230124884034893664543075315177058832791354114130378708430358951685040916838771804481577060754529951634042893783258619293322873912281582706274804859200217770711853941077618659948426464676476740495388733695590447778113143378982380801428933302098376721387609497928956222493346549907594913471573262241246011204597776442075603691537495842199316960360430848691225076199157205086216363643744175791223647780578001216918816328636688383625889271279999601732317003736262131073031259469111462307728033380675740184261940162948118611186359746779154439514014078904810742696491570661458099560545921048258750467797382533110822676606007410036229729824784121195411552610942379267488027844167761567515726200473551826933819274693198483012201115082370515217056727813830865749612960237695462644605325876529840255781642671760514849061138421553454274585886390548092015005294303397096544582446791463922566420877818440393365836074405926345255588860195347142808218693009322428728559177195891010347287196133168800797257538431528156050095967688823794564472113856672640123264678980621156852301160295186009101246604867964752276923403227824136512519029986040452892799148516302053911634121748511388215857071194431506467498555901861845138849332292490417844586502819322674669510382402017607536615648007948443635772865586702770367624200425302587835982403655813964958713845294461293050806127479479844370209311381816650050603960714120205999852933368338820437427122170051294262421944884940910939910237210232207742883153762109760510105540901241050380416302794207481670986908263622101082571261880636363616925300681928444802947600474622156091830769538657292462817819702389860219425858956267356059994309777625856224374506272501759479527676171069242475423805240190248512277403844713474465486618991479966284789388538992826487581398007413016962286684041755456137577044934010406399891352266419117786907976919786014998987415145321788641229521514617855946654044819321921232423723602983445518817146250841080907328496797056445071113857927313064077229547176803896458570396456284736856329373007504306786455137719882648434044479785302368520087898432280199441711950207589974406054324102293466291733535616470485497080877174513291029407682693281416939746170538994534695208589992910697308212357681023878824575655198590493054309103547437903044643143211965070328198329490748366346447361950335940761967272854732065648614038077479930988110685241316808777734094163929069069773615003266530418012606381054716227016494779266123778643498661648172402389282652946745755798511832264877757799407162731817947662681834532464507519467878276406382876165580202123920704168559730007975188747766660152760905649817061593389895509251607600454306041562370831233980845740797194685604495348844131740928987044946060422711684730715099968995374413366692009127280076575314768929242342894913195511939197475857565298902578912663743825275878453123058990412975229530670414212357687496245499220493199492214344978032548602080685728368735365247054359890058864488985024335463562380821049651499463974792765457887223758954025569459409129485989439794131932574434386511215371489874784264054319107726105099294921447668750067578636745046059897203006020086244548375291068476028193917242996863390496523023350950562859751769597610918882534256998757683313834815667062279185118737598100861650683420040462576212472102782678130189590659344895419006533884453309742916762381486432544497374494371224706397688331576320661327058703571835214459768062664337637000589522559237149645972473581846005656520204584798549542451481396600566658694946669813714270967374280089548341927997137371965974938283207224323073585287375811761689882543631113957256659826439794808531347612365975027112728742271553230272570709181543295124484506134991876277822544709065984415589013069697828692958080958740167782553647165008583315866536544276299978883315444401183680454810700931052718865114235259587996743891686703848415300297526218912525889174211258057737327785510329028292905618420197987188587180508040992143310840189754651626588804017945252387080769291147437606523393372112738548587793295900340780750881242056093587986120173588868899164029548137739535073913118265842895691556810715247513691310048708331132287240168275417140795088497994413930807103817195010478051355759048729506994785570053566776335708588325231822896690978577019626465212856266170750897841196974595991976704064315831061543139761670328709771277120856574499128586239914843872848872945903151415503622931064646194702588276371015064155805250753973976890008805790343500722081354565630990363887544721317222800718350164887762284648117219715510062742977846983295255207646487348072322755012496479040382262972082399750137478405440074637447042244945329370938017576813440883708528342134590300000754051996660818411495348192028149192603518809553888394253255356014012081729689370206276762736140512770639491173437174927531090942576162116455240038411264276309638010419426410109179819569800073870486508033382169603778433802710634464536788892767163575153796363152317942635358577778568841889608499186210093216650051085966103807927137975696688061560572231602535601731702182470357060510801832232720816145555567593242524917985947616273584295034009027620577408248058790872207374958330425704594934434841420794492924978634210272574176074895712169060036235125910680419015242084994163757338314709141128442755165470978809927334093390448240157741338640068246574819710211987642571653485220874626341869820713264887859363946509452028765671903749623929043430946911481769652596601149077306922748042250059442054042366316289758323495264395932489744574410041697279343123205370276105300171667690253186587527150564773626822530085666003395186151070219384146261501476317026272917771208074964033074122967772737120439392490187052293352080853170537293764976432741047215352341473773376788103100549501136142406748400688206702338192297584119554619397387252083966257201707315051832671512739421303186171886848576313135117181217418290289435678219959026450407871388267716321731394337661003739622802769290293331184377518090574638901704193118067736315113397634171861902349989451842323635004573452015186125816941447386118181355579088406213351385206433341189860203353129057792184251922496341032490875983128568977983803675576608612605607541086407863084921747256206923038983697023861889686047218775212111510909649445865673109466633802296442753619592543662260092458158652328688785126362002444246028589047625538627127958997676252411484196479867455545555332551970392207226651662082146194663736475295791854171993212141636841744805643637432842784198912413388058074326238247608233536140040552879341884076986684256356402913358872213217189412837780620671875169805006055373646724320323790957695034473439032221238315918799724546625662760177795951437700100607068278959724347595949790453705530204763253001679771803700479586239827681183815160523881979321573628697941181211745346414981818829463336213946430435672795548981413802502601736982443076347344904879122997298202852679753338575420170326590307638418494214735940025146278212247850776101792082365232732771376433448924697467617724130051473661673554619892571504127828524135460197186634748567709057344503155597888823102090390985013925886529307760378423419692510568390493764432892265647564724002929716682980070291165542682239129335945535818910831662338365207239028039416297789414442464748820671901171616088390414511278866955985321197247325585783623713198529991597703374637332875445521678332157222355090929462160023190553449009665498255909383480923274326433530132063204056566231768883473691198918455892616979850924596434508750153437647715234963986325489822944595351611175457223709217539326340410903730625663930572237715737175004409513778483024381114853515421731724436508086255514239742608479577604316048630013709508741671875060128439156575994494421878577880044191837087308991263539110628365172347317223336765817310605277914926444092340791067710769956653261205172973254859455528188381668074965894960504731787719220727145277957218953553542161242182469424299478982773035554104951280419250315721059227673068117210814979071052977938115125934896451100397269707888578287792001359330488334950294860917578888562753698385253581010608773311480632261468479434328486324489578406434638920293912429050687224497957826714481111092956898030923936479458100990807584453616350439437718245766759525910363459307607595690436860664117834227220370414520119909742049861881297741856225419262737041393515354987436866362091621810187174108704180471203796253605970286796190642498680493895881260178023173874990637146311158967064474911436945043699523875943255492137432027251796673766169842160971000881014510396955815147390377173366426755802658231627753949395434288692520339045513605034901041179514346816778791852567186676529939445364206178680768307950766223912825604673895159587473054141005091525368775773352896060961047271933155985572741502149409412234177313506850868745647453351189194365434966946232443728890372866186227832110579328845334409718794222209268168153108931717069532930470564098170214185443562684672804322000287443084928826312824472456097348470570867196819960747666974729273284323763111707815066443287532186962382913787303098173418725253192896965709674042555815223629771991996620160501782240005103447507679162480572189513115615434796921061716147411510806471446954762210128202364153923823749889941004089912741720362777076430238793599099887059083698088752907990305561929295910061663097572606087453870921096529732230221568754344467890000045343612003365811029149157969620436106239090111430670102309334640385246674187803990602367804742910711433986912469328051739271240876659355091020159256287888181959713051876686855032978857759282256984284120641287035098555689123439766090910537802607712012356384809802240558717076627140433056608743188839425544155870243693814357103315633831655863264096075175483938098585938702449004908819909094571839759404512536145867833141604012303049412662111337276694330100240694633621564893736696869021070204592927543498146890860694703065227477908038607294762284838796489842517511441159837522202373463232245553334778978008213018947609233992375047261439351852491074173448452952277451472668766238193700295443823981519584910985781588928674349026098512639011602793769415529860568248030111504997531996613316334063505446046299098621559685485233864729492918023325016370192648746336899264877812505859406402490566499477423959750718865291556372585798198839428295831218759413020392790203182981211419436573592742662116220641624394579802588652150028789640144776778607690278395119512296531479979331822755846431054400061348537503911935277474147656753405845998849458758640010575737290495540325408086335978802294450715829687151098506150601828957305710330947624833340214799556582184870539914723268957509562364892347715608952732747434221872671768105481456558718003826705589732914920504195731612102564353082122556961806483194188520099549953444387561142356027053933632381738736191445491859596928404659690937955357718378580855870552193995369535118945267398967278373858368957519091394381648853143033801297597778636204373981557625968935620879138748645822875957809670582921985469171585531562700974955124498520615822784886532972452568270703513281512642940541334494811168723663393517267081719365714019514528302313780291449520089394396098815492613794480399559370968214495172412250136813012763976954181923113795850852065797295492390543869095213314793048923781083102753918860069793189180275600366184610631267807903641466566704908309055383572694340507767931719822839431236711451533195603931786687907094869021468303394581623960205969853880144825145666665818054702691841486538262355509624866870264560745654701313865290753056580638439446234601585929165215415738634317676885940056215777790353268043436851625791767135038307899176397529348005725019667727188882664506978506635457405652155391329671189281343413049563652260089164116428554766312596283677877502475822069646585819818170800535265636602460906565394578572375974294504571424542927305267823572765784633831804187647368796092842313790107446813839007826990593517532674388656487024232904482409869392117251426148263351974847850073766084288939479309040159198772718939107528961438094220633989162434278381895751735574133264129352056689564218924811705731886254139168546627682469767822927152873444820257746714508820259672442598196807407218337419542951403333467813948902306736309514083574768487418865681413969368196714640365143000034792213856783596026770588380998691864909726985586413068420881047016527781430453498322395569560777603795800655137573245525101766299702246568211732349732119087978840840454410872113955290656535520487172150664682198603258036236458504312847503863140886498562056214573748212392095865712842849615550331726862688630603832519456291615552514208289836820774826980650769591669667401573064684626564947119051223575565640135560344483622330647858345982691945354128867809526295707809133238079067884781513697978088609892515033581563705803170587392448603277945892642274572681052900989673333235134165035716145194796857463337665065533357388013594054214229537730882013329383707321771396488795957991582512964165864607951888711434118789475221115965594637796495907679537860010358851480755066145966340490037128425137758764041402156376004783421304749651150476468417994257352057658142071668782082310453134033988874383908624332170303332614759028265256940895164013315182726324346975105238394549339951491278540028425797553755157564632032402204596310132407204340735672505637587078781135390042304336962429766800479211680065042073895991833683586874283087068473959871860769880659597410324194902745072834191169609307880049610005666760800103240313674786977997773500594937762359646156549192574484324048725633484428663071095230829756441634948921807390048409907732282578914889777503959968713143404205517994924309032786779627772677012642913629980727959835445908226476893004000632666528712449382188641593117154618216766616897436338767692930696391321476333251726437027845148548258360424667942490850572662757844105730818960990082730032941438554998973794068512122783083612760948828602881991658150706604010711726956931020912752081120238702262105868120366067105779667714996421690778947975837099263991701380109155498034824880954566784369450397441220957437158914880358459048308995584585982287522556024172974460011911165826103949456657603064981776944401501122120368318585042909147423061063504509559712960330671683984224488548541444123501716567300154721994899224051564358994802022259209496470549683082189884637604839307795447675840859082981223308810780264212913802046952506247529643551486211662587438545473331787327332923091290381445989664193644108163566318445726784404505501224781524072987165698374175085188660392029009779096139119790219187574389118161514367531293025302328282490628661331426792013068637061931544059709452916278030327325618571687220520284180364991648397378031553903470979068804949436206940795639856688198329441084145995437648439861996613999956240205430050589681527995907118689277918147404962281591379415456987974731176968343331332996442438837460950237573747921695300203493224165411210930845420696735884819398053085149737393357780199525548718820331571920628169241730993062352233900075605154382378137134271127267545093187543724724927841456390344736944719303499169379000895725133139958448302742280556628500953445879928405736383969296138392730330382123298471076988509285659942964979553714549301836993276084697362665019157787216867704472745117032557185019174399873635191140656289893009295327824119927671211238326473122398735283064344363773238502003221879773960106855819341059252268498561891386465954920047133298335652432916700373424775785768026455258658117896495206991599628503729985808016842484076778760329010437472280839903872953439086434531389548315254695965976600014745155833209545187365456822874243105830095432322873299224528176730581713791221255587952676897096258076851657647811080381561935577221106175960714530513751628350964619949121543280165603524294724915941772508210673796864735732519115747465450585794953261566927335118725381579195377817449416651222741646217076049738449290136414723678877145679732641612040955000453955768537872960108670460748802337207065764375184526504227990529473042919486451746259711480864524744614794592202603506558782544573815144888657865929070214529248462408694020206569269406248425475699553193830826380182716426107000566389888513687332684882192010072745940333662201599662049007914244748190781276840182204795934257754279393881585227184454134199805416564965595715918646700062022870700191939928622383147881084899049757350270201180351132016801063325710960494468264611553797481482868559593550289230822142859536277446877729009168266311947812321818470665528772746406317104859737025123459563453613875274964804823083109561360122870878127353170387157009621891495104856448259917906113754213034482379198937294136662886693014615908758264973961673953068071077599054019109650682801525692962756737580647034647913028141932496619406652359270615622986563880134249624007492028998134550291421222699223288218964411791726241135692291162415248982362361076028618315750938183709307615152411486453962315515403969695663097106023956296342152191575535114082052837946346204857218745200103578727163731007265147764976795311175090086509776031619944711556087345015766574226626717992134066762955348099998805801527123361345969794023705058021451984283029449506784720267781194903079481985886018341722602693117575066652713291489493301816475988875038537853982378646132839012484799199283265787593534938771657739140433665825779326320420760210847220224505420194781545757844614034294758508828732413413434787704594007481069265095481981267226435963099088821069539936212010504654957219781247351664854026178588664396756845514578016075113587331414854445479346204717172121422251349533323968760612625749882491005946559312946400808223559079966917020003360983062093053380975713754277819582341813867429096860582172499147680993415314426437095945150594737635450327321568115098925385217574372625665856770077288540175105793999450222139993981279023131814766848577873152034317017705775407296678441189745346642947677117815504137759000455316269729589969234851791676890101499373721345347620637442837234820598993312738827073484979488639929547538560299125393472354554100401974259701007079460908550595079283492325210848352871007676529667207848214171054103276204522890344701494023594160805361318587441620860640446126071243972314570275911990638908442594041918596962534023923340002818555562262955314516464974849097339584854998498709759761196714399345214422404351232244256104559839210372708432529307527277392893007199862989642609818813179393669194005666847173562466699552888912079928531495618241838793463870364725729758745977741516689082548889160742604419038277267577913213623174828248158012180351703705259518533784905733334731572555525069447624789797713459169939156418846397395949044672454995136416747815581196353103532289789989278189282857160537329983256777801738735023252719909712838830172831210971926110768807403714097852296887551464108379975847178308244385559579916465182942076208562275127353823288014246292139165100350107363247589312781950859121736500311162039984187364870138771151191153466625626330234085223222565001609936688828296340093401151273375315701372134168106840234536793127451474378481133751445713376972021239673149383379106332398893756058271723786117107336044588417383515358310196989850896234505110338966035665929477954880812386780490470257832612530465361189858039091670993662308613294047747787761563604951119057219685364974280334982071851390251638982342272734231931315873031285464985011285953490215139857885658304057491014273587002854345695804736917242034548609523341919672777291908440471609980779472712565826697593003939778605254016356115293725838714575743435192092013702261582353377056305862788390192150098020528044949821316118162569904565039977841485115020740850245602750489375964362245088969656585484573724139230871664606244491468794158037935896792196046860093796266262664493526268220116935473508928385802131657819535100146481367424330429895719684226509048743309814378025433047184409388032935846788260191000977706112698374129879822182495433083849291851384337473142905501055513151221030527941225815938864326509660054910355765089350634223682633938280289312133864392107330738418548875354436107098140082183072825035025733812944572867368267645557889315051028319159627048984135889600651380839295035176569232759290867020250000006711030050588445813227658999638889813875227857280132547487725016605760529166085925183690998045516873537353180925670822709446121762059618682793125595145463325280815989192966844775684628060959347765673332763743969815698107469070599095230104520528607620614747698367779390233919806641312172062015651857094465993503902079263078320152542140183211133898734380761149895877763852971957934990913718511970228512184776938282429180708077788235744006531592985424790945445063989892817419965909498091914741665625238240666374720787544178729115062896425886533067393552013516490669725896048603915584196053067107824430544970330400668433245092806464298545650442883618564728726642136968159564663333162479734752773482112759600668434005094721849352266820218332607574401922587975097593756860514735379172951011581964348847347729547475406860543243294963617348875109387314961807095492653202970664212692662225820332463133189667516230671364645902168730384165549147002901829522285530970241486794941262329731818307417392692879180481772172790273144177504853270505969896550055983843856437297212325113264734912575397700494201352402426723906836881912243925372392738217141995639401376262483705039873444852122489293195337340371149116216154641569234634434110007367902164990503014197969024474415542487314299913101844426499129142527179965477571793060089717285387571082502829429223335752948992838225086760353048822914874329149747795617469277895350117013933211806353297085796141216562195463341063501936014848328296384510119422113072918757773774551414066610575257750976022533891893083212767835913007385242253991502980030871962349102407338181104410269212574797261047244273278801994840152558237572838913730062318745301264869819216786492206005257172003387342128090313473979212706556319392821270901149750321617945245596131825994562835239306188761254620614536403231499099355537952029282614123218864707781736255673290611888569029629852105127106511973457902267190482431203833921067640256782826206188477370557706320997682861935573071662982067592344584433737716640062557076056848028402085304900748510975537101613240232352562745519285473825671512513759483241225633632896997431703911623742057437996465935498769714083448665109933592090309167252153637232688355438589670613941424873125381710695636282370460571284295709363806992572151257690535082551011015787368280806105110294004458287241121091018154023806511723078587846176892538311573368458679325332149477290567543524836318760490191232721771289292639395479561938681673729056651040373628161849040873454100787095887587500234076287438843227178677343441612593733783705540609300237874853099430652052514390528635655420075223676337493771028715040994477355852999830757711852172247658045558073057620241117614677101193336547161826003614706668283771564250416871844005058778937640553077417118223401051506954386721634399965783544748287274205225359706010905101529177040543199253133420702893932743670415307962945483336664262982854752628142707652739029640587624777305536557972842789456116941421234717768498513115009003552190953092877574780159273210197622604037747829048554433687882628213843975447325787399390794950558527847091483483588805213206460567734489503771804285766213084170171379667239477291878395668181767432068695221055738776731804722451571843833268080513080401231775816091044521233574349168025038770855053496355105364772154982889924409778249585528632231586863673342796287162735148169981067119745428338076722777107114771136957881045766242343085864411290891938031789304101082846905620351732287670132520328826478847199716036033658340077733358340029489068088158347623984499453757277565849527327486303238466797890374982782994820581269174174997458665710230126996832059278073044174776477955937611784253963465534016949698114432015654273493796211876617602461642574937781700649582113835439132602546639699475850828168466426105670758928114876353461576580980830831064164164214741054893830045000879268407418530151394976836494804951416152016351361761803351206192452102632030866877006628909741059355647588126190916079449630286282843434139598265687443850534597037899850378057624650294297996250130039310017759197871268083312141962567630550121650848972824206234203170089631182721751342749516535520021895636981872646677619374391424366001512622175617406460540305079915811904750442794791342957512245399901528584420113851813421785922139428938611868794827334884059756826406080398951765286257942642858755049294412878967827205146505896366674903528963806250736128405192278071019863086460942605985921344376047549913280751474282328846695432455483172239913480848962696802138381636691984775786114448476153948942522582205694454138613098983343328295188479577201581190135074244575709878737957197889337369589107671696322235174888359116625214046164785126634160021055976178007654493854310719010662795660578567379589548876313233137816437386826943904831544321402343024868187813154795141107052314486450153394959693713187193803604406234115529063742288960742929304866344039721080554454715216028627092783422120414572505857384220069787530830129387729695718722035734837675587800017776673652929682216754999593769992494455515843620098476927283531683525694489699130751933790965724667015054995443328871942955558548290744282349431564153454039995924896059350493629180528997992663598079373823626409168238278460299976540464175747167020461205979978406987219944612766086018516947413999433795868864221029139437859451404467614953621985728492469714430228475988266839608983537912549827708961659416323340982253099595774091810126692674638555331996353518372387556812396605184734594741008255634518128791808490213391848333957123767972176186970267174673722139572670353008883963975722229249943523018468278768284586475796576734278262161963272444747011982296817760240045936518856971489991981020217776740972160570953771274264563670531843559741138178848919705242025979091385863289323019723816284455867659162107844909799854950073122265639802822742219924379791750031627122478707749658620346703815270313266824254848183210549700573418492510852397727338523590899852317329467470578668883138183754471383457227426317714174994434753329447550899926782613711263357285770095959923156968580639682118002433406782759346806936174696836387215172962823486636976891333874957418793892076299597411921378559596089606628185994482564222735892455148263280990129267239682477186429208900808633440649622591133935780163243657552682186889160047175215411337162766774749683484026951079407050594026007256600076430731912398828216935860709493344092876423128389519788814009196265483289706287754703601024807553041493455018028688117583155133044024212200327802618681126012138230743782273345727923255348785984757762376786366080065364158769666378439124391582820483445366825152642567323735211962122825024401525621811128593531903283599309410248789436723771048854629110119730294432744635316234877451634635378419709490084926293460083083555805448434897641465842383534332356940073019235046981661987754142925066000197356282323359988361474285812502901219736715499943926463086825216843887196525569824196614231427353339623839369472619129041394374765674790957181581571410566658329565527192393969508108853483420522573330519231081834722864640699637343160492129606626102172230758837475094598847158606113842658036711176086819865934160137805452458594744920320660348678400757116556128851912660367107307131034149532708933800345847151230239333335575643945633699197725113592846901941334653925583385668925615480142960206064315063579384933334997160305675190697223312258024887381395072139939175508530869838344036148261059546166339818071679710112624121509789000600249197368799226768979706442270774624904778082259627865479030694963162743698285619418584247725051574093077486334700378492566046505446158125952285257116427854172377238739504638124901526009067006268385825047144284712363406267803832946449826904364948996561867581126175143626995527588407009469576744276450128900882391860183621918999351496310947078818080640026578019831261039942186992139654889351747041725172956740105854053233951432587242558610359281646218981161109675106544941630796573611388448096171311334650359933915520354938711221148350764501258420031424352047020248192873543842274911049169528981848125643541008605324281343869252583760486684933264880111676215269805431542375407391931557109954137080820671038736538811102023744244420772142964548916472380923247716419796919325346762844635717440871314986542374738450056653158871285286401275145508103541462113755107348202109700547956705867369183499762340963586455744501287967210295683608624475194308319291002198637606140603394366910004073139454503950712007286429870124596601279911470724467636331585150961501725054356994231034359446759680503406879189572359154502820940888965565552404683912443002642273279746704212042590563526789332807720201642268235525299498482345615161185167399932313432930594762284165669775454603123702254901697634349061820653368242039267567252333763587354103469847595189944086453571115483451484251050623228631418959350909145289008919112043543217015212275471870813074991487314793096874430812374284462916588345021409441357787714652801876504112740781939087388777253652970842051345017138810976732945550532231096083147735879171850626524133448628477003525597671302190927480279533412219885335331199192648856890555100926397849591890956276448902451256173684613930420181933609107860784692847490971398843770564428515885186270473995289807907594795048913174171398273371425001930887795528499419436186313476578888437472474492071036630908430870297546836699349739121247325882760883255646752758228706178174767006680236739227829416628752344650349052598398187113168637416902970061017217652616595780019774035124169565166035920481669153720786756058056245078618306813606162184055731609550365381157043516006652298903332902375156739463817208920704383570347244041145907222471013911269621067305064958977645410583541221387086276035893696101732817527953957936259049794389159900155426107839773189382057044886668995809780832339562364032849549941645571061328439269364814470261449545290652586363117146658321402255697991378795789597142211579194542280741847754505083453359752304307370726027953388322036206655881352789374705674854157724672828168864734533057984117813235348479408020380910586663280147915149170931459545155352212835980999957462456325282926734331597816784304976599025291702342764122829212864582768489321546615808204665176654226032605209025375126093837047816895552521373725834791652159606810583134640726328059564952756825320124226859845907952321567055889608751520630425951063244174570801723569686484832849383731899362768943050334477580990914263435016054103894007766800935484329017833350466846253879336202068084161715608029954841144268360663461396575712198080686717437141942997093946823760745728510428428621118727207243115658142012298341541963252890702743137978622404725908540288462067541173420517783099449621371016575504129683475133214532149336934760285427311178916216952060934221548395129326348418040596835276860667307708849567288650892826524909273175666510845138140376891659578193978486864744556329792366619604335560642208167011590538366645845081468620501024916051846298856153262826617458594285612383640091556874448169559569199536224303089420538609663388805855389058630798316699290297848965145770635964722559276663776582565753886892363864474724427186159974308264304572767842366124029071257650830090977124557418242392047476398923447688163211475862272922790412735653857848248917577447153381096536853364575342561801926044760017636598705302483044307296939391405400105072750412492736584861424494474072579513047099511317032239672340194626928566471367663126222485761255165424149028762479667065551455333464888046453273451116785044634367507386686976754821341032317039924770541616420484172535282252514603615087963053761639871712425008984934176329240647755904044555622242358697667857951730703648295578381060527086225143439223248364796478756070178125631802711931117445170901434982037232612937184540416739652328560253716736150816818688239304147699912475353441036930390298378892443125104082633653587733761215022505946315463048508558049353168431202862208125591551181659533903539802153945761533091779826780304514485475533183663942344926834904298930968612253046556931288687862624679924620898558361743645852879216899591059102311644072007568711529592296385380596810304461269534546406133961793593533520010630208852286134559779084623033150641563862742308074200120595358634117853226634288568810763050227282943411569675239537073496807710965702629548712496347066476075069261846894910896981297210337124201112088071762860388622848582796722473599193770793914387573057839749347378859104296540210887599595556640504729867583529293554974130807852263135072117947635558048181151125487063195921833753529734204006345403269965750758261319379060593445274583600533237000336961674924342650464498197199971386254566804160636341882809432201630140625173205205419826164806020149765104393327726121713914063982765560065384658753418770880966630252825775548916687205992317077444840116989169155310035663460619494452758839536218879671800298528936786739182671282859552764935078956949161300111457998409974372133020169087693352948109192977183518592584244701241168355651660575543700628103834794171304622850619790637038657507535430818791434401907694193846746086999286227905444893251170107160128740948396322549995266347565277815002221775774712312625087723421605402529373948343146725604154842857342387156280557037174246072108843302176413400000010386507907406298225252811798071701525818043339539415571666275115093371398387440013634946780179044974809810498261162867237349898272176984236052503271220353828851962133064377107967616849982944068129247454254135060843304125899337098032107423043652781246743453515137033482906198139190027921939367754863351994566159954941417778265036426971540075821375935865692049977518515507837961146861850151524079166028776814950868241366145091991814216032210527857410793763562991835176289148798396974294833404408664723260601090307629817075008756037030474710251118698984842303979022829914720113315102597962683601540335227368948271017392144679712822462770183757964178165263613834213036589615467088837492754983552908562374812070903525054757771628458513088504033538383530478788972204898875964911674349416918091506074662602156734293139004929251445344530945992501977638865952779181413389891867423264814045247683672040522820213528700222517367251713385876849354676872942707941176555925933195456085867912075242891145232734700647588685125440056027430404605548656270754561252411475053675784826861286070751370023882723224058851030156158924458441465692676877117576962521501840711376751424026756598157050548370587339296775712037070900431646184524313374282675721634263763802103685314349019319783933003205577998265789425944115681052254329646372535606026930247554865302852047233736683280174257941582047600133799525016310446074066185130439237103973326356934682300853253209904122016112051674178391705619092544821413282738180675435715010293001005403233413990915115119325148440222403611403979083556331801207409615427870169435471635220944822650476304440881350088484195326172032146629068785003296262184386984003733287748573870435126866781453570966190652538268889296357493402974157869556620438785544800342763819124134064026289048524110162434058866530011362963297178463235101405224077233056329887264942034864401850131859426710466401170405127650004173235393983108257821195546777599586591857493813698076120497431273518893442148487523098963318963202317828318498892490010901109005586493024495045992914593890152646694925370911061350784578192704529258960702628572368557426496998049640466948257021466546522394389936490953145363862691924643215600126069175201021277241237312679086404042220536068641536467585738727459728431658186948747817859504287990195161879300750234504110114096910221647650630870288677830130057549923432371602442804159810190817192618758732524163496470117926645340676023905993877117928271987766551352059786577467674900435767084895779666795296474353091880475521866464899376897521505701604759771736439746300320848297015834440294466251608167123034857827213146740092934489467849249225700694023887225564584289835183536079358791464390513047357413075874086352246975570819302190994331170974285607400342259919360469594442473152759942249368416110800692672709748641070766053083856039111350315563914074101448501872396376921648176920359320955853962722616582729114875404533373815811331032496887930122973171868936237962268506270025960180745045217765769833675188799431870521046996001113122986234493101891913873898654109653765624031214700118345427101109011729893174585333637231746363589687923095762786149295803848119297204822402475007387862677346927495516512089912854860763295939603409301158358294495289108310895930450556547493685925517579309063988287980931169744095425104538768894250396600270955103607571541644817413029101884966927321292691289325085338326154660078308086764637663336999396591249075700004233552538516717792333933406744354055703895041770160698750380985393378402828624760143797718684383954539540014610006008544626281029626924543929530629390946048164564446936910944137302328236572823532844393466388733543212047729462825437566897017042804084097726521960544685178227503808436705278258173532077415533795265625674343049730539168920313597514661693889649442325343927356352878003798538284745725820371354781371039952000486199069296695652913758166225316334183836828905883888730225510178850546465475253280440151113577432623003567886641035261631076959171912616176543740903586666800713674595520842476070635109481037908677488149906071918855764946984670518049080252406891596148116659309193951359773683752971066928117300474102791394881648816857419699068118219326594015999478485160769288883913205404135849313511937261486686764615127510288695455816857545555926089874331882353318265012948679085048746196944170234771833885443603170538158093607527728635716443900230273092306504719364968512967208816872539827692194841936176594565703177286949380180860468367153666200935933518192314122549285239832245692333277477172900582313815454815513283386199422816416834732219353552515317731706703582274232500622255708312548791336300340131276347228906020007666724432043168263236941276205382127128125104560421009557911277221477936378799290917107979518704060436452889501671771908036235295528524979329674183393295974068790153520548286787256020528750571683923383163169955839885318135923668286242403111230091344969673495956738175468409974243717973218388326122580499961860774612096402450526314986905295582669093260431170088666293110275758053448672424563381944329327139523754823756282004724739487846921119165737716530161011031026584010991337329061223672233704065388078548366620757214662451764328696499492445422859696905294505200891361298878197288557629208041335295765714964615909349496634002380377806728281611730593142166223372871102021849856465124498048664324335666046789906840833391112240328504667272230950904979973247075223910146710384105732949896354281967891146076543037896040052319495277904100145107642811535377418383112222593600412592782730239325764456916849249559021421870424085040312261885226235445365566027718744312037079990097962410668120933010924890901001411420852165390591579161745935213923236196954895704113980025840465365063036795882727155420701163390042917055120216635476227929089109132008019326307892013769897592520515298102358678519703442919933125976594031594996469840047093974035471522398682894030469825912497714372917588130404955755234036680231189137730926106936392084043758418490864924097810863959681712788374277387217417569249048765301325222415491450882641011860709568903398461759893276775813935481704343123285826409577439236439320380299624133696055143953700319278726952037943669111060410580811157383899257517519799293731789756957215844705860848103586211585557586906799730906562253973487670132039403439334119803171129282331202862700212157005539213371165348490397825824273079121176178830040253312775532267976606442181636957077932491552628818618451349962509956207148856974886870457427299254633916508659300640284874947811957074555730812668524669984998702752349272216501116208673436908253097949014716813775977985321730844564409691813608478321862588258218141518544418377177960866326512686212956364946771645060737943571857408097427085302780429486169314804995362923977038927938352685333767158661676725956168245873791964074586260209171396554860721877826511217615543888729106194134918737496507337668919830044033003057547059669602733119496346694835503438221476804568377742870526674788569585098588610008160781833039174524575291910184727253887037001755125933830451226975479366816534010588316216655296881352519726281022017191690581743065305957528020152333007999423756963782694067700068490294021545417609346396990745132781833329998547137600422207988190477060127105448351700888909629133211216672682300558875809554698705601944756083290315196771317964745168326429955253145904236058490234816542418025146615651604214148070159360681461303030482386185379570583007024422170691771133663413054016634807173330553208306138791039181818027185199668125124532760364762123529418560912161187652346641366039848338959307406081139301671142310499060300932661136189494886867089240297986324083364455995999607179339167949856658349927788204400127499936622075809122918758047541339164626096280528804477894365091404996136896977003677661241229579267176083154415322338558560771529971967381587472459170078190746045352970592013647046280484545816099836025039158678056447097260724802929595087236749696105631626163244947017330266688793939254819449945129847704338752321880076494643260265057119473023104741196947290541336709565082299752360929490372901067688983726751327855425303309852556443294651563347473446021867246163093458754019174513227101350570487543728044943455572503695314148030629876616052963487121751860889071110423049887462023293159221144714529641304517637666337581083190820019374984092802148329551982157560719594653563867254661558690738083804752654462420877029125773615244829715143044837657277464840129226263322621792822264421385221862033888117445514087179789339976289617477291546105838487534223338697819100278847999679117656892433169083303664722591051473632947704740012536473176119639260220511778799088979113062437312711711552001284079028254316799865947601075841457320772110168101278099539700036333394840052871383881926800020982161604022183344753698686294344664964713645963235362613681782874614464458650675968607703199051447048139084262823596008486133091144804088004130419467760483801366052620884014646461877371506684089670471622119653305713937813824793075838939924939530069020743452978328028036797394863647490142237585612744263340807241392737614783305478657630499100502694533759342099686053986399301493220787274746565983557330777474862721144833025054187721747664305609475206440062406622728419617294019661490902412373098047301770701351822467523946728386583195490585917582667916744717946688528345015851845903170589728660928479697635589792153634429297670482924146463373322049568902439540641914022725215555887427891674632971656910360450379773296721414206714262273114627423868230778654993588526491157576863515912268313086430556110094256353747663379058614909683750726388890679303794924374748055686246353615709015855277461825955065113860931866663620147718977421363335206104867221822491967862009810898718978278841071633069960845212820835765612225149107387119099990386058794639155687795843739471432229733855526539286629614656973113617763617729085850363315884393964431431839034553223736529512894550751153410723943499037684646884238386477584665530714584101749467098555546272388115530365178175298880466210264015568280160802427240722870944663933591130923349850926568162950209220160296650010871138043870752545344740540355365971430460355592584770295167258637047512538599634521237179287554852247415856588201149240773567582833532113639830314229465423577480305600603419452389328396555239914883545478758388160777707975273914530641779309880047165933934935127605364803900670923643988059525022402204586773198750399759232216098882947105941193401270502684428509769146978294359962851727344568501106493239812802550955765128327949221051579583962216552034335728208955348285708918040868761663800740719633516790321452788357524280179252922158337820878368084132829494303749542226741933672890941792169057899727093705062156945743382458997784286913676216092365846675052661307678196758627642094643271901902068093174560239021185759110891290965339094344335863575927202598732265826152221537771049678551654651867076796061566034974596928853956841187256619183204655879153986732780207797541375427035716572227755973751296725298063817699129949392100447870912824965754732691348765615681101158418701645899081785633445553970712806347295121822871935163089466614680196165291948277023371127410119324117410091485603886847995011855638557063254349998089974109952632924685597944299441594741488013319323254483982244820695691045570046353103030218393602705603436764978557605910706972037363673839929661469467841969452623795410038145219765788702981221000664779177239670731553621072793915922126892211477525746771418894311389328020116209902748417349301608956031874923278101310588629513250005853524616579501718862221300826450431152952609330757268908127297105760470799047574106735315081437774868755299155876836273910475938339101655420938216912535171525211384248008419134288719115257025929954454637365309695276198886006578736846386965398265405266374469452929979464606441993919081369212353296421003723013398949952905712227453364150033350120152942506114160421844241329263869003417392302477337455328354210468597056911086081904229187158174781935924158624093771746956528685213635399452176113680540985554148580211386576861964673238375124836701724808776831980412251031186536937361914281878031283543954282635877748255012295768092836624679534163846607997550336933370468216518166092919579051077997107343598245125757070280318713469239113356677382624502081519630740028780102590190119386754442026316667746579998131941238908468455708401661929528646561693441015643324493881711233467627667188210737248466905121003929304151926226511166364250111090586790881709389394641926286985667503617979903819181042077496722470707177572024032297879084699195577520951836817241601226953759328355207217528244431345354215343334163119238323985148333106040808225390027480706195247861448578533015326127806154379903994679449174946568333531024903195108511926415798931817283203418073261511399063475249827879511584951240401216173202723726892864270644096151316531087271305547039911907405747148749757956703148780077838796126661039720232782589354033641065591831364423858915070499465222167991495985807944286907932680988713001104260476517901617325537756001575830191195216910975516619312528121687096436619509255533768969232649002968570464612868015854308867414880884234553414904996468644074396821936958662728268214767141452768760582049306509301905679544343372725886370650251927241523159379490087485105474166839804216156936563410815881598879583737889566772877766950031011606369021886694310294861325325463181759880907913649977688272487318725444216730236205501589029369299036505993215828741337001712271758059783741950471287091350610256425620789665389897184694196547583074149514646147235238900503869477272328566563377707078531673041147957629243751926653954262471566811766378928288073337480475371333354200816624611153862654974505607792676037674783419605726662211785601111230351716380809119706227406687524828448215619697223378456099052782497511516601229166402483792884357763792056560846932739287911494446837838539088757921324871411001284920261845528915390534830720377037901285842780532650234912100749412059261066725783555585716088541217731835592972064532060206148489243452890345606636637535944372342122515458786731800712571913567345410302898645527907055800519687586903969859557665082422118019495678805167139059858986738146612491399131583403550489924909406112133432196999646237564279690773470337772898115148705050019693378602979938571669592262932567848566886886116137701337665716605388124394568855972495810162397294361225046316715991738299770501073619920759050824643512677328068224639241047564297762694287753478538088967088053000529899365049449106560905223605225070260056617593587300688612758719560446531633935711888167085583220674351075946257041810590821224332410663391838973751599015194218632778825212445878159471845460178540348376874245438284875536318974146855577196110392224505272081729988448716725308500454851350411428354819326880914646006143376343915419959680346107827501324995673834990615426062409667696369311352160818611474902161732324047113123978956649058321330619504649848485910120726529464972291306890831049871605163479851043717561661000124712522572522794236368409017848396690245596563474634929225227936581812462960386566513517306359124316389081657443153023317800315518656982623940013146794909408069710728084493171382139852286615864924799572612866268771063586692074258443971992960027237749908153079962907540097242547086762450793151688058073933815830468876366630950445636384790755570974353725198756270575010708341843444217357083123758642077460986163834693952148630207440294723933445433922327139494064843639740857778642828582995463654998632176987121388355500176734288516783554273625502190313330524573452391914886182566100302436694273462444614745582857551497902138609439062236832677932623362175198229144855747751123898311958868671131807222232124961369431478293707497757459685343735243535984177927283539894221908027583961245345732328204874422680015939129029562374279584686103226967833901046799679072664609308955170009588953813022306908212687448185573732490771049513507045247362875324558460994138466557515858705037910642530734592826895925297778931603411057553576126392265820760149894479163489120206521475707249494230977589388714471096967323032682739820761190337019871302251145385847865915003892869528749354856873946656116706766528551349708462229874625818360478135678902321560988748259349488365964908879446108665699473044248073412866761011601183176794927095711518535916149714157999820951372585676619843113042717043424926379811199658143084105524380788513437573773775962673447410028250345013373370513931794604477419532563012814730331307498242990405267598981682933641513663187418801744920112691135007695264374853562705783053080004249798131159133578703750901228372690781506266598206117386261229923833488715283308909723202050904816017371947908864746754910990696936060521468255070131445178406340302082586168371606033731840841288844618342008872622274154769942192320691347334433524424299747893993332393702386857245715800126300030949108296153689781934452165770567229767384152830110042977219551430834029111166023833420414266048808300464815014399691974404413041324973449782130019551968060168358022887405462023983120233469330436007361451461224326336645549498521743905588243045866609166422715889258109270064247409266909230106206333745111321049227633338255249825797704828492294277018200754787388076595128824401531136231932190790127405851644033962602448870274793127853390917786884611687186589212753177887987029217990655713603157896612506376019622349895509756767626978373574405470723656029630540686646888380570338050543784947645148161244794022807539453164616459446816062848974970189604694943213611315761242399182444970294846891010749019501025269837914512663445326899727525947796304954941174386331968977664078220204738083166037619193885244643242349032124525768034880314497064072693255811654935762568417010540425913849187213825922954136339470147867171181047177627804536851789674605773675901851326997121791780632328813834369860062252417942777091530701993014295074914905981980262815718693046643300914814074557033560414932027134909687740866595158324509409757393836058038439661904130182059088019508037275552249337060141899601658561157682625145191214415559640196573557645607073131489261186646317508846891562005523558415860503691789327044095229416004498354747997630995124869462535210711835023481801105717564567955857654641411204009246851508133820937247641789719121910568345442672324391157708585725197642152659907977762268134865384509946893960662625254856223999802908965274916952161551049017709116953051054630165030346637123614148807495774591261386717754568889691506261225371239684211684777337776770034341628252175980968576945164461091401367074714559954675967263881467899848853559883584969006980193113755158407731054646057018130285081279055752635083755662064720145159758463181282917169531115494919067387353770709214434695468041363868271108448068433704946780459481892653658014529335682573196919796611328468258754219575751726701776517003796827856440349436198260050999940202095292871373547518800083059064439033028960534547459905867601521803035234317935927502463851584750948086079125025880920465316733345570836182207176004693590164180544254708956205403061763558143186498171403435690854783013826456055253895116137685455586954339921506642745221022998640535490629554748075041939031849770679601347763155921569048519906658753883799251122598190678808580144517564745984880454829897090495997812000295113257307996343122568179189958874084662525543904825771654131116170373525153194455939496224012263585061842129375093728539064691911604658967885817787589626795948589660355961332018551894961623681639234329430722121561165279061683785992714763021723243513998845088456652506566272630719042894476494207326758934064790960389550936856029388293141607935475333496255985795235479022636471386023214880705285365656325484460097571421348842642237606438445485732402793165315866498598276531321872227687719804112915082529273609417904892251089694892764152628261693799437203213702907810929163912367388499906976389865432925519048758957467962358087336015365819140704790739029172360257870938510491851825870057128605757035789226655332731672895514614931947252267993350491126215422963041388105375877625764550284612661826927647209771703498345130628946696834045976295302917013512795019398381073579978567315200117490755306521180821663451638222103885345131908968073215584473304701734601350945813293114697799284836817926444400035758100536608454700495547809685181257461628702750810613226184290054272406584243834443136211812624706039114552006958889737645429328998552391469422127166770690053808426958776338289161828990099195125563666587882456014245960279547620156442106639895106230156111135502206941836516766233893808797276643296550834789324771919851063191271296067961568274267134965241347588743670566910934110385654976301980165982229104931230294546781324235781125017682304813651689165963322419741789507949914750931272195553778476864208333262358234755292605694802154812657551515204440578631124948576165650466667249096118208876760758444478929973756531508478898777150115192735657391820721994170677692058942780156397960489251970401436863491167297547159627529953375827194290905351648022512704559042328311340628065016176307121383131788380422852985575413889211949408770535666423100701267296379237371125048307470519604463765236919875275102762248215327354477308314214013129670507544778636366569221971857037843463813254925896490397950122389258724846712001698067578102110485412965516531624360110591146592009324775480367784826683975603429173116921756000684440055286575829032092784302713373885307113459649818151097642795797867105351830864600386476800998566467180417331861772966870524280819334428875113217332484932574134029035308901652084951880087227398815437582309504906239942236989878832922645768297010890963368637945595870894278278223939288248057658858477229018854932331302008242204689922757108721012588840566965925303010857345242561188466541099282904418695634545654267258868666552559668957604707127702461220655330344432144638324772143677520368030700529022094027002633886244901482081409442366976791393874281438458705243580901719886946271279851954467977676426872558739383520726053857287003050877130281500237151261680330908776507593442140010817800840189818406890806157055952156606197460968754296721848487657528457427232691119194796665172458372191084524075756796594638101730939477744370995608101395152965771627126637503760965198822117808090506019696847283235325170148366170518737777745477028228063449506719871020420846575304528434514832254868755870710963113912602663884040388216262340788583321738563521217004729952906919982251567935623299947352726588780916259819921738814671474616544608480153032066642365680554361164257635330734069531399647213364471529141739261774811444298730277620277950312649790122557699592570442503274551212548977426824224669172299684529457067764234316925030109064429588949125293242083554232724235655295458505226787241160278996951106245552948842190069398746686301720017252687631438970075381840481937923647761264005123562563605646532885198645157283018525616583287720518047620706637940505576266111839951147279012946118657076424869456846512978325456263280981551041215056838245906111046757842054271781542827971688299087512421413150341474394380567854926708159762983310992351973408932451901820215495908293993254997391402414917926054391032508364022263014072902810108098245039459591471800500079460821078777748173409861445734802716938826921393571241930747410219044774623911453132951248711566041315057375396120225419134621147576833423201908357731159466189034370900749659378828490133713477653547136738189203334669546876049244301056263446701045480214123195937777221213561597687059294110131148106177868713416278536873509144639474850215449665593779256824799918050940048058509283429876124953032580456489413529401373268170347086754091564839639741498055571947738816192700113483858337869117926552165613569422593619195223680931429792914270541439455237676056068512534562480722168109093878188828382187891993424038320823631924010430028884210719441027641968561198042395989527792249602865379446062616221914246445796149101308832203663576879274940079041872040610399104212566306777043221028926903704370222135212652283458412680500955089948351395640625012152484481988840785659051834018534971827786932352222489685927762424607765147634342834729690863386893354977997530673959814608881680776788692687253967388079794574676972744998271448107255923327812778577056843026961777679323138424307091759013072936089189953155142545963606262778544057706722122520316735493881319275440249809930903484692547576561015677912916472399350127057299127038980616465317455217101188477765982251781328534527740063588594401817389231422614464644532087971247804060089370221193047851657074170758558660652698403061635841277074060383139912720065038387400445392466786082916901135660043751517181134200086929459585123203645003080339508183824370602262333195774113380222001706643599668367085366983383809539407357686708169321213160977193596627466000943482346168811173293352600537832198521174954951299122174605659112561806606393649870226992781782633174462996790680423192445162082654310415399506259796952089741101878485824658559986664784260818448350557348396877271081559961229090878328407802150766447427392629656462589851470204013164671893567697349799276904401230681866740656808908382087786620582463510948567738656632398832013172434814547455919467740535732152097256984378503011921116891613406331035518679387723782854418854729824732373456378628587374570413136432244830667215072960490654277749779734428157071894493993122597109333424184348729940515688687688332703357509269632950414247829749135751640442047016498907847974108568946330239740996446911135252709448336912212730368538205504262191059673150163503282148310257042906288530609452927160639522779497531217647040201545818703314870856731991508059587463341206067623105195667896956340007252389227768225176507750410561158978060976190882395243317678707282836762990808667913391751682076949987077080923677658656277815148016600542172582795762627160654774842452315945273356438608025520398846467093960624417909096027728541723098037864700165285131064669840573189232997202258587386969573240686690286186487207512854201670202750903267966620427534516230331575727471791934532643961758799934557598044091109080294880890576381997905559484867264200817219913949381924646475924018340233075202007340271541451638053064526240599835841831875323268782952545783658471182919739788385594931286575610334430325104716773758476113985525029810044112619048533945349673913288844847604143413134213622394057036692974935050833366692766143256688947051766804822364224958030957560938312096667789536669385593870482639265944788660987944076844905914046324384444014157329776805267266055957729013813626200363007369797282574030796277994954206675661532072715528732096908359249677263915520442732015578491504366192624309836790469801001946390807546805563974918420621064512783528400374388715573398078799779484325772048094221668147221919667842472033781945214824626464748670515257166853562207256473447466460332099260517455969747781642928086355241166653139720654043019169790926668916038440638515083474756969825383132856426367202231851279179013836063344309057230719834428739725101462369620270736765581515564265526353265129664894607545485935692867436402486781369545781486777244541570672958262823091885106272238293324692212800760788412613285815669315998863561584402072701407150325206619952150293305161467002736157566356480414030514743515005957778159380994428402252395241958207995143548839975256638631162653210207023561687411424937365977767027960541388269775397797644118107375007626333955993908566096355554956915348287919624357749310847216613801674042403457383372800781183028122340027362943964642297651984050802745465215346559910851946345829875453629622262540256869076558230593983688785571834107499033510640249410220978984447761028203811690572016727902148698625728101397085838174893529491134073565963986040796922154376056947683588797897940740826276836796536248899463233353374448611266064333827116656049162024160410397760065114866518693032849445724678476928461118830967203245411363693379140316585191895781983317171681123357636225484634395743424431071505111220496458349795939643489600985589311746580691217177108304559415612935595039203397285021887749479011720870704135643845100388112624326801041318001677913979616897340829150578575050914991948190511262222541262918107508756384216475726140671396250931680177111714838267755749435331039426522327883001284343448186708105694026903806953987910503958399080798556704117764948050556397654983806466979177402502165136450071369800583702431951556909036852726418529186265279310022667730269909646812670161481871684776522240387141948704116384777826508709456755028899372981744952620084447745043537830742340675671849386223086848853072333589091167698366515715069120055685674629764108900376870526350512450259631915600769520401199318993429637873155662951787418690491765196523409653041899317347477584424635124392628492127014997402722067689303650626247489102004953286629030343657571073014414890608979531457781467133718319564986092229115882761980300239024661636661988541312453009208916595946094068072868313288088721664192317298618746490508245305145542794579572319963389159853563806086293785352781929255834239763349040710423778931706498340354688839716232928932546382075176213716785787531162978448744252187749684262131601718223780688333876240273529813531625319870840811582614551769022024915960941569798922667923077764508423866671919827639459140542608332083605122348448423914251411973548852983617160189550698454800234083526989680853718308541332533051294959712796669633671826938423095046614229046067636094842432252600839305668464476619713182216041700731962025519630445700131072717980361061131230261217640516253274852425381384634660622437874380666782952073636304828928224991752747017738811545987553035162163527928970762614179267239820363746851875628042283864444231566286974332802475249261761009092276404698265127329537570030353630318448139058875778038191920956321042352202477422281856714721236574945974247275586895817751685927955408859095782415951125243195783827368665685638309400529349719130373601900034066094536691400851195783851578489367063740779777089725099669601790366904683315864866483307765185529285792792639886324827663370943721018033889083194081277606924536331435116821291177791630761009021837304542321793332053586034322158799373033964559325324638810965016826414368315205050484400503065331626092649469852558506544648408236654199430380002953786224832646661119589611583704686397032308810579357479858872148954889844685532873881232882252566352183127759306425914902536338571284085190884995147160182917077020822106615524509679240175901693585842982888430808556496700703198506456590047154355242356567997905449144958444878924220655468478283093347979407708141881281035564022843096371640332728048502860341919017561825506257982273055601891096872231124833826314079495640479025763029249175245016144025310788383656339561952003150813991584437718713355449308056698618099168205922230956486638792232350764563031451517958327068462102187246824588751617265055584865025094525744380892191970614927419447486928016232797469931088610073297650073111963100407428448646620995748554516736444799711199404824766582434667626982851952767948132532812955408946508357135387318806890632434852312613753748014817792547424120500182976567005478662878039643370220729313858455203946879074686036584120040957355885476974169136789110055013989152877836285901878999510087925533998077171347365117836118790275036258695890166660503355770399161804872967463723917637843687771028492883413149657970068133779109611063016640276788652209844083337570959543592403803719531580616550232776054507553624467682885147592716337893173446090493803136583243176887659972792112939173011417750941873530571863022151186460069884779026658448614750540980011233160525565424086556052276669228348179910138615424459507389041852555277270669289970846732906087584795505708225434988774107790589685609334139892678762950037595063550071684799833058848984933317882299264251674813509294051816157947272247261274733883866390162355151029400967948867719799652821728824718367115550193191300197725133449975622734389700728396252172551678504123260152417818326660846344600615614561617587294894030063876012632137499048571558133951963064402845489270308228265394918694495591588713093406026529976712825289947756264074998315320595130394708228423053615103610600162348559385436443875965142446031286648011853876405665499106799974299861712055720171698761837575042919035114384716108246247841477222097613781036568024767242423480262338817348631141208507032434259772297701260006089335144253084518705770510164551454926648475040856171574403844627540163621507028546413511874232223851909450316676681789292531546179781712821433045982191280135600558704056902768101856226597690145702702241159227180030025680775464548236931532767025715732315024518361945416781042962393813000822159894577039192940889281574318602738075073184871953406392163571528027576519380034726269902496474402012829495168504316442904676789072942916507957675698785394576960447428854313713243199442588840013833335697746804415093391576558510302735911610094045924655591309530669574118328099349632827635522756581259386229422547554527864485467007052225538494609940450579421628718504948528981754070886061783870461750787145455396557519972583064766288234262033485123675499238949268231395360127898012711828594832909881774881929400933565697990421351996824422844991034432341159853538259920942235631772820316386300232911919730827725036653557274809394799035323288814157864781883574052524291674381965927925873085571863662924005542798672525953705920756863187560616506150656001025796105565989585153976852237777014516297524183469166200342100999496525651518722339214356621230744297174567613679173628715649048098077332638242755727776811724027049310188431659759377944022862121010120044514072337370913515219242909350691940737109389141862371190530016737304353680400448778894960541124373875203655279753602727965352247931466965113030429977058205639661778334643075934671943021835499916997629306955913770692387671673793819463969708257619426537622573783984021209831635719417154578521390037415111552990196685944258668424552659190671552826058567853853524819275336978797936880713891613224034293156061465315834313695500135544705091517619623088517290907197553823048728992985439090809072945410829961321084729158177672394790895207371159690224420138644085533114451145426713514589952878244224031642167781662368741097742757344374834760526381588534219640389037444758667651559073007161623265668243001198025715618973629930846603868652182796915335962331021952628054036657671190249427220873897170595348336501678995375538088958203286448925454016714982501385988288143694085520506428943982836172672247081081752810647351542818304122756742561042506263528365308648073065429945082961832910403350979479327183279058935271748258616632712651000360587624472853867939556112231331358643333392449732830644632123381645151317998717043892325651087366904678467319255163923407742856623493700859648478358106086040312994388140277504179475343674104714063639839927181497048511508561606061685631155049321548506304660458985862224044521254636630931308520855541599034738744850422239581774478742129804761126554876525845342883319045874810926056953247005997510207699309411762576923585482879026306652185936103061331469299070550366290049459659949277281111716711123976007548565311779981695762064486045984849652696815855577248272595319635076146916688353009966366093847535601230393515012870668086117384679764447654272601929669516714757833831387844473917223144660118141962135771291117723510778817286524596070630952446477359205363526575963425839497897534779458470544197626484913711366765587184560335412920368719959282675778016284800847198729699332242695689595494863991184707570445673291217493205086862226460319712344917953302249907664720666522447841749725249153660003649700091272416134840673421591529683561242778170442137364157300017153413752124324515571881818992846557438903600642314655383026900854415954578914730539304282402606692311455989234919348317641842865802948878095000416640150619048556786666988705561097768895221531748313702478866704325483861737352688723079569466442949775983570001987266253367006695903317183473235980648383166660447665328323441331295400140981297835087900431615657110571252327715492013096091869921615693488323444493055922484824630068466961680503487328522121777175470718164122580856754173507073527204941218063553106803941308400379812017360409454591813319970448698251658347208959554710728630835650628796808681432146445838560036662758757826639504383981496015670704137143186162165362622857564357064106152004450014223173735041863151649971303683234894307599097378151835017597106242574229075382318915440903424292670474810939728643523974279639544782763727229481720710839885865021983409363070874150510273963307729756422103368390586850863565370036702791692799758209487111163024330647440696825751868823538982097672090616314960978198298766291761053858187408862536100180379487839842070455728278450170863071199823422048612766516041481032375285548133826695615229510227829547494253650335266802712674021999971439899243421123675062585217807377165212050718450579088119703448418753107368589110604393942984366386030050217718205723354460631877614508214619565417326582914375426062517335253481943376480698810052933481560271162123610268881341688574888043258517666394724721714784084354081801763239687992087501791724805438318885306893846240950944862621209059697489712145136396146647680388459517469583109384517906940605206318721854028411053761592397505197369908527440843286792847579468099803300308965858623204964115655172919488236782194846850798339693303558066383462287628765776017416159985236772052386885022579791475370755210007565580504074893801343062297614881576841405498418274486062967862394981587273413658783134477249246310093518312469960894204785735548438728170293919565689653275899689906503501568949909037569019783149667920426365628126531291858787953557975703808011277062535881331420684395790597915104246634746269824134449333860840071618685134744117654983985212057796552305545034500944459305635143038434304151352657672262094209653650285704596118068747959290378056912764451523017110652502243182538897914545725099937180941787760630336684804295338583518869534145363667694803062746953081841733069381942682357645538224101716571992946895827815924017894769225484120752773700455181673658787976537947478334020314051781690783780302730828303066220979923450737405583302098977168695406059866077810039669994481004724318274993480268072629893762099580407898318919457752627576037890050424809853230262806303698916431734957596368003655866430528420612401786688280654408371530133224703422911254196209877409641500211076351355075788765133287976022828793566106655781598292531969121105966300750375024451436690056236975812516271419143247186925671867150832001673152265004002189052985100989015159686511335081095374793636448534999892815100342010494688299906910154169049173211681811237744366601577649608610267435214510618708425260010042885013091832838447221984327670693613236812570029832123587958065386260482356524016360467664609617773552031252724356270262943702150631444476163630446175166150010910310664433787359717341616418571112693177914897730164121334487037791297904416090570331863712100586808282807214441135130207592204017370305898040426731006745187829527828729526749677282457207690811095305688609718834171710961117275438151936357237736954683639556312992340942234239688690246160837928931275512014578061844008858564042987530158151014299464847273461152850193471699757392860904901010805230799315317518793290568879936120066815929550852047534580229710343889052225823504168910182460233153911801397564431227124283709522674687031454391087611516760714172226230246483997631574818508839140245420515016513149208720781693405868939472433650480856777671894104040895092208310403192368091675882775320079781671863247366393503338114678800438540340865931349512996604065420926882682702340891635509023256370803072714743401069689162330477020282199860887905207246033688957455378306561086402219774180946613034937501645688769635928615061495121596397779621392987392437315183289967510287628265838274796599420840572468058811252558640448804799585164496435129015673902134369518111988004001260796613644673483468658442450534464326246561468329127410937132999233899384500425496436170349648107796093579766168655577909782185673380266889347350490731647454583484605278832726406512176089133031252141694448119547219635669169997735403675688325944025541536218649628689559713603164302889958768000321381664722257646849802574000704983869124315277419981332459468209146984645960408293555035163903683375707331145848358093716430958710363624259840635438676785941176915500368509456404833840174347826615582583968540206595371250163550265544525906968199990624480620995224971298462555946579180081678777545256616904792032552850060483044002177923362351940180676482418512145265607127414109176279462277447654063114260858815073615676883384015690240736763264775380664773017275451074106281450356082316372664187695982426088644326176912573217127130950916529860990295855735984277066562062341137867822216020576808831857081532432559232448303980240896709924902535274325356391213791542023582318274945774450531231066759639718406548088310582959386445904851875307504739077729805555718231163681540399169059710115780865294369350755267643905890024054375993012011058010437456124747277603652624962187818016996553087016260154296914235313251523275488851327054759843128170063217291156508734989710654110246315816463159019516530737860339984891320335633309833265115311476733723009274284599967226152233232592467352166766633236430900791748421193534370825322764081277655046195016959007651153652401195405664211896719165547111233534190887112082550386530264203381943749176619765917137198507766632939197724946442330804712451658113151248870418028202817245748812443449022333661251584580412447175094882670351290824896936382330504062423020471773155469207706045816727291535865849702006168334215944525861156233040352055197281053563596283666060896544589806695098864579927995494087866300128302897294385228318915440189244391465481564655625026676727931124362629882112955621879716866836066642179998078389250784890297266945892811404840828190681827119560485511616134050678860637577318727001418009751687832667485376963688817685573885682730225939078652860815060837751960529551946104506333747975670665902300452828248914834024881213526861821163434535287894359112898001489903945184475311765073153696295723553871810551317628749382679209030871766844357608552777300621247173198884937106808901334671537302358796381687523969514550152779308806304923564351658214890360093433287965618113392649305149060002614510193454635450746913555158915624490086403020693813634109581815194475077382497746957349972956824701363072467413000629952167230264468101983702461026976556508515456068918038012236109995712656661975595884150754176946647322051714486520445892332344381915463157949892239985648084143009769352555269850644953379224383123844672280172534747718635514063052302856987460121374510103814716139282233372841436705688806917984786407726021794951942959359590843855898093689155933622680294442703496617027418621332397985402700026987747024500519482613781468100674673456996379592229196022729774771322127332953679208417745556884911132098895146515340644267426517103957373365322554581789445305105431547166799009174376901531223520848190769568051067382736474170643769620447601701415992278695985965846625431896682317030921353752215069024608405079732210467515799531641222031301872421718407858074893422602215481019210198199816614799515479443873086150056237757934742319259537307547747193051672051862808359327349333803455832255680153436110448481370124309106424175318274617286368863451597775944694265483947934386854056162651154761684903638402068388002497734419637824950843900610039877411947960556235291675469084710114724571778080654156673408377089772205498659729100673786619905619241472464221332419448143086585275719712071579766791032145781096357858863548285011654153018597620408161724894302888865001941985139883316583579443152930953474110675375929821402884480061110628618459111606319115487446956360460004319369926116179005396088440781526575624101158787695820626220443307852777162455379383583902031852438994980997498040870489135716482589269696916874116910851642060384953147030388404522730911694080789292398459254779383705050086717855206634849765084400171184303423968743056929650345301153435723806074374803408256341661888190548975894483272714902173418983379339399041637859273068602132105742101234660006142348192944455701096019416931114708675646953254313422643162795690230116026614536680650663829495012279846686479257115353232142137462471898474575101886502609493789195841470317727684000191973282337739548372130821881437541913138183143259304612329770371008692270371821092732699417622572419769117017466050477354875205444604398764627192203563799907208495871102270398559122836364396993026608656178612505917142893346994202071357695778271738796383014251964610020184183765601186332530672666416049674634086698616107188039690952834233662899277093689466484356042059967264771001155780813349955667005066163896939979088120669607862989761113579843689684466142080991806235248795834381268850374256182325680097888176772967485886294942609711385878896798991555160094317398272554832374475356042615547617244232036712236123150974110158909415878290884970175666220606177523337079841687453295316266378960110472132394550755688111744219938810654658115483440635740539977911748226767096585668814424589906742136125400431526563594785836158226468298457049457904630941280731548858037154419037250430993645493707047172993227245903774314710693549870682343604683499325480886514177156508902418143368430255448384742728121581653085526183015163850846473363168868333229737397053107019218635107926694672757103351781971077678279391309621544533930585448580100241125500815100629500359497484871337459270548695044329784362839478298212861092486106535488233621577203489462947803763473288388985319560343965946086804582443010871227205939130898544396105756022825002230659263742207121142821991692149238569293936276123164757555117319723767848094371651280923031600344971148945943362576091483124817909661417464344408085827023777889920039307970891662205651060209800310500028915418339290785318538266843647819211101715915163113201277819219647170643691851297992924950904431761101415508327089882282630682228799772148719007979179343109632441204966302505977114472480686191380029069991754760602852253867139637047844377503927792645017935108870800005421715337704579206701712069490644788127708109826447217374678435919385539165653472433000053161708395783880793501263504229208155867559681549110198120221905001829147447749738450299526864071812216788169014215831969872222822674002212451285709221750882404207718961446820944999210235140776440643490828263808558584758219250974556466791595379542094420876293702814976452615918531013438863099442490539067065723254129100524190226754963228161952687983466600426356989702525512375226419073459573265585811744178416753787184489300087120530286425548651536596206532080760751323570556940772211591077131260981868393110813342214406502056890169227935063074907631276817324053481723817936907782748438331802310007708532466328303741165368969618602545637527233309671802612190510997182018450444589990693937496451756959456705633823351070066330106167799942357227393992891636709382649641275554231358712592534556951140230342454616208500322574408528576673519618359573336090199662706011569560183578907381928295007101924115299703733477109363666842346138547036545620694072777133039123705730140374002037190645367492954199044957431936226399377167528632768456682904128694923267393338508646273592027147068145001473686281802448352149674859812182738341119830846862284471756878382028358247737799837221882413381524130379490210042246836774530063501350841191380454331468441766751570046721206821925054050452451007518598195769478554186604183291375875797752793628311667924141820158003064228174336052512715835332743659346307366050588243128091556331787220686127302502662254532578024939565543704065363201440136476752250033944969417588735637558678922227752508087391141941911328588136777140684130090932439775148145582378067035854796818533811482102597114005988431307047740220060500129031867161921826444874066326673319841030042716809148338425725685472071842654209986891134630474603033604270285644410387332645465607058012934091869092719318960729079336912283228949352112840350052438865348756571551990852166096235377150556874746770895082049599952775913826768359369767512677797597933310572772103355095712198273749590551664803065136112534151863611351788037633112708921965287823032971175777276368151291301472709130924333658186007702240106568040880511539699644195566525669658762358806693519287271910491710384331684267628390068209767291697379260471921828735490550629272937181773085684409058474864860015593189333414553767539044608829068499927491649099501530311355939160131710013391092318984490543552228389111487680450801209486479093228117537132222145199101613569153498699421462475923367495037708702796352755987814306798149318242942397985939509548674432433689768256874223525844414269813907476276997674145697118312133836830357356414784039926266028495106446323745686713175482855552290159595956520158665326449801821760854929442413633279909559626471950142613110795379260465356362027228330623543644795788357574581284200182725855014925709699916775975514337690741241387830157309867292331614764689963039525858545900004437069915897764364675307072945251574772567062804576020107395587139497883223583266851614595557867707117612151887070691943030040076040537585374643908576104782619817319946433701632875878168338370441737674903985889751897487239013590470032973145939964369966782772844581836216371841027369169642792464165734512211683237432719530586782871171351121109565127462788493214299083844464711504293308799396104735719817182778000111735551986069966922426073923128584982346296566870751524488008927441396037317254200554197728369028680762254745558151075063636285033557506873171061549431455955571392741463817368173850017604418560069030682558130433173625074599160018188662509459222375712045114500335621322292479004686989172520805920331118981998235029979431617304780577058961874525325493647854761104970754472794734400622231043396616203570191039210020530846812913100056822198250809791035362617001552033270261745978703724282574325273070942039777591882954926917526902038170638985629952522006502967508889806490700460746913635442870016457013844405677734540879377559226367542348498217135073206812765994822329688033884020320597519180669817618645488377333933823122854044719057117305570540845734198744542547140230590443447766265337096973924408873000649601885475410387697549279730622824376220842020364997784601032078799701089526805210327414279213804383798512293927947591220554397595159740154546389264563466128151540296975904907937049246045942444686628628182403298552091710226436896261534620650682048659989160584451286509792231444821909704837606588494095103316718073692044798329595999547354573555650371139266337453156549972842306405086223644201657409178844549905938592549926940542940254488082429380169408335101662592722335478218797196137536687859661997786607133521025098059789983132537885135704916990693838533594658971485067748897814332996232493522311185458746691139096900022021441492533166604444892151144803203740808583011258114699638763613776254449546958921834601148810951750073652375172935920168415055618719169393565661802621274640331687998122798020257829288281338830517710608523041420632546997769053330410652004742288156018082279952346435813746420960442356977046918891337278791830835890252512689616987005468645475984149705673814708956993108127115543021997627471763723303521971568826104533325733467597959490384146368521389855923693892082266243966416373447078273106093809444256690013743579496094158367332307441027169767825395858230860428879351038560135678997964974179045426839351158899573626666774389902976596256268216521501954806198822896513800693181111409312165703630646212024194545070565250849191778037189415143746617633460974258583986122085882687107227215872066492067279468770413087961836946867977055667792604608586829040749111378951078425302681893242988413851860111238252951611397372300998245539616729032577947640279733665731697772151947488548494266353109107581557513987429955268470071327558388972352002800416934077994704022172768974908495276482780661794192627709467996701010098756049927385963351605060213499332344363523362568085113869605192533618179159308624617496911114550889365515548330553288387497260642685661711413559568874628937825126549408351662637165390050335880721373267184448304031691826779194165092202890155274507672052924402074298794728766164851172254400232335480197609426874944031790326211800041608906659587011649991569282669635245034112570283426448357598615846221363291968794746749672374121622407969048994445275226328065729221769278578136485167276051474343165397473037118192606280314598426969968049205291937279511914067668800781061362371611303898503926724025601202981016432261425147338991937636956002869257505464998946358357030134403713499979923247680761686862505615027292536574241986537112424113400070791943737832388733943093561243321954286257335175882402926377141451522801219877035790971598008675142751669548251252652460065250259960512615123659411972715615082059225586011108029459749471221753267880949391394435444058159271058587372459246840398125494520822804723298700507311882437625260977650414599101633137079969497431686621668683113670911398123148241912081311566850899173554249880951934141546769586044678397931024043273456164979462288578635425221109168586115629080511649871667568135540663172966804066894507232788354386223173681197635578408929699115395275272585893035600575397829940120302989262945830687173563080338604379180218177420886520954753705569080598487492407009676212386332849073528683881430672431127216936882728494785011466048646036421139102152367062533605239088370096984205704017141391464217748437373049170460698401419623915922771243544209775498954347779955171993133289697488346112934470137449827160937459197535551824076985310461499141640610622851564243971546560037436479510369876930771725273043246575225806898916662434934191015737770481324158454691864478610502387086478321036350050913400429057792598730314956173328430513612693374428935178322208672824937080864856422170184999628495105704809204666887003708943893706317413027687021241197846512965011365947967591658374203933654202479908725047669327882062038360748458100319045382548034164130743610039638954227090419074903540178112755054227048670270321537175994618222731767069445874139989653742226524978686665123063258583298731475235633296097835388663875387288572141256373910720132504156394707545564287473860748346885928221802464773068878720570003058533590039192943045199125506489199096999923061565481860258540612151163185719211538426075339592378645224501962963421254560042097369547196154870939234310691482643851109119310228054714506500323104128543613708214955586622324165666109799579176558491220554768005770174674245389230029365435804692413441282860899899965027605081835654210009416066462223476528632856866755950235760622994313239098499649774237645160357109180120415579512271802170310095606177859027276396451485534647736476166548159547134742861653244367843323560244297580520862492353054516401153400533417060472621988360764085883623047023210723280061069740723931136404667478631158163891637633509862778607007673041066549497308166020414777332137690914264244857050491301275512574446049039181729760051536296204027576641229425971687027293262315537445780657372305106715170483999287686433170715261072364185164763957213654038685559696456392887839762907288491328551380029828047466207725579045450213933965945516385239056087225327926399606366881136200606196545858274204383787556811230912577327961446473940137798900801924053010058334978006076746958521531172891164693233872247247526991441019386146408297368510768375935778432246376691134252489383411847695053027845835799360003205979541626479054475882246166189665987690095167397717356072635626297193240738268457149682984484154836003525558736912063529935879431778499438914229451347044312544855205479667933879816381544638774196085540827891040019103852876734595881733576439165309265882688677376669111008650228688030908803798582332934108918033787116458572251384013862770577312980531367291214096069936617013626432831433157151576593528275903414080263337259874963106530953761238813855841658731348258623091411531099193550899401654480799778870557518516921293283554179162730818650968524996305213860929973030194291824110806964409381732208398904320230546498682772644595952988211030485647278528487715281293075401918272477235482668717862070389918111954237198011686559647964041026304963078933970594173173718245467559046742501658584846931541751077396774124530948077799160269669813592954844168631303835687975982545367741362917034058980517272091314380124955692280425375593968249936145451278062458419295495022655400003783733648578678326090674870832995809447369958772570779239132357586036094212421604210461990796243851803790068894055556545133291237255906536194080896578440740437115256069658946560022191854966948988786692473752999468539236579001649869657182336847715551523688875233982586748036132999946298515265377245998666611256454501112418751705209734227061652261359455028201060124234996300006306557780004584459267088345213937692329490997086926151816476420845291516628486743465334704971885535019035121176989022795943558773503207289044085697870296493483050736790203468197648983882474968397222189521177164438042137921211119789478020774254057880099507187144707501782367176337686924722666853217749604289730781206004537450125207281263457086724295146352746944741774260052906497939240052087418323595494218784912356662827252870200679188072702851164037715427143401014227613053361196567453136819280833615200303829391481610518162321079494167852026267256714336420290835924368742590510207592938888409591661908973992587543935589484035921882372751249116209075259200870744482377559909393701933724375468912392514764332239363998302695721655163609364163277455317770274304320803811676456208817680926482004781187055964019912950177395950163964313694127130386554300639559983413935065628453144250658303134084547212109749111277328272852086508169648298123613094524685007989294851685204282619157747011747417263903102218711959067303364253124755982209732604111043512343753642499603017421830991380124391339371523692712295864787089940756481097601753889669222883309091379357141535043883361394443995451809045698188017666188008279629188809455859758700986055656655731185193404684426348399653560531519079834797695125206202782353848791119925764553683162426704296275676984787899821505991918920468737797879239903657986444575538210151289705997538813465239170540185988363131634947177333932428565030644897283438256569453693347956641559809139494627017551056645989678250941575219125792565185262532782970124038452346553084461546875250812049982045329189560521030852367161411842364707126301570482377842865382477123862106438138749686922201581344702548659708886631294979781099973544888076484761935382012533907029599958087671012933357480205059836544447999965807141085869778808740451840822528928114549472026822522492382062598919220751649015239023636025407368481462870981932511100547589386390602796033659951488904820594503876243674361845545231836629089607150039871729736886328770949597143841496759786971211470950649498888034298379527680147313514985064612597332682257129914957322293697897915935955484151899635026406131886528860101928968780461195720478374340554595203710311362161045683207504136379732385606068185032408219197811722885390273382990172052630262145582373033381857126741917747381923054889460971221598005097567998476070061386434326905448778610154257308882967405146217116447142816604605849044243529557504392445417041998701783697439246112328533168564210992115640299272113356173174378333545140554067568502873764943658090670389152075806562702806346074901772128313445879939960491433210021435243672038355405516846736874558816464849839722742770566503606445117684332612783322043062738154921415008220174639562836975812204617955156910461996753415973184575783295918900708294336749908937753032229587213780797980151769146173091842219088142347365885752878535985068382083272384551830401165521758723701855963057414158746450642324853280240071940474281089293611292695549345438676648609474971587966834940974943742226898173433006589475431900307134979495656447749310340209882364970462239658681325887015737314673081923133358960821475311507380213311788852420576940229029371365360578075318972163556976282923325402472150976402403073977525625379829751473422257425817569335966357462823175982995675682893125250165839664495225052419676616940231246465458048137931935611573084727357813063421301603504733417569966728079954580824203140423056342428296844634594686384650491883156283561228198647713511767806538640480186985812963247911178900188383874285148802320231840124056130663673121676485953430510885762481994331386572831679703733118097683277343813676263392106049773484441817403273780384266038419271046474002678372940043137549039100125880410828040577625600765507188858886128935623714457690882616107244666086086136386599462226623616395438977512515126122508170703946514032053444635939998937966788186834883332662629390505322861246659416725737363339945694029306132559172848113202172308970369874628802048998249287508542158594561251181205469942312487793840613759707441727311093573650523595897149712696852075967477115198657059125961540779869457708536409237129921708122433565377515460280659883285583059871294614843836085571735078487123807546454533999082055588384631027949964390213648119222583514151295256272752666343873252999061833918748645725467677493337597525503049462715580632702634544012715327297843997286193142426982465533683709657946001575265313192347728322580997563850969197733449616108361084092643983568696168410270629398637051648936619878912025750470906298582261815485463066205284104684910513799764643949850246965248006451059400703297635674377877091828676033315313180237358889181565998228483972657484164193282826464957693219670136866501390427657845638174966206803557179690400579498809438913588991237749388990050493749211296838977674797189714567521752784030416779611994921577287097412878414101059737726090454031078320727202606904844328634332503318945335582235261149784557259776220806494691451641839737984579304343909408104523080860268008857233372097401654808039428325084450809365162843303872380494251072405220389778689377890205617732054606608243195768632310506533703195154817069432618879131607973266343096957991093805136348421375794943949818906214532663789038838273270707331326472591065561130962236385032641727718972007552746207822299381909805247376161636160447446324829548935373816165325891025264990315620629099290812016812423584830510741797441212948148875286621986027150672795596359099095373013949612097478737036987332119729385820078271022552619556236419679030726546004264418452254718412888769994140903246146910203672048637260145760278029989399676125782015067844013140238668611880180953990907927233364492247953335260174829740517196259038115611153418823368543641817414407008015069137228676449813172226102786314331440419861514845655737555314777636605297460935725211006844715304172453940949567170559483624520993759306186424937671762875827185983379465791183323746682982849133273106494588550904491340921243934482160830372037296931756501536606329962837094883305975376798584131622987249643861659034940628554892501877797619611975283916392939153327101614415289327366365980952229737557219647865987076950629563110703626179802892158699384332898301011986190035058597609065929501073948756052965622682900378117790565842672124440371064016060718273357885837067752506696476587610100043323350183722212885464848426998769187026489116767162575093738706308858872707423261582243750038290775205955446551546875538971514243680259500335428876046582168640712081780273250515348838197306291500797634563224125766294938222765161534552208457621739589966587442689408967043325639306434196404416943212553362066676074241864109261573146307151223512486989121429325902675534759892470746704388892446097250149905154022025251325369030219045220377707996282766202153961423033862763258287586117204870948056135059592313216608398646026788061039349644207064753349102232272589673614352364014456197451639425871082349756171995493155097327854005969077568640645638797003183281804306425002193763894737506468096400589994687869939936526577887245464552204909395717034514991330009009852579636419624411789618967365522709815696070744138430084391028375814865448724702610340507261588525956056917829137868912417631847891093098007165474481625071252618711499921842519760690907710822792183403588855412373154190459646805544223844515024975695387363870268023392091116601872268067880467902608370710523340166031921791277361644924683114831258961151940523737682325270227762808990435791994744052416622817907922236795630802987997757288830723311256539752172184018275092210591350910378055075677908535283922496833839975108322055099635206790714471770583585681809914379138944516054238581342612104591376179548980761297838885511547779170246372644318694423332189932061691411277760956327907365007930645581880395529695201592647225814387674137661108145034319113921834198244046545847327171642591662359819957730395465278808709194824007079219561314388808804660745186809932267184071980082756014180145663304318974085870446089988027578425615470468780950292389236461089972479695738511216731442203448469132357656074577548970658932112582895281448285148299355401250616819148955198808003711356019191287559752417132032690972923214026995021576952429959018639536042523881181811249165683677640670091963616894893364163606269760329729453572469237879314379363187488207552487490452311028664469784901003870923064632670062271617227548649464569396916307921330044789552837467976217142168473172854633687640206107469877892359552197614775704606203714178432985572933265671927978025314407514640906995476814919452760617164697772489045128520299005222014387389511419680892002312768885717498610020640504104303855688149389990247408124470726946044217101920470952896519139314862278687748137804357052786520254949963205294037760331131729343825667336716426828371730340378862500436072647868926577750624757909960861024311488317132889500399857723468766503592792691531203446402250461750496041476986989015792311319878962152050740232698829420476385442290854010905980021487123672279438605715347419448128216539599514402383676730642670966450056342373616031522294880963796215788449367388896563789218099929663806233043185804817051915632197121078798739601108451597932286987544705881647787025764398815797848428187477484616897920275712412618807495696155308812496107705184232245319430301936598268540375914031142356468356995514665742308008856385900923671959408060082805392379247264350236052675407030475499967186356430994418314770670367428787434346896435658421067521159951216087830615262387189251415693774903030144630807572312090651820797889400827985097323926300684715168392810118165895261466245526050996485996835410992090472397070455720972069124746086144192606632010879235294942421348478646880797185476602131930873360629036117985715969779668172299147779530709711388745727442235637631648575187679587989814322477021402531105215646875291519143954512335914451988118841515876304536302165419795050260804817109251508624211460911189451207510156509626842210954249104507589154101366156972150772100610366588956432631357059330018371725315616529322012985176681681295437294260041817763538545329257543327938529180769301296465305597915118343771863973368707570979443455194548896823330315913331177584591517171546499372550672329692777912614036072380767819058984462357836238817354518460584413137742230970575399617015938659329565296565018394065035113187680461272916871868390457896664285993447362043987810556332295477836501599362759522702314615690356527437974123783436967687224404372322061110498205348793226557513302335415124386013181771535298326492862867023440044920716163636660613108231662267319500740604393667375588404454780694061253157870480883668912656308430916225407927618705149150709280690147503218591952367962091556960659935829011412055551791758334403814654007898781343152871422455684922613586717610898382848770975728794779814873688411873900122708220323151095737355551515968380790203427151585250526035256322656864649899696520934948995845581427599922268608562239355039742703511468125952119154465939854369560254272594988393885319580764810680565936896702589157264646427677840080889657754879602621055283277804444605641313367490487719903554351179951860457605522882777766888453766379640597716902389932530416624601456315768515914981208869330808888984122784189753949941739759847972159324388195822083671658681984137277653853617618652396264423028842731315201850202088988228989559888590988867219760298080537288933839217594428374702470384308600787884671832425911189395052937157209825960316326264790651043805765295721774138940140207400563083905154457005189785463356786634896479249026028199594574998341048477639927856334492686178443194935227302457572091104893577070700074466114050285751970974931140411699860405148644130558567688498754393336223635230279135503550003385433896687456956705781056853808948648231339111206507542897327981963202695207601156932762525348605764920724764863936910804725429611264041472115637983358435866628690413942505438323783122986353235970861518200515186886937913390727392349960450699793059659837711072337896117341169707541863463645502465648473208756811516996160750876995268261555823903453631326394595384982054835556480876140374033837752285843875161939062378596572507964931447571454752108477204965448634021826089757333653965698576833632302368607824780900921315440316312394146242454963338857960884911250998478060764090465223382373565745212789212701170867966124315604997657689613091183992245395412573812566090620665350076640179583618114795940119618714157308455178757790810046598971517145986434505467509052398233473015910512755814417130095617654139594640110970322412133927315484070289031280611989018294168863607263252696289034630578458779396828367409351291563736827511114669817188361807071319594085300660285756426953046016472212225697787897029053543353333551589470304730302491005608776384322787615329110150514131014494668152411288058054060594066643204293081755188886092034992447630734168928638388147781619253638886736744482502450802197441770460059293857650995811983280726419887003392337452113826629367255295892509488986368611016516590949787201897828356702934232753335043726823378939367364847580489513604782460002775131606176855567151509848989159502138606026833603811102970391302657699640806226276303563398071008810495793828781817168875388043666470891153529931833158525131441290853343593707330849675344571664788749116481090075838541375521544704724766143352328284773381026002562267295805326232119365170146666539062097108344245919596271195518045887790235389040278201590898699257563971422591632331968034383858276118100428464455908333205222674742389517451771909158321225897297569068982369302498382369610702404276962091714299878433223342151611254224257588163456384095939137346345255905941541293141879823118683773561757554650246269795999541289307620392990535068841968849591232732180159754882393829290859954497307044391879735243435842740006466180734842574501121367486614722892478719207994681389714464898497608857983649986633950557028199356660128398701869626597084422323366728870975366400790182588083176518497013509624856820297638506712101752240903716869640511312119869844781510530408949106571824569301137444250605002460832540336677369398795306258505012719945797242490344589745796046847294491658850089303367942082070528098938412898895318908665351160194245831323194131469943754497603455597945431493308751490183908220722143031280000583488458035382536293653545851881202031975907614860431232831931533352163512404865259598837423533495618913425686590409002612195885335786270794716516471067958904264865489824365493878913629644962875737546704127167800635488738028750984455234642426076471770137839683114473232896930175970936325875479163792256236982192425071076232064623214721525173051374576421024042476066173958354683846387858881733845549132300423793051067748718400309921231484513262144082181924965040145168467118016123061665666401916485692006883238682907031910436179458791694861003251213314567190934548061215831527230716744048372288454188023874758767572833804399509023081806758575611627366598295753815687599132770655411048721303790107305440086058172188757305976791898039885945422036689565668164414312847430782473042966620700767878519642874966745822347940337839944293797536914899308308555757986560098268846636811434519620442115325839926148884000412002974692145048307565540305252776942862071369138969821604475362671614192605563794962226232858114793691603270860048241459820945577085210179970804919382418896661314764930253343416731253932477695737537538275826804227877248095410186414995695992934984655387636758002116718802785824134662812873534982198055382073557884570644091437315310586852680159845616531782631169588369273908996612964281539534945746103593354414392430891634190585641167216757767635731034049447532672226781507593189984356049504777116821197674314112328278456208766879717759046320909619187680526078960767532957722725706364513011620726121546476238721411260326664756306264008952400014869433234326068730061929726765926579286582580853592270367026030196744290739822694851539468982473212098802187198113063066904997731003115787243360532199211911363858633238909489630304361917123881345080389529086099605966501263106425734381867299491941292305623678508909914098104446599270817550476666041543423753638172124247934189939238124596580996037074944100011283923609183195546255206188972098676726989334164483837354931009803180278056761601901312885333274909020789421232903381987355670852920223774656856874182774552091468656875784198167651067160596221023367954965349208575502577765151688727047483495132515086448871637521456940218867800685799888955432415069596495969673731324837588509938427996661409155205010420426676355012219790348128928287255023190826578152283166924091751381187386898231571624963078782253625909731999244704514184951784909173433772214957599438123087108741373658626079624378206264173622088570966583914211759429944492975099130317971430247646571848970921971356744624814539310886054858136395485820071646069054697552213663705899648256012177780282556190487069340235655002029687066939066194528124774104961659117705152664821076445681858907874927431654173085574890103237180768461642572520032645932396533483377988886580403569938648081816413797111848146607489038071529980546506049759109101917904370030750677867183380517206295799077244308264915406144143595349570297458033171056092763439296789504460134739837792564632174707261781299335053192131105736246714672900342743955025744330277542864745330506739375106200848047649399537244277022422374542377286623227184907924252461424605367011059233864572630419773280722686041679462068459189493509168576395043403421727803247670664933736208575525268659505902710863277450091175318026744478493674853235038763933328940874034564910955943974519493085736026540813586292730000872130907206965407927344343805623271075543113194676822767383265868700817000687086764551219960350145357243504116032658707562333511816642182212160319990450896919303189418100762437306841797723603301467784602299475847086686509771832921945095947781951268452815922661196870963115998354973220765485591145189534980303792880186673268540852524148492556286540037851345785125984653577636858963374094580486522880206099348682148510632251058031916449700632437273013120054404252682991992702887212040131714492060833152021626427291020821809306346751658670948643470705685379112706342442216007117971773776481701262563964154641169464015027557166262231828049227954071634609682301209376965552679618596945353262958593365198587364766779804000402810245763671165600540396000882908334581175129934673608265300125443835394013838409480605879784786900023123021933664617708378812116453901312147892158622325600064122843122931858619829147141962397355226808106649024828396857378937043948407908014380192096766790756820320322217348327899540346561571016873198538154106401632241074905247964596634572664755939608794590542802005880320046442441610883730336585565541798066618353213648733736960465517689454919437104253595342222860611914648840862460472438278966067682529312922997573908028371814141602040736367207611685499732803036200447172614344951978810192292605341867461127852889789260910703596237091922218023101734943725177362199801811295181127474971569993344104296607377304858305613938666924283991404477923425214610695149730166611542969834670215953739031683738183826315646319965862306151298886645994640472073565949584479044726162532088460919271286379185904033000937148666938104380811510458739755621112480957931247052019053736581264784257535965316708600537667818762818523975220823440580335646616415299109984438161878537930198686190280544038145560634553977645236082330996137020071725647623867470999314815125754866793366840662841671766209169266821946684833700539303398831161476529531560898716460594832083585309246743172453567207228639923095465608690319622875988399517315802656555162001858381822185697877241168776722775137127568063928281493838944880137319896567172642709646180444358576880232848191309233703054666468292761933460464043563886855888332339531760386067765344260006884580973021089958840643645068068290744480568066912748753505337065228782826216041306136702954058999742091703090790408293023109142758458436544322167698819552444008511745388264890157492484475231656690406406983068275965900261655169150917828129144689239403519003894705672713760624315916352274535137658238797523488460130476644372724415244990267140041626037326135427812373337990180712209373354867349140324282686365217828238169135894186388462866150520421480255313960856365251393504422319931315097201761473577727720423411046979545713796597098334413037394226785236638468330333975891967830058943811350726486408123995669296786334913279210063878050367594761523250994796815185983606589982967387081065748905970313245589906211713734666867929185486336557076418916754736690822721661177205410718943813371355703004994783143672386365400200151360557257513944659066591474145133467790922089249457563726043278087674771993787592708159485128008496838856972351820786424091480879222555490324844462495796982215629842354536458840138861953796941422097058997936839008921791866787397432135150095649415361564856120392082571713322988846529737599353898096500890379899277828954576187364994433029601947423992390391508487691361370951082871643095625459109052375539492534953850915635233338571764440226136472808400754786771538199737096545255738404539696726815196135540962797641273475309577519324725274234996488208085389137520522458093757305964795414178439682262549530409580107094246789324556427892496666988868509770780272883570051424459501544200932125718135612749154504877213204536503977468423623773933576142424819201173129638063499131308329395562514236436397455020526671155371993015756965667403694010344611956460462286918795906565382113995616198558268270863357734586189548117048527217980382965112420975589991908037841168462168472003267670582680354231373863048085540174519838024260147233209051555141153955984389530538351208151896879748503487751289486736281855148121579976730251239911814103072346574406246440547745126002720137299526739832596958028693551445479539769075778413970448436837676877276723974110485806862150945573289900212167931794476223818199631359236009378815504762279141100248494906333699911901216929618413921683918115984825652186846932237762421789348753305671815282508699257414683261584990264265293603249373768855616699679501235578117611642575720797840011451586373669117877534090386422070702003475535406432266129859865003975676427738072251585385179122919541555271367038095807303272985247966908158008508083734168499691556121270250652226322583614398940980771909454237591599897455251687852189098610049201174443023951735224389777313378841748406546761513610868191454487405750197144873244529945658138188009296220171544752345286939984144826500812206911201383450204419958235316627413100686013962201218677836299749383099132118557600670329715954080582987298114413992468431586024479897837903294673163270067046669822800815959446615075818965963973402433818863864980967318852233850052792532228320860806039541971933850358342740617653471783620237505670649269035737535749036719070713493845923232050860920978461304301295720037284641668023387529322014020582107626812753796265603031174768318697423257903287611137194040831130711621136360381044097609230207374659251456452831939755788228714225931321617671154391607261554426504776462073190868157911895126424172575964136841970174469460211824569744211591180140984433523652861258062710818876154306877015106093979544939016782204970746216181731491364168325611932249237193962965547367365814968245533995480575384645078722976213585832505989803872821158359174708507737432826516088317083744138811709874255605966203944673434773991769770757488302668072954939960856363870463219820132668355076986505541448541405181301669437691888283611104118892777038785034431273120808690177130082584528078752341642350409466269784697037725036383917710808405098235904747750494370796620971709103772436588452421776694914764937013269974113493103243559993308918877636497982139203556081199670686894141023126267812814710026156874046955731065815974992071124553913048920848007487084307517288417006241630737555366550592788341003885009589216641365377739090889232688408853120432935567451797131291719098273067106275164576950252638733660469481368730522624064628116113417555752291643832979412039752912703868463642163874466925997932677691070691064005417015158347729299945790983427207060923106970968505438436197370707046454210159916558137844419451117257042820564044039520891668716695619085906149531426379964841020545586993319429919630979166524682619208312013562590543362735922484860516156116839177361273499460519199316788580807258827807278861181880632620682427089624402033687863447991576891389792925973754914537926196335803559610200101185101583881547493167649594991675638409067268179528527992375278745629488009521254526004279869947299880576967678632551316007629240568282102677917865819163878500017131907555527353779685250157894283371370568453647654870641006401377308758866209992336480589275147044492692653830442819897588220724610159264687292035058514369285175905817633701099792100170445056491384847615341322180256827170481941862604320817896479088121685119099532436712843526872109740469868849845032886805582217951770539270927400729889767514729146110202154908996691937496146491803951555968734545324403916597162859293178865581185965696361745003000893938188655923971874146052252383374252404191279240598819082827453507324434156895894767899811268864444680373827536998249446274358563692097873449726391799653206175416895547452242315324328139461898638386753775046120117513657417159787141516324016610043057492531302812450792831492701741119800968936061239718093130679791726530655882130340665013443966484366150112842705227217634196159723165163526414941338659390507470993527410321090844042029001210735115213394545832442293100119331069546255220594030239636862381005932900615125169005661591095516927279327427677352176490777213690243187521975759895118362166625531800001298177240730466518999790411199627760907538021921751084343014903132688775827257274192610476034000784062500945884603015322116318090169878952340139117077241490304890294415591890144755608096535134953288381189561398567152019784890774569497668746042326975429369286796065831993772399785383476024730182189581478105082881921462361712710269798297723373370829544840139822791868904786008584899993913215325570812655593439802106913771225679529089743097967565970800713660478480122098570217096451127321762914876366674375174221252392714239140010997692504848884259916407282865738780322671100137071660233378248251868572889303996748070303675648041537411930722485168064037255454814896896634523391671621748033813283942322268157047688845603088084799744175963898553039397377640673614239527580495682367461050521885435388106960859498799565434852681536010275171616860193184149474967072958952423655204060468553684091020045110056300142611148721661072936211334544396616128416638299076525974335246972446620483349789038258411386754642472471412704901165412990221756841163895909176859067550114422029354904907181041866060740536016692760381067311114451535502069540447796482642517472972572992895923230007053698779594861112777634790978399820434182460811911582175528533744510214287285297036182926938307765602098741674414292488794097753962509584022969819545402979213443654861454446503849272634836274257839816806926062992818542019644436955502627217146097413258552937677598363609029804371754057976710349016036918534446583127396787868738269209330870938965385540706190427144398741117886115353801164914499114732412128996613104831195208784328977720551412814698323023709954238392514638088892285787525977683664110016905942823889107348830185951076463575794124636594535100172275978498472790519039488701208551681259631267753574699926590082436464853953793104234758244199927693148754658013118639169738122789786232076798618749980389695706063094268436264922068658557167179829739918948638055596819530098047440907658931534063828147909045219092843466934871059460057150112931452379077301852271512265905030485872470868970898209932196319558033711169734523177679484401892017726379272059927979642717151881584594635692092868899432670817673889569010586068976461678943924766647894434296900290614707865891040924648311784919891416099587355880914993906263326465286198601987505481050335133598721585609979830034063251683995963904641392537139413430481644309010696213769865571992517800871629941149384179193851159501633431973340065884391861786017653321513200860312481092525985147734564311981599965520375672115299680593233057367575106741580069057337313448460647735030539785253974441005507539191299102272997513296409077265308044765308071276456300600590532941711476110681933120709561239374779397611709146738186950862496505291902355560560061843785207966836045547947528056750489251984175166428185342768365065737489429397464811543835687292003451350419151144937552075726390245746438030013351893772839441352782204745496512124327776887550075696806044707895550354311177185677526974827680132588561065688790896244792584535875849315813875270973103181710636601385792133333935637707237930709577004333379563407782714768941136752816736455424428985766401790894233754985931384927736655583979458112664921827678682810015722802207931976454316474936078863486013714817105445794393045679173462479425845114702652627437783321458570137937635326748099941256558631705018184609094573609722244657375466970174442084446164456974461403704308460680982989971383675773443162769516351959448796623677051025352757335117687401487376878238015686685219791006527440751281788789873726188752071305737641401113743757418361258381102398790015993531625695529135958887537156745327371297756298932323025092819911379441646439748919633466545794463141736356794755342770399137235485313734103208123611778733535246300726898963164503525530316061852606258101785298970904371135856383561802491287607170831513951150527659193477768320591344569568531544524228380660343912851091383422201181014988817138364556712643910577674097543159983814401075720241056928971688175724908083448560092497765140752859614908908678539625755044867905955321142178993649759106938353104352951117942151016988431825052740182802650816409133944559025607081161719783204865703492799457934097524494994853526087155740626915466363479586698341684251990861897550014844993338154406232793675189000319417282434306156643794090464115873850833576546909751272139314129164630474427739482757662804085640804398499381182759386511799812006012333307177368230295495394572804930835439792008552858206549088505637686188859902751699946796897077038466852046093790388062472661447082578762174395916194477869329552626830527446198446044208582777134091119511076909931989738501756942473305785800052564117058216604235758477129680937964591706749617365709703408851458526997307360919776355279754879018721281230537581174597745849779627397131086424049853397137094418750228291392200198104165588589201788398083399257370040604799037859824303308120531919501408245576857158802537296082202748247623720229220853233631102267246202928039878176567129986147442968991162227595491558350202318618494108858652881292262042126238942535047656037331497266320788794359104054667844164224011341979039636139179694023510109162827968915938578114639005133167108330062395756491477755146930648744716150259608362249373253028556830598275865045483826479698027967699038708983355600280224717274854981336919731473176572820424659648068022727895973207975431704707200836162931302486276592503684703316414676251816137281319808147719166334697261039848099463236814507723485333138150399970316715702074068702667825444989446827938368763136150997413322357778547534896032771323519192660780525972858167322115396078896149882309576412905504143751981814384604329793357743284579391378057725389552758408003159754563367105506633894284414380782498020120038679340761167029562513037487831019871201915113405028842679693047752364611638681665195876177271029620961307297316991031786047081349341064838830559803333166886233373760301126593229331785368071348063359664617283624619118397707876452324791533852395963492277341111286176601865864130239709740945992233866849627976810285932526518147837334176635339420727390314327728186148099435328430662653357795428881522359675039537472751675233174779453937820635947522246749664731537186773409036745050564337204673122435112071889201107644228214585097393220271156799517681215298272027082948237573607069062023467732888426821203434420001068758701802063729399298279604989923944598991406195678558378860532361122431258890792062040960269138993611221029704288269691842502348663140013381679811734860203586028534495228818596427584043075314508863941668317276262056473846327561752937138377371347102060406570089574655569590611356755195390909777294532027291036491602332158407067505686143468805748367906184431024212415258999879892454170988048303708742811812596372597416923729266461625082476761679909216242437948159010077853665224762222196131843311728374314990026171826574575926855580910726779661151839219966778324203787243672350421087784908769011424376179947824843157192041520063589189635197993075950945216992857896848905008400227185411513360134568777602870421179281104885670140718459482871422455751935240789165130568031562804854321341015846906545835236157119013841463255719167662415673241287062511824694833843153428407547012353936037699488502332468476147017037834721570595680622639507007607322150410677131447663005820150284060682704408522775587650595366336616817241413167203366207793733026742513862735038242454656007487517038259958792113884031290218237923335226005277939401878384243928241368703564911952299424647679864221174897497754223751071279882660090908439429110561697619033685551979603749581357736336923048109020705086933207685557106155924577909433168233537942330544444790890680297674279720801636587832626542848528686984335177862755857646046813608883323256151665512174576055957551598869357495071724733295377192125427881796720482376010658428301613312762002262996204842678497936794543212791547369660882729729847313262743717838269073153002579002202874367240785775510926134364215658111302445086466080477460035052425857735826845279479673911068038385067706637286443332062382107459287314482706794776401693823294253883583348622917272192823431117882179523362359482006759603038368346205275941377424716555112306234740729194892716762084574501970473127129487924676033728948517486776033227365394900831862161270367725027524025493833811823515095379246031885151290577541509815242056838400817522130487623797019667487402922801201621116916049926001783014824025866544365360708963726778921363072811819074352480839493895142126827370248817271989562130545988445515738953487910977450477764653276765521202123779671914570666929635748088399539118853347163222353598304278348185828507565686945074940075318613832221034627480184035943977684596101871614795035817605617024839735791454175115230925283981867838180723417951515454049676360024811728968429477260415579815768767202816778539575811437989631639816916549601223742354518541921255037876180301412860707170245139180630188864472356318751840490376033979690377289132759157655493558947755787024628929555150727465720765950711360564898768024101470218687200517037845012315358897308606142066536363711964090671620315096382152781146492128765158472899206648981822191001048048933207198753446186491106799419787267890032273583503520985860646636284485848428015234807203116002424129288143430065055350282008544035173053427245630822106566645041351561224867043235017678695983903981632150455627880234690599728224729700446456267926124808085338564652256371583090323041768257530411066609869189940511923652727861229472737438881775993914450610242538960389706572985604388325478166108050312776999852139043700782433605028728130663877885531943416767896448258361118845665483946691370353231797224017578071159245318754495775523004156134139725269552752085556219819250026650935377716371748400480986750488038138416356697602902990264322351877883054059770590198453345554673888536428781817083029630077499677889278025648586164453329852471790618495602959699324368213726699731486965450560181259097378533308409280836675840016533907866909578709649017110866121642844753664692126462261618387775814224514752044698170923466879220901615829494666497836064755045714272677752052061675232990252626386658109392662077172783863243187448174848150693165590549466825309658505931078534048119496968882311138659852377406614747818072413560700728626705190922673357251545899281284123056705069597287941691673147953750799554125377990824775842273812982114766806873971366489130331435304104248255329316679859929782963311364165775386983171510299302808803122510523436786506499086787937376862242144541151173951009236949208971962817763792665451657212558430908589585749211490610217673078337868553517980734257028688371900583258669147962366848732585536499010118892467472462438640183917348638408681741830969628121299392300595950000962481108617560066536236190279952162379581129229400364224343662204526451547656675772439128516865270791926700236836110126885703270137243925039246133424549001943906807206129098692207941933342318002409227637437787331598833784788388619488875890332087179898915300314866700101020111065825602854196120526037235657326868640380367537781555037487145962930793356598316397710840255335327961914254006089402477948997700243787191410858666318279700594776294302747954996403700331687758438649972961517759070417731135602011909033813506457603827632593535328184611473123484986182597864595316952864202642051180330191980555346320466269763666796063088470061672388379202267405430291493828049686541507020509351201573863432192560648246045355144924395424690103337971435364654753655576919688843828170202142855342937555455345781436637422464787612708454708829406772836488522633051954327636281494180621255771742586756056551432812261340448203707297233438459108659353447922689720302505421731444092980196381249847976528820482606663433313231565364385510386818814422560090531021846804610902646897652097267580840716143286514756178641846443874612082407092010666702098315567131296457149349823697575375171662390285728823311507442330391300500159648574818649308901628440320514525703092550019611298241684160918762288434896629061888410115960118732169662136900625745128895111639433180152679468125970901381735767484727077860531393809277209492286267279440940254417831803746758741632583162239920948808906881464020908175903051014264442693699283095281293361545187604558471383906732335362118691963454958693860221275784393348757539723176664848764071923615021257113310010774185638110509819691268543000376158121341868839298493479071005228679659276956876949268688472850472202393335519068034604721017013910076815122395603297947384750659885042145047291310271058966702597639528474406749034286649466690777850045051184350579366659400208216552906546430582020444751946649578454211133222117389164156262928373574449035524146481258709981403987682978458058685568685200896470661895440854867242913208751148490071192913717982716081743688609757790294838589193936120334041752952109393116871525136384742828540690508825904858813616621898312731825557884028940708558432484671327687820282841137502344754912842259400940486061098080151842404923815257426040240926215603783702313747004697596038224225996573771656243993988484351369292565950183964910867766618045541011645572703198098940718520444947099057707180037888622660081524960275462029770820259906133590682439839179323787704756592685229228793347863789227235054566306444354413367560762385984039013076943122371963291098000637385914525781248773905220533700497149703110352995220986095379280669918520088168611032336640710608877095233672516369456823563919587142762213017482103088155156762875310984404469332727690963447071841505865426567029816731648599816754642800905131158429320894555998858312017180998091237202839384508135998913752592189448348887686808908504208374573290722489034953200348582052309678160595245760253634221917721235652622927568480866720669641104128694464260256546582058983620763356345448516687350190907207975414834489383668194318458421740960536644821484800723190343431792617111647270843838469474672043401488557186709988469438172805825655400252765992326160452788224015696842864739428935859941552630090262354700229774538190587316923955385415256379644819043794744220844868983465454370119226759161487466531697926872632264841831412811626337387488620184527453230444506687623224827791593771931253664337951530331401782502009139413179233384989904274332809706752886164109388712730496566789171950230833815747980437158229933808626821632119630625294915932727202946883242810098292472177364718403944641032842797835115655557216644779303737077804362505011954807617707492344772633300712083162239435690600000322149872633208889410189172607236769808946986372881274353755410235056862820684233949941692352656621635970716126484988125974626780297756444400076100568334611300059773190940342859704905091282939484355122784602453998062342836127877816972779688555472546975559973411878632745928084012256310948243178898394003208538182891261864906894632883098326197150329835766595075172979650615386839412364325740273210944217833087269852983202824104483150774822612168540981962289423122066571678618121436626589521966595276409069788582418142461010331770611695480702920278530363921780402495660529633939980908662575124336801600874664543116455861411697869974324807974256803953232660526285307490199257209478167395128878645632194832268360514073782390165178279965830929548617471211383140661191445477658125491803720628739620986119673996778479354329746535780375942187658162633047730730132286978705902250807299246222890360296495648470762335205398066864532888502388641710659148290601406932321085441259096259507000222347935553169149938593572590086889954351554840094065895730095071725837562965784081201590264357430033447652766945702314155334816881068267671260575308330622190614901477863273535434436518959323605875340530403458236296507883117519353626177318066629212651409204552819619770236260734877746712933659703827267035016423503003579442253230690023210782092799683950796721608911429985485630509720898631442310630534901025069942532147089889653938539032211328150241379369446968367905677649089909455563084373181868187537006286348528789238030216442965734070630356602994571035820074784463579132477996611290577337871417635361454164948414969556966643721709339023897705551278802930477703457530596109971507139968001279909399851610980453996134843770515397439219013527269205132794066403375864935254496309193796957319090594793394967786210956152849791740582647148944053789784913927280742797730183314520715296834840523097782944997954906368730158919664924891484889912309078152150399173979716934621477048639242976727859443586240012873342231647746138959610430009108762780633039306937564589030499245759314233751220644374102164308154736593050239572253707246930028086392921860505272397524315042390082612728852727471046232622808086911945835344063806375142175526030992353507971790966711591817162375488104672825129192373449217042527589146433274632489097144129772595902960166279276622984891767850327199719311584877654046851764080370919611701976143374751515610314124601653884406660859584754167604014911080498157014135410291147877262572367291308707908786411569808381808691951696519515576259141251977110595090515476470994289849142264699468070523932045179007421090154840697545645908910486698338197545739100652449642324573883388185337469118458571799399788793838432639819456241003058179303248915606639504251191104585602234107610925024559643044205752466647970207972120110081524600712100638491081699750027273332096113082086420011220965699592508979763403561083989354760687254346291667206187775304648822047347492438272009100636409658413419272411957747438307927623463326391780023126609208766135273849656203461545988090666116739356019807434886910804322263866788424983487482381813174176724402772137063566080954627498919039675412200985704016374899867047330386484271855409313184129122638835282138864491972231543216501946296668783058618871080586790182305446293833501059421850962933422968547404282712808351942999346065473006291656047633427867597762573292539860813941744349519304060073556910818915285458844604514607687579545445020329448621153313504792510524738000098875980393531498248064746791556851464545101479878227800565547066007032207116880359419102430857472135895848449439016443400826378026335108793169465446053524930752726937080498655340629010575668128722781639308316223850732068646544706292323617518443500190119309695618628808703936643696627592624121626267821222762940645655772877879681914115044894979617991494985744604116031365491377326700167559790369581802161507565560255940654216085476772197044106872837518913960774360464124465864555213161975934803090506778792599941159989914738226615360518049844887538591619277148947512344391797759372125869238304095143355905667443788056051131188838151709149258772580046068108807956772304982899751478251664373595686288200541479179995482182920642615236819724026236930126854756029217761156149191790690585140533050782290151182183260059412633716297470265460601875328828375071623314939506902753948605743794660761364976279526363893773476611738207807078069036049354564360820512202837494323616002258212363400313331179758935897256880105912716190510533180693139369475032450621955722120343009562987257284142610757737457760477998135486063933276349303119629924736214967377399831943009614081092188758290362836431818752301419017612611929208768639633996611248277308110363708138517859979818145142014190063481448127096628844708729394787505007469717077825277812641021848097507597821640047972710623051342275756421372666051578873038077095095919927881040980313025499952270612674155223268770266890221786403009380855152821635024068912964640917976274774974341733026433486345992809563466517517591819063697079680369508946042682569034670420704128407031863838385700878058487330593484018782718704452841111999478281261461903461948336139917146280519004403883584819310803605475884593917167086453430875582136438740715739207149242709248524761168125476629183477106864918594621800394586461338420609191623932070075647144741851531671449835113955131372171473032639357950464616922388165479703510776676978773724316014630063030073822630159036909337760894184028462164434379771592238595327541555019220370974956993862773043541112269738059427134107164047198447887108534196696446264240257428057184698641287905914641754780871997858538726235292666291882933401566567905500042889261251618449995674300310098010762405684161978944984201533989292768618097039472881096749618269382183072634160505965145533744754982150477111044504021567644129942377042697002117741674001225438128791782186901622350302661734511373879843519329387928058862803956492024275303013283485162669499765158806891936604223131559604329282150361916819186663016922423178566440279494504893461642465123046518353464901153438248384530256396922152128067344497490945819847948352524055203525877586848176605187805756353139016463930707506580785063720387000301123510940981985874109969903741971743901934560891619621275881502436865048921023002099063712710032776229235186540518232550809757356957046220592517502160994090260017570356302231396159547755818868954363681033901049568170191391154421386988358474711923234389641945667265847320626356791121885126346180093681754550306864469020107931564756870700667618293530825790410760188560026375933494572515493599259245513688431607250510358271093303724368736584032080559675056308002021588902801458336925186588406567591896189862436209051611224842062570748880699549155037878150751078424551804740085637386829353633229880929306914071829107663234370974002992237067324151234702559126781173254135800750132762074540357655719740925474825579346047694419165621075647894635813641756506610356883574785191625648511156411782313886065069622885505014773102059603853057884449071644075401346430631304748970166176955013193190101638853131091631039673038875711432140845090246423285277309081880999728963488284240565087769651579318389840579454829308204665798953243308451528396277437083791116410332700617874674277870153423905846413206745424600954020300967013380586328799063186104858819962707261262215940496568545759807071438683426202220805965068784031131226732577650942211153667305307726387051419734989758308589411752654073755387358628383962203857678045015840453670362843417925341785062993454676512471583038206634926995411366773034777064958465621709252871788080480273972363739941334992853606519969849207895260021333190925842783566486820379405011070331192105324281760919379860516728538648858874630980534843767701770501913955712425004511255012271269322728560246784635541419338029882212023961483654267296276537432775355910469647777576769177488154355127607812878195490262539005469813082848022051341526414886223007918119401664263160484675723356651355475196328193869601522936745503660086724936879934002356502723613515380526376583013086857722049415347110323645529093127867172236784261685974597552054034654678809693740912646876400149035969067292160436275631157352303141168151932181793778575819602883249560188570734394233668251768628126315073787029524225245194246787216475257388673174970399702435527821340311645374290279454284548319248376903148070954673578147587382700355631966918431453312857585815537255949545368061599356892090955572070433298610845900784441620368791138321718719854407093245023416826233655032677483489939544742545550545624937611041507798845408077597365129941485785203026306474770409223650909461685173352999961628509316234236162508162272901473600365563872951183397045529862208054821264927384349947194749713057408968270785296366421622740711476660561201399096289026210520584804119407346651858888566788887496070703162219224974858165382815826546093084801758522663161684607829981049780950986858228055982116227194216090976273846305310154309098572841427897375226270924133922676721783833439741203860723962923883409816614271695804136483367540326208683165696488361364011312216787862686379945645437157065794914888636588156366629151462710497468603982923061508558118220520140183962231447345273618332510430899461383671146496647183376687459988935594494426752901909516702848680548046444321240085062188287530325176114709764039001105919703042954778340592287541046878468563188956103345180709846568998636226081464046227926988803444782243190148488387260783887154479904826776312126948708900545844842794316199313915368551329893451522729258266290109794584786431496812947244707376460996814245154497168686697321555740302108731024030589875398694544659264199430465693493887448924490014953759835201673065339691655968664556750428815924338106432664107396919584094795193891344704361820795086230920584506435965303679788900462182069499559192999796611716023900024473025231317363816418225631314406099113939171912057178870160954464444907923071284016274006236262690637095226690162831059955791875730625606410596458568884698774987997254372601803827171194424116443233973787894572934527286063800457605701877763058025180656367833834247146955019821991007270235285335916352146559893355666057415123213986188367555744071067817064291122599052206983017232223265236902678484851645206021913411162830649178649123407361103725992136624989190512960399548422634829313482887434232285848553736015753699966088126391599504137251042862029233459453424975694929725562135957085854644120946677409348884099183988233853375728649034248507870468377055105376982667616204942609667929211094464420917946819373211646009615809309456453824990744973172299732249756789368637486520132491511730769166960402355765566575677084739745632082385967204424482797042590729595037037686776884701541992464835471008187664998836806548848420435429649944827732660584100919676140807674059568119850906267298105239751671730406194145955175831865361217066168165822834578983217530356453690927769320907306314693850281116476837033070112537688993594998137685642300058610600086955792077003335109036540472132901865491536430387564591822728690947039007905674968040815996300697314356370586929099491649660217709172958467191112588229921168837508107347809914892041512561377309936598066602163277926193585862445151839958924925404175908146573992446515980587457697161828397571014840980464947604339009852207878970225082141972188770818979842482363811555757972436635891719926281998772574344069267746014763781107779453422574552332032731685962750160709021879678701575003432105897688456290499674349570159066030599613993869946695647342084648552504131808072724583018294061256232800035653245905351268716485023543878540018127478995896720913281110354992998267674814622090532515042755532883928672987555781022141794173983292575815737963528423724404200443593608149416875538327281638451154737602719445516699269284539505871972385717336777836561402772234122099400394713604619457071436337884322873444206790636847385291121607332929290151080479306553102541614561121729542589717735469403187715827545759053470376922757234665751793524582995031618875633541596531109350903049747120712989834923416083142228697645091315066802967814923439565541099511224972136605353456053474016789040820136821716014501445749946732443962429419222652393218646465393362726635486857666665583936395439725946228426750447798463101114478614112333066436555495689501641362775019494035035316633563228962606100605393972978584366862379238756985850319699171656232298419483209585116358201115591832764953446807059061363898150219944654396349370689785898302395926184666520202525248206572625656529083584840863876076632879829635280125738935029769253086863025633704976371616026447202317768007229053736275829413371000001037106761488873078251129896627704033030016544174343011445051336108598167187749165437833654995647887998247824823740282720255227768586847879195596475102010777873249451409713458638175444534783996726479309002624692397164543927299636812386156175012820865666796348876515815578352830261695572703633985169373431613748648348881676765596758137276486063747882193572639996473150930053901140155844129618023969171073385277322941556118244663775227276686494800570113895797650623594563301559814151772615626766356947551325062112951069859063645652387880458385841837741798206128247946677964199474894774207284333331460927975109503558675831395128389213593329841583806710247803651426748681613036704743685696465654292203344986478207327463130219176028263564409724437249068670557082677671527923761987431817568639891908254667760375703915695966061251686008924137536570637262586471428678558875139480517277103889594447643135462548609185052206986657200405947191812557584875384574773801469497540547979656011192065205126146615570283722399620259873617719020201151588706795471415630312507926533097268809525822576696394152876821248787111850779928496607303010407821068426535163629996539344092675714701647930555686157001414143571939852049566568193968931949441937827882247467153628810749812321579417521188998211340100414337089898710366256762065618216881609200398054767381630636903470495709936753862453549244054130990940034759743271891495273630735051856745386934005959397233920658589927877338307377441025872394785038258486800802744556941839711606105943734923587866577785452574014782829865012233546166365421242503064113079670536653810763051791941204550305470776949583407587492199131074864581616778210601910425014570367821218768790391715650598624646666165388149238179012232825536762381403693594091174790923813307527107216737211779053159634301168700538083782948059267971285979293950731395351781960672401403702269422952550751494214781948346342424614344048605863568781161800485223412265096232335248762032128193449250967803176036222958191593430199572173891550257977758878593751248524330720075655614344749875645214712271254004119530641836241488634857625107984644798659150255529234615970309383826848636614636934309845725671368220922118478869104983633450865064146009815136507321688972896632166849428909965776611868467153360368393335221131921639860216273292707873270910848090775614781843895527297481345312634325429432616175150529292691412900842009609282231191989026832845219328717592928267031728580849454719749157666434227790687638997309090898324084682687151027308635267991116530674227463943541768113833070127045992551720856805338689238045426423616179514778363487785058445622891356207900478663033696091171842041564308872778890971084479780543409201365987935754348304764272234531889786711401743764742387537938077370254062193120907523996761243314433854973879705353265615636285106943083151772526739919674665330190506725804049575523566228703334837816503045716812788044736390188526065405928561336975704130970512376072208421287694539033047965751308083347624348582151021654082798949784958902036897831517290508661099418210866753627232960720123112525995047097372420558476309370659411178923064000816009518915566481361202967554918031514355266626370958882173867493523041991606725401361559608350324188636011074620814514115208312206157157199933572904047428978063679273241868924831190315230885171638471568626157195270618900712628564730724957940796907569547753738439752471159795432062912314536226594350049288324626398351158436638873286883721647136722159921920274472697828371362922162355646949911432152090538842738752964103146218681904941093035542037708228813117156606661847751340628424181292531958215238622403474661968363386360788893943321924126553030742264722000637128747045402624174110856936987826288431742889539592762150230411371710927806867876036981791876905492151996534300932271797494095687835123133993817915362747536988006279551334957844637059729715205868941375379128333198276073699022437312699220603738337873091281751825559838392047895383003875383746416037152489588119564782282745111340033021380126164185015652096257380874569221267265779645009989917859513583040432867950603694664786258039097775543416667106875863841478796538662306102848505582350663995489340574043620928246955755997651263462251910791131953855539573442097534354071904294543708924595877877007509391646944120831339842841104306556262818808519894504052201828268158967986211652089713495328927355767411075538377693495332303230775887639013854517153648209349080150412933908675882998695967179426951483338591249286381842727451309733485431286454921691104219775687149274687084554582057385480859244111576549995176006404941284925196116279356310883869790942028134050517694863290708833551394431519344891803578655066946034629435773361532253249382632513454117403684635470265133157327627129244349038422182601602797545965492516804457145535445940680363123696430046474494707311313968646688215380324523703379353654446941768489085649488283762517426209178284515590113110427986408808850110086024544385142176928951427304441479676498209409204013012166474747481174570537130690067635965895387360713917762152392868310442222605422959880844268922581652969810704586425287437379690568112281326892266129457926749854928383658079247142274608318434304871019735766183458455729414999816612844015094467719690967221218102515003938771770443656537809785863732191970535479092329547160704456531739446465350703265623772070924227122106416237393940308040421833656855103242423799847615304963297984053676328533704087328529753297017596113426491106322744872602913631371516911323258156806149909653585423287515827995204680271029324524407306666830094419535460150391039452489663979865030165295179523385289650189045950618905184790822585457434012440413280751276939346448011203488890175938934145153448818819239077751470468940303028208182142375957243889139902034817644514826770893061242599362000293274647146042434107436838061874160713011968919105725427344503154840672110021247656823067292781016383506479843163331709774628631275736427002750175667367701796815878741221389183673374516820779353280722395375278243308499344560040289877604498447370290050753482630125072638853579475023744860855615513930061722710563682911605732772359094802739339215961016111432769203200551873362202217933997172188799645961068381005262230589654538440099627765703050693562888861693933135898122977663090570218349124652111449102029005334950798660101258096463260639887729981597135258375478197006701323452575970628647162994600249999306653891968314828824964704191939458848984479787871213266186246099895141192036531368105560338169535954324260706458378079751915130001211510568789526245326360375671262720429775853806671138396449934187880117609221787952162518389254428108444047757719798793630076970936102772759129093105693803658418020290955016157103364784465149228815708821566599593577820249965429709108602795598602845376062718513474155184661013890096148368684246419850453879587203216736110628223494852015761612613181951435894559750168436307678022205331788311318848253057863618759517847374906562373203240090706131097946832843827034615131363933078608189478106683067078324006275739465407393033571963343739262705283745230270178669385241718013933918472001364066379892481742255809524020279146672851400945551643984521288647231726387492745264021367490146150495064893298949053503411649346412975950592573284035822965657321754502863357200016030297624375214168333077119139093610431452879987810827519525551984657628557416396467709867428978115860608956710841490838564469619472000764697379304266611526726994753761874665651292415377610547764342540509283430717707326601703935427878231502451634829707833897085404657398759065351196777266632283038849092867993442311958631775803338587709077940405139637318813618625449714587924240833780331352543103075351583396336821982971298937188202108717804128410763555390263288911197390198281713177177093046060092099847566671692952170748044670628291034010391802641991547551661642562046187323409826184588251866945011441734452137409393944416064605138074484962341695391605661694049340806037981273459017131275550549574303321210257755669363442097729490377960213318598334878994118896369830947097300392813532665604849827486515001037975084532868602656563956757321157126162784241433644040793418769417399815326290537211867513034686908279101383807285063603655737117698463062035522535931224908861254808826607725929100467700577524956418408186916252045685284178584939735068300427750998114340640736756524331723723252110141267241183930312920881114113986670437496739444563301758588534369402013912236937544138902683398011704884801488825173379899066313191902664844278352472894776309161069089298691593877790572791864464167555115169993867030583090158543125882921110111822076963503581104798267273868485283186123161164591823704495044431487973377887375605334862186849896671989101353340145093809657950749872443218254323271073189490032244041645202595520771139739777214198391956521642898044703558398055979249749562815584307121067992072099815391401290087159406787547715564730790250468874089678424620244742177093007843074609968981139356326031365647433101338015482129033466070069230892798883111445395886451811167592868714724748317707071272161550314801898531457682356105718271370372288417310810286935528442158094921835221505765322796663663907682503865598522362915626189301447415772963970897516590794860579650624259699937341384177209226392439569074714218823687566825517355355160209874224805553314638054526011330261065957238780824949149980256568087152573884982232331202781343808839614050491507090848819046325802946176140709388640408944151797878761053132858159299488519569771696067169292370862878157017549811552065490752436253843001134827901858787546209201834542742093704671805951661995552118641075418927813925252584737208058019480108684126792114693427553203404659015042571581485502110026052046330211163491810606320108150870365574666747329446687215033403405766668612769896619453378938381990063412750021778407790862371439335853507976577296385217827557690515683008359235955223491435587857099423284911026072796055391471280096098459962936965026461567865645995448726555460999396893200964823038295944204295381107155835633514854471462570493551768175464666010827763652341592598377231143105797395129804982674533849631364025391957204219603937122102623582899029045663449713079920638683625497831804531125463073624751854970567961783782790893067981224523862227851794306242886606098410154067033061576884262485200170445243298565602300039299111231304712495204715360878840811167660572649954652105075402155571302627795705041314582079719836615822140067086387694020571918757695773820460213658837698837650235863426746919610443878685958539524279446889871618130835888697685497948140832475011868729457701291091712821735173943388759514798468359769686443880052672431480294737577997179329793490957800958891822184840720634035558219114031579470405466538509191400092934369141412073588727320768817612530576855912162829255388199108533238159429805872578555189330207061654690958184297080835003444046042374683255660932546441863592106590802100085485321881737071978544677270973604983618469761063348615526267768305342804508290373546220428471990402968549263150839511308407807696984288809757839174395905983800164463903170531824261364139060807376330325007378244135628620366990755495705847990109693298181988392403324072771866509921781331281917772288796726203023206840018167399473013309580520742255199084734236723748727951483877909569026266291857931878744640139563644321023079993302642974958159303397121629977724131796975519667083088289246839432723208307204010837808313018898578504305721272281359917074897074531947470983932563778190356865995705637385331936240580802852360155763894032289651348846369257319698758086357536688183026358956418897284869556770273200636765147551472462408574422674843082869854015018151707826280699069547204722315624550294372058279224269926053516893641484290034997553942098720158844143385114914470798514952743481614014044164923143674326875794981989898539312971594545311875003161643927280818825680514103204983163240601229774058595251732919059462689082637385469446993431601767577576259162173816516945876604529660528594100875980226423263458601480893290482487889227133718824737301709558546218334458015005203700997256327662576862442439059357635638274897059238463732435050985589457245726346680198146970556202618357852979282231268713681126697527105590717683726128063615123835381053562203465318857363239178984447719881524375236281300192739317972281700688796867323586889497945597560402068681102876537961384784256439477987174942433353193524907031034290021515678096040153635910665086794965531553376439676646590399103286894568018627540083859140143649281737372609826223483186868376055319756268396618232171703222933629202286901009251338907173296260142010128913235489031295497190706317356760533797037832247194349118960835826046118924815830115919071350114789460935464816488551084133136360338301168323032685877031028905427538355960105517149999213940463769447208880497281656176368827570444999278276667481169360294738210177002217062383216422427339241518008221849634593282885111643141006775274990353328513136178063172129320525955980420800169159888806805656771042490075597820789304270887019653379651407819307690608027370820972497735495264033793886573953199970363848768836255249226662326736083797078075711373305970254083713351787341922869271553983981195380869686553137739960403451242045502113533825117446583958350732926424185320141645175054909615072110294860267573229948617514197498641680986525090379079674004474832408668242998251395802831665906894324463593894635483862957389186485142714120583285390551524140599730910129862298968391464243089357719423805420314485472187072128628690678956821158227244541465654354015206911055859819648272132620467754271170690231843775202449223295875244413798131059128454035714506959960850662971321777285185629120445988954573772972535364276500403418436083027000425848831871350384449735565987450952559754227230581632625502755460396791700215173828200589504890019483538858699590591549297165592781046441641945128394675978410437885601605247867842911409596567026923046765634504846435705933154327415660156196309571562085421487936327618117852443598279527115421730632475558914612734201905349597936562595045484476629829280809316721510620975151436892301383205280178858562936448750718948959904604595928881890440196832436660801381730091311981185748752307253423296729566570070550960646671624744967693866920494102237479640076536803045812555265319944496383290929067775185595282925878988047236396497339219649381451554536979180814763043543262263283434631659961741663331139122657382982703332737622068522610512139587614424739906002660415600869314058272142107879853207137354201423852715645559697093063286320421097511542271864874503660533520941654065106442309771638034169437749850545612576708530837543871203378861201237541950014247113569308783106659762424134493520416176427114988912290425548915797445612300850316504489286886686374690675007233051186460049713633394917364018777231843190781644504723114008283492230608766518923165219480822495192740609982577133920229248782350989078668522722785878319605421974693911678947295625755907736522540274411577026110000176148455711275804211461854619117960575234199770902457562394671800598900978329163459523235623024943131545663962596596532091580495192347377856463048592660640901281277467424327284800505452999042099735522444122677498654646579559371171812008507402377966574751876080496420343034889152434295060506165308642542235061708671041154031329036501123551075100651848649361635393060567749659946021227163102460757873761351393927745125920001291423353019499487321980997242479208774252926767332963083530707669297649746589898098558759783443143522696668997866678993046535415629995817622441784884727780103911822299984717317054116794112602573006112434230400504365217357195678186811522320132512420308220261368503715347730390327571073037317802529531288051573047618575934519700285581441431326155426622357783818268977183589775333965704476776795116698979731973987490993561402941150811762164242184308291591216255382781227874180093980087883829156872662064265840930547166653780748902424331402518623639347574338522858862898368216171158807534656196923646182713832129985332213745216740764894776517892374126360503811744462818062269884397099632542481696793725185154546649207791698646447969063349025766124652656451513371295202692071810898083741728464424212890594682323679482079442221433364223568371245770074814946634425142874759742138418776476277326060780948067812625280359013147684135412568577362991389751643267371147686649659172938756276009205749936634909513537390226756716442376061316688573480521471393653135543672610377811646795097732433671882380305394059859282222535199635357175061011850118097515506043071211820607845824754368975812904819592284843225354061898033687270182495519948347534727983639019167167948113405695565386477784110628386211880074107483925231544503017506222732497302737439536475534269966143907863904880656938565169791088420943339438597046201861781264629281576908203428300840181076580580633282262637096731378834238663261428984478299566978656474531518286578862310731346195959069262431542350782789368002368004346286016118128717129058488582506198045080138795575615949300480472320472205503674245335144715973313259908455487399889747176636160533574550699390678469520830266094372716556193291868362900027296401035381314618763181142882394074295480556234299124371852203954228853627916889570166132555785959086676215548132223904548822806529996095013117599939601464458875844985226798895433059476005122569695278491901667716082020159607198585716127568144476988680534280325309442954819471070743434938569803562434912311426496592487178457103608407631230205203644934810438410349212202391020517114093873137370773579147114705623207568560027024986419117343375194693728243289611781457742528918350848668854659530396600777961714155396516784640457905948266640736011941919373454518333895353291410546163304141953723711842303503249439041926312587690381768708170844537323440748415442866865449897159507062917712211816994684267174347021241005381442596226831222961495743490281419859005988800399827199651424169049768140786755485994521523251920029188361478766492357630822876554080731508534381419389335500202552998172111241001384035290822884144778766627682773440829507927756043553990134159368895900901752882686016336715043140170306831207591628271015718809547070566037340860372699815045313087066293307548359114358618259171804555629090042818996254461321659735137136985869478469179999005395344738839795912840161688007660726387091289417935555075953308548484669739202143214904990857762767443247333207003211482221371692061713783041964546214307289069292976256377984280033716630604924187763595885375403508257750934543137495842724797336837443494015607579059294283570664187415038849124440459406373048367040059866314345848555153496413998522877854520833604909202992768729019976588274139177043563829650466836786215104222208206721828783105408834621000803003823504650204744595326028379850062961107749292880886044752270455774909065910882936573289495472388293436039339089474776579735811422713430454210616248050701537713377313053026992001657199034527643525359847149068389674781266998188303717626039617325316248582975557236268226963773932254102285988618615520930404086098788279513998390563468088646684131940192672012134729811443291251305373624524938708739650924308600859298081869696155016995791129083208874255221436917218789343440979956936183617586684799842844824418649747630223571767849458589228099688170864784185325101742195690757921170619407120959737722626634723083167422260951695565603658998060405354907466767787428134474260603706144871090799200087827342815724826601011454388080046182527541664947524690400440781654187180713470789857354679482180947298925503180428257236058630160599625876944807587695599552609393941621328658964794621310484038374406266153039972728898655663784402316346636168880751827408709792788238290894693789635058384166254271895435394128474407354872663990245993440472134380970416746260055441244342493479578218805136243193954795669063616081299491555679568755419189398839833194140952471253509109319029373679200665758842491121359281780899365714571051047582813449183683351026464158842812685136038784889971331003757404476109846080792214569477823095181823025563185008342181862999796097345757670598703466733133291682270575549216185932983152416327209310979973081669357565441140734006913886881204245019561080377541716804574040808389319876206519166706551915456113139473776956427609065018448040077944979242992055426811579562030690401207433753842542086451189055718693491387612107258787779531167493373940287206692590807544949937957733124240549724594381691744163852534469405510260399710316663943677937850879685515893173333416906892508324385915857554822606452253867699914129306032955403317049993042626239674750798793492330678067848352636396839940604124904398630469363693570698939495336435654994962639020747175167867121659337387907043112129044364683443525172699168471139354571087803375883927835091169306424044605786236721246215461224986695724272695332071866187627150230463892459914601651391729678828996657269214313999982829372246802832922512008596196662787041318745578066714686909604108161202634814005143297937695254990959562328486669059740226154577079979330738200728324594336918034251256274554301127342599455247101551210043323580522683218530542818569935586911400271465679617646893932337179756600535272649466238217770136586695628010289204106329641030094598630248780835931877911352865641584040303156044361735002176528190200278183637586291436644812774067185898263854954724669424735774517735736027169172847190197598378254229678000122758897233484597739118164702515064409813111571999376823523219016859977305877555598545894861925915708091038786845929985903577177617827258680586984077954237937132654272378086468328091291360354517967986737282708338185061707883225031554778869255267668588342221536970764286984427645904739541350733398774694900929703186420677345641973344314656179765188214034313765583904313460946585760599022160879113927780062319742900157708576737071585290017710699066699783336600975530199403194963638587385200769542983672980822755054656573268870620430066707653547673631042606701038783748217812431449355794816050426649492811059887098997286987957314073229447699080844622777429435570634227591636073129926166109871453472515914177541005552737720003680859168737098868479031760127439085574043298166879366041378166263056451447854761116835047832069027210770679634951442574298317312895718817807843026601170232100916289651849347456461858048019373933974374922336935403254787299935530353517394769388335617086666150243259992615861306639094281300887879108250393102648234051350195431234728693088264907917361225590193544613869356245872657002062237651648417036540606887434650394357384565843463291040964337510018428183383414266646844923622285124097065662466361611782581133119231361872793704263758692950006600425341972403252894177582291441739791610601466073775540710614487875398574615330311535637155312999274762197289364328365983608098220735058363187092691172802822037708780329021586763234360684951521805155157626301714825937559014850707261411308267966202583377727517713932588044068218272543140426112977122292257748500487079213662663929548688810034539728360655633057199951644387395177013229785961103137629708597810739377477982571752527162326093451561778938729840899270107647634531216440957387051791229666644615213021843801887336444019660839370771582757091045991864426323697181278307561284791574742202944684394755346155787312680984645962032170987578698008217213678090705423179915057068704197299918749349707261127325254872133260744589973634894805034598462908821371488721116410533269422124545479228786320077952099050290678186859371775517735439443463757881883789438149724419067746598015489708360294600443836851751358156480861610238347117932057925502382366299555257596152685099619384421079036283737154894877787917263807178593835213600713021918178901695966163017193518888396427612107728121691104626398805429641445514540238053798793805762914877251529940775953713248346111928888173049512429188695113953546057941151175311145063235347070298084713913960685985312942157819697326309411644550184083768930819972521582176699122128514116277142216970444055327780520737239112031924548027615937829674266472401103444206837016306759500592375333628769850262205389371230128385952194796877631354449548698885850829712793738479972451729421104677819214953228876432646882970716490628344529643297518886857163937106769910333784686323925561029562222215251168458339490690849311591498068121636488454029702079619948844691897646047411426157214904611570600885483751308999585392311749779204515584329415698760810166872502552211382945220782235117069323807912205926045312575023079833478298721975674225088843490883373257923634176547515134272299017663242414065304566281147754636627954793773232532747499360151804273466259692902526958202578264948421918845640418094639331861044262241842425442577030694873491266921140929874059581661777032843974119126612175805302806773175084953754786039935626477284098408104579498631937476756384362586556092262953928349962769625500657388613329149228286685154821035627622017835820982770059993926499633320765410808918088376310131715453163604688522880830181601630536119136597534383622245132927601365453626816769357410771357614652974984658008868248006312316159808565844699488440347718318532119976121428809246436119365936173893901860236422685110866590844782545447349621584720189217233923899144475443436069488320365617658874464143776941946867545900085789293087873800941130363798282911775177275211936408068613560335772102052503601472824987672402772656186209380864122705931619748374487139766134023467528424656141921582768147174158428693876521919479877086911228088233236910443237663524761407843794359548416288445563944735472101792637270015584099219041723012571426547382825655211287027368395785814324073476987630849862700486187114235913445634191861541476824660223720105573659257743504933131676033441014804282999166642525152618883860941639858799372645607980745896248955946627113913125838916805621222354718229041807401279720027836614856478379983799903306192193869148595781395523425789763081677395046974888865212864039405984777849183569726546155703124548513486428369028884566879341820562452175664220753642314498677407815442069320310305025295286717662868033582867538763581935882878664966662352681836270539855093480682133849426114620399041286540324100313392269681532213739971829226495941015510664902691196229949077484172484899217644342390670678631966072590968340668205184978588111277520270058476787009964096195395298309156160593897726000339907166862701801215705514670647916659635642831511102369175552541350563136268142887849957909288761576443943863506513269425992095611937877820209193624611127297460496276630388489854367127725772805370370536736193993692960841136278081997532310625224171559743575648297404453899294023002598845996510585727221658655666639470351774659632299444130945367371389763595981921994879818441543607975700528843705052309701289166045078973620442039582132305251616977057310733874506033918368983272371686673894636786165943704774247376122800952885523622794414777645043510873434132565260103189118770160912541273691303098857744323451216467636836001943686448932067511975986781512653074489942954219546438708319580433015391137297155938871880024316103321061880337140222750309439443488790966342879713060178025806312451521525481165268616246203675727101851423329349904486608782891803686562726486061435106935938340707796196393657134752854805802321521798424169957424707346635771733507840784214938592465837115760119095697105807397233654399487731122934081601785174759027942398789768714618937387536310839821314164988529518463031790722462589999352817811535801925958907195463805883084465334404106043005622484763665226071546801957563039583675733099345742434831059468012570160123389321494937440681342867455754305934275244611129773744821440224572299005404960724682160740968881577745020658246637988119847063323070523107923079708775223096655026487438976676980602769103494542816699940136127692422329001410423753827965305100676640514636372267400620098430318906343114436585467322825812809524577927455272479155370661792435593414337403531994803285024805669292105354590822592178337947555906981386346137248268917206124140212148211620123423406195000901312185710544281957164523066666527031999125015462545701620057996139594346065076481798494351008950069233353885021581336136968536422705905752336776592958153093329396588229811929997742951446074031350324551539596972562614035106534712319153096855819359858689468482757731607049026803680774653994911862367686257830323106085466605579407767519323405845231590239867803640427517357290750897690674185073814698556179861686287299226500505220941177373506914046875113804508111863788019038531629788856610591610351239025128627829659309032326491589029416133436806519529270830544246004249672960506483689009201133858110139452717060902403971101415341844386479404415023799082343686821041416177600351187359537277272096506695897748702258488637297473334807337316430038041663704267459410523743521943377072320169096584592143407034565984212454803345896282788326294705271952311968490412418388454260538355571509956585484179924256952723392681683388159276124078042831834538601869809882091176596139904218056541539826065502254553613657067515931075545662393477236586576439819541344005977340949066717893605136935866007909865411889833228785145686228157764338163789020027804461458365921981515455712272959985012101511512339506755405683950259605930252038051057611534541457842622787156499802450751434205041884265635607344587450497166816110762701623946562350094701628285854290071424465877553182312218247208541275521353115658908581546653533196998602292800032525918928753040297703393694495637358374409773323503829552212080236124284031485445580912102731199943993775426200509661908888072272306462983695504091324993206897468018429145548689246493617218707474205423580820512778766342794598026925281659396748116755921300378809857016487502057029458274330997288972331787238014029030216438880916833983992365994908710473060730679689758504728463942972457944941770930010352586795046418811364187508721242874080581019044319808165198359277657598439984051888922745931380096852643094833669377901565178120852956027005233519428377638699514826488166539984617325031488245505363190501248097264053303830164074707611144447533419106565027174410891836084906797688765951059785821787576557046020090812376910060951167163614968500671029492505552617268195056423505180986178773134431473439507184338019812562587491824620984536202374537920659971204647645723102531110391306217570971219287510642107679713551971059493864012229502395362648959275022837005219614370648163949892211080181583062552888506664902023845038145596706809686303910251052878195403949687088199768102750886466196062929218236086748052009275510474917121731669146755165188572695904397603232325670877666854598393790899048528412007659624069387907660782621679945570450695988718877464977903786844472792675995609650221301751925524012565675866791852985171333169330748428507922726331406428848537206734498890316220432359620653114800974381750125127146029251916018683277456658304982919267342545980706538185986792929435702370734972311280014355707333115801805842086002631574768173102852457722049099843887413598454023369215019905941048901883862692921646131137263127282186299974487295927836701838564400797609409938743064213094734373422745358074570337943299529545086757710216352284725255205117730512141195092036369293339160481646139564933349387912816271245294981055128860225678157944459217028445007036317545071949453408486688238486647164922668050273413410857670368110611378423741458492296565255860264492650705814238314158941134184931143745834262496269560771856248261732817754924039193298309513196999944101695800200440625422082363632492669494089408332986590239017296322954871420438094601686900383616432882693883779307444323148090795124029069184313742712049230895127929346438025573500634428474222699842813480382448000634570015216926240707522766573525133007697898272643014044352709299025605423087369538492081520512883758885479461597672865003674744321171653037761287271178218239190321427469824753853566889202596816466261963168645591676436965493250250003254777436156987061069221194579921606575940958750820004271377678465228556667131228375014635354384305327383042714489351871831906636571891739421844945001609405162527047944500032093874294377333798899624534581173757043324282443463679039698615599969525440705394466998367284407421573510923275726483405014423194941649597585454427181868631891791160042894142920742135528613892016114498138437106540132559261756288133193761751647269773531796632905494954804467362774001254911441967108703096630962424860386216583635273477422282003259044758458484554811350642344813852727544545781438679892555707595877999202472536682794107390077019314407722267246360903034227791336891212568563259917285936860937503982368882603755114296373729243675264261920872872477590767334894000101808529574609173893330622819794781505405788924679327184368444090727090439077625786895927817377238885815326215509814823170747278342356621383926848643034923553008845489668756879097053732635870884111724057248149299824395505829366587078480904024777489882859898933247276617924634710302033136926418688366759681732047436396961862068727411136489859909744544224215841519576243639575255188551472804837359645684976627729602299224511084847130748265230988175779432818118081675745599010229464732008522299912795630738746834473988054113498851385184234445535032159312825403189395515666811325328480499202249181813860282806288880960584612410955965069157169392025772084429850117273496207114258252277656633844982001502232712950186666060730095551874351075972047244065826520288232881364782247872374741995884720705995779794377963225279557877431630532231160066718670056158115691776989828355476172232494397123025826406935374130510579684936265393773177774173667469005611473058500740336666308507841634885275091811695077885510827792329185510059269582269892591853385050548294249663533007504020757172199854767313900412110981131643016014795256699548120398682456582827770462692109216878691334895564983065556771343841921043480951971836697519755040216266096251444530880834287531922443069878336279293895824927500646046676943967982025135703973965256177155866787790104110265917507671406106885438042577991529094678771465070989647369522519484928303297640748236799876688766285137726486228399074250170287183705858776031798741044462453420753863900155902636286032583386448754220734648931422674844376521381622247011199012318843656932450159330218627900953461917754648929223760902099177983978683836810622372496409389123160084435810293275917617401620641601554274243374804021889530056511410544157679224335907541240660394150295451997683203667030485091659766031252728861483946464243208661551129007942771657340569569681847624712954933495355134999015013160566472973652063644305685004941429364236124808299695886459096510916030671720776637035966433876164140298763127644083865189556295345339243951273554515404814907955137211988531025774701973914248142835710455085303529911071866988945960920808208997965571383058483096995380465489822997902242635058643242590414652246887246150766696601109957152809774672051993226993415456459943075756474967156045290995327403869492997399709209840804120143636205655244653345993522237207876961616224204009957477664833753995595159716312980936952142866467917628426535760353159286674591097651933667914402813963848988956138833671609204623579704260224578273646523221977656215487422365880574667487786981463682007750991898193611767263449195100329327375646469532546518191496467559434340528934592980125574986218749855517764709881984864304882795758395160346314275360449070838726506802250382007363654742568372798607449087211278130892508046564793047472663331153767821172086278765307199522721924751380342825233794033993652898816280750183984112212307593480586374423243529221094666894862516610455822063031026898394618963150773014449123561314466718462519503636921409707695936303250304953346549816443955893536293717390197805224003719948655760282936506432728461434413679799835340053630504498039760568384954006782057843098581403053965263990933861254857054498972186509074737262174566864974497877343140760713878039542753254753064663272448390277397382850114872259218672278069819410510075346429449718881504468678304106997628165687275141929746220644736282246574423530642048123790614998820029521921454983567231343003084138746216518925374319063837867837592763950844292075494904670108452592249270815806582408759415556790904513459504732049085261889763066712670527059547706125169223452782536648793869352750399998069848937916333340592831431103939354767828927749569908495160588414625508246444895671244782695075575613294897283786574651857700808317516860259665814009827633259939763427096788313541717064241907169800279394974853308187060860862216157439224380726819899594128126378402538695606142889702762485609120804682966783614314853727498642528811886385853053416728523348646233928214069315181356382207558497248149978033345311540913675921946586444179660783615217342197324739498809829244399920267717864363342022495888722524601508732462045167628921508735424607309293976578720208327566320198666763282075770445964673760307255783889599531703238675814818981089645112877342874207645346793248641966916439660093266081655676866840499278791435084347589276689245158886051322014900055709137891833766650498982982447873480514994658039800165666979724175312864384178881594799246697255222501164190886009913979007672266020220403378168939699893625025286539867851968971625748668348552705667357807484942190128647538470490235302493048976802345531116158535779629917464804673207361625492674409952527394464863030692813612370923435401099980692798304313315864245038224683651985395545062469815206026352210229063153133656914191622861425526445252318565217486030500519260376599132791836845777652098973359591682720909292143426010544544089189270529696141067463606348676037817886558002312482852237577059181456625952498745273185242071803689875703442607564305979042442768651133423337961902411707747235903243752642944705283554710321662921627669005885388931909062461887450645768166662234057331566170437086318662657471639630753891507337964899478973291418603402634760429691694959137902153644290767399655964914030193270309806361957485639295766325146802556044799915057912917911401956660122540104474798113000794166507405353939856239516167470302862686444495398839076422220323652924582147971859615155425887555436202841838136713342166268589196580499686057251094101312289073789899096756128587951978420173448134859483801722160200499699077621926324316093435388247046502488761513415584240303174223863559267874973130895682847629762486981893352490541714387390636361446467937972196262068499242963105468064279837947471537250963448098414041200996105987672442819075381270377784737415773645170487676441794450938161017754604052348749569431301479575705308862500354488197090971650691201644634818668737245716541291880809715292552495715950339348813772912544529509750343421603600185456478944130802203111296051970637847298072319809875250232567262630142781953373774590837647852502369777832101610143034592035876819311175572305417292372439567013511647433286640564203392111612292209184469930505349102464758463853313683181076581365543076733748607541330726599379151595105702901351474520147450705110331174034726125502844558194385485759011166879193340835315554632447486060079863426415664943150204130856984239070904627708792420760052142280736013848897815529022456706023176310761938918415816586899460864046024278841493665212860255118826391846972200047898858110203130948507078745546243435428648582242525418749695336941724062667478305951730749803282918300064089728249047442902620172927405633023275343664434308277952243150082770245132016867262519295112164854326840933393067918508943650555324032878817171809504621342528116577967182084691613964563275670155830312422731542320048735331366129173292624355720766794930606528983852463074135051924986179624997388690669936310619887212469729544920836473739708956355210235907845353357088262115634947265845118544071118929473244424537672541547341432490922011340732753933840725364899413467982079277251743298383476787325187535677737543554089906223756432922070215787803981844653445417305508668392401723806238259846301540310890162153407718082104214225980191581358070344722778847933005321913611696396569312317939314342665632481081330341454449259228495191275039483404010455890513674247562697329083643953236972948561626666275060298856421439709674524645236913051046300909101498398261526554084342967948392583509610902401287215900771523872294566440080885944821684100709816327732837370536413501612497198342650105176247867521393387467355378479404196657061382652018842216447511328223475793825475299788509334352574521327969555818604786572020926637585280558349128496370073747034453713923558369215611826722972119610434326052783770545253544192932031184181212782915461950973434457033333647542216078831499176381024668998088386566900392822164156462636167880372285787504827594480713542884355350812678446107017570526756236121773283428085448966204444227464206580467518044996929712316665913268899624605504982111647219269383195153347513978925268040389720902764613339063350493663847722369147632578069497752134481513466737915757923587001638440793601680314920823749296228524584728426877046487355530223929998372127795468222988764534746901926121063124547577604237597343978924478415373756398658541469471033620649319937396535314485090035415021754871150737800681137372253380206026206235362594268633983315279512894132164244769945109681138497874972052004727724814756883965705611475426554164119936724905211609163344751970460412980278976933264187875208307634424283269168817720322765335075917900263485663111605194584632387087082588362968476998223643137141048347273809798605764161663621297236562338505972170041716805267753067235914117392713649344632657684538314411159434552856258233338728570790129926585240575441618141681398965444524403030755859614677685465045904567939295764094096764279404720176902146175224702472591467701411635885157287517535317100894833614556490793640797774319949310608724003217601057667713695329314308060387490762581397115177748544537130685298241229190512593809846437379516204271761198169944124218900015844255688376644179161679027683201010404022043559706861371231950549356106058696401541294976759832764115400215523769741597388289173466424682452918992727940157311499412271562241174531823545579784462916040186360143643376148984007482408007247160357900276589764479292788175821562568371765704861246800818940472481337772978012944456780734315920076521249537714399066357093421656384225827469978750088044554420382704219420756658212788960151430280297636565726324946852985511802379211742816579001873354637708930666135741516259836642767700996059214221922063215930344137083038217295447558991314520271950574701750488312188459693218544754079689572564490387461952613549861799557482819491436046596607007959664012706776210179086643670165356520180700194880939460606846243432803111627308386633508424085779613264437679724984668824627951526302698640258327999504744787708434676726556939526106944807921335958757195559421538571743228779403586058672475877397377834933043238361567216960384355723710766233518453194923021842990477781902653378668442563783080276780541634080619174425496568133709392044254407284326652348439184414289751297649241329624121535647293854702222093338868257515383691682861615728316911595327729656337219951481568875771696343493424093728439494441500381748730716021389880301316826998023946284283054862178300001275728035838316482957737947833710141580547192723349550999510816038401396036492742108922012186126263037575122241104384839993209550336466852151389184879272173899408882009880697456032707337460663657994365049788607532145389122305049602331122331239749157057964603146804570299598283491704324230780521356437480679824915363365135620123764422849113922107284453845393689517336813254884820205468557952642096654932692530368256448074592070783079241784076702784684462733548924026955345391609884756205896452200224377383601481246829710198521628187349370155307671415231016378611021849098374196344878371014068768521624938275188157658821934399627558205822590631767685000713923472964186092542722440009968388100468078548139333479394363973930407223590475608279137515621557997833903704720959922008017042295151853126069094723040961562244657368999309006709748192554563094232417777602030675817230836347240300189105379829876057137344516238038002506740582378460829820476352541117730548688359385881728720365881106330682211945625407081726430031105612677987669469440131435690075115667518852288218700920422972526814521868964330288564827033174039149715611179641412086051720999560455633928209814475164124162487419834813709419563177067236010947829492768852093249475578790807767973741673282010171757102989138970990802065021200126085891902449784008114319274773902174200378876324560625545166820920590765326422045249538282651727598455782897999775015063743582690142748754744199181444841511254313062807429379230605763796244643747521737904160679480440531811296163078769740437909754909705507974212202210773875278893100349281952529562346656180659964246319231608387876014606643446371563585129643097522579825568138605768870797692420121720811977771704736479789909915719479147149294469418347566043197929861375216440124697742797486856817050272225055820383553760152352539190226041091626378121224771080903584920767319883692724644971957728490662772890933000787721187114792560125115554692375779188846588348443507631271606747707703470521357487593523039139978209807091583421514729614058280978662783059999034542113353869560776105511099765694129012532121409432085988123353902611779579027022543398240989290642377484216014826066427135306622449347447761537844891478976705504106687024154332425563118218415662826017469287440127230008000440571940716743317663735686850035005460652901330971055467626542202170933847583115794197940349616653633016740634562548516563212271333133477774778401983494973327090870791790520682646971169853115114413149618041009298588682879941007036088520408973041606839227233117340697989572468153272159741153479192660520936880859170434380578226330054986876797852170235392800057490221635820219297183983118008169300709308869464809656818581207149351738883888360870726908797929413798919059440423602768122510935918507574280867876094480753803428323673310020698103100573034714904449393485946097362308085193980005427930304679302841846828369916986675005388799532670886734136042158432357989682344623582745791024361428022013430922134762579801894013656393676587159559733720083032687710017602887313220525787259456121045938870899787322651875366478580769106596581850675770238862206854849663947535114371515168007898950664034610148473516468333825894585621314415014314480950740746761514390228795341210869403337509472059894187703159490657137100269206353278493812219044353940864435182977220278179371096391833020621335069311186488075197345652546878564817421491177195187269865887493551139434049165386194364228384558061885930555418793369887693595908488975848000822151459695401138950688697545650905798488633854397698688547185966439441750386162918364798327027426802570711889053119202135113367129002385462373193491433770018368126369579620093492108191046446423781956736640852095031862590090753143431064300410879275847866090972812241752723300240489648571547543787171850121789399176014858997009684579362381389512320237163273802099607367966595596856353981065602135608532194175172409419889590654823758910892937151676092433784180039270496342337879968094240768768819672111253142441842366961317457785929523572580835478119709946672966526838493317907177873177454830484503874755062599647950760624766655096530731347690833989330542495400948176700600891579063649477034665913498189783102058323670778426680992023902647306273011022054547415099193431360676948248735079014578955116973528241942075635787955523221110336271218089279841559898053210127244029436169717688702416860192285635494688804759720535789205650548212370051351675803642637922605683222891508105006465923096443390495601159736351924928953236425890215670906475927737389878782273530697907690460783917871458799860777587151522310626695120121590751914204975480807073437373885058690866460365517503224714689053420096433005828908678347261143895640878028646687498871953494748152168698125040487833433996373509780299895944059441543450045260415442006868505463012399897499026611126805255174612446238616857875077800609350713783693759901052735882272945257626474343585432722297894783749810317146516302403193865134028142237382070675276790929738899047694350204907364428914690784462698196788493948193396658861746695917364476007278438583353714125296815738932565722216752833381305501265154367969900680028011518128341191217052474135392857993949135539696392913392331196540035531209755511707507067401727244989852583387429992673890220197455171969091808522385154134554830059599246176155861439794869719860413220233147440574477640847570148906483331198399276571056184133698241407472670764113846684931516229479725131744111579662777982508979213363401901736881564646782427280863908394094366837041473183019602329971922365492247529327377864639509400120981802182896430019856999553382080658564387041461028470609749874561752850942184268995161171450427985205444792117725843926848590351849940447672410432970388271253354472115143578050731516187473126547750005440101765851062568767769716838136295289937736523527404697557632320637463513386206820279711867101685615254585173376888244548198063985965572392293978547959627384619925512398215877886107690724296860760763660548986217328392935509532663773219801913681824752782970887990500467940796872421306423344696492253988372512485426757190230913127911263113695339555073492276292340842550360352505417190888796660554465836090652271678564482143573383497410428542916085513643692510609635952467597613441512732341089162494136171910687993147620285445939174790177613421944901632311322833630765920775068304433548589928019173162076480659385230193535502987816688015205626701237745557737174039910407896502792527848680309652809869499538964650553871845954811257086621736327005998747018719443151843814131978370237232214229780864473043833969462145775290809068969344940396224005164955131703192096650986789045810812169913217350062714498728830855742898374340969548015470232281187492264145482300770584294991161466064178742962504502992781142683844158867905742792277728035346943821683093153999098563088277161524087006435695059413544813154346068435941712175885702338362594716838517509455999022763095073033841230625924864646792163386414311632684949233670628525923640529034489700758006172247057825730676864048964384631228190626413699132473296642252046587015834037765235917779462020306984246068032072652599916567872613907680509435816563539132840357078076674910205210870790602216233960020480573977239389343933626127058167911236182612972328709849806511373697454283499499041157791150094006303052792170437072672244573619669556689378596570525799198791685398677013353529419197111264614663634491807996033497376519332968828489255664883733888655294602404982381398483331191833882853870313355030076511823168632885946816898745686943514131579375259712292845458788894973120246898437555814686578032341415117736777756124842647027757170555261518695596102069523329440156167962810750416777294963604241943549890959021203578643236597345765260460233790955723322200493408062592830165012011861588326577664204817123244119963613640225500981231003224827101505372206157668990535334478736551238423509783604975397374806746709141368086255709768367082159282463256767445392787948835765543786512476002829597538240468926110524357878076522972178719764923691045977591185767370056877548860576480035764494453809975089803490998758251864931767874326536454032193404680484759927381897380019866334634448422247605121943770539573672870337756081606422854457790733285806284791264991662310481111407686454653362672698457874117923232321213153782180701557321889133396608701525418561785634753401122051426875113905969304364497729911577188217774962065694843481849426308396308703748813185754732252142335204529433664161399807658936701391485839388174908661526281898055289208771538745662556220681340267121678860747996190308413015234291777019040058663974089161359608652315020412093398013686143986880172975379007035573037116821166903342978848316030010378168515143782216078551212325525758120917118110809058809735430010257824755494104746984905922031205268585168451062856125768639960046535753562822518151065565500275388347563661931522280691168855707734898883499638904655553989631427791992337126688709291885883380307277935196851311614716437290798778236194433030050291280587380362669753740416370665028387930193040669879366389357367534613107691862202739585858409469021762127607607338198369691469400969597969853751856677608772493967493894207752064753920042186352679391090911397057085547383653634191841854002453156769307531008830572435177474140554348598671884360761970851748253429264360957999805598132470944998801999665557797947259694401466007742663865904773493115671221183424254515373749288347078087491177130800339303628944978916405838582269967107013783638579816469993088734813475738785005925749085106877113210533834625393748040660072781320527119614763657465400092512425863458783469727740544565479257159864399728532504063470986403582959506642111355475777511787098798153277581151910571584968063847136407303452657137035163212923890434795761112372723395839196337135063336821964901406159006207190232608531341830106027013491465977391985827481238841738750593417113318101175305555597196813120463623660791344079831395078944474798196892136656231679393292539212778165956302283542304773968009973073734039136201688397835233962900502288482267472101328429657838323208925054460407195125542606237100280132595383157621210585010235704911794752444416183661826402141066987992910665078062607267909968262979428062881892894985379560645927705840354171820789428000738412881623518807765835825206371481146312007933264659671056748138767858212021452724052533340084463444625220796686863871552357333241770931963136636494098373191662467402636085824813951136207157949574931643223758416673401604713770292350588647003802804586241515022626149803005907333347529097869328859328058615040008801566184490018693161786411665050057803013556957283443541479605150831442627479459470641243589215906979885410881074838562838951497244105096429660308980980149642085062346679329884110402324783314331818551194157427226953587935900846837124507300141137051190166940215388545439533248128174292513923909752877005810094622020878479262853178745127058925360814275254843625224755910072660171161639822525680249099788266181649062195983313971808301158320596237037492482925151561305746071599299013680645350868226806377153781272876740238860981980354690705837609620345803981215245033770322297791466508181041569963649372388204815002485799129429610882439224970383169288072853836002962265284202840327337224932869849076942684807063285198273802243539758241852824080717013256254545459203750676044531149317426439330556459497403980118537187372444080714497287480317909650510740780031367398584122850286945016553764735611234924603573675503199104746167678911492619230276249130976027622284870177350039898314471482748047011110987704043433483430049536777549604221148505995301185801080670004281224177810058976497550481641839536493687661457022461788659841579905946508742048878191910441011519913312230861770929285530348377136144307064954012899608732081598369157884164588436988594381269472936251908104959226729654595247460477485552811059522082147746009981050448060860831279012334493747073520498972735221533447295391214838390538603558450682893027588627624362861341920014341572858415246963453987521706075463038558712982593502913534751087877699332329190843288184841934965436639663764143925057998179095163426051337052009970653429605309772259170463146831762855686262755080535474749220229764380477457748211389595430841668005234308469869920494385515438312487483688329521447910655567819779292887174169857744555893032850009075870219322044074408817411476304261851925415020272702943767846234672568039080430209560482786931057796247975482412075032123650829731929341306935878394032336540791603935032010636706140722806748467598138095854303175148373282357094219188167612229796233226106088491607402635089627100804521815199236833438383020888493303127248568632179260143578534267805402351696695926956374863380977953356483897216440812424523914173806930539070160068689898766341535391787895934903810998727996250828587281548660708342099783095966137815524967712961649899542984138770193608893593593903009856776069426694834994815917557061129581930252376614753178369030392112708013382799415978416932087967226185674831236701330054364584024242439093445866514669269972629338690011271887602475984421283629509351646855243849787870254365017632716119732114176438756508576322611476602650160534613306649509526457577310268301563093635932132197089740185307508930973213521882938667698042061583311340538266108098044965259158747427317786278568001568779988035501118261674395824267040618235815357649260061387028850847654477248815458048021469254938804435317808431274108716869233224194101494446748864172258434204509772452862269991834264099483919095963017068973291250060117162136468439652974362784929674152613515627804933805433888186553358197209971584797809601023918906919009648802368641880427381251519938890745311064663206011352411467421042919271041816443240631767316180003902398652223937036487679925346553804420351745123086486383789685139323345685533907920639200046078374457779622926159987788894853562637220339328061942062108674156374491307618973195624419192102454657921753783547489767251949356417372810687291746007010040186692439731936038846019029309420863993962986357302633873530926805553926752825078090014472461703121874000706174821620315449945549189657745473525171385511992204640972816411661537288798859009476421310161260579055743101695881381023780988147633370650791686985137876578694129181078219669561941049519534659991777266471668328429770838084536140635308765011233895499238912651508458813738270957781724840409220288873864919877450234460733509005294036080245781165711888941210501184638164989911622303013024065801032848100611328950220777837615979546612794086473635555535115333870585729684224297586904115941785826167440197443652270507317764430641079507593710899922278867196123939303496378665681920101512660137251277145275051532760255284882509416776887229124291350554925752884296051388489790342036565156081891814537650152604215438191969443344686890725470153138986391309826802834493331318307025692297575129466886412901150928345252602686663177830209783378594995954017055051448483971342852875507111303213926726739890654958293198335775372748121484006344198181852949775105983832696368632444661741137345700249921308333343432321288064613471645617335578881806839580736126278517332184231828146842135515255028927047450323457219571976016590674593956534127998968252829280494056861900411649140311675580294402209061178123655161241428504135082359766812900092329747162592568653736616846864764837165620811965310146857498103751710157082204797580573044169954251116651329328977609824305919302867484620485352302856159144381433254277525988428367683125321659540802405753063059027243079584275508201865955045562889642315318458973713929405908687334656631864676637132049869186874912622980237926644186264051727567588745979101312053610200464146833378522727171372452063861251627218201122711407969482338055631625943129612596719358265288017839920787162510287161356207892513706552706617339564830625754201057102405485600922502260546292032856301905319179743805933204952279292434308611057437692359494492989992853084594936570405240550354092008872911932062766017077639240438073529424343511270534596758722941775676216791548645807053777111224996649681963442929409805027198106428256920396217386235347512217674839444852492335889314918954911495872234959443371171850584027464780666724971881670604061455357614300924277763892449919024594768709336238077920945321061029440338352792955760488952284386971341485188101909041624170546826775096482714662581806475486100296106750305909970802050672931529868986997638636334948231238902255582813344439256746543436012487469803261224519264436684448488163631499366353594031696689734370043976517676993228111383151214309452881530417746547614134723789953884044541614034124019694189453635039991906990308933425917408231362584520242243384649453463275673405758491413699395054661368144688725105110833474987072217986449219188458589706411014413930905115195247229604115487664036229955841007621680504489905467170537607524054095747043887933367445837242166199324675551431672377589989886740353996767129426260114577039609351131702287192275085286578717854170546501852566748659223375680284730557028537018890987493057886027196904085998905275094810680683956726173688940224394695034322795187954234255950477694151843802506907203643975945510959543566069860978523474983333570464746819432735287343753015690253612623461723494864947296566622566025129438314749344953415624903603136403521760757092774475566413258255669762927376367635719446681701234085358179930591789750460544806598126606225509442939222786071808811193539178498326139567637768872748749061030651358989174790880272317194634893350721211528525637135974704313525635637182391022445819881154541642511354906429251618861030671818538085953668346247623784626301320705006719493539870679845408144421082023698559501144637758795308266621363562242358579208323993056236913822630019906498436679336365191120598875616387859879419579307121379950415038454343405205995233648935561470106146386840957406962149683998916079688043058023910695864564128709677860504278565297039004099340211225783453041484130509744972647318184797422245621400870060664140235722398774638382323182192407733040937633034169001408026202448623248882784457687607815495688719609279363514022577290852650491406569415242366419019852168048482215665116811902879727443034119598959797323329064209932579866263574495906950340531121433017220859997332774304865174666280127691191390232396671247907406928132517524181803728072415004425031957398951241199815555965976688239220848659441945700857752969918507539813498466570166233407655069976084665063563621202329415791883336064563808122465336100111202700826053085834569625545303833899659293987336677443570736002701486843177179396365935279149679339213861454683659653388429364734572884612193086816128599576419905279326082740828918404021147042965775127494576930940726000632528419117452766591400996052196119895483902179652818187567522211248758345631972190494701018981281960794880150355021574662071620799639687757743852916750673544095158051368660090363307817068468007086030811325500446694935284644482997463455854725830670379410934593283597614826801330032548593553758364607686561136474951916920242400386635213775477414026909397975772455849808864073987129817937380145197829446511816737191186184279279634337965559860099810640336932410921388895951863183935096130739837453177132928297330025026778121442840594073407185430267113320367098464806439411505689486202352675766627482023141078274906094773922065061805327409599520627275469815785983895072078085132260229497468840816466028665388925638433718480903230130137656990988421758159168186458722128086021757931025650120457762525588256372332144197401092222319108245896465336245733002432258755483289750065117476688683619169325489982655051300988059960529834074604608588988128773259383542520717114936328466103685058716380691502089869720468195680464952998366848433540069502440954535238145717132789684828583268636148039394790247048278149477039279800831408025251961633803752232906799558590742894108924821798145238828914713954561743958427072854633475403314308039253088512732129712581350442638296633609054644279745184139781226979141179016973960992135718402203337265772691447972772712980918646511727077294003569266946319126380963507255159611868056965302427843099885706697235266789215117606100043694961440530464575837774893898157038531596108884399583911797150240349885910773707585202334408085349786353912341186124805622508713420432806609318477278782572331316132962339006318452509868449531998075875798740742256354549658320393529764711339047686491119333819611587971631032747138167540241648227036336654846559518591523246085928908361905305791071774975291895848681651629110579134770208907729352524802720737793671145556337728993860070091032324670754394902800873312462588198835017723647226583866905628240803127573180741284167216118594407092333647410204607790708174000939001854748222649018860719928956480324427071963115060915198528945512487668451600474511881181419016243742628145705334591852743408493051389993639852563239415660775201460839008992960749791903675938777430540756565198610665413337525852564803105587381908017264403853560899491572290295862919635811072381700350955365260257050009918365139903488419729421012516829000353675953748730743246477623447367080758754268114584798389667422633202856046824315715233354998902822771611743498916264549593732083145596957940167409440923662918079127607177961812150056957997865044655114325897796191048621148277150734133245623041628005696221075436119227890026620483841794804191501474001247283043021167810615806333153251135160532001693591829383606796448960734811953148496111684608432298625521455148068810275267508034305920349111445396492972937258964087999069699483491681741983458479941788331451886897123855738016777950031664357919977371027516680374403057904545450102318507014635330073296945159593167269627981936603027115704774964184936100940570007909451461870303399103716080779657933247116786211642725804741782816866997893180090476287164351287405742294167314451944544979703207548530757220134797154563376167729830639733858596224576294095821204183567884835107147505791856696225765959812884090052426211883846556457359703083197849093962423271207994674602336687550697017165048995125029452008794487164406131605670355840011170603975201851998955849422889876453678817176730282643067247953959569931832550958138560399866513555890488735047958844268551241769079041288040667035314741377933008868973952834346432790954818398012926734905544734732567700088422874296899095010756016216764183894771279251378824282164333409177967956937420652168090559053381720925129151849630820527734222084199832869073494837035205391997281734382310414473744893365241787786711664873247666825271784662743386766035162883105383412602112686623352942529135346946384864023651766441804980447918372889701422736593094438400045043326625604905539898036385095734851722912531148170876251068567200402093727883642948259106993026337322585467867907290389185437571956498742498635749478790908362218192138206162624596608878035753155404362834880867072700854979557827979630077879110347991392448816106791962817502311095371400315440774697735389886883473088409665515214726882918829008229576230239931078731548347946806983708898417377549381017929876490072547916362536342417331438251245733385044748187397914293012381220909206030519622952510291015345043095069514478615357507458015306586229168029183589555969966220087667862560281950580897542291682238200938914766498092746973736245021636016241426752940287259936236017031507710504888063409038658322889636153958989208096522682625354177886523204426036308865489739777353418941294347537809940472790209021582724567138293407990830493004097091352605121154517920052405224415291304591852787254493871788099456311972585599682403605734254406268837114392428378740691366152006385173461894251869152577908701325997125606714025041457575922464001217732649874760176447839263277879426898613389206631967042392514991237700222311610141075003797645768803212592517817737765886832799184611305903442963075055254193947511415379267556160140468171995695806801174882662503750166446887742825481209347014831816289156844544601199063701913561176293018669845564695872213655084528868756853952000142882581211690194631455922016353094170135502047390407426439362382137481325352710206839246541710125744188538171472788617322065811167087516168016040359969983748163593190270323795277224692661717297140670064753028546278934449749387886716002917586503124402352652212587858415440928666054590627148523627227171440860033157915652014097682507847787113893343236683319860537334760734283379805422290294316362335073955059653573118243702679939105180830815196786762397056164762414305661664009551105534820386101642873085021298864483200813532206067435172037659828512991917582207106622230373023527606213871852729139227339628906152330797613430269923930902578700153219221831148369636342127576869352061792902875919136762539956936237716414196438061942223233414833986095803496307470222620282616208786110193292925585696819095585226354083454588413347998381945737169421580481837709538941241750193921803792774839008054186731750639462351788906633126933742462472365005341768583795350818568219138487584079369148663024921758060989994445822990417791108139668586720782045683882942463182114283605776992290478304382511045036098217916385389322643755223180154679611051051624033991158620059205690100787235965179119859898396962573504008264635894807804697132751132697318590801988207669164127321578370348346636132067548608834632620401962518003264883118584673616532797606486721938024368215136420322345508773413869188090470535741920875497522182769665741935602133730937917987152484444781469381365186789920370542222738029497546933934037178244030626132431121513668635316111417017973359788404519688401525177012245004966690208754050494728780200584439589474833881467434438189889665290906396051424225935804201495779859068362506668715328461692751382139570553885270138173981547479385814262080761383243137753232138600558480832539643647163888641782988764375196053288267174142495437179682148517372952108389780406775306887350589405266523263811165987095360520795791078640960664762178665288221433613549001007012799976662025719088115551801869734420543332158177868482527599216450227408068111146457324543563420740001243687406739138639075884883157656122504970688788453387496010178821659063510798842980289738319626233581894728953779486561857108380082427893704781586978255676320191676538795471680166210722183651111045579075462720233344052273136212349155857677386196199120125501930043222506571393584603465185618342883034710359055373268088367338954503990437809650340464612101475766397106809092488800530379234217974676589611720588508661107558741055403720834875769186804257242960851542416575218864112801152537701654487009418492932908662636784641593367305955682810424315475339098398835487890094884719564290462762945577998181702180007760059048110607689479655757017256998216483551513365192731804682400386775561434534889189981465805954457543722668678499200617517612881430101309496944052574173381101970509469957898649620008451634782750372353026687258438035492841103985984593756342983167062050119815729382412373887083017272621942926100585790234963974849109078403471253119325165955515234266792560633412170767352220242295315481437715762233437779973846903359349782337713690734651199169140473504202675108875971442665403347385726041141195465876216186101894300616817153751837015566426149462722089166517744343619256209513471556067076933283080793532716501699352603073223174073769990135313958953291534117308357140407832445608420534103684903528659638250519172731990725827644132012341017362918931556849320894772782408744947856972014184251768273622046669146000596761382585846044246748932065903129285881403785227001900644452119212869567607836134336209529432978669233324586851229217313004646611040100482346588337158451228099617300726446526608706008859465066935908641571936265618431633537846827663543020531834710826249475337645365587943252895655112827086829166424209004178012665395269474254214193196059562288490307043999998735188914735246387578717467137592910804315654996395434953672430734726057738119457258428653508409787767780136832371895650460881284266668581465458324302130551155002959335288225025843709286448302038060250219651812757683509670430004996316629857211942172107907797590018469504322534303673704771463263410871038450728555240660506731410099689390684340776459861468153743482472339086025162668630563578942070450494666756280428915553987337170899625560618233412564875128059311564646516712832678542027889837711843363198159569915880155975392206565771185123411946212024743304792664544932490774844222231790354549532175711269753279286011326559902330588000695573533436533602449952805177894940988165152062209145167065684558163940499767182687533077526182782739485364991455058193625328339315239819057376079098428732115077903871398367166618263891745444744722843366907292103034941358894718857178329234049455570057321125977030272455355380865017845621123146578320799393230840864955787341386262203979467412432843328316996095857836573796875281650533628497918034067259798456269039318866020440203695433981644388480385888062252604358431044441812904290377587960760633974453235169018309501011560905141262225254921219102823047209639520536474639381515055164033393530943674099188048852313503593240136706024940089118336357777505725870452775718633017689729631908472609476624458727488666514273089305847595312377156425127673594782392806847722387314438345869767254663792292674108868139563656073544566485221304538630904858993326788462500726725947535059937325236830344351840634603646857421548550297269437348870960684720040293943505084758087219613363458999770779627052790378954310797336724367597121090941255148935599548227485928753559295985386390949495484011271540564061740429957847268923157135894819845406341675789554035378224776234905821418678767217560790866426727360315945542374012823905998522115826663822170318445375619204928979277809959997616429593127932624138915858953472313158381075495775006580902047571438165366429043352021874570142613061279593150963340663433306276846884419115448726343952917424698995124874848278671709940348617424111418373882198681412110135362861380097582815399768929815798033415704190579589110513538943844417036812046456602925386617337134795147108022583079355150790795620240771411913592743432365652401439872310238358295913684632424265260778877648800458996905294163795587498837633012943423998429680867293544333480059563747907814402802731514073362653636514458982914067635980591306964505121270439504398535559760731804070279267712607268202501417028271743362534354055191948428038660509948128509266994850856273181258164746981634990677067504327203257534102317852610493980866031692886014608795006371308139939570156138451635324153121108903936779306857167986884989080095408797948676941225200400638691121982430907571564790747300609088814815360091359372738705010266126474143504609842243711244244164161651493659884819796266111358003504823372666618815857188796340236386493879778236027270447539932523470618165520682974056407675754986248542506253332938184397635579362508093388053802556382539711844471339427989698564527154110407675290632632264760289807929824986757763332472020966141687589328092088324159364591097848091547088893165727573975439573958440108036522694618219387755320298905750268269759494727672220733056822166750772297833649476548670563784317717149207084168822854958896508424508042927254649384638400336074653339569329715369621780498683236069244094494678586071001726810161476852122258122490735192633060879457123968801669570780409808228323695886931409868161590543676353294251843580450715782666935149994094185579020560740259846744054931783051829948779544221312502824091465013060145162843283208270378118723887889516712846327229113274094324839729377703357859345908564804975336403818996082184807080489425511333620804732246832431577428025340095795416655550129011734903600578953532310889718633329438504521187208828807723602466113979540324972085086031198276299816501409972942152107534515221764645277184988637673975344779244164047520558524797860533184950904459082600992690402679325938816562210374870256170777251152453682942678774257064625130579677162351371759512876661616089431820489368822241694349775567373582733299474333657513984866977424869880581710795744481478322902469445612138901744719827183433720394569811086020170607925244238964645938916021605143291860131937963695475787656337214223406868673623850534206177473521003326350385046724198380195994111994669403503163945483539904809633844474322323560411345366001314401199606483594139953378948818661450467195503845250239646755252849071857301495871720394398364989039782757151084935653697278528819714276653272358241164424869617049950366884442056016386604287266321195736886422335558508649390941072083905329846090815466742220618133602350078180915404090325070357007665096282366813999189442058068467514105657707059487922918047727195539719828642772575755357595571233283236738576524269929020888970939517957962255329459988150806308850657647319092106663271569809763638398557317263949175775011335175063530731449498842271334030685620258029797531091685193465827108313909010889608796931846234219749511475990589955942750953853206431986247796434615340939971955181729251854311005735538766134166157418855750978893470763999371139396925730381286681927266484693166273232630708595017842297158340375949830469951468742910893981207738850969637429015877721348945571047572893409684616338868674749604079209263165618428736030910283411655035248796611545568151676564967781836240613072931247858593719869874189673429402550543232840946834962637382825096256412029195683578673674821463797704388633587862273328377078640166527437131692356168289880686950921867529089968467722594061402508806581744326422636056976201244253971665747414365617544202726889369562192824231327455647658025338607004102332853063823117211929982551455326980456004461992915879649434318254161308280485084765517692899348309741090930351002782678834083982282537068250002317455142067598951235816976303378618973629658417376997078334764480157502809628128643744352385257881001867072983140478666220197020966154662750055853005151352073960771123310952261847293240730292601895828158207144977431136249942542075783639328233941429623483625985458048538842802193660690517814006624636217176977014664325687754846715116396270089159289744753780530985621516495136032132414468138352676371175749602785536747371781340903200812685498821068754699344777082159690522947424741747458983794686094251102549944084158879647227521260875018702567502688062625695307594264965852660361629123095029033400294683040556111462456860213664748516311280471008640255999452704946435851987237461906837414877439635830357903449231383778983764403190933495925814567269112039764915423538527345321878442653129442217199828188387153675205368004754567957039445644543837638800433235006842327030133154041584968388714804820056256626508357647217978963300967503144702892264635768460855683534489049169945563290762571227866717287298802494463893502037460646631833501699067948792958079757613812653087538866811402480646802820789515533303313782015053473960915314910527226338972272057765341223047691924287475093064523954343552949920429839513659052748436679782932600083321156469175332296758171488362502187406262371924796092577914957607105766018712650462233246738049808885622384152616677858444826001889133651658549549895998602794521190360397938576802099871402515608996876544100728608816645513190891979781729394794940951308906002266573456085349131030064450888962134216284474134052128245914506975351568801792017745838293813512364041612008969298591810178632416920332430406693920640109894189718929211423036659443101433050575106213542476847031857425904830202292464867358419062396231431742096036178552663561831870342511226884530100663685998257426694879675799558748092485548088986078653005849841282392953074042138424260931648825372301665801657836652847029795262511684974784444904140051272022285363122548200915867330541927073145985367207376601495918561657631933728513028089788404220645391013112057201707818464730659015106729307448124279181141163407480371241289300498814214003194336885449578638303985879217723719459396863427657105251063235607323501103776163175797870637456767430926789398941284262023574016228398373840622106046727005965185958233058380126369246380537602621633143535434729907300820693221404915328760466581330132381874235469793292361644062218489352575712988721559284199729997548089078026200212586423831894887309918515876458251045639592960734075573625245650934683408650906750232383987451662834398674331590872739262823511716484848606064632370077248798082566963949241681101081544031371836019769790454066559373578952596350607890223543336193780286121762010396912698842198108859245259591027211750307723627061616088078811520961982943845765072760877912945907674061378393791620325314590903565475604772639234385646744082710770134010827016504118471617296866511932398502944013262835266041466777812303104962759215471695994777075391832563157889241233954184255403323110646895330801008915199180071590660527706153933883905552665465830034820538097119275193634033953164009125884935532890514102759628892381390641700789080958160374062399379969094369576227264097093408606414254916430459489755842993169671434799856656638838991131260525010211598322625074381256895286127149992319318994260926848584374093625363971764296336319508066649934443721854190862007243771184662880682691626306125543615695620702619106090485149755504993312619721796044968486296153270985946314112515737585294233098890559625843586922470995509960287674709534224043170976831098852585149516380215017059166954901023864766298156562626621295732243765969801852232656673644125685789358577789133909590921102114207891720279954559859490397733277140974822352373644946663990366255190940942274692023788609221684283362035735073734242988791951930954672528288717934045264814622546920996711245836442674159893285534525958481807399388611043412083066469029601214487931628991998490734441852974115658924521701463504058701266748207392572420461552679950024447087022199599632555959775616006928154017983522848584768466671790313874303755228751355488958920172429322230570219921032758067351150697557402964048366090835673447838189931870887664605480600797078514207826228328958174532614280259630396573389438256444941676344622380727510299669128118417092984180114274034803016290795562507890968898820175215560009392327686987818720927829511293763601317888374340792288141216686664064187634853997981847078464136475414236174639012211887477967039927186459291541398190317465462962797488559300375773912525452927090161903843885058181631669969701541404635391185156572575281305109240958650167413554727140425922080460651740129385091040125542020408571253814236949632309270530447736084988707486991559599754096857139974758965520726202024105345895831944646807518708683561788920042136653918265928127568526991037641215716153191340722028921077560158807698165853288146469265877466192864012845522946305479859660158606721251342183841286964091127532752891180936849246655095487407062995128291828554743200576562271222888783869400465857169039818459573805237849898651961600228308146524148151327937848268218350466093989854286459388628344105403205013318757611790653422081303113877482874414669489627746776490588378686897401548277109646232737047996128515847950526971500441750454453931721825400677321713955502097516732214960817749027877173742023007178392068584897107817785029690895199255630277281749337566167314117246554780876317155176920620088628604639289141774940294543872452587149958758059194824454029206955645789629030104711171466834380788714027896337977543062067837080934784144029556877906234084570826784541935316770822064259058211716409107698233820649399227675844760300290718904338159361890489806763993370128474925868058066276357237013923206925878989222429854148200645685070106915930742723920964137105181898688649641363902499235857403276104624895489343341709081029567386647863544733080950623864368620043374356363539939374470534088260506546521008160947417280462181197394675328566675665680186736328122559013921019604001343766218692020335059093624545744681603084106372224244437066863765481880971530040893407174133139209204919785661539983638421979217925858787485930459167652371243331869768429128973795211985758653729032961682148458845613402259525023680208701493506794963345522521149110060019663932982644543383231470905505993705179789005078638093923191445896044068375532839138420833423863509108089743099440774881572095688556895540589279561256639502025371189971374065371167810759447244925553543283691057279869429158120393274905993091046598961306566620494522227960167362221031816892629894320447694176929333383168989483632067233676760284210125056547570959551549074378722331593472564262735939924112840190108304657344165576907352383690183414768062522772169906596773940703882622145077722556578798608157177709690216549773329583106472146005717745812271370267864072985045740229094306692750109878091080189769683528395492150679305556697869163683073047995394552920472684437134901390979370011364063781195583843364254404031193998533520814859702782896064100738097824934842275927757357511178320816677253253936497708859003023425705910482411247833231079776219140179734276658407532477237810268357761374015980481495952967078884250380273390682991778991577177328182922026225890042317542178990418728270397508122216154181734159913028357394236002126049123913102734284547995019121581963003623344074337037448511490407092154553051108170856098377894665681685924969052327508307634733580804708614126332803834793670961464969832739450717366811442356836914828469073963445604972878197789734604144502643781867029736451696479541935569276627101409328734079288688787826503769005826605732179178089771696062303854157859212343105779966750178966177094926667701588250582195504820441077717259467858593433290680122034532745081037263163951485516479477884954443571946150665029358200226665550681877256682325996219483853857151944537398413254153112774803828414317682539244353475508352518985020537240197194829116496872135411560301459585286637458214605418420247111912757616063623780484272768368576077910856097559140370632674673246557392730207887462116268776581631851841911009387025769371782780619689140066031713375950543695308534050607210237417054471256730804976005141680726689753899606039657492518023452517747137362751437490728426315759245874707826845270055779149429444587229043832483777861177370323374288990044765990020203239885043282541841717135075010747095761088426820630166930682917206888184687559278562659329260939008030141482088435552034655285903197262754482440007292918532455575201717311921249539812285966588144890642254360284411333747926015305608850332590219637409035345323601278522410647350773419800618345849711147305059378458128613580133492180495553352785521326542995185367382113184956351938648261147971439672039325802638625369876788104341476620894389512688052507188033483964103677245957214707716054759986655700926892858202980791805330166781533963071776763917931120757557122984055512037805181194501520780608949357144274701112302493454350381577623570251216535544848799207671580429619586728105484393292764402138673393407352724499017656082217296949436560040857213838513279413923688832655935579609271140013881821369917860763722902724259571271792323590547329771100606075490928985638391392434591927698051098534642313154330630085547667483681325667717294494055683023042841275852611635313019764999213537334286084389734611725769485256274329191602680123438597495562271236789433619827071466314350047503935839590185031346892660405475749169515893338067926049648423587322089583672213650721005055384248838947333881932207537017832752279018274082173454359630476888298255354783578048411440541135870942642903089490951766768485060650944124155605517748744171290045427117658093117170023220756141526842461415243297265049043161851475621210668875014116164264740098940752068409579031612580615898158283359540616182346080118943730925847935054950586431264468972085345394910185851649746437806344226442469749501178563341600447079651963291889133180754574697908816322454187275203561312478289171630220974885505680744837927134280659413593563497639441892715461276083828480172981188311349032099927687060114097327606336279716228528069621564612741503433645951311625113859907219329966299014806751381804297905468215731840421399025366331288326732387340066272216465243878808290456408132185608005213566538386312749599622340597116249204301791371095993600650441005036920207013906063272984262704289872538226377787490032665387849138413365450401852042111125817720042567757243092640910096622800450013702620162369756130297894393747584494385585073948040585292442868397882638925025058267322217184556079875488047957962897699851718677983309479387759637180336574063729576270746414351355395720916897078678707825969994451306139327366031966686228104208441061382843110993019138608896745377015439742353009386423599190434930332339942416271436984365128613211600565437289823932072930798519837533917878587499474111477183725877102583169216504320116360710084990019512473133369332458524678093183692179465352982283126805421377625501427449875837575013218528367632025884527384989830731357355888816403014748639149376524888712412258250157892233333241256913879085863124511926259877147565928775254905291525182369100917292808747806807785223452740344238550765924369419084317432571150328320768964600099002664672582465386024658788729128204661718702852734530060645439124728880159214306192756972929042989405677199797358461866850798690068569786186301931767501817768280739179226117393011879030905539422139423459855657747573100185676955370866125024528065455632075924961016507295116235351763537917762667877292116791494374258930561247544749669100479596219108213791766935029778801461062771547089466938855365806238352390197011919859385803588585162432332819312799843932612186896854855393961691933581872172220030825250300180689816404234919476658074181027374151682581084240231453277886817536899162919039118623723331524483477970574065975480201959612227443113278883458639578201430244117425586715429007014537331079604116255023992947738952219619407207192112479618262890350331059655778799396362755706917473966386952691850209361565827606216468257614397931947900797105316828311370311220026459982249450800762453724077216222694388042970631419005799351777865915921322569058617484828877895707285575122905117229537466309939769656442674962351472346811008126745895646934917951529795742553656668201305544656833507623613043466441307592509254530316307237390549981667018392611563035863094888718324881031587728527499393077886782128304446238531311506250976260459933991997566742712002610680853435454201950853897720293776983859629683525825178972609456147968205702466852685708369878864482418088620289868706581565710143840690532865733167292002623039745375538199539813865156850928299736867279172285451587993463755620837619246200759676907616800929678932704229789663957271530600218866103356370835732875258436857674887428508796155431850088778418320817219287450253935975912879545251928792498701436897405363657313960284847074149204940050545017052664332312171911521086567896431387077364001701278593010274645836005379665678393640331984947241736929445877445773226800451758893689465719779047783990700682370886818755641201603381984664452438470706196441359311333546292436464887017280706573580375718518567790190268962602713974307765035381366900426668219735724156030396867168869693400941606327467588949360258939341857555762585850020092469205456784644770540639844235212381744254350028319719200508064506462541896847035948638099778643167454426903296893146363253284524695622844289041211186735306872962320781852688498488508017594633010693313332443231471262643522002523683195431951267598383455573672512527204285826867741763804936994199859701122637284640359994304400954359560559470252722667514933384086722777475917637209813497716322550196761119355156584106083125261935187675365181418847447934927942151083920654052447471149170226125605827562584101990240422246850698452133802058229350699953089400131709010587854100371692687278510294239800672391086709047853065097187301478780048511893110930648808090166618151127691349654487947094065514937721921514058087306319616630816057243920264915476731477492142151408073046891313303196402319165070304898864978873285207811997570778424159015809488598601645119339491240939725901738675837222492841896258975519884062834200820488825547116672270790498963454313527744259127357718082598350714397067275357564755716743257490287314271073800150582715251751008730982583897089736776115839738552159229914317330411582378293861101200081150960596785351455371628540256573895312326654809502238831540123226787513954720013432203092055509020374598892107384099942558479146245876120345956320883785148407368271863275598135306573320639828637163507980811258721562296594403312587583635576877116949590109611252555145764552679773285800891257689871827302847452939433638482576594393100763875710071926520476110420895980960413085919820922583633758754197778945547375791644618546430110770227854159762376827706662475469310726110598850407298896745666312864950515097504971059087472310917344978738598138800064880262095203318371714815174165482419058881465896921243746818325928455448869130643399316330868232172029004890521453032973327445080944352807846220577542585453148618205946189061736664275447967860544747079399934107021300042824890687599400352946490165595662099383709009714912769314184981949412950146377773539597970276318782409539496485244415554885866418502410672357594411032283077995127526939784551949084542497544842885535910075920934144928210829343117526352003493059633602173725072347046235380451399641011337558899474824053694178655864255821170807902425423783475965470933920116862587968537268176622480868395619579386237955914874127145963619083553975417887564884040827049927516298257943446152831210541756710112315029454806937145764445601796113276991000395746712327990343037158397620752184691285766445687775997469232956199416343438434747937350280112485793945598429503166718912253894398553489764489212773700435970687492160469865876760808869513436270786708237102402325263980484373641680693578836876154797451622625763684892879228749038134539096548871175203709843122487354813406617615025384184312075543491299369426926761980323609125874557949711877965267798184829478752530697206555664390217444850308194768956102106561874095263540458654659419057721663998262604434830956384480227159216842436972844816785268064863715515227709949228812727694652887880597648456358616689360555434022024468157166438489017651881618585358899528202362654559936871604192619134328753854084710694033820949452486832364892161508996633609933662978123967672754061365258800550585891009358964306037395435166083939569402728381507176445616020390740065492889649079305321163896677145549753447496645034447944057282997327832051247984091865634346241520470635201189170970680604503053016555049724276576507686504293556164266948484687364951736171131992363291936080513218549253143888911876694290522052056905225527198321340672257444403632329964878315276268020505966746293410476242321255366532610359283815305925101602257239557810135449832406133782042468903583275303787595185000085862281186469888709311190130532463795485781693484825617563613829662622461916274021959352940858855385303786153900873627883185309164322433087287068637149115524136103387730787022084537368057855798827695564680310487871335935378331991998415249550383540963207747897711190377301478643956701634911067268293087766688018220883618518357788814679325214283177751362106349554084508388295731066909100654604814170562477816541917545738091183223727762826779473236308311216021719956625420953803736253242150196334307263250391009549951575320665847652638614395768061647412961070247110121356516571811178308196055833915080845804985861250043586093826788534417164334997000254518830671272086917464543048643794274662623680760969163651577918144660802336685622445768668856661854070850825638902943518043675832914216292580249532176037452202519868597551715933079166091514613634306323260968980116265061421314762593843582592586010630279425102345251899360340960376324127143268575800179995031322368783102498366972019975643249442085876571279335560202056303798691152607063316913375040049415250764334624005459008970571593968704450518749959959188447813481182531692345656135489595660423449616595099504250926234429213555843149763362956865026816871570936971487818450969671212662599184056146136911351211795063780489386941066044857905956313028798447101066596515256064074378489875198566587432878020051549727746302235581240300044086599763829262110539213862612004155032560439601848685895129378182089694696282176273255041842497883001625764475496675025672937592651736236106363897774106276912879367702397516267249357940912472672394796044396607361716431086455872625808926846851761845508929112464059311066283972666573287830969864843608587743571678203916268179958055525524046961986720536629380985328004868954487764354495680413576813336160713269513178097008299081917057683499290747189353547424387365553655027725101101246901077852489579968945500774111482439399223382006106044868872737449809081570571807780479521254049118078853707749958959173787919525701446382931153176980528475676146894224517896772400370121086055149841680523905640160583556365709257642120398747652038819874555787491306794424493669965556145558799553013237443929699792677139190302741821087645504033926215321615866358291388679553132863324489822100920506954106189896929364377973613506080627656940631931937815620344870381356299178210497113294650122200771793297250534825648717955726281005669928412454537673813203663216183751754881149698786468315291799923142539882208693672403905054731352953329138118254713809165877361660770685907216368957043155224665778337399093880100923613452764370147597813230775575933591538056110854327444960279554692351422671350398521872768008975353335717771728482324211825489103008120944695500337088121242847859087504441745210834581239959752946569630581122764962714236045344300953851550491195987012686084935571606930089049820535149364410198442087849520742894116209900851101552269101073455227433996541810551603241352717637176711167820858907619162569311413556190046358840379573414963199287004793568041121947157749625556890964061177362249632150467333652507868001072891739311197604835743849808653944884193980271303259537414185001215384859276827118336294218888344917853039126418259370953908621735672537466442534712635912235266662159234903994691905023080619318107228681381641603873997547279627120101586584933280755192123540739051300501475281495260803906177306475863356914633794799057008436892004755569526324296238278576421643184016192966608675058685523979720693350265906172701357633953495970457882709946738603446919340847484133311201749532095868049808985395213486379418056655091020583763135483610171399631046671467541833289237142688227831180227268911275739187049479829547065875934186235795621960805630797085146425165423865681023204613688558541365491293937143810806743091865059859727910267968103966331188623668118736140525600721972158424651853719819656615549315159736987403123224590827739127335770915791356234623906950991283098700645194947095298417296642904036053426116456066499892435664493080502397625471965180952746136198116808979282639607372583159523225185938846407984732929891184948059020990072269346415761071251464543080781072349624042825591512851538535602899023779861981965144236627246281278601207678254106700532629259546477944985554773011716369200302826715313745944506425450581025958394170762332337125683977856335920721935039586362941279277881458067096821420127008734324140584747561877554562445616270246630545767825821383887996129315292796436159272923342206430777872100859997422633732679487645671785424393138627598628069757932449342400424528212866072806954070776914846632435986337784940815815050427562106038770038019190962270494138472894031404185616979604604390236229081430320654712739237439001543961279641791791283705511142260535851716011920318981839766079811913822754926208960708675959859386282788362375770052388630568570047641519700981289109782677413207786720923642852602640008080457424779527052213003666147088208794595724294368190224887295340137977782839404167174398925919533377733188172610737119272209609671417516217456703006773431166942077566044195193136514529952189109763352765633432273596637802680721187577936855214338383544918303520271649247069225254481920438430793457313825881433989828570222632151843679842219253226878649494564698340827651873940369348309703794667606244955395502780393942817134025694113114110858253906392345858400947154301069437350829550098194658746144976889092853409746052449833396541371512578418725468060504532019005089829641294136559643620942076636056160812427075899683883188094960646487674635743066825424622679608909725073134986157593929838623248568617098570322321975806568069913372416728748294173887916995114745396930165426558533553008778561375254716697498922983834667377898318770671254900726084731012258194274530181230720260101047531082788116540193551444620103032383896868402369977375056963797427229896579293850530449894352547898945673229297110124565698835371280308577799461341667440778561171587797162592922672429771348004534092843230159223352439802210925125250300712649570361953123722105006539823328489320891690895197674817480546603811547003920392900031694712790769959096056994267536671515857276625992423444254908831284594712436610914293765196961503716604007424263502633883286064486545233666441837384241385740949569218875076327353340352510762238210851414358256440790453659386683024429796346554840747073388444770836178651112570054112918616609331499598448160694225480895335211033985993558956080482247311235236613921032715295789501052653563842989272327486119143910053025152055266864994198209603397000515990319386790241966367677329494401901937453791617214613800501542535973772811695628338891719609873036969390718902765526258870699520576660116070687130798511894831322013916174165555457209835642099898482519747158950246293154933600747779944565049327251094598803672328040508535632361108908744311236895701476922917712937722251491275309805362829717201494350711831477094164480468178800523691722534301876075153498347796176841839479338723836085749147126474561264186920147274886700636535635184733595965523960518901272800313369688217629121583193445366935121596501985377137203251303992342616184124293973288140660813064961678924797939600376433031717450780021900290868617207445089403619080638396167885368140275815842952595600119419971378500368595723362780702272068037373744581455194496086801397797296170181682416909385136991209799579920125711511280592682764278846995940724495473172212549848026231603256537181570733380821487045403249614243188931327444192466724176481932921238637730400694224214718055794889814388285699215569908242143779353489246082751897283095113971504669852935437987220625740052663280544333742377995565275300952787703964221320788621038632680890708988334650977037470186433924835265139001987284933287345853702345664269577370985525299100433740259196989033624286497381304754597787244935695826216592911245377628001639787166465859181367226033295204480273020693744838489266472981112396050841459714604092325777462572084071022409951697671191202120118041199982790076597764473475853268900827291339388697988929074812927173318525970615793944338969564245352409330534479939170663634516977415732387725982875578865594719011072914401678730553764946762590277128127529209181487694100782034242469710766642565666203473028624356764776518629188155971258026077048368862696990322364740609977496039011172829033824249012676252223659147342571166172659996323309889842246531565891795528114749798212843077738139863215713429975360532432250014595243736001997523373579566598854622111997822441376307891686337159641294624308960887681629591049041144412445171798136918348593444249827801731086519563698257653358556144123797239131793135678057519768851242416809933242752084558615314210861623181679781440530934299690044951473188396172039804448132269733331011909126763862029880536643749799385090028423759205084242698529990886983603898871339667372020303454241287821917803302057291226111226258542997207996675916881520960416120210839236690001466315505059823678017001674743827025518780688084620711013942135527790301079158744826379655443157451366693822164394880176988836870061073613821543359133289363210422155489606056226024490534662150295064435330690488127713527419456044026241975832660820537495842951980377139850691320568417918448922346236548714776245175056891014842523692902284837688646382654779993581634431514020651594172572885939785918114385418425537008936359083407576003643178413840239453285770079491685700886682023173606853435802140557870280554816393197534725076483085741575329249715478410257811397418826185843947134822677224622635784565123218761150467345532279079848833884573391124466645969658064582973798829814162813418516067083980690839838171086354493393396900348219291761409787069447661656619334611980763744140290772137884437708277824919374737236731884938947123560009724538694452419247553586701118046528634748857797482141127515531658943496542292466732557555455321600590493360315207337607931814123219587634278369866287787194478836747024358584485126427302350426928433168165766417530099640894477941605420680337761219574659754673469586283818505430786485221191627248574194545345095659912419770571440052127794821333108222829451203188307606734528160105180779089693929557641928482726284377519641259041327194496751657637076862159352542879718872955751032018388768924257013336951313598620394271888233415677121106774856012602630828302181083871221807489585591858857281630560333789994893850830145515692186223923251046640965344693401710389262128591978985595347327955396844035550139370670572915748294201663304041438266232609989176378315289870565363163715074333722959460533326034676855117579462217357680024015285012127827935666734676397027123431536387692155520269103101476533166822518258342758598527329279220948761608513520297641193836325581162004257623935288517566994990437866382876240570806032582007484921122902336586634891059296919279303570316814656439723521661124490404206281868017664219261336643339046898189762044827848470313812548825441734537763078506124464857603041189749754010433907319446623850668250331233691401631940244299862753366606171478476868627278669931328787548649877373054718945634865364620059969443501664553230215796343633835358620539380834093010482188582317253816700149307998210910469152616514486485057102759704800611145580293287304304238531257145504008776330180116767603457583886995285332208334495273131065037260506981885352479419958217560048797354974593327769439023866461071411161213656130171815493405943028278587651017329569292415472317802786626359018998685446730261072041206102775418874069163441212938138558745488232465880858137385294783591896490204801801021486427417623624434474201823452976025579355212432807549869534984318400386465130238682068515232846920794287881152934023945034004881164830804420995603758822106416634292202119198113732831629787853366362155123303920620311222839615078076975177622238741650827673553644883020734432625345276161791258788401589238426868798294525122347711599554998604181209602979920848253648626135061538673687797658099155060957941455154207214783329521430997170393233577345253524451827403787286004973658657868581041036029864774743473290947412628640343373115575473800506209373364845417535519275812009649788909882384517519617205819099994740447010973521930498356421307279391950189143229003296870984144456261631839717475919514016344357032465824319636278265790951214938563294071871322365242659670817718553480241355920444827829760751013361645938269590272930504297390941771222503783150149341080166186557000646478613044582582976703122644215272662387711707215331564233101978495131211360559688041120595179214163889077120955354269715807941829501064239557831083390950472091888485942205640760443224115420126426768921324042515968462775898527998617395817540052149664328947194469979825706227706927804712968604102246782054272062945711911495458274319948399352299703080764915769120297878998105650249539437859740255793111503217925924378966145745493977312700061965457705092780787750957723160704781823762776670442074430043889965920921695387729694758845070556213848479459274255425528448415001661432701647738300354201348060816682109412122156566041114033076518954781645473563709774489136404806020620668102254518838385594753490132020978295120195765413070429002512560008816141345521919287388874262842693428123918516122462823062929790187957360924283880581008064428072429973447833499413755914923579383030968882825292977471326039763719819818908820970332853018662871776301874204328404585707569892202140242073559534922059762287825287600322655011900828520099337289719515213231900818751369776760820550029224529601986922345291672857548754872596709458405716402800036201366324521963703258724151559430455703491242374944759336699596851212648307461908852823903320887352031715389000846083888302015407752938885580058913994931743690397191773536223931297241986500103244265457205791016188533594870068661123582387535163473731533472819049879474436631088321583700019746927225803016483737251940900840415122401737091035217527860624814526400637031755147068490535872043524515901443757098342324839575882865742353266531921019736925686310976290030613056764568715089273056985721683118157273852475544548721306442159760145844792777040190495317184123209564481222632336418244246540288143418174607109565442630549470500861390217589632378240402695110136884118038782984692495630445530469679658400004415692496987304643030283816719192198890037866207178568220887007231871420622900316463658436038007825215169903707436779077175954963403463080834102451181473940240818199073309204769345639679399035512400993577212332247342803036604139658476201106370213757985655195369680708247217033642174647570201818267229518597687374149757215958767933718859651573180943785454396613993395655141705903611787670277160116251588394164992764114979721354766397608718928292811596301419003289946123793435404593701159497581160235791895788370844020528495510646513575788345868915983987042453328718214826818757661120178231006418172448103111463441276550143143686492859414451244127107105440506889070129673672524623103491179302049937426299852573335348476274152941169515765033698091926708853872749035910018338131563743123970347285637606986588436388026887239239789640918320892714105942739361685612647543363763250025117878318477909829052015593315176754929940326690055407203908321267532292273702856838855592828962939677594183546727676227647303007265155363196985631732591635231015603849060508090945362723639159703599227826654340304879756383170056421083741789080026611424223689125695197332649701925241638210844588665259071035487772325729170249509036254382692544572211159186349152232372440856087826864186209027765617933185679140465053887705651061595263999744691616233691347926939391063698591508701860777736328856618287352231714832702896905837154194461354756313689326511666700351907694673344782934207573640133418028900730418536506236835176225945626751749321307426216554430257969973458569051947811448398242925165690817515717255218988451474219841036312682762030300072475789333479315643835692246852045024509883420124743309776058003753632898046424677586423477123416095405349902319804641485522560174566184892014105919326800960502618779068682594220386229904903416876642957154996424119130010050473381422061848094646045978829158642429907068994270171640485815918421115223241128461786121620935774155045303711161918976577796961616213583200388208025853650625047733310358876569816825566966197561110369694231416846465997710965561469393039735388957513750103167671868398530831847430844452573715851985774677113024093469344846770019979734366347753330991388699838992276271051956591426021251366531262374459558423654025233445671417536838513451908545489919748845369439897884011923302301170821033194628687952273704037748784863021631485232579770233897940467336703627037142902156789806225304126955638421429406443312622331041073393482114361064623959605166690389093976730225632070229230619947774252024195332832438698753662597610906693130568317720144778644825226525779170903485830152207789207398634032353212813352320888108515289420613814735886823486943856834097514166144539782089540021301335127749092283169497849388784408230285759913589339374806044819226936625733885269221106092409989553554841860941857305162680160631378651088645587349144274669737738289541285183261059636166530710712394268570129043980525640287728585071944175274182676137918319656841136195482635824982345081708657900906014577162643580804526164710878350492005781073664755028698449743279188763178949255538518122071307372493739132518667463407969465172781622994490813689457897608227254128779141635570715491924425735045543607056291697423447173887358598656486408700471675892907841419825277869309672265169793410214879519599967658089457667825069888008161624818471360521154750696062291239185913700030335615714431282283500934788449213566608628688117734695851454151098553965152626801249028019584165615421177382694498321082833854368182105210985184449882902214455716227350269899731379459039124364385787416049608004546095004749486393497088896851154529676890857669691174938495414612658927047607629380747817527983081458320661127643929263522056741579162276340727386997108042456698328009929374858127767242965486258562385926069843495091116984685645702888894346464117893614142974071803179748660236381471632892416406711107306804206980896475844885935705999944515237559308183037247042899684755766683005821266804389187322377317793676177174989369993067920761025947845000945057386384914528148783913256330025106106746244494586547069059780259205798133276130976411321407389758393189792998977571694673200051815650301560325417159105249402364091048246297025721285532206667073574360920613615888369110854513790619466239955854515157301550720952482340799480053322317493827997391853269250867623337697389729733552477709506880509682409199109706113816197069325875191453113541975636093617032024732631492177528087002136236481272339396092582642132217225978316831899913616747102554796570993085770369962321013146445189257275328029559679066112905165245497752679306323954565434384292400402113158761075381643357303261894272344959345288633394677458841889606875213973773842285849660188018063428767252514070115364701768146044111446663711438098973635568260185014867555391819551862792933356334783483753701391501669230091302350828053993812430958696733501613677616537539512857478123864350036397009097313738734010724513897043196486721048663793162978614559840830816677344488161253316184931227688458787326734001290182293602776431341835852104826780175874412393417162653862557255202456353776057384750965800381809448033459313967620580319856341691916956132696936823214071943529172845462155005653278669165523592387404338817219666959766457552055264812104139322028768886329365732634044365913524820000848397583919658866549589103110224814006835795623993016082550526853937973334929404191602739545523967247046975319589973803615478930743510439909496957182541028022645271373929138889555160519825622328035757736941927806067693833224391098131153512599661845262568379099875802529593710544701796399898395125333634256443483297563224867151792265406305775936889160193292844057974001099463491618935403133833330606610212835925249967707572903220845407106989803512642230925858672209278818059760899864971272082376772963400456283598328680570584539447269125798238507613148857062699749715698440677876297049666738919274288671822447030045865343031470940673807948825918459431511852395577585186384466812945054818899484742897191743064679462102497187720264037499677085560636575216969479163230075884159947422260460468648343641223101414116212029380484929799954024982559002913548356397423991418711685470963143655408932208638536864263007364532146950211155307797560467227334344566898841403008541101642376891568418454892903652890052142642263853670906909802510604512401393757310658334032696570653257123634742870019380712809616772737191617870443413742018385403869028645144378883137933213530682329185730654189998222723863323751817498620628480020458298576438671352537440404175871968488590206738138836340622202450745358204996875368604695346283338107567575117686612114992052994223442887032845261601344426218017605210301602760610670959637016617429639562617033491510492215339650074234117979773974229499031484136839797368757141384800675425438974885026486299414101800721617670884348336762170848850221856806756296236225161765399710094912529190374786577526201320776203596816795631420806029213964233779366017597682613457682029903845021108367209327336560048179488851037681670348196836898919368442132371564149765612665910535143257343441270610537564248370392754292892571271877028739980052252859370716254702372381617156101712586195838479118608003474146041953117692497663766325313894992863787994930323730674043933251339675742607644490902702153919362483267079599382185049571351543568482135117256319906049239131968133008255450193411464382718068531573564631020099247969912487935613537041345357025363920560380459641799387338017265440406846929007049595273325650909149110967765635239234303633692342625126584226684505153618828659887909368625242319472982507545942527835691347630172642703507318820499979364082927703458748694434163379066255697502535350014703443094829086312482192284185286860236772517575743174978591330977313634289853132644164076110405130423795796050014065706306299176287762330352148974964771396476477651608990532854999887258301208539628908311481350786761670233319434135135513290657661304261561262950352486886002854891597672382043852262284427534534880941098834337662097489934806536791056293646336465132691365196810470408919820761436970939471425232301102586499767752657986726680773549133918829656973801545899108761804303367716036484993977857283858328362986994574520574718327752258151956914341260999583166318187991800537213238707348794384543449896324217860364282053248918222591458072114574397864302478199627673396586396185894645316726255133855600225163332281974919922489598467100143358027085047604211169099944870414783630835468151618309856651419119707397311524062971166021246535288825262925883910912230736931637933600323087912346618909698929425779943766191319203825440914821532343730218058634340336851661748131263207119187064895768093283837069992012938133235682826333611023097623655894843953983849949021781116965760641029139984663891231342850707359920628090131843821815455152398088120465687621913277314198940500815672389611586469155958948620694222587579505180248645964674971551852318638328039626055057558911286586357943438425635118528405531524877732421925273978013175112412420869124107504216489096080404575275294125578921246291723287753688437541256590618399985205012510581456613846011658252424216548418984367286150813708347513048672688975761220560986763116723186139212420231573002434729430686803062907618229312564868792693156073693611197623969607165936167701888415227158246870324306347471275648036794166406783248934419567614837098542750170268665490333104068438633711952358987011546767440382197012026680660779354151006560099366941966709825040975119810538992751531837186961668793394324903523780444626901223345690325924158098233792744884689137448059493447253886166987019709687926942815372122069083620646209378131708290014722512894842615391563374684886150375323648818547196248415693212058729015098010072146024572179522650634400060397038530192483317547963338219435932252668776492552432335081820785614528365061553162808469115232331793597194513583767640539508948533937705131500795033084242549758830834362409516795644847596431633267889605116222881994000596280557378541813236260834429957761641738162175920162017509756934355017427351793027137539517095976903067739091272509544826547059342583271148586685159647154356385852242234106432917374719201508887929969938281650531074116809337425106568851199990250803843844710535395582101843140573142856499390654063211982356986147624136928723807202986227916645319109802330233002183946425183304181696667067952809153827038057347066386471389460280952684453279140124018572222018302719237943402541738228511491084602664459358900553187223580450760623830690549939483942520082912624264388281938630012819766637642565264327423094079490543821551583524070257393931508155298261057453403250320037159897976248973498431255054823327829504840187330770223855100017579219687518760563135954290186973628758625273144608823117253907289329147483279889099658265574431221690973769786015857299881929754111132770020027958525634333840225726232250022590576632360406817506019514834944957291777169078033746705284042189855579372640153177067244909474165926217210863560260241207669991415596902224595836178953246294310245114214291012449795169202653525771276598096541514584722205310788891399705479736719011710461362902148783368333344338378119590978670819934153154111321676431721120157346328561895369743184543807412857683852980899759217998181383691820858339449990151676348865802327047112035263098625197363286858008608068997097878643334476936171788767906719533135088307292271696872236903233045946786797669024323694639301407028858151581915199391120640729664327783670569709417650233375935402803456137696940006046640969742852901452952956146516586352228917480502954814838770497195646871171382282432635915890319410609615901043002836768480039793999249896690845790702884145419105327425626856047095436015583806860440770627359045843937234768211732504043905412601527758624987867270202954197752331688500243698000618830805578147319513009325895398691213529729424392578485684737362654718417552508968554373273178631751513339242953146840594856994388991025269514382751932467046230466629489701755084497677107399122239214704561976769628612719811809248942979287814832450897438706141871495635842750999727728396846484827201305432824787066141163005349921585277543362182311467743231736888791155834816049186080400890278263706236200265068200088397011022791880037617624214347405872812835772227419959339538901575806846857960222154539825304982926837578690445106511107289745434280304490762532152189392670676512216879929538829279005498645815004014045300564121066591522256540192346843905329885621655455001385540789340309026334225922764870813725729438747590045810810027831794413405136559920602675296738735681318915631472665891400763997402487819771118981730762957337820018359310676061223324215153051698140824124764355171267923855730465916634074770435139677533018606129317818920550452230735352916779259593728366939725082201217371379171399737248547288193096237508671248334360747424459754990119858726620010957328469161261426738491565823199066450688673363092643136642029910599294748683411948808825637810929174441145625579906638091549459258389262227593763200369254895199056740377071896722418185535654084266906179655405496208985713737720811775952895325535406314325863905117239481665822305571294383413722856728179322205519649577604997591281182397033910797194982949428468240623225407986384080398812671780382759993122626549369319495033238830340504594957094650217422005506846608431418674437557882867674885139640689273663784998195310108999318935394365247087122098875096417197108759677918047433875924003999628797124028809530150379178959037117479403735089455538369697886297247915963542263839544312596486316237596926591395935366149034942611169621051164381902740417069292839958641503252514482615379790164915461465346492190100938870637382437875435465763069980602888144778445913617967931524399511801999549216169904254689130921233625235247668821500579458276046237575544696143643798201070343107278380535227567169907396189141179356369338260576783114498481787367235284028070188083542273073716743165277525108185472290595255687736226288453485145298109045395147628828493635372398478446930078399015797520485970395638870710391535542274808539589370651062405257840867136455111217568235695853232708262133541696583519711201814911755843434654283676010343498451013710967514548806305874675464096789243323662535120450345426196455389523223101429201075400352579439093906835971822631417617826711653762618594183485519039685318284234440559342188723343107976870817722017848356749796880286549474259140283760412990354915659414312689833577624769352497892077621116605026108920159935072027264028892735876024206998918378274433994949153450662577759355736592281246133265726047507734104992778492717038831848657366162052945741263352428472609091702493866260277674392430994734840668193000516948133568018762295963954255580595335274888885770367665949504678412025322983078125757528127294331706940452442832015455718885466762550051961075951079802105364446206010593895503462415304935238263043872807532143474800535831088847914644654756870117953275019409522122087602890066770042366818358720642999032612280117003292871439912030892367386510894125198590246401363711634480283639296252825121172934715415150809829459706450544689337257691866233841136084914174047959741160308805728512493578044709520793516357183482373140942007665582871788464697901052492473377358877415413240049059164087107571475597491636223119506849972508992445751838396852857804011250088848734141860336509687500380979384358897617355133881431660774381751408308829470175790027339393991585872240045915223975188314086325340601056869338698614460445607864571525953547214293920176141457147452530499177627322606108574834355358196660050341763560660661511921878030422147987738584227358571679623467410483012435906393004713679887056692097409296835792354011892090272011125095715241579225672858039338390330594193335520391964442258121428792426600050517241711435661232389070015284144976324807884399115587805387318275423622118140803292501699359096738729082477650132789614881998216851089785161242618031232413787616303808810459043471077230876570851249191502242809555342163245496982995240926644644881076146736551111111615066684723693643448086565801023146479612851846659699425991316522750619252294927304759046915623305423360211881382219942046213542382368073378439012773856226596528679475600577510778070437234950129451948819250317279173038880106239183118909429450777306478592679606946959739330332545310386916692006891169636826264164829328327250310518534475878701867625369910890078260586108559657891989879533436471918527646908220624994507480090801677128529708093262311305498054556971157486485996993153117178517521543028769913007220069605162152140109311339523659067409185830558745016191144686995261625809582019247439024527552280905032081968409844820101413045752684658852826478692250968596350353444630280183000346486044828153154604637452773903840577030294148564259298097936516216006427931009705960865359964409345929630983397165915915076049071037840583744270262195622204761090151439427017604619434755841259812995064906395604801046322398189926313165276595805119248706874726913962204780567093487397186764685087483221954577380290091141988575470234108303546470284957877852651959970976966504394152618104810942697218104390266625694130498489537708353190582634585894403825818875146257294718761838147577706351373821861035109513890625353919251511248113980963757197546768815622460495867349471150895890220764787374201613920789125349775407675019320814286698667251438041486105147713185513237226950640581068031111230264419359446801002588239899716798897584117800204163303061584161135804981174472884259101701849543017152622378294866595515294246572711985372101207056213405950603066504428884559425532820223961094725754997477302946474609058333389302009175554893021642074703873998802673337567709948961991404184448149088219589885244714363084722829018472123214253113348175097819345796134691363487684855213370069634378930494934850748690783104162420626664068056206674717919465742822712997155257710690501033106193581814913523382821381953643933354083653040997095113337647979661784077829388543479389740983808709909836670121758618703977991381610642470422452298069482042029914239621285503274441574987594524637468484174356416745864368950271472553437921919236305720384274730401336011222232075996043007277125578820150056777992645276446040693320786036327218682265621386542886368621386173786689928501423234790064186469012070207213280428402373747699146510671367088686837361349778490416465375803750722375174857146017448173422108708363671291607793472948957278346600201731832011627190965187860171410523129312701746916876248572360951279019288709834976229347506763130275552901462413508680280845864434028915226487307519416752741246767795141610816936755412859164297923380269250743029911583531195160893697255284069230079582496187082837213254864096435456586770644677363706945100847620502662141537514953761385515287902655500931782402591473121035550656766550334686433702567632548693519596768039404505922132585372029167493906496642685074547770521284069142782110348516303137032508352305555164085568838752306709625854354883016196259075379590120481009278117781942982526392138109854848258862345822288360029227121657028684820150949613688328140631696500227734256451569332885511608299340626307932947571245758520180984472486855024123462331662575208251976311723789015276332878262739604494644876789939167274105898348924828674181047489366678942081070957647765295949623993216719855302781994157236219440857853964772096500473125608283038149097482594278639786454820638462404886444729200131343489727964366203827532709235718681717517371569582313613975865795432888671546187552864262067156342958785143788830789367686077039737540934172487335635955364977114285952341159898839934634440205907925117307348381623669209463830198743447682565157592041206228435262770410804571251285024768107990110418597053184387075517498529992096855043383231633960156517419164865821700462753257844008654255480627506386143722639883841964514276751830511758461910901825286082301076361274097273030852814579747437279542792911672304910555081238446537877998295569660850709321262135882478827910273384034358382324727625733260604682447581436297934947904847007571003575533118222293029545521024602719974678920697807540822066702472181450580968347847982861504436665837041471952080150547471662822348776284198976836835507539404380884993930334654994404561601678036890090670198428386203262781290338012032285249249399651422622594654407807204111640280134735638338912229538991792199677466536235127619604820663480666764980030056146823417164160122962060469488330628998402372730865366565303017302171732959570480049603390821267466891897076696422512473176480286184053719140097378436107701193554774487713397495147334230128661354328417382362759424925730574977015096805033239817587350057664851910427838293963914806225610766051238249593841000008242728801872905740539243345864750681329582925798095974765424796078640281880310926088652201223314933843428638708667879189636983324715370432472086645659647695593022573955877903211830922729422232456827968973334847913309890969553219920404984677892011141684946199832546958919772293025115152000175573878229003329901163782069081403517974630761551404905172963304749318295790753512894628735883213473500894151782132501165474546338217041664012463932100005412989720278540832102737194894600065876987750006709271404940210215043011557689690465680406087329777002025670354525420156527351097592967548910695753420396851751425483098821481033041866510862832474658395326313870117677086423968431498497052116645293570168919821838750182588467536173915275563604229967755858256478616763093467292107539464819064366516040248577147846229594657670701242867797891442251884529147153248764364429300850852034852743161753667479484244900035365048784766595907517316131858954176742569309656807052470194200817109006878361961992217571700270824385689309157797592450270825052271346774934226270414044769574802943336675923386824339632893581398338224233949054188349834555687122210171303819258156714562702197023834588539424708454200072967177471674469848882245679735281893886989751578215496482368671105298715301095945855344307775991590065970104972116474057215692771698446912218015252231245502061025944573606110342280391830449331239311522811891532308367505912965811229895016249873271035869275028533760710815319261588722722789350967542630809152161156009453007412591158397515495615084966826390298411916133851385476815540424486294991765017070423962984561145377539811957530796114455879072190495409003348199388224538341001990645949199496663116918971858510166341813044672652471104962514336461699778635904795333034044029967881488299567747766782524627477874899715855894142132851693000784373360601176646893888781804305231822525937104437820049056423386766067006361675160847998758369742016126700425789001223712202776273053873334751279873661410542194755540422563734666803410263495715654608052744435995567938493066376761518339970966096773715396548856477039845499573937105920997453386242290327570226641322152591843382499302699285923900744839359112232592561806214001575261744689812243820609167445122397371879030691062717781136813527167645969198701809456498063560310360566671642555293585454788753797759368789948335202648603524588853114310801972028529693915838373359777443280039744167670783887166910157001153683983336758339279177335756066548119753073793871608120246239687012377691949423338729182418288599014820219727097158207906153104220348205060401838985743653921437220105685435664998510819864394306878528552918483709987756499884535650739814549748746467750936972524960357166680415570651279762667765850153730157242506213197755372416438485767346201642877297926859318397763602965377727604866878196443511999674577228694806474652427396281708493911063106198218834842315999752223426864047118548602546762164072967065233245156069092958256319139682901643803097075252997672955391354133767867878910052180807881307799522817525418182023194153547619256065759947852993281088502517223632187630491386030065491683021506945830301458300513001420299608240751532585652485775143999512250361780761562958869361560620375989349358395935111943377731522299762735387961134235520275236370669152761785607914598602308539980359446153536571503498803209556074530869897517776448823782228147248000578805416365680846748146500894265383822525730523752151278498174393484125528295686373127430590532755606087436620721484260413882912847910064840839628412877290648160082638641180118566356146095098676929667730481541761145983210599000392814683876242256831146569716539986860998195086272254476805087807799100302044509139425901396293876804638980287618142967532464427743193079421593717871529508134517165953734473491460336354150539661551909866130388698429492414751932270696630518650223307725453705998131527803371176620996629585537220386535155079737445588360897742776539844831311543000969846676338670788480437780858153465235118871672549903327411753029101044521875447781433068626370105338290327806877640937717090776433775222523150775718612135848584560865865313845400671603354664908282762004931721168472823509977678235961809830106280553164498655239083000682480270482368305815732850193797520753413303286815831101936643169752848291900038296772943694819342446292592449142208207836421104670707290261802618697823390120915014506985187442767716421377018681207787209712763386876911313239695282201112073784151080312179046103170028144991980356228324062299813258677459816560415970720696544663715661336624173030097993801391702974052853954743898091881860941483765130101954267214232962705393808420428750212098506499987043626829565671988251645589838225006241286369070430621588406733790781102166744366680920142995992419396124479587525511646676549585695081510535418351216718617197528613936215351016918786711358832316604552960555309070033751963503211417206188237684226662528082913938026355592056865985646867744415903275411140645412967901542737748348829394130759453340819032171233001178362875649895384051105420627249780808951570762011675315782287362347271667567772065705962643170843695383394077585950692303425022849649292380742515150131350656740179564697839606727868076191089497565176270679572795808170481689781227277044566042912575562869461827798076333668187640389098557338233777729353445411374361491196131864244213801191523958461252863020432671703967779227301002810978957653101252170333765578184336339373977809057104576435570643849214663076968662215229949011138847500406249885898289325004215922763796543501663165305889970111003592090476772554123396441242854976266692528506378352566669465921140226265922266766603986418656836925696768643192361187220491020979595253130453989820727934155696484126711086792825864298008476073274522295191322156096934694093997660752912577040046386328765939808461815114540438736309469718667107387010666733829836863707535666608541299036490263084286935673555805096064250496390504053379371072567308917237030016937173631588171265042338743358604016054788364563823684113350024566132771097367061442133817481722069363835242992315728974783189476993283043060055081680540328173467777848845894071888815937954142039578557560271595700710230693082499764886129877082534493698819809941628962248124681533190359441960023284453118996894542948199527012489012282683241037191418850910354793001956058059951920944875214808193449433470172090640138471544323771656048139724279845098384863023613532305523609655401813059780773652862437448357307582176171645760019813856008392217581665137640362827124723876918510867915115768071540752441655126230931198423216800612441321877060347291044438157477217423178708406064958517174682097773248330403914869493327382487863763168007384196776217896552544990581703116454080540464964745314222388660315771593028855850489813547404496680049063455204100007698795966297891268835803682005128050788132733025042508441960419856292797970321954004060202043544555821191725308649222448047416464621605481706999661499544521657215954055106194513524371455179473402602562519875594592969277581937093223666400620122106608998996676123383569418755160750342574203578882827750714239580326753008973501853575596321419439745767708359790137323280512591275164881393580644459905790375075895845492806871759542958874086365855700285573066728156351859916927691964939501737694356385579229695835146608304779539713331627635584183212667701229990582720149692095889311888111620240988001873784104596490970033225475833422510595605007113740669322797576998216302390082966522231538154436411312508460272712700603709637944748159984017632941830740008788297384138456484105633938105627729801775087081788607183585788751732440445326898372605348039675620986920649095548081430059795333338504873448597220986110140981846055856516399886938824951254900744482482837041172731673691794851155959420323109413417670351156209332967266318710511465877428080126856691126246158920531988541447803270422747447935384881690825066706539463254696945381239542981550971652741701778473284205118017264425892136201515679947001135084657208839018286121823990523555048358072252435231757223828933270013914532815969217309697162533912208097689796453108941550036288685773393595283198348226160253481828225973554968724433948664320599301694102771989576896859834784650347270741330621161520888943683410532380683655591469258985992306287220214473964891471333808307306999518716061780448584246715684343417667027955452904588863032444932301452516731966600470562099541716874990681347779093917862546306704663577087533010447693672346787404262064066749285311951715850025458064772937696093586271194901467788034104654555284228899346009650864213106097309294622574706922853713776552753620109260006896598653972249636731167359753965033873433674657363676774961436263779221529663699549285980776868806313936126326464507080236101466697439275579020757814948005362350485461247628521973853766446640154959802945205424248835742613084266070970849116036726562192061287425758169916779720318742900735349598203265638241813370231225499016514183412685535321713275024308620541533134358362201098187482112827276528314898352472558593506478950154188770562363606625201847171086142696348082338186592248973719744845848186288830375313606238307773412466673607842393426393382201624464905940194843974580958521053496800069332914132601195324255743571410499884067329249571068071324148674852691343763597619584653035474684150979304013596187781283913529659933684042977019930293894337756767680444738784301930377383785079959892237131011869369105719187963350186395572716429661299183802419287358866764383602675462624896086596716895623825256832544098148552761575457188050847722919996809882052137790655096267338614479806674806445769897113124127893178805545275923124762149278899659047915176678015736252028752272180619838692014335105024426048109693836314161393574532460322169306619594201074704478685101416291389883229569154487458859002715401559955984522815179010978140753486982970331101999663091304756884931361044560438998904049643548607829181591289541710411941669656679742027680339076738246082855729219723284896839092581709781961956641572546259949864988318225458124355378744521123529853964473480258594023259899787743556806001902283722408657823825245592634241511914463018515540468497876889074360216070086310214081224726478014151699299709259010003673287817049558254011727681379959815785921543363915176072532388708134894604228690164261420372103242315402379979030378939169397417253074563073543314162269127960700822452461375158065124914257833200983245893230551752430397318420006207725618289430712715405388301963473882428122682181525062881004068195759896778316808818156916845740678694974351889827417748754113150954470604482982956083764547799394841974228138585928419229579117904161181538601692770686521067332379647017785223508566512977589069089269539997013394757764044413817828095794673288343661492425986453021894412086595700692340614503669678828044485661799275297924598590112511820744959579643537579917535290240866146341304279491716768899932939422229680841742940228613534732543528626317017625278782593917338771595932000353364794156073158649113394981710532950326229625951052732354184072692462660581453795919741012005558026105383024047247051357639695944212908253277183165371867081152211207809068167083044042335110576234504797125199512165179493665675196715421259615663663307516201796384453729756732835574072264048399968534336084041738319679148362643768852210339986750692771498020797572158089501080541391788236436578031472463314874650609020971014486201751563241339504177215572218391978633564582854442602073782755779860279697133010723932174182599060848073970678307568665656047377780119125030442866341753599819617946075378657865761299553555619810271315427369971049652798467863651337690343914401197056069277339869991201061820780832088323890715062679566192328850989336919269882377247864730128667640593102665033638647873938158461486705220543364256569252880877279316084194298328413918978221149161147339495510811346555802763547850721601940848625574227289755616415781392024918622249945511551602404357235830493425115457182496675734934920635684406525980860909880729686820711982465442976440681048624548551889997254444954704386994678988541482630962436405184662740909948061523071934681331610675965954313233700217185209443815831338361600022375501332782978288390260997379423958586071139523362402787293163368001124096020204530224392813656590366356453205007971010178812020745491869244439328711802349822695705057963437950655835491337413549805723947165439775495381453919239627955773842984198454162751062931867106706867675031454748210886907223215719268979402633578041083450569922779523090933770586324301735484818244433648319540319181185785243617936080587239983644371733396442528030669592871260204396662698999325504069933914401314774665867183252246755058666873591837122707057592394767328874241832321430054679757753401541723597031425380090104632615543637358638620934505877338524099018319750302510188600836486566353276947483565068379573165082782430500630516280770449340135651127854506645747572741336138202963257545283410737025859362532289709016359328821011868399296153570613552953426176963591353978342259398332159804311686022443953500331773328802695038187599244044277981452465331283178194186923040402038757798802481733821093479793198651309461919939107287329239583468856383152281052205208440667886741132207696494751827879678605999871180082998013874045874515458847485590621517874725985476118520563876727708442452171886280079503103590507231327975543158829157564939249106095529194935113603383945811054195996301253875301331045605590782087646936379899745735991013047220641691021806623178845137675831768934061545355735175639775844320588687336885174435417822053959431599866275993871144519167593238444948786559747716043817301253544323665465716157014604852364047140599331991157804094439125869357376117739835856801992310793094293097990622230706103754911567058975134962783238079627432142207165212830130088039342413985000733908867996226562006116152893593309803509865437925643331548995627752256914433171383744700308478268962835177582380282784528555551708834574714082849232119503737775235358804428387933394522707009392379712350340587834065485174561473440993561113569914467938611637689468646745672075725512445108276963361609943486894583318518139109665808526219646520399438665949502215876580480507715073601782953303104174199284112408149687449099856744518346163891784736957403493806582803116475253713245714794620786367546798353171296562796906262333744034867031533701054005972243088573730084476773326738504543686317287473265011785723427515168851122132002986658795506583475619486377562501557060045069664982352233399792360744061416565976866528720580139123022179088574768637811761669855309485939895645573981508619231246977154234745586562041933927535404570015834001633232741673148513168079777549652903869977943180336029580716827170491548637196258094447410296665620766382096408806676660640412948783274946338782286321126706886360933193455589414653178927757298197027995421423906693217771485730364402498029127039747096155242832287222028659240409081820050149955477695712629142193938044966908212956250907256026533342943396659429494890280188368521556482915241981188206863295778749048277238940505327694340512286686649511804816458597894785044374725570298518467184362304814777000846265161457423112256798559102809856435071263873804542585424923718388727602399725460572905616975387565670026127429548702030231262398175267875343648820198866630994154259205133429719748867066258637830452108773071758516233566053147713377910312487361789756680606026379419746225216313711950528833445888857045968872300886807095141953311058842115319296602282284990549295965711793019919651729467906538110806449122246226897253849165896526229512718976230437196582757685771625658672625714496057520327059819067193736472479180400349139416119647577716580621318173878872564287474813876336376108515692975956611675381895899519038967822972223627940955088784104805434999140003609354803058657601956078441410610933992634279706213790958520003184454402308148078582714696389328843014181104367345831469249674330738435922981129903471099240649469734328424335845286017937925845080918836769279549182881052175218041468187955844270061512510868863936319604465859555940964801182069459535465183602955076668935958740548886250675893835989032833807717164736556526247826225240671706466949098350395521184759850774974030183834502265570132942536825740114519890444168308729621292922084815800416001819346735122604696348240265370382775888714989722500837819460829403409567679206423578842266654062800646673850972532455884456925914829605450706580160842457187309384739428624410761248063663057395849012780975279775974222896989260191044423845617403562070107933303625018060918392433074954130564768519234813274499431132085516520460528298137144881293498868325528353609558899560340746229697221275534591348753691998705914514524493592444111851561974223666986290627223018292745834700475830011178472412197350343736922542600433851426098118970449631413515361309447248011114448609583265007054410963466049084494046425608274668235593678187361561653509246450546472665029697525134781214883711370465253911979438281799010072820699812852383423993653641171554793597849341261824761138352659898139420328183637982025597521198496402350668873007911961259474804111011754031602695072280027857296666194409598326346833154945327255136726934551312309191941475249222041135164606330875380026744104207198915968303826734205745455388012654917724180780716536768630835951146574053575727008487569100968735762039187245012218553964004728850780536264065855001570095578319276606774378167588696424688396684364158235879252324377341331105490487317605242080518260955544351571892551339983390816489101095685424107173289892821340205690177386692246489332552830785095262390975901732248243201853754652122043521714005904491684867880370027180614523841143562181737323370807947210514658181123434128961023199822848595878767232808926011124281543392513497739512717360148753615798998604574595792985609360496265761712594331935408799029512375389254123130088273022945638304274316830322714793208908693749211105304663430068656802475718642040300432544484341470431414736888184820552452272563331069455552758468839472471769404293008839604221895424986730535105320433010949983744432670010504629722473954308767212606165235729530108728392850905539785216464849967468312957061269993133782925776262531794223395622150030776192796012609421018470349934572130115197819241975767860127247093993193534978040513393035531156457683669498861004079985260024458168328193022196601561490172134007102419612303019315212787368297973879476788295852547572758292435118902675676961984335635242090403106923721510218801099853738325484098042359540758445391549224781658713018974153291325107373648018447079199562495754713000445632020059296703395907616872381944322896978714346313509093157714217266919317727543714898632605181261827453262947297827392777670832886243097458181401336328613799208009885909287777885070382961872027089018860506127438379082116416347242561411969531686354348466938567438613526015282344047545581999965514206856203136720271014058523738763368816722261758674346713796879961747114647821900360576194785185526985895776284531277814490062540569540068381962601373785593356243072741267095987402112901879089832881684816555261746502046278364185881672480915121725071716398065986660795583228215676046521076146135929758935343932094085711965003453101100638212057494024322220162713460497661713352657434625909934538683450172073952729761889361470173892533192824080975241816046781060554261162217057277924059649393511897095228716753074624409400785933657457270617117867452197958051623622844049832002965736852734661427971634802349044790385975711144123555857259981298739247277686775747327282707526978702373741069829559337845897569865888892168973773999088711225191018906588310929209186740031148885985525791796350470294998338004354310363387658498504346229793223878279170220378997066538338058157579672803309508485157375620661903379877856782958929401460178758702705188465956816032582327952407357201907732396266223472667260012646670260462066060221017950988004102510801986163221569048850831756592608002705539508969888538068672857509906853284199482963182261860977904514734371435311937380380368837422595482007619805822086493860406112108900057214494098938566185346726840791017612292298863868194103405682740336438205194618939217441517407197774296103376707150869903647993246088272474746889937042261321335842329722980725281490932931476666856881403680893420657507585519444252778761552011598943383889455798416316495466860535709266271951884698226763810268964760531038375685857019118624700006253734768720405492585098934235685329252546333117293187858216011445480047608632955107675668147163401481724468103743172021210724267397001067583025900739914939932918024654210035905041286493756023873920777278720848777420995586895104219113935315662464037385203428826842828699027609496582798008494491359967402372024945693033321354299700232550598413728292871368310388409903067827538209468253842967816708340782801548135001959691117832309674027144601726188522278244762883699881121817474786841798901562189371001798376844568750105813206372558975517208994894450132787865122761496005412870162186457485777260452741472180450788081305319117376859500888970877834689204043729094957286132797526990366840166726889484751853014414950517606398930037575317218708422986108475275036685701867386396774701880246649066558165785701873942125544820638579694502817934534295672719407111145700069162870277530461982437326484196885486879537220534442929652325069143826007421579617969663239463756303870652096355812223573876711939581467690881516273552762858042423903313291618843136095551637076653120499020281484170031951350233298655695282343728590411041872655872026908768151348742899918463171091442555713991341927042176350696338052264033402444486505299146309165361893048124622809482218524889194854885911168786755021964730564036544402889299807519509195082270875736099128434160133738242587961691110350484868589380068032027624517476961643969960377015162438566797453253595269535245931786260057029401071644219110350666721800416499567757087612784265236101786462430710866718870196595057352336210300674467360542429791456657651845001554318245019060133681582953504423122531839850259318007782391030901486845834837035897617476785674533530461177584331246188942535061194752166721873679619655947991944144756446052747849050941310240092158733170622748872274225628268175599566667861534504764658248369383156750591043603225580083714956873179007973895336447588447098798855046846209735568548141920776479734110419890994787380051699534922205154732559354951229405370197177581820260391612531438948507608552661388833697956680297029218389946797384608797921631930326967671286825004042143346919469700870846098955919490147188241573458554154328668997767861365896707824596987354169171123541661082142846927914461515126577574681659614153835254276695904023701072052136963060434531140177003883282320948859927213795171505204573922759379610228435778798309020074751037306315134776302936986318429062506494702370153672556124400619545884023458531972777331360279832986021862363371847866109208692282655944553166295975982737505498189020261487900071705562778360987343940401741477762077226481743496435883887429229316131666233226515659920439783222752043586206015747913821870721458971963201218698129824659843306475616332895146733339348257344515637576274050516437296777405723935087375767197118943215575577695414665178245890094901992195686821542185988848715943122855235743534861236842589810194000116656316286135294998290029154560109194841070101106416682181742604158727046615119290280018492704488248776297228325733381855137362309644492346170631448748829886391800418628359888438927330233014439590068436808684290457418931772477541627016043613670414436786550105628839181974531837001742750639081086235041951672915610264275226483392697007950151542829389997199114436692690047204963245943431957669499092340362202264655779585644829043593653230581400845727348247745928555666245939981647172780789826586004311005220068079594955222064692521509011902214166477211451128868087207751098345147275559637786821065193508279616563241295342622562209117645733990668865290119680292105212731490976821299434196251882376872625452829757121649866604115824717763319889066377132082876153216501147307176789737709333499762249202509597254906275525871428637693665882739995991007307540626060265640308330090152100632416634707967511076361035668468058867652564121473833472441971140002532502016953222225468937826020631541374217737809776509446069067061357296194132912827768778963703050924855985352364195444847257915084809210154493150745499834418729479039360773240948833178025669337476364303022777412919178532695197453161499175499072676939721362837053882904316314432878020958671785799486748539783387818731294206689050038120063559767178405148088511227159601102882487971089831369884296546169477021731485735241273247895534312112736866460328915953613276338800310356875753218028041534577235144283158672869572617511237475935004818864630504514376351710306756786882561359918511103383001874764290189849036538702141847945761909366943602588763327959126667662279011021798181608602428593655435631510157540497113019602741079520598212113618757161463237493321091216723125664995376386886983407985491541527318992859395213232942563374662728243270157534525725288244977798683419556163792068341307513477859707421440962989398895272222601154853944481487372296760624559424747340332116102493695674751891331027605956176845183084034496294599358985951357424853394628590622707516926941927288427368545378907825477899537079341730906527104616497789325143828918954516097867471201437905561761727713330539992103250862777125634618789529620346140885653985378300782634993000459970690426564989915904231124219284061854711138205874081289501658791598660781350969471156383499957757566903451669580095434888610004206078261041166554941254159362245981283945088338642127125022896163212460469370036267685106868753103750887375327510855279355029796689028148734800693114815634242010895847482343680349041127051913560511811898561423860761588577418074231945550284396209249525986418544735494680246056482619610702173874755537437544438904942887158640099942321357401697538588437686629814202027829407017341208582268508356509984345303615075964807904303272972951586553054513101133766038641793639430940606685674997291465362651774706645864062867566130325652341910878946047453851223332509173086578053543509404497858907046638707205470719134192222021196746299153620371290147747056424166240653718002230839749145142926751781705171515256531396942259776834962259748190814570921938944406336816184821469948620766708883841093043609246096549143892978048735164791699210332865570666923008786783058061436812244683727034999877965013990485427067981341617520748934701200795861034088545217035060440036303626204111978450853862826942779605798976231617806988052570647869710708113305937220008881818465559903993586810042611706810535508869231029702764650179372478697129157095253051037099651058853806510002179018678476216617062050310223642691260678073175598818009473631065632629735572778227056458256715004751396866336878504305662719538031412933960587231262364894373579770503114491047324325522591162750808609385786093631316408902134720161251155057786820570733572229818719695591011770463134407132216588532675634066549578363863863627119235442151058837675132408919454714204113139170977190243711292910838439893962168590472338663934230064048925784476755077136791201725198328751629443214731341507316547103183920341254403670329243236629644602365977245421435629370100540664792591239858637600116465603459667246888673575705268089269945482866781054226875991405746754279269096628309740682274173243634288369768939881848664591484700095301154885520568414743166229081504161712694890059650386233341339855364892718706279888037832540761808840059186948030166057002656296245950548550062507610590342793651719557298455651931611812956317878260443929264647617606984987516656714652520124377844323201515550301851982341155894014429625294258207113248174146353961772413432358610404550653319848385701943287186669969532945490056249714471914790611123993393083389572531721355344975391230138082982573554622240943524735219524725930962586683538145821116028175349772043346907776770644175793096907214356819712572791852931366177769545592689667018400776086950324327949023382984607707713975355428898214737514673580350378272522346220216457081188557088049430447996592530298526628050388517360635489907667799770741963436869672955589038030258336388591514801134080552088545074041595271340068730958727967538439770484292799902336773581095151525247730411862440156922103124070997687152366741385633353530049888866722869176851884144627144786030145573040180971760468622459390170428101168174656700670702191866392998210980627453819383033238381956157544245247009282842019633270238881088389918440344489727114734321306420518390109718818696733052245733160710919762550329996987809046536914259482052170959723576370761968784006616754393083735295086150787974595445550140583188444292697055501723044249978609350936891703376738850710649633937903650047268399167109013322619984543323834790545382835065262284458764602456760738745561170535569999400102865329011222095051475290911952075658576892598304769042167325764122412060955140940188549410214410362256265359562309005884026117762399532487279498573870190865642538078332831127267191237373433124867693345425363102385133875538105013198070410705350227066823885906852956234227854935185256983933236793492333999843703305461200286034875080305036458526891280097821653869678628103198927697122317340911932682657110909260376478976122699690809967563216262460596744064088885852338766604458395394846014867486448075226119788217913225325402641954655135644470048931017709377117109470393810619126623991091190866394944574707001181686321452922020564139999293646875177446859526056558324360191370334171706833371986511896546402965769370973639188527070417256657993108380863972588584469060690891182307272181033039611664569913444197110147484987574964955143880618000708100872036295075949812699444595035437305557836304073025067545031701396475691381207841591525608978536050756218353917202702819366597264392096025234062876165173174626569202836506760466907300423064189764741269028382653981577293040720819012644437167152006817322241784437040990289127266957754438227091829564783331799726880703586120643103101297331829770230928316485999390922099552429672802410943634919970616165706456709717337775380345111774171649529069533572010374774596487159711780587108231344936684353640808768665880755303417053347948971853580453198507601802037404124839781627507904662148909072400150040473549706813893894519272326236841713589908090198766957534687361680794664021576516124077318497217128238000034181057020235936906120665334527201371090727486518724995839977909761094342277304923586445856808970679401355317866690542394474805913978371352989207144209156506124749436732501287170760764214650583268274902556910754196599581336914277823353142976145061056422633325820994627849726140668513283944021604045154970055503687731910021398494434510654517984591735333330934175088447040319869320540771140242545461883346787443769615298284813455758562436606618913514829942141017060793873622522300652118295493076077992912428152968454163437104465228266428490198759592506703178994693130943144230964681410838265763047894589972134753941244274742316163666561133794560652765002083435470278094245819877794112328891563305935241834487196024339013580555735586323597717476454483460689887023960242946107966786483376327738755816956514655465236576455849040413763102810516173249668970110172426394073698280017534010270660314294606146489807527044073972905977893706098154728710292464547266225944237058418892645335918951778575107102794921758207546221693970419588112926122635608931038031759201286323177796127328571879764404257700197599022795477015514753870951288272582869602849006494463349939445375052559639559863994988397422229656993129447253751017781100145313837514097649950385724710268827684984156578102454476489298833439186241079195347588238891181523759288994268485905304038310108297453248359027369513678006944319259959424577966960264872597534861832381087924741691175460904106742086595281727803632311124294772032502581844717976146221799281631479004538930451758176712049087417600360333389556666728205210145077569515327357566397990530941403055687656663153028942904778906674165307789371760398973641733931103898269108756950566288260661254382825958650417144933121175173255647351899106973457736603487990318088664464621940197315822348288105447090048516201546880532780896368348724968272879794848140787098916487041633365217816007054986732807089554148798533187224619216478946689899035586201938995504532755652349927692640129073283668951029216821102392296060837289527607567976937951631691118604416526390156635558551258221915029836699249883052540075544865325596891094262328265298197670056950489473798053409258503540549624787648992769572738396358786167060743480323024787281515680450727094029241346131723503225674445896218971374244444401463068708596367862241294762703879911864173014945512443707012439481091282468432954226411281293620645640331413767035832828071989077926077477343559640411792251812182848047961981452803226547093202821250096494358410408093557649150592236675841558494705471700173553123833522411925318311003078445777578841365213544089888424231919582035264871649925032032521768829685443492628194167263373913876689044525572368752669294517876120206178171497394286956640270135770613384904617743436439240496973649376127730617927675061698545007337089220797572945253081620379669567103857710673958958072001963934681323875385272917583044756036861886750033674846803154071912702600908149938826541602223541448952123917924360630645370940555215767846682217737942426469240769282922884488017195250582465031918310234788263605851778516931480519283123877451019094719664087181069908619017743680653261186604238778767447185314678631996193467522025323664262352862897272956496051684899950513858344649038617050274856115670348357673251660745637752940474726331940453633816755740193098134972542749013125188005287491498698665326352146520871298684385959080029067732788955433934100435543662403165244759096689519459801663027010842662331638612343757170409624015658155716229785476262222710147071081765458621610979175286458317734095045783793665551153641760310938809553910117446576262863038670708940092924849839623936527327645591504735082951336686198965275790196918243786454877884823198741819789259879395786762461810267023250332746353909696800270192942671065360217259526501578367909614866968887360601650278404466306048419335844320819540779845093809760901997123772992728473721812086796469000662800927420610921491667967632497266424166993356772924752304296751226142247765518116884195270021385734634172767670373809989410355053295247179314761994526310436495577962994876963038815240193563575700824666616232022028053312236209528109980593202312672026341234491053892683530098256089122382743910132863242978797227909909576237347751711067257833837927138973760528440995736564347730746217388668382159599442547880183247249876034853782335562681057219367488294473316312577385679291620800479143485757378850367340004414710709216380565748673895318445023908103043417854298581953441006223429399224449076234468763921364680633864795851027005126295452838141374004367210510466880005041633360254935066576263537671519587415368145569801842297594867638921987194407540969067224586364179926121037667411696132446752358895064019845810100625764132053466757921391511509344945754326843769548671077206648619102061680448214149271898794905261287647397818127023560855847425463362443633653598226445813143451068548299308311026164803052449648672941428030202631335114741341565562458073157308218710252060292789012970378906973974088851813302535417328094042635515550654686411388418810140383565198255566177127594701914800496256711505730467590637491218874149835213563604334146873841606238038692776736768854071712720474649243738582529783380820307941046619907648941522597385239860008536288393881075496778663380107360404551425992406849060989623111089992518398569685147381295469450225342474223233112829471643683170716272462832840186392540503684767017440102414263678971450677508333756429535544487614712339449124177559396528872350893105015188193168910580815015733944532912176455316740853895622632954739842708714857710448750195325471673765124593165733249153405324208330136689391329252594737616033537134759123768568348119756495535885039224737801738548207415453274147911139779107422294982447475399532429597496095347746611247840478619176909322818807955582360513519001199824351470415999382293270556873542653894787809941550713237426926212850423687573374942328947966547614422975004085494498884877758699931635803902763123825960673842625834140864515889163176472366758843572861327649615098582426041089538260302297006056445040501522257505103823132361171824058870064830272030091528724573425725780637630670856968231136299109971791246321286472065560911226723473927166543106633773814886365686157141718043410032409045813758255919078003023627845593991097231081533020415115193558121348630470671668719638359758942436641859114808268758947679595565137483503659996486116759650623953424429608882078461549745738053696168032732687904279127384929121511429382235817393940947419395142909842881620533248706983362810339264217727843848001246111049750007650796356619472360058067634477910064244406401872869750031554945138095132590295842273961254635734980204534324033400923498581476302245880135013074263429324192257453627795421938018518989550221193693073076514737336245713459461485732067658265686954787804690282158166465283212042123396850990470331625399680288010925105305884745717020924201084827885024182857273275571988220406808159883309856217727307826398086022104762205910593590900909673267161470848324035535564201347283630687144500989254826959616196313736018396962196001482545962647230395021388682717367669266992286059126132996943619496454752648894628779529474491503229078122061078630823203870689567584505914433667243163962039786129588287094575604409361288586280911942973231383138076658934657183262220023792268050821404234405145834900593621844595311478941746115555098420316140386909023868845517841369916967846686763414222073552164632196898241222399635733666746189674765338401968836613457958219429309177545003063216031954122208340083043595535458194403544536650941060302924897191113166221475692545093682855057687217989211484543611457998805439369456977103980738153306711916582316108761565224595237644912875983094646735418330617734609250219985142404496391626999711713520103706973027233674380038120198648959391940849741890063014398879887254679791680348426385389126431576040682390645308820615721739433234971140543738059505593977657850119258020472087316786493763653157773667847654467780369428480434278737939900902033654020653668651203005547284347649383491363439295665349765571972986215352480954797131503279952025550273821749202129002622365797767531092012405236536429394860719707134923533048305089319919327034603764712161961889555218437807044033068841604088718339252663103282383319999710414804844633273813855900869846336011950235324147402079154612555432248256577785261124251288285507538441011165934151761392378688290634124211391639940402868541463961005475572094359595334733536449864231658103726173936676382818820079120385152483688313794663693047458980431926917549896766680194407642425077628063819982420076120972809082040743128194094227304072727538363503411665835678612732260357694918813442001745831950473924492172932795223955738988738770207038914685488058131330746575148057751842830824123643607595296557433137444108856262130331673468932411842273180533265438356460936380187656680475497648968905951261111539229825928078792702268790370257929930734488514861470517123170477602381548048883095258169955351113785965534965440939641330982769402568312369857316829820390592523947160539930245540750382294941801035838113696632165303804428945157877596076657621060823725201171733597223266202722507859500157683077985136537207793280810344337818434715593351744168268184066320242451924950690985573612810315212376341345837869790539903762145100999906874268391563485598604319543398563871794239529526104843018662876432639059967228964887712265973830848630422978774753407665049716899712597311439229720576497977118889388733623754555131255039358854957574324821922590536618794116263612923789625121485175256517424581958528090186862343119711290823092407709388811779745378520420395803363942758343501686798912895706888168869427260460343997709173087977710219864657486090045067152702091879020304710217829805151218038899963724233890660965734332831598691731489029320201298028301404336843254749487081891740579611180622007944454540258519229147255320986112102031629295628092684228799810207142709982261125496069269326832646329122599298097031926722156983122665761677001187448802992639903441367129426360512731711544982145340318358895574378106130925408753224833316001648324603313325177544576706321918674589750915491403267141534013717036348175060559471073757750760258559002637866714713155224832809380915361847161554974765712280208480461548791596752046506247450054833122442995568465618010099652194996900880660214943048761224784578865755755531038203530276535136670986223373447547797320752574540758267997891117958706687762217973334937871317209715465232940280680948917325412161022826545069708625903649936361879004686613001225375244116682626045181681082085339697684240614423096083270785802286601835585070173379649432266010295274019339807785533222372803888787079293603624920574344777235103173501177880122721883623873872546791373150304945745612135083663183648215755953397647444360426651471443367593114799958908347578429211557284818030615141459188407107699063136178628171310755839938837115608193007680806389595413005373458541698543961290189612246933265834349507934340776477845065761498798162654712753032281652676436979722898897806737150450632066630142325043020214694910818320532835925125846401800097984292918064319001869046160891053938678893366764329067807147477212208485140443816974578537526692229948328293197593270366450971117141862749810432962093937812935856192603083573084098161075803875878294555233641106239817368797011836752330534892573882817460522252552840546351061764318506771700982667468208856457386204351445207294112286798364797890619617179467852669269815409427677797893990386408490760637631029185604184774703238006848442087337755904368174149818291195059069360422051740436651693633205130434778089809762176799585931453704530781118234272612282928552690036103236758635893653274308483823933526512257753136062078515016456667403943977498020382201720379883775616694170997961590433665148801742485213143798112182224962399935615645578076655443104081265983156370771945827080695758832580367755854186498100808087129846461413863346314621452524315048680142959191188487360368064967927452305386516844081936103317999067782167240499499706759087659305192261015281764198830279361352679232190154385865228804114571983798542060120300124828212896543852895919966871715920098369840442937478567665546063401040243572444519503881077700710529642521261997683339164382387445727121129915633192263462398778029868278846842025992031108591553169352892625220538303623700871332721084876675223407963521673476755242574667477737877264723760651776638696447868591228125051731611432948771044201094461873527129842715722852594860394528163701999341539968530358339448727400260572191363415850538062574765524539853583435965465468989093884025384401496650762346083952205412295732831701547402866429626635788069836493553951060179289665202389859555501872418968905009974076164828480606214674382475576559282302108996018063389666057787948007039000008609894821427113461496392817627972198040723003570207050035443464079692445145520261621745193274628577665305707661773455736964529880212905415596800803233448584085682019012362515021359432883177715410079016109811308733410294150760353436563594095598097952303136760951330509768606263970377109291258851230402757556195864936122198776690827418272135722182062914254490327976399904667832783287701116686775905139178767275893397250238228453054850600345238628368552399529806530771735567239595759408831419844505530209867841444177088484661685413781352451128192233497903650286306172822436734976604618298542813707079644111171686105770119087532970011975976013681221851009499841111892887111562216118644918800631491201062755865547849515679885015014048820037089733073978693144037881592467454623932869577641637481773513627208082008580688375125901745389634537461670293809114112100117916051489432757724617560147983656943093052215497629294026164132726742387957639482482441220428756753157681665125505938291421718239522901859132311515617012957055291546086190983670422517571196446088849805250632361513081819456547776951908077616566164905809437343169039189490087739292733933966852487684420435787293416327398334393849172960578202593946634343431662185304638362478696302372408319329466718620211748496713227123795551283312588145952606412674362479799971800289219467521404008434584247168577810389782743010551950426773415853181450858335705402432516418390788811258910706927041524122030215352809512204121648625407749695363833261473609929945271738753503028606448867916603826236332255570326666846151815881269706177054394309102644497464044952499075747452776957416873784862669258880942113984111711681957717146402152299782779031623610594440561716322124692606777652732930253619462233066790362591162402530982194033881597807978938222545086733050639477072624597325952834410674461767954160229428360733660711038944344718418533561482721665455047084744582744747019276633412606388812634697127400506729777437506339165061539519806058212403833038600539300639303081368771865283937097154090620791924640922584106666933351930517942415572975593570720985347377892479917541701594514889541729194068916033972443254994958623904789595234239169151152646145688422740942807951955480820124237770069723547325813196210324753587718803597215714813149040965265933603969538272628442521536682995420534404846321722940097301931126962125097700286950109266282810246381735735141494795074225533067187121536549186929736011746725489442425690317410129080616857084888970354719467192197255195940275716777748249130744000858487071003793779184026569018946465474808624100442855512920025176333409856592072502434915229934756967448566290047929190737730797870136479528340158999897818247765587761939304705735076920062959495380688886641895795070364438949572968788209718471329767770346641812081874134389179120821409055843364659620098886797005084262869758083416912658861700229670393683216471844927369521938949264773291939512260144099327847251378736983745939692292002414128926691171196504801561767554708347560447363934967954696151725587194195169937771621285170095481126294222663505944646919354069239187824954670590472033105539141275804247229472865015400561054766423785818710953192243457800321513303783850611877826824903590227695642078671434013753825761447812458557584651876709465217991907303786634838323901655327952476918501598205401854894040862683348343323154700824748043404480535128665433591960640278748531143124173423038718262162454844020997729679379200765021480244207021183514418864553644762011694217882099669979822730877368014057714688360121144445526997851311595329068459525310243424570855672740708522468437570848045467693690544432792505044586546495377771657300253148531254483161814590832139571220124540289177974762019730401903500296072971515688854893625445940055687901952175637293931654041355497527120718618788205033837603831358095865268118463179540090359285901980032932442270204216593197363875442719221134500062868641360051904286476125265926844857362949362364257925251965630557927772122690939079265355388614678726403674390354516084321380716810830526575990783256671291227308378069072152329800017999901582176875329158664914144033264389951855131097552027641716318472387947490720226505662867722448683397815866910293978359545531858011752699631467921199471644804900945345174874978294592868199192990633300245373368297313479816683876033128124008472922227655751652200914869630549777062951951572252577500185230513066022801071970313438451458612974619997428142158895988033860688431826882743637845008763189859373354521404176153214265734531274509641480454924622402747713551730956322072811843216995749916967578115307931354772941351395330588796715124355753475591242608847892796173725553879087891863783112078195875262479658021386260784297377037183442867209717587237939731765580808009193723044392254862504586761169406662523870409329997926749383064139800218572701027058880137210169942181222091501296062379615300843596586016781385652629077974890304913758984609602955446873192852698194640430736058614968499087794861557038092499737591766242264132551901595945793504049774696568334283925283813746161444374393282057311495921922592953974189270782206936500735038386055057400754280849687826738145364242928857461190500746667807636268475130907535933806195405499810796040900062553002946256698654710981460509278666691881914080979117031712193328233016305739165033721467661420508311800220296198883368754722760054465132848017603420907760814510940330813852026861545502795994342804985072277343404859468841155271739053458970799540687594927212094733546686091658656605080169027732869897259834706714154950489211514301784414258347090022130512438803418380066838558437689968244732527368755407247591803382068328415784963387300566736189833365384381449961200584360940709029901599743227384646572286242465862121860737243939073193720814847496312681561347482949524404995361331086484669475133474290695193888635282275059097196353863905677056114763516577451290306249356574713079479773032125139977986699491027515330096483593733673520933162938183256400476894582841908691774428000952731577853774210169161327079525756766970086324290999626500197621640991547719458820341359760817387860055007188788059610800984399221544382455718329498552400077543210382817819545022922806176153660212019801835833247963925790265652181458669059117117173515341971901903178428296878425421124733092232475890799514968525636059565596555751270014125891211905614783838805684732540459943981749822052753486388920081130212773572582419387425543851364674358493030468337697986374656496848164749282516356136002185271442288723410135266374142957589951734300980444000273256600123384842756895684686321904241816295413835496463035689502893912087632309274974477741323238919722603449825337726902871445032315642762128706319068187853734145501437066183234009197357629770818083224346217508070076628624535262137096366743409228718146815614750333548787961881459874533039481548324366129809663398077295330018845211240610965215907138378560933097689286556803451245141959394936635557437853067200440223026470712607366050246335920527099957801693286252644136259532210971239330299151332813221879031962274794388440422526616092519115917793144235450842906243935862730389320410092354408770970715625288558112356731836619617587546518249217609614141895906612196326696511177360168058645560255824327909352138122525049884220377080644380746502089674185597312278490899573144356006439488585037527542425196571774283350783081537203071168592735871207931264423376074744684282108615916990685001123106626492516165301824585606640190237421003860464977058520422968408188740357721953889337123186815003380036653591171761468205613920979633880718308454177913410194521815075242445611069913431711804089333480640398434238634671812149034605949078304636079884725286968964980541969935227345603481272172801112908338277690277241773336104642429102190674984331374867450387312483954122201309286891174848788165306978586375237747628800262969703609275452765078762054021944484939693171309754852554432080406515991125167812186097850382741944658521375020695034722192438736310837211396323914363523141143983061074222480058359278514238200101857936635306774059080234630769275778000940782626035810449560935329695977954682967027321024098917880313598342436477391400471774847387582561045125986723093698043141897776673145060974938641964586929893293673591790067298987943051698030035032450071689854771277908709952705661363323152675628361045461041858735672912051480344628950172218808615641707727159054545306332523389883481517603827552666968712351935150491995199281282494370784468230685282800497880597394840036941772143797428711429087628777702747369643619786986611768485871023833269294560172095886008457668932457357857304754484030524907145811817952810292884195743387274108507795717817103298009221857428110902502810102473269526115906348487342142860130043153858315911360963455721803902621429331119188805183778745880047814540687057167991521600665912113633315102751669821644959015887746485192295475576623693493185463113925780239271280892594040931628880874146101620816240367722032778529515331622190420534218922465584993680570524561110623623838008603601658670794240797965490790810793702043732393515627158488171533610303776243960161755495542760975853748176647869214681581876939215775163432340190802301406062559931687077368830861726536445777650988764712268821857738380767411856746971052579758718442650372489177111370270677550206215319483192843357393936892642191387204675428882897967991033024950847871919599965428937832441068307739909028778505720147623086884509798694295454653167782474444458258550623523304770226190904357121086973548110904648194009005900553014056880306932095555545210718319902535916697793619357571258302130512259434657253398476119997176218117312710385739937281860457451607041284911019398431412047399997475409655119466662178442869795440930317877011580436817988255761921683742276991211443205746879560564385846671241465286545409206457444847833903697095689336969611509311373513688932452869926597577917819149782315467938161758414518705108845082819166935751800091590235452191683584754768162674775031180001882093027117974433959523889551331971980396457818776770270445337376130807748552393994846199514967788441968517337513491945312653014988303832151868827871766759475084521137406065160183400373816164398401915595104923862402090128576262774854869144243919286897540468422526769712906375880641844400473217603358783772752756418155827087930985520789600602572239829156399065892285625332057110127984707007434917595408423359440055619076488155776560016407130370346068082465367476284579950297286723750389995003012241557509878431419486433233879846087935278792808276584719849143943179689465968229713265628529892417021043365562892773033451298044991320502899927871148437404416142157678577803138350119078598435828687686673055880963887838854599593185229042296136429118035203450538693374988963477095498853019730035097200647311012944918074530682111454069826653934173242781263626424655707897207478532395037983878726123735677398255405376552764249283199740705423294245326337277180990069116462670251323879521292784736662426139405576698349125343992310665645161684249958747801906701564525559085454505950957395579563215574924859430528120872462866112142840319431321304581208481594714398499174219059181400489855159477485644889780892155533435987041761786554329316104428540771639716182191965027696776462294231469210397003911594077432295977287409717843894203979982842623796962447391960029252304294379725058092773551919079755388591358082869347481395839726749298920403057263609229064111183831836301556035810358845566337433419758127544629269394032821797108221054986408034966139486276426536094725143539606998075835469188009359451000934767830643055980814515417109855106746680116971299854367161165513111756074568576503428084848346101633872688794596331625880191371463802305144183421834548557421402682886357577632932471725247576209530178299614999164835114628184882029158617357519744675402598043411276237749707493996590353228346386014751437492960296232515201332692561326822919202283174184743199171225335966210099467602235169603339533905134369384133629659096733543332775405910302212681903456792333649633134729324218576200057388240441448893923468034946781235639775074025284553992836613860950928836265811782785605284951551367044428124168540995079949902003702628149918749559489748687407531785616119272930148056634131161120120970613923216938140899613674948607450944013811336531781027420309736971566197252241365345461214090452318680211172488224972494549808703926491055060167816406240587981737110321478432652518708799883709416304519182887004350192129928231516309593310355999829012976014071830797996494573379135308939668099511823153945146523370242714648515959159718529429982612758672561819238715849107050733162969023885439809941672628060127351990139479387034357677279750603569691072835501817459837208252805855032064986096646736457384570605538314388022536000922325127323903167547736129211756919618051501833430375833815751451588077785608093083575949465210350289172376132041283671793237515381890354088052878038635948305787632209674194366645371108602892226410708771733460410359535859044032560675527868607783125778122301643441938517560583786530321916675361882327894897092931723819385716476398231778075415759712785978292542860093958676286990643219404806535838318912746542048942720069416820346318407401918955365870266466616071750054363369761357940397430723170068263958743192266709575222817988193990078320569601981031676611096516143552904396089997429825946236563419852972981933332561825965457991260688797169516570465285730271388606133918919330484488159651937080854026024241708771018993342638373033569646255071898718333774862865063209791151611305943559659074410416046231288966822411211698496901424082357405773953090809497148730008809132968079504382804711433291291901169130828804379596508050612071938565897948621374978030636181706017152338728408860525471966612468473860021617937489222379210010793314196544134951923806794738004596990426367152531546731898338835019202211604446232440188092072151963148635927824405032810924521808208462145136927364815503205963814275874749110475828483357897910297334323493842977433481766102954630341901719170082102445211628918548304486847340501437247848884101430319151637188010012135210030906352686191541588510670955307955167586716659633743279479673628434976505977408811491842328112446275209250889709765515272744165745843761912834749146959926735109351905083456784061818352557854900638788490194198368978285556735060849198562717829690159848316809274157337019693896304003298843708098582498026636452671715172535395301576737596863452735261214977455308246743394073973166433486578815911204817214577715609535029482366620033944427207694963193647677223337332400298442466199337965822959935360089055920394035872761131570697660698091008802316421571554966074487582661167100049614739967032190145643951979000531926101440203575298384814064432790890451830902598568335550385975102490113674597631285226540187085952812420925543815333572300087954006889152402255988894545295834493735711718326489379265399385173158290691584420857379142036187491087272402269762084336429085171448962494795671033937923352143481886816522349614580378660716373515079454029218303068036317399390641169224013124796568044993418947379765846894119149195012870290670900824946229469856869306293020276936098856525055119772550933233521051827639196775279897585705553933800000638333251158441058566698031657113590118750417561984075891791120107084079594108394292965748612000661183476316795664504143543574187495051146305455409783118089646781400559517326028564039801498490303378306419159727733352531205576434179159439537190171685724037330511214146498839145793139103680323330356686032808843463595557620869576359141517193931103339701942508957357182574162713955924716037613242503698093748042517091871137433921135470743585828830353542190223586302460837734192282065951439882403016836087336983869738825478037230902392773270842983955767859281610386482890682824101523566884536427350977298523795222699987813803847360276398463142671455105272873633667561875269660791650491252676596071646264215552959134001298034525666389339274953643697737711203073697507376806134679001140345474849549048996538685960383516474026461386009367892630624166278532108767415876390750157444106387673780746446915003692704108711417326820732350627038212550527860854922734330905164338195424107029250588555672840165465746575996616331612398731026478609751425746146498069365761688538990206259179248877994402837597276455639391463407787362942122187753663728566971399729446966472357608960329400495750066725520390452907587065699443499749067736072625632107348639316708073246103767711112286519107048732489470229033088177697250204175206697894570219079970483759539252745934600310070055018210434912659290478059195778423075332952907426522036348647437344902564972607083599295409632894488324665449708307807821939747445336848678027728445657077529237457509297903603471574813216616660577697090279972655268214126342340349440172866610747187281366257874062834487074291564007272943386281525259592317832591045644359239242176840434187285271689799397351911829755678457527412150100183648995379220027790508902793358012685051069486244171491105709047225663000410889736946864442856674233576003328277818494035767135901127201554761618591200826572564737643193249551305929041202671790710619415723717912837892474940161751145355231329901185083107099471539729389832124707468599545300391390150926755202201499586863729110350483052857393342024292716315690699565005718510424096061994956806362857315021380535721782844042104707636560014612125578543076526392278036282886076448589667953538765796891318801418911417402110625155750484179717100534635967577519841018674991901241425489203582737725545532436560984193766380299227961596811746935605136727522699233699014027216626461878194684388359725609459079807874386970570979131928371367155493739941352747189217032092049865699294210738223551174009719125933586831028970711590139117691544580323414981845253661373335885833609180840565749455599178971450573424200167970721565628595771835234964779437177700339068166903650385139683523014684664229248366984121316057071848244532674985630665369712690870037776998626297810857911305427096107214585797831454810630805037723135439354100077009867422984830679580201741704859824284382707849089577844726099662878096081652796601329348396620691610297571090562171694010928397468447742933341637494242638769070370171777138583016372827875649857924905977433219348784603897793523762449878655260556684715627192330857456855868469234737056413722275147711971612747657580593782423766374191784079843657903579853492194673318166517984306050565430199290114837158523099647962573834772696740749040635901646843484918719291340915591975699434049578359123414594901654308787293996762288966317557313892652876575504467398902055559759830423212345222071484578802790035058788631674715422359220562071749445906600099495928295972504237257323811439954955085316883335776390407280629500916082106700082441808400638601162988914330331590467910010526528451073153203628107319907096503617810931883685649872106663468996821163969484711638368028176431215114189606064618105719114050574787694195614903914205649873857380231722851942975827693250771952692101677529281654998484924302787014973617281382369428328998320311551282229438107553059647955821966828547264051773050736248639420570099189510553095517892837860554690726639078739714232474336543802246891449511900318743957894912487852072661828315252247510209101600305067293160691925059976357347748290132035204344442975477456889339814342161761447692748834038776593311468629874833014127516808171471528088367571255842512151981216619808524604409842945395336022887680492958524109716589351094829894667038833531167025556303325924998820195170092989559802026561425925729314674589422591144621809507668917464022348283239869282055188018219229834078809605571726309317125738583039038828319638552766739399988539938917015332774801814966270092221345460965184019757008861438531328877209723595429401549173426027434418149561644717495914432624806913913565188782918064546143994868297966677753723356602864511935329467760651653484920304576113775039224504374344760507029854766741798936917254629954310298345954340247185013918209044055336417818036296982436109977252162085474774774250134864323313372401897148426353094780576105916843529086672228122916344001867278162221814568764612945334362951667998909418676523779466011732762820275599926216013920594401430288644529597351492396401970821998348461616356050412702641848747553441816500597747544737518115181406482630931795549439260808936239131726138355369412346372416665487301292358014238071875145585580861636695963491548100569964972989754885845229486723370365518799769287337044244726889433160233001478350618733620956248216604725257001325427144959125139108675141995878280974625625371600590872911564867035393900402327699965935609840620524535440140167853875373659357857504619891305021090043279067855355637315908915733161666827171507072864529516134572976108458362160272906993328333896165828074745619932297315754051006010649087733445213518833742748275776375371772003164747707786381553027673938793337281803144788874538662200150608345178183610547781170411037302642595501008456411363658650867394190583967794504197846158661009231940700238273633732718425663442407687212173752127979669105955228866817951333911261791211864844376143572905265672945811873783995615623563542132541709998364542719807953703000322740194185810224482434780676142186537416812851064159022858584435932476668762061091222022826115966491624780685098912079155147105149140566177523180830651240791858640496416890930070258571416475420175856628406240414013656773417482380937069552901704641696409164453192485321423708960750421378610229010696023367525440580108160224880839016758068457916815402004614981958296554454770744964704293416922577113381477265843947928111264846288232578584197749548929560932613501053081044966218060772146049236192692396902391990955578773035886244049825525551368229829049138020492587998920197993028197471375131509091643436475262113678541631936603067493417807484945694981456869647417303648148551460680010700551213680149728079541525042434737253386333985634629058142549816037869914156552088727333048605243425726093487352109098184593697671432307311748102198463502668416755045352581054619300260769869810824903970467908934770096896152625241802719832305137573829803937799791381622931680426139265046714887049167109187193668071851042133533603582661773613888542429956095820936808775520625998318835634001249089872750850535550418976603640233282350460080584342132759618741688106159716280995102004893029373778687817285370562204286686793493327212945130738010880937288690481202708885377358400757299414251787745504538374709658720072971932062351362951746690250980018806103267857720914798164114524359559641076238774483900760316600806408665035515177386709598881135840136200210028476401459166563087734147406923376516973866104117669064103992747742087820462491733068085198565578621239670756060320542384840145211447300673737815842402630020754399639144449162176858255643752603097223349051554212163013812975119944106566644373852279998420649185502250097694863021354650901041580672666798283894894792598829343071521034759473896576672659385464922302039754116230598065959001257052586392875240930711491820550693188195467647748356638133963925458764462910897860368517451228041738783154573644112651921328318974317037764535070275540813079666010911244987449819535487998502036399876639890279999996567918687269374125755750892427654196177416081680981880572142496118996688372285705923417489397442822012100472619490500078943510263786326747130320221730057735916289173533588351923312028903186642037958267796003044828919524085611497796638743782348492327470944957472902224912917731652823246041095944289694133338868814230958289811693807103138519862293721421203857452876288972690438247708706883255065033901959559218430207232275699166577697917282257978781633909008776464068709949358798891169715744249342312051198127626357507632537942097575725221221074176658637170220724063666463085630897660877655093527463919324286691245721690118836193871871072658336188755127303148960378994351222254291669445080524076552067733305186260599517840679696757599831211204888445785474391650636156812045725327614741805756294756767029938057638363943922407405622345851661034191170255880531451621018900985201366574795268784277193493261700744918373064179903867264293316562404523863100251842625047039770705396684121156616394715781303394276152523533951848395926247349807026639007466467564675387922745363001085937501775011909351208832573875759739026447222937525038508115850754225848771419037253917095091877409732913462874216878085974681222218365874455294102794351680986029789579614955187861202531191522033885948356134240438155080125400419337246010953743995487608346208761191104123313189852562765764943429531894164932671420598195909535835423995639563612179492829485399687443426967584901780782863484342448075894294061185855367635429672652534887120390121350334973807076705486586528045482898842773403796218109255905685794272783423190248545170828934732276994029105903561751934902563680823048406937263572323624560695854507364059807228263703170875134447603043255104208355416300066756336601125529251940123401175004329564402167523689844155672776595055539742380471655753238901025756697429428522688184879446841236222425014627516929398758508543012106198251531913756361962399724210376064641234234039029275744874043351665840430981783816517329707981028351024032958287118252082080485680567168141574628121545970106851440893527635777010956517929601451646284089654821328394636602102463709901445868837021474730592050072795113885629118249997407468084612941083478699717835734276841793490210906781065355810805190087118322777922691607272837315343865741649996549972796068695880211762839042361884622810171215392115549949702506931196588264942837759082835955468047561336239388272440590669094192423015736308115283658028948169669362181583402219854672645360027943217504258471912518636449975467205468566676845153707730039264423802049045746742256654373400414581264905151601298511430817385588523381157082149022877921007572139195800781531780159884369038638629096867077281690640183348006131484952611765661241620447285251270307984365889495084680448284456837354219403460830712294058880580859314570713581993062699936748842189584728746097772156725856211912597103195898628494153022755454254930257496222517700367756112224720481226831117337988385954451943960962047561935621099008328036491352877422743709681399767211954993865078962665456891513296718315609101154177412316101404469631007513329974414160318107815735687244998301600177814299148846659860443598818857797365887044547637478044315561848636684318441165895396202881906541287030887910270724408171881139379712055707242467498125369174573901637107618364029758733086971496052303077595755450085637973851056498841095188320476174897886376210860998982265806409828783709829474387916113334706053950776380850668720961058121931432000695903943002273427393310148055875236039721347810068803676727020204373279519559111743747560126411382270115165830433100196227219578994531144663273033983476664345870677447097121663713493141298143240930925848279912046733134145614799728835193631326981585107737376535383851551624744469686102642488643758856782319867404984971397345090072336201001090612247610171233295930878173395797359241925501483843374247598004056714453287024417389471786918770038127256842455137896870373776281290647906058466245738737398695937529457694022064727537616787394703107399564882226340660472013294436942482558397746049252719999666357303860164758161651226126665525784511899518262852897262643047357023800719111704022965758899724879341031269978120982715415157106308740631262762686858071165278498816977004083451212387474180428541422539033699557767753468708196149515289258927636830905483167575169024443016645451335571957496183724320092338785977635636044184739942175625483253159697414845257462247484602066601627062726570522491496841264594081670742720856024052224479049876545099073034955297116114952725520419945223825467916775056580061955424251806516786952125097502860859531793148820585271342305919693774256678938026678937987922429663317816216221337801767920704703544294310361948362958248204575436804972567246353750392399576413263250398016582451718086930068803204717521962950170240253542489915534920923978280975389865892172912824226880291735421930004214500823590478731483781306015805013521835289771939084449161932044416234602842080283786668894160676476207518615387399092081854380187567175833992408579233968115877704517472073755178451449083766903025639099796094796386596769039304081125743960815137428818810699473935414833700819897511978161512086201374831242284235656078495455177004746637575547469677397618271581126901717391279371315626962327837041532714263984827707410823224645531683457833506398231276605692559123517230025869566913774316851719783409949622205957786770421516308221742542259744604731032571787429118185596126810001676807140163980947779265858416568485702199223266707783250754826587752836260496931277460022768793838851994550960819193413639990850787546801285061573888299695267513848220614896621618955708193660130828173327056808262891090023081944000589069010185962204325905581921118010676213852044120035325969403811315255090656220209992092230578366552892898421267423553434904842253130453834424982869065662494358893139425991858089503075538420787685231398429896710010383000847597366355224257657768840117053038280134571324186067320199396706355941301629675055269692170262989984676105054608301220820558292691519973010479671044260678202668758943134184201387880914008292239700336616685724889633244527266844795358308882087496467050612299848775518562845541387750556144588881311690201294105904043754572485600043737902956035215115700027513989385801558789489283501863012605711879086052228933387814460713815488351087477699523194602858548994632125020767177674851448196263060459708326578294831235587026054561877271842522349750543914647742476884928746598868314339388863548197658534298728352063605383013902097933022798189397293743889140488315254970242821292390283053675986795080716439646554553978977889757142369164174721390193609628700052444566869389930718450688770453308008107042993121735252912588931945569324852608180159676555878471178101321281316397921079967605750908845782709505138953636519860364890611878828874697151043756148588148470489876992990424931243103273494193850637799208945086838651788303080769802117752603645411516119437394097162296853263946644655036555310342976352230814777767114360574208240171529892305421451388240412141130881472402196139614855834346758839964805155873963284895034013759075203164274568115769154925847901341462453003172312221852823393346484450407939041037900847836681529465673577103585822616762588901514646350707435800086281734243576552496125701467208460668665486051534763081088500215369304323498944343224967333768883097054837166497050344543393294595970772201722597143896738942645360685440946386988022210950340026957093526216507579772067288121697558577284065913233112482219293947433380058157078198222891812286915359704625739869012731209331613656485859590918184692400094486544874954291474554925310477721386051101251453118928240069006952618616028034950191042538468935652708122238728618900336189203910596032414213907771053068286327132990599147181523617334114603201387707263484157207521604135953624003383582713211397171667791781615959684558347726754889686816896664890622519265016100779389101613672559144920875851038284614399347252563393423726260619184672862092018555771141610818372242440555759364898642403897568111433189348945440086261435023837210097406657242245818727733734265720922012319836327715596208176730319143024426921394789436255836300030227571842408432965267309801092969404502472552515567101982371184453233130807735752593862989077559416204888339558735916134944922985020239399003912118117718106495764154656654703530667884344122158374640138030028094142275771164190076388663497856479740599160244701202559088398745343100460249956013753661341000350502842881912674331963476615179611532556557141924944741504476473514474624603295877712091627290651956756473814460767491833024180954075155716876521450978361173073407351268945502099917062452581684859943415675392906554569053068605993528601013251871003420470575036439106103659408179733098702923666955855077420308962568160070064253270240507359125558037956767426202882332000913747213486750069796681951052937942650592009522371271255360194253257964571719741068641286476948189684525713225098858844185970972193496143175018151201647713678911004437044805542105623657868084078435968177156045987499725611450996056940123970403597370821317244305881421223357028325123002028048968548600640945194877012811673605499287230523198324344364599007309596436697034254729713462060999918906894368139820376187126270549318223711709670641555473760534505356643419576166690794909316428187641221358427600366420117445854557162415686115715507023493221751285757770506323722714313739808241798931508901205848177556293475191404435594995840575145625413637039997087045757101690622008291703338476074052447960679686507180843451698470096150600994477902338811067836261447759481818780484046824138733989285756595894231775064951049310415037681709615607265038897069743046968381926268098182628399920340203126282393392787170591627054949712679571647778150415539454315440359736449102531069374512532178108499900882767594565715249803316229320166035749319467275128944922870056431359416660775270232529119024429494012155677777140307644366082090682091714966613476985257553731735844434488086511159166655945562273654212171408932110223980135386734576380045018866684706177803918766075537460841230167984285155224887867408531427970656448481488398059039758282079141417863855679591765008308015056289967103604607283988636098939558310930497370364017466895842707093315786988693923166490355572219747100992799228849008958316617229721694187072241359589345670111976671984324103869050008273176098112627211199232563296895806839471459191977043049338143032706889124074514307927321827021942979859257916390922197595708689517909957293889369518710694756222993525994344365413302678421570324192808727031604600122259300804392056176660734834717187056993691797786881674478226215292814118113323738710408214615871993175347832102944962732240479748652667768464777346197329384374501625786091958899377610521853531136143034359026709195804589848340128795899819610247072803630454736640734858167634823646120221058919723625967924657524126969905453410633796100519426955588187126261313755470673578733637610483953530837105986437227450686503675715282512965855689667709106074243587990460515552105030206451398286431158369159334949263357179756678647572423864388340880518606066525760897110240230249114956090519646866090351076204769745629941540223839652366698054773885489851421689125796213029208947166844776406644724568738458250257671525362074984890783340796569094539736612838180129643128030422361849496022770918507721720535830191883664108685278999346304020016347936066094449558603171071211228130647796150233220775576750453229783442862735220744860156800284915951961906941924160629693488563084084464716116706677100153356436453898841041431058015417745163068617250762157048669720783526466165247000363712477610587759591120184798306112500402173026957160767688910636329612023141326634327955815953961453804962929394672085732178290012473928255877886957994286445836500743180544788960550745479657442232189230199977121858768118464821747708663730431566652416827507948031632884631462183342642154800157655140742187179448140191268081941212177583275545995993058655378926061116080049119582955344655202377575072178870487748447980777670331020693322473882014893265731342753885205472954045426812584746453347269013449867255510425661691154363696480701582696367498939670366347617710631317891753125007778992164662760025542543811963994433502483519479487819235289623351189844579739112333508151630294251534904261520651360935311153393804906465420650372869239499309500999089909764630933749245736349482422577564009931349944836356025773646186198816534046149104425733344885372106212962313868174428870934199925571692938256272642933869874754106863834884498006969361902896137489467311454592254387460138109084811240632442565644860591379655013773078168751904094586820529933414876858837911331417949746012704168867036681960247687629009601276785876679234167909457745344126968040138388647220930442662041239001931171987745614921838208855952936611579672630290544490264109179390788434494685972518792985432327801585330597844330011648639819799231176406308002168928406883079669323752178137093164830537446722540167928636287107709533538578018474622588789220944603021886109109206241028426313135668429193729726213655691017875122483893909760394355528017942655158621612530399936970685570817036483880681743078212755923217934748523128075758139256859135714768918569706517014091126203614500077257847776177224747106645688635657600732639679383808504447695906067629263977390895385050600339138881625105781252054098264573020376979327613289900877836865714835000725068721072909109189621575365003194218669621977637379252170789054150283902768066084378534999964313757907752670298181853023931538788158920466002218854721641117179894500194683688642697450186076596119274718647165097901284695783906983040948561964283904960048591828335289263075428820675892265567936755402661519645378081273250842178578690059066551408959742901736784641262492255175626067471694449657492541235364854961024313372531879088365722054901520766785171223266746912203746153947191688163113340681034720616354441436516028044292865478316669000711840640423248709711917598102324512484270146203974173712749237254750203077583156390123319896678011029519812428476724328523701387585266597615580517648122635490045247762019985659452011336764415074868319335084844310010946197343350127547097621770823923956719084313344221264076461643238190246928323441050204119054924268287506053692011695056765206574213722523710509910357752784391086234386674019846691841427409704626753949051117893910376638948105633549937138266424132677451161658935687100693396802113403975691950734067194226572089469521664835564808634163349370617900194877268127498334481628466188340106265790479989176989208158976274286910982849036089530825580366389469156937606239136824372400688941112903505005454330832565796665825790087593304215816671900518061103569626740698964643813959740584799135088505846028465719217970358190873093838163020566213461904641315768218626014102226289960067718018470111946176147101805820006692138465642695632944800111575981557459970441849394968286885146767576746520376092571718847778633372717684505586115795606114671282622435164007920593302830740886358529699336583563720783312485529701784872139923348516415534490742611606265090102457831468322608703364535368879769890310232061940914117191941382806498243117305409121007436147639865757558302002476061543063378569579625505641733045000756229246992291369380045241673887339154232076157851151816001832410832251152840387251414681246394481780221158534779908330908291434170518994724824112980385259317893122542876184870783775821125779512982119104763492634211445309955498058107222604132028027729884087488107570390660907484973959379148443302250369372132322427611606417470173685777004085085086415621311556824894985665666945086684600599331248539871992371419730321918681844450165465133466373347011154079597212112243947240777904078704541054892114073084550675476446992188702191151957388570737433359128711807224416815428491084911713975361315009188952861041094543543008246816377812656260788063846979758067023705644788893698953252501912442529012409860727558061993950126070417315537795430905741778834426648483585138869083800987191850248710262343369504900677316289098306371123267284256654295261203122023899826751127139418122124517908728840166215126154202589558804240456552127567430515635436162042462161638273737219156415688433854256503582432601805245944528217280536623249450572051157475529514565860147512243284447783331810285494670752899363052570983592949986920435572697547380910177513037240676536289756267639693796938093393088533037671377082145360254404001661263168700572132255733564690582448337733356635381542172495561374734292586902436937453651003330704334259702382818781158842362780646204755146883178273746097441452834894496654946186002190456901918883683703677923750532952330702683884250745882753458082263110110536097880372871701767051952191176420518226168782955633854461867617239495249637424354122747116962679396574269118435438216460977774375011347337567639380473024037334925039267624714854631006292574899445597374068999336773230406355088358079829820152226358003750546813553182316468217827749349700456750760677090014016822715783898105239793556153731889090191229782795522114250238394525629755730164269853297865675226679073722895528789882240853912469544588019518748711939697765635369994067944085638326598192735964248284523662202118338931764806410830213807602885507767570145680976234423871869976057071515394564863979706091168519663039913011981310451577749451517182178611611694242142895830327452852024067294550575183834807617865959814427515233485675837273092842709383751330849987240540614817631221698377797556055932437233334290121985984748758983199225122728125764372694897395454050031622703029589118866646344786880504917220273271364599035327573991021315282951385301093201316274347033747808177793848326752264689245919687016634855398968946926139808170055640523411127177680824849054504846732211108024734937965391570104760592159277075147820118098487727277486967539097434369369474497342363504604174618375737601183194689370922124654355513858045565757490088113901269338393786634260865032206554519206456337355849783572470678530622097566061296672578593404058090301338339392571143537442250761323313234813612123202057421213004260471874691677188359951163976442083640358311478473707537887278881741233709985571401896058524603296030802829519052017005458522123119771910812434593850522690407230192322917855574856109347849313395854973779339502325240491507854400393712886019512501287047330037935442502318810494818808953786471083790685687170278054259489601194487134515418587722186544720318381226153579711327477938738998161037280541332588574609597849446169659758773494686718982773502291124217684395347442730625059353320024771161307704171873587147873618545290704289548084434691132649848631844134115515211583099881668595709521410054748275744907765210456005761877209217490410937448093868589275779776574147881133665942970859556778909860672493587853594644449646739091157644616225418112951505019319586644560833985436369229556162156745117859702268228357445712700735889504993027345915882217195566508770079828365026246834243977604710095516158393833473234288559489022488397271599009909185708823914002940520506340146021568630755316582180993491448276982260048585415321817046827064490136202596480197522124198864868357160646180694984068132929161098027273197812841491105194842146042758896047827825723879634015086546338716819602280639051799686504410726179143675721372558767353846221415233713967944370997088988267160177736159283796267309498001022619062787673820770928419664576667743366302882930451962417356124257786384602188294375060837468471606180494089993986879292144027734907246788607580994920281700809816733556407450954368913861862908414670958389646173726354089781260623257710248629281741591052321124103788342418521012137005950700388397142396017596912972377006987117574018279775098541223708572353406111025465889091313179402414852946428208977520105954834351135257432455410698453508348865036365414471736898514318035244323012232189365424652428327328673073369457467845925695091522478436043551603270314881842082252193444942447236350831162304888093529229385268201022974379984679307473351114759317529502137366483292075239382226345687379521459672356222945079359901663714073503424508958019654438593005947230955925539632880560140931636883364578892831599876208700743423670876968479105325646113300026000956445048866690671172584592433097431120244733729001930068142146399095541375711681160333668911377734423337456100687750150360108717078487323145097318987533474577253870986101925507688879313711213151586321795395759072863858980287260321194400742128455529434799199929194282836542415246138685684129019342108147460154350336943696541815881603657151686247067072748163409438685849042291918936209844185493987451720828552059061573427248400571082988771930227398606185206151612974671331113994627741108618609503492718682739301092718027612835270839847004963760989809321894442672450810078882887063387169183856887262064061231002301473705496740333645631894823692249695152586672862115752041058601388396244611804727109665041691764484901113945621663066677503905000450476693573976239061366146747418467555652122040193359330516780809323128404902298975243096382219610671592593906834186141662083387562204171001129851855137757224854166814680197568350343997309389464440886391274797505252691351020355259672209808651318984809626667108788110017332651862839589979678588158819807918341482955859942993916292456713672429782495379206854268060894858839970934919468540213846624047908229151143889106886696705312093197932457236099927901732065242797632005252035101107804244726401439893316606654978627081185108117023404281034967172553115390951646191421182192048251825829043388763349247995758536787003212146097826779050082815271220981329719355070916413948657952082275378211777234033689047067596666423528564655095924499721423571163205580385220733937600885328090433229868029693294406924765181761087887719562836090623820512258801238480311521844072326861475286536204324316610621737062558564647303790819603581828164490364190921747992400180004964229323103702992840093716742282092104051920345757670265170333128364437501258140655623892527711694794003993210965746781658257445293541190749265579362121647664116747179442122500422268472949234719857166058646347713884078774042973850118085032740046020675820336785181580697297834621279408348891453101341644913419888470611094971624786742445612746873375595449265246621774689143897715552526905587681182560691741273916977626704679161197661117808055145428230407913168784849169679130954703233646807650947880602034016130609523935010774506572732713673952730446078188028251465426677269550517677730151725712458910650366061960101376700462440223789616312290463512327695602407456812770668001731908420072187357105357390952795271815948924437219599015228701244532914138063758142014288711062638781592094289568911920544727098276541642459547249742898394855477785312771432304694924237338211527677634884888106276521331193420749126960684185014408858318756024075650339681212116777663870374580244836634314672687935946136109313179995290012286717115985328342041619366587549677612536364571613602418144475679053984550511448468343033345855970738947462480605654272532907647992285885863511938582834347355123395357211732415834955028013591329485638768021172482716063677664558261901154091561540335601357254402078576952130928996861465288387023142926824241794171693037183701032870804700962774756012476607883877240670806628500236619434796710729030128488117724014200438253431697471514439602871519709886301939501783860278729782795207790199879755261068760450732368871412300620565608713011764164981682805879240707268151066698437117554100846415429286418404200840919806849126466672580727762340249881169326807521142532428145924858629896807217929246033976624070177971684530626629097868803776810421287208364921208449741009324887635905693894058372315733959005912459578988116751580073457687237465555748645710406399654542996343543567897898167447968233797687230369893798727203071788216186163783828856291630835048440222649237212331591031992953903570843389251408336958855297842595550521961058034731352490604006404154865538319210759496780100122195379199693822821448207351456111162236180722568709700728228830437441443718721928892924209400373018808410176157824186412950505045476007933417062612467623894516990135843385172600704389357492814172391439001490908765787431911056759391281109524212115108581321622991022899397349812791127261385646985808678619730324056671774523375669112506206997201199317373669125984012597650049416084428793351619739859740119474850519262306038205533476291630533242989165548212297389914665641016313645015988123209561363749699764213108320337822127315204240873052737274391875691836822549058210095641203233443007102762103080378881200129337422274096266607790224791914355105413965939620886378864658314972362280159913665684035909755680389393185785996003100397321096245686388996041855744051400885629495359050260993117111114207141781817580367021917663427462003919564430286100025038724138325720314927850872884302182437596806614293983353257211379051960896503234909681232016380572684098914082627398797116581484927842163057132087523244461934999347976145628447511728199090021820241787074863661612593652830534716355598905929232125733648999360740222474591313076933657038981351590556101003074777536792673990852313446686452249187460382737915430756025660077408665192587286138134366398810639497393798879222205103638765625966611816331395801634638284813368375505886903534738597446685486843767587904223650809563377458843330765772104756680658840338621523305244695812292302919830778195334196246958644031554154245642944622786207096100216476716026214991625669537811077228253036128755161783810708262636178727398262635624957702123898189236845876908114892663426556588449538207079787033848602847886282566478371723734079259786277969980397540168728868138800402029854326753234173447964233673916526895722977016298247994057185263869152422893759317489422786320065420749624595939654841840280943037585340232939687165476156613349946571362891955315010029704346185382767622273837355443820761773373226233328038301869894718900083544123934551098916997805913308538258598606328599907025482787895275573885825571906460793480404266059305693552560148504432304594459951134142536492503795825641004183235763608459330999074758219929321888089066798477288566941244423599094847486412995619460708106230747541211082015748687522475063824941403518730430169098570394651963386848695184809751575322556632057440851542248760931972247386588519548871204654881121189717887752699473954550607439367898085334574929974185981073862707678463575842673215314054426899048356665034117654708149653388425179024368927947103887027731274867982124123020858016911965171127025769303625684906727606372769629947368819735090175368761181628491664019581925768576278119083907517879427559438161039103917940912578129616646740988017008503396039907617787123024713459972394701047772318298781249598288619586066902873351538482446647083597252150840820694018804061167823082196869004302675897539332018887120193070834324544163286356530750479086142593725238576515118758015022725575166998101780804296399564041700344366506351977171778292861931296775326157489722509562936213900936627813155874334597047289263459527990629320525211702626356563958901010445465467264050940808138407513750368871805017811252570300149406026996294769407831573633075231021556501776954699112651589174259163230456027980296280899411412199625024063947793212262996385148838402646737686811660364857376945390083536493505487078162944064673884631404129929891577329489818191928774886714554370637066223284370689246566884584695623717357204321751706075361415456178570324069866577923061644331828066919148973928445333931441134501725482185193511576596249273925840667845744348095621280001201384376071855078259356525983823507299917613976638187211315930445229672322289726854472110560699435851395529170087578764074632647164805691579395633543942705456367247626617306571829626607812019962864905079705335726157806798905583925544761675234784733041610917268138647744824162888425093875870730986275972579786749929133329188403838020675188651964140311340818617840002367016151054799875043188585710183024935681982868441770686344948692721053303008942442242575986956166276508770114218184184626060611345318689765831368539566220526194498641387555298633350648170690076289725947713531326629589602327839967246750638328577161365738900707654987091094906166529476747864469742399625215481516002484886256634169883550850876448777056921603649528883925038828795458450282281648454602617380226385974809610706634652052590763494282347637917087180393419166825667647036801364178247245219711958281616385443496684346021392064948600208642447909214110352445137890299165415978279244143972887655156350372941093608578476828450544314582667019626308614430051060575126507516228569279775736610284170802013578901357265626580016818096589308644271776388900502251563129012920470203470892576619922374637617165485142879454340924665839992025345877526265446827844733875524727995300892662842189855278065838710495877255598140877389114643029514520163688521707885814370131967277756584220998928714338157844951620884888646133292364166326376285171875048154742439513249999674444708167258699219659070316229321584306097568073392576722436088888105231256991981731618255003717771869254523666129871215449088662651718170170046733677827213136337803926096320328399035021282904487710613165501226458006197742067354242786610561170832429269575227872905269300674873540872365073550284170270021782734719705678977278410279153198543503953754558453057968056920273288239257767295037380666610131294311565220643603378509944068963056977528100911740809684551031937748350869061313736008225220341055616486459537877212703817752504347022049264718834803209646938230702634311732696634134007833710417409632021070150388549627893761572100183769130007690796114911991385173090468608454383881316309637369655504872407255038268586830830432625892374590391449629085512931322380951829551221569398815459452550818520493964018688453269260412126736527725658879904438906932680890156134454699655951932328391618611604205855139940154938610402012780259823325705545658583842763767584071205125012605578756530841148636239732321222170982705405710355908799861730013673782240705921580510001579502494222613125605134111213607219849685410020449975738960640185470447909647005543761459455919661526839798124023724147443388717378100114545289079425354235797611279609222575928489091943887130510181862881785374091003223248536205791227308124971212027174604654417588738077075795923214427237645453860291455031649340570699242887027966875454068395386944425209431374884735392301464542556456877265259051111030154999396283353481160651670736530207429757489881553872341040525294816939820855230698204357118963397491664385321975939014627698090293847239801760332238976913071923796335703524829847069773215620386286154230621887032607576934744324704049207556534424053333772291214795447644912546360472430298946524163180472139906518696934715668472985825387243779214393477514462454254572487012252401251355424838150246904483292526711926134929789600366477863289040659264123516548303348512355666101778310811839832047967027427343516750947991400493253808391773357312461388161245201319227943880863778859303871518858346624317119307907598821283954144918983164965829520050657419750421377566528978560210573946953160586354359467628296498675595413205946069325363240130722087305809198834729582205343831494690712259411425911428731238941482820847174179294693247469909776273371515551244825333443166541509793123561425133437256743470005378587430295501019262420037794295803204663004061327364385048625418684611808874742031221961243645478802464306986498525783353020328772976506822882681277392940050073030920148970611361605159508469671866675650694273010122138792258788053231466784892555199354116991893557610643672831118601609924964729267340510753597769882754525879897568314261034156849402032343774735960704198332578944181928201265629091258586722872302178418430369125267314239059130027710025210520152086936088832643740329781318053679066776163002620691632739058749301570182801492463948645216329699516606065840217491348052744614544562958041397010916246044636939014040646409772318055497696535586937965099660448939269126716871702701798262254429131091795131914734434643896006948839625050282189678528147270010270712471293497984255580106361536205382777251788931067872133734774758905100975568172983467596559365727218533292364440872288029574058346356159449816278196476937988741610376152193084771287176488838283012485162781904132028110848038107502044581811217956489509998320430804804590150682046941959671677887031765657937936043974498622108457425070018890760834374676281836349096756789717882270816392064515879867535087154368051570181696795004439527175472970892304913944357602312977034824050496021337415079592999989691762092469302991412545675125615559023379513620891779863080684735243339459331877653203404513659586869374317250109223784988023879163238266968864779015218095783368965510450348295131375141388217741163681235615244071228373890380166252021035281526869348426209513182559126809110149131943895863243157619929720758598924701006144638733476803465920164488073366630123209584114300039148609881619845211759874800901353418266618072219154858364806746652494452234284842233563790481075694882780061987460825951509185673494165078184283109788764973872077931889615267751985802775253069482842068541522390143259733442743844593754930256178180007880510645455910542382984336324341926901227051687257600409008585878458789421031981255687604131077462199430510641347376282587044559440810509891859870223648120311175667332070074027651991540557764568837814108972738190138959354109141639273641634462997808152353341053620193297379154798967332305448096054595673100498245025892196995469134079414480767516111748483451844255229127392820690729318837111341485361926453280244203638362240779145801511300792726994374895539416020864613649727992612255212642925060271866886811323531266091289433528542961937165775566763604828838016084036445159645969381997223061801188042098857871182131295159237460488450958708536892000469677694886415931864200610677454893936675547161630352681998882206286410905579388905670294310157737705602617425693345806362074706438544808917493031283413204325359896958115274219657219672214935515466680862686761014625871844895150908609359302199495472189024038714003249650760946996319196173572260549397417601130400319095206949002148125190990771785939599056187711340963525439092050897871250801315034889348060014308337703164158776809580476700749631438184806841075262206557041369013752595825963571622343611490367984334706825819678448357145743730695960776649646090368207061837482136585048908333479131605878175007335236148849451074980538795804324476833276931811234340307343799246523103627563442394594929300777380642860545882217531684444549458373333068351155804327524360962582287214902059774240288170292070363020216088924672365193744697869163839504589522516840961690362528908614695094727345098755372537090799950666117310151398726077851506151722050084563424129783442865028820552640604307703982642323478742988753322021903392786558414223718758030338513641677371289508275329500571292890836291854765224975438768656287252959894922900073960958350682047519494976393433469552536639625490169499557057972334946246723052359400978529768022302741698275087643057806567586003021654339381962280392110194332675941086922132293290115230644254497147358574429059001097019223139823626284386199277206475032803850479310641701028378009821624845334922498177681434730907666473878320472149778610508693566823698019034863031182743171171749309189895710227262994096282875762059018123853344263448808927809484470018571488809581822326966910512561019937462909087829829600570052576732580211820922001735259056541366485520855154535497980084154445134806541327336223147110937706086744984019937612616035830941106267327826766818903322209941577082534898670152107780155403859772573790562721602184838244906069754704005486724661891486172261706971887652260427757051768436721475488865338059655964665696591086154771895340082722165826472466438395455132971594439509814572939935757478142734027173368099676758081083469162084262029732512547162064673314940895353322224116450811341617752648867899767122409112298946632388960028817551403878474382236366291224114201800651101654412342262955056237715751238759104384266402735917977448818276113867632247063024599469404170259744331018235606048722078022597252523365755205338744802711744193319977400073273966333560864172822589296364261276518582936810208237685464794319292640370221530127471325392860890465065883832852749403930615076458631499001154175435312953083234144610617059911507727206730594011837421964805947290736862290491830420875355522734104143241556780996749155943172918107214086061343544342455776357053860542703773971606078662776127373270977775352073934752346694850773874707369664706700595993164621016436293699157028298432455047262004526520007236094781855497071944576200595316895923759172922391523734958021163323120563408239362272530160275810456476057453564735907012482457091067915414878496737417895168327044694382958641318014741266195074739783306788610628401999494823816815826304250541095392852803735566887820911336922222400383199830852503497126493807554043581879369024701909799940189823089255516987914465756174933051537597272608969332454829535314529941559147640719203624974794705477360332741784913981443700412728637875191212796416513942346699654216127919814904177709420650525829180406555979462710142719227906454722620927473962034731681235578918358982705129963011336726355669101248350129032622618290338255967643603936029359097669907593341780585002823283643156249024019111067162047577449989151888257972081811723221863827470592254060674367043727258498524488145890207289603552572012274231151007185032842588468424451998652495338998867638296021811756285748391005363795323735176660517469518181981631041003886664194174717162164802040339188286705152694450081152605567935402269664612311699076790551211211048334641858200258139440473899833212905116735242963713980889346371517689838590108069153062778021302110546677877727983037966945333472941567602028004271774791013092296043027414604861016984949318337681287129461921948754541704783054529538132743768026921187724145227216123449472709954801490086603920791049809429780873162996470827004080654978174290347824509208070885870763631745561245786813707999518306606807763054060960286870103921129569769886141467476735222857103930952774217509823911084232653125091454607639744824130463162394232290156877189898497332274577784435721390395679825461758547877466832395229201645062797891214681212953992730022901599453436210413554114892403481027689651824288258686437624141500290794985469162627161353738891299260739326505964398068127972440981067323856800386894576336647339052246026318943555033814490267823857692676963652309721949793996448842717912588385749604569877906228164261666924086091789135032702149923421196338438584789569093738755613144503656341227651826636652378410965074270549601790584319915873252969504912129485719391650240913991982755030714371461851321622526887778575684295756814431687892032189337043542730801470669919685045916582607350831926236919665159187617658650255858686755720501125404633102708562983011925983535956357800894526543520132000345708760942954920102488860632921910087277960726914060852110341105466838819985336129041707550803093110668615984807218657374043088140744958524402351514673452767674365672278999243393697470743317590642924699168403728714040083427666896667014399217634828869724432865452639044991706264200947031115732042404901105207303757349008563260016481009396506719159071781233975959564787419362546607500320253709459642866931993767098085687334061401141770077964919322341113314091205993821091373593580788882446652417482501269168562981251906941362428998700924842822790970475486370528444826880880907495685644850766802823825963793571814516789080417720086667557478649985301427994091803226095957909897687666373454842235056961850398037822028110177313244655965559325790775073973721615092400019593901023190524592785192573692414797306850630047734324533531155395649618721802119283590905428306442509230508533203117388669832332492930281136675003526631832063950639548768979749976358282074623822107104582236499831470756506259942328886434390331041202981634650917516734586084592454191472344477947685636818068516796017945205970987544672761509511640071792784509592908785029318137145640006772152917304940656379405628473078521705526831542614729676314089279240541019614703831664426536414874884801587532682299157460917782769753696100694844826297187697376818443049971155517036150782764164562148664255560952696751957164622037896594322216923171432618695617437256334783321500969695683024331265615837746579378639333291476816316775079054921207289568645067176523001265045877272625767976349297884233792798703008992612902433805040912887382511467075531805553941882804023605730316302910343792005243832958245896763458119099376781600409528948222067609826194682292151456029177637531941978619051651354453664801795829539749160666581051929324896260647762140556355894732205170244401273155745242540599958592693092241240843965004697079373379293160877921905375822044196612717131778005902988784079924692754683201592453512408224334390820078640540786129895549402496013435029828085340846111134189118509391506245888350791208656075612463727765073420773835088998545674197234217045972791378369345794875120406708340455248808178676174665426953967141719052525028994505591589756906856069303613080443259836976499033074727788141228532136443981081514921189812855481312623497681396246920378322286327704050719063583154141029609560644573753726349887175647933675219344814906037838874490197947670318914036527942046869470658112168829453764387032246009986804193526633637864070635096730988022404059017918360907444614270326232749718757341106684707813836527046539683788396610442126351276222254640724553414822300066413549095776778293766744703590372623054014160279157839501111906998990061136247962418012223977029650198524533865172460714026982323771312992966379154584535373944617883936924199350409045976830999453988203180607248864748423983204606139884290942465565469559573553348802370222309557596468407978425295085724472226034005616894389827571758698851432940014561224200347003144247973345394416022013674478814718247251783881045668444600392638269619002786670164601192860874725407303746041211815540004821088019180393412304920982552020118400431248704455237833765703685097860045681453274965697300891995254539070815666882885141968772628802614353778538753001670730652755758739246478735912186692861933623789425970447715489966259969224780553179670385815319997576019714161731241976111167202691773306239407057206334868661488589502796520742347753578443658278128724593400649531233555499749277679831287424342474615264668121694025725217230009185636662613065921331037784678480760331959457656508225730026507701181970277285797461675981228383751180717203385443041436907509340590559123120492292958902180481920668803025783486919932661378579887193237417887964261964969984055593210221146793124462197929420483992509051678050479180428329109053093481200999489365378821482584018326067531670127816758031551531216343784537677003088325847472403277158063974950426190668893518425449515830337833266263243918048996346419734239060785183896489788175258300351295880644304867131832822731478449025744262590352470220277963142329338108708111560993847839795907650959461587683141177029293474692677784567425098293195448746991888638796489481067615676605217988075484304670521487221303771891188793239383794241123723355852117133695552904277355323830948259171262858034209075314074708260848314838457156325032914224804419115325178706670823368475725476003282965939895313944640033557567102156474149841075669306439863966568218750635526718461878550035178598172414942082529734056716980613561004491098298918943316747828173683348180871400451412631557922587498068600578566444389675403828910579682032024798132895153347393002503629893908503148786438276705672022720644193262486012602567852720658066341805061844892446690314536533934999178521436154537479901020946233583725090504001082354032792291444492399219960059149473268016112095280604176902873854907363474141461802149925246709374180273003727331761759669457471758837773155450819237457107792232565162314726047070782300411515389984014979668408470914145456564501449921229298585856003029298433169151063666069976200861623233951187178980910055334273258730308091895381515914326986514469786524753527040423827433066039972509763539701029882138970280321467444999486831043096946286951630955150991592051404926077232621647414749801672684834109478801625825474054849488009370955622323408261795210400834894145397178542029494241214668972149547992932836857216625470813782315727716446580002138560448291373509100055304967578071656397791827186638570141742800827428783621790409142298754756091186753004891901368161443909870250071371107455309044199218835275874347100055442614756367455444090441018361516541834821003742259372190474131051893661826334153865288793106838316403204846634588739968819219852556941185255033774521363874175404758169067116497426207613237575882925558470809354456725440662184376733016184059516996512473178529658554651314694052317637141329415897603278564742061662601237339062741644835533144609290118417961986691989253130903858118458864776212502196574924760269392863879130048698675158497354410073912051828925219608293509403529823834666263982549608827143865799338096316886623852196384314659668356128750823332463783398746583368501095162729090400820053537109717735011733003202781892295342495281550698119643694920018177620065590863620433499203607410456095625826627611248447625757397882566537294270406449420910387910926830208752094018171460325463810816752259069765173546859021299828973002208614338494764495080788989659729613608837996196923168742542650412753123214092418605063636697665615040875864426504726794784592796180017317594506646933120827227221508261565909320985065391641378770064909478574945662002354975835834617898471244599690018609452513058289440091757007254956337213420651479928740713148305591766497756437651644504294716669074032125995414715042212105591491841617067848084393352312528749002211446302893983500603613294728232677945828449951339740069907208439083540808277448365153479662988522675129875540110181322273516280766771602505190472043256190799664796052527901103062960053460699400273818259778621296837766042297095778964402389141592829280119944397383970093586562593595252415440777715177567907955292911407587538275373262459282968670840213049560848288414914072217942299055344099337350552236474934815572828281597220788873898288580451393670227755362471271019405919308194216263982548180427238850699064334266484708388874193188506952709489405636792367403556189482118911556967090003826139605328345465213435859907007375932582386827286300252162483147766479081278595938920964474405118350343473742314239531498472232364485934903187415488853828862677866146226946489182406365241004194421543173922259088935047700627038036715919722435945393032589739299158722140267068100888546933102778117473016112921614150777950492159528225409238829581942387545705006463523050059007136998371644510989778496144174596753488005976037882685624602956936567577008729321793450315406100188037942885212926158732859350300215819761374020407826664628306552059608105249896519574580195772281110981585007576559628744170936840219380607469032582230416935658124135058091590940931853591883249832286748138052657321874930326431724723392740672101796934492387518287860534574395713943180403144828455492676085266768240940938888379395178180764773152975328034745534089758875501423490992877228549509668442805024697164896084158084178010373452609757567895474266044331153156841271514463272157934464873496316309748566424964904045105882939911840743803653989049063743307676309726064245154213523375092140772504770192042373149244366956808662970707515181086213544139004490817088439734607421649075924743084709002226510335926159693424923048822543879322397407392594350122201187106716575797209045593483003208965054442684298727163486522577039858943919722648997369856004461565005335531886096564160699858708806213229009430781073258760547559381266888957961630886114564723782913733386334270127141205017495701387995079452285158736554059278552583469835881942366377124118458812425045366910685438231533770172363051021538855576416208603822460878649946853506044767335778952046493485301203572290391677494458896857491522108876269419832419650683644357319803665498515971055975857172177591722572251770014725307048190670924822965171850321439845835479183054162128927446689257090126610157627945374859197541545129498212520365353913517163622721755653615766037307362344876104449935240582844803273755602024582184147627089332725388033950839812147974522330455391526499043666820982383677187876100282894827286185537294473551914428987191536963849812320242969413494333963815137697091884678678935835725155101799195631186395871249798248547684485653479800873427181644953432669551138091559016818578862546392764881837292659697445455108037678712567932493121404075602334888632955688531298973593081264500539306193783601117688036788210382484744717520628408854821261370700510754058521670438935187690046484064936942630438367466923236472626459223372037517149918613596842134224052245989192539321581367534719197552675631224866320433958383559466753364594850331064926637830383535241428684820818784114765091394448618472983533411268106987963742899817464208496102108467014473273484192694468131274611904036596697069826632161831039739736320181202324398804904423161214851438337912431466466404639019788392561283572515186218221835316194088788525407122890739570539456404374987451892002461563687519904302090347895814603828304612455746902192128205944485280625286784524029570214226683197808624327539217155551805451035535022019029218081487708401310888621923798942357603276909628218582614970504696509821049456826884484543167233203038814278671015203704783728120607446814015734140881375199596386679631922322863786402573810880352589272870911500500800299024070535514707857035255725124362233305931734741558038302556097092493711421085702346230048222632952729231155180688594033620354289706962853364027510964585611266668006342454532907296857285569689125994917141356688000992445620266168871824816076829607908094345258218122103455554643158660748881874992220959409887044257265671984821119772508757426834362912675793857769983589570948528835222870705144331199647234362956575804345229872822506121907795898179717048808476062517614312215691264784471689256711207733255802622540644928284401037991758678592144920387263767211231276359844406344766628477295098158955096200657906532191841166496836031669091783016788389075528530493001634996625552918347418415327944364133645347420674032433750454905671088006894332083870969634417014742574907798174034534765980797342961583011809065455260190741565787935068292541891662598969018204456900244905575674979238270988932650480960156722029184743134517873266980846347216102271806990628317781149240225652112122162649414818353929152459115145363049131433232318450568688917581186399515919270280630252077635001483839899423013843330860448579332640132128902103878073223812180244819364471806847066721290131622463732448190575995899981122079303735346089739564709899931667242504043090913924429601844725643286992113727991024977107686467639084318420214714907858006857728917994747228284938749472148513884741849545194469010443844397149608227184907839341937252748897065678924404599436668876153908736354650193210135265092631390277003542922292753322260280729831953565571405436113043749021123895019491085626754512579536227873597003508945753769776126280855032584123104191542162778888639582401002309983931333025642704404226548464122454746135990470478892829125551537004662917461808730892149876115094776078016216873998464161188150557710095676940480052302672703455433703402782572655309935811346990929326064933052983076840614363513566604673777199132632273827253299876217989604826224775670335989452860337135114443476414138483680383290370403693232463484610438273482319596358906641363490709821552830316440341242863203522150225291087692820674972180701233549205684117133813432154482488544873858021211138963243464769607611887961522966382811155531617212784450856135997280829766235199659424565878168123456010451307565519233362278726544305446628153841224458300404394909742325430805406486321274781230623381326967366239510514969914225054030110707552747020276100535357088386705932174992905333918083419767113948207756848102038683027987715811486691477482459048700881635117013234331526117961832618065353478966700481195214390194640378725737281778219629296255413966331932766495783222932520783954659129513056720364453385000233269786185134365226716598084294805863072685726909796415081210383796389673251823306491816516018858720930738667686369185401549521697631555860860575092296579233966367870668918269591671741451573748884246235476792892827095857615397012630432813975187460801329558193208570363819695299537430582165762455922663485839280021765084648425564088315972711419268100486379944727877778412692433893665243332162935582698043143748123175820768956586533990133334172657527510631193745129209751709642601367590018509466047764227450726042377839639531013510995779014891558928319988138787889165031064293799650998511392271900042531511208636634872399327514753866296307483013813130596149273940473838514823241101337596502201008826650362491788270860425190291435559304249388913300014502489952361637323667457104229542866870491010847129298776375113295656374040272353108567199847710499094262278021430364456801349231315665634193312582617945048358168811206416670941207448923963391153252052241817671995445297338779604090965777180603601724095135460238312919677782030146846692538311040189334871752301732572358075740262164675285914346195181417644080382690522372989109250693750247761105020085370584900149683903546059227290772474403647932029199347493800177316682850098857617367580581250696910013692402998214660245472181299672441518891396855653192114203663635669363921167419311523880258348587781147057577036000760881305593861674707219234251136490834167451758240564361736871775942605760735396473936523913585708023926694770313897330521952169856953091865402189672325292827858931632511059492704338158051577351397107133598287746723368562113279040634760190090108213532980875310206679334045246078016166813879997342419009413022321154335283687523018580805081960301915975295343804423985238262357049639061425925137322657419018833268358854798524004682764396263103843848396411463219969428974434081658262791112278143716154864464400865081576167045978494632193472682304206835081523439313465777256653908835736429602602156266479183779105796034334264987644592944445995120446356567849902946960849578668399922234317337391497727519939230498917004580846295903623537423819219162477272169853391099854734043686360684763459162569246991523232816407661320262633726389561686531192294101748629064168927632964327213468456844206973535734348051525407314423631699808008936892442209542104768293038822272193391611307599386495738965955596889919451057925164528813549965741317056280552265071052202488666621630889402994876231934182642232830788166763396980709560564804732795635701246588869788243476389656748020138792363864031781510162448891855267825793596526583854964357925301680469214585467983822944711382485703121350832078076453467146168261880841621841452223575181616664765546354535418179487624422088938211517104970535692069026554927966640703109386264030402911797696855220326624180802301557251194960794826059425441236800602845275150551707471362117518893387012046202501681032311668607463830028252727139668153440988614403758185000287208517584205496535101217539421578388158174639950518729484034528757519344020264146222136859329192237956171899458687112198389146028144396436493112925206265766811713443757189856430906218522508578450975691747087628491220723532950209341432739455839802227836345309268974397081165126337486752125378538812819796552560683129169975327605225094112709156589820450113627266176643771757295787161723868163253433011220971243100169652605113792263293763409948062720498390170057091813428049220922443293581023544441292656356860965432736641401004569073380532630789471944881536967819118106215453327689181531366818530358546701433897684736417433999862549485958322442569255330794233792353382361919801033024166656821187134862603695685829186350052693940818781216924587332379056200706816525385286366315550997793859208235152302003265130080163955773452164613888925769442389825997059962927848449114305505331248133483540335252902212098622033441598553335686648664137896062415252282105093940623395290925064919242901428799808230275906316151124472243506894283010304541723109321797949838674630971725452542681545421120929358762623457464952596363594195791879049755126494074646171492835644544137466664040713636385231688566043864062489021547913236938747102943475832030735808799319758968259522218809658277093047992128398080773430775653120414154858520850410041517042693637604585831470507207191462167954252845222407233210369521582299972532695640033310311060217714721670401131850257632597438518626709924352869320840017154018396427207038479149996779971765949640202937869981492388841938651835858500884313797466471324770121401466286962222936721559176016778554228168476861332545415166232513411286584398012501735376863487663775335358299039792795925284367319747098461827881202822410903979152230116051492361632026855199917539204584117731798395122723186250716590332479634077868929583943534580497817219423437882498188900752930184085041782305312766096481982392105721622439947788711484064156316280562913189242666757854096153938461597018117066886440024307608706081025118853949003715395880822212305993877170578643217281674871836274058610752608787873320336930044484080491770006197974995183013376040588310801402967960723088600010724364811180810768875160067855403580862250325427172782206061307403525608685265503885365995206312720606918301390843541807910559497842032476147441334259539752250509397567240636663939352923916636042138871991661185980175228861708611421207056407822220334635692146087068399250991313880275638002806556240501357238767004786600318401808008553764940163181130576472621529620640330465508494824155592417050442903637491080617220217239460069090314312546127023774165727265489329646773536213746792990419137605713571207171364038462622337484048123041900239825783307459503533393028210829734263105372393484787709524563214854666748536451452557826047891809059984889025669105811803409873380096729538995450677143118194265936206403757746237820143458062646235922465079720737427051427725644588140597265565374070260024352725172795089382026205940162806840607456956854244071620791522286894645210607299885994179453888034321730107376846625780264709702262184037166116266500168474222285724861995022301352475973568713402026702951530005876596205782680356702329326206137885969649851684140670073624277325439936982033504471216629497270417939264263967795608475698911401634949354315327767567721556654294678539707745827324809610145938167126331114136451541125789391338932285089569893614381616216693518494036156133170529454300126331271573657320162238958080157672689944273969629118770007483093265525866717886391917103868042013995263615868897764022602995544527418632457326111590559108614831063956518261148656334997678170467855511473375793596909419460718475681755795843234087742988581401121294291473589295149451229549641595642766941139555374254326705504911087315688920747870189189976565836964851675492617531768256551231929351631317512176067643605361398287253237634645072218022850027231521126705676883320559967458455946436986947677851988306365026699195198586388456716320644873934004643646108516883531629451925148102858931517641124085465758030342264370764852438648802318183233995301758996374433842809842809007663304394994696812830805076593120616227967312743172526154308848724106111297933497023273873649332039350707676484880128003890514128108013495836456600407684628793636126249658798914121393813083175959660327845001435492987139345011497305392262096273104587813257179973000539988586812615724485846430357317150801531405550872793989245756489040069548999416408463846323882724592139168456441626108541027618562214719610540258664395012553110727096380820138005922930040291162478223069827654978294249166436590559337372249027811865907219800017546859075801596328149320018726206760536502004369444727624679158862187129285996976460949823445919191570413515148490713427102437621801415572164693471958482769085243747710950331137865295014163782986979762943285693998889044317353071559304159627816564698259676895205195925532865843433923007454213475715305167298640646603968697923151426310630087768817657872137173512353835431152781427079984106922038252361499743982252557339957052696064168792857301882044404898212568977423054087167742685454823594757566462909435583894174883065607010366391496907217429466491500882230205194522560686552111742464127159831165753282332094089859702644626828835737426141570328336748610288657935125178384191814575665431672589939121187309847540158446645674486052586037873164805615585035002746531419365383970554390227417787436101043809724226060121953414988310814473279927958696845388488367941740842625545150257510580836462742875195999052223509217563551313133189443511804002917299295470294234330519380271091953037825497319145453305589273279349802198815274265218319304170738549055107843994385399234703685652929644490375399684401281275254351012728816957090852183929767275674761466484424507608558634201405953983828504762396525018176066983900887342503092368635714547510833380098543052388353749687185579641223722819765403260885480502419836416577938858369622016384792581879925582448477878027850556744643219472818535647391533076233877396989059385904167908618393935863368607688307756345278706735299315372726625889066602300855594749247788296086279463281627466865621284917857241462413978799075203601733671132878612773858522019177565895531571742958660267445487319168244777731440040740858349019060475308642036077197190227247766085875337379932358708878698872372971636091167172555341270625270450295731023978858173842075377695414705113209388218909407795759344881871485935568675616369806112947193413263400446731825140460247868947834140256605665801237282522990969685096172183628136400157680233886905099810113659762445281943219905518097032776283778638021419412798077574845542076328423992903572550081916884139240829540785655793454460973090816677273618305860536899958604634857862924112952685471591986703395925782653958928854654464269698763433758173904061038342908682261367401935683439746565346453622911871386141016891026555524556723598130190353929179127682081062556021076974573047867785037859483893215172762671193986963988947932622416664710430021314194477993910207379202077341430956979399297581573710234086611828058921442960170630373805835164722872543507844044281674259636054006480460121512043006039643114496455751677388233341913102503663561491782664709376313392854856085975993515312886523996741524918398308385803368327633322533166437130337091577880085399391232940261639477727987594165090232242121674930057300373318649160363805056427827347032181464658066559388353450554637002988067515386459949147616369072604317565541156080599254667405957255878107976215704911902062505053825527331309821717415559340004944377138740150758244238126323705516202533873110500512556813720316063336387635459422012781219402384818290561673398400448652898587587642627328467829502847631708723620708866552434010322115081167292242303256593866653924502910454291609221493366284145496757459248707446047893849515038095952621402417806534816401976937907850210590146831357553141890153043020545863426304470703940132102782799703525198658007737428681082734826007588700005253648876689070959775699392181162785586202519676043857833210939488671736066374928869203874345723466725038157184305018452333392503289697347057832029806650504087873610582017261263593984810271043667420099722930752304428901495692012245871852240287440470529178227185973182668855771935250655491730581865307441989906833442218037587866538912817698219504531314142246353634193967472959321172939050479732802863770335825039229404125221778909212779594631561049780017966329439394401539855968814837640900262703829709193992749453618064011941456320544957297827402709514958471442412786287133368535150569901278382426549787896587598078181849478373395276335843706450220206800192297922876586431592880981298752409744311963107251645087119384930080173177008384234354520428637164525428140321852113284835341972548120306449288760281162743907860720747642463325091371563701489740289174973120798314046921053130030128672539499433112806078657235816054787274227384451620988927687766901593508648124975195401537562109002415766065658928938896884535951865865881873309306777816185996082082808857349629844097120917135110000478166600498291655383900244663246406411097074511688866788619235578826476941422005137470648682946702167217389145002765689839144135533676165141879521399411978290676958301684816077118517393952148003847684314764879056605068547290710581942252459532437236612310070018960993817334468281144185025009144494798084876444034615850709287921195100850649811611109292884413194511517484926517494767483708881998989453416042387168304695378489050737341730884202589561811452707629037868840075367697536966157759824019480703204643603650960018613707175937593268988425705259254639308195245457801339773221365691684550551619675018282222452157410985701213351036702594164803490036651667405203271973085452667059916131840835028561599130455144667339413579822165577988190059731384793169100573914217710197571085202973848157708716508069296725902757931402794030101855392658931717156161402011097761092582212535815622314442323951221546509134163204165177599440668623508891086962339966243667521862618562455973474121907090894076692886858281781848215586227334199257517259513091973612587678191502004314575656336614032179379631005942673347326515384953706304240943472544012003314152002825216882368938367305154639949786145983485817741774377083787303750225798151327437709282230624028934320556960395732251401558741286166446208557876009836759730575411093699125100707654581271900263099397521749062278572490927338350279162348522752704660608610004967146495246060604783081549902558471676365103847104824562774512912128930259359397221905983376324468952657060728501576713287963133156853596843184527611494349018980036474236538656775015555238790218153189174521084459217140355977818469570835261739937598087518184156482637543170876936745415680396764315962784536965312321289873268316672287591939004955658200625034550103104288177171460672561831136141667932511124903526953226310799699188720025056782920648719306812908805748575029124261566091825953907560054057505630783915274689274422397151318301828355637613680704276100639943412839482121616912166539202389202857787202050058147042399144001288710110243750679844179722750814653657754292635039597679351862501934962878220083500630249406657805761915907349942380315002555160117956284909411600893114382781088165884114616484517630996065618115281707921100798647690238703264238884831050464916603196353160766721419289727769198444724959274223108981977743195571237858954708825095124757733135041127628201793387825307262916353304974677023592413421385631119071780452683721457455255789841960701102006488837687318342459908307924096153036958855762728769164632394693621537202282019461619297715415976580128190516534162493145187001300181092393840788945982214678576976393348953959056527690710813009623039912519984458789913628775867825778444983044493675006992403691681741762668824492897370621747427974487848453271061457026609803560818770403487872371436764004859847955166426371977824600394142643242859091367645669630768918574521530707692660195412917032999933954606193833907284445093653817375247878723896102553283922972000833175453479692839043719895102150997927390787378857768201305533244655597247805981846013158533368691855735573619282905671898560753332113328975783102479792150921747006453068817405520748266737749288860703992681638880028387195468362999138594287832629846658357239443053579985960711865899096610479257327099373176659309398819892876095953598672121270502134633124567669537793375570184336436606050752538973512538958579170368229409536411760597333379935440162552571788013545236041363295326317521535922653748790569023638889045253117576300742925589855503494555982409734265486830486036262378859685658942607431998581108832104000425451303950752417956658745129626975756164003691077761593781366323421168780592651762092122479101865586008555612770374968531621493999619402652543175054649144268300357211820195829552353868512260315338180886614440181100561778818744108143145768391584816684584188619587933272812111060328000697027080306880468624425451418358157979937892338012295126163044402744570284416036107126559777114100910096787926808363273062733075236686877013389651212294785516001560017270762747009364367348923069679136397760840327961201214707142607952980519888824836871572915766507832664136774388266975102256555548842658067177281559869071856052416622011503852076592266675736556330324051617387972898990283136722005566045476898536153119026051234540176181322432961096990555558604642222647404255366088636711630571187966491449330627966964773741637576978518356725525072672886549341393876255221853980606458227509480437372802639638239237168148785960700950779934963056913782642232336029586283184030576642080239932573513999855351446291490167893411495472571596359313483329480491545078124841980443810606196593456243710059899024807524282092423730042219520392413151994997414688944145294922850708890242159091709266565688337339833561447924101815253403183382609445179662498221384764203575208958476191983744083103692612665272381500738691384301535087698370622461835157569444773226304180813187601245423784634519338047097299983852106493093341652817524558600754470686565936994337163761808146015447049021352309759387317932954407828578744282145313597777473240437626135490482237820957447927398234508409595868253068184674355326882488969928722464139672943965883519854107970197193920788580985006033838583801874350387898467600435313008891393275773964843754308998883325038276895063062960521004085928331562624241179787463912721501540805937018676531857156516528939776333666972830916863228611417417283760332025058022020541003698384426358200084037572249097488430111879847894453640163881197587052179778755052370617506241569507412542680500617477563527575838976970926512052885882451725042061246253014196683150566775813816452109755330890859819591368347561623479402929716397117124105891579411087448827468645466388236511591164588350205864042559488553878762099955648486838338512796902083505962638177436381402196221690374352274755217104227595382318522084548252626046276542370864325246560908078930597797037649181569795739736745519176758801286865569005210585544695515059073676928328330230328698570543029131590728885236642581606087538155261598397339009233333976871749622226802711135969068866455882485078132602379016622751627993904775570528205120460026075663347703436989271928443233775811634312046245222328343199202439209058683164505302060894561132067534361266660966330537870391204640577522895380420749763427602383797193142323134660738803975503579205617231172389330566366082627299835596749583611322021314294549516277584415803233239292301836651614891142637326153667548256603249767918977892069496679261746687324307637730494801090067002246156556289823840809282267814387917291202164370041687864781176869589052158674926120270927167330463938310329960210898801192562002799515707879452439346709024764845121250200953539012460096988436600602515886324965103030775539793734609094263708429298393853998456413541824055568444149788932534622546857742765990313386923802304798656470169601465645728289438057414061029547009494313350839782797988700951465004676153578787112585423656287385926096485583410211324324025984158834861209442188811236678100892325540879050094444415051192846115676957721931109352552029030062360974956429083050979737392099419167908498712025159780069957468192625211900081613060839987536958704561145535927848832954401130543183616376387478602682718295830583079999961027957163179000785444155085020428163814727661253488087134518742502356455256163474625961739834945067145853251636936399491784179507017925199783560602343394700569547382788108488336188763789546352238082263344306433310692706109448258783375368192882876579359265296453070959964127372087794795872203822943183685590924413415918184884722228504727073420143533854503283593429896379381779498849428697738386072832799998129271735479587197469368626798449067123211315912353880280106633329339041175129993029502594466679127949864509314231507149874536546354092682720018555582275588786261671837395795526116851115707913478203186472076021657827857576545444147164951163142070997694057883196226029865417840785690311512128947262520333910303655981708537572219298052159116134775688510054924264303583071879157905768877870544757520012851923837931876421367149326093085367989559219642662009271362079727120651373159511132285870150007985489385659971691831489048577791600125777422257652802472740366019534782548624703212552878005758843243311929735053923858073161940861924302902818102585766577938449071632281700116014809555581813638288164704472451583338220751407699360234136583738429248160776141696789907974282543441472703034695621013454974601974636873122006802581626185983410005149335765381341485752254893401322832541923067458855508375048408503200608815922422743499834719980196745510455493498445951234448147731217542497894086464577179243931457980765809298150278208215230278885185462452736761999777402341329693819989955765635431764590015271718591924323060278268340416898899260761527293057368971080920809210943049515252084309353505889923625695764865830808254866786418114973468036029283956949099907210540844617795341226075405232396372493142699781677580783406532541171822137519094194361147542914173244732613057754614053908594031880712019565461232072410019591800504731042295867608296333390536204163562663513863132684441146370052623087522399995294732629897352301217609453863474826777639180769201353483367844896247044717130921765196065532750452645355306191528848126978635919896803088213787609810290775246305555980395982979529752200585719354829746180523359537588499138166839734410548959674821784494930101245465683285144218192508860266331154254752668383089812362301497213956203510828064976039084907032759878951752926441418191688161544074756727356024559278867635139542959028837296992477232882634213618572012111781464182208134711076914634215177476974782732531058374500752933321159395475709756001842780038561438271385407154658141849793999173503514903523090740286914137260783272417381795264998809153108093982911494117836462343581238072370322321600447510388985290528562619335616027736929609481356584141767480247813624458137452497519194151527955405709201119197048781001118360616051425562184284690453492997595682764150201267835037671858642848821995368859118158108133683383718208098696104413195041743744516422923102472765507791099644386926017660639439068618282941577799263040680972072589140350949230857269419362905849949499156346573624639466843524112507558101676098519268025201824888921723952675342428173283078302745565158553971555135958421260642641889748013215933584145745362485605994006174984873145932827306035787084819039179400228163057529749791895035314657931702453822447777596698657034789895107323503980784959078293455719937823636032995799990920469853298702196186276701963823814410016548959944040585719078711281372226302791393939705972518195244297758878894764123765289529968213208024406239674718119785932829434871078176821831821927614526208501640167202699087272246486010621809589466807620909232136105568129437397179401976592536015619649856811386434339772852912433701716928267427579139038643880655772945903659740487627060997160015733900669106645661931040821505441463953381298544518868846344787397070607351399862164840351096625590543175539651269272768047252398388638691949418746041424460324420887515878609118965237538599565584929946497065256140952683369205982822543760543357139108934972637019508105213822370262241550596053439208821399084425650517332513618869052527386327126040599600333573900113938448768964956047521420091744943778320688587471643774975316052193256803358268606816248883930587679403111176458674319940241002310071259056509627575922298112778549921437404015283644824839938760365397541114127178863696661027343570593856804543423424965512518809770982868215802920408335499301685789222907530535816354768193778930431569586205920585446724935256639793197466587029170553233559562183345197614656833718080210433310548115822133375852916977775017878764922419540847194195454378957131635188523902845822037845433900802687285505473636600243775491048413256633808201394710952587922939959838195206258290239192291832081346014983423401276150812817565264823689694508606535177698325596527096210280457417246503267289953819780109800743059409264813457610606560748871347285447190095540710492766607940388954136945505081749488299724333030342574014790468146979696100881396324940606719119223956337674570259251202536254942443701929851006739258726105296604265106251988601565776748373924923782589831801273203444359707613797913653844600235079977500475278235759821794236985872443448139189789229987552245235299007617917640843951323959209951566442563255920353826943621223607502172256649264395368467141198337856610751278494511905942033199456124915749104674868341562279444929243303192221507136345869815981009688677302353048275883785305082448733276920892920412313665742276347548381175900520407665887458857005202628153317383288950792286311102846159697433381054815177093680706742080244366656781270635544513199673603813700744271940906508167520160017395697149361977945590630508262340034369089332846340418191891127834323602565030859626646403198588267572726575732132588612863988560585334444904102070968574390377878135317264339542046464189106043184775147251197007281214823759127186322875556165789582284964340552959338228844826607987484183442920591386438256950826985884495832332274523311268204041560556168403400076241802072815335329470006007962354343935286033407668391093589451285648505846419242402233149181617923050778693791609506370584505547430740591164620549048238145804851770401431628904573093296919426858347815889417983494391367321218355712943229733162281167406920663429238087225484338916746752226083159906146693645976964588362396217227508634222865655590252441675495808714575722951480117227834618971583727488683260236210984395170751948317052167158248419472812832197813851135856443531497977218458002416367116520047042370552318905227021243643842191546785405328163120504189617566601233624821767435273920831242662795417825083745260234245490094199389261038644224050295299032374103909318720470065222651364701539282508929624605469025249092814720602003794710412080789271620362887347259269673374426741902084880556634849916148127050783643331292528673947498396818838011511803544350599606162192363880429021462798403818915970382114939398748853238988405141417988026631364042652028306777461276881669187614191219477641168331236460806614131618873696888040587138014060683960381726506681057562063612433579147351729101782776498710287868732460073845694676901640993930781995690031862028098744277657379056077883752934034040389528106627671528442195541835412903207262999230863682975923679128349832407507634587316555803013127459613656547612037099149793961343157119127823534983040079401189058277770591526529766098237425546526961044311897103924739759961264618096583771053677310775298823850304126414941259452728292739945704535167889798348690614508312312316541242757972859109971729156576719929606148297056482006605362404827166764398588435631754562998544057134206937827914983024340494466397015136201246276714745244716937480899241260836518133458059798067596732417625809749713854583757250005551249427145470890381564023948559541973286569248035945707959657700561214201057680737394062131270403865364301123356061473427808977983506419319342007550920033693183312618243177681245657929067894500104002306439795457608955734956746273666956548252175227472240364167538469255901780347113716141336562431578123455044121620854905262111332998827329161172561651298158505890514005634432983131474726970551252069665955203566009102873966917751884994849940027540603714874366738837577372977144957767578419303179659806858865010086534468856925063200994988791226639562864787394881128791195510582106751603825234960766290708248801267926081940085257020247252766257201439340674401135823222246967970228440601721188642722836870467463182614726329594817721808829605079718768780939724855505376806175818667216392642529891826265158060256082535715983920432997641810746079417046228565918468839839928543402412344993790643319677452289924502544173654974193375742709729873725863051654390297976791828567388854869807806718365702340677432526915864668173888656602635617127872974302467520947877644414876846439707170098007224036389194018212458704326323387151327926094106858769574060002938222133073455371388687140260840521103485691372744077531105658862623348067243393423994606562050882834853005952096907118032633705654284773861080044529463523391861894485732008580829584078137388313789298683842865877736555264467339579581194474820543341161139488121088229254087836390584729838926943957834933538089203874492331724400722722923646285089563904333900042888704892865490719685402534523311125370629498993934753540409799653750799324128472988079751460530338762327560232956778912032082407766963016432177393596494064547884939146322101828617566083464089980969422667984043052965081016837597261622566075008010802640346193941342074087466783158224214737658715653179837356725983153658078852644656032638566526101531432035624711787896971783283297160642944431290656278166319922589203053688818921121860071352448385765658347917507114980090796358670465451871448475163668787204734594383889198895697577294182914495284855120494395623090867767311988865246503580100379438255866409885882077549138885372024174051750246669892978715323219336957253707897703109441209602990749412769641217715802369297480441107260002668107447180813486550418298608321950196442150692573152352495236862467738424949958855828123393101137343121647767801098880075828702285941011438929063361025415437778545499623471398921884843525861330342459564979998068844070214445268193301618120905680874640171627271958896064738868754547733841507534859447193019687732793048454284408181032159378175514253115265080563079823294934837717049083298070481238119626551863640519400306782872121256123071737768787816377505590025835472339568861773796247237778910850921732799723404097107601267029552309409398215441227205116696551517232340160695911137546154846912725398884543131174044935472288852231377846736117014803346372543235616921108110982873116494535891851820075956420903063132614564948766203716470145580023613355783133682565217417183137098386684513932751163252724209095370034911621588387564325236074678788803943641862415193153463561846269805734350532604473964321224785813220646557727584156998845780096532482607809999456468387971313375923728158935942913130186551568473363371485934186450175333544317850327263660073362361116812734612440702748693318439330044857201790055117785688096667332008471692628323457402925477808075155327776465549136282770855249660810884369984341870616744858825526111292487954210704578407213986204183214796381453300182047696157571182214741661525725473859394999517468773470295174191968787763819465861283646771121614425045413868961197773983433166502654140938202706892106303106021061711731145373697039494721357140551695046424691297999877266026188280760956093176730034058587688153869401187049482000548237080781775210324525449613901058689707617356673571161092430447813799855027788790673003619301001457801128913336176395528030958565231171298021278347886094143896649729688569949353309952103390330245897222370458180627300927674686020562555941158906026625360935483963171085877699542348775682978898461532897412553999249115788359235557478349882551792394675930344424626176287837763369501063045550334669202810386323976848009176892605898329641418138418584472677422945892571528460551206053865913534108650891126289827489499858105086070957595467522956076652236287989901300327645087972656550965926972283669581522049109154596461028084478300686212779259620818586082122635259965669319470717440169387170640648769561068216131897283541958498304434266595659633865399603534930257808816822849797595647820925015969441649807053971127456596570265819683154380271281587682772053093729543749022654091123536733316931398297590356007340753229853108206989646518001946521340716440192264272929988534131854518719738148760899411131920717598155516479435821694040464197527812900712935669800366529782870845860198032299511048236381705063789163615134560992941355608221165895710293273054908014916547857680280881437409340152094237050770502924661997396356732335583024785944579631085375190086462139517304044171865867452923597803854780059681500090286879392392103251567615473395068289380579154509988241057308761786566854850717246478748528772708567668352578631204465590769201105943964151283058839835198925184167647508134822838990365931422675227869925704118086657367183001328783975985142082170395991599058597479413192247395831103965280388065061718894202460846853908035453003906812488774465848434423314636604504896244520639782910913100379824740241644846666868132151561742629898297472695437543249037946517792468365226068647844727216517780658754981448964711863466457565084549791988647739790837418365495422018717389919199622583471806945071162696514461432509280523661616652785211497091258295295959824656724780129040961538416743767843745063434558852942417839743556436336634683564395838589558789585123931356814476060145372107957818254190093778556645624916657940617409534952173832951493159980817866128991089622854452995764407269163423002578336150808822460175129412853226042234277282960894860927691636115922595425042840258876821846334086185724293151096896700041286438306121757770186511258301585563577471249420624676110397646130404150825090714148456996448953998992241746004153938504213642640759745666375894927057505894399312840783076986284124730049118900471019545042668132550172152468017629594249472247618155144108545829266946834498295020490749339558215776997322305468075950282680147929001639531929408827982603183082976800694701370504400758146897092858157417206757241859652121973743633970966525027205444468163955903906628215715919885603305431843650122983680711157785161039372327198481146189227641226325031767195986230498478123484881427314416039026629477190054343889334211679683168546323948011909886149922673688975095718285176978112371088664985482221684778992031492064728910967538491804938370253947349291988447435896310657829255216134063260541805898452357126524356207437691668522533250415172833031459472704698712376388448439858030198686937777406975809443238786509056382950026531447153509146896087815304571286008781313748935679326941964018430921386842340467337458280513766333730917038778135291980209235829137383609379361394892828129716713068557220651193426726724625012190011684155134407818837148476320772036248377342235185123195869547475430920026112535186680269450589886065997029664848352261990490204018834482281814163859503531108459736373886253453154748384049066403897411915323771608203160533807203051400812161247823726650094853851002194350466789585402877821652754316894757327650460322077440425558453155033855256611093904351191379885056596578300831786709700357444566497196478584104027109342027701559961526757232012198923615771360622965161711102412637579516398685459698194797134590954928195691018696721855161349075234049348569207702042871168262913227246683302914548458376217627275427544803734258985380501897978479332114559630739114488381426775145627972903551426921180642884152688718047692898173983635681130400931693409725414204196633862670550152264696185397439513801914082885452061130705227907105228302791565210931949925664645405752741177925974149510771909773077249849611331318918233016128211862774582246069030444880193687978777874857879670510986354845149412480571782002733143350063048261335592044587475139500784806870303767534410580917894283304806751289330542526807194685495962076932872609171721559411035053609354049029577720274798017170125311961469858840519593237400061665617601358515713327278360417949357735968747563179143224747372507370152874275542644185118801222359683579826563608819835704110589940763451669666996555877803479846565762775656714685535687288415566025465167900043058165959241968854611576991392666465721247772656571679652889751869815297068757616750690372121564034994703730166441314815472771547818675327520770138199528802942484160230528421949512731558630237788995900497972014572227461460094970911138520859156582397623482176803613024142000175079272941026318818850780764794043701948823504707734325034179604484147684883000313477101967021279872817871559267593973470806634660465495202459552303608655439844952936119487332681914530778311531938339696357902354636177335301463194072014676124574430674179176394578833880107764194638643921618458963874201306761837024504693669086559116882874802444796425914072300709099164459750529385138292849309963479147188415970325410668409331353804482514934205069602661868258367283391793499085442872409752247842410607291375980362424135843742687801268331489317417586598439513951439737802216758347269618798203162883216292289530813177352663286699537482932576574382399836104939310075454914628803050661594954420911003372725921697557527634627706764696673245350041756875690711216407395437184051836818276866185072341550085696340213935561408729677216451856106308758396185903955661744900542911576241938593270556439057394660859079863713633615583725795261268218907205028758370331318055371239376503041145435430432635421629313670373024326675579590710592466315645074716853913229202984621902161780562442129898055821148878545010267436933215053325872719846277799466370484157463241442938772851564880456666992889815930370943597107407789605117586620544350417916905846477582104830066615994673271955185885185223379483572582501830459968617928704925367430950158917368569852467011228986710694707560144406929277486204778557821915341677509560827342208562449883996134714795776553218641540881345127209934296275493037823377414534911642388445007328547449121232463341360000412280434963480966921150715805084391876356615610919506104407943553236797551316608468034049192731362523432953888679825861534101979225092680625511484141198252497704735986389372616983601121905114413288895480437998564793183283698851105520531959384817257203221682483068899336825993303778870633284646698163411907150150423998100333579866277508672594130914505784282192139836225933774009737310306490998060311091336306848247554830897253150269145324643579534939658973088906935469841185021306914630123182112459694493194190699419336174077506195920062209625660631173023902555388690707128402093692120314848506718785985888298635902446532879084116808147182459201746576186788380664569118608043788609499196498474234557904783957807021438785141875463721401823426597385324102445360982216891653466135510752307084803706705795655851539793697184722574033029846633839750349424436582972243395410201671339090652364429253439497854596777003740518590525065012870545048004215950091494811018798853787083600757154322635362546564852147020069789216041978448386899276136073386249613739142722042378702655080050230196327592884231304167013004659960983295519890252163583287206026238667450390984123982258899712736031766838271480569915565070261194289216676811209729531798981590137778561135071065250860109927025663541589828456059283657381399642104504621011298172763689344285887482885490847027092074089178499678985752048955868888479148912580851709255180198721520707680460337887506702695015570537628293830905292716021848172630662964699186969137436819066054621371546033047536934519637252204542937420173181198515042737771950595442253751477516625155761208769955812386778339326827683196016117011663148760119256613693681949627339702908796622144263055882513925227964699630282298459130415058045446812887218895572502267635716490426146658830611290611128479235805592478001598053511972594225984594736923746913095524721998531248101214170929104482459945337842047695635458337722472421206843168204504524905310400211170516689111290245434246721852655578756696898315957865611101942355147066013794108955603952852440040809023078590088954735290728573446386634241733274873601352522144884755035985063526234493993826267319210471323770807172271793011038013304669644389982165024255770204017186315984937631303321266364858265128172952379340801475595907095278275968757855323704259836176824392438793965825507740503290118655578291189038870792112020438053405587303633053768692638590806522367222825885919303663108793590305405785772429347947467939598737583771070120583788432205533480589014511217817768627298785549372598614413332098999520191379545065285691096395514651433328262473409368973117088831984028350839635143988318893063121266105566440140540989242211950878077846209428325221807827642088549146116115147152665870126319791093898985017702786818130456176852285115255665256206766813059306775435827795053241374917094427308419817806001862055098043520827555869419020147019123682078443245731921968768264493455357646420939982634818710482054967465929892771629300510033822692651011651097165876449391348449885682201018941184926188571968164646201337404786221858377315426078715688785828782089670731640098937192600694458834661062050530111299234898471554563051588522920238124328230847231364925017612224069656045195184561460670923623950601457009440206179147735725853136555114297557517697878455079620971386689715227971822933871917289002247800696645487719298229801237375070295465664805174254277163962799757578765386867872714969587534990227100161956038722856211865244480117919828427064125263776327420745536342760207390189014860590444023104878204311005074574130358410625679745525735086097188987469176034372861845469908778725164303281788992406549220402030031133177841829755489596912173237771999986055570949116928619891631026085490824109244343489796158889182176941527553632984988514768272658706481881827117640515707371963455544698361589870388721673914550345501800872907449649155413873356530584956206722961215247480775473305905773383039186635579126058965125538697040686647133240445601247155966933585200754385610757445526601862203270669332370727783380359426356492590481865565733253208102523481342805337076695863685156124070785957371945097946278787186886877045009584674478988614001204557882101262499569605314333600215497337474382454054729243514635393766396018340890989769171645540197670040616877296258354806531818088598019444868169700684284193868036110132989170525372179772151364466458824763810773709162567361217869307933057107006140093231772137438611879309876114330311081313790640508379718966348096934697862321731043626280303977862878235587739798772956277005883574373433067467238283469143562186921147601769515113505190386464680893605841947647880493161964491664403747760088545943665643313227181477282144301658079090153877032619088422004108106292013626237317704880982479875615397184257947000492476952029776523394124503594970774017193292116294423757637429996144798698696198415900712755402821733865526211325139348713796756142242294797921579252205375889580794705064356412483182807794795994385055161580881175416648287539101157221957712114268754641992463947491692389925824937802063125891033010444646287593044271555225847535324345102913884160624868385719770558270478003098349962032191222243276011664926570194574153919539043825254056412910409919630043282441608708625531786334279158650232616974783708993947291538536373065326088996179919375835034320329335647709727236091063541635260743974683135908540673108880853449957787757545567435535256493723057783246310973151011514253711968004594726031321892493062469370959163150535620795334758879791242882242926462160580884556072983778412844601721059048947131942994245768613636352826253060472097753913733482960791110812424585805687736558301326738349462377183812136900636599538053310567193484521958070617131080442492218218008976299881785571555915598019328600791291780622909586340190012901018750977922427530243718312736321059131920641207274005181825794001801109810896536233732893059076803807746366589814705870353357464024093157737305756911434132776667793883598348561707286336893177172770058443732985820790995356495339517576180365915949076184452528384588252099032386112976310372983889307609716135578747698707915805675661518955597681894001096519307803982056918759151465669878579774007085777468862217556288031916776829760833026411266162119776203853209560589017966016709965418778357632694781978142775696096248674733657850903052955675971115087470906779309123448655682184343387742088356186748249181735943808742498915249462882670755219749910976137529459538191222761649057919565811159436971907719101427168166342502092980208398757854525019894866916425808081234918932564411947760728179363809882408379892468058239658997092593445216460249165375154050244952959158348139655954517574793991171470056820120552521568374212844042537828207815745277009893046622187519207555842861675646713397095960744047607247484802037240599369203422824452796887811225014327623903588360821835010080895485461223832498890952540365013077234112196735165937651727378209576074038826126364618031356795174560238200207957542902813678596381445418249229693916085271564840181540475193828008857387245487651433412622901179128099223042843677500740146087719143431220532075610455610728838085460252154602215975433235513018285798029129497422545560031272205368841955076729048268693405952137795159539232697530142866817521857203670704056300640066947368561909758437279411548469284683330762684417880964399763167266818078817983419368163198537289809298620077766781134526461689855107258164417227549720767091920592604694639394390240695589533388878531757555819024902560123518182703776038979462897322445636837862074471456412368065149493105758896845573625631859683521000461103245305814450072136204988370263288498586091863683258937376350161019928627355460141197538729833347828319406445267103306981860225869545896580869139454055247857171377084410970809970235263013585257482588363663322746410860494500236493305986826019431628817551579679419707400632832855691835926385251025475301187971196661065395951934775891885007208494183836332249110074362478289500818552490056014718475327735683685043653404740449023263451008116891434513877380323472308970165265396567977075237246733032710282506811822352560213132863543168255413012561834261069818281852741230109861843547437293313177612703064558882713397616450542797517576214245202717639789322061458838400840443656595534645609674041691586041829340035395411921246041995209722077522757343729798340868295961975850873738173609202504953681037445912680669870856292434699666087085315811833863031886902799015835076314945256256087663230991732309241272766131828295231216197954224046273564760574396835780105443663289156195788110279477449906103847788238845143536707525697051693855702101425259731614151677973157949092603231419543079443392146209790193559172298310523931283725634702229785554799631275925039194470922639050482999527879758146785113970733703756567982791997080450388103988755986099707796312966932310329247376125788779659484901051076049824282656612762398925184931062796542108842754760600280130093160636712255767930598776433704101997927815655112747273465147507417840446280700916252943275512543681408177473315619179772026402728718153213893591008349161200692464085751858954392135023598640013862187853462723022804849833629860137296671287287873466419865583910806366808786683389457461507690323301853634112192520824265124988158141331357585234278291162138402791070591620855621893093155190741311219777620195430679416421177260920530917856263111317823546267479015306715025354786792209454631937219030529801013381733749804567777871686420628715658241141185125962349926007993088209282414815209726018688162853776445502690788769360686303423552026396042577816454290535238554951205065340532964471415040280535329755340109880970187172203647058451297369132488903188923585224780890373005497900358521785693437385944114409604086913789601716956622375337359248098138120829732016583910877163673970856446651000065266675024982685377796737648246259919572475001312487779316311126820913191681215542950165232440651351877040425411729864012255543462044134853703936948047506681992827314437442309995734677580669290168777184547197913433358233156744946551828082084084779895836016718936077916174062716521131956940516548468713135602901445478911415082080025527914982046457535409711335223065326308676360165953520688278387840182053522390550925969443858905132767238642153004235266389232564663611101163687349699871494999492240773793740679867345806156112481057606470694868535972877465156722463479594197989386621468919922857979025542756921150695150931781104980868740653125015110454261609518744951279302322744714810739733172618723190493928650128026276075061131435034368049144505018556689387627950012290588909407926347725770858525164819364130953575864409524150273448972060366246237982190200204919190950317808286464471460154607101446722523876631393663225437533698934864541748012289732203937667425719819835429948855190029967451545288537768260419902204433979204038430245327690960629727542766855227110420487331124754751060790928236919316279228519994642398450343387811489233127322183534400071552581796397513041389992877899004688827954895125251131731403455491904476599787652120635030935786438742806077629738301137242613285390537580736710165881300778126989036909241211072085417119641804486818146581762583091668635489496183386346650338824401969718880941642515937728858316958166392101232117634946394228283325147136054750425838329276876368933991082277242158049014521879735672225851480447726029053759533539694158577001926756974395039915545677172259450739640780773310451050154159449432924365863124755718227174412588360475708033173675122170919153550318643457772021095281445190721943157480577436145257952621382624382379161248990263967435336457526950128700993625695645204844827885524530471744958261368093471601542079096643922462567394534787159448667550131102531628018109919858707272809394015869030913828689949612816236754323754402723180411601130171274411987649522043303595907226070826770397839653928820872179481685036738819288815540551549280268472356857713381451772286356901791451986202851876601017964025552363537022400900039451621115907238328051671687564406656240219868853952862233384758879605466186783354950954388713522811782556379273253265724479142839107575403377061065394735467109670602798977230672234606483179479966729466494045863685376798615015252031952697653043150797534110929625297472074163588904077676654393401285934403530283456538938952213243016813261143900031929077357801943891366359887867239139612671863134431705153377259492570977448828679720832032614125168991582483095835506577292010815469742646618564524724612204999554605118234707593161807014350017077761612848862932657729909312796341298632299549262742398166145970924601636020032105352723249088960152100605270828851187934174777462307893106555824848280767907616820068731998866415249940136149754163649394320392652628473225969165823180774387994942162539322438943253925391319725076864405677785000390998954283734047099317087633359848816966379275870589147148688931314062475858215059006821174847329829589702868796270796044658743804919630743362791314400369115700196309622652744368105373779680294336882486047297989137685173992344211786288518734478599751270324261109753151806947099661112788669946564669785472855646649086061776891763743479370538364107070624424810434901187367986545282034243900391732283164098367726289626796175257530385471392673481757737117380769887588951655307030732657833995238985309050959351999658020071084245887000698473232197793503453086312393531075594414151692439861121294762762356212180425079050065721619683830062291799135339085390584990958992010922057467215351185717799704584112224884475263314297523019700147523518509507926366380198250462990510408635246246410317374384209670535914041284456163456959662937471702959775588779153313814119028591411329784305278605412341931650478963909986753956023382417959131144440878720524012284106732271917662903778464019013528634847316354552504353644962555987608223043590365347038157725261278682218041340649241765326785402976656397818930042477343120412084566137033630577805213015540690979612528881642308631127787136006676766952922406013684051649064750632221579680295471432203434139550477665321839599274667577608946214360712121237596437542627416552858239710220158641293711109184802247662063077290790813781887246166473959209309108706058177064916927562247146239320311670027128392813761103217540661146238277473720204026237703056682826860194557602940689956788209246950220385502220296124949964792343575453640333776651617465732001597291889568006460939973471811454509918576874058695809400283382919907638679666233286222452816348679355291162080713097354371524049373780972898860061231194878092191848016319892953607104735012314707076850276202104951732180504302247519827439240390590998406739081746558280873258417749213037866818974764716452498276343623997141270096368939951559636350209267125316025774437675702507558967622088374988279043589103202257529192752937109861837859272857658320284108551261120095917794169332532713959098545505295562341253922999229575014945942451161539336595823370852912879103746817462244015132350389207573129279658059560244382480260790857531867245006568378657744486253738963772656969449881582629091476612983066772343161661671488174079465319936959268165360452224284570397902740687027551722853667495591042834545280290823645909936388640053334367040964138364697875110500992006941614834134230015114923192806607673966767566506124134809025017722456451118276332178127253806843595093287504715292869557427922203240807931807830578234301135427092633884722118234072928834841822834394300823174083144589636680689058275291551262933356087341321295432482413866502528916344510927837497921868929674640946041281061001215893766339735206755062629958089574981156331632555377722758416315904793433783815929605905567588569580503117433474663481924070131984634651779590735702588777633458134452017105792002640568796391271939341597069039944096508876371067275490944820538575360588014772924250338539158134209484761780218260699237004480241819946754317945404579429441797661843202764353567167082778884732865901555872423144963253204843701046205834058372789695671583914246821448969474939115563433608796999846731168006375279666727294548279421425297334114427597112813547620321597959988326316163826162519358233151151478465061407494601774067726271953937952503266699260764675638011240075373722790697125311961974017429149128722446328585471291258275054492567680597790936527930784382873045913788911090708534192615259978253833147166358242668823088912483438641466448831145543687214590588282004892450030071408319791226450277580226528103559458202672913040007112210543058682302858946862868020029303089356082070839401724758314792202618249387315598410661054847597055612115206278270624618950348062998681529900097554375983540978949784272435908528041989106276881059224707324233683995172853485187397767877661123880417816686125242394278417639651180940212882844907098023520440410289608891607933258784486896521929168160705975276822109051781381594593644787431803439593566042910556639745473071241673345701810266085908193725483375923656724198619029123413382313195798728862788993073219475327538560817171539681852369540828264050969604791358683499452713061515597184869349066844647762315783015499579142414433475697986075089179277019873840960789153593662798274080189433848148862431504808359113960136256222673951910117001628487249943690042645979685591200113217623615977280721990638912962171792955149663382225130088660587957823071767883681602454491749480033703961402432341924972400785732544172418515333742803568053942687529179454339101699615339831300017583615154258361453211137405004385185411883921229849595214482080086652664115976438726965215954503126339351799255106911642992767840138837315239460544339392453398667987879363407398479559518293063666111849552852952155815190311241860622894708345133683099940027010987558557309190785815898766307892685004518138747513861649342673091023873206223543655771159343879149188115317090984816728668040163936408582139909506615110995541152155811193949437221588008455633103923541401959065469548059811459400835368314006601738988444694218501644374878265096453396724416008844486084929532691081581510603439125558254390276928026835828950289287427298429796638489417824131959804787915517779449902434104825250409752081349773228419172788692605490552836674313732861587000355840317454255672401563657517172797786871806725826112415262793318376380971073745593315005066245732236785317210722088728088503746856343481686282716542349397841847033720063155961767403009990460849596988165546402667369246403860439375558842658639961711675309527703039847106592571412674854393640417594317539163544273812051715912892808711796084916464978442167712591303687109891818614823964488933830411733392535476200138528461043734935583720003611552576898251333485117468761706772105495017284793415479213794626763605641994572370998726203146367570144313039742076374251754987988933717871432433989650057900530019213673519194956422299591730186195844832736988048065219597570405099476481109971004660539713908390810800419614502045673573734475077523362127789292756894550369057049848586967039444426859147899565684835199472450983945039390470460174915150987601724194645856245111714106099856858460421889363735522343268307552656704205176313650890390293027408647051596375293583477062667235946291859447563027975471939765371048922019362995592728337250079298450469398576259120495819278433898925003524055502094826018094372449315835217574890506251467471198450473073099917963163186121156691203525898298930254012420232648536803296265406746845342625905039435642503546944684661496630349793722094433010320011508110036485470445366731426627055751736103545066921621310853935690785963569131855503304246265690823845746475398127018281096947609849671698592305227986700645163926362967647339106151795152832007911421704499919336016917466802439479990215382688195468372069313234298803399403265914511893662570725484794957021572084413371425531009066318803400758669587809775531625350707175307760154434877272350388845436051527144333263300627265458122586542202357782837034351170467968142311631854683065838745996732677699041010771014628245115063063968719763969388605869941367689819987444869506347408327135689410293294173537341405220576270374050628801630608568225336739193358404154615527778319218206570753988415026786103035853854476182025247060193577185172151984636851087076659257772021502138500815739579964966775271372284230739173698728093260947145577800403274280501773361358492355557628693973741930688967973512833502430567546669308836280910525348810760941369383485066247676285393702789406824964142043870038152208520048351755776688904487246541070333973081552840102349593024651920077911491683566428580048058177030604366215194542376432040905037286161179838558395543837393374461449975492746839746714640966591683130030210357222210212697314022551326743809549624432679371377653746826807138416600346641884395579180588317050957597231975098890826235936778050521089188195295047728105255047854704184985945179935772427514122133745184740445012375004433069545096000028820749124743455105403859970640156469183192941957365194806876596620984420492555337327737023038779383101613807374659311200751442682651795456037233500549687798748485057356489742373399465386645828338125086923846919933880920185675810785288371442117673089512566171832964623448100800404407062586959698250279219647511127444892534201398681316075214875611290619007331693906363002358193824022209991182712687902291813490829084143933896981191018319333852324445317551964271447174681257784388314992597510299623883425222403600157951407036135608521319722774744257564143588287762502815764650280592111425328895396395333797359743944731820973716331496791342950062240077855635226843444271124930848508023467565578330745952683784340617794839101354026366921711539972362912377872033709775314548193896552841082300382411844994717811369814045589078272415009269972114782713110893824811869328171262017135804527081879102604281484114332243827297868411048663403110786660863303605198925771276703887715192882035391143502478182234905880934582659537485269591919291007320099126168824176005044776016565332073093044255324974920553682231361981838131022116726059732390280499686236156687931904614134491445657559521573774765104901190132058377108165705177256277329048382576636296149925102655065253311452477742583717505796417015625365433522568373381529669175886276222274696081038102153343047057977165291571864031001652916601515275840083201302304438041124254225740068413990340529608628199795752129937409832562218615213321751673488894892202023100570504327341566394791893494082160572126838783098762365433622810500801678552709439973299613794582693815444418622639607519663562496068009369087937715198100339105062416407137035765247287562591986560260925282265132068581384694380233636731849524050655887355813304015341653812768969737325916561132928864904430690683500089230769093378964930754998262204737682289859945331706469730478495893765209941016802130315824592989711966726673070336894314817142845146722222754512988851044423759794689781724304404957201354185758609279127707070793982054768107471224571446207513884817659878517516731872517298971348347698977749634387181228727760185007335607061902140901619010130454860092184492838938755858307796290285188183469379060723435269181688919000811163246772268815308404224968753965873713518414843384536173762098714648094476076050933205424578705308823203392257036936705694611011566630080573179264209039830997168378704346534758091233464885254805963569857045947407271940197695601142097852388871714247772610334993665277010176228681734725747188747182594057335761564553642741450901326868755120558887740352049227333474871901148522491146394308619475353405529219018422868555023201302303099470375639667679033408173393889031639154032228697930324686605506563063519286903271041224786604427014096783534583600102231643022082169132038662313856365601252149244921382883647498021626012114692971216464484472607222714871543961081823908894545868563118231777422011279333578933606064496978708571806710437454879047844221140817261514127052702294678014933071843432033183904094875874868555103267784097420380192126797507553602799384045548771771032484699664602154088520405565507846939913398289230209270422889823884973948724986834419149019517665980906601634186257697105632138757886924905114199018489027286512292059750614569016042127644961314185204914986822112819161059472628714508429911583204952277668147544479472253958445550831611731710779318314546245427641828319749877105905470226892974483469103351270908171194265687228227278360204567604237468760110216767598674649816511877951945689282532932409520209639132697370074753173598401730365380896786276342293647497059712075636496804920819283409008564340073740757071239437716497980268143365083635754338111754688814809792212847576451454209622145248841913689791124601850100286599274771582108296866781615834647650267462517020222586808342413580632440488284070950332506214646896545030830195717248439903543013197974997323275269993580656963560549596157313051776920082938817043878597387903266712366717500710410046576428214237752863240455272016221667376998730337172223826684017311570834553037309623080578590141391771687572539700715886810561503496999630637328723354046325196729492519379528973445660259629620185458845252821948706666051614569216060436476908899591526511071736126259404734571148556538006267205957512685150244819180611282180230207956788595359840658854463410179333980630570645129701191944671408351013024476386536914032900400608166648256114696283553721948420409700689547366646160807702852148332304718416734581343527228776320150057419908661377918490172027177200947358836342316964910202149061866095194616237983160595743228449056529872107750849423377257098336134256660936242744221485310320908452192029990639736398778856196141742599869895346534112847525116256055710465821765279903129114586861975746785749168697213962649866909505423274454218012406346224688060081393166088107315120309470093405134552468140399933518931867957561971572792692650397196515197305026310603781086996483112193185378391091359554028680017149095289514991260582958581692103712874504845033974133392206083181892838960873846339186422486032915575701863967545630805246699871391333161101365097796515687964129205150083567943181209481880530462601286531868226123505200409784207245598842454430044945817890164023266999653140318293980622589230363483820836362104594818383946924806134847099987534573528315950554025776615075557917328448928799478244073601696782682337654063791607825904382595818340140887257948877791857773288480941135073686010165697948070958640036909899714118202418615723044916643397331406246577224413446021873695716771893799536823653842854212561324993247324279804996500846536195798145157095205371424106770586653473086283251598299746846520406135197177861345820420827555008709678037145860166092368655084859840547798051600834321913509247628992810470351782586573509893256005642069762325792916673285830359068618566480503578990501965714272755192979644010022408912082240125201232485314407473341240177090604363193931264748459841494375791957979151073869721116931100299426860613222232478668770023207334848107427261386461495004266150739574135269715526121475334682301901996851602929531233789822332540925435060146761803561349006560038423429299600608604924408287963094449364789257970445577832243563524271404490326558578269357876184177381855886720651257847344079047884885814215822143962494562240279462609467349196847891214701514946577933645619402284423477462868726299842149315087966479419319257390759690365378762768572390842497699448644820161040380129780936154020553789614964199567981511395011812059505003299721479128009445084305711727835665366772065752954394627964307721574167365047548362790986062084240850968888518768995305834970483979423874723461963971371378863069788924634587841875821623006054645710879474526138246884592717587341656646263754601937345592626939179911001592517932803266314361135663590382176435627926010527916619998734199406906064043405644809628005229126595928976675404696690519806358655523051714002131570755180275674928668263314147862556764965040054406358129032285037068658945402522564928495363033962362938770595938829206700061961941421214554646900356918293654823651820401512818595395435370701654104768714920145931162371290489598714618541670100370853779804905452882222566885649304914209272513661367952344063695081507818644317131058019584437318772616267161884611471917632851334676887038608114342153440595623650587233422938630428126618552130914491046784143542725886232099319191615214567684604032062310764611846667685752798977999907184552212757230609886190836844937140358253070887682500604535873210589866861697985231777282782140999440065079323259855327946774843171045166300051484857477577851246523960464182877986546526886012127727674405904754787120314573220177291101099224513430929280664749127277620391041046938643115780086913788378830337142352180313042539228394240606849727926339060114232614472815798813215047772752758475745282513366499268936992186760605950604781726064907469078077428373466134891665986471057924120109663539357249249793928789908605075353674271070762425184119446290750157288781874637376521127373145018671585052381033308291517424953778270684396951337789132392599222901081821536955141319905390106774178437337287355834186245322993011788343745358413418842161732296174653564927564866024572230026228430030190757098649141446584670390251610120951495000963049060061544126771480277246300425728831525041785043056528613446570014464613107495507245541286211224087006458131183964613007143233102449023337817777450654750045395617279508843555183034672298239094065124391365701332720096782464062379292523254606587601556279198311382298572618199420388491657096911118298656231268925556680438727953179263674616473206605079059359556359719927405803333927898635127435336947037677965758485696810845284723083797831353860994307184148778715954531263184474649040251124590862107948219599154598074904963065023452488816300713004356209036730922258803607908064095671719680264112144019603917308031604736210981911847838810783707469507967731225768033905125675865317992380985276828938001843020574336794338816640466992302534568804996284015405158595391627262191951666950181576147423849112400903091932358490865120840170473790479916103105849901100277892826271787380020339061803192694006091011636015930347107859751417516603899213220796888640702455572467701020588554197621263947464542320599130789515208214113934992606070057444108556628036274732988718708547587793488431532547432899408954988320360732658628698063877407566545008878575370985787887712743832661097973138962365599723282356926348378823315902368178719269882659993881663289735763199568223746573123525468352657553564542357087815381430196040053434850958942442545531361335442892168176226633115739544436304543022579321289152721584568161445512010871407906995440383696762351180364005634859102103888494008745905414903656649980716354204332778805435406580030486022562123800928306107693400229213584940774569406257814354863711986373508967624562107532170275785415917361458765408041499473017496612849123269905567242430280589635642395402011611100299056527010636505458131713815354251770516766467180379851718144315445612839896485359811190997735683886931462361042933873400147479332717437017192318243676875765301227866124210279904741682198833638513743789311985329480821277402921364789428123376652624203696933719312213874655356195032499007732890147972039054223772976071747898324155016974077828701432606710564035375719896389031840499794181672734230387818435016021499809963405527130801562584418487938060526121432937813010478992232745504421206669431035755389877135066936659247803036878165499005928485459101729387945201916595083631127407078444377803563895050435508811987039992422613196667184839075938554006445056388169054180289805011511618556416243898747694217206770003289598775267622342085739349920505046124122725996709749041351297820354833724205421480188946423583612420929131265179287161274895737254525547227406568576069065186482335393731519734135241383557762459738248017102872565415146638350966058640277048191376411559013472044199780948431413959095921128802504258909840348964621055650941752106997224629336029177287113304552922972207632281753346641420757968990034340535692563993201229682120734910187153678395086389587945683860553405456130110117696010259964453399769405694271618927558238773561667507961634815655381306787112402948326474363130079118088042521170202118966356527628608732013993621542406897868183792317783362793812077677659593127554155863121353245077477424974332042621239808405591158879084851883495154832751130535754526121883551214998614872294383565109190806825183939673864097022733943161820648485693332771539558475860725841940346553210057776994403221461780860321447455393071767203333823720927562753235064653550911791380133470500170810474410594956553589633716461885790415396062548225753345543912288942328113578873620087029553668516138989439906009754588995181522280260426811360392962459680996447528498818291162402769463774726595959534276899185949571404195288554993294340397102785976439585186379973242846296508517407264031216065921575451592567356407487724169938876684072625837463473584888740665379950044113568362284492925216805577018633830056823872061946690410886047955464252736486068568468961255618024363828975913916833718703051347555514288083191024005346735724933983377019101068455663733489188207748316338404371980699281254430367820865090426834966326542839973341082171630675806594969116675154603218791123658450287176147088090692143147960467258862038330549139916979300523520830265516422324606468750550745807905704390289921237473597394599636479133915180885605833140528275052585159133190852548054737781467616823007638760278185384500308654810424032650436784869212741109449163088653314060305452031918191466351399516100674269300597400994794697264777271389619374671600043384514959909127692336012852310509070036554090012031893101305198130555953378921207416707053305995083009290910259651090213180368048309550906937373855441482648727367426431436909186424559363134964695612886305405590471525521355262170854602282124219959365710031157645945446429584168625834873796255987217733777658737388017851415129409002604623083311413374036120144584193751547431115124852130026048003293431437093175737311751430813512632596367683204653846138301414236087862919032511971671482892087868228258436649297071586614197540561358275484908327073636228199163112191574604433456777043364900232646879821337183370110545230885065294636626200522353968190015650097836985896365946237843598534981571511062080459221300822689217371292095593772005145715670767616442890125326201754437006966461179471022811886018895675474895580520464061080157156352513645005829501402586649499530622862876784080244544101442923094651049750505910588067142952255426215437348608629801090760162120155438149048212043870883470647343759100247815393566780914246089824534413452408376241595487198037861103475756603022987595505936075136733305999725401305731351395593182398470094627074899823407382033665135419496712260350072827119477157035174461377635798681374118008314070891769057715420821406209703551694523685409642050231294887262635223269856445418760728179211819167543745052044851514397745727731550345209885474953794814717092067212329496073483417506257141292994041257009876212363481041928502313273535261187873385940787931229398719307107875335149396732604448956151130344371514781565424123234167300667848745604271422873096734569242741703516239599324323047281133092622888855674027646394800736011498595253661987056360160948673298507842943830898927315030258904518695382327543238230781160655915708867837600930906113005992918589020213742504325002740542493037704531031001562758421518300870876973983782260192918859422400030636648184335746481978449506330286176958796173903035437779448013606801938003216635035443008666517966403753574430079322384489232040720292895835074743006355908201128752673788227507127454394760137964991686334955016138834836470584708307503534802475303288133369164662960741883883155937613155169678071788025528115430708607906064241146291770287331574014992057317950409513902842441597090927087227346099232917064468889793126478388959506975865629861250494544861145853597783494456718453681431537912864081052794282064454935663751607493754432285142154262225934363298618334164501211779418951168267247245369154302609911790749655230361876726543708680359392978840647987037416400189028711345101366699574938898177899444388984128658184469174605785068050814600285918914495543317551608016882229626978514832473287015021692835968331962873728791699092070586857599725048060340331866099857664340459521451425875590712798535647295863935334611827758313684044789328947987543057329094232783025634320442737576081765392236926310216786305000134388039311426220572660562824004731508043933123389525590649537722165379995239207920973649587400820236489538972368099025971943400786700977522713543279733661614778478989342222044190444935369999440420261148752397080037525257813916462904416184830960197818117004201002308602421828923140408799115108329188941217327171623622232941515121859477858236743927291170705295300633988783173663694235667990574025910882445717380669297632168552079435104750877507285529033054615861163686526427698970920525806468320415370631895665735260745367928330162685829738243004770121774863839742446049654262278770222651184391357811259802640472212869387670660048594245430320693139598325381826194861398737258272840712093521278108131779289411431785952500198022728626651570920968069336701542508195729242910568964112817051740476978257763018545381815547698432875973255476130198239324551427909624626960183944261019022358304563747536557041611125556123059808543904037242970329461788336407406786019087345826333211930673864113768941303624498602195967436660000192115300694038459966016329844670633714929859732101688391709589898594317581097881551392481105119707211275502842132698706189007406567637768868627325448378303103043730201990501619213350105242983378616444018219569338375912181558251970864738314788930653304839690617075361294311481749542532050855508695613221337068350196342412615115720109850393625447765691986608682725125237109251920983966307311106338446362120004719061837880446391848290900330116586915828463097711050999234497960595606399867019031578634440989414390642383437672938785071578341046871152098408222725991564993198173636080043883137990388516523821510259656419150741262061501610895487492327914287231616965755853343037529207910958074941081727473179489788056595152150015042358989358287750666153634571327186480868328800290186111963160859776936624362021046067452182419029925114253075943624588513625218801338622381481527084592314038894809656526819887637074762420684337420431099936335435461430289259506289124104595262197682445529419824412684054853644493246726284704686443635933578567730367444074772845786213057970296272363885365852960446210356021481606559693945955013105278518737916871173422657622345037882758477342294023000991587271915019569569562126998088243696823393739245897106833874825422757700871230231297411460595183209941709104143567736105224402337242401869726478601398647150552148655070425179011420444745161528765719172848798475972012586871510038696661450374380408657347058360378808308050640203409141058107115598536359847945500992344433877709821699685983166196998824756103864215403016144749905279687884827668080044583268269350031713913854643353916595948360299044643787976548001678387454155535562094662363590862027390839427857869175767167413087888999185694386833242084045311772928874308562125258909577452599948789926624060604871315812332001745867174017937932028392265674464023405709917326873588710574864534424193877849919913539189376260068871418290197093495355531842714164664815435368621616943390201143299816037592980401111071631751589226301677260943165673039668820634046331691168705576909289931750041523502781334976023231251920336259361077138667263567537382509830015850366303343755129645715971504775175589811524638604709626565546896455560525702719415440917606382839694452558447728836819803923304432172892161979059797780661554093939984577307406705642765208963627165675880075182782845371034586309550029972585928575627958135489575365681261898485541881214959580547609751038852613833562757760587039265459601249409215768274966787325439184534855303693827191841648345813422727957573004100514912271887860520838245863750579765433030111658846342479130516624299365148161781444994096023083905804586988702037020087629496987861019241009833020693369804808258777504572849130976689020820189295387862059131792798604027990355274512690090955797783426649011007314100796004462561703450779052062279113454577831430955579930470364634594905925342167869979963381017424879221571096618291077162979343139745761513590395071371115214966100152888790964359898545469728022666739648251190175303327108242151073434803709681510731933336434808172569757817153791129096725570525590572062759823481697791420570506096609811506330635852283455625773443393354524120481397938134196816367696658633759123767441603073252224505408942731749651674518376495176059653597648463517529987776631021122626507427688728561431629562454473191547942689496726253186773191576404666775786749554553941081230394547490949904998533831708770584241215758528375791859009576033144562326726207618621534733451783296825614466011171393112677260375735747436515179624073911940331930273506785618588932259811671189230842378255122654395273388554454224598574198211108321235180508715443314281455132194935342946899012055995868490479915184903167724230513333259638627218451663478393428924566291718198400153817365364508624412878499524928540229633757174227909130684395659105333348504646995254872203424834917182536212883780806582903224706480651749985104782884034243354539541376110815628218950780115237731093416437560983558702197646404671939451122981616993645989333178348251983724457529332507131426458757087219671784007856913960992716732460009374176894649805365647464467201642076772270657924712795726080694650523147303616407391535834406936486342438045990288296133314074116984082004643927587748523719202789995387445784905502939764252852504030291042414692725287438334739095171925943575675688219805604478112781992553331050177797914797895798949145495362617542952712496840702621772183387367135662299358704747233060073393829275899932281319850730308329270170156558629262632636364186305874805202702471149223068374409206437960896791308182592495120221244037486043572814970688437706602171700869162360970182189935713388223268353804305731596222820204450656003064743594460016400627281544777551456608481111491601561438509908773091157828184963473079768459794861177514562014815331994439821404347104865398480944263089348200904407109535374664370574012029123170077721558319152145781374662507411525482112974888885798387101354737105093554396274688220224325682363738693593544087285507815551556939050800860713971980359366566633741511787169776424579792615456492441015474093557202463815707315181332968140743074842410206373460207183613568890208221619538238767826247183859827174589839134818816999505641114873883711910738631619316557192636369833627878733977745319381629826943375923060130656198001671234789416554274463118566851333897477180981901332789496200721338576830306423129307252310613023685475556702222065022743602108681916091643143571111959444618309514077340076871063804495223468960602692689217432084507764517173967633664200557637974239575087633188739267231098079281636873193709297916188300971411436850405933141987768281155585175087864265480980849312635044809110313178914001655753030325443632896735315148573910835745516549447320044727378135665262210619642905064165687429686395713337171910520622219555271128676497859083299306120102205793227045200544786806263859029193265012122248764368863043128717960924373016415931402021890992436158574166692934190039480015100058281182735920813179787752427418116204165204109382995112699548321155401316711667428742945192552477367714710503365423997591217279885396984947706254018909616764311155757477878263597467922523487613178819942779217481461048092712753725054840764830629586288883043078541440780126503859746852671384457841149815445744846588596227315342304973312140887021281251976260815595502287788823374892414780978661542508944370570344307882178853708767448028722649851353662163136320685024823455300122625665219503592907361183914216830983242557778366179512870004428674497726504334900661667046080733944529280282604452239484749946102973641966258500455291453497425626089570569110088754801310560418911167937086834686609389651381639231431703586004232812980442287684404328321650976710199188055001139975535510837663869600079898725777045924601137774841251889887923679143895689012440726855760183313555452621218813452384067799467610294865560330184188808587390787281739084769294419584271227118541157685865838126675169977258737514608126940410338224905101659152479845709896230074477517329903514881362428287577837661686246501715212179632154079596777369511941810972651862146374045148686701617526017753749189224677508537629323887155329568891929891143965688833278595705443932783434645284403272021019252690519812783443589938386811469434318273786502674787076617295554943002946389626507554342734909613298224444772908662738043341182871198817144759850152503061598105168932007963486137111451770582317075507060619220236147151093954336450266903945264893181192909330084419351916961193526196011159297327912418019844313308037924175668339190889029911635970830353591228211031893969075770393792381969690649369350233888694921935753835157369995676399620118984820918371357877518373874754909741022071856952385883294021342829556387288649165882187022802264664004878337570956062440501784599513983597089065366570989632849802898983753527102202342217491712330457078433599399736902999408796637617160409499886670973065898379141096123050211871367340721638153761577730933320313290913613473661865450671178504255441058942740641916180180361083183670611333937807566056763307751820713279944549387800061477466304100992521271221926134372607710009605806055878301177572833617820281978436655481534924997362846235766546557193102633418174241053543837205471310113774983874491919454838658742173712254071734686929736101338631846866058933873523854319316355289636626156160773119791557748611887145151688361212931957883679794374626510800272077442782825128866648886196270350006017637295465209029501731711442846340665465013503110881821305250245145959547139537207840605520395993473627120083303281524825514363825586352375414431283842479335045527403622474573619769400497429388661249184260067136941244700642417474468968839709641194429221800374067920892061615485983186722627641580809190138643062104714821818705470940273111384279902132119826961971181460701877211630359200775892398997489136976657827533604915865980133374031996090024887017567830324043028822954410280668646523955395652137096332216325840612390809292394175776900678522317507228955060813447231903625639159774351226904836705560634609729461350844594444888264912515501658264946679469024016338917114619617684800377544599286164120764803431204542938499280556971731884454525273764294552918540141184818855545872394860574298874515680942588608419778743487014993558626152360838823343761092541277002906095676744328657542150884677474604217712479175278399852562171792818953911209876724925073514190570968337243344559753086400592822275995819404690004645409561180137429749642058055942009797073397529969076686476424774094658083638194002048444342531731239441964350907333732678849814008405032724999958830369859826890692765469624015574949084891266206687773316602278190160331545467919572414066158855926698106452297762202956811298571688621901633071898015286622727321316403252426063253615241375815834161282914838240162521806913720058385608126286726387544941861699712190337399200125335373395036689190116411828649157572331181717608248504320803409431257365688962564259406893344626018188111084146592788691791329254100951224026296791956076019804921377135891343561967789184178877890604542187359484385477549848481432790717101241298066810784091678767178959064888561928928754867581545579569784338364135761891547237617777290719673236728853998248389713850485399651375471092546801085280829614756000990988414940001230109267392132180554980979647838907414945358821278423016266426085916055492341709399190768366586055996329724566414586250527787275220071858862142048095845194677989567501652997259453601004917242371182910227619280455693603472865165355026509263668350086326229962296211643268722010103331838254145801122059649892376302352043126577184580525934745931574074636532155964229391392805359556759398925220441284641295188135132468306398256812385305739102722583982962711485980539330416187413067663875680522975981669508574667869554175770201215137523016788009051297430271512338755086018329455637973283858742805177648564889448247293994679266439268615764940754853850980518357836404903275961072852987519163982755123741431739820697914569300472876224042747243110139796178220152822530390294830171647661111872266141844222452133310876400235461972636527289603747216593879210286507093541684551968708208406694616913837276238006633214626245136825425680041255742001439541648193343205744141328251217648386351411446125412824443553814130589543783734032639560581502601115573936344071286305149274100277197609724281909102341446592491601833947208607284819689942325469990643240899136829189433712949230716621813931588768352012501526193973974176596269406411640059464932706997420496631764678758718720248409936305211895995311715569635482334355205021918320338799520431819976876881046330966235259640997354560359100089962165742690464813080927871221071214433733395487898909857644577286081611263036240191896170673560585582070557284268102883501947907657432637681176782631440874327917832441727635444362722958470563630239942225132676498288156170419101201380923402166084740426538696277305512114784088987382643277216210446749474698573811289506578947206718020406916062229213973592497828945369677996812122122456991755282626063748286544773567724001579889537464572213584311582128414870418069492439810385558789884056096463633679579679593548148960372991767930561196633132160282850385703502433614385440001107713143864687857131700733596289426741027395308725462032843816261365616376730463778570675803311736559495764823939075221274757504143513737211253889224025274687408156735935278198438715871317275625295372841504390413403805918640708675779895064121994295109805095394363892511128101922970159025951238771897190396611138749774264456595588017410819878794046563448011824154883786409898532967848436909747858063490131725684593448876406718595571395021681015488798467772921313624670449748032024532388170208150505882837996332487507366015644411846001470664082313359345196754842324701167224782492542151926298528581234778220763951917643384914412551710203214877679546643782538988560136794763245774567370509109497344008464492073380380858768142951447321573180290066531534895806531750077782136419133077374609570566679631636461493183287236557380542956930604631850556295337594893844835583589717728624596779119723558590985435378974420179954202544651229058731711573671802636962664796034551453600814338125547390285924411907957682353741172212617617509739442962414617906060362461106652439281275708238210268628987046977028819593471605299616193735099538791976277115725830503225074293669976452198025088033529874710877988169008250909376882641576774381319597495627306200642096841419430952259235952057150613757557673574329409700660624509566379100999732667215029145409177988156452521732158490666625543329497792428179072497767457704450001767211577128218664646853480130743495193679031919952151519015237177388658470070488503292126857703070444843213800194868206339524831139279643804689265922894430606568023000211088684205352860564267197289679279157723079203454659596193656352552252453317835682881007252502269467942830694769024712939470131537992535586652728748527468800037822862896632923250935200024486518658135505999715925145157645677759062072463778955429609480614518444943847576417836580945423048453094600877761969028456320099451440772978258452532251917169844594342072396518824563574689469385021180624790923507584563189220009006892284723723688377160329745739161548665402056025287605373170163797012841355361457222020174985636368429470572818435800226640843265077696935370176147867100235063064724725759610751566606870739932060341318365345895633382779208753391870410726052123009331564132238723506981416585625391727517156473190411849159782745209154801832790211187074461563734048159801814156060102478597780567609764282367074091071847515506484349967338709834574532312297178322964449460783473039335492589147915495753796135207008412461414510081866130325767720974231858270155014430306221705863575605761015271890371969519360565311817794473840136364300243981630340622558982629673247821443578023094466730763309633276786950382338648096040043387900661104388099576803477116007469030136574636722135439678901884760106887376957902442400436141513230228557586221832246389721537953268138267182545408188563485858652384876968047491282609408882932701064991748722529856031612312226211108922077206073063503340872152389359538268457807426299610452521264486938177999261145415082125060375370809492816237410736319897394922212667081535367554726500388361455506256843366696850960245432457601687668349891273369470542637531449734364528131192417256247884037535953608657697665017611125642902389693560521538650058058740139011358844060840675280201678121962384594222603448333916391082334280134233128544387754050929339010683341246571045050540079854140823833472124851356182151346866330735484868525283565869232478360429375653718835934657295000794938151149908642583445525745039071852483653943986358932208801935325479840408458038532437511265301882561094836621490898187325945985267025680610240026630457836828065824788374196077113383640147189545753500261917986165562530838806531653873196989701199150481741761175235195383125280610670795236072106802250343540513185726994200923186446870620326443427717008829972943544884355483507943877849757606819375042373603334710322669431616468453466841863518928542762703011296660461445061725149173026996990733419814382519959972507476598602445550292774977125672536396195403818811709934841389903692600818993079852909579030283929046793412067332207710327431683851797361841370691812610805498599418874829502919871027086525437249080072667949391068471501553800480478872910331764819647599163822136084913058963679007947570166508125252323524046268030279197888412096527105002076144329049863568312380357964094364394871745590658182595329202467452520439805314666891962397975749408924926220559203423262284831836333311812864960386543210536375152630814063546293515743805346013869437966504832599623202291843054240103836008138210988503667850578247668144256872782736058677944764843100258079638352783086818642979484158275769746011091441361953466695550857877726470427262417077569997489253631633448600593181870061549179897457198138270027143598726086782609023458871441669023617062857296490877835828391035350457690399281638148442421645679598681449892087703556788370466806997913597253224730528962981629221842874954187708972484237891675227176991762383454769943248805778431919774560136439846390007555811405944742712940194483811727137458101974771031543949199216415689630576428298491270499918499960412072419970497141834166222594087822764851663302248746615459127763446450709980567199036971840042777505356564161756482591610289504711953353686249825301761851069850934521842500333342576879263978064562061115588937079892703224693737175416303954953105144558197467924202617584888174877481483998770815848500792698417820865668146394020502306574091836694101095991078540054732167927093300682966044719990184174824526527910634842300447283811915137633981008249789665475977080925629592564348885947760700613258697428197732320793968206662213287899815916035879206500292465505146395586189869799938315513846576381446198480032826463510296564356586235966558707182272532571491706896969560210765077183661001538255267203464887142203885724083155416969578161132465736867625351462185916433683162382075468226429949490433584059454760509014317668319909865457023161068601913834121778951482293092498775948430252543856990852557588280659714066974554603782529014118175875747240819713762633586572845892389850520552144844977299468627350448119715784892117187042637693639142570739119140379701542040852006620122137361378061152193077762171407498651863100311792969178818276146222375755813006345071028178228841055550032286387338636660237074912903472571080589200466434081328593497317590106957119892999336644713254238654087377960867542666932268203345878706086660176619762178002383169578508230447012249365535120484305328955401888750663891163760057004871983599643330430670856561986871341794196585628668481918428491186768460750993616167930774237860060542133799537183354466500427012544664781370653631899758828841159836186581314633292620156367533097672580447391616259681136514981563405308664901609686276250864506766263606660924707972850070483205721310236768235098345382413726476731604781602254318831559290182124136292436156085232553637192389180321585700085302028050353228311508756912172830035741823122335782063884107794776346029386652405226475307357589471962025118517424148177200105934498133105711232230151806015195440494013108164556957051755931953099569611164423792777160136100250433390321745100672589876531643486981184241960728521326203501400194308505760969982080732140057285330955267071611304996252491170138893983352009417237624029151630750360404397731311420616445510754815408668034705645035863798594572903212054883731299622952878025915700750576262468889748895576486775864630966553648657793008777045312237665909660452677797142597806045910164467999034550248271966958578066859742470567311970463088295581986768392840995779012107169155305114221786951001510945935244141612673667055376735604282187472273029152429899818789347934879273513662589084341260030401096833832092613378442721806899693776987953088012453174716858663857687362866110211009674511713223213793758081862074714530928998051398899207399337843520029068686587646352371372442230326287429214487823407515631281701763701837511886711014085913076301209803513641688606632302572050138670116443276882618630292535393884305474728328415257438661418398786066998348486857443259712233708291069208707248809389072058275372046326615397987425068787211195897732454323941830187979341282602822026722282066398146861072120109524693292607249174044881162732781832710252561633603003844438364560954041136183061261200294382469634040750785419854854211609639564614553580797364863578507654392571005071667478198977788661054471348142730058207172913309834379245728552609200644329147208896103548870656508366763081532408447677311953506293416806468502065053071529839885860968681003429397148925700417982695781738489984952510741767658669681871034857924811491486358755802947074741160481012630627499617614526351442385168872103220271835699189685771953954729330880277512223930785123328827424501281498994513747539091459325076396700412506148655933588327116626167454710009270319030751892207762159331199940202540699176208739854950262039169692038130022661920466465857493198667475394357164707508281270898627562433482700944307888467620298753154020631188622815435615047920305846392956664725678476070804057159925849925698878594266161087501196845579894938037422001469365145538241394414251009215843151655604459903564712806488997337697012997103144603653592442088562223491135931669043769355224072313959652974704371739512470065914387308929767712265964514931193843261890073404373903540864543047662115164510973309293497504546461028976835020445603054824362733783617170689852736981704042193199829795854455735517089423695428324332048800864597055122811621715976768017551376657494733576520518880561444588519534535076578061322826397011441222083962310164999596671267715177793820292160773383922979324450822126404633693631662257689641745130984088728432856724067373223657325488188758195187404237387260123565780863339957542773339637385575282399744165615610700889235270839960761694871074802052698828146778770313889717350726206648010087034696874524243255889610158309912250048389413979420072092153070715158052733918182687786222056023311704048684911929373160212271435442842252637165565462243565975813612326739370514350315533773012256206087791324198341313958462975773942648717141537655857090426909814690427986554062737558705670700356672448306884010609360205510077432125362017156447740213675280597415536905062795262661838678392464839071964891008195835847709401943032019611149662021294640217332365710674367574434051161072425993112387990444465100668913777544885729072351592903332539965250575954546362457101264400121016893168949086523049996236504428011113738903509577686517076832506755759976861687482576905442402708145689538340669057104063237366317051257610287181746343670450487676079406209383587338670532915814646967766351219632830351829184575534709617513888415673339795661870086728131186349105474049997296215588886037732744095062025938947335165072455169299820993971379536983091481669527155024819554349613250675326047508774315816132072733868785307486202501997848579043538848732517632261404292719366049193525364744006776535592401032333123492858625305731901868632864867630482596442930618846474824499522490688339631666271376487858347809587661809336274809707130362469296444451741212166041315895870241697696432949224160665335697963655653507883428030681387475587211807619596117821747895984326827736107275151559280911452572350142877621404461966948586988818710368454142792316140420034851126673217798790504632397680358881146419390432122820009211666907531381562436030023089693771129997343360384819423243875118004577868476569357332184973639252091989074737132179026703539326293621565184521152897503975058623967366092289726203041095638572266676287911241358809353606788412209048583472447303256958253859354663815549620920294601299294145635768027461198475727585807811812075023401491512206280907357899043686061902303221613307853460519824373650626208712412301788684134905648303986567373452533532306668914105272178444744750135274374495989871408863498808620816196946037459961383415784591650507113717223521345283913300053316830720648334168313618410428367436762048932598462835251987570976868540357451176968781488466902935714465617183904393481348125400777323954938958882976861341972448023749534807731726970697676368616646622197478756261542870790123812857289133144244559504953210419434098087394942067410225236744761495310446110700414091061309083753409726838024144797600695685773598904975723987882131834543461710602909620700764711456315604078634939503037688683467353953202153720023518238361755555884379620847581950351224257856995194385339209901167227355442320368942036889011717505764941740571265360227933854932529996864222892641957046169880940091353243653040759846770038160130330719546272836945109654041892339798351832750284711446477974623884714285449730691593003594570950012415330736532216704493149938293005935530190207356107518207484486280010322864360382492276652025212764809442322202231159347723236760501880474446711290531396495510295532242924838357974772880656982048762788235109394927437334896913799130599917588870840028248644942088668312165076681989134965034014617144885150408483637445451639238816329975695648550541319956853159236720628085412636401413865792861066839172334544942041039608834459439397785777028185747294546851091507562896662339424865039573252493617542933387336228350140281567597555504584354517326624886211576766194468621870804570792222826367269375862658096037579544926343536569642100047026396055796693484845509513834180215800645161372543730248092618105074030230235861084130236609584615978340368746830425843785750174955361909705071334496124141364444755940543827256627325321119529067846701977035869767316412775745982733057487944296678717160855705544508574579755697272944845357755671630572620231675528148828491172250790835374768817818541857308263838530521895637909855182885090038857188270550676290376457382850919498081477127065222600071475166690549806303293633234637356985174401382218685741443498545607820280665083184785179816995304214205472447563522409323305540251373722940282270927736049454404772199846681218187195748105345887318728157843117270363397713627353139387430051864727369007028095258049160036514423359035416268822111357578603326795965740463017457519366986699255054366657568571870950062583436620446379081192013077246577299957074681372855010697005797012551451754050649124182810420369082149301483118875998664863256029588246146981668237207910798784270231296221556340683945280485887246033548353450624071775396125190656348403087421944606493133137499079219366823813756437202955470850489534610768110995893284668013178133342354302765847069894286534087411598552878097237227235220390619345309795790524219056653919792633062818819191600134170737391397846160164139039572178241562420936631173455114031093301075041988314036679491339829143851687058637066481072777424767578432611370165277405088873291296107391101881095225856096057459643067728603305992263480481693570533873016161544083034242513330693096963668402182166938513465483380404932730462288538982987200794687121746962029889098172601902550172972420381623481397169672673805753031228002090957707096253998664898940441168005015284374489427096552232314982428930630476370960084539540921825914521086355126471539804011972445985833438240719071044477710292532690826469377557437465967776409146499531712426875121821685614755881043038336926883661552287016622772641568886502933775399848309525013996895627584069198286425882727446147360705682182373865497978540486192320700754229220230700189643488265034180056460566689601223315859532754405484207969933880589329150550372358931905189094743717282377361581540684895381467032855466592337204343651706509135761135603348821501323696508423509648807605582928573954493878076223674167263337467350453669544499106928481559857265132625687267454200474607166299978348295567153253354507229113613429058980460798884846858624767035082481725917197913395518903328845526233931876393582195281286780118808054874843164943982449804716156060246688718216906140433763694803078696408117557331973292959247606840303315297392173046647514733040463833044363089848251499611685146255233335854139771394258693385103670372367900975102964622079041504889421054188155385632343141420337747162388052670170103091382073617623070527554265396769765401449744323970404559574524454049036205019264722016658565415933644727611112758903765770841639264860217435481351290470916217603666264959251451472273790702635412123018393406853361804131330393670454915556926214315167175455117712742541422343696628963245745527006279634962695969475327919952990100251898366130722401072582538286529768186791055606034015806831727037095682421498598477712568347965454711193208673948866638754268829295323849464230302417596049374840023552765006775554065654195430818503286388969366713787744042737544691918775772330813270879724520280255257036137266289818663436717049264585667605379440590031735958534137046115250940166594020619497573345979927770847795687599104985892552706699472652548881498618072446252385244882630788517311781946409081646555146430990480213811964609675463883265742234960716127760179130343145423953185001980464036104562457657531399667480106988569521045311806582194464818266860006701978150542949530425021696130830000829113360874517104629795094595144375571951002193840462529944191655448694930099890886583520817056972793060633524628193269104062540501012464401228328339190153100843509289639632630116410164771908712893983463624570490122586482164663711478079792185987163288323046090755320587052944630637912636951001829368084725967445629342055320999356531168359486491394357346697409391795851369924396592762408637373685981514184565087014368235047155595041211777739022998825334497843988340130543149082880051207817362341288002434085395256625608658830705742080428833712477767165483504074825754250090476900967409878406658775798034724761505263585197674936640165886519007380536405690572958254496282778814233582646720434290922606330098687247945055912108934891431119829949890981546281789616008086035146707921691386018602161396217856472200250534636001783820844943960982073995984165164122403734995789153947635887776195148250153793958614909231401544030440219216566145649888059346295710385401705957032449879284455383652643335454450131604174661143767616241447764150697741513831777830364386373641926594709224418831453448342026367065534314306736319619090215862048073114526525143952495563913859042529119397112212416135272426652150600266028065531192757550331512402640724073465473439706255176121034469793702110893860037055793033966410210006513819466423464833337915368246526722320326300420923568408036124035913393394631508922159374503595203273407354854098749791082390594289619110950011366551479111807864967250282627121548630247788507814169940125968851873433765558434724940909021459626689878455489512805736974248389741107394677880870834516617923519000719589312562955037956757051142559089996331760891344045616274830256613780291739737297995441120740427531690784116607324552006530744959810563194440083177304572209034240637945288011448383865673831365729591014963892672968593450508274600876312026083280109260691732343555850864090865822071577113886010205542991331929667346593223682112898191875317076665459717818315110106819190369948825377542224843831325165862468162496024655172633370481715745777356265541313431529157659722627518790071510493372612150656805600157557467017269900953930828739440430193560041945088252577931670931781906538639938474930631270924054501371945026605870634150652705084162173581493146962034018823297179490764586580893866005300117521018645700585884792428206820858741736612409967767808212319888510620105738547259426962447674717366907123922387961509146489429156588450223701667358293004391853022220629762149029012362699559163004074011061093560113229562080462908752192857107182461477894961912303190421665966752204899341751828448528178324403298484797581832243912809026205237866974291859166492594954444454563647576187707525236498708612762951124100794714026115849448945911092825079398944439920189314018218016559001753992361629019723201960160424700983263814142965372588883044441802573213447022562738582654107528012579184603503571126009500857650570780729881892806029151144263881202269237585549059447885554112459199650678016819194639751997192219226009785708947752521927868337111907175560877947387508725590704102764834020110592205893934533182172768310198154107481421209634356336547039706190390055307660058269934632937012414662029448866009701050921955315570590464013524541971493497864680306788165051882619070291390720034221640010986891604776499159498650663945201779267604122505715674724961801221936552329232223916971512144265457102635344439853684653929322976721370520240134472333694204671378475243085269876423782945248625350000415817101773578645124802823012181274290318115794847194981503239997583880366861613243070725359630160743378587327191416898932440610012069661827909628637932412723778262321835205698540068326779964178700244807892518887343116553453719062271920234586305210474348423765139743553431602952167448160059169123256693089279587550807447744509346546698628474678209431529390630538073965572363536035403361177464779325054794125765939744717566928848831296206386121164662135661630673846963343204829246513337003003671167866374197421878670371753812366270941369316989359326304871221182985912085782581891948605310364995120278806719605990173058518523302822899467093057288348686492648967373697973847251708976221094451786668027891212102874422896836473859571327077736395022934747615209514699717591009445721814279193769943987535695316098017340447176952307861151846559752152916531504294847948995462342987301598557340934352666729892639006143911453255397991331851756411422021595445304093151989693453427256811608238684755421116842616294423862652847849656310515546539505330730596983513792757454713773208270992638613425417603121236167753282030268343971242382081561402136545643635325274422599548962154624883655824359192602485207534158486731592963581888892648397606896424285847644383934327063466314899078694606198342814512264929683855261498481149363534521613023244123412074362554361823090232068126372907046072516465480580763747265576520564338732498731956539924784723501234202786470820908135127183944662115220952434614040593000089660637891616550974271915721586684592280101217792761312520031551133189821275058971887244736660634533630883603637163383770290051591270013434378636438707176254446405906543152202476776532981123552068006123882603177518035700920092998884378992782451066181313644832513259756237962675786467654084084830442371166434728471040403558198802656046427294988553333190021861864241250615954943614006664482125650377648705588906312680152751776517424981572691362167141333052733244140489928421217509494904335237814418119669666976326601699136901969810479924732542726405023014142098952299938448550550858903438636642336635451591394370544476684371315615867485621530150915250081791684281137969471086068153484198167689185075296163426903255744647496601841515664114826072742848615962819893674531258733744663123387154045094281966834391401874273342895173594342898683426538573163829151599769593367433833595842570515908663562854128489316433173115160740342809138402822392183273313547607425464899163575449088470826952066099962725742435874327106531691558889044205875109411762140863497839676543315674924161694855094945941015120412009916674253602688218884465821426050196977996863424976011011626036552515785932207305581402910458382579394084202269185009825892235612998829471733129867157909076758451930042184607792019787578409645515205321138930696583397098017527694991443855995748010317978486709409094150994755974457938804340815004904376500468807753050541226030901557742983237229972786643135546307511392513430803987188404388626504773090035523247220512020557411803691583443351509221307148474244945102657665105292841963560950372511265617537680611976121352286381349739903764995296346740600997926796562791380688680638113503385379042948271718663800315561005613647668579221655180068077574344510898413833298779492231239086805554557574043913055033378868865427051472837278160416406637455521448570233935305912792349399330533438409626340683596312622422382540480147937008218881644458001534076740748391514843396561698627262536715021624042928711965082637597823805682500606170251745139046922201193085599381506247953456030343614574917476718483005347065192868675497756566501465680316505163492959396239578132580470304988721474841148405236530296684988159532322112638168002987109224300522657979166303303873179664765738602810022340200017279080555109056189961314560889988386417489127486906496296897985142613799919073383498251929612900977378749270512384326814571614918383880148175706374525513022912529438720421266056584098655328967314488786750784052907479718574784975147241271532419683008014020570748489451074064524578141989418725413261625671070100175255463699530863742495547533296355637510346098160333694304797661548401697594190402933813382577141283476974053779749458096341639135646826727241523682005394071438471529768590453599042853815201196988901891546574565466268580550936704984035930277136384360393705998471465715879069117848830009436438189813895949210009349122136253896632997489468660154460377544106718770938372833710207284172130980880218948960405195102903136974085949873536267492209123389251498954514513714035998793109232150703508955157154588056432234007944983328988257374327601193458747478877498991669164618887151514326800344806444932193450758374912624415839000997785452495785706065434941867086614503997142951024138621952884618225926301334003581108076063027813248174230888767589973070440813562645269048959457461279451632200340497677161276580839951864946154737376273620757938690321746014270860215968801219901210064058730698081473736167967605193942195966007521456804506521515754580564103377809554575133323336838131888472024574898213899332285338029226781877768679430970030911830811766007817267962612747567884990391858678848148191698690457074289517442655398043605349492471957558217772861918994713365474981415454550264751552071969637804672439834317833914935149547699197703615254853694212448006007296912577498377490389920920485553178717651785469154807881330521930941263343552908413079973858749369083294479280907528170133210113838487206879811454338824267146113407798597767267892406806459097952902619988376057566137772550025212538434869737697962006344000512616626287180173600864509257535651465553290082549203080311467811219471081386533167732986684173520308986550236335041824963854496929759674731702419946286583785742024905782361646979282318807701670195778830491163819654235091000554784392372072623042002238645499686333492810957420185079234989628347052761962169628777929820953919564795856958956569237781779884490061384738359538234601270656346246557526556457246704270503924966678963747043599329605657963353023063786891978821344182502176496514827481802748464867232371714735187931978039066360311861205236890668259688487948563664139973328442277304375799983950273186466062117332553704395878371571012996670424187063908766314771418669283380630550205566014965492135040249805225494322849715526068427023303821004958154870648535186367495699671838887354937440526771432334889269972223410383492531672263532803469639369892630896190136095870014798192474130755340355620870727020051477046366531814606635609692166515546962746871910142535309836380975151171174855197058889464212887013770045001105278726252990753962416390396312742397514356422774894595601606378590337004531543917899063164389843345845688849677851884938916295155195834047025724176197801442614133994989665158218766691025320676658275606562381686493166997278510038753312671494618570197657657616943594635744952520356950886139496244951618224210171216395601590325447256733987285013293691262245987660530780930075662988330458369702208830466743510856230168205081048465617368936041407273412199066291756854142078367063754705965573023893905636622044413050760682437433927425006371811754822274911000467242757638244209581118157519808270048395500223276272374998177532566117653620984485764873943380459429545872758462984526934644272561671072045418645799629757019548475230744346910299329957428166181583041441844976410270857869204054434032380268490148003627275784988126817036552030077076446285512461389817380195059535483583813175736445975005080518404998422510384401355190166157822826875545175306678214204320779143218807234802358501989968631690888217714835625290420278766037002155275600725573734880273729324188332123594876401535834445786700767898024858988288649191926995573112280887734137306197252154978161488673101663626966518797642276294915594939181391772663471767748589520885074421726236442032742341197868844012213363157883791940598351266068678589954595383315539848492389912748724352233323960320627229633562699929281003498616043782567031328830268421841076318131992032989226664557840449181384351296398243311595320759412326598286419971165207361913697876374470386018465548253997983337309640711989987154754439852533964969446273107499189346407574714857958276933526850725640459737447705732439244023634601218696915884509500284143516268502352714078332190116125093194063011208489315685226129695679871824787531355544474657325176176783710642983780932767375395538444534538550572205592632366927896467914322867044496482401568494843158367833656889119382297099519579410593938792113005868965075961284391397856946626785546400335830710468603340898431640601092055276346648291426199751463737348233987622038371733021237689377233691623423951292339481269503776173320325015658724639725470244985523680263941583179996001586540178789484692706260921775665551499973096496503723130352807176131138269770638900306907205516556149935804388232044562375237988467965198711718969157327636909639534673307429009746047950519298672717227240817110708525327102269591498908436448312236498416271188469054257138625098962983963544111541116962877444161840437572458321971494105550352804775089752012017595105531088841135996603806925714035452403382464167698162357501777217609130737632039824305962122684513320158562654028843837201054032308879191969867387870497467254662352849034031335981710998501088850849488643363332081769733644115473481869665006899517841859293617574033504665019414140903470740996868581368146505148706660277814475312426080222221196798103662360849501801878842708934920980403433974207509932912878312995472573400197164558094060966044249566851250784118338684716539534624848428505672867283770154074765894901548395526114821255190510338295898754625022158762392403732064648832931158499821741877993872925338107194468475756504078796690995965262701756081125183984628108390215193350906218155737707201916501693787211314663571074949085150334091488113378119896373568098938480796446269304071251271444853943763024833981860401693703609380387545519443713232676829892216747886166758848636416814239074879274521266728635974371686873137038114676269030424043415558299525040682747151275551121409045043707235085460968067748527280531048351348854892525974978782194615253215627282104559329436233442488890901910699490631314863848772494617039287597302342432205792985937524150103359966066396514162406349693166769213049879850955855473111044177654075317335728843153677069531524534935852149929119844735219101639119861553228280058200092803041891916041379893957305947112360821433435815012850853985025610957051327069072537840716160468789664285334471310159893441017384433994708595514913769544241640500041425026677887013309232850589685896500825763005145423019038924498956242726348419286666162248008070926983866937478354438942468140939406874876562755982054031109365897293506751863032166131355489608456630217073168589590822323344969972421829655992605910718316289640122879301704268641008552533801793524807145865850466455394034164415254771962699539591728037574818214816545149336409790586418115206544438600190079990461131633143267375731962985768446407936397681025344587372986694810900196068415150877090927626921101041275984254943531654854332516797930703002513062699940233446732061007281833325064779232695217572136442205812134141369241439886170144601699496389895771072615786040389666607465229797617116557672816643411754398563155194924748985155107976473799345840124017851203892121577003704085779232665827787711438636749618051340747626512859720811043999007045878384203991905931230632062283764240639601469964534381457252030441668205415432414943817381894923063907963945683312430898468094500950851445479067735087634936911365241850644052092858096885123937865030577571132674594756968346449788026242131387729502885617488634569594155877996760381391855591646438136331918925013944619102273971228081263097378944330070828298558500889441879529012327036490338387811779092059679490687015883285308770652357507803277057296846194770191420629229356893603167872522436779869773078722845422426713126635471596269669333171505230539228591937084550507090681403956585708814808769393023545528728891355591007770308472418465927070996934075671233729608487196619273580187043313617482965088138222049186795271432517245984624308489054222837525207818452163543572356073412987320428493131085721354217901525761666512627266546724482381803263487841221546858165626180323487773994997195859044745415894756346451152755447631508709813703436258235580289210179192994975217707904613445228157991427204122924244770590007945941973184597896733041040736888690880480855814491291633611927908002313582501362550362072393618057890434036697403339316773130756844833040898510466578769843774032772035772802424467910964381450136407443504220943182986417986956004024600781352784561285342348687939064436636995785979480550288036799084459336256891633050254948363130231787629218629507358454119885192569589633185457415391210033086176846283624282759601475007116301643517413063704615372274027032981404923930317530841587080753859739492797642452091693976574112742791309336654413038067978943599796805704283085048726772163941578207780964704217612877252082647681060593741181715746537300316995030934553728192329136730951893553367708777212041696769693077008797048040925812366954195714201424980460031594002711831427573114627975140767108777518908785774647356405432753793563049332618221554241506028948192006096891675678245508331619021878578779517393496999913213623601133822094862524981528486962216211397209886152514603749566165816294871573720455413188643741337774155152008180337303276736292283427071086769353518225521231162476643846166304778234683885537559753755910753665886765691136154705678501857748420259406991400077642240397868779831487769955033702926434057502030307119175794043086914652922007589809195877034546931987029453882813172241588030027206974092332853988644512714089600542213119018235254825427737114140717800295751348515201287169666431360090121829683540772332509415352958257975573349750915877378385582510696276494729100438711781769340227437907201321743326136685994036578231877669018856405985667186022614628884467652916395322217353855204072416027040682525204908236880410787691218980052378120636287622918003565929959238487661537828722391767696361775652421531765841519530200823636358255607643161871967223670191187414513603762852248449493380290617264004604275121654996236290549297533851906134832574862069605120349566585450637566921064297300041252028656802180126221061197384765153452198693765564140220171369666757498076080671308149019956329319363574425563724254521952803806537002214194012170787631166526058193445534578425748715930984813016763843066000360238178107453453238820985753361059796964000667966332513512427102022229385262201865846559120277191452883751707372585285428115487943036336661118692932920638635219935573309446680767164411374188747625946676632969851686928794879982591550321245603985696711087047530382880873795978800559532200987789830181501854808063681667639844077223772062112543153483842319454948609792505878116645370471667335389143472682195077911082709583345727535387043200180792687857343030853813222803752623528983429689167001401213796386455118730463358614746357470790182537551488735846332499861616740516103769619385346674619410943736424751052027894945402326305705285291640238744525484710241704165774907244810340699347232785430966805478204370754697356161114352136805565396248864665808103271164544622397513178872929960261828242661818607431652968292833849476121984211117870068619417316253820499191282142358882630698418818565465311885541044593265318058848148767096341610796661811435702500386570342124471730555853461572190246870195546227441191986936832451919213090614513708006698754919775748382987931840360776853633762007134374413895498491511357862284239497339775803839272224930223384355971158077665115315116767684643290604449948924168752166559292050059904639280617659848000535160576088699842907077153831904889134524310035270288447691964410866920152758653893676655368167389032826316732070186397651458248048754812609729815732794618786300041025007210041951381706008377530266941857193288560789544926313665401983011589577052314566212641985363126503794140271635400803913294888390503807796717566675571193292661861017598524774957019783265485025762099760113580563910588268868181209042725316450348339986205089954668346649865879449171000373286778855487505356353767681731448328708774181351568817641904654793478026065837035460329995840656092960228341075167515041864655704916815478584021888087371131185951679259052296364868584912630401061577835949933888883569835841844213281581917731390159952527731391251972497674550807287331619657346521632040384085153698456701887415559427666892713805944269855670284378154940469631987388396367700198765708285874231537328784546471241935870379124194454570822427048943926293206817734699144480678999782207025672636616680757841985127287794032548397980709049759757132668044638444056387129596898840150815693179619955576228025589038985198826309482948385071847748005755908358189114498031412454790375768625319977428315566392800087962503246167267720473868681580510938612871095849262924460743079699046962241008565877067320081037669210752818788883519922581089916715188719063129983839572261333907608823615332253034958877891043088630315661027676502482449683786053982661153159827958298334922228340812521083399979960866977692265751795630035309680457272423969848087563518567927391199628075514372045657165068751918806441010511245332946693133097759356984139992267608159726393790039018306491378605041636808351553653480426845271722089451344608228925486175242090981156473409861408238296142176280736763921942484818241234774149956562730956068344851240276084463444131687931748184829752114267963939473389700093868751956301632249758732336544631639139649284506059286852016313188610717286728421265701823848051908991965650518429664843694897899226619607691228727251091678143864451089931893927121745288262458209306369828064458551880706953673746613059070481480682647573310621495026703609252453152075976840501917827160258695071362747941513482470952008106365825432026360467509454288818551674592789649067284724582325740372259507649608148880478797452237671881922705989677582917591980045512687029629007517621098539242246333412884404354776268863517539010095528868528803151742253451336399507433410100433458199834836410659936929826107296646454299207987938531669206722610614252945715363921044211769404054073814526126578216097346029148992487020392966107132943351315953453130845706208251679705335167227845500932691086920237663522999637301822054014404335311592529380353755526201676534711103291404480372031645703375536429838477400932990487710928896043108934476641292687096690938932278574782553008590843640385077547178106340146058724522574365517798741517558337747547866172023375972684604905360351013582350010908641661142732793880913535740998078271000217013604359357206215890741191269802070035710924157862100242139001476834469674335580449306556576397880458067636975207832410656643179152587700533472393217924266830212473779899594432502705866200103840909894313817034081417421711171219611414166003072373463775937182168740745451252679600715854786636171730502748192918547635935694970041162491236464988413732550584313043149904767153577336444414552671345872750465859525285971292101576413962872906347554711021739511183189642943345111494999166879898004934590500851938219774273368267583182972978868408323420625574018848980894805930350948175838706076980695383959453448482955998518119788807696640294402845484111049579757710290850520022157147036733663665613881590399981279042544794226790191007448472834059101112734176172233557922497027762610799962111998496113180000420075349252785080877765020912849118052677195826603012068426150644890736885383905241968917676558435542891257321315976348928470052896791857472375454301591620826502043190788183007001996334468747881841831593651614513311370663761478227647593892664435401422041905309973284018481221187237500341184863556293483022742847029829092939551150643923782121908835567208076412846551558545637385557702628027291568010158320076790881505461226619627660393316829594301604694616652488355115405596184971085113661973954079248419618124394647900021847927317436771495038505053021761893933730032738205150217576762605267722323137915661922266666913830178912681464540872044620799288545356471156142730879120691618130384691557700503896754647944535240678132088528610575481393619378082981416314402645180355036492917608227841013470614789564065372602153291262569318587350875049103072159404610856615156940047771081655612142890985593820955246164058558837013177753964751411061678770036411791299634315174406685248105367058839883091153328491976999924082999930578063718327575338670868391039047731237920216288264292962157632945973488459734664636233521404967211800798707982563357976151938722826491448315440501757038821343707810268443250697669735508681484476713856231603244792918049955541255757224478298813262141186712502347916937840826251029965908381207145997984574409492722520704908091167973763413073044484331194549127190177310995306173492574491891233091506937268476320836629122341391505664740632513316266594878253477638064225829540892578461185949775590776415942120331806289359570467595481285563061777525780759605041440711916197588542522961063444619389158205816738318573971044984650299549995447520048818544845411133545683802325981736131800256144221628998530327717696233111315294865139934142190668902231538632862989490776383690201025194283440014770084804139424279079899104463818414019861236274892139827364813721021295960051845744575389096122283512858677748955831089104000447366539491244284450624680652445401522141257210554912230974540978861815068154953844158336611279888555410908275388732214144943395841416228352801812608350700601521535677064806078517184231278573632794866843285537331138894778051657116620197380790065272333786574160999355191816666672743537217159994818682782680699004224453566809057465892691077656958945639868865098442786920169174004357555803318622268304300226212286245414520009672547634011105008323796703860321378042810591612404402288714427541850761992577287163422176699168772430896308650113177750377419271974542421938123628036069973527396425486113719950970855634370771044247715563492042590459962069812413669328748365460743085649473714788016011365810534126488147440788180860884983373569645219818700571473713334445932418348392575711486097823727727196086535131262123510917120222005018025779214621000774312558393020054005979279521829235369510407009920384657924408162088451227741056733946391227597242001369945757276278688496160097103334835146275693483045259400184371552218883317886511104219182480213863086049691454608919261261360435533364822275838620574088097240244721744377965438258754256593214933709276675308170447249445860532839515293314915976068707061310195755633075023169341241289072207247440711430448801246130729129016388483815429537288779961719575988072634137006755092571696128290711839608512848383518896176806730181177039682690728835549739369377060219508768420485410688465954002004780336693892781964084200592914551645793034344071217432570737468629442393710717985598862259264334889057061932901032320825493903495966982018783055188342050263122765354334544760814967645275312007939387947217244280318901277914672790876930247639144507076102839117120541934991371846937804704307365789258808693534252820985355661623869323611811067999438988805522392710041793753249975075838294546557352467979522203054447298524927002698616551865827665872430683608502155208516120575933395922788232768611274690102068197989551704291395966644668858042892933825771400082105545599685326176997796093895432787705102489185778662673809187513153557076735930374743521353031885721798299002227051258551848325255555810568790916320203122157459698013301480467271371197009028867090856704330495624908516487353020087652876950611073868749240111195592352812436286190531077631429612653476350331113439636106517572946237186865960020612224323354198194394990519413207077094182808509978030576786816371067861793798590898990536447415765636976914517222108374740452024096033155279372783885466609781293292878674899085805438373107814909810685016479327570420815992085404478471402858475670870657684074580766055527625381057040640890203057770152271311955771491179614469426695799346362222644794874245459991360069124832049617530618126012531936292057713458085390331284994758888820137984259451285558581066904026732555365732114248758723323856417993522668265575695004580504301266914251693954320939078074042268613865296488986246917661228326950737737806984448307859386174311811845023256586661253398708887867907489027673420332343422380642776606885208893591144764629439251609696916291221070261800354977573396495144964276928088629612288049935203513816648589665886503214270174430106833884097543558427368333743336508566077477149334307994749934736184693500686895163651390989988625520201553672758995663782269834442548571121509644128542893712995638614765763595393075347990138631845208273193280279077676009849042103615212514598354383018563641260444396554012709099163762297153259082539415019733187340593745603161472589176665944610439510812985416189040414927607894532439573282284701739177662765276081382167577397129659692027676741999588044728879354156438816994325266028384333284910133240031764411215824289205032749850462739875294465420299498547270631741096167622734650582765715129378710980376446858349972438660085191059628158238110640657928823308813541898843523945483155265917274465764082222179898124261781984024765836293917525416997740305999574119515524878660114996228080960357387308399252916499363118217852923481399601698221460311036227098222435722494545855442495062032307972682422015202641429440284198422506832292854273980647970715932987364466961368761147932762176061139424887846013669838717720408053390589982053908923479081477088299109866199354190030064181085265585200705614475080511633128603973784590528265182381279018914654375617712800975107399223438146561454595180817933529884215547749036181786665087927765083255112014257509657535902451239212413150770001915749593049189746364067005053521087437142635814004850968597142267467890269430780568188368348798550746772231695519792621537896849730095733069314528457961177179747494397831406497745186791488173482670521914792815856583983352107838364434956937632710840576071506962440604769893685636630674102123700586505703685151245508345883370019581433831410671187214886361221560569031479207430181020405804529584763615070629735811966617878726941990075934455064167204458195429231362842604132033634055894580479611468812043253160879206037263275652880874858100329623925210541499871157311530475207619473052551945469399198832690834833943594216444831137118616696281051437344363181911870120156312270536958038161420195424582706543277545035187615493077781893398811209138342713834409475867647366194409883754586431909090056867575184445625627765190229728357753425457671452834546633297887725158734113232485683918110551700907147233950756230196175205936659497622865697845073739722124950946406972403510805792138008711503374510656293171831782821662771331241869034434778171521871732324570574608132589930721490054907220077166399494205257450164055319489541696628215117568896973376352130824976445941780014857090919715912226550957368221740847349380307897877948316757507321653021870464709279721028041979119083431452836569160486845693717950539321317240067558491205230358183149772582549807785461650472495250907514648631047920234305934399973259985874430968058433262264878501416609204724497684571077361805075910098690025244223779219758482785804466257698865347153344883436765025416677266920395424555290022356178535222324838023395941924707230635779481421885529911062380119355533303424634271877000189168224067409468993767880946218743761035079914203741610344198487973472042304959849534628031811826268691528435660923451168980922529649607299884390108150949489666254228645859093278251583526028731229968023918834183277851407970927344512876578667060350017096608018807813512544933031887258697141249941785221556327661791165770874901411935518833790283771849363967695973640443668965480613783553877643268911705832728323256634239550799435893714121663428423864248099393435035584685407583703996875332153832817872896069561362099836076762085634482478679325965730007214831164944594781108430127117920496476267272835865518534952198135236543980456605279444366723184021948976734886530223897436883080654968596240137987708262602779294117143725366609918774395717843054905290757256200512113357269791587999515882686403514147776578215312467683361560452392015704052628025523889987457656741069887515558037861393621885819185902153598099372415993939916255090258501572471337826774698758832201608111757244268940749420614701749724604633587568380896942899554784031434623253537072852711827369525081670692702870081039604114593663398469441952190922250281711841818852311492128507342219159570132783739375599760515253546355455897970208394643480715812452684391566074960593952132864105317322288856057543899893021822720096730726349092861998739405346982466938734179637332330875508206573120694850411085020845602037292883001681387923410096846186883902889592645981063403422127708074654275829500367385377201186819634011701662885849122257386963252891522619116301182069726353954067032502763358152597395488105172671350756618332123755929108942448092779877966051099746404414398184662026992850484589386880306534331339490807214484621479744768199495265366035864375253723522520179295596338093851735229145056949000846212279291222738711025666782117703071653638390634070946936087487742972681255122279783955402365133743291914126056807808174918189360453623434681522349440687188366625858950853427488025689579222466818136429623403850237415321600235552499742457209900006715328629958865270470309053986279457180416120033757397138183679136450430765603771282607498123836717627976435345700890042438715986336723141222558929463163041034388289525151749817831824025371688527352794076620534207827178955971783625744998074798302266948368691079311455829586973026483009571614253849265465860781165470178666649910231439533360858603292927034409167813048086806278306510895555925851782348224964178083347387479805053787304225728084165636500185499197279187948558280691942903567727672147497651120568863756210894104648141215654493086883243227256370251267961675068876381475372574308746189411947917099299881380895055585752911053009513349264564166943635270451588177068336567760806599361356020907536792267464868030606846062482416038801654586171077500510930230637176394427932733362201849310280495018341220058681023791689379217219705364997625802180475569035785255333043424835361983542398859609122480436558406451089821195427503978039702786166378224482287421862792161922678083747423073252788788670109935405921447449878193944459786534111485774134146875396986448272279642512338770801537104002328834630096956446096783315940761014709095640214732107884437948767006019804710760047612552080077981311384538273008699438227639192187254658507145172974769118571673800082099866298538838437761363766657910273943774150812114585271204616954340600608153876743932651349695534307280121212038198243687722296846153646072477138708674260431836789424657652425727729469376440080540038400254458042461487947567127075472152531375756229050314888644947965603832157060354634294914055193051668508653902477156335352539062140046104162710247049279636724790190170177408878279371416843567672251928294465598988292286856518099118351039352636641960254383034192365439430092052332286389288628927196989334090917402157716829008251591878704755690402437944342030832508353567066605781662795943207044624241011667498206766703565543995397586369181736152975099574795263450107480594834770937662433417997221264095107031955129927549272121421655004931822093372050610527240767458363668805352065071399871538706234507065753597975830164375152168469437603284871042923149064323623845193223244515510123923643122889712508927937898129072014086180537508148157208056003456171002187313072490485460004515756292655838636815357907204308052533939142175737464749880150827049092696771329377596839011669222465471134702243278570019846250041250626415164389191916823151897681535333792401725703524907538382864778646533301095534262202879285120532193664298943778736500999055380259953430300481282928116495370453365447899216047626379474535448515546595762893266498374916770690127482827034117746914637788892679073453552977565790477461298398747324466392575421767084371860209659100506885915890597886556548262006527346612136970454807075607616137901074441303388876043371656072335636040531230804252373303104743289087433642371075111933476982859183429902405056291551579403012439881987295148766471729037212271962913798157025031026450835884059314050007542390423511929372163604072918284186131232623419959308173580982057926432775339955007347954407582412259967219916729997589562672313136715110422111547150071567816550474118872803975186925614480276971615673795672202533994195946174261051748757729866541349944352075873140743007663471496904339990500185465684468511096514932341236084582919325163440128614394722816789694845208135879712897394457629001458191528463581149557861043823319510470256248858718426164670575532981719395248445492480359207017636702774457499619079668501827292770742134906477341326779425083180966199044429771863370666092878061305908910408745003764263922551798795757203468091577640475620885526236292431777593769112890362950800634181568294866586148666283119104662179445744160879316395785052254989462974365434878583412003964466251307940861521010859264412630973519681472158376663418283791773600901309965735189928369608379238493143554227544937073384137813034701941791973202643726196094855214012668456706198376936146798105790104650429865708219145773802385769831480501868542215561116173148714190309783735022346906586838065728185756864019064545184479982050362299110663811386278505658804123842170557508451244585038342947255179310829094693096298299333775484872984713352132205420961302223892412475432616545933733940612120569306317738692740066997422492456385508283890057143155331976663345160585808428025850965426606422988230148274876614584154932098751817836053357853248697612181083924813282842967501957035058914745589057318075056282440798666968578791976029612988808725381795305982844032363898446104277495418555956589580900758879110304213400497188908379661916463424472942230666385344989204965095948450878685858195724217422872195364284311748489769090562810792304929956485559114297937162139827363508346589713492197115388044187737722562629925454645321029809297668217721568123269804633829076431796799031584245608785480364817768885057704805927766213018383640922808057212249480028767400077816373300626640609362735891572960928577560719773736826107159527294874428235481242051985888797427228684006689337855506183934004344837195742117461019266466435978248712287327463186257959635909409843344780068820158398898292124016626139945264145904762676374729985830708367433225444746694316957256648803328621225125002242856547325149055275660990707235480701006972245780984562419820789892433085334437025895570175235747611736125778253066783832076681665953451565256744437611385668914456133928169864345667031341216440538500903320258709388283262729258614134593912237922905255216185293116000708319018185679569072823172024085917387431790009195727982978323321947746665337775061027677386324148881528174922382413494360830071435297377296746574512028114773078310307942404898660714517959545871902151395932738512717761786601791024132413392431719033773340983597226762935728907374866752621549890804099075293087387436445431553000530098886669977933157595942753741218406183277114400065419634531778323498755045049942359296341391778708522732472256759061373527233051440514594504239498022142096143883913174973845004803341401714528863197178361315814262480029142163497050625599296334894504151922556051290268723099299718051530918225887095496243277493121847817740997596269754231328064909143931336256067850331725028574104181002004114667507352154383648603223192431030333458309972599761723974818209920700167047018210917109290449931405445749722813580092482151879401851779559157215761742631786216991346212197237411570036769926783850219114994476806127582828289439236871855670269651443616197447282380996487868801227590308552048569914834754188091426121986255974721280616968589416917589984258250508259534214416441433068437640874616023218712652240718232863724854565318811413684216034851647546060746195040384658107255454269572308236825670330764781390586849664717057427757735480365812779363874034962807939116895218276732096587205355814887486208128715683362706430926605000587286193155362140603629959330478749631406267108951475110185219913648056958183381528639884369599632105747061395625110515204932365179397006461544568432986821873577157692503301666328046430538251074553605628640322699207485725361870051580206889315219154930093912508888637521886409985039990248725035857585757137438646070108716021887744032710386673629956749956822243027112900991208477307607299137637240245984166629333879908281718360832526953459479688905126680354274444875633065427036631557258967755050870401407797810142517002050818754390519322404489945313817624541362177659784431891451624176404375871907938587454543361161696226608579667721666412892478777857384011648601387337993137092522445874993383634243424621107758780470590632895322680690618900463565332301993067523637051162827914546405621450004660176002629291363352367079989173852600068864517771261645168483501919479366204848543400885312992649108655304681607246648380536687242401494520873144637159255203139056097475128026291953472201236746857770946459255954910197991200843849622302831575552732053483765575313530832453559706382700449839230954828031246432759883681623088796544581033626576732454486165488716465427709036648945212682782282391332981679290810702758266206666417758336806395238769089559106753108575604712733337162707199546065809271991812917348241989795992252895293502459374396986615943110820062864354097818689651359838836262200317421899219240142045075469639703443066162474023794030768964087692189742653191930710426720345694245283888990151285918741870761265259720615698241982638109874853047081601681110995685044416643287029557890707248089310309267881370919663703562063808432778792626468647316253541892567050456531230648712306557650474778739348031420065684856729287307057826245506930260407649563329249217699062915450138789683029255505754439730165028669528829463521009184662011288478914594283910623870531789469899618732415446175956121716666782890035317906319028596143685787429580754616060117849964420021194420140596578349003185371685504457930945675853000446272005645202935291025239820213591911454043588365658727093028637937864137453709461412308368220987823446516231064283729240939077086067872201432489077910133203621109761828080267594866705914779250335339097621442123901295379825828126654331702457950726051225736328880143755310667261381231854276533424437305613091299472231260385946309567183255594419700840102733458939664601470679066115043966348758102161869793544401601424801260870996607610505872471451855373705106376799106596627008199744035354308186018324681592503810568362678339651012993040129674081206442105825538134098114623722085540127858605724496135593595020059353328070738033504563678117085501015531491848416502340867927843257065872121954577819212240372136118079544751536682561392933766228514936217393200803220342402630894240948513151101461926222254584360389583480971018277805622830214110105602984835071488917458099753166263263057634446489294553877555355398503071609649950473491285396905735725005711518158500978864236213967673867286801547546019764954871829730048227900649633058936171737033117979620901098754253838497646769616483135126964472603941675958094611345934934383749767147440396587064105002180560792195629366667624293491070113433307463618601499480428093825581138083448077906329442114222982932767711552234784475245949121326294199767838703313316846210392454141797628816237046865340967282842732496568196231378396285562976492981678905793945359007453665774885418023322434684345060731743569300399758327734773021137542988948005380423888052676395765020796502428952895010010610030631565953987213358975354539240166382558259511705990689489214645908676434819582568493048082158815195676265413255455782037665879082919167327539163830760272393354533798984741522424890079037342006240960307445920837142243640719616013841932833090593186001305205744919964450613518272076921102610211567142396899175395826012039132563632136846899308283404277896099200797508351595951806132887690185044088561889821812628646256959940222621450318017252924257978041567866546271229029615219672409981246709331881626975853471369071863213441951134956559349788209076159320929324332250791720078802341183756443770272864478318734278582659696221666364364359166126432700747983959664513994628508612558724105818935248858103151529442113090810540183429197034530108117011917251212352673612600180046588620270187121076965059111561313120816076178597130889231813530474577418151684531995177464597157722346410678161790479629344188895710773203692569868049552118266300914028148126785468835009592907122162213760432893421200234967779630185086291294720683622835554302635726233865972202430720130595862000221631600763022644965743510299834672779708648119931820292616071380896121585645083903516721075456218317659128218633066946822509585736862800578696816387328201108400540271659184145916429297399959937325106490602367023315525135213157160446509432159551645321387438465707758537546605524577505036120519773819083792838102406970720226849455323204577073341628869707217725568837816932017444168702984496094522352755915369625735532672655442375790433453299477294696441151804284916264976692362158682161593333647478473411278017670351564466846808922029962161552373892368555014111605513034542050154735054616256119393314339316627531647655746644126736409652437650575730857679183818799290230665133580137766351708264008652172006474686159382994024132153033822910208010616728239202748912083029426136965854452524716952482996584354939864476293022808658883390330965015137258464175644129814579384215378472744591609446302477533535510181914975204681097217945863388928231436559499942550624103714851344676534245456424750091029991911978486054014457298356072734134432216458536538338975044345204014151810651207718403586460625547753132558194875855311457244161834254888646428619547437690712790286483208317064040329115427877327063082787240290457575937689575207934238624228337750444320309876011767195526946471968467278228288114190579312907718289021786203293292103934711646996373417877163553666892907679620589412088372733073014581759449961319971307201842899768884676553211887021093389665996054523483526686800457336307337694394377574445587324230407580143361934298356524019679458649715061788019298483784280150875842582049531334648940711145356770780461023749306025708272361533311913353590024330822833475277738191973422389944765066303124941163863978784338060790918349215701887675188549775070867635679339199769033905005291597397474429274760747674875217887052875311370524198582904815917085883194310294411526348247966771795675560955758277918110520237428171169074520317539629678906967098254560382504947232021876999957102207457167739138683697061107477723611728101112725623546485696467482789845961400995485609909356498324119874518063675390209613487992403457462006400287658240776710102701826887372977737716547852042580715123526151078897033058591992071363897342713969259658602232196502426465368188415100760899592274352806132639623210386451506241107331992829981360009029330241286066338339879529928561545425334336902456756522616335408151189092172241400545335208782385225052941988978632626220545988775124015507398796070597159774946932547459701993756097277319121916833133726742564210469760586291459209385025996708538112742937523324227355535477387572365015487256368631555568984876165143067928941983634792329334217829774369628501677476321042189987915042263251249391935664212161192252263892254528468038095876937508787630441222152654510738796048509332565364779682718938645412183703681941729057213357467077690502252970341902091107547816585755467434231615807170888432471929187928696678350775093538274939809585815632130231503287633414701610162753371975363219598023527727636241891991605436533546504615804905024211734105179407780842717354959005870055440672284012514612271020869153835174440652061047102551810221809080610026357910378308808648052328957855078359447023295981404055957063071716633333301310900743394941771828059165403262321964682768185552500429860159575906309602126928086493779936775000807879872907614488778308555118049016934217294790871913891486842521483237539919193830138028719369271724765074811221859640354218226962557244579236901145342922604864339108071349751909255553177872488083429609680263930936329062978438940234220522908897725100677823370993476811267103382707064725367229368301552003913139985424594976856858196424248517219044631820204230614377284521635910496155726728902025770029834075959485851148398888346311187361599189736856993232551539186031041310118277051580250983709107078497378138685899534862115989559318628766429676853657175753390242343294621925417089654056986455062957447501491928893493614435221009463847914842544351692940974828668416602315231200099257168367546354036215261561535412386727300222831373059998794161370504706868372891180961517706678692335809966137410024944748149018977201861768786565253365461122345617505047615063658637136628535733239032590468597220508490789234223837605381561149914035694389465596031970948940926135715448222789074431436990051822089786004032565123998682673728866593146865803627845280075186898148591709287373616515864738004720675693850745277610912832813355169736456987002939588150048543025665691756853195011234228449908370071931865989832063669368752686031795024215016957668886876600706576433622577379262753766701117927521604616566178892837446317075520234191967907918187490193384465111791547945138514797736638549315099440741106259040608451442750504865113306373053433620465666344722411932857535082529166357243206763775030390158585261979318024918143559221329322123194961886503210202978748192440408882415577732862341647192697278871802452349800548042472214364604925382229278326243183394183408247677383705307958531111755078190660834955910920331930263915910880295558390185187971864239113609826490136831051015972367369595579275099217899602532777664703251999823927106974674318838927180733349153421272786728550926567798880316904856186103489134956754296785942992967438912484250615914420562451410277648489784808910275780070650105086705527172794601084252169076955621392192390641955613043701216761358916046881584690005658962812601118944487262460117126283654935584697838238875478693021934352988097742382358638053377343269628526127926038913299728196644077524682400694897090628505814452312858292435756146890788074283760040533166929153731597951684286702437499295708026003195702180258133353530780431481526682294766878799959013197814641131653074052334077063890213374819387004522692852858686259831144862456543900393626436000080636593819961162785079119739119489018972362347423009237796396667242486624969886830224830996480943953056513729043511479682304385842653874034542539710651133958243209658608354918969320579630501629435889379442554782867588452472757572255963398045355381078031573550545973830907845648091129183085681459151098072335935490585900805461969106664613797972067998009739530442228277237777582085164190081819772508622457329059005938014642573734576340683430048604083917159061868322910978502339386900497026999204660208906097804671391482384115288256121833021400752350141060594504080260006519143264774559700920018215689155041884826201314943616516009343716239358343550396145086693165108024334106583574643113941040399137554096257832566843534515448089123843194408401797038381363809219750323291393175160661379353054343562202899717791706414523237281118459446806721672317093489198357143169680732714252855105955666289944088371636927308645868999046485077419295107233134140052327316335161497421110514975379019103983827859854057848427256475954199413864620661923727329594792079665029606257256710980655147652183668608006804098470067379623035507534086972421738673057181332380397599017623648254278366805710977080284860860069674150009047335626480269860489293548595916506464632196667389169840983310093348759227373514616607302094194963372527620221584378123021502102794055093637418018730486433727289034398084564055167116624849566526920692459293088454584601878598049581752698609144642173030913881078110243267146708774267934416361649335366406425868451879966223737760040198066963043872165900327999300811062509185068014067219619349000920632958573837296766439718202177164837105684938742375858270203148625575552185400450590057918936433170708917396680777916116892141242495192581409732958372707602857821132790793427429691767038936185114452175825005986325003281078985766015181858003311992603498817313947589842013182074192448909358542501311037708667966958407281774878834017907460986732947092045068075465626073334472408287069756889979525100203729369883359043692567764786044251428800377733425935053169205517989570708273484979298595677599994924354667670339423380104580303429813240766976863617481620995509275574892768790435295237107335790481651088300900765372090198458841360061336182974848360323310795862385990122968762262209246184278621304723766940771750255071834603416782605218650049428321281145408130401361967964620894745515095577961113387096071345980343347471699090829219616283587338095222511934277649154412544859204820865863649156447870841073331539455189709049000183387914802014021121621108246998892236930726338915903423200444116517135040303641424844529582362752414127535807213543386896077206508806699404078825863625226360393222268853242319059084462570089893064051392933604170282609894282826042899974235379747138798804244590966420800913245694183687232301806804715830635597988708536609219231631026358785671592877245254805331506712165672877923477805567916652809106661820226524688542979936783976542945391204289727175356203297586266198897288650232307905302680664320632168446436918963256847994432416885175776506359217187793224289273999727704241704963588130845208500856729180912719340898347912519455997214137443197859050683422699321999051239852988779455686855269310610113454463986828533239095182853825793987971094341484672067128194985313070012528956363285485705347916670358095144861097056359916333333445900992845652971512178089777116593792869194423596824514774864402988094073272751865533492385847423398251352532895930629218986529235550873683938260523140481486568785037936949923871739874011310914813648877350945776360894974315485257281972320206628471244770971404969222172207529448659467139306263649478643004631632973938945251779018271444172433796528008037271008817130915603033179253643139639988269700726925442178555780269142355598127922777687392467420608892862151626589277762910512132000177124367846522831899012201202164734087190894928059928871620102011414431588793793179875809385620571983201137453721316153034757976252242977221362541795111331311441223778567030030141056393840063832130604123738631282564448747698891828922033759008132341052365930721193357154707398147989249832832706219495414087881008274455779097044864460266460422761609790039752398643662673962824867086336122058082380629821204982798740475742782688626668170397075270830551402124528240270812125957691185599856597821867614383663640682464884435737146478863642565818998529854132403761198454467027799147468363280242772186521152228951834409683366217375358173995140389507965311312440591883756743404490550760844055166182910872214776505951386806041333061898577241615301800810815499565240454389506438177005432825233474830589345390747359428288450178557919816509252499606549489516504380284377333289541402351436215211960086158118125968824965063858887869234237446060234812284182630135951621170279195032190421349806731663783385824905183545204134691137793449960694575760606866005604929829605940853635692769981350900324310116096870420084031161188412783020573149295434966222737110655735268645703682344513447447959281096052024888589583807576150610659922013335350009502338753387513860587453783644317740461769917080728002451279047658119635111121934383095195678203726375388654902064875702603106603576853938896960158425294910757316242289983367147915481422508115742690275231621135960285566903371106460063827425721690711858858043484760541760665263920627267144962657163419931048129087493330070918391751238337741403583042829209392948365962472548700279043832645699402834472153995956880880548671833493680468312558401275094571074670417660592131131030476835005227589726451212626203613111115611923219717506814079581161490674049277026129948823227322909872862047264858211257653617630054514250360333931501969480318577143874245495017124048603975464373222682843878414375807304407809576643576078928469720676205289877222767717427604181779520391643859444915243641261413746220345475645519113399906923068396548020936190062036616881868615380952560637042849080142709859899312326961186983101380459866750279037380007479971275706588970703757709269053926038239727558239763472337407905169871671024438789928683006100877485824974267494890039484816685297713937853832224416312504583404393469608459498136259499903514508800586457764827238402716667416194865684090470431675026845049529384155046254408381087016074130447631959816265611107480242144579957555340939944198598677437864423870367453025593620899396711840760955380680894138063643945278210110364525270448837253480101041934046935714356895149839664426647065455473278997883125768508728895374626969623350063943665765798932847054102538374911990798182818115037748152483808622316011122008697185211288110922445702367328064719375226834059693677724528855840848343139435979884712502401246833278533561368251388719973514604322766843193092200332360274963781963674713854893894715766188441038355681005728108463698910391609721963464166948143949124780870896237647876249608392920152799882819180484938497112774635475297662295438621539478523838298254966792653255912995317933628343628688959729037160124933179953204698349065657420875166382812755316765428044696991981876420078801529133030374394239574089545872996287624956942963012287919579059988259055688457504760848790256458510888751538509062998493471981981370937462171145880468304569308823564290168968708516162421094609643861433537328295878607268220560054917215175588818392054068921810604677211204693424031205905434675609459532772032531663356821788265157010803182667830476303082951303089121889004801846457223859667752798239092542271957761186144672512652608603137302211351617330292616487289129149967938041748145999377790921568527854007634050116336693079418038876723345905756761814141082505347049247327674850544865839596909585941479517239033750703063378845955291159623566019104982324143690967961127211991625525084234048650798529105890554364546528647455218523554404735208651425733230237312053111023310639517430366519660130147123452117545552886709938632629365790280186916145071764220679202890181314674693025833722956300022345039351737337422293672338630963824716989498394451513387776568750988351467522071016791448708596778082903397451091789228030385881723918046847898933004530621946980608493604195149036490535977563240858118627420132895787112187749781838566467071111763681054158913934654931438562811822452532460804620271292319779062619112619242377687459898540207088098180598390800861448890976807369243508305838613460678894899083238271596933480030889743101218837558628908193082115090797048965884916432508713756745777776437304582123866967202266660760181285343901215551042037687290739432813289024783793690737702527709754814040110754651165683412873419728073138302409843057518888927116268888944449667935853083375501353196141063273380518077872259941698422344649742968230706285066110359031525666405897647786767007937342169946583553545943467640435456365812673027795547448008342779042017450741319638002309967169418853710852676196943386708720754358658614182305077131770233242551774032753956601921614282802366665730530971531917477403316187189799922643896198529555063374156253185073587556618152019491678048553268609000334433840179109958216410733423382572158836860162865347211254574629694039678280582356466263259991966718305278208292988836723239500179945348999871988968350239951690500878204311099516215796259996826955042867247578468228035959165439372188011945189507699342707977649112800111525914433784699215458979981869960880683436917673030586294595013160455903920069916046450158094000106195511768986920578056977570171134770001149954507605466999801837879952725347889016481783377962701746014428310440306469260329156524426903269171179616620079337198502513938308317410164109146144994177351417703516231860464961939031099936325381725191417336204184448179189268059146456013272288634097749677532062488736710463422519669398319326988905331689984547299013893822175878944937939721517425040908580097045580610273885529927765047958325757392052555344420798449030910413858589183473527504434153072456737298759822707513282466286710306846003018595457610662305017017194118630914670897199245005361332924079109460754537175333114128128830721240359146862902400580547035185193765757705667124593891432343008264691382536604950504505560776739219408104906902895811201670132448194173545593241503538889310158202652881219882392324234914230173805822620903503715020966127467860505534989532180769968713976370148067362518095514318197826206084886662484261650178632224222933143726758947127631081854281192403484369274271322791762780858666699540774254680371020330983276723707451485562053776632544815723199379808554563097888701383333875202277822331887819254965075150784288756302978963807252197485984202917232441791256508258155337593551036890913279819701257640440673310268619385578097271007395608959904530584692078817268463595391318928405666736891256939630619502720003273933810603753401502192709092292441312739543732728093579503837032108152496395039628166475311828236365250593734659894383587578819965272373948753027307094699986886839374992866314045668789819147547328983555442752317653152029966295767539876112907291342231273983721919203965029507620414874504891700256821265040441833743023294889633590484884530241656636932547973826552325887473433383847493408137346160959610863412527183393193027200453808539932320667503162505741655293624644096107426910584347019807359761733832864223199995899822284799646539990341843358425549152319180531949382416696421672926106993118335537440582589741408254846842830978692034661608973494872598867793723589109467736389214340051967693159028909176018131841844323056202227205141892629523061118080635311976017127009237592591014745568724005420286831667666895302694877856367760359516622398503940027620095514237619768658022373994911872883853884176709053161223589470392089355742593258076884169498610765560007730028511269335917585182007366346915664615256377566380939433658194293455990066450269431594629673909949626164310200312247497537372994428054678353995481284763570182418281180745649933618247989831831954359487529160906825834426949663495493379168192076569662205968781320893064119835404662843760240616776578389154182166569872750631572101332966682797794975310665428256007961312794941871155263536432245023149410717349912569910743447777887506295583978409003738754229017455425231715872807493548829219932764291430106311917388434539632718843138022919478843815228231344693165704165184142362243126869639608805728125564354768422737068410149669508965938425665043823970981006420457879293503096631003149564046039499265195692486952611138879781314098029118613411437709914042909008522537080130552591122286478989843022424134257825850308495438860264368922432680170695441671729227903285318159471398855110082750400587061362398332431185560913107827088384488795111119233188283279298537803475977527257986564647133501623087236120382894385915392615041857267611855923058840246196101402853622719388295115862570903511662389703669904378739906932515514829178720752300529487544366226499955757218315333655787993702740850799179611635098984419520217018960054819049338751378157160289174542544069774021020216702486521587792011909218406782945948563080481967984160093242907434698127783035542469232600704202289327792876985617142964511720468281092917508280039529918057494053439532206694093535901988012263129426560594845510358227803964874740769554012009853269066601561600269646492375075564339614178932001084666777408513674887616933350535619393818144532349243681609158719782337946117333082263270983487327749582263866907215878198631020367685096198280866824218351913055886469478877509921092634324487387696397690953292796315102996621182008993011412273234570391882253815168265616758152466032437312411854681132459819709530423068816469279466357591676189298924714127644549818547905403246416932599790800864172070796264754798891633151042515841673862681474356258510948165586518243398552698462830370156177836461105907440625262463913968100110864941996931700861021388038264238908737247223259059157220988945501777409107730881740624525030191634188595784859698294481988988316649236145110462649735528253029781877403911971805749375903995576752147391070832332064337173725696356659990713237874732844057838719710194379196695949062692517963119984418334321645701554707014030718222219379411559642215969041025900625339602081761004021940902175593331217067227378003062354307637342950587146919891876002288111792995619118206804670503633752433971968194450921489398514676310493831883579982267249852577187780419561614026396425957683439459895911676078796355866039485907344441286501347619322506849825745446662957969910666992787924722910878237920694668183162763999092207052844155409741697886571819569475020886287720475773567158832044937999536468229155821718868294352579938494452251244364145848796966036036400197810930986495622809152622858867447870733176149042093008731224759757059616222613609597462964812828970907381233113756292307248066675110742357827050257556890776582452613731775814616313644934263567593028589431492225029320199439202868078495902112296883859513758485233734143397879968562676035209133227435291967747706129522501932196739167783720486284034959264530834576458667601266855016220904294383282028404650405966872566749138786308892784354920808733664588173863465355043876666978945086509418737964106379706082731076541576623622979367635790771486622775371509863365824316260250467251756417525256745741799404340839176218381801382946726851728552969698448924319110551436122731155040051525814482217309760928444933739239740002053348629736461632193602511961867988094762779529952762448850984491667469724806851021538138587105967432235292882079124568899654354672097900237437353250238661997606818515100019379367338815382133367940630876655793099528873764843356713841543873122515102461965403013827905754496896109735888244801807048867004667035102824092308683883774080052521253351621099907679994515371708169005813003902751073457056131108262849999686660648892242343956374058098526361824060698585093225453000927617161249453597789121835498423044365986016427329644140434324525086367160364051432631024461857322501062921212703078217400444673016657042120609451188807801021349320469864070752905217664524745297841817087756375839615175724848888230301407608026927306018431296875227476839314267932078648761690435276472291284551426422641127978281851070582753552525794646820680682255272909977875625799175701187067993376281548076206858443494620435042663444663666961939453494825586528036673773698410457317242415489713639845449178179538959579040856286110371786621504471918472757662349156412328248029127836817754324108871927418767061241214196973699828167297346861931592326372724347392571656437059932735314480562828526251691766122287091387346784436163759870406136322545813869417132080441671048983859430878591841320521363428499173084855801606345576597212672947560680240861708336268605745511482447095849894999691403175734308077783972218376911805526179602456730590746636600457693209336719898504569183837354297266065996327080986910782626268937384751019878376293738862175763734096663924144725646024912972755516586364431074125747030002774591431148288079762856341597012807676062594314893799167784008036700697065849206989407761303295908847703213802794453463650719759102814650024477934139350313714397447813806041991863022334855481027176880261481702441190787487406827812287483634353115463288782370372288858016325850228520343874268642642945521944686649454659615675614558762702856568413899530248054185804911317800928043559797315740030299633962726089724967270785036944130804964495071583406870720178649967475926859569990290613668577035520449307755943606042693516702049211549983594234462783315001294531947505062050729024838709818562521686839355380351576690734778240410154759710579793010031257417935154082848685299289912942268823054547566594881326380071044440093218388510303427210205760102645985256061401364360703492975715468204663080372681475040255661647516141447807780399682899799649101495817876885888043672246054165243362782951651599596583573936772733979717328537996915045913617745152815347519297355581174775688409054649782141455565458016146193867912310020142687801373214967506211406873685249824953732798110025395717546693275307297857195852623910513994323916991992903728269129617293430424885035506173075879572283417018435106556151403154059208624290934210131815637999143776709007059810530860660719352191777520128061908605534360175373305033655493595081155933340256893521021865871703574326510427255522809395449704965071577026159488886603159823445152815748533008199342790660586590287056879920990432649056979671164012495375424904370332347645223982621623532548486234873150837665739042680046337035181748906176051495357845459438839806530103643254006165911580571477120811491481613309613161666810889849584740484813477914131540351181592411951220101378741998169574008900217222282892538766904388300087815481786180607889067032938892565177026811272666795658245433197917584949213128402470351392300459806241833686941074756292417410075647860021305919489685105350599682860943723946997802777862881140289422423197217075109395385253190737532591222256948219625531057241567250697139337391458594175761197724344225527073096967283683305026765370422875932607942012136941662448015106363205496110480611175461902866857659015174370821713974801747262737992140899953144392248338695170891737762064800495518497262965346826176923141154579125337807289327890420776926201530524280201799003447836922755228712015805021902881407399059908516586891520517358140660884959635925701575716367235949139550578320554604996965154477968575675406763487226130129933900772350215544680967392944937949304441451236731238355909070423731679229567560015406112638014867997213531882387108391860960049612390859663991605068126022084341099152924555920055014900345653683628202573714292800787240083502575352151267211470353830191496013666958730246419872218429072771186160533417323849819319682076120994737765004385886182332121094248141155424987533932552014851053182383368298174778811850049960067931617759875674803701111745712644479836123536790015949421999898597175066633117383632083471133006049066544886764808779964661040622839942489733861257682540882387302218154921112692486043661808897442440484776720550388285595483820690756080606449450007598758778954976508040772732302352186389644825516382940188919816417216256761024853527321380183828118950401727979717894750237449496441456251109035691104327955947582960077100012456406115429289381407536717966247220647542107405974265132866807142899852520290584838488905832098562712752950898242536135285798245831460854302293031250469317675001792505215292286407738882571667085066491355956439701104615835394686199875117549064033170630253333463906831185397102132135264142936673337886169523646890938580346006727174601222803821137388596132440374767539599363336278921543657632102062039816239856372321753447571018689089249672180752323007817098228251125133361773156209961495292629161711780812480463434541670344197586976859493371185094741897823538577281033998914197165479393825186942622390557139527223828930587411575857793634837502298396033250165066666412116537262680136216425516424904543414527967370240436532752126607769534050529953225165365178564821108770960620259112792620362620821479787970543860954937351899317155024930016530525231306924519827100578134169029819700121002727157233450188293682239678799185917674470024375445413439045076587016096406593619189591988353121040807595635312646437079245417527837093097607158852587532079112806060510424243533884770651572781030676727831470140823307187688290325435012921091088958578176618062722889274992815471678015117662847694913092352435622838603566486715354717081763189173880576136618862823221914132423824031609842448816936309031477936612881478946905293199095566518527032137378778830254168517562902908164960330633915659569804584616278767713052878960838108005165823789520759475498770058277145717438280021024675945033670182195631636579060906000228926616731798193982219454261937168129465098851387039150997063033697158557584973704937708727347312636325049417596175567754909122551107324750536284869858014283769067698883130392969858167119817865759490755716143634883472942666690233584619089426640561189138745274915445644884140621010534527735461159711026502273349211459124947795778543706356737741273383398711399145144532431149417275829785699567602214495370204401044943571174187440089870356375258588288017645356057096242968307175084270108752567535816315456319028035665881313237559845584585136784749427467013170659667959652942128474867080370816344251081932689561426249448521965318545057184405798968586087979654455418769411555434967974578167814494716556280809629885170277308318438990252722776924341790735690628793009393660807608644359150047060737902972840207376633804597967068454672414309309413607084657490755944784181335462126608946065770124812952589876552544069364135134266251406947973691901017946224566140394211215077853939666984546908724241362238100061695428302049210265207943402319362780668758678395948342937607435377896261113164534225577277798840143725520555948060186968946003238109832253555762931698558746321424739454391308868070285906137411784407542297911236435885120359097183818525775893483179884553316302546267567024471940972123868229548251422664344519557255953516580555517306161047694705812129258488085227866044006813195767278198571587137988270063535084599624926400816114082370299961699865820166851673778621369337326513591239848534242541465261808054161969224690362629460730156987627955474140474444684705797846856207321667413799905781635996945581020584052635429316168486594277354439759025455937602796626799610767507818509268549465869167663679327854528256320439520087566125585566337209147466008631835370286031970368002974977953036431755179941415287782724706720189933187851402192281096738756495480681454899960383318500677380550467525703480854343629024026478944068583946393215520284811181752372004942908698885646827064988680419024879327811695361514588988490134824966955729195520955385063897187760325483456912294200812373090284086951509348766562675638438165588934791082641272433504197637531450436382125196953672951364905725988918333718162137813222983467770459758782898888965629956883830787748994937459236447105794965106876121514807983721621713583613857998419129035468529941003416147913234617272730530175717216154481111113980384706875766874562770840153686484625547827398287988938627337328382180908010405144365216527797907048322837172869787237205270848105137932812862006444274658609323538701511477611600066619266659273381638792953862384422814996078647685894747884077831913154735887256336067246399104611769272545225011210908527445744928840693065773109639818188872194920825212302429467250130482949462196801473729861761863490424941564922739932695537362299326472673540617378270965940655835402450053362795701454318301370753365664512834922455316393214441571187192609479914510931237877076873633452430855752666515220533000384602232567930619914037851391834076550280917785897742402415343958596463936121999857842395994041983033871202961102585682945183196006990378623562544666844289137549491980226850137366613897894388870600616365335096796630491952548190562188627312899421345417789710043970545500030166553610752910938232309987768854434363686145040757012956374824608764296002628546463216647316360618579089283898238383518571583371394686129515568332484455361735012117070849292405560361945612382731675278830447348385022245834472440115578628544462061311219163739787031123306463675200822468793744742635873073640831321893505361945921737945557954731368545050258310771754090079737584686149468794697576998318841885071593748917874888792735765905774253360246689081425039513727770879454919100953393980026751228831328377114834168596616152567571125191787324309508785389222177700570096360241274796263790470716434546238817491437556729473881995137128945295397773721700478878196062077744235321219996837006884659525555973284680711806519400865229131794343146808728565500416592325099817124035204921700180824488049872448871149439558436140059851460251238873164520304974710735093740032848705057672655916380057883822103661866583630413430855348834729385480574727602626825052295962294994765306679953829745507988501165816818698356439520332408970829788547055703403336526735396730826202794831443624346713364051863950251819914679455941780452097161791895902654600890573151319637657859922883742615823354427887488262408342281088085016743315673515099205637951041973985159826286842674995874426639431375238736331261776301473825511757025864972565446586411051660085780660183312079044706743260072622170004962087562338021882251730647510196512991969096242063565809154989527881933085567296749912106790548442825589800209473934973190436888392526271907694528433541969764107247292075248293227064849273339057886391595969259561990117977879318236980537875059629347693911952308590816513130013322273093551559818509039834265331097611629178758556644543758693937658255375552606423125714794954425062478274678264243434758357439537387273143062938442765320333027833572965196170252843803612994967997551876108846063680652105963643163988071120177161755821828926274849962450768941129360524114684265645941070393528489171692265333758188050536713063617871570779283575545977525079856188506077627741273111159499159746543415790380999658416834815092661761999606596684202911568901838905471762648540575735587134245132696388025310742680185573327406832953852997260738607063038744394605391406168426967378094689073050318998493471761458363055841565264915386944943592287263862554505806699505911372659064308791077622720226843133132396302363095871331808010361150737471370509935979930635570696288819683029214356283748225171371092981372417041161060782750110950377090305762082334682857008776170164017556563339849832373694939914433874899836056107741824905160935878190610052791618478104436428293921774496840069206637246452074114132062948773385114361616678708171020462293426941292309392786230187358672098925538130157787555215322237159249328544697018408223351180077284239699976235975558241179183801752503362360900302676559811977729693654358226511744437843311930404500665474883595786005831528877606905693588261923112974750346933088411785345073300818671999269636541175970076414443205114093950744140769343073271513764809128796283422314537683537837398483289244855221777675409963062824090647948231216662314345609990779272666080144676333025433935784227484300897303800688281545597508296979023935514481944258254818515829061174161029474300831481281944869447318330918141177315808914544261266677387372395468708830594168530943484276083034324209824792023613420918239021243525879597478078193132630753538065841024472995585078506199704424677808983583532920862434192519566294778709260882873436627846557895126493840801139614588439364749626750934220312119275939734781827821245427258056422578172269038793584426547821236241424006589793500238866364454985493709645757759600266286759612409165405374151029897567700171222959956853629442356873461868003732873404399018583083208235154776908895661078482788904697465499775962950189625352226311082527006056745074552835856948724075207208887724778221371399618739674466330519827301087647434890848152636517361476723880030373000242250361038990452752887016678892118278998614028132608887989724535837472588014768276029181555999550367459741313755036020293383376628095348750261972971191763397669033738896239165716787895490638978746388444737275105558384855081141134684817333180482690523370201817968598961849771049527385033886606744405887556979919465187603439571926971011393799244508744527200430665674611049079342252941658126337089184549440422072451851428322011317330346969150173554895298007598108537971580388196283687348618712596705904790367438029632361125510140331717718261738306464350005631029682016422639558219707004060081691584500974604489020652037639138569179978036629166143512318701953751228119493649988216848391124417547310410610375709406732244440447292129441960691588490387357117247191378380094412273094774898214365598047654430576850460364734755265288136697835345961094899745486949338370330532164671033580102544734444816848102957444044838764370870338390693599110344060970631251832601301961200695379066293235573408585181252984453364241166994826590500826855321008857184191241550035529652083539472859974502262214080392452957446270434303487718538312294700054322326668298464884373585237485758135803667922468908863139509209359991456069088961050345846561759416940318036968156651138874959322560573504726750842107701433135747593303472607857460859135159493953425105462619592014329035657124846599704430905851232960662611014424007692010667821048857733079178500315861602568278814380929289350455922036767123108024460319379269849610101592363468715066217457724159560629568063596331985249516938951417996755758243244619871979025991579559661143980571333822312196250957801040310733327193537096788511109726295437715844585601815929330832347565758758017144057615400452235541735940050216419611664819213412441584849762088033945692550577622442998914252629640734235029809704690519760735090403988973251259065141385746984274707468504737817427514502473179584508132356976859244119080110463429422112972760605164704049001588776552310557112684334575722118104096253759372748924072115870042077833705863947690732707357255829151864306046128248528655083016770399579513110904218602661240555856665767050348977419642843466134373231547955078875439254078965944105901107720269788142166339631643598511002059388692225642207895237806130115231831785730754781063904025203061469875289566055082486880531655244085311612679922346307667975433525289966946297989706435613109322509788140727473207524807452056720354758408679391123258587919224256646565207090075073799554446692212949600080802826383929793834153708124790345257505876570779078768097356442763857390318201776457361371158675855767802301931857399207849864331587407252316079819573705049421163038440055706129627663692022532509863344780076825539836619939365265330378989979491125696064643575479891223009813603661042605959877136255505657926916058594291471187972979029348664491312373839443753038058318369495730030290025455384783535656335471704629435714800435984289247454687754338028822153434902326934968411451189756081823174260244719417873616719709127670978049762702366768688298778563910233901474996584393952170162571576217714996832678281791911251604840074634218724250592608624354200057550354938110641821224911772129044683360478592574294171346718382063786947696826616044605388454503353980706876429469507875793983831856102999673035971844159441276585829861776155851786752931799486180615256199923249546768886913031712301512321442514550152296477176608280010918522307678982340954975485841203134092005449871508383638006281962708149414180401885478197704264319249713626507824753990933642871499924051800611275696461615817746899188807702324860471710760576316769604322496908054575906656062426611169981652278890497847286400257744983238397928702948647872794022345825654959652296523456487470549590710139910808061700283561249647891193817547577509223762115729696204726982862716669292227339123035927002492680574509786012130099951414708648226463364452266927193829154875784864765573136818666212152733270833526193725722768003077343545437761313149951900101717200700299131531394576285900824393013758132251886298708982585865964555862164409675130214315839848726008376025473985391898956608049179802886737114777831088178526437875205260522678614158693580608802845107318923911291663304758918073543062530677819490592392222885840801384000502751316989099551627461417777221394833669522264442442138270121971345427953371892854942795279951255905148350465047099849899875295174837331849460273200612761256464073932141693445728847245618734800451516689017177840287487009008683827037372097590346364058626720311956927995093201270380464703576978371043369727451144054354581493300376414182179419480431682053575708386598067216962452845412422237255384297808994760277083041138583215236441946687138661554137990706871411308211284879401145317878235276964812383403785941835228909285142171805526730145755148787257316106455256157687179685571437459356007501117176900518032032107290555834068378137724447702710162030016780163413731913203895084339161571592782010290690928532174774262041644924785023687806683068316244982792687020354260678350828530010773739870211091590673428240708672622311179213413231879441148723856722310528950160162524020094715642665962290223891262025740741516921349832330862372065693991379176794624951660139206334099911928014686321370410286731217555497806217067931599910994524419877592322101259205855757558636131027052241433744541286093398706534016759364177203723592250294302566819400182783981992984880954322296865179920452611182605101894878451002455352704708696054637853224465635415719832355164156062785747861344682796385238262158729232708664900282024276792358838724257402557622002014405111242731394148388273868329315302111919272382407112156678050192072996857218143321498789160688817889937729912210102258356589548645300675772209821691235391803350156061340768219985564584324823635520243738035903752847467862962638766429039815238795999554194631932358574067522390451718160013731111640463274656846099044572124876132445543610810371000920446587925923293331868778525361098190922749593003676638774453024363951263762424263782853995487516266951182339222430514017392661782151034320274111281768925992719552024397648809457551398399507184472121740658850549275956055964405725633587888846120120994701391547950854193198113179893593992979663765965587545421375959874269934478003473631680674787296610737489655457287019720089572515606385591708795758864441679211622996307892316595936481056735436849679710044679519671568773645295336971339461183696975874125774789769495055093035114206913899149183948162214629661972313620227857151493560352327967198078388201051478144216581694117902206690933668224183463549022605987418429954642570182774348445163081615136331432064240396277019521056901086061312111361716882292954017109280887942343613706461536330457513597307301352244351606725752287373946925210771848410489220715243910250027620840739779077108743100924862576215767983858647947270223662806022525283849471373258955403926496691626152045148861475937909302749560720198682319869623445666903536896689855590879088044579093698804463857743426217283957403780021101127680343159471164133626665081632993263871611047977561914382708864167449285505514027387908337247175058861418870193823812947597014423389133419388211618353849212931242008075798553038045290158864930016315544182573779438963630235348557818182888806314663843902432669824938008101266182528966498179605677343114348721188131695742830216451136472384359359489933116563406661085292730219140792624523968027735892294533323847037996257379762056361360203838729289346660466761083591434831127592555468463302876455609306569743776353063326049670050575923328143857126398067104068818645706291563611171785531184538858902501496125355173496482389826611781531467669910615079674594201336282346511793071551348540060214059795904368467543483534697752340470346995425692426822010801968390089839344863976576488191564392458101586202694307146006526049176948372442613007845127466742934021490754719597521799126124109510190863208632948577308078726958997778189972513297247565744211294721760858134152774867516985529035975811448257387903300961631755354354793916899040395564066971940817590509800115042389066883772146251103869908653724436699400728813459175104375976497624218482571628156639445227108101928817365958498710780985196006456546316573491955754383456067677048951196588303324246105712421436718841865499800770771598552744605342755261836049489664875252683853416399663541215162761120867725223527391829290946277627851952526875768768105786964927057219935412101640044599457387370161016497782521106326055119194649039904315875655050294420196367092166587216737815958448125438153730278822136070116963236617518699561409116626672835588545916603025349908104863493625390045964714936944062724359268900317417411674576277492412512228876976557024274318817344139195658448361498844862134447152653406377757641450316105539348316254032135352275213223056160939371142597591642985772202943548035140505348517221537586033045516652209289100099086379656879140222557022188172920537548816669684779723012111694454752713900673214030974739894720187549727116767068032472527622637317172267346061057276654863342669348490090958563657024615651524285530524242484749847016296942411851830684799578236895612996580031329646868596038686342854432629181944816909250295127245192475025286179974964203885876659905530210323124411836844976375777087145314582449293565564769966870001220570117507626484147801987635588067557260112460394102018995220408269662752358979121316953465247065862859623554088172102269825382156228150468407853530290606538249350161151846453902691643534121428250800662134212425396985021690082099197089935308370455704789419486198112756969772042735020974854708932575110881212712995500443071686683841735693475252882654235264801689225642993622239740425790884506849959511562752206264522349582764012788193970588233766716225105751891848212776471195087228084276189550010527805027537291888780534417290459789231526222416552698376505279066323432102937990809509859830426363710355423488479881982525503721074260272979262911271624874326158810221274219457150696799727035552228902724084481651748581650466298720977921274563194135949291051952515626418265169837772391222649849787600198369377942646966002008301855579157702465589796640392298276273188653384343305125845131013785576542464485287807533354718666151829029197309142693958026774613634427276736021522825973278280397199405228569457270073399022291950676114755679834880819543659673812145775114144563986022627605014271935485077487998295754307452087704309402928904844041976893691274631728843588895154730331863167323362675199436448462832342680101631962040795893785353750055804548791816755385860127033778643488526337285938013256221769801946504173364970580783049538683470588818715977755129457398351018348440998634489932344244868759716861294160438020409680630282586968978133783678434800216848743012882650346760258444561701903186555026315721524796109269771412292008315959844434481323326235114350256384892777165044498934989205479223323457489257532696697377489748870056919198630864073720531777587576628106673799758417142542402879063253732111526608712456717418544493318378608497728306741803744081455547727514664800683156307524288944574384902267509062542469300039905262725199158624444350273289337047820201841525080760900540548154340478584683225430901124844668280847769534088216352338765259502493229655162019588310998847866909700961893747140803850088430000502746743131407435297286957811272921614334866239612558048265481354558382433918563571579767532718698088615734096229382776041976869740205335896082479761331220411610668705154618225786863456898101351064442582205729883028462805886726107537160866096340641420145844345907341184759494922184163960385003914180335770856745126890211082459650724468591829229132629465081030533190096303445884511990379398842940193129234712687139757806364536389907209055675886671114009963467788777077172405216317338502144265911884415898044150274870134655210577047372437285635912463279844863241220844511062298578863887508754290050303260202373307475055915786668605183726879728539471083926986168469548009268764514026514682699367017818234446190844143844476655479980922623363947326560388905213281045558035653838316020459263407950219888444975379949853095000254324666824302951782512239561322546919293062468038039003876884810089314769432768236118253107675158789140095870116652048592936309372839852339496920699476339957446402169380250484017296528491885159278260608272991022838500721850278516159009284476794094834276837929659586740282892045876996914346586489172964858877667107061921199344060630943468788649757503533169373576643762469296003248195876642186440292883694496588306626426958438507907211104320119682316135766105159827147882745561164128342090638750337638605832239425742922861226068139701155933870151814046598979620698779837444354333296717389925588628215448641142865688963033193393307214369525723206791012083296173628127667691082807021036643098799164868221005022302033460657965932348542279414917199692947811266618374875728942049909621807834431694650082487654046078172556757009145366443797078158050543977570613636007768504510072394524138514324664898163305136039489726536901673863203626974581519054499337653976731054656923351860066206251790666212683850601033378073164026623741814185600767729747591805637997436593055431881817436680865375162823827822733524678340648253683394135030255320676303420443852295347494140106742383146897818651636097959739728182063352769041006087815466676214190449028693720799161825743389127811594437420128233681206479648865326550764439549349997353721023999148304973653911412226165327009832108608240854321608764577865930242581527104387865038474635271261429843251364403211254716055843946632548230658051005919882320245754456605472856841466341994989740048598457870251928963321846071408320093215092744614541801683372002999864823946803046417143166724831372654325490645115921101173275747008256091789283736832489514976491313678616876859331073844413803928886437565093753585895534841925843948791041401753200102243794780504075610113996693081273837779284993996747145562202034061472651869162080500839534298638835554689756001385236297295489297060639971956977296850367968224421996602729257971780772209309836216671046433854118745812944439511648217480780471307161066957081138668150076283468237222575861201274613411607654312989823581869638310251727246127730027389260710798802480737719057494079728305486874505811546877576726847109482255995177463293393038873154517728089667387051430728094154563156184454983228995666441703437082508666542224353719390146385695563273239415242692671432189516127981520178921871772456159507283427396652389788561264610565836900022315522453107060833790987383308846036639910275699642941009609086423647182757382362449985387961490625235697421030417739906773088346281267615448964173072837830517618955963326205512234357151258100920800428184593094806424178024087414647703159001783425509072809896414507653448029494963353868498628375716748345684971326925971477642779738393332696268974803510814768702880604364837127497360021334399903135407133221106741605582492215580623446857398037057392618732212338070339387322402077236402854205096472784481508902906675615108633637658560554442381250314887141423012458181369447124313602531719532669990146736279342473052022060274113129095218769786174483004310454866013853100284669935345319381861741666531077658016946664904209407367488785646716941588235588538114799235725868678111080611142995948030118123804185834069466404366204461938713067130429494094416246916197359821659992345623466609117552923705016607028064290287429510680085632948550958888107575887518840394196384345088580698207334069542529654153540341892884570065469124902077775938153089639833716993152729751499680096078144678438894838472094266080765629527139533432122826576459719058974602138753723307651407762790635858700004535624522511954605319011770455674877364785425209736635746042709249710956202984130313609549820188335815457294431572549147717741857436769932818002555945384184172682914720127827697719446299643755718451717045369257899880164369036044121190628571174943914166385559077543170892091153356542512108331971556771698037113647913622919323979124388445855145170687521164778273984374316775296501452065932899150678283062633808396137313459943242552652935499346462859281155547295985384280470427800966311492095849087550566952764327783891481086506882164729056433497068550024000722533525768971266864859404235118377639421731286020034003598011401397300295865667457035709134521765139008759952689671507737216840928087321830148313641511832199816557249897148266776572534919868811124748045662490006677373944266014016890752876980679838594049578353848936247539946928786900390546580188362978291167626804762028730759187601086838554643754178596638004136146582595114414442214958174234720656574411416556450236683034469326248405053594042586730791176777017412979710366463643917363102160803760018521385415351322273962012076807214455747690805015108456118229285453805967685195232419115040857017061174597451167787543476576809336102168513305624548379893860738322055764697925131490134515287500479579659285545640459072337663866095361675766480154752348672522926774544547437586077095181887476956102449024972539412313039851030137879480844005003717536465962406250770903579815148132288341923459423252552546208369996445591477357640848954680235732743673866380832171008384983726658205356535758954110313750004525401725462408426220900764999296632571603495115723769494445702808938646263957296724570733030677528820693764319557685813128875442496067195237126974786708073376252242711979774893687014434943804449156307643749768906163220483797854808919143354278045011231555719002371570811821178746995883920182141469447626252549246377082748542477795901877049926064841894895737028958742973311942258064854958788580976095596578996408018224990590664536273207464951910035700026473494836935729364516761426407863597183446834836878008452342793400796802676466374178487277558999606697658858991575475798279419371839549130893274948016310954639644365748616661963128582631553726793276883699302403653124375637129516103840833103744457376264215865341086529261454086068537782945050534040518442740253246351878946895186955426398670365614073872579299071372584843750689355765022998298231360722383163019233956473346209764296873691053280210731890212745950760352343061619801631410390967208891052739049318691578542512521051819973388852599754060750384183458062698069542690371170443239387056884070620754322149553023272399512287225871333609265552459486993670957634876870185518457771373852043085154554197844889718841864662857162989593270735166351452440938449777358481649141016775942327243598534594787976049195632197848904825896310859045268401567226380521870550874486705675001003423134853840969069652127055858015323546823726109670851056038169575624917646232202798495029924449010488700666149170358037604587838284649690315964185677058170227705951205535014486285971438296607391683064010490096511252762086749768559744511310563641174479442441231734339228488141923651895507161528159687000870718596786877380991845655919899283044293703451993912616403019706525308103362550819728408598167781484994182903572999749323409702744845884679193744478873012065068019321771106795647992320628472013032255648372933978563609496725482770377500097869175711416152066713308757662753813873435428864958585844863364299388525255846120486309486385620376501576728335317051286785149195930258921019489094924893823262506287058252347601803756287346483568325810987526165436018873873986349755702855521582494307792080602434396099219252256788080009852526389157438700865130341164064976176928198312012825866766182039568666218888954591950344434649718621578946906263092456405823242295344312118065627190367650465823732818743767330334035791576696161561859175703125479332672963332336551546067438969942539349202845181903506914611280798507657277494072007499681098191806306054859353140787123977042657630694919981744220801164686253557926226275403040737000480423910894032402857097096541927536870356453691751883921377465344941212114329213066602665245051166746161304889397394456051023554261093388665265761230447422787597245584193258511578470298076503062229189991958961908981031812885870260458206027893558992627065364424314423727659822367559292877682245435895716437012313185480888241508804186091917019132029529889985491964543805420408503997658723037296895490179223257205904675435477836652041052344817041981068194402544802755884194652821929780424902908653822733876797823419638409089463259425095191077778019482201601029930255872205011315101412297424807299159713850912469819499596762562603429305135564351292825954389538565255872457707762661896737949078260192173104531501113445199008965818851810396656059882166384984583259348182762064496293068096537861477044777947352714700874617293560919723551438734478294902691313997596486330452044478041421888742157736365083205090536494983220535029272337217562922855523271011447952822774421115603278296479981485760742337310466660106531685458581693435926305913499739804337492961678593207081436065281633331245237202817743779560705547435637431288933563976988457863416303059087381165229397853655287598199291267294099183778530691761252407561860822048645057752969540071235753172705537971868087724977017827909522073919087248364182236685643537138755257212260269253389098580781844194922965196750228117674314721112395291016973227872858567647917436593667093536235888868395082712843042996822145799753229985763151981040695021084053974721442495725455700849038959926792687253735686493104159640284018439090327059742455924318995879896470636086858296062741310659194443423361945119353903661453134281201832734655396070555619188733641902030729654288399470922025534393274412314370493390182424783103095041106057161952525930121533712375644770185962863035776466155545608905233204917426372727018873272806775025247037700662117117690945732255211940527551015820851683204748455213699085715334363700623991178989885936253144188223485890983579106123624287226117197492776896670479244363916763729360690216523798055460540195655688792567224076970340560436867813066523663607473027112057767090387609628832924972060530035226575987253519729673238046070862752889322674281660600526046561639628899737174378354512465521266087488209994588649174533257165734232270035333415999544330684820819001886101906351353205742799263815870867378394107875702966238887382423847835930071479640096387360691170044419072559227600284649264082654344785861397187978456641449745342684221711229877915137384121627081854761510687688059961004016143506420681834685725870046595656878662379427753464554774789687029727963650633856552236648085648137545629903926928880442266951654544906309679998904463846117873519074700641836353715823341005030114113914049997567233577803695856049224896430210698697506304989726523329093583391418650476414791052180351151489951098959225668468598435944125221914170545227833172022350771713904581274305987878979148616514733576798424469109344740844750036381296150641426766462052947561589481057547575838642994034878796999167577295210786462778616538811243997036179317293620025271577196149888985708478456890091630256594176949995753837466326840618397638365055826902632500761077492718653089329368324952211507660979444065521730193568379308372369911351156460923422214847881648965732460212560691257785517965900380885335960579273669331517113493663845951029758131042746929313415347400365195279486652827592103117917009154164967363181059077298160488520860779904276189582259364183693665810296317754138930786694194813387460362741936903352428325953038482680524732270732809585720565483306732637290457992477015173341269478019540315555494333950166883204754317424297837105763910772110924736306608965512431948558433163970079190428248753673781993656407006347849084819739410784206532656635844581911924978461526131099760481430385653663002326137820680893358372245185448003721588995093553484959752023704295321084434678181585947432237903218805653916621261113282629351063252959506252686144094801020326307305435314732267983996719772458637298901157641213516570478762736350816435775447308754354917215110628984015628032074731090405164047422982559222867103964541312121786591042728890523111097967079662824141076144827929407529397764875943284213668463610279514325458105483420928238386274672174726402412494103317600373945650530199003776678553103127824156431817640484681547184959241990643853309120217026028387890300006257843488013737406160215484205297066127519545704726251030184125851391211464868950252101473867685794475878403569940242842650217662929476585482445681729352865219469416172211748268612696349939782903315958963057965352597348158776916166407667230429892099440679570908528298178445218858984647360770774682488341029047355146907052656502197297437711574355951603225658747075290104270486264530521935428695958298400819153133311393050070238384358217117658670788568184198477633707101971593359685922921273078444462427734999506874341047853328526215392725521514865513177826419682600792286491306478650913204856226376298021094971833786211040325259524133176603225089849249807989040846845983040729106565810449794021126300283351969525394498835764727196745185090176504425621238826961352699192441416860857413126977319333561695594072689732643488016721966210882667759584453925231433933589856116574254636900534453705663598573482156762306334406461544556001497475199455959773018248376846633976271319360083661213456834385504528335006352603861365105761046906627848212975315299959605926290869633507511932242869275275660270641009713001895601278854964862874243206142227022205399737160737460898665443697651619452409564180145855372066238148244147838845977975637275720141949559072990171994901871269298389139693910195809833624919484424516812920080541436569119822288922779491040076135885188048559425334466016682136177766119177292459702549555549346154172318896919316706385643015375573497497270148715144633011800177205956710812761559331447394458644723535483700312015030195271842161848915284829812821717756931288338881289788650201161018944298928852929466455838871919444959101869280708634711518119398001827821405938511283479509178838037834616842162909133402582272871360118797504619884063944592369002233528212214899419839624864978778748160034815373626041494856385585683413081952616087749869528737692620291392473305521734763083379808849590649618639709361595020506397010309115990007241539854337154010313967008116482040440057722858399508514317390064186564979643646744522065070951569816662855379258439344511991551497392333158171402988919077605692224410102677518550097827877033087807542961796086726321606732568742685009025055509235951421702722200913329577958354071287461562133359514280945842793277920178034137533727880970434498996148376615115095895730174901326715558638272221517776153900490233804875170560888546475946117713987168754672521538289914402494668126578153098310473905127668663783361669173670333233304981396280549689266674726410237752771423935826445033128954589724918691382943045123543637268287382785330274384933039000471129124080788692112907656122987977415828186023584307185123851270145349047981019908768963376690446614743962282413397996348301005088419982801092793705961914068041269355563280036525036728573423424910538503430195515008106515565865158745201882742943146922198236151531385598119051966982796437363282665006797318970216558809528946788857378311814840326308158334313004239726236198013732209284569632858882183905890812860014918156183569373140927376342201992037485486623866114269415715428243115447033677273567629873262811231731980955237031964057666778605777485613023589953944729894015215477266658154167044758088049946179110263685682714070857453581146751435930458551307247863571971579612523370986737373911487761486183232498919542684636769488529404985138506367393975161339744107099523394597292114190157453495762922068564167523941553145678087079814557931833615741443279026125099512373696462769268099616684069029366309443409155762351429534613175598357391780541839701530320596580634662498555806854811177911302576474021205526699744244287658916545473979077054586193360898277735484545171335637025302966920702631879721069836283203911551960538143229772038448706855631703437587396971850888883003429175037128997966957912731195206932235003591157406846398256228347986723372890271918204719542935016098341950215045643292152984584022684888981816500680050067693752901266595943095169341045578918211654382797672061328879182427312161001248728372315473099436138372716259177985889906445512543138588511850688937992000205825097245763854266995205862146642922704590010337015915047027728137870626947834178028314209613777208347433730263879720923748024114008537291762644998287193857379664248033595363592883905168718077962851942435004259012041563329429245687725057981152742278194862335169882998352665629693156523424519468383755958011074235806976532092571238456906876732435631927155726663305081824989691723900414652767761006354555297018052878082231935533082619438233188832212548953249530567630006677849502261143127784662164754891317584746506297119010050665821526922656756288400991453270083936601577004375004466348140779232949972733163471955545204310460300237996632988211751553977998555209096828299652857729692668224833395794535610929738996856529155598385472195012624027133778042053804198355181488945004386224340253658548206012184156503808958631105170692750059745586647336180663845970688010690238499946533910780230851586866183941282913730860713528941252363411030537040934861899346432245176271734990684809839825701139634569147291883966243931501139766304168429578642953858898819982344186045016460174937725481588220451361656419410162949118804334667942715155397047930446697002123854821179370185584650533630668277768917002875505490813510068044384339472863321488595942583875218869717611636298075300384644683010203484703827391688553243188902511886888456387447835085647235296520663309200344150126293656948824770323403804220552275407372210433465487119485737962896164570250153203224760955340962570845032071367231603767402156240559281493196444243803096716360977440219729617134598915529886319501505836775391081558907518927446555554277957824190918431364743436365374042022174181816384422144929154776365246328138318177055442793013216078683151626266357126282370955724275605356750174045504928670958388398360938826679389791623699789940023532147196258446432105774924073486192311556112845053961403431610343445860459535935870936300257757807410689334983954300645641397563995946072893829311685383089337851732444754456802176336576972846341399968678579414084159399507247245472658258168324876564397126798510432262315287895104809947720591371097773501196224704760529900573680868520178914526805845315969387967786224384179155091990765779901413393131498374797821540249254385934549338998154763845853170827333561381358398473447787089245768630423598134550576007836270040092232337870560901903867087192287125844712155111281339097336565564899775972535164939711634634990751719377395427797024698424027106410539958341335922496563277412823851597222013578774185112299109536202217687112275602855206555066170789063663285898060071285403589958433051821142560527390022970346953324948711362857762334437936852951917772343368986453689551002860006188594228014088152944188482353295708963701824489095918235803493928445194736246533047113897621995729537356759668501159393776908541629858978664883684120188088278216982161655213947992207125970327478810597111631220225760497230387239094591655974013132405306942451834518257217431951744546399578268151600146457900309680841583515721929133146438828213013129807086966966659385610309805619276450654396812938112061635999668173401958636639726075067222461055965422164190930435261846326778166047252046276286486878355322190146712777818035985918440811928935922189553891591492376243542681983294229407465519241044996231950441375632760857491553438930070819113833281474426299128168216357731414634135882184629242793880018513312428188857029538480772102700594126683061808837058230227086517250837229292395510484086776582719109811951568085103934461014941602718240166949190941532294677379775907387997101071125050971172632603578945552645765162421063454206065896491903577317849964808316443520992880440572140754783396318046929640214022161526446616168786461529606152141906659273820783712607468300296418921120759095914269077717495691488146228105513478976695121495652625291581055647743814404027223317240393212758435197814584102869481108576028791793205292352138092714318249295693883814806281487520821969264239393984764094295146297613727387244812658218457672422190860138400327157824895015903544368757463934947843589835238415194987639617505463223209732520841747974799054297068559656537196612083418669049602973362454465691818265775835477664890565808551938747331025619951944436775367558803992954283431210810956937838911311677298732048579162877260700380818149886325431024886205184725581112628548950822707823554975753888666753010480326656077262773639321487965801106430562133597295836343451956138805313631565970509368448089488862517250989326370308503360618216504127511805608423926162116280194267484722740519729578145407838228151202896352240037898010843262606626989019533982930553699026348052520223468024884926044437080237402760000828075376386777256514129009115678289625991034817076565856582850867584678396819635223325788394644178934998130708474476985833267917160497693520535367883795675826958693550323219302870947802219931624684396099081636718481313053282727963874322626716458109571314683222817604913072002714778025212714764943886281349106579288118388727712394645358927420138990196076218467728561112605485049769529179243494421478140456957403063652953786022829834397879453085571640399600569716516442804486655821882296224717747772600887860269601609362969299801419659601568348048038466086340302250340171066732081232346439844986130975240416045021879066870924828322729328319939109818176537471996417821982428941255081447593222445016532579569598118055810919594327624421127036221880194110687986112188279289961710639034950722042922902586580270463800338977676108660269635934021825726487221778000430808950464511787747753180300041039115239794425120281061921766845938770473999632743005671208162207340431106306202148962868022295429123315764662270838248654594366455231637399389709342704335559333797715197720551853759373347325438684583185726352213367077212288147072702531506026112666968321165144746019291874217890846760229432998530083808841278440914598979081544572363226105825198054032018513674969780481955865931354214619004004846333599069880292583434194122134906327265221262874540051650762100734582102986321669051695954521421499739342033880839512648649685819177356397654407002977190826631929921708252566287811127054575359854667455818235701825881901632600847688249078108964664266758062351446190903365884315669998632002558391221559558133947443355854500140366361564003606306018834436014374571903042974200885857100886159717525628307211000402186139018847175243042215233065013897098962647031961720351472396219260309133464334810396105360561841142089648723535147970265385285988785859140777450716669740381286228813452600590342790960770970833462306930219521723397042099992494880834254760161471948037401908568506692568759382722282665521843641764273739293313270675790782657201399463911747080009563132624874730458460071067664671185301755780118648239134681779827523513801236893155880313971448756276960313782773266404307427580464910556520880862664525210392885035006725609616997112705978254288337407822420136927644160942310683027184730457726587642351566697633034706775887979413213122424090408107785810692747953909036277593210730500260621774336461281627295592978852545208532965754939977249301022293431988034769934713123046647076220325326445910575127757055815856425171386260625681422091088688507650154368598242741029177247334525022232991034063047342520506003073595794513554941475408392312978911489761451050912440255859884396520965604578322371098787768008179847692845012656230654283743603248885676954870787796726846907174973198561076808396556334936280041458753925252582049936471014973326077018207310505884383053721590366689682179827973830781667292769094968316691635835062364519508769228121035339349631475048876570178364095827576584051128762260600915274648742228083034922330973986046504658073557154608358485614487763329098316645334901449306579766771921795497460994116100612418480405856070943116317013978223439777391954359893240225846059567289221484608050035821436712167423815087894415570125591529440301643380410809617933090182052386148518579432263968120612052438631146752680816144131610425900609038339474824375483160863878924200574379441364168055377640721730779205785650306188870400462735685628630049031162075008900878804682431365836006252379525970210098487680232442184385831456970615941049133711523788043527206574481518202725773877261910956110638585369640138723780850998682888356478744198946189771805894789935549532564040936752779315323792527649721310310926030153897395251941345865118746052653812679088861352165819222293223620720039642001219848154925836775953826581721499624053308887745356428904720427129129761008642064600595301436248522220711983899882559595225244655377561797169147069941739576365796296696953442242976738359857993079788707439320804484634464462048784020743595367454839970304205595292116146313524832425045069226769487547582604025298404511383804632007801420839678819449712522578354028130365759772640609690610248940410140596987717248512130132180189414818941918745380367970933404749033068207672007882068579068189085707133881514307420623911712563015796180265977147150517953112409080109746147021000121490369666046455149210064253827027582553964282031197337836936184279706104528260715981814392218801060861510948840467052539593868126804809571476937389267281739419649117692477329885076308891047865266400367902989342928331650623795639093898306563012857664309713941442308710007148915826968360814795412248045882552530335048911561338553448844632593049129654659016426028299664011009070854836005018510074482638434580433523888875151833815833095032402997019790842785641742924843278875349009473567680552411991705750166290160143832003311068107717996569384934071535865885677325682389373416273936670770517482067336511124263328753213830618873334988021798572373462379647588180995426937827165952231665458718659252824126323085369806865377282734994132104150002699989544170583784091193162676811795270328132955614827545020361361248617632127800895774896841414571856451497210658008538385892328825221909623056204481062214682801538751878747069723644031101286701311908368444484570473053135439131324989511844076218887021892778872118418591316736452422636611570718748899608269262747757930208286680455089660620173194335836143992668116212580706516325972599497869479933491659848684926474958094041484795560803564642192695206835658017482981814308306926600578036044998426669612136846250718557744894204437337225066880892868850655420871879102315647628547158033351112128889720800802544078061274531942622993104997861177870725878452479449131059773950851442623680976806054708182895077548518095558032751547371050025601408097208688157067107026521064441980364061832243337803323936521206814998839056569013170188478995567623130785088535025955962027018008512154299284288465018591645209740015760054188823603156519859951345869981784393862589320629110807373320398610048155836966823843203175334906540531974662958584038062063227275039907667860823948034338461469717349636202393964104182653328173315571727367501615865872808009911616661587774267453145316016853596052462695531441284215430754420169058689614922677995987992273942197765169817403057276648485554266060284249404701657920438602046026927204606166826040106897240958309231819139935379514474229706200812598320874039914153921734899640765885823143320457788422704610876824185419725960554597765517697994795823957571518867237990502106901260384597297893656193775928518711830189845398224489485829649084540602708662718190255329677695864989761913797876949805312370098221220678335359672750111194553565642703642755910199827513072533324860247571988821915365007844303903185721404571008058987317345426060337012666246529826584421853912889825760029825376094029906515846145667852556383449891158712366832761103416183749458059885272753177118846793222859764594121639223444204706521728018414446892800192525112290172686916702613426926213903187876133752272992268940888383911297404664859112695733497396221392017774462868187465970542954839077577173672280474797246024348650148220922640024458814908075858528556905860577055870744445950644274492510720696075254140149289311431595269404127947443005527812878366386824234862706826951342027485594424153791175856495140973550769395479116244155918317905534667162609486033576664132100432630474920405070045867710924804273251437297251773701947701625184177799454394356225837028726565817331548543544846512178807244262731084482926691021142539154736880503855478977044687414573195510331414080894079593809752173709837484558772311030397569824141842323577789397177739746637825989946129495658742811492611707525873567288210248058559060381144228512190757746880197807929086201820024236666644083748021921264899616302927414290402782609636683513394024691260382045099901774170676107166220546703288574389350169213737022417494014548036024575009326785271574590303972927419502867507105765025668955408643107478586335155304376252656671770987065700429710891322701766183713018909237333891692740423405289107921781326629052831529751692385567698305376694867670940125881607263233994622462562259808220857009037236660051014818549297343320048124948729848540213005750782491880885476581363354906826348710761727004510153155884298510800666167679506931493641309021661632992081732647906689682553728205703033000074862575074466131471476696537520689112476043090467986121218212223463121649396958936572136769840839821872106646417347198295907393717291813490248300893618857867610156913992064460623080816057419012089825823172025636922404337476771691080939946129692948284871391042799892846944875607388677497521271514369063428997379085768279500507323645473877365609841362035266742707857553151437456752283864946362069069125482113519200972091198191422286556901884374895419157232272689979089323937603323229526485659237493493665953403717576317598826805688179580372795667870753891416267121915249641412116387131752472342535374455117388322933566146100230759677706645183221543140144241725480341111924871836136245252165141451722846355767047520495804369786820912613212163383367915978480418290612486716416248207519586785545488455925237965758639111975470496390171828051357238695078430773368778552694392628642794752597572106425888103746330851694491911998939529359006815146377090909062432082309197664987346403351946256399462336762434461893877177756100833396322014652916836047461861910833632392108568085490980055343028118596724742836496997999153001257847685052002391937091741301273764472877987643240103550912490913577540691561787491604194355633152256332248843648452330062350737631567019788238545618289839854571362533618848880875421497952431536567597999656017654415732121385786400043789392409295402152445747549797764377962412641656378710031727982005081826106956919509173673805667229930476253347690362161245247489323076114651773646059536109513404314711666363608317006248265294420510575705171320578799623896817900266332590395359953324716215342258038080960907148325297225248847818143423936345409520396511036540345829338444113086054688854171478411412200382502818524975460355489570135492632521749628250367127046653662781287649837751829489297207105198754218353892590829650243772182271290237527488313502035346366586890509291618548825257196072347368160113897314472843036112823793039933593801306106211634470538000190521161839292940343765440588121457175193836167621795688240249753816383565235437850058947684237853459459766924131737963407697819111628585107598111451403098952155528999608249978613958648286047730331253908369898561190782828027094354237082278314216113926258207927616947214244115304065419233129170678317342032025945769596724610642529022531498732506409708180241610645120934268031046125439777580949858913850235684435988914645645136804287128627284731928430629429094620468242682606979300663349932168361419209575344705602439754744864881685302572989377084749106935578031175205221258740632543580946874288946096540455295680555937115516067710869408539267718466465469817002235035438173566048431761820788015551815310812766264940900141073103530446265434353584871588569530146539863457690612289501146735912553773433435541678651272884899191245600787688132739176872704621884219804264549398545730232051051775669896403799085115561069210348185508684958739220846162629140242232311870819953643007147288349299562830909070760425544540473130171261857902816798557766751524214747896066680277715237265955969293090079315704717703529903902859400255768323314616709588994679842439721830355607811270355746019997878140018273759859084083575772152339213293010074222790999971147383389974428864446958593949720853320396631573718870368734256999760528007254766861659012966513254931149957484648250051167912909088111498283909349354393898731906317509889498089428336577993877581514609173979654266404065794601984411475118046341272555873893200129442986399426931572341723060975085619913737972296153819253030861014126074115506183724839893642129550941060424430120460961283397021990674565823862068436059285161532151240611012107259686931969607214925835231737570176391205038565132293918396726875373053090417064750353563392946887248650875095486849785743827240476424995578079493201691507845303308711039387433471455319737684435773681485853441799955099383155335882514232492004889596308985175373197891888851411284499269356578526023226942553397518296432664056869117804044938088906290299664425489213204324997788781838536660228366353967109751402011799232948852691170061260040864164542249626238287270388235688285541931376670853684144605089278432041305431081802151187520954121019753157711258561888213954749025701316218921578901828579122707826607889184360022859507504996272801429179864604708145071022800761354533489832135535615134749813997940412348555095483347551319082229980744983093610471023174454022576521395354442337126536258802951366850397150507772572868104462325054102427751311138770176291488924072494598321192310600754072048758154838265871706688793480186851212827775955334560928256287793030443188592138461913118067030054580651387475627228092548870258415264380616358580844135217118748229377496907371996300709623852732167888628184720488409322840168768597328385012385084536423228957242778394648562414193216788728661555883035996398620188408164113786094907800946510703549851247377271850377534064749553754907892899419948684036950618358037200221442981281188607429050081450479954170296549478977095283959245394518464650164917828459562714589381379970875902621819378996808222522662915196024213143636660620707171797788836025906159670971391496824881029697748814414665303559622708888967549816051346924716207917515327347402048764863140976615858270102578069154267704455222446494412349996642777485658248055627806169174910761102053034996221969198791654192000989619014475237564310606123793362847202162613912371337168354320184632369317316201276413978035456951881192101252521236338708498602412480198357602277181304684234247027096684593571026974963836518038764290353690700797241709060112503660667066609627326087587696462678071341668636760071532336090621412615479488376431594961561770372647116534301361603877799704972695661226886362047390035994826488881848267091709530836016100340373460194912379255840466133056762990221998715750310019617156711817703667115895498821107949699573891987047243688851947655881247158857634231238451393363822342193763191397691923522409108867307550823953243025408182447665367534542674028366556124326668383378701686702426880043311040469372726848216037509642747465014915736187932532771634777819107326486859571816252208081394114306596505302059194532318076982306693840420824272712761544631431428481043541777298927128078009525354637610909918725447992105750299537347247340258082145339625544724549921377111019903393842153830961261493969099211208284646196367602722885136491896577359661414177229814355456335275493574005928543114200992952846576118422406136155556548157567217612458110239463391042741665659147920087162815481892352207479638995365732448638164987122427724353021588974291618699194348705309437466971629343499861812857858563347130722807243983585136256283983133362813850772368577659804104270046902064857178039211348964553045068910577055675949019972892775679604935585532206602612199827896392027315075225121896561530153170937867999939580850517889538902811754594146481363629540638322766488870772307097939138843868712673335052942738673879655304372318384080167669441867295069622547160214015870221191523264716052721590635992724513132135985883573655790407256169641807151155710945962463100044198113522434184789873378842708795050036479017909364652387468784704830613654133972927495352446578199619851543351901477711062153540872434260649384035981510986573744310346185761368014096316362406303209773019574042720132787615267973001227869407019742231087181454585405345647366707553700268407007027174292201518164327896633188203765574857010587546256047536054940268599429066328511729051809436274396940578962714896588621640381294245382104390602270729184860317084090826476548281079396795204925766919426181464760295233424914916200809050621441636321422257582126600583709774369934037285172104139327218323010501073151513374157577844593448560811371437788728634979047982608078482109885842085909818301379213524672534430876456248916223665769542087775056226615434454768968074099265718213070410714150763545746018319671266483808619684741137054730176920637437945472762509741305866635164091627755404636365874677781780959289490802663118357118499046344586562677130737038691534925231921179163688714098835156438717441105094889774052922804988634454495981575663942571747097797312534991634028760133152733607960719208014114058457995253779825893373518365001164332446743887376342458645149336689263045400884144393062807235856987005634473806884354872051435992303669334834355716798836592142084507428415542573324945805687956093137236407930048554779086313472699496839129697195745690276419935236842529287284754987935093467626573390830332168858814137880132632838658393381328537960457230370939324063517733135181693053824997171421090727604762329745161080045250183511642715431817462920009372823591879653631530172308560542676885704434169917537469719544512602047891695513149807702916705918641816350453384742011447064922660504427533333609425067631474390801925120471005025456283650594430419847607008152867418312936040853262329708288603294439230575741793243890973940305018080602058695791496139875249933842928593271309687560743744363222380256542603370928565945893387866565921885307828938965812291276371002722763243077620270140968692981012334242046126177151509669810281940269899944267469398078626453200025949754559878677631859534922911410649706843545301093661021837401947997711874189934300866846981457419807385111274377204386081275068195191192060331357025398824269357247650305209802832008733918273046231389586634758159161331668460330386521349389684358930286615142548970898326015405963104218146075675229313157523696175731730760872954126544957930728280357016175530285322743348257270058499019440525515685460073018551573383216541003799722556765598845753949708407521088094866303681104221256782508715784308867624736229240923758521316342512363828892191595355762773742841647145712714286999153914073421182840044018163363848116899971673224827086861146229716703723683933578056988699623630303570628363712659038646498235064952155831436793432170442210428538526049840805366831379574435803836254212048086963814625133538605758664848619336198799527557573434473862216336634328837793509901485880849161431917690790569941250509265697716607828949583000754003083122854023878289952900169777662076573900094654895392489208039295473789827686566543180145224205032637589959360873581889464316799492438325654656372239273263238624661633185130051238014539088882158611300867631754445030957139022072344114394418840030550689630843901515943224873265769700094472341463118901997197507010986417078708061945653908091200026064621916141730506956315698733804155469295345870610771526716022038446785806981803231416686176444900634329830721008789801415713685608476713349732684973300006783799627382531273141372012339837625022239128211710682842734344183554620896489791159768988521882236473471626005528397858767036652685519996700545351050094969061133100307174739968160515815966789032527840183669666691072593418061952929803628435913663110359274886439260205849813935437666507007835355164605056238884865107210275508842933667457777759313222477224642750601173416619038707229938318946463144712255422068390380217954984569255631100570826584105126136094115577646809516749657211254391603824809982213171975672609600360299002953950848376125205346585000284819674619533036010565307374746520941418757126771570509038000698933410522281630465521148287956718007373811362927955406862244482561364371861744628866966538729805540130742745853922422668085519246569742237702398190577074305969490669086829778067516592859611569170921261928476091551179188155475160465130966818250062999623670822039330907849301615873913013572111953646084200453529092887371378872796878118878736642943231863558587943218765103171926726702338506460677356279791111087279000618504480183260309094875525276171210207772639416445294153252213774785341489634170700016584970086927866033051101112093541935749997046068220673231817288592657207656628112556744017508888360233110467500577351279252404044268042491525978888434798023731890374470766036837863954531943784071845314144695816736055222067932693411036576329316048639426538908961639550358045108277892350074231259023428923945365612594281698174423939651372315273928410243206146237907856829826360559165650870660272370522202425744769494109084477480013638572270904363312048310553863190918703674070956495610184299814437215240215735037753008788157762711583825692298048450513284305995156320964988756071348487287550276091708037967870530682116976198963469280196107060286941127669454526198271448776675968326428973117666024856836104543909416221712887232126650374954487125206531934425504913119599718832580047831715874322305422965522729268970922513255003168819397736290143597706910484952210593573033990973091466588581647301797728367944848626494193146035813562502993288009821150489588287022725586625311264738969057332709391993326372148400214421167821625155098950603469001683634269514569842094270819893662252982700960851934912259449049328729719313502965911955295002118133539716898881050761826459169599599186356415852878072223137374033418616106798031722708935815635662164973201073932794576468252908146121710371415602214495585009667816858735341194807955882929887380844114807472694780585142740722945243322433221921204702061224132924930690398320124941014352176923474080930500767033529683107643588948284553906715302786966482505190917245275525948039948156816214444145387733328771560460987481221325949114547515725030444181199018916367378561658595364525671181199769389497411902558875471261871510171562768328972377908712022732867334587197600551014828469801520534202047449606308630319837673297274636400377268971777717181924536133457048583566451930007891700186461592608909090467842285569627376582512693958351931350716818498805629665722764962726321895816611587870177738026659309550312755224301811527230384169487758616360595541700313586775696808274289584467255505447517547981472450782911681185616152368701303472858990725528419571797295394555541554424084189738705188015311845412654442160288566026749293441025619213408791286795603493047561677247469529495036201620142243139680286409820430753786327970981874723960939777634031832551578417863290289280521087298304197356491500338352461395157859956100916510841918046422585120965645429162395018975929808456677195432053521999095763993913875684313433365240939255151746749628162868804248834779341464160528915017204230636682792860826906419379932918428728963113215799312983497915001221580543061667039875128951868326194329858489373984579782858136291807916596526122096051363476650959036952806915807362209508251406031792150042716092314917908803519957220443666564721201553512028602484377179689647020351180533494093822760509069274845076971950754247414869102159812722959718781261003570330729559665603016355261325994726242517372160685900292096467555899507237995793150535101633715281346715327191917534091234996947883111953393922952422735428386151679225674173038045690025455539431192735963221975409916959942889311946228219546220192077316290608115430875431641747920370081509134591471099222795514212456987067218667225945956450425025707987079261660155684473656645551353014176147470388016014186776372198790799901618433941361191873189940057919620696133709052818013123172442063885517001247640577843477366176238276167348138732643221096744851726594490296821623805657012340057272786771513697310738740994301223471124128764173413795106567940626802826970852189104170063416801201703238079864385867801091261677756346157202274952247392738986126084300729831089941833329340403806684959019825801177789020019133087340639638189054111281672075264730221146434694244483070124096355444869942923106552417737396134737232535956385700621527351043111131447884928904251049445416593343619802407728924049863020696108077384925698363910498338891311051532337653900106518127441891627988218293988468727935008410376602931056839906085410883328892898775982435124434974704130924574755507545955685260851263791569301025352047857608684642939876544628688229202752913158770522458328689057896461354724410380567477197609272964383331719752043997012229372726977761565892491194752221089876937090453254800453287605493364138078813979900886984200718140896320415709272475181617697802065717617763134942601239055490924529880568662444906675505519041342765944464759897428847033926021755075854537359127328028313638221328803389371347505808123080180615187322306027359928565825832694528313411111054985412867012129379000753250799565044020196302993028502640003103809121862116719494952819118526445756511243177419794944197005970915146904364620724630564974532061367711028165322933736802302977861500895733409164117093516057132173150466459434947077777983897191980994032105520418311559651418528102469333098914968712130468561223849156213004595826997572076936283578502135608769499366630149799363197452679184460677417805894874504729684306347961153411165298302684077337300333083485184681223025858550359372152815428468039482296765670404585600380345155759061373652754505973573356795915369751586350806613268976475036775456424536892124671388834421611924529395164655830547602881910309470318171556689909097508171570699007814333474393125582639553001664544752770131777747699358879658919242557713847120567468838324657809955242593382394160203356646667938525616032953667009371940077106541176197792345929882669459207970226102705292524023696486886087564263776185061249121787616692688085236192032827965572628231470662808120662194978839271010947344500157149644033065361645100070657602735931739068884081846389825196692537782229589556146675944472739789829631969178811881266245960637391515015847476695690070837410728506348670599464956973238172564805487187050449491625950858703375314114623853378030962626323956408567836509977590690030609536373680927396402839545563043561169995595829015151403174352370283201068366595636534810682082860886875852605180305620921724431037128916229004359790775267573371244176229688944311706555758604583295102836083465051238290429688134646307245238484051319342119699727843424612077390134534302075201152806662455899268040807735374266542793629781361153577009531902753010126414633913708731722770693526759685402301180598854180777207558565170581417659187151886396648222216716289460198238195587588882529833213148856130322475453348952198951554695335541549080190016574605367340009550855265920170786916272847728894954006911314199171728153132833140375167161801904645049530997309048912605632527264651810310554585894628793616342473535177393655485739784730356830900693923600926971907700479125262081168814131452607766585418828521647346139131491086578598530316235483530584334832897676888646507874334931681329406264499548241151024753187847818407936296144456506166855456383595067287329880643333427196095580961569815457662909917031007206952030594823158032491196759207022388730377802534407749134762387215719627080096771174313339437860518559745252127422264747387311326615554078523808079778369016954477737544558783596140228420796311774592300700785093354384006018651354291660734411507614619835023168599125776039047921212886643748760834808193069081842329190046532387479829567234039874252724397574059761690602448281247463956675648150893462377658951138442221889105132553788502838983255650811149514676602015222714185972452462890323118562685452375147892702524142615966353228948465484407853751214274081712996989455944023451952401103228032246058901734632702192744034742648756424668625044764429285831578675849147110211605159481302391732986092869178595832534611755584179715282669642013389140862828573644782069033165452093268742984228824462428098072999020137937700925435826887088782624424854794514862765263787346061523507693796909658362660248425842399025823002095732429915321078548081844803841620731898784025583401559314307402185717341447610210676718256264545890319946949503386345213507929790690996526445355969729334660862931277080476021317894743087706166382230493106481041225183734304157321265179177383172303495562681666804987496274163072100942239591497363221981561000768414900310578836878869744815327989721371483208404543210182958973086639322804412575924551302730116588434304019672579026680508020800223578443292897689881326587409904415616013114072602181935544923266258087151491047922792994362664719971938196608558293460777787684228461890287113702180116490017271195327947816951165723494906014986690578538102408402763044021748682330835184845721379888566739288957610182544377286690622455791499556210528191240614296338560804861598803283923111135441771414494995191143066134485025837190472037416575064811127216045861025999362307356065579452912109686129406671280953280818032334065034308509107993919334541466186101984596163241204374694617748644983005540727816228953769666351319800340165165522048932699538248607556110291421755561749849904628539083906421245649182610609952796192407902954001392714672227559840516223080609622697869805191787134211442267676493542548779201276976576727634675474704945511797589905964113936439044765654042362759397830353514547407650854049473071197986564413708291881463325538019338319120761196160090932150106887375386799886663281384813657938330620979297911031921741661543815660251552612035649182861846634265403134400723830156282364767808984052827975721975265991129340320197650153288866622604221520031326409773726192194731638210597160893199200818322951008978468793356807098156407712026175446005396619678725585721277701746171730172690202184888359450152620276127717317223748702882095200735353522914217645918406338667452370779226561614835218262711028125812597804411332437429127565303605575526029296919762270796682314627606081166260718016779981950865722900261117096618525135577634883450433164482865087819458333859361499083478274565435044230254487173597652284949888376841678215001020490136632689001900103191912108126341230180561286094146005509459466047667678276943584214402886087673146774918525815451232680722830772937779732671256148158563760684552142313687866466568844688055677054524674970461795295147940393821872911133074932445948992645176108417242692381285073986655702290558812084988872852686081627834506397562039817667773844910116660935114433626409091066880942435253859206509195837324917561908387882507926287126668214463390480093491083821507888875953883135770723002502134088527737439991446855521857556217618704946793298388636350387520752398737509301659995842577173951507476233149010628549847667671862726072485466086502818488820147687458625827302840374773980404006586694764586248162724715805620113835281278407473460959520395821180564861673446581660865472933371241852451076333844482777598216741210505222232909031859431494011108635212104376476811880877977898549553411907032267133435744111008593631962919705823319780331409210071282044651207415694802001860577599630609833598058020354075382255801606462293550195260030713685572153492427911889665653441182329869275920566809487285179336356654662145492206273853482002957241227784351933176134525340630713323423063868946324005951874694400628277586371123769708494041742487302209666302049921207234666288271823575714795711708245439380701250634937020589369707743361858942249430959509628299312365510444479645395208910565919244225181429303373575322273431713641711116889856753285691421461365473525324374611445236264134089991421525051607351275391784992484731677461903977629156467320010166961515047464306844201099101484981443320034008791385471833652607234874167421174854867556888860813519952433224531244555854850895898493350415507325823723178994557844109685902802190820636868216252195438890392721631842566499262964469223480034073456479177445604295283783870757610579746907338592212261616711896339835114798228150213172667744052936636775819245279548021358202615564501495562659558773934867491188208061245295987084378175602053678238829533936556720388930992791489720741228391953993068343361019656821453793584068528545040545030492239138691329956332742313474300323164427892425692878020565035363459980017263064439417660237274404216851763249508095343977868042022193392972947751702538558011594185916620762875372994755040355597979230209995011093434671236128937669316260047842919632445275150031751453132615718075988816164194420157439467160222062278709740822592854943348557119587776615422485380968418893317915434247922967151264456972847317343501433340130229247239107165849128169667629597666740094212857384486983099890434336033394189098168231087318477085132070971227736827522940970661336794435396739817492535046301650720743910029819327604653110014683570350548552315465998735178878167902744971884316361249978034957680260415071064802219372987856554825645175683175810383087647158664706592775697125980819997784163402484082799489693178802203132507489198996329044989780039898294613689498446291919960286138392141795170322864796384363738315720919027487274630641886679709272069775973014699211649901086965740166881084399801171392059566222245101127874457223927084902485349624214161316512171084674046602844544682644868620565696685567796721552177502167926707387927668823281035986817953755802334115322152838112686309951657458652624643985086947840662884662028847319463633101864373724609573366405184669376198819366434720320300957104293923728680017026007137596091463103027615385603359042658997992447950961394063078819680910825019534980116294282903896121353115613581522601308684750374548536679907398695071213908952873139239558518362016987179220044878088043389323123945153069480913995067633483217527774880023792328286838504071597364484187762765547726315701845451500879338177815736685006803580487592411330104433018875652657638849367346381905294494248335928428253403893543765178137990707204116425402412181500352060371326474586769059332491354019185625122882430625162560502522920719565066251087452237882741815749758287234157859052123228781729473582016001458746397052095952993684434843635611248690572985081336427620903428479128152808311481644817865303823054087566154193636783369244358772282053382481490856433151762276650266374366427543826938296716486630788918309016902617900806499935669594424707012181867228351375944610402378275907419080417858683132736188020410599267997167909175183277698509173253282136837052671825741097555062279812177540533141357723497272262895593710752783424167553615292781670636900904112596564974014109431782113237675874515892218978448150575750615942670649398601160578687984940009478015524770537324395581839634072703838904356273407626008731471023576711944020379351793116917202374992165230668461148248517606776350969352409648464168000014432926580820375329716371776878950804052005526678396474436754062657841698638862468840405211285183982081198217582626008932862526028082903808349573553147602029086234471937552957380385478613468727419147960573963261621540223615349663958559391507803417935591828256349294962758839583176640481111929947844073692108054830335730077481029629790262022861714550893225025245706855355880318125134787199305536999939592113249804801393620256476355887043776831529801024503936799763230203621644590124581023818005762001706714669854747516487664007567602939685567693540783821694351838053615882302793488907729006380514076299919259053597876343015586499655408837690843414491417329131106834856861393801462476696051977409188132673789523817899477851213491594608196506752677387551255764431563585394626970276500909675191360869328489632881344884672293832431064830519788998959177873493805122699750568790908693245141114100666193170634202673050145613449411019670162408931384552531791570553343110323086721086400562321884825271809969610823237465418387322813738144414859174836418489619934544249622483067294685644897324714278538032923971144863986523975392112244558282445478653723553660627923773026862156771108897813569464129819188540177581026797843454664345028978305712716498177770970890667672235818860568769343771170579053017887782487495963704508573479886646218703709360727614770874846231057554638020816416541088538414940393951967819973491187517441218561597879687327396133467344605791671755253266340259020280391869415608683468264665228644737699895752898242262479445427334164385003221147737216210815720255136759695455482090028167986434202567558069220787250854678749823044883349022805000909549084279885328296176728522934178047984109382235508797981190785490006074029621619329682178404808517153190762620311534434797568280112176013764384877033498891456947174061135486578954155738691450330062484864789409717704789170108629568445491071250817046239490633763421971748679897368128990481393919378823519881923396444611782492867762365845905475233667624863238192702345661522528973503193818531937133264962479098278883001706400743702116120504395238959250937720584123405759311394524522374988350900604325920687269035627214217992314849062197657718124663022174506057739349271433167542876537422195658167245681109385589299958988080770167904342512172376397756535191363548958534252139679660299574494144007157613665127890154089622375344959472441138392066699670785133145578269268482392622764885859774817798231849783004741895477584261858993726455607873090696169658150590081044984802637494404088851877676698506508884692420509693322079092769347375920343567802384652960985404133282495816356298721915574763936147454934650534952996171906346830670842801150055043258292188616214600996208789796686736453161382103128933217787837259449652725965990272935754197272382619817845297378064902473010151090235888674800415282876024432199172328297120910321180209324644052586441351378777304502321304119809481213526745357180773116644770074081761773154771735226824089926047646869964961608875584060557962998862520340024612527893744390246972495589604928870357383586577385934160388543620619286646166273681447115875413610396205866769121825091306569498194914423016852660142595132632934315357324019146637295072477078783399113166157637791395400080847860368390858384310481155176924448644178124208505137596099287705671427927081185725113825273709898044066348853365962753815195330670167767521558390641949414275914417728368452824988862175996713611122503396434484240747366634527154462859562712086295809375426776211099426759280148926752236353407111460519702062005643686794811595508633313981662597160239140591027565371332564038227273411371886461232036904165759115506837987675502296144459759680132427772094145886003727471507760689121608916383161455630206725337882707823779084315479922321325603693936213543878227741876722458157088852920902332128719794708959653646013368255270270604138901523436797830301069193038654734387447400722703211053956617940954050708264301813169247451071979297094194963323367166782014399436587546929702667282022135373974725196255581427374813964404669116039528479995428446528665877929104655181514895944323498792475487555541730886699196665516941612768876040007016056575821491909068355957834519709331376422934543168575876438596977914759933854878846563898594667758409329967892879197940178637267202938742020181348896607995375763352140154193189106839746489275392215801633415481484864667810384791343399996620779454200496580325534507702791167530190219586927901324569033285172326168803543557393107310332681458019267947315064732626682165956376219795196879985377432443824398115028177716233322427780995732570205802537335189113020666139330233126603768893049803136140141834639279262068835529885781923107927803212503455911960423272250285200035149869183359591839031804866879810048136896527890976535149741781925688838314056622971044396608807194045109633122844524218472421667994105739824496757305683068061332096859595252871024215695953146422221663820059322689088123279998455446912723106691727220444682990864936397167991169778407337857808946280422387444948450865936352422178724817310669613656329308660893505869465745962383461398653082851140220579490297118444586201705940877345578573332958005515347555084960656095987460415222916133218305749053044117976682096711074352541378003621615131879792886240313690833934259671022611679339720749475087882706951753342421319425728085736500071886931696447052930883314825926059424157640657416619148761558299809464735797046695014211471804466090396353537276207033967689379042286989087673610714847768144283727070525905421973254612216668490280656208845248453059616046580457451475405489053883350674442848044330657184543842782453553639837872604423047015138715156922098143442244566347141402744193692578598785237042140933417402974553196631289277753334590178629681346903427005142824703673101875022020896207249700787671294682417260280531919178767252892131637874670175098505951994468364728747958639411548801662772062257859070184020298088024709537437471551584185208238047799603286534339582767820316496344042268910113206464625848830247655286597557930895003517557708975966626469385060813245909384010209008866376397414378192637802391433500272932405803553268282214617967937123245913966868101305121590758745105172710030067282545007388356017424603108772566687849355320768227248778263332683364483077794322332333080405645702717364350909177229143971192132197652922102764944395620538056502686294703020508168561586661840880562549689820351921739228984090842641508341476310755581398063765091107363678667894690537910145894909510269649843056470315967031339337359594560993506047885750619042117896493768878379154492813354479928179381329154293626592216183938157251987526105669984498668978640581832645249547635999165436793498582058546293037406316737274579035181806604057413832569446301175304244665656951293751639116041104207019795822093687899489713008653649912325011730630534215717780162646915476180282463797806729275643047436258960373688098887191886032403888733085520849708528207120886914750633938310745198194509514997871565544753587749808377116807990362181027416479836122681335539302479329396431705534374175581270782064677452553892075263978488153781864427986200859462156878745076464674565821333637536704007242501323920838577615290943277665863771238441175908605551899981857386208652408237664759933814714165633024334809555498515111091889174633060344884736797566098526752303052749569869385154207911047025944914368034722513466801971406162194950011003161792170540472029056511516929239004131425377878169288582793437826420872943914456851682881587572782051508417749460707239460091657321769552602891636453917087333430514749923799979947737239402794977023650618553189284805205533119864535244796160803925452757974784263042665577513499974594949405281154048382739565172397038472402297033487902353477237196068299626556000120523726097577133080358945791582167604154918177499586479324505907355941580086435261517584949258748863159216323967807227732382002388778301665987444509850396116613445001277623054366157316972258630045395903438509767478903553603924336027198431714251436344525198960010780628023476215211197509264890254387323972413263732746126024303673301210558604166511169091460199237228398998067112336056273670501393713035318026322106368183137833390950435090195315404784699403057999885419023691450483450381644121481284094144751801488557438992515946525428622465540919889534878969888371803936178433264494058862133286371174364346057377948855197199164179333322619113103697194727556995800116494615022208348308818747012900501413774551834556208701046587004241280442749697903942386699933406860272028132631949380135457966372583473430242624070408903498449028391252032004434507159634386140988265116052380573106195648141273615788547761850813116655658621178626581880048691115446685013171799776021619465198623622293643385287676403355575651864574879143035633347519625682554090685756481646203257175678377415078525086507991291257597293020154353234395547824492684287993045506149871489819009690014638995206261030588427579291116875109797070490156658680205557436846780212918622354575063856559822834894818860295443012165944658864986335028103036852204146259123035442417737421408233609075724402757155566021105490199062682289141930743114937447023876258336239025872634976402762990722379068275483338954842445618076842505951077196428057377875334131235973277626566688616274160649713200265851572605418422367508329294501114456181241043983926467325281045038466009353490099482381725382340867926763168887666653233217435155122437259468651344217737323069220064758980863096405707710359854551564094839859888255730291053648361475238557288814330650492839062527552289627324509695507111638516272837414794455618498659787022657577307382064256247429536025824533453777639921423039605422425606317469142842416329550553322351189975074732656421943481031275717171240125536441692769277259307678410063857285201509033534972608189251303558877497998139901546941623167189324831166946848123577284424156309028368096386534271597821134304981915191761275307291617989340791616511631845002274006762563979156254235429390535112466227096194633294178392025222206826231870995770113654851320930594056700602665532240417835024821249262845072990728680686767892091614614334794991947804925142936612749252429999189892442306300434353354787027531487044720800250518283779802071828833395472880727302859437122699099207460278158983586275240533207685268379447848647369420347809082315185896956894715649236330854267595274096356020207083798378646099832387984392076429589325670294322298495857713029926333244668170953984156573894708473227938882474660922644664387867175129968191819767911289632773627067300003182514370088708785532153689087488116498211795658758645291240091674455568255679075792423903439368474973196860557148463318410298459037723290616628523779272531523937025793994856302136044334235890447104718724251694305031318637326850579287870477040847200587921802623064516308820018781319289815889593934253192434465638969806878364427056555820112859501774794880948373293229793351575854614671332891484980255077132052694322919309941970198890452388337585749739662359555468776731277191272008622908671711853024357026899709409061840965945555654817392929960040305151641310982521414356753737449569399844004054880519811436213225323229681159068152645588594440537362251940983460120088954418766122953292222103642470989092531964286483561763169920629837109764593050436781126390350643741322864556624131907603628650583037386248334403811216898871027516075728360986327528964470003731187816366147754536155830724798099240011453761109818035326042655125142198774203906245074632819448443202374485221598421006779371259876848809888477627296527372186918486058651990879143768522303581406767711379206336762100265725203898216570940649058577770411266114804405742242384216999459767316672887112646123686443952991633465113319347672592359273786966157045291041138056543675205133844593224931757792596561121682132162837078274811754782194120681290063603429329418505223874341776604447440296411726546614807521353905010930527988785565214626882495633126244238275397018656554195386417565048395692714898601872979791449451905105268509387392512861454491413072991092752044458402787342346674080801665803308928680859449854583716944410481176398938016375101680882385136410773612202684187396567054483187155762125593556374128155800607806817239643820391887650531923818529504792917852339592060274922428034468754148679613362187835211677809808260299527915841678653423862519453380651807264664143290890856628725493339272889712599511314737133023292932907349955674105955367398792103621881017956300726197818167041055493918159039932506316924926784878939316649711541945646245227293451282876594652944416545589213965434864789072683723866937650552829934197580991540481384048214485965929051656511612734912942990613455060502044968997812389041770379768290016365018350579510085276652535369406540135137953729099683824561889946966085907662630195418358437834304566960751887970704713162422227057416838191016093849154531258393060288983900644994128548349831340267491821159181589023174433554550854093201086849726006003979806014600511394883778953949331387633405585297898674631464470119516921427226471032481185785201775953165795021936027125330817858624307512960740879424218797473033961313656649021913450352395177058213226960395331670087338820241557306147779006821327498195430255307778303471227649229755453518352966037926746801704926530068229754639084118888749980702749943466951358354166279522132527657623984021032227474081110618618976521584354068400712975005026741892218675874096892681861997711649207363619916319183232520167453815590256329628367539681136699524642109855607465267100935568644017502095611520681440403038443296750745412663046170099979445593013330591410457423861344637949752841213394701715854804718647332033351552501246794632012877599558437049056528311493856585337243461328669543923948821855019005692280718911929788965431661523897347596575577564389678022368525462773374242829349817364933761900742827934492016930291023363638012656999686904852423139568090855243897833258310649566274601979074972322140157990839116558455027889223930400446569025228570820312863189224143626604502294201184134366450290827626489636136811416518906425383000343028823398121516204097437583136041818047641825685289397317443168821745155450253302538881203663469245398886904141592403810827476601671018296898103157820295761959638776493628583489225342700425138974687142689894350371928271828796272254207219960096549615355580251755299634271969444807464613046996615727893327549534178008612408792457382935437573942063362105288068322211430237287193773016713853690993617336207226733103894694047670877041844769822976471632999806963614579341465349373524467971098423756612121255797319392686755595949320623795731306546306582810271519662018286748235136505536946110115250699674597245987703960592271184172194945589426000571938659751013775300358416677666518128647276764025610698712195327937285842560055922656205375032810006338567895766976813147114436896650542896803249201262493980354510108706178235253664199459593820391982211297275385393264127158312787905124215075796426561865064549065009004725481093191760082433725961693063923328573818969135402406225774453598195561538463146631466651665582614621411713391540257785229664850288719914053013146510172636581774159052122189424879220372842709794974094816716631994282114514878401105914147523999708376389963537441751322135026152234586126521064299667412383233174329796414761600951714301192111435607383565105155345243767443386908806717522740272722970181126280264267121809243213224532513428757258318297881561041085803295756964049625046703474454056184935110117433675018152801434102617290038538037408736722946177987078561216140973407599279862307292604731391618564362882497481026544760608634432898545471465529328117798889815002364724850206164318425904798204106025786084447995775040212740555573029176100009769456820583619702214937397783039995507940373724418095787599942725968413529964203408103990860088037130942388566127298586297811798857573439616723509360842213827116756683637895232682127725195006329150579824710966529167897921699079145985963778191037211039371620481595564908986419609673393276958514186649602464474969627578107769151491437444921942720151610839764483364412023155929883807511917623616835828798129283070552646529811249277251561108953002572469253114139484170719512056530471709132297839475712558124368803604858119652013810293974978877155328152948061962879117268990010457044536893217014141138284893644655961663519116102592142744049355329222123235109989250961194674590148428804953149750374722800742194597556767446799954662787902233273806011867014762454981974143025732059850393779320237553986435863226870000974797186049684124861781909322895367805264929263728732860799449757451971494613574853308596215136186194080847511169775361324803726133694995901093122479312187400696366823223399980797843985852377496848768134521994895636854388531694266355693868504301271602146625786687141437096504995619946295119248619600986915621567434504346323757439518644824000692895811165653750682368754497530549096626981869675798311152551992362846557302568707175873559080244793970640134332957102555281309310295945732174356212227811946090757578030482277745370926098531018412408759299402502317276888469375550403768666674891343062258786307709254166451768257390257847016188792287385912688324580054511775904501912945292203868227762605891086397513463607780320064926091440901980483889240534108896158813293799834045325087941474917338556740124721084348793625023819400105820408237808281728863521507530019380310414087609710323661605144062762626830422620312900537946764422247643040753629900763826275401633672268382200403615982105194482299392639016557247349671540447622248630324028438392343404657557557169593567370414553567858454502261448125597063258199335280464618088778348419575771253290639250480001566850664605684006154041781122197072430441120143368625789013355391082753983088445989844264744896691805929836456027580264667155793331242450464372836161105538112279319189165643880286830540924624380470352663384994772663873734952161903740384937264462695617150821108424574597566014075779695085896802712005276977669762473251201502400075330371953437750902674349103025734213438728975361715086170352655852698471099841295041220414564542060939195149332440126675547119214391148392897752213332470463254645108313044357120935186162216996776243599711854508658505765710030873438678282477998848967205785355554990710752972322358510800177665082818689714489656424346767710842127754353483638854221135511373161509982557863258282105215354155062739072978408791155460942612933044719570844021436425519131178549000420392067189946321734128662127089441794627980522278273114693144882573041137448550226981493319189004032477168621989932109022450291292859366557264915323211847681118994356264131760957510251968383325808511480844347779795181507633513895352516341573945737766671051956994693875829185264025537541118715092581293145157980694991402566975569097835929433871474041057945830004891466572046132462395298235299313184869442896262457794620275505888766288233379351387331670133931208867522854503101164082230203158376136842374097771986392044627114858339047699445684055565482790666149091828632724088104698971325426545344034676321535173863406303734308942101983371150933784169833543486017160394175477718371026809526420885444616056916565752756640991112482786883262284846108966566600850907506212623290105222845603758957938140545145232296199197419998271671547652876910974870708936898791373422922486288006218363588103739621401721615958558549651122665256538907497271827325216120818348468373233286264521391153721042438078607188423139391751133907794661120443512718769284086912902661310310840618902980092430063601336683236073140078769079204882369580861925949405003030422751543827312250012198400448586808821786367867996627074006049463637422241334197047914745510134118530165492074741117901461219727594936248729688307979058444330435635402003513405590885063376081793286791134499330046069494534404424606271597636875117035403344907045139283649449721677195805695940771012095150055584659179549222829558213574605689548304444521142187612169608887783424343703730017799604019286992775665671320462810547519378471593166055769784399948899237609233370308359423631772017840879264910590557381332176818519925061753293371332850197470603142525097498713706644940942109198638851963386760765638119434264138285379202295566211849310679180863450877164437621552202347599633000169236449081540190616982780170004913841214962168860574985992640843934214411107406100416681633845949742883498388870181871474525115799535474833701908093562347795793717685337558188119492957677658484230409533627244127264359176674820123833398927203273218892041083802576557246417304572355361458924401156534095668266496160225203482503203527936503591984844767523487334619174945644561982954026711245252026545814925389868737920005337607427980787748764109682213702605893991414780905078791008680114819230828407689904809742248967649626343102064861657339769698975846006336729494068340619599123792088474541515668333215015949984197782712506692748571446862825653095862655948133474790209081953721221559304713251034240825969980393786308183903781297284113923362905988298440088708884864310037814919590205283264067886735060810250474516153008154841754268480499100427981059692304691831740702421090552644246722347933620552200550250015235038920376031016471715662531143345389391436421093737074215295438294768295892447968578534789302894131505594096143323958223484107806955779655381885122775228471324495830194592234742792477150990536650303636018159851044699725594379249449487837003454414780973339229713599529017042020991694962038357423749003838447036037754321479585790551825242323680143693778576511314178706030954959037370359248300883994417144086334218677681739817671221386720892895482883653974553092635432278090982490168504521727099879419911412232024070235109230477376868625709040608516232423694770657180902408535484097104006362804744531872248513628174488946154217044619580234686019145470231089722629068165604962260752322314435417246984103370140478406993306187483755313098450668706415166921330243653569633450054091744573691125381936350648333393539368528042253856728139435773533618047149548824298124002927542726348226949068028767198874952817811581497574247847408616274758972432960384827132505385199757844339680700312138039557472823204477423633150060823650782028753267940973548081615796091901356127206403370537976252908270492972682741028690440077738648942570775198211364383607877160380298713428038458913847126585052227497112235336192813952964858649505796105260989678480161229821031089668246327156956973299269437423705093674328491689907904193486064569436288135109565929982180622324548438817773322341526993911971899905936075766232787615380031618680028007494530523610350957314542879787724767444747867208729010265174328231300705358101809202537042343784336162488813653942314322813718926153675969104864587167641302957259538408415256293388855555953429552630688233952766880691144415749874135390993013652126989963323240619200168700516097717302473942300006525833522853613732780682535467919647685008971140251703695798163406656199827879943991543855266128806150149516921822893417062623367224021705836086651589247337859276262298247941803285167395243323828774769831622351069912430448607033913453322806383605750138201353198685022696708602650005201663869936986105227279285650187760545498342536881304039678228819413807452919467031153096186700973090168999751740184575671952422824463966912865156366440273868396493109725476097707159058828728021912756029370173069319505541909289054712184958086815416393484096389741538603251932999390532803851284039145854785907953115205438503239788989058595886134209977975499169158249539220118132778367375671060292010470662632517316814384201101428000924024954804598832291466693709059705190337441835143756324660646149356662656574559004438305771528922442718521646124031442174772238447740165813104328866643409312868604152910605798972047366486513000479803432583988980313981910684052664791712543001124021251869406196446901974304474143234244720155956052401267754730968341923979030335547335106102855544278768141762603043401357658628242288225114710114057100676407240271632896114150215775424756460659352167138828151916430595332985437197036845571697004516900594192896632555010091020275826030536320802425008619561125397780149984643391369837137888638351286916573858242468680366403248136755719442596630519691497000654901495776927677020237609081161010150608311733160328039919862539312055954242036488147304690946848763528359665793501768219385531702288092015143334624495683980054513512101929460928626026486252306019248374834528057952606092330378470896605846097917698169427979039190519432150303818791964137750231464160363033829416036154585744343790988099005184290047622283083310409051236844327820548354493745974402057155620733691058619392394940944077510003977775582645146884928711789080946618055324876962840863548329471429083848740241588469289435886230891870751637060652294836694566035749608075465830786391255771771148243766851593482458509848066859269762686732354506561573761752906296583897693049959938495253013347955226354277640801829109079256412166112152909066416918686641445102914112013602579240576414104424445756784604604315941915987382060314255151408057232255535928182231590564399881069060906561045478730772204143133908265282921872313520964323207004268072029970714643266226454950767437428633329711270108693977127067128203171239912437743400020912682521923243543269808892476131172149353044604073678649873777804503569435399658983106738171710055141804908235859093496744697101948358654450479135720287248109633331216137832472420577619454625018638344303096691248446656782456356013428696423013553611032293240972368003918324175663842662149781146044167110260264011472835183552471792901739319276534322240829583546825755322999320654128367851253185807617939608820000098979379789875328857377299430807959781639971503848581626166175361665343743828971735360865204132195405641779557689529763839013894682029204291324754793794593595168960598380630212391699780746031644437983691109939390578241924579736694905739170733456990414977138703716567338018231869577851554199994131852099813187718254185256034426375017865588925489404333772013304541696944399888629943562882807130085313183764866346709849019730798493248162872321592141358347596583329350682759314460652499263246479586581804842850734508709720188698349584594925307292487118764854407901535690937230735571009295023876240689411185001181830542686733122635801327821894144120435362703758951954025250287664120636721909590128271624965322514433651325528471082069862631068352805111232974420594031826620900547267325876371412746393643088062491536989803827667368112395402858718665352310231803558941598859477353081260334503636443099983771487556674922927169826314944819521868677061189165401676338772621574111423133719011402115233431233551383325910360053854843319305527910617008425334315902244733558877774196197805303708858891494943152952929186972763813822853942881017282860840669455934629194095911881865775704022614888878926132924232674774822178036413579487811605662680473906293960908189940711086555152113858770203218604948427613352668352485078700044775697107182145762541877829086544459361627658082270929887441848919623475636657505315093900149115887785085808477855997338164430633342936235231854646951863726718438015606597045901594559772334441747778425654633837819301708659106520906710284273632845443683809400891069869131948531299954849018501809040180685215046428064885454440650698111439074142563666699543639013529881890618296839149031905188911355818132635107370486077392322845542040493745468635351314984858366493977625800493945811319869653167587558389439687638843820692539972797663345234397784749452757659171326149613993547276574596724082055842498511857341696860428168285641925875960619456026767809736670513502144353079686513775346691757741485922275782830484465273400617055828638952697703487846296865599676243635225174552215564314333550000559809646508555914015330717253922742395991811797571745733869158831566602339370798816956832606614658217864982876958932555324639682715743803144477240031428160299451159967754575746604089994985636083226931562002894881452843082722531028128076856456913627510580291009575837966827136709116525377423209527496074785386671046532378929588093099154386516072137811340531488552820271500035543264469051627696038967102118222352805612625121190155264251976766154653603113227264325251566380227580080102759611121947305119314983207962361701531110404086532572532579251716202229366286451077531421444683693581957607874369830381523417589797392607178624874206380190332169725400738146044587124095044307599823849232766648992631345107851849649116195710999792424247884722077264812368654451936747995596958160802666366824240892251300777119128001128817729552295769797951312592089519242600466035317368834432917030708474650435297729978870762536217298833338755058121814391597703615408307381082206576649383662941677881141172664275922003485256315399434355821261700634733760546073894289313031023420125743935672016498693216275158479026379735463815380262733549223157465381471541459335963092050234356779441737765595028888411586844729449750267488110722466238054363885493447948344955553971998113383197376995209104202775902795947556186415103579456565984280296321814389810279951460919795469905135806416633082356219794263022550781670341174692922128321698457509673781554456347464476267849576655855488568516215941492326562474348932784401252807963825871117417340834502369677699447239742170410619912671751704945001671581278310422002032551381598043714586752606807385910398510976658080175767978563621581516536729912067805791358632797260605927434551277273250777738043434476756702737197898817635951974380734329954817746336859625218910260478268519971035898059988041319351873800202382666472556618076894598184046130516048643012575023210647306536007174891407497252117010262921977800462918130370447471883260910598955965719254493754816325871297345578875386923248439478198498418131972371036962913998034012183039023377279477234548015682313541654132318270041808393043336015083584539097602935563974592386829255048552125465802164187696684487772739377794083673867219264905379897616208166423953135625124627293050720098732149043689461349616139431695693646576323561971605516535105369432755239577673397706769552680976626738865651463657849040029405474331478736050718940595262276620813385797692018645207830092288579249626704399866865005480474870386523775251528658231515468354879936549776444846245477871048421510345807528129446801945146771507559404237143199983155311600266273986161515689412201925400889893698576180608310720165848130271274777400626264179669271381271116960363441927171597920119658592082936674405431809780731282068293085873108382854791498244744621392947193077602980422894890406708812706613655524460878417704093850105645786142747437024191671863681301475969152114439561284877644437454906520826441506310475600018301076621927949483576819133744922130502823418772175696258980148210986248336403431054086244058586584064062036394489542444539175049464285790866172099794977134562929873752444739003666128332298607306670118253085050611474698216967199482356422480788351853933602578670281047457875631609993632642971248583865599758052777234099682419687964106066391890696719142035952845323065715321887451370637015551669286231571170305338548121811500203039590422111935902916540954593912786838725544711889279645375502152459482904499364515011303922379721570297459750791935798073987088808979368671892982063542063450076068672543333289443822913727359254223005692277335931997326717630723102427090149286092055853258387483915956824200429778183617123550185612114621263001546372577981213476274041439377159390377989790345743553298526972016579562242065454772905363313047767233542965024315917189793713956711425259668978933134807865845568163127694240283844028130986565990318780162747392604884970647383513196810802153841601889517811649081334159333681152143018750664864147825858765375132510122610788609865839195741838348308877650205877486444115947033106606660696466294823933526718156837481679919611486420010279824597896388888677568838344898225767954364493229784458215933711892666032195440184448327739207978862710939233592135229019398169177530670122203463958688131465787707457241064288487385930786401921031496585841551755512723772297542259502361711497236107340529107241884312039632414746133730257602874613687265627464926606692844555291184754972765380070834298564788383004291299611038285641755382966120683530952458261779573801645931254933798355355280328486544268536583804769658551447903462422113625697290114768648098716161755980720333071915836369383771132513054850027285258109509749667846152730024067592089938799007567250253166329759736468128110171055768195822161038940772140137943697218131018894859191831254804266828881842362783409114599781886920651386061984626153683563095378083359162259700170185894793264143315034699330948346709273145440810232400434510751153522216250386076126747304623270948344245034711936431264971286789187243975609358020387832053063332636740121873817841677004914936628704048482940794986812087908681773020899491339997346944507876933381605233073945799751821660935682335129177618553917385769908413456646557790594909602836653501309912398569421505482311786839945498129618977293873748165042078537599468631485078089140697793147199635444453660125226756917144510777291770655839698645749337829649072146355180325553974314529182676291082724844872482526433480485849035610535174826859402906031202305894998902552639037539210107100678328928658532472834807897988572862457607960758695253304594366409600041597518259834013006276704656619327770099748423643295128555409820068822267633779319583978816195296084511384051460214273824625338633202024571030629767928426188701085517720987718560669369185670183506320573747765204431529438196999730812967008433622839952207746868279834022204345492502858748223078223919676224733702738276590640573499769982439648999983186054023108447695966420413082417156168023747691488862898941025725008469229024900160199124629863497417098739681807102999768167096984684451462004432778835147381555621778831856243124665477794324107678612242710032493328978177030541663480048617573235929885357146654582369979589357731513550913469135672850066822430979239864591358902850651074703652964505403960506935207625426803701475536249289304358504513729573622417862265040931031939189676846979519793962756858696916755875671428834408402255389475145143252247868358641795015081212635815963696377152867252887392959469940284571372639996532859426510608530489944550264893954495571737726692335375005318741470346925349917810973191725573514977371443480278313142581301187997046860278849146447328383322377201233689588265611201864306553148383519039268926848084624012767931869695808121770335905363969523627828372613938563835676974167461559295534431057617619606933732654962086003768411831721326846850804643085318380266269846147653773500749338041526705622405901120915032225252535003248794338079219495509577422893424614872012047033255401195792072248393947550593926350950670192747666908410375108738038934206432625425894840546144262024392021920851895812681509870455481533318330687452038011530287123142026139763732860249764403602047332985866407573694037495655225618811277403328696344084372646482387495725013869461414606907324310272247008948920277616842671335204752652605308828106007806838310739214965909402129775646824676053461287166089108664898122258083174441598985724431031338752601820137681204749894389714033776255211330618569724661802899102274744521370972751672770801241485767914319058487643524240507744252277792214842096853705857540530724891807541484184458543375133212029183012680304585378649715993101953596144445186573883261968032123520682700157237786136568051568739951161729438412164218045275770334107073684438922748405632528367509893655350272727872395852177661644246051404164899629175934563590991391375092515060991156132370175266280679331005752402364111997436485784627108595861571522582476023657091384551947688677090329610410733789379043070104044047610877027842276696333282053346222142315732226834787901673621995594842733539268714793191803915626204217665371799457959960212725390059632706549228110009800192762131523680429391354896106457717281110979795370721214204664304104216341640908930064234377684975066897289277740456360795595493418509113825879276779469521378719582926364430029153398443823154870412220825092818018902215536122833118398312493498383421931326564634120518159899548893120704153081914424250014107977088581272693576887036673573776049271745934219556610523948739139921156598598564379952361838267356720768203426684480275098971354310530707750717406197374595376294606614691083924505769658747241345194432545938355706601981500394846315540327898966160599383520911187934880541216654449572956304136224290546162594609848727978396251873218316649847105022259488623078585043578078162560908244815311735091523211784390970622487076240244343133253488902874335831705810195626979796773272673480656383785814942600188120889344099475110112285101932820765353213287162130848722600637903360094671336597071078992125040300583303647677595462732599189368184646226226854640290251429551323326353540552879901934565391582329990613260259995917921760605098706924364587255107156237508709587893205823305428806628995077258924622941496899041489628446337687591503753918254961091450885931509545151775260983427526275005715400710137661719977772248132171566587173897889195272401252965950709647855258060437618176182558188164071324500670328678688707602763843905195143427085520437946576331566514466513254805853881369069940086807788055895424307894354785005395475630868710788024348550809322374066130343681744069298963089827806687915576592727714527815680827412117135315622970436328158377542704468478267486349874263775162568586520290164168365171647543513884100098671348805839564638561741309395722053386420734917768489711708040675088810098489168700574225358821093854862056926587425105952713044378431026343955760474755044621626098781475976312214723131148870016956548836274649252026483350751010183257979495391421974608629207150867597872713154639384504595222743855519059812185108125847268768496930263954888560187902681150047652563960323343359315224942841769859524610515950335586681542140569781769027539924826500898110552118994799250367181051393654361490971921262124356798163962226099892664536755376759560906817382051006356159483049495909012424629091521948074656992738334627705453869391479196697565848177074986901094503043937161515460135017570049249048470018575205515357392488186740475490712123005630616150007230495420755623636329722203518955475389215600603361627985744702275844687245145022767795045917915311551735833495160089407330814651113129741217652192994558470282694224019409083344346087295234314381301810790505735412207609194985085282010696766522533980148628163459273579717101274381392008988877189496307768540724934915626048644640074130900136999182295946389524266932889373618618423891354069755018753009735973497122811717662241911008866211520866425958897625684262580660598963085718678821303585389020578644327784965847532945601696886424091543994686750642838633737974785913241088391466104440336884803341559503975425940341597254961614605902369914477087428810496737697360410309640489029814553267929770570990385341217181127923701757906966266413926237013278432868447282613371887710906818111152584115299270332366050885114739486144640806320251976535344825477169151856430680698817954959042628869948288785031884545138495988955166645838569687361246384830475909728425075633293009644082840419341141648206431100099963111583813504995519076548702995909868299800095999613037258058934296381331906169737609417126117010264269206866007778015030923688454043898738735536020852784423157622513385790468852097244682725877135975893142100914214356387209902302887750653674253183494222984696944660060688208547281425953439510835971079403743919454019750506204638798665411995771248232455686625470753047642697570169725008501706105198651706838484015044532612855655845551888339010538390298467150183498807569627812304642072206991039792605619092559434098607144346842347092105091845188158325570812703191981620911469836652437590756402736810161657511011666151736971738439848382169132246817721545005206636461960973904891457184362463995869032065770961668251168759212976048199760863017965146248190260653032348081865154136292528636873506039569919244522863777830197317665476903609810685681490753645629695013694170065849861447742447542647534524174831638621376780001795449886054755230791254323157219093838182110038405552449778567913121075184502329050677699837840247350932126457266719099087197921109453428860165577676461997272797916702231453720651361094733240043976188210144609350982268132412943496132967330668781810737288494923802186486867591267336865149885580438001596722230459349995158625140096974740654809503084934768029905799948227057739278681179935658293487249389882962087531011567903186934967391818460053644052042035514642857069310735740415911542758997281809329373351069013378256540241395273113585591744618472943309758975131666623462177607650477527248633877032643596302320393506736892969360197202646554941536265394497303516320157785622587142322691189489436362863278465143122603875426594178868268058649907292868596499829834061100202441117080247086019469571618220463896617863152375949969699316883119904136386421105820691830867259630609302552839107946123546043069665473257909526828715299744060776322932733969376563289047265544386875486940416178206030237694299652988704388053518176812087684783975691766948267130261857258713745862147668918504185487297751603138023391703030180210913741582894978348705641373411348920422134040520638399417944812374404859612235868788829554782395693846235696614324575229180587310183518561000540140189078991430472978141482434078606247216961027313720671641074717182771216028724902621052851596277686873973898574742230710236544476815329475167820317173026899820525017308049833110231582702903238214263504423287917839906021170763540310393920354405872369519644238157880626105170627202878826625491377177448081474678590988067952640632317257254960943081430520400822709469444404286064372259972087574526331855370083462235510322687871646924264092960988085485728714787681400232113701626066776404872987211876900881556702729402014310903517831680415519185234630826156415068356140111283655987345327901680462965337174421600528950052277103164890802094359012061244367655518983252154922097844624248658594056031541159996517829452324812622236853817705453189426626181226258290055083302037554827415881698297881336686044396386260248902467175635782903868892142157189224438077817019421190668168627495786703742126446279374985242935680610536792670094312767152812589106948942879792391890441435395136331413793390519901655434023960817000997446076000107891064160898810648614100067315784252332469788312183358238954484304132079840235068290517940692555649143967206928368049600681341800260665088057881160267690517723237386077373094402269291750351882909959674184024619955656096553472093136532426080634301307981673591595515839352363924618118947335498544404742571954496758142631326809273573066423241207368295444817672292793341487709290429624652392007900913493817546397734052633559033246778999843153431310694194697337570248086135070609074079041804173235162474537304907180690048221104194074767619995628544830335577023548302036851433804116920332888174829732592049259334198189262919861919392491101262093356763612086711336713014391396183907895202225399199986522380530943197396311942343457395086668788974816242004222155790057011546932165469545802278996019928250104894293107867486042029058306899638951335190521453122072829941365260024919487260133725658686658950654486931622595147590098238268757588058184584519529884429752419257672832448174586131274177497196221378262527785560592511089581136533241622482542554786696030580851724371151409714574463789849170754065478992083509069746941847281447493020359387832438976800290620489305578512778805681825040468343498816527443855612741000641377505422860047164967070208281025410819573707012918855419781092366788627622687717329967821247443265415947004657867901428817659717783755116274847910434941369804149240323401822538056922050511269917620649669484266185017563746740696935005492600259847386847466573503010442631306233250574041604576543560377322361311148066720693768372611733955892731630323024900332390266606305401289666404679286451142764340619449270316604971876736532359085241060913309716392606603382112970424592384706114743790822666013148525166966603785927808803849294000626869787548742867242806905054148238001327573031028891780370788414401538298042263440633768279007101027129915883234265207736508045205115516822110165466743078706922453212244373569664058680238630049959282168472684739316518131026289159948842279918968660435962643429638553816167504810142524847001798383379814255206329617401867869296605664864751190098195129147888637193613898031223802770085061927543492261223255684993681769504370664274024518622826569964551585912126995109587878687662248635306540967755310774512569200538875866464594268974209866524990185528396356033497288612995043623777291006623632776258906792364585791556356432371756254122440835578483698904614728301158324255186192306561610616278055569002813212479089854354146067680776368558579866813819553325451713218513479561647865976189608001233504458612426014693792431058269231966035295327800709955438353793391821140231209959227236647790874375113968760830835025935694563408889379328038201187757480433913285377513239087893522236881740742880311961881219640436697603582910054375349600583041478379615009369550660112366983040689709928846954020978933050890712020338728015756370954697563807190137804797569009071657644391488792605414125334440599319521728036047531559355892213006521493388515118055797757739389242021981715577145546487700914220176773686973027253791291462573530428095640959439271054040313389243310253105670080804752967008529701812100701056502551159397423178201248255307407615135231115818198061225878614097219253263922912162773966057009043526197898526918096035894490869258038999562303892114578085572997792739765504810414531909620980742057162503584355340435484193463457455006105494215123217046829459037648466495775702232412126833594747304346996344562132834132189405476918269053965712914729186734768908089612690863858530841102907163947112673871338217799375844905152243451729984602914303194058261618929110949063775367188801824843460588849791359773437585991108705759837387982123469052498031204105371997488184750006374461406782228336731167807958947691885895174491550957032439680033992378150809373770406463428531117794574687789773971082689553256275000675200777166808237803604346302811169610556691314327731816665933592897361403014174368396635063877681957002173605823332175349831305445397407847001107553458545816287760510014412878473139683583257227303721446153493505644225263821073867203254776424812151686801381930235926727281623188593577084268014192643085339220760109547365810836622759559743602536095904704491638824932099707114054169374037966483987279224189790270874492959410186545648858416686184486641289124606488379145715227963366477525036212179890634350849930945017428123621872898875363492820660547164081919945330518158493837842546146845896465079872251553493620037748454094631699266686396853488133448407468608186237614673744796063674956291104257939665162760393033907776404664066056603927930378085651183052180739926109765506555430389211760788953677817220416186655200891594710927047206975220346365043527472145658851076010018389186585879930033485317154208198357937450911327146902113278734323538411911003962138676620572617909054343830543649221383482022106753673164936078409635048971915575499229834867983276871157143803997087958128326526887952167015136007551982784312632025682612832560512038853366011781200019260184175983901916291526355306546788087130691124798932000041936606637299189433265657779821130140975182474465791616709400075570413123521734722739486101528699105728850448161307827925687643668546140807101758890920588192899832658341112091150240651130646572506537163688406813082674015478075318228969976335306392531873271841514994780813270909437025201753526464794754028034628568467639103925828730476310723503140224773151018827277088066437138042189037021509999741777514478057337525655555881105448152712845215450594380562082952299148536795133168383807282871527475896914941509333554693497828535931564817722773809209037137598024937798531686918663883858805643171361444584909061332150232438280584682858837109673432169730668521344093092652654337732955187515031446172209673930792222520754097506262063873134306607182570019204694479052549413377004618186772915880032192656927157396775780124737129673142827564322757171958040475215107297033216732116975086371375611883836555998460589178602317005306267400394680301166703594846385579009430045798658467334212221974788092218585000949145905358154866550774851804660173488232045711804083536133381253574656328564736542405318386899391883452109065456524541076939522192867339924081857614563544518234215443021526126001740862384080981398533919558547208858006063105635596590863812306890462406607936102526562021270019964482953625409082959161813121652724682781284558103666293232676526276229488004872641317803760496916419127850418228994420637811556871605658228232608483993796692240595323503483572884040049640246996365198448799407241989580006809384402574064210823866845712458156289487820858041848520217949296448703508417495958050629402973160453754055553709986690525079464863383605075244812326008789399713682687935104900645791402520486959324122862969838966414541271400009423055310673410532596295863537481953293479649839372329285038415970727392988531424354056502661418111249528558045558649381961253464810787214227100146442741936533808595154261778836675008641028505205200985276141030090394032846149953855881174845854433787078595479138523372604751828674193149850523132510158827704375919123224254074420057632805646117778431400032979901991827474092243881917289152839271803430817751669530634547347931304209934026738491327440998902540132768382175478017216393516417406028699961115767306537794019147683203298498422182219668635908927579010410794704408989065760343903257640894504627075866091573509513236715003311298288145121101084889162256927800650600209350879645532860843698402284798172130436694407184422077470022292571922512895943946483392859995279343205734076294978718589477696588689029774263164731730335420130370190000837839272107265497480343534513948843204643937170795133443863622254301077794411409417765499604702839707525251169650854699836956846374831332509830998357179654854403867616998954738302496842746444298835545340237229116978392320877061314000593455673487872013355329223083472942370573822239523722228097386672841366264276295409928391017226484745880554987561692613721345508374860826003280885482547423561507284546623780326941908537005902667364125887268774157101272323715423915601548925598299928575044689517430450825243228261739678550655917113383282422860585160301368166461391047326715199507874059676853788061221328682501357734612825335074466133281179144000403020253425226301629344725563509725443809456738622663818897169549884953307744215248099781599629721761129614800502566436605051823953051017051676746602948812700639166460396075671382194225407855112941383038196307948320384824764743144550426434132719793493393771924934876442348008757375373014904897792462385202085612815209351710622332879077899755018543156742206439104453344031923267621844903587668365023699375403083427757354535715957440776384958946838362862597329634527276181489142785812267560730258696972481094620432744891831441670193426537030526052148838170884906663351731938720938178094819234704119194583827801430121090841238186124320321200043575425713108828779755574695961256589569251786814377664579460295105002322355406591640502598298601250221936275919465945321609090423054185089200488126251135651308008908402787220537302018123168446787112108371697753413766479999102772960272641447978352032336657125511178603384835048170357555569573901300653020217947703297082972594278790895406495146592094793177234726407655318614253869335709298451344398572659425844221124262021461061886274951866292686620385612218328716388768968559434015989048137205000857352887895252587906882469265529815894210552181854255804022369910565817947791904210950587899620749728595125584321815615832305460307001156859620021458909203210502259881206913848589899509045554874993434474575156486748378873915396405529301418846939265652331383794163629999179768022115239912611067468789530459521897969171913028859638003409490025158717472321326584720607358380242112689629832667096559996629553823137668977794150903757462500769262592910625371349658033617883454266438899343992593673074281570823120530019756528502732546209951574991056417712899713493545644924086732144042275275238301557227045776048595671535655806997470003956509615270312799733545255038698183303358061438699211975107469879733520025074320643855075691124723853600456201700033793292102887281392621498902936019589006959236987022504109552637727749093799546336983067579343182216436922471137072221527859688563117842140386116849904995663126605427771509295726471619482439444996165056236292929531474476839045073900215745661915076127697620688929072602596216355382118618207340340395033456501148345782584272906195194451446728457118618136232399556952912282203728293415773362847474483744947700657244444717000312638368462769636581991143101567864936325068166226671893342831006273864269795273429433652795623903881520095114263432385428198569782465433797548741159206944619715467198997685860854600662880763679185520509703453543920485683286481525933946487709000454430055217232732368373559674694008567776745658151829604889742315943063180765493845762680578835234033851800181004984175660177015806951040103634799975884702626455634634451859201262004037198205814138432835915598414108425359497323375179579411910230297364293134644911198976355879691125065613772243335776339854145905837761237735816046036519830292292110275983717329130571216722997741726052503605813948031387975685200417476658983473939081626368941173271266077231490625123935698152818954120180882549996049487464520202140962831711647988616905133829274203747755358167146367891517580712028534378741209542180029058309612854167287312900882631300280248891250716640619249575605227172509099321714320931938328199676064710070514243168222826725146249085417753740179793497671966299989586289937759889673889448238651234367420022761292160721124421716193910415892310129247800907610836717139166108300145609541740715321204518064758214670655733094667997357865160158967677894668014752959074575187837069359300316285399557510707351847726651461740563979163148197983480051778625536642417796109980692851519361312357217133400478187527319623773523670193604804207932187050699711752669029393362585263024355152860998748753182856244407831886819719559574687854213519928809772033133962028606107347553509537933551415830167969638017818306416681946075013175640352994580259883211198359941472793288520771139126619278023327528029848510336953252715930672065134697904364411661176272248021014692046505114249706683279733081214666346414107717916853384765169733682737386076513592805835947387135513603660626833250280826372201775092299836446786185973294391414757533767968442466819430465700035489698840562542895708377965246528052743649767644895488983253230252235305208474226919556342139728983479564189249163251081948059332331925815908901121843033064143481288424140574964078451833813576624373712003080572071447419477883685415323153268385493340766591889554197873622076198346919388373987593851277830303450554195628460000941022994502524455367226808766101040473153275012098876347336498609459187043029244450886551687498039665000491268580170189022167431121385697913770422167229067739405741933258812442207637831542443835243653684131133786381439237405355478058714127627625183545428143093053019210883266312128318364531009272630826074972910123368263245787797486721274997129061986277271225438624478664260088414346526108849236664232208761967300523964471451041585623015207728008715371235475749553412720427379698795593456889502824115675414123592223845407893107085480946585406112585778251176946630771797953536026382017042745635122092158777707237353478668028028980504269705847822557172593416281623874396955305784864498220608170880855187414269189405071002767644628198731198312895473042475278113247708243599753534765092728301914089579901086292180641036415192446777778942002616708859667286092076594865705880978480501128921902467486619072259893698395904286624571379369849872251225306422863623781435239807976280375549700792314587878384057236815447906666860248592818268736199146022539623217711197387760106431509153644231563949256585900024570686462614629526856392768186776536604060358346176887317928385774619627278218127647527855016043219375896872054936645494350984106828311775236859605692206893722901418447125652296167414523508318495561880601978027879230434160084229317034948519407507862993401020103702994486901665620198046865449309563072204088683381048243559001346968498611350332763892059299160227995150002356821168926499848903555937386571528957722326003498530354058761059984074109233569748194323337863915328956706423996600698624239167341500387987874134221097336090783630001847346684457179874074671168779508707097464968199680413330455427104392410959010325926678807429306386314332970958307145953889190430859176415153686306354691625702382792674227239327657856787427769674432978799383188620368062625366267315896387802470225018514971561367858158321016089503469534566753341492744910086354313764170293065424701519320216038831396805122608891121080894123901405436877230768944556943246906484846420872621518117026339826824024621696136724618780126094433896514370873214803897064476459458850175545885939825450325289763747198008041580311624549843594642746569351566816439695215883583208113320888213735380609719447993119222825814928986375371044890768107852942700707332698777377390653080445575763849217549467103639327332391518147970556149054874829827700493506189104821747017205255845535112513471969372996821981532745895637385330831527063251725277469380365725583623592066191153594248557844155319853002338435598073967339212587915713477724529447566808785268553728760503401340736546050896556318012039782417996792950986634623360558979538057487380868296557181767376219915879984125931526759416365185017639401110061298870931317975443048995709136409191538079635567592574627754781075365545373006674842517357186971289935969236577980008537147907430294909660880829193765963811700554414976582829220102077561769160563948990446140355955069502784138963698590396002564586135782060522919875640128269245739960461289196948843662272108185969025999262710262485611183102422061463445045596833786888331331967084196840268674879594511993180235847237175021326200977613204154051825061898257580393512667382246888465295933976428086468792986675810358080874457131948038385459824398780062142532850131915375611433564714037860008281155539665212201348257178548492032808307015796448128213673718563300388139366592652704956948119286424009324273809389589527192589218396248702309718773686573375316512150514980366366336665075939467789525467260657688224863247475654513944576197267654925631789264528673306846498924308248801677096562105894026304420198308903807910998146826056134293609889810208646495362344853261967040081473577183172069357530940023697104422985502891867143071026555579584724694977022280986723804153430570789735444034161950665395229534046434756041639748577999268850744211000992278725157281944472881729613271173247786406250717663485767414482491443068417379898890854259846076826512964723807673167114388659717222603247656588358971194017013338016240637934986341171977106121893153075555124252489766265743578127083101149389861443155770152158001913981803736143347077950165642909558876843800252393694871854749686209487800133907299810742765236747185882405441992552624736550308827834342383830668590241978588916575268334188677217370403379901355608132145932558475799735880804344835139564257714371393464229204721132273499712034492631897544239777823441939521696790747983237187863820275651386893066418076244494525842683024483236561910427961869349543242227920949704132505455736049559658058734069120577177547257285107561429327256304002313688170914457098458024754322627469364628918338230874479617177347253768878356986549731028561999393826442435185811803268858075638153793291305625729537237665359109643477374551005393282514064775074950340811925576224853161548577881711012979723846656082176958510792791693507488039821991141016296866045202913198923750845824631510911557527741683298083732291637530196426067157990263502040874817655963410418392320257094389863767490278017554928155730440024169086410260579590228444058073614229893352605600283502972307985373418887356274409476212009233015406137526063775896855188428289269761371431567007323282861720274039102872266115230693584634336020820067283219935988378625363779655212352010606709321205201254956969660860889948713179211605555725160863291596433873562692933554176727793120510806992569636530517742615232630290083072969002997403280181136354839485853895484509655916265687282570406568950399615201795959531880121507202360172722393306732421954327290688614203783384329147902797205522089887194264288004457238298534238204860883981741827518406143638836145133419667048536838928632411635269129418230336273284660874460105310465111299285282583934812731042758723941217347153369653671882796119221828598750363463278610394395409862422655358667836497850827447018814329019411055289581460602615355764908584855257161174621271021996283118276027832400180243825802994075627932825953918012145526630634367962264435810570330483963553402180001348526234891229984424336864989140670977553522781496067701669136519628033096837457637767656310140479120462863371549077905012175751304521465072886054044160671799812133173999916421208196203195009280315612575195393426763230233334239686609948513108733848625918763575851174968655587472762879813739507183952236903737995479464848748862315224247497744942196110816272644431240866011182484524182241763229783354603677162448851896576989443781252153828323909088653196090240068794194776813686418517761390817385439400807563720040462481855973256388780884219892997964388568780063190573420706104501534932910674793219383569781487565426048293765717262856351691788458094308843592876964563593201822190745266839621976801008774830264175235882465775258326315615835506204513986272451278859293372730158867774019347667804000025288128081236187657548130972552524888287413991177251493447232813204220852292149467903706640172778554385721622799254553334183865456895299166908246234020963823581177332551514453230620943370670649156551496937659381186408308701766482176005434068858659118947452635427544392748757437824189741072395152391309013321200987485531175222079817720140417589983357140128850075333100370040519623986347433266370931725952356905253065464971896987991018645003949621096795525682800821237587645123984421181202797397348769697470294527771904934838895904680666174049254312850119238249035669586350467547660150628227480115010704957069892442667003612806037552708322590921343884814858417939867956585193210705895478426149484537352543722622076458456446422356655624241176589099559446931594971047903032080650045070818354405975748946441725755619500488937426956095485959423262017983305033801074774471002311088449920817071771017048585365761409411859454752016854146832703582387775340445244561888284052696391897752303703822549484105289090288821256755512407419381524108282098929163131467324251861355126150229296855443669007188347009530101963954390677551864291831866816618563461761743178241891582924683278459237311267737065086067940109689027582707219338340669334229490096888831884704285596519767800465598942392114376246773996466728894092661432252099154832585586622942223536537337840914822658440793507815667127357510580152668635955080640507930841932497809145581256927414927395561578182176184470401614301381661938198518640717272202595453246611603669339302842089604093494864397180188360213167371145497869425946782632011096183231591369174078587118421837951544265514716821554994526619252565446796178543381486621447404139515250435854175129891648342711077445047758382185158764295131140923548944885110245672536107343802577765215594250278611825326785657582340096317111131441299701443733280447062637838794384076325684512345057586744762247007654419156516896199975122043697334017255575963292708184197579999797506191299127786356591309271710410250923333255614249342379059046890264857084624968114191590377993114285867395237851291624735237729956385835305266853712703963258487561868729501610596230942451939736469381984147222813214908856645117597496610938997155629362032615620102016938661413296136946568476773090167566681695443617982750894354289161846104315654044176277710720030990357462102940110358991588917157446345220023656380742462043755684879361032725545897012023300804623885821588420842630752220031073181007294330803255167791553175126104068805927164410702062541563909758118488416925489013938656477288774744341757086972939870233690893637374605608061566940190251172843540010833187758747166947218652339102205697471334319352753225846874823635532298064076434810788750950793409863668926063045040394959057275436603070322606392191967615469924763943093832410602503922258296564733038051385648060989017094776163741929844394514081629110839729547064460224603997147816282834586472080852362753500420580588338089159114786421330498827163640220687034462827096666059519561002374310685934136499573916045100516018482644545818449494954313944781748609980493133260773950899462353462566667291062828923548758917609160210000022119999234492438055276586985267722387078396476863136652775889709624401281407462492034378417543178862518426603878263766468086719212227112737450076951863015980431879912938719460986241227422584759673486935918405621800252213993735023456730262031550115280346524320732665648594192058535584537735279468065531465886650893237382605054074803271519479723469704600779335954588430788920583062189475558545270755864422098057980815474072608888991018956408344467555504074930268180186819859990368700396898718367175698699015854207412865418841786667443905506279874065598231663918867242146100057594552844700008725602405095860699030787370868218761446383336148829939421619726020458912537496392254155290679291422069346351375534496740491952854595009918463712132123247180943767073090852806077356589102505884950612049410322708675339312334439468349616116938512265656074221890151025203522987463839962825011562943942921007951625503909506226528748198032548027410099721468406536121113648071546307252627117670368515361869294504876995272498506293558533622933093401212989200487329638094328727547076326874369252405319157236202591984533373213740622062563034895988890035753932498071409358421050399284480624697791741404689238102236947492269485560108713847332392565423935584870727523511269927719108595890453398321478548069199930131489927404620873475270619251632466784456090851441686892223981324108815833148077711461808823712642367210211996255374093202558949293175872193217610486599274203010378628425701938367343252090658108753028497536747501877020707287017596649911939987418606912545744714504488151288017402652937797094964074133145856892172962160084598255066876847648846256142898768263007337956648796400821649004627788666216496885066367410771011096500637371823035167739297459776181646696671979774783642393794716158244885707263549594400897880437924757245724637211985695360507773447727236647257616346625768704211440764234905529500214553264627974389407533234758518798209166605326258836502698673559825132116837365061137518270263469833177268617518444408859856158016826896413914143532895461734961566285432634635383042343208576950454655177471379712461902241418082955104678570499734013497073847509325798029176541665145809864253742701994809278060628808212806146626483731763432616188755038623871782889416168805861943540821917950581261295345745599478548308225112429318340441896640848209544123650200952662646138538722507373267537057841202646042766653147022263172845697340117733663838733813196038268353714583674035922138067942006358438338915932202636089484682121809210489775737249360716518523038525212162283382582806987513372466760472882664578095104809285630696046618100593257158010498853227319590390035674773383049388676392047552425088423524460782019301050936267756892737770427128076232267715677215957942054764611550547206889538431156395207051895454836904729180628941358331868984346421022182003625474803396933259275942153634289787735312891600015808060572421618156954420775790529626839238554790747546708686018261839909132723582579703804540492688754933512853105826239265904461181777758250795007515867814862745980008408622864525405193003695538873236856124702934897354308815913050889947498282552760832210836451645694404479421341710606427804046379508148903272273111107665035169830695711542236063487447510807460307258460351372370299588263464238169236582648234592925946925735747516642228054574108446086669628379067362250218013794907141302196211090305845740456613148784968131120748593826393657929178377832843268918898397480971869697519346529551723379265916384962699869413835642117471436605105843288454795514722470562556083545232296927259046965921754771362760066261719462757623452479747557979715518554839659450729857184580774490103753253961069238601676170266587751506935628681747597908844621429252448743460885498300903914150838166218108039587369188361248772624038317087401619587553188387764168441256970869598721058209065536725481292679010397847063292822921959597903104036149611379545964775510797620412101541832102285417719012284563233300229073939745115883817283086131362604919218635883220834662916752862326373719666949012950045513731233627967370165024064389079500577656029659796073388556966111504830028827147479640309238637556719178844308864986989278918409269940764900823510476100390839384049449732362684383329034913776919494751645905783947447982193723138895117795101334236490210646539797507680004046848943472778243061679735265648413231020427771117001453140598727596347447989769956565241691105873250507689394293020070970140327023479405035652833902429064374038698772505160384642616553371873172519016666904002704339399803507340574573395671071451420586277713897147085103390048032793778716456815822631476768858044450553954129780086270033527164363383248259222137399092055664843580468974918430266569368009350820170417521387000652309779318140375272595774508262468124918407940118619844849427979008678296989679414908201356692067024336572172101592065791065659486864816994513588948203358433693885809200908780862109822167559487948223962447405103776757060905292898660295049224154447145891538093406592119663447622014901838710114437510102916354206734011334637210077026109988677095623092572631842781710022253990842048722129111336206113631443754927258202612502517898978395801358176477810127919740631258026498949052052946992894435542627161103346205368016816231990451013347113948133439035685784324518904595813222872133875206309788144361401730900065955950697294095777968646502585109655923727842159141356020677073504480752544676734957046102863882418303363277503613985803887097049264504689665469583567478637805810024941733997454193212132950095939691063900291419691712393738110263131800316378064268967328265890434522797348575761781965161284654948425009407725240712910187221702728781148807275783126909434718188460379362621182091943831269298395839979437612147077314380264265633507001592980950715906236967183011828168955595091881611857137145168054469948600850557876955966543109284334034872579851309054071383190213242653180392016761064096586382737428242998513704650843184789486372244457095155704586430881831263413680787840664988105600975925696038785756005941271445435861940115716152685343161881064901501633751234516007028125295259992070209203962136353590528546129050676344647689892343760593215368644914148921823753935543730998991583890516470114909027133501718602540168145408704948681563055094499823486981735825515139240162315844842060168436144092924568045567119898738904118047533056175291951859222001753110308128372932632544289022541050435889261298577429727989430115363103049293925281777771783884608818071740997749836602020862477642105446071883934660267656002558016374527957583750577890811304007307259715109781603653170164251990260181386165151638229476281767529340497847492233704454786152894465207546644178910743135262043864624763187189024995750198946842166178142679342021688562582144722463325074972735131978195093055270849336090961044501371522844686094431909053901779971287011172727598625588112385382500937178350479479255712897418767880355295738156595606451439377461986958930841494346961593855705297438647176252099890840335277153181180072834506526700150133290889721293747647858628352737108179940307595083066823024118607267950393156519634069373314952252857813239566974756635888401550477362241114654353911376954596196763171151430768033953063791217145403905460242977731711101939236445833605181106160785235512604359250914974912380438893727058683831839977206887954847328942255266658832413468366708329365814996713888802267147242014524271067776003733783755272371451411554755052102454357592880889188379540533914002743400812675064895499237418906805714387523446088992621520013284350106169531458364169284307930217577339365450690896404151707640118607580726217762617027822104676666645693930374592922426855217496906786940579328124074518695810304069139585431000108021556112829915284162069097487637196084305876835398696764612788305519604808435864837149848540189354183612175553627662459168764583992261675412287811214916833963888703453482185964393236191646821074418994980508420960071189002901073839625462660184103889497340801368679923414110670274004818366730173149781042601494042499827421868584687386121618840335821651540422355176575214443026628371755993900350920372792305371474713344249306190724298243713641639370778233271308073568167931729425070468353106161839066442692356505859590919433885901950515641046629664535938966646642335281608686039272150565004599735703201215486265184877280034178013278999470691648425378263860032231248287522296250691811259764643636075104676975418516564924135614612899886499716960976962662137024577841361490006577757309025290515034470780045550165553811264670959864131223904100917872065194676361263077826268715503295159433810835962169216780793134839035543677207892566273745783390549234811943164882213115053226116401510970494546847716378835832121422594312488754225170381123163600038252697458517743117194907582200046981157465142019522374472659683420052022767079914460592203283186468651205320274839567561879776745435878374168816320746757208531609205092260834993156103150772565110204470877247607963283271869339494824633316060688596616454237063672784140336726304110434718973013530563157779316899349974622895322372695457738002777148244445387651390364631991829032414676753257517801245599192129008242429261935260639757605251134789048970149537889849713462317776687782173911270955601180068132477360106563955120806591433343864187857861953109659577061075467619784506840595835468966367655055376347346546190158720910583867108428911417583958034198864553378741542200293588672876724388307125977099947533275194419498828759274163854570303711790367909762467698513547909563323400671027949428668511458966059266945283481629692887574097339337896168191948350683833698318343541951397024235816368350691703677318567679055580690378980083539401392639247172336375104217569611455877042199146663509353330186532968490375956328820072925249900549628513658761510982298838154895609161045212360980726642816194287471248688889623928108211698716383871296876742054830071842349922691278555463942537505991538529222377548230411019086912349003521502280408526791608948805741374739741241980051379044939374121832155429942841122308152588800819613598701018106924717237708411394969846043711414300467280396745406467817525172722860662231269435090609578898071961570389886278096739187488397387395395042912814663889292621479630392663838524744689302983655089876411902292056160920341219117356554036390865294745471089289573943940963690195804046188433929935799953115869071572394913446328822815402700681181797947671871376936577267818327806541244890290708392582531246321506264742465764017494211335280834521062064938144869793295869337091574554128179837583136025365840833778299268298666386222720408135512947153091976715240837720547508763145621843333740590514529454129057613206126416183947011251031533376284303109190311965789567535828552792172810587049887862276099881580426080249842903027989430124520300396537350750853844972533246480024811366445454601612480057767563304010086930563951623610654800133450959472960506327195722292320542921800381698587566911774585980718947790015133733933714177286986087840732799605160439248240003316602273851234257382422825923404990876825453724758350801996853710215413840470886132932493075431750609310740409670727268310508744740987794506586892658507707016216922765151206976991837882709204966882261418821702812222688870016456798973687912295124917026083114581009516020399596916064488480505132621010361821012312129009633524146265229745782738190051188938822068002901711383875691734889094673619086978412714939621196611008001207743616447749544296794282453343471134764830384723713229373621228008819482155401612795911736022701585648351879026308300326265935562253222020988975624738448743425395414390092337291172030461133647243226453762518446055626843853215739539888771535629179908897425348645695912716305575740096951480533634619681007119237743159146479874171269768849053419674209444466385769734530898927327303053908172982108856643054498612089305027570907915187229947796874777706902896376694684019260068531862073619670326665471467882061711860713562189096323594282597065564799058736848379375505282138517703390736713938846337800454807089932720498215669118400857210823270295804740339644528437915231129622151439532717726048747834714842453009659909367579405615548234522391989712195152989203423133032367273583821659381669217442463454680085376819410331619075357438492897781217787049923827418978612547076585439437732954337884991443115853673508058931488565204158264430802013136801406027247817508706551302423441762709389486695236420232022545259245571400740785596548952927636660665501303954099190515453897256379955255966044506096486024369064088733708572111915655258906482038476860887575769869648201472845619434485171732348778612961327072285740926306335080413268350553484341920491580138392932442546821523445347745916690652239329785791779056816720865096717733959636021466237971201308972479437903961422824161074049114919224515705959176789515507739481873485010305686803293407140780247333185786521511383787439713315901709366594621097749778605748214898864260962118677441818757046568714236152314778035777304419547298517718300768842016035091568150903307069584653102305947856326539634312759966664432564184806422903589368828391341824879132243624278118874055164198700088742060661200634016919268787047093029705228120506242156394024460326898970735781152302305790796125332542503223576562318175821984657533091496103582479321201705667798101492692775929269106227918976170997052546966563698560489738078729928220218369558563388287074303702210535264714199721116399393699211651259246726651980609319650095994510761680005442562138947125440271852362243598806736233793290150727769970867861212031307138506771593007639698975687220955782272548193614790808030905661822998339113515364511759971768647614314846955562948780689427571649194031489997468925160984396504168625730461868844728532379077351236531445480257370071458572282436900601976455874859118530644731588638396346012825519305497618221118827827899515799920242103339882216799203551598685469390053956542619476990592724778676428245689450560449156746708279223204091188275723342949934811337700683777102660764181917018587451194508415474660809218505074320869216898566437246217806323798620595653755202657534234937428094656174107953160102814862754684247935716983826322639520332323125899800539252122939039617223907878481025981506531912122523012101421770125533556635405597238633901462759750410814979625722886002399000135034627408029403595679794442864688363835618435626588366957778979352833571991172138767497653033592251140798296463114557614467553913391400661337262888309468018541439101113240720994434613222577421575265150604533116008964675267048272753479379566249912230489806492392629866076807100459099444749912206360992420284903352855351289164039542982092052716350365548523818849227602894227401053697063106467722164448364225482351673889693248151091200537540640488412413082596903606524430769718309984902458815275012675214546405828996114519764640195985187175640144307343054706837392085670952929872615839359952108940579475461289677127136101651924459622432743825713595617870899735738362223866793145376236873403673058019855320978646293804292893636402061509095793790427142392889350101108531705310362766591055030719186779266180845878083838588174068871537439055232704890823602401345177196659134531197168323561591374657205654618155404104131711069492803957318233048342821882667989031009959794554384284207110100319475434347649700736101659863786158857421988566679526170714326812716901635187102638409838487623757986143847038871561593219630358810498949833232545623643181389705609314500275246013006901051658665985816877864794220888697507195628747936396162207026607103615660962573816060087952725842355751933568639157569818094484929687299907505606549452552317941931739653645900989764200841244383533018185538999251115142578404574498434039653922602316350248401343973593045407596350265513294777087449528483653401662472781671273886126800695762886972490033681475200902832382774729435789980274124612328582858481095592549976685194818332082960923655934413886858534671549837116876064300647384151653667126358047104060302270325783353933850506225721786228275153606725401984569561628570568232801945816609694095201520454137362677478642169557628985689199161636572275322769398525404520567377702926261617972525219749688123052199577074673306080967078292889415223314011480556110480562235706952613412565060113355435960678659800475664757612368668245620817229536859764607732550679852949051137270353051555907800475942052063403402535664236243043502389200026137480916720512785739025815029699654984510540396016576155827149966222882252009910366693433800394650785808241661788943289474069158762120180479525098522786929362090328319100203077713644548919415952900399121489967565312048991732811029406865106541382144979924222187273194451871501737196370140055408408850062757146443139368751770354760913211728505767211356694533435495909155467648453556922746373471694279489996337117340571086245618937683872748361457009121404076244965402249198742218185474357930408144638520292646271151190142477181677831736018749227008283183489651329753892031660008291808601788096597992728905449199094296031334192486734045826849042322681792761177531303753082678936313680292970883994088696535248566982607936980823683269905415131068579674016633930698312423057178527373772567512219022882924683214599125391484635288894371304950913147792590006324337728748472666715124618237046906966086828453326128042646957370073252570569023339738316256564995732523689628116024159088115189302440640454526486221845974808019854638495540754309162417743331609586362439550150884757818297322660328098285251149614202298731253554776846442173645037342369302265693251055911276926698911415887795275444845990832465658108722986202944959639842660036411783913271955907782898946535224986202445691747527720766861887628118838906462870591916302340855276889150588702208685347720333409771771031298148456776227664407004580685556829914679278227412487772108127087369473605581445053218635999919091142495543714737203447676203054325155987398399218776285802256137660756296964839634824870347626991883272070391557447808217373856600238028102939768075317281298724226508476229143348354660187622247776621658150643189219385825511973600593790802778562573812844807183746942008161481955222613885678307428597421490938856459362272243719181960053119896428117794135364797697089948228261166768692835633820930100025713712421969318112939856386824946791421855252110592179975651773563800817999545182697327165272402265745324935171081183757708502619659599262651557044504484819593505490033916190798025505054569170654361426900602844534052141348385360112553240374349116310791080153343788793298644446302428573800053277987954639205525234340069220308778682241104863236269058653976779089801138623094087868911512464187501575653816980340222483758174300324720582858244312005805937031852111982432224887083422592556494540917710782501649619006969306493181178436831070762810555923546917742495360994056129069547834662015453730198980013122283691668337685051201933016783334428254205150826828525780334679550585982878811024531339356295566237969577027413969494481524633761441389825646932838183665255912173918616021403057047400539518346382988357853566322426898452699881269301567332502847250936259963164636713743514729620677327913789558743445950115716512663236749931702103385931870358631509691398408528309297542930668439351823559195395818433918939047875229267209992673062147185515684914164085398462263181746973458342381362262992939342161662927312234355876868951562800306524674719423748143850030219423172601221824227437450255607798864874294259834786809068838056630149966587149541389596551484391715040515942559241320459782811213873439262718346959302891535117178844406630959143074358804419927693365170678836124224216191638675824851346729949441185065920907220758130851898706514974456629209230014527845752072720220605737290319015041321802205132151591265102847504347323628126744499472115940562046595504095621972730721485175416872472580125181455594746478069241862759717982786719050289873096167780154375197581565655599420724977871233575669993379293647238767259370207430423943142332337494715404244118124080274349015824838873785835860078297081830176836728398722650625693813457055885334809226797951566018609876120861120862421517880119244925297218247039080964755023961917606114628878138471138520857471583564869430220404143472411248306994552386113808755467795178901836885018199286004995006010039387851193571264392055266421236353253108346356992576751929262200791476484132612020334682102534843074268726542331486025962499327013179993484524282750496004377877032153195967204970912182826257978234582727091516547575407511262065948036567279761863148319550781047576866764543519236370189160455309818948279619550328333492153040165957521270122812498199334122276142387673244999792990129872727379445801446267042497119455792868453564178276479100146553407143364725670275988202373792309988240694012089201746938425447023509568964225567301990502878870766947025812248955857389936475923616248870864045815911108742597492699693895354414520460179714428143546409750026541591742941281638238905206052134851653896457380637590637095120484393098964064273199490542230068924983906240335810399249037410154645551034095799819586164184704108175757109715989473067895586962205949962355183103703174855139201077982487487123534440961082584288713775821016581044323075938251028546883468608338381237317460950308160535376088959308667257051387007245474743436016014536850898373414236489942810999307394410923163548779778793314783309619879214485278282383061189490742062727716570639927879224755810407097150252586869110726462845443504137401131442295926899830771147892776205499735935469469708001826183686024233235034393388240593771395302310749251373802364316528150926692641480033088620361798994444346773534756345813586786802025726167694616228725885656438948064758207698404673887586249891032725021310367131566012486925532281229553352141944782324193985412620864648163535496116293116771806358711001430970507017066195510271586179840079189477120745923675455361385032498834257515271026061312399605449360167858616020671490922422074000438634946506443959710300774176078616233086207609380110422850601964517544476130615999224724633862296702615635016762525287209548881629016610639615228435222849665424158514454590804985197387470863953946566332935952628380380105650332521028772094055611208838290250723581767178522641682721859824142271080574449948982141281716788266672219784255009726827229769112465240621913588434932557121711833095557087689890920917117043155612148407056377755764860902823952254371687131081438053041848439247475017570160826504298473222400264728977508537998803819275603068833444782300089514191929761786495769426977463693367747624135006763948177951895506029828620971810692925211828139729165426828245106273579681921078380340234297415619881064340810045920470581116692483183815196896273963603441097970635024469159179815661061640959334432926693551197385329775538829108095940413170822298330055435278359875482254898208842725593469535928590416528639921412348112740876270400986976481839494283001239782079743974940878018785212359562004010115732904516585409249691340328959568152429597711951445596073417417726019498314447099611664767521004780455032894224551306682291451344522379754340089573625578399435197787206729052503284743528492117871159304856886606210185701448240185476518120807247298785441112067796940996439576671887985926705745791666581060699816745203874360483859331447497480837957321017790078093857545200480462215393384245737181058440344506230282665694858876706249721513619705444294543692606744907643428244773711250296311520015047511310367757659996534962244555115730014428833252728951186367995436260003086135735405023226543349448020486152325421858754522871887159675793734228339342391762748194102660250494579990290151757796879190443915649944031949233149952904236730136242854755742208854767287218579460602638980649323744677520209395733791634132871282515747184922049075803859292088108542707360060736926372029661971022070737874830465885479439352648300671931738430695667521801798086457003254876479959274375839391281364888903623262710748238888812035611584360640389797976835253026688885681879102616899645770965254542621536094345606702405667094999994629597121785582151062987066834118431179572377482800716433775017669106599386596218803968086779111704348333517683374053514304152132049211898280883865047810595160764477469233326865415712492072941790650506372367354155634977810895494183984475042468616148768449777144414461444636942896133947570043277685708804828540421193408600773189038291678310353565686389448933817611188677110862900881751859356437713412403964033277537291624564328468032231020673178992052367201472851218548240275873079798875205116867588383007674536636333050807719734794775828170407518814133664576156114016524749463383550532841114258836713823528394958220804600206667674050429883915395455484090400876212340438023483336200567592486071429308398771846651687376467554953663718776589384319448976729316672446138627407076229196762996179739492822604920876735203470488182316604707302631709342206594500410560337615614967839335491278948862210068764432442184153574258634013967136568069724596127386792602632199155192133346026496773467201219423184275606856839330254632203944553153147601421207351980523558556574726071286573934976730232767466193499756182854185390619859973353005452551420680206364749264184806787167913614813898544204409167669381142275072694822323580483243074769486783204691475010523642284167360594269625954323847566847652512041384427146540021842270430147433692147649070090440228437488635246706358208931236410817323671797868925170091761684533712488633010582303058385542257973920815137004081434214496160019490994787063690465909738485207477435834214534641622631474000636096567254000005583495288096743833474152823382504319495128979719751696125474842294346362510059719862467872118994925724545579717855183257824511983407457516149264239594760106061598323917283096319759673472755413120223158122756249447515907209997896430228337131814916552149659336073217099995580041578176977034607270612020818902847927862963059744418069359126832268151521556087313315093460830139056490715548281986595757625722924606697468767162008902584683327857615885874679102205696603443149650738342546346093506737317916370749482583133367872394448264741390855035313301557714676184550754280065171455206808993371425960239177360725826654754633815794929969504067854649314519945141085975477967286980036647707587778523805667704154890296874462792572116913008698969626310958259736740419064215230747263427350384602656014913544635756751786402114875509225941886018948857098001284376057131823971283598317347665281630100505783636766190079268079329605425998117976472631324193122820375619594045672353587604542898789520095303463258236614289141556072709421359746376709391413230152246137355891752924377112734260190002076636018275822683640494436016076644146452073392135418170513678556930480579090357000199617016617232777568177578779253374328602470652580246712858176936854479050779698166532102068661689279426904298692271034917976463286742052267324375987941988067265484912819567302165311653027385931947925224309369205994916432082578819076507310066897013857990224105336246001107137293783494804223222367167826364152670780055176802757729476328289149695260460051800496931288358139044449338274603252236467339964875905115267163250402740705608859200172948822047675936838352859345792743334078511316533400150223293860353061862531331079018691330837664190332835096273010595241479651316875350423305945297640829060007994307478196503332549690428665030921288123937924226636390943271868202448830730819725595295558351186221327080878862251642676117225784207052146438449439546406718708876301666444909283241738185653553129534664977471213880911696473658237874956262612465941082524800430778747732464313947500340230171663073868372656822725613666220191211104953830382602041356832623615252386276193135931466286297948101190997893158611923468761462727520446725376936936906878693888273710887224050505874726917168137492790232133083778325792497104410925207812310688538210735304317969610420292526361872054493167748894935128710816195492214013002203227965059377864752940588029847800379808667035164083571781978629121908810417734529405835854081924876616128109087762830814952368424897798024801385665812004196376993301563021811348320007894193308001079484771586460212503172335376196259578116618573757146432777245775530575168302252558349229759334897001319245305949403097952178406542316951335436781803380600070911204908753617316098864552649585508374531510284981333694572024873740181316416139405217274020506322279094579931710395102705456529597047664498844510527362274270706060517159903003248111988349588948910768914437455623900896806014769521318981733977314075414010435017214663472450341456467125907523376580318983904784766168637164877759865343277232073148467441792252056252646864349109370158516001811199373164155815408204517761022789302875525155297371847560903781999312814676473424212622721839488325140413188997346515087249957362711868396325164347672205535919598073346483166171639392890378495283087011670104102502659486440158403864017357769685078432604764425937502864457377809128949962303985475382629986700799551173821108884048039512642524736486591681197894377205257977299420362824524006589603170001096650769045017314265359312765437947144021485440673822374127914237413189493032450924711823907749879628259192260290392899339479513562093978182297371569915433348795081987203542000824169654589264451082459313950087715290998210776953441006906751599326147330552872075780872882061047465003231360553476101569287443657397051958376875128908805394759191010143247618778395591061222091336573305544300895665049347410085739721919515206354816112166393406082992422258322400602938007579546128171522338698909319910459241819786563612388434254942332535964765886356855399466380304881630615428159917731394691697269407533318476441931827782244158198709142781342514672910095680996066931385358237679896283857770004934621740924058557751812290218432537500726839070313978224112163283700963497434685337936724803397079821614062684635161055169201818772017269337296059703849857012656345181801562989537962749769208238456382698825169451163429293108963119855506168511745133643478138771486737094308260031096664832777396319932071843495938452831334693059976582438734996528586734888118279062893059309836482617394154760930656781914092226287210345844499612660148847267611553512767301502974606943429803803037159966525047115562147219864754944050215840020445332393195053286426913861619140316509305769304919753868978380402420597337383924334778194676121420402249838006283144261793825719785481965858656694657537833171627476841638813968850985782029534647179779542266811572725076787518265270409840822186481228267371806106614403679054467093154909120366792889446772860341054358504901603653050790752891489738129882747533746985654105974249268607872243939042850334111655436074706600966530304629975866988366593345508212288346537518098250222062083148454520652570731998760205772086533368777432658758232122083707576351832694810061635661070532132632150589576583421782412988448699444681353126160027743981632938139308483589877459284280094983561665158918562498147194492675444970434464393815792782687317932179390843633753127040791350143847749756952670103079366957819306259218517150934652681869623817729436371663246632238816391791570307306796229815520792125114339970001261567902549977872938698434277806019287587157374075512599596967732800302024620958983646654993699167911939757935547473988739822485868684571846864423639188065671172773217347935053762771719409238526044532649406724267982865218202652117251439578666851810420227663364909224657608330595290028717023344751560016527137408029687743787023548116566555517732895830331735449065580221858090589848216139347219756843413317007503163539185604327906646970837890904015948904489416810002274929939449142133795347053907233162853486885740670800512487276584365960934951885559011059293572267307491116593995170974514559658322556539221433344905125808041156312611278110450042562018753606738673082572167491101023232521783651197869292594204097607850908078130353593464358328886977648156569818807263016207256909691259255212984242852153947560025472390690567157864095842508503063032633453646088935712414738103944940171692985433924620621186658792671713743419013596573964523192256186270263068197781860610191505306084949946137079883669177799385855628272912521887815112691212513215215430435313037739021313578008364090961093727754462015425456159864751366132956746137834124308357901391944392831265695083962004365468585935770835000557742739785802767481773468389391794828687493075505413520525304830232314307367701623224315563426114890309205064353097537414806227708107457192274654349150328371549695977375545380400787046256718501615275383633746967926197621746793201415815635899329095177104274049322655819694212675276863390329036259893643722426613277545259520828538508655369200850945891405058601028977277796861648466147159527601511954808849785661849972065624694865034150834372878516007028459781997399627846884560038650111900339886709108656927859271296043456386279662628093880051478197190791438631334364767725270843390214393137395414496889664997758107324008483571686083632448148979855058278978926751528714348930551963715873472157276126230302331996345422636350150441479296949270527410736002337283019005197662416522780577607098075083309468030373450700293587915181604946934243974834775080902878899870085302060841359215073195243473134063464245611217147494978680759750323116845341888093872500461988027780943828462059527655723951526858943863352393618269430002412305553701300206729787802148831497642517490700750634270692476899978390551597262770577076270286003061448557888242184473195054430927988407764914056374864217194157002833778105139230634022223944491784307329302550871873982733951777949935763534792108741831882897938535633131208608260708257126092915235304398137238011342718938020817944534459183443125385892021310759799463594096480210204559127446122874577449157076673065790158332884700757464129075434379415429211878890704023905647692982981892765961100238046388403550669499471877803853421742072904273383639494562344343086447197626413961659814374251374626451908442871192769728962642446443875692069100625810081943475876714879821572374438202591534003348430280603753462308961672153798992340289900830953467608763197591577930865998601746200482366642627297946557054614600018372398214472805196634857308132666643635549617593056217047904292315123077024179872229736187251819930539520126693915058837322380834367965712090956013161228764248472459906261988088986692603382973708781473054008415464773516238560119431253393208658840278672647467801064880551980936868134981855536937789125895355889811721737554201315000051372346212191461349296434155001413357278919707528215242136619648406736450471441360311704817385547501115684178319347879677293002335147116533925304430646768899220995852303054540177009176710974785917079276151034259459749124370355371053470953323058084500072564203842493929204326639450318444347825098193535815292056840725639289608561376445035889778418318105775939938283291527315342685605770586611546537817654021013482434738311149400307952469525734229017694378896706123004604373123444437489223702681246452082798266273985514013433073965748912023466060383748840181162523310236972835045740263487914927979467856725982052489462121852799468561898752123075868198754474128910857678605534315312779001019417189082543303244909317127001663003463623152529116667207339431550586626222679870608502016258149797923014588598746344830844517018776800752347758854702201726572411467573278479493296033232153144442186762408374606004282397230952383255888233883555755826642611006810125652667592946364918390048647447642262774147088854405967982809731782953701260160512427568438893847357077473335776093626220174741281195896085655806108001714915594707485938585927437796463499896848951907779335213406611179430041702367284956491203648104834745775338280089389969230283829446059914528600767932467622942300694600868585385485623913965105709717099957540799781155143673589246453906201251870188269351330249420295866910533890996266231378940899903206741127043279650100277066721419291859525682852418399292009731850812905445116682776181946084326736313892348548428257791770902485109974026888613737103401865956794363537734343248913041543322524610415686052466812222449198479764715078647474362010622453417547083967508998803287780046157522615172656326913665196904866944258480920588929187901564211347584362324019619941108497592189290443744845612629626569354453151569648978174258960904192351567519519067499303996445189430168881017494302420736145532495100381894675620414173748444745824419447410455293479634593840461126118096577503747195861191501568520454913682622477938670541873434469406278469190891151402557298771466179518332401300121072793670336703299013245388168307691764954612240624261608746477186678962304712272243259257727565125636555305248288124927214392146068109427394257658423563102359864138043151195752786524015188607084924892515398851333012387098917216900201296624584721176078172621889302303824472848437496084021377237423786836709306761165760520543155544870171153431365277973792769888549100664270978275927332622026970408507389725483014739760850967967452740117914440436711035640466723487226748067055400931894992101182524469180480017488479499781545994571412108619820302611163526356019331994513579240251664367198175364301484089051626183819907135736553308166288933719927315881711597984704485666030649940869095489400432020691886198900495614139326133940381532742590394854967891425819298543287747009727342837034966742776354232709875470484024452219824849200192275108213320426965372673707226383981621717940402057055503579432435203305293176473717249616699788657278524596321005872962185263570791220803606751731166060934200319353699339300442504998854807447190051578202441608853139454471259523576774645677015927423521095343388962272018756519879235552030397396698148075501238469462113210630169729215452141062996724619591295890664922926598802802542225031982285709057247056302863947066676319120572851320840211634532015392581686577213171063496497543190236346987522645084082814789453895878489551223619598427267062421991906022703975375210212627250548673320106810841716960779473491469159759568105603520306828052555778341502901939696143100906022780744113729698586019785937201836404864837105963450273594817694019295711469402854203980175155208171816736633907374274954943307246268292442288794048662478405710488076812790761582752076523617141365509864423636111386398568287800053271531947685772135319076209727788353150639605814756969777990615197045319422482757340207334827474294829477412127644833264422844587203645240133262157311528454732612050691078961632541806202746471661275013745988707224375938540509180670729548264214616692969959487490504551185315712954015278060833744050335190366329820224525805645063875460053090569252918064451366893197195435121759108427863460720276559960624348171730965531191197167843457414214158355086495149142676971774069122763173775864966249206172529225855147616251849592637023448336025534264262873387014923316690537249822669402036515659195869383542616848822327265284760836363724718479868333117905991246655027303262927214596104231600481920877067792627178872473842328174168925297291084173584427118118159222900897174333902322527069819895375244941810427671311448994139981728079255153922781215355208081821685761865873946761146868704169026447105710935009583766922458624295945994953394821440852175818890265124469361456413904115663554761835460491662414108147723896205675456675871988258388605315197206974830249865011854014989023090188606079920165763776347191039339990771396295545252179840356145163998182272788939411186200441553933767469260329072912264219719650060950125749861318375694048046446716199393490768167165937649903352829300318475068677310837406454443385819312041487885392669789800910346135248286510210138606429000917730050315036553045889875143690557567349799738569633790789226439240753226286590832530678622717257095273441487415697705108932204542039557841264534043771891394181556438831530924509575347729845872571597013698352119130214925862297028666840965550498519479343704317586883425352346673258711970949773340417605082634302071373311769645301680453893364693505558447691945861902623194340576610013061279022884517114057867049857006375804854015772912334234016005044581895122914137197658293199411100649486253178423425192356696687319145983218833703721882938925414759387735907533535231641691115173069210431215922450107425331224719850145124291201488539818794968932711315642249240890638578361378509828900183574642744003480232563189592060449205678878397019319011578717865719424265516580421152710308825778710485738814648917298446135509309028297911332811246253162120224218975445194470770814700535558477977443891263667012964428502130194949413516722281932654570464825832500535029935233655706366446847853618983830993137849316612831603934954786824803454466146656885618277148404166961339215824490964151028814419688719211375900379961593618797600059856639549934532890899765547600950070992878153171750903525526214032489716091547956785124611293092880977409919145049791601792677041508491076429967110583423448844543842277275338439647671985336674264165109466810843268663108118027567735383342985686023990825362199624499949740394587342945596860780656636283555531853171894659178645573718237855687394218013982698665188803225076285223707219757578673238413953289937905416388864098809289225510429426606641053839709571684433315599972012326724523073314189790555723729634996306315691155005011125797238742748165208211695888667160078433336221519675773473047840640287847503753154991023357774383625867506169563404694600743412091910023157244395241740321126592890050126274199182795473083717076202310384525619320526326975014661134271883217669096302938868946380388853177208695857091357230742709959647219528062448142083242856599719023983210020844640203707799283883093192214612090823051349959027745122532735435718912317187663753500067457672546775373120662364994650817237146280684642327793852918143470660356381547832783430103457592953713655919063473148501706322956501817858651286412613763515528359799116962436413408932022610909868890283477457994325799044319731236499400464891062224083511135307708490956868055020055088687662730967915421831789432386154039586186270630945901642926096008606679899645459474384412583981917347215773776697811734436570221251436680434395285016780113147680955415486903961581842473692454450377501910364619626911524215963755008243378746564801604290615361426937592042052036709317665822164342157606737077860904027894716478838068159389169994788193633662023353097577565045001667976190321460422350605619958397790261113799498535538005989550046813051098380870342286792451930274355860021591901957259598939273660266977709171893284651256262440095748828942788935347157971929943981823345582277136560775684329980211344740420685018090114709636985224296105060291079830884764210257831235297397960578595982076950492695354976159206443938149049133130111704925964484706224592262515369500191707469753128474695915955744760970688886465649539668352618050009628192177451796372948615807403914223884689051122252326112427022976916138402338153899203570431033308184870262040780052521671914906511999948221567283476134957909064059122512221081275555428287116633959277450540739377588659082424305323916033793701394925205606445183026297130656606130519211013538892108978171275137474459150697623620804487515676202276494541414887695262560551432738401476549044875290771981741476934320652619809380962991766462777570262763261640897779176639102560917395178951229544120079392665206383927515221240627920438537295187792986207533387496213302055790141538179697611094125595051282921389881990317928514911848103182340370189391298559499986281771520251323841606126010051582956578543140062083571199030838163862721039573603567567599734371565554365549464426766428207388231186230184333995502283839787391697093767629864086381763335990293886247959364311899671116212207499597161111210770057489364830838929855496713129995052146580064073902163348122430887790302198127678663004047467854072606738977790633419194493936812488487175333049091389061189758899290713737866620456475858694125846931196497526419793000213240912180676723566002028739124981201467126072090282879100614351395914997159092452970055947311227979762713045950461726664564992477630898646815139647502514726924767781730874074971693082614336549774873133910565681735844033901094752092216846444465627013218832724734861282897887968259516402183273941239412328394148424484665020815966506145864283000985435975519426264910400035826595102247250288013098878019961887329289057122947531797258837959185801322939123154241285893909385260967703195709473013460473448652491453264301803466622683096559407284973228651847555286702670523364927250672356089093918701714642963459250756743831203003711073835923515601131715009361308973156209461823637012704367054170467700129154619191087215633998135267307907904665074781049548197845926625973041735111604129764285413799977578284592172936853815713703667079663372422060718422697523231468515854578572337598170866594177049263438662361802489551296828941154597592270688803909957736709355153782993803974788870207729385171892000283125500776746975200162274184931407167870922481185593741744837783437453370116937060056509061857277544121040886323039657196994888256693740846474157459072804617758186239562407987520185375989559362599547091468867792004306574882411213459933298469602830781792800959667844024852198222434148038638410399150127764094490793677337253712461630773444794201196891669668832230702338830541504569501568780125289731269361680566146040753263374327206663174787024774781551494953935118579868447177394548713721729694647492885164772573319815726250948773468057054065864953221235866830300819989644653660356226414987824450331260269794724721651351165197120611031757463919490173904483817229906399371657183880102911599130432582135600733149660660721421101261246839404556204586693967595078956203071279249397397690619898473425188212223993091801577911365896722194031244323730507271747815569443013827440982781684919546522977411907336676879040930635428088881984993660115778598582922701503315229058653223616375377107372610174138486976103691514388305408650167770105142077440244179619828933980219053883907360837120784840595139065594513223314102898031392824354759562887586196189783658371798793889879885777310045930039851685159909722554357196143139485657444466689738838523812550127769101848531103366122411309665260458919391101690509006461090999484214586933145042725916452814013388272118224719242759030156825888150124049727402468726305413368631415654387080707430709412105201877675643198832401654408712182418579825991114301270469025404043842649252848680772215544654382522867664491196252365344599286050302067537426670168401705570233497189149179632472039350686759257269235352392127604613447688490935424173187936700007282740503470638246185528681500952513146033957420396689175617048986468725439740071248809315112073942248791811106029918124330455431728606222122918603774485788555476144120792883635970715122811164719206478165199989115365554985008179154772914276644046708425760309017670580719028245481586689319260097925306429569653737864291533337262165218915341959591540513029065978132503485341525782247161615383765891157186854468136536760772207601127097337732542870014190013023888667399658717705256886620461121601708792889129963092086433872811189461413275352042584537148489487126921505028777833051448518928585014183619505948301354667648416479609477768079258958191694327721541190610350811783470129820779528420848103180446870502505823745614585757541689173464524682400899128724001679512570936122848517052380807317356255957271801725260192950839042186115152067416939569835614186369583537379330970481160913568679297150686862818648726036316541825602304076305962088867754411908547439411541923652644476305678821645161516379090648092769850224832895959857912595021791756915326810338827035570386746984042620633930278004698700186935179822200834582754356052115767974283535545715415086972493822597744523610008856762327263466073579899684229939351918438160776399690735063492922232613647854125360001896857227747383174001958730708747798131806300171455897397439241312556661848095046232723496741128584155380885232828420835356632446329145201233310594827089220867517231550454038160233800427817730131560862612860602953130795480040761632370780732252837568438547812491251314579605497330061885945143686584060922559840401535928179733299342140051844715873702887170814217096774007037303062202299089536589068881925911871191585928912609114865622629829757791234064687332386741685405770463516438217346715018350050211083443697511841660327374654934711608221837689824239256270556363522494796090476610384757815599612962817844361205929412617996501266039947689988300231072689815368799219205048475586010101199274350541991157614153489001600046280088535685359653347660727169884981138851317753161751776273096779638220181158811073899749666844928844695653421618420820982616501202211621612459149643866298477897612689872147878376743824664542794923507232832772616473537771815227403291916184000788829995159047648750387484550070490944158729466545913651508445593744390226554450017511441735884404440916963930548315707056892787152481695201375849923070353329364883368059927705114061321265460362604912218163538399765705793782310966662089084040306511672966492686997738973471891831111542738315994261642806385691507643396982341687641394073916774122312994803921659314735341769677009117797798265406736519322020821412027729852779978196087628795096165279350802204768815292391555482274974105282267505660325878828474835748152010686653818453397048904653294208048550792131555044321597522245424603538358692190602692716496637815731230836743220222005793653324792669415837675526503962679226258234960613092604296930181453930081213789897962794160042416307633325355101641061343987871166224463599383647711828766457983605353711553567498149894903525863713510345811814625367704069562534174275046990934466610267743679471554136919752431520705907199985832114962034232395827810617407899397404406682397437983996127449879468216496102566761647027278747678477076553424325358472546458936860797341374899181359722956672058483904641697015161737687329883575849518895496967664868128178172228599158876464108896748758227297854765617283718341031129534007696466409024327132521650210011628526082715416125267922291830417089098907591158293766781525203678910771458199917548325793319230554063151567410772893625381031485026414142992283052901268239767137360837071999323012682156015465729205546490085688512336745048833007510640744210065414589087948392874161401025226327115051116036930852325257365762585556768207011861230703108460947779088239445675802630926725812118724545499917053765393754974187509975906401171489215667247226298625722353637800755906732374633192237385779314404454082044738435485669371820691710606151495786996477141021174382103996412247283271856401751449758536919077686788618676891083589772230389013768350071694535380923958071956596499889335987816197897260883378334405549613187931603291302334594020781265993901642669934492635567229748175947719938276205828746401062736965427449862740802504565739640871913676663007804361476015014877457208732076931201661615232830337130198001681224435229763764371771651110424428181864278342802772649183522840968871329564344908876388930256317918642543163657697658972824034963725122138279000540243757775752865290128509538929841612190736051774243591548156734579817960754528310225411675835471262627462279090366585420977959373849333681787862871062587663145890824805329887068198509137853326838887970008466902193280986695416951624307799641405649911696413414782333421543653984851439562718649593154493526378035594336514988932498592882381469282223815165132840927449411856045406659611755165618168343359252033139113537177606196207765658349653974823117467325743004538811631637812805657949351176394693936727840028706184534951456446883409308452034107399342345823522340847014862006812083902839555868506975559371513960167696104526440172678511701452142403460161285731855568152675268026393619960750896813452377124531244459499898581275166501482496433213291326349941292879240619587814278269886517243486960713056230838364020916169013203212013693291195302574126147234590990423149874013978826498639625904683137710389244615692658095378883999304531599861581745954086980110844998603847619586181083285693353580514306703760859597745332473641456528162751505890295221729245511040045352948919105048882856943648643166282427803983979226697459335647854408561527041707057060695225048973701392468010678637299941878255298179863300457120555806319197468525240241112140740281416817367750677897930474407822537049186427651740101416964388290289415172740885597591898733009938169026885210240087911667850911924398233684576784379095203509197402324839090426756928120204638209282277965387020518556186070921699551479857137744878482790259991853211892104499341576897563308895062065156191069192701387353166020364283687914515034173504755077194410926301954867490767710452888822987875517354916859346895661931835640500571170275148056502323097122238842985514692097157210448867938921399833028479049829719074516160539889003118006034536933387186570680776190393600330220223964403106825338091376152090430370588294434516128280787649976602425113754868490552411760362261183834091911622640014530203117650398646328906289474625057192162240254131335919373496719172298658909896895925219760730326880264945499347438666424337764379925580096861715773780777675260353978021238426957967758397704805207903680028592899106065470672794372497191759483672546235650235830840074284774085453979505356684552792756875900251342144703747079869547691854984991066105609616924178909006513224718785269011994222319738813128693996356204190490802017650618790496384323274056250854349920693692375921924618996686117323274935750926165154742416814142799072409045154001710518596521640151295913291461620063758382023184663457507438770850142353202139235408941056235972166678982330653421461398854231584058258964997210709461060349729154798904229311120651999762239802941283952069183132638575357289882653402767273050201121342595437839064631718663406601767238006133142452483926478142472465924055733973027478169261981653087128386946728579352886556078288285408695242903066095181876584486655461639599324126598675607330800820512972950490984504282985764561187277326716805093674387926483719547864450718288105107515265524653747402886229001476791465876216704020430539421286066502922463903522527872839832258373791002202744597703711517968869707996386644691728069320895880656944345776427101397405779714826444426238229009767548661175641337329747564918352624233223032996985356191642704742259432964980788926142744054275227581636382274196187487430062596302922201111333549578560271520760633581462532071391464094434384967486031568711048360771522757717290177432227750131382267504533862580421415407283961399921568552063181593966154839936585845113909548977267482804933986689017095784229265495973390673888220243273998310504905422631319055667325489285746682960674088773714968695842428294444990659382666601023211799432941488761141156902655071327861999078991007512190323740566468213504027807517590542618067362684239921142265303479901217205411132980815097618671862231918229736720542042954679984511344501286648764243766954681372799812870388665139532571436230689354727220963466185435926764193571613767198938843028748843499107640825200543436204357555704899021754202205939224335099763082220241841835628397767961214102411178934662294347025829344941224831443326473161457041184874992551787804221539207207080190550224764140766247346880769503724100663879488357847760543045102244640206186167866376651897215951491015620595338943335008721981441038737806025645870448211807663240831158729294034686246052797725334882044162526545047400883224771686401811065169009494576867667517792203965951438181643739479584545908118503063002853222013008824682250184246502659548132397148119158597197042199475574937761534470472003549101733637451907988578477491704457585258139827069556625252300453452523761520420129748414915614217108322116995594909722177856126448851842510618711087287903541928881407186847902097549460679612026760213940457425209916115002288851221090170284619822393137810044188572419290499753129644307845156627309825619273756740507255174344383954555611073358105313717417287268689487215044312189355811081659299487772675457198263788674822477535602071318326696291486771413743746636643752171535330836429490617210682203175834968702917405008895125409391662527051625694929667725759415509398788019744149359189932613580755150522422095787862164646659832759351056820386674536372432548118865070350777957157310842283577256638432245604977045566293816861910165486024496500407344804301892805337371078627037974607737225313740777521835047792774591802721327672675509218002344964742065461018377673124679206712476696484695190750662245544006280209292286857488439976316685748753275329314901258708419077519363258357978581907991810139747735240626924339507497127946003720846292400693386968749820452782549459960242447046300971966604502252772874930469482166881479537228585113621404420355240970270821640197428739347662661851726662801522040764360257354180916879961034189154909562521170842168113727151240184314055476570431154757830028790693303162565247392319463220634806333455550490107178057732656631291310659771061386357255324994715822740978867848154569647703797298048249371735998130299504185794964787368226662947150266824932580796093069545631750408731376510743342086010548172613582767449875158253159595887159433301038138376699836889240703654656092953618797531763472842913879335185398257566832055795561542684273595985454429038364737994042048685404927754317163488845689948075187940614526404041767224899961004627383420328010562087149331770626273036214161993035726744899491990296293402763779737236846032070944595137453500635533554479554213446432331341838056213434692220758202986519392478897642691476819486310774545407462420354137095288701460335492339762890693868962536459587033542454722750591013615656770414936177788790272445944813596324503433173496475359141320803157417618859026298153081993542490482889673165603054765923321756646097613649831834317028541947608737650203689908426940596505766055461580133633562668053466573180796556340344758575666383170358242125054133072924623440819098525305081475313051161727553013443914610709011227390315003993675801168782902575612243637887820067499653704910629887729499950979405806269993742020711519191029433019325525878101966746307108766329448377451474680165112496016209006079490151278376042113930024048562627671402580780537757661369555900641955019417258853200611325432954128668561519039732485400743683665949159853285256011985912506091319908771183676440205492591420146049416502875699835921424340670203796226481797467920821969898540859125271014107445755494829475660361155074369310320440794972755300666517572260702305171892682018429309165822498216648623425947900653266549089572906310140905738661905805357245755808837466433885064912630352463579956557267422016781643149434764157922923312187803179753003043173866982595927125280401594900542804835192478233238932923630322222572540064626232244279920311373169878994930003820928381015687530670716909304107740212470375733527869901849962190816084408989328304122392058319125946566647369319531210389352723546696126777195438233655413817397056733495294731442482162469459091270696818771004454803448456628735055101521671090324378199200276836796980886225527445250661722007713082630087734528767235724321920554780385847699603101336157012747412835883902568982859622857862269553642600828791717148665275460787257550687075115293107170453259809055175892352153573759414819980281367075029073675205635489284623601842785856776134297606737304863941064518798332897418824178975753116664550018968920785106827574765984573620624979260792673027656387993114502953268067104759614355637316815375382495184749441932571072556193817185281210883037940082969708599687338418740593160978029150414143153866766957114789758382115448847904414011895752658829526953946186914237241972722844030004676787871748174001560942154267407826597173529404850175338888561214966637644020401264487670072696605377630294468367638728794859601741522395314931900424549085824706018712941909288081273213678251273142881568048805606527849536994579723975080357660600678592320528121433541249998231136911159763957374244020221929764533662324026072303519661602399844595133830999971285406516419399258427144595734307505985445673539224310555426482199710529230527467915842270284165659926274794284466532635783952726496637064014646158506462846035598423813871021529313143214218511862412634071208612615797265413731598132792372857035995174657479869879425770368093218206762631904471741228227288810607314694038392919538899042836593606705263544092899245952255801121848082412322069773000757352105939927766137342534042694528739525985416554988573382715836635171066834803426494581617548281086247546750526280370213007920039745730569294408496830485016749723907931211960522393726078726468868835983296535209141185932224535929979302104319794564606254844376882374999946542531692126534091947830031945759968222148118560910174403115900682048679534819910859256351423400569905469612710928014381123246631387521796047396069844785530936214842851113589260941173270508931710693594253936884671596866564322769239680861390766640178618739847409629730882133016757127746948949057169270295191755174292513339694483671089064553567109217328384753950290172128169361794396717748499489253990954415452440286276240003018060344996687144588387411868729342736148684140577187118173983786203852167749540965488712281963172114344146883681926195903988126636098497152928338688023405592523411326259901428887808420100677230212411430569299575332602945673747573280263179092769072396344284456500589398888213362435494314112589264501152100259962042153856807905446046121839248833626761703553582073028847743737250577530916490019674832339151796691585179885652194437340377166104885216221988073586581441782214707792804715665681862692857005150148006813567223062769209266093674025814440382342011972186176028296281610806474277398225528000758565595245199692716929653413680223993333296669659837888069827648561917599651283616191257772633955554900306854571357548490786342603702864427810152287830916864481982088468443645958121836195798440790187429160193544020117737676926973791324836108129291479469688220350364780595132396154417598957239502715279717265400319875091131864208291545035018545588636919186313214062234399741819484997905823803859618645618483014703300017143828113128860496461819415471357152120222832328935368748449687655363344941145132220183462869679451084267114179767777528160035315337295992357433901685487596231226737513214114357576180538424587350605919364145322262152305464669881471267539667388435977072676698094766839409871004113411228556040192361972215076478602669983139897020802664660849362988031295568400287784962358890015163886700798050288517881703295046072906453240850293541390750216701271865396742964802621528897896355319012846596620221089580923483864180200991312125919497556912343852110458140081324815838287830270633677456063625168198798052776843118196371571267501426851885671001652598331996003050839773137210375373418852428319815201038762886323232114197880090421523218790546367390595389708593986019632999566987478275898835556196573204104271748933397109940358798043232555195438101010113494962959585818719741360964053228325011438914744521350436894015469829337952953892173180842085812328017839919008589482521798358903211851223059397683930517135579644975935980896256786931785621085627996276527483722414550120176577674664386826776412127483742926331375092175278899077172029580204455238961693503999376237368538451133847664257619604093164515672045751556172658888995878911531542595669332136712602084510117163456503974509320801127850198607651225384976264998050610013236432507773850463238107073755827664337725349060293473499959908843093942307844432742185550381573975721404785768294885538029388521861619041626858930950639144246146035982658571886566984978730433071168208973921311194264151125829003333071758569897711528026049051421549400007226875247767654553287161555755529367955002863489419936332795543967559113198961368323688185469166186734618837633474442156956992765828318846402960100378988436190903070207833376073225666483480336529079881221276818459520611823348352781631625892712019021311208173701719167127638312507395608410141954515512586025044105129483071548052986637393536993158013845336132906225003035590490588243884730060078830638457211331050791980510704701091048039625764771184803639672026893919564293913530653217286624246798391957695066030078899833127469184595143729442250808545828551371720219930295913709446600386826439688200830016703747594226333207926948238144787610153123522973270742329030670979624062805031433104887484770337941426593673396740429650758765815002942898075141127899422350651157753091069979885622718151874025772183318046555177140484067371846189972598903360337458291035506904740126078263520740588354288811943580877315323306866632943004693878341378050261805156967860296174846871129665643958830829813377242776410196551786114977696577878236314021583817302124122357561608380142800848204541308350282316258075573810465745327607474612909104062269833177338251193791190889454009290983972335757251185704624892020555227134620965461603136517752399718010062592571387534824632934185038172186861961197915594480526135654319187376356942094643188235565910902565752173984721801579729146906988958794514034854724060259354356263706377625288412473017330692099397815670229259404499839434004340192318740946762803705266226988444124821578782067631950249110355082871980518978140194455888785152443373548277282634741559216935621306661663624268074641920917403279771867736457231011269328718763410720452118070874186011536874218906717863158699589952585791152708425057042464665695432422454768373782461144628271206426523164564561286676665700795760103308948407456692791860885271572396158196831129795301855496683510980505502751553247395651004409402273561466496942755799083592638155270581239548777752413579771998119462516486872058123504342849903969088530928084320376358976617506915133521131142999442847886468599956183315247852980160753901086905249036272333218883954788468568198491630974574404530914261390402700995121134701478594212190067460744100621551707899986182851212475711894401617921639101969892150766224322652981542807942032487651864152717618730053371938795754250196578365269710619922645818579400632796540126855213103370953272459284765337123979875305670863706731961312090431974756628624575374401882164904796267188213007572388926045539554586159254475786186520293975892964135039080114015198986100722180402031173903004141149889875457895530414645617729739530838641613545128051594398484763695560451578421092753181393196887635347108178979342215375882899828062980831576032930767807312782092293533960421575558364035623102134941731148353456502836006438198150142611208492509326466692720307845743533406312994388478216880555062966992371396306655079145997661855179500397496612595869644438592506294043554772456448677092381044559324260461989066817415080337401963816532413547344122837305442460108477320483497872654013071556907034924449692843718958629191632762432539347848877565747186123425761860080318746354950982217120329678394860499956638137455075770002171750156035988611021682674756495980933355056336337533973030045780323022426540127124955875981389352567878873354594455051603429128743431700971364180976304973706432491573699102432876142384081901439783309521611025097452175829159207632900963171208809936050853712638065640922232750861168346269615669511736027833770268932574129258497463261698321642274811691517534143653349033658143448532135572340858702339757008967898259625503412110555968944278128556585688212323192279707639409157957610202002143631460052712340068671773285246328861348329074278111486078770374598106282930731252676378908843516070633001045483017029988724063316980111681646454748869200827317512170068972187780720723280514086646876192430048085437065526527277370011602044784253828365765052680260631794943768002358740688091389160580088936268779065716403681692303295585110050569859306252686483283040981849750935931828216048065997061132324128768946812191438843570949637573979431149254572273865968045133340504703490107927238902588812957755789855306386670800153159294544815796887893544425804160996370001717240909223948258640565225573008706581458457041814108364593967590889421018286194036091298232123450965153456846788745408797869552053337702938085277743780467953998401161188719638596151473963513095468651265102735024718402978775255699330771073543106106605465332977710685265330933100989874910906136461464434107800047164205304174431457413021073047645363814470265011060723469791199880263980357633070006960995549094507089276293731085675308113041577616779797424070372900934316258437114803643505123180483033424766204665041119208872293687092011993910932920588101749184462757937288992606974396190644167158504880043859285585160111205096449952480859755515290989718153476113548602685033725772365491706515591379287173004900108134634858362836112495302499309507973990706284006848622683750374509592377159232423931765345899404409315230841749988087787890763906098586424174175799735507136568140420222578854196594655240565099068255504153693899906461845972383345366977276586220405442237755689124037921558481915848134600926065273563618569869314843235316079429391061411699492955986956663369200304339480296103138986568820192555449976304768670139537646176909489984044192458365633854799923865786770698453127521957989539185026090996245340090512175001368097480672537819488341781468799121391274880173770944864481042809780165109788253271354831448108519338479232968460122098724629425322036015383434312994517276248046104078242240537468199246346159265336121631419563796615607733491336692712162501186364802424685722784750924478329952314524928959127283432407705477915250374486235624984202376503964951184902215045538294336255649788261647134027770089366367003483732635690709543667662641825800975115058307210812135590091583258489431336479001257029167443566349539854163984459805684541116146534486589491334831476699755097946870657673247327551553218927856110663993827681674867415063362678892745893976521724869325610859149714879754458008535565722391185919999704340131190680959591309803296356543031417708700572722890539353671019589534403289151409390873266267929220971891619551305666320295568909336311777963452206265884237332200558220757718109419824602888096063475248043660212521779639457200506966252792117638387224403992388816584265642891011653942169294345420034868322724048068516297369436621797921868941724045123967140170257888221231022819053291176828028297523242852044512167054094443849597593377449967440761542560752243802080689833474171355240534125660212465747261920279739902364245161193138712360085452079157001630763630529580138915529751459449740496674904758032953133664498553486179043270824562731380954410925568407588344722913822683068843848395772631895232768167223192454392832629319132587674826883037097535044586969892815886470047007586044488599492090411058671002474718715703641472105625895828767412559513616305780183478721603781959402103515908617987081442360702720828890841422342383117907054527440310446310453470227060768812924778406995217199392142440615496251470650941325154864513707057522939077336471121618733639895326336465733040059259831851872825607679025288438276996910838597342634467834343537646279410287286568431275020162003894623159831430250978457197581735646783529289078264542370921917044312412763962142041762484231966136589288392262516358183455095288525277078543537974084440857278547231684607914445745531542265711968200598967112575107868619746346010584687527230968343336375917060153516854275338927841848890520687515049901588023446365441596742487031735617197229430456457572609457196182993704793215121945904926296900455959881909418905172109527655659661892473418472561035557146793398523057196480959265175883197056173252518544738325910329186989049550711518864480114784015478753935832965306248645447582440063042016989554528135910733463648577114930470232654680300612528047890850177915005011661248007746248965389411555548946868713856475503527871843665256150583498473853213456552312256387112147754389682213360249030150955408789775238805662818022570625276155715658651976993321610736671488627900874768145988665904347509409044593160812823574204749967192609164505660321983104189917145095836280305745564390129669877988790013219916469676263345887375788882035578041087545909847856385601630462613117615893582759241021737717943844871891428024009034210036297497648438927735206304560818014211482225960937382109504911808502348830995051143250132393047441818413725722398345996445823308040721821659633595147190607289481154395825632368168023837872535009793095771576126174828954512406540894444825578340100542438486369015177414954331461849968944961173359559569899286473368060050887053510683100828398491996208634387190278400229201935991782526492470837353223607592886178503129613916329767829793058726155289551177710874358186406169616787319639008352022311752966340433592582008380832710324061662943465905499159385644361431391826422509744547652693668644418098594156211922434365882159582611006157062840061438257943193179012061357650655136756792922092390492605532127634278926931073495039446492920104868563801810836631889032207439093872030221812194841895763971978947186306625798558200554969860030181451058690579899201958016966895435085952270999759760107396135659787801955476475677762804471258030139913715699042265183275370472852885394184750430605377742306805129672173395890634472916040679232839968619272078452257756428816995202861700822812915427976908898062291727491064627740501599049772128507556592851204969001591670644099834004311195864465004638489394932162492851481807994700514783833769847945814786361680798330532389983591909977325256817024811109360607580094310248106917194525221797537900409508822889689357287129119477638186925087819796163765091752706801680461189153987341137189852378044016545811004775477938956685710824761318716010910979214340426698079986331285230871489399534743396512513005274117328273201482318196357486768968441178325090566410841641099380142124119593713792085563446643766275772514972846673766046828386424334500505003511647123985099549370380386701691792561384720977046069799479982962286702734407281752719603049444424096236708644250202309349886410997078773203997363249604883500444396512662406863914842529976534562809303562865957168895521922064095125805449181999306951202801675034020393029547240821089628843699217126211382277688290776533443469450609500478107211493578617874289903140048941738416893842684209418387497357964496746437635635417325958833496148748713058935578382621753224034944999209308160231858402606106636616436122760438163365563799949971877811831651377219807399564220201631098630340329623883993155074369870871681569235431089907232269773876397860520434539398645973445131287190298070171989800088322744723686468818570744688812011044039133159225562217034823448290719704879920067654367483773068286791932276584405213779246590674691658198639084907040595222750705351560011382794228445127102003003863155882506579522006983260127653141651929051287255713473211104540178999128988644060417442070094586223092465603239391336815927406858794679070139015543499053856866857218435400036166974568894523635297498028521345222600584660826710348950275334173877250216931482592569822133751941412688408876281315797296763647726527642733445678516892035747049384782740849553741774947095301244746215765091561814990294174912902721546713581539926955778998021372055806127897023284817291578357924946015252519592531434084973047991090150601196229290819331898665069674268602817995362005024415818691422090420014688214514735414746351459120393904804804292952858425206681656946904668030075607031199097412290567600785741005946743389277211538398415036551965093146090260954004419742506698123197595601578315622457758837232488645343496016260000627326185693880772072889601337445243695202300633356365916853403562568214303857114124556752520235122702157940948270063823032944117064293522818325067543047286307982902233180174966865001616845451210720220602014463764993965749972299273988081604683878939966749272375486623591415776951038361325802176487019806155831310517763667131611381442842731676483684485267799249006987364572665821379388074389997656998747992490076302927577927617353442730094050755731286626985222485510489591262291500913883765737736481251144984894592037593736131639114284895795892253472075564804585597336273861246544286339605744074614310472457029038649090105008442778718690075294664286712925097075384362234361002998270830286974585646633817218810331518672663450549629063484767863728099701869809388458032468575365141442529281210755288092959404789024740361707442972118953089338584828369489139685599281749946751917333254917145943734970057674133351710607229642661910573911631000646245634559456748829966187976940138941797061426852617341875692638499060991412641411086596054306603259447216388684455531765823443876698105660386301111729853855080861016454150912003304415123754656691489364094301218894563417630145375713208701968885974284243029872151257807610452772900012080771967857941652433206042325899585326979051637225506064205927635011111874577044859331319736115988740642661010404103384160305277518021326708577920857807825617711656693990841743436456697091803511118620843272844802958407244803745098823112275743972650642490441862833988895599394412311084580912758782202805672583783414386747155641582810681396103542886342328076197527955190392584277506642021840197204075497607258646469916244952887090381546784514537755649955220027346102969945722575674116792335683011082630412883583588468465031634855426550958263318838255699119225308372321194704853356733601113198577250309730433201767185350638290707486167722473406793178593547461148807521512511894898268566907393749507040483259256672712065016851795014762993768677938853113899322224700028422628636035799220890263778367046579053464064618325442848082484715640934623089042106645298954096352026990050230586740072659197214196955568464579256536121461374830073570171287777451577828647127432749890373751786153085046976618818846546110761199811505977269392737321737261663870777774334535583954419430379047909721857143595462880435965578677149126923135258168358000717328293905631956476913574327750717181443137874988141451234103497728024978153991750416085011826765217045098052561461350909769867710547516943271043677285984175337201351572820193886910386468575372346432499160803161754528902101360413385200002752818573491970025203142666646582771564303029552374080538047371133366086049663861458515585177322600338496632930514970256810535822657011795429624375700569167150539460674275361583181366846351717012214851771765838269325475078292266263989067679760361467656484737208827290078750791784307619936611524757968188434181079335181541164720936414825486199791827009130666535565502971144259806246680227511670905860470719405721695640628274849104930306382080652771687315857728700688828206200779261405834259767224470616844840699566059287304766486461222445746897126108095142562605583177407827785861569247247130567529053099678563510284336461725720564210908331364791421581885289164176726524005792465434450222330968830690410788096813321419718682107126607972561982962374039890802200207671640747314404596284280973758264879568426504719705705576933959164762981584025118872170271170294868167848091821163296802933686984801870275845261024770169068380773485396937156936457720558823362739869183159936280682950910333838726600076250698567749228475581015127394620124432050029823189797068328752649240714291121267787498191101953329528406422817530010693195430630008545640508133749195949509111485414756011809627270091746157947828252753676659280883920660590780697867487096523085199801583779918773735815143412444831116417162253966112721089656754586111804086068582873608321806393344421274646994831455770120628679230591021865026722454283021445307268647133925560218969861602968994383519070740266354598807667900722391681754847526937451511890295654315097062553827661906559362134326886195566025462540905925654362976928332938757761935129492344681041815052369656597688054559568067152394635362303169077140016556800890078800889059670298313784897284109837894224844607882886077428053276406149470905823079945588960315856939999877502985379980230048822426276265613131476331134087456959839462273489950584386958579537134286091871921949315904336076498380438679712352427712607347291874345141465509803823867729237652603762638881936157581283545724054758711437539954597850692249611302959363208765174492197712499166444808586089983547344027037658510973573904764172729641747651425759485678356383731986466978450083892218179234403405625105578954264861318733550840634326840190243252678693570253974412513270392790832537656769604369898461143980665964380132636124359998916128186992322688389043183353235050390404378623084119044658374210918186730215356409154366657551375547356909129844479448598671184307568538051943164942288482241040460452774291277719351140305383723627351523509002958910502811673939440395281558305694704290784158653007045342427083457762045598643091628711294230522997868042766452695498799073627786855565629289998165231550002906423568902075749345691786223749556886990326507755794244990449666965033650703124684841212253067012698490030450376956351640208918845504596803105393492648990591213374385669096891545119227261468388120904275274650748252585380395756578967548188748888058107646408999828839524569957288799438262821693691487634301925028377828269024877494582829239891959388328755835531954382991366417695910576188421174730856827931460551755952421332899495182769525510439211147150171537647840427026036103179548443733619442965652631285858832666389841697926732727414543610543385017433979923432804503425960511781207285908312657912981934175140200687057631822590694768171342946427428095209230942417797035361514534101180523764305279559335595769224066981677138369757001152903565544445292532452745837962674563288444410614213794485588464380405437718301366664624508626010693861628596198893967184183504075004425873532060542430320633762768325821046865843111470078337465552433644868667849847343085201188714262008837530263839157496686098685486895450520780270037251175437944872393732282508989943125823331033171441528010564150317692217461276834125018354705313019776934492293175945545921860303160702167969450348823226474977020914190192599701365894374952724618594686135539201455227694455256773514914943047096640655471756159037029537127515089209402977090931429552638862241235772378713141550409410401210273098248999970595635186793693744641838129192698685693621579534739391019266865866802077220872165645241001289865001344930805147676481748200289509131948153817977394924511516158859914473094605818587021574472489667515233482784651450069569665681051543998720507287667324950844435782941640514217938089253631229850337943796450950175318164683888500392801994079104044424925892239597088310449610203272091930782968253110139595157118080884508545735759016696211704095963710584872322759329462810710308294587796275510043751837076159278735122516806444273057416234819145811536705696891050193790951163333151387522786225139531123492332262816987100814273722564063886748914951555652408897498418883677779005503197650250191139001958772216211230980143259853666204060635037224042579167470118453229203556090802258938260276902644088406147719675580974597830045602894663254437191492338663282543814533907938408869787471779013159728093825958652639309904896700379804188969821729222599731849751811536694276955200966694345861017881067845824596623455210471306125877445340046585042660986158001669371037742534071495463652553133938159197084612315401934561121994625598556576049611530415329651194903242901961447075754301327264776838758315421064984368777302591662307777316486436990837850202112195080597006736675316532021288869119176780657708183403005628490332968568635610168722316179222920990875376680314164705804971409449549517654227997397476906768615990529877610513844349378732186371286148166847541086613721128789419192169655320689570839927877090188497663508534749173867328152141925530974398269462296993565444338020575583862883927038555855479105363440364387987840636500363658320550794985360158202295377578374249593011426303731283431911476506087320666920298099681646228620530183128886796415954573507818235546744275124184162399490061737276674692600748284033506778944467774315174189132982461393483200573612588011064426606948064251998355416414101506699667669575100649296300759888931764423283101626445964886756181047686301500024093953149527870777569329809746621078886200796343950961407156838041268969174134891184933808197960678833352080265672690875721269988243664142327065793287957802963327497155161692023802350310073543556658721127668233924475991828847967172730358648088365412126436811647352383799944457162812659688024755905144414826674460348613166159742905312559643187833406212036629521075654407395767824929214289856586062859612558988134459280691499311675154026182789399735795124355510378716916281627403065407256859957534141118601721930406072029457584754907221804558440781744059570128284045055883954043254844315541738572179619504531452808737641091352230997253037756286959055006730321735516219809756001891297388489633414558605063599298064481513542656065186554721398042977938419655286361777946413833821307926850533932533599240345222725781950964995822460101915291320602106951291390919521200395286805606767780278178216017162330134837008088901966737911585948726149244095181063158334861986681001490444449917974210672406418355097351591885245099602708637465660384458817531027360623152176333823792999683822958730135303015176202723783213029737272430055233205833978489448680196767398836113293982377223155242645873396157302543389757224304765428496941280609800946268336221530535219714123356701700789626692521117737247539957669282480419663676859604840907053168457247677384875887573498652628458980834076729408316492537544037843735777171480973882424416756520278417078154227366980405519610829053996736626000683806998970020422022278565879031598835626045594012489767116872170165462032380703576594164640846937548637351091041261108126138038265029318230149568376481017278294415779045628019594210480899535772430477541390452733066654356967148165027413185899408939762931699809402252973038915387422475299667882187020001551819225198896574471050830491001694791620678091859022251041165213914114889645018667511313337376344702682698979492244060837146155285521241463290038483409305634074662519433653200075812363535968102021986863841695235217909040575172411062396449121630701255706881216488835670848996205456912795602029316101064790009372415035789245096067786653481679582871997493795297933890486675025853796973088597172399172195146296658494562788835647118604996200012736152680031365831566365109111426280509250711130568293431609647689774102590349693913192096360615214487339917319210975129546094704246486199129054655554454928267412163945286421523371458705043305608494999334525479286251850896615178084718170409404317332023481265801575225757683540175347038529581601778683463831298555853326413987953323790240475366278345876490272004405749509987767274121088579240680667358483477359419615691205451086781992903815855500950920527375475652268671331063704218332333376315898954873092546068252939088601236768204697436703890401014207237144220416976426625896849238352691763889819699376845006198630009891218715968426896802877083294484549297065068050142231289168386726088841937087088571451617697929211223120207610719615220860440418450437233209298890055615989665773139955726628485223404974561318933181525414692842638301566379759804219188597981652028167249893487319104687852150402912029019243513742382187956536376364204403119364792052446956292143079656776206969040140796635983021938940109091334776109367624963334338531938723955425476788165306769176016999173180183281192443251790505299274361526397430713773387538424123525052265581344709103592653739912306409055317533080293585839431849788725952351509560258420016017275457560017337014525894287668699197709090891041090120337847330503839992631060515077437832039360507117707428491551587355709462717250645277397791574051844222149098032388586967972605870154022302571155748080108244657631721770528506860421456462677653264989645766187363508918992399031634753515804216505370675164806506060097483951450062350064448588118820856819444961601810513562841104504104559099241869656924402307622861553635549365407387794333613584153673222440730417606235199942059935150942529589644652411626519953710020223808343140126340229131835923752004962979469438901644989967021892479689315605968200663258843508353089283031287383205503370889390103525741691969696429843509639462734546829275305584508867892297470280961248429000352703764984562773330722896018110033340816846478003701920425696541263987922672331277363328161330916423281679627321392392494956403774327936286471946439322714290192662008294511844624161236523971780967548004618232438912307360258842896192801653264772646513123793815951295607317093354440283259775326732082220804557267995908522051905107044247410508978144225179744832849198693270953600327070423088699188521064308405314595977745837399452464072207876522060351815417562533207201443053931008724080428133515807235806862975239285326149244813446436126279494422363854310157968709275034907436418744222069183648320234268475086909504803017516443110838710265758327775293491576629855675737302661736547701067145330461062005889068971764275573442628331064651589320842861335411244882526562787932682901850285633811604198068158861759485868592762099956806975888598952608018390741328144573441778441213090177162381152743545917957732723707092303782350302956018056881415846005985283217686056179933073030780621517733875210197836707821399924611475912610590497154639605047970707492923176354112940061313597257065843397642074711246696678511954720005469728985846640186520731100397266344801253721497161712044485707490019015321346753197498093038175445157229959837527520569313752312643571892485182256847459393497121967437403189983489416928852111694744629891963458934424263488513219371282407426501857251466089358144977696992238098832206520170835816215194810958221148245281999906769082480156835990865935176648616146987410070222297548522517183208947875148181784073650283586937746339544871323233657252848697887927824449088913099263479293542163243307390788853816025330332261133958084066265298217134126702162613759764256522122901823807822898071587528404748802415839545953973634733254322726627874712779414095599160781256360101862145779942070293043127743751329712703493484561420955403845697153141015081540605127018610146893833462259584031329368683183849197843633537221362027954497054528313148806117187049971492594736528354434875105198931568724431243404607613721152418341969900532327277909102734649572515338529333768677921299136670456224286086226670430492215145728140926059807143781773551785594157529432925592831777816063067598091050529485018370389072114382834773730050240933606347242276607275411569547949634146215640040623460055911311278369523569088248909285518593564118481847373172338683176765172054180593500180213651258303947616061515511373291661796601815970413313096474764374344144508486516277568573060581821508722571715551164313510341273885985530710838045693048178702786200629759402529988622800275876262251037999009179990386447542082618040982675751474800000707691028758383975379710698426087441947894405549976259545422392828767785459981324442811457091405451032873070767078723492682353706701958256533353550610682242180298902141958171047027627789478383753631528543437787501962462149515461027790790783004111671964097346215417462673725167573125169971486873427526040621934355064341540143571396169253106743874401748896523518188873560310112281084471898459709590858026772459290712461625167083504357719299961356762903437810346488987842845324508054320430171526028035401955986321391650076321772266036394837255358502697578300685704579422115501696003099078878812464149373780751374678837891507359117192326705707271071096153753533441667933330800750441733514925757327285817807385197993320187121416137539917731570574231379082140334685589031977334266722483625272298555475522797430174694742433944842226075353076664581665866520416536567973522280382212014297074894765984631345495184387915656419644810108512911912623394746720958062444261081907443547468597485014013916073193428455073608802072338307290789256888390235706879546759665429696006173371296827984208888387322617286678767113363552892419032106056195604702409612212884230242926879558737774854890646052326750579722159495925865815452180841328508636497120681262265755510994769639366988559003556574182947713401385054634973860178056560185466251822216527570178110947868628862551170827365278333299777897354454521388674324941910407206362640200954116659241779902320261571955708633087699745093895799338350345806798059281637839664295439366768595558638309172178724734457879710899482054078021956237784621748166572329885731737122193487877442584972930559442706461419803482592837258882346388168068440749606480693791195514537482816220125335956986568194429895758027704962468395255193687564492237136515591386226625044416468288377926596665492199506389318683851065801065291159782230070637526457875384103393758754732632589086995510063653953950883417200099024078446539291995841330023266772293093072880973997617142711163121814289187647879391370680446236215022301413762817984776814837515222992155376081705795401800683397180247892825050825981703026767721620244891623232327378594723868654299188955476706209159042367066598715568622706950879465474305673390909576239339105963892942295095633690861106936881215049083041451768783194958440242080714575886703283839135900973830571216202844273936113970312468937129298598231305022787069109635062539233365990312769893521189776376750764481124265004390149327557213090201186484057347513382139892955055310559795755371361641527780517984497373542174076971604436060649370845841441333736475650932563281696397360454546019552923812615958009172605312168739268141181304269382854356018834549894571242982353136992666450918756237311130097841055368326103905905078579945765677651010848165858996837049493974088668959654795216667539611102717992993114316705065539322703524830106333169919299510572872761872649876206910188024001142204631222726292893883442166944485043384587882139988602400466103750949235667460452088074665034565083409598963094268631570034816354930614137501527746695512487059815556214491735426202314446243859795609983544736096564861817881396630860375673755341678723442551206832120674761634251789358099910874479927551765900099712655503559841410094457836545986651388033802275255007590058370577217315929548361354748140848746842631540971525788201443309707396097688563651835784976416914222193246237442470297407105562462500297511896695883761363058117565247790064444818333937934257900862943844880048949382622651817650587609720895344319646071010747577112742748419014194617006366508720603692165803981095368903052769983111002553151274755658690779577868470290480106914406502984627919825429932731423550370465506026058749795993781048011435402957695798331902438609000660342835095397348948670913216829794565497692462978188505309963104540993445865695593396949611677781709307768761959970080482089580610547950483858317298275406518020269454497258654761899420358820182350802590876029647294899024041354847416031468974885897439254162247092344886892499972405746693423215484398215175110152013998227159583162650801397169639363369015389798032501716919563779497389722049815983244461441816756726835013490935365401232315992814150593725920333668368507641417671063484460363221960518756882931408806712709970957618112255410654286342377991334727270996116785344919179335989448223227034083058021776527476068426668147547994331521103963996779664437269475765267151569510583852500237218863163001268635295688089715129990305147703464894552479652553308364592179564254257894369758679010854799059826760786506023437976349695814481017158940054843245834263069008361548349445880621193708838027853305231035279317223683310352367574808724974138004303921094561488430245313759670844430965233705272359984541564830666058333022123259046527662815679163274094381514547212503875369730791652513334408166931051304586370249279753163075834416174303893373532212179326046348703653460007463958019607561273797372149501355259680177314822643697736859219386281532328685735266815019608318664105842892769641627945653463967249543343604107162784162973015013083076466095323836177917480003915327069243904647547793346000083837890750216253423665078874087644262886154163332854042518743976334411022265330199203230155014590455295790028485453360482632784167469842655774861932813411289624872273492330864920349230920711752907677441031016468200896819058961161027554106294851455858156059429926561980660661958869302382220143607565311056100663138141967704646475428334305362040794275914810903763289465241309579844973282331546255561237371364055537913377656151946575939820207270096717990520967049741770295298070113464801836006566654432921323743322873578105945098759677420199906545613044047485557118752893290460313717017996296540476561692386024999676794242172810319352098792474366817349226015478072114169178778356649643223020864892335361058906539319509819913409479210886049704721117912139170805342784516700838190148965691692719871606770467396102690190409976097830811925755181385827963334526988283902377643334869685182553909108524511684146314783608714300949969120285292526359589426959116401240937750858365380628654869438202627591167613699458604563515479342442238829925545344627302688064410650080126614638152743525426302526204362497105650283281184192637762353481603776545961250105553021880016698250135306722321227257702799639638121114339824330325022280056315463666853712281337679523350001846027522027030781862875819428837862158976145305179819574724673954767833796677755216327475369163081735288264444578350439416085092191313827822762850742534833879480438855480837101315358855143433183677325773075816297419306200580168849338634171311278109057421256660337587959463401046441243522923894889078195656705282722451726273577342709836515828459206434729262310320081659292644291682520695125196691181562750575089861275677428272277212876892773284139446216980482502863155187633792001133574046809618530478732190337733094749986744827505827499042448385721188388961535875557906428335596639826934489175201893353920540233663128348166599804127532809293485985822199489584942073843761729229654192417219610686097570264781632741339437842385957995184463760510205861717213707326187616139585343782382507514578246707872265220903592172516593213705620353616328929523637268628076176390976413965126330975131354639124044254874713388018401227678046224636904768990913798327239053749299696808372267528222274075539706919851722229313819062123257136564162701580066639796315242358333819302735963786277394729923201173140006815713095869876941825375669047419217455960280488604556905591443038730288240548546210360381904107873349024779897689371256907110888241412961528891149897504968226893477421292899656869220118626947858530900671893701883320327190561547545314195680791940871282466263307662217633284970557042772563844969959249650430128642975234361541549017449293958997405877664553420048970941236422949701761520988720362289124685870928041839166319665922651532576810063116817872458943906528298611958065327530657273931821102014002285165794993124200102990570135844784115568572265872528313152195645130347098652849178131954565533297420036289809821445188013403745712290404468567260296590600265996380691820793334101557575014322635797411580279000393613608214566460407627370131963050914044279342818698895762444695811987387494541755058055642789720181867826477268361977399879738199251491607001057376858742649180375107757885739463359316449139713470802675718218031451127587399870365988250427104776833726931950270368139289237886520397775044730182817588193020711033704934446860431560569072481310595293906248254853160883219307417147214935529186230233353311400578367487675043956501745864849488109595280845047037749282915988891876000243275619548484787456237097202358198880407778203474257625389369055920448361280131620857721022699800664416174741580540581230605654301421189752111837478399570062859187492332157731759700073187397741155924630848968662480305816714441124232002738134320407192548193795338970441022179993662554481409418302382292117727990587871230761121760111583931054136808627392090871766677973364620787443305314545029115820290581872987751028526575154768964520203084013577550286210484124879766902437080023193525243982391273703199983041671640600703986176819805238427647612669634668960694021584004640536866525034694290512587272825926929241218105194351514016218732810057586684444106772924005109906292608059429976720023243776257419392174960125467371188803536749394921594813774993906043149668019321674293880915915736775227644146523991707915270260007899276820043411692219725183920459912696195962235072386980419584633461661999255168177621832725600403581009467354467067923173190177354680532035598661667753375581869227632367996917894758919467582368431799558012728719767295392793527537659610753819988435128950167209368464289432479545553704615877687294213903269997125612598842828967445641583876931941069439350925505222779111603345016141996559527018437212489326923043570491576341943968653030388344560985818108149562537738727974992897879563461037838541114956606007090779148686942705266026260406175996324028066234891098507544542981814731692495682215042575619648575123417445168690446482253800725910485758023827942418156559454368505411573836850062509183514954230829537617398109056642991949302654811227404665415239697181821765554852105787658634042566345464710183399776199666852350316737488448870490657019802845518974959606770117612046118940632116428649201407337419614646866095256934619332962825509591931627858073761152802211230462530941208467526698336355245452839869976531245792444237987437349713517997154974594925824546542106568840168133735285401830691060910467423891943640139919281129945282092680096536285770642606053596170698637977654540965646382965537098817382945633690407863054929571133859995057517842099077218427308035776552274477759248232421438038050227234668909504336550407238512434725027458932589772673980006026650107665888199928296978962057663877750581491147489840721596123307636351772434012404078337715528380852667993322810218746228668596690948593027060144042280586490041834274900767414225223711983171124671740775960839449747448656972048538443644156065376336648131475991941308008527854331097573856839088710578570496989089029024778149803108180549049809258231171596170439551919267342800270596862991069351061221321706306673970146164948390241672935072992605006276733663748407589865962625565723234905647160078512915271617737565320362696001480735289835870459683765107986990214797648522529723143931537901295558418854830167679749885443852118849005944658442742613264152804125202538210226820151868113310324578849590828121387395935636969792676597885021336321243895224496265630748602517223754398452376340194398870281187435174534850027271239858759374351526115157126482597594531839082306354419985628014790155505352035018918186050903567292184717620480801821099427382017276856585916082551948653747215999952521573098827240537827878210556884714862802756980124614163294463556307711039954222825525307386294519240406149492506502891404586974018889239010569841883213241681433375456148348745910515932180994739267165052828889898243847802990518232415645573533575555578002554449001841959867279026076694855334762913871499239947731034192383273005461326639171855675813901894266816731261330269098307340381323600934658547107196212482386194614547393164087508695412972682320384414162232285341625939357510442627967036580147578381861625165057836891896912413304635392568685625935663378159041140576975392680684541428781084500470400562380540386985036647541306970607252119927034651730430700328226809298704069021692084307811730300917075982693109886392948329869227089075213717508515875323225222702218054645828695203753926536559975103902980581225363705546881755390941758166544806424203362885668347974152028798153970382734642127106942508558585211227821408889179818906482711403420102799581858744957592310249556924422077890420602837805311353572580988554460078437661277039992525415019487647669587660402205000708701590199585808584232206728748976376401242044086182747768441159799434318379894801139939343072179249607771399327089916570181465111357787889079815838690604522875622594955238610445756290090771548110462412659454498288871361935337842679406118823032238075843688103659687810984806330726176212057395555965434981888260829106836876091997892862578932150028608774873508743332385079488426783649344411041701112890219754993395012510391790421748837261556715957705946878376167132948236169440323611561532096958596556270106101007389431292646124381862160222449110024083680665751573493209642670312387012454733623003859891862534847335521344501230407809589385552162145757733003700467287110093068480351379174979223969585955257987025163501261076415761408103400272352028144026491503363479185183208136273021175097281981884064745871450935072678858419952994512883179776111368900351161415539169237068963083244109896010279402723952255799195344359708836007318800058657728674791231679522524899333035857473234477533527252249070196519808914058154135346447851489735298159880710346962502354388525565476559015664932359669480461053825346391544916469163424003124429477450899528986100683057196517864385178178877651199440046176316613171801902351678809594833607442261517801299174563305824201702184144496707580923064552163655042374293823200576545119730436120056419824207523055354914093659091069892824986925172685363946297966295959220648681865101456159245236199646089634176726023484418888895222605760977442844805823126985574059362630928597005967043138940214152683102562542433273141975870924063764855864477111537405938208933976393411395939278936165504402696233425978578133356134030507150517023061563782320211619237758709965261946647860650939109153495885805201350728669321014000514703319040532119581451495375270860438875304912075186781446910104236016990946058580382855105651200393086137134157639651359733358377194303352858582684191124599649947119248794868201896863545761431154506362257566149535941251944734087161769065222404975956508938714403442568726917716998669345566932997546530019365182214232666615868446717256501902669078173906978401288246770942744012567399463091493037782830275138231293869888689725537320164982484518172749917236889139554928808548414282035099030597519269583505485570347691041402099578659208440440415053416694843930908456498404293392848962818035678986397030442821837839699616324786347210903245986455835913408799431492782393718046680023735281232902408848638642044330450303092442906756124581214254544480161792066159630688717186582822418269388803945299143308371836790569539141062547686302885708721754539379121431972600748938535974732256831693387015380201745920125290462816852675173508577405227494169535067998141135306260532508163996796599277135647203870241997376373315105196269419160811232036487618886238004546988333756966164525317537619895830100237426043134775715553826066516659387981933449887321707073088972486942036166966174078501036826553666575410457394718957531999073527062669285565254090632020180351274053508093931113900447737583927878236336588609564856442079265769071164235728017228595727521989312090511613833781281578695065225332153086972649234939060167353582860583725210190992696982098426730632269179834965383924487635670970526857442957961928764002073222684358486814836356380559246235789715881920953549162461317912171992260220904914669976202327763641021223808041993295653611223759010399516375414411162890967207595665150317767131383216380240724911237744651178898397543219112864278351643500089682372253645346857032522563179595978881938983907610838483024182447815946298818940190365604044726496656802501452930176246265475912831742695773910103567142415506642199576399148388561319451591736983283879529821194521168682872976183776738677490303816353262206101043217875481581539683874849030102348526444470747902431692369935725056601890195636814205336854048172503429644468372581526195146076997053474466305096817027325015033140503264930775500875902830622846624848184134057357289495632065061089621440638738565810955994069471851244669753438272471526090219880345861966397877839018301001320996938295051060704212037951954554051340578999845874258152331852544895277308505067939062347597015871806656117189218103249031203673518965580922464114696159457967769499074709417898023794303708831001611983007117391377850771435452350324855262963577596866812553019069806522244070389664158989674852381725988966647014953516495691005447753863165310826086012842649160009235183757436702759350572479557769460102635675703230410697082428607106468725540720196894586228232307829525351580956383359911638001249434788836499354895366597540427176219061169252588668258794568643922210945845895577720150711331950402815936430441920115202574571352490117798277148534885486687006674261762598188587394806568049383020785006985905202904456049961264447134718556209398808025643987345895238125459004165007141634047754127494581264138987782364812941674602464515520940033529947388709104706663788769079032825074177879161434802800949773096248036307339668841811453269523244134950926875470572307296589990268579245382686465554090928841055355998762361258059128699258262011442277633125946361443367024148370134170296913893393904567778709763990918633062228803327343456145917326780735103523401079872357990016933887905053922948141398931244863138362027728219545097427187356916002424342414061264367334014866734019245618895185229024688113121632881421775174325574266716251142859379729540964992229859476049042842009036341980141921744971691342620423480452754768240256226222167436057264516629018481967157100725037190533201288058751528181389706137891354138382117596378401813749035802245690342807066676824661799903229175995018029275139340478857557245371270282186813334266910772036180195016953100215331738060882490110085226590342726232114501824868938818475348755611073098351196575667016705357137651891576397279989741762980572187422726986284373645529646506840977150305132867852033318014960195387934804021478188125769592985214693718040709093741157703199213985165527104194848977723313008031570666267737593296458580887901282472647250726718289678264825125027875194583126208874570774503360216518122587591816180494436755480408364063345223866118393644924665329135677976289433469271241692817044789286445700387627072554578522089639948140249241063765647989386118219159930253367495158218069180628887113800636052217109986512584258730030763224862653600562127872726451210889461981005784815329653660441919695930075139201894040616329396195476983003260870741187787492148511083378718029627780277693961134328723161044687975451738189009417706102762755438385815693546611691075211927935765364657947911193895001803111668583659530812858359322320272146038333825538158115561516126236061401172224280944435250361729324875341750636304340242254183536106943854919901421840877971884585453362081152142290897937026837739147411562731079817491362281525526161412276116886879094674392076338085288506122103979830370405285512242172879968899417147926612342827991550518830300350845626578250666908151100530669747441622323781250932809123044594435348867636045355884119727173934075040586565904542334096003589132158243348098023277618196620781768494349347752306945126593384164462417149420072130626923094385091998358773664633342170439548946311643434812704308690436145373092587440297923205822641257357477534821928008461476988371735487426641529465302626849307692633446345532256543353434183025262214106063985605039362825270611565202542321013270566489012875177348856047987138002951334137006728595678485570404345137179300463869533346402662765319356194557374420746228665528210727418378777406300308733346777857076144817105214745827488046834438559369271398640987255287170697361417020279542510404591624590654945617180876195832435165825954983208900992310024699458590710243145864718298219558990679925321414912595595605010031250611270673298876906978235147204314594498006732374495536762112125156145847438558447705557753836609233417069016854707580015308610989992979923731354873015094854340140245611895532128000423097230092817169352427068263928357962837025583877449760353111983516791003831224198817964035403526776579830718250709942167871632435999288240119394526885749263255270086107498712316981694025665909775452613405222725958725072302273254002542511694050456729195308284945791271020722385904031370040386474853096856334958265290912446338504750703974630124518397478856882548098654652316686310191695027724808131075926060185071335747143670765677850527794614279054916212753144049158741268789382235706063595422433319083515210400304172720957513510008970486578353533412055349966100249697858996286623180138458780983065566527965602068823221095083673271925276834612385185243770542862174363619356852435154314657514204879160347676287424192485790551208869621181098656998628477679610892967938707248959699058868272272383980183391471218870645288856753062516009572750008322449359885824547406424128347459961931115357476956349120261225822007827439369665685766821848385986587092689691046781922639442066667773627553546953910952470000490113257567375151653576069666224467944047573611821755723330958522853903400550060732751460921601945984351941892402205903166131456970451107239625967098250569054468049368273811063473261358023945403646806013212164582750246272755582300319851947682913429246721355191959438111179879824175171012539928308935162796114118693543195474566532374979090224827801039550239419203732503563177145315169785499686615872895387256123760930526320518813282653574841889009315436207660624123011045705568753572832987499946891051238149885731931838007999394365393261369503580094227287269038957344806998914579696040618917837537989507775388689728036493227959586040055915880579459206918942868132291884128194450538588914846445639237871373530785772685557837916001080845462526599350324251162946815164956588898696263020784214422331579020340716570035569317049017623452596781163608612395675953008698689433892475908158514716001100401375093992890463882028985129094175647285631998058861859376801750997467378658872557997772029012164449271018976964604894000696836775411990617634131104892339350186335663864150647051561212545336677950701897914965622327691024924949147287844223963303275649630114959786959165356475035039872609012194642948590392263830036232180945367427088432061253565392617769379485714618136137333928381827241173295565078494329767360788819703373608919653889642170444481124596406943841087726344597806262017889230038171890338787613400903850482671218557161877766379343298689600245456864499903690577059258259782991149189481351723536069555517170794080605652261151787921293202746925708294210491025846704759242987919116804160328745312432726914901862920982516528214255732714558776968541456722944547731716457436746158659816705075250379315636643899540966372108098739039483080878740588774304189076979017601956594042691336737965856210578011361214212551976550806688293818835223578623527344210097894931380573619388522729927798619839596235693518117019460740495537830490763891786992034553389573078163626199894921692389971053065704477601075122458823873949568054421942915601141439647309934593043749427473276763831642049372467164050120841352294245998014947161034075267607485749613551993861019843446312403510862846650268818830968588931431279769201086347281985262321727847955273435521425481984572639646494711628630624285225985114424441840391619138304267501313136250045083939396514637090894147298907076174301829703115416534042263911120350098855462995172913224615437681148475348385494059298415911720963664644207022696687863072433875752656187813663523680703984335430093250352082164801962683297882983842988419138267402226997597372822432467778623254504564295547651414452563428595142046886582748883676519023154662858703713785787755116105567255506106530890389626141513788716349995240778500323502935969292871677545604053071868533615582350149220038463136263793650505998185998107523815666110998562940374709197744044439998787396647375744694052696972858324799947043462983235553811504873478437097281038038539797735246959177068973536714168210425061504835653185332588259762583070406650211767920339954788059497990894614064027293735846969713579930139541461494013054771546595678414754680193483764302627195044320172081961986963786546932941745450310042540543597319702436722437287234646596558458651530813570048529143187001162961546457515100750083980016876395321913916537945351493740067518982226548588722457535623152049181136631217567459532175408404234583523490837513389219187136967255429449855967855379960067188187668920614550276965953321442604623948034207458203613501221136000804873038933539754710076340466791887307197772623731490211252978327884224460915421458805441333513351114349168813712532076745921301938837798027717976651810350554643633603366182740750205525659462465945014819732271739960816246684070988397202641255278902909092434249131932429675253975606087017259692219672193830560831987634523105097099072380047478367153941942628708933461777196276073391729245861565253460309624914089472147461139123024108956295699367282498257672647556524936732313624622485268808585229969656715379073421071771449161761510565689140895221272194836423555126443937695082150830587455877865581823879174258999107764428844055304144900126188901874762768104664034815421786249071683027812504259146503763671901833545505516229371044318417273197250832703710716914380791491476825563142659964119513663854443431562750085848144913074914695988733884466055416738747466750506375214802705303990481029417091672843269235133718253792617047288880441203011262016873486657996511231027573336052782317362179310905847409525873928799861092517268183985577779884574077272182903735560658567054323689425745717426390951028920092166942035320469436630579598313960080332299160576155864560373076196734954201845465164085477935631287430768707064729951770229904630687521459278846415763494182291948423622739210669170129997162508262170545058996616669288175814747071599504773998588531698677564279230822715276298093471410718297892433986509512012465941404443397021511123018692603057397668573612362185122944439895710672779434038845244957150358925000230152751145949725312373416551909842781122813256307956070643949204760415221168227298832253524320130967774584700107398314450462082942409897414104082224659654869608566904601966090670217575442933186529260068091699320657071536426833973017440598120151770458992539464614660224610254398475743058378471970838332328142945541088932985545282072800011908968733616054599354395713287236670663417716813003533127428606757811366442248770279471589964398971732459995874850836829557238459793807379606357928768678285008982347399085317613882080959141329439080289107170479530671821713231857202622290573082093610417187359880086052538795412702842056609653832391056710981263163864829115859631665723260180274907692608499141188748206488223961138063930380640231518955803127403411234156501961999651684367905455369989862073705083834577627649235220529947665957854068624479994819875110637921339523812397093152748688949308759212844493219014985759780323720744039380776470628771827760863442673721691289348466588795003362064717496814677841649024997238013014647190835852265734778378036602105221934773790980759935536559485932036721569572666271985115307450875051147245700011984524387287530642106995695331130546998511940685900623926856023365799704190982922140322905627467131719760016636445508555780289345055987809434706193035665754092697674526791037858334940439473508942685246672791204898540408544016095372048019062161354832713186510952838962604442390713144667660749300467717015389589570556831163039804026385609470909728473270743976026962276525122441176178625307025413381389208496001881241428501548584134071668729071613823214452545912939836215510886563424035008272182923276343321316336503098628857210708188297250850713965489622083442653744084927585268487663591877881377022736823679628049393827854737105391775333217889931767721587447892662650968177282936662363679185880250823239484127182368807915430436443128806257143876704953215902028529489182327830820478898645293853686408465291032997039935995465380962838733205239891350913759507691484894449142755584064214535637079215507024892139778918004425672368372077605162167102704849053729651215394868491100666468819091836199230787838729024171901616513357994318489837380237790733436312885081021371333889951227246654063538927929181877431156970475276294810779992616920904628376328527013801015181830624685671688291570838401713914744299386292172866363140672781643903798814761533918763558652843839999735120141854442259023332839189261863159910266175514469505883120281011406798384193336695855566953350547603958751362397715275539167458434356710410353467701506757160775205793543006176191922643813975602572832960942593816652180842588621381227569280739177574363712324001484859221763578324447623124293006228268737241098262457198828524357650946410421814605942547252711921838907033367359662971377294213150490273215530335543551378014333508967202750147604593247386367306598479137514912742085895644509208040105513003929000888151386403955828516996761543951137701931718322910884944982806268268782796900153440237660368563037475075099281450312440085591666961428872194853901752368046300376791357167068541884818656172904972313516739365675033994274889899715407526720824749426057170393481503296127048559091194650669796777415580284306241724383150423195747947051793736870849628764774385877087460412106559040681983223724752218599928223201964428138441642017739258536864006133481181875267296421069055303238056416283530712171383776418971462951155073972580297739799687582532622374635782022068226983099352148033923101222908562711183597789982544196704995426744727787765080935984160034726603300147932661661541080265772801727207598228156370262003508819391355276024210862690721147903093181511926966613336900014958015702327139621146944574940800232907918140366878607821750589072461995444123170433738119607612539257144587522709909447994700634780999019561109728597982827880263683773306615748931738586393420874166572365791495157204431907567971606762006313686505952634984853920579354296135808952711089500278092023722779605196446535584184550119641914636027791630918635627915655322628922572078303583969197664328869949686552564701502732007144932240802644417670145460065964853716403037279088718228591008926852261691141865611240772896270964368259318371114700405565646795104031227494250494698033411803352403376492783132294301589101165835565883497034476606097521839377929631240216187104203487107979478910116855944519865662116554444121706371501270570602827525585582299117776145064453595656806729865812526521822427193362658016367306224353505356347904062325804015143124681176850405087435185000297837824014189317415751260448119183311170731726346846251000014345461545916646680807416578726451961061817177844897968866593753589609030222405471495303110934914170748270178024828522169436928812374622994983508251836563227776061270814238757923743970638234829607982824521456448166892780887168980385141418519908686119785855806479611480956905307178439547710020161758771375180668071883553070149631989860728376097519542670779266523380803983954124147156583427547857268774350969268635334722252161864956641782673312549552894693044246062051715285729124127626099664278150419951682126921965497675811376784391381454995026001670834167080126367211978525157689452807247978088419466486009596054198728373990186781932662869657411701721754875577299432628845811742521315576020829554146010943053674233282175647711142944741778647259244811979255948445919577526134774426662736587227990854069889930695415599585914455731773865395848805787434148963900682780359255067459017210477334163455737795506099091776952384236325201455296753173337768801984737106837126142186522117424918761990846250288638966232134315893971472377056373462581377690784496706436743706158630966468177836616399646969945458683555503565177743161962605454705143362076986362694457181719072434237062752715955758967289500878990962721882273702947742767675376569555541084852248512535156293922402838747650010958164668458433907833470328820005685272428236570134659173538798850959024851902863828525924802045176549464226308682439770477172342882022795449679303431921758198058340805039478729096798144588238497964976905254957733631798255315208787382610357204711669536682541468226992432968160744579037980165435007477165762861061266057817442026891814844836345072746184929149448055379710428039112953557666682381604384414992563087677759009010254958692981054339997114762514770809909736213439591541438766319163382620351080428503147040962792598740971695060569007179360768684485998653054713065018996920081816624298787220330083416431419302152947471079590579602865276619562844132263835824606385180161060867336857549220250566935889542661506768693593573129822245376517542576007014130910031871419903523630656791732240391102554275598907795702226842997089735321459278341938302342303042812709978272651880971832355539634591419965579075391400644526365798645039077028829363063540696344063152831940794895206452809541882756960597262973334032509265229302903805910426745271469329663407751420621015094196897718710386988845714259418174663880550738126248749228432258721221851385211637092213347167279110968190580006036309048969513796353517271087762961950893326018414722542234025538120034029881417648203554929020473295227787830849049367912531097224493987543762294653508875262503780298620201619769550201651662421800460277755036747480634457668616664729829551683195973021119471587842987749825416686767316573190179216691788586190474305085166249901873823571336046873429861357317679189839629263766688323820042273438671859847776609150185328424116235607271743745683883754450724539677776053807983809304376915208831050249814447211948571212642106040056588567649770572384468424938548104171444234776773435021989710236423102539149421823110315218056952419053613805772718853969791357448958076599172248187196300823300419740912263277003960349627393987864774100382145779139496015464517631135001873009885406281190100375609294908254162367687602922382059788473672670978119803317579555330749124899054851157386919770390551687987488965373512962039350259724674421488013888354645496275395530436643608156177894628523072111368750080840408885441055263342246342160668507905205258432750550391122368558553518212720794696498314809371138345585923014602714505556007365305091175582867830361424450700630741076566631417008063960621645368986199827973864307594354879944066387632889091591911772023817442527078779301510780856742600956558401199429343197635191103544363613824041137616363144146880339393974767702617619473341579132551578946496606756091925970332950771928350305723172285298101135528407196513733700357637315850572062510987331599914363479500451606549509825601901393413038065221170458124097332896082040996809220715256138516788812545439616464509351798224373240978213515950951032079113958968318383418633754200073680670754390020021165946327422344076944940250463044634753377958207339541680238241110465428639814880569224518307230667223454515114096878861664015225350714042294807655505460726452806991331079588565568157963930285289200676685688638104164845674662793149228080507396119769465836477937779407951694807758082427742152284350885476876581848854845747158369526177600296767259553160964569829749534957856607577336185384238317243907285663540520622449115004734196312147807279246973129759020946249447092120591870670574256381408268349168161242025529149555384914776592121118124227636933871139146566558065955887130507476107038756307391599157437469527460340131164240133614262185926485210761797782788392098834496738400586377997294020857889305733494025266812682518105088014513653863145806501974411817433899823202565772702585510248253649027329064429335906708544789005163350712739151929728742736806803076525666868183010033482655833190489582642025437299819922632038336458401499282482289145469765182520236279256773670949128112781603910092218729615548544941373843078501835295799162180182234836459339435708786485376807667231887273884999175994720060839923629108614936365018021004638279253412368681519721847602899584547277748292826389592577541500720659855111422186957473320126766546431210169120851488197997511993763035824454811432221438843825229484811053926560647858241336485098559984211008607324149313362331849888229494076956132014034119172055780874322707286280139195195746547296070750313539994143122507600752648787294946426102168172041126576645162017627515602759677032690873954043442328673368859217236919054400834473542463338189486864514479956521742762943903836445165182564083773927789422969253427545242526330101787316822917313035222738674769393015154710059966279872242884506486598414137010038333105276481257024800501811663337567984730130790751340218011719076426524069696605605024378913189240983426859453308413176349719384825315219495875827079128780667722943633581386543162791431768432616874379318805638205671925627639775153818156341041561359924557115936751847599342330538294885345396699169501013539561945342454356096816530564009866117397087222984905004122874121998345436237838111519609999636206571032392716196390426125612676556409393448551410094077929876352619182014987948320923623089781276527231323143437490946293359851142284265323420715452213255657776355905905019389764530299670213864898155393892652412626285607987368862787534215702833980534245758437074766922197667701201247260904096402910461059799422263204109799635876387994736713862633488573384118611865531320610087924561368341250289631585864023959088218974475312142254260966069149060365584520125680091746143659129059084662661678786047938102495165892386329327201818071249343019668461755998683596217894102858140930706979143377880009740378842210933630964125151595999818878402402571862652525175306278954870538973784107781351498502662084763788977610005654253464850632687367399481251395982858961514608098801928372177883992615350022019851063187237588553038890698740895197338158377638726679636768496503491778090597376220206789540999543005951731360910560977402489898369858394477392710065780786147795257330192611752440024486898510820818287347158283421132875796824018195826595518598563206803688517350989663760029633326471494206687735154803844506012102251378772919027357554621209234319877385920140527910573016497804735247538654495139790608817846380700265256499370165314280812390644541026391071952343836554853154228237910751118618580227406078368771729184536802869762197659028257448462209477704248696820477657949046386478585528572307126670045336996245937960776835465483236633987767612405972512334451462922536786883286157659349993533006625594288741826321977961099239230711900270742984200470896316816476651483206976627648912876213982966160931388956556473861378198199473907928889345918505827311141236494442194722832200036703406430799175091257176555648355864372712417701791067225414985572997157911604627398842897921570528071018376732908019470389974157184679119142646460709574196556027508337163662839930435501671153965811345095928277426666952026289843897596048889136717230685924293858834473834177048876301580363191335584596940035686386619286765319651383088917913424139527454621601951357656786291658192058478427236235801973637081030088557294118295947384929884509147728271217413286479214095838677527027592938579973400572813627445145288195309659038895095915133178722473406909892461546354364482955828814527730091393631257364230863354413584822876037351618254671725030511383216670879750852302706112131249016600802308503078269696875704710270566505014703323564535817090375041244941755280334417369408279377041435194711405608375336250293539461852312056623707320347741653513380725134435784453774219262476130172126161279567352726358728609947711546835990274036238401027062034027567864332659903811470765310337444672664501981483708377310360612195014184945479295499341956027731745710114730411085756420370360374275360264149350274953928571218705212725920747006762984843785175741365046697744416087513067853827836929974772113674462866764918556627244910668855936746607822156876172407083768208150291464186740636398636858011174091744490358376800859244225797881191581997486795673462264585122592294822493807606164055069569046410414287495466046784025828652699813688801100921532191587965862556279231235224826707883001641658325492996540775437561829739065757475386271877849014633826670464994684696401132458827298153646940899329285881323957985105873050866844501920526977929032559987571207549591805266135806601272648384383490876596023449503907725000563906720810039349897288345789254114374887702606553210274974798405106042780738078628857485858101984783591612832142761869108643283293886326416931004827288961865538649209440873612015202876785933240577316001644069886812930298589818140135475151096561556540092053132687696807193215811205341919465608138056920470332132071193696908999332063406981822612239631694023555366152322306322309389051762844893139414508179680203759527826880995576144849422883640396834274539633291038711596318993362293505539567126108640044685009730296025603646624452033511808531958840513710868324289571466474612682531593129592245662012746316913810538326384419941162759607372226043101259670361293207914151527858031598101954180817224364868601242335412333386871075711410139699873252437097754149023996066301974902250744569530268771798342585270319458903981683016061985656520174477888740969271688760669427275057649774057418339268284663842276175771346698889676106225349817962321367446803440403096605630874795281340117213687910760431251157240582356562425773519732634342955965354145797213879680489210435511545459597595160271730172159289368840960409470172055113435619655059098882461081085022928529675083993361840062720671288244665720383978008400735266555076951363514798674855797730774830108815981798506358792102627518331566634050068345885210455891225609688642084050628065440774647943116339517851015872977939879230378796303659624600408389281840372190028705751549518431167887483498929108787436652693978795863449112898053719526760334174070781132956583994214639092429378597357780830487514592776998369479726748847309629209955511049062576120978562572068118771024880087889511547601918060156946746201014825785988356867248263213146135114372003235388868340700837660189274384279739108741291792051204362808391757414725001500444016301319774704022966088426934329472570553292661461596034626642847315814541113818570064610830514270109972233792689744889864913234709820526744565740815146992349058536316332691408410867048301899804121891502165669738811338377051307276232487906883758608666118731620792825025062131357845161211333723453212527289744125484276269758855170116190112830632010058281805507851274480148207420215573487674532955556119924741797369132153628278710635119817061232249954763094082330469546226773817867822182137920195237567261783226281846724690944229840173678249930845727026727631064316038408199490204931010188202192066720230895181380869456402791350221921669778685053782968070929340678462487968272355313660104683389929477721880228965388483976565909369776919636695653324152402990573256172221753854262097522231518822425562606433855788977516578870349004922843828108160471223143535463629456390986234520113027412451680087227575779078764816452127324327959616841894387880795046628624527547445044808497121938144795848097943482086857716697722481173804806138404881421367900121122336263983144688203320943579791013018229147454723199383110054856313467370350463995319302892959502977676462616381078776041470664923180695116453794220239229885041817511475091731076053811943162725090078215435252787162607762683349540419357555982478626566040708217333539688458984089817346744930063127777444442861345895674008523786781855285919796431085958237813971166147528471251145027831670732207921558634201977800184335185265184135370204913080049762466924991112814145967456445238797237971243892026891834136420644489171375524450635231406645163763758820328425963404310614253150479429647115636299473589375435743722233669694289237801638437581372161025556254104666530866515479870612429151661737074756943973636173425117736700580315471522324066018766969490405601669043357308559298901245917887883586425425123047618725534350308719972372922798104584365334570427521381322384097152558304752665805919842613462342235332566140398793880962506043235522549316100652428105792491351114890641399633498757348273085256010053003952091546726622779493254759647664196073888838676175099662350558017140538221253475771775259094578079255274824740611607349921092373711188971058124028727340897917443684968758131487115247312155734327192022697087600897088899522428532101031689404350227719080192260675354181394699907502539225056266929266731105383146837169846043134986754397616885342678552502010855991682929241654391477981441607305081822090309220888028539421336297455544198242176076343612913145593586761421241448931302298701066539498207003534702588408010540726213791971305690647861132764189419809103202502413313039883678765155630506958127017515931798728080971329375328528746738037122584164490511128454208298145395236805049295348221184822784504402237134621666368230008618310204972274216026298528709992281791771824233780044732502589262999195077589804030018047956081251753241629453170141030053555496399695635636576165683662093475197219775104688955744569740069735347354916740970348782944846258660933426402027397324736207989490924744216500531401777634552160332848207403713140433569938071283778379550899876629123631442524167301657569267020432305575730272095536837149016361523149842519958403591613581411856317635391764709508445136973760711112342873837880870516503902145275978874751414169773205778841709652304404691449798551711470233218368316009329622549047553521101474970124899213358446339030842992953259735222881210218681581532627578534312297542059801623669754205686889356412796562809473592777640614280812730720142272474243878124741840397207047779521604848995153223470486170499556506994287982810401171551731459343405314645313482738413374901385437463403065755237852514598166207706737773689739708905284026194708409356332218536452994420813109942915440442798096647347184083156247201944767878308019494762207316826838482369664873090746030780106292502582084711047906911139762065482584260325099198246975250249376514183883092588371879316821168251619576910783845445194515892550987982773549597696274862883940314663756199490500763905614558336753209085474372246061445746418002502012675669412370559287481613739567137299633940613991105284582948872981694279327266211718618450203384326766195675549836906526249466817376721937317638532002873816672512539782483624730442723483836112369232444022725066846058039205882658264038192799755925429914597201750383979694626799271794787430071293314272554394242763275579131014277000078485109831501619028344419365153934664439437179581025967679649316469678579654208342787472318804008107292799929837062460356888127925060132088224100541363023531444872929018880570885253431300779187291407319415760746585308694068372742095171472530389434527990980952326295021830625790910133428184110248972421762670454607272017953968680553330404303542951405957983280142299923951699992332587935233031312226145015122218293640033640913901661083325689336375823610466111377178460348709236017808167579290961857769834440519789984976033604830661253878308610420957930490302185641380700029731779238003790392988869196149438411365138099625379426512950671822047725176505399646932889895289564961975116736566278177541476003725451859970197722765544543014747892587836025428539590122456245687427911367988532035398685938165417879825646649961491088238388565296467553601674530114549778630786775083966546189279022808568568361236209352716215951353597809735449473214097740546494820895133810781899551236080872864686698172175123941737774583033800820014763101624248777056084104241676271294776996746343707141170107773884076100709105790038286414814884510931949045056185904869889221489427603458122185542399757240004495544432225311623965639118195491109462049077206096427736737924047496572437461151381975135792407210586114940669452459354563595740878793438134637838247790142629648983570468142048563987352917395884316684549477933879515520740184453426227174054838161198027458331954165840401939556161610548831572973022450460910260713296007554137734590743764749330253485281668590445173232023259282746375875999228282689683855867613720031530347163860273488423902089144716414025513741865796836163579969675471410761662312832103519694403824188442246610822966323938829460716882769805837453222243537509349581145583139526522312554995502797927083640391417302790077398262441127849613818266070453037726417896353338091566943574995256594288198239948547447667786278858308509997630408856308422492818135542621794817214088092584334438166806028794555116366749906924327745818870620124267073309153059532584361987713338865510963766639866406702581628429434321932296755594980917006482842568206135685997224261618231679447791769601364438333988859484824997373484386546630195294353943743886838513405640804397467722191598195994314548617168609170117646810500463150848736883205793582068064780647626145616222235136086593152232441330025455694528324689141416534178861427453118822217548329247938833424507005914534185791789170488793547792017827482102460066456947761074995387027655120906679227785321292774764606498763332320230212358837008498791606965151588311837276492769837282333562193960328237033118426503023070195673746057686926102518140140030770685956474897057345073957673511999992718489311739320821426438959587847268035845397580347004191364283420693358146813503455194579407332979708251813051363362318271846057456328853512779214856735084392304628037794326466371233051046096436862346534141696026620723389024374180481185267756736995012427518049053557190331430679627080653694431188603303078352743444614284132952848084484843923052956622182024982347622812363364547198213130399381870356293377296865139084209198581467622273847974175127748984727284214499945689307038154226111619008922733654691383687565865367567836111210740984632065653407467215960816056344512755366530909007203452315709103235316914100685554510620363583399310504691018368654408931270667309614327432001174364159143934350503248210235002848380641665980976064917871018389051035060941208612742416183313647641025490671683718371088916663999909544192244192536546721211958877816046120324445231622289426007780799610884241303432586501642846726267044064131159974732621266694759805454499964555436163502630803396976844420216493384960379914470256919601042482677009929890021247819199538358404070623197717909715068740454676070027273706531175013768288318048338616765598683733706883602388002938032117987155006183686647547426853830560133320800062197244771416793780586166553507213802099042767380211185489515900481554444643146702486993563079709324839553325786685848489555599580286961395121170734179295224928497297116978938357542861055873550360145250524054421936461298683309533200880345785837589306889798346703125790975190531237163773913980005624170753693858686630406771597485519771975982415160092589294490838291205386785876743981305442143212342089693523412379945126314124873963752736949654227511320043311017528529513600492643074923938035844781856210523610651136064418971107129054678693826366998556952150395630683686471749511049114066405286182209757489852053018612514823457125802184618476873039190340512650694521048561837723826801019390181805209681582900014502232406659857557730189608019060625404805367849500400460691508249106069481088754459126803097745379859976900584687260207566906429620271129168816508379260665396706005668668992914427196243109751356133134917864395708411703294418757043278300464417954914785624576864155202431814488965492035321738864036315362147719651025878760122492661779528569281920453757982918137502427256407666051553465524896373161845813269246698769306432432766482472591078838841668198901473321067861158705835713831194795844308222410394956206425097373737973550668642485888569619803351696066082233798921383111220227193823029215079084974113591466731518591236304163661319429663642071518087967886583245574220479407721248949324545631816258134847425038306974505455848551281224765055772990489337599597324961339535742050807059302576395889446601205486552632560130032509608035037212512170535229164494551783529172518391160706570399903374074064395440108770911662301772228089264169828523595947186625115470013189280400189278384136026199972854480548989775953543631738880630284101648932628776034643094835276709530861372453938922978189423115125395301596510164046141132719861157106950705540645816780693981515558904814761441323164659465327852049155340663018171150134193391520485798623939226674096672295234713346403269366841340708747253946591898272277715873680521544242863206254365319109478415805142672970827979080426713165687300654670290080460858682520334434432782609228600531729966410541585244869437124957898400538631868047200901395148212048353171729806173915629736550816973741969403890548470928351236597578373584907486014669542992870909290686498832094042620261114251766162065963612934984766855326610234795896739778480249439365490239661839062541520879145908708398311602342866203966080156344688855449619108254188781694130194650626648280716699525747529711190682606250381840123426349652498789974162553472073043062823581505418889583171558456958567573363417515159173130017046393016124597394283230169993379585013793495345862751920806335211744144324128381166040568177724492973302132498764135312869856390528120969883830887707021586960643622842403742942195805740732692219093039152991745326607750898969667054934545806345236979308302637698168722460141749674859128679194867039702290092496845348452593993456349231429517250896590813428365471187589630183398301922076448299285526642940569347246332659375933678999554481221526276434873244316898571640966557595023894849807998830987389379277497903834914939384457069783713715771479644934126616994244655603887317494887807577546818308977931345647672537501823937372666089088012522140753422161738822583709436877446762924924302866388957232935187876812166881186535691679354952576086835300427205967464047234833461609763265698711779779016155210529905540878990345577344292335832006001031549553800921632699625213036697879830743307119358140815511294648162991708185637974014682301615117245392018159536279569052107742849105817407156091258204155004495283650947648179121269761239144344563849231405015726386056286012550198504273994443986183119839049855006386193998963138812563864070703991026316707192225548588197700113647279217389458535058018853208481717718996591748558244008161639697644770340046431491864429121945540209496788357501041686254180664203638138294139571589152778385994438804686754408431184854594708886120806972758611594636219147310448613234257900352616555358531860835177674283397415756983191174148415222853713498127730532245773207263226204776034016384036980397723799775302529451339943979228950968955039098692766627520167937022752476775492999206067417999526444256576308964617175347152550867490216548816548343664821217030339300037756675180557329845592113687721980509487520838430819102219500048745137446305154280791085393495852680066579163819171353836439138471491205203495391054970028416615193872933385598886207579386070270623484639082253441642617307747157339988356433585544125283841049107641367601831885169432673797168748349660946747472691395140702590536565127937043522618801012961911710967102679521540560047274905322394140880677393991087193028228984019480316772253752088023215774374729833817586629946348546909352096516805994336719385047296125811413926078140110388488638913914231296172167086160321877581100559511334721404338641183852049185537662305273923900063790683603064423217201077722069152139453121322523535665451132001507364526534561611723730084257784048721014062243688288833380792707390635892053080174005689396042686266352454337847629379006019295858124809182698937025475588489376916673746586533509786120694357677621020531221477535391498414259561213258078539994507856199873145623588675165968945479046189932138152467975016263459778249226645808314771562711266402394311182140293980084324818503347029986872743920636292084769849043530193396881594340425667451664618877648345469478145383154341891538123077238024219354999854035656991527134237140838018209544712082151415318996631345313443317955685803721656218514553059721347454502882216460192714352015486876734651167750411712099119569320817900359321559085828610048250496082909327429628604062344486355853452903843246468555190712152796123692712931747824832275736630472409507386683299582039884946093354576940870415901427486159337834540511283242106772456100609620772590025143931044634424170820068768603960763197670299121938434790016585879029542188951370384131786475521582094025876429596054546319908937003752357621930980812683724337919694199781871773126007843673660649839274786511971489825578119124290822290791171837937871401533025789110435816922974694709312804483145344855120433289642168805683443470423074857994530021941379719638874243200254097225158455556568512539082414570176121415253269857916916490471741930592237873938257404502650548855757290855705821052840559981034604048275959977887802541010849785792350389330605354203698731017324251602314268269728003373076077964940694392728480010653934612058634300072747940767771524106755546290285914634948855715179902066217559439197824966662247388207743390233214027619731873717973378028354507924686721129177540448770615141836312364496041611485968962849888102849855047886092785885198270005637772024216844684572659300239707835188579044533992581655972101533528637073664023999628278293487214177891723993971305652306866678666839506641063219735236352170111597888360885190292177864317098032335225042193531242938016387704232773428829866527093624101420016557287615644389519515769269545121047301781503703583650609884308771299306179381773642225311960190437161485055132193934174225031251881206817996632078611568530162502858202897992078247728702821853251459119935866531514590855346854570396246337000579933688241011358705431909503950494427270946702837514464939334866411688186052235725190241251096082664017563433602669561825688537998203060206613983614920361608382550918050646615179412915886062286702844515570211078159066851721238281319655218885182652437118367918543537916412250226900117595305379644997861355671103677655994501373387433094291553595709004607579808748447759627367021987292823191408028026384105272353800191252125535683426235152408563243632354198158110107574009734535838865907202974529558003492256309183338883333186040135398094165829622437450848027741600569561564173623751690022175801232747966188661097581698345602533775802627972495067928780916113689438080411939014506800405499809746195942714083348272056210279324906265633741663148104060718351552222895637223718028525991870670860043147511310427793352984724601765417733788070711638504666951759567964955239886812349906983850833961946529121570592289129949673197848175953757866552896475270436662585500135543246225208059010224970792828140234581090589234112339144784556407546478698714901701280747478547765148659382167052239545407549927334291670867808482805419372446937346790400124062783561685485600362533483259845506002051565486505601176868330827680672007896300112621323318160378275948430683000613089321080850306980707689561521166563301195184204930060578305125993269481511402485914181598149277432780798673979348996304563629126779677632620122060540969069846491098294984450079841398280718196886316505638054056642815486098968342492282300807191704096471659148578873688399028510433197181305607047936477890491660409787974493922719865236062955030213958360007258941840728319435606196408699517192656314314065490372344944487358876106926736760535235688316630972223206617676258856442986874382469031946180753529578280757844938495711566809136884425219799796672248343350575761275534012523147665560883563776529901367602058434135942295372795051627664249566713960587264841750575378010203681724675898871627178190594081412471141477582704950987575479198683013363344963444448896615988314534865083742110885348632363776207105108667633871463578763912127590097562621354531850331686346209164075857009039200263101867842917893777139028136019542008571087686412822520015391853731231910266873955952117608943945130991451942129611367267767315453289550840091677860774213662125155495880508204869277408417943385442384611822758061593280380725876461634534949308608430022387662250293969187913261362684573138108681566371977637259532162834129736661330853460520885407467900173912113912178648469086560889426170645730211986736171628289444818585789738338815862509172971530092724579092231156363864219288611085203235981238972432969106417318231110474833248546695168115840889435833649735515349918128511926904909843467804636976711675708883693928334990544211541692499156450304537774311332033922903293842416884488446926680092211928564283851460566235296976603941556287385688691544297075878245712191499329335467717795491601012411210387564809005344043614278708396244109827600730285590067542746431000499794206989293971852628182144140177099751803284343457593326191866472372237426808388327547453835658888993386921014162395693780929565339954477380305199220882723502941078689624950211734560867375147035982541099026633430530303980893224079142443547535474526700272207995802164604771359985826171360773088956374180189338564685682895733009624945266639351564964221712627807798361000867567209780038990696471608189853752242414598574739082965859090101929196974459277691480852081260426491372570485378528648627103053967146504228665358902618740170988910595966600893244625458523756511336069388000000707658016702219991483808026859136624469003477431824223467564503400872821679090037407840159235249575988116705493008384950041344088075130532840069548536527802948753810514908713846437388786401170809334039291753840318212695394504128683715103431530167615693195560809474926513071818768607586597175749461029432242457358957773714092198491032629470307167960700869986629651520229146808686420508039767339735939028552862261718760936409104704475526040608115700013792019652682861677786113010769151394321871975004895628518432056064987261539050682530114191781804175332749804273614209253116983511343484501680069707934668392900306869083193718895235604556738321502917742228538418919519276030451378595151355872324530195550461777075752882016595619103508810472865121432103913827808969511378554903451934012290182757702457422385768570440254449310559992726986856713007578758175373489357049823209876452414565795203842797132128973258029957076995499786497420778213162958236121152996958709574413120474737802358123487533946475464724073646415458948687681202439319596488530988701473416140638588710147371008532702772180346687412251837497221012214190148728837251810955710902167953420269334660586520513447730770997069801484513986581891098292727428027861370332091290221636644989155202082714837667780134997088249536503866172678501526926240644287477344559517119940385635046196820587507588988471952227050927922061833525455629975474663751166093886096140935188799541999154311452441239000872668227656370823326037485238999566323967669675657269436228707679805221290061281511006700287106559666099887413707654495605000401608155900347421994453375583897902720483122877471225753434480005937624070790120490517879327724561798836788140303891589895103922751267911393702422049763667049273866233744810304068248220807979191239927909190219973319369225219621824936590541011966780525190114531183025838804984065287165767635234315006757643528336686333088334478845188291926497499980238416478225780911202990467416514784960247962957901299922625148721363395738408990608218166326717567581519676932321329453328671696066835791296211411392521659095673801229198186204978650784856889480567974858053825572430713045497487222638970690335859893902686904509499479334898887608114904606738515491633348284294835687140549228494076111399433850046682375114672153544021855884066760001260559299920315449446967205979684227658635970919900149271006724386456134538398328322248993865390092240169228465940412907402417359440694650796543174016231839318178899392292744214763815341261526303806654145529889566169529261281825787401537493265280861794128781998192850148244555539333276528225512666879167313438302910469887170546025697172522288141873461319736084606335265427088098476951213200750247491930682782928101414797058962998719602958382150063722827612382197047067393310588840635717868937371073898196414645960187516787702808904650237459225947648205339606704958927733723017611220497095794349237803989483942915428917425159640347161164021032420073491427546312696002866421588994976064764674973233253738373227974583499123696986353495579906233387313384747665478349641114377093076051114700776243650454100084963033650547346810649939229745571902207777941874954550772042714739847131830453771073506132492630971063077359752694215714269858394414938054187820172408319839616138688049334486169244757962854607750761825276152847596320276675005713638408987599918917583799134420133290490525306434685231334068303113311764167425499288220447601742589008983064472068954259356977430452397613123191344295194668089053558642772203704535592751917288593818579736353460727742892088817907141789475434412726240534476707060150550386773131120424981148031600331137377378618063294356030857331603493715498287325551144604709814410879010013357092352834433198208711119392511430009302714020979190824371419875917055849913336184772682670711132523697869748207188889778260921017012160173588697654623075749624278446994730800125432811531017865987028476038939664575912265824039213926992688951515190066012582437809835863142794462960992608959731641480071283955697518680522968678616751399133076630729102581290996518952789463098678491405512926104886444897416972375111763774103647769449160273623648130883217194323725963596600782096407231292797648657184460982485516380863973688240531664844146037992280607259552690365299620915521669849130790160670051815338783241082775777710735743278743069894263481331334317724251313502803697401579836591426551864819434890859350097692463013545496853720260283367799229414243672203852672367930677348136302866233808864534379835090648992184642329869383860673458177429037939569868683061511288505169359433294585739985023157371359081962353913165368007196167359390328706592108126237069148317739493967536183208220197285641198335924890985503988446169518699848477687516182858601959442569565775776138252796680926419827573235735253747724159446684220719920646349462076179157812554621473952346642182144029416843240561871402551879726920960022033430583148856078883329879398287745051857248408411308950597260328295866539551521199729251780789005677875460448649659377797473494120987154332517195534737030274965028551734139643688529159504002777465147047196044496100575140772759226215086222984620155781861075143935661614749718845696177221792685166464235028206515289939320530655290348951276112125812275726943206450959528698685845356428898847078100336883109649964539234420580977197921333380579090958796739231291782507207273981572940585114191715162345707851539757844512276187380143120810708211369460111872528598031604706847665967066355066307651826851221936918766127902878233790143190910602061024059542018600725695122969359427100290103012581430124228589317930037880297129965741459788022222465110227365219254282349754701824498725854478696388438684201363076773537750515494973898049679945832663232976356588065046659106693322797497686281839639101750418053149544852732676797141244705348695014443516376988532025394654808732206202403784010914193590719410856306160605845649969298147763756047452897280569564056086785552013552886306406391103459288494329016004570511355643798791417246043526266102085145340605049438471900467720736242847285859525541776594654828861675309893611602868087109847437858255863737319017150451925460968870511447723859053541656319452940118705865040968680531009959499208117677025495356903077402249326697689413930337873202937513548521327901157764572305828428932730451270311388045014823594709807796362146005030062030659410370264196979909681213803709508702275355171300648036717678567580880006669641198943393588029679360461818453794511857827643505393163017545075739089658151312840799653332759492556710896098662288889918624057902644369778024715700581933251623815718409812288239441567155009033411050076698685520687495660416741935935401913255166615710575690929636520731334734740821850806895422022697830869709568003981079362649675833225062398506480425629936809118965890465929828861906208786203429174326523654798999868834583679413578421601027563921449966835772125076330951129324038289256173592096663893677171454333947874078506347943637158590663163078321028763474722345898743380730533381031352080546108899138967314078369782932349306905569499634450934922203767113842123577893618800051741990565242921848783782620183329361862641415930885488215982648855633416733843768633835618671378754864418877983326501044027362932916641480771415178283110290565315443284207436159068037635225068937887184773178317361373138591319679118687653347802933097705007577348896388127933560463359952652006741779251664275686496023608413514196922568767717443176451269095925485185219657263202996247038096810130873937573162959560955838032791986090725495881483516041315570537918139198666146830315454277557336591548819089265767707311485027440940873722272240344178110305111467952551738642781131489747441791187124642109150388145217220459931201829148578623071793244639567110012545720880928815139639489510753904935180586376457820452818556997094184608730958426262158029618172412810956797244801382834174253116127116973058329052958868970511685882325852208967800484521939066377541183751168692627709226676341661644706842052570426303096754690892591761731714071562070294793952911904764210447449382297701528052765235283474105840517169317931111217502177850482598647421099268374361136473065596738153758451853020866621185021428844610081494881052572069926371771521527703030838685484798519670074012576777945591201839296284417351673936332402256702119171321097780501013197413459928269815842476153608440788272667741464240351819120250973673694060694667454989781784281358008471133154510409220570956376003328285513873044576696492125994382431996511357557937095555310860469879605387766270482133872934844372383429347313755584144314870646248820109949158936907291609820261796990156296570459020684915365555541511792310747650164202085008914570856862721365373129148296581494963857793743940775173163577865516004732762643000098154535155974434334836955304027796710585519646643468251141339673624176867705817918827566624451620289948109653111237964445658092607675998172901423419520449984471857346394543860332697938020879176550317231097913629710478257902047451318568571365941413130551526079785643988461902808473085213044546496483004137495076516695428994052790519751997836586933847300903483327911809205337632962368138434514900331494865456044715744848617026964833411361909070496837742323080139742074554770967401240974728168706976300564724443067220917791885790045781953599069047882344657582387178018444517769897874337984857238144594854868702096652216060536118287043181683628733795676622328087602445490593348713583434470176165712617795890923887800535232941943002640711051179268481704879468339335499425665178305576114536929951492632601209834024029156266285341160513389043922113046246991957823234110764168761044166097148643836918692090106062528243995318409705558169301137653404302533804420544848289263969845085923465020943392506424441358220463425525470045466490782782977128648697818300516018821455703698162412441177071678928183644650259001424378702512841075856436338455924518269368770876510276463736346431071933176589839627697547176229359854473995877706792068690594076248264997344389527143258828024778413071828129025489119273727589810386763329893243945689919911831993995043246954113414519181424716444940335287103095925429173679022448218679108278909779890788303932132359950367572030660087295173575324173366527743042439425841830181930818423738204191987925378454951284261551847962628395838483684674529661310414187504799235786924778494765728359589473311680011735220255983288749099115995174826772370662371369298565471750657768780623595062179353999305138567702012506286413429072233235797699774426291377934117525999581451579222408563439222290165499175084264362972764888634373976830705514910901233940673857466044042401634576087742420085566031905910233924838075078605803604080843675520783528138227916656665624111830839484126605276091495695087049794066268058652288932956390287148164825681446767567446021762553335138809326534227608787547315144889655317299612091930706434300892697671895475226997725260061967425919888996736472954447443991089263041934647574202115734085435017456929133891241692309742469334606145584672051058198860514460382071156825794050376344531644318323601586237121742896541945359186769945397283320784438222909286250732735865707399251135273492983610680481720032439254366469835978565218459834683833508444447240416199453646097494024077072305599028452926495405017663089021604099996299685504800831834660242022999807377073890981914904166623271766657208626490858794899275701368338654129899929789736984479829296780588788838864114457730521665081399103635840347955594016080244773981514808128144846028353290054340582351499586382804931797174187447692961234206611254529166984710758969459849416170519158854645360012167205995142635767890019114479239339488399070299250926291523208652220231550465603928810622979136973264740363055345228292994261532260190151147632026079478469765633946075303101914259005819228459536285395489609275957195059542425203276147386811381567422802209664055883213802249301411200912702883290111798776491094157560686435072127747992645497365296239235540276424507824506881081509527769009581771133781527905760617066795462121339678079881239003003835709120556342895612808798111826861315179112409348638706526342884936807059198994618139780869708141158537532116450903475873850144928370513521065698101258783282590720597395613009617653296201858344062245173053675062676929968766853305837855200108469666327151499172263946287602327977896452586016755913905047703547766447427766873772087942539686033658364900310286335349562142741090016577831980116217243133937698658775132529556326943351697620559294439629965474200311529001958832908441970019109755304715034827656753506599081742809383351053805798225501318448806816529820963105444407459562426336252394208551675008604681160928824647342321883631284320854666702715603433998908524537236654390260695129050690659473245086963353508565646043147258483534346247328281386123990765331917417249392922985503910316457666692569544512292714923034852538818865214787789929985379998425959583681771234150037795403815184154894328362685616981379803886499582715760917305006686304993319514379441984967523925688403238549175254256564023427490844513660517918081372886058249081063340611191254618952453016037863521481199758995865730460473022830233017651054211134757162885840040075586397798018055271150504359242613024965322561032942662655478380328726356468581369544606345844287280000484876951304698998305129286650793710488372560807171193984209099778967029202595471914691504733997353138997153441695672923394404199404249046301897189067956460769399946827261573947122270835500705298031873329855342585309386741616087637026234398434098890950942020685698927267148047396208652103710983175176593783294290376311431870405324651666159276080952966400505002538124247337510277402633302988146916433759967132535364570470294056782062386965023955887837770768271849779661893673735616826234609713226914474247740143486891215763572463315695921031784825169750373604117985056867034620307221883564191933223280193998258229303447610212542410174500863930131115299934808752555572694456355403146683661344948509413953336651156880250598931075490957708929080944080397573274032249010768021066736838743758419117803351149740331904117341541757548497351645209494714483537226620224016080952673903197667757960774977709362028212248603415919157816020109657584964837362300804434941549179051722822835384297895306110960897272843019170622536751173095755103501032146606928161730545080785592465804149333309484462149917045757814207599600569674157182787839838221334415495308137935038295676346277604801056442311510053437004724482396846858405476043472868545850237202335868102366923521947746269015263909657444932995868561288729098200693827849073160161009447038315902208345954443214163203253808998815513750201702357584980096338973356874371009750645536242535949603125973596419874639549577535046201446051664433712727521939430540223675020626715767081481296934445847286445273306091108593430775053168647394211204936393502324588578323729462240529143955033949468522114225847856751549592861573358958780369870013354711126509347778018008582480122187838195995065066020454165500178142240157359719383668566486915513249515419792299020378368164143122653421446192223032970753910576607705567424373652490251163838988441131294900828156696262544417301971885396041448349593933977548488644623079863923232532614549719356207566487961988890647560163401358273576294276796816041279059777804459527683876806461853194777051691564178071377311336506417494760501191301833918812831108603671630679661922814842618518429884437165819960012555719673755165401194623662452259999385397229542910577005462298566963402342526702606205418159694176572455147007311963838785541470078333291810593361028768698529333742833755157454600175798355068990922466184113052160176899660718208267047892851171817876957419016205362249016392947161791027199552324425405288984566401878210325113096040136196338342906168199275408610084335012928019828011404667229658345608352831002114227216214458080520103721436297985636933485734664908746549885609129375593190679170366667856852729085817258988014532205953050280106773224200451577491604837724198097131787485313409731395706931118740715650555993785199999553688374953801805186229892518917592025228347986681306727352795454731123218455395155690885037526197850216702473001651542805642436360203818411409517196413504062443680636459844872110682386614935051617146128766921026386472766529317291990721878747362837981391110083301966890113761299489462336149665217339135157480297357606590581984814759334739877201742672807497480398914448375825636696930797317031994049138164245088445046074679380466639264020606859874177823028140719120859230432095280544183209707300636770357769528869575227982243040129466979574006038324982020723072918244022965353069634927214264371755020535184752757224513446631664150789677646827847553003753030905606037855147941855701748303823440962813051142579186863155098286888208953283511590721945190899308296052941205777539122919714280480499244962551809064716292500924416666820712071531660986057559548656284700224629305718365562294842256175058600344670006182900479693175962431524051801881860356496351837607618848323211436181438301581062681776712040064508316857118773356856121179353822669265297015759135750961814823764387743732388845624096839787645943175034119100079265774151098860298206967740619980270115097055134920684541865412934995244383556733734636778949400938374990231416363957417487444792176265301974981621397010949800610939782471546528751217450635824358882136586484871144734108120539054290814070737667107306658666280960775990103325092201013658771773170140734722713319833429992419130753637521974185818704350917977642032035918840034790691377284807974648070955972844645730812306504037198563527734605113864765056101817720217629500734452885404943500431915359015292085086625240384545458749098640828362801940942744444974205787827706681924458002919361959570912980114597124823161363795878226007086540378308048646806159068584339678502509939994133455803694355190265559683750125372408070706239813135278034573675698458370404520976991943941907145861508851560727189565802654421653001611291330250298820849778809162546180828273973412320866217612127441186480627629306488824635398943535399307047950923653588485651556134012797420392393204042115493140054719815867510943172281339082119819920982500274701575112507942903901371208755314010066053045009995348683589779882174804393906624684847503231853394083246225672278684249876098590969908718226370611076430351004109820007758066617121409862857975416813100417149497795374052897085785780743978028816989331383023038900777211836542288672638253562738332826907662206869772051292143136377844520496082499743275590273218205097852760509982979537691384750235738637611317509411137617292342678793617028824094974338951259754369640747902836810110881878599857477583146921543992654762456785234515839281130122527388787688152046842832797241894135430827742009827545167492490190706758562541767397559342171972986221667337044303823072062911564851190593495960964446620369006263385166750613895894879097876565218926784482336427291319935156093505545594886821745162382387690813461666757619086764831861890915367078423100216345009350810109480584651281157769937024279106188919378013286155786831917887308571205365467640571909734363300872658379677672585813292782095415980869961938990610905007990267268299614009523462890257884947404815992026252835329470608368269589864487618874568713853677053174101841596465991351591413643644388242173907215190952095841908851486421067654950250810648056735985193447653248873039853690150257561980824403394614197360601247866338173635217353079020274815456610731021179070208195359710076462301339742090755883721710022255757951345811339293880228257882407560018666036959720005225953645045178365272863968332110960528877131317602376267751717919195549533912071893593384390929235327831910968883094570098385371789636632824118301335442521293777734349566583384672932341365099521479458365589802370676741076073822107288146138061822202571468977669511759689260586921769495923317498352162307002884305527455323875035256406490970931282506855320353283603064913589094381054809543292200396715174773475421253103220092681160051783397783633636625947420853431279613837400364189386925905635709688575629643618223383326799272823102375684814343881960202572062994253713176620419043657690262683180991444886002772868828394450111096765655389979481023731843363678246269423528436233469967037024764639729842329589339125515242785667194843374495116899270973289428026021653113192020374528275687470847956099192997759399722126629945605743247467616011361056963525834347591128393307157583624957139276431182852083288500988444810381909761350466144561493973126084192420971626727679596448085153738033129974304289250767394143052508038525584530590825408548253605903910625253131424313943076254208178149756153565999747737189998505164962650067605740278489232009409498629624519358066119469427955556211515306008965151077080208588022387001111152260912731366193806011422312589000274331888411949566629519330265327906837967013831335908160147200480466665342447047454817441951238799286341957383286787808483429875926368855223797999281725923209568286087354124465986169873494985608749598620180012961405082098420725345590512699609790759402736888089124652208343284158525473208487101405972731727197217254513220129565096332113841691082369379289104972239965793331173004024627398531804172119566649199453679846569059574130185376370200181322116001463126381274296912294919336086356220886022786498229351217709809508348903966242829757941742943435494032916446426712972656448481887635304379456747968954011296989316079844204303879670950945335188407214344115053081862791650291802169943652092692802583930149528887400935867328061965995857803076388899301414212185616019725071450869487953778295856776339682470847371859878221827379338515555933099616352306793028380201847304774436702793033539474103481958466556920181856773942429569284913324725120379486558458635145008116226141484360388774729373144261648335407442454504698570375602772208909363522271443721801032660789415741819447629926481093575275766303364784481721443833670542622558519732207543922814469137341056870942409510976072069532918302750160999613104997354763369023921375902801087435942359385972114600968123460519455924431450567800263125066795505794165537731210542794442675461906431331464493607752135759075631405760588490549590592821492409733443148279228867388377770193948038974939509890600818935830034341841363194586783964485019619191300888518568252258684516579732075757222315919639513972175983573221732902633949927261057166601759261992162497946610411976537166921355729159607885467390714338862822606283532338024475617090632960820079441792514738840086340373502968052003246984376498958030002580127041861665975955547226561952733142537888287031555145201440120859029238305010470990865842017394023961226833881869672871153499043594922010991732421924357703005255364303765029115896249197283562575627328722232232318295262117982322971865116040779469384570840326601838819445732761219377668458925552376695659676855465468511577341801746196445450658642645613345413843127618729360451450006824325399886786382378208595495533265568384091510383555042574583759357708470750915200442071077057788277090321826049188492239676402379724539849188140951516350734208879668931539567996560929450719185640155082590085585138592645925788770346506439186005975059416725781276513938974051091091801669834312267818833256542116866697448447241382315274126682029064449050068517282957027701574655460155126050117919469582656727461065678515122433517662533327291492321537385063144740310592921640372708572818861121418564276628895880441461074041777585426132702832252485991096066157917995353733113077151127539983440831289105793875757261665039768185601719715154687931225994791229034297451165732220707627944105176525500676665008514603498928097026081833460225152098653111891410382311559823910004697957821626642115061870074744769531747157420059419299887389038024518583311637201991021962445413101291267381504809350220115177784665676200713604511359462797084072146384726485693745561756474289514817101230083147627310575921735497083251831576834531018465983088642173235308945641178905081670826635469616056005868497490022489745838878707177956671826771646044563651957333453106548566327444152710516002877451843484908414306130632910495269786530861615274059984216322578500300057595870047186863199582004717752831834507568853656465734333946879871435033061948429227976220114252438350300419418208032121992503194342918261756056755286591245317439485887174582256080151102779465910343227313874520850415088488974156462664596480217278879198454883211408948813317671036800507302755436376638747748642289600639859279947695190666493584735856107858929461143969312273550984497406667279238606430334676087380688767596337946840635203434030381035108082211794864902741037831146425805044238932143799299157340480613734527810382784280824988308914729749864672087094460834877636255356545484311213606456266828264455515511224675258875092093012608190873459299380877201292471091040356901636784026749250853804688557423773536864932959038115270684748866466524865980101105100542490289468303436952500872926874891634824880341100829677620605417208561510112420763913924742210119922044647446582180624264047305557623510766386812404660522241356268351210636549517343636540835078218265521487417821424767150162546898311932299258725583476043941205624944738100348057883830453272349826432392739596849881907652457816629154995771824306165604657679329051514548311794530505111679304764350836667121222381162926587766333506824397815386999000433626343932291140919108918749670142497794347742095491933076280688508639712096356917206699186110751681841823100780190690187506189251229681329643093815706845158447781836258260693290612834438014274976181155044084165597045323671389225013180422748498295640376482846666295434988803432317706396660753091337653935907537901968262702870845306678071999494903503648853418469138868386991668756157834167538193872484123555348810321617257376941327124520021357608835640799433073460397924953975957147945323551299965246153754096635253082136697791356994255628188729437264378419635168706667490069880642677907262823695244606565086698957032011239977164117853241686205321378072353349404343556563949179364721760604232331383303544170445619961568909931064999486147110273857470425954284059505140873698058023244766050414085564762860965711736199814409204048631593840778252037654815772983252405866170746227591248995622927586544725508293201188774870778774366115421185319828483749635411553641555776195485861438846608861428235043792252442361042293028458544505618647317717012399901042481852205058062581465524764343864472952855314655016592869613268387706716209644169131971349202432823660956988878580490470106063459683266983780645859243978753596212116424630070034803553805605188782073271388308139150275292699425963136848351155563422938277391282733631110741834403743806835809449562847360636428500492728027961443219156145198815908327276155883609861331343870673589751353049999955685875774669697862097645705669987076121680495591407105779743706370297410196528230745157284004596163211961514909848198980060284070710931491134990669475777556027721392207696586596377982215076460300220537433850128378680337884353246748917199158747470320675470135663403758318102625855918391594404258042980972339950286553335682100470145140066179111061758605234468307384627350878053252400645455390188857568539963751178388991331781310603352420124078792965829205012162271650092298005536132934032829432513759360729677674496598719668450705204560712011503143030861440995507021774365362900678911497682869308630275953936973904809901992626178222521899350874146129748162576500350777432699224340260582050427724817062439821446301178795907768562417514239816933805874480162593461664779917338890871206053558912935474471342019183653366555153350895009657029486987388755472898887125086186122328453488497429505696450552903513474825584987816596670744718468841739170236116604364972763056884766459523086564718764928747000756101547627502629965397034649391769404192375230755644663068778651939258569139787984242012484704249309240494055015996582958296993024788562565321160979022919418850177691034797335320529602699574558448261825595418497509201612065433407736875173879434631866610863976954026506122312675798396840720579974327068400735973562267553921292047225791375484684962509339032705149010297555723322575402389833643346426955432262572270329377588570307573151325924941114735020114275354953126491803036872551629922956843860952841256953029757635852789284769206041969269275315323395242261729069778818963360213836958948799895617645505593706367788925921691564878908658964275688388601628887755164215346698289235792669321345629223389003955344211492060695778571307160326033033181410997067018694527822308774578668367172184450843752126843680866622490804819918070492613527534462486512104202385707436255950604051367203997945045257610419545899012405991163188084777371424113412629402233220400743536989823333873155534092347186222236817966022613600362589285312458249945418894549164946094811663117968511681855000556368081852365427234979882593737892110709745799348564619347612817364586629272936188254341349277628370299531878404997329520181984359145662978181007743950612727828487551792818744162466693199333710611074206968221214454274165837331343448521949100701959244167720160608322916395045908890916164272710539054959631480657174783904660325946879913657625580545621439642548458923506302892562227273777710879697674043326033684909901713321705461298354009866579015563936862234239276413818385180495847087707718849860309374095284506771791752111334454081667089211707046897313016359265999179945637213719014263521326329593540932182283830664062514073198597905586986428834823762745130787181215599574790649255558378473956542094970542056926385764646372306766177673692744811108517075545638543754137776196101180990852074736466908878021346127855541057183064977795826232374369642980887705926881320919212525522192859041500274563220959503439168381010519788345909907663243054782971080007882206811157614353795341577024385288888592087894454270691305663742327155160634518859144646690433672074312203502747267832021882162006447758580705111531969942285810418721457569225573867246385107320493736543010902435850352076259604534297903282854252062718523570196811184814056751930246396715247034973582266228828390406184651308105323688101418471876499189488943204825442224098425911289531339464408268474281412416310267230218103868224718368624887217544221729781067369205637718232743861520403161249877040616295073383308385709034141598444722988118040871058732986873772288334692067436300218984818599809368314216469648865192269461660955457308598593966340437499529561443091638431122840091041517401295948192297741637085960745317735494048134346168853378656865189541504757127704359515822266084464501579904350324878669472528887787787152239979050660441759435405643365520368156802953029491086596758773125507742912205007808124090490586707829798197727614423224132235825367689265417386797838667231483977823954591653915509740494391606347215119307364440520430029599672188677152175479665266981407604999444992972731020060692427556459438358011849674198388461597198881452243978781539831177967972946492941390168117133335983552548408399322818649108715332415360620505667416716862112419376642939283874073765410230485251219193656131486631887233848807978397278795557073544345989740266286207504177372159219425840590713706462740098138794193670358622352892015908811360476478477866869354151055923782556030583951444962228552398680645293987151078489476145815179090787194356190963788135148630193740680797846650969423434945883220941237211080824038550591629062273493470095316754299473024915295260716925083541972400600614344142146831893582605456225444943994704188629313993438979373664335252593341183716418750118167870000027511606932569157549329829477476906691685364060298329014113244204243902207798036070391985604943686025133620911472237324372395413600081430940490788763697555242500579443056462870956281116565125963337948713391981072464484676112179433180726944501275909377714657477885199230535649316477196663861298564904437529686265276001417296576152259116271873534908630658860624523697899402402886020272687986921564574306110375967391812474868770441699160601413291790928532201692578351594831783919352437218460738866799970920306237628126085372705888689651485492922173180160835247617486936729684598257098632092289514534429073431447656603680876948779986315025322206649899890328544924217129997795598189553113674583588956400236961071848722802278354726299219918719468876553314013459189208546368798005594200958592367374863715827380648647738685777608474657977997104466226902940998193498246592753586089915164059190837121179991509693136289334415257814652799720244129503142643985213488268797830333808712851631906137530983854527115053824410615039918519216569424103695557997576592992047940139590673453794912207614061281917318345043932175600813753121259143306054021118976005105169949370896151729747650329814164315283232306686580650696577328896426708364666882698747093526734718300207028927252879212981894811519097912609530658983480424182097745370103244902364896093633854627025901020248029174899039855170254530000756956245291376850076341846565171181823098493560753704905650916357332378722418952811969887461376075234403193594586398963186114740997963731336648936473103109541050182346573715065422338458127766481675233902466213877452605438565566862508419261112921524046983212754250503583505680013848624288636266167947201587567575418921987882509981922556818363643109009578925595085399963354017261305425686240268912450419656321827644364753704915553461416383355988490006019702097322685223116316429820674101889616328987375744412099860303720470124411780010479128345724302609171672233626443068123227250223463045816036427100946036101339448824999348917318717158372897405705636890091449250874466727107966686010963514615169191856633161908663128704388890037926997684800962161633089201445629602386126116026267709652735195091887937011209638282282530229096310323349812364704548811168479036005449465382027506843963332472412665153221640458164763832486823910193542473152565687971190796967028351278372102669534118099696698768816434948212763126643938349711683377548010937767893811081443210916580575754931581875738525676830586202492353697482809681289169092163764865705983399089330946204682481840730879755917638790575172302084969829957589427512087912878700070196593669866553837278978026452744677398259730232143104027023654569060436372697635246825160238819018506227418966385562874835323849420325391466304173968095537295637261285334953959301659789425942402369613891814859844903821623680773021425635630578703097374331685285221383858937944450496832586244351846202874247807923161121549049706074198579392088926159839957526695518585411862910602721442838848873149650429528602217149399131496037120092577526288740584206181926846990613162239642358543267130034204429760183905119979361881569402052475605661142440436060845039018662479248938611370768827410787762537100774726818255328251807612398482469006129719171194021954380594149760273135381285246292333262345503855544453780072107037072672795640159754934769254743029798541050960832114809389156937608568203187182103162125456251538794112364888239306137974100666460830510210469251801594767802386838035053277403767694626685125359072706410008250146076443672491854409532021521358292631793238297626378527632194443734127545640790581657199074540514801478861238116097597190924189424702463294075906513447088215094672590656870919475020321354406249336277482706155457983290723356427179584125444968081016895114735341685586642944769137106200010158378971662396965799673497937520381605891500263036326438632563106106323132538507326680262694562515117460886811707461671020548767773866237377357738724163050748816170003963057471498816589370508189873774261562068071216206585029194517188374360746383858091329143993763418400732485149892254104264151158299721851314575065757860670505770141900460315472967983309397498294015568652760901462602303328919153389228111284260993643606530206211566842289987302604246113532752607206024212631388792148753618546904615054635058496861918041093972183093269102247863073721242743584480305720890858460954185381155827668071602765586206633951627277226692929578439555929224707025078977828520373535877669098922356437060989182105976160467991217152817081889846210117421329469192494646425577007901204548853422473535295043063276937853844694382471596491367652488737151939733382681842332878361959322163070886845892607783586207863286002192589958753221113625590061337720692582848361316596704138679487665157967348402624939688722462223491515636339219746340286587811639018849387162075210507730526908803696441605696547257083205053297521891581716978694314555795568890939488363828658916970825802157571480610268576148279538134994594072341340002760047296148351527810731568246822353311204372779614891235010648622284388634053653207122137993486189720366075203242649444756325042854123484543558143936795843094824055434336447346940222298459354104623874418474607531934575518307565381689911128083105420349142067664611706654322206084514309657023696931151224711677453892110625320186838400483099837047551189699611115639437071060098352141299397796739229558102767146127900247282987864714136527269508891763943273223067550569514454740150797004893689193622888701581305490668519995785022770799567988726272740418969160386862889516891301175765509801050245990222257825115240747054317773447927383787724981679717329482310992953058733014060529558115347595118593532807365682629926172156489057676436495913470970028489680684392396577411040159828522693189999384004673769478694126634398887392630081222160395304587102545762329857582337427347010348809532344831938253737028914688627807823528779360486036308538085392000468058319637227977205083082916602480357779668083079196546637551240006314730425613178480675457359133177808439501912687433719494708997717941010864841587846370658980941264640976548536374299713538951696600915242990183791667267385400392661996568675265756964215623980509321633874304587189029159194116140104643257595582031633864704029038790789903281095663120022998216206244365293868792600951836856987230809843003290065118266999232382371402213798174530316651413283717553481943135674434693868564865813243901521314546567295502813487363265610160092289231628248048276170680476335169976738319264839074514216407123448415893031234805154300104427458743935133989206939876240523210630766808258889982412602777514805389995906187624793309714016997293133733004028563495843766944404763032823584038348037633539975200601295177032844313129028204261885182918863992605461085195007009650048871293270602586963251988952584808452480959270405420996826957311905486491086781533107175755562107921134979637633516003451336990326268689886065246812894892615853191487261783680713171424624225844575988579177913180462581486637517680659992064600555505570543404692315815283010513539745375825322283620457229370828688123000857609082036493338364945863137801997356339368907122895228683686965256217398970012099239842833650066129629413457257455607712332349856192916527348425777659375918751049389750158738462640500327111809116438953819393769262603461973549665278293916258398063134274263165664414819760260053524312427864801123965938384690691149475000496952625031375417188055222662289676187792939934214946958128257376466920970459713197032989871569103424146016629076538186091127155028416147409269656156249466275327546884875613014427576205349175197906138499026619631841599348285108688102037975088251429214003372095837746535764969924127593387535139163448009816321669889746511424118596067619297697534871373304225937241867896510290937559444935353557508498260460089006064704064395395488851151143070468826974124041398489119977531413542421538010055651932871105971492425910837817676873719556715289773957950452227172235404863117600417816978878657992367699520486061248786861665537106583612998769520129220310071390528241133121454484160463280410126364483201540956439525518419443314076852736126587579370961265394625062469609823549434387905503672964215898625198185642694317801428256662465347283721524999563480011549228370299504601420957186143399024279488279529975100917076790619992905072876087088629607783344206156106409320887825325348427012317625542325580760656965441686174712895156762043268704609751975114842172202555590828451901982906778255336727941404635028437829943581914987779452943799141091513620369691748534209377646509076334262442121799421532284932693029313577209462295374909545697227696000119077181952363627098890898983405916002190556631237018159803546976465251131474722084039305388822641866516759397023878027285727977634741330093411941299862722198271656341958039229484238128850003665728545743330906376047350138347943784063353901196090327985970882011390231253799783711891097777757125051439439623236972520400254512478445632506811852059204540739539434663782962925926682266062438785276887492359990475966295712860619134719308859928166003284562124533934315657803328615375334209704720157786164761608359210248167634120508586327121698021774238446769760430705653001413227717270308722124668744503502399277688495020380910556517465402452863430668691782545268767808919055822535633422727070825369556915809162684760313539594643101540082998640759919213028873374792765353754173287164528292923906352924166835683263544415136546659990171323697050170067997621501238715844467366106299276746808074481541914323802530359147358841649504494206511387491136870166842510469041042302051288797335260944116086273740510988994222204131749239670493595214625844005405955415165186539461643242923369949013211552042201042269411738583833244547604527942032193502035322148633172537866893329211269578636806202669536743929292893145333767654644909282880363789327891287760655466114326986962203043797712106594798632602100676934970465348399925117620167614293353371966398785842054062249451557761346158698472701630074840449219355130211445289704659290895211995288394703984311623119001262083300062012539031510255319478976764181702288344598235761635913272746582391333418256365051854373134969558237615507310725692162866075219004578193903248625639937057553111964689124561125882142545352705481318732226961054898396283093762978755986418249882939922586820929392852501497306794160982455267461721199962755994570026237221748222910183899287362207337691129853208688836389321049001671816105411180291115840730282860208797859502876442021627974739739193223560591337885621514281972241934965556434563603560959510410524833068409683193988563408544685216655394686273819845367074462955531766240579973342418583481422138547788364403723127230208656515760152441932671362852225205768723423174747109243745861204441572256180834250235468903646473328842904759049017682858676947358022012237505997066031569193103687914117275902819847098414872830109589679173897334334412110774639541648347534550311437421698572894740760795570552490875237254706626533234848942706268192822230469612540542357304159799341121416139241773913811114804824389251710294501337400191105599296764125635766069270915836103642494958429252857737201894212451658260263120416509888947584941223049821968686027827177798804228452912954030070304092439994728134200561197437836456892150673117171949048628488798742337728799219485008526486061065827673893256347239276493855420242252703666896426125205834072632247867811165552494179724976562336536639780131015199129706184326087309515329897571353358161406229918990909465428074719156422674848264667037689072113791427652779313608927121791443990584822346366658317706940643138760611489248334837502834763902647198326671298053658305694867743245895516051682594582985389545811704559709423732703396543270316799376046413641646364461735028316824218405934482743801641962139259329838660609687193354154738906372077531709358872005366696562437563378044604286606552418615697751703013481709427467693821429554074707050304126848296873299696502902571448815858804941609580954455681903534867303737826962321437133364003479241414710246261425692589654248812019142652004724783879616883856627082240444417003542495484702080693135584570997577636768936135387722922078471549930065973586223268021890811301380939546882958506764432877535081873314254214671082256248056806117371084138316212741519531946144992615719331079686119095060625214758501817066457360688733581299612930019638689898648738566722677885181788949121275322403128407186929089054629346827572396675002414267967453521565026635636096143384623404235384547801737081231792793860307277739511223198788353029160287619229644428847445189890561036532645228775999734921274551797957567374147298238199461024610688916637766071430333293094397003264319770038577287671618699407147633446736220520743115283255346227045197203022435600993060871386381014901532235078524759184645163338040343600967620423977357237443396743464029468449964171188017302597481069495116246673313667857453179133890698913620202925289256379580116039460214714701311678043084145920160574330783206480404056410973630487173002827501133370704523600284446765483071512219945859104876686512585757389031061908327555676750103841219497435400227721310224585526582827110554249010962806852560291004560049106972616338083369592531905379421748806882147824769844338197085006991668471052444084942927686013688363354573588897069577898611669609396370279833827139858298221786189525925912405344725902330629586946335556413196750227457842656635095843798209553837443233219356424714271372207638169775455597051419658595514302692657441394197164021844779309039297985122588866150887135164681056978972516015568951120700484278512297392213957317129913679297899507446433488750205918645609799632471020252574152638521994204205551948285660040291255123497706758224815883835060194625302899003312930796563850624788755038818589769160473456625117255068941050271317679680801751285995167507571317762083876947497020347318266747266879177736169335459928143569949905526145171581392588457617823108242608485358989916192833254565238286786009132321062861183963028775338999815929116868965910375876171585402881166297468195736363007335261440191692974798800985567716022980435126547954955333923236481032266816571886035831000285970862368408297838952281388762024423727162119774486636570783652077852463130297997737964871831885459332395485720579330458118828189388295178174572339601939562143312243426234808624565150082477997835330587689796946080057468056441077824731079403310594077456930455596568132224786371888938492089111890695243825212496867775156451047555030910157828701937896516835380854054389142409235515038761231555610726166105502524906670760978316250009432477546590223524054160622003446522628322806652528074663031712722162365153042733132452935560987102369416650456061478697509097297983706787698306181120376404282296156363119853686400086971829204211972120308181593844652855547901647196347820010609753612194961721211146750832500762822100704199245928493888234015160137954493916986348954208758475051395206579613436535142687514025455898379884143670935828165794675294144386104498565571052827567555860887916648206195037701968726430176467472721624745098627538542709604031474339611514442218739900366808917976096461871604660502999694735663206219772678309707400485195946908365417341935116509665637471043082210671387538301421010201424722288255458760630836000075431801199894011564741319536254157262257718362333357833867996950762231788336993527599423583256414534855671965526430776080373572381948391300032295070179027571514269155211407302118866682368806167675366337518920270710680245253513158945019002423407876677445723968288267370419588350525430584190948715025668718482720973437736142296755018696790015868871984988810830427138567976693032412635511664206948473947637178924359416638044528255528813582039949152758948698213912789345449717247891067371846040799307094370237213175984639646262297332078737829498088439141068180926070170187727619436419398257443517502852738722646494514693732190187352833029805094908133261518431605070417946182448167465433958586045781910604460615170982268432285454180766529422171574200221599539264274007626534127497362506628640922862240760925454302609663476624047102027831416004121347356904247077296235155624792872444704964530513338581354527532107742727383763882265231946911932350628141907943438944747234514456391800447448752624668222521358883139035468442355566553980108612540298122635211934909040899602945472794010465550782844897219290854434870401849600258526177425171738025585900746972713050020542389636513919221503848864278702742652669022623602632028963218174507840408771094689122358225172917794295426231843170652963614395820531153803216468868446525565953777841947405790372555605092187286241129940466576420936355211392822401205021342890066359838184358423792431273598503328356833349492383739105875349581832011062422249991297059288780293648881229734753362856459977140909020733251321027226504331821722220560926671208049317087191489314075064760198623864164108403307802143401143601277240623979572384232976463455256944024455358827103666804997217012650689463109434867686545145652518813262424016020930787825283482730194204686866982370367052568991024275873573829835869730836309484453263939795894709534002570739976740077927761512006050648505694416247803164899519986669118357050895044235410048048609191803730089526935848911651041552016276732989605942239354080371451390426537358160650613491683075628028681101122200002648761616835098067617090442696080416563592643799499982509504918493264562053540755673161799856357635228859282832674287623183444338160848331382044383348235491525133735431013887867453907139130476059805886693396151595473041109165730827298221157519785397735728805105825350814783439608727285634095375437545462082156086899702293493065661594980188434417162126304124865198039919696091312790863653484155052524411438680653842758867477557698554892198121752316513192954950785483852516040927922744476835421863754759780606940705326160261536457126832854987482250484996073298064649817275233934196453612244007213379826776523879709314648183020753095085477632813848873931382999824443057389693910216359458773338709746962083566567456116373589378079956577333481369650726761615712466253806997019976633861186865374054503820275331099594672537076638806045507360503094447244855917339553100472057594077451913007733003465595308285848123224008320496837046170317330039966619455156597719080264549812503526425526370108752295417682930826510297504561652199201773758674335225992161057000539862418300624187298585463120272383789752547321546637866906523027410905070440391191355900912121700363663143163729493573658753118099158158318147427858479698027819157943428805386164519271415816054025489621361999322196056468537868907423709826321242795913038433467296976793434641029157422179113041418576843945229793712112975503233433937429507908511177707312392504265482786240479573545371576844784304860599985291444456634998902234992690950860611392028728852719486726061472164999620242665305574472419407922325216861635514915575967633034121463565760153777678058209171799602881293692526642500062922977830066021604956847851296681182117060346953162807399177111285163691654414320080051560925561954043616826544891056345039211481599128773836514241355721710937270345935483957705741926101972695731995394101142871385749678277979182810458565615751460341794338526704627427046263081785617347851222504478157947026197308355155418348235015419954564059847695042174837130134962631720612010590147396212562787621876563850923832486134444613646381913112074689519412309037008081913620137365618084470669835619249994045876069378904246863911840251735777206169430648414391293781974203526080767119963299923828120338052637767593472053363024513504485037321228330528222171100569510687888822289690850274508607474019373681659777513257816097043666145107117974957155915746495913662870969601340139811561593927152146265390550494410534483612830114873621237995087400693534413023682682868501412911242156392799592316329822847850970170563256669087093920423023527399264900620862583566729435200494839941842371338159781370685971969091552871985638520112319693205519126886520516264658474580213832301112120627790072513245841799547119101529519775970041988210964778831949594837833872957756904638302578903675099935061675781349727349555861473898965382521636808050046547576521441492762408623056099707990150183881205435811898872221871805126904604755803550306593153476694449699676719300285122273043205067868540696306150668135024779630714077799425190206664046417697201288593655520356900163159350329034337804004756613521240956997167857769869663248894275515282195272204237473769564159695809700928978411675657191544187084759471007843403671543074149154337234614024273784610333151353525719391600857899888791702607346309385356118986708819468106371951383704998530158375784780208218166484282118451823512402058654432942646961446635271524840202840731258681367168097135745203069336493949102873687284329595450243215643854400501531798887764920137289511546163652479284667198337054059390523354365621023974768785467373353469603550932906551932945063695480350207330756794357486479397385197824320874577150067542730942688106146035947981220194710187968418929166595741129442758840348596029661219004091218131540742549715749079848816217687321797559950857015127365277771949498869267897552276743890885116108210189187353566364980202026576427662248012003293474433545370976715140282848086947997707352582274722538172212554915628192906006134863145337887638732137080795258724306899006810229701273838296965595399493547130559231230245984031491654673150801281438223398911171328243062580381416359868876315212917387022481757018974817219840422312655915134600901627630903427328816695688541282552626416214143585359829770220337045984343558977447373007850864957783277701386041627980930530379564138370647420827117914432172119054753699254159370995613998306599044076549716782147752424484608171616173761019462195590400408229370503242851114149895309203923714895837851141813517432176202062577280339504567895236637734567183513866737588333125127492251620640336464120760896502469180181452849910572217748442622803768564098897584858188086539792001932443091827480601822771948319672821732149673846899589672376805954091194001193186782120100595004467038781194475901765938853320776465393805586929140502077801379108033258729922684578562599200671797385555755853569817152370460252121578428338130039501937108815182093805593792763586653768576848521097190707602925672905954185090164560617647074586051296563351077343433613026718243031055342057131620309078704241972062185275382456405634861064137949563598931341354726581560229761775090467266191242616121955685436386078203175719765482147553382259173942727183616035494435662871312573507807162182209364717807431664378730389777652047272296855027726422868341659200809574785978129479100623425974489371020077103626637544236686178345070477150123408413012950441084571361909863596078007121294668951778442081530462173175725326393656651424362623596998422573562878671399067249828137641186509243664678585514602796713461823792176514260847456715818557586087006333026083146034420653096122206311013604138613518714519934994124457495341837055242999606971123946766115996937197047068114887902959080590412285329150013950741274051372890668623558111486712720436362153941821384875926160050681796391819468165630621211505700657244872906444698032347946144236859901169991907714744422660671410102713108663569630165861935046967574875932390471274809338387824293484473637158414986945062332683752979925651485365963382616537856759389443756173555733515312192853379472283999865520681823335278754038497948228296363180698850212706532982425873046530931838419286978775539761963837699815602666745576888103092028653621583871820027270541069962171969918802312983447764336342597074654873229628981431343827767737075030765006003437972158751469122562824244809135599126293225215662450741512058623933240200756319967457094297426538116588167801208597531281072504999275245082476695990179715692364515416169847108785357254580763924333287190573899399795347811447055451937953396301364799715203945841451427992444947480180654472926874659204246329935732738163065434992848623593955447402058154055709994950148452732748799899761434707800507033607371592574170915274125118717206883034086081532635083698915416606324778646995825759421550561124048171737731163872259694174912363575191287996227601718337258750053912122004645451246896341901015327391327046413200074342564466680900307355633196526809815816330090193349549286782322413106835587499785574989949051149367500094816602929847079183851231618518542665138566263535626746272025525428946905020089520783835062573687437537745964703537002975644285812322453824666103469287051358094444263586156467030201022212492925388066807542192537269662508496745069361407707191951808575893008212597420924385897712647679589532808969956207913098416887460863096750816799160392260820768221869296091193074496694074213026610786172967516921017652106818458835935932961500918392052653630718230732993514928002382959649333017243336841802148897222181208388046006705148765956011632165016916421833037437871464658268588904642434966623355887785885048819495411439907220277198560776939314919274833440575869318293569273058397437286375618285044492086481696694272789501988760024089957415608342808788626436866865342107243360109753656635507493464867806314404264526094436497381014317080784434405659088837949745031136979792499867016750650071995286773430151817258810028497658286250324550410569015093278112788225253602423344328723076309335945942944724533561851688837426720888255587075965811508033021888196372621298560404596860579044192019494964500057788176744218184133190812379145610072588656832589273918100262980885019174296210888036205773689366883925382500503785700055212846920199802136181749375412426207874228361954708111883200849418954958397754365638647994383809899524633148044695861349711285594558636598952878838060023888656822314470203890013466538071453027551405832906200437153699833337899015446317395861994962571972383007879068203629930561592020887635408219950585660832414920104976106067446914218392066247865460383260748020956344647501345305614820598621638545287762383261643085232442315595864411106845254521419251503197052473616925318709864388964990454400882764348539813231700300711459208792743479435078271844451702692050869548413333443708261216391262003243288636703550346912964714279578447927810528977672670636306710193588967719012890382252232027054248231816851293572148556069944811213780251342375912457109631418027366027173681802198981373063161903913490627245097919709323470771109229006911948630350666973022968545826039743760832023935744208670834570328812990145876454502530327390733884123529776100401811345434756083970150540717797539975980421826708139221683048126506940804297209665884039878617828677345011559074984504747260603075153616329463572876251447407845615943170953087308239317983580427750486207383322102771185679275965703802727124316053323025088390922978156187290284804147552560220300933124162227446109064219137685495957830715645533285565924517267688683860399649200288681987836832639465265545707252560740629764920971122935921646776100685031543178263144637455845059270879536214733838772735943417147788337595078335205718001364525659267959928356010099569307527004571243993647710841447825365240501479702311902876428638443397630717438973342663219216775858405701794573034081926220896824974825425679918988236854310888740510652651481905572809201269066516986522141236007398462810595206181143197875087378209792143788839886707687131250681198415476093165296768457820843615974809425235420533936921253115611843569043032220977314208565075218540698891166118075080450586764919617904266962383040565959862826543011106461745416180965755954655265965088802125722165233680248269693890059678678036885753703282416256924900390141443137805446532767260491034776614270376789598305896115923065479266319244789600581236240315359578552711507639859086408905181218928874322369610200694881871630780351136958713563644849978123154549671423110723910743433092308088920560739008895126954561573999745478521798850466237359586883647893345579920193039926621635992678853591600114627578242472549612116848412168715837333163703084054392190451239697729846450763856829375697416656661535607645503303459828418293574468887876485996532291200337793442674978381979897673813358117888185210242844480081458298721410647157768670208416905858828971753050156019575930352839232223682234025433350119781960403163900144443680599923873583373567397055485246061219803497486001302142139444191789758768022039365078259072816102832507294225103200320109658970805350797664915683365096135023171222986300768781438518659185566499531889028958328384591430879333858975324406007520845690778328386288986691074842876707763273484068502317371052806230308534232150885613129439380176019155596211277137823604660172454879945367616389750370670927595820501753441798625786114541383844241537826087160765460222370394831012968271673054122658514897842442520812218427479020583111570199729882829899991664633385038042051614795396675296396176439667302115535190353999647754005893429501993539546548159757485535368077401960599824259929702300340134181393749284605204908436300248682888737933020476489338258321669721941409043265022844311706061435665575354722289310182121363451895740688381469433767002544056418713921219381476843496917693230159662891610963030408925889409081128453859271640579690185263504578548540388854579852682944741050726448013272805870491215533132482327477144165664414932163301242465880503399266824937888680336508445981451876101813021182594430114135306568629453624692048522801295809391657082894137445179461350759618082667138878865099770436080044957314094972364081875768960912007321803446080361817109469266636587975167800351387557777780865029809432776629551085380186509856913010957126381267812527633196045933459597943048468044558630544483440014841807535946373977333708702818771796620541845677005519544944330519178418294816586576383570263814488600218699371812262672701463271878858597499269308685845971385358913135492592747450732876928041204973400606566753422847576941155534620517419616636562196115325000850467249568198054168104621131546019747174106651449562349440240669852726928444097476159129917222918466432835354753290997039462724014403289040238971371610759440908545432967590646625130164485981440377480211337662243786418899632019296382671923490847259972755132745255317534698947711956532119479368892740572232672068529052689958767989938593960091227578408443918420604059516067708097712253605390039646825654119605666129047623022882216958555632370047899611086730818578853528096508293230545410105974456092473799996282872140817905345950695091471151326729327187109108615845168794694548309154968069141188819891398890271412581137661647102698848686648224472958446572296313811565617443479202117354137923524237908741505452008890657876574032004343711751108299745982964143214619912849636929951237944381832496526170080830677714962795170034901773368254221688257008469937144274137631473419612002647076711873992668294136564362088474129081357028530809426590562428041871667957857123267801387749288190792119608356318002634173960656180541873541066450680405785919974200942719148534893239133711436642596625788951145842620732498050576158916083821118695701495061618471653218085322838122097694926708885393118528905221000056914570461140024704508556370743204958190195493593486589667192842891006132059858626145789370773936849368267241345511498492738281560695703470704539777272130941170808556238372711583854227471354114471433329504621223861375915839754363261589283155909319530444922826816183630487216494945653549218285850337683515081432987991530595702429691875865339789520521928151908332770479891773788571486816124874338811085697684454992141030970624540405200876895937973556128541197294546483085494367191941925217596452452643658830574912905142953387547795183349085449773507239986406818973240573191161250279954309052221584658697270609126008117214519435169051345407657171651979419232810163347809453550679641679564300144528048224249328067081927432317629484348692122454745223810663659254497471815563588563154584309375653993508416245583506556969440144360338944236184781537647235483569489634658879609604157123333873204538818386338963352365069676543166787222375684798535401974531333026610748565320367238937108366317957469175918487280392177802367776193811466223206851455312990850141631819693916636634753059205738764542229482035498265580893884846764847177938312563926810158593686489301197623199884753564914944285049592268347478745464295194936999643401285495052721394353118129635566716984814722983811242204150870956818134747021394886548636799434579530594286567200997984551083811182410687637817469615741637521260485644799711645119494862063312140624170101849105950710021250781873212623850412931235992340391815540694850050497567136691491160026448001052048447195070342634832376356915069900763984948767800471577457154235772206899643822385064676841794822155899651263061606453428119923417857220168022945489139516636689694434074838648131895849780766115991303207998637897514444257255710113781431075680017291325970201418662074827065104435649150449367072224833143813170576458526301126587601207570612405018884008660106878659653876759106580842153629382803210005521575017692816978539769824281300474156207619079724347772985512097276792802898821437663461341649980215322161913526282796535472240245097037828610305971864597431420694123610933600106837653181990131100255006005009082678454724171012235580028456920153520262649770622456588414232334562653882684275586918682002459540144834827729735613393264709146533191724164938929200976976502213498640168982452025243030983123141473139878448925859522470562683303395544525523083420761236843944369855112832766691964440010889654642399327999313991014579961198676620002050626149858563432503075833021162215165125494775118992641794900399669990101728716062040950554263085207190956607997506513605308871262231445509856533716263575198052345759711779625401575540970032508674267438990854016860871722293372767077896817828249821707311360502767007588410593052034462317326563640085228125388763036918352461231062139532007620567681197220143384431911441849336097641383263282637850911856113619686710199237397846914705672209347195824254116765580199741633018250739830462430981431800549403849425877880370704939077097522983979985899964394479810140449826970827682852346281522706450412725906050620107949348565585786938756814484178646458598414851594528445661225043428775892113166785524892386638740634835580289362100179732406212181936233517766740043716295478549174645068109963085809711557713859471282993095133565770445871040256695331972190325945548500531044578862185411406514125322928111984017667346789735408909406651491664937594314775137352471748180391872016328717312721938777820468586724647382050532778717920064189568406507602753450625103701674182358869734862203122236125206886339403935113520109284398430942275507734793045414264288728641257700045344137269716094374343150743376662599345354748694483106398199115673170108098519783844002705909202278648741254512897612317354212940090984107355847290179914022451103211379949360106738416706215151079278761878969192518868928325447188099664433760378190971891642614466628540999806899830709314395839107581669702657185810109264979552666411934032311238054732176296251422283564965917292152704939305714163616808033157584661021340904434283801446756494662263982234038335756166593428817133154097443091816262835706398897715890189972817084248349425612653604728105345384323629603001705317194976913402484907271842118577516546350348517447958049652864603454548629389877070412141572441868590670546244319256534789811651731592637731218678873716485988795139830513371206799279407761157469193046669324986095017302754300893111956908758413409919166782329878054469993818360032243618068540212963371888538343700530106835459996738910915353248751173948245073837825169690652225936744120462504986790055559148162562808246439788123985440575058592482547128930507531783526893422238557013847093032028209720905204076859134405990109298847320716632498345614940035114456399473891830781315956887318786855621082837908834647507116105404873054746596162334163847475607529644596551828013529970093320102793791050802205181080138867050237191206735230786251483958411698104079079988789093745088687451723411999499844627247121617372007524492504983344055208714608337768008031133213412508390473585445864275666165562502454238910267781452950960549870479693386620629772936410387703314671007858798258677553147703703182090206062167057155289962214853459507239481222732723930469072469246027960024217206617778134386996643839581768023188198595531447497886161795945398074959149774834404707752519783330637350795526652571415440863124861939604341787053673519585543213515592828545085590746297889760407450110507584102850750460797976469457373895281303339062244530876306728315516733677155106335143685653874946837510449551267201972472883247971294040804284493112685761694698537784850403228041929616818328487401371578846104846596063779509561100389663520671828252884865034000976740409980130650135527719016884606558136264180214012457564049000940179561469976922775997486626199839182967194505756498723257705785078237835982520354676816987840166558006777373338882997052195987707715304831297541107932063022176592113182139187736770079174453054620824579126282707067642415879797898388574147391504575880037915959035298255509972243036199742243514992773033553343327156213907457374974124954012917143530554280190893859018476537476481088791980971066416062695751127466613532296348691166584253315822682041214771412244047759384066081988799397055490629628396002134895893846050798862207438941791652431099594875567461050347931669013172741590778372986037743130999712893653665319440440530644692968293482814317348363578640052390372988744729028090054106316172016871193590437947029187110585156963989284354148832476246273495940133759724240424608187792784241862990842501422616026005291131091569782897104891459847989852936920498057284950605468035369227667587348288576173142210912250207241828342201706839972217538961730143578088896535841027636830006518716404369709659109421811761721226244880397318771480408483880525422578957874926452725087069363908697232610343722446950714122638332246958336749706011489602743852997781788646216853185422697376927115063672141637387964760914691206313458479224326963775379794344032231175331046991781313275473276868378675539918086559370262751187094612876119211500640497318286242423613327203592669407278092230160358614657315359688205934336237451264278244546289133392265612127648385419784829922968530607578593736538022034884724254163655904605668278376974892523206275806780499214312768403447908594006023900435776570011524725405734225000953060455957593956937311270134843811620660378935006419283327607411477689541373159334976844850150725745703322664507971759526612325480388008284807715719741574139380340826208099969199645600934076644908919770446795319592644894463987972206287354733352430082830238671389189321677224177617190041730750465751218153537264288864423651148863719382418847152684699461740130284404544389927560008249465172982172932518142431014268320054992856577942836029714249437149494321832475319667776514190366402004038296727205878151583708385463592842036030340575329944505704606387164287508816340474453309876980775171360553123156310929250911810243812225548057577699702143500324091529450239906276459774735996381492709893901498329800909165758169779870572916935295840048466095987959656887049980474255477584808582434254422068724315288675081152450362183442331980695409240440435190126711957788401117286705604160532306766759944366645961295806428068272054629025932196574825815365137528223069342706540794217544191382788194591610592278539802713267090413125624517577770504307739185660506267901233308591107037649991747755302397321755293166387631923759610319529214328958550135491564058810461377578511060968856463135407920577001373132232507054161270236983726760816761713293181919649028989549308362103996873119246469647773953196692576170901417111105504986071880143420280779154770688828004574676306583899265702830090171559859099610065494187775112130040557431315292907619675325248476626855408634987991264303907021724110449587896780882424871286461021826220814955217224512389685872086851406850287034536372219636844042042518025083150528922977269536756171897796042593979824173737401429346870922272114823753871148909304344983012244247253927089269612956854228270027761165241127279882607083830922185372900349512158578526571415402320688422421482046473055958308255630774111624027685811880500745741819660098354974342175604332751396375823350401783894711831060228450814557329707037438765016802379855435894375291161032024225614054064287123347061487902821653647390416325690684910522907079197275898293316368895692245709615940406884509571964632301116825243594143054561650118435046325823090746990547560737999760388893332607477735960044641024863049305341887190443399243632202699862462939664503492561918231789152786941973300020980750490063671206521727365429833968154516782831016162853034798863045235995196705350414121985686588053289502161565313432952973043123164256803095278715595195283096490031565389088017659788250074017098465382341355333821929834577630029427282322669560009268270999365180764529613127620080211631905035200309381595049738637349724688470720516456693256692827325181593679588927891917220671299184436835008646471807747192799900598974228645588043070996389009111765257967189346143928247639444815053212311524691674251318939981312148269013991779777116461024605936558779772033805840962420318197696355793397459792323895509703966185666548822875665321365351863051637489513608751433366337208139396402647565062383049284299858124842875140153623728723425591302907529892596388037861925749354283982198388804050802971286498216437154531168451902722128544940180811914552148115084671425894836594448501763646141836967725899425578004070985421873210246597366808667837807513954800937637863398218670624009546102341876526275724483897353891153959367461028743835641651333826068773971531778262384397034823863887105832263223871401512198896248134375767162427238734690793862103504193796124403143521798318195114460807290727215158336207577820835851640744727834946083927841882369406824138670242126432727628629079754683430421714739411781350435394506134665114471183791398760011172756468813805609266623712871635104698041409444104559171678551164931667443799018188194763976124455477219284350840976616794732882774152866751476590623928128046479782524517859871072329548514328032649176209701945346798238778183452113188664960526486351188468862294790612215018465083984425500762269753147969402248531185971183580167942672807945356282250139403985710183577023016405417800238845802309146960490968282572761374420636269102831385307176492398405644763518478045029972792773931610370819356012505529467503740814419282214672172149149139027119562312920588849439705383849942225539871930485897631007384217735104877189643030743612979971576440616063282736740928891654826629472385675357371436857794847774874227739630636061223993627446929439954408383623952836547032850757087314506270676905293060874379225547771543368146257807748735185266902462819489895919184233539992677739413314915923689340492834698125567167318418583112661283397352990989858154416213861391992220468480545857389059883265445068603744510863971395546100311886472070149754489757365967104489362066300999876336251552662226239504381002313439440200107261879241992326874074896306459591558928893796217329559039776111491593656922081026111391900179413265917879137423211969399997695571149225981653638883186354428472311234608603020333614438896438394331608298654601943946195173539990819513708404443099582139865459729783182041958266941451027805948680576416613505844757712002644791233151209492970457871102977227616987459332748146246716913635074088870234649896934074043828496380361091193217754250088572396598996085237086005030317717600018957941802249745732504293388476208626621171657744142754374869431228284138575584734077701728843182142751070581024725592195292342143190478608800104684540740048437824380679995521985663375096221262311296033939668329007422816568890794610301314931528258926360388593621325659157382150423748025466475995449839035297828077274776811336206070228320756487531271367977219352931276624561467685412162664021196095488450295803958213975482453112255733246056189101107570849570316474660072712085358792562758431663931290284599449488107073841715854354098610939873468332322924150171660338132261068999764485403748995439820514747783936155918694394059762069683897411020835367676563991108945972686125691660034492109890715892505474823263707887562536155873732187294815723015148954423914161806862555028776044543603655447389273171371834687196146111257212448224021658448413625733968337399556562729301749850514071866807712837493255610793341562416755006927113289521006486500385607940224462240298955918399939772844429858138661343519396535798356473904311680066678673482204497236304043594682148124839596649959916361759749947790887873411191330910491570458896970237061763148212061762302349859093664992697503845456906810027339413727277985237534168229755752058564284126303285643238231964427485552340699987513520069770388155428085852643097600022945119622639554730948716918024162999852034442993263119180173147056217570174960733692643927236797168624725222718270005072179974906360468623063705081843590189401835632673528608251337113083359379416654067365190021808470842833790964138493388989241768996586072469611446616592445304851392051925789839620876563332212438290478079434853900356289619978247971352692404079066500072246108116007947029769927056794344636543559086518009437184066921946973235080801922719368688141271501786957175308129053496189895051260931986157289865233155092895153835189603628873119233575587152870657170772470176632363291800274746441291526764023477835656934410353902952010207809588178615944302606364903552740558548277945447243910039821063106244753840436419571242147456966918267640637965012958205311046062451031548801967857563999382484424725767976138539404623574838176765065046218313682651952660634403470826255785212183715231436893295803628610746747377512132821374705403840211969780029320333782053309999220194421876886812867969328466146221746798836032400918261892967312497378075834784066546334548738148787840905934967755450978779083730850983978872324046498315421793406634315368595660092686915090575649134528126278128211066069398799779590293798444827737495070059520888365434146272540464645220895646169877133754967778530797126523369639437634071866696577592676640678568808532720090189940215804831188379178629300535170296784329791084227446858324566907658266652830583685974563498286233888077143551524647323700472052697017350072421058158087034217034446671019937959452099950351722302242067050340304438317982857310223043923302255184758467022962342106624345087324368231789520990704109196419797009368915177103261560090560465243043503200532999130283295412045548697946644557965804143024717778333093099778822882952069114632991769478025367471213887169527916529748610128117532622731031790266288049285311502407185542237524721464699018713872611759359869192240201302449119781825522357399689879460709223843453314642060226469341086352888635284291455406922971660194692747055168474583747896364797413958428274507446141855374337930663056234710457752222977242791317029380251327001947179459427545167391435055920151106123514497650727253428616955496050127317592311013988425686834813466384517427402251415708731553729054824395087921876156418907974689200947399430331007252145352299413698114903026224336678352548041545371023938217115154881718671021915004595818604141500102856219492626853185729270989117672109953659399530261964189888051941156111163572944668164776307903120747324408955059173495155703413312517658742342573954240138567247591676326812147157373003546113985083411568709332549109198386252149450807116624937000273568972694902327716523689854378954596931527433619476911369801808226054259192115417657136971264345234277239459579240271039352127741374267339923852702577686526324248706883374423850741308693643508815972065005248829137468551638863442140865894765719023703813188213851750695141606268026326659873857907621281456400864949329667704298859684018586070910212557018060952648531303256170961826493444551077652867868235326249751321959629627967781310861870682665936274855150812419073375816071308138136412146400769637719191602196447791896514938484103845206599120762969174344404212562759630647294489857697061577671507675016191638881791420577884519558454020909056149010078785638200390842375584502198237927712680563182231187176478623118886903205016347509120748391449201769681155081929118280007388009871882432111499487589117436106147874525881666564782408831436663425465270020878843645364468978297741809507844093274550468561687225755165091484506191057729217554313105567783154144181330217009794572285188293760501231475714598518779239168548756573940428848779348572627319301448832688031022930345886070447072236632311928010790954021985388381756075592270263046032691086238001654047906585873318448099404986644076100136261332309366020572012199986317420046350621297563728963421437288772628824814167705965285589047689169462662642068212740113900916628153995862814382445223035327825446659801750516940518416915230104692691182744673437106832709077026877836610146443721241115256953994426982691296761426656736747359504982261287986162534006266934999434474991781561911360533451496005306225168499770819050636386840494729853565306736789519124827462962990284548790009208647275963462547641148213720818015015944372921384766903554666739342278868580032801476788260250238234367251012636238803833228724400678249839010081251838605321110641342474718056641973798544395852249406668089327039778545485858933460856278759972928321546004353213032783031704897389612281289683642764672365213169936182523749992304876353426843468703866571319199754903750597455583447884212037489307052253139850995578424069445519059736588949929356593629680649908741895781812800749573619527659045830610322812448568979664772259566522389002504809438225934668412938099671284104195656484581948508853924179890277937001439410083839098945066478344035552761515231296673042343462313419634634327946260055249899319741252395835263781131455465842240151932977277031724835137793993686040303549132614118944594577104019120274583437607166446206352945194758425569042347586381503496869568532538004371009774473588363032342724869729115556121122389141618825050328921686174971579608988898735513484444284163187653943812766257262751570324675849727765129398626137799958057496754452155825123584252128494253500055141133655352132886007407652434586676051713621028668136592824584828504006458723252145497638377580311064579668704776105143815891431964094227184010923620896034006247643041551535037753266167158391658684868460297462849250511595079130429962443668403575676433226310028385501927513863039779899979528369962020699516269097159439889518666234079975738362910179715506418633973380386281188057513748404543037390148097738649937494497195846378448967999544056169805622116411644861259735697388747633528923526551730975797008460354728977709849469504784253546455763441232438133226345233017189012983306736473118386827978827852248475374903072795944979690867063887380837820311135581535311956699308799025305443614341116048479412765063452321356964641123430968185767716933003097561570014858930660101953693858015198332252532483771698879519505546495260993387583510346780567906619222152122984704447157824901383728281367671654318034523761412833891801310513766492221895087908543351983032615587555879701973643703942836363232321544497337932404266593789232617372260718782831948720979531258349632867544477853346922128046598998560273405537368737559270574001190549356526597539351884082356229108370074006196148973160139108092778669087452861159505202940259687286864645084432600349170907848261002756892236140853840810560120221814157400649056197815829214151775689399207406782283925906542227797875332852843623920709039097151125641121834226416500024698527712570231201895429447676781440138193303689750261494838132468369279781956713325034060031544115392494021443875120117410411696084374666454701808293361558750218173897551248241951723704551428458018572991897761850741880051476215691496594526425869335049617212862475072444504394311145032816123773230732793450801077262109981031833766650879548138039458398890249458116844223554067928228717820161182694202221737673521656438109800790468111174449105936158894821964797283151269020764315203731943536483665624879261198957586186196161470581217871375045765698186895348490309074157214245636748649957779791815315231269109267992600822457177774354153951316611526282164947795252559220353011928310670328902284403799200761794917558370981186761114541591564397264294330007712390756251210917939760863409298587804910262030186779832600776316013079879992330203931814002092876396378377337886871715614999127835862737495816971963402765974545923867612728285591121925148777281096723422002433109035021032340569754990532800517771726274432830012268677114587055185945057863090200575588663244984599774417996434696634953368891060659124578680097475032333030745902819596821133064909185770701570581475320267149607081672294007207815950364898947299209747233627732196224464545234932884525527474356370939976798524748344529956330265483717256701159193985560094727524890585717159142064256216686020154132963668816760534189081545226560534374069177064513521694708373998066223960617065654724011088043802467635215539195667261008299497427555626908290983418085970094854108033475716532931309552152362729917736159110137409781020619981530983127730698092377119139012188077221442000263753024047287698891113611260926721475268976782318378491552675385948025120673648943543072193436349860758994892491842580054997849936810804801178345999042956065238919687022734563877576656521967296801803376246186858436331310978263511917204992905766525250671408825981521743791932187275455627525343643815467823068616776022743320206925090677435826395682137303154852081584536990912224351821451378647701438593972272561104838784090429456588235088847192129783989606603798230792872346284538168824463471509679882667606945192364860869167860322078735677217096179197328438633704516373870992648783161043919101020068376690714518652478184606880178405950631946488660495433885324637435536279182008964539920969199121301759086491421691110509732988299108235417677659845773025844643824378779140159465867732940086253285985012842122075615388693527500750160960681348906323354205912499330296286853357678428058195141814838094568131865140416137852135237212018428432740148118722757803563197602463245378436955063069204611187238840371284422169461404171992197869594019135871761728213673078315081075471651089566947855047366230544030416889592625406085943871705163257583992006255170751479532257185710629269499784551442183922478671458177272419613672722464604408412230038395901168604642376401728701308168337195394882630081505450315698993591706594179459158533144719690173599784965330492966850257398478664877169162345931777442333245639607933861988050241506839619503600293198892064503261821353424428990653144192078601066011774464281866937776162470956577297461904392976143880780946978731767927724586058541005128610872059254044791080764982194420326325194116498580456454050256990181410857694985323590473552624399738955043062519452584880546147712434541527756902161288977526812146585759716037038594254642642732988779163447716619831798472948732591118214422402643949708145481061598532123929432837991915239746402536549985477228596292157776072015613280888038650563632879400326587163314397513064628652375702501906783425973087716115077722843288462398691153940162110076408767402502972345411967337330261728930198738076364814114271385582041246487742755203311446827238943652633462619792765937166085408490510335406120391231615619977875244991975350174215973810052328917113453211257986340901643370432738127617787456988039049071233330601122637250924791850988946113140506267534496223777959187685562293863415095629714187208402932734686640274211264324791263736154037997571602117962844131534718903362786151863016016392900064420283599181444411566160775085827940075975561779758327017375767395476133724558114441169571659076060694393501754485372261207035775402001553200731122329303406715665719814075982320082177753784357127605352995395449542833497789854520817432432959013390393844977001497206572362566598366395045115188515374247663233656024611787254267335522614551522274670198187379649502446960988669842092516311419321306147868579295453811170411923260441082650245403618678910820155904913556463618027523481349460596971578920516694262087665342707128245304218548101456827556184926760802469550306968031612963572472943015479962885701640197588505319315411981463494029394210856979643544481124458026026434516762422140623885925695028333716991960885489241829724978911672178381148736501864054785155247401484940605815432606717866408884810345269335961620828798705146004111662541463834974306447186710256483099662090088802718743436508275654472401169153466918594743213503838459803527080204710113181364527524140401286460323177568444606101742094420120442837923836860805923417410797046653846639322635221365113119040657888968568693296574013825042045201219345881307862528074531367598270526542356175008848528526696201469441848536733255564649580753171254052831681797535021850616320210130263742380951531884285959146833528622456146080818809569820110087749577668710957272904232087855017252904696831777346160390180569151193089069515878933958737204018641153755174488616623546767809167685054619153267879620658707661372545990158333650639335199695450873193093531828992581310638679548106603947690484606168048103606964329527389978033539155450049311980900400091369529258204341105977037833381555045566130225870194153953078843324419152497501737164960673222775876618698236564348653587076055397369387455493373844969276013914890257597600592617921147532169302632932905865775059762858242545071254664039677105502036690973194019335898910962032484664151940788327032331440028278925985585453099454332204825724877911696130705569985548642992281562951867179116225753487178054282341651416533762966308853298313125403225439527049122538923157218263238661914211841645958141156044054900308036700798151448425133862154052009868614732408982386185508789372255390662282407609793857243192361861739787467862600089125220151905174079218186666815915867040680033951598679954039325082585987553643431590958614893406862468289717302844974421111621426473612609395036667574612441391159258813184720490673793098255213034542001140488145625643288440480886596046794892393990094086397000888669063180907423157862972674499520840357255791827764634707834284650654680434359345481285731997862292629031788532411983018139410217117505689568070826205278090926339453161204224935565469828199577603218952348816750114242888676103339474269250886553894354965048427269919799208159248789432837680982359392570571894834971888627378303684389002048889969739770242259922732420371757893429377119644947225911884265655644363338740844712272084891137652269344243272522047555343964254317492124793309896879586181706654995614272033979135954166082829703723119188218521198659833022004138228252490744419387796528233120076242769358504461493865143684226352787885235137423743283068588058310257007886389887157738035579376872428648687822268813473344281549027246946454873834232732547123811672210265971497930562563133559155850043635761881321892357371778581310856024714004310560266966509675364140242243675655787773068604556716828461858439337469316653498816483965546815948664060414915853193148543532132309523046585267651764693066692595074327014202465343954330036121961188222079674154022747267935183751757363990261337892147779358123134511001230163019707870090650789753859283148011052176617202146243662354926844803064492284358692066784454147160262398958019711403551540336754891476394614206622861259695984969712461117240057572797368858742644087513390103637791510347048530476039531719958036653143989253981674278052498044728618762736966073003586248203526970410385827617943867542865023851610911898339633613153856096922766758938799007473675199277346549578087928887430045297916457477019702565790248889171861571843511734002726085700494292434548242539631748564415715341320307417159381894080512788901175526907031368457235010084092276691483975564654778631554053726541596187267162847270907265411768201862643003731896968481548235725127439453992884859214961722634168815055227673179140676510186107056747325759925294728755819393709204794546633498204566154506500248866585296180831710853601558796965382549994082024181120149807834242721667622056881109565090611934403306562875565480458607693761402400786183421109917344745520777859234710021916879381396338044771985902704043818502116079242678223621212738250888051717829763202913901231918963171325195355572657797172103086751109319329047642985368069954205979928102706722877952175323572087412244824594408546669218021618897574342958738480365487690104020709128454301010874255375441690090726923604396346783160075268849726958724685309862360153605650525398224908729936905012814877308002869302267111742668661702704746420753171686804652464055900527596887594933711389714841433644542170867242803244590298529300696023360329243337562551290806879531576134450310087587291709204125507678195628271789260959486101389184865880231540690557748525568487989261664823272621539066165729475027782310083668420513538383081425891188266592090245519361054575867331005958005013443472370835428039437797003996659439525504528269210111678320624247664705963515639445621100655607966211143426181964719116836620243988588464528815867664928837563507049972647873045853521096926950341144052436644659633399024532253444272477029249056103503189981689136255902559483045982051902539424248830452171775919609386606101102721666114998633525198588619783674729455485060855204383520820048621943987838097509782769476699538394875771000671664001252661706244861925517127002606937324021483077764614289617070865474036308844839492892080667632076045265451380292906233118159827903801230331497802576116269451556694526136035961290806531214558404388209726508881828205592870072690143191815514846232982990732798636080611700273897479041841611941615603851889149947998232748780550028876388807996823612827091355104604640363573027516377122351115793402363241237005557598454653926347443777493633682555971553284701589016289507073998440065923891997426022103441887637978987743791537330593379847838433214747670010582162161946619155943289770758894836037853097217727768735956757064385970792045514105431003564558559524657272776240233313246640841276681653429406367637245835625938584205742348664773708005555138978144481326103058425994252131828335447745191848852456874565412873757408186190437742669799629778391736325744749977373026079825884352921025005634022891663047617712323432253798599614889466610276961560260201742957935276036530123526305837192208812466753024532263895145956685289923936568031623774538963779960264318685509383194427072502509809817336344210033796422327895874003690162972705623635458919689449279237899468358638966426879059586356051264724883764967818905782395211495002599770348460264554199721672290879016399263026681436407186746077750453566575952425236930805194221205929426317471763942737975715110768937289822045535645433056743380630487974001285057809706510530025338311944978645350631133160454586947991764001836198750874902531064591978059689592962266570784596497206471761135853023021611510558104792311943522487137579395060254175170901143313349087159500445672624836778841859018320743042910697184526641064318102059351609093680800071839795489934420814707704495291046729675319021275105606700181371341572337808248281686165458595312710816571002752622569287460473518293738702152657057990893656663475149541160440639108472897944009597118389988006743592809232983348990946268757082121983305911346496334574009784225577941984669292377863597284793173646281938937387310637880329236141676660724787079332524987583832364773179392579875922478711987800548603458446623261763163949935267123143709700256535339964362477389703658271812480821492948443778631679539600057923912506678144807894116122553200234610898068151314886088583752991939814424193020563317423713695317611207728842022972369683294838585817140058007348183164065645476169896634868534291633586764098394532445716392730515611038187866529665379540509817098484396884802119439774479993638504107613405310619705262006766067049304749773520339159474323721014816355166691130863974901100669676214033962512749377330223182245560493715540618420596695781729517205253404087811045631962176781013502365733922632377436445807031514467258192925696995110745205242315169573833647590176300167553806500944203595141956635231239579336588298157842599729814354513633571493501907110173552199872870851776283151859340549730424119474340927465564794576577288919014978407091003729199565262487111759942732440722692630136574757173444102304068598655266872387511595441871911051124090540246804611219103534775085084726091026088512836577722844968939215257443292535598458485342201179563201925938708661343082364025574963352299950390150938890129091700774368333285160992672595198817903542912742985222109106800760156425077842349605985266157973075652979457641987194142193992998066817714321795841427537939690818805618844930969628118324142914445163213074243718966321738396433053903026947618240769522618059760737859441416060163302472118121767302142505058076340356468265120217133338851381093531631535819813475762902394486887650187665529202163493386509045864084784053118601055829752720212410750673647502802954662584070157416580952533190250827535870122635699670401905063777733486803591514449326371399561374328279403123367916746432785616132273588747967202834068818530449692659125467582841027889717008743299280867972574604624096795895647169604225132367368915523911526069655066705546562389883275283514045819584978312364078082212446105991830573071920111369543648885625306422795787511688363721810974802077428774971394716000411024591531052206592638561328581778228241593776701932707174005082797348040827108357603342328153816606821545542131542111003002567762011871625662221647361203159137006167181026513491942151428896995609602281067369342008520837251188036370969341582089969283433869105284994686405189587387592713282004192437151224698692234081318181159843874997625187772266831155156839001185374901662611444543050198203030560274813673941015745842346178092368839619973843635888996849743115821360541600685062017641260465282402214543574405928735744376195625221163013046966958938078684069346120170820364351305982489797342661731094660016904700836703992175831923510838856105326669422486163226303346253433664678954669100635675544327590261288526067738251763477608084706441129866254038929605629379282559524404700064236621209807797207600771693963550839150663909272795304962615839762605328516793715799759746205325342502294789045792309957876527242568208832133601450405522364048649919524639858093401144770938648716734861839013521528424352769048390022133678807855802428362392932838799958813916388504582651248900334784736816518751506856462397761598226016408035246235132420424166978078914115961869082205128885183690392226605443038097090692158248422530678728714542841946266846457588995642488057113532218451141476526799047991449977975099986370357486167935379702157146829510795928269540311327364358746521300454936877650801202637831995321797366251790248353280957217927891191196819023988015101768098172723593922728275969580391920187700358300005855627286436850009700216612625220170941199729892811016702327334303599426835108174488113497236531294367090030252366498794381564179246374290333837701160385729485894397087234341992762976042960315208340501698856867284709145745042113559646473524506299292010621132652418003285831541516127098799885189000919424245846942096859130644446514896736350324799374308083286389335118000170575012038609875235270305615722121306240270616331734816763933006906821592342539656398391902728753514830086843583034475795955929656891379744945668137834527030192475299993725323911498176170475954966070448986744533342334239884960163704291347125447197494320993115066350651107376583159472398909612555139571784885414684672126814143225381903295921755533399561873720363881415004918924934185439848600954466773879664486075908542133672919279679018673340885953682689964687505509243194314095179566586588514508282698050934573068046957441896176307427594712577140156024694691959409666736880210846260817730498221396821267709017927240073400130015969130098716882159796419714533322813099730561250025832178944976780267461562431355491683103321059276507678525939335670518952696103413796599300271319973717386731874937348481538936303009050145328277879881805297307808432848123531598546209654861557220905955193760606354737073437708409250335147176166541781102434377063839853813253800894486440493829724385186537064868089005463090479077921034613419856967263780461583417305424537692744128723422674365455708678662307120235454174393553598627752339544946191939931147136514343919416698445716446905338780569178630892389570488069439677045255957731846799390305399047825814890770347187053774427151404588629236877067708895817787885186472129139232938027491862317387565144942456559481477310007374946132146586985163583040459762162498833417040287878943150835870283403731969725157129365458616252852962500929608895868623158048350918619654902021540595529934643680533128214677429271030937163151706271769615284215927455869545553147387798844739620925198260912255727950225936338398626778937076281172633350400804539755447964335680849684646486942465752523951360765704968186006661772757465056085663079761548718432408617883269245334440765577136153799162067088132849960022137365333918652177038320020269217051769591055176995894360183876601196881405490695041938129451157955190122201223288112138238579702723129563910649466074351477976337756100478043295104565066258205005287797652449919703575036128750775656942134076707691139644062601450852202449944857099219355229983240086489034050568855879627138446804349012472809004662245972947938537094026965324901847891570056431562774862270919378465843448686032830507112491948950700395792683452768184682603014396542469789993215200237411459253429814538186824571457567508934946470173081361095459605149187023669939626752116417628207516148456481663064539729264256938531374395357264700294662528230912214014327888223095809821751278354897747125134189637144940106709772207778204152154000851923729724885091073518644007979442494426591703978505287189600557043059746014742217237498351456415192963361283385520005344327816208500587143907595807629457232602593109803042159050635264427989076566370823443168684967592066037997041581724248132417377541285672423869399454750675885745755466026822551230134492894427242818932790559377043881414180834955351202811057293718323185667397848730472231227439525085117745493483289135811924969317452340810279355969062272731806628464992347248794573737395133068247204580560447228939139878636963918504357494385590621226497029783809039290864426142949623919910346204506841337507848180394551726321621473730397969804638112986894648544965596053940454303407050159672078856287134860629472945883471048379551491727877464539940304079622797355110941647459842957765676299783163854477045771246035107484470309170824626971402620405348848803128245442228643805635274792236127155942975694196203489419754790854392209257455728933188571318118950790327601527875508636450757784701820006013398635602238847802247004117685676793471601593216767194310690400602657521674505056004481166518311541757153451251994497443935149159896444169723618415422195511735574758384933161500755002733364287122696123208169848348710936644529919077985979898183484007074965755203008472631992581965659396019257737146066198864635048961402058452934769059056731514263583701199789207163847806690537636826466209134892569756696155164236505367533734313522120874885405885649701563629800398057586108790530518041704038538839903840922448086904153687518225849093327198699664115345021252144666805565655359058086182828682829352793114284260572487373344745030535454628800577335872036189970543061117413956572787906945191201576250475375052963747687940093851119268998494065675658683637728832568784299749450118228910494336194574765944622199981544157997511293216663595423707775609289175014894083483239368042531063430694942138144851956168384328543463876939814058636407797346002810115335549368074555505903184072804477737812910032036833811756237311631694866618696341927919876175595802063813666118342861349709074797500071101726453599927324731902963401823844027345414135163321457615227276392910115719349006098750676269270651953836656533404664992062523221223223016322972393677024863601103131192449544315215539997361898351128810841471812590552921664159610509126643495999994737917648704669504923960943249451848230089982404137626764348438622937229387119803561176791311811854034895895570698248730696765837875271451084467330290890459099036253085216667282264130924482482892823579413920034988331769579650244417093956753022727540794652404817970781255324639069411333696363972675692519829075519056858732951353972700663453798034097561080704196258231456923150244295893223479590454656010063470968635440715895515911173422704852284011286813905067276675024680900754304590804852182063851588502623582573369740596381384013675989088868337526482270029091836182301190290227099184378024122072576227040759353607402784255508755561801318496509861376662198392423021548531915108803352163929885287716297036448604149093132265607401012476929075438474423313725049453739893302673908658170053467452630705195281612395612737024661932467734903643446666877797432704653529310682485176333506820014681925333943440742506134531888385502719618676731750220094246446579764050579148580851415079274817309393048587373510666159157006620219781323023273424690821737276370709771261023078771930334711620922517468166231149701551260989059526760263747289939963325529620733050438474967846012435653981969804446906587988159121454362012174754038665780784421578260505533752966711459365118243448870486807291915320775095117751381953028111959706098497508100977987222655940462863017479764510758008269057207734019081833183054754293644508501725470027469108490264030539121333496772174279359736771885027543908796182292604174894254804651227450722176409034109253107650027656743757204509039358900394298767629455091586469720103953383156036036322279072297245591735244505738949199461158039168105887756299357125006747518411492843359383994707776959396951485215792063479925213772378669435116367249789950031157359653619189353704857426976773185245420244082031628774525051343905654524790571426702588202164552083776982985850732116441804482681176504106587085380388871771339185244242659569939833239366967517874179865113331515332923523845770372697410488565326409749195501912648406207395421724329554888636881798716842760411466616819123965061055945903203935710910409675061359801311807708996644761445107446661972077061286005571002588782165241613619870348170208496398407392071052009838034489810799430504070426029844606740344777255109313633093053982638446858500888647458442662844673404054345829026422786241931628453534406906153829339641361099873446971705528500318091503332019555248372650892156420954064959175100641483623975491465163333193348391906500323008716031469971082457701278052379079690175946723870951770788829452261465689283328258218302651259771970819666572074843872086981036062353213313069591269910041946410553185549989677606348657133273880274519329289669634557029261036476349600021181651579354489259647939956040069942467390864813386080621017801056674806276921077742813456985441212584123054012259873141199660404479758197863587811400668683516380529299285781128614847755599254535610492914197014269396529585135559582222192165333149818499269340238421913502734033483664696393423064273571678335357218367891330749988586929177154868887343298217443361304523072421371658735018561195391794443391331412901227138370508752746393988619818120947292158386605586426173141028526864259049806878961863689637553627371256191337823428478787840820289681297629212663059790719401621873028348474341538962390034435389334467809850596514017507097083812035838307888277211271429871801097515762824355806650486126172593262104729235487132854523323332892532355647790061578310833821688755665927762124393243578386236421950291952656058967537116586655560540712900566288447225291974890147461668136600813248804398747666460294972968715135898753574728895637766067728035511807653962154043578693959069934139286223324566211874898006379161482188307078418731544385660576743637081835761031845392301375936408076051101692090933582066957975726945181413648081610166716329981163448054898655157374403398926381412378919973104287408605527355344014070313455864528506588468951973554743657697459989965147575759572016347074986382470247445939237681285918282302886983703968811450240443219969649715076346775752389756643047953162490549670002528307131664587195953401028157731872202855551138520203434704829827445744058106204266921919547228637501543786731844052585303956663883346167908579117153688630197615169513878425844365228931961968945428630583187964231578292133800841154017344207488286542212792037937877420888802248938825525502852944166533474614230060598651380859623440589149889357278559260620797837354606495366817729772185843623824146530958386507117104695161159625571145413748197872624563179122984538391674231577924716715147749399013066433188746546480980693224088735435648201531007387247687961511643643750947286577487036478770457728195701312577665464448118518487953882380528149281333695752328569909033123566847147481307829794361031988196342654375020067883028944370699387838057716057841933069470841967286826665495732022138669482212628768363952550912162233718863660934044037415429381584800394214384475037115896280900693362635883388456786781381959486830263258632978123007359057478366392872010906323434989710392202648839123108318753097444591888348066863250503296005000498651677632952005298005357019530482060715516387113101402672686598723818606854361814314481366118552091632690612588098643525196998801781965093381155437684881967562991556145632066827698649313338059599615482414325851575393538074935917900773416845675455086742796980108804717209403383224129482890993437901088664640258871894996067823419464202536317569876498381934512319621149682995132469031053226524930392881718722265118880886690516017785664002096856107330406070149438174553112084622006767734114651882145421069104481223182895890184553942964334885717453237108656748593535138616057585334750658745468564521806217524560715755439762382303158010976522964783580363689784877880080832656238386183797172972298424561386516902192021560353629446571257002830050030271221420743812402622731861627854424814116976968208587483035103706174161098540769281464318553237471667677094456349232436279677364329157965865757115315216655957614005554904904692943171266497460685796663130516832516570178306040209580872434504697265566158798929881023161552112534244167428445968729269397803469083723279386426977368455519564795436685911030954912327561449948171816462827286809641121399356767308721901479800646211093127380867903854859999074900006017829223937884810870372881073875242877593567106254429923847297905547665286260532489636439675764084174505772397095436581675234430520775314654771759141764049440425227521642533711642240186703346774956855431837642201497433637698853818561689951843330542619846576052902712606571785689564950134517741245156647780742513258657830125383445567007508245153595498771063978276319990349560223490959715223263021031940174216282809421898456718155868112056840149197583794449910183486095602753005931132242978728281656061098490014370908145680014687188198983487004469301699940832642897094080306282602055096498563025031274702523904466917070961267590014706359449364446551548097174032771719273042081631902587040270211599236323241476330512672470366526768640122908322624739599553905480473860214114350290050338562723151721685751136687759189047987479281540775809548406302132610548357249562098116855878868062365532026334116998908304924345458696008951120887706184043303912904999173775028893429886209740259364234603197636446718992104323683004285659437012236862553064542297502630201847199049829801005595911175657677229088565073266208297749424987751577515386772217805317629791905391097478729327267963849512222375924988999453039596112832452873564261809761288904176322836770416058969996189444895816151245326969455142281443319558466457248439853255952363073410910288715808162313701027990876457480874086124519686447178695822047728086407929249430790203936396606763879663450615672646848991281123939410782168478240697343909776163393414128947399373666133338884548740143650189699631032470157401479612763333344014884406035962934451746451732440682272054794589407753483761828217195739737539276020234698670435901651066003242820714749691624388716361260640679230655424167585126456958078532569449392798051143735070696945368179806424512027674609564822689882714074628096475127054044741391331294585312422356258914837528588168210486302118180113090755538844679465849914694646228405767536648739379614142166157094562547166454715460563147435229949726601808346145575903595528621031778374774580935032363571338010537100599626815045234846079943087816592242926477816958244280447884820458609209119565587185884151234296026837764259525354511647083249115650486886692058482569804991603117051528999749946837935490448339077756992220845190411693619846195127461358192188568280037130429102170947052090056404555937995216232148623730948212669864663197616221059704284467492959615443803550881284685595485979622767766039484416916839806888089799742843450147750608196240320151835965379583317720642294361429720255520116161480346029130957350630804066012215249440255871011322785567448090492080310024972585677085888956676152492659821827656915320056165327635039071066282136150236917304217595679567019616926661688689653912540168964849618210341999584129929593293943995302083167759101372761616253540405266807821497783676009377012670436242717705899728142048192760288825247184716959663017084714910408289791560829995429710691793209326105561450529057620359448797227318467082343338872356455472016823366423536644830042604976297835434724663230450173853141839714185455001110795976724948317404931352426386291025673858462326508953085010402562996815424468069870596607253356038919060141308507099269788350128121764201982901466087915345729282161010603421037656839639740629328718335815083866370899915726213354763244859137437384280065320328691025462081915590134154899212244048847649542961448919324690791866523201274902386260408482185770522709095452033760567853553171055170258568835268418449390190903077825651312979060909202986915578066625306891351038920857320884455814998453495697987821858975210627203345127510616280273535049715371328686494046213820044306978121927923140431197957911968782711343705599729779690159821449792221326758715510460570258179392977273943281931278993934716106835441864350325895126762379392432913492472511034522007469653244804479431889900032542619240901683817395295260098687469647415960819152582761420112239310567250058874731870552325075155964695268689347157480976770863031360065981245195234381925542095188100278200529190396605399839015124954709069797381186077585292938442986704897003782961062056268736589022109556981179663779688511722663812565744022594159016043512878113639082916565018821155743678903235885971795398179067783025660039864069472090684366437631038282471527523397644947955705395636954070048257883769341428320866636994813732014600457300228269498770142689497035826944231979294428886576348933378853325541718374100629760240283386948068525217355649494688423953004288290909184261912389690696658205547470073814752172813429725533741538701497777473764510923719021251899604770086429712540345200906071042899254111598635884512870693414908524562944241120384516714484497268534289677630240577158806226680691867197595934209371093790484308098193697998917709395295729550671520552629041259028905410963811049613453110425967530045372073496880211123493036207104888791074065912645289584629512673105781423874798408784466295350001166212238800261446660178539510965180511347113929955379621142191499002320742810604833003087402697420904244448023330636133138440836597252052778635018641626264932492668039838518179501387449730121659986410046771911469160527455748859139419678371759436302097041833521797990115584883487857763363629942590704259932285222893792584480369534180830352664925647797198797712265249028771504190330385290149839515453866907525176858548995190764146586217634230615893388553639269996158173291326921792434103766220467528597546759375812191116552566359519745959211817878048556559765860084218351042146502807540078120239428759364517065895823007426539778361322291014768883517053919737235208774560946235506121316603829111226802002707282914222597211998631515024379589889066449893918318614741444791208914370745035193509449219882674146171694018696526937456721787164560760425148274867435771732002233286428619826666103498217259207097596796104217726742585386003280693787831831870344712837597716247999150571236907929563822228561529984431141608856548125826356505947868092158762765830625878731033194196852603944066945414295347702601880750618200741734900973393294769616936975912555152324822390242170077970172478192327084255039789954370528430362786265156940534961184007295675798295832081893993933231134894943019395511319559304530358864152748437754859528643859208844000734694765916176430416146513702522307726154749482547620775929067364594950940229797158986442293308478592799634268493435977157563843887188602448499171902112218993492868704303254205365295277539985688592720359572763151086085438949929130081166763023439566769385321876117403650557985798862986936710238035040343491802139961235729424176100743488656987416104263256938693585235647792722681545598299167529732803819929855518188181435588704218196016934163830354395563961517098958716743145926667551239650914273862644670003550477607584759081923413658484541920110257832621159768310213496473459933172616308246877722732442043762162255175968210139318233400087477628393958086241534715915793859221518453909732902148273455944796247500807243299521401461593443992949510304643788939618797718248779246088794283084185985335487123322667893003923587586055718937072578483964145076947063963420143012932331914989438113943639284025356563243822404134551056379177729330015933015898138908112305518324206669382400060704539494265188736693450179966673170352032896074474995603809828706785081183413008192868597522181880325724763687970332165170711472391532642152877165730587523633291654362495417946237578590046570884597559658858728024460536207075769363214476397070708846135724933570695100756605501113350562932901671570586518693369661788374547847268645064460731366956504641635287648397038063969226755423804308588855269634283143243784674154860076812285380959134923958011997952057776220489891458160030660307389343250798083620162293628207524383624159534768414033678692020171604721788607436299947924988317255150027805607443379315468083091200107421721362129927590107911974387335050903649091848067740087791937517782969660851783650466973687108211003161914928494908808632815005013430498709978875434526418050593296016671374911913936238721953874271869446621879435081243206521877821075885624855379422823303691057978720405504257518433581718436291166485019422371266702313241914852040629588298743473190740756114458871565974145323365936208283635728265112210274117913600378611750870182477039637831250379822520607351205198076200553695730857236291047246086442424786671950538961448740791554120447283385713430830363788445789406912866001824670477304541122719317643846967815119049333192695834515146165194915098962174096302024950454531240565289628362969468537595087680404579894797077997688105256153993417371167491025948818171518239525940103277216750401933069140340572659041254294579644050061574308615386307794989637317250381709351028124655849591052606159172437950231196634867446578567932513855619440196500883463534506034966162720100252381600916855009075101825262829183099653942262445338725919410533036463222975751515635824316966717860349973689180625605350936674372959129549591389108982014210147351466436883822172237070611597535224394108298998756292137293206849453259820753395279636155173255389021972228568808712780332426698062445037992594820483741522052120057382551571499582899002461586371535154964206232288304272725015458757229283285008927376706555172029430391404026312171343651700430134140855366141204681034645126186481819211653776035014990387594739523260035426836910999857744728771824154066323935807588957768711046234915689313657060712576386319376088370836157176423998392024278598395821926729151230202098825242285023735660106198934349196507129300228198557640524173656952060958402872978831783863343570689520805189394839663015319362998841654391912705987572555493304554034553062401162020386287829148696117394248351018045575162186124347443289900268454061424384673805348749559710000475879502607415804366502629956296712827716162316147159558526861495917807043333629649327430777731220588860932686421816818522606408680350142624037098278300646465733399762796865821082149876173073932948926580282917332413031471910397419982895061005936897806606651055235276060101834267636910446657416104184454864756627343109757005148264185066189731138227120065155839349582446665062405079681863895238265744836832206475341265248952591020862877248444571911753432534321088424394745089510258636208578932275895324030439836261327992193333229826048457809016068453882761808347589932437787486915679192282989204713667593036337589915393855574110609797559923853669887941600414512767944030682521928478232303043141805491978414229107967213367650303463250639155985713814860397649660256388929913410698608272033779405755213768306565798334915212972022573949567321417232873283528900012809184499205595770216734914069022683231296302993552192066230009647382340399748791407724657680595907457027317250037105562601860723228532784958968791822451892475245803227500805481654645888530003486001892822958747948743450133993637484106914014024845253282034552933546998694669279369433986824531251057160041542527540695501428111701372891701621647973841669272175958691077149375374514242250773947450576625401712521394603595172173988339763640316175727055669261400253140362901525331305642095036692236210774174692169822255093567546282547130469371051057088533546500369760246580360430750283579397343865152714174613011106466751884459298432383884676661462115732322567203396614067684411499522125437610470816389341419668103719221721857734927133296608321314571864428632545983619337397644811336778596974280035172853138782621169095464144211967376951743155184283153402099406141853700947270202678134107643560265391258226816010806892864523187457235593104148162068122771566734691760410500138295948650841216448831624244008751254642952828457631056323165938727292738055467010240441819672620717219045514838287758750474865542979763758490544458770065317990328427892058743698079141821629741223944796605012558704997227814787224188879311202377414820850291512039181337581280891105500776436243516517251357258074256098108953849699874704598552385952844225256813528264778432861272999590518905589230917934208754226981646738917691293105282578021914145942649646336709639017075086848550161016002133355649415622015671500509681852623297033278942697716244099061505151829434457072038304080855070810062994371987959974798318174133571661967168017370240000852337635869938979146860376117844091931690803190263866581259719572773336572630637356369736419602286082332910449525315081544109536423072832779200333333031417818331359800957636934813440546510532999479980615787548969797796485757103653383087934295024479809516083530895178532569326573644845887089316435325754348360131962347561404535525710350659813041519494615466095556867771618195216683412790045616080316301261597236910344342357940528244486156029738725725412719202513397357295632684526688219055221617698954960141574205412207633444896879728241552422776772105910746557726687041396388410838528146975355748969586828406166200021391651833002932763708153233896651944517926940116981844565508084852362918670178471588348599717155007427921870283972399102022856306868672791785538946284064622537243135791854122189613447198998825698494325577305706623177698967507704934356914635884403229143675168453154875906202234069849491389383736639742724489968511399230973840571302030842608420068295096685362147342351570416065107381209478574069272648512467159292410862365097689443086141284534440608573417190629036048725403833582613248846992659340092245662105138547104427995986451441848577225628900385105779668283937980663331740478709862286175308864319350353276907544877388460604260419923793749880788126868877012890648425186292541416028262165907295827861275799677598469863866336188363614618881169672414525132655890113096529546581011881605025562427515483906680735950129075777397423961840434885024629981072675373927077073649595445001254487384849878038221901869795335322119255115490759365057718153576174058567556289057669569074526226235475392470467569023683150431599247060541925811989423062356280955751454252227064020641006760027648767320575900037613878970839592648404232557255940472468517150936701835800016134919975730720748176113563741991442213294825490561473358107826425068372223032002504020001811419767679256484811649922861894366484074839745110534684924728258875451918204157275995842739469757993105603147617512430931865454958917301098334923125277860003950254680326474020755279637180091484301107608742599207836863160372896610375105139127088419988645385258717700168019599047157069772103216727984874436431702333342299782398184064641738760516010918869371461659614872420987374716126423749181996015233389253969181096975741372289191515038847429347001968333714932878143873687707275487995392826938582555975579172914816285565666682720344713402905018537340987429529135888451512766737278776087698753210768962451351792499449889156259638565977826200663908187299758404629302957160276162120171445835396725953956207321066097634703300945310801948157897395993302790323484047341715827677755936160104033007937354701030184833780424895804476210857263821717277461345050892514481648084778198588289241772188494702807151737008215136534296165902192200820269668841500125657926667744859832568234655401057264480449414340023132841752136290877913214263543712304693691667925294247018682005134849876662468431415187478295083150757495490288949617809975746845121745209923386911662764142648646121905234032574843012275952198125177431149625116560829484188413547206377080964696536501883169127333915109553650225935401662547665050238134616003619491893719213846281350260494094024613819372843161115397697746377089024574093771242043023856871820451952020963820501098263768548959992298052715259708644301370585121745433048369803140070932634244946991434539788454292626160729802820337963972217140486627203440601355353987410917178528067565026732347578451426430241390831113378557188260299470967079861027880863405471986436240699971588867370903513250729082308460131712921967210666366488989518121979552267113052113713986527635787260899383708922218689748856262048182853683240407823435945368790534185389559728851947618517355476878900370119700811071512757718417343813768069925317578597460445103725655917507829633334424749515085535470735350883239023157767565409035736494786824674715618931682741380162878355067632321920354653052136950081035330851844015008690447889238842928540924635973295779880291191337787300736347111874787059972079684806125123699680398083979776694331747360360774673062274061750982079985279143781585456642074101451004010368916908323329080619611739940868199969206740195083057843551645080538349887775330654871214254064491860987674387875354461016880452617108056304366623133655613495884190988162169010951133869605144324459867381309584142274688474798380328537169971753011740802975155757784998421384034583748487334048901567451306815989859262308746128208616163096832518952446722964784380436436500113979278716615704814966534348825298276518964985667072099225784401402417002496377748048216039390685874111485153614439850513627786915910973429385265760563499585947929461131471365313604891744591781180455845910146312426385202956374223374119666516728231991975771192360277714859358960445640451237472863713565302016014697417646738115208649029249596220888645043832055001472484509213808807489252194149735011703013563688287244470308931192499903709761166818077749408573322878228306242505256188438766377800683041635109377104452563088580531146555594049194115419660412307912017688008662627903521465215930716476354699617658925451373347401864057691366379651588606446537351453927437241427387750165530370982061067679335928178534233344872121613324566273332953938946542271505655028635941479674082394622995513460183431203784756070097578886864789885826723311815209889451479631633196104401642800761702777190190013492937162274506285842645779924013383142646628968964673666591744778181782011334777775195087240342793275737803883601016920377481070301539112652343759009983181810389936281182860077711074634147171470755259040955357325307068785903259193734599964018332829071040524969878116392056542978264244955232977084293158370375251950662153203447449846799299131938560747229272640490971767061687491606671880193499028118673239720323977490107145677588678853673881532455099165019228993066690854778596338772021895977308966313253048463869931296751203027420064255183751100716410251033436236605553108026254301802658445220075257311251460135626307859061754725387172058534059059979553435261235800342754021874784863904593267332962595955445933306639391926166649651833517450015871767019633010141097773563566003443944184716249098416800804235391392203078111442901033239200333975804932673095312205422184497451131469892131242207661802390279953877211972663375042446618120221340278851935468175457335685292124704518957049584976264557921760125885982240913120810055396543518654687725361871281471526098344967066992997940988161042490660414291232029129773011478616062618493836797290849995902257153422491058873412948433839937869664446052101317176329035302843386971693628087023799149752184268808148125130743941393609397446172186354647884046289147312392437088198286387184000095422592516959194792790315722090629819783553519419050245108848920650406618022275690511447947905451732486316696795977502498117070818333066418043580634595500336135163017051989486856037375655227671937279538652482353143983223264346252001872848167359224556340246588132825461062334073310407836217437035462385228612434259242051272901282543464371986719826768826182987024421388064222540146125013261326799658270791715706605733360993025995187163129647533012436927107105330598782900181584126469905069689885544179419156288944608728671658034858495348316419577153058462366787496709110667250498344293844285052153945750794076854391927751270454253030165324000737711200007277275580515300307132583218314509239553095405235692884110351264529750489160092373555843472796372229029907070486203606115187000599908374604524157769712066599811605455191267716193907289489287307026696318389418728271334440875653389200335558611877158239778581334262138044632458306668139033324998356466765096489900848306388728639645085032273640275768887480571211572341199057420128404865875563614116276263637332901559417367093660515402293091917432368472660703924729243691187516920455117609794023922990773016661098387266295131411157521471854468586395186563465899063968205177954266635316041286874261808730932446550391628417001769632592744448890709540674398692730022248428776869145113325890011453865714946199784071953018317707790103883639110516608395036492226597925201698416407445356012180065802374254420885857157934119900995090961887378782832869715689405984880372196665227926354812569999684683968173962816645551087433646658395326731569974132365296725113385450888872391328203987263697270486063223769213258568866627144836132893333391014499485693032945852015862061358461896431187650628199531471047874945533267871192434574270429191226717644720312147767797426017653577693172117837088406155011742739243137694676293026966612460713997818018702511130150345182092646088384975792827316878655815589865264711336815385247828337222836389039601678930321612670426977415634729370400324509560645360877930721484929423078551369908917031524105088125729587799349180038565274228751090817133328308061599649386578309021059962200411377928598786028945113647046295927277225994350583532541626820090561244473351771573679697954614464217401643054724566198272398399972588888833803809096819465674698047492344228706906674896481338778567498421322691628883521268987988051035715709919527026789424532760655337209189088025666291590073783888566726471168504935009743853317045067632095013976202814963350444263596656537018308807653992981900909022500713799016503264946125733865457122734934763836532073517722144950810573256035782096969943285256084204135108578474589706392433368015095536554420668082259126376074882026874148773144226010856562957367729781153467617857501827337469101598636221688958024643914481214435279404562608444083784343850213252094904707450970133676391467300136952018378473401997599374669606318750880835246348311585178878076044166387558203928559288501947556407716078863687895688189050674201844681942248839113350626174854262654042755768739661964985311132032973558817178294337188546448667264894003034334285689134289253955326618207153283076549833460541484431300622806163552423771081432218769709612151477734005342019482010384809021898556043953994655349195484153696820467376203549578399316305630326464007710879790118414044964657441211023426094826321428244803475141056061812118442635113318189474850837228485842049288940315055411224515112713512348720654204568404918626679592751437497309926664421927737954566688692915134341506129173588100318522325788026800826975938530123387384727150368700302656427691672581056951605614771874910856888010737957259531715228034558549983100027896292019331275826608839852005531677472684580566991314252869550317425097458445858901609451456787221837871983054649950480425597701971185861137570022485586858619648720477592132985236788152476228490162503103536680628396378264519392043456256640827187276378608091289940074102656220431722677660578327459476460878180949590536185314336098852042656778377485060392472628498910864392663820517014649100084716721842160322506966644385741504029743678607071079157303086223388694008674091057869967499499261071084374386837490017968945105257787439741402869800750278698306658851638905687859660893676005638769327838360657679607742981208830629949911809447143980958264544388962061287618696987155735998532880576790906167631380376043785271129748847839183357549770154179336054101108491105461838569589426184381964282570056247294386937892118942215234526546523893417493327493807192324066640878048658366199258261056570904038502784941310542037578683272707063508627990046630930086899573395888397619451580704765429195909584981878168494356535910071840854274199941058520945431514609711495512320477397952601343411685452409506142313101540158713443089634616324175355261464301475916062124847413233107938936554455519775611850735723886279854367713157862873598647531211215504267561666925507053615887125821181557835485734094279761915190353770553474359022614718501175777107318164674066874506186747729456721393174161221724966884013807900630634292886682620636031810903097630879693235255564861369653135883859913182658504997131358283312802976252915912550580859607029203587403257951949837927645382836824690620846511663473013517428999521276952966751323478702990688475542383736891633777180154746827007756138669353221813020224811732465878268201735146845041732835062121552893077438778172769144030874228447773941907476784713654008403070901348317614548821314286054562021009530617014387497290977710495962181096509169046180371302488549722302117640088208132297889010691984107533893195324479353094134393499713376833630998086829424286399133281422078518487467144329901280893541165325210239902872370326969336322603280110639688055547470591221208351472860082193283914052212514987110752941540404662411145903381431382869133906710656039237889322551885309569185045721660545017916943897673918653885157714416090541397516757391593361494863634164188135411564882326540198648328439053975061434281594648945001152673362847208393981358744055748338158228194739932197198269962134001785078675940323386467933639555239764197207401409855824864119851762953551013045359407431093185163805071549867054400992349753640381631608377541894681850326014181630912358007815419027023201801946246319088361664522341815514792588221016885301309300206786789900308400724175090327308268813439820580132693194283553944041918175865600685526527861577602968558625323297352529299625792464104830735873211516957413235419159752116634316528829371844285421041397587202122242215217712026306683257763269329401381249077357510168984826320322288060055824995315014451280487058627470660616375702472253777853137540432714841686247569225450382505776358346777523370026690341547241498777921752815542870019792111218593162166213362140346041624633685106635996373600434729956159315110960646663516359787161807174846443007059670757839135328037407558553650906315903836138306417569850747459382129224431495313057983188467006239142034736782688309697565723437548590012849480732873014938932967729679095459754869516425714243582589903703390773360986354769367989352471482807021057792433136556162565173332705700703990516637501928539457256466030894975705159467940531420943380403416852661422715044078452937742959920119555927096113420019042486106196893001427274664116808866914729372809812638666286600785858396122363873935492297523049260942011568821501168989423705802328587318151953352863133692703939444334273630228781500113950093674617868554985668115145760532867141522830039367973645866219739682212078204896252749420450481368268767066422109919925645242897239135266765245473856438386983854212407870180997550434670687631523999560199489309572318902751070492061135432523854553123969254087008807440194584406850998972106380873026062185201082571745671774565257144543329108863615189471837306638689005536256151869538846402538312739665460920074075590384686219457700602923142363682543409188626999063390270268877775447883483873717088244981918437581147008623600595971694632569737072565176128540547401389287762551748954854619157678436834591770410453782803503924598928147381496518429203870646803407003615791240728609546825893710607964944179880154366917619998829024530810300910922692547811704797839466934433419531149117875060584892529747948423626155982328296788825678504204142405393215091083994728219993399512875303149342042096475632757429631996843068588166178273930417111181612937227388961865455423813842622457079806942198716323594901968548533360524964015476879982700711150951766896102622531381710025322516659918735050479233495436178351359588071288028474433415166602443074657903259150536683214179220620625454750549505155877527915353494197839742598891235424798140951018684357877893719469233777596349323519510918789106134610692057011183072494448023464862193598821165524961563624180136163916781187047147148363254117117274230101703459230296040763772361328561540720156767058428089773720435313805438935354509344660983633535141189228211010866582839238228348635543151985405418524325757132730252635881145381287522317806487723552041991542843120812060158851380405200164246157720784195990923770627433118905814527336094098353025333523473177939152551821445812113777407169855202388009872936463925669512946227131846510205406733383090606243765349369965194187904077647531856785058892090755030173676065550558654762436311159449989415838688625869588511572029347151243840140644286864283036780673777109781990406150903441145171678771511828288009460686750596516904374551249193718381134796001807944010034018960897315843570319344790817503827856316796731149568530897539329998746330500110377106550356932252959904077744554322957348086793891890644898663860181297716836158217224294376164808868581160316576389435134594577210400121811172355969100990034223470419340936586009254124560005279679305289500549099942053858914957628474538251543877916193104302657170129467098084909291057106765539814696600720685255512417831913535984692919769065426274810948006989337155645020207257733073632531329311488644219994513783083644904298094254356753050730503908598357643551976721444617276787713545438643362180783775199386331302924882348928112790271806707578519400368893037059634022582331897750500244918223293971497909894210572507932880663290210801825175042776448497204496104475943153414813389382612800559662840095784232542881539188464801288265148352775465506729915035811200710712542892886880158831286786041318775347985792790538098580798409868252499617660310146814464076401212139995943101084526035280437288657671345511988959955857569997121163802573131695977423323364586569720679972291303752697346581152900925609059564054764914411611789524772533132576043662932718144804952981814826668818925589964134565063167618344742338605023645074788232381410055792617311131212283249000583922419475260908188404087711847866540364697726312923639266662809011502706172911837226581782705109656501182935726410514910385497720739219999402236719372693085592726200341346689416422650544920904047618278349605679646392149967638101059008027351435031959100500394068705359360316195837049102428240968676726768048253338240670552618980075326056194321704714300685021026370224527216374004790105956593069699293962963190539485336124705871006526585595257494869192465285598336793717954952831237686425051032055289186041037293737689588894253405386291991075139184774109188885469853172051486850879668166240521782532061913882670549934537391849063880005431740665910589575872754377683406824003601613458436587265698377514141473211841147543283989586391848801662267067083643247648282276940838819955038818108150084900689800960264455698748867916265027535716563712552485899657829866049917389978328896167259492555742143472130577965368470132826227489865131764161341008419242020419110597717188387346753625693720588346245121990129190907827243141240194758896399030043923025338868827579909252518587838650314655139534732220023953020405947150257275636646312287450256846501692279347628130830027760997458076668917547013780071011435980489756991419286065190017979067954869535186173681679302143308920220857996742516432534148240614003282658168967135959622236058511726251212487899964246100554668492238865528561978310096292235745837975507273220535791624999757741372124718495868133808217236326704596514134317971640291713395730383318651919935821569884145682484407710117743278248424436689231633031449937591923004006175642456428041847410904109771085728417205226090266799604961766065414678263534906814974942503357180720993558203248326940334774854459459491892189084279650967216953718115489479152718131410454744303649312440692807227362348258690285471830874847316325311409956880078879921490571438019845829776317536299626322663801034625849765693923780130858268512908089401405157266895632619553641057081667107667561117154485433808258959706654242889157014506342008334510756461042459084785799093403539079754486340413904185460354536087617025617331719902440681205151316447205142717045696838751431446727752609567449059240358531358317549721775482167302168869618770894230362993149465034022243815527842549326242321997418903030573184436717995098851750185834385520165796713594871490585897741405248247856518358031129970619223885893985283888878753714064489520307724571913331606542105241986122260805896224023724431237449410482477491436463925369915884111436701365541938160179998169073718031707013596162226347282862959041672876708228010551540910767862622849015014494396346294132983358713779319502667785090086732423951206760840003725496283457439543100566864962218851304148747799492553783054447920983912810648600136789492395329956131688527807544811901756232635057610081188937281781227133421819283620865084201421910910564638888800292486634314777220054477473713180211207573479932460964125619513948516852814634483176183908870543138584567405152566873093227556223045012198835150157871807885976864810004619251003857506911225273095865428609260468826085393854779657051811913411160336861944743657080349092781308140417514971724093579452269215833645316300722637419889359052546608570225239882547594784073761782131003381089524636858204307783730324510126929934139154856410859543616467352192757628804203001663055250528338682536815482946280025352133104778129045092807498159318434402147677393944882710359425351658857361729524473286349142472727461008807394653648463480481051619605765704851996115283422963841768651488232613391593137043560109500406982719787344523640140224088456112172636810548876707991829065909716158074346178149111049960430190659363581720719207328601668572660743909173515367701552439591659490529014691209814630686003446115784212379793020139415477062857253400894973670839045221897881325293787702467732390665913538259679458725809738338523130317125563466375507181475482127798353272113897075130822492230549557113521099049467334497956248617366077485842615590593169567006098496659256906168330364273285702860145177264593146191739466049607610130692307791064691223011829918031956908145983135860013053505556709317875666797040869310179570982101661180572679186455651229283112566444911960645906044142578425671068817951320883370857819682510394238885470423293495649530184938276002684617192381562568473503015527377016656778792784735642711128127916274036781525982163971146206313455865928782009966595227998496808110113472787417460163227105478869032968581514431503861407585092700409790603328978180983037335418506496268175474206059019788289152800619199002067281901197587065436712422365566089613956873299899017011449413214156371033911786893971820715765221285904127842639804729469894708930659628060054661995647917484998494779299061052083511835048358502508581200133734076019561339471259137246602876145225405227438757530870702663010316958217939948053240404373745846030471491822803922810181932702849605285186072688701754116793743591522456256439761253514860863705856559256755451869998641786811153741741514440316348185571271008782868380870534289398866733366187218508264959239001263370102334137955155891662189900039716359619411288971226271715667547698018777726805324525469158971398132369803847848256324363484598426731617257199351550527698790124362015574283406902706838172244364745525940140257548259771589997741592347799024111315713491123869472087173720147485388450915672384351781033045826607380866749004563042497530189829749146008670185343062645850068653243053460804164107527699804202788461893061755038165755055991851933695595260334462498708217875695884092417517359136275113449225509359917823007236903642124723795087408353118176881038412705176897332116943422038508311329816637396553849912277034995394602236124496286396790985340107559695821542760576507738596381502149350192063440894971725392778287284073953706394238927481756849943836080699721355700351357979140315944511404691327956038172381777835792050670846322644362856687490911110371645190350005094200114171842866305253852080133965241250726370501702800982721462235007356525061693329034999407591130982823456997620962051616650035833237685713685534159204335460244887307603892739293878705385773010059182960741995152290418716956398485540353877812398834673862007260743930148916501252078500105286134286019889511891713221919650589269715247381055922307433311421750981374134463772791594278288864819334524728133458622057629687708912206060493693885790770032602732117078579166691238052013822550370552392109492397592016374935378447356863701326478955917593778888410450159649254984816016052826095554322765157719585814013174364436336113295537532042666356516249503300443950362696925280300331167604579488559274749102479833309781318722174269927497589015243929908716976359978832588610765726062175714113173371831886455873233639350913007047872275579275558090581461980174536487891021671048184714090193417418004305995249533688507262903419023071640088426054208575286981409819026898461449987354242087144900017369607392654411278766345295082339556927080983882441562408651162432097119165484441931632574149378937489885299474043447654579454988238657075606769299649442892390711685788475338330830911540116488379748759124664678768617453025580064925032589056387823508188906988671595296870934575509712748363129484509713616330437053797766154241482775445161231676477786709120232089535789544175459340478067871485405342175309842086178021067808522262030885002837823067610681626025527421404021806540405134020108650085038930945974106213978915546839555165161131641545027836524019393179234768911062612413133878898214756653053809519801929045904838849622553139056886475885260531364994021707357196906945156998702946838391346410226537037084953974208962888310262873770927609089086491549795384094631750468984852018612606190924700091892381595733608832156665327475962509272395109892409503581006615899431314235243356173974798521908434330757486673017124726921027936587665364683077329156672400556330067829187776567137995438523152793924008370278519589080608515917463191040589466811741170989276140379829159907107701812812070828240803535724921543257889026216211221133486251237449173897460008733110852782300281030973844415336265741967568418691087181974207453589284130245715562489073350226930756264532481782160606034094689838803728046078656669647962780106729147052206171991135878682325359581051885764841372580968044943114700428594916966021527634322939118686540318960576433090449490238334782685912516019991535626719898907870207174441548766004011929877553429327936322344863621371990254090966481773956691077794245145473725961528231513805958618608161216393396576339403052683091187960749801818387382243320386016375777788342258521163245592084084960345488016347661714029105444111267224289574921550223122311743097913882685183429154572968367396236655302367052709530419716333383465790054192593027424479037287891829331376064362996482398515022696519406477584782422927843433256063192055435860311520643117706818181057641856222776027165997506619654153381962626189064794505248838915908991145638867032988573177649855485227727524576621171260040932099273024049393003530225422310007982315361721590529063143621983437069311573326169932439650106539397125699415422922987092657643812094572555262854687301812610652247316310714130182840543163886782334628696059810394896658544269166978142859458548367006993932980393321842440359634366847873172581665271269223732154182402811923223388256147796520184643522858011669126132195199189958503942755052644147757159241164900013948729828584798721825152573858898311294930707591501026656094558611051423153275444429282473058728157366883495595941762975119209893317849890146315939843903995289627622141233913155892613770159149489774793878157980563418655824824110023663184225157253666367130864206388185915565186351150172974172505630917158750639112863582814831782345943215821785224388556866067681321428085468296616881118471582434852743408431260109894093199741683625963873198081690421823715032300748817536205262369088389465085022197779063135663537047116521552364005522701359469896054894952271345014930617265496720899881294414550613430990448206332809293061795324001917292067416504898261850499088214312342170105675870831682127019856770260733147816687087393698699656811857887795206476132031310280606005248462448329942429648875306804030911720378796161942436852003942799939266479141217861434827712289628731627203352533403667251623858666006433469476376890874524336433250637982255045705537181389596991323208155358264410447303643254179487714903803602940850650762583770766802193359045647051481672578108462939997156298861738099601816814167283656038685515816491361485057657286000299621123337812508750307398686502237171640855769948923738499655248824920230245704455319174096927959087814642101937087483500674518425024556305947662162024739694066054959940778199586161820219264254239576305724994391701074865101432204034932259792364058052493355886892648191003214895190783427051905705407156019303358175878786003357528107561445413093582370299103296531122004018918175660360482095054809813234650998174602707237286487164710745719510655615286460186532381553334749289987094439576250923005790286411598137996468830705395240999021361485274677895329927956430723643662179626757556964155725327534988189332267491385183726403609804973975180975340782087504528061704915637664217231392130586767089904023177051075374247955787474562261548790827027478983575487168933237167928822065283365154816068377836356448222819997566641767535241830887062442613562514634286429339536473367805565744484623364314812445940239760078848193150654100191781072176462447030477801774767276782249099254918361918743211573017799661162498604686443010112363359010697658279287813257576971686056622837761089379972876918873924505357890282000491581507134141383591051602278826834183642953774316996751986009739999388190072160725205727227916699997089348235196531705215466748721351896374733987399814073041287899845182804138630119499809887010280719769549661212830342497363211915893953815883546171318960784839476531767177717298731548790194462364427977755179889578874263993561350004505543879904801473681783321197323305291541644688890976140928651021696996997401135806493456964254490416081009639223110720750469214888416499568952531654471538932760421827030912513597306998658830873084823451069060087811118924473679218600797319200647257002094429022260996664916243158348835420178477774256835798741443963436818097758989772552324957417158678497552135800870299629309371413457545160291575585726368331196294316828215105553161120623051089097352359872285341066021680011151130431952947147698334080053109895651444138475876242657388314591568380866299159871370566144759185662052809928056849033313371098423341685242482159538745690123757969756775739281487332201868966740491208474531286539671707464322919709590519162719910623291276584650695171456368296516515139791450399554829352755079609926487559785215347006475195521223053954408383782657601968625244844047412270150624234848629199292888347149339335771306533165368775870805606820131539777509991268481542447362910094492094864831817046858460620005812440582446649772702857241903608596619749796778052008667906482575801305330869042018081198152198885123652567989796404003790025434114882975585776555623612561807131191460305507282786847662119032980690498912281271474323184566630178371563562698053602125175515802520979297676053997607199591590555066606944899154251758939752700377896726054104271542833413911811507427698915649697125815292712661534702107373518120165610660921062846064804175007038674085135004427900598367081807287332225602749392547434928213214856257498579110107744049440985302932841020057473631758181611407568418815666740472421330973335349226524348100718414621304608235842770202979232493338791412806438389049427085254415013287070191913512626075533980127059591752516491895021567965849395763088387802012970380069292125666489474078918781381257973817087162668723461382484560376520266629358575729547274030164793973054421841894693061261766182133326550553464808406217501652037850951703069611922792694965457183291394994687342902912892899402212203446655297123148702485116509812673280989269747331131558915606086894417732709872513042255283253560909861313531521252072790213597985333733205553107781316619156183094205265409823947483699977116633807939736976354238497426400344951601283543320322237397172841847981738375934309828587381338572771925454973774784754715575397999535469595818942897513518583781689284094619793561712650580760739574499502492837799193123088315416617943222382536491749687627651581494148586126993802211578805176609347765847342513091772047570099859961502911001793758075501567879426978756994106740061954695903500254772657720813308739000098864181312747544043550852739356378144946406695076356393101736264589910938563110931330881270962229764526150304419163409383669604973554877749212565677630194632431501052920522869936793719150141876299487324508034788662770202886194179735710943558551962414636860860279786267769573569064439413310452146884422568468611703436399689141829757179152367263231635349213771476538103086005160225325283840043712364962686834543824027647273915406291344660250503362027208615598108937762285157662169149694998496874538897256367161014795324177160255690577634107319314820522393551021378789776529141892464620100542839605014894840066231398694958803315203763718089590484632444276775347480623995352734014461234150292757666876814152547350197514327973965026501555555479620589988012023901422944956992650944857498966550954277061860797558398482931240515448773834164652271891513867908074070608814950959364851156338262177984032586058080245148767847301921289689419676395114147620458401708622079963894344273051559724443076176140283556688272458241441350107807704198081977323268527399907815689730947335894059005637822188671116409089530317028800054058451621300114352307399265227290196556086454546619964453074095399623887399225382303685184682967023896281039913736521779478220200058488235171392143083068435298741075405104366410232526565037835592323741540116409733036927804089604340690392016682835180832075141163760328990413256013557556739516812435656742309709730081128009526817350156935449482710698132714790504454014920739088888430348936440856213574492374324993329853925054369388189489214414926123290917651120187800965503225874807041612857944469678992144533659260888132563466517856867919301757619128814858033661331529189114462080469340540650577599442612102718069254402556551923364882568487089041411988901015822523759838816961776948122664922870747266689012573846887216142594205013205245559025948881459559393304035011144431475903154117381201199664579775298703084355432753445149636522416320647691961120966969433827001310504998532351593036230258202034558759547304982018209164289370134443080882052636429337930849452017074569734070671078931289648353969134345196620334886746426424381993950048896176291755104113615075491480357305552620707194631898246123377644342898130025633819299900042077590761572263363226630404118487474458754994253753651992773581546763034131306312784428038932860927145475343904113415856994552230899703710414340809033366665665238141289012018475919176201313608774891852018828228673012673393274195790337097326841396032309944035144409246387393776697648990974891225108432500481907342542587422815223614648117369857947769090293251034384834053963823434923009068788381193746396108045176246071342876531865464438267739440337134009347331932373976690983774110243286735116252021737308751960947034830155543636217300547539699762879023461427849472331201281224813073310393685775491279061696971695247473107267507248324348292954105894434982652086911723211658434499449203523286775891225983282172825144122085816223275036783613339276347107173954435679112255674375937694569001925646414388742657290600337696362855176178812111567345344622180005571953246787800721003117187572754542291688340575053683803363159037519949732335814110693552742668145523153920184638551263916538988692352584514248790669637094785078590327540464942346285966821432721295017259444852591553837213660831651475852436973429243383926477253121309882738557487278797610591089234032700129726656365311887159232566653294966673991192135978458978485815696627484258095360944606779782190041606474623655088020089325154641046975950727761462259579728902384187452091264716460742286572446552064419403716435878111259744938108975258661915821854526491521747160607009032207019830355915271821476388172212796167008943749478166518265520885542879914553569860608985529200451862347365888603966076306377388482301990531916558613793840189654544678130373723578657555854581966070452067318015875698320309479282185160777081775783835736563816272513919705826378715137398466373624416038102400600554924286778376580686564264026700246519452851480984939204216775620600952102819708881466983814425938844064890535850865318681591596423095624590051231807107682586106567979109869650438107890567862446131421406403100445351271211741137800961268050624860019364515643640810704959590302689466724015348311378512946113408945398636489270919742121171595563283895725785862307084960614946301107288503336540379948721247245974605416453437108212780667181476440673681414112069055976493910769242107822680946902809972712221301433710174010685842874267443362991632454142261422150888409853128410297130030178773707307817369404135822484854595018264009176479748997300848772260112297611184731565205422256912465145394845413372498094707098552027222293196045700832644433514379501153281599895594530156643445510847961804309153305092400202225281001325270806582943861984392392914073322389942399037658993446344741684952702741361505135653511095968301413993143674473190007540197258934477704929948738390615734065957276502532733557886862077532381865941635050577508508507955642452813640512077634210136076861365933513316960614170209770170148069774934078904073490781920931486858956952901487238992138324679481565249195155073451952061098717343399295338898624463176517978025121090980160756669110186242516512814982776632130675960475925106329942507211304135384320892778342957730975389214888819897367158604330357861010414395274091011523490120882297757168754885466851883482900800843678905387571869211213517417229736902755390418118913460162420343946357019659024849175739019927667066713336012070487796165978410887782744993533141820868127264449187769772350227187440379107749579520318411116581498266023589043127637515159571277597493075138855913457916445885214113936121646255282248988441983832803581222715219713166021918164986330508820664822381693944983037586236798216920526036846154518583619880490315281677116614346835850718261209211369978190178536564090316458537826311384644214581018701851422308869765548989424765645217687983721479079070383130280253786393153294830167395705448708608273978780868671688908174783275757327868107056755294130638796116480731517018080993847741255560285608155316584350357824040503444646491274800503014144930735415113509921055280662808023409603152000559355237585692412128999929319334336796464332898628131489702572923984178012703054591581985510925829536185116419409753663001237309433973224859938829479781422960231962712191623079960785754814593097581903914048540537612689302557158202015440725090217837903182942525912340095986742275845333637510123041979991038457412021710675955340880409963228797123920801764383151487197578121120052647040969394059050236979284054303199950249899644334409194924923979226524032226271674895342834436825242554377952687573933527149925338292762098022264801754134297506682115741093617424834073823953771056415380811048795873886218241086658745985152751734989642282859667036180271888518373016932770102412833115272504242614346776287217493639937883244343803581851734616407179233791689048759229346342028485527443630442102747084322681741294643118863676101621562712623110766140954903459376417769050927878135695904373914084802588602069626704640470968097781416125167621549801281756443902060799701967470346753508249758368023543410505508844492303684715157716902062126800236786068318545368316970383573607259504585400256056631412056764532209277726483420956743802767910528498714822943484312216954378478108746685012252009395853667233169554950729317861621666625009438303500621845379359050674377092920415352475884018856843265201839967701845790093983374599585344210056769145745140743199226043326759009332047563726161347324711652595693564501972642920038835940857485767413331548888192070492193008571222558538739771123396847828893440417574113711279799421996295264601736468626303216836058539742894924406811059970734796267431501997235824023712800780828693466211922862847106067019336098727802779321484410606735559501744902753760875669073106746641728632606429949082655408052268599727088299765004778432049210112619473213503212427662810001066912124411601369140762206378223946581038202356962748065483909190858763784990910124592570277001364003393393790783765882373915668222590733389540558394455667175740478802984295208416339895633092933400428019863803497780644953182319821203970088650013657730976206889579002854240157159342983681351630942041829218691072124095094715888074742569949014647079423232916294617695979681760784404198015010413871118752500226421289342485422126407574507453845736732681330857183342174695815439041805143879987377427560922711067183525737535811851720478295205764492766946259903886314580710021339372506068864133858422251835988201357943172144364342714473712580034425367411392424900284641836145791528818301933993482193986240209865359260454681063399515492713510577716224548752644856374293209898231638382617055905850013450546475335184474292432257550492381140759367541211349568308281539477735980794205379315648178869873081214196801205487009053702741861607181104857830121270399965962547260182549813021173669420571037191572108150479310009981233099373373488801611548329666218582952376678119777213159069771603271002408512318813581391046950564526860452812819194415569631267430453841802904344736538145510769359104662036991225177686603095089149017701967703402264439550113477113073340130834940669195862446901255994261138691134847282297380377811167276963024202367776657736205420865337535591998316387242677030269394271269949483199832059744020133338934905505762884262167830359230644624226168951508312801070828728752385978503842368115903002937597614621767647094364970313371866105092257787465432969075794180331587878426021759254921050781445970080859116912693845113845110906439692282480354752682853606203604773512700791850884110852057172769892900404522426058916868394654639384934658908279850840193317521797620224834563631972217964795637564253250444420428126387537711187245697305896017915877053499613323738058538937417979427858868834312718717467789737827695913798903018679468920506456412808022527667633454602484788699181445004341732558275929031913718055263374751702119127577236699871567877454165956240281600034147994591289270259863486235334769256993862969257267891111665401542439380507387098193319126910012626501383420114145128258021111549801694004932758436745217235832000074911386421414190746067804846214660497053756897799682194376548372746067189700502673929669335720482476364440649967079587711144917403672027566571031095281896805938171666031446124104349352007692782811336389312382903096495487949660206908974437512990873704448135772340345755076104758974343641015432962174596980052924839958314799189509874034492644794299662397410215268911004281498658256477183347989613922388222500805845756581932924061563669798960549490140124935931115327955542487283601704331590901585946570194823681501154909451174872360554309872871042832312423669327520276930177860317437717141799682162465172329342145689682631728650331525745381284207330879618011540139079987418709475254362860388431230889594115548171733040685362568897202087262937888133242525771653277828091344899340255880160909969799118874702628159408893748341656048874343851772456938267613192439431419709602997757991445139661703865217779554278362850052361415453593655284217426989355236243164785780425597605806900155515737510634094678408785764546015812262910808592138489163600485243373396956899704738932983431622945742594884923377712478504662080573286169490157316548445250407619764739575197786198564006944302032792008076101209202226070276696941801908938651299577955067048636392219838553458214526024438120929553539891889467648864908400046689801711175466980188904416351830144248024409525411531210603886304742081099817747903221584866703620662375820535894566934005731037794527911344300089932568167628457889354439646321762028646964638344900129853226995523828208391374563462480841456184032000603622290929350521674514867628819488089493861060753946694613530475083942608896045568453752835271951878631931249640376653208611919281961656897851978585929876388057248811277557523686303538229132979549952507128186555059368292543818029003255738906207304714539160265861667594899726227346255174427167907480439578516888623813251265040119328389791429508190181909302052237848358575414502218218230782155653691146500845207397389501701442073476816497471958784853235018438028737658828031483652561978092135321643024861364075008193428910908172342695541111863673136610020454298792480927031814474357298693260245714128104562483210855062892947208884463116497994947172555544207185600397589460757329173353226688764689633491356999145410274329177674751165019724666441585567259238707085491930782576846790685085131177973765662987471566172051175986773140321380466629863039739503224507333346675644465069433185394167479186600871502543225760182465873116023940737579763440392544058877334604495928611896366683074001629200621405425244315727212671058511329303751463940745058608301257813387684029510392770500988743283134484959265349598848586834555945035691548487556945959959723794553934272163784885033436181791119994204339311377940855360030083239771548109833132960902815783992355673259754561644670814626158773984766603068860029687941858485136940892545142233016195283126555689998015024465096591182052493228673299966573443200658251803931345130840405837401944415650966826030000395506170204815843084213701658424182529325006330318720205445247774283361579653838424482532671353800047456549744266468819040663390045321536378818507520682199005852959494414308767680030717914499656837660255959827220293107992578149627215928693319041531053622494613123220732092979848437338100480480039142459841403285100532543363727596408223375573350711920666267602427505209480853947760237245728908524564618504606988248738585864504192901640947723441937183468224169558888935332286869626856369930631925396227621302353216610420048146840581187965666083219023408410528140031484631857343558082341061851740369917486780175039624096599682433903699859817807159055906581132545653419887060356813467192681503352872384713857458181445246389168627810093942408269951063289326398519473840695499448191190042020975919812806572248763500953483131855384212607331812392811812053909601809956519239128749149869357358671908968845611953688862011161697564494627278635876740942442914468935584041073389977716471599511537523766983199058341321681414711044956988806028566990303419454102722493381436031792333424702925903790152384324097910695213761359379497229638164717104527075606654116051716040137573055909702323661447663948135338212473117927527026445758070559347399405677035015890654869785618194031961401330122855752540241979492533686194395867397745690307936261658740770949463473762347792209561999847060484854985842738362376977428159861955485960544309660732124976461662006132261695782913871339873527713533378257948412721974437929061291358396699914353379320127557503946497875728629068521781867527033420846870613901477177681770958017687832314403170815637438535711637873804699831046508753702433783225104226140561275644780833676886859127454247027518124991801528178765773431837182256875943178208608637416941055517615572136629567569674624425100244065365978344674077532302130637923707618407884326732808698338353915507846113713552186928371142782162275171433488620523893717136921696382468711518509901236094582649984478752081789240672195108022938170675298591644116851468998328759428154719099360827294455400669931693612213104354045435076553112219807833350484373835240283358723056488795696601411017829477835580297342621104772784587625507606020468813482429394782117880720288901863256269024246196319339679955611206075992855437672490325311947379891989393463304875306911955769302486582543334823540181131974379505959491666481381740799806239851623832488808210118664483343138145593230366323997085962940339714425664820857294354388772165371230317743709644079247472070268445798676055356052607036223254356470609578401681955632243120398145268201997320134459788839025527943058682517059845201073914653795099779774852574169372360747880466244085069243607108950217029913698303803496976725298166988707323029566084236787055466473813053479208342648935041092845197309777240006618894442125455031685840876076106481304418473660373944173801150559801490096564621234558386261335635070652215034348055817034939503304962233306463100839735883869157202148448604823117857827919053883836477689135072491230480345638909485599394447393211526051874940179325902201343374270787676567224736530349167484247809558418887282109430960069322573507702058864996990316866125775943193688203936858579482812837869724192444590245233232000744412746542206361229242302688625591763302957581945383008762233083673706864675813060603659598001633807002365510279114188453097296384627703767546722573724248102929859556036506427484717656130069491950471228612880821279695490121488857323524971742236053335444178517955238198792618361238058450296996211290636965137541401470980075683470036558519247704942156881697823270925253273699837320086182496328885427402616064379386210903552269243802834330812855821963976233050387096917267043779446264885333432426888701064526703760876947448450304609090458430321749684816680223390721078001135934080410867894730001584504862161790042828749766952749377774496806235960249999545122430579781015290032413961493919899663479576494778344421073094663718266722446864220659300129784668954306239258582587632150603108094182372816046968344666154913383092792704211004323621140549096649177085996851756232386377073028154840391899426635162425066081148059540734851937748820208409261832380442729627291103713895174716852377618183377424654477030552937185878064297174266329783777389435223769391486944453070114385287998537535678886112186803096127825282095796963679259656215149030578221479901641543652918641032395387438858725163504520797964361877119253129912383376779274084740593559614160013081057142113114892856514787187909954925732753342860464290768813022803862017205411472364105448080755778564369042675656247311984294587952669591962154103124731582838651270289532407083283993225594960070020989014952880937796374282453641941136527557220467093248845591828874264828160584823290959020386938416978410419334689180851133750922490631260094547065559817668775111469067407004926467967374763155260227276357085881282770969065605626769320197897369644273433078634034660347880884142213580101514531536288429300600735334328106919829125646541344980634356885424788839245389378447883207442438910883735916351922856460545262217740014329713991745235082497667163280388220656427389437969681760557723628063636582563307633006477749983782238327761543720871390851895242483627011352422262707101299746878811499640384563619215456612881445295802180744380110702783971590028683237146943781016930203316029054093728184499981134327230135328960274397288947727699635844553103243046746146171683064353838500004214405830148336230902258874792983989473533434963725483418514954935068495922219613891571284680864032384309668653766570287850462821946053828685307606544179110407317827962875625499096887171796490497844356480141757160425848611981705524923366334032806244818780771438923607259541942433814422748845200295602945447470722590333811259490693501927554109323821215820027940115079807191445372545929875436231512169306907354543471469510453276334710462801385188247754990592316255831239168580093348122285010348814430401065586859954611266209852492960995366278129158350836249011493505480722320816286156303672233801120713146825350925243452008403782065621870223315624137523037230524013723215874535384996528207053419898449751418614024400567508749918921010288043150021154019880451087183029071893320550037938860950414438994390109566334530972987644469776223521725569382134049141113922026472188715934293553755128194186046362853377725817463058223790124383197989759777830802611797084850878778480576355481896452668429763371882655294895556732373425272271956572791274560876313315267638944341758344146862483713439987431217476195078748260217916699985308760393948551205708040353309032983038614166744636500320491167467621205533202393427552778753329502897751935347648736625561480737780833937225575981717394603100028918245776003701452091719355330369748392791897006600896441951081489859278199372999101692399779717283869482725319552926433862794193322076476957908124302571263220833350309084639762236077048418970631959229895554332064237932571656818929255974067439524413847290807846496466486077303892186267530170406371859683386861662720221724765980482361107037946853057628455543428063444668029434181902063041783312530862221690238036781237360776952457260129608689684885203262308103970172356278555732640856034976172512515566542370783839370959060166281513365837848085207794257932715338401610084475527273610812175243506707502709926701785983825536456848657867825718092328692537493281103099728450248082074252061611070968197794568944286079487131200323655431734958895958477622485488898379235396312583196866056466806591153186250755583858135869543107099635689200274497381787083923891676143381331852457876351805561824118200586913314330167684635096296222410587544368872223589149046949859782826987162676042021371709801086052050196973515684213691648941595443941862656643993464257383163834526419818737413133494642677204845590788433374211024327009640393590338724027972134597663593636841414329220523358815230125969214598662064873113245888107032071696973311743812730282119619845595474888398392309492056245710845903480477504328927728220760832957302063367923750615899419521055725529912329863856184409559717236082966692034877601603513933157817331733658168207704149857968644262041402990935033140890644381799959764151053952513818858086332226136661327547430281160706761460902811011647032884066815716233643340042939309212111940756829370405771484101909079839870322570579906969498300912268154319755680590583122169742116788842091478046943357166107312364206147052271524268209684391881134508557483149107577314543692760010099315744857119323423196710306599197304261708111654300598169747697735459424782976922494074461343715370887812946499709213411078891041665038801693902590336935590748663342861440233372983717258361834221683705771332820967848260920228998307068059051058034210508832990874932113631803876212747233777220039289191249150976171327633461730350071516816839765587729723181364254877348828316941113427186391374240132508099500427492412373736520532131971179641150262370638773655613876141498144679592453600761905808376168845909464007974216345532711279654271540517522613576674206105119012738110115966767826806588008722823183542623036993536427389871779562017558622547979657060358950644500854656505268090883928146390429712548876316980883317775004823306638103778272822950289125891561923226804859648620087108583499683091887424267018319531099692968507874843944835273912942230406680985221557451414220577446288425425791655572925108360158560281817861734260326102559675620243688371523580227874823756249783145088133736903045331689286232724837414229620792707909398530986501801726672370344428644741882621906368140287284781834539868432117098897993791536836915200174716656739666344259341213368646363936149570569053274705454390946052531266007073099110493360910995437428510790722592062604688906198851074658523209610494373239149712387772551679038984957078762846388767221369363009221743824960718228775173026689008818155415435941206866675046072618488395377893440967084034436489155287467895424339041570370675357270702706773749919834256939270906779729291354069208474439825023351495125838752989116398764645075111435441175499305196386307664158238232749511493433882638089606569212771511782688305689281319547033549126657323964155927634083260255029196404667023177473849521209201666634113434705144968208672058870321698833912823886578777436658184649814731101232492966223640742136012254373756327698317898700649955384931617589480772320510660584421608453654766149532934339018789053473878482804634099733817559078439481232592284599827837472416592243292725782218431881623921866037980558882566337481934933072090985511436844700568156932871581916748381562343604904773887590684433256924367742617050062794738687203525537407610692356293239864171902727227539318654934726207955545762692678470791208119497920727478658108886330644701050843415831851027859041953139100887309312584536988472831790597624820302458191264661871514823191885669247077812414101076561625258423731324474926235104899131373963455629457893142252390960876889608549915964225307778009234715188190138066565609945090936965844366364668737894367247418970323842661564863779718323047253569437677266434483798348265271960798504282164799232576526263142971811927468897210324124544899898680979370399030439137386806513563764261154149787499635907922218370308314159512907109689868966463465884923380232432015480190188628885570794905371256549129563467032920304787924928668100831312550375410884058388449743492351814489025885109781690851336219288651716200827863284243346528016305065741861109613981082219410110276616181664918057680874876989548137126037469670772681055812050812569805443587127229082204794077371597222166851440562364931377430378342795846066687218156678228611481843179477341069680376013047298340693600065673742227287392113678776254808125150429543197435187026653083116476337676682560467467482581228581054346924457530836281191172061447619246506877628445768566464857348933247643727967473274451047566033956032340619763891983650853574649330352424831323989502824519820798914725922619651473566060458257973964103989653306266885612431415841198105629065057635263607267228419354913012053692444850995588564338118782299532015597598387128610396161248033951215328496951029559745838857801596369923500903183339863830085576528676048071820303340570396794330502632623453093470004396165110421956759011463812567900046692796251804157721274348517353132994515538416096492809064588113188160275978132746005729144096844750061211953256755828755896041762862726119182983658359038507399818247309604738084834101811131045729603585215914415588681169223352831178835733830098096809180402321379826918126159412526754541796674786817457495545026500782468632471984550728807245165152733664089587941181402682769025900969924341397526254922162127509899286381696494755631387289649266249740294751036346084668321308460996784949906399212417847822233418617998005853997871511182667116972583030161099128202053698700985174974493415129637960502881556163513693629472037348525429914235272262715092280621173006855779294967752146434970144507185408172511745700896642607106946857746233831291112563671591242684863631353802432523734329394943434719223139841904797217202429755863256957663972607285489463864579153561287234750938660212469272990166148068079656570627259201774948980667067357270208301190644626881538230484078250438415418799957562244889921534501517960632853120320826179254882406761696807844599323629841902214154893344280289743808721490694731061267312815886492512322378416219537333316294318042170693117916875287411558867816982935810186179338861464079503131703711416053014687902688255412493075243149600070076179931354957854757522193886301863690272462911372961605528104388919845261422545846447065892047466215390228987058915845640716732422545852834619750269283758160910328061062437046359418121536536440637828520387845753792956176742049776891885332601692537313551174267756051138193696739355974267633478556800099532138310330395721524497187974258544349310451446624953144139146647445509500547788368238192900531702790450419831859358418245985078078257600123014947457401774147872184756216143831479172965625156129551019458818623579017430275478221308487600151089251609139130774988680432816864199167505277199786876203024289464118175574397775737981382826193459352995055963774543982164558165242922543245154891330898638084473132086344771212202036963055006065820419461372796078013920853606217136489457911312788095000330861117383943241913635798735670973916260889516161806475907543882850027833191327787659747999926279950922621542881224606794240801609640356175235889344336330412200386629582409480541628928816627852384959198066410557756837233960280499778088492334255933671710296389714123716296427400323969855951348184327915686842066891355505480950136321506883490005500031870509555626487854114395325490629997882497042588301123263778350926096207537191695057428931358570527809340891541218199197520628412772416387591721975416871699889950984386481030243673296337217087289213424025557794982742018999489848428651620557070166489008757432642889779203104506319898821204025903962286841196512107819142768314914923331359469834463878084266354604318764387010316554332447567161269925018723890076552443924126216377397638362167868795978857988249758123748769383906313673244500086880786518824437337379211846228600839599856867542622158518840692234534024290927017195548758970161912424646129420476329844260314824758361524271638530800597690725061443323013798442475902464968503545963590468008842770006022049191737592041044275061792394466907754991511363443047154402547207931749242817535791362132616240444032798619418287814246562099193455474499733609749353042295458546714670067548071892249391937289448294570101751583129253081283297906340697559384711313193813676589081830473038982769448358697230325488086553222292729721494382082114695040089402554659737969228514268541695836790442228203031743083852335249014948325461084962338734998182195657321637574537348428705745734828977403799194016546376843284134239312183335375107722991514779742193722649610766559392931224286863551631928089860545467845068985270341218187392074312061863155926789935947886982389204069133862999564302481987832939503554242547750292374714823614128573195878972783896317952299844165413847084230131961665198038125302759150034369107974095630837655717732315510492998405215622746361870402544888971172979237396841041368087295200650791919105757621015257293446091832696142382510806467762513416719002420211303302548124050596195811242428187799685788002005544142160831637128678121966817387497312281565036898458167669679487719035556795788672322489207586851877536191200185912266359052733373480700348869302745037329033893595783257675239817249745802919925050013173263186269058695506430437666797382597332177319832602489495829549835080907434963320465950359744463631340953927596696193194719058451473225827894002060041563773059500841422702127651656408312896438749588978496991126423160315855765977028216006988439652719056181428633683538833110125684709866725661083820026243238918115131550948604761701629210018502844490294351529840988963473498411475990081815527205719194714257547099710369843603034200875423307078538874886979471114312723198444550627010582814067604940751464444100522095201323510350349874868566264291091408288267681076327113096972068351710366556618085977833341337001147648271842578726237501723733215174868737726295900450703894817190732782325138786735577133085734150143049264464489742144825573513479794101396836555942574608699372341692157076810071588314741770384040137313462695983256928182357110055156499879775603277510677288843882166735170384865801872609794620709598400636471144270552660162599766199085353336815358656635317444478768651862677151098479206553060702222282781255871510670182004471102231793436007552867945219892997710937022900197395508102334747582083395128076238731713781636470967664140597158094540784477879992977775692024383945725222054034334571232987246168000925406068885674772828772227214828529147963713077087417643413986101362275053002531297113994019835898364660474864144607113737565669715028973943293395381616884404583478501703177436674661952503763734014191240399998466744312844931903681113317691318433763056583758384553567907151293333596954417878053974597769355006365485222990958413053778783789550712526700210111600151278597948247777110241406385884330867055517113476864509193857209677709877773590928137715650264906453999984447483441845489492899806832167586892264619783160499292081902687238716623328845750826021567408049385268039499562597925598822156892511848801422094453323791486817203253379616457467480784170975658362902865372701454648463096113583397291657071273954965919930231054668949162765744831768670391779459575364303027253436766426918685653198639450343254314841337593066891460408361828230901858314846957302437493724162690328255962209692235859823309487061338686209384895105328178020340566121205644849406157678122752784531726156862078443541253137048988105469840407554089931895180566194935274143229770657581427582470211620557094515696993252931188920834617256820139400750049740149112720271353849402073233904915666222736289434449961972888884082753370860139601609553607061891039139090722879420682922007179025413768437915720241679804157522830969947197512302071831429441315669264938260166088598306599606208222208471617891668314937717733599224279395147631666532493908767549532358929080456956449465667024335932881442130499648389672189586432238477399063266974236502586093789844568440912896038580936805450618005529080798121876131080889714370907255660164751409832032423250646255826093250250319672262018741850453128853995206364347574404126445019435631025481620429653556433239282007222246970819580931218382230988483061774209080972032247574514973992767793177630090402167167636646319151465442084419352110242892179231148851523072320628567349054764824116984906557530369751555826261814355527255908340554432034882233706464069135773300450795695221282532134736430587957134015393018806216341966239284773877470942476551778325265390056541702990224048944135540777622207846283693362023431928117204857093260488935246853520064199770748638063648630140306265756913701949088462744326838518846997484957361684207604508794216065476043507411796455732338164743847963121374067458621310785525519058975753661289478061251329731618728203830606411544782798638723818621096575933603464707221509038491546479016531775291290561123572805538573573725340425458424356475051987878388607040576962726493104548553227317142829318323716565013206616958755650725675470818773222105137416604239638565158243447878381236702162825607675589729295650394259154180912782331965330635470338239249317915794936225030831030444054218761431804375222900988818278823944038510144963165455197426568989619674449746124377495665099689321529996974983818244785056193394289652803165841661378089033500826450625476030291821423490223041162439485945284292029105671290126409373551504846820339836096405590484291008417858766204494734398593535819215191659793738661128287264453410337889678225479775403307977789423195480694561373738945871120999780783885797604215997380093563506627488437856001181029949149741160310006997052036216241468864317871304463468398350651245251826219491512953815196855365020219301689541228231901305479758451538663644225252740551382075658519854383349276537427679342498876792408505131950844116736286100349619048602144256028397157687152566460804112729293810277591799864426221267097611445986181209935151188766303898122601624937434956296455588914060994421158549805665336882652740704561125832868469275066982958256314740292080125625962033010760046707109118758641061002892068492916789859282649662574453907282560411801144354084305154602203710629576109877614417294238811622916485500365456796089785877358182851319248536716375205559190278572745481592949302009220258790048065589307207148507161207611733696474164881776858997856061734301187529531325805767373188008728029825658438332648888876827382788655893158367264283580771163329450033424147705607668943789230328274203200627355848618940257419280443132335132810796935102723911755469073594986084005079673864094416558974777965990723261416816944153992969785726583622808086597368892892195809772529340364235426311921543653570886201837564941722718671200800908890915723696765633044313333058305676455400729261652343684850727628787139063612756718014231413575393392422199856863297744144166332986715235647127284081870752236821688966554976470945778676772622719255163670266788878737694014722061000247131747456386511842539058211060268552044111315741778976861800259216426160544313967225153876875513718618470726716645930983403579650174126967776704422267106917510389224716278152900112671790983120921007153341985436536430184068084845710452473507100932220732317712599728851953628496394223057362939467068575255467909507804859351587203657655714118133104677252858827164808120593062428621153105781335028699318962622773209071413008409515866664037524303935141042269808645629734165874050466283389529343049076355297722469134079169695440552554110734676811988125279417698277635830435894076707491760782269060525492343627582710697500876469688321796425853940236039169933006505833913270041113164109591868488964645073815941915369372883450532816884706713070320830008378855805346972298476386301227860608329277904092391066750415532649843922830046745160437325842505816460803633956347823137858514991589125341886613187216185312004702429498845531986073723670033104076910703416788386424712297962810634298476975687002913728428773494175409266678088475336605318901917365269502065753139405887993648083531573799711962567882357138764320078999606084537618463672675100756266959242027298740105479178841389618407465170084346991593552223470421528642681401610414005863996966778973445013583456171101078256312685485099371026824279922287819112550208198120144698974589271236291660788134022691349682552273003851711149570961405759204591929529751393549265475837736362539075015892748644337219125501475973598583024703523215571855878732573097085188651524731203082755799177807235966973733172776027429803572389283345650463586256699105469150918647894973793211097232552192709252083393147773279213023611603312798751183858970520170658567315206193949182431143714278086858657037927726834933662995677535601173270969439422597960170337446248541789005354108513827471412439455472825243721636024038148628691260082174544183775110344055493962717931749490515145123650737032532658899488588725615189794290135905844591118579983503626831181116350840399398895909106925585102867669795482552162449050568717148432821289322046717872784708507327701276348724244403741075051078027493269326526871924437656825652365111549005808593306580195316061590102405334383034360467691435805985614807791618672437265739587493071227562786318735606904806352970654578150650404230075481913808678454746437761303285049931797592859928395587992526777188963516402685769493293324451816063401666855236137868760886756502499331306425577340091569817854374623408569914553131307686175233481949952425043211984547929349261628083721886285781816804338741505661338028326405615177740451428515761453132219342510480913486491249303330468284349961616513520117766026701139234026107755497827910735967035528910421684128941079193253104791627669165581040195710912753555120628008221218391073663695499692782217822567110495186983114568438620635608620228541256997423781552703133769087254208314155854338864070880624312865435754089397654183762103888615449487318060244838235963560762715901894565036685318695461787451390433827903541337536400435223998944761044857728737257389434358422901218954829818264085731193059252568196183395489303261050250075252517756447974851586214648314029876729756009383879192240171429349812525818391597237086936979445553566866626756487740760291087825581492541989833371790216884593609612607594086232592628154761225035919398667558662779128773646333275373949357185543606096387983308287844780721986715594817330414658394226569216628756775797478317146052559539916089092560560260497265356199656142649417216070964002782337964108057224623649859035174453489589196816067954904872980562078026115806872945737261892565260100949451211288841130386572056233509675143500087801939798249613562176649416465285609681408816013193248402271389881130747076581863187105209314463658584095476421267271702359953794410588424561950545397178892464483582502297296067780673306405636209265397789879097334560662138759350742365788321082493021015343167855307035056549024463879838279435221609651858063720304910517322384615839575748864322547515570931972134323453672404001594833424071846851432476500073147045885287584847990851462762690934082027122896954275925532624155615555245250831994911932441321806637436688084949335662983775626165920352806711409797334565037924734394389816841680297732345366326555091354951990686128905395954333244625500409090015885892802649636907980744665435634902166452949015124597570198024811058013220382939500392178676080704784716736923184678254056841367444377091334853118812651362302381087656875842800438098133696124476990762472997223805808496370503178556573658852921861867205764523356231974035068828879768985075092820442352741820291363868877216199471246315600054300045657035169884189323715713269694505289254340099825080414025235428509279461820157996028236989514195468575368858669274493900703230231596543508909662735478509447969519273420140027997219234848473232554709385844569525264258812813788419133404278269725325365417537649291830791962853753393762450798929153186949236453923974524787803154848827150689154927117628945805643932167182928494295074951369317825147185856045606179905268303268607703820349742602510225025438577710322769154120912576346838959781843562529731358611952689894992188551320002516263255711695398121916249944162305716486153317627437946722945340903392352769359886261138468048866189205208095317367031950841547515484713867690841600422989060210181535836864447031980205873304089735635055721956171674797111292296760452042488055709839997883104354484440108936402323222088773797176953418359976170920897417917756506252909881789664693548882867202310969586572319818485952791850134336832819640026838716286785009991773489475929844705484008940297707353524114487397647064328014658513151758810560946760461784136761698611087098161184290065232122085496084069274801596602997086667989811397446787534971376735299441132752979453493111538513851439043518705630244844882046071534578692379985720844551506350696469610965288311353915111430964524892541486839134195846867412523735170092130324586832703155443780470071387368093091204790820382886035227616622704705681192183904995999969863684453197751431564509603154419687180635634057371901704694904592813502746766997751213853604922077856345124486010494513250454826679071472109401568945591809255176431410157781867114216011451091299067693901148722383284206855584377914011127853338469701367348288790558835299464008875282080725987910395457614230656295631090941716656459686112165781757968960371177904124071994479104328790683561201581952008523786157287753681545067491022239411444219841180195162954596699270493170514264660962197939836697475023181212236933153038689266103585536254543869603500476608001045359325326318861343878788090447014802623036365564782894641997239501988163828805201132522849423938525700885287363464487387363264490217984941275197339384297053360383635167264953803059997849037608418274988023011179693037826423172902795698595831730158264053159926528647060644715404056512956696916979944757244671984236901925267349181994309204483835332900812266626566121235853128438935689266334427642370097249938318912410212836421459700282771752259052950901444631682495070162250884420966255201689903625162928610648840539814871046300144788748475982757450075404392704232532015557227660308337994589438715322528500507534554416064491411002937542675272072040750237697750861229031883190378560823182662178455156353596524055051884970961918945209389033504611651356484170258306627981477854219329655066419648346460759650615861341980877112049557006003458284842692099122792869350820905901884927873838764940689758906974723788500916211478687966608633217068652502337284868473800251640947874509803863069322105505043635476396371761932968418320625945028599125875849359979299457499700221951842173820996925546628969871061110925540034527487504273432360901182533325342360531140758019925903798142721027151252046364696641508362872445255634312818200342301212470651810272753626640312093828632599591466165193408559464011832715384076249779033370411785720263574769199082951998659905143717331641758137253015272935171234911228775389363247172508714053667757508452358681993245376289077928908755821082767228643086685615324564288127610800363974308954229631996191634131724936855124293083800363719938942526691695940882281386959321457850601352670410716100778132212560576244616976511017125501131012552536877627134559074623590838832115896794768879842499383977714553524522105243554440452644442730631979567287923579490714593660427605407907675915437213811886969867656607086687118629560488861435561874272403741310612157094737103094010752748138492901437901983292702515670865064902820111873958987024936142656883004882614067935659150722030977459717112426270985670935588359006242786201825453403292042132529185291560477786334542599856336129242140855623965394684348175151177244094402312034164672644296597751073284172606653994390502109051752368714437393052744221252046531455190384709196459445044910780201830974322135307270598090525362605203858456147442941058542053262106833971037079918239379321710669795144901637103153356664115819047807210507733772175706462802517560535703871441672519601249833324060666091147463779125470714131920380108363804698730708119324040929791449363593995949423007811077848188575141555088180461291124984293806384133961059157822593499116603132035593743754408576176084163138248510034691777504947358524675265723819189627258678084526495595393125484501050274502145356090139207375210339113233682894840239581628181293039261898292775960435959388418401988973520950875705200406809823604456346739629658182418054394629470936048389705610383652297195710785307513919516444042642630726283543804872974334504652280487208424522614821391822571962224698952804576603621919794562608057730559407486905677782449320965023033717855599138238245874843854247270054912251127090381502252299295863569286112767914525495463776641540070631917102621384041186321417688187634150666844702076799997742372649862392883082684016648482385663415547952102054824442801655504942865458933470970283437814256606662055591723480270672963969062581422643687822038023328975605322883263201899459094091883371916334068785108143126363859700893884502059863295694908679926220046565306093151808563861413291750904261573148003563147466316460959453101228330701386810985692131800470334810968140569765393311092247483296029034992801872976591128966317056926079678653073740068954772874892098371130198922781749778611567890231677856445665528414368646866328396524922990620137543718623437960033048045340268114260537163674299624331867401066321908557370066649535151357320564307410986103607030791668315572031508508287752149705520944278593301955040629810490983971897003851737170840269666743558090135807326712086894985197340687469008044023184828105730747033462898990798507410730324414843364409229596800253798818882541656955558561377033250095742691629000035851271617998175772850170942425280945958429980623240196776018860040117589277831185771403472249493216009747780829500029247096522150643831693513344754290175976925423622131584993027998623180777413996343569397363695747937526818571212135695146766257040082156191009626171604254393103045243353299991533407253292327141981889692033165284905982905304136937894004444694819107185643585187241445312222311205297416606294862924845732897560093782091313178933249871223085924709632753981082520368131216046501947719803704904842064739688386005579344638827108947774027466525796390544798583172058791180266278276225211216267706124393258352329666163354699813509458930675482468771573451434042595753368321826768781409446230270934693228693219075582597514959256501164742499395276548341198111841267270832285605202462656908620108993888094937601909008281438268952225656937843848995534782011656835629281702015871443592526798822414852328049554015184279367809527196263515343721494150350353568212054645591299440505166201543803925626166128721873296832470432671088903717537358303639404286171812664425230017340560671459605393835727948812620731143542437009097768260540133289667308147398262952048434015198767386676207170699897218838175758133819276358032823159188120493241500698558426647759787724781381352744863219170640405356485615930930784692366530336298268592841161852190100767737394169575250595179672595398258515752257892781850792071002383263299756230660906236280210015030811791256802761070832258711901643043209121290896224469892229530850441390845835433438441582862379199658513596008392803854786480123107806962077307000567638745900912541578254920276280222177395835813168753649605867052048258980155864927779551755062000136467271369865091074830546166587267488472516638513537524800141128103111584145965661642619669505536058278461801570491812580387344676801145655641225608674062902579347480648381742442391860201584602786263031777799169721365421356006585396673328922814351049279287416360920730996595915010512608258477280278010293683205225153576697127748674858350351786834752559375381357345481054420482188328495149042034692221827549233917759468355424891060772409481561923139472720771679883601626181795521724061515468860463706761927847458841947227994344737134508787057649748771708294640183701742170002297256760319878632096458992395059125896571223505486261970471823267720540369881504355959278378677491559559014588259466514786338911292356562518237660506958597525794061826399403191429001207639968902671716100135112748022517059936819789673331108869492192147272725487537597590050314431938563205481332070165763813258016531701964700609030961961492400976437369020456550432763952917539167081286731980053818694611780425185138940625745441906876723761773184048231978722645665512247346315716009404922137895127583459131118562395988665645722577542034752853328467631096821509771620354553751425285718475165692195839014289453222708344547182321936654213091192844275101737399969100305741568122348996501830223185397831006275329413000996242593302054054655113569624497883736085065251790578071386382691950142905862662523255038441543157723132962478558440078176823680506126862123389176467422308167901871156767522954145422736094846191694645211675137078792410420085925978180231267831227171983686339065758203920127518483252976140950487448971982998391113677735076759952791202193795173201015794426441442670706934132129829881191769763501564422535109328671359871011263592027410109713359697767320163381252504854383235164288997285293370471302811844094429918594280116195449139514517465348207058843492377355295216406512047809425775709875008798930053380698276283251171131333785083819781914240394333718640577853325420579681731093484122420354543969672042359725339478567939651010252096586928455049971024018480002650954872438650386453472241605417635903126919687457485906049233494271037034016747163271647354099146570418460511066546715977911115465166313750148295841803203466783143318265592483859692710305308805819354139147547706168089652749316777280773119954637422860794776978642163844008780384218418658769110784296080456673137313527477037693444211864911666640216530074865890280962551914587664116006275798808719247784605031927835256093031692667183853077260459937700433799495773357508398795929970182932897121026326149268496122737703219318687172573246162033854153589555209674031443273392388662085284967737273810598525766781119662878615637717185625480942139785365971654387603767792303634911027531246127732534991374236538016910932660507063188335554671610619554645235158118799321504575334020210880301992302152241376359073341882948001173333092643079644667488431174501193404555110949206416353275455981633665857359745974285143570194321251391444559028630477314510730977733338458209706008255084722402730285832547368874245849978934847600204241810236810097438759427406433042637078585790812318675669515815546096818955158891694347740148752469884453594959485941717784773252015080192103960885274055816700539058230157647178365727740758507994378871540086409255291513280082995553842241714501265831121754615869654805972285202083801020462557520205163710008736419040743221382397834632762396905284702303137724154755836205782847844183747067905804825429588922665454504861759044747811583443472454144113057257803721560640918902854848029315483902284168161324820436355909307109255454821856494072412313107262542436659794470241712786621622803201369487202725443011557188672002622245924991754479323419372228677801051122682939381963775828759336784953074639777270844449355385490146043592071536055731196976968991834670604557729792019563142692782914129952488611037198002341348379641614077992401874915150325702903556176299761333548556665352810860971548979003941035915134571478367203947149368537764197053676318726701061233597496336313528561198785686264838605667573180921497925193945437556852850964579890637601468373650645575622676062378265913088131029398242965563455497081786950445248199687250618382957387774857911912553926431287009499885133974493759133961870586806992106764638379181007174115455573442820821839693918813627402351879954685099188011496203211921214219645396905596811348080627587327279622965144798424711164422370333471640384153029987055543560921913117586428639019742602753091665991508196783145300548072178549496065026968882162512604983255722175263001325702004679088757292419464275352831560844010411083200275188985206301053877599360438607054223943929367790979417576729770458012311722309327416638811716898460605239604558251832841942033166894575985953103348870922038934104414716328401555467008418191924892699965037098909508968638688730340445630037300238492916285516089545883378014346334572874997433533365089177602312385650441474217570697776966153432903117493748319184074748351245770303462520005048212911495023744688228163334018525428257812835326380070660525506330223638806716429712596206268286075769968552003707989665057512435391312459594493373425944732991835586968059203039650270877992672379133506540712230025651750735765835219363843830882083169276677128853545938524027748353981802268092227649796390353695897799427069237007725375106668269541534034614391512809694779951747641310545937935794092128931869436169321290274449760377353469026362439598954072733876536357318017599644200144766462999820311959371955897684672990347424046450027170438804953632973831179155961283311215419377337040203256514156857506161649350950835893093650378245419485885179781638241248007686805164988707769740908517335006497215727362344188409674791913509791852870763885199752069430799778106569531638391157498154680320631199131788365358438884682927986526263966012962133453326225978027633417708124189482528281979621684895748660664170801775093795815177232729730787237018478482971829871203043680820593772569322504796528211980142498847978833216893289356232479241759000314717195098500207165750498159276719259333207733104481364448295070957775348362592070851256390386678725230227425155799725409946660681252595809807870932405170367298536831187092115814421166123484777856297169941857411007467203776998560564067692353688723907427036065856874196469681639488889160062435761509283832704923174374705192479733340108277831748451422304228590549803827758126356389497407633874604845009888074910168172988612686658464075767538961684440145918624786359334512736840198017303866052210956492018382463272367194038198530039721822380762337291239347069292538942024989967414419724769449766189315013962059118510549581495624157637990930319193380764722204731467626088659563227396339403386406601416413316964373029815848219528621542221669542821545975381751611207706404222609081832693426291576774528210180583701682538175436277200696849958855008157507218527625934731730413427382123279134802091975202148317935533256299008986469009759139184365780447850894857973879824587866585508131520488641421149007484746006966373250008513736343553408158937014139281179421544941955916855045817929509039574513570546254008565398322065798683372042185203165072642022896988976588993302729447850658928338061593187758066455630753336313828974225809596161516452601233214059963561641810990935650918720404063705606870600476252733887107054192299933713468364690887193003994630427536609157811176260202050859207371064091653422702689151515017229546500326438718404323221314313911149005451375830835623814353987525368611081048471179427198747873373728914190943745397240742363070608384941614809673897793602849658971204531500440017868784178639463439728997694779576437668537607468811478248179699217914924769745467557749648459497560323446436201613885757195829950207332951418067670292457484045978842886124783812843601411258944261175975733749060369965409594374360817425232984835560005142501744929149276914482060851491125816688349691767620532802991717760182773519214840167037381640838549529559202850083408446906126320053345215387344850230589964035756043777323038157375817996104753594518508766084750203782425798642014186566324115960004412380984932063611824417070171747256381217414646914025698362785035541454155273790423711809979701262237081758670806044777723248800186825922217670943311695543086373998811529736281709523297086307267406639512546197404430335342323850373547760853832231256295379913286622627854414812815858002537851075151545683352422290960834692094615259191786368071983673183641227438847565042197431576271594860751359829586022163784202467645632755681347658512637848523914646681441366045492231459733943261161070103368599141656600332164614771166573437997702576566223159902900432303750599924978245784328200117717648760541118228196263901208435950265034199450516178453586136770588875982994160716101021450356686636810416901792714967444663481112479942208644347648630801107777919586130596516103518746100956802394476383143146530634546899329391409635567349923297263892022636038676054087767026231486143759277830136500352542954561297344158953528782327988648148789365781505684159826859022489257493971924019603121682469346555307520936157454903861161750711352656283236181855193130643558546917709930220068675087092466657075950661474517239048825880949244968434160761512041108780593071255045066307327292280902829004898028877872020392654530736049282144166337685353264809700908467758124703728919031189003760932920736775640723627969643258172017207141810791250514066818835797217461196911299952665192308297703045600068599968744873051819946234315221049441114042032455595862483744896712712730811213659563046732799793389524981290019517663854806583246606347769559976627333074837384076133525080287481170746640733135591266065052160150745223874063268575357473311867419342061085089188148893454754332734671436547084861955770555308895243951088924816522089755607311627400029475703143619751547171869008063262334740322540843379473292360995823642555291676143460188579516465839191751999124191337750871169314622298771300759593032724300587450947197958719341292996246636963288191615489225353965082290508626582053167370044999633202066357031051685997492374417887885660999817486854534491764388067074854964010997219942898037626395573557912788987674974163859186494918559839944963345471416967170402910612190692250278696642228480304861724970428736504464425263423648933814606929627349464547039217345900341969499165939022397893525571983964343250606652174440972773987768188520625502183553151166324865622313997275331328578484139475211836294896986284276164671004380793797597262487690470417285495476469032846456106299815154818949906294149062563087734055931871564928209385640447064622541906859861953689584060218347536892368254025270564296155603190317607696494627095892147569703368753940174747964036189700877093499681102869300069818681780913363705661763026927245052275442392439346272865424196408030035678094129090444774877898614695481841826789542945741945394545684016076542541620425934388288065672813634155194609118086415001630912861693448843046005097799711728212566767361017088037740517457014088990709838361466054649345143622268549255763298612258697037990476236210738061934933465058533192334602877870620010940583827866132562276651196222273418948424775940136677880298654403292073469886481321424525193700312576018057929112143421926437543413303111348919749381341480437818559178855569503236688896679503409216817131472701376271302209755348413728245367305085429940922807646788583638657373567876799357260169838669643536586697602806208781350366441019346700420950985053926545994145710390807552779126292953831416641422258688926376773468450410858520653746065488857072607399354903248009749300337819113081088092416769946204628170721351632876053157612091033154164958488060791424203941170772956250848777823743422107204524593247359344051322825166741234792934533725017300824020889553317416778281113915725227077810883528601351114054092414719373761595525175229926762174300412516415239169410389757378377931963609071778741585112589784334972630991387014329183494945140118247130602798531090089695838826538104038228949922605985967347938739648485056991046837226993039282332459963255645539392631228326508752916202777140888396645897210331498761409067805488625796912126358136768023630289396762796409633317260201965136432719184773287665952266285270797289988180893094437076724800219908145157616517129151445832544416881947492271133515352353138522739064069711450277064414010399310482982841805522392576410592987455464623429369562189068425956571753458567359549543792061900585382879026134333589290707766299427821334174939561812710274492573809247273000247224900509244496950238181615253714760595711912909293064601871043598437230846316303673258361828212950912403323182769673714893661373600251269221650926341863894503939546633887529406815114227554412283024249431054818444452912471808509825441501156140641806105723506042623904070553182208177647103801758352113555846571394001427626241607126020882958967885324616083173814959459342481134981359512181745570412062010168935901126236341457553160051109197908287857017718471023444047784227820108558418119205247855951926845727855954449252467402359553363203360173773774344486280115748869118578832008685096215020375820742150311633438217253759773220925245683002699484679358724207662746422653082686691144861940809289483010822544174907862832245199159412672668592684320333021964750491016785477749573234459563441423463511209064730822388897991283409683953917195338755229139972451646512137791891873570362031432868948841411226669468963319877591252513587787882710915829177876765033834692761158039622200554141470126416600779606920803615092933509603216753220837690156230879687962976388441693436280444379345284598387016368173942931626308737909396375547759688703397856385886977700099842518184256126614654817514151992762032476230877551186605001835961054563361854258109981300780365894608834386230480140611649602103873530789105805476407444910400094772575459786530893225212401927474206575068281750485947056269539999861613960311887850731069552047049960966379645034489087814781157458267153413929945216920955709211601537472619512253172830248715542419496930146515731554605069931942958809260572980996154073863775622984097605368135642538855633714942701834483373368519213774918930975782851670252258632939391348871443270505637932353021782636623034879638296263503183864984352678003414511759448195724863440556768804314232233872436702764998691600503842944570044700518061633077944735994809743983089939799782954175653136643504169807544697862097985052576801485107215283860375096615273090275973070628737999697418428641430150323812276627461078920232568313298139591627779451587850911281419369946142461742290007210096040387171083341303152479327042663808224334531371511602617345665121848060922976027671612833340554592107374201657059147093809889109853684272738859495312360942190408065135735476968893426302397494897567912763499218300915249498015950220124911639262018763845796183286154640247738986488341210709757057007652682512733331734786255091420438944503983753557379616972667017548581356617833087245378733860538052269291688957762982858556959128710373530726917121707474858481166614898493398978409630581404635581531531293461925503469301566409481887573782822316782918956011848665743992854703332351659370163229931938879187090544370319273803951504516765257834768298838119871448099813132036986308805364100301169540539877566294124612652724562294130662751912050935985109614581478926994094091989150851821452054725836214842016496059307920490746076691550175476145519722238164319260053990057285292936702832806287888853398282293407284191657053987023393143841756708840146255728979107377367325637926117543535959110158344841717469011950084197379263596551002670657498200672786147604650547061429507962354613083908540930721322084461086279998287216868282822270902602902673415550939574107485671094834196164032827418431569150966876569282764560848272870914074293971068701367520670236007415677151683793574593920250222905772242579451562654960362890917482646224981497534394410536424869708231304353568919213792959743522214934656984018730154307602977821103514504968859025939921196640421354982477124732431284074456564869019096909421599499230102694616804395181928151828865355851273028179785601459705713191407178843963660222878557225479962841825463634331246714126072786144335604603556355092125837838328880996685454103706943547475577847707493397669082022281535964617032028495338459021832756427748127387509368859640607786844243857945035427440719998001333499791224412471475468587534856814999857799049030155517001977833486131656788043647844030839586429995452562990270988097464820014837945768390032831827065608017106139368635449552293832371267358921879004528583566806556936773339690395358421606880721347445553556399167107925872695417083475066113413062759288853643128644199199743348045477897133345837094937644911933946874715341363538737103175436311633856697177615259087716800940085223986428171646570704085251099749758908922232475721565245686675836392732271222857806915321314644138842042549546364614638396638001574443823685809868938112943383881182335778448348945657863799500026944190872118536576563186893937547603122082345284446070440736020286098848100607462299455130853030303849394591109265410873256171810975807594195849950610540956161809593046530217637795809208801621377025467659338911808086677979158686138681643311421720930555664559527144146462001327368737432778338778090488834144533739213530348259695597291103348675796860802818103432719615634295236183210845847963821199898340823466081426716364395870196212127482128037566852821920255024168797041337272547352240609241047463774131902907930930395984045422787741868776620157615824465087783673958056938230610443773465911360311767842364816007291349755721160440809362477249211183762419593748082657913376922380983203925843194643483874776349420156673593160092955870097485976344171213918513958312998529628851297841249694738427232452602317179406645967770251351877305761183755988879374225150557173127891010575026151301239890683416968914630178810692249884401265521017918655940600861981655576444470060840275349025493439973009949788602228548405579257132703036329503882255438452341625972563552526624091658788483611374995908247961759649134104418333010116885475634181023526733296495676554750389100261848151667731089964337731630466497164783781802318166444508311299615999217716106329948432436419207978400979714032458594407123512655635683867684219465815048221027313799164838704321974956431567691900593807740337045751865052427398093305284617357260330129911232791159362905702775391046229196682515240618176505808388037262121358542482120635569915858595542483340355107609692489578119073357424482876289622285683272498488089664076598774030933614585190642945603852553023374067651314341945113667362809938874315692754859570968874189810362223634594778349057337079978583942740121157171302680560872770103727756280807623457208872449596370403698893738720320297289061299152920245507957553166426111246587726517378244160678021451459225844089469122717444607584715940726697322963469304915505642349549750396572109040149618845719026603178626166997286584877741994012786411415837096596413367286966895761842284569267365377035063460405848859576647267305356274118160378865607744748720450517227945347683793489212512607917288761243277225972064851945841796426700263483015593045223650622345094510740252438564617125227375293025803122560378825447818337079363836871585329421143610445859465328832424844662784797206178915144620876795940190804534478049370173554124026175298698769412208296460816612261909434830520598415594341126773836655198621765251732040781887048441113942331052338640608856606338693868975778223958313353293057739343963027217680585264923459925515317885270938991665260783844246333359956510616276903220310013351255167657881422902790202948336111645760856952291085175374953757325824976769509635278558468345072373574006221087056050858888984225479659651660013588469402936272659328736619657453280647048849448590007549832842740007739327340565604923996361216902964623268312930101771185413518488313967914111944178804142634470116063421151734302712075775829586150554049611641279587390396106828584190984888938954743313107055981617130674954965426860235498838741218287800836454148917369765434754228221046718672230258360745235684318411751599286411043120331791331943218350090324127102747032801688756413783184815475546381554448381009051115535288684098236338507236346699696607866836137143095687790762845213650618778987794572722617981379455173384258776382659653159617018815047644754862345544946474857107142333054137422391809924237078724125438899867447471288090451765377710720248719239563744838936847697714851805657936158585014904201996875171701001211689465826546020827080786663347593250475758462312721173442509443019538154689105496552252860054653127196043648881896726277545102709009224612972422140616559117514456475152513047310777965137605906836692340743133366721063727019748033452789568537403159964660884695226604987357184649261881535722349079825074715975036249523648945250279907540588308218082769632719731808607872650182749747234318927894148843704616385825611287136324724459420588194116002444521991252101568078014111555449474067140583898464824474656024292553390823340380202546286017338221450672535605880995924001602766712982374893053830338433224748374937568658316130180886232446525669011596150720207290148134942440388184368390986234265727879002268185949967029588680073866692542874829902976777440644461725938305056279564319108229655346721278245532194132595380609637075261552742758575468568764421823326359438732255412913213909957863683942591373793669362443539755115928808251297906506857794609605749788070709182539662597123345567009464874637901195424453160211972259648192632919220775407362798867963796652520203721958389082554011047298954391416462228191019126177716326740166328890517145929309185760795175668797105348188092975885275534756883856382980686365685586864556332948731785214731279633601610443602312960362177066924407002088071555501388732722577803854101766266293068010493852049813111549023715919983315996722102757546579457828525734933321994718040674468757655976254494857633937569911151925114377793132865916380763225338914410602954496620566722380386145530009228281080914507908146953682130158147631187634197961230813553071190014519045776286986374526754660281611170201871013247223993280122217606463994659788421435347905389976900900751381278792227098478577829822576652098307929498045451014017679695126404148748008971385742628845983084687724595551390082620776945237226144494894044277453395388688385708540606372289132832014762969258678692851736238720784902680682587655967754969422430669631768708749675574289469767324443553836984201322182178402278142086229197654441976504358080792475767681197281202627809577117990034569403905760161372480651415677714812721376619608805339379240641131358243175739507026331038514646125921542421550613720033791960704300198213375632119667122747892373537689116308598415914222588476004954210098983832875264764601348891245473479518593183682607672636979806102898988106092643226669345508184546121862147446391507831376756500602651845394364577395963036183627991661589704695651446511807063080156980680796315502845624618503364598125624794016586973840280084443872353201686355374375866269959949624309329497933901884329741669159622779202292799685135835258083026000360476240568653040440307108524812078268043797511183909030256211376637223345304770244707782084414009730147984076863705668859821496738623983485119232386031352968225950528568159485755379502008783320005657182350508137372464507282253854506396202106641329185352404520911994705363540380588836648664999986445653550346928871122481201932407192316787805633859198690045561920434167751597314638951027361784943284309291396054173929588874705049036499712365860881317955980775081921410961570915960644506721019592638665990526706035494304361928479557216739039529746435561691094683601258511349110261764880436761200475609764112304168363605385630842373228031472667244352538874747780275682427457653814156076153824892218915023876143962842612985942338518737596621278113591565781290255283028053228400129503179186369086082275486563291212990664447314599841147204253499241848764743597560226501750447115969201781546476258275672294372150739910018081653879620561650061740737343521171183864232632425498263095897765768821199189117182373062229393300157640556078268067495173990048090911148721017250068643678040136791240010078926945174721473818391139073312101588534294255186224530139377978307744807106611738739021313518349919533491281281090789183921712984299304282216979419734805626820503329720361098666578111283510414044225459606289393359098910672604754892133317697701470847743551265860209635089637554004828241554266533437735746986083086722174102915403086049042617776318010769199312287014712960555269272362822263473124983512800340865980643832139616741090048335336983383061301614942038497367937578567169773953584332390021218915547843511343774069351652784905112956714804857761839868784380354698780320838880010343086964884997241607381893591755457474929972604727745186509223326567577530693013559708684826364858533102882820971151317431799852834726725933556897538572483248528508689360514039953891050955847903872553088305144211762216274634382145401101275667629283710506789607703259268206679292175408842594405501855754165970027241978809619898937534730581380406462877906620057339599529136830349197777824643854855518235690283566639196140391757285940186037669094501630324409157611564029949570015210666855437069560759454850029793994373657452770922449889168740952828860308451192621778672606829561771895829565418909330095315750054649554353466839393770500676787295174055209776346523765116370838552436774680611536827861476786230248499493143662912184991011105464594531781130128420666373139885675927498016919321108157550154015712642652927107249520533913109329923549796222769472623832189684963015828212200415019698752796325880468446539621436949283822240604582454440753638276398638594000094349333162341950441130326323335488160302202123876080245738494313543860363475407830428468424052725240454317981578700319361521209938689546712577600676916155656998946280157440436018378159532764312764691853844864380633132456815815522632395239590342613641634410635347073030637032976581155426607806721284183208046824005510439947866730045222167929001383812824708190129197580437775812875340010921571194500217121196564069114496614900357993045698227742512050157927266646016797037107544150278932333348595265108388687446987672220147883006776245034690004267729067913713184506337186245293685138880791730212053562885558082683965775553934060056269571420290521568855096075409407898586011153053637611964835428257044172507054324715714992215008536321420019076329231326920831507847620765599706138968141694517619554633509935527078065158941835740758708503645295914602904512135637127478268365499504307178627947997531094057621705451544432033644877403191778517550103754766063133313510964932250776348470082449848114493832330408104489412587271406169147760539243396362963348648333845880665758980620646775181626789438476941111874986206086769435060944846853862659370299804632657534179853151351762238509295687664464353401425733507789645686075967299520278987306613955867404938564432933487749787360385575444064815706774837190383554518947103412675774709176544088365377868916501029424291070431458271051901093462536885941794920230887147551482472715800520920518323171350563455692674350935667621953190384535876000014709480760868970408944654790931965987197665041977414574781198143664906049049999743101140863090095636138925706617787365511620170979891353732382714086829364902023096930049393058174661809578848154775171805587863791986875060505384750275910461013869634928923979062436308719891520442694483367922906726306997972537462888014819548150551936300475607671965308545531475859435515822246867931755302905796590296075369644743792630089669087047188244610877734512690782051446223422862537339178698081888282926090634159287120385951520684550725600847160547785420632220370935667992536129566660763112906777598840983234390157928364560266922465943292994176139557357920915241012682096638815304563036302557187908838037634242423982963310623526100700076924827379651620345533641993720182400785164934526876941771292359843039917800368073735357050185729975844079049106725949327354166522418384181537192908212541329284441957240840050875798963123517913799995187757245016952291149357067148296689495596490767327977219251701193055552590376596380862848102240862465717226793773359473817555808140633695296728080019069814847362630994795024083028866400257077470917513350742734106710246543618914371961381548029403053280031278289145294334676777052968831343154334187900025439842868520222689253636928003989048144786377860411686324527712184792832943499729646426631381677683722792602153596431939833225723046519563657861472416916050469490608330750314694592561585191846269239575690208821435666057130743498049874253211414000272659951384399833235759778308996362549265255328324942643167522332628652032486318455154386797732124272843853829422347633595876535432386849947902160107244369860896656670321277863099451491219396847266608283257352114540004217140247176909985604336521064849611327046035951275082686232246741485206445553423480582909677399673382595931963244846185378765653113161814261816052438092737589122005477819330583567126922828234805066541691237002080112996067421256850304421490184405727035575542454808212471541908024507762470500529789784466111623417588867726627332006574084584875380363007781190875609337122372301278825345327800758428515395930214028375594560265456398499774679596674448326879931629121430510032907674325024345370713526523117805730683506279460527227224734074110200002888318957390148304472428988033766652420770277218595370069949331877959604951938473619600677562931459243887897555337625912427120426211837004943891341117794003976997046222480595289968842054088144440185535901501112808072059246783407300383193758439268557028462654848693815021084564066833414147078742358077772578067626147733369073591771237352527743884088578677043940343284722262605098078732793397483382674791250480887695165745278388540367879222264231210200346048158556374741661625119194055045860325052155017764387635634365575102428378767251465144752210266017836902724390909847751326892246572281037645627165709538169478601390714877109707104151783200004821444732463919044414093249140135821327783771892262812349755889817585816301930136809374193837272424959822133708109042856601988096989114401739263089015799376419771058808031933894562442242708236870918382397504262914873626031924062296450487405830020937073074197125615720589728785765698600887767747883335585016679927844369498395466563344563943827833398513069525799760812834239658905928248572188768045868862825192553662215165971163030600004804511048662206857294025562473132007611364065505808204436151638957418062889208130083640921457253502477405772098777705810654085318792168190275197084552260916431713903744245151074829026111222145970124575994838412943926887668686114879119678570212638264113875313879615256393475534194937500305616466051762987687326842204239379685959902510481429547610165391005289715017606939172740455359728501572698876671788103254084944751770947476321235124596692519832600289206172762182654181018623113959418196163671524073199521416350453831199432724405038780209379413143326436657332808849363950587497760868391511135287871287952544713761625466910206894468959012189621007724991451189928680510722350113265267758680092537051150813985552235834756386568717187743979942270955771770419539445923608037850230252972801413830416175965222889963601678711508283383766414736363655257893758077178963929156754273248541352980381321457639722213868104886910768010064175910486292173963931543057631663240692942417083575618940980229857963197957050050796921989973307238065212022635404217588229412113317438570877163012645966988871715038087964778894061262750537694472486163537270093512256081035644079238203737289322515499392542685022918275781436890950816029241980715788137572461031912762728903585975038169020189053744831300394173378124250187056566516545997728749680120705508041605992260534474916627556167445576477417367521194669830375785689440302720327058529802084848329359447295296025614223888584687774761391750809183074585512915987060996071845933891628874422579649473552543190501088132761513465789780078043250330037143020594818171775353573643745850379557550217435949526747270588062042086955772030915884156286922223615947966741050323059333228782557302558458319238704286528718012856072065506991530287210757967731100445405722627138309317253758425709431597955878154903238904197255830097053433902236599316622519201712310023618427999661476680856711860712179222891712015079589057400669878508427493617155177086511113120326235882528735539794553516750270706786168352883559583263676838583023121860236132372618777325001421841681231009811009470239170553479224943835703142365022269920698423931691945215927752086513898346680089266265936182961211484956991039734700826439068283680228070072519723181748787572078144245541010374976413817280853034943216627914146163251825927375462890967981739871137143878414226107573408287243592082088673863193515372513322779150520762306756859169348317546755810663258044574126699840602772236639226990431527891540675656575532672452201453298362753381362119475646004596217822567536351607633355721732658787940580135407906751808797423391332391638191250019347382111746754150847477220250286865972445565157523908117294101693455433944107995025074773658171005391836762482784327365426000839598359024374747582216567020838857708926208932610609790400555823147495778804966251292336973053664479365302385601511814718933386419732103944430700934644225181129857030438477823724797405130373058136218791575739858059296519696016713798119693911009722392079081001859914032658085192425704925427460692892807230803967097104353089519565397604022746384968398452170441538663758719993301073760966673605302447330989456235873813382746759530082198176571080482955407182471864206977635246433942027126516516688879485105534352725519914905912097064631269747652655013897490490337356346252561985594106832235887661949382251510797404691248394625474069533900574628550359185856371298600542694792361304107707474310904666653279891815206933660257176300046719321922355568290671108654615264015086089333847713556922946577177410784323002478527239318126544268537590787831279689269359762528805708913317319601590264965718660401980812784143392146418374224406974232249255771245413975868264036842371318596176998415860948162407296795497756295801120031895956360926847256407748955361424390194720721518303682885229096479962329081763746589790995547422910278504627973508132959590829841767140492997608068867724421778004420949971460714848235794378142805463716894403022026291969976818482802794477601410475834681428113313567756983999965313301155541648409117649190061589952902967025506862573353251784199710982728718956867908117300920433453402228255443344576962454030114690960445421383919367127534795388439139417633164766913748893605907256824581784675059158545611333651426087197862355677854341737116075035954465595610009677719680961819265106895928435201368365988869960208873332284282379303858178410296112282733025551280851923655512764476632759241268434837278784834411709332082763896689633893684416865518794325928902909064196253934652736483736899199209170974911890339098342625907183225073242952479794379696506391567880844424035137696950274388845481655789098961606262026570800711406566625604896076704950753047414661646241600796304924500244101790703342319478216414797839317635851855210557652501618838374598465353724636319842989327553964496430883742148999277245631459148210540814913809821225021005942139046381353798131421010929740360611224121778197369574564021687542969244269337428203180400369797507850081362204005334430269826505751345203488062166379622089256853967088645261425673286883311106817205454621804010072978571832487116762956064903931631740433396920134514473265527400036715386205516653940519447644360945395027800263635724870259394861180440921005878497412087354114586095979348280172579671173447402329772326056658394480390600232082591123445044873288553318026857566758153790906718064508882608928647598467792480541728575029825356001465706262394380570222029333673984305084461843274956672335114161978726918519551108096461781504879675422262496571096404641753566047531697924638639615847913194259716943091926016865640981789601998677714390634111885476092517630275205080779913820553120828460464538905967424710318467047835097462694015840364237625549783566929117842418544977168187079403563766380469409795259786293505613841589678091934966221661643555653204267560366088168439285075140591134650292677586287055229436437018427149233243756834530725365344148354344409772680908790042806785656781059665563778018342488911987485663290725301807958454505606790020191476559745373869635507502450468948632725617082431253984893218981805433052846566263752365801105931745752993985498828324310358932098453721279621796784229344618307652017078028899734917028413352563575548159288005007049205077914675342414845034473883162609127262450903280365277913580839849056216630727439119133262554771869840870785408140713502617157433742502477599847233786645908448940445563864541020018935712180173694564510783310994654855686857866862684571735408350392587953923386635060793989859818803682735050393974075287090468093346058987527042405621816056314400800875584056624696394959288137112571743873239399459613250970371437353807818928586011285753341256733573746811768590637141469585706449477951400043534632716833589694190041414694446581449843146691376944908605184213112204548326496029618532575853982101694500340553520486337302549454827893246547762068570317578575570440527673608290500589226930592257759648681095821662181783596532357298912178287532750837075147652820389299375510729062605502196261476081320278125501687789029407076247346162660473855822817199224542046686847944228640393352506123497937932323529794653810133085346334349812321122882500313498638364702559114167038263249021976770215510509968027520712987008993887744174555685269013224677019614754007052671371817495973064232097180321151225250337181739295855523410959051214260168214847006977730249572170922892955705952248570725633228626053608473115177544695736398185059857717667920662477965703224373387741420825389815094111765360129257487775580025347872328504839775920580513033235637895814975341371864352138550090221285497605691713087385170057837418603787892497534370020334756673928143454219966023342584846739786821511784933407473894496813678034942920682516738311676722628797300748266350064271359944508400528527881209359741292528110829122118595882093744696770059958395949046871639498759563238619471110434736811434115607547695990625301742057573806826309458524180481407604175613107968182737469261672129893310180219294472349359077694956019209287093637875710517843773000140690145603744803406336848028610498313986953785755311989397878525941753870039727037135661444675764057313747514295583614908676979717563251841141875551388904280677345274665903244026942263443945451736478082976222147424286068687340014749500832171052896685833563150910555584435967607760897318180092114354240826861214615752374545233429572388564859037647704771092713498530630813798157114686331595704066792814967760702699792996365694883519946863480506776458361269038632404040150181124899495278457255970230340831739017376005096724938703750976591694276670590611117549628086013195827275660348112965674167740127742501900987927112745345304653731699565345641524507218841217040122995361831042457496613979824955251407301998966039538393081719364532229451030144308411812518427263604521477637101966802210795983766977205622033380276413110653345677423074934887566782622652504245613442196659879588451336501509047533982722169282877498337087249606261926197210877230323428808909772165116609489272164697124671128713485658792642853004179228321744606908157998610686732163642001726664557485143250521258785402082897540846137032048095605502819231310275141989502424596261572586716874133440880621889378067811338821479393428884350643925599438853543681499476852199346904702921004097728699372103343543105674741100406115547618311365910177022850026245209622715664651516884093323257311234581216769772122664820458531926035574704496466110601136121499670363095546057742596893153435486358778697114610129784509805091141293819656472268026042206692513463960241258242826395451496641872417394074890100068024641668138439158445413852408683215795475114389337950327420635149922052467312701757033277298291672365195808231113701477479106719404035689344781721650300261172078340878002414981006871282527197789243243979809016301244708113734046044927222972328671533817558726521777917848777110604538464522122380615730067276145945526293855734912372868516536883113340161858629780342265630541898087897921627387845491534413598545729495936178465870315536994378253080806227462612089639789112624148497665573452465466505477272149904242218121034769210491169590782009697874941146864499533798248009300915697081485694879201206146914191496814571391211005490836821389815072579010502228867149458282270344218010729605266001026163196491327577740532652649947738611310585408872656729859309691219672729868446473500481245655905129079861283943313614815681854875701217403218229865309269406944123775303233853721063630347079112834792893652969959206997628621322095967207164613140294327475411944534159222873307124047013532979070662611687733963322363536207033016598383835371946068649712325653192522406874989822332032816851469307291453836337075630807284963157988488559288588958579068374564498532871388674291486718959793830199659514677361744294763393048056994479275703208074727496411848249888582182104434328896073093007098032998412711883995551839405781298928352225052508154069293938338258728273447190182704830142253448071474329872823246737718275684205414337947752697480176203448944876041262205119416050692971655928026164558891740272354514402874339469093326473592546425955139234016101195725110359874118831089529844973455574382280604709233078640414110151381774500188275153287875859010914870506394202114719868403176710119829852663440704070220101484487769655128068449732232702894800593766859651827857062148638366632840048112270097134985861655533913870491157705267045092449035905334015726039888761682896277854831497481930025212787191294643171064108110814098417777725209106025588079232619482391314403074495463463856779738551230274993231421890746687299612519862370823247786102526670448491991800469023740626013429395213039807920988593903040699532108361097992620557434612931868366958011637889765382682411130504451715885026941483648844165992241204645773807280165191778945407187068683377029732673581227032636073936163683831867363971378993515352909910417182915929100490363059121984183363520998894872824454279873692316770543915257316476447445110631716693675078825954180014309516763062502898436372065508276812494469304002828024906624019784181783555267001669998100730295153809955005230096575377344447034626313431794960283604164321857717050825124477723092581753757914319111551622630550802660107742633730285590148859607829572198794354238211449127572307960562269963058271896315519705850790066958352585598592749262354977266087809340641530665983318760183148235276990812621996470483710673723274927683311602868377561986392966780441363354823790003980789930354160711329701593216430452186191682803024030010838404005346763300211336429828301515185921285216823096589818858886105636086748979369591066131129522981050356810166942069708793825069862597917790573772091891480796397548987246722294545664924283981199468747236798693373479073823268406659615212822306004298393967860738844178175844156337081976371393133179950892197753439698158046061911484660523741657670026641188595957327277306548450545315357695681894599222014811007080191428604460137917279217431808295816434909462569776321619986267245041251308027179162560317111964616724635645377161833973250250845966161131810931134677094545025528136690036646431032710002107285434805272077725091728524084081940876703096687605469511228081800479422129909748910715396527876758196841857872981152064830484708135627072308748549432050606502774927355916864352104315915816989525812162917630770412178492311013961745065887175444516895508044566659837231284784787936951554454618928678867015835621773808082069945464601719783705344051730267429981572871553481137721984965099956569219789391775895800624607568623592683559977765481096713365365788053094112928981843261646097043310773573315448168404655880887117987867531353715339017991403764024104983748895521274796168117712922540212665965449648733710719896898845975320901395076641570393065954618590972559107390001927714683896418781850048584192840787075739560691202852303316547625736164260778172574107341042668162511342087563667999824470809207194716121838197711482064407829375154907360407130244235806573948572817356468922851509458792310501225383625966485988060896770088439932998468462798714367254760438820906949617090011488844027383695732594758593657681127883824696633863868970053456790732699297796621168335478863813198629332264955448085236728709750126810426437156372442542636191229356437089411405886755131256933980139270272907719880023633158257491773096312910353739012941590252372894546050685099416281174019159228619825040182942182741331149868308509170940845167790692897546603207223614337745392709684805066734576256725545002283566791011919787394631584070885777418554644629855995547897389342252475157606660113884119680516040355489130198976473032294266626357210331375051665030092321368702351101083049585180490550516849910713497022352865207778234730426520550647000430938755373258771428542796212928045954577603193699375020365726862450761693794873331814430453624559572287844650806347118256586754123518478562245472397219213280135227377597425604538862350685889936487938999784648499055829259637249503732577180238219281992276561907683716688148371729602825447025089001457593210372257251433654915140295463411689871399373972383619708880248665428745946163517007999599545435159144593950641388964218553545198174029553198631268791846830119623053611428869978507812604076124423399752089777975397481233274784400407993898159916907571019357667124908897803563040092125927303570301828262298419930548251525598526702164777944720864825939948972113849001807169045884006601390027261867217966219873557352418957627175131616274710320704567454661567091036663454767350695693576867712305987585672137443836491442910497981506454928910669579879440513111080708408715502813510057592139959231363564634101668965955278201456227680516268014819711364794088881943919846864719691950218728530545714430800880225069446810904303035233339116477880540132070899803211142473772020384451054318151713931585748281946048159166653334206551364849618845846683168776269942922853840835520777028588456011019646780023542127721086610282553089481446128680301697480806709094916058479814832304789098388587280736953537534830696864509947332866804878151861360239434437400835719123476374077209235532873449858330380767496043337652669811614887072418225652242562842285237162337680852998099438458143460480041112699679043189535129904939537536481708061966424163947175302720572361205143001269114326893091971005915640172210839283363377386031411645807123377568597156147443824310862114902482038867974049370451715775418489796300109015882555742648469627394399275092890366282423195903896647810399392051090812311436626310783261948441177737434838350087591410400806306219143259901135409472962026770273606843157011911312242381680390654191886742996503565430263183543974542112467748073132647336710496816383473423103256943614244314802723886194186425880698395914261306427963124410583023986358245864246008590109737764952742196637982730522712360624344488857023294477150433244105926384081249087862902969365230221703540792786459509913830620394706854865080117733821155021666578577319455608590936831723232765248073086617697334872891050103960257888810141817949748105521102759045673314404929012366793739316166892108852304059063318384776953578823266437542312675335935108723370847863851707214476266752413128645474806445036364427456970477675728595927310098133965897926009829522376716605459434070045122810005442744802886316668116988226073239004487372166328002086450275898057922349046101182563373422381805277364155343604106676558057091508591194114469291368535130552582375674539913218409003282772068787218936482066321304858586533558934987095570118751596702761598325214601725138862517011467596348288603075564163400948159763970642594988057262068204726415418093577041684419015674466737056875567178017563804514569407867976917284996389637772637966015937580633927772375999779882372544168848162416369771391332269279978088719713731822347522666410110052261776732320924631296094055807234175120580570075007422213072960694498969659600473685577980641424358441782551988608005312574653473844327120885839672292151385987793181675767120703147682893557788021127037940729063317212510873956640921340592052212663711685746173830163691705094877622205099476219383437358875383625433061391885549855979411515619756285832821686659347043337294870360332550807833237921023596286917774305096017842547848945176080320388331900097539375102735331613648883355674444750524281447230444281422538715647021450549793919816684672218771666774312155158726085464378412123388069420261486330515097577856789120956867077987291430171696271143635663811444702754067372363856836253421230222186723631679450448145154888446736764436730405524482208171689744945171141625073735267662177718315042838138008841827500581670499104097724636607502332474184299488727764636521858481328996832781427319474345640736375565967897852066802776524294932799577223029060929440733128068217364557360889927936955994991225440609311283289203021702898153160862575851977871461627800512204815844369037290938413520549828118119032460140918312139083380377309247804285656169056438907102999408607642557695027721780480612104224729098902260434798140130147855407617599035847985579979041384760605142503545135643702420727223860452658914794424498826347081631933310737586539895399838364137656521429415283907498985036018970643530372247479153449721721620691957237280841576870249139586587831665206828888215946268910745261519452074681115445547042241113078031376016892596663439057430349900634090166812075186731063965561505823147392307476317208092417794757817882770033142072164351948167856091984488312511368290126664130187435089372295373289241388223774739743661436066311190854991043507381338504680429379702130179526194583047044182778863248828356883572344671568251054148872210240627109234259866099356808670238374583849002307150163661722008398845852633597891276962734493684627041328123341617534828910225330725280258888438238715616777943607704403468508143603113386001685244628388477065673856594620396722318857732357004072101514878664112505379974784442019764930846758045338881599676723050610764913929155132397608857811013124118646695081538559740517406391189005782167069502148275936839972685328778989271290340940166833714009610185757232958237198314084339202492028683821603628349603681718786366203200675901531115441866082611193111843908959264814788402619293454096822072031025078272055894194309300757416990732054769345712212052187062690070686638667943012270727794754734453007958611505366202269237307529404469755466259021125371107803942369222375981858528724127760873338396708590597865777448916467463193303014615556153027254468479547636074273481001237165352394628508967466179244812454377424536583830872095622251995765932680756719495634858163937780055515039807493579823021558585740330624627524637444389019913316852895481103505581559331664670140960948572515483294167972170267506717495627610161409248333241630536808556101827489982096590715843896108322328797462651525684000564206662267369433896884775654509462143733224846086275467796164157799629622114195257278452317712388541728597797115278908851807223875717562547118825132341097696389670213085472834075632143390702921578027419270494506206174640298908754518626734642002436274300944957275398429281890716123096854581751408240919531826175621908049014910816111896497487591531480049743145459899220572142036896108440046768979050355210231674528293687399050316223809289433872674767385913384482673568349972223146578281204469993435410815752035331054792438355790485740600653730843451843060270398876938315333061777555861159226970961202104571259700247296360117779030823058411177681003794753295171873340684174872625071364252933531774016286561172606376874599327021378757105368979718372828932390570948134155628466072503807403720724667101474463970090986242377767418130712802199044157777203252870986643851288054474825716204836474074047868126091457161291124237644992827082586590733886276339453901541104596764178366826852836445805694832725961772746159068481384467325531842894171172655924828915074787999165746627291727016499307448161430053162615737372764011634900578888749647951261611649131936385216206297127080922143037645487482613223456213441240112883735468688024619288771937364323677360729691921590362720888191445189220778247813520963928167067996778006047453879463911397414720449336490294129368258637321889506380748936321502329018884265192202623725984215643974585839845139943942391116905599940823742829479363990240107251611638593885459496275504555068012144692862490206157405886962164904222645092851177667556293831231904622575529653497803784124694507284869445942764431875023999516722833854746087953727329026434962178458907439378325441762541682266049683813002019522670082526885482900927947183301982851142378938335175030243008796370506439986236924833164857200509188614747553654887415200398356260670545365047570028482002804980447311632345784875562045864707027140800884984532580397230114645874047018359362670929014082451219688863585376101369351840693982494411820414568882032774800203371217617883969916012361368679067094562091271604650270643851351825986195569260527047390266154894760768724750291126712007233855260812298033857742985676230153223770975900998128574694944621691882631645551632191980107448637455283735198131895168508701831300891842084482530431198542543216634792580477704574694988269592953850008170384605774763678927551426114384259418225304509387555396781425606727633515671957725758987609570074430375425617188959935570285523075099995837545850567119037419097633227799436451335905107696184655689340292392485098366836904836708260185645180127316017635607996324161485674221505497695288837365110741204088328746517418580942512947234041866378507226047527461991593805552132738374773201139519700160736794440662453416414812621865990882803223044771510606424192307048795787096309268459178245937994954373051697836178840240058337472337871996687902455580868211681807652334536039105195731259426926260960610294112034424637433752436134719413362611080406495039085315477304021931634400238597867445915921148134413774071456995903418457426071420043016877115956769822968447049006103509063498195229378218208206372574913087663770550152353384380507324059313994470824294787160122329451343456005452703293117931243095202453627434751089891002216325218331505441201728275673750425060434337607444029362010594648801397106451173460413241886301588093675313312398191813547914397625267665005486374496349991226013786705894567035317507281159456457350507088217085722466373636322241982907642360658461945773284772700929335989128683731403529405403925263384832453156104913318182193204385542820775135834643034721241531522576091333364445504210797906303629905629400553842863467575594034975173878065100731776298042340787332643267699364142037622442216187680988549562854748924483279532944412934502291401510780224020067342174679832992899666172286310850835108800175268832713775321030500175694453242612352442444579931006334958878758298511250284978475781310489622875703207432113480660167902379445434169345915294928287033092472671578799332063185633791160830400587803372112580763974311150273334938820826331276747873152239073600644299026199214106811429840079860387832181960308119303773669695643015527869732752361095461549357424249225799471387286124490076821083953217644783611203063777743102776648563025889092658785281136140912221366879554819663551553339159677551037768539364081168771323675486420209698983543011256350011336299187137546322691477133092057945721246414285601973063097420260459940955202710248053595010216717338358704399701908396365181274612022096892207383199404024377960572067576551393948389688635182352389507917711800483897280257107343754451651394966702676791293773633696084239653433674418644521295532121429869619043150739424472470087846148768475573828444791662659074367365280531161062834708544993719518943110756010327649766093042133713769572595720800931314604808748357925731334961196438791326043210972501435827590006122253191330134974647113964723931102208835080300287315336482188238915430216798093618941592440269043195463197202464151799321051157643595235552431940695985452948286887213920148038746677255880312004360799475218154644193921974531157524478988238085361420438845514896951080887775525122504353586844118587184703411241261211444768659700450910737346402610626484920193261046987610198134515161701692402952765029977303704581128290584769016688464802920915951404939586841001663595332544301568000273860732069484651000207877465380422839563281697746825292373581874593732464877692846102830737792700330864581296925079291429574814040328518368230523833501604956906385747006312790152796733339156144704200907733001733911679002072906145030795596893680835809628085510827828784838984135331237699941031273375568147645723016143799645456462829869257382397276714082675559018848182744240624585264878875942095931510461039567151098980918029141722242177699132956013237490709857900922071430176906418423419047208951165394995117971346117095177933514296967520397094515593344525518520689121771485971770446986011892585447614623939887339689089988807053473231315156071037267609021358437355942382759344528461641580217284702831964729749564592655621802204491929844056362088168856639428101316442252696688874455171394679550750309148648173493016942901473997273919180735805435858775991995053408077160040980940166456358403869951883835083643542182382625851023536096078857647570490315710524636644519762494274651448855436471603755525106924669999367138960461964796236027224782098972545258752760270630074624879286903650079947662538304510425761395628486350388724722649287516992229738258039687228346206978259661775058400464831412507726653949488538216177507240928043878313203535478114588934288507332998652562649673530139941455891427869522808359369284285166964794651531870786080454525616075474341250787563928331891690305842538996561371049730227301785881890922887086744204368172940781425227275801190173775044332852540950601494724943952511433909164392191773420109224941026808468207080268673745542731945672516264022142099367418286122961796002949189775364920451840504505600119416755266363453051812310568202329576496732876230822552935283300626532242489098147265373586387370479685351388448499113090548716521043467562272872133166981584240144702348427119981887182383846841413623622658580750885951691201410515202163633609665651412419112006623859553919197292194477420524635869475595861153090475167060360381784542686490845340186430160006305196087888067556856631322799459206073466939597951784684238241086152181019813382123511223248810057091263673996425858340667063975928453510243773282802764468013329093927882299912378012984487408747387809846965205948518947830769433227924719736772929396663372327121327944391166227143785964072575147859267002555386051161359784656532700378811653957633183402028319209294275592299921389724410526820739302085744942465109331867070738744707943865205122954905866135809581824314221255846386962804339556675185728299297234471937975203130966319885213419026351188777480271826571182011872597358237410365619267642260009461990706087851613329762281465505500285596982242617622816434144681537346296600898902558412816666287659620641193932653138826481081566502899557912077493205084595174399432828839378475879053156186395430208914042989164450028110116801161465153966565181640826318168209607300375308925941205105706505695734144147654207168949611247171471660350938414557906795635729327255994352833071436212540379052642594968819733372437008422762700973229878588831972213201057018206135010521520595908913049930305969088361104845816835002227440224749423311735897135086974315999301639998584748414328728555195690546372640085991454130302457546831012445727650157987225282251849455733003688143263962188668688601888040239113956320804100170265710988462856226507931103079887408670066836666924821003336715961308822741704038654355052094785547959074547894312344755016272820928318446420617394610399056110599715440256013371032881169803971961254491892941521930260108376345522324929333697814988673481127823328245026500503147830416947152114407929166388093494021261494553856498264277224403187163435343871888023552907454906441983068875319373523373089468659457191163155652010442516449145084711048279224136984954218528074426661293259177131364027698349521124634710325196797236167957158841167655369933868906767745230015022656640843114213080176036469867476715740462360985177387674771176598021932507237090770009272760335046258563190481402271440271785542497001182499236271946034811368453143465441547863355131886236687346342499929010262423314814692990757439282001713790974416474057078808910243146173165706729161940941326393867565221606716360733387955654186170032210522718104227468505153885213865853870484769482427824188199653037144078871182917073673046436676799604189962815447486208878063537758986705898094144992210259306671523738673829576856647617605671874723869271941818508358837106628226135759546276127638117456473195621755460082281779763889425472583900036926937005122375121042623481266027503044987369174578673616727355601694840768388357356522598985038850391312263688079495499632893895882289818641689125544038229127717197599403848152959512863378769562334844200903749558614611185207590769833586186848487804408187337189307317817889932720507160743995197733563817709907716394020696611196466613526598699243594801376716402315888830507508001990892323070971370034207212416281380397309097733805752094517747739369484853723983732717706733070731462841837141948626734127629290919278663825768193196083705419850422939841318680289477769130655406130570795148574661135314108359291336373308431271190660909785349138491572410122633877626616332764095953946504512208038937877476653440919596057047842462340948295393598978972734567848395605081594718732370882009174876645739953152083257582117502288831558205456926695610010805524617684015928624711387074699273079569985351720088180623975466039468920583409898933219420542530001169231118617149371531555305871389605230346898904070235869902071320861531471283132861727759002249372582711892321471025899685917291493037605002676846368894519978490815298811851498903749529183336514863958373415407396090067898271233042013118996833079074608086066105339764760686896795066700952717902108316061207723919647175587665439406744268626752178301954260088595113803046244818101098858826691945531446908212071950639858914200947348351090578398402620498976696092105244314209720385087984677958101318349083146041810316431530643606441408384529858119946950109777685408453091175346251654571451906160907874368850154711546377505104871818867324657090739755515123573645794851770722706488308171687144358997465475746982381514706784346202053254328726465040572512456044334050580913050543933038982771174821017475455083745043125896035129183553094289610073475351971734873682396694980037530116665882564109302996926552060729931420923706549592301219060611029585201931372388479192461205615903675149122734530190976391148739154096563608440805043835446487549721964074771146857688343880118443020697711613500746151460374908085813736184566119080541116438602004882729485205948282468231781711289752233323389604879048051642204916740105266821706795564657200366035721978180369220636379524282371779233636966886160195253297286801063095579595317473777112325683302185408344034084002751263194782809550033396851310716556485628841483223417566204576955360753982627212165254785269883659593318070517795252856602474026138969282496641555621143636169708939638850944001437589399539099158322492242029380417159955354616715342268343097310970394053514308977321845330042096735525326892794137503980897921418789684059108023001888532203166794482892850491554962532770648426759597919256011550723218957581328579401038432408647667181353617739563238239615633068540611702732427748295534311427901134571132838564128512585084075252209610983931451117649953574900431051375848753221602413593711781631333641703179554169159687392239422453646034216773770688852626048611672900041219115374246222184486027634696014776148573358429691981670331322887262190895771525944437216955697574080216388688017013509321283932855631706323395736486404297236551309417395755087951147922292680271054815203831864230460785323352479075770624000500431919711672971521762919442875942748299523792639506164623472526955872395168572941795005580664142451021882091604068367872458531601599960030722874437850904393440831329502917785964722705279412246977823681974497987095821958174394472411793732442006923664500189519309671403210316405271528193821188742974545396886993048519160603044100409228869516302977547209375151268634489051452205346173287677583265763727941575487428127629617815142238878073364459913607752445015733983975415058804922056710045775588892443242371468984463079796224328333803349390591053857437514962928045968427816782104787804140946335086767747027009422156212513297401139794383471012316048949299152977488128329377911251060958879302084992570437468638546910358566255786047573277960646379362321307725167362522482314609375189738731603465270803837465788367484548332886480442785556968101641898583997351158545341192397417934623854430723955297363810346515714017750328389018667491235244210649015656014174805979394114913080660697433548952078274431336678519925393637667500641750978050996518043533249104157535558898013061882833469737037803788810004169575911084462431330347797127733581615071207061786631288716969740681350036441104667227026341249746796690917326243445633862367815685722085100204894728124375143348052956791730456052451157842162851063577521884059843933898849496471455809117315004372430267051536050366355026427326628919635898413575206517180508620797597038919755864166138980747568030199672408653573549634439261155428655912635283021752174615072878495380341742186668374819293845388062622278434249126039091829732832555429419558254366389959402015687767169135745347342107331278336502297320097671885226227128790075838625952808661111980829268461133965467471402123214731150169173731261487388038254673581396845701219439887946145073002152024128894042725570686849582611705478353833523271437515405432761085017919240587707740332281291888981693935602376876422670343964036288550105836526100695445893509256425055339821003596778733437677467505673750160619748313257980974267939919864822748846413521286180189329386912224810740501535963364907572900593681617310089937886912828092703923945821296628273956912876843695964366540880190993940104672058031532103324271317745191718075331452678714322869771762455779406884657227914118347101745577791114929761039492512371677046307178133759703939660321121329700090461271184674183353108470475829634328033345395989079410751461682916777856906726306013397392568613126856658073252488237852599299340230604245996034644581563415259041631539614601665219123646100810995703673135587598706541980086426412187315978844832673841400373486677956205615467652608568856553627780405813311384784202442964609739730269880428658169465581687337426344249078093145640122280303545514210633626872120597267593053568965386769619509042951772045571293276272654739636816708728518956402597811640166501614075654928281419924360316335544415257096639546769276752871550950909189893992416152119698940891273727435649479145035852586313943301172716203367797658100060693634098778055270002830451859621835482193774411724604272948223932503718899783427946494884015990448837171092005006159951242368915616581022207243520658156364682667451364327867523458141847656452171811108168039175140071621106466946312561022379960035088723091404178752918068434535745048995692539544888865677046841507181292291506942220492143054638497629440178286340434524239508853481003592291985171569135669824773391155830045871743912641686244649377280234943710391511469069881849629750859415989863405431257592790886350067788694976712460658722286646707595670699689887636291513925744863343962437411321616560896586520418067530842172853343219516586721502063850732860528033733519935866624119495486293466041040095611401158110540357818241942734443110781546067901310570938822321007880425672528417768289408718563892218557864743872312586293766075902017441274494663013149866243407366364683757119801852035145073945759151811202812243521097753611561172712294390359683707321720421826332911365990533895601027518744308108753587278130878093659011792335865128417303973138013466876114806947706382366562463690991321449649096923211676989049224350327693944378863686891646184573032354013599949584031701935606016943312132155078858493598585587967708043192098487681227781836017336742785303761877374244487526458477432867278700074071423051726077265501126442181414514776364176965285175656534402560330672411937883445275896308925444480515789709301373195633681932545532035641983584821347924734456603155645748959628875207287176088310033499585936509397899768723773999344446207678852901364132568905455123664852800960025590939447590410733686188593005476871521477661053532675578139100351325653832086751875939044605269003887191940135778331878011658750633365104248253236589059963676319151926159978776877053426520293145599795231912132352166962373200514933450164067495757627510011747591263646864505638301092995063863546055617250465148797444398939001822819987389579465943838074776754630804334615939353162872125607761055031591118701225394413573499108442027908675687533244056149471333181850849321086540579597258777231641951282262462050198105058553671495100060693354942950478432796355959164068139177567580750739946571556658474467000444236924839747434647883281262804088720527394756876849263301811915585882800869210388200229850182984547516914630696654354639166262045516915462791665052469071511160518264343568915211536531553192025808734397360688579315454758560823092617254320707401051084157207732305168593028739203609352391078686503830400010726926066033299600166780576110288193464470413068124026417026974976922341861319568524801445860262240993355809125903758972406417757643582345240915809249023768137326176251284008133921759516641136905293476445999719324367124491624492795642308689376109023616545627474152017111967069502887325897129735248997504921977069627722452220785653820136871368794186490618736462706048103364903078037067483465793110391665807289453338609377727481550749614127760012397238594931991599155491712304952569650103056379102973149640913251165228968394314637841935351206380393469431152944647243334020682828456680535493311993455584942426996409223433978959981440114550099795467906591844796836491993630249940682828369381924954049115873547816534918277648108950207643911147303891858346593007701056732519449328861227117189082422603344775248165108826698353939492230194995037965380910241677843958361147352694845626544409192245903189436972671883374657693612886490312445115793834478353928703586386332878083665538019942599789564136492508148649126969392099842505371845687127066082776759790946725953849540562429915431668379934495553370523527519522789162702781100136512101584739169118925057491003435230223137468379888776996582290381143956631233840342729541906282465814278792545643686185140906155659823398811157222745794406564038051567392319147723724865923809885198400982654439006607324806430225589861939033003590824834204229453678131624983233631059022447364223056355223862886339131014184695424021972298463921743552150894986798981758534870444593014850686293892460673740071588333302346995758309456090504104582846859886001404834321253600725184361106375882095969005536715782527159251135835518945820457804512531649110049152999259240634496819035273098578954901002908837273107042659489369981036354454540084855280542252986746067444667776095047542964231408574301150198484191479360067193018501390601142826716606575020583572108328724959384384169442232440212893397716960902183675039125160849556559298062965294441966150649973863472632090390049221212888278017046155967407284139522450381225414346009377625217482283228341579202998688784530294383354572127350924082372394571473261912004552086766230915044278767798144737934656571400080081873327412964855070843271782748597320040891146397922008919730285619490521709587224613283670128653862416659412287209807181086246118193276679152827272723843753444543345004879014977361338122415098377680333922797209635624401526013580734776492323917112252820285837916620870068094767065364289196365576525145479235053746990417446596600376414521529961589974365431441775263143035728456772525759372503614921005234120431980322512326617574580207278201005059005566296809508003534689609427329087905682074424110258125984156771425533356431752842702257504566488170547988355000219175234966899316328498337629012802845507469621886830718083899250867645945892046787910218924753555939030680313025918645837201857869842292190820940437449478234362351512704924015650986838831623361942104253717308934849337411456379620884762469837375869220068523971368003566393200828806117685828508416952288818105642237418896557737937878724120179716567196119679557646245302636551535938316877372708715974962279170063970784063768739649821947654078864689236576152768771105997768433539934356206795797076652826909780702541956307994867790148355499234554419498928496182151539715484899318690395352785544822068728307873360540667298423467197400973381906165610483176634533367158537934772663293643013798640686847410705975046303676815226622478919402024252620328081227544153052676825668420322261633934528424788406600341095107698379432352170490094912867609753415468604191018759029919166985983373370741263474187164896436837961207464882477451166746988260385079703736707451463230230480469037471085950030336658566965692768528595164078617197212621437885292390336146250296869289808067287317946591810283975455517961931246175568317065450190994847200820921085185091843020597097252804207519756226009309979003379872235679826322840054822169398449844646804111530647267181644008042333234894096980135078271109209817199558191068244323070941778277587021863136749147591860705086535624585661601618070185334115487119025810583402642956677690328989293900375886936684063063001074767021911696474196326163964700755612047094479255072827066977262498135558817609315980666188073351195019379590192383423697478966766766906819907846180137107147687925331884872685022172610826625639734965766129927179784911844276417684193223316776593228789648273470450178036999109023533395960527819814757248423175570623749923283769525033302460856638212260806330050580051252921104422856261667033562703333102234798110548529677044710175388686664786154584949194846997513746521944389024936612398527325125907394837766366236023607832651235979774986521428681288450582024269757023244195081264039166423493448259310006273777923777622108119037194861458025953436939277141809198669592511588338105934591458717568020891057498663342707154887839630962616127047880141027569125394020151018936985252547845308888601977043718228414115777832038656767847215301769207988140755069016942204237792609101326944046931772833952053305557028763894164408244621106955749504228770063410154682644796064656762801183030991275386389261323343663161178225013443613065794843080762022045179094767362455332923686677744117979238822665235990924366709853720066584428325813448853368946626386684559964629230571408801139664813552411986092462525842074181931591975390454533450467617114829292185607803288951687149974462925329082852788491562373786163769385654064192561617350937169336314791982028952337620586524826502760659395256222736779374759425002188541606439156879424557702137415547742489302932218101160193103964046770488367838266510792649141540898104353876644386179269926735205608971709616978089415586622254418028358682450669636734461008804645067922842898077030470134034398027690337471663366103894452509468446406481284887708282096401303108972196811715551578452957262195117425444834635183748554258678699082805694295691292808272082221009919890387319919675209518722933491961628484953668258737857412622133635554299923851521358068408883259785466195016232271436259877787401661483368474468648413583498047821328432852783480977538021987002243752206181295144537402624893005366849355218509851016982882517014482058572824684086136694519266509358506427956097201396922684026027261826142830303285387107041091307929186442480547406685962869349808268579341497385390710548205569059484599579633407502240180324851766210858500012893804969447551161776686275928563796684660667403275636898615489310136892278724579956797465856283873425326754906798841979539331361353551085583122590341954510826095646413191744034782073407591787684794345984827800710088860793413232808106718931610775014186291417681408903043817756720364293030034062446752701750028193523746842456843110098947405249960390560479924672052686162504180181172867717851142125085544218401870622322367683433517966461496970043057481104581282185217540694121838772940327254944800322812618387450746535730097840140900294323840994248032961457414438533664741603633345026829256396928766861242434332962801563780744790963948105523725835155333062848502811396291984778543131604547381680971892041716312989076028617175857480605054592042679197592565354805044620133710570212321620476990889610981060221946953614494547130664415366847345004443497263162821480365280377964501592720594212392832885464416036049426469149544878464145063714428040008096581858710561080262155581829403405875679321589057570853374080400988924356512413777987377685312364721488543701009796858367383854991386082486845869183233995990440119199480360388685153321277292911758127506924354460759121181234664995474173953073630937009095760644585525324109454238501775042444911795775455681379406681035965493138715858336465584395661857342556184089290397821671889203389243005575549760411795083439406131138673106852663657595225319195860201794565233876017644375040011274976824132913280820699216799676817266451947264201611499591733473706794109926147394449852398046033303106310085600468374230957113831576083743947019552069483205123688995800481227291854610772041530592379564833796633585104870564531327236340555918923204152821219248606960440818951829684950353797260153051350723444174030184711104930368996666640345334054180682658390792014487692077568568069625125715521703170207953411452822754969135916318870182471476807908602603051011222831162756846554036412396880825778638095752519739809030911429456924042048186047878487754092984908929180816856320145280743604903393376036545286871540338637986080378743649932560994030360760311764388979602856679204237506000247119552448943475744242159952212815838128317730221666869228273447395617145350187502915617145016768854112459038272693671200005670078360685691967493559462897433243841512302358686746854706571982561421765979106025795138614467131229818546118213721902260637609014923515625100607046388305992404863783984801338074138558878546792736871069877555602383669955906146416379049564040083518380181608892079314214847382588648526105691629764295993042450350764041706240783072818648322951297677836294676215983671463610710141084923270937860576607405343084131406516641489310572730348996917214394142168289704976567569730236535113253362709376846575346621661987901773659503467112256261313444674453741679251435474681013077596707341720707095043938737722801042081435531069533533568315070479429053729488391589658822497414966430462320810688887146198751130985739757643650652850037791868682989833649086325948891325250748138401169881880991331201966336025552452168844351467087513205984611289266453896677348106709759188656244577744756477736734704534395740724331365170329801660468803992070544133031603386174023645523718172527193590218122808615484113894967008565139774143748999868412117000510608804123716745151922369276259440993390859986831519448412821440998047202616322362158601708839728036667764373021615766575001082187176041158812574578479445106374398237291868261078392199854111481047621567566673826793861616763982748265817542037733131229642038420377054180756020836998865750465258501846307686547537182659705510503163324699193421595958498470818940281829654181054764488422780437328382055633235126998790979847805813457341009103183715019335236123040315375453092909088462113555391182794123287092738775517423861885100688179214982529595626413558566946153381512684054711755167814102790042902935239359626448598665278544822410023560396785168813242989603047712844477001168646180807864981247268746477080171711415564095584188985536001612740349291334360600300974498675389919426199802925465524296814185025893415091953206448132819515060647506812281356456467332553197917913068818763275717428051159141466550208374543124768369126833360837693711431063234930579128529449417839190772660298305585689882579281239525944056248701904171957918776403118588225384466217443513566754868479071948964329721094534639982147855275229951282980507560778008614864119801068331106568332262144826882004759641547444495610114789939089976758370532244814440939819295163542015791534081211994354453123584988262349244875944821040696273950593193731213614308577969689098236999412162442417821311116835666685414534239506583327923886877437511444570608876847634770931443851012912962300010674441148037615174639724144004300151805387974730124083956209106066570151031234412761529133168139733386907152962186829633750376983958914951391340410898163166153464039717924809177432079852447726246026932193048539935537587133609577883154507004672063296103639916285288791447613192241851804400795381702831876684420527974031521896335602090044335422908599603690045379396541969704691439400501090864223366060420101426447365243273455224464750063017762751985362141687122045086478790514598951053954461249964181742788835797971643560900240346783973982528877968433436022959376002378022285943472658789504488609268385437816414216143315304564606057445145432188593350475931640198533543788752334274814473299424808136192110906473712448685857770522382151124175541927603846807049513364979762134571578429035545157291567310262007603099243423751032121176205495728197546471567555733965497862435175598272858009430721070416010652185022050446805370136187231027651847047766008338133997322650721238496266271259227145659065424139241345751570340907703516787881780338207431208404369751672360935853350064624043982053023926227898217160452941804513522255757590156021048290381734015802717711815635751852114530651678607823869467904517451302131919737027945276872045602467368177185762513107351495768770337378543939518154076914854857622089564457591050443952992578728087190266177491617182498967656173904496251276532599825184550953298294091045105388551909882226772078444505144315906279748198006229341505553960806293328086974294634503565576559849645725254089782454230780839023731975885152938081618655274255452578496125389284385855311313127652898399178592454210209662465185042730420815339440187724283337094011292925495856532066341207488603301902615062867624946147995781283805228186895192370303674431783154376442324995055172955014890938347961018204191736332470429817791149162562235537327708077235689942799406153312299692906932913121211706672100690165208913070259313319287949179386719657271029917349040513684222771809951346698571301618358112054645233957720224158269442770275344761246760227106266102755159848197888672784641648477599465548181876936673167266216399077026295133660418972653997626369858115195337224240855407601867443881912611671711458411416659206149388528467295910458449732437409744594574479356756119565148646034770752325968631644856380523058149040866803686390837886214236316511775584242433786342236402974670324450363696385287948168936368453873232214809040622677195798000531656980720677428189950315486316074928370063170206916372898309741912125979433180335992078112508964565599505992418227722148465735503189013105405649764820986439558075173934996734923613858456482394444697190966179276404115646551936870733855309644979609697295117306882968814943208112802070513242150775726862308487551928167341212995260892747626404955189321723585961675111083437111426967294922136721910657010619890654698228342825438712487354566722246963126869045426859298610258659094718085942904097378254038715480745227576972566397682233539041648225883342595545612483030819693635429950395230466910097514037139989187770839818784738623592702470951580062406723174887667068761000370151695241320120901673195926970176161398052460363932219916980011679255762374395454424126025397731723179916700573286949519270827280055179560493800322284488959724485966835598140293150404628506546799808298656984355158519842694563223697925156077296788140499444927756851956561624433399414677316084132678450078434240209922908973208752794368453277735316367567586661112176442493326216985141391257008631111370222383909618393973738960638659283793107559917191000031077951407055106117285524983665167674699571656054812525818305453465468526926726962765989253108296470101829535326181306725289778646862146150992082506499786266847314188646664253603163973895867769842189486940712036719578771844777677544794446785014713551811111070844251510816392043960739393300774798955017797971972642332684910947112398931000727966208501450702545245474376891395216615856525378883683294776101196533977053885943496909343458901574482704851719959239599668458551563578238718390085185664643742502835061578862408768972484015961202415621004992882789901121857319065910627640563278996175412251783699489848959486890252656757047425641729240159292752749730744577323925014844806480272713995156899887329325742905353181222715682234449527845485226407676337972210244029364246292750465127380024328291779033918871693479275950465586736577759729529769246848803326037326645289159642492094074745281842069683667387754623947827692468073671928661206105124931688556581841950104774942635586342386869555175459623235611104144965084704734138625313558909836432558735319839916744400490322920111781341607872373738454789080885781895069000931339848708266498203479257115812705345476990526301024720414438659750874766202553968898611274145617945792523618320100552012074948336207204845531208206606180848082386986561877219821102147453577402593784788472861155162890663673934979118577600540544422725470999639664847188812081276406821165171134520857713870448445607988542960351151129958504233367875517849188561030823661442965654291356432543558331379514577791536076096662220895646270226815781842160210536451757888498272788671711453655584094374618522493505276161860885058791117957169690377413432992005097347149312423798766073617286349868789632130015033533015501368282837036613618460937912143810179359391738313559794148768141120009875768504245302369491850860652925646942680540011256549162435443195821333849890186790744434121048049950472528878369746884334107181549022221732435063761677209113033832261178097589890437623913382994760625862472456604919631562448240384207215374290136794406160198517395112825721068926455210528972807538814475257167837336965770538596463580664713658371825588088392599445913021626507217886988655617353265502222114245909462894021176134832298371026088266319828715991471178661970858082679998807945549284518250464110861669000068533074119425016251434248915996543262647120612661582343865257217139479814779279733924515257334163887720857933844510286607329625079957537196468731353296688010724614979296537662402305723359413576419184057524879439968153122887712187793766244641843608645670376502913146766628145604758514889132094717900189259793134679972793686308027617500164754926834934833219074134535587683475917058067610903658084886075794875426998311314134410807161523797051603145704191005973481526677834077665389274996581815618837116436480154022532211655898849680154991777062328272916777178594595486927102108208069213841916158320988110808550136648723918773261845615190083242601543280384544707289661403934500712628301123655920621535819247681885861694690040227115217880741855510940075584827797147540629916427951294753702371948249915013016984009975271020461648028201986333308764382640156999819039395245346718536441349371044435006873005397745207008789527134355745810222219960710248206150785968540400104561848602717435051322714779618474420853206657228192173564195580686201019175697706140784573480598552528727283246599915027381648043208316099202891147780870816429784303205032343936318483706042516332042794668111115356502444481652195845963784686645503882090239055149406981444626713022938207459093047773906219429984278825742811364774567085156175740048834128803955089898667957910974078841516841861368096863946881296985364432773029602912618497177534246701609040618447160037695499153778647598456646797562180788741697783443761027687644141695307272511993337847463681732369119706437247457334996713243455867544353125738810946887690148458890956362683177000139933558458395283970691263550999954384778882605626870203561154160059090669898037042405978440103150171745051747583013679989486655066960363649546942743249893005443270033165224613827335647730158032077062764726602558794479135271434544560212959215214839437475305142622397485645566794327995423363696351645713789532606742356313500982641735855081442185956423874038410716869202592527683643727125349027329875814518145036924847806510541376253605825240339494103704221724675953514506157381106320069548217299863624240314299707646801659373993520035977739293676345657518188438644829730121480868056733338787901790219607767283105871585456919545592944714530494342052151709143750150231901766721941184264908055641008163600326018575200121585483434586738043828293110195641391000652793369477025386024613581584095848219375683458618275009141708654681546312193850013157574691364064635965047735973338398372955593287593028517786664225967514796664997521727652142297148422223030759126398366285282206103344252101774484138256316531191554468073059096471762722004847162968261963775167310218812580309692997821982825032332054287521875668024783272901098104046769097037917037900153325591308503574160602566350613099152137839748314806052693808134035647749901674842232859984540573519075015883614066292014358571890359177365582918994298864810082293118843101324106217740253689862535315476196204954369852180183860144812875073745439282056573380750667371023969773760036538461574255508901550669720227944738061800081059748340611919578648844879388235414479245954677979887689161476435196932549104147378470700628722379664815981302827987886287250469311557441110941921294128236164976872235624929657379994599063930276316010925772696843500368890248004916252173516336948952928381074473700323582776806129926573924739159512622085771596914787283064699238860421999799819230152169157401118413628508392167004347009738835059769847228092375131452272825439712109543872801432709499743091096791167799912527344381630244368192560331018755974590967373885146553719665701175329243538621068225758343844380136719128070652801656476933130425957650219193989362433107251628300154078753178015559678529545505192100739241517635608871775945678816913194068225064673186789786918214663916509352468698978831142181777036974471972862088296560444282419333237342378840477656256227489679507449593740372797434445547286561463079959226260004480236507523623478833461439328674960623518294613958137157251383451926173259445542339226305215386936424743521833349413603033065042622074937419820057614566376614383456097982466206297664637011806264243934837240656492467626111602878446579461593756560002685866034188536327385655317661631661643151934683965319075375018033079162412461269130137419713987116625192618885556432814472324375460636887930631050333221843338430419279543474268625838438835558773471093462836180182604460596016989890951762859443414422655194104313608020753527725312469966791237716514488152486621555222222439379065851446548093989689981186644847972923226911827829238768167238761015122511364605049723105212069988471424433052733459759236296656001037615404119326774874917100059462044501466945496636705905074491431883388240005102003710034286862819804290624870905530446709117739922361230190891317874690910330117880547976799869305393557433779945244580527455574822612995122588624327066932211963601464817328346540219791605962716075693643505984346060347645816453580737836459457685919376848224837049972788637360130391389489326111901989790567057956040811636930853737644141326739103269043065640469920574658444237850428351993739481719304973846292366484701482159701235107223969258505765131226727280714927758739342660059256923378213393875811930075523671082869431883211516236910567685408872788700635398321286038693790732061846630798864016397542740833255712693326897353978990179600364537407974112396084261976055730390579845536718781441024019587857698598343651940662035524607304045015108137532121948723030041884389351099065894349660982740142564508992317353926143292588617010820547272469368078921760771149191490624388181192734753086946841836826963479868993580047990246924471308526032184016668355870346945999760245343321017215057322700531564588692891598955106694821905626169766625125763807459701495340360331970169786706564884268540541081349567608658690725312891307306468751470837256109308484088870314156435400471359440886455722109721016292480333582649523994422587929111965719135603113831347857447351567004001456356984838875803182038705290377817358283094375415430558254289532899905322669838945878995225877046359106968756505509075167096080182140683185143839558485107300000915313364886257380115069399468518360804266084633849168669841207344857327317689588492307054986196934780272995897889110488036053162881926711789034998978657742325351177443881210129132196473680145271713716841186178645458756270828173500382727794062125959456483054341414723066071104484852530877414274279440945691998774227974947083559381693676215360544433485181351576210605761233473089871063930755791924145789801791730917343235708432719755870466712688976808743206615302918998040650398691185955479074983877537602205584074957530109297559848736006386642893975067202600700422111278984557163053705667651376039807422054606535115383618692560344204381458215374288873460014217124799794296702381479733555968946513756578773820898175754022992102884637806556380765313581648358469566089392061326045871647160264349178973541163797215237967613594956724389745780099829455316205324501637075752971138234615777352395926212814596429177619446676569825149312325719053396069019655600781573039646174801413538751805827845628066338086507019179249067934695485277869707609605959460379162937704535457751927675019717653186944047041665641078890688658237075028032522542865365800231491967053509187268472925249872511169933197814634764057239525433732368153307075780656213618504149454465666552524414380343322100806895184701484749142632624463447957249215655034868263005932593733810930184572645501510055404425758621930057773405205763778297190251775225312834991773443116659853956974617494556036676715415450354480676274178525021502950715507538963259083947142984339204462229124852823359073549450886459536203606445035544096138463052215850310700638222066989710530652048556668137778028049627182458373122859036647664749649189236354110540816834346351192992497411439165526896432786914209988699558159260601446981599990592164802190265535466605637324877437699922993129240793289466194358856201209340425257695979283693145795563285818003832421978427432277266870287461333013144524849015901806517394792569864134540871617410338036277678679332252587961471243866254830685565823133819963653283270157632053187932626699756323910280774767513159580545253342802774669723802543226519521815002163427519178405139408241180050445584340620734061769077973505855724712513510305754374864114026768471144925982979511633429808566715124130355971533431080065594379225016472688224227139869048559984092261715146182434864977044782834054583167337865249905726806019625858434944877673667243506620419839208497490699285080077467499199364979702994779032119036406113429520848915023933494875551356934915208614840683459807346735003867602669118415656037923946302525233936786890055443119503117969327944000122502712018054485850822033325123077498168026114581186913504915469519955941965808353338907326287325165078434270401724668925155545758589429456978131474197693420925115163990228868814200055590590312909665824047590731998154054302572269249904402895977280218804016375627632023126288744793013549329293786484473703833703089870745813819422769622760276687448643573070016118933625913953952486259003197677978522150057112899414515625068479600831137299092983905736560542191860692237587448433927570517043885867844987208784060499155027767905251010125052353248089151631542028094774017307431544067856410828363268835935887262709989379220974171287127397715651754835073482805239578156501565758472361749926035943921304931689255810464363682722067796793046960089050246638412710049300611415015339709027974422668910587206556089362369214765771308323562154029664284449848029843821343339442329561623069497494646303202895999953279759295824951812138018315938198276048037636950845560001965769906989772651754712078763879821940025016093885575761972539114417127499910004992330750051047626672560510877155345357411673774862572571135116563749415787365032464725137065312008853923162417220957571402500554184178067716547155212397880994700631983537990056114445434340059871575287940372769583767556023882135583270026637162475381191682939183657409235206501730764397406996146193372603080648487895379956749580817549638248796653855634307417605533744864125132965768405816218158441376990064907730827636733917247643118199060730331376100217041895092818040592405213884525942551910234555608581576251859033357593045184941265446468281013568835554228160721302304592507357012936693896760307972667080048802171228542539693058969851548895216256191949867177515145113083263722929334782592312017506691676326487639511131282193016287021998350965899761059577073787107158297426181553429542210934350357483379223825271569362708448589384418294303858235275957496142114917069552833846418353707335083131632149361202740554412548921524906058348038624442150956392385031394852352318563735122975890480085185654561030413404062929281523240888619004203612428280587644615983241099107372138419195902800362257506037027231016987086460243032688648331731557416672730315831963877260307242079114724889667117319558806815441267838210826867968237458499052771989957443027363684359095874784922482119012292655907472558408050205024292050766709438406201267304700462832587546729640924526299695676170804496784733074238442936462936639010527037938094770649943366737675381014322882425678226628436777460220788871876057180341582749305271013923322344717771720029542641877283524297616188142760964948460896135049726171535466644251004371255483611098865963471675536363138318367192188805667338301953344976238588557350000884019601432214204106309328789434544383149825219884797508408790041243094182020919936110409517398122152488178289494902310661734268437208320662556393157022686336512951558709261700566763467982341493740307285082460388579270351504470184236416994670658013425240997725686311745495316490579279257940827065194999407208143305396901485338210079489349131735676783728190413799323790224749434308672381154814727290615163557662454409727720164023874920278398003050644337284894184393998731914351489850909211209757778623928034555321527566465064627206797767093122384029844241731998912118048482487056771421806824666923720761967648953290231808468813011699020705979026920987737315358287835505806763809128950985664594273934741183669834513684625452821565075659049529459689762526264544305808251197308041548402591375952031140310125086765519530978063018941652860914815121727076811248335294574757181610044402856730231941159149261601782132283683290513349250700713218104275545378930959589404901523083238177876673989376353097921479778843141699640183030027263533264028929262622146392436771295237303577894490696659317663684675368206589678695529877483208683203778267953601216618235679578467626436170327898367805285084071710857592344489929494472346549889243492369900746397919337220355986603993526683619699461516131506496606983691746186125945246937764403227559947623696828104899371505697213699555663883046841437593577233144491440247351643292680505790951778374516772017347816710986905055775515422367312704221951045334757340577039501896665111405329951152953026362073558420696337077248018087932358769054706862813068300770452040528098908746321701254276042719376414268576188815672182187995914778531582685202271584199577751079381097838296188442549423026533671390199901714058795007880294662797691851644920990115591708629560095774374559720698443074855391294468587276625658685914611098703550355149315829484343536395710351305638705041465780515149853070315897061541826130546278649763151697312408502877626427050425542943917463422305388090495347183032482960183463168380415067989019478716455998644133225810767262702237229033247400166172012668087408607208110525638715141074540755705476700905737065435178540734921811195243365582323102154527776819272360956054588263337007018079170604029398623334827455146770045202823611295871264660498483980361563423959243603013541179505080412164484188034739408403919115777781855591148408600924506513291968599708433149821477862972320076288208003007577690702428014132224047847288016492349568420182008654056376722393570843779244769742183770740714941423126671751975738812869809450935695421613134707557439270280913368987545149881646818235436896638520299567814470006747725182568640238047925241753539439162343289474136988217110806855259471192230539228607342218428289739275868437725229492347012106609996606656494307205512610655693230625235983798674594718476504877832863894725754676514422788166481302736122567550630700568075028221238788548439840934811972215419720752696142055324884230406410683338605634364824574160720607634036175322582710716063993874245646369523858610182840864061576012185559920477845025467720205645164662145695201315272761161848783246022734947681761419598131913628717539744606033924364278593961037667069665673521222812761889496268233183390173094565539130865921691294877058798303949651597749066004680451546658959174213045115119518130080040417470486860251835407588059556549422101082060549409521163734717658165827863686407464267777250992914022775392734379400536077379186340966502338697471444006124485505368629877663195057049891847566519942238452252622532137906346196712207833620466312210610520570801014738644250541737260470349683583215352975594102773651028784162617421652422562162289279191718483638524281953617707209827192804916702852820055440462722099104432384953396259931471594826643482830765414776397745641757806995109484232979670675611514802467320601608489853382392207276960665513852612521668095724468668804405500512688161535886364352010251218381506608639525129113579126752438615960079349752941233335715913072121933770326926286176615997482489046896074059597110869641720526906323787775923932624248378749334870239959673636891765945097836787872827045611577315704911695020687286946527448913862160904812336720426101549514545970806177803056125622830536494206564433380270719507436955957341240278760212898010979878229123743585878067502731006655187811405144591455510404971592742574991853515607385892741177075503447224249232769919715041970816947492156688245738017621686320976760890754663057541872904860349957379451131344868148848459207542221246882314278430176762892003757356630664154541913861903007204197550728379395581879924123137793005726790847491805969059113616602463325148888388105056684213494254653578035344581497053017946197781231964185405064034362997200165784032118741005939974134700211723083821230024903491625094096683304059419004507946604321551562244153743941592806192143167563540060861752647981446670388007018379292091176243057494791520368449656661412816528752175432348327087287320789367665180608407665251647073672317728685859758426304153159240503224713065451629449288900446622902473056242318223158319558633118205899710131533067216483237573132209439888819482806075032173433283210806467615324372628228547539492084555042426718354540240828846569899924920698168589324606579341907200816807150310859510510603482310622287672690265292284262891587632646583214837650899580294919327981778056066733789986431538206777488807429983723654197563690393300519854849311498976638107021293098716190976721834625347195090952010517425287361588841914921612349333177098255895635018384567961261112947772707568731216002320978184453705221578503697044515244737359796806897085526566607595313493720389406591510758698311859509056116387966397211635594722292861346618764765753626057043719519227473021205505571277962581917241793617136173858320763685471172296829748523696214468373259471743323773243751654571786451036902858551404371310221633334193067568906081075140991469092948856741821638101916282842377886490678491201412475665100525933964585844774856582172943970035694400309426949032911373290668781493920073028724663607665724084069196484207489218293473545976042339643823074546070005555576249019607361437387184967433409952327214581966909919932220381277103451100531073907709781975213444149369206596634938397816656484450743247572656330066563308534703548611672556835819379374136946845783853526510526452194919439568795544837022557334917783904172669982220542057528186162663758323396164463173807442620114610469487856379911362440118145325354401465132469924113231332120231670948855090423246185574173019652269049095488402186331197482496557791311478083796616485712517312337675644007208034109615602598173116871894837851645339922130375759155069442257359615489141228795106221614139246714927240750838770175612075612672526366462639717332187728471908097882757653813233643591936662370527195365748122925464970693959661916346323211632545359774576994413620809464426020463558314366316526033956475525985306537270549557938900529392830098754239687766250775086319401549290536692482430797710411368093595679813197823589130096884602983711275547115501161081648727231932270426759638797502354759201652518222410209021669358764793018849190906202445076818527647915520686061806189345402188515010281654711587268256790026861155068775103187684146185678963765138217035077732907804408082692076598017562426395313022422832727846440158713354225500800456801584487657889560670157285867316615803632962112369000757216652164595558905711606872725424979427050921692186190550537359456508768555141635397504003502681782402422211494391167590056735066415527117869750830071075043246125065578520825828470749918746105103117348198851835011985409407621600239626559904647095536865733975855135967655169231714056207207365532684871773386553164447644203552916965433802366437052204020102724786772487543704698724207339278955096332834912177162225850259436979611667086068430077538574571039173161955041510294679467850021181837156763030997036087962436278735668669766803112526775084461254285988579156953515436619681463367596008541728643082448299314875678087316431437864937386308203873522586635367140402321834700536398791910317421088674276973835850546607932725439393458146714681798996112742684511570666237493906220904913443074415078025657111034428658694760550497075936831687102863899421791586872163879909278016902205535698185832904431975547221710067106311656318607513597883336413502669593527476930473834481274952293115475277755421399375713116796457599652934087756788440292598896591993085127858357870824019074716740714504950045017916238274885283242789254747241297076673320746824460239405624404181132667698625961358981974750253175949852484578725340019703315814937185204142127186841096332532009284646078879081616651747613090167332349363482092597111489865058294622499112930063106568525018588722113198383630808668546398594489859437065343350557591931798642273609553006193012208123298801681585639955765702416656729436707637833533039801554425149061214620244640513179215401299829980398025182102464531698238446046429342205867323694119250597008601867803786220484622202903727737659143346422755301479868097475473258586962430728002609613964793498665687480669924532600401517299443658374636365775259122915669632405589132068476525469293907240374552688320194699865824524607115229067836801110075830768336906095894568413378483168748435023433233759541857305721537005303327880533495895923397930848100330799172872852961316680708386448690913269973179161078175823987938448066937416889822779331360058279891833742925450457454473083221006397650011726158039685642546844174207049654071192752134617271873460043314874177079894465381712837379035852061088867544179988793259545242015950890908349140161829129329430664228376721554295849537008798934310493632072801743228959658667726607140093661331669834096178426767428162892122293038458496644711027236725349510107061244410931222391831240025628854402649697013674221208828116888484466086823946921594169294571566769841185232209295088083439918609525933370592986209054010373651092841687175524585082576018728543457250583942669522371953325860297445454656476503221465054259901099416249269287165930017950231077575474180713167455562869164737313932927945537810031497434232043532607438595140254541577647874454278103060338432926520617528352956707386016720295119240722256483395582399917395986490281546342481811677463438366436160269834781539888383016224002380149778731882154876217084005407383068641783047028532442039953279105174695247312594790479137827399051562333429511174901262255444844836813482651236178307713019492680229255465460317520765657746464150169520635295581579461749246163420883018760718584918496622365489499572482196453213354022305867568397512617679863783427639946972239059340433493574968355523515028084181629597483342167780898963107272614449521029009760626906951236970803949611998535282966246243945561994639263605690069575933193007081972737513556175366565241195935690572593726876664747257802614291631119073269905268958951966454314092751787731907202706992014456282305506257723159871820572874543865188180114641282769591106505769553343979569457152399602756850903785885656748886935930129496329478421410173057743674966500381353132878336163571932559662547298775171658169613167435456892015837758118568838947340164361852452596019616388449872632003879058018725086786303528442075085012993561093764437261149768117959609235136275991267227674620724242670590575571185813447308176907518962539113233551383993163128311344112254476032283118697890020799505917338978387648829090096926464531919585321849667367637356273625325673989751023045484931076102182710911759160366184398728419294815920624379804049828211261910966381071756659574719444521354802593884614059677126186998846663265931675692865144361588418401256849496955226977533681536457715455230136439086096723557972665558333674110993262767298887141128047029132813015107100554825027666314791665662130539994766053613416968990329036090908594856480899807007376691337399884033372371423637009867898538423432858817643394643930342665587828769994906081431557590554827317473634587052041710247308858894332653874571640023317495073328348038467577926364895844768038622552632220382646900425241126040192856673742217574225199375866057934568492702419119520592099052686971870989502968841599022988444346402535945503141649558285580374448731860597790000315851367591582339392914132691386404148570389913846335338214346187717503444504334067461704736914276670259206058843105849995335386730257820587497051390907173278650790134167545637578800901566490889280488081497294660452797328062532200604184880334082359133652975126784880589974439184172981115463419219450015080791282698072318884272198331169689358660480872019196848018418240058679224271636048059577784536009617751473734470222250200434384843294244235637221237398713586155764262304917622981410453726578739715801014969171330966541268264374971842654986291514532833589755126939193851818946321411959914733127303771630525267334155785529969079432427528023943678516864833728888041436925224392881397310834698407063673105453236391229282106693007251625487495562151456598786593262896343321011162881194032016692427949801127441592524453422034048397923179852308944473751788444844284540622876810446471428351004749607828024067438746774819222103588777696916794189897649130533688167463999457769691816934670388936017233060851045292212842280351800990054637146554216622472837210807217428976527966221240387966599921474325029550203415394743542371128376777453949614537398073037326855594209291575762379692291430265170093998929372149820696246931898659633697989083930819906608486932508042102740611390185195122054441300266729832732768479368050695954180104624645277492597462542315476937662322725292147880529866866811044964671230126948103866885170521544808317396019983406771695235516477470770812186017692658020796237766689069490678012169916579423279787936645811083983958040835500945384881801910954349229909814593399135257984858672230201640551582413819079815718823901408275794286410797491788170837789388293491287737104279836722971749876664564835668995162661564332316253087381051797591175558838228650136517744431514154710906004815544861599731044961674044982103472011872732424963428641266232833763687905775999944417569177396257184368442170054727392109453660355365521713615551780743143811419526019647688415962257715705942056982208050219013277020462654020777088642787623830296466683424188985096412078515856932242521332691511846092418066544853713309291360644138440946388139329729866877429709912890765495493613298371469362611606725723574042098231422878005798643294692701947100035997757125280401745620660558241571500322768715934691476471941129071756883644964022634634428487834686230713252516894421689174810370927864422384205550625345901154153834973511237069460389338292215529188638840015949030338487560266170189964785320497706288427341304092624366147141703933626306252784421469626233692081631639977985805346815622633023462900712369590503026613031404624175956926845390014720556211587976182427911565661899642492982737277095741027361312078751053398998793762098674786870875503930515100524907849714999371460863800783435724990563669821505174068352494819446399367187554880789353231232466010215144119620691421193869953299392592904810466513712219923158613601289026772985616080085819363597178502596971057385732446073208445583868206245923102924129358114253930012091602480161927659282568026787507811835091030119324194711957931534161455625293542690417608007940008639677624850953238561350209812878750003492897227726340295399195008435258907019448610565899316454864600818373046145914914928376729642635441447114350216784523617798931440452865100069223496679096121302069996311686009297290603916508136038219174210728312937045449975128549341590068421645071257307617603139591875085213650674816788516770859182732218914368599185399735841898178461030693016925852865951787878773335532817524052858275366287589701088167380566779496377291711304081640670857320163112035111584752885991615873162146597952258070240283133780616937420649057693800864763396486866015872358596732697279781942307430807923149134195582445123612284763705783902417835127507408038431457799516483967098062767174259507496334093119611272166028281946771105616598055408587735832586331186744047363854124458907334916168474580446017767604203998934816197212587434894402893150214839454585633254229594836592507416745945281808145016030169650381808277830750928926166732600841236532922078313283751370656908903012949522229665991513439656396198150813749900446053956463333933303170420129706076484155737425115527483935567120878975853051580725343680535765896310309747520213753260629179097855415678744903321113915581701773696332888224458457803813018440468225500498769493484207896326572404429407689781740506125000076531932103392316107793975609657716962379293233468579101455917166310431236006827154243082835456785818511331392394478622107912022897370096553760121649886470676565524276630672713365398859293159387332580379216028083675872881910413364229668132780051935895274197121304109153863564648463118808843221190794046623259032636839495247597071635322738893819563383624069222225250696601397027165177409771793717780178897202265028648213759960886139276221231984321362079684762210930058706775200733289542335182888930958776418793998436198233395247679698634115956123726799138219307076957554480688787674500265329829314804857509831877036592976401644786803288563148118727451177740487693555383779186971004472894698043050365267699763605308703812222368507838510275354292666484873964265806481304718501933376000235883015685956118650149612359945064813491341123568887289614691789403919161078790045169097005633149776362226772784672186488471861670382579593413289451067110721323961138738836934982527309825641308323527822642148502256700000005052477349550364870563230230829675541770709929455462113275926257768950100777470842532256563667600161859068369606236675968059146135313653587599824590853454693373319822482807200714955040663413896325267147939423436549631632081101111820780801932964038592075096292978807859240841831337159944952097721831545498644498473895151339618149253667615087324219334490484679510516143445747765595663755766482083414729571256789698300526325773015185629214708914539421492971622163715500530171982037338697549343860257907396947020497686048438641019271032705278836257214897420798654195985845522218912538988697668727256297176924395610241282882665544266548864670759928519939611401631646461987499478133512765705188039886874530008838235715307646891446789059899258205463745472207074810088765782208956428941092043168336895018500439455497172779339250291381471300705770653027853719740917833894322066244667525964616557320089989326038720417134314511670841551984562118292052330803662718120842911597860615263632919522431951375287184735149281438535215215738309026632066847074235903605964791952978730777175767660679396233859324478006276212373379447151469915739427657463368142711685693605215254811886208969697147370845458110007744522568670256769101696121518524953862589323265741253103447137087168006337594329997938676409867049517938051685384274228323824951139192392160657305634362560791858915668533729920715574279658420631543758358876371950148087476325358902531716926379531584711367717788385119879621178603918356994875715528526123658421091504334357222776163499681592447117852192071843732220333225373004476587861523260423488911515001375158462953981674129125696692825466316055739474467142679645211143856014928255300834843953737523194296250735555639536197574679603418765432633346173640034411099774981553687479762105952033402669776448808620309580664768424428934015133617038192794312423273353834369962297973029200622260698188035933658000105002068159326281570455051021302255721299066685747731159720300095621851210964352936543532598298477483330291086980362772445679609907505324013538255882969008767994578019684570978375253055047468398644902119804352744670029678334193887253519893808229095921177666435769684205270116631203977081779991918951199869061333665307037275107706746115903100302712280391680384999905152239435821442081787822295113844490636266546153235469162025610286931157372938160107289078107062710103367001425449301691929018923861724301255933619755349322483047679977893235160186415799717438654848332512555276431248368663114231438494613833465295208514019503874162668625666287134988554281671367892921748155690603047900670797735957970474494040910881010820437918261844453991527571193689955526642191249878880172874551252290562368956048466468686033140266416811597180622915608594692027045069719761372756953482658095850203210034678195185213529268977884319811455661758136926836049716358615437712853384784099030235415470006241299925937097123634308210384473572317095842762511718656870484273149568497299018938787682861425577304987639693906212606938922849924006584337438803879944250757420725721200733806814786021193196949804800063630016706717826708961093873092575377597981084993937684220545743664995618444866003166492970164341512013016939189136504088626925988741509607635074892833121701840042835360833628877447055812964845338282025297165491739514955825360329568610345408263854500632287514277057807472142138301848607218399667774316739687302704169412532596724961577801157099298815609960811016678171021817321266158325809857264326023072526483613990755370216828670225355797910720315666877142543944322119305903829227866440481106739858726933278498731879176420995386592992051161644506686887995869246841889573829829632283911989783772470788167824620939964094798023331547272510956325944618830582856635447643659692686566967675665460274469837847889973193370515582839484223790192689493975092414332528992752186019578871885551830042873042246793946494233458575676846229629147054281502868682742258959310999842093076273233221065704801510343992513075357351171373599178330927200882878103073260373761586266658496716235842136467105811848171468311623420283269962517640990018811006245356755440085955824686869777248596140476145077562167253974605072807435936401051653352330675624336393923907612293047833987670702562974985483725470268949934721757382073883168592557964525091506542038636553674382745460656039483474722807846458465202620992128490372727304930279403568442842282520663871025320490320433135749761931609411872960352283460621735639640405884496523423887139157468203419668735535361052040473112107591130764693707422275726199429359633649628769663772752169650126930494516956110911198717770636060143543444689022803685448470865535449404567483333568665471649668674456337928457157266935174101799867733559311432327451163471408091440349669338678999195324535681392400935039487399687378051100089926720596979004826569825215658166330367250254632189595678719079547315839011585831244576645313284483613180940369422059545339785681073133209575772544738848418656315236157253068259029407938883264068078727995168982519966675409082559973449268238540589550499224628490746667071648267586803993698686607206137851012220491566308526579785470158423240678407121961114790980824882345294267499935453098448612685407931050517621888881657177441830403667576654603284311373227453384408659466859171315210383289736700592497004027901556757460742587922433448438388920823255229865831435323671870400753674624849704991412764196350148082624256865043364898756123482972858605267184248848187037384514084252698241034169795985340348910687921728839077786224331537274838268739893526348333643040096703346554888991032020233321950771568456394752756347903559240949374551295302209865156677460674555154797284630787911550092772002768024085762508460435203542413087750814375327813883485482065415785751632757015280888225452745884972515642879798474652369917404325087616377165004760129840592222624950531234697585533116803709850307239342842287752676542409586121614151382521808592421691110538402557282069654467842081530682385344668231742358077142652170324427818810512451073010229379896787964531105469375930721577397725628338993704392255802722086615683359631130095537577919219526372811114864310192684659707178266576885725463946857329569492616678329945741385589030501187650388489523624035306867206235726237888179611109720221309734302947317810167259536494983241688868487301953518248766213595272057929879315604613279710126651998146335539703845181073655069079372329039799396757784553261598302968451547397011067804484279737711651334868480438441745666183286427250033856665688349402178180420822724691076678342055770324749832808945052830293409154808313265667477896982426734973597294202375620505688501477535892281494775913494319079950886970660618001253427810080680876153389860350274987458618273604486148710895004131066474500126101853540091310211846231841757269263518753870864026776731733481660814707115023800308196615164241714527225744371302755261646124700847619218461538233408941912493537491253335864059490612891693959909216486822807390534053250981325218710574854660640065002120741501586953216588855054251558140473904302266708303002427729345303226802449581005150496165247155027142403928066512233676324863421154688404755822899779761322921564743195741664667906958693710974090912633438828974366890575504675399508598251454693053891401507212649204712787666359096341337659656731346261737868841988238992120920663292240848448878773001823543573682218074206330653807285665431443338483010696735169576064405291866657088259478314457327893340667573971894722805044685260893288867622005233610225051198129272785776473484694897762065347763917523322067106053263588569116616164212789527401815214093173434144010161110963900009989937748621243117032789747659516403665696992289056822767889576961748193584585366196651934252677157834018855154386700528097253836811835871839180316688756854760158525117151373835950701768160207652003408846579429298072430770451729610256400713440619389677813849064281626943247108216994584564980283407816793520640767157617303395971797153892022339078527752169282049916687366292749597798293643428618694817855316607341031605907642189849677676228230842458187719960988369726752690761522802168314403447183875537056680989146455303572380987915985403811752018886287021253096919451489822067480835406260369126704384044658036687419495221495063524872606038995118729546061026230822402524169873888701172251740406617019109805636391810567029788490785973207408888281110515096394540262707992449324757653956240875280705803287166046837498380079481710467097613430098841396562028772758840549349926753467672405822599177683244105749363343415936302263509702045642992778384149653003416585732501445703079983230790529521546627008575096755508705322690670701601391003556207804512034194512760203773074602669477895178951183068905321775016716809225862912151388591423046737790579328138573463520160868985102005771449048855139156864942537097551935441185286232659878073885911722614062402445424531115811913119120420769825199311068973117742105370241720531254077307517064378759487677684172061062881582293807686970780615589021759674102084859912487671680288200035059222555260547340016408936894516373887423806544255238105887379820877208344100390527027225673682129780890984616790324588699817375810574212980093243250023508373972590148490476349402383176987309810594328573567538305541940236332337994800749682319324334131461433807200236461413503905952158258618267870253234907894117526550083936937712091081774752645819300661205572082234322615896625099119213260647882834063535755360306363123970673384677867835277153292289051086588905568525312017134273972732809348180120652196529659657510521084313531441999278730006472411703578766174150140242602722711660213847735155889087069771147279286448302006171407642481732096051290461018932222681975882955684911602465344727116898167185273198238965748156730100819757269632972170645916538808499539965938963357978803744628304579037869088089682589133916081589303810036184644342078701047121423302147165971242779861832105909868885696594408677650147828954509814184303396351475540103968615432119260897412483791523308731748076915142602093000004137259597134075230232505745875266711780845287838511769296499004946788017832690697663427639083512021912892154927342273633456724318033300158443341476108875486618720790894916887727767260456076621365989744006364633158954815032153204247380996387105460382952092630909787805113981457513867293915538805358948751968959882659970527852145497590508486245694202435029938898396485374396687234260626880408546846968132508080092404937196668823550094646489841184553641245422945837109574973528395347040742683718610254224309973319488597581274301600028772990258564404272466095711399442329829663679386599452947183085696727636653616657108896284860928070641904845314455741232510703972958037213403501852099445645015261820240674655863168479061535135172891151974567667399748729336517178483026451096524568963781605327405486247140023862050317154959694850446695086484624570405890536511087138982441486793805719595214101246289477979977760212993649677102236833576704545390762019541454633310956055322935952211370222770055393719643642307887805162474672342395750786609190674351454233267079676893301417196424126315018838713111137453771646779243687954722934197293363742119598290368133307579020873118200323324659026965463409105533275245596065826388915337889424624180362775750391711268869017331752934953482801011267182818148148094645260372702989152494542842890844363688539191668698012502577727674101345472727178829576890113105530416215864851361426314903163968111070785694534613954243382023926099715342070187723542826494400221336891993278863773878736297743775399821250434262499936695284182274867017866791943600521801099600325492314313882296210658404407163077584480135857934231756281498380423207335553200387373689144550800987925826794093501155569214919710838104785937468871607883212400544734349532019784889780841064115810567499317457902745293650169104264424480564169809463410528164355469535174974020542098398444607866740861928707231514901429673475263632287661344631500359153279109309405778848910276778144807105321783327625128226055865906278173184225660300568557208817188228444459980595201927568752119741262115555988230423057370319379827474627349495602603408006447152374536579435601133466394095491483911778187996350120519054892794933425362827656259780421631080605483533942174344945445970757570224423603092536290233369865421681345613593981623827063766438546508111709481806421011244392516624753668648776298078639939677422626743878395486091116104252887325849164040222071345017709896541865877952068278159832028666966422702021466269379188810165888356394775402849734378422118814229725637670965076555416855511269267965031511643106954615946950559947289193578260271015811510540693198075672638754987141910271792161275763367436765629018991984624351764167876016740267855802853576254153739166526211338307422171963463187169836587321211874067033373044021817228404344630374243396249551313031769616478698129894711268251070138648646501756608427993675651086677048875678157617404781216048057165857199266210967982214063592513798445425331743953035689487959870417693236983479609639638392039353531569090990169151417185912493343231355426853907017090323963382182107093303549545132412083869673040429869452412445770453683009687275731595873615588978765463900873798328751454767114737187562170470169673148777242515460647788531459343828131288476667574784481368998227412494271031535392403869414312471367403441702505870001215656214538891622236541989156274712894815601502924391526142257666712939874837372194328860907268017041286043096911869660338990192794122449700666944257606216868733553762630344187204631974396226837892225911225022656701203677614973887109311598793970031883848506442941020479458022178260373915040608693882723343275087390154715214845796322115098110248107994734069621085069823768806054833634094138599777844664147770344171757780937463382097042877624983438389076677693027266147378296315706007074020012253687509695885668457680602609043176987069464961467111532090540853030682911677530389396808593892811575324910988176006887343383455523029408941160728214894735443695999540011841858321052029153987002996111960924408011032172100981474006680886268297534714279466124260114723466653339898539140830111857091988339018951585138587872733815081292658110535544772632304026903203147801169540420270594888381847091688882549664995650716228549837473547475423194981186017640994862328701621183651095395869534106777096468737984902296677425816707654880960033420235485594207004089170247419940125076575619232758659879002200061755950438908034094116971253828067779594830018322995460248111682338135344110271366482199107442099392204514514040188284266188259607875902027543192323028452067710342280106291671531469668988863827190153297000781296908487078001705149378437150326651394004174911980426386843990536712869031624733146344168513231790777260169595983030833136791904233876629053097032789785353740946860363003540713102310655320180552698749349642218671775683968975377283185741991653436311129826395404604515882145692875621225517937435301378257232418472854118442241009856409515041886535517613161266567759714649249457834837311633266408712850158483778744625383313387966915991125300669465622696479563703448580300414938218658922542111021305359117037330910771253233840188962124481295876650268888931209477028988546052925698489178011149503593827980871078000123986873225681828378019235417557543245537657808478131321413532916511607290265696503883303624504833253204657926819876322655230107481407064836565812337768032456637016779102083238060003616015831584013222589569837828215574543244493509731072703075416066934596284931343261776623139798185928877735560649282563825163045926734402780777299291743915197204233545213786634258711244274381580721355348684095556253394935591924091333165808454008900733984855958678615403478861027095156953219283602936969774607092354273187085586225200063639841720889495013647651760185066964855651910988720756728508062848442240763669839576782151139320851160475913343210100598221535292001470883667479039007088343872457767059219321760694446185703882567355133366596642594893275546422230040557897959298315379769951731569285860936261880009738539595317776117360462634390478606231074256324214820415674813622406115265201088051116086436536482627115703512487592408489233125968043174754143057458094222090013052690780207324211668357986140346609840441365647521466892625067313630090535483152136906070974345514237809849174790113301418671739021296252713932064386931853613461647473752251135892730730795470975961685017089954381309768587208829610683186057612629407497176284652249706230557067917790996538717553443324668090733967273340170088544923123796122150697882500465780774696201143502577485250500234689355173515881946844797547017092082974883979629103293972854383543873335340088598195446777339330180596612603113531472533783011447330910004912248459956499368759677964972396263536157857359712390981110029971594617147973170116597572592233628048148586267528907215686709773936665842256140494307624420371456595416252915531768008002030092872688704832796187740327088317629083990424155335676356884182343460701805854070012915756094252538083447436421260004549993033933094663614920769572752957710647571457772963283210873147155816037729608819070660851509389986224710317133958851655895178557494359129809563166012391292701605341786430187544906176503721730597399169610751763817713988478355830513303423304735641746485503657330180273889791187189000270879571900134885067916806051278158170388873812212981344644849167976218243795869286199016817552066189057885544061138357764509352777465773256378702348000871552331989101370741377306604626153700291364936344760292029540112635097332790197552698639644658939977217065704219077223848823198040255062430009528312500451351819995672557430281942682910462154432899944673645967918761080706202521909572501558936776947095655868552902322342128872343921453450912927309378685458417550216517909667183461419940222971694010015966630986612742911532697322569730498953020240397051656889651562154021459868655553789053288700645013735034318056715614072199537028977605420688221466526784576853066622867984289019842985676094249951528998685910241298391904653313408202351784581518876337401928329200527599326316628319140070029080171712685125082314424618714732180085690004497540486811428861262066929698880540341879799705386298786193623888095594103166786201078873554918020675478259164837025784676707138040179923081104526327565142573739746295175313288851282134033412678449702949924570282543939330723136691788338453722492970022935095471313120328440760389462698835386959483082600533267129097688051894919077050928095886054033597913171801155181608814333581381239281931420921610434554579759944811712946352820921021714042239741524923813792825896095754510583439390956476989435405319196844287420857574542950557300321672322409823585126465867117447111416187288902736511811521264693589622279069229944114882243086766422246900982000307394055428318371631893476160650573167425842930063514812278517103392882102529070927136201182948449783676241268993013326886802574497392031423093049603435277642818441946097841289117832282742436545070771827634453388635346432033882067133504262606881374521830011285785981156968071427297769174144970899624515075458448267165624068712931376966678399249358081786479781993649133582791328741436472441674096450063352178949248089974554207184428590473009811331401921463590370766631273061859966575934779405900026018552916717200181118304860323410692802410418892593592947669218750985412024044536862555086529285477904275554943313645773592287432132441751970422338741870919415616348199425516334096873490988595069240041950068603676842139434594511586539707041146707265298596823458484355544573015896550517897267782832093669003085911489459410316389898314065166592095537228808071627845527191983256545623352850953669155750971173945779990757192873157398686121845301476774275350481019528573123686580975971894324175702680822184348505549134003719964244543091545307810925094334367777992442797259085665100315929531573924965575258909643707792193822685343339324951382149013101159264697514296630002239906442162652291581375583869790585216826592222871210243933492111207494883094974103319693891917101203255435651792816581957433570556648925039105922899751617152774370759750961554829906061956209063585269429148377382343204369982018217045966217388147504223363680554376469779420689487945240599634745857004811482734319418482810462115988362217524331819311440491832172258105674144087764131191125472592052192139143114962844227485735343583646411935262938724912565477785080007409137003297977351025472989121360164514044175954932345919513142508058290021612196990426320117932953791459624671182419852329011204154805614222572901029083867936465731885444946711716195800878452453210273185379395103319943202912102885712310778920268577749848723915107043466478392571037173232300530506480360994548039684756189836463457350923037308266861831426874568163047695078535137504976333385682568020684932811969286047987753064706862655722665137418864703832211958928703370333041933473419963492482645250588943063168716052820953623050794531754967907065671683857724617419759453197018990211123585771084287232549981620414793010197591816505174990853669089070322838990828353167467560656625540490740620617563274368174865532673361375171998787182187767079685967115568198234811207326123752872551565047524886952313587306150104474736967918396042299284000047944632285950918615017047556863473839929028862667067481657829364639431581993224674100322764853870589904928625706479281660040183564686853520389026734544438028454784624976174413441102419065409482810992313538681633339846947385898386934255924261805574144287714149914625989189626618285839759261172937708737526536174062731915671062776345648854988164159587174341725857445237896949842065324532706858581805296328670964496893303549223683859353799967508407179538360854578455743671978781921346929397297567092755302280791650587451350262114122203955014491263007978958941649026282002946446902947248981164108102217041554269324877608271810050923284299249343445734739139928479019462250488515039660754744120156979256422432283586648755822584572360731831784371476609021483308469656232544937436701172583995552226689636462776269246605308019507733706553472027273349365821984389216806554726614663367423136072387717815882429965093583630177855844229189178509438025739107015868604630333544126312305798616944567468671856289294522516257619539959171871719214522008395932679804643817857274733632651916109382071072634409176525342926215588124102444090713208535705014383568175797843573734438894149489063163993653442545440297523433100683617054726018878726994471432283336579278023700324429291548102368515767089793341774435539691921596721432624533837086828132860208038073722688264860689512011953168548415503649201189782964862224811604448252477669579923585094300703439548543595973848249253059304457948197478333903472115581539295944963870027413278842902961991229628604894724026415748185301050252287414600632739164092957600561464434911097514290709976600836316198698346893911035095134668411111152448560270792093687244708153855266586073766403399498377189880227986809089184534396536044823080001225177148692554721857767206677402092954524099131283552940532595590849350461590831859718102746941126629012075020774234812875750630826880658131893170185897153500535716151128515789064979544199474593208670502296094845372089285223930458150155215348749193159815238329787444581839994775433786159685272914502560762996145437241772783691079254937120410779878327962719141796438076699426149392367162151167627367769576751190910201074624097685971184224608792061686695318168503270731458180296544664927436160306173533690548692631894645132258811899588584327915908289398493076665499543844852518227202023269363861782873044881434743291992727577076648423419180196290469758322595317825120338464527710771350904619175609095776380417018653003785479304710369624171581390726921973679940373441620793618660966073933904454023966631495293664666854657702811003384863971322384877495696106555043145369020348869330464048574365097525136795556858717969183729788494409323071277439746955917988692159117437713012484067949614908798542695110558965530978481745871129440581519381210627526917759485096295068766187733369704246072715509962661574925608139169063539529549181017096954707425722202431251196811019754652598802645661482068304883449462074719808786434518707895871290024629249490388956151448013352461367799235388733428046544074070349978047326834941985316325454646647531085476344173922139939396932990210680574107963375732670486136915022770520269450774366102184668617890431209041299347652288978551285392055344464011017131630771885008652494305713859528755350592999635146606784573712369596577358391932382427082762564716296781665453087266477138415499276844838461880065289980449514812607191783060251811686293360327540226810123351447815363627862897515659216286041407402770951125097444100121958951404788039369698178120617380504260024624270255632427888571109823064879280021816462989001600622846809283095751677943969274500258272712217969793131230534121808554122823420667182602572916601492796544766302886746161961645299109199403576106486053667766262698396697126430971032407878855735169625752317493008528137243848594580480197791276420814775586137732317039654792551451686275117506979871472367942075551416686042672374007166673274701932032114115762299815068115516370318585961838567496860000568969741001171808497707731577363453652840422297613177644281052467277903924376840169230117884296501836896779704858774164336065154394685026547057045699177628463000819457838534590882638282798289186195583330827569780617797102253441082481430665478019884793884707601719276779804097973941978213731230755218962914139478836198102720577485564380358556253789246615843958939396381536414930749715889603437357864910099077804777952371404691729710548568207926707958048262387096833838647058530778133587352771368647013115896788361128984381506064540380505553441783309659631720886112109693743530675338874650775296166550981068924784863321552405295487080947656203127014342065142867305750003339867009458244409550190383577474777723082134501625377888403745872814067561177179603116799216005015641452772631339697604217339890683589199139997256636344417222904674657788071201820868416353922506021538620391268919539636308714995682030279464542297957056766758068422480487057642028337117543097024382062070401474702910631010182879712813140905052924515930358718637784444706935892539963030841564013710491777425033907338748400755640978223513480252174300730502002557635641065639615292033595585615651902591377233075116878315525630551238755174259959135860352718339288190652642702005468193748778050237020687693619870950734288785004455750586680861221656003811193738643081500884506519557196755596338605264555795235930209710011721221121713443829336759535028013166736742896405976141244554913310503853436975201400104472153464301804472486295969184325758826222059763609907379968073029119704726680296177446704035724360370823042843910123391239813180532600019134751981140737535559381016543771580795556815368293753819906156606646444212644791634114835474170425083117596245493635970091649563683569190388564346921584863369068420417301796198740853805481312837907460950378676490386454199835768401193210756592191302999879162634950697793870813433060399347043830793260736112061922869680693664028169243167787750664683404352276948583118743706060869780766855257613406933733810192373511770991232860482237802718725509118153942230127310474211882693023474911830163491284528421826554035382452685073691381321618653413681439470410564652805258740705476222524897114211688635710931705801946012745624743303935697598133573450808763897222677280756409938615400655105283401755527555870746225929431665238841165315284452296216545732050088975113194379149883326837783100278477906129980895037085743346840173613984029205076546618702417908994172763006687175559267688231180706042515770916147761373806368527390317901931487388088743830896264793920308339907187598954688990960224874701902889969967896122495255938764436247981730012962313269031285937136647880627482914181599650767760651674234599327630367058834198216426489344176459668406824875514944693627852904536684164620443277161623417125166324166108714686808164143371779470323842927964392724756031110355175294858849961539963539329380741113913910780535152432638436247072241827364069842555744264678024078979878315075314169602662266450441559228874018805381818842479646035200383917246293236767426313383387494901242565672928519164178164924721740372872630704936248843707584295805605916966487128035732635626894538219737791514978769705090968156451179093285165529098806924439565454235501439360130322680316714689070288864608182674851976134532558907435023327378302270617919740752801434015922429497597310083642331031314032928447761577798277772815147486723950447042620724498353755280247089924019732853554241160874025503837835142138367943052577234561380268356185450848624672193793525119653241498400054698253404225091739704044743565042026268192933091642208478567463424392707629422337998655857191003325323287884136976480359145661555989513393878718564368255840347851314502427810370662855326156223707784793711583517376431699936772165972286822785024328979866390331371981205501829811587836528264211079770972400300168739680107267312266484241817643761096869057141881778862650337715804853135843961030167854145344392217269115138893099993193463822605288664814450621820410043616658266187619623899354008946676367926950538565053238585723761343682836995430131108639577007323269899189125697841976714523586760969056522926963396642329295278498749532684016165954885409410092929201056374966181356647764233130522223716596965359483099376516925556012791147412975249574717977748156718245710613751828503976565792996297160042807539297671639799356484126839377227051927282928704007041046497209951145107204441922756919255729439814880162905846765069068526166053997847505364394791783344343367068340106938929167856687457840502847892127005944540790710635649402307527093585751802423524547585175445362729337872281561392218822500696071552721646953967654058906718436720531506905287609973307700171530943942240862492467851506097414818288979637465035456236645662093403576606180737920188752831444970872175411101853021563324451459449737575228328916263274785674915532884247675170528496035204856283850703672588597914233534049854547201459173006736149757308443631213615789100096803445878186559523619587448307266703566512265554821362445251318033974210520560475946786831083982216935700221141627101844510134299589364838021213668297233473523653854429131014116719829236480246345785433986317160267880444871380999602569911263228757454081751613454345093708313117626860705241053164362366630646332325270404596590501220012400805309414300710297263404818403187357120113397888356267906082011072986423443580505738783721311680665020120127199027863907020234847314844936247528167228948914818168705286670114006290462014465319391090712030151966540286260560171630704401254406247852760640009876537374294017341337168340176747928386210707819697201688859803586798296252240449669970759543166154990725367075280299607089715628843264976904866750087170181464974434782158361915518136012488266519709171716860763001411663143491247948867834561490026197069898164347056865991302942698511396845597703346280277960155369037457542960339757817290934875598782238467516563877957948671704443502863998707685581485216932468254332967783229496761780876366428999029025097334886971559314639496677786331178345739613943654629589498064574797359433300020207148272197804635148694946653874663425690593052182014338412175159461618139041528330990973802554109450844989476410872572999252253768917589113466349818337203382969286830883525722050959302756767970263253988101752131293943483210352714100561305209255623161435729972998984638511829083962238837185512508349942284384598679775923113295249797404128317363035717238344155217951167096866920009786027827003460538737193774433969196874742558911398764520149058743169790721283921319109078113269326661239173852429153976991155889624776379188379821893108957965529300983358235511331638242858073522315527783576239274396330553418548964512332825547891981034828567520919195122766747221082626935224947683316300057924122924905315237434703282908464843480205051092071885721693225558626570814185753254861859258186630621304007008198862927659245247279434999037297659867882472926844176812354041546684361030745128008570342566136456524135837888721227770510497996582250948880099121342049056166581313089023382652235248429986317504025123914408564660231534172072390967453199000900167946742686785798132721053894565095899132899629549379027640584419545968462888650475732888783841256521183049227466348566162226118136683927305869823920008005610184544396714044235717477721528947051486331104776245904961565877221817044016534556854774797525592076132049174813758886758829483076407879125652869068912433740388016945596512683203133548216644115501950915249783613820520639812864502012076185158819072622511921498267360975830901199258800816539844147094828024328004988996583243925756957331594178115256151419306250003441919066293602763481930720984380322020471014854901842420244233540434406019963841083182371961728421137517698071802553360635713678550396771478457867857601225110829775985822832608520770815717796186420830723158990740753663793717238554586005507011535293549740923044045332532851335504421764565757561117269348636796505014405643366837536041911409631760757382923945715585352732425201003919174680279687794163160651411027319658079494949034259388899986593551338993458457395899512884667689073963212404205542937723479269082002891979553683917213496587591353333416749999107039005567505015814890803150970228503152340998590513915599956396240281929884448280481697910672761860128008708863746377530051169134198840483507432067645656809752109953716649353498276187135344976332284622268287836400084418783785942655739721248465465941684934548714433095676917795743281178979994746930732884076212878135752827329453387029783226872492278158358318398183940136718906435741417955555749422843652828111208492146296610993220662700718913393856660343087318351706213114655881003858606242590493889039596375640345430772287805371704451014584049450782512481636415047145930282049634482807327228210889408121682920368593864949479705096207167618456524512009439043658940255226345058374360641472886524751151631033758983715282122234491014975185895116675284585908742605978905008007808422514361174740665489836239042632944912692756128632249958147412299234252065168978939643909066809842714290807440969685382374004122383454349708870823397655917608906015056231505239343738947039092193772111693826916528315105178176194996639089578836969261537235476637393821748853071079089014589561974235586926570122011519762053872947240321283434190893078238786430566436158667740787011181143482406444641771380462318167859607447541874964398110957114150814701678752626433881265140375562735770077985420696304805668645322187914213059750795392495360467145038561201468209022616083526189269532601699395241916503218419991616656217329317143620642371309402128384162253664090690881334261193198679200559010015052081665918934971996391335606742095078794176737196042899281778423555608850841046294724703352169936021988146766519905077478361969625506247891558119251381915211389167557438250650473032482947877996414140901776944032523269677392891345764855696047275904984590077240530532229454025326798242573153973577126152756148435713070445954777284272206134558277169187891509568709019498614020622831917511311775467016057575098655656497050068805335814471026496475545075739492728394093754921488874597996252392416265947674519039248778306213069647128202823417679916359189901710063330442948768548356059656729066796320323487746493277407525983073071337944760110644805724985450951776114525158754897805050833362267566641262941905719623851259471897205733048614617720251594871764897999898416444833150045911649480974971878683950097984106483785205180408314981063279746359513686889338524811938483108063779353885346443113701294678265287702207279770353129232463244748203404646917329394412842105473585373476349949173382539938620651045746354022664822593349284879207174906506018021166863405785856736904289059837857887233865986721167721488831879881158394170648762626296381138719417645940918924179574645660865051440963288828835474408713034300832740857224200456810045557797568153327370452696880881611918440156479249353304904171717264011352264671947526241064671713588549241879376745866260684556118900631250201013284131046664985866501337098734250789311234813312179170692246330036798869204651423786075892683399354691352255240313003122285492524361018602956077468225765340077520735037937460344414919079492745412486839962813493237760722575846518314380098063144556982570969871856388556966144286411489817173629007248646389382761471807642442491895925264105409076370449812501655134530033612342280080227152562697499015110313224263325232825605048048692123266437554489227296014462203803700249840996077975308368590214534597632897062944491710309429017293184200430897646209040142688283892086031917252151475691284871439964677230732078124133459196644336038330191609192172124354975543789947313788086309904006410173040451403793378789749266641505560803923724489927432487735416198053203514828850461729065509333899334277440697062657077664213554905535214376247214844326382465362935576959488394014385054165452255775441180529881974158824902446781089549920997852495431821472206880949971091231789734333435390534907864733218860645690456428568478551125499280142239345955303902775091874996375065748528054376547451518380233243431992482629395752276278229684581448859272145457503426585560939327236795976572659204489973778305084716547903717204183361007269201646781283797586788130430871858732409446789550932782812428244278950440158364154030956624145893480109278614787140951179124874375572338885822902136999237636363772869165547659864060522845266918205538516942932105204550750072873520394827781517327611420392428620749145119794564863935080062725775767079746408232676412591203511903286412071028753336241943179557405002155290429653742348751805904818690359213385826662243200482312273511946749052584242642367081602043268166152268166203300584055278111230685020525671184948588197889934336536417704899008750464514934736227307382592797208751881355661692548528396539082674342017734432268621617739918773705050288550861028563284537146555990105102689032290328051856424131657859696427019195133060874278369068637354059258311661548305418388788063047651828223698494800891911928604302801733523667934284590091845897623870449239147759301508191028715034543701580516511522371254674170155478318039216954885523056172924582100791049536699174892048904384363248071977707232412056527746248791205593560330894405700025912667693736105010080565666930210059176533710503948436485597232003252630877002119366662126974470771705190785455189300804173809642270806470720292977435344812013408955788970360591362206603392784231399975226120528259587819245542738183811926385918665086661376133441199839668076086503454892138461684231363085008052116727723721294655960747650820698866574238285491443714829941945768972951725302956550830921076451442312993304513081667559610728609214026960171128851550993641991662808571851506776219768870618574540569042108475898201053345701446234329786048715481535521418025203554268789277432386973142220356601549107493135500707939943262046581142769431843610617388666150626429513050495148620043733090563640155842060067910144477701252315224360812051284193555906147428414082662984897589720223771871907441727522393516086108460171836011521106010180111413460974333555821318566461991888508799504450810409729827292811603217620986237876302749916495959881244537353560098934508900981610418290518167189174342655359769798438518237666017493539343473236514765591070428510552405382889862890750193515469162787653715300554986986580714914525464995360416147375631884078772244406499788574321195597491052617876458064935050253803477297880086745815916687119522311838073317861151511657977963066473457793866288133666922732120022957443229939676633426361758204158172544144145338500078658848548153285223498425929560010121641340229496865472089145460591633723722258982554765075424819995965037587600986674706483890089753707607270502488172332194775090576243661248864444315552079930169696524080179312288864124310842752427480383195988246464110928719924367101975992941237706428283866774240373596201434578561299577817635461695454812808867709856363348935979104296345251961328535683795752833910034512288610088564328382386613197386375755977839937292549325740549610666557329753874703951033786097357704959750331858488161210786816522428389276609453260198728563511470010964639473304705147790654306649348568400977530280652043434331085198559842060086874990291463685992851391005911523094257266471867348909281107886519803912396359425680142511535019454871158222313046369295651833460379946429057058551267467831013168568681956794614854798004634318239279848111426902855553646769261221371602521580305835558466202340969019163826650181488891980972313022790689826511802495803472047899900817124138069020088845754704894437845235149823072271841152823185702760838969418948032793563590434782065725914493444794802140136324876360145703084655694506624898252320375254254624594090595305213356328072457716100257273205453604241838050671057447660706551346182596702733243211006161154577716156548120801933642849163376205177813383173709331992280296758262842242294317376048101497080423220745751948431757760945677989449631272076186495913112609862870492528867106626216452924999870638384805947671624859947104159885964991519728717226997850108617531207779045236300469334305561617884253220442365268931053820564519981249867299497579896787926016072015193758805711357628179406902147581472888270552908305689572283697208724582079502870846717600782353532507288003617474825141545300457777176304553940204223130256798410811761577105005947282718787085115847279612951934077945090354187479556524234466880877826521748683104890659559706422488786524637240457724744061365531296095747928425667069163231339286824684415700802679593869373838512777116361788374466323067485870449117142152181333302197519769413087570504903913939766626959111453879390051169565915776812605728098625388776974139794716492292346430908092680984002216502948846567737950214473747981099642771550185406915828009325775241066377495097315328167877082888358811372616033818103003252555586660282564384081760829299245097999754561124649868264263208988986585342961283201071249230848721435649148021128976062178863808910550854401046075536657832181125168495725490010948047649454972740410312120838263721040716302613270936011259110063139704448590969909083273850486565784745015292612657885264913247813786989656008409473793144936794176734801407889093984346151830296994698167747431051877493142098924449416900333106472331888541636622844892255890904484832248913667121639498529576308509771263381757146285029183700781830198744137384689806179699556030277272640457990943724938473294733977482221176859949195509623732082131325306272456330268492424934715704365895886517910622120256213050290987145820555401998923270218878123135149971543067968851848600384024291997746933579232394144863681369347791279817723603510447284879039455460829715752739903367026388506224305649988767514972716499987881509824553228861077879884880747213078303230698024804222024310807132459077080054481856951607344425313410448284388276808307799738166046029258580884987609727276568812070515646179679072526959108337450693127651146618173737320170097578669645342443981951915277130787805261830081687156426721815206798850918468815653143938092261774149816243499195601126521369806085349983905363306913789106885233693140662837541062271567799054794977333908877810387623344402269936058942626699213524308645335920207089823167084728464928037918374533876876308735478056058099831605642297025501101663849703760847012524818798587236509732578473618875627597770336386479297459590492933873164143231274377567684532759920619314476679558296609539933023819768082250488710532553552823325082636782379139233429023969839871563139729541856902867551292499674877150431310662154932771823969226567187451944408958566683619341231450714212911537917719624547107169016852136255982588863170124203167111038353684199673496749602853801297917609253761702517923446910554380441755497798656635815144106874323231439797294393455501529975685605967541647360062043549209170389285429829688314067066778795748559616776565060595690000973119857926618876438680098961953986805225222857203819907893778158976375633555524114328247430520794107690134213761307737478317225990510430811650750395404031584628153098839695837510798106873711062441688015186910589800575465865864635656257322925362938076113160526229461253652363399281223787940356551740669436890880810417442249669029652677823089191288143141410306991320216828625430902928362958863759912457823408652203453641264501737604597427943107760066117243829075586698996672850393582843328574174738925745439292780749848287474182888323640841135600439977520990008383203372653606778433689912763166810725887699177256554353158953044828813030099674129496574022400556157386805757782224389331213081559074316539372407049117198145079541954642099853069296582868974813856250388782442444740460139795522167685399783994386139516966627694900248909945102253792732618591988973428036245820506636549238389881582627907324682356918274354503425909872308072226656606240310834510032048942873478319605785539944002408907558202997027282771641204888631862090015772882835674416794881954660174116652619200202096095713349689905356035561875970175180835922715767932892685729174251160030304978717603691759439881091536719974793050025838977169747704213901454853564396159513019040856466966600738379526706105820257344221715951453215602541361261606712109062863763169447316776102336590214360778514822547172900014597442053580692837674203418662620534376935746290463116774909707782743668126944493736859820345831815883487293963051869068735286697797025506301128557041338181973390893200482781436651774305039697114381962087062448221369737857404244197714087164976043670785474927488834411311625157099663965735497077456271121131743085801542132089685864201870154012124709707328399676883330767640323328050123579911091464589177626347478910560730453401469028210817994797241686051027931532425833947716165109946197133605180962514523540342179028885039506214483833177850392375497231724457599227253157698176309168906059952433817819539251756886007783987703995814488043523014175870856928320003490083604745727008771591769322400268812868059477011006699006965544393480646384564632900003477679355316479028317616260306381692489705114821387604606859790043180462125378017128393149477614132922136950449130459849794944620099666703340252943340456583031088745084053096388848764103163650037819114700437577630921030151607535987561294322790850487899105256165056855717757882240116849312053362485385494755601018427298283930430394215184440649703242444129795157493858323532912987325683159135456632814883724543365455375145499819066471140900992998759061047787719954011804213015246287978509199864027013282975911740065348989757066986887152473419808111672584135675749886367794894585514569382981642776856133801574224435192776022871090717215371979902751110075710516870265799214880235828985851912901232380348615858542772538610563020322331183214493178964652232156190948121050314168818666754748864692009753136852796387436396659325300141404761212536990122891107043921074446761538714219904188957644838584575691329605259158068272693591912808854894255440471036759613734527350251988121702898859418707168683755431739415298843478210675655562081363520890444289267196747752679220824474912732792394595234019773090102770605088176579886992717766662866104208922457235599394367127403938805457761470450343467271491162960201966583728097642202883377091669469725956085552584274982696826077967764778588491906202302230195558870861956406403039712882831424686951311615658201525412341524907817941190961830081341497077815961723058109821181073668711911767664633954119985870839699734989619926520015306682313792196694057868954602077474452891670628142249469507944422100095307488623304107023263628769002682009738135213694453331255367495632559333046224640948162225173059972146906458930058215228450907103195884654981531216726866821371081372071642463985774579677335357911131121026357322254071022861522494486490512812713451519282056133359175264417905593872408883223665753916019158392530978938370740152973987287648785657866825187458389506059899322540056278915017548022067851210147036986510481689027365494206167347156799047018006780324959989978205100330665744597174883957956408101713548931279644643023671478258256096806112462554816992759552664738287811293129617194048259990867749924009912868238638987974217283318055181884681852403963281315094600044363082936971331331745990760327071606756311629622877676343665638900781543773399172291805779644443604639404998867764351273941705664954845738055401600168275038875549967769086827319247776950909082110234206598140873463999804249719063589490421792249516067248692953966884569178149006873710392942862708516329811004742731240731358274093729268436098742613755835255059480158696841855775730371703403803888630786961811849826032139291952013825380039172734437456332138080620460902703755007859064515671765668852090466950546498908079003298778594248997307926203068191143695002318220045244563327288396749614908037249378044497215294478161661354370239786388641997828900580994254736802572963586133223685018685698757288159578840111664142434915724878549826234927141580582122073336451486892371930903401336426163312852986876690041212264782235436684437073275390591508538351303343174908348859280773238945183479547279303084646580457191055459170029459049865989898289986147057897039924095985132697254602916881475388142657516982695028325788263369158384438602516998435176395635582956654766363458370170636933661229545285187113345887245964056386885280853552062083727859225996104578941332792309509229410231667702522748062669596129478899000475003449539300362417511876629488050204431503221844418375381694563768948873894952177252782982727847934025936058424550314576810636317254449760325995337246147320709060581535226876644817852967471536355467395661369677711617523637438783930780019696623330594340992193039392743858478112656819288531006999957960443555417885031511276505409295551564438431628259172394502329524787431957052772496352933453805078869087310911871944722022059495664442418579528118178263905295488129417314321586127614128835015981528481584629220673542351706497269506176697690220059156941539652013847769082364620321466081170622429241963427167516649824209714044088406665006062903364999156604074629706597294517887079625584835689709925735687250565818824090280457841586518883068740789280992700603919449736804279817101686757599365674625672513705358753782244389585988371187367361425899565320044345597084583354392019533343015474637899004469416860926592902087105256400302426855967088505917543371583287211581967060215430350902757233120247114107675897157820957497571908256053791632943186477197420921028190921790613970731077848202921684470986401668549166167379944358362657509427801350628221472371019232452548569566217835739904839895069285098584993373362426111807060260356570228551655321784801204649777223985076530207040771469130272124474324209159899873516255482494988358062043335945906313867793915793465851820957812354889063803348134299465689081724740130406344221085851009920400002785593432387764699005111896210347821387426070470654893778944297962971357714028689514377083263764431847023454486617148578949305205725386320916718268630081128848061332675283200807122485122162139181194243946898924754381263871623155042655602533152860076312623495453942381584342211134943635785743208792820936367677577446636682728167341474625311863199079245106912108769388989297643638598556332158795812927223327706435172183898096537803625908496225640544568336324738904815958873799537639040662339156673181123192607764780053746762963216105094275302773639024508984094512664716794969421012887793966773621977001227475845264749808999550323938263687159034903937473799639826937611960801519326196814634955142090192554277583340494055623477663194329370685222706603679918318022388828130935990290384438123322438569337263129326449615286470866508777432119992621529008653349404114325199721302679283023516019123803635857917339482704880218610941654934299316815628727715553505873767826156484808148146434290371530335966213566491422247221134629337946678132635048742154352774827499853833985895713587117714876091880015907373926121263185508656911574347189353838014613351176629643511834140657341866143418645718259822015876739973250417611347201967105818245831779339237100916526381103425436358276815198145661416513545458203772595829157855793540800692379693493743682624593173195360250977847761057982036185727848343732753139754929287996427519078660732633191918162413977981706121396199918381721432080627166845406207676654805917687901581526129334481538120514366295413049534933178850445823352651342051184010961128709792256891943288432846346197637459321636107262626241647658616323507913439219350908149662691253940880309587619306490933834996351849007663576776421437168795190968777201871353005501232978780761508002326627213248167989829697475689850173284870250050531718670743318712079425833486119336205759381346396605906351798833026306137185227622284006318143340657704299537493218822364454180253104142755564552053202359815940030162386320107478850308260580998436551236598274926181674783613681079022952887869955296079172920634515803137088344891761423012642747883228061557525051202847983889167871548220101778293558405704944050603235901892918780902160429771402603190899043959770472207342622290663737207364506040566299081870345451225829588090902079417585729896716661100093858607854618207334286063708130343293762433905785029994909570267220024381728553784063535177325383757089990200862744941668133277845307603054112341951476160596953167285134899571756216762055766489113191360774604539818860866633608368729443215491040312723880674185231440611503560781545856475375002535873315367429845690703208130887832543506703200477064033710615483374343107830627310143542574145100735154850675299469065911615248321244604263636765001564120687133916743370597773791558923376144128884987754274688925691033003936171423924471409775937931398140790898203673791648910131165107162419672201004887229148624002637221614707855571972940913642662841484323589228994869390173804103664104074305777844688265185548323535962487201990865566717848338735941834152067677227909961148362791641750895976495403710234089485318344989154322909088497617678261625928675982341945427679568990875289894181005941445086453213311755773214227560997472141170241386269891629174498440163566457900306013210669190364086950593541537326285074854108463955587303450153731291916620701773955209039814445540044428612238020194877211155186099182188258395777070169633106107642589434336628588254888606935662166743601455447407193016418524350712794961332304846964340070766043350014870466392537050617811038823926391010586693737973231614159802374844132544915169774501600935489811052618283780922125071790429230974712622489895128320229030403767938554207825308124744149405377738902478646060031725117093658305307140255559341530197636653253985326434381484778814631926630382515714468143220903964624653281773921983680429081463405293352640693129129861207989838417023978521688723635928594592793386090402981444538786079338583584919280143232324131720879667257741760233950410058195599601094041707555637050938584029850900080592727520261266693433038581733713030147382838406074491093519457768323452012942484952101844198288113645626838720529532731125140648953764655437284447131590708097378870138055432704779211181873906450278045931863872477389546189330824393165296359032410842547264654617272036840658642082884086974886669697133519099728856319205899514757793652142123387566056730848108670533074955274168239688105104389268679397335621693997369412916884509482496987938483656113323592097177275920410494828592886004622633651101813206936725453176258709583718331494030162468250411654313003166127710476891001459861045381601809327354428784996924283146721128474911312094227974846735448307398022886258394863295479931767534438793856438110314507481584120413245470076976594358348478102338785267448063416964816715760866095274524238318796732005534295762747100641742353306502685786758531198611341423754427780918349877812758646616906239360707597296603458419013717197200524370681118071456014449007898078989031231542483179136801458066910375891887223110742195332831891002913947387987397509063766143641679135839075866499616377478342420549707970771755631380337891809041325539289292326661439566558300379607656034841329667293709351665758261383132622010057827516108424819462644145186929549209606392361594962024787809274520979607213520558159378363766572262126109670798863754748476112429394053683875242583214983233643201783878884050788663970765390205358070445670629935259518695575247037458218823709735872201897662587651827339650439173616892410993581429411459184252239432037615024729621417239997615849139517040536860387026729483006464057051413611818923999426068071036573692840256554970943039331500737307076664485757160747621044317418093106841234337127406000088159723038242742716988013698185767231704134813403073854681236369943623365117443674968564589776772505843561205019273570969229353483234855567447454665940854308198197329049971122663757266391278572103241186054085689205882796311767150997393742652331978346508296628006358841037293585631311557574901764183005461833146602291871493679162757567287525584563587005361248166580047445589914558086606050923743048559680553687649664616955394113438079004622682000470662144528897799353306673724372880227246361818321717812582452936074769092206326255379138728830018741314579429276540755702879060873647111323684781272511053320199295227958315092229290602450040046506518242740549239447681734061060889873941127028326017768329298582576109918479742937851899675283882345311891278253049269406291422056853612233377054700260116591954609803510656920351791219961876345880801004736137552043039922503369383484379445375584400335845168843497017608027960145668554655570303992018523747706325627086274829399425346866638348421227455009185573378713619288258828423472864117072804765876110609909111172745638794181834743304573334662046726984589955533506043971277057912288701613663302477746425243799817546409258525644181210721781474879179913351497826034796024352706340050513870497511453116317403933283975131289384967718206884422346184209818838556956148034164688518038956207548436990054828444897664079873069584458776020323667019782885759252431505482039585620441144699493250876155775434132078640415332591718248750457235424966788627907097222814323191865228838254931444844805079532970051650419125502839873192738181911382097086093606929277147434356541136600253946904596840363896742122394195372395835178093014870104194682569534310154486131810619166195631589654228353904411511290322587564625613330600648014687113019139928122121894260056935634765690879631405365821972747344766292791207146537769474003376721127775990297556447601603988901118305727357006889402043718448805117900023463377901713311572073473487940409904629352847088991620252364456745742211976684033975686564078885851232577219042112844248460982119202226745136037021701510265345360793519229647202347600415001068499052598687498886672922328403192538740787882024472503568260806887970714199466914278836979549046499744279642192528350335109895771455416980889285210753708790355222907825202744306001341876292091156478146821086322338251782066067215144937556303880019627825255955145301403162307417130042394931183133281707940900479652038193497657147635398008207943557992637120792696070852875467404312597900612798136015311443336729705837134114432107776721533202238727759277319614984488393358769901676433311480482335386609675114602497095585097566141367284102000377668232889574954767946016298255566231493362351941339099483664019772316151704510693320464291371742995057156201360018265520980649491073292675011110238672360348300250776158283313763445788279444162360106440840203864965158013514210407159745031580736214312874435523936863988390807711968401376607327805004157076470773198624071735551421705778198184607097211269396497760582714363581361932499011129558886994458727074912477150960737124657758717060291612866675185237976946063630834338373214125990936143039280867570681466598530547734485508979467978632592887033457693761102400263380960918354243555125379308166935714283237172516631915252975940528656458274076214025777802672156213529416397023936486090287405601675511618118779307217710525897242665723834810764378891432269229647062687322886486833400714719137305387546628122688789943670973972564443205764830539497461522006616185304704961661430905021449311157760407313836181735033893800383913225112943579922779850555122223086415182195590339200544858892516133160591178840078812171093215392345064783903160459972662652695424079544955759840979999337137658889366831265328052273831502784227831746768459640441131863315483109974308623451736259218807199675176268071581125020712657205908274525845454345438625334370849160019867446160173311736769455501482839915528775622072404863735585227868459563642637273806717923495499239561861660362814828873390089006346311608070910013960691274997131007550097654048097245040071403996549772531224713783427466472055141667221475577441591562917227336575312100481428170206591168868840420829195100322051767442305408642809744279629508691781284207812420944781312303036962830510474060884050389289865113447663616787727404276736135752109512064594343855209285073367829364971354051977511958872679930528622942585712464247523707372716528199248216817523787007066131785182928597535265934238984820885364952023455705510260962015025126322031443839407584249120580160269051508205795050885257418576478724495607308921519776516573808999258614522922751867464471285517014692850866599009902994634273732357070441123962271371547497526992564626514623282797097398098745326003825673392674405550634617180309368492059137716328083663039501824426253331942917459088225607864067150214790790646609773467007940476972731310808582908718226400100656032360235469319334772655735022494707833746840215733941078765459893417473699384966189186467659109947197097229528384622277096495281447243700368359437905839717038411690501609098831827266278344316068072489408543903976407053551609666229136713183608158465570327832019442671889104262065278780130984197482538465022783361744186594833448229950630755446686631192131850795888431924336889504150354809058355535337046164326390386735695336559746711668984022036781505124919131526582669295913216141803111555698315268694315606746297389724797476868263924405408492180673475699053517842595250656550201592554420441630160203721337047302658841338526587035810940214561110070259882803520115466493678855481345914267965815334312696181165512783229528820663220724365622101366461942199751784052755500644339337677479316969858512772734758399539976524787054629229679477721773600227400707451151883525698932125914434437925331638511988977754517467545521726737010649473255289066860398516979068732682346711353717393329247154182197176595051161402094916005950937716209833188030807015933638115068616305932553603076375971624563789329770048738409837616361445905762299803309442251746408873917683507908140923770979873704733400557729790008843004396389323435608714588530767114827636525220420348839381537091649168561117238345024454050454998966417930630128907442524774391292879648213405740039471296676069949143111240067223589853423500674032357375235688658674431666785855952089714023814251184013998619907161520316552542516185152605211724792931328443185185959223200161036951877980405332501983455433856464694246850221387294776847913466720523589039905977604988732992942902705494922778605077774231185830116277658606038715878900615801621773237491410566777454853068732732493052180590878803799568656808752028672720216968131847074684600813748611255735696449360170769872754734657613493911952500518168244181831122579396711025247947089128397282366511437581428099321854419742510976724417463206465661618850146061407327363286815929495388898556214358134881366682828344875763482829082732587233894278868340893179195404865639880097705061349227488058809616728197556255276812462870120349142262587206593690225460329440181123240576325846848827389930395274348250283227372735679770365387566502417860060790814501528380161154796967683328940632803410096419244020470599599026359472861258571533709225781575539902179191399162790206707588839244284843566220048312413776602103207314229060074114870221468401635414148449981321325578009605278541474320329081251330212735129375599343413170372982851703638865541523924236027192101793888097252673158976839283530801897019442589217887847691599117866657248991600058721829419803678325891808485739032221996726595173934327030671995735919048340282969083151135565661868384967107537308503021185251785288099337025619918817002608724860847467531364019410756745533696878951395241959524856555901333968131443819164103185264698727682951246679311904716369201831044864686234167246830871290789036126262394059465893303661954723904298677438008593406648552694163372033170709916289444393553326098220084557396361229091014107315546188350382232705748362472394402348693000757590029514634029591726847633523427803976006204976003327723427398823756828908191734594475835791248879127293879569887916524554224546378453322491987525387058219130261581864084666390083453226881112208068552061538219965113329084966921286742993397893096408189862818726903632513976278378040182088273021365131375983181989729325573313367346589832250026258422652269942156726751726091979464400800330618903616981399701443369253282979803700354342253080200006777111818200587239609414262772294766497848369939125092896868277800198775400723489979692935408639865792628119287107625453219183954905376787737633739333598023412880229746403473525009972632566107795358066173200525363172979185433233063143743741240879000328633471412001935539846185551057287977136595711908725550058200991599465006493098236519922184469083294455646472389055571427297376593725286635379602814401777860450018197694097232032583786088480114927578552686549859036321842609668597246163366054693904563058987042234404956650169011352589329472307225737284537718616299953666187599310976607412263804904700022244141043435213233379611511066847949185200468195668534526508458685232157850478329478480700391894121336750560066897536740268684949041367871506695606935522191827037813517713301890083463279827591659053351434653810021730322356663975785334325027764709884856152834002881384446270194452706711399915205635670172985130217711302758050917059643426707808109391379906126383091078891062697195071395213228648351566507621328911398112158942867067243772568984500221286929636853094146108824023491996950913355702915783009609678277636441807181857770988663503670875084603336441279671515860250566180173204065974686724952078605158018394282359348184733840603290916708797734719771211930347628747815444303025986653114794126039554608016329229027498599784127818920910944084736905178139733953874328282340813865932771610728092164887740819333975361626593814299282189752445153299785036282062075383479723863412915776179897425529266729233520637970716515577475339343225650504650068468562868235328697436542716025137983369081090679664039001270726712687708109156644116886053810706429789534281437384577162044562407702168083300074063482016625654810126477277650697463109699383018408283314224833454931106915702751986545628009113762878799624675633651987906066334650830320325009383464981229889867206038840385748288688813825803852400525802341724520561586436464859900913241465998440676921284134963068123617504990810368486132930171919245620442408756948192979710161478250238734595386314445506661492140125966049229319776418975351538597744766500035864982872122884699342860968613785057221264397948251497403799917208631553485776256010304485645167499791427538698142094383449601284704690370455508063251972814395400643706301048757285653579715784996995217891734402439769959456644222350517506567728524771110782607546636142593321212853013522671011028150284394153366536489572594962505507981900761253656083606013667678555365035019674207755511342783167751837343705597396632843411702989354868386590744248580593120347545485171841516224066410336535565913019664357268915161257101131487803210239338878050686273521700140934812804329187013007134335149105661841569686102105883827841503422201098221204722510343856927223848611591420037419854588502043799793402843967852338548448878093223093019585136582978972051005277178945827322151838972862973863679562133759921326868302918398995123685312432330007427797729353264691739735150536140049867563009598275976962407033887596698770903264947846004943132881823020953466826043055124261548603238768952701075294485744149080552867706101917694183708240590748646846476070355724023438016354065706981589764060956112391593565450642870508044186635634894413972279902554537685541440069184960199390626620638813203224827260673785939815850632997906975572168733192416899523145893940767526117667215507184181731704532476469783200998704426366679188278979133785932789750290042164193853210655229992481059342324922202400319538834521394357429552831841481126515790855735623055940409561710008812097132179986461047775428651866513525133923633229229527215177390115073984971586893900764561869765390750353052263718075328516788710908640484947364241688100365069933332746593713450115285110389371760738174188846601490572874377162456005412664683296458550101688608176655166117314156201423182287433793857776225603369791364803369240489394694951020555452029946263762968811089176096576398019814267504028506310430044101799135320089923854855053029731322137405718783710981767671356916368851455664921999798818894013016546760258723507754690797988587462166130033384407637842445402342029845727430651934987768073026556710209996265778873710576610730456806416488189580761084046894649218729243582594429374018292170046722796431080887566339835623690709385232194351737228792433359634054160129439527046251269096922395077926853693403632364700556242457370946743037833909615915303252757406908837649425544147728004624737182857826688323653336365806600891837217071302239160087718221270377437006651075911424632480647645922223388674098974149761446428737931425618191177939750868788793363820763244557158998638446610748443895005827396212442732641495257656674343859645181057331510767445486777349040062560507006635178565145143878137548218121936295614118686360805046538403285630377790009735839335177511969796036767616887709913093106899891913030156033718087861620262375194017440904749493585738719070006977037108677288829233802215515087968678713937690877309843542190577671756478150179570752199181331207059056891157179042760346652083019392673139638237034872183463842068738938598960069513479626549829411068202037482426346453099874259907778117478240228921344038209411277042730620459925062134101904180674533952749624102035741515193944180258474017550040618194304316615788239279095862708408443592913699124811154799976889832885333163804658868717579666963662819196954634464774892984088245488021655954104653226443213560240825391866606098866278029197128285377764859387212683892389731532900597817070618753529865524886129247654062350967845168496587165870059930042165133809573084749699233503131331799349759383061127748675502301802159153760182032397978956709132337052491880038195380733743222372759726385823808688328568708806329274368517163067077838516774687828133313382782544862643080062811691916927131607348962362193765042849670726738642643827495314314918846421514370312316507834742118783682970832345723004892024274296787045241928456929152333288404516786263566025318280984279211366314366722740251884254499979801653891425254319430080013852209827908645065830559118331860280091073597527517900145511131554013875835738461317464486381989666069241209404666753680866137286828684562713047252998270592790018404537337685172137395019068295467692259826429526996384169091971626730544454201822136591101188914837611554684881942454526654383872131206193049268124875491437818557551701940010561202864707278871141391943892076829560534532911025413258344203664439994375670020492565898273409106172948675827290081988775683834026858422079701421950937115897295534292064116348194013574306462258888710322232200231810431945492036775568460417848748103757724912357173974696380412123194616271914635483888123795143463883900927513280966369866396977655832196893822451750942309687618920591022710711360501159060447349235401554900962274256486808374121412804815656608141369435484839170648328181169138193499014898590225392039278044290259146058213179739164162766369330705872565995805019353774375037840289983416233092068031972520244158081892947504184081367563517385940216063852215648846102268743322710452091871060660957308558413487070703598885011484970210123249377585622648807405469934015923269562097424564327484742993455359869964350761061143197475048895294594158396688013475068730243033395936878009253419531124584849252344168573909877882947617729451859873545621127600214744317918626871066688540681002492731682944209741994703487175561418394851703358035154116609771646789131895038993917578953021108686785241309748811884970848956212661141348846520673242571126096638336016435411038143329456470517498821654823270439313276864103776388262703806071485433363778362069275358913000772585182188619026922316405957664405626162607491220471997898336377479718992250602198898897563579951338098940326736941527951857604389471933833402562933246406061231246667608935472881366086359344596063471705041189526258202633645258783011293907107317919566405909718716408310088337071969201508442872516089672602096439489248259830732276034919736185764554552474472611082661164937252199265490031575442023457369547711845076388669030256883917867518677147520189822108577237259053616412947336750087551819428813640344445182078651955529604063695023453663571984340722350594624807142873294328296652482869916910200075472976269126793971102589516835394459145162111342464043911227940269217203795643521322570378214066157067702714243622218069653882564079540783714898745256282783640143583764324881554561976011260425072431904465418738660925727930672978491880730526560124149015978610992461848557753369348282654878964490222208031478412625722253829988325938485276300629977673620496446849780129025358596673505464337440330298719361299484910148574872721425303666708571377208488510088128729362712032090900996821295832451861946848386582925030199089050929315335993450464149682547544486570707642057530173713265629125398524914606013611852537789974912842645033734881423694338672989088012757067148524435585651191088486625614083132129587584943423604664471314766451421336050816259403343115602315457997361227468752554580631131692097781299271139194842940480820573532539687104070208409062860320539879455054631170323621889494077021652759606277212906022061698293503278505519077972082140114582910181325324715179963254902471456031100474178889448790486089289269587237964775379771621305104235773178225278368719566435314474477059351551883725058080163797093458491200957544185719495356764811138111651363070497816947533355191173079051765509608633616982470860225153219509848074509175087970905777831922921583556247779240641782952824029410774207080392544837722159456020325623356600712289675029119685718370782864333455902309401375011283905613472915024170902260370894787713609880425763325721386294352426311604602069563691956705465418423396490255763099624571431453277102171601325876192613494560540152385295736976305392318843549877063060671032606263782702227371126018748588115236766762776059857581178671680833243840466757648967975094972614410214150090022372934210278848600955512645620729382165841694132199532542605188597226313031583190540359704045436166245466099744049119111836296309625420277646139079982195304966829113081660524850634650404413811865729792976975429257127832433327447129815710959794241677289755676926484958369561548105370212572453162634384879799012925343198353141112821987074244196339297840559707656309033512062472476585507005410448314604028053706167422045881763985673782384544246094553645745201889892915491855901008338955263220531700226751997545548564641607905493497918622254876430457598913564068756548469007425173829665767292328127518902756123552603586571959310308201388203205487436328278628822169384118662171552734305514112508053450418068716249649083951524256699322424130003400459583995500384119035931444013312051961610223258756912046469045489199641050025566179785826565956885484100642765654347306886400465658925535634216090902784456954369705678064885881689576443507026178253444879760464518658147574543533399217989351494919144283604646866113586506538352694371503035935400350432685131132619277715684347819814165648590063749658800226660624083678519654756687171285465183296095812365252175241670488677151172420473537374211561084044248714745058307680436889149775836680313638525237252042243053256854724758795940034016490518919092513273279190328603245616458658319878035635268640963579279395741267749645304625348291699405478624242863538684849866570412160919247569356747229769979614116837529359925611725782523203133791560075261458420858997401864110294765452909822362789501541714163934398870435169261147841636433153322406505197711867195599675189940470500786396805668852833722229937037417868845515526712093557094848283215252863775777889524088568407409786486731692277269458164270986240742324281594735651467805682959527303346832365885310803691803810644851013991015062076348575077151109577526747591718096797416678447886601452011134208762153278139999006284559111769486814978993855296988693890192393342696766918951641113624274922334507675933022248077381785477602701226631656742897048275076745393828105698349823286039220047758926925385878533787919115167065658093618418176214933052028315972329963132198620336720028805311225908254800704762427948720316126419111346607368337414804079183867000860245911820449972345444098702442858116577348768429022494231013322866351841763219234649815891535708940103318513999527527385377093244034226695874756262909905838356198896075570662824710575795349285695268651842871655664456641597729054738755631666435088274604471596177072830767779581689486775267251449385632617296091205327553176455536885233245022885249305699258090957419823677241064075754773005224542972578392630639623199814602589276883776548217407867598468404415586792254027689931332664870635268505815789287681847606850952200705830555232160523379533648437578437969217807893795350135175470254888550512345847285533166600671680171685850397529955292685528650235181881530194094006285729590494349850440571317390247255636541108258655106840394763604549851552584668922177717869031725732223915772851507483285610964377580185854428480970282881828541884215761832738946659610488815915653957204568402248994836560002532816859528892941204748066313593731482421714817834183725765420893002657411024611605094905513073642518668572662266793455829587618502545668945292393213431426812121308470824301726834269071097023443004612799533780839776086735311845684793338297902103341264696512429180949398733518328473382628687858413751598969254645727265393152593298245969154199254105365708406831076168055086646037174807289279285408960462906351510128579642757804809801816535335280650094377226651042830379969164987494964605225227187248085021441655516376783954207131757312741578304358909797942398414499603712953977988406964278332010203734754162702406047502278179513079218981393317979272298507566603356233626992002118258911715648443529021553656938242997621478233920314012716506125739075283532677769259297374602953367164060594735724085126844760872461933988293004224042377950166491202839217923577450354913232827500028071863200961002935581458362727994933248034431275971347583555361601684202184013997250809996927687644110473205948516936199190060008155948992955213518262631202795852939419604626963692507749587727634371407326259851121485734947334050731448646884109868020971683854371516368448547215804879766488042031095952351974282171112389117220716459988362720525244137441391326262919544796775425541513616470199652995185719561253907374118830035098166184775600936996827564040540595505576582216142011135590855309706598273597384030808005539797558038063579684907788450830948633480557618421820944298553540325772701897468453003896967697465032558433810644306767838756233801772417529634964343123201166751020128308609464269720625741189243784305293070062236027982837137004788404172088785938348969882632265821939738141688842726418571675260241194362522317640833680751422214325359870821189713184198344952775895805488326608790648803024610247831578298481141125032801282304513277333581398106249782691371272969634942609197888047374371177682428299527735803901028149673181003281445985167403304491928793393340553705043339001943051776307390455726077576222325296883110579588924909516620550155990412551864040623605800367370145266442986994958879835864359207608703111707214703252031028192735868893970246220534655966240385978639229779256975240001717345294983494171653315564376981025566975432803098576219242690645540576541039076123234006215889498189425451361678130088179412705974929118694206028449752998147357538978822953955731711392422431292623534505932466347502577572632943538246020350612523431037626326291934294967238255184818533951889993375000702952660758328140036112610608261608855012972452995150192543994894180068678101338657176535030387883515244596474926850684801359042434935863849220321208436566980876220183968398675131207959872115860407690574678959563821569874535578439603759453710279463303721051581134707437905689670803096865043998693277612530956792704660803622964542940808943217046609673128625275253475452233192973254311436880663920239392201248976709286832801687908879701958563652812763112979011520774577439895115642561004166081255106757021566837398685822287570651191742678661968533506647756876791417427023044691488296492511801904557948384943342014849925044565085031055196681515893594996627052544559554984207938854202598272534899313995965082095141703279689191585837177501345074417876021900207920995336691655845440411278017023415561839691846598049056208799038534994528047773395405741573921134420361247115146182909310996477023122446255546657454100798018803340014419054034342504139622499274152462865205123814960446915111464092498534220688453287145247021563010390363384593277002522138922484991776295371411933716298920068606412838560330890407512126453723614152889595398651642949725457081030181686884865699147717231739660594414335479952728600968811273164674377804316877464789732978004460943552700996251406880526603933647309201558852251532632262948204949509139919346810307204426095050827822286039986680467490705435022994538413207518567855899570056208713442687286548964829430413046261358898884131989264117656482886707789198277388977943312266269840696414736861200581918965633855440598067179095120660068679448174974721929037113960238901348213943649376889062476832830817247313301309839117788817628265899574541517942918348182545456872376849095273753859210160037622908918679547071159385132949749070897361463204512780614974661468079376639128516615244485285255753704377776511437654547223322545219002299880357425755366144646929434655253070692702556571832228480837650797865563595985609792161051971911240642170010782043981590912092999187701841258971650172340177166261451840427238683829440569487341768135287566171645963108775545952728303203257063962784839081005921087586917828174159842575921430065353025826676913258631579037185634074388220218327268387574452895143357197520188029232430957726292229361141439555880535890962688527619106533139451888965125372039205177679335625750544175589830275608275561250248247696289210468473189728216985549804349389996019627407079286565043046723396105652165784470631642983761712606838268627730328568849509506015020412214766899079900226954180519357373235468928183496438896785228929269980424838973869125200891905344020619464815510276451546354114385887106365266164384956236162107205121197720628583712138945619484531429143125565961793290518680387598677704099401764164561894839264499211272452626585824491494791566301116387348546885674916411409333774542609522962552737385596550547291852061542331599566089671911303121427343479935978029785598868019334691294681182380293149550865822082996541116037470400747645425544211287754367115709695664527502495361903242526825321838746140039539222123646073431988504207510780460383718113556610721723354715223566399619719551225119277707916995399607946586269902766255460219751515504796107397594743544314285190585435246287728771351003775223262033801578539960286992354273408623730166599556722621076422987232417623331492140918496264526928489328558261078877528364816962897612524365415139787534508764557737281588995601250646488966342153397887049106148995804196967732934897687428569910791882821600139088163384935593440358547558325141252786039700167756524129445590767676796770799181980091073168824734774537292287907454090387215314312746534017545646042999592660449176304293590458455302606991010845265222194349099071197600265384730204951326960645583899235478438222285458904096788283254849845080555512697510133008406845030171541530332192352555975128523812212588662831648195372643428590905968076145341708294665325594744868438023363220393934553562877403859429617820710522759311474814547772002669984724622757873995354512311719395851610427492806589259946083560805829434528497836170219855214175014458742460145088613251817801849365738530457374249365944964269412601418023214239870170610687772765753749712093976437098342017693579192860074990818622100894326579494551825803732032203708863976790086692650103740674073250548903666768513438237004258270945997128699028498705671393710517200345457569414631771141926882302894221914063390797274737006468801303673436708124470754980988744174141536152393296947765608956833935998077141755625402125730994539527698079746571956169111067489993444414365276690329883572832736181862276376393048295703103534312142022156066793867010753513540403157214050545052292870103126935953827939085709517883026567496943617933716301403643747292447449178186002372588700933351200517562808305500460165597518528083984875291931127068075789883710371651741985773587396815267573445994721459520140496032118292675608872031440506684938683102500128001617810117305213167501574927610219113303415568203480865336825522718418771263844196890244429058666379682556512616848139717308469956970044950653545053745174483959605479905018871610964833021737462740701137015994773537037390220539212839569985539394700163986268845901249899157640222243617293928151741367227884747479182737981883546460722263348630373199677524320426873376445719954132234563021113695606883020575670052153160661132012466943079934023534099996771316689750112448765166607694287673621650806813731751129305023883661473401118137149991702490342200621529355259729814219189916384390418478655888697766767969274604483974283600302768517334935044464254312407814354842484249430289463734709450096533951557829413063106004385838071523456311397526315731603597034867699718776231715474654147312412616233527887481746626079492430804513430150687712240923276124318896083434946608696246672144702309134788980102353947053401677052675742068174992457519645857228589561871140445191057406208485740393271532987960600606648560046248298086896976759557385331141849423256059536859954344379573463653720887394791426720437459569876623057658622900478544135407278911561967425395578792748155232146047970158172906572086174596579918059491968816647670671908264444275643763073599478415999231072298744401686135000831831581867275373722286320702519783718608379145987599228395594712042554811336958822058619576527368554868740590253512916593337150420127317696404011204343936735143206643518044186658043566192706317069359794303596684532254848412451654163027600651273323948439810750860546061369376268962035494882048303908369309252703975722031407716528534478266723160687521003070830009318412475248696671725934715616920639451819989135326782756922579938962220974392049972233008231366419936656565206571471905181594833259634457519067960924841858275944451921561091697810885552430227977558610631725080068786523659133747890255717595361981862097442568136101493403198274388665110435674001813536608748851741391540834123590771157608462729694601008597002327242089927251390896606896915737376640544682265117157218765783754136320837331926798646448245351931124221766905495883650682137111798990442301161237171279528211458372838655465026255127862834458186361187471752416221658308454308974725065630763416096855582908884269433504242069633253783765619312219334848812512644845661021823873961364582199751528519201321779932510163364131029939665715492510878529011191292311328826396218040703799501947008875900521872707683851305939355257564468387033416308000751994858237293983846491069905682949507318900572818796051274738028962885232323440359309702296391350979161357997942043170109852849235189318723904161964993714403564764361668345936509625949226055597231670048869989081006384270120056084116865611587889453583841509433285143328117533570745553053329143867298361417545808820556809774233834122538495309983702049422702571019701631646682734323506987678113316158065402900717843093915814377596278967037646437952777438727513701736297627818127827937967475439377022692632366160644938294597119762194423558492391738544423936285936826284133498091524017142132820977069733138190315946026068368990314087537022650819013240104520262844012575682934728695241682313360812815332367977093470592933530619567436761827269026796109771406848506530227493165223203131509245883759962485474590652175288046581417165470033059519653911978281414615753215009015161839174988567698737942962007880603347973654744580991189092173510231903363865940767717377257566117466892898383366458456612587383679235169088739787279293864826514358635866830761886467425847739775249988596446676962859448484176453779025476665927505835181274270993784658108026936175707026584716791702441133717655333413213505244608780015879129062865327185071697828390047311313821122000751224737374906823149862496006657902642199269479726366398229710755851494413913026591777218554306415875954317969164190130399380617412234507905771081311314279647441812901206275594782180541493117376345203608391614753058432066557749432189525799530849074469029962106965235626903078896819443617990453949831105105306881883410619014375762625758114531958827876739517748437148033019302126483270957861301695185806300019340214196502745973669491134677097255985779731113528394590075743788165932837692910453411944661940792968113375901095761370762835357787996485669091467580686018843115838321810605187586946554699156347243912936242655636254569394399177535668783351959243951134951750369803512303747049050167316290731813299290279855348429602569310420205800730172548217755699657616161160562709913629370688345672543859650686024028652757981755126363818472083006553580366550978857771314981423701528545754961357046177845881571805975777944186025173301087942942370529953282058032116494714618931555831185931754160425928479094716038177861156374403081879484905098967101597023576222893774236278427150265485260320973499763742263422558410732438144519313772357124008872874944362443995673179246750500713461786319580305073199466024224098334879914581140133120619923890990038020951503813212171405517045075948675606727944947753031965762563530596581990026649617637507979789699689403614527805430061234674427994605058935724244102494773855049485453368816014873245810892895239435580065152772712754820586198577552117788440910093677391870461650389668896392044100843542709259338401708296201329700993557839245460186843063713325862494625112130731041844352620724563182539493168928040972173056166243761224834859150046357367517879257148105137312710060854800383427353696219090290264155587462793408956914352458717104655964600975513058482197537376789395570131298499572620242402070725977852443954180303751131282670754928887834972796023026325302353642060214479585434801765638407556075721574057645701661268806285797783112175532016158883449510474365141441820377734759669159317584844518742573628037923610605378738754949627363250628819309698735973117511327662756572278190363850671108675305810299560639261546730617399546163088053125184034514606017773821969053855593155707508855144121846155180140309428823027441624413998786944442077530804643904781016652147497179093801156374489803536735759180975920328135470526721534613304735510162911886294223057247848428822579202487567787556795265246441321393505600615562588583878257931988937589531334145992617925814408627295075590266287397268431782190415934144492289774414904846063413326565982113722353695247704359831137448147313956545481263506422639212862254509812306605938042815122081781411760484941353412653315626581966650690576076961110728185117438034803457123413096167362735644021653666409309177869895657558335124290156640887254793096159876551399057278684163991862926879018647416768404703156769298760798285813434232757848482943761051702658914664300695339213000910394329170800572192526992684573688689846110152221786772444535021687783812596819634436461177698606242602159540613920922418797266006031632936464430525182546768900072785065809510737204034860080826292624992217878734505126414543976099596772404065944818608775372661113315882637035567430718227860066153865540428854899244954835736100671089647787736269869889915144619605119332021674684408916349703932149028221152427993734700716547902804747504228989857784058321935438292333597579430725006119420601028896771646894484495226066509796461297991082982243172941655529791619469569346843862920402010068969178225839752435561886091091670685825176903957226101226836542744094917824965045986902806753286199951724023911518865062505239657600676721747120418783287722785158732517502929559351947162295020527028516663446109398599146383759486134993044891537990641592923148915402232551205278268125513643350371495780275726680145648212416848220008509178245023609974838800000699873412346949422530607716862515718192882246997352493796300787335184127444600001221631299721202758176383539521925009409174881065736534011683507109950087661093102063823198153511673085450563185746355902296222743995861859410421841960606230006974074277002685436313915596301657268312434153776107006303819641081040152195496360115080134641915152085691782705022731354056798069996706106190455082680530744618968342753997165812457252513600819421975789495170949053699838333061770603777816198907802128977966928083203833980412036799911358067348079290406717555812120854267432996315930062098126955090116064781133844046350822797918325904210902870112237275799220915670352772603989440070580764847901690128989525917620667501249580210988718364758420804575338546859644749259736432454448475940761634060048540714521828713861410103873666828317154510582243830025759538561057771498003347077673617556369759667452964739527363698899406915880496207798240978514032831986919451203403400202414809584745931810690253772435866081534817581708634000089328983907175391101818108680047196960178123548442019296090687803762150446282056330636617736845383251383054534328547428196401806222762179382435731122359208986318911381367493076376004160459439231671467237400318934757171838561749368135243344598862199936530467529378565046105050248011004462969317296688398374730264071011723020131186792248204768249822789398055483737462268993705565712746643906614703924671450494978695796637182201053401724352574508842717599673229669515148317169577150058833741481701642278157711458174292572918508687413031152646014633242572163650472428043640040343616314122545393073944801566836462216422134952096638134452296826227027444856284973846743914527923316652234610397956900154208170357324910180140848686957105067742576428616442105431441277871246853313612950476573876072826418644112970023844763878482022767228402835562378609653315170208992619861683182481202222060794374496516164795740283214436232148908466037418204914106552474250521097596736513051100136916226256862970030333441537493704130220691497139184466364636856759926943543152673193801049431818362269453501662442167421011628813172978584481864112950195493427909946310229132951966785376607462097499510117563472411021568650864363450987648046328598920473669746388063291345647813627971567362583374372349994432231056191476268227311710413824605446034764553781121117381572520698330550940040510953312651809070200692508704185396431785147844915030119389282405609758993185709587398629238972598967673941851832009906611372496700957709701353009214963426973365926259995637348143704556910902643153488047173608103236049954531499739138111693437876187724279976782664858512108682327865008116739422087222761880966918186818051093430052667662346721525651530053070690835712920770315987648064063613308063544719473103312540758522994142091313587181008556844303474994898119215041949872399960442086032654898298222635685247125264902843319788826099369351144400844712662385691763675817758575346367938605853694475219448239490345777835517172604376143035228730177866028040486285316788761145992702766133523488893751491657474408527411434278579257946944680329479418909429241640364135895532147406861162308966782843795848472820063862873030806357275435750512591091657158160771980456314880727842094848147074436501177475447106583361562532091850908719482831664660483614674601552993454124043438505013240943698454488836318607427208348514902294096373677785586944440779472420106618748732045993008427735843435999758266449419694790984871721632463433992255458960281343446874882692034540447197479809703460989767852225894416240164744828730492730109214729819053604612813920416105451634347066896154828652198695307410633228893672617863919390827232574975290405346304812733470177319364438954782637822967272663992764993605337321763838966108506201981947296406386707730496936687955359305256088463459440060806650645905076392186582264224209143379838110131160324550784335936794901657222613492163484168228434861261123306353276228269641263811002065254757280038103802847807518584982074350127131811176901843523003776468857916772849986285248159735383271815825739072839100117963460757193982880239583608148242561120165643211596925644692731272669261181695794688097687103624906926197512311807463603795916050212448906633883162706655755370862822752505617474176077027322817673274023397700188909963495247051860344218248946560246100093365686869797386099081017950731157204843826567689569604958110872582381138016156463291945217500096007917181869956977284132167023015450735502361122384272171106706964116472802087445550009167918904059460224503282235746136405093717030547390271143347082418865021151960260041359545572336407044406088859656979366823749754554952477442152741750071391814927115122065112199482851952969767038939297983325774400382207418944401564812774691596589006824377262005863517881699469422751883285681368473917491562689676418803376276856825800908019304483400700316992999755243207130028652201547436458828686487923218659039064353419495977138086254959795684737841747823477267462312587893246291306597876747294740804554579755584947573637846684018668995376023212692470190064137304265965905599863151467490771795992092492799959668777791971531503244080937032131544926690682425187675389686662940149973054287234149354803311971116638090203029431892706182854127304025432603424976626492749585928147702509220990138650578883053551186434357186929131169594278948417682768028409741756956003670070874554300253868640579204719495945532036552308896997850615768197216215481463885415809085513937641938420200703732328464470065332713543736649614891804972309131517973014183238400519831184192185266273512276213382647725161940024230313297794710780197971892830352260231013318583013136917739410973948587900228458105924728196892129039243101161157274157125271556228563235688507501849952020707337914885389169365291417851843917717996707528569098313845704782152471708506094202698513122265910055640661138148351918155347233233284684093394085092899349507430800429704596100767047631547068683654226021633266976204337803013338542798884579756025927376850856188642510636822826628067700026826447212638032318663431852070418106254898019518550741520034266948596163094189508788875941809211997065080332409754241227329704468709824848432780111021624594778442841993047849107469297024894438512685621836889121229420524498844651311985944306083286273471616017207085356621651013882472034039966740920509012487251686220452109907233524299850381706080975119514360856383363298603639796215711759080952578542498532231585184811214782851483288091714248864584851831730074373659238278510306970467597398784389475065632739920996416358090882430090317363112867434197516306600079838389826791696980571409764140275972318090398950774640442175040789101003906567346413658512278149709704322395231094632543018743478191084001768922045874883970344484480473177649431578594544445797712194748645917066873880278207895882460220887546762270433405883627664807933066250095336573885726184612659072644099175992279583041686804941619005709753176901333097030700687550892058270327429008581886552727325798814176865116822519961231211715555555248712553745467272553453466347578686179189895946078167121644010648108807541510138050466166139890058194875025338046590440755134166791155269020741184880429073722340303721180609052987909498872636241430061442707330914086161224639244441441912323317166796155418375333494183791910571099488409959241145922150096527489600925358206129287318062179112888576604589130630324711492099341938426471842283449053535376583096954534629635836133693875266776705178455434664393329306883428493354398007918569314840889284217079699905798868880089407043671553649225329818328242734115550297911136151661422024558861398462005166676208660714877535815518868814155608548168679269979061747070022397854704889237062270683159610913855077500021094758869016824879219660272482270589238396946434597292653323335146225272216375137053732018002637907298665663469584878165045716278424509770687773638912841473723778146958528810706932755170521385230589919516102747392096434631558667007598074645407624876189680790113562851004634410632859532179201790996816086793535668822534247934738453769266920523420294070739193629568574810095440393651382248312936999081775086717016496904631778166593806770452544426631253871219335752164407411738020999937740463164490016545635796402890958297989547640713443004766778348916150736823616815434169822227308442670642829483478226610182022865367431798443195153120139838381193126491596726005862120433807495644274817575861485476469203578295457651511736103294377233703366554970091323716536987981512786278566761965488939954991967273891923213743626554314943273604430657168293812156109802041967702460761839401782031115987805743023889287905082639440907307961675800016995963131090607603815297990335441906828144174860328180752061392095886997907233719980271853826420174546124970021860291238826231383995993587715602067328630545102079448181978594035580018693351486201088318812844827254610960478157755235242570469889663510148003486753462535725265341788289188941171581798743932052099129235231759655472920727090439410911277645993345411820532386013688200250186698708683306320556629840768647074028538065534521989388391679467751272698192628101799131179533765892859462226012977110186195598917232658485466495949047249000257088719950115368313625641120812046597959306963941845315024941894794118036649865768576433341217248999933577362599577695820869280167089759538522600935402775842853973413186649862559816033579193379770429127507154300098964630314455070495696767667328578480559485177552639403494670937143959043316694951166228426128501467521132131647647788170822667628623269753366187817334755858416046306784024295655849205584029477949949422322811731010134310933869270452148756961383505951191532750073421554878350273874049589685922938974520055335133544224475915628163127940489148759448082075403389073894036745762102814707279878600937902699630113722793648452276712176371009190505756975687016441631427416768479069726377447581238734363621141891541226502289184387751389105033322702359427966930267305263808288145614673699180258576187754509739360366993564557185222845487625988883592195003070535572552245330118416799326726081645134479280014687801898100110544816641126763132882942439200545219704252362408360350858738665579949386494483384728952908405736340686056364346433767626720184298579599702784591179920690774935842370281433523337105051017465526417551521783204264607358451372289044789780192708250144605123040570847362393218975056270776771007862723306232540067723108382827581927818259267533950611907543137869349180572471732753348327919195859080855887737768331590229398487598130465195898592916134557807897663848350273568944598358310706698156455750218263983450403515223884882703219720403843658452934028733682064336663192768077974761012380877615464967949623604079392815681221720667541962920813168239274106856214162704773991949092429643960146465716774994279348725957445993765214173202027291188459734645253978159618870164865035158380834953578584246146765935592865687574095227185311989888946275168718620682898390461885931407502288026158443069612726399275076166598968429354953275514179208881897374590633845011270498999251675058513849454039942601792859326919589926873312456552694681417263810497719668317470113170512334954111080410961040052850196445444448577280182760323059813748358575699816018595683054557480423132863550802435490138461281121633433957921840998753941322750311714047678659331821593848897661012301982057532176612292723362836058037563626566539369025769573227204174332030217350618357594480111233258492597716274816599462201381452963439609037615654352538819454084613209457642216113240837317254438467609062634324154754377712563772617797040612074534742784246552395949209494468317967844582600114139475015443693885396365011454997975386771411745481012148731654055229190588398265214381959880415035407833818277278702766673986186430286790126561903604349452738647892149557694792975612832990209528695826759939451459569660754046135399295403560456414726750642798582053783944617565257850943767926029381914528721138773892840450396684903311140243077310976446203536006632846044301010326530222874794755451334988898219350115851222068144901287221863665256457656695319131848371714239954096957206131306068219364287232706886067553466655155312526983775032365010428764334227269716812735266718124271230151239481472819004503739613234303780563122151983698038693333371164491196156162173460328020246342638709583238644581617888550715449730447269630520787544429937903069274221353014190920126190223398411977992739831736851538555818889295837774353021794006430718085056857132653704471316478460375185515775025891494868959434414249016689334234132671356950219704266786285744034199433295887153930532058355651353429268567295851645208509695017228185131387184416113812422004244768445422852814155539448172468899746741218625182277850526075921470929316695098628199376965407389032373013435758636882723705713047669969567987424820163870103216419091158442318038260061617396521307231797913886177808567921064593505621866328733899361111328578845855397515026968068799349215637140130693196343237913326962208346319771308852298202576189845108857542296166993607125355601112997067308725462874878178554326368875038668123056387019440801117077532283203999684134385963898491049130711089289706797424611372460984922916568691124030870793135650643668477784468740473473058167678526649433767206989915774549036874224801693924946910782670151458349893613096079524427781143530221496786938516973773459956446786598597861136286808656820519780329964929174685344289751909621271051858193659409833271635151635334290927449042599901087881231165835020211668446939404809420427244133470278633511314490487829581223652325276038500997102863381949959067636939392287680597081910871679344448049117328513739100389599305607474162715895952151910014756713681633206163141391942400175132067688316062480831395568662614582128160954055410170071104309954058112612726414858196145089332709534738412331612998112678924305177875558165024018271770004372748638999242727059505789604124956232683339536656992077579746456279908318291397570412483695193927467127471435421069199979925027601299126002598899228978013780022547073624222750407049755180025078028391557054153763787206090735738497898773396054928273086348661609694612371360762153636947647175607578338358626731258841202517166705070128907754750581367592348550083785364576326966309832926125210351351549436413398755154439743192467437939715183924656069846818121759557447289606250305516253950149623841479231790765140324623569330307119946503730448894061325118428487519869743647376501191862296918432838180559073622804051964920495768990802552843138643677838142479197834512135425631933423028975140935784998423987204073864280101463804648454746932125451008720855743081216907808380731066269215779635321776734895937725596122046415326500893556465870230914090956198635818513827933192753727924336724201540999965474423508684525861479794901964768153219234425682874624666569897132850013234178840519431788737242877350944832409663917673474109208424879888378922981179805538486116276470615523974512239604901436246424298324770243358240879185808671709903341571578809069269966775662479029877507452734872368496125691646150257658106823646765103433532657309209971463367010108100167290552082848960726711953388737136494386723001045671827630605120238144004125299050041478675111837908784700705117337157907802874326855100872426913917050950683014649474680180539733038672076719968356916977205002655328536462052063127459096595891780916500017738004560451649764869027032581617058724587903247602105818675074447546255445897874477846711859159865331014118453911375918528761290589623207310793466619543415949347759827197641388403874278542253105145017442772404274497634807869286192907805896755771103121844055126792588945543477631819396671303328691369216919493860883672361559832873397850980536996249707023943537970249301626069742501674516533109022831084837969348307019062289843864454877937419890789530548115481205272503242747511207846673679417203761612758951569808157080180791292898109075923810331933286878999540905021223098780745832811249967533675054501312622310076345361762743589393164743805613875881073800646518496390610963262744064016966406193427142508445662312443699178335929322237592638340926889549478468292660005346026678481527314126554240531662273848906767834968350424818085806858931161340492149206618497328562809551634964493975326802986626691308557431172795709956371729908475687307860509906165108394858959248841663650140443341100292308792282845729282194087853221840647390413179565272103690283304041034306900493897269933069318707325635756568528093676814428022406724979819438353741498299886087574118863944886647944394485445675441723566022584295390588004047188940777738126541558210412887940591509444987357729671051116629625813958237021675048438730199462549797320178766596346345803491680204681866065472036177315756041664939859244039899273350271452986906360873744240068391271675717413131720199618823591551649950024905395510653294400437148785261900651375737658302657097630612049867831762695411151317436696142970845648206936797668278710917829809180510886334909290888230481710782023197906466519819335859556606513275139283055238299641745241020508855115584916420252753136541723062943853717875680642331574903168294330594369238790464848049659772364844791797588879330637951953326200662821116299556478983116195293996337791750594486288917951789004853336971022401101457378424220596022141603439175446776927656390022360518352883848147936111358663230414512766924155766624242160631522091468209442772752989991621015149688220550369431830703666270638082747804572739670200956603105321939455807672551987100528341628294908823729096734617201044098988535939051102205685963715373948702706481641395425422333108828629715303627668911789964642821567718779713929407479563946795511024667549235326130533556302782649915564541137372418939129389248775132366116255227891481080648216415837642206891435295563547248562625752602508351041752099199486274896530366224511353986276187469771056983028778596084970473184888456523034051559039635968243838158119452917406276180567115976702332594488326151226259559449870023145005342112698119430776839542330223812633131535492978875262971485534477771065734374065955693612908134803122073424159966387952445651366180826366686296293494691934332159937199980593787160710575747894934612473976761291980220600599425164435900787272021813286832074584687479343572284636230698048371697125304932593270075667481019401989952217065927821824066296405188645802992136732704290176608356036459408577142065195612763873044295618630011945443547441407173057609224073547593668779213228796596392594671903138607060261852461516039880452877557189225027963623652542344029559830111815957403327118144321118561561281154146946124539635066570393556083965590614367986384688137698078159094409261051345150772953765081382099180770543950048697594526560946601067366266177551373185212821259198245320958993915238269238413848088376315376331549511115362869971510555307908267895336866721548918443980860028888637340387747074092551116720504090137954054986526637256231886648688691698784570093824047298184595309013389224942704353736199225028372837219565048642452917507406790164516972853392884108671976696293842545543452843943673726419130830735508611215736267306027760042555673055380290946061192154282944161656659970867123202654675794367314536004724071337048092124890867776319843752845332866311730694967171867210034604675181989019935811509243205274308196681152667565477530310454885755303402797998121153610096226445289078446389377323919577312905697685618543509712865271068467692092576572293806249148922074033314288166138217725868252176014312691957477671638140061049892352638150110305738954961283023476621123707149383384050585970609326960919442154404601331887222727080877860687248427142728582779379125163231000288511304693775687656338210946634797247515178678185741959799384714856440238763145820217502123298280943432194783141177975609430821521477886399288394266765398887292838401621786485027418182619237236475309935837103585857408001246144719803633500828554156449114889115179478689764499618157373460039415812700443099014221562546886062491755187715197132786274051236484433130111944531849039495470960295242821293224485202549902385275863260164697352650898183370193203562851137035801104734879845546486578939809709782438509413661718411441237231766638402483621551666307144213695147464125474840484700819948101110104460101995304022142649408302238287750517838220100050294687409184425868678366408265819621986806191877161934148635498053144764793618818634577088659157620746490930341301920173090076293239833582043821478809091400865698979154200132873093379421400974985270173240770601858470947051935822205842629784509173456874047557039641098304417104960679860894421786594075442185886113498296306078425505329588528630413702156464309656966784016544676356402931477402381461023828580046183232273785807015727264518941652249144970147744715074215134756043508607563427496280794363969137117418488032335904641075312560570410745700876696324973078538785143915193996665179467000165073451214370900407925268270016995265451561540148334177772574878205452013834430320633315203858689979198917374956974897014580200817606697200357721622678477022272625492878715519898570448868910360408608914735716736795492711220447031638593378143969197857125060817571877861921635294621373318311025280931598230087712081181942219167444322759819815345412544754219863469488997397103293551025654403120263426860487140229704765238957466594670586239561076812368822556511802002754260936823673151258901951696924384686271856828752903911558584480260026354185566830245938081862922126425681608146257338419580991039066238225400126443835009272737692655660488189971802044929024266704369779266300468251828444301518685596698059267637689576873492574237928284624365776460797645916125783729458917783958545410459645849855037102833708914305079607623851829290376565064564721823533626717049244456771183755264355200978472175383596503669317267011053877850283103443180338283202114265159946832324573523117577026725239565148792161042188712117417233973446161012569556082010133432570849275694087117920267037197306616808239419676298242114417001312666775760554537064309197394161167813966042045671096286851859572148854548377228319483469527070699768298500856287780950503749937253870698062655501795689184576491697562771425252649282020395926887623518067459889095777539893780404632937813659732847852899227233712293483517080569516053388478388252833670407001163673072049295966574971809697649214423481880802859443384712832690784710630274281065099930605443162739183553357240762125956696998704151769940371462825001606719548007570771151175233682598105630872170015393916896539636939976545252561782439277123089270684952523393020482899520539731143356789343618377065138074361308623282408487737893854539138252996813035171981442341208298738853659797870958318896119572264046461551721299059463042236702772413309881270463456975509501575131666409730537548971313135228489390416551527322938481186075773561425153004088514566381011215790136772400976177623555001085524721679577064274424697046860660745017821949940557806851243756718762857856088682357706615973752914532529017895668888409848088046825529034249208778753105050266157779750780686819192916061121025211919237283080314863126414065669631692636199750786172613336076415125498430552314420827071402525533430104688152889540021337299668096697748159304790547261442861754276147604279638006447486528438797780211709363851230804529971094985262051026177767407030565493318599935378766106547562221341913341799580011042599060273997223952412681503828274760322122140612491129677208743631603235801011737389466291741871585305550381234279319363449373742125091297807921945063815066201464747882225670560644573102884669997778836889603393689706860491379508919915231043889474037420370029273194029574246882014519874750680121528271929890284059426172099739943222702137283541279512834881457627827071473327911715795223138053711888701982898607976804450344602678137658199265169913991236072468749297373127787688448882872962528978244055796033585161184810811547193333982692524835120313348523147637284423908070020721951955173468050207465845501382478713870338072721154165779014977373657877234615379065735084721304654759081250791069791785632190116093680635617791871354942351420749062688068103031725365635405040073454831925451190094034901218107148497571660659462635248716075604852969767059801713290637882631678439950878066007572790190047871887247163994370379570793124256146652079238531550838363387848254639049875693832287260963393691522407693882312446890474240245983351073683236407612216081575180241221612965502774285057650438068624312853546666844376131376586908961942627103673524830484954929714922681087808442040194110741165259413918859600898930315733658791505175864178883623714568856146828837150621969705462520550044445007091478775448058795568996314578824213135861999311269754738892633553533161068473627303199403247662238306239215006510524195541229066164229808959176661576935527168010424338440724369999061225185632073931880024675551737483869764364954759800454146337018307015960081497782143776228146077152915996190335878516742464195966292768141790837045246931361911399607347654162402599623238696948782847743699974810475259944260658421492137709684512956677004882485548865104035073224006688761280078178520548419678722188816086265298504427353350172428399317626301788131804112591285188995601840450282455701650609273297953479513329784698993404760682551318359592654917417859170857303143775980261843313092167725450502742173636434496871159714604477325452508035317265573619652653864480413488215610441281991960495151023810329789117466895498203418162300593866976551563671390121465191335493947102534553914474333161064466294008995850313076737155197220492037034072076237405143513523080667658112133120539680252479700314687871850754277861186155939285806301519201930307648842497132386268338784898748285920156628576298044654039808202955879506831350608629592571033138856537579700786686395370043120996010413471759436880178383684307991988827681679993569429944153599679935432799447667814889802196141147015007234869447710818168876402467038351207987392781288501425746036571026026335468743031640979604895372510956251309245436018764891055555920046653128039051623400208170958782473383768252360199370632930249434757649188108809880731347998915992726609496851567998124501098816441718810843541675793025952969367080188153604094980643517216066963062855852599799395727995216854192047685711443999556567038118659748439257436887596531706229769404334656221696714331937716679220545847817711300784289115173721137329984364251478226058953407397659520847245511081406527590096988589467714005759264620805474527218231277095829717771992652649798791878973053461277733298771428913694356119583466190385659424658094816160351083020472040741475137325344904883880809855346460554870195649062432761017974017737220497464336782578278823249820397006365032188640659897571560587889243117110204354922087511121572114511624772516784615843328480712269270690047970238610248694938863892104066796163914736529944823463473992125241893631459653194394340205420351984289331217467624885982727405310336834570635816302003983172577279694290533565647305827815684279408503117483619491754237438384791913366616729789103576007695152077295084078841490035518651027471405502263134029410457077943234567421414545545030340573963354170410320693134576663382990793578336442287553665842546667958021533012796805018657120721657373021654060557304798062651664445132467466937240666341916226362874649658264504868155690172837807844772315920387254831366173768750518525630743820913952179929418280773304919662598197748109512817804837787545197823225232282535706096509367908407561956248310579654747486534372445650072745262571817938373496625429759480158071862213813378324393171354045971109979616873497672351544502441582093507245533662009543623930514140784463259184179567651778017935823536913634576325247051191248813979056806978348340998870759422073957196110826110023103808567858797141513498659536538675911956932589655012834188200356381505081936345806407743719925258180152151793749220974455739488037720323964534166648506834720293011661572706618090343981009651762214258509538852021319986398881800092600529994232705230556750503346127840735203371789669062350452977380433630096226195885303869422512190422631621383090527095885596791886587814088843834803915751016962273989387414210452908919454178211476512737358479612351284009052286004716549388385255540291295825147958832966259752723330571589807344974639871592622873454356192561562402583421754243819871773257793290770170564496803910348429393457505431905984232023086660500562118416715070007836406645652539328454844537305956719969595942586257524814299207110926600655387297751509340680349251448020376078566203310697697081223693201530150191194659801297107219568182393086602904957507587062533037788316837298822054825275692760978723159339143690348091127477082992051217403167910524284724930995479867403274374285932749327558344725049679219705589091521871354583863961148629525238574431947902370165994609151006549984883423322049638586999694074215496900293649761298466448455569130692545828409849281057262639742686362538836422343723568322551828603205510522217835936934556680619347578226839563691660697601534257428987195516332077531319146966951097994607725194148286051955694589810545816773843512117583341134382788158770526285728009244508682711120821631497111267731254416097096140801269974023316883601484637116704199742866135546561081705913540278831798655017124649014321017233393220456014331066357513504846767833716264981626795294418114880565710275209530496664122047577889824842060876492500359359407745685507859470735098418528838872571688015751225444189142821329504772022508364700861765315664967324897530466427635099090882670864737819601837065632220899736956242727524213829415395514078079853165369646824928603413096565798348716727716582475046326734944872742153583557704471436867422671193453015279837447769946120664035065030278528827518168135676866885661761060037917712598119902860397519715864099844069981833501713409248555305028629980544398210581980660181089698980247982549224810010275565629752701802329624567408421334229336607746888379030602644010524508590565109545422601835700433080726032184470082460395779119709102377258317786726632940049473859810607417484026661536951604269819227692088984647410776690304635257527077911252336630391461846303652119956563003785454581541851595155285262963075940588390461098767699260465042125269879557515871992412429844785364451327161995923551873150809604868955487322853571687807347376312609144074976417402469198310611640323046197971049621205355319944102326200858757110824519601188270730720665369762104818837543712319764667529172890703887614509086032620724129376964251170330203185012218858244729101159350344306286707682239740730850146445116946186305569959256623287808203805424381260619997378156492626262475654644893484351079017235175509555427917747882684497669621420342697132590302047976795471729432670393449688455929337691988558289793850117540959049814887688793318796916820559818286394018783143963835412955042245791583814627280820732843232697740413938053616595826294221339787197748077582325491197362723443093300072662597488695859866095371936761581243514267710650477586617980928163569830000423500475561785548912162969437665428320061117003239661478098556062646971135184384776251464243612252338094197552622354219352089126663860302774991301226997299486232475240073170953501073121988045318211469037304436501437711623828352683128005842444477812194000724275752803612192971350377541526288453981140945068394204230963256195931007168312903093357890469309555792180052762147886718923285090608876708411272996304540078001889820120880568174450550952900230597345571552250282463133461573073081581018995956518543243275599045647433317807522250658100847576979213696216529513402763053580977240157213658331126991895182961143367420205102481870633414090188565255577418002831001087712298244441598472617225353927535836830198524217214676287884655112106309052770181832051125291582765764435076588801388711544157032400692314704323614528264205870242227035298511908504205936654446726586764548910640699588819063851500609225397299516166408389996550167878366798151721964234386132909535666911886437358477286297069218471266384183357823025165456307337674265770852366308588259340627601091528838720668718154640576015111475541627898086982893940247427171901934723949549286772169050720463359139655434402424184656740667262365798990090371356820295439714640050805873996185860778628422121232729488770134834949962185613057620602385263247159645037363964613828471583248263756321760735436693046105267707532058844764924780347882308728184306495594014448596641187570709755566212303164968914521089660544743633856960180169914942727547351710071709408250543762360652170469827567233132566031129452216823520767378899646120135997723414983739364218451022632141888871620220457361389495617423995710854510337729629380930019509677352289982802115934665450584280415390575223588666138273485606173809707007474257196851519434263064736666079200369720311475090703403625321764309479806970884574262991760600551453233732991902267515798734323888495803721183765253802240236058761199856825587923304185390513992680737747878816962501452847363756113432940529619738226519580486907270668707600423631370713668488047673974219604503503179152496507271639753244954603466275784299824684187022031214949662182602773236953087896681047525924342575419856781882352413179745934199765984518064089038551112562931864610196311671187700286947971205822856653413702290441533377144957832454899570233732877500751664617818915191384823347977393868222814938480422571737200259250543989972351860332758018296090046057875392191769786656740636075322637759309089190661216274754915533296951174781126443045277753161603869513012978172314556720894200251440667876651176633478235223660734821042073212448495455788026835782240086089340954352041646074025788363408193106076359736415201773070341421546104827935032190864710917301742982021904756055297008046180371401146633398577510375217582205735332429872428449836284013630974308063302686703545806808933001446976457412111371215122096284390137273435744598222476263299007754591016857813673186449140513981917225858964713642676793408767595040873391190473755127141357605044982385706638581012597142725302789456439437604428669554198271036368904991549942322978675871057597661190336205648381729506629344364535066059630883605798537389627277679745948966377381238542442763291450820297984213159801349991613770068212975658825084259288386305898540901844619857959261829630125000793746923156018579282788875531628784219533545156656637919203151719396004811197303528500717443038318354553324303367115459131258631369166035836477930175160229390462261612310198924385939292014172094469840982460882788054058433247102602774062824925467596153974388083243270406005029440510620364661692677529403035146314491878464367953680560340818419700268420998837346828434213525051321873179395172595306046862155808224400632545226301115027004926765082196412336446262909717861089208047601479716698166375286980221296471638784949143898998735194050551018661798698793160549629522163528163827951258880101997306905516655857912625410548729487379441379674421282633750413224330067774966294060878658865756953323659251169871949593415635045164455170853982826025503804616827854474046054779670518263409548888520820832130926457751934486394882118273111708403680112450779868490381197827588279640082517890603320453320458068253195634845299590943762542451959668373473199756807001480033750200656857490672080509452365017554763970968732512122088997817482266554119400415142821551310749509424239925145372627835300287954733457114105547037382265151892803963756990790420641480148648346792521805747350857784549653632837798609132084957498288190292956786841589997645477400225654420463488357445813538882523203064549465239967720831295653273191764658431238003891296762021951478270883186824879682568361929948512784747468400699550255670539420355851259631504817987190557146482824116741331927774490479075286363314794761897259481062683390508539664975500491565402094401109408476646788017953398251861949154757686364301811031733362949167278292783551805923406161545202431535720542851555139838900783536649559651775308567079335013378467528005399810294871578186665427198126118182210086276574609214918328939754470459335411541858457055959286685178719040388914231802937443771567001812852232566813577073756469227290535969976140441988789825975355294223198618495895289213242516946560589607989572587217036140285419463002411014781256658019903403319857887389915432365815969703360019200969877431776374557999730554463601902017901926175782045508727320681967140522303353299652781230627516067496904032362504154952045351701166379324837243911191177785937690413381863134646906413343065670417043316077988436529070606129713561981536171098571017700995204357330267967273833406187064361537780307153333535175411166397842886811132076053559598157687954038927961016871043513597388454567838892628257118774693466056807835871587341763926214264816549647582866719351265626597899002103741923224907683405077139751745712728255123723531659176199644570791879947857893360028450609905519577595954294555398671021706400799135165747860284467150658586240585557990531154996614847254620989521110866553455654383183790660291152863507251710963251995530541689779069737034681079887313819357226022454379652334735598391986430311822706892668557922825665065629724131066854625457402224167467407642100459206100240490386441736504148177333964945131994573842403103591139423888456474952652755140412554666599666513731828186135782098742097200667927408836679011258333318526304734232485837607675460448022097363858008508417193133649396259634218436331746352064569565462997550441368935924125574357465525688236775069247163250980104296418466871588159303247902281907748833079688254599848201191563510913325020212516653874915832997849617470393847686113749254424542924807849056390586255404322664872989856201770491767389162508172337501315461454038528674627368290840734560558296920886055587081763338648017755415545905478232833601297470059569969540894486078371088681287879864244432278194454885458139007640356344958761019055047662329549540603447986885256476846783157049191594164647745399428815921537170929095556176649715007547465543104400841176815618183211609929541336223005035668133881272510318575188632672334143224069906661560926042036622654965970365958533568813971930046575952703462011528297372830080642736036801378861839440998498257409239844175416092648374876496444367588965381440732215533524946802940134015130373658591651338018080300416294905331273721528222934202454387628650928440540509991796999444674550688514687608493029219613593528921079079925055470636162856493296639012669323754347152403461807755357498281319109781120631035524809472689435819075333203784248463515087345696784317794662438570449181551546919183743560673207206447063821690242293969913876876643452242959895643953256676901825455163364284973290409135380954480889717284169395075558751252871069657041120254420763722427418618174754165340058606752549433501087962247330853028937437120151018706713142416991407759254792347032573802340985590161238856423201964229541367007517434570713411274104102589400209987428125057597013506692877442310788527442910141209530034258132118292237068100110532473296355326625029791224911255160500841061185927949614490326302758708028570143505721251338938125893034193154518006586720804948030475357485523408378229426600968364579206290175391979999666005829158380366219323984562922718327160652149560034971377819731625112263414339065010118022103552419577502353484493193095403254751464389069134772006871418867611573905972930962117541128098846417606446520962852290853323893228804367294185994827956028925447667726949558980884738125871843118343221126469700639892530013715060693545494672705224001003016957556430051005688382967186072193180453067591822975733591885027190250787170731271566994699272209724481879254148181134601230001068619278266014762176630934562297608301970514343483832937938930693885257338802806978907200055433650492964103373568021788212220475276510844800144652602852265756474328587347560584163497537411970301900289622967865630381050684369283227605122742464136362617856971394273258457635134696535330006327407730803882702099701858142322392317062256779113325709094035363801789597291033909950233609886988963125050507805644778120290419487281805174331869903799334463030091196386162528807329487026612727570719926123527284998696802886540537573008929977023046410092674164570749747513085018728084174087616019677704315270393302886482718687915368375521687510249451401378983033106992371904304118044518517194251205947151994568794850311765273241129146792167275601262985125166218313666597403299043853811113012833793438573444382209344980244573229207012206137550528146750377897964295749643011871932720759408549077557952527311864749522683346963457749566659878193562367726445133000243971289200634349299395362353901860278773446599767506396796053696190840255083412580039095498127985959450851578933439249762418170141106249232271847239982819710339461744583362716467194389921076146634686540713202776150296485772082026373038101079915089309869950300500537902325404696264272096582950496047706515635552414552984548079509791660852606539660511361320633477263637905435697695866141383932709757471935507370838299267267185973343759759968657130186420569163955561294300274330142937998046996663111748524421945964805149553270625948021153416962489838914197067974790957061625773028999875921069785453933445525549892731223579793369367649308336812088785239791800465390664397984301219815842216739206243326480506737956817869033292620032659794545428780330543131889780269446908071059423274138382854302799706719442491874143233155966343668480567786992173065666697179887406825342306564683836296367200274023079117658806509638148636110467396940636146823052777034783330992751777129030059919823459227419515873586501375446787049935120892353579101187148094902658527072612032323380857572418047307825986954853002140297221283978352692036737778165307502920563898603640834182623508731319803405883553873040921884838889461006471720767930556752796168373042462461688271921986635789000443025400605502299374433384015528958128027168905056038291173415369773139775576190140478608765305464003967587474905671396703424794076357670328423408739005268109256797971037208431789340667599512141173282060442126097409619905940529885271029543782476740677437378217824848161480794121534578448344367748803591616013816264115981657437289826990824890013195784322009781299795379905187098721897970855024932056356928400180106608250026336009541136974771710567810419936339209492534708123109189263441567212192511864114193890673614126006308115072856376521739153109498984457987529153951529901378518473247100874806750011361720202899212141053231047572831526616871967964095604887019490552724173873559877278312513114050545517102199076127459939108506312312281197740328341239085148863352263912273895038578951035172333689839390269995455759363967802653033815033194561056149209809022004482185188286436359092163140899682344251677626840530101017188968023934977605157751172272219129571252175424082968317661661483072188541468682798700909022296177676808648866867753844926175251524182148514984704199445322419964550151228995346120864326030355053718792871063822446743538425869677630969126208531288089204794207441267429829290839258718810335625898725039806818032706749901529109315185091005091491643435138185379012798752055512924444435646236618506706700253396987965727112090359265237336830802339779243290560097305228432209399085703942974786191321841695695426648832772589925056598147419817117305905919319502592832591383068392857672699735893843270175411672126574772268333429706678688756536342184488768204571564758003524158900613804252369104483094690784805548042913960332556069650097233305005834192284442076603049119657842647819975653485803967008418632757840007182587335239058571401443866136200370115972976077436329094702727412639477040634320144495511808992732121757656690792672700421744938812172237288914843399387653274393947157420819206744132269436801896480020207391089556629883036817656618698992133159260543432221592467001330786425595953903575519565452028313323256149013550871083656191683007888722331628585410245811811448001497931808841443701322568012541046364504413061325792265812730461701032242720482684927591950894486546989358688354093878136129766785151392558688064832070689663403244951557330662247853919840284304657512377594007266723332406550874741256462364600456378082843068833408440384888005582944516156170820276919562295301790601499748209345716225925587247525436819958060029466247262730900935653064760044033588673485662507228024064606754480683932472746008450193701881288347999426630436020175163402393043716076312358282855670981739066894829328308407476641839701251324604211790961185067593015744212177509433482089766982974099697541767314524057612934804440760661166997896010577529603474528625559177961697380468967805477633045703835853798124092632809858279532336073721664846468060171302867906772866174712256196258310166891394940859399628722978859661048257800500208548257018700601993641686718819794297632956938803657072810060459242201325187712584561858116539765846490766173555688432189048611114333532986385696605042598505559261551111025642885373200342007512293347180593636196755591790217498794473342375004121157926471829877097570797851754894606819520959354945602233889066138982187854553103660461246174335331993382822695085172582973649439256367588801620783064004626706673364149595214302626399039098703973259882332074417250795018998487101293700557269354318534114749332028649935501011089962131235883859804796889872283617150328113767501725675465035597587500878170657686439637218599816922372662860192762246123119374759232410326997052485377114258487961406818757678518100376247973965583241236894644022385172227444729324467770282825334301340982129442555444741558706289862358195400749040510476439104708085884794173580247995830596939907365244359877856955542081265179440917931716875413593303450280945271208941677760204206151358336078772161537195403785517330719818546512070428908860741786792606742507124009799253785525713677045157699215892331501899678180339639006235087257424310607924129502920622165230858251445867472305606561740498671934895920942527316618249180355180574298822350050705719922487164547105193399636274409217242174392097254133754563834284956023332985735276259637938637198014169285429502180698460511724788037529286130259122883545531582897077761008738186631492844908142226384288733957654701992755345241496862280783635719318076839856902353327173188170665507755161717539552673092802100258528546947201714821076041870293348458323690996504289219271038935426860546527677958235221262297750180540579928109920922946187024697956099191245408153515569174048556303661440748383208086592461357638177225649162747842631799053578566778403709203817979757418635442426863770659177143272527885553701263833067609796432762593501392084280032320126928227240132766076661724473274806876324054953011230581467818346231750807907975195846546208680191252545174846359509509897030689243147401225475575665874836853683459749089485107042697097980203438493950946164790383963653169138311893710137284889830429445962607305764147074224878892582021873933073852493702885246641141835523399882250919622989445581907674486855166428848547734967268327229450160500493747116282894293083430530484592169037781454786298509894640903714502208573091920143303180377974279136977429293715935021048691316954506379945168170307564038220293216120168366023677618678448465430603116617339431773041696023766007466794108554500897368622812057888135369124007995611357141901399387548003156140569789320200807725865430040229227286131677857529437887792939380812202074355794381086578507950137954748882476501831224621858594671619926105183259816285445961896334004234284378229425075563587481614790070580780705195298604035702253313199293728354160546897514828952603083648805653654049959779884132723731180576059054736643566981541218133813427399262807925706813793328395438224655522623866957299696366420673462086125072550216030305217183634926701842871310057339905704466794625970817683137502919454326863425572688422702304680281746234954863212062006253240050012934789153408947363972290925985990774367018879780475462654399541652324361071245888173589329494621548395494544372279638184881603059066716688798299336555940192515346751160361262770961069797827934031805074505303192288115501844436584735957877224698252872693573192692100905016890302927451085829066107038338507066086794870022114605616089069278161668093069016013656980359881511328101281335885719304174655362822630259711807264723509476497252074116861445436175947265692351056817845408939294171647566719403935755066686294665844786443041458957258617953777853846121811750491423670138042873859896952332066914870843463269771664741566951098777262518258015036016376856244547451553312849130606934092834038854229615538460648820756306388497822704751407439551006301079643638539556530218012734530544275999243765830999600405799029532255995948799699534567672354054293476527611769065117239263970139441430521700934891830401821589904004137358645354069068066238714223550310919784110753503567367086290097802078819788713881105198273131680948124486201096871166020456375166983454533843658204758788762482747825770882637584943470835967770283858412415017438820522162380259334400810895248375809515288135759267073320168038374395987959625868676787218494877659974472060707245314619663653100737373318541138947912683287811462009235969900241419735064628629533527522940409523197725361819281931501680795233840801932964371099259379232532869882568310106532134922897231913172036539797042173869921999371910849853470301142946391891567103272871504187574980574815160928342869816319690930819598401632820721255125267520541005429736452849696224952367186086878417135595526750625736456490850191275341283617593435132640545524111804777994498052312774457807782517973958283007231969306716945705883581387882846849245010447991720047161337008085996931853885587362965286515525548130824323865795677433795753089652019670992758471418616802407134414685794712504449807739606948953028459198783633015096610548245283208598641196666128743672022152053142371267748322872940243000311430071056928546038819616350459230785612294976768450026512037442140869168929468421065288676981495403965543263968924334601942535074417352240629356859493758419291347358321508441058016630898353485741741189876747291312250741695208756678604116397062231944159201492795071749357872425402303830072000401545327763152124788506818313993566812976189128069977792263558116615866753265413311608123782576192758879725338862076475648344362249448222868474578260145501114370123644821395330575223353394588209590557164504673852165390676530055745463280397116249261485471914307570575867563805444621465348787250714713979652880122616128447448551478612014810338724822875842566363107023016261569077514714886469561632142173225224832658153031030280938853498987952604951368372305169375530502627881414152371509663995966571452890403958340337626529719096758558281125892729604105932106286137868106793912770561517971058225095863513221004476431884574444694557842766526707059842631930308987111840709477832596642052758428381072981178481605711575274910091460982068010020047338854563331601274824428567565469105917178659894573430020603185561364411558264883235515613002491461012518521936827201159819395214467898154215315391030119902303554181693576631822667853629306840661376557066464586353182077302936627412255172000925836378379013131969176329218984832628523098668411587549029965173664782987266457357114493967542256625543160970594528107520621848016532578438840513805537284625273668332940255263512097283142087193604585291136842405681405403972660277827148010265036339310238756514309014770643049062182452340112870541208649912357027916310095828321171490154888713207756279501647568272065126092641742363250634682943505239010328397482197005322432025767013505924009411339984609663760769596088055158156022229545696964875836172151938608452460354363990868971117087651388371663971334348621492428046450668041010154286691634279617560945581759009359480460542806190215704452934452429559630691205581718371908432375754134444081363810681624249318176355844390134067475489092660080223464464278544234542803090871760238928280299988805101860039748516881784753462193125677145164298272402041319946263038131282648323387214461405723721244745653249203360074443495065225879905577457585781483742224036224227420015171192416951904679015690092522676642353770881529858404360767883014440999067602212484041586952816062060876418937452336540355204893273819798642690004254575098249231556214026330837102110128960342805665728259974319666725478373137556477349662311121080867039116475670501540928108649974842917411438309183248479423067055186263132089992473093952277004210482383836689489188320027167089492489267911310697157655880759095351316069800460421944672310268711605555789726624388087684652829151069509376520174406957471805491881171632414920298847306348919350609883396343588441889671726930220974077698411214493734104352725150303636411354314678096790098878274579988381408834789015455694703618857477466824648151579903634394057744991398507893340130569248443208180614748410075435868485545248729389528008122202851139077169805240775485481090509356692167501217122699354540280224112614521273899856968995737193174835563709578067423349014625264356392164762772260326012812773354098449150296437463987395868477315650293633134805990975310443366931369584111931731778253565614802760972629956146740502707993322487695017020384292316186058632758055688460209749385206663489037089782759677259034313997847331955671215625728121760363359109146157577204707080685146477954208580630189853332966979604657814813808373845973257666831892909118063681665012639229266882348897849224145388807684090940326195937262346189192641484265253702984011588994005779044023761338263326273948241665207967487537737032563458794308326390003091566643479805377377206839633212548077525439232568303752746953572172637274815928746956863386577869723487961277659161335599014763210562381390916888261330559960139618636259124664181690181320978987014201232440627855719203638136224626875892023981597398899995904154981804844314688140142014140782770374813389562882535596435916865058670347034597400254965814022320720491818890620140937133100364100760711371425794140941027439794743643370748048291625062174259163691492793623352518010605141640281957746111905303453804906928176236447911639831340655968345562101557149102230609107978132899492913726797541517482031847640170746003328411912539955118184557443419331447299240495960662477758504815761340629051227531249547143874706376572969275061526245478420331538331160501491422874682161305595327466512899538675395125926991933792516053411399628919576122515713455159315243515663484378584935303221727202881054023016538597121121653699125319921534911333879171922626674662233543284420196966885261852908212823629065613405781435732270518857137460902778484525433483620332027062894248433225599217903360824406540054065446342171480700111482395321221850820938728294627027683574536388283700690570591090821064914323793369321668652253456481273669915749149944716091158331497384228227626156505943316615603522775440629260463689948296807823907269643447122596491592212966894555703876382712011897528073836739659379426516807617830435369171823483259866527155090090442189458445473293041870809774635618661627696826563292182168883824884550053318987487799369736864125597679857620063449090571096958299858213978004558286950648843045803576751526973990428913031949025502248889030546990736655851130406228041276405602845591386578010366454269185266734038560256513034274331275761741625668171487880496069731158000497006001552132004730750224962429466203153997822346708101418010132311324579096110112740144841432955261900841945311361059239265207976213831888124157096335112718431991489757691729487948409126829572179749255028575003836589403269195458638224821991163466529570973922806151675094220762337918034724550474627120785982674722277823090030311161128509263638522910903600786242822701877241019865013636882777137525117415098263191107655389899877607449970144021366832659938250510967028070447690399214493524296574364296156846699827315796730290018711925674647035159333487180104773882919813914642404682426811393533457069717815416784241937279651004642683583644612348517263821356031465929660376031335369439294017352154437538606556309009965596639430540836151806062482579978322021989868699533702266787202764475561456405019767251376818704594992554735094933765182424710582150368279831048169247183224029942025299513896754653502534520578786784067256658967741380394825068928577863758772561231182321332056472790802175007561740759089474855015435819786077076263165641692334334245507699724374726671845596870531613247841275752255116114462711102749020547897053393265076602776246583994123089220642085576816263482633216315794494830208115951311237697948427977214065726893551372759457246031122170749022042443530148313717704420898612715325884952539445843039692412286527764046942079240945609661598861114161971070352873273465172368227053413152444911895162175747744581209046645777801910048507126647933252371631713195841762285355208423576606694083710698158153544723097016650976013590311067051368693978566787304408536209233955181061815889710571866723386195719922998545466474202694561938246118923435971392425168915485712276656210828042129925004009830100621563141099120410372409217367943096768798310172095317592680563103798276049883075199009946320142611883584906430714763009664001192925978581744008581542135311265749798085838272590982436390344453708051863454751631360243781929553627635288633128406326972124762991432790560273780531319822421415387289386884204051842967717168031652729091657196639313622986040395536341862430772342017751188542775888564948016422513448295348534302374831154060900194404372253443520119345281195688710936083303882936712140338454084766408178544085126691441040758932746582031478418754746156617443340287027026206505052471710340098017501321858037276550479306954072365614806035777766842903287658062159751808567369057820818258231566714020461810186246452624905189649130059212970346394605515548427475006878691826649112997431359373748166018884139712762014960229692702473358716763566924170764733922863619438006336702507962644234832120541669714598794473194504516443822289967706562082037854358957475804451089014540724513584408708250322109749580318545916404640982873023379438468841358073007934651159995726365353949802475988329813121035394274215048580883954792707733363644034304709053562815363140065332751160415636500850326950952452792807996584650386753732050792188144732893080448299658146970844319691484438956958116982987395998246042554997314776428384495924050631298453416464016416636896504926064882599796132457091135007153645979689007083416193814410074499000690813622550404870687443293108376380972037721113420719785753146549823441946809323597367169680129429741070161892031107764196959415721212270377715679720314143009971144653352001988843240890413909437134702488195747079262992001207277727673643155588105222585491275355008911375568936315241559964364324646238602487656947643166537756428836602060761629066703840146107210432150109717361525543708935318508586997182323520413459627211153853085957795256763241884748308809866415789145068621622081083711477189748761849922589297703933615433934389170386473722695140986675570019600160281368569091927600870119596948707015058795919407317534273941344778564314530909471198209645457720902905799098644001770124476151135958044872734073433499418258874998448965567224569099268460072015851547096998490129954725390928717996929668965833209752507405361088478356085514834783152646291530978357893124537125846298042298648824925426709142485767269507018546141244292499200561506588272941379074750755543089094698485690023730529365910294718760737485888674345496429156296996720788228571067882113232891571157466117040149496876923998975161485283973273670108488236144647798958166087514267660284989046320767758588384328447530578432420254605850847335243383798926705846897207431502649654372489795812241099050002769833075438712856374356010051138204296990394531914715183950450250317614266278775132767580092410738984211616874183635119096436283474813163138342271463283284559566389621618390573673235581777308991364044259376158413763539664120566205802844558358164610023021426334814881937007948684815525169074617709421446491917446622344052863061411858854881539890263246096623677506848187001945614548885014291216045507195546489903299075287226503483172397990315130300941117840265962651824243913951482656994582024272108238018643186400110624140304004490411109979373103864799695330365955733241352645690167309603840715378559472514536514760199857853931423391041906475636943297229654315217570260001746516336316110552654552427682334052025170853900613374831162518817391590233041254575960937749331671924509665537477104083207552591645099327295526741808990619213489234968755351357846714800215143254089587093887415465382160333451375921500039096565854366698512962794567518608392836949646435117768278356035687800008496314939148004197722937228005577924479693800169366751755295842710494103768596997577840199709421047092501379513495566707692119075352687708208633483932884327726541151758827692677468680643242540712882036010234341113030803755189888472916172590721541683956688457070169666271395577861724407163270910993368784916674269564011013806178496785691507671540489950828316343407746394330822531269392598505474411434076831811065630738797278665549157671338853834810697333032004640549858029892097273725575185015647319858203307649905302538698255349073016893571488913248156367305671646797510997771928002626526259066430106179901670039741191161524414442747374655928221809915750381804713850727811367417982209689568649238419546840501366905397418407657994770205893357603989099748200396120585150828471518826384925432501320043945019036199555801399096026562314472085892034770699170560559002236140200641445748422530294320559117473680851482256855095485536828250864727943131527169320960515890444579770162332968197323279193901517841068590998983766669659536351237571115132976358633200723486311660035670306755603967273714961114536759279312492631022541015944359374330924037605180020991545480784039259949594639768402417194268241350790800544072595647014065086965904013159480690507908479757835272354809671700139203784002308210381943672721202030173179913939916563350769182323933607542400921837420246811282973213273383445376843301091415653731052312059921757620059632702937917814779061552548673402588484955668906923199922586534033990093241644807212923684272328865691249696898547720881726459686578819521732839937184549802559372700009424396401486515252438046603621998549340502752473066076266243404314505491843835993595636328692206801044142824971800215631355173794624232077065842956152070381178276212590979310734036893207254605028222085384595664187602132314747332687009437633356776905724016858476740070104624267479791456702232161657500923151486155485964732574151557293527684217012489273651016398151574362706018226593663915759774174776430179107631230236491189600886005716346622022709964294150787420632619151855873800529894857063201533002071191266629006241015738042384650588662190991210391689497231813847090566570867509458610678276139183375708420257261438590687070989688110723221035094297589763672204718571945558216391460544794660347544741945691743743104762857681833782347192390902856649703121342614858100187540634173753782142523847476442785462073488746137454327731809254049124737648153511181250121636906481600467260348367414089616202468307676910185508028770779670871282032354562411075483493879204195818025098022838641216943128688920424557708463505837102613732868799075172180654041440992267172981309089866591414822367574514838814498424501622152015609788847472238613952466542367019198185090124229445196887948955717060043039249110377297179724792845582429274680816686852681184004451874169117132007714295754881803644097119877302524680102209039886275917016942687842520116285597080561251788950638016208928735120860389253247117341419692259913122943329464227757580659068307330733228347513918717364539130551048817362564807147148703270925760834315317356560097488480066272576741005489363337003622076192339276460998290615255039862586409785672369220482194617282292748600521868956492624857091269532051674460433349363249259600140839859776229534670568759384976762818037005261942898071296900440399704771407016304370765035104573738520798404674584170678706671856723393918741820957735922403660883576560751176556765554716079182089737789288072984892138603411359375704916198266902809927105770475276637488375740358896377024887108786129586561394787152502011638780788566859452823228190673858616769137458883537208689723178233182069653489802462775301046218672511570920845237072908469725200690153310148305372241716865213764136014553325202113088115671358221421763480749572915230911964465810435972922162663629443826286780499260517186047540729352141593936604924414016888911864536622317390981230007427836325920129554599680573027646768551707456902320836744972066151476765810965070662804111735558539253047081821140044319597250033573787167931123095110415610614906852959481541089633775357833287769060497258469695431350452376241993918945352480231715325558615608705882832378611744192324684979772709424184178558418705677089147759030569923379191840345919756339508876436016553968285718952772169569605808143222563479024740864333958649433503564972607203663376585289631493209099891175767931120434738412173402704222772065250285991507738654352496195298658825430066745754915479986838909844407425437563432793303337095972928722389220045473058979217993871706120012357611474082875682618402514437259312366806223086930933369141526636941481089181825523937533929134094491077048209874416224762440822624882973503397373942056725008040401884868721419209551819687031205003950378094315956343984472350291697037535704200340682292907834047018147306975784088473787237689979338666325562017367303060064900132068093137557885517648222644764311407241390603241556713214734568387087135084568978940982870492525178066510508272875868885186676689392699505175325651271819444000011382284428386240484275423975450537681899400190663157399705557661951364319412096609528599180790100394098921798588051143153892535253516868295290837805351537392465477059301929499592281079765271796841699025473852018458173695554215565341108372496028734604242586928680486601199852793788932452197938214331878034381151617890837703986196270244501935687219307984732169707487966386558030048977354309206549420755910497334874816827111326312103620243904517234246139869115027594179144559730634520584991799718943736794660628643558231393538299079320900288429607652840607496646681266295768132567350739244064176822272074574719783961567429020225764000021713381446340459293842363457708698184276852280835532058858223201210825854101557166082065529481800619197269243333563246157074634366140908361286432852046185899372593810847158820813175916216731798865621929271433951821664964781602184503409600158620059977809696883529598927996297594252577553516534709571738946777290806489125044582537353448091942649136781159705191817228807372862635401383895650332306446761743373159668657203235855559155884966510907870194041846166246419235791248254682975155919557912732692574158724631618479197899847643623790158923257397089148552378474020402343362878996667932529097999264419240504828216914573140397121087846285028192066263454923885347984897907569832451869029186351799118272292948656963402811574022559480698302923119148311705602974677873203876689827848939493662105101246012783740640624174862846476292614702342946005257882878273122312967218464542134559044783784645519679135682882498858400806931292584368048036468390740291541755032473551771251057128682960514618124609800529736775707028000481184388893663256745901458002507056047363601007275235347836830257166275139483225601203394418390994727841317013707869044896689136393171465569483680821071828835105063098826984332784487975095759262797518263253004263394006521395672045246895346096764059510929169132544503096779329750600483037205293968028426095574665620351123538419343755547266100313797986211502490728594153366596418131631168646417090033260621670998791533140167847029415338216221829483112699552148482892063507078828529492101345244953892315621844147686744253463161130990100407077533273319564086518210101351958600773018030739914279352042715931475031961123585563313310662963280062496132718937172479136981257053923124954801854561180873453686745668375396899198361117557028930744479911282432622082388030638734417219349819995549993400348605909203490112376580213000086377188243450199807817235389051810307947867669443644026775357166029997267806829144570760245344439555570808693322088033919547019731553144088989999814671428881922943797102366355037565185995592157842637121272377678893526976164585961153248419604034318938378702644989591100680504442761053987984394855307662831962044710586309609610911693573341957050676692730661259471702675912568247358304691624042329604477967302888523845846917072101133632987457808794289581762674453889896562946304775991677349355251795186063538638364747255194395552307162555461297861635823075278130161530618423079634438574577962367643371544963150615018782555257637164950152861068273050898004862333929307866373339489940101019849869144853521517767695860258572470062841152841943317288097628857460310871407169265156476323720277351663180842032537935991885869076395988587884079503747156653919904951046813442250151932157247928974134260292541078443658752859317972053145311071197687797203178055792528597031822923359527050389695743850129600814488601632240194536516570012283578439982367882885329689349987804040601686500504037048715543878466554990222573291856746641077054541029941101005711341381044800331849569378683153121655584198146122651084399750792904883195303198888313272269241601372753929087236028730725821157740636387083871506396452782331855312077665793451001829553166489714255595120115478931466751592397410417988623838821922536099348657742123453470296515012232356169383920311725507582297600252327653269231804937816047795623103941218889611030771371473840853528444356789708398015075978369496508121492123775986381617828460813907992965045365262952463707561638902249263981104805896780123881016736982407294832770942529445572915766083200250797372385651249217548665924737505645994214170382998598760148985494169122211302893098060522658350841867841121885073642532434583816678299618908128960874755914912983930906445173998098655320917608464696114411240327133696761680391476344193595226577729049736123442750828454619920981112151237710041296904273568188108691214762224486122328753595183890058537081742048169796834086405040299046322923453690843271145074416556259217757873899288939223338845097726144125444512347011705530383314756013235307988307687973460853601138578849850136933911327734678981319131528834364471187871933126905119720437886798307931115977274836269598611875527179000855101792665803143969508986727296447954077669397461318960663154793666412439756766029639047632864123726834880230185496073389154213279579188099105566455879948733854039028338764286103812759037769301101576125761918621329421052317412770240597813576198148260836210533436560357332511264961349114320463751157147938261472654248449240524045661362251693480332936688223030030989265892887819377790633912521142317397530022019899996703507427389394759715830632085694669053911132907410850806848412174670508617318703797774758737813334484659179638188819291611698605306982037128105465471289560395299094015805468617332805674965100400340115157867609826993098136110445347091749425321778470001170156839757310408251257963309953391660318226505852821665456439817362162534994309248467701185049258834598238623598855216733713625903145546639997080607416476486249114317508466081863461683514478820373470491438622378517192605523794470269327404851658081644388263668433653965656525856841104590282461412567709704887832903986888375071854831734926497173404122511685856766220468139110101640659745012594164254540140857841816632452368604193980259884868489431560614324162156773572739177544361571928424732362092434486398269648784649950090717503046144224665008251257308829200419090486405972460057625939562580048192236890818725529112108418896009959474938468116400810734140276553891691441920218214977734446604944624609726373501071842580214338717854873503091313398037638706871917803347531495265802697256792718804111404081082013180622064061142370412965723812794118667151977991141800325981722136294544722500635875753603176221535030992250527019737303654270834057669068250869239900880807465763419710544565103213567253412187236585313384825163368673111421909002111741512579558399094362467653958909926138812831875172284899053670139011251054860124496445449441401111635310268517934868948427804698903098839395202418115365299127902150716605224594836912171041603803065383034724645128519386563299072461723772413100169072629150107821153945259628377929999099795976765986908055467798369880586718756515194219852530020178099748398936246949328072324261554756217220524537394562244797789878126969547205619418677492944755371433472013603150372087802109850380586738001987979336071253959348415561375170397915497362252932282488133008178627230574053493260957698022313149408239161433565054635996400995094644874933940758978791855725274766990344879456193349144929167475721174025151624406487869483469605515596808390531392102999361029873300249276956063962716480615569235044852340241627816316785153707653731173851158877678841549415686904868864672357763420574430054295923500807170196831358030692323458706019212523036707378859694349689816267850233624113104149599708025814765500937383582731761005301261195327051327308990199014886155411038556891248284289468312001916247381398826871813301366531590309164065425840766452038310335302274684597199690259615087622338557077321521375761280092497213390889001975525779580918193701657098824302011297796869774306788764532439396254141497985925899937692415947410091576228987186673308589795785348993644612241870254411091568757642579590424287736241540305192645208029475613600991618112581557776852266305994806543231705255066170280674682584511122573880810466044073077458302395084000056751271352531048976496957194373499541430578993953687047872997644510165563300562251763557189459557809352519558883875739413221454566066260002817803537121317321247317729609792458179212516123713341995697049306524913042641415914645949937029243137907052675221814458053631727289343491040285734537040028974091657915379406399638568319301200652985756796419075991181216433444364002049175345909942596278843005565511095817754416394150223875989197167752079585852171808981580254620125596421328125542609403265626404029406247368213702561211481955989948373791527693405660961702364121370187305911897081926952763143189082440226221070862334169752294710093319777880068791671474243285789567673015950364137187206798123550953082991028413009502472992329262926865949193105401336945935196823542070118131152136226996470305210996321571664572307298478064884276492601799730111119570066476624520335623694582168462625927773461737906645047923539363253875539611888634975881906162422379825810032120965939735336018165682691640091740032798510914712787018683766990638724402209557243710631609622917376457064206001697885442614512715887309985014906072674652950569748767543235414368003982421925674275589404977947001367403874020663794411488775195774444265289999236925947344393491307110754534107750663702857973976236408301472972227017837656923184584358340493651204833099398871644038314271147977688942475435305433268084917154658838849452369143259867822524042055402168491462603104157279642934152319338235666277898194931686618564514520580766295318755787815944338569325838175954110611730447654247001619761950997053535641989795062399995631317557468226405169452575427206634751255917485635208791533934089988570931413823913933204702217444127762030767832512827781575894067789580235188859808239441372039437151279649786870015380542804244116498067697835941079710559899694512274904678422754122550949095214440275825320630721037753282812621845169814282658431865093580643559053447151846744571633610893865132916609821780678599188890797567238428814214915570898182704577219275649014786845056527364662417637549386664586372459810868694809798632277988517535031923731922490893347532130280654198821454252630294850118681457870753034109870122553262039512020379281370825920213536238947159258773149246450302906024347969605980878413419331380628060841610642924966800671279672503842442156366801479143029996868550772557206159223506771984508007960206466574271079555455856903553313715677558444775614107773050358102573657238533701507208322901581864493371436959746886394344474482488549522743443115278188970127914910073656285994463446187529335524888186107860804431510451896106481376763970803673621215254823060729721491513301495909023737462362850257193643991592807955381424916641522617677172353697637901687117969976651418062737276067596291056573150505803154659087039401931714772582823223026373973256615748693359763163058136381002389369363218250134228774723059581881340851886575841420369269387854555438683056586827113023955206579538775859094399053972237955041365055130690177889794505769241909643296217565756980785052205848422523669315088792351865296105207973184233095055644062616966884860579243904653983865087148664130870053035544213304070415988764701866504243069675671285064957794624366618429265537286048885320047496234421007726850769661928619905806877155764218929697780747062288658302182892034660966997595552807239155538406496111260043202930199062477704582829681227998975734802240340751828701876611197815972132702948533515094645120816365466177855761066382751865000513511954568034142053158436388578293149926993217704287388958285357665902184086989059538675300954664493907944345675699737302848441357206946918100728104441822931583440584934527941706573736410762740621029804814194423593582711561759441186800378689360666667652130182059882777356352463001121147936645653200894147989499362113317527083357961086361786903818878991432790017642952593566573867775124750859337926951510756305339002763649765220479308048236124052287547251285577243977717070777763318168424534194335659878746504533372541681179904930528039461956897997170899194298424409107321157293762199045276217942259997186507236148684050289338385715718196687157899779412182290942492249053772727988650829436858091422759442091653933333259028037731736552124121620560963283567815923275737104940348368139611118967369809247667723112301360193914297643483254085921800403205659554705576713545266702392278954859337063335410683547218857137870406016904333079029099158101375579869310366167375521507446960083276489508360646884720221260464636015712459796804051433947724412485454098357035807574775658695374480153617380309159490077673343026986611238183092641781171285372115453616586048325394718105219425020523431962920303714774682911030660198209813075415386320484064164654361002152813367841549797622259291466316246490330621582704857882553576449989467920001975326984571160198453202345251228348347139893912828118281735455493911135678301143341453580254947402670286738063616366475562463310805570227946345310427456641838632890517637246640144848749831366931727650818023683430625008504901924614229999033227336811186401542459853534708244332945024474482610784126987463930911232238807276647533585228480106053351048246744300854178762165167071136427651465829827287208264666746058378339783260376620835785969928674561869237884942909905851196612229394665669673368846350795272124820229285080030347016304203575273609337413970764794557917474851082934684180125145565958940157479873473545491786662848869077033071720381072287682855025884503412735043065651230708622782384005989693680803469893339437958089695612797145002784458935795639315673617923870359655018067836181853757598351957296864028487036037467528750755910142094709204707663971415395896376937609161018705372996034285043569835201777708690368099029127765612494303715241146763227893002459393903353603041677458949005018717604688339396692096217643993273465899742247928711004493652000847417827544447766837431187742669618013834352597882322116250301617116397124273249556873082762932249739498927488800504152231787858781448728011450669460723634761840862646912062910128585347147483240240736358432464444800438487907647687984532231686085302924020742842561545212937400512137647470737302653187412550823248218036731546375078857888860836709046139643859985398312853535924848656454572185386528911055883382845888012102701307469292074991695667455870036473278092204878357282680249615125616410913957133648632979578081446124245373975751854669026986958747922264773833926552814121925708494344951976598333447018874444242678088053834639410563056105128099899258596404336012510630686322892859952112304099923798740711311692843005326521388104340576401444856331866325711777129360998620722744292076094558799630673981139048892481417785299788214042475622460260926826943341845040139506990148554949378575100926439782840468963612538261189644045651832045259295961760562210540284697555457791498872991139024492535726315044995454362964104677686990730630336064706038553531294590943931696900169504784659057432155934383510176778124561765239437047107590497491268483600863552381817976312095099192463014265998100791935333851529555323969438316949273804121917687712693550313999604894039703862795587364373497278722212201720808892142135080965575846440979902663393608521640602676927430028718661391705258959956863643114134018798682245527494978031763354329254451146100446864556693043822319807531273148570544746461024801871248292194906637811197927839305398127405913303993682574889475660272374979486615561004215447703258210425904107948705682990107448377729554109778573527800267003349194161855690430150571760558487359728422384292562189078463228181690534275421930378680003935822435674510266526291802515419918697945316531763632481569423419069886438400751940511559993257131453046070776687299168093969472119051183430563960050316689957770260344572572986886202706688428952063998999549622404983683339013237624029674617480717257932632277143191686184210545957665563304372468389583811345598308244192022574562511557066037940702643057631550748707641506065550642788119326461649320309018016604048356856013714459570724347681529280171233165485033865483709304485809261628618669912838977082228667142820072725929850175419144417035530909985970687512467374849260210800035559559789342726706947537842515440361020205315527676330964502809234325351555179844766046458190118014365395405349623983607330514743721958122128175474239881505627698376333885990607489050182262348638277208599599989255520782899691295341521365737025312246664129317009570725288643582259373880453208234386563392422431925141685721977425314670470397601285296197873923082012389536650663878374860264971549845498916153687765964426487526933994569339719877857773090334946891180252933800439217850003150927327618463569482478076022819339729181852731402159656560519996500783821122284452185001066137792271362653320248901622895170584325269485063416947471245666415338699584374862717511468469134710053716156486734006797863900578275975850905108779503170124634235422029335427963406819371676170640819186430821561332039084484986812324587767429088360080706611176590765263547400377028057996460311365975708173214324549828123353814108184789899502534277707187451242023009040998785528101595132343539591774945432215050242397529790152823300938771084915816816998113953695105577262462623556837648119376572948729284524749233254255311336360810621336161798713516402055352172209990028526461298088565335048807506408182037935107133415194635689032928711756632014473680712394471228553962846590521008059115383583044100556215336292891877133089569155982742989310282175690612573496320347153699077129945156649727735288722753884523481624468067070073195459304471119927273110186819092695807444102513307494452983598546456838549374265757547867688047007760809604164927315090612169687388591681712439470633293569170096887457499810448083484932663827707608958562813826135871178836056342256402850309920854482819101085477521013012448154874858976040341962892651374078099429672155960469402396194562542869698562089272807463800154367986541750427626084552757449699268624372832377536874661278402145552926582268122082037396881774970733307669803246187645509726067958799101415718349917643262335043928136183937748299486644037463498081357029932300246522689498929700614707921807113232663603238493089751529862587458560329155208642157577225227789946343361774252308212736100865046196023200754801670484175496123802012608698191201499126376323216709958714579256790489188000295267885067792268808118349967893520103264090256087082264717789450588429369881144755886492668436460960041467598394676579508667352652800969492176311893453958557348751177494612677326699248541512066113046113515035239897562765127011259712793564177997133115440528680972727847945533909613076639008327312397716819574839926498650379280578104629387185225458883328962217488921688723821997225354761402213438530749052350362987599785745052029265478051650012762545342284752926072285481951686829573098483637622163990496006196389553884241663192395861255938899000444378807665338094501785325560075379054619837631048719548211772481051861797868179789381156798602415196866980939378446809817149966060919389004556803702156792104059700914396822769500111790049490495541284838532620317019719793975683266013583000828684613693245710728269228153675727828306197184285936787549353151079670994368042514287296073039812737165194339426039886223039713107626421199106377779457401457653008362469798782326608114077844759867822664758886713796135130139196407871480066096970843145720079171372562166767387388366981819002978764661946042314507778702415278004687655236295861726256224037081267027201226868536282736415803540166644582998806770565087525190732059442906022849060364383355533814251544965765364107700128518247990133272640977520528157138148339786193469095810219371930900124140895114925066293553282295528403867462654787335341022963992744795065263790686500946924484992855361750902049596477144007974195832464057577980834759323782805033605298892701139264583000625938461386389640453980915186825152859868359340584645948269773474015520237373006994085107852270001209241726224714828515053718360929643946082941803382686686795958449805353217663079735319937972157735433355322145296834380403092658949721836296944315503023056864453551836824107368657629498135270495151569260047041820373912499883880702890841627597989244710296431490507406867025843448332322570132125042726434322272904620554064857365901109567202680882997779906831052470976330011741224416496727551261742745821527898615946408307325715440354060113866152526896205749377465536274212850543246685660295877013284029221636386701840691951359475386394822578584163686596916439640032387600434582923610759477268997998601275257217642778184288075515021698897025528795685970083969437853100442085664772924950444850546349125923871361779501675080755638867508447919411890653571707187363892489112788807468118175242933592881108686658383422322452787337306196563482939151767687195641155151880804021521116986267318049732265808360624111702122963086212144897691571582756373444890948932182310444329943499280066669588245477720904670065036717496069297036166321686052526466524666424455656014235123653609536376019823950617668922301777779403420800761745633006083317708472306623812491556921922404517295104824649587276383861640173231681892804257283595854484630931912347709425751873127458879853287890214653594447258769581573034745279759816616808546501198932577808880591408910730484690569070282783131454623156625777644885479131163144831030641340242558978365350084273075735102694148320016476527301160140147800096298478575753129803948974789021216319765247328212405040581156780032923170435425531633961595017473812645737738008115609784982009309903976112158008616230696467175873540638107077110505605300905506638358251334802493985770991637735635212635645340804439351180807932901619372975352067250892283101379237870738205987774867201722047256331049251493488525500712421672455240668889107256187175692068419232653495455564563427270521047558244712073254228929170436540985639411990250972820842559995358938190287786124963019267557024667396705774548808232432223454187297066129106408553958158600532908474996048506432121718701036734170431201532076351197358641552231194808012897671240982325243462923446944528788918460240253073907925293059097550886389577418185347209611021118715484255024628543036304902398874798774033758754205474664695168490771783890632450783727217570972904934061726764213607424607450435925322809541158879311447149371675267825310660826016864263363942089316349648715788311021852460253104671884675339056512036294218186979872258525589561467201653028135969922344377979825474912137412700298403468734039908743352788378606754093400062067766773390533524470616938221146785230376267074364683960062072995657113843045137474968915061778518966437114391272762531475204225331129630443823891308937342074546089607234129244435427776376498362307162936315598377336800765596374498901770096413671932606078310002206083310446765895683142502988243575975878024125759567450109923710631449490402204465595029652526854752777788851271046397972738009788199285529710053623395482606553748798862006199418019253900500517866254439188776491556497096527125516990605894673618450717451640986152459702681394507015257449232985390633204486283868072414390674030477848347972892421509370868892557339656579228623684319559554787401365387084091662879165637856729738654242148168010492318789285822733879390987262239717713726796734931174078566956029772281981387867966251861947567535008669495869009479865347311590493773691127513803256539803745543415936137665310013012179203938004212135945125170783476377431958830927435578159387118332152757587132998386190327960454307449763081122316796605367286008195173412389861868746812220621632980271556890304547885407263892346451636426775161756424632815584111861505705763549094964805324500134521234161727001116582738833999151417822979364842995930669264312542948177144122844790149871418888186962562340374327618608009552248694180888268522764853622926664906487126071050856763839151687605634807827191579757698137357665407378873978555807532290613389161019863320192421147943441196990076518753920844198158735869722458956180209505952818674151059963501226335874574444304133581741252065527227295526061796824234955849298764117963123407303712153475522974132272620688652453071836569503795144527064775756264876187874188851898439125084477229883022493250635288391497934848627849379943031742669418959844703934617405941736070891446716587598893782876246857662824671108014258184903952729102846758921557273398636733152567239385897276419923814444567854786641466943878191388435101443048489437994255954129850862842595912194456817579295991381018723103116070898078471495390448584008959191859315786886628828430516416967160567631823239959245590125398874263029940760004469562223794449181549019821914036394480287831410241374139522133999905537924869448252756201541982559659036826382642994827946145191589825602443792964912904593906351586789046031980059898787143320848085842368596486066605199036388574404402249104918521525664468499718125774094397051490780580717454408955982713324973266593010051542415521184509926546552978899772258222649160501822242085254566572314174197034069109410744008333396773267358834281288411639221264620244213830267706283257401820983889398140408773797406376819218083453845054760433175760611752506292835246798424261023905970486883395621874267770240276817532399767062980679599113283556881818988316984277269007284057187726924680747948606698064661046981721778536731590294547598000304693373317088450557439433587164806801263185604582189329360440131643726454090406881150527170922915958420848289194614749490656011401988860164099977035852454303020829384785796490103197244406285787098615657742871322402425595576878058387582868401045413815937287867263021533893698912391445848083330575548360243771911998428798470922687503803694321182452590031002104946971024877137652884483468490224264170511726874852220034785644479591217507275025293587663533912788466099824429338739691657495462326342430566824360562001561395299239636139494385286394275352865039006642523464367213345449292300745963064073843394111257932714157523291969220055290138162455427374306376738933352328788341734530336720645215136527352949920296045164996443418943916978510890312729008516024579403319555534379281144167056550741061255915014136684843440239741769543283192545900600930018197711740946991878799751779634872284834430967323094499258327640355600966130334435673517112840310977042344375161815244736401785900315560562992428752380754732154750094101926807752384581255187942262783594057031226784309860532444416837937089505746771991876770571366366891970625247744378499537816758994036001356656370537576752117185518143156380483419736193400940710866420825075089805350123112312062915102232016281354167570542625647648378761145383316147103096581518228428975578265525950996426632548338729384269411803559862579109630897939955692468905120260618583948833282789565076158980818888353045646045986240853386479348054699692642637778274276258584641720327119001056662555884312390142289245766313400790590185573675515029535095359674239369521208662136103598486241576473079708678624330849416518392310519425357899830630267066439985935288154979520334621804156590968278220049209903527839845244801156938986007167423889535174648747396118026557418584130799717979594170068587992381729952357844543491713251882979323238712528127762941334560997493319859417091704811441285673555353610902819628240329505152561029590198957599603773841842386680727766295192006039400041830245221247810185155898179052678278802499801321738782416306120188363124151914258377510227364735800221215341831747502125094612784566979553486580584635380517870345714771635191725679704266206627598857069342567627500242436505118216205794085940017187020731719199169361673460197146277201726708088052513055278016277605568628273932028770351933044743249243587394455400027548025685360320035240606740705956421595967410175082380991932134829403137198871911326101948125799725364256448177015085912701674674680771475088611089097972966922111623882432338205357757040268963081185866550788897821324458429168174413167980241643771071044039656172007263104377095593350122825740978897568733316843406511577814378230642785339017469026501663941387783781422130774787444964410537582460462785013305614839339248127232037742117665456153305874428965616061123556746597831090182628376062466330251858910132426880380039815856065665376343700314412314861412633248520382807538690307456559142181264883909620571692259218570286164721774450733930193452463752713718950706603344071865034861205803187853025477493936130125237019780917207161866340866816200128869993710172834290940613628028862359947579004700296817008374701486868145165596905745426816357374170170834028684146931996581313341810256031613382554270108430142655388909868492330744955686325155692384623884998748803651387633933560929917895010722488269989415635856214348409264593669479123971112828618297740533481270792170469121446091179637063630580104064970452432561910673297825604985816278013153686931941901843969636602200307535457050512935220881859540536736723168249280583349867737969169684768127462489405863405137126470556164675882871086694989894686031128751726068405456736725723243948238071794401390281856115268738162392767882028553382223946652346414077601712513074635959285128656071910893339887077681830949970448730885389749672516812138742206196266624892340348849078175281481072992924238741246009106229704509794291046006273294831039020992089259625293302311602274727326149563308399580211039543589934935445143837186674290776514665950610506197637361446157260018995650139597996637477575111950599354526986219346381007696323884128343326861792656691485450629136263441535822797618638722637541674456741938564806880689337463845829816895509065890966840369919358494879193828891819461666789481241167749473743228457235753203876263103443975678670981897833963897682151570952248519798929234761743877980905060088743529815812228007959065061205245082678752156964439046339512129641589346914056233581848954885576920509822599284405452363092734827905399337958867435096272534638607849937362576943989298072378076553896002618783471339544353336973186294140607491535817270556274861987177910111028377152228679452606287405497261513497562390408125970044480635454261383239798912354847445579806932035365776442073845272233983757233648735781159212700529357889247778655449412472835864630354838752277075084228092765220307318535863613740329676541756175696210342588506097507696866245985840666637141033624075364852007714232617069168975905565872050156692922873662850791259244821782507773626262294158551053182401050391962770107725947911712055429992105221642393580840040868332493165287091939240002411008070914512464594763608794094547596821045390586730655304577747678031906511994220489141867333789788087806946486778955740742215534476832134579524772101774272052190531962177518231208690935747972025107164522514458475428975079498810774883409880637935995532258177337064293856766221838057893275147842579935517235671358422880511948932122874347629024883580368594207484027183353418574409062217491723179818452892868458653741964953099949817158367595827680877278124239494673150772033837025145185242537595185602290888734060632114461762412269006864532107386436969249405536228693849564164000719074876405761089650964721634310655144724052064567063543376460899050458882540874437478830823111559862735809656007855647206510088109959377905031397936655551841292131996753887713744432832419887024029827914510402917550813650970163468510865272430280161286830629603490310372117748026617022153177260102355038297035787901228479010631532059734760768145206862262626412865670853896160116970417154033094646834571018974586579268191230846426589647077409091947837437035221547851110119151270014895446560704267077351534314811352117968115575942354825808850634171451168815700170544316002352810934344985365007887830507286063559056093849589324793947118718726960589580944277421261651045634390674218394825427057719698193120212423576201162208859723916706505925417114934173386018692633409455346572027191016478157961517048350396699339953966610097479934446830841586437124809950716421028820499215278967718062955911176342108713951451012878592110275321261163585106708724860764729252962754284019569428163422321000390282545024804387882781716877720789932546611081619985510319844827263797227970186770514811933323470115761322404068268054225475138602064319243787637963871659485573028318158652776575188088811781129536428531195169004908450495570833486075927196848641832457887327284111476826412762927862047303585551545320136515184269232853651567988309294916276106654259175924349253957238943499150924113935430375410902629303288726851184462243195766711803329363492581497009552169968026547929356902538865347089508734321490232813430097890212384668820283166123922618365214744388461342011369369222753540080516336643227847252887062595089721105692339431391316594531346795063106268325618175053773706450849867184017112848077109767101829204382909922346976922111575096153160774897894307984119561817158157941377580138285190566495695884416907279198664653230491098219062961968937702307912425983661548287875369272259658291658420789511446434086796591590608490357845879363887367455163477225163855024868889894567302628562914659083522311886144570197945525814784832923284638494123949933151360201105855852136089455024677129934844945689881817296719961116279312235726011424065387776272832994223832258882081168123368378541371454817258363287631234925252533439707906438500467297388904397308647134969404068514228604523729730117235949241052454599614510890541255963803806239574365115322700636669099591273879020570863185163399216351978690461813643183494764365151783857231017238740356850645909158167475308648535113774972470436871793942050975895471929554068949685392866000562448836746853413649908284728061883391917502286776188876781781264030467162067132239043303588500103825788911401991429884447073237252031030738953141152555681158508429766742594336098491415543867446410481594513698063416395490651568519566591256321620711030451020025745709219154621731060620382394712965025931436464798468199198353689688299294143976436606684410959876252679404507763754428649949029041817473400580438680712264865101466804552242515448849127413626839285579321226196254698166871953500156273107484798598263341649886740054831098929800496172807944060901168732803646145862872886018031918983700389641648291102022958703816562897394894531175021819706003087785829201274688936546853404241146962801313795141150154315280758159555678781692298581512528034598660140892054934214183526754013541698361151129715678399017161179164909444849458212802851319442036229056285706469920104802567054117679273613229674175841052427671130161737808617258622198141763400017022985262505158522796372149920466955455963233162246838249761353146583408868824105424827716727716851279080005881146789003869223890534945627251503652882745873723682447122986250726657350999327468267614790438264477826310953942106598795109647374648648754086883006372365415064928738172811472239307829296419558456697643458196686630328029586534631512642668335995216799139112273727919137387068556728388244463579916344155513238816133098250225452687499973490586105299980379938167384024039570566313692335372903750289972935923166501478626287475757443140903972922522033410743233047368781366613757624207200120156105882371594106305265958731783489070427995292629297757936217371598031796888655313036766636645110229070640370561748232944205697919757978962506655671611102724610202702194381359835057115693858001024972914587426160311567487763508951272258871235468055795734382578051751095184391901639435282701339060348214401122503493338593941592904669394154377028323189503594624682711602065210412331852006971882476696923612430599085315703442220233410578755605739708670263695178919438394373506404711084721048848889106878335391333333127616720524824401489583734670048180039601865815763976317238960404224754398210071166152071515524928571123937153315777687605079796964949421919962781400867345141638558301104007779667310349724331307245027437547717340302595287047075879054488033066473424970762653202838984937584498225753517921044588343475273504029263766394427408637073039529071137684926355629318296394969944053387975379241021558565073784006553972863697112988266193587351953541083026090857663781160350896345845887162022244742347435274680350233182853778354384814396984875971337926349771758074189678825016489229507895340758541934376868704794371728022923566357965118390289999561082107162516648932043141053966181931021042336732159586459135833904714950334195580576836951683795282080414551746903390592034254384729854215015582078137646057817032270846942271743627877581027050042786489272416346667079679930135200287475973392830059736141828458341152623463996443722355469595629685365514020665887416864601139660500924931580676664444532756532792468727856613488818404218790363741570337813448459974454536436749736792927295450395356046540135007067378801568716593963961127932291145351129802402372520681713024965900013337913662782908282737113278738766033932747406676753394913517293983174027806029690974539409647785321583411588474675430692699105989946221927137484294219120943836797534158068975603649999787731756573317189751097171679323878783431395636181925042116023899676892575738577900923558770234172653316276924739703984992377024097534450015303861881800284408790683077652071464344956964376806943306212549045325063446557875024068581168356387608122162358534197983414905076478970962388757551900295648961958119184238128596692490317791894384190782054452978690481383915566811212306613505498317075086570585942331405755874445843800053164484020396020909755862840300732109245915441334675425005237099024153743709824539067071621098260690155833366944001441150841991251476699681729005900865643602007097354211155885023700057840913904990464122503950041013619232924217451492614386714279397088350367799823072695598731095790675381448829672393493847694990028839998731530189130700207006466730174518052190556598878686282821670585198949283426181981776841970580605190530749377804127920564443693259461547748077241048322233962084135650746467868863928079693662539689665607944729333042859197410483031611392297324309769418199531188075611002602890953394950058544622714801281438604187850948968908176315816826147504593838246471116794702925827708989795226370997503934007021697948818936700066608765650861065006634486637004518634619606078762342695932502217637426663897177456425373624154283538827997946435858594058921023765095001276841133482698093672134812016219421615321790932041844443458336678525863668420761633282645314941817796149936050240177659558669220242153644714840081134592940611122321469375771273951445805845365083925914774480484109761414911046066065795469602504693673238297504454702275987826819559672839020633760689854912581520340379759672878868110297732178399935731870476380982091983404900633995365544180097201661024209832197553541251879764891452380571195137539086928296948150066856884379124357128551561185820762173351498021679700300330640086702086869390103035196985932637188177782760092578473230510628344539987955854041642436893023107712120678973468513291738714140976504546895947459026318386687841349023945233188214137527418421086088846977599194853481568039066767615881843473284012621058449712040856641898227431466191465560717692190145895555478254044479864826498676072484780472042898910338198720393013536125442388668035192316282546186029864620674744885348452693835944304757464568614562733025423239980483505457349418447867139194979617997692542745893331974591434840373475737801313388968010961021930783441570880380716171907754396967622082117501958162368757182697498936857541585328674647800650224332097590558151106336184534694710718945434451257748958868168268475023418634703140087698808741817136767023949250544820087668513864655638707573448823436369948196871820976978141878470197858728365406265438569415716597808609288761735086371853974236691628121238018625473148303551487533634725468484156039971021990275649926395657587371390936844043517308492028915006834052098226535547072781540124009943363104787712244081242734164362538252194915143072809237845570130679968487953072972320320039936572726719493354586878994282479366677825550246606471181046054671116002707282846847593594099030801208982226787176754540062129443825724936530124193307056104297584433163551343108484765863228965786434083615138841312893430747512901449993194357166071052591907405300227406195647542533271597733519156747185406612914676185819341027827054063938413061722489604824881468025999020727506323246279693712601737935312861552574418305798584005551798539012460059006273821009447275545643406411707137953583918293571425161987936703657191113849729313203696006555582445063387835962372860953671430003535276930728155362761365807449369481292044226547501270048839070612701345966750027971075423461242910584161527955992811309009307556184504036001119559188629571932021065902995637376506493995251519421576099346579473222266546970706948626768031890236561446394594977031125902119386419937056023448674029161289104882996270963982701601696834355831939848934510698638856783350609493149487807048870534851659686742294802085445478697373397928936228231070356979370580723073304028849359894295434523544965468856133313582486747927572993123594050315559642910658855531535638879115416763239370708329391482951358092481329160695914480233538885251403484047699285277046412337777475594142097575071272393328027926413692064660257424189572321267040319635997089933159821078407611002996584364264302997800070905070132063558816876275509033505237963024108772890776315258749633366223579410187542167663524784194886497774012246001445645869291799575702790697623368895346534717378617491800068758225380777009273344912357482740659480361030662411425233226740924933967766323867990901639436117033050878208149108597651191426293064580506679693398455960904557383654663452477548934676540924985530010363891035363813777800781083283843431022490749625233325552276688148182914426849486109060831077925360798498994451970608627404650869966743839081128372848183152238954809322427279952683197381704135003851129683598451612007885869225474716347973876873180502653665795809193490724506172603995238777933785973208297898293406219665441475375279237426090188427131994439038862612226090949635288536153088284826810976155169916737980865588752308003011186969693832560894827386434971495573882285112019727668505466396718390372252163098220331441613186861105146500123139496831820064465250456332442185520217969848933841806037359296576242684500935027725184655779604128462177893731736030231450225626642808113693140672182134690065054774286802659932606374302935719938840293361574346376868869927975079384071885407868434892170086869869824955390923824702990412583627299964905823773664487359960187647689335165059576573983288498163772711565779686893633583232048124013786519115441002347804438371463807534056598349382705194545468137179691982565046644600227158901041625527705639800576338449798892923631628733422769164880368563023470166717121148895850585548629521180895850108398096984349274403924169293834602714414684639418625579761656886125465853154200460913771865040092450860574800888635349773637546294273870033066083613431058214877647130851020729138002782017896704920358511178901110030455068728975479509098721338383345995538748894472090840056217485081400808319668046680471471757716992775727622627599476248421334119507609613142041334914676892068224528756796373093068145755755838781175161756754863570304347631277922126846095293019201309976350202351278673308531713050723732989513353278731572248948330958270129855461177173107964349983645873330437172246519809084667611249448163714438682558612333875116256973608709313139632665196030631650929019498366186501157737153050569787490909383223153362468514889717137855935330763326745616719699925383864303045670376652494638359184247003296672766584929080433493113596647043264486536636897836259105271316831564305558561624956064251252572882658852194727187797268734760548161135130679812317953565181051425250180874190904554259509439169435016772463855253702106557847595495474773581114182630870067767799403532361311573977568318317866557099634540336570812709731939545007593963150227458003170109654398793707870876923292367390842575267045291175617665732070214252807396120913193264263541386860644869704159930716677494357529641362348074312801607867484404624207202645994780136769772384491440753345161470631064805911025905184058743183473010404178813902965239157334792732661843314665539577360720603841532492146012580771991626727304391922894765241207492321764577189443364755807332502046914720578312107444016527110899195914640088978950154767837261602220624338745669014226577223807599162136121297469624207082476331376228116575580654756670775444948457622013409107019290241556373242843224646473368616398337455559552874688333760432026556124229421918018991094012731486859758514318765094557526111604819223440922460926115795588489342610992889588244629090857177884943447769911320491943551759577796275651517605355929725312702501729026286972737617972408809332743806094272729549659848298622323850869301234892686577163896174907795308639149122611173594394784457623555539321457667232887658846255217708857420405196388521692635255415887462138925187580151682308756953948503695540174058535572433060920875195296827094937305407298771078087487679701687557199766364584628259624481501712822964153632989865940531458345513542020455748589742128575591403116799345832742794764781396342953407049351911426766866357818247858892736952416679681571315850014413412688933891053731397096409822905587610703894665168088391796050179143842065479966756039511453274928707244249214499325713453738384030971178891150410677162272338543901948929401395806871322984122472823776998367138082228529409588095056659329057709784791011668004406130165911266857179525864245711747004856643737833096469174267572098343147212899632483253022389117464615395225860797904505085081567393380042758817324090311872614705940636154466699397696049867543435152402701823512436579789574848018181762049198693385595783249568639619911909698564238301094419807342902500535979164714541507007582585783575212591062756523482766647578364812664805097030145558051682105800581321001546205459284512294350152322474740883641676019012526961934525533506581609091273112589762259309048331759598712693038437797664425762687613029103668005514149851241194871879375866962871438608600133074702750922682164189178051138275789631917365412016983403733115352032507412546159954503299154114837939279202862067752065459825092141983497157230325505579338313561650700404873215056965799780732257385626601338568298529575606300927765692685831119625567005579545398500416999041652027420130427691450989301194850327629905875880657467727252647397077150787395824687519527848801605380670885201187929138051739263762921290246122195910735396040349471743907310520858111887145056315519781431974021190728928221152065607785439542872918867610110424431212389606551496032758765796415152234413457117110949793170474631462198841650671336149068331371577703591453558449524967336994065438963649532400693569449567806268388890812231739315257804373092920049176781689269387484585887751056995472237331418366848079142573593567687093191206637589313570709858023653821987787812009080670290989572963615971709436112492232178733767766828612047083898228826418664993783837127558395840066833324683344334554772076907810114181520257421449292610796835344444116556470117840856317536971187910635518984835327127113041760592768727550553714533162401347408065522142550285749737017153875201102725140866882210248260145556774232154043453179829453000023846767772542818040971964363764891899126199498212440689038647965960312747658344019175986389274635115038469795100502270946330660263462615539539036728394200337250673494209426407107039350684510167865518562469257080901081178950169873106673988414058163422990495376354706664951016576877569398708076982219385490492762751774316123731613608355133937803494057316363379573296932438039429833387424443262807873210880250280123249244787444725101082740102810592229582496045526632706873026790662182314350852046764393659287133642291530350037898258322072062345506602501965345724338926973663979522602692879623573298695740836578820022553559025528764075342741545352179284961492614978230708574624730838476693218994636958081774999504489811350087361237038583675930242096031940728949574487282804586467247942322889629479839917827869104047840656479939771509040471418085312088111030461771497503383564583460536776971326957175829965002005928607805724828487244005401375473355231079379628804894228856385825682372854981490398161479698959314930081530804809281407921533511849584602395814452482863508359876268691048906609927652150307935750313000986236727957239307477324637133656646853522822594748030816271163953512620134313815375291558887372983339135196181974634211507613674516333958372518509790125154500324177576896742571874398295518290791999708586462184522139191955216255736652514877566776632318962000190934501855118956417999791550857067150435797711902726035358376796129960148265616609325721516205973237347436252628686344925332277007599279920275490455974882149593785779133641351394530310190808717575155197544970927897716561260654620161486935367058135537793229833283426150216146788872670885729223623326788714070332093843326938315405372126793107590524802916408423353095665708387403864793643853788363250990202411556878233960799077126126308031614316769749302939830187632895388911927892008390125444869640063100714209242615641595756803089663992603545062890157733188636622210020458039932890386681710590161899199407432784752508676882228519595686317678670109205218841545435918077765021124579720496081635661133231998787940175737758059942189284090583828878112877605448359182864105712846534893250243670251752826764716583480062952523109817610215361057939911872730804803322061255641799529317155296406887812119783790871520818310175909211956372308138143624895050482702715366465945753019336707936875239723772333694115703117338122283918916856329733207169325963508693572593381050818952780698172148166949596855788571494355927736905136562903679669628701751845777605467142946079881460623067253039130690547708647084107973660353257409262608381999288866673244730276852131658666204256198617278399752209227315790952542361028618434778439896997073744747445262367301448513694484236614358620428002634303148105970094700979822827438233056748444667085116913879991281875800561288610307195653670159655422280535124459465098950504191210134455569842260723531132046645178354649514939077433191572012347522481950353050349477891503514161467363538591147507766700587789484256035236997053214813007210092735930685008777316018776992932199209250864031990310364254550226684996556907970597525207169542172549761341737783785071543064444729536103178018232174210202084778265622515678582986342367786559806627182251705023371947564897354226968365151379972427798100034092332719643440990834785775036131664691042380165721803025074961702012149896971640673010041543118071106134616588985986113818262921095779229258491790320356831908380939397141900428943814008915310615033620510979064370671321393988885734570787271536027398016325749038244609349030216739058969591396255843035775231765392951104887705448775695827538079961635822209731333723375699603570269640572722313054484195485304485394820968639087776987186398550663888372339599938488109144196596497909366236710343471071160322013826141566178152270337277659316294457538644574226834469433352214898710680451286831865924771494004223144497427110330670919825139618452607281794918399677535013944253639982179523639026436775400778018929717264762968279715567035079195616038350996748162787630826816599381677935315723875866646037030394377447614500493054129061178853401894017216671772531091532255184800987929783675325576481059367754500444105493551035096623882091028012011038697852039077656800149602947278746655577571803686976776178511566111412677622999663102461993293567643639255929735328246956352618394202222580651560696514122440808172333212206897834616217317876776434146918960892581510852806337413506085806518387216457898711290677079284695454172311899372867323235726975615315953093046080403527264881468100069255389555019622856615937046578783317453602214892812958679903312569409730414131498368722820301873781384380100430703409156318466581198840456645503176585151245634888093224365760731320197100804424055134783667566991169806123455708806758240664304463822658510903856176458748698318095045625533717089505382237781692253900879627170297199665766189561038410030992331588679369253192968604176074960224840408335629992406711072903708456516719145942226340445293841866189608627611026465578999758146843516455230083296491115086492425303979122153783443336147627945556423175988712192674222736972008599802649014611505924421107881969119648950022012464918573707694631810414463222674330639510136974882111431055163888080311801114377566866191103514770304229519193738931697487530903772248644017787937164070025395764167695906158206262366565947769521891929879693497383996163087859580670899062477518164930292050086210957030169908469803815963423860254821933448437108862869362990088880321949319242225295237171523743902186321243392143674487026480053163046359602976771235437766434162093382112190151832021306575253875162476689469563352327362842050434072364122795204175493781047715235304765075462801923011705596200261281511474564442342849089319436055841539583425143712892135909042681849265014518769664498085836309868423649644059336658979711476670781803482066633341069216298257562905966061443918875447679151953748619882641872041640419202210326760077161513204175256893110307332529871456516341628097353990044788209195673204724082923114382268705508476049791302420617647498462899358277125424208826677703355056426425267133212382054427102834366511444296340858071787987872821239547563682247940904392609077368989249917066568764287376088958920359234375012033660620617640266388834899861739339005560413743285978160312503625486509173132346862889574445455245459275850808908516113744349237154049339072665333359213885904998963788759110321466807743466741753620451055553157199716733485859697789546882308359669409179162488129015391855790202808005986190629788894399060719794225201805105860735492507171973751080401120642040141458213763193407724328138966995948672145146630583435494549838510009883863184251580542217000384462807957057375545170983801765240400001365007236493691857843366410008133298100867965042648856561765726852594446192683097370814316614893696697646171867215173897523251873405810794028777696752082771344333590621720884971161733684970782512353988167973922311690240665858161922325161086363591776080741611783471764069108938188933561037718532483615707688776095716294684268974981974080990913041865351421029660620832560578064535315784944722386935957347878983309938830234712979905457400607049192672243909548798380901471627709448444239076089885068944538377432062795065720377238991858917256237695103551226259430237399898595568842474317266481071163570756572097039401309290263942161037844457399803579615713733936232960184885289259382892873077309421554603606016095747384036639286208322031112459223933990402980216522144642239948233198681163083539871734600018785754228285957714107749418656760648004624825918493879366954325850854312826862224708969731245718876761380005511592062878096576265009874977288397907204243302373480691317332036098303974255782323179566963398396077530909290384210343367087165302309178427066058818648525451410111808178876747081267552380817729207460838473549646385597990021434767585862389401562539944170507075689989681367360037071522415621634956789403621777521602431978690928123258640576198815044954754470917107625076563386461452465650984409977823163173592065256638888053593059295637901382113111091138862689824545913496304362796411369422908267512702609259902080895065801013895990840261789913269070299494755544823239529756391066939179669653412345306979640762300129823295447939492933430749762752007753434755701695800062887676873420788957706380910485593743727872493231483915249954683989635933047134380111487334148344039076517899226411270058858166689910886672688827572731791743399918831171234151256771159928569102513851411186083661479957617026481751071013996684112926501465918903731787891390018439131731158630259642663723446870010190597327868864264524369326069836019216322919770494586527735869344150952810253794009372056417466137052487826258206274926334068531682446323539069269368890136005455359568397468255372678381368254826207495698199191796291007070007007640424618781107415694140847641418742795833663042807260648053584499680204917063085886401016645590591207355229599916858014837243920638224756368881867087961147005430712101611155175606165793346530397332005925017684243116414090819551347258575942999366604691919296928601951625987419316225515728628370863817507758630581128595357996685231303283011866612274425924881921942900880539045761968065588871225481689965056891678627659827031795372211530364845567588221748287438276864951583295846102402586942382624513158003670036768830497185610164530315619072061658102601384273460974993950585943314517499269951808414112084994043482189749010029013924031857165433792368885057797695793135985056594190223477241404982233637881766209894955739158213641303198053894703781644648534628206675712860868443567266349281355923953202464096283532390055117910239572868023652027969114752493150463459560999515302480569513613286151965943397636380073026811004599047586768476778462835062728931439710154487743197394244378426174126826682567499976051336190372469034989609986978901019133831895585134105322835578962267801490854584219770313790150259495282226965317359391081210973384369295024435449332503028624309556658548006850474462148672907816922629092658917237997785499548642109204103451370140050225085757742255172803456250426835087672963807634135758425676473694962419765904892193168266541987238201135123331914298197249110199905064818813314722068147906200679726283802963553624280277725999421212648972633921305968027995215008742022973423645262118725846950407917343009484884566627139659753514521560756140571870413992176514628996100103541518348545040473569247725679191028916060434659800139369915338706840116864490044997467347722597446478367889957556935035365737787235181526624341560668208190188974440999514560902715682230109114251349435544293649774543101106138239211416565337762216683338421551076888622592967634757983651519683916000307908963164468855294136782584199495659350449679274285694474578448998914198544545178936640357241241626704712561233931850168988584521932140127143398602169449196395715627254219900487201843674999119692797601812262251748225920495749312686965918355761135252225859145203366629623241110433165600231011431466588332144990249230671679044756890906099137130832671634158043815346015215688205770943185230665359562812381580340160351522192729197821423702137528350363661095476283616227947247269104611786622531203821259516485470037495505880339555771184375476982169541563775706981965773769527025292538293057450368045800716267499181256419569912357147908401123676676946687368784734377061756786351795828152104637145865710613096920323065756133718969377579698180094824739863645964735522320184688548163198067790162593423757078613723528319401077061475650771726786054396615335565191203807968565747949739846072668052149936481182584954714020742808139744024232743939919386819971430936369228682097720346013042937956426102833354924352056012084171801493730201874198334970397558452222515613783355736101053469985109328493560409721794852506713074870027973750625235642477396390082187616436132046713122947929381937709638875290325696015460665564333704724713726879585434561084492806481382966255798262293677050309760147160942678289067963440021791059430852805270036047868465327787315784868861625360898479095981528049762168357370929618808716389952418031513935295936600508887434450772299655808797774561390745654062894038716197547805201997538762125654263394589537327220295086914278769173474286779331008268730966767879507321342327850152719596134763678732256509509866108681215870410477897355003407824986999445702230554215105960299830398137372800824718592018053652560759238293617513993715543420478470301096067228264027383677197042097865509846405054115212652377065685447173054965697415518382593150429529490804593897404610424546951763584100061234956097420641865526935777567216350757637404867444079721858031944347360345178177174113701870048123566466978126192170830745362727404659940123778783897606331020591301701955256601087741706980001716543039479473287554246953213492154982382908234847781873538594043356672655868231130464266527565331527010901997071070863980569976451836335923211265033755676707176860613731039541434831769394820644265635352016113625903805032446367670613208484858313622845319777776109337740663151704990082105592298190472898757769920059528289700395803757573344871135616633552932881552357567452826670625189174234675551428230635293144053960577780056665153314784650499812416435255566132711857396740476094454600290612648516067806170116846653267635204423482847496127018343922655910230741543472741502257084510667067075878620662722127071567810000369996495294083919324927494814540114844806222182411790294133442085765744271353819865088058779593169685260149170973113821614066874925812494391129949551349782373461136259885018950750791614914968868877308409992774871964323267562077535663546498801923517810070307231971169582897641371600814791841674770490234066708901055636150570105107186897364469010318016043363497171420677816722073708022950888509091710607642074244530214006515248525826519259272119575608243724711363942500951954927372107091759018430376436517720313262999370801632853246228468934783252809826714357566305683256920568110693178543457128906607481712727740567320816607943421311048718478453494095259897220762822402209965655504627296227134630379090984152041817441958509192216601999175046401598138268697622568824362356904132286777416651265871513954223258793997559823174858620843182159699998384162363984276912827756799578540242746356820504009686823100128091780630992712256499852865986569897519472402243079693934782852247185455476902618120730698077946041358004620398567559353086543440615207817352866574128463643176483289074581745069987213664864286154135709062430745343864797264156934799045411747442750943828278281784768946800694326633537430254955311606469089622878640724267851272911191678945305429471730050343888429932760292789914037964252954773551484193782499067031695595537002214058387355851128819993751825680366989342282094608874315215560842286415391034040222179908853681032865109218062687368084641732528221642383126320799996442297393456108165320562996592553832682416009100156861233044356963713401748053058820895568612105132466216421565495524422529426608180236000190920536881600688919870925202496761157289079447220857417798559988102744765772465806612349228904059733380346155542614408745812240955338152841634225048607536360092692629130977039212826720600269429499888474092999423208872384685829278733454252572142812469279304818098051704362316050744221881327147371761667480397534935331177694254045544883520972273799129082779099503051941821840222984056457351028410785831320995531045915031394907638286772803752133553501224928575658253721669149339409619004839358967766523681841913669431972715146614938613912925538764530187510021288969763045288162949860091791877391920046946769631725259930737540407430392804286988653410422612945263135236217210677627316255724910782509667943413431713991994455950616851365228092070339669612688757693392825082138470389800543090799890347415667978890658278640571781573362305031582346651248865523780548624032240786913210463204030040374470342484165306253330489477777722142845219020869586864463075827622829890977235131549192731831356818717296519138749302064024292713327823239830186653964281200311374191366392553835127847486675998011437318411308910411423328098096368819472847341735165704488626366125132399095098460955577557337483439273487402253854157423356209682402406401788942348764912215518752244208327667897166602290105478531452007866797781808805232080524504803353983016275542131574542707141713599759055470745603818431846663312392125053965427978121263728091256029064398827088331692961284220128610943274716851010325999600963585920601461599556037161946553659905317401288931618938369953206947250971814697413337867075239473861863939961274302505031187943762647568757896144601287209012738421026063035203147804301181591838435052518971321855338822954006563406876403261459867638291081997970395339052950155534794811285286111294914606464228004370914385151436468367837413181708988941174589809425503160509729142405746062312403884685487604661006845795919290663186609507628578392983764993483114841816729291800765050171945740310887807741827861265345934791824565609930215526271225294387160654220605039019998970798299046499992051336638617435419989102134410760598194221117965860300687347901328945109703278512764013417255340575968486782110806688039940964136271222066840881260028655386981339506735973878851172015697644613757857583187527969384691744151083548363005304528368634432832167385402853360112909909770748088123883646997075099818041234426349663845737165378578165507151854191456011883130674649443936158955664911437072124799516538943380689035568859170009870376880224942265408362506519534472909748098115449929551887615244024990890273929947080940024673510536507903988851388761045350302662923019046220876352990085081190978530412399769284375974997935309939901487915355649244254190787288751950759047972587009580495809634900592312917780245182306138792649419845021627841920198310103196975166486766249563820617727370014385839605346039588395838397129341530248949188532954113698461399916221562787724414414939186214061381607013307992207575256921452431814352834713226565514851774388541963046901328239209237187541711559219713387598688047891222375454837899102760390014896203359750327546009196861196952296255597669954016791965106160035236955670920088551010567247603902550722352418750003144316774192732683999484932612361124958161754042261438196000970141896483279759067873261861257637079005385568356340085464550806270085125845505980496234767824785400014290582741889940938474192914402948981229224858189110213543115603895192311214227529215984856879584166336546657007037246089876874231334141931598515476343159335578544813045359287882398171095814556148388694663568187503348050368914649779454717780169429828506426517206958190040549809983931689955364362102116143688588281627900946022148888833267693702314408413487612420958890991108270551774269216826498501803221313857645144802660600681759047149020604511158925389141366244995239568480443136073747124511331930888823394754903673485293905121856132057400603309573963763092304371356523062510834347149052760968851241333456842110774427256651520989326074132525111275706605452042465025403374622829893379823811994378443953376036030196732678489736337831613063026161654172199769274352771739936547701742245814456222529031017599661627336545208821016981167898426818325954346381074089424814440327936672045267154344416680384086674347344224954368126541154195234569368331426527477885679389998680890212731335870807281015095636663435294887430191552337646233799143102601821228475228855640028060778027125593178106088396034461194934007466321068209945931536170810885422933254212016067117397148366541227473587624763359905656923623132400977911199207538904129871634674448147375038424901653599544165241679133857479035380691056983656969193645488054616061551343180671522393961273460532423131374343826614680004049341241947122129658770067794127109344374896643427035985873012114097330494905405546491440527006553668788385797302171811381316197479819865648864255922402066234490302971649655666914033305914235163276162912791437413117921879552703148741602844193008760418726220471591640829728728396869266874739934317881542334071033731245592130924238061180974156442210526436745058390524462197853073814257868824808358569329008707780163624955216498190506159124434081274282972363368376494096368028925149494955415536244682579109588505027646392222369791629024304108237020553826175336534391576937173151411952230915588299516029104222027667218293703857441094508189141451892704277142714951256118850158860424148678425963792693920584184726426848480558817310620662423097910223940683994769943502976448028896657786234330183208418866002031068995288610474560596064455063375702695274228939962894104564142959888892699639147641703411561620831334612809792638324335695384289521246617582685471915178724355765647940013473796876239797759071645520606522461387630894939280040426434402977186739552607185120118537525075444061829663398367903943211550430655509067606028851144772335870942329139191908449184349766674819735354073837163369551536691577139095121193660772504983321268830861117360136968530031106824539148678570523234064605764167590608856748366924843327365650539900451470041651592588911039792778530042575800916677064408529594380362747898687399957251991340618289972988864814040108667505116600245968993293408469702247367504399056755648170215337922222471851621063356574087167372966258114569865143842221457265244422567514230632862306741139669116649288749917094857077350749049545380709848514876206294980620674643096221847756686572944361443103621168746026373201697619142209083064456796433162466375916751190921969081039452362084315881474665407219335042972593824527979370490687206649775904961626460203690459171075169325471370870561627465944961030722082062433606223783221220441735101366511932803296888353721770552776427809006790748885557479557898770845753709893902825277905959490697870966542654303813391383345036997174528601582061597153066743776978978025901113473760322727068277124058141311236267441738385432079215605932012520875071776350262927839979123117939554715037538728440281048190828110785285925875908309642649428495867027645257838766267780555565163848847260266033344509539925548091074374319065308698762684189457689842154067897972599776513572189243808020988242710875214672026491187843140734102877920414969928823213663885178342407683102378690879712709382168700972973492021648284663153585162134794441079504624198974803674128108917709832251009979703597807382963347402966821725100896162702622560270569053408233131416608294047843667255860964244375539709601355064089513609405356808551503419312178498305076869915109272679997464899442145447717479133964745663417178518856012359619230135810886362119060067274756759050101847465558939580188374482917423357973843617527238305282852441054781550204963485600019279214647069058240316579846970461919795835887796880016689775640460770865940161927347527489233965202570335805571411892366624490225448178139030185939090542893744297098449373319932343466862744583195075323015800859872496873607531825598330931312321827851859048003973115030088590416940440243714921031315870582202047507153674351017306138731191532469574865713006164994377307421180150655268554059713369574318262637604664340090475871834771445106951488185343684289337824956678930573281162466529415781808201287960530574620686981295769416832891258890999342935869830241741025170653811310236895298614371535500575084965508462583911065688810871169348850223531413505944971757888862727650669966530520782274113953007952630661487837842614605537129368210566758528139031207522193620060524260049361784946474224044668368780093446462096561152022417218536942179144579858493593105461111445204455126674567975445942394065557386521043604418105633760299751300689830979111209176104745400221818607250316334227168454132114971076026396039232663367900242722998814404829161705750542269784743735534533989732324156813611271462890544973011504407422946188804470369175742213781821538301919751430270147515604357418790019961369734934903901167964543719449181730006021125192344370324015967352927631668524191238634218836867583124719767994655602469990634813553957700796000038684819701766301285802555497458231081281532632185869778177442246699292161565812847450365724713080197856401013349166867445696558714682152875046293196235494180414278293260768285211707441058437698218776710973500864274817089993992683086156636408725144362698411998486744914669931220771764941199630739858313186144274388214551061522969244076461243818587477600783599871021900692858537792994519226310453548310328352486715379777284761900212786567761690719227630949096302057169282424578517419418524049806938019486127457594066312142182138464075038063607929226856442052589771473629428601120951818258356791402566752944494304975208144591896768298791043720281205898405741253088718284695446152525046595950105702976372501584555418007136813431472931344098710769512978846828336153019294654195732620826849265203904421053101088103074581621649562456980865458136573301072105805200798646570087256262373059681733802901514451333639554140884322357779830026806822964894774414974060944993241296027776960355271666788521696190781374840755774531279399088442693760000580487470212891323969328411416092770849280309239508071853104932543548694319515908921044042984145463310360967843177802599694570127050102610087442736711940804439899722472079970805041951464172083243368652019590160427221898360348987518467797404361549996696380928205934311118265351442859402975045541423257471849487175352455109078235469823146950396982117426268546547748480396771983226423710586495662917958226717486436149340263546844839733724023692411430218040237890843329910907304154128013816168121687906578280442208500028874902229270426753697525395290421005877176976840192228448170504360676326575098171038170307735330534234018676675028696114928186209290113400479054541576116646384515900665136979804023104960561937615680242036907373675420938320198694859342230040439874708178062697088330872831867469822616969032822739546895257450956081505531024694609908746391755804149092363676640019686865583435944425840389177419253025439936119333298441429453462015355445005992155388840695437487600284774527609387050485001516713353350821116009167239445317388430937060675207821806029493654467234931735095603234106620213340233572350453473481983548475583536233631424947070463610472193387700683629605651293672995657396824209637431984121830442413609541864094566201294935899963164104275198397535712219045288136659813768654220127525661649124970004754129066243337226394540559431043094425419788155999913350712326784471146562786132400414349077382115048958514965797915232838678318053094184672902597138343877170956462799432875044349016525037767747331254578060912423189031929585423588515583271505952888337150805357517323387598909515114672537960843980848488829502166690039211294875196903426663864492926046046869705878161239247622702494468119991896881489449996432627831748785337840758930693356482279919052410101915714633414647232050048621916185980014457067175306514113590981124184985503260798320310736819724380353067959475851858236614306417115994773442702803543015326442213236216061432012506394904994524356904397568997287039679379502233949522201254917634072854131673787261822522445190288778897245117298484300416287333446980006099303625952069127661135207893776483794391708487268036285655316867339365657865177189171623410715931183159309934521202342775875493299155801090581314605647818944150329240123376332864867046174013880942681379733641441689031761493040431803902237975949115381940309661220625783080521153900224055042406722036822841280047190835124986923100370653546809220392190942151106193985575241606337570720252736953909163716703754635814505796634099429536866631227958672244393799608841678849743641095020351560715633050884745093723118296243526969433827875969664252343415525841481501265148091495568745688214946967801090355094453450666131251136054234175846902233783677864793015410953858271770971754975225766580693238791575385079070001853191701941536885004741344232951316839492671812923473774452857292121530212327995053675862400309267230762215682423801233686042140326547417888660373345116448829735296369217368941018744790184625407821684817967009293760888762431442221367787511226806214792520057921594109207145652592458248537997028073065802145127505825382796567978543715417444828249356743006430809773883181287328937782325403064458742444383131696799398025472088796029355956602792753370674791972419345707811976529070724389729423403111994874604840202711952546385924052022043120620001241614796527554195259141668920561142124678259742536532695988152691859711711764602175196011234466823963664289121623118653757689906777907849060242206365197870327092305087298547490855546580749986681354163538748556100490489787858442875774066707628053673313251466295648494632948246920143039281688431483455353621509631071860524329609032515509516284338683906843245957814132466742591135368221910762359028762818453353651705877546294555656020091939771802608290942114820000174531766638195957526223602493685909775605816464517205176580420196105660806560499858393848436864671841497463279084976948415974378040289209016156348176138535072541367339332625543889778365135969739873556180528607165916730011643221812880730428807837129976651483221092295396858195148771545840178941140138725406302760229832139552210860716574955474422237799837883365715216842897267252956938498188954727428639674681757148166918370895285258558168434657837070117340039904338214635205162227968494703588370840177133626242113192505290395876664258424162111783367667592224246005860793622072692885319136500643529816014061981051790770207823422371445468794135239251226161793964062795288736653791764233861367602726024631780381814539801362479547840896607724843915452632186091075982132264268527384625817214460931130864944643011202671162522597161966539176749040338783012047774585015664975388501820769040538826898768786669372267221534938820199562718625530839674679156478687907309328786962430273130318823313481474419857074758907471779164559552099229847646055437173826995085538736081760755908382863928163894661458992790503938897095236456992421598816736592100984474247011709353900258494067250600571629770026701653500046103419205438975519694523399143099863690449060770325167299256912215981845504719704328277760268883585591548091703707647476350452999767232952376435484277823838624007348303270272090865234758626653864184841484880104350628057166099537705481668523846818248594431676450236854457324939312345121402947223813145236589830275312757360011202202789323041407252070079268543727617221121165048413863307584891947310192078788348145358816686943434215870416176585214182050721501141868670818110561566972479770034513432960025156356650219044224331796682833595698384295786527714002967891388819065642035985076314605387903713950661684396256855046746855718328594091475312149316576053707907550528592138933889344403241060126616858011342003069333403370810524392804465824569095194490709911643943087547243180285027449320378279849345307234213533234754613366543419918533301295208814876580560158088492805469990817368513298128018932020606938735056537842530564934675357536277980929165842718118947427435677376430039860184219601131997020955801960340391963726617515807903450873374117802032439690776836365517445028903682980765048910491091983797157540681153198172581472698382972370914254404405359773208508253609633038327496417034829176241695426522091174695247990294460988493344445396882086820165698527319901131974187859930111012172877151670279593352357379194805021383725823175522572580408367103010685173713710888424941683013921639604521225139997925261774307251408796761747192055793752188875673767491854336204842879447930529997602206252596002052378981690375260320831615232327073809873612417274190273785216962644462111084719912092918140952701240466661726788011967714760971696104541085500463349200857806666326715380812138487373560232458667765510962045780025561813954124709483533032889253817710992286808053283055089879949859921012478808161509177703087120353896660349741249740031576849610482334898832928778811574952579423829366594752980720285403376710930567051909618672267695256942070394824810901653312719979488405865678656820733157946875266273453874334784278765373191067162677370484586133042117800057408543391951856926570649425190982969131196059040489556579266697709304059383798953348883201174507551609755140899535807140922815451247103493960777614489576649026121345237391945225562312034736682241890822286069579090676388356358229751385426935225458217189002267173266789695144300202550110114207356987547846172258112272717355742189909752749799790703438628367583227889365099312193009990136884338940352382602292193778798797763731713294886777280910796697303929844489113765404859686590449725130244634294316835938132473059432264784688453589046446361068378188590542678041112600019518630011503918900253965577236571996134916503202543763416708855359751957294482758782473045642927875012705406171537244471811029580234794255152771948258421917891420434824084887634564027607289364191514072969948540744648709187903965383209176975832779750216955940995398719153929865173968122804438842680810542003013981710324424951754626807346872855648578616036273977307547677701882930042033948063248309431761979923446898566086052522637266786621435156028341189762792354253519848850883360934417234502438627256108956229475017625783171627903008606106567972091847638815116835825342600636886616499859322706943244694803889972358161862017716437924084996227424988659036664397746560243352624908408721731734212375058377925929464046725365657771950656298242928065903632371870495006823494261413306073794357452035478798228506627043893205632114647305678217008071015288594450074372684428581397773593129555466595823882633687122467302384676066724947921150559761661471130264758060663855789295748326440791302148684267655647222201192414757553076296457740660042354943458424372479118722031895051691711028661214475688357450503325420715620926995939006461277864675300631957340068038575593963861278157962429663384751300383572922853748082168190795859697349140480900989709241446592132732220362971587368704577419165965744424270116785424930657919703911753430826720601117762703640952641094967246800205061899806433494316074788507833985603184713192313671668568638190758329193708004292238175322709374734582640239955816623441019165626761022909198677328352787286451229476999861368413448299606299006601630176991596666049336466281272764631763907924387240803831318246881574900446708365262227981903950880063627016081819513723711633438671183601456823592546643827908904391035929559443974829408964561498164873562762160684056441370267725815278812231754199585290811904376419314625032898609521946967239836972152103610580795633615852084481776284071198222926842733897820542785589938839063537859404087033124890593937438667993767379150118249482883059823915678023781522412419201083127285792154950839513379663514637080492870476856333757287938594344219199776191510851529961900448639786232834941753601658956277802419565999476296191060746235105456611666278468634675546576057255456898313778138443455470515335382588235967503306679542248364701301346980040388734257541649975314648073835257686641281281053015950780614004196488853654037165217029498473651398424872743019716714433657947839920462395811187214938101511038153510231977514433364161549070194635989579455171258326621991018416949790472638745874992370275749836591708581976255613271494679604971084930054279954636945093707590341964264399230812720491504359304065567617992575207969810239082344774088671491178539154105699620615768987421749162242267105942219293021918180212290733103023522422713191334854998578129475522604624783664462474465710222456340680526974817815451092868977100434643680304409637515386212425925355706223333721287121116646977336196872377220736544031758892049517888540634463757196285104710429869984159016787113521971976547245871342825963386819793458011512420018840897168453480551053596228132790032386270459309981084399354314167956144794454530063729816776288922558566342925535543857924386639122864317641079253417380037329071465950340798892352260738512805223373644940602908300554197333052449529899975628852450610282691283396552708616005345860801451308852999785970429524233685210157891458779436793967044704806646307347175719704398375856179352365222857761250475167146512458862458347856243946119731157764113875015195376197441987461288035069605467764177651083687893938133251499569156759570022261022616247125301591591080501684501330237820088047525405588995321601441876586422602290640464428425280488967126524942825965945174857728529926372335162324574618443660721209328595600445810792290661656539853470469304006595912040288740688792929543619882334393384891959548260362165093310664847708330856440429632985542117421525342101318210986300169897640880034318854572247948676017105404871333171296955457128683641352735704382932154490700314096349458924671814112088727962240790063031509058638087136496828528874943919352635687289026756261872120240777817006779776911414303516388824788934637752642931300630246414029000239288145175591528378274524277802096724448984579637360620630425991517531943572445529928449043246723521977947682423401346936183120767086761586454020136201792800528711738398136401874719177752448683925680575801718090722417887561292991956071115429070474989850386115054935984181498568992770405494119514874093966833160621960524418546705550410629074069714292362637381401810755376930998548399616605058911522244817287347101749041814770472171490090018687157189679491421712908609935380236688212170015126903553353744869589130491955776126798659107831872512484367670898290504304698021464610723642991118174633002290550482455059265699236981728222581117230678192998111077299860457847489285282457137510487282900719070962883686551153309474808750353867571111895461130666059033438535882636864295572822405726962539297046787366268435925782075270668569581928598780298086491169292488189079993078656776440055246576026329890726936170033687330402876682167854141993784028722611235527807773079948918317520184197687922795990907601349472248998608239339946859234570156988248104433048593175572844537171486470049671547954658692057036162350464336692716617707581758489300166692929245399109749726209089636628710822724058846190250404815833214468493919494099957628146215999429210396646429334332333075050953182652296460176237974441181123872270253881841771741794983978905136205512219551439166581068755530553561374850974843645215712899373008485486385856949500505321888631792130782487433169180735024110978188852061994770954056121545906521898056635092264545194346601698403161540857049506779719082996693203857795895862241777198073232491749877069281051705352045414052552973518834556046979727183910015720697896055086371627497900000557073736763241579448189286351020821207503348567342245622471526308003556518011143862166498217095928064582195836144741008655141042140246608339654131885335025726619749976146536233743221364781040492337307690245100475218381983828529295800262338561747800136077674131991878526995611600253412098752577310737647294885805206683554884070622520782387627605167179824782282355541898742648996429984968773298018537441908626415067495404814474874573202697469144268071730214764624531914647686754337118659917515853295389682678111283923111229994828451078134768728680884976094822419438032516104524474272215425660436565400398890729776092930334581593610141048107400758759399696943100117467507882274044219948194192812963515306304104475558054906789737350306246652972624843575659922888710401068967536325998315888172926632309130537649408006768007087967197326323477564954152354584564883387538295187861812256217445023692061844273557393068715901321701571582184971396806724952684223088214316109071460628479648232118984014592854006643558895679740166908419843968311590605201700245519122667632030922168365949636409840791127295066452297615997513795164236858547033025177515094066228914160297810375710638192295263874326999610401064583461909331569521608582726767235588803618436608900792379720035528637214685942718214577277757054658845586242090124989445730917663023590245700691128912923513311672335740495633608836177937386032934031628955117380727530709569492930368402231269152675858595740960082977368044569564220051117375444674766409389503305571288419679049466063289221159303101040170720618988370517669175223744777522435022886586350869733940041369011527409211354194422769710820055659060977205990009286501777548840476566347872203118958238135236024809872166915593730574399694678630523873221228235396615275451279019151573663841170473316655427720238568646570806908141115157204901424304309875573078707106644103229306821724866458206683402589847787909357386032371894635020482144422822783078969223120632680312932300795804488007097443056354353569832913302058083397347148528895625531655839162301874297224053327425518281563404950555052106900979728576822851170987684319937843439797223950792100542327336233569698790083821602325078953788013749948768564053902625320575659369973443494588437553908583423434350894366694536743972039589101595119088138523460474712375827550973276780323184679356850969532415555823481487729090645935103988795055996435163105779858404384957707550094531402676185458360358437969835824469873257169676077138883410836056165293937009149654121924256912229313157883941255848461317051047354505558561741893593560684967283237164911573494420170186568070751225255915033508803742757380360187220752548173779044315149791096409846728006306786298462130939269468760989596699549339993500710773871859168544714496368922584821019594914354098973732532907947372383434551124397999657340003471805450951019852137994733553545695788817764054746177722077216778158164216014394546525034447494231985573760546459716267613070263491733210682007906374562456430526125952382966866844125215007160355163923689802064135057612410043923587924615663163822168726073860080689861288383197154285241069487974165478077751054617202687539970962830561850487757455905862750906655855101124057952923724679099031782998571548615041446437207943647988603746411537265620567181808569030876332130871844463996215983091539600167430903078417805451642820104650432655106412660984985106898637945062413047950531393796693346274761212661417313181463612643940474000825593023807771386544230998016717831791684774039913596789157965030208720113021693830362371290678663823710716914572280457736983806576857159078450928208507158278280778200121169980357162244253116505196151577353535253283906810324141948057896800750167424096735308851901332686216984292928673790289570203542327132885482257972432935063356722163391034715575280152026040939512096126300865363085547265453608379834765742495601313533850882831388528162813285699064377705434545565452270329959489164303346972004510360508839798746911120884655175229671373842137882191924978805704908986693454704758643804484377386162960688285830126701411547182047273472274435119532760808089469540197107862739160520102072459178275407578420920850042284008935957491183679847750537009714074022235244347495857959549214911826300127383226457205739469138409402597921596108019090322339907055536880166878852485461610203888013494118927434810727012853086360967697750524577477035491036028250570576353802815913932529499638661165224928919867052654863511362634106261669881464823094994517309530025166313931801950258891288306753156173469381570293540881980268261435186160595359960407462822075185360177216089563088281631679033398184484370525406820709440372313974480385101143516621485747683531602627378347354857270713179983729674295503148947702836966182921203454299031307247809196650478350450464402840576373949064227733679933296109675266348771186292191461298051525252653849141954817595570982406121300226323979836167363295990690098817698877343228466478428283810334064377204781302239638611607656595670484737061379167832916899632477958006611023021200233752862913413441300547227300817286876640776305959409958447737368631833774437107588157717266321914013918689741041294325071986710425711642330108395522477870174682960356670961091798947753661986652289641108571959879670560331515573744934207116718328162106715130569360057998861799340753914504872787698723928678183657860795445308552591896769463410864214421221534531630156849953403581996888311503594062020486216625073770723389531257447720591414604945534041982715688089710299163930920678777479445362512664265499519985070949384608490501043469694181370249957702662306761570249458197458284391602927009909620954184233397166624973499177633392868048822923612929467316460710055487205767762227266461479593802904380372813486407512531525388667684276003879199798159011793717662278206439181122877935562902275751050297701644252855286416171493688816224876234744314230562204626392068398196409823205936728893684874479228063664921194010143819106554919841463968551207333241232241482791509335135429794204235577259535186954819274422674592485947678250360138987987325982492655899934196246038062416662457049026289793858922450393763114481073289617238485686082553150702412154003061701598233217292878993879823704545110603991852953392253523443191977117217776013256552123657025246256961926961276167960600193497275034829515750223209984197450655478652715700059183301342943756834015016270739269306962406152905117843767936587669994223229905646779016777492777244449982973108528287996529056759382703526069775414816170754818547429114175523573700203190327334982455382617007316963884497152216953421633641012263705115474757870301103439163781511088909648139700013780479950105006290838784475011218067727977683014387287036738938383032462952700530503608478423206581300916987557826607971391771059811776301837078875710369518951664332418578628997642840498320398733942923739233788958054469807542124005745770604991363660629393344532714338033215670549823695361844902018801138802107036476695978237674084988583748573659131770504412180231174306853941596565640447021277987555514391585224957463754089442864506769491199644316890834396639147426184792397699145516602751797405376498050613496303385954618192265110551866703874922164999881150083574096998270556954871769299102935475286889155904265032435821702909206460261883977794809212104233024223937115797018877901427826514161671832340582189179756687344983937288217624101310201907042916381576093438164317424231653813980657022611635207868450453238854907425654859434669633478144598811732736657262503606659287384832440630247222177218431899298223186268225017661697643172639725527674575200913934530179236058674768819343429034675373170690583148846614187229135544949797444096537338414359792904197028340745829446104735889455637044413287946029943173982586488344861646930748563278582806596813669981787759450115614013403273406755321710397784748795146690561790490566661070634068827197210297615119699847699000249801509490510970324281585844607087173189334251450154279653192677555639989612388203153821118086854267135765481370140113344399680201244891554497223152608041841175697678907168808628816338562949282051767885625370809406528823624808528586206632176846833074611775206043079737278387274676082232638250667348120351122638508448353442385582471582877314660635544273672387724196550379527804056628489079137846099212961009043293062907954203242722166158399974135073150553994980710874252679147489377731827770148231148168073333991749135308477870482402011656737146365191646960410691340928215667850641439067261459212888169871785186909577984587264231078384254358701094472653914507945487934185774350928203399514171173348106941032939099969372323936580522015817586961482149691083035789318359419006421795555320233302025333123446782079797766653969880218130801097106116338868785368004617793075062195817525797051763249094879441827136356413388521993147869750287851400744577936132930620878451812530125790445192699168393338654374393584711808935613382070223302582812013704364430038663052868479082880846037033761317947104665460801192327741455909142957388859436547988828364822774216844333005028913836773136526088106521897167616002723042350136968320162985315291590117085637870876721332491634074859575547943399967363347572566436488833882764618741679578128626598962820872147616373496343343514868374136513524787372687685079056572300977527483884002550665499090191206488190278598847549519405671548346312635050911243203679039933090407417224278803706037417443134993934733781808697245216174265388389131766490914566761605812275941926318653309393614566807928034395648031732592606591555809485488512044313345630447702472743879397771113726056130396719316462550737013531484750752479053494498926523306676935299404468985109418400347138660743425122525483216850724842581498783879794795253698460490107172978300585749614036936360456271602400088611281216942353795808370338200402056693401213126093307312094813834725092912920861309648475338903998472233126382562759029496134944179077705188543934584915132722286279581259890065172438737208027983121874258303483326278590838883094752022362146636774180669402757097538962257578424849543053663389805879069344874775808859575285141828507717373186828471956426048560263845376218449635815201678513674866527301686808671463622758025966799918125708011986213852669677406962567053603622767952886071056913098661782597667404147557297035761655497422053922352452092740403483917908096646106821805751927848318343015642678393432229513010719348437421214934017192932511691440266361269549703152508750710899360209896728083990296096217910627048538294462070109447444771662807953565647810969459402150653084007891662881534272239702344556172421490698186657899405959428602830591272675638016081783372283469420905404901081510335550166000319917060436649949515706723994164183775772279684784419758409815329071184438542675943996933310841404463039659871129221752523672411648404806091123750581663268960087007422385068820467868351913622071261114336228605601125347254920668090716487805181906390546667991658737109227143396303461711408559763767272729593926247719973717027868689204108143498669311146427038144710925202382786153296429830054395236559605306665449231365271533123606684600611439671982535614131444204894810698182211631141564716391555244499354096833321241535555060193977161086536980741221948226276608360341141762314736033693348246355361133609704488347158990744267338153474899012084565113899906289647333865682764906115620131663488489237570425872816820374240704018267807211104336115406825660047507399780000215240956464162519726553576112677650291153404491544633104269514423659126405967441245261293335475503224378488144444727255814731130960561633187905587530550126479962624058323418357478010855676137575523149427181753415320978869696185761388402305037884418051756492950871691809775923053323957818772237878698691231616863211977958908394605369044250802894899552291130506395870051221253225539667465649677282504095723589497961172774036353288126823967681852493145304660683358324946637009239236246091450235368156304447199949803378095966049020371049652076998400836716473479398265940538881897945658423583944725285320618804236771658154762621642883039473688967861576792374320464965093871218648653573137819045733653852162340313376747355187309060769291927582704848403444830442310864315223427230905674473907259017915827102048168437719132109288565736811925242233523784093270212835242275833052907582673007015364186189727348588732246300820760813150345678564766047894690436333060330021315584791089534202335182998438849160037053872995330390835124660684716196900428796412781806948736291609118674114632776712324907275124005953624611889837659484110527369822294299574114004867911590532367272491017795116024190994815758520488710055325143807854248474363637016963087227524604375792031503873992563996077343835699514335709844745575767195545560025274825230441457095038120629243050728085500644835290031005903099998885126599963962709379791705972545194264861268253044515762012395446491588978906489791062304276693012974245112867687150909355487192054595831592803071936257135782472827439242288915171519742063337447609105722367063676320708870691714206777822928378613124196491236008722388983563455995885765114866216870053942573645329564979136571381874435627151490981747042573552574075002293696358951466856722506759188379964891015123883429225947338945266038327974827410015550494831184121486379571683779809540151449652308746942187728167878962228297130925634580926395749214785334688318595288942438572967855830134730233201874321269772603920947822813201314979929178418193989294397975956630803384293491263554056776453954562777041784291875715658083664101654475960212397430183258004452972604145870981463826043160054211673553936020295600012554395233623798659675131824528666652524842439313047066207255973394800828391229683063661479343605627278396816355571593831218078471954355665226314102320464805507958064675777281806426792972390087099474064924425110883707181065209463437649808994336630224250766750464887847609417490755229422346451406552085393319665925546088663759558468512664427687616290388720096901553458054551524591418521088515193136145569201631525150066439257436947851693437600679221353027918433151382856074252645107369296725313532704732488995028428437197334826410075733737462495102086842672884145739147959901200409763924525289252994337728251408303702099832540231005168087676265570892306334859948350986728531089781250371081437545645055526364293348493493559091987080293381754766315277392368409027818313651957362951856488305723523360224110463319842598153847217481301459530206309385258385127400999296845261061082324679331800126824461084678029987488040261393778767773219045959419296711698053101607150244957998381326522051270085408048539118008556891802943008224546921114564554440491988610598555220972430313680261365810103251665070065811449600969066242984209586088039415876047456901728919846336588740268364593273991144910966761697927876527969065943688839879315482391598374292725700000453003416483160951475795781337654336833799751628120391373890088943475628428627717780661752862307712818488177861167085421409719495579153584279499802396149706264170429627952704328861306232093831220527240487691371375753127631728805102497478224973774774848357880027934879517005829309018439322706817432526533448317941894199772418811309321574996176236809682083670217845715272184230101089858020625359285659246633357481468879070230680987441556958717877606574817756103029339371902438328602767570019736989472948792841989744909157312943062168581658707212385575544707685211934709579740993826682020762379020365060992669433573134994565482318779344335590582586720455051984159443841451669628819271515814191791529638378553118727641773152013249100144317041927356652841674482135720170236900055185591319374799046275475542054663035580221188917678907559335968501246375176061063162913539495903596317070515437522947957278415490758862510917575185963584553104945734822905191728720001273968467526623730787479995456314458786536525998430931261120610121843018517150336704573386326003467114815741978961619483186464481455569773414347635308478549370918310407068844668938881133650708219432076841816809636097361300808021145258884550343392118442488728788590272477627165921572136264568901755983652518490493692148035277586513877062643588052724653561954320122490396164012400652822865291862118623324749840011522118076991013816550742082060384199095373979375332139148472496260877224243289811537167410273047749540355723626728810020968301633679878826824559988872793935864336238477363758344835227597448111382836771986054728499026735912088501922757884735257021618711529275307383018600368623127821034084358418568957828045720154480801163042706940799401189129066682179914383804179950844275411629948085438436231966992268435115882578970177283961408177521168642427556635944515333584365905709283372785637408372142776976470496645873129937876034203788808548515018323386211206080014402582928225096607478771795606057001973139952811889012720325764963255876700978002706685919633047442956656745473901380954211660328251137692741023729830015659872788677975499591825231874357410308970780288241963340052821638193355415322371198717433525034694036009928335495317181826065126858669554916788949166670701576107456704948284599625966589885384789683022724252662453760644117438357407942639906072878836898388836509726146610968019733050644669655082617532777541733144934989428183134914154732654371851369565182163778010326657521529506911388364829869777028245829758968460859315811816553706938934839931174252916602890982608724188950005810768929459217340904036151729618433289571340599305876119330698597416250790299829227464591653519681800817211420954756683124244113490384678958333243608792574452315681338875001691276618050288055603270096494384727362330058000754170460932855173193593869355684677624157682541551563282484199791557593241062070872721978869101210726874514342730091920969882969206130747688121556759143097690122225686228265658488033876758121708585992469825916459048911048867344592392530209142049498677764961137693228056199268233980453966820821021436023514476037662675085350291341348455153149267011834243636113922500075992866024484764672095013617112372692731701018371892228353523913074145188938067861761086274184604489479828217144527754297820014751114605546188326728213220314299244033365497837037094051161316151816577668800882155119783438245460005491073960675818098674990810992320634114287242259065589384072607206421250676566635503105358180352971011813784366044594843472519002709260751810511233162101577802850434099161689846399918484506751692446492242444462076393531186678746956537748760487386734765155676269500521157130744518840278317190600708656043638525598492941924287461748643480985887543572837129296298811731976335511795520136575725265959468570290626379592309993156025570403298424630595058108145423863933312823656579780463030785170892618743916751468260742518532547677334847139905784021560433069836572901091755324324860402621707712533034225621395129567534693883877757047772225746234367111591402969934175867586210249147767630946182999664590643458934994769233031147503343245859984793988030772970558704384113907497530107693435859541537322433467909854054203282007308759312787785912165699826394673689702900851978432011218297416246385290923128126729614806752158680288916558049278181195341539513787270481182017465967007690014873422121303173988724108971653000507657631527807219376120921200201726850401845733147201459954523272365045041718413706598118172066389808326529189077322735516855130498584762860603831928759221572166889201569698232386875306914436970555914357880163186938392776532329338962056388668113597718078348689099173269780352158815391838935276132576350048063625581928147852584334419196550605665147796947389561047029687157867218319904245592235501033639856051290173356785405543881585581442900247292100157147165635095117576384804727263626836608013439928534083093103262863688462876437105434675315002587813886378220347406043370924653337960500872618430109727268219699574996174954492836539652913330618631721925878364676729415352266169369424139686696744391288337471544119147311144232714303352605805323989354764671302514501683279129771024692069401411522995637085860566256878985796594861997617168377522444576844326382842605436936652523478003746677934636758773409814418214431448730380946364371079881666730410003851201366912565904880367385989829336607735889760452902352985351670967506839957426309351513633624444399615235478661039527095047046356180308883449471689183308816768974023831444250563035275708111299378858055063130769521890944409398930540544905644322695933456072702106125521284650658639466857830828705124585791864129079464123094117456250166875116861695335101065358191978801894286106030266147974940452312366604714332562371410888591995709224749328785119110162614885077444055006219614283964665875376423397265062402921022326494243151477502639114417382595769077759503830918120547756029266232910802028358201781892772474065334497021867667350688498944884158952722524805450073317115148126466476797400139776412487108442107095404539470702896216581175155985351165998234257780812861840514180630828228611313570718648822700095299026891722884840736716822194973783511658183167597747352137041353787593476768014278831686271243333163592732730747066886957653398035832352415562072342989131894187256875409934069495970285233909934936545204942294275028139778280270885088474271181614023234372510968283237840812448370437168458486750099723244395383600641669464371566774849837199085674265695769099041220282363032988129170897178655192816246652786323232896779493341505420831275332942693817675332167226600898109651645935902504811520403822698989593072700217497777001648158937764218058103436774985271159859270184406106620868261700547824529700707336205554377395183055910302969607844376149609762972414973970781601619828955411205988718756745749110134606516803559189294958696528247474635558720896180140520043224301434447336665459683904646391480003167300711126092409351331706914717805451562527786100946337872736328694695829071855979449220615948861998040348582466152188504487996197368902276405365747388813716888182287174223651337493112966892391766067272876623581950523023876535113742907028253550145915229969858144944534016969056304181178486996121912194041732034650085405842462063462140930553490277816790940094840985328432845559451640216050161747373851061331652467683632351093397790496558473343042000421684942719697395577108889374079426457530868114867374357013210857514354423094782536962379327672273187464718737944299045658310039500057487214983546576088848978824599699912463863131457657751455665723418393537353268885472692692816424668779408104361184052728983447582089631346287899596022839899896730936153860535054215353463724669490520330126619614292411397632574066185254466729224382652759535545221654047496696922260377289981561867569030022996237946650939103180813468217236778324229375049415752950750951601473174325303969562996633956165496322866395564960692224436909232877424901775943541732966578658588591965932778627127821762622105952109526707851144011642406196446738700806437150664573210583289156816876559991750366495248455478507031871271057207761583659720953239209883891905848019254057195571967353000588718364410331984315713077784118817541089787778993820376186641228457742379311685119212637105797080570290842519399750078819244962585032557258899580391372299363225129259931319922258936755729471423028131927706818391161762069429373769215033313767680146021569573371399395518965401545110160305739892758521569841611496304662641805148855770677670361459943180628092286247346896636064498618124523658551132572559095907810914037416249262913965518545786438777454063883251559323413120909620569586515766495665932420470306700451697204899744455650163020053012884967824658465183415233405572486521307924955771526543873621359647880790933579948501598836404600219045746418050673613932737230503773198778504211632278406652181394890789579447055942253588818587652766852560339972122175389828535456537428243211696194362042862934928729006141197134894076898372291800134810787703888741727669942985758287948833802775601582636959081736520411975533005967832875719018452109825577299580273927415049627444955585830168158632386862496682334944201190738208685263901881218366888272725702132477950695531786926011016045149411777593291999668665904217898865633551130222647134193847498695314552827577116733231924110394449061429656331022379258590004872556241027285038016875654200605794186989892433447777048539443486902412339364352379829772113979466025926696084213645820453083460211898944714591922592266714563682254657248598266405918034565140167194142493456864022890748481918291206893755792959138229226871110140615525950631682978566708816357985116317291563789462725354865606976776317004500966506513363280532660589901244745686850098500154971483709188573796640815469664101974194283851712481018952064046585223471609250808726751498406471825489682024643585058355874951204061013614075931169308028071515289881001408648310118386454136717827178408829792195164839278904261809971283116527560543736887710658788035083680565119732796202461132282267508350428190514123051232501269494985724199601540418287142400465407740196119628584275405847059083446983890242350308170385425723071498293772196568051121669562319190155409629837813456491307406285974478727770887878739116190723953037003120896611154945586808131091580520277495170054811271413279829409805944998250390475221668097862292180325710323443578658265385307078044595219354669450495729871772900961549326234019096623144793359342840311419814736336774531176130025168990312203338332492048490216033171420626568020887534555388801460045794121425135460706349024557793296927695490437051183822553718565020198348431006301168338911410276875771483350670408182414728655818786844585884261889686291133280648139902461216251679157932339586331601553498332814097108500073193631403088697180447936725768960893232301041158778936085556916002598183829349971002207901292609212114985664643448230669584865032571320091018205795043712793926929375813292572838940977676760417394713535627283125734999173233536556842332615912078526397529638293794774781088731884415431007170436974448525117018576564826165124908839344653464991055747446833338880362246369720117688337088253464054666140085846826715260442423599101193753804816534954330766886188868019817347371216663507828196197309452451209987266835078789608534480420968839526896825284546407502225087107594993088893237105066829702368448112778103668435405925592888611196371059929924150311546157159082231420670687414932086717507293097355669535164286086877928199132751912287369826100998956849009615860483537939418052019073022600380327979783825893348961440872749483692547281199539455674290028215533701556104042175118414881686210449883688262257442840654919103010065039677977401743545993389884202141755452642843937135808875498169704395830405005280000400024189359546221026352746055834700330936524425186882448135443501148699738592577600899882049618650459738921284884285831663659785512872207852570536090621674606004379296929578869360456418986416749551284837520332393950363666319339179244515012523427848571183683542165714932615257481358236712702430207846291202778861091224555280453054029991582023858655271941903335161247183366955555072536222439171989826380699820253248601843651058479200894740799123969219086336396393965808133232174072557496578460382848285199602179682694505340250031586390917555612225800579573803130288368936224944261095681869029787763176468129499323277170113367618798036307412626894586072710519556057382885256714143872851429143007798458329310429412692660137244057773529536294184198868899593703918166620886363509964351778500670865694831341138559069588740478081320758162214102985335557486704495409225464278808539734540535788734487599752265506626312876367218437887622660357183713988863330453463069892418890939758369150279077134660868985733012740664745429144685327300385971521197371174348118494200901988643160632119093488389803666004706073098751719585514916845530493880718701342037911867288862769847972774851783900340704690958984047581915649715287183119983464856379157785021533893484934478857557811595621516023151399656893126382133096368219051845180465402359275052476381604561947127114409540127609530037294525451883877573720710869756282074561178166602937721623837949378842026356082305597439257192564313049412335191246467791511774197442528026309614152019417663579209158785315359549321560608797640886783162163227344055060990854606044752348943529269250179095609942498777856317767323797253586603760871899385027338342540436427321218132100424256289070960616801177413921402484187326962012125544432179205950547402072004366887387062261828405136691830824554378442097184422271919711238202459440227071604873129577233915894025307749751754482158848201503358713966177828606565179073204020441812489890781681284853053360849952578740912085094884074805100432723728770351355795157891950456129323233700718967682347693272060990838406509508134630246475690604739688581836098935787912284593346936014274875583182475038873201035067071099916876525365316929669790973288177524831382346646054785621226065508432758063129842726880778519299339241243515501536324765378177070809850722816906889276214923583730114455708160493210181679370848618069560774495273643054383798051567429018298722396867531440238844856929474283615533588204107273936447737361223911595845067309279611361194178187890081760002912122987905292031431219806131811989497246456487865836446831481501473542728091650343737108326994965338816772235692595094975584180740211693208359330372708698973009823947656077375458069221826747454291064639256029926463500476131771799885434337009736915025857483849489590824508814545102897504498604998119333366733993076534016832902575579310700016480688789470860248112804890416192022772295168064642802980471105493377469330019943600135207974651205969425424604380178875986588846045339739205762438560546794305050388436701401889043693867939030038037258000433812466822853562705269782694638089363057538673012076775990756133126209695785650417433386183788423296926495598441331064196771958894764285203338063146033241796791918186099276285656752626691131490769358245279404114444419708333981771753392689365527852749444260544212135250432837697191080529495176291398956625836075084720845940923912362323738973978212931609164907791853266745524661969352385181099436545677656853022521523468990450522754727666591106433467462003284501798473942662166566452763747308680454827292277226296093413710322075783321038809148056473555770388665075215599998488369655372844289619458166791141045235300356700152479853288106338623540847659113118058394264504910872007868760165823919412945702076799828843390753082942856006990219872462523863833117426714050959202090763662562694428260236966668593179556154277048001000395374639315888240758730591738917872086550184740030161764369295830959305315727703496867866608471372559703064569307484303932535651827392653692608036115022392316809825727415681885806033427784722165201092417661263758367771269753328758055543012371265147674235632925050323975110787622599740047836436269176303603572106270868816726676712011707719066703345252044798496723368994039235742385775154577005119134036842318869667352016913713856532390859418098699578373908361394535990272480707034770444837468153703940226647153682431767956826416464103290310760937054841321846756626237465370218681080173656423453398384295919256848968763051958692931416887400174981607808494103159220293445870162078563334832546077167637594665054200261164648771843417643015379229566122870591172052170752002099299683603386118484863727874991466315119436679345622188148835105532412017561160276271779312983473600113220195047823979203545646587397627314246480573103708159539127067037587531048592134513595172235904884643922153146126479117717212816448274224978631611394034286593614054517459293378830114100111085206084209038067254607425770980906879053592802001557223716955403514873955018339766799151245243415828792892669632267832097740560990092824213726788378033026539194530443306660413161748412222319828149974394276645452161284382594309659018138440212238382481451285283650192122025462842492811921777318581756392996735392365883569827370505628999723697966730940979762184715742130778516011914153512557874785433648705262180428094913836034551046001760979707824718982817324873947086310451316325814218595647045236445321895848831850168138918356026772238775631313267003160561884548381714343267450481350374694988845414812465295355612344870627677766917967717378390175820669785222994843838474194209968216575939618601022265169219003746761652062007815830932568299919942345937532793480422305396785006247379506706242247562968673085100803905981331119892811647384808296208244095700664389422228077545500347692537955673042498170046136755035207631063568986608702285253610072494580079299515739869326298121910338351138943839837126311325982646670012657001689398453314921005723671277415068294255098973624684602447016683606316150806431990756019390036083968102687229925701961503751787336349656966164585880328691957580103713011760847942369697926870935995646441765266313807493851115245982142192348191690312227394561200505107223435744578103698126601878134393643118570194797026855139548628599898312954464622765296178033053256312402261748603199241018710126871677889102753597942839807379051141535256881687701941870088327360526560151794433877959452960948845059310769235444978400540714172866872591842105091543511461364534988650067484870887044959861343397083997256920184273618358123516123677996846305528802495267480795913366409591203328621176729502818181255125195225421011646230885457177387502403997708452587583614968452417365791548618271934851290206480852673622474202990731153496805557655737562824119367617055993419599365723734396318944299999909038104623198644475354894641070432908908575520119649504461041632835742810030293612552242259487949053108351952058580149689306926916084288036222782598302933248078247564155497715342128862228143969010564304066417454271148470995406053809640554892124090947654837738332203822175310919221607361617852891105729759642557778890784162221556101101361890275774189485980360978820555233173387887302701940684668870943874880382400919995653746249619159650454669093244498995603020019497209520880200494282078217550757306925208949285815420733320947285580577544612879133258033469417797620225219602314261533699615654160336914987321144931841495795329119390583186383677341591136897503013889389373384026184286557753903551003532249559427596075514707646363496287242301447111662084666997952815530055866894894596504311298764350913972880804838303277752703228545166767697482772230808116872320288598720584038386795542101650868878343496378778396023527880014443501013919473643533528325562971156557512545694409051983806579897477396196650245474816520421991354881288931060673321037621237297868356472822624606549155367711349597712537844459999901054121460711573415388110022118344425892484107087962857859010437417744707351687578166615802471345766142256727139222371518984469030845394295916569299210252091196975609103363472294927088795906781025071052846184060468604524177195172400660571992755169459590649143718160476280411048054521245223574110735185962946350408365835713453444121504159411040265612404677219042381554288291844522837853243320161434768479219128087229347686863350641492950695178272431072040763913823105958235693478106234623108270196865289352434101375061689769306847369740359830219549873183739360211313831170308842828672243190750464221007010840820179643959869503043199148306678135240047052784864118188921397919693019544414826735622027896698373670852848173229480340157696188584703841324225297131341317095708320478699440490387610427175089450911005154126732401933923079514403413647253056849517993097904637676071748454353767482304069640575508902466681882544450949620718963495147405738426103293737787623546092108561788885088038039634774492196752537741164582581192954636797123072217245260480479985959193533850220399092889610232411346124284717265668641114442247342316034740332740553830582988172782925253219454678891329431094118683223335543537190219468898828673149292161186232769340070035157459912115704164110144618288506758785722672718336873709948008409591765678004985751857321461487838556907235167117258153668252745553289028701890521282307220418895942366415606964697522229157400446349449041868688259926316300995968851438251606408209557257452008417633681020956130013529660542551779254005555436019521364868246546610190004565013380989164879868140475705981473864326757956844076311757121158859119605819536046355898189883021949653320409246407702485801282925205567952178501734188692778282985660073204564816750608720039779693276305036028533404065716335272057817071976708596991111258858836079934727245147709391709076707646584349891923933449660600491767994500403453395813976285218301964000799882522965318583731319611325444384621617213700153503117148123901512277452831059829278347201935262554046640905649768975069649488134875428172202537200290751572438734595291109858390990977979075471035999934699761766833056529420507259898163786431742968304337527376514390092659690839619175033301336957603557415947393339384209475048876534294321242124066059223389971120187601947608199291505031081012409416207886879370030640488456701683141653727705482691469220014165239554000060808277664026281936580773287570965496851203393478226666816698540008324485829504746315672464511919666521397025403678208702173873023732021325437607711050446330847441384370689907020935985496424979178920003615118744577762485203410513341915233003860521454710457286661792113831978884037989132151989063368381825371186760932567854215461418482561200094619802210623431813119801495852698916092177910293451957214793495681535483697656068783618093965093825211496538980371382427714413531301826282682871892254664751544825695888204298068592162453217424780725878944431483385521512110232146493240045368279513749774594991787923540608214419020242553367396265429600920209639588028003045104232786404895163249175423754640110206584760040830287106708389216246251651265340904046393245419550528859623045163614354534097999948486539867500435887852019613068059370752955546582302230097554181657331860210351757059276112024056139057143514056776183962367458183153780298960345289739039400186467001411356275702402263016012668219800588699825747178346619871908809934193170352999361262716770688813188714148607920038322442737144211099087012378061790927014056527263911182980522172701396187945865384155906797158337706636929240619221734997098274398593494191848488344908377546190130322401896312157748389868634691882026741420639356481864323362958044054177135128858577412411842240461030005981026082633498015175092008424620829493921763911676737515594410604822158094258545946177802578226238032121336964325414384395006874656198549412502782794212345594187766525365863543220739984692433311617961226313934220345529902002521054887249045329311406058825946005132707583047188059723647279712382186683668209207920193984677760134986627082019319228640094689852125647191528760227408588767704201562852061317853051238788682453725546339318599507150017913284829485362951138231343676918873152285048314574229923036066551098371600156954190012046833837442186387720281550503756224072157403466094441073611905564558147501436464206628731375031596566900398196225739836913361140720246368230131411786477312992430108274611701632269817872245388611628189068039830735347178087431757631689947577206518227448558078809095123802157858021079592310006068478362879840592053620155133666015176442721076965730559088268389040319783696848427313186218776406150936161062880650712189208137021142105552390596094961360540907991559690057033505524231779816833272978797622362000144943030804617308116478180551970495140335368504245131917982600355792955864987264731093117330749236884006751556556139095432836464972529201448949510755814948899657931209366021387490195006221684661120473298388236846970019084872767001943141708254220987214931752151386441913084363857019066321252984662465023871766693628195365178787055156108298841342098361059729666372131992200089446906959296525088899897669695577286477666564654576847867824593488686194044233541494596816871799222728548257993594110271017143972842645530603302717142002516902722858289774859588619882185171859938461100242727316749676075066419069658054966066380818798522187803066156122337828095231523006225312831657867842537413573652689618622598895208779675359160044421089103642443144079516558444791565614769989156624819902945227378191686998302845792054265172193584782662022572363209119508570534565160456331663147401027632233273143407448574208312758102995332419901530949114976111773641977046740203170432027798298213038348714014490459235237956207094408474600877949124913445062856559578011895104407849697905266449816550196034334819322281855159638729563694331646488921764864703665028235711595997554048636224289478444299945062231868600633927166994131072137169899895280090531125171356567057035916232077921173747706705961326777918324695438791137604250171446729880226132908697885804062508063089471802569924369134708204085724487784255797230423150201278667397773558204675659223934372345684143823732556597456933169787357375737491392309450733137147486209625616901286819690852086535912050174835708658236265110982672155752229170808486111142810175834147668322710782588435886059650083339409524608695010476763568912393451208233752301895806646321914859084836712887593815299722854655408652869058952926045738540832856032604835792752092325666131149694093000338493936212922320766082779440783026172129962984311602134485850834078348745028376438949783681158083663315698967576052835385439386425349020434718832088192113518449923100691456408156269722674982667689299470070971807353627216764686505106757432403543982528821856111894607165976566493918418004306714387955462129888993317276285280653044546313788556962342548414009428401855647212847789564432888830859113648806017733923235635332291865963241905080056483959149013899470536716770263269218727179730988503365401974175819034268360779716504500583709262642566381877935351892356277223443980116751021293435999660869536158771231758781178892783850698893767563271207410843577746924053148739151145877691107284145657507426371154960634920150507758559840945453747335370824351476965869796328559907591589278464147235510741045155280044599459562257291619987040201555427682728708339993631966712512834979614001302028622937981771409692397139925718192953630764986445242727333750853079779964609482186334008047796722280980735359382204292146618958633688398010123006476797456664997009159689222592698545655876541858075220102137199423918129293644238519561923670420262011157211367185982378616744667198453001711357780112840840248187625160660351831233948824326063821426925645485977258762794687864630698099927122698086181055192730732194218762341597545051056090745896249289572476146760572800021438812380815910065350079551087238034441358220528783856531324896426702978625658686450319570908898233833533466885319126428499182762262955031448231668477364850463242223517017593766261528258285496959128336961552974917455679495711860918370293351185796178549994960383817621740542785384592386559673329716677584329024529226512224094160348146144335584174211882713882267218268361591443834288957949943872853189244807377376818167977941985726745435070618182891343061471377461881929678782819238089075326394308188520200991289570262685014761201578209431696129444883051957843288798786363105717622469975897062791039638236241307120118096927380906017143042614891144466256506850899267476200883168943701651258661538945871998127070816095945334164401795298202109249060477084805599813114827369372545984004901264233628886193303106048416182815462129364117342780861069148099887996228953033603159239749609830235294436713585261457281554360116836913124597386956704351936095954537560090588962537478724011437364835170209807832662676620010767490816658006113198182585274838381823233674356895191452789313933596425408155002566210947900128875635873417743870887729609890243607245483714323907815038949158706015915455381168749411880003279149888631504676204109714027388831851778248710271815000149546394518110784080913916810390408907189304897335126366563159455297911408079454940759019386440954469952240396889840793514135827177937837698525870747133867287984203801308397777646526230220361604549664342605186181075058083516765020672749945544515637497954445062396763704432688806392005782507345013762062507174480457857144189963911542197128782329589977560754102473936997320137309928686276056178678066712830394445788705162583975824739021627394946188763109441154140328572905536713654763671938414019538454530344930500967826958462948978557692754478240217066476582428092461992932770885820059737388375935504304719005181489395973225508077579981981411995626322086167845236443044772418634421777267333701026103389826283637121275567019475568064857064742218726556957752316808208650820257567295112907207813282572864148204949781316125917827326842712856987205881908889320202102914119505314521862365541305338138831154502107424653170138105178559129851497112707764885896425222989109404419379823501418346106207505925148477816992823841813367542080855103663530579845509064936806955479555963383150840971364485445658117922391684563372036075162985743335051220516120306661744110541360129284115502644668665153883357243943768177037303394009579443096108557575269681920826218938566055220153806812304501091113744431491709803374402319115489933301969649877229367573943386876603125932755578003919688781134264312008983004335847122844832221363235495464523209898609539143412993284533190336553859450887904972970285193936252513559764394821083875403085701092228710000165937968030527828065135989345811511363201737297629435810317334043557121808344062174446309097858497792058635055752955399733549987675268223152303947374579531244911596241802290166324745268210946569691077151403879467467221758763095247487795550611846815754431855565514413475792906113623461577922952947332987580925259589823885757440008828082594429079857078860007760709717967973044602175135419214510940563548235346411216104157352550720091274432216110868520636621467503727433642895466853266987689591659797632630743768680561055977819348360386556454032000221509978537184143231631132312027671036945596288172868535584007448025793677850801475512595883392355832334394167616735434582276206027914367582118958482924273318484763820716300381261648033504696118087756399063141719028066263501037473771315795507399610569875128567608314912033862536538344266096332281744937067608642416301306385533387956103382393012783404482100860271712686549217503714818672361797323880332923132941917122719344034949709744605011390942027510521488187902674625066758288947901578200307818087559105998236585748371231579848610450517863607617806654665093779957399872255108306667796416036393454101827434742398969377110974549611653728955866357240036451361769874321998019307947364368208968881038907132138960817626230992113598467036036488139709363148104201122198432097902545092262595773229641577905079210349079637690471609674591547563790123824740897528128246066518508198896231517149135706990631261204928228251424653041093081493167283909274861544483114999710279276804955122022964093732904794847329908608509409359871288073750989298367552844584079545696838065555988936961678346867790124730334232170002457433695330860677036421425628435357039492913046542891785563460377725880237124065416740863757103818038088113194269499065910821981591185100469562000378251892923455277877645963525540382530448682243959757278164786216941030468972107911235945545495864851147927838328902798436653626054039165665989462650414274227710273980403020492221298708463637248048468328235373756199872161345726872578179497206544486911030466079752417870381118294026118833326094202771628711554711535197802390177969375804912523704432506508359041353188743102368475599911821898481242146205309801113210460726679181967706778237064206213837323867272494455987387006152896514444652338256410441386763714709195362131195976264332763633899936867106195221754692719708396783980303960677067174116823222507798866694322376808845393225676393433923306727015845411088344093877530771459807696236221489884438288282845043660548283189891740510420859058208704140932337239162811633722455215930983730520587840510974773852936810349372688345805178638864136083109945872874411792576975542568194792734404862472163285260283204125706694881076234925252961351899215045746525960048758714633014573833315502681706310334103631832119919300651888296598851031818711981849388515424058960823601628760423143412642481305915341705225188693406345947013949030446835541923059105104456789328415625547744807069329355434710616054269042170039252869862207750050796554216480760610935978005787994361418568134283649452718915842051544942402237099628550508353527013009639140857545882994858242220157966626142556076178602769512051417067282690869440035692239586406685739967564636590997395010632360466768454004128520076739929416302912447038854738528576768664451277378106566822653759629413434930948307423971424040296604753565092548370460255823207190229879911102135856777558429780123426311533341704828242088484480664517942304165978695067672154315463890668152266339831225659781134785139612133013876948892286147003986299291420925903511262755568855776649251494640058638797786718737572214129301649530628967068937794267470967266419641201500062052514754811089078390424314719898149909593516686410862765986538528567045770140527903914062116552181252511434930248016628237491213029175601533189651486792001082611196220367002539354731854382121016309378276206508454220847314702584968426161027271038231353348391715883980769695028489846150853125455956954273171468184676091511570092531131794721515307033431785889962050980592686735355752065061075640143108799350196678128734100684737141833877655935784569555540116919494974465220825896616804720635378070421517889874466781872680226630645592982068985772326888789476348609933516450523301331018503726139423569646785681710762084287385668837113767133840673073004868353380860135502184544893088871880733785911474133266509124285447381826117017514426466700406415520428990929403626560697890641469740517099972123042509010077062080559097167976605390959256084403302521461660140639661020715957630238118086895098377760691072974646846219535582155606497005197387654261747514766414295602617654820649829121410676535601382672113007554926560095006623400700277533253283282358730989599925466620724274058559684711098857573783632996724924602139790109133795988752758979522285208238379971304105383446244586474624411766738719029937084915712006958828203489067915532909042283128708635325240966228410088338774347070033502306709211809756375619487064443597497963087484187415771440685753016542324961991643322257026084192803447473759290379196799208172222514061555957333441164100720156091308568177970542802886501180348475323658549969082583930803983361009478282782823116251541745883170559857539620783575255596064186197823186843110250490269825090012576307303897579257113898232682693809252412951165474385086288059463795852610938167562474884673478397005069722412146819705439625660694537763634184923346041266269736821682489030185331362197438476340952149218748757995687847255218608351613588047430219465429845247529532565258452305113912349214632859866759047023125778257987853527206548361972703975675886253607707185557470511012574261938109759978012260171468481967879554229332720724150103458871030554525360453652055257810846432596169474070719676461686886661859037562836602390112659679502177324900951307692257351459313594146540029080019864009961150131057951574200630007774709246108812485894232612505989120365889634482944781648284625423798202069124465280464615403992841610997699697241832373920128625094201746044006329133126308371529714030179370903782644536175018949980812367346438489473432212493572596363814334440889869857952832538126043639333876873763246180384222865901631643102179990740896343154735832057989748078197561152306352116119167792541000579582484270187556145885535868777826334519172547698956611157011512048429448638093649305325556462057411703931554921990232673947063416841075690935803020082274229483181708436872734434068411761001561711528629398556611870152298581199274540545696061604335653765698243235210025396544082450548245183624081717530700859967185732179993953481197034450350104727710008398618350045443663258366771455620745367491266536160791494044423615456205116644403068893521537741974216416681884062068924675645427542738477366296780469174008704415746154280003520643222008652291788426541401064665474500081980997509229382585957435113157258137927115397397848126514062051233774325576573568998559219772259003954533218428171699666539895272007183422307934184054597487593705265967438617243558002868354005557379645582289749403677026620927218908708531594976683663327533535218898794206731811695559971120620103909845514756275204742805864112358403652974706265017855433037850659469259764426436661058198360485359035174021778978468992183411220118573841916315266268474230313017213239166244230856226034704126530871279371905363003567474573625673239716881357584836352540278043224560503308269207005194649087047457935131939814372248141458952044024335772021963270089664582626337079261288606023138105196075332404991483525494065973395998402734348960132364572720050324914008329997126454642781656121774659083933854979837107466192748433314833005243967444177500739540747889640372583154105331074728221635062164471181829835134246407428770646923021054765049607399777868256948193657473267747395851681567331623709442172603848397360820335985964178692264318978218147352741147983391764045799833892845376724903104865513735496438576777137452492403807132356098076902400627988394886198466393488119828770516469227386877661885108001060058827933494049567719394751128291054409882671146384647579828944252256113401473294400052205943016042935670683389833485747955633422329579805451454299099998834409249112550856678710618056265193271104110023838400684252592385373361944086397345189392468564317161895791464092577213731236780397319139386922755411308462631651816863850566378409224066588766722969948432825325020676110568881010043923734043734905550813290927098980796439303345405396339033327024680544976496766619010911359737575330971274292356975578797152622776873350339684398075678220991143867758075672761991710700048586573130179428536578640126190455594860493096575749405441922205038684038142424652804519853409771740606426362441678304721167386486899797867432921985689783196761259611488849495322918117687744206480105896359170236273257856609830367698707257229573687040687294660225239979413179110059958918019354449362444301614753613997227567153857898626891085381009687454536180838865503388913320608828096908332345125530467719589755022438335447078456539297825129866849299141289852049665143246265405994687049142343706569759705781022384280298883840695367622724152472023166910577183264395048516735428131221518425190546386867902705373067611567914093306557356441106890493426612304547151596000524586368830500643948297460816691856766658764446349033501119914335902045176798455239146823867440176405669697296616497770785929418205557650389525263178823815267841166274821612208358563283021865165614209324440666630765149529729424483163549355856543788589591647596655448079581505463132266455248908933184108603842693484087758837905294841813114164254929563916528218817988999311457103243776182477300400120826226575759398482051289298340660278204185405760545293081362639240286966193269208596158618562559854406851369429184054031952221504688264274809734816672380284676642849787709654083107046406896334923027699632447248956596336077680580877801185186489334025619773652426884771886712070962585700828668367675592027301620815470619026517384225489617537109527889976055189061117297270737160091673440967906427434570673588690432653866719749050501583383845361919394903795477373419642450413333153153037159126293909720575983839875533371515241560448019412330078446271917715783349653462228834345371338114889695627673928333616247896998907130190651065468376407585079380981026279416186670144209425554882212799100120463564135990446404220439502687549773463123405888560539543513527526973949408183782541242885557873769027899211480975600084176274945527090699805889402763886913681626733941943625818832420905666405370934054883389313396858537381088211445307091537667173900619828291108310843923409054803407536039552322944091212359887737820248279583485101762868491410185275975388902921077863862126133424586810822516722049853088549913197672224683687097167545715735700156988737634747596863299308429438385588994711492316648595896870006261673766521503251406809758541013550383911229095077980902857714066703837368764980037761068069500991897359004803185539839263427371974031592290917910950520583170415308848267061200220909945147549784037313026145893227978510450405321880173728015130097564723275554112929967374334713881028266836543119276321750125663957113957124773878187301769957187582779628939117527693511835686184667461503311610503665735779346903372746023005707095532224899048683212510681564777880693206472092616661833505403074715533604499663903239993877755634255586865676562172611302950374502599588000855154449722072440370210154443164166360667054330584010426473451560257727847378891011295973582402394015943614260364376036089091878760514133730815334233557762093817056572405247898553921709592004453343573983408101970365276738712345346443658251391573221089491239477983731225427269265407504856510493092108133877203817277725977668249121465787119786743082282909288052915825290700449521268517761864439674733485097590500062681909605560154591762768888799337526985934110662514975118533117407340047216140145973639981295460602045048560493782507983697285381269606279802901389156736487004877129264348320501406978432476763387474282681201757784257344864344737462575170902134210654815965159832007484895740192503252111007912648196195251397079132675566441427046687931635194799442930772128312449490016342772356060159687281491415916234006011841565957041916381912551167782224566577015335946035362269455297249201529275781723150122103985978155341795080106840136707992566036881404630090603679113905692593128770708442042839953538075385666257724991194793733260065048592519744193057784207472892772974385632887468764285956601391332170308435610820624108826099180872915717047393462686074167061589814468264427938309061582465638337721939353294763875060372511617579288526712161994774650810420070869469811912861693663709277847572478635615384017259585195255086714516772712723978690643109032552339531309020001345336000951891721809840776265573136192953619437810086448032494195610794277137220703047401798358758289810978601269545919512131609177983402443626344226607783479904700674496871173193027902491196458217354139104413908765537840156004816135215740099791617319995860522216966972868035495569053323556070365655877952392814573561060118160578558638501124066663710503921146165741299265337023441687990000101679250253154721463732840745322417490268813707914031811318996371265089891847880564178504005988324260081688337067659799036739701372760118205582151516514984956537422358103185951834204857109572204291854504234889583519914993373626077417114873587865480672445824400439115625425829771936224528510099739999042920282104151013265785259496912473186856245159582621564963384477458685895029660496634314560834949841196728153235638032478643904916019229425811181736871807066454021967934360980523582175328500177319559670689211351662947308966586841416527772261594866764319840064028508236779523665084801383625983139137952395068897825305857476879719534370551892327062947708398143578118382728479644848866904300698546026835569016725744903824203848653223847372116321514442360792768322052495753489639716983318244894117048858992171690104448454307724449512374517509744897070742961520659813380709120828149950945735818854157974010705681339399868141008492160700698156643077634070903009166015304087782658867850796633497221518307915335674488640048418900615898125814241792016357261797370831920965720400647508986833683766734914491519754895712507952352684815532663508487614462798595009074993582864204857467938975274868690147481184914869089735255912940671043800072437720500933032033625803391748433325157725891751672698976392026166416521489967508273440623671760239021174768062956133370958451539677928518762323186909025666739629163624805979843865800057131407752966739243117524323382982878373254406966264107246969455488952138941997242952023977092458351019031203368834084792101108148795660345168240149146380985061716272508127907739991809361517249059942291781306048739603919703725464703766046976157898329689595135336703473067559849447178792847422475495204200657541125813902095802991977841762393641883427227656183795242801110802559586399099991828781486767982413597968055047083301683300942061412583873320092754159739432152447136381903017110738716929703512386604195016010164531781848807054888451445994331209121989873657570326771492244017075266748767323148746708121863169910837379032028616611016439107644759200814524996954975171439144565353285325261784406852581864267620183889218898263289212282452738022475562540789698593232772341437395073829583787871376252816950763518061155955149160230766239235783339516512934614626112048213312135436122366524782840960112966695407840292576615679172577302495786918555860747194581802567944059056260642384246801008668553568386635030556005795688883161115657534749307589868559900511568733811930232768562963468620296851464709947381351062392652832080412314085912300626712259220747724838965312178473370148462228628252291972319543255873663446219109015756429821359478110392222716734750104815973288149214586547564848775209577744796715821464348077433222260505248541903554365762002080798187568945008441913308104905191041689032574525248475354782788963550615320981013396395791815578085301291001175833087225643843032095901582632727058272614404097946639000900755917403182605851145618101643349842867920359163935257134033580765558118969777018677011268946061794616060161672753879899250411105753640655246126851535261281046271671450073237771520698843029094649051375122118939028919417127766277550207331330266877048414198112826700628737524236024684891544436686832147136978878149139155048705100687876307006319679175913845194259152989343384509301263380118335409775256943061708182663390371370417928143633451645270024189274657694514566106903283436569151941124554171431808806889322381904015162139450772731120701995136428711121627643221250507575606335864885344129119183346834027959343782821533945537693891506520475288630341296258301083219178721901179106284057618850046048397798505615621390575849297405736538108215296597855558557280425871194681933425665160380660309133458582767886678815266995258389880531078134656087276391543305938669158243182091592942494085811337135930971938463527144704836534368864873454225593834574941294287180554575928153851464996460030691486432750078571319127753817881300159019638411066662394576619790138659597263016373214422476813247706091480419402651484350692234633651168979920709053770802363864364670469379471566314311693141418035425810555014687737646026449032420394278966872872972342200234081676674680371595739586191267844412456051116119747398094014498987139880329732809344988489076641158711677585225295748760214789637706121693945438479221731867524100547181034443966516859311042588471534038176229927586869250952817087370598813040789567244557386382839086440804896585856158122654648361756062977208809858173892871002752174601613168881473412177004239098618535315187801292499688464800175735335359488627420448720145085715357023361717755642245585895862401252548875275344508937526346228753365331061636684249709923039008490126523515628829485359190765945178909661054824574527162999101060862774428661595656811193472655679459313708414923537961572750041865891758259556402722161265175425832019938426172521906323623942845280824692854729238260508675989428047306141400583664213615506440389233237400110667604295245083924737457558384530352433165613286422553318569453988771948691556528619672359846752112836765722125862137524883820387831666123926169003711561895665349020008312979055658453397237372347717953339170961876980634488110247739473435502770864620063781384752962016097765607383266024512456900759109480538015565374731629556284650860489871105756750443984856998569268614089205591781866580617011543519669846099857797699078559191166977249072798997269796452388655088778217564259860728620428108969014474395989722103464900148894416365968831393639392335042332178409683856756418616989717865179563106474141515037458708705672159886920132844009684685746534688817853347709999198365935956688937887934139111523341710017021294728736432331251376862384976957522023208939841188536202124454882106087660507979236263440147789849744769975930524646297845558372903258954142346089945875614780242638371260894847179498406409162784333628422644659874882639576896941801257821802257044102120185051346318837451111146197121266994379679687430273242015986798896797131131127834653009174335486930191113596747916727809299985559603229607099860416019874590275682113781391005139705466352989484226556863455123613469361332606404359701019350084284593865559479710596172579908676571321331957595385389560217278025344507150059345575828403957155907048143558751297756717649523574038898799025561688617547185649555859617926698318464295625884107359943628564801999310846515232629610299863296742713666008654776966217534218342582071674938736293396046927314699515929990166431423702791730399393418721603047115098905273666328746964102708164992372517668967071408729335779469061904700973901309578577647634966075063123536378654151649805784516775766702217505499064902338561772036278170904223849882892793079755227996206239295572306408299831673327363513815520211749071009689142897930133118937431902965378541938357399050554715414976101158978998949620357495982717189409625800790048284504940903028388232809729494030535503812754773543144255728749071818085230602154535681918914453102793443082389863292113615305302608331348627843800140210626211959410237674451982604998505055185963361707428664183688799720932047987026068649871077095165901968660949963876536640844311340514997102179695808847576996982715906241012804855780109197207318132870523661416638701528682051079916764952708139983826412574302424786572561988597430366548784976123478591157671809190356194880637667059366710091104919346274314024743398614456071504931400842060306391542833403555098773522943853587463252405238534533291500990381229933428703236091303584080427530575508087163219389585680730422373363998009620234123248118772405991928344353386222222930376668050964634896651406415585795472805046764651829869379468534619539398623578117568260607024812940853754141295815262503366738352709900893806301690341522143285723177083469554887528301599611497437099280160700495340431649162780501469200223276443408823429724703303641179354960745292241433896585573139259271622206718993202237532054559861917560826127701627280866331026458228066703608188231131876971236882522484680844275981614389500335889241478319478374078698215880534253821360424205361565455150883590948736432731832056357119243793345562418640375241112463111796106609862888136496091406404758264506091248686233395605937997522393667738353127711297769470485498440539230335587403780813022628332537406142883002772958171766148126639725898958289100288976422978431699428471755158191917942920091669308044242721907542587779092225248912754237673638309162502859496260949179644729520841886720155298532289877537531426581771884719105189016989508783886445147553721962320568615405942575269167358606800276057330428251976156054380390748434360681533685168581949896885151771087161034993753873052000186656152001844638393573757760479026664056214745095384304642311714358990472443881449394658915283911886454886710823575782439211806599373388008855775890724054190065309253673729479808427178707128103207518058174367846820126541101502944749843301913241499697064046745406448788401088542510289794945114225202226836149330525383039455458021063245216452733094417591406884241414066323399908218739755203715184364390329379901704258905895929991396972262094523780239530448037109856540415866900297546553200570808394637096412874578330361913789635336307791220537062527133241172873144626542374637454661028959527990105202189647434150412688543687131970632518242682559414489397231259937540228565517369057059355421429524851726776834429665857965291158949194788022843431120763597108045619013649293102512281648898494145753152279265280532338205298798871464318725266000199776499665449644677846756396518147597026035399544103536142409824321431234522182273026026161349711381765662405325811244836636778727307238613268024909387216521047691606146286242208005470496440738073586772201997599348471746857028945051788582366270594250958605624067936445310534248083505473607419915691440665841421949234571336520578180834739648004615504868213017867649678698647229858074941936676349458181785064513003189715783916149754940519078539540281275739151460684114680544840075299571707981338586803712674298225223040092998106188829084286200469481168619039906974563980413119784788023772978897995099634100504054914997392013684892642753984780660982570669842538096300417230291273782951448214981162350043983636034056656340760359890818791027321779247570350143960977143986181105395279015029789186676381951252044089718216229806358719614459083790390469792290228750820941651282097087044340412118846893780690747867002841329441622734248711732486371254558037635848972212598976306368306472211676056673476817695851022654649426548602427868434860880578877048427106928479310637593331523505557444295643469687449000630946636998988139675523086089979301033716386671347989974517647374750629898025403529800006867324144700834662777431626533218496234497580812623578957251548656263527507621688532631360244193684210628108364555044021800078387420855412363032387882120313175051114240254338006907336910966914590698740480426640412647680810393110472715142504345500109098041246766042147318599108377604074258875553103313187907046360067986650151457341712547503340888398095388667775478580042391221007262539617287940432952233491014834050957851299683406253831136003696827153428744120864649689027404867205321264957055069422481978767918105483601532744897958079372636704266389992873907681313299971359522436646676078337816174644886331905536961458029787904919837616728022523096437025938207902707327423670207026185504445440466350378293286647992335093282915465588357085652724459789798268090880636090018727151857618898702195592722604521497695827300340187908240035296365900174729191076130800675710383464054337471482774079487269898763117190051110703626263564305102046495006261311088582585223461523098872015968523713727046860927235595283820872007472237009137231240163584018680597263116207039166597244673112317908373612761139424797206978888784415446842680362162306881588353464265085773474885395101067581520924936412294344604050628325735634671237701975946242881174579003585437195603406259238098476515575825999407700436485812365384902857345985098358192306474792586700566619980873926549460497137398245269724029340376694753334162633138255555756126590809853070014142422633817818559125045072867863166194752547398787634990243744610543541903121888942262635406498975871211159672435571973713083633273979947949856799968698567958008957041303064009886139622177751920545613253488578340656073973570863400786302815484216875556138552410554632946468278684217999508908559297928681173473904789284341590506038347276937536480221805490537713963211164227578019054331548594647513337426630129184181274975858263004751803101821830265211195678888223437432298390656480342748847753823202042942294063774502225016615031939684151770309774923583535832210888805224690327525203781136363722486470217113565657083688908457837059882376375717889673845825105504462122368854868175801111297056185505599045208396854035200315372048293810738127429469931523596713694813267180961544986073475664712160820595094943974055244046110270606063485199681508534542392473431240026478194341388209181800830958637089279014033825440163316208146805866165778007080049821379502744320850778644511417629682297414348872024553491224938923981493002152429864961056742816196894211886949239356759807771982221804397548407135520523745609610235422746636460115793087296579496553721185207152772645766510877109128124420498466255193344704378550664155973053532784001956099731202786152096774168135704798295928088814945058647769087084171456682893870888281425165737202546380916124054738189898061492900574006759341647602488239965327606760727060010103885333783694435453255941089416114771721457866321817552688638885973412098057250422232128927959944160082286124449729355895668285088124801800329625411187325093950625599717985537337159982757705027224790094598724829403638262000344136306993592169546716422727940605153324116628338781015776443195866034802686524223671695941731308956519089044919854891420591898853197398637589994929192753704482682469910346736319664773441333961470089308239225011063138716033355882759230811088402789874124963360328442825548316517657756421411945288180495021869934300783331525587402083685769488192419463742759070819067230442951512256147102282115596609660135645712483318954726377928319238785709503758182248291537107080066672757955549436162273963109632380443517903317443304076319830468606119892264748829694666549799842937627110533239344094308927771225686885881439479432089996595774841913016083068122107138554098213742928900810739543616284106880835754940110978210408944668529641898617588171020787325934196660501367969675098838230533382219288319953328111042705974046352423718171539678460547204802621955151861265011562529159764356176865641969179941288436382819465205962364300161638664284806368347978485333922615110023703500563747337036778180368020846025364373571463136414966210234194967410222306680260233335931708151157452659073259008496422741454685195239808652472842562365932956526682001067420760226685411206025728424403944013129240132824870461851909000116563106329079828801610285377066759333729067713906366127602358882621828599377402965915498495434778542239855723686574690518489454274956771198663226765346522255354816365402387560807171049595688436074491849715612442272900562266510084970690342569353894953753873497498108140370198438169024420034028648986237442473987646740712046804191578360494225597900037253907349470720270906827274848626035904547095283953334015878361828291657780744169909171382277095126904291282759049630465782858629592411916944222669340107080915774189261237733536808734623709249040324524949695280969879984013321021674215152006532432312720313164519569883046436008007009255187958861416153850444457525600857603633157689671326441982497180121107092538538740557483012434000025130421490906912013314708724036015150989722665614136671013786694930525776339491923426298654231619367210915627273369247263792297467754198484042568420209926572935880155926227813225310090491337396189575570121534860322940421111855207951744828264027272713808293391713751948593897300711543995223864148443562792609427522269851023132245567177432495306561829376868002268626041052737453018396442866552641543977851031057158547963142393410107729867617842651703734837202090134621217498069769945374570928392695049717593137523535485771441963972908111111573055901674334871086388893624340381874624670139733836611077561450001318937330689374710199475953666752324035633989510407322660944323023870119856828924183286321528044995152337257088704327866685660272080011261404654462914103985102356854932407506736793790757809596599773344886644650397457324167076511929984394547548889067910567720154498613196789221090522791486729017246288128455525204901107111135446894868808454221799584749498610021427426928201930102494701212955893804671060897346185405642956812698500713832109895157508120922573381194210183267316750769061902820759715557102680053527555449307029361553352551647502054680445083537476081694031570374765574735472792190764285558931068801102792185020504495113224895511421242702939760041111419370725042721084376778449205242746758151364221887032160753698983597691765762715098591576965372303388796130560025538300212826998225784471259034568345354109772868249898230621861178455271133872285690025555986941191368779198557176360327536006349290945925437276801438515957170489445434753385841237846147677541279787741304725935951694687755013624954515478139715450296437304323757741758563360547948073365162986080358146874201546410447316550957869709780101688543290691593920308258347592527304773649638818884479336973438614036926427543243489582536738413247562811850658817332992712549032603894328904232763280518254747645043988158170022255124482912089985572682494336406298589663255221183976166894562617192809034198242908211710847107824983767725497461902561569566947569935418033304298526180248635134273402122257143215218777858313082959022346348359040148119824166058781822775936663573610676229771885619307327446424607858397625355174830528738075733257514355477979279002730227495778926103215359492502750422236502782370015443052581952647088193413424340229276969690026319781588458651158409864370113741420943319198860505333672467421004637865276374845408047725669349188616272944048324893029877383920519175136942677344072933556322977909104694011323482639087031010727111487877131343703722233894780553668026271548679757069658967751572030989608928694821707353110826831453135650972670477445354120476645619650443461195512246626755769773073575595663321123064035708744271850152435984256764642625807687451516625366289531850418676576729389510742275920589588328150392275667412795249903153518322183468649029334426546197684574128117685358211899682132842614245525049877730288986235379589337194661027460233182338362752654535022308288085968018414052999940286151567161856917967246827526825546029924472989024994679226700096596967827390235904683901023426435991207205440515879980688236074863545261531497240320279045674687952833750634189590465533874289764874322353060631716704003054567137336620694994514796790239952129417780828992574004831042460582725414732494126235455159638136083327669995268719800289467965024101434474197830442251450048148970866985340219276785430436127306613730561528883866154523597617621345958075504539453677387800490633902068994445021200519877070273947383641943573923302514531575627479060539402345441878052719923527439132817849424732895991195661670325410599155728432083298471458050162533708778781371573593532446150612225039061387566202366479144769258176454738891177600559349629722329974241439301520430924649539299947246662429899433871705731714548985767702232029833727935894324395837661204412337045967801602438073240464486344022084022247839346309069923499061254883429497224753692284443674646867833599511124967993270772490622343996824395251235753013765562046889887809887513484601484709446557977023615863657731233535243931803527099617763249709172384143877850765375181639514992993990311066512963516664844385314308927109833660445357435366056794651958088412435286626465363586983796615551850681689250085431833039480654804213534500614625682200837876040533445323712740908027073265244320074701470633573455627306539763087883283493390657233706151300953075913960556729808361271117675876611417500422723566754906163724577837151753480951590683151590399663424933009609258752147354408683554208789030221117627865300462575349155394026460251227719473460990944464910372845033131554142103138465941736609407845830113099434538794373068965492300879439298432036734415659416975396162353982137899726497956082235652524558080297080963515049978162651489459619967717820040159443441143402744983297917934232528482897645719667929398279494639160325844198505998387446965292721500179429143091344227002905728178237526114163818946018903672221123519815680396364021366946914949477291033904196934155674969468672940500485057072742530691690716302276060621058634853915305502377764934348934717703820520623779944743797115912785549136011050121269421795714821472095080645569381306583676033763373203258485010527864299492195646341325946814611861906067864184050835074070738035767770009650598604962952385644063799085351451661184033742961902218861257865516730963882554404048822612701385434078164805784641573686731063878292944079441653467510772213786071788355279363693972877158187025004728124400009447569124355779199811097956664732654411441038176266807500789923315249756718497863377530269540766332937894345097530415018617003872031611089916316400994703535822505632948601453751072108211203210051954589223009007972228338886484621001523400808517096564647128301352382583675473001065153034115415294915578505191666731766102930061861071018615020069640210206499369517565574950113802296665596900127445300194303140502119370114953214718526092940504224814767509990814782926356888296947824484444592967937714900363437186099849684414220415257047573880115802788872006808686295702309594197846937075758354830223255359049913545438229186530283922358743997818251747074207065055831870982229327477292461390071431562642187871992937318878573266666769720674161245610336058884187488795400328678064510171987335298038639013033302376068246599316689625861608838521813521255865997064041568456399203047850981291469101608413121186550607578970422713551591924638373464588666459848452691265306985535961365591607026896924499460588436930356362315909964437907063694938644163479172479488000964109590453727523279294584378175921881151288334643843496998951135551562382893391625946110166718040641245679945385757343193713894457382023229632423918656893129450343755091765282842284155468600866892626412511493305341578474267494355313138539863135349560985921018696390629433579521661098953067742528180249180568936102319557949749333578104672214464172119801935094992778490043391337350736985235037472926575975120560997385937202639091528991172246467436139804003922199982116254820203493860949104803302571871131929325911331927925651781793870228898768272726285071758332299876713050495359040575372833861346691018014643913213797374040337715084614218150195188407853769391848985376818966732173269629193469339482461520499034870106775328358429373484785150678748598520775053259524062739785456979703558966784847881429067899720021420692719985276714704302293040536236201055363662345360140786608578555116900797113320264547252578966038915360184826940552815354786949947893382260915008132888162853009084993574345427193920376652573903489363166059079629277388403733228483347376933011754741680001178574490655792352592697064908381929505800424137492692948847121297632211694576624836942291405147013904206583150990156481876414621440816389680991653361419144462365839872798407519914724706040964093500604435090723302264482544404906420902446055674362123400323164495676597806200939694912044786060070151627429879509316222668187247852047973004220830597607290934512054624459232202020251637172958732211041836438769436536771901049116559027790601393232155721617313604885155833907440985303517837461811434859347302338682555003999918223000143961722921319175187925136485968426701123502965201658313846365953958015894438934890707154064444349734125396227953947903393759160605802986527370059254107850827683980007695909393468616292674715212566612704357747499546218524955775922588285428776446184186977809681057723038568274006288467230000367416829689928555727263724471803796639206123409762862905145169140269060390376903583881959205428657751825254481638126476537653081336164155107844293482712384704572491107187170951016054533933446642327109115236857459968988023637313775263740464695794829578733327640741622140090675980472852872202097842450813630099018629851901938360389178913678703156715427973545748628368621010955389595780246441224270945057721216720696909441869704432058330888057106571746118542799060132018823158766913657321635608848637343641914036914852846126445745836474801897131751638235618936509261025032216288514452397098217634036242504744034738680154049036703753780412274505994946978639584074451297796474588585175380247428827880249943046943407441984752263307387598301187599952234078797482905733389383792640214799076249421046309717179926663270820350539913991517734603498256864834029011777273394379922475581426664201510235936702830731161046132713553923526467313131239173363576389410959973750736146612893181178546587526568347253252249869860966394993237314592437057896140296447506527387066807589500326334000639736028569437528229196866844239231651607312231674038613792785845066631640099427861862140181374387291387341518505435680038649558606014617562908777186176838650194558616805877375594929779976687662998024163060931360170898466813003917092424420496798689763623519525079106209842221647683693041610855779223550032532406671520008438446358140752397182060512515143938805283132164496883231749607022903124568603482910795110354055055114975763717913053569092395466001731254245618816364400349774929659332955357250741933900269731554882757254686627004384206205339072029347334941876842579165724292050065202606332774509605497303063841813806967632568101910150968520651823808670497473094304816875737021662629682343029170262157921882298960685311217038202312922209917201484663967659367148222460952189944537600009182721717605765450719966417638087796882340462167480469588596642188704833967665090717997885171919590578733211020964438974266058818401129440195549040766246120737972988970776253564740580971242035430684596868060055235077902323485051375168283394138704220505272347317435855057334696635163530891413196060719752789626799997156237754024857946780920368599552538699799715959807296759391570253482777402571682986656478134483377168353846516840767243480781460628839658015450897320111076235287478999121972967890617011582322392984723208308015281530434634827475256977883918582370664772418356646071992760749662533469637467879832023582638209354440224610394271555831556854162333432948709987278538860530531085274699009204258034402242173702305851182987422983313125834159795309654809455436905831701749548937369377926245771770633235702284277281493974433386846782319114750817227344461780142977126646823174337987982248429776737184033803631100800155395163390273273214940011692536712519930820299483045895409160271130998558728047323929466984212966214638790772377601467642759191776257452292024085417023964626192357552542583873051132141762847410986340169741017221919820622665658453336105422905253414102186273810948829611078521088292332738011376366166869709431811348523874544983471101070109788711719276604364113710184079816670484527278470822817382077536043638261075131101428897181221714395313060410301482041678929413212692155216773722292268741066372352992667862249826355555622649304240387728325581022478130029330611824169122978075285504109226011504700641927931502244412393268135155023484546053106001019627297228138866338323037673551424056999339732266313985863116459195293004071883928237884191965801915569569747716536169176569296533309118534286557519766830060636954827884006159806283950586412139872318348189953779406118061875320679327675705767462813240819013556280311681375123357524405568625099106640811311869462044043644872054563114974675113611434213519700504186750750211430940289012764302006285596387406405468853438510571643393001898039286952575566866640500908129082184241273870599121005273525814513100315402567033347233928615425240477009034425453678691087781737885891828134305664777180820175194383539824711171553158925199598532421925043771228444598200327568397611174692657006052948209138470500301792634882142970715286714063477158067406408120510424165645824878433560015379296361500475604961588518540288481622118282757445158682134307661502322647427326453787888354849234792121337500277086281028294778754479071282422333382415499190551786165621475947759352691732511932912062928169583092498285101883401974423349204647923685758823111480099871704399477589284423853715299712322510746731378934389348333681462886360922070854654606914473874746692248890761747080420561243294929763888070899327000137536678606949411163875970325609287014062725253099859544748806811206549368248733994767627647408369891604731657141376069517444252372543929976215104008739296261498051591282549206900157969052587766536481558645991471688820202263846139241391302912919411484510953469941967826304952868427967118416380914163249949798759805759014642805407966055622653436532123475429320136615841919239994180465727827685036960685885776014071643532961368628734701743032570443389273555825999598084482916989073117889128913457819348667405501141665392006490402787097838778099090044048427156150228154490885954517206649261723732629444473772918499896068096413871975741751692146243641906836227293129805321316499226142432044649369049014925735620271564422677450180367143066760004546657175898097894467947280250442600208417402971548175847019213849360653969562418442615968317354344942055728984286403903824187923207105776056866179343695686759464242217472207443436447321780522304410338798376829756358643493806442720721716102378381059261803010638892666725949350891011048075385630578668943673882792184442824161348084625756584520379763850001253687419438243848953689422988185931950598935587545907324718319675011746370422226632307538982010941873708690709299749103064498849055508232720343273933075493990498562205406310728846323993066624143409628264919241392403183936116047518101722482848225477578688809731067345492641272159521548320025465895209676174687854154181042925453740953595054357301704462450781468004232170132280455863366960904983677450457093565888432039638177271447141179248638600919917660166226000439695037379268851812948277512823087582527085699714436492679711692896716099361606912870322731922113752266449185168940809495836348970234874290924310854657065409874922130833560459484868341271765515918019070469633990635553333588465336729150233253834071711167122852612602446848895091339237520672675302308109038554470106232393692514928925512550685210757845517087699088048132997549742179633777598079771211789132951980746544920354671921557893878398069670330431209569683177038248646090564701124765776121681567190265579569084283900772153803147929186686879714748341878450502478587564752168987852119031503411987319031041772464670841074508691186559951500055182028759944446678791939124550015896715017892272085135630812285577088908681720731083614763243502631598177210555569902416768140012952495543944658530642654839330449778444346581200621781218185843934292380033791585609740597302864197372187293372611320389017117849942016406678977147719076245685228585576980250020460630688338082055571679233719472589460858957607806052717230593864067645206720870715018632825184823567364652942675002757174512098889421350367131042353812039594017196048077715206050846818587901246892674944129272243380267747858195330197945793573605468922215643456961344354874435637659488950461793680911413678703566239599706807467775756467805623338288647875330597848872382661263278722218246430690445761115290364045760314975749311817882257113858736239087108387411709830012142155896735256913867694046024610780569525432812211575927203839890998920726237173110295668566658436774701422104158147328851058449703031845268443640450246762105349149812911397065496823216097866273815403228035642265767307847506315208348941764039265479079659247153473585760093150462348172578677779536288418104147928579035723146539306982542906655099868404119447081802027094696218779976252173976897860451331352835036663022628558810031076644154152632330906160763798303483053303602756318434358419769085824982664055772026224939469974938645823021766094663522910077376130672543874830085392655413968417474742151093012397580954707664841546953187213467277624075588821455678989690782149884156862711802067189988086133092681876515598257071804730145071938469347375029285607117527451928986680739473483814877821937923420900962670873167344164238200860065367069274419963059177199130757805666004955195825280592195372446845962683336845444747340094633469360063205462018422795918435258878461075978864628084220671440264136106283350686226654280075509263024236661905858123475546763832329361795074238513468674314851977701575480861670578899974652204361006558798514014477928189253606602598629349139953069871782235657510852240509316034226171945710116446606856723810593245988920087125747394835792769742533396838155706412521034620313290555217338613845799895603714681094019969494296769553839026283603924685726427680983302467213936917642331387273526279706129894625289890084500544469952026213865709873747479568367062816074071489074564118468581773767629225872145243791144606762919420075916026026622464643783343896158668413629295513224080957851198648268824493766986391502069508469086957758486633882136705585181155071426161568602604016482002720095410265584268734635509784519128318249516990282023860906306588165277883970992071560038978527980588245594648652990583696807102280430314920751644363413492710860106009405580405709953543287093284963598027557304532474276737677192443601563686680934714682639849583080323571803459527604602569215497144253172599130544103348905128632710402296018221071557831819440604813729179551325101154769405867846953033170818475208207091044350915465428927460976880308509267068055008774731329665811361363554268072119150656165197480972059990981241408602371153360076243035642951784451504942510817532194069209952835865647046629199116850713255355564855201444280517595746720706637509106623900801734468701099584725643372994003785375798956643168131963042703829763074405971749839373011352574177099624541903408609310289546407611919784831126319995529511827887556405891251642327937091251306211246353117770991773844559833799744158072093208447670394700148364086911406821529686818953341949795778676282257566378927583061736192513656254024972650846435678528950134048067405295044958310273983436589160007755237189145181297585137285246590721268948903516968473312015678262352895344154512216619744725954429572468857124597525912079199141052853311368937784897222712849951473456462099133975140458722505285129208395334716362086142142794681304801423322668965934425380248274328313511344276783696540071879962425442519201685562754677564425551143011349108903553003155440204750961388372452119734933629742526751460386141996889975017954232772230729824146456820334365724045959180053490061990070453123435271569991024695661575509515350739833989502709818682622030026882836525444058199325692339239963925605956054803448616879184543460629383847711513021872735933752346500731051466470509037665211729139536581439382456818953526865955956803517948295552679641615917597809846211655196384356173260380544620419367163450928565041260147183005031157463558658653695953686016502602446544877902592357051665367006628774077459429768688845789304368740664145119817294420286847131729742866643665204993653238506224867304074945149730599708668363479404862760917118302110041990727629191481919813304915637350845501131385399427483280706562549180813336519483153248253768394731184477112695551507988887956268874502153273734725571624079340510257534595485457930100144207748681222307193675369971680980359890579264113159361821719654615419741779008774213962762292956749113724999391876333536813883527820279041486392517633728406724510425771219838157977606525238196746165034208839066442700323092476814627773458881684227594079245504391779202215562907951395820045895781419186834259854036376707655251728706721884265833982847764690529261952800617101577851545492816382435368373065646872383088316515819515143568252642437925588691160424034608381253684758634516226131862036388710080968643663261936554990598293922846904349232581092149860715684258615998662524571882018248003900683729430567495991520159235760182714416700389262116403738072427879331153022213560248677865319145424331907964780480179095336901287824365864359380200220315361888205064164398366434063299364499464146010512310003629169750530168934056456458015040888174565658398323274289913739454720303920009072516365773338019012363836510426659054557088911775315261450724551534565560859371404786476564577671833113877317787876927330756480284465428698170840271195044358350116964169951403427787667244744659537623515077047151688668492547205180041209883320159132461529725696797669467894457020527258425234892639213478284000120724804975086015087206785617956148046985942505497227418992193266804092672609468708462280936159177251980070762164337207759817684984696504892535856699435405222411266486139441206861339066148540545452219909526094172696644574852449830145230449345633009446516484325584823746785561837582195818857275109437134075082095054051947922754621150571856446656163994064961222188591987219678154265716329023321018184963811491561862269326841731997192380377653404431912141642143562069356300812960523376834421755849238792431334186497970571760001148620319811980316151910327774743869149516857583413101123771888781423412266723459932777109900572886469967660750089365226992284341279511497576573092492689006269170701612561430196921173317681936427591038225355502689543968769791992804055036191337411706309654509733705679361869864041479855755072294325586244314648367372884567172676764223489055533675387601047476303023643438947504193623400447225990222908794635940043362114193483200505908312451707146163569986691908529228570553746623677919098974757171750476023536022605751111869079207629727198149049931277030360568256479520754751022054211591606528641237882449916166904279419238614518419752765703911404501547745501995252195789722377939734496364552069988047377979270607692354840812045597919671389359979677747872907134983961947272408190521590881028157440864143172292270457440606206628626657786973663236695472036687768432395257713303103538131347064935558767530088587421933641952798184403454737960251178846442797125712809091866498893147640829706757719182154707843331366604083471819853018158539426074269200134814962671764994549521995108765583011777955524489894737511247053445115927646331674109979138579308591474763651191825138561937727705928229290829311945542334782431010019646213268778759488533009560887307400529789025271774528268535655309267915377428344758152849358479127014852221145728284633468116476234393874499449521728952274310555760293082537757611132264080248738196261440449480347375452132152316502176655623042137670798050592504225904428177002975043150395205361132869942584383509868430043472133610192661655114704773576666312909329409836866337149821205645102125824271985346161953706045944651630187180856739393999867611649831980871832017105468682267290398444012334143666277615126507590324232387390685732380411132209549696269577423788548518744752064172498854355374049860566736887582600149831956530408874840916316627669970444645421840965673065996511029639864300448601944263185459156941692965228428244823607334985736337763670026410454281565038913932776988269974495784095979387095715704337578035188130812041080639416733566143858255371435823335258525391820826634435238143050575320510378108152306614487482331054556815884593937373632280880511502238339069328648159971526335986724286489294258766482579006927685945046945061895086428738215369112233603020385594762032527230776960447789779326768791942802858088188842172614783002217553758810965789788923089954974229465532229354608919006146529465463217317259057120259636149763583329397994287617895988338001823520845018429275093052849624716870343040392754024475795340996111347877990893322075740133328680925607843264286723996190861141660615108906035450794275203828379041746716062361745395394790434573680813564099728332311772044056468860630695388776405312901642038546163988410281120544006895017155403331436999140416596792182236819151464300757531908108983149075293231381102335221094416990778229949321699452808819365006831976140876899481534573339354418304553725492259443586583717479313585823494173216130819290811447019794232000441862516859248773310287434102492947188744949396698735675952539507929232813673991365993374387513179134343142734264901542837775943700686436069556170901277658166592591482080898916953855301435714190039556336218081380287047118123934003112185882662752037309616739051002790324443434108209582658272432941717910533216859860136304160899108658641106223404282025436815267159076405965514460579679252680617528987091449012489834635453768881909616309299183927498169424004489464701815743128668855988899464992599445087819210036979346835824204657727662107767274872503286847987965322018914466005079960861416032656509267435595229418687257212518397179057982243769120560541350745136732779733770047426920933439839570995472236041351819722204498184184875779425612915345671948641046736539113475991277788325840084628248347914237278978071267575034014395707906318884380136280931406735714865851432087034779886254299383902098289547795995558878264743100025505226882708711045299894720738172954922249733795304932364941751553008712426238290534999772662408844697302894641192489380324849007303046683141443413620800534909645179587406544637069642661896439947379819528343893453431351428288983567275950175762397969996774304724699898439415394265810222388601236757246380915337548568923478978129052783701992637387855821618702282235384054917677045587719938766500113834266611091339289010090879598217317157849906536497950480206872120710080931776317407521096026003341104491212196503640290601053443973733336743749872251832937269281362377382633894300447014740410426556395855531743827081763528400840811130727027549296779262794015048334479423899816494474150932643918424755341456087206766085017941325969920954732482928659775069079249346296776899409158322303296283037197939665055985471026758294310769359285687203868077095968126370385438317040677877484197910488815307052608250413993342748870019098470947843987123101851730165056914469018256079536533157276692657319296113511346596677977869700340253278573591567886218250753125115347405112815191479334156474920602766041911710161811798736968435050583749652951529146283150888231702212674978359370577563275877347865871297586005465753986589484720956469413278270227532351129955601811231705885812285014473110766837199207681149518882491139662958202526210297596084021662472347147729121484815843879608103318839407825987301952213116755954323254434355078293555182319005422738757537835049373667405530880340435877344377094041127308164201324000186857397286445791893725132601455930187253349155990599333085192226399723193431323592282594214239604787749487116317943412907690895509226987822523136363363365957995210500108474626122833082933585342907732217683940067891822622243929768045167248145783110987107248041015314302542944440983300622755773829290123014190422967392093739159653957014801809083738959464244057904684328581172451941133791285670858026385825891548010042731039618931390995157413748386121784576455954982543671430298658578436038699364082836849850879538855480269848112315481981110756561345997566133705626310720069659962610024765377462314197871840194697589945821140753660020178681232198193945292250313551132677905812399215113549253817885495725552009170582099466343091252329258674295765912917902480469266978235987858380202629296408430686901525133907792864715922211404303051673168458539177722164393822732940233408729836777168692421801041934242193846114915195164284357881868510799146036600427781795985760300090812066433858253238465448060104572722650481133462687792707192945915800970742260889296580374060879976836320680971463731831621630270290616139994016613790753724798786404320772206407550755796396502487926405465658110461555752332959746413093229163431188929656560654445770473426821981851361983339790898325896121731108103865759653403913794541896533851348132013495791131044262442614117462818424748846027190037171050380235997456527487182204649306579048148749936912550251704952184668324534843657569843936710240492793202190701571040933344230198449223197657467001970245389012775033039833286162635364510728190076735624131059104356140249121216890438356435273483845474992554441199944471595358061602670115913221666849309672991826262594399204491556906274426206837605950699107386326035017472529235346047996425644756628075381820012921607490223998894557579816320088005873806468637215014131030899299421369848951501012101567771331166924858551049352835078930624132274688815415216807364426569789286848259337113229877082046265594606432989849478892099299459462954852724313197424743075494857589143456099955998460672892180228578260907226556880739427715655368204628584795888787492345343090030008250247153108225973925562299790972991176711370136565920279914106977113324195249929522122980224051446166294677780318679746486958013413836069217279171803115887854943465866589426080096375123897134093051126323986239080980417713891783582621837895627296578468432807660710817526989420735203927592052412932278207107390688056880489906650921738289133245700310415879322033262520277059030655585536735211230997872332697810942299848762860714154732575999087371776298715663588584003133801274406815485488562217022124050578432104600375302509643839353288203041593196239021951715054365640702934215831386587940894650286806098558167624679331249213235477012472343419311619573916387659721865306715232691840199849045626265671137254980801029668986239577168052669651065197876269928752942316032649883256451114083001441191421998228139048628990682101732633431800901445688985674022993045933905364039915368724533913309104303003062799491651894704192351629512326403705955750048587790219290553366061862590829492565005072918974177354974481077888055352601799000227368816006872744027116026519191726280999615465230798787489798707849617320065932488606236125992865656730901799502158280422982985780058100624763961267126424077683440845281718284487701219729815823285882099733736094726428008691572825585959064468294922974502726778243461549744968096520554745020053706669420189501277655618014573662948301505344536852434017101634713601305011898914292873518796755404415549639120549637591072936813495535012449526926196771867991168281614491770981465982207611200556801386658465721311508532590914569090045588183027547680682886140766232572478481952088360620693652016595602944269185656795317599890824378839823792460022216057915199732575512028731523038908301814613827667644919692471178184655440069608893112174400323641052241843458903215899280361016343687442280362159244588886855368771263779293998193395870008683626732805484463408181647340915118594193227394450210864429580073279756494530840701578400207684144386191566989457832424592599781016824055748160984052102944833824509783149275587739122401886362313223861635168166714661511639731383028021322777966356395992501769070435519034276110214201465413087393536536841106751152363480881463813129082022192930007734908591630877657847231234474557402039157899550367419002953681906697099574898462058952545574514078636666109560011425395811335659063541425085868616233514572598813681638423082199004419067402183407400939602711344458845994212465260051128413232239476654512072064131263958211093462441019434022089355132139720797265484100106265662569098236937074506620281479779983043036114172235941984669485574798102823324180246755573346781993293091260879305629988352726613096368334521616108938935787848316959126659828135142494548444759850981390739270081715565404615218524984035332624610739126310265738530838727455519003140518305234551214952579494059855503860601449380798193851296802254718908204286640298721385071689800823914764690282738425200084912686925174134984710480687085451556324372946185292490647020302924853602732740696179706555004580663661743243253487700222462592243037846109675546695144601268031126042166118883506849332095412967662017142196614325332281534481716718296142573300454766389030022185428150511224512913247585533451910790452082076437174436275937360208836504623479073014831641951719208059886057115510571685803418289189214562201382169175230155456479343184695694562030329930003723134336850195724865390502664814833501501704456079382728036123790390277471996150177679751772671792148802481657851546868584789816547405663164067282286103442450938080312659839187298958655755637031068105553713027216447812383794282085990406066113497508105849435284800846203895984517933783553302339071719992265686520600401990940656334736252165435529370369634710140704597199153415505360317978622634810745920082339950880050591163726924328971694883032483283667396176178991155449784607127921342345421965887446703964766342767472368261707552936974112627159599550573377989589300366414021733060641771627224494647154099204865182450171745423917290981126440431044899813891208073513986387177709459908277601442197352632199323159552497151239322581338050179280830362222277659902542840646270172156885693891253018214663664389845263592851659964342589522461027189171695731050038346051392257950909586072352220372973585328342529813219053459030606347248321905749544424960803581077477606284385329124715245494652724431295002539242805031551501965159622356778174699163475894558410786345689765163023100496600300999434946883959054183841275621438371937648510827601259272366202910523683251042764612070651690905407619125398448443924784292183532541424125397639983088001120953456761442796055734803724640247166300069256236828590993203756490556809485976591333583296073714712359814732622328481996737081383244162794088473727461673719868216421240501699850109456797492301537629520257191442684397295894195777794465259726285327077533608523089582275772170362855870507748033340179851397381644093255951070437468757958946234394599529115909063573357562849758913508218436455919234731201941699545484394765820304805188614483813294924024795075976958958623659810077934583044196368664791975137346459728983733511754553592674518798442794720966805463565392766481464098193418778169884815884029112948975446642097825734208112057724134660564811990902932770056942580393080341265327057264960896764815257664116200113938368062376976810770669334891510094322372764135485787683205263005723546541191126747964943030029409776056458697593528973294010215366427985431406345278352472713313064058546786418955834477676526546275341650182135779743435163456253997833881491973722893819934986915663650742948256506320998156170708817606068671032533871777518586415324736253893606752215094252964484078458070399380678769943642192791766587538437554128382607899384506381229870491755620723831475030166432323349402595072666960759640458581046941181056014741086738811547196814071326031252841659272571952003677405598028052927187229691181855796903475331791556859470920481046584655243435888221785598924142155503932541250696888089563857905320519337551003581401002706782166292469304735964449377260690953365193586557452836545002665716303549694178777682536327813900998493153689642885407882622642741895712532026525493519046188740857665162850258044366692833627258826917788847866589277240437687264104921902181550642048254156536875348891032484897718329747523875010649821263642693516592272433447243157604743393424290735842956994637550426227031746493859954679117330776223241067199520696353810049240617812097003208608338343499162311121112330840535256139344480417796223125622309568186875617431560819189006344597175508916767262699039735098757034161235345820295944442173255412943556304442333701985088106978037813617393274361440926063815804744135269207839205083481749062402220175625912702534204996825243993089849619346510083938358990625678612632965760796292453572453749982753424539161320495073239473477097889901661532843227613333891225804365403864800487530715070786883465283581075907008914404099241998749141220537498177108070923560185736963000684790491683374684894888893553926339411146995529767530802610486604691878211035096349809966912529247654505697458073206503603039040057140215474925597638785417280727364935446388212335754000252413335090512307469539150164496135649652290080970819191877251671955694035763675640447230687684066153120276238105357687822970613344227465586337575370791262864715783589387988198608611131567752567309159918149245583028601266179375301140755016991305755366171879891279433372759925417633896346230630645000059862132232866768725394426151126033796554606593713974645927448174077528036115660287642966165709504827741038673612854324658425203028074011839387561138377732779871878117730077999284905192108007112423740420370934366557140327283676179742525165331040936565639429686541991852862646769278647017029024362779842862484611180360417045599107012513608338821532745562180680786379627537503167004988544510192738844557753213624217836379434872094433720191425042246996115263472689839096106561500538273480553720257793698257429994274672680321183467253814718097897633706413938763504879855407411086630866088616049103365417307210492153830498827551414829817963899321255504422894663991450520114525207711762188287342648710940086893347980775307696915412179032529278668490213158468754769775443472892739023776748166591108026679268589120039846457695643555247830111219139029398464814489887486600104863917830015043991349134881415959376641106329679471337361716678272511945228173476343993727265467012483171314166684101629397842600870105568513021027150022405823697792967407279327914991813269664514042235200460162141449600245415992916461324129264615126950983707707816782494979043584230816897347264967279371495275269630665256953445968976738127360477711902463022713484589335732927897535963237238163858104335783652541879004933335726406538016109893327594166497960428313227921759705613926152219535004267195124252292395781884867324586070545534701549971391464497819256395455693852699392495392185567163639383571615312684102230650824878835817001225046744975433089964939113232581219689560554678743447176271779415151127422157897496667765765708216458697688017824732846874862110718777838125206870670981667227859109660337064324598312463445112083568927212817037646430413982990459102463969874205928387326221709704039018631802842634988816992669722457196479642814900143474094417120057794583531818677192957451772969679921287863286589416888669029626572951397118333339504847791068461206936916423673076823084689257890156922266198519803418859417225542229875972221193427698759662868260320954894794501995821160844586785518588869577975002742718871960823079667434597841706553404390250684427328420712802323208389822567232204657198597035828826518648077769508695429342655305228220149949327542838745531952803476219298469424877568506071607400584009981378764795621532357182329477988871126120113882768727174040885793461525271224122571881229802809417062365287320910532364972467508240713926494230942422393897844231018191620478476358147304381217406579565032896477754787515610921334651162948615170701858335217054853029047852012776004202763914568153734015121490534222145494166692179770765109027874053986297786574747300988950573519672655728401801431169293058403243253412954373449329031877986122528502792882830900838971377826266385229703154668061173139738885962648003671221036584183748469364846337282914875095777470549513296889217307833953670074234281193874146103750051349664311985525753188307382097438109667326622233903853761772500071918261042087603843834539426341393769827685166765443438004205646127110196768589773837492553817708289233358831245921706219328618124937211677976122852339160185537126826501086764003369095085003622549807508045984724233644365144799455072325409967159008910225126507078379255372730724061444116122708509788256216492123417747593756260881558044658462226661116525019297652098061865743620064238063683531107139739658248196813269700251070679699684018619262696302483192057115826002172681100617513108754990723550256829446746537187391731407121696565440451245872549996757110464510206060902408735715727103825194655301126893738930506939741028085416027624113993129823034342780343915746415570275512719881094079997460416386221031738895052175028721141825690428181718510958663469979578320633969646193259762536665950027734711257581979812574346224268664546656095436819801200392703117324992482598509708070708406752190460453887220907127648085292569540956215684128453157509964254068665700271452156025390840636745746934319016768935137170672126120150992495778808199382459031468562436842772020806218606822315609203965705139215236166148596595027651724487520890356476357485573271637742304623656983161741787169576509802657769918382381916780216896241926621770062412395186999284630793283916421144599224697522157811498662082736516516080491150010364197449783347975984111318141639917859039129837409666289079435889232051749849062981306508819872873825330328781501310484735010253138760701413653838226091903343896273303998880054334697331416983345491422407924628630436650872124799177384154800438420035986984537704546922982144043040049576559287079939327043444039575114535241102879349645513891581317242840199577930288984442343574595870577083669560631639446768506028947120650223170392495968454259253898348543529277621283209600056116315204868599955342629339245845052584417379451724672622527017682003201090185218620717378090599574564961043111576544377760504590619742081088230033470685730952409554123852380602672416908004216094341303422229265348373716233840972814340726221423473044941553994433931078102767503933212437466174717457579178822261905173442375262539391206492856951979856394243839562549178111891712337218778805664806711056005920772768074050111385949216449326278724914435590421141072139494576070314972700455981448383305012781389034883579864070336791192820409158977272269191212700940414553568465105660330324589771868811453994437475518623350045014684209071725915404924885792536024625025222418237009207646812552666582217584439621670548938800391568124308288514686734602336013997547695897615806861793083844799068634299884619832652979269804299474205471443917686949554004267374981420323658148804607374493834784245314468743837735667282254806737941159972868185373580483510679170655658454387862381352792177901335776318015592782985353100646078854658466404282904751540622819795702053873355670988651418852597278383964992785992205710203404243458422095058532145526824482436544182015710979340845374313968111536005441973471494964342823383052042729551331081188687816117197770376162355239946437422614000558315811250292196122798575277352961979582626879462150960634903379281639486371042153264973250406532871170617415320568280420964571192153762243245185984045959407199901240868307756433450774988854264502353574887416939726196980463255069643032476530066816489245609434109888986192876631725305802690234706045917431004325780817219802553417193362165082748254955081419210922557826077575610131227454327711712360562823747968004406275365319912675463597633295979536259699672170488994077354469356431394929469644921341424740889468071561350648121989808061182701986936961183682509441943771805520629318836087997671814990562603599347946572964957292371614051159462242836152336420544988733384644368220487518571339511510677883893058431369772311013305233231797346366561556558922076055759262581345757537650167361877430279170873929213599969399254979025385869826319418996974357453442511976526088273063839369173704509524021681163792079535577091061560902378051938506894127025108706868883642652975769894968298805733352316908275918812283501837511946133885168928615008859206482284141786913095403140040161353853214831264152383263596564198617968403134328019732956645485131012497871409924054143081537244995722295357522994052750998714525396142738270598311767796298581859546281922914134076697245713391128439801906238112536653418487819096261655845372163010700848635064240107606079175294546880978325878278946302317798044953728232655652416175899524379489123230832870711389911821082774523074306368909047678203853264846294299342670695538509948149975853505761579796245348309113595549336439013147437015466237484290209723246820434033665756611578995208671892817020531956775920844582116736896899806969588401061417079910070233359139383493110968105131135698336722067778986324348846277845550902231281137679500194886430404040296139434401447030299941059763719638531708200966007688841304946544833233527917978169794762360812078132335724009525202590373847387430260734215935542145425389010309389589396938279671581596615382540573203712197785741808529941821638503019880030667550527123178405623452831943774223051363600811532189020710951223308619071286988298412099519136312243028349047140960554166364206750615347828489262487636843206248421412914023274335343066495652047241267911853082888636383548273346255980078754419113157411408697066426824092154536834983277392169079203699023686467015168703273766429479082690882905760596866110556276472882688747809968310890034659670179512119829586123233374261948809134650993564080141700221725405833423056747725446118915915861944510936056308466677472495725850217131024600415246531337528138633268021811731657765444922266172386838576988846818038038032858170200065819272933449544878920912382123530304411781024774526002118285748731824285462992326266176071860840920266648020623450310307711718702681828425606642804156142813210641917214448711961818336854502733180506600898591415594431979461883686101583466356906606930291615250480393085037956574808455725445061749966211584785583180835207754743125518198375229112971207070070563112922595702543091237385991782926894909892174787030257012300356098711673273221035739783213067694166887763746597698266149794539499685269643925090317047948159861142108564944332598691273056186355119128807533811042745244123435337876335850773703411169862839685714405453565590719247751143745764877059501194248484597234568961813468092925786319458756478269079371284597421499976995711956672435637928149896021543319713204397566013085400716687038156648370605595220111622443520632272166879236466666603712908208838201808801521203531067746316154769528278412437572831185817008733981005988842101631352016181169035183584266826371234628049108345386902302898917478046013584996303741800204838959357342830505872966117384207406576881485796431343939892980476134861192239148530794547315936963111983050667546594254437116168945458844002928641233151994454066851882407385639385798173401281830145047594264152825262216356678771561618618009715853701494402724939309638862250439849398940744948177053895335305219239755766763854274953270601039960081152354710438783147523628936249706729328259506381820931775303828951964736574284656074350804981698913388819729056705235343710847402543069227255073770304572395011351698595171006018497340334175387200864777517571456220868471458821591597745929223805452305212830919259426504765551367852717701979229681646485384736433229593531666199249631171893235040685128723928064910352340492536806346509715648678273446240855357526339573143818966628018628117606945193670990086719481718351925118367780265775246415954760528486095635589017195723474864082394546827059817613392610057180436723291574598632773534658443495797564408335245021310869019191236023646678473869666924583301347706592885258839439748836211556735965559556309632950296144533817353635224457998760945504102765131344183558260074208243294820154356623214708607587380652022259445509138647781081565440495214923574076595247712371591619985812913971088070249392421254812780840632259951237407221324411711572862528100135127776017288966748384354515567339728102314960609282469246437774131705346986064679937097628090046144284531994295879385007438612442624875437697593433125782048188581949747519308681971162419027689447702673087767248148497366623619479990623316346302030763983636752595099912618046308052904229826525305105855071290392272672718304075064350245163654075836825050245597052798621644095761583244322880240283636412770566943795790121197288486102434466663741857756570795454520468679675039316818637665027990433190111198304206220808535465922652105673019119789301446586566483379275375335983064485267245689424537677269977791798786073873954144008916241961712674063804374529828480533713706567226839336611756729746054283889342772788194927208003725093825527347573336582865415876357412466182667113991967216448344314072646967366297336969773804765867518846457249878895112736405772452941495642088686624532238479033163007751635847913780076288725175097829492637037983699960457874262141989286185311121556688003581855419534081080284509253628943940925425496256650436459665633864836355354959128819740116179147564633959780683582838937289111563327068667712238080632958421058074309933084475438238946522514345682320976435150044571828091929889857531744180546503561867245588702042417573460254070480518219060795132660790574548199431657641876288665060942926464446583327988404871163607387487484676497626906245150429332556465570130129828580317751326074181580270879854928095559356807183667382845769671269513416607215741996075128565518046288547541915032682914182681890519451252936222112991404995347861953000421636284794779737017790947736332163309530814992952843413357730117031038947823134244538998655606280745660744560887114375907071304092796554998567710736422615416594652093423192523926353349197381408947897602613732871903650221332069930558109753703512617994810374659614633565273229018759806445831789666127428362894496909498436777755562944892093521606042011666624224467638290233441295378920065308527928686557916803844457976301400459565302667658428546276916788888974836533554734847369754249936110203695929991456969407033938207314344838950356860785567163382769786390924953665273508886835447873764035594507149598401770769170905809893709332792492309211650717981975240283599776905720335156165886425872605601507768782945965295001564644285342481306946843774311967310150672581308501815589030547321922199221917331864154772522952564887030434527286485498856831025587499371557130428146285335625148008350187605134910074093835838052705748064183502346091957596667574802011861366664351550939025335684654703470062995281412397513754558396968490771608970732830253060748843860786915412569358302289068020323455794380909935259388519843347866077652621621719505913593082838685228476998905783282742496901830584330982555855379424509044771355124985458415430388381478154591408499875186204805838762909684397708512905128997232587968554746160448280890530583748029102538231066023685275801879901182252339783034961232695762821512969402581555627886553368972915758336934986274344566490186191673363570100797082536430531087757771676468932884233166209336248902801715725324035480373361423113552892109223665667169291067289816872468607038791923356992184970834774456231099637925257078708289501786635882837410516912317013635515705476609126384349039736478575610221291612784678485598812126103845241700224614028716754139109616982792468034557102983269577178173562866971334515993883889014870755641209743747097066842009615061532352486943789708244993376016222893538098715151994949980876394992635173564500567528970489293515853346609402582304872162577337854402248021944600681652110088942246741311614719024085022658162394669485611538797623328767377784946182691916709839579618365455603746473015497447002360686022645313469723326861792037618397007488265359263879690095234986070592136628556736112763165175447089517849041238737375495916511721920450938231606008540526856818430211158575239390635752127861955380087349194360781113011339928479326120784309968405589530735758210312728594654788778022096287906871124899726037384187707518058224119571062593444611768456921382704693273978535977123045916831283880519859677106279172463413758703446454422730547374086182038394848258976811775707085119969963653635787251317901187655371183512466356762577709200686753789735676658095789447061774944014729383532350637155456579427760618151886928489380373596601975239656141399882078602485161511617721236128061573232551101454751994193055939695029356481458198655828339580743109981890567392068605252584663607048058224230067043495926813882998649784497334340822915831557511451225225773336024142318298735134632111630800080209897508331067434868061904529582356225913664333939650027345712692648183181814690689185944681096512538377856038468771300137614700131855657148759624886677377755602006773230246262417307420198063470305160738586478929384544880612416869333499297926267295754398949955926738192919296031871726406971551022535408951422850385407092981731959634296061538582856865432229980184099160044041828994725835470945194900483400308591210634591766370731162099137631293117153434119755948409335882421777584110127443426267672194784958856367008413746847783834018831559368457705587041098543553666591433598067775486254122403586259209431144068332870767855372697488219418545493478058264429657298963753676169141965187220597049943689356798871811475406269129303263676670936810146697113670510218244315060649875920229584209650482247846792984677730063989122634763663657683763898616624852585352207202651659479319860663401525789109768039380798667143396986062218760413304067168787942063901456138419105212996336801664111024464051560765267760934508940618394723583977221881522130828112427220711867656817257255415908708939295595648121455656069867740761751467682631861518943463566136264438262590857052276226614906591917580477637993488141635464366227601995859091151965700365526352613465379028240793878979169134187502593526666533394778085972210464964163401197961701938805548578181212802664746289585752306403847006554839757970319964550110456241677055946542149320269001241576587653323016311368247672491789731069479339989081407280626965524108089864241859221250642926865866480367255170386088398999233770256482412477173147709299895272354629267797966675596552960827432085777432799035090556028006682211469148584816777448804836977449488012786263809579593004195897217641206694914644102718032970435468929208260023276258053434982856653144622745573613957805482579999034890173957312576782904372194447641013355809292327466585614912960309648579092918806443940668460556574679725837982652662991265017220475513564543398599366715684558418446827904977643268755062300462889224087411076753244201464905223341201042915325806379835488481326794499133612811656020828944477479620635139493715776519664926639048151631657863436341538841322898186662457583921829481801146219425099308142041348282233727473365308857698917939995280241947211325826417840103197290567938278854785327164676063326107606741063795904271234807219065673361656936746293751882599755536505383171778901435029398347800258413161402358986189896007316718138129636767010135310399071402850798744683956805033767281325607177783349282790632687290933563051750168655345240639723309662042251810744387527442220315525157755319483446250807445790086213537215888689180291165056613383017911260559664583862082411828820224280307291067275787134495192352050874804817186301805538661038549729130834288580864175625013824001495680072089368873622096100254106942075065282108349862319458502899308150874435658778200300177432137563062824432617746903569235722977183088424901904381908085203569817201763780851765537950835116608090862072092081557070380327440045418858134605213061373038012550463272847672923727055068454256960000499715798758490707682720360752574630438935018671466110433176026906436528664791414381996964531497300950574247717537689356573740653248230228541978210970257278249376404704405856129907713599371964418947359270106722973881924178813435124824462380166164718370528086011998274851411472857475789042690228782119428862103194379176071069244311643993540211638876259866262217257402574791929026689181704597165272063444167290049367201550361068157929050485598887658505391613062227840574319748185892940871852761547100399927340184963891654173688709878401782187419013065057705034547149273322097601150555839206525281390557866134080183519595927307968113278811358415595103923860685578476794033175890361228213751579885967823381354834518833324270129180097627067126939320045425679716556255799048027722064263577389224167578817963921487141739136436567907253646718781929602059781335308019342822206371352985906422048052920634912464197474223223439473489880985183513322902692526477986120266601480917014521074709556220765914562500062365835326622569574215565301318125994568877827541498672867491283463960287998339393712611842518757449096009293552279832247072076964232607158284949036788426188151826161159599065991127950283634101636996125956306200278066999768681716819824663923565997041383746825550337912894929990020898974602829443329101100099864422214556324733325343264472249257814932484367444802709110633488854247732008192250625473249182189096021565058141605654954456967795204637653610916312161124392123115875908433240537066880126077684862491348688117835485191124496275864519104026929474764334154837533756044392947513711082130557354900244560264752475755735389326090944230743358845510575101267435947874430357061796907227116455595382980004465645043984103702582396536776179202002584291592719350208901066571405003778462153997002063170432763309971477068706014228368845978880811861863595279808767208519049711102055156445802034762964034585884469699809932389327914055998458706724287829607680280924916818212509233150952274464839865261032119021886633719678130370167120049500475712845232646237015525583970874931810351441590311879924329019084201879340518418236434247137568358981152081494836036258723106359977424965900858882602185571457935441621079579065002028303530108272837470780892824085995605832488253707743072966938168212342347790547497766289132294221167190811071021877492331945027672209407023566797497169153950021265306622862403987539020435602551113136518086971745882413258252190939244519041273614394962198172116065726983636549891006815273607574001028597858610824241686275936847232957052341603371407431668535386332889524221709883541790630188816662535126867590304247145388505150752345274462439976459614723760680307980560232208499067302725315380534365007649340712788014260979832305701129105632906336187366022491157820589739424218089256075674366127912208148844772070908010585083458375535347536601108678814035115800086671798937816218953718299731526517534851740017172971598418106583183325063609054765372396319197896790254040708153813037514531837248487927322652377934955480087859548722618556322680746929085527296048279939955012545345876023448662836842736315229885617118398216911264921966936204209856385072681115995122594754180896573975796058717581474863072402560047041113034722988839851046401215555959596709754593139074908663525492069077238564923455483409135944114331651283366623753093247887337732205473453499006824499234676446792832449086798463078882976954481938392720067184976393403435146728371204151218103215645559268957925113541060544123830530406081618672222092195220981962473747245196081685830058688908683505156027460376796575412359075659975296725286905454384296304182263153803504813582234271159828374376344583452226052240695472122656107580606834547220274489926181231564364354552806074128295627459927213774804745164217318642889041174346907909779266049493726265096225152029536862534744398766344118191133995029615669987416746003805478215366518827233284738701383519177214477387261147126087776651984233301718760965298689881780625497084807416278826147996030907036926042571979668880333428742400491586507877450235796262149321763742952176242626356617877743192606406559080653787585499606087237374372971457706907318303266567969983728829405979194335271048953019832656528445737626195464997685044363909637189949830408792655865913817061642378781061459279406883773444977101629837731683654015527021884985291592824227999093767464087305908314205498241852235894419457804423212613693936977537772971132412248354097906643530282056793392000934182986750932078980783329572603255355301488690051853844331715713252844915354749658265313584962473713101422614125577692556047246473051555554416773172014301297838373895707726572801890779334719189163394825596635037465329153796759011021522822712808872043038840259190890495981415150964036602426647835375719599567739462033612097201530001276269059520930099328359969918356304044635148528207362720657784525890571805094308326136381879489896153305045725703245338078912572201185842912519852093434342453279347327788959764062928818051919116462402075304421428489353191633962014834757051125408821657885234772294680858669342729042716933715798645339075507231667748319425033641232024115775787314617507355016222957754112692574545149547353240608778184821867082485202481750203654355773895293153830806094648391003008971124660088673262466298559049810830388992382942865625440867667113007055355442776256091467519465164601086866356687573640418471983821546612014920789878808120639823434608259771586122450051125966689774831190549502495101760674200976449839723210763044470883701886187091412727656419720719103182514526865175033080544011122395971616872919482555462350143788793778869035621662392360200730625890463450396937173595690014442424444822880157784106460741661492202400840506522767106275917107484175747991550415777884839570026512918951713020644825522808846330915117158902119254997874574311124014167997344302024193299753354309959118602096718963253311909204235398171151813527299673591942688658796824907587026041424083702610376721547267560964377993054565462248123921131779249606270849340249053116764150082006591676674465969639168189722449134762348820443301679345947333020184449845947708136639978155568905735295889230123789977681373661833165081328304666093466486375867432723967328417363964520574372271813032032036458453927085694388419439695612984370397014164082479648610154237510024269715186719540041511567796323854790083809551510740856550000601381484411077275339026795330160158213307230103465092524983266666253811440417147784960470869960099259617006073020624561699627370304716436722532080085051591224969810295068287769228016723920706283226324257661935263609569598858856855373576054027550894911473518355397288254456269161968643063733522793665200172356522815404501512886975766602068696600097848534835764141228262677936954936017232160102597057140449508587718346649640679810306238548166140608518227386834144449867068672447168204436360322819851777558025047569788264939736764521449761966663093985728926032596318998070630459927984862576852688523225438430063137394080616035502298966654102591937622226162808928776219074845860384412801212905583137695119188289725075882013249557087254777410837597979012437753678804714320019534294588230524887638623661962766140422870979690885972147755911859397818634102966130902326096920772660050389645010644795066835263546702848660796575130881677142284130939149652848955858047776042479671303093983715096996493898029185636139250393165035750684629239643813193696316180213046805054734857018420870666761374686496455302390045911967639704330412767411271891072270217065771029911676684046652798136562597121602350167020329997952428589329218542074604965916062482903309289588769325815151573939331968795836043637808880892443382370156147642744648334647262944993311879796907364104398586638486187584925998512668529247800367738782828163699805262635174522250598849274363413622542862471426449164208901783131213007721490143671346454793934974840128645550782758378641445766794470314166781746299546218448481402018811577289185352095101553487507301418996573013899854743388709159881546051903401806645850307995273485366838163712819726244752302184237879860247542063308065053502937687266523342572490845917471684181238185835965048301348829395514048582555220159902045677282024638926085072435039768364741010571980234519148121040535936449260414943923254416630356013288654709198530036419074139997152093082193704958054127524402783169045343126372749142304692650224089762245866782407750961961741179912353039695282729041628360974535433352832726287444944200250966161097332193123138697048371895121488135572061892497960617217016952859233017479873204043774143569887123561764411769015113999263219756900432785494679666671829097732151014512089222632398567092181961492661108617423454474272186393309676627132145566489346767695049718905703152117468560816809445446164123982314254115086268932752589836406146960827603744750991986002071924643167404232568527864027292129801599851468273064592177879738412507973652187086607547695326531130047456412612491218859965322896164253165650999886034593470658098985009227991331126640289957930397335307268152384917454106473075371972021262476165917353143442192455192955252173287269122289844727861982464361042839739402920359170584912555283755357172666077747194392384411075344746986832144131308137514909929668891997852302150743978205821798941355098449461221488806583184463428570780081069282069288029912300774678251644680716978386897748180469888795384658415785485501727633993915822721064786492828031772120169549367611716309452772192478973385465042650257232142528167705945840094093626672626930073309643180084065495661129343924114769544042372197150308792135295591379312841133730996979545599879233043037594511592085511828778301797658662430141851254936784166696896316290104183122379917584410172111880095927838033638053162234284831277139366130746448053171220927259788804029521278081869903776247004475464045316438602034779690618286463861388984451976543714586513491258302854680620099556536590620205997654067602048544972063930659168911660990610706401534241953959173963392097917162068304731309295865569425656110521172045227383556965219108385434245148679726595649923801640508226758896097022362884791649680073453722711740916191988046008248260711099011036124626301822258202462795543576318160300098317401863421264702232262491688694823671352724961719179758369826998719974107674217228489232293916984984990129461214205477130438013307653982301140394998461533530634636912484996053312591219655080617395054474424977098317162264665259230553616761562286668750734767723312493069396194426808386642886061518564199638754377951118480143072672071128860479974420949263004530478930334674420864090886057683874802230086942255868902746412933988204925758568905500100056244898013362827088825764034655732353593488070004935819781201652589856375320029043519579349775518010067515377654956632314215023156269058911322855479203517672990951363083766530254576744058684881415462990823024543657981478443109245585888843459925461679836419221143044429898285247418949787264261458638923334134717849727667901445208059142033751534627091404652222277096881781078251970678045519851591208777109536871453656992801935468742488146806516138199959941190582933391356257687506293553157113847648527824119626614290166115083096791325019136325434098646501393337057184615112917194121565557906838109220899380665112746421944349619556296751710896347364130143910170365340038087461244073837551498976194618871620881029961800467305870893784497475564434589492275268239481264867512147282789901808153626409523733578340899207076913305334149445388335400898744943771704158210693659814088139823319092643400654863255312383141430090855336878658372509273080340196511688265453847844373785855365222426662897770769235232903477812336963220176236818006253176566208094579608703618911996511395900170552297184164356120764858335774879265559299502545445524429719441907508400618562897350759846045390051082010310711905528448352172588324006062682246627587538183374122769952932608111623338403523378712959912936248810513978160669031886454009708652383782447600842852976477276699874779569391205251845001915128370164584458724812578050357589797574801858762257331457109986053887044244040643309921025919072804871518092875410767962047432139099345605108803045026743931410606235793329740550290435537113993524965932873677818387488302441764837418763612547319923230564117008447308224872442818585827762133049934853077426024923363710279852687078872356020656646679318822911678546566718639644918636146963762603242486465490610808504954642778166964995937820593970662354305434083202148572601144586035331147120790680741502316413191930647186167433687920403519931393808618341164662012004107752514495133768820499558048668522059653817796246697827953667264139322482482830360083798098136155835791804944425328085750556680659354927174095297647511412775926072193581703142211073689014063278620669801900738869039677021557308970663378171839301311602974656952334566239065825864297010887070164883421421023889644037231796815873407205290131389841828189713416675029191968159473080922711217830532238045327528575135119110110589348238525567276276773187632525955486089068226228191486709390711441479812010165051559819042999402056602640694581664504453570933089748865500974372615710821204963086731329088079279746217694685166426712820604846250240790067437110846682705598103559470754635827966144971182217000355807424019395185184402383118805196389425180238712306795689586625145190582361766806793079445885511291599265258173875573984509501232377947023637260620211826626876159699640405352699401525593309705370571675583729095389394478584201260625138068341724415354671877354870543473270083751053678893896669263794329969665410696557710756854983489916060494322256576904140268457903598527640542935607562554337586625164026833973107513160646367016482945875859728612243952908272855281072888625193353497951817094328015696717083266265232310155421702635363567926796656771225317633571364040333193861953179918934439015668244536146664731511461472275707326949417064553075133518137969909116664876374736120147587388031320426034153960133872563141303381776271781669994005688211158032695535667272665421164140313492013412454981376311167146010229606488801949263064281634283598027424342031562964111865127754645859437141053113053636804659237940747012630881127355332705234309057716405191034522434838548566032391148580503905841209452637221199675148738589646261689671758839330225259252778938024887493269180179675779426421474227281857432064661604407226957508560048917793364121013675929927193626255153278049446274457800092188961203479320569834360148669709872451831740232583041923858360811503058657726605709467310888846043654780475701450428019874457293417531346131118714394743548423571269678684498752369565031173472811444921761685717149759920662881481037275489964226721290893593340450401321563812272246199199047539714505029406209206478392603482569296079537358184871202335639709355544302607320715889414840830065482606103837629548003626576481987855667565752095671831607440079038660544166245364408567892650919926520627679674998752968646386126294523093135511856675798270252928040988603999614974446786698785460375141540160800897625634571160516777015898749281516583763559292401759571793851363971372552549668016235118085447499952919089187538824664804825726706561569810978488464116591037667935884130438057717170588656298308523381773879185479838804208635188505887932202021326593039409506106190573383125809209950908113811312999332825111968133411232548661444434301266648283037524005138817298077221163707307007822755201568735962008873026854644216468693339449033079142709741687952580384739583172169184322117395886860994379569209680960077306754568357352556876954949868944375068684149667601078452374132424791871456656210154232289377597877028658662348160217381880955997997891307519637048869948906377367823156141975765148921415347865185663386720832161098361186236423728280873881095983663308392131544128331646793681998744766853375120146988471916355658487237504904989982590576637390869822280300531014912111985199282480745441780840129232114558370558470346564748694119735251007085385863781897865659774119089024080138089626250463024736589593863207638834117401682438509762068574757663236071075041200868089501108725524319023355453328067024534520234499486007531079985204373469486167719135930391626347439429654077456147095620997796504161811074790568624937731546383723775351776603484607589792244624877997664272901896646744906154464275551695864014082860841102456698781716148917289179081065393255615196168043522424957719988254246350723466491625336214058078417250432873034213665451065679407033848880641994493151316466213348150696231588885868852401376681937421088973241024946091955318686949549999616675200429388368570056361992451550325626396944116520064608071621032081223593205748208533730754311762356698815117430675420012803902171949105648470595220476883948123280031213011566271761939700040105305373379411260567710161060501802836428427942765718636768153710468038049647021986983590401280460596218345044182948430314202225245269998465752978501960221332032471050730169088321042866912007233881090778273960396257872524722646858904829674558797937991041348118639054708701435332905691959899714995986518624372285592864660128135772434593176691639306970247136566191128552754501256869828508015004928516707672963555151232826298547864579575484212525157576807705184261470297035655823474071681386694624252743562928306021654287436331572084675842915220042590617285341529171872594477318767076688324444066962003327264990504543802672108916920534999568486175721192510707943504488227240690435952477230648874882679972945844558354055071871613474283657423002983871775577909195318607586921865459067781898819469049648378598346240899465535570194287235644763231013047087474714879598284437719158707639549838701698671924793761289913693703148650847750084160804238587396854961320901033058223692360320509177262966442894019726671257810599030532311265384823084231320035745973966466490878982702781156661908077353575331467182167593135861515037524974293836460831027651298973868122472838516214521101621246812300276618603691619847278438067856594390884703516279062942586767964162567874518331703045797032358675086853259764834840716601271334016320477650042641412416118517406039353024292210378914806704821506395402056961797908768902106444279797205733092861269930352006262239608981179565624908678958866871097457026555743634331528852325768431432119933147682181253079065765382431000572570039581902951782080310714195235481576175900258639651078048997701083798048364799193587067822568307173232354419539853290740728853528098653454191727461234729802144938293070333525193919547236203068928477312575458268565445243645574131743032315985352930304766465422199957494653743245481093275517887915239759221183558512929160405666542447389490509348585768046469022061988530488570745028731494076417287770720804024630504999263450212745681960490447160215095668618857391577554966284812885272685394557481187759407242680573142806426170945431312918884662339904079979228270753293138727040712597085580811317863553173720793832482681212254871128853382133326187495257676582507307232590904742568946359700878421510622471296568940430153261540393438609065448290478131498728817156825943207897907626486077514154991849490335130929404339930563187862881021941278831616992770867192173319265685277033347200555763280665676174165039009705298658334207963452095268761241486093258065190720161796804184347304727226180795451797811711120865959201237150388418594971983090074462518980536136039567804493707147741428401092156491501393931594546639104831329819939501696790583196227780801050802067735108817688106689513384761916674294819905698449938218579479597808252208822403632398125219895130849416422015117351539556640304330102954110972338074343791227539724561361472649710677568275742022059375920760076916382566963165112127981215346499720265145631067561426064959426643803541158771870753152363804359422348145751425344346778933550419814253778762100050980663384278527772484015934504856529508292254553740678882341636034091093317156973162110214464622306746898758369683618439632081620443893888577975774192857900740303694218545156147555094436431850458434903061312664823740257683488300593492938325504619905604082697087915376911881385028218600085507313721575890486715342191757303873215002684308818073052811501607280510891201831390559149432787057087386968702405193376132481403444233755299177281119359292135889003993923672413700935385168664518821755761653925597083662273546686221270472419804344807859719042326127865455542266961886102088447956782207932556108174323984153088823010149092123717814022358593366868114000824349170597772446366388165399462701670084037514022667497270196042609167067173775737974930954148555112713964861200387362035488234304728959552218246452115865028124968272588943186239174183255423378854976471274015406189957788642781834161064663815657648230161023316824337036916024819094067341501641388036247180924437833981903560119994056960175219680100830150427554958750732496136220985366347294213869014488573505983018943263089474411222152083423844620189613485755125855668023707743552280657639202530857247727383884018034512474403798061044996851783073135117759036386065346050260648288666125707350975844366998223080043676923509512603019962369864158339011200582204510268084115072157554251472967886481363964806420715036797844927912148525846253919252815555605714234497541103489659765415030543807719036001924959325711165930529047889816522882567041837468645000432353318447498424291651654307321648024402273941687890600467726067547204285622737273399396813617409474210554506239442221014873575145779050689189922385682096837969225369237128405929742722216910121553574998984336682523165452667097685384256137328498550270192324634673277130695246432081056111861360405114998112748351758603722340669206414168572263241645460401531325001916557624518878935082473814143053539923603045244054533517049212118481446325840531168757747186986455873643349314860701120506186085966478888804659616233561966399303750143732423297553413651995010734179523538854064800251542841640552179106352832808377625961186494326748934399417899562852536927278271680480473955912036299062955436655501279325964910018639385206246243908609662041533208566851767685623479556201201292339023766450303448310662999900895055074237530874930491095020025727312612947035531524093677903423666278821827312461164730679715001191452280479396673879022431072358944863884759531269914693891720783145924606511770786129678252982542029063162629445504150632893321978672059105482703619772471288702332071993538097608630243173493428007494053805181472211014551554539100308632988158113626211228970235041554803658175564363396635517899881430319276606794147992603737752899160197223712888338594264413504091762464541160375728259533550844538948268773596657354285847953925036916942379610911073459545067161591724213907219915029023963411019399963413449874144665498041606793135185204122054639940411237589798282187084503935594712439921853733942012232637879147422655010460787345594645853896587734874213515044875687271595011620440960735783398652382348053583866299991081672100876134848848158783518323985760959482173108026863841669828352447388227967470912510976931518536065159439763921346980517621499331377156248690459666459825050744088399553628338471431496578370905744774031646363690386601639174843141862945376733031544001141317409620289586072307193540284401164548786946554705995275434504135604012501565380467598171936824540297399822269423601317700520133240659848435325269474197829938008429326427314355079936142938508408116225131900525172063390135230396197462061928731140055435108270703491265382759354386981651780114976761631495697866675074191768180862374124681343084065255529343144252715378120934415811394386714895296227808809174939815217990978834896493950560627779664224243019782118259700347581183645966733557061915937554625006424429893505811258199884051389272125965439152706803291596618156656348402053324329038165028563342034756386744334401855927560951572508940084895187393456196964488427386048625383841778059137104988741949050002481975809233267239535146780128250652091785493682776417985651694015390749769059881289926538938148612830111710189557384182623651912021756087225587255774299388221222469714591092658643989240335005968212650914867469810458145977991453288503470327712936457964040465104474103882500939723943472434363791087934337222119721370383806300595200397534030641583979700443833845210876594440973212684562275633490606803018386115332473428333570477407850001520526085319281829983134507209338367892487489808887720634796078216815763230048794699645213592226828185193967625276952431438311536851824696218355447926546972190829024841397603546585858066852528190742791452357644304809003659290756224990382167322505698219401332428997770916055678199575889339474461033706599424811864537172399109968406029845691849744555039609112521885719544515049920462214590715800232088475850378928311667384100933919873105545354934649343548226456326460777805498579304409585703926824699450239931514002723040474145550330409359378676399920272434564688715359687711470345325714471217167357319954117628171555852749959067487021235135419208678989263651232941716693691745002992913599787915792769001032528259159021387871076086953641324218082766759900245345801175608947477580621008897666189812439390832186206792216491859701990997829767298091548538866006251032287680801046429368594358891466100424649969152869305783754890041494065579227243110739898164255070916303276290074631044023324256517217431141754718436675567032982618285529894209116966156430979782262442157593774345235031635878669754846256135610271923431434046224132331526085282498957512091181989892714532280324736259120077271370972415129468083919112561827598032823758628579821830276777066914861809270385549581274037070722402115752376047005603671578095866602966965030312526882340149921046075602021470310736205905689996226474902243301969943102824937918748938800323503113984715448600349749812034326334154488417967094684509913836620374763547762266735328263993295214996362003035020458070600391381889217301717073072978515120692149472301515275759573865148400855733688551309936113731336920558326888898663737274645364033236442804188303275354476199951528716413745170299411606994557847186802830158221026737661837978167019572930993247462526454061586749337404920890714225891067257787374623425254962579197910709182829275526976310135250198913497195067455961047050393418338848232357728417073835173560734830292759357157571845544864298809026473788802184393548771185885661309594293712426583199526754444563027172776288313729566282826686751182153225156412066170927303264891144197927404700749070360769231494542252402980997731391012386918514046822856598843008419463004387228585786058835777389966686033242019424365635381717988332398103385219616474605175688423068367242098293432370283735111499042884515545363344944889309497336287628447915228693268070617484122977236129755377125552675541965740402118992006802577948274168899542055720056701475796117075589003438031078440446973491166856747960315743106637076069549493915075643064962006538220026845066175397620503230033973342110454097509856761418501060118919844649835487896528055790601078990196532786441538574677625243348487219914424839820403367740754373385898594006637029515601006385163695427366902807851543703867983360712067226796423423466770535870066773374996027121525505190737335663722348329999394487493264534279797695483513838811644175997593147037349939331381667479821360825418142423976548875513987049686789524505738032712088253613404220014808753395282495584394627434627809772009534202886974950721547834694645994648024340498000212708245676398662804183769507340713221062491043925075570363430862537229716129268449599703205696671077812208348761442064339665334840548028642208004283354165953444401771488920508056891680004333524806541180691058945892638746462518872658437463192345349926399934224647787308641656413736592188023020094172984153693881340480473311484253715335672702653803625223146268403938698588351707565865974512372105810050764966193219611355158698351521983782047245341068327286135315618346014119745186895497258279918248546355416753572662251829704747161873575868432292266169783321767727729022705103716370207033300979496231013955625115443391506132139516767974732909019488028740397099352815843441086585266305079802515129920528814238133076045953021226031975604184948733280286231934894124284919030393911499848068111993137080469928632043786065885893178796399385222727621421691988783122767429403652318133880253912739526270775352876569327101808333553685672062212805289775980484685621109002706030753276131235995293431454152620600979990771791003963585411088406179080885593422131641797397548379254856044830088224543163288557907535253833902506476634503153155880316675647739755653572939423807865960591588174603392458018058313554339481101518088393515418435543601849008190233989805971545869600098012481460404177025361889889655259001063955303419325787632355234645221017680630982060292138321147574513052254131345281218467214788639106158503513105205511927456007537502085164018255619974921567331759216390025141654319674308452039787503050112428365805840452834224373653299354486905475771721076206078547965407207520038288146160700939014414637050124219200563480816385823140629578051244897064949577459079043788773675676179795927191577213860762607304474426225902765148927292426289003277406016395062405158367691326197535040155777978670243481829959672851463092341491493282086517087129061693610335274944246744669485156769643420971861735405830521782345998389057137537569905624855429802215518018447021784313937679187574823046671642438298596797099789698162678254286711765826682830487388134354440323397182789776260979500270513402423720355066093283063014453243832745217431031650846782384952806082671511328522058621285845648639271669871487704171052341127505067788110688458156769185304181859579289386044452171384377892420462336883759410365898297086674873521655686310230143215613200690211247094102406138812256207416060847157322986452916593664249888043005911083628840697440687023985126562187490971767514837788657896280871913103647605226650300233384550101737267277016603340596797693204717115016654006292823443137409476054809942386776418907172509382852802288218338588616732490896772125258575562396378064414838796113697532985831580261045883060408666307414151243139923543716200751671621118242426423585614686911542689724440885652061699998954712728404925064016696286352504177319374931949002426093421169410016078809862946609174655840272715100470513974738434421648544430636766064872845859450622681739548086583142310545123131684979224983605422439595860786463737130912673139764000636560276420870446550799446345128068283452293932664870947498987255080015345673681429520077193665494191942460221564831200014870123441239326542130208173051539921641837794145075070599447614443508095180245142458897873654591464040072507102320394454997620191362233194527041391585532834698546130588501691945194939317688445661558811326707266127927156114474777402186729927208720257415154700674883703378188113390875125391082259138480212698271698505901958210959729828447860509808273109851839826915039559531712816202372976973143371725304043163516297510356241134106457217171888505725179044654121498617007718822915607087793090165450926302225125492593749588566143936015518747749266926246392344909210171698372269509942634116000896988469584312953956679951120355615670480595128778838341254756079912299120983327429775969677348999639449647245874064574886563099931681896241406225047785123233173955259840560945835282896983822833518210656766142137234009606874520651512588538081490196137509218451221742774434812990196157464363665060519897403419967882625259350518530622745611330427001162516987325473761571826970288693291373615026489762667629552217415025866324841294745795812387662796349061480288026988879661682174578618230455113750394108263604567622429412488074827487388355968259012569652920955648528268735575734462929264511361628639397983992674940753982429512741538387579975441166753833658002133069331848360504743172171417940690193953325107904190014477714995212471597559659490562576457162140358043986768761707951500847459988590963678850413602020228621454890898032812237767180357912198833106991456879511319269453283327157649453143893174737032896456237731316347546326709802463286527820413952757675940193587754354836142212422797037332220865470209074381757411068191811016677382508584494233918895192841370822436292934360904979746460547020651386690177149212629418103963175466813967479703337245611118273658402582582585337505721791880667674110920446448625960570427889877598916994497730535609866887020146898476010988266125742081927677787099614656146810758558665723373188039038911318245002768277858348246934997151839693750939009204148834535078952695754622206429027859236703271273700799883978050457867878543038111517296644972384701879088169248286179195206775360051792347596625116031166329842880100405188385084300763332640018723192627199247721668902223619376678880908753404262778500666653028316957698611475978506752453105037897355896637387043557691038639893027984708806181940107318431179248701324192054356482110759856960189963472672684444197678124353585381617203240441928007712220134201220280341307755189762612200981146913754496160507657952395142094767571634321580653850159973125141269473969564315037677332796476919873513134543612930917537208261810834679472117915578057098166983597571707119017314559175318307606319598955932405425156218488983330074257644686954666900540700878807991667812763107621149817234721737337989302975997080325789937292406325061512753301740171165418921966457578651843513100895689714097810818415622688239823633314532009792192749439353738142767610492510796020581239375931671569597079695608325565087583376735030770712227881089694677996733922141221694420892293330130568760681416671359908257727600031738237650577633374718887876271368633520841913688873989732700928342774283303393100241584450423456197051858876890701879510545235721440289338963842964099835336252001735962452351874372313833541126308494761080280069460395874367082550331223174359134371585971015147454013763722806133602373752299681289546483645364818134583510835826060715095484997744619709844192550097991314390578532579348745143292251075380380187567290235310747724166311717052323203363914017889564989432111546278731718170030623241824442934589629585167738254924936957903926467567550788231372749987298261038547284911151311981710565153546641350839585623659036005456129920638488533026404022857307072653576420482088271055208869616903866392950374633390293646718728645552160218917636453165475985608730731574516039775201121283166174696304738830847328351086375595693026573171748173354066194264646505898652696654624800236431240415831253428454272687662935527724095968284577421463585439798227381701803260827972447885583459054937436202151071359920699812931898246216826179093893926927392821891274855488256617836524876718821730357993428399219930914805657187917453993938827009661955999692971009215966620574972973702861009053533791588407390340198017534429702506681733307372277044475204653981946204152215263934738935375798604043641117976395963169854297748529669487564124331564573100126797266313809769245071908654881556096570423826114724799849219842952765767289589230334927811926049154013521908247668411951171383482273088475708554125850123331098378905009247245221564758964502553933579411795847434392857197904918804469273548502281476602485901517850764349774146085669538789348171167277153173029063686861613498961646008238553224213671129791368179880435157624880324511924067350792518933955561230155763045244739832971390486374573045452784430633012098791884508296603971409682013176258246748242783197914713202529266111592991598136910579380819584283963278918060771482759644488983318201530191101926149919721161425808284259787598661477414883872229580315142702609216324246556342869884291052476201029087650478965151141705424118838597099880272886043929282684881003846186498173243974997405122882832303576905366289720532764459218243727721153020101613967868455998770368882402362829881159219887087305537255705191014132391894183661772162593223646069200842288509394776495772862539625536476676489956855587482390561472545541927226607007411116551203605703304588470828150684958618318506338168466115994867404344464989964928215270097540062729852888954944536894426118695553422289615974285278726610301741468542017398585479097803493417490935408350750072376487185895901280841551685841797357697353095751557140467718490015521381558418925071309595534667956078345377566539669315643159538401239538248278930240971651693223115530112635461954474503261772348515571059346701736549776952674507702767212598222580663178833619802221236358131149526990633038392770221513544792407961100450882474229360499892822951167407924804765702065114602986517161403428787962019151702630230721543000584928996995116622426237258765418752805065959952629324534584966988147357898077647525505642884894750214875502894980718423285036836005419206621281647964432712962666859971806889876167294543493021400766540135358084977162036368867811871483045897646811811394453102653343944540039903743151729328621468135273175056763484733848054670423054755636326482891959926578032620211356070779209938643081089216949460359462315423899262677253679948458916789702829085410795371784567409985722154171347040630620877157579132266713673078947619408162627821202213459713526589998741820682165432941618634046632364109529756395470553297399045253694260918451014080454271228497044435087923088710396201719645751957007943042017782317676831677076823382242777830705712967465364132277651038731849415687534799185610492883811595424539082906043399186693879773405993304377854640595627415063266354632705202893781170748700634356336552290221434042672959843466818701887211338029266897994101054994844016355145493286967524602150310873043248437169939004439722660787514003788833820579224293377562049502677254233371761325429633104694606441370842521068032619293457969915269295269495529301503824246885614993735530600429315468130248216366663665075807757424054257292851183673214817300834169184270088395184652065788021160025170190349132142214053164160366575428198196876269822538514686738643361844647355392066562221477700069036490142596493719760984787864851600428329027743024695933323669360268283634410157730971468122849089387214921858599665741849000473923043322887333851726310121908949241249956742885289612974461002666560934936932473121444792344246204258450882509565477062008162093365750020663740585546497255270449662751611954587814115802944933192570899571567991298305391939484857714638833895160272840542208215456672936425126860435005196545118966801311930240708287497483445149241641324829034610890871597290559236979492341519870302878397415962813887408631551038085296974577943599235387962908674605201764280391575024567774327600855947555925695396333628386349306598016463958129339770521125142033439269596260667295040601062046662610638974096183957204675969216929724414741981146258679011278813528760486507923377557548997488739171468227595128244654677971989949756036725601322059430456775536270285048721404568074152604568790016606547903693979030830417749056116415135231526947761994590207532653312932572440364452457583195072974790944356001757941682158275591378435154508648157757812081748389500299139087376190840332045457866197919109937119051418518559982748627976128922407831537076153075726004829614471034759089799099954298816199858760117936858184024802527105966743156773896276689677808590718665077321106643756801827397493333133483883952152437321697030511054635592820575865116939885084971379929750435598644079515190598391502341404879776098057927806542790921756972176855928948260231867434106384810695156882968221405967157072732624987507969316436089014990534900487078941005161627608754309770609066873956047454806211383783403426941180079375341418623805476966739514434070602795749357008508681662394489670580699510272991859044368126343070546332017082509447790982956463221573180701026175046842572494363425077266408165675447550419269233614044425725979272103112643338906146977780435707758261504039130452384160061045453195086794197910938331538976017176697291631964990613087303354434452962973567929860064829395492859604832192291695224658019827954158418683330918530808332014705406695171974583545628447600470798455844250881315006848055262953168697892138783448937880410076637032479718788962579004754947673407339302639711144919295497280848497646403674362452010568404869572612461903599710558151980823525353880900068410010627059668992383389434601297677079309848530043215739961839322229714887634562318298515694525469375729379620400544709577925184756644134150532003336061594906653354882969233665023711934545014700506766602450249054216579415146720327628719894418139048885778488067108274084183062567749336330785287758221542371055007567376149791568705800122393672573141821872629602533710381343687175053936983870376739375853737232042083798625733832238854289653446711976439007159516133935302692835492695171494121295492193622151848009842022982636445282654369177230363537284163330717326702532258539408766691154091389062614802148943441692752665583672192730083273387094762138957061744519965847712040442482911032544981957883556965366669604633097133507880769249503713443658631744930499003836057113773644816976243597602694807439866403518775181466489675942397059752477833813521119956142848131089828365557798287712668558243932076851371450455975765617926387625489068091804175044137790522577828961858890014036198039060357774439297346085711633570235027483784709186709599611587526184265599552717850317152172737341760495794116052039650419887930158170974911995750678612239004004778055089469710372508045323189099578967760305694269842624150089642304369202684439694961726750964234195084595222922674311806956321283559555221735402972976824958902860515362383325741471611705755356764989974082682611814317172349115565042235421188096643577715934729349046998019861348916131648467017805699131495475698881414581844839914989763643873587527550868311472716157615433918822797980894392548186827451587333904985591317879286234924267178263636275453925456271738425696419117188950805142338626638797438637879886332255056758185639306487183804415216340346694338843253733203814081708189046644989413060161646796792172984666921636006061814767315110376052010049897059056619382897427640551004724541867685751518286499487389597918703232335120740245613415952230743104825121260646032613482455419821780068380505472377115818301110125121719347765057896478202560908786585659315500308880165561853018914029337932463580084394554805708671737571100222783289617190126671096552433871970505557497004101702326598234362324827116760781326016496396731527814898808598556203706449655973782276778966206750029555369858030960512630880834482779530586014384052861923343363827284133707585857533446439745774640245442213090235710420241695716641358770881054595211565838631783056331920583070633632163742858354312267678078394934332656293185062662776862337459706304222303633034760484412560680392881823575517760671771432526165082390477833215101221940086024526001326107168162176879564843593716735195056249272326717668164413402518443126346186396165573406385925699674916833650449593195594364181320662304358101106595595369745714030006823968458898923699842046295886116892096191699406198296854767614514188464653909450214774745020212123018002436576468495711723955564058079869466086854929841450143414045499938901982745105435002094514227647628128732343036834197475039220777301786785032298487075554375979439697632849915229989619746105586604077195665505562135715216480076574895221846687568177055645639364547315658319267920500169821258926247520803492770422557857801034310860216426189772067565296349542482836022842691153675601504240352827154176954471862456271169564712124493847787793054531487093563143264076756425689263804381158629479354787049157971582097592122840813922492975219390732115899971201402249105214407364196000862722331922060488528448196073794199737191647594058178790122209529781416664341999466403337260772304813641205900231571351139759642294506000251176818874297320675434009402778479493572719976118967289338267912138220962403214689261762660376589973501365751300857824295417605422800395127142742738727229287590164573998931021404438453561600778729535748133436708800934171457679730700362411281073854720583288999785600566949428295981781799076188798415034380930682625101569720199573416843709341614894619156236762806427897543230939672350864633039442572085238340075032344833766541286165754468048397208104704361664098708783665279666907915298938315281720153438389081304693627445783202663596328688222391856203963197041991463654656204556227104965093740720998165123074127214856833727411262116808783844007954624608016802393153004844522526406997210125570151546063578495450351069295083003416421231914465063953590642266898345308398701934179818649808251611461721909280334497559619815905768547429398567845697022180217181953140496393361570748756799728067219223043430574145883166400450752395070279384193921045364476353711396262039846209340004183527624310560552412287871564349694850358044926981417760566850294618169529442796634952347771531838955041199299083488157693983826891563594982979969746247227798512299925498287785926823184565195784612547562573591692436125776775790383641266558652207458115135811923126646923826398610845571432915416285412037602215036108121005238280144768054066697595997289572585839107611318286693516077029658452661865240292926346030425256941158391685692531861387696983030584546065497518037220545832485448615101804335955506098797068468646088145970031029542155699090551633188864812511227195117797031868627176313317063372367028771229708109677610901274758745393310816647080447816512584497972424350442525842792873903071131794519431350437486194132402606661027767767633366601007404172819572849242227656864160292550185613292453854376575983603464515253246539911492845121722105125435508227762267177076832831273436549681551714667321467066900380953388115212283114200691127298653350418277396127082449096758248584825580388143435824144710074572645199635042531206807225941812355173808988195383672689143003748051578478936686051057737404087853949764986804398762933358694209614260035682154366209445548825732924441700307162032889802267687434975257059366309087145456803134180506583046904253965330614249408008474891131572243707377764879000220719524589846798932391143182041350160238384238172652398192638010962214776029974460450757964615188866766381699996300563921105653588235328081636356049333087577247686224550185186690393373655776630083077781773729168223812750243891854028632052547007287993628498195933339543291100028489091116385026755523374597510393823660083976456147517646851119227286717284961423459791333604646668101623617420164422234480661926368776237994378351579247589353596590267978231826364692485381096396835261089130774599895627900160847266602797786687884076256617095621309462414098412067996206192055692709345423393143531784100510918754753895534395577300833540743004429671613709085561885330944000655965021782485586612551729798921258417469766451865532131648852336647537806898849292409865846950656668998708684521015460324415405189505575930230956647145220747622901538003190814248049065718318230491164035709600897961080041511439604335410612802385526917646375179961436293557607516501698407554732416241922279289180331209339075174231152939780965833436191228052996524651411076200864594165851101479242556381394750691307868964760688377172416006185746315040844252639900305123056381588723819861008578780727021101431192072748226717521428171583361108098978347675900029489737000290330129663863208196584724487127339898357951771457766094874770502183674363757194944055460696807525086947245894006076655744193112702754978795719358999450431814934868759841545614963981849358570465773078004940157579699870648556663550291365449869215839179630984000903651890191604311508692856003050157459370450509280039988123300357049473643041102520765823173949251829067789877123014167722299928891928152495076220861439417691311235588666396898338971651016029384637845304200882462690452398479259696500822401993341085963877878512299331337318636548932665933438685658205545419585315567425174817234890889627378658792342634271942493637759225317185889084156301998752981298937827298924489428721855737836339437015282013862842038673275332683492296901004905920475128106650954101802910973243493006562961572121917231486624869945365676053153476259052640626540842728093045093607122058863785778824638478861702560319985917121528823647314854459363197895621033433637879272023838449084792988187838689307276438636417827233020323581335758564342003874904443831099947026926155711742577529422944391883129644409687125163715808315060178880719853360722517181775255255935904216417504246570336964257081707449365009023508430951768998509484698955450183592788491237161889383981637715119741550300106337898364409660927218183563234656784649575481667612553897353407998066091628522422378711917441584879235171774026445021720571796576915273779173643999944863056755206935368777061611350918745446620484045474425245318347046650730126853199576631348300792497455859616124384829427803465122475358404005077086365200707759273442328920950444826477526978869322760606801701481508082564534413354569038454004378688488689715227037929562027454778178014316957878869998027715710177701738007342832963572808635536578863174386461175060265852034460000394473395535501503953390110364691760766658504191775172148255564097179730692383105499082426205997418995625756753714399452816592403953400945625776819042516578165606184317300777673012738231123742531262749238869146444775797545186566298770924952845233276157128060967285609959501773643593853735357074144110795234771611992392619057619166459535403185701395950871013571287295285876233891049626593022767915234539641952953013571015074381133269538113423659336663494632902941272801853263792049842628241399800899188359321275977156970374166664301001486055048751076398944996988577290213484146771568930495730817683986065382779320235243559486173215812145892742154115533087457965049076862295768441717059891446833672704030121131326070859036556457146357455997079530349925390830688548253099398047106974708814034561882410558403469387521671045567794055431194484135557756153229109961121820824960164615605175779793586949023360043565255778489758864405255140785006262023152493711774625441909545148292597078174277670304526737028942208524414607956536924950404835588040302096535081014855883692185966006468865427257867723549690533545262436614271734043136833743277799187238281669184627589768177283340930560432856814985857023242052446059539980187089010328134279185838034016528571519723416865572575989601882760011187432381317216605656616962589909139932899621370064925420055667912979110959989962842088305848012769715709342652706807192488903545845875641467369294277239027999045457517952160161808124555927604205061470582248482453593964354226548521019353301846141949584324459772231914150580992653767388551456446065451485441689112672809356509908001917842256698789341620689393587461900675504891573622567269526191469664273990788680247261931728108825377258788905650003435939132149203728270561757541768653079531200678494659143383781285711077486481628163417379882612222844099496207368033916427015530816237117984458893464598629000809715917867123021781179526476543725027422320071845419606060290462261989208468963321472326335011975970966247386582284797492476539106137080857960884935714311113628749034957324816527452669844031913952560701844477997046110753845267820133475792539837637277370641343179670217677534427781641276736745144456011319729127045172931917707312007412579757019526140086269348693185091426412552134640541195455517049593714863616080490002017889223816041641438532587840491903301608048747159100330191784345299751492621667286426616440964844955911573406865487891223069785762058382015591867705024176765384874783908685507909518337921774857971135156639951620053408712059268726575177513258888843548358190505282207536442259029175437344148740806143912017803087108578469242735793762225770867505485417201656940928112547767962105993521291408386812038679940523479811655987852124026325133417059715809850241340048556646892816776280635972382502429686363610320524334710636314796730101439027974294362308281710619086898761207761646434969169773578396216759684658011654174380092684335600718582983613410930035230864349115869168254895426103677366723788429228337945267831608904581986946256914031021743009956198418102511400255600955537860608574757895399274452875016902433319900703950478016202493626210836927239533406476523752742437751103028999476543913435128120776805619677301598869653793145822159296152618913237627327944644702605652796311731236049768833874542762271655918403661731762985579392615641282800068977116105984169064164863173286018204295673971138785371553508271331944224991111782469886707186100304024051268306057980803625191888511748937667960651345404465064218456613016027480196919433497029607761595838972907739839242171756855746051153495106956133687943960079560248879003195335845593005574537657233320860563141712736650264190294886094679309189168152275385863153388818764912438842867348460156980009876276202421535789532585892985438515872764375533530034984652601360104725513485774423986402180505691141127826013280036768961377610773353389505217391861915633436455984647683989914146661454958780884208335672813081270163231944258435914865364949950710606292388850161941434456660065852692977549700404593698663229132256139445151141062153607558663951081744343095211867272636403144427198946113799849465109797225120779379301066595830138760793287889034341045821030280245716131187294130897834501226709488111076108592449367129168258282246457683270730419089504424568732417785599052655301749995152551890588691118155786741040629509095096200624622294088434341208472756710846369994441765329828649995405031689443193165194734211861751953045629208159190286548649739556545838319414303116983804007639863501296926990666285780931506939410787699366615719814902762181367864020536537468106429703053066763989850971487179026402533532291117706959222319475412917216223553950841802117857732617024112163915530382908254104847692221808557523097462705513192686643347584150018934183283355846757718597369581564939950022792548948744213298135550787367003379110551317438308784513413036649961583601460366662114800568294791021030988018927887616410802926359197126332784558819874080193834045384016312132967847955536435754046208261266005020735293056309019049123035496787377759338713655487051723746668713376695658495961716168906053816487168006381292862196775935218925627708725064068806793827420318399876381033153024420309656420639547202578177638292649713652980131292819110321756365113041506404097952832908388819550455687249552889534387931186375295030586118755707708859989693277020429942812034519764557981740039241834104948492391663542886505027315661206779719667602135119145112804199267621608096623167841639838452385331660367994206566816732883164008619880524294785989800907011839159354001661509490531326908528991629369901595449427888583432226604407640059092223802616366505274881820428433562161858239402964261484170476748101375195916459824848959115779544547209833388432765143854959173380411936101155481297456750453167227824586120585578044132154465990120703003776912591977260948859509590331372237341353829539001413957461725918702954069239807345417719930675723266798669744385219358461733459536375446038780137391495344468603324185337194631967969151936981539463660576556819995570702076877958529227088175225834027331379203878848015619307119423427799966700886329602676541057364281755474785363839165824645503007590534711339475725370480935744147909648978594825712465726396148592305776415026200892166844721404694030829084491975086176009479979431338342907451322996044212554903785113012301265135641547300980767891886712475380243897852262231144475205683899057973965616032108898236382190611398391862934241664834890402037236136890859061893083884516289311106987101609590573008215587024478207391810184623327691414791534844598664384453745027946425858663140054893256865212161314781259869624996553947728766773505476676680860844915901098820017881228936449959447272921369770798164359097474421596279917346834119701942784334583222089938069010657449701508007226029032938130577661475396193485992613088899397541915403754696451103698467820967299185906059566759867387012376645710730209760948131984349511858196083068890576688711029888411950783604842854713865557226125146818223792927100260008700638738213532770452791881196850018340107765158469424697878006711445658198734478567579443686826609657916040856262075554765177212495356131072445226163826641041517037878106349698789357700465060891841871624934732069200862498693384116175588860503545693834938532744890963922860084025047553139667883067703782579816562672420529203372562534494188652581371546486242495369558371168113004504277199539098594692493583159764852459387247873132153870569898519944895275886810671453984524144654204855494597789570590784423699319476005570038211869796754832178531293742809298774608457586946955978475406535482778870146177437929231718191895205071233747334326465214401635275454033088318625433494597109346954368788226450815842592363713885709493415793240968893460062222472843031023951117041980558366458176677808403616866044675272919959669313732573602138538799995860140800870554530084845892056112371395178437264173830691100230636623853513117210007680585057351818506824097343354993128145742799836244285729210186845620238625860614029364820967905529736775026434152911476507040636367550075346330646903923518111733123414420437992794967104161601447629268793181646061006337057462092624339941594555891823977832965082718164991841843484759487272567379426347567985280867967455083232306945207836110895506373618988622493763910135736414888428672405945795672465054689395258150752719553963445365174682666939269631721182261891365191177787503495039874050280563783836577243283400360889232197379235681751105305692093763626148453897836771197018690677199391722433189579537513352399119204857252043777402548585734325276538852332916423799410253762198456440447968871786144181170933131419124381965963795921586997662186239457841169969724233979709710280225663756012433865001830612128570444943948094371744530020581927502999163173117455923935466495930325187075378718325611885478161999721704732395949377636166177028036081849186252957038512610118183231733285811495605073230232153582393788039794105051337966741859344458319602746186931045393287393847397211521864208231982887473141119952025094781448330330842389292240694013009651845945859463688308185543660700826479992497767592084937434995641394313136887463759926393014970463822764597115212775386669092931948069579268500165478631803073971127450638032175322140155240260299696034798601369049915803602993521424977487749671186353297683184393283163104289396051654035270565699329081538247790670139082968008034583788032127250098256174057862362119895723928384052227152374303866791242482096300656554947916428713212463104897787827145565310124913979615914241062869999774138154890031563024088975854442333130599822909005477548920252427992414303643525387286946282419631018308730536158917791073755378053223089188499923454412557608582976551641421115742956271510574484618800806231138472643195186481471419444631491378327467908273476650078100456947034003086509235509720138996436789169798287803513402582978330940908549784711852200450555587164525080718219597032265704808051272828082001162663533519785098803172787139111542626609420033486975868916384878228736129154832032545955069498715759562837045301900440221316932465940484144781750637919109343298573750795615310131768339529281293481836018841542643828921512718769334891312879161941435745603115370325958014902150678821579084876650251179961218489432865918162113846875285329053438693831493096509318646800500705263843753661473472549213627352179523117686557929867859709037807653921133057143764666525778792341257542452569538844506444154825016886513369119579257362778104632722306837392148343738245004020195787925592929290907452095761643427778897340258881284049692451850305368502467384995247362673803060000514449177855446084898159268166584896867250905802463922174290185275349247092738426435492529113885447833691926870268985733109376181508526833756283221912192327214300154824596901577404378115327443644559008528849479274515934506834805656638024310512116272805949017612749148916956368845363923069415829862610778558214068609859980842923634498698913368997853901497204740255735190967828822343931384920748308608213787371102378351014303797783163669648199182640648967204365333307711340216890586926914685580662761387080429931232161135199515861897982044818408132264409798526528318110293049196600309213319252461252776992095106525888854551092083200947928015583740039536455633220080683677348368287218721744105880484794700675758822214550906563410399625588070846098733553810801959893986981329594648560258270080368472371926089354626326699500834223233456354818861352716739137786191283587539791451538277904623997246768532133122679659062485650598149080095021395678623869303160642986329959855804596819298714512960202137170917720466748144788075437014013628384909824814139785173850015824661653095091460380645156616968884815023952716866813395690527002564830507426971461922229903696395403864777189518077239474151796284740047132360677668002621027124321355936407799127700085340367236121163845854717806338500616652336084550279231556099058190252870137038669285709974186961669561912986762016676008208219867476143365746384954661512190089816856078580731704209541993659690069806436877975214399436945383237269874187234065849194476904050066235659340283452104636147293949870640360473810927047831956123365906940660222874086346334328506041046988329103205559919628745564621758262966609005444939569076084319384530230410799304219829009077390773830715146783338814049648401008722795123595136772130460200658547833794568330533554560960983174960879289198595857543335052757137987591431027093871668832687704782382041901685788580827821238300970664946773030915934208575812903753122089070112115973585307538243736715609336069182741470569189640244140354649716843663138278079718268295368320148290217342906259310374726530746394862414077622652328850120284381869129244382296083963452789872132302638640316061714456960062382803691204861740463157192813945997826210285246813788090528720149626010752261248781572407175964331317442086981599618863318050376108244816910761251092050281669211370402689972565027478105014464002485757504551129489776997042517367932067981112754797571614465135637060820336953474637789353242775647512504615956173996433830945761142308426709287751196507414428764423787084654223122450714761432411829564271177124915024583289623284390144763688729862180669278276684334620403262578287142397567342252504977502697997902383188342910810772844826251975904314607624248802119937280908729748668158456590149446716201360834970941730354766568243970218374046369862807375428509372271986989695632322746301693057538671612577120756722256048856356028766518060636275642752128517498281152465806887471947374174858080346325715507085526313292947287855803468643422068627072899746682530618013564772375738926938586452843912895094539760051624098946532128232961451765031913801733752020697501067677104788321295003161506681287380175101574108977574035847063710585700043508440982395688121465202736506985736177207327036564460170296035744163750400735082004000574888553099215098499929661609510899186911617594634063833381804296035682092739944598841854333185874278307562986688699513414276902167113254229534172399669212050604052148003566163136713979930035592766749763548842390317283307828989429076172059171589606511159151566127462218909211553810606699288859422926075960430189976078762250792039230515863524155982881653756135947549846980966590649003777145714242103162554608690969480991670253168093700832605597476346128016407650382623947487769287520353719516742116787161505629445625440623516010258294110367305548929327267658433985207019201809311055854621980490307965297817023890769174277937134038452931493248794889585185165619189515455551041959737167241451866351556114921996509281117011854200973183229439572011433560738022367726916444300748889433465163371221267589066614299388142604168420119870319406594679911079938105279185751940650551120208908981191527483373049429376036540923034992075815561479635373291069312730458411993346847216824176004542704933078166479846511246820872195891726277180772990802652820461947096888741177288677089112866641021028457512435302527019040458399459593734598304577413791463429555610688044601255178241824653337652512722098793736693794674197042374980388561395104425687865899273440464234680750150832769228083388589553901347194410291341728209274184299306698338721261284792477092850901612765701534588826038161377888140662328956047741457090973861051100905012946384022865269625283391745050052744721588082619731106311781423117232795090886607198543418300548190108875735325054960662535808145826894945458195497540458184904198000985153949358452597486547552316158601219419109023223828172392221998071942071777029612649186291397330755242920491314966402789675049133260824950133500391818031712713429134549339664727032702216592233879350833689150385118520294189345990963054798055380270018915490084162270380943242289503730826713832619455071452779742142276772537568385984430885146525136834961389555934995736841375872938878556952511388541509921264455864912452621507915622591361382676936132735290149570919587903830729715455581688825687634568151629695753425047868447765678282726604993218868945669064075464707142658001637351649750549095112664585366765722907188919157179808082574208138906527361555706806877516884735997596184777521831613287114024157929605459048834437665566069445581374508538927730765490672437183089261340122052635787722656701171794158632364369441141179271533991684613739670825268296399643906264724358929713184702871523447246703494088967595632677488528547722063913893832291351088110551894642131480919652922911692981346221626179828049631747938051723185474081771503998672422283614016574244352861603157290570075598421532182707105887774350888024688412519897211495983275224581814351864157953235880918167811441960562055254348718688213196937646169891210091099054521793825731673740054461241950843933322709683433590947697385333057147321727790326585238485025092010735729083735230597267218060092868017271591545958157039526594486465391914548403171934170980618661334448220322157982615132937881398963076110784539383511123903243903736534468098752602740254536331398945475658909818081889215174132300114125655320318602047772401052707422396272520696327562650523353808887447702987448444024849021323417751613316315809186462767869329674798236564036135226091948931166419664554785451481754231810430978671096947774656842999615421343767073175580570063224731644702481197104462970175135433090648782287663144538337415511999374984840458963141425757243610243742305239631405539472705218734017907917106616554037858233021032039632033321875583383908319261249619389879106436084931538491870620588695726178542131018246044071673129912600866465436319339147756992448390778090347259489181719890828044519576235620239307748819867275625551058012222008890071921943661030422687595367815221739888052803479671122926847278632525249369428293767328477992988671618833570176882914330616207733766237879442908308368057034449883735779831749506843899813859014696420577887464148038840014852438295929382090451289487774372618037262784552516633485864192696787799509773669941686805059457366651907975436448096794381860837300918818445734329411551163729728902792119919037492875423266208292134815346109805866913536071551621946287066289036736614414472779349878915366448330497860834261142164430766710916657782523331035470840879567910029034200498433137287796526675681876644566328272883982760035092044830037028437065369833275836100380022607769335132272491875712473121384985433669952935046528870559315247387267473725575803121802166962481343989150121064792906000051897807414020595229498610500420962107817177636498320242090307054895584081853005573526095911044053317744268574163063403552633515412189758203040007402967678040707880236587116658436248007693389546296148417809109587822878723707074522641532111635628440984236118545523639996733512515621023787397433637224182343475547371986974167512617051317980004597635862535098245353797600696952992081374542010609025490576353706904893365167178116337821004748881037326314877012626703888645646830025265853541343475780314883118093064825673536817653346963758617616906868494976126215610081052895056266525692613387377743111465069673330811180990381398193204504826458691835144812694808944526855222257872552295714561491579096821983695400728490044810087379389909313389496284812798548503531514867086883377082033899238400830878251204727342681059049245305034362641488376834045653071257064741297284002005036410517222333111603102517861997247141578881183271214476877941825398144653009328847353266778552430962687233279579044673034032987404478785478374237098570512839995277540629117740443474898430518739384121151381826327705951078810158509439193191394928462405244779471767059429109151253280999983922374242131714974360346532042887283934672819272064165248079030169625654580839635949314172953691055402807310815157056240763746386016538316096490852899884932138213088589064933490791148013178991558602133801216698670282905413199912359806194431477832272702522255519116132164206594031549061650727101721843140900491019687252013735481804453411188017487726596455561051169622457998926167521224979363125364264108608151984251365903019911413049799461072584156706033593498015091323708603267889180417679578044669726496878945069505236073612552910771275015178560094716349746761408181901258034551057953185943624289349606126889114588859297437654803485200156732780418286315615350812480183231193519811745750504591158352766986801445191662652660769266471591647089619081954636978886423885664479878297130124465014256022256110954500138519106296061623385845024995000830207631218991063928087726647028163090432586874189858285898314759389396436292630407868524435832089809860107107757414552655672967718024029623575130499103819556899709126049720542813434024824904347697552760072234073094589363755759323206640637643853053575411538113660654332012643497337469876055516564241019063539300371450965204525908994247133325842589252068156272456287067143970240270622280994520813044802497508580618560100240580565350515596093499567168769675460987039987168906323844799014647863995117208437578152225532479058030311347951444429449087426696705783098782577181246691828003873659198583358735999259423756152400900992507071592771473846530435064866062555234476249223977000644340581328918600889890046519955666381896367145576107708948013929883741556024664446090409908396995435450254336429908121081175488696766212650522267363073591720758062680119281079060310644230601078386409483509261955930900457685350582355386882589575165498275804446000369283434493969743223237241061169629837073441267514949860121601794106400193986330120846943114097276652986587199192430487811212579488477466078231168713140671948565028334738945001805348116709078697613458814945168731398664380175644600715094263543825221935746992128595859643424164071677575579847091484483234700406197402808774121575809614883885794963394093158738741158076378904715642919506863085160001277286463195757520630790902106229482221284533760341408409231368307225429670211191402724804304810068457276725495373883131805888050872226763542123440977115865378297697624864000211348891753808971408540176196463638679508660141012412682718326404534583446954782526828060054663330079750821679991562443788200042308985871584027530010029066578536255269855965641827466638416721191682351226345978722307291474659944335183450355492618494623400123372663596377784364230561963449116999530480309606047446076525795693195743276437264075961362378059967887389331037805594011159269585567269638159971288540404483566614559307497747458630155265047147334482519163696404932043231114276815855827508609000286378532515199075419969433813792287895439331964588723133026674347231752098972945438842401937472491106096362717787144293279859788320925821206550543670742386540261595124010913450477040540743299489678387533653811889722543123147652485886231989653125792854354639023783934301643585146613091592515084217878040400055708821674825333453857449041383803575696111389925333995604457699022377302308503064335694007959814058312425626983288734762569466818079010134952719044677773503172697523497686020717138666722519825288823255270848585954853219877350144030011881645397812194114643194607101791888295616444480764541338073701411244388634948420245814457938701673055760131427259928233675284278749924214141151072116037073866398066833777139224079159703607829341608004692070132551593539776958577101218475453899823847701476961189619263903174876715798554403102794420770147704026037910229691438861174505782304366703699514397359023922762577783477368419155388918270317809890690077840353875434879350268111822107051003840921422347607606787102440417765223223978997278523594607858601118098677333833561974058199220433880739736667615349334450616474650598389846922069186527342155771080365542307840341545915059867744784419554153801696543613061347199824757570740391654001590002919524693752220903855636417189297910711094010115046558370272186512597359180356233464106978760834503813066723664406270327339421165457538980144555128388626778565806576596800664164290921929231437222379790389618307808878191382428515939135444388911197533013552857681088330257487524842600094635738666853690066080589133756670312248235356499591813251639548099995148072099112701253389636507764069364010819274505210557836697887583842887014650822557051612736409435359990688717737507303119853775747167688980705202418336804739536970057605075138823468273494435568988482605963698171094152400493579085864814669767445498757976020286821116672156942251759807185458029080499603661601204285759859325865401553030320265751270212261972696549518377076046879891322876653019465806732660284205733436669672281945929118325727417805315112391060994711322818623442642675243577854458788329466486499617260437003783195680657762631216913147223891855589379153930598535982066718345990024481467654507386310958781646420526000373347466995109363461885539944444352975240648617283291960039567354165795938260340981200046029546847201981444901725925571332845521061398189027388458589528809959283023283242170263402339358699837478073896493427765615307586778930105590317876521054090329959053178832847412110963679348794309920081216028681376396188138782407443651152596383041389483273865369939004883254279415964517544028398401559784980288070485864573523799766248268678541812500952595320322839018632134120403058655311377924570380412093680182046594415050452522744168829682408026654145022798898441004165795516482910832638634371976985738073957463844147278902705100992182647596815258578085127449498721670108229599391284154099693661025709013138958256590429215641812720402084848412120829881255075416062832915845991732427580258273129593764458369679249825357298399414081523666513334313119460188682157266506161534325285872945160623607363256626259412915751474151240982894758767590030189675776738459954501971900998646057640122762868121574110868595554924939022423246788186845622157228384176187404635806207579217994878714366160143605147813357422594423941528275611692284428780396332923286503639140371672631468298552001424919253849307558870687309892527519771993108527445936524994994479239194888558657943120714404366894601635530101496617225583640352966338095495027284477361835697452170941199765669848603664960986792326699176604081651424635019325297577199272813799410580742155326536104965577194170115204320295004717767266106848887890585634851055707439613934264457081029940940733943857435522045529950951952537471901088658421970698989021795882147516494603765759993174207166570850859223067204434644276959522426557121002724602825438561924379580391899124207151800351496086882281794367973048552488750524441801197793691534918528946519659732546408860107701494977507743863818654067840351639626026874301591137773834063936516110862995779711307701511464677531673737396344694046742033417267310744520469845895133439186296609981013021914329688410913456814601899821495296002901932951321905737957834689852329039912239519311041920802675491169467153017687779776836367625932450137023904082611945621165480907092485618648683703960414590183577006558425603573715338437057677100731006692692352961874643732969877856123711157566161476103572723636953297046037773501236455255560897090701910668084014534050896820998251456191084100149828278639594931111489943989359753279072083314992081827580315535117986923712354300305977558129577306460287292097079020197027658119587456733255701527268662747443308338456562210854564792729210794877996754636482007564046358108210016524124615868148546056027774417752568989166355629009906982957885093906295469042166887909169025326101695570226301955720163912810518140374693168628361393988800096029103272774859196165502643774470877291373213597109468454998969977783436371089536276896432044655284519837481492121806581126024910855538939209365097148337245312129079777398049445326442243863850466040483627530125549596216254641326181894819053151603134856420056139717889971525876807145169746775779613985482976451837092638059458429725953108934332047712410049837386059874246738339136913207107211748513225571737786785852258764091950441965112859647392188194961951772645125282436293103641327666257046761087732371944807708980480326357463523426702640221266508971483521201501418611047739103264685402314128756666136030475604713986844271055695680034584897743404335594728463040737466788592476803500849641517349964408805052502240183863405393566438187884555046654901016221366266554479594064348364421961072742866016350814543125900012139895296184536144558291232073300244900725305148295886601104490023916153886279944517366792350902862420286707195275911205981380320761661303010014137797967308202230036249908865724724001029711726645508757553714899298222903639312995584069229851739490359556321954542212514510954634470971910674943029365115505523480358168258865805379679981571180452765740478030259560372824766499269962379514796295836683931735210574034223573466608846944813659754845845104499234897155315030498246512269421564439825332959483665913347203203652635052026588518485206903283900624591833368199813821010736661199798825539503656830694157073265045538795154400629756821260750658814774384206007788347406363101003428029148086969356710815004946330885644172559126018443152494112742092407256941638154397347991645615900435712769463054973157504928962678977319992103313297849143824161071806535762462496815201461149304084854731395899734288065681542480894417089929641013709338412003782164773500619616045890843029310149282157252635199817360991669710976613910170931448936154662156236747941433375604597630074715516447232436076202926872405001553304185898977144271679443711644280865698843403166621707638117972683437864402181234188522078527306650478631813599700748549507695361158732173874528315091001654107242698895545533669500137677851477728783111854429008850060414631190268886931682465524689018425239396924422286243878729107164787176428067688946886237481758880258580006067309889583587874484033307350490449724206275498352036677066613247891909932787062012248517469434985358194367052499287231454647207749816008891034540055562664354692441297853688128182728471603207387671973085568514339178798804113674557068684831112467289859132898431038252418982906613570257086669018131355895421076363443224524357902113014490927700699739357754395800088913900920595768072736782350890900174589985097626805280513049093939943349693752171580606051609738879763298623714037580902999681606538055706230839770685773082745664349960345016137487640079538245608507347337707130367325126204430308251647140870025588908784261759706182654092389154025613503265362147237255180300059355880338393266949605580306259646386745395652324009505623778852525372225939635161974148205304210550684774341664574033973236901984716047903040371337666942385823691884913756464928536607932149865425619895528522982716253805715587819266815086099778280569621108649919331881533339337111699189011226889712205788522028949806836213455348114986199775948678314939650003548813103147939265574686543700429747936840799664014148081560934507836206260170536675258491599982832018357092907328132931632183630135364320692482884450733822894379452170418324139595735521069143261915513562534716728131600676689879937620147713914797526763491200539475092846408608500413152266831967080579445853469092691317314636197511521606263762460412895603582555516042536363658247293755080397098199748569507057550311779344058584435086974999514837173230411292217801075045052511818565460212540387960663514269175015705056410194467240003696111173400567241855356241733653501881495023703037450302671945365145259797838804395692294245644356405844427045905211425601945929742718345430445372140620985383557090993047324769961584441321694420140681051095521486718893966318753302599628392510121875402622072104434567908153450000646239135806953673466920862702600586349909072495724185019502994832286080434385355425715998411181403316080746096843569152009039804491605765314631819180025847801818759538419886511780749307610338437152925152093436002873917775914354618834743793120193573910172837432322489789327986096015369973515641018807774457696238557194039815875794931481440085770888342279652720337871658439880362227167758632416248824114732724207948708805750405088957133517424923985590115265864324467777663806954702635555764312350001740490585613409718691807477246917866315295038602346839288254472065940020074999184435273510427131150149052900748416328358977313817148370131284637790200431346688409395474005515594578605351127389514415047096766539102818586141409216760761271434114891670281381981500270512613424739158567647051134682954019800904731022586812176156210465506034150432491516609433658440109759881324230117191612546460418307037125830289504182689274555306837714280713491461881760535100015958058780667493253371668421525740490943597075599183282609618495398141242273172375584306294770597601712664472351985009622079359853691000689885042577950294621876392667659197917574124858789341965253807102105259405571786848713786403020903388994414597753102305939911424835738189739812170028315236225725209243001507468841532263909511678640678920417377160170617855244057731333073374785820513236149977587148279183216531067894657463303736091182492095833082110693020976302916296218649058138050343532501840338458843209613257793547021356378963379682953441482316801006160396428797341266317431213290135865116350626701329417210089878138651403658824690015114204251270762948417532398422861179088891495217559501680862577651019746232596903761253734036489318643420873720488742252031272573172280703473408118831857208186743955426755516619670889806147134279015546286078151261575543458878569663524969929328885123423909256654111086189073139551950411428420609226100994699114326783898645858174865135908838676067745333761828290264524928234778802430102729732084050785185076979994917615307791232258319049832867072872067873744754736671015218571227770144709741781701602620412733772985968721974324355224099119119048748417999569577961511180716445113673371804794764674727775685839629347767189879189497574709216385211677714207035873346358433036186409273645699630764356737956550242240451372423115306127415017741843967526763811341852997209385065523714072784175761313353361533693160181200573668433431850455404279231339744145182915036649962475128502055957597022619630913355913586445577813926848756727772072765522566803046414507358964831645782203240370471052618185620873151340556705723821271639303414413066221961290667890843892212716817398581480241993725408525758346028509011681151565162932572677739191642307010440665854378330868890462557108968558102925806051758399493482093323865860080349956593799601056156594633918538685071365281098190073534079126777180446629651282939417730642013430413611249000389674646469809121191936380244548571103373744103648403280683282515877434555947224233519941011323614880894224161574404196383096764355358754553536522656521247602084989347450248462763617872806954396624250275824602949445384678565074549838498625674606614448849200686317574101277529772676232858769793307954941900306278012007901439566973359311171785522114566914446894830157718503047001088547621796843521883996800563745714188400920212841747171753045755083928699743465742613165776066948456857092921895077023923638260290499840385632391252694204926170309636578549634755306772262931860356673513070355287462457116519528331139826913876471662679180636307272148040026912963367268537190770296170629900784503403852941739914163505845313529901783789018297606260503422350970000142206029057257071133328163540937229782969499791786093632414011820658112824091579067289730062878578209022434709451754186385419874272151173972666867529482006268948791337748307220062722667776044266889031255536309788883170358433311226804971805522005097103682526332869052783120117904367362112740508334337360936906998784064072699163921565079340783778956281253516421848334167635585377145381252580176139100977125153128989184370176648399937206598221347627717406778809661933980859493756926619684393428099479238227552318041857509668745230662278832699763619768931649554117803755463117952663678412522362037833946029621287223272566956257371549350260293417487839206610829266980229411690211572201803108914307937900633668683602866502823043482986412396909059988068048251816847419071674228555386106260365410051009047826732063321630500952995834095898689609029433042257297404058533426774485072639059561957273544961194314106592965549932778431329447922300195755848979224474555343766477875150126712494234320281279786475996760620974314155026603900142442569514801648754565186913796128216916090368658939434976794087529552430995738412922532197521835212181867872469299048207049830699083136997699536640411024149065179302422082636895409462833593890070441490927602871290753667421557886934502630732572789165895405354639344878058356379356155999895351191934318060839388340637765038826155731748677729980622796338761692986514583625988202205361997423736876311398453918197251362166064840967308351588932130699139573858049414486921232140022362665088849125813163663552107551266816070204536648069775891506021033564747940596251667386506683681667770673039061570415433025276923192694854178777858504970876172115467601628078009351024612430081079698017752008627323679828790023706900085252909297077381424341665105933846380649869413449251214518448880097959673278022435562145372606489029216632436849606682196503550931674046766069317393934186958090019771543766859013664959893520040640887756622839032851582284320062725118790730085275804989563937483262578841181032272043797378131808634160049983906697780803064976724079344475812850788207569288285458225183801611525540382696513947881959835194051803886566017767321681924952094194169482530323588354242982270452553113413737222512785836695231872732431749238471737701117407856512476847041272708087256869835752558691743047177624884954660611393626599654955523140809758049256614241055311301689465589537887364100812542191216948629213509947860433995716711995932265458783171547243631394411240882429110872181347322569462779656147038490339569110473005921686203821945765112501103137200449176896404230227947451531008168047103845638646357364364297710401777390574972534652497246814597860199372320567532280046011425710732540265439186001923590932989080908019246261989157750164326468554200780469475535366076683997740885378040325454683097539785120454553490694396050656051384822936121126763477657977778770642626131549144468030852612027796042611891488507088598254028201457220215528643891434552087913044900487587297381706725052804738663908638377337905104109764759313459276376764903082164192297058480163894378640365449184040075421116922550530657143920969144936240082139027314053102695155168246413644639672281867749583905820530496772278716274659746404968275854349161554997685132721201029433770224015749035971324899942174712527375390096361760541334741623004175962876411826408207814838656417731079868952626216090031284160502329371343968875795600939910507270189443009913609019111992298439218049540590555219661232466622419364963152275800638350918803388657161491382294312301252676153706550024265863332161353721167178532481096769289465996735329801447779777293543662882335289898610376071614430549157587845950881331342634965524044968318003348031303348783963802378274244376178279534140256630266733386072017616410036655424500327653889996576610818692063153858236251294957617999017026111283148017660659059504847717451814108154740239248445129884466623453761902801194182878589478050194452172062563159058693271205700679981306034454787880115755107667903761615244309791039113147796915111590913571660450206618237171659625816369828393348450433279127652703519455922247257332416819226486580411109188256789724218019635416197545397543350812639685847758460333932016517966153797577264127010462261027222069577966803390529542396037930090129961771909802306540848420110199756957092075683236347166008510104432430927540467337238698176207619547746253627829885900251229102782336970271682509135134646734896363600959430702405160386823791244120525576647042742962345201015905222694632111772795301207917868573949133026004945283579623499806093663954606933227678011418910791169128425012176627546585992240035932606942863948805839241658556683222105927136738604594982877463093827583672998699231583254528653213472489118296456194056371168120660925400712154995900530997269912695427512149162859788326279481754157273317676898795006027333325689269798719683889337562097033333516087816078660742256571621272968213830982485596958515368955104045756542033710207762027680019414765372898256546293631081909638799208731903003069697142222478469694241156048068779166394550346506860260438352919446072958914549535594253657798280459780693981268145328877710801346951323352222341865525440918673430162292819054850062765905099754694165992037605497956253187757425375673320084984064102111958302571777061369246339764129471038251521344336185815274365464028779526760423092968253150404599732541114098559219038842424458972404585235326670172746929105328842327864589351765613871246169971683735715649322715699852350508215026811462684228995593188082013253624206690938264145847026578827983321297689020089614566039186201671219894545993508196368882427015713265448344349764640429182646079863348067180409653223337860586402519737348802704601768859883126169392599540290439970780443290250910637343900523685722364343853346029801829667320901644788036963014440487207309261894316966505244677797553695911385296601115637750840353313792948695410897909616456605863430270425978905425650639806444865631246133068821784627163972152575199001405037279498382770287179213702154036868455508872378626102540145187060539998168495693489189173131506196679162285774058412361824972483781789821711571778054395437994759069748112447555654563802761899684590263575837050301878043273093101902773718779521555039123764638662836439877034859482347652268643386320612386170806912951231363963825804347248966223384884284166305132080120217926245009209737735879873783119390539269908817381554493835919253065259674223026717062351687278730921283146166820376107179330707740536107220640133338428990014787866248405361230163439967399851907700806945393610396550830215701417631192703407715470510930375945135303586677265023886393277237090863291978078854630859333874237871256252655968519310000032405378098144523681123434177846081545578408658277766022134501874381695822375050852101274781575348019981984863846413554564480419531315159173061595828531404387699198988883418619958814557338629531995050881238956558958396253895952046107068424705186656623415345400506007839506101155453040879542288228625717705362734383722825737149344053603138025019586741162799449134733956415638257395403940403613949806074817434420589538597222013346871363735202430776628898121203712365516671941176359100611650744617032713924711974020801696955316544899612823592245268428522997251793697565150569993305477312154906243732416839990958946526972823244937206874344112122836804753008966417008843973558965795824001886977429117288499263507088186971849083378030919088586888924240817429624371269905797155786534732895960636210013984020141713319532498059915346441787938166203520987809032556961087058115057286592197037881384006295513118568190476468157232949831873356314000756929517383563663340462271707225355359973579067157271328097096198746579546307142512007360759024980427453123704516913201586583740167129888604517387539684182710233102949017178631767440910922941910556643918871850085286648692407360957594759485503347191518037552051028993870481878110301123907287158776196279778066630602789463129535479279847549985519818170673963308819643730186013926791882284011254502012376053134136673445992924675538371762679421281992569649035127226856200851121619509682822633791138222769800947125117348719226063522926207383464253113704390477302578258675574585731915902370036018213800073314979442882199881774606209805668147369709064788455471103105378468617385655710868600133358732395916742866027683666765133061928408868249127835819874454176593309762547267573071359769084001260084486863274438592366021770812232931638275623542783822019840924309369298979947687955131789610242464693486457829619781399855007815682669787039626834563282909328003451504102338567069416637172254623633562844429783943292348778417991371846509231248321326416535989344435336756867672770310544607007516013693760828298752776651270201124564376974880062085761598001239842131632058297680647195188673304255248949196677114526979269167786077437056781996793971713382503615022670913228476383231385961229216129949502822503103374385201262397387600584250291152513023418247655096898848481378132408980922292821744867209124482837546653193685364314503033700557614614350444972252891693395279427511096200061144789241764045786402368423746122632882814065741345887692980109188545642582348486972554502103343453244062100047248201648063545404664283251189183454640329139397550009287878211677409598825373247417730180721899077362354514113285285673522769463941980081754997365026992453170554951154739678873780326564426617242431210262114618240833816867471074921987857499562638310224172723811071695068486266036392083706741715944080672287438768904977906530609757060659938811829284446540534096090625913234431588573192144430046848601871722329347793393640011878762893901244113349102045741360407782306381786091609108598795577015532117011166441155341878018661045066627368464312711304287014516886859756847570435337965847658045813448503403463485067214610056318376741591924248644592433259018787118614325529384570134548486961004659380477343170277658733361097254127574776051924043464394796842352583501299357450340390864182533542436424188384082964233825597041721111536788839931540450095704215954296836307397859837011179162962461541828109183598389942992618340683797997001576494859547888109838957078132391241992680178295564255684984852068717561380675678965768871484625965729559052841864549554670788549119506680619380194589272060581821882896446687156779932601030305729270394695809442719025869511685555254792968929878445782514442415788456238331504079108443984268945834278468209441432294496224554234785964969007239070829808676114518059948851521682982396761154117138861552113096729946675311704132840258635334845464552329603832497788975134723601106521770802200792607607179681718220019564665272655466574316094421039453267255525952300318399849368935920797791725711558950444262228425200311185268703563427058495535598000600934253105517569442140562474786013418480865724855772360682423506485455322424615710143862054054226035324434398874134953861417759741149198866114489992295956717711298910808559221760226638055807778693042435627504452212023274882387244516319656226963239822932025430535067525449468564604270951197581106383894145286131397318861270652239753232297822101407772468155466358633121690868972227306969792391691075592687700781967214628321192286310633267199370209908799961293998475445299146359923332887663690242826376267270688426204749600153227409144556754399943020249448298608457480875917146461577111886962303606787082153462853025471365935731856523811655480949199219329348791011547109974765491599037409691713163770012587746913153250761409269988724121283251247234347298424561847458732273570845062894492347485844032890782482753709832878272088802252380222675016185592500532829819477314743192271685368027950692433815361843425434252928918125934329171683529478831987546004515271363874674852612162610333449289118217867449147218174738522677482850540429215328970162803521227378955182733824304349800143914433586913911192506730294553386777779981784415978001023662138900961478232898275881965017848409438539892241325374986588264412588652331534954266152311390131979762576916449922467559396754191843556967450334615188901900496793572831750597615744843464064022740248103259168440771323484560915040984523602536268139077903578802239022892851651060472434123210417703898750167503052427937493022009511224732304856331176781391851773686467886580726332658334373994721522802808968213641531205806983794140937166181108879636826893628808508591566023378899657771640278346006499986016632631219251819528913857601821122039949570286220459131867457291366863384074509407454461102122967967927779711506176715254882664265191702417872913082215035739970733745953958508711413236800711639425874680896909149519774034682708875133019470802326094621595790420177655648269440102468496486532602364108849975440150136874040424799202592729241950901183976313262341561785285105137913602783361598019642910203810017951322892120214180885717982284176675135601032548862996756514037306114369840972002267891750912892770641421872096038747367408157699347783897534513294126903742150907218343011380363754383086925849312267386610256916241538404974201691320574173948365593697216377689036820195475261239615887610520342843650801144235096007904705147748794751806835512257026843885723983267733875678022983229971686055836637583604369445023633055301449671394881222720616115342197865974165254368161936772163322298062286949670090480080165914712615437551398535372251567521382710890296923576265197051373172896059644712561424506499810384656853938361382836416922683762374857482522442412658632672362458897455155627757758035773538651592241932821286778568776159659448167421506069321339564004170362098810354616975600598284744890132115853840826702519196327502602725934282206263408815646093965776814409089088348667190325912415271604122602327899295483068823125689794363142165999552323438401480536671331892362844308969067465618352526335636393359239753821865676404176573918540424205796252703717337024346217517515072294220070163426020352409574290722681925349282548733437622685100416220384519805550563331299530822721564332273041494752287019160197235167266023199779391912615185686893378723233133613779347796824723957728947286242264904053007360839395433770801944572643922284771862655859981227364399501443302781145907952243732664121152023802968232490047832716827582351933215610641433694374621623483670472399357986650067898788184772004287062696766678420533049832068386007467681536925390567996387031220421130986149367601943914077492611256162528821271075845203153480219264695116653967048076350989358223019371041554902581895434825658350422351356543782924403557438038870980115460211670436796588490175017754422663068677962714731753483900269925947680088977180228608886168978389929258556083412123535016924340832146026188216445507291010956880060465909785605840277218692411796197345886208596783435067035359676167443622068181063181567888808795307874205120896764465481263828958671286921950414289009319624229036474840098374087625080901545049048438363671775963119173763877305522592437984223802914097372432609367936950022472988819586996523144366966125432685791287559974720510410449435571164747386243535073848302619444228881533175434382669304137800179849427823703264061027337849167956747277868133720175476901606618099994272943443066921675059179787776641356538427911270694884841823441906391144136080417249195310150476120144734996293121106846136825963026987319747056415880293181094057170969207295422491983446178573893561540001264009859704551146972354562743339430773897204592617011947149420076179371656305987748822888642263402019120482521980467523827495296076737297207196881165788863453403063026960182379476072733460175263888253923810807180115617322303565239217029041180429237453649837079111958900238763883819993448171276444250093756101825690470989888861452034968062315732323047402358223288786063756022908576093392049317845713262617409633522905149487275327748209006838750928087043237531954775733142271527613678517968179353409874779774423288521121691698055636149478781821599633335066461727274381494281024781361567018469777724139018792131291455767079848432549581118272399227868485077409468444669479492670208963845510014081372531263218939590870374728683744524868418331788375948576450102715926021329158205168810925701844370461575616009205963324975928385963389948449233521445755637652927219578706326682218081878787239694757126631937327248858126796472425067487397375151354818971310639930336580702453118867858235683743446071346715805525713835112273911438925202564593371017778449126837338421395811660884811353104633028401814260837331540572579358607930886929859506303170967466499062795307808443106846922620082830510190515573794305523840911431831887861955075731563698340375222328007401058052988072645943227562642129490915423726386286156617277176198973233419145388756545053331383014790354967685874085329553016436974712247753706091560775621209625749703213003480395638542209032544481206904536131152136252194770037289482829306652580690849417875177769781082444679704100767872499824033499242495899155599677460593339325125926911107470114640455644079112690985726942577023770937925628396806907124289255260020970615467240556579313879284468264674639503195359247595824808272942918973293498948985758627202485048175165396796123578102177792908896197832727472862707451316582903275869636331432286821041796462060245510336450071975237819424346120551269528714217588071196594364781894540269124480648745647815980783714119668945435484130290019862397091837594430860508734896354167866023189497740024053125924885678596437697203678870886215767786115560078979706885913415992228249582404047171954032320316877762775344936522384968708075140722675377914898395021166075867977386777611193081670159036124758236207455802177624493238265349618707309890402153417536026837502693576185723495064413876719360765473884733227575934245018718853929200584553738039953870395755561204111168101909320708438790435562268555650448963149283591023605380924932105816385649260376842241084963773881696914469793117829406996900893237446691532699517661915756590583763402193328575414458927438958106915724320044380427740289439600876954988308460452072397116479793301981277067145731565616593082851143711837784190888315929279292869630485949974867440058559789126304491614198377270481225104741198915920645729364770266244159624646333237404978779270499356663580811860201391550184676895270124802920791838905796850590114261553478745280752311285598980430640723861782600579316805527460828958696907105286729234157060738925539442479841417824570262954802503339809340808515870874363337851812285739921036010661567379874738787628993302241733964819049330373274293750992233267719100642475658430473369393249698896279346299053888740982759144046186297205998205950352387310403417188168626192086321637256761807223055526944238824285831678132484604741009307888829373504403955633805511759711710697707159380081443936566263727453701596413996411041815086556438113269995817846301473297658925818939741187295086895736063484031973190912336456967110445582842427519751327118356946542123347907253965067248210399254994802794973389902754985627609369880990022945834916101669454122600768242160301306549426490240694754311748527918067361609254996391646653969841489316092584466652041737600474759294613475118066399091947400518900511078851603084085687479550994549271811262584946839387431867634870468532183705024160832913153767716725312859164987910422275256572032196387162240084325459176476121960226673134666130465452239420888836418788870574068896461899924264795395105874040954178832607473079966516553811940588761235020943338516962292222479918302888465243990546139296938235576029015149680291651213908537181038938391245282361111500946355518992861768769175670770282092762944512644985385559924778568437158838545749245376865521043538617754040146395488347473088232241245544042725227355540585888757612441430395723224108514867476383387613095168984021857406971159174665461025134596732176086818365128125990282176415108911804046337103556543399764765976008164511283402035200328976503986661175251523276712759151518501174307179688404586930444932846998082843800965585508529623657410969974881028914952630323867965072456749924813013694523550167204758341694415346611036754265980958842417182947693684100325110110093260250898331566590213679618962103117791508007850143665466201253929849124589094225745898219649250541990241311135022890367121957828751750665053684392942604205096569471886238155213807367960307361576490559089890459082138072907647129805490105165047436320656280067751747356166527168957660837419288912450170687094880621182323095451460743388274449490998111351752226213387052665831139623580808750933376232494487238853413411521889912826288754943406218963713345188173981342573767054604139452047884038427340277046416928387259544546725110974990902765913729472867734389722501138061338989074163210379511095734420620976198011280941665895714529318020134393713731816705389354337305275907999969719658135861864375547482314286684411224261291967011220374382315415292134450702384433529808340018683588851465729673689329289566707354831464929268894602429827891141314692339988021025219560931726173329102975886855085532527498455834682557182857454834142124884145345462167454601411347085765012400405834053700227235499305677555170340270183975936441502713519661083898988410145187353076672859145849398022008205961390409609490106630107110631797854463915802423533714794168350184191671512931592869423921877947875353280297206218712595698017443330943960596199440048723255753608807189800880778494212736941477950453347051437156869376838609001997948255739676161527201938896880234856574613000850321313002142356561457676004263450768047251332673964838337490955576697538690809730659373796136794723937103349050245275993386015707705922376044500093253649110476501509967874848691723448752971982316109707122270076487067264137069147153273587816104417228240957545198936860468560799523040378437061928669618612135783667979316984278065373281657613530818916280092637419384951548987872979211051488053527897627985311704564353200602682450528439323997640167301725206052421565556483774043428047659756122741257484426292764758999899515567194804751459687908758972061510043730156900100564682416222309396552163845528656145962311634756890621922177338509930473993332612764657856191648948521755222615416493984226953400491874635324045471981077859382219585334946939721767353702740097445905943378511257393868166497044477190697046791118486063677800400057231871627142968167871928136296637565645447507720322636861428213132723988974792258465483365522914907028359168943032629623875015908283210348337678916479328584678959007573569956869622920514828259229232933981220116357081716779785592599262844435977520736173381198029943586573946523030594217070818762103171525232516586850212762318696120444729419401074825583314074191896652925709775740132769022058938623974792801295992038882392666071777339355314210554970190467268834715998398615786510686280676493222301186635395062225752831994408292813742730107362355221288277984343126328484352936104362282457521045712132781368223769875934486107267127667656074427661583647458062135315597180520443095570510604732207911459470282326815309737821540573924933257588570830698672889046581114611552856015412611666081654410151911452689788841377744989370687630850992431710664916292242028903076369912670223296985484481164792542000395952282527070045285686230144321792390099124511644526389487521849602159599888499491098359488473972413873344290387147977864654527760975380050267462784747858620054387933266428554081251006715602063480121028435789937215149656986755730782169087281725222736478636084049900099714255534756612677212142459038713973684046767166454541249770981082978815797513063788877781045001144796295528844544275881840086427539392722151417763458296260180237306770332035991288045097807474751523649343316128725481748304750273681099061275444883623765564257386086794454217362523774903710455176262123764691421268580403203018217694461863591657062058353592878282569726963906171345207781169856473232233341869788482319689841797651338425134765105111619881290418832407497642312946915088307893311838868137354755890868857026006407760771253224961568432402072917779327597063644257483516092491222014155073658234737951676514158623451419647511478170757097430535029452233820572040943198364278648609676614326912700489337329515052175257575275785780957030925836944972035251448176959203099410729432572578253376993365944438778825607706723304956619659135320795164095206882142962846707590505854062477576701113540330335366219188022723570169406369333096729382897510810495842859597121757505473869445591567464015538847345319098214144040543856442657722935673100637178398848306770215990600644445800518063311578392978666442047054312934914892632967523269524865631860965693019115664851486074432320098715442472517769840052209963986627662982220075260153714664314061951963018269380161163553242151720146239941336614282844032333175401000257235440535766637182985338918278823102062659227386429850042148614664072848530702156287100720483764788638431224847634805471241790614945128135135548221090292768188632120968249081165740185702803634468389283629524805574520747141498572337199149462313409167765737871645117883880487491812868673679453242820063824905408396379677682696583439175967229565770186114471582468362977284615330099747676688151312319709414962240636901338647327280931348462479885055598746664239958766078025376285679557804368425364243448752224393032413497954383742414022376788130528024394591746356635576078477713080378798113009253908603989191963265761631635626998261906727350382937151523919629664910664801009713268429981535731741040677797329103491631605393449321906673858506325975722731723567491415425235756521413521638810597840042341117314534095801870782390935885256483730261318735272698836877968103563839134008511861491634768448214820283550836213186410473674902300206164762666344015342649511634117181626670499487509594693629997526058058002405321484892640984095151545645765755209806202891836751875126629999739015304945571264184298958069991617154628595644502616778363905878124201897937453930419137764215343092726094633179269362374738651801647124730408078914623042025574008836455894325314760595303641156423006195371573076808639312942206203225811084999702178491461074507342655850861330775019440765227204517952356791923166075134621608694581019398914597176883155641280191785528578301072563502412971183115481109425276445396006505478183941749468322360587319282902725742494254113003335223542508728867758284491086236118068826471561285864674868480950751199288409163701560902736073706756001503342595057094473946628586504361999209882375364519077668756015868090031638596145529437431992802366493532635360000137444126414504202591746018361940037481673248926311818443001980175287702322526736414080941291135731413878920036839138970795880901872229849187276300172753264823005860755430816943057165816791036198437606373641914437801127267264592739766639269369497990878142370132593125091691702559875667975991227389015959431980715226212271589493522030948152555069068513772584102419228157581682778291005063195800625032917094514494437015287593843706636984245646393979033724762466855406080052473010013264407289487913466672672019294584168183444976065891018686508583101710549222184272288879179850717067809230542816867688608754461309165969173757994823776774263447975417311581456245540709967048973779235094935030234040767250243466607148404870980857098033366342270308248171420516735174462794648702587016278227914804275738204220428796560141275371432863680600810819524372113361800625946057807713515751138329821850223757548720470505676171134110085075372038352001088398373751478389466145756222513854494976380010344344583966209233043667453286494335383316795471818777103016851374713302204659587833777505569094713357342806007333462365921386266120428078475971383773783473249735358778407101237971440469332473994524837190291949260564899279250121446404172248044227438066157315789736409820443677600418498379018324113866500255432346280800560802271111512282264542130505774748537078069584819313939667498198097468230740964993467092688970182998232235052903371702933960444297890684777543966341221445716834539586384162584632378241828763759766508505770212798952576013112531472133692053609209991829421159009827598743623831953905939557786029560612894235001853386367441880359190654579936066639673013323108594468377997374748604457652094982349293217233463244557664856555531234760968710814467579984679193905745460477712876150578365501373369096215530746637257274903939632212017060850137942559274869770179213670179860847556082860777326226802540902658662861815613628672531862176189631863906587518829394971364608981552853179184451326588669676821129973311974764828414866074196081379917389143567067405936897674887288610723112052214230955254266453309971147151053282613310306601129084099726756942827927353633593144784893511042950450185745572059752773971441704255742599512909642311933371432629184432784343848379183142113664728431653518125007619768933149467574604425145721685516917406125653867527871482270402276360005569272597223485890542621489306771121014602630451654310968064325883005610928137642381884961276723613868468393484420323053401394241111680039747577542668971556291686269936827399334872485778372447889933942811285960769204492407670102861524381797639292930214894509517864180795845941217750681160488097128445071385094666702358237026894066964028882977410840610891114423012058668183650322214101057071593221149028885601733874517031587280664979971865440669948492939796143303170779005372552949750923727492144042224729384546305287504308429003726904050790464441285798534658484417592813603745180732730560309930031574026023534353029118946330547476072019371588959887565241306172469198017888654534308720155378755116471070655510649362902217550265196984634659813638779278057130371085336485788461569882565382892734640099998491289926689829763464735805830531349346675743441320839500432514101078731940001903128948808544063847601913755839042991165904945807088086463791547984469103075686579902675723957073574145760168327847346823688717527197355314894071605820200738462293942724813575703928388759036627986728877567190443189251727258954898773152755501932527429983790443584987798988222789319030041826766922359995102113184627430123550219671714181951692260303093311221290607105031623096399751774983785917099915941096318276400077868474532661667148745134199807712127498662807645659294359656813273319132408552604390594428043727416429291921549895877727468538997895584789331973716507029838405082963128146610908517973029437257729242637017907915828109683003303869515318516263637174766354295376292162705830131106849845547962791127110881780491338984653351865330516396662101927135351933204874268407827866027657776219243540073735548335552545441904683064631907129499656031458527100821302542270690172167384682625244471976342314544424881394511886586667401510096562517003622602329661931039237846456472933017459084837930358244666436392596737562228899727703841739696590887800555294975120737491195591874833562605789230362443625783869514224584092797577036096070253344071802957779522908592480342701463652958695743957368862541733126965942466512036806498079831621703716698709204737583285069229618125136612979178060961325623324118110091383797174698628227213093668887760949922705062736360331411738159062567080936869593142844481161663384270441703703320124966075436669612553597207822473860770896519504879949700447214492199602692900416402922174898237988755627702759170704864828583356807620404459631923783826402264974923782091031630484993000833586297516074744253838749439817994343860102070781537690245862985885556927905430982911468584012025462600933976406430381671554199738553273105488225357230133023090696271149090552994316026069844286268556781233586310376397164232925468242921851427200943757492723185818391980048830396067303556950947013279282628654260445570659311501188610962835698828808898196522644714336030048189926366609760496366863488423899669134152711235087161800839834425986273109126800037668378514963181157062611453620964715641456973558713688804794862026545584805351068615320971923129723117280753091436472694745342001271174282459063763668429652791823465998743728730327778937486326921023701347145035753490057776586987757273471457307650575287661966933517048578090425563328009703080481567894229629567081413022252302856938410790402190427514026062190587627490723711540562640970768964108080437514305346983520052542204677394430052491324420817867317257637355894521974614294830073894380196095820741252041457530299996957469985112574604023684818254787935988206810685060754371708654455768387913610787497153561875151546397156617324017851943881817353232526547862064925797063605211228844277267090785962893211239659019446115892628623567396058718239752518980122541691052075678800819004354988987998087451217520537709895701272530758786178092597577493948386644326431909401122368709012150944006244735680350216442951140921728439081865902529915321454478099615411275526632651120446811906606237299233632736757286454883249413416699125714113445669430796220913784589752989129038512136221960853747967523154694533498518050499922156095151387811216822863449679021106127127500034657918525975296435489514282830928096614479840001546085704284569024064161596203019277606684342716894970600652329532416579508039414136294830771588377512561348973352566158553861832766820890150104298876989294033039541367500411108167732868567700672132494578326316631315909881868174295374587357566818665354625158780439847861055648077104152591592705245563644711388214082021389923580881453219288076397143665633880564088779738321968756659333308222890904849150634774728705826601753936216807147763246544535978980356646503089751745049706527307100515413929506710547562403078090982993037698798005106391925631827979741098253795094680402467740063997316217227140918750239722235017746251035041413131672923873753969490840914786392607801642220736890370842852103059141694124680314441940036614296365214360834702138885859834020984913537652180596449565579450076041640216177611340447673097976677092920386185164424504371910611097459960522695997441116609773998240671476789475566056238755003769769699712461427568790342296216479651976310086429546397362142555095653978350468451692585397399119281381187425327949255886091889938359073384275555251992267739376814621327017024826200717883484860110749019042393720653004423303520582956044803798219447554017230345039007235050332065956376011842888844889092759605344042128560127119775851606751487691796798030725529148921129963765632129392147475955587488729695902942352663124408819433599392290102753691540777681154336766802874478870970910431279661729462232356228213857572483302589217528769160426020688977072290074275415919518795092306906199510178741218280954743487908071650093389560373035363938984646344047329255372884467016922021902595638435685773902119710555562832871340523614242963540930613397528194372162810728037217893417392218084459899904839433942789907359046024690529103920807566039718877770163664972525055228893522633478844063264964175717661762014067223906433633406207640970906701837468374909488050022551214625602534011793393230076506609377951087603532795690191476847534165657751881416299917955532613325232478914923451529485421780420643237721019263840616931557633178823929868694604779073379440360409444527447868040604513902218412102251984629005950413371031720438961106433632948239845879125296371771701754812326137553075884306380610446745523826389877006097341916404088385407419692803042140313701343446117189971171222027032333813830158458436174588765730199276317303437529901072445179452412795653557848679834470502836490700441780196250027658829104283496571379353932964683487897207145278982614288729266265820706054828204454414397257451849659491437876870806354746116351875940531483215453995735672638319869446067095070366490843909370817053312579019245762522138932820044468346507604895387537517977842434618301557264473437895688293201662127396158503648717160956000794244803167815051508732056470451933103985146372617976769863515674829597073777810646348708572931891356981304673453544850158061293256585869943678865946185756982386963056381773756346809649960160006310670955449102101223259281504430787575267027392075694426484352407217973240531580036424972491026645146004385587126413843710029344218307953229930846097648728291202243653561830083523870173260479738112682577534475548226667311812751234256882419408512253134572304914697694662149952299718939792257544062139651591332296822309742903067414618315378779555916573703031161929594646769239745928748860131757844662481382264723690365536676654455354006805791487867052895038269239996367788279045363856345190966895680984106740525589379481587201981591505495448286510640087656084671531361268283524152170012693603390861830846435264437409165691956533032517662946929268376435619645468582643942218919229748303754137168925409381759071567473104046440264310325978145056726475848508383197229134226447273182828644438403861577727388122724502555476428272703828941267935112123383853525012306560703733246971596106707401183652066677411073828739644996501129813203743092307310296278334521178876846976766292154377046129113368034078348132734133174905940385456137898801342930200622510986262459211917676561838225228413858881020295775968857185719759781741587390015377851514790309526974821768292990065145102601853269692805536480903386459156955699612113241766051933234348104048159839766412892483752953450263963894394028075921465148580556560513095436347681725390794024909950510889144638719422315404122960694761782848886357128676963957750428622748971798091998795618324436945650705692436543875585848632902010940943743056203194520649892714757683804423128944645807540083136553656369434475423702080457400628777095963121840424631704011203343514945846448055686930536264178832747338656172122821837242003040797289951734368361956651184583784160035681942292608302866462615726506146187032150022523604290907270823514728601553004851366404608830492687228284628444661808059431291826703790388817217445010634631724835343736330055306425918628744508744730241792110871183087277977916215224707018342269164431366925976111887593296082574556683656759766157939012208644475276878810567082436596803827429836493708412962931557728002187260583364160234275846016888196915738781248993845519197463003311417749499797278759229925424583052909708026848502507333705082745294502971796352436663804818487592336299444560729262037656433776273353692129501690656855754956196966353083656774538130035064747248739110438083764228216730213721242934037615536213202930300252204110249322122674477454533912167349698871945532936317338554182425722117712329740759471623304595669510258940286619534835677913046641400847818662826539916879190162827390465167242931744319047884914690903378383833211720757459559585268129401340002694131526823551218814526165141811375224984397317046240625483777028463648139017461135260356876749775942731622201413201031282369982954067223990251823682351801480486913361335505372769087030167905905369482585775112679991385306921760191577042457392718311276864189518130529314544327735770554337258011908626300310518888215093729314318145896902843102645246597099585370642998248592295600553764510314249943118556101263771778319397877811470278807085058878578221806880820651946417763349461308399900219541961014123641361530298513248127448399573750354896227736640582837127535936723815553218192603899487207241530540701872486555735317491459139165641132907944433960474607539950862899229623652131716358945097132129027378678828418669598373606726151310304349171892826113924241270073898249265151900457829882434555424331700766055727533929717585915186752292309897752572069056681319730272070159870765868868184599552009558151352802592698280524152140597562674652113402487461096234311678835703154343489651854590536519013239994996816384677315419619193863791489175565282289448685451531805497557255189391099959989899364657902359661309620337821045630620355788715976593482628484095155867611163648839240496922901789953785463065818585221449191782134926189913720610700151128580015648954498520582418119980230755020456823053712249339591483259619571323733583369128795411234459597168226283786328956805492966915708823604686340734362752903627080131437348719999541652067525482001560234379645158370626690927139736876242472341718233386216746830046741618594596901639816625572895404552948342673529659976458402166105547834050395940389732831443873764734462750950435955717919144145082959818413417667843624884100835937066553910444109054382400672334737299006351607327433107219864597110612430866859388784281982055288452710834759464129514030000232941024353067220055069019262185490592312280426398581297154937666123061339015238498998226034729892963439432417214432365297743421722391931423250373393033113192322776132581953680034509913478031749185079024398009423996644952941063753809080835241906813806765553040991918477749415117548048602883410550332210101182974633048392125664564264472878114075758801888292205837821437267561074061698124899325315095188194742763323314450407875355491042120441109815994908273239492468987828439794684881363033632800288517457878837172674812975421206154673934292883871808071166050229926010980588888062983657905991208774696667023702349469816851685319555489561875557254110002913328802264772914263051818000548851411210902017011803714064831905885981659576990468549843407835182987484688303240591247278496916158277371045968514974661465643771040265551472878058134345552216278757539686806178276716558899233646659274303382039269966674005022067538672187523971782587193032770479429794367908154605565272766875794432672227347042709659000057497787470333656289687051837073168758734316206193403951154209807705333025754327915443697394049180997425941720175155467959055037279820602203331204045729418699227552552960244948924802183904399941722221291450710110816590128204556486859490998387419720602757634350827884336242799924461391627857353653405183379069038807870563042135853178440117966009727597975007062186469433479844009641514799765009725940643626906273704699993964322169912674089781629233107390590936487957063071852388013902365840107888084901658295661254335309630631359998462515710141823516565251251148510943738467654084791863610535394463622736686560528527411400887510603536600158328655388526800820773024904011109904042599885306891813833127119938682705885668197081898843835952081687456602525668028963831849777778559315758999743561184935556592389588331494738681482936983657403131991458657098695740664784686314897012640777773180698057296004020900176181716772504924476276367651578606856690582976589010899031099682779555935103371220888012430391989133596809251347474443507103168724814564486778994607462351955346890721973461294484895000126765331365493332666072407205152594164429366652326697647914838484489405992336520571606384560642856972150826672788430311486743195187946587836565504878386085451536595096010514816444379107524180095900491121457232837348119223391019744102752315242987882386781806570071176559077145653584500204835566318140346016629265190516370216115447212121041055774424206977390397695285546101457269994750708331618638213299194708066205031499628544353321842933042130171527340905076453628665457799118825860584819498974798885413823626063353211497190605306209758079281862434465796479654983828697815184827121788855464908152817255939435288094992822821286154398927186347337803807765847982866582467102659881497425108390164271359078465089111651104362586342751835717058458693337700239848138832322861288333697613336233724080310562827772818922677422210469380629660785759117637457517954983741431911889700261008667686272343507172862475502605867555702499928875221171192289783128745291980321920181664753677083215142400388727246634562044116296718402303304031026410567780252845578365523920463289447398752900981036505586451885850019798842782596929593613413729957647631139309066178502795887438227902955524787278564549043634703695663957714815335823464958656599896008308119717541306580807556567332949389348214590680893549953442889309294940859370240162814682581070134753708756765242144376828780796087195908928903258601230893703923850316710425076427900889368011304499745115239685396359080932270459828079830921623484297771233251812953875013863910648070640385051328255522365628290265019627364050129035610135502083555413164641895690168495079724386146755886948317178721205138875534234955950364982835996977671682499455932580448107992971443792487067899639537655956763542157608935363409015328879251248156372640231174076458912024245830564879966903275273313453309192277472141148528655367410353768768065924598881848117148395256298658581279500535805220473101523844003582700847400022467061867792540374179069749730197360105936873151875726466488224064073587144952938377836615622965752455637431104869167233184219052067220566331922940968046360648556074942853630611848902911896478517770218138948135163290122067761130750212858730693812561919947646309289243557613563858320813286272176209403015752145369586392578847721266802860497494410786228582842577521564389530336518015330205234898963554590434167344941958601535887753748645524615958739942004672344769329425434101214790182859734096690320447527565983513215633752995319691743892557722681228811529077367606897710690890140924864864873231267643519556030967854436608208960238350569568524776320226914011301586153898812719035026616727437391817914541625119003793902763555150811732702642928188678009305397886148824429215732394278611535408144215531610456524453728315223036290942487519887526198113425176616701917420987132099710886472101668692590045441046607738594523669323263896041393716603338007729042577955795066824017824621919584735306083215554225939701577639708954058159456905796329497001549293117782373469041652591923359497478054873489298130387067116601669190989925864057857924447663011226595298734525803077481632372403156287354347551780753150910838098800055611352976841801094401244069710151702335114038150516184222781604977441296971773953889418316955986055457508778543637794512950478158497476753619811190511243332379933271164890204501167167425473098324385225218955841031692234117735989881914823518183351098685176927290492370926741843153686834809489337134559187770266249386023126964280302541421689187369487409106809163998630108541592174565439950438139659470905194153682077737834895126366794517788746009941586549832537584660336362993029375913776583687751298412090825620581584674082756142630000238250230132240557046776745120412368171132283213493914334829008882549915971361419879509467374331044297027901738260403477245888334334623523562081167719080973551347816302499180367188973577606668983515642874307469922764137900171562494085561109687919424741257860029344755721154301689790732472958781670483917919699953941171707859635318147133770669949513439691148762839127282351722612173517111750155894742875535100154363359185901208026846557307937868067930194942126508108467048917997869301076804485348084814020635176956413703762470103095807250895814266882980187178256274398457196743000900388538754081812273784209039277067582539357885408908309560006740657411336189913154038505007784954758635505398633560214046780630848818568464770184905554445431315853087911934649608050146316006447952185596325509522995064689529595398263908453361133163023831699908317254197930209850790899299299356103281354149947737906651094282686906431945766810843007276412749158478781942678794803248570476825638962685705952099067705277461472317360157113204352109630046615136569156645075207354028746347398319231550269941857071685009917910043118562788232259654096030834611098795591200793328922274038460473530048830557493347081662741324884575122238197785595773909426053027633449046233520608794139458073132517002865395988673576909607984637196260678844152139372377126321393092533692872675940318457290875816741050268661792575959912738690048476862589982292298524357410397258416867011746849413761625013873446419195269775237214554579118560478323551005571309229402167152848056815715852219737934619806989336084092601124907462666344112557594910921320873188502262795604149701208555406391777056389178572275532015340475286386344484620043519279640645522043483264674618761657637170339249868591441489389375561619769571997898390092869554830596746986023948774840771076754864462755334451435298386681744930482120506609983777429437672426570858207366559475554959205301725319182463803079507411023471698746053606759101078066262749449990295104212570498580253660102274148505856213016323212411314677935697466521788911929933643356009262264151328341088239662275566523043321794938863902097898966580589038281740918643132946084976637610583504955535861134842273747310962352308441122807565901033186445872903700681911805764351887748890633975097676536770380934101181819283464346130407086612946492965944133747620721101393631698120755221907458352800514814532666608950387920044924123860006214282579684561773001557048623536046352107146593928820495251272922375851754220358181015540700779215309784385753295154183686075448901597773225967355403711308344578240802060990627552751976822576951288100256882602563593732725487608715345006869696680799387785282725890383728732217889684858541175439335431817493018438735353746344226580401813599255927378029436493531500093820194959433280367881136097890463081339460695155742910373164880559532879685495752365049897768336450366364365385832620489572465554924885365296440050255876184545711111295528041133852826281093522469964875695693491934573363842303868326501038780122541475794579553503385437664182848500078401797991761619867132385585320528173430504313388015618069412927252859902625021269809683933081095431672219251937123555685775785939088221264860273813196631459657747512960115389744169657934504344826040103676545530461696456732767142472331462673207138994698959154051842983213197191098856721747661370223781338136972024201665757936836088138675426547108111291681278347768419797284914314075125434136478340448620861715669176704364444950621328062739130110151895344989214900142467741731979373912536805021936075428725412894346165226436446821604684555404010446352456302665631249041128964299180236683864425079774512412018447134117771128026803896164442896778803525233233122572537541652909900335034498328075452400478271727913159947164259875446387325571457258523509887594539680511149458530292192037942994313799942014061717327195563043652635550438038165599325622710986677462995927294783999689041646328142330666608780706703818166871973807111693090756029809793984060185506943015785222940040321070069813106917961962071815114647902246124462485912782462299570471173262489322219587859566262708445333922551066046917308458959400973260148112997996454833380238265550678122855749383266550039808548830811586641813700321854241719873182633725312932355305097916639122983285630930662846164213752071450731805438561064850450297271406295485679173872321610604777821798974616693821528257436166881226366899344259561922230055337338908585867358239465992748844191621527514687534698178108849758833218351928119054412681968567503680667376433428134257898016384799559392971097102006943362084026476241428951387676685004329117053083724118854373439979644671165907550550220755862143398466305665072851701798406931859778661239791947992468561927032532035908172225625825808418008811227689478940357528539429200252862249046710960888454243860277486503809944446174297915758262028530067338917499246084271717149716644225920217746767759664572001946993045077490137013756708347887373122773482724921795275115825361306196584821554579882315239766810147690450865578516684600684760567593721654790181629410752133189170801546713979417730163216480348059321958083715927691644175895840547972308819560355411731901380151873162281585152224989324853962664287529269799936934140792128574102238435981801599908488664213183940308902856209209225746877258984354045294594918224739232139377906451827598951969239012516959491712896443524053055060903778051187973833626672171979025697445149572254222476603720879942816699186664366754347478443126038333190370193693145351789757259530360573084779813687951392425931903642395074821480370612018649760447264615074620776635888474195206235282980065936133393822708500116185740779539999740027616302164186056697505782076403449269553899495169254307183994970225637745045220537400872533851145314863035366258363000737915859629163337127471574575999544872579278696771772123958174351058835997586015102351607121977549286302608973430257337431685239639164579420246130221224241548992802960141971530435213624520871803888862850070193772611499268729476055079775687717294504608579365248112756007278375164723287878842680459692203465166044228232392745870518930771661936376973105876449497760190075595260781207074202974769341031794146382058461398761927675649840647712143309395280230514286459268562593130497086379748248223033589142809197987749178029343461308193354150593795786137903016786741391143310028129302964942809222249939461242392303962426964869488528680320083137863089350641856235515125027211732907939988690264470212293162558516219508444549603077315296785632850698756127857776342081692392888657706123080576807946199452268703211385276924344818418230734706506474711447695556107235609360563237065399737261969120628030516334258387927743760358125393635248665071270161163043844799876932051977061508202288391109002515785630841926704739668203641512266667199888365424933644883176211487494085585198366685682702053721439066698059654644343213633820338322288850144458018109543697359190830927094799656429983699823800798240397730185322199126854359523778751959485487004428468284964935318136642392545752333337823839251296723241216295474545044063545379711195959235310421872690846031309268804706132931506204010529790555527289836789385581129435305431689239156307416257465029401516092630722778025432449946398662867761627641043208648493605950048044327033779048005082652984182690379342045927081469560006996469450966766249640070987165347810855475624647306999514150599587892667331408993370012763697932515418417278834558576576805539717282933452272205631046127653497089348912832869215256902084719535297063173433769372855429184258320854641058894157829711664369011037509293050557311526738886311995683519436186555283425357118487023745519736686016887012783915709258847003074794731696331369950799596787661999288280490601029692853030318126776926136223810138970491960050810688366579279231825054347888434068066418964731220803087889508631447031019115096085070646027364588596885328148524989168054119422670197309771213920162018547227803436032114809960829659440877336889561748605999098584562109816106013907261559467852899952196344958476215847644038363961716739295145186768098444676225761435919073855218934925395721701841692996499696409492783153551824188842606648085920926413860757734074942735019338556650885512574436053156460269734543720177740741600242313554898594269195234803777149329792135288233877833688651172737603021547456569504549935234754481679987502086807552926804034877119205772756513061504509298509010382117851363822618531365463760336565839125525327052058115610087752102019889049139176722199714015339338297023045227234937170841286978590710559222155952874032116324701518063856962492921793645277397351028521607845145569448980609385557274172898945546794371060398998893441531247566871187158284075396399083092731058682499592908563817091495646335881758874210357119573283036790278933250336705372574390618306066993473517791227658954907223362285968765794982975490548665707031776581899397394807899352927965064033334541848377238291789399021228396997590266219685779392084915694214479426797945896106287480304662245858259826504542963863709961600663186235498027182877758655079739102059828730225215927365091634154819658549347453230218670230390981434686246316416506139892547035579715356483249166705602371315334041497837149006892676436016804334009834631929721591598085822747081268433259601684143046960400529997553017981495745269005818375067706598645821016500320586457792753829444624595427337717294055608339761724792870863322943842251786306886427107644188371882202581271195076908206603543931559766350153910283714761476874901819366464462059999495978403550495638495265418355938864062385236158150192107405568886463231991342078819074140411898620857175733691686210537153805460667083331080834942024692546034371136236124200886190812389382062915858043352055722969985991180684921806748548766771226448351993883981396863040835728432637339230856560728115779393887423354995266451398921034030329637283295124946262564398518623637266514940101452095438914019920935394324249735869651417946544688634211013414671277251496340026819274814389569120001203779503831213414322899776780095355168900100070647698457079754616239087984507695629268373054944420421030709686162901431386087060615427027022028704142137861215806012019020709297444763128093095524199518164550362056793048606584571803464071248253476031463039627148106718351050093252893707686520333248386686845596608668314468362077397107235766395370531310605657033814161547427867925430337367021923354483879565421132887414881221280690114207720723709781520729462263287108013059602107324493143315702160201249315267634587583811889816805141557148840779386720548671001882068572279262490963657324686861631917530974639440357414232820758357242733821425499245644071654770012479142394975623257693164239234874773293055429034156872007380452869585466590750518830344181274220243230293341189555214640835258871877940591210592756441290144923961667945652682168126018190908668526309553219996502261833338486552921712581372689343019948985964207185190320049251623879473659771712142331485027144026949890980052818035946532725570096754673970640848323516776572700893106133916236191466696505838918660945975854434776135234736453232302090558264646007840738662729715491081079262423065130818534113304435638458699860093366569467479690038389622011283053289965459176412539178530485700331560028040787772000596869231632996121631433626048243120514141918451523432404166235167242942554766618981769648956375952761406791638000161336806165166538667508228585500963870574926682812074798530477077410675786814634414697284773710881779368391563599380087445124999772711945718159733354381333843670246377808015322756073851164796560631589295635065567252122997218185052441157985075896804026914480694491946800947944509371148804027586583063195802411222948556790682157119505911205780703768738360884135681142812586829743778576087327416642413431771836596766490423326357197602925713590617921218989744837014022085884205463505776336726812640932442631070436166415818406925529163395624405872428811086038264477882548505591516076547525411052722535560152208011957751181295275957283675930434524258237891824432909216961513537159361593415743840917136647418647845767277418833292406290527385074998683290816846553423728620809836135399644125256261954875340621748621718936001393098490573811606952468374367343072321077768306123372321284812654223583556156154030189044541302837448372550097741191147504304835686356509710064874312658698236560285238933199790606445171066235786024220748633039477153354126107991611368012404451176428513896928196057437038961054439698209789592443767211989691811040820511006054339818138068697427958601525151176898099527627988348799899294694101591206646636709229991949602926628213894544768186796633350376269696925629882208832725859179668219546489013415404849048002519072987337729723340898496253626871843999203018373179415252012484451176440420934410163626035043937742090038498929855664930114148726097839872503798405368301685595717041207757067794336845944168737353986239270641188978036837415238289580490919890194847629897282563052776279428047287376127736751101980198177424835493934532361846942792581749538454092837948371995183942381671579309914835526048405047167493447719654562297153965904601438312678512986013580288953648549561654031961081609391620585731453160392208609748433507549019544310192465737005412962559955241692754427159595085800588321370554931644606826329457614004356160030143253657953036536173231348363906485315090095357330247153283848098551487676611232725976596116631815202526621767054886941300661294313615617496841312844930912930577959334963335224175267517995690132280475774334278603832359717852368362850077007035995940231206745916714750287019189188532671388665560048064650904230915720196495690319774167245524124100584448730990892999831256551844865980329672982892656956987116760270269055674093059822188024195887822839197403656120305483834737521622142017935792410706052060033478936569238092269157084288055174008643717372781830077354386143441584821954269048380465211663347879725147780095067212719836725314287299877239248986504047664039017423985821949118520675436667146226219304088235699310153045982424714807885398776983335994436863425344937498615044532053961540917371100222684390184725469057647959631784872379798305529110089507253793391529352203128024118846565034561783142362638659874897252253920806720272200866704771257247068950138345260380283868456822060472836962383620086115195608612719154575535959968293369259178181184325315764298805087036726228054510150743290288795378451990488371724396670050887591398092335091162207183177770866208561857238644702994619664775388945646689961890225112723652667106850990486249891790632618112452428770627779256085731639370710886338816428490594089856545682363489799369169746647380443675391772349816836204819057280905087821344396695412890210973211454894680038321819296653476165913498887293776491543873464280921522828479553370509595924656150600123682949931163673833088250485405167777430855998465707622236934612313304697584719176085111710582218226547490146190868893729656987576182056163187286367157610895436449186016613411893882807203150484926396144557709479180952795317384640727759785828958465395608616691263037109437887538661280584397745149327843101434327807285820375139410013079198337079298616717952242381885227737347973462671023176747872808747675190693774042294885154424635171291193930577271403699200784053060413488699627232466497471167542997470411337971216514051427404575815270702847022917607349571891488341519376542793836007111522719110843609529640319824422882066044442008002841159833052373394843681997180372163736194830229853439836640120971351791391770375271283095171498930932139604334410643820580564510312813539380338044536894665397966854483544323170723404746828927667026888628968419714736765816576694258927385216201864937355093540033752849520834552806952693209080573386714714530740422247650794732791226595742554223577824904070987955729303849059679589388721046610437464279195305330105050913821219333801228280329536343486221244750425094538598704651790140856830084392667250747231441909051611282333170070942552994113086381187243642017663091221443820982168696403435827579356174942751426121097163903596268805093142622064770440009127029798468173548105098108888368702491281811144322553451378883819943131951596179658413534714128963343050464348890882856816120218544612536886889354952189851749911053831269936136374610725470542689975011639316947003311629539935656984733131739905898567316426030120945010976788393175352100759970868291600576612230064878921189472386526918226685768365693038582401239030819775468932079754840069232234469749918867136027020995512093157248010622729259118942406313014394584446455666919739457361167917328576206028103011187703556232590857156273143579684971574683991759651399613041963114995401506452128541264307501548864864080658925437109681570961031633308537899684773652725075892612483807370375953696976751849147702410397668010609113388294576796918605225970519491485375192674193291716558757062551208212694669885982966229387111760247568371853655201086137033113815084298740763975806287864630066641753566286862305421279567708507863486334525947423518405805087752514866783119506658956774702444184376676283624774429850182274020303297008654357222529503530694219661053624626665779111412487269248918061150811608390376431187706003532389073667643241444639451928126448329353233184426984078106880825202165795358171266530908704948695893263770212879568384657761464727791422139662914318422651425421288320994941618865214930622096332255800338178730623687764280447799839343369587031630037972077264105209950528059982447349790110000415598988923100641327070254866419571237028208961219824818888968114923766106215066428812981014070567304121001587193545079384703922578578425088473681179789466754716057814421737767193323129592168854810842035044231876427742216526899969162503177839165076449886039130816709828574782283249994551846915688529447649646503009878367416425650963493484031387352994530004643081897317155624619903255592102684347893460767291269153264379818247864388103572268645153734420559690112331149988868980452900064030221109401996109246176662410337792907870939872452654741331595711626397442253740916339540176729078808181017577345834318169277126069776495301269611048005076070093721749335892857965131476558490889151770262511972625790384493081053654736101132145330826960883312255107820700878336310024582107661207156425230113855608737224637959781385087091628726281461447533180283523308933407174905548656738286397640974733270891880700695134638946537906960170012448428811177250447365157217578879233647854633677555886113265380512772596923304134655313459111494613970219951293419779001048991768581545716907630822486790619481648889626835205306233378816914662856088823794102542096468672929106905586194055524775772936042599902592291422071692816542209812460936788673711740760095168915878962321025140259126976684619604469640815138374471044339779058586653917287740524634676435547370960723710400959442704195478285611362241092277720998689552498858322560368804772124644689021780004548639878444245590175123467314285129719686466703995409209972514406453343793763388600515165917827561934921902574566155651479341625968880744388411355706588832525459900604910964658512416172307506031829858731032081511011786930908618944117973124743155219535655001218592230982929734332957005649185637717271134252603469709592208914523276095877545116290898332511713792679153896108841125189134599088312129694477418215554384041058910221380989153924743014790701539830255548838478090856218984548135171364860626447629287135857751691134135050642091024465049282338567656944469335010780847831831995992634004737281914307997241849587505217780109513641821854793603344506175777411061518089932070397243381620834402568948717649208681792741493850785884110612399812212288886253610688208327655565962789666371581767157065412330257058763200483762037779923091424828195991296071486326276597600171320178598509655653030130932449730651002762794613349483209344780182157647715987697387929392715078372761330781793242957806942194774124378633129423208765305373759168497191161114327208471494415738030095766955934678630484807048074875140512243690298662550163153943165844592218122241624408829456901196436853711590926581608603938591693463112539574864074924852064270496986371879380310093578318839802124961369167013295990680162253234015814669737401405294407145293124077973111647840092036029311532014101820123896688066833152575632564561760342105565860298486960237128272271519133498231637194109504576236749296549468768470978872327553072699094855052515524007604897676392713039145077860763538339432732877024726654391447007104854305392836381875253221036145092518041837844801859594781215952599172676175132270579380587627760831343395299165473551054010292370839508911930596599539109501192854486640045689661117350219586298695273977706686421170615114748456222343614480210462273098644809145051976598572653179560931467185004307854521922831764750840584482517263826204240072825928948066197299903748578720489682386519422529278087360699949452586765459343560678568755019264229966179155362149619866772336199770251532231687907502564856800478177147585870021736608602108536264940400229647990553886481347860077101399914001639507737845614420329164268717760294825997646870728775770910219274374640493526595639501174250604971316502324260478541457029582291698195273706070306058267400509757501217154221476625847756623662117969804300290761403620770959410004460371913527863930535409302850666603820696747107312645253241777919995966508355556772406044392313958486893231076029485062537570152982062364917577449102322882773520957418277500748328036249711277500957204955636062340109236323608000436270394779052071228582067477257785317071129473273755348716925512153289214420951637237709007721051509278721987959506831717846458416495821361041119249376536526279056704657780093739693419531948656762270481509197395768891355973816952228003435657023135122992893084391464252600986078646112196176169841737571753804813607461644032087282948716769429921185052505899458781526974668096471918712705475901003143323355809675892353284106434491046206646873467060819926959612138596417481243781495637177577935392054646012864905471963389832324059544830773992424401478144320974385785951829842984988853021596508185928804002895762364547517057082954805269087445459237132650792837907604682181794787524198678438511892542224285258115666533874893808472489060027356053927829048246930378234547321667854453501573740030278074890708876882155082758715381414960487105599337657895846815166278554763752252392753853291642784616800439031685801740842013521452205605021071585186243271655211854847806665606947885883770802158691840932521322585348177301343518460295965660357248064556157210034000565536007196565130330795416133353965960882886774144867644773624452121688071598683963517936875796029925978199383004091591804664606171060880069774248551237505285602011556536609174048459971922738411820913129964301187548293383702396180243702154519107541803574670143944016944374433083627654141882973988114285576396881101141714298632773021800489621712272209067678044939474634383192068827418249006107211196649702880942933893288272995989197034113949535326972112544646585732323231692282689339255165234100853609507916527756681177558696034453168435733127377897445512296875340733346482073545117215153089458771624832139404503852053672521505542781276626494729801654878893984833718294900370553663216036263714239065966722700404922678406886894771129136401177386236431258789128785359262546643372927518255561454136139392011809401834037550132637486685120755360083684256759936296017743356443709160442718575727821577713486620160200027853195456452307306983957596732685565468453517550052713983883436797160151296311832298737302714835342195733713850672349274272020525515411177507862383944465069239590563364585808996282214929738636688150569622044511331962027775148928896894267513583848651804031734972057974246924526755744758014986766976560471556417586300936928385166773446606319717711257693476888974730552474419256980029001944836404504083402366089248824953861882891938070221528179816838039901414497358422861368914083339767361650102623958142609902540777331090777678304116997150858261491536318842540055472089561531116806482926049398085557074336989033572269020392590964252001785512147699539158918489519169225698254635956324190766397965876529118511260657714631568785136962761132713031286955623462508629187421562256916033910221698026452337499619546347489590157228878046710737142834966761464629610086260019443899346405452357327840572859433810379499878389271387825585438991240407905261720275905405328253893989429847076461198871705326797272398590495132325935756278263640767343727252547714248720107952625543039872748317257077325859928166307866505728919743992572201579597713768693517439354903322739450537055914580214596269914283918411380536268519316227287918685494541630601275790775969028370848780621259775796752209920673756598811316067380188061847836734229806721887235598681727016988707773569046883866987898947815662900696409609814296921890926068494776659286992915465691934992668768815654336985792306056277431214089154076784821690749027681553510228214740155056369459686525884631790090948390277222020203207547132526091546334566064666884673999278792134163325528302411805009955090728366005889524097554292680889676922015891064425873132172013270516977389997141027740796489663315004847795786982767006895348790619407562305050628047093266972766533581749859535665026262184557983094773830596732980093747962763461217164122697219749822767415243938119838468986604437412756272025007720042339622785597370962116499947309845914928719982711317405387176521618496178333328334437648628145148192577272923812172839903902522471991086485105282246731647501209644998941313411520275964602397702530057701137037022687296084278141248351978167903483785352306466345995679360496534854183203238799100708254228075912959643324789231762207490261588627380603512336703076658742391119000382132071720272172744785309418157728965720191804835326614112423244168936050857101411154276854718310923662284864803277845559754537937862792327462116846223544489814824090911258918666717440582055716558746624080327035242312023389414104644995952014117752000291943010337326138868375043531015507389127865698672560457521568620476392721928937215152811094549184087098622810488300835984099639915517596442686263903992154414034179434091349015094343672179492020642340376658477263660670632730014700421150250854125209160817307045580832751863858268817390761644200609407786134555689563032829631072754707506144764835486314059969240948988398223795536258286820636732405491110401156270026637904481144794386002675601954084887412723383922526993032966642314688530693998267848042899459320294495279285008064829021499908956483558781402423490745182884480841798815862285644115753367591616827872956028494761275166404212414028348169725260498622767620189207768175325450271956479581453966600709289747238132243629594497711035831703205280398277703665137840134485058572219594466414568993837610898680236404031152994643907832719728967001808734772928502353552335193465499843522699941541621796988858471024607650367735347917739184041059229394288780120132419285891600528958449509864534351480967215714363814769439523656602004409428264898803742993718611641147931912274672595164305774595482337488805101488821615135780724490368751963878333297369905654792562661610790663154558308232140053616243828886035279039143527666724013442384092205495766010834644345384276838511568020066541725776656285275567011519299129686897442312820651843728384222930870465539016052475275687927458435432377276878491028441379631240386740001141509618586917627571811294967356791881711092203812032553247888277456142463085256226695235187625874268512529037271849838146021850489844482835760073704530927328468950885200215851793297201339767587497572136026011444103964595484333662216552160452282490666521354139107209001615989879917946270731861799426753164098030859197739954175933955091648220413721572927912771501748358939078305884376840565578823262829884493535142797094851185771570230395955081122107082189180124551003810128518602891705199350989157167711606633999399602381678671035745712257326578443721081834475555316282324259382427548597374639622991701654411587502207267878288318341408095568281366678998854858354834182731259434609779774904870465555091123528385659392329118197232058294963645814547357658951124444515272232546518825358918763362235424038138612778825849243642856227938083340349781143491367286612168447962227022892946894565644298650730495130447470263898998916455583101049395645682612267526216096424277557210949390397909419967707180209587525044706430023708685291132625157565981729554320254016415606858693861681529823403356696801387771696652082972973710705429868676489841942525269004114816981900782513961423972996001968751884331636303708257314370309661186676122623823544267043357748238475839963334106160272178092271942637161884140526784568576187500012181384344472259389921311230111049277345273913423925261203816260029617526661871100193951341733847340943830799394761409177265288403284828932913004490677316763389737758178685403113939243020995692803338059866127964393192537402784372896012281203074370581500495468382550917258448328872146971816594040200275472037201559814684479241589462584295583734609720318550749268768401768263184773499423390301990148845976977242124239519153009526431527398446389423765400192817856370677429369791395685993754284510076663816579331347930364284793596836856635309575879037113856446401546097225953850461970253675225015111904808785804257104427006989955150559531452648359288709835225837575080684120229240934579236282560794265232723945284125185921491152172221897518381331328825520318350402438351413386768706304419322395747021423619179185643639776799075623333391035041710110095360050185697464769640285101196786910634633146984505131648028524855825950715437392866046160569527005195548908718263016245009087184098457770420088983745095644980963949504553854788044229342860039747801749775687050679307612949060935977068008950836778861987966734378428778286183089974628969427512737346601810145816711186684882531355312509577057043946903864379332629337057959184220276660133747195988148617695745046659552269845907453054949822551406447012490301924958625442034712663803027917557683557016196920372419889238603469768491019571339878597730105650661982149647962034682441012959964679778978329917538829716364623626613900305863211970660137890713162178028026224806764794607620161470860357208694606411340909737000416941378852512779542273814379390899057341276543786974610998493136048126282197766272759049401946048776229333035262563590944407210404067803838269289398230862099428261272986857575449060103772584727083567309156799409135161985961551940966799164293910402635040685141751502400108588421235308339397555520446219982671784065697453260972606969820219964073846949319885768755429147744161231065248407702445236654165749389739038392923088051270784834585307756370939597781183629774651313594404707742257632180935678921260218909179626828321083553260510637293215914513833255965791215091640161982870919049208343659739769277975097697746333152286865434148836957107256739371108460137972003710915082894041695674372462954148423668620734167755498700090849901141550140471943919141611633015453148036792667924778767464439116509712636508246401281097582602140367377111403590660075114166330025952574987861400126548581754791827852363325325253869491147587212931518491416299332543281198437606216086562388260027506304717873419970632442086518142216810915875076536439706615097595517119541903549449499929010859381522115425967757004996817084745260114038191313249525041375240617582189989502703680378118196496178057827340509120369264448558520207050045016049763691508015150288366345266975383075268967999761307331752547991994137465141998472608418736142401286960975536755117275821183964993932188159608872887144266716696436539259027850149320791793677748596092297842619631443020461801098445308393208716396900466389968971658197779137929089419894965770108767270214218926236267992553656708267586475752342964948355890782894901762952737270914374487066805613267514665289303383233257279496595898579927393596484828222198405574046456328324477451622813248579444632616547104578043722173132130832336200333322148454624876437439651154571106163963924931944372432178862589934227972952154968898103649166142516701729408009058941731554034954810273373840389550095910067345444103109938962806502203997028864986076045224844595224571895823887402866097493609745171234408784982307881841890129241583862690430727008434635335681391757925797584378861559258628126279025480072349430891592167623757191180036127832980366126304746416128735598020180332025421878092053660887739718598684653069221503741380889533520828877040336198141861564382035485742803072339815522831273289346093123959338519058160064888934119838462252432202477150771937818639517310175093332579344860894190658378044821986325302805967588824708333779773390114743028238080866989241132901100153788611222595459035451967018675662555683789461202524038333190276335212455441347434141536527861324606635345204051918773327426916144340798298545981515122460870514531193321210218247804513250768925890071400096586161967268841083119646099804627407202791655166479601485068357619054408288478137258862062688999978893544452437420827649065840378702043775743086590203144325280289791419216714019045535584044603457100019879231742938781845768256680030677419492318261561848419215789983376109091934903161466526299676515418598875160678443582886749040117119339073166185950405559559816241502408629351536377421808987564859679698685734219365474711126760123704066112492224910199840446779114634156360428917251905191961050692481367196939236630211691297612689367768753588233458171176298018561884833941813341362228695702138706725149972143131501323672263150040637895340510313127146643128401762487388155403456002769552457084490232475802208679370160229852672101298422665700067282477105865287098562336138710293820731128950289648649563433268982211951430449867144303758922714488722186768271831997777009312906520192344266779919914572776148361275459374444811427124628127252503273536975002140347679603935320896211741772281372711797616236822808166698522994319335597198234165605530511056238192420457752707225473322541927646622414029790937413100476985284058467136785125054429087296826594030842667173136740628960290343882745786803505670018237032959356628101121191145283768648534315415289977459745857666905983035111714070557047447635082910162243696147945680890556169111676906983006322144039052207274052544137403111014277918961607763558039611639228673670539844300058117543232815504737778384018046934742464605551517666895888484255389552244308141030931207034701446993899191990922123969889790919659172978394735029499657507541038734538019905714337829160091819354326106445355704853835089614491135970933508956326922937418116768566987967560030727526849283996208982768318689294839534070144831784096126708301695444360937975404850054560480505655367741775602696802944742691004563170380526440402509037506168975815565392731704983541538055140557306515378913555110083195560700703093790222268419257231796497930899566822703959102960690958504950266725050131626292336223801073201355906943021696140235355899284016046168395775585075715271557852192794565865215994691804219704752009507812485093359720252339242116025288964839898556978126073538485138380815211289513649842182120425524253027003365421638351728048148200110992333962567587996383870883950419051079246169616019177954233011110326156029130558091454244079337271965278909055328283664297179600647303658322223151736934239714498670583463768698441714607253574867923492433642628371085994830882537948879284263578935598989595976719621534110356100648061480561332720207005422019238092086663710416966594587371552631843100075551213858841613627699329404832952717730498948434311943132682748946364924320023099468010976406114160079875235952404098952411552037344190619027318452240181371665603221713972546100410145445645199793280985307357532397047817229407672838442356037628649825911547938195621293545137139147083187185518857932505336298567574894482040813502566530330864261120948070714420135087135392310190777152271415166670170646163273791913169279993736857746158810690619504667167501118769316929985761733355372937152159588958158108456478562211342572209723707395267664305331932034825831530544450507921357333404223361803701798679792312578295772064580488640664238539907872393825155064815105523020147565999741133802352121751331553405514118240149694536599821401209345066977134442271031685620606121449237320506141729928547276397228622190552269916238726942526112557708374108692901592828059618534852189360827147228545045513007700212221928106150782445450924670097584023562057447093963511672607737993303079599667986117505839940291882537088218051989714735311602322684066963459610323356377887568169328954888378182670596911775110453429375979726529547149706176483605150517520045352676524990017931219932721281131753820329010343997431514861327971478573563647305599974544926754827437126883676231851245044771223631596500759121342271179408172786302599212252259996113861351245214820483079400024177682794490866776476512403915872714045169167403264545379023425494223052278504299369303519928858424287377546327757477427106304212776320072460714623602034292407351901158760631593559523104633035903829604846929946663046261684983265547410304074893193477348052306656844205210939469089162653781202179854300703955139192964475873375393245839675148230507743793483795436554255965022903811320740704516951543320027116554133744916178593357448689750530267585365585149811219355879134526717064925462899759633048939676298953677978848613722635455681720501991393928008060203699438974747067776313928334292000057873382510028676207146145100272174823309687976287703445720811315646220921992670091306892990334617042193458526308011820861151555890890882497333091019697452126304645889270027599049772893042014142693788613916074516133041552988078631659381837797410110341803434238515181014994677790100201131551287276899260586255464260827857374477001032643472851222504264931882517481199911460227292220923594003448094369246319786627759986166137915164527446278993064567770363176518475739212179489252799898222244894147453828468092164565997721821984894808383055227017476531366489613585432470385388166830897893689324420374160857163706826621760014283683364558727116648345003240967220347299872126215200213961508113475844008469793326878025916342630525515647094305530959763849140308546361321126789033693702787594466922978221627529463999050985008295929498228327086682339986719737094020708124855894288627868820755420373869862865490462396594169043988782253413894323698589526002117809378653732813279453768527674983709940852673208238255833409043273595417369567724930484933022466125634645660263537528794585362413873919029851242163963528663123678348495076252675022060872574088114836066053952713698704633665301823466994932153957498799252251096976899781026705818814299616242564043206005427603554766325549668704492144884799699212724540853700985511058039902596940753270138728468734188421395480981604599201815155725381691199497131962905605385962381537592296825440114490587484366286780004475382628499605268734419333512494114552208543510398718699093666445016957450116348780740187998024191791975409772558701829493396302839261969765597359816346680528419425088667521729888968157448967065946883762475049976274508474907548164878242340002955273619060206163941421353730696549294452205438192799333944015088466579723333332503650814243711265513534987916696739823388275957442044633939085586910034484751132479392273089380039213637156484896477416377528756794317709761396903794676557748280964261394759906660442722403429252652351308404599635447700081993752853998968299077910560519582647448992141342976215484816794982071975317773793574634348606003926359394552709639289118649258946925499962420746214241959404747650101291364060064364425747746693236403439661373546927574653830547471016316190681041868119981583796243224126494599843472272973971247951172457389688185344789315832000215939618164755555965198696377952778817517196535275559514820175750184530124870636990992544981916064221915429638862807863131555283779766547426463131279010207635250686086451453554667420139376451718779100251921779195152358306238264297765284954596056695185934315405379488779998631312447437976928993239036696509688323790996552818205628595001138006258858090843803742442188605745724523433934684345905750640167698203823107594942694093564283789068708097907950395091074684314322286826342671921565453530631740575998867085464206722396212612735295475256706344532663870029624913371090529785309747221575671211362522492098040577848028740748266389179045191641145245507999853667704228034135442064370724954193697406467374757842364501546365833797579269847586417359271380158704915886073223929178157029431133960564119440213793383284811405537364173682007153399780682340065340845632466738231780585082979163576407491541692288562401894676776443777684254802956725251024411598826731173748121139745684960135487764028673836407224335192025103292352633473230009721626460496531354209265790098378540474381827574166388350941571073929603578381937289900026093486243353886625321756047302719008413072912338971608607545057178648041227087650016062002346105996995860592772228723990746506734135226999731643460127912456891105700518932826906918074672765731322876868314210090944995744396229748532491393801008102126657901214325865431422039845265862461455822685481567871050003321413675797115203747178675525069842456507984664739092837370226364816169834746818260815224323414269406341379997556896734851846197160183500411210594238755608334871316740977483792616588957423233117721578093868629185202471328239720164964980092279743759089966262833962450212924968017390237760721069602523179600164598793866064248131133422956703440065118259695074436313314948556833751706178585868516211879830554190234002153561818954690940682875934215981622375554865366443392912618916658527946101632217799588786866900323946060396062813838243284434181995703007228684671585965826123795924860540152570627123378799224243830694314305017443059813906451833312776576953369658287758477965274951749312757119822033178124388172527871761629402901950895921166516963451815303147916461197051196541859592761541464564696599469936804917049619578536403565208682116086305369608143484350191699373297471987589767823309906620693504530163428254716576895150002482546973766699242721893643830862184908192756918635361027817316249005511133307886200314607004364344772164978685687404807941228754910070356070496231802814349857497875279589650902210012072713711183882601364178422889173712698427020227006953717115785475575510991182916803884273868401835161194270087490936319602341745369040817202826626377649512946443585078503971723556434782360947347011626499247241175708997727787467367657991184762678754183262622311443466671753876958257509696912565761373790973919457568904541352880214463869905154155181712946350515837886575537618391524111117548199875653449964753124224535731653041997336542405909345819457146918088106880179833943954036081463526462401128069251956556617919272802389779929248467345455971965596401648271794324629062193053209921297320426080968863057899211704455139906270170655564608871999452439010217574582132800278833898028402303234975758681130227863821744371826578488139940227149658298341555985034457424237764746060565788548154851751419799452231989887776413315791214355665105196999349607025615740857489911222105252534156299971817802772539312224505100100739646328428250534690840850014020064135243150046693433945581205637120396004046617057289140337218409005979517015104636010749490240482449895539402444177168898971166083465965699726694921259877141232827683454286288739704383529785357767120387634927171310295949846535324705914407113629251858232888516306346054917468471823318958057729585615809523016260527962057128149213192833877673084466171296714049557482733671572752196077474374681086986709100859216246318104195013514015447896456530326396448996214176627759994765739626247095288872231974529140933353950542083243338202062895814795019305614906039900978791537635111716062629029398159798358053519425897845586910587189828981270293218323910819305223780071630627542324761330131729595454821830224638228049427254316733717079421342968408298996478828691951272087918306614757111004064953424789185565563111103469414737749965538915952512738015173531796151774869986854393132016422375539195101013612538987439052650958114089426812800571428936800361090563370968403088768853674734102110521518257135116756961887489574744982923441479769330035831985419293812450975464745449353793192140740466328201264930449476020421706733410526892996316113283012128161187019572916979895248935714565299369956909983908794660970720037059253390089787375195626587191016727555696032181038807196405794280108742278486854599363930839740202203112875089185839393955262963806715097282502641755518058755103515734241432151992499122349012810430644323362237737431154448764280279391458161273305057775475387136254388103080333027862775291584806356953273484917247294704243188829857110657721177868977617168661670902873447234796104697685359126706835718923839981908078629997004072576864826863411657478148489602492665791895472067418819083899606749872376186890149653595624203609461755934746574842624957395903359577063217716376954681770252659726159518525217542337607554891004605122945359785748312149779269100197350003773578743276154630016858771824454912828243668864232006909141417656262223116504673465360832304264560126061365594482344120185773434333730965711494158370504373002685152672250111348083643072466027906854736666872928524403577621192994170147606398935176220102654337507913444026523067465707157123778047713286389783222839863702341568605659538883853778684736225090878980599867816161035189362334108427114146924988540865374519433894474717646079581701828569032513708747782498473128265061137430005943223865653526342046213420461018244369395630483917387763002581702075980294637560572902259793098920834297658561079479655729967834760427031716588770309328758882311044570768815730245041496554639493194709338210789273397134604728656609362025508136349943503949725382259841717258414221603307677514677159070059097656384354934635955884113990780753795749810178552937807429849442518463636347880992330569389368208595621962734181203724988571038103205775577990784404438943640112847729958047908300198346256907225423000244538937659003525240915310193149219918100164461685720130296037846051524177725311338385836891454493033310755440496831679493026399304352571478999813337326027015147998582283409042152807639286821380663523695362680956748527794853880820009005159613095391824454416982897419889479984263452793429879996555591113416274576183604632518905719188055064885010500882843700832072530354047459620318424432902288349577691601090430147493444723715299479627917695416875549718002708883089765593951406822495043265309943761398107728381444567597157787884135537446408526547967784328592624290533945114310332302132592449578362442744878757456888295867769131723691371870694088566278716990012058791501585285714503397964873050103081828726335884695535037395778331127176622389000950817458728790122778473721100388499300394634479019841986681924158076811542409419034128454610684978917113086255845142359576971849952098397919884870726080838405760831512664437294091209022377528142041629119338890701123749727455070700854040549460203098921931422053106065468374771133724669166818808941784030695668289221274842444062640827849800983924669407665438914965483697437487866101792668381489437154546460801035503684846239383445927427057668133231974815817815614389489496994708538223815311262449977142005001824183101255625063248178186934300785782247249395394483566065432612061813526480621609913376869855582441418536758173000247690635500873264811529617239651099798320564736462163748603682485862442763074266674520828993729478850733540505079316482184092407463498298836804830586898973409970492225819578301372044323846276614629536469048084151074948278036067273980099531430227967111493022499361171553983017499791694036978784512154749710439409335825338201183614456078507535058622444600549497815351174754271839166132727594568504055924661388908643228198906607030169838702434948419767997568881400624367500128834195303307667315551018934825815823765981753358083033067784050067248005058416564006129988819214510486456091121486048000795468845014133737422542263148637122816730354623288519831476546377138277631957500710011577355772636809253654794388858528002971937817720950452979867709751571441940805060805395205979817049452011573010689157498831066337297411572254666787296671486912304004062012874045294304064466623207164211401433505600578542155246925758422764992060845245057758479997509946717682794211197248691125833081021537996446963143742139382218213317811765642315247830827490626549342236819591037608848461163349919580240270906320472633911104299590349141942616800720030495551551525733638809212602058726205300145279796429591991028225114985484059200649863074082414285337827328674845772589338232467745114680186432639684576679326530905542471389382967135987414032241268680525636272789499272419910973303891754885389906027899561893114482577503340465231688488248118517359877773396738226992207013609604982123233466738075825904509656359429983197713865437073225068602668962187222595939215140976376954240963493480987539579710269294161255420482707132567820654643167204368237683918527834435564097090489552064054755125705820866026907014171545150332166650597706633822638709457928823075406091493111995520486355569176484940869180848124815139844302271486492081396134569271975921598727266604800502092007459304562891587008623094172401827500723195168625685058767733073578302581684615763864958605020277610170369742730078515505707759814123807054275473068485105392415950402281850565667614598630120220979968797960274714640347891935111956379034674959796034870609935919917187348493393155726111319221639940769302999185868236103169794687689848260650306493150782233222016601624890308170449525494796277582014443642231650340637676398151619165229926545169644895006055453483808083361057986183134199872194645804662137235853259520940952520196883495973777523913845700481945188089212488177376124329710169500967152196379435509268969481402161251924014587467363813527453371249036379941280137427487040588317438316315764927248403349368060081712729261952527320928898302625080724153103668214560252102320397275227949721742955346441355602231736661053816324588643877985846281646788735014950255696724884423177910159987442089042502942849283957764249191829706614238237851524757462481213714474667310089174369311371853264706805614029644841360992058591891702229659385173319709339125269337390817305343264494171330541039910390586197946285534852100788372707197505798083645641267605794676274491251100606565518020377799697692276902126867978070057160977153075770611484649327037581052632805047118753689152754713360029296383679231070559342495390729905918877645153037881435790476480691208925285053956971879079355962893209250346614671805702124544887730201059445045138314572032696866295457574661480537512546847686895441623190265689415273812089390749608606499174059019182616509464972784323049110372172907533914650848417735942477044390500648545777055555296899165849342760901436586560289007315935790153171464858623334603465351738734986222408325088075032090328653370678296173125437661427368955570395394135272522526966089218343543557557990039878754508114492509440587598636951780997983635187973179947496834605398594595900688825936909238574658373008948102675898153702981959198289886782176523582903464982824572848329715039881391229042448106457220188401745961928906551570415389257893126273447876363232452707564885467769253060140918064749728257930886612674137741494472728542431943823004971982458445741910315530533941658972894085988157521470389986308602188033887831176574670889725416366925842196374664148588239039308435403756719203116128636827782127291380496107314671579277754187459201495073447985557941003194029684002444441362904317447339902994588064606584379391332566895071420757476344907056123653925510527389397505943946873130570789172905617733477476625368540601348726618809668455236853636705710541333303655227171193646689430689667843973641151204041775530976187194163279086864785874469463781715075244000068663396374758546058656946805894719146172987882958886823854627841797402708370300709439589706431589123413665664213005141155918373770422479766146540668897485757755895904886676202453793491343903857094792782784812255022825803301098035228728901459602072328809740732644842012202185690233691866921179868188348991331928946015929897386749300579725650920007995997576118585256175225380728366737810929764613160036697248033234643508463956667328385228637518668872055675880015109926480370591854848718700103504770775735302204356982092981475022157580637638946935909539201148901835121488490089978225611662554738903332843323551845613922823218893791282579812585877525457782103984505482174427529537302019712634193984471263082184889164580017555262047154307357235134195878538762846460098286946240825677729572970494011304725800753329718927237726214283065536208969191521147249299532361852073195657656719004544305934926820997953293514503827226869604013637826779330760171587053082024485496331860693266573145757150101601903595638277055893925781130723939815640597806414408876533053685181145515536084235915323034461587930404740588162250071205455858298087024608292548192283523394057582102840545172382503508328476844221099535278078112632920994305543915904481815515861176469862416366866623336777462266835778987054479926404660475319595044738162418949483671833324133283413268877548720059390958584178034457309611236208885832064090821152353373556220961392083757734342584377922734508556777376931680184182047079113842808684391625481658690053458746050882654930521147435923244852525783677534390370258057225057227251899153890025493682132036567587704331058269010011988153303449771509716962649830739897426077940199583849781649939710293882701766865612920012591534460448725593197064821197375607442294365014344445363906035603365846790680727548449036959807570903313042145745479200473932258600301207614502641107883540045983498447805179839232992598032835608293866627635704062276453933882571673672251760939313357777731344298892706977008949291874183752324418476810554165352900846142114764250133070515304005448169786915082107822025939415826237123650469740562850747815899142591049686563981190635007731278464717894232952285600497694756039592160802111276707752916536683695475191713169617175697269347536067867457485131483672937227135353597096458626000516833555676085835761575056283617619856943455544584460270014510273929859914819362116929409722523558537978438730130097808586654848957854543137037966697684008780822458653815509240747047903240167789779524521922565023735649293828953877848417093216925321952870747644877083390722312146640453768950676537822719910653544510807022418356246844511643078032037926026537087339790721023731865960508678680809389013286244046285140931278283291194923368889689843063475257331585860574775786538973516779665502963337668420439916678375600018257224695479494101753670577207766906590261536875649747635074397528893738318824497449630606615829516311842502936011296039088769039677069393386169589382204839336306238766302786099647831723487748649301588826525438085094222856306900603274113575323224382182151959378862817141586187473457508877062188388811581739377490853440579905756807244940061461411098745357792712756435698550010407289017585521283795412656964654777522320379600966395367311184237301989124064106318568651722239619032445285702074219389334267294256368400482742529937746696181010437918503851469692556763032267931087097809435002502440403949087104531931529341056646468941642735621693940491361531694734580131675929246252099149785714892521588069344797113944066257172361659131102393171054505328919467783347989190167696135255329078431695091441074498373844436301243338889948321197171696802733021259904142416216937196735877620470463274350734123625998491120616897147488410912151042737369366328980467890614566978603870894367513562826963748824397205722816142443046709228232170871979512166723911617676721766665656141102790504336267814332774117292335849421744730903563613457731317566088891904044200816311348457532579525891631305254350250529263504713544113399806295589058666966017995361617209188977279509986253124258210808930493983938137474647997606765565142131908715756811688751946430364397515667182003882337464359311919046771006934897721898510084030218479455519165915674397014033138717979392716477323233416578370467800615763865557962812376234284941484444489282285507833304639774809217624969454242697107796593382493271265003782416102163106019600867441329888042704321246176964901426553091111999967957923910310030200334168098431415801986529376832796872063790096298013607414725393958584582139755874750791018886863029415895982717183997890565885608429176061873510519964323901090780589436062827249802272097620073717687187321746499615655995515536955199414183183431515517522589351922193498192483825688489635159281595084887715016097741281650838885289152660166936886935894680652840332235329026394419638529169885978632182683553082735097931999708667009384300069173945992752502855435994774140829041775507111686980813389034998009000622638290236018742949733611186776927229067124696956817165777242468254378047137629078988896492401931004433547150014971597835382978994943992597834524294064927813688438266025581645056006715850571540136384620797246197711055755027412078159344438997518169257247310631930352947074058630805380910602183354737056874862554708833138055149385097441461524172030889786437956809655363722273887596616623465726272724982119722739336893651704263645446999398003914944620262801863940127091436179190773616482980552959575175437073207006628521586934281155416038568197906134903878921928795181806482887138074678978558584084236510187391086084156292253758575790831524265077289298617184665523593409331534354493015794808358570416596245923611799702677166835050254659666099613773581315326132570790726646644212471489494091417967903683160149476430896269341876364936942441425099974114356961626254761929287135728380763532692167198105347693632881197418357830879755005764891032147059939980360965418907108582551899956590434803298514167522263014228877112244460613667483337204354960255414772898811007051202457915316647179001361895686297675009936278800484991523738651106953807612383755155590146337473010519187635582858643012643259397162728860703376643829762840019854621379021091297942391137245110961936341936729260889779152586861595290559915915978246054102503059151545053233268586111040656053276190532057762043200274440009464724967058256828133555107120370940598263737622190645031677607491731276882474700197177911996818368360090341986053863576771163060839738140393818808540881642032287221193153505165965742184298247769414477921403456411345433198731606364603758743998453499741971508885108492617563999280804451693727225929698395949225356556565936068518629898279332140643602786100365493080896570736860796176356366895301063893417827668282367233612507977227025716248688918388070220625370736754526713522858301188415512990097305364180849751275199110669763415724735318062651051813892423632103806297632064475602396571638449335829479290593527501531559707145838266007432933892647072322847044442224377742031420943754170788578217731227467323685764062527897366889947244127216840925778736308634756767978465213780036993885598750468343766097444475588644007086951650367694509021966723983355811242954701940777173459825138097383062206220468085178341849243787193822909692171176178680245727643111113100676724755783762904518707372567037896701526177938775131721897757633893764699220463606754569848780894543572441237595191612178406013644654724034604623391236090051665094315347876252107293815314338749781571128507775400800920909703127196346797848404197952770450845580785826524847382760649039163293095655461455655193522481067910750070292688996696017949247963657524726073173865022476053105929260572453453863579654244245573435543788733612796350119411916502589185200962156110610932937134718643179014982046647597992116484692729567940968264361259600585790280115035940897240445874336463779766762688490660519416841252639054626320192060257404575132614317392385041977469361047740650158330724774475519909526308696977193745596524381818801627073978866311900369625011464486385041223684932732448633126716227346792722418900612452937203235253928292140607610534303293520961693178545803026450805131898607249253407292395094019201801104513833121094564356915915856529249496005408370719747626977011212784799403817839671075537906354484729649050224777724189475385751375180988179386370828466756411098637409972186563912570077150179165283946809529207697656174874840945295901752688826387119764666616661191702154800423494355244008814137396505011518651481172097787685134323686776336611042730424715006248101975138516005967973585792470115617717863570167729085472130035837270261481632199813787006246227739179161082790269221973666817003185278097084592775370127016282473414138126724428091309641252591694820184892257890773690520685298772318388231452914396402665005844346527876763885550759856672429638404562161208874052233720471104678018579739301158620525169155477932452812471933885508169112108299927000316431550421403716669656901343358332798766456943303402546228391690212294097837784340238928194198765706974471549670161536702437936699141553458054896778831703656557982902902056506020503389412440379501058001850541804485345075000042972487470570251668249148422245979519863128135942080282054253744185998494324856777940801158791851138425080629361563745039852772783069079141776614321401253694478693949513132795010720942481278882944067277518065968400254650003772037719011889552869582539682270050474076829013393462312998138471243955255694526303527944290170015739598456315384211837841503706408316887326138280641781997070712001872773025267324676687170411529773347514242388469412767140974061634610363812032855006599583502551154848020192171741525920257136297994914792849689786065353318783794249478020663772282307903061835393417871624345177228500409944592875434695310778444868609139163732920212577773610545074833906937257005705470889938913512177388422859331319582771275225782542191125770818370509219132416956327991786023737026366346746940143749161314831135248610069589951617318308398961537038203098493722007214085886545663507329160603214088467156556695224170883232152207829768929912892536226247538008244448988244425727142682272369657827575439915596704221323292940883947952050515115960982951035885632899873834391374790341450387378930604060197932418975510476047785312509780008179011389315366609020119057046073209288339817385135027942389495594085418878046429717304165257573503568427696079846199549683069212206931048590490080976483818635406580890445423880648885804665719448851802565103872891582272647588592025827923388263967511684321645757823275004527546794394574527768311305762494920000073380218095478606194096283829530545388953544486268285789036157459526212144448687945815844799396259192826810420308600657599149338672194612031604134731365454002802082150705694001322035971772550594929934166239384781880068951671846649638941144095005704525114394086312131672092509460953543433716053464200525283339438710938611501201364285740575319303314182644017230501075564758860447635763052806840390959453547042616455589541091452781522449894951246530525856611775636401098435360502641940441209510624793366971022347866396524906264715461481611803862514147576467711922420101094763258071597333594995527799865054333674306138905736665849332138389792551292750117737887953553109779714261753302790566327505213014434218008781432507955085223790798041702035234755909330645796493462356306620772890164358435773678746865571616205255063369884253602626936407527553376293943806534536613004126738181933423707236601499774623185751221255311218715399707147350198871698585813149821195414169599860332744608118423248760478181865451660634322056060286208973205375059663662047565309694209475585774645974099613283768795845175772824047465899478690647888254759030730498518878383907954416996038421055730541963034341696867957417895663639335990607564832507932658089502389545665309532741472624310708615451994502488156740946854504944218179423034465187255219142123723345849943131058444353152288133226235347598124935373331444442173319818593529594923731828070723955222840852177268059609025143934589099314385538034368002151733800686426777017830280374092742799742862401861739512746689336456391308691859277934644385278700846571232706822798126372341175031869473173312892715427427676202301878932691295644549680027872438960034261702870139958803680155760801987571458345921641493690021322942747511860193846158853087937851243370742657519438056061840492314880856563786697200756431622788580074052262523061239894772563906926612142373560621641855798650954945770157471294384756422293249431413655047184935776224666964086838005200507240066906035171444943480860643067725700787588591891534082403915138367159258828945230528704760703005349110350793541070548494388747846070004143693508259040024850547672309166611104775296410637501906761519289297107153286346831542092358129219480505919883277055190204188947234386226080510738083729391224023525976776335064060366934541286491152483733555097238173674385042360135332949889714200645088778488149091275232405956562295471006237081508923716611953815456634785477416731313746964023008516392704474777905244179711765578438013608186727505924776523617106981982096431919477653593515074166358685317334869052103565587928872540899371245335881558589930630545584266655626741101013324983664476832913585578196128218306696340544963615887199006357326611257256155719480396078124641696286890747716606275241408609950013532832158495704371184995204232393147380318308957619771378928839342156123150211745437304887986356374706734253948902743259859096991877825209975151753016121547884370836616182369328242907742731999938417345256195022350931893181746540639264769524184985710673839816408370262218206181772610682296732989347665481339094914365780514742360520127577098948360042720410078890320103705094981070806871597447307019162522075280950394795896513233907277250915604541412184039148439528194265236414879337320037611411584145506832039206939027221857220044344032949746833010401619053257577353087498073046017335336822467392583086848721266296168669193083789073629459882487199111145463397271404979407483710204464207264302364425516971776121807235630294680659935331191962475712912933575287403263892590096982710578367651493794919616970109744872829985991775233314820169559772146328348453891045148190278105528322824347126502691312675130333781412442485657932651285284468703537900429993471262734878510839532489971157529915642154025697532352027397281594834943449553428718386517477784597202111242891351375276001037042454903000581816866472854503273935770350693121597830474057448500552717284166272985734327542023855992738279771048461013247266426532550482022264521935469298953744863857940165656112698149569042324111979837088590947226939898915071993627450480862852711755633511585565374667407777534148715417547224019139760109143029598732079092261561606101336887872446676033062045099205498868750436000277177729163181215272990537626006771137696431145747874390255201544851253783111167508115264551470083690557279798776881350495264898693770287725224096991188432979237192823019299348777362367782424424663605452898225331521343181313589067296105453881094774920573883453574015323921823287345485038329722546466582840522374978146736269504071280930209690121236426000635382255040090630892725217246629811486357566467575187936613728493383907218372052833484968795389709775693024067399511484294892761747120235862856727422124272565121780807566904839381938652213499553344507401021067081732666285956211196902656850718067169821156611902152219156145413591793888938117654944141864640984428516477033753358851083792459764387247265234471154077472159485951080765050984849888864444711432862258888103242579034409861840638155079002831971849368992052247352822181284835618768472011829470392591654036177496596794807532072719600768604221099204570997062299975431850413459926495791700820266628327410365768282576514633491523259958955728866831767177570747209225475954415084498793914300148810711887318284219951515013875201079864592323803268605921205706103722645801098121340104772720096274668755675380875040796780744270860500150615122939335293243216404870588608268102147915613355156154834154156553993881567775872882041977513763628480953293899170587291705489911288621110463377137703590659871817876386558849141804058778246878105038772182624665339638570394901718870324771514443396621924815241411445733486436871331795435153139839735736703568536613279567546991828598569521021459568512233473860787052757227694220760418747096644105630101685910060393943422060642039476452829245689231896140199565003716638328061375025611771456151321058729327339443206235680009477724519076333684923340570378320548068162645155563152188773801896560839090517212240602211761878524841012707780300961863658364202928849448376516515083742759977768935167335507405894700496879984416300105672125666154394036202190532636036552561848691558831124423979789694344684227254288114764799572714646030760090114864598721598318973183022122943969114830201770368843464204756738200553594568333404232859230496327990990167689597937173332235188822310162591194702491902877929722392430557825098103845101213342247046844812182728908985737455202815300420836564205210848133804028993970640925691109838946217330772568058991057215667019437051495845901681758572376313648790617701338840097194462432819792509246169865024113091373442348182759403880053164470889781569221791975811338998908290079217857937416925230121050853205808399652321534775480884161810544536627716979213929133553490424015195712508231737888366850627573775803322828852520475634428082005574237306575637942394536480559939881118966297755068389958515894225605400415190303852180954731284348539651887031814239695234924208707382712291806329986329493423261446157293503693970390983044776779386296753538134674517167687190374274994130359699791080892684853978910769368914183134838097905875699432193968211067025973665999790940263526595668538500623313700322366555933163581393247422698710606659860853704248210936919931037143912050471724994246614432651559877128001948766377996638335254979041227250271864414236680447118654384497174406324153284639237239550383681026530420732817980075713468436062258305532809114174525649245402099300065509394083211395875004566752108970086731646652086862809841502960930987209051763286392917107417691433147493693715023616308074126711884652977793806939580186453036318762079777282024212039935506095347986193168484771423284294660869161298069580339919209743813093458329281807753392028015918087050508151728647245505732621011108431824669766472313505728484905523242562466651639255456938882726525675854808828714950384886386380361077216926688610114114514815131826913836742163186923697491048351201615521112718614720356768829752534033032974506894929181481101851945312539794308630041052543890231358592876142425704720725330275130616461848977622774768008396831883639169847544999252766101115467219883286589036979715786026281876851275954245260153144907125887714222587836926274150086395754003961358843945115504452168878066620882666727193821142851564408143414510421904093211163441433829155764801341188777382887974979929940083147295287208534680262031276119747238852723067456392606196096192766939523089644620762526470498402537010801455668435437474460156867880721652752023861529478424439090727118965167266727086943030562999477180451715645734324493649534232009538769951902941976539271717154180185893282699109625001761168457305431722105926708159054991197774576499649095079261487971374834048200120607977901014287065182654636063481258422542412328179685983385340142616498452354586744468394562874008697743193098294542815313314008046932240065178979950626505477511797276247500057642368044352721752319709034296085383121522649608544440965554468460124760375685970347999582461119093116533554543591845874425434597767631966786869227484857140462294496400648949830680267161718768772283799596176218086617591076742058687151464270305305300988603636142910850965761821402864136018770866749588860596395694225879346563060302858787962092201905785414607608073712995684922689393051486430114106058879704868860654629992728279073948183452315317500105325712142212134688054968326401082414522863909673094772049477954487917617987784274005168500028794816005194313199835978123348760368280628150129688058568046514452189368176719079179848668708410764942787482500823182935028446940059913289121174300455072829045545294061359086899886817288144810398774160724798250537797049411295722403495591750581726205478236895278405269546562695959409384456692046245466056758663855163120400531230349952602002752649253206514906489348192360109076780987049522828567823192848271672298319975669917221715928294472694721742794625775123712654951776046349038383833919715450525288070122146787971719853478379125057055585284786297020184043301041774510314491168111386312466442698404203377602710604237719024116957734689154150205148926423741116143396049100592752882007358044903826851526470158202734617401190314460029828651092215624264308615951985358586600102295236936366814137714290982507904830543243277358714376461502069325475160353980824598576069903738011099609713695684386562912629544736680924738001024119452356290079398368981004269224890089764186317714446247650260586401239292696630539463452476515294813890546699484570589363984465042166305072228830307121899181018301398390309593303216224554842815589311953258223140032025674974871657693377675525883801508074604686868277792632894869835819391089787186746927127151240840847096413478090971588646053041567328535407642846971919210228363229792027224563326821903871330626945033459990187313142083862774955313348750524922655185527147456036655510061478724183098715930875804822321578646956257379747832327872916101178750139879886992348351118844750545287760352954264616832257392299988204487200569231777379443584785598940104337405230662675995181303868317807297665085223779278614072419759910336682919764040588943815023889643245978291735464608974834025642960549662370373022839266536930407580391732310062146384040780869084081804042017608554458501176510718389551962419589767108341245953528315685092418549903153167281387677712079669943285434911693354844545973165659357155177401416480205702813536553047034778246483860314863085420797241239752301201466492180512140769222621792035085884427277313991452007333831033328357543158859644771646582744978836068790730856377314233059354699329390747202501699681217820343942735859341763387917063710861050853123120675530611481792730887839044647812953122026924573321043467418916721325248325293924786696797869517860738119625039737015142320590709865154832565543978077098492707730527355597420566729779647692213134490410012545536920019544485631721589388193564718721633307379219586069236543475119456973730294535681119284338265553438451264857968463581189672608724904828275524621489289096999261148988266339424384896090535186227391130522369991407735708164192573335468675069720421032466162260444053382147482504645906232075715882348226025931114107966980144976407336892211669107816028747977427802222772718928001448032462399816856836148657697866276753577320516978019433187664648413305069185396671107541215621675854436333196661869602198484987326067232769089367928406359152982715013374486981170532202862137061117746301571487684742481424866390726744006131751597337717461549912620437932193120898046735548114233132243997945591593292068605970419365030374871118723748024861640509360904135486040041360929087806591141603465450384508710031407448001399109889740795707215706833882049825568865560514513727848239388484525252870316363942029488951860508166813490930957760158102108648595627095687712600855139594152365018116986283561348946357281907100511602498768948896320605272248584987278122859748386039179976161143889295587815702339443889256873270009611477351823887454537810325614152863331769779323966857874173437135634787253141102741745093767071927578152237569394926449067017776075115048366783351026596087249168466404918281406577263007006995504707932350375705375416402663433519690654318152183884762984359409699636203838754197908354845590815918194425661839887382990810948628457368724506200599672511463939376347097806062448434852356927064151077734619574953142597582470484823412427723253403397712814332763778814486756570635365833477140932295372298709985340650702171154955817314793469124622194224345939816903919139732361557063657685277172200466779972283726010964240569150567821228712662488599642456013775007619187469006630068836490100031622467959404346451688830852790203417408131950181630563801387615198065055376972876878791741600913103162888011935926496229817869831455669923945374519430199669925354494126155684080045644358885628278582303546164791814978518799290392883744058722934744878742523509510776472859670220481801568738802672974280965338833484787823248929450590911441560952524453893457218404187316697883219386151885773302463646565744644697958745121194281775878153540465201088788833451230337100198298913347699543931682327779300397251722722264969612725889072298106271858138692515242717134697048184157051590363739226640136720263370893550582503482155580879049672388267459330475870595489743353218404429652531305875187145221353439678900828285153249093117600064330956645653876467826013908393119480154532326046433771325677399203597615731703194517914127407491013862960004528420702741801350944116832675783229694053437591118779496627174067706479625818971924706193904673342209555023609988652439024752984631512356646410081558273199034030370424058406740531997109577063251256153796396053562715367229660016096910807036987874262217995375428184097179020582452503422447172524961750556930960046031768928284743275800141107340371440574130203612711204644610465059013575671925846218580826671188618058296715259822892236928711986043199426284605446870968212701690411685767609237928558957078303807486453570368286851435025674863206744266614115409327142009483691101347700226482679913496537187034041009847292280685408601202682971593639334318609552462122539509938050900631128653700723068537176180830548311922857101978074758782538462339575445843050328915092380529982744955872730675286578461990665431070833021084813478758091491096098841488951254906844925506696707494508355158898101635015685093882409681528381077413581143883668684123177558934647265253351669831989972641598218189567620450509207612160426367475126635415654400351826457922430436196273773865144013121727501159157742277946417348209536720531968499767252099515421445852662880755227486192355103102141995957183451628975775186088092736027212492757334474385280923237714005735214766750316168258403021337402865770610141182198125391331483133107143633764765538325830865066225174718102185927788797932230032201177332849168430942994195211033028445029730492558921455308113025610851009731460948125896590562027841886207342230145006993942602302389147455494861629116443338984754127275100496378018525799274589037381810891043596459993675525822271868941810704042528043103148835690390186079685409054639058736162746166343380583041906613972974006715270410910513831521551240815426640173756717049976526899272866386693131332639820141471250230835514788373777149466328171660276134114007985232461976893754125039801343527513837000676464760575456211393256484526789931694445668832447032000364401922788017249310849072379981036282621396356816552665615313200498324760811285992657808994161626278509535469887947136028292359129617437047057597993688608994465761967085207836265569514775585572970422764369556542679927107349102196667041090768973770199194694755102724461123175404023898156107386038604754698163474540540620043496019753232050163782794687005703682491639140585600055242145982345486234387609503637517376951564041383926110823409704477527459216697159120098462868556131218298265765294335788850060001254007743765720960277818688312862871646695817752922092713094604603013337955428613896384501205771321105198274009899100808197512403723881516138968600860171910346506131414435899122871742051210196667331913542536294689435330668131607680028323488533829431704248655750266733406985704712928712839397731792979674237455707433678816303369295622733829837374166570667984389981894144613787651403535757881918009429067531274042765214288492424255947983413685253757718063179358943787811878622839515408309228782389596868837034809680425583755381890042587919406991360463689009434880777896099880015135229610849092328796861395776827714310592660100543710593240022333684558560535989719452834886957463901872556732600549906641311288493644785764696556043238793563947470993302632717141335388964920017825185409724670654730899595015019197124823249827677318341010792662110960855243564471613706323165726249452882296151487489401831254961455002674254936950750054927567174475054450425290206086863198531501892173997716544487414190015620248922823582566935492192087728547201139113004216024300071233490241556555797768180272505492285518986346925439418515586028344337379353551565349754490982304347326534077954062166583416116269768078822020545613317012506492255518181704346671844184458325238270025324177800797101734729168905151947357097730361362020992979487668473292610715708363341538886758528363985036860983212046339863125034348609931186540936409143830234317002087555940784101365619459200694277152732743058897263845068670201730294665285467392787108436507320423760032710996177074507168369568243207629954735429381705369373896863642854513024641906025168821348245631053877907428135406990700190319372557043085231250157595468908235513713344009275032887165654148613993398535018115374840721367831464292382282642787141210008154259923210024565957294845727406933107412768809969260461104495545474195718161272654264579340679291077255728298723888193947571352175424390327285108638585778625817233428696746345744912583483622614928771055517162756143932060554404089129634870009057790099921934879291671174850009095719418973775103551189056721341175215201466819154432021938927815449927986936127881164369188162701090346399290568276266578128545291257506149403215892246208257485836700625194442126924169780236953951139527111670715582679448318462557731451928264367653663973868575623135935014529639531679648745521425708718940641038044821298141244099534421311661963600604332699335272233035005747017194258197137408349169610937190427719431407534076109383655432082008217242152303830146946247917416974693941072061451750162664757285962436678823464406467261070436007890968843922393079443637147542157289616250830006298416132401508586188995936810299940199269420997793558494543928336643813235266207552918542193174826387684390940686071582281104343206184674235539738158269109081703562542578490575745054143501809532994734648554807961809064341198710335430343531097925359422547171873870882484501659822498488345318109041793630320270232472774988324571800711819045169678809640682183694255425749416744285164221164223417992650752086045663584821359639533501812844308229566299031936653597144892066667426450876946219194928250238999048409438530330435610809100609724856991754393424345509295521818643751992525488220889152689199052256621963757621349929641203259161889091538292513263139522483773359017298318940413327503042389050716294360866431865683348684977656081169934405110914457540144450134479448061926551018915924536207395917481125643508335736376738969682120635989420319495381115369172115797505785213405718684308532972379542806473034242433478483827530698047163610599838345959290385542459969333824782339799029878413333880049533656604435359851776894193436233617561711052637221588420815840177315707526878326937003176302600796509743095234379828397760554935549200213411462595962538796177753069662879459847923219851366085123899778049678146399464539841650017771072596803370966580633176117801905751034183151063780767656076556295080706684393183718401494945573698271578069859472195926749975116801893973866276725703647367950000289415858716539947845780427642888180898003869724063461997939461722683277869073641606453303496082235864877267581958705199646335948727958842950590731930601636794131710207215678845096643661090782485420334943011125386055287978473196472291333773766141679935519228045444784706188746194107498105917677458038068495782230404136831437911552496301692946949757625847273825943052458379265007743376056156513316689269574206689352148099196116319692533404292772942796013335954478385390138643956386895892917543877205436822562851600182861482567535423686913239702138761281468537902261651700811623751732796620599252807273840172051208746706197333068099746847219956432975559439984447183467016875323908666019607463203797227001805992618008168807640668084615094056541625196161888907201026830928421509077019118880365868513573736357697076487110899426360035593030256011889509593877836575743354645091730803027434183213392883210929679275184871236346658542299021067143686944406468545989682966407727447072185654105729976506508861093770231905471487601324439602781427102223970526464301734447377004045353913415431390480424594912520593249662741864620709884558391477680870364248199051747235111542987008597980754072563401107240438357743008567284987404552711907936124684861596553529069633931956402794837644860391658017196114428348549085323189377811134154994799627428773663724685456358844441839403091728012631954445298354765201731812657571320282350450803088805224736147153244993577293427565941731631469925327789651648347493868569796758065095833407535361323279664762127046431288644833767050506066141086148052321038138703459882165280842821439922172203102906829492829656399178472113340002463530854127493934783381297080115079477239580044761590420431331314197505274492256750752286665925722313572429466333066761392792581698218881988213457120213960801031804482191542874403201864554974704372403967254895809378408743026378355919966872173105206792478639652774926537365135638494388811980575592925420418573905990898223626670289716010563482556037279756251169829262409005202244590057886887987477769132050919231867572318744302512468265702356528062609532382806909501622361379386103959560208127986940349439071061716675130707378368830177470640767617801217226728375919812447914287149800619210562767265089765072366309594783353947477845876427345856719842787616730775698981614237107665004324276498850401332536919407384767123271917880507809417268343496621272758861905305281679744851343923636693701173031020482106946051056685063036914772133363796292931054867422824828444205780285443514627431907452225934334568222347793175095156671266940783826645470401420653390232193547592468854873610063764214592034521928351974079790275233461766394674950981498984296897058109920557612772862193022031615030935542239301272395322169776711598600867658381880993590175846188265475187899171552072181314235226425740225289930313312144759160343624945804947334003356154865275412906580684403963299906041958901817539745761356575108419739262359725105490744551908877559414415746598954609080998176005229068315368340060432450525103585476154196287801743127141682339540769549173592864486448328872881248121283737841710894934875424427745994389427456286010789315695451191296461913061343906609735845170465827145613881493457408375803249384407342471944335790230171033705007241635297178771510440735042597124859322555311267452371009797221445983231837822459814874289142272896463835356595491253870075326357267388764041708643590433600678895351558642349702816101548171241773997833720793409739878685770798907346947400775921316067819685982353519630953587881212690704540720683589150306394069850652002814530739904562082009681312221362196481617741105283988085618851807778177056885270378831878485494447278976819114735487053859946699281931845444152827428022661271088076031467994245659137537277131523907268322150383375228161903180796609512844328228274538048438008897351072600865348085251283006220484649222055766401883866191932500695385307571517705335249709906566973781962961926552738555683651102529141999932537908462828737555807630228779860433510974254726273182757488132052115400148302094290616041425720408303766620115200203334605557487696789770599731402103531571726794222328750233171983709380581771659517375115159712704233337298054029449894842422124765557094159558320115963736053408734990002726829011073927128946986500299584246805208371167091761893457048920511108465647246241598151329704442831736011483864684466402222390018078160373834717050135440108615617794063789398390824303354359419911752821290750420857211653770745441570690371092239509501204739001477757468269585781473962230707428446942830935118953150995869991136721804752274327862929732243327867781399334010430296261385145003415649255518679720455753833740273889424889837882676017236255795801612596613495476300089755129367581680333130980961852299209465212406918672584051040494298234264689977116633450953364909804705587205533661395690742655312602736554540124862403166686683680762920932990368972854968117026983028999265426786835869489563894156875897704346919427446416109483817288355853345483528823761513917348692086407060430041903954631673409596587289920279042176749226825617297250825903646116598265325040655342364321632715447861942094222638833232406872178013693732956512844971430905665482467038075253997561239476965875867566898427736037123753152945775147026472230640853615034879969282940585478907820362587328415239797031327208090887328795728676464138784602832357084689481549725561804347836655254161852259494255179948570645538313305501671195449104736504998770683667645089352724141773945740181217809651494332546172539853542748195105199277695221302138168238922819935100128755948584478976221738033292279390948192493267308987611080213704140778215319669489405185487292399578242931966907831249807060798770352974398054386809857722027803408266030228643146324627326498958247127127906493906233681362417081936542502866776917454693844026818585696321056228422300791403799382300217900332544712428161872015855375170369739045986589734898976779191848871650719847861637587788788326670039952332128632171819413461042887796544204879235654819382786027214135382516893180704904630529638388214132035112754947809940833644720285764182992658221743661435325406197388591876664790580170664335040845431665052305990264239021245237641968439305392755132024516405746155574664353117321367093651859072212542095186388940883304970528484828801736981971865794773872347216288093281131610759999563952393643755926826174910713269490895556803017601409683082230325731737192606893285294616407682911551293850397123750600998439559161173895433516636834947332888519510986889370443812125093104701718448209702796904299480185831402864013350996492568028244428553383438193656907070203158135859679858109649697632163681583062915100240536462196686577239848401553258119553919823868481936625425222581328916869818303228237648948605286782713693484175253882592243974576409640776380229572784733172222135264700599234331887896592420884868952848357552013988387051065392830049086235414555272373140829715450215069562705815714319285964094305177131241258986653837615279633380104560225763159720696308396896039170029124239720438529241500730244395826772842727983358689495957179325685920027931355290763276891862844717951820030156314976584635157952691748912155824794795418255031308408115659517033692982295488564305358902706053597805604698458758204219222635663302573066150526735157209689052052549387888886176581574933347031954936807827351529206742475760124235669010547450407607845536027237254142553576744712210867712548033932824969277004090602128576810780888030273446896591551609219973408563262422339994796843170868332351359723110529091260630283251234594885893123409601178739589829902317157979151606647338119602129219367668393950614250105960430929780526595660269637425604207242661388087049429186233709471078422398658420682088741169866153367854828010486244161171406400218461970916758496636120974970226166170270831929550761301339057171577221336412364850375344699934845635483153771907934014871991750440647086908681988174163519432900411225780108109712001942190465481594243432401170470619083720904319610211574312136609323794276951409179446757432002077010285345005399467309763235503235183371139053910846995938078173237333632337813790094097983409445737096338757887088057738184489953890158592667861479751796021283882800231113864450971224174713547356755321120933332658178131938565308445415056503128686062110729697147779939885680864906980003657191857670388095054187599783805347658997331374959892428536823634608935964145056200938846658808828817767192676395114302727042303503430074574314309205689364726243148531855498803561163681724928016224353411051595376898208716308200106464853004147378062753278035004750172861696071060880153528427417335378525525472990081130786706743843769335519813711112598348527098770236112027737212431383827940017390675653696095529443880207201838119795636082725632354534888814560219001260186120862662915596274830821146053320366655045838410354542240336486611058822580095048785127072679669321253378633639157434021765064544026871747856355069889728903085584903392416077358531135116077643954704842112108596538442209793402642352131268013611475017392564284760487913159703768653650435072881533338583813165244295571739470494638826465052979808448360211176909495238080036573518155736897620390878575941494465433596807699849812042158926754957650379652872562329582175058594834397557800149527444555398719177041995986498923258051436195729200041840661760838769431200903206404915445721375135581491478169403106011589699270640440246672756486944772844760792920757287880982801436374930559448065933039762645870403080030338991192844006865140716426848701911200603177904736848032127835838635713619952772548268299274977551034091051674708059838901812517596322870806985512474565941296403429779622713969648372576505612751049827228854313893646188648916970970415101602059164902109875982757328768542343640932482764974682057798734082912308328871426295483443389752757577723811831398980528265212778297692402551941337987685982208923220403786462975006805311107227177380716654553811927960555469497342532531423588643995345815540034177769966991519224964850867972286558355992466781557726971323777847614949994670666884777407449241585745486935349848510607023188478959666234121191793278098716953950301662345928781376582969646598649184028924530195955376265917863569727985510143760474214697772919627552423098457249194806014369937900807669078246480411348277363261924711567412493846929298875008500757482203666620707993656298200886736640336935140984327922853146055815111272869619411771578994456792591909992180770857145686003921964941242684658306663881874980566677959291233159826273617118825936788056805771852550446496395153701601245708585645530465658908499627138246731408544952472452179272631779328993419380200584457740260429421945936849627988873391190664616269382919610533325825788070064728144396051510965726117197547331529841305156572829863051871982463217737140194716142132032030048590461159362269214078125594097675024192936025908948962859327669380066899781319935513111874102683861740967480391923568646109215107998127480595438882586073555796948347677962749325976625018726690982218041459628436869134986811051555988428172036466697417452761563071056161414520650849542999899635143196011044776232058356190891145521763980845852275790431777269179743448877396896454377361191538584173388024255556017276933720265882591542883318857387811477010939931288966468327079748333800732574010005201861721226713422295594840107084543660412616729099401624023382957767276551750610444323914465094354877662959901120832565720613331827036316887051154279330412294958813795918647768692319126842721009580451010965079219978137481065414255934579808304931891118763756711477042291642890511917293185276873659897392043642055940997818652745258209047153128100405597732770552149200166224883880206558609971986440582281055565744630348019698789812279572158826544625037121950769303218699980969939871418252693903623693725626163499292294479220210405561402898627382934996412497237351836672862597825815484822415364459756081489011841470025929791302445848250945906078757934241484748031219776699575376844117960206722842058219275807907700259072709030294508512578851005624499039843697870745084132037770200192253654718761080478167430975524218288754866907991456522403902529043943181754001012930710713234894011365072976204474166710454926738949882573311251469525443400340443942856129571789165347051444693442042358875423970987837531481941993750522175349409882655303666857234234907411698642377189081669294244591715201482960315453170913693384306067797307880589200574160058598593093646811216163830328139057039898656202039109665238217020808891425530829864871534008056582137576129787996249334056493942097018161781978082921746290410202873859555725396306542225602830041737945961420245900471273075117263635720459328232454553015990849751290999170146475324061072831478508732569253364469695320127431426682518769256002859593132995856278055178324371529574727196775600566341494107948934391216828632617681068257486273961365673071161895649251619978689790688179081024653727794824479755703526939538021438026241661510465194400358513788428345878019766231515377425587776235591136321216119892243367918430606978824694485381639220135935366705459034474588856306461959912648220156923052861526517164654170398413147867419463621315881639896645408355217961852803301336756223091210471457156797352500139481398896054370061268562973080655195407284121650493379699918859069534296131859449621829324400402878408208782250766344830021490192564453904497476420088868588944270693101261394518183892012999340991276794460595964143499132307185217169709795095014887893322695583079439438691525611992675550635919016860227829736844709474696879977486116662306225998305359511824279241898728214162251472515195664571959305676283832389229961022955084700956536693507291380733860881313869364288896495726048830719706377234515157141919846338919705478760592764739416267509602041344767743994852156893334732887483268746103174063791157298530745012367616304103781678804432571162587245372526095543084768761358673406644495780896001075013687285623482041770248509688746593197072846768681481020882290555064586379840500238369331403846984510595247953402972998950576911138711431991656793353161525190628116464188908125230325778573825028965505629675824574422455756789479386049169299042365299764690973360732001555952579404812632064965728567821787280351686100660802879164891638106916277879689258708207261430867643756431053197099241776288131230819928285079554868866956234955235544952598736082612055431570049420662821384860646606109113436598646809458011803775911386895102631823254409764178053111397880386699828326493930161703914061843076824900168202347051960784236167662818507730089441659040681269346734769945816048505460949786508393338551465422943408547908511251776006012549634223160721714546058188884081500729494927601231430709421179277455749017438453190630289051548593992154153074476393758785526799505681207748273309902359520306784709601283405199080868844765977103269120376668189776922571168305486487477705564290123738097387735650424908305182720704731068933966298352955061845190328536755423216988362703633687356064337003502192451677845878159773541452806249670503531068069270171696387100058924091593504185767220758110748640534540768036199023430755532559472490387077951521883515759071886710590599333142114170291757015389081733419073685054508655297857201476397359241311935801139405592893472414889772758397515798135129367460422352610456674568164064431445111779274510678108428846122868767264146384996380851971632374475334788257645461005445484423917422425048122701217967102945741528380530138399716843100077205231893873379297660048660897527004679173434739528081081678562758858149288043184783022310516699089435586338829677317867918698820771289249550897256923564840858397041542371782786313079469102163908188999927467964042239401398843528000402604480135879453904377090967022077189072560292500839440571586172415783249412063308072191615463579925894782850968978674405488178274689008680772614510209923168356474529234179035428544314318767020093644168824780854236205226140806466705004219487698912532655397059945468013681048358001151898669043433934973114101154255328631866781991138934444038501328123920893130427745257251721898958842952732291169057133690483898752503098566105420479553658941138169245968449863265808013666501008719014304469931620285234261241950863372475624122788706178594229305287638148484692436696421449769121515001700285320802686531623998689083121400458373590953108984229481550778975416470364760084899050468071592094157187841860268626504487621798471484101981989756523652417068322416709649748633634679989795111341636788958843544475740278639699913398890668716362360116215195812654306388024737494106585864536331478598242658705191938978574211399373573190576002701953071142798384306308566278862125303553122366976796554075954977016403384755671387694817325336033793225065766598370817966973151629721414732277292238279891918437975187176562992728360896392699436098410408247445631273549750274437532420842688300271072282724933369515730413797177495328674127060669058601168035548099543709707438769220757985347630209806714939969461794858976547018767366658603947071962629673713011427965306983463395129413198667105968590391259287629312138497482562243901881914758564983870860678794434342857871342618141004553410962556373462547465661053919907454675671205321874533162947528095193940982062799163957548902508607195706873935536570136661966444503694291782369669036876888433654217207244139315054266272190151967741816061395964064694221557897472972873709245751706254108098348405733452325425444334294941164770575287659888674650840823897108226078224291612172203314476176028427547890459259831458591207349483267865271416615628296381603666551553409739195108631768300161636055298068794574956458131499172805944505158774913228866381359292358881427129561427865045400916172706398314724797352160852115950663965168714686582269076824794465383099055925359463030993416294766978462711512295842619548112667566418210082152895414442180741245001585754771419638875643737946558618018755132397381673502488610341680519640713563804916707791490799543057003399824604999692799211044729138943650579695360814462249833067620965283124455301649035685812680164798788983573256073729710569112674490010357850582629171062690485444597280960498114230367734177946304835379875273558670734879581526910909487775735255824496707609450128180019299173658849571484424779514559494703241116915531103460757290874749618197121418620364814793116634255070659016484555488975507621035337517056137093525183217777469434146894858684089170023440053502377129308577441491655059595681102840173735380936702282858482616286912126703688726094543024248003395125831409920890800784911106375093351637864327469000474506096216434193618778655231491535675674535656311748179471694371080024825082023601429311875101388217393178888866869296835283679553151317021326836974943285646714689678486243511001392023905734058115079596503962572065506178819623754127905645882906270801353521983610428670377198009453262894910595167544944141501240587826978418034056364602561802141999121991162552968978686776668271901769815635447173709016605936470452757934802314431763607655684145218741771634133395730753189361269077992594084005782840163836918575472226547253002878262785337067617401599623017300672848509518179609329657020968218492765219991929253077566863728206021919571737824868141769801539250883468760678599452387868141753130040448378315593461182660173432966846612667733908401976340743174605158272012013995042430158399755589422607982925997824475498838307347299342294020687199905284864414233125690133395117081077045888366620856552476702794794295295376897559381166030426111006189179618596650896220252302602045232848954670256525138562170345143730487109049302178713157294103198365263135524180298515274429065567508619759820943078961549737214398763918086453241293848425902726247641798535154403421835560642384689901784500102044253095737624910549310011979473033006562313773395723077435155838382687650309221016195375601065132471690497901894725797595037027730657407354099376310499733113564659805545504244108418742345459243493622910461611583896354724508991681011084622134607569990283654068842888975278360806415823299842507866097398411120377099539781129428660971145427066394651449166084169576794998193269274249508861050265894100704424564489484570272259846546763768117818070675354825026423417427311785011892215148556443082784553770030691514004585136891224452224089339787674595886054109617881635084474384139393686779451470684173710811092017454868603591327399118804381979741485958130722799404240903483224549286213514220808317813651210741819596869538246245988280753416175461034118492946642639233495090691448697981968793211106011847490066513489730400996632146721741970620474295726245988025428858857295163616398323879793278311593755972883086511170924467139827220328158499056627965351127299680162177376567502148287277116631788983446324323367011731792531231123152600880303477420944036180460683212872432268273483122735944578315900090071522759526625384684810513966363575934882388290460960887691672216742442731508664330054366559179803015829927167089884618045706534927818252268619319436657789252315677128265457817276595403013923209578131024155727504367738088096069662405589611518137128420935478055982632203763396831022597104110781612246084262967951239324603495975283568177534414209964006794383328984414154871322500762243426491118738356121992460161479334786757595157376335487285292504317070787686357494427254938843646368370155975891519569408746186747756861910081229945791957326954078045269517653863857611593990159478826676448245009427625320835820468562152435140066497772098807264268037901554060736696525144013770771739632466924408582284899952915466592516599413587552898811087217767376232151667427988889371876974289878357169937472076015074344739140491545148089358576447408839823358081722677197935733866397549933881764207917137355912347926526171793118506605941230865695088008542328069779399152498699079257823200155292763526789980746466655105432359908872961679058400338889238454894507906802530238643639345356154029218724760104457325744704689680925976265959659159161102550415282402688480802313399252693756239503593917994768141509031154739624583379726286283040911750234831501186194046355700695004878889313979793337591572564904246322029758526175524150168559149084454883609586652179675801894562237482271197619814676119686192360808020888472573808455743230855858823937689294735021347414551365605116775889348261444415116465409969937715760769274063205542096596126287854623475035029844848620113866206532002466090024488853385651626647682364485033163392973019582241949321858815598010691604318602300552685668967930830300185234233360674521452527545449750056993504137545956579647053910604148922603956509082550359180486602582980432768875680252638845330004525109320918109621061176929516942035910229208691106511566457732348741818393843958163789516034472187978319662695630906066911748872218425632329536615274088748081890442913355674441823916034672015762271102319733080900886439928449679182047994051477677623785285321056791909916771798841643647834965409823686248944765274997761931250048953194057349543759667075109686076808603661694590149485191142814583640297132380237619614882206439064926553843877217540951265687631316412528835639689454112728165196687001637413969053563615525388369788448165270482715667770423729248201221601211982192178928939115332653458222003152540483742975116247100537820936493410663858970925568923290394752284179765906751628531123519642360931008037195559691173615808427573397567265367644316283188319447902959439313576156625460332485325896372897522211720503002554691786041054623531781065014337856711090601699328078311302955530726254673227726698613205709263871651128084194925491323645077375863846161938922733072344320140708059983313454454528705671923433181191538266210740038355083305123604368525709653999737604982711288532596116514694118122612472798854088271755092674526784329177786572278225812810745519935982891768991992569870193457460751252347210629576969518755603275780021147935064897017532185709710127869375266701564762594958150413950672059007122973227252526079771672247439685178358114521593816927959247249064343089716568221866109147468730286180971216056129721210998218879712931348145067412138241015310431130129918805419188600973494615422036428440982542449083672733014959697789717622086833533262284097367495265202625034104454137528035992455009168792045239985628133129064723164946392920470518085082916951090175773145378229220597494685757813139036027410603197711899658179574701448569436139489132518989935143341194084684693940431722070774595897530617449030853956147246078331445885985504982992647538953516110134892799662168590855386049618197741740086639266775371452904814282087432024473390662515218116454366577207521984634781105241055599853999540201766478940487684866131150538858958697180246749637716429515733631209472064814817585333928924269987129550224958920429260079512301163927430482314996165856790049295519504469583531449101615699393959424329317246169677398422759023280430093076259532574369554196150356310082701203197103383539238610030035215425185146372314007403728502990178557463099090718036151155270736086852259372803179758541344544669484358445310474687582273797252914198305404149679943835290724889759114611514804071184690745357575573642736381395506481400683725260218004345606184855277935281726323689533006197618839392665457558342589853524253720053277863908511901981994066871521569532934119810026689528128547150339833985478229814807323521301910285115868701208038446640565847065321507573725613319283773083879694082891659461694263422427974840901148956148349425958753364631233544856472917225497274991313280267335072799543721414394129503566099910327050177872841890827555456648685555085695923878007867685531218758101974135723672619012196996057474897019234790450452665847431857129755648352232756148230448246667401769137518840688377693590134063451825604727508203168060518101141488978887329893371412505667283460966442932531626071296553670757036380061442483622069524371871467063314814580471043051514165636389731693012472600849895212439607283804032406594271361945606209453120931729362058131199317274950321937380263024679680932209181963150010596282477161985286650663255612651329955510576460478995335636251567706571629422921062940004583292812402582400598107733262012556650136319879373636220802490038460837123900583099292754352039507234989349316701167217050751937193746203143693462234986005962431571075714611661982510299316703119163435161933105736978269695479275325818339746681530997606457062854816038171665580819107432709749778023635338954382526600921865917320028891710585263065278237737918437907855441365491719101530745758341270056960415722892673517115658343681316270371178309480966502055821175886783381380652846573260099176307984271972586924271922702382198523930745001334507914473276080138017622132283320755683740204929086092656336950415204781179583160315658935152534243707977382550166155819620362484391839374261691268291320579835415284567158530862888643260855188564451120566640687949209054661117161366858984669847237579407016427017994834077990868980400880913653250074093889586838171470286136505004016662140697375875091187166127789768508376285571956641723021239388974762040270366487289248024684413674839564990976258517253459725494055874907499090759730001892371718180910450231379612363777366205551288784439567325590210716591061515469119059660922714786676575523121686576491908402844878395531476205062765297506091772593597804651029908627712755471334174101829048298656821918159595064370440040574249506138299086525748359567140323598101379057189829764192000419502102511852337074983323666168801660898219945958056887951486882462942549266124079781432693683826753082311898558732243631795016823038992373261746343381843296031403741216163500509115541750536730597977960650659044361094474243143778046262820243700685314414900512160159669413299115443031977419040348094749172733693720557827341013083861535297816978033508830175269153848266949577439984046158430217568272491303219165663520955274474847513813706797554814548481039287637149708991536071216469653270760518672898301984065682187309114386210685168206624965629507486623672636681495278750372059307998172921847581636052306271961548478058593375631841576298516834963295722061838598289024662961074597306007796129621704110254096647845345455033943442947944640819191846192597057070707469754914939350731489257594311223102630657606186727408782844368485171292161815211363363374555942374982146299201697762755040338678162125830671983199395580618396752417217312192523812251324241777898198843483014604708367085984284359335287433164851378875285999747703188363161918902824087152983573401323063063300331739688639127222245029491933579233810554796297232420269675847440052412084753626353216403050314069083083691097091923793340829613056972750438608804762931035654557070789055188686733313441777952735546894384233606247222453006598334984422011797643508867588285427075959043941535401075633325084193261964513214139697266500144099674856320336552732751186786450001940024096051206071341700437935662833120621517546634621783695690469668630952624703003971089042881245952639052932537032626390731025859103699192816944008313953669373458019462304484080790925899166043114918073511709819441581247505885457222925254045175218859113118862614090410755655031430940195061375186991924143505372796209322186684311909584612126082997385594535823173816046634975062302185651133398887130513882184291791170441106967169513376044624617004063179700066972737760502735708745745763725891734860012515397997363997783479337195827552245455191195844370334115948089289304646471111788380717986609242556713410224024832157170377306189153955577060341658172740210673677957365803333807731578743242068438502879616282201038553295324478130490298460218934344148924740772666562700989040083445200525307718095330405849193314748065579788113423473359328104277355081405795381272825406156746379229063441324643375090686192082856121958325105433830662014355225959502078519936502513039108397768138364718787191544044991281896661858133728233302034182234099559274726405313779789852936434252429305088872216877316712629743528434401716518434811621898200066283135870914511099777026303028302459916926812955315524071541543174707677220821008567001883383975480606533605298324532026379863438802167362779245531072313503975163020763726499874445394428749107369953868334168165759375333512448260922060664646835825273181131714578139054576063666073205685491041206401759879103973928353604858944048667553105804549090689106385116856106487969276356646151679058616511544849706351676772345301087427073253327722407315295186792758130089424748526788530541821245264035132579151251813009898188432601205351874543775083365359931466473667180983587960362024082491537119359722884568329164326561452752670889034428577949086264374244406376644126285939454898324158664822931582876437687331523061556464685672533023004811944166801224582706428797685051967820469652745453004244871743944487792460571783580355061442742190947473481041151312523127700604904507962414678150455998375593434309971209052614587551658778656738963781530086385487605978680048218600874148334450566990752292766519885889847338028233249537448890149009635438257640105609050961865068631070226593663413184249932739074111410469199513918203358388757976540541104230032951135010118715777625079358412052524808577931151917435418447662786209671815720255980527598417585446053525775412698566351465418519175777436677873083612325832211713156720995953569563463227005626016421832336185022128272222087773608931937676184960947965954688175054704366033372568708922797141008414394475069034044312673306227731646938706904311312391860922194523481839620699582067266144568689255471652006284829786397379440868075434175788663640791943774386199858037109724088368739832964087382153640483092217862654186238246904254545201597525999556840354541218249988507444405733351946091322228594046954401135685041908438246371353874184505788419501274911046305318290477694794505624482749592513515875732316532222442312170988203096703452682381273324448734900497716279188476576123792594141161820839075558281121028983997948107262274811220535213446912551539419387726627814897917465807128822814806845073491069158596860016823059469462067016839304769448996117686158570863425684270662875604214697951609120798025869669376023917517587391159409282888353283680271397328213071745055473929732130304903804053330675740547321051919393815959522122723031665606749806426629252781458747382259023647323823150775587377674330484241890140421400645448636663607880196119976031308967320156309318103275466236289683304142291119167016095867756492542915929011889085027229641178188383470894158671525050259103242800719400037264361295294967179344880443837221628536023989534981275715879800821379623633564499027176602898215174303662891833575905165189242860516229609007198131268279836697621282941687196657461797071110300719152827475232762008117325623240242996763219921216604285432711076798746196477210364643211643770026123409066839756443968815919025003550687665446266219444826581824259696659552103627803328836342806554843096397753490621253502929633391822174495399731587637930515874292511884600483597471983765379145746218387639162620041677421277933693439374684169000795714609114737511008286682783748393182867693755118322181551217800720514254985565881877048969436537722773768733945557025641173495571553534263056464585811060759419035347750659541960919262144663854082308397531358508366785292522470251614355954139665866140435147849823295154479046511015995894195739433444771650328077657093868188809029332584108982058386930798800916890939356422819927735700245146801552498994299352822592358223078066104544789398054374475503474560100135475562244017933291977308042573299290504709760183130828762061093636546731388242082378232380195288225740853031324628316915232861757950211159984996355108503152681138711113078138101402134317256765694414661581767128866464957231574716675440899878386412334193509415320620194586144421850909289571208119532791569654190466390244230641231141347245140714628313955779062353604516670714865071196272793113200145535955201426823060315547752604873164495692366168324740842594776690140189568828604357442550421471485868382685050815886575977756931039382189318900592920412706160903306285747439953148112473270424614524347166408088373577449504048494423386703873162811894770458188098393096117422272319878772201889336486816298885343687887693981731096794744496782042384582234061593332382986636532756022770083498211685497428426046270188769713508010690047344860227056662082443451694732359372646041191692406493253683552214383035441686470257854361168804601203150157519750987029859406084499004386710544677628420299878544087974388805443452217033553822093925416992852187408697327452227186482803373535592806698065506480626113122525752907915071315875466645830019202929784222951475475190206059779938167951186958580119088357705378088850729875692735962655816974085386396280839532966670107190467717455014017636575186664403133054809472999028103487866524118286764812663166874563224080083395785963962159948596930304611904188598944674304747256827863639601990047340630451318538667822316435378010351008771570795065836852219088296284954070229476752964430228353820645285126693011127184451135553876603350951996323402446372842984433977690343706629756091178744994931610117142082058446070876017177747711765234952918957155144689269646646076834151075694990791300839557659088907228499636293300859404722634987803838577953252146990280326087552364759022086955300406759907999195533633472251365012017068232071799456378956820507753025224390275830029025491275297874173862850548561884036364662393211642650659592283737251033602320394757576382620253406213110945361703898185998924490457523567708435288280864145953313181683394635503631853005216508997578305393478755645095806699808709283961538493692694702671493165231411455535636620623591137403651828606785111947861598073392669966249338709298789174152049874446750581911499342951723792464396428077892475385794543491645238929632470117745882613130952620083211787439264780176537661259131893449450741297378724613581429135999500851628969758340392956949305611376839437932712614550603425757834745063197101683823428180949054032383248661479500281937906447110950079917114660902869217132665665886843201435649874172119207442135388577086638236216907866550053200153613390393686600832868183905111638689838667750204514490138577995706655251973605097551763994744418168912372517187915817475328271848724071760176493684287848534566366808790992757280555216420343652003896816947768041011760719024435042183639559732760221545890947072143694414035684935663888296565955469266529118049546249901388432690932595626108151494225434923041196163378936370609687997078366293485285460247904633522536789629829618225822971068380918548119124193818675720646746267193959217768472434038949770007836925738765388908137383245240008423734938080765963776419993436671321652384349702742221891285750317188161039670567196891659194136885874640416061436743965601229180331214748953483935702738093737687744125683954600417299202828292086136428568591377953384822156487548925924974096262810859314945194698198539941045281803541474666561427620848048415547040722319990457871627732411389220794634501790728137723190520876269975683074189651549020821158975309394415863293629103973301829334544555687295089105036122744533129529677046835574649316154516125163818112785653648744461576775962121762695075382605819668780618605497888803056645175319427704799451870906251340103257216714632412200044122191981073003673659165243263050408947839508283950006735692077480293326739527120043740361455670255284328484414447921798320806136105428588738745887829372014682097816994843459847299411773227650746130358344087364391266359230557443235170342977603294836780497204174256746767908031629809630550439209081363857980171693120098448587297081970671754241666724626094130193975716452829054350839000934882527180002681550783983830254049135154211638401006792527781212257414446375486607943019331195106508481949783057517264766103369818917172091606146361589648432571934465797817549885708374675609246678310429986799929355998418241002587011721278377632956631857444593974456842164436914176953583878943439106069169118952505492037063278695141442494377887630398270870839326748108182810354816133703541505943352630325638527582114552812048457649901883687808477618715637663111499430252316008078205393505726102041020885717737191426914194698001462180442659963288929154097236829281410350820217091702071038453260984761862353644488408147884565779702644330907326331744621254734974835926003739804107611904628543187996903684030301393418142520323712317985124936276539927522596721204134460959606263031223587077029532534608692737847409056919486285758090569890210003743568228071067033087298179585432494748996918999755464940171049828982097326990454495864300846301856024338766311551604029956251530006819391160980091783709549520798544127787695966427175042831071954584400662479870079815764389515670395158485898135688599379126997163362931608780927024331621860492145103444507748095318762392526121965747284907721173904932885764128980967706612409573782991346174016073311140391958411702811649769189791795935825396240696532166360529324990861627188447196720512208747387253916464456824888413087676044069199533843578492153727467081036254584308074722544693489968776914421754132170689483668363161896994732503563506286064346487035872365194055652139478536344477618983265311770581924201344049820412595532973460219408174229033126210448688330396096845918974718195180824308322547065674638061738350752871188903476039525826584742919540203073860564843441400488379758880428770029238774896508886672766686410842387151170868122748217308480976652552786591671918410980541352771193499520051502284416973967712781431141975158428404861407402467010442431941868381485442028569314464661185376454944552247326110831826016233717128627799933647905690910244103697705682704943769325171859494247400545918850351194170924930916523078324418927975122215191520949452828276934711058414292023045018516503978323304512461131050202403484911723285857350123745849546689964385322583095673402649839216110817971973838331007373530081643581965137590037042618643536281390606757740558265638676583830089151049581132066470166681747067931605773462257594953471990525444975634605463704563858660462392452155127917939941454830003438866506526818731439784942945926524578130400953561352831070036406255764087098389799521963601599193993787479138423412144927176437475358330320899386181708835087022032132038012426318733508646201626815651961610500371058407941151161484949209180924665966680799860013002741903634484198944176144540864017756733791340267016475224947436880731380366958092225698630399427876336295572115042211322068667221590795165042773826196011594638256237821282539396665113538686092185721917204819778581913580839468702687586395740190011274599367077071372325205222102324905084529118737034898354058387402233136153434458791515834293607552292340323384020733183115468543439708429750821161281920819844693729996489955717267370800803832311650788917150213220832513800381555176351963354996058998056586474267564201829528640718959524757085301772569966559947491901237846107948574389899460984613632062655070575142081229080267960630269189814624622070791195813083623280159324690608446827352005929233850232479268279554482455865259797837549725220071845210740655304765885781479002390341715258146265639637610488863735531319295819612710093246395652552713304900814474883053483453904439396453017646244610187643216500214244758079357754364277521050547734665162933217465047403465485608369180522831228188557915592548525792040401437524636657914484196142131521412750151301548496603181191721197288732380614547594734424302804659063339395191486150411517825343188058817582987968871366369352174265824028038088451055531995961810870147053489274196190775594650171456288517241832625415937097535601508992285623657117394459820960955762334269819466875986484775263827594816094087166613278016648374053906223240071841090740536515231065521615188198800315863585850798933021144095084266535921399400042452835530244043629641734756726179392485813905746988386635682536693063125827425846895551444456921673462249587029781153902840272114463353131595133520765342670856774346787255871591074763808381767573803282297447697141673667398524389207321639334663015317354314598598235832200606140756999433726354749176356039376861439853579137821267131701927553760403201412356763434072306342098346550086621701226843563979206623480042119594035111267046591651986988358882474145259275123562070780382358458427214532474712502320749324280824921088228575236580757094838074821080643259809212111634072078631185771652030788333755054486447205557532703426891231221723497829416345585089557391582821091658208453070505934951363948088234049706410889150408710142224663384078799562616496358877354846028881786548661303874499694434933453380286404480198751439173100959038993768651275084409518297136512665333488829811638987169847339177352678232441958213849579748763377739907212205003347988564290901590399749889359496016324914736200300552946732358790147647396242980246839688895781383324434981233087787568703963764250933979883315563700160962774111708112403825409068537660525349039325315096459673795136190030091918597620194065556842647330351467040056615716525535956260499603646829524432346199343060290821205572224476677899528559020112628961039919716367621174158056780588631476732896830872234922942842617492900041395058099123747408422329455528502017127807993688412134858391202024835586548415410765274510288881850474576930379433453903116982827085463998975151924921286436622028881745175572596231807917555464756312690120168469144614664223017343092527067991748387614787472194227338004228865592872453555024521415740131072586150476804633582579974816869405005991235264489305424861314113699947003869556081527512526946636003338345429725458484078612432800671792854816351961772961969990671020839784675165456122133920491581081896428473828380131238850329737696263077688182417104299005562180329270384270628573273782719616046314318863219150868033406721076842002770265336923058323385996235500491390102913516641749387364524811328131171681439169567613695785619843389480254206516240269737490452195216421865258976014487595573699298814770045764509793149205693671326972314923890072074140573305702955074675068866134527662003785233960236256878139182012751259727455594166127580444347474526454578785500914859887464099776627685525632883972480748874139760742386672869375008011007447189739517055761694366480363298376616925318088391773412234672793366091145983672851373366395545854697186296727709498320992806938050185808849568210310852140391953734763932415390139423151370560114336629784714766107820717170816356231172379554789771403843365340479967621055428454951632092014782661508428334492509860749237752445094687158113533101310836478018910563810884837307121811741563393084326830034784531351448583640654063437807281152990863209282452916478395121326825935055881860713080738700988448642515599258379454912224528235316100514772638533271459018822886348110210209882060623260542532581432327234257023770407222552392327897652431994210699147262763375719610233875831441384627410379321135751550558001287481853619327650279965790108228697787427682055855817052330432011239134304155407626992587099983293251363613131789093065115321228642049960858332361574268679471123787505961425755121727125697711762794994237659355192744845623299789983027930982651165335476393619949383539977027309122400473028858101965468810762925638978745478444432911247234060987580776275965508404584090110666038086553944970194711909966022345030501999938996321444898424390076280464015950369071651082556602802258479904067219000609913809032524187644975647022022157874737350194939638983286594678578531178287349577964042255825293572633026281693693001973043346664931958240760906421318686571394111294112552334122853291142219786820013478294460406009167260848324934924009493567228113177830789757564268680201784740168901037030569197462612467930675276554949967070604544218457839962103428262091331433111329215893486661522804962575560877807644025568172520105522233763699851753013031537295956060535240827830036564628385852249770624451609048616118886694342757406784332694502411885412435938986348957366792560763178726113897525702092569174361914811220224186680580898389855308490997652270184886637554904562360033395353935050274912661008020395978834876192261704418155179007394175747488745219712428373579407816398200600925441883389298062765513513805537321621979976092874021353197209963524253276602976798642417453830875943335212789320676060281697596025338088503458547080556606932930429168760909259016795925329027362799979189560485590599999871714953396191245370806046634660323690140498727094942374546268433687234991943545405768809976982125922969042902005087041212106925219696473611526968808341153059659518220499991089222064700565556073620934268193272036983638995208830336861229307025535978573363646361148042681863889903118353164728924313189134837043235811690953423831780243122232014052430555031762080228223478901291042315911689094694573797310205208522712386721617982848393076917533143118261023201538335918689701622493602706693906196384606696131052101931549433016645870591836133195214660067631962805080990313624690578465037011301567199807513811124153387667297217561991059338152145968892251259912002096059109184240853574554914447989349943509160834086498412680951252066251865371143913341666670756509992761568932620099175723152656348976799711989991470470561707484947487799684153113970313234088149478246304144550665311352875276307728191591557815807742395569777735391672994493212175317576945842811583279650134921535278773126955026524436732000684092680620457823385755440219947828073109441888380801389795535914433291081179627020425480178861430196572092212153721895715053948878555792411735375574218024791800304527278833777677132308760484944985660314840329656469197810258567109000572243823217140197746027683447688073777669687025883078149783682726839258932261727576565364218514647426255133932708194177911440923643713793415816630696618725003382720304194559171827462193767419795997218999461248228517917876665471816752876708818084888522328185579666614283627154956697798870982622914272542704076905776667256503552420436955077826427542562119748930360764627439131611994969335973047967174513752305001266996902281115371464781146428758175850381434730959677643907260003278297087941421936594169793658682289169487707063825925162182875773044735478719226570819845115287630906332115503417257204233803857443365599159584221942501576649519624621422268987135309741810586041947069780869455659972896004767821838817698680728419349154718328832314053647828371462417337164173326943064819441494142843079648863297081471591131349789457525605030717967961600233751973184890821420822514898810332969369210318150037759176621642063518503236214647515694581986439527544483736730501985184099324261968900561963859133123707368079579294543748783923353888484258694882704295290252217499279622548655679230526905047219910676291351725923270556453543361971736274888697970480145773809653909009029370240848760072085801599265671751723571296720144151585909357186409139469302596989609752792917118707107846724175289269620350314839300841741996826875979885297880055063536084803421567746675612342370924557606537399045808237371959412510430167008873769716714636834126554958811810801794024121295468631204780570184322034114921791167354968127561358504957777702513789831923087334332699589534269841535024484703432928296737337862192002131548535095231657492814259853512519825975894638740699797077280347549775638088120339358776465930834199298687850429040632076857559405760262250359831549059957212053124150695286928290251111850987225851394925804179212971118948977303137542183219345401018940977162885569801560101518731435036487143335965106375717821273745937118985395904973129859060735424353643720950844212389142726766137743266743446336477403129648400752183451285432953377944643196656762998760927079989191205539710161464382001404034744082011714636785624110570324037714123075355030654372896490421607664971001083122906411348166104687704537990025822410226917195140757338113671176404625264319891533460731530316083253112695281143183268435009266136749609274618331533435057358844141999232346277710978699826612280226926040104129687229750655348814029273954674907936972851881778802952679253308486187559723293760564589920711119730395334763095760265869543793204526150824572624298566180054951745911882989351893410909396335608624290350286793409272968201625910579480312415158133742984647221084688323914306441515950852802295709958985142528369163239855076319325553527467048263941919283564916604133965963628139918601855232802553338531584799971449773952884874263901151177306963010028058294221110870352165518770344326563799032680006036911393657947061376527152581770142663793647482751226773141943324639092365431319174902891466472691746220837626058071853384066442146363140347769265328087181358174582978595248913495849759605318632228114048058788957142638648413478186468584518738057352241588091298308472163352519357453785131471184619547528480260306925918932242298066974173371065689802099623313864762954468308245311101926942567240035422917382289398125454442381127825676484102858625564519584479511331759218040658232060055955674105004811519386547768160174239361794348177796935162091292243910952756849039745496561541208175767285789490615484551321813687639618737084155526542014162607333080998164833976475363465386974542015040968335155933618344835623169148487405676984875664306711372561880533758048062239269152846093756050461469473408413635179303131721177763231554979486804831830878297556891014030541676564730618950925922494306022676981875609952930672552392582324401753722039439691598706035851526277052839273690932565592294444206348506877184736656575805164606489949611749774156461512692319229020176890929007091168606472426638975704293186257189854961909033580130607908681089488500789052743697845530726064813157465655363317075786152573063127327053509758034752548302318851785673806839325766091306787525856232483667573569268390810787606998075188745229447387327214509193927732920639018038337916397596268201546782708951502898083540596931250064148514823825007675627018102371263383219467922997882177741722120655278855732134097269529197820034308088641886979919248521370992015890723276230636618053674397980383563847224167740994130279895781456843861406775377996389764877639639971049903571350483799997972870188941557552338487064029929691716449961302767359336654197216043217422969205290658618347034330115991119934582868766401678869036729231683382728675744928507590965621046479216829519188162212596465844052226975430048815859725584488955144103264785359681712687168785462477444537536824438459581104279597645852371605448985736021748871097933568294518807385428752990016652390841729229231544579289856593366706003425646825391890142898775146865843659253206060449875919186915953720826774764805394072209336301383391177238192225135110290062717385910617482754976038864483840909974520142492189338517977952408513038956421517444375636235732303195703893369561425549672300293687765381931397097726307226241022323975898163751546618251552773381720824013802770716720544299597588866046974501903314171543505057411405813702671737974334882100856115534097183182560407831256821125817361018395927397857962474820383448479070183311177938704353317036352497619656858602784011319837381165821210474478511779944944136306457804111158857380939098450585686040949040060607829369732848759922812678390869078384458224495497768404164685129015436340062822449108926977624325455410057369083156314922941260557792263599671343387190494451746880109929336953992071130114949343679693179872556403061858759262066999014808945278154358471299049297641338442376027702983161718230021084994428833367753407219024528008952464157045956653209912260535599335055689597833148511233181581606682124357149629894899332146378748776602118871833929979279428157294504862338420603004198671160908401574491340820064512381597606484209530811037551133225404547779464974644580155787078741136661554369679338252917898852729947207546293276144633231904020895257004247846742711115448389995883346443108004493866279059876398184680907164424867403182049423319816845397147389635824823348773014177798369765492743220253683296189884057411653057761915492266641407828108347698328060414465212597888876692212218302198584889412457509699561510046702411007489521851735012572663447241439875959754927086012376431928565986914057655441106141829196829148536924374002855046841801130921531946077027560126519025027461884880740614391985324642337394240287695523187518900740331044096659238291901025244866527382701231014148217997014010181748177020036673346404401243564047509024648520726226842033688265277553961128221663976273216427928922717179063801040217991193545203898683000138378228787798455783673460402783497927968739064289753116344220605427571462451605511563919432479487082008017644205169213631300796591801375948612314746989330985149598619068649204520103538339090655251292693451089070324174764053571487137500388210364195558414627335668344673482320322381786957997044203218630116160725029935519757886033663221145836090885974162246002778944967675314603387215602947733981230827246353485325923485073110539264408508169833796638656749213091351662259703798834533789646565765278513139870116886004795453401703481036352732384197633789402023182675910326112938554152872242576762746043478564478659982497492877227481855228529272307838446553772146965549176177355900943567823301740652761253457527985512679377419796655995204279486168929444825423034058635032974373934206619242661822748446716641201309628713114093914210307662343251728242977704586869983173440864320356477572927135950606304628506588594611267739778450926855460562604555360180371017233559992249948387383072985844026078732167876472150853985919713351076697352762232625404902212695920934300803877534103485283511667169941154469331279147437334772205199094613009483715163151122603272376146138574844371830967505606288539105881840748851500132232922798019897068145529020219332239359728896928447443605022908531920195150763285624927576975395240576977791699400042777417731567141623959989341909748570885151451629043343280791745307849997895270311319674023663103266228933181546353939723291611906364583478675637593327204176587953188462900792488710186578681227229507929391090069595664971998672570998184922929083507431143698592524652814494998514754974972860341717421955538602815852533053078274232450968156241569073575761467453436608023812282152318996786221880663753711565429523956695409889141368233046841465831362491079078399434141448036203981682160266052187844394420151703888836531126607744217439512271523129816626036296113522385410370938482858222268092952575123833926313311913804845195654999937010943113746292596218811593576720183873479312938656240089873553902609838844451275496948816572296241913137679841307657829982697979045054691252452342278214250148184045768051026771200611157037157920326233134442704027141104328971252605834247293897153895685309730215388960478571069695510924585336070326813006660485127105680189258741008901229776528342244694549767813798119470119218504663041215901709205006595531172044463263631725086892049992731476155572391760040769989228105647269625923033399952643949142494521127664583496816910214214312875696637639887284492380743260057976098892666711787831711507437953485193379918039023676372729323831511242481741350455749677908496819061003745064358685576874205756479199562004558775013751712360536923534475021587501136062506401693332070206236801591383051216768166341366693663648353709010659018855654594768306205358023478762291569633765148227916663170634480486853311470940746617464670706932102035590920631555376292224558356693279543723904445985998859237811305172654004985003087689087893285178786737595173923756625537745939933574639108638634082450245463444706113936202352719452153979274851993387125373612891875231222064517163558230747410448754760572836105701616516148468058765365999872194678834077364249364462426791589056323691503389423481791110532356475216212466578558169221549258927550261718694399869779062000717232333387150074129803935988922611608983494088075092795222987586053730038321740683723063078547058768395215009132485771183624582601247233416527387196447036436713334770931432381737314349386629305785478260431072054391653661799076666152466669020917469826826151931776318695010553365198517992570957390741449725685383238524941240723669496679139354443494448365002463667562040233664093628041250098860464186851970817004348623147976680589112041201079498588291171712062329192092076103607330369685206123537105726678440945016123201351043256177270452547238801475609180522222401442022270516543495740308392383701529841978292629252958907161692795337538526419336311759600599576144989325337264862454239584875357081556671193628620632949241237544060490236549873198820307459779107720014370270726916594524163219148187167090656794340827236285491607765809622142922444545674703969719523054255769066600182673608718967184087775699396676877871480996119647610551520275804568005869883010995934090530251457514648715643165258358164283238809861517309356665222106056261114376988536564944327952311142526720712022900861202152759704309181188066812873372474456496896405379360345257614387857629179495614071740835437764413366703653406135795199991948888559883128011145027129668505530247866398338915617056545501752181369667919245878946107864857973972051955237894981199023495058193811777476144338686752180725258687418828012943055920632723308456075459608179651878190300771575833636094684200285529322908242622323365146099605855463586159579389850468178306416187516472213991317212707063991804737296909516864899817100278879300360798293148838581095134697647997784842350562762844191819157041675667184513727275900811747471470967948085060398752218326076293384652199874503250441774220193666028682731499222934099142561163172276594547586502205252371714866014663676220262463385138156470822715841659872626687372246773814432491085211986986374448890165866577144130367561876373945449324610974139793087956941194404813063766230868115549998849901775784080245790705733924429161943341290818797646497973089973751218331721836155084356971693063751662678580884627019094510401862562266093268817206380364359703462864590964585171007424800780870629176459444284261456859946211004364752925978137334113624764888986737318801981427160376140996877028441049435970905053264850929074925545998266279883815929761197334748264460411662899674583532702037831144700045195220427338179712344981681977001074472304697108657910303281193551481582912855172937330524653745671718328837105473931048030621694672130702678560282852284923346192180951312731349758078720898603983227075768168590937823873767848341652694420439672404347392436125230621131001690416164621993443371622107426787647365237251093751372461663558284717634410505956435860341920497997706451190355211065810560680244741557449426991026917383722191516710038538276605388674007758040851425984754709212676361633566337996581364306009258959973434270735966352755390945357957075837739170609751378202856895391734506444372171342582163971754606259577173864313961123539388850958337422684327143114399618642251922339660202440702986448405446665403822105527924983324866038142462463407880819754342808551883061266242482219017370234888674695108069910345591687888639528688695478956759159890579164863192469138841508885914367502742539300906851125494533276906454017096921591441534017893174531867076804762256433182076512436911981612775600150900499419693997024358729761898110270538027791480073252697597110236675649846273522339188722772310973498558501353723925603200527274034092985889453111445854414725230826516410557670259928323183937384871387203299730497021199491326923062913597502884440841474245417989417807607449020946459856282370466954622053876089555641880273805985904268912632126917067266415715967999479810610921025772953231216280703775341022246172364914152636153391740868477251246271902479572736141969787181644416539528328502210186173763256356075746759539382757183718474199599170280356372114342156558930003188891577242924659192734322321128126029731813444330232881283170910724622389132452973350829383993547217176757493595729308962876167897118242619976410242108316028043057653508736912391920256598044682720653486333363339778187160852575615596937235094584874267496998751964683847242277498536524288829821343950707909322912047012418736067051884678624448517208561941419444994641279179062020787986504651329437649652500355066486898432563919965187455437513128621326750756504292329210117298071722987419902601754224109429575961651836735702236148647469189757646793593489753314896553898104224114403775717105482665302013580860398962911611160642059324966944361781803630953299324170199579225198915716585246799858777530666848866889183121811047745752211232027828441086713140165712804223776684581346989307279831357965980197562213011263881186216408525993406453858206990886399746672877267995870766174804376011929057753686595050763011386883861226063296182544825562999362988063499643408935812577287341231151476947229926635394712156468055193792598462136661344902896551368523245284216566877029219931559307669111945270205821664608985680875010478808778578013969327743155529264568719185876460522544690084833300799548530928888786603024618622869549890923605485947545555817919183736440513954900893671766829606419311711210375885663553597984387121552664550535300471763928669319564000968481345983605167793800545769019185268999958241779108056835112900852501895209956879739788231541262854747209505907481704841223370296310937123780430194029049607101674484276554479050176621349402768169053691971392842564841590110473197070097241396743365011849292383605412353501125130616547339487586579428730105422569229348172764601149668515283518433694932177904223390091836972426512439248556510014223447974580216830936019445129549387405537185320184450630797185846452576772061674404687872713926167006018672352939291256688808997092954531617016165723943713072916858370601138380839760467758006543001386961736726449886682314549020663302506412633183714228929550033402488783340996474810186406250795058659154930319549127943408139749803999599721961001858981213375015229840368994333163646623918700739159029769909178658405076026685525143235908092149455077401365150383118231167093218180830412578512351327334717148844939459750161220148365581487042758433824827376962192466238575751511410470397580265659185189776002721897487091489712162657176417531545641450089939237527514422852482552375031066921363505111692935407616421011820083264908958306321969015654963271229085204216789810539590442067154232171521780677241656168965898446816602275537075738992739490075741844016246716128362027117649157140085043535518265468677043327263983988370947006619404409128839250097533825880821973424628069713660212961030632349626165582099618757196282294223382980287638924312592037799164956980039529779572430790624022049450676711108294640707172634037478673346322348568027550144643567505109616973886660696106393918816141246055095798382467282075162915012198508878880264000556193872975593400877188534799643954531275433079448586783464851378312286391700973625653893176185213683074022886906066883551838612011832279795238566357245335614249348837296833687175294321142503505042186284588724061256015233804402294916741382432700480898473680405977227862015413510379183516202988243615766235277624942273085098319846746047267922570297077905909490332071850908007100666564575716272751299791608036090747298873811249746562103339621745601618468394988388583000852603112486017374816043442659205659602423757959111654228020914058937058140901521565160470659785738531425049947352829521569992139303753830646707842191087270338654874290178309275021546260712482115710314935941482704822201966240006079307745189239008825575729491633089867197030659958705208095956531480182639400636842596839621067590184574031729252879854671064263986407053781877033706977396451088582294262793145259767710081216813175516130329557976460113863359810404901303070019423640644268625852218498646830452849849609799284497360162252246916085889792068650934155310926831959909190718497368331056183372822130995033747117159285426951518249349772222569765468150236167389453544446071300116619239060296647806242480957479102096559310430617024956917024912015991705982236802952695228259438763926328914472295554705816548524209294256597289939242573427361586862528584772868892992729378167886622132818150381384426927064012084383884698144239711448639921500678046764574482953007875983339813898657293074561238883471808771777869981904530597420904303955460878856165126689023389624883543187065175757921540175370559034116766260602026224158408500194590561606315120251421599493193287161037091858492001705231040175328049697329342445054129907952795592887317867308676301130420755092007352343083112501864570897223676880176892790247621544752749151024109456323316694497010641134345255691588149940079046676981029564056702106743697064752383937802846798817661894736062098305438569629442146223247609213715937192559994319121312423314251384701334232987442246031606292342638051459340088599784992958478072295279863590191658708405045235168346350462124683988961050566362457008668862972553453473994611371156934231727704763441540629652027147329456748973028391581737215972947342620664131272214811951253973097143940224406367673496427694895158773757342159097144495339434045990171793878382538559284090290874308869939187993696873894357468484758098648367315462298859882543926502333606009241052912873790149508126444492607807601824207965222127708348224301033195865929004447556898168922351435450406309884258987002782422465458602150456426189278677645938243876595435891179789994766185147897911022373950703529499007385461717776420626776324249182885008469063005502602753219477441367826833226305768946759843878118239871565988161592761955293514758189108529006968341066554822163279792343416578398263066618218224414658902606037797178440640694945886565169244779244226402011959816030357500601023576080454761196525201356728401017802722364606977664045473888924271162987027745277103468818684926415661359185706446488121966978536084141855203748823991183909567995612816345159477640895899489593859062664743350483911840173904195746715132157790179113196469418349911510663508543276602274366956620541307024062185586207077813142208661148038535559236766507062641712822624298407296044068577424965890745494357862450543333649559198902893910524254313073666409575385916667324040755558404474986660282408012385860578482633469495383513103698864303897952012727013944176599039581149409327774737581040399298055092095253882198539126385764472109703552288039351850888944653144855953763716884691985499224230882587322822563650537649272546322989926870681864001103990397867345036234794259013124384192082134299542921204608396026352535125811321690453188553470300634467548324779665561754752722636929784723463092199313162370385191762564810694976688812470348961825968117149074357832644300347717175099560627455106479639583850151955207808462585904653480621989631865189227225024387554780700636369214413539375724108003019927822570672301404096723183671026435740558558731996744515795341234771070184376374568792308053012849962186019468026416763010906549705297947615019948169498123390647030823930262115916539155816745720120231115033688068340319185144902343555204122027291376600700968510889228796060447394475080890270534871602479314447782408853491503764985494148440609667552639826589451719209348142518087568998403403257951539701686388207134373535476494501235477643736827087493554526549558815669509886339015252928271251186669128311741684465194665420007511973852462255501033303072375835002324467045429422646693917903016177555637811332510643614549404497917956999634444348630515950682439694297527366393726401831348780505919899624792325737951041380909184625528673796564057454307618725708644051628269659492137480787161499047231060804166686669965393686518106376250958965150697109576043416011773049374151751039634409695692702936103894314047083885023813879018096093386946130489146078672311014905720632412780960834671624773098759898833824673142122858909880668819276380739289384866237611438180933742885864327929049297657275891362057612915750955584330524456756122509057523347758557852493443227297880993411998803222947244979212724254901368170991218423680370906335931609771450258923937853442694475101785965848263609805281999998879218187422785732534802117082282573565303969513111169947761948621762591922663812035813888080279397436938884264805633201965283633618070768405603165621133992951403347653657467553460731374625727642483036099001440154424793956136249985531687323633037219532950096748074441021599952635378957739208892867424022578008663792020512717408380435448619926131689183595392434595942961901381491827011565586400524934894903507060106143418879136967876402848094258512458859373624007099235749838671981601149923284796287296107527944333747502817430631460619379800161084417792968019475393419938799823079281178981782376356509804584479915430325538164176553388935853016490805742446890484161462752131600519634683536706462234348079996215807763352804539344737885178752895741944958675018037297838872991727037416318173115398234510553511497251845933005962450720561669727760575010104337719703670886368720709799661451659734267058612240051348457317299887075772235796225389888559529942442031819467376775361223786622433806375491409127125795188026170806378185023602036910993096919941255070160250975105317880220168686144737135069839951865673379021005526021606645275620485841868093336691968401408063897519956636570723507034407154935941114657096658442059172054555718349451287601999083141680482540464158573909959939489929649247696338664404382371408548830635122926821054028464666161021777628093564839286951715616193432675969229695761401970268173040241317478377381824882693208144931160267477049847672449197892007088699673451553951799000255305826483483652469764839838250023176893073563704748649340494918113126489890529484044369641703803778227227451255828117243969323914343032652213440481991027360638294497089218331522357856042770916450403663067089950655460917586822308764819672804193727142841385002372442898579093766303492818406018478723279615787077095927482885831190042452332035063840859522086565351751119064719192558733439535005720443612927332090293565122168094413389335078030077358320931664202392920409770175630949817188644837085918154479520945161027864298495975216160983063634101911449093713664928043960427498714483051397961474328772902189256879399734813745744879549494510203202977014222955327065771845373906763149114909013552796362487230331115520875054410205372152807757008001362397978342181759447829493035402898409846296397147848183016488258907849901480305170709490674107442979656889944174309749147245980551301296059374385028628661058864983295588508545435503336529736581598727531954441836004646168487279488803939618000543994863432427339136098241838048060748225893290971039643744621478590407278340125077936981609917559942045817417011647386827990799174088236518142073168710401434549284509672717414849743787040967365430989492375139759591675760557689144549815156974470231250870371512174472111756200917995724446423155893735325618764599625900422353827427761457885538871521744207676299619562225355269823417996621606454598212514486463017239923894365435417635351317527505813113691344710312662537709718808628936251997223568979432071699132099966107621923705923040680487191339205316312142924162623179244008380366435366848030277159082858301087720027196320488541900175742918196805475749142425159874775856074819649358573391603589348217474959839599016234363325063477111454089420808185277762151804080721487352818654767716121063577365826884803154706622486057149572119942135668613872697049602732794341159019408956111255636544089178128404037073616600607200986262007777212490294491896842821581150566527721797597312191398988342317113536792620674708019748226167880285615200156492808430770573337501149028991573596656467914684209735371170968674021737031777193466447426673022807635506154359547326673393923326664379232483986982200057660580652462915701677261530433440149288245512916398147231396408155844660215186641364408774930508161096598628467225305848420913710536250060323198808742910672207338964580748584914194996354915170666527736254652246228958049276127938665440910517073540126527107919784000283842522196874229533855582184241329375313139689965270827629737449435559792802850866404018469993701218067975541050589696629449789647856450785907999019913428794746537989470714375347724473071590640007158434941896554496047078479798645051082996717057224684005132324095084898485658213819151503406294499414265063346882387392347636643675946637892022180655080546357171265861649136152159415986678932492593446845277862081147184342478695021183134195485906577623434935839325920700485758127355537625483471237663752439205280118149892290547196736672520101355383525518425664055789390815703987927987512856305601160583029978977594780371066492624572035644249083395421910185161480492187706627905148737772702603001242948355383617668147957352986359103952972345202085697323331039950502214312160168284343101636339490485204253774176166070138730576010069771122954573256706848384178584465079224297936135625447450162253053170781856816849658981546384624556423488921844574972078157796121613408677503908443577990787638208447876800247064711930888694223023403336585525124852768228180283273392258989074719300847769311889640027552379027051355201385001090727937085623261852409922534534987710610443255527200206730147438170290120397126839606041280018288792898026990805671696506550967737842358249198202418551871827287676120639369313755660777921586962734637832570472040131686481717539555750580128384089659728738753743074009544496055160888577715766927054352632345796878986462760026830209077229851284333215286336144608227312626615726823768047379895132917559106259551684681640605763944904755046808083291283157135016485084584997261557578548898753749045839411161258375147781894430775532893284280204808445615996184724639424490281476452082027551296109742795552454087539094538816976131461572899535048088715369580388803557745821240089338444780564039666498777218437452743770210123364952359794517787803995447481180208463040182630331050978371808324355567758450300028831678617615197944343730401202816323353424024462131240708924994366935619006421170526293567257926871309834250437386404506608454352101647957538771690582598944125430734805614099068504540314231682242175813749199861927079087916185282670474476333010507210318476103650462924922638309248828025607484228338283432532158083765540762653986840245868369358181571886250539675719518620921716385710645983359280497446858691646296249510794799492549861233071460275134439496878706013512970319564958677237466274263145751300077957200454981663840528187318377587076089323889924990204023224454755608616346291254414001082442276004190047573262446471429393615750652081286431417008884870819432504235845463573933930333590396697017124650813849409862358305365391224255920237242856278728359318190249725866706055226732323943583185522969011962014083869844287165718686142069658485365222027560957512261985954829506255584829671364872571465925685483366150549280912945928235179707627101387504633420576089015940982219115772291540223290949671759296889028871991898512302409313810247723864713008178309008403901036331112920665060423368935439049251399042670213615990413267647358601969126482413950883845742446632266339970499045134312612762089409115645890913856848917477986295892576279887447476014522875694996207279406692764608959946816405121306810584270261080966806670198855305993471947374952008679303376550280775093148982915754706971553987059232806584005064789115855298834825108553049008021598692407569361046702491047545838887521025150265338533912849613421516284783554667788771682389545806402859233911096995288393235417913433759878267805877673719296669459565987710691697896739647352882092186865597237708316157262163283992591519739317224656674749990845219245250460901245873548536619989562110807565894397432380657484521093895674867784873964918330865240924235239626742057189447015463286939027571973767328715324815564416837149390649651167217918478760644096892465159379690956363075687610274308404717197831126333285925802467075491245863440820015490803045149681347532446684261061318336968740885341213412492728291781013308410661511311319757221464843830828151656305649383682563089544990124265682431668163849172333769256321610597490061775169610003812541209544888331294692338413732049544328299670358308660022586657589223907177033146917217618791949823797094344598413859166850360491873320109709667645852423454603761660284728277896205303308595147224010165700122188596501097709977156275998598469534028052895495980208550602288512667785227398790142326345972674491021251311250105577154053975117548315549117890115230959314027189123645142385964533519088774783514088911429689372682058760182045661707423255600655116755815753944353074763152965584465506740558499650595989511122751217864563727876173204842925496033957833276313462246152490510859295339445467172204535986058951328004540100841566873905700503247534592436361187285110685303193219638176708798970893738346360514895648790084809408138976768080801267093585551982690870360965319742017790221782021136592699122472142949314728094873160358457239750481377415987064557949872390797786952472611272300596164077555494679796678232473742844965616392482851459405100372456005921139582635214937510563097467909605455737116808983742273659275093186248609676150486599144760911199126915968415155898371330148768456677622086383932934016515598785509211903190125731412139690812335247729064394142055847337578053862086289968888115749225902611240937129747136128669118786547698985824187622190152020519411971729892454473113044844279642489543631648941369301152691249424835080348426583254330131875279601210610741066137562728185131934176341981109397117860907029578166726674192155022261224639146639664074560791564275572668753939933058661147844870501381997175409039322703714455452256694283948897862683507876137169472084400433702638907948771461668356330356267798968156859565202918116804126433185351028148341520045929016940464158602432224315878303221590531181417473946571181812664827833612889055259598472313803604802823027349935676279812351985836042465444532989279351473065484480728190820968307216464676738667510454835625480973156975703692987940361934529068046070171559062939353086929102742371549089582841978634161196485862254611654080099927382648370559263900917691650339514476908993657834354044064728422903129208401404104056644267228656871198000586935682918622783768182643201999614413460434274666945757744371959679555416539907954277989944268525585450795492562187661733332306071209356867324039214674708414680641535060622359114251646283589062066207378002428770123858510465109499496099344103135821867737088844949685263500253655837008175298363860121139869866471659519294171900421283467968948171558478338000563107267441607212006026252021875265221110265617734133193372521805623812517925224306177449775132543966319171205759818142274734023873717256659709259828466491547135426356952409552510816691234255572876444050163304116238466176205000253815931408720724132015005420567331036326200555303693809919905752065851244983268630313200135563073316722764845985393619435883117162307570064570152811758181280788888096102730332180944104099198320966095121518879893126936938946857122986859961188964489454219784601921302767884291327196761154523654817196555134876580253036676294483839708696786404453476110724632322904565989547309564628189283315228564113120476488336452392944717638977395394751013650602696218250723627098072481210253646574735643522285528435140781822892196063694171372213519977073602901153293195934361442451935055941045873936021043867405395659772787075303213819052145427743431447618694064592709789077722794187966187433070837479104770279552060376069729688303903796352097455263969478348057156897550580457877795443311122410180526260848813228432368783884460048710576160660724902873667932935842191593929118381352083645489092924911741369506760566740118686694672674943031162291570772036196269036791127430819880786015379998280732940096422097304659475080091447348480275576017154539452988140749384870071607335587661325726864294992213390252427098330755300244932795956835171877740436353292086395092355125225190836531249663306846474426548240541759056630330054130385130350889832038375639347897544546685009601898777538002020348718724978370569828588191384025465425489707753713037997038961665520775044391299932378378257847632073377356025993125485941869538493250201228943905318373824767960050513186182732775299984635599276413022615515622689186226711760932614156966194721578984024598062070242060247665892082769549781977237694728305881705738618172490315225594584211097544201679692014134726524458933702163998875957342515509374830382231261719501677322959777610454398863088749653424226488428178320189456975439509771784702008609158098902921391037628495410097577331016112747264031674218995580878718427441581510936216493903461803513848278465732755009352332134325752767173239095411696852406335544626383284580641380940250807813064769722586162072666205838270136944244203631338691996503930607592122609662828980945799387479482078507478763493407972736276013078903886802488334023127417382522575660228197316944345194096884672646541516670437386424981255161607100316611463862909429407622746071973284181867844301739409197586849008435604641166565326129623847409963874976735616307671468356523080319597245646492402017576909558139085506126613149325818926607994060287932955497439611832753407057095387257210043624440463269920833800472868231777940630593404143160069139843818177815342344759166311130138472050671065898027599542801796669217633229940692174694401215800032828692180000855707744355269729631455409514675769364842057333774775227826100765152027347421143264170780324145859739271754924557951738719724948178261332190261551212853253316872700646369488255143006229522552055183543462310324792218701039170766885837567047978536809808303402616301645298041106524101695653249073022961532163758944764475219065116473426639400054648450599704373503091921512881757100222771312233440695990625119726946041256864940745768639989568848339647289217752417829937843507625762850609585457905850404068529831143886307414323703684378133868155288158697488643222228741933858665828872275091456465749368405194243146058331631873294414693958159693557743017610903247273429083479378982969313204482550439791020573984502010407156044048332041101708365788071686234263225469683645008944521584187982032336307660467939121163220187706034818356829978640146253699662620245420144039004225868724267275531218616856154337825575284466349225134417900876986874395149347427888127125336794555811754805185065475741799639915631127855290982301333523385976653028651918457685861474402013151830139373266052896133987093646458896097674505791214644353360334774135730541200271600746232851503966040751894267652493904764054516120330131851529161936999070160071168351959694330195269790080865306256746089207635636658943289256338825769782707357294984696009330750604317114594803851463950560901110421404113022419888081319595060525904068224770811020217141613674787446754489102214701623579695869265072349475382385469687923312928256840666676929339738688230895834724299226605307041941988624600487577269042027199989829919754008237297614723094012353911453749812048459277577552851309362788519863056656004107665506146224257305584434290931844515035866100008852101907608759901238592065403693232040223242390499853884584754968214174718353056343316512759807049955937924478109372798493186719018364329124187658028919681203234423532115532702386459592114618204271219160097766497337674776854887513122602559927196524153715405184015111277341939198303838246196873644567979418739780158125259310133512549330960503345719123056533000154632138352701379655355533434173412289508324968340614463771564167476896693347318966031619706678216347438132400656621424012986513054977399434995957895433080174530136628435376679515840171550815755661771772646937823105362830629778065693496493842862716612870982641112317352106600308519965200815135393135922975461298489166102815639836532360787357816493120516850514629568050730283109833407198167252338578911659373089089965698890327996266079781682119532209456389636912311907048551999027142012604999599244857058093036103219327070716368285907700853136346775763077833982001038041516050725452281871148918435165020852204156207111858941963419750619008893691052222050699208349771836254823678903543956563565167133112369756378197516078046173891719908622234608055629262038411291322331390611901577958095446223628905680065246124992566518036384509027096628840607689337437758902776288421303501699295355053586195396950307987867656750936898769331092541194395218426006194113323950659077933580438455052869703752720232253175791227736544607094121230570969013256622621671225950317953751591271123664842849255483023763742614576943663943126415895818943462584109784593983400411866664217231839690276550354828602582272707950942069417014562682499329033324033169452382254240146772195933546564400856315655411729461805970293677928906012927873549592189430891312920170403261885138658077768390758053675633276622997601340108666541955551032125033673031472270863290660833465232137566022834256188119054410441375856905600301150368066851183238140227156086820070856133436917962237634348688025714079511564796448600917771900076518534780803281218692416253710545760800372464998593619307454994582697539284711179492692595974586661968267719173907865935886868346670847626907534084276370377174875513255059681359965770659473405646366999382976726425642827286260914738427797155392182215679696017367556831747795154085460713882105871971429846015875828062906255045271682953737271754221010306371363665965875626187924887216975438236734598507735469156668143164491388224456330633349145282367798805956539290083270455213541164231937993519708690706896986944708190718784616153351377025390117717462557267708478506120673149659885653439711253897163795553101004592910793004485550820489989309660812531829732936046900795280268075473571214504266585307244315098470120884582606766972202954023491320413414637647889326513847806689591085280300114670983718417636921394568540253151165112709785551523873406844433410890343008753835919146597052804782397731445861037429209987191551942684795060515802183954169038974330644200214129163814539886524631680360032736347708133750257349616424966180180841332658309647052525330234030121996309682491474198547403932827228124910540416444922914628015964018593059771575125232411318693051464975530892303736124536182560050456051221753935476338323276008138115843331973841313955513730458519074614280535160046309034800682118334022407056006369390248689138435127021584431693404264196531841652371508604377380131989570313061846345739598370738007547785800797127997255705711105405884706564734080592667954463153788654865342655749465950606568726486801011348321257188684134698224071919320194165838726185004828533022497948826438125804163867854566076053418614713876463060313818626699832714439393728576056447493192124396499796556707783957360174557248969620526610657800955832550771036123153455744438498432389968378130820788823623479611527856523542738423510900663422890773973907268166850943582141030475947940016361449553357935168340653464465974650238594093425755876342531068756136276928934797436452627741529709033636407118887583860871557020587364623626532659439825012504561151251545786613243255912024356074798524401801087017368223585312737202481542273177979886167382739360657561728737086407813392168373498371213183349690480776206708782117526953555103910719405450972325272945762412454830911342504858704513816435363121375612583624452094316255848673656598962935346821574772397433733782104217462130281787455632903870694286564950274498189784101105362806450062508696334764490558172100997528548338114856359416038392420782008639662474811393067785947650709412367589621404416639303169594679450788143921087095431682795695106142324728783603169030364649775147379822607636254970837657612095864059351800043612350343452515995275646433302914294928168817826902684102069071103271617227516958903537671145288013643023970222107208448475235343187723516721201205410056486850064553178517888661832995095264206963611568401492907772535954338310864121856073077119954049911119094666509306271216772810888493106038060999399027068964794076854280835174165719990476036556795923030039915285130916960195017108155201412841719287056910362490801696212656207234684303455129993727522868081255203609207648431281532885533020288016147547565541779639467738600422167956646364464724928628419370661353166208095165617694405531754498687063069888744960628678968487502930460079259675098172020648236829352155947576899566006357972547439501875032750104028859070349902881947307967659667419885414523384076010384744186565481296014493818165520398514032523519904842321778860195534693553736529812814138721798260379106702506108199868799094892298209290272388510856277604190155285399041578391108502372572868338572437162467546367132382323051483993214404729744270730997303466952944073180469306638248910604257228520250939155579988234371771232265028066341323100631497921857980589407549805476543933408460983921310720509708856177228569278731684732109864476296338051601100209146456619115490003970604366819254503504564368226278891513140088873847149297820473206431934923796862542427520336684258155180985598006513985664116476721641841392095537194056883437645041995779050159780896833233487770138154130704544592575239063656539741546212077087454331072773421847175908569344893914211490898320222480471480208698735072489648545099927206934287861642538471559321693733602492407079263408251417022726467609855996722383109284932024410579308410799725263935340032911524550209409759742150461961193047961797306445911591481283414619111163554599075321807067747943081806524340155719128827859433455505433124256823549919007924735787224332592204199717093123139336775748629784448454674886705568368691268528413543217140040464602741377712263866299672734147887525825403060323111215880051863635877739357548308756469784641008951721484254668307335744540863228680586146437854725261296237004096954794586619130380333517319224353771565359952191084230317162012233460867242480846845766163180339243836297765311576320781678679740294111986095394518733506936293052792703776135302392993732509112714503185653160408847343154012850540235213625567709725851320461627112388679004634168605457377990573714980451548051145184205572529410381240516470415569357546146386620968773393995894953622087571777067092173874142783738895853870474617272009517687609014605037727269525915559785436106649169133564245525994743127479424214263506757698953953265881557686054251315411321324811790746302515487161864206839732533151512577966761444046673347945725737198932204705039533441566535827154730102652178916209014972406372301981737748056606403047298465887123880295391090149729298482361033287749822808943440387408774042408976309110031117472814313731354476968405353309027848435848209522565333346075872838920070459655854925261224450118644617390941539774527173861831561074304609765356401049890652707767322753942684073949805774871215135289041864562588936788101523569191973178372463901168581806080479920787254424401809444168350708295660160998574933083994820875859909185512116281362377247231742202921197574017466989801390576156944397106109948248927598530047226122489110894581146975642654613323830116016723087582908938356995961116745939567221044616179771863925496074543638171420762155419595546651508067164335793709720716126161085070829633116034236458815558898458974037591796255446465309546169417091641483022311014231360712596572801801578208061233705976558855839003561071058164603395275849319687571845494111893105788059922240663567823794942564548453239782121962697909084987177941785793685313481051187570081335033968903168971586693410901309156211127353212063589643428666872674916438176164214238844754915507102165080146116521662116257980617274595780025325415299820190351677030038273745597107439235548979141323623846042355499293747036950571694888071552199165075354417263594969301169170483396383392390910524376952776385242954158244435013758866482281234593222043509857070758910200461435683682631622893477341049814861259993088988297730025712248067895641623522686320956730581218169109279399991316491243370216332551070332872081212839487125138510308980277750823088187970455270890265202198000295782500402815640999909855247166404248889515328897017712316059352506960434538973644088604263598490736839269434021329749294339930815755623665718101850094489977975411762099929182405778918441566730371651173208123088780848109043636601406889521659982258553081429004553396792926886541937588740163042767630215099358644005751176721836654787415815790740513061815335500143826942713368756915893853783194954012720561610894460485588692682618653675430049766580230214467901681095068329250780839702517682741274154172297244226512792980072895079862292992019475147215448438568415693100421619729500499562228358335599997072197437296155460509697923822624081569902965161159750973238748628344013761622848131940484520057282668077343368040549365732731761508282783977180964121771234190985310279876353554792418466475463595503995282070641675576687317193782790606258345985661515365771607033061599024273795863949099162046650794890649413884314580267505933567238250792410518724588893064350337125235804190508191647413321852165544009394235205065215635568579190564804618478005957657853667010780842000624656652719005871271652720287897543101480688556888299734855987790563220276164621896686496934333713830468081323714964962376857773256342942769845666697352920270345612459184994657597383998320097131173749932312533636582192690613693249812841081047574557173690434165037878953152786899252335943109780101254694453217955417676428612639801588706528605369365469001610212289069915791878712210428993078295881674940490232733793352855330665539821552698429988422212217726718123427780393075416820456695985926845898716415927947763773365536115835634668291973409727464475496544462796132370781778080177684184298454560191304695703779667556460452026171982851877419239809618448372056748737814407174142233715049751234891227448979427849379792408863647195079177862386743623918319483640468300020398622166991839879742917850061083241465780351651427715501639648145799978347632924362998684387782848724863228598767703502775818775344525666938866530793661155868105155470598605946117153768412592144942560126429363275878526739300264728768674539201044822515835305020354176164508949120781415504081450043732686721043989338514376661707281342183560951755892864751216609188433120457662089734330171818274793499138607255317275788822921877521686602611467793703481781146305669464611685517745235750953658360726564968903109478322509329060452358649873470495010918283682695552023448030908005832730689348364030127967208253125944622506774637507168335114712777323217987635780917672014737751174049778890754932630375757964984449041806987960978975783674838007197231604772123390192738260988010120750097194815283560241778150760265800508145628458001520935328777500220516078708393872520654911043684910167570174154697548116849018048105702891662292315081564125632960132503213175564004503145792555024271238157598211093557261682538107751519179611581354087844686956408407513024130461830653795067366146711468711147075200168719835077898628335827352187904888163949327262941207133984812649507692080315956779243695650827757452474153940028736125447332702109461636788082760887062594517813444757144205676224819408842776962212737584105019496561099687506394560172846526141239705608428106842181811428025335613336379400480417233388788081013896877359214075611721831527913378348018264180458922564407914516386379936425455646654939376766408837335671644958061912840181708531636141391109859414276646591590801033015103731831084856441791749701149281502194459739853859205973152948314236499377439270554847294275431323093021744803958152300811803770911026009958226518124401668074015827765897784987543485710620000940203136082383621466188054389309520330698016947102067172159901740685988349817660242866877909938208912240031680962363866983586648187766709638953303328200980568360322690366077032543515363434969338709956042003355004607909688194321954086073619894122316250873768546374544419947123818954455183589464426361209524395360840250601208745027554945681111556166761067656768004952155989105812183308128685464189670164566811038687373374738845875228304459637011825851093316359295196432566868092627175566489857404541399418907328865626284429663537140241477502152933718357141296217027619750238530360843958206572822038126518649862660122479983331338655534882081117084075211557564763308185719191603680861934430543153622801218645918680968822110283215595456556525279513724335939667521124120001302834256688497827040605463774874727457827452923571588446304273241573078420501245812397916686514717540308001852112848442338584169125891817135007356133132298779612008256506005990617787143167488585241091192170468127510188037358050475280610034001904997315285219542325891322498081809709139454494540344568678834904609960710856025929777081429912363364332735213179928600459387663438657582836976378298931769932700047849587999632510282286354533607597517530933149053480643476630733069573412970603374326711621209685569028594679154565424611776879923600547533703302548545623841934069747348797756333100429316279250541199745499311029367644570891656852097599308923628104959653422019816375857437742154623738316167956693499602676185914796628259935414866075042303573645472726798864053585262659044189275170680719928896153683426811835244146450251452637400939099674625716690671317143007575779285847561161094452464475372803261269455767104338606055261874269377773047389964636376198526134800353688152695920579446118547323133643504118275836965550903227658517676719465911964115732139286812907059046791979637321985619866880999054233609102395088632038088386211627139743885735003734942719271273381842715080166398760386619209750687477978120803125317574224977959654704185925614347461629324705197159459095887362845514002988237298696014656941023030228224432403220690991529127374906479049690277715398926164171602180686338586037507552409793759863160962793814429708756964347347785841308636112344939794268492161647545280008892279563684524495862540779482637610423281375045253024046692227445774132894104258452032391549301996342595199141492496817566196934143624596498415368205647341528191396174279886786522182232807820134121471356208169774441808677953064052128375873925339202662873057859712321918873198837096881598539623876580757175526751229260089401689409382635915160494403591857070505342601977339704145695007014042356284585415100367365273074106570326191878056909525709724753303052500200858718299337416971927574540526360984110911414011970846544215978271136797247894359412543125397388365503009878357907162726877584679753459905066567317049354941425603140405916909680356355664727706689824939607750898217714960752318806540814733923886969700742458119307945799704642821279346583531590801279479700158692454667073241163957108722223520208395893755448299059075785206742321466603498091698960680242869366364717880389810367468065882691369006426101571630855350808240408811080304286026154457876562124601840304505090661418959775018189024261955057717623514802480351322662014250222477296906941805525820839191391231955859069471705908260612699407480548521657951571366905829479954552950388609850433811339896421442207313585543462921365454409658885387022027107498711095783348525310077564480384409435392673419742901099776965189225056830631112328010335284016899934904656993828552730140425082274983255227563271275090474291739828776123691900358677698901813733694737908492166830351224585599029716066980516864449299242033628808309592853491909066136775761829984117458794215496619941031551382321578931940302366978267824978271683360587546071006836511384790316240762452056272360085832244270643273407114641155660273014534287403072814341772300194994096604432090768471863944149609976286766108799315479470826523449483686976320566927861914529058346923180350920740294855429404491548065028181335394635365762688197932794812117641655370497721988421844211485331173486719211315218154412961292187944583572953786811214772850078872439658793351521377214481717136432771378085295015245824944086049717510956790647986851695361784415519026112633387767829208508132795816891625757254144368732637004140517916968872051348472294136706751686640706859153399597042370154465093234421348743640616774403606279258081078006383239160009198756759404908240377269567778960335097804201499215115092276302301745020672910338795965733572608459999865848461212316839586147845731772593132156303915779599345632697527811613199585721907535834862319396030466254224115545979659916246206107338485159809034832467138633064340351922726330360507078005205237851013028418744811924111054842490398893187880697404639623166588198968079992172875571754176213623035482363549446119392804813855096942819734847842653792346674411315173253870173478066700060952046191053221634597056903291818209889634184747597387538171583063703338497347760840871822500165070260603021073445719117180707751400418171110812697682167963704366651433427990818234979389456834454444991457989072822618051577108233717995884906922073522571016679390026742600206685021077311908516666743729798865070743409327720431469055255651994634504785612069405335496039418609841777698638727774834175907791701663534920527029907897811311086306280837511150677090526138030595927264516068938598828994059175881252366506064048055077676970488157197602899960469903096263761141153121936605872773826727545301677869975196281995431984918005340081574802406769058807663356414384480082925916830253087445120832350815087291979050799367967249781558792281425513911269050724981029682815475598852796804564268097694319566286761416051163338599457897422703127700950334907118320431312630995973806452306864204407260124745649916409327946079434438063855452198946119795727229799103326387643662003535270054841885080325258186870616235653776209529205952722303909983740522260458308633376540736117096755977848579721081473490706556215078632665138425407386736570991968533084342242498988081259369071611799539117992566099299064735669211811068057925642196078221206769320780921867789648783041017351526132469182208684227874179100477356571067335040127507707110143562144290181526333737042857601635866306570198440909548274317031175361297517259540341863985361315615676125884467485153934235328149160318008427412459008930858346837183846439686366831775009925942588345005021354506800919158633397409567892763660851735867031653411065699066976315779485950049526549745304713716983275976176006168283427409053065483806352943479203750678704499855852586628346106000543661877691424293623781888939322330559697800848786194163184582536515447104886397329440422372119108212845400250212237039903036508354043347540416481648692405350363788956131866026304078998061763820417196296384133648879879086641466920982178849216453258433208506690848505606805516294988079497297708285949494621360933495612037274372893627524563299203081986564492441961459618329864170489260661625706091733941509427178943196982894381451747847538036952872648883736745004565212327611458077776458804766184046238183534454676097396334012826183004598034124275161389753663999545799079105775465972293286621008840616947522829232010936721964823503221085054788658776305041227089428933349474460671160564681178442785019135792099763636339457224219066865942319545659321706481570215274593326890931167923903073563015668156365097161894707340829078340578605496113752962078637955861897975725143932939950338219713735462877032776681888458832451348514320184657564362547013015012738340211907068007514303830864547554444238658813832921038441135916236240345802444707842420815782149946707274309969574159166820176582973388118077851089195822392867479382861129114342734984104316251001799960632600451261439930281269749839085178407961232282998974041802934978196281249839570307571992552294875791207713009216761567922670877885498420940395511143513335902983838711259791073869343297670995611333864588311167047067436554386567430930835913504912636779766984992412621840517035598465314971083565928987193204744498260277572576794099765772491061154481692949666503889909714510366861420849021180498807146453277504626922710806574615749176340045555999019622178308341457774137556745609316438207201254451223833314626623193791475435942538296275803600703361220582822084842393323984537775068893546595608905385726128224280971092763685249773183954794665187961435026751609442945418053284044699637665809548583952552984826066487040540321426526624774967803754116175947650557248511498446260892192739996025939480542514597380734089659491438334600098355826471685064734837024185992251884914961362708120195061012890162607403155131294790018565365830209948683290783378963552950410134051247880596043879275427101099450358730506430651827723415007129633218924617006825839638621578740229139302893788777508246795588785527630187373332750815881122386131426534928871628704632576783349755573624402490643141164094073814751162180530872876020444280395136640061305294357638315813147167492631397554717842001392283056063260768273945853320886742501425546455493103397474001215399153141003777204111288394453174957793784548503779297573098124383220963469268917748274047689241368837379299666653065642930670113081456112165621910829691859360587698708078043317801841627579764243578423432475624277312194568635217228256459958182935168680899367363613400636400468679397541205483860183658885853470335705834559012117745452030681602234954873780950950159461384573131292261116854529339211116819776397748248879378725157808150175251932386363753933038750200944265034578570218597977158852444254778838190275689665615720499612580479464344550937703770626880752878555379905219240826005638653030013173009247900755001840980754351975062405262809181912363854026351763245152948881768199235828877682728564190333039742493643542043061756094515564660742492377880572719238283104452890173853018852981938947621784290664484082670844147763016702358987670154633849168452855913303935750704023991769247267649232759026396724351263421887738588441353231330292081115542427278525194323990158552732760041156180368995177986764514090349724106329461662271522545900827069410477127949775482312812421377988311585242595699092768018586497897520343124101179166420961130140998493846122410695973537850281381292589368626287508780483410800227214859972776862596295620094667708161962273991207615140940188007868776315045512462603864632847411397498480690030691725550382809982801079097691453829288986411718407447925123030171866988943468868206181596318857175006124088616319656541208420699170517108239506467167291564944110511904185340648325843997600931322148439376149299338280647822614273123224759310792401447940863669961900718231867017918845460872571836299495825791743471357284979050698303406399262549761428949416454275114950209522343923543077440708750661278243185083042304258163647832803273025798613925067029847763566365060745517914853231073958863336268920834236815099749189283339789262260026310142832803742043272060550877821082764946545774483077722302017757764548972889650677215116514512774825368679386172723216333184836838867436366057552241767639158807642457519044728384981562693993462665228940418577858844901594586252728229473469568985708890483975631277722271003528635795208021013743556257780600143259829328670236512156533927706025085506260158328160295922552543221236600301245619220516476229486635225208295830863232388855728261907325909354312245785693589565416804205656894634103143120955717615777784511284886770194778751811674850314840002118369691492305835627656348430119427411168564819549074989788138540672092465995130967921565372200540241002716695351533342540529499598582531894457211936104632333010919786755743611107462269282604189605076246279259562085125171467012231027309590265696213417040445192964207088331079551055481816734744777606923476141420176399632758545051619867487763682625367862813488806789926712338085031596243608640547909140223246464830702995008027742735081471378360915874578392500662760860660385518871367272814899565005900401546130237770973325558074242940930902561040378612195693425939110941085006974859353421041326240573873721958899604861439179495375691510540538106521289040848313968254220451291376562193482917645666199477891669804019991616124744650392137551710725359247338654737351920196335375144707550895659953079192020530846488208608814833605751124018421500056954647585304762409776747659212291435253824105917733240339788433695664660541664840595467638877961777498038092409377849951664577590163739878401298617066692877773366710754440811903869142677715507558412632087137226970510900479295705179069014490796112966718423288610421569962929095831197363766064728463647271264378587569276092986271354326821197959300437786991358539820481869192198776526537001323721277263558014989382194180687917840490403486858869333855623147246475618440880246471568184512907306112908394833272273776174013939013753303792654372617956322176256881052679321579659434122558129633631510818076293198519637274829370926425997611257508306015927278488439098166255520860906117606813880282364229438198165614524581109938620181404935909481439767704810661804866334205347798078604406793754958754357057265565604033624353239824675930447737778558876884989128072716546332232341298018624705909076350110454579111653998049606030989107255792529260655228618785568743290508799329914715541887958374645232248171910157179127118089500063521953647229193876609570236324255578778849794261992950243211395799045185060660527123735634902286462536058740898474577648764447518018602425247829586051304241832556024811672702419531917281812044277485115755693795659948583293025565906048041087944909532842498462276972269312169405692037147791081743535787103998031883610199136760068069050802972956329516781926630260563901352144189453170934039655123871384807814676096776951213625199954397999757570770984503254280789237631399410277804633584585296775340720825735939475017783714646223576548747728242681466673366512877034782508718380268827363946419103644106034748734499806353142972447968678481436896401440920468783518680618635972144956206034952312325858537716757349933838762144564353894374673877090374537557182313599539955825303484042421388921530180868311612821642321237351276770958140312243251074737885157098741193383800430447129195486761534685569341853438346380392203294115994344711846743325998089751696768008719448507873815302913893549843015070740842125682731113742139302303696607140158302750979102038570584038694631662710302870715644406392029821354479417690449902899915846723641719879371040798401445969011328531074166329873227134204575955610177112035866700061559415784594774074027073510968643997797542376417260887588013683174531966168478384204073981517640862422411623722123624356001074082023368833691183250170561310265998217582208038339224429487784294838621885964488316421588497683125526982155785529539552518909428006317034015268279610556320994273936294723397083690522149001058437086860156104484943068910533933775740733832863244261770940689912059832293900622199531647620509311200685921838815667842420513233962190384510422938642455890226676827610458797485319151407966189158161189190413973091729667135299947123447321522547511083764061651422747474187838318677276913407195489636336965009775003456368073036689884803844777357279094408036667783938038981380114510592212669892709362338157720762855921998483009849461458402270404768085494570751589387359160381466579878027488570818209732081549065111560878040208631103032209791471263008115422336226668139324708549776555614443248031013184474041077401855851250794131168427513796761567426057075577725639959800280397617199337388620057075676604272924535607037388273590863650379996873042135738681293133410915520223877482695558343071149817898817972060468618749047939721402262815537364920234799483020929474880775680980845910805397144447637386197801013897074970065508602763928581017519201543660667059694639669850972749298425556519202537123927926388880820784238514941038334190509455819200244409948311894317017625210297853350586494305774945410778752791406371239496731009882724703738325688932662043078139678598676122127319272559818259492365147356407517861226833305409992312178766474684016334592239740659214660117982155361869416308954387863216058527932179981480478474284131284132766548254534840508985670182739718037953708067088999773931723574638211570348919407267671465737620583902797768100985950792115297427512445369520381920218399918085757828325956784364383845106333255870315554246398114129672491376093721579856048533439134156554451343709971005968627993215329399384319449479499041369707283859089717374225545383939537765736774254089765203172600140746650719466567404397616677469288801542208765214473163264600113989894940562287700327910777397529291104412785437715936247633187970590691163977289421594084376072622295290092268357597284470034626131735177976054782344262715708520457403633975950936241465369897528924312893786928851682671754099215779853820756096819862241984025398585911772227795563235611203384831072040457987165039352832880675294283792567264569011457799896126243517624067046896585690170905616811287462673214113791088518649705080532519533589665928026962731125446017161065094015601494547170363895763558145417267162255314887480466441742232458529275476176215050510060401371359758481463532269208987361639226137803677220489473512002217349924551511782327242614850932862583300356921619812215626105405447918011026124168900229268547951479817446344617419834328760973038909668701012655306460604460056417550181233791215348376189820513075022648012699652531725706223366456842634616329412012766452927438072993038112811177343632964902979554298360756928591473616012219343645719323506775168587488049520359967272972769853645729974497078548221469896073002914320907893661868915756215709801957652683105791813690233109347512403318353614429650236136824751248402730248490674263042036885711182024011696195332048394331878411184249452660595544980140567077296865715937666833460175642659227977452954744471769197595650528298432463812447234604655892675202870907117629801899932888164684020284145195713750195739355988929480621293247232081266218942473101191647091563945495503774324029878418205030619723498888083675518212980269010649048430119592661091331388441450949146305491971032721645333595586647316455993619103926222947783888471402130200545919745528448942157353846742052030190066715563135144490767240956982592600874848527135581681454169999136733821104309581309752820354153525480140019097909366835543055861696430650837611560490943545527384932653426200724297209639867229335951383078900183016377117242240167962484051005548301809838576538916743643600961855003837744772500591533431584539929059388553664114781368297453419777400400438019690675985627225237266759823623273082247864482727199885572473267551558924060372043196743624650668177429855569972544389491929401690205331652428395858509597670352507184295104152667194925305475614356371795789790521235075506778551036496835910313021278253470418021311864944841564860629614954697008935677598928819635343522034542751231327295326976078867156161542479808803367304286579386467544141097546902546714381871389971847702867479487166305692526548324840084303303500118013269534453359736410849649908760513180964743106525762048541221300661991727907994591354473564135149945251729134888217815079450010553445226715232889930620854080939127479985107092540780902655014702151658297703200399066990624374035886364542571871764266214030776132260123264877644665487199976623151738442775988847968097014664229476164515835039603495188945786630028197507328097304742083790253235150087630360014910890405117169624270798502474950053494724841905580725224662826989780359737951882579762955348088302133976163297707866455699852490363184529839822192155959253610618931389428307242209156044420421673886111548364213172979484101183624494334862454169094570338923996589282749939753394650110669994075162725430837781932446596516175018566247041594989658315839046074262242140429872544785151207081889878335477915249073701912282101439774754668926335037674772033095118337313505807029207991799847397886815330884119177306246196710301285854559147851096647583437568678216592246106233281505841548518311126148979187242115309807388976203839392494143574329758933258073510673928332884571953016304546180124557529970499810646346741728129508715281260494831174080284923410402073981643983496854999471825415431492502892398239910670693168852355408159198317919395986731653619517914165400282385284530800632496033043650235668537661186703999655674125570621799473915064842739336639599813778527644572008876564059012431965526460610715971152029275446455575631522449262133575180061863739275964166102302256096407999180742782708511973912306070839955240032598543320896353930004704885812522429254911252478659309290546798507515537651089226137065508899311111631183841501954982048292377837336842833004206551201611757369815745448126654361095829678286709996742531191214803858852761215703934578482285605032736275438519643287994347253660288065157516955631062020692004963956761757984291386115222387375900481998865251389127164700327503895005878936311759121772190983098261844496949877931051290249786541589629755897912524048578499663196188234373439464894427220669673898064984097646965186718685760739122036675661770203782971913910779678969238471230670132141536917971429047657100121586368878384478591680191791664100197751869047187395553181073103933626123451097065535207839160120614927413696219942888342904144614646324990008307139074851781057935454041121456730139662724587969080089630175379002099759837817575112039762424120996344549521079060440199423900065646703369659180140533038249773815844175036377706848120744915499303281551271558305159844244366003713150057415125895233306075712607095867583009966811497948371487673638866560080543954443453826624474296836550222833967778429138570642339883348660206232299721677353721624967297965772044496732954735765940144092070444387817295270213662446173110299325172459732206565985530379819997909700791647916330429509100298088623760147649334622768896344151784887057495515140224857844746152150710311846359376281553940582916156603027466562764715538765489350990088693762631283097643272044477669372468052545666897107755694098548290337812185739740990061609587810535688059747285803393663250299943169645992852033498021096008896143698188780086986039528728583978812677080430172083882752785543719225196388629995607583931122055263923068693143135158044182982461772124373787148062474996321398223560924290112630989158150917193784070707049891802075565098033546869450917706736311452064063983086580895034098184313509894408819998762183379627215258084857344560543640225893772931322725591368422599228384196725432635304975479403865037447612215327631444357040935788757720772392597395520309005683955956955509122805236886675189855325166344952250183583667930489070579692545056401245748587687271038263791917747189496318330713937736814552725978840653434110446367315314203042197201298977569893230113716100241517683916744921188809333398019635847900225887847440078869738779398917618493832203848589009737112399319188624895147910295157705685708824094867171267909718235411516945916126999447592827908974413298692090347134017421194111376180060195182855580481950289431683907150236086552912755578380140197485294128553741529523087756370090322203102102798331701159940234220001374781154484684729582410954900234041148728880958245421756982219729772045991670225940811493524843451405837416382055886528944774131923568986173519413001586771624120573665105882414895970184345436242411313571369423876035169814645627230338714104337068149287541861619174993243541641258055902794021619798112033547416655317311986644973393543279085026482972464462005313712611500061314648674628317589405927914378377745629259617164806883980264482847121319222878139215240513832834518744499064254625661446315078268823056760695648784233601563658789996491406325239962510486706901810780935475907174303691670336555337061571567001860289210227500787834167913620613027591187658109311128456211482324264682963578369470076143625301825597917279813775117380168289697773889453027055829446584539434378355255543743281768517564749474417829531217049018818578308852968819837572464909478107908967024932974859013354070815307299835994414147413213102846846845726786835347631211887365018041781836547209139376027429333308279677753084998330742315261594949505917962268805813842893861453544878897351541746172830870549179961691385011604373612485492957247636282102272862695432303345391025037919725537763908398659193956450902209779078894005570989921972948334708888799003247262848920571298419258980912680160351401669255432391663486412920571446029101461846156901365597018103378300144139189182234157194947887982280371284427146804195805210389449293912805917944652956020756867371390145382947322054828921872130699571387673936083132319257428749206201472501002754913807638265470219469736281372481291606956976934628609703089568494204643594424961006632231879488320032352129534442183091388777582413500732207593525022722930044926772244919976504918046212156184660291714244673232902714608442704272802566534028311499859061964084378001884270891301121342212087600124615485483196600127321799849134745460939620570250890959038514077312784647740601378364774671486870138499096546333621002318859078778246031892619052223325488430543377152174935886728321512752470295278417493143008739332351269452121710478569448515412777398967274940282029690457703509361729136764673509339809744557482439550888166107540211587343303036077253673051810805072568345287055471526482795362867505070506900366768035585228759962426887899179876146852756692510025334989938598685127181949459023835334512105750125814249672274738115033685930759776860527409254157314672517000588146165463238283294510841980994049835076849311048129215968007497109010462833930145690471597178339148953802561967623767662705951065206694158732920100825784266464795520525069559149537974441383682332428722821643908942593100932604708203782907015083896137010851953033943790529336611022864419938268301684474733745166771561568289247972338630161160620410984055880275801118763612629779318745496092538583351110452086298183464593183325032788336314887574156752290052432188213858885788077094599662390119211805027232840572842647443677909403244480357142726503057395276682684104470332382388862190866860207417578011223609311786157519033514367544329368672960061061784525971070368587907957530445709137994134379724180685494919081541032822944149136518154935004930537982316106685779095607480509857091058578335906325572487124784739232367560859492427014946672022139761822788881490824906059256495461565190639231288216990733133678165457699668910007756895194053441762391403104115172880141804567733581643693923393683695294673854539870203412483264538777011238264990064556407644061749859014383014666076987218721288690724457289745798605207861067183526670306844575791959864175121651125626132127439640099931165752269121873223343131053090086139069339921225462579459808055999482384416708000690207993862831578082318860418556561025521354986689406839287877904594312996678239673427415838217689059384109244154527664890236512012012250201234244780253942916221235552559092659470216992992747397442792418887151861720324060569028982434730829249025508671066535701738715678310253174793308725307613652227443846428274852696429479444207716873369457673506372051921444755519680371894093956045706772409583468605837507458475140427090410848917825892150490730705964333019325412158007467786672263074123014672339143899883461737375909952953491398957571941851549249489823005303892848231216360823592798844324474428289100019400622420774852330272985647717089766775444879349786166486635084910497645419864325429751353536118145165441771270190669006632912831459091979398749609772650381762802707108433307655174597361430095691592930687156065132565202547608420431011869357035887962224906289458423549928699073613874344333371748503983943436780464592250489295230099992900774664338266533885905705349035637740828300857137435929592726392422210479835432962371758124393438645862317899585000394614694290803668789101168260049281811848051041720526989943103018129587456387731339863733512323939700065573296529269543462831150314738708073949445834520779698079457246063349963575212251430567380051877719568540432899079322845854751383265801967311387171609781924087793349237989809039662464623374552385692371983385928783301582643696637650971433597161205327302034393940488981994244075078543050353605530955431795680076358730940735934485559487201246723826240278220227609770440230573295875851360113621812133721894038984295639463813030120071136257096600195675457581861075329624978426944174227303590642105244653504064682011116290285590613502964720841836625043518396858323905554810104393908946450563251720972492605560528455291020384580262184391057123271963355297733093076777084330023899587827095901493155715520263657843023539033746253632669078209020379039964232837645371300714037069503889679832326561870116006859321611716518674155408403468542252728451274098021511840188030089542092650839160526365246732538264895608941629588850049342877785174586700558210199517128668216481120576679708604297450922710280147533395835962687662312652434727074361386379880745248957122593627311709216490063413180005262659651138473468918912321182352997910587952740064071074392648443292999681355404078343714556844689117679114611989692519621588773870815223312665132855432680455238958974144750652084391428783494148004673256709717262551532633532626551386945570731895771919300824279037235176687082395371115648960086607764488630548446866028051013575793110678796096037201645536257115490036332194926571038802922146467891440186559950281239597936330711500338389534844349293144602445174204610309579895663870777722471606615701465637574136075376460468938992079348908468448068070929762815387872862823586317699758296501256726626929375370055068758434745301140851563493256243002286917724144558703274348706872664174126458488153268285568999518675508692583146552365725763844312766232968474189162811188072765453007380934420201646023626128461617987694531602360660740386704551521846406448647834939462689670801022216145982282521544154927570164360529387343499870710578455390869317653532284855128372858959856761475454988749425448393201520395840779493304295638521213128615398836926370693592439597374699791174287438886209605910377147019219669554733907271780381353745792643141561713779583922458887788906065624596662260836800363726357266493162318678102778857204318564191110727547611492071145609195854541262823596426352603151226427955069307582579744277977160809338143679134679935856136768835884880439968299365768101942804316411795307411483005104412732959269513391252657080543798907541669019736643673469857531425015698755002055206205170045216908138657542695044350656823450821154871770085529869262191113117972402745086030717073326063344367535757620216317001076983108034363106167103189658887570564681859640606046062344408853223079338567231115562598721161398213445007864799650607151546541941757776591772776114768105055487959066168504252982161295106648496370737857778058980326719473383931291335419606114124272687579079554685409316716709710496848482638099801156201895289293694805199197916991289190528456528719763875438450974912861045496869603430825894774258668774267958124184942986054380102433316492810391688764919830255868334749777234621949002211782075144209002655343772040887470699177243700293145265707068790881612304535184680096343726010692588982385578435636984392356050882713009093737069672326911235764789074162492713572130641431768965608967123983601095703825645250788888637614393466160120431718138097436866902220258110714972570739138018793680221328653860599223068744808560275452795584581077512591360475665530465182656028712222284928106900348107271001736375528060068602872161537851245670995474016440000838705258905182263627833701222671641111625103158346854465115534957065516909087268134433115970607722126688714816942684375672620935989303860227892990445385923339068704176159158301487462489457701950089765523941648694556296164934228825784789418641486639144338854585628136486800455206513292883507130171911878555990062136354085273936441446508311320635995638593405984215778397770120444495822781370267424937901238139514902150762038699849880380618361250171257562253405858483947720192780101926341721449542964224628053130687619273362820533821460722190756592866362111541344875881732899904528970292542105600887356406248864957980068154652800107975801723599641913395861436875751449571125449351205323629427110672526881314702746142220940016604875445434051588766696606243315462019642267358667405613945359827935381577465560952757736543090214815439713380225030470003663178952492516292248869934765998503670398815167437326936753452984163095565592841302335831383646522329155981364881279848936871797952189602597170151478353325199971197361046124046289215601369431546959699420479660194529189746822299889837066843446085169892258139186706840108311650573786185257697362304039587852369925495428162686612676682527165855588759919962246526282297445256259841842702866936586026638564390272300932116282837336893625761127145108325831198563798716227666941718189521160812861288121444171370834712893262856897116635024429527374964865323936922975345585982538564870570396431864516800660196404109058465932841071518915035392972842760697592925256207118436778507406268144263735060298543595473250004956385188445810105787718910103826018557000212084389733794614737008993631378339236597043219810224616045836706434727490794524502511430780766986494701076456113363845470823555781951188647308990416467323589485534572759916489827729483155290506627146763067258017528653621678108831365083638883467765774148850665082304314148370675634539135056749525177330404998428297487919140787966691119476377749296240392594337035461902941454040818105796451295393436989652606593740572310648399456526213808564151482113634180265198889102209212042742719132383015191647838422581955899102742119753107235540342427838607012402579484388078716435323353922310351285166763636190120734915184566293969599596093977670357735081343929360330596599031150039077455663439307103557601170509057922358163450278977512519016552938417309374623450779715250793249595415353487996008202869084996167248853563994769697787458965315104900683148957403467482905897036239860031995207128118004365326114285790403856410480868269988313597900596167897819702359308953148310487649646393864802606831859782453079788587171787959900040599203328855910417565126333508010570191565584707396834867838042234049606136978839249459625256020746811783382957909664204621437183981344482726059503544646869011057756412946754528929627526661433705804477581667286784804382260116277254394675713781562502783215285798196371158634435240124384430066559662095043041967414051477354444746570219944380951396044881727884340437234301946007726901395832359393818958660101592355683599114656019991251751701060890636568206589614127001518098722985678860147042100893412616423400276213437623186503287766873228632793025321656687047456552664026165989953414532238957166503515228193904801000639783565704866291591303323024007127153426335755066323878342032308364807298913746789681606847660618799972103112918175072654208020153149305177585447136712245389314133587069451409638285102788360818853204069828787149876804663792541428982389446127568328137879695003513930788319313849540902714947425512490717296030943231606128448228385852688292153046081018113430093641519415087549735029628831003808193146100627387643572444811008183370387755274439614339747979206388971026584634459106815768048189286800195898765751349387218304303482540458418457553278514137172344326310146316938688170980453127887306993746448431863933447144235376455961034626690113046862188646409133415390545437262937038940482329869244077450333595909333034507821454138853415438020386620121748537758475711896859213078184916327987149013909244436333327654844492622065410483285600635188285179317337552877684437545383547911168735061029022846557836815354383908352299620485660748783071734753344613761436043852618005357950595894430838672568068682773083772189635938445881784777533396034855345526508322255249760833546373269921168979913587764675143381542796982190807823679965473244120132646960682319678347573878624718757196151720660060605921334893176191808615465301100022501227799675085868880130199071179847193475239724245649739295295731586022241449824374221972004674512942365851017115672716958828614354645777036034387044071819195606442704397941078649595765586233194355137141424758347288468792326857771165268861656220186818222627167335261152932715003170387477294114964225386221943821175837218912802605567065082920913728692374690786031985089894374385580881089733951446298766205050720315213868151390791002885165629762323074087490193367924670451614306367562593894141032659900439955244078141956572093626358949114171565252861920239513188686633092414965413055963422378645262922379975725868385479691761717810033386057970714810399025643533546916382326174195195023180973855922458459790429351520271546154819412582244661300491165808941649023487025294732959438408099164610116713632453623271625482145586849205247518719334711605476460050514781193909360025824583268337679813790640273111585502891708549292031335803169286054724862819909292561897695589512263304358150121960138151676010650794504256026771781971908195139467819171357724158825927669959043453226715421279843660897888240221528757409629555313621042657293820171685650177787298169740114180205504051302233820022097723155466361035179920291663333159149111932663125143893738350422743726563296781892283213465397183045847050652521039724816123322293823914339034069454808516831745018766059391351454260160421606773166890820027536029917111440489413266715686617445084507901899639927061124419726416594938890584970717655008605271525812688843916035246232119604510041958082808442323770142756652963511400899871497905113680352522008184286606882708778758557974038767350702645774795074312541286511689491684858119037040240721003456023207210544220192857750362508416344605417696080581976577740187673920720696946320254608420516362243609058914874455737669587237965701167199207054114234798391125401952025320180784927364758233560482922340179797469380737469655936666638122094809103326892240530570814078728702985766670859811282084321810893710877861250160432993792921665177765726311208653350708612782000430843540183929480310098449169642108082414082111615511751125189816858227594935480466402099856231059056088215075636280214545075437046809233830985652772768609586060365992148512533149963013160374343600909149149042743624463331718226069844036502692292552130384812707823680183964066777602940435749790673959967242779351462180570050805498687039870449638885520534873618327813542441607985328048199865276001442739920056213790706168624287891964780358954981147245524240411950783498544300660599603585250922061198197606815904227855083760936599984334157503394937869605322612889685137034387855830058429539002868739948408723939181820887016768395836396992181432271817680255760518663879950904792614904377407508927510753186928130816992437345995704618019487644450123094698938078665447245180935165730398667112142086948620662484244500288906145103560281087540665181274654502742125613990939678742721888941632958883485233949996052325048161101478747803869839185173701254382368771024996113130267039797126926142144312657192945891236124681185137218101597123124350575019416860124766241749286790671677689527365027438451690244438339097460104515786280133460741641921288021832288953234654180474806289181832091270463054218777291402905773625356173802219160515364832629885226968105153362185296500840366360161792597563525757474164679070160158915291802194778466969111750142446182642587127585167921641256182440127094122597715811550546243586213612731669522582866866314928307855257379749714792459579995232631353095539202766334395101907620031672869820660544722469323583371053369576496432547924488310948022715095835574296044821357080497019028006945886485709829007533081631080080473379426387505384950861752404046714672192461441029532108638264952495720724307812698973970303062753229623009206247565084478233505584748563113707743470908372467645586647627086270803116822295215541773495784884326462934024651293434635107040585429888333623584644273126360029942368124330272656489494313945155732380535380348672090749701446692942853747322874268063718046964702786902554449897613019270629567882747331268109322420724739781993782403863576701117999815088496939801868757579166201783194086908228471265333395476707282018942980890262332719361390765548361325997323799643538673023720383718525070933823876282184737541522607250392557720796778998461275612629395704776808626683277354728451611664090256917778446720931933210317789126368479054383443304326753372233801278974643967648982877462226892127284148530589824151399286373275054503701505999332788773604824059364935409045022899700406195847722726599939560111814764911323686177943879684492823576360526731384881234820200962548222512036733711444119135840993487256204378634499964295568843555294892896606474188211162542220979016644153846054756058859119523037762369359601379681822600339657097109790811297815521101865470181590092357645312752299931580615769101113467517394667810158182490976376630751579135765189634290465635637897358781992452566043614356042886385001363192543113679284829506738394951164581112912892945167304305683660385705356396688307990509920243197628662669847863089715922124165114746424727926121339346688548496585471446388199975357136742748196635988333114101589789110068654144746953876141517484529937706088116160296683749435812413207418101457606040229397838254907281628876347683017978466103922067166314860962317178862173469000655634578584234534162839197752750496615173019995928995654214542026995975109654793851516985056022408912400783666491960898731647872149934721947275835638530178428817104886845498740866013305053419879911531645088126545341472610845536899493707926955216911849125149446201366098740104164875605466500128891547838856397241617535980500919751460305606390197654164013646229465788333955341112902537069227122110341451845357530263138825232474534519191104475807110817690958641868573879360398656142319330701839259976305931442630941178883624372136316041393190320577288802094855252202548043235607648100799440751040210178168294799744912573725823759833420410883653269187043747932305130716566334182037177720278972471152053204936317151947842219396465805738989700566013793142749239881043612828957707413526158092122217220488048303639513711565377515347045956113056320590966990173219133599866702502984335890330876258583770439596961775566961275725955807213413516626859267195393056889089074833225546950780771483584923311818631996974621105710041335573971439366745194268996775170774689386747608972683214964102543733795946144554217669369175274761147387959172447172380815631865398892277816588206849231911220235156876702195591253778610915646295965322906181207029777045731129305941689852766371576327964129402993735106857854632936395741761515445350340796262422193372715218929457104127497102518678756668670695726998413598322664848351087251150812033802224399085299029393248176679990411620436674061020088708211535895462981082550330039572709469942524953947925122994802671739265328892603767440865207262738456865708395563942020686006933392161979384485037144552082463451593064685033407760049956079494314975920838046009399541192528262120372018293898047506219551755645271724978382013815263258201871046038826268717169611703760978065768315203373924225028021283262407214497111798688794359787298606666760139127069920883664480348162075887969951228834217210308499919498896877287067301718560235232752179988512078720011559588013116091675362854796182585872369634129198426569955135066181402542259146272593776535470253958733089176523475542016714384979844234536815169120692987937079287603119544741471446092341958911042497103937480082578494919084904227738202146676696116443819483874724447979567743936195544144684126327147932039464758853452559022233336775354166706658993888283544029386121022877490251219412220096724367221055555619901258837884473482400227150513394489708254477906964282961842464326741564487707877127481083369843723160045566119275009430165307008696338592998096953275598356356048101805569067032418981539715398415082489500061578850494304925182443905275788107329562883425326937182762190762372458857686794367519851548878797838571595397827268190565737621974599418602818677981177296743349813111313336879446776847020676888963370925264765851589753672242886268793153839750166064536803877725031734739729647751108003590560072764806670887589904893984350124058436242179010972992869128498752727661162074879183350917518994904583097532771689721597442841897822966225458344887192725618810113342303876890369999002755433699777098915917619424008508948388341940794752026105198206539860941718349241133587157923282758163798774816446293645175128257159702228348068767898735623662125280533979876092917912250039375875084060172334699270547380102108671020847494128809598511579308182552460837834363971367734344186554185764303023837483504074540016817395482764239300428347141734461420312212861532593332502151972654866511666505274638300200361850791480937959475830762678726344105215325577690399857133472418572316189544294853319818468821155213424284666126667584073271138447180876547308180688320983702326829911082470295270442213665659608889824837331435660889345666624435775991005172106125812065866660315276064256484805698889006165900699735375667041511585112150587545839382988795456904156876174471493549096304309004113708287368164790177674442180842929226247488527826486930769443615431251701173448615120931554168773826540734589828621851180510690052734580135074636090091632926985902784094457530901729281979226003584453819947634410603089504740834298450695780562410360967084467309613619326597844122761039251617777702277110471314751332336504606412586640385353060711603745598950596906992840474200283407023506215471198792182532167686480613354833305107127704803873294857729624522464378204700030068302998879915310575123515330880061231714396861497961073750019912502005533348562943414245711195759934857210886586534146514500276197507382931692565540785634253895753950353515313304632080592995675057212249324971239679698378098942900175538724995016440958208301917787087055027915656888519493620107228414642898967961644868008718145813289028032598778944326115431502966742221130559652701082664728394269956233674386561881171232145034697621344992138404031562909398288009117417656438690684040168243552564856727016678533568599172787476633071833613997652703210445306377380853189430515729925604156332360492186509502275773300059428044029587408877733460911108411335913929265078329982756359726290488427854730095122022689526432023952847612526915288065357981284278569336983299958972928957598164324679546769752716464369285509251257892560952463836176316766481475876562546505506750077680124067225752408618340640250464944211320570634525815347058906227354114663009845218610348207317722190625884843766159443964804747079138762975273619961945388379429962917281287816306445967148082832977938716355360761024041832343359159380534975186554133426316377313976000219422583834415467945763509299832348237650178680265946378887922546781456699633053764374086866264741322945246355584463481908295547221621500228911627165435892840859338891159052399606336479362353465793433833171991092061684166104144578471390612693749664365840677421684037906888772492842894790880910291148909540091375711385811785877279607046608617385119524593228134662716270589195226142453807533796821007968193312448948595632643046548183906758453916117150239307242270226405532177537476704374718578800847758740378827297942390967959770416854271253724591163037266684106286089045432443224413163380729785312997658790401400709095710911838373371854396887281567153050355328697652408955887993208592289139818885947424990984937647910988864380849526214768753095483989243863128208590993879200117085405659016324263761516470886924203951878033813846899102519477708130597584424659251096946187323362071242126096379582816669933351421924914472071738328215421458515089937134448464276031874624583664710049499366293543236153884910193001063197077193230986919942901693395981320812160854698825181868501155607910033120563249980916818030345849846682677206046579528909902558894366627260795589635950206984599679464664936024825216553316085072160712107268917358673432761243770301000869211024611637138202846889486700152185702746291727470010785405416204336847462645956113240595577679578768781683161673770477364999065149707518452951611842381836593085574268574853535096522060069694929900527375124066987885281732082014258059329014125557607204526898099426129599010043683196595937699931432961203364276605745327865144998527504370661031521425647888951572746067589154363311712842533690550587885853017062288275217151163979391465954066434780717851476856476807882628502165063992453351391407117599963706617414282356241288627410521695430709110593609939884515880622927679527492989106569790474540024109374164158768662992008951701015302516134525640486769248598053144686955258868954349134001108864181252210276787420381581777362603963337464869223804454491188887839069879548543891055863075360127024753090607975655294777948733865706410757098280824705877903816293489104998545639900097914155685766751764036161809430676751180017897796033055288952444885990196030479482155163026563935042708059882260299295774488279576368727016356644471683918714664977643681398654379373784621430949628135510821300890584401943956203107509333713088322319561465555389889705916116487354961555393918204532216057194175286730800202494139556276099995402511339251601400845987769133464672722609138681004248943807389408904819136449410582413995110881630596666130181309526938354211929639393270459188391233674224917820126772106192834178789609156079851383476851593306877440754713392316693144349236627111290789714493680073525792459881838575370219277050322935868601054917684234016794665558978460765398698222676237111407056361261713481150990635443027945406954349841456498604719837007851296109954853738687351408873109023743784579940282905713624282796032161213797180506536398618978109863796948345633330819422924307588383674386779521048528552468939147474541936094327910707369242397947186679132007908898852335381100433286655703383056392011058645480888086619875732561291961173659859322247893501934728126080980496808581573237783272508326942053577682367257527506437521322196574648592203976170857824779592754899306086098579241254656060993597207838590025675870872947548511881181732153049783321345478279255428126083986324944866298894427937843338560764941681328626159148841225670271636692484822927274066312271336156828596366435016875434057546888825335147928173102794096898142203743629041970557868113704309191083337006830461938490255169877567906401899989600445388570025202595096397134537314005563560259367642566078465821718183781548275104627889928706507437111928044895967670819540928313929164395615595065802566957718556462816448287082815083807766401289560096017688289952315302732252923859826323067049820733379129406755430831173030545171548405161569168068390650383497012495746991430501578188259084127399103416437370880771810829664237385033339618308397868300438102898378500235145497456024154752894352282811902641845492937947114543239795842182886843757894925583258257432709823479698530835972984612157811578095588675386347592341836056827374098237977858134122667278404668319439490384966158736940941595876256882298230879704204265843271241730426120463138200921562015731788425997709922966040578798138639520103209303180367073582897181936444814366812389483235721411465373825804787260743763780335156837287889492143313621253838774725271719517779598932902454939423116517203075282515561519754525467325517762721695991485333685558725968825790733144161288823976880647788213005389186671357593177932756835962656674719463561341831149157578645751433303596453445020926361127575842242105359290611479471442848453830488599903107487516196542517971263619148426622003649600345337700330208933833242029694288643983027925418953102787382526755547964466054961627080664034462922988806078426911265734211409223600947921720112464726152358934041849796292907048229991034032256312114284967396778351539898658548512720659826915228485345568431191623656204098259724056547983623366584610336167912428866549673437669146401024515660283942988628441555158116702856137283207578437910030252820691872737287261928688414388447919555093548818926048839506532986573024750982260910753390865195439660142254636276193023603617372887071402126459004175516854852195380974291072309414562293114885820234340124390915812640262233426155410050594079502688815831485000313768727203127882105717968705576209445474409636367867861912163450696495745258831600672957735007303224843471454866251135816920245060593861227817931838988625860871906633333928629875603765720595607479548777550674720478540348651098276478747434627170888407524000500279930536883692523073901668184335822543709175598678867780260509987602359504844324341129966785735263078816975857129691649158803597467399475611690298563675622863133070397694534520490755185055161652399351603576668428310561822492003730784693970295496486136150011438919125976700384518796652461097819400918067114123489000778588775664568494050295419936913196952754774822660259231898270489157608882019084869822250404687821799075220011074513867533360242394368532057490535064636915921973119559561015225600548589834051067317797506480713560457600754386443979723316327315951677417212283428782811461609608594812155382851113880211852527800176889773308341921612018601568329805859099035592001724871192659079402423579693654267313938491469681459175900784537242787692736417276732383789709672187387722417198940364735791771804047021435150873364513611093340577649895867982174667561014026227150636317229205229346512766584852028853472159486898421682874536274458075061451050919132344472249759956816740758131144235798752836549491563258162085710486232458456978831180995450015755037646270468058168633695718958547101432461469497003734065266287980422321408227975593111322914838126380385466045607999262113057011928143348424444636110425706948298082957396075562643799101582258872819533633574207619037337796360377334813635733071091945837974356492296680503663958243859671810363210744818793013108988457749337766378070428898440872678838117556168164518035296020794054431169154742200275396907427261545723789901951024448208534120417471321897653123514659322705968269517336040851772019637272672971868001548586383726948486194544941109707944174345637924491440236130491872966861169127537503407194685068308547928913944635394663838978108302402036451171009293388649742417060208029256348686234065455668168792325222322725852462393706780398215695443393266365508393447648271492908043956460764774043621926559619444488766957034053276241511617885146664781245058424390186056781128934181630087040799774542883119405089886207795047209324736915461590380989651888150472383995274366898485224381635637862899853862913323701338432945172266710305723781465811118607209984165826133185096317870026400324083025972521607762412550589312084711808163809992116533438595412965308153823970246273680947709521064833838943485582583820581263957193307152179109637215570712558787550123864858678687571494158748166685662786184053883690759122846335031765283387185580352479434836667236446430705924284636289580932242686437254286908922543855877270065615225559656982105684849610514019458332746108864734514760891550757616068568971653297273554765378770636306685528394863492906091270312207282272499572915787088471708113822611986181843842792006098109388090280006523914140336845654752220398097685258125566124314282297325080463904599482487505930316715836646794577397061433220085026599247678767395644695564981792654942072066381770734145766181768628432621658036623197485098804803022030055137603877554820051962591975341439093890348699359995348752004167864178179077159314469479630254981574077297849527193769556538859896963305448889705313793369647202223955994592637163695579488750309624246164632698126884425033123897355345351284638676383257389608341666844701744386345953776518173941660912933934292802397757408631048533175328053823772083198004432812295526562407385070981441053424710565029783636477784403508270586926093186805705988153955668081052796607677077889522981884845035813287393936854971656482165399522603757581318147918715108952730628518754607051830604967743508998035909227085974156377284152512162341246721104855381474054378628020686517355798446937040384226676323551674787456745014968706619730707082807588488457830755077353288296568076334931562632311246995510540863994780163386299997637272443498549880892692412081223004777240227138535982089682376501790368223593256916592133882958792215166216113843647583506476054962773051041213779013980476397571961562621945409328849126212545610898505210533852940852496838453876832125477859435834370003464905508215494762321762174999352308438227554257918755612195475778820397837891965475219536766114232959915566581598702650561525153478565237227212374330169910242045155278437672173543089885664387006050514688222443958704097454094262027748901897568523861485897673287063062595448492216483751432623006151700005407465064067089573924519617448706444551858489381957137415912402876673038120898280199802796507463496226235979814314526560494854364521786354237601527737967075919262576341133181661931431203999105392006249830714731866447864024336395027791554748080233731027512262606770617225115209858359208105837841675535548466004357826064530604808363819981534079508862751504822228797037317133186213507973150348109368791676614989394886278510848527275119034947032870534960793276536795107884909281211967038516316245915668572873369610854496527836370767081346170012359067271714360774450026942470888210794684926148291258731071040163239161226311907346874287183678515607450629070420539181899894907299886363220719070864226195573282622458145494430777724796201119427388769376304393594390700152505774931852540554352349974816395776644449965755690719082949577805937089058197003205954596665766818448156706385203909122873901735190244074600846861966086889181564782607254138583285626762311598875211572326551513090255975562330682641443038376497839695259264520392806783147545593238032776181654990956478230468008667346150694679755480717435324700423089655308591948106601226568908405477918786418100496711229790152160437408735397487298090361873216276973701748717889458169599793844629518150624499659424584631955944714369403158292605017924194858569308731748472513410044187519369571586959969523439077312294552003029364491732093145664492040911096670018704635586455235339783464092062903779190998693957633573576788198809766161354609742471653453174644810812268926179332558248905767294649188536351469882468685833601837290442012045453501911582398049564923986202150599657448296964431057730382801945268221615594991329064466634664453241143806586165422183508723912871713723183140251802927589591158291305421538234365440377727616591107570611610747540073765075886018037868982995272491820678450914475982566980623703993080706469809892670070412722166757258627367718667356222727592736594139894652599145277899798024901805377659387759105547212458992429690242232453736126294241375645245718183322273695966230471811761159753892154873587686404028877632493264840578180149222370285075174530462235407867749014515409309753303944483604826410457981404635032497966620618201070172524317867807328224048247597772912475363941278870013502247629909314382107537830803940834202404043414435817835752672358281313465984812064914350067706803673966249820967405061584056804681849723190203005344571422789809568240929698810320699938061399778403214275717564606239458573407528704595009262137093191628562944307925824279227140612853803546316384420925135313586197370288577181472620629144848391294065633293220052876907111758101261090601300667928845777492235582448083017512972018546670701624340064753595583872622569263911037499089750956679678442432862177876519117807322816887706078697741187049521025504592949820560194149952513385602920125673350732497332682706477281332053480893563463588509328561810660082610835841946127227825077357799749126362707264521036097110470730451097394192110697927699209060038218686231235132706269871331173156333010418987944978205748840160737765454184312838821977991383424340127761268879651151139236853584807173289304769411106548790653527942880894396806461806583631664984224192430266672523670224121294218140373634662651894006809671560314894130168438067816188500998831357723101181816023287410405153630415810392352555556644330951792312613455577728426132241142254791100928188085455925000359943720772204132626586175261476266738847572274607264822665337288135918904649243819558846230017103518192359038690223390759849837938263698491861455321124714891206921254950644937956616246868558255334923617691068014147590514326639244761396441408355277327283926264892558131729073692571982884257150450465286834895117757592542542839258814788246880317069450551314545091370248674135080136488158964524361697797875762319772936927907503332496643189130206530707046083741275525389684180304269778029617619565982829483258002648234738773898007118911663784462268638850102180177012522346854629960516337986049927215207497166137607498679575181566984932061656801566487802263067004192583506956694056008037643566625699530869475326065821104276486268729130511452631542003991077363161377985735161594499167865124183661440973742406099661345942818946713257474423974383780978793315020286455977103813277120431134423230051333433283129942172368456830971587611327839077320099627254250641231483754561838338306201638255527664742422285469413886038969919292046463453223662250697668852112549124739811779125705858812228815391963226143244945472791261443822088191087630276144396895637070692578991358778117075710253428507343470900970316359678055957861794733761416997610927816873120390054481862360506561906117985423695893732227540983114452543400089600181203039399822109475400069536326827728660119573979370615664085006463591853468621770316426014188629990233784274562451900617117401860971209797204469239969470573893146254538027317021487932764898022846233964689615605437114648558261666856648874145885282700273300306292251403552045759657311834308627180312678931052806571806303979529445677297926405387523956144361904713544815196385903511096662332043962102014462791822633270032393853816870339539537535522435710776883780820290134230916254557743315079924882977694588100937445336177368321543700210876236735894838260255679729508834106926926564513068222250286672741816911563951636704754393067146345374318571917905172381323710544767919438911507337161995225838281050195790597379435089565342920775539573480887439454753001509392813036427254044204527625912693413488616964230464027425011376487521136016372548337857561290328066658509540547062174405048551949023885891313892064900403777634568633910500552025252747685291801512939895869385597359512457221156939883222125237436244649982532170022407706733846595199602722940878117236764017296598854499534970050811434208614703316109320824180508357388462222226276219614063711284825424212460009079655620620340999396271830797659000033428527344543997736342276088976491817821645556170106631119967745548093844451135057796312814721011105961982932958053917522837705321484058618315973565737393890136759955353657624881426360594446007190249041391466205398069868458877718835608254855371720031374199266712045782676181879349892724817189471429439395301239753489134732989922447998244295540093927047452127302661148949232615088784876857209356228875160835086041318703362546933679915656924144752538583802435116034137726890956302468961047525826766170620825651049152535998933213330524796054353053318791035083834496202459926675949378138444088569601391143320879006234886443136618864604116585431079924270534922954987686683212076125553140244165587887031993561470753028311236585369701839225926867605478687379731154725467439546836873475115856573276193636569849167129744994963432361147900667777748650275735564248142701708542358442535031916589961046607193470157354152161488493374493991360715218225181839675197443554921031123591983283499558627769613065227515918480140186442069548670010550126950110234235396554348400661178492866495309946394655785972840987852283925986490130711784681449412981417209514807288898558415107524734847505614300629476788907438400345813828878013062331937263770343743026500840252424313001263056241444142672654829876016118858043752286977246034674679260120116987395684894259840469140642293745159612308868469193140171914786975578263198476393426930702127075123553559817176423640375049641969290593574601981870163927836877619812703715458404649604255185033167844088471959716619413853138904213033748098396312531102275846405951561201705489347091263863658710373040250971602498364162376652481062504453105669875650664812080266082325351374387490542040901850478624148620107868160443165630270648551972413272980295608690852014701467337199836567411971178678237100187366263314849200416151922436076807886358425547073333636367755738361867152296470101388503021640411687768608168721875230604751931131127578153052985698422115900404060429681010237217212668318488397461101503285881429770598968209164027010305171108928917688644719319839428926033467479084790344010420448953820603474532654444011446402930729396120082415582593463145032619636770869385332444197476142434114059503938360292211101033673376458148060983854892214887536791816143066367271900366073683146333623304879249698978645517106496801363078120133023071742840602866564527900165450697431425037845890405781549792869994443688979133058422494957773629177148284858279818858795407062076904970200047597940068731555885655472706279954754298999634065098058875471969679008275527718561267437317682721865500222765618213782726436886234969129209121000728743496517065289293360379736287326666568142414850458184639902891059559979724531076423061416521497434897215543830661475824491783125913575683780315056092890295663460122671040463419474596971588137733566229474453191749866758892559607953395002244756551659165003808005346541943611107738846066305754124891397351413807077567113709955572514085706572613789465156261589990231738276850858645331702342331892450382531591273056643322193883051359856033319031727990063007281899329971804170026682226151474190760820977676088645408070101070474868794511907948128645148756362442249640115941029853285677937879435673248176566526670107173286416524950516267716380988488229222773550085502751376516753430319496714938346275518990393471193788243214663399962334883134806948234545297191931194254215897740861103901721282738893258333175616554832947123414900906434406283318433095226576283639171583031526709368513829894964116185819257650898111820162610917170677208274003540790982769239986511298855157204533558281821540473878555128064918151656108230317735095441127069134402320860091098335231301442520224271548536320607989659073812693966148883505420846165323793984002636417851191246768042799741593956946919891889223194794160175488206991048348441128990603895666401802216402041696342798832716899770413099692576687659952615817327685506814668283621669263426573618075363356384130920852085329953709164635840759949195681595686573357513246438034807893147952778801993827690328538445410763250765513073216196517567199615996847395854046562445803423903993512107942268404129690031812437795040215810859167446272233439418182344276097374768160543857953996546601770715810613923547052112145539941812295220282876763653117343617771935610450410691467800496562787663831078314413932573918801658844723887006439130265863269545835542526451151324355893963684836289676173782070781150717729689179334349025389196516935286022815053430385127300604697757866595317557244074239622006628739809212933610767700787287527655978618582375730924124818442548934222885651364589701750504944591187545816334074850879750284027338583690315743285934435782252162716892789825280927805191340359351333902143589382350060104469196463514128156649961894686312951406975519518052719656141548984742605986241560070017159437865437921527886950657358443084706022960707714068131065207636642000173785890979816280516872598732369860739357207185070800926141847257825582583370803857170300382873092502070640008933202941796900300853533843977223960209037627253300151772422694381258005976177980607631844302166942621753668560404341289031401489518108508216516885425358907844653327347656113788837506442341852450757800500958442675353286027252236333878218903085513768466459160511398759678108280703817036788003418338122049421882258137300251247513479397884557932499640317155309946044223157911882444748538253726226181823027592505071222949885089980540312946479860964410479292219401643888215841519576247003853976792612106714475277401889413830004201079213254767151131558356765888926779767281949871694198411104360978246835470438931346236141583570718864974903200820143165067643071726347218985476760285720634285438998604607451972616308415152314153112135829255580256288985117856820832605394840335035363876025789472469537698218727828636095299009349088985420600534322704524010659169015091973540769466934405347407567940638233037777998822853095384142876072983786995487029629819315822334531994966531150138464134891247672157075061910603135283305018952641672941787192555165428438454565652292377165376897419441370535657706463958082790773385712809610423705576650998313744148170344185706387368880317374553801377323949043983890629648674215827659283489628775475171863512931887936712128997136625609914998892147434201600006160125463226343273035900883131996228082075529212132513959355243142236300045177968118881221072273201195985825337562870826402899010183674126707102655942583632436624056870723601073719242977157131144358401855624007227073612986551716598733242684460554932794592027115886684641226889484914146701478265050081953682346289474480398971057541840722069025268321024428736874472804706594181663185632969822125435733750191159320777179344036017589237544755032960881868812685471795607071929196535697039282500188886552052815999698976580900779074680633273053713706026169349915053027827617909496787941053997865558298479102361005603540334941455249684985213686717022424415121194209073563936412227367297501973424767806950446547957879793740052580452244552888092452641640817420403623831725335538256439556673310025871607037853410583055436702180495312077981641296322747271192476276618471145353356131224126043735332118220340944106437618034651677444485828966442628905731685520751338236595786203139662643730299377592866116190730824574142088543888426586281612558749375553761380581859485492269449182188366094600837973866756561871300121738294138086541832843318122652594430371227473320756351527230323239965720221515387020925496718669790512300125240250559865720601730990740185459250209243854281004068735399946972681311362891010755711172317591126571864729863606696900333205050801944972350317285245166722032667492726729539289042381271197537510553215609821123318446578225764122815633069133360045853672453340692336327320181858917577411632781386947794483989145254357293418411825704561098217978140240228962240398234304443575748625022834939762173192321280903866832720500434333012988445577932911487218710310576532784373046911289913465141788842595506221811682849001370897439376105448849716489851832879364428147095501745087164702444010821447827299767429598674979817757020396167260837017478229919353366000912958439011657686053521981285161188713026864044065018302033926260347991495800990001581196501605237554795641980359468518842968197105739777929642100833183327955709193531132370752005258453707994827290762964020162792384156476023458598906251451440063742716610760574569154987070492524078419327628224713994845681884563620050164923247924153303111031722013545659853358511888650271760503639619079725981939164948437916692770018883827072856723314227622448285665800261309911177809951925733066191964950522782949694836257288104760533059374975201780534456141087655609391530466576538325345866503653891267984062363754119291294357583832359212115830705029209047085557678876466586305329549694230058685007644139478914830082460588894516624254407122105837703072214669278035534375458571918342156982907613887627851814231678259413838719981942053274771282273486841544796926826532552327448412239266905587682846556505277262047304526668833240318197896200145007318957155168032452075937824903462997196961664723680595595412445248914339709430366216126296182762261355015752510646740568712811932867096759220562681206421376298549362950420657749328547154754852185651147309519808110409598762734502669214216018229554623443708016486093248401315347806239030643248091211059790920906749060933664212006112415561434292046863142387949952528139678135644282691572403653915906317794083813091220377543405020709103214873385091863127338245702058110992168057629827377079094113476664800206219501485945754789063712519717805558435017622570983829979044739370399244966074575191749645425265628736955109432512230260522010258887640133605416774404355640690958738325431423435478411512647649389922467380343135232272798187381257743364991382151897676265651223244902184343897375566088266919022241764610948425187430493393875024538485806777462259974425176209045998404232278589189574816656826113800401301068094259112513147309979759986258010700639713025902387245230997418419023772075586019344125824032369220565350246309531417882232886443939575666209347627214365651905208830695950048123590852814927782941439801699747067029163654732308518558847714269617404094630515316905572839366824245846360181875109460980683737817159361280805606683182691434378171677672636298770170306391669163656231681875761387482637390720341133774910788121068693421170192184129264805328859142912655791614298205752519603613213826492080344082647513223575535940899693194806811572000678768392321801404617214558516580327384960936404136949903213936244792285599975853389201623992998459846028039967489260477352883686014706693080234811547328216687872996979617006264311838960673784885957608201699163708626959998229000445984358858677836345169368083845687933243889018526704550068202185821120566519277659878180642403207541643019967270839351581181608050347672381293222640614550179563755648372558179637029801951907490659873589592359211769301021309804766509664931813283455324091917351501549832761625632777007590768578946891427205439064079935281558564695521055724683110381907706537103238267733131500071736132822206532841796926665048163746335305896554933959324521664100519535310342012151401029232169900143582442690784277479495631867002757671182723239846366235058288866682339023751799714332869514812251958647019134407796696264242313745040123353880470955262649104859186498218275061914208710463487343548912363344877511192969953544128550800528931030277953139593202202356599371241643864678513367259773623324596741803943101051871812157068248321192879185845773536713426542463271685015691131211776262592138199836078276439066411243736623036888600573643476592820220073062635834298962602672514994176211915470020389773024463618684828006468591739614946340375052960610606745387328323913485135967238762196168220589141334587121312979708722877742505571390006933924279687422820560435337484407285622216613087242885935557181468532126868164057239794605733651937974257487565576844074241007712764968281017868572806138800932915126404872231801460686264683799350088973820858988283221470136739460647551183079608876941139568670758087702200080273454622841560424157716835253377316620627834281666581092044589027983892203734693611892004487857384938092550240862456326313708572712275198414843376540208264058763254646990741306840936900589960442403931746838393078842047598438141386572675951421142411991039396794942209434088172284601384781453503053946391171051770312413355225708232157109619135708237087091454220798655508685643466457691298728985477989737095443963756970336987766473004362992296408455027332682069562963675103437075161837552750862427249734303060946481264435669612327129058981754361985774006984429651332582626500482245216507369483339249945441510870829607122753263279806473972268591544865377068652145634523228115147498222083933877161366447533132130397529426930095725185779393223465577465531780182682597554761820626872432588468943006343831665327475849117396510413766734356459474422548055512570673428691179105273381475615269153833896435676215158375365122657034693710684813904095489605426025288978559998551164559439577143869456480096694734446882753564482411895206042713712433673023551389385365144294305936727095828723679050346246207573736757004740235247194465660209439118809750083455618488433522577880049238627952163134210916222138235888455487183224535133546542269766608965032413810700947096851789252335916435817800853359063996543586886679888217373117585064430847569409322874042491051092072587105034865969640099311846041189936081476604375882376405430787923430265667069986482644191242575020511373210788087584791835111735664258952191826468758121937561721744517589486044947557047984050099703709211308952656914307046189703040206740212683939457789243280730460630148726971023903639319764947004691552142439289755253435939316918240402011391711895553065286303296009121901116549066874632217262461983841263857713395127503105229841788329739732045804942759709941777176276583597077526129184486211160084241511926134660632889283550981943394013998385122175546358821179343995036100175613025019191924986151792228917530575583714714583790573702229214894160804768687284580970586200177961395104981312190036245939334556603043597836007240583076535821462548159242576137798552570209688495059149177831615922485647582380291645525933102461517060347974637903699954878205707642341993633749585787871361117746540310657575100207563165415409280008184655899973152730378630438794059368768954250776981762775926815413519616388097692965698439497520187698799205257066139277457416476599483370915697647683308214895111046589179337195820855179603086829006031461989200161169803741485063351986486051173519769103332491993390530718408760160983946078491187118962765794528213815407739465703234267929426757392938670602512544501909011675574990088360278844902004822006440802001044482074255233250860371072867598682404289454315335276866287592305399206962628478289262390765032652246311301072154875849120165177724667861113552105004781587829312629048048180784486257617578212488943255483359313432046866436665215768113729785640009899872670750328656212288754373396913832836034759874084780679004606013698400292585554487698223201416749893173201725627484391380671592204281714059830464657786780723061739983621499441882005364414932766490408881682253143668790153135579760807928750243500240613444206941313280173573559996945230820997531803292068281588580880933025973497373486390862495297286090207600610278230249663585654054788587006976489403128352036192902854683200404936607746595014669389982763826294357719244127088874890647355346041947170643549206274931960199734246070337472186977462731993481687820396577699271966409391150533571151957841862413950843339377138166941584551590765239041365424175319007791688554562778538241206807402691800608051588661656239312379977444094086062651000605487538839538984152508477109378060553663381012170727957333763437904132850925327699737218532806645580077788667443485967161665668059320361528140654439053863592400858982867458138368313685826666534639972229415568292137215057017588857623323392488179348962404105395672867638935149078910748178629251532979768384766845558072789937402569245919751798091135285948891252370992017000599507908320143456862287159955309814509566828919733040789118347643739200544172434085207852845339021474710367684541600804187095661007305836074053583537858267110765569741586655181329801843289007933554913808556576811257849506958395250990248405545593623369491052559984179644409458645646816717306182351955875377704370880925814944581221583386811446004686770202283581506019197900543165224545370368440927905051264791161942450729027501346913366315363327463132947987722725345417352522377596197167508785378157213711420525574115459836561251426571532353397791786930338799771018300525327672981539957868007381507286586799147913176872030683159144303994632439983219307854128343506942797842326520884973842198479248068288498429278160546017786751265497601373477092983547961406862870646935237780465874980346306868697988372027268061078329633576734740623279536032619257335841990529513115376388603609825313637216576087981474400607962619450135157358584509673378416319307791985508675962532388094951493201585818376355179103229475612923054498383290479822603463429027577994767646365279944253390127871380194672971044595027218711567180358045875652461251203594863118033501656235423359980711345926173893344930250854897312808618435399164054602719523651565813682481923036194462051338521468507020053375194780140142296125799380039259944965019172149852852667058887305394885199160371480553605747575112610984020467729890371686788663546585763990863618186693980871526982789329326062624746593293241420799174224563599472240598708827967627394999417464879234469013298247419836309490334587753743241083664286371310620206478227975565415763955888389063648815454019396208556714463066538266952797137735886239981569181427364094610151557792711579840126180109846022966543733458548672856749509580122245924267430474728228419541933645123941426822163739988785569463582678143645730292018144425759161890986015121501999961925033889477191227929120379727316756802977182048212779749503918239335063549170752778965052887081920887898702759284311382547058318694111109900586311434360583381303971682843064640248885937331487921672088407610225516947545737498968953480405120698695734136403758248980835951500532266046443408460336582819329705888683850532142812173741723262116073751395866565907248073467795952255446120809341909701942911263788707027094190813420315193014688538587317412803842405056282298164762476873562588786019257348324131742140335044910867427887437417824861527740258060098460025420801822040755811848517014928947717620231637121665262077556199456236028823270841761869418222918304881449635141755023262441363978178187260783865448169027590615888271127134690527914415864434427746417024342940557786590088057624469559276694826989474381748839620029399138562826306389294419070523684889052841119911370008169658429347574921292109280273524519945339607288605248808250688510732631693985677009919934392390863620319820917604559019216864938467287801318845602140401425637791551566493801997661364808702315662903737847200217575899389007654652328350214910021266683596165869483640723557027185090820195777586922425989518040205391841629908433329937766551256566990034743377526364649191557165527582901433530769255564816574620779391852198692929073024317317980917725804850165860125368885653429249289465547740010070162352317501527337580087526624903394475811916280735963897722669426945359249960175412860338928562834897994005674066708961818911807214014271710980048806807943602306668791811328422192826155514888732700534025154684253303748602394259885866329540207456509314234815708236027970230224295488195553189423915184949560929329160833931367621942817962127521698605084351206278495346103863315699308487115144107244887282410015515723857399775363372063167832845842454640845321128606208095920260711457398813664943936222135148891422616267579069973272380041784316645832994125805010736920567118423329685980485326033373529905534879316777115455843018599326900097626032005450344280962598898525123700811797800882743665700155973375656287727985189523477820960186852843694144670072472026919302797530314152561151516813220660709215607089257943187247533782598710528585490493680074264637822934088265351825031359036577737488887476401400688652534490452508983117386058970071083604536309349106901946937242809360088061655958398831853736974405134492065277096054686002823679386590219891772142937026139368770985061503449907324518857518775559316563328413426120174715278179399688421046852765323082642700731326814044648951317133189797980997550254971515071985641919786874716356329824295427591084950872666002381926807254793811745113860017055036570079564660144828650466991721940508554590980442708969329649510135486673780430226691237768529296307592764200561069991072388543411168257132767521085941323632718900908828200499454300330925482165728946591237360257512234998667461690037940314927131953513363759691072871701745659024688905788858897637965136121177497148528266655254105717483724541957112599613690441206440901194990588535440269131903125299961754682918348373269241825094720875358759933531001942135955400031864162176439574115613329068665387644193427346696452918825945754237747833563782807400324107024309809742980856994862524401889359607431208039485195673024955215597576424088026185708173129540036567522288281731545947936204836253109812859330382281208886503073143927508168307415066985287171379752149759731780548279081395542157125596781374245190756420048066014290884950503316788439919299654545546132419434752098966175733194152472832636896533122526397600109420253053677947135628101260776281905634174226330867471068884781951540005581192530797203035011506240856136823709059475418350369300160650275985928207718350349622412911717901120742911223149818832783141055795338386287449679610541825271714629485472910865415800056088817060446970361684678042964489761815890189791093684417108032984751924223352427331492494766492148768113382009789572736264048862061253700500040316253463714203416920502663599982693827202465637888985657132099925532542503452053927010430556332698227977785137533830063327499563406647130869045211803653943860527811702814980010816219560875688012337500125342472161567307450676337431724579086423480407858146085766698405416694214795690738657013946634324339636555973202158787624505375173084586829281300299198612122005188865167890556839940324437426590139751773080072745068343447338126851539857500937042917431094397501276484949350478148088484789843547480508801805560889980522300762171374275206181526201107485252203839561623070182902701435246508045919440185533985709440343063703371566631893349221593332500280139426489118371008840576007394173161995890411555595992309814070198103989934730679622941993166080317514605164499233891670737160271215218563658891292453242053310450692958972049118799910065113859286032743274358346175327942687524181523136443694952446528532463919652745459052434971097667636258195205241884988851783283774776250113100901116407126414071184353393186835906064717671326366741851124556608926382355889622401299132932909403537532746764997627417997163007207286992487707148426136022106105391686982398483634699870327377012544431510202041651539067114946877356027584694415880399415583358666808484908019712817261893587339708972337924511361547834452057234567979777356733880724869499293500986425501998641001704449209528803874688792433059553569669855626405802658613814965760815667374220069255569163695708112695151820156880619372269552467703109587636129145723854611823900889830355628434721335026138518407117932222826463183926000269795297235045689934323036038176812695874275725693958613244897879421806415667099487992305628270333064682417665415558412660250097761468662564802044069007395014201179933536717203947521508360964827685639862290017285762319081050679164646381587817333210835447353719071869687882798685645955702491161613815240132376330305213479405391647438183100948707639266967037108812689457128771654203258853341922732993105219595898498594558240608289001034139089869612659709929441737082184348552572423789201925152195395673248782072790085431208714371329311179126422714105300047347707406285917595202765854858394160773219702459303789727745037936142905465392754979300039738687969847179395408488838521144954643956922534700366886302768177682643792679115654904290181633544177740140134929833661293126187839123730514563233829124009647673346743868872074304202806079520050583462278728134584189400898619910418497771191142087222563911709986531831968840972929100223865756520265184129408521804489380494476844885374777883103590938746439599955594890219162620431379356788106856364686492966247204294124534127511093054544535910021026891577545799495698193707449882086053381159340851232138434779302050748392981519491791773786905960923800926163199410249338533342221464713988822163248521317795848898417346708882299192125214360116457506602074589723104792603221454690772648714980878158462575622999368614508012448854657544053507508682835881146248269799648047213670775799228423121003146428417807495889175021158586631304589244233501214867048933838594037068542959572683431426412263662463387604505342706012931271003371691792234044258499229487844226642043773612451120535638460228377170352304776664998168696948586620823244047264387919390795848158645114244704868487575057721376291001878990694291750406931062963854571159772816907139962968855460080326480688812147956888996810556741718026994265301214836916669376807641089400393997043558961800284032264171580177296210685732211565105486983143571812927152874499034113632561745855372447675075421662352625307117272545070118999145490495245431710566418129885320722451349528724315379981258013715459502377565281039407425475286888721627180168790974470919867165018254246089562717826472803528135936492192115556835418903578012154084545409336199293693782770050731796233748943098000362763793050182905063922328599790644784874793214707525613494823201473869220138407031328749251668644651579100348568651572230170777025780610505549383809090033885655023018197698083165727642212269510105252591015516700200114499473968325318482979009331438650741906483885821742713757307455374624236599161680562673221832907753025457420025794681587365716326933003375112774715579078881365126089008605457153036174205650686800622202716746281267227800940215931699167673063690258504165906991350561694628711870606493354327057076180988481870193670348531289703700427435969710260868383984480463104685265354046189636014109774537499295132277883396002354947431848766075795108087608677400199104473412922925330804470294770751543680308801101166471796607626215976786997540834845215869133816679936615186702461823318985413159395178761240107690923177364228713271957385541880106416786882102650547039572254730677362162043006072888241258189567696617066856537073084453954866425716449059539213077159495534713028042410553513993477428509643380889145508339886154985940638648262409866852613537171258482484557588706542247338428456159916736998285807984681515299397175505656811590527078816755765431235864156739340124874116258944068519583461442384593304205475840886083178916073218104564110510849483148599655204446829621362913696663734355402533484183784071069716523058350172377788511291873891799207651989255462195186655599998629297306602744385177443828292816629473624035893950605717500715157336312076706542831142790510224100501001741601948802661714163987395253193840971968436225097149755690502926097737194384680448237626615954498307148897202026733352088897241807117652970885055497336744507358476902041818004774443834203864331466281505892410194371846269407783117298279596182307839753791295115038564547375891021312113593045728251019919981677923239559849241212002351588582855102068231312108381561665712958517313371585485168555292582092547158764926111165237396145255437638940665257845366082260308990407419923419396020177226344413661581010993165202149999931406977046862827255558931798278816710918170328751829453653789913219435305835838327265382015333746456897711925864470227567277475417589660591736256275150570160892370578803087189282920569819423622505305637473525189239936822460379547678770741277294317323769709559585058267962182933972307980072400986238270954214083465894654877629452191057333738761461986921856913909860275933656394296997428798239981741672683041799384009499438764469975052893889897474506375696178021923215799388824838979703777282742452489954678531357435649805187804421762204863366762195388693918106162716331502368351351747618966238365983415781606758926818028339531118285090310982108924028836092004471557172332100970835234379213944358860260215852365414994767222310737767810929440893894770805575277003803477381091565161396122312127486712208737426434510077581972406636631657925219722607143737267998134118260647646120109263030536445777692465982754773913434574279892716416601397320457089823908669191054960925211076392435896958539494579833327110405975034709219503132437149815466123376952706813323788916696760745822794138106596493197274867170639419414264179977140430912547555849241814484269023904444704669822371517945957997422822833408479137633988142995815254387144257384797589976815293306881406536104059092533515745526936555273014842634678171379950847392833808068529411001803417738416293765400181733339803067954896380773457520988853905446137219255357068415140627864953627791870219830757676805797624994617788193504965176122083261060471660133195327775648719201791996040037247452316479537478331852099323118432983248401267598163689121688992046968846163538915842037409166600542928541786316322515941184776535022139920805166983759841242622913875665137629639860754113607627434920418582008078294040220277317134409685261300444024755848063592711827961933666533252151389581018757522692006317431195401877667384484064427700414548696758435191822003148143766812671429376688213996753875949783868246417344091899418648524193806654646268332983393682639170409082365370516241754159543211650402532722990463393435061115672752118493106806934136666850229037824616272698034199378083930619334028885655975690241824678866284886669580383099270031585896941657563920049657734340792611577399065783495239372731523250242536531029922255110202488958789487168219315351177221742448365006548188784770701655238662326152640307212654531414657849059959045901912166118575791504628002058319558837073171021841460491051293186882764618397378732808213401837040946067830953428194164612833455140870213786376389388995467462758131011454876621032370331660525377077116014047777418898057075972453651630724843154563159340667783397133913318563552109543587006810467362102783093150423665835834187910048131748103570373012085481589873409578580125038635705337453069195342421237465884132559898929042855108339357869473017180710211949360557820150414577437115040282947741804673591738724571692022052125714531540841982050690142810046502460133356063091872773037084402931051791384878565482667691543268355310950067166004262693994619905566798841410458350542730804499745817676627939205645564739070301941363324863128295013012671120609171527036176522268504425684186279371622666378276489687416436942382668305953695563700505688548773819143094506300464041006073369798113962260702731304808820911604697042874856007244988907116517350941295500507996785409174271866939855494091249941776297471703541133492284135271248017528815515553930941807864273117361339207148489581488706183624452402756729983292612258463278164941692551749198142266645729409147439545618510898878512966967967000289583590720469193686395675862056162225034063907280312761510228287330126927953297264638901682451391183853900722175838454941874613744213146407101431162531727829952584044857225502395277895621882318576147957317653778222380643724571906688128020568161519229411555338485978768535223014871281327646451506291234794957287397414832378145330298622452873974760880146546493242634739921782590311310626869048459646395178485678577828917537459974782148975931005051031745901583152822513593866586281823771651643505994912171602851811980617504589014077115761975184282558962751250304292141359597502043005766428048594093832053669700386852988896453143628389671868899344077991379123540140335940516906653415711666213485570887535300038210898409396662746155477051547399032290765041610292133532596167877765016487191752855725136816924511317143283967924334668190517472932541868755913168637592654907499268687068083735158680675173613904786363367012607548536983474319261976301222415384320018357653838279376550860670321798043477759279153348176287477270257544208429641202574922147575292585362492327534926690238106850657545416626775930118877025627877081226114658836733572036320150701387505630160885118532148725411589148939820484051879388031901269615370102472339681996820776435163147524862519809150244834566202830033178215275599198493930906520715686681319969879356451726841052985005557822055177427019989560265068354224990289827492966045154674738371963383838509966336149881058404508152178555272950107385670031800737160323603908125964808146488891579690352943586914841979131028801174555611728735722868472447845851839999994619368851102784192577643334112617176670771516005060139162730546272458433392262850393285077622743502317339458307752315514938847841485957842408421125914298039163524119805359012769261884101285987370167756092252762502682262718527168842099938231608861966228379779138527229421865012224734021945481328813186897520019516755170865441032628033940123045921662910716467187934406151896053855612738820581161194344678558514523441148746390931038431866528288476270142455256123560998756890019652081231150878424289674976750294543083918011396860181366302044381924592676955789608513041092702002692989091447421911202204528888342773784811638699397246167989310715463129279594686615022753720326739241908925993474571164824985807370714948962247314314073702156510972977618599820610420906128555540811757927961889947307439393864415889274406818134727976549247785772113097421468786869607697111261576968540345995196474852657932536054669312202846141897530025834219510747807951810305448611066531489584904820230374670530242734940536526262874281855009739712562636445645280891860684847662234574625664228384680747756379136236222501203046885597142276938099736635960421185460047924917362099076439098705463091705640779847929260930526970642075197154099204076653758183166684284959364116396744414797416448478698447755686487742575392854939260919795026352024394224261539758293851561370482435617079062869238543340973771211347365956433349852823925542774666207196301895171833953280866020851244722012188451667275498047028864167712427079787966599685004479827413290379243971644645262921609492651786972001762919814639917958043004845197728429982985772298515541123376047200966070035753356948276950989005475183046699484097548104724357508578518403175520668978695552904454063833117975321738216840212099668193084664292790762799747545998690050527442409124660448193263395056207266224418713551546399812121633375911197273271552683938813780822199539737079207739617929858535813494518558606882855571926139548254502984322630707045750056870479724422204713933904035527310455155218754695338700756928585766552216722138154685216620653719964508241258259628357816730778861531898115731786511401156710852280710745824679203232120261039259174778454322405482407688452364520321085758736147296042204979438030410485893594713508427995022764701936450479598132731150968576412685579948147075118609862431136453751926310216173792563367236878844686794127597847605635171324704655347729017025355975251540551687444122502276846439627475581501762188744492523246535679076478872848409586977259720394209143385429878130608609282787091146048932915179177177400330123158891916097916516653313792318862804535575785786075263022517304686805981545261105203585630905139089444969027758937190667700978023536896511808186060796859042744080659528131614123159650039881507830225929572721257535435793854141415897537799028610886600663366553924751667435184116735795312899315837046575797988506135621914227433766963787252285574598371520190811851709936451306420597758911811078690635430352411378240906873559569741097055559912305040665723516683087599271717763029175251373515515418182396993544659522247595244481794218837512878981193355774108793119366351881274767265283916256902814366722463081606453536943147933477298931386593045909545057157086783226823179304498814269312865916299221107127425025632572029625603701417796948232846420826169451171613131439100296902258924581106288926027981222411097135224325788072355404703715268533532035778675356233537963269984156004784044575273857103868446111514170434606701961624554729133354365444615769915368286044917801368133754327966715542767626154107636979164847654139314461974318218182266865218787242178912883467076288305703537439605223925306317524417646793862383147525323628192008395026592353445763908099892807848602315336428560847026267719755616740042439555555735639212708381139204280173044757621183895929690245759952644532377630300542772969331675889126001450439630934323926348905077190127077656196035602002282073097377188586331996949907734284107770307449378681161754287753301116981845502985988972325577648879592534179223915747331661657559891351543744451158416436258622062770460738613147113276131769067793419841948008105973387948072790470966231961186027008625316104832654181557845846399633855122719838087671738907584057539712039855801194664513027046897560213236869277371070507032890390739429107955393351505126636476140060583063079890519515281053156533433925863167664645978462398072321933747069462600675490813882768259493997051210388010030120810626554241839277300256124928075191631784795985265367008328404881707001761895267080569293840936340386749013851524965033799375118498887784501916223799560304402247235809151881758972030077624070820221280170819806676381489133590026783965828945964266777092222967043508369293095835287331232615770247799516079269587251686825233952589073086898087194598776804615082432327981305288685667798591336789649239109072963930690282059351017063794859632302656976170818294217885467808522063601644414097707810328217725968454130997224295526991067965775369839090234445260153755930952053820803525213561048536760189292470145220269431594167566783339959090643507118355826887720337548342670563255764980612154305633097166260751362776687154040431523280469247615561732340161719089788844469015096581368332430409867911756818452659057893993510300058632238428467606370788520855261979044147207356741021996218600673493262987522590897371622976142021287574295150731716542488134686492177992644402516023385682846738263781942932886965702180141439338830585184639999078270473752696551137435380738330272969244198353164050288892181147404379749949256950103914971184632910186521397348435087803388751725721508054556997258679342579227943183293867172571520009333407917192510210550467532626469349398504442380362798667879646926293463352515411614962187848247805482143524532452909937906150135696716448249664481635943750464980648651467217759266600983778105147692370315241757619416222840108476338255752712002227131489977719249218018393119887408647627615351972733290971378401458150210250856460558475281452848865985353648879108433922577078686998069913064838351328638727673045514201603167949498487688703143454891201846278098061310093370927413323510655702462310118214127104403145656366531609003338998902828555068395446606323822449094603586282802433093492406372312567817463890554403045053435629399852800216080205458733459587422758950962029637639612757961114783609435824522001023764363195874004805857510070172635654050954925146799243911486657822487843950045866095873204467602353427034677117283542884902001504275423291391474368953088185543214422072296711036257190804994498371878701614179471943905722822450244228784706384147799431136886127074426203539776237168698512973994692406029152195842813859958818715841562018717430975097993503986814987397651941595696581536211734418599643401534878346689292766762078303248648337179797912906928110468798529899111523845469632190808871835282988877865438325089869202713507869750345430123613724682859638586452165868445327660422242048078331968946571026039799253772458033800465202147014980311233410312894197393620151205865743188799981045232543423110356207154216074767691608056979549840322794716965639084121580063764017666106814242412139685710752321822320717229122010527635636108194742844855225448309560628166471231699062104185652334038010040811010452929888045630997781784784249273143118850929559833523254958682049490427703839088839898748017902040650581259798145608482644825898135727610960866770268559868511012251895124672723344584428791044302998686252045108297905283952788220430503908864453476147316473001125386922440976147828290490526002580068454789598520574212007604606427650322101344307309838891551323380796611456345548231208565669770089496624867921548116111808644653077939822260593688499999459753695119324972181467726417331190425830337670902784663176706845981142193523417731658954136051430810200364844328288146819865518956594305525124237048987906270783493925350230078893561057985776632321133440884907615995217268747664276754386787322608931531155982410823706318954025639140410563026065388730238000148297629745368039772308759511950410853585876236415000574953947167228562137292209167684497614327978384477707657448560696641036567884368580941636374470560376649515531618861201003363682579114896631938371237930578862967863019478428565187266601361665520084332735934083712746303949657268780076360695513913227284469426597710766077262255485842359504544798386245084021223330741381145677431143103232870386779219472832858598715186955436803682139215743890031630934095686164675648296007893146121333890068150967698414538291712995897007206935201499561506756719022059542818582657235724891177560252989250535015376475632489281062321554436673175690186318760198562241954166375887892555836304916783715251293309924165231018515420992584498547671597616291699290502642321472726975674023895480086733450575899126087423355221741254421916109139496695462706398284341863961653508100656648109546908426353228400762582943579824295263329726681088711409139653436243672564402035216061765950739176289113680765652619394040554632171620148339670626230544618272067608674361901726689304359921935012141534482370474065427784050294241257995748449758005837592940850270446044838960651192693267284524212116566575652857226551123926896080906134795121783825218378631579958304010166214620605806694579884430821823620702225449650612477274604597406097931085457351051618497992352209968499548858051310320757976146579165530944548376246101729497680880545375230852936795820676786247147046657182836954932235399927595036668518370729071365050833008791132879882018847853902598658481261699823716128373771348288959896917992571892864779431089907105586972286503846405893554606958181877286139902522379163064332646866350905474235314093619834090881488401559739446554065645811209897651908043442297748131254744805831364834184884782398642848942369867071017879993445010134251007724180218076911278076552939115181987502640281910216825757565698682893202943092244362640627579745343038150584939789437824951613263056212447568432859306822729598740641712783527317007257434673231654147994706326817412902920080008240263943935588331689467955604048205280732105365979239192961836470016916667615265884640518111481444420447880067869262783280339158347952965670811867651898256466703629931737104592824339809905868803037311383973841331230104273669617009994367534126907535162526939789045896292743463166063738118552536627985004236275391609517815858657967199813565521120578391223755329421994342143912674687159487016750848929106408990990723037618646241817210100619783536818296732271057506948347532370328963695960972573093573639531561157335039709522714911214850060176844743000995401694789742517118690666000706285654950247682875399130387360602358293978155824724694572337050266963149223010632556468722301902942717026773530795393910715390906083419601448096980037927719143029726536633577658211713742318305122621583494740869107055714364090408606769794413341690756992970398520848820163018579235864820282918738575655131388057389048112530835840508388420091474278929677410872986558715766493758317337636250326317495912972671355248053323654737941463504121671133978540090059656440728383673252022661854792548523381993681613344714711067847509665629161345001796929999439395524591153100099875434738969281641495386356403751818137043334454206526034331003849984920642836417448266239371004746558710757193753955491752102220004507622797887625664623984364963620185455060052723749417929832142057079767837614405847912731330498069635690945563836715932967021937451650948666369587663938430171815271407732449306196975341575242370532947612598914499888199126678844387160619748809386770075729482813823085797354235192249443760488575234232839552762352569353295428263180661749658290914330460845081878777290818955594640531471951058177885698062411923296749609821190898330761743501404077733215739591943642471172203565114286479611789298877023528737353427479618587467275230757137952494816253448547141180533478301299000705767974820931486394167601840447413744198584859150917608908951561810050446677622425534210390174873678601069789053098202669515702167935323273180766216413535578764712927157468269792515410463750024179496853182219475276896202302048562097701918120157367180510183898453736064930527715421453865817775994359775620067422453935332368528167769613486767482518548930937968501211886730853600160028712455489908178069062526442215120594319400942453061928928972575513281359873762647877747282718766720642063311362732086773244447775434936484087432256160182610241156394614031047817243747385984129142586281617768223229035483645452869359249098146374398726601850769978838837905532683774430894851177541057283830339232336352303663895882515879142956266672006036900535420507314962327789029432618594694241112782368972503266268585806681879717514101671248771891092366175223225863785041904424116715493264661767810160159303829837703745120055922147664254700465125238839202064028534952137329241613285184897117029173035315308654831565202356976732849104281219097024183088367956768655312864070096572979741885426012639949153671090730168301105064064329496254620218746196327017446075658505637935335698849777838214780227718926619489857870999736624936424855923012222475589760735857677387728041220907056119661612152159335764956856639770869220926242616367468410155077294858571573769540571026168490637505241638806969833438471091774586544016930779431148118666612722171651230483775701068766544154450953531664436271923482436613008318098712995783850201817922259879743372310971240605427860694024760418855115963287855772656387695829773811393943193147456385442614429137522955829971146425368046380579554749435345521007546318599202800707718205580481079692647334474613151921620960977948824868750712710698364716234085834707415929471298928528386772758264927565793794209902138713129566457559420404602098670945025548048527410826697057401401891192691717563484761308367146038870920089653567366602826848161734378282106830393306477702129797011497576566219817548919359012127148159290681710148034433740549279847969790229662932424183155977091442241815138086205790474997794796849763039030741574179923580998190394857376365300731353496382501439925546623238718748717444344123551667581383789184337853867939442906715604288446892984766951780484898154989161202396036235476867617517794914393606396635318795059138833545449930641988448096104885102015588170735077396923543890423052664038895979566592995936950967808333506367502397503800683021537164643302815468766025386746107781926878662957416593993556087052004054023219839406958022546882916839339486953555076802117115972670740765340065497352797163272403618816978956406978604288744301147895289059932785907703670666234210135379008112627910024771766205246816659416760693503665705554498374980237037861084289388450200534783308036187941129812562242734716444962335105294648961834112157917704801417315038748652906645801240860593606939029112762888832011789029126710077068779303521474345932009998621755753368054056502591819131220291167955497976430136553557496217961253278600603600982436269762674879369964441482888557451438724826387997721710645824300317398686795127101928138900308407494903362692729186873396691358459501607391298770494923638096394911492605649732089722015032169443491668630375688442419777965364609443889360138851052005658761928007596395652168989081629672463219597379831034590053248656223162567861975592064152796759755753171235843713025290905479748426506026943771033901555074581321079094568048705777727010626162248191399736919138610179638566308232943723828520586339434361357743695477982514365740990098193680773047625891087423518191134313913588433195836193389502594399237813419714301880350767858890170946892240021094870775681486804719106045618257078405146677787905453622592120770504547972829239674490994394885903509258189138021204165194102539757047542492131266501242353268992217156096795443423503164065905193104774780898437656853829379892403100226666599825647275433418215829151032801306401583006896247848311838641114997783548440721790977719105318533901063636669943430598488615208969615217947578986018374580374213129769322596578433846079193616411843272000598628150997033565360576968010933120331572422001572648717568777575158706157550908913333025948513127665258666794864827474917959594916670506980227625356256464963929269733964624178013948802248052902878148079537071320909326732910315058960789166673748512070346740221587623460969065983442390989811929408247958402049800369312448668134698398170832745141250894266256636146283126110820991757066071747869524338094175685970683169253947950142945687711153711877676807391531739797310195243519237903233295183839650887827143573488879787577299400594419888714957320444767327262421935463450944719976417536439057160369625472614494942967858368728845456439578165860048461253994884348740732453136539099601319527806657118783929711428685182166430918922011740873228659310509011825219690529264318382220474167405087012044723625014492488168556495676973586944725071351283465513672627026862585903509986493894573709061012059548409020112365723195718821906137763125256730906493229334156419313122287227402721071328352409739101109816357977829484082668269754972104485301279732894580904272072006843356464464420768801784065685539837822286260168329381966773701838669093015560212911444997907524850216702315374694949998251301120709969222641029893385814478752856561838452222020371150094764459929380948559490094373961189240323962111405441142646954883171646207225354238044494333458239628152777712563851895606855735638337953795946685881861683500322219707364023454475892481464740551831546455322286477554543392515465529758387127642299947658378296505055389141578697516946632577161346210592904568018726711032706430497118675521842129097880344859802427637450218837490206594606091103526413563343213982695992672701473331294001239593059883507978084547277623556320461934799880462574320393529946114743971341151900550619138685281797098729418340059151085847025600065960358671601567378027062306889197864273265954624308204772594530886217081568417751150818801748241273205922461053517788325026124798360999649611705957724409825473822171502977767168105188489252817929307513622136056631093007799731257469168929643272568425334046642521331427013229090289616620742630972714267194757152949350239558715979809224379731162102432995595137208896726465754461966449673930675004143239927517394878009058552068708715181262230243480608267413926509022907218811615171821641107788654596640980477198578185758745851584873565373827775931111985413034015965734026154152278535835782506214190787575730678812323303720711788721202935189022652600812226547863467425844625734418685212126208319079068466475573206790461834570450711689514588951810255592866968495928385273416463486938441459241040423165084439277019048285314559322664921004905827956135502388807699374464677227293015297117722024074187815257916687257225706099069281847585113113356006532183676962493540619180630519970305986617928591033333959050416267186483100336570829605682082455378672769038125533370916925937817002178366203705027478606058120734460762744096059316932145991488082870829885174254494850731350416493001698185536121319336888777885206510053552511996353202522063449046934790765147131020064365551642820493927493455309193579435989496938963100527642289217736733966221923081078939770391444634589953644824274007550033026740248268747485165268526209341118905233977468516122495479765515138048421599535905862741114686929547517185680824156776700036038879337543468028144655070108540451836624152823151580934161803354947783063085617777099473552799659466624543975750697484803436456421528677658677930935509911366898085319489201941024511291223469853017646432121141568824228491105918367281208899617273810153743451824081838673012441652494203359763627982107343578712499828066171553326668365117114839252483478467147649735162205057570113075935788224869621925128398284601629732364030548782060660059712404340299537679369702322611170342943504949056728139538525321974212175582719173628193394382932289940930657506310535232767225588776841421604798622213713714400210261131704940129887276794785632957188076017288924516227672287583304393920027281951204407483856854454785339349795728142318517328102205560059040193758881512311517378915151804568098884104346039471020939420744181410850821652731985704057406548217800918451209023952922575687010418151275617411866570093263191626567813141457294544394599437704617601976383612737447000316359394336975551624973390306810198079459725889624235765704018502850922229310940446477362173904636431784783675870584323443870767560936354186290176485597122408999502443400168804069894047404716904383328898503075250542653244680632389767600549615459040175189323055865964422740557717491216955854965501500199637787258881308780278651332937680220653082303676093495866580057455968977240852436552809959575931688540454366965631829334560322723572144198068604892329929049546868179666166843912983851403900201702942807376348354914073333437509140676026488003510298294958034943529562928141503022770814367230884891429902597691390247715738159179365160642440980134678464010302149925182076676283569778243886184249991137579708195518316908652678315125788481207480051077042526952394038907677276212865524297772638581393373438955030301454246489385103447342051479731066178570653764593363251138914018717037584078953900213181654117404542995660062091860556148933725112722002237824636603885405440345311393551393795652908026186208494587049223594852194473067630740732636917868931862968002937946115492829921121058745751672341805294080124840883764498386389591562043346987592896868846802920866488593478572259337829418506292736612743273854103203670539860625454130445044172000350604419327779562783486270072962222863355490527507105752531535109573012382526807868721708208184610564608313739835957886969819219945309030581664347762531477172914473959241916609735396794809104782396046321420716399566665165175696515795852905774777973965682048084239316547077176964258463368444005363888498380348121418751311998045914727261675880072986869721644173937370390932412717739855651791241390411640286338907068806728177738302521119716732337688248388799518358667792673318357523634788896603317662205312928083985650823819757737250062254391685852326617994796428475010056905141378055094014550692819686783174022164113197737775788486308975718599517245634176180031843385102765383998596666501401780207472864702979186547890432973355224713849510536144012507636943150080340966054280399887945599386798296380521110229136222147150649638201597609711850889177334621258369786596541921150413405018160259991222633274194195789655590996623166751504361383951614573637422033788195185464718238876701514657432700323211693438713970157870701539588084258435114078290909426413051020111466541947364125351225927255664914860294603873891579590789534018974104777102587796864506603062921952259674733293495183454954656181537976470972486984949200924016124388115404927052916496876485589023480097511958907064163937975958568503445820222420440434964450582179306072697638313670053007470425382781998213596958445515308756247325053056549193926913356699064475610122079296546278358732895049442611851027865641345863607591262788509721261924966275511354256425939015415852181945857130112976727836955217258011116633132375763423603691308035569570899761487543773613242901234461344981121002166434691039875238563304953034676741405250716332054740781317908742281923825526284683192235135582093460544794026220856377638937493520049038001155472898313277407127891316541787342326781256406542169022389606925608414508945555059241184390329657719571567326093738503991780261983412283413396548871103377385243591464298597062265121500109967421940674755940958677095092013490394013780093073698285029315134432742087088806207558335617077949654856667757788186619746249450940926621893346999358334137496447898700348265381992941163610429314232867139819537514918780024928015564554944665471241637832593585087934603105886099390371625028917956644979161207124787520921996527892808949331952541507161888212768360802884006608103170590276024892264868841499468340187166055343383638331675596290477265220193941539472047833807920092620412680238816820781417684335200637090028496583080643975820135326055421185266052589692770829788364011459734806784672639448985912246724058792239639356039316129816788203371213953471970375892942871478134527890120353801447305400178299243628088417237436590789931704031030420661333865067548904704586955802979007637317208212332523196609014164333678996453973192640437468734635744843513808325964090540857765250693824149750703248317817604004241015142647252265321711162878170746434713235866822264527595465465715978178498229222664795566375059113688524735028317560573709837746317677278139373881048762771707692265193897326315247499611027374687310875977056723720683198297394858315266294271449669124948482599384084154702767820209694740564542142595389449073064218218033025923609338276433272663515762641555018016902636685534291761178726505825997446501275471264843185392197742727162196700115194692773497785119208927678371707898388434832736859120011106452929885414018747522059698715700822507494531967055693615807473718601667958489478651273391298024522334798234224109471836228359832396564829097118166380905021079867686459498425440054783542409081792453631818037726116904741944403343938342439831683502613094430527259645583939606212999606291425012047862146305839667544565400781055950910352650750021428233794812903856336058016041817786093676429003532192972059740997380436549248751773726714445508415345452403324308500465726215267480376115028935114001395246846676168352894617322547571517526808440606367617110461945674917621460503102179085993666332129814453349468565948543355051112312432632708859707092357031863078355070536693613192516447636652127840296387293432839158289953224903684774547627149938086138412822960046390661254947566717726761978184715715369266788174696373499595548848708963152550539203563610410788158851797555628697692812715825410867941724585762454066086270760936877578128968237740338196011393060711016304804189049464606730531284277515720066698771511694237954153220969227000683671184161594716472846134755612612043624436094325937035074015988805615149641696237939844804519104446233367530591342024057855348638351247838314500654971408491399305149261738410960539815278704832939473592677935651968778270488038878288434258470022920101366309792626933980811452778642283814432684249604569960942038810912218009595618232593310663175659476590943803753335027587743173964160182994162222294620631065954479977878601858907794650157824888189320721074571852173643129776553978686153471176449381292730519601673564706690898323154009528466543402795480430823429792285108649482727876195809744683692667823352820551398789910455978281544106537453495288270248685318507799094626847182330546415330081941550520266297824474185548384606823501962890404660636375439527128758594685959819364297428047241292845459118134849263094284204871389007906054417441640377802191983245809108168476662879077428683517862869966587828053214418910254679270245627108945680370211386073001336021363230407327814701541090907277119622200151621899081150737753880351833468425781600259784533356106839764511373693437588114782469684334177559538225519807640045278371458394233174471035853961847492798906065235362784674378218514249396957356762033065854519668518374607029644871190043558907847507049112483404099814706046762647005009425729634526639939439721294926002418518148442939334904647880452968456383031094069983242857518210957896277637132043410203860853283209872812036937656019963400340925758780941044023474585997566631999014832139582036643889610021500664374201015421499063113595262354069430209099466167316839330834971753984186115047258495472098355401933158039291038941139509285822698710368337447821649330425575278903815955836522609131390960860967228419319358590360290549438050200903642096889452756151825409141734258509994086855372143799188331841804873685227067336926311956114873267236134242921551286884925039203771143486473309661779841856626322118568886464998004905034138526313086202486288495205998200699274969665574612155917490099881929194692581105693312218055421367384442474900741268354337251030127006818518561525587626029788659112580758652597208671911190833360061138769006127034366297963900333935107366965110707031293797691549887829532742282956880529357480773380413742861210327501217731951826552985621356020079589357513627976512285672611842453837999891831565258920733858633278904060417468121142274119960205757479897326767097185612510985969265185936956077963401473136535281434626985668638743474201290101188579657699017889817272120056831523187221425142165272763396516702458510786361069451038451161276296565224234373226129889184426633233212464574503001560905484785508834561465153790570532958106047863661063411517248786792250479767890828958850547464099275437492548041649685141507635584096858575009284935284139466689907927391085293455270593828283823843037018529580756272221067933150682219917616949479776221929389789745141164807581840847663260667019427887028364846516790434674146405711264474666759559839130619895017043188348616027382296535468734834489405033967481114644248282769116385755153213750292439735139538374473162922743629140239343221826071208568353918408354015479938399987445328566695034609725970730420647910511884390056183494028298953089546133418312493170839584599517570332323126388119599176709279822966781148835372247749461173626548837267436242314908520846163129844104636311157470054335727131579980454620216058215464779128345816470040011374876597953805421992564125893662420334217735222286910593792465842749998042172656481683745952028494278901432745841509175098524280060721539447375286759950610648244826957274901553757197509890233296224784770689289479246810799911588526114486280509795040410383450163840419733079502752303961654880890910178865372074319091807126742490569979418283622661002047007983883453713879507401905887464099588709359728016315740225115953082653778954567219313875483139428505618575396180922118900174697886803306837350642348674503703047868893056727332951779958797408608103639195003910034025813208059414134862722287553403826773818354597456245012572203838025731838666473622761675789672732931219901505788484341057647285790792387086516170494051667905035879992309435781234058407335431554389983881414648439824817813655630337220405654188682545925238206422203435976181415847700607583406320339094474863840032916167870069672328027726946576151555575109057283353338686778596889298651325608273953340569961018632852395437036490583500944188699659124991512592974239004413864027457675524900505468676097922911858259671667372085446990856962961963522634569841759351354767017767353482434506702438918002452747093087368429904764632840346735449376113840855324927042167606082789328317521161780848929341264448200981274912093053153034574307831393664855064840165389541569062075077635537412764581250793590728248110751559892795909589466693888628966954376980569600937165044948970485898684675115218581565781412307365313370134191407443875257001168598803766706877383371562463446444453483742566843429013937496897464139222133009913328323474171838662492210824637309584512382860976169738832149930893796234292570118473731303834798628757943787906688059972629240373107739221874023727083822128166112531674305461903342625132394367791554610849626951668096246218264860930244153328384347933641593874721591981000464880341584194905101629509098958192975841561371195245235352408670960036760767457034145550288639877905424521673934187296562158753888438024031463500305030532575610765947648111097618930884242590850647251514998925983574200071949895457269170800101023486846892893517569554816355021162099959908437025865445006955126151556767153594881729619780413588592675352065912397589019201387826694783038040995231314456473128337551887764180309438251930734927961449314106090772891494596009627308300901841481284361050214193110696502173931133510641495768867428842787735589986563589861775607838530250276876412553188805352447451188403923074458349232221682957633937571172722292218383343228865362212021899845735918259852949390054113123740996635369644261559999191077553078399979541775970974584724999224770720674947369857803069685081750068196804826623240066607086810437218919248344956341848753007155538839698867033702817664921199559630180408892660732321562647210184742838351230815537426177306767315359642986130145649057403755367359464864893869475424807313686990392991238228650605341204075450203031583226176938434245533069026368327015685056476407780927900399371711045093356433020412736862597387191874457882574923349725507105588729676431284586354120627964596691230956393000659544165735520594493258361956234060089661985005282889206151017539313586934101146471291368514310174331473138414005612137405868186221349105419418840000720083448076575067620441627508639466815276449858695018208588091029667758767789155817438796984580432758442234155015582500721248320385283060409358483405092239931271877375703123333748924843150918206891355864151606390842110985115902820694500898515689902027349327810516291438357804869976115651289852304368113689993796832292110934743804414712043894129660575898129629889965231329169269918025299244816501920022029255193904119314627062108507226367216474548960561041899629924050931018038043497527619756369478591534062740677738859790015028857258173332645379264823081014373909253467456999446712074521037249885845823066651897851356773608222975663843427196581585140497859696031585367716840130618616453051240828357686632834781631451989443562629004732106480499336758009423234647370442956063486020667622377113379681956285238232805210370328876741166266867103557508678460319797464653088537356720813775253690351636900780263819872024926808918474237044318853598665836835379216229972269718663853246529976422690926477845469397662917331781145976989504561865961526548172120173511366868948222131027540461295070834304458659388162481305040698688177158291296088239060565352684185049349176278320512789778446232736184258584136243417548526105120595475971898479139022383118589536516296670174218655545246554803684388869698100237132921284959379989558887968023413195816809895508289782027029738048959186319673174869233477934320447367789918076913646581417417296744489072545048668572566101191564882418585307375302127523936727905195046222825271994611195138651735278501677879707180361860889017425459210343398487767760230425234340892724311883616897504776670298020804295557679981792590655247996871028920524354961124340990072492601830835528165568373965133151568084186232948235356869367373793954928209201296815561393703864690333124743682002277127178114211677682764741200648351895884266885624773663658292998353665776911622813748146605367112801666218480413391102018033562012780368453027046819257371704021211025655427706979704539940537949135105271674714934917264781627037822452817491129099026679193076798653353874317265311068165054119102251679232561972344635442082533346001861151989108405470705432671410585392051324006910718902807072740814471598350962244053146486779182022201555084515790954279205190738539264949750749110408758652809192367068886846920203414870022588663976979167415046736259133415059497365425051259033875165522756511366360995264951914204857244029159362986783848554221774332724740674113235226490218406550608599720708991558799175141897551222633500527916026783473750863495052733411375926195764230722418868639380498520146878536054069348237628475142654098971246099574579667882425170053664588667852638433041294779941794452790768348030723724583725135829380280380951780191530674516807323275493823114438822018607462346537351112237569019150582437675940405202957816603948082329470269684386391717771740852123115464659805281338471538304779485431769544758302894249923903533974317888205927080859666954959803957750835645495045274851069863451249124824040282082270263980236986012077471417481409648297209843027014229281871765360329762358694772866507110793327145869582555846669352737880681413250437294681007469257922341562237748077534512476932963185658095015399888365909316576660179975012441888295795088354787761838078084054449961815441845791737582216856771611544880762332489967239495508345068431144061950183780995814692998433034170619177074761938186546868121016854662825084879067737018160934165504688256222447764459529842823649536416337209462129203537899421505343784231608289958844893510987873397390444319477950555892725205336722207933361700564600140084443836650559285226271606904671550582241440349456200564272923474429423553128779697918416273570696796643371049818065681091239275267069703785049084341766588925191640489450582899656724396180942136332299298770688563111030763168040948480711876482350042646379155455336303322154617237780718723759188513515888568826579688761874680111163104667851991984435832416388725714113358111806135566535750727729863733643755889329462789712546504051456522933496854281086005144896925414352035902031408398524732278991823428521587451796349977569841210610726666966756772760915672046725588664521627130494705789482122476653729472397654501535229039137104815070872374107222034555782891166891946545105537343188302622411628531395908121404093731633435109457113214636250682394036106776320022164311757381620759082983578840650656605246584968832120749325118054055049828067818131893245388472697140362946825736210733896116586771880081140681116412688883125659725785252135562189009431345744350461487539739606559679727182478668865556997810829808238439038490329637700935830383992649832231024485265929575128303352675855206206541010333384761884358315988338635220916321537415035555459994963001742221415026024373204539310046180679609224091855970132162303722978904648051066040347562717648678899936361313689983194350154554070502527766774227092076135121335931141511420146382167711424573742711107451564198453501707491101365888601119826590179941637063128606503404937942036167003996786653829338719152571163604682473828460535956444920823840443514269532461825186436587863503573153294823911232845890491082317447493444264260337133602600039439018079128408544290556479174036232150661953012437033046165768454045725684605223574078240056002345607107820120298639076504270424365808245992520491538124754662959888196281318989077710739743091430241845630585438223691383941884872782991974670083703147053360213310605368365771224862720985785169140738710766156805185948443407942103764900839101747685399017756131592216734533371910731650697220163708939962384619022015117422080948560337405768744168130002401499883756585934051512402955131665236520389965842853375750253879549043948610719112820094998442202425201991072886173289861303719653564128448338338119412299933814205137480941271800864023111091276729656569971026404109352050939954204766027624618883149431886923603603059258652539316944396034387741871672216633210211415606325364036123817498965706840045281762974015966598867889685511556967708283995250912492912886852956273789362846047210950633042702117406159821338242884759109975665170822007003138369760496486590747104513711546075566203664441025322605062897295925439928123506285071350006277209280858539349447160973374270590135871779900733498276591304205723569529435214246239345346450936600860624024609972894542443112153849649631057367744114177619082467821802030066767657625023517360680712890186466450329744657279101355372410298248965278334583839064987786518466300940008598644859452646971614153738242129050863870281024010549752617096092083401959665779388199068703934182163480962146532093490677846940888014624746402355613173485853328615637038604542276808322092524140742189400183937036812391188160989151894227511429546757341636387319185723817177423973201459988573217724174131755571938909016940544639206015006915494066804633802339791088852701483450987903489947621134769563104420362893859857603311417064842674629959664049367238266306131027119775701211821718838827712287854039691510882924720296191726818815062266351631698284760155491065305364449354153138026613949306386534942906839966695798627697026311245182938652882196600871440422252610133020686992604590405537600942320769248493856390810503318257016750141349715644956913133810443891740465302618760395746387017552478051967293260214170126385062398238440070850023016412981246623855233933360440601971288582860367563616805152438109809674375429326101862894002412482633154661477442771715349262847198740852874406289009395008045157782038064081039049557596481190522864586788579210726507431765719782155556806280521929406726361031150849567008442232874191057544131979599925521655801555308854549015746024964094490668033350999313506025246111896109322776845280787533671848415236176489370453924816252917869954843309669079712259108541629310890346020096776826896684125201882969506927246673832092830643731861317742829093313124144447456399537575093664394928337083609435632133481082328442888941254425391456659850645751181937433948360853724630711672674144900198458485446959777325510919023649556218967756184231535091779564599918038184461508604928716937141564834159686989566308356305641965839439156678164124583630794795283020096711739171194017725705198448454262948083641277030618806701260746877404708252885465082436889909028103528241738959833833118184386776176008163502998799938523281075559353341081610263298346417633982974860409424461087135793550220469673573875929795861012250134766523813667657958325509083272718617720824975843256465795545901656478493327753975354452678332995837909556295940923734187224647725325516781216157256955288065129261624582636656205584229047351641360449891601661697886407498266980092116515307538834051528265434681041534804863112819223877242044907918043720980125892188634174166225559088327557604561540792202523106681976916963002952750125440052079478182767910749012920562821931821362445800429226541813173479959064493592994580462015651977374545964314076704992998148129403617578079738129889751199989453392521359662695190948077958479395286122613148808460469461790569672005208144618145547875340943467950317806880669722821718672420814602227123339640668247414096829531674706621864833086011603639564528956769054784151119844743447250142204008819803467179644525209705926070026404240561177245915377334348559214758965161077261379510684929127906084218974467467626842138917953378093919059539921792639738492563853250468331733935128196350516140944889456733540489697858912692888342743103212050806417028642810192631189388614119304878947937421038129359497571623279492665320153120466199809313719780753857575058616707088022112009470898393047043317065112299283795636937696327805655765591596376414457166237397605356442324653528218924893493257303753625889869150776973411228569508268614111763094370079199851296147133248966404536913069257185115366603517597006653331605879945723965923734010803784690735281281742253408544248257135426355873389361452481358722893517409427556734160005872156873062984431275100303851273284848201539741279880701018499516130881968367308709592735714600852122261556037385789458407644354271970299774761538155453595514253633421833286940202082125210161043093592865130877567749829013354986811604780074722195048446936306241326675405785533447797148135721868234220601428574774279740044642825895191891428078207889902121244621541292690875996943879705855080406542496716260645589121646783396790386724696388771911933763168553634314967002511194829279689862750918835199916387600409112792663537942609164314515497065668894909691540506916659770450480235659087678640677853837362393190811574571941793083842271047761214977151354715884912654549476911369206195101226368590443457775602552657516436747302582569898619611944844018206302395379513792110163698304585789298550903736088691975471504931341639425901856686059842323199331977982954457981125521953772022940540281966748128384809278437958130638438125892391966384630330254589335724158218862652430361604142935201410032644171674801893261179152439566650590483902948203904451834915375062449930068742739829135376424427103413386725820879472832054836875837557619732490345713118020802455229308134703938574662146097210475820359195454281466084716114537041642899017011642371831136208949093750282054788982904549013881985911674266841195536278861197562863009178089568569745891842386961135907702108959327549789848495453277382009304829478212447116100934435780052639714778886315628252974754691389615371589577659276195595406888728119703629065975036463989914810347077385081176007474590817867074333622388751418241617168093021517841400832337480239714130835752111839002608957743056402157345063035888121527826436192687949738074025634998736970100762679217547104935870575647578822801566592472086202331646989053652535663950150023942406945242865980392298090163340932447200495602627691246793909089840370199159216512426716742991848133511196377499393632778870954031132265711132161043411830471206839619950120440626021904654339732920522113739197718920137889157389073231343369225578104605558897798501815639377503602037932161966272565284042377916253606984434567237359028561959595794197724205267124123544433482986376231193533237762423876988727492985304496361983613592115934459854413646742038879669439129914046762591477564767334019088729278172445852767641504979955848316194500350243327750490138902391246574626153372184535967744309012467471958752596200419256026929606358628975225643523328812514724136583020985718652059393594397355257182758277271532571717511931694929657803505948871527819032716740116977238913459771514497652105734161812548951619139817184511685762672038864834530078334449158559283353919335003435045687208165600232338882485979873510652101795677167711406214833681363368777431535060534820398229207843154089467091811998911164835930671964669209631324664206936080474604448078779802809208329572969761400606231317517337275391478881794977638849407964525541478318508472002463330196797907109353081994953312766333950754887893792124398239305343890073542345510062329542081774586706903324384937857476526124169282890160644291654000902775738676759423125563695287009516636299550530379392194401982867573641349906210610023208516263378254950380014666450989560756234591279714969784095991341626234384949698067672786925425245863812322900499448756039457374163355518531738289918285833970430521390130526519890343569666025750908543917269916130333705435307676744527835097229501017544681246390173143768342230307887808436925492530544423011016202051142508744332072430336466086379334368487262838987150843599681615806342950075062517756267191416322340623623670619063926237131756306495105235537056953110861236857857722351351311936995915095239093617809190185665151606715407945122517099687124133735935945869861473765427076026518101067024434751396871217066603302140496396495058765227707913996018581911784119937652436760823858721250673460746290409406859937131187018440091028393776231582036202107175842380813050462153574756388868087217655523818748532557970215295926417591997664053340299227806647279192064714320623884069902414789810190548469536825592628700794543627713074156109580966195801409497191264184996084502255437836105670099079595914234700154077879924365201519010542095482943115260961384018232488938180147098521721397935859748828808841884480599049526201884678183901341393905736044022909111314768582109703673448873919619615710773628834339151370645050613187120649439212447973819003422918532305672780032025568209463221569863398325110419219651947615300449348876814377532292974664633600374621166188023716367034776090071789842104059217783848534528999743580401778192792344583253544732699089519688290680912616427618123073953452005344559312949863994431407515197431307737377438617356519527985243868591127567645154334966357078925978325284187347073963814050399930217333386570207827857288111780125766096234913407317486640936522523162589710542075503344995414301129935662698173833670425932227155973579000376245481637106141588607093133349095657851723767326160150373775227901107701276894968298174864665472322560274714849591785999230201413785931989542508622513989760704801041462272766567077498655135366812805005553714554074606928814162757402471617613943537411585126292909765233981304334441861897720579507650716145297611899606673686371341254724286579974095987893999402643781087625931692764635834392788092472513967847506772224860047882805063609687565697846888787408294129926587241254516903926020484177328796007547214768481754742620450422267162015030935813918804559716956118579659879186645502866542792565080754685578769784624938509978258043354686672897870832496565312645206301829157034753055879661030634291541195610083834983768822597626339002491801049088133589020928378614482680502721097242295564237142010768233195465081214769949057343482553433194595215018267287258467505510751793111675894944501322736344025467152447567260115620585882006219957533121880822572652922639635616741623625186412309191546108757314308485183195325716742226621674252419458486939553099419926394150258843382563240129847104436401427147522722012814559730625371364042036142064351808343309274198763868761196094234168791138739181059148523805825624725494087790272782338083450874195804937608890063806123608034137468565882155868440458825217195773760249587744960276737647201665879606999101831330402566141360798122340625353129961469865671101555756060733859310877192498037692728748213064193761483197307248285651482803969477726722107187242489902002815088219559361458726286938005881452528488328130806262965386796348903603456023498833792872505024645626687269301140592912520665202593466506284242654148452920940452713297138480529840708151062088300913412039740414020506226720530343893604237861231041121070860873961638863450777330677444122731679944335627176292059818148889883211788500259585603021906440115496651683734158709101853162070546868152984382375400699431045179704201073560822580741815163748893245480964544162750106480233448304407914946753265597418988733602399375947674136836819186260165589083364944771548832076357616750538012365461834244659626520728148302339677302292318043580994296304219205837599285714363685791350832241861857885819687078102405205881125437983235477757497960041548604425879613454898361069484224744486263927294276311014762793369731242862927782736105712462427358258270185346562561224787342973556503171994476234490890821790966464930278263079785376009283111528521478318819029199238197586252420867080582063229134281589722116701326575813429812658436536918415653936051957406661806498142866801673519490760602984372261705343968151836407116872593963808255509615355580697054388819295600702874732812712684345593393238858343731573062778608091674806647495875293652419648781012838619833825951563126668927699901007980705593266362539500499194149833429765312186911069419468247586901446864091386343452196941224003000900207064053018072250364673357442054021541606737331347363386424270103764497825430591157080107326294659114600735729449971757944495409957966526114602994849568163304935722337512247645109199644513958284519933796279839590202836475377419801890510248636404239421487626461214243800334073898639981494338306803457486801876380049687072937680878778075793565578812133597034310450344858416449561707511994252119422034885000231551875654503493079833301360460693353024444948242154019847300953307958228219547631267586162836947715128192874364935189780391329502339554815762063414218832070191342453628777376197434107875947533864906253403362412551760283848264839658620541818852433348695714805666407584367863632610265424714840163735087211306710795665605980334749462905979532648454970104566433743816544719937681998339212640885911830001787769232212435617330884626613954648805888140245063247261822216817882148164211921698110987353735088869755236360332100508800104538041542066539430665829710152036551180590398943430969663790080398668015712643805342852701747584205244265417314474037319203972223301642584520665380352041668101689328629681641160702203579719434419074895259551781230809028255383127888672116036262810341167223765461596749842003081252357345405163369688238226651863949624444026252644501115567308115463804650574192229260727741598127923706389810429422828507391728824921929160042326200630002145759460204095673996919102094168933407364780869055094448659303634235853726224741038920353499184766183996690765457086933703815656368296886511218708498275494831956099384581469470618199314208101142096616185690211551335681980080422161639963521580780182414665998201395927144519079485073475023554031129308856860834228873916929221723310940549968271394165817162014551647553225995955171025543013593741497284988020367563960801638115931233881057528092588880190902588742530028164794448624726842579474413859793737998963101976908264975319610187836592635339371271228618186038099508992274287526848674045450670615055002782431610356211982954137360242182307341122473807632451410669125460267873124277346611138331267244369302109976164929963371665810521783257363755349237155824799567311787831893938473773554992008147052245845179671256399966861656147127841592149392516228919463997972253960770227228830308568677536570727053363109259690877634900740296310266022214734442018971201676973350404675119298397727617497250167518174980268504169601114051303775475325106159404769383228914627454235479795162987392758093267496135343876973017945916987913288245431730745105702173945152476764445506288283549300930322993954025176086040675523564513128290939981000198059543471242441904067468206495352566378249456095644170208306797494258030895654118767376608559530723600276344839801136063107738400110609282504055441672175278866318482466352983059306096181176040851390353078872124867291336961669089309131925105456978038601472982119335163899386874945783096877099030541488537108302170122856760438999237233835950751751292377816502627261331267645494212870406141802628820367064093487468595559784600509440093135925754792149678716701006678921722462687572835085255840955163607524552061952984718727651297312783027911591087703811205726309932896608121967142480138898538115618032895580048536245588134786072066949804223215817339726116626466496080642856551778058562215862387652612885472912803611928036725689114873520540359513717506791131446132916443529265949943613174780187552774638223865969578926392490408732077222414785817504860533948460399191355018064619944408364938236026069465178013351305474299846785638808968763004834014699328357320329259346711914750414889901211912321853281815568507752028488447901968218611305328170550300187340466517893319931780694756610219340040882370876132787791387954843834864222169017255723587343245271525054130016287206419053870844125550216275223411672672457771937158151618450855947783688218191423100975381637240895971646378767608422459155865931118903365991036970004698711553894588351111047479749706587763305107670891375183636094574962881006311428400430614023408625997886413333524388179799405903696470185475209880496982825205564597533454413072727068814532434955465407826048122065382472645870744814861332697842094225495654100392417837975472093025901026921001129645517588084620673352207223092384616952447653280337715072860629454189872305326392899731689537162157680851216224639989117087094113681968467120981484902393289192842160514716054261804998776423210830364282617670188183186188461952418732466111173153592664880107125468357269077387593947035836498401916832142720826274994701746547990525780801741490854482732556343222835583080757529847284997347105080558590561647289987405085643035134942009226605040558975656197034560534781128695523238817827588919357087733590747666469380722269760437556603126819213699841716423768738094422943148395916203625959003173744650702854581430374991565912675681968293471324444124938494697997227434609671921431989517872241595125193026408377941684669252688452343171572575079098898544114629983601504760969493373273069618708037103043088378943264071482735035644627902052101566790886169913943610593455774832049573223690177067764090256545527316334731010913012722137210909510070128005548444784904279510687516355783062504126720132897999811837443840611507477385238873239141875266448239073751420704472171716656787456970749855754732763994193385600034030125215548706573903666017975902495057229449718505105938874936646901080906705123412745810750770815603953279408033180547629802743418250426468843797937704787460372057724874472135480747673826696614986170019563564973922070585519215754483417480725778915340587776342435360988859584418931522486926048392300162986261833592529290604364268757525086448259581753888491606263438975376888180811067479451795886224738866743064290345405730695800210193336802713640484014571037955204613589035827372062680687756852497686791197435523105204303572713130181525132609018445987296128519234765609410458297795752901633951035471793748462255526601997756477597531029506190215366436396407875409639395912206515623614602703596292522524575493244531946318737163710890704005403345817796288767259260062828888703671457081038260979070392746801605720645049164001907222123145777420053106597982567627303796372624019920092886080775667576711375525327794283436061359418514603916297271089814465828650479535329394232948640381233445874217772492765999168280225683350128857556521938996215949378213492231494057734970964807585925552813529850032636312987399586332034938070658990380625835639102550442590944188647460208306961578654756073512721988146944055931791886346170375465494734243849064293088304216908209270466453251787509347431032388431194254653078059380438146606912819003829106985549407326495440221050979390526848480716319498157396500942608702811091076944840261620240371242933738311235819042786044824207693739554156129134499196664807658951659297287378530205200191273800596747547394306537032296992381767528062970111698531386357114205851320046214460549946726429403209499349484556018083234976118534101370362466932972694701727891348237044206124769355314525328469177621109745512334870243410750276798502260103950186075944833937539717436891753338038867457597052958657813517398240518346839779839050071613243389357274282893757929193065720193265915378177323134833905717585134901428387698293229035888447170898961143453591494068369882333240077172493547356152653624655597036020091113620892290515021865907512540952730402383563131042732681040846829958266859622218890573669380645909201714654798718818560775540510294538020352900052874411096249639897241462623787474819498721395385472803440104196548353653793313053835865310827959482825581488219721496607339917151366792138954413860092786930471173263544954271407818494370788811195079393442254904539380571710345920615736692226270865905555885570107670099050465493078236583344208000251990875544573572803502004306975629940836352451005649112451091275265694564891508168757920495287264778766033187458884400260624140438665641981631750935298612732947134977405968111276306831927486309066763555116986471483398876275711526641574987962295230724534254920523110670027487162727358991485726970926137120702329651512071969260441708646333661607001643718474017903486186753180636994746040937529847828322906191243373273153529571999202158736523712550654799755416626495389368187233936574312017001943550916379118453590157582999778676399024503926171609627035473518714864546575657453294794952429621202897635662191922592507527387013045734317737013359606429562128061746873295847186242416158321545371856224644489384620717267217332187782343857625479872505762069225474523443646189998491462328789119367263363418535631216401424829234842631493486221317991696521835388390364580054155146460549603749158396830808722701087763809740242377179565664823919973130606708632328009252374053679289757158477627948100045771390514496066619380720956412457496887142406371913050850088019664512139810604451498811231984023216921194616994045947178653362001350609667919332032900655655056514661434941681095457397592908082681151044198486903889184235635802090045002186713860083248455097763463414394165824576929592020902929359340964828482339221181693577951598627147783958696946231529987939480779401845558055459624144775357586226490338240831848699444433695969137077101661938113543431465227996163438431558647014686660552622230466001027252969946947086665043897425749236665710319248988449649514932912894314040727084143070861251541420386495205459430555137547934627713275329548196579929927628056282225576770948266715526250290921415662380151295576678082713250414524164376580426032568621357133873319291008993535197808832292688421600594656081161833193999315611345401771791536947199138178968559336630528617588634866238810856902327056758086694840609871290143868375053808200801553008310973328813491169271761064146725122376239538329281830057933712422346477503156162745903774508067392377310370866808108790262316749722725062285599522283950636385505195254193136363461910942800592777068156136529748014227211096446649294482546308467287518716885534435401551955533726307725498777010789321430630898222427240261782702269773237223867686662072798501659827202922139976834155885407955709545405497762258561275677637882144554929530302688289130850563630197613575441536140404946142565783853548369359157084315252241687714060524295520151629021635122451345307507555567482969626277541825255582855463780887813549447493220303575742613424036727086571517121803926126621729436709742273392109168184696223611434451868814271263231879073938608219080047838589074787011750924678102474650071850990070961990383938922997901418634357264174569177746709887881888599462767740421400246788283032203771244601835109962811719066784520440654551622007487719208959527613604412833337489493512751446578155397731994923526193834480802939843523941787357942120246052913677258051243688823688790940097762161646842796603733662400946506942761812736006087732760233583203617499895341699781565126211673104065934520181929848253361759429147509925455084750595632446354799100498040667313132160059390812750478391576348111918599122627219634750954082888731737056642754533821865301160675398371791493259417874463433838346399187222980779896302697179437299987572763529708253017399524004224782284611802203519159285481492175371156612602512221126689417183121119695929205587254171825288332832665481338529826131100533860410045180637178758070186517386160202063810837382156550936027638629321441892070372186058577937517863672331900898627605575810664439151058286828456811796335963218123780973286728364338789476317051118795057800663562307313723820571281811286713236967453592544589484146187113079625216161704128586565199050177804190760350072123844038147298602820792459949975445751374738543267335152827441842188129352713056294144654345249547803131978858876872315509468395992748881651035776289047227124273401540097928323858389143677951325048336790909402940828932562152255921849260052866710222957639273630963223708449138551002266836296267557572052553164240281841090265761838173115774284287764670695399878265794015411556727586677355352300649511575160401166034307999075904371952492231620034530519994492496100304115673735077016241575029644066486982291396794448422531269330451702253223158756296139275299401491967374038805685805212304529083174488795932191146590342211065244423288312592680501238716680421663679449078651222822737342945131454198818410692340782362381610149877614670537501951809925982221441051314848302479801779613466548272946202799615768634656399776799396654504156887909499900400757364143582243951027811454285822004711247019948771027552683174440828299974025973081360705603010656645018821459672131553134251298025368249327467256497019451353613711617406531570529809975086446624920237263189561488470053625240353042952706455068480772567484125329891963973798264860139220986514984426972108454585010776167781125593005429503574761641173372875354195572317741394350255498105850942815944443098177203376342978789715786003311875544250399694246498960729238022407282009640042825448103644143592417459410263067194096597387352524354374891331934293145715376221705057225735166714545856252734494598670151787298690539366962131423843688284021362009358134287034887184048217668063188276410025942858173070363100267250128789697965504835272147200580004826073593733374846869004779289941429053701684383098054235941180458457408384400058122609225167540394550122627739512025494525992617235132228776399149095837201529984558611020917749964647979470510108524669571948858725838440320438285561396844882367853641221925689322323520680153917163472104880186443568367138290501646991727396437437905915784066660614607356432865645116132025350356595589441186275200882131796728976185288843186032513584700038544971207645726698668286111852940740393829565175260465656916939701026836889258583813202077003440301328051768752006597863306966207679844873479474603746596341973577323968099584820595713626118758880401306258547638089063394489599865294649353808387218374507296039320799569418329010438239385077888479951936689765900337503976646583996439287271235194845702051983527924648605483396312270324767108094287008787449814361278187559097016163831424000111455142722531502489633776413686367760746020461237792396069394557348503319991090662241969249504563710873121333280144762138263894126928064077943576869687041416393968016757819691547139742391708483707917605563482969174921753817422541962088769807058801743260038699633545768522660067432399271345434301250072483582587171522190054977559740242148560709636134254662072329135656540872158160934834689442593731307379099355315169429946556073455089988933608534058993834367555236440739109084922674361895076598254177574813252291065275700065255988506407076497347433906160271721868251735240252476979186157256683541218250416873006263087043583174723815321314352807383465094337388511060741363592271817632973312812812662949194105208595795446591520938440976193876058834457166995729714924291900643200277075920574569635499016936328614321752133733174500952930195943528343220079979975380492287660823682625756124171683653088740420243204742229458470904564159761501175993023833142310673769014963499840060182864951458876218486687194679455626310500177933954683902779173076791169864653638232888270786632624586478246796991066223328241782097120362674775174249365247188171208060276232131779987953899831859892478570145048190073676584447622952076511359041369124668648263435241949987388648889634193550928006122662822478838889427694049308688413794008244295741883780548440281639336617607970401668135476533687174271526795302938431894566364656788247369183561155332115820338131048682936622202319485612965225384144013920260966782805198943729114821033487838986345892692926992208118391362149941745006784851853859668392168482216222563410387804301203745716098458255733918996270045038105188306314318242623476347523963406999074681029448299576470753086266501557662465602899818953485494027208520596950141705775273892089183356921501058604971096506275098429544736038428185545396111610617187568820775293395020448451781276235870736160227422404376026699706842652339253577959190914674915192085043169280473976989148490670292345902579262174891670975549563090752288953855270119164870384267078608909265312968465905558698548204610689059301697623183891843293454204138655734306576240083655044326730871257170865103346770429244230911491502248644513360697316820557823031147691480128880439215606104517779215107245936234513691566962808617212546390672870797058867005710220524861893018336191730781757458420000784220228495528607776722452579883498200751299946581829819454128242825710570575552067695424308619100161287517521558677408276779679237225369766564496387162184100339614721922931860176205517612757504444077684230683602153440516238418180568134747285709658739230692100940120022524729675098993507956083946340599832734532339394125684797975972005253037081880415075966056744262363307530341925913473066638940249783072094326586526031942105415201726413617736835786317452380197609358932423924901893383248371158573988241120107183972868383900862935382625297704467214069041664885156340806752455233439498748757291541802358266490221437464603948856997503344170864737032585185752405276101829259682246532222414053712592504074387342826334786416811784541117737838275850993195286405720399776376022004936447114042946595538891243232012238364528743452083714440884077860101978346451869408878259021669970280275524435167933386522367270340418668440487760020384265604279312002902261888941732423050778730508054561011997274949301281661381023750236044415412585143542073928218780119391667898187645917541548158281491890433912256302019409345077506491299569818555597062152759765032721514183469444466530821518653785826542493420253482767887391260548251659139817581089301598060663815923841304208084891226274850074324917863690396259461340809473526933115167494802472102420407572581362460334704503983488680848866890964045697190275799597115615031748435512961885111552706721221446172658363649959051001222035946563321297359780781303127025659616931837504836800746133697541170869004634959732563497774626862289199163926720535366200926338873509300267927769204144013245371418615196921767888511581537071179982444065280864070155044689552866508487262610183217855205464118867050061875149706627465897719621180828328120813750328334993465759910305904200206615284374176611462562411925126388636366400364866276693660973025560123266494020924124794043157628523494341379347324568214787840872574182435071457657065241966644872355246653246432650890429162707786040565651445408377830590829790985693884266674336415121805620133618521474705216587666187163126172496907099248066494778899619065488827061327567691949400497529402322057868948750391260331073372329940163490709789995493076538786395760667560657001431710093445422496385162874382122574858560855480182833411605134224349323661124687620144328948282083605736893147204643916408479078269705193132435707037820782278936511371609890934659868767768043417667339074792183690681459028337832232098342277388825159475693278796645282594693472884950554915675697611730897203615735729237482698640951023538611911724855871588249898511501722549894135562055997916828187392649554340248479241734007385771134330530820558532931768148072076196130443969376050571147987184256758175906748142747405983803941692329596324159919991198909593978116420050727344989559215838770086012501446574348737056128563214945327664448287831879908784372068237517334915087093241981502030540560240215940479829997880309903828809319920232057145196055654007152742004119913014515679168141231853291783242053651779482292260774006989994205617509453181487043677303916801644208210981389233612540411924464908794228912401528464954268184961626756067430714187107528112727008950320602781556767364939586663418985688835463660091371881914369573515967048684406972837774370694802920295305598286432852988081863920795606072349943468281990216057035927330628035724507799780952690510617271830441250660026104125916973613657128189599784588107013240964878957496318443398321995879206022598486246009727794509479521341076197770410670878674874360150760054986643935145369249150882578883728332880085390351979403870876024172782189813269982168560834733675171339004955638838987453107606139292715857744205721090717281492067542142583434141622110098067905004509592010394040944274001011296505020276815548402626535519856228533922431652302973572543497851617774688857539314901242179368956547292887242897412444737673065997293325015320628611306723731014851866769639126374556062705372048753615337375418749876949744102752965670687311881556883290674181339623982365127818906175603820967641401941436179411245895854820308365924717342622040459558452605334447852265424616970287006958932033664809255110994850942562306843363262858811446332249703776798202342794790785473122626581229951284986992945671257501316929802036492532009066736857553216548182131360142296599874859632729632628757084756998891574093776323527395070935815457068113645683725612945238148957483953796013829912128641902111477711965565072289763449428185874420018939611740460104069465182244612860910423302478844922486510029104491360019368236165335090718721800035684375355694016072801563891363138527661033992550459746942938765797860967143758496532892573838255385911339379606232003904823643509128527880818440958066768810395103936225366363682510102308655848926383736341640401023627074940723683286763934276507256025759848829188727188704286884803392657722997357255462747171607777142232960893182366425133975035693987931022675707818992238934471371465432502424934339723602103043790991587651684385443765985028465793955590799779724327616852362528330021928124138625710647444450322635632947311664650962822083321559530408189071799310202568186338514624800849488865342128749028888918914495174166199256133297912537615231691866747376645374967716773507982177328307389404621384133309271299385010564607094066038132008481285879922557616235138165956082155021879758180703043525228059101306416979647131162621575103920710962707952294807943218435754807330214041584074845720494948638958745464716104255639749086299079950067510938529213078312355629866994827931410541883680195966463863338666208267158900106552430431866108320886404634131803145175912175985464908749654220761000439481963327884857519321704433890041765891959841971736514096585239118580616049781285186300100455268450894316713162771106655750021629263476424646270747640570896764206850291184056334815471214461344500536960235334555677465586924543093129260987047055321283988194575437938557798557794967538589011136472578386371765052295850979772600039849739108644962418553301697574341764513793338275352372664430355604049636702579329376168815684767324089430976610856929549451073225857604955179793207632780115409026190780974949969322080266012682733228644718683191589628970877310097132639949879787305750875333839672276272189137153605227853453648203668555521497548467213864089708647492034856005922817268060023778289157122600606641911450800380275775342589656562446945478534245674483790753914592362008505771100562713622617135658938220427354528691014942077686657159321183547339474538419995018367750943162327793269420377008922380295493986246774493474305011938570155737440442431899791590056476408437568961780385343397882612556322398354000738433159896069679155949582716643133747414720495483257101153258613331847285625968803033534673580627989574142713185219345848521115422466432559280935946472070813727655166368249229772135021296588228291603706625616279629820348443474644115887565571676711161069898935509001460391920316616201559842299116180594560814966868778227433755300775007766380964934876604790502564867273125424021513016985175920484355798651981441013259795734894999419261746866933358210382477068612015122538943524140747498290575008275661696312006632889459454587953816550318123449148647882901858714141384388081856278139457774673438066765886865924882898231959839773570172358137640217253522576826008754683083266216235836647621642973006180612893626399387714577144043129546490630354485499214934381432099182164922411506399460453106102437875314203537459000034705111528841703391857493205466793852703734096409587393568560040309599682192794155135542998679034470316299433260005901490451034104431381132424511497572471838010455483127424469145034409073722763296624354474454169575900793568182487507479942513210494752785091813784783398258853253909382970185562982998092837407104063111983540858556535078501417722024298912900762175351013035686270217175013259665446067711922322499839549355027190934926969978964039878667866773309452855723979233815347563353534939881751877707574425276628095312565129450286796050649979946374044148388679471412656951581512704868191307254906804237145496982342717585973004935334019312278148248125226258515160160277521102078855517143983937017974345184531283484476089081509951308224124481249001051350447291281797150274851091508656357150291060279800260547786168241781761370225203559906952829825719037515711453815289276285929548725947987481291657175727396622090842128122794066480016244883415179093021744893830004882229296187299925859037286797733268778408309289341964069522157401700203178948324937080408935012832704305955860209639392698647453494485250690450837172823729384429238985826124445286303996388042787845211117907476618349922859911643169097508075747745416535456582591939043700934073407776510101725079588514226682664273566621329373826335224758795693278254724902055945046123298435591433551585875195527664267131577866924507191543766931565673725947724336627833510726571653327672552213858052139844964464233929887463586954306046125690152310292876239835652108243060059931176938944897808556697588355528395385148923724823766999080356230082010981183062244957449332576249677171055746563520671632896845579349542643679795530927405968110974523837364577893454148661268526865654601516060188675963694436910179654607916963459520053294052358121372601578508513192649759017643700491306154957488250275449843464647833523512362879251648546881502731260638606656495412383771923424929194398800630961730208734923144973113334267501808661846913003318740262563139365376038814614264372758033269337705489474396691412167464331569827024411095906179567138220788366152138324800070567235873467639908667498817521615763728098775272754035276109432888047129978023590774909284554543466981969032809550487895844920716160871856926131097651946185182106572744847257176916260418594039013398486478012464553212801630756392833041360834929905412779942968741005519675020382596824729598121529890050813144989105042667817404476107819963518469485084207237868297794356466563410069492403759982303354636887105331119691702131545183388267453325536895025521052115221699153758765563584379029394221299566438537723043325956764289949019681455134568042458462380162571756559051201301003081551370215672499735367456873097368157484543437641896002773349209176660949529067234919128454721219302940811918946250572557853372066416620582205974110138970930838551315577729803526107540650520240910149269046982424675664845907287304932839622339228418016230367876572441454452043360960150365090862925784226157733518657270315214282921189181775979864321395573525067629194523521451276320187891349798711177488491972149784739083085942084428268800349587725138726910525858206297699156212868347213270128195708728376830068830049887633318854073703208827050208409812094073679872811502810013031595987831328994985828805647867375499161536274795918446211291319486557468065938850166920596976615137388283113456464225065528256662248607878109866861429475116816959721645152227544275952824187777183257891078168711440713373027721003850006823346948319123975707019419830832536990156708074003088147377864511186730640701674889124168756769959831678105661885840262515584003670073246406694582837527626403480565527876894320937041379079716968807974919086895031035959302774381283804766812376960800551622860813622526675677159973428789122152407050350913087672699987409853742214071939779909234334390768962497556466579737075213595831030446387156895487482643608502968500207223789339759609837076051463618201388459610061207747373476775072788347178097796098842978338455743679853633228380228520126874753394514483966604644530691321810210718058138934317810215132253091942209941275272270302697004237153460723635663384259099661507110176007474042180724766770334577501350318971314020576863727356092672573493745173028271696027086936478394979204539967499747082655061876387710394697769196502014556131476158482961403375943447426879211749232908070567752388803708677089367755692484661747852408803709149700734260953547751565044260144974311561312823193951067574197043745851573875233017119134655282763581531213321324814980575860402062007028291038869008351787422177618232571026143898074576067357549443509568908843460245531727465860254426289748876821815739542234173126113726286886348168511348797881867771924260422161804370541379190114574582609870510104867295490289963477320219022435079958409373991635361377513505655134330119118600054942544656848628343074660298100176681971726589136321761669621196277809285565737993863887573663323205079562291681172743171761201477901930347662539417435343860368048960066405429299380790781002554705431237500230418955756437171959937715564162879792567138860023116034697264639480919184643137149775629933290469968424467067941042934873955568484957600424063607464206537466182722813837173210625333480085929500791472418265846454137670252214198598824336498678022802342487027935977991991290184658925899940572700494774172866128402374694095095341729389168480821138024124475087918457902499173442833645897902867681239034153310820390863496461913604747313940547759849029887598125580912650954050753049464415442333749420714340307826930192935902128788918038007869479657085110964963780373561236154021508419996746861327640402141695508484358206111075478702682361706475524525475378271646489327934195238801107368616039706723657477330071067226500941156917013824471547032812615936054194330043306630589590437887879004968480538007002536011005477846032603499180885812243843148512484598980022203723243806043695679392153468767758838809832769094557823888512181703519172773496303371406551336827732792220224632379957385283663889819189326670630610849212157244919048478108524133483343548538700256040090450315675967594610882590813438985454409287214704467045438684331772915037712976809344428836612415902700860390282010187326068554564364087321408408256832657606317759365598451715645227547401968922271022087796275459100073940649676226193076605832237138559845077746322247362823926637867702618150184697106420864242564127121206933054633077105152805773623923757193136778232905044198043062765113873512246896883764836092918100601117349201236775376843134917981030592227758054162336520764917528549466915566688261552472049636268969169220468626997732649700252485330534709366384982593445767866420715052148047503390796264894973607611367006233927052232089562802795312690451483453365406666620558189971398127145769026962762652195172023121189656353873113403547228014692056004307450599360787485684048903208814462398356971556891361913875475671516921440486963023895285827561250570785650377560039888724372273289275232002948399853459640886164106506003292955545711914620447509891350470666285732553352000699184223220705550557332919790379318277515239513882066465995766213803713204256469241805837208529826465107194860071336237025041213748187047977577793829428991118978769106043194141699384675703043922027376801673249954741240748355061333274516772906280238399729905764451369724615956562852897743873564873860869233325008511357402516590819354949584111440707800733517179860355314132908997121191843850900975122596082757184317754503278109884781748802003037234254249526015339485883782553150313131185018052780179995195406721613738455764668417194600421109292826064594854433238171102756635981581370017986497729745566354283002945144351637822304671836100509374438554206699747714996218722968032038847021525406921806073519986029447424515781805466566397089762773623939670508579722329336486515456061214682936302937002701373482484959438943748542397268946922037667257556108550362304648554471282430206533086857396755246387705044389436619518823112229774172721459272662634026122455875646893552516570881010634243241294733862825089146159057064178000785281746893801437296513526331357060609745143399663117179444748444261660452429295418433533048369150710811701615486857548858603824340899097910350438752749078784530336689644436575804237136242944991702709741361004968896751613613129488129801088867089816163607022617401522709770116984628861425145494168427627123684287831735893312973092875377479994809477163599703959015700003363696702385983800522965285551122098411512970098147526164031665986982928992538261633508378087152705325586778285558360291942812256122402822430201656814395782920755676156863257107821173735675251884374658315557956961284581619624035235150843874455810944070341883317914203159368519267194900311990938782809000320059808318728450802490035255547262483939671890680697263097443270182144412679509189755581132722358774736654768968009939755335466806119582010577922892989904905317986373489095715996301813000343153084371350474292980059271711386318978769107781225296845833717573264201271716265391153105995295575463299254922114778427656920206544513534137917425744394121510390520627825297508786848534168967378085110299699903039071671938427212822551448118595155448490922653865168155413437822970228669919199604390638105007297654150658452556660748332570984183271883316154088467730079290978728473377663248423692114157839120225993694968564900328554382052218048097124389687426188687095157060468476013113769960522882144515096315102652319392286320524197646783608453327437516781394020472952844035318792732544101223902528597834278172209633260389102400608361804551229196437440093569571705721557477716034673212930168155515890592866670475352737674098171169799958136218872507445032186096495466120987205243259688864197745588772534604077909380634715254722900619288993749050645635163908239202625093697672414865879969543452795744268178117939193760254414043478658169235744011561214317813505171905608495662224091994875661571880396103296544778277353382417539737034897872349154269554025050642334623366817360342160202512919890206028503760121657519201620227056697106162683687536917575610125944548719414374042548185555472840974029726220441776947465379712440384506712264954911250134060871668652302279298524781455102983214416231515570660743317833396608714130127612128333895234327933936561045411574411195759077298176666725117023818186007171609681465514623116952835459088227495337251371464752500142608739687120431238988666315836725274977119918190013637265226563270874727805791777248354759697877623901635126157131084623223468003398658811298395139010261479501844754319166692799413657680688179028677491860393937351754707354164646367122979138827541728537361702833017950674738334793876048105379139461476806264246709447793976807232894383365886554459069616939999809020782491201098608794930753507165078605566916877154164619025925730992000389941176955468696138319765247641140398556462514710438665433773870216411349026236031465964537320420520186186347097286808947090008724040504951102558254493261153326712094318357546094668130903741290668360212426270926063008603312323908101929701161211425858797641457709240672383222992582622314250793608568232857928200233825282921999043629181700797675305804699961268279413883821123223297973558083140935057919041943366735201026485300910597787138128737822563501326690088581346784950543577698729875179155410485646880535411179238302547119674652684673813945329907652833865409373365258157893376671201509504003709746689736628273600741696252885165378873818677933730348469726481186820004692969226314511834737443100585646300479137602334320224253596967980161758399933896601075677827568754766465984352728751610602452640547987800231046611107826307163110003240739407430376255280347226909330560032299999276780853767287580469409440096913502458798251266586043931233615540343332059512804902885445883744685060156612361898467326655929935220896775396367923332177902488725879902746555718539056868653642374550750254659813009238947209940821647720773205365536055764109610085266414635422361747759831663968746456053691894592006385348540082233913924890820235463095222321846134250847620141531162953313634741642799278793396211026076183596304816596678678955514572222821141597031151009655497999750393587838122158630205917052684409691868192289393264879515122122281989731844222093271041636363011714567462331862502317473158445493131593508241086323997804760889584913264464742424631196275529703928372548475086208925209680779485488656659131147324646168308665540270431783900360035456223338706882023222099702650314101387280276443569489116703279899229065237456231116720400209801986803708652232468768007272984533364396153669440850130615585430977716451868225160126243428353197890101624260472252745458682389558769133215729907307173597027072794181877584029053690749981900789593971328694086698067537260728179255967599867523646327173748007514716825524701226371743515912749845406368215978647852020986270689779734319284966469336741227791382141190765593383136169978511109132536467353494754342315362819783736589520807140499900679549231710608075229823597917534167960525825206332292414657922977334855388109245849983214002817116699463239383519812218554806489812711628615594244737667806035305297487117336262582102965464528798077284848440947106007138433009509029248925522520163215685405562946583009578220495013022511432975180468630904738499456582094310670546140882813291898394118848349487263762338205570230435689174676701419648582228998691121973853632283502784021803558365658510478730603041868708833684154020512228721972822199480948214705699393554176722762934935817633804595071722594733608998868535250202282167373084795849733134528406555524869629658622453616429623226062772942685477324383952820578776568081736345276311373640798647439759755325555626843930057876516861013927596254452131929843039794162616976824589671268722911693053239181465600573109029833420115408582407223109963792606116281124460406704300306325900822758489875859060004990522683383574588285627348010422262552011185965025144724210661456223106583135304352957664121635312191431279029912398670457431905807157640885407814408847979565069606786454281470162886425367146734080854528962743922415260698188003230928151201906400334721951906020076274192497685201797040010525350466866167082746505844953087603871116562053154263968682016123941482626585905685943570853808596622628454411938863470908493142518312767893196298136197047301281798712049405718784629279723056139407548219492995268671359416030751748926894716274420865606026539309852663950850582673440582210273146407205003742705374285433728328370711377539446251441793249826292915359385713692490897497774687352096467450087520345924421900398861279737937547349705672554732008418982178354388162738338150632121313914388039715310920342235462991344377413423643016656059648316780237259432443542628925343562079361972651781645823225244743859900543639789258347269053479190463616252434345227301823340217703917216987499275385034071236159373497490755449339517385345645136732336647378476558372670134015815632076595749799118735341133282843239324752266564357730471906565011495293061227798031508274977996882356059046898465987163883507040868169670105897449613737592959299794398199828415706860755081516851536332580349876842245804031757283983765167060744611884003879342218282938999198821403215363698694369047797668672883999598747003371113000264827044559855101777469662098363179444720575246977081498515393906284529666019529429462897626164564836704832753423729539232283641051745251235194666194137982807244958951533763592154757901302224523356775174503536063852857687529722553976002337153746060973852781113115995505557119939795140081943206220456149929687521387597070926417700775295336564449061603038401267064497815663842596425615651754862315814449969244670117365092702672121509362286692966123170398916299035155245384322268885619198988173553755562165899935659219564838023057724258961395600903070992800172813075914066575620897253174914993933067911638603906822878046236931632472613492200454088080222904600381221368024993484791136129950270900542298881753779510786032305313119995961195608725406202808055825945883771243383551919349435208708361392467947184218556571871814920735576789833344769452029501063080190688735790846823534922521344305741134019842686267126797728159527560581065521869577093038363055497276728790857415967093397837461706552644119498487837314103634143766156764458519394853024391820978790579941739336023705046197032503106234150787678394246770701412679223070367471492627476924111538663250767355682098823906081957026131144064989942990418436343550144693473891313178536136241657783579374637064488747300938083085581545670744606268776267649898378358464511802504304117923304352115847900143590132569317747914536576161697189591443664594065017790568537325950937317504010956534142339323780169669010053558519443475362516098612034488726991859919332991241912482894562440717222786939965738030902863736595758463303945331521469475589411952094454522177325594714566617067555807004105924574082442589238343024911616928904837674128874479734839686105041660154639871887995910639441335909273874515926857446535295832712889142414807756575753310297261292458321141823608473172590234740018915728214288232617691293642233305127062305777143353817558396264901413640292159695619313857994811728310411381750923361158944813382658233702181937646885235036439250932559187590477369651604282345771311697908723800373504369180241412174966544730137287030276234576818885952658747880875201123969459811423704534606391806560179416696624073491796758093546020896005906604573685418338238821352281527416261019077392108388829422018358838274720782251753595282267516450752635571039446552371681527335806786702943698994242537520493180971284437263033666935071780253655396851442063299826720463565669910571917227161847631433244184378321934688040081218446001428948034679836255925376655586630075072222185914632238008372146444527994915185588417379222045043894646556715855756745977667285170138171790059564187669203057622450029573748726944269354191485719932840186885040879810765290985265591479154018371584570511526959019233695395123048614523914196224711808344002830979256858002576157360353717850186975144805154440552491738790295582431250335561231472509117087923276740306648546476277054954385511353682845795819890252040381169656447752400864651708202054274626426740337930212607785363830173427990748454748845678841819693893385389086465845141169971601472419526845298075418160377143259146951093381782118965437524351405311302290419420774455442211370233947586125624251025157368684664117307835672046247367622193410180838303653149261173260353284362454075605115139620331851367765102699768373111864462052647262507181931812259670345696585212097982006578828453567494728034030832835689711966085036534141066704578532968993603062418008723557740369459539213659777612391148525326813546779112648290121274216346967595626429312467290652311418441671779952288558266946189175908068661380491158561411896045267170000281590489362991060275262887836962085807679051502503993183984551353610834510787712137504397169544434071324568057712631305262049304485110427867978629244689844568598277761484500680924799281813967485200135355542807988993305495989668203380459906090322821364102311315712673037804502345919543376499727346879228526904001337244573117580024037011214702521331450677180042978349545176487592546618838705482786951973136945903290506645434792008368537816836431339921224361264885365733922578079450113130683249607887663974584429870445492690365217950403907354629622123843702484345176802018553074719524833608650948178258660067143582778742890705765140647992514396350963717176964317064825282803548594482486310526538523524409829107972514831069906720373070841188704996145125462156558354210512119595778976993690238797084867471113105265264566650252927753049976667385738930289784730105422188735982490180039443005501375950812030941337120216088722568747571927375565421233937344960062678620467996978904145150553130051788647674136949234167386210825828985399236051656107135681811773799732588724654246334219960488034875610174801837975717437486802042053739862763349839604439239074033558273957938740011812546926810234371165897825490306265965907686360426300003832836451110329514178272500521261375248566655334463809836357142046930479717387763793411606445398356748984047962350392091513399344477282530951488799011764660888523706241390329165986937233816997947355192811397344150644859434025843197440132994441185070921867569906023411146609112270785487773994329371654736120774157123750909608051069902886382767814096703619040999157471063586024542591768043966084122869986512104091613258643281284536562563747034951817078142732571808672248541738016660537720053964862334705527874336985901612895404568200390605663398452376943877380739352831829239836787523966631076870095873779282044730485628687786998775001274842389022165389565899923573048623483986214443363059984337383869936079166062184024245339229489472407442208086501737530908695218425380702147303042754137259996056936392710989205276268537688014332396522037909017597169184698200162926703036308912482920751826761015534855880005464995515025371757240704635654833531326409684770741585894734625237623778398131115338929612140352328825579031340986709540821997168907149393012735928815122920099730541955768507048029506190347610332561092651568578744369437713353700096171810541849861825271965236463271703380898117196955960447271790086050726445172869041450267629219374634709579085958678071189120685243847522992858842835446857187649817897562395963429079525832622611043575071270137118096941232302030353314924572162520000159616035052972032084941673107968089179958350627221931959388816537298769951497015844410958148154959869673247727293143928553781793843478678631510311263644787103803704753740896580482818015463659953681204772577089683690292985502616575698754459351962688816523265662819951520879252532430442574880835381347290959813982595313265626738994969439016596811271846354341224280963897802204321608608416323015419694619920849627518996590048732368107615954856179407068221739713279495350855919475133574367568001506466105541134707156080867166193621849384050956266139071341993438084625568041999961395613617688082448039686780553606376935792891581097295457266504905407048218926636285721098657001610857173106599862935114668597504422538023545199144363489569329943485497747114809092291112316612728863971431943575568973032039872179620437546001965521244751733833320224450169366088878123611372167818241207400486315001806482158454093090869924296778740230958465502319869280244442449255268807015622454616690779128975175686459596704628327472862745129251643791250706229570554391044924703241391406265199057571247493279967299138567943529514330625709856385031672008078530171215376617199389539735370928755601984967040192166942895029052646320574259217472263522609936648778768362042064233091701706516864167365707689405740843962151880685268604800113959451659280199335204435916228071392433583832259005932815840706813324424789461395321806903689430269876613846653845582831479745659515400600496924495126734034855093079409678972679437357214839982171145477176361262269745918006846514038581912855035708551928194570021580319763207789921551105301005426287946931158533412249192465262357570086725240703010818596082349108561001284425961226564834401390670581151718017823295725012285256140736239020762516807046006444867889249265155522806683032025150083090123304669458302688852062457877527149619184633718799750131574348829347326270986851157976558989061434166623604387215136704047883777989381689938202703479576389766527730600293671159027476668714686528164800501457974370847491832023767661615814977823249810287389957688103491615334117307461397819046185618525151467685434412690006620016632398276373182117550415158527306756099120669659066560549576484309437556920628703252659229472283714335632466531568526451775647231386129929137503407772029704706860625978145651512906240662958139386542454234825854602402825485251279851666230211071834266706885750671636527534327335163715921052330989234887259917833098189699523090063574316466160948934502514388708646128583651249095197130527934758817052637622282045070906598211262277372918011300567496410534709281579703501735841900254069456512838554290204601507136800798363190122992599220895350230758763895062684831466711684077250935899731436200574280972215983449766544614144003135237724108249347509852704791849154488766120449628954477280098372304023662989796361277147923886124574950134545566087914471463688620375104730015729935946398772617475085755810563009703607027355755885098848397646713170989536715798844459058530663344677024957699874321534975373696262925966968118491033327098607726458709298482296336891983410435471324729522941519286063716745542622090424305837393701815616931354706866214307651402078788624745773052192525410475864754295001344238357884171493510098119848366371300998507574711931409675757754829671515457987494027417969521718459415669993537948511057984084204206338661012207737942035754253311819894553633347626205470026942842691504787486694171360189709351483264764663240435199554415462635511364929131739434181390366591005954284582371500266147383539394428744970877848353050446395808554423020873967843601721635954595832810768787321855949253409569874799157012691970965175460692378053156911578984778838817029620323963088177392597382800945777622976897371735956066806827673650246964352481880290973122001132939943303702902207780002907558279527026047123702672080668767844080392776433997461460189423256655186824226869634427517500535076048700967704266633693258062852662887910790379938531945400585958839627799846648860037956369843215099275987200747311938796251121477927877186645699125150815847152742863925996565436638669104306487622881768188538986150907816046363280173125510687162372075143647261937868537459926889642807606321539616228083320406445452796854935853585746548950172725943303571308877800204192659894869233822070949899438873547211175257089115752731647701816496605141437505493514603388590651537448115125496010681934906086997565952539041951022067888889035177841149344309442008587137363801383132985634451508005513232452065560808551249767125861892049428167711739730812992705571402723793171223584129390838149643066336669739463090300351349909215536993923886348107471936889004097674921127475219568644473132819039936024495064414150113155755100989234947970118444412795671003104640619281287711794715326430305236386852142429150499063106932762261523771774784096688137540435690587572045833523125446141647193625052886821946765764755528517176373531766248342845148406513166960634481078071328778666000650849719019787960663561834287859652992101061066396071304834843501590252360102569161349278705106520596667155059107582366758380115451489773789077824795941440365390631866902073789947138767596884581248281881954010928362733491765971937195627527828227868988624057308440203719951418383163764113368970326412893932871973005536572411710393352639009298898964063770212955871679801267380861144057118584268684203386698331750765589451634283475543269662707500955535873039874677864695201547473532695400848271582240497100888380690735695799549266086638394708496741347469890944133502562211963628444650201309307175211768924136728759301603235052677011525894863373278542843949594431609476257582516851927650671916723869138872861062111377459695937781325444540189504757865842348206895492475222375686643583574702798670983605111512474779396742110676057942283008996120707950423679734695660082205033385361435334545608721847008277033893359682970368369974190746885536924883084387500289026256280713063999829991646403935730601666885816663864178331726199355719878869881153475972587323718434649364668148028066328083646050855007656801443928140914567714980541138099623960321804564593505323629973323333213230641831805512418089159402204005993907954707429221081652368803281905424115374956634516314334545180514963015909808000501921066474959195850751792481854529065232797312563943080308030753554046265683268670207581232472967936030190602866443085121914332164590147586232071314102718142560436015571779826560923670962115466253633337714792635209885726709344270510346058524397856247273122264579806784856689206869355317401062826442946939897240460796453532765099225023947093643653202820185266023215640780742116948359478116969245226428091955442838977213861095775994654463109243290251379558685394400424520422450544016283826951754096473873339081771616351992034879855651016421686934905532618114977974190064172460688928918866284812567253310732791936536631639516879076100666592274176536364065209450837104032587664611029849085237433302658277540121922713841723269449937876076296216751728588437086230608876991126155809578201047211466418989924773280516355797662149781490428929453418517177228261099851772584564778998326216246019432128410750039167002523698704284353196240955327501222203432765342251594937009088974588250582175266481092646729227237671395537238984617447388700243129385994755777309310150245392466937087634875888066041125853317473302121370392932228711166276311946918644548686196487357826870828754068133484431733565855805528042696076345292538514379067860002037164043003469275747371958765417470832169025393684194418340833086108687174760692454978739090339223128684769233890982606913912033845366082993589752374813646935259902153539606576596159475934305425318852464200785706719605048335906914394114768529348425661114163323714808134350801846037367933412261648820669764027198909030555549718560076858337553835720790763910655967988474081875522754528189645147778737698039486823235044206462335404710830433937499999694725884991118061465690591777920801927419470936687461625255560840568208096355285825805741854445002275724673521405975311401251680125697049483276192021824468611505024098445866885498349981003061641608870232888301299541350013607592532575780069605994121308582692799227307648798622449836305777886822596079270638270478468367334214257771849271989418570906989426381910493525303691529032809281556861104518936797829483304615287287339137126250176107319733186945630939178640719666217250769314940247401415407657611019917246626445553387534018709591843284345259674372514647687075819201774593216342568943351171134663079958879813094773976775859282223166942074606208223021377158071703582660303550235008640243256747185551207529665317024922289386308114598275535861724472398588904082693143675085318489480591642540758457423484098243759456539065716829741565499965531898082427161388795035798834653981321635355015131978646963548495267536839598740272759184163013193121313777368738718212837081980805772622890549946983509529355449787682251166059701069551998934435984489097410234946069720217677323632640163212103276572840659266141590183833373868392387740371144907919205753515617013627687121650839244310742761303274575415069070943980619065864757774708615395155916747817531738459220743631204854652617896277485563244952529064736922257788632471570404850737484098281717975361565508599401949713124573213937782406995083068895228048049973542982871665716655873274043503609369064319793557231086325076106608730959706341196379189020701284971723341543183362110501959354208201196801770316523813586736615870532851186568744739625006777493839609744722933296079726255074950735091878206625786658726196702647906901865105557431291303955915831091503360860132825006173697138914320159897599393323487709202480778019291034142487109151104084378202184633450718244994440189734236795538762644994540028025268190686300760083500130509908570608260889387471270409938751510207485116441207576855033608016822484195403762396040855832679641485692002946153680299538202002432627910092918353057893358426332526940746416903275813775716557901613801141875122615842874575263853011657363972376513918829841287401411217305570419604267714257262339203459036759635897715127060901959488800934469053638183927260075458773674335001954688215178862510500725159703828289866845024300539152058084835551195121116072116436979091096481844113842248493505607668647796640656350096752677141603072166030882572257960069744815882857382645307607634504948255434708104603984998967016070199782247234390117325748856395913685016367880851545477865014530017797687719740536218747116523379870504056936231804610149741331903085936215629688560898831143797929254088171064483835128810717491779618773130472683033573514297779605525287796246734258144414215313267548093815733463703512628588364537613576984722717958807479981470981001384439976188724826735839945294616698328641319919111187336750387522200833562935525686342171170577023285195790485254078452170115755039856640369315279388424967315379469938060116124177217831376704488687422490494349728761790247841384544100177339696003124699820227328016975218348489610585272880949794613296484580035603241770212111614823104759222866982867802667720742110238142788084079257803375653054649380708350239712994224886853997892736224299610666025090073076031058220220947327133050936655933936166805445779481923517765675833412986421771709398319302514500606718896555226148867396290787267813194708525741013346022004382220237860516575862347106906658652122689565741888504701176832156858353611559548653159962475076836616867027185459816515126826920664959178567003933462753272244299441582913162990431991848458975231353893382973842954217751029807792445898314294730743866370607168030725318940864929945603917719177923685321019894815258974499617750657799551760706441673056736416494254702953263093968457096087932912699104522603313043792700017137470927249205423672190617569248928259592817519320912983598306466094587403716232891595588356910025879767569310646169439663115326738798850360507826569068981991931988405217297970721878214318197864145644964134101434477599266275716962137969678295285068815896156464685719456159782795989917616619187658480063202066571937996518804938921792718825110549922422635781076748138567902126568422747234354079607902180328324144587968780278010093167524298779292517898028380446378000625601936965687321280663228197874715275100779962592804439960012459253183365598634450751014657480163501870814954402939554275892651073076159004474506491736904608373785011696436477392586971594376477415380243014189078520073821293939383236000985676653782659005495905661634501845245948664422360590380343706650672853512003087319884289560238334997709086716901280542331238756181948238259678446443471458377928817334450024094066776239177323151258552337776069472006253255094840748172907662163037072659553938255754368942275809619647387434853326358395660379311711685004054476290507754672044120789562502856918598316154353410452337571046320875787278223110473716245342417538464567796045146251903979386468527694909831520389210179295704632783003654155114517912038512712334283192012415010182897996274790975192917090046582071789057388797082921485890032354944110049603752790204268896331663927282054478144708023483766649747617551987316397690107585149746583106424995590285916941731800274268444831178868213374978953951311212985491557698667853256798277822495887589459083055840102664589859338346874448562077775104059645440430863336016159334124489033856231075222622402453978009481797906557644503591391791992111897656894309338699004283191847998303509281378094525383183858203044680793972111551099400970734861136294898615302406337695080551847659214424014909373781094712918359627950635710514120705624992597088063132664591127912526401348043110715515570264600467588240572122409486698179465501133145518318311832424215766504151035305196638485276107191444282962534786352381967026969448361680463020399170855003308003197956093450589891293220955797796703240452314578718031990800238411477558782916476713390221359212957789644648211407623809860172581977135968791383409111073556061972540662880858687940743206904294817445492088451883764072268413566181154481184243638556215008365940628334514772713458097916781478335683572250946635191311525362184342559843357999045465093454381236147659526274792730556708832217793805516525853963321688033896007459134294656964916451564749939288446796161007452013222221642755409348986008207633381953962130956346733817821020731606557935831954189517262608661795054713649068229822045517531959366955163817649151966338646463138907790676271569277588878678553095593513697024082088080620119751817629910373387906777268066642335890070260441845503116795223695379099851394723298753438473291681583134481337976772946857605366506848421639013131977194907876446825523715744454007702904444236033810280431000975471659475603745965601552035617040133137816114593316052348328805518849222939094071051898920157714629227175260851110093181594755783100625795422640474522633275234547408963223410695358446657736959072159672358596587262157837992273755575410594085387394174288763164212675300116493450505350527419055225805540171034383501085782039258213815432687119879469633308824835877944869068609042441933377387868834112227389971048945715242034009784530372800724018165580046110478248313447269556036247942534105045631030205695077510050130209110993521446642053842944637958948579116459115620435223234130580328569951034947046315729049322628758577845630318140639757060142369988207670629408170278429762469364305740974604129410074612480077432987870844745460546638711015384442981059825262882120464038880337286934170671476908094492316839240504803090847332396985817128016033132279949089033773254782669944605668853046445507108101735687046619063410925908197420723896088745113419481858310824474136486649507267065433366098115629901967852024422879434186494701644507620486215155022482885060181844242027888505312696661078352078077280021083654328405109831362359044326108351318561985271182471192918316004727665940717545973962669884993477944683665685556019457717554328226232643955448514276037072252378541046819199700109901286416364548260902850402185288498952503636656925313942145176856398415389189780837935394854048372842562154498907185840081474253886098283604518597257775961993223795878754851267052855334797122163892060288442061933403711922226672133361331455562652132709479605799636003954204664584103509388609829180733701347699584650697630836976511666774423329427995174532496111194351343437210545177457484278066070595349127665119066694838018351824064762495565094610768215129978388430005136696392851116717757376759323868397113285931805630872040294734938043215177554850368729205847828881133931231530176667819784980307652921954583587922533889536316359302908522830969428128689204740857727667482852478100378733928175440053777480062759240552389650489360949565997155418716233425797040437488401645677598040432029592475772195191842503203196182708564427955015667962967792250946788266086374965829153843449723931114853172242673846966038853619645014154246275944789609831767583675464122339045350736298048070564385845529763812345845315729865053118901648817411153040612134415262563242794702099652961609884373019536344116118989969281797714493512501051479230843132925292830237043829907238746440040100625745251248911377954514302023524629222329048394662560184875015032709789337168741533838478913083146638177424938228533859600000835881011273311972080137528412102937898337478699214034715401946700868146483921286958331465799708368925294415672062728882089478254440479656525540414558606234297647347363653581791613006590572083330351923535865081878290502646970762089692733034517530647772530449154116855104136710912509318085984400029381090321632970808059405717360133425259306224398320251714807582119992411167989961932855392980873238537357260748245186648367843769107263842692589257371766457750322736297490840726426449090267118685811857032375629369973811545439123841534861378324448028451253500987540484884780236606695741480307148647751507135314360385271936448490105050558698098175552746817184710392932617226246826456310395143198007212438289452000394591964197573322367630117084124454078773930521266335705119433736797039497174208938678109383212606503742318055355636968086615424693190927231953667897996419798920375659578965738868457364852653107106108285096448693945385403199016716818135680366919463453481770668029045058774322705592777664418509007823123984340358698581155256368822517121596834814171191752559713649276979481683990027413361156152021719559272998478673963811247867494825549988544342249782973072163809823818427145641379826637260790099096031770949238967538703164216941550765008231131307932294384737436537021026570422708511147223514092583821669990793583518956036716447311425915352395434832754089225033284253031497341298406396572422619960406163739472511386250106673718239382312641772604460280875951250313136835402927948651004309779566269876027563216019561632669638769067974794077011907295440124248733503979454164459675619827609391279874011501720129202288618230933248652375438472577808119835058963593478074497603167605061326680420573697239835325662419506994755009081039169377678049972002887667898855635243895823365683175435591922639522322753884834770274156109358613605401852021850209430310333464420783356327134462822446886733980643194820625677349116802158752840153950512407732524913921921546236767617898372394226985404439624968522856178483742020745204868549399253718920044801721211979464039066854561595894343579759234696176131179136589219558409031805125403175326747734685363017407460355835993782929292584115439365663821015281004082309530932018907960881903746369816152351753487483737624907940444599452293845598701765784923761343162661060272716502244808971702158023970859618627130217894165474979056230930823152171397683428212409530828955955067211653843851054134883116837587968020651699504802276545847852143082837581962200074160424203775932556883090204348401772021985873415998808574922823030301918588109369965686011155922478471659746691666625290736253837636958692091924662045241769355369270514869689588734378155991615726191580163526743577282255821582346186741505308676651155031885578978136194805470024717121822451625994137360406335893309024126858135336242240534819971269156796861899980421218396705500973692227593657462956711526518375104301990224067224343016111149469636834484115739883536197028616840315494119911292583605454012279895156700103169832601879792163132410613628514470618489544015150469772511511580877221787074910485759179092881988457233259094603561402137560796201445229267359298408041701607948317855730936992987858903775371124848357431836994384291976845968822927180102763607730125843193941076628287080656897081182717569505075757178611577803262277969230637188581407151739298543273411241190329261123709066022498401217710969235926728577612266203918661599702927734135582295251706063175554893447704589862027268069483179102875792242946380117963407104759239980204517361186838204488251967267608118597271132624789184407531014202343014496995177058248860947680855895566208858737147436667898609254119358223136438864947301938922970308928454370979339687035900551950832098205638251465831323568757812052272564247990098677312771833753806149175755813235249328476796041775810095008709420412517059683038988166310640211759229164381982253719654094693629985543932702020300383936787780530354276392359160881132160582908634720237402659777591765766706095588496961198849503551796679282698778098744449336571211948174091771631828728261167466447376798138162338476379392994694065509681313436153345026164069345354036225748475683666829616704376299885140182603171526455065094786868148769874760929656344918066199473157096599704325075173603187686445816816540134109979832483972573828769214727938427110993392947342854511574452020789772494711400103645364225827364902117348720949729966443653741371655797663627798585650747289357339920420800571600295374023780527523668682908496625576315593174234270861736305869854980704876504574478619538142433778353080914715777753172959188786688616726092381770406783165835323160085816889131596822934183271773296954423239121528280250924746395339041927041283471724452483003781035543666755901899939301680857756983500999660571181638882132143303235468541057964661632343904996606890941220661486938594356297526387612146678545053964143484501114176917067711585733838925000030084009281311315539517041928699299604062809978572733052921332037668856133892815355654143940080035622252487361770040555803607757086571384963455479133248551642431950942423450163375059575114678098300289104763246645949774326711504765596323611633966324978857016710198534082998496753763750171364933582392734585817254165648592666309402283375548208980099468883687135901045621536286099425296684338222054216377394410222468923758979896823370310466307095524301009757401577147416547961380777286221499499269226460840281469850293340703235882640749540085103681463120071570908471633965607374059498697127229506092329837799061230019768608257142994668174245215865110754236689171856517865351713591119130905504444349286568318022223620968667326242107850977681192672083275912799921915472228496507060133177211137420682834070914293335993103666745708958346429978890274278329970229475207035659114954423521915529351586279252117761411662087128063102408085076254082078824540949813471690925832194534965872445642032973096952473596539933204581375574178449930321843323758339467582370608434307460845414952639603022602221544368234422858481693627422663060790011787206655597600823047977867037333845944816647728410584005242652596507035859273555818097426908334602007268485300435782933715732410995005936607459110931718596579896653030409556439525109026024890278884758905244826944183824732106062503790282182723331659157829163625872585334652167087859447359157415359406416050172896105417108644156567516210983599785690835650535941285137743481252267848417001033336340983516421958108045045898166559622846760484574922294703565403116238147247544856303045309461123277772241303660263475502884703221228351014250509158171087489973209449788690243878892508898719869782982474459590519336752359245960166799470868871218872941689853634618069553974681799486831962386668997175200400465927415984838146070800866452166460203600358742795758440682459850130047943144548627060041829750891628216725949486157653329877885564537827210033700981942224428961079363046715015527229197700473524596804250373477902715157550885730217153589162790851734898330257897499130383154946733794965865101876678115818599440413826639127352457685111128828101312987953905238552989459715454802462425832211372542654968007955301213506068842526010441917212752656296205376668069275759736515944908422377801500841064901389923947020113065269635851015061662953684768366699278193813854787100912931153010318724706269391239181368632971957697288565980325785763145481640989833971722124197869283091500267085930704556754953951426025313954751474079889553188461116756568289415757764839367228627956398965679064917275817366945125332243732579328864220661409241014143396139693250655276004959926697922573088916231085527863035609730705737665633441655514595192880853542351720339975719951815959833443567813808114233538170096776485675568490758294989908976161147891861214284948247777872672911096422225262680381679180225232255473917031299403329013113481914823277561872051265781837404284772774620598173150853971248573034220628679661551985357812827679333852360625993624586814100210133572540324433686938872678432315278946299248458583531831408107794866292850812810378616175474236904619181546358559468731500865603186959146960758577108286444282642764307636466121812505611374871626824576292426578248651409084565879151174400405990560712558642631627064961162557812643802727379086619423931617094475628450996501036515305399669031319782728786244934279558397631679186399900282876578920335020822588312382396317746213509006958582639776513062811341617262858246669465689492875691990750421451842579656764047750619211059114347313306936102349848148231865412583700500129793667816635076550416073107584446236518242706117469542551843685884408018530580504351703910527603041303048720412732251041311169138986219520603692347667910281701224865974515998983582443107558610378300314211317648800327108675142244362484358356122572944882871649755828064953819583998310885900981064005622988157459691492192563933138382739798540383583008071011969333414788145993289913532808958433436976102212774341773104284027951175116250777923684386891188719222402495861375257136802791113481500844577757834792584833972386832283447379744346122282933384409552420235543190296809904402202073334366282656119097568610721422363012709372684326250543540292786422136577792604113216757836790218208926639572159713924891264591626469256474232672503140682214508294417124588568951727387093023068637890824811910699473226861755057892395633650534373449561375152396575123944286025411650707549190844330094048135230289598859047356931843231227454581149695911592892579290168005696956922863407155990310027001430831553353870872160945430088038467999270274765975704307442611612905987749497268765294864925002471454030587250553408772142452120823569033712273607971194446482230413534941503508743683234139225086675408356333455307522067886247432297517746093707793600595733451224635658508473267495179694479481123139325284344606650917399432128823152973407024075809576518071402767601847421100837695054209376074414155240451890713512299676633197014509629058677150338022584155963101327937372884638098249943357876571217684523112801493258137739929637165714414264599605086669357694385580953228408225769636639473726941415592677046677363884391381373320390148930911566684069979884100850352581964910826530457361307625575724786959893123997488151743591998325230210038271069321088189623592785424317980912283111754618173084637823197381103280423815318982220411732260828730374221711606671576196057305652978773500902883153428703534978912096952244870562834605971425051865937608509533159470784682935122155540764895569779645839053357377826632217352739340704067933730291522187652750663581096615307649467099728701345809105629408111135435081982498665033108737658009328982628269655980479220610654953214336165506433859972555922412679323298868964556922343871905781892221571789163338469055995052221282701890537750052047189353184727544384938062923110762277942090083845829475665885671120825222932734818387299924113407107037150097834645680592226795735053052189328243429912672522250359791641693903012547071072951881347606975476389556362281686788238781385810884414837036454162605597405759350735222332691234014040965535127301265583033397839330599431469947413011587310961182548704287495925357437639978742149286080605307289863765442484358013168308510058057180511846121050019594184107696514598259476483629000963130647476447041224615946015534006336816598473792148437777530704441097058595988453310536573431959998333867026673370661767378737051310307399554406557867182742720261530567342546259113075850305115862151764401722574378594675797287536683602297110154964013545393685331966984247097649749776893234349361598595662613151388998133898709395747602366936461063921195044240846151739815403291151164094284758553957029692583419262331961696690414172202666190175790533058296577217458155108126938249985549364463885074677211918892222169365931232680981430521746240734057779319575944306343433171071644984787859272946237927678233802345381214574463200491313813193378091382215783972813354049045280686900698935439651470790961534520128240124037961529084283097656150234516574249056962946734542575307674814210126890319169552540333755913877232383157463584766055595118719685607272957286380383380785285186308241059596354805101284417369457947920087998533631071364595467580103097933384030034802422100467928976467864135166400439805777639692716828436819763800269791514193025769413110156085210517752457385950023038105107779383186744525596338269703691429419693192121248850982899923281186957207421429916310926078642270834979993475929753693155934023226217475457756700317040969152225888590987962051881191101575554813422252787223444939188125243408270627888394415971577894395403191430954029297002356235828913009639585871353979214054862132476690632823807798903883389520999894090231450445991610790107383092183583604392607781651867895835639241825704985649916267541424921390238581099856363747620069290581870579799512376451534975354768417713713878162278344288790796615487470720641093755571340878463185772213863940618747119338325783965471916298622966808407153061155277631792119287495709412658397427437375368082543124409653966778541269498696284362660333004261376054015486445582370293618447241592174587272729059978405466806725608309756638857009095194699602656440485025990774691511493683876411958095971978590984877432781433866667614599743179581868439538311361274790650181658749582110860813498686411734808886226852181444333191441024874565759860837372973487049166704505151148390167735593330723713472697003473531884961563170669365920234398960892176506161967892969367239546117105047288598958524957005392140026826932863348323361951937016504842119436867493544146821780758211695469372023273274949883770551775480478120635777590211677311515959137774741273653878665193696140591707177326685656097507237707014672175291666026744583689650054244794192415518947044872162151983776951654649168677088069754955735336781333740592236340227560275596059738418418762712939733649231845454322688562773340382327096531028042786391724094524668918337388000143142361616645846313538731091816965701793687208933639915044980114465601200199625193641093271027421206320136559817563471620549553301209782675883761692894966735588356610460853833789326188854682181460726773782034340019865267912775671412455904112234791603591346963188977380069606885735305595510098399356946511931366538391561440136131715255890410684148238391651498425335100508033925530227822726083714582912075239537839775317642274203796313490554510733985187150290220646594218956574839077673057463498903638804725790733818325418233043273081687478617771541144320048749991312000695449400846095886917636949675552105508307435949832661938569769659810594408698870816816481728709355932383694366353442845019013333597061948300822954410366573175339847941306149401281159975518400592081527946332049381995830681769189449755724483581083981828616010107065747729506472012515146189035761486684851209227782237874994216393361865407156688668808032010447571220386571336425472222278523429250098285153360782249648757306595781645035123856884341315493585746623321087239122845210761040827506596313617285824842438716596687243980551982891199336296119508294278222388867424678790023152785441634983341733973075704054454524972759730753288195352812757825677578738419816240327505315172052477043468027501977855873591179583866031109549886880012214944467042071760635452740248274440312985623159703541125098030590163197890241530606407737470972843398058789905124692136204201332238733107032923784176524274470590171864873705376793187344657874432508369104678062623360899106045163856177896288963545854032799852351585553165971423510301355865290453323138973964212600639096337920698794100702082618964640905578363477712044239358012507966117439828504947297350480644063665658584993991227921623194817349759447806720554589538092122677624225558733138692557677197418260369776914670282932892181031011417079059877217422843873307742081397533106078303318483852676798638946560555690166121985341531272696655795177565222213535627956476811471544524383897197970590274733143706086208192864205494789370965193041732425371823160628066288258901835412808666103817686600875787243885327122596309732469360264469343500951594693069916592203656240303238902233503227748230253856377860085444186899433646929235465703185598861079916372050279123001446427206549934494330008638050786677740090079292768751409094648631592167374573606973845981389593662405696307395124942831476284670455770526079916222449884637659663029315515447440922382720641649955662838693864450176193208994657395821796217572837195913848661368479097670306158341118526949221352562548017389749389988917973912050122617796223444517369656425195591649847638052142736909107365645815281978436780292257112826025201009435886133794866403891154684800549885897984437275336640900472292156389827072238456673106191584927553777323636719609828748342599080067609190958473595754253817103063704924451276313496070322142192989528574349871415454380292174584409622207653355776312426176244915202995019160497710145762285315478035564442769978156961440555907368738475183621897413690995059581531890354039946240929899361566894524244891262480395991733758616647459253467185039859209313927337391160033483075914382927049039179829628125291131898647624298452058415133975620533245754940390310373511352495420604312432026889963512241998686612761603337690703740611951588748761502634310045816111775434994630387111269351415921460550259821243047495391420355399246010525120383630075452077444775942067248354087450894511589497575552818947465083688219950560581897765599599176197479446047820375537659072754442740997390249796992624825360885381041554630834256749476360193543334165846496307084950636422427734498244890744183831674026208384763621315885353192331297092219066761024244097750602176158754387643184512779466821815858454076165598406905328610956495540601036595157202960966845363415591174438161058652255022228880517480369138368718377480180138780719535262290143510523053669531943649986587607937710010090082560850112510814182994452677904317223502761974951259154177500209117104713793156498736102527688054627681817977649756481564647757847486588409299820613936476761462047872591356570151663359958978953492290185195754827234768225384856327780197662286101346065347661350842830713994925952261531122202018582742427368398912840204900834260536048525646424739674251372559149214282563435791871781731924242759188218944190315795363886530211386556699446533800218154171442981240281476233868571651606181754266404263164451966729669070029630102195554965465917574652192920863393189701254438237556545082419849935041607890525472838966008751157996531416461909165721516242998679221190181164706935524751605496257844650442834925925514184517184676972566344648360365804873054931776998341478566412406974218969315709206316386795088058525275856182667920079779261544062894065353335104587881741216426871483083974380236489325121569988862075891257068741632666476894466993398137384220062290427809303755034906982800751433448497750883684117246727602991210307879461198790710181034741415764427417272274044736214096199666739270075548300451784225156500523148841824108324756684649859240111993055141793630719385045889594798400910954305762950953529257447031239295038740962215090226756674527605781192629281837083087492271619261156729625104534532074844408964175562679385263510995763026514260339460916581834073801899691554413179513606101254231645846364258923352494015742754726621560962009235020567883567821360563767311841480717951336921600621798885196535039711986915795900805472018778051317993024014521367240737154312031445542472256655948224128736980641389075144467905194264677016852294548501592041222406665755639541122270009766695386236256624911233094471424505214348777358548865690855831095931635376894851094732129085132156190404954138914052806146847594840043926229041332346782258461995514723310882201332447436481217154876987675698978699686059162607439972683552509957976909919132555794791390620666881174122414021000445012650296140416596352082943845490129715993531924946590966512667211888712379685934972618213029346160740740118662337430595549587972202408645575592102143432363270742175168068698973150337351067990344173830916802173085134464701846748442020393374990142702143396838614594363476115744674507595264058155635442915130903695127222016611964615201221996610448447877440692701049969724006661119386047479046677105379511722821644815811383849391924474160603189110062111307542825450581105075908806124523320450853118478409674234369037660385875705014987477235140378315111358345431528532434802442098077824439987915639391031592924663042011056604178442445993136378402891570119647692525077891867882343333538566420213967028648223453648954429114337617860213791309583177433053670035437403356087894509875804433672184753235324897355445246717773463276160500790951947073921453092808871402291623426961018709769236868185203776804659048235727038549537418686305787028441140290190654194547740858706023144925447811398634015148450713145604787416098298574834614149478806289224920948704231113063541026234670891889708136852082535786378349947689479644555545934806486573825292077292030947650450333107476790545817595718447686274820083829904618681799162149454944280143158505913237610709337150784226371064455508271821224200315860961444612421931214935452190630475197126910184199710977402744800123640753540577198100181739563176715018600869291838348060710018021303632958251192556293413024491700467505622951077522520262523544203337811355244501755295955924635705251774780093048282887899015549149339462921680151995859243470880435737320617370919191500387958425889397501874152772284946682153904515925469100842998790587932926040534696169246977534945648886593638702955105269705864467805061537609304482943067065739346391017329544461229617431271483791319543200100146216765570788810404630312438794930090327035362664521265210582722551746599060345852441696058104659719306930945119454129022545886023161123132512819875418599273289630285169075179756008845872918736036998978467777104051327783020774524460961923044995265965246938117329762701104533171653465682511295283822408412551322727357783103181436617869277584226051019484044306982621186621522417707129774036544126226236662907444357350693342429028604765933192883854592673530878348529496074388620329295317580929284444295046172583247380716549265355839862045636342196065023358110620310921274576016008647610315742058426779419016496754305729663187184008233130722904884230550579997745952451316900739135186396058025282665830300866948618511556567740231482833755142687914005290294903519084294450731588634554158044491973974378390111340650180592296176749475474001343221997204383453383504077492981169780914282572655765220203385602583354405233806610613094578557294471255626624093796793921486626495879629645007190688155125769376192905032547355550406902957475482541502922420842548127129145261523250068953651714352973110796828340024346635410671819330833141276518284999863954623242442712763640932932858219605517025191826930698272503433424011607384906396638376922464337291767744103264094395540975133449701352730206528536375563980216938246430060548536403895754274944343838486689072273501535387993323708660616022173860842859740577141590895992868914557068002826416206873877114075520205208554245840039588722538937111440945937758724876829784598155388061177969334493495283449156885307944655350360488136048006022019478711243369672338739384992250181201774687355769202540371826812240714314557805393094155487410507531981528066714870317158812510854631992620186850614273075424399492109417119138478923146013094588384266371389357316230277032427746626020785482858545250197717735291104033628569636888150362967541382489668323636926697823829048587440528250978263310430086908262365082737394625111094285599356271457975990655811632862288885666973227919805957357702400125481794646445630632880287392156102623422562410300712025325799972491046654093080384555463158495517762737518231570323834541280157268468008602108428723296926614966690374598662358012781163323885466540674479942653626659478881536073436660589220613015976018998899301581366424987736786259646042449067033783408749957043048212511226934383025907537802314671748434243894607857928729983108077148963578290899802309553626479077110961381842031940374358121371257717097615852905125801853935660154125585905586193603725685706476992808305732572965087809947128855763787830617491358051590127834836680861477098494703776136909653591240107883560190778881187575344532446723247311693747618708976656039655676189297986710324198318147967544411838084550091767324360317850185757082767882155779704957404882325852880049541572760804080661756256319651323082316256270846971537449380862212654595985107422799426636385252596700619166763958689364284596598778856705295293385297444746902184096978232484533109207780922070760103672528195073616633208393871221551510811755268968549854292969226715007240622444022774734035569453206186930414539316308886453131848871058908357395408063018105903633325116678612334837776861307015456503040544725738440721173736222545298006551372436661809606775368517660422934037170923159133699374532059031887102254171059378768774276203400029189329843338848909354807562525005628299060329147844415587760452562753065486037473360740460266689119312731348986591610426302478286830398630962700981291533736973265613996099919132018395106393040275595595003721166723156733316005919305991577298227356177797461328121864887385286518209792050005721374298895906160182755572277474763965057712662891559397348521340247143924461822615123102654548007612414193554362889381699276064339180397229755305506385062735067795577861741670427892576826791501577323782741041937706569244128692755087023767611350756842464402544950994157053690337776822944380211937790272558128456088611481253852552202514013987298053427047033014859525626633543533309529745687255554504062882281410471206444031354988040505187983300752960216197914924486794181817702015659092949748661701680399782412016198907849776587722890061058711668929473176407876056491641827450734411719634357689247990683154426710244243421835689107361228826059490638434064332010514030976059707751982178227783739618646926838071205438259107251422850461880309455820587460364264010558592061814072100591203032993757378316519323806958406309012288753242358412175254061405783823080381026650186695164711137056339348941330615030009486626773533485062682583827985907584662789346223004891120417657748789841212420378830120085814237136695688030363561454255043140291713421541035663352884426608000763642912068690154240811103384744460098358082037687385170051668155217485400423235496727278061919545671646480789014199916532529256405361257637269413050738274492981830923880151924126727786636043751293163235040268567507368077814669248365999776609450310121206447080101516728889219137595119933395803351869698205008749963365439936775468051497903241540707864951744255858115895201164226021854975619525857850793455006943954422122348305552457533539657268280474006044102933050632544866493111974321025868498271984459969681748378165391588698052043883871475899507934423945720235708997273144421923601990439466965190551168420477937237466251233181404857405250950737213647933918446145100547415997833544353836804028181335819702152813798574974748602623307193693802632193937695350252347581762278513798881156305132174724341962691570571658946953924851266462295187662661496076302685944785328899347133134276395955430727718169533949177315129770133992136291470326412467886102561198291785830530900207333411173275811692920979180514141048045031077880593076629354820100981023077301139029234903688257292651042233599154633988224645424010136473674264873939036725651230833207800745087166775001107698773794992907908164937395269333198986306964569740930002875404069753971255491710403390426915693127846692061999134515583364602968529832004580395170478604931117546926511292850055252156834401750330806562763304109454135235780584160709056323478010627381968334806092552907455652489136833071267634824078275998238273168991955874409367464082640305142155127462030859723002427619511754134090978614480213197930021381921056207198590916563087129553900675388653660387023538124183008496286317036684734003551623277257024923947667273962282149214901361989214471741125729478313913580043497564395533672357738468042010891883418492741599234975401914056713015058629646344685421547194143516016522072985787139263617288652776625277789433559275569978893646299319821853993247412788810986005309102181776254278155280842980917075003705839698415223376573742922240334540181108344399390800269443412472048634689880324425767268657227750154704059547544684953194043906572221755109657654696051879856662890030783343423491980455573715629273464740953854086828919009669944030590727780493609222812183767241593938731199721382537210251876637128664518594594860618211245933589640010126167898192501846302053552342572873257899272953824499776430922749716829978300913784579306525278735127403130463870591742847562408900767092620276690623446698964924023519338753388907268189412343481455596430060999048093351736784191877449027770184329349653125618562727001313572098450223163823551286353466056017737728868593163666331226629373910131528192264870810114914771678258162458319642520501056032832193363241907224912698566443414834831755324864018472610485633704357794193477355316729908638063533418827954470154498904568939486911400230644818587425988307992803538774538858086414777163014262577370211399755694928402751666358477878906055055244833465164437981560300907091359914126761485071141275034481191038966261090556918226443010726938446890570413309998834880212299932810037314680738370969070196487622817486082278319698621730262994336116866010146191919305444467837142015698010591248838960632829291557930402724990995005042875884901550811181685644391930013963408928659516337456110911912254422130036560442742075539622522667500624191146752563872689993556423279868356948730920097374652572938131610840729878693667662041218167764537484003765212536702082971461344803853736644822822452303353426630689412581678430163835242821344533484606317925212128901381098391191042137912839907809130505961233918838823645168351712146696991857380723920507661660634909510121396668461246974830869102784550480672920197588719361533793990579180470654017799255929248857253180690694895128820156536666245142090972145320779907068728722786067235717209188287153318599767784965956890995734575314572855639149617512296917407391583169528383482797957892643693456777250005450606743502903211772633188841012336597913834304459842355479201197448294807540824085645312700057069856574839972933563886695705542248409241712480780678328510628229265049497848167067994319903337548923094596872187026264776798100806149879534201493551352509602398661250565504434332102052867690720865693373168893633807667367477206203695053019745117490754126125194771930586897997339307520995525889165481596742971269227625688913877691681684653085359882480644351327595674686284479116765262726049850836382218588097018049244774422632481149269990504972057565429490511745352059901144568065495058147013884253879660477947024306925850125233405346274702768394616865519735410458354534532829013996076020658869500415479243839437692785828407719550266152507998376441971703478253942850478652603883880666227367479373783153933562276313305512671297265609649089043455117552508163425763832586827769871529385264147880552901356672539122213167394441666882428444312453995947302199448974702573160110342257043576807203407214791588856636809263574636962289299825475329234350917067173183652224422367587677004179123314452852849621485330401192889489876661488536515566885471503007597034006921610151839632824880663425267413134077323127572977043267753966952930850225466647011977034390194657865552370438765076815843830785585112525570032283276331615058369662548903655506689009776684888897145850371035115453735451017336047553577745655398321162024260750341233152796896997158322255003544305191317643656272627211730152871447055747865741811472673509566376466759942674196733933125950666932643953798798484923519823035922992557974043688711045864384009123924547401703293481782317308614995666880829670395176748697895553802316621456744271174304763325688828476531468416425053489610137346465762286472929528034661517907823208506634395611769966731673540318232566087369984300307377359762546048919762067142106300669495015439200154923156653370846936147478867172348684260888264714352681695995115181839432043822402372473147238956616193080874091296504017525393062558036511793590386778930099213465527809416161393938623235898830658649307667593765110376425126604884721347530715001738521379788866820855279076171755212629943680723685795998554755421494962691933689567776243405824649139861941123072278301526005443537751385837805796528365107151429721273359200978904828349274608221833758243253364491921071752022460341409557698620099225372866099069351415071415827603242865930565936688842434587801270093279357038566738636801193817681416398790565701691391572657082969059277688439636383225492400389039114557579920838838955747404536170589503285422751789220890799516958400896654124512802108209702445106415622533024163888258562445470355739874167030147318959481903139671256180382632891442009491962362539069773633687052488595005791566552807693970305080223211011273783412725820935572075874914561948497292238792330250909022091830951512926213497731306230975287147589243812860368984060120442322477283426192905481522531673980111145059780552096282125605196305595643126676561647678495358231031064974895843323545763986173199815816345940531198418436153875444790712620816862046046418165829790871075226291278058004672881678372256884292208299254460974079177213992177011100912662301126503015258700129393018555518262534749923026318980397116472875243086270785070969365362685072762455095851908494522429741405531174102071782917112033224921021074554979566548212337089609736114461976350893101100908786314069835119401092387608778200053635357842751889398766082177340366758997162081977606026653339830929470748433911004842751840348964164341143953473342237882025796542257366844120349884779209950765284829825458641438502909859215699202616569775011201671077469893827758042989879554386246361971701066369479080489726786100497172990744571613916019577689998265006354614756510214503994561773831235283815089829152444738659305530991278754439474870209116047677235367972150952595270988989270389404647818578958837348262655986658897451448450374625556530797507220745665542074660605521918576672532158971086406595195631949827071896304359900784250884831567490218544849712082265264529880992417567514335728956022879121471997051234300731132915612864059445515458837175256640536891593644994097873423075305949914119977536397057077707111284938158701839536216247579740312675580677149363622106114876277941494454606160539492264422047194787201781821274851173568991702089794967912774614879882203384661220941440425418467083022524147874544983504099005127407684568989031204789567569172157269334306642992169353514957260755362025886210256643085509762856015292150845969929850194962850986844492658666234505701901316162750565498198197074008372783294902267031812519547684201955873921040799871652056050753978800354559615272023876906444162673121665166830119688336832604982388756001619869506951051086411011261812149004547096664996819751232082912106569967539714822868057978379033663256011803107815067203040158492843410229114196924406490736119194193257448385876639393109246686234272620465529849889265609455427866289992799271952723613478691366376533342517487428198249596455561298789549042055866934734690974735841563526452122405232554419216825613136431643012309316541108451772414574921445668142080511340477096602002851135277068701271575613088689377046252782212283711319439973495023979989091614634968900850544229109008064927456943771516836549999860578097585048948569851767455224446202869094028970731612491952287786505966671029434251673035438591457799764230122617229776575013556685544778641320805349610415129070862017443806440801095411630414637556644080223321110478900432832480746535044631396357304072712831544610807194861931759991254747425795035055202790367746923193914035258230584792043258852955544218955602018081631979882794546070574389357226604374419947110170174493227037620647726289953233758998382240848623132268400568366028791855900786822643028015944301017784820423643411928751707981505928356021479677815737776667696721434851702944484237804024747701923786822351143611841217629831307755337464220956709764551368404921223030254321124150774760059206271174902256666524993166527677671127118293880605788478626087231865222795013860050904920469406621803051303200377215438553713425796547162963406184704510177879343837253440013477956071243267712798256133249515277386029579498883440475283256052214988803810764702985090118919240342513183034706285211956253559750533773937333225846722137699552704660666527410969910899813602760637750387370962983844707278766209642012175863316620519934095219208174870059960508738871851960247719924460822208691585085409179920758892961919594386891864137703262927992657525300564610292745649385776339466033060315875833436800850648766167809302661480209971608770312349569199108527923973105330738065083544674602511813091495650879098982301380827023333047395136303292222083089300654541536809289290865974961491024392885993630165731351575570907033533298680325914712300922104648968424432545023749633508021792970507517760007253670120365253606371358664210256710758575550114771039790512740019190533000582188798476403729741878247311057287303210862599681468684457194835903509175234681090730000696605064720258236825186278578969548431216865022794860700844940834321649196322174649535400075480696038304757642015912510268670382851119890318256898474902362963761975526290210393571100309073757630672958860685858769577404522069247254049740058626565958274672015377376394748157684885890061061305858569454863059011123743842084617319259792905878591563537267753330183619978033266116058108667630818048628614142505853191276691914231305541543762645512643086082436443363714600325673461045917835606982066243844846862190113510286517825100452297705940849581268212651086971270922333464805451125661815116248709532196682984806205346614280299742039493518098221559244006207558230369847351156637056356305356435686788250863908867390657201826384447908094935850887458953165014664603157459232104228722874017362256022137624126127048756384804226482294174801094371335333639355815600084341625132949910096054991685650684555346392905005052793650802735387525266361675368858933935285513190599559923492359740741013332358765675484224269614483027820395190424626390491627992026352379814304927919046198922022766092365160503682271815444711723305498983189405856577172171422688711078300925724710074413140155529735694504191476251549625303626775443013257726560810906576636655980963557653372862513723503376262263139974407842296149519138667070050406960635474459884928225216886643693812871702115365184543416982462306353709305079073532197218286430960545826821281426642957107308828225205201561738760654742455773627132259012860679100436275210421836907993734968752247792016984785255248690986266084155550374333941395951600447602901232604167525516481664656410220189051293125789503376055354457142876308688046948943629366621991747969032993080794617557874455568399678603949612543177378268667913537344565382013041749018434339448604744105829214825255353545401329316386136023486254125856027078909751499056491338819279856310156641153984171775950309079064937211073209610640552177167364907599346616515256451302805763346615603956848795247952117918777699215316582002217428485664599782758844017222619212115578985721975369982874277276294145056717248836356758288220339279655832731973475126361133852967551114975647219723384380715730259230600850878287922192033145005795913951308542548311770853714617470532861562010261334725699800846057821807299996295533322913809527227878375828941723820069485468868469795209894275307081910983359785730543086749541314284584598735162357982020742955783184138417070723195940584628922312527411533010581644240366396145493074959285868838329374957024394605041670374525364922640060939265364765802829936850278484712059503497622174418102135564957580199187034597453591057237732878441030978661447024326328896045530597670732829077630739538014558569370278112545753029652109133725202785081968740405693871223196823243297815354948840907847104898688000834917256036409595515674426551343104488477869822178769185981365715398025233346248507005930699449437718493418240803449225436384974761664045220837844198055468324112600275160444244457026643260425334494996563318487664425140078114365801890332401977577734213051031025471170238188542788865500302592602952517689077349909297704606677418867841541471337858514861656646964402642028870510929135133248952656407231263647695653414259752972507658672284491743541853878889043629017087460010710558584213737639885163664158406860188683083745786979845401678952762628831736714145976414084091891133244252576685410622358442549363552897765571835574338902926724997278203901922439518880970398579619538987941410059152118177554407783692625426018515023533712308245864576876401426766985264040904498338476395339012921152809912851085173341984335798607401844356179598084141889445246046422809896612905611816325979401434747070210549849167505635363092895952081754036188970316114846814912655833437745343107691945360802390934088596233211208962174538375739290051724708874574424273292890470824671356218170078924494740989989113210937069879713125289968779336159811180724062697092759402264095476761702916589421939046977886360563476182725936274476138712760330038125493138943305029087307278383176234699263448683497222959987847406247740479601128937758125867933507519082624768433005091873296877685848784453338556621137202281593350542179891928866739899247291824889645274134592351415614104666552982147375437559572564571638151925935494613347927482120347023952112631067368951900371006497488819096508822089866014884657235842046698114652422493608172873845974271050652185573699251052439957439834941467295670257044287255676818125174517380319735582879895350426515969423753120660047251194680821276243906269029887685407101156915771765487369635868296638403089098628708974006588595626687851733763449337682216460951346296701814430815672907903680503248675936510277728532383944984242754160172281833877579810011763217284622024411140058798182017441583394541161135766253707594467962419210161181619858097632976833511426889195339876987735583351377303562938573958737645040003053308339284856063370372887723561538290534395976495479276028594256505693679398772552192897746914247703774973889429041452572274912932677436173204746848104968700645574538627803073573144812439793572982914309414995679557265553797071336903405745938220074046151412204815817994876667537487607204294127822945899336645541663013895428102822757312634185697609709232805067975431669217978411007992963437598872514176894683529902527413047069915469566461664575020163448813876577677417709340957353461104452941361757385422032660910737633228947107103457896210892773334815628284298175561096938172995957251888431401749825211311469735189510897321261547229507944603690279822338903875778878086388355900295999368598382901119655838295417648843422126603577514288396099128440725931376082020026479556484413277480420857897699504183702827546546590410825989596404518925753780636983831686171122274934680240834601000385950588184703967161497548991854250926738644887146053430739454678548025085122520759363662537470496466817086655466167162561544620466976821166476456886409242458739404775705981975105539024175847912324442912087208878185331359615469054131019836195910534549953062619345664595218419861848021470457586556922558572682940730019904313516337302985302887164693702615261409164770236806194917453690238433420587524419873907924707111688031453452720068719937632094266827688008135894797567805063773078195044133712756213216837176138358225997787695400832466277570709304979902127311853056129771935615755324874724341067873787768810073800647632916119422008424438611249952346475796912889478606599210116984041993518501353960739494348057012119399088790422995184514473789953511694944792841024710189745031987903268864284900941975068717570967773563521074783223341058312178649202564021055459557756021585299611757102189923738615692985766392944508741664158656939691687939091901328522963628231063173437384203611841265731134658049462699259445972519442119288267431736063557103042449008904442001466379320322133676861625522713734758933875412120683762601220702736553071991182713662209734952964301057673429058929615603959400898134118419152387067852976354507673494956448277001779816638701009976411799955351565263406695318634785166027047657962428951750806255235792296773182861383806509861453027084394158735949236658210253080701102691184690491229980071476710104374441887984049156716312606744627294552269773498036224461359520800110786387075430155115460056459130052214770281263886195003770108555571840264314418145268476423449560036681602361873684449988588182874307810962724214984509362153937217230674738327935318235563297457431844558975731862130198881565934320497806884996315613989209003702806966913613209076739391298502026611642612497657680896640025214037021399362022736300670505184513093583139605893913318732048452122751639313626650386087935341986241382681605532430641471704701048960558961270995074983842686914456453173670496941004624847622195469996027697626335912339848271467447540451098616332511122174412807523494132840960406344760278277825409326909661058241505714341028138091415895823304885318841421046839104654235492868759571397253433914476039107769536423242604561745982449352380396246694711927898257551071608827105492667857056076714665551491343054980396018334052545966672761172425591943044059624816980877606540826545427602496306068241904038107737955288237473914093430126598753290109147404730589366243106810713388176275974935712474504733220488032280239662559068318196839579787659506969014847207018661929991026284284571813585896188957173179457045223938866623431302170683865720449571194513108605636250106770627877825051987183368585336276752828321886857327258471070002718384074750415653218625886580432899825058953081593836328177665551033089445445243946968752572152662739541050813364339482302268956289822842654027356335660844876023298941665336971850218836189136083111941707109277083436104041740956132831325725088030888220435250910447165274663551572942748241977557620911951285943565533939059252292329185920540930559763732210440888385901766416680327640571537443628537047780573417521792544950013462447391313861618111857116959751239018379645902279587450124341486875792947619359068281368631369340016807521448713641838965813006674642194935329839856580615592447837621177536203339974023251378744619031427801261384259889732728209843105825262721052725049199222422412779373685313714673208123623203891037780494773270274641392175567354141260160132602946178570919841796786905519101562886972293260179395255531599867596332372171218256978593366598439703400910565338475027740044017541219312443953014921762892949884744655416352640192447752742089686253624844376008575756003935079059505338176906141582794840769299955645536007711205223650671591335375124140620941292303475475513507457692397645283611446145825464619447581304428995162493575637070905744936695191504988403420945735815269115063665245725766927187086208705415410846245858643947846746987628770454118818095462323596289515015827553193225347661149206516928042333283038518547605746902900170732020647813658771422614558988790605135815119202032202889543824675529425966800692590743695281930166134854920368541761946048731177605575719048444231713011177479899938642515267364808280911726919466810429924739148695641121618300206445891044969110285008223932342384942630851702783278924025148847455359988722659253676672706876852582660215060805782182619678931143604384422374328077829584427880099597379038691215086410187000900605171664152670505400899186067471622351127782448908899502730661512368626453983844932243458039423365313205730442388759881639829485405895781343999866692767470181282060766210627501476562448626694405379670966597864902990169094936399759895134193279791712920920882857642022703767702831395676054024348313949462234626489107765636705879532726784267722818159966192031162563123138218264122954514921387460901801823904747755368639904610408136286740986906869732263814745191835792719378577311056251299555299312045986383031756068078715581256848849790712734049151289959925393512819784245899478658110368923835218976698924192266754895498000422982117837380999958234856564583215479394961015436623476629944300464947228443411920764442012597438103706514130422346119075039176869104357789492376816019386477950604127889117351212540873296508829777874132432785812896289135550702440323724652520995868686490039678517875811413740903908345279055028013358333507130541556454458621793960681733277110989263724399967419656280755343755019274534392318752066456189619594295079232648522785599599668617212731126387456987221087195299768775621183006229896352556529938168551342419208621427261719050680606920209093497515290152068511809138192019554717276638426708875827764185832866634179881046668410123464294905532778030795629569914506108625957703356196323622288914231938759552126454187955140660488860235020285016037207551730427080985040658916281029563260511316224999231936266190434110092983721707966950173421568596422142139723450785261299264576051452181526794834841494527202348594394785639824299840288554420549345136510282057042771766015048625610175692362763661589616666231757012760838458244422997443044919091665650126698121367777133223801067587275518374412139932869203197541322039882815583869661043800248871516051316232554761459571759321825442080351785629113592966797380198084327676567142552626943684937889527030463806446699344454939787953182863832283613694511591985238242947282641601915661209202669796435334020508246445177346604624638800332350456587526061968555126429221515882211762824319865836029928001807257101869220631674582948059963334917433882275205520794011206498980261268782805129768372442611690391989643824081800806502841203178324222987009044008246588054520242116899406719335113773897830896195957951618993951700900091948014731307387746003422776923162411574741578002337811416457855167485346128720432910548305189222596828965110889414193183210008273203375527204157505650997059157491626439232836772688888672000799109941706852305315542294715697952233913733045737685567269975963667560259889319799766460096049068756631479747892025627319403550207027345384330041546564159156483613763930590751918719655110030096731710228731275218169932566680339211743706183918366034483862423621243811877253286946882454904273478606497921568228652842397675009215290044677048330039080545330347928790765973675930540238145385865997098148199207818137181290568091827327360477522183467001849850937240388116224678830216658707058694572878853100273959183036354895196738320368433222604137348186776531458236201638635744534241107392156648762355055760400414796432320131982719476509711102680877644328241973626888243347219214421300865198009140396259728824796035628297293731667174099505433797089455614355916440011520317653754085553813717797183083368963682133047534269283361709466992919876649607512798734865652044991080508455161506749801937609761627952745164906601735951317370265027022624483994882672748301308095862560906230011050316681205142623904666600101686568199953568797533828302350480477778802495651904879359968077776921219765173304990346700941081114691268616963351170432604203948370466610524415850080657169710345003890128108760302117297656536244962946109770888280664663464192226888697363281346531363038224992805450727269777768741039370109684380953062075854890114245415313913117119143214614796566863823858136111399764812966816150825826902932025593241269974161144779373678461719696710549420226885906462999395925641203451063883460433451229486122779385764081146874529917326857967650633588025121692662587301877070060188468186927132606313816000444621927202355394647403653890714217526304351127947928900654639027459890214538532279651591854931826203243236299803868320115167688387817493478416264390334275248531413063296287137419945728238669614407188059846293748642215055690308587945204218948461954376013624856166859363134873891845284504735281281827397613274093297735914066061295327518269104025879768083362636049241365444052164090448424882414799227789593538061743703448136211741760863773940603826744633556144666852107834517121663971416350253023671512958360969048450438177141705248249524002700944619253922436512698723681328442698616642244832006988073209144919444546146290871955131894167257320765066128202275118807310718936891604654367123654449911036838268807577828796044496954766984752243541374049358860953661872851322980227633625896400675429321610552063045785411127667794543312818719531695828965889831146523276865854925816808717889715073590608180077751711421269956865466779132505344117399107545480896491658347375877755811657320824644354649101449069227093071208569456229643575973174413095243122572395283043576525326469322443583935766955030004556476453408258128156088836448179544445669984035433878643229284735759438543867504135773759039723330844748038892922467832098544552334899866066611807802764181938457713702881531703778263940411281107466125516912885972691712487596115215536822879383505251010713215231070319862029861405485937813806933303924373114583397967656120208404331108871482248261889681518060391175455027244601454078358006926927119218604530799249094264741261560545381288178617868888850232321837404033691308076753009655121846606688601185880192440199815636278143245192368817001020153970782108940651603551296571590203411495287562147558914190884160768744826556834635533967169827844723401648329136844814584392772671043818171991830724521030247359676736519660820015685035780274048376171673662591286146178515858256615398557642995180072988711849424684961579149371966242206652120254458583348419597011242482068297141811381339203062024120966066341615990748081116012197310591641086676555086384633050131867457115472636064827511622459722569622664793607799351242399108213451140169374807697515375787892484700573249474057874277987520682547573588752798677569045825054369355762316215599591872387314563247361010239313524028475786775160079377634612048908758944523298910452961546920138035263431860976876195912729688455594747338405350006670797246229135900624531915112597298341790543699785621957490289871065635518664872775969027142318798835965100267193870687520901628228022177849850498524310549668053649918990729014561017717073987350781762308673885175788219106550473771508329963026593592074947919633636124708925310972938978626734615972987296680977968667176152334781538626107640268672552106919085531947623022888002276677175591720246632472694147207729617294298123146143119903895765825503257513322253496670244666721148873098943619071327960276192422767053563264919964953027074950374063093561298294151742673718727400753443933910073950425721879867971607373617586337366002257678240347388860754054846594010473808229931765430058261697312266705705073846433733477023830798502321472806552885672520278459133664479701998470162459413254795544355583670127261778841443451926361411496322858258144523187911254760585301600961942820156981769269944331999623254950859867573595137497277585587591912825145310561940769002730272850402636729056632944765774879375368404626416578617429288797862851388916283691967323855845002139099085121709247978386695730484179620876849361659550491588959061007953070375980418849982560523345055191485590631933670774141468359905834403411361424140850751163215051046901625401651896563830944322304862413683630151851591557634903833972340092132897340285549118619777272774387515190404232128310061417919491683172664579155271467733154388254536024737036190946076243965202944894870409796894230805815377846534490872663245012957168548635493410471504437048722414030088950146585071109613062717358194293136497533764175994060515010444190721689006811228761486680709490074208579017735421891285841544117631188813502561400530614661881092954338928707619322368784239230062567491047232318586972624407914160683124656892990313729858195318991498317512557555721159336688253165361332335807116651301731847891508570193866751917392464057495461373094185274887814148995255739416584130808280388581869004950938807109024315095345731966540481987581816954683549766433183179739114018052302966986571576651817802287987140363331974518243425046319963057665990648202195232665006586349212847445289463353381083050851192212871675662888834651286307655600499086482415699360508241740543052125807086211851945180494243761491842728088219131654091016918747263057349115071284014695059254499725093316743382885496999490622371856719306517147725165564130714069412066218463205232396260970578811028412443094584676629973351639095489498979617862060443159779563685277254788619845046727036475072676642377423141351320860612882979383182928952186942691890120971506510711061833399429723263033180053346246337694290612228936015677638770820335650159775717354534316819168515599145109285013889944686293141371276203081093293171660882368843470764710502734288701513874457600744257863213131754206905066377808181234127701130589842570799995358869107910214079920628124043137107998504260038439174532770200831271558064962342422680113705448402031772640675152727461375359910298059977540140529424480107255027362789914928750780591628369332517170264457531109189669059656679575910018328858388759994331124787259296737684649129558003713272506692047780375502514939003380660479427047304954938811274809305453315722070863720165418232477339883628081733109122136204746518068445029902250733912678581427774895352844108331343343847614765224670103883519710350975910340274464634643117938045129836964703068442237931889091627317642957137343032898574916542788573423883041035563902951830289463868539005910887991431699891050425412425601060681197415238290909955017877458653673802103284518487710558130334598137899591717403471835478260921917986796778365519828752647150044323128697561768116603274695759613731902776747261194985390251404099748384388520402905982557573498693758142551761966662826071281940909900348331103604064559781656270589985668816386053455274138585065117341036173450558555976310763040994720900000422013943348117890114455162166421478957752962930162404138347460197102936269474601716393784966069469475147172891200634767843144532439208391918665775620029849425387292425978820538269177134542455980909998755425291008779169063316645542304108853030219103002512514473594576377487966505059439086088167725247112089528127770329467313740675136928604208029415652988346351095813663074171541399183600585725677184495394486778789996814326133375392347855628209426701591792843344215230245294105408960241431626420055561042088175205964791088148328461979255714637068337969760779309967880910292578181940451334722016347043980618124145742482492455226127324878089014175838672309448544024342156505696351265262999228163885645558309881917515217202834815918582372016694176613001625207477441160837530535529874421862509603189738132032357578282439947675379756134997807906499098630984833909834198602310403522607336913919013122305972175333865527936785933840511546623525674131294258220399970539509411679076706457580648662678840407713679147837165353674922892989590460354806662819175854547441159804879529862471149550420849372523191262796587338946380207408265840680672366069986343366430958605435294731136254999670567067437961480177594397219569955009926635255493091305118498189717562548562063468173313463657576139253918501943348940376584777707368628332905388636707013022747327743201777570528995850454086223401520245802838394050558954098707877945467718827821315093576922516797492358358792451524288372799304641246342511136836887638211550801180150393438669179050221576998542572216436516699899572154384792733122948218941449672179794550972983367349879317877889660069534478211511087007468516481376073373887828330752437390942810670737660197161481527900567069687887776577864798776126172981689886622054790322644406442747676411673178284083230765102594632074289690181927049420004958508379977047073406771783965014260758595479079858782855702036462446631539499083486700446155152110179138710847896267628626753486350113487437708404374075085007530400119459340594213918004501466592252782212970564640549803803119983933728601479629724922755007039962615564481546434810428573902188401596823426104153578288032402917845130809528598253455192460201305354967705903602926455712066113083527981069129257078514815755483176235745926468093254038886790010217368633090116540372601529293351057985997971864102029710147230568401879196577307368189736292499724702558059429279577021755866623454250713852836660318697565461261387667757305703270206332905746261120501800806486064154475515565192084529882110384751183672875796546934275864754943237672291778035325668682220405258540912087903243352203839684915781023155931689866027018245979079490854269712501936571926035715374861666850297096347629208887186292877086893980594739138498988971568189891832573406986563180634233262197467374368201527671578184622434890116001490823838769241750258910805347792911382154861999961259337852950952358771999941532948550971705028114017700793497008007740016287693140384694046957785822518765720072740044370091715170678533243482610727876112950659266950058305836097889789618724205022032330834296668137043169402466237213149635234438439627431730463504738673473096198783595848266000103007431315383304568890587786921815325333681205834470508930499409747804025116979487403514599210929449390613409401654708711480326524991376984384733966639378947337469148133603747950957949474679237263320696957242580093410349898357752455953303158183457139543559874401824013976521682574006138691012890893999041116254745492102320207778605200974565994174206959754317622956991700627530042012130219631776899258872279405326316545432532519621661419298172869962449396349498312867401266282697476506800930393535437122615494082127162219769873234396861362703083378780309410483361665494880052538458391527915970497880647986661154617294419811647473070562480468562741476724383605468465626305283341191149727191446093490775206620717706111636794268260989153369831764727054974851170761202459122509257787503916056141548830442368582168312633760556728484828675652699478584988190154832664299593317281306192277177235227903103362274701292279337063248854932744869227441226671793028690220671161240782381071465685049860096191970510609285803014274696133652065381484489258950269056204049664562681671393735598598472202137092992093000923407900529849131620498213889807575349306031594270561768947052686292534858405866732816746879820232953293202434785669990643771758942620024500592970390624333325077771854346290849249950557761547362265179076991887822574770992434285513280600827608026565857766661979788169811696480542217881700912316391302135521706537028222265641170243867252897505918812720628084113326927323920557099648917819020825689787105248957997874459301652604889513647358932157603364343402897372384027071585208827525818865902382293644870997274466633491999333508711881418351121177147244208751673572110769431696814623786737136652220452239191010119472738398437849609371349044061128278867705602833678162770180893345060940929820361218900247361089220064702378345316089432303548817244581331825128145430740091600368076806312833384657445218907739738222465200926581196633111428354877423372002183879530563650021745909888711782773509930061106363100470180192978835281702200933333118434335660045374637725657002624503594164656785316475871916888345705524916830534560411448305401110989193530443979659764142787280989421903049495599897707745946059271931231120685989100670553337703657099895114657230450234349679875140844634906389589003883542244374021098759431911404133433592058458027060046355732915670639741867286230275790949038218191115100442820206709943022498371670413563024269167598736412278014839143659359471005526701362355774531092631223059399197594613804233425153086270369280535006291427636017246427044475253872376762067001989422302664961477786608428018239319137845357142978702073501180384670197697640246736978944470115194457408838081649270403740167809727175954717862291749215493735647064715006340360356380379054749639312385699767248360876836612955019120670321280143146253526193720583660121354016006555197257600986540175256354589194078302505947764698946560461563447415039604007577822343481898099910446400425013933108035453104661344632483563810072507978784122447724286359640443148195486567644174542074189641658653163186274560101608129066574566639317716288358450410641494067384012167843592053544008125589427006088817993728167695872575101030693341098674092851426404701352895572547530178950252051973373397056386269195976074157812403463880438603301104049088824451383667065557993811958278409071087498630705238850855665643658680121993831521934198112902702366030652206102974143969558833740410263921335396675679106731795381480967449286790246806710589307101632706115515592498039860903159755662124706119450149154160515969396012523637581709590442366467402863008422306895487122194927366673547262945019625502099018099750125219582057501334432750687202768300966627330805296723671287184554282787308360460121605969404187534415870465244944117062542076887654407551666450316198539382168512893452000115738187306082214502210432036245578415789897058555258965630473608675469634970423746756542250079162901835124020085348783882502762451820007470941134090171985508232048932742307464295423024742191724269670111258602889249003165947725924796864050562737898487366041223398221516033160054347320744315355265947737722679457124583989979769700133227917203855625738609793403584263951079400505968206050845522713110478723041578135682607858982387304279732689820877928240766207025379575649522772591704392061542032251790546454240297848640396124075889914769752927779755485146553001494205132022077937785256279488789796653708251642741387132077488123566953027397492505853638884210398954392702855225504782018004659254472262489560775092171616696103454518668403999841614485631546230982287669068630279373098704005153666706120705043219161976558105898712822160370922749625592497430918819192020557677719525262051477728540380571356653436881435380207501798791368830524330220200304154928989493873924512513707131666931984656008485861048575553884619949779928387244302532582973213993475690747538356332935439878571851365159974720116866498145407447083426147245581183188387144149332542686613577772171736470094049630178537868066710365113512468364587846634719823020732902347510691430068349147873966265852198301387374049262230301476619752169365829501250532080824089782665627486175526254106131260232007299215360601286409866501161203058315356500018125716833365439664425232282629603859398479586616644916046164460995776741451541273459024202926241672433078045870979327197185875286727539202984273888114424684791549627301014372675012874224304941366697432191742505234430413888177133690099731363317592339771005702250526828342987737978622608027798645479475221041823183734024391420367443241312825516957243847556142041830060698294668695896086701583259114039712766353937682025853227906460562010750643008941609366428788852271417841758869389135566405709402162385525138194639692590626678931083879113893847238004747167377160737040985706584881778303697853465405317251103120745451435871918649251521759032135812362010336820480950757547800721706851977369599385757324772031840319861780955514761531549207211099210140891965188154602279397193481443352376003429629613300890642176536523163331368831241144409100907687433568572625437842198763137700889254557781338551157760369377338070870498530227877168906331939652684081176000111400962647645700239554436094349261028965330188418719606010023765461502249038410517768036234789466085642070108956168636696400247571196394125677951031567653165659553099893550975257750318894483594807808674830093268889848665942430447585224366371902780854594346736987780222407232949173854724088537076306270367518214582257583163457343345763833385322814884841678403826934080760577349652475505208919057622486796149661874008895546741796490775081001800670645997195315259723583167843487164611090102421079686445199236935028824712467416789984711231913534658178386440372281706501870700976493667047306907343844306830327978035889555526831623989277495393240449301957423833910494327208878740466366448548664190434003633250757263105886320667344647887342913037356787376916322225549021838505973397088223988479783973907253175950178838533464608773607589060430533093556747021780624690849404281528527796575721166744236484139842613289857839882667907177099296704373937328339221856494171895317272293925277334534981043018870022172138737074876925466500278545964066309302554102691439496570672459926101363821379949961827959579710489496496945993364735149973386234735703394457581617580972557152059955026401376873205387042343510621303712889773915909328969201151244032225514992803426392015582990475707210666162333565573677123871867733161848876216330712365648547589434561189464070491139573076898925731155902203003436631739871384826344666136188338149577381363645260379837427421450512501168557650564728238985576096541361711441567230225059353678148376165336439838944397004766262787684160833947331864383121787631568520790335663217732906573989413918126978846708183123609660719286684886018877983419261379740816710985058943936203348606009239967176707963443909410675702948735731570349422851094522582397431674482344089944384464151738567954536948366138229792412223868002891004401941178635548518334766912026965761981456967367774696488111803219618958483168544273372437781399203691258663911490709277400522586945506564829287322633485676029897674817293643123462697308718326408536550686525343926990568939700480774250463980153562569531051003839761592523901849191743109841654229257643308187210914800922699787884867715231145289791809007677425411005675748279232279964403059746025306878302378082521212189082565828482626884416612252609507265258921113480127587363342795303927711906877807778897281996872918412551093128028879212169095439997912473623372477743359013185476322510396009668829567725636220177432092330536238090497115945678397919328340007130753101862854188326531608333760281101040516404415783110772505288415973839274819089684711061379666300327978686240489507392621725344873905026379243591342053922353739891051312539111090137482346690403771383548168578345004867621519222632403026386380871974649104926647493168458373863182211763667153065138462003248683204911654358243801072771241714725970854809542427329677051878983878884485811230098142752013341213882918714850983809061746331339354014275116496000527968193136107169879876596666680804389598116748505134104453591467335451501978507037631450491121261646726835649940398063847543736194475265631514726951912380290428457225100627585362457295315395997618926816317369273264186317162292681961887991810720892111761339958808638709855926549394564277541747015385628755271101815500571938579242307537934221175262786637617411234970938467665964726299823950278629837096647599500612720647449104676353320673017412229494558633044916361034717068461106064793123547475951648989951622705030790360534392306122890845135392803483772492972192127365190540789945882765766787877623513868303576814804910323829199360698710616249937136221413661667361583049735178077451421121078726269951920217289930591520655257911532897686103501146164218449388923764258123880863664339516120802637903927350137751869083829926623583656820547297325262525496291623180089046765791776075319911826273684380669675396998386710324064871240544209692348490843417596393470542537007997736457548394967157996019765465670789489827438470847575221718818749658859552702978427504086039555905123753085631857688623191434924521416771972968802754658270097152894732621151213991343190342674432992919849984512204558340020612739078163430943787862976244763606667155597908468557443370734365353441914486203173073036388751039503303986570353036174595088187642839586126536197804818817681647547690132802707456298477654448894808797935057429285716649304324409671087913624584896907424069786335970709204638748293882215318009099388147830098781896814767638998568224407660860625932229193376964109991395087058351204256158686178207369357347592688061193512849005673466508588520062234213389667127269842462288498492584126475924754133286396056887662657280019982015631758527942396901661623020512955233116917845565010131821590065985435968526833457220409737729689273801071953225020131925588181194395122650144551558221825114283393227010742258547158618099586120613069339624983936539897522189151341574019314552116763902354355251979093207568858419498435081831965803165783202971242255642615538379008559299257943957497909586375743650650593180897052504695298588424095119037360464159735293973583158228952118571399709739260712570896580805894737700894932994940846917729974391215486646906671402440725481225252813711652818642317241122269284670908962967219890965099159404622013722246537754611226911309802046135337692245596420974714993122475339816416512124236248098889512132746000950448804203370022704358332880624134766122798558713170225099120629758079871602998753679392138317160619706991907145937669638117028009989103418224259950702743976837975069464507187967095869088978377859225423439859674723101391826826484349106358948122416626777485372653940644369043582850424950497126426613560647559634804375284371408523831283031021653281422706736900107230539402128876001255504471295884545496066100027100343625630442382133969342895273060354249221629277504865816934145934247015628360643157124030656644205139908761377638970818227121949630888988087031024860453207967129374708787077793540930912143939764421418407049768061931238933000902200469591432868127369247275391233451166963330932613347685230605850364167652309598630501405182498786660768779434403790889385777266669964509075409790766864438545998841218701256431187098660864507026877196020260915808535355958915290929165145903823117706132372749568620507563722763378327891469631169865807599561672570219559080873703539885635160789989786160471533500617418581604653335857117030031639407484167946490018217350453726366814957315736807579276393838785977315537260667436236187376838190496530257914308772228686844125838269134946401501269554305610062453302534140929926147276951030493887856907844475383197674267369083898728741480062875755391298814419786762781354569302675655152001216349055155562047943435443296012658214550773515299834920245815709754057632706786574442127463780816212677528181708025291008936384071052409577423271086015321412809390850610456545876612986787136497504448881962748017260678775517664085119948854721739090576112376664164192194474486800905401487561190514076702930987432840140183689176143360526719401486694606208933557182442018471818726201227126702722421563698974086459476889422524563831282897103997916507758081626580122704561041952575527174196204838182596850483134071940996979899798839424147475040003229832583642255959320284396992961871870282822868545830103622737885022104873709314301460735306276127512949633035734532499325265318765485803488185390165821167075955643989879248767456323033154973852040079643155475860281975839066706517253663162122560584731207042025677683936540405108056833295790150981856761881682130984096016674172345337871887481202102490151499453630745777268859928527892050586990346543942118564277003883178448129148100431331698196945511115954896739618440828113562093349010382290024711605922499564044424046120936997245191606897669635535106407208902470427219463273227966470334278608469975790517275628602169510180247827403400190175286787134797422861508223193212277266728391743561051774202149718129398793615682848667700426491511657578013244863301799305489787049807043807605399875212196193814381545666914014380082295698437548545661376903928019922483619517318414445620889652864719076130523723338747750024962676516270020986779658900060592913196761330074465265210744409549395650284641303302068323656828940952901511107058146856643699638983982278129031195649015169417914572816927936403857757152282070281786247338843199569514435477291437165827147740399777718738531047710901980322809013172211698376550311659388836993889442707308607821691348137770535793575836980528615485551752627957518612514097395523724860672555532945440205680934759546995846067442076490565675371972531749910056207144596129359807685840086654259269520857526577531939312994427525775806931048486596923416138761004352072370523963875105225966007143710507140876832944049073464240001033303131174822616802853720917383918075782079752277026385434225059918758433535585414822576519647305008661725377702627180436164655758153578785154931095051168905342625567774649599538778689555283749077509128190803739047515862892116904927339585671714398930074276615163622997684716485118072716352852312711439601567662107746173063304455451116402533783377004907508395586518945986732760194704107753310841634938642926659051380893321919595901231329852970790853754664160803221312329309025562925826490091714128047047863368905998150049074052952205069071728906028598699248582891954037707010812659634619848388247029807477556487831683682895145708575313962301930745889061597097743325937491227335647458767506859206829971147785507425296627831991024198944777562274282308879963671561673656844020315889958316439103066547763870155746878695169298373248643386153118548591158717118215031272599569075575451721593602664513811031311469735461824514414918931533272660227369426549255618401702034670008828685091852262513834899417059733913193899308310006579206442837872780622760265605325013540969299913356889512803118523277417475860934678942552605239904390760580833464310082107060175756414650308354458516297064142492992889349917604263700781558119051087893595187948007575278951761273104152113103011954372913983119236918291946441562995579755949829269263617268031331155199090527118039801406205814114433781314342014573066513883474522479782425952276380674032623964328312364270565852778522746798719766440820375391858194456594747784431122669333359636494824217129217878094533505510977621808419261739198869802519577074491429405357867985781877000882135846210298658636559056756436883856624098417416617969034936155824518761145555222797781889134455703804104337597812091003547508819380955985391024012558787382947615695256256972330727739741871695707184579251049369183236608090204730825812495247978803312090695755999625265789755390985980285353486034164411247686999626592377638686689449846447089471717514601104209261884497329401992956978992961241534857802234291204751427463862686499586239900721260235595165628164487743688798813013439068904058547325936807411617747976328726554274774462774609871631909320376963582229634849179236694912714988961276322712317014871905303084811325488438173648804114838060603203740635443239267116141507121544622901446099561873298404718445351366705337097786282844019398754294585215920366823427803886608929121409530247351270870883263844890634083221339753507888529789909232834328947861353842569455886841811633961555223975119241594434973903371351097527745172240730274168822035928476435088662199312922829596168657607409458130127871382391173866217445083801963684732752718318730097189534934425496661785863330054988167564903931885572240226329947610557540090199636266819625847969541075095164837280430769153623716009017358256645312203373406918378048869468984826601922364509649052048452089800822958093146480209753825125221936998832981183403969421894561555373085090682250926909145758241530887765434091501135268035123401739147375678964616017608247777622420543320257766218427440469298623470376499492247137791966977572357046256764286129891954202849971436571386735490519542877200476503348015539746199833545159607972663763829043465187187339205566066885306029560560144791405248208357476032419943503946475316529539081376811067602988801066941354945408333605457781252538270298330435216618161152191169677516869576705414519276868323079745199851305699050017358876826904279191757303724876729298991443083966878724495101225169308407254343916549911504423957731870526491445873611159326839468445974837124524336658286462905327394741069870049936621815596663436726034509315550355194308914717986140253456596538989978215064578016322426614458614802460524957264599718716289307560294802042411832895343247548126716308710741601622272481902212426106855880565666261265064783005543537194373650601718363458567675307768474433915900703779494846096826401014477191572520066004082110380680477999827332475458366878712506621464834629795067996806054596699267708748528756441078761731260609501831037223860994495149454820331923083978676702622587759242332496020819144274278491646686168320681115653694316805789071244634750748268746942102402195368737754736037506944283971436603586749688957791632490509884073951603291721899204393984328857051145943082068437613611138601786223199448359486403269610805710143516894334055295274933735260992008304924380112368492302295784033519361291485149081488511341979818170897949071841534085048807292508502730429901996052538545156660900590914365810220837894018261827755850255492114185260239816883627233393789276270322324196790080151617799423164094098785851599853561184679927608901538625897471199924086169002162252436066031094222669065976978449110867314300965907711093759446412702915018840132302793231240726945127868842750327193204767938653349768185220231882390764960399827276495022275069165660862833542647331073695962206859578159261646913597376796007555684993716194298759206555889788479528339994259289089693011159737865917582812799247451753853676771429677572130773824487893615416531431189364177744265599615365084040087718725843771148129420157265348917303900641849639890779779610930269216876423458100567158382221613592675658602110061553104537980196956546583180222816551568516387696221406159585679171361821344345692449052628730454055063751147814752727443819277926594760814899799039841332217525553832154786407976632513075005023142355096442989962246360650280486580771506963024838230891014415584446571766185222563110038025374141785928138055338278273351878757861298657335791538124467380567854153034824035859200462079116579683524068428910101984712384189387985232265890590149966064028311509180447103736400915918600573338142461156304112484371653747556677822705123268284622533884156622451048350376842853311957539431170018787265013903776792060728983954041986751034554610529122823269395745013610915140049035965429312720480380121745359844675050847591706435374074254951508213269103002212759388897308050880959129317614760042902797420477251063711435574433721775212698342678132860798557173704170127988928699998978166405723365837434642328350089270161605248420439762498486602183959075510920503223132192660708027321673267550730715339071026889130510191003164889484549505893661167294881769137751302707711722766056559915714081010181775013641141946136328511643430308629619797122970260368922460746949244034011179065378856291860044919816494320152926016803975050143903582004545479101862049945426578584024386029615114099718892866809375115060373353160596375446898297154567112983246077044443601138617344931928786578944945267860494640630153621776716794638906506083659558200121957383004327189455653595924500313602690882860113205401033234706657788672533986059286409082295495724273312407349518270294668310088041218670392799788526950260728074949743161289815546607859466706400496668746528664671962506005468965637773620797210540256857042276446028811619905972871918277231105603590513176334717749350703525134781571330768238526684424629690757151458909827388787773283142086476147837237899459086943359976921818053193159575843065720939874725040033625939053957472465362479147297619060009028047180516584767601144005315972631636854481034715346516083129223247810822340470075471715061586169668813602680057017427022386010614832793928714971094222980161161897493142666838555651967609256046671010058330400304796556890796120857168290307483554551818432371616739951568091342889484101480819526280908102330294104330213446650428120859336330913132874925880526634052825363355295282644330525032055409811745242806335845796433456587524914115206425425322243567581439450194306095640280305608293831121271488987108718226374351443769228099388919083658425974410303224654880961950459610004377269265289403342393874006025035320099691787583694472282257482670654393805967756757787812059090073750900495075545449405299357369607279293668517798819747657734193255105262434396444232518180966825444022556528417299945718965624908322349663054450874247888108862682849834700366624511223695880313269988921557437179347112672074057105901136802698064139905860589409068177685330092878195102578109515933828501846495943527637251897141082175891262660660620526996594905074725573333888101165405082075676072225500746049280877481755997672834845595851770379928962709744521709376003906067380216800814794875319410106612973794685157102896968688163041496375590595939857560734427995866604247277623665319045658225166059087468746990680298302276128744583779588275623825437678681930474352864105124301582675100461344420921910171646140178577774999730008082238164420748527052510517017518708510172747913447981312635394029673706937104535711053799128530781556406239012500045178310563610134243974681363291259024176080851891308614938606048617157744032824194699341295635897337254045277766196760088281068398448338038785332403456208136332946231435937681755587392476346359132757200111328805188386124984331952389402429696291234769708017173974333662733485017400677822538444920450037890988019553958319382684232171488530639391295973123702934959630196866885225471765473420208037462153921256981190192238151242933538793653742168152785318285949245062838502299578128677618634252825760992810227928780024713714178584830758755041777855654492522526477192998383737396345664296787829989498366621285817413960458111838889612755319829689144077639595762720040250302801202809091483128465662455050995498527719607423865928682780748276647291321688546912770499740662611345828135169822573982363070997843667067570101912028561428152955634563957211387487476859254207122193342405841806845313628851264905772185538768482476665345306990638499360497132922756325711043425641979131382930789676702959320087378513758412152957895442166426242372339359649675554741104974480695536913908873953868513283740014708202886490791246442011303398875168531215665526561319848870037470678347810476622109478205499118438466347105761636117138021065055823098445396402372811845302192911811988788734631593739699675561100566658536889668298592354067421192739814093044317331797734501229559725664934593299421896304317476095394675213266272105592923251366533135106072907522635393813852768300463487164836090511717769440505714039031364083825366936889781159081029292026069774013414298595783509707859976054653213893942623159763970293475924468900296274190288112827863674982350501158453825657540697377398045089085806625025572028565055028217478899952052093921857740328749073346107589920596069772454220635759890697304230485914541002760212729170777429772022185646562750986306781171084054136490354687667295357198564273780189414731924277664137785731239419872072398114146999178460797197094886833417108124956903430355774134805432523681848717458680396744580675610667712081916895134333569603216913451588027943331933618291900470603979290058460780711822465442486017361407894069170030337242861883412490747969425123342135217333478556471304276289922789285788076054874896447946921370256736239350560359522308377574839352919261752836929294869429756475996702108871323016402236045103211758406913562490462467198620504948192336177370312112160440727882659812684598132220981264425605448078958431920981382077627328165847411415471668020536489306309228135685692068810716943620969139407079142886563446371242601017640558372532649145585740087053754940557499685437369655143493188432431552843962120406176081896178044692958466445113808623633656520582067804995482534169442263112409613690227134750148885183476733353143798422043722462784469688604240782950750104187220480686323059963561440930634152117331789403966015060400511504038309092600041560364297980650513544303470400488728573611352865767869663850551923601847627644559188433248306989114416126567792187288647055140293026090541594499107743272521390672062888909680454863280691810791385666863809136703198062643634963252746771124096332221287353761309880313477092035195500453454579999791380741372605097928046165841190379486247096872691484963866133077995176768128197221543439182687741589398243098599473803369178134563753258696409668535057006841881578190528765019599293266534535846580079615500778680992263691469708543067070113988961533067110410260506949178354420071277081632143143301024841018893072822654947224809125905286129288584698895555801604544121997835835473947807664630317966385792162954345489475432855464552264652450223883351884390015574080442702216439128588114248705124663020358846811026689676813327675016870755106575163876898048972580909278437031976928055888064633297993534238846940969532486213176488606585536129604753930559098994385473619927286883441033470658592771441351633805864970630709581353599066812665750697918905496808076288131421174936671574501808390790343283506650236479793111868689632483272413900346739837133362450202038032985516803769563498648635977403538681940923003628897783656125039695517754800287367470695263160502213396703348607855085203243047695912102620083406425926148528582269555143310140579574082702219765498955374196468150020878290968275695470309744947963742814535048093335628329664461101437414304082004522558587641202972048471138294963372966938783297650305118500010627633437335071488579568608913931551748423240154425912109038759489856906198678241880220023178590150852152593215779208121948958793332710972134348600082809827146292963693596776345642766086722990092164308134115623545822752688579301086660083482887713561728287775582570405817281482904391336068110218865269525172972591196255536441177636843543323551683221546972172162379641230357622432017060320662861567343862795778998883099848069222368197963331203303166363943849182145121660678012130990323699488355947905060466180569372341807857164415069736786551553489405783573755619813866925509388861094091633988991339802853137774084832252567138717106420576000719689849107000689610981599526330972400329804083622577959640390807133858827369490929594536614530787519888162950510949602603341057530902652330576249207529814002967722599727327262023966327175263162542894807398370219999576831296117601374488562759945344840279140756418775507687001322355431585563337967017258010605233321605526733284036635734051312702394582905297766472991257809350472481034635375343456213143422061803033243870502680500186047428137006407794992089367472355039977618100773340700950887582708172527645159000308104473181300846316451285960757005033356953548929079777714219411393567930088264705015145446337903262325391565361539159981841931492456835214429013588628435806297251903761823013081882184550224660545339346036162086703659863808106638832506864984340728085097950463031648943318659823273822093194083408570533945763279353551152940486038085390168272153543015079702914548187727195799551024666269187362046416202724736225573728532267418405319658538945451832046662422129412287320300510240109753956317808403262561778826670260148366438177354016455140085329590539708641900271107840989221316065051697327424988255447014400426618991318988512427524697553242240555671715224539023478654144737196144223157370017715028747718856489138482905130020369834726029784456251460948731980875276692566220047442493370871444926499537457361210944389719525317087184908653763520886880443230221249992531057547117531181948057755886946606920887047427390179539075130225557349143052269308437366391928010543783999857845456537736003553150273505643769005199512770351398608891862130165298510847599499264449443761958370529976901047503865534918406703981650927014523987360321526905773466080518200824609737862301288506807707329959588348809748472173752675254959289082165148964648064634430071023891175042732743582784703448170740248723019322990030737152481315156475526428668648555818066386187870130517317420277727911951868876840609209195344283848313040371906948357278903198681037548535714521871253539681146478143542579713070101754310750163332494355391715797405193163218181381708685534797878987319391441320645209188616398412203927741331822486741382091980644018904910260567494159189151345048606104102130508589913958828384250672619015438446526992656219323957862558326024646470158254595554391378047455700025130106654788846392380206357204259308658800288823382057564137582494634021082282652444478169628551185599352413239873425125084640180633482135665484329086021658566737926180459848279863015897766552883550481096493695552726816302869956887979583591521735261432901086345899185303734056717163983185122222546760991918839532587473464605100194948475554788145350988455154921767646724286978976886890986435978152028293584225217426998848002013532581980391958590969367400018075858761595054090335529334256926950199400288596567792442971726804427679748672302237421745508942182383584058675900157993562548682213498594862841952543149487941458729108917767816796075623451326047999192365440403420694717592596000020032409952480993264149961306410645380295718101006147572616743683545562058152357102050364430164954179140939402959623205904453535094161129007629026765928960537297383312900090448320241378460750735685124114395981975340080528822710622679182121718112560907858649231739368566862236455356170394733726069015277694384008775511058741383997168052940438438320950724062915688508143151578113409623243103783847307868465070994969544205458598064677904262545410483947187075935823509682798913828734720913390275620700912174659038360803710949699058338565508899834123952204331046854847473164078479810912698965519005468962033849484142347825501282640516926624722565769573071285430501518578557182127192523776563593554139863447732739664328265330646840874308387331915044114786139880003450155700135007392669268610278023677168560040558973691381227406727119404350048215479738071892293422563799224378848136601069447905448151514178462899161596718391525173343650871547266060090040581737546118428636155571535197478358898193760205377924785807336443879976430154908406353721156352201873350444453688801317868305119505579112271256931818791152894463666501875439634966768713983421967731378404944474254858494909745351547230386832841560283900254655314758801777633950750981959499450854004164728315924269158965944593325750305653928426196792540672763223365219328603183802641835439333364389592365548140958921000944746820246020346879903410839461760051230846179112086497690025862732801772093114918910366007400688962511761951795213385580122137824147472960225035012311356925298952297750289151023745576648653152251758844266515532708026287396005301718073678779730894916162243112689295939134429337049216136906756548625569473684246257099161471272237971028256519564755518772144301257446854375855972681970178288851798286759168479780248049987995730679145862844252835819665451229565247702061058737162210539816303144864112418013744126660823389731289515495174147318502945668213915701230732118066825582980673860347429005588800354525901489793157160560546399991508148946947907900460453055777747995106698150319275749089258681850146471013716707664491684092358323692566640326807361303383500134634801263503313792958844882051323917159036600697916191781114953938407382100387841051816082614062361599341628276921483258371913354090240202791217202203984394175091330792590047006171927271836983188767959960687106166293574478607632379575752400150442581957778671435386017192347353026449824291369100172117941011897182542271774836308506291263611228385773676551290750667830421710478792643197450441076669728325935174594100513706196775815648248193263017601639105192196200613786855888491867673939745583125548302445220345231826681858591349791723533699079534434718206195233607107061327538470682065882773184391298923932291417428997724647440819030754093758216191677605559562966491866166470886109777086778240631102167832651715678903224893989754668541973731200763956434385900977181231637330233717317322325227855321642658454298971008283306243117631772932223028864530374943758223223217834061372255489540082153782739904478479872464785621393578043144466215251726975315003238074352863053066437022015531651102484383148653639790091207193447759300383147606878432430219598092246503416639815227985295044611067101915559229020865124937069740551576471247332102586986087598118021152164681138056154180831400945871549933125661046826438876326299978551804413814672303396286643069496350985607462463957803475759970940799379016953682983366548120220951802686303025007623136887730423995384378530450412882935581874428490210407455190924405766456150951881300164362666477830632828751099632685626620706762298899157559935343364489039870129381841740525271002639203716491417480884496157272628574452943069656936970599549472992119915517405907979224411755660593715454617848275554484624510320476221549629327170896789914339532774854324321035382012305549666063220041370518633248304179201182202518057050938225598060539684324785098876109263769571844376319813840481564165528997073176124685934117328324366801580867556332810414226524134895045737846281544205155342362440095701287047549200343610609628546350838524315777144425933529087931466648424869126308975707608789220038502083657286356834286832388000265504575917296304144271048766995319635089471714781876505356604073225802272903936483778715603834794131093306643953067490026558835869402611509411484492465075250028418038116735149752631313691141059604544043614086325106386931678829492463168989611055136059894867667322459358819898115446249833867811279243940305043763709945855392731045459629535483342224551379734432438047680330679523459530056783304096477706613052648058666442749217283239559224284985419560545781670840909078407860097712117282182145916502036272244818882800772228123150704944275259932810874523092269805714571450090219083373498650778010070807665250740229128939934664000970225312376722474772356928939023780189000568533036060599851177093277364565175342759454076078497766450614686846622295926681727583211530054126066142433226617977260908909107590757038341765210542224116257805987778884030941738107772449931998538880688586526985855201783108340880116174673685282011640509075193179858734682981650572613475542227635825897256167560995724399031152227367557073813361856630876181071438738140946293609114300473610483786689786775046979501732233776037880218306022511182510600003991948421763051752821050189044711346318925445331792644133425009728630219500325015681539304904742289659505898026448071675400081362650633784835567832806413675242628360957451465968143093145723457043674640405155709703422872006642541679254420262084547568463902598258863106654524651951210020180088736741292132629930577031652362783616482653289416329706059295813999996951996683184557565024920017285751282281922552065455389936791710217788988932272703013816814962129622059391068747784835982931930574656597235700731785864060121675945051323347153060725224909016219496225987001889180689635631226392716366324788347983919293143813610950746575366072622998528713871945737567520838999237055399854880103013417194264776999772697534048377731259955009769184301547141795702529544567659852286635975708109430977496552067441982342100954682202787974572945109568155963431499214974359788858275667023817053357171505821902745610068684943973375849170297090643242442832021311261684131466033406077393713599364112253518815078601528008232006837822408803844915550786534696634591647029551858135045458378727080923931435799042979017063280984096153421720917266957184024736121908360622558400947756607033927521382096914296394029809895137647493668038600745302658178616027399278945284912445431202271881846764094533382029720161886738982223520621596383403271491270198320150133841033765993488031165754106141254227892300718789119271470082906628706172792323516850510505408929453310429085956305376747691709340134871187936034476980220863960214863097219845878677977850125594883782774070982837500637213801953759563257717610288090479671372528946432581645804036644652766583839319696228186675036281746534667834225639288216205891097197363346376662202686588187117749628817726862471620561124557247921676190449492372275468637262759361366004656358335732617217487360539538522765993047544151425908201047683086159342078680287191171125402082706972296029349633635002373571042330358548338248223742689394755242420263871033736490532103032544725581753025826297810609043429279221100253044919854077630962008659621790304219322646584184792920056167943194668049820272332342546023564228280009760637044518568792799501506095784028556610246907629669749447696447976175441622378717352962009276259065155252116867164941146053827299263671127679780541776681306245032437483804941118993398532338950031523478066708067611258405784718965502591392982487538135069147805102862742974516454562306090692084479081489028153055274230123069019870788671806978046638281605336271219390537913561869790634439085684275413978349753455689832738918296419080520485288739696292003915179720070829753164629452938683688036260900593220811764710574167915380053774328434140505568641963134908780371685922698342549585204833432712900928710061964435029615116416179849501217710217412377209336720172388519592276442842984071385382031385030753329674010600375922773131801488084742338897425622781350925272561665407433525234219923279961990333503012961551394755595027804051154504595155327775075467414888766532657695312251364833734953415613572345626895558685447371980376803243966903358394031090849488807025499993250580102434278724200146084513108810202493650376617138508415488838579264333266900845630377946159030963769908984569939477765140652805247899116898680278665486422477350228000644615148942011162342793508789552406044541538438522478429753545917112176072103002179590209327068116168929860248424291267294745946455503354354742817567176923649453890248361115131763347889857131920469829349436220270135602132340949091952947471408167112842055828777086361636979916087499499850836006841088808419805119512015839480970606117649062185428406038915161420965595772994120674665138627245335289237048446834303404779617760932314454633178605639926756597379578159095793757953539447375613020363387887050315001444463102027037966138142596659561520635653179837937807009595175397352003564061186493903137387970869904060214862302541769307954626689121905746666693037980021481654610697032664055313169220361347597471961791519207030664534027991123345388279224862371374368135132364709814709145657252767573790467958566761206292955647276613923082026004455971802244743087822212502320154523872533995507937720931655910344251376432548254780886197445700031540606785266243366805501273245353832191478065054029361237088655841159325388956179862506367443691078786908819997906944567669484020511558731458423437922117468378985508907002241092805443056971225127399615407963953429029583745183646601509639424295090565389111320589379266722852211512759494783495447901713606560998725904184402330798412879658330971842270392065983272151658291407317456475111567157526556921836821761902401934984992728813856865109255640645106259476466990578542100846705412130315664716638395086850537054737471391886318545577439380834043032248045074658151704038570733483138806304148463642286166709771514713543302347154897099390905480331178395929506314422316449380872548382901385913989804926129710321431164493011759340043679413093200666005433983455017398342861237057633973235341973965700117641862591323252088439240832159760994202499987218186195831403910949112564333287484367570989539326074109685202241333775417327609286396984024558451056882817330813723531762401140191757112515494694282920805794627583684770799926826460913342120552235218499855206706992202779271736551330729478102946947288359270535148190197091146055156572224898226821077776001098735889864522618515327403260441109315996324677681575355147648365838002930375411435762759673558180926636662875430257632633770970983161319385204188537145464476044423245159745927957036181789083553618420668213580439265498585402320182002414441158956496595986675843327754141184821682461433378947235544029596024415299764359054463111286573574903097490298069441289227340431058492761300809497904980466114665966500504000889298679004467132156532633424838446635142145641043058522655898793908451910802625774028181965575563572445714280949470286548270797240068433708628668292730949183359652126406893170650546173790051781980107885046940060980675280430821592944089410894515925419803393320942938208649562896473350248599345034204216215355906831265610458450485768169809393702047079677349842496057230678911901462711163059534315397461283663901028407226644618090046633345705428512785740061153550049386533819238754072924983407283274323921263970910141551551522236378171120105216402007400820045085170912151611993881990518666377442713786415102018067052238458682553113424758473315547637394958618333513790473491069789671857845426914145237576207945995771862939186919027889686903164349859781161232313785610829580651966297069746015210056090458786887003651816000085335223599495397891830270210339958675145763294273838218558666114748856735003800072424298819181483171189914793377605440413722828429718406121985231374029157415721056544304808881355160598934472316929489470829584027987158104687252059575004791995230655572273073285877512151960914945705441463908412809373811769827419047276207201158204389221668296169888547557987897937188262730887448958826733849484485786166362827783835584731829924470927428758371160871722251555770870797368409656940838984552280122424923389047515017060494316318438443705632949812168316133551052424896709024279167342991573071431510901186984544866793973295213341972750845986060680529949740605536301036651711628101660549758812831768416453582373449134135668521448708506171452360114034327985653479431220462863160507647346675765650372074974612740325795182580692007841803411802751433808845718974972105261840965732890692755716152319314600037540832859292479343756100269229323754365744640840551104140244286789079978068735949132182162457607035684569987503571400047088441565785515661840489514561628209100141978096379330422208441169201979313981842584018684676279272946645344981676577411217685066456855347227432800019069668955372177206651287870560399756433139976342584065759476924115880449557351751536578625434839897941338027112621760165372280091033648975539566385591347133755645205445456243678875598260843936409887569503876910018519850924433852056900134378279276511398554096499247429022147089979922604902575043759662177983358196207460049316850630998370728581306007724518382013094585856219842268819320304818654678027656450614062312925790698606538751244336075843421412730790914933812627456529165740004648802355453718833935090838462474268539260494493718068704174481123900342694432467381469126428738629373335588964520400157638234603819205263007865888021843013103961333011470758141065097124412980438439878183246218520475758166179313103577220469453153533167528844545111989216907746005755051249228040656946487996092460183102557607931208428652839481589031608701781985023799196748029875293578258032624169639022908040543913599581350992096790767158650784346997271651587262424107254358060581284814215587966900872028592920256150582972882779063566160171130091589058747297438817567935274821166685946451773762046708463729525403759202948157181003986401444705164034273777828963226531517007574916443759296004603016362614120973584251196523276989356331514719761242959900389804504111238167020907715552602811078249602395014455221792947916870215470635202818866137751021030813245825828645028313551544307800683511226235155660114956793086682690871079679745310932007345963306412392413935877015328433723569396625393147020346051343579066273583087412806473777876759622269794490969938684010502960053427463539357451807659085840692922598537656110447184758207539526608173818499626784443023148447379435662395023681097004377365657712814562874728617557055566636666822026568112596236618698634815349537008287595954660367496213778121939866741084332222180058031456376459690775974115136746350565140549959987777490049239810954304479950362996734360962742941519688328270693573557114781117681569606320925557635658643774592558784772316991516056637686337792307951351256013050503811828631454424596200951586713505965320468113518910786953277386328059216022662174461536693696715197100391387689860242653891003017071485772325644276425575528946995030736210310715736698228718587196629079590668746746462037992803566240114577501664458703130516448320556997085879576288214748597642826334533530019217576809638460087066481589401076150887767729717916723821278215142646507511498935332592625771447617384063018950895593404143548381066863822976776346166986863305782352936590869716306342810158571215804814677509240573604679943077431198233091370517860932735922441328099552974132102678814093181999836293299876348340003815950202100866262252253595930676001913801107389153312832313476524621146437550262931733507187793081015306409540231855339153541471742447399713281734887006744589344556383914441833730258270100825842688417640536395039056488450042321881887476658253799037711949814957414598517335400965433809136001647739964532018133702957852555560710378624324336826518412487520946910074207849919804048655293249370036874880140682314505441192721399523905000422945145615191507546897612181967788476720501313260882373625349984427670470316282726334670470520304149090936374438830790847292900033176863368311152800277146706789204141985300834620181526810196907454951943564981118917934795803513931039504047753177900359398271925126090729407835266189847480382888885341484869099814915437185325959858530710949817965918635791690844137585334996803394141861575757520698856992152730586493529143681252515628403242812105380262119616609326788905524016816890745528432567526001653479621123969288407934965997731350907369701940074314958604132604640978848720076145119909564647135086900590295504946522917586061937944605380721732595216777497972538826969444813257101990556333392108596344990040692699755724647151021665820943619664216086979132467033367610264053909334843340048784521054876112444855759192922359308561999991841297894340053231041014944185974185277524336809951254856601175130586403005697265414475456559023700837062509650747023992172158057992568851099636230490174322648440798356126176626843027198210578516954886086581336717030200137827222992954785481993677952281616793719044514933156601019114856512984071034408069821136504342847717335097654732584099468405920273593305453929695213890719022478513198282340399172947184279410300223053018564035691072572611708806797419099357614143546046238913639028960420522751410854692530161452098886630501873775452829823104956058074413533260116799574893681250377318111829828531210972740587379229493019417453554002890230872612408056821489472295511727624890329438417296378499239480197785328978054457531922703835632144941716105662164189580416285072414794801696258904873802676461637272949653797326767905892301564333357870204837594463473745594137561160788561983250075966405848025581580181062019797498655302339378571687765809142860507680620319607554573027705393016827391886579692748270271136176294952177354601741995726413754856400921040996362336518477466632156397442449480367265935584321755068569323173555272341057028641509483732086067387159039831627813931410236517460348310913294621616453987582569256690391998494042971563532781222300840535941549061228401793573190390424981232688770084362654746753629749366852227489563893425485552781125168244586433829502047917843040426599984663647196609199384524535834180469984699412947939463938475864823038360853034118346345582074299535280943702637564252521874183776458944812625695172542258951378331198501908373572116180754973385204565910444674306678099751557738239625175715093378156879423044795941089434329307441646038753498504820653527204552238508736490263601261119538948067202647586272193947384828457586219085415972992407797179975556674163692599261515286295359380410995620615207059827537083423615290539172163348830689258345709020049321699942077718645243626597194360967004538197280053694498845620982566487562087464614923847209895220352167351770129884468344117896500285949334046314109585274779716516287637914240189980499023032467180702190054163703676322132216435290764441815722584326552195646715002616683399765678647644617108499380885071459308637356155632326116902287326695160351891459283950309288700653157108006536851285341785839561036744439389597780011385291326874410832668654277979351653722064855061650244450499563232292014439760654058950177061062484775401698660530357200523831289954827246128914086142807437167135740730148611971142712201176431788010308604596313650591811499501663097944413551996805765832304618265623665914573522266255919442066853080604599050688729363479944304870169439948382414736806971101745240556738053784847628640615795171380912721655398915524114055570746849312640894956003824209674668167877529118647418389358734809258933293898841444249829831653536501525636659733731145225054198149801140684703577026935737890783871765506831312271994117410164881458431699157497149646859702303779053881434616845611180918700929565128653123620220584476791476803467200127032435201670148912863089498497485661305934748539891677345626333400633788237139690848444288484960299071016315478369563456960344637162915373680939528851044769277303081804651673635734500151019332876802392822784935432166060269276107078996362296032901636322007941068142512871207055572323297838344162504353368864942834646004866383022028824756501468742733474170185337455570386666469561943416922402168890655703405952325515077998513438081502507055846382968576257807170070549629402801324019790377463028597741633097621698256674982419814999916557126079043121781058246034843083186047735425127463188732767353573873763028377784400244386246300082013342696465177294065144865367556349422448528249306676401319518601600310351505736913708404465250353808271784809141660053956480555866770431974271399832058003608578139708760494871663676916251203732549120434847003144713677282230831007147150940887407253826822183438247786734742647918779271841750330977025551163165574416693333227690757857330512227386594994595930614906058753673274776924443546913770558670747854551545903210651864626806653139049087053755797460599770667748501584654783477729764186556687635749481934692692483813848890276441420834706340682537247453830754214469598898650441350375137006411386467352378018390561719879545630673179488049519445784627646284579747838677145809766568045621189203674524870724317569292063696065649718162955976567263531759082178864359668847137470324427857232445424100588147473879537603354917332482090634526514783517608346033587691161991502984615941850958053264165103316294164323227292208175129872016164384815376060350496461098307033870412542069469196148767246216204299040051103525611477302114118961281930315609258344734619452079922012912949064957366230112227085448169332775576028771750421972168795013291223670423184759085689417737639694256262998143112767754872443873958674863072525514583575782879374901029345327046685458616344343830785513439159340358441983804401937844647871906785184110002350434347726512264812470741501274164763306743340970813501716936809231491200965853713028838312512613995937947378204570736524854255414052427422493227233590373953132483856083402136631910765649903796221011931566938417427423915397267146843072017337322072826172891818233397494854676477735189613724208633870443367214811635736867413169627749683642053298155735694064548012975789909847474140166996010498326046282999243551387254142342161996216220555284337161814549486474993226822970899602284730129182151298620266647406412479880495817990121202217911422576157023537362560909287158523131442244253729717960589187307201027523380435343382005420036422593816783388432452153882333275036209884740080503905493984309462206267590873306530344399008847277452244757381084820194293748440367649914141644340085871127086719098427598508669096492731067784230098869964475772260082213882385670406830462971528034689411907850447750333333270329457066336282861446564222714057508810689218680722348064303617483235513091340578501820849833379402771779429967887517458353129365550035045286555787489850767689715545535264670393082384264880196649704542457032443918804940943382621445736724867281558410998610179891087705276117656157441766722501057916541668675369741466533121208716920692344659566594819827339974481377732030119406366429505824838432426020779336905462256333658170982846895391882042281265676751460286786994047069335749383111987714880551185727677149229780227819751345426852031175062851002618189691640964667004958945484997028690029964348447851996859294529181889281695707602321507637382559014597175182725559934301389484970392351915893723831965373041917856053585614960836396026044034963030907948799420109041021669258770317506762882367453718897623806229365665620340430623422102044817633688690087868279316019056493770140706679159233869695367198044456901279704435516546682786285796941219628870976029581117143753174929646594658362745284650791636968478903582524559530993315634059238363612574838891434412038717998492626562567153411055356793061630867149991678394075843950959516637534581148185455018827684847265058059524135404812790531685912285718231315899688370446762541851819202310171583598136548418733388371113120836206745598315216484480605707597655650206212610840117328573596283555786580348852360071160317255634663965530377586664946106314379907939745286099863384667519232243118132254304030282154498504448679384934542684914571478416479955248345155428153024744094189432803854261214657530337021853674097208138699742713962036688610678385331819222572471379419636134765819381013676687326200564522557398917014279618182430981251991847719110507176489453716007848178217470821886242378479718691334070263041636984673622018471653766681141651652432236920917446259873494652253495963284183319274685203618369878299848858192872124476959138366605194145068876707395801859443166377641980104309323089924407603831201621319279349856765574432280797631708702367078706592231554537537404901470088560616472714594084788568993049866843494552548920382208809814860606343048997287297075749362815002728150530046700211777879751338436051337953128613696231452126607784912896522189961879535934783622967819219129825759223606688935398847245260596285424103520451238731107385458094823391661739542443560610011921307824997847222285707307634302453511098844821067546330602938675739035178370801986719789405331918462712519614194819304268482542711310806730284927668880453723010946357872116520473687295037574951799306277068237924042156262313942756387039934035426303222339861809748889796896857753166342217934749766544937475216290204747462052581323752207096173808745724030625469055387563907489390122430031819618957156455574080093799510766641125170369426026673423314871917425954239071012255821862068507029729997278525536478643374206583498331836187738531278576590356415345532461600631886203282080526586723707891143709985872254751041325416230463579932815552731315612389839068313142484709165360318380655107636284115319799083867410542942093207016413921624538526676530303319055844512776515965096688167899176782992324338459883419655621480660163697846651275196791213897686904663264933852442475092443025615532489140443691371959897261679297685030459925892589765571366204250247444562637713328845382266887472025813935845391526982637761126325130265352891539453134473387257669727525213073559235377979135647620533220832134132986675130219612383268534532257999194318400886626060916915418001968978516032447432760187066315285765004891512065590159651408545998268470153274998512246061442181510067582778669643044563595781364190254402364425086582276176436846395568782805395541562592003914945046598420893519608602739811118620490799848608966734314095783319097611185426955139588502700155651751648732848302704653949325461884025644904693952702930974014651499996690097735222588025056192972654746814943453401348805370816695863272501745306359728781570891720538805119532399923379422221465526136765721450405380056269640580434472302010470683884465917006931270140828379529362930530902727790899923585316247903731915807316257330941114064273516848765113686121317274207687243739695705556931643660223956799439852858164437472179120134625154858559904546795700467976057567979690756062222930813582898970063449326647840337840468732145103990539214530423481159334951420180870560039501903440966269252115325083748629203315204880828922337148148567052622412066783365492438780245660542957827174013247931031748855915504889481204684247855949458849254326117517773709850993934014450648288155380450584570553113611879637294088887007135712702953208785602836878023844906875693827097748199728547416215135189081433102237621202616186329589060807758227773256955167434791042503246644110959260001201863164165916692413899878292088871046959593311260235788256791270680201109947393466930821765550398044719855070146659092636388155352804266250427529210973554602099590555193886502781642996038081818499215642433617500079493601389337006184468590867118634462372362253639252070208177648693091378011910115596959396924587056008812182116168411078195906979519288432638284120195926272385495648522802556218700279118403709668252742772062574122809238429015626112085985789848562203859671866600917579377527710885876879669389436422795550130243542049780892512502224213600780045180261010248491182639471880840522847718859058501787682664222094692874646304735444219454715628519509254888433457091839347853741085572243087153504246477132081237913657026894617486854429861097304377587134761513594946550454271125380378599249844117684117374480596051881889908446584268184411641701545204656059303056701186030906942519320332829937147392098168542785386594537364111127272619088680158952319601169968255490452407822920391319456945283640948165596211032213942713374281977516096185533140179880118848855717690193320833417478565906573236619329560877034452572419406113866210288289764108921489741792506290758520468308616919413424371234463471607760642977244417804500544084018183021833394233383724764131204068767345668084928072142946389271565591359164116276732533863009343026506705210187954114510081343824326495499601098844804145210486034113451904817379115821944664441183341240165084573377678058754603995537581898796025437462651728073115336982595721267689858167589444619900513086981863931475507169475109171987967529686353738730938545086307776321528524456880069375757644440578535971207810060236444035698686561973054721028989433683953898561611761799720823824267931641324719371034170561236039639357835492175010126652015192438061871436894018438935889314405951746542146251340404218297926713428129066977076139308446056217477369808430334091726676668927123157454766906613082552567225850865918816417197015442675000046677880375249423699257706278942809806005687308508549983461833960084926373695462931381262225351780419223304134559573642895695635835296343969764498658799852967920218283153441957343312275968119482500654561498960971450211124277438625838032630164464653210911268280689873949238364618361673586858524590734350112813885206040782244037656568654399147984383281638756975130025632305401908510352633307900498395682807297138013409977843393883887557266886070996749137885063697833988272877243298410210277348774224993326520324409098611383066666404710438380545776305743241747482587062837913764843909940039729023945018591353825905767730124713738588874531897772210020793598424165678212981218836353988809449048458825114701134190847823444002303649836055102936238022734810959670577042831748775806611664851076032968307322386023856406391007476240923738235713132533786997355677714977161861661462211710955725689316531697274226731669423327730310714604317083956349507181534428543298013939335449972198802399917974132807253523280263356080387554193093506079276012559519480367995302958540983007739160376583349671364575998037521813975059084815347991855968736381143032596389964018589102638557804804676818954044479634873530031171218229600398984662862021183209284852437380858665647328483119679202627604957870726755734244658649797035207603790081124947664856260106091683419550129855935612062809655218669981879660234078193921302441224361874583907073655495602499116357950755604367613527794164275847094085342502824131589418389548228168298489230648620504988794008564548073362802359292049906752888466465642271322603509798445002159610098879403305799521054068449259788575922719708739115116561141043421360320828139914160194484324919254580479248918792794146097957771958188438560017893414165874416265625194482983500385093619688212980770175469188847781292846613380189415526887430249811842353140239466586111598890797567056899621826530536669496478240142039615575838135521412011931345609140977382702694123895575860253072568480467204123749027718803516430036067732533378813161265823410098080835393077497675783605434374789728296479030538652632145718857445171682850826926594363157993128164171376114470361565090629092555107249178991045335619331760192518492098569393386413320311063585358358500771112276042437862108387840663033433993104106657934814676448187333182196574942045747322553912085373580370525721614013982212716767711587709212475343927646945109688320689563923650475115134391781434327990683444774258604083715210516383130156655847727967835280019315864557531306833976831796400351873121465604257931913088640449537470065307930153216203373589067641472221178469644322564245093847949014513414658464117094755431349419194849069644432770208138608802483753926184807515558058157978419804324525999698126916036942120476897101074480599489380673538853039420490582214688806989618165194243797209938464919487267314015007636153015925413830113956514218316487664546021044119610942051279146581515047510393287925934387350769736601793476603184962054776140438580889749173698658310463845681604304476947483224618138381954322591924594046927995149114133391072028298210035253853382078381105147696967099829319164327797630173862641913627351466068645074266952672305015248594608294133774019536060317433602602222571120544975514424524401426297780080763413245353252598812181874573791858981547109269557371382021032319796558174292678695631325843189168963002535503498294458593110712062227816608552462707138843080210000912981964499869681068310887105855624907156421041657778353447487362181887826549364890355285387567060083901720648810939548108319504473219165491693604281837459488300482213516025509129164900295464935670216149227318045596986839893027555298793049267452411019843695435674589416688280441098461633129967437001052908159926925291071435168752360154772457418849433357379093679975181451206176540881006765321713104729329663427053612808086158365102590139057789537020383213907464803393449691971372364605727240927791779670795320028638069455306035010063459240210530260580540177871729107717662067377438443309145701268176199449121347187802042127912341632450646246791684096966414782364568486515560545276713786198432542166247630510552371899980361194613979165020179221315607730277839126332326607183000737339621100357278768814861766370197806960371647892252282295177494528467032944959850723116257287465215841938123756503564456665555216451161397979557317502348052315950045908529841260098577929694500299898660732780398528510342997772197162577649612001070982422570332257977331606877655774236326903461747112569658345806902116996315420250379862540897512529196790534858160489599626566990071408650981042183716895863012789778301121564543426901985117028807102887622395946675960854265561967091047978446977514619979933713753409256797047148863839092046435959980627976929181526806485253410725073547075811540798521201363859738489533203340755659363157435247176465554496306469494125876602971113620189454020544906964884117356132694348116809316631888300156874583923736128039961002066792727877292664808741076000472648452753018198294702792685023330655063678770406506767021443958955673794819776974282630091011780928266612572705197316493710673783506985915230750409754433206673109763515291683242197300442765357362556470203585353562662824108637036998052702353253784873368484931516452473913874126661319586877621967870120301226912767814816737524432504088945940242806441948456917864197953630414354813611703799371827462849275419121590700676057621073934151184485825763700958546542150504900524821242726445895209531486546109746128822389313031061565532814563869553086183808322633709959007472642470059409339821972310989962954624007469622250893622837899125141766398580246236714468896441090762848612713122195746895014116228287945249513510749810073419684190141705061654453157051178532207284070199305999345756527473075126706859160756209496436251847517068668343171350087578933972266178221417055551782369872149470170639700118015236034389491961028098095242094968934467882355487378480747602364049397869752637345836707366484099852386292743121083603696004085173470044851106917436441578350130794218976975172686600905913635377233121957163445054649140482582902571022116795539050408392190405794467591627816389418894194043278476060651285804626954696649337124439144189559822974838690987739326536816272378550705006364393994174236585773668567069750908567446352628076174442262201062081011805411411378415040523789019883685581472242084207007464343433848299923849096541600472595598250591322851937021040387663630987107966512040869838313564670340174447942363438017396251460485053132066135385695068986115381528161288239342290194015222735484080097844909777479029817592676757644602293022408810048635617312823990187437079778209589624949185963613299993103681799259800801889703040869438299721039922089160562235270818756916155546152334326979144865470789218976178614614454611879506703737728610966425153523918685495995498757446322954801857956851604136643665141791163443546570225969467191753705566255964687939862619392975376447977453447222252255256092320640154611318607012768494439920768884129370195078723073564599583924248113902329307064034929075078406228387359107310820426549956770241542378987511433947844248878383824127069494947842527590519133365529942515166311146786217105115070196813879515952495386673237089113353610169966100136416650465913301727022259885706079885194388907577979313878227311535778234400537118043875658913842240725541151449842562319220730683221287606002826134899916499838775318249898344391366148596041258813638092907329592579673787263511503153944261874108907413027965677895645047466826997510738007453829298868635462518175719555112317656119566978001745850748629232485285252944431223657377729013829411472352575757435009289877169449233020905291206147043981000787542249064511320113937371971934325131399667206756271955742715378709744330256149232591613694619444441909000654465346761686610065728276234192600326466783681614672128224807220913728731468730572833751473751125209635104670380423912389647546608127545127741219947864253691753117140692513077685690474377975392207282136267262511059188831698425485439537318749257808077348273802732356248522412837527809277914161465470290752719106344317690164509272375708559775972864593510208631316796155021284303229460824879357422299899581723098844138223321531961096012930864260281208559751037614560574376322705803339324945124308619005496170191348838105044566754616398175964655031222587477562681754019787718713209769298311901223165847392160778535011793119167936247799651988103879413525693310402949788909687704453584336633486971526695955258427883366374011571137070982487846178290617838435782652771705887668708772853449615025941763314367027476261465176937820976653164334651262068185086354977404677492420105938189337535692507714697691275334185429608224948873905940631165972001989970956225001846189468807829694552865493712204291071460178393052836147462827198436393242518132383623336577623308169644063962471863423195362563412750443525388720590128032685242793225914014001571981908722849789318420214961854803023057575821706181932516470003162866845094975516412665538245198237761747331084538932450743716389092351033197727467538248591398980186519850256346545683834036808968895906407749590802090096187809781237840479212556524330800049677398914387118085641955995264677043501404247365220230283153890296973418213329828323086511236305319858511513789940414270805132002022265665088920372670799083680684678055983625938423124503352317777373494712258158865026013760596949932310958566940422771353313194454819093446232031731760145427471804343237673783968679728444954536240312978554112075780654097830646560572183560136154966195108017318560037949609593873854324165100220345979623115427943333170264851824472805619565992160378895885389662367322180818675430297035180583918381120916680691922975023607773342786178438291286413252449577460297656481703656087972306361871127087556190258966530511793009721278669012522519734288764871547587914273741465596964432676410405137872575237299725396011671281336735975896496894851795943933243125202136968621520658555673568040472597401926539228390498924236004455660674707168218044747511427816899364765159397337434326731349017737429061587274638474764132346133486456657152221621645232188130057761571583880423141194570234750224114928847892982239636852545827969721322405977840381710385484769157847931244289101359737045233699737445847090644150145757039468568368693952541877211286763411531358087523625793280433605309872509242987902187325813086002026362394961875255367498828458441025977643730043932582511140458219446085162790071870399139364462710219709940719448118721003313161672778543784264429105096752535201092556665668088771399873773432900749067392471233442229011385836612674336780688884794560609204041431488171663097532227539913123048519411427618119781042232951578304936601963675182061536632571831222720942998531925120585775396923124620168078457080511382459770716144941547462605424229054482156376126313441945709564903307767797715343042200548073075824952394066387149546209745109583074027092244329562896330037664980427419375398588885811726864182562919234608944787102856070103686826409733639486969958299491108719362103883463053471061061267406989740532460582904194573158647972952599630400287802597987880949924405073079179215826349292302624208189915332997829130307915745263931246967493381485948080251237162196484955853922638727756177177003836905484654924195673763083854846573533444043426931853502027419870941459423044415829647898334283128494642153089297827830298382499443872946305090238247105933783945089225825286551902943983854495950977345497040051595626744824842885449660370223679249164729460599382562074213034819861809086980410089486890484140327334904545724113746428094821774358164488119498683396940964960450239585506183764162087348970185823434389898849973202653226456978227307883165569818439832875888672634679089747033563033896070476425158858515529936496843128771383990802297813077566449342343252057001200179754830567291252318764050364556758959293255625828524149922139940247774016072120043316904200404080663274076870243553286674887033302840096815962967375900076199393499345723851372371855307984895167127431584163331149042867209440330584288411819810116663922340763686902401545713733819589791591149511442499958888490720086332905283458832599380132926063403088146501372364469696639375305627549244950618335705894346871717628805365368449678630875101746029848042347346273110060619155964093884602246170627664257502465114881965417974224056468945469292018095964052005591997683148583746633337868392318667199258429673976800529424442192572999033912492115900397335770279974121715586604807841275538069795191956054306151047219976977969639869313057466574307988019846965203077804801276601171303649564288135988250144910006232466798081781640832599540392941235128899283717601172895937275300543413275076311161105810455022300610863953717527561969374159201236301204216909808674577342715828947128925929076959855884941925686418462178406445018744905193605232013745708859207628509863669375113569053912449984016402782790069731460755771856307613823603627980665110505697808119483076080768035840011826801078554931067906905283559741470774982712767049694631652141888965475051636463615313381922405073013488947055169380958504071199459645627386837793483960931500289436594940094455482718303552127274355903331276703488033623855696332049205056319309014394644333119239289518091480463670139665638812392315819638434971115640935789250533777108319918555856236140767008406523367530597250266276730044770860701290815993243462352970475780060049324727511625769428262107582499833099980347043091407504570889414462025454154946215834592285924307161461507926058665151971148720020516839907571403225229239332658763259235539957123992613644629625844225019903225748061473437697047981993366037689252162589386896792404435713526361803182820292162817181333224636098531329313936935021066406006555544162249800564607550374420267359724276643440065419735090640421403407953574502208425922445806082814811364988334703653501782681281149441148562142843787421921651037917374287020850447535197922815672383365335844072902548394127265244454536147379712676904507783197119614843871037001053374310248059550764664990198049615499921828250528975870299178758595626108332868706959233028456485754590620043668946616921144273949922354432668566921248669312502056188760238848063173916078753499739707006428757529095040070416575844754904105675928485355668858141793935386218002911478689694274603067325825543803253430303055665350119947578457449965188382363429815338958786229939677002431253944243428506277107571743321659179916362480786175054123795441444108562925609926199975187270107555265704242257056345248372240631782132592769142731980177380832600613169565012072273239643843196730332777890841788412668265108850921116313733758519236436689224785054368006239705299901663197454503214357447998899042208092031811571033297708384979208883183863643735855781997957522092978012114018316816348464607477326375002167207276897381441835725716026082051527001577681978521539037943413118096983827572983626579858621483644190947627913115661816813762273907169143332203398289377597463850115419752041289332342642263172712274735025870917812226272329296156464845452392857064915634560825809532157160833536506737326481000291785320589591405452990572447432004273164980700254716894509509170101380616127033817684300517715309791410913657569919208382253014988103733033146471408347986277619800063052781114703429178002741059416623690801205200572762719393947902846069625156263568056313268323238914699317643016137737637141993053023208378918429875012441814503841619475522894246808635224271266913807957215519427692780448757311432287758274965179140276515024196591335032522191127632042505285151144816596958423238583783466836092115051035928258355581076248409710743138125944303103019571389010472733835382459673387567703624284732956622460130151813947037198110863439897478391725507833863493720708943201389220372381791674689444717391381264265879537217555203796000152587858348072213466025816889093673458066573998463977645013799322870102411645083684217807924914903158515609036788203322174522266499274415590770068417357945934198132405948451709315216978360584567017707839850813157524070223568159158869179641054445876497102056379314357448240767044336256607834136179433711178662325748750607027315178487239682937746418243163891576452331023242137103620176773929464173134591546032617304886729046950791784744796671084805889470235869225653944016176963715121322477841544984413465617696874620663027017536657126596590362823308800043077287502330098194790269313825804952274662084278449266565769965939592741853611856960205989741365897052583114484526198723875709814695529660789860145376069731836471249674046053213726293163972959061165990758990234641935413144649190273536788650614330942736771664753922011215865478790171687426606203194740437027352964359939727180439644743109279865987259890296675171084813241585183929444583093083595157193073776935131458197911263594856525053603368155226384189955187477377814302181628892669174603841001276861628584845785671973288402477412146934593092500038625341152180270111213838704168078399630614313468400454735017976302069808939064906511191966118289001035068490797212739204144639214878455933946246441814333194547627037736898687889133684602264837587798740468007631340487695136263799814741653795734846032817782031746389307504322386660794575431910618294181071185046107538481455399360228883365520603745982343983893972169784034292653619631283317663195528391408926832114964141218647659951557333281347676936824980472869096674941895122846522351609162010816882010401029906386750890001948730683803113201062531647749649467281345296293439961825568364960581762169175164110409719942780638621922414959192168880893428449161075531316641673470834948623413787229316062051446758460653354947233289377823181300762371290083282874216298764300491154531734464309382201336326324740452306810710587639952625157725863796408071016694386374463969093513382639711503940259629108320669360465064563230309196200105707116682953225301997824301404442752285667799171253464881522179851789397269525242991159047740486937818549643034217164145759059995253571510926135586703162260038243331887056763506913766248932826732495095131422006254482654838058073057767426996327063364480129506013225994636177061060237062078156962168546878303858959390427828015364583414590594005429451267758051790766735696498232798359886889881216787974037161045412553797508792275253595013444441449042096841610314598165822730500759099360237319410279787935470280239080869920132972049249848107609251152734544224498816551520779485896095296367600867536800953955662177002589717574292583365617516720223487847824902443897969836483242779666391747346133229483734661954670720006540408548568638494785870824612490610227743754097187055145049441316909613334632929252774000943438592441487428267782733157931800344573136906157334589831335581023036763373122732817367073323003605144508038257750483163516378195373539537980819353593735834640961927712653486321288751208483399765745978709966807880624677962815437150005705942140277369346666209835941512631694658906153787868196159015948716211064689957867753411016888727902377055599682493060056829638531497502054163339851612985032495175073280766040512009420424565049075233486381427361244226901685362692843102776790931298114038317503079541303805005688188880886891795051173658747909715878626152322564956171448449090860500972374664615565373678622607295187918595378327545842955989864459487541512137188730331754989341838420423983197049501112979080759462788692305894955066363962988606711486176944520364282994016356080439680308018826228011225081198638706409624141019098634561166355721061772627782244072889652467201735082552027574203688148570003873709753201622512215473597450996253829684268464352735010830858104942307473250972088453199049044199332111566022998609968769368233228480753412311940260887323907428126432727466132834817397887411833561844766062988177343889524507562113330236916053860902673619906139818927582560585540384225915282145610274094293867482071882591107528643441111940511973916043057434925129247146908971425299449666971553180459765287174036334359702736748913100653147579873945826996975656949882355577710397815383475583850422194006107857309417021121303819168278430139121742505995376210766612260601802262605473748042499089289963146778449965100982355450976763936668667352216155955707369962787001514736434537361347438533667510275434652544501968147990404636800097379630620211388264806345318592741117754947170572919614916895441220857554881368701701465705082870754250429337145046166268662867526703502502215654809305296745671360691200782140508565793113278213884725251294172768437484688564120138460930955949297091763416915924682356951252538556209739198476517788485819598061853554642952408686130917269046218607887052304071252996376012757764608417085663629315353687537197531498794734226509504800525997499424624605198234196879927539179083450982726012816644383144460759587048661653957464326772182408981197645131593824019388952724604040515361600957097195206959887940146775785217766741019888761786585712261231511346799363957025255567011184226238380137905366407276355501100380335264897328949993587923437037200336854338901405319795121072406256221650400700204034334648266364046280968255007063028035839863438829195332773517471017984594027195579077881011491292760149304085224992874230970555377109502807991771963604684068709575147675066308050908192732856075892265552291883767274285498452342368387616781505365263508901317868792446655289381846908009666437014316023442718975459913843921899506623608698931875512304757997024103362819450884823911453020815066318169489180913374118959446252175836431754294366174221918611620137870285393830731534806083226521944650231448778671038874741720253468768438252613172965774545089055041472074096267689779778309596255198406749595006718467423735355251497724904034621909311843325661667434419228911971852134419669406867951794350836023603158379820821461140237075283898381225784197830677456272305467674529152980632489947923071606672944455506280479230538177819499700352342818796992298872153285515501677623398938067143433259094104983273878092544481544081383301819563982700415795608805088703342425615640641436237902791062394218570063105008165773580450788111996471740405926721791262098689249903226098083966504483565110118628810358085762060109530400698470409674111255522088855480648032171156496309027991985553644515352173185815060248301190282720239554272120764296687427029782818836845241530258967000287886408799879032762308987947391043784288202094967314944235042671470530542177482942479400659703861983028495040978817050940219867151259187212670201800069840327352731017364847967481473016143931591611631543847488779078375495273145861035752483652311592360655084425455780231861624852039125618868266952243945639078106731707950381451285357086598030603536681805385518944772048326692375878512030929733140999202523916957331847531475705786323692314112176940732967581691859955902669484576317290459502493226716182959455736878269321421995976281076316543330746128455342514443245579688525966244475311932940034147004232714621061500079426302580319145012257220004298103597288598473735717725397875363512990385699429681957177540355037036806409226339164628608033170510184684310490589581004136594125580050861888144256195001360848608871693204585526729633644133685647693352672461569020624370827470207372156265339965920504055300505441519820955358731884156748527747673759157628911147566766990020975484766257245737630314462845783002783078268366496749190978031023132801440928675980944530885565187302172661406487850367787101627981943090238559190850949259094024628046958760706652067621058918112616917209552553933658892318915431802535598639514262083853380692481974097075869155623067966407054990129023576320726446198152971515976758436811630706196808328944827884628144605309797367072073011820229448483221288004404861044871639157315243163211898749714639835692382741753885226893512645446121039853064380316360582202867087016639117927535475886358932562342732820636557686241731030719127723782300078580742953653800657870920955904726103201311271466101581165286995505029899287834573253784712455495259018240831763896231196248739385930312351811880148072635187233353639691930740803342056323713055951206790929125322642657460085710947699634120493216208098175250489183430393860673038478901131545316375007938049011412241074760124681772695693097379639945500145091876902061359214859093602436100509307851180209703684350678815329468730266116874991056701379544217510456575370635771413561205641408078034724068488259003532472575731158815384290449425523677266993520650469566083374125301658512643243274423139485902627429810305738438835976832198026790675896031391833402648970124505484798023210425900114627236798009052054069313964162918340784847442767768271767551139346419870495934002295152226707878744730377337834521157189968833956563685525961938833040224556121240798641398504539353075988961158461115485464469930682054077406509188742836846666122625104339163857870598278404443630784995254839521949964367213325264347836777330321305496607932647259268157544214323101463630988663607507278223684116209305177847260336901342862062871990819177869902892487573424404140675025415678681253770222013236276934097217211941556600541674774789069817271881978351416413502045407456224432965737794572272880604315506171307399210785438240657672819542211873497069409670143944784099616212159876540200350521029583395876951330814861924178819933491550347704860117724580130824189980094309560215197764834818166427415924711928422197920064400485384878026810179934587955693646697340481594812085691096487422710714698501674836284571393924830448116394666301106400625249577075752629592312930814831717895680212079129282436426826530644944221939596672302011582200554790798922816305399364391209378499380598354405519868908717855174669125308894169927043320459557999619655189944614893911257386239273803316466629844429815463734075951903367375685036780204266724720594901351196831506863198603324836524316704100548800529676144833930978306774905251087112204857430188989858344838777665219742785754361696021101285133624520858085342527767248425809390100600758188722494173162950694802628341022263927383081542546424101390987854157449151734609419330433218093666414624152302433509038033047099639444537902731368726731644961155839215194605850634819143805584218447083531999735316902122203181143824498593797017161294553478047615489561135779961164871216000420605540566587634772801695651583850663836598871868187753498535707395551105747794248457123578998773767231876227248719298623285613433369167302491294873615740758526566550048376079501287392986277890017415464542848713766631671511918664849261764981211078918187590355758824993766263492058534460234115227021539794534694454116457628023135639043575420207831820643748378392569931262457984764195763365505444738100859289390301353669630129887745375893302190061968209527352623949453632719651682009822484857018338381246676086728693358629920201178619491315844234955477410430384344054603011298383564823960144896025969103795712175973173374284351716470553655611438242672571970662858837738420011715678940760769385572408107448409285447819817825808626749869027929282249626142640814277482220739981243691499063617541660588376998495636515106557958366414836893695164750715040210358680888760397088676862954071541281524571988597062393019890759603289016736425481819290629234618468394659765769731595543403659627487629701346407688636682292893559417499683828397933857661098667954378267432676914414636409821525287939983244942722484622884516806888153863263055399281127521845793618543948639823403457589580750534087222927190306319932622887817786326866120550047757555544367099088059435840310184485866834368420601030036297776691896650331638105039547876617265140949790205470713800492032006290155183813589375089175098231851787934220448728072023057815091969815725166093361851517112747658100808839414039250145344875488012385491589574592352598486682132001392873018696663803800395243924446983041958239723486114226412407176207230178017693956568980095878970171615731928776472765945311225172938666174806089007793740126969767178721232137962412659293396677747262991335137854059113699621098038090617132322423994961299919134765366809267432128737440007845026025528247092186348291877975289594833895648582428230307176128972283336169410866427200273747388552543364347910462918013915372942774161483758630291648754595475684167063603511647763284274275875733065157009012358908400947310511613001732704856538290448834507556264285503751249374231971516407274752677138675725923770278927765761347637871811114356756586260303009542742468311839447650843958761499898435999808407179286391878498607021492335708164781331891850691328955673962524767181186197062025109688750041568281083899054222339623707231342959065143402258040335655344525949918953783524555562848294067340403122485716709365170485660360115609823430293277986561794199644986578292988991080643234570402346438492112260181459255770241483927235043656157559762159569854041792882500805217505747471986479182285385342044878679682029996349150990251710472596975450295059521008356281789406682953231637994383148363631550974535881993902668968942676491554765013849306838664778503387016389516104603909322113400426913322576247790361650723764538163539526923502513820826809355652008800480248238902804775266203071435695123760006271556149019539513298041326125965273747551113881622768949080982105143440984172293197875136535445156489003453134934673484198735622472546691678159344630726651336836606574125878426938474628623322158902462559642021092312990896518015179859042760179566845802728999439869153071529151322773685669624016439153824943461356350814948484209667051367461995842451153311025975234031382585086006925641442363462639160589528937555209583141564721647313426858425675994248038008526779023392898252267872866399080655236957308737406496521356853150394201566597975012689781047114404980656537094525195587818790309129479138564002231177856074253461556146921488088011921736771051213039179622252100123971638697770671309708724739723708506415477580223137721119359319306339171603814645546813897013697186042240102398005180090512134557303472951236390297716735359631121276624332182656824937418937902523898451918768296790253497463774432527996131110961716422069751421740419337937769902983412434207927061861175369194804620674697886728673518175090222935851128062141659060173733000249803329270055850226465260511359208981096193087061385845670329730118845319872240252170679256455783825593641062484647910962254831000984147595176889948024312003510124049963564441253834865958718314427563677191045962645793794458560678390923361768877531351101825749755341686623772150503613748888286480726436399425464592549224085504004799010400369295776071956084701188290998446717142165860409472441955262292731077026344475916738418623319505302171256795071118066135875502670475692300035247829231841898544490587670469385804974611323544572730751497285224693804614219179352582043955151542654237557556197816745493350842304458014048917487294715625817772906718372797573058178141216393676848391677343155808929753136774458234349004434228391743586443139625029374554072165430586236247080886951343246213969384161361928076523597216835905648611602892972596050743706473724854304920012396835780682170851853713352362771428948579658728564949499102220542599245576209265425790496218634537956969907272089417708342836106035269255203765623392409252984413710359404106265609391964385610805152165742159308302009484212562607840640509493798548924137488661791177822854598761538648017665307706186647692802891445845369124766897152282873422994719946731104694368184125308369850819055881996547255730903588908334512138013429884856205546717520505579202971382474941560507496749353685064552966311422343659878001743052209153565372451602969996483497384629082688170149224219954578412026832880458571514723642096522563483856343402531790578080783707475531741787994463784018106923689316249632197329378149000816043779275350611368704229340636511044379858367591640909860886671218184730279178013744583068567429754854935777895439793097993848687220458035448652716362530634589876733503714501467228057848613253726001943768652875231800776831035577197218599033904611900847387478631759911417512835960617545836972302623639284611801019094554392678708969618681984426720969802945146042326475600304034065157226028991608696361694396452389547875236685018510147601557204562755825590525427727896641374005216963444136391168615532088800637416941035389342912623365362957603218056243216834028270947322681864967743614601741578919710723273203609358764579385752990501030670816475289782230900139826708741330450291819391841306971351485069991602101337316335206140456079083854242548235440117462896922057697612425621540775138580219058998257571414360055958847212045225931213658283478277580892147859196623960902267069083712614398214899915623892779586845289009991736175000582804418393235353150997412888463659280591581582523758434274026088167613650278817108595425141415434555165629160036802124282654589900873553425989040243329658245788130000019546799648396420770628647149905801642993170942214737350803166949681049763670934935025969812859486828650155536181894110467397656165898909790470116591429274331819526680614390467110434850691129496041874789726057847722740909071483719217186254492615499950523283909215552074949513732453766967533484831525450704416163443342159540708003589237692934491579832016875122957375684866917745818793192294680880637219009838712103263580452977568929482454211519952191558907641944532389422897299190318436484282200519777472595472977469399428127761575404175576723131961860896494411377620092386921326734249002681956828361251332029583656788127144683974964214619806426974256398408920261454381647854802057392709086973477385592044533653318973653153221505121345488612371020993441040981800679720136169743559186324377219050145232605920364661274424747760000821624414965121487985623965782444930867878221170235222355340752983417436338864891915592917881354698758413179186128557381902756181877592449934527606737673733798090528440733623848803610075151780964762884387929735227204376130449485700738695741601544866371051131837263026834323485843644516299717310257936021399117968239221635791720642321210374075377681684241220130467208669514783811103951040070750707330425928872321755712550764822973353121246777711256977587979994693340594822086372017491311655470522285731211513802249013638383485801939789278174854932823435267225678498448481109510737171294942504722462533974458714655084589958873231464386973685274268390469542033701725496192980194182814120939215069228530908528826349757532703767082007499392641491907928431345567454920196682121201159030637077793936820133449229986747080306593740235878139134371030116512564861964645425469827922525191188931134902589890829198388439404223168844836449544046943178060483160463745861716243440491243293585887172783211170693308719629210095309578580005151049944358886498733644327334153516011962029177010050027943330353011319156997248601241944420876000089267433463905972187757653141128622292668177919104174636482923969533277498331106302868755346250141623860256204632834500921342308039049103888155564483265139328125892631616622279584220277462023022802755967843453259666631074413362021274064925776998941636154055527478857536478926267976114637190937031837452631539634999518576933124259398688092084964811843950467090758725901012212718341255384757624545036016382318999890023707203684984414569296162870793225107067369145398435759373046007310756983352650824505647914755155284871120311810578167371130547151546456781022171912964883523310511440035598845870099421202921016819260759313365463989563773708074198137844231914858484746282368233849941384850259293280507767317312547345863720813798819566693168120692931772759310960118236659355634900770945871749123080838061950496552222072683250153357201218279458450428568141841615060402487277527417072326590863409654413362228387169065958161213230148445455913286080099897126112966810010357408128640186976073574304776842737250411175626856868432735158244290272266537143687062990517496655099560413679434444528492411651375954323757105420404107070516662134215066020021660194876063511558321638167708092420084270445725302863809222330716177060004286150395614180041834424777628197898388027010533152183217314640295049632141924971554739750613553464866107041587768626907981014184503034894204519183652466070601843913375062890769637185365330903390024698580249650324120248282936800869471941695561405459428981140955011072208527701706842541717691933718682396089484546393598394157685918045906108586930777683843135140486804904229640514510148832882517335916375738760388352900948101568032406062423397680536759295362451968221972024006236822818544611935334381209441855856581965902375874581162084276703213479940113850642336546334142984271711144551128073706362322613365790776559448167192703612580016973542414300289056512407218712795199984223240561163449548935165330163988349833513946119117849536675570686108162414535052103533375348324533636639288353974612581565654788547828013782360158758581487822825188844810106501895744130689954894962109155717696075835250434953512782437733488158982715420708293684339831097204416298053161384348552264730160910982098342223445637281161467311745747323765202310329482808930423852449322721120429135469541901802267135042246619498508475950485810949056514705812438310807818350784952331998781211539218807706179459857105288750348332347413623745894590149145789883648532090668067944171467248877731497231267423533698008137286379079581973637037026558318255869367443346462252634073253526786123941097889256475085503026680878380036288559372809539068557041547964700926335911730355308370897852681605136758855286530570487639742565746777204759446692097903087384253451644401809305093930603647615554332728179708023512742951683882597374738356923781467239569224875356674051824138961906306145792039167476486337086765071278685205741685070683037900723789761076277265604980983186002017426457799258183707471348844943366925485030452792801431107797581670119250931808789473489286877116442700832335984905416548680850842445200080869695644952123207525571904256185014120865434319809703090808088045043039023954355211194019810240221896013658516558362605280345551695302895304692601975448866523786028544174931222721970074553408295944510745719635089133332435222113857347067283474360851227293326137693076984919813326821893753772827412040013275033914325911100452450508645774666002418009067193389181254121912056966371502226245176832458081282396045893897587176084066530922231239835936670211397553017561867258779642515527462116587444789942056933534934944913443119477243925929175363735672381157915151824543787055275988019113861673231400219850633467612134674349079188183203502545303897550431175905168010275583796141689412721421460849504044422043551093394143869660082049923547760320429167585543887551619129553032864480163697254830580074069064645630835559115084011484635382594079529812278604291602334537605754044820183498804734645509506517679853993087411099315204240558149673301352159926044042221677764002981861597883383690947595867278828075574382431922309372210550065518350291120099706311831664427639909453723294162494195516516710009482792366125663134116486489207840816336926639164864677376719847459148592048649459531798384043337974280314978421997176873736942104336917205304919336133887968376298746835273070200279038261483285579060954316495761366671473140811570095516704804859348010620371513207481814300763066514457190707670491249215993770229389016890611790607220605939206696699814428274939578065368192118461162928888903855510611161982405133250331118081049624181656424525795725917007015274336933746785715932668763047514944265761419542202761299115118391204358461031377593612157874573162082650670002027088082587040860911910633826295582768547129677593209009490294525689373898129039074733534672254361255178877146949099688917047370169693736446946133933347195297633109397020132063938247338766852696622293230694934151858276462770026589920017838508316919518522931543743054118672757570426266172658513874118561881463824495275320155603853634622913916309993426366147521349769609231998896245540021501487352175419801739991353283882603392733610445665005441304987096096971708154643057164811236207405714230563784286463658743665273443216564010272624729612854239273206651479458630387153514927748844862233019144284970165607606050494774170204604682387933458432584259496966698130017697056862274524684057499361349403370392235016838375761710539010224863620267426986726662142370315644848288733625542865157753292896518067382490681114157806172701158751650137565725070584026078839926668830070001566432397553461964445738299234125960819064376032904879484494731833622276928467921875963748696745431932683699482382265022424952288203118304940886084027991489184534602418040102764378855020593053251865517452519043075327774124665949930762968304914560788487685233180651368500427891124193761271849047849450276639914000859174768166174853238016931853448545116746361703855999006180027536675785492369888169052184608398392166514190472327635598833573572293142843362173646133507531084942594620660989125605633208176517674358307501310413011486632222448726838852691294345292268100022094419916021410281577355742297987680313587007740728458789941826000058244381779211620303613992591414690934368043835519471740030591898291920346133202242900419898086926907532951417487839770577041666082967003884651235281829616944448271516721840498078210680799156247854963279702009734917109197356771302663973183700692143374917445536004466111705724191542699871774013129521421081265482913924764428398110495638921236285683204181403158964577787985420003497437602489768250234212705011171450393577645817433003291430076506453177729580983959474296141828049238066322194058059004213718991954045478530158421775213417786233654134842736396000480598365512103364367207049263509663595794484720509267013263117851865035014711740018681871983712132437173099934170763461213699566784921257132797233800042017235506576197128178963458377741117063582252864799378786476028544885706616467645646956468844925731722569842522944561370373432523854462440628633094281607173699520343573816574904195157875965588072165507573538668427559855866156573389054201098676369672852175821407420157372692246397219068557522362152216571586517348020085199916802409090233249940044513822794959126739260927780487309771194096543069597729699812040816629504540056551095989020046962959233939315791990953096678267546553408380438149586368910859951165056996899842173032549256876613675508657972244369184516433872555597595716695528417470899464168325602017630656676650882824747161483515512365792393123121463295300216873992629229152322005433614520017096630356896220517061990527972158327528072161259686262481249794671649422361173824568190615339543356764242067906349404165620020975960970395351842970910857887761732111633738657523624918320339819368702619624927575555499540785468179562555404238578445169503340775781085470795384456780914511189875562003247701713806881127942831022262905117675672670995760648303426999831163255974831730808941586597798981939012653455368604250063067751896815051398006954182076057650695101822578726560968495961515994198431141154301620706701021583777038341881599083583371072279544039048582569314209530741183894897181385504172710912385465530371593624649681376086064472578130935292851241153682189996067206195790337135855502901341574347917386057525840299905698503239196230177411567262414946389756549083781063047028730743538985508330086583224311362389899602057830421929062279515043521490946736017204106593814879941867070181977953226818437616940651730685567300119788193758613213637959608540062961968553613379267942048245553183490987717496596395151305663413494655421929969810966516296274382908047219949392898565541569104690381229521314589368425992356289189788179835571050428680210383314312196151715432836813124493526520674696786690051840257635013716622244740458359915893655102593188528673884141593728498897141262316595339006055428493898928003223115641412712671491794861766992127457010140480819137902941707257567897395497098721396936785385633617615560551248752778268216682223705217132023441176399990030531121112657347331722979406287555315866772475187600984851165982729655005555047685466554545581750567837101008410224178445827223146823571453587565265757120118318186052476565243726096155234428993673823943870751194395254698695991126087944175502718048773419840608600212948698516175959179888662271451446069369218464423109035799740022751294656936080386131117564225958718910090369144075583632479345298027263617126871506959648418608071804069249904029868017430669896134230186758335529986734206005637070346061333148267895017412856635248374092335194471186457237671476858124327125165167666921420887112881776917571840617681791089897598692882023895867655886378619541672014532797275210141033331240331417325494596612598634606129162376229315400379662047421018517681171026000467957035180542854558264061860364184796116311627822705765171100698903426004949994898311841017973585664717011186991031447759438062735599765840821128630781676229488470835248016944245087039092965048706011687793275475484021305481628539688383656556226406212665975943219349226708915376400606081160359941288510159373007804188507410228036969217068833872996651872956056794111605175770515074703305301034278252183765349032263944372617246869238587672886042569145111099045930844413626515308543764402531093222655309420897655287077589573873734352455498592353973624724084459447141245178641534569298206590670792444631656537928763766874387435026366407397574537601744616402991472209773002091743725560307163173107751507764429817111901251288462342707220341682042522212047888412359435896085514171495504620206221700768088891462966280982353593770184668142583040497511337735101557728022565080902126434332720768033415781365419121875265510379914619809929255012248431594906360950102301619797232931106266668559508513972045134578043309660841116492745987215058339444670480438267375398509458281332970023038998578654482372379276536267848793806020960813678608492954257986853432344443247685301666446702452090085262909019820767714064016046985905329865652409437636031079254616136729360432347716829473339616500242784369207830475868107927122956361458847002016194277808880196666465817314554799951558211689438663476597471803088189547130623128648812824050458075830587510176956888264478767037521136426001014024257055646291786069550695693048907396044759343483055263020596450967473560743768829504560312752816219680875019649495785167178733274658243469650383686724569526515403707257773918833781162010472085762975527335449621348935147553206653027348093236551344413797341266079641935654469396032845414002058628551947665806267747759266250576852005679493609474060192164892442844874601982762750240126462088146869742123380549549508220502375510111988969874346243155365467562423331214603217867922262765409743341903800356136772198834269739931535380195104868219325176424181610760200317948728624055945306357024396071837690552652253817120883290523877876462710566154371767512124407031176468365342503809353498929705533085607959840674148652800245997318141726243533758329928084972347305385442083206740540777692990383241686490091004616667000958156217409489084518347659702082286187000761440623196074572547977802808363771281241501153509524404857407928923465819000291957882853308528378213359333461943966580127531361150608074985425675784548034994148309238115930242086510929448505619206301445418475578321661329602310114602368285627380361325520640507135121433839327003548463163783385802291731605265156192045573380242555712138234096095429799318561632516833028463246746673293958954783456111739982153966671961756919007327334856205191498696981734579585386984758963491845238644993611209109923547273520935181291729035366943015530928520200590824844065480106299865417630062433133471734716565000333010246389037792374883580137876137725535414742988934869045730140513632020989270753263456485676699325016518878690835869227527806704549111698568978565952199016338282136866164202949929739800540149027144434840891277151103684386012952853323849929956969241481433606394606574785008636111923408214132671234770494667926928918841240528783788273549748890917405697585099079584562804007759363543466958926433538489510761139241918473298003154061203568261349668790791116719321252527778552861619361050466754252290119405469442442027902016224158901969878441766568742131081140450089682393287872997678759743124784416216017957931607439232501997468727703860176951893557834737695387768541290971270839622460556843040534563998955298481587466069664697916331249746281077863454974710426998415154547073877007376988608528496070993254913646128763466735496662022015060893599008767140926099931596967271948861103900312266042594325506173010032458307148596395642511053177913639075848318286390455601521481540989410401945739596224772767464114822506161190662477767107732800933250506985044089145745905774310907734102571324258989760131842390518963814013832148782939425191805078692861977476826290187729112910671408833836661486221670640455030702275604437372102407060447106299314855344771301914595956001951234008099202565299459242596358522233322888787989090938862213609181429754955534584313247487301180777654054005165802125500221353050334807742967723183567327386748653785198264131515375925335061423627862639557492248486015334587792510038689319341752122594150299357452992732433437198967142877362071789328855310644814877044291938192150162519014009996205935760481907223682604260459480299054959343196882121152884487168896802719882828214485860362477530403801052861890578026267802416250551949698316664821089668334071716074054471968602144908891283905764470383790746834614553022959304387740603140606360089624076445217427872335037321127030376718139804915558078822197701642460570441012426157443175486956902886206368709167578915705270696921323895539570337167672051578022912107527751323757918732021642465673582550535516643186742932592148779130587884306359442594226022804181089144460670363442890506679678967664613675135163626417799917649813159845014221717666342516794875805331686340266304951900877254114113011285190960214311154011155214171554536723512724213582186400147371711864072751327012128599653453782326746853704185313375595624606675341934722021902809136466890294668210165042334365315288943065660159311476305958011475837290763444365291345613334159477551017128474279520317202791331418968540076378782112280055530269056456791375135098504082784268733494877357645205625910532961534428186997995285171439098591330396496701284324245912006938223395123636848511811449283227448448327109378048919136339118463798354830216388789917580898320687669836817228703251272650394262503031483989176272978739639773889232949699823252346377947515319443289679788825517670381165613973861435676323596396719949161106365331103874038339450346589099138567495520539833573216164363408894037650429147187143571712021132074898345915251025307263874676719304187929695428747408158944859902157960044033732016203557883310471942544768258086283687048357308152346425193531414849532026579845974572363696574903237164717786534889914392964241017620796089788964493577950134492987481912617766537459482508640596947382844103406756826469351547822010900230748205930841426890974541959831024391669800020900241827427794076731954194504533455919223371389747934122554248676204887797183279927295218502022587081346889932416712109914579960635678042861463521724990616326410610960340542160236374699952715294684858540689719361909725937084688495812934389342574515159945006048973287716989800957005808001683308992314902291353609372601979300858415046123963478043438615854621103488759723454577370448829420130623601839443387965409283499182326447564694656680473960715588005066397913488586192735554261184920530719886799586809814711705779364032951558019649471879334844231337432659553881327480077362270233475025273346787571431702049251815791082345681656250230811122358579535171113792199285781309462507318114074530522757859395957745165640258320222254496343414200351928997848108696066292860748098885319491495663267906882272912749611720909952327470973142556485956890959897283218596080507296672488727662292983932263926899791877049411865056861264772442008687801351660422129027438078496392825118245188549366437617452562270673593551438760454881045381647608261126956662440059627231216170657124304286505109355043392548779179252530694363212185981379341523737670955704409092695638017365878066172994811840965891874893723732878788262707615421554165467950330187460964970355114218682286046885150013732041002381576020977765281976934212474360761271546845179461831010086248704040507539807522570050795786179207690070241837636776037833203201874701227361962183023318037035433228018473784239754196488471849386475922571815678547824223231206994481899083298409085940397476598845783508242210658318975897573128695285286101794466049983214023818228266231087282756341408342452725035327784175626973343677815023099458023024980383443579158882541429449952657375362675668199000773563825269759098799343113261644964719809675088099580648233565411650022528249464467377012454799560065456116847299084745718768295740076314905596001846713454714000487881039215867715574749818912552762810456501945336802776359421114027765173583827791404660543334232741342116994608912708530603110505773912794213855371612814030433201586746163911608323172085296739987886826941296054071815773904425156797650006068340958872415466867382494676070799172321699150405276279603584030733318464439583787346475309424762684771386278781453950511322619034788928152307048939367464697296122072827000734222615787355925741341896687488371786946850787383852801162681021321451141648074820852570864160533004018863614205326839142265835395643279528697239847122027655750777276045216042017112859784254698588912284185995407215511592454922860062046691149092645960985012086973642162670225891259093888611438994386430296002115074123104419306048206785698375192419864073598460497571085277032272792264759871251769311034950115107401414244476476469125012616795234660457167826048029004757679523161860265655586577595080608977289193076514371427764547622367721697421507107255624816701020251319002959821896307816331387574713073583863261894156924800088505983486150487124803772482649128327170585907397477020876956802555991008421561374134401031074889411714909549440021912804168547690415792573243356791825655634792131293356288179153655896033365620836904272708784925781934823677811755659234515079998571693173998852196029864213854252015322821199697823807343398564906634646021035412127092034529192119498160022523357814147435100722001835508272572405133326936163029643579532911359267188314082482669307218976560628239078009157657210347630022381450533760597520664573293843478436779704532576488680830874845268585329405372313212092691347147922166240878983844868217020963196771406839459940258613430513246915715406821032991326819735851395971478140259614032395824630461564480353022942584172880737190259639760529675805243608869252008842518374120741962500858002172820624017493057156617983957216465524296737818608118636588658446337051218454959933555362232664395902311454222620843485069525800711726912406189246098685511857313457860151135642891513054452586191163658605028740588787390569221793296904166687225286742017144790704290788979922859844698039968504942146977393488089285774473933363619141018268690269876266456252901746414552258843966190689080997326008007987775095450951931089040552742076479878783247389363690829061410706329341536525967360705728237357503634910208101304077164242278850341913967915514277397955070352861241772210387246943836038935751709255236397456203269754120795084115196406349872606703444815181667570655801479643394108705597087169797241422385210192426163870177680578593287974038817395404290140744950360191926599966048398071873654230542129599767590604054696283730049141076821492280405871554727702090355455833210125312667167862077272747461149285279185529690830352530600413152989759001924096723671439210620688028373471589476602199783210416840347773422533600355399266559529161755018513318773701791858041299753413187563895448007860743208197542713824090735798453140915780560743959953291725140383295500689478937020951691515316393325357682400726695410011684748912970173585924674026856262337395888050747464444786539917596908561846529131804389474759937870330055600444159418821281079513670292144125191138580007404650193400777584575462105576715890377347174875952571865592836587025097343455105250106213771594518922659518800108294564302132618915344960312114011069801386244181093629811477403810321804038088250741476934313678235968215365622840258098936755626735074496561835083893338246692673407715150787911887314966772136956096359521889843554816344976034513946661628798750070274110006297289712554428988459888524099767803285508122370613812094229770174202739875026353614067365664707433062192587365448122686960609502766082325958210846626364901924465047471826540646704162911893275004495233914955212451404668081853313212886726242911645543721095147178417917145727205219455948482765156436853648629065660334755587808872867595011867779579413502315815727574554097446317401249416178344355020207152726514416972151529961553319119526068693080380453609948594394402116126509242715150920481563677674433996253037324066753871226028967684388595603542829357887227557277388994067156093034402272256307002205630314751740842607171636021657473790920154130665645575297885841672638087808183956179158946713877338028908080826630787431245128128059187664517276773536902818826623127208652250763096766083817183543519994706632818558258333482314715706428547359856345722645205782186807549195411822560163294735418527464512987645458462105932313767077715477943358006726853362479685066080489228794400729995066646105716966937107701260327370101851802736970526326810670287935330666517278878144479450820606702617853323807875975405391091237200528389514579223349658493192878957535895743311120980756213444456357539686710369592957468614061642120927085780827731313316906863884751856237253689760202793123397662381925855374204872610291975654301670165958874992224369317663885241894837776319318108955318169403125656569099649105789751523537835052397124459005526847859807164489543334248970087543440606410348556749322026829935432684770380194499614399845864184711864577470907603584706920557461999976863500085773945713281229476231726844095227177818932370937592017558030204377807952112781948178510917348351237738801610000585424463116622694877146059934232347583919118300335749544528382864855325621057175277560999697495189030008237237300437011814539681294837257758053797030750095507189979674236757304803033403748681280333021507141599590196799713294915679197521291322038714315727325953393396924068771027660077749193480468277862981948604997353411982748795575215421660252458839341549683663787351171350457776970360414104396942629863051330605447422141858971629682627076804837355295327188499234267735171380744693106900885218200285325503209071947260739567985921816070049114329755759808182156943451313426485445726921707637823754651879958426585317493392054698850909126367122776843630744054377684076682991719102200320973136022259589446358276670048646973549016955506728686774226672421175495854478779562293135329304717199566695348585978234993495706587172347226565920204295199382311723333099445803248710930286294147847881597223215950490220842266147126416861910012070783119733971991301547247174363421318264453686627352371599249390084153587154776733062815434234201523126854772519507242888602738898647493271486095882247087696420188695560079114805134437250610617019127931047684842700512701209596873452692942897675397167363832184567462745149242140068035144913406869190484160646249550107768608389861285813823433060466562852909742945709973699423095084161525346162143100214715077320137270603896951174813311952438397007760351833910319984006096528555540992876584212137990018133324625727636414875255061745916704795152296783756761383961995888724631633990561634375722531998251973071509235403444550126320006930928524008850482929830600001931019219017697988087653666910292473079778336432618530283410521960057107404333552927065353985889201252063110382613206571924104498526221427436865223545999730020496937772404091990372576803357606932051553449346972012290384918189770305464724581451525204797908483885313944291815837153229052492457009010328843908411574451759513025965160939005257018492601741969594484401031453426272137488934235750252326761262018019126057376829310561139717759332453329280140052976264030227358558972025163954581582734340325034867821046642046356281078897643619542363837843195585109464252672952991075207435749161530547050170112820516988781055419761303154623227546249089608106021733951572659339066547764691112398039253916361873606464600556813949747261875509714944615324158313432602514072196421812720650699185000458202919776463093491808583039203293660175322024582823529601627440844040168766784057832476378291326246567412202271715238542265532458823756092740230882249058380495880967544678340215298092954413179521781462242478962709803482591245733809104550629926291338919487928904003693123748352847935390900875706684383959994912189434785566125358267280152745773197991861348636520053306247952292585472992013219315637553073535327363799260700969772119912860819899291190528267076451612113453535358021140026560637546312703928469622171242779975155353888663229867301720463479143100182174637820840035778358792682723332422534701102447541426408240939758477882187099191083561567487333610270270099715899311727158309941420500275357109971316797068494660187593244021535086118593036668983711739121096655580669575465850749826879322069602080098769147049647933431449564880914128186794968411276477899865761790170951923835607892481665894932068991174037449665521831341030172270764220856420174907866140160963134048994334838330688295998022639339465420861293907239973481635594871701191917243748277964842556979711229027012159928744594614326323324635927150021379183814935255554831406625302212473291044423991121279403436428853728238153596293527575547423440000555718310875601810248634862844336715135152428654914467857155885612750753512167692068045063884954620594500711210763056860687166276704844057909311306241026517986489136450619721304199411298133709815162028966004557882265477044370658806609480733851448692732747310839620262504775696982093724219793183274332598374347896664099012880526456866400478900119916718647897609767100908205105471469796930315096261081902218117957681156837788853747637804762182554019712429213533623846769815492254156917113810821007831365966184360580008542405931137442201527433609905771948072208874273045024481253887042467070548775159786075998942121004120212807945548005511829056047327022789962099095077308135150512438242192482243528615974350495009364569122915235775102057702711578253749046693585449868323333735387794232010942688433444052768040204812957499210125213333821646878689827111115013169222171877229197998667993011258263921244856133616188845389181309684890992000473998452900407271362735743693520064809481594136013664119895104241135281665821306695674810933881051676493746408965128863063685300742951589296136000106170961313282925536660984628069477303864144171386629950262442802588552881765332347573888448520061599582992327594518607945809174031039038036827532094204698017751950984000805785074248104103201628276597801656766199346121564451898322743066837844155913420080334819653470416852171766100726955566349608592683895646819082063582366395468102946855117204486225283769792600137583918868145651280737403542345210529446825311550252771719891726688593592989831109526349587677475363963642542166302452548741579025079739151380314436493469942712297710301529001916164625794914298708367710692555857060510387667033162335585913287583103920179929492945408918795009949772991695140822694123393706479215966845005211388363082991982882732788186107553644636999196949947814058805952028954397772436251362676584228835604984318097320156809735468647287192093604301051198074011789954023292971201809795851083078124196046464572266783038420201538385810078052265928781386740465710748254807094810120941531382957273823323302370822059490421946888123275961213713025131437492537798340536757525085271155413288263689106134884886632405282035908741058347588831863840186572041083198431083596496680288110089647991533834603400817737536746615810410027865043043104742033075869572862797042994426893500167659392070050126379345234642074653372289804734566023380662059880295277412538291714115467869347881370482789622943240679264916644972394781672968970692252949046211181138895814177317479483721883085320841583384556119664758221109644455168936760147819997390457847385912064265415388048197195804749838379418831801735512163869722769556043289773002954199185705199733131825362160903987605631404811559531741128746329172979270374729347838825081479776295068784210563848195439777251031100140361879829732699135341402658259900922251648140281711582073696262705070880391611956700182077227913193506120906655673430585948560333622657570916657174678120500576694357569490881269204476498334391005881815381740083832798682634548802399141824205454995775876856109729893391893624081456125879017475276766173739217452091462017746045426633662508779009274362965126385863763879613972155518315341277516423469217405318106946994434497298798298624457951059719439908168496232004144927784206457360926687348111144165369508225117167268286518128939037218786368750414181739916161397555391924220821427074079872571581903611273445415091620879400878383061601065582706479466793501698494111205427706938606832884876564180964708722421646185228949398910194362005724940291825819343782828021729143830258063896389550046907599253974456985227543606335914074204022207543014263301854749811156550966195156500410646910957852587483063946371135787581936484396560784791057687277643031264810794539491184566345855651318910400073904506748196688040679856008013922115095847428536969796394746399957038004570955413433972529218936538346296448130678521733440260432444315751591047033997730422092411928627947488187799503605613376831978936408170291997462679023078408700984902048790188755118939318364213454870846420195835890519179396434457463970546975860087964122544054518966127163576063044907598025838285934785765790381495916934188659234960553545720769533186867623760835207241151312984294304260373260630977325275459449744823261282050977223824829849093224164168163271611032267892923393476228300705468715209947430759325451224671128886621776123983850645507903596387057353264709162112776280278280936773759446178950335079687577457408838094810319448127070946454527639058789433807301643463474125978303648892645919704713410975108600782144821422245653003787155895947695379224416939320943810483235841754487081123947203181760102439478873402300298343608044893891093955083865974499164261938646201763479243453384699832767331931638050825294269888565922079581058593197966241680867011171587128768836200219347593101330548851954505392501094962889096378438245313961138652076825131370919194562241411118209758072526261534111667380299713986236800621918881482206199379646049832298524845874483472521485285462722232244263297767972286727626249406115301766223769009102932899063749956877212556683146089470961205607284507932898807429152109698499478190375698645968653326060193213022506919743000332730162346419363581224498779700894638444582315082132070835127516588348535540915340904335604647609862449305142209294261876795096662061340974632546520153646931577588190450491521455185873724719581169305327660353692332970138372562243627173330375485133150943673291422180401155435834394517720119617031598849135034583195966648568645540613689578599418427906487955121043309433753197793726524564823973401468640310198011104831052506821294828445709363676522162480878536271613473833631554320344794970865868401779330063249974325514126495061555862809901943908477182060773033443126340201432010767117187736314162852919202921646033993097603737587919136852623652101534978306027537905901253998394027661778975166726528475965805388277333869449970160513419557654661849730300682739396118176963078961113094344690709673085752320861829110679955021248465781799962263339101501797365551211751414048853259581301625468597552560920325154124865530350442500972540095463456296578471203834356847871782357988984656664865655099300671728267417429632582612118067367692287653959459666821194416962139451123090861453721119412065535492757496255692300071638953246302624675568315987119374965679471275636272552561051002232665893067790584331789426765447570186483708506803224554672741426482925117992812854091103222121168333303604128209414969632272028753886160197641599182467627193887963266655364512131722083349220247991518817986209298477943112765496100583200935653204787285456490981102073436980948901252751691268494899612989462830526078403928236348434454010037988821953576599082447140486984020527743303635763229119971079862246573947114148101851569122419781444987187260579228419505639971661939794145688063241629096388010510284224783337828842903805469584332770770991683487948768161597948966662740366880212525934884986923111217482317682830647739268965470191957008398673794196215438128410871495751065120801089292215293889359900961510346324737107824317247278866777814258626278761110890684935508170499860251757927485638845344206027658253639354658919686120717018696170081451354376755530109533350779511278459898081679886222624447994272692117541382769482242075954365094738623847298743833583415487145813805147491450045138682740809658848609150473875637986875969927367897136864701930242171508023697422893642017512520775672145286212314704009366160110238754172492202588368169225061976121380455227323865542895495165862274072066290597248973957941181905322814665775883458408107823129302170633448911367255506571631805204217353099690205525957836301619945392601816750266554111328568979892959815785328388361000391646287929958401447245286886473891082591916866030393811204856574955204179070443240750978693026990811744567922103275781921768071618356835966872985623598027146260424700195230010755132557775217745003751479714985133573658067838830755473973605536936474729478758164622134409793532882338978964356727678375715287173293232657293894736770658167640508607487384433437556931922149579826887113989326523970762865863469611007372864219782882628487026657076730239412878366395012098994965101790957733787865368258333774788986399986466516758816110193973422533046104775941289507026717135043291746945306107065472909648899243860762370719917667775084042610678247168533460558207688341518438762970214995024475563460763341827676167431003599842815689241591434554288656473589336160102520303129301879019310626332450103187570445889171187703835303092499550157150994624245567110159748047186849944470931870982005085229464924663259421727039131581679991468713138012190232503521366619334946665169463535095525272664310905351885455119613742987160578947652887713942140474567404450527670757482850399267073957907030669700418738458043438699061980750365325080498335093941928042540117862767266004280128826934403843971384576430294896608321886412378803494863643400430573353798086271133098414854787352333719196258510765986367770762955982240825870630647753891308384281752503890265812723869511259817304778018800002915522889665338934250925914345959296699132828648873104231060144446613867500667007002668093130704928610051391073672426323930796300406033403168186395375088009094914732403348633629700016210938777225644539504236214521173798555570228874779054750468647743505301340389112271482885830916758210601421611517672256323339134708258210369991111219803438730030809607513344911915700205460408160794375933880548986654928871619179583905482888589824546454149432970813803100606013192221878095000980740738462563181300763607668120085344630378074945058499069146850202965119569838852943535759912266803809056644509854391132916281274664147068532263908828553454122496216009365856087373719136799571677617249171245116119304354646840323049963842067667055231412959808712973326175138850151799874498621020888137619564342236812652377969492203976656094026707421897059247867979073824462988751773894708569684037996480895024295257117367107340633541027094069720677563047830679123023223121988021910896084336115373123114508247452007486095152768240449868962501542941218308089602256186609053962765394166164780610115164859772276086414215111386655758838565725805808757087307539131181837715303609528960420194480212383323012493741818823198839679413269477172432392268380388688589575861134863243971185540140141952423995762878606372344303898489647794806977908829043723204488710605670157305364532147537723505048348928116058716176139099411978167412243174124176924188914699715639128835102442287580520473760221651272662322886184868171561154399971925408053189676762288413677404134546077667691733854376782912064126675563348015392526199789441901841950477820212829119830111079739178453772811747791390072426184231081766532351526553912719582631070431237983518381656656787526262779225636149785346823483407632487482553606442270588616553268407443340400302187743069632256654651478908473982811954564938511408805401839863123049712404450956710394295621648061696181947596262507283679151434458379975031927100368722844776855358495632454610102083732956044456796822649275412073300067686466054791978135065680036679605471063217865487716369826966390997591785344370496673403538007291223692472043498564867444872804875727816717131039796078969052282772372687155086929704871324778294904818522322842609813614189671492173698156236050265248461862826132500759509864171173550859838761766808965487579681728172941926412404713637054724248931839405734997646021040584859037789296956098101171453461915541299741036218035549790759919570618409572816457451637996968711617368026625551545097882924944938712418197196717674495341215892984128831729705707202769384088319068105044969987138542472423742226359458464589458244750702592139057458626380827687178286888481274172532516991390114181822291947407764076180662408487753122421731383745538054164517016746482868207358040961462470798083206881532965624122520200930976419365169649011610650207683840464227359335799646123999186058273350319020382093481549181761456189248206146867469487276514427885610376136934633671072154938035974951028444702140506009726456594255648296205937165152412299544744645773427147280413837650771971993542120619342823785369162430187071401340754412226583044173983149789562236447415238847606309581126654759615896589793542516424260877149205597066042328220175669575364135134674398847865542103062546105050601283953337513545883625705104723911334954391875987022566859010966899590342224882448847653034224020438613373364081606977604735783632009075576613242145895152391443498783585819337657072347512874191270024092418820104948063314412935157400919206775829779531801255956030980996678705391814477752166832831865725781803000689728934683284270693683287042845818901850082149818281437203714017961450571283793848092163729150458526128054792807536695973215206044580736838552274434463184544232603139044037697793010288306915365916096715595286951147119445915726777963947758311973883542567160014250983618047200353590485353213475078296568512570239952300465100997401612273672244672825224856487546463086253728620256474594719664828745892894107705009443415779255836577620753982117789913451552205513512059033408009241793732165462773329327824728793974816432495931761017583422554210781721735589477196872836838090955114334597486626180195793740308943704402181154318640285712198962118154651753312365515298599023364261455618482788058515066991202867482014261866924743159020026407789472817763064078705546917745856263429245833435079560754966238311556696494946252825290856451653001234043553602491652956791269863435328456156572850934087458890724615596328636821859994167904134485495583397235359197325949534268404857655593529873982939226557364149675335235602743519708373595645289701068489840224260622330774524427167013358810974778668295310138845576355671422595055123753623254126698160226509628185799691697722314972438656601645269995881456207535047156074129594814889678714486171959568167246000804771115111748113273050272873125004813812826611407244659974670859480419560820741800846491344060022420978571671847062879189854198533787254533312808951252435635516666931878183964558050661162009887558301250926197568062520818734696685293978916801828974041243842802539325375866264821680248274370206215358098042099396931700745454559936829437981776804798411057584526793926751420912546764603052264592210043956746194894104524677269013429339401890374688182427196731767799168971879456862514345973852444950679443925736998554382894086171362884367995263810082930905350290112796231335046588228708237277714791992209720968276660803863994543367791687865462237267348817679857444968000734807379794375250167901193126716089165391830808155948478589130674631607875962929796758678078365445597620673332319148582751848339405630342053513277191270332483579911262819272966711824942076167611373076970773379535651194831949136127859680124122163333653016662421154876597352455052900034596176497687773197428715626874910041545038131003358016783992324448951367714271580345935143651871458855966439335291484280601091942981144644227263219887853831016079449434517214701510469017382051850269163430619204504048757247877532242520084342885120435103745792689128622069091794406749889295073156123611550612259894308895711099241244355017483664883661461064644844284438464898282571744758772619544668451723882104219993103916431284534397602344334327809653892256231114939887692804128742891185870199775537199166901775252718372810181815109239827857863789130867081158571718852743837868141869249456920999620743127558582360030451658246660277303446120875161417528248008546017636739155927188214217738137736068761824345941496823714700612695798793148446243294487172043494254663962204738213140430480252905849812624964191447512473849167374101244517662067900585341671748869857391416917134422923553072202845952745568498694623898162990840081880847319872346046696561115967757876577687085525221233443448496375089347210827660723412775722613922543424293836135577677026348679103951452694534054537754181396853850893014038341907660650040528182228719220962487915711166218282726164353083718929852218658634348397463745924218512884328143969864456281741411916295467074253019871031087521926091850851872672099991316778952724503734286524687111550343503240341074097133899889394434370506980366666224037922387605669310755694800190061768286363530153532079436536139930030669981253924459760945937857896312801892007502669006116296430688555593562537416604093990666122325839825776198154391831566141597391651948613377445169250060298653694964765269365924019690737147521536107453350182778859083591212249021908897491642553493757901833836245968114531939667400087543544015890612641303517903745068403437001013351846927461508339049335602970448495096633740366736812847691049718032649655179673698985922625971348744379136397907039921211523903489266987335924747809389421380143397021370753150920213652447124364869575781186399960417532987712181691873695336646289849887253138406440491859060730169614197332885404113154834416326121353290686387275267528058608608076325684380870374911647023531286905958050810217219993533443116565893832616705925835236220490792623830053508024648374692774108081940157996364871341131862179537313048158370032172463296224726435362304104076930320843322656676913147160720633956873564713735082841435379675523275335580362341367418623673291076945348946167144793619214683459759664704401603951929753319685712397446091171651709101892982750961896388089862759403771321503064840845534701672676361394309472247302004147286402750377049566564412689357573895221544860036713971040022334113583286109650011360025161981883414368821187353541361600995734677746775760357412869744875911949871099656718339597080311284106178323526500340542893136675006246068789445208093163925240084083506800606781436014781142964391999956927535061494005360648290083969885983712673881143905834553106287459089340522472531939459313285697471692870250655948455004849215829046799065558929565241648823673276176526470079265159697466258868304470306500456626583791998205674620980962083027666700333999881196544895672510410056137564510381066289130700187092764663861408390502265719034113180281512081887976511779642780148687385209000827541544962790952568100791632018682682862825070698425341048827575155227663047776929283311715344763150654299351180546171851199009869162397245451032390957761305122911948600053859949951095837459453026834403490220789916041441668808018231552771147333811337261044710182234636502505778370174419206407941984927932770255463168657728814590403806250800539548316842313965220016901436503872000204042368125584473800262617980392946813471027440532316228817290260720891238463160357094960177892534516151201463588147287700485743397797780643846399798562157059859719438250519958129216972750338161800755408019409705914145630732071053591151983414834532819211804965978093689743412458173942203915492861289508371530402846899391646491097933610293109168939999376417533814609929986234356798518907064033883174618761412666182437589298706279223633899370643628572203790617536390034941210793205382828748709364393643799823819743551049980720867634179350888214977481973993403961256509540358494486101101116577641134633592009958127561038011779142491126865494182852048974400990800948503115858197127755148064409643897506797205924246470330066101800493769634966894696239091118412996475425726825251468630597348588781294082233500280531918179230646004620758990268540870264132622565831751340600242479321889986982105423218540047860477169083582511298108839926126002733441177131402800080473603315397606195654608200993003149422803504337299282845238533036755365690576532844906712750538469356972898867071028806652706565389531353584039904168551248454320035816250236829958068118350550493241963292536804225048722841217353447987994461276799011221702360036933557043065270347131976320598888493267686382327217254330131780242294140251356991704095866873088872606197159589366064085805377452757560354927791340555583308744918603350384886813980936777456379209659729796525418930111892457435946186076312992692415247265618534818814059346913820560089276831295406423981277954399484967446958485660313898499075957246256287977508686306872068012042403357631059581349476433393526889666892753001165815748808617626133488398440187357105166441933622515294918446696105927354872348708534929672597645087582727277574123530985041266294249308941616396923905512871766537127421269248552391347730033225518928431072015407170241530765008483961959411422442905115132870122035612345735685452798084080918671753693800036733322568515158018446378159426189806757791076072336449000760938435225510896849665881407215516138908095640660916801326925706235435080689851441924270758111453017065212921660901779321178599475189614800515762788247610984175897310941070165103600696200284400789743605546147545061758416714377930160990597667471232504406383420267078697679248663500833082372496181622509244120256415085613939564200671584069711069229811939771682114567011926875313135163843314258468196516721327482906309864993483810945664442914118898907990662122539709000908849848276741106895161150014871899045621880583553980836006079579218880438277893043325022711407314867143949465616253703236223837778637067993540117267929660923063303397316922622271253458549916277541399906562759139451187686322460060414759031798937537834052802394974643452279678726159207700460551489188753857097872805135179218195719622776821798406545167901825577838471201208252000341026110206129978876330656985063351383618542692254765927913496245639398167109187569991389481218230385931346430365919349499020213591166257969755548216228850574811745542793534491212015647560663421608040315754327224227773051038834539432393287137892065462798815367869596458276116124408245993814796350527364496541953924161035394789380775302968956123893910572517231088668700957143441549625941577664666572207117923502171877200967304179822138413689831886029771532661521979916013727679619915332398319930306791607704745868251952193082103925596463901354253932928288219962198748472576629501982140162794712950347534408629722138665439809541349804822336209579128954295886720994553206564380991834271644876974128613495225062509763474445587547380070890119138680878339006406117626116394268944727355987811090455778150031745494390826569481110396473188540030228509726502870360766882686336844754823737946841348741449482723354812534104194638174826324165178939035356246503721795104721244223937130865132194171462037793862752858541598787621956644547565350922516841173444432171648398765284257241673298755856879662296746012638329961352089894935387065378518117896828092252620668380101846874997554844070919954530611137389813740458117285550248356540284270646742549090067537945437686372314244859281609901378391802610375934171677348526004678661848726105584452023712530360917361626218884514519080290225068866214154526182726383017759281899680363762074961809410263446963711654714148733661063529874783837302597540250619804212790087749286600454358922819892893997063278412777495464413873081035460171347783871318155097838379726697851161285372678472440723830658712351274412071316832499303472030709359910135101949116926510963590187256989029108459228875865547640098542151454064724611156830169605523796024437428649099101017570627179364727042022635922214761009456199771466435268517917094115660811436286112351543464398927915954717260341723860961829899529786489308627449490370401505246381913286561251388437541714888200224124223409728465974455233782957563417484302138414683498329329630716609827441424492555473109918848343832011848973132896169280856140776314171082195477564207519071417674622499929893500730526102422515249999105043342775362542070422779331955537665885571310237566852578813674914564285373775671060838168918829091608777699478423398810858930725682873934551979713521850065332025158497090495934411818982526718395661424481765701082706316938589183304855769394132932527695364953458756237730783485012741800306678661529011515658988919349292706910949396855472981710048498760736673052285235892253588806420076408284222969614446716151535957226601895813887703479777932589026093129677792573772052597350584833175111477138002377129752241342523657092070072131348410149780493578755051838630180867555262561808158497398449903459712880028108312291241420333618557876609659741208137570966995939689436505918811616676421495632368054788278062977423035071417554924813131069748704461238696459969844057244331270078781068305693886519430104449203444063706267251420812847557836723550590815436673819359969740678320777518464008189606609428946548656090835325495243060042007519142685569069011799390325363013142351254484090561444980672280826092853410768398068720400733810284306167965240586483128588024757884932230818812425644020882753601455181174701542757379489947368390677211853573809529507565895301177322516994255461597190492132669875081063310156200135833264375707995222023504392963914010881683649492341727015972962088986268773042111457890386551277109840739310086206086619779590534286881268521782270529857136506601678838427704791363856775918374231923140390410884339328583467992152530416959531013136503001769895598858561165489626076703356163273897951081278278547613349338969678286323344609252856514628720944003742831319985490323143971443472613151966041535431397853296731541451899506131808327056907872635005380180475838575573499989152858821630954155209642998955509310771887811235508075139885214367561578077900532462524868443739075663882700785011777587104656438745917148948723218410047500684365200882263781861704723919167378020550541610943311225453551007323297662730536639367522779499022731995531253398996091612894309848327975034867414495052237342513269668277892857112881960157074268284989257215439841668918928598656455910601639538391293797772571963918519387070181643577806215335179240855866686836373691024350562847021983587816755086232271873470636875210584124845905675424634911719739919915380132012717132910253199569344763276096780028109966482231251867253484052131274425619503736105958774570037997994663247619814366486823435371464613294356723571617860055389756244273209320575319210360599164834373951628186885762480653664837658160795470607177426101134120131485201352682147157765806116398275031459143994196729558781180778527182926681523619334980288963891891152855463098803828712565884518947161427689092254633978354907689783243621877644406077586377659373809586491312542606795346367467180540743257413779151291765513541546545091206372510527988958119283902454798869816713397512568064994308600090906035488452598512072476764515032537052034345952357406566408175555248447249068193208561095980867036936224648006118432113434305319423088586959465542850823688895406849339596620919633774781042898408784756832699387224558438454157381073323337726132004348056623496451747415184240842794035918335202381005459920809639978280650469686761610652492979118197929466338716846272784930433549747488003731577588048535969321816831182222303878208519676890660259187444717280540602386621730073453992365596087948480995601626182304034101827229554589114120031496095100976801925723320027275897181489588284308820598809506722571462198555185115570492790034230402479419564571244085821485824825259532498888703393637395194514737909757163287884834606997351857595545732362852631160431939991302900557813160038782898522684540184132914958422754845715964269763082652503627113303519045099563991547353700054461611071540011610712957104358114888219321616414265696845097758005822568009862239951644633059669735763932819853992136189893050957598239317705466435321694628682250047873381467856859270426070558065150875443411550236402594806501144749766927585340744405415061061083639045523112087274194719739023673091489856757838649224472366875693062269099546006313772172228037219152854604876966987142181662163587492022101509072960016623308839136062769308381497573184573870369470888766633554034487177095003561636942723840626643198151004838894425118645276789852497133390473942436581579553228635824906459591718180990003718580632207881213962813849677663883911963036824527887406670720653638180649586604046292997038314976134451546219964719976878469164714896989959662083212937266102300023215657412138198736461683089679574677301751242276640033006032664004319532103316895850041409176434312398621566105442770317495975800774858072028171959660969841495940285127837036831323253147073379850005483319673563808889508894852795171731820892676683233617894027771878330346846589663901196535259571770799614201918724632522595992056901702723999254338803312789086037355663117691740911317572291845188217805045876720325930601635234188295458878928780639072650953126949554089705430587936179129936829131551553827386417623184440966261256252330452230497838153791792935104177508633785907709378417660426851849700141645830530832169479746017034714133077416297023649179480714547075272696302314870495999417950216282071599580366035967890549817421212943530512631468001171438837072295114992552139184054938805128787591570852372691218430940244097111170412915350317328101835766370172890553230092538264640068031433012545516762355674344458101667936870408685788882170823646450494067689251461036194686910010645720099108042386332457687701423356344590466969077539150506289896709890440150194588936312382511387047471818956157541347534854176873386471862735350679789233402939727680518053445854852352968612387515486738500773617038919413474696825766255694249158741686936021372017538952253723642354846800830093259006193875753283304831285654680862153436421269363366497248115349490036727689559324817865452272341551658153047518531760510976089106492411873900290802631421097317777210640891190305964261998067378227746677696049885258430539533738474860015003005638089209528943396765356403818180652243716541317487644213128632462974323471732481026298577345760438790890234512470452006698636948962002727554802932740291721421902688032119372251735838971049609657916700402079912758494369955321576736622713836158787349523745567063075823679402900360735602043785587994508601992253639912921182374591315129615133962602764947994718722416322275310670638536648447717806524244515203675606412486806978678521436054093080071381881534662623961926813166344185049421740403326002873934208573799926527074830488469575692167332236790914063979200163660402340032789530593478992375507687769418352176969093917431788282163345424759346133951398297986766212845257321535301735103215132208547168488985186975052227887032904725941500022997537657151105722845934211025762010799441803835439750231571508632853775863635565941788075858676721669565222191575304189087764268848793308476189014756444075511572390059073175718904883306744804925577063090054804166695332105631329739030286970989171550210794512361731713399053715246246411426460976951514432154481201975397801286513011737400920500800206654213211955915392173852473440222546017479549494690008377703941791012505436587120938464455203525934670906615479356138514452474518124683562234656361256839765751862014714550574610953737466941060227720722069443427858158266449584950777053265381679609911279104356509013276035120508009852685549856315737754799037030988587343496809241988127744538035401179740134561047043950992858241103835097231728565635539602846435371386178395362598038491158702214522405142736095692196127611101543988230330637825847272712914738218790820926568289360790099186930812113256234670715740934204572345891674120220685639171099277073573756546654304256423098762158815575534111876131463299441678978880368206067607048173927749471749922188259725874371629640351712578829470314091606008520008688590847179349200861146847656567425992093320058395802061767199306201307402248346100139305875616351223398244443354724082349770132283149273708176787842292947570902918704882675224550352281962223941869101272398409290174202090484784796681780168421520648299844159308462600310549343556813021486759731215094043962781112738558669320019912827886347169840935631635424305268666750669203277805416546491494358784755042926161731919225949659733367180583724252407205033727477782306617227899488528211297952292669093319443012289560494553203677661198693215723104974043233081515754638870776274027008987487870549866964236123510762239975777126617226976481121270063286775869995307588862390103673673809988813787517905403643329308155166530225928008759320813984589883976897484016375721069980160943205387866401959983546264049581213508662309794537715234246672672926359676371789278081548982817141042022237218816710627811932916313515268784328214111613099339322320293529539935425065557306108108163750819315379678114320749214128052600015587120128881755624967871660992635906021229907005117786134016038055839714261222866307354009031349699268519013190453079270165827082178130156596844450086240694743959997777440621746289396201524748285089850213447239440487658791972923980173497442957757965368490765349432686286902258776904645267468718676737444554528630460516188096236138989683361178401609397892034241307384608216281797648129940192186105257566710342092298430056271443664708475035361166882468999852120356808936401382044060820762616608541728203869354987932976976764413733495939970332319412948066271977658020489688531559301341700521917365777164426548729540431007074388176186688290620031745492788341474079058932549863199961031210389358284487677579162301339772512607358137932265872041447124595326732352087962184388518892205099268312056008680288834049120372687574571488461955413729898125972004732381941270468884290443868231416349704436114616686417156508154385391149226366573769447103599547845590450654087893163777184323377073082046624601398675727187730693570631345602866642996360283871967018652583889728350941805947701719962192428017951949312613294931656376380596349011494918642654349389557231967006787196882075496938208236906848243247112136362061007142700696063631533767296907587125670468455698141896556669044901066002884766723010778377594804340689293726171224270299980073750515190728880184090624438519516406066206319767133833810386463537471091928859637353620741348107417538594271121319845022875623912050803371616700414618484171735449390622459003892172947850148638023558248445317560897637194966620092491253247984959438191744581953175665689511480288197477860872546794761388535565876165199323486405401616613748145884072839817741801008925445689063510083329361671002838128469303803398698657069368716848967764505047236294047965456770374711745380632705275290565027273118661683368243748054560657003883373585242774252367718601243070972434465229247807557328390947544498244042852630719553859672489475267593510714780603112053369436398254070244053067443250941472845334136641240699832530963428061937846939215443170730146772364160424082877256309815051052533118482467810942316673083047407791319657796339406122764218886456291197571590121048455991653728895692840840789992945759792737753700599811750856259940312323434553475262901177095111336685273818393306605805073448273696289697471603443515136805831208942530471459248269877635472089230396731947606431033669138926010523977205836675463953602057690032418412046508174525421970606606339367348800930827834006909584794096355890003240132324363915291787555331426907645904921942774494995066204410513042621823337180282440764308750600975583083971817429471714302869937405988046578299421134512417386850078206726212703609967942568499083199351716610181554299712592710543257771592411465040100419661183910701546893873367952033490096382752888302966972116084047231832898873928910766507268801322238760190774278194190107226104927725781498953686331921994350706967484632794600798987063178471449435639281229664040886216137872014159685812004622824796762600239803859086001697810720589902319475837401324121940856431364134784016222800742069079858049342293094245134246199879484348813527842386825219347084596149851960090598445606861588285951042871263517846859353618045565601765027505979039012908043873953972351432736968191829658091412873008273453180839705561485618633108277085606901108656127676026515188708538644728391168444660734857784814686174704044718500379212239611824585252303331454023856022839366023411776845007539148057421527657848222340695480532637988027134743749419057098874555979186674291623527847930059524401557633769412571024205332540911485926029682222752257645752083125803274968855080055623531748506708779701066658928003313713303346580745367468382083056540325740398277573939380803344110399889225245719138531920151564997254592870048658590269216551737121935003494769985634293039951612069504456892208988040049410477274955806566028524964267332978169142444754363212989810900724493200253072107577502713578471522165041151301309631791589327414392532813370758607847453299884280797204266391039125696164552336598891983841527824709340606652993094827696996020542251800555853960332425146351719457580926621956314565026014031563642468118711529232175211758053124827374800329586880638448556545252652637395661681688264061117212851081340310824711964699633193741392507232444711262061173938303546893510964248568516946898399121508899502230164307425211528425982779184702720643303507796119250564588560160152185015518196662791290774104235568663704550241004255357559437074493160331396340759546125459360530044390942452131313541536048779831954835832285937530275804430534902925267153601036676391508897883616616018486775599952541826328027405552222521837901261720358196462509973625434789372831193951076491881905982788696347882064877721504867511931838824564058111124411037663254796557938824167480534542441544805321893300991296367274485486414670398884781217920321916859351149821415433373951042409224873565431796795885412968163253344425688366807365893591541877777546910986489004157222723408111825989238259826963514915057282014499704450955424516936023661489189960822254168206527733527756650114861525630410478825952460656020657920825271618691568530642937514430180937437667139305960492415824125903334414950802756942794213556752786628555529476933761418029491936829790720866498449441287320024244467786554622376403600550977890329342577490691444025707952846112944464485303372178741832575708554956753637252857635444547766073447761030459319147714295262189032194392059802672800383183060727177149902886459278478937254306770023924471330585223965208660873558327727555298891748920110056436774394531465299436097819169778309103681135481553334216198310528612708497790195259963187207523865155439294018098125434409124139297683979866961244364657984339053395638361383765556460356284002096046114917204000834342083092375039048887916527312097697756183970899810349075195667253881613928105378470627665233008933840895578128112488005158565781715541221565275483218680585245241032690459129344520105386059586188197619858473662242868733214824289772098045756992786881544878721441889274613370849348532898749841860570619556543955099770749927673944004732114207961666806551917514936655648443351745831701884964401471397374509807159857405577251536114423713121759647352888391098258153107367800698155310510110979423869099364124465939566195890799412064155657795939426879207710673609111943355185329153670462076493476092689363607679699029241392474125756797533096608269879650305344735859665121073272708098827510058228289417122228722065308741337810344581880036800951299174512035872897231456830680843969439828466847898044231159289497330473927337503475297828071442538012804556804658663270450288242924259091068319256231186731682904244983138562385602593270327238285584927199310550337088325980699687374418864201842606858138008123578450440392138211265125953182109947320732752019592868270725504195560519015666186678025096939818491445590610972387953330120051518536262777242253092021712914151957145624681981641499456923975265705322035410191720108871120642866526826969773847787108850508531729159242427811235117265611341936056977280476984487695573518398457158889838598441292090001711444000311054001041116759735217897165551035998537198217296187497336336185089716263427060604669500413456161740870461241845637540991199608818697478855068014370210647709276653522828577856319348804293981901825060356577398767001028410426608555503260104081193486631666007697872563844510296395189556713080302492655754338231799594676128607455693922986312362570492330439044642775520878637471089019886882954330147092058956962289859493353613258530675757418356825248901171236502403607043712760637600745099793223013636430451801123843162706417305497634279408305824957161494976987472275624902070802822941719958864127017233837750616635908024380019835185678402212006997463937168369047858068350448445063451971469382228920967613507985359902934470374618977187289246798783266272474811849584759535255269310788889538734861139153546622534359592954942618328709432323068328308816257652458341606256039691144396401861142430939648669702476903087756877698609983410995597616209394361603008670169647766784253473547190541892353349636579039876383364482381817813533691357874139562882652048363834230432977658140115892578004659795238601099475001445204920402183851798724748925233530553826352040643577859771210754840994432921980352031259627121698492073095436647110913523444792973618461283601695805370247542981532299550126280829947981212205592407870995086756982956048147668915154896146276903078811341346849681694981490426878745860892793650258035381758087192479172159629030322215104625581918561842532704774430180484883044636071116400623332037354381589208103769160134868245103154354016066794180931096066627380815492238307589375223597125170547312814479576924531257865080861285883580628445748994958982283300549276946715267126833575565693438579460639403193834903569753724747215042285057115134876429448853697552426071782291441864541334348798725802202033259537097597926304342084824840799036958489542184560329291054653957400863440319341605617424431045640913514092733264247356222458238559853283829612618014860435473362778751525636039154558996342945162180434981890499744835472496588580674069782031407742301361499699468285791538337157065982099187614030530801701690883412113889150896201226627291820904423704270164559771612865743012782571346973549283333033403210827992730576874613713361305690795085771245229146757690787596459376666421778981996805737492186947740710186958460380533660124045126116780730785822819887982071537278575357475024679536136645545136253103070527341548941131547077575712161254924690397007449961620886664910050915687402358083527688607668940175217755750072801733110308142766362521111427964488339675712153448795399384676524198000518796399167717710304038419382545299839271821925614895775185469012792796555991219093244242206789228539206481635100276765793009827479066117956880922488244147708927473596995988329333482879801882432344595908552203081206382456337302508179961007989244348326524073411193461011285019904378072718863695025548145644848414510782198150121360974482888092298273724070597890851007999214629439638427011628186250266984715808822624171216497001360566168900291692701216160736797809490327879763829240143644739045835664413541106956257957669048213025486574161843505063756427754162382051159911741431508275359193320689280545619482880814623377200183648069617577262990568701109374037249837918658413975608489946511980485362670347425548041369968240375337323230961054556467695118745442930017655283945715655465438884788205365243105119331834273134674441682214197395558238210921020874331875557377159325637680109355806089067559581012227083599056955111977829343971970508882969895402903460264626953844215894949720298070843419013190706943506122908308730063636549547859196427077035232290875520520951912723159838947192064078762429344917506246859949305832444214955401644007726645493448399953766113889544238258085906860576156831966671208655027892164132345388577915406815506740939658934924943898317689852711836102583444662489130747039064691458991572513841544879022491893659088218532089930289028785580167539784898534307345819951728755977474774145615657726230049948905156016097800991118736096154467788662541631905423241488104792100860730171001197753956186400676367563964838428313040246297793359183969059096256868811662225329862820220658049345904596877521867468530778944942510747214338087660837508168869956146423086747409768626545240875009222833545218411863473911887233487508781826327220535346518085047177035558000025909462969029700004172088849874060643984272428283861626200889272766361188376451855015089184982911612212352927221543648598308183304624156131602067614258733671935625464727792634853575497348831308541738617129417784553981708411569663616168822980100050538138787330216578415004447888964996777619642687855685827635134801257403087160661980766351291411915809590768163379275132195796563523819087077155417949313139838829176262294655315259947353178581750047206042202770045748755459028031963554811660305999937337772718972237595535032507494739073939434039291355190200564609876994956124589533359470327239382451300383841307779286323162641517117469482621078185110955033677580098847331488196746404160785971416074189535061376268225336479039396684367659245581753987310243401648064786177567865247313548146502752036216240090823635093420931238128038645931465546285782756073134428385704087117650423205708050390943011982416194943791165947846315660516724549013378669204301020151957101991746213507647458976951003233211421310417829438834283348221849477880882873132134400948353756382018561565802435673765538043422343444952679680545539297451756802659388372474886795506116639260518450773516322335402728726837508799366902470264343127829502053813239302684086434209294541457338962630351402647564144579704303716698989940430482328663922937291011567639635309436878046395279880342152788407169093155101526357875558724147895756054216595374776272319190766639590644072875862455358929340308540801162911629512504990122343104986765239578777020165082301908931663823499165754171332359637129997321677939686765049398326397158086876472164060967319620059351265728695462112365417040640466130855632051205686780518495248430124185468199584276576347149949914008106729263950751452445202743430824452927572586920959964095735781256705562954983932329595641894587330786910747620513168240194624866335759002598344696150993915429142524514605305409161393839413059194620198213377478028342349086066687738415827411786477389172164060145069418849662097295618936655646505386995265562380640778735010980318974660946978389866919447396981699857524914862464408146836063504820403873939631288020378071823665519038694693804992323370653326198683697763606720611232173487950280811294249593331478004220596676466611867699331275050613680334395430643764264107110168642681282433363659702587160362320157141130067674883062753997190097943512860358025635825340749847071849323686664813597508694149144705968177185511234599197853605645401831069566351439759913710957385612539503740951125805758511420996669430229635800463691944145470624444214662724096049555481179028885636336117925779291404764646894169459795348894857488573525125134681142897494601082889212580006364502796488333655736041156995896958691299020723820537668083392258004938170868750153443518133551855939135695431011440300917212517872531873104623294967256731223329422388911154909187932518647977426410021667443872603256339093338846652119400787456236733832053648824213905462869834125565501412477097946570095551712610794484465181734943104440945244189319777327755777588820918242173793641891044484817989834836237224296336702004376554240600533116750100821420539007301061365586959680422119430343072990825876115103960742439943566768909805182781425130457464625189971341439159212432685192926984176108634083443175656673560305244616916041874923522149343456263539608623976883132043654842004598856904269019469692643269092119970825313869859093748476953611429796668043780680365475639042830952201308648507835427853134433191485877132076329291700824922114440994066183663750323492639315539672650817946961834739233777939700380182292392310616403942468872675419500353270160650334154674811786840110630134278078045103021390531421599232007362653102534696940411340392549993099226545889386258182262816523717932852180210867138416225126253104347137825647580267600946912149029724194642713006415980396772182273496742225021125942875543087990939111592043280347297830979500447826653866214784621392155096859239961776822147559931926607518230333933600280103456585184526053492516841259133320564475554159380532635942819396019769415857996334351245970444375705272511018524156544040934830952485933957774540539643971521192490089604436277676746428284708652479195326305995351691023798180047233377630272624344141616314055766727381402082446338816885393836148211074139141310786073108213236466868124694652725638311134302735065196623171777167217511944924649850786101849635660873116231123859819491482450038345403271591673254609514694451568304029100257575793471332016408740547846766070935224336380653002109019336283060360415109948170055075597939429303996456849222778995230678115199841211568367047352671256737592447731405243632496680500537764181979790847177686440654731536336396719745741935070773495752678952529818016762888660534055321835468690862134514770565441765351660859275728008529285075800188709655311899817639939947727752626312404431785025369424043757742432155432943493382902943366288244909618131831518526409354007747661981770903113000902888616140200607653174833828027180127082226278092353337951671350235674580421951675697019026529842541532305561473982700073098053318813987630596504027384504446953472781930878424956056533571570928031692497138592200825949862675737125974273476204503471904831080685675193810295203054376167035744014991777737016758386846056976829681936260824043978136430675355227639434548236559169427361153948617603014432504236742235271861359907499870477730893526760117322342864783535843399186763730097017795935864770953428395073208682240225698941974707707198617084786874717836986041449048193646937235586728928907746104591533492901862280520964793201348078954031369007023344078762443917655495578325602475708172581164912386806824296447726937655220998735849919878757574690600992031214867074137249105441593597947795080820070016668086276526984579884438522874319489003856173569732145637204015545654966061013070679532278083852000572958899466386960995523590806452777427384100723679964892343818098079289909652384305753860508479355793794746866363494422058352335239181504311626798221272160356131382908044718767860467573048899180489635429222964787225965338111045762279605660305740761859268701213659316421526569989336714084860021641033845082328314654596070969394798254702248066909613836745129553953402796712473240009535053270630297296256869757955807979099705145167272527657696609139155598500679372724492318720073677494271354518855120398144270008382504179922234452870739846440124608800039843798616405946597794066057211305917625099554173768638877935238053786113334381677242172057588822252381048707753785449690984685222685986714025351256662825291016821302785972825031486108247556416567867620251409074582420502664353557264099433853312188519512506069265747953579197467214237583815394433470685971637984287654936886668007502772309399853606657813133517967119200139419417213757611898504310689621838914115989293232660116703744918448624323175375258395350324315404521512066932152798271943453431061472822735561665249073071932249396284641477690668409622287439054227294315130595565019804879220225917763268938852503607505079746224205190942517918931956782001278416344207590579898196395209643126518707460042772866748125422213236868363040334929755807604524917095053008665897434552502128507111583651753206603454466092214051382468679693917719427781854511195200647460239170102840905262481645633211087111115062223317639417315894841609812501313785485755401552870007867992418435205495311710108062360469304818602085573963616508949989004856217704211103161087285548414400131375869115734475504910165975047060637691384007355960786132035650631767226759943514852033041164792899449470311035315925134479443723832569794609131017179305971300537157008825231600725886416136893442777771836439099450598865540598912174971266661809966470800705360319891289475384042320142084079219809810747552188137951084779918887402246245801027077245807031684381871588941667405744537420781684496398586319807824131622805222084161793300632129462329109690858115115472045323255605504596243011993535268338726130673934456554526686279077708923305380496026397060950755154028301255082887232076210841389039822453636599761172250502019961130745723860907830976273641681718036069714807490017007161868145119490574280076718604232936466119667065567047182907356331770676726320565982435523013250785123904041686826361373202288995772411235449371764703827290995783335351529432265622977050791798184005962195301790765996508927509710672361973996668679566177529428501762229633305640740948059643214621170860073911389274958021063564291937796529214399149197100963283645475140754372037545671793409537966524660965944605574596524031022384047648948862627649041949153342887816488480767981973662337420536494764674712723808517110478383455301449134595688158104539330025637576897345419028324745055668725334398325409808766176987035457609823816578059355905633787835190975075005890141080587977578709256042656753650653043496966337276871529921453549852738968568699584607995486550779090623837188853528716325581854397748251850880057118055797935674944841052991018265733451196522770584256693097832508279058887097234521745103217701368991290588489462324046184393318910792864120239138646590926775066811319503231507416135436222394794542718103204468184923666068786042917043609562578791043454656880099934108044712799399880935567673374680324800775034365308479778665491384587041812567037973291262781821063631240486810074355186673613390080180200845652140772745611585508521446260847905827142689820997192365699798547084332077191098970439384291098559310158630201413322434637631926632117895660973004127300294423704962132137725883374713276655553035309006792415723621692528585572779190835496758952058640309061120793379934797393512940254229517024508139305414888040085102536559968083963026104197221878667285563005508168239365744694391602216890695907678147357711356712598372605348816333933324151249161327685286607717623283268438371388273379118661817049194345749934329437525910609198479896213392017086221963065000671915512853768509009736388646521183519656054698219156269947130132319831597599868484669103697892452932927627698187586585381563980432235298032887657908231408697096509055455163681868275259063010579277791587645920209333008179858817230172041059679046691074998668080424008536616358231252390840310949139167055804713834309458171276208739346378756746562593041210993822809403300124774001153790051427075951101625383769099897367406533830645062780895461108496410584149469821152463733368171108091206030205894335548013728803384391251358025697718339931642107970729925373503226344386031827816284636871442264080767145351138463321915692210332247813978132777922458500534190561631885446046308084129486462364950247579868411658549623471701948974316675091515797569728996376894338132601599548859665236704158007846982505947759648069157026998417810436897874448659180461291372917461547215112928606287804852094450156743924661154498553244016878155131257832383378116401418382810811065810866562511087649521561579409004516689838115296381522956558013112967828536612367667599450563212469049647937045139925685018415847809552648070456360438602848355110830549197999355794009216908285887944001408977686797697692195147840968172195493566802016841852337379479352972496206600058601262191708495618070030119276970643173306950092132030458162775541215990811565016288402108022425470041427266762891063591283705162024842334064259976164212664981136906348168507820300951674462417971431207979227294109913915800508799021143172474777900396814579857712610177852820630707306251814539496704194591236056516550619711289977478711429924894816769509394377569299261554584946750419253117776791833089999079443446806777017054972890468783523057940734127141157138021943624254260877988020628419569119746833182628534855626030809095968088715163172958164285905968320407980183786175566795268851868276596158178103774986939320417506017711653262141390437053582875581126359372134629675616310351251630108427355177235777716839598463116222498139249791277091273572487530205018701166157623554246734452267084605838441903581875410242752150691127782892659551696579881330869170207553972528972585059441043881968657335358798826702404932567493848250409477510749376711638343256606465456795408097485804169504670023622516007751801615188763115620645601395345770718081068007449463735919338475627937115911980186570351553293288273045842244368469550084650855170729208078327762226470798062239266156927342492944388869473353984018178145868651753634901672925461137500092995245883056345710118504525197879321764356216422306164635365563850623229768796284383974666925875050763951431451695752494284789672241743897952679864967053448513960657379717712583539659054199169868031864311027845307250733030283322666425108171758589871105897701400771956734453167110562396447337881442144855062945447355942472027090670383805257140488243344724164239790070669581173869757738291789661362682529329025612099265565855463312313846843876457734216264482837991427901930073638121606414398778189938442469030176352352786459869367355583061575625580660066411196076344648342380216619048349284515165051692574715569873697778218755885226876329790303051009603523863580845840156224194402145937687051260363574470121173637750338424858212632849268227016212212593098617878004557178831258286494713052321716499036180376580287383169995154430240859745683358153189126690624522044131424877832871239808252966638872519815528538625895044416342963981474654958487468669262344374712890466938700948178649737030091628972542393338935433406033639889930952860401390224935882330570015851564185294550610976250499753603645302139275602490182513988228644393358785930804669934210756307484597388915329540776008113691297620186521018788901617218503121769452180951475899245876114206006747802876585958305095625152925598911038753340312019980460315062083932117850223929538160292323666600142587087110707211670494135643168190428436635658575402821573114089749273987699478630227073168737042880349818508429752028512990748034926507419988474519411381886960993454891502734573894047895451532220078445285091777377663433733449772895585732766464672339875146103020411989607846828513469555958282503594669363402529947161873883904228918475675411334248592841872494237845420767876755724846649652019553555491370748006975396220951078784268635028761973725367780450543480274891252222417868977883280050403491173080762651092606096944421850400172175110973061986802116211097797166611158292014556125991758379157635051169883855402934935681932586747213520226596500025055971114143322367425144680671422947476509787527340452549554752012915539706878602077988050672342816815530603331925360685788864625110752217786499708080072061369736201740239016202040201692701868269219420688756158365092410726153185073306587607253035513631329027139203234851329765999884315081469327859932807628127298143162039229585006888154897004690748577452617686651302979957526080299537455441573646787318217303787055356372028462554961193248383364210628143340636415510038619814209515858274595415796188589668863193634116879668424137746480718589445625455405453357697569650725884491113965273215086280738435281859146759032877263821318114434198416033940752077654351673009621876996162877122214438429269535131365727159718128504176897549675963752129215984710533620570616212470985185379649781446494113145089971636522882678355560317913577885215362321512173940921617842271946584094139039458420039757939447638364477435090371599995366615985162615906029490456513448038596499689661445915416031731090041785043038445461450903041171769504839349561885932451605363561019541181010023228649227111204946033866541105007998071873404010624197231650225352430897055237247487824499447494908604906767235964641972519718438850063751882097512953481169765282376393046160196132952426080284923839134777492082088282249530581165983060316007308221929030154303368493473804352967541095871064479856132550481923102087133878245276830248005766579221909388126837816473669326401092497433044717588551202264373875585439291686766475959806871778104511922342496487602184301510977321158865241209035605821037658573712714401577075504260581164581890345716281105828666538211187238521021995728969932569808904188103959223616882814381037449962428148228728646243078782774617732812420558244251819249793505111514161447773817228127384655142192119628797425476137578533122805200641777971109215500266722816916675375189016695441540323992428254741173813010065154529862241721204681408721988438349790150708388980536025488458052401449176639490536087800296887424680234500997098953622472155514621923519680205714931208066955299091853425683480860093967411866007578318736654201514618059868082346813353467742185783511951625027251844930092621726048752861645336861042983117711547990279962330274918518019756906097370111045562528744203941581170948210085624070035445156677175414309720111969788779495436034742047289825136564749014515375728325384173980670544144852319518121420827915077475527769451393511981149904817353769002149796036218704721350589931081897341197900488922760968133964363261959845937448087501354130391732671914485152559303062240392053606983700945919224368791110148770420913009581430932602501245619269998926281212494048651638299376996111823148711134926504755671077619368108644218381163091233190305537200746674978038989978959904263777411482056166703893517391329704188550083020414129442577456323510262362818507589940097971120465891590551818525810481416057293692853007278167032722638152563565324028874144098488410480211892678373061281264767721582930986633799724461138466540213585438789003699346339105810913734884231353034960503898602841949195483859316638617149801181885557378125417245680300510650358636993389746355234080366905471595345565861265707210809700150158035391692038005602665696578666190271822038141742745739905640196795509837879942709652103482997490910582401099461878377833575675486647155556367036011704993168376896001300559266092876991817025276002993111841125964540734366569860103170537041212221131438997806927556636614010679568637713487400185185575907582538434002355280207691198011015783396515739307543969294718319968217422900886815078406460322792733621759528581764903929752901451603749070156616686957510359157990071052875202824074721764102795583744622043837359079526852440264860569291215879442224474420525619751896657161218119741932365000661272331314826085973314431759106395026813575038108929111419535375939690139943834475505111078379900362235110932816966931592854621752385330825795251104126725151563134092305637814044121086317349248548063489573855655509234066993885859615601499573487059983569961101528152026335233937319058850418782079617073452638981611542960869568120958739666201979042833054727279839288127668226529188970135284873875411819908633812077147853297334172353469731924403632034306195950822877856205596991854593085118177118894482817811200308311023030050164272954358668922338336828591594924955383654983512215960224043408071426193869174960130839503246034725232326873667246230537420038696582432699900813467660451468707255841000284158532895575408176966095197122429855763368714626820248401626027265676468767968349607840941767517804155877409374294673098036653473650919356502890813955030139577516301459777999350839753108985776105865651479701078518936296598481568242862037376264786830213132590043649644663194825117290467847041815878334461043277233099910081191820374504955477812842813395061008964648933081257051080265299852584966475907211064860259543043326058977870918679194639164364912780678270517126650470392087468718754400882094168951450382511191849639529673393288599628632490423963822528181611618049064072562307066073682737826354468909774612539250191563411547057679827011710215079437054029154096432311698029747081537051702152549532450821132262350583584275037582010183007365356232838780152618880882332740053633455469424397346436358301301908283079633139170574382846786653590897909998088457612436227258785448506867104483724762616440281802952335825986120608609434419121630365808551207414910487042469671467574492915239199636560425333478862641306571537767015535382155971245439778241892248457463882207045823319249938068533507200195295098508460496326088696572592174416643560557781364614279813791858825057916911784608788876979052146294591486476179475114727914957023656507707942580399293510198026387931545593046867653476680850149623382736859192886562941353440764562905612878544819275691445775907268772074111540910273554759787249152235609727194113688732196849970928036666797974370565557332569591830378331667408501222814530751656311988192107685620987880402204910201676914792736093513087412649671232959600278482323629144422895582313887176962453207267070942873761568039723916860071746482579294861006668897530608902206501487449282531390949833004708057674176874048223543409151963600987505033526918635235377732940767815528999216575696479940358519166771678285034731203049489641816220869909134280049860394496466134860599019981923300264247863292347964100841506107037958771168228992347207654415157104433558740439969317142909652857316044233932120553198338834241379949388031254893719538774841395738874002373948102632801552589897839756102010359944638366473809264790706301405195523071651166781269443147681485198180082656344633765052661906942012878014590295383350322465773583792207519626124187978045961391353746981982186498982745323611027661407284312811319683259294144498571694212047074308363984328073905047886423896263107819209494297206035960327492413561704011722574719346395801596237107853194713479564997262687776264878901547286512902119331078611559350193010136436647530541610924441771306586188118081961467465344708265988090656566003217646074470200431112730748271826982738328527697229660457605491363120326046233352212224245964355094039658861310518074430970030634023774663612420355946444520536042183027833100404543973600321481401161928617668300205687464973092471273617335536088184356253781691823588252545596414803219351218284414625556242676585056411665872282121909663844066867575232039026616880408795530339986578841147036045551451607627254857423410168644548303459308963097243759145725997705846511451551486055725214901946683742159663615991422753417137901788542062117571126630816052698965459859938658976743848745431444110621152793136719523421577161643230103355490684477915025263648361078161410488498435727891979963907865486318687357715213332454164687989241041178223589225745704511793680703298147530957463960568613315361061863479761075078965566315833600596797264452970213590618814271212890347817160210442115586176342433032201886636974899342773580995010789576901859231861317156030516185623202490303621872416455181150876140105358596364088563595690024994824857686653625130290774048564819724845213223376171568933467343030340495844246942590361058344341891855395373307892349947877069913760586216122107388584081041524353153826915125284266755316989616823373407981523909857080277467635490983263239182312091396329884591035166609160524936521655107367384510864631339430544373717942499701408260557392081611445659800178416322792974434956209953135005806512759828347377119127045479328826344879739568672346143487204335146195678050785150137592721418255493251184690288877698166591079527533896184018448515199019114924826372572434227165417247341157263887714459349883041480986877112614708487176782177714812455985865038936658226767687660045754294431159459911106338103398819038197820540652685494545899646260905859157837716262980091587662455863901320337072269486519599678545971299465682228905292647896171109384676918832423038511926773204139292505861242985046020270322701302762607561532577785095142161448049560755226225864565200693190889025624474501886401839513491032473111572106982066010277826267080369811463010892719169445108891008779236623266767402336050492951670519548238904776611603605613733369052376017384216144499387546865171666203332742726704966581280285406772890446905549439630692615326532725362719818157853496159619739477277426746262752221594864093803876822198100463057899065236052303500151775012720231952274549001402538774206016039576607475131648957722102872598891965379085809699901128029945976390740229730279909218368739468476545676001078379328954418098683338982013623471766898394983466110655186700864548745242326145612885178697971800521100633766860579555225153593924299166685805132552993195914097909678477272540483782914269536908607307125195635319837994139354297866387169732880223027302028913821514983771700430637387455343685858702960063372848778222203983982685899446810763252016817911173173463085373268135679523385201515784996386106279302724340865620364025580147281373102637527087765594393077876332047441804607124961006901182397726900677765707894876966798536299639611192036936098828253444594811506851090795784331845867116175936362423346610613148178490048936812693775037794188104445203001017376484651148567943618274665126929971870442423452857022994578801569704308281580944419606659182991640098508546244263205880365379060131627885241251698409256270758005055154393035377093630608923925427466590196738344512569199605485004516677451601650655504520483581046210203242634325483737889550297645449530510008895503663106020600799366844841898939313372901906802204920846104651864670282525098230515076399760110997087114109898440564975276161008732628813585404283878397053466207110265671744801281198777626942408393018377123778768281266274030947756768787241397147556330650704263356482408637817363798495629163086875638659880982015989615432696453225993640813652795043261205184403732137039465105224714858282834717625298071933113494091653622878290639659600920843437093964895783246164693155909294919035133956206254148849870296289454762093112403775111478426021344448467410252637715698110224209780907912690001838793373173851372969491112881826596070554859725541088088168840586736694322455835167402633500754980635091566136618338905506112006136040735262545046246776391093536627086460244566284225869457463932617597249597724896182568521864555471621397866437707874626738140123484711477234670629886890337227398210509694181860273513666427210312438690328556258186302562814608078298986653909944308077065024569239128801710700622626721040347649799223333846070942555981189662863772030273943334260730344863601808509351316926582458400866483018394561730866911372286082637516947756585681598099227109585069592970842684647187795837144237044938990549783280416595203773469713094736501177036013102211245541568771226374518647645663076369450585809019241357235161350829652213951315938111168012661122935060774026083453881963835304415492196516571059391087102392776995868318895459134138303397688088586278810527016277293755359127778075414595655316535112910642596346285097728285849758684490320655409311691782692206039546602740384242016321514104569693993442299518990792179931510295783158317960998686663914244842402414466139757162033688126724741078029886140535494320588060340771758454810613718981908306273554121208171778048632582282996667451121793178883260142933460609967157966448776812385329919573677425686970795323045195335445662519864066639056061293626718802651418547603029544808292721942138260667256943204965401136138285702643562611192674820525107568320033059992371557887079228424680230751489949655950965792957407117122779398683333775847561320996134991358481050995231806248275372278210793535570064375118870196370133806792922772426121915892931384704989555080090777313356948421014445052429172278721871288463953901322648933622441962039523916047555217409664132023344159767850261205303132524042604208019343060522564245163174535055044180538760127469490998016422755059347146106213314618902900872074562175887544888075792744946776068609092908727326486657161541356253211547112579000437650893651535119395541049791573194654869830129469801513337817377145033838122261232164672293927330795339379389120044757676950071862287614437414376059929668553256005528184242285681224266562336190542594812513523222609993569187684879622647488135149757170239751762978615022862177344116907421037748982261469540098037624240000203788293900990273177053202952557904689571637304584773796818540896962720488730818203008319064486486302122926010585691099556960529114912420187062867097386081435287581542714241944149494116104171250806384070748163558213007460080534785492946363691295477328106764395490806880179073828300733371638375431709029559278196608553340069390315070380384461808715607923287688992248711968305393910859936441359581646428699198786481523738362247184860802100481395470754524150235301483530245808866436560139619074063306073165649796786232923869239550352674546662159332412764218038478762653727079219379140583152560260494076879345261781512170692339414227928278629471268949702601203250828117056100928689420311323276843004355668952533650476009600700913270845912914373012216650455119300634064345885768301824208125265079054534505014805719690413411583480249802732020940719159662315893631899065119993796692922286420313199606154766320142181797325630598608583781481416848673301226769088514107204855736121383208082075671392559448204667468724096156950106301703175070526639828091777169952390500189751776417283842680824596382105305790048771055615069708625837242922556847730830834870963447064723819747066823321943452178216099094248121351677042693201998108103204611577494628192794043698519970827421204500314003353227829671450601288448872878376875815887537310141940668140257548157317589871011046484749564927274367799448235443745732972078191075174150017963141833206874774660944110724558245867389755681902076196232878197203658338663914244265051321080090098823773005600548987812643360026741440487149850227670298300453696185185213321361167645224511945037605071558240553500197407538501710316261831278056487881618656734968267744128558046357101363586329708643326155316544423044496399454715107323682385084023322438217250943475504407076198846428000707427195596980345925562623824173815427564448837127838067576295520541238527782401113185326762110997195899237915555448480274983503688952400839344564602952844615161097666245610723160498021681453701502394400633148587884762717902285706818679752509674880016919817642751992096522044103723025226195083562919486533196186236240558439126075802242828917631014709166603644901341105394444239235468093974714438131384322795535715056021153685971985737397171482736220258117869141626748921540989626885313286188147493423472228882849772149866001459808266792272503522912111026503055270660491708325523610638205659383456970556965511514625599568442060070744995062273262971519767695929909111551818774686024776799235339540822298239694346703256015358108190218236560719299583286385830886763360274949208093043879275781585307506238138561982265205094916237972079943157902989242049513568827742909174485391863060247280009612221783768168635709638536405754373280102461464227496619845984989574460909688456036264773741880044382908791067253488887495960956855737167027891992884553579465914728908637887229629031749527620727580799568544327510114328864875584417127259598441765341478841391417638405415649330916911196680139113744026069008510702226893940579655314100138222875699228238828440774936419657315512080524820135391104373519732332173003306856631204371808253482130325551180187809555359025419472994419046470518314526875816741060266397641733745343262285220024066913645161368031766436566222498633231934294431598757733736834238268288248101147304637927791802678852549747552302351087695968663506642406282471713986773586852813620840955956409801590494776390669265224812172842012513813818724852105775690273321151609031754683450029730997643905787247541999690154404173006578908764471052227134991444465037147059612816675374226981685370112999941707989145478461774752519703521914945068575117006772159601286639433408468235607112091044765329739744913999389702317969337224598834159983791246497363773326740197441977433793942266305101021019678727404936873247912938769348448514455579622831556686551586753933794833672146766211077626863188753961644277107014430177601263306438240890035984483212679301878332914758896315206183824222533310589043007893776904731334770597853832499989145186450198465826767554565594729808050966342716124814400490814060804936389200570459153617054345241832529053225599510739941412895362318056605550525625774531925971345841862288895548344450389360805600547797373678726994644284016096674917258910338273610226463815619550978954840449693463896881388179227304776613208164449927699399974754980189259554929651202436316857120707121398766699741130505565938263886238339785589591539424437023365999867268226057010252145333988552115853591480731165504720144306375287465913292872672519716683849095826028683186315844662715266714522066244824509368881416727879325704270513309135242184061215607985195026997861392831545760411160258246579485319520413979513929469207151897434460040210668642949088063428244768880563598631158722182088991224308326409026131121297132699518496528292824476843135603733654622088897644433849727020535631530973916425184204060214284261468868994675417718559753224260656519738125440814481208381547518520341773946317548616944726378279666076341546530329029268040451674621778296020270031570106953694260150735391574685301078977208737193649360488308516579316854232157978401695357557580356063966699627665842948878492006138717126281764895862159093682036718879995251783082667749099368425025406634492964494261274908129467132335208416365732712872312162029746696524886772222117045002904050720403037222544900865489173434612688757092955657607437908352719177165884743073933157104802972685017581682343286441552685793965094421137380150406625613739426037482496350071816790751876491606365737018448838735441531912265042233381722061644743008226827552834842568089993202058172825616262459056324086150222526852273256480461287466122396458242921920427590624756477489290311859632488695464643696482080907475716308311546310957224017021776478175078315064889050137680257435456973278727465836903746065505776018995191899878111799615323425419371666278204373478335878472819575889821885286883318792471858114831330809864622158743941192127900610402661036765347374823191166382951754979857480568117444669745443047178612254662482465802253252628185544549944352519547492571820293334589183576929399267746849291198211153883743147736492219065937558273297607130127971989051727282837691239499133854124312926603670060777293723952613489918029973682012561518357268037672601239710265046708108058907614843483515980433988459099275189808207023902687799035154327185428479336198419494964021991190201664931122366787396512385283449626795052459981214886471258817944593776531874044382284480837714286043956149546629621624891498318095334123913476901774525227829092276310822477112926963987364563506955541494020204855400063788669889027273211436141985384446228190880365249887529564776152029587630505401008886431107875550339750905218551791264231005998932328911398622183016784073298809672242169774130509046039326168531947522728524718442613841286413019562618871928040931865309090398086293142087843648255719121805942669565083247430264316199816972045193351691990990468207422951891046670203126192263500269736743608417718581708753774175135274697011172270695427679679534226400137119075578858898652787996081262340804545340356499074867927847754201980893753298042225398301257822463099348992284100037846306700663422349240190346985429707882942696016439204319847369207140134756389216652399415013171950222130492577085045444021849760052408334519863523143609327056052869382770398416794824274262034325242968670392654454257250877177859283510954603128684671238819500922470333944799530239316064643380978755081374699681316007388159773057720435404883073395480157534988533128231368723870904772731966845545159171886388143495276099187031366613487775111475003098601924331348352637348771594128284366173771045649032774936185850238832531078630905053301692780691481732423962696842916895948866691533166883720531361820790731518519978324718102335657733892376090690889392100023426068221790036727996420417967911558267857231359703358401519448461550535386387742897905478680597963792592510995812813024826456790113785047281492189398122748368149910592944872348051432404981712192834127029437592479353587496439253563064765064149822312831391808519179532225354450696948958611078354442966450603951397638359730437738989556398294759686127868770761478225773455764276200275697013150728484315372950094414805794913806418954038327896898266034929976001994914075988743463237535178481414762007623705438253693382093882269333160220981256963414815873319317606326030993702212800875327489728819643489430944591285047846532814335205129021214954744204849951809868901217730797972214407257883141096676532831197636085658952034198215263546212649267763123502019162402661485288356009594255106692679199969183826954709186892739928992257019263621368666136907473098470040868515872858782104702824630830252983329932964736760423734037094468115487212380239816086689016705468792418093712903578172106051675880869322011326722885990672604795669172243665161331668529874151947061072224032282041007244532247063277168785413804460195477278649862061855120952113634271899486965542079085944383488874638777327760683183427189914560529108468657797009455276020577432757142479318813294811841387463038260003974168564126497346331088711860329463755844657280401659511806794179348479461514036008301589403392532265655018711803243204551555998484279187542696674693856794782164264252069670942634203295220974028490939524698166234844947956834131963490401238952391435480993011306577167393658139744471654512012704523855032961732406911758126033925293886033498175743212173211448892833147817539130885801625295885506985219365652490129727976393615219275713002634027277130522406065846185414092732746768902852386743028274120895769162893685867308252769785683897480323421381546643270054807042714396852757796284144957097974048441751296679782255864305083135416419524125396593452568704080624462251830940465987889835254829101084751893767516649944123408429787685487787979211829857982267940176231135186714453053702337936697472785106778357929475472227430798695327228813929740446590832798299334100003205482439422750542747673736747467969683157592830191091727692192601101798769188160364238131915225743209763256946172339209456717344099736420554157152971108588327596401413337729473275332510344066301871701642007046593855071187114011745015147038056266084842836369852023400265971337943415123535938407358979805502875220992245446878286937597047216802551419743378007291384566673781020964313267070437220784642348557737741828593843178453931867677491946697793361077504949474671119158121433132026989592596646371841378122157155181130779166102292129722282071844434066515523831208922223834652101128396322058308351663057967944767710771438032012336971560144610950428803762418755649030666514891288018034220826144642591465669684400519838623087021029177772300494233729994675283869592333753860310160718134765988408040437149483781504410501500814659326969307806302511866670618318154429663986410741911501533624172089009999829598835309406499144418797866809838896420172736034943082486313615920134402778742390150902465479070213239933707881445170280351204410034743795492012804030259136985638337753835366553247828462659712372247299574546280204165290971037249452402525090345646895550304998252252270965398431462535248129354781460826984788474341178427398895181350359929862105588827497508355197984911075407235983652239092332143731243820854886688326619995606090839596812536278449568029167906298573377039098991922511611998550512960623126046825601223017092591067222927212675528628400858206898755495759547952534255162225287319875076744187802056673372626265713243147121407273022606239069024356930877369464793143352926061971917444650761400380206006489178756497135455570260944342848758708740976337098648599045021286991126951878862248416638389769177295940781271764701995760541159870314013910630556652399667918852720457379413742640415591471888911348171213193502459436821278285769327863955727315294328227527560018612599715694324958011916922802198512389886871686375165038680516913458050121111709674917268344283527683050226930902749462243616507251546605242210988946379191776336229183524171320426787076119036260754128483511894750689526731653449612740973213100991597741686336258892346909969869870619786943362009799757446027583140306564744719951700968074255782273517018345573743808792171074439634592977793911401786697938030952132864084833610352981320463234742883191153284668490853223918457906932508902717468289031406871678251080674760788381368349051320840190427200129614065563741934530626404434553017427656436423417696089434177332645050676951401266529639118486741840962812932006800772864385337918246016947081356732270027728741845069335793576708494048499110560733954032335965570898381255857606417347454495674004609086442676790362705326109352836140192538842285331513653354754672023201573697304137153740644955496292726375057246861196542215912982025859955011408219331361760646777657485458223422698616699156739475127041402965030700609030342488311682801608265414432854384341412640355983963715872225577606795171240331673708260823269706316530929360154639669300560437049586887199716339032145997287776683251009834360793662249289592205923193420669528976481739560482341123546260166008770588277542238144585374347233334676755012320650569508522489793937926724829019320407871257785538431507553533355584511214557331069897605921969610725162274028995562832991952170767600420908585519335602062844732119527185195396900942943931592263468821331826407984128733197906174056557646844416539268732896875545497550010041428582273269833797032262598032626651382753026718706266610980538376231039258154078149524494038315531507501999265356737020133777945208541611285776525564422605416836081261734958918281128134116423799988841307899056476576051990298728189369959246714942409608073318042365698649483329039282918323492813500790861647357584477043001441371199574734728419230450798124680507738222271161868511722344813259052036385412534600718928471564654681283814319399628578534601598178527771607072179476862245973377239831984726761138109384208456101692443181969387173204510615213244097103587820209494060457325944922691803961528034568933844467073646220719256956326012194107465931924071372068787280373441943249510071227492319874809142015936722583713702679897338155320546410573248353969869189489809247423320041945431798406903173846639276448471316639659075303010772993194877042552653498485661676944809067669637628761080116437295663585008619592487437726156129542419911559134905039433937852212629131036607593674018001836217187260743738412360971407952936706179582410184860634978929127669500172397737869071301314818462664983735340903078405610112972799398903769363558457258971553194992465678611227915523694227203886415697157844380331885245339112626462943228464435116145516705868059558601491947621115929721425565987223671260439692000944587995592705496620097599350353873840437836027752541479073939921735543225165032171146896419507858144224005113704111698963816324439573963931800061283305525464208681894623610750752301967374526628584463029861472666797412046704450339544229759000961234726739179531161582625223262936973225785534138258723115553590631596832522952140809140918426679376229141827890221192921920108583775531526119138996148712538044496177872837777496353399168081915885661638122931617590276152457358587095927902576783397431505362214532966089022064668167979279970544250531744285193836855429100467961099756566693145840589399283452577662911966080274019838151490672885475444422927700842257063579196052918837218963853116934180325585432237820832542834641889834861678021654468693865826196083470005983674524221715083674452027452376148980170378862468596201672909887139420758028930433487394003732427060286878115896145844603204652643610236681653040467639349955565509499801409769379107170140153565267353577614592102681748211531308970590324053337558490579001844884734108079607266353427930379919888438253121863311578330312889328338964960930008611993972910542827662987528561102511910830614193327535596326748671106518680985756571414015219049066748266599734221565738073131581164500244445307483465967640784010924368571979486670360447362159332166763088255708956765412813305599542825534888976642971586193722155701729894823297240803802542033885052468380439559393567843161890895994321725117545515543450990446426744229610962743106524794415121235198356132586062937702304414836375448150097219987040435046545562206419731889903660529392422687017784405718629332092424203244164065077336235513995055994672215942288718644284909622496774432708749137669565673194191207612975231636885062314508689424485145279418800280639552874416778754322980843077787110471494979253495103188406629554501997967561280390485055235636023783404089535106549690306278083720683610222181637349881967115238437817155749705041897976892494010338538975603099803571631956305241900205472186446757643815376884743971410627431111775044653024452001759891649479388807728389916363103367214627602556604185071548703761888903563652045439180199768237422715134456799815294652536051192653468665750026865468897881392476140593839037611999399207591811618038754367071803814376729562353138522007325547107003323090320730443383921641133024654076632424155568660369572246696637968479279780365718612252618784877072917220605821164215621177160658146412180112110370181307740451550016810998684621732046422501909724498853875073856096068128925037125962920739214537008094264436983016719685021899830868445331221182269186158290921241294922401678261180642330323074886831251041648939071922835499903122039892221643358667999349069309490017183453230470647331915378583610308566687702009704834614797713475444609509044243816246958948538631675317655133814022713412475422084713579549290521322723513939434145945416077195978792088608835745254943551385388970160729823024120173280908852488309119367050712315004862924451560124078119668842692741230470495358020305683873930385635792927150359064574757959327102195342170159348791503147228905319983286259434152782489463468620064721879548904057027525502253417127938241271097905656989009982739192609469466773724470832464089010334312987285608843224239345013882549906971832442919576516758884453212778229908313176637745038585010437450079294715042989287277158494296823765331166527015277221422431531461502586443811564690295275382487306196660058203916497011309475511052576665041923604653399661881542551574621194143566720263160929590481549661842419761434179932386543214607745705913754486215831285018946560009549731450936672037746885953023239377436082698236057243466755426151758742611155790280965111493352001639400317742972579926402949537885329907179616720875410373925262577088469230479018987427549420700701258868308104502978530982118606443027957444098960552938573406346980101589986237474594416128919122605473868216604553832726849348629980466227914966863336494816947450464003292333557369267572403727147195994384432788453618550777428946876334074314766749110260534753196983581305680419349177916162582449921014586665129940782442216518977424983633803105252905585640550128968593376462230283743211398545053109242503248715131530485212185941415254969525092131861103043121166482348607351311697586530742566865147290517919562028073890741780774690920237373036195402869560438467190229970893876176849841184546987923423756336957611024811362881905359203268627419089661650690645171212060865259898735004462140878148519537902791320469007210493591709789452151955113475521833674527272757805151935467040611878242825494816758274701684390086250794144452563913160425892515572972448924223283878483103470047744954721447435585411832601627793738857271753200888530101117778041659670476045348314604377422233792815160077696007459065917340859502886790568429721676439876525112103320787464008370685756487394279599446841883172622622692197387414414821090453206945654604185685260142570409928080024975148762629443943771556125900453158049687642302279921184563649670003291695956782509157398079679109647337172858561711981715304228609108811334061702708215180706198358299746878877962713159801480415442816376705583243760296916711815393826765393744453214815311256129770650020169245532791262975667237464146023040845355537165458823838469769438918562726010177276150119310720064984847830792461814968651440346488441908885497412523438998777706486911022117377716301412801599229486389976140370183809119724422569156038298015877247271294551730063059240235794891033632710866459717188168565998692156821856474809727769163287176035129814001397348406577274610846100409699570095159258374236529890520981494206410123885103667276424185108572021633234278744923421916265801978427462010939905583190487402581318453911686471397673345031594191750489533160665654205186961069429026269360888753257013430767837757903231656209937567669189164160555379372246632218463672078290233700659699022951152594331758548059308203583662225311545526815399707421865291830816048711177474668309061710301693752166700352567319030611718047412603577912239404927742084397566199575877543048739914730688816410885111423144962584087073262372494258511275360816162657580262105415457427362981081921851027932162142889354451035623393941130178021833948834296442981626611110205682609137201842909814270988686214995072059459490041443407518590158550454009482387645925253312517737937984660814298801818549706838647058744461160581196788608203942235160445728423768210425731887879118687691843157686958175496944859213252777612269280968340256962396982017006820033413484282735731979452515299121420356968006293106820829988525914708063739477101920456731167922310066726094848644219183069453592419361102211991303504351750215823022052667341372308778758294592839891345692519915852472818119599457191094071061947523113363402237289363103208178918448409607286867504074679672381319035959537336640699725424954900465881137968227771550378941268469809743494158155089706252743035934835360657961195357675413214926245995374466185905550888107578681762905713498757403433273294786622393896767317279284849257803750261562778616644470969043080045983514523236012776154391228441706446136320297602983637443332516096312103590330298855960259589594010279981711539926016612951586893362007717078933420985009763984253019080903992761626932392768132660878930493720293645718380670021027662975484198687904802118541788106075738201321235724743532917775071982714295041698637082601986716365995552347288587585857338790117669431052433955818893293747565755849160209706775862400475395419997713850937358013691806394134108223442493151682837608844850699247063519900882391378014255111719930207908778243081010954846710443721847068473160893271394355369767336556121571867091935639362127938136902380811062628707426468110645172357115660959453290997646280758235041577592192931651265942654649630193638597853964559520388513469094197298824660211696132222988124866204140827561462232077107296710497386343179290316636797106149124473905768207345196988362692254826804173978656690912739675348640110107801724319821803899876074683020264863004578256024107388992668447982189088972632983909582751400821437870587181571499600493306682479383233312086620778956142768873676674093836459379134030205626557206414591069662044874663624903000956475231384970740937569791886234529981645627842576549759836917532959095687349632108969739733743940480336029634436746450862697761134977025455439327052274574691426780948865768408849986889716277542754865182700593167135662440108248667288507089083866899533041799337598906646319328556902375933676564565074258665939029292475018257043676355275370150864345181300952820583155345082059997441447403012757577396619912252573851594680214482695524438471223480462976551702246194075069615677378373438781860555112837660158640702019382488744734345993574655128075653771321726381920436196833948497330156954711966818912087760350282919421935229766731291727269262340466102423901434161185395676651084505723998433169702757319813437632258130951826615274185420518366889991512699266461034727706150928634709620278160946618717675854891786362541267810392230292483524982729837115604174060655195978014501685631827342982770255360934500190957290299976577804675717294608364222843303366790184016162645405945964699851472997750519860627530978733800542316474822006021166644198418414362511825965532704295903920350170841105971615613607857938190927534208156483059670198898137974177603212275604441649800309474440879861767858295538377147761014263611151843914515761778563857636241417345704470045674513792490308769561672557645791324161221041543293834019155972698654417067609063533218898067378762805024865048103594084568531321194198812598484797681723670856372376618813747085275578516530480693704098260534500641063801036622285307126011791123848806214896370136383499856188061032748665404640491395270496955144037717415491535368278758038901381996462245358778712216633211363534285588783811818027217375023816256777814186140168177577310266093476942301068701405377539809661986479952917724096862692139555213537246908318875818409282421442463440534390387751543855551032459249235523767627791936447524247544253053977865044138700941256509395220803434215573260077950014375508114064758594636033363099282971166377856547324247682561565285662590278572232805461039514569403690983825791848668542798099104429946395395106474273423055058614880478144696867362250545100024842749881733021880656517802539297623927313073732626614390832788385295684692616844690754391161475954221423793427128123790616254779481588733776687167666621550984196638871601932450390368152960044105459734789961430936569514518508328027668942793568007851355076884699842304320357379444733701993512943794049341136694273241947742426904542666127535485962961984973072981558039709537558857688105889231230895703735902256468261426799641146047806971263635157894907474456757414109127702102338437554660019242135049409320970393739130270891713738746218716737352266451765459216347110661790357008721960434020410866924646401914631272580735881178871618041422423772633486753853528507663296974768601515052980897609621946025889797428144857767244831844221332146445867569749202009434195117869040053480071008098405905045574334953039362213622354418928041365613186481809966299899749367292663154385054049695812627231279842236914454108270548808419871950146115896804431469183349206361428215511582282814386963037759261062104586670560610410543360660568786673539414360020949132457468100882590706474435466880297599673860587651302290211171762779245173683924909907695370161660927950369931654135192453266025091526284693603880530607827484955505935855562195968268794045402971948764434903386462939845897323403314794283250364669272918750428506689843480207181643741121531248112450313878487840990996124064813966987692403604813302959554758602021016142363700327474485808289010064094286852222740260747203635447469720656792778141860147953728467300996731950417572221590956011178091941500007967213180325855133450841836734127838413041779000519407962864025899854778082382056940053648335096852912820171065078293058924294533237079063873817982219255422455059662834958016401004570138498499550627611477274879386383581232895094391754483771863631987662036860059625472588578124034317648680955956880798990129665422635872288250418128652568595934524519406428937199579645232633453593542398221512284864974033050511590852932198304474106673719239175420251150378951878502831895538257816203114239340487804783094271779956090921018833287998135307819733235486394127143434077501513899157263939409590335344711138332583595393598739093382314323187201857694099898149756027971868877716592177518131582479482319146380780626798459938805405500062921334277991157110481797338070475591310021937157819853344577188698413460756064497230493904599884573373964268381640078712539045110049139476665152531291453180102176480637398423593636137958196260652173252040757996084318098726346275014506895527383436222083460806293748682674335609188461587129727447457102240870179438814895713375815848371629842692850808677446927726332182580112651302830633029423094277767494599749238047264218322441311332592170547561861631009754848558029719029879685714595766948445805949217890869980351403755469926502198831451939793411465179684327958840383905292652643960226379126089146269272980353193514825847785742488200220977229090518836356434692087109395060038170616496385352427934527541045574633163244671253275322161160164819761423857605390502172208852582820520775052797735764524446510257319401883051213974066752985366491320980359494851494066308773510819733675936429646937570866209147620632603315044037574807327554431264706870161934742235491870318506963441854733580646183027970488313813117926971451061610873993901713887211966531356360554815868157379874229266610305854638866807066583556600482123804769295761921592013179223106291567135294991132797927032426876104775210175354677383197244099185683453730667395894936281928067385945794396011534161715310643261725448957151871830496573485006772834732710033668159788958733980705539269315617295586827978596532610056023515923317353849517951493741060562978071366416043997722180083221378946700425198871033866513004783180731810589779712032085027263393000946270573964308424280091554941755503896936201482810709877653256848200696953511539909113940673800162571822854345227781014540041395995643412385112001727479276530413581664280951507660172402420570007115952317949681005010700526050696511097033921184537933756157078817813624784331449770923798084756444841404274449887739859328767450255777171650352401243961179988620785912713571000162839156832948235648515691803147527983482412504136528213965642251873421164226331911991436372262373230048133034750436733855417778422716133739766889295451179124617072961898446001261635380591341631744650050888919303656283154819778503969484411833147303865932831834595004157090611998629986929681954041345760044295321699677277615145949120418922225326056259780055411274625408259535310874414088302619461110070062531295905910896675848791475107480868070378786076727625021887144213906804584142463484554564183888089943904076490932526263646404296479645418884083697722591969211038376877760746727661483253675774560143830598783392590330808422064339626457082510057294923307643678091280205900518478379647692446694766154214600549577331826545751190492535785355440333460880650907136022723988542192703646044172303747283562040006042617927362272452458322253181448645362405885631088432447882252127985429239896642152947172805017694260240856230360669927740171294902203565047005075252870854298676992971188350473651852792164223677766094145757358796967249357594211651648762429518117909003173888619549065841332689733512002953107610237183428189694149018543257686143249708058183848033835165503886308969994708021377343161696632402773925698608609600517710296531962476556500959936496365057323120778306877505666018381579459347984961787434320841051637428716409450612737654615355524584505102228557048793519739041475695541115962952260930120557658897068904013409991888796870045187053799276799837084382405386716880010393925121232013180430380317893980619587629049631509107996377440343348984138182776657427657048738706352202975239124941809328975896610158101492750670855390238451368404818725398960537676756183227460776319392655535825661968093545411053089182060003813240971426675723656394218976254579913532817762807241271904610300584205805594875447871396907851609766273432387208807294092051314636607400320975457353128728801344323169068003803495844766347685605407213201417381391518380626274936108338432534743236577627820735396904372613017125912842631914320446812839596469533580039603644512142925540747843845590462109886121150671146593198725910228458123442192495663293257344405516933898140995040183741876352618741486835234647775051628963306065556425650576941609782361054423535566489985739690579242829447253008549172521954328375980320444502040933914772464160956306546895410902547301549114181675829475295739714228224009599042051949181407017831190513534066342560147629329083912295109740083436256438250469620826859206026868095983451773483790473656385819792536088474290653223887932920424622408372127487851350655206356645090547959264751093378659871925190523734820005250664072826976040016777495614696568375744935787987571436148183507045431811011620089557761859905673541051632556649014560690706804835272481283037782342246334162433743627699945767431467992800692005679183815695149939011106627084056476864412685083673360846381200702106063170220361504939552126164137280563204801347822223451216509702081760705214969250216793957024546928401082722532485806101171270050239084685080277407877357093530979270255592943122898010157545622996341330967331214851717191360203043535329000346314425676719605555513051710536898192918023685659188121254172496370388549427614605844012447220618917209452483408692240755141179594762095361777775071649352626140003362672565529084823307963983918781837866687466744904757205273106963182454714599285317501709739396829164089181153911297840179047917190932631348052065215207815303168877238526190084395324343576401607473754697830396585774944131229460025581760150963052499520176210919718066519383292623816470713723952658991413863113431047729988263158084238346915276422328045163579409044487298878410278149556037905717829243102987328728727561902574158748718877473857687725986163641388185443346571750208514962760224209201388486414716671966411151891252169612480652777452703813594203618765529420615924831228318225816131349919416670716183847442007331927017562698400389397006030993477026007730460513149847867707038707057087394803624901972829956731364060712779483982949132176555701298451555179323724761927893892004647156506726909731545746049679320849583743269620733905708400191674549364864318822395518950978914489203388602501308204511544932855615699508910675883010732232469986567690487235755410525104976170330729494834925491446882516517687905761645440256545419398349381681557292370162975848293516930590292577517926831323564203938155935520700193220475116140236951368955861617429964407832182173038659592909311348546745583785156169987307605685427710412855576367514678505026401446447965824828039309401586370859624269324273806912880862194317008241455310551001704634931421140655724092449321758756073185468575014354450102167154168974626928569965631123146983391254098250547360729483571931672229234014227671682947498392736587571104167527331937434776183940028313162891649371247562475837808818437666407248372221459262732969982434769502911094866718878434775974466531279980955417546317498293390299070722559997391967661584530323832603568913932521758692559694859544348181613894179119285302706641518674343893612378071132256421702601462332205774717014252287773493132141954842774913540518327834946178994643903509490708896280353116026448413170599303809716224007891655059785868213466780958864335924603826910692691910152413830758439179896908926020375807422344982069163928168515364282415308375784744937148737959134689033199147162762279940541267358562489881948968231599128883124147450875095363197144641343474828070498311423005303147361605239315254890743206351581301912324872599350522311891586329029714530169119887089943465628702454773992236760933447887504291591140047108111680581307024591527768649500616505508540803099446561545321046188637874173174148958647473664810338309595085830260130787326062637964185709318794375481190918312949333474757153449024674048122254707066651533705844146140958869547244602096190869317531554486864229162457340684045711527889380112341636286747948657035908450835000446319419052312081265582982333061269917906503421551161352088546474317489857635631381493400924709371411334614537695877393129819839586083011280421314287841846602541795774907934264510354665708394652909527675846875469077177678325032958401096006513253925279970203385355072385671967589550476236822097578495321423277860879385565748634820042119201408107701387288981216970669501451247756883646156341750821138952989465670368238081527242924305249121523603587956112434845306964230447665670734199647393602440832795091763444659222430847707086149135157833380523324925734454165470625535521561294779143694218898272594398387071886806877092804306217643082650864924817999452682797046843422403888576615174038139540592507902446490605693266968632840414848851651585133545395245641870349640366463316317807058877585099519153920904118547649848249960622448149570347153072978955263220662715927563460599146950795357782610739504224578577907031035710872491953701112376893454439619885133821223388041407946440320798834746422272447324219409640072938757836131043854376282928729624765003019296097636254528040195371044479283938783053422577695205376269642226377092130903875548913681575208766543010624121674994730347468059780348861748853691872302395858499382858598161701581785600986065478741052452087640919270422769907873569409793300060476540539349934340874020058869250962516445929284242847255927700649800718908833343816409547177072674300659197016768055579562405921474434210143797146108185169575987439113978632984838449544018267872776980483392698214226110801666323663550795946214555730468743343071702514405007404907315890064663810057123114347614217083824729997675797934400388406647813825597852557642900092028396605676335525965566676825140328204592304514499095718918916859807637666755902954181886325390461078955295192476282275297071517897273327400998300208573285746284440680805360389461274710948703387819878966526984074636307659148388044565427327268992928589961443851498875042301136612162729996967486418737364616172031550307360574815908858339655105252591080016786354438374269703270531874263994297288932421667625461349570540463545639525567629833916510450566414026295879811114289365284625594071016776760217866928234774961747261333632496182154078607438108030590868468167236683105475886530015215399018499680490186463216920413507961966479763648947042944567801149281176562484577790231050668471351177131849315545485191479966642931524390006956453873419937360728314715598763387614416054783544685478585062925748996449208592798883868292776287125429792213865510294879587343592434135705379866503927638547171613774939728140141137418662914457299869914761576844718834213910532140965444120902580768052918468212596249485634081050097795687302097118924563895765896485845389066412144488533458573660809350043245223882103951560466676529780706761142333558816641043142534023291796431499537816871537438272959367369203665474367647968641393807108498115880050081992822356648423493099367207123048425696567216496279351008791396436249617889914830972657390377797554645680257435137407018663685193315275888633907459223638259307309936602015855856312908310768346179760707270938761733405105525297521908158792988542703867690158855562270725574948107269367857796855047743796178171932139576458754943195518436520184030597029359668792760130701147079355516286445092790638807542582566522434293977141526383379460629514325247743312525607426738990439198020668096474016410027796720814958648895599840270209781321556263068873536789249954304587966674687479355198066967852125005593557271650643815083043991492871392827511032824773231045432850801490464908096780990008745123392990249911172419168901516774559532120433403953515499005418912751985116023313167221101060782021066256092266003418248685590538214277771562801668197839861449113636003189574351453018463024853874901278892238045009686154135677802455172951784592809669055877829166203029157930474831277706980875913913290496078744269723357917819396298051613879099641989384985264373490154613817445842648371692048067657739518057941485512437048916030269716617372309908188054417108076933189587561960136272296720579633369927886738985579233416776013735092866999987761857036882326261831144801508726104067987094785750291152380930269143862865280324211891624967154684740355058690391596735444463269876616569476935005365405115778395206585471020787554024330949693928434047574520059306090810955214548793809709958918081831196375678723376533622223901975134956654572331439393599667967751400894582123164391451744316579927523660946560833932842867609636789741928783257227619456221790853391156440305589271069322573347477636202251491365153509458297672492291208710702890220552242566554164892319495357086187816966237086314651277975001079080811143130821905175983810462016303188130321150097631595162063446428032364023454641678652272289803495062161306014326088582589668512952225112556764998519356915885543843618194317774409140177066494054413826292639515116443165483422791305693270342631413373262691685535350981033792531271359771217340643668199751562394545488260813573715464853060234651012052982383210006541462432061152190270713126457543484569079703808560414061865159932091700142933888228303478546498063915345557869923055770792460838177148804565022403076465671018311599127479468313293872711124635622841561921362140249194415759006691857413119307487391778730714671339272344221641277863610172211117224898448934393266997597107223793444524331176266751552713328600168405082359407921033324371487030787466163729868510638101425399893919954354260989785401194968362391321137153577759710026973318555402150506067368414841429155346121354364398717099015232731874185058374131477603312944439395251149054294293291062258801532595061159823781264305260526753657525833753908040447406444255550422001152961818841906676277455185971507816700208919349324064619234832622829962703195617259433277239659546242888406394827261144507147682519611979386631718052925543998921242327672721311730293778752816473191280914532263428702089573947003450055479919990438300114679846229692287977573180973450935433018550712372493608002088386937284565934077546114466209648448970399711602737670042646763795449479027883534686034524883884203712583584172369022995238852193810577964932709527598630600550485682448417377496778876151959634637484038622553011129023489885648291203205568025101834154053586006214167384794458700553237304616176550990306328017226852420902880248787468381625060459236780615486620331177959545372511524721588727680853121676203761194349117427864946200480353928322361035449667591220835591080785026585119584269601024768424455507073257854565966086381077412667154933401676742520929924578796240636790395167638795370632308933666604072699367574525950048062090615754176342796350246085035823367084023367769139220543053504276773154762266917710356722329374907234589294905464911625394429945009440977544750853867826965638380204928064781818508532106755443415590231561522175466259971525628002719425394910510005672488541428391716803898964224849882625845649255809290969391592237803635026313768649624040692979905621859114622439934320159588522091471711678875988404297830810253640611016812964359883569952078907494192784251279851093081423292417219334363044605928395360655802491504571236229443424706555126882564837482254118644788425218030995230156375731002376646417828951880332504992391725289854828507204812147665323754646732658405370295864149760240437553248371430421769521488602818162691923758919511755456175578845833045298960966332429985135442237746683119379777675357292795663783602580796453629057596888657328616591121074172016484375299332150689301672721997128424531743038220046565698389884595904146925837174785100067388794891309515589443686988573132156265088008545758875171831923600238694284616117439805760458835431918940325081729046963247338089654273910762615890442716319635896072767453897616167499678823741134175830350516559706487881629567192522362851133765020465195875672248971266929390593287216659014851615888206878553429540101252576729556513110180991490902290692470067847658190307520726171613381349730422149261799148271850895739782924596123688397100198257268022145026503191027263843475792412069897555472627473150075875449096429776422407772877866259074976525200324606544875133989451356359407126095839092623852909380822579407095813288942634464791488223737506875564198933307098062883665089174130112932142881363619871768476630889456131632208010443132346638712744692251643826608513590723538130411110020808050313624332252647573664825612846214978584073394646853800078859750553508759412901135050764419326495489164385579806271037455238131664503510491597168772467331652003322460754471046026318554229460891519043730477444031552138383756603493272239715400241040914007841203093931108046708059444066718766188244051083945330025396252337594487588746096801906397857190077342846284600493990207222794049587320302187688784667616631897240487430412733883626248957685730188122241012875193387188763359099933691880412726339859843095381260036080100786564594535018490542146277627370807178097380914183937948130631263379331485349548910594120482799182233518752977896235278495086035407339196019017836848968063059942215156058101951177032243062448201457309749973107213239574396929499492659799586386651500652359693215192599447110049608519983099629326573491073196279968400380630425009059982670147674633311936765647121242111117054917324816633644632546946906996160131326000004689889017781301793248601803768397270039542163841429250649319940932156253957577066160633882718545958439282679106478506614461333743690984428126256891552719559723691562765468480688477210279424857463014842118394126220934461663847368618605960515558130427076456352673113687941918485800277552071586882118960906928236310562389399942086164155725460298730285195224277784034786004261860545046435368538880839666110993950330721977872030589107746189379179756518058993299949941844033157223381315353867694399853457142046001232372330834654064709761343277369280278305010880879555365216768526373149409110689037331506390182828523693790044032827465950545043355427748406481863860729746038429449443673687167116028578291753604937265864936368037431883026781907532676805620009827094575270233427938773840160853957874779303376247813900036594755011740693470352873306091906795126191850149366179242528840126717505587246432151611187393033652322750430062644336785284651279869109047180581998498992384981292057058767516272116306383821025432450881912279200520475080815621819579492851314204478187578642392695332801762425620964291515712741355024571269176780979368294006358674720547406253558362774113314357940619800799695404148566738334208035019385328481968746443634084660143515826886173654944861982087450736944487736467254701658383414158602999085693991099233458584151417204516724095609219442204501773081366825723121850671810188501032089593391322279065782649933693024732008420049501469912978480439312015725286626350918791990803011720189600189616092836332154547533073540744799240980770723359596519441586655135919360759172552785191525316633331344492498698847270519151651246713231218880350734388650474345393921373571521175910119675920555449360401108103007437410822781701996775576082690243498991341111477711585876575349077304323578712338737147462544502319911656096700409043447811305983108062628108770984265043178603064831689042698648643065347573198382630885795557005187751299877789657922495491080775810589901656004426996107129385904527139415999320934105972564990305461809557565237299791702510957834394874267260916077087560177393340737116414884680553328175869630794776329941021004607557719921638382139084279995716130464617427429607633940862958610324705573822568161579376237371580409955466948526795441905290458151077681964701811913995701717956771464490121344773259145250090057166789728563990165541014334058829787337078650363347506477654956561576610066617537020976803388255082133164816753990652955495847548377473697434390223741452403322515145981658634490489893985192493027233901098129787191842239259350467670039068942140944340654490953263353341089795372617091073701720127741937720410848681853722511509574515925646701097103729585498513809750796367466175459166332578530355407480390965031702840321549152396089071911371474829823262956396643336175806043590205641773517001535771459688416248350682400437947303879772947065511858537217193717876943830900935274501193254072996881751746025367732603555964927371729276424398631365068472556813731945811488190686673949355958246620316685567567948148967091878954863039710673827474066693429150450901977056932523298604581272015982669613607653118105802320113704628964528124559393814315815541943944981586374240897510049451484563460115993086738754701458492860503623256451562975096965006346888193302534863235118043345828796171787159951505908005488172690699090505143366465697849953045703691962317663925684662323289895234022299145054113406007443980906934579629503655375264171804676837699685746555413914510087604664425883476813764910895469089999690745814359111838794161922412009670656098408420449493192020859051683328363558214536693668209192941058253464251579489830988351294189557337308031010046775738471467862336437315951099489505724798330642813315485718293143134730506581620045653741910724480678663870678441265032233048411130894313139404777170807623315480930446679944575148041315011599484703691562434859880446941022599029544949913589650652755397373819865302472497832248492888484812910795932620696415177397565374709447765194254347096528007264086856007160368376202396350101301614878751610139928494494917723641217282221690629545753207371409542340536782285000006372637076405156221523971267817435443353496455837962115061558853222427199858646198441178461656595205804478236325141133649816817563311477388508064016676414089175960575664816668593268148558057864789378054443788098657486799593221336645020447694625769047069374028306591371652214773259101787731871087280027087306709889932328303909597497009104683226258694789758974413320896151264346195141369291773800834789732218723954215399235337493787619054336743938756632257620347446090790125993564413076615658723320239710246809363622502228229255386549873486449778779792885163568456936078482979445013670633978251341939227554379804324219824337035463429873739501584626414344276079108069525478753817021031081086768786156950967101342339178986562460034878680756873060232686386261803264918014117328028495036546755855597207449242312993333590243422821683105738091962039030019791088645415892011143142011976048260588314776553518097672817225608153861276428449262063207569289563308768470014924690073538918713621802937682321491850895026160253324117802265459742802059098422566541298936980067524779082134903159975902712782985562847280078112020512967864430235644469567661588506481045593984924470975985786088859621782633402624944133348964439666126407329272074880313381236197763364341158277908668650786669616922040840035508826347601790163802948892787470801103157474011705067586165761904125262776091623654086369391102621901977218126636701991348429834741570941802310697873840313383468102799229333454828170083775787108573387671307716747861679667759461903414775291450777082033842282012986877178616700374938916359957924946627342232140175929655242477175934925432679422502903667268847253808970601037087697236286503423721657111757174086901684551521273511769849266713137640861007000028330840724399625963675761861863502961983257780114935954760682949582647873760773278822853231008032443298567522052534706509427657364044359300775179587553404092157730755310820521335599881839717132373103774608957471572915916247514489270439422956244969137722076360303042321310123753122255455716661653244610265531106919203071750527844603676673376240581443546841382912624944837777672320261974910609923028312677044312304963984961609431764848328593943851118215807239174161610382953612382281010754007910290228504361017994085509770781646528432873107349467942325987101947719003296152318197956302373295775250659278040116883905432399646231721492190096931720432683096687934481385875843465889933752223561171673379627020875044081419982099080867452388404602697622433749686290247360546911262558598523310533106289861963377827546823174225445614725235286605193702684124390662729944639581772269173684491775469530013344142732325192300857776719004574298201984462625410564209315254942296161119395008457163558148212044757614449428306965692212721994653358421250083945849856423985816704038844399063660124370463906053626846686958819086400921576574016025606845599012183241678561202070579416223871033635065855328596111021007926232720339341561599105326194450302505317185430872399138330133525155904585009176028429514952599557649105119963063875279364852502879153397427176697754137366135671429055436395433016611468550375861231234752336738281058243576827445491335078192655541157040066392338885999918919338523787002167152326619193029428744765228277017437403181440484032700734576894129364804157179205778748357292067517773562694724467553364909561882738416939995971976256950072571518052491717181074120558803374546958791062245090033244267371921417731885752747252717122903425458500152968770644166567735075449141397463014979345269896448993693917701147584314783966036881170436821669647437923554064597340073517705989856080059745930250118691229251418995497766740796948850688161446945394270542469998091244874371146996187908570335167875147614569672701997141116882211790137367565649750016195209655102112533573777935364535660025771213109918243485989987739511044493535220789497444635286737682137776431234662550162476173527356629091167088622343417497871735058622396331439435328286320292704566489526924874630472964463106058101174145921554298138235281232714445667139528602159319301688007331257091198814953342110022798803256398287628652405818807464178053458976510053238691298086945101235723079938381774344278130235078207059066477340889698742272159218830570825381136956521949837390426395473553121326851360779297552180753424428304787108222232782495517866644194663515667981921467635012483450512308171630312788697720598438908360512763917346802459447644843668533382097767790831952826918985438546355411843126754624847361958531904306674285422045309453647526552860008135685347152691574548924146556872902411572472497560422228195959445310463696203078971888084813802090573369659007164884083079715523496188379913433008941481609238193893391741656547129075312789568002897827057983910217523596041318060190990631236164547264311100698385055106651740838083586536922349589755591689691071552915569930979804817203499038010677777631848291448086357968462378108902990692795129327447982925101083749355378582391334543666011441263197025207708070308165954773652103042714746755973446292634162502850955000406587442234790012870051531057374879484537321724931837874641731475748875885995127872010611748374633133728324115708845019825490742389684048701273464835709339547350841785494011012722116819840008283533933706388217988828935373351225762277014258546910711775718192946296009986743527639936462507510108394027453787435907450622717355951614502288572571776056703153725987774084525646311030395963637045227622817331939446531562920049903668710827774342941865164691244844755887539557859749445862783864350052337483435759466767847564013584176040086090888026686489151601458252819551726957112416845326649720885101685511020634127339635605206285655105287056746482806563196971684470920498977133803691379477865660190431111908635251378264144653801042229087673151691841000946759096224514657345921735966749050117742979115415763470519004277011864912631353186123957399862769463884566403144467041360285227123549037430454451609284018045618323814493830227439976648240466406265171054579011447534880221588833604701724999764581338582785340589499378899970544911347803044089846193030970521506942056961571976194729718489400240727162905699766503163306779052300516944801579843253466482949645132009102037454969540103139787571292220502523823694238131499931796049599058918158367574715998685643856334334642637976208227532008147446162118375387710653926039813486813764136173026250860552692788623502580295024778759846086792953560771448361533827087628772986643029536583624514072101507730777760993736292130956243641596682594406997297343477311821419711639182002899561395155537283170037408027529507551831642739642585773489722855567958736933358068249203409863724626698993709741545834364762596248380791711297408068514979193952349279617028392736465273882476929187573130211754199963059202253985047888462004802529744920101010175391058964110972290339157559697119919781855914010877911331462951781390417374441909222482833444488504718155118204333804119589796278228271353060015164644861474709893956911443681891486547235577766675808762019866476616730729841770160108062032173600658054241029324844203380639849230690989162509215651210885644493843417570282252931433731995456096004062045281956627975903370413413431134158111282634174332560203819721048482416548461631271634071870713909557049287034492630522034325772116936355971841505737941413090194033145554102075806388229547324616677729509811015064450464942223978288061977109339429019398793105562076410521427071348894142717522932282739641833495744993590583237303006239349234299876034794009893217274357261553874045462535465655231119005808917063914645254626279191203028799623123834279885495413395026881516254279699402388406668954740579100687236363914271098094591529073137172267036415960969824001350822660016129398846207706628676462957148137747073939234033996511777910766296266184231538798539591811167645379834021761122226737544180210988033778441703072656776093569834862940057046147901210468830587701244805544031868629041682143851333457431229853314089905251153827124078180725648797940369784849466505247058402235537313870444947708860350181059119688143666665057670185048719682226521099625151988567444640765473596018943476522073058096586169451228380841018557238125981053919776961568773487239087234580642584739881311867989520171286759567379461405888437288725985831710484466815594460595997245705571618025289106823982756983811645773426220125133075596849402862390221614639096962355115147416362525856202927004347687152154801396902884681214481761937194943147033991674988301650159271376101193220501741359726765383494890874406131977519080706016531916930952108182318921013814073487722659612377419257428553515215367265495958277629584072049858676479237406986778425198962373599672604492525377593835470923727629824738851555654325859883124943242473076129826705462725958577136761691742165449437705690227386774015412043668413009737777397715737703666550422231080329337314356259117414502703741136572360122995388101856024363811216849123251098627317908418703731001076163822288231866054359540176195087707102697094100581919681788706403488744924500537052406802328792306599877949575971317194661959559444593251583328667480073920832840794440980197514512945718425869426729364817662733868564972753634609008469956016559025685451124741676043080075063726597957640941216867102529097480409423159010854484320615371479427175439925329604770442603539446079074006371499897240091499841306311600715866494082858642410631212743761640578100986641940465159198326022622178592421473941723207277303691356220722571104135946250910278595245017365646572243047434877166951423131529658893587987035151512716020476180094555617032912732506850882018467330876160012657136179133867298723482260676232812405416098139525949522608730142769687009272231889491074100135942853304953237210448865027764725019791393559942636495969096531386833106995484552480758683677732221318902203755365227680010383825956143760390436950625489889502235590656308940935369582134587734691720948172592439223823354048389383335993101401515022859136002379450298498038755267121167103973632686642543821880978078276376725000247563430086953670163904773258710688798949838836479289718455483634311540047291534964092660007628629851492339456263150936844032549736548494771186302543565815056031865037455024979725737906595773284017270621779036032037632167527325097590885353704033730666251733842414673940769156795692782601454686814341249309247826744474678315124528881458076749680964378908760504418429036981217952611782584952965205301749890036024875959489871892488362892763069888315589636009284878138390409550240456423921646673480951480627859886452309708574062028640478937679997456742537413178673098857571823436400127174125224614865893573613598230098015545348091529695328871390868067319086011647566690605060593225972435740713882198662548553785621400448957961030473329709497965647311404365695734945612602550082501434392920513780899012279859926578821045153378193565032959978071670006014560782562196888368170864950640766643940804836828217637096837711285605496742218865116897053850809568769263590713374248528433678385840701361218282174779862951556493579708512531605133494224653896343459028515746687019664574145986493440085159235330094958412984420735656493396901886539078786201379642868384384342273305445433002978693670448492042987961320364244939861261657037091886065307354641925135718194137221266026143833239012362451732764685556076549150428119481594230053467653812688600796897564112625964355412962661239812738112984373386049631494570875423956483738134292122676043781259086294632255234063837323686746707390733415370107837318783218694903522463861512565329740495003738430963358010474531812989155398540061484403494620312485403870156466669368852625172413915209056063635783811061627312243693828457342630848802622674322896761581716409753032205360494662173571200187098306837329366395750776530984005817024106814869057162629632158980679611321587269663006389354501507061373379879762992001958672164905098148755072386477594636227547189823347800634459962279388431698640835928074240638476786478732410811599004199212167319367569668820245989037579719136468084145935499575650983331742090777522343153394096983993461338093558354269274370929643628191359609566513687690631416407880051853159451289154767654749061823099108455200188433554827656201570267373167188676714286040522705139882786782440827250531343220562888960181579145310464011609784082730308491130389309885804443291398328310086363214651476930813104487009318542664203163180385102470773074503653863812581520942029727146308161498180510280364821148570472321630748110574415079606880226537557016779248701314441900685189262232316082597189939040262350589166753076582015718900621518247595905204034616893186685739884435597783123223346649800705308507458785821708683104855356320604843125928932892439242253990232798849004625414905593543140487496880235798210376168680921018302393375083131147993277902543593252311266282398509586038041570857448948148525036400395197753832675179573699900075989011724005941012386299908048875983989111887137916276498236307251769612635508643801193925486226142994629309054739341843653479947143781438590732157407808983208889377121551110607137645439334460060799117433595664228626455113683586193619308853742680890830700428503791394103523004453210769665908824588299483330533413273951423829839655380357095075698566645396483108746744103288716013646511511483473292610934533361679013606279272069513189509507285675049701779932332895298849340815055281405330280537598719134449855210448233451307194983205060272621312299667557937508048062822397705237708302099533927377984153614684854993009354998667572866622018752861453474778979464672150469315797321698645115690119035977070233618619495618599437410171547424309641052609415127111068149931574805590815648649536584328487622033754697054097867880763561572670399766430366387546760256424927616651573581296562534889888046082513913714650947245565523706779330517685238607166967197160426373972197838326546613789867376824453500789972042194859875924885644254090033018476244153545455017760908138701797408142529911113028096619392095450421082230592955083582518594564784172085071248475980787867880131207357834065160287784751003579800901348801371850458563403808350837230754367180471832869351632132707667799067344959556865447115619758012151352506180752920152534381106767226372751962702962106478832129548026230210782198893391843919858586775246631718082596351777120037668288007220959820684464252479961563165462169110502327943010269055539252174949678357669243375513173103754705851561360708169934156691553093262410315279991778846585102969131223908736572596344033593298596546568032438876021364380933908228279626905130052665223437616263395341802896069459225999044249989134620053310481191349327392891501615685734177740839930829207319207801081911160868280022861391280885482408915699217269984105149759041709646860653004172685752161838409899015882459924930063738368595338907779975217683448681693853453390598454494907504687695260139364601085178807519305648438199017990347788081404618128719216636470677648660846349284253606005762936539437867446057954366826839437786828963032530702005522794927603003614397864786318232391061137810656855598745445525932416379029326207943972948918888718252270153211306932395351215459287336258030246727708712954334832978710590680093240804055944560616689154942910882988988285373333515660469972250794791678093355611271067930412873020327656695246127448519103993224302490639232898111205878372638497868361889527981684538085872384939976516720807899459307359540785614686782982803403638959147255283768090103345983695740803360884002818242514510521287340501725113180251238391155617184903052622018895377243368353342090286766809168049785451117102424945067549777031002333509639753538800567164223249337825046815851561518556505329465755217625383566378269574302037010601386487037798587165218080246995527406892531646576227590320773216034264039885558925158343622576651415254851008428182848998417959267991272786156073630914639858158019773231808570460871904143113067868959068146530326847769314758782560440991189509984523232395087293550408919607809514972508395764253003329390826115816057748319821392425566030202610448108138092168517773121095604503703365907781497033514454495747951072095366366821871001347162396878213429558752703558318832181027183259336238499049390321830302533781562915506733134373480259813242536754352233478839945291265467744437063207056081605435250103185612705458994104214104938769799151291766547939659135369068877184263972873460154819854495832244535637404642571858488790424272568975276840486780846687257312795497915244755351393334997843953831977911516301328997558092093486412494780440608615894426948326477592223597032980560582711082074984948068785556518247325794435755418586765022389649300800167951244665631042631058395204472858804827374688544196995445567536163571039903752570074769876990529262031795662295573659050191062458350752144861150130097515622001599238956431109405731451668787085267341226506891985279246369134375532562776025598424509608805085407413626115073496595926678570050256773722549915798615625783015329013515685012529772004342556606521461510188295873717168408080944832774069705008234940318031167729556650534028394028535726992423711222536251727233260528488851159601380337704557080640702726348941833693798592519470357794245910399110184157043315450635037142281276931340603857605438953497076085047505658741755377789753258242197112164688690123384643994343499655921891439168430262965165527412520401599849405440404313731269423561887219183516538896357638017052636710059186230396491217784695830336595961997862020303599742669613907774323340449591977737403873339060748742599335989821993665044511586177735980727561820436326862732807088187623304661828065534219300570669472874213202378243689640782066149257161425222813755640212026078591779955580215233001729724751088724202823907192204750558065341705360755803433813019718973659032581914342002118633226496087535196768149769333554426991221774838809533401061113598778901143154889491355575885166282402281836632548255175619783804256982663481742868333290313337000121440007386687110624291941010181179104380915237167807938007736043033411545349172372849292673475486316366293281198829990249315714683457001363201157138401340822667548679744181220013952377292537904029658841750012092392324072021720329833367229996398046385759542035010888095996665787629579119458186823440613358925125337389778207284201690124355922514861657684552594821973917594988646785842042233047920269694641723440215193750365515603207643377265453662006936193340353436183972025096479099317992909087851636821326330717106150844789968319268787674569964721935490660535387395429297848119218262864481639494049627417988943925269995782792730957917425652548933337040817960876366766430248253620140835000238132475652045184223067361453503484920494227738248855337634530953913026326338920449302784529392735092730217158631636666514601007545688260328713130212807718211693982541371240488206344825467550466379235031438933434950295572187506847791610099621757051269124483785491902567312359283585731051026295451163188280759608258402968137240615820033578284358001155886912950052446289168758229448593023095440428658028200218980562385795383847514914928927792853180845003839845519212427646358448592495311846039428590774516182051710245225880051928629207435030927005168628587189233456940693412222486634338573240911679273240086003749615761467566460955227396562077371149641210048102871443660138256584712956642511834175510018875702642158771986282954521763830254516331976548084128375078864734601226761089593510579045715640678936004595386812036762735272922245411299072402134831731925179055009646643010295632532384527739271300943087225608733569047527656280709358278349719209909858975475168554092231892232339061907644382225426815227038386656846993519020277540789642316109626350065112772706039225411271223730998572794397668522103546855393740306837407450504107702804453736930542309844764660569646661620371255533043468492030543273830201059562714030921780563670374429267784954772290624206582287927124596277735084507007275678180260008531691615180179557836655394985770981253583002886754590676647587175889789329390751180548877866738505506630868039472916189698733827537637001862810326886807433244078785247741521454723670866088735513052466072270321972623669814478840346041984416172114531844662368070423822459442204432436466568751108860157706476883104288377645235694991592868337495685492311296964568534216072749398671143486332741870522189754901750359472598076635047562699110618762019439393295545612331034925823384781517706740775376372037118176102877921188122017485576960612168166623886686786842312990260181301854880349772821906614804690570781871865007980504914350357679839556620020644546625720256537474121720974170561670241892043366253690029808057761107661930170517950969873862955490531549779558009241971602572827042386311023719288353623502454468124328527784633830204244657242247701015862463832761144979595519058377903000471887362056025224267490399979037651111842586047735376870072065209511021613452589307630307126995748433764332067625208062157892277882332665743577354634653566829656178554884806035887063789674128640915313545201382359488096146260063330906886392249970452492847597903960663665859377729206739563997921920115512658162378525036689544210180198175361930233036878926074884542587771439617809542017601470402887003617925890901656603594897275758077896671505210769563352689377338349518966248896344971438436210911750937646505019001218468209957419703483449022379739283468408775805991988228069790571766903858872425736597012794798877768487087874105534911432448230084847131522276447291658302651021931490391259034066171692018226312538791183693490476886677333962013672631476661352501794983792019815979383607989084501947940890163379031190885170723022077825596788710818520894720526382785079649139468751273492346659687115876600066801904924098742521025844686389437680671924846172480131211696919567239131677314876227001490809312824969756831966755631825334453529187570667267857444932924652592642802213447279114557944213463899393555071699791870928573668458056439222216388124468098694625646515368797928898225718585782182471617223224022408072310768959886893847445329374231212743366081816212388068242457960087523831119010828624682215522221485302049187688340221689977270101734177436298434417103166494748994664157240621819395136565890502858664696263059308778675732477722659459663828549417445441296095363537373864775975362544578438979405881054935312434497794412471874647551029280178961861176651009864236429162617394339223796941150936100123039272214037711092469337365057911392352853294704975391225999463858877994624533204227509953019201371536751999308712847622252605363596680354523796793700086410485132352686138852841515710263054634682005198288399457298500761771793460323824781239176869583953284485425714352893718462597036610564495498167847268220211551403846407746929068279815327209600379968463681512032537583783574126012872359136165053790751023191521210376079503279673235574933092386530781780393476168504548084665441642844126522370922700562174126373886796977970516682229322432799925700803675380658496910565768549974396254187627765961499132872656215278152070032389592637014237525760024063839653688683711551303226574025141445829177447466833033944579989969464951744067226294124270382009013398216588251918620516431328582227251371084199255393654853537151384615931051539755234721057663828094003456701589815135639814605543300703866515605348335701218367711540054163351855989199262182463528377882825764015590587718601632933158735187151999522200409814527192075564420251704550315503581327744253534505911456046500308434733561336847751507581722718698196686801686064428987853810445300334042497937578170655457989183411462746496087974439239379067080656669781725255576191876038750533762036147840229754957029803445699343474072405769501865525232322001916460427127455314042570254175776481311016400410512747812306071306772414402786241204902220545259746842158966354252336626460329520401174502703232158638361392464142764544708245046014791642932134160407306631861935885857845774144122822225336495716588807991605402319912357537167903229013221444782188411529704485537720913418940050490734151484169015352814593088709626836814795582172822178523766597191204075905661689187531599146121132284522589783239367691213522853403455594200055546258163392177664617608837020941328086691114303049661339297219649830772167075975985634049561751161299992841728292088760717054691702309788805490079533586582604455923439656066470442222660839443759396269086426479474854629952666961221636249346682688093065241918147835663703485528931744959049454356260941768669411386269218260099334026195437356975856226603081550750944044252348824435559853337126843479565323426796659890289476338406495854836410799141581642009869184291583729090977536987715590687690469181471045798011217398570361527705549821960893194107476044496592485958893893640123554098810282823205568988013150798498600899163051708408037465449916056291740688091850521490426414775385809180292403700050195138876839401010212349679244441770256445595493851712893603273667155666646626173072274568707982688937286002490552209700528070546398203753428354221539231678086584728275694086461500813296135502715802529800821323722200042733810756817225459895620236570425689541439885982947625266933791532613398564183909265283721334532703183537533224921428849480699163294610362510298878981109488842453627103412301642385000563820454971545154374568547302875786303827561416688415238752485176958360001446445956048698591259949289047251538354108384946625491934828559162341176655527345496433711720540734812668600092424616590584641756757225022182741446517686799340096976124256225243539499421140779634492901726930430098401901386214076004881370408754771549062042996312651474406138625785094146410625056151517605293429396768844200151390076110025529227448771949955948862106073564673369978808060966072836097190717357867442841128212925280066885336850636007691620042069035833531853829237877779568992880018157434643108094843489454262343122209086349816110230108952421316442329173703493540330131328122539391117047142058668899503371729142335175700296854064999029916888606762420717053506984524808289238762726716715259241437273322546635459994633631139583783260872194914385555791121236012580650051755822178815413428797928529680522875906130590017289109597468528064485330212336553661354481143199857575452429229372312835154115168382362871868272966521122759096235884062023749190271084634695926118758300916976913405645078675719482819903521115653914412657133920349869575831694675061765596308478063633566575576822055473009628937197214845682799015457411215609298490054293403273306141825992947402954000149286128356743483602252989624099505539824485423576269170571989983661181233922940294314564140094118137004671675969629547487633486566907323824522663866704242628958569041541855201821526332009558008737101211091385655270851602486512278823279941507888494862480547503227337077691595387128508981166836670442047172473777715419469490352200387426244519612664488170910555570387219579121146082027376671589956243081528910803861037031516078018014885828307380121879844668287415890709459533813474486961521992824977571197124450587317607159887985387308567918895057700633141732775470373386531011189005572927500827953104544637737471759990818728319140129141251019056375809063820852177713013728052872962262870708726187257371908042313661367281056044653285409752642208458291284120194407449026849207569948288528685813692601229149632809915256566265548258268410562712076236346821333364784559707886227752357636099187753097264779947430759135447640712169519396522977814402772486306803845104552115056991754402223743365861243528902318086070597806373398196188384810355260540185577015780298548752504681665904964888846559600723078425119661295677183530479211768275848813122401290368012780275311976409748156122676673474123852250837722003008164417792995521809286275848333077960785516333205254532479799271547849774223766133880544095432915582901234632594951978777491063935040152287340721023174551407948574757064560418324169339677586930382683596085599575014201240008158328987541076040734572573351665216599446634108113939680082677353372567608232864653985552293173733061068706842857632019713189159810455364002002819308260180072797414019148032548687969534770959408740465520250106612074957662587730065102136961164321187214024720758293662696691888713487668179975869273605609215199349307221516755334871511632275598277655037975896417338612103114394011065634414167758397557050230377396494457958748384137028178969912478039763092227004147408945902196073788448001723321874647737096570654705429384391787822492661165745041484404875229501884782047089922923984513804157791974231651327452205717219404105054369254166817898092362652076233653093757334333337335651666211922740445238224120793907022932737967386596595388596237107709236420019975928476006756431379484245776937107551619192093248983631896084489263753547875047813186191987478205817667544153423577302515041425137259422684443558883532387944571708083326619750715421401684250860489411227809443420038606315520939004449246428524840685455865818443348825845460866935693841092376002088537257381670841831548862172497813296062541084865054794021902513162829354597203514151179184375115184901425308891145535027018112027000260811644092238986298960418503905435702938046152808242071182264957448320422331100102189708435225872919047469673258220219144433052398575467125035910345265633875680681242890219345730166531511008650172459900928829110483028395030863791340290875181549058532286798171937566934734853839650975713175690745880439494912487654664133657018387955104230981920649977842914004391524337992193339077336388310241802373230866642298289541561846039146091498734148580281498671561272196903023886370147184652171571481006608221357384557789972891426000951787665984644760576804658897308562720403530935241100462281450957770081164782240063809016565465226352134228172682534478369510426715546222625617846279438111085983977175615418518381640306147489729285465552392407334824192681163294144652754080176398564956532796897383231117008146446657144975541453596553678056532608814763827159254141506913217372242720631234496355356867558161930155888182192020045456610800851455791149588974747592562857727284128932932901282590007746419702504985062987131879438142618454450902025485108805013877341380085088294575082587973085379124951655624720872559965006660591154155698677735278956852701200002630293128447764384734420266358265614407158410064737667747323252987097046265936580891000505755396062327108905005847778096862756754872904419885142590567030958217376222429422538469042660025866565478665687741044277969531284695970821228301865064359099472668320089917971207655755144216444637761241503834873088017595494933383031588729739741339832345327986391581175015468581585241270270080337265448145756185644996564191189009665923083178510769399730440387501046811161313382393578553426683775890264938361317568083170549451751727222737976654607869635221835712349429321989476400523579628163621683443539905652972930972777196357625490038499521213092948999555475067048049347101437454562520052144229944306968895866646755502577836177613281161708054907611861110257711038001750857834255701011615186276650747702222798686838868284923362116400293197159836154789800499855984928927900564555021030567542270376425790405108349010859269541083006685788740491734857213764806190955627392374786294008370802305340924855723117062162233897061611652380518856926040219983020547143197734441873572144125454411175784651160408036287102780455979158475295625260099242268554982842716980354701119894840311009502291456973445628305720120746409879517239180399740171287302604354456816935622879682022455287544700760539583758907960237968429921897798270879595281412850220143928760872179136922490003555742676543566720287481674597904708724269414505674275223628213719633140299869807259903128629255166344053587292891555243203724212616769717069528852693255713866967116208077291017694815392985126417496850485889053531257399429612729427891049178469908437740767844277030940653947367582772389038729243434683221537088624674568720613949076735092521045335211550745098875909210441987979027460773842746357323161103105627932435231559950018577420615759239748672910145889276763971077281741225777951621103528462658622937398136403405688374258482411689774195333281033949456046082699101515878467911153160041971053876572470480768954242041209186443245553281438068836407296155773977572492811455193936149033602775398600569607054888429342941435120826663145391914081341389408942510696278981124661644561227629855137695349750671157263634397462928996682726400583850867899728222975919157583729571284498733301351985810069215860227452799296735617111757555839925469966297725833166711132264394373076979051758191075199444962971043837555865761501236669422785992216836169875940908253448416810679366292291924323363823976533862288213796302960935133285764357241134110956083567229422673213520481327366640966473026766679093143089011462399240282577395360629145888847178271893938379404838678239172515485412103827619199977833563477919187383565833008733838657909684233307186951450766739615640383639415325946334781830578504254022595787781941280385759651955819498152342263591800000913902707349687018044560556934508172393329728489336272791117624584203537055579121086855752892852497014580472058533992992147829632980502798055575352832412178472455313178746511475003257059318155261156485654711485780196841202014680147348258784363149612623169736520956875653293654111682924094390910756190122035504870365330876215970558795456731504095589086656400624334277120773439748527372118551946719240676854574608529109811289369458961430508440316313341787459805285677890781230399193151760166829266110186204512532454387498490994402136428622553813953705645494107897669246268666757444670902903828581905918937236174041091145769212616729203240297511589702864847811767809846153571634913399409409276921676247278958811878610978392927579801622111585411657352694085386159974956914290198041654277002923444602899577510109835474452685380655980206448927857165097307397243916832524392073119875075467275727665209061404879972347919492073058208918300918395361317168936539711243275400815957699634161637335179284052613485035499662589258718405397945915639216140429859895626035654850447896919079410464721750103423049642930378229620186258721786409306036906267967278995322181037588133709429301088319961466584549835729139059710842550340859579854555193449200705224179795700264099810310058259928342474523948436072771248055285239373713265331742847271561718271081300820517856241289943076560329477594289334847635701772467202142665241873044361408309626462499929624782694087473759641583822071358029188034003571298409570608707060526049000351206125007771925143715267169395427943419670381607943017033988983195891239624003593847809516160570942313054035122459700086247608019650221508897818875824387410119059801161981743475838306127094515858497265484211141939709945865034600429029350786395967169805705109035896100747603168935098111296466136187077031446259544003657365341393433628349338588087905506075734979191862133748745993493097296606934276814870742341372304424321983447527520125211112946018921727565492837945908765807875274034412854302120942077919738105622064286519483456568994112769728796540415279453382917625770556553514531777521562803856699729043407309750682576357366041229839007324531772370382359327245127648375212229806085268265471431407932003898405709379982171645921434240114433488208095455447171145747898793558494649116238183536252567650215856017043574965500736675810326507573062638335836635611203843491027638583438278419313038246745685200994761055684978137354794017429861138677078223661647095640220589473200252327673543731457060454772075098929892733712131934363037210496441725867695934276983299879915743012234231432748689712816349691475572845414069390460751400524976083994326120533144273802963602164429227060549875904492060229103101553310560782125584562650742041312725984278286407159513143160560589042836186068899990678382425425892172804771685749822983772897867457552252505254485720617860932341919752695109186515570373289943967484356431011844410510606890543145297441688160303321251835507323198291760670791280859942250697306923674647945974756159132068084300295284056328556640804175619876182461846969562636732489566935497584676462248049560686031438566973139274164452163618929173199142667256508321100222204767963501867769586580998107214242742947795419870856704272211334471335231146307734642178349663438226593570310886625539633039380179424160789882105130472069481863849203603273710150900423641599084711159378877062762085053673098087507954072114831977761310395922201867926342378160862854571327006057474944405984024826525325211887534511595684200201813755854746689901423127011280446882627986850134654797704506756713548029255086515354696195708219095016694399765558112927508044596598210738434613241933288186614107302069294883067674948095705371947874372108602985456227922850567620731553877396479909625020301778852214677035355820321257010866629242800001187512105590186716445611010057453059318148899122804467887485337259388884184520033857941803555938397152899441186835323863885895664964121051634234486880819618407157084372199841842657881700467579767362887394724948669759986036191329588621199268852291398167845735820919184106852044847811051630436367239664458493034759836199599970714051208092044829355141758475188001607770219471435303473475321233014770315282304742451006665622042952686933523230335135937062080212410004790076474446840167069963203405686388692485736316741845081418155362055110301633507435993201549179433509335090269642648851498908160156469633236585638652183000143963008559820988996812688025823857569600293240518567041322752824267271415672793863866278176744810704100331061073138430436265364376309796160593843435260464878418398647769901868377963321566485519802588794947596149576951738124489811498668199482950204147665978039231604126583398364253554981338965327353879880159511601033070830577030941848843269036506618771060041472288134045795738071012498764480443776355995000036559562420797017754441184497999385221919498302192015868209860252845405830288638748318042597080985209123657766763920017256443825942964336722063289151494953683764318899846976257585307182211890937177052273685624734356036951239280300337615213353350479735147710621210155441353375695183123009478625844020969756709861225044773257059757518366287016792289544358113751433152177643314560943027882735901174000720541290917323891204624269762856414997843659930922656965283938024978934603108461666599096941521298532450358105235530880503990105722976106717769239828099296960296771808854285826444630172646094263460635755841309967490517569054103513269449058466700027480025502540212739225467327168178454132229196394034907844804418350725014490059113601187757178967068061466835907719205579923262521302858563829978731989004736228531055794123374500196274308230434464927311687045138877762091743250193031644205482511274821696070338156352178511393589028495318448326886312745709319456178316218926345939958310194519173693143211120087287845528957478689793135323692706010489620848541910191081042661029378191037678785329288459180606128750605027639541851917980721892038072833225375256191742847773139255756148298938489985848422820059689724055523280011350063158661231639739026277895852393465455586627881756028089377490196344682328035636959320870145985695511273606175466107020582413898638601032880202494387067657397123408903149189549230352443894164385598204230515981895814986468713894240875548160919079658585528437552989914381993073474316334599962626746574229960774365705220170878173638747219758253203698573805152953164028293642051479284798570266575119490517195365256212901276849550908373705031395552373414643208934971854825674451797650105544973585906262710326528920160163772291085021203868206021487427222708732101309341946706410869702420094161648459224468903198944372030504319386683789739334093880924174544668321185647170045306583494622640559866987107869762900162783551787056657085066365649154633240573200304706820541694053485286701352411751584326623350551219922051702472546322513333730871319971552518065917527672251437047849674468198754144802196579442184342411861688247455099810390500424574776844685153351540576113974421239017704963995311417872598473209908813640310212729237788054333098573602497400509839807673599062434416218694975804175280765156533284907659993325308500243765466436102294535800493249113651222368115977435583964048326327208050796528765481843601548945671981720662250214959017577541008770018980866047439676299123267306898688998668042549480582866658133890253417529598057342183904751565651691818638681712294815995362789637164577986365409183199062114366462107556517825266432322786302523707610271416413345009615914397516582174851329745397588198925221095855867444085955812873141088492678966189126858595404953358869327438965556602646845970567839618893675711012120157097854656810379938223662422765238311028325358944637165469082062532775210309675494022094003489931106484157489307156682063349907965045877932281476965530699949371500652260247404781990669139342799375307735408165047770168844379780504250826989707257866777910197081422648567701011044758560988142708794985635812688367989752530185582451702229645182259745924225962285226841244354348245270783292725385139947970508347734569605613064818945451634691772388853912246149989511683345271810043186503657666695264927832657748126255466399582009938539131707177041901953334590351028967948659563281190138130027445167361887188785659786028746571389590430831354103273208983740629947059408351515036430757141883052611610471962300300513510479759256261537982033396964189201426700894920954091341982599337594875962262212773046886025714526085109750345610701825065418198687253685465690168247114061639216397757115661127389615558133217063948895810409974094860570133814228898573121948866823345912535657293255609464690182734551185408605357971339045786295479450918260237015808739133320318730520178264953534352388393262749902716002335758508006280726276631378621906428007112776246110752643136016987471694553699972857114991543516162993568641361244145485305708664921901941017745981867334320669790402674858800784701092632446363111316604551058636294870630333568628799177579496652962071035322442808589340144424591018125084427358136978885901036889422117228876131186918839899407131273769307390130711735676587962551644643335144996719559277896777892244094115575090517311263143211141281979955847949072267454636712440222410546368604934497220064742038990115448236267772015454536716544009101092804858268331209995237535811615838719129811572090649704990384848420940297487374117636584475254791030071420336590967722025403448080443636537321522847730713429036811623391449889899797872484302440379359519799016616874797651677590423505339348522729044199621172230218541561380094025457137490884802263518308478323069189655989287975195114236302995759504659645822267234790660112706500438469955556538179925712789421612804648354955096880446036909686357361709639990785431787653921861060382512026624465287526993058494652666556832183696091559082518729260385054892296109134396385473733060918490749471379612730139341625199093304342395904277079470231623584135814209385093893185626717376043674704305781238559114928074699037418550645388853028894395619305196975711122719475120727694314471351370620644152185831569844544137291166942872909207812919677418819741041183956601642068306024861153956469419568638645259052580793818779254691682454828715178860057135740669195312223157496067762579803604981529067412589836570479665157216291038707666012916827769165914239333512737899917915466041245816266604510269021486724842474731644616605212493834300615081744702465949449205898126748598217857403574674510186354996085404356178842576656305118020712163614577889983643671016657025013501167513919003674170178391362218952440144231113755207999118756619404406417507633547765594120204585049881641300006633497394302488262630793397884672094297839745418931120840825292466420576270781868111243209636919164451587076303148158399932941765533002395877658484266729832674306660131489833312849866066587522571411160575667521698259527940729994978076691861221730362154789229423684400169163238907077390221977802639323536380040755862574113030844097604224851467734928738633144589261427894223631704644829900601133468464914144717839915657317313224673575268915983838330379678654211754433786422773745414462570914014661091654569122927599668971433418920427266081429146562934806583776114022707936167839765448272194773797584877604832143152112953298694246607527384031569699430159797181788064742416006508727711489550940186683312590066561428904847169785410004385340120512217914567629719351173008304475607224697416790869487815264634012687531151720619729046359400876351144185010737262756849826320204517376830384421853182741664563260005105914475675531440362407979674676528324567434486147232826136802917525650965809429052674446708432300103768975600392604114311980174139620576382148538786736628645089760778002090315063212060789882789820113837737363194650219817484161947384454049430081092789577339559018187606798841888351866210810230276867406064030255218760517688009861892922625997107154197992926222207352513564373757921912904313362870758445230168188804269499079695767076163921743647891331400625193022658337195657367916747586875725722846346967491976760495329819026660102507612357463402645576215604309401913113239959635777893013449579104849381932488040215553199901640675487012772571301936356943281438503786687633584435662040471989836864072071723890684111161579181466985207764060629738991296039278667966049734613262839835560823682081951751320745860106539418365412448865738324041244874483037470655106469601050042047432115416020174456263507281904860636229483373034360231195564347497133011950605378298449633664999386010444278104353207388103890120959894192534684959403079633681305692454157575768366845688023210025185469189983896965634998730995155695558005567302562786494757358250664125365206782904204999467265426839521470676154893626056142232621512635561853854246079289841348811105253115824420525473899286291618318911136412285249253073523908550111363331851337117352530547359766107157901713302622012695800402721897573018420869328521912674016164712220113814610361335876417560497704259472352801918222761421835145170499429293007704530194544739528924911685907749224313493027827356406237006254192202289516244781195258180210267299986623415576715375713911200181641826164431099584085821452033744268246046490573421681057380199486426482849850990416274230283496199675632263266964346661682793198726537030479661965853325700705892742130662835536832648537357158008115974282283189051165346849539530325678398935941527953683626864968721690790340337263260990485353196345677025594803803774922721723437857110665703106241216678611893578269955160594773617730301935718010543837882214961606953851612752271448710504246501562951275946559192158081978986195710022928264350639433212386906676698261587326155643034311549273792816651406393695112421735883416316731352327129388414279644836546575402964599171511330350115405604883232241064111225152203408781228277907243913118383602214582013288310391431771314083508727359408649519736979253072173964146321254114636391644070399401324016494456901397897011290173407752367148563046329023591448666087817408544519110727857176604501558703984686318908326277814985064914456779365803732438153975076014135984954327697168319185726222337775836299099384397165755658740119429966994592351248814346687833232734646921796081447152299030685712431838979911936099709357237601758674157924783743729237381825339387155998021778798206169549852632391987131497027293904887712610515942673095530600273666406070643585215823911111648952498970752528525512372054643451975542131964735570831983034469622018203397320941836109825526326175048019933497126423881757292957496031735663079962949326290560517774787373866053593411988458332602030256602158401107003202945236636958925360232214448167903273145672688107627122609458516140496554712989424020048151101008824387699956256222010525626240255137857083238734298205441370724928815010354522909501300775054258733053627413002563037338441554644094322429312726803072381559661278162560239278504566176683552338312363967567260864306697368978456516059144306648982680784521932194566545948763440536320056157914699154100318429613094023100415649748627159784202083848635234889910179449437812575131615445859075807537669578113799299270167310774539038899168521565250948682847579531612478944645455262309082929175825551093104779191920777999591592429317347716738385012520672741203089405860190803275202492711649242252483803590162834572237524441205799800137283061122058269917877954852062976438065125029873883290909781567541603828002782780265078233917464137314012734152108670549909823466823783122326278521631664818373003172093977890073775176597688339146841419511352096018483800089135684139469025430576459650929294901104197666396290701363840517241354756298060685707933432810195633492658878233038448196473278478335051565663157952567683186608037266413382952417863900334335792556732764440933782821560177469382453112650927614112434638486189914199277243701961622796545941780624715402810546832976881699528356587953769278265725047086683685724615787494904416781417109232937384829818428039301632493722364441076605179449750603789616622495549772218884584758348007463457395163634549834734310591267975100687604234988930818973827111526339090421231252682107766764474746967372887770538936690333741118350761223965681761143866218277617094704753001637398665443867973185395038036489826545480652278272625563152802063571775841147982287662426879438753381772407582771644136710287847140010805663160006182541589386297355000546492595887350638704150467190997865180260117707586030947023834366277372778129894112551848935389975645847261304971666921660765693519974717152558275887539144549807533948326962011017807551126764733508128491364322147383050640446479874801901110855427427464702328465970031725082404834102941397867513421644080743276503268024381584929772158153745460003854731681796544402769980095590065455436878166522560771095406166619610336680684140570497900720430376572769262368782720057262982816812476735549728345919391410276457081528121949184106819633374104074523478839425084157384928296902668760369616097928026194182606070591855430631659636927239242768730777533734100765260687362087317070568785190621174755689996726153096733169786000269580452730307756076544971537298979588117946084315190002423804403515028332646210757947482264940395712183385318509408910529920089144381412644652768248962442713757806826193676392061710606669792507036292188802956943148885454731901585204464304826203682318170709034834377232580431316296501674537554924690124757343018650197362982382519086301885423699704129772510080178228673721963694220469248542517394660255028910452056887593605254440826299544574728032958336159662932971284978685860790652043247914574953582891186772672263119643312690916336304786550989648028064862532562217469823315187364328420761332574948950933974098501722484157234765433181181081608523426355688853291025646627289356811389493708721917347310316579106476533418207452351802113235535821236134638911289516558131533564079222556638021273495749183631800358514996751747251155506365845404315289035783520611709125941396105194184436465556658502098298606384247018981111890927027112507413974273606212008923542268715267364424401015786821742030808849153921394874186470192050145021391704701708968045127666389206213572087620918446332671276139012553863992728615137612882499592801737715163934188848121289520963359377186213271187271068218485902495735946363022828372197789041101849479823604642311860269751334928295521732143222131981937242759219879458672387772190435764006836343043465084843172305379842127299318952770569827551632173383723871466227645592306926904888376304240582072593582428876569076973416103234964149193526907960014433066166302523195891025368551528050118961697665873097896565370543225185838234486634815200353766044103875183292446469750503847043296976711479790011335069372213919860056303254271468834772090964497894743286730818651934562446810792322153747602409633958070049071055640393500832932695547044284127379469118312367284308947454622504395061953046873458009420536015205997130392258256264509326799010457001166768506195226190321564844834652039573767236464542400224183474886516953984153280841955051865957980135598546486059605352423969606498782361838954408512448880620930633514938882938078256691292617415336173528220796766756077803694201495322209533593299741944276147559029149467253263780137812963926994643307572610554569267252344826896492507052827951954003293906076854798606352790524454200353490186791465005396416627559235779547790671713325009753568084247221184860257870133477319207949804426381360444049840347726587129424491503464315866575575234639107612345284954246493023935341788126314152747447233850325480303315196715365533633147109791484608672226816397124720777154721010492371810711862473882641225242146520736249738758572848450318290496546896221111486622269950858211885254558933018059823233143670910438179893471282655223070696246004143462203097743503770701842881521309759873903683573977993519408942910819517218756501852977189573891024244044949828583000351925189543216950755924071918393976303424673184693006994215509987677772161065087977210116985536338507972165931551090782782081759643685723117667435932564618884193932890014810956011882445922388922947014116045830873462636242872844157990090036831762597620645933354249502953300592448732850426957196272266549079240545748973229784348308057377448041682643260389000101426851821760009690659466205731560584529605485880283139180597481190580841829968310801295400205743403300575350867559142826454694398167614249961513884002380417269780525658304480241378668638866319567099106166891077805116862427351771469656606035261535384518733879432581191983702033412578582913468621081389329765842513132719285594480005718510864209958419268690054579981041539192770631671819693341053736740082688165932434773977494905514015476576953648835666499289379939657585666774218055343738053983071195934469732143473348612933110431199019954292418136266598275971911543431618339243565190431573663258304909075447575336350998213257172723218060023813376320369778518837174012571878355895744935126154439206326573686246656577914312571578442584893831323485068862223935623482931843577401482198845301738968583178265448746473938769046205607485658501959374429603960469812281827602463926163972801492526570118278305173485854174928363843645888903219486436808499493306482136411831295205287575496541502478240384787153554425901543752685899535583691393752712794517079256154399618657365093309722164250596748934519519082869486881990260337623998674325306173621227745191040914570645214479587645334555788211561185895260658920619912783280599848235413498928277032298692188317329975729113587154090034431556893508604816000333370818986799128661289211359211980391505884970402059706315529190933355027989419287427214332991897327023924802823104422889282328568209099910609163217703570653583008954369238983726063571149425346521928309890154959937662041900510859494877132255980026302767735506973686131583954276539876867109846303007497284895329885272636715810640815503658917081062635122577723894447228566645578265152783165011591178647751619645857162555479136469361878030604810051008508344971383302209214883002411386355834811055180121326711858638402654742520165726487228880708370008093869997895522390012304863888008597972806241565058642923294188449791680513842393322524876839885488683911655636598485987577365607257687963788304150298155761109422810315020021685527027462584846051945097237867546830646058190182234281581022518619740269731572872767858267840725716858725140179780685320392228048236456578555433269089941211143150551847068632648531935567169256736227392059404525975740380702163818544570851582050637126412545664519829200117339791315689480857334418508924801259423736167687661150805047341339751356196776148941061813995656547015382492244803898736975967190057782475590539546769490670815242856965694907297613379320475179426877478005140820577875398399204813006610967982891495291807685095577033585879490830228998922497385163458735160879997485048694814459688233505538984408377777611943197792614829452759044808319016775678258318734171900365004151011079894241606997313051701064423926025291390534036023707848450382895280170321250243770703030232375779506018544123638203408704409450173359641124669101971650781693696856495649248316823185676485703310915146162906653502791949571947430885966536733209186453891024094474908271514316431764906633511924253373499709739954862430229392062626323659280975421565907696700052918737388546055718378896522451678406513647834896286806798015525716755560592141317770140200666904472280905679665838922502271699888408731747460759918266855543720013670115753569260593486695583831453129535252555160747634628707065441852855007584873463670304076424323428416703239237868744291071152614796312299040018666865727516986901052701993413525535760073634432896326513054287927152368373212804449087498741842130909461939419807302456893596271762519424558756277486104485956765635714282148979861881602971939063179140606184786138561307613337868597385779156719068550594333410026803172090948441724478094794005218712545973386640691456189615330837875620286691105828896398480979256798296568305161529807344892274722654443726418110695384708656924528474940645471819911395125295759599793909415110199504351946834751553429285357139002977703457073004016865782144148701501915781983041255701513323164980692409750435207229569806733597199071924317117643232663737261760870731451982226084371415139836332520647697042516841860794909363076044343014062223818551085385880611774024522724351788869717088995146812380135301045451968028636749586404279343934736790925735031484015941530886403896444691379088023250881238092886762203276439558333717487791988075476946492413354886094367488791139989050146067560648154521170184713266479611703146985567282480876878747142533315921182103245886635087645900059446512110860034073872412654963035966719193724438128926101862692861851542737564079365111508074124448983266884064060907619612170867319199981842077378786806201911846724395080248307913601912919624538800837962884979500408477409931343752321568677483752731453059326598465163294128731892576021587851092482251406504932203395062818549438151670438476055391570581225112397353114551657170487538039113678531368951994484759006795409343156652337870392180646631350703493554216234138390433936473503407158097638455338759115643791440397115990715631721775147228840124384917547115860628108968648540657068630141794262955893652226644553653845222273358100555049554893420182639951844432281299066642094313471714953347269670838629841394313264995729804761243497861110291226204381686806332957173284964071520113075833503958442694019899149924885888764127288870663877594588754291101120504242539948942083750002633112524830619486525562307423197808395181806115536261047954887546387758292661933549471274177200453555431129826974622294253691315454593692587834479052882124360004227335492881552811484623509937298247416095335575874384202129985878953171377979882106431637167908291208073908587144477094028693405391778726555640721642510781086006108263833009954060231423570952384124570137263094409735299278588493343259163911549522758975916113086116868732236299961697952517325985514395290182291887856461789006660026785804491970297955906657001870412699487870530257675236525962960311377258747049274042747820650150866168140502627725192168761888229149494083749817457818713306804274404201845536189744585676630001552654800821349820202124940694520386094842416150332047546492351640127144886277818176225035483405681942396637372952292549720288258782620536070020690375178318124068801089713027471874199791572471906658531851144004607047733320955621692466393620760943599616256443166262254343635067430149663303554780749124757538884844165905873700739244365162280293686358255329522532350152270718282014905133641876520791382397881836092823352208983840822740951471502032565794833283901689979426783443675083533438116085290885718186102754536178403585640570196670631202202240862522297990366902834875299208829990481817865847083437068469158814066609327986106730271676471411455425966764698874958684697494352138849499728039473998691870350140882194615768059323558191262264403327235033483487329502823602272980747391348449692487476005743470725696809736147137757685422005949070977607214368856811199053509088470011018713875752349941101185927984724562557936920867336751903970382351552907684376035033923503809014766528617585188951988480508898537221498103107982205683861101840125415793211175762192406209487761664505652653071080358022991334932517544255007479182512635662854929851842660766259919886279245393795734034404189782248059963558162387769080452927282509660187794992349039083622970762903855571042965984388842012664280469674554209999241933212542034983766800084160288746742178892468867218470349363381757757587693775432695040542821481121878378627821305704344052207819181664174146794116473329776758742704663529229714589597350333672570982568327785999144873685054425478607725772545183135298922896281758943487907630436288073569570915803617052319933848930356946834573240648989294497331123892486190130252920396761929729981265603883592807412451876026275803768090848375407707814537674513106130718094354662824817626221022837061279254383131726554667286186499752370631887564404392691567970484978693683985279734279489634265543755941713915788772404608595352621912623922101413111009349095918837306973588065955659780560922282032893399973373168435084137770065522337369142023424487118595586974596224419795769522239300211189761919271644026012000510761381482354292548552484799360974764745421782289154706726952021794799694789437543229641103361258437292212521542722390063270403205856168700641529535659166040878668152793034016635191788944713732708244277036384554486603991753285983215102460542802635399586532402953949578075737867226123703384824708804999877773356429725080156094401620685342905611898360504525054181410420093812014724661663129880907309335879979298237772685016518684497691619529266517541419189262553818528697946682405420457156858346577381491050956579257585958785470325348739572595335184279319445399379539271529486042624471860738804020654114284364352707109923657626021264689496965229101914907017011322399789192835930469973952607602979164348742767272417738796859297412410676067386682933614504962924791480906992522526543512479007293180875902571753653551208207650576290258517285997316002071259535210762425705520825526937269155514943913724909778393748580066264950011738103844438121893376331940489809601322649714967603951342215614472701633348207307553133717703951206765355319552321329684654697893086744934495662013431170099466787469066538000686785155402864261536524091037252567560977553097853061500876585049881385595932095766716663154873078511160654880790091731386763063038358121035305402917234397136727765808114903869325481979451692674551643546892219211665401097947235655977547882558299740630987236313363795207138219405879495464619039344793401642529469654956954154766665012819798947995579173180358551629932218549444902735613872924794644294024669369759737488071824921307345589986601058220651419846186653572764044764400832022559118147655496624676952386249519350057630211878953604356916819707897586670665273261120292529285615357489690862347089026864017535108003944847081848881438453008817676051068235589314648457082608207189421314643770017951331979231760305610975464217379101185636677776302310456731505573581154795432743130996242772673613173372479622706621311031333110010399970497108606061797956347433675556238251977266923233905157542126228723429969993309907298228418412838519467445818091414700200363004025179707197204251524356306440174491914965663053137394755700042237015001975942324535296417781617092022745678849357501967328107558910541158436610402446064557378078152158812076865760682482552367212045769722469650032168279937992269512511424341748609538273674728743901820999763656639131656040711742215623816810577648289822459799493847172100044950982817296646054581175136497650133682520024935712038882117260721683269319219946631388965929549386242128136949671903749710717419355189753070093407636370805241392892526681147225140993621733008759267212277766281330684869005639733164955647841374781397300731669633857856575381904164339155312911192565956561614445586476795393362769890096536880533188812167460024732595187865632646390481271429039926649849267015338652974295074987992604726316908828471952918632841721999111340297479065213316906989016372863660978766092906635584173215349750379817089753014399698770713787320726644715501698639742998872868164433354523519061299409967785603389176841374489579320846154531328911451232648205003049426782485869793040192855473701531260506919699316933492294119124130177275521947646680477112778587395898274258513293605078354555977510344997074577196547166293386798546849937397338553228587825189857454089580824055446711101910532301892130254889408700544505826511531236299425522053574537876871453811263984544709973097287123512152628917338666363280357212395520292218575801498778154742988510498432736349038276962546429035710823122902356792129787706766370712087227909836666503631763115128310592204688452988697953802534938360283953567822764861106644859874046381076398407543764107494159826585457253846069139245031405509444482343124976407168304325469548716534454839703065404210935172011978656208027529119636611736378215438990406898834247734321151673767283620446323439664625060030026298407815014878778954745442836580175345337029479681960616813535072673519062484086477952384993274820991485923727628195674188601626157383158653180052873441454472789408589577987169768984564406355808247635289965924097679462687774085866987629061893089760011193830499817628638413901311392662340814653798964281539661051939932584033802014608140291617704432460097520611071549530817172465268777052682350968627360851708308144302625757774228441834841704324227720803167376140272489349635445039563985383708392627891227832240880288225273051343381467572349373091642970036898031722173949123381219865447489851117866108487680777806623514116347529002271848895486617782389111013043098626351594886019245762550355073688729568951312505918376466201900892035632151051077425634521311516360133931035384575989765645153774879261318005049592350749455838354765685811031660813481392872842340867775930469265830863543320208007750173809137617410612046997074958482220967745474919500568940204696234623056429444940844401147028770150291089224499107347401729530841904924095122042740757660477082420497931307898011705725670128289461640036687085935296930590862284667710505347857000365841475893176825576525106358697602270720325834127210437297169258279139453439862450915381855536662912035136083850631555941863452544846353803279586761894634386331613082430763785961947824466470058003674197521400655028678473368151310563965319708438113590353947299883448916897133888370390762426168150700498837124474915924446652981453920987442295886572238305440887503868703133311949576619497847809989634243364387538466585021529677643118362454548938030586546487224491599290883837298331992116916210366275535118515470111045999605685120336147179953334269608714430005811462850953745006200847721551337284326258843087106669629979508663532132594761958392903153911105417585074675359893393030283034966165864974605607383376037299725657139478956060121928885090300022841511689639988127209264885996905400082412101143263517734524569802058235649642356209184428699569232356433499871435421756151501283397525333831676531321901367553474061428324228901574096482983556160702662274244047056353036563266027588134373226519113241430593969647125552402498473389739562687445972496910336374601467735378667750380164091187893826781588332561876015032625137677841386666442473046772904537297825405515834116415274746413836341700803974856148552517170320975222711778875079123361537979195565096043572552964200774105396929675493866582414474514626112381574136738976190478219473911664510953023008477562883734986564063389925298742717102518029679322117118920575890866210360081074160459593425520224359796057569287112128520003708537794443074675249070505104339013890853608273634726509604227946518639560525011375684151686166606883079354880655365554077419399569040866235802010897286668559068969110639310236837293989184527847848647661900258476060705499032383167107369191987085247079940439812690239946903216801797506754513897717418433569293342668597813271157004925492895392974843509661470301247137450520041891487710368993364031122331569617431107488474618466915408332627421636317707682110394272562933622416380379247394877537431790697990595238299820082668040705477924790391598526708996964505685136854820641385741727323227769703760502869088550957001478269889692635702213124912621270286749371375720841658109433260135504576245040003669012657584895846584541348073743686396762592934241556728504440853605291045032633343715801812580850223734350885364229281685981858212774594731555515622117623769562533158557389587460114192559902749774834435019593814010791483425627022241773112678943692019406455978710655426698650364772840409421350555717670218192136326730029659073839186111944500687467509353957356254050487034027501326316709630636943400794123669430613156745506463670972825362557737369486816231793032072254847315846547494278260427817977624791241677700200658637625180583428899521920758934414224619727434233204174363161447753763488605982973328783450791788483194290079609002001401743151425729264283189330772110973063461167222881347300643065005259812281449305083797764405324418363845497616091376315761947190371722928845432424242461487656811300850365859613086231984533823868662171419491345582397748819086196247064528075489546047780337189231349640730187201954115031224197440251002656133087395486094808214067556104644681606413605626721527126413408619571236587601684407942572103069223803127855746913356120385430430593189368705238875808221708044875843924684924125902560299767592286796971275525343479564201775365564166337495873293891630344555445216766456784336406480326189469764855318435784616355705191241195559786328897042932353940993994629530550095137150924854925162939368042334225292560569640066361330660287567227127326007144937890000840272184339118431413124680727207792602397106345932661189197379636044656968629077566370203260868335228086459581491485051148331924506199092951893299148064742104795816825890265398792653245387039453382688857202908559715169089745388305270136966515142480916863813652517055996807893269566284359232307046950485436351547683426303598319599890267648904241888033956830906049773874478102297381656294032832210304168538495285992475607585063980556881140310633994759551242134069382428827641835202316078129413188396635366406939485851607527827620523612513932609282677060420088774267825461810486487010012764036583145124264968181337744354765226563527438136819515303423976132233935153686981709658129659464099841338412623727949172831273908297086707931351898729796384596777149917920843076688269245745660609328744432480092545545699182481903110243180640270996897582735216243548129132803453672596723184491606352321127994837548691855807164240305074686827245686433386562632320589544555513614684733427531198873431617311389748132103772192970980745071302998191631724354840489603292501982289009867381407548683381604633513030167120129886954878448302455288312737412663196583897198744944822139106052603738937887791755524093879172523558205415415952521484358580266336097433244490342968590529237106058701364298333444405049112164844829025625877968503158647050747756736474214050860196462798182698958751165051917912207967009741991725458376932418233633538758828551383624250759496882357872700352066508657404308395512097308971284474474232145478519719051779278923643275446000732119777284474675999626911151257833192444321942704880013664246992805979583185702021259039124843541300189905971412306054886618645318898170892949328105436666258019473857038566138704397770599709173019165205019025157580013256366111824562229695769295353254628617170806475304928144996805313573012399550806336682807428205983762929992099103055978235090968507688088014266406919372869389099935253018030423084953183513867661972566223496875293493428392951230509527698436018799623374262172862683374576484044838113694479366937731408641256026936190132224327809062901360593721773530817660185894315089582590805698647846483942973364062252996236157776308597233114031199950796444860740315410156683371816761553381454772683628715029653576755509340534770168595191666431964921568186669691911825534342837494114683424568711044088346623800172815675514462450790206960386864934965200653467637492761621714099025651235045907796696106055709958364406094684079452132721168918075214765969589583865065021403829568459788294369716257027325698887055256869731474292683579271666265078512361717823658875050224884504667206010357026493634206179694201830405493061543956044110109193284372506109211530062935304384246758474868818658801288301669766834234210854652335868574030321965787625207019402733795428085024033978067979495884069554784055310079336791551771520597531857221747583988313606147861658927700229928477942825678793041669687237099660797090769248244607472398537147195791495736370161474256528336945232168242626308849418210574082895249965830425701683775989899581422547218185035645354214932533032944812684200217754383675920541999619289307998313445588850662225355706295589426880410594544913534923829613020229411112455409903405167633779905926287340258307200461674168689886744990821815005874751570799758581663517454968870052577969542568093063884346774411334084545634039415424640224178479178267682739198293768956594921548978361278200950773099748349284950134024624642957375267870154188901761093624708098368157612714826871481665646769313648700939346920656710111455798422973140230093982429501899927936729505567389284523628673744878286020221933476966116096408829598213692476810747150392235608335674656572047012490212236753140088763045282678543113140233823659587889512114561963497904633302255585282786141150379925513471795577058519758472508802364012673429389686116271009145791770845284881651158763353858276934034219362641146328794142549451756291306361739653233608685737688764713253571161176827688211012498569840220259546494464405797692533452675275953678352000075520115559401497358858843008260737998369366767055708995934164717081115165322797435762779208652843496870407929681387226421590489196896583206336430605018844275954345000910029564540304613335946222094008036878773396272142274326800868764274203688883658746415277524307911267441471352676995288757730898714732242590777142643658299241256898223667174365373865643464131047874571262958468761706852325391792209187113464687641406036722877183724872817566743903080022513110071827632180956845610903359895988882540571798556093722250893676504218004883468949696200859289203192233864717754430060952277911110953181153658656838978840007064317825096768294072585639415393893970662630472759503756186507130845570635854770022179459755046304182048673699199507698370782661210463849284578043229391261015399511288136477155277587737447827901317253778519139827666742679285210101300704927342697410136886157473899752077954381978953284555673771336402236222918652297234926385308882503516545781396659853508509533422890436120998842368429872598715560811834881791495427998319715843024730132363190237572133006172586573372140339616274835924729373745885247617371497377854338544216531709455600422304586479748652400663304902738585270236165448224572997805296034030789973654686181817913935339068561903561855154618259828115282651980850307692332901210458324712315024444876285628329784956320380038913808339500593199684022820968039821248760024230266796584768359566253652921006100937955323058590083486864388367220248916490367650703181888943542451405143116647219298050852279758821482683972277809968442615957544848597927092157798989545839220418913432881905651467250424680793481932642131748904915928112955171349184811861407471653676115198951467514738678931055684957898793058730241653674002089872992935781957627047849942397750780762132330223932267378278188693330613285958473854786404240884568064702816412387039407491057069097569292907201981140554200315981020247277119962897949648696853553460250375208894469806103225204898543734699350191221000822291190093409404997903096759325555180063125549781288124182409309569542256779027830399827425386681153001601063500739537418388721232511854970746021700891614090773045042540580196789111432916382427254078932917390197571610341769903357551422057601600500659676426354788714290476132128957817511003011242970361779275908258034940469322381548719208727378425862122631692936680607387907886373272242213001155749921643913315554044119804532767263233640578292722453796869462490170715557416187423805105272623644150840296198633522942345271352756554640295180068313038687161961973097169618928987422633305342997315270794463846954005089021343928896430549563530859007054431644821563456353724959139972019230411044380688436688992582514310584151849025618705228257173583734079801439007562983394083578415713802067254178252487599573205164093860896056407097118818731812146840341626019862385192273828125338130438036196866903801579275299702391977214991799037587264183146029117486652583749298566602740519681478168641132594167663038840943471188572975034192593902288883461374435584081555756750947448741319674367787519739450910984717601392894763574256517293293632069948354878146154256262501657720609476953892525421077514117385685117024293151335807735717757421376234251713776973218158399892194567685061291274715702896282501098960973479071989154109727696758396243528771743050393347375363789097799861556330894778068179183687192726322041107795951311175530243608810573609451208893080941746469872077889775461187116111855160288109200328655520353431691118278161666531577705516193021204707356656812350102548573810576877114811134175807589640777785621966883317226102512379340082579867016677561902781737966477019824420346595799424042514399785262166334970933504198173008034612498849718769333860998480117497479327630959788818235467186425461047230600142555857585160779495508735429018315710086082437154770721757173207433418469211783771041323318463814660223540270672995753366921311572781885733848703683779958218506543993314445262187747967068952748530206580828097235168839697231362097054435212375549196424795548058162508097517799405856552469213438282441746273843633453895705710116290846191445239111258460330614307055499461166067758942484993306806627507185477291839132424197204574482555125233637487557176796500104473792979524087432838306676108706534765038367212538490038505979374538771103550443412369928517025080459144890524457299525930107648235642755800233166836393235230003383118954287515347128546252681486389582837170053200971066501069023864270467067741208363051414278188630650520398201064372526090189313974361402538459702407458002102861343825290860003266726889740222511436906167382711281846584671841680726898753592026925165214985340209611696501670034717547324061751845471638252838811110081700325909055132631540538261679183214762929884957848840680610486505413468743456713692914710152393676282293293241774051077455394259619759390913636581522508677913332987968351444550487450167256828062067436539821654514113550938441938194269448278695845413164533090669113381312934022467562548146713357081446448062968294768025078779895002627252947701994732754114598289128362048841716492492870704395735953964114564043683871655703582830175897469138474155986703214479811680520092204122962568918758782458876001635992444866938984741322801834252446419481590914675973803638424036117780357123465975060773210915906007373519575196021140521673023461668059476643207976806916808912802928157187242786740982697638963440937724757388185854915611693290503451619027362451903655599766863418422258920238728639527968831805400106718937082805220775268226402017983299169061872516924470894770008138369875362610148949662757689426149428997487010990254443405274716929838722874829778551559162611994972701059355258604571403534302762715906892714703061484244854705242621206055880787871402233035100507273204758251739840854143229813427615132670880743918113056309573348538237120896234775577594117262309318205905321342058899194862827657816543497629915430375545047336654513579279728852074043612332882966844566952954203069716139342927928622987823011826648965253549196828983244288840661813779037460528669155027591112742452185160822556235391619207968166147737331335877701852536576957966221096339678548874377824285396665798043535410268513324086042888875384868191997624272267377283817134646600336111710607862367834952923768280413089686961547957819067651804474733422270342281160556393225481687465724551893563565261866493078304209151976530354767168794493952244792955176476600722704854625377649978577963210624023133091905882481181172009371749705168572986818169626071061232028271009265524804757230914637450558108535003513203754690162971449257715820656308766195685067293377651201083123740626727689869401173762227851466999185197820529968045132502593459871610423779826203338904205566944270182456087866084259733591946114465608647588564961601108536634400695150130929706257623500803424148846903542821082785223748476322238118775459233018168783004523607883147404817493905197919273646149331415005981164980087027381765634451941674562945765471450276367612201470621172381003878550465401197611606475844650892255446055601965537092370470535080462739802745623082704698278448984344224588940854765570043309931258104947420777617841737115288888433720186554421690566731285097432379124500394895599051404960367229034202602540277660496267039629394224582567820936626509745508969585952411271889668911715144908114442223463794943332059307601264169878796754614244981390536904892304519874044684103329910795783192237681773654202805400647181154732915941246975182821478915986169646189823519404255776536183157883642681094512771600877090549004834566180177915561819565390915436796262632337429945094046693403252199745136729680299308344322583047475962574658358220141892805376150527019032990469622313953606585022052228959091839703810618168619294743150183351534076612372704545693585230277925885746226843973364412801164149866992820471019394420638713528152656639259751741308816421001579207736334689302010643720015477251757137229191248308785117966304502367369850562087281111217028956687510501975450200691113769017984772241520802284820316450898731937376080922809813752751926804067180617513494093898344150018440974845559753852293980151881884449734007091599467119057932951347084404874521096464826626950872400386430382206064860077465127701781109468683967960564296024972307321358842358509309413099158105098334964624068164975448434037037598520513251157356563169607661569433624685107848110301856811637405324941848413829330656433006833808844831402304771092918312271649060881716511145455994769280940041913802599988958587473229643221364824132529317529523552243612768398827095631058900242855320369972276717002968914086603922835086472797657164264514169963333794819106649706120100148383546198124335161824286824568754268265252463551999048840591121523763788363454225804575475777287702556218557812871765555553164446284253291162751582612385417185853575590662954844556262897509446079297300618905532210324099695102819295035666189377026169989284942031770679714002570855997317357639098211418453165888810835012769488874926575228741358193345848310536167048278266437398439465159929563913283343894489639438513975515521236548949994309430632079675199693875427084503761142943284423050063010264449995036987459110622186406341861688536496874354133211445787562240051675236880233359695481468450429737294869686052016976756894678113882942947745316787632220934287140643240233219456542653537629082872903458315074251644726855247692657689951625985397565331787229090744538199750336950298938411946915512605619803034927752126402147209489699367874482209987425359486240108513918931149640000277930893860926747293331304586444218487541248126971045291788463678185827004478921450928828728633541099377198332632580042897148636354826490911478081497128061184465908172563505696481557168252514210328779613467437813565440288800356916398364194329204999228619796783164406707451364810128518432108626870582069866636895604538239901475916715335238350087877540958160505041428881676532546291553379078424641227739787606195351908603614946993746741025420293624598258746845186057910145030228730529538627362959562907116515051286329595630076559820588073512557572431746534979916514202492855636464324302394124068443033988362076854933729781715665659956574927642093034906742951833353453810487519576763292408574880204980864458009093551001714706056961116440520388311284137758998854467892057917031464012799860927811736799612399572776638748306422032287751053353334888927483281943301290601976231481542834571982487730272461921062103392812926522885500582646762360512986524281383987685298993295952587785813835145565573601336504325518116072467349796789233709745161906699002260036212681188456199905949969861398885569473451869369278324539429718375459879087961665032461355187494784235213848055433278288328984389517133285256730657618868711879349320489821940474891811861877955200177901145350478880238649839043262761198768254998405905405676470211072751510763057192028717330914676324784823592674144007510993724970382638467557570367804347604379199433568147568737877694754100848672015722732450609321301114144436838956193940317374830492410741384744519733757639505675814061271934719734937245897627456193688455889766272493044175433189772067574680021800823488908102165987101563380810815339915287160817626497888634435470964518055316886735618132157529929303176656695058055015939098016485642164298714514136057723472662642728308458003459651251942379044316964190151120031072232603970000952089487878609865241000762457002633551373927359189831693345645297846487553859504224304997121314397691353404578854649904987266390607335594575657683422578159704436891921502951767876499613241364736298523608561999443623979404600465863831569055252043414191881526065712610626937673654497240888102526415340707441435277760087256341453929084781391361408586013732905810255908842383136722485711207777090961184214826958059068966525479811018156553016887443143304735994893338363920121346904183525137816656863148256257674609385520268707363490941119694127821391902916655264016441178743775148446988055866506662222427190013978861435501221786981995465424960045771122250950149513172518679878734164921978956197524599333501760900235790814573493001143150658473916197974821180172114637608960422913056967025136387948086675265732738440702509049980588270380280867271169567342026897745542125400249565938107256965103145177521187215402097919603081209638942355050496805973324522184631980681590967243135512328662251012275338429684461236790842414597653569222750707969938568732200026225722578274891428538331916536948652490635508574258578954919294471534803525942357617031452765439453313240389364590802069484510975369497523710441386781501961935388368150921062041024536640202869260894270774723464451497647081532563896236589139013131394028450554278229286095470077910794635642368752255632515246475729616714076849066323897837332575313798524484394447868018348552530524107692801500480194384153359824069394620408732746401796416107559195304130306400260141992797464364484790794013599141694630728335469465905778478109769708237707768798671580994550066730116852958696298851679474962144864770360158066771094562921502673371118500033786344010244570479408468785643860311533621080651999429007274149647243863341956936247589048162813139195482381375551203985706631437700067274107376818600886749825517246025913381161904055789043422423614436664161852934541850532337280555887822901903345227709092016074042055030461620691695419442695867124747689547128355159762595289438636754786163859846377240877810079792364672781049705727544702920223825598347633394177009845958207513536420864609787855420045967159592816718917902287459954181679757335862711858166123368204934708981278221089539507443557638987575626663982209812133232995497003070626280224637616717678334255138995201119776904499269578309433948532972813527089269996305818794503498335601062447356494232674245589024798166690296291728913468356581767066928329170872920857598246530949754038918743983724442243559111344987133995963562538886911528863290523062591589375817555947746267713848633293234831615956402187570708168545609318873128187910932953097681027193942877025297354895692918377666719594231786901632324548715504094584689586006763429695747679515881476913146488423761745969893726768355824712127515764261493058229233477210790554073208749257331043951919397724651432205322728265168350937561541561520182274533155044946573066426065124842723010777971351488990229193068329134096015233243274122045716079488872219653401234776789210671540771294897160411882999532227917631474765550460522359592716886109113870758110431286520297427917017639437097320267693472802556962953979108533574522534725724855841982263810369811611019666653740255381689431719682244597576392023846729931425869577564622857017008007654374014512004665146432691976737725962608566821543315263420717139891201679842301748587030392380117208502847140024426268624547190614947581236661073042876489944371909151829838093386496129375943832790882143663192795109270903524954197811858402102328840305287187060498037724599432510395182870958579676470537470790653180297787733726020971353612185885541913245130697998736068513332957347777102569626998248442436451542215550467276793745768638664277201006310765352618068356758017549369885579399092734666114918326006688701686205098461337345858000514738697115599530834424297579364614599050434801669485998726199712123238932188332998345612006796928312725458823585287988901139187864460028222154488102963190192201830401824648112743467482819600704172425999277465053816029861368467417562910889844045472615706564533838334137087767934258539176807670406596298378190766630743097812526869787513171201054570807680603553837773326555875985266411791072162690610339231522948210941013069547616385503659202944746786745640946297041216363994421565599892133047670901110829629381630496995598014503436296113345970321638965703513555635171658042588165532558714469179014246190210887162780354378479910026432782020954228989948630059876982911638414913227278996147566844507502391424685655875407445464798425732710942170532057556367559458371132049639893339201498993969116127599771075671460487504825240997243403855114788355285910021587278686488182961491254069721881190203356656089736526473413249431228221619085056597252831102340473498996038481869402561926167836994002834804284074529598260518896565007893148253157028889860253856368523507214166736310672906895066617577952860853892772193982024022527832387060315091112541083191794861630355664522695558728615047969390341712173361799657730296562286273221610194811727931209920832528099848486246045549709046480077719543007961140321861460356248841627790627119996751513144527262691060837123239924314305782061119944830258712653006179358084922936291610277301295445881804265676230958101404742817405316705747966931377274838926512978524244683436720714320786230398843546145976166931398349981290429724853337752381780352617782786892895197749059347079039749170181132816083382031844305302715559100804491786761307242464079355884263930317870431860756691751729342478085603676628121255317970212556326243377615234010912289607399544476771635316132528393790790691400938572732034264707291565348075000700485661469155736102370921198285047779313952628689306384970486928678003206128140905604112662996792132066929261568483389613868114078100884044557608227758955414857651119918901579703552748866743468113094903051150107475233131267445814130607177664915126946909945549145335541812142356589956024239517545180719187251628458133005831882867871514786557381235349854053869552347717314396287052027885987551253729012609800390879195397812458066056481273292434886161592670432247455912692114768032663749023582081073233243594699450195990142627959538441383098872175183726962769598707386434687650916807735285728823013279114988742040106937977888993170350381093517952522780385995171209194700459845731064999834495489203574926334375566314196533425549366441337020880854837126804397631214904463312946710763112739270444828422344679711643870794313999397298282013216764312932047599005941927108287211716940282554169392489511995148386681198968207822669481954557158612571541002123321184182427345190741492306176194467090938695363020853455019987343117550440481894033704730631876403977474397257551919008115945363487525318742987954408002400292937449689754765854628097221363419103231060967836003166722061404694874015136118754709194920331856216583684034506341713907930358070962785872890987412329806185739830709753467794361528331922729323804097564748705643924629329842368727233198931318592916513079422083544728460364143448844200993092636336267240816778684649994647123647723115698940479820323329005390891731673100887850413993247657463102380522252349213093556411519448494965338530001387128255850996499225928361456927518977326528047752580856981682660042566858304027884893923062743018855130210878917334443744530495389175970711496510821171854842424692472584228194411369214886291568068912061831581270831071761804101562825514425445465042266629019296103447921638942727239336631700790671924800826707242888823870597327741636826267126938191612354267715742836644132692871984959275157527711659119986265285486094498084116880943559986942326195686946541195196329382892526881533920066410622336809420158884940405513470462933721567663061911612432689087948140942957153323231570393032704938426851734141388147933340155384166066012783472630728486552044233007847013186296624466256543873384881877405143509567746436972963533681031345179549784777947164935784654509370190885526384211435296876380802176406248312920545883283088093185984065282265100876069791979245755622090431718437495591269030589018611020348485571138148890194071643625736094736795243153922713761778438113198515640805979316603915864077149971443019957946121417734380845739798247986208576275997760038346261665637719475087525929072529888144250573730050422116741787683108357715186060007265855052237274118991866366318801798621166479717314682268820774813288623968431013629349626551152670022343096700659150703992261503844661067637131130988320060995811081512654564726748479685008829535255508842222950045419096865641893225293442618293557035611450262132287730807062080331165181633813802165170528701612882481037813719919787352147355432666674461807536072108094208377196370492665884522902740904003220753474097016127818067143522375393435430684140142302514837473439437674712564994616473087763123202724864222528890907282277784801399616491453625078928293262514612730793049120030241096648261328563135729166019148892101425909243508216799357912555123409019487223958353382097791158635765492939058088636738802063885581407576576606870475907439241981236113867040404721942642710010092746945721516713733933602481124032470415785768972462619993071234361021513600170855784795029887195777422494096988079159834361469014682288137965849041158137728965091052749239924393808274880430576355407946247555989438987579563587903314837025355921989359294409293430755136809753582888470606720433273160318115724517760425309550773731001951152837522140029440597346576797575154512637110758132914040784146540177535884822708583121338110613334274245587854395948686203408500574749979320468414233378150040251334794218567842156312445217448224432035645680494933939843240159145864903042562693757697815239512148732249587499256162390550299134407861488896149466171535745194682983446115869358611280845024138418578496898488612689807204656689303183254617524873585714780362342099942331500209403818439797006006129458964286599750625102042804519654779602569284532786087632206563083068577904368314644517796146279055257607021307181594382745641789195934645723151946988987101054168638282057552295184430136605578049276546502527231981475876431191830968261873320365132614933951062136686708720684760345082899483666048009319698218215634535387854568826890831838179416522001017801679030949772369690481319676161073724436346828670477908823932231471194297205142153515880077266324170735747939362060336934267706031150398814282071026806037420683076553825635656485288750135088445319930246164429785321567913911245981309910350177505486482798834498636353492333191472116568335718810602305864903618611201735126924717422084355790114011506727324563521582659221745948219271747038876914476607927211058833455479315111945672451367351381962967397469487389809522502740295304726544020177703510767958283315094891260964517802784516339649596535100654131465805404814017361703409664386240575028825580745360954993836793564680183809546403252408476544166123956140382075595026231709495706066195955567124475168605368338469118255839135092488871301740268075319439047157431309275528643330936734274145038522826815930850935548839640769968259914696525576461807915819995922571790393198369299412087859735208320005910230420760631212568636419099766543226768113093504129644591877129942065218106200495382437643315440953895187540520842724944024316324097901316595559488262698363135171189676238246872988842295201795683330995444696044685991581977713467550347487386653079850678148469543108595120220183646579200479848244510095806049516443760123351567476082271777689264757297374832695228282583337743103405373380763606002708964059161665692316615971297362999600584757517091720697963790914865885324937056642411863043128077552643999890332016261737892904186999776517317200584170417562582002884676142772656334187855419359758568158967244150283719150927374508044758558888842454411868594834928086873736275989326837443736779654562553446425649123505973978430027239983705891205108712791311132009760870526278254991077807052846400224875665318475756356007274992872873582903031477296220579818069775628824923544247102992684367206423742764132882450507361405763743560064324785490758093316416817643095154162120743292034863735544411438985532992248234099335047905694983907730744442631777094448391946995981297971790103952857166729712459949718296113754188854658927931839239012216710645614949836122930810301776182007459191933569474548518194341246021447187740664101564949984851604125097520459959834167748166002174165858199871645268890258201795493176306423761061511292890704421463580213882752012283355983916648118759823033197932189814730390145928030092466862413814283104471758767891282701710709930846725943578392095563014914781278098598313729416783138570918928268416654818434552546533335251395936003904627131062351192840807576465249666669567782413886053966300690297627478824039223625873062121224911294414635705152525144519618519351296028456912330720281135149304776742706809268405517000245315365685059444282646381285603824846481693265123053081699171147637198599071416088557016777951036731395211476557636057007956327198679371653506596502225274873073481593455441531577195244470987719294326807668788377640094675356099026038684381551160199763655912341098557901693064453651049659672149235487831032124287872973827826076179808710374266978976979526580054924661366034572280071461906134509195772099312222755531739403431661107140048195781638007153506179978489987329803135821589327328868138352044903511500763412353480509840057270997626758949246071827944910835353945614799323020773043049828295401456038881928312434735538198285594977802882663980649954616831395185051078130366589280189210875158700639340221547473541905723595129690692747495467675776652494378418194696656978383926902770218750910740832529317226476515126456724001199865041944174824291243091097017848532536628185383782646170891538013998389940596882418268754885870129472170950678787345380094535831572352895559393445885215111918076893640121996203107636058793987692258235464652854291240924710501745081597269024316220555838802267552001787928157793428196627847722428399278695456043350211600550397493995501710601223517142185812698100522486038437747892538052466260643273060084733537369337009813195540218709459707991117273902598560110771780787931342875927719675374647816314777937749664073461160733952520161879585546332679431962330092068344292375921439902694418153229384431481239929124155624242821737298329643099719371048020540532842457231250159809718652053816406089724420079363572371766218700359950094457435316420344543638375693618127412908583186712275942881570927147564759337478848414168305036628501689443121757141177577556032980669748233248064685967599342862447462148538294868080620074761983951894374924604321863791907032750190228890185714049079178934753174843453687181762950161971117651097339613496110290083999455086170279998618088455238216784442484554117670227157655015052571421723134734806741643371711257699378163587778497619356365141855937226943377244935986052751301481003017861636606248902095247382084740913313855635287740231964440296163986609793782001989144886486404312425687072950697650234665330872363346645016878856643233391914689470326275121855921609582992749230681069871650313927728438993578246273637928799066327707124771306246938881299865934431504584170220710185510967244944725396561276242304941682078546135728515413433104607782911054236640939215241808331416218555239974163314205484931561644965198806128800309260855984199851103791972653904896096333650670986690281035874614470339261519674417560886675408960497193534779904650170034232796201691398626202893706124659920738031208353437467075219994530034536933132477104876073674726046255618252978607327870635787992549394562336418999931380096314649149058883537478413582539683770989320453543128148950329820135658695240690334413828660574228489478442706127088157530117979249531980573150508592820761496230517689266443736027202881145953982336730608881742891250808124236397607784178211325075327927538285695802317814694106167836611749548158456896624530085628480541840329965773971134256493161861791220611634521314448416543773217092045971951481316950650700459586456724902659463198323158040153960405371723552872225167938541694898456906812082142868521905596015504370978987846011489738817148393285102194181115060238180553667918427601067635346315525905855371491940283830274656465309487798574930961550038532908787643192059998993019023141710472252481412992839539780361858363964054033714386074619782000145504650118500567583245973157769756782365250337213318220869957186141089525319925080836987442270418772267766931919975157990693865359366456504015953021812760168421622025811992898724635952785595647654501797226312116338593780300554378156096582570046934357052756725511643034206096994387737692964183202760485306069303364871945912420532614734492777473705819349946277777454532638724790979690752147093752554300040726033159614538445073062481068078576899068584722791957094414573731727701516298470183491550091332829544122332555092267515483073772280418341004924422350326783845716209859582508032963923894578562608959867716239365808116439657179176278606467451498925836792681356460694440789268418463325484825761014213102595055972557348205434780520100419351704992287756889125706089308170935593858726659903579189570810263922232959472206956717935634971453781206866361963538831963299391413001927903282686272829745608054015746194278290812815593136123616843887985289379883843762892397488034213426804048790963355302377754191071478115148525069844388710400469731878269854377121323890756345213279165994294840427905860406452797717027122348132251098837813573673832878404042954479445855258881085282232381037389747624477524311734161983495436297405673408901082417209984895799810929503358551464417694824336754881575216868858339547521864612324833096978644826481907399091744933549077187174308152504842163853873225869976954207326159446530697627278552597669454189764234709771389566680960520763540859351498174530032294966564669577181612880987222903381325134810039097160766462956062230663172593805826148985821873753962803541978995558274317467247777428814407094871046572094890424049292356282601915722774610062547308929695878025171428193266247711182547503988422173555310936678256171584932834751002723438710500360063295968198062323498662403661193975885819949796155144995845163762337819461307213960955486830140430756090567960550895231251048554898987070334428378836169482313749987290298034403549969072782715257817772842750442448909799940172232816759568552503108510006357528220689368368667235992671010596412988873841151148691161984962546259846593859821852828801754243975941552935796997650293157462682743330361300596736879160924860183177476320763551225013109156072664294286933909583349434832280260438993073924872042143537637028013045307157798450211669754486127182130977278432922110280817420156996633273071889857098439190044413275447505684273473193230872667379341757945872231366446524310073039791112084562226496379000127192255761634911080312258372734681546940667927785790899404951637877978142073141323647161596101316005251648332356967143924285203475839038731273748026764866321579756055539420211285961198242349003040549721738040882480694860741809280991005062405063908895174498271044715362176975874288140481837685358815126904927451731826200066259814878026606314293994441983602692392425129515996587164553905075558338332010464758716802977244207126716015192106023077943911487746879807441125345558680821759280761771939056771614783836020563315527775671167346657168499307345637177181140136399600477308891330479425053878590613100118541317126698443111226479321610057078306348608012787212537219291520981318117830779462902289104008272265654358080086448324904924206178420214616520526651299832159693067318244519624487104141694418456292421681094025228116411674258747881417349783235407516700565313479661036682103610974991657531491087915872894415210417638170074498067886676863552977626843677286322029719459365823875086888318290223121517393122829618969990319935645655386133240979027231304357050470402865939528204760050210620175116394078692672103064109288514864172251717174555230793067606365479472978939146663849813843429527893011789602945283840658538270708965296088082209671373546172734962595837870999162691198934569789260793619192612065147855044559369831160434499316465174717393607546311184915407688484713040852283090376961120329842206467896410295463103123228593323454430354223219852183131547236836259497801593841435865369972452184818044317164492510842842659082079466724656013930109421590326831031805812859736346213419789907263515682805122878757842100759984040782860898138353457856148980163981368209982452240685333323155517953387572291328972815882047219129124403343894693222691519633340419373592182511271740237258071733531876226541365183213041460578531062336779132584182580685547290241750890497187173372340996905483130183273642165458852530767071245102389882002306584169806178863734847854328617874061399888958153170038267165082637551710752665290053280716449926731085804998607943697430047039054505099066864822420205032476643427472261172475281799696708884968533683822780382654776098407814442737860697396157498347785917552765118009202416216802663909610205494869719515334205417126017989078248938410283613591440649431649986815439159283909634056780619870207097072148420828492942058784464448866202197211751604462635771004947836854650590412429787787378742525570136192809378497776339281061985305548141855991062559730313503330257629217090379835816725396626901794027111980493448058562096609901284174534259292814364786540330190918613414656101729204839614865381032665071594742444501083985320932253595447359710512589767407127495625926781565900349129448594053578082376455309109805063197118091134538873705745695738109339305503347964375525656091198440474102452301661768190980589356818906786123320039735037376438850335642723657628398901628522494297886628051120585629031206117325826322655588014507289080358512862611073786831759865752060361428142016216561592782537188739668066719260163696856544146308533523313738361482660684722935832846993592274242780601709797514806176181928763112612154894823813051270482750334109308379639821831257750460486013462280321108724601068257810613464132489606099771216172467472915280544929929427008678116685737294218705922129067371367539753381991722696638705319325883920248474201661202783892010543563465066399216801682368957929903073577131214388580502969868649754497162411560411365421883042886945710701931841131407702561065443051431505824180686100477816522104565295224160993594328450834861310174337837208101467523297054894843795293104182184666177644602973480520613280644513677699808869370218206939535328373725515756923970894289830121360626400755221756085943048607721201313567896758272323138405206266793671785854176247059566086069889244497822486331804097677310895062483231833980962633277432840663685498734677638261946651312681418869541780957540473440139115275039271903437670172080054336830050589784567658528298360373278570933147457731726511715145961682244847272541237617065479372624767481690806029819343915240273755968596535348414234331210216663153025739394975242133316050481275004613271562306159389560829686537662464900608401536283322463723197831667780603336012589042899365717663700090096469986359285093572576267227024606419989682082396238929680756296087668708463469780695049087915638613020214662153255137513187396900499886311825199577990081184331087428240862378687733371792704364488873782611301897380058135692259935500859884354368469534993082079080464559542419621424437001063073653363915153419388687244940503763450458742695153742568009568266697426735423731016977256770070467643595458687113592945852323963610648904962055319691457904834360879162182637149150943795471494606385294617990050144377520881990542562069483898642668401035270407330567852899127196006715633366390573247091633508268466912876747445374876330030796431443384310768513404573938867666586443594696255562485724713316932524537688908835334280054304003339443825370010165404133668211942353644686730344610542902131895454377622699472013018490932646823183936008953060644427759659915399312698265285995123842575895695032351427114350087765282983864393726836691169328530981654514778872095618106468026184141949518176683899648353153387080716002977918547608544300448353883035996472653016426506570689025874296449947900609667718549976561649804263745640608058871072417960243341914672314913123894304493061389537999950781117745702646890495390474362832744295590584803388543202239533824478684092209339027023406584424666263614270466723559435929229238793336260217166082211235035227048697372442925054979413209029497283517440658559269364805981188721018241185802009746785004486225902899462287497111922829438472868633090226251138580048231957784291278485172425235167470356334955843735055728314972118145879227025617553667332578239420448923172750929097551993596479639704261033340954880489499212658936171590433688296700308842963867321167007830077786751952289971123428656060857825464857508896900985855606888076396685946510445455347832993811664219713802899363438257349407852979167089084838142596681171219414143042690981438561946926594793355335875152968558177248237658911648446782069045606995763741948946927666817875776583350272309371405349107345471010017961001396637224915848630823550380854381524144220324132675297239343309927031818766588001293289867836692823239859822388942034863425438845874121266217505116097007139089562770935291650345219482477768262610582266825654248272379556647918631267244935589468113173990294521105244838187668271454666812133361432325385814441779959723641190785647268426080781918432271740625161378535562504050312466835564896188599877296286311673504185529314511510286327929200644994151422752410245647471015097214610986370081332398062673681087739091584313878786429192095230769230849252409829512955538805756279580475538149257322093445774883204417369703374547974723550891119095021820768509283739125576810622244153777944719078816610103387765605173603276932585889797814505872244099527039780075083997621362283385006680606484501826812495143747145397128191555007408576730013877828065207081271137028814862404812076734424825543783352511317983828928568152963075625662770318738035561438461406187173082695826609160392922094791381487446460504397925979277067365313754540322998244798126959111459375226256027322032126960569337007757772355376342183637242396845488381386471975377822757597883191453872462538814507753260367580682400303601867821906643582760268855733603002581607200680052866652305987230731299975127583626891169713812266925398122798032903039301819439162441738816576044576318645236146843579865061611816798054428400723982805466387241150156352055573855504823811303595557360233920490985550378165775417982952372854961527865261198059334517610491860195744010614830771392146241331726748257659414096411532112613590371011720542649253455590625959340146662886064306079611362752444951833933912775016730011375092887449034112586835855238112800890407139072360769409279688301968068634450185095021155569709309146523370535657735786068111456914004881053049310575202872603422293204039365624512266568725979297418404978068044561734017345647789528309190518954557543049336965890022229497448438290609372820956026134795048610288338180542676224861436116396583168725029301405924763445302934207383303540651347146450728741159113563686436385623278014935127222293566001486461115080655032305843917575552625613784541727603006578181702410900720997874896184380477602007207634761810453078690426750842180669003472712020173614700125022549617083458610884856815071418484722177911323855879953778848188432455312615474253300751377208233207131221856599227008904256081357681660579363389828870560696318155805538553552427707501316374003394524568277066200352151167607952915568171913500249810700505873664146880726303285902831538280883044629605938535168985652969922919766956864687784717163043778904754090445265821590143652717311699951267272817681307913686532534405104571115784815159428270069068278847362603220177486080050810443461194538208257616335255047667248066043259863703020066133773669589529610759026548786610676084937464356286676360755488615789513636592742502942187210411699239452000917130152948402257451231213696773070425337472546301978364462152039134581425432160665393030903913765389855340608424476508418817944498264332692777968732923954065214768126801262078221467280585112931363827839739595281753462496328252966507757392397496349469411902558901055037980083232848651252723112613720365692915570640137680373676147864584612352606416433226968024665751617911151488455558077701928690788194858094073313153458638532737513024277097190388306064763467585156935933481352750551720079826449561445066959505850486937734732258739818176585832826065996945831353564798403748698709109166967822530347170380347047929006009411503158172247954450053680497681073935146905711745121764673511385882031593033833874542665851870924454648915229149796037887567875274974665813176894600465758772489694434614737888271120362562227525626455543768587295578619957941180223329330541226418414979682265969567127402642150087152570794338604105871878842435460492838586072820280678142343208000592437897007642877280200379148323852870376766915816600019438901309650159929605235535093345871161748702918216287733450084181211623634795754635852738308503913563412524953743548193981627349779986338310374021539753445705190137911161188121601430966525355713508936427399210448666348704756149416654967498139038569882326910626956147452416142897562129072662633792265220238231476577691299936842798496032892060583103342319783677660921755766590200165201673814005384721010039888234025707192333135687143793679029564220890501932742461019436536793768750687115598010146952188588682922926624934253775699160670761741315293423857159571396238764639820712633308897225477362092019234248353541873790798332325351521175135671472522397196750539613162979825634941794236065740645306409452786139818722500823539974365724462522733394027016931506362709376718821280261746460296476358433797008847351346316139334166048027517746456658573765074398113321639249516211999199203973884035686118105900025161210180181888943821638953961000977093194821454951127659974233707200961909083554429759782183277717947906938728860293237306699611154620721180697509222561437598850345252498405429823100294693957152175813357885898963803354427933334644249710810147819468491309309605261435870014429692228493866828977775967748318668918260825782760563695742191759078235906387608583057483033356827385533708520131595086190243390127578008933751689438660870620545810818312002647048326741426407312216273748033246008363645039846621672159499509354269014254750455365685756202832736083607434088068824227724881087210587128822904130461556518634054851553179729900442855073814201245680835441700851629720024131213965532734326126639789890557930392834944375144275447737240585378635064213554824237094537810071202651236577582545430195762631690718418366420581151161684054082461976250291197507699862926041116168708743523973705020015474355395415836544652504141789465456125267782274721941308819807876393710104124769861209839814055475307447386040628987547511198018757408357507449728348712347824957101466564726319980305768744706116048714726458046229718574968590291164419781696726997536617606072359605480025642372403695756040044381879480604967182756788838768154627730432210806548704848413450387333297388401140682883176898592724111707249580386319919785808047321857870157468879107540244774827494220784378837049700933572289677573753579719112157882279483110808524623380529182891100628393843180514342490235196177874560431372191243894354389217509866459029066067078692194783697454828201918531543830623214604904345601158823913934912717721721026671191211710484198821844768241176509777593478709299556844229940741470429656570707421465622834263624731217015398261878825445334808419296153343415970784896658340789765638920723362883760920012195865802766923504888449907305714546959954672290066141905704242248571284682217363314478988041373410678170753152435260593152152378394375347726830858664300840978261153661191956866600255883836732906793206051513378458520346719847617162696397181070920131637427247485623404678386127921822038379371296797083053333095577544520809367615350762726323121395710347366398018286370471071369630870122514199529835687489159092457870379893638724315434220696504344815768871849362374712739184802452691763573523255950668256716583217569566155729229117387019439599764101661401007201436579737798990097116361615013692294992427946405157052488229162290284136569861828426009490070976737421453437452251452692760431593933744095728528875421547035371843148334224307371122994313537111817159120446574125115118489884722184869315459457729038074164326105930914761329466340255400061433466971516010143234854322030799436925836769440333530979755106135472851206126000645380647974491303115900535517761473898137569284367764506517890575003544419933353879271203966861619542845482089307121988307816132974421605277437058177270338462959574978377591852731821028578144242153481334124600999920146960357159297465226432486349363970893453000013556347419371285819488694985656869881454724449537566970633184420040794874559481938068199307827234586004310829650038143728994988488410773754250938588633256981185929683324027965326356080496887910882373585576116590453565933472722836375824240330795788556657730338097894548540416728346518701324564576066312701693660970655139803260713153129331883053270842567516233365382317451841466975490062649522405253697062561108993171457604859588676949979022737364215670373590975478027346698561221404604516957619007970815538310517865631941835215937186091071228147592529024354717973369082692734603386523632446534156770284026994253518639676612705490483381289392817464825929558010043997802001152439275731469139446366118006851923210410490391988611011362112487315669005036298055648515772923214468162730536821802668922993553699463015683211962843221357570283570629335293740185738062383229513658999836626896672484186363707487252068428462186358397037369554039793024332896920557426329541151792814911202510038405886419367970854847420239272283045752719188337150109208705161798270123513518872937069775640360105581596134982819685436916672517153728901800514972708898292833329618412458903118045827300650959080048584178026577849023443220746709746902871345136912865472627775104769327667026531775571034894751776218381786190019200594425184255736300732143260395600469137733440931314920980769214077330200491054046309657777129824652464759357422497705186042055292084708248339647529189855015382087841670083339009611716479255634459596407043362164904811884625255921033069770412331372507254775841283328063617573757691185000443764583720037159861422928610773869839065541783947273809614380317890310814613755575880796986482606390826027418011782930676865263733220690245752203045647824839392865739329610341703901155284542145476885164537731160407901249449973243322649666271317398416045516314835815136163579869274365141085382870042368937748368366056920318184418911091829704228229296228404024056781589605542458706284224829458429977522096771508407222235149693174702416691649633952812353950039791711916151188099450938807756645354380372980823549132672869418082330848785341978963058556742837663876368467369280863996408955593863976639854492936484872585270154102119285039617205285385314745564651730947082982792857444612465143711452828571586249544006263796575609805875238880820864126568123597779885327694522435990724053580535272671915218318707636430817326892415700535894196573690027175614307383063916016073211952983904566763737925639907985266279111809144157297657617365454560672212239282261273615950391688094101992519301528349037513978723542086657584181918052151292034578354679558153735750405211898810628974713542224915001406018292379529077219512742731068735862347119795260349770078126885505234332892279708033968090991995421862714030104617198318285242939332319467752712590560688353133527103308254664672570923255371488042217519862057854289557381700286876240697907177426373903064742252406861003919366077729887502399826323058222038641610088985032699229564442173867752956904868046836154595340975006193187524134145737498349984456420401774427382439385371392196549644990812187380962018243708734114789727083131600498430810889157257022485612437312152793164070022836786175502677485827631890241418683352463157826794626816054614762627306548595992076056318402513788875591389637628716666724899149326827969115374980766013476844400241592208229867107730687761457850776813500334974512256787958525231948953440055688796679764635840079350916589582465190988800922892600519200456293520477248883563839428823792589866705900558813016885089540966644578137189658427664949362080810653874705893581163957022360421574665147313189079414785436832405265221961699321846698442047564241482390729530558289976986769786208731184883386674328246411051349943324041804367992491416319841168198507253105670337787684690241343533425919635651912878616474323799573835663615318829172460920553771506400650739269860127032008307653023978170630097371347641304353883156978065518593786236678149785675904346940346851790947412779009789273655411873530165036305609662378981290643181251495265758711763834055220479651813413271626488767067980915829833240940356631999543908217407655257946009838487094688450435503158811465908190993637799524711694071066092065999541497125626775335242394307358025647891808128038152271115908622183707141875224091142647790756014701871199979434937516329794736426535290832385695924826942978256536370098516088620616850880079499747034531560547151787080645877373982152603694072243704998212478557773071919805340161689997690519781529926294506630838032694587824828009459233470424512634503199947190390733259269042773974319490205530966685692289665743647656694654820373848644141735049157389471616875225376190388921920321963327793223785818898762252197934283961042287039479030228068258392984327049050696588118335106626852296541290085563728138647336750304665626652036636877889333409319627938768998861604700528010427886978675194033679829943131038884618565257575498686632746844528095686112023502501321895074925176033766352355590606947394810597501584791120312586573285762802247075802016294039227839275283425561956989128955004084930904797849960255750665510687599627842627446511609449708348750591645547040336443837407907370852669036035620034389719777512322131192906501358709729598543437916611528023090067040760520701195822034766076990883607387654836184380043762943683809422812116729329174564321670147907367206992721716554509521978321557940220138666207370713804331613920136763909122299185836336143672256265122945474461165906863743079547923992054363750265043260324654745099412392401939808455597758007051832937986382372143659913736929487041446740316947199879812978216996340850064264732901131598436303387013129571251413504709913714872266610939801519796496220225591234995236261224671164439249853397201745531704562914392227276764887198207231761415740612612818229884991549729711475270105787219859746071777889155959879035961197694258673621875194601173999710427279651171464952558240514017897042915584221345782068568450737324276780046507028907382876657790074402145437922587294910992478083433257134712831469446002657456200889226104802323402317225614963800113171880778930485101263135323890613507666139482362621170062889173836576455946362677273239884168546718862880708272577924052168673668247979253883180606774630111746109658483046383595051657947100232886804177215842401709125365190773766998050587204618192077796725029717126861098491024029847342014923490509822096439403095970555484417592780024057811875477931337280585256001118954709074363186049047199780660724185685935172104814449961798738447229558170369503295381644332180303157781363246467819190830944197630544749541910212322299735493102025395597304056109936830290975757487738461679811109300202054655513177324132559821761834096723332346629729791761596133108874929280416347282117880110883899650491895987097789037312324558910803436603935330769829948278178572082495972581055147453163640480509817978560522781799997079956229676327532669036974317909509682180544703691593576566433821091454069045120780496814059593302634404411826574015193609472299135768743777652052269982420368285856781381803511014131425177629651019449680222106424209782113834215580085232740808529479466071512812864446796363354240148447326566465362036911034060433890924953604634383037011957599666780792826001614844068904002216738669849685207639333157989094397591963710858440428139228698129772435386010665892993882115004162338587249301172920957195763599566012441666992589961893381005346615423858472054899472630210234050037971697382271169400595013947830893538310709516299491379041222250691448505854442869903292553306915050917030199311065522385421800222463288754242566016638197692340772017967542624053181407180883656572165283457273995843921189239116191120372533744917467891447043233373747169328559510723975557124541866554061631625884798303025046587201464811382491450824871503702562011869271395029934713337341371067685784596485720584478132511487537260318306702976997995051705943325885400790707515486920488834147091571042380493324739073271028280854738495118763600867261686935042360373154675540587639378900186491582399997820093116143576668224142575370474831992110632890964991542021105998560932866686472575007224146705218495488596318970487609321539481498134623853722391503958341056760832583130017346887430965794179082437327851493209351973306532759298980198696987443190058784521201716595710255102532641293801647052317466181000692801811255171786488939550902457512038722490628358763426421283138619145077496663973137315458463886215285067576579488231304407239180255462069972991981999022206188546973529986551796923012843332939972959935932405960348801644697222818656133087187401219087070486663081097567148891685575255425422317637382328174764150822509472660999632032784427767796917436591611470641797218940220670829572662518193857963424332484883775551258143969507201141386746496630931682942069757469072023635164287463535739039665119823654755720905027271903729867266291840065907304523466477333802342671861179690457065800120932009689088764127424212492070754740640636050392971759354776482465969986384997833480926766855859449901942157691410266947734176777615083704894511078497257019457456593473615975888913745333755909860500724208298908854296053404535222661202342949791620770525384364689899409348945738910841587227976735755320423952001286718522732790963927441459354224499193201518435380178415048092765960933243738567569698952091070503901286839792785132394319605435066412509989489591535509580866553651724259075263684378424793682121124375635857568635956246502087256849751821056706477529461657154923141061069075924621953915384367373947400314980849225924906011239105925619291315426552430467554072144856752813256956310736732665423714378771308894842503479693036764466201941948411000249800273800319839285673589064865067955495044325521192359255914131703039951338430073467876054421323826776711189253283139132474177052577291691041891546876807357785484492210906350132715010736265075423987367304406079521320958556230777746575123502971118611075870939526740502474807912077193351806471896024842916046243457912875023488281069754544942155720255416680548011615461988197984755140281783879897009742879867189874433922030504715002803390768601048784924315382852713243018060443266103347220798651853352374284062693072339235541977912655419037637143432753284309687534046377465565900727125586067361254312764025422563667360856339955087436441066847783843901682484090302551055756127974901196246179150255601240339474084155059674261612741200476100977950911508604788243386152497140014920487661609817439417401842971098816715489105483012739304396602670271519296195088780260298176291501409313146839997321832182135233486245988439398917468663664912996473976830515073532054291248004058968597227571938552309980932372110774448386378263369471843996950589534697513972292922157258933469949492897025720401551230930544024360677765313641099726331977665803814202553349964543908763307052772058062937548423573710066272379330921005367649588805005251832066257428296202339868892799020570390192253719148546300171861150965918850732513707387278316602602729516536221836275374499442771599873479555644269269509852573376419707857572529666788994253778713830660542366042737304442663910388654542253642170553011666960221820362246475585768198974147463422442462842759190536683991950020934989625062619286575385473407461730383108347293759634058913990057055621497471651337274218750762215588266850245291598635132118443823915738595330596394171557684037364082941400736511251647092141044385119546438633211666585345504959250232302631889333511755649877313800119200015893889605416041020270907394016835744762543574805789629184103861806966541793885892366125336645166098259486086399879559640731598330111085649132037170365092553013981046684562895967250016299130871812888526420829963116261984431397264078250212910262675052313047131470595543798805860914250338915051936727045113518820040145851981377873211190114035352806283409301807110482606282988574740824669632382165515569287387274129353053191619653228408689342272642567951703050815832150125092558429386033221008861961948769001043623627399892329894017341926882192877948228863967808631543347129687900409895883715222818115112216585842655927322682520740867683597758037960743336976670180341939702880382153342745391553077613280465404288967295296199168345488419165374590710598473211056688788314270385691617260615549673560069402471187515952458078548080297805394282959604113799281645343263170434101344550755417314105695069857274673268595373786501524408682260276189589986412564019004392909129874393531789757017426677865496930628579251333641185728110781034130169110222791291851105386059213675416165130510950482683285939092700953102121838786048067494284907282225416614485058777163465692365383472132496464063906554557104829996271061491721397824053871813847979427386063565089516392232248229522553948556123965683515072519209407370020441626274697283195607892568609447748055191522354189097264144062278021542413749119684922641956133423919860755548003751171458806750481730160235877681570322071597110983523204698673921785987524849285284461379938895831227371851306108418599030484408294085979095032260093596346015512407596370709520214436929652333074305355840972293017927553503476834366675853826054351764208576062621443887996112222010526223503551592894975963467353185928039302592042007928863296106440010649354711266942896458362269492623995276842667983640794840204350033367141460422733484217134656851914980560434666804429908352400965499745041878829582086536063416724203755129180851372429783011327402491861498453038047885235923821218436913364416671807342666471555565880015784961964550028598908230439442215716929862968182460064652026884877366228749642685381988706274834938951744155683764118068238984014859070734730001808781977881782740692878104404562307627264669382582409748728875640404505895209759791604867254330902230533946307338816729009510503402179686123902373734305920233913581788871742354674283012525308113332788036449637680404455141837461448577788141390140518274304058094758035653240180053995240031916765739980604108381703077308865197910196687350049094005457069353879431267880739413384494402631731485199250841732026414220580929192791250851774464047058413962750773400101812537852383335836282906786784694407081817314622438101960267336001870194085677690979945970621765339815729202751839371172921094160698455245750537688362288407888562919167652895095400731324902524537203309241390286785490667818496086544016273550392424998874151434951796999975696521577865077701849033997686591172605675772562220666153483752971133024168132051396530812236030877942727070889197600568885529155339967475339230605467534343711261016691642713940743146616590973725936720518113395548596677323146362219413846695867117653628844043614742420335525345458214203630269592419253760746094855899745510455320860907649620311756739116877097835209516410952951704911137123273085469330653925028835482614012818796598810365989023444213272679302325262639611159118951441872916035534342905788034879012010616109528796871149029884964327690748967395652186534349394571182448827784831045983608988685057472701714434690094999410205845123202006214097981633988975485710881235053261970202556032980123350658683352392637174528801727567542490937808240002866326028565406941748079114601226934149310393321361871194817974846125154548728380006788623251778304887305544202567452055035371554129715131087846230723857872890992793876040274794410295515572730002271216257016409653711833567132495892327794485522624271872886016754270252645105728547291635888298308258332111668563135619419248244814774936038057956286400088665942975883084263541816619586504238472868090576112330748745559856629799680098114966869098940872924702157157457830583161263052266588014555162592932587218469664458487624197667025518837776685504744620144714137691574366820687157606181280765110194614798510172794552263077738323038322810320577490024352790110075708675732416504482547493394706415713113209327769473054912012954026080178167606573461234209376431462684915326455535096335605646897900996104663981073611237931837668941987351713702548050479534362309968736186369342875185665358586941447210489154530672979907769087562507864913563536444615963513235185607085682010375366487211062502749906988137838395935185893057232973010603301044330558331787987381244956089856717463857772590426676085271257495636434218703998283938760059910119697641993502213343552537058038151828170145215210505250357827314333784184534398207044322603304429447256001392626785864944460936892007663925381845337068108211806737116955188495564925398003576778096406395827785932573743978230317096331968985510933315391601442158738845787040668870866606808321145145922381797799059237297629060150921693974487177795692932822271998508359637272651031802072837416168513545237980730690549396675180821627169450498526301570886382578495145116899871195521485017125929669520037620454987825711435951513610089632712722223193358695137443527972907373604113854515439309582125242288583364851520503654060287722080908194258924636455962040770066281761021376847332397075794673551350228070810602752357177850659276945364647750924061347946463534110001229324376548216303895459546874313826756166028226394015845876444943280967803013041683110741542028799709177898294078204589956493771280062451516612807858423827590862108616330915417367436514748234646045312489664223185524193467438652150591294904250205965037964829042451561635079976950919460834274686942963827011497358467652579716834415030809434127631844507989133305154128184787259079262408239345455318785849671511976158081764278896088191530922821382413768020118459580999433520304392638293403108282322520940568740967706251232694816239507278735682054651885640672619648600056812672886544129843191281892689172192127781369356545009165197530094862013450826302615349898779611835143395375771257742880550160570627383891182991567338448223224092642419842832129963481497698586476928440828558508309043059408362966828254586247446475517100552593391599698953589764342252525589045871912556579674787438037511581095278148514718400096732855984166270002653147009931297759590561527564179487298503482616401871375046383024700760494102427596056289510076384234285448324249975942463064024673393280787129263433540976088595452528632056877491743420347787872042596841401404058699697784873677682153589491173443174330843119651723351968680251279790688582973353073814639585904686234143577681967442778366477845880820770664621067498938200535505074418774782166138848786809783804606058029532518929599419106576905184586635720584112645603872549494851261719156161412266945495049435781493235097166230177618784277504964721564611378725465109650832213380347998473800163523151117451512082484025694501982040014923970143064875581921418677546469533795706825746463396566657295015022571356992951992016559622680471759467153079986854880835785908835174887242419190069836483142245554639582164172372423427507406571073859759308252208919852333811230190587705687512661171627085080115073227315044186959962561847959028050020809146745000917136406554143210937342511925478028702882113095820835387667683728361216756660877693629454628183876773487710710468724955559658573150241094265754343359908313814228530731215121179171895217371972510286237287246730209118478611556490833158751453445922625734047511932638397937311555224735492354561388728626650437144607331412781306922945170496879587125559404087685578313190506709602190142855775674334581668364914150906428927068910310964259387599150462784665576504762761288767195852063544286590249111720621399817516008555740678840046344263040540095477486839220132274578961485908644655714980895555254720244373785388403524603383384560590321959394296050942240524457419139613886700854627774971475461494117639951783008766532915394743784759330319506435917134015797386406543021105189222084403490187313082612109009092826855582167982533341879614765730956852541599217254597442697091738091753427744159690584384857412187210172161508695923014760481810377126265346145302000561321257227116507553284012374579415690377983854588388104571226226548598772352395582933013172648312204097879895397385268782202287172361191701898715731745028772804992225549393807584017948523553212804894588951687016775793463524515287826028244268661188454897425895465654140486829231191877973024337069792102962431018501661197530476971390407762071041799507411948306406107424178445576087505599100806918255782463198782023711968342840386497283208433449730098948690872624669984681737127806046735633573465310485984895964958898147696727812626592454959606364810067831184518291856588875092542794616290729948925247190648298529090756728988298709704468828494076630542260497996107737405870958461360211520802782870786934762222152463568696858755410193482129022282266907423883733838619384206975186172814959928374988203032116430810137698179886902280710045248399441568782808614840439799845508434139762396824886804711439998657949876235796641655032860548319937617065473155292199148738667465832437576842977822108992068473349908984615027548128417672486685473570860206226137461328466303276388016081842381267845122692456458352739687118536963021323316710377574329189560246911747201518000900604617367683639502432095437502966462224749480730922259325373823512374701502244390818161164379219894593433121417375863254760986662257024047848014054572809280264436355580028021936928240966831188163318317950918703447324303785035874846749743066152572816715993290346152445359569631780083656955041495443233463444172678378694242468949802201497528595919266848517057852310119762843373772707249592123687952737103323907707636695663392560795790388450097594819832130682401884618259649944968471293183288736383523743053659871080712547508323279168133578104079847747122681208372141611666056668886460345482704352880425607732067114841860454053294389550600737681615992013018455508543029080079497254129539891670904096258102829357595382342066250679147771637175929575710410801985526413799551023200927952306099441794145810100944074490991270571255803535552134730735305452119639088792189671703506360031178310919085483075375060124159361538941828247011571143619777529379970136931712424475168995445121969228968818361878510370283805122165923867814788327866215254002353791320094625441299046467712516410918984858515454326509623893702650041610465303520005270789632852051669596773898745684310041657061901904543867870267525265314927551499251869128343640420849373917677551451479600724142802485189650413675132340052555740598248020715614759769260726295007165690431277659099103942751157894877960772677998745932457055259295294390630237305648430084346250347163681931999921696461683639763113874562887140853800485623394832680488181222128217295423115824022731957623073308036602457845382896187542994034858991770732633931649218700515634833915517781697396210655368851454716971262983328150880018787740002504547020479659123590436930982308611331159737789411174653410783664751065567223931785343914516964238851131817767889004053361303914630378425076497341272663042711763380626708181515527769516973015769248581227134857470211789999300917041993285621337861351641022577537460880436677211130082311443779402022716542135050228420108430797537748066861345739653316668161257426767403395029597194481299030434054602688121177138815325330000638210358871203811553278067705142297744070831616283714134064246868215785844000673077283608053570832802367617923323701692716751597463281901732000041683854082164358470638861437754547140497686038761993898725558750604890371406388672181323670870196057072612542708637467016556628981719694595745551769141809182780911313645732637160224886850332549760811685508833003224168374912878582857721495718889254918855895396988322746708189395803036747258597087626822891391869657454616854471314612900827851598469460224124977032843926341344155410815889950956491368960649480504745866973312193908925477449122791255056263429697965589526009561418006854118876492951782035134991254800127388343364836611788122683133578762305506276631182619329323531587137753752417953709429375300558877842706405596748107626737086946338164907201104093334733243071136061055141202106026529017666368189588179905803945210690985892024316432409081081698136344401179895485859706445193425883889513792491064715728002175481982488982282965713374061016713104438001432894130887877629525097686296222731836994534156066710644012561204413482973860856442586288081651558444919315689780493593910762049616654161010143921648908290548151833679732841640189362940574025761348689644380814911590195452064713037934382455349626490396224550801288048764634305734948855497498698745919240678616332733298988002152455225100233494470111700431781588970834949796212129101484171143547655558914737202215798952278087142765661215988838761218578076709615636020114433021524980650016191386595736312454328077558915311454166677564371712113773234212789502742222218897174718176468149027961346224509581520951812877467326504359347320447497439465097017844760426570788962308003533446115530382804057032558768103065653382784945417846428298489892495617854471882261965264980768981841487674196384838290902563335954685125345557772085460693112577131693057926138735359658649196333228736172369595664706997333508161750830837855769961399050129857185987797390452981090258443484677207742312944492187078863175202745696505941080234308437523871792307539778931941100520477182727106498345975633595829866911486050392080312440587463411837846325213132581849808048696851419476848622898725626337319989395749545587499785595778886476201415741632060752775406223882335445316360378634531784118546037735393658514090184695064807984312025444469190727496059140936646555366034605231575198061520216326313118662346088033531542616113130233803601963316137130380531722657474191540529970061642129094089542252325973066146735819711033008042638729751075717713627422564295895683663888443547603112624247713801911914817595498437751962632943146181340807037353895408549283189371019425895156467062506331648729477648517242532033733574054981393946333411497548216960235788777226293688561754474233075745998437126541529618200790944164102580720141363849338724037369251164088297963324026100556302567293378128741646958079206573843146633866983133320834735437825308748095207565638717990875211673292115238640194095548402618553448919266710242374856360946233116147114762506120591092235266559231767614731206939776112147439787019512122334695195972693631929237350742115468951532372098012274048180812919023219642593949875550161658027525329132137653237341650493051774388580996030040113016646504604726280632627420834022667773797421406295982777884579366300948478769227075173453459340255251175838628218053522152757860472638989495980895305760498713837444810077507017637810810114744445295034011078207661977459953341636251222971090810770004602768250987369390016669997388900906292122321973440550398232617726252251654868790887169982771822143679156317720055526007203022219674338249053082306147873796580607507547758278597650628980681126282401459808878534591034139664250480756892059079059333718179664042927403092852944075141277445283906245591374956636362124381154727621086916077791404965701097161075239756371574110992571234843413614353645821027311744716029079318793195352677677345664918009637882650214344780467843400991703622958402779597162195265283266193059061238733040648850576968851775610500885275469404587507152740486065498967463246734209064492777595938870562873782682317632186541817744043729359288170623520006913508060688169879751755267402288100144355780106135892477295312653965234629287919028536617098068380722749554322967108200944201985287833467674744994016214305016936300519377583558095197794415887324864009495897537203271145693531053152582289981897995046456166749167271620930526560734083253921856676296114289141962882239318218151323471994088716206710425444569403876606063678790457931209971523477649174383103622240897292628581413897620874183079667743565236833571262982079903525874995248627065785608644607633416225738193817695505240175330518626622578847773795208384186689555907516961999769091360353527993510283715667330757870311053178918392818256711760337082330478249226192465934226759678220549872268336856857465627513555032162101417775272359838601660271904938485583495260586274214288753925776505712629585410217674639181565922157014313434235530988693993541308727707152390560346136189441326370697544843004380732054683122319336745765755815781731115076186771809181151053187967887757905736089026030445229494546482340882970484854582278322647958403176662586767498319129765960479646056718805983364364919954156809914371172234694465117360435458301197187246232464687903734900426392759901648266120197127094954295401615413000206023859284243882957798411387957982717017640318399380399578468417126880350149190172518261200674647135001351697425348899072243682137669333306029086752254843718742298356473141390387131365249010302501866753852519573562486105160136213921823313140922099222304578618076377173697631172723115744734104636452343990874062845317256193600410551190866285776371327830509797385058800848039329193438182777257542225751680866253154275194161958847860321519165579029018980294262745203496921865503238219534958574264116735982154036294549443336182735565796282517746546904146799184149209643019634820765035938036795346140597090556392533511674313344182601560077586535122696194252131031812979998509427909575499032425503153551641189508295836373198934684669069329528187898273561626608778494010345323194321365653901582579773272087918175519356231049592486471665622781480677426309110482590505645102049420121667800571838321405156584712883334182260006642965224284151266762326844814030095149230146135042348899231429437711173621389359662018048892312377443734505528741372164307287305781645221480970959080716194937428238174940821631629066574893983260592192830536257969921837192684331446025630339271709185114929993507924256799100804890788238651820010110396964570205341351738242870203697928365488006690693158157206689260056089585468474544302536585570117053213628249852828275833013183126736948031970004664740156220056166335410587947417038354543323843483529861298532199241786541604250927701098475732139981571772327776522919486701296734666322763412332639805801886773252618432229001793485851771168298808127092020639292355619933797005050827851095348678714099855963236579024108930616896433890730863270755224879459739384997556965489613350047159259527768013213740796657742281805496215511174758595071774601845732042481791473485491134669656148545438402520836778956781246987338673238726879950571854293396586787250056727169494100562225100821626361171861213535181784664509037028677924979356018155603592818587166569427458363399640313534505064796857371913953900752138183322337455632603910729315790813927457475133759324998371172192365761425289474333298087199123153916245513323083891078030793171619160683068530526041877851916387545575586301489491621088896512864181613822513661521605431886783463165958424929934109824865132858087550115872314387844405479847860593425628991730121991766078487636747367079199114832516480018760518977117319019889582959349388152593224318560925540628088783702698392980364160478897711425361576299675896676858923882524605577398731561325761465509366253384676210056602463946843911117364656838894625591756227653820931985717999014594848396653653312990828448328591049809796342853692189244836278981341789220213237971473074802412841060612738915902671917126674341221142589571551193914013971464265150533422793819165295226947998126868881968411517224345617204355550106285191056604200908642984207643455585270749622582241361531071875385841508070600841430162987039410718271353418715096743987833213696495765267923339890608039771558436117577178644355560342211363314048166407344473550434123801735908616103557522161669275703099549461581267084591683823391453848880871032803635856308111694905119804697293861224750598875265881379320766279811319646442510803247958362599415576151019369347336155239528702936123951330191318641336109211806804293922602336905814028588781860667628296756473414662793861218899524118068518784991423162312458001872460298664829341666099706316931762723239890828302661967992256038811407593452281171036311614031397084039105439727142910061880168736226424197120567601501947755314970257877910897131405005949702237822319692116064312299127833642310702316020668697677079611043041930681379094889209837415135683864066484779581610857494323333402705695678340396988301983285879481175331180773388319377340470667030416333278717430924723936302325536634252650410970496020154552536544280621845666612926855141166989757766022911599200579270276917198421712765883082499705679066387943760231306561707111434011752756003802753294060057205238164842255223241206012980603720339465590125309701775271890498869900771899144976471021084289168380292527905161777843485414418668536095786800766753858126810782341685130407032694273439874347012274033850433875809898958370339465155929063342022149252886583495080813292398316006513349977133696435292389223661686931507899542100981112594574309226222130351275137600155906571869384942048226684828434104093616788997776536129689944109823748728785897217882439386189900987738621462949070626139608490433199640694801909452380873268730909164139983467642117887775575685140774501503508893046504777405586205590340686843753029655768675657136236197413180183956884406837594664975937918382646504626426528605200610196997073870153029686377302346930575999083623930094054366561158020807644547041626760796647891022255959412640124913455277980366004119094838601237361380250739650716025332272496737393283389605064372386181165580133609642904882083454526859587541254188338625938412241981188462433976044559123122003845985929918184763304559796731283203123190098234575786404161383226682814685917228355819144934335287543475332220865136440371939751877245793777779533390388798137107889630755154571063075264465853740677147163633622695414806587506076418542210395033995188745673063064799806744710863457384477867064137089703177878615727767583976324286060151934081706003385787856308469335941120995598730928694790832257819643738771688912013266350233931545772371151537335386143717809136172538797832512923664552735239593232455986240299146270430669332707312723902947516159070746426519474945816323224864538383752499216686315346979007553145010028424415794471090304250150254275065020137345883910739108495986074539053351462586849599776125640634343312994905763084808046983586921952308594346546708328656087726157891587841211790335402080625127136144082481048428967112784239407068086798771182776484138572187735682349071299299306653803625237380674784371064651231136060603494847620253821733150373969146066696193217696526158975964624922580724302019606726158858899272833083230898184120198483776197248720398966281567861958470894409262708430815607823082031317834303889464185605348755098417870551542697404367894889950370446389436433557054022756401564854750513706814834740922316245243911258853651503416141205482852101119401694143428995285177419979443277924945762641096941245535874401400684100879864071995558914859756538430035463536073811270591559734495325333011104661049646062209940884351271713832198889255201498728094794833722780688877782620112773339192267904525737736020205374610383727025604220535561407650648324021576013497005163903299294602483084292308319703057744802899736005589215396571318535185086811215814768174414111170475401295601437685909869557759800997202070051552670389327865867884217595783787552195845397007928339415259478107546204583155488867479018407024306682503767832209852870590803562898711270208649950925738568105938017212162868462825205271518169192727542663629374130775287145621117687140517650443052034446897438490291914970438710210598813921678357569804457679119831402472188537030953920124555971962062307067250695841751185172067718246517782701176019152106521006355138919566648612961091257276636966694371118931011488542369361054561944618822389569557217986832539075257006703796404826169342343122557634126593064650146548817761474383332414987731715338956538210748984235976609133504378896200390364285114656784865068385563647395079086230413281333688716105111207351814152231806869768800941040899028090599578378331489193560809301393860389782073216109988301234044302488617927365512346284206421046874149163211785833294486130561189052439098709144300911591612877619075789830661447135989065916816621200278578713657375275888025196908068428412882850787049399540413852669952891567465199860879916496793782691350221100470004276357005762853127414662713065186183205740246607540554149036777695050390550973869041686104793477493853490533372607101544445125790206039459598744118962406103902761888204863449610760840784647451089152398249279377037280296665754408396745210604978804623306056605956909875168889932079845287385773952562006903907907803363841346975301124136378302754003897473488580246392325570095348128854766425292090547638048947451683045406883675635407802430151804286359370393049167840909999534212059944199287458242099452451489712100041676179299160917728887676913391700333289282305446933454162215023018445523637907243705236373216173509192568058465770510203268049632994343125996819501642344593388576587747198853766849751925603856946223360789984871582603720460420142602346437793093266685808296042062461121647894739242817079089100462702500586989292376593525499846204282177861531112017579506376383263775719716573879279593711727303757055354804159843625858978360294796175086201798088194113958575549168925725863226446571444366472710214481843167186749562987687026127921836504873643983306610489331419799999067808919954653025410372201559349593348737605119397268977284397178102921391012566843191275740695336398396854696591956931793661716648630416416677252650017207838309516558139513935744176922742885493396621627771385306940502792763439582462674366518955229438696336874319822423161118679420293675106182779606009374763148285835609691431287889655370385021464820970247695055680946571066252352432524792617099468286742129685104913478450872991886969189856244363739749527011512402917868240709944046897698320086477561612130169778902195973369454038406056364971856756313206303368892965778413237717711454875498081270751448804481224919780478343664984135947518294184058032862778503542169639544665734080655474699253340196721961745170336825379284577092997954989912180586315797394520663487916006734807044876312026898062115090892366783022309787606500781204712684333100404215073179764465510591954917422008555285345018244331642200250592925064610991066719115297485039376606991507141093263415256343585905283669080270263594448279231437930756376482732771668769092681885778284770786715047019559794541059023285130200057134977726267459438584837832326028576947607929816232074248295541048109650687112924423427401154378597898728717379084020729669878151508541559883385811465789622327146195779679134917788925577849558509113841701437903726358809482666057692501035575934956173395417210393073770446536267165302963573332762924442833693609277726455604054484214466860803818193886601823441523726394294140516628267556272785542918279834207707271041641027253951389112184316812967113423674265108893090658044681914739442487425157918022339580842316579837641124910856496171229351532000130192483860494802220938411995316401414289259866455473973020011368481958906710186072436426972817667389788050543955640755651604368524480858230115793210691369631214009412047577939763558270287263645498014454655319826557296636120286403875347939855182222748222459303297582820414847214195683442160857036471095177342137831142142317525928289440450520978590544280867882815760901718252386615518563865020358986756842884068569614942707918574060633991514354770473403794215551859948654409115249219439422993074791661264788702823368500039872160909734597662939318628947558626972806049904363219301395437972559692920237543871429586846012749979617656106211799565544395810359234493712429959444582257757087464991987709265455946719868727455485279727288209164073174062450637033354832246162299167871876612481354960993148747664739232309449353684924110340625250335242876559865773686422136604548168390664498979707015188295708312577742311168801147572195229561367073730841498106205106994662796972041241331457868282657282007979451884711206379489854099212082990086829328357952208131483264339000326930269977290300877769077584227218095962011198539039009125272077868304645863299386693647111334431367595598126986430448873221495235414578912746235284192995432296770982736861501604981514741817099010390750932171962472114968504643099214450147777161285662744079482329844180257830068129265048341047925190017553540322118016080119446450119007924945776413307617085547828380350121778687318770649422303209143145930154944809952623438133717949374033195809660249069551648901621203557706482466850859945646829000426737069573970021802783956892864823397714766586946963958016719096300788274055895945996583647606105102716701296155138370275267950757807603101568370044360142188023419532730410947215798492354288255385406143314304071661953247864557744206027922298747553969862097345049282118730411830343987890749732468480491638440251707306759134441849878433181331659148322333650861437588043305339823690453151502148933432023267928123290873250234181416867005346726742169927318440320645673191283573052106650555877736967193388353700259088546074272603630104313525570138108042320547903086024820366294174325837412575400083224587612730857551302827146791253624953841135304432033251241835031160422898207630953759966852069619668112781073208220587081702237612321987877019702865099608773412641072037626655404466116381511145191918050988310392555279477145155214526256439993320226478635409626227454949252148244331101974283166596714864990553791792107564971717688295044307543037167370834894077715456315428034402799405314994995642752126757818965344310447984252070814174036469900319080096478248904638074287393150028304574695774099286740531030338383136841022320994827707353240634624794388591198518383831947561417497458407237153651281726582434474850757350158979413892412415821827966730485701431504838365384656746649600835031545524278040956362851867355220884548332200682705825575631516054047583900544967084857747698387951869014127785373950673756068033052939393654024439943015644969093030554154591905007692113957417283848714232939953914610435580393791758884095251672036459447706803747783309838123868253221166459936058509605377622646990564115697142838468124850382121817769946086267427666029612950755443555170428281256941764414717154697566060617389325066830038830664866975404859440711424600472632071858644719463928609962860339998026211459940813043280748136857360558067664954230705622515929425881623590334280493537100052189359896261570830656519581328435957458442222774447575691676834793288476511207122587917300293254582757928392566578029983897813397384118403515431579908421080735872471722240356292946865659526497126311829720981279206691882436024619685105012983930697575708322426577341252644163192374896024261282322827198869519693488701819113247061489930963344421620897908751541732909994907529496534208615127361671717452858050034078145250990388341205806515751075836204657326020950518741315562444563602388781965234886304274845801470640693948075111184524053599905771670697099061137477030560684893374311989694988042048841917208957840240122817606263114221721736323690697254009837222717708224246216009863690684037496457696833166151977567793015225350232388734395980243450571733954575089883845519253148185165410333681961911173310157662003081646232901601526813257018282535672524859497145366054070014518822388553187962775995052523703563225663827882581987418525846701729697724067100377819264363849611804730455449318549354004526614946655342996553517238028481441170783422385090516570104800735992082092551890571929588092266916487252423187112213790155220841445411697997988496208832200736379485442387261195136761433832518585410255861703146125579183563128229183346944159156605866106713379248944851945152620637961777875106651771779862630167808375843297952051669266675458630138258986338145800665563834248273664688164468589029575624226270110303346033409064146030304548434193609037927757511700355627286269997770689504637403262727187400972116356780244147030566779150537819002940038327775048417777229438279806420500557817526157453429442368137281723475458444447209299059897752521572311564076015802019002887263667476653998209260030253619838396364660002872900557118409540616084831082891952167993683696545622561354416972422769231886772600777221288960281370028244318119071622604174384349998519884827747637343875346485766304709531892672925067920467609192411601926533095005939495707594651407656756146952831498226026498043223925685094556405662048750929244604494473702181177104460801351626070176116673474717515488081229012058063487790150446433672864643698838566783465486605024143600896316388828576882799282292804687076105935296837255462097775896249133135738022896370961653475366150589258531710492981280971466082103942014088774111152591309422805432310961559396846668437343146228863749949038789076892023166135666830141049414547287392549731729350100815716509421204850895393933738753566791528365130465713039948660305392055567375839258753430132843474716915972386663888888081736477756582387566166328480985780765631642052192506470854959193682556404265282197006502884953233669893675376475867333887370546679867622420765260117618834460152302124596829368221846763368828806502416361333258703293104557426535436335096283580452556581660697639128299229284278570840912539560729795749526419540571649598345668276610078625158287789989770930046661966564013913471355046434200182009710655120216161958225278128992830417240274038462081981760070913913186134896553325631373591466117662904818446591649367587057384328678947896824048918456225449141771258376965180841595557226772386451807611120347369505521152242478021635943577285642195769259087293478492486914880488270419095498911052158840112268036124093791986270729277774560855323775408352041285942721401381731241333957802922067274135001832063119997419101193273610677495545871766287443493280853364378602825401219220205165407142637942762965575405543624899610273991579374927825617170489497084564242874931543743160090087806775147386546274377250386044171753458286674628114093761539556118162092801865861266516308011663189578206404780551436481623260261287203504750807364906427117526521831167160291774805334740198580886299585565045614518389766668970232455493136150937453019164077430088343536814871558842870760022038210396276251290013152642085513130094119133281926111152935099931237190717260413873156156116812521368698829168054725449196258919368858285520243746653205029804915885105491360546594572387386172699876876029235280208347783932787404306222232785352150748858201720965621178607588173460997701586830711424354821377164971677658934379721415060920103091586906687857356735484363516880658168445732351155343497180885313243163651976633901987656147019803213850819492582323354522688511878426530288825375037537086932966251607886345707223538721083977368454881839378883109890642923090797219052496566664393032995536016739255533020867510780720907004932768445720846760906590782099770652777656349307648099102074609462073335273124257940511006046789031761288138653592438643306974705281246424148354012639685415786393030997595387471379598622129013247541548585284631335186246894253300200479325264606326545456217140027217619279945655568129568719183344783256255332585854453202803747041801173835943116071147362043669844514579694388821518931899478030991340806956798284937564254590000693037789515508200804198880894966370453519947222092158951924999289565168025098090775426131697462481013661638875797671674010318490908110758759741036039746577753260462193418281119884012551130471866469264689035780038670477974547724096714242404117350806262604372817602671538854249161502024006663971226531874365920534079683629756641213479915069902462935522325792179090719025903179824106490925801896636015076692597322181799088920316413386564113607838667236596033295279612376122395286676695127082525325585277493691331445427320721141002605613909289294292527368973009880291505400799057547036082465514672707074197303192540029311709532837521026911121061059489851878416656097495585744970973102695599535456903580851232126266102397119410095025350384050688239618796833088799638298466748288351784757647922483382022167435051351174492508117074647731062464664442235423597334842338145895898204710334904898473231690100965011141354261016000587236408872627521393147185223495927474472702613380630637580611135056531178533331724449933024726204321627976671822806218721241168273870899858000558936666314550690483824352878821186788784687922334873749217232281189104756689902341975602170253148009449140759494010828576798379216566069466505752812881868555218638799576639906736963575599134796754295173315547007965211440113880307392215331401341916252735534409156696380497303630246780301849907493175985189803856578544754619510014492321319142939662502607174169556293949635775272727381394928939583744405517253330695640974360819551109145651468812640082676946684966938705673837816884805449538903417961204898671509423661290374161830959589108247011588431209093255350525324973751721876786326824576812161212854554465001316693474380928948340549563977806154199924911794189104710162482157217778840527161803266001873993796429724723680241357964829684567225219335347231765963866905952957665160012750242692473911775459413985108219394089546421636986335353047819893703154959537729361510742214945557447263355551558941542065396605256084669205803857726878969056859822034211210660409415177639322259246641440794095850642999092218847135006227680304012372004299766117525116088860231620026442088760108373896109828897818071709145973426340554376045054175284139502018188471201656083476278010404250487857437480123330241542677448700054676940698438470793380794434562522309575466871364020506123264769414824993772396088506701862791863210277164534810257885517449028547106650539991009018567158635745516661226038101315212774526990518182792460329777355678207221656798087567519054475177608679822319144647016869085093657915658452750346458847967651314374635717106023397065502363404211355957110155543334499335440873958096060804690263271857332288405215687313433176089567660072172681751537300405621973727757258652272137985989950605160960550262514354345757811150848175045003631174056426009933720044752816373858788042283904483620347376200062945191505653607285202772251638740376501872601226836634320312886480903300496958796003938338004826432712709840191445266328090971229966423735136837003657988613366369470424242125623802151117063357105727272211579562339989326237763293208130895484604624519147925028606630560571994052780536449495959669057227915029025829776981697814372850838761608001822005697512835261808161907868594074322486178830840425979310066014480907304267535243917632836934709353490672438980650470620273209022193765781039891517552069088793736354294466659630667933189801855118152250393838800192778306690579814835801750224882661889890488666208431884885138716125291896638094394441574660930346718902528311122549760078868676630585102822432195194377993445491504102872241772211138630857067115677478555746234523818879076493000782320593624340801074608213465478013919841849388604834032979379703877144076302712869817112201109075416924169050245018343728632862728065741233470624343612371740651126798853197688904005211328867841122948000659228847622657952033100075194808326315898786355189856839431258894025377626144943365325140186061131293029067913462758857755409114851067555398235618615016100744301707617054018419404207475323602966348753841981099181290463885834477145277658688153303120730367469951347480731622855570259649319032498403844362754746006121151856779071593356475077491090935339248270122941091108771991864941681620247233338486802888673293264673905153989293594609283625383432576571245875313929087092144382495760213851742037353505899882458454297756220979729411284204000823838763467906662630081881561750845276090847813043493309120717900438565905172957713510957849726427800814280026170947226416194228250701926239003753513471530833512145820957728731487257985908570707754117832660814151925598147869247218699591994324308808023727755306202959999358746719633438977828987340317632175037357634328657699209826297038197684948304736686437824769284992266030942768937637586714343418902919965337948736752244386021425735524725242356706928191003701098909231369808003560506486783367495776008689771655448320788951163176502897378065642152991795459712022719598647654853272269140709397736637352218561755981283350830423511877299758646240589586657727345049853500393462532025555408401213267850885811658410832102220526710829066580118960523790952255076944111746034740963893780851097832540565157203169764637741851005016945906002625654216779856471752406366470007547550577588719560417584616750428718364783037467294089319063787978728770883545815855119791202484973738169227005228165798319417998433540360601061493567761080201716491536319930593529253665532824573801158176425956765823291462509142686492214465345870363136680822031966856411881166014238811028053721481851741258705030917322634466522856290276203686316558424255225026479636162769074340802276330643279593353494276108131724636393240470234520982604498524668166709060876638164721672910985302928211031839236774824623986010192507856229609750856966343062524988847249765550965944487285619425158395106012726372171525344788056437317219466480733698545063203136778109919511724493626024963439704143440521200106139935906235901039098039711844218987034789359577648934952931136846395551292517505005303892493979078250030032428899369995153017254704477165016917328861253611932362136889799400936382739110127825009449238727157178795260767299332534169810788229584443123638293639736482263120008129904235816037079968483375703436413746704158539416526757071397611030874133449805054670511531860085967087916848908670299041598308730617096629840593604854092166383953488225848113661102824986731594278384691627857883272380671436222767646289264753569274759688568160126709019480896976840302701519689347614664941319633679148743650518886677458710781043645887152544805527960713470382899662880110200324904240984223135702525753561946157104267249227963101042461272775186909254196016326647499723583819127043032229138969602326826688732602754231771466068492141911147637620568030858390323963986504302958474146879212060821495265226527375673236372559120786626596931995516014215809020279333377172739690818104906220872843983422627066264633659147712967000083800247289543676623879906158643324795173912562987288143957167866064110056467489337109528951937039017559086471910258638670195771062559604015693680642675325668946184260837669265085803323493772353264960530619016392228752209048497059669307139776968988033677965155867517776724409145547605093570078352087250747135110891136045012445453872195981823616385028482527196507849873214854543953864587769880624015961800845638505490793545531444151920095931554205873704848025316381145920497636681786697618858712447754086424034436842285052298312698819117852323322127308774439732012605915267407080875397964809373293403133816692282379617297730537170294611275423887819030589452088990319775351287302359372256215812640674031170631078921430736747445630661657348995055616788506952585527213744446562161146185249270450851779769782653333217434213633356117457648101515797263321913799822264795460131531296652426811470940600503600154626277026585276469965102447339706986224002977968377618617303320565154909385875677719333710351569938303111202130812132120270807970165403539515198149990797846619984780909105452741116511473812964715006892046571353158382611545035477353624496693919731035248385143143281514346460384451184825894152708997540330456025212207119009104122172910881507616246748976870164385931480256939353281509033795079074446380157496846300968133545755080353544696908751338558203970628030088417354824408360734843854501597871901215785718613374941773310148066807280951256204367423906114202020733579873211150507600830052379274136564332506707022967111202445506869125944797514184330900720591175914990658641029516081082591459829246111383947218956527722627339156564052956466762623019513219794633022570462850733364121354012230255292314463456001202232865474795331942555339107709807851951969427452177291643346683161952154364508118402893308257883603648905895422333121749156421861677798028994756822983078696752095543144928921237895183081056606478725996066601167490755645320034124696312164560139518150683256766085224150118298483172951317462704552638195431638278058422321582512873595497785218760395046620562357770415827483053969078398911086641726613964762128747196488021592081565148865842487904420973535324230958794568005659157299741049666949469032489691219114502651316545936034262471255679883023657189565746669627288934910326897345000191276951228379116708709210981653496721328047174615167357738745258075964173289848329353696026060666513213270020731022076876434891606389141929530489456788250956537571610633732304952063783399884336362216397495691562918458275849334575201776480453421415973851258013653843175329280677584947102263117063657967026999395705661171839111858675312357871744884688313504608183562661133459994188623991100301219834060176358480148358533733346515192099112031490078858773284298017995266973020873984274994820714003272149544717778743895444183857345849544625661483725225015227516251444259658379554673849496439610740159962824132557101940310386064383508753051145427834449755488520586556617227659185210418744099602447637596763907409983127104117133356224148343920564632258948890337292929276932328254340333984715565367853804118343823682309253387211581798814312141014647704651831034657529247490137326394798299940943548141536523546026199392988391479210299862122914764572886966793648901583879601482015982029645356322768939636210404285882619120181530671950193669341830363672770454686312338562395861371429579170731733462331722803608075516038490142950228443959277133870153828104008532489849440182772188980743918697202400445581635220057275961219660734617546097574443284515362149979906645475174872805666971446946215887884013839334570133859419843563211935898155496149515425639173248320149741699367943584873071219715705900475986793744517743676418068147296214213620466543122893086432409174098756087563081749310373256966208977203312295526878396719727237496647013638577620200819972800263380158194552613087154095972436759485752024699432868992520594800896719417778243641394436472151252248553087012372359927501458554320850002609521035277111818269930018186999064968337984077117718221621748001201539714340758162994473187366733930564255313926844778106559267370920554223899931380410921201295332207790473088040306369924415897429133717013601030072382260096469641262001285926312000704529069339207150527553736185053384328828568814151784427734882626708140114713613220636062397681615806924781449110618240141766740362835954035613368829857776157350056788259783610262683433036817923343244825710318986282832539075177796989876194273135164360819324660549593872292586724029851031839844753898493765424214307754773206679074984159338686713914420971364605702690165094118508276621702043445226466022883591195776131394334823961463917399879905716039986791752834004529062647535066680423724895743202498041719465783031025895779492373558738760399877849663268799786596773859851464091966594002598576709880410169151651476834008401587398443289051059474282973699532258380857573559186913960212735969480213312057938005956533042491224171274771354792840811222089245359585374460723250665421429761100750567097398138689835500961869985577007816176468019337128646998814613119412482465238640294170168281320009214855689142124823745892071961727703613180331171421835018946521323808744135869304645794773467430837143688023532593912534334460374035238268723674656249407576703009414926508389546081648093373383041272294923914390867693133601683357314360226077890436936960529960661773031307484089867226961946861333909099366180563849483667201010294029694448742868888989169427153717948239442548915751160625853838933214880125846102746463237086422403599098868712186239344959747929775823847506456434677687148353320652229945002454960366901097226109025743093543555552935755550398981486223706466939762537981041537583152428542131386364318698068266680720412000079585791161725736620284204192711313964561421203200226327939642539431465975531788907229520020214289699196828221735225244186519338798268458455796356548102357702849457904330986692308454959398100023399127655864707974432257428218214747503077442819045847138132446293371128025821568370336037778454351205104085140388564901109367586196699642070044058421369673394833541599445654764309070825848494110540328074380547988286243364004968260967593470945411394848918716889217058210615008926976390171873230010470181643124146485895988482236102048935771113692372424504007919716100163816586584790639570711667487921611110307684240986430191325507460082581422205478645508116458554786194469516084626294887961946631601864001014529334076407357445134720942153284763799176006233522207826564938152200831491970243216338111011075920816262788212091574096091683720373958307046369244880098357865880352741216472110010147182100938521107866574954304332461839965693465066703826738202614208441116408760582535199974752058829993748108101890145728764155444960391951898366799664928861432388752572541542276698731512088346393215473626792332403223596003794786185830397704473509524056270689801685255100331779498915984401357088274151465311104878727842491938164987818664568222455834917120548415367593832539779270544604919751665541337009075933529777844298691891765921897042212053943734705652483269059885262888777965800852261332549034901034111521881205669887162905279145868615339997931928408673189797479360984448668995003560551292987797077277996942639603564122753692589016943122104945628063103460190488783223807447003596479540668847027507465020703345009059312744959842414731356577669799926330604395288639361210772824503915525727590185130230560017776837811435945021640511646062847113009418130765788097613245714268258565248158246070864661882819171970479951743771419977828910058142558010116445001433052778668722984170900955412865807988140261651871374824259699663755257857721526358036947089660913844567984978974810277880340106720411711230636222488030360307885912023505406670580023125791017709268677948872457741221594653536117065680416181656455200478607411922913573262137694184255379167691607631071551823008482234879459946244495247514125743271432578551710526801677979498502172924788221834156864617583728007970681054520240132640255471767793955065388664136433950438278565511580453505796521750603986116669649357022700980930623151439626354168718321718973692532040585084318453190011091327312942596579032791409881689898309355103418130475652869297932692938581462026192669409832647707444241509723960714429993777646184779938496617520103336140623499790909025226871260448456214561174912854079448227371986353690965102842629823812735251373892054250201387476154346866731933565610941077799238148204309361974865328612519770311567653302571021671627931100339800430769493877170882872312081410403504699582179093459694120305620513076840111396264645276003355612348044249572886262105695039008645096573513232895393346243475060878528272748573912797563815699283415988138856950982010335398420312368987337389444471671052650623989761152555013993947204081056454455581740370021679776856824494483497255393386286263964174842594664065583443079555306175714415497563047261654391317869921849346769535067834280330935762081784599135901205278655379017677875958669459352744684293790880193912451661155452155319286951297895836617747150922740070720139965893637860795474559188070475171663700068434221055004958227146539180624565690493140299957091766338309310626846846889043624449489211681437794036180136004010064522163315046848848222495469836679273286996356093716752139273116356162938772238330446255647158672376696100854027823371336372326853188013116087594889760290854618110467604279613993451734084094552143611514889080005542496662894958270727734086321680464098911193673796466118967380607923971943377404829328692165272256394803383732492824164402877600403260121612221865670607545875752834676988818755903945556267425323541151203947982687276945573663158394912426402712373171584216634467738203035065520542450833431465488729915596453017615008134921812011696976207905939275918511516982226340263386087876750218145787293887790299794797363363302364059932451257838735168831465122162120974774892498509981079386834826943501462280571676509158847519838770717263815762483302802243464284216705157175582931908337499609122953431642287913526158613863469848764269228767420993720290297459682251138401931059858900936290619485195608111972016759409538387030216776943438846614399250544425305804019452150200589609785229654381111042458811823163862676397349495222171928180651624707932216441243759488107558701164989967545204578249556274665380387729748392235742413030942939013788412845566213532027737949495074846408234358378725029695148103394591719313316641817341453952959792074704152788216447660941417488963057737971247102647241060743052536221144475989185922689879102625285997081181640311467362512488197991160894772523392776369051612761311147242605375190172535862801295634759362831112312247971116320254705748798779072747113099710669869794921186483025702067236446301906189240433408259282867188221955969613776079829106621243252762168994042885372453960649821216759580911495021431062261376820694632408985509657649315442288327431643098457518297493659734512307291332567928856291384690606005168621308043722887021062606162717857481815982411772828018954926104077265782225687692380262380944152579996571653545115510608773778368558455186837331469217889399543932179499769814179789744584718139297171554687744304799075380019987130399999206179993640778158557013809548648747771166404102537834577332195177106160260258892179977300124282045475572834020326466415098808781025137404721036214701839999720269436179787723064753568551355790235995416154842274440528704606035959749254067656772008656749150039602351701474922975273771776729193275897655294612251860495252348566809738698727769490619097221806961215628353431026915331170141148542985043101536286434085608887454637621761280161042879247059226269965335507539419345961063327793785494349309462150325799192872474776646971045101303072197302505306295758176668021169324419653386662598276373903627186027972479555819847781841661231058951760279781125078026620949859114356483228730193179738492547392994776649035843670841829637295963496383296642917673933362519380767317523693667100733656069891119305002599992989573516267661174450052234129814657477524693149900212327501072240467888995581499863496605814837654009940395781336302712931316311051889238802651096255090077786851382138277817852946755484511557752063800724887318480508447589418183794004625081072124109108925363873335751803390741053892117614975334628923294035300647593756036850449878170830361992849276194317860271926646671050791484223538497658184584623706908415771703103219387926822822564699904538087136980925491207338262181216108056041100181703458203311859190010589071919729082016293025299095780399994591569946368364846248363137354879459107206095639551085356063058814193020201194757163335988532836535449173147401041241293769081257990602205903761954925350407149411636303540424976554472131692231951909810895810877178302087051549597465111530521495923103152770046845482690390566341082348885984062958100821664020132056052836815679116278258339796344954863528587421120302890735120446864951345136627177207040851778847837726463587864290994600498335526494542494495068610111165616938013129522572335368621618881088002777513628283555495707073745439466383385351843014974679333821768603634574000763920232758011412912605056796438442009763991870709585996062607849552697539248034614900500238195077940170107085568303586339830947815887234932615439317325455708364940576321060237974680214302146432729018562610874522540610601739797107593042438053535787286916256834619210956204880126615082874618559669782915165468124241261327711890307360377345528279521803629864897162833973962064387289094373890075340284967151375789763365802546427476192749097440683309757265849067366970740392393002967468044982573854065145721501061174210326599389754250108890706409490235608032543642118361982010380938415182408229835637449053269179474046007353737683269073363329862327353007116794475561287177514558479627958462600781402567192583282778211806685920307528925828121948066056487937464620279502721867894538490539456762851231973326679732447934840206007822864319245791404496845806337573164703943307944209710867736951185488746029600533076535695016368788602202868987363257120440734044360244851127466670341361576244663561008862538245841786219010343935450435800189765534278355535152928293266110895955905148424079095114339966931553725463721169174245714278742097077204440978979505867174770612221972369388507455131062846677221337369412910830575118901579565598317943072956322451265158235819450764573320794742185477251095841665915668291589049845873304394941415431319258961678755809825655584513768522968289174955706800592665044583468292423173050709772424166296543992770647272795713880615829316530630430183050056001697326704157158990701911947487466900101532007041910421360681560751011649385390230141853631397351986459916580260746383224011327699859893476813183383188753879854917050581751647524143503081697018904631554053081066145514077326869346498122317178524999901606614921761751388674923180204845428501446765874376826841768883950373584403320481718668942949715770014537272706690933511113690366985811175277120734668740533881344884943372550373873605404235346151138067339690864166826007184176188803109517587033199377850984313845545017841124645349734349968080117975261503262051924436731813694913402392350439493799409433514715773168466965734847269897648752485762106428395635864652897071496629616309973411720347247680106037358321485637762533759469044997837096069184545818512691956720065520417576250698323329415803099059177664287620396351436416951232677068057131507612129765314324607267312091734725198257808449927712805329884504219202856085272472748673128410968908336395344960823002714048445560304773264900281948156547536753760443544033686830766097979617314354053482652772028733845875510567582695174314322142635950822690054952423784116724037046299763040413423301776341319391187134749076257538539005512242214211498258255029077263152208058562072588583226977058935526837467827888799199562413831656904564946209007169338897952087880681183274723051813965084661289608898595398494917754706075341040836035386661182332826447813206766462887137752355992994081919191711853662340602571943328921531492273222918035061818528702393472474926651607070866745316660425129946802282353158330496315585967512165746518750000977713367927003287711480223504004702356002912892671756495585867052673392608790925051724924271389005190344343299483779223749343181574282622195808151253251358900394248044472135349299095613861076608557273909989062204519678987780257676608914870810801172845603049933152128285883757336217957604941283168019986680557867927750853445959134474121287658675055131450017370885858641574477516857296794703612371514363661667046107252256748345386871555732181093747674885669433461870192379363003504867839747711096325874042655341350901455312356116214354750604422011830702373760784337720159479736945470826693611552207969853896986704881035524725750047968570548571464200168407296963387245639931329496900079392478337746385877745914124132432101111800210237802605540751778616378568835597401933180368267967907284066366199550575788590507817955306204638877855234133957737066378292912926341567166518319196312245696005221979457632561016386092618324173728361673907924507982651242133915504915023760170326699476629690067564552094433653147795021837237069399450298625177015600762039067234825555927773934086316682075441328750590691808185640452467658925166740497964937040144829138574391407762811145800620182913997950682295772944385489856828850890691298773873759838996567228201235969509900605291866145375716596366565602212853261103833746105927142115778518288662964626551530714324389572849797700283879289154749988607989780558948731384754827453730936221459891819415495527686035853852552964939910639151119630503001564264008656985231748954710053995003092236400139905827909007264957943104358069313710448899260479007960035573392004838380714681192556031338993348859293795747915925499818249010430797368152106578590824969048398553551185803367408843044065309447472529962792773775174195098228935683435177347661398948702796352226563724242847224697056334179476775397056783770049356883934252744736741052786743278188840401205210601047464062245263420374051813082539247797192194612017087196707288111058000556176704800116709015734876165488340462701399751231211074265416691439817317278732967677672708387861499088335661221097523665522041207770648566155119417345472725830120233819627656844610626237382000855937074699724343217959122012948127426423573254240360946926800639383012421021684136516837891401602192414519764723227433337463442601490009365899642559630638169366775450104577471322730598481752799462662738739437800988056417525295406642176341824039841025042404768759027370008980256364207190347455188066795438014979414264294157039159101280841828977629878879799370049192400224132372637713121779905965377153911349716607081276604530250280827796018315894990776795854168952881512151657663873299961461537913166682223027302425253182269878976814781144109850968450772791322502355597134399173028304980174933553072795651311835294061751221662994656337416150474447981299891139966135947230435069503585412984638525866879761716826956950592937974084122231351789385958791044757168422284265769563195637830811338921370830003618791888823779317882922532588863070849501501932695504428939778837149806315909661122611001082576718618235062461882396685119164027455412792021945955280116884066009186528230168334442805220061347108258122652593396228456310665769661921788068586947482658709731443703693975233754761351592165011220326952035730490669959861309597844132060766010954233122030656322894581698220285492111165337799033780189241857532051608909395284897082914808614451009805474169378886153195205612271441763476464285595903038770200740695558375497986655865119587270173490131882198116483455383006419595386792048955516552504416519180727086821014592335585808077717183624658065304050740186402275721242477828093345847726969119366710792462928701591453839469946297783833349699829137469373877550873603064714581937120051724956691874569880907484311768968703138557842899888437595465536591972222614711808575893301881138178515938847189824335456107851530810527761188835449674188117674205570234465227331787306830246370228050309392769903582302731349825790522196615534093254832896188607920095913936623288489774766714206190061564887467974047413337952680736701847096538717816590161613780359329624976373955239036752170274445399782608021060848767831640204820084175054774285139389774544128852292586625609023503894540061581319267491545091367869304803144090491662913621155718104724481882485445153797796865517481178742875316041848217486292179163004020345012860227827939669723276583324160348114241196442663307914587617191727298445599547464758024276672044584125320895143865699388428477622101933651878518585470207665733037981809647816390484334882757233873428750979690672343050726303105051459796520427425760278416909075063821661845277534652669394453447502133130493632663030390941906705412757487354195901446610423302985892571411895930682249792116112357123070343379106731495463757831674157404560791830562839523802380927226732486938706208198868998343624403015519614383174500052007104581877271908375838090728844507211085278333741016729707817757941128057416852225770858227285044289459980668531680007468435668643227327734535440204578692384129874826946830958996947714182249951425573987234943870011309418496209927449149154538050293238202546799468777865408405559723405199737678681515868795708511045334061916335546700354693544410938177943561475446073198864845800697358919619416662783630003991025781522074316383020437640826160333351812675373434480602819692416494522043957317293017031938645214317386852863615606317067923374966194966075543854486767583759738031069420399094882253538853435782140768984915206005732947761799243329157101774425017580918982773438396821447890171847382791968360724514683344980136108351814746029354074761230034734283054503504417391229873653416299809754085247311524333824671111289210310303159032471433632576027657255203338129468296312395295991270586628008572132761675860746016638322221883562106698671527113754520538748084189170166621693308607322673205984579600369614547871562193602886719793814621607440463039328363079389874939341297885938401792608603180757909604810228900792921203490668105640906293972980778246876815921961154085715696588471095101900224511347738100482311827683065628969315594070449941343014126230905912527142957288246618845315046341211400340150590081675539371254435477818339953117710378276154069773475429781398284264235967602893706587265999983893418910207135817487076206658876263968947648850186349895417193528762434958184306775907442903349756383864874968170543122170233887253019667222880834394059496973751698210599568292572122152303787279321644271795098247094424791913107479623507767389095886326379886044537755698357785889108248861265932370134625387037653089854413013479088016561048796602894385144890628813843154798031504519817499451939208802012017110781739399260326411729533444454478940871799517420207809865863131411724184220743697791329611186300097922843923402804922454090958816240700428765367685474568547575639439961208588968713506392535320773779459228489187154520269617536851063657123197598563912301475326271845103390998929382130711525344525626023673476000975232088642868909580055656286604817822482191792334281773489078283141235857234939718132894368795255070192264914412086684325730622824924551091113478946346992306796814855078561011228215847156447989229247796482629776495455222369070576699750535383835666495751018990217709716392072758831263947311804310868001033078149813441911581801769785012111141275608998772036373909382205474864432918350780475516183782211926501601937475579520481393320303326483006163923419562434563827727518932577373459019850961763138733847312014728257944740267175378007816123172390749965299668372337071606817966913756066158932761606859523161303192904704864770680150739170073630780393137173189365980229572754579840937247002796354691250447886335719161340364543933723062985272822124884434658422892221243766864520109994367283256039486089276787237083514198159504112873998617640602026493950615581430075900546782864041774720191929589278521411914845729211103460605453708001476294136362825446583253932403967633765776033187708256734823886043792343631087801400964932654348336258491387254233216461306944749200157323136060168932693211952310117886207753500118453006402716284562505643405277392115987633709157582018322397909804259100335290295635761098352522878272714790036596689931931775382933780359813266508532571606085326859563115120704914523371380532312006705474442959494589566648857885224829446981913297726990951996818946335631537730326761327474258758609788319287130837453542029065033916068657161714273145570523021001731659492349540407110207365094721665018234442318743761322044161442595577875255478997756005266613676443033324418109757916479301945817826943504073503489729187784613910024191960315762764889761710451906187804225176465136457958510232732194092491635155557479974476166029699100672925299288689884608144097719262126590206242101643335229768208787573466203921659954137040714152721263305602594435149661451436871118669036804129803628546934643115037982156938224140043967089957594608936960713207121467216804970320199622142396843033347790884966302583744515224942987494538717292651908796219940843948267898327035795396258646032702181824409974144483739530616950152833106871725893027373465078984876325651452148829112315239019467954263570746644139779284748407787731919716470094942532436981329807859342166034328204858008913340900615140140640910950918301111209066109838147161915784606236069808836538250871477656171900434100108168099965990252269254051718135408630005647472555208317956809502228440746988481716143964924392517573550280241347740337667071139677865689527829289083013873435572459509082330896778427154852395217841338040604378940227573836246051581484900028523624207909903888127675119961881758290204599036194878684817605324335801336878487653831638869152086675918401415775819969219819609495844900938047088409905513049919952087956312691315715674451150137044716531729203350885306759994491995301156761475498608340939209248007629885285941511296328736275072459394114254207655483325025178283629879812310442009659045558390960655850143004035967980686719401006075946298543964540898821894377417604950400901106913267955267550050704660079159861551144091163603070295716093987821499013434709855962978759205468718614821464366343616207095519769352503648506403492044408166187769087783531866673176463313164980587098195885214273284455278722261736797889597084111314243359249461112425290118502840929035198263629620506402792871916412377982344153783676469965392434482724342882445888325838879847069974017020594977966251165248119658570735718178664223809215927096573601091784199802207995397522628745334699886890943285100006353152851759754146820452998553767424936211196034041934508787048595863571667324722412052750887377017587773599591575203724662716345664235673667582742376133843822904990742777459790459520957893094842357531692224182463491352516953884871527097901890202617066854600925588687968626457606204815435973120349027949990201352810379605086146929772921965173666126759700424884947099333588959909080529732993401625771821841976218726695635427960523446984342899555057578580719212541209098334994839363959782950124317091061680661437010988984881059065312406107054777432823472473789862089744405425529019726442934740977014664347197181731421468371327935312097767716957524886028818032613197158121972375200878274493131811800707893783413102867545950779217527684999969676130376604227925550532659169130140779254664716752723360158512061483276681620002196286506551760523731480863864516676951871718784878280603464990777928835075928668404108013117054213165453264462190132621269054775357926646318571360178432299887631899629656082035654936850392555883211571795035301704712376342602402087159026132010586800923946631459834066995228873329726635258116870488700186827853407662911205938054919232786506721030028700374692928151342953062865119957086231511435956869743989059462072464086950309520888283153099216677837033454480072745853812302964152118470915609688811619999577039916950832370315373244099321703993081421643212449239929154685524714813378268437159660350377712465844546684691275151453091391513580859307140503332002596298251524239434477315697388438650259731849336910738129741041645793320182244019710924796115389565332998738488329834645916513302367658273466691364980401526454015962680965004980040337605273008928172205333513378368191638703350885274410657503057015654113037455503893767417258550797248017264784345799537735083447717763886545410027307021862319857767815048971377712423288575077755549875611085005392706997666153607723684066411978528318208186225104029790063888189477775892827354822099300656887836688351985645248682807903732813972628264290661476572780503280793316258863021545805306094297304586034922721594084188942512126676009463294991854223190750148324440213971146116462270774139956701734311084921180624340807308614121057757573059995376370225892449860910248972883809934715267704910941039699508185472114847355692614334426992898368666561264344123947648776996423645862459099480355275258499302099347262810906766518442837155060606543062919838322350686642239457395775286978434660822750628125635869024274724352263226079418227603112852544323007958675583038566065432453999721152501993976906237023380173126398381479723630880641717855047059504211016272121160355610498095964455373818061152139283038156837274698044973628278909388815111511083178133807217033893576119022435028550540255575662471011586954835030677578512034382054829348227042321292215178566186538867147188255961011019488825465154793923535392483804943634755516871045431322522505259363118813650687558070592333574998948671987692978172003209162966719301038450926666881353140828226210635736440712693676076954527470033749423224045231453828591651444119266299393779526727131912004852995947698354037644708584228430427411576423302756259508059199861079037814469333063389222586107167227087504362212375655298769069142428250440650256399075151430497015358726697271224159734605072782989273183898651687954877729569846290057483828562926832359764560786230920180243019100869419285438021763630520500793881340595803275711545538444358470303413694807673139731427709158317872955166622807666512818799419206583034024249358271204316891699173969810062219300782393446584157628666370865079237161334061652832439396949491160362579100157486421529079675031858957523566672422651180775285126419241031901232005246226084581873638331472188269477826007695481753486654313102775749126480913609843507388263507896833288505895858079021071463693233445659009064834606609767809290644564071687817178528493996552119391052662075306160681100653464759520071103373014952137043814976214231651463817904184394373349674904145534875175094241201141159239352551778407798016051350026502505953281781896793055735530072735377894898895185978118122497356013813200463359819687256486327247606173503646617671417212591303482894222133839288995020138970161516298132087387974253818882159559580110167194398679934192422676025452127399040936975583888233467559912060794791753581053247754015517683235348774326720957437525773115137169165533249221130203486488314115132555076277512267418422711072258979071940958038353757490743447358775442351168349768428962509588350135031392975841458508093576402164272304682904900717601874197918054814339709332598194755672461861453125863966125941110362290099193686114970570467717038623817846390478745700276830604743852691177115758054072041085299751928400220838110441887296359260482641701188129471668747646661781584510958829655775777963534806748797634345051560198508358740309083135270989520393620532767720080124441455934878688706506793491445591458943589533189795171265123521958611737695836154200871494595341440483772049886780904480344727679198774076092519014175299156912367415339322410917341845916972071456423233939011338821619355759249580955113576487107616394617526017561115927715344515648158108012222349655287376151173997079115120349537842097971674416575347113865964803614720711736134264611349843417856096246386818752976863659597961489340833154445777118741313127613320050480631249777626680325887218273584378133618689013743069778633077425102443681189002000787094299556711128412942606293484451803474480645769596545819229734817228331606503021305963752938889104309968071636376336575825796451427289591278112550646869420955349154807534535733943482141914481403317623295762937377005158467096308721282930138606613195410622750961009490056645926907272462076671495439875549024439034433449812657533817944877147447652302116436749938264357449840839340367554440212234161017476162604560435547275760420117012633344010058110705350386055542867310603226407375994623876300117850801813834694233355016201289692276561665731226458680044929797375073562052307476949573651907046607730047249234352737575418875809390150774458755917630656543296464617425834433917065289117002078464309887340902423315008661070020943708143686489256576677258627784658361507958307077646946733817593354688119352535993413133619403136603086611457058311759530673620378074397545485965476126915448014993757743010962050963756747221712367940473239685745506381606871298874476387668225008665185160957770195312744131938877845991486637877007262455446989399835883948080258945458376030066629311901944399390499690529570862029831141920884390413855823515530509358390440383968909475003384132722525674920734287990314840320774405459452745027958780415734038241370924638504931129489588371939101542888085372482332972941853973661972544217226790780769485578324142449270205483037307706234485856502116581405319235454272049589357261239308080243313566638266282380864715246669926039914376055536705082552648688156367864120444363226179723346424765623649824522307603599411906599566526822312271648499410340910768402143413123480739581602817315360162923674187374094992508804152460382223636981980756218489914750119299940536773474394908753165823448495172183736344491559142483010497369847177319320917619578662151527975810679741006566824039874546994740996944550789588215050593901821152840260147627229855760918068432658972971522270967371139316186449176645793403165189627410330992732077410345557727214960957746761521916128060441560616620027830087411961661483991649427117868110431340561599395077252577165709766868983686102556069969077185984909626339062739310347990093915330512118843537469970783572800296070991220165167058417799182987400643231337468034795636627812274014768022869390821293214663010708791793362665125377375879496983593422593452536325208021677860535832622216332307246757125186585483246130279421189486216992118242989617065078301904524276671061094179833979375231192426177963416713679941227961301037453422324783063095940267688825596169415366710607144958111804831243826499191679157198903183659900135676216092033157309775638609152107515699085514312962999706242091878345985540820934873024182275839118190550153687035350111589592390433809252579574819690183907226300893490976855974080361397317648477443904733758759096240673941434119755754817779618899407718164527274925963799522102896420106549441744502208831394195752620093388418595742944958548835514309311732413993636451173225492079911404423491372632081434090676984408821817003705028274650772170656050044486471197666434349442445541332206312706219432305720879803486853520383381616866798224675840437803702311970499399431569539840646042718072808530819315131585244132292620442940815389074269154655158566046447599799170224412025239006549905538431203110264112732884199389938667642596615247615898606536053320869107067893810259949873725706610147783144137253072789869557758564872883592570013400640007768794049877386096316460996405393178287129451307722764897327340419435714089285436123048982633552377845027259553640059732423647741597570874866869457060315186529074509595361029362647340368000291716346085185204878308413788339007555979926023054366510198560726208711389367575566043029322798588650892918735208944384645661638429995118057236526944275070587939136704907293160083360089795402562643328144146033638016011968569197037741754735286076878476910079304036004210155217738013893715950302192422498451763565594281387136414467785226606214191063499048990346149312586066020879474813819270967574076278619618494757049798143525500836607633224073293435441234846486169556225165020482026065156915033667586216067748086388610656394915910682300607363957575278751140325252683741885186158169503308407136422173348266975981471670941513458107210840205333607101116725266950512624961141930375143171398747548276493003621032705976076346826506501581544554596428280307499816401742120289272785428567084538179018724601232243987616469471872990769959204096274666146110083695067242552431304007023324791675837268624124377923086805334905312428916202508630569625081666115880022486689864678200070863021094675801210897408381503966923060938467441754052612797899601702800569706386895481086596725496278690798483948744995472498252428221675808665587309839485127657803937435132400594566707119969866019255705790918132440701522311945683927362171150224613127693672116915634586033914028414271942091131324384448190119290770744828178217478475075660447773142097157448207633109400988299414848209245072008392778405227180358014200708221185936800074043520060203160778604037046071150807378356944547871646823335334407901570603644300202650155793631358968408025438210767641724551141996163201284184206395701286442770622534750820016389893431563462523320653904746475804280947313225461177583862864923362146805359260815277599658561528744097025046033030891739928860934155170534592392708597892813530953812114779225827327127787404416900182892340492023032266806432881359141161970048826991554254237729827890225111604881468475564926776569834884130446142375793987453191415511767737573644882212422606898305194306731600561886384985057207253158318025437574147297946200086099592055439523254096253822434628912636675136517700853858067204215161215704328026221185447905963381065410049550784605145649165966796610524770796648764129658998360633309703514085563241230924511812726485148793093832093670219678604601816167627310269487089542249908264485963229038544359784506408903573379858645058016007023260965523728436815458127022623124061793509488528548829154843872029418206000548931553838729191585270160190819074028849602900356243087603547333179068984194943775389181195444753424806602630527571430840882524101225566582588187393326323505161839146829078242403852731946902183936770918466073698510533436113507484255192629095120412215229940953126979705162035025279629546772100614071782864764699454186164843521545351410078673572113074673635002878785169437143227446137355903913397259069836420993936696133657750001822512703664334460930317968765204303497811916397320562772916457793720063317865677513928762692733766598095216225308803555384133006683915474122835017840899707662915063954638077982697593134017297531853122158067663969986931199096351348140635620330642885878802974540403503163169566045752210016595738323846010870184484925299282255870889173149518278041834608029505330990841593586171947250869627437651416448057660215016116995659169646053881701268079813918850237645116275599066703143064888280873618298321177531157622636742961078626935734406693861526083741217590785950726700096044706417276097178134638617688512045626709670059677949686962041854439037653391251631275392184184618870644871924101901630733408468852624772434822412890303193654489031495039350043158944826163555281038419673637975697604259805795715403827657268968289417863512688486936317826666026062423234334167930349751328653154517218651458272833715858415165171461809706914077951207050034266984849260959187699375184876644159714859434221041784069477027378259344281965063943763723805257336783339448477029134550096018995640391761330993748063829915888770665694016681575138622306414482205934222119962150308870872535989663169016703467319010505135027601295103824886310604900053336938196560979547369309271990808619366835873439905362133452802425178832388269586596814309816026205258395677894205667029457992149235952351312559873121182135054163055535051015727733885971507941687556086082899764975317609503371717831379510796415217507688610296424198862068580001437071195192331841619378461717841727244286054833741327720417165892673874463151358271879904999371396687053850959537230916636390398275703756578442462851344364461372529383188997210598873703468067982055553009169007439816101888539868864956995883958742606555205158535005834744081581761141205863261627202755076046897325095298055709408065241667901359890338011707490299436333282355080130964222797549931686948790000269080962809359097990637476946421076158544182882136474981966473429100837051405287540249961723259924320252780832117859982869207739134433443217022336252988867543188110205232337397951932004615229566506669326322626969425468849515054210896180696452190436344012043859128372632622259133691089305877047433245291655105974705844570776488619965093959792870452662256217780361527894739094305685598510114303416648484053926014972239008061307295822408169101650729490065922617192481564726161922037228559979297276582904047121408380683512154215399980409826770692548507169410817124988398039145318992102084345865056575568728908852264089745930114874429301244273451475648287124153314489263362965918776186771439922267009706036658083313571610362209606491093828675779000477607668900959181032891370401826349294375229603745192913898785509082725391979877352589577997803867366882397901075198078245886500030001938852728555342134614836674022705969648977612473812823245174963535714200048348515924723226280512479975243850636712169206282603790096015275753237348659146976512755739136888614407809019257104594912822603326405003426863654148912027647673931351165508628378183153629095003516084043495833358807356803432702732077475715166513679928111123576450681350307561750950522351819528067270723154365482095758410890962793679849990951818018122988374212526928132039848956918839143819131237727247342489652171418571906225885016762040016944522440708231311105842277413501475616776592703970720844950780180816289268890391061519635250126505734099017512610632678378135748229834384614674270735651639040492316074449080447690391529689843157365896039675839451576443120916036426379773308303448486666084828778067093723128709124070675122516276233300128007999670358909672468180186140696573997404528926698879212302606154174135984186297760581852878943836345987193548407314814022352099131450855551659797412696792551607233886413971883381293131275844145640332081886451454353392958944487605442574274821836063302558705582365076070342962475972712579644521880721005984513908528825891595891739013360625588534688167626071797050377519950259740490203078030619462286280838516409135330297958638102709664331913067268521459748920114822157056780219988032908268609613638513392238950605049940570892631382173413220308631104473291113306850382215873235110386522739097225964535621974394974451043419624393410243965230874580745826304680181048712976710244400026133660769633499551837284951945148684763614883033263253155380610481178923623845513228189349816742780593309448550861501561319387459807087360860449976223731046034492528267820881667732569944078143430828596093452126384287511668313573523557523276620009975304976044355740428324834118341164536814490451896639835683042817697934464235286267039031851953060888757646206211028267220193884061432856008034285021405434771318064989511331799025964883369725882115985229079705112947712867112968789992616482603122505431054003081256210967902710337996832087860402722370060496706701276020290787090208805958019732112709269313079090931746091355702022381282538643003909366541837818483782786759840392600157562139779917645185202944351112284650186406858181002995968474717700626340280783729370236685075745504177505864584978620659751622115136637742686440441755191494361555660253987900799111678101233242032148312497627927154844994468022311747189275434545061741909251998070909059637285770680184357486753618341527951651484723320224869946035705419067093676909645231930442854791564800078130511901833310006886183969379865679294543404310955980451263381011022768314804047751401883735141633842263478564189973014897292835075990216370917756092796035705508431277656463986504736284939600262645664557042831655483244965647771213418240157812334078917125682500149987209281903710772309332484810204763706841355884724883312406842471527616698715174528149344887690429923008021994365664655033514699752682087123271519076735418732699776932840975659811273632046256778798334877814583000842697738538919615696944756125139218241613054218783439525316775425334303501321757749148582978383116897644625645018381036849345956400977041709595353581536929206573634569275640708690192783886438558620013768963036445182417378304785250566961483454563877586184662556078073403203819849437121136396986715441096023020812043417657461654768862124340735773779527461649261564930529291554352151815774789012384964435896967708042699193135980599951346341860007105087641990743050222970654284703186046349878301425400282976449061888292590283961079270865939585948485406337438342573115033407856149275142926531181365791862240931398721747801522095042027700105752863675701468203675929071583805305232698568901577416868960155104306575628410401737741242786186408919824210233673759435339217489631825314017563101435754957209807520153811785653975883833170572273450881726889600127180540700392552615591324914533784287161762606204296384052687300277992008617952554884110732557028687931445408074436378312609297608726276312479883356315740496172311385660067500575520462640158899961447476548187990421040581722254801232955833219931877934457162294292558677833244834731388659746838607260799591430193507281004701493708961047373067892840352374288295081304329231969990988976213615574549720735469707388066523429730844355631454216437815654729492045794906388879382682095926265585115835826330124722874631918315794142085829505236400839573174494415866508104368750199527405167112565725541145759866707580042193569945574740500570643855178996276100606035655571920127224693895212228357231408160009629163095807151171550837861862512691286063775077469064706141480859619020765765738797449488381456314122633082547289013605539702933052772992360634114064674727243619473537632855950175605172986299768503231292276523531338301882739967615176223126448310949272097427410910311725762328555302262132898106254836002931151878071160880408018872650411811671440020018899706852596186098232136966857433974564776834323366799360908008221859956441303280380170335066326751808528451835415695990953285904024800900938060228554784166371761604468993151011139660011035433561069359539899006597930693936120629275002589509193060899033600685666857898983176544971790629039195778491564148871688257393686576530015542987088439756163834716919575319460860608220615638728030151360469547099837684702067092241808687639927106351175930941562046398294439777450153711952485624034811836162799316298176637196800527820944897084875900259206152465752294639698136621550481013408665924060724481795183050016651253712572731732391752422419578684468622265792584368670593940818225539458164710323383778075124621376921979787496593617165531533371555187139559391124386139382503866326420359825446923459478633022465930903014943136779251775388697375909236357870135922365184368456961564196057002663674872102391595295874553467557209324588972413762012458897761594392783284545045300906599797210677731425558790833535771798328100375417137909100819617753599647380101590283020077099575988558659629126485585552007265750505733549783312438338563814728404268888165544054420019801574556305419981337874835382456464633168798128589564946282703792331058024396954335957854316967959159748207960883072207550598838727743959366126007344029457797899115117367416488701531022479474453310149603757306511783756077825129809760271279857189928279982955484588184992600887017225466074393652138912271036715658894304395866834936812327281400700690003202401195528927586979111504223241173458344519860810462508224562486073070072944665055327644561307579045010529293150355992667659983126588242910443807637693537016161896118700797388946112951653750107731959677548465895839623309977091110559529249359009681449111828124829921544226532459565848125631897684274009440760448010495996180887048798801518933546133187429277624412413081883766800537374697750747252200087350261685023414826647108703602437773351437104339778058947445789399454956399062014800701200041961506888205661064082225811319521389089762944277659634245368426027390155613147334530258976709330295847343608189324903568511212521095218921944047931115605283539613852763402005842395342473288952900077299539280807454414435271406601347706764349360799139597073196215924086730736788678849726109937755207131852516613752383223543149275792137798945798491765156169426712090708043101688611714774019469281506295776243136079724914772582860631577366443865221414116026511060642873713667342603267209673565181584971906805811754613774480764751461228538516865938173792355537734510394524847819944498729410121351501775173083347810347770199946399052363894814545980242740052228214330125985735560897552619584167595454365648919537532862845618637543645277752915801779720333097621374623939853833520489382343545835539644466776707277610067838303980738961492745768003413160802616008054437408638517906318770913905363710907199931884263412197370089190226928961207854143174780340572147952106942854950393333487897051168808561461020027138541677432342513275017481854788453649352052730769080341137806076665890787614412371581025646363268055083972237948020805679966767470039923503091201681604027288921846564381813863391294874043708025210510919611158722510340578049278690888456712637108647327695299710843686900194445794138703942871568962127535648657769633066261295894252862607025731212081726093516908704938566240485608508175070586329013096619046851164646297500264074746600957737855898955717964257567580711382066551225743749418123528602761065748334964008779503091091603512364738847054172143224380679688265884627413245270082659194867771721900247964887683344328340107893992779484218048942689964183745494723711959994949547998299012166388493165285709216794446567705543181192741007714656561254841111458501721440859535048745388329305166260958459831436805114344856622337790646809870994345067770719028211740514339276075064699196296665500153917511387235877352354930813557910410822972986667202892129721710583090838124258529600803413712653394589358158755077447517022726418254477262834141308101422818619995300870667344856479425363704779738344517697846385239032548683282700344752382936986062686583708404655658629034646647136695037918804976648931256888503705408899358139405751275088289730136416856532373586698389625869228249747551849052626650406006130339945098802350003090858588993449425528886915472087264065689603905024707447012060576621730131327016156794032135766859200644242765127143336948173667813830580441851202992044744081040441995950172825169828983816445459962135411599336783581742012369901810791638294385158821825876824047182594332287721494648959883735157707513001551201824699747502838093512088057801301969524914578390954374344267111911033523068498295651815381094908879307240152057054096560516382625058540144276407645150546440436256642189157703129648323625755420170339146798201435815266743334871726465289350788050724096340888052056590211050375364172484686086341571568524429193516025082349287956207346528262868368596902426053461163161522553692462631090697862816979044325003116465719360172214311332956258386626690270456330775958403515110351320988441881866745312800270230478058027833383743782402145130846337301080906349049290253080015857685364408002537975451176006834883816669025639089246786763125138755650307274516925386794623774992960308644073266838748053754020716840586960200279431189885668641278556748204706564728730608031823362193806626409715564012144017539542883631235318501443178382461906391218507150204322358840565503876811853078598185777779341075404175937866962350115499107556138516194658186401085129679278391904878965364767820728941957779773647310219329721843845561351125190868125220312347015518563670681139447860671282575265738386365341622178746466393664812242013096154036543160361212443386817933841871337531058557821341254443662154119719759331035709009984134482493363615096174484349387232903785714113636697198031641361462217326095168638540853887012243922749851492722478329607290439032783441089744093369162827837601461386949826045022487279233360180730020276853969059670164326959749336125218709894806533072907430197973722441183022328515819914417438226435841245201301302188240432831433999477109136832628791905831628810419376321089744312756745801279099761567198204143116639780593460505983854742235316737450724294246744770522627925070472591329731431710960959627807673722654921160163820422715574327221973067431233986906422255538137784272590618212331793701549327198827706834590087248022439594093456613226747794128103542324124328960685366926080956608205985589061558583093352697241385252913820984627678112566566768665422922961891419902079025127761629759117102096191878008184134643976882617783645961853942491726652716238320169451598886985717047613181707434028032423268845123122384922663658163128368190081871885637926731929822728221772385132465246408101701110900054861328811043469218230783359602178196145548034413595905735240748101435742487459673428286102685902856901873182256591799853865363473393696785228408331167335624076891153043171140576411713103188349952388576252775248422582195670888207428074046357695158120456281344573387856925310287505948052956936908835229862070542838001692525003973398922909099480417619999358518370415770686851360367548307579156719650426866444747405176837584150386743608811250648669111973127305705396288355112854082952431732171172452647357794475578632650124489173754132463237291430424508690524755357797907732121991777308649684654251011744812220488136297781865790711580614057425509420088553824449438648263055634223484147232729464680920898483248426373896098600651472299841488389865535311043623866566736458595295974208490159112083771187812394336307694174540810832035662900353857876024544424651113797316292606281021800909683945136726072920025364186799508666244876551591694177665119845827534082751957992219885892301300181981163176172980720472087884705196023205477317579858122846952539246692257292400019990814240315125510540467488775619956553187970099683787569464388114648880300323074094457142074419852741752877404321161775382690393014984066395546361612433539262818066704059433281400701868636381842587477163830645583836099879036790476516797159972371762386075946810021582151704069722676016679534457588901059671895235237982032605987153568927953915590030823796034280556351084077553320689717390123062662022971402756892373843271224480962387985441003479412689753781597328285199414601853247933309053213868615739275826425229146675113329696294037161259756578654823264477375399617104632813864984506729437694261313123126720733444585931053670114313663110718319314529400734112491995077578221666916794826226089402087688350019400244305965719857991593819520810080835012816900399470139839899093607636429264120316881964562975845700490105494513872604675986302019704184805196802829353251799679494844300444842514182538513212400545827093018417993897956231914966616057447498500656786194240015681157157046701962620336261225766817399526548502343897425881284512880044589265988238741193353003619748991874415008855316202752686081374712464064790271533277305721778229693753664034233554286005720776558797938216188101362553660573903207691970517798042309994554978400088993148261317866367930983629218555248266845908530045003772869496751287270513195924508523866553904951580288618626172907700244192605247778938781047328481582656676016795841280343623473436060802102143935224033923290214842385165238897544469141655239533304511146270960577237936076848195926032421696753278998044285477456862457966185828741596420884043250668143161326600998281763821793130544297406731203714473124683414834617362031294413472224513256580627358612994038254763122362764899476952930825443578989532084531014217839973829452570588712225739073239595757321296100586771821220422002457503983862640031300230916037257349973471768695291926971657649006876584195633368161157336655332523445526837974418888706623704617243361402992936223080014193727201946768045890965889568000710493560111800568769422261376161846756246252164317194322494730107827772115480704955707847010913894130888947904172091802554164096552902767836874671815614494233432907868531645343535174695497784437148367385749315603177899789536149816091999504880396299640475358982678925865620297642009629298850042576843192327024463462350707473326285131695425864936893542093321260473212154225152571954562906742844561200822478254368456210101978842873954012141029397804054581979398172070601729832320587333663770625586185152836147686199870362593308056530794523416226495089331688197705667543999524526853361726844317046162124142596605192510675821095796011706106780022318973529972737656924086021925680969597561841322624478284832417965830709725972797004083087719759335863074296640517721591480785130903255869750493786878536422559775530212110797931067880985817762061934401339087231321522846272751466369253416759534244191450085866074284647041825631084729792220065259189740691779325602186412040752466640854982772497004648255282706300296957570507780709203071132232744019048082848749467320880829033678103717027689695006265846176808966204605593667561578462253123105452541135005294387525198029323874505789992826467398279898765076593069114680777919062385748364224057462383517922751885586143513641939886587324779968057205298857161131249142416846616985523064307920797618874590696119313368332061161331113553109193873319425802763333888233563075221572024125634388773577648427444868250020911249078642964778449390705086631906342971105035323959126547485841160223399708478054783991987940321526828571479594411310870683982430451660405759746074789309269496341598534577291119548003399452714342823422430581916169029077820618096699101942666646081825823845361490639988535829764193359624255380362071989427216391550346572273662709525020693555274363431926010145943152022688405257772563468884185374531748902559752722305428613350700113419283835523053341002896528014503637072344717109037416116333519512150159980698539720531952966078077991423245189453096506997692127007363093995660342565971365310098510325858956253791457613992290751075258297214355100304236801980674289197474077281642087018800669612955880337865321909049431325189920161760538664168615974096557673220192768998105506493173373978214630523728838349471552027298460406912343354620002268878514615493599040811586822588162576260697275848793319566666603668356483188653545054533200515354748895894464711601881709303014057501475427898318608481232214337329129264726667649291680011538751706292847066467576113446671589449942057886285436331056460006563979444556504733400665408714266832770598476633128902137690829669342717338807920085608983481058297975869813697526841952124237797417809186916098003506500903427525608230619069210238718838144246661646490787510385127055959912749155977756993758989844963311470679801451228335256436084417681134636031420702781615861027216268960496597035213580733958465232002001316914716120948203080062265177170440433440691698462129436854772930947701542650511520511891157974654818289007646804493304310170095677997779651954579028195958882253905867145436658269817907880423110691914168501157483863163173861300789867149049692823788567739766944293796741548223069501612020430283968229638284885911101123161907396866335742092488845285100970500842287378866358888301268943291491299484816878213350724874349635960932410575546711623749106636725101750529390400924330976561416843654741301302205874600319597781097151021142478063861848160965750473902389433834908179654375688124064018962012757991583361021531018542597191484461865086083981945492332809831189816766731770655736694182913229606162041722620908813476375897429503374113670233802687624339762916650930470918457768733328489059712247958788855458458028038285744684245742406235160427160682037451725375630362496406358340041717897444873968599791872320086026648970524703860868981003429854415083998825402184267131848004462609271184046506453067279042175792742917571467163642538473528946428778767516793276995998399696283458399870809722462494091682461257427043013935446956466325350110702619521010581542303595558336336929587861895673582841425969123862963836794517874579725912472346091273140378353101556652488598414889452675817158683153828253206426112791161911150053382113218761030022859319565315816679360798519489373145691271802039820037657178869969965224497450875849292778515672563461364191904130083625276684986981192707236715887194385033330259378598460495088242287378569908892099707167337197112863308980913879552670297179443098124246714148640387355722719148864011150647790182482636825900886451038772588950800602268038518291053809286714523179807123433168600800992861540601412256902880081425346900124380624386346160563648518287993729742165432192723984780858514476445271062005204730330196403527693377221733412272709277362444982581783944807278190108990573230614158929872254951778081033555741858416379253566158266269051894148990599640275223788814967987607073822849159149705012877544763526386848818179926386818052315538570334532963740115773308833356473605783758761224115692995713088291737986552749280004467617766134689294449951891865491041968412082800625875280264233911890316560598554934919913934269679759308317863050956255410918247488542608702487205576011495918893805174377994914991874740172578141415696496018669221033557084604420538649956837933919003341175183861789485924626485801660519726053287233769333462456387292369377560133472387802978254584832025832719903882916939144048952200378019728184003124230341253699115828927580019857901433441086532765517311049349633112555264841638992841008429761275748052537648335355112890407356876694775433111564110160796843686279182073931937981183846539141303365723695523027576267959843809175395910366591726250203791293152844646858679995807205572965689321215127869988673642338597677481252712093631351614967755392338868787709143775852675244118135083010077179333979095232099559878663421124221169898168370368465688245584361545675074833196413636281272826492224330969584736694720248023950896212764995420256767428522040589924303215575490709581424988971097214347286615727129185811734695908470826977347425480915266364410228840910539323674906154869602340484458599747762040924766498666389820368684013338182703962095205251715926395853533740877841565993286731640277079701187001660040566964985771658594842955773024213574275032747071026177248065466541167719633769800527728291667638958009964586820324613566565559395566480807027112858120996573006704026801780376438029338817908037929243568972940280654109818631316561416521736156896601053876131967137320015747079131604392605285925113740002438203132256584765234260427877728240868903914711270160088958212828248195653056939105214921401128266945503530111721854241208509191532280983760691702272771855798842705200201931284195112565867061071330172399090650776911996174838783481119365398577107150247387429718695740785336324018846358540153565037395521294369700913084958980307128702836978422496839077029245938025999997574025316863945307840113197252613559872205265645250095622772819415051083240508816653899874398609291167503845215475755792829587473380099807000771095699463371911457903658496379876235821398999815026969272900644615571441584416580948103561668589127851769310903384824238781958004648265233451808668487933776245745134005031121759355301672374433011236476928873205846388220834730629160351388503537544881579442427228714673977111105079001870865142143652936661388970067136981058224852005277302406957241990744941566430034070291813482074219582413187463931873674377649035053812416227085655809934516469447552179803772419947650219146954879962384777906982769125954828450390167954653305159818657310915420643043998530369654502073263758062495484567872529633557987444620891051211779917343083453306032816261710492884156410788841234510698321454039897069918021762823014123615708605522880186979894317170263745711375633487388918808529349414721950477202961865925373005083350614898728262729999710217369923589405266165600560989534837388575917380529859951633034697349547329236167714971204961094449226668450281940796979820529866127107562997688842322046433806901106346469311711269605697618702171298285102504636413549542942803258178217966755762681886721602951004154611253326646466273419431687510221320411444076099058087660707040050613416767072972522435128332029049063395549004028067570648533128430691598568560499799599276800409208401212451963783492326156072721674563206762362242177992219157093682477901663302382837823345989372165358199763008626486726800273238962059474718278953399071258283870141999016175849375051152735167956037045100444150580597814367358110792636093252741257006376710875558899033389607580387609038866965299591394141922502451022987844026891111921241817456799570875088467593576463222420666383256631046400434774994094519726750524293161099577421888787880238163406796326295344819488000762262340779494705835459213862083045531317944656361920507106770791592745180482615128974164022603949478874291367998631470909546371361441422232123476354111036912376693577474881467983879138868601535417362578942918485259239882059589540872642981608931454900992811322223451847865252044684305340210735207558073840538770605904468506856121286604901962668822828345792018884675236369719169261230648430848327002548100817788422498074926260921197817842350651814895536206937628482241680546854308430705073044264242140736192266409519459727361693487209256781526068393124064905366437072690700193525477412631152967316062896230853353076683244300943987422783626268283593735082683816311570678256147256987120668242199958790656712602541110410864866025119211623479135305868861060138369077593148246177568359799685898237429166191445302112889082552204003853014276184983492013369774403107723101634842818825027458327480343981893481095051303168563918761985518315338793769563246968215892294249626273762663837842068016370276706933446489444762376758606225005580782547684421725617592964407629900010669592167611393996817511207629681941997542269078495323962775438398193897746172610980535912466963501577427837349572950674422429290188459429489140991930374389252266124852966261312743185558232133508520684290141339840747808670564381051389171173563420249032569794579874876233971687616874985898481359125377922387311387112933250826083068298058532590589002067141631163498053832782672400629387213802526420526864599415938372538651651759058300846148358216649729266735593878966540863644757702099255999458086996257749660419965247057466147299589415633460998236413711842643235861403955615231438139904051646739994804815423724918402117342509152186943791318060763501894097595734669241226882513277045215301050498424029956013140089188948736816219378650849382296682994402964335069108737601231519119910381415330544809431740820085810712091944783536236152853221640705233374530041276111241725354304278156853002765776816428205635022260418219506514363899892000550581675397575324437729746720361464489759612703520151617898179273458185330755176497596323984429596503813012714307740377763321967072603652502074410086077246332894200960899976858309200747730207849460696312868676168479155139116167920395002632346744006681240230621551768749220964740658537542698178017217835100443130127547893918422884881047358997278646369344910328855998625899189140824343476219299762468727837443658473558116087122795169334136846007226902010970381768395910680567191876491275457015383958511644589858685287533736562720080201583596758972140004455475156162084105870990186205631255528181956813723383318779475883147805351568557195691556830244211955395413424962623722647300016538104719669707160204852887610678724484537195683012731506685057726294966826505926186091320684009830984859275821009453072102730887964986034389471112451915990866342801558452769319372131338706885218527141998132745378930813638139834448937299113867454855113166022442911512453709035105260369394764274911457329639378471535846877948876105400809794916568281119266011876158199637444361877302588211819473531614699698640249336355199232425568424600139933563708261402029542040073131703772151916325113610245317110191150998390882087678040599291000426727236091736949547476255476126515848741385691498280458491344915293561124644910896641105504475348042780213065386032538406486887932459998672648582283133817215472970051620816635605291038603567480172296034066622513996559710200354371793904254065689581499554715937345419357014187906619935078300919739850514815876120011987622449956850699172935307734172043749639144873852064372856557326421716450999743429978869691870574421351383159568967866054230706047686844211909424541698497090388682439632105201437201880985870967210949400550376929291787786657871736596345287389527138660103663482117594665974555622108356817221033800505720864948480669524877795861755127012027087900496563633143639915049199531392916557672719621102056988528464540287986657226048378179572358020637894525657282123118313977981572211884786913436437498070975858353042851955707272823014101254053456449077901194900291961786861796415100758990234291467085582819465230409241360303441382682009566036388546785945685168514083105909819789098722385489716744670341916572024961647935714820381517863016051885353817105302850706271472122603261926570332298379963528771776746922798362076987244760337346075025160805470371574560323101945114242084279481998227715293885149116614214020327149754900263047608139385654182713375933569673701502065167546253740145087099579277514275953348864982627571838454077695793457849972665228508550527131350138324597677722274238435371072765636418135493985841246036600413290984649458361759470210573564339539373120761898740031829615383486057899017963580916052738999037290779621555554784868806573661980529808282071731006650724581352148376443285071515923501593082926748115881896845769836321727351564483250518502745698764523853198597084185040909219696145373980568044593738384922744613815939856771528133455359796926997087497213135212908771790783172833772711035014664203780803659142234310748083642729228333125830391771322305928322574572373355353482525516383911566835713532113079243789811836563114241173854580083795368258168861326132615053354057716431415554180469516595806621106477033823834560371533771032788123845291466738158948452103348056168224225407334051455974440530291703854207076827830613506576926902439937428381035759465240767172287843194572633799877555719128934719315363425393954610470351391034955395125652252857045610618610770741066864947888630352900089874174556076836602671237866975334148540552422128712026431178463662041341957788198384919331652170828445157304301450971537070235184291628266392916091626878533715173160179352716256474036368670979058132184175037761238182753319444256681961635524679648177781681184302713511706524183908428124713521267993870620077614332364477141408508196774131001683555908442094523740156934874752444741027319571321195761518913591156791334965689440555664445625990790666981340485765341675786053316560877653800237683103317012516085967195131057096662532376184745185851716787511527974233154878996862216008802934687965719181803941913167625716207596055144228219033975349799057125220384683081169467106473803307256460110267421164215872817413470587557286772253929803429810624246772667555430768825976455939665486455647743951317513023528268373623241718411030728604635613739618433077442640449473453929760747727306384008192602788573704535227065620175592407380881392668188394406731805891267192630296969625966909809188959059597374885043261274361009976783929449011754179415769279505283804382286568539032403854508181259732616642751585186461692013613174374452399409418674251536328406913007253243275594976126997623617104908651431470222844114599773185603125717518120262934190276341693650624314035681660428152482049330887490853445160334515675540262081347400243401090856452054683085686060228717863137033534131275089876327833325662976831559589750626538000542869902558501600248770695881932456929597393179402713117338719910598858678707015397907083864791403058242240369433140861890097735664193073295519573286039100655903144713312412565933283227413810246759691885940706280021314755533677099399744810082623522804282126563665854073316477936190912400233416962384340578015332930758217124130790505169036830514394649943103915711937317573804707404327716879092421236639636020513592722588862125568486682285517209314010610438340781965255914934378031490366576446935740407950190632362390777027052249164029238039397248386964421699405747792259108190953939804519424710768196943177027892677802026561494409639470846438682967449149562099490241115234339104039869745638863527261554453412228290201580077244885184693489259785580759602951668915389312694730098421421745083724176368336426997165627687846839060537314036944200487752256380422460007817743821377158473807561814209517084265142318647237736357090377760814415316288090711629522372851272788603178241581135279939791744862799039672875783406331950074344157646827533678187368210514384003550690715874533929298183764207943442812495607806283865864972126025355523737566490173496981571045602123903272832743415113096801814148945121278129513307427264530398864764032233679605978499862013161180911398813500972561495081668905055763033827121035574243140372870446562246043474145022886082222926793284544929056868572224791316301113037876858323964738617446817244617092154876699361740111791102275204862161443985970702676541519076875758931379842102625300384862168247832826165184779744367767265926217424399544309347306058178006017422503953854354837505574373859678698976407621137483738870211688871761523566339198781096947662598679727958582714705714386095639606954334240250491687066884257241953460072176057325316215742272805228331744351367758049605678971788310940880596331040889107160950229036061822311108352887059056915617324538753798597534826108363799436548844650884413011701080820408383339328137587826895127769078789793699368046577108205353394343805276889936444976300711476091341373384846358953240727222995941109132312303533760628108109332840554084659382052484348578977364350388712008019766504695964402247606364575167961437969159106913765141323222749849341080516891719062091160870095315870191173205401503849467212354354555546523574706789116912637360790800330904471994413409559746643367462344939764835741577865415528494269416042131268274204805794117209642217707648731295306633564544401656580135123736056390201152123338216839966971149241551218307285390694185752638591123228319451904982033254740418024135064633138756470119397289676253948492839391208625054791761955457012723538876761188847600382129064958974503717225646317559572320926137012917037610910631421148224811339072223740196871029210253198156668877753275526653712135353792651689465774619095108432258210846588426742528962153584991840660786396477589735189360390059394665991604574097375486365884320583010929219706333835430133262970919775766937985144518670625488062271142768803114287083142304481383090390384038022067347521894922150841901947714347838317050953006400559393872637458224903648458437760318539041209326654801202836410207341132448067162353194566793488807707570984902093803237346700337813442139043549036435372149764535190558602381310788677713633974354631584764789092220958090957739229060756642311404325365776494571811636130592897962575154274671037026225457770111138360146706585646581615587704394153604869534189779615535070022025703642885086917726574124268288511272302733151852631340032209325597319308639528161823178831476950133282231130200032139200973663747580750379049881165617702076403473506461868366966167391082925059365136433808554251119241613209570014681890319912116997120150274670694634691881461534342539854883899767726803679435814935139773765671359435058798311123103528395347794952790882181185569109980663520618634434999745605647211007109129960260335977933418847871324936941464388186982765196873124771271571413577841774643785330554238768658181710398750463317328176650925741811376968667429413957319891568663940117343845379132426827911031944782466184609039663886709244880603541967822065477511017413635318907594460930108897125486784085978362113857814059037651064790911669110076134494260540749124976516211862370754466596749376099407453995305874486383142495436502353420256494610383380593050971080367346433686170506471306661421588251094331373033578898218344747110660000500507084904064664316196932111215706893738086854781816162356533916593075065546905965249082793342594863346163263477136204113398345001182961196310764034530625852183740187318465567234509465020187604737053360113227370962378112787779838098605462699148896501016423513051060185636480062198213396534344017404006693751369168224232217819377655530186290765906978285721674538836122514411945884729316821828862609254095565500745895142895776882835253873618230418695169878399932078061391910949664558407221393279885460327970010045239176533126066429753629572653272897987702260987928675466698633997982971674037204613774019471678024250330552947741462335958411030640092550014856632720915076800615451469897307879988575590830291205190888404508001541972517815366140520855419613919586313701608934477749226830130385571029813986914806567918596824914633294149519478990717223846266506843554148814636405381413026609611932450977402923122946074814553761287051760192646249187502847192232938423538330029679880939946385726110774337063070439116152337251376901140077115654544297627511676605080529594555039953314412053619096996914862242858183585123769700527529696025456652219599332573690619546597604982430292030839465345566045093676633871602144346502331848461196165229600575238877718088870527985483612392236117850962540764413550324868422102952769849020012270861820079062208355773230586421500846842882926386060969215683453762894478843381798367229452410288886998032841613482825052999036915670995986035497389299034828989185870727735858401097262131343685054665714970553499774209650861672771691552075040784186458656528062152996784683655773230179759875045715826681909873248085498607866437158726039116430239847811761803521599270620320804799669476101326796304529769088540166461369355578230808284381783887217775038928530629404615612801286929657395933528847441583874407560959244892408715157819105302059329259820803031052090287395744574892529885766409934012326623184388751199028696178655446352373259682895575741766659210756084854220516256852647431653129455447204426075797685498415059068070894615445509603802396194591646627208661725651613710084014870670599037145130893272888666685261281312735671852280694316121197842105448115313689227313902970178438049211863889062531470884783149767684327552329841904537571666968766985171912708249498523233158334312115387628281381043503883978355877739248667990365020777446272152894209975456745253296078212452078721492958182022040802515585942112383811433179904636167533401579097761027406153439523833030525917763248446754917982822143438825589748672774189261581791852167297957819849399009624687862675369895091006493540658246563453101359249997436279317297799458567460267769056069713925676643286431941014933951518741021627152077560950123066310661254992587233179536081501819618992882868589086129114579233111046212597686372005251203009968397076407369483812833146553339333292180376325424052938283377921967911552356257425630261630279390354088204812193889476375395463330370839584494087548022179496319401191224241905566877181789349247126716060185549884200926593471142610540449320226455784875170758237488952108811441022243615733166751193338883756633244103611204911665265646727719688025266866231560096778441763523177651422535653351099708494082920305575000349283626331564465053909668742326633026361724308899629859111746808586170292678767274624702461838238733945549347411005214290946784174163488862668877292967041627796143761259827485565960851441063179673742846872779809626367492793665128315803251908901884326314385703131802472110212079086248683938088927039687235342223717101708408651009871982109333944336921768468976296818709288521931828092009333983201690897240688035737594760127464141053089375721546071555489474689172999472929282325472826234197429326788003561415997458216250251931659783872380965044409524155815250169958782117429015751791190575037173302773199686345671331931422545106411682996912462201004076913143222027066817358925083269547034957919893372957175887985600102357677355888788751647933641019070731824300495214672934220086811766377024303543998528725238452850495928296843955936603794276106722233249073563384338378480928388628281397907580977551331306378185093916144068948173352336156060176469778853835693443077451263342735480017916825900224498741076925112893540355411088509070753843994832545923019276108298020661136642968248785155630836944754170882445984666346769433500265967221288624151698259124398412387108765345127459121572783127599027228623841539923226471761271232957063252311870649911941449393466347359134030368914910513105215936175691272173627056889996142662856477206043064943507922922139902889064721693275756470439616135095311611793853432448624891017163654120136472515852836145616483493223513993144552528841786391124923760412452689689369599896580816726511716341473660145143292501475598404156106340793229264502037299952261420615971856396505695960316519808880589322341869064880119742668157522964162644473640443825618156044797163738507582193376329487514753322204128400663454303776638800919548881135444813906130703189083052545179271856742688970544834017895224179060759257128285225740219045055204840629038644665177819837278050389685733623282408317386371154225762358807270335854238696337650077811014358312107284629785273501424391702768024852867282842769542508303052875948955740276775276760546254338055425615460505460831323580559078098758771630467017645589743343630250818004101116931959246091207811056564467165255003730945295985253389603983144201976090242122651935193601320081299436386628606296340868567775489413803811866122729880798885564295431239004545756875830924851805789549543383120068147968602723090157929271556308829134013996131492846538375444073376694864123975312242100570688720407669895536906602915084479408079534226866621458763608387797311706773970462730002390091444183633742263802213964433710941226368318754510678132029559788274030601655531554941073863151850428038510938402633370214407989150462903014522518790324629874740875315851057088692809361743695254864070627073577878442987927043916280415236962111688542769623875141087336680633063165295271648123243778449796821996087633845408029747889821381880088127532451407959814813279191899135633081229933457562631840082550056540385710521203204669184605325986077882400972188911816625057486759576199069012066405658186969831329887161266704833550430553531905670267705163642196282752169472695518593227525980284724928973054973545546240073920424398921094879934360519365019684080693492649081833526176838472963622428762352691300270992593200297210720982282873927562421964243510354853606438878392380457382024648704466934005586462686002317264220711487968383922199035121230412035211947787699076159190536244018365383874677882302211408953093130147541766668078109167507150324948240044901197873367758574293191467957933371097301146272671850260098450494300212612709939634729086889176000043601057940182509997953771681397192949799264465506784785269804665163162805205061190723946334469179211767130680842426742571388900467944628928473372767889744024082820164536346157570149851875769659765609707594237070282515733405302615096664075744623640901378201591765512422964241074298293008237256587304833769572876472727110940238534670289092610886535555052343702390928795756896049694675083759042071633884528500331967385751303970042249105592796540019368558900534314987685662215237171143481818270596362763591087710232822752020271013394928189163012288029590124126763018372607233332740951854915872075595815483068802364607186791255830100542383475218291178546835478215256892935972941642239744037486631941626720223738517232802881011700160271291280076559135675430570630513357339709559182299642320200037717277927927360252445915673057554363597311237184293971291502074431628431882700202066726166532418017518067430537733737032771100275116112988420169424693957573462219114509297032447021895566136619126241040775730216764548524790797027893384417934257832985007446475712095986146568488633211613433262755737382436096607933518829903031400896852952683467470501190884460840550188417999521626827823483859035674999493812497414229926081260660390511099500609242745283933996928237692630331197964320754943328721284541454611959586490828888670870365394562331552300397997944330185596550843700676197942840895844311221904018919934945594436461372747056914924463199760618336577104997114566360113834858397363824184775526063161030376862130923537161824133185752269334938246731046777330202637174151271526404803964467321850226617691463760391543302821099365914099610942287413548887117211781287349516417212614833793156128081228055688193508629139342854788443695958099605413473274135752225891218794084124150428134208105134894663678296399635757861079891270438900658276658080742160264454025394222501532591126627552683651998920808201093128991173840337136121832642903003783947975226820705904604225905236620705283068928307893838259323487077257214721353215106250442348505209235224114897487700868054438968177835619459078577288103170349455759982487921601050617342681295712500816096560109039978179620941551857430100068059180251692061622695795398390695171471516655130135849007681569715932053478727961625721676449585802976202521631425048316288938104415353350740446869835163598703426138557411705452432033021001829549236339835309520872923178611243304602803250074530625821381126877986238094020486387207503778462582732760477168852574090589317185237963126632106911513888005021938347755475395864304489069321878244211567693083664895084692957051130408839493933425126395426422567447250293404322192800580966087646953812664796274905892333277284239037669529935174189258713902902053352743722930096213697367578007983109818884054313985736151179760186349909026555577662709709983937476215824799716095479092232949150145403327603311841303828104169778959398641957881409193347390684728212142020230998024946953359434516965305451331585054923813499947216832671504883684897760498544923566056228127041416860334780966803629158978779941961825824728387761959445333624351646062867365380093878975687880062737133397718781960181418334636770491458905978831066754934112705777045407590302750735772815090615952069557146567154104382240835657467052428999175479963704507838979580377233094028593778763753179749649277897126496771854111520185139382656900922423117918341094842532923470319436869806903771952761325772747646508813888070189458271166008035521656021618881871481870764497532407866765638988447525492220064275394899985355331581270862453089085574524219996299563049197869643758376754706139185560018276439418285885175116166839001112371009749122724398427728257445208571022715688749740354017195048853761281015993500137057807563206922605713780979040678458985540199676718477448018335973178355344969594045875225908708356735723163429047703026810759936127905599162588171707906550660554671704464408932254475269456428972187179237408037477608159130639645618494742598060139488252220910643161686652758650748612880679169331172870728470516256620548261276099719632594749993083498775913138444248875448085285061853015629729010732163061270061367843848900819557835988647669375824635467081705798919638569428896599161718367238616055365636410175272735989171622617583152504608831032529818825268429012587666455679036117638082177006305696831265227356446871699781231537033110742110744551410216883402183823271862695227925186013467859708280254092656141951342102444363744255841708848002673039429895900365703238316364407664385188035433682126429117441542062874048305623954120479582715911567045152122926427600211171154545555228324944703859157181038123607236973095896471349539546168944507448840321239371031559456124024251268312721627162081651362452028586944274082007772771535561734890733812348742739928015611113782787982060817984707793484080770705323952896630453704671013976379828083347160174808597850002097770915444052403490466830611104904815957908833553592311510451619212158179567838455164756987187353953585502736509508946216830295798258706336960573907255755453730512561999916215416489909534150849169987292454408346547179403415876451476358292762215767620686529020664485176507470825614435947650350139328834267790212045678321362168254447386796526277088379573555093119376714462196535203853068807523730855913875672294991944012954389839901115910568177711492792000866923905479884647157207337857115517438365203151487582184672340466729736542044783305345847081612654182275789611291028649798812551550273734719813590809347074799416882782368089389402750775487760569559184324802867070903592830026139284934206400373386079992484329339331993188385052482897170810455281891414834158187932628770403752929605338761152939449990284831844087130108259600245440310219463334100363911457025061465912262407042310843445791816587736487250108820771783768318864049090115074563352649094957215558260070693259008455895127601299580012478785302202021077798100768490165235279864881888664879809813346110212362852610352061213647682664355463355900764497245541186105697387238186770151783511097346844770596693737256219266060990635492343990697600473232931920988263285999601010261691410212889328478915624723785803836690869642197409959412380355788305824858520395594846683507222494458997315874196958222422591180828509541600253584427881668680681096306091370724392393020462572657613689930780742222133780205377940268163190930004726256931763931732400787036771242327543877281847883421601992972670836179884040111358715570678993669087996004719918788903402686940797146169836172954420846115570334537131407314018669950255883909591251542726222584661918948267885078688235061912880166918169692578496599752598944375632884913156461556340964383962995119359776110583047325873765002455720290630015553548275967738688869403990364684814264237017696089393072582554130285658546356735599872078768322729422450749581773316812891211575864649566466504887375929646809822571120840003130110459545394727805155746145876429594659787491671508852632687714980647845328730012220486318614537893454735964327230927813146961368754463892320954711208018823622501006900451581057619450681875377185150008010884559140118622739690361798235915273887274616043026903374463984837014508844324086073240704508705925576984328445002212028052847332171151225791880174683038684325819863970349560432278726269816363328509414893006990819712383508344855312804335313281533199491000805575861701208459327643177833702212258143450139763509490893455649400285902897202846520642190583927984728608545864277546339253749708684404974517542635055267751648977210025260935262695310400066325101683595726985377614181273226777970452883142326851200166321810104940532540719454278204379132092778068527848722604758242963466494751040603656531303477622942117611281427394454841557092142701885869482153446972714667652907225439392979486643744990723495400199110530861994605912347444032438697319397291122772642561041430728277110035922857180942118743590290551317733710891469708402669921524301698131057596353565763016541335833854461591162199322081170661593680468683458026239664467642702789951792084508176669443533283504599993843773310485916648416533198265097061742104323048257785189914050133962912984170191485087038499319682794785435421202528760927780574362327635200402351057981516967569890527859146349170436425788899498089002271959067145720602785432777937062735041955347033029827939954553034430235839721478297315751924425182858295904623037498197315406745324891855085787777341035593072948363763525207200437309425014825670759037940632020833696298834433146261865933024831759434221326356496966415518367192936950534915194111190932803648892121673449824124583204155793437079436747871649885082525989707697691012798749107977495692312278896101487811967405130455111124098737319006606571647627036215143845485302367614874869321086605619255300231973572579776995133256873618812595237750524300867079406765087282184103697259224946278351720111338353833579904004666495093224038153469398630820663882022827023413526050820709129059001545435890336062703363237786517414233776595025850941617044409271110476426942164076755850471804704258721857996614957480480721452891931620463748551114225434247862656210595843520444887211778953517077296650688601702832236571503946665372475745537070327718106848867876612235509017228078545975198230659787152302487229859282720458109804068213916828474122623746822734303638712161145564189605156505107280680419195602259611866305778585078855507135652437957345458654407035174734598215404741400602273730557749609912949010402316946544680789950966367893592387589039284717026378592392363886697227706049686129109514900202670925118209579828281821714078041578791285573602599341281990183745388133192841364637698172612060118368458330768560959381989946105945652804159267238736566130635543218925288658971538482642461624947656852300622793850054058281613196364853609883927589801415953551934837307259158241852566138217232040214095596367679964229643428499055137821389622362436312684014689286120797025212906877472442286136277069516718392116433783041784935634143039070677524456170072078606617239753986876647857974605356958433480238994554118667663105172880906661653185378327268665273164897693172760801148650393769206000768037103392537806404719879887500720031548752465852099551382178994487962215280084178302447876947907398710241239873884935913846560407186920839141819129201548930900210224873181687949667695265287188065178767656509068955849314994210553037718821923404077079247381832829363130789437989097572526617333131762659486875042226843038773162944966595987738952016190761349644571263156642267683339235391012045400990648962330397971167991360446318081359493473190276490051275053686932955756460922190359933751237085827699184054046559044630659706258216099591071796239370233375037028399766189503715806312924454781339721674043342817515420549528689980804533177736380381655204615690455866737222697035374279089144832883089034825704076416525252007768220425548527991010256092712712315791720245182944775921940786606861988720775116278522288458033670129527426101942375125099378772429477056838525781867546795600151608424905761550145053869776765271727808889519398013399743532966742229421829022598327984197388221360219711872856294609339115841442419363306815850228630686186120122897739922578801241109389229236131114158696586457272854790840865308214771133840241267509062945041665343658969567427313096503217867353114606730232362488643371914813160736876265220190188596027524896578219975389200927479803367299150741907330819776587158603744003269330020794164098399304221047744735798483146271936626320299335655454752766981956656337095278640578894457365703750031764449807002152423623346151415832261696196637234929452430748903303506760709473411810528306283522300196589717304803707604514297799480945188028821990513800734621427825985482179400537414019478459688612735658247632860938341577270814748873901508758899681912341984220922448114432873453876219278711885238971045200734031185284173950962488087481509200163245775671696903965127035339908839631873790002556014297268336627220020246759113589611167251738399803798534454721631126787661420166421713173285174095808332517617198973533046140324369294967443066108530774155445445305755716970983013734408839729029395504791771300132441189269715435646010433771944656144106219581554687138954742716894540981653309329317151848310333161023230959885734658087782607858780140057070793154650130485163878673217583174000998945877022291838823808870249366417998858831431838810411512642224748862983801802823143638818728049146141965793503748881036986325273470625684235253376914759949637115930331774674464027415199369221791177293974195088126114684504870237207977476489710305688317575529111413036985309163776281459252379198672096632177117487031994079640100834575806431169302095244911151235762542191058405012591480187189103210325335671490436095669570495124959769612838864266620265860063279375032919126576884110372111993411854788557624015822938637102680873492258143743641622908281125508043230641240692704825768306444918895832549454872960213028059623070848727860043002495386984690605684287039355256169288864036348345834104029022099705900012111482632233219740844438270247796954843282697360120795873161322877587568983398493881162087789041478994079699503606850270627659508123643098311730143090389241895309243437907539621515915820237592118717871398582264720832163286840404309226025752292849447018439633515785907358117939027542388671220134286526415823572672361910401147778843646800711650136564341588342310943093436318292691183363756829662551380238786400414838372262571684034868512426043207928416611859908935635292375327734548480510511358566865457769107939914754126955006582460855825167620392920085479068476231414282246045140881383191664279186978882144791822137126612348191627228091477740531297838920817703287462963443079085062720954844818734908108913327727904111926926051467190475578115975176423768306625082737220139192772376442619908878990700726337674631680745700568756135020767409418721677518859826101453727757512716616625504939487125735735858505488768463372032607857266533123795457262446739309206784099031533073673907433440345782936180650470320348141245243357989083231307747735375117760025784317120275428945861672019201056271491042534352096841226077218097157477163045120034105382372524640722585462429774802521984986767658793201585543719207821630775882125082367599234497828266762448117778090012791150965784652184278608860444838416796588360227551098857541950528900636313862689317147360169277927113301326107276347173964368140396041293291451051323801955860643492056755958402799486951781701857552461126326886016881261804756486185784909481386423706330048315808258297193709923079621437118477106579520865426611684879652000574840348746106007925463310313468879930587114388877186683459108214389767626230354803311420887089013596416027913027414768989608843413064036418335822034316010825143265629399923335548298450134485884377936739523682244104074403359618951756899383511549900047058719424537183933045911210128941704117618316235233077587713320180808050624627858230704862724152350349053433947541934128849633235500804318672785893663676600956076764880173631515810242593578700552986961568000195960031359107603257310030055792838479828787310667146343553283603712662550092654900123397370927577712967379631145373243248341991101961740066724902371066438951345726122663246621266812795906277717986223250681743268116710481326052957096549016925055897274748931842694037962508301624508873927226056163303340055239002128287855297663676506427049114098558122360470946275905329245791853032351345018170920027742929263098144938098503539279873272862485524468728100897282468585764625940213011164792632944072399952182861131613112295880888902184403654084076667767127741538486676894930140139324049014535716578592816126266919698661806982475917221680893452879134765958714045253073158432229746071054354917882129520477676922317627387665430122233121999957753730364207818056889323987791334518114021507739701030785952522195485117913781032210887966759880279262455279704634250768625993020811171346353070907742510823567087741984407230687843796668688692766196825880085649088157381104007665246688522045393177427390757297920780946692904078913939966364935289655251672321532166960330686096568260049182583758095687409667420799557391214902299506759859198257034936546693531098156820779260799445083142041817629226270907319963418089841116419193013478724402097903937802405868416441387738288660626318022232546167965189654895917788316352656423935315083707297167775223109377962582265532228223672552241925327550412012209394798293072695827207898570048483538072561093945774959612790677198424391754036676362251277160098636026164636685365124279215493323790970711497172083243289049173736174844853772553990430229516134601379404457463051816309173200861453698013615123140106756715717657504230598915827799809657119966810829248891132669612708060982693209654794755577556193980613023143939440839349555819821427982430333099786326916653231994632970058453050611627877170008515154865407624956651470081751205645921181351565359130794280260693076768577833801742090060371899558799134949021283388221560512170991612419677288892920261444929325028466757944039396451059336690138590426732506051520390749622743023672524011634209513050635253825116773864483268078569326529641823457162304656315632613184712585108019735229262888725695130818756299668573197346659702824968434257391989549327472321695565372462772399758579966953751658735415065759157454577012278836271348053471170799634139494453626132609067677609333496231733227189911363463219804206945553118808824537915363222960774728002584041784053709657375310593976917638342687372504662887179827598958780780286919547563391209494912978579552551388289583507170648258965108477099644224693866446288107840384863668045789520708775787980430427810635594842146308460481841507634600271397767785320436338918968241782492688454407617594814800715475384280704337803900742109913354303615892398699408655356879003258006441601334632209430711176655483950656771535333223596916688850281139880043807157086166445290726830850734999549997888838857866767804104628525690597182409590967237445059752078836286295534664849183912775582089527964074219063234893352441298595693671692562691511721687131795658120773221008648389231878690091217827978571936071748862554352335442143064419494810041430440003622233058786263817482863383583696022903198834232854306801828316174035374196793679572157686594009691147145131988226887228776968438900965649138076015483231563980928302263557667951342311418517944290466108119444887152112758069324879858493182960367815237952694289025729594995258597717140541613836707978776007766157312695064170161108159029499144286075714490055404524668284817270895545785151369164693862059267460996860412230474259230160005538081211240398580569997610509568133084765472262156980694201311965424834489604068548523826016284803344725028427875265581317429755833888261353570275297747943435632137716415289933884380224776827787272903469604914503884846940147668997491158269106073336464395161832313885270319403130398966405068673642135193865345666750654950529842149111066629719089638228496333986541945662984979324290338698826154833557945650767783995809839896115989894578986168884125116511415432558321734065459685664757283934336608008559161131103861443159417247431020631737471627347674951540039417199644219614358446808311806202613160521510639046920215179521126428519825106950827554391810864007398242935847583612318348390275351160529076593680862319838410014800760621578803590057716931148363062691493628239610727603378059564538878547004562025880503714363082515787010777879553448563662890856894152242794573538651638090372520226772151168488183554078498365639957911602660483384849480547080978030938692087979243380481677440146525140059978530270599298420263092172695109095857502827308277103086825994937174489337280333471791155367623888411792427148183872471900622759355340294296517441913395023726563617826269793226487624169025813403248481350135831119469977962878926085382275555933078286709626268524209353704676043775385828899433531968297275924086279006344896026747065543312264179679081924306710295654097727116251812787010670630542300748158198089918035329591973290553020642784519692777786271116865613742545798117809076074973816109355971378646609572060735367571048310034442186675867431817054245717907773188485305880514776283603929402249773926848510155310351994623142890650263895644420933316078830106490305555241565799671511660625299981306395272611998806314395853902956578933198461728575624153244425136763042383191893626278238079795359740011070669174057201296532612985452866893242941317395896759202098244432741566561039549863418566775942467513323004633506789635255078983196732939422205741252377467502791953360917525186360726486393047178069835653004272625410164439111372808241068785615198518877009112742429475769410030141372385664149214434396703538030665106060848044206862854252059420636266803578324677585931448379345531408139880284333320865141060014009956020391657285105513563953760393393673125355181575484037376941172840905999098646720816851879474514439756399211564721728185654514112422198710823309446978116974234466714228248500708947461607375320557400185818239010774924791956042150645696805399768733221261887226033850832324258786782029315322762075213085995163096503677384019755939900308737700163623320380145181517931547484788376747376469857420855969920431740720144923264493277529591829029337919371209607491167479086907619323993162303599476938153599322476590393290068147831145970265431021371816921159287072776821499901296484457300199107939772633849441831765547728974577360519273050243992495349949841552991540073690858692843985613176657537915646137857101941005300694295701143286788314137148001881562814395516901470452662468231634819697196388448426582291167267819236584385909442721189576994649424815955066025013663068547887647585270118980286373026684438316118225110732804718608741472352942414086622210724691646699325407979564382893829062081993811832163596875057363558183188265845637189348348332621184524588422343948901048683305236437152203011509340428274083157605922083708457318459274303119220330562769733356902757467347876037689984032484638442422205780013649047674648517984429419063690811476110875815975920690724890219777731833780436940341093945314722627510647671595547043522811557168413399551312929072596748792985954707343034303553259711409429124128394453397007282676379651262701102428427691771700483116504616245570036240837672637604464197462633470457343353636348389648919893451776563331623775885870537397222670957150554248995524954343262042868729016156502738468026239205702959887662842260907658971768383062223037459262253320162354713448850183685409548903519727471948432766688383994513243633994728362027680360128535662906346643284975395042742956199099453945142197673539814197708217430317522556428983808001414518868190476706140468891057714650234630952764173361120544539193324715332627216920587841475544282461299533957828188880218191067162815166164385396930397524094960763295499148396102524480797467874607673752682821734141668576172441265821424094525670383907610078214568276089221502029573688412348249449263950269487134196503180830704664208921530372017086947783041718473810800334130459612000370216281850113813592452153354310541297326024173721623935216454942977615851621864086497280883970769579951919747567994894116831584801132471102996395740437718358022942743208877607133190596882350406973067879654459050821195538508515533708419679587681993076784208927872584134983962611410967598659065961620282329032152561479866565564091835997163566505915208043083914801529866243160633998542938687629978794010267705891021033221587102715299937499775879727661978495410523045309816462407701084234317539686222512166884382671124079029037766945864642823066130306674600794970555623803606950136285041989915180221806791293409508518805537679520271973446622030293716985555433599648502048083019896410500674788564241837043155315642720696745204484057609924437010452854669471669543419698836545419373508501737894443363208550603511073863886294025033380366631645158936023519838032081720365891719763397150784037240610471708526283723978255898510013798543926743269575835913137935379463060385761346361397910262199281066886906133343098882714485007684055549230396929602808888898628605506160084636811770954006856707997714163567146034283640326951625334183163392834491969372177449262601603366918572022985719867502352596756644973836852834705605436107016423053745933337171349719632003000158657521541267580349494347734195674614810559133908120159290855568216015235452722499624167143791458239276144607883870563989761106218830403608194238232454548185058711377457738668903504101222031818234441746014775457382109087177715680986968394577017033118419303198742383742448012069203748082607775711254915915233912860324608335548297684485439214869555497978128476079384982019450665720671913434283444827443366510737120469300429871864060862398731945446050550943260264435953477229160914055251681075022210716857091788692040212107218224410918737869380320455222958592269913918313070323248598724256225187650512607300983453344068128036558557834942496936635712458215387594904255520496429332934615596203945863469287479356880301790588493887014773742243840882499934822715555765057235601985225627272088445292362248059067093542534824871113426344676689612767817055988523430352644601046657704182921436332919851486544235012967139281598219134086661345043449956409467269353626170228693625099606014700936404247407825893203896179295123034283534823540832025357659909663748261526418772705448090571661091324763552345347661270764240486930004063355766360003597452176781667695981831715729320818213427303524259591032643289438793429821576964046868665498373826749497357261635810921293191445954348695195540486810670689663990672953365742477982498317302839406521761002511111253537492861517547767774819499300198991749392527199509469969151739276287309701235911434666286260239694391178812749939263441569521993137255560563015169514577110704765570533706192919627682514770563250278996063013110476893441710457581471383444966665967293947386863745609195843544117862342518570370264238202044394180502196749958587034400297828217725924998421239832082007649331011353661276501564579400772776043868640612078025217665678352087115899014130902015171423479086368613495054301642558524213296919718960864400845020662440256434281252319923746285979855214533168139308099202291025034988253033891181281060175302913038366243175265795571165622714374305052558862415836820343100822723972606717197402711715180908077917143472017528878511172897234809966177741600552127246167011617567570726086251397595108952137241738014497856722325271844746239618394809372035324169670961512806518068531071723641524867235779390804218259182242080387812799566017095898502979951725185618998580707615518713348700982743260795940629536759015063011976756584136107858503214105036802097625407964472047165620381823049777299294499874575953864071465931011571384858916701302441609928860662724573801064933704848923822501425386039636812727375322406403726180290115772524999333658819448391959583066862345861902049608629739172551011993097566602646520317337836669202911890583754949225571261832388539422435284786287559996812624583594251712354174923622864894425321502038898251641281053152923317517874645229286959525853348068101098283118629640158658887269844529828527399346761839423362101015912512970916158897464800383956499103402938865627933984616042577016594572859130757665026757795712558765203497343659679074623253997090278462708015533125125041578357347529135395701849008633072854877316292952539328493701422997328071622219188976388623711202236045174453267872128844535967068741400394703473034092545967238889504999922012098205417580157374270800578188642836513273205962656749114477925763887442035115769645903372881832544342290924824411951272907779650832683913463938410488541980157379350832609637553222034493272425317327253941219439328159034148102937050464245811097235629799238692887069162266435432276540767060688299239644539067216851526495982667123839583150214059448359510824874621453740499333441189580871814411734595653654745589494903349202287194382741694210057936774035237953049521187195942243653193628801584563711475560812245930729557498343384566203173862054061811719198229385310967244018956790188495515039442593192719573726016967546641321269556401056877412957235711420758130287355689716279542997909783815629741244689432208085747152671887381614028450016088996577955832292662679163752047157865950225973376040089670455131446758372510545640931825093191400455525773690446575705802633440892872578462003010779530442465095454081348471942192577113615733238869183403440407837491619748820145530631813867728896219538528276055411093361437413913373206809501933624935195720096476218058147155835536313599556523472408985676472894529653628359955823855170295050477215325889658468979048622824750666508344424740443145612231530574275994417828335496914476951092769296790424796542934204808495794241180685671419397148335641824132680306307780736974196292754042352164722039970627403455844866219697631541828677837464992725089564912920781867923841988265234882796955548498702633263619272907985662716459236634667959505066406455950104642038414761819071208763260837598779961991989937086923999366191366802825841560458074198609112922574817032282021491649704565853512903250386734630776104312559768468045833603062835221143982494125702839904297834856757754936092306178868989868237203726599138042916849714046717608318189861553711983302457209716697838101374321668092832998980222610675003128801488987275037770466805379052835665770503242667766485125041808008978464644713354805629526811973008075681744925063113561592169637157750534753397626122763444811953043216600662318010791488036601027371986387445148195017568912813778036155043891824128687040850348209382581899669748335480709219629676108295266971695283414906400618692711989840549184858501667886105066491151669369784383506015630488599325922873752286572214985862833538414199264849202254663985623912357271548686927315120521364644643350006972456372140058834835232946698673124897995814196351512405756401813092764429881563056597732448404449315532051109336090404436985617684717361096417652190782257224042906746694175220327767994588245217320408288673169825284002135484265478297976627488253802870793949341317397094817771064712750213783691802347613501476688469707812105684776693794972793388692902174002433805141496450069406488725684673538314361953687388754321542321820180810181614625045913521943408854528960407076264850654199390230249414991571754667612720190605514677540864245936589938148866622170670551867981430223397038684586803282213803167293290749305559487360497323177200149069182869410602966920111779948263907452084390948721386883855564121150291690142588989001845475425452568549914005861422938472863896016913315651849364734147950951807655414962490038040718596184944186196308015552350919185236211401741018099427710549253211435366665161813076304911192606654649853277962304329117956074316468365172091412907806384760581571059387309807250743089696438774635343863764166106573760337764032277650115670306463543508796778634200673475135316524006936674270971720072747914460039658324212634478622829946164301672162282004126272738221062160491457366652272336470772269513332592387194433527799696039930844802380410658642075560866582226385031937658335813788582465989069030743594796578237310943545486446936538097861762141153207624363116093099322109835930501034057292606409330929399523322336456234273024018105769445283826336736481390236344143397601121639193675866505345675696672909519743636033873108040769414697825707287447355120620290603059867346032998625352958365950147087979807096648681425897263403983733420709417228144661386064895287955574084989671700503717051931584652933909521425531748008315415935651789255882791932470558293110522114231535719877908742421901796174648594308778694878002480537829297104764159727872287634327633893352401887379506207708504389996179484090183439092806031602707660418362407908389008917546680743198675367802854977817774574231311057207502734907391673776537579926677449851350695815365461276300923183708595288867020359935896041900367229771376971130276852285832759415907047146864569119365229482843174942424652848275427387837700560847415692906566138740778065452806986759338671739006099903352833113177959936619001944835431729804492556703120520057405789107281800289200675564658512257489943336461062169642258895958143698665254666133843508036119243476499872260176324080205197008751587964569145096403391274696270199219486291048303598171801660919780943606719876487674837648572462956475894275442259217496632027636440126616840695936235368343212034311147131892458978345157066048934424952720062427019057609656934065824663230538561472281493116467442031417883792869712027563278578255118010838008827336012886521415294087036376407967684746207314030023692025467592515748731547444425219322935010111185355835318856004920746411052914213776789416000661176697588383063026093333634767797673195870268888928579823354362489115167671430305985705603289970813001906242480982764385316241654047037430993929750945563212906015399398971543259638287040883014382127904970752762965829459185921127658118671345020687754528578793791171823643416558794240834593711141772098462715365223115995130410365465859926287796646283619984389038208766651774093090945742544683286239473394167380573703886510495894797012629494535438989016081173447302189196586942422819935765524144554237344370864854867064858614278943261194583302519848719291492064229131932470033910026405263863654111695442642929014837598967558430804222355229269050144111992084584332247168843725625042288998012580149765798444439309668394354674751226478747144925817235302774579044452494536351735735662500057964272250845092743343433079866869104570340330956709170224573027982235332055559761735194322285588950753177031833200573593213080216007533586166670763650706360465821631770860992070647341251778151316705964082184716384687444229243548787462907808320012518157807547934403734199176047240662193105506607302877730483504907157478944720772727683105741649181908847608840748172464970411218434574656312220895547910710803567868408691464919198530432601894277593812327251064768714081306572972767211875154898066145415778325248672537058726757110336467126715348682166326311872262135141337847226916142995057989588123588709507855240469883562990303357017930845512463943540226163427216077481743414659132950214508940872474150867044885779718991063082800796655725136026319005238916979448054635293765692786550076744879759034807152063321319622867800129234187621954900048468742877758812172197274113256672954540365523456621622618712923166913219855713125636128449219339346820053382144653028758942630141997246215094666389136174078479065991896302497700615805041270835126957026201528749411724320815278954951451269959887327857910659841790956629074338925868516968180362850178370326758367248513981649403818968001799677382066594020792754757490062015752020994273517682553493963069137838496198707642000267750867551773709277665635683233782251942220207161620066049434489893591877483829605226475611147029113175875897100954472959684326516049236172122858180781279808800924278612320300869435311549873858052851801064284613488879285357664701175179170752318138946422691881520688828421872855799428169284287217324680473690019870401679096520115648577359576470795816734762722793597523079620734631091177089686717881151266958784372122906464202458113918794763575315900244513938023580271820101618194143090846567722125971836080255769269951012221599657099607572385293034831977417430070918179587549844188346542403028268782526536239323469176156680251244679997478222419861895054302534647861398057976191172965604129635979621171079798697424533672870359433350431535670751037467551257232023972208229349977431459101199192523002542578153440669877431685035869904304172355346524274364212919071656757335032938970582533750189055819690907792842885925280531002266355690972051320722887130540499077400049482618574470881565888972472196027558019088983211528824490698427858944742371461439786058180251658937414037891694744680193473315613721513870526331529334253026758179123297147460411032365734138910432860574262190610398424284297496477468561856698995077505523736022989197621176407892575858635140448061349171315293593270583004434022530530412040025237869913281705872543290136789289601313066484265635308857299448508813716038049772941871409759092841164078376621246891620216363203979180459992950753601326817722500857056483474641220893288929153498723309768304196205380788526884149679862286196859821789132013618453793986793800626285976847289519498841487741666178086291481263095160338745275388938530625973286839594132666755911328592185666827829682108597404356351461504410187602387859846082750978050190956667740510623521781233112013836888873539517260051102590065707864165976786282947886306941443876755218732959522622483599390567639385756187616512697941590157163916444577213086229644664642187368508057506994565223024725532601182068182919231406467191918041487144207026151515205865063902449956779532864372212257779918479618431888680353293096860704511073781072381985781551576461610633881976202083105605506564713974306314905416214503860848744886161858113315110680576847392924633041817163797233148885243446349912996791621719883160536828741408878303299059299550597309462403202512809999873502373508754816957581672568125920713062840078811164284512375984577261122100914692641287831451402117363766083480707531576955507219562559663939042265881531816336906616257383622881520434825425407750226548574169535292970706487862501300072389586329973301541225033145621358216913350513409833585587905079122150711523503944294375885874656200778698158969512777937682629687579364309694056869024733039437218082252568731589303661185109030866021861088551278031505118210142800001690934659712394862012078788950670959436624683937082806894974085670792813296079110187648094875218206713602312458989790439725683873015926772645314971630279718405423799699150420837033092724592790360617874680186444949311669326636373519646304739796616562408875273020319026256719022993879449789345063744328492181779968574246750274400704712601191063705819868883282696247329992240300531331193516228866050383471839686004626389786705037330596194320658679950006478838829661872822928689378969257902771138662984137319103439071121344697382735693934778747693042122784038206053273052148161810090181909715127742988868724568599077162926083753178725263598823154248751681733355652991308755794370035860052411292441509883980541453923639065549424451497241027174172662978908776249721156469713006246679168052849113508676054951151484899873087729868996701223846943362060862946334816614626185443605429375398386869340033815299493410316941308111545430424900317678650849756811794178556947588044607244548203654156737691631957318964898587292352540248099710243555632535102255100655707910472314678870963327583200829383312492826827677944100988203114308242172120587322169450977514896810148014597196266134550872510413552425967916739111744402325434793682666079032676059696085877275681701929459393208766999766758700735723818555009749074959352002223991086900625457434249676373653291397972375941272135425357950733421247715533379289963649484564418504494901433876518783105224746894085206722892631700051298788549664876122799457374400147422954295042193778179070194683372274470043020112991431075734337570516688291901295192696490347647975101441038618302847975280834581172577511464173703812930522404591861163263338366669716172398686144044484521843881797788352007177923593665159945732366489074989044821141020689027958792086006367881700942752101099582041178803418315334199056532509262772134584913202297792117024522229542643645019596408018510956980511583668248877841755653014101833131937794126866252265482924700873505411480911942437075389787921470015798082021081514965542871814104391723918798436886921391375029880730208603069413961941533817802974104202990589318770539357365990980658551393878776234050905184817713488199357651466918709997439920001249710650351725437280607366302775262623578816799808420812969478152817192472862658529483938822572585410537108648059546060915713112285789894327521338952909593858037672876942220449699015386178595424030933762875355004038443114140692527732143758277157372035572386954642877430068195684506392289531132683782356409204758949759118923946357856506841093088782179255950665608724655357401631254660423198815506074133067777330302529909919377501134203267097503467763452443580988978220184168350640166082993430810698728552223608517972385525295571095410433355079846078510669336947934440442696059004241303647565146362807088190978332825400009930737099356950032659999503962352646816054855090810228512552190233526995569064069713484450594298301622290898919076710492425148326986659957820324632149786079451488851857636909489266971922495205058219818073578730519646302781028008153899976840254999297806917644664343879372691457754726238814946703042338326405218542040377069836198516609822833095435021632340990417757103160646344539747904514522958922060821314053496939283050350489712652166508616048572260888105146601894853570142858840952807990664993594840711284199772718160239114408261165938173184394384592105328365589158108563415848855196388637833225355836229450490196249976857530147086121716412794442227171593529426754537759180759110429937729480408359274304809708918784372773556687359346392719876872047992060403620708366405506166920255872137428378811033249621863503435420079277240909017288234349020765545768958852140167284986799362904605349078484970469157156269995725617258011200884462126764114346344536912842119230084432768218410587405127537415459646457098424688963869862256589468099512920896904389900616629175879717090521178029883156551095649983983634645182066062763579028591899186731827577473872595446092017928190507962847680447163946563332295849719609462159905045213546872754431107700485264853186858195787827666487737086914532828149543755077931579627096334961173416156544535576100463526448668620995349136295720300004157108517947668368562854421559876525425298096105797316629380494720175078005979277675891908304201192260434730649505203613341907983323562735578236368092397739140065866734215444346424381228500030715618771998559487887272640448218238422457187242164707744406841927184148764048313832507270222849086711983857373009071305278793453196009632207553215450731689662764906864547980297536380124750742194184741379152590298843209586936850237634822731034931744833736502501532317820768865024123560064515161559170559103584325179787023201923547076313089395579240713910334961837744115704968755386956440991632224365516828908974950935552485244135338715449299682018727673028408571902347165174504111347164669942277261637729539683189527742603947300599297129504725289255780691912029685767033470095201644695195776571791456034416372291155451285279920997700348819395902303783741871288167875832811129991794616646398024271887878056273316308750937051522470272336576207329174773134490043789183115188085554226829068087600151521447298935270704829048954098873574296078777482329180708232293622001312576948712271293429484814840595021942139081259441367520017231621147813965693861203545916589327811468187016903285070170894205265812458768956141152590605935116539005595301179945745821201578213894026392996683125422732277033149213827682774169619154223733696895108736866674052621098442685796120813868880109659401064235785684362810786836337671499904943738672007282070805242034910827878897886021735762076450343172392922146863787804298674998819918247705522888089117401539948794961488821986386429215536432940018783520422136008965148645113328406412388120906603167214131458596276166307809418669983312485171991188655729931386456722484835760001753787336044913073828303664027453994779641439174559876192976992483196660673982123281011463048596710405538185306668528714252386309852645700583436093900642813526231409139675158091849413556020324688308870314874305400031427308100874124446209065596918770902668288275848209011124870644292419097147614402508066375962652631223830515454943652039661794109089026199693563492523112717703347894859065572332831596293162567502279460242369118155922195953091096885442943829450725004059031796295898950797462976606192750722204669682442152374128393127560925162187952209282909046061981244145705934251095279565558597179010138563024083533768031226166977151627681266670959691468958242088337594910818601185511226761242349287382085193073576198046742529623997843208599177221036953984282179921437960530905159038313982128231514143712508001116379763294294804036009726746155411947571133244571158487615864586200809332193611061323451315191771394358265208180114252483518375336037319269511705895357891330512505331701801750554785987290648661591913544879129261593274732984208642283439331824844162735425472554724097034739146153746744103623101911869125941718878697075331879343134801932697816982028334098179018592802729157953302300568727639289623453903504780156339861112565934153010126722175776806408607676777274818501523074954588250586000473481638211678284782988707045420277383612181763519111004353803430879687877806174034527929381608294820477946733835964719414587185458099001021645731180201702960462903545788421713650352101396201506653755481505798887660932240083867009578063860061096865773622213110049471274445311550627402308925462492647231415084405335021328576641170065871254147783497136141944075944422327265532101505647317783771975234671994083819987086595692368550670498733496626078331920799717850753525758023726754137057275388006966602589201024960807479692720054434758051756719988973971627632656868753835851227588929980314662503118900244737455319301715152993136177840444358016573947616041237515257558726224926200879313455551408054151017465065319032306672429578947537388236996339886162388503092303852636539534967627342946393016374922116938484680990486211764957488235367326049406814148901407120243202953489452271827824349568412962511699881009891469023267612222417378060938482008546570050934919062613602757753101911427187848287721352147550642441094578608870057973748725923092004799058803258471759013476165376333229961380576369215920711996182494523464648193201011195605275465443834541524387230207545178036366468076660824250895238111888257306932134976761509496563818209130576061126051977866914516478153141188427843665849966972188291008495213199116528657443199810011188919099086329538082640366671910479381954241093628001622029964401062254811271609813124410877531522069514946394339000612509793855936321752166106889919846107580315588226207671794646227448122779550597720148811540117353978354817141390785181787745945343266521773678084035520789192024559131543341308836672315684361651368603487705043736087515465930301895649654285320141111948992445352543369894113296355174135600429626916363817295194405107961224650427122431687457562774588700915245623345123914881622455052283095306451203931760949594820370905091279578369211269342216082280117480670991465384958318287116146324567726527258529947596711045734650051726534186312208822910986922050426179202258729772592794173986983749593952382153461509728994206840826154609781176506846607560656742820108829729947134011240694209955626999256282434014544089899523315688055342642806151144517525264979683873612526063300836030228747428471154891623912175156839342753121982998757529185156578901982392556626176326383104547362071018508526625201502674487177554025578258479083640857534219139163146746718510132165230172662427966534362910647414495379725147889660883418431029724062966135052137295671464638833239127459097213591797977724821259892850603609392869623286633474922471574526226818551931356591904163932021123170584211755888264824575918088764580841954181620328026178869274681197261826126443590801577297880262677025276636051176449747721856300013380372030080476859104910202893968146711520964386142506051392357662897365721801079876997034389780723324994627348723856927719147333277589767794957652354834045345131445647281131558762446780313356591947129839219671434543037236576875299380591933017047723063825559889515536323733807433339831194011938208225071387445771276621303337014352030313895092349636805855023829301415055122379796733059427462350436848973067047463859920232616979168730026372375486745932025150427899442400868367972506320101772706677288649470505940954837888268505089608470284991878271532859652778712315373722931801622134692719128453302002759985060460324475389847516864436860486658983963071009763847169177888783068820718331057877117665308424787190115255504022695982004922147564240214889372643370456751267874120641685739992286564663314779515002461210042119500672219323472390055721050985197260784945690171851893518408556382382195540242606470109863110095104660467053415463655656902653713086654963974882338798485953869098228221553338683569397551661606734449929762235373270604642173768911383163596937189295970264581150307946224552854635899326410357881357399525093226971625989785199034027856524932228382083178071154399391524188004036517648598073418426201436493364665211343659191240753844796878144825911662481465982972603506680026075770226980995084022035831033061702883197828054055670006868685809156507602397024096816252862234814378120367697644283102184315131644232205877227560741754918133663437312127720582506355624060860738653614426174145441634728742768427919433373393799175034164515921492993589931079691760278419710149008466856345657548944570044240635369264702954894632624689904037189922744375241706893085958422324425892807618000376060834133349271028570522289925897720440856760098482684953930799937264012278317832580568658597528044720652669658983576946832238463999955345271215520082572948327963168202139994983583120307424422703597379295807714087994823028913709377980036783318097715170986395556031689573271151008963645658043836176551266406220162432149927690316724787835520515597685248616420308929287756673008749995848677769231784328679082188218097569441479125425123030079446246725977635363617849995664070282919784643155756814174346853094008276334094527445325484988473310605739743894948264535154317309588595131322539791611790888790130636741054955065657860784399754329144799626927632057186188286584754329899873775949999594115497306037103647989104344211921297744736891193031124610367751385328885206397328688251090072366737496445118735585611740552915761655674516440572188800349920885305649715743919943690094759291455696798005490787745334475407479660594771750635208677529046645887596847286604267387916122053086641463677763590480102523280268811761560164275271781739903157704633629261442302396458661261303449955543885090084042516892138890529332884538760001183505048086026297075638699928639477558316254531714417127761259049911211746900997813068682821808078205444207466780114359524227619501078051275384706743514103063553080490165878389756033122380836682152970202891286090831234075146016028674233389424644718985525913108568673959975938347547516607383600752872364511303023646743247021505420428571072884307864647851948273931734046077303465562030276966889689607311405868436048531389128712978445648170591439954283209791361729701720989441291398775526960103704997769451390896623322307810315199421619089809970701381303951322084987005431720076369505563114473672255536535153196200217945723116793636583785734350344916344151389703785888445343374398257377169155676229218148573197440148745367432889235906579566708094281969791750004707107147195680952650801291270899979973431818686732815802577326573324301088859011392114024488680047758045883577328494492852437816404637706721078292422122730521781939735541037047081251818722504272090477319325832964115182512822908355530489937607935161404947843862533043066655565862377782103261012790475177582161471293528136067980432529668657624797958762043898871823693463655606144518060817416936187502095033773732617976486771137680993699702818680078822942633406660171426626446876389260798559764439286644580833617418229495266616942138885994136337689263869845676497277553324669152806104063952745518009436922558522244070444790922627129242661729430508793204846615746735310905846201299980197974631450171920764187576680865145941109815655026182439994089355331081275275088368783517040298747319293417765059772230143633150401589447266951032610275129230677076454568126190907758000379515097996014196369885440013712630324436843429575424042261975693226898791409500724358897282028115843351764918974187768963278319642342271005525525499301639642038615347987989360156885961409166576335564459934746862304979806787661632992368592816017108463772345059077453140224811630476356894403848632419815216358737173360577636069023403030300462451596807910211249022767579262322126401138781984879119575748143718788087893065114943242292723675924868833115201565221313994689402497554817937816650867030814605053664918533464437975964152313319955573468518772850062560370488366965434558372068254733653933446310838328489756406831504563570895612946475423681138820933564696974077459112798870476538141525713218828329920886370215119508248677801743117034466501723821833620318510593565834300491379746045342851820867897460925609585671615512207594909280440477908491230048737616145985025040437938969324956528918308802339168071351456301795846124867166479016318703634300860066082945843296689848159800373004079766915048560928562970091727499290816761210947611305449752735982364879149521622734981244551460064485556072531928836036074140126887533786869731061245266896791522099483607274053393583366531433526951336311075406378493084497209239513888022896283021719891208475548098061243852288661370433793328117662073841851843964945063872054483320732541173282704860040798412069064791277659455838731835371308655929824665237362828806325445816432325229757040788432775760598075901018487659655755008850648530053875657833005552977079846293145533233146601225695995768502995769382770945621584740785405426683504769315887832863522873650660355620115511038314453613004340643834179592046585487565940688330403137205315212238998467728503597397724801556898294494063338483717121012466783710623685408041095086381784116604472462435452768931967824412640282604167233593679012292889243797660967546875230475048630012176020748851050304628301402195375927772412343012679752239937690558320633532672578835879127470393835137269636448311096945861869825196142210574823337792217074067140592582279794318395950729303253045364023980343727638270078970751917143371346495534152632478525689124032807097198926448834946236986650033339941467344433695026543813293823122074711381927275621720407014377560352171182454602569212425931862124716166114160204233362962018118442117248125613492050860926321104433266933317336776967132303696633413265935090297682437323641492179433322658304429530497886001183984960480581067915011771453756595321721051701875153450745527219886915761811167480727498343717965279459373319579235394227339797962774058214486330980436537256387226843169637129930284904321643918939206159067689127207651041845442565031474841935414498518675470819731208588689607612512128119301924314088818652456167605253125948184080076159578563296317289364353035816103901038086032337655337341455719903157370891211541438140050882706119582353281597778233778414354332759559057492222488024252718666788477146790321566316787488257872100886481192974495946071302968643234926976925941438195664741537425999186903166852131289145441274541903881136778930914739291011703818906385318134606035758221421333207923045582794346168368778836198814865029172540446691423499183046569873774225072865840856892299972599819953689442685338221835705613897090804578607100762586167651464240787446627771996594076713873970452204440892130035424547639799602462955394537454348839180224215172339800247947573351422303255934212915948242116904484876303114803898135632843832659652069965847743640421938806659235306073780964254608284824471636505314693664849128403515557334636514144201977412851673416403656308898627359458423425234215469995142630353053770783628701301882758908813327011625352226786434990326337906268709847221271010782614213207758221360055302772082444021952109343324145873658172144069297271758159538463856309872799470445928210363478003749237106031438110323452120607269119720047056187078711486465522806601408022789332494793659156777453193922130478392517523744105690048370058816217939093211332684061805381303287727875085868162437607368158098340102736865069918423750701410857118817815985420196504831348375694448511890833367904662697324813773239415849753193675381949491301800876567726423330986828589299471694596403886961605796726768373409800628826604735324842069716305510243135057911640547740502905741490952418321024504631100948361798262024784122777215956608228947651869059148446665891154604427588353242854565626844294450009049124821650326094305948845601575767581083984697201185256544878670102561389165693901064063755440151386598994715813912696552364074570125691002873326335957914471537506257838946952281678284081904713386163581701055167661135977227424436931029564545024124837659537346944219286541541839720370298809025683821240216156906194838477880105740187187907475821897491288896643739671869596390768825034101902908592792686744732097047696455121871779586193868904781417271293538783751676836492351224462148535994258170601129436519856309295574456964555860435998039560100902400553774536103431056553659753908764150966237493254640222994356850519643669807461232880651393912495540618031476444949666122546716713841505430826331033864578445944531701528182315244672190608358977795342737826694569966636768037424919417114406880315872756564403125772281988824647533422094217533742369121696016171630330478624386196550818827635289220693978162307663239977753592540931996531795269531487187640926776864032556628671607680437421057946085721566239272469817727435904219066159669360971450836109663242597314258611647883648804715097813490946212222420794923718282321797789866636779038444671706770436546919863328198885699441973475104613604579840038358542371396247947241989659449414483679004082870810259200007257524600365950805665804698612847700685939624257641584449264188546983401248873692372296111267018517935963017554413291005923589446522447231632254180685580042698931101427706110410949806182452910132720096623431662374614493167204036434224194826500476084619890577857196649259032322471521351683150403476505895162134232284591549771725297843941066451904130064066430136683897719669453150264376015872950296103536434088684948002183455080732289977044379586028224068524435479488721307932845943765821030495293354017065590343220834538216742367802412817854850990070714933884409013396920474675308400318200753185883274713168568982925002181593569453415576480264855464139828938485791160104718877721734896963249954141979220558850500537490782997119957799298946781336542208619683892662790905711563867330656939821438760800063181743766942227765632104194671165099689438402575153342293505942387595832364740973236600240790586853402440514419638028416176133722697582304614824571948812016832201371520098384639028138416797998385507628054096141377508782946639595872739068563553404954424923478868617530967836749774487306285491737658635765381985762722569281199344236706744452122756804000189706584191780150298900413510830598837941747554842822224675199571351264657275057090731175481564128639877831074659390665669614748030678974644037602757268357701756485174010247400180645816008739055272764564697433148001940038695184869395424952574813356895007990258752360882894530715800523357842391848790660068396436925219671570722685361592335072491971420432700566012127815465943850738356260980795674356589572469536700092567389477749769646438435243714518835295021315359993218388696805379300411130844387326097485034821330761335887568704097086619966162864449140123496167219329702883027026831950316797586491685898962062349383986487880522975760428290643437323567187886858357342977769100439048347005696483384922286564931931325430649248371813914120369683141073816549568059834109054085094377131564421962464255861578243846880788263669791806088343455321222383943914235174208475019369799725036183959087641897610137799167414182593372343959983413215540662395382074583886435874109154024526565218336052520609547239141503482019625019849968564580562969658589250306378671008350510960468396236321210925889263779270577931306465387608968125529997311378217662585020736622492220387717927366273762609525972885577842948047373410006924365515247186844955918249105718140820893547250248431454531378555992988051857792754113012498844954887031068281888661355742389174364955031390244388259402824357916365812407411824038465361669136589064802583316727350805151978646107012271797117778270143798715461231418605901237349296561713688220976091606567121209850790694401753078644383532168136962567493107451107187631085019232602410328390443832998853058272938712406218825487489043562579952735313598845328405222922671106321964344476904262116713940850088675537438371229384105510738019499138023209630365666990172277506872106899007163965916265887653110508885304253212690895326786624733184164613156529378858007746331218580449746605644161989515717647577610061780169851447547518804272323907310472925597281331819456020084599937779034026330409284514293707466977257384280944939893006145986163693467562939243211675352945523048269954440122076710026802459114817024271246396759868138528758963030905819762760294810353880043704430988084268561375653646512341603555024151532311198321965318395024655189014347182367206062064990448653782944556604401591256719727242290064553060886683609699940132529894922772036518197154638336931393113117872008577351788425756533482809700085662009473207237214839178368598369828557839906591692307952146113041414745414917477225605564018734121231116326903844673813336970420216503881838459299953959325371228258997972234456100325476354330819166329060617503014894920875760505180857227039464814856865602075496739250671725792882328779777522256745638067454104684706098789862844161880442020367350548698327433761585426638261490422119391509745117985461426299786614977164774064793181634264763759215688484271243912324073027864685372625120064214566733025724688278100333820263906708929541650006374791409657359449507713359310100072596306479230176739313380890033138518097426782312444690775973823223191398704928589090828046500570492489903566539585544488412480007358063248755922869291662969487548973698239551161640656048100877454229860304989972023620027215539835194243504581406148670553458575448243373478583540220290108612892133883253871413921447948902798429525518310201783738980373965264063829216867639297989029327984892789698605249241346410604595745749215939489909236440607451471910406463338602147453798424909600523368265001209229304664427847347176252224428493787667570854430093514419640186075140585525182759516926018747219956271340879380914795440955617311798057667106074917657029735417557195214633781410303507787915971239028851423967235756407363236150238334301774539844871557377325941782410150803256112022489603596228311671009665628892744017594427208170356426647410895898363984307123783608641896453716685707047244834948600226530160668205595598511828478339764204601310046096147091729609371030848485479919484131595874747990178851081398941130195814099127069470655494121098258140728868505790425452621893506186317400013178658003546267082358267376074173036586827071414327488564459394677955709820342717857615421047732672301689674415276254051275758047242996634274401372185500301664158607435844429964685604192505136740965037053066957039068949266095253957481613324059462778407983314575330907321917785626164926898982258731301889377723815772797925414049289171717619395115407395795854389549817629290316766771814912979043418206111225740218483986307559550628859817281448868887406164985534276480837399801951212503568779717707304209487782393821938901942608950131417603064453420295815802205701497216581955435266984559619098363235331787095487816805214632504031871460499228463502254151892746234387069060840639242817231402086164571654828121277633832393948949275387939022289773146276482809514554289965996058625396342273405591547300691382899969595142260799237842948366572959850506166367991309312282211809690869955284000298504081971092878304122790195056304586972387868279510742399163920942250349757097550066541128243694457003843994843620868541190089097943311953947101443999955977781536551082256916399877114422744683463499500940993626032535885447308110635519265590486251824892101206522041569912847372944358204320082093963771830916120446272828618142491914953192887585940827509873602306694484604755644272666253748134206346281086284272380006633371573152139137357883745117012117406742803106124818840262404864440788333769620107003859921875592353087279045635727366545321036915602949299731757582991008141579422838172099142529430512399186563499505604328384934674070593040599878585851661328904618578493490962505715470355904265356651831514151006010464761936610388133819852888757232483006576548149726561081210909563797918445578350584318164145112177628827857061694965643062331786488834574391750031089310956987125018092832406177663396957220521760233811773225598359900145800351636814614963510701527237551221137260101865824778498494842812999896190223724754398848342529941850308516117375590905546549705839943454697252016967553753811230768142830821450012521612216050985552581892016480307624600538479064691501418719455203088601057132193957842223569775989431122828023246409365292662859280003904120196796429945440138197843678583992431361912239938039201436640956270895388561057573051923872691237363140465115934430969239974141941874005353718348895460184875515629385064665513060878379909011707696465710236046603436347922853171682365598520527306265989550139326753275079548852965833600467076396378946134291950098580976992511876741317294405300672966789864935071225393592328518303318987721338114451044911425288042132493830523012150316175267819464821280127422650952376057981520895472249556604732454907965892836813088377854590152356543671700817811062242478546639591328017588578483065166171441767221715335667180342349911682099633323983322709928894419950495667663613489696592992388065817289793449570040356469643456684038545340641634655637164826616657194405782529410904433954823707213624720800678671255793557312518086177242640677192469538602989739701274039412535482838093727165525800525485638297910683158655184828026485620061976205994869751305516010020890503872095636459687871612366655964581256435613087309759321129569642986417801987762023790637092959320170962822481798361502789610253083769237018197122131221662786765244872770462908326974619528672693391842581190729381260374369362529242344905898997326615855763785419170432199336469067023580789632492848762616444898884490293184693426160560215631271640980203327294980441979382010014731336425839827159235378541634302735907949565770772014101790850469824416050949371832966397247790593007869528562950140602604588190503777296161123991969425760666860350001662380908078264744814603402741335201686803995472197709981138179375398062232568683811200764070546325493096453549576828961936848448004007939715995747608707563755676273726176245300682129734024303630730742393080285655152195217735804378365059729258090361189828430180959428852122004599285592617442011641805315536396511109611349106690962315989605334794022842119287740813024468373962474795111464820013115096199042119395573153084731439276209967839796221508572328190901341849025810080168180203785682306446784861964302413927980476769067398866443773253786307618112667304996718905564248800164679056415464950232775890739305027911944863557229669073044976259360932147161507721387690857050757038686508805792266417904675593491487167997163031973998860446966948582210073305134552627424227350571125723991371784213489849236441351469676744518828331636717855503205586806787110085022295503775011483786765029909031775492331872662506217744000568680428909452586614057868310418652976761009911877909511741134284092697026228887317141208246645357816276815033972725538593537899737382954934914147341212178963712283440815189629785530299547826951591354696634693118859110373162797583192043741264038523141564896370584448574566420566358793031623656714690194268751496255322979819218882138888055987142045948969343955626581104163049812576503347374826625988340619744349213770736287501115127407760647406161010638591214621470781167655942099185370167075206195451977214668696639813525550047088133704185265057857114959059903546277010492766774160769367628748037516514448285172849988610972748814455100260195801148325210654899917178221252970224052158298780407431631306337116510129568223192311031773315155152439920720837559110015893556555889754405598581552057889774087697057670497977459881772675115431087528962374937024111767453235979448628797193849736159144868420162424664166155844044197082585718826456074952647295378811911732913564386598015579432549747455385929727263059661387681066740246246229142920605128741512118075480138973874608752389511391968660325026118801428538769093306571524440429003143198576689060546920106958728492640097077819040936150367149482938982649946891692329373422412445021032239969806839609879997094180670915506229456583126445562239981607985761706200736024894452721380688834004452574211511368299144741051332272202435727116009459401168362528068595202819068597244155265843594757058335660896651651589515078909993426023305106003426022686719711153159127704682668168762034572607209719725113333343081983195970627800464481506638219891761686710347929450931604801977016560947002246274765507190241410361455583189012413443132326021936492159908891880336177245466914138760910275750276800873146054221823885247953455072688803164738477909270578574938441335973156332345429046140775169478595892280928927362402794849773218197030485663306711826042992836636740002735576772010912870084808293543700162975221019235302182909028893045103424936801682266965474120355856112693921396857561025297717200793804955788331197446025903645379779992452781138290836418414238751706195853595138578089786593550583089668134950775432963053161173628462764943847927299061081947330221488770701816365863377948620299036011373440237009019282741008312579713675329254662603711356558469338108713146502492569954267432777223688306629635503439417783235236975372439046192673845550960120156335198638762814144807352076890556491450391335920873594459929224589532579779408714598027970141657647314869801420360371458357036821223630445922795065406692530844396521797485577252671986269654488979259662533673141452251348165339944737462264342717793935570782081453239566262107634792248552298440180832601301513372985109217572349848430743451124711263446283930733577399707408109676882125112656369211265562268087936066292484381958231361317076987409767458180113423993763435195534340997734811364168975276181820634871010302636935400177965829237413785772439592386528589549072378689868466121110802141423866442496714673057595087573849745629277689257932059422835683482113186739893671609734126310412683222968767015683104087326692584896082147005480786529479828259537331894923562691976577941938949397045707701434120095524664902148560958738989642922887121965350183515763043151744989132807497538595803916706856766348148461672204579715024496402662676767705216245868070279779087017377395854860879846678883631852360350223776546608591991827550809166306903008598372324174167721242981324501392694072810504985385040710132966663993248181001351893036749992796914727787044468529412734922633729277561438972046409459197330292232693604985419016603487833474235654810148265533744943612608952103431339536341792977108562233657414199570763964068604139485256387831398929181906922520372627021014844987305405728456812508966539433658616028203715921767259067516805525541750650252310592624206942508939781629029776915226210542936940075670183696495951793256583182973976107548464828558068469741470204608416342993566574683652453997035154711923352113946678674553890976008238218568256546857036932722802542365969610603924458966670381902409229860261982613287342764045428580278764953139766101603418728027263207982448378467792348629422837411855408093410311936789066929636991028012492080995805955602361615623639358752373565182071130019667284533496713246243057658104922754407665601360422365594974508661396572086785372875012496067629747211191736084824556395244403593138912741667650542562798842126903001779575560250357278114409429099038613699673610395736103132408962018569985831492296811652176303710483799382444377296601451929762191709310668978636377088886673889761410518645140405188777615403526131444081196495174578133971695080383826927794536703393244173524008650577314338972410321391761700366581230410908459484954297686415628797088360810223335553534606291359583666727481304419273572427524683829788227087029319919483812907569325182909319002970540256648427003839026857735170975261454004314090628533348241315985855901286762047209575774761454003618554023019663576097618273095902994428017602193561189750595723873053460654906660693066066414683139766727563115824931892383057802047255353770647111941424290285737272745288242561218275228921023497403891074610543367650721318736363977221859429196780330376295003993163822716240575184528183064289127563064703459915559965865867184094353831988505436820342694827643254826529862485693802982445060024673550941881452636149148956016351012135763594284583409868851913722624651295687008434959439640341054782417922441773830144823899260687248153491926410000128544867557244991329713698457117068772272184529466293504847386282518138549821286032054638333741252732140458761616572921172509372134917968444104311858922339318911048138697360778041432810572131293334093240705912830855532578042656545740798888225737183757970808459659350638098783852865336713725084726411891654013584254251897044850320970547953291958572064002940645533623798551898990030147363362856810905821646305695227573550494719243065970959919209550869706051661469763993647218947934824406989066869198434614595250034316744173821239310966080451850793048605538347910173203985807954824393419588519120984571046332590574253472011237647523227182317956231105952187227428563378626094053949032082604521106942914533972010023763977067127952988013944076532414740529029708273130527885278937454832538017333972968796227174746300340864128755218938116754648315468014847861293961749724621890223573202058428825825877324297092198108438294695631612650455383857807794027128855077764308645581984516963764606696735276976139060116520796507351313168837535784691498573529698127233574302824990286983957053763071942080125048047078749189481207577800464939239458524272438639134318283557860157428365132024466566815896457166676629685218310850906890415550732861679184504900812572041120798120937392949062018202961472559410270473518166567375466180175745097873333176082329266746533541341990871516692496315510194995354756646361441158405901715053513397895314840988442773366883162969462716028788704449450988414980191863578448254669396400862272000843148342000215720135567974633812984889124345075245421593218857263151610980548491599414656365362763464141669706495538875591765002527056102217796741925082657989469267107084904701069964885222852183542729758104517309422867571873757030353309768104622858174546622706751723328163955282482968329569873268200458615486283104391827752385123095623425658733392313290769379432173327257114128427979732208469607378461496746875795216121688258894795082595612386213649802562824778110010864924498338522746842746308087605031919493160888522976880556582894119423834903619746191738348051965345412354579967142379064924580942065633966190626165504361439351746970725372079907994685372605146623317526379658756561971674692664749394721079557057340582356738223302841499794085498870597768200158979238792711165536129611368866848095993319421195411793706135472560048833027237781765602793662737209154753818154628028177534184665877147139231359802535973042039416222065227513340282650393636524914696388975898394360245175767642351273580118171440562615465189996602901953386141962320438215762786943198062656678425301624337329875386892066203975072517442927778609052412359338963299363786889490886542162900871405507437268073628102734144737244532197578748384856107661387459714899671656009349660160608488882820743881131872845757781293470136837964034617921438259536101959959369774906583183849299540341961230265412325045338046896496693802051421566399804708583871662164638436163712898167937431361256779615247613709888855916426147843071016836494818636231936220294051531115959567015042175415994403898256536826672775227151857343285940154864758185878436424668088055881295096171966126999317203731115007627571730151388851237311743595173888201887328287069396538150171368418227500697723067125575537322405509961652855132665028202336299342131721324572854242923277656446080898421359446966732335080117211683350190726236620346192568498061721328438435155859260595785282384979312996434163853928629745729425452031637986545868250699320897768532077697894301087592158956647816930674294678585798647711440829051640325317143111089112791973674810632771440969003935663097995434020876036209345417627213568850462590590215689512923501143551998546961440169719159108428367288802564802065770842625883997894900608312082246856567300180960376779432983601005813102043723800657320837582843733116151091833944266279874193937249323213092411044886921710421641375810185452415184526261488352271021026563615697116042026414816042472550840747155379939425248368857998330800908288027503541059955373557957899743585136205424554631547848622641026951287431385634159529821418311504464689803237898553976377814795183997658249377820668110476082247280723332205861667574306122838325249760392620321866069559408626930766458925397132746850381324387402990361523129589774078126028649075156058371180239520577188083922343017497269816984713903579368326439971837437182046491476797523533028854442739906042264654479996160250180036373214773003898350243204829475061875647201655237675427259538582061070122860995150259227816762732944041708701661298406610740130308505321446124232541638336996135486278672748854868276899899224488653268256445145860979176207867937675330497793581626756227917576674908832274901756218124947850001999672049049064393719206965929334278400526911009021320143242313692135406167329794724339917683573234589407332251518634356586011178620242661099617193892808050822402950979628376261699162974435301587566876903002263849902549364828435851478151992856998492779334235557130167207527351520903508970439722219099189089885348067345438759236910501637424330420108743343180487430581387974800312876137675833650636637733830399893530419168986880875406830894206485794808026931731053589313814769536079000508685239416793534634042487902757683951118812547196459474666772475639533800796911378108635576431134188484772249818982278335948349032096602875358597841293465406744837637081998002504540934608604285789274291025687898994926585024548748371290710447824703728599179195188151655308155082915342947190776413952339557723673196409102225020991245866683381423945958837958160800725900131729924751423739425698266961731273423099351559420210765744014151244356160183936555740908421983181550098065126348579445395815127370769978520265341323197054147817053964849697279331582968297935834253218712788014336369388492199231843975981535214059216516011170661737757754809643230253969550992343005368403693667734382409464558200543949598893968628196997982704544656705418641741439575035288712446500549390134694438507427333276878773082704788367245346927207247098249914614407491500310483294559480050376951384838205355185914766242115937934631403244342771583580886566424482922438332309314995241000024685543007981137910090822518091537545482532350806509326090581630433693489364277720669019791190512904231831359704572954619255978638279732025744075767176131620012415556091379589805296340929373378315334897319509434214635307159553643928690398661465624446221603594724854828383798012651764190283403892990677694201137739854163133661524775523068275899880683534864344854550992138820819762482939679640068926925367496234432328591031762199900932870326525349119730598540735186318788432933177900760070090312347926303250747072872591170206507046830844396081987981812289300044764566380983609061500572136225086234355277118512707762448185983609473478787441870625370509573636358018277649999997343834383330959398496787030581358006352805347030055053993685522848618639154732410623083823822880808116723710729154135666591136945626028013813339656000491591849720469488155315088469621853111247188178115342417212854985470631785027999785849198205557159316740530842131830939493819746192499919045570716602816654338054693331207337957221217537379615212024804289263942949601285946715706878070657612110333619374939024682312188209570577674198000065618617257281784331689139299735500299379443514039839472465608274173825956316750665197965317572312399677830836699039567896583765318771453417754077419362745531270809045024660787774063560968205778644480609802069076374349395919042729391182315429867208395059381740536977213082684315900993557283834741662982754990538604860181681479087446814896590643679123744306734046377351110157118335405652458461815938388281058605278027079233038580426084565447783426836926303408425997041899364567191628315277048327607766143708801943418587364569525405523084548351510281297749388945645208450816058667325822832620326077325865422665304887518146598029571256532276479448253445741589456738862545295691931429562895406124716351112785757570927003557990753961329076642841251307047334297247531133200250557965292735550594358314967067497232046213728576471648314611889633815574531014982858502293819502026398633398219859010458014309252418562098928384830417027697962559474385802542422153332042979698735161823852686947814778068454289327898228728020629486260535791511664137697724139431455266624801745077059894640246143657201393078271334006741143249412807742827096551745968347442988428427473318380517936722306139150536537393995385677241069951667848912130028435433030125558583603948544239620124558154863788596408733631222748288950255649506884134062052262382501837237745638583261615279375115643725399134393605856085218516495521874688893405699393231908128226267074554790559285578175008825667320385339419742447521739675983794347591669185559952302232790918890498355178272003252006933153615888356568564343727766434235050861239220429701335258953488771695741039337402124996289689501389522989085466690404713565560222941166913988580453304147727700379580380515219182979630799815525861966416708617839345779464523466259595063299188991102699233559709370429406255127581224394670849924704849047704939784955104513187569062537389807476169083754136388329747811805290612303250178978058462874456926589023990991311630841450896890760677575313742295568618876493453246441932021819137545308267802822913615283436371744506081917782153084538161613131690752912663828918527290963403148175573484794224728042610867938344431645741251329172514852149460471256104599214261254447765783436060814850169764620700778321267253903445380864752782624754855082770020500226232032212863937999215418653903629153139481798829162526603354988296791615849368675403800042252469400071242904994849020342451297143274666777266755692554421562086292093409634881407516779407937244629405133799940504577411141540349759437657729029219803689321511961520283636962005635130417031979434494168243465969591696993232197183667536713389303698564015150603486654739308918581569378800806388784811885133586681148483411399474350290756766643038172997171208791627819124897886939528982095139573212383657846729040498974195033801251367619349379492421409671899724938144136096964374504900910301850171588270941230719046013383249165910513175854950734709969646292057684341798485728769720772815981003833347490852986232713921584376538511767115319271973298400648317360610054463331101937313496516128190831760235607614460149242739079582779753776854792476016609106528503917598568458774597788700894047698687594805060937170756395059897706594959411389481122736673240212273434919143884643381998804290571055872792493275157625413083359435595964824616857949959794543394059076102017651899160157064955105088003440493953117912853089588211373383318462554323466492651764123296241447733403215998801319131805083142813710460052465757865232099125028194338155191425921432304885498908331662658140940576260305689061275662284747987423132213405609580720132945108791968357377171559981017823189830779638632598564001570533308188509069037484172143316953822633057812099259511004405701072135780933174909953425587382509045402113691089682067599107571510753547471360756920015640425159623368294972817978637468881763811943576812174145650099970777534456272165830724669161342375632234500844809114743919029609579143920821899968183599763437330979699644219683555948648720442770952553916670555861897340712645721109601455678774475990253915771829835507013247862601825078779750405557021542955366490701188061677679835523229469161872935673297307591655927920423560752523362912909569822152568630868346509736051228901951755789962677605271462282191400293133245651117944584484038919070164355065400565480901141402853700525147196804806573079027113901945013629878959686579125587377171091120029673932725275716290133044001800377918067512630660126533867997510919187010289571565577695318209830274421496636572813938929065157559695323424175248100188597736683045705956722019662055330504325550756921842085705073544501622724336920324367418700099371609383015215117101921977809337340056837591879365953575413294947150322650950577923275472897778149551297870148130055229666701887165192656242306801782757930780138957240965767172287108491881797618204727663498081017943799431379187419711748432196561148903347684445572829979561281504529654486191367877017530055808975426223089024117234559829681742432274218402215514323475796165346723385471900122105848065571682579603375484200914888027011694470174271872787359014302170543681154268791906854033165045952308072020819096030031081558761004423007229625921066824899117703001994621400146817349244363102321492122763500543651524454768366480317499882073240887854431421156884606823162199687665795818606274364688951284980042725550378720283787888174551647633477575999271580219017644759278669607789369676249572369543074139781794730191555441137433918580321096143696676920024451621903431162784628996032724703006544818108075401910477688021922949174888251848756130247089476526781963133709960876263476551725731727889749642501308492719406340264501676250338164380965736759088973122980457764651030368547734669350373391798815850091596874908097651425234493423122497546973348293666037455956482752799122329490317358461049161677915123041905250742760295966369897274333680567329566587529797166509536970382973460629797207141040377078240437966748103934551807355316447939082732815989017782069317259360395093672561074914057738203134451246547093588158225988966894325017793927617804533497397103438440878649024819023821355474001783425337109143125636253274997341691023165518479219296912707063348754714919426739541099913510637520242533132105830902434390648576543786542755110605456273674025797163356077714388063388365931598066648761731964649994488926002494599702015673101614365522442058954132492544975864646619643932932721185794279600092800956501082272276322086060782346685140056303452748246925840629102718388775073582368051758831015056836639532429403431190355726769836147805217803318107248214919926810017814385218571561340498499529328878762943646937210575929359509468949968010588290604139500015881577553789468517790751297304112322015655800636785061017464419946490071828337756581158202120810186505934409528271989290999914932212690755086523939265001997960659169785954106211676831924965912939950773551975424953942198822233023238377611553210573201553933988220269505723004087100089972380647532128737963852443878981399984966945817976275386929746454898691495998198309750144827685978147101176937419142941201883762594116340890246897125718021577032067127641188581298960920316861403269795063249450029145811471057359463521228882420828881281901395993014697331267818402058090560659588685005454423481819083855967833249085728094704675109814362071508833759746663446776587743168382251213129483108698909433219772562830151486392896124872757325387568684664594705469585085163360667871567324168696842815883687026342992763002649084262808215531867674637613245054165599305889635597302355904713404102108808409398591992020896304390182117825143032822469365335308334425306389213723508944609167587001500665967481542208363159609882548775247635401854664609062541520242086038080081627696675524677023885107398168643175663904802982045786659467952570653738161341631313197369749940824354223768068347220815001636505421387781583510597577607700406477803457678232981494003821906412539640367213663205136201226803722300120480873339549206515204116133875455487418183705487514944441051698722181049997981027059194941545208714714421751235043026994488314189659108824574959260204917080948633045748640901304523629674965539802525168939667287086344927915677448089240152485470729834231650735964615937060267850714458573322860103976982271347800949647876796762510542272846461786690570388992309213499713887103593269596995163326953788154733420672876169256636740656899207910667300989716736759014362897606722914396870951297671062475885545379625624842619636032536587747455563993740763452103238826068357901602219513946227797944441771200658658649210285036887731425273548587312007575415292636538554017645000393079579020216536808492491422413923067679328586084386624499765368466330782986159086917955342036130447148091169927596704215201195591564859611110956682529172487821078226572041692357580131017236979396056666714339797984685108313582954086055775803447919533630574468539374748599948828774293832792456921582444988748976170375028567396257008807602871414635704405005360162696302715921479759116650439937417693445156951425373733959676673141201025507183496494667563903228716686734074588803391497607290678067761187101435427577961185392275838857461850543568614106293075003898691271244026406848487068864340830328207960415226157498731130058898283982403912053151632412906430374238343557095578678970924663148597674924350691120445687115446617761857374241165293491798674592547802727622971024117437586646726064219207243352469747652422650613058076880301061337501967219311911638977927058579587680760550084834467506908548466717571274154209433018717764925148564538426242490475051381699440948677347412753984770823449898346095849304939797710242328853404752224139999889633818390067062447327104076956500456453417197292798080395241358884325207587079615703347417463196582092254766852410770942505317559633346977865161957702168705857756629711730863352909425906833432516309550936128223244175000489682242098042445619043976006107736468166365117275524603621213716747782927197403262408107051400341892981663637849075401294666515998228926426048956304461487530698198840306924317228245041535585758766400199535972589769893767584335342112894625789144190779573004429861186337465639556519239613527628579782559275805813824483108033537043492963703064763204135119864315736619435170207555433285823580410351283867921335143150376105232849248344745734525929209140107052735919320627042399709421237187256774434062072740968073169012554931582997952469774818202667920753048236143464590624261349268810386239916577764666202448002506389360616937029101936604085256536896578905130778597450554518778958820317703028238492803182733645868891333735853494914757864346125195743047888951869265534805870579597040820158647513959407151875101215158947209999119261312510159168439732765883793847267812744289345094044445729732673072073263866110076623858072244796724585372522263860535555527949747731939117067626962849098747566481028103481808018561421164074356927990027096160967524656078121741904174894703862951239538926424245409997951903801930780041985934298163605884002498488295821025343108924739768928552281665028730425436899733816593395362622111606772544825767260769640415451185360624563530270502726839650976595093339511023282940924052128327697256419167235932769862493973739480011845918536769152576265666079446292234821202606907487421148441078790751083611410402816602667682569470886304641527794542587533398612108560292339143858394228308677364352794119625223263342893032980847391055661900918369125822501578988204305576431137925891561277438232990483044003926992940644920911452987224042961124385275741287114930021681059261472857518166864395751101738647675227232400273566301546803860360342082930089448728311419378523408612875708174199918857776410265755071325805880972973608339110452550228614623033693327695869951291634921185444273151379646200419878518400967074863519114133239234868740729117270235419606947828158043225065196514088337966479269382759824462650700668846017726379619022655573261071766448050133085687270075044227791375931242320942435155573675789304182947915502280882768628994621489135135779117533892035428141371506992548388123674855428896266791433230161849954159687577232745874242557295085704405288654317417375713217115043797831381801433418587569782688930768462752387155678943211241182691317272538428144941310188940757262120375625807699443487005317481806477066931204588187713745484026920294290463497078519415358576889698515524314814828076812805568986357141879119587996947725452493241873891883176976330947605466779172181072873203809270339488221411258883784204667434623984756585723991011047428859684647622735876769284486647538908781566791528725137258046003593458902058758644571332863288794973150631774703504125098129719377319778720279352130346661667956640989051363898366129416766568976857958823145227719465644007010380754657414419001028329235064272896264540235687798569379925406240936095065063874996390811309464427805439705568542369063965455105468649993800528918141390133763896440671214127633950272340653189981167740974898317415988374108009234953152234060033680528518070099274557777764620670086801766489959158986847145618658663703368020114523116666952074867096132546476830083270765596708842784834901874623343229632835492183698947339707775671162995127358541025158962331775300370370317860017980785438827445953700096114190534519109493347395020756106364201541250731726234814706161154548180987674697592227566714583384512258563317503404286989269194432925505122076418464930976457874630242105752233516916221263268571592973674826712550612046252857636786455845229086281746151927003330762121578334300138698130875428705948869577188679143387019705570979144495743693565053316260370985029405224509971450429120303630927383394700678866239563655618252820911356646246669940318083522265812354462650487125298530976337899029825547535200067170236104940921288358385031440037990201139497871269362298355733485833315143027890229421666875030227073788442374027594164997133201773279729183655750468038603929455920696168601444423439564702501076474208583125185498136321972234146743193095422624893010239219770397618054453418072752233776493720776353802496239436891959792285350069552622096086177428056137744711751789588997949259828428289948274347764641645557531147459055403558749708158402816403750339725952399270091390893610852790434774070613905573953495332342227309998996351309292962013957741946478805173547982606733812283341980604791640233095147613232818079439519997959148142349580613158301226317319487169830811356606251465571220545889646241624660559060990350167955891037007456129774104268691158213068174926865869074453410089557435369004441607393197673303322799479349327155897932745412379386280563206390336560055792891924748672617366895147933658450976710546214227597328672841211778925707066276167345791816394265784201728575080129745092548139116988592325326216245992065666199196174804922941679572281610851385637647443004792015811312769973058260393537579623775230176204583738322021671560952473259499938941457952461791916131126141142730319030388742451853533872647578526833032481127818115674974068531665139074107536804382132088770992505060049638312991046101508348603479827657716302774348114126206372900466290811082737939787850331702121102732626256078758914402149420802912330071562997816970810451650521886611534593143517201722240297238385893057177999905462142142997850271702194616714304156155009688260735235642215791794387482624411066904431012127911055421302506648640664212024093941810540979781643141367062484637970618707857782898270245493979601948536891401432631083607554269928418267716420908239733933427581764859335839782718266052150566059557880030530963398174016795591279666218273065514421138139186399827390618945952356609532991896303042933671312349467394267571073713247317497609093372396708161849296728043502898613871544624518419803652877229201262345867125743214174459436726676763814511016616646311894692135510436680913780250210330766326127429313792348005755805643431087165779013710505937233413387614118560078477370391804281578521404169450576317960137901372514684737664457560868670281100550268724466926308081132398496454248241516239889966322638478398797545493745181003359496339277848551263044651873929519391778027556323943122861865459117484433304615471899465354821563578513008803389019762695004569191830129158614785165610025814562262603481044304664878813052529999546860498599925035128803590831508188722031990044471911318653614889886261516928447264547380386625824857389238307242494923417886845094103326279195159019667671389751630959275987329460428644768603635146589070984873294902676641859607421849901892656363240583146787303996748274222964401077152581766213723922433111596956743108101184465861639214125772909874914673964346305349309456405717579672594173023680358607739876567841175440308167825366889723324271639208906668696362492877998839158648816865992259243808967325310088066237147870981878520624792119171500335690645091358623663169423077486582812781555024563605422228893627584178440724446439388687610106878913580759770808314542043284288223120590480678828121899080099251452928281587866147873415089565553348112427950255325368058403451689562151967179322903820139598126583441046249532135338445790205558825507311557981626962414753823133823764730527219148757777297027910692108144942810499161394969077005423208979462191537902334822476234971209460101212483274299503948111992182914153675932852852056761000663452362162172146158389460331360261462568624567232530305475094929629262500969745878093965125594883961449390915791879411076078722564803990379507616719216395673470362807196523660132938545049204513270431949496743076381176425134340722636941844768583560951299477899377958837339130400303673968548903511202422446113343336606836798805059095726209748844728783738491132525705575482065551579595911772379089741303149777268361588324575764036604879083298251151910478762014391950659998091996154214120910987643341901829676798688497525591445362425890046266605688588373644701643006913543252782800726025316170765732896195932488425983098218768616338450949492578467934182535441973049071849737540204642722777988444502805593125342372076179281463876558499356730214684297423076035695150318255925389540764930565432303444283631676192417208566300290998133089310122467696064109475234756759070839958778723600193121517481392725293610050658602334598293306969287133167964391462615081737367841387011187586030064251759719422493243139875422353427279600725726682679592908383617780924706612929325914931116893654415027297094126939309239594801234516825681009632719227859390937599214256826368360835803344863766819927130484942252948573681507527357007898286914157196540721021407362756987285464381006732192975729038722370090612675121950837597669420771006554797324133825447999588596401368526709172437363337888599244564641163002687157187608478433687718409614493382680248252340563374823064952503902377700144374023751371793264163850255851147508601320274157691353363200427153662629675792138475288672380763622485826906679052466255214697471805380748222117222268666193718893546612137393955047485458843505591086186356487537060327017830582844492736630243996254630421011858578950919739685623011528292454869015120934921055203472003632736907756173192792076904835351563064718637699104126727412031565389479137781941864495766151292637392846725647537740942440299830165361840905024380792487469872152875674522647114472474742854035448316351499885718935859059473939173946627261071055827507122261546815355850155499508361678170563625223619589537116246540224960474064254565649948469396312023761441256849295398166776694178935826123233453801184590610078788240080360709813757496030576361254044572091871244989402136447612451458233041377021316296197845102182439512824464282638875465450397629472757549889195537545458300865139264508036904904041002311234129946434642696107731336249978225222287910911991101164017949094275337329962406697278067787901926501456462775371781363462241618958122320810702546935909753362856103637072618409586361166051110635426278222710464815071336488626379696201558745351682368918076965782001182177564599491208750715226723992932705745005939960657038745000409811735298586539274004882964261456746477957193910537739175589775352209743669077587857718927255169993533603024386191324129886542481399469396049091946781596477073654760881975879900659648865581004676867728409368948587618136346170811205541803944583018902582264250305389544459774027113244113758964883887868622896874987407015271525143508570183291023477824114554059885780028721422656766135333850117539316704620705687841765957223865415415742049814586817660662049257204778299670544295578641100448459815890368597512117256365994979321976560550372037932087683287314081756012811614066283933927743456454635332572113638090182550392537332308861507730801967347070807644477559528259833215877860712996161607874466643751897600225284173474178398980373238907050224075483592270753946158762361097441842530013228094850141577899552962136866169969703560092107826937599005923299559820648083488565499935679646665418176997120936772117465191203809490101875479081749118837507660221024937795011679516536003066234478511009781943733794155000776275903453284313061859921466234738341028123585758458837319226421705992820150808577758062276357921410222346116028721547235260135136675531802813550731020447790853665944715870030635087831568514135043980361046086271368338859780914837879771783140171100935635874786350132534008711833990184981302817406897777274331240965867400248791389166879850357611871798257867757577509687498585100750361271272450583674607579181674236504129159577596779773772733031670792680189582408926431909734488916469988081451086330856865584971194645334903413346960053940172085500846365179156286744466814398576431283460527545226172457437438978457031766351226452384142083560543461469654700730696160621104784780999492379260834336837257786217315837184352191342550176876515018402726328895313117460524447982446270943618431048339548946728654020080006539348538284072553082894637564157886498531716037549089397173228448960314156008076679588014673337489133370306187594827030996188823664512969890195941633550294874931459135345795492912320266694555927662089827021557087984351908492487835397849121177559836561795383845351564078936136064426754490470406902660723667134044671926542781874515301189764536609792620596549373769327574197818134828363067571676481306139295648054985563458812783132776686821048330750562469679402366000034322067859171126940107334020965676035244168263665890021348817707428424429374498225206150045329858753226046714104647142686784010521033215558096632995019744353797679902226419916865472152700124446456483431338563083707791921702968853272669151825253241827294152384352852384392823087908303225267024500353300889875026774064419242112177261990186746704983173524237034367728518444434229377647105803503655267320083186305057052969562489387184909336579460435450248190733475083745218997279948450208370831440802794780874116299123797576344160834604556859762806167477851554880464035396922818790108259862311366241162522860490235417934081204716416951713699290590665724030925187800307141938368376711008678353784586466848454030672103148473950482171086490773158970890511502949892392894781402396672419795171819206181970193987189017898549998844066557983427153806765525946685132293246750342931665413651016941068600242735331045037479383486829598868129822733226532021047389815218475288085362054448498033926376552500299121187628890905339415145502495054669454957249243527516420290919561093217332864443597025228519093875289655304455747569140662653672289420249604292786726260138406882551262153262377911592093451696775346047754492112844719115173373593832380031414141619644928872583136310957974964825501741552178288066826928644529230757604818607166183344861976843386296806039691817615071052617333933880112441869574062718382217256069470742540952285947258576043116067398742773450969417442671985881059818880202821982394363681981596729281928610561896891695398625777481872956120179906311024594713418806631331657392008508524109279932015822273637572400157962381040479622943840746731993866255956781811656021878294877746444107447328340615927137557106526215723684496391975846843186236367807806647356912954011702297387463738372913793541058543616341154134281469785853669122340987557035494825516341872409132330094907035548850817084324802500441140400491561265068542325861559026267930921817845686968091721158212829893619805041127934673623789086630203022537888121466982658009523298729433814394763016992029552437705181537789334426164209999997930439451731223535830237656800593865033224970994083720279039163204264413946288830370278436604870350944093621136735241754802503074372122946336319577826419108472209837961190507449281105953983623874785830653740058341146174369618236798700057559595005156157140121960209078761543780394202495772516645114351636893517627804862473875652871176063446113653595698283271792213548674967928666074891133262030516952884696159665145704377583365591508258521881084876535088674582386273490212698265906328836394916202109300167418134626467669267171343097459325378611337688067715928040722556821799550659174725435581157055283916002941800466845099462562579326639242567449383437101759969465268828103258078656440316191385679278661064178041624559923174478844457128252297251323418392737046848487443786429543855625625621263313357068000805943492505138149529100802244278794576309884238002246589850209116516732733020990540617093056064505995053477066341496492455197068485973334484381691959552005077768671459716714994477688832512934646326193364874907093228552326880830899892528467008628945316824663008008761614893781531096784327359329276656454961256994698252023740354764837579719792484199116309110207651228245048898601660825860683944496191240595719105113609490266107790662127116835474624552430626976716556747452243750935815618436384972248148567400517122762652222305908554604141821303506196451721018729656482167218846198739644778384976686552610560652904295547494703336911153124284101221836599448918418038861735737567025781841993694511771706511233256291968591792207569022750112203615831743645243230614582476821412645843593945326271298589042333694412923049990972003884454645259186267229561844508350360796921552877022720505192708376249701016623819783463872141593129672401613392509239366454658010500427322945677404253461918330583967316151482074010207527763550493569267265877715735537071603811919301223095083098844387456183930475590880787179490408966291428934895320475836686079161464040212508617185586108736703829042667382529070177691924617513599187367000688446981966149600999072677376262300396410249610603136094716177026806342172245072978871679677850511018669917726645788317283830070044328927288663658578132380959257988673894212733919777155173776096752090314105126214969846996038274808885854724577514870508714882737537769695465415459935918473124776859063031825864802384421203534263870499062826603404984553076058294629774168878028976404714598610285151093182872528943076875985854553220475225287776647641985613358265897558809969842892502087155144576932072917889970924410180236038374564556285004644709869041358414117819903944555273246448578473567214034685207221680061403003529838925920322364574597794719352265852067256827628861239009762101245050223607079552657449458871786957422721021468636048907680049261208008521980957128278411110794449983482252947810504975737482428539517097969879412222095001793831291585893659130863139043694412432096075579090624241502819103068851822158091235746022986482865136905858907073173507629164202345630583574716445947807750719704554133985420851756873071371725454684181294137493647840254563962572778749670575861807023180550340731040655725026476830591652935523861455732939787566816784754950719012771722175059497892095162771401332823085723995834555906964699138421855081047924551267549062053479181049462905247211440641197735414661035177535423241823855153011791119228457313005552827319442084464582756303122722041982735920821592231840737214530636215126206149540401687508661754446835554664800029721452616672331490078092298211931725718789578258677438346141730557763904369120355848838551899608171656477322713468937206201717180948124221791609776488222926956695409764375568723143738437300641900612314220914158463589960114563045665176721464270416035405726864032603409342630176572916591127982496225453072802909271474888259000323127491127258757097625078801054822138908175516947264993624302100876067013198590006471948232055537913586983522298075654627313595456179306008135694507745744169890343904409803474469351877767388217736402625074386914903151896743355524781067537587612390708071718980373738619288772911582213969287474639946036878351886404279759273298876405006479121113434158734194835645511938468707498672767296002112386206401490073374996763007719343913738456961666904184334963663316700137282386604935626715958999116867185899966343499557847134623859496248007432363770105348404578570445571902242034369587941638782577079408588466104249511485295515225105086161753149416224016643646671953501749111773744386256374344763229393501633465586009162654918382075926118076974301187215776888360651106585807541863106642594741944638609374206829835380400933699770497087529584215364371461530423583762748478927438369314794850077294807255137469830179604115781686836419232528714903296956013826143387063765058353490935604597441062430357832243738846517044790735530739338157051255140931277189591869859776965668613354749768200850898936270364941687568780211200585614233261698554750203564618960755901054891217799191514287528655540948349638205305278856359554576826724077816771963512053098150647825153839871217863513277700695013149066292828928867231452719987097172573827346031969068892813265657760963961553022476089515874663647734211491546367786082680157278172421280135231066392374918051408343365721342436151446372174879554402560749936625671387968747635949113055943593974553466314215442979127262777709155026926432607111087036071999675338395211652817000321304055529599377262456284085062677760397160960660820019245767888179885765911322140519647903203911479325823054412004058121462043558259799996990499998881506560290164725683359794668049789105244962180890566726504155510968650240953424324621402427052363426306050467748716045571637803003013713339135493482327002537163024868656373258008899926512339787064618211051289098626256532254037377246052282547747544033274303654556944203232955659802004613263952157144303701853816378274745566950561079563142285880546634976761262688657181647586737489616584225138319106425518062496276295880118206561641624903387316413001125796045636553124965477167304150387376624965593401138847768419595619157421875375785225294696891524309413139385592176648766636052997241251873433111173598087514313037248214003657464603434325909037252371845718927300245724095229161174357130226377161294728658271486398673831112011932823414426418237978777229460087176830864794785694340830096286904570166718631346332777559602374631538094312152601276137907915513747956648346529784110790306224081823434996967280222673426862581385566120902895888285459899715524978136613155227804635365849132583225241594937044175530820302595329946030396249522345416517116198243902468395959561209806624104137743006642477956860577386176488689759579992206117070224348337098786637711538691462819849539230881761571540529906331589801209117216983178009170300691970349246486104083989528756004715218205264401840022250770653888044327332430738798457748402457048790928505603687369339359310039036285211756342654303259070661500110818808577152499284918750130161719702986871579621850106627217141987310624395369680043195450646945354370248538866676221238852364292477967505278461770751504266879825582657320377205843276625826086466077466483522779556567387195509171411981578693285925406606667995420240207909700147230810898968850159243369600832651394455894717769076445000464846153615606843416645544917292263049530354975360036734896907374081292149056535399492929201308728071079884407781587265460982667934241979632108880560232019921294615476678678489014391438200032044846134746515314866050103119909643751824188473652177564299614732273318788195880729495487297760624327576021941216341103711049998880303173540567281938332054092746588125461580824079866959988535378833982543670379349485923739520872113385253306504598239447117900638123378045323814226010847890675367762701201337080751743827133485911285570826586240786876757844609752209498957869551766594800884336080588301750043505583819989325483208686308252560004632703568289945019396933089766952013412656512599072712179389319751517440514432242838270520283450358837074117267842091999558550361056370815806103168077824212860813594684104910175227020621657130912097502626301445096764633721217156004746819156801107550769858514602415319415574354239756883655486325245076053649090894042942875185387113402818503981012184568056197493396305704199470780522675452444467442586363914266547558825529932834674750069368640804075200399063681286904078893986900630934191249553116149353959581315405826371275176092586654629176664172434018100906034218119876713526900366991686032074819344504838673345973744924205381569169344636551255141069955081189871000743759713916541937772702304809810276882249122847408906666646403208075484641086285246326023646934397190021875744585711696178180102356140512530336812929902487517698451910061037711917389928477774690765959625341510955048977128421718031932703712884857918411581728595496087268956547323811029939479004552020484505606491594721259106716710874529982991831203427246963509807593399614329480277377395693650813494900304765753631990385448930553841119982179822240983924644838730569258902708830094007905554239695539899964383698839594848750727557345762925480446181748163968229708277393077545880787700617892689166779628177966867252587862394281046987863838930026661213412343421068848142379222612017035869604860637030063194561723504709573183482520054288097610440654676185483958129552989509206722402621653063161649258452211645238844283101074473939457019787442063264747438636539999669576038268468622751658303064293213870987539491829026416053393270047874081769874770189591923865900097518919614058497653198745719740855357565454491175173144893202431554783837893141508707124683576874437968671586492320692072167357786411213381096194627018196199047931900133917807873475443503916937830762653777517322595564354978737838120770025493617088108387439630778258249931815684450280295059609837758436950074824466165916525147792909606053709985978765176081060067820348363793547458447520584344044626273393195080559701942392332172735962490089378374224312748047114534304192132724736439894950366855210564384578809637082886384912800528430842764736903041146101710095108962359486600631542385271482956977853959387364522487292913377084729309654217167127101011543138591733701644885447952224967339782947243681881247709130955466207345432861433195557969110924973592984903273491577726529508716022589388449478652384520251200533267236303520825363897301251526846736551037960198172720971483408873626330414052975265949208903770026776991802415187087970904386938317906389090889740957375802505477881465168119062694260490214591542430530322602535339719677501551180029194910422086396695760365773548752448806592110615844104905992993844795707051873781125854851165958487984144667508800597065039529652121818203840322490083720572873083632307208070791565446032909049860818847490946327129545387182058926182900782204746602056055107975323928991034553800858477390540118907306142859430839861158384448107191194995100369970513896544634164700621054040962385163696969039543145243897784006517463622252491076433087589688184624507039273512179813127268717320295583453976608304501550573601923890908394213305698277564219156995282780885223286468979285616944009921882845616507954367543441115840133893768449976544640781274673348423794665883747338377500950676350281697685521267152835793453183659740070386851323348683844639320225515933813324075856528472058704354003813186710395885485584597127559539593494784067317185792637990502893932856803389293309451388384297778788079611187018441022693379377389264299825241181059220826966784532526840283010046801605873368410608108420172442166953035001776890746195031834757663865807837451105347145975141616275125692246001453722197848541451391709422713889128622038653525289743325110557293345668777778811082366473511733307910856833799707566034473547125848851279279832850614587991784384258145138832713558676545300017663312934005554504318883622469660085580847662861493174450919552414890609098257154996571958431881274269635722493703674194361761701334513788694162578079093382695351585504300837119530540843025465266823472447565729036160761019367747978582512371351112094790371724990630491696139448770372507690657411004354204583233327916673387357653418086113469523298226538207312346139234440990981118513559643111962850202697675893520038356536404618301762916865411370003135004079601885848913886052369535907641095611194586052441331349221785066052728565370618944443960991136998164978527306398915203409796113971066365516240603577024771122169240699022226753109649713089439883375708143080892716512604145258779046005621027259661073013562437540280645224132070676276422477889154507447463859407792404469904359048208063971753053257376261570649985753929446347134216040862454089277305356465391115036055212507678489439196617975061553653356273048128575308091365371984321513440287457573981286069725470902851701725606032458544945322972480340030145630870872498762400304230514746539157816861115601622953594788797440875943303583955502516152793874521479919603120349535364426308776066215721555502622745903767996614103372499460771661696716106239796697316935994630274188359792004967576858715983812888790079338080949918825263999335208491504596286335574997726339484095483802429658867067771174807873181643819335752855985248965182903832791214821454116893256284197520313162209593831034508590908950509729883178819062592636320284758281111924345914996917165438028747029270294120047376517678759473236650494120271667410467938484472494172180335603409845095481179544530347985033025877647779000781651868795322906112295171930025545858064428449159144391264339116175743874802620793136290596708252543790091908749924054795455139280976981476962705403611034566267355941619653361738296079366139759570774460356320014603863252198257673768336917695945856167332246592120273288684867130914201427698664837852075266179200336422381163297161981392696671364766814067185128840403618696795091725738787961749196917788277387140563797457895160311924451234647301964751643713667742688019160149960018586733585855672089355567221539803846501368645076918702834179844214443300893929466050597468928288331694364041556778610518667431120112338982782429488991493275468568459203475334632941628209612413904130387375331573486112144449930143949432136798483101420860778339585843094537333100575159267223892717329201973569825997325613792130644407822709570456730950980847267362679489983034409710224810182920337934844410976237662242495386420297886505911976453947947547994447997177859855487645202565024243255696504309620168879931176249227476696395772895001078003561203219962003630251323934255157707298293783330848016445198496587596180426001879324106808027259255035927331270072188326205027207125963456385269672689141965218138471932757872042987126563065817678949615837151797609954682072934425680136029008093013163008295687251676416829195743266590202064969582910914816565626884255029181899801860439452627857726401978081623277285794857438888564571591408649770416990947108954285770927779623240201049716624412817297517993890572043644253453414279474191518939314826242652528607973132106147493533162556927508955223225066499690298925701847620475624093732748609893366412682560981434385852318959404973459105333825455456086295387104862042684512966086002665495783009482188421763630667625179978591481123150040273804601784498940686867733518413255600879844630000122357474649003291367739171646610825521026606737687219204375753949364373532189177888756472937594986902675569414913175812489582077122245847493144387689437203554743556915782425488455722388245696434927581352517547756636831060059780873705865492278416162424429470724601754609212036763253017934580563168271528423988133762222928162847245807281605362791123968155259772241197572343736667714287494429039108232288120473649133367157061440239576332053872216087683149167914262460850694339584850781740133709438067408828081613548759217477359291999928102894313304744103064246154736274012664486682373691484556856436503901981165271038947003182552231089359166469312375145615214188926269657384952109044182671777620522932050370336843743024682372674538269388836492606086000769396881868347656231527451057180244378612529544964036856472627434176492555520217516796555406136468575179989326762258867829359793833021161094249996162807025557726102363146370690375443193906243059447510009940668226641633906113209101799644827543750069183580654000135844862569310849355526246949274163399828088755448981283574961538455678720540355717225339344415841717035022937087646701129811422286707396803986466600534948134750728388819212939165823902161137193267175028748229279077870039114683365248291233714463865021030927018495415560954182597157287679766310769739639836002590709582703812016284098648155587741504357237646104543899970872149088000816696379110726136104812975103101293497172979691683932307790044520167684885426144208669978246678692366471420863967781484179712291750169820852560141363963288430197179272804387916055693934417363641612862447766966988541373560394397294162284683181987730078178178405641987925725349834475131412742103917373397318418304325675600868324873704204678345934773424871003546814834349721661595594550627609553429791078269100195796185361241330377357414014241012714718019077773045027222837265039645131528045217533494743883574091755471788594668025553768199927995454556390910414088583019713540062132803838828308974232741492179353175965803789222140241697470051944013675523641286544035664640596303468203073575099419162723984049479405371398981366664517656191318897512580143027130691410818935029473940193794874067161455972040438709912781429689368647105403419149485155009981636706083932801471024451341444221107924085952371446082059258874043761677747642854192220849535152315677706905688544768985990959740111667111294704677239770144774750787797306330166672730602304359468998871346778582943605849421205582141579422217828611669948355295770337478889879475959517719976101945227278310426842474757447408398205587186917225296503692741226200777055683836143273518437110113233145296440610162944660342790601521257020371987763091255700569388633674436021600893446891114884049972535161831913244012957936790739595023887778424708029098368646965405359476395135425158001417904776382542452998423797680432688557970575752024662535726934824059943854090893230979309661896597051044609652635986317767828703408408428349929792901507121396937527383526480213817736690838866630115778476408593340696004655739829819108669830753385140170115895816088271610066947541586359796052337555332235422798638231166365414186979518796365776981242881846186352245607337274780018901775385180896890939331268473167541221822392791581484341042903428260147949063758289528905743241878305994046350087530534246370124463762924670690970914158501642790390246696607076403128095728866014742651507729243321222035969700649016628131274106412451132955174134596637860876982984408655222716169125454953588549344707464517131423569050359734268037486021211594146514322440129641682361158721658923952216317823799172156506156655949708827900178170585980355403170272743505403427043719078457871062891429377777633682653614553945704379456702983599827675910801786712084275555797426910640583111639995382236070300729276643195478539738874417906992425764603238990646248160611076243489548019012981313960955708051102956142442696686159162179468773467548259125491363082808030305391962740456586012630635108908083120840831052115657861152132395692413622503026544580679266515189979194723275773984837759623649077269539395186586212590777041339438218257200481916134483933319559943849978198896960370692522388105495733701700701875011048494864685373936119393541741194918995850139243722268073811942315589240224683492903678020559681821362924999975450855080066278803996603871761630226341597881638024341859649232500787968899128040476314813647492452901138776043665543886402732776366042590428333928246034399781476334484895126884064686207431627733391241216209359934819414388048934993065055531979906332236183487404653945594807045271480214487207311113251229371498491349605381405104048381953272814303380713471629871548058002540712175037657846299008315679659077410335638973704594162130002152383954405916156232079418817882192559258648570211333324208217277214219795937003778978365728959572750429629038382103268378783224322953795249335255865079127472690711334904632313174233103645664869076170807183833049573772925103922875817658593324682395462994471017081846815653736748357247169586925298132215239684648990541018765229466236679234457492744460570417221062911298155367732511735290236870991549817941355104556220459820528031865776162216996789532950286287622762009475337030958690808998533178196711173977948811607694110782225245474115890180108854869131933482396080323570168584187847572197484489557574205614118731276784706541753758987566119365601229419760144232505251479359348949010953063103942240499235858821393289872893484281974934216429471529703565992839093914381687300987254586649552605637022103077995658757877125413374105187077280764440096928571671773034611875547703913231837767285956938226031865859419713558816019454202713193298419553400335623966114256897786876950076093112313205038343345062340800343605426171720224823501264218376676965978510499831793258588234844392356776114566373205058323379456152450210885184953948453745582028848959096542236595900146407078097755531433986910644815999344134996591455234394746261183114142791179095594032991564460310843034036008430830784712732093814971232635233541921119256491838930138419889702578185095692498211309358084319703184211542798916816774792291201598497488124641302428468868683296683279979865108936928630806875229113394135999911169197168005603478233402083540046059243425450057755000681497015013961733068643936316601862136705869481883013139683467250834861491153923267027902668890089990592359672839234912523653481730824590041465558337542789232227578995946474369459933249294959151286539118909509360812241788705694303322039416759011086025655462844473059025227645853404260144802904220240365295325467924504386672511368851715781236760254559362154273358249762389619846864331669444887634016256168081703737494097234700733213419443948587084083366653050904144052163804719958493316080271862472680736130629161870241754828238283325370511151653479418148408339813332485177430015699638764375896750789383935738904446327234195405339720198134309172895366687779105004766165076184530333616417087308982969351722754310486186092698568281775639723140816203226409718970971173432980327128198334449254538192150250042970330051277063646439368467616670384646558120899077796146377095976471003051445627153197441825192805989670514789599350977732450619510166479376147317117127809766929460399285165534766424089792706999769984004640390945475649877231931832444376860054691807313939595371379110742627722604685675921265740549848211135115827219923076509529551675601935338394981280068274699189734105341646892142968192730586714936175307318791519441524914178717435460924087028069448604831350144664466045558341175305730124211652109476703900051404957355421764684678073306319166401068755557959208069119050867939051982893794544363127154598116165885114398486058914850070309755669504522043617882981577885809548155088620221225889428776337017997748616926609396075560349937462049011995919069008680230931771047268383699032589599108318825229352231057578553211039398399093324971011353330841644093865181152831671603115972753906314244579002853822843535265776977858183725393849455735466216291777632534391082977419891947312117340180301598559723537893659906694650501738183689813815284633799267657016441548585475980223037226419853162119989258916070610008108246765361357890002600467139080073899387633012326820840826501917405521133016494680575901417538992047270222922394118385656038240392138992883850490374105602364853374847985044466145763930417082437354399681365388331605163545249860148874405424157516748526362304593260672224454650288982208679894634176802518662795961023508950350613719060077567629736435243157350737088375030657808186220514946206893295747829734230203762181812816264566898469234350841284177370476018413765033229831816913547663597157538978092637260087176767859375221744847795451009588804124895809396157593434101987500655653138773172256638743223887809800527604936911103116473074869695278759573980474200892442450645660239651044121592962077652776711114447902839740408356454797443537324447614648864570924620402513498438812190819566518270597474955548042391987061920454219253078370014557940632523372368889948923047013098867645302331423754704013669490532533392194873839150874413462784830208861208524431067141463831952785780339907330316893651146210519001400267065911451216196393711799763039285204342535065923476608739994092973911876503078606156063753384158257042954358941714607654465523604149098226512269051576643693092882803277643939205244481508744379654947077581349406248674421418708271762101390968157988347947698256584247510358236536574524004884352433314220535189240473495235768502299425550194286637758943976747769086169173608890457973538714192898758026879573210127571324743529876837547809211217859646991448769312172514132445398180057437525641149511946098849632314154602167663038608949547036150095814417606361522968278922125193178950543195760969619264675673330911932291940420092669394912982587829795186747031214075040743932880297639550415862285938599383913648577134877241039745504075581357848224369385452879918315116817661500922259264127720253933577840961248914183510056433058963743108088740121976521870308572975595412493673384584063033072876745631645169014150377523147361746658695451944743856937774991819184019179674318265638851740253247885827816717626189377274250097698741210210943759341727961843120221452390461047445003599982043481638822271687380639456424872520064151240166676050386274205113744098203806213770231753443213686043008531826794894744955564449046255003880762070626496078663629083033984172384802369904258002669925812899170430204903297380077510750275079177932348708639601267100355033288317853738726814529707386654209719275098818138258864275751967800875680771258016419985992605314377053440688140890448261276453525369642123537513416863941903869465546464570917251601485810702058286340561005649706991615797950348821776445549614287396883259124844869435368323413014308475547797342089399375886943544431759240971812224388674848748681488481956261917701534778554412411782720648387125393171704810321977698891450836354184941011611583930803854145414389000547167943220448416071224820662664241085566580803062689012477070010037035485223397167809157027101989863617292668442344883107515905757440509785719071621615554077847870348883472800844842938859582879007853925754162202284795219100125165689459973073032305764128556739673959663986426290946588518834556084055505127201138672301741377875192877152941993372171432014711784598345187714729217525316005398208083190453817966088901264674977129752493319781034108712257267342052378234854604190584803478206949453903792360161894697635368185661992143169271245624144889393965278371985204466606594407319816895069630922155373012770108385311053690849603422004252909437124834993245546259779413731612046319078326601493844534736356175035069733221395359966049014758536458890006963992153812430467858501746215839272560119313902121709230770958302850068325081675168710714312865113171492057856987018518586683876900343794396566822823687215897231468932604378653181861956250765191838781935435387463780241283722356763914438212391999342463453784984366383376719824450185514862689057138608191142811058622768818362215532287234913966434309964907544757928229329351541472216055202888221866851274160924929323060724658475966065011058552305511585745943293072697663449487583129684354519711095111487581529010782523285155322486142638909121084148873018483011431852175384720814582139988750885436983939552680432016571126719850649976066840427370742398343964256994297821762523417131175273728756396064450330266386841409397632367935901948444505823434741995306879357855903697318302909703807495612952661021023014778078853461192158366210195818815009647580461918969647866564973621662671452530334325124388253583273463882483886782371611981129475976043527637350433879349556613128717509942221027324548882079027114082061875425942063882456527115722015212090181812495679172296799841815863425658743026288748639061744487478241887362883938500718647498905552702262356665990507912825015450428116689088908460267405769472349104040975849759153374168604906534729527251228662762688835020593345139187240576939636427137972632002395246539452773778079844705764477281147005786636368325674965890170260785151132825526037430183726063591400723756878710085309907779406597550660412894733931102523801166768276844497988534710554676452688568532530376273719457921413965108408597313267562962309838541143396125637965844994697786849899122886255218274009361386208950130053854691746325696087230767004044011607263307911618427771709878592951959645127663780737061949251696785433259520954600025619322839302778127260449826827148533619151061652358799542431082592837210715137788801550348925800113140056021138952657307807175621690238898715298841287530813017971912407064703058382680522881599878771920892756908826661990966860415608639700287614087933009316895214779532302800718380954853451473366276137374881979738516400778750507202671780953950634342034919086151817650187098145441170553468038239678579563521752000482517741614166382494031349762041266310345422279093653551784025503666695361814291659010783600019527773293758966095961310872115103788672784144395041770059000327937903720873622539089981012861799000900378918519777322020039573751322774912550743138972608801470899971341514571861114132415592327275002443223316560851536697789590681410268595431341487435153518351619875528148220614968922824261060748396592702673928605173181642129822082907297122801536942027394111368191367904710841427488727339932470611708966552389988677900721626617883406119196112248659342728466161747532919160555593067054172575123036196635566034400634455026261760619837799477954425190003083541397769125464919665754476536377626497427972600586711669434887938724426029350872130776263181189277525239606976462448125456667761240559904801888516990915467794640456582769721266088289946567741325329391682032487397009192188584204518567265686982382976072218961697661050329109723275113580714450280513673212123766394571193531420546720391696547759151839797355478488323447774948393101233480230453511065865094782497232597354201316395406930738544412038329262061466058142059578776842975804308453310042716233282575173860484277728262716727942932981403267840325725797830062814712819328115481770152104395842435797315505702663708896070418077219218514150833338750440481471147322782003408066379002127127992008259035162754148659830904328298649322384762145489684375841102618834436522971726174903518377259824163346279770825462410430030602487976493286491696999933342614811222915030839769288457801367441988695893601637733115561408898474278798159276010458265683878312664555536679104187741732949649600075938290127716631311137422584793260520981077222268669152422476606589648780655624549858492580677352687092865759294288583156708899015828665687061622007083053862832471702291261678644602192217886392913698724696246904957122015568022694313030526253513386814971977122538697504836190349057539294349049332117600576844647358419298768111263907886505361533179749803936916001706375828814954234295862827558811816303274599079817455053943787656645243008988214454942565934816820738944104275246925575768072464134272484991932478644653902099396674373242805571492778056500484843040707464993820159197854844307854595607549763363469544246606552328802155457487826398654454807653777952898874418026729424369269189436877373942046599896218492550072836665976161623937709317372471683063064870608832714825969732346367117756543215376169265712040464363881534427625037450711835220114120135346051101550533417758552515462280197088209476835321781106234758960390516538769420436423776006679097559727554778567171524166258301845884998408879241945889225182333110248981511269013197789055202147213535424669025656569049218836470448226891712432058338646148172167191843335611880786848813418943525717892015723756621799958171658825669632131225003169252087105239723125267709509820243844304712861436790444260810613004903005635501147335433592067348300249451469819591529671838255192884885670764043417447257742550323923473044070410952869135153657781798713000929090889240157729500842519266376526709531612960929631755948306795619018660126101341215107945669095428712411126325996534937354861748759246398255535751283368988753853746835848634009658696169708674911801447325606830754338831455275452302115628883679501511234709384548220761236909173033102936597840021346230988521746349594170055231266710855544855689326262080483113588239848949444462162390527346880401422635880806341143283139577393106421040122972820179873823811187372144502216296246620259646099692794428904663724427407871085947830135797982778365447563710093343672812916677494754328517194888649274624839827043992152975416528220994125933513369098014915803256204876908612966455231012620885028595874134583259498618357512252277072855639685684113148444010768230533340679232747401076963058642668596944398602387866350791105314648873858135896531014814706322819963316955954669967242902552814465964207877796194377741008582891709588618423426034762880117556897037797278273879002661411798891642905021420355483722276291433171040286334213794528929003118694404794116369497969916484692976190180338697181898419809128628268846410057353545286507799819322765272121206482899875437104615820593113820334095544213715330350797738699251816038462117274864520910610815562976926686975973744562983174516219581687041818048382949443183530373975755423720736742714704449484046442952315157977612513153223969499898582746146346709646378496569153610420585743622030640223819092856104010168029438109676468778819070009076221894381474499396113662209720008913152716675336037886387588073167879650786947798015571110871213535130303624106291488745205879268255865056869385798014939971521554240718926609420735533357501250485528200062687778561062213449909998008995997453455960112457537751059549053511827267164699696267437991851319056636068263847669501135543674697790354557953850649749039250590182220406953877118918285942220718228776597463327717066916918353089662447875893512373012157822000493398807928306024028112607399339461311080083015378853603703538681957935643451631200905535907154239960156973446281397296244559879371433000755574917622071717970170822132286425925648182329324860440853124239793507406712030736067902979250746399239114246039757421375762455783803244046806958079506959192719934656460245676001746475582035598893570504691915963254780923548899759675929157611250533122707130860253289053094893552204192266989327918764436324354580872923934594382039413448887571532018231253031677020750571865774138572535943808307867228783334890708040956457902036519116742212424095390006688359232180832223135537765599191641632150711640518489794448948764462010732179920378183921187481939421760886805423592024400561334533726768978608709031758155804333353684972300124002681003923331760605449963650698055212204010046534706987188136973225908789469593981253928050164825779108650479861174862924441693563119353312264821063555420121842715795546946532727473434372373500230069798575439904315893103611880678395671092008721732988478403797391517858389244144483760657817209509578273421057034401621990188986539285089747632276849535062186237626207628681831186626667822467289085128857777672025999918758864597961064205473655723091046065412364262346441160339995509177086100716150446601261749629983630309355744790482389991331852662973143868868823467461813994439285860216709956033387727169507714738855878528779783223183487163180883119990143288908443100069286403626640431822809348980385299390916838926092839231946832953873998428471276471185505766341189326598817463245412809762547095245092296217467271228002131753006262966336193721157137421053228547450395455687366268881908663012989882763757545518879009034586678102886870806215441504381896455068021569417536782628008759241556905636976310671012111142098660951177933070967004967127374346726078672447209641531936840732944008408267022930922728982407979569483938159165899082137178085438573455386127953790544058298599346780802357661109133472682003826910701962422690017503980013998980338836300765662880739037369965835868294124061462110415905040149785054124247330679942886098797945313292301173450219334179262397051268995310621745894164333936038145236160010380486953310850774459883696026395940556241807644266182779602769136566276943190820037394455930707623613483473622577929891692274024136216335851003835697326858077108787322323492756355229508478350668618993988123012795658381969242725785001840799410253414162840597003708468084561895904075324985969956959941402346548932628105939481427776448718393818736233389103746551953454124128320042738014217735464145224771104402292523401979018294350255302790156977562196585955341394044883453814471009556835777685513130056060458795117425481532384421473990239792647777582855181405449435290097458873198310507605619773073743701739785433920248815614172715824062173123208570960025942718859445123524150386481148639549469357812719695775198278560826376687527891133535921078977223670978303752271567939120342186194807644886653472382999339160639199958899563002388351251634738709013443505221250455734143123017964495481868095573726542405205120460336831637042698932656051974615151682037207847763115469469199933305500548241884247218446466600879734086376025276176704002255591007297387424956877833517135826410395308183002450063949094703327386331085889918747022789166366974383160075422853991030447985307705755182810128576526549819075693228062694485017334470715836675051076557990610950419080856460821597402264241495753420720430570235741921430236381768317222232609627800573758568456011242179318230078054912906851077434935223162279665053697740571084626805561076339031158924478812949069382312465345266389795352126982506961814709062869632194416366289215010268267911258004666110684236090892083332110506140815193763623348013446015271942932722279119548884099317856018158098894891079222091874811649118456837062343973791486333260357033806095367473723154966837583839128423748799727695609243952988246076992373460690747891012598566526542451383751243868957519462399993466152767265350744521134164751952819010766004037300826755440434774846182196281566943735443965350845346562661059137968790564885288118534268027561432828508396473504571769973464876887629644928658804669261035749610224564468609114774148750320806988960281590269058527746704566343148573292988480511683658633423709433441555019660374512641665697512733317952370270919927469119973962590470348972525903660869662963218807715635773683438686833563705354288402327874451553590557682473460490728084534148247089099448703968046756773689684203833076775762388137881730995254615170569769181392696235814149408059564374249078313509884736357902473827268352808010573618527947273050830626756036613426602556380489272008362021696198707471848565369832002696269720191820657225156312259635300830771195059228972698261121670575647263217729477828885492478214578618583202351994791598398975661212732142651851906445417320673472942400634248763711735209256035862429811401445815508373843940022456393422234525268027495602230569692071803577433700044276984154429147553398058675674778180064228123196205708826712623802144004295748615594682093563414672930378337254788321446441775284395628132652544926949716413915511578241921223161925833216565462602018378283105317666310434445405920717238472163704976420676070686261131983254146468936046751050941310999220792762405670618789766315288328880777907374646456399559368797446398675876028445397722776586214513093559581398836623163624169233258257508012395749164374150942302308313323113078655822044222680474160762348002400312184832464189732904964008772166230451671916811995748034581800184210445593492857692806021025748487046807678327939715172685467737057745187719543316420491121073093128214647518973322908871638895493334031593207116516412097928967907732843202423929632336017872528168127498254423246362096723472166827059359622205885162924496534109986107701032231763466695969215794019722341145617434201664103705865992708547647458619062353758676375609896689354235263626747067282413381434786785341323654234133072642187017970564283008017647987213343588994407925387801555617892918205957072527129198204781414527482399768786591566618660335145670430209473891580118862186446636519829338441713532495494919003103214490600097755738353583481202059119957148732666860451048471224930583439802201330170288683105420891721823168179338159799851617919755653176083135108069204790765294780551214054934936595785220812197339309795861502959735450861526878098251611433066541918291796295550607454610742008227907219505266457772309804554942307866187543677599301297841606890578431561779176241408603832051942216248543317313829609002999700412865555635350349420096643449820372798938782297521171579169242630611311954983302360072392255559419880808849017097682111634127879138531399709184332611861918587054482047403246853150824789378276364844902192792355769254178687003277583187951474422373118390717089926484655056640818747913263596360120788000994188297376160155706428399865080036914578059138822461342011177429078455447828582304139218830880396062401197008479253970078103893349169969391953901298414635766123854401907298035685877381434557170459197176398175222861043494430655952111235609974151509858146802898023069709208248134342714839573471558148992636377223911322299640979996182607345506373878102315380569955594228187032217396654057223105450129840019672678932809687193764654994218223495927325268883001507388106612456791662276676117858408894390160314026437192264684370664713330626403245582724178541670015505079293783641228750868464802448685377095684575437229734772281944658553805009142546484799045198203865159451957322035285020905786346941217431842068777383437567238414336156224475979483056666113006131346106657896449079350961546841382641334747201933120365718448464208587113444827944903498388379188257206914481591841500028086311554280216616847577960277783821445618637555402778059261793122779814005868676510101911651381625944679601456682872848533354657434554267022887820525404734550787418305730935009161261911927816468101992526611588932685517293306656321817734304364208752602317824995088008557740007730927642840815866815093909032601681813734331959409562516053206821231206873216981463148126354999459723369612338814368172812118331922988842513246915116542520370591603109829842839534545652501609871660864480711949555020201753250561428537635765613650815852339589143987991584978542883512400078953570027267661919681926474691904554568201741293952349733225305239008863846026009282744987803924294151339570162564502331071221396239729530016475372387419356699864674277147871502172594284177568069171678944013958428541426552771800038939155582435808815856030096417301905502263798818623304426991331170210548068583896546787662755134246237276522895429737522594784221585742194486866206776211257602139984299819157554777098431577818324431697288708598481386828955875631458594381389652941846128834794800296050501770321207925773667300666430028182766657163981231931536954917294021496625533608849203706098696160954287524746934582262646048859746270642913785214065956952551612951013666406874405269992563890556893593368061096618305602788642047896634516563840410338620256402178166481147977680533255179931060097630595000973701276680824953117852081572443827463323461048950317091599202934095274182914936269792137885409853721232568996339703628491929881742025686242023028554796926267654743461978644977878131799777019096176510860297253226068855688443815398056089516076002806901530168202034280566663234774286601549143405345187035113230083233932663482826851989669935415875226548270840149872322762575622095414530639016323875473153028613226341420698062390871792123224351879410887686814547681243037456688351615844931375357385200900553316547456113781322574903328558885419840611695630017567381707274310344671041125835857662991119609527998078566631882255790578914166248990864423675141623899870951005995884489273242829916543277699534712199982848248804805059080402722634862682170739233955431909301996625882340463880337517343622571534356735092514029839823629535664825025537752222082272286608726959267079953184277981505042564696022241348697803345589636596357792923741759035697087614190981810681674324827631167957073413568353181483505762084647437843571918497417984403281607911915657080944864031814104647628828831049603193855068229202957034236858820061904682810666972519778734866327612267095627559883629842856192025153546149734227183151620379498981228879000433963678936683224047136586800403890626056895967250101145982215008007411781553939053363187313600858111964271492243215004409930051751070793852500273065782330387630421039959104997798252280925174452884689707283939544828133052869989635738800573738294648961297947371399905869000472540050122518548094166838926740552452816395159871236483888255980844604479896238276836948237404012784665643444071744592073116143045744049426825859222433475799600123026211559016757949733202392729534816224579131851128830361345625309815634875958304906563535821216315158122663839626517587456684082059681376894715066112225358557646216296597787594513255261536726329242534792120811846469420028472981409604867783419417772788999148668943218890395785725076674398866014985304862089825592262427286888046855871602513684137067877032856528923370129125679649407001391193304349211878232923954633566523374015244146696856066007248778877650381290351907990137616204349170824913143219543452560863422813684797332746335988522325002558198413055710939947599373408525782353467622984667866243127505623503017851250277054222994935132714391451453549221486355191152919327705285326061682008974475504498228092709274932199013387830432069968417350012931457994234006039429577496368165445704380318271975054880018429458008206822057409225618577804955507050359218774009313545946860162760830860951048898294700038977880039398576628411820501026682974269180232554827674780219118101511252749238464401225471505494903263739265355807579265671089358530159834872597954493395848875583826039159373098384998177816295122370841312393971706263467092300358980183955352504147382677728018372760081153655901301500128907382287447793282260249256239431408692378104760476495366754603137875404926711520680261727697594365034681683845403439537042274029761956051591929880963164322776013787826534917879025193795200623011528888522528723569502368277245724948587009372560614844077818562502468932695559614100420297953978836447556100159882755334368984561510272678449130969168741215730095564251068818968294554824365857213939584651490620381195768931041653441616464707172857202941776262694974272375417884085265765725082086084852047132486201957584940942020313513144256543359887340957915640100871857149497083861663211660961708048585147406482533821230784295701348799838673695046798221919425757210792873408544445912186581039000490669051163319653321592609031855215846028727135149820207386192512539062046038219510629617472520342972781829086830301679971104121328092815822998551006441397035370611415202356216442035284209933352793194895153892288247449682731337042924995598079749137957585005189051178579015334644786583965504144498667229747415535561093250006823311854551343875358907774813909746323126249335819938339694986501633844919156945782427823487813016853569073712797210745717691740741499887815987641419071250879015031273356062995954529009203397307158543523928999804580162017584725542038948214257979338492636417344745552637703957029018955920934625291441283521506379593195553896420338385813655484614110984969167030525235858398152446445426657547580542506931210842096824549531814873192611926148275983933910387247202526647955478872633578316932305257459765532325495308051096450707781206982127194193885747344083383648831451674713262379323093458151500387575140182559501093869340438115994707850453267383257062779736811081065857995326844708766403515807586481775848105054191331989965307218730680116965735289452002844569230827324499156315340009216452712488984398578580305165347736333746909316292903761422600346443348866840423292543474680816266982810408900911004291130331869703555049532659923618788904814227743572896728291336318163117129514287319212342200130132658245810883919239217827620089112486903936472835227352347658442558613109539831774112026504607985032538138559148291822905300097611530944918440115047348338215773949949845213069068985387991392173137154706964395878253282688363396246365382176720868585693830902473766851321869367563554810383787391264663892777081884706998377740906842741073346630808337588072259430794020859830892094448025625895954476138869316857952229898920709345168519219654911082499317534855849388554425877285893397102991909419083035632405253367951372157225864089254839750988797062549869129479706323843672027205760342813448946260262512470471062940167053350598519757281429005235412743885534096784945986159615458739108859783032595164845971792858528972749386126377623454585345737449102924909997823728444969643782180761295023424254662176208052634309035174414574964717644226261145870137990522543417423794437050287336080226585163135815467929985039543795848805199698321474454533381738129381843715682736046041269609824099649601278413760843135138049229944115723354188173143652949695230520114295254140523127191252921849317692813454841958625596503399647307195464646327907035397884467912289586051283200626740449882862294260283891944179506125221015879262087698777435712049177341581651833325852908665197381866184051596370104772794323423614709540072430520242807013905331021534465722028599124095627925875233924927505647366359165762276831140187822985177308754451241676789624227227536428572611862837457124828820918982202515270299046924884116032223080585685882343367793605490101474468904477112752277871914202206288243938272496448220618974574253303853475769046289310211114682989500938716487808735287592141734132897439558895227081321298693764543351186458080953760007922644048076349511398555932893566750522881507260145205931387152960806709272980268756527705557671438979904382129234957344437870246675585784591697459673338962222966817018220803864729012038898284857805046738161768314043081609944634717037412699775858269681072495295674067619083006374949568828171487114580672878341567588527260127750222223433093863813122929251759843401040502846277539041589856873080194814282828533074212522075293603365369278364151794769329902829226271355684554079040777294707337336357347735461948062629804939978555875285615449523698389453326696292995175844508858292457472137263696493742094066580006293705997944605896820533437881356333000640020331932972626715488987521569211526627284444738539720719199106246492879989146797332334544991611587326756570665857678456917537635718805789179052135189325228249300406103132564280928727118310350437414086941071924854740253973928898188998643275814499502187404436707715620161901080316417205594350750945781288350402004740022722042034155583768546206131252654388418546105539322333754413557379622769481890225401247555974129434046195896626430018036388643023386710825354423338630670733641904089908708938111195869788075081936657814960677758218793729674961485596273819731122244872891880342439599340574315119624958549875094723704620790297198575390665184804687734999733216729574149791126024935285757678739487448548125519626930686047118560702509522141336086289189263120707911821111054569783023610315047609315990580142633146576813409261348725858217808139462259039248999803740239299449889143399011938169727417396479026269094120594288925530190582243124798854070950591066782758545347825991142914692375159478711363222081043995966669816744651162446565418861760693535759623664821406283320627217225773349686989229562288228751136871808786123498317417376543224907058251101854048893844514681394845678941871031316854202016742777252014153380988582936266219670097578370353006044909639224461804121103441905391342521522346628337518173381939419766572177757734759710734972741139773360256843429898406164636120864249143978877599667840727447878087698742560150693428873109965727671843295346160850972246119953612673877425948311902719105096648225631161791549238694214629080515930085501224332239229564902729318716725145010468990336309840901951849377218063422617521985233144084240828452904738671409371753652034008944577751350460378541016379054626615184557684079009482649343606591838777311945475085409724466690707874043763480973653580710196342440153186780482819410457459737710532078825087449258643259121145977894049993254136631585082945909042512334241148854593275996226117011946017639252944438854197916555234935080919957298385658084130077335399443646288207524071364531376071557204132159603828417107460985641030599237463357069069510277290165035022703688106098549867984864421690328539347935593909982011009855054122897153878029921837693442471546255916785390690508878347787709075811104258769459817017839688025040569198950075189868259500776208722840166688836529921552555670716893371404133320014849948659077027268659317794017023345522807846143611208827539831472063482304582519117213941440376667228793634941959099311322060678292721951397483082167236698845307608427295454998989607342196696212928027608629033406167907742966212439683898775348836437608049932944505376219719131078622282537238250425348037597848728373982295932431603654623680170051012507089713487061690709489501262256660509902230668991998307045058213101080882576386946426758366166610596585998567745861779581773642399743824105252992208843781373831567516608061957234291451692539760286995916889916424139730559898005512302751296523307861069515593055038227597046587210387477959167795349685846642747988834976566642129104183051942539641931027559376871859156066487673189649186502456045358452547226001254497238788714353274135819111751822505095869843739601816945004978995309970466739194147085171127200193000423815349408558306095007403078429596113122455201194647351724748992457629455504755683907285858195708804761527896451606828888480383649170964976955453784042280980165709564670021687724161178701929965257141984180942272705401993711598607786474752549553805963918526288025620682692052914065721714184726040283195407831660291715428451296961443906487999403903336426936568142407280571722365470352929297005369298552530530786228576190283928405014670013266589445242857064297819811589924310050043462329386545819485988572908354260875914989131991989885980098230054482157586907414409986357340416550831596690019296343569090185389262608599356207093485091706663737381350292984307805914904535802743219174988964071725230336970836626618101287825062918239285047788216479392247821876871462798467348593774265215085326516641089203833759093039968350263616410923679797260650154909505993942820698324726157539104851398827061739186698883250434054501273543956643191499477583804869242548189972385007786784799340912850708555000801150211191479400046220835082408876449347300841915480233214588798366202497259534589005264015255591963868726248511030361195098605307617316595672197571959659045056228193262266520233065110933152882578064952200533920384115754641370484185217742573456222673209424106369832012288194525524879496443039362930199456727952904965805663506562938894809867942475841169615060416765210930698906342005016746904307332078129189604387761272811625488652078472974543406688329693739727996369676066746326734211887777334381431054851551490262212053652658844880732484552891165080569965398812211539988599364780626186946537115779342540138646835093032919006602421936856357241011194170038588371657601625319749164176208270054757776771077595056444711930803579982087537313085913120136188339919399572923712997108903540218346096910893495228282475090704186883615185580079695144962251416657709812117172206459303742942938532563258442538491949686776705480520333479064495005837909612147930643904504801097522291232779193881624512005518604396933441465890716468131037500606266172783462284262497847505581621896223558823830360352133910909116519243009737644156477946913845019521317668726371870111716300196362698591023139358564973296600502159931209964490811435664010883351554628421929814596632019716779065196121010357157708209495065117835693347864894727703073784487990973244757662437401299610597654459822368934700374892447068116308078172741435893147002779073928610651492920876379761006924984978886261997671701800592637403269054117130064232029676581332763359025950624095915270984260193331359918262501513377277257025290399815491908257464990222470292557221241143209095491878732499418024460544736413527208491050654522970438846940150090906779178531125042127201213502221527396106767850050109537009302355088036284097690418924435789842486264903540123915554581027526432038267292856972865519119996300346594747617750549614355821951569342739753057248101782208535676392712386161002486648346909774403529013859476022999271029380257447526443687463518935291676083588834380353600144180265458614284040624718660099061452845454649102214288517518743657339473691714346363048295550661316241553460683749173533194568050661085417212639151269789827939973939377638367125894840074243882811178880774852146925878977434138700791849482699730732903453970480758365070657379611167227960838928010213677730838695331420569317550996408897924626142615339109483316563750883234164146495234094654308930172741445274861465432424237549539208538059497437193512533451992183065651544209606664275227993756939827643093170038245224840538909150468235800376414667383424646722300350004764120529949131994418681854862308401796304516256030131494153951378832109163823834136254840956890046937709938480265206336933319964544252858308154734055549635564743631333181807253104849185199831605645423212721595218423143986025595289152034608275761970699055396236478351894281044586694231043779371370835094725763177478664039006300311025526346831117501193638367715419658459598544345673094577848071874517547722401461117754790934221938415566466986442714725255977989728293148364082579965405290715297421241197208084555191711799177338890082757757447548234958169451250034595067209113163877170975283699685507319736476524854746514680937133254384889235923599379625040095205088036971315404238425627650800005129648696700676459332606559877545274856629386398662200204239501801869615489972065030650157712553959297515369933146872255672025442923190198055479699842162276712597458237060828236017274298242749451454070435847864537724870994522939009168126839854592144479368731085976985694765341031727399588728491133560972065755807606155513459925022132298733606850574833845780517460928309639330795658249276589830252066792214962888029115934129337279606724147898120644168575738682404338571682089928306116071736195051598115245971813267075199057427926748148150348069829140981988389120784635746056108587741462808488166001703320008350170411457758195406948809500420930110706589508909091819444146705262155717815244312098109719501485340901205667072363502320160968076553019854596136981554564010947352386563551806988109534449625823203698211122830703663290995370462813247421142455179276361553838770952511115649387251094930284165279897471236800340383212313671275274980582671439218137309424528920951165829358317004657969144356152915232545783210879992765870672678086829584648963894787470450565723205784130719143567085058498001213159813051872507791730447565398935273183966273269460449529847141714475331985901179039226651292811135893726394496748426799364865242238679058228646639142418876954510991258344811634141520327288648919478435726610491787357574152495484339345950790394049517430057478091444404843629079175727191501681762576670147683084743412903380506859214169203576083051977196511982557899725440065025497003177760010265803815442038446537477445502811557742341928643880976785374618974724160723830544722178319561808302728318800457545386155267104693073076944220077675130710061974586411976519564254060839517440277752815137369532419389335212037396474511550856522633689704812394062318405598706830621920850149344341669456100236744309988032228417937189310652951719498831880088867054736351320390943320837874252421986683228933399008393646765379260455179781206952606340638429573048400462981594572679615629743044866299109725681075654389699418189438077511878094188590219690047392191651451389371567868955053925428354841479962021015713792172171543489744459081281265801332906018271154366256355694784644597162050052171917449865359804370374089738405472918346546039267365268602782528423666802455778421451187240316212633437672242214643720469365350631106494215840121583363662379677342428465225147723544723615612919838494980849380047038038845531666085180084663550992205096438438202438282466311800245139513665111346544467916231957002741876994903385189951747176751540816009445363624102216000394062016449391498069469714905996622495584207085421735261180654569341540058297031839448976077099591695590874969113315904949842976813567650207057769800458701539512087988329519499296738502694109239105718248740562710893580431915104937107359190063095541180717769114987299608917256673021289879646725705108252110066658303006259179052432918165271167698404706840996719872757591188091228202166486660352267079615045549907354783156949759351136096381514203353268532854287982347216487744246457031718319147921850803512820202583057395331425124354525434151021107931303676761242441063108370289961202601312090099445642535687487147655681241016491408173047191930235422373980314048790319784513429491516417319294076274560916940144403688205279628914612671952162091630036348316985711250853380351355949292824757981585229815819486719080339853862912169899855201235917318148399452443512184747171772328668450186185986034431744146977245433882805945993263234263642990706491640028682564044470958645638157700349387667971580228752674893701287190176111191966336262824825817048853423256088611621157169969290924804741524312760453969142261251202945311753534935969552135389575559130290209517866356853523374768030551872866420657214635430061283214389043404978345103743966905690963669713980827263013970598834765316556758743296506234453297065844454988738229945634341556498491953142886111231556238669083955184985851102880478724523920091636682801471473641757287801365420531219508139394528745827597452526148712781617236088953852458024846569553857441366783981011069547094112149659827507539776845863836428229572412398791555586589156590151711498619233253015920388127788910261695812291038844384424070667730324596572762834620509327118096332174496639345942448119756647205626818781592890027706115824968951996107635930524683944560407145950535527168786360434119958664594538650435011458444244527132473360946910723943064581338250096119422938929279722079859766762025958692108335872362029793805518716637278797266215900090718644058221623393926448692619717305679072408068207709391541401398902975722070193582274189631467980415616952313458388092136094359559926657158710651017744748374325155114381394908834818661629328646550096047036569482178890936621114034382572220271093416305933120083737668378756039727867518793258516396178885793557587951955841710650235736798924585027925167453136803000652043946535909354232482805041281481448611535654137085931511784508685019272364902267450904555870237969370080847223642097333336613632754238189904086567185877253403226276581778964193144961801676461120837002025807529000192397800434162174101188140529382353159490608624441703063652752428654129923269328935248506643149906732069738993434946963493847150457996251803555356424249423435396118137064034246824291375920910656067278313197447671353056347418045647058244728426666467804869977512263697021638006511892394908958083198809951033279500815056929166047955025644271427976715096354928144333814363890581666909694578597150451029624091947448414273894858614539971560040036955718230972265383824898624891796721569915131588036647977623079013544237868368113545913792117100383507878216361341282707823827706276569488521651525193382806080205901788248245906414203548132174776559507077328034918168051998800053063558762848676576887236017355863833762116629698712000616751494290029391496726249383876399398239142209807540292416907385233238904802290314833605544174026547636832631747649644252946456188283898564203551423122292044005855051815196465919777402389631904427216109944207352357764587786834802736677970458226068871627720706840342909890765174984595735562369940296822591540340972452194058859932639517474471896283842251284512558475364701611998650869757337122466881845835938638731605227858141997578222915939349649317836299699646789463678281010510599022601842281012131756037490830603197318909155582758257083976078199824149880269495464571069908457641617207051084569819380605028895269924565702887182970082956865573118908443243121141616908657448974416867153430998390421307738688461989261197657504268694331000250925720110189396767618831289888912044958501794663854078026984685367509250872382225632124044080380270533718852175514869904473695581140591113580237825921861396840999231934012976211295679726699065354583199990467757160543804563613657608750837259668752275957129749743892893460738466671604813958652593562195546758194608118999158028423069578073741424034924309497237628495907996578501864955832891511980539572438972753299944663695820367117063788175589697860689831937136611588766855427062465244414730913356339025098157338869413228379366863116410083448160641388449266258543025573701175815249124688376974179421768929294967799434404659690944356859557009001183437462693867007948623814318551539424112117543671737319300843938984255741660426786866243312842314400790028911444878115153221594377945484660806655211185996172461817254543094418151833681416807657597019847564621025539969917230852839202730342011723418071756098266678897430601835730337853918260250851803786195634095094886191718926194366457679361626050233980546894082507050370179135300949813918429620152599878121463808374228604176986306581164191724682598952835862248819089868264985499577989269326843542199406387175575020316684305542668175373465641592181545035839954923750639547121954988091384539216900367817379582813832553924713332032651450575746590816949102506860061604098091837896365287769683680782544478404865670640572015944245282759027726252348479134487648629912878360363104476516916359410008530618791859533516205847366022893656983121673208454583769237902639808335429456620595816045118111036292621940771711452920897009845427230421636092841171937691795703608510500746696407890640536945354197812161457483313187782838338866404935746487819713595206708805482887738319365559755353926170421840075588561609343657987814242736412408909002940767866171901081495374005109864707166162507282939810072255315078125516097434725119525309011924603553700229160192577398314293672901800822528755494350962532154445325745174879314670428080114211397017964668401013464469070705375425231830037802742120538400907323026722849127058622036130553640957693930369341475192281861591421881417894041858180617471286376358264157396735991824555310306481979212598874712244839601933763605844181798901595657430441530328275649885254724492080842603581990855254705550786704034086834814303970838938362714602040988966583974994304834051036641039853296408568487388491972656919636042400434052607260425948656198771919621168529077695341993586006593836215880260319237305617686755678582771183930632136097412167790125730470154759045079489130455510477041724210663947972202721317524059844418141935865736308738874945216371438742917822524453882128121033979835603199878910604522626327060342635644964965670963446590007388685573966175259224671723951035127636135340609400139051715263003395866906692753993969464999885307007244576216334841280833562199687329818520871227088665819017352653473759523323609952333537875253689977645933062166945364482946785474873359616173816360861593645856259699772965915585565672961743656668066879210281491894502621484900449094295341673694340306242071762728351818927689298924652137763177624404022445018589147661229713704359594991165401757174687187002847707152879079262717902670521098247163663140600776887690685744730423821017800463430620986953409439511008277841667422411236180992783838106066483826267411074847063934807043699972029512853824474814613661572805110757772379350612397805987986583967215511035274255519419113380420164119900398973419489124632250462354196427023465495961127168576089082604808662435328074763363586231106152818999889451143131954723978708249356160570444097767490464354692214834587650964197749064656503009937597669666025414947110135632351040487317346238145104519147561986861785228095213647112545242396146834447247970886661743103193468264153757264822093261017131596304346652476760635641504721781516629899065765714392113603525257908186132575395839414523611579253806904271505304665938384538954982113485786165170830660882576215324826996478147432368555786531810862537000693306382166481547803879465040666312304774705620322485889150968010947823219967824515372471239673343225571019330595013528877323031295930177173393321719890157983340414718153595155851355984610713069544192097965414907077622656693604680042068091624302504283532356338535428323770365397784685405996418263403531422502101975836996768766086730428004144412658600562644211229166875168184857987050326201633012207857249956285395388821529079392718858247301182684650299669075202225962431871947986673946174944883026529529680780736172091863979052097512017187445086942662260214089528301725743356485472522526154391530347323727445474214319876038490863663218376484511219446895081647864320418985085629692203593891165689143810863220150163053456020772204582917497368883140382459369360709916210220670863628676419258938778195033783406217414132180318792130937912554666019133597337971936642992164732886165369269764601958168856073256159972634782089001125810433212442803352875573624986827304842292921322966501422035093831857700217838974134238496674527146081351899097197926581192551855086689112068025230960577246481726863201917153226028474474657565028830320665715737236432269265646005004991595820115444335415346368064477194974931153785171248011676296600832394224493881092922034563996301016209851716777493182997710089475172371721884284932351580584617277159219220296333337470582889169340281570708144929959764368115056323617375670498214190797457033424102121860073688896797807480793965210587325699045007621898498912320206673875773199839571138657231480459681329358452319029918708676314796566445886156923088900721088307806337002237512855416936808310566147378650716854652071617005338532639268254415985327610841482763681460907352561312601887373857914202181956677042688609187449380046970276790452479704587785421258766464198572348068267475783311506887190202818738729471995221225888120768746960288715243930220639600621981335424144447508210869911566299964189248176648435774147485949397509687189600036462325642961506845986311481080844520610965304746538584413640216916743104834858218734280977738035356116922746838389454255786243200317150261949923480490126609753575905106373482924171220580120932982100083558598966987458789387729937675383827137956453230083067119940404780579452956819445889808008954122559305377670775785646010035784236017431946253913700271759937180836079510985176284851282876986733903487135615317498142128940392149810495880968642845210026580271624394491754650547973210992228008078289966253710472435070576419559278837381836219454373372048989287148742504369067231265417304006682343274966000127296718341490554324664104718534589615094634240004760567002709824344283526877622339848223109224417774518551380681042736032054784706963452121046413486368398332914968021620655487226581775406505315859774837844631713958175120563083899962166893072431185818579896218837228033229853999185870315076711331872484927906522572379906998616730777422147579057439099501178495612971743846724862747417976638161817421748160878062105179494022059643015587472495633271249567380866126363079976345776596723376706130096009572975853320405197190495154441414255934552967686661485135423038189317081011724712055318043612010657572830685863068127463285410510295725651408158620474036613428230504253218170293132246973233669612078052300688626878728235720239109319429242299255647484815152631342752162471575690934758041170178622908255227529914509480635816909154054451889113679337078049949102525139860897435680286213841821976172304852947499613014732106500672473504988358231007111780471426682696597929453780813630708593517942907944609777475409541289609083995598614096108488692175423476931800374709468226706938075697710612620169954854062591786197654179053413076525962069737761372647205364129829003248851999740227106705415000545970202917162943446579580581207037114553898469932721432210762790908696796201047555947208217205128530324557394277433720812744916469094689879198597590787054109296767192831955480214263093594562580993749072958340638179573258481661205249390041636000415780279689014036470103406602104633047872503987671709685547338607374176390069692593468925784066855833572372011510434548312551526426827010750435415181222149634187278658185119682392807388721582234732832138375136728069784111433654555332380471219109080832128296527092964929670134311657472101863223083075638616524902552103008143750066270040510802432049239795904154239220891401882186852228596875368324280635273532658554472164863351083614378378691209106766409538554107222305983155760857140073092996974777429892817341878902525963439627374033156581439501339763844485194410453176720117063400843640350064604565596623764305374462990760677548519104458704686617303775671138139659089108542517204229438233296317458248457246720268358365653210934282982945275629368709868514803817528852344416302635701067578790956110237765611156342161601500347205238503426530975022074211850488586404776323767931085791547694537049782425673462781941879831775491758866342044689062076408526355049501590496702113032974893614495376119533980512699802038258123893905277279364956342713147012092788336391267099089862155486652136260025483800118288551858129954560304857922411912461288409870463107128788349298048254661464185275287434107735373819872254892838459553437696536947770018799741249912832188856306710042031072697962594233325717744827752247254152682721460167126202791228987210689561854884938395559310876618320130747929831277690329723801053687521993612127768755271597986565516384029147667984226822966885304601518178957759541266957109541133173382154177769642698448858189089719633315491946797368200176379289161351804995061968487201041490587771696975361941049242752843608212952372115822288354004102041865316232185777984386835735849907999160320022047217179922441759472182712230732071818731701272003533869998374065448987555623417011022919347920707181611488393310017146913133049473585659960393295536830041210840219103152345989324719266824697670883091209879406718461908174992280468172967935505426396276812274236710987831097854582183187025723448998200257374795284820386591607491775714850391280154654564768593108486110084420013691696852196291925519254896023013923325940024629905995159231582990655043397397806973560099525896229887151669078663102393693520596750671752821474660200246959679555459211518639958109453638748573998365540109711530566524636085238426788677582866513194486374068446994055845671484892156411693265090866031300052742861004140950656215595949826416520844977998141473047431799388741911493622242371136279209037108935423997799995692222647116385570891795714846245077196203555322899150527233197585947447992230216533139139274173477858269626136724812802533191794252069517476355598388777604170030473251486132866351773711192604903057226336791630761210814512492951480011695921890684537722838148962409940776595404814127236996320527020296971767657171513699770976618927094160446618446056761446201008715688611588286561199998829576691912421789722612122293447763560234894660133177808032605221565061473196908131462741793459345452470701959417855260628829240304731963906491788287544332665008319725443718586716640529306631821945176042878751001016465143437315603352455370851409027403098026820417931001528872779394355941697100664171421698157004200216512297071827229722051663170219656576051794327505165190750429431648021463301539562522846159127010149327770446433508807697957862346249709401411856729482436218136461793812153362047367382393644438173817629917254634458110987346882816564445466790244632655276492307205262154630410310483775494194507056787665942188718421691229183506767923835461265299256555098282088349245279169576964235986928215362028619762587122946034417770068810454117945342394415007940354379801790258555509964046903690459050845017522602396201079503260336693106500459789217845679157895367881761996054615030735081279758419242957418127459137633179018350069406610931156098498248525503814501240195211203697940346876552121108519619245886761693847888175276045390493743973915190267165852147202973570254696478694786908538144231970452266080728946263630963199669340836877336803190046011151682634954464320261671722612305541574027096356269931094726963023483652914007215376273928798570552964033591597786966691268254358312932620917133753230201739834971905749139139568843607640435348027210011950548142543145251319973600099575504848571510543188878417996075422365451115849927072537333272401255849159171350611275321612872324871205416308075733584007861733003927067538713931128763223174591046205196883417008755024145711391328949052932975973727256572893659694303097937670733267047887646498746935629051730281950315444326812383107880322797768417887639594523720053990447875015510776583875801054246609153029050352797485911130468623632768569041310275395402194909536548267375007986034490622732617250989045454285281210083683736951516899314124578187709379672225334969318913513197630066388973879406474784742805683487501346112914709908511916312459678595998741925174810573241868481777186845206466377667813056893318757001302409153401251288306928397381649843381426123343727643895405355995128412483254402945064186645854453541400427123413381467833625486279070459068117390945245908629299138319589341350615654805969041624050320171689794918809858669317314171390589988692904958883074849233475509406974711268454195761815790719308659927026762834975504769109748442257306984892560827265610847392207758751027838936035854152230871878318386507795432673822652335132219450415600265606000886070093233364163932278857727848628193037542548251550290785350222691769183089551932096789471162307163695491557114702444795005540857635453038525804732850761504058640035812611712005818975062606745879954464244140235985369421771810961021480271583855831554311757962180109475241887241876958666809313706051349037126219885139420281499573522193137455440117002649120750155499895872815443755155402214703492821370605022382965612337836365190860247382722587346834059427990014907833373973689303985818303087830000341337701579930105827609802402671598134472397157057008095321255262657825532855988566368631415693099257629441467847242196950714625066433520948728894754894987236099342341981827453518129616511135398280718479906984057787510148250350362872480375749452617850285411002237390832879946915261332460611843816987847035422706764987988631610143828627984019280717707571903275002347513775567949510986272333251985422431922889546304986519506232868900797515108522215110791042635104748922129043175575716206193471176359420602191498368591900914815595130342885104733507738023975994343698769267804669493696587098761125674588304246375316961039590633529223628995835954067887887098120583689069111702925997035486088802161733377993694821826420442309199356791204814471728163513282697384207711582029361393378580411814565526850803747554591392175877297213089494835868048166920633794065995791372116913075521996777437836346406322319813514418197955501558302518573083789023888332077847123536743151918183844947257410741308872276865246224670241296240711281005394394434454174596487911918051278342587675566601144992095496918670482237259588118244675287037680061486739247613399008194469843683353270584564377175085972015597341940865944732788375600638656095147655722402573525252683136097123694009760323587900705978052119835006894040951903628326925220676824458071056852154585136141430542659954236588453745454156174025454642210059094376779525556605751322817511905235899108437009245191942094053215243345810181028048691219132461822641505518408101153265026493578903982780993913910408911956915253385050209842703667337180223296337802729961169057601399457389593486165781556830859399698253733447946424471664140656026574752545701045767881713146349911080827315275480486114840878039515040694396481176437458550454526676149229120520035658180673297741217906326979642860110141872299418719829347724678399245427004105872016783931038898415772950800505524273580853831792004986458111796690676058381583246906732657728690760550444100101596909910218116599921937584198809960089276984448593288671100157008023861936114061308351725904379278362397696276249993559427147178985411493965776650657499102632013076718334388183779168806441464023109195494557755271376375396353848178717037859660964597498437020946427946445433417512731402261632430642188638961210790151403476944132287771088943856744622036489059189172125866546816479743809962662522736533607310949486368178233350531575836429380014258979680349153838937540112626369021103123805871468568865535967305083481880282068654783733871612102562751729013680114320991010530151231066364395488257552995641072452099110526862404920750753429634239521534154548877942309685401658976283013220608049103384817498545961478877746821992130059390525463219052065404623803336726473115905418379695607477790614916944471658503716457622108977349894102777891448398868501623390512271558292544518076245903528469810560159945751187234920017878659831859630904706521333608830983570054391833055614680781941194469818599705105534862336250567153269030746425141066271882660933504381472721583311971708729576484171048207033623626920631866470268501353174875867701759591807491542506221931716081028436553922746524233556173444940167328146311960045482320728042249512773822618207605130436399240319025472273767991713877582813845410154155992309721315609304465578670655066566110786288793752993866759691239434365588192153993047554279651248421069197464234821554210902070282009845032387244941729232482381729440373383105256245734651795143815768232401575817746197008442549621553897483183851379541910865897269517124243737211037097044755711985433464381561534264700341782954604557385227546184931549618230209788927121522859211986113299503524139703836355191025290008142345344262644719376138077991426296457277024872990513464860222481777906031257596052011512707658737236683353975601648515758667563289693615956003369619127118418131935980366713270533177116982086221369188930342235405623916324457149581370575302335245090814558453808067224243052177303161004508146874757497044332981640363999109841475284655924922482235965551122258373589345018815392116347088351208900806619406089318186478784748438059404879453115763676519605040296191193189500497082387896527447116839782248950891382017603205515321664229652968107438930102212129882743945910400854593313112308507012748617007666698102967780739581169438509250687348765035849718859929620437050829957726985235805841791651329291277693007709645509452970361405710957461467861504387238178657205619850253385575722923260739768980681053152531728619765836254201995877374407372406550611391135847343597978513679983909980387397503782728859667651393718533626630076058985797056594328154739579673598839311584229221920877893801706684549566738475768858079717165549383156507549272721380793052990504056967158887993452130473952725850394092245870361697762550429002242342748795759942835304020182942363745103839984100720825234143067582907735685308090704549550566140007430279033850124978288261143797165568430974506863065194884643613533670169956465298440555761071876242540085858526252684006686171873326367545418617481987520943350409496001859128045645262418771725583512887806471656396508015135118232791926350178628942672783097447711777514406886758574028026720461216045048621424715926195980729400991835446624596882688384310960445204267627820910298776886380142484027130281768097412637577348861739306689366851456013472241882652509025389928288764606701041268388813360849133687895627313587135728508067691040524720371599516410866807609952877434217894426718752205389420049122395153839357270661983143947987604726061838466695081938515244922907441719159023792472118883913223013785761325196481160037942950253150233976693593061439326996610865657600951114138487648943489131503719607907229387719793160326129002463498604471817029598504893239533625501430967874797540824337665527987872057480329543561428930078595581325750417419730427327304653819383785022066332932856087237888506257477633889879129573140870426487843736388741287480037578237458670974849728037737370522922761058526918867438996980990391275592799135452244461447316105198825749315339938448961630090365786649857170899357951436480757788830208684714681628429834648978946274080729701636365891617878157532158227514089825731115401783949453719558378731865049861030896162869900309206972775544862106635934622211365749746169014444972827414482771663132236974269709155029008485514759188014452761363992363646527260568160558768134455466022202063900091284784399056527510147372308058608478668294302881520968104223326863102864626427587949296605142307282406027216605599263557090309075483045929772131167421796669435369590791963599044538488835423361936210542387521283147753137691266854609332329223395977981496747898752407664971921145461498694416350605046305828350985831649866460957757148369131704207515403900075388946732140071255849018904186669748327014388101541383617140691335257294535193776606904140366353407487139094056536861150075179749302196024167267825267108195072223941904448647047035053082572897927633088499005383943423001397743585223725716383252948509327637264398070976944070127812718053268735567216497392377149378145941624583115734956209292040617647922725224340379986671061834698803769716235646110911047899668425415763062401302795246826977646669097834705909743065442149780308318904383565566077008594130074835559280225520051149161727713939733734597096758433507469393440262046137429340918925773154755917632418630303725559691243483232259099497129499327428356055733263778918542720561399208779945027390863581038999652445836187128087812840043223926371883810556230325279701789509533853527453171547365910638397282740171837295301674422095709668930394231853291898212617383099681327847776863431481873661052099883074563424543238821064839817989933540588617209208917849751716077581032435054384228168536461756058868176199983899426153286471493620786257491524276490193993001665577815915279447915143644986697716758687600916182744544397055484793418623584726455318733483001656050650597497394835930693060531442090668513302232600518485767882253460468423430888832293910871343610559204464876254689925604414156433822299404154416250552669088668634824346920034710550845841747318774904476312910735884892069578266787956456568999134230506372431441640846185948794045394318551157462496614898385923453107348457113614164468250122220753241827977440235811351360017709202177896540505026514217842393128205232577272918432822753169296881782916770890003377082893117227153586801937376560648245946145892677955216778685070895172555878062468052176413772109699112416276144038419807760623822350557521433302428996540529553460563098387637422638718898659989078093698370178387018667717973170577742946720038269460811312540386760210562010549999589128828359385168998635284352818409807487545525865412772159085394181909896771458073882831141353132012638534490597736137383016630389253619127704968294775273311410334116040189021382964110220729760530071628729071988907810906532480893060627400827118083988401071286217850483685483879267861561616237192887554499107640243264965393906512523163255797810154619779076036130323999364406287043641814915089583318242183224177714759857057561288573926231488539975827664090020064025798674835615675728981188194711490402586504138200244089566691419658857522197030050109239194280942027619299273974580885394234921682771364702620736062068897508149637887591204035099991379412535872542686731032586224744488983006621138362716386097941700358493275085104673221046526682084440456494544000685937143399212859320272494449034563980549230136371874100904972326583217637112797432074626255003421441362699402526976408188900993466807897637143505536407193267557086819575060241384370260396308840011825821173790826330571907457671683486966290631517244592992125328477024345859356442662987295045470257310202174569148881351073011602634756488672059141693568784444102959925111620820600010658947994754407444589091448556710338174167639727890863001109440469052249617110008763396551824152233479858592910671330869934220894076401217933518114262210877093572369604650399008482471723623274697559868704175934322519546126424334224723854294502638197090030582002033133056228449248170940746187474768090347187220538076883883256910956015633905379464641275305996458651452234339356649392604479484267118073091190329524060417816244389752250414997705170518439351688289247727356752738219425857059379816617126020946683499634628858819987533994949030166119507066431425635848031720849035727721163763359423502126282967244625282663956581008507658042479557974171318082576515737100359996089978134053992432218879481025860383397534163138150780372590529276042222925653085500672533178236811278417210718364736713057468597463008604183209185569573217338519088839778267015131409549061179324417830325886773681715198728538927216269923137501858529817039683395471246781042086322086744392706230590368027687149471373634077179502006733376271444515893200384408849023366546449729127513817163287002378381546550176564959213813899536146502368161891643861993948081772568101517937756279244010873410418845852383097096063767052920354712931237456683852562124710398256778193634023536747355627755947624679011263823260048413013125976154686260874108228069010098485082675297788331037302739127274866586870244173037030138409498512705806507321513148615410787385415410649629782581224375020000425570693571743071203866754690623673795270292396410702496208205519403884388124690926297576379340622902461753654720689593952059402249379807222978068211568907104813391774807447237814859725195854031524743824302275972007629742561674522003187642144539026686001537864449367669618781505677060792485438143118381230758106025379218647482448320753509567032127459804699373580712839992693512995143337528942369628584638075219514142676619367586052766949610105018230534208495305051584728713797392013993944581558569499307179093646553927340018670193370920749587658555817740215241521009861017326116115199971982322947470521044106832040441729551989518009122271125480557336534825847814812856383669398643920047695977788085645839851561542355946437641555929196329312082974469966938352721175349157069636948492737578018539984976068372013066554809012418689756737811234399548884082857839919554511315739044381965005508678681117229233474246901783063224908831371211760948296545360183628608427034467909374060873929209050571569522418079492946419906873189608696064770963176260444647578195095397329730756409025793923059173895728540925365699414257759080038533190851685994350947068566008973177758777483038716694310048949026005715554749131306067237911201566477872496302364446000269673674442647660671757649946698308592345803477740915141198770938246127675278547900412694570265822772250364109415116715650540106264639932250126730430620782816514600824956799653312469814549609542969420895636754914011402454310988150408983006754758605815428109067051094970964270206611323959164081662723126627093863787226092748027976615087960821076657435184044790549843964639259254605244724285113975039099573540951611997553121506369498397788958185398239689798203214747534783920597265582518647877422015656647630638792147436175845174040685941242759390067678732662980100188175270789266247986449401457227341750651443350256699158044736174407221923631544972496375901020606734305592695371484019666328908659567263681947168020335363443383798276378433302328080361549882493366864474214687126661067876079322479514830415697756968857609113667687408999201724645676487257219826374893662454530730371265725810298570740109424442450160888943873579588570042304580160634106271693285682508425692793178711375964344673963030792581759152630168845583140766231679643706247211375589099261414965094498383730559254852122278568528329157465427999959608386796000464871364278576866261956010194273520570879310503051750555631554127202104402250055883254639655205080448686838122936962392965247540888986460208054288879732731965720689134761767037079690553795963893940148362529233640899771139411853798745904689396270584367555219178400807931001504056547577399669956068913495469850996243481442703709881644049645244279597424986785834687571840494322623059303261368651558865859857933771449567677057274211115493623347901766273307978917966053437093959853174415329239025858363172518517616615262244665087468492669190559998843917016474414382004929123333747019441268923222172005196106259097901672709540359906036542852643535507339152942017955063387519247379683919406551013741804946286049223904067255152731154813749258041053273397131920354191110005654154893317922698958922091963341387212159469979191755507757755160261354795605668495104937472936786540823311567218424256300607629270005236141010933116016692887840603722848963752443848234373742425648974832437799288454842213703055605500723928289201626494662809999392218673881515070795653735933805709459247072031095787376190885197318781204793641527402896854746771211248833813103732505083768067342490233560651726447024029493578508722410420742223976093015661539402655800321361098823944041342785338177215767907277271314246006842092609883609997079964920434868258587075187153595713712531548958452720739521770857237610628570650360091281472732291668773502431920394577800585190855684809143967255675179615817355589720836693784430312122908916523619145947038467099159041915313622392512064989381021957071249227463782161718606815591191370775002109449023529998526173895317504265882842973536147992852461906793762139998179016240512986610271617579338515997985632944808178085871248175369220783984855761766677804316728105293544291389370078646216753229784258777886907002178214416997291487917572801908099863378500994032916751007475701475955655818318934710051703458709158027035972024877929392452715900645671062305403894109391940049382462992233722307051626817911465837391219671353926468974597193532158866585878568718202502831983971669226420623596905115527019851984518978224030377064456089031484789138999495139952808120889102013123885650374782749845841245798349663806916098570106141829993467405960395966280280804233568991935756504356553758661167475019410839499053268087744945790082758466449730987559917013016033593144564129611186228529383323625444000550908720742041045608233986225339384526395522388655857775169917909652962070348405556546077877710544736740465385301771882795387221518253838078945649390596811900054769459711481467371745662242428910822023575712850448325297680791685115173769418642182922656079011577654963600189158325063679527500347170475658125412453840313090555975178882075146545421258716693696128152907005782647033224676538831024714296416132550833787439911482690601944669207313529459050576465804567635383744892540520423418922669135875799063481718948561374942015723419726278637957671030398975037738770217497264941739444669318571714850137865719737198237015935064953729214046442001034967993982615127415391107215179717932397940802725507803617522417018753941398992634404513073872568338065147244498093560806452066032589192308238187937882549937212016012878852075311250876894759579068859718656624308988399293205045600468320920473874246644567987047142776567501324583057015879009215294300480104476733207642617451445104243292417725939729831917360311576349942415360814174248672312555572635431076509292124699542480530036115619062335735764992771994479721463901728871659234458243305226870542621608777264399517365757747905676039717860505362750168839187314738919874788542572975997672248136396331988105983869039171389342431559675536915613144794970115886712147049442526092799847405185069940339208302622059347922286023963385990176938903471627946542429172348184233458026917520616256413907990262584516620091136450286886725575816933573326266442793377256160168000258745181935260382712852913867842612421362914999700575950902175092758342953687781022670453422979213787830027553370611197339230132230346129384986198907606434711132878122319559785755600671038434945511095327420861581602482322172268491061536333957411301337298166653230481128481173280435314419247694017342645390790119956958836246517114060661634458308515109479959089182041973946473383337323497217418419300749473681577000397404511460070638745761276126039588049527554076624767027583176050709788291995231325864411048560612276844251436443422141701739621352570661918619929041995490131734043465152410808206687047141044318831376064586179835826241291154200296259166003357619983957795465586964266376449196216039572932203303081931282995712378010303952347385446907392252477426330812510594515187961093151607586671423402485693182505484441417097541049491527288895065852793700913252797428895912504833163473131463170243485249745766975867956003016461323647879700276075428749238631874615764252158172882427702647821470028287018741277654930461691147387346648814534373111508737825225093817541766117706385841784713329022944157949094779670602793176750475149747954311458029100622321265795447402243949326049431844071705399318655694829036089090169979012405446194755545938211086105646183586730644114925664791525662749078676365351016130737258258711175879975173682701240766917898521594529161368117528029148131237124212611790860143265769911660726127264342451972420543622561758842034868537351780739123065072206944680731893372567405671792270012723271796551984462024398588854662296889861740901730208399498913026261747922709764854906332693498931043647138953930152158218044214421030484836584168874391957012824115280596505869274756619640556637275464085544328146547831853858527185999584656094366587114577621256971377884937451318605882183477151528096682891689566470787000465446678094817964999939243310605869421805489422122676622237853386717996968038569220454312002596277962649140833414041075642443597758029470975229749036613945167884854985097103923189365328951254317865766769020393859908783329766833308191215565891535863786039487984441981740500392374647628198051709498647088812830953267394800653518149769883173011961843389907632228829305666841848876958603000161250433558327818814693008038516660815653737418245841286138960072029728435594857601906596373951972090373166606796094718300901677059951329920071748000893367181578287247647841983952902846333885073721886133505854217367026178374719823801569230954316015990851834278589318150314717278094225130312754492930953175165773619360164121180070187603316693502196071096331480468689645961806429012921781529208710083677186192064457102019644059758765584344554243511986839811284251646518255387051230428853705606679413578112735183240400015693354623389479834810087242291244648074634173090258303106414973592743465396350844815839816374575131047256264035038084126191833518386035840329230879016701257951139163575699422106311121448547858922205120468283854522696947830857609167691966997921611243178731268023617529951915825247280674464084762859842938974765586618790757627946555016281821192856913592488508784218811083080308301267039034090628660714263947442766305012106228152468625449453972184133219371362831513734232193732489791159665224317125870502243226373397775738436103053616795359645321523181776736956113690918943704529057701964332221966776293863031163184073374566251076655460217736302011424311469335050546045745949176590088085551269031421539284890186867885723891524294508478098946565491191680753117442790014806819239910425653637428252841387128553385522236140640647189036362432270121497826565944681811594607476162940022661181076477079666709349719450763926016749607029764174234329990840459968417657518853689764755473720510570238932417744594173412813737308515082565075621955711705397869965950840828198932188313955901012238285745891646800186344042042670738493987822484233476751877422262653195936670457838032206400498850947085672426405978332712439658581843322725810675469323235612831311591734512640345095763932610523265776707420499981139909032183167788686571779026691318210765345590702281167075132295170246970630713044009684107758981932733444794278311717141637397100094480985552620004755532133867220452275610540276230007510275687586417463676449930403428051461390303345759183425559968458661261767438632650654432126319177432832040994516761762581964240046047897672619473740650438609810273788355023317916878817395677768490143509713428770337710578353332459253779213833352901286652421482482640737675752868295475934968057677307389116848356522811597833996450703902807209390849221781387900419111729793385082892033718276550747739990763280662867054841685647683332816476488237538188313780782410863747094579488341701915676224948878499970556267243428099572110176253451675107507934997809884452685029404563923174654674514220425230217562957594686296530766851774804228721977247619078106105349230656694492265969172906305863412875130835890514182697962797940550092955314603992616116456387935190835649793196008778358335045156745007165400487416362424428782252567995493177900680497820362897057137434915257621950874903803672133756118371012450481234176671897895976709545127220903217529085603717749419823790870543184218345612153185179631912204593782330402918098454046360157279308684118046162137706415615681725337479168612588837489658099947360381842439443597528329747487420126776943084604198545018559399006314237095791479035570492584756405129391183855418676034054017755741912095566370519067940551702961224605462407190017516241515516929939864263934433046627536582478385572851301264297850953417977084409076800425612050030198170348075794849003478469898417405659240272382050894786107459417865197288062975742076346673920123576417993401736844336312806546368988581767275659963961674030464544413390783376498484606924812433233608535272884249934630027096490049385788441946533559081370262222429477821585126861272360009052477164206868176420250478533362312272227907632340847513539611536199342478348204186911371399285215287736962520437636187904437039775868509171371678460348931291282911408113638141134210355420597144279717141404404965926801715339796481299182600942670977840246420159235042125659480778433499628895309581024159584128364057974265908563015682474178677323368760457075846327760541066423512201786161870871989205891636287644649440770101397749636918529055444517955873627884674057734953894264250416047797514862952791086830544863557315477124032475752594077361691216637775499565095787105210960068987537440548061521643747461805498365976725400658554606259020816370074559331813841499148527851285820400179963903656255420885043295993462068430446241337974482642240244326042810387909736743345509154850801959618304393710074950801722117018934758104570839742889549163317385107607624244147384011896330198921712474876885768133557768604237694299058727798498367649404659674790115528129049773165998671433922277952484219626168181598763185079945945770580632338817601663053583148640583823463048368571884973026828800068854353013999481504478910980283500876855743018636129888735672057958758100317374546553737611156880072255334507649164777953081217398805685381402690040335695149222961456057988035667309501531089080420960425396571750724530586944852701697095899403873026025927612211678114270495824132934046487704784554827839541250753823818396149027433114573203981155825544831353927580094666580025319146311695503577582429125975673470387503419502745351700291757900239052366429084777021646668736170195070128527960492684786210401495894494031014906139788936053671393912197109109616906950827066272582163356123496047567243587065602726835532476465618287327272081825239071531720503612607755878363655512174962909614902784663753373444424588210856575131485818945168504290190432505782827098991120104222245730936070718640351572397533808789500273906289778503697319142519078234828363073807154960357569764302993199661944387962861254126574547303977226347240263983003418718645942691638423169004651824001337194522829854566265350906694417204359421510751061475827947352007183222912277461515278775718648971786319783436933174753600365837060130463289157361684111613952582513619684795542629057235600018430482106206341811732282142001177026054563514308375322237607879145450286944264781922091535281563595044159509794656890859010225463202518253214643860965558112291295942630365526967519550570338329934779207425994274858654207776609175374213195156750783501668278532440039047968357359715176535733699809104824316492587423654059888669203774267792500706994285138037095701820520870203658015459066218624074279099047207300184346187445988482381464044442507468184370584420267146266470389777171196613535929003838760547113400266279510101063797289259090559152906846616910009263181390610872257336859548258995084994850143334312237763333299875056293217810963035820745062462272521992719125476309802755110567105801245273769312230138264188646790745928937019696343098398442264266814970429180341470711531641033995690501148031530092258452774310957558563654907790553335702511846865926500301911779749081446913280120291093518177748565609038800521700843785843869234875004552425808317944287652312664002864520139498185798755242184204707648027271019810880505419132711656753687156578894616244999799448046975028598700323995458772006232077879454135427803854069290613044637894653325099360165991522802008309388856395117817883553336730107238334761241150884267677520067340507169382745076932692546901570618638081117128484809684658691210471163312257156780831588870920948621127745047246458611812942523680845557430867115907151541887959796107412996501103923629620182023247325531624508664793385213106547954820664480133286688727313541615173427672465586445703729445126798443432930604419836692678627533077555039731786415983316265066611318501076281909752013764684694161439067697211778050028182806421040432050141819776353153549914058203950728724519806699790821980069762704264002185601347208702393676430421083961668984539845064804219368019046244247140233583406131412844919628235161402575152142749313947104503939522831384795696205567122361806166716616984562112607860235041718096488742496458151473634384946930927241497361297025927467963383260737628815193092764654730328876071096969439661626445594191999339424308079128328558224706557777291526732891192101847071813475614811247610884128722829707404402156498810914254532843862390617176057889816430266352595881634889825390157524885861843135887922008793431036967524740952117227376299539927179210031032267345894649189687802186081890509376863014404553576619416767401664215478355851804922295880348899286479782375293536321594885389691375005481824251501394424380077304213761070203125242933391877619120973909176327150464664364994437625610919718890052972966271015864133990403701895405961983148286096706483132673508976800548624880942289404131995151939642341447241637759581785620708857657857988923683164375630126367911262078905790710203144355435746132973235131074838823828027306417528509078069844655060241618029954711997824925930670519666832575899926645150209753178051036195013063831871375640910333219935220397633797960774764149431115467519652977459840742336469403993528432642236887471824930982796823061126070132697137702574411289691448972061594058012374352016905252586827429291467598995288863336153947454665813466100272845225460703414750637728360347825875421314222135449292251005443775702639225089919222091110568542625356065586985392311703491433135671390877653561050774036262139599865443315331806918697633694730020389927368802015602949871169376894309058938759927459440777735425947766080040589091626285294690536406829316323786703000436986611369524383048610566880980023869537828748502604856656938751820234164601438067512726502419235391593670223613943261664192089303115078036451219060825112952490627727671156116540943111601974016930103005571450160072254282984676575631134073952818705223003335279953705709555750135635409435023898671983438940877068715653516263469930574675159553103083493394684202800089571562290830309596001221099622363380082335822395031987474985972252938173800124010185790114486935065520567886950098330495376361855382928166254168095413286109163659944439738524954816556342572101738865077724111545889034217937991203157475325498176225933124967024657815123700827858340800270235585095660647509633148898623203372636233327602635916054654601281623782925141759005017651519225475135793593838125928202823951903512539042543318349322788299053134512788150128035513188563592671506680223154430212196323437558353617936765718689854617350774323965562021215283355354184392415475767317905502542671894497824960359359191547165515958996019858628448885748128172836198243338302549284223208971197788069707033206512877792742713357899650562909920912350927223474226086892108345771530996175163062171764079351435812485804796895810655332555180274749797186393122846236241584906619793292021845158079095419159495350427096783519441943311632423972559010214291353616929625216038481016830827026721433312467587254506161928072311905081418121633687020013017223172807048241630589444198048042263312103368424751380521426229938947037562526260542062306869612087232924240829176518313876901729516324973053182993056145074343132707527649382058607483803979754244167420071351792663988822582081615986858940772004854489449836176363981067675030568045571989137960674269973238740499580374319597679219072944814146316958450979157027517449769603956295513235440706123903941266202585713445123833886705435476540865808450514477183269163327181109766466495161600115144583630674064625365829082958615181074739233231214543027288185788542275244438004424282643912539355321462570569010734457880056599661996242892461998551103402089333838454092839445786871324152644628890809559925943339305133505277450340434039593007920970159516254311909310276730451117132752328676125362105206923570077718256487215545363685449640548080249854251418466971534811629295314780958057999726887180096263600848580297575796978560387802338561149041781823746507602282941824974591777720718274902350361191948157975785313327230623131001768855964678489233626860395683686692386647372830025844768110903275585772439540298472896971649188006709408425950282441140144767622027671261415049427664774484337950112976110540446797660731877782970830689968779948048728264499275783026873841451690249601386877629926784870978170090036496183426717414144721566395573954925344503582660734831280518109314731962343226745533732633011547549446711101461963027640363189529482521257035030390557363514718856280532832438710917796770515688846977721904304955631596047026099123630234228097759137523513909610505397338446122770439719545259642218589718823800798080119446824807653394150319325844743645710883920714719697815334792965133158118018128627462352876442019779230067330909457134170088028694170800435215327636961240307092735296406468452100803136950529907699182818692264456696976535669143485458778864641978001553081189515893915291515147690521057729110380847177929094121492020585534557647219360395477220508374446478132982944869455119606194846221657540082012978257324823805341377068927040236633533127298604777876507683493900985155142461092184718786959710239893552973550991431826422883549840601399288213048988213379838734200123844408058671542155524652852644564753939203969688442856807587296646476113871807012376325410877432182059571063752993989752079473298230241939954743819849163395447409031686171382408830920434025605820264360228061503679881393039725883104653687761643982249772879627327374228440308161904001842899174098310306562761952778001839707641726226033890130421107984683673337743873574527304307034745962073564210075050651775367334500807196345334076690759087249740243131867594264313280675060851073584271784211357766499670636277092379246083915897823948254584858716124022996161468236210868811396398037756077128977101720870186379801466959179696584861014288514441211546472936499213491411791189546168611117252750186012886710798050569960927727226468797479247361601602204781047346992029708450151814193825083271726598971921326647397574873295713411983004030596813316319627314993281918242467313038369735066303666778786319903452575342709205050621485964864579469515822368006979180857830884330559117793987275167457283944058521816428110880889204912236112684354946018553432326189946150445812604415201359782445330666702593756279795351452787744519830059301396077075692634510053709669356155727628484831602847145800526378952604311009548254296121599919100296001298104694719648623146839840776673896376809681922521292270772008163162316956205276518523493845876976575816306469148370923614154180722811598624038148972856304956118683091607707035503828933262994874570809695410034076293590810481418891583508797131507536133627206176199620331837280201080680151526692284563862415109425132460781667305655412004409533231877245745978773194215796764323760728374367910968947212378280004778149651556462260419646195649745045182690709877042270441388379836422617446174672037968842703907105609504653777219455542109534953151152388977793682973572831552796646117927214348051728212496110958550646137312253869433979273363851845525744551754935623223748191001511495240044942916752325288259204156767277221130521737495364874055709923325284748373281265736252594945543830583003299683225828013559213208865119031645953795015602567030629279584484696839211753002351141974034321210755631304222435358096622985014115196202574085772983659940792151628707237450573899537734216916487177799841879115381280531697880812670503682959902102165737464687813613884989227353764359503322991649915110317387236929882891154012639463514009067999497833909776013435540002565348257756812819997017942923171515080195331493938224818352908434134167892637873016333626123313822678347537389593494596140158553810908027760283857465854237346244126904896519520282407370466055558104733161579171772110386530030924038057250988953421417869236532492598382073809511518936382310587928771982302102245262054063846017154589948651253806844615543588736741678249852318034629543653333721487508413681439261191252188072152038832759701351002427615266041064442606687098967471026234666479100614103730579558715914332993973638859939550019471185762176001358299701188260490366951049947334465607726492990889086111187336123072826105417963104612232036968394724734736233006367065183913687843441344269894766109295786020560374641115544348952129560727479654039674391311560734352164228863408442319415754318004431731634165812989241410002491701525783705745547778334630754584995774307003562057784098532119034299239569311835535433262770369988868093706820086059332634939663410627545185901853716373824402790801422347550059877597892813088804329644704628499940796622176069181834792159218516919194114117423863040171122105218037758236044003809071496508868208812012252263361364492101729580103175621730093506605605620399428931407275051883612105060162617835548233869958509537435515332227506977043299887680368252687846170515269341274030158851516099080056284635588241570688298299376038382243431744259692245946261897622205957533303991053671148632941831028431243280490438981053844230100692680535300800040782829791524003965120605335875231241396023097258787996768014835536780461424529267592499524670818477127111986629434419789933400031165107321610318768350831535781323612694919525599682890286728638298885929506267955408949725628543041033615905236545562921290872564549044361186967142693333285599140355857220014279758413703732659689239309922881293765678246745060449999289488903113680213645250928397332758743295827736695105336725322334472071824906003141511073347057906933921431332347123935088042035683830135956026680104734748439327996014675878198286200526594275184717508736520377905983564945658873988834907649431962437917857710514581797516291190532437560563077569493587964025821508847410031518869473967493753156887475712172519982128391762664406582913526155495413153784498886256131847234936599705651032195121587863005790833247456373031109281375508218568375056913967269157730774000963853771624409045119998437889547298663779629936213680872459096024916212218055859050388103550753194502575656032629383090775639270014440600593678976812561157943194388555963515084040294655463140168649372269709928188015971079638887363651368510144240255471716734112263538635782649645992918121144952974979973533959319147288221013561026984999883512271129162636640084750789376666780529756406087531868315099881856347159475062168883479385590338068636933930118061472450705045849673438773557199191245019352150674821183656307230776089557394844648133827425288272016126785351698758933056606907376585324161629031601001090530419900238400796078412909017439469584472814954657098942521025312736055574324790945714500234883031913489605669168563720145603287946642175850963209749296174406794702323877511288931094226592381379757771253965511508473741630846505705519018250569928289395061152836306066220635904176170155790943345554066757658698496404887418793831307980870586011502239360437894843030091102499281008776888800714149657515598198168273541346094572592161611553582319853227796255917914739786901015574431441262311491035772782493246470817447767410173779781228650001149201956305925486859054188762455830220203586984997414528996084013550426809013361877332206959165233615328490707180302360583721687667867519737227229636407467995543820774805852349998779523065923088622218408368126783999065470729397273204595805047778690458801764632600066179463461034241973721141318805657422014124261351657586626003406708516807735921656462455841473931504634898031857389871922474632817992350404974562650711937768982632210467531004942451648469029941493392404923057485553682650774921252325828469688520918478283129158885415622887773379945869539373398698044412118832673036668514531367540971147409884504110528201919365850466739364108149235473378890517350430531705750113080646054300534797370850440125722805072122022995439397374188513419083258598992287479537853620530954382821734243560086256610326268641547823158501090573705349556668263408911767230088279516644687113695261986265170810815047639935169747650184518604329966168140118709065710865753173556806831555239587529669160440665799949516906530137640077226704056938506987766210763621308887522110279370596549441876218349551676330418558261245823587653685697643874436362656293871354365029102771215244849491000041517380080511105553233095020868889051870664640591911391470909342035905884695574928283714605520181131832324224648745546681699113632528783265757348408564343302484423652652371652998187171301499452412482599212561448404837934439585611174390691955038651380691958596967615694612566612878906195249985718296578667905446456922528709492222360569146867356084388965924225841990909054277204712950679474473947901912164831711044279910343176075080895567983546661100973464811248924128653460702282740683185257820875826514204444122174429934178346642524818363142395343881977689778331314448956960235124729318328660364849340234531635598209979084025965422043133871903798653711622611939892045842018430818336997259788322314749548335867839841920735561425432075565064693964158851427417689066637367109929784866467804514221769353653823961697220748360348599755676753680300222600312353868660202348055776470720303264540616378922489400008287485297553442203684362050844647957914336433234861357252136951215313540220595182010235851758856084703845047465544489099778762973764703151271804551145280657326800646532026121041182768067992598788094278206183159797575566453017233683871999536426303965607603144947161054113885465482423194529945431140361011355291299950108257481356069308064353373857726367654989059906203998455318925099277952429030744164692545287016462148044016373571937196193859201671289402014015968099596133525864033767137761352397399367955183549150637665669193020028042774098854075944347490194768103669212765171981324765578119327654741424889840018416804255225558163244184297370381508032150791756818488519931812838208356757244165266010270369282858705292733512589164868778474825057237706725987146851783621755713318196082998792720209568374522242266105634903681631138976740824571040700428409372655634443548378015990023562893733435580631343994027438114454397885594062645443530412665850677208124894228770514498970449740990138144622279831452920160214897460179483775237242820443746733000925188753563696304375079848503777281082647066811959614752997825827897765381675875100233795071819787443469003640854358408529238635240730473281400080558302616388068019934505486060998687889249972440185102324794103051287744395055158798368913238570716319148345309223208883957887092166180109152025175308212980792389814507625291756716462097169729890480000917739459039637699107473507320456733323109647589522480334898393518307634840228112081273075694446322080930816093916705532524347714607141740491854170042670636368961607451731971700072096148656515108658499432862552907559006875067530965365521968316215517700609853758574635174075788815615852425954215494381121978114615632189782467704685755851427322333208957289864645630658458309651554649297667684794000664425814612672572271292598091545748820002695945263240916554917119334488091801049201629439944223192921833129456804928755679200186240455758819224626039690964081656290893927288239293222228957301474615338203292533456215692000005117883874400568588621080975809605330447646924596504088955427887577844569554855994457950933798517681989485204397294742233429273530106992805018288481655908720517191580051949552555539911233204429791848410304989913686032642275895640495070332768112832926900296238178819082074415208255188576502522096401174867326485032574314422063822723502529667813164110421082486568804436279067606488665301180216690358615055088484791422981169572137996612195658140920670824612780014937113605641266962394767107312074910669031810659803187384547935737363691777177236346920250014647548202041139955845462173102476411798080419328243645931318290483321762383493663991563676494140917056591027067774478473578706223041558578807449178493280568764546904417181688209625840428254450755897035233821166888249599039860502492417210593163817984156506262222274476401884345909102601277997460153697395644614220965929348321088854510759689997540163505808467708779176814389781416157965276782809184407875209242868888516597793246881139866253090998436449658828762707853437669376577734189859693564004403341406152800148302623685321283363617855295137768988936326227674168483548759031024458140457598180228122776236700969530208967648851270878717853958725147223160932794423125203248332807210390518349534650547550988400087056016800956766204068411250896874893324663214986781431636479505156549768715941825994098671472122061988538794080292672678977443306490250038542519706342783652352437808554375369758910136470103265510864469385748741491514396273774976028431400024400945912195697318516231827287565926454539648858610166150789265021171583232131899741432194670600744378592245755835733938484299033351785896373683128099834655361285429830137985589905921116972513645118259742197893958255351290280493564671859382803037447228321238964668214437770743738728854097708415863563552643087645959069906541205149854345334250536485486918947418620767242202823181553622638494374587004028928170528528712693629384805200520446762574201547449904457716995846904672297135828928104738296863174599311404479775662856491921452575980548443587266271121832960937970769672942177815247575357981413552062804445827727982527544899323066795028076658354304759190725436783065966429987122117277904497286270497906250512118063325353416148094703686772301522140648040888973897327288069682018645588442006234817024773926657705710814263379347518815518232478509181252666034535698884686277300706811906173820176427723758227488193213602619921569058420365542417449356120655619943105868869339714802947097463040319895633243040673284293782906065584945073266455236237953184310824712510435733736430029637251761794591545502912719280486121656693338256801318709067033944906323349074851938020719914657187607659499836521090617092324369294401083374203416289409386825377292871935261831850665791972297879572191298014611935738374438139176437546926605657984719700693273694836483765325030290123661138152158993130434648143800760182726419392604808443057275806374791255345916628681796701198932015725180790452466864141437731754909197565687882382526235533647359850510912833617539544105804979949135476229192891517307242036498536098952097405462264045862056341912295295310573432743981259522969117299811379381004527338011502324625761988165839818777006464642850766293189699901338906436937684582763433095205632999919767034170824193860593637535130827603129106910111569646041803508460675467751565272439162078507697934370928320236910260968476301437522397548627855755991757535131581923091815430906856271157133804970951155051157511849435854855320243604861582417663498745591546570453342483022853236975116181808941966917750719311833104764039296312820477659503728204395400406407523323787135703585874198853973471412617583021601982079721090159820897010573418832274124358803482899104872779621008550073143126500224144199347914068639921295108725013537756753754887445186322215719221821882349531827327608317970881099530914906845135541676670487322448140894116296279010150306326452069702062583626471985700621130606117690930332989832198377713130151423486427252548991279630727355327697085218622015391814179016238636204989160713827274206654695645185410867290355241310939086231548256244987809233533276184266262592720764759750975591639624859134510630110894716287380591509148372744549236327493119618107061497643384854475340534147964002891233930079441412627221697064410358613342010502904524909257165737290940107022530363849116324219261649843848462106971796742118772402296604772148333115903913303292361197517085297942876991479746479495731041231962980362886212292989137609493622462065999587237190497729565293968054220689694214493067735450829025323759913169660780067773544326732833370125988704361176697783877514029723251751750452830621015216997121142607634610052110826320995033700015087098329636867089846403838555289807301979042847479003025782864619604188213817792111153819316982972262572986531508403871290591375257885086751468854953151535745651782670431329756797021047061053432925649860958903857032335945978550151381673831515057142122970052623452560175741838538317127965030751780953095268006057057295022740731941008316161543949295612675156692499746809575001613509667303228695933122239233947402283780116376966932750540300203926134225075267452149831351689360417347153850641881244624733204530694471526175823993487832373995115816801582554516965764999712698058171169512908234532119209067755313692772988766100370180193558141060983455357832934585713218696872030008246062204248315393298327864857331750167609351816651026481247195016097788504894402297513862167133452703230187815620168707992435329811146230803350283321078675035362706355921861445620219801831333443473810108782775702003206096867472716336044415368578325432466163658284983115682059779791372197473229010251014607923726521865408301715794558263722805725047874871185673374156174333794487897323788748042885839846317514716274243983525845590059902217616543912098434875758380590724933246099314217790183523093229967956816009296655344310998011725028906066364963243292035155990765144351835449163195842930329600466086269657225663432331255380644906620400963592551729516742266746727210072061371163638727690232467935561452278357877173025525982171487945582015012780371106407833528432305613108344681646964799474523470354323276022892373492425681604184930022010915404955207786661195836176998508047086766894250785271401090388176060142498431792760833635213406961952273408209695543642943705826201307223361876693481801227177189963559285089229471791942868881624615741591168339866049580175141507821032280136224949525006648911100411949591810113560157330260309551361850786604750689226621112677581029677871844953036277253220598952409057473177498827622874557670487693708629200254173311154765704087080469079965631884979393692120617340793136210556519995039207459839431812567049781051478916853450677253215854275572704257291469925234062035823167313651245676398988532836080930497408487145114630600498498182331848833110104801175868325561827223257410918278476448721935266241545067585049290560054608205268629453596548826528109055284705486090053960011834903854429720951084019648727992189989321881204716989474872445014933095380653583139264119198211127841730968312335777567170674476021887256109678034599748901473391805411438242126548718572644783988198963593442026309401629183649530421471102468898202340390548073265506321057694284654278743989905383280323214198347439324181277214398702933200704668985273820782501285448409897543117063380386780744334201130975101146930346845398469403553353302745878179548684512400115328863677179956885817172334516923808725391425511451094477918425383484216501451888130772417686837757374449285593628202694945926547468925274462604520843556397776115073007799504210892801246748685196524771862064577836907291100809322213231525147158959491394424601582818191537315673726572624582196240499585843009879586807796627994998582597896208942437384127473808365445953335153154319641077697076780278000552008016261920072366178987403585877240085962217158579857369650442053116078408890112396344539238425777786548002495183073398636908460609989729721648638952703529335926074614056673221549656220394396350583157362954349330736204474944440008345687690142189578503101150627546481116712723236029370215351764462431435676642156315389485658557908665184528359497177429668928164208850876395971384183346116478867829099327082121340612393326237839705429400594453865802918998426531583134616417268250054384117686384332933066199683568188700592952493962557614620840274631818812668240009530413902867402976343620259842971767159531022211157565106545304528645535877523348560691860090242926348268288943818001666596263269758199288021863887403474802169616173216720503759122510903736168053851667322251138591860462863140816781878435216614142278323560992898281594640239562061962193961838178505515244749148839713838363475671780899977338598390012833438206882936111217919425980378738258246964713501648194452616671119493026893241047520928281619981503839841107819733232067220102284757870022067428281624792615328848637436399659185472352224017628884544659451878399688098644412563182430546806465930389803980085761220694644608546396372469781942643716028410277603399978402123410321168045880690450290154124839324113827817350790844099953407155286743139775042716909592455377238975818934420426719815422516306946827089249537693974185394457732460586977244853046564893046277366732765738813403873851952463899992763633185513749177326808589608556724706219184836363542541435734312743814933730193739690790626684331188582911355530449058038249816755951931240916042344184594764915043596713240850109972845696190748411846956323237732713928532733921279339855241073751967360284841770719174681981753552627769527489045780407618401024471504624417139676257606116441938394622587926368371251167531815413544332552295588082077792841711819068227688848896081493861790535527642622384551317696907404858956541832983098965846426910632496385093266563976861867887839996033810186793317960272812525207645472084496167611344150342605576577245723826568204163671659879858831893172241652708830540106184439200968270778585251654253831473523355506096971048890703029852766477967850982088884062458281019985892751512523577601629505610763856910940214059714751275084607506079992406230467269431802139860868631151807079803370784673449572250831701514876722343755748622656113563568018722454407183287528413834042085892440408951774747274332262533238996336645654480964810461205351212790261900330366636858463072779604147015949543887284207460621673522685264096948588007877823698856624687706327889134897828902916713936039870946960312727385948730540429652304930866498384231127411924620195532924133673086045353638165295036868369159041925838171294286108072224018669097309130434578606492197742030602454854951630865688590574282926998152128911860251495424052863080189047600638377444202635145952046919786139318622662424541761593562424611790444291597167016816127215822027162121309961332597202180936255217668736276203595093658957076168785672373042605968580921689998678913465715003608923482988162743478306582532059897944645187848098198140927161871040717431972831463670159806740483734426695030876378132545284627108716822996557750093553122898706750767474192554191126867397862016340287464217257442911464674566663796317195224306977236831880707967542244207160325685618299792069752188487282841579612380226208643448113733073975311750973069376901076956401637280049948887430062936893665561704942308410587287327383291115507633511580195630029550144901661204199493499397389706742499374573581908251975316131749123656959000111907727397440489932615640925566158673184249333338842438306736145114913609147479069724547287229833729998112971146543865148043493092067737198602837954230490004918304722146471376989656012548931502977855331020816771248515982517029138777767675118786350531802443978828473227115905717495680693193678200824919691570163904265885620186287634698345426440983764826178583670966238660851795975738439528148230362860792355931853791484208000584657770333103300537213377459448346150328919838088144145583066978405528475421162650875133706882856848826011550211890148077805347544053041024878520715679346465207241285292488200226290666926487529695452514377459071476703745426704805190875946219416570273117711785598470681028487347311948445626417926806864345386700328119676903128448467234829962439123544597970313251069915717446887947338992260622843745498111463231681201238192664282084409968344820810778455401058959549112471243248044747997871283892444906881542933989449869820131343495108459913447169203993909815784384122053703012325602217715249687548165539509494725451293198756249066161249879688232794851924844283188368067285205533633403125954848889883032933137859966841604846212158768536225923126293538218311881620406983065958762096859967281633358288292499081057052956897423194210924906661184671887913745393897782555683119400242029980718865225608275721783916601952487758869281725529853987734691779302092179470135261667952613556637151410567426103700422126117560343003683298505766279633279576126376521619026004248335996322684904113094656377976269367347114611395261081474749446579161404450653688934236123151478310043752642815434543856129657697523549826750968581927505897467076578881016876605904322121566324175317071144461942052273713714902963763046228775379411209654172286258689559584173045904235915613145187923025416523686628366259198595114526732076692726986104687439767783739438877414193030488463489335585525334041057360551849007671649982392893745425802338070721177991354861639677659845791043660006226007775594272860665125685331518688323510058422282204582397973426005834362131950853481108578232292821251851359270707004727808078983588873055450194925118235603984045386679030987469303238785973484379447941968054272240580118804534435959444136409021051285645573540761490209986990815206881113461544716936946920553650802532631111971636212969930346869987997460375057856928149470238529617531450184668468067078496720027088077518126012335775056059413511017113859783784493883765245063532534604182851975435559017547109961550321490765787524604770222056087833651343251344621052469394833607622834313887683507849254072420980904259506368884201953001491127040498028522948022030714336595471577514777138756464605970797383489533303275068342893499142890344347672819411231670788326996982774422407382560329041955959631742027525444118994481408347334695740630688578579642261127884268615238691421046255503098878971901496002605103236057554426821288730139266152159501695570002958075496627151629849215998949312283036474649085714669898775648094515685034210235826466828176942433379754192706902849052478532067785394977416384522679719246532442297958720462493276596147909552504854572106552262018330461753757323251004632423271500475854043491247056251425433400836779665487546784151633343340147239423390872299035903761587665160024917474344895427566984935145819001799618797321572113108112877272304383789991343747461425180333938510385213880103972341103515667960926960470529255491886310073911894473549348428972719325055401754330812323164508463292930625375232759564889940003827656550949422171154057584028242852448231709341939747828872932037509571572878402925110842375275619935974836980561343489998442357674345398314599854080180491667536087682725862924073201135688258029248821401750943585317505069249844099395510998000835504997776256185301165700821994999507808593701589260020080719834573573733162626887090780233943751526942524450156237886893765088211707643161323538655540118266738601531560839604174423142801383164858543663766861832161719014916103565353368422677779023975122295092974287927464351050164768411975414875193996789751289791992431583681825150961983987207892526493023453010268601229075869828660337214108804862439235780565859120949979114266758509899964280233340265795575542240136798592395945819806723685779024922038874205073038634297648691383305768794424326296188052757940789017757215014638598356277064778207290638541401519440762376048818995843766325699773084732431434694113729765784028008461600180136165323275050078828097932347298518752047147754001599097591726727245996385444231883122304348185987514930278153048861083118996524499298309324123569007856332156804973100815704893128421792319713814265199895821702086934646287259651724115503311067911496548824074951438977564771525408828423014741374973727101904649969182666278809310524098630209731401801159721553754578593915416059557613127672909123162834313565807289788064397170045145991812555891216303218418458589036035846844842118707415071473662864118329530066074174916783609159994412984596443592793116640448336108506103468909448610749792066035414976816019610977076065957244845510211440125957243292673086451807629695459976568049024216336458775128423214777094455521695960746962565703184849277887327998202955841710461669081223639095454614896803415093320920757897228126940222429413674015431069340525826288518885068718652007308533044772408811416477484432687987723799645762690939705115172856170544681728613323909935628668569472598338622087388886703990486163469514841908424539521222323574232659934700240016883742292877476702536065608669281359695545942713579722339764048304085042909883834169017562353826582231593511389311155499108387425516494333344566869141188872863668837505788861464985219612696373809819084888345937585132396711767308598547618358425310557244373630807021282472186136918904784673469337655371711264173181324121530211335497776426702714550757341862249829454556052740352397468110786539204804628024524627866436160282413646312042767794959915256395341561495186789447453204091300621216312809697745639995259755190548345560081558564833426299232132261635211165552285520513439841946190273067371094114184585757031426775400092883956509966922558370981553436902799578303302665508846909192656058989732284183274418400572437837727754934777480363340522610809403288223083217891861666355167167425536067072468326042202289955676327820644191034230068140653218009936695528502394640784873788936991850290232631325398211230961882773791600641647652370288537613094609272730186563657355557980255208153403498473987206829571522800039142337098985354159350290863763909357346321764490544889492366250517158005364031594104638098295642924761586198362193031193214781011912963446083331254441191259784871961814389386294176392902550662269032689624439518413899064237864489341205352660034413005741221453224387050841104984720873670703414428898162064095849736390106496813100693181328788124478160991632185429473068207266322900182473086208239732358447720409332231964921862785320368629725048665411169424620220255447042036191975328304426275857615965683435843239276649702607779088734773040372705268298757082103840639638761772142613388898664372387844512627486530858769519646365084608458853196362481107231872267449535224578147722786112889638214489588797679162259144763645897555082795066324986075896292121437830881055184866785158051013159551444643641782243082895318331560079824395267349749165038315986151919571560590858501565530694503580874411442099771332580320561737198260747070184140972921323744769316638538303568119005158834487649312653304331394989155714315308277448729767541651079313509325543848894536279430602855204760822087503443249164549396802955148906368173009303986905509780386958750842483211483968528652713395343435450425960397733766717425871014809223952977694968967853110567161757252021265481978691330658177762313010180680459501512559366244343722373718846600814452929828854898077032553656348803489172603567800565586733819525820683154723082013481081764564114208407037764873640751287010104838570300256673447765519978868564350091490634394769877950772755441319417172741010578081631197110896107526855893325884664999682463939329235093806001240886183484900845808149400393271768099097069317334336317716086197210698466904304244215995380513356715681645433095704278054326603636521394319135655491743997853255990606319667863941991379917195585143394949016741995424393551156994186318260054095255664513250762698023416395784973296035703468265844485488951991368936185988989007498504338881264955040880363194018158085599669517704314452923074103080999291285978080005546904635295091203724080320500993668815506463308524128380429951157316386521353136468622089794860853195575757872227359024709035912500473817095077297036630987953725171467641124787632283879773993825116304327513247692047575172721404738223625665510361240805026620805525309321299987014213063160428029720863985694227664921146611214082178495168988578995667857869124231214602434851120273157023494863413830367147759668371917002207847674706751845067374830785321522605870116875354902282121239158934669679676114260339252069795678358691488227896350684795616434625614289300225240367240642551475981558219145114243168108368791815451482182995172194608739873584734452630517343389749714134878840742568450765604152552094062749592350650834798207395590674530248070508700164218037258832961396079155102143521709913329263697400017928743366165397653088527596926162350387692096868290933060406754136337241802949753325275278738625145466556467969636266445215129891586118145490749808910359654655496955218946159659284733281387193522447316663981986239330694728571998776990302946306040123752811712663787810845029855182381387851782428014204070179873727421607281491654703301210194838447956716531428309242094795217007617870174501221616750247770390614454999701375055379102847838377676618427203445581617150023535738811665371181781471333646580952793086135224777122231846289005359365357557245812155802687305788256838069190396548630376178956402783559170094795049675544599576938797551605595917050778459050715716963947668918270952913160024901546870415419972870208734711189378954175473659747473576619291351994169350527322573201915580670509540785640091758609744304300596390682700646630173735543056134433330358345802658534486408862319592204320734337636167847999597857469000116545844292407515138353250548390200413528973408565378712040367128148737282238539777736915135607984359179579823225210729696335387608959655095462236092026228545544388153477524412316890958210388388604218298129007101458663732766603466073053809484672429543002633148906398052165183857350736518652254982644118551373682927221661661332065743953452968688066935892536479862400996574821620656730653949265959710531372755530610219250939831823501507252921599062462419817643143328655530114556717872977827498800507770567884146884284399937729309199415125359090248558279808988009801359303556580045060124028887908384443215962128951398496864950841734693797489338681011096068812571653510318784292668850635971111966951555039301591795535347045915262304896473155717249815097187814602038189308911202876907078987163496812869206527411415517455624656461514745019581036513852458317454565958533575905255533074793997553862432267851416465024407563622554961777966095794118691015133776073052285684581647186889027722458230936623038817006893334930538370367555700646634488624516478243605301469667778277389068550247865532689975471664853746781596388239055699588184147139352494280463551040913736564834320943701131710930869662317295529905106163766023623129004016178755703048140832417906937139046023915479422888836391511542278199707884206824404978675416604116336327152575089332136492654493978011526863752458307767662435845278336094969124074539177299835646473290526147499342547701141293983244352626798535199766161447969530179669343759199687323099263384522464249812141415813127011157732027376113162932308515894359025524990945378107249406488558343075743659446216935666911914436162539720638044803884134472061389536088871531307490121570007693607346295236665833526938970260642660386756170430497723181236914859113132640115200389093999479601367441340452293248868637065343212205749260075782717215039161515824109987123289862647629301581537685313632933953087358002748963070675067456945636928776599795633620956247862774436226315906220371789892551263681296221540540582186620343285627917341894594476718310470093217555668340875857340599028983917805859375957000004102822239611540975159303376252157534467301890298902172066560242191681814228371978483402222209969714911817322701776223026632579986240265195020156755420208968773533455568181728266138652439424585242982263910913909793754312707272834288322869812570422473389798392189492451368171696902459739692494958704040866508106403844220747015889823519506390201790146144716223952638855068299310069514382206848530130012130970190117936658957885578650913418314933228300832566084431217727779293230345858508818255555046114676242528911830327361937490796705329850990848122472567390776001534568092834104947421405871391493746950895781415820253264116683113186481030388644104378448450654112570620357138193609839925780810088675382463681603792859088129341671216323408877295125785670252667121251498671316208661766442556435874984892822425005990094004409718982782088067888863444476502988211823587974954255668373917870672268976735219223403105592587624452294940328359069791618969039825319900455179759179762190456974167910866734809730904630700904153504291494135590496433164736180159844153742056155522249931453303065789434890388158520977543801841722582815789966020205516165239472481750483136672693300724525929477597292759407464234521988181377385683673590372038101016291040923978201177037898015247863252759663361372285967036352472069914996238524884769352856439600557580462486614925702805711113227681255478798848772595671584584988600655794718107871129293887455140149530486547623543015212839081416214166808996146907747512649698553377486716345385481368099952791292417952478945959311865487185883097370731940721688661138550718719167690280081060427394154275240165029746686977581732480663142545781126222496156962519890936060372482768170816303090219795846897045369233035649814819266933199359774911960787358314172318369669756465211293393049938249127726998513688015960775649327089003384908992506459896496917656435029687787764815162533172355293175075267664167590003280901131524628361530490043319615211789183376467725445887326303498205172650871096601986492767637010644807193240981183487877925465762300497724643946411309247808979023549987541114994855374791602833510798596615662658741931061170465034447359324667914143127419186963532970468969715529293410270026967779103911747883358547019461968546237955065133950528431650891159116347393415125446232217923030949005777905202555509317733479792871942389302783585880683680302658074604009529904958743883354633191211323671424854433217384265704581972452618237636174081692415203263073437545353310183302990754772299952421497125012329095452189099977135743109062337521709124350841875769683628191825185730104373192740804050552762667347256411125300375170986668830234437351208892997361683612873145980106226417853698487347425887690019553612383264050116241127272231427580251929510899923629030073881551687217358136022787595105952042194268454683457215078489078566166818796463827999548011748832704307001988661973104485742520851132608493272705057716193324725528185223498150120953153597357324700345347809323226287031469298900197364476691462634622894618498314381776678792294288563595321838341571077292231884664922348983652823252544838096936126475382585039710654369418957152574363260981412446845876432548712841754882869358128645388608229030822310643846753745167604216389234918535329010331145924169158930596563900529827027692574963605169022435238531677093439157761477849552245074332114971289153631343094492116574115439569030424845241832127942769609785386489576063813804917452120466185147312896490713863185289119206308410962438187706405685430424096375038706261608089759805860346114409087284131234531371860352585582934110364390895807046561591609978121429527192919880814118382080144499649788338127759847312831417504384988968806821908873920088630783866132153331863572598837263462054201235995405016481462199659087412126812430882929684429415949276228551492878641254193744097628719759182027672631384830405037234787124436891859989570693638371030018790234962913026953404036361491677582344291968570386783561751636861149317239692457226229502936632685511470001497771823341672230737746861445563025438173923142287417302849002905983897080820042714479246459695602748619498070070332302164184387365533373686283927017526633990611168839071444298164562725185502339551364432560322691395350763955829386231589076527815630025436000002410045017208180147134436371392966938709674513629969864940050276935570682226852310990587220232886228403904225089736803574798767600290267293553112658190580798451437908820303391290539275051322248001124635131882064468563245346433508647664814688528620348789016838354342907007622870640372766071052804917477092667913021148903635650832723188104344985176370988440545500507467333403553161320488202818959169619662042150201813689222398095672933143506758639960229491614778207663037524382645568621827319175621637492962416359455722190347494911153472660469023456234721215806535947737965304483026214950109177808147617976971386073608554205633838887554016489254527045637954031672258047022465775925820169657750507806815581909589508584813824751977567681998356007264786043228182557585861248377156847179311080134950670013822353919868513363856611382691665174978369055982235754806810057405759139675480166532319170231812156419089321519930219237031521235313308130035512933520912109859872482731785421867496144503718535305365105507799135436668686733271493136409261420051737257154581345888793420210847984486443416003773131385223978449379178371287638172467903803146381232389682110969121566940429211749466938320016070126827790447771994383144069341060584552794013229956938999511161912490834285438391852830275904297762926688693536486657680473326298280692634316864486905914144969555666346336665811851167835839126830823991375356027852790110264777435548450912893626978843075157885565147861869678435273730198532876428667964896995854825957893229646548381028740937613080203856708281321647255678013804588271063675858332542819652100996552218740251822186262943947505369426244220909341850257714276036731991289660032918287817935519254581186164685844314409427267246378225241667565519850455265932161736434322549228984755412209137278032870642713620165686213562893242819708200864801395135139415771965786485429191277832954650403148393123178925259118710071247042969927893220071655164815360042504817272817051226143371731621306822866535219705117147931471433643240896163568175487866263848402285491316210100856670020374286381675146097699903711360204510270110906790857413284369690738271014694521735584159577842641904101310664369238057210079430080246820109620961096651824790938298347762659533091299992925389968803233684876211732206625876784814178842066161015093282673169928550879087392694559449222587113749197527594878880116204140907179555026403233489669134346223549412748226808283226850785511054209378622827845389690887895457182168105108563267298546060792838706052234888744862349646679036648043248891247106843334804053851356010541518171178827013360876602215030843730190847608307251447742781184419447394051862668145034400874821045257045045973121080279643707969058375719970658812885769195951511845578619552452793139652075154031910203508928498942636270281751776205048312162333489408942089314057980801835524167491618749663662953689496412437494935981464680356213091106601754607989467728894349838429485932966429954974716841022289266040369629811039784026672154591895120866945536474379013627166204646109518103821282951457044272526445884875917152601277074077414577408583907370418640605386273436472938860720310750521878941675183566336579794747859181632582306054996176514484184419415546977180599587109927962450590073155992114390910452512580289578555797143241747626610067347431905199843528447964492598071543319878725641356868818055289088674665639294736596216775344945693083839582905455221876314600466417851291718111234004135505157638831797463490726401716185942468388774249336972776390949034765389152397095125758465166572985861585076592337233143405325772742717862168153031621032693819927051155444759305204550088241039638881011973442835172092386139182926790784609113674139242591173909711133050475373055107021295018997703608881290174787568731886190881785381323190433590884639914772136055557609169105875853449330987854518006281383638668757314130150133411930628582157186226682930710430495620060152162204489701669514127582085615368954133324695644256229845125972653541748620125613069774864857754404975893002276021167127213675710123515822538721046077434777076114579345477153872730309928957474836959633790771422979007265545409384769368360048166509511421510913636619422756559270552072605075714740672822075984874033526721642202537719178983790691023646541810422077980223444286797588664946817194206081901107663458090361120369647705138917126771796175731306793510635563953508964302664743263156972955556430366221967290098755158434143367635407650473510580185604291381879279784044049095781321829633562585013301372326422019183892091682244351967051955846085658595749562233335203859452635077804130784689189119936757186333459259896480405458255784328239162214311469937819391545784881875599810442049433910013712321814977367288411042181351648629669219314627163985105755511832009176941642835223533944274086370033882925201070748879286053789470487398703306318424580871113770208000639320100855803086328576544802729756868107334853199712678970857720886879086807051749735445689734003888216296704712221116965845992670621475660989354348955495640592899874279047526068358293590160740995165035231045617277299304126148753588431646295733085730060618438590368174462173071237628382136100055869468874450507075569556257693273008942290981833305802675517239328130572358814243045947178430292440262693218357998451914069600334011332027213125462192937057109643935030485583544538306044006687549514392399161359876656783921010496556465003359721794492071313596174176578666602856916191315673853497449163853259427532900458694866340227553747864169034174645286428622155482064213939323183907274787452650115547527770009680054810309188324182939471004584377644724077522831949408654365246014237878081862420369718396854735700025442166968174052382534515859098542772869657073478308186568616331886846206150949238322145651001186107544534792147677873286696733526241973254436096794340953407564305490575861812820949546548704778811654699458300817202673334414609045944260003695783794569311711118469494651596190617669784496929006120166773323955115707003845660031566587639903280576694205584698131783857116457819168578802497985223992533380993272153760413140168412914579327459046816033810084927452139275091257411124283048462823461366971886620299354190891655397445304118170845231336345862995422083780595695892669429435574713249217473346508901997169386291593162329564940940550358707857555212436651149789300285213999093619888523309215320659791166768816451601852658361317385097759916387935239402021415554941989648999136183196053634188155914354272930436573974400712213842814842657008803518258935469264515195837431422009095039396527881381501421901087242896238086619636892826021297979809643838208569325050471720718035329260819319937280255021077118214925609496073442296878140997500651774668074473983327513261557779384374284854333250168045190712783805368905839837743828215402104485348831394413327031229645823968031663048241157523644201799821706501468909786977485624422195113117426482816004623922076573881467024227030247641487010099231963495839217352826070804642031455227185227216439606598002713168297087603529668820298590809765394983630676480539457792915515177715570657997347858537115849431681034862200158534915096684609903560167605671038275091898246840082596831817238759027453424520928805438066480029350704504342897353624649832479040988631047341432346312454878187704900538521541536253661910681179281244400228031063163226952816436865276680263563706099366757496798740209605234239297307597237254409492593695237959410877247530992123899920178786798250149877298290556404246423620032624647526124150033904529179501156448063063401473482230998525025405497646582404589072057952702540358835031833550739211048334720004956056098396736558692830572115223969620978221021531675046083446078304762498189289809616009962811050294916994800730941951058966448781507174239697925114718652088096172366706812881666460445842336370666673711324495537120735489779735695433653829199429670554664843258567090200442978361458220186647091833341570413617452848447933182690092900538187164061046765678395022297544918903355230388921195365887068085685980739628269067760469620766124103780814377470876758414351845205466464794138551920115042187868236583951329497743501020458419544214598160046741213544722271517792991460749149531091665450467312612740513393685850873150429333313826436458947746844106257804299529542894734917742670410845891230854456207280457580688468044632841555127841617450333054717208065778349397589289831826368521080644001749539485039921278358334564402092481448803234062153431330291090052038424758572836320965600672419010638089173152455723041918454136584395922096447382726068746597176793441012651673893772359962635067289446719554459589426468517841747946202569146938597564625268577050515262092790313741968740903863945089299263183080813536137167269515937269205611235495964153815821228658824866851815530275488123450898257183552107428567445980656605358499292316133755373104581986718685815714252368076730105185197011396490825203257587354838002350547170814328993020639096441414911659390607982036241099211486023812364835625265070620647650829944352732526930917898955195410274859485006197262636638721243345257022344684711133902745375979669398934779184513264013997412152497199630367227375907850920891832749913183386147978822805637661823137635784476922518083407697226615836195690452356875805552052069794709171230451845407386683428986581190422259732115829220788397278998233995945432311931943869322713212235441771056376461850540756862172510929072814790750569361241544503526115565073379386060759611248618945784923748794885518740298446609266798396968975686214282139547139654332620805492108155238818852132220830322360900485667324141496909934316462817034922039068660134332516943850935161706787943190611891885743182271664389942749792716237622837379706046335791514292425491628668420865174836787805109226293828357207670833004268278663405617110860697021645160768943113499093617936382517315087553719832644052835087662368800475236176753949213680342510938403375014447869252458576349614120868896681826637515866254678616067018971505895089151467030415195280922343431114819467234955760042621186773100749716176951724335114772887880349781429572843707544754173118969978536828869635349703137409404049389047506684225768477272106684547638495225184636305872967798313197492883977311846815469797033089278732779352058683775796406790134660638949048316455725475924861487004687164219797428049298827217918997460390057804078662404492684671870135540412872599748561972983434740448393052737020626719964152485389048691925983819222885371085461697364600583102715051644589015088103870146681551428685670852798519163003887570230500506907362294757195842188316384277260732183880075483152361409940532550973186872510967354831549795518576389258654424039354490591270770400017796746146400927545569513695983078608197517359751750775409985289748860890802444516998984734299052380457125228076558590629519341315596894748366981319425110320097755619298793842852942230774831443952978765374834119074469643508264231846683438394588943310361349650081826042634802898302230720056770969998872366498999607180084023628120135007682587975229938719209627557955144965201565182151326009147178368186606940047709603054370382590584320718498806125597029733259690348514219250079602269475667348279520711205593479206417270272187255659145049711840921323597678155278493839624837671651563844715088699952972410695126808226215111828239722202085985825534039390312222278300435310546620454800445525648189793556668723184597789467308293347453437959681794781593298611323938239634249345225772363836432293350404019632193172373249346202405618130190758875758902251637332332451093432321940072979188217450921272301141222762033488443018745743035675799513195285912490345324289146762011713709812382801995710887469793972077466397866148013113904662325317995753128480964500177650964934451873794288895192351516156513331644792624829308236339370684443306616067759529971749595655911257934202778980331061979042029715809920004144665565362093357844986233093936456343951777471699218547196997151426445070224327886798804845499494131775717183965223540104604745328422856463967006453711032080497355722771876785038628288095157515710944561654335672680703700590525024818526302729136892787201769773691312945893652495430690769379916643865407184110524248696651724362916548327304411568386708585425035938676736207889484456727783035981210181106846795541893255691190029580268255000450133141672290449820482189468894309205870307983749874443813609651124410144869600442015003859588682172712394304257403736080741764329492828086040156958424337763931251363871356003064064753065097187966710477917758403318237415396752714754969627179157328657179616304135826838645855628056589832700331759308143928535588525345517947848215950105695560439331369231011865448572122488427047620905031397585372415335600067897714551109298666307771066034745399375959632368965028568069457218578187225434976332443330440070799695240684624985332268485995302569070093606690574259291285102699946299268137267467928854679134508053193471499298990071318784202521211768326558452303915816792639709614377007224856364273417216796710444787028087836836903399563402724105622330484012089485281820463001218495959924516560232806035262960621549974040299040193376871977746130246143757094086296509455756445384514553657322125693245822723479339657967733980902116311213172523029727013847755348879343680329833530244990637391736283726131864377394714567380362487772506473386465660876551895064887980533028315455552881877623239189068449276820290476589438700296421029012941046353750836417658061114743069247253629223393756161585768834847933555144099933570199851112996587408622698813333421735956927817207158240161935284235382655881970049624723489876061236113463417826680414418313721960593884010603575504134870296583405233804809358393808001904590606390795945144039430043005214358518090180488896655854097045567219063749264495628199295734887073636372797218586571819753114862721126520950376721588851172371240864154672922744193598660076195099858534070470739188770595881528436347968998439796460381477010562443060052967370916074074424091334382955105447385986848202155021609713621095813768723923153118297257828784671104978126064398639698425175293258912399194288478108246842400556156852333832845312253652346786481507381807861421766345697108553318788781144843503100952414646579087718764212299604684563499899593914395218049162268190300196157584373257538384145444251908785919683117760978290104958680647731488921066076396294969533524978746219824383815482117184385487886509304538492138425337919552877915878393190409095268657853154591491927086036515528026513593484808813811680717339435401737234741195524929227312968467176820796778761768078595001207302013709016031574697643978341420278740817719402495418191374910104114517981001239452432371118870872342849183954907338006861052460193699349897567592045386339910064116006521995411351193070780807527062438802254811247351960540654095390849008760500220445421284304837127284011709823623042800662876965919114942394184873787708204167290184127120275307562434471154941853246874212412263720822366386160709219207744597212801219339121366033505885550094895005443157505125648838666259877441321865100873125875143180621738701630497958787182469762138505423808089243268557726799029604227646279422344043854550419806063748938427709607468488386360246998356327288687814201771995501692255610972913218887087418722230589094865303759732842988077902350386490778112762858742050902200851151931922885421423488987368283470324729397797862885187724444939376612449506932673914435354709512645565847779782160779377629491918440834546577633528977278890553683854278715943017605940054317572049969013838517114166383505580959071349091644863883248037734585084931314571011305932760675042031175472383185006558877577270029194154954201186188342584475311377291315138130981398963905834814805131000808153626684719221938807494266080181453050865871508626740443652544206323844632580063685426640746988800234575758509379970114112094397228505636787453216816817361697986114838570894557508687526065028594713343921254064446420824359715628052693651924106264485059564520136616449422494197737667763664616032078172698751964780167892482478791532268909380302742722268529503919447502520360870963212199861011513516281142195278163344548920293515529460845909420204237467777356440918670472141246050493411192413604294610635175014282511356474926548930813108513944893889118523431390609380702509905427191996394814422030023907673664124721625827685119705081513069732951362306435021031312807343115634055131494926261685523793732622763166930133718911674301230442818270164114248022793540660558905893649476702544093569582223717577804262399443979470725959799102958612556956536127769243721807874528901963633666175549036340873211427555686945743573311724126667457093233285178985516133928815451502148241423877489184581199121230490569583659569158071664679976518198068795854609164687334225334635101699389364601657680263976702754626036574198330330068680737261590699801917890719198299405401379973786315907635503658315327966068316413630261291630669136095993086146376335073256588657704741105457158243676598332375611637393754406813852674553773966855222885866116166256059243471855003102914033256750032400713374779912336530867311158764313585692600497331319227190884301068689488765194373190914160666007786427055771765168422557447955968968961184434546095808282900872483645156956357090213669917984418668218474979491418393613076048519579082533373510556666130412072515911626789243643809162792391048816702509959995378585427802541965976001863438075932672600328669408340937580551277485236311386638495620934336862602489185391422428336087276975103283503590454479376464774817836531328359957343934371213286001047002802546705615819371345293112202264019662599245872119787567511012346445990615070058553692577182340270343744771318695113835417771866150362002367442315973399960999196824018958092298462092542276366882062630144975765434482675867262450731017849851513348846178522479343482457593717368243276672302299190957216955764827106434474929633810304559528818113365703489231332611089031938160814522162884989815627911906034545498278810423596342955062088525868641003764998229735818396775595919156898350451015957092124323706649628127348497602890163875347299855134570748685762326289095510535170574055335647102648945529671567212919823078155673655483016117059002279327929355013534338978273203579807237255994226504751802663067532580708353705684798361612092854728617545323235781533727429858228306311625579599365444213994988927903166751834223647944051056318739734803810004224128231155548960210119109671887072636293894291024955311984985910381835834680133122986388796696691960348454804535275617209110775157229791902704483112057618035365454314703284587813596586053968301359941404489248710653284480032305061159442451028797731811812806208686383716499538719101328170465640083186617023522324437240738719937541343578508483295869301673693617146420664501330112372072760963889226997188659027277334098151745804873454372796891302863270982983713929805163631088511301001726553584111166351500555231409660021760360046487959414143418030617178699878063978175687730434219404224046162295126193974714344216993497199235672282320830388232154029433813482310875880281944418511199364155663089972175664659346298609804882085566353901052402873235339178890317943480467370178034952885508273063993517138437274661611200784735861790151549273127038013516010833916443030139562766271699764603176290843363427692778910255124612662733251003691527720509500035112317604519502926300134933276925628220484220341962164518693733842050944149350836637149847776165775105662583811500386770403428650267527582142901753274170217300464053033263565024532732418132152696531664099599312043647314084493615896540948478422612978518518752210909174464145022855003198790266428272631343686132198997594773875590971791797720646183045166891386885855941799903166577907070809673047864546479094829396344950503360201087885403385700085725108856819181509907974547695653186582617153105784359835039902184953067406006025968807562473966994955275364176405468399237164272900203739097561238284119915288067871693380551650327333647553519892560899130045723855054451535135982441218777558748303657133916172538856796535999452795918309848896526411804120036542701321991857187796291556103653775462875043367669366778917824803085209024608341409717054346115930829756971006823604533682892905077463344181505338324131927226404103518552771672244756656393001582139889005369430321700742571320236037314055941140223341155892597522233792738377868872972678470883828366221260579702700624626784632515789428559026303121409722820356551840515032435848376588606114893554180957240048151816466731685827407761714185734889281152379339938976013231689883710717566354707075049088214330145985577866154497787246009890822042952131971437213411496773904448589436537846215742032825739777386593355845626300600982195205765499575978258605375943020678314033326900490329642977944581979340456467131098971809884506379939378529194332677604058804958285048779375659756749474943173974809690323031823468722651863981374306473359591271436552496884769018709519901032872208964434225100169577644079747825831143319788381992886274640782268046996643706761473817162882546176685445660732439024762535466552717486205042720242172380367445538232907398168326330638058655405437923305844058124973202101210366444314205265055773559019875202784405334064230072221203448286123160993459304560481461144717997012984144925962907997843341411651209364059030527671001437190728550941375473909739490371458281222302952138175007482233012691760626515998780083446540116737296407249003836448877624818522420154805895988468241840538807917020775960142569898501185227552490677661087710666937301931676764998255594622546114958681184074312930810486088669163257897207372166781598713267522987379689429064941378247356435523813482329087878542412382995326883815918715849879954360392375048177557217352144193396391756871459224003728890814819373440450520143529665949773179386125905534065279134969311220820916397493887673112745361795664705601332846735893825152590239260201422062651876515891714195651545579875398967813000673834394953041538169850178755697096769347645485369670887180984588454798924247769185863114356405943553756957532767995747115252926324243833194921378146133604289718057749115880090100749532527994130033855993061803269340699888048096876542193094712331666303459353844663078186468829940197030932998840725328291689538747188417308920299506581297281668792806912879071951362342043077292017230291698151291116244408482278049342350668501046685575028587335307226803315223456786093747726748148621538836648211310126979233041316768094894680543127116553402198779610361003207983363082557897252837505506435316782064982235523513460293305056149435695308460493549046522469146614197699146721294773824282437070163834948752838456888132164292217903313964298512097130816127618083966075776243083869110817525449938161506528321981002206811735414035966511101912431423796877310037777320671021925886920704033282956866602154248880150327176485642096098526361189501744868663308631061192628849693767418288557137730308488114086922343362886897729547258443741873132286974451560961221154514621952556824053716465730784911791992805255414436425888329751778465101501813911128372602757194439041443582936361381561638999283749474856466207534573220734106825636791281426216424236665559513716599806462230735411326085959921780601201616501049295331832326458413269436541707823350636457729521512631668901859066677627900619826425124288833781321427987757412624540154349632762589474846022927876004440357855384994883008069066046277730160414052831699561822843211379061117998201670958596002861466247736071954793834378038218314042122464204360305706995541459166437932409343095497961130116696888285601218378064689714676963627953851225760338975994243629051630640082975399372912061420685002272619369814945612757637351400004749729015650507607384862415453217301302813855897536695589876378252179149176136352252050117527919331782639082034432624628296079595323851616818694960122238399756203081766476435738480879966837141512297671377257618623921281957819332981250364206121420047846605284435546896082988698520102154467878682325320368598338035371904186900309205814813137447347135184281578049222199707823871420104024382911747317533297819877512791969161258053643374964870256734861338219843849697125662954662956508531198524537292143915894854291548853394883069759815301112633086075510028521094169210582888139190427597384617960059779371167383118416738536741707299802116363772287606812665416577142007631943004889746208293766951491388055281348717005139215145009501130062053103188488065734706764865402429752104743422730576576530602099626490892837705242830742784341821019228762239514969283291590158644995401644588174269968098569505771943327857872953999647461255647775783298850615210720614858019523163183133039178272042276150154894067646380695067425594668972851256601737467670184446520695179246321468121647900143412110089454500525873245190702719259812233848602802720562485967010484266624083726942631405318593495063424170332199350246837099124224650784838298479367761311856682845420175711222544579298687676088207614830857703683840053346699319513939655327888979772548377897630276384601386876914200477733955772097691951257863137333657121234654775804155719039309018847044839940555748784591779668244803350782727288326893406476908495288174102255990267315709717750526248933260679582617589487051158943194764297518434349130341210288272316418348991178886277672894804049673126261916525819355014818083518974428624522281239526240339498091881755687169661135660996418489964038847290614681498707473065357103518995001469463977534325802856800124480108870851354357868876307932745826349081147679314485307673301887452121906045454377934203673686046278168095472110853065854991548514910457502533005128742902794575992799737119953899825004164231293976356811660984534531173304574041016312601918049964721870274278649291671968843216270999282709365270858760591138007267930568973032697241631583573108134309439002626312675660791151092095247424670408454182207085365347753336628724826030135074950746258362413660050440049964068733792593066012652577210847812166711124102094564837653350502647648117391654860669004107560180374944915760939394444193357655130283542041522386062089127879537163129099297359541634957954093801304181042165324918795189156587860696184408348906121649296649503948401960207589645983409885258926827853554991726019113423493831186284017266836227325014973332614149259288054680404364097076318004455408355617188094792929484651086817703828526298028211562219683021243840831441066536312299206860048265106525189964756552555412521211759102257537345342115695694603406220869134399586598641218715318561610953105765448489462648526316138384092525482900598608064882493516535748668489420403884470526611068494294197683051493039267331674597626648963930492331601960409011061600273097985545056923663213096403928219406026717899707776950693634293793488683941886753188208571752959384406516855396109737358721569411987745229655954364789514010292150425836336869388820159947321314154214850008336253564407727796810014434501476124776504462175366830981595233541448711829017170767061488583620996540492212975321401632260184057062046297751630347618781833929818373378736846657734298514130703518869592755661102495158951852790579438886123233526938060954487626211070709157298684587439856357257705000796606949181486628883897444728110067726754301240209618350785907402760446450047578844735285717548238282641006962354753773414973054833449230210875234620599687711996935512209887040547511486760306052331122036823304440439408520532484648953895140381832588059906378026712298595074559678036726777712741073013647528791040892994336706352045338008738329876365112687110156675076748859668651342690219722623973940887033711250172084116099678746486346768168099515568574037092161176070699545750954357721820876750202776001231338426276626537354296969602743241142671802818560089059966630896124777821311227330748079644983146330542662439960794986775700511251643724957660214242304314658232191360425613768024372136425852705506443771444224477055807056890872215128776228588287159255362842686703471122746975349283053246909834887249918779148455367536269626764998138721898115086070701811028222103134716336808431794249558128887695399736404379414533670590847495281291149500662464218646254943939958083192065645302605299352081165890597586303931375857424889302277135050446743809263722685117100758663013107692177841411894282272065842868300409162818585066539776237098136771927923223947661395413093669289499000228508147497459326594423460062148271626015943157023576110426181973114957361248636929984395214305248559109674321814120962090125808517707144847884836838037668629032043189058227905152321002181544231299536810563875078213288529498768875355108476133822478509701014449480035144432391681589603461098841769367228890983758599120706904751405213685618925840691497245215181767826782263699899585530855659617944226682154006154825798750512709314843317879024903124235429296551251925402636458320800852978040771525036643425864227307902038118118433072583112192098107306633372569273210804571857702317744690335114140335643380818291316872237580588440026807476462741107430518523506641579564609342280036092290301663856642498162905735391263798500209172772419378792109266332250058642245999087663684433264783975953179680227138673177311281486903619879039233955272422526015553718900227842269441770196258178661911225272359042970063557512472037812251718512168557771226520975411342080963177133825739602814512878556530638733573247450120338012268206601279653634448106230450518809647196438015916735960837151984043324896114925452264349748769635825194700676726044599586827601431358860501353302314837440309255117389684269203111791474944278748203670211321766296572454327972460749682724439339546523412192152778517696256406146189086761191307204008836519969837450811490450879110850650910700977456481492869750327579338386449321985315646941194241505790549207522190529115192787108852540416008675376499932149493675720829812147927599954106386840940022133812220850702742613732038898471973328245824829168435723650806712332252314199453968409084305458884465446592486553043678853836673998622009218290790005375420717760705645742529323814869915205031432354414432440488661694199478489174824494955882063726808589421479449373725396893225983027703747486686965174116261297300642410225949354502562853501091944672411203465781512190217915708534661184878166649083087444706840779117546917210903782618519082362304994118421609686990603680932378122078522683379487254729311588764508213669343179259695395243818699293773071684168148953623678927089633541008271461031026714995936355983436434790108821174309696903274280303951108458987352381952617786119971749723496044856912878045351851653562585513451667372099369927353045939211093878589807667046652464789308478845777741929548793862515326541817795605138387809442332838085414698488771049414558166511044488029362471350924735079441283268471011087206942894011769308038367202845797458833084895715996675902153727798919024712161201400440502059391403546281792526749591886009559579461222817768540815379314179160792515609036681083081963631902736103600162518081243507380613072644356027250688970404796698469865660900532818506950743723046999855093067175437044652667428301579203836597432347641304889181897274392066537936218423732905541491532181208038195177111888223434659350594352173172684101376707964401523600114782089845806291154036745265647092819280124206676675846559977225669102330922050295032272315017911775958271961322088923976181586706287699958510521811826303669874428487832684340273121932475212268390528663473120581731195222467714562167213479005156703615291630650816659555961393992922758894048867054503941590389445441345466257425336704543617324063119670685874376745025859830801845039858250388544584666738010666494280988408702183906137058634528521715709055713443105845279198615164563633388155497779068254705331611121738631143014452651670605406080111176601278236577271082166827301959358248609299492154645557602232948905185285405717774205652493642374156040037223173167426607341728488284807209296468238467467421834256412603696579012321766923786664316135175516183517159196014619356970469736662443991252723856963021598193459665759613003630513885008646562679893950600174860975169318127402320933924979799488934701514237947578092737312322028960538951998706141087705813272537295161507197861401172290732582290276587959773352321629442440943526345209363037951024398433336442063581192426019860854347230186909332974888697331954715629575130647140376668657717508646122699028724649723990067084499657376796727137765827451845884139564829260523224221187364996694683713807578103641194508886496923227614532377860773264325295975694647732331786987813921118327629119655148586018714861340754549653045722992493712021651085779346339464222587922208002041260757306312533849398024796678892208814518530565804223800618962940253267488569855779964718578919728621282799473594644143154514964820938674620875386833476522334225684362769412143446286979263117722891906775749649339673788934895663326381651490702009316432819419726640699317663726186584538930103089472605489135912666773251972810888319801261125744249988247846138944263785647605600632158817848896341428035766012754707157836760769062660827546032146398038135412756042512481600604620812702775405210545660267778129553129001778641881773670827800232324142078649136003501268460901761722460133806414046255515117696625646544192329887909997331709670791153674854011198561040222685536701079053582405108537914973994759130912283090291045749463258894586489888463229108485534032236781758760314643274222939521618252207974771763828278751782347985342472700109062866118925237294405244042891734186280152047382301776516318583414775715419082923306870433029958007274235808771132854172077364609126133438039204849557257948370399563122049376570748980119928743687836355160264008352373574112848297091866026325222018874662448632841711551919287065246815761649272418961535261042481446013286794592271933832694369181474677548893610058954849095226371512290994461908390075026646864851460517591848815538965558673213511178644513585212862949055984534492663245354514573772051473812546593134353040565926190218286141846705738025866663386481094154210759655829478442951512610384359959016883736735035251800619807234569903071346169859970819857771114308756931525401472079869892518422016522850010915100435000444609035040357539992691271556761815364119957804918168104194705089342106574664008224966550218520513257102963616129952568602970219059850136871704099214262659682589926654789892500339948211265733152023491871712826538411660292650903072636504075417459981949696855563799466614552926918931935265997857644259368387367648941529346485731106896227548475153233642453725796897835570724953346202974813438302856000332374925548683234502347436631312457032642313760098097993759785329065305689353041536743138650888187316399711612763432659823227181420952343340349982715337053609075533451724088133045248019934805790138166385191618148246843739838010673345050064523557646071750315351361411839573470240053657861000470550066455773602056619320487090953730809061545145252541437201917646674655486399289310638701165950849312952661741413967396104453259414153007573461142808946822741032969500499205714146406502416303280146122299822368521403817379417554896984837685762585576908267156501516929594433751835725673602690824009983371310303296105728262546773306405982150086720489457147155321639968839514804438011506831373997143133962921953390894269404304493515324506430565500711408997161176654565098919474434040047501780935650292513896494182769679277368128218496985586740749832646570522761770456820725017577291460537132051031842872952477470166030297450332405208611821066457335253345320773589833376653200118226683086791826233592172090167344510574801091791831717033553624506033422992278356102025328483748376099335486495056688329687483820770452900550927783642697179953500449252711884581618448481467452752572030623570998973703050863872607868047390520679004998987400223221702127452157207579462013221196700464017296436322914258828544619484959624194224506693662349254351083204902852091307960549695902747252759690919163069859199867361714740234787477360588393686733054103706391092463479495429906791969299858698713792208254157699119173047279100853396920920560827250964661537289684576345097008151903556292554826552136450952332723101508086944233598053050828584234586697245996070678945239946617689254169321360473109384866111843165306234791778917058733168076199097382721149675374679890355893426136540640654076182888011751477103934421297992658572004974363051754902940827809118530022853961148026284048061909466308155049651942958342859260832384803266061747025675996233664314815280909800086740410146469137386841651398383726609748782485656823188380447103487107625186610506685842506989658229022840982379739590152922189026541089125493412538702017461156055800331462295155023534503692349471266275449767478732497642809594342149737252643314408140546198046977225685730530590409920216985846059667334008383610636744463927519611705888023343423264423496488197770653176161915073414579160499339269817216244211921094132411779065730298167923533623891702298152914562202823263177066207255106610188920075066120845195066525836341617517435529763995024200524666763534151892406225692033947683968211417094200753320011667773884955074879802358547987324636197427609018296802359198992780777108093881131266310445140221142010942874052188284008444694801491272557700219048507169300415838090826277768034457412692883972370661110661389598528743883631202196631020990064412589198806748459484309479153471160523117323178066887491914813555437897102629244288211021048746107830892108847417392289622053664772714439456023902544510407253019998682502559398836794978728234351427533035496267149222891589784635993845279325117426355941829920205827196370016592454113156755339276551973418700745663196247589939262193781863886099485664117501581803133143982004380401053375039070223274418044804704318996749419721204100028242033055379851663404784459261159454671800292671287177594707387602527752089600916151559972679974933913741203714833440640905652070216720862456175126713034507584510642216111437759391690200336922959071758795909855373147269901241184103879660814303676660028082508131889315818153056472924283495687626345919559839221996767729406708189248659639583026594470827354780088154860165819821909376213438417159513629441611019664968245957455515778030580513843550039929447907226690346763264685270483252569071838019419326846483489799505848866215607648293943276898827848438771161272227447281586715602736931520221642519744953824525503850242918588743725672086984437474477002407976877323547079754966446614129408479538199137342951491032690321261833076222524163603772150729600182534829084514389583313494072916766099783787417345057344561181906988610491208124303749694331965493106156657058073058286044802702097168681314510793776674452038363342796346730730833807506094026912435182509089682028454059695375633989934020643870493662283072984647758285573610613544391794678802258347269011712418434244886359630658040120620493963919228904274614021118569936935238148194169437327089052507217143733831742808584087269831883340361519642980735924645948658159225380072001112235228207636219417040007111215094168047831348250567405470580926430973637010531278597191915205423949799257823294460585693390893926660929305667077993232609393336720780796491567981013579212570951704526197180788490449602954825216582896255778539905977015514498607295691933685453299158297185810953666726843125562688825784490859840974610319271674544477703432622440377543250311247202187209274693804681218662177431250210211652719028943113325507487085273038352784122620251024618809534294945950955066844072172245466452741260603431943821308037548415735360314659555315595742181645275028604074384512868851022735234286344931933995862842546437052986059544230692419273063422018844245412390425117652869113251019882784565574121335089168467847534233902433657257028613532273885599088847192960863541662447752440706918961757484984589634545528866026843245741777986146719530757187905448173939510287711771447428255217819018917453258893012454589269583592287299462548486702784468826071387992054016889766350003177464700735795728082788549557086340787520582855793210427463284245789540587121491668218512376000410916282173732607289550746721982359949297190575747825660350337462903766469384524099269049232541625442065054447241993936903035307699723095977642244725832348550539316276293332522790422179618493888880105803817991145113989664580008930197676378367367283548357130014303054660465384774447493248280098106331889633666256283024312586200650819212251842442047861322776589625439870563482651675835174955406364276774244890310310761476256282108780761000692872524473823842685779378895690676125933151248901085969101850876578908202308222251878039060194668642743257867541527564020177190825254256914924648509363232882514071524269947358610200406779907078191371943363125654455488395435606239253482758605769681950257661405754562255017123123321467432204232153704050661037566584934253240867227523321769717900022812510933596700471484707038750682205051257441173363476569322403536900047175257623934289688284511787828849327125495902971090564440199521091875074117373673303549449031412865969181931406963235610281625120237002373247871726471773753184487833813442894176898777831312181962857047972170822932989201675783411852098807923262998147410383933833759497481036837085607862842490877049034476130122418179072537799108023035750819424062301641055503948517882050814532463687853266641785246506013072211128003789760237647952115982880696475044457732670858495548172255962451370884040660685539063103508483732083024474048117601976603722164240028390205995953173560549305139924217107613216921407805664290120002248850178376262774988868597493392989651651557340866409179551616792009010401405008495650604576753716995962950108937083704575022688287651667531324860320175468795582426616452263546015591730794732905114186907769414513196443744704785673285858265303639515410567551638122898934544467947101397760999912756435916304863833767483167040089653553499367098536457040941756109173348805979677231627037037465198276896622016193113448038156335525676479762088982911808666536029413124529913210242633819332328135924194296524003545713306892825761310119092166784523594351010541316519941952611548721979723756432080793032660357349482269234803410371628440136115582250648302871628507838337522340071114706159641427076609013763538033166517631744203399854230300593516245615669502712264273126935296085480195860242538622388232127099369297919160033397805738772418556682908575314446181931057843585660040007647172952907770042365777667647988973609974845658791219147791207430139532293392504495803912932167625531047377502055174957824223235717897109574876286969466811423537493884173685223673815706368209173619519498245427892368098767754556865420180462626062673997192494757020912394624253454249058216532922861449055890353706016644778729017337370513798702709248590925920309054964205565753522210915391456867560844463609389130244505037374455952542194079430245850096628915551365532669980121617894823773448541111593428810695730220813220713382837074574882024934776352364778081546803134962331496443564130714767251554436725549581419165531128234941988686144501995366688403650307356959216699013734106143869826771193434187494388889917873709516053200965537266813907340112704147145196977457912722682044926715597546547247288171325875562037967432277067051624244721102469933814370861680843237384578765548565641515550283701685339557707338570402373445258692609264053388293273481583353337898361022061662243829654055641320712343891923932300457575336368313371585186026849168721047904985348890529882073381853934249554233137236675760190174324779772979308542530313891301682464750408296158087825939444757209532617635399355611617288919444361452632499972332201491678390894886881020516290194329629815332163083814707034836208925913203391852638047123056964308883372932978788382450186116929605300431001332364389164955912118171199678966906587135165670957456825689347220967193959707561438882976066102392237630811873526333110827538327407699996218423475293652900501298024717427841386547893280737349744017527713674209694075701939908134231588379609044814386157352221147993073026798520908970315587188177886112899903996729119620262803824311095566999971391650268743566549425228084950140820854680352475947150301004291857900026886321505452910372899196678758374780768601244393318050074814558250904827405559967159223805693764104751313571609061191400159264018562833277704188094919988268541331827424242531919125419880042474539713247634974497288434096228516093746902085434496349843457562580098208418652263539555049787083674800149775608044803818123709358620792996208783289749469243868356935083300096133738024747424839816142712000141541418829926107113606024495448699920797311392451056646264609501702737127411100788518353097194941335339700283176611959080290611471909467895655994214233988637287897656098165672285556477370906350587476422411057757415474134735075355607309730049734616001202555387842683791725015550140230448377443534327849458212120165535864898416982298851968089699777567567228490685118717557403746602343989570386743686137645584009368099637103070887475724544781809454703695959344382528496605046797887670630216084497729003349356535829715748202288159014548434665628120683770129755155536581641392752715532556156358770184679082203150947418761370927369645666045137946936288313911503914351181901317528541536761202717143023627190540679967153980899246879267900370943344172808039960459127656807852188368209854014733216235923060596015494173736853452610305301313537810510644833087172577594588031870104321523986945800709793237850022979845625459060161256279221843520818270281411219433366612766739395471477245541277612401138804795639527159061023794138117876968731097054858713958020007172278693063983780117804217586399441584089678365139954957392395292604047928173695642253930061781398116355470426804323453790718972606971602480758469663620845628176619514508164220587229630278447360602281402462431754922700839197760099618403766713250985447507980858356819459515482730998749313690293864623355371362484457336566201502364422000015325121181342863204780078875344195720844799103214645933547603895094038865920370312416907147393091173956675482578845183244494507453159349956940315263104257016751969736259135224219589205336335337417802974515856760232401909768011978189254283530441672316965612805108944575493834954457036384531882443977954306032421346135457186052131348653280031185129251124142348151074839436355806193648745380074320649013651439787751195148359054377783813056491233208852227386248749507591228397450935123265189461959000159020035553407377394619621684223771221356684964120671902724653341678972464461223670869264362732673674227392576742594627654755612204468967459306769447153444284836875769212289285988058999136349756173759333719128891095490795952449385317266007881550197162645445260104255126284161316057468629509847879947512877639459857040820510640589778496801284587210514085999513171367578276659688469014959644524619585266161921931089691161416813675183076902085788518629235017285513426385835397082709093070386824562451906946207910733349245775708190759278636561659222594705117764075242937829937191885529830061213760106449367917778799137961291081471595267534032782563565119129148497788877242447199775366171854944573983964125180600083531487449501209210514254703962703787812600736397532293231276947205028267390892254770179064652550103833207470099945735266234788746170364917680826276093275881480565160872401234519836238132965336428211665246018707259555410575844170407080867899967529598754641912736009096217940462624298638206495962474279736226674540737932053925624553223748862997935169375152040652405045433477205966127424761201781892723773218083327484861731579216732041366629180679590909826798866457223947482290711706713427315513842613538084660519187020576429732055862332692442822948714211260723144524995929256824115813626336541600741110877837056551613714924520233969288813077465543636916768818637261432747549315739991500499775294482299463056297456874988729414410900698690095353211540774878748597619155732381661449037404831162017863404824253116266992899046531087037444448751531558590867262564416205316461562351320028421821312717751629025363880311121165084558779140053289403770110220499179501451070768953885535602288990745447172129736273447193960468827028130054953215503770202572872538354327099516362037471850538878685013159799999432366968249405194579841096549449867329450856667266390799152297667677459270862099448228043651726551848677632454675669665701388948255601164188414260622112069006985497927288686255128570526655086921934776173499938572406635156069057938785718254225657957887704343463028164299521808279611987082815169241951044607378437800385522808184558152829199229164454962783387031480377724904999741214760523185735077040969995931163856048950761642927858157823711155787747667173643656919651513457489836693896108637536075802076367177285542940547246031664387000483282160982383445795411909823182033498822243571152235287165980984429354664529201348923482399692392264899596316161202010461697907117161773714829349064640435215761844560095303869241928654708395403355020075292419470687741507054428122900412291061158454085916233841395821769783369951224110576025320923842045332092402955891257167936913718261297475578946241950803995703324661717064236794261764045767805373979173646007707178171654727121188941061969223157529774483030444956500459348031661084067032698429792854974401870206526345453608155665533615932668966501929716437023405059637031600346367633740906172677162074377681599064918608169859383735999542725610035661574135869514341426211888759999739226542406579809192223100483649276328648613588216632367067211462969972222695140659413924473037399370883237179656599401184580753376266798362128835574377107043996021341721682713761790198659463409382324046265498370318133128658005692796445111886322922771019997060441553093667277122159076608773103885165807380534070024303717836057246285074919372823625715515014346923206750999948643942930884708989847599287225478693308449757894322860624271097390377584263409768704729593343977596137382706666387301392895491745487144455960851463313673917937293180694421176297480240936054277984657732608008315690521789168211413408378796757959516019860926495622009601246980279877989676826363264260997175403950690916875178087168511900011340935407910661631422484957455096720831258626648034991151383886799280277786382815396999183204274728224918056571034708838718974313862045009242096929532200190979407685857402646345994754992538691277930983188632063853315484143845666473138469907418315561376078445984699416820790923733585110177732517967966770932314545435728490962000350358433949131878966199841123608326509020779442577338341543130416230417474109557992438667230935074008616057173418737727595347874297854266683036591248611328759082619014050561858582704849152270448539969213184913291810334562388988212013387051171954962282684531828809437949082619404245692931035154327964631727697731370295022097694871331782583641270492794746071259870296190188865278773519007545920712800863586368441251722195642870128090921328411705410643289569499908270411131889640342365152997328073981984143112776758674463341309934645264251304830499817694131971114642071056658930560649636833084950401155995954103450163539067662063600119335719059215325506504658357669655321652145952738622748919587361609102246358815173354124212949456601444768529705190210727415920151445713487648923931021829733398722663751996927909432443850473823797263913328099054100133319058629517591416950342858005813261899937813080875971783487810480652571400270019694008978212915310277020097787167336418030250143472073772419971121571326368104034128489561299049614944651934280384462181264980396728491520106582253135201108220659109286398063660644931474647852310719198054943176861044737199626904371322644574027099197510938460915022515224591733066283312598064178621342466376005011761187945890789153151371708235009421190252767605999157741959297509257603382593982440852524512840831668258947099254591782318444602811070532972045446600055657474647982140821609517016967473576752687146219420311263368533934067447740799836265614248467446977464684770029993650461754430514133231510110190994906610103525151985743858588286760593804720437275852620458024166235004017381184810593524600621353252153167166441857762674990822398652392698027900700561578726714028545113444944841107212604418652979619954476895455165363625718045494840612403716946132300087830509473439083242180823731844087510267429980463832466161802851448917844527006649483039491428454477737407063665227732995414444301388451978245098010282170809919610409548090059953212099787381604727903854438270922465081573879555891791287551991999004316071895382945742933520696501075156161674921920971207856483765330930250595700299027932848594241253755826537541086882567124670759300122076238484198926036636257332441150841998017955602391695816496132411989555867154569879604099005846206983259680235246257117141788664101371361722078880553023400538198239206734201854999646543710578878816116787538759455951603345520469848677013172515157104315640144800125229678297611451895124183840474906440138386456546606264296262948875970177472198091194521942390197794573201687273997908843091679596079385576460652847985728535762829325187162243239323740212443226330611544238973007700407720127284741052961905877848899030344346846451091601146519201047395169858756734138551937541296381785250386740957128629448889764074385804555086270120145946751223782853485752620321161225485161899669211083050235105506638097712062855753502603365660826502321463008896294456662689117444366604938457395313326920551537363096003380703983947367483958300116656737318079038878698320854544080210226898819057373389407208381562288178210614405552458245352248513703868463367893196642694378715055393618171233508126963503536841394841999185057016554316073451473631113572289583350673199878087270794601585909644840998715852951362362387388473266165678110180391312478418408148766121133137784292236068559471471930941897254320289293092387546722594907560625350904696678906738449884962651346647148081564581742359121660620640458419213535794797651069258304080921720236033296890785575045763421973493977363323761363257020986991921667122441873331830292392402196201801644515270137753255192318451424111667266003850626698727846399008771500117001157673079222296186780627733522070935525041448161572251917398192261379302824446401206138524866366426281954305008098358643310476035831318912035034982053605553995487133389663663864090010375470503436280239133392631435523065696103068415954598411586787105905928320436217739052157866647406491125511599485211231034543647981640350184636665214451348087330823594975156891216383094329715449692777117483053706799182174324161723757426070766528993630849983586214850167985963877117536218072547457926372428733510948977737402134192538694619059916783112162659485665276101089610847967945472586092329126835261419081409347364722245044737689349735974004443715562141359962014731209794025069997293893997665525031894332561854087941288040616838295755259703841412772132687298071049200713884533605028430520600848258027258850011926577423699563275279086822399951465342515677402734887566646534745171876342100007346619836098638306308721848537411736409771931684738233786415726188534294201862796392345251359489620317250537931811081822282676243390307081667540508194908096208995950898822761082292411699223426875463235066091518343121251910492062717938470777807639311624631933986565205980714138333622049847330420736887460826301385238579208554780699436263846000825983603535097171204114657512465267717757035511636502160569185358490113686280075933498581181840144280518421369961566444408220992609335286559926535245209744542033933077620966093265550099420991889407497514573741783457884742534908048413945408997379156999067829016021578320946121700904734472139680267076079093588519255640185972923202363130570497997525703462046074603779690671809206758506705496318726884693957550772929587279757866379723488959409488393176334401218372805568436492953360906264644681732591158584244326182136684491599467974133448448448245723096876182216528929968983930993057777215725848150957590228073377787708615436827056442170434139466652523915488063264763680436168310641902235470044031936437978439336643471507974300929539620080129396809719528334122995391543139128198259209007268083405238662097603398218167495961179626901142883151883293863890905239045944582892780217123359237413163394703445350443693559331621874721039771529443107157592860827235638018464617721538603496934494257665442681145396463406296305462202697617165143673193673295527597321296816406198781628511681539420875233409896499424428213355321902390574070539517365067263670975495248373225295790798048469842336011513874559082065144773752942522528925244665213919526875687458447806023940502692471259818048454382615671370942766251153791047695946307142056904386363142098723956183653352555989511650983849902389424477044895650401206956465796981169339774745518902518167079267799005882297028359413071028701103098215646651120712899422027616630395880652280224538728956265393495903139351486370806733420178719881985074937570174058119903751374250176180526032280473505843719888101617546339563788575771588949394743415080998501049749356011632316780878381020190386674092967937080013407115410472924389073377824295004607832120091888220881751136449076445794891471739665345097802014965457334171181805049476211795615554209881094297870011683048659577537799491364063058377449149046348222383723656894374999441279881859775308457500176928546195166198164951906801438018753242696624599871715584181279903282374442049584240037618247179504055926807738228597668980596004858694386944128856013459175693124451723757921562225382225948125127397758154673151847559782868038416578589171024507035817844124808635602520151610956610317331504857959122312823002707202630499012324317902864395181234605827308514871757778928621100908637062183016644815473953427070551090183384535530016902073125994049273702984893107237951695792804768845150410691236628956167339853295617036742543882996369991137986099104998012565850234380804298046292830238888310762809748614274524152417871886748695935600856079050499884186622376391128890675697807054004337783098146046256717634477292046415290980279664301660208339932645837569021698339505068409113180202070038657041634134546754627253386562027974860936338562678230522363076376468620538275041233636144424873009102987516668510296902723028429171193029023260703376779283166420646750575309933542956485798739876567091739155387974588022367652499497177474963380706359349650249623808839751071606084884258001649756039114048296538565797088268514701233549121941049106438097607412758566841188587128843319037281652905733231700750489607086963377969624159012627970474563600544847769505356626686997951228143548981027900841156977371721377252407738671426403556275461727040715732238061533684192891577636968449747719406358790227072814704307842577218590557412255172960856983562487760460711262139505711368882220518808560716868975591283834698332263680621750609723597501119064661138678098772444969269255983849601329538192027498466932173960215339861874714746215082558602270145627648461805308944253060841978108454622645439850948865634213607606798613407049556660222913364870382789275010729399700606994488817803259041168298266705072474450621381684232885523062342503870872952225303600317765432165761625815050463306838940395677307434313023975052432285342252171357597757530049897164110295266585596600031909626444165074531666011726564566137326040454448028151417230108306334408305547697984696000629761985456210052552410441721089638022343847363579843878265782566928460313288092904668199117693399930609595152465598471943396362577869281507345664351852974596512358741632831363264044374046000840522153471514505166949822758960118485957548066446028563586756209756450631887879665864011050325829420180139430334906011038180084067390462446473337014260699814514561773739847586506701985928940029654830601812110843278793576143840429903375193445969785623615593948552428974599931454377613625375894732381822122372200605927769944847365413321768123071653341477325252158435127444210717938623403518817270026180463389086878718844636936714895264212600091493593609772758544958029259637764671438925908017649896069042065540531730032979944506870087189561770317705582520891556515095702617720914062688988555959574196184930802055793885298094254428124622443224660843772360247810729334235593674318877125408178699615897968934434145421644560278955038023189878686079810466595404694420503379896313413452034588658500980419238662008858978722326525005869918058354034064588248268833638157299953992467160142702833382971650384265861365149303457064601636914309623089845538270030839824583336582350566130343369900937651806499402775158992573258749162579683422595257345918906275532076333924053285972823133853924878507528216104233637733046193616401326945087755371325796456005991533513362262589620178523688782574068878473573918946584652803876461681986950843070234906022534520634432478833782733286632823979329962977005237455139901203304018799428064524622725136316320288878487336697132809987040317368161771268329854818532782918540273941160744737371168373693431414424369525528088558825647617550013959265044476757337396139845497823582775292135457232833052209348885029382239527279053453436501127841210061030018786618624103801255901733649021008113565408417628569902498407028932573862305229086446165527157124884781918999558805026366731763788442687027346994915793101804215788105385660500645438328315829752495287722630267000789960100517238929197103170209792746634730178521399995616645936348470427836802107530449929205784231136401320920078266545337863873115969062269969351394603154773427254923632884492617217471891724116015446071581189102516949219609259722536590442777470186298538167992254049032506553172436427319486180749748783423568093076800246526637633929290205356148655134229234583118877219919990470794920699434946045070527197830687484756974784541210843682036690189863734404847391820812249946978216595189504351682266161673637396231395053805516661342532751958895344003488976001532353464961496467354583923261379529901761508911997395241997404768603514978335928172418799886895701926822655912770134737292381741746017973641907746304016510469507112408905059359386716097469451879642429882495806347750817129788170559965488795850249228209070886275125400771154422601643491653381484842398365640150457922953671719663387425600630012439343994129775827698736491352033615055220235635655768513791243389286655800481165239176490311268341153428024329475306934464416870954782934273302707096687008368982886778490897149342337733415028707286595766497016588127152472719383391074988731711198576847182569668052085442853707699016591571175921624375553847761068231334354563650562919280714049766258083183806538983599940696844931827082525782852056565834090586632828998807138531893886097759767735248849358969085743089301578162139243852022529340035099117115902343075829330874751712914183624731707660970915211656539679068876843685222315273408563267966313274522242005081797657879449715761086422237110138489153885202977115132584206516554906467588260201654107514202918583843625214102680502936060919731566618921642827494564082622585899798309827051945163319693637946499339574197254468132287167595052626148658180392165870050660640653360595489948658328499803662007029588287511570226245808614570876540184744571988390375349897426942435455711674382242503089819008481638219300944934904718404240356812761932416913792400144155176329134723870865832554705969037175909097623407396437615271297996776623763611024009173691744637687054125743583781961535923988274691158104320622190225679697719251133665753315663972584128887135557129664533133215448823373629504151072393558501124397400412218012901920491124065849980954950638520715490074969955085903616005678999569739572361721077642591842283587880792832756728915776447857871377359162064273069257790905518943137459849050982845464881527685601836885041790197238582471754689954969837403308917338672694109411191070320225524237271280468851339484010970146465150885559564566031014670931496323212020650808228155865622298330940404486773620604176031013872642863822332199256402559476386074475920083857845180645863097288832483589450469384041912199670670509631855874206092206394074192736144233873274168935158077627403234078197374810524608826868124192910567458142441637670472434612287872297042317046820939879611855753509840866034971758653141938978926889103408487853847864616659533464287853213648227801946411049807664379248706135709502882832572342778896588332209666700868959709479968410449915113951774820920824806276943922401407328844175777584653635088418782000917551333216457391598395423142927682253362536824854270942398591392989480939758099008222298475577879536019191762972226954152163233412524903190581947852214994889059876689261929497540603765966708151133259232127800473391810155444797605257902672462427538122214344373067467645489984608953926457747247033531029235655945017954444503140958570657605915310945403833834197941560573492264472630835662873367153408993008149761395496559880195281968049081961772706892836312420693627616463608648910501887612917390053455941267878235861556821145125056933323161218730827512958786260529054629953219024602784630490904131977495909166850530270178081948608861519542837362356925118312521096721884798086156096881566605874761459476334115825722711749727780103321748365562252326249820165913214263447979089970213264123958805155650435596578191991915181613984016222243596130541829362237902938087447049694031895304766098899606487889397115358857872214639030112345576475135223980730148998128410680656959956852064146388133741553391371273366438282859213603848691976810400373852216011776310083086863799467253018654032379279188953597491884484295686904638348232417372850392034745030440785256806271787970206357906451999779729497107038279690332904936713344714078776782938083659653525739312483488724998203261354764441482209000587086023816359029870092508158659161390064682007794659151160991870317989780437255404976676131900380603778231664940471885473049234036583183544277082060906575583509424994091611696076032149979603548786154193256144332613989597944361222359943839966655483323862651874467555948808359530834751979875495072819169080416730681455315089419880360059348642066753900933117280237158598961043762660486694649753881809085159313385026315711635088184406742292861197284468555136108871068608079769244284420259683823349893525270744637436268073956383222245541866919483490450724360241539215409986615709192106646406790957808577526388753031740590686924161113830833596371807729722242704010997321448869004635316938297067911072639373532774867026495802707504713631938640333032387155299097479780238439179409881631060446219321267600981995150324557690065440523196504737962987581853016871325238232965896344346415546332031366081416210530906643267321619553425841486009615375114711179594951381596692000728049485405456574633157418238557370280706964430565379777228006889467439691795927723352245405239614504620969104153369332224187051677267441383004226245321915972362047624292448673903206009008758966058102714695495776668360066015301414361157532848674358023953914721882660150338783284965414732575807105016110969227382197942152257023267527800583405941188803937501009211571481221137390849909005816571425930951706345913779093304901608567359873746230052579361335122533483014520728623724641369261731001999180215973181882094738763379999208179406507483109988270916624021779078294186150321821170733265791510965270965944485947172211035437423005980523873506710630611988611068288984226258148378222224872221368039684674993066881050824646734274752173329688035048275067455174342139676783857644788105135568998431648677495275406468714700735281715130136138209962488025043315175529385628121703160029722308856666004825797881430932089861782117597629783094504049415407162382963328212199523150945672362958784241345222568259190100297266577653366772858353453684869773724111729996606404198087316416018206336350820056632209516151811649088144121764299087588366324322188396174673572547020377764166086460433633763440727364172883708749148031116009348648626467301771047789742295804360390873858503358370587466386227076218584123282832653367879221981832204049069418730352452213923370109232934641503004872201028591596212588345532709167765406980694291893961513922194192182409329734511418306913658936224847461005664567280652793623121547484745316924468380401338224021137816230291274790517074872307965330467208979206249821882234176386285018104650229837069393630874694591604457417018590334038994878421218752151678016158707303838736875707682235021342208153907976294031852096925526432672806210081684359319335738496982046562811231552819200562307875763174537690638956490279126921646779490617380918590204013583971134473318938959156563094827063973804240882845297751810928416670566836789665941395353702011306026922584648363344308691718443393443914819055209868261329610732596407465343943097821019144333188718940174422358880599371524077931442636270109120659717381758727458457632086644605928610546662379689538559418353219140191032939721720447989374882562570835535939146211026594627556549103834857503587639344837836134524222957845371034111310486164235491434012070738324539408424669418861579275781597000546178219042472177490562165033615594325528268982059670447506626142945028305514051067330462446429336278169952329846216123847274723402825673784518287891435981969090373538248584746307518143979009092321246351737415097329400990424498402929731927679741610651592233767243046072840083164051582354926801638095597146480847662922150536811155269078180686711778406240261961937632966177191019446785652080325242224933493651534230455659257708171637992232832160502917225149269357642120080778412593923900968320670173203150012766824460243456795611129675190334622808829961034596423418715018312501900758223716122493426236180116844757270652409452379561899080621123216939737204517520751777249506460642675212948520340514076361128431803390219306541487587041337304940805844577623015395407799034906342493516636381555096567286656400642011634432423821190140138181204466587985463569492108400311618873926258748621627031075837840058034925681807865554689274161190902272918103114426102528884389657057952586837118031711205724766812608311507584236205081400561141609967865050572812741910360173938117743294448460299775592928630744610048288152468118828275270392007692653025842610472548354178455087021374214200050512305572732460463457733971035030664062631992486052154465454765490083421302041143024468543451617568810321202621310362760550753659794822641686504260306693250635519971004018905813436756152331843731162501690697897575097542521854064014449379158250640931318851284345585349693013683016548051089714500679256955738288514765958601652106627647099247187437925270739035495511633367792179028724212531787540931110096007649732339468085634675772034580114932432243922099688940266519605463408393959999125908794566002571697144893146742370343480657877860089192840037479900413422690081263097746707842408898497713497776373808720329093361612255833299090316741294192892686370729388793109222729218973636891646776616550293763420467642168812523558712832865823799699959941934842664747971367082225504735364142157466530434828373884061933912770727264444894406953893337946240936922738835193842158872869865626783527963256467134605169824265930027372915810763638835520232000140112869862428174828489141308416874076986345619250273382195942981701685547818793364468302524526271608596165634713579743093968264397449918258664858265678919261190255956329955549724926103822305818098594796388477322173571070479933117162269598985752789185315768534574773571773752399778749537580966524171162191832317682172192935201894362259571965774542438853215912742410897190391081017949746148143386783697389004715261748981708175977890480467774059482788008585760932126539982885233837836438165221101218355065601218074719913546048299894474418572905517865677227259748469975422449645853715651200009471273724022492815293752866376716599144236300897267196286008018649015686885577113053214144453578046044161219543581736065120298322463206962232746509348053542677439048596602633267166965956565544793640163987285481076969248481959928964237966402589982989771284228564304955262062944575753939765132238826447879267898870073531944001590064063878634991823739170078036424073851461086516322188561513313298859652188076132721795050793396524545883859195096812688010771247456774391992337583676478519489516202860197899151900705812660120339348280005053554709137458083821826982765773320252391253113628269551646851372272693760167825747943354988571317858876520974581104454176988043581924537084869505073071281929406492802702890875265141172049987762620526993489793309956323431874411599320460669080007508891202483937023615949627273895767755924951805149867628515428049180838941563593608605687456561464346537564357690133701542549090582038740130312666149709066299017888102887840514465654305830557641340593742929276046719025550500098611256411782348722510462636907322444575466679633971236866671794865139797030821966923916771737921633760443310490913634843484894015333746667315499378844097351966996183385752216420321804544621405105239863259661439257564846131009872896732576115612934877506692380791976301112184459690445393606884223565925900588351111701671827971502824529647329405966752324242013947318369091854665536635218895126264999949826500963682352525206914056805595709264862392491095933004554408203675392398074720034299161591069959421127993443623019648057937202815238081986286952272460745293309181093363977979919595128072260998069044069859751140580317308160616985470359460808597785209059854943650126498453968324601147894053815504343904403129719104676923046927121830034887708002424522300042139866983529688236401773982208817643137852604321875487425163314804195466888054156577536720122958511748503446739731340062281500838705015117312912644042122128622829245960551796160133888677293798147266878813698266939347246572210074190173269372869239814347308888444318665065193227602849647085092511774662852735693392550084369740814762050110378415784791850209004009102158063147719054437852071352774428778473056972130010718171452598693517612862307791669391789670613608640716443686861802562962154403392379466003134328108054603057301364492429732430677360558743557258881923411890396393350104651782911801643474575613746075452816221613246048251708079716643075051603840127750024461755479169892445123571768423105201368602905348657984498219587835365684110399029115666546869360665227278616337685028353071182808587646628521976330185960484432294607703443524718688715245440974819794929144229118617990347736656829338081927458429271221582997575220085314106251479824302022822336533169824582892002033137298137527051983774561876217744454201718430449790341244210545103418900774415988892758594785446618738534776239296202764298253642911615361456767471262719095790995506295782475516853124260523899649911817417073394518479752011529865968285851299757598550828429199576662648851435689814845032276823406469695377098713957244389417901169731558630381657653595939026637893334495385163268162586066133609361943244096199846814409282231533488099355033823266059531428076592328333627645504921086638141285719769369864843479428176724149575901509447670661695762605044062217959890903779410295819263969024234701247799920896570415745906242506357734956184056952779345463430484763311658438657272754704386031710320273222837310443357440528768110487921151310148872384094072297920628864903881221302629835173773688560263360363258250513703639528811765025266264098047018236077095803403897620414669364785942582280520906834186933358866186451400480359443133290827983053157612510995879340640206367957729839702523817984816513580011695670752725253981759172951002691649405507443903607467226287703781539966232453776033105508590876308661613160207776639583470936689179593938887285671296644852749475319119190275153129899619768919622009618274567260357944740759435640903212712759346899974841269447823291687685828058392132482147914452946026977659161237822470288720830451364686834388778212548147626002585798972190576383033388685917383191059570519096496657495960367795651767823222900263365676806172373574583080556487662627928957810535932629568183319012912598645874386844330827892467288190070066825741768359076400746268292391512494908270425145473236509956146248276533065449359813614563184143204804187590818281537578008740225032561480673152071804638641086020100202918679650339681456105874795963665118983324264684241042947293359577040126900979154011325222591772732630022386541773561562668635661798321013239699349179753375692893776730092502592730542035828786462784444804201194040942729357234749534406147328260666909548082630243164127031277791211027981051075391421229566864381562731215348775270256546460985480495996407651553376752599716068169674814223753433342360143345117163028401089627511272019972771948315348663163442474114756131035358627325351142708841789361064212645192937380868676065690581628211728489189512331902582069181464557651906474780890374669436466043603741047452701766272294384227601121142528148396096948019898064608066340450385392808447285812249539040773490683118693507516501772558370579557138572438720855716180914068098084085876457997049758082007906966306845133836674211418216993943247492318587501669983816867941212513083935897916895796282249911448924682214937905164197581131460947021462227998012123058171754246368843330727898727104463833445291834406201558687507750222617661586487463501901924056823254359123070755436994426947941802588323446021215217056854569014821408993008347970963063111456081145425904892816922325776391273657612894812436040161842236752387346071001553277090712278518774899816826579387752317172894488231890885197718587387633100752272027271440530516986978049541055079828157251262168218833628432572978888091889829913622975239260082933766616896540198318265623311070300452120268743237207836681954535798304279513297172184590823550187879824283393004031153616795918439110847759803825568899392132188187412141197348865556015790721538783463815667474606060662099440074704022754741438072747820759390311259161572253305807252512130548951055882947997492779378376182448173494978540176469848172116685113731194400926986209175404202895563000661102520006242744858373218895273714307001366380447668305511324042686619624246401708999625293475939310854336082225391217131067410751665632392050361082424762413282526259805894925953093184003223119233216508271405161743609270124054627458398439666162121569622397819195906640362513634971519782634301045868127708659825433136144147639314114090590988398885324223956108492037263590992142420613052131429201965177592815003793988097622087817360567629618508070006316085765030013724107860059764296077621255515049401668423183223293956500143152190171158243040472120212503748746123348801592647175719874440711203839603524185516318867492810537310874556881930536391417209373466417818550746710949632330464503114224271515469562321979331444274032528718762138682737585938348783559605329418339965436998514119780817861189676011677658055628866273031775253050308404474523024640820490470343757377828342545409948205142677068662761506779709586202433082617218711517132954316740189589813846873290159612404587187649535267594725075975147545860774436105313357052384002508410813378370384975286133447691653012976449547081861533523772573419044186165436738587417745894853963366761408684039418518532244330331625650101645922676696546966067518616346794463406089212296743397770840923983811578847946244954500777239095746035872818859340123205667730949748457556378230506324615720441595898388555043256481806952560652495293974767698242509852888063418370665877235094094459856943839355545535507607366228792638497646213794084746975742747796608336043427327059329813004033176403992310346960113709512205994880205159546161914067471102036205605246643835004143303705883635513259646877611337080320650131470787946255977163099233991879259501978470781698333397077260112040179726490723641973560370917728270531675748510362276492799546318434363551726817319445233310413103507750655421466734341392851729147712102597103521624701267318351877163422310510493201598757255489309143989139432498913293545456921508458887284772493604111169891616961597705744720144346917828651220152323853366451536155987364466433696210820945597674779850523871588550997083945016591447353366820634499833451308868687203673263766421804175372833252934652722547719611800126334492867303669554929551611864114611750544486476423021357964423158442706560793022295807057933443813747255986329873672957454991330222874992176913568891647478292128149421388648676485447423634070434273241733328771406998574056325628081768460420608349004678725265791279985385797991645491777338005110698878011990484748035403559370948698612472264023429774341586190807377678229278637510291148373325841623873304169558085159961130265615589876161622701003515434136771464038404471728721282587125511868841005255485014495615712892219917540701662742652324246683941862574634381033089502757672663225276214000480226544246779217385741756603871011613674311824632197387125487449245947578826074589963352186802797412323512040440425084397295704464673589766837349129479955628220982270554148360790013989723159143159459530426270853702891279921002892851068908676850186632622358833647490378647580878954718103871907155136736065838674389132098360963752730644747847231146980217365091059571818917929708221568676295773408130910859502086228156927494066632005458735465236987158580022495696355775282488662808302328088759677661247855283527330087384399661233921765487894627300729957706710754497320522687828489519625943449182858776749922904370793342744257816867810032285224685127870163922663070167505387468058920251061859092059510245306945277074325301742510661545331975660999484800131851687594848938758667854700259888860770185266462235034584924215640590261004568270932505716601211698173585744005062617900860528667902072333227912119778157625530875798531451212240290939394807199435479781549969307820598322128111067588840905939834573878776750948902602077519997220980092053034742578772335384301075008722367362522900917302559361001843232022100887054290966420537370382003610083318320244294539622533659422615797400379158505205345649087883680609859731168166375301551156127554274153090839638497674551633721566311195719679512902888753925798551667202200233675034757304955614597709094957050084803945638338720978600722310034066402845218638356732605876751185650500246548811428929052561753802615283611788254696046336073587980881429429034763878384003121389727889471505442504906901402331915510833984980289743157543433779516978546362702710118326609142701487344449368780158225522044096918437907669836418938078790662260817545632577145070558766073844156108088791365417021878080636054753751702471052644921121256321872029995239781660117832014657465233405458334223707069614808874639324987284373711953235489535304880411503691154536986033760655320852437406728227288304125165118399624971651221703699649480754245328800910632421960767788304562269560244923163201410046465646230471157081310390539038500378772272285534443833497383273100625445605270922328750328527524419138583589599960707162759133322154176132955020718458796713791515877902659628258856566452428830594497973853028365332642952226394258106988324972357136333390238843719347878226696260428807743078103548831659052401079897285519888007867399832600453427394295505750609863267362149977310451088929964478777159998808070897713169732604347508450363636920038352743628001826696861116119335876608080057547668371208648952641436142648027579572629546697748129653400309258432866699478477830594444265275034014306244375260952235337022878778926096603875910701004430770381845832698379423272855958681949639334734539894714970967550553296091644064380249356978433893695682764176424117580338710959281095063098414384552941307839873407668815171828048123156809918391327607289959074297860721918205266733739045345778802579099643745784625439811317605980548549613711583811072445763504970032865298136195954531781760625524311098851748812076285375468421426188744787515505572136396961700970340693243615189956807039009112657829369274720203444998211128055129028876774189005427843121530824358779637037303035684466986144009972814465135604868339704836844394562311928416887736741487807000734069547768729490295778860087595759743355380373049324651221818798225822374939532279775734339219721131810634073130948805380501896309412798532132176093854651364224794129066188730251579686771088543936203756372912843249025269989804706739542458962674673699315194320900733760717961649608857900092222680250702239571711009880141712813690756809930342034975134528119252532742174006418395594285895919282426219329353110065295165873458167014428553413184715621995519324077566102152389152768737929338225653071688756561313568499648608103963490306827365980864512814366732596594833562171104311485006136480586513703454464652017990835304238319064797921481579793960641446857218810378368500873234500351832359166974449912571420185207948145633336313007320655846396892108530291532208621495087840611151322053776553749671193906985388858630611693315715266143156277838263443397585806045883178501448858448687892386838376243519100279126167656759555238397743580384078855719804102715057094432446031534445336178210961568904794595855875586259682973317282510582633587950419480969876904344663673824608070396649144635637277171174194046681023948183487273953236028649426346144794504435996682984531844911666319483976590217336213523438126450238739009498341804680886421351780316811667594122516147321231844892525173019959803577493577739352725005443646192748210593442291319871742451429797856539404962770942078512317802421469623302688537623557114304736931441653123258795529149534809923039810795086204427973378246786424607108469819195345526638622594894905910724789773199311247319216420697094566999921247891764498565893287203647801087981726522697746501021558628147649196881836357646279369233467753425454230792385324801371688563578957340514517246403418265877403415447591046952436499530081539038243140578155608394976249067262071347496012730495994868735939099805767182128721331159064577170125410346930390793757059362007176640865089077989106721702976938249231867645723532281938881080540556787358710409040860212906763604025259825229477268312623985065217554292812977140166783395471914890017184915334134410151394811131547936602723831156300947500343440168625108078347719196583423390979553339649279799773265310853266290569703619710654183981978179045642521005142541697451529842510093259759886226243858359326245911120387418627813136198362274298828626823214899012359919936687677422174916121053639461879599047307011024283814462049209815124373794449558693302699342385218160442627354041234346374909242896616507972975462925282636418047788630552887502807133749316343283788868522952229294600088725670227726450307432338914158065768255808075855497921883117536000081866332606843966015369075971212406048666585943667290159484777934027992851862940409083649232824131526818685753992655277616217188942582908144868030684260476278472602586241827215627277479701358812333566998420675932059492267707846378807785918276061195455343367245341253058292826147338071713595605923335221728611905046174376382119264240374176398095738342011658517764548581137423934660452742747227646151950754698834404117565963214905480138876889864613334249564577236714681360635856265991081918720867300392136880661889954780295923198780724959557588423133673534571924901052228519035984580998040360134130598078373766090109794766805555547428088375874388835970924704516295619878350074336955972979272473177774398700188996134776926360708477948443064776415318634028161182942500577517107416467870319734688201888295186316587789651999744746157534224964931520549371771086475155766760098990572067125074921381894637046588549978548458637366487213258030331382969623433161802626545928350728427294620862056891351711248684151385553905004439250189740506253808927656209150819902027367861820283659170778648944615844829859345901380214400263255825465679394549523801610011220028611301340167422360184155941433286125216608788946823018745648848485147424188016250110444431675747941831510041614972484902352025754672694660694353586505013631707520471165105749133006614849201437451657033587654432181692412812063457561552371356724713329047952977039775365809147233512466071013589093876467536514795612660371759134376262745012034452308090004740647466860084835508931667382091454097525714599779737524894941746141847231824408185545821931242588927741419877103843531742849401078658513150712938262694431730288192283486583900742942871070554222307426717062692089188597597733620012022795063361540361214383251430509155212828361200354635568818870426061773080759233841905953151791874818582597868772837418134685887430112628072392415432549827854361154110647212328723491503807685487461615147589144529010609891337939126660996510128067927566377142929147950544524079304971230535483329651966135607868509920583733141728955435607600371394721571312156751313695433157599613812213915673875630265992125413692833187923372949718249198852716455557712408898399284630711785464561197537365892192244494837259331707710969411276878613028656589297084539441741583027612662584779863636290990897046506352948389335696430984755215098292180327702406075240391038119555863571738842827009084438986449607843751372818579056305275109791150199746664656284637531846416817042528370760284958883672162142018250069829990612180035509698530965911707418911018929822681113561509532438917041658273022111841118320740295032234717091861681756984014531042437735286786993150264702497574541064203970057999090136594510442762586509706501434055924719954847131372884967711050991406240006273702161289257617158583321768743561386751536137562617819362868670651617233463930403115324366691158798121726671134413037305845755951293265169110326438101337379291108778199595980637550751535901937780460884816666511423619250854354099184375324376628905359526000496283738153914282602744474869031285121574593246301501068296783552874814687392998796403143638715510098423164592360042709618464205239627918936689724299173856787789941899559428255156435051415561391154022750555924359160216108140289352665431997746768443691100029514371756192572322418349681000305504469223997082827829422145324366834217088910846211086358387026079616357501788131774505752250014056385308782843320682164143973032429372296362822483601234906707751305441070130547848568796375092995134646237814933464202969740336818164751247586765376495557708322691932694457460660513457563420148020188506850310477178230395327370584262483911847552021120516896105968407161804307021063778058507991016099580703016535034100066372662028431679697249546182058007837219189002459776505915836075360097607166899553439550959989551154708174517177551952981467969641052701278852514624547044144042635173377006867017391196318133568767505092737773096794165067265714587062068842157452356798707962400865125414649166203593339010179301127190712754363887577153826632640534764366358972264800779326131820427339943089821589799383066943390193495564798923261206428310828141309100609624836647237479658299408634848095902534144713946345165036563660208162421866803930605626554345785902927582773594443774748702642353482169727922652082752732982318574405466313265229139706351964477960394857513562627839377538945574633915086163620193236950786424885501287856487838783046456404683716167870830542589246612955601614785498404740153197237074931097629241931461326598307898707856885879659093567044739264542935546363909579156519987100548378124074938511668399890497579345745977960000074490126706790593683050360695293857670561151048244564633485206920503530034362541699972108276960248829028563127094452182196489885186101474530374334178545550839819610582874018071732510426313213109075906653154015974966952663490476500952334803025420770680382668650253939830417986261075004699225592374382335500770787174227887760797337367153899907054213366646833502725850163949861188419296564603249482255159538669298106494671928043219045760056716759652440930210891385837426269294297225424824971055431348417484612411613478637969689181523903940313954966807180922024092066312914401714243199440158996719190521889555113354720804487131593380175566863048712632289343924800236199195256071560754327174171764210171266539488517078757839941947649991340182703251854020630242103129752891666389889901686889644258714714716076440975668675655761933712135924771686267157701179757471692340582239896973522980624422938683964842138372645668334155170571176968231986821014758441665238583717991493842830615574711574672743574392498671949418623103534236237443448181083904571461912158819681561220867818729369921884482343446161897529230828205779743810399273076942229945282240173244800251710931996641245247308310114690532891439658593149924330578012569711439664235651205516962965611026216739604438839654371183579026137150144778974924284380409325332335129516537439400966664686928675625496326915261285601961673442111309225553177421116500959922086814007494663466491303773237970461912352804291639514154094958395706483656271840650939093339930172979720983129852789822275968958410443615733762043230681331118982798360190712442698835467503176270308110873976725728435483004353656747478417370416413188494548244946676883878014388793294337158566344354071421171046984544798302435576182608914686022974216723859446011882553351074607606144315366249637821445547693295429093003108206907525935382605034375745861474656616860669127740699910879068535927875013648774446444485548175673723090645338208672182725664397202569491023138981446570995934325057326600516028784521680217571510978364246521877002962574571564920433838294549766560743693279325810341807356399077031693009216014523590989273393441311954076891560594725406454384931392198882462106761714127786994919879595772822409391445596638362583072521808783587061823680231497380389762645890377833623163216581245814535913002058644743469265165577545283657862882201478734408261147156135962088992984044909455449315116820090043692221654871548131370267894690579834118952662192885040975869244877262520147784938818699431085337491469918613239648466678055099841696471059775592608203844256739595337790526548997090062696038985021383800451691194452684658666909604648629164270887549328939097139271398734861050599837869081687652120031666141663823151084989740033072739183680189589249079063723293551862814207884526074050685690129420440122795983462704180814831965948511182999358637064930519987221821651067222019829638133408955618785822260419467179978260104357397380471053277323834303771339419175534307515120840090158911210109303681598571154634848928475849647968297278258278686461994981137303603019149208859312710863655577389794929196829173339465085273469242726934365684808585442727845206255428083862302249755083019435789695061164872569279909462026182097193529732053046147314840643894867052865144243280149348474911804607905431467841002341155744766078135622463810417916898205552505710636115817198439374725851681915733471454510264259444217210308742849714457942140511477402756518906888295095511664528387590109855869081739579063685906434177950739703342125673653971850570609888524080897512769533400163039069578411374697164585075001574842499585531644758038848617070276261179102559623825857076861702949143826006022322049680063263500535807909616421079077065742216395948533624271907180695851035460884241859528749925608593029003151894943113077886709347289325219147250048872849962446111759541673407134565340758131043324323608054673563029804456894150134979758143457722503077935836530379188083093005177260236831392126768809279715124974328169935042821796384394811247642766639844347454720287598251733032329663812094706130913398997465649131346813870044352152026576493855097768743416097389409248448833786895281131157609534214780124431306070685791196887056025747016224235100260433389734594696065041877621461130873939434839088464027026487319082916873324855234135672344007783252531111534749928918149463765693149240160135974158100748382485822463759030004080541217569135231818827190977114527187323537678750033699096952017133208977462247315862925448902996842913384877019744928592190210683010260836054048916227202985220846614386337807486386272992963087881503266687760718453455641468460667154764518552034359604672928113604879336424644357336032017140004315918516007107268874702526318841463370793687542957330710662155249282473627201346305589962393474639417175821965146006959144863863688020541080641777195253934825751066540375060053561261353799796599397635025731325586336344137639780613079012366580869283415878495490914300706911354312472846363510941509933803617712453151751265938449267448163243827923613586503722399356253760608971218194184295128585732401674135296893965475297322239306135339701368727913859899160718158669415058353264049851431682838863310507231976890109494785849155513849816751172106132449143667251881736296052261707069689296948785742521342477188463528344418194996340635714020022813774514587573053964536937273449250686309410836563703217588650191424314284625647558654717576712579651388668188755633939684986195527077071206761696778675940520665593902582077271316721669524270026435076942453034763231997224893244279978354821409738047468926059589254133227173788209404443456578976191449149951445944941344665468625849577465733434919013062837589757501181342331460935615025944333960940427403331623396460320736809726799529224021018722833520795987979767607992951942587962827873407893148293328152795131108370551065595895578624028855301489691302706962680242933790533183219171150408562098636886019164546204974611395743076812868335514357844043252314030107219069794289126254989510151783102480692850765354462959403809977060686336968983407970896003208915915952112387547912191014566125501480381143322654757609022680989344377289848076026256943398118976619649567712822153742168256990012352532544552042363535155135444892950938367720358044550213153124942246452397038784877832825454717400984661200102365939029226300157462565916621700375568975015028132473589672802199118430629251309816415523982915554666949958707654923896952356130670665446023845355897457005850866915450556105587178858373330332422320993035183515378637662727487916566535159331357575297006573719513777082327793383738917711235339530836629872246889483165624638568898830753094479570317399960746114783318106801812785188573562232637760530324390485606467574799412108799756062283863601951145500109658930925633319563095964265517839499865560489089403867251935617436760880361568384452815737472968940157639181965252337661274049589933597519000803237300655362549854180414208151899695115146533992365735224069340463140837331252811597673833564947193452405720947164629616139378965822511571077811279330975489708391036225800782383039048972588892485168214001037229839111874574210046040921665319393718700898907718246874112224412323925593116937666578101960283172336127727907222035046786665259008955127485621668136012433152514939502416745071209091906514000833363716982249244948055573543637008378252793247304731142490869900529214886961135985782052750683690594364381574922999420094119135632335342392701729718544833182436884903913060302829088382805849592103039900292435682313542864441022317722598523342300467125081410101015340846486676577342684054405565665546563456076924032768521995658948462937355559908010526195974800837334131631430145862808528337982243883972004765739339664322664221154497869278434593738063526407703632410966415350349373591344616169857433371620734127605536663305909257280628182096356542651697243322758425789692458642944911629640312138791579732439886007884622423525858925960166429946620068992308004066197900451851739754980606607830558484896632015114170112317130838273083505949443370719693228525439695641199058190778244057345032281302296491694472096314927443328355690007274977349846382942035342398963595076955035282784886913819368249877397907630045296672672177461703524746704040096880207073670409080515036523305783941615851359209330722831376750948003997208355652444331840626082737254148984173804928695730566406906056567976540220219856047035454875451498566078505835091977623007620940031177927895915118626347720860065918899895695130118913501840531392964363356299717260226574541797264036548126606541241123304208634276901477239573991377239548236273812118718379758696083288806428715357857899688864388372413020857980469626977976035627375641917520685403936630464477732021233125696777647600976641732094040360588210955696356109695453083092602277568158052094775479071091285381257595318197757670940772752896618068939014013732256277156698944405990194881627595911867587795915459272617362815473402069646761213337677648458264652628992496343550748311407572692572364435517307395309094933290861065430686630952708149916185322000167942584732923644255136034683045528998740991650075432997301865714753556708253787515115257895295370790155943279371142542572116041307991110713180079360289175064287038147912931025989224750628585832770531498237531010240079364053773046627983052774893847863761956260894215799561859750717887227846747600718557995380037151815804860389942535126975797258053735403975108562931704501091743332014583221912289187449725657658125026257189239985280061161893899389119011841991595840493607140483882463690250593754671259487906380564742701490317669497790956636925608549595536963742097080359067695609841364626492626579838252167609860749289857302041650441481841118945582047749925344650551093272233523941526199356610937309045310269210418292967556262963520947516377877809163404659796435872644784852960856763805641226268524354016927569711728834948196973014520460699450707698298409905420803740074542988617619496044908277090481728546645201373425187286484953312364464274927818851066813017687140842882112573366154547225732920032361712933691115704251050055926253947288116219024777853229875378346733875650094698849922056347974131189102134653076958118862863886358675243613625815636576314630095320584380977804343272892977011023125046048523043998708117977454133040166107386762237845161354270346162014678834335590455454730440723886149285884003055908982892598888320361661407807077133681673921782435271056201108395264532684402050981257402165037948460853532334928393469905229623110221720579405714498290276980173079531901867515590620163134467283674710723062214388078334240308458514214102093617264690634466269916348877986030417864475277117488320794578231623814619535711003889641343949189648255868430132838245805859252759995124462053463738758060534139243151479200848763883080483689733015144465117342535928877208221486486057743771156949094465389493648580767514168078871191767336892812404651216181367363237161542716804341004470570985016992393971376547702380179230838948486916391543882864373956778272665346126678873032466066571979627502185417696077920895244670165068995158095282688867711455050401620199879937361409973323115740089057592986749278688330485613668569957996389365138306529000150924630003572343606929311383311842313896691984738376046291098438001047428743684019321051360604620827719071855828281878884516003109552538133120054177076404794179979495426509779456034876467482194747708793573120854079811939971443178642768725781234346724799147038268125088390947132512768644981652348809085319340007580125485302452727295177707650653121066430892811428641186014841176459938353627882795013793148455552565994361328357428930853270422423835974459416367493227370189655394139407730885886861060178088100375069698072630533709239143746753795755449761622019973114360927688108814149071224783231915535702061147933588240259352803745144057205999858127790419992583395160920907558209664100185668212663687493501291613100639947365977498379497259454948671638271667983445217783659637608971703807607622368907810055139467010864503836384310707945226740605911071486505145486170240517471842291924210715077773327447620218990839879484446710422605589679127152132448336304319277931898130140123601745503968254402367519288897954224623747141512709302200276839128260293991353164497819833193107190543169333185657696478182885757191748068185384781818558823833657279324892513941627591372672433000329266472363558430232085081309075325641081578525000454933868613123612988648172753261383192710624623380617966528841095379045945873477200150748137873574400089397741306641914235432188121395413488782376913398757781822441388254310282121623942073702673360186213328975667044485652870530115805326165105410081516298534686731052511769432500914708837141541320047780230704973122943459899453041630391817063514121606147219278506676101745199175150606211524793671902738143046780998209145583613450048249310220032413177349364640069448349766274791543289724736470053851303697665995314863326847430742763035126624953434800201372759793733532918697665510709777429010656190050003936266244334443330338802269434446400308695055707858951199335390241534835703857235956704857298857777941112310904009860759528248898731796117716327137969045074584056506855481591864270433937497080120813178431449830620227966312406147862259282311909346411991130534397030406278686650657633247443286444300507648739810894368065238893309917362691624872171329604442264536056741449863987148935736207405869007413812439774718064650427884865493053800408007125583776430887246731539674381844426883480243658458441703401433366020093094356656459210824826012455567807154236528289478529948129957616289909715620703958201724137033971078961311206286275870414436307391173563981168174191463995216017979149994577784127986189057675628493518759430760601528846862005862895101378726604361524588981288896205565023919656178712521086731488338464418806470001980299486372848472671589538399069563794283829228646413345964304573751243421320179948958408327646433231422795575804847647039377951776600134621524611403851927924346906842686328491124430480586328047491798416764487973703902841279555211917855709368631818955813634336434855558252919900261542190309824929128300062537403092983706096401437231957121728359184190250660753050021306032955910404687962162609659587405825017245838873166210439664967448696724321477448683980672863462087745314063482355085839654452550772409077020654672314473975723903353939153472104442490888042349395529836726606264170376396756286261898371571051496910905637874393497599649153596932622936213173997838022720509461046616527744349730564267710711212832023566154437160595799611835935856485627116370315893990211131707355663670373865037114292930777995314678532525719791714309890627194910514825310143223215052005859566878115040017429166240128261499881317197150027438685298698534382245242295421037607063313212793970257522927601477687684696104270592116922862364549649894448066423053155562014162660262409602052076736018260762104413341158552362350020820593919052036338585647112898312193263223663617725820818010327564394103037850858737710836194061366078924447986851518908950365094950051260659045176481673244049604510423269241400424589447130575091072658811078002064356416254418451640965282836662967027301053295225584260433073627598724129374145851434541419816599793184691987729727142374482427099164103263237919853043279552003873906030187238760628850942593126184693499598334017051033029838771743129345913049283324646122341575404203945630412045816076093255809244510793892554736937431855725420986336788615185781193626338235892529867914869488401408507654292097606825641013209401785929099515691768389634232226840865378765447987099729129469919699922723608018866410852933380527381837014034902058490563663249731777856798927420659067819026274766694987184920838557772337785390473059113975249017101129566781553309824283198067178498202400139389225539713880529284410554986298807916408849169526348104812057415426300977734008653042311895500889529940979778524769078336742481811289504502188183554207550495130997054377631290347595747990356061967922848357494654322227053662867128053417373773578258436056403129081479359785104772375084193840445271713334736600520131038568936232349369320837621138708653810875987094671768203419876367905750112218032406048362346903558367752200424559841310736786490003228832548015027858315113109116138916540506455521412821682208287615666168680218309248839665258998147421223018104516824613539095469693838776220277853909888785877449037200130405801299228923038032683724880443362278383502587537545660509495226932480605508575971603253151398408767959302559457505471176144366599773949159587506976142781648689682612661728891450375758976909167554847947495537572231561952156870359979813823480263313205084003022308339746901848524794926563020307019559617542247328499266751080096040209484488986081399241423020446368194185031881256456190070176771417002665489175531053657239658219920143202532392140692903368677519305774034527702831701218715884344711189340573660837314376269724535656015422891024505878660223667678498540041101551873077445206077772971933313683274841054585992620819086545337577555827050079400710248017476513725893857051550593207494884692762464134303482824838870849947797159038169296301063277690389083533256967056264007308796963871653394182929967430507243412311210819415159423190931976721879006645560452702780343588279529894059583365100965105331215563201751888537915123598958744927617860211620954479856775159137450563900388574984441795653162021269227849769256659423542138535774243426721552861104170848798334728835939267537538258062765478368314683298946844689907996598055005353539101728562655550045867813048478651597223200153439077685286640859021167178332453417219946563539617075601347205874061075394910834453669825316109687085969734109696260124364954515331624219120549229734438690944004832320996047490412276537026389960531982634171004424769185554115917572489876943389824341796219952082243290396796074323539820109099961974837932615983823582888359706716128955250902021809114254524223311654911113467465347671719610182013759828972412134162332304319403903675748315401357564487233907257162293729799177202395562874969477444202343471011790114503995904732866498098394530329316912436317806293641208029811198167530326423334555219640913911422086812365833816311434232681999180941326769405784992307911190826399129377484988239704591729435176493080752903091469356030304997063428354824682681489915507889353983393253427647103578054694497433099459268092115201418779090640734273955908938059843810515773337842532271542119498784678517826243481316298241122971303124110748664816700817663628687101861949440420965421060553115237644949734041094202771608314152338588097209390305479269968708536896428638106771525151527476481722195392305110596439244247859572462077767061097931026832870327136447963981595907485665208932242517974436633445077083553180591974363356572411592316793210351456494474138255799385485875135456783005476234134197956623357183985460443219104703290204320602379026810399910423059341891781158463366152477175729090845016817989855949173002943017253573255820098077614600023841839409201589470874761162312493427888973776397645149383467794231390018094670353599296974782327518206921779353681247251551127867524545743055274798893913339420647236263053652950881334818826263284344768717349247925516457809459762833799903160804872160448650044243819525423448683348801083755027361230093694779990846700241585175358212780062711362344884263765296707742967169048889019258655272858690806116347522761561685321131207010878610062875658257045061423228937670456174903578699274094350661115404054349136380196548196282447992612422232490933396244389767605412729644016085836096712377717909519316482839898388648396313176025362373063573888481564538419486544422676626063821507047297321139678290823556191065627599000409046710611537005126714068484082509353362987275737164266009894274497178062584357261057817726602955796635860082185796305632718996455319009183310859597137800356204773931291488669155559602555584321835051814556445528088878479496124803315383394003421115247187494819677590676603006797317262738683904584288425251638973706202881708022274662964051517108877694548747037289876261617390386783136624058027163381494100548759861049926509873322005185692560059242688727945688527043314188620154038214110097334365528824716935285167142177343186182941159802682222393918625787245325758375602026221504066571478667396651853610230361797318692276997255921135927489972007170333834004705296622965383736099637950777346221971958288860394301688902330373072922013453364013124947899554686428333253111625739939634217844341549990872067414425939729636084240553764240441069538445823863053065262568599421589214503976881932904467584224593291620588093529963249819685296158557542567774477106691859345245345741083743781733518102320930104172856290193036006497720859811831313528992984510371038839757957133749854581173392303194331052273243792944335141901588375104042307986716996791159900775997369466014428221490829795860221156115814031012981928151984347798011555149502664663806849163180424863468071210451047234979337897816573808971840763576189439017621780003411036519556736537221391160880709692264726369440778622212113162134782110974978481012511155371247498126089464811446316575095657916055024384733985855132659369044075756113255240433519083059489944820898098991923003706811594848165910419840066872691851139366927825405409317714263849155278353546686575654282174467608711980996312976940930121727546283095520410952191719478826223633915644487913700500870062618579955033767801297243065761976147341440758773446762921107521714782172812878419101533054808795207964235925483233678888085260625523409474640143592315015840815104075574653705831772650156181790250619557534458738554062561671827531154208918255488825724954855649157511513971987003924205070134510725303664369364494718999877350991475857754535827248306156094129954198512456974422611034725114055745488609170339632728993868087973732767480540065916895528999795230331133125602312476934432582090528670741127171629367531112001345587938507246569292381696796542218133481082835492302046285482988834037563487949470614232834757610656431952836425370788662874210248727949099118634013091371313449241343819932893296596065647604937560627963692688476537007032898644856786819828644698727572451893263454303710537842502506469555350555197383203901343520721465034735977454481694479869772852583389439056428233476660834787483823590134032184537044945030874381577559988889991285794545775317506865903084898851953746822037202039590028852347858207731553052168727566032963977402742456145811673315314845198976914673518382894947998720128369233021386069039141840188893029602579308845010482718340064053245867414731652824735382691156133769007560620228319004896919727278078637929217000820414113301862984933497108433334628304717844563896426154097007228895846582993057670479160301564292292168657873499106049626261101136243963861240413527983332781068167265951153868265074467715988871124592353443917695867614604130756211270148905205245849560503342406661722503436158605029798226269111725347860124077782569881748189608246661278568193843641366722200384559420690700857792548916196589917311719881274596752034480450098728895648551257007664882199400952153471020700195220507396496052079058138582695456231391248291167105947487269401151957782408492345466874827819039009512914131943215402925188892998335995070683493098991494389750841140000721720277589683283428397391394731099817293460212817235781865879066154042582149799824046183592786886995087317026132367371024222864768480569222567618660834323168116288256793847561985215392511508348029354688561346714574182736408163518411411714718183815588897190577104768412019030599048365252869600900067835599888418131457574770318141111017030331755592819713629204197797021205828583138461692870246937064142085120496043771629837772005844080564338183814943200936958178090954134129281607593434020838142068457826947887434942259778404411278075523964351849428574087305463439690838055526416490560861357192254183633387342739610142889843237229335604690667545219677606092934242866630216574398848798996217443459846161825978293075373340134472837117815040488327150653245607098692316300819503799686687959057791352251080593427874066276660422203576570027055232740769019108241723237263308339669772207711526846843947625039898261584223742554450998136391960703882276658858614708491991960938356953859980338172275483974688524148372743081242341361596115777891095382648190348346946496954096793427364724374604398190873657481102918009750562897546429915011451221759488654498802162655822626365291220049729086162791109927180111378388502272748402033220331378947808499479454038198168952567227339887990313111830132184563860291655260442344203104467511951318668434343031941942362212051307007494585864742834691297356939705803582456124538824071451352321338487507487504597866887216697431641173880103624780428651356468198839066907567463979966635451282514620176322327130941664629209198483967054364278131953404655771613700544027648516153102518324408983188646444429515737041764630180203471863963761803321890129306663718035174615577538852594967721245800058830087090836923935331344697901165756713331963335655998209022281835387395946420617759551946448659878165009373411508984881277242327984260466296727286294228663300565314878348810765533276667247101281251518847286074315888766624250388304040671423035467047839508008162133994963113854357371039705061169858124851347028414055385511357581479418347877045210464622896784136168715006514465369963208298470224588047854760648806360912458312393342284195939501925931117397546938598311693941405843622768982759113436671700205127613798084690363034633119770453599457704207675987506819440898131727059336828567360333412495195760465709643513168295983645218833295951352193713336015394419360482799472512706811827772207268965059858525665994516797070913455625782963247032426771515275783782628722234311842597262690775598837418343167014529118902360283130639916627504973581331589406073229272487960477076323392059652650295582937066122826781260638839452232224713109328299541949406898205608982198214129419434257234936340840057722575550241257370340107352303252186283846089620343472045753809471196654640853900646013369445912903138072576707806915358475183954595118824543342961519177253378668987581699845478800702025040293073509985221468104922287674119175663199222935292685390091145100852620307667915763128216222373120381749684314689168140393214601990071306694570160587731402034511476848440276271763225738257688641156485283777251007059682269195461685345066517648589788013288941097644688944530799864193830138055449830738068117327561713630821392687285094649166686926451378511009939452189521062130536304895591981266070672713760279337008946543216680487605081712996279615115667829577562656138812909991281059197196596062130098720223462476684469534694035528496179664607125441825144934843543896419160791354722359404873248674841494351926325287537779489914952405189592294575028808984387580564857826039620037094133740496732338478399203838388599068589251451856508844794442399130428897031368788433160845363730475637958888519393017003009264948915817121552144641871547021617227156928115985187355665016661798280107540185779476089367583992732822157875389146854622504735498274254986803700928799353431363133108918563090040436411839198049570667276936885881989878444901498110767070964522573146473735184965483830752917400540758514974641849189492630793133084505830184652821851577350832824769040470473743436010693070686351646655844036673034170274514095741193903694093621664399655662626431151017647811714406039064024051259440354573314048704842281764810993695156450974997308428825052368038263756162764046534925474604630986582201030103874792269924427700409094409394028052423708003873675183070892120589823423282681866713333803598984463857036898430131564625496572054238625070668642966994504952199985409355116125775163642006220621342341213282692549652065930743348870414828519764612411736723160605891523785034173569904404192781365810191077942428897876707429675544149482781050510483595254658075221258476437358340428679636055830316514777437196128837800250732221065957303202480693509938875482384144787318609579542376708213456913227558212949582953623852528739918614917784915356303012848653305231774302946995572928940011549049751432262247806666445419222638818648857228031735778297845763866787883594823870915404235693862305951826184846653481974296160175832782687156689049727527934103534449497221026480813869107562958083859566996219287970823028345174709698136281917182121490132360394858980234785757521463910387930338290164502427009273462116430722113305661507817900083692154733581593268957242796514377970172206114503773573297748676375430654871666539232948986246063356763646966710476055380219481610922714999869587924554083390289952854696743880547689904438908613063021485778372660162429791702447400859403020684817309874393664317480678622426164820990138660886759471171468289496216199665045331480935665744881484307474512117863146822419391178561960265557682635573082730545988985485362575789812000554892895872780974036804739369167770751142088036457027888279393944262506713767250762426150130922787551740570522759393973155065989685676486653151811612028631557780884825347061231237913366593253845722076822183937603038126013926517720360789988573560426480120240086791510966817300593135968526626292745482351440098604759667999435965408367973778438920370651911548360958432630121773369323649970909780555321659192338930242413285839369807090542035796295179342428775963054427948993320689057563858768104197869466585282386329249061905439020597311749183862629107028133135505217965600339649677105356917803984057119950939440497716144871856135641091129082039476280638425116823802052763433814985971059836736065744770239012338067252666283761876608605291043356292064009750788529592705867024571848252410475331562937588474714820824949503543239370861073625685151533972146253408592984545349983630724450117255929039032029623027040129155361199587284329186977109456013137485661402879050303383424084248539725435256888972179008782549083514293060073011489422786707837809262092207137207188144008138044737544725625019930052297523529861692062896770932501422043434884482283853254462622537422364435595748168321954439232438853374103815018154227649027009255282654020001428226212919763404012506222542516768212443111532939390123933446601878919748522765657636535676295730885324934783774455396728543138944321823371404919661283981896707159445253683560337068536027053732838572628994868876546229863414405793464194601295870120755421499662892631121390518849485198127193441359651380615044987452696526876995163954079497823790833155646247306302797753951774977644775245379651141878070834261545753264609487059045002796400772619698483523198915472792943554023558642834348809812580156548458108009566129216502508544652619427613511621797118931390617807138571232415970320413325421898656647513670604072839950966700590333818425368245713898303055799052457776815993609628690491581346027358649692632949037768310860044080653143691136983653157810013383549565261829629235231795053690909407911640759529168815692812012402276011928373143451015944536419989278118802948977679155778146657655154427150555186089148251365264128311607517467735471617468892024948597707362453136830042048121127782450949457990418052384826112520003006529078540111234190518095692970374332963707748814287259610593656543879521285069590666441103850248014539306524031479800800345766198174043719333680377786276036525557550436465368515544731383722051478644697192112800784299112500584585231519909045692549765234697529992576398662794379436597609616211133771455275695740826118884077646488900717013372876695502948064483357155147091054344530419116851652764504006671419829717862433233135168375637194544031418601513401524552135820878624673505002694513521628198978338762810341728991594923175924020552400528659489393069929139669819273447360793921783241248776832105834666006920600423636279029946412237149574418158439317493164064888433146392438731159896014855734092419917519764943731586770193524103636269851330787199213053424306547610905694603322288201550702938392363706765138436547994248288102874171491678121218802994478981892191822164464132912213865518311426078752970610732141713122527226186554858175343178653278874751727719541060058234722571568451665022193834877069138085970223098381301830444420643730781738751167298387582022765362948982069396429834695893254188667150570853834401516586167865330174891570854491217556054007268517742878540054025920516896194781656564109495159431373789309238996381869257198674016376194193733932818943329580554910489160264128368587767528268555426515418745206319542477327343419886123704542500629402309498539558786542783617289482285369437452034821269467935517325241816643066699711471376008149696024362710863251854927887049439773268559994204332534446691463180559605730853115444506110929364792122950345133940058322373536583172323842117306050863074588381758222297706540735741438760692874164233736386404339717154293470064680498979795199677183100276474987009867719873872359522194503726886058474457230932509252376230198119139242676253254490305430679748624596803724784022619788576373075624238706997384093616829310188796392746128858642311880307800526226032122483687935767235493210434544651588055712095638185471164181544332097096705135157484047913721446137165707040105855495681996939020074685605692715851297830304274166269028299662676816532814419188858625486641898693821608901470309408487324976235063851693733263440469503627246607906017519274026261416596451063688804273427531920044628161827513420241367458284023495595253092061145069867830781997550767048020010137614109107257442171617812349152248069442874878473471973857278344547693291159481917509523830361278836787980496191810890217637427352890043135267618976534784004004978583645649480940148826699118864643717735103140952800087433090030836145284159778369024678538031615936389504079422384681406708033153313666892011028963415873870171540073273378343595374115582796299790888528142766072350159493799730699184879385901244607615986010426142543789195146090198864315478240725009013835008382158400040125795379875555215190151935205217054949070872874838782537093464441053424132647669327254775359882138543274283516493708036880841941754680639313310321286714765623834630011600527604816512816987554441387146160246999449656877972191287571445966135688700412058377521759419538540567588320364252565834458340426785575434548685980996901018463186980974695855271996946116022074375668638441711035291197295089934040938408214131292007400423166916893534432951891932549796903188992467494328411846216573421807479772266476559853785806771801618982538731607621561776832223223615338275742844141000462327511496313373398662037165850726044713668173214983444657890213078564087626486266849638559702275709161439717061627882088939275006329889829910264487564777384928567856237871496701871681263055579518877920319060451173322486761080207345705209355513907355964082567472280426370489668189666498997114556251981694445495330514599327034213012456134883903308110702364637138463116486076439962035880310504281336754007010253023493787412429070276434898991827409599496790713859758951931943139593383900824191597520920828831552908545172815184145189311536411987208529907665015761426503779159500838281614595273884933260222038071257306430932266242945401137762048097462314555969500604564893005179137298079313124288466130316959655913126176225892837393297235630833659394077756411400570218025312002490394203787300295686612208830761749606082838207026682741598103035279261888356044555183624382658510549153007766401560715735084163374803017678127148524434788475538794174949584160907754220839760385676013410730419141409696642131180274778928698795837483958286320581861721757188596358921352619460240783111141003036267308268900020562148925944894501259359436175600156836062731320624308300335942302286864684280408044870345809644946881489033177794411274214073905972509385025081853443585818078325215161109363242442078412467767954890134158320027654594363344979586549927352775122179348971100329024487717555000917645871355549806083428387174551510740406277415170508314013930448469595043255390934770820704438746680226846287656045223740970456212864575757253765433589991501723111349283349247673276507093862683184337021782615929155525823204060864679018584350198664616449236626047805173582352911801829473819716257856420548287399002552268782294531861044307530582749354857159464612674739666323608712077034532197282984431520527780132566096015586813644260638362821600077753854307623572051570760011549700086404680097355792956872448105606033894011249325211034851862478715716910351318098317462235073055445600788913751585793453742873645871575011254312368120842322624174088377040748360312480944476602729184057015051656484829287056139137256200441533734006161672981847783579426870425777686281397180010496761671802726709615880086835331418735206939612448568014189785749794027129211517031605831759982439807071405515538517844847131995337395453936325557407003633211760789521817585221141531050568363864015656155917850377032857488024617572501513117129510814604128761692935152947052323781843758662119637687704757122290857791485827069068066728391278369730325360423681428159767230943575602279329827248665951770097084280816372392919257470934322564093929159576570911675324552059534212637456440510266560753244565857780053650666935207162823069994168642009270245976401608147664847257478097145445923602918468190333726553477348695353350214408884469601292968120302853565912256120959092167412341361060898158520273430980578033283615081776080294223633461642357890515356686803173602145311496772770445581435552329344962251664820634861757866738642925667258627798241184063709302883262492044634151651994658566254370455359091402903200884100256312040711934448968461936746672442580489569225020545271309160439590092822541544463268533426041187412882034643696492203157648138380345238155701407802193438568253294017263901855239622546882897915540554324047348837730795726967582793265161080807776616790628809506329858001713281925924582100895205058516949494525404775360746800242700147711628715898862526894105147514305860512634764076826746648717439593752016981091450205680214224138219325905157837049152551192241208735383803951409473389318611123539751835684732573415924865937516864894195186406023082075299287338974985617801575776371161095020823319411908934508059244312073571430760726104467511366684824242349982895935759608824994603310140149815690838694282583953419385728635398416322843170598565928251008948245566957566872878410933291341077765964587757168310149993552618339375364087964205840003847689077526916818948068321698678580634600648600110457963952839286492456120368433937861835770708178174160483331639307284709331462801365771125203695333601679036501506286411771179356478466371039277089199999846133706226986078180755294029972320205504860338095560305434223870142717513058104380216534217755951955572715288741257207298971704144204413878632940986012163357533090639102117632986870199577619688735136171641982671285576756922788399755872019400244494805254001268171137322691853480768717673812393937650182558274432404218890165716795830092504006038854451269139422946266068661688514644144854785496595486126584275719700094427596033304404765446240083015003330945635828904540456879889562646808956056344635698359809122980121810307615343668791842201235774908098424020845746749480250031230228493968150238700366101693834426407680829010516847106747343533202689263326642017821987204198379227571773249201474341947841484730329878313621038764783913246820973197633452190166029633254300148857191017284895066701014019210986347271088592315626761368731448006627782281484973394420463868888960758456571245082828382317258832191236787161503122453609176323394612089392610273649154107591428370140544851208236775287517109359726573140076484883167679937747784641687704798185793119411637643401079174255396906382895716286464003658096068975492404223737955253794603292917474427074624811813257921985126549776342317238855258057066093621576391736172137349388543506440787054712724733714351929902790209621676728633789717707945424647314622795932202551916432604238304773822765612970403784994657889771655414490289356601537636506059630633540668966004253155020019786620832295013716340398464035529694121921326975153595169235507269398957924621080783926589222715272448512333001382889133434246197281158029670768804446549370298737887855054507167424473588183867129306361423451799860713217463289994064791958596393707675723753910596114457885133598827722087870205475031378162240407977079965705741780894289379816147786685725058460843981149531111077305483000609170911136256105117987859464086843265689958608631245579981728314471690324927783104556959294355515434065606672479061784911347087564860883726248320523812414137295550877880141634274353092082759073542206131753939522257060198877726783767453747228894708729812888627740016232447254616083811793863386457290269286964148214062697361590713892087804156591517210486166918491064126508498062302350693760363693810845888144783135834445720483459275107914282083677959902859083928875032482029775521224869225045597460010472744832938024575785892471600130775582062023878272193061310487390415904305141840856066854471449966368215318211783871806463051414948363772237435176101078346213756961123300351550511392097881017666255119701936692498950548333169401212336599446489672780300425159873004304009399160377420301130090220840548667078901121256154601732878274083925919443912988198336215403864111669611173854470467726392863485470742746332882745135779742733624261736419018562379545375219530321748923691824319636691073827676215956715887166673565933357209912401757557825451253431025747693604881713690621686167858219744691577940936333459129449160510808819235209959447319647390393099455096448842539535547990248788257122104501692418426138611810523409955099746465491967459296720489630177960071953135112112500563195602883124835590166975411243840449089817100566130961419907880139514302453000294042033514448434881036362795987670441714404817877298138315826874686384297523590724388478857461355062348479810410632785743673635599567929459250672800754389861093200567726961229637583914530837001483380532410543379178808635740256176170372278226069943352206118322145831460772582252843720868625641287469915960592109600735970917046451544327649110602107956537283776868055487342796708500404914011575888258621783801166693445809822216768571483774844336349211166887682018202780221757330375539154037541624510983411420067773399069793301064802947722852798566415308624043779921615142924164878241310281838407478796871625111639524853075905300025700589990075659247902624080335703414986825526953065803469689740247659679697747238406513764613979520639811286629058009047998181180559695439016003903881357460672305148882022768694657997248580460400012660432486548645683235563899082122850121202766226510142477990566049742449413203208379037292981372579830152631232117782866342773228252796229508883972635711222783720559388916997793885296450466432100900117121506381924708369632366674447411567352060652423766500723488622084942861163300492844404052460733522883473819313159628142050045951468347273693718519090775151167465122255581224336826079391816621822303168255223626105495626783854125988268174786975616753547688048470696349157820986061225271851862367289812747838282717803108577527598606173683379638245184557645313454797206651395736887938472236849228135749054211094883301796982372741547395906564453772212017758600773530741627789153931512866804522214072795056224424086844939559563807195335339900164562710239757911813442623702417763841711987654926596764767806623085777370335212362083472219287074618807717293574410073212778538283146396209465335879654943361358603040946110362551585819569280675361579349605639860541369500259745727582897877542981689785939137826006986950933513862780212428457834611914074031117166181914739739283145899640359970870223204551285227054013896056369561252876597387824848989405744084842417847512432012384765904782835425549094459233968070457664211471071155122878264991561819623627926333880262372914253225793341314062414140172730155274574490473184790307805173175893303682338867831595324962640110481753717996423770760199565270342871391508877323721951895865345133182018590702267767587465018091579922251275775744738686817818796951338347225969100414880274786178214331781720003173992149431162943730856798493088147979976496509525194767058306775505088032415394424931675512321970008054112378166751388523345700437672240294289321449258785591273449929277763122588060636647994516372038530291181423770181888386286775230213314407249945841977158779286510630823666794874531954849264977408873066751145801846975264469430308304058830009877847936256479160120294266599149318057474854425214160768778117291435668404499236900297424131383707235154737693048158279208821284454691082073113805398293615226956797514443641980322295405453487802715592316297186894392110695201202429766493762838610870110652880618654448011111920642772792153745389886282487988088444609829008870289124698372514394620237314847158615257325944689891058126381524877358575965399779508940612946505356752698254947957045354772927196540140797470465872981173922422049593321053445628827949615429207248981905362996786251749928247125453998943785518371196036350918211495419818611155778697461792327555523829680904008804725357301553889158918033900620647824381145207611336353509318294806462471680595144406866282528476146699281686381607993222639422272959975821903996892199376759265615394246785686124362750000355979718580889283077378477494235580698300760634411226008451425421231195968943017063464840986672436975037881398763582185826693540666572697955523730758171297248080432266976732113209228471452943075867651253916201949288558793355717279394883656247484185611284290148960360832779209925074812138237413452957662871918995690380225527545375887070600434151802190148905450418339995278159944419691385860177888158140776191591526429438917411727633875683452768412486442762845827612564758921278538292560806575984320419111343434342876070264391028167178430960841029916380540867180112055858536569592913671687695040303307715019430811800294135802448594826175181921678554591136091166123222234533705399521035041655805789426947109943009477960609153577242412616974804987219370518820587451193783882027688850566913272482081990571590525459945413571760746558384036245582456792669615013393459005612830205457439003989305958068472411257371962762541621711812536185443817476625546809083179799394674607840678405723709976584501615788318651617294083717813976156785606559359416337082680081330197365154198403454322111163790308261618284298515846642915769997929037146747477750707239594873787289037074421747748901623198284694767552864030834478613931800390357380038235790955643686047249807430336234863710394304126857542384330440483801158346900723800136264342750785682152079633902184784596293370316964955370683248875401726405334076686235290559413943667170513613580003309999619227325856475002302898121576979151435437593178305925430222803769691705989904969252884118410664541835009792733483656759465281805586390379574721066674709400138156319377335112877999980257244300074202107242589734417621165457311899089645822146252685604180764380654973747346355753411215881294642460142349162203682130822466550120805621090709483473556334829001231161920293663324912148668543051711590134744664931414962025823015213837995552679588875685408205132570103037951758939250289085938940029087228584316250206372245959495371063928975115031433197480018502834139215279812995233285136341456866094590725241888700234504950443807355612464007873811416406112723044240130238445496540080688288245489239372795264950169439056475435376567169587368677270362351897548363553181957389334953327980215553863118047102859450454006522321754610699764637476676677673686246508696512894344871803821248512170153412202927422698030634435876341276038157184943332958734511922935903232495224305749901689676157711620665192659504274547921903020777096448367006428828250020286668293846309495992898752421869301102478547818866408827435663298896005236420290720908047805460326359177660195229571388157436809259916502751258264120022881764847207609268634429060957545480034578149194285691037599230195216661909581721243994942897779311989100975663480497538436949966941296083815375836510014944941969218195626143173144103097797595566311837925401197151515597408352771111393949703614715300309594704685118585593156092604055935730333316182218944591739302169319494193447909258838778114327674068455323050647437602481141016403908127623681730590097466974426004889881818831701784485569646025627651674282464931111749261511128395436699379215645240792592480961408958266251146206222728265061937735140568415386782198067624672905691051658296984972663897419668419084921060666541700046606148903574725965337210691480587286295153931746749971723722795992026326497120397334339757339168861846881600034341320461674573807433400766523379267186174269410657017211051322323237491348612671894715425417248382714907872862554162574587066806266052505869471985133789734325316891402191812582750543187286599589495773321438633818545220420038862409734557868263191812980211101399278357494139605355874677300764542098645766521327566794151265092197302834867689057807667135597436201410495476398187445347863241676657399332613460199686557076197933788225660060475042564816127930150341953781173258731752257892535791795624776240194892561260583476638230163025889933740233566632304140123078880329278803941031729356440193312419349506267024362039652025849010720849624751594812876960985769834295735090428976093323868215191527424707967256786432123330312208288281935745827705122372292739024105249496132296031195274805563478193913023805831809318153469752676731689293901095451783762952033893573854019535747674437315954780780123842152784392000201797229796189928519427517863466558188284889144347758683321505136298867778510409544490473592309410568745766008810929418630617184215657434598233873967512465140523554369471387442747664698164673836236796993149492337823565274651815453314268703599290271330773470336121128384681963557724078565590565381495942382042240626528213346597587625000574804482647205152325314911455937408628022751897646948824258385174481103538680580135098578370697032511756463269324415039145190832405298943617982796182550948856747769355900255262301224244257396132927934832376298932294310470244314866404779786874163408014535778456537852677351719754516463521220547187833158957164536534801044155090517757767582149443542074048861979580708036686366635637212459658975769443726298251999217398179715689836747128865166479906901513257374395024413561680032628825329333828797988401912501872103047588176185052097595867164808051374561012731355947674363164021998267157051355436335629398874653799617211762133557030215689620244094877147772675266609289985762833888511576999217137041870432350024335459707033509903386932031352794713043137157937568179091918599119862196131925042688566819463854859419614622287177143004175862056629778248941978850739095685025347427810506284181554019688745448973274914626907152139386492782096992988706549508433792594897032677790959399438894629469958231988437893777267031230632365227605974028369093370360377328135977019942573345849989331970853545002608894512939089918255972849274636025465292809879979294446661307367881974591365786004697347012341109512197677642233609899046141756346331875926489550363161062442430231886140572567352179239090116930554314477758837039475233412336460722203708424594480889839765998868277083342707865141546876922492168798811528610036137227478391310658220506679856813124705608599861714372951280558836974479108688867821779426542254031795041149946641771742197917948558070490717535344349357600229797762768384891133729921303711633418250398961346256493200057824753843421047915285545122795192957128738586842081685026540779585261773334536242924272730041069714812806877026006834562125515217524146862920906460220671133574670726849493934194074739572470445780633022408087168709129544675702398223460238269444016507657271816801091381604413860505283047223140647456199602181770593236007604332227433038122129143947696718907757322037631237867667267758029704559135024426239737003447050012284742668644835442257393478968146394555626345566148729312717062654341029432151151085433230728219821163799222915684696778334445529581194322250319443299607440817285152911061623538676639989218053700158925774538078971730389732611460969772443358831757863649247852899747943036740587955164249611627594459997710369600879454543034988306055990294370491178621100544458586274260052610920715505645495840452468763789124922288845023559305360896189376050383401231751489398662980534133419457570315516728536690530342167041324902734457072499160668749442952577045749529603577779275822465960075402772097896625600534448510558184486302534703428699909898003165513885742823943547140743228454949326451558024189519023415794464716293912270739391484051744194471960586020005484611070124345830620806228997224209721635492315900866532313245217751366043366490659312069003420379645879507063256764458720809213719251098049903546960571573471827334975327196507809001986592947892313213650756622083559548343308830567463085280198425174853179363656073842436573148259713881159784465750627056506656624403419147491756988749673532727281818655960523880842598848430608329469371119160443561138369222925860780011693654284438755767147215035916778009408472150368630834648926073324876807431446902035524119686715950203037460230773664714649497608419212983278413256204042407824442027129226152922433814452747949250679757660682148002091432101860547251837447238753002127643581409075865397836613945353578156164835996697508201925293168387766816744569844654603643921501096043242779704551134345342172062254343600990795520609399321996177910043104878586688443580847318455026228900832452104463590283811890723374944919965458630127172478582242067812583949101377445390927263966521626546813218496128828567709326540251469493520485931782336874664295808699393561937356765462748373447735776225780367150687898336116540934809995493300905974026748933458685199072599375440691312177377184202169368712059316631747628792225023227964836961594925474058087897234600659348750329420046633152901398048234139539659980267270816312571537056684893945561139385903580577871900102237654945120461614349551323818672395185902100044121776636590913491894974235719149856389747516599229452626022372818941571082913878413839724539408064762782844965516027876209371981655839507693220210214851348197814616431085271875429922593380544049274620169317256828443143645400555987717185573162469819529649866825287139084915389111424239355229248456950187038152738290318703975753719580939710488994467147816636588643494205309421646633564301687964516043793339701697050147016298557378599257246437944479654236166094868574274174271384512257934364021130144916871675823980109712710936095637634589347823637616220207603543075509849744544532848980597638501492312209384079811444061515170127067383695465231695937876107654802218923918287562799243472883349080623333524785971320113326273468739121509205080465858980589382399039047807165980894693457119057136251863394306808428775667346768292772081629051317856511759930694958911869804003371715088640887795541592413937918090468613992001570737897339098570618184761588206654702168319532999537958823720440855535756708342600481371610928573536482358292530539931217566157564840883678192034234084227361536418420453238154768007110586296175238243661710892701027213189735865261867529994820602965431287329069113100479656349901409588882700617465712161141483105756168278981359215487275114716733619222966028802342546609514134457207386446441068942832444170939471564018341905023713527938903809568885010192709454734429324001628116382016168059674886990381830971427482655411874859217663358532737214398283066384901769590287262762573581710747719464710245712537063684238229459042998502262828137921354322568191535784646297888461953777267113893169861845016220368431686453919357224677421266095368737852774758072747069436954855397847450304455103906819774594304808227238783530275719312197607203866388312829796737448634145351522143727249144581611920677276432227202933509092849129014033213073500026932134836877136412962826791730090419012686325200546354653515137823912765652152161578875359034003235232529041445030551038881366153005479698622255975854214535517647150493032236703066902443716295894081169201635935416482019179075864616196554577325733634333761771721889358752636137595590653694508914406243458392033068639079533633426548020243261124789516699354933243785981914418559357870709128998359244065747517785812318796393554470783032969678508655882114889625883603117418712698417138626462385101302970427411450079309764666944568498961543573512170154516934030733077347011390401793486120326816840809916397089628572659647276123358418934205450161622434453373368292174088916280232872876778173143343941799708467055442433212811983909525667906899190328142761869234653854718794764373892817728006983044647225781856732794418957330429647492967599185136176709208440200429682046804309077749420158668207376569572222629491450449324155306743284933335539029279586250121712895030490996897770936473914500934548078551446860050952930371855950317887923836411092120999264910862148500793355417179675158585583391241106512165420740085690467880040887108755075148295868294309510019398434798606850940944015967983870653193978571822953717314549809777482071879612356659790788689290191446378310581764360023811362689972772393841032502617027457698990063500585254859095771909894811350077936806431581466260603030632096525502886424935889936616641192554793072472989578545719389393190495500614109118260945186780438586139706678031480792832270767439461669068646533115619660746660811960743207199510056808755056840394864940475380571409558504145703129678490122254066068107394358421877054531600056639072049887809318974262802007557647584564718727763496255581549423044706791745057717100699801877313442455511580941376474202956268386621149492353603057506666422294299029747605891348727380749370224918900909860894820355253287436443905348141749867491771925576351716957910010755626322998669846654679170107319240066226384547390351641941353616421451510692583668873289464871525002718210388310721552874049396035183188441221753522079850950286592132135650606414794728267443057867091491127437309560030665673843937951781806422805622649821526161099132012265937786139699307685081202450974389454894402272636845318472199659299587956351284481008616936912728048579859776906739462287619280470954453437817176739913311823232504299558216786293244860576381351111604896790428796658754938103280808431506324281292871793556014197905041880203169999960023795868757228574984092492067887069541262094055240720741262783477462552910279313403991265412010193331741991408533345827034104589030646394584775571225178997467782089439972420972460595474538122506705527377583125516553985904045421113833315971057005923259934797884725155233374925262802978359585749022273129230292341736066371819359920844162279988369846226180813000279377330804658445962916518994043074854594723076952367184847485559785891443138732867301776520518296586533913894099125594993660977809626857105792584439818073813807293917041161353605640684844087549979584066795251442097251342591542554734810420950151004868829417751849248593557493079561631630794532026232440427129620484189991080589623418812801043914438495171965885711428644514152030680291300840090721591930010434120219321689258186764540140803840042167486930229477727567384793755598367444937844249484281582475450319881103073961353198825334116726067391632719953786708440506505470884875149087815014513197724962106328197311153934030423727007138843536262951440289015899932750426515416723266109215148419141558665995844827703408144249823570458223944529082964042576145409660042181313567606147426824132792577837887861567514356160038015474631117415916781919267615102660441357569349835130599963879117580023446449449601317642259368507644405897421362942947526765565342288257845862793574091441765502645045904719113948008247973487514372055817268835415122888951090362682990117427754344308969712391778504788553918418486383827941498817107612288997863690859837642941213459978136280509836480624905190854971245388995639611290518975485258258293935963430402989382241575092245528936060286509443278742598160865139525068716994217627529619625854881702732393715633334118732246356170109531273560803718745979346279064931315608330948773613853337826327377435089863639714473476398844038331897704989806326700776362779303663257524850337846830939387162179805201850146350303416101916298294342104038128467391378848088100308970471619211069763867101329902580237810730719673032955644715057674543878270108164459917108806393541316989407915731156867565986713232794450722668441840078339278953936296003399624133037229127985654270517759482167536776356326230444212566045983103150349372767781078271668519136425954122438891875683112472873456429732813391357619949936737443539158582526440110018423144273769011786859652389833395322939513249168191042479479797724016343580588648927558727986287235484698278543685832587628479447648601497650894619164100573372505286849877884324688508353416415072788212196427413914602163719720207721622084319270977615786505751025390235329769983690785268697599674745157161603597995348566379071447710238934410001700231031749395759364862864654794193892979723082046349518258859524176918593066267608128601184007483886064983266382681003109800777938540920742325470349947170570881981209228950518830751908869459719352583514740483896952747660732509038766416284328597534346051397115382761360607829423285812367288381500354860138469116416386834757831082963411464557361560640162309111751212005068802578499729026905432387273565759917941943381241546066214138411803591042008303245931685251851648744299979427459229016110776634121856526729606354545735162996836462669705494604375806690502542887692629749102147908752050119215210228135368460494636723164419294759870526855946449728729463958147818322547025316964887586304990456764380873536240854667423088605955565726815969572257984992791212820080458953250050496353942600811927675178379283685262419385499148812750449243748052030937625259243858005511970494474235179645923921932135207569441296024142395556955936716167846360270542475119600752491520491499950037365158784572180088203731366487925442215561947042983082762264231679936312173588872496587027175780511742714945334788165934604287608579017671433965379502015179570424566836058212020816119899305717279521511394759299613599937742954005978967157360020980180493167886995104597727417695238356240500880953547627436485415249218877000059544923216994974963018840339131293866602577831899031641611051130760851300136975407724338069795021598560509965815280062038974993897586226818164011678234423941434479079014744304980612539513191521589942680004851546462066671998634509606374066321037105598229152737626388743831977697265529902357309174931975316867750553818211100477598823668492648518608141832784268284353312687204834112678923976169288094180620978752918263121564109757018811990113197472805954967364363162370508145080592246147442326404434882344663892927535543005516299248629356386860539711979984622452287762957116274578548748288442839793434471098302012636981191427701504799950362526878429572019616078035351446636913741108942070370259195812639789645986395412639094987780155048605525691212248352217249092377369267713277235686422975379973797468799494711457714916431414929251908714431922984153722241244437544182307299504296299603227370022257243240808494667942428785256547314834819024989563757826844682000675568632925738637852035134504852466770681098933714565316474720509543352980660278063213005713526789274500472535692542624009574190362780574120547203656932202547210980254826926279364286908171583910136875309308124626524920969336871434012263171253967475177964063329433023979759045845560585645029629551519994211872069781164858614703088975126893412119558551262603470926349184191300539818928401306648199930072902686678423570055749858676146731890763091527999014676025410625028322965646337750062696179788584842656406295886583135321990025799225214506214271619752489220733181419811769936406098501283442039723123904952084276635431632318094189282928106038095941361608776767120352065819124587134890202544512972350270008588067354765029500693263526990054984095794183737075008155650017174287460987915006831621108798830078274672256306410461471210969378561344725076462892887722937258956413246772445409877196144223192692152003480728572736100999786285198123879376849455063347170792142734465653414116061808423882843536175292621450834864222794276892718050029131092771866603296244613087964686675489193706270840098101290371270285755900531173089352685946749403715402386864682266570105212567134344289624935401288558073018153533114464672173586432853576019164115245575940421864099013319872651345929800575653560272052686280080280192140296798478064312779799586739217788889656326718389454303575261060647992147361946345352855315245436867673857135222545538980494115637913330913821682995923463456273894797246888745703683909211453045095750544809132272526965363813957946980905260272272886907441648764297581524866272880500799689010196652831584340533108443405441044744365520986475721467930211179978542065626663871215893947854680867899873586471691829344745027660944145167000161928467054985385530884138435960875455150773432790799561416297629003613290261640221672693139285816246566103946061358323554181580954998786581692874224383881522991588110779125873191353486411065687629180949173190370909248960398654151535286679837129822032708091084587638367698793014694165095392683652497029479453426087376550985714387361807088206265393924425758077178152003876268905506797359804133481305009405017358213390847230126806987891442175872471536008690296164067232040354495038545437092589038422319763369151278144620986221669474819905103987448933038099228081078890236975816448775110037804344678778137315589985766392724255540414255548647790956972434010618136168148933770057167489336318130845608007480503498965997903509246883557147942905231608968575768384847883156622696641440865684989766772015592839171142844347931396148362708980312127097175183753182771902972645377485652144951108301003451505705461612218760644906322870143597769118318082840078853034210591910626821372960021950116720211368788393866343645749114080778276669343649410722760405740060418400870456540692981435682664461775674203245757643772646688339386649964391253645892006737720819433118687450097084904736196247242046669133043284634471959888067071408567635158814607046479820922964883402770383645543358615939118862040916777289210724916255941066314294340079796489801862223724259628806515890460792216341422471243988698852234716420866959071037368544040387847700210976348109330666177250598276254162115620670534433379280106716759076282407505776620474911485530097380280633186431861993650497098734169789441474225165974365444151567176571793734516470828147597172481113300041730511338982249890323634773556358129272127379268822374639323668147139647188833502489654410894497461621673208711449316684775232881228281774082952779797996767012554152012780771347862325136854845246146846977983205577092377978601525539658619465268097924611225591485490662668848262445954993315122517524446505137048723720083364551635784615722076789676173161668101682072590602771577046624748301010618879039418000379253655781676273107659858617630098144485026866703699717088072022602104822774945057998212140470889356486277104904588665436892008584573966013714062012348503393566499241682098752593015023427319411563029947176938999601195022988282446670241844329442772732943614824544928457864295655192614747928488183411266190947165232103099891992901805557253220366799784427259716250465765048921731860103166542834484241491329703839415863469273336414460982350659203435967545948874805130158596937629890703087278324165883356638161440615955531399671952990375396742447134991227279096168030079762366465642408039890587800123480675819967974604109273829689348633683576063951614746140733308213282121866418222666604640660006936937403881745840896874796872991472108068468716805259730045792991618077682332258944449977437335630287034190868146225258368533332173229621360602622004670643304151301415924912490057187269831182265144028575696250706533880398863994753751126572388978575274832133908464187076897394823780477879323214036818638432262422791254374319304932516663354264226291675173445049370473322067206616061277705486445596161680075019390293803407368981578208839685803988391521738588014110295076683509936057415568939055646621819558169113868068935213011152139774158249472324193765131875143469758108855032238660908333644013334309543233974309838025158894307313986732683018731784119573133062695214381960167259416831535061832820462187056353680146003469716355960011940781002131465882677022083401699765981425381180171794226938884370352486863508821994083863759511926775692751895042815014728271280646732959593599892663652022708168780348421315587286074586273681487335625179598452998758510584837608825632758967683440775855733447386247612879348191140437635921814655387174639814478047696230600784880600016244265390592633568859746721482400247334017510482888105285720929270596359397342367684062220217232197820863344144270606749783848456369478270048873130656036437902018893435948524295736224976938049121654425581322209218004230613052949398647607699097999382989623214899704643113960260262089216341714865080883739686489697465810317514170810450558215112026152726755973316199117102482076088498273269250753410848278822355280253411142362741289875964601236249182090176508781768171096678420450512552551789643909455052887592596898841350779648226613377055587145921168605846504079428380900874869072032687600259054433116931712302780382310594120114613303587261855097607732265635733684048030353012039196083172042310947651740431945936342074534416490233803616352155325698780422591852737955784788541994143924959049004420725238663818368515103069228818614250963817065256224932005233289492736339960697285881927919414362683246132706391683457258394409920190849846090400207628124176047343151901687543596605980250488604224605473276431776442266115217382254510299840419531218905272641955903058142522857236643039913342549390564868359150353792540221321373885364226630174679442893320371916657737763715766562380855217968791993156529165357740576808968195110005921385346272029552437590904187244661207473797886158244927872766486763054461401146204745162127489985498695987967827482703336120782372008300067877221203981247717396850223710869513073609508051150823606342792071455474185076413218618768301871079389120796829583550136638271677882139110376993479334764273266183977874586521405454409820147051374121092673706608826566734663407287914646412703495353150426390821114198224185407146072150750952316556564323137658707312712347409492072242682290939729926704787706201597439418367596291182923122087067823873327904468412393654584301895145387519014279569497986531075119814156400577810589937772708944688995028169801114043796242069748274433556716098687864211038984185556225495917668580918914739528000903369010144118908311898038168300192811882463966891509270963161650082517949739495778017739515088349689275794523910686243135338631815758590137330156911303474789481294389228689559459718300903377101824881980957430623379535356086495566143659597487289141675473742335064983779956417426394111117254819778592833691895920635218609582664614120992408857258125937749306251117926191263521936350257811039521512934990158754942792659174322961049726478644215636847326048252630995013407117399270982653848100580762141440922572435245078657299677685773925383787077501075111370978977507787221729729817161319679728251199806382283562818815063294338919436478073158570864194268167819707998380279767182006861644960271596510990248300453776169096737926516787919001696668297357314320986501422420638553922184194198768336183523033931754393034042317619292745658825580928783373478895015748921988635997067684584095649898105684166800908206987097113011427538568062404728565668259027559259398490578728504578739320870033858986075073095258581857126077441109548957854116023558529992657246985177805928885546051228636019905180680142623217679807233250866147764449585214748849000385743936348537269990359045364589865640061989513279658209579946736900979135014610767458745105439342959565749470679797071573769393591810684123957312216588442015860490914294698499347686723976507219452175348372431742517237653866812922631196811447037101281929021819367696487371550932350182413243114931836331320643118186036529569595529547397576438931134193418008777093704149105609965293198036358929126816215615408440500325506872405053222297687947118761289760591299291243806964859157786107254732732404912157794169114064189593070845925713776939575878876345033277188137925082568415546082763427015858844379845503853006413635770312027953151169392130640564467489451189163612206674518984934472403065177539563969322392370764031883091739175002244498066691327183174251068284214743760643118071542115769828539012601694950751573649063763729355170101900742011778433456209974314964882521542731076445813712836090531709271119815536724212736100038346445399832877350582545728031684274978837391941188517660655404238714447023231184821660542084640930539575598903872989114227585524036165064986130472382914454643730948296830991495284484044705121826477442257055485198584913140617643968259907080208768282629574888135287459967798797867813071102465875133095308014352072169270371112073160438632060839667571366355080095731999221206263786652745590992927609876555578859152778609809128460934354061546226953113461673921281175234647349939926000324981971533750798109189426574256465880375685312348349215698410740129487665380848608206558377985616635303531011151983426167567815286058245108980398689455684470812595753006244257150454369961747958100232768018365000342365926602563758701701920890453728792467900919380887898634662595237958376490595995861727737220752750240573364343756136462979120053636430513768757043489637015326247656490501215742338084314103028820350738506593689329087671378721095920994912732160052846630138552072759478611973685729959088920363706184315495002902393052892363910954412260437544673644175514322280126777083206185547837961109444812566532618950147806447845016391332623180898313112274388705646027446242777341178501250555400448178546178226984894700241279560211093147991381349518715801014935359539266418261466086440101622832637458574742846920411268274108459409731051006461568531369822828466769595321072527468962949006820527295875703586191400129625616261482036764694447526014808231268874917400595394964091371947732047149219703498790135899745235715649422623129012854921111396927424958153700834754935269452102973922113453639274366229432457058478318253600761686229491436294325232407131529888982221687918575819563774185982655804877942074039039206014413092637471533483069446719651360603900704489141974791774031657240357390621489314015741314833794967815117092630732411595436908651798296588342991140997461810832347277112435002496182632953196701532418020989742707731844693681942015766250201561815008711298255045788951555978908627007268542905719628079782719822407008098073494863096061099245599064516133040347351376050944324838176824611553550026960815133100924736067663612760974105364733574550266026761378486627387904986794729620124175136097699794246626024940569111121111592861689347472011427094474812212463211408872575121580098835626979052409155449237484622433244620155754222427077679431881542410704639172288584091854866453753987260626498070415443353371750443128970778462624945302005398542483760752770155985524415982891247147979035257711680896571450836876402644006443198419652312448058100129749655555971966560266280661794106777942632754945165734970391550163073163321790122505142401249855801616071270943265160574117256585309112644775468413489249105054782040915945300255535023744822855422934709939714610630143472224805680590626423302792930622929659403027749707694197540866722263889070421017837009879046936741001517293299621534241130505792898247517856704394965350132411107219138008024646845403457985884186447930151334488732980360644810696754522887708993816332150131538583562582214399623438458399175766975571317267552270663562013544105021242624549514567511158402133256863304969101228537519002559537396518234536546754075814325298259263524299838002859748545344703945643633602674361898812277922282014565767863110159511888996267330873519330926664019863605602895105329054591147872670671392059090775771244360568788259574923239312693174696718102030408812259926894834858314255139288143129347730580601773337221437956157576444023810909674332425677896433051804111657525435249913666210546817881366073461713269033726877512100329201114040454100206111007518667431447810551378098365261808035248249956702734910113129709505686942854284919581343738752103261348516596491687837979406671933619390706430182065556833224887604216948102781534563532544208690881488346208205338645412270441393811663492146113066208651051275039224242316664564624538753959874329952808450671274469583990870572073951921523502443625921877482385894877873978734435998471098163828684297837772830938125851291678233999038158381679831759495657140085128771110364094995793761496425859185279937050281938000306264988289333441530125178347922855440632206588010881851159505005646521111368833051315746037205410373342088558297877417457945664819186495761691569248189674582200667755894574360467743917172393139881257932236318482236662462645242794064873640988623688911786500288779864657243682105255739372473611638652104316901894602993775360215593206000783298367076982594242541535710608070183967075120483252227595255204136068443563522082844710864937617660108594466383665754908061787554142175878088391538892827972501555309902485306079352101050839239592145936793316798487388294039107954190954707578132738259069672483088988462397317255684316155553181187898909755780774203753059907686223068301091952514943637617041703372319932454613682898962213052446137708726728094044820597825931865296321576167651392764437865578844511180604863247379460067570817578066246471682632628653355686713907335799957937636270131231449934276162366321127298700192149237071592430787150109001991160246448349185199203033044221615287734543862379467794427879624112498274430736845614004251560100483835658186874956648366568571823377218888937015106605857893135989061105836403922991434423271083684269563743426825640288021135002711160296440565925513641669801151442419651192760650406729327309652617197630541092130878831854030760687124270807654711577485442279918832174182302478924686623034340046859948798165334553209584590746753434454520388851789927447623287478132461178691098694151408288102294357425737835560051427899412029514181869601870020955817813617042693578429799632917783344621512457728049377076070885972177281432846282229620247392072131020140992803072929076316662967262572664819556955857830688790574723842030858938659737478648317013937033910153909883782700854936855060317435009542249172926104297352992372013853440586982739510328634713882904158297048737515493827316663411660997155548216814692611171068260570838257140959299223424006868117035684895932964499202955189425816062277291248900066981575260159997356901216599423847010961793358977300333078867453082499453935814376092288090372515851956590825916330620613742107351900011575443424040453751369688749035217544890535667995650130347412265207695856001302600116520649323853903529410836264676592923908289547789825820098235821748978123968477258523564746928121835641180353524823003301627753771498062065296382348215742630789767580873468382903264698035059295221429204989838813918268931548450541931100846040503897357802595506175671239632207002186980580273840562408184402737242766190445711940083637906292296841767309755007282989709104109530372098655768580131624240745579511858954541037970720778801912649194607442650382914775966148547425687173438355432642190966195568833296044753021360281535509110207782957738702178394046740609292981923038191657960911299511569253681209451624589505183495160466517423282212751545359136761329225145892963207495153493937730343376435232658152891636372415774473820346576673739729013682975872086734045870306274196207516666626696179168433563019772355431566731182401884153483562408599770909353130142135542153510495785005016424327805855377110031316976874041849315878700550612640223495477079450429673952678470160046967289352761217381828232594488672962573302527883783810772184226421983639210702171658089478980152569121562390690887920482507489034300305769967572699680354856098503625431714699954783525789554380464860729279718249933431333069245530704274201598514301194219532639359398304614643915226726053616898200265629914836716867943406598265121461496329316581276841863794384377831978482587824727314499938798098599463051643784975545200642963850636213321003770807444490152649584023580013402197333949407961768036096012491842939680068133952395726858204239463451611096135674509024803072566816190271400630146222303670918281998529347259058048502363926117883951345535745105395582491167662265249605274838486034655371640917890317287854046811802217028852500890376147058193343378900415252303672624622063946866463943590168951172324444992279091305309338887580071678670004942925848363115433423649960853473081727440236514351177345199963097122228087712127658366703299133681809166918008043598626951011537283991829992690760834498045577405902968345564303204913252222582943597846591184560243917058264748746031540698548056119165309062233820050055981715051476723429263048181113116861273438015758055975625999033857992562818428565605756239168626420594863152936921234135265540197033399691682505454426242165767814747161837478749811862791102875757286282112541898249876394032803525612545619008140564989840005426117290307943881532461426980071154988014333514638178119226493000701144639294771374605414235290044729529680734110983448855102389387568451113437343061343901158707202108673541852088476665267862313280842418564215011280865433044858486606571595938676700383091777342335252381412651614388419666966638848007918931298839763443805757503881479359492175611764560600115933880456417808968175667105547242861336339378669511451960655689471418646652890648971751752734159924063074349620469245701958268016795998438758035767791509940717347740267792767251462515078515355759283716703334644526216581396407748256650516380409582201371050566684775471496053502382565613740673263233345025558936707959695123670556458586112475891727262252275271659193705314357893411315420240784995371007842964263324961110700239094579744354210771901538019319842358444519748009736326557638284041151467825904749041489386512715794729252947128401476254587496570927089537434847449466121280261474527075686233730170038717734475685383169481712430640345610884483197597554256055736687240311542746389180511490355159642040210764153718281762040983876581948592137463232511845324885805120024249550393673039808216050034354739866253690535979469849851336639543229046924330830009113887222691267125733045711662871463827715582643528947897638677975054749419494252762507912158855976623390509825357370473896737420250455446737105417660459047627375174235909673924760855701627071699630915327054713581693893283789146650672077486532946467671241140768515537612059034501473968357252212633164286651214967307916156033192601420999048424565335818157844194250672869504755924946123225191697048066555343303354865831738830797122527669919791984935987739932208252080918764754536934954667776859942805989200004746931176425399896431704911906036175766273791069844049516834710936439447574426149112340750542606970694752767884006339095354031739061224085944086760242617542017534788250818526856566816797758750973708265524269926805491375920082622919735709662275443235425695231789080478469509023582798994155757858016612546960501410816749111501753957049831889608348347919808998133293323744418060677748738856306274452608526960213297268482199815054266996160713838795433675210768212825657454219507046518349895550112307807354491818074370993691642373011411880040710163214972587407348184281026111636602125526005788604148563198811192532253524164825098971287198260401999167141140567856010768339376420737068387646005872696321033039804742098913946561573101425388266489785496462624529666424846656440523312174611594619328099195346982693877279005665385174999018656763738107067999023019146621052694985713385141896772687170399227901571110432355948959425095575744128804878481103686237705795584537648868120801553541440962678864512571733529941410708086258999325349413076776890957483753010239397763278856364665320391853036629994012596032684104134794227916742071181615959960826266548392361026931498691778333204055623123554590720603784032300151780378806606675820579902756384851403469026366203814002799922372529046526220054649786313525910986724424509281841439334721637661371905434053961799133725894864436412118573293590428137535232803085209490888827529567574092298349227929764465234401431545502000397986742995295390231875362024896503409800395395829112130362652522783808653777276376190390980891797106194412876894385738607784518606195277000995415010527978882714740902900592296632567324758445338287543267153339816700528341628199625358462993491554113343270621573931034696462772616146083599080587731872166611453934467838512392556989864910770247999391055755601530095997602524114112503406897208025864211815673792850172912734518455517954718445632709391235944818389954305160702534324986173193055569456191951436558460142459386032949958713115162201473432144236607410793003115834438259657079958954865065712475962183720005009662496641756949737679033348119930803156495785547530939533427550949503319096609582731417642466916770394588931414106478554302319704519624970688866006997103065491485804270275820197462680077606617518521919137026340225200519559137704125926559295852851998124484428622770911973258126756002083901502574018282663136987986975191140939551362315130008647387520621662547811305773062629406895375958409498557710443159103275069141891698987765865718106496628766135362299355867349999029221913324710084426474033496825930152913181998737199029706735763169804380988163938137560541928517597970047314682043829941245206421940565762166046917848234834033813641612213752489654199359663153131855127685881102326010287048603510196150142896746699228823076620334616271011228713451916141937923728176603561419083318759617915105179951751427128611145998835574600350085408183627937764799667561853364639841752722936853193004073382954476558165365633846029123660885454100626590403510429112159680322924494277931421186089815768141737873844124474567202816678878446132112215212737060437459477654796415313990567468017650123439860222228560592533814535709251520737461390222445044939616984331801226148908955505649995911781002680983954110239281508885691527345031163927091738259954988940868053724310686559328833665327940412980585872526997341987796227894586097759454602153389370724518618025708130547641945765781950844221170910104092368141978989848635430460245592912086071852834990884464887503896728320146140133283135585813994066528320636469135269374788339511120141508787503049028845556641515669239800581214954516563929692159749904776800545019258442392571906052120726852743651732155198073233033824500221026059285579378493347918218147526724037831122357131525898532803322798772424782621778756367362440526776834567319891863099514153795008130175320199408275073352352611703978104851935094493665413922766274565472968504386437699309647139476096448811960465912409022057832384811411312048330176035601351469776320533555794355625731600809271123056322497093061795472981422570712287651790739863940602924797072814826170554561426259185784918274056916384438660584515461568674333674059533530575314905739644590493472643242666552055935854255991649659331424435143342275336205593627676381068133084466061495993129990535334546355442612482574360897693420653931179301472991513124731830571637462279083927279393493926029200975639978868073286196062757407917386488440669428975319337274565021222384341534412993837284650079439322603599839011780235292797330065962382225012995966775856494809864758393820702412613578997822297601510717778605702089044917229784764460537529102307765159152342952965901900061464540764434953262043117346148884341628362335818752585042538213945021471010132592132396859090955325784802444260185009194262708558046611772434466834412812025073948305644944415729453559136997908331174646251563272643486388976264562877954361820318168331757636187223125949596137339245261166620644366689519511980408107628287178636687039875253508020111926576233302951624470370596183448100422877264559645543541570584985843893383966562777447922329517308499222620932942525164820473513087414161026685801871076346930221301193890886072649414165644308131987260875020082637975600412261580022812205333847921126591569234361616740919497127884693689564913473171251431850657434405184763822426095764612835124246966841775211632876476757221913056597742209985883013314546251074724921542171983451519766807834156597091664417480620318805872152559589956292384080358527241677385879748606296168350225310138433664285516023083876988294780473346487651613970085567296978740611816793102875471774382592626198681414275229376655005497105018686184820269372626281630834564268288166858829434217236858607709960840529732722387685726037962211587799983103622575082774312561320160762057108703761130125226533573730417431437801287681312717485497919979389649978421521895964916092439077025757559843486677547647051909936979065754803558681071980393835373874259164324944101274472755773992354122003058825659139500983268186564068136092333384456735967735972093235421738013853314444884896199160062210405399726737516293371341811287983097003999438790708501870791952247524935363559898374727699023675335738099364107108718069021211234630839700412735354991056245267753126784610934301099961189953949832727770823435117849905981660319874513378007735190473179892079244096470870432252141995112185631874545044757092710255909477451979405232896895556189429368752587751837282885066340112892904588488073590421743376583523512004451020289745407543215337325007084529542308891924819723708747058014451241803288628839799566006012088829016326325752854708393052245070754902198624013194823716662511640035706107908231219639735915636198406052045336119013887037143870350406526824884099892899632374273205730199659895081562052460499888638857483690123762901047564118071465308506614333455135391746849253362358586994138216706860401148773736212542603974871846777002891786839408487928712742064930676528611394394309719072888602261209836966383948012316631541214115119595838591575713400605117458392473697093778398597082841904924193779448967255895387608052154456812237115680771776515346057906253681187573165887561418820641088472894609163125828757066084877165909317956484670445075392526793559429086192620071916110453418357254201003284371798624315603814927550750868224332266034712431419180231193944468494047823674113402064892918602051843782934244812475158811366703496845029265670430547091885292924099114141322656578874146352655181239374541820310606521726626234593932311352190000462560442619125111211212489983395738030034670866045047946910391777446837665882547422511418330433273482124646549361412730064576892464967928063305178314720589061569566352027772182923239031978398203502840211784563772663856407545196117532744690384400342831718669347996971225459196452243880608966202910390629076291827207196460611331208086876697154624110033215341330654386504714731148464278237548980225204154598905835096792640678053577776484023896419805817786481562101424350508116818750228565621228722825024204866902594491661395413123446677066400649961348329808786629243891926356025648227928015472002577746804911759377948679449806478608811780911212633737315508965732235681130618946563774913596464532805412267924609082615597438753264948894847229189843193062775285619544945872540470334006353630771759257525580111212490248507136515202703416193104822064758273349079045374764793672892615452634002148212871856491556604289094809579645037183865789035866420145553849942831955976804876072077645264273821474767340198159991609549385019089516016385549590328450184701938277966558221459705101959715920195684391509819197443341703057427082133514448872899174443998970242465951289094783252802038552722125107093869942399874633034744843949836836233392544089402717833757408201928258052835611732338392579054067822907015240196817888009557232526425610551299427673136633861595985468624955600868676596498589138650189752006887268368948176976937438728941867894518318243148616781113552622642154235507891841056891672235715718426336090638716219609794589149842777926724944622927436970451278574822446988260737739214664723191388032422518024569861209946780381171079575006309468865789366654490777614791349818849710153276752299863041941205786552602761133971927030612820562854215043964709485076761597283341306638929491581574901289462193872731389902952157176208887233530805563710320574992914620739338312329209038936205361651636389768550032936119238348846432518414647665908577374625639599426248997268225083988246924238412762106306724874851059602819350327494358754632363980890413109442756160208767225961827310693234203106014467239773698699505296422020440184266439858585841029068490450362981279534477821995817718187316080243782676452090233286914581302401605696781374219828435584666268548730417718943817852988085213266638222889385153401787093187934385501102228396221552149728461304894982164162513417944071491584798331807039845110498036406528288592863595123466957400397764115556208811936962478195953263436952983037948288090397910373864191936719466575499709134682664234943246726420765782917559409526765459211515584707009991479063115712123177005512879595982041246659081830479030588728440133673756460323195913641723544685338437620154592154320536059202677734411235631255961876334535358070235679378786799716751378342972228210174316771207450550020529145578000644381627146190057276778798116628852153017777842015101933413573680384380900242561748680387409902799406474830554384338348573523692744164211726577655924025899805893185893715192143423080485679375858699363009555215152578328716398442438170632080778920331905034742249001572559493110149235542321369051235954382096891738667885109552274903941116391462340293875041234761622687224946865155177191090508746238967310195090701957944881603423192845693349968900042324678499835376756405375917046794458534527614185901210164761576500502376006489414389035420724523467397932799025255482018831789308878512883385790166098920825487535439586524148372828168047877934796218764159037234007946371681833858101910979367408810917190513103086746019033395002186756782982994331829277394294616231352863550893578289207503670862109606230333644983441282298380142062310491548931375650030070846924421773505948613378174242278960518206542824201424630148277263080744985825596021433748864611126992185453228340092372155452197153537584515030126086809885959046516187699006854203921128730906321589539862833455781505267338045958413430701891829141612472020440260981084718583150300405711397537587199169148982800622814478946858499608378233492345602978208931573260414324971339726984572957343499637939938380906374340779957968427895177687708493616623537367206731929752881046766731702761328311196786980501826999832319331594078582474146975977161347821049953834568145142455050600445572400796746915570740367141032010184396540681435718714609681149521358750474683767149404834569545399699318932500601635759138324946639651310056096717508146997144310277813143836322969653142235931118388068056767193226778078034585044772170941530916825569880233862315408289380002625439560056528056256696130238030071390287817681646221688424389834213626312528523445048874146774771632761685567432949822872898994444416923839142201236191434658649566230803517440614597296105534764630060077866600286274159488027626415738767674624855521829918655711556943839893999887295649059903373783659096843361829072563238996795671008077529687474863650720579718512245932667005426924538942291684412242858492167750502305421649885247607351151051245724939651617484657491102998829607839091954956998205531348379118444583714620322093407121812552973425746301292643892997130057322599386837114521112980041252674760624068728209087613054391137927520264896215401879735714149361461462158331468204304266658918417739256415063781256311028132699120813212969938886205967650539090343001605399484440282783753529388536157932415154120224227896983684332199443120303409211438723931239696945312635154034628964087418190372928059165297450133024873276440830618503669669931898318160698003154143625324013490731780644027259697847793205328135268656675541688698406450415558188533736689083773960450542546610558225236938116109426358811611305400789474520278034605174210911749577109282561938978788774789790112910138503215293135547123716014363634445156986040795770066321930895573299452982537172574461725943132138994970825386011886118180877515351622010530453681125245465711990770082732231878222347454369068847459985970568497445813159106538930232469620236677367441476846683463063373679658613007903506704368550828550606454411033143270101274147351164476563137883858558638080869777218594472108140934842620012822350056805729671128839309347163435083588347347509398542778486592281575204061925609954720792143866055806519601814969328125080026848624046500396119269887258711188505914533930936201292344838999616818787548656027659703949179998615835297012112393805711040516632300736327515513525765410758583815679518888228634577095431641787792344346124980521091227200185138359845962081297747299802407400243363166342232784671269254703514733677091221463614364156807851053667211093235342593027427657831158790932080368152394812380617652957601911092961230227135966043882447797908961316758855788430608934891332597798388140756206549206445058980205561798534406945279401523979073240841718003134676826397887507172398510459467657837733614430273517931106469708261144152135258155802715233799914259611511624765528428704256025515903494720098411504554180718895831281774541897822361939830075168845335628100070573051911380517246216530096855025103818711163315523965676149842942619424378917186139140078781135627463706705206743749446551088670917782658204672865144568676717171934879343528989138683095766636787007598371665881584839519390142845370609217749394907022831094285617708244328542622923587256625996611100350544771990544206169257931115775777238880823138838928326652319684640436962734620737026826286403361015501098561884021698856892028692184865130908616847387999718843780623962690486976131750788879055975515821027351833616700751521535348255212183505039731763211177267281688627111639854006979797269924643589586667287309251987325631412955735745199174316330342370420401120725385663057719473507821894283883462956378787835937006842480406652442967325296836539102788176851992375637004525035311871834384035297619433020477830028343512252467207359937425828628782651602840902536698146468856342054540410958173183693121726704871962818997249506955253462906218924754911816426051326623051410092426769919821661388544938690407062078644084246087265778060690768020317216172841457636338351900016717617634990885671117218344053597324895735534667824668379355796951385597119838984395950243186597491699145939717369073863144320776861718353486979775208502662053490584278637314407888367670842965633114441214191840902114401157030916467746383594085057533480322415931640622165746229472830998435536043897478090337110687736229156754188180783981568786721469941583057440986311374878767799423309399743435699952656401157744391474534526872525577943741820545216839087940048811981020188221551664362916493756538843402532551772476975054769928005021438446475786547668192028347744125926311002775082541123744733001367862532239989180624428083251704682699338441096198878346956253327201385254120857099334224486023539926636475869199401697050706709704564942126178127024145081158376556396382307890846454967392826925191141533588464446120384842782512885030719691113479785936422181897682372377634358392206319087293347405165573051013503443784983457986739397303951659755711902202898280036929708871349229677380955531135382355041396832105318962882452816684324062332492140755617948586369679768369233404130777947442544809395086644355288371031164878727142240054666656924239104634714516914981162700469665291831921035516893616366272581647134394119916357556345185443672642181243336148956525578322722901888215239081195228164620931149903418072734612984990861591116189477576682254319037332989845225006492473745361962504502244601306579022722899116698502408678981620007687206280211502369090379534870473209922543758830141558974614645747350770786009942237277975065886838752708980852420319289909470065453284921426958820060860912547968126915813461312801060880557158745421764317824477224668965289595641692704603759636272289922392984829769759930906895362615153806565511679941917247080373557942784020770591428496082596987747751763930982798055843783772509869627933295991408526082577860920904979153645457101515680125361968851409548516278288945434206824795492460451676664584622527039335556095559835276583304712107150328603340649338416565138001710366836110427220301603267536300434995371412037735602515822872975040513303897303384068633595857850598634013816081838008718192734296114576114058625166588268439734900859875652457219496877594177046943604217880468657201411645958128633225885104069924755379662652301597162144856968992831843760770625761849679914473724261980765675853228605525395936400537580694280430269577666803662621064156374064380795047952843905354702666522169973284604654803137389993794740654485063357052640327643244353289902158438789274746207107544735764031575763487351681799005354532235065738420793136114876423702706264784192977092605075677322434933467261638957545761583310897581596757576099708220249596315402615547449811258274098772595767975148199858780912176949923104442202306167283275395338593998089076467082919993875813092686540422657583211745941667477420387682749423770722371176711440770241466185005744820139839364161931246204614590250964667613699586039105696843756089132413587698529266123571122699392641464060594896686255000286349308520182858823922505041619262110418076745541581068656769462739625242889717548708525052957582590756054524857729729128884163074897367683028082999613197185071430816397243921246957582761888011902013502046521175785824378549747757060429708616094559252530943286456259573824876897360618199029789888135035675536836238830858154612101224969540004362418468116828733394067071619094834119192381061330841316664441061049588899586721642482290255575208286292849101098157204294130138613604379086361865377843693974190347660270805459320891844486254415394589449265805957866070609163044240215276467594685256081951456054312968304572377118534761435572754046890923540780857128843303087480076756176908294162258875454215625605879438009727009706957052011058112158405092849808150454699898010504020658427358197924706879646645679217654729256314644101925991781020908067209860432903052056549395859978634673449679793894587545699403992442226556028273355609553718433431441043600839850509901128022335138477531126561817563052951818112466344871452865513165136298439352406142461426841249349744167215211462201856958171763185509915066871557202609976422097705521607218007076949905616466997291795892427171845018248161688746364306452425693067901957072160724920655578070263382560414236219790111925845401804042874626231473586900713136700340668528680120251792649829185478364436612423670558269187349442681508325802554121564759469349957698934028293828246967931083083340552366750407374563237185098610467579795626691017551111696375794632566420944390332777035966412444887780000142792786474906237446038950704733171321591863778506775414417244871361151985343753960622565173525914017142658632189619590567579953901355146307860289920628095729505521953104198806475901043428174675885763012691427414691402777372708295285800661047059257184878156039607361502282609092472145155629020452364795514860505703661495171661595680570132698000686012049581302601686496539324088185639886690134684949107404094045382052835250987070076917683514025059361362917348041561649690435708848183407070122463835177495978434931807907098756141094994603298069694674398209768957380225092097810574129592437089564749586542996043955473900333654568479709789335971798887827686801904460540467865677027689550829957301357031441293202499755808239595889390343776823858027241753687041904451148491000701638788866527443303244798353144977501533227358565575562871148717136015207168044643104468539573974559109278208337957071797050000404791701230321857969887265838290703017681541507427219216553339933911729553619607346320968722169674906365930642031190108187309866698730751112035884689699325998127750681510693637109134666678358694804605511738203116972494048173561881288046498275072553614984082370111354016890599234146049506408930217586601310043382225155293790602006586723309761952473426913950653550473451540412537040844981832280351152719553010155315779643973504200102011893808789407622680574852253244614066659740690836106255080636141827622648920851356455440744431973891286221916581395940519226379491062622557949619323015294976128316884142127273254692201566221535993291722726824429978224397011796963980538543719344552478860439976119123326126866135911954265742287164157150227833596264862033758171724525913112274661582045165336117491749476242059485055496855658939569783648930874616444032795770692811989711070416626674549072565158909547096827702757526868214882869848482882895334613943721514608288273200043892983831299807777752527783404536944855751879449643872865555878022636694601468442319492847383647991541837730458996851329717189723152357195142630534671327805003744464233138346228604604420906724739299742568484064402332984162200299677314555941540756085601484070724772815859114575370047105644994716073255303312994297711507688667111372508340394375949444511599270518003666815605417363355040938135504772638443780802739420110315784934045808250159689556911507465576522373384879369581423133808372908395126046527165733868992395983330378097210059061309855675299214824166980106438946388465893032746876330529214090315264487694311833585573509897892176591783024724063046401619752361587687161732167401894810193704615039432983698367320989451012007935477524601993836803483201671282784112902531637768152386974874069891554456338470886068997335387516293741430628929090071441662239038884234173899728531761331465900762538562000550450024696013013041276269772741613419988828971581307775421454676283759907835890280258172716835914414139941997246864226842927910286491952457964172598486746801823499883289525136470463259686424923202252836635926487237112234901430058335375544704111095372685959027634498921398872539726826716273309532755600232159697262873812287089717236061836500626823126326265000782131166737436396981055809196552663451847757669916739669337840114152569720724607003451117267995567994278716197599868498868499504613921560218989720419405705224686948829911335998526067742700920751875961688542674530971528084921173369443502591036298873113580558283327923632374846829024792103261108836228988442957145435683052982534100368857486596520541005813421568750675888069216391454255486613841770343088343656579533478978196952570548793705434786175400364529871081746553510631790470555305353575818180263412647610322053281958333709650169991655482880646393162034319415169869715404353548017004802776012246135035680469513630164476441419165373309836256541787107068242348737471644114998319884685040288748225748510362275814193003032218329136392160651437559507858984247519752094890603093464773182031701359516302105709796441383942482126236436820628100695415100715381665007178456334626621805510951553099818563227597105862062758018944789963719520757600640754696761694155024560021137332860734729181075217487476158044925164280797964193566930279669853124880912788393928208202039636288507406446041242052521859755489745349805125099013988206481785151092537466178649262266924670940433365353450384723154185721703320537765665130112900514177837792916465225324213203381932494135030071242660770653579394293077848727548480530039314402560655643843228341629287500957746464999592485017598577072424725814869500808928640676704055437715755368667777869178055420870052949292590810074558735176528302674336635368111380809321140544980547834029365804173292148648764944650020358642242985354640818801936101027493482568730026653812949681472711050757061670993430971533613862393596074068018527209217564024895683489622448175444806609829975400500560494961901922058110643724501576047179714555318226614896098410043959228359107072059390732275280865896467276354378779667555809862264413059255328007419277264382449269797901421443684289504434023018294342874646588374043487757470888458739448424246344419682733630063486612284284845848082200098386849540843179495901725615265912682362620236378043857087488583885851445792168657174285074517787794353111581938475610635695065285000634706941716564964158871194663342798625248700691934786326964559957506968091666346658649538887147801483454281783308406129382474714085099011670524040864821951199145857860093893990053121878035777606370044971233422995775006531818418371377854961879633833860574303556524276310039378857746457762532392469835284836850939649371473159534969617356047902310479829603039770395061920285685079410248464386804564762738532813446025162693611989926141305550266636174461647363386875971530750683018959788931306325061542499788373944964264366609271642611579617828407602370210129867811443213210238216145797006705924149718612697315506665409821839593899408173895064104147408812292881536219077741853805907027805682011819196340281524921863938078578457455783730187951552156258680404776402269020003274165306265856393583749830059848222222596239837194714383934923665353723699896478834239781389756171609211365204098403171467481661358100221881011771939248476611966456464208704174356595308564135610633081487930531301037922583649535439367554450601352882751338444308671495431620247134552218355300592446108657412078536455993983298842276972291636613127001376582385705353639412816196621241410667044155460995798067732939186283812119155178567039318587124655795254344194138115626631952873563518541472132377811898869521698481305997326032111865315007521580827208911835438599998209936771754015285523528049872714854594161576104835173605360663433256893321174500677443866676822244945937328103519785578499623972819946303431274219990590331800174095081549819277108118605079565030460618520060125538309652437843651318005079673694682329633331262737672594011616787034377920286548865871990241124125930389847962147465326773333041841038486723950979913837132232424212766009680084039260394309808092239245178397149991159461047434683650366187435641313266657099996917515389787166184265600188522421914262068960286280629170860276043561014465077727713122948482501533343577425515098918314657170991771677288291237112484285078153971172921955541933978595168005537341674223272986255966005004724734192887052846869475027540745029613702817095213510879001055084606274820702669482675567661114511048765250839571335209580130216460838151266342908330594753476870117931336675728205654011986178932369589679699480026663954620140371497175650816974778502869302480799382245666530715621870826546114383082700125643913892120116944643592492025135098221832657451670338623929619852783675360062851471812474460950959261982876469266977948793484535386800836291585838547600430458149956003068873026275354503492030976047410866584210374906968625079169359994423239868833611831860437886739296577694470278899141950217198804279478928482396281741035450305381087137956312937486026294466812285443225404563753562982694161148221457729697543403117211534056037159504433928033758221450954045816412203460096173591113010995299085706289669168519077858496653777685058462774781048742802145203783153622590265922909880191022428943392261266746218150055123329255582188060782672025859062951330584370451735159381955222354991081868478999272842281044366908229464825079456848811556747224753569902888992349948294394417386604702398084002177260801999558096823159408922417679314010948660805250214788163038109813504238020174192805274330175829256873361291144290657202470958024464355182694595621162664355335575109641108019863955183039905348807839860639583443209369597976917898975255927756318883217125158323188432147757973159286739068850573566472946389355157204114244329813281297728804285382244383275018154521970985442867953407380312315427344635997834858495791280332175771632275724422851015707367196661996740948750817806826167408509823664928289378598676366534904653660219649311686495306019581789737385398861813034778582543951505063288604574763125581568224509824507732320652111901507273604527652286677004072581902749369590411308097457838474734318729678166094490735315158825910598957266196566831007340905955335137986355559827721935774727520431536736489133646497314636918904045898168547630119627285237861356091749453921226247221189205198773334508370929107253593962320991677187407158292969807411716348249680553861698059333960384061952022529932811118792670777371522241791219277472688825032788595598900807821064025727084367644279193560963754021209533224159648098938138897651167353634738943512855937119929847701682544343823965889326065757222856202355617401775362592839347608902771441603184031249600967114448521772458289906765884266741683296070312848732036802725939345676626128207813957384000996124015125302473880121794873815136533648962021714945067133218039652952975467157291276563798687324329509890894690749600435141454267755815872879254669925760804327837512622056450054100563943064205644132894904724649753273461849732947750950318892076874172561395889757623794742051338106204481594201983708862689025533852913075220162298498521408302222619211501971352453079185692990239525487039034560219001682584644042429712132432890110095989123075495089951947314618360071161478554472972575448853476253943256018256176191787406665558299294293383118011753937474048088860634178591619977524249544515870226094361137451724341099549655805882199071029577015693344394140005459430562210009306007212160619940512250290591985343777144270909433394227318870051642952703432969783359603235635086326590940206654079557820361858803985901352820306640075670973761094625810325938925266383697485058920830156780890043528179821074426726646892090159496076699774252462743003296468848894440246329390675517314326917348535247344392575134547975110765100230098786369239755009011645838055567815285976845154811963594150603794805658046643178103567571422826190013006324538290698829632796697335855898777009902401888626999405495753137342256400790093771851164142026195708971966680450914159415508874158353069165681704214148704096396925822076000999099037177960367664928680204296031330973329513043019531478582290552657879605959748723781706697540569230008978802233685488299273320224173402308821396605705076028703091458684446434404305446786919017891220283514000822231301969113791915275478782116826266131217172541488866900223690583206616489385417357052653832186087362798810698608125708174971436964682882003916941074787302842514588661635241670496106396013272450862848389439774945835622476792607700513877960994784444023244535515367236417832047160047842686425439581243130789711533327099738264483332170248826168212852323878990004424458136539605084525685389941117579923590274929583701635725264801675552048416880730084682159141032061602095908822518153969184345832368246349796791237705253604014328365839938600353614278196604346182596856211913759472526387912884120147198056585835449039272246077937458987576774439886214389852323420699912370444358260232957362241594152427893042987286646348694901061884153347224404897185244714988878721235249741331733205891192583345773245271181065215809721753552546268789103530584627582955102766238789034180227033496908753954559442872606348501694799372714604112563582005256134253981632148673925123958392144188244153376893105585538878632215443199876671156200124258183329269230401653758147102965751391254627908598486096647178450973554957613820383232176804901367407854526461574944992792771997692340341579500807966901005665618694700432578066658887701666184643005959087961827038123629359638680817646304363269779135296995063084883350598789026029261888238576458622112218628597005795854841383603100117371645392379087677671730546070695205380474943063980137078833484851750335604497411815969168988222912966963490703420648424374839166039028571391112336670456007104208199488256742611780723000856902724833680932813165115420103623600629754035022598136598284324879291167039263939602270586099148722841749698348338001602102627892483467664685575945922804589156153848523654468617792697631069925740960125419065588867342695297711503493309121746628492626329504813339099649971152776820178852224171747980124568900882342492910231305911339987771743599776056426493368065854658517061956766528432418620657850899479167266974611745469893157973186200915606196982345741317617815458078012654093975365525671549378482759326747492440145742865939476458700927084582902173595246468923121993500258127118817510712682229464760775155741201541514600557426949361225584869933890872464773391873309409405882886799779517421246082303545095458859380402446594081895258007341282291972248510447602428866375717921441802973115956451751067017755926799703948359362202458047410815599926421839732770163863923779310312004099247560829270240877583147094582440668354907280635381774665799405536811166096785462402929283209274082532179420326311142170855149109718991800522436286670530573262474553330234897267580582659502368156849702540336503869793141249251248711875241338652384163679031798271754333200011244697687171920793184366136653609675260913447490716260369102512921169468032733011759221180024634841322026334854758769621776129760677261524673475245263238735691028922711490558778497623726246195210619476973945103287991049374640167795561904822964718659988909948347366263005842903897781686091459742831305269642135257855213366335326678543954657700702797272731524058279115225597688626420799288797445442159014401991662283021174126807854955094717244462121536096263265659287256582312775210447148018023346267415122661885798991183231789182126041965157729116447365089013773203954468034873954109004490473897192325956904211287944664222342774612376307553717950967451944609239962816465282132820068485341581838740633340505172574050313495059276151555227842575177954712606873916859228835275110831441243338730216382196902049314369310598039478703302477053908304471212561821244267233815202119081861099243428635888835617663779606782939393621696650734653294172971852577332969156827831872435085937433332071993965269241063057829666655176805061083675985001858027335679580968623889807681134519931734145331787909609157545139114720720518365212267570446263999712919371880357326835934615296734233614727232387923900537437522052711315045615507614286605298679607129130452042226112991285939885395534839789886275051881689861607893498698853812578121763142122051608762448768663258624214438410891752207803627152623665832930924059463714142134358924568718224370069605133761327007091709930399962868052896958273555858091802463605945888430844688707222682122761797148445760227358422931854912028630533395092433560438272283280984547142140818494059958512648034097757607773629511855104196259111456933761636157999712308624170425650890403856975178278436399133653240498565094509449928411209483521341035784418677708418597081438590805962522580770965214535150945299266932360967763925320508701062576714016432571426649636740109291569511473588649585221509037637828980319090985502343892584273972726663236055182962118246017062266386390245897197885289914994746977405944237216546206939945146391706447180291387566961976195315106546887030333385363642289313367762148996184904062661050041824584298286984436183745233683216265728778920616475393925114884365045657982321277190422408787052130172944502251048318308811412454420731915088328146539303760501247337213415331767702109934457894480135702771733695899064818637816166708122900031682051231605434676313297945507628923177734399304900500725664813640620889050579754954912920710480610872179351298365422459483368452444312060609682361158364595727517633250913140392093800108100186543877873777892728908424183903634935997570288013065938826957738486709943060514727744919248708557471669361995138614624228086459449982883733148179340949762745516746417837368553914742888554377571254590462703782075657248908700731760594041455236585805973408588660020188616481348716339492496697332770063374701852470113525688432536146269429459318160773767692334376445502152238640911294204746096370103342610577726218542519854004934555273855191544897626924336061484685969832173573042651756528521172514333971223151686195742165393621878901096045422626713896357402102059881974989291248171121192547126262889109653336950390851282023794871437565115273992195529801887341862118973778846645462778358617522372174810017619762364960217419616035565763836617453628791168079166168140663510065892709989998115609682478700859210306524868264512158896159171304450524228002887952975247400924639594585173116114658029697249988839608982559580609538339730980332583367759038658146725168656801540015866461588228961364174559420211075434246825449975456072522416769667185136212839131285687065420603435352749195348949873875949398038505346458269116393294400363522581007972976372663297995994368420762972132335511861583539772677797428072207570100200070091298721965773148540360820494863563276978349461849052930760996248034842341112379884571171296610251398205941803972744247317961578636131540676980069936678651123291561376984657854143806982232579161956023772380019672719179573348979407871310472107836282557399710999915641318262680179606278071214145924153029478512538929585906785632705296237534449854598009448529647555741867991215193131127457676272520943477012407462777480962328037885938208858048765974962345292530011847556065905423476731199284065649878421185632693086395296528746749723418649165842515655411732703870724110312914387583042596190816506721249595257212847008922315603746765365538487923067055866164631065182450205465153550406156777687251258853084639131785137184099963480427062143023663957928414693937459778707534417914858964722317941882665462418852068586318095467355891619445962906562429953213297491093274118636166175590861260921922045910233640424281154067627294786808794321581149740020833317680893319137773170848115195595706100260170144345978034683401663272637891644858586576973088799995621943887272373592306441068706990170017373009084102846875686297726422934561413115792501575526407476430199123950730328319782900744581524523728127884649876636103199753500707965311245858063452274159400316660823099373252684390571349706576192256256956629461187355352622498610800751267061205598257689078454250512010698520168831101332199228604582641494555629230195900951161980638473560406798682356496986172469805754571456509697460518509164334386385474928026517977897665437364820631621754068899477487324510155672870449975208781108368417111546873771786762072792248710966339291528434499956399711666690710228809083260887337129915802064409113491757827406498172578661820316971757055040311372933508890231455557200019406296936114225453703574306139811811751603226160201587923697602670416796301400346238128060175947335537742710345899645397953945082622202446262122679062811775766724090331627313164782186910690501816768333583752168406340976608284221635643970824667510547398007697812086208056485201988022907539175458249591137875974056600621427998933502152180537464402926096360699781687237359354762916665859636351015836335458487892662769160751076039503851950835127049631677062532916246168340836137108562135184250907180043293361271168183696248246508622716606554558393869511248410756193247576516469616677344094007224596222633921320469488884714246755701070515903307656171797643062979724118471756917967202869894411745850264632482151520912037562946729683194306732841768097102640886096592308447412549881314706600540246904048444009650480086189239917041125674871712872120510575113091430440440748784212605560131898629151088284238850858398275373160461713059780447174298757377695113007320444639009197590521694982698709183677091277635044959477944905161703640570908613916442269994423965691900739854450128027646164884471582515370436539264574562780288683521308882093117585785281993404317371166706357911874405955778985252012250326287732394424288912203737942137966650680256544586104467863843552792487840547261189847351207747212275994793751375969910059497486484006425484552606331725030525315782128833419452054164720698526073243100720054584132390397786894063839567675381585617426182289079712678373886422943068401938978373481478726547321709253385465033528603494526792487079631337119849784594750982242481697463323523835757899947589063770041902057815784327760033384316700906530501711111118800127083817349944982188049518259078422102335573768567379537794048986703060302660381597092925659743254516388791300666622708940148782940355166728867858209637761497668809294526690613166223143650898986657677827316829048188831812896489904039908456196875515485944539152789439091108512892581422312525547449287977405902737485764012190282196737874702505906192842522737861271294252760427784477922016381265175897895407974131738847777175835998715682270218860066284402315573587955625379262027450455302976263174445185278360555771847925852094376185430650529002480222562680723760802609925712014529463012430338284683036112304055227920595346931833861894604479861184425675138682415432360427177187401395171361308073838461766879160221350342650178616428033929109615623376170349529085392051056760414741261183297705677667397989353231308302513720329257954834682759848915383723309265966687477807039879763943954288816422893768673562899362507802059505530684719605781844753167090121916446315378251788403050042636535161301070221622414003795959235387199307637815745897864649671408870641080844752487021436457867609165469893494519108287443149917214851904188600734106262470792188011604381764777383338350760052267632736811085903485930417067230000936795501605143186613489847360587101819740805874325496291588070702555860159684777634691856520542180011896541418120589461670752360825602853274715324654809023890838738586026271129653238603427845141695254821704083261156432072674087856298978616792338129865515213201275236747189263721514323687691916638372628812925332430472088762279122558341648642820737076897483127968537554899231271785559785571000801363238797314119939555186309883270323648446265291683903412298662957284550377884740308825707765626822419028373384693901569598732419754109911465416651427185898969236028906510847821721149759317199396949406773776959026176476084835672045604140710051989713628038739017506144372840412918782547840680506707483299434870386952088804027141180930937985076997752911004241536038621251229163060164383658285592986269138540055818415511292942976111878932309976779734092211540936016771538797764614208695248820726818488618580284340884492260080983033938488223165091343284783820795093538657292757852411059514201667525566095770198079970013421351457086338943894637506562577549489500505345700179963101162440812923315413179870578356500544964256355080435772481266192731481054955112838833060083641519685850492485013609300442028708451850171594164456450471818957565057718554734890003935674372294094003406947736791034602382507877782146954764875695958559555662089227094391638279811562487134244884544055237164773379510509130154424150878323200949582951293749851357736826649751496316295087777388583603155882763185829961755861536649671552292283839899985480915568587769652880249822480268334402676081919102794991409962930035782703509473932440212254133092031835169818517400317499094266032472376741509681409719237586225961814429868195687207872370785910391299712145303308307624098130424222811697744793128018935960585469144390322045973009379335308190175539702365313054026399498654854823535051359387214702604433509551590604308206544900696039711515465710217019270237377408247724614671827726696782684078402083231664309736755849316557362305640175452063655464600635968760837500187389068319860893712119096564528723217955056096962510076017477854447001632161908803861815265756962755036583007619762398168724143551671058785056898651189945726168161618709547063797657882507156535041638051778584750545789592859933109065163824494902754259904382294062592642903348310080207383977093262854206970502896684373011298994838175723315782501856106498627506671688427898018810916576644488702306854569083887980935643307590136891580622092861173081991386899225265783512390387087618675241395805488877388203514925322319249512628240397043267424316346214880798372138909836447685776546030331604632916571457650805711928193412890730069173368434955456169062876116705982123204883735327932525270944148331371725744198949614519255968661668877116893421906434158570609101039516369164465862165888971820320611024667134026437183604156928543446726851303772350616682463450594892896779734924716662550183231276584284909554870774761344463594285139638375385049473763986209698599947504363841744845396905738937534831387747655918504318069031178577833949707597675019014979819375975713167654391186892925598293949662857504309085867707127744560110331729053905270665093393684279474102846485688771403188908918843898200623107058536064504180944957626718131088951061473355331890774582655629380770217997299172399369812230505318661909594043584436653194685950156629267028761647695608727879196379704086797623226077740414353729520170048823858412486348036610850053024228999695451633760555735448804018924020225262515867301864398436800906305117712945997375965137241193769001774363945244187339225243176964709297035908716344609690496399676008204201956420293105018761127501141813026823764534539776598931483556954354076118264888359932293200141848606312268896847529257921636615929830869537224725009942590674428081227053294541682682876288624040589162919933703028577866605056877408405618509524617332365627047537666073895252980554248260042344521765191792392698964535805729281234556069231525944937471464750535671716285867556867338992380328489017840149698381562476667769332449599793352291506101666328125742814193118471864168572728158757376189626720508680733270100481586682915820193881993798341896424622901724528477557794365331696037126869192417615637250382545177161662854618824330999815157870102085060929078828732618926878030727684025473909449398005630706769104958580018662585204196936258311594152043964298366052775053443735987266938703505459021959961318878765624647172269803457143882395936620635165922824958145842469094290745349313148702677766110582164399961075267680557786845504280491334903795911052247701907852472486774437170111201622022199360318586409817299682860955019591345745483468028595447044317228500213339503653625720044737296706732406380573868314191675558709682323629586321374550506613664353825205993237233965488258982837802158509895307624064972962295726601354778591473095975332580735272810187948670513134587047627151434369696897997097227314156593951310130136276129503753786065261942232450607874953123649105124833310978530788626471874418441282294026811249090844255157036167022973318321100251944407840045127259940919097893109799779861014511077367520014057016106938152747844677191386926844891023506372823697222389997915015924561259375747329993867343577001885867399575539128371565422091699712744129394202227560840713582512458035440338426271447655492087140109357091302279246488320938689792034300939995901749132353916037554623879982692775433610415932070468420792146978291123098154035851277370475048306112695154079990586795913258292787878979129112582293841133678018349291745402068480356662165053456291470911092210711250308725703458232463108983610030427042012274448079373379607800713279589732650935598413328927914920562975925346618956734905671844859559055102006175823042608279891516284192081988696257688637979737806553360364776452311072507094560227707302162678385953147490768341761590559430758158582036664106139306685381133632999634292049878608743433398976638393934837785515496868523033678877782253458916942690502549354616925896760991942887610270250201007952631981844216481617161343476700631197017025906607290783322708577269263402309444388691345250477168150473547027246687881448578206050310705153213601243287756299176266979680961503783741307304122031811805025527934428994039805351684880100831228411825777006037348674595265372218460667540306303616323421281364876682638675587443535293699685499043293481945099627785087048282730946661230170699347407465958693911353083201354076894987561647559866701371580971479338784857584160044680303195359587917178141572320388911571925875153371711467745444458827582325021980297282590855676954999802794016604977482252426719697443479488662961590244037616643019554598116418271419030830071393945777376055300486595916209520251422947672809960299853833486490611107668109442163957254021945065279141133731817716242158569062710480159668994179717983160715037529449158894281676656115884760776279116994558834585851303868337466766279737109839461690254368842210085806114912287039028659597299618891530738513499314169714965170804813024257783565785120224846752803435833372818213148731608373975657489682163188296591129821481286632934064483973305801341615995733097803941056787762309363498436829747994743573897047181023689005859832002331808408334050248721527338716331918163657226362785138513006014140572994984247997793497227072725533237905755109600242333656773113182517758082615601101089714081453010166736980811446154022794119029321718855469097394279234143095436298180646543517769053876369274612292629358648982092257303687452301485405067383906498713230211155365977495271911142477262340153251685845445974098712144330432791153746491058736498446647018756933110279820167680719682170861093277837856646446310781534282009209500555764063397944121840797941555338944531779522102538858855201682650038008955801813421804235420490383859590591966278629994590163356383011769387247343621820552262376138367035272458628438148443790268791424695550670014218884762157100702208493583340990540601518064531725868040426237249634758648838679354699991999237488472783892208809581792977231867507373519281099857231230911811980745512910176122194657217988730873382512733345005332836381132097098444608589854917418391009377977494559416174918756258875640505434225570210165299445345595342247918964490444128193595952696933580110383305331112092718480394183096761981289018799045350191801675881372903467358506031995380669781045851235961884659851187597651720804583107006847059174015680051754923449769750303365449945925463661524161207518501533930005516343185669104960386453883791144175153702868669052261698013581646241792757234458163887425892472400033505109973825786816206693492640574181327331603946872966856098294585333334064382619586665315197782014780420309832578611716253285527783443042108087327584455122304522506429293431184633075421078984758072519484765034823847354292081696873346074186046388487006200096093949384612503186843810432253008161738858391489222177978571816255118511705767001009116000212696909888194050896723942625743027502239713961498630013034696582543988609332253564594506104878207621158400489379078920301690070378640872626749491046757330675665352711358653447040196219776040574222482865911337627323614135345087875269346807496332509264222150899249378772411049059353065372626731168705918721092562513907877247506360504937859361472832833946279901609826367860346683623772314868589923402392837890859295456238024439411935044328637911657623032176065814337371566782605284871502612759184439827147821808087359607230822798337136759133730658939704769921682035103653644935525284350942210561927494123985210088546741781363925848854888867422232720125764445807272332450219080535576051185123461814893039858267689808541054463721838171109226996109838781072107921250267411579108140900069082054053956302197592369917989552427218161308092861832627684163136330113670971063265741427692173912423356550161884852772133058048772252372856807810525041529402872445344250771220651079093136293478521483406434499699167155349376965767114185205926834724528517006884724674389939300448091873387651841633332461532307736843645353186062675535278649134064234168225313113996999911214585882120310141478599096580031865662803994521742337641012602612459341060147354271309683273216812116804350101832299779980024869937355602338030709200966084504054337865698647667090898794851189470459408214971965787548757489321957640131924216893909709493144737883434250049043930287729574183304442371701919175283481016092649906989510123449967843792718655560803752257898294249786454046644999348750859021508294798040311538478520117417189678169762430732634697227960291943744516153333695652252967451898784642518479441239862394560591455981623600173392037370442193657692715275238147369081068990435464141408624825367004380056964090626880075124246997522584279376460090401359818288929618957510958609973643810513432234871841440500755472092159494191361125545192047572640990630919210234064419070141406765053879023343652967759677968657079541142593641091544034171630574438955067378096119432442505442319317261838989767688762686049454083452759232798908815467456747182443092924104775102079525164757504907282549719313657002967867512454987410114016623622081378178870388568324587034571921172270015736814780528314208292425194947983817504372192864656506552303753294022426855375721614400675793425561418247177361291020760854322724243404519903611922432204217712873484858003714021639558133562044943142275666312707349233572970600303386527267628981528784027335493582909679255056443171788470240054346711862870617513754462226459995528764155095890203706434328793972883859605898220906454322430494371260998213319746363843960591860421023068199949655921072766312280370518644917177395251015089661457646878321749359639401645356171364036464619406445764863328765719589572746741974354551123746620854563384175685379232138514924187930808760213540474217011318389373939931220781944782405461820192884882022977035255476983101631134749357960502894611419861053864605331875251592127015104136747166951875755346083130208043736875334928861619141032155808376065755529553579642639669975849154091845638549986357474724538418850660125221161629677206056741287037221599720117230998968840000754535312119006953715498895507115935635470101342608587426873918923939319542612081822653619450939288015835569494096313061506262093218097352963604503612179917845442021592323499141981672161767358388810782397305417330574384953845510922354684976485466812027576684158998828557986632244604132256999361963979700272207933740937257747377916388473099843025014044069802493326781067217712299103152304354515863460102493558724312765111928677150750350391450637187804151075261957396212909249457282867053003940724402701667667901292947347923782079791690118951585647805741712198789728967877901625986043552114078070115434824684954738102519696185792264485815502352959745227105471623655797984048203092735317910507977581828109939841676706619244315450840041541782060475649387026685960047755745939654093303188029515372791185292598286047307474217895572842194089236598592877358097167542879836343725178368921521937143394938493309256260151972647897086659521780701376165001017709862132648448615977665609848914464402748307868652712487166774666001582138680637687296379360600053778061094598394280574249511872541113305959441751428104615680390226384662193354280148036245721506455162511064390706647611899488939711949363307255896149504010442859985039094117616539802289540314384903467203813587221419641175855794989166927164629581936419972195326058245729466395548969692547810593945653204688772699310284803505283171015049796846605177028725197060867487320075230736610892975678006036324129801390838567985440136767977361397364321873260237244869778182444492243464030342186245517812387065978664358985769199378522817620164274163506388060498289446658453143714414416501282713453502135485960114123646005641222409908103790360192906841331724041711837967684766848388742831226861772654688195475201404386813252560091810298349042703529068108502059975334643232137921132178783385901553377751289216892243982205299762695093057485138916370897804986506820128381620056639712465537133872156073346585918590308582432989209047922579276028068407550349885968234800653166628546227843008112818174768243755368265322587756967257906289387535848251021994730784306350127377717265774421832431428984138790333898451744450787710207902271513003568809430368339100100175092198083743049308566454055457156696136330807998772027032552349004722944188996189027582999554763796565211271634634373145307964951819578838168374294835557685678708513210129244105687959606486013143615268887581645081456541003316575674820890417926481595091890813942852144637129418882846264073149146561539762649276548960437853075409844831570626222751086672038443793112094719138970540663527540860518908690119589488238955572597116536166052992894286882416856688037702877351121438162483544703993633387851352639183554564179966702289658466866299575395258275212217843845188268259669325529541671211078482472770225581450970977107504087225732434165706432980127526310992132602441957068649371174361787588521873763173624841825730686541345025500170841816258955067867182877453639169596490467332393511067833897824081454462417893192836922996219595693497304068946104479616035363595476506813820862026482706395191089508772075695084405488736173209883191363957187486485393251562065277608414801178267967021475174220506146219719328892781722278294893927065644219595072847593469928079555018823094410811588190461756043435476790537414955158823934000266621504850693646192215634337310252400688085420325059828859512219937789004151219786601604168465469308582685760479253980400123091331118079164401009463473766067878708610014770509623231735381852709603198200153786085290883895494260346206408290364979058380806932049606845240710569571620751713203724775584219511732119444239257478991411092995886660270460629650233210532682731032789267520158768071778663887056606174505359516737065819511235095463392786587017554840926862473100261182011499728868378007683759513914643070638356293491323639132428151188976917084475109623043589356456015647731757442727129040779326690544274431872039188334069688941558877658162035881494553485838875625370806932710116044485385285893639189508616584477067427102154711276033741163260460004819149211812682395808077131718467969915106314116127892500619229495314314796346243026058551872395310396202354656264435814436638122941035085521983362557320331476825478261750520457245290046161291577039882917887478649205062032815696350997148337050183067569645281323831897096212649135949131895257344945874356646715209760879463115137739001233722614155327654791771352763797549278218721971190475256356560647881333646581001634669053965517361526117837665303570090284180723691633179668134404026706858891874029168028214193337658839597963292491713393120432476110078738748556166934369384939978918947933180800844239135462110325760114604790376546248794067107431732778085376173459041602860386415110001887717237638424015608606055174698564778029796134148078774049447347834416198613803875202287145560382791166852379502367879023978843289600895707130112544434904183864245325740651446822155857499244088345755807170941697793490278384888507390994976236639214098448065812881286205028539814919770757182052473056382307142411981655244442439219960261552622052493847090416085966114636801525945914901552225226692050345037517170606345205339500123701356694288062268710785383901478840404781401408024181131356874392205291635374559345956789905908337915586036444258738379405676286871970174558841669225208045776143368530603369427611142317204422848198709084630334640185810297615419674129127869298106664941454505215570064190272950225676796742727824481577770457366787451423998795952462825842979920932177743828203131082656237658538128498317059959169185601227281869279921046800589133693425029757763867660778346907893050130802137850702942086663151012200980065613868112311560419494103008110174064925826524481239880535830672986321145803945411393531180800237574996368973028263375981791439118686350240122691546567680863885276458819793559277419367377983285434743009944812066298742253613599640573940850368511967708116699641929896055076151225128622384565690960285999926184321561675853277977097497528724022077520936329744189350115078047493786865314289696081777519494055466574004068021592325260536593235040240612887960337399088263593649483743483497203121918540189142919814709719589020377788206929418030698420271897522625280667947642228328828521757387650613522155561679790404297565691265260018434197460012052371425573181037758427992710019759413119648768854285221954586477952600644434725490024956556921412438136889899904945102795530314635103902316897571106222440025062455195801316876477211363321503747925614193680586778783000839584226202707082060458261047516495555376490839560614856128199215747857996019901445233613754275637195205342438163015836087610215644621447003018604527152300718656991852637690995128287458212666793671756709464634679248612216240564541262077704924584323437551082238669633767843552936320606035851679654012392850577606901312047765839361426917301639579060637468502379557863820046982452980268771394022127394048927207699695279883770084148819002623051372977777343807334038610111769670077138176497494871550900102760905505680870129896701992379982119461336698726891664873594432552508706316445466409342366034214246529467865859220975084346790280697748619089595506492544818207213579053626267654762675283332759723887029033336109038614692911594501676386560921630684269812728198982428095231808636086343292930006061337963989022646877698973710712746339167437275563973705005671358454312029143957169802795636529520221635466439111907946891822077542751958735467130813607191229134334476649979566394990011447208877180166124357257674309267017576305543365406514593650479177249503109801727050471459005347103769564959299608782918546666480404606179462604502987458018717980940992576173093145351988732582017399879717713073150696971384520805596250099500566829805689797998708377502248224350870972299560565219031484692687117188107429748230950081858388233915524837414209839489164051124223516266984902336305372718125548260675469382245320674645948982400959267586581649890924860065465496190724493735171510998877990238845896285794754238482655746326738875145540498098707084729801447460800074400614345469243768250290051115072246933010881579710191462453852112850540660427403297078453446248694230591332379774241507760532878782964565061096006687426927604094115931269579712203364463133826829008192229594276070287138746836990974813114151873374178521847788892913393656304307133959841572609108155190436924184677083319948421011015428592603403870804801419500559401623872434052180082042718278440551147720155419866997826751768674842900155443690638161748438617598079685894730279359545560059716250400665862000694113864529529368940758213082997312051018004447895058016157423240372360402797112879705253209635826000858779445914274298361102855847499060331723753881787813067661831480602024406941548754439542944344929915199462590711267034046697218019631102363618490599750799222488207161913093240908851926819050394928607587880522056865569632256139732759136085054018909162500704081215441859882894272438197325341862379963905107576298283661534412717971518808369277731091901540300194344540936229540248380105896232237278601028021269458949324132369018957378875286203828918527418370452520641314612620330229944832175192551380965116626536079178203543776923841276713043743465714757652773531693481593389009511525076045452808392567514793985392225244827076069151611600575166264234830368876994559842924625086126833448465769046395656603360545574999152990068049861985171875613410741834134310861086077528313997666761880883724499238980136013653631037033956010458251436870206050243878632463400826994173452436422649091346378520354422486198769206075044070336883505636410139514634564398001483634294716583028377182244060562165089172408049590097792444121436700309676635343342726779168500247063718751967735572436098212259914542067700962233532090693810394988351522024599540939952134212834490959309493983113406680852739481882993635862073113264700383989162779939889679651811334664782957113955966712790757277675219887232239816374945207216965407850567385847064568014346419882317764544247934949562159827124294055490629704223190449354219255354786640146944625273488014555099717456190870019251187722433479059153080598481465974077291041504356303805288474594079578110328814223944708948898376742714206208009002916571336973422843983276181048152059551299874195886722968002634891538854526853764195429267674679371661153068306365058273343398035188013677826488297677098607912338654542165148191096061540653198100855478528528757538204409228934505431578858207980244293846468678534226046474225900146717642679268815166407639690677559462843450682791271934578767665882301659317847976724408165384749579360746495811706231973789394245398972874413895262872733979797575086145157652181151651430698846602401148502976478395901677365116039683885490896147932422295558935185298613529967102235557782137888412207672689348141946664500222221577585338014955066300699602838476340884133876905660736851464076302415925496524360118871675772735042843783909274367882641634926271350303961900776845659331498562476633047153887326725733839013995649154958532572142408708286026118529060310928260554341213272296004475753879596166851439921937371968950463812810703907544114074531439460838565466537299803625593813186791275285652364821275890796433103603788351193569544706305201895234603018914583485967535624660752192789484115991078768107978514903374445442396016580440246809715284264227134109009003162747230823293525094832386600262168945990642735761928165079228346605588355343281246169214457698681659696221320649987480150835562858611366380920539296000421449507047895850875704830006529251142825882536922910050573959106311695526097066585101769812517729920110025758896628524630866147529783627242177944433675080891926090026829587039283436891974486759768181154215650074931534086110855916964815416138330374077695012373342993284301757152913605745423882898774089876953105535085459945307574057278780980882150510010905882792714645955236840355835911943319701316355105495192021670820461945070196604014547477129178476661271603904682553619245657986120484148902890040367731955368460231871025754426163110787402514595666849773775178415265896289198303416676613098282644856856273517611779632565091883988874800427850750420538106081440192071178675029792424016260228145261602036119036153658129638251893107604023615836786552620260889710635615756435311586408482126184525476670307511237352982300186088646015492857280376385641467851192107585407413421390062022065393581578199154978450980800485014022826444341491286867663893860309655239138258789016727883686989373241554959029137274066759896516814105169412876194570260709755162531015471838548810419554909349593144398775550666750226010162478193520293636019873711344892111960506843602270469524995056331830445631448325720371434726777012625177649419966391844926005644961692595588085358021644400131537679755632634347167434229190961873362055322256392382350155892471280409319418965764354276720137696580263515656769340892214757112327862862464766779347221553566429097300983341922656737738689699844668725289697803292801641148655158579711515303106793455700542351380364145501323092080057343479130593254024599781056867380415714605799922479540779676925651667603218865730539294560372221708728209706909433796396142729886138286629317697034769143591565881893020620237267683097592380010252522904184388279105373384397366424849899525502226692972830976907546566961300336090533791033326769618733565266197665141599868357623679214190098982781107880967426526085231982177675182150168008142265735179996749388574735864563810693290047739359511927806016313513023106502857569254374769420758234770927136789175850029112544147083399454075018828568359090072596116748321236940501451977902062176233126457634766311658228279426800530078882615313199391775640191370764237880044832755201017493548497021711655608679116695954718188414640546293217120905842014174132353360700634193716165134430336488261752647752597918533704279769652001131859064569986815686450308955184390991611491021243504961444041484129740617137897342558868347261588781727489382515715520825036513870620460841480402540272793161881971385333719402041645487197215710785809876486504105701849021169024393942172506533570607733056165349928467217176366753225579258590328610140258797410191215807644045884329364721876276120327470701996260076740606953581762590283318728157496978728739612209755861060669823361381903614165172264956289139294764322038640956240177744016320041206918509628139807433308998014385174228632204817897878778854766932033772053848414951323583907134347646401185523362154673140180518528156775987070914983193568756400081261319635113229160379134523147637607190701617733966917980830305435664765274436989412067424219834480452110582499201178300919115504976165180731270687100559029702738852002951884244822081485028709159840928927864722877005947937649586136420832945277804561195856342679214191719408999677287507683741035443935615292632197936477029136726209253554077491377645270534849669405824575271484192040904380440484275543749646412040143324082510490074589170738332791760197771600897920825989408287199872123715403900781126688456936535715048174290491736338155869588653105981891730615605824179958949224741398262136377223396709670681931020766560224639510467200094845431679553022069850108848981498589011230592150921209084374970999671901959770826922965191957932041009030269146934496038442761575922910784706721179293261052474958534927949534990550460330616763341252832596643812180796489826750864630940882095481936794686082575151467514313419789644612628733785809906064506682797818164017178204725737812633275378451925551284431468035019479466007444018826092833521822595011166018584731625125158827343445890832419834075056859062476192618120258727990321977924009070185388058868015492290239060024167614271717731674958181301344809983714108336045313096678999802753724068661580132590923964384666602780782925345934321498178163139993137052447955790735472669588845346928694616075038554459451082252026276019014823984593181511561132502469237909872309393199010960578894355031367273154964140688533171122407251631597812736399819105789638782832149027857368246638674048987625173431145055662695117831137219339765420731045483872442629326169903628379751879926943566441043253103997586357339901223981501392992552892389575741720025706333753571827679805178304956821967932226109529856715171207235237370782096215722430195535583850645586246043963501817115326744058146875011329676714502812123729031746483994763329093454503852012201264208629304099806954859362051322870153704067001028627759005669890863478479333880099566630131679814385736579906171042275225330842647920248334764746216816839213685347231584906570859052313740664133665029589736220812756645388420061636811188993469172244095783086693782165360572816278549144505732806764580400863454840098056102479770402455641113488821742805758109761180250541377693261735092417063561696629751254542341066612046422578347657349796257915050505102329151283753045525855897482923767677497432334972553423672232906539282014301603890224956962968289814345093981298562174391766615453894408631021126235517932859625651420562376902820742477817174974061718168876030410076568958069664069524557459741821065993923343534373783614150748362876595510640767264230030855218051685507990233046084173252647569804424780637643108890456448456378178293435640427085384057540878145184171632821612388341501456617541204844700362829542124177956246100504470267469837255464001793258268024114126945849259380798798245724540897031648086423504121853836971311127701460746590503811736206328751662530547460045637756519428171786909128950069553824996308770200214998728511769796993715180595983269602288370638378883324708534933181035402028645654992197013506204415217054312140835158106173865411429321097596497472330125345953424802912035291647715139494312987246684932828764920481971939165923264897201041507388734837257695442125165751881670704240040322526437754914450212336821836388243347542176355290646239637564111086864762117696928080486294383774018992150325863747610318557197860405875420212607894733812890685349528107672024848313485697647470710270737116495424630612202077647261091325102079114414877305008946857322672344162933540814039906820360525594163011439215414713500145356129347120491601486451319893414685728062593418045761064132397153710520672093163685949657856194667469627591019747681576669124527314587463990206412904741393133424451318571183708850621829344594434102828485824828887826519726224790078158178019324183241273130353135075631337299341024333691585467447033169378635185499120333127424562872650963019006012568856488847992902172177696531419710791840288538839461059069846062732482693901097764972834464306986580232944160821471889398438464056277835732985502201272031017822766843758608429256021286199878955568184881707024812020951676364787935246741519054570471077026907521118583773179701231984550261456954052266417708512438227580929356786823067115858486629749942127012177408120628315306293162003096513333040242660380737474681616890775688938716948304274111990392290987865301177312123390630761821327584749149209628915616755913395951616530411706382118829553507611207294697214199017345941702652193354332100656588933190598432766300306725464364811160039258093914010470599482566066993394842457721734821486891156510532193019512489275131200479263351234182708903393176207534866978765819179722862231462101902873445383296308792491845517196796287580605818239007604385342384736053326053563888353959917260943041825808163946275987264914706161005345673606877112361911523735642525486507901355115362495608895106893307450312097232058943328443967097328459280551058552133612564558837044167711126605374543963766544165903334392002273313266446428173286765616894439301878477528160624063221197004752582860873521304752838601184362975609706346064088548994720491838106251337455340292461371634287709208767748862986425297378602090709008601444486778155585428836329099110490930376608112005597614270476375020470912589380486967243030822006006509991301318427352373696052306640359574452922525914209101775476361720046050565157259348559001989412583577103244856705283753363305079773319673277273017266252455609814226070121442663500191431138051439567447039152214158765885475842720914566066647592099590657865735242772216404623897143790734493749575736235948001854982017766204570711419913988525160092115036306217072923085164273809144576418785669669732891160374603556029175759857706814214390819430990625649774000329641863573639525408607399182890346355459245543848096363863073871923119842932293354658333053878515596881247165178402579400395960392358961338168988111563907168090437964630547378824774141179116202056323281834456501710525515301454205589005934349615723897143970628114069305756654432108947071118309947233269270982831179181704071726999759648762420008270793340330161413196338618698805498980210133718682046031438027183955727938833216193192169091150570100134277257283403339507844947732826902060387430589128452575133729702719592692274324725049115420387687781691929990280897187078488560713970739632186212336563930981579574549401985662675954745263064838915638057782215579997574288833842111879579540405595960123070414103318294136716483546581580339061257324580668823540307984430107423901186080843145954091077875788463663738068575500204988740433383304980258783445357624065273541264958205743576645053411544895145313712742956009612004324262887319324607683036528562125475525092307570211383405330475267296897621634156442256887241712359194946310327879910477644461572675665270553915715369932905276530702873593694442082866246673656107226529032340173740818348963847208142570330788231978396571632323669791198034797791126575749810151731542332713707817149591653371953785387431228182585400532151506789043989612274425402520875769973240697066527568368700236270801169631817256468178975686837514521051054612558680247173854743523475504293347476549429195810704117417749924404081677843357436327546313538699217869530499094326576926343585240516493813234770773113739365519295428686041157733571083549257457070658165771395240281618130509709962290786829439013002553816193257796380012152985747470373642035135144097142521171705122833553508689977688423635785329418019735759267736482195086508482321603579459887710437588729728611300344811694534360965075821994308410406426172768957842042902120109215268161764750072254522302542561547674172558376406838788175260611398990459380206136419434315433472063068069593156031467800605262050307890010452215453044215367805664529149900851848046682507598519959378234017034994964139861590146620060750753339714865710304978345666851242271818445588939379018366125973307891524266469685845382999595743405155138973760549741621566546858039707146521671296726447961884980619739374548958148034126877318223075880074664470903361764517929910733570494076775945638564654701054483807480697125611223829599224252937727140833343518401691634736617011311152284113853933656213298483430883831438382350568014786184837815960647730958863786234907562072784618702814135909159313946227641021448515227627870515888914404111545591922373994319328276397012005013741227535471651053221876056474418251404566489911971823960312100181709159029386004368394337043938570352524060306138305552457658058757726541880607795562447204988675212408229558656688671440729633529594635392899836894790704879780123148005134839186559106639269217827744660334596625881040244342944033172992863796568159921655530780344587565630064572741717258562570945552061047546716949678517996844063518718653310885660736584012136872372065346371322649524560697032673643414184579965466210069186940361303861776672190287561433335534754590656205851843383647962687087248473800007221747820973375313018889813398243786648973546142621068055900700268951197505036258651890552181567618592029948790052819245879728585050748384644526225867880035239356647458999232823251615333018026591057723107728845144682662728940786771496679302945911374424865134976071287358524427590175997335529425000618478945595687986292798903321074042676791298110865380259619463892448241492779711205881774679128340979650182121071640252330896941330844894763213451624324892050154192767724793837944349782707871729424417016844108148312463860098772944911177166254790719733198718126594399316316187453901859868894411636464541244335813226437585373289051594082982779404661325626334487875296940142700112934825518207402550386717035934440924759255136213358536138835146067020248545148122472323810056482164181799191719833388897715646590298512768497080001302270001607681296873624887697678368296111827684760879722923665271197390492230277476533613247396108314730226756648388006653881282374210355402647983188816249899400769595930596527041467438904657918008737803718196403545049792303004476414108073819064220198820290329563811284772207253618274183353980081587185950326411827458535022641484306347042588629519095319438022609581732152758700230434302849426205502032743648152576232495924508996945833186482234172067092857663585983953407823383211162828571660307571588153104046992422096181184227919152949491614022889342523915726731186450739501136912068407084512536109953559404112152071479602319986448126689504550629351647140348775284177296480749660610337962590705285656735481930127103040618512093694027815154734402874449805796450901105657143594751894214926916689487981678026793152701321810725431154173320888147976360773903824348683752426829865164603857692237445292766243325842611768344886454891649469816805100240189956701447291684140375568569678467111826565183701509441773923023670411056467880781020811956026367909635001864197218602044992321167167985663831478295617393836646754165176505439805457462135682918510591514849311012799610745963322638433259434718951900957313892736561155606324053710898103337428307684725390362694347065852185502058005038557476374626564168246037505266642544156035963118813373154634011647926954928249745023493016975721802823284284527783291718583447395098428468661016974541691912965547537910067458230469411866313279214796006923322418394035574514495525446506599586013762872415247062022230803130619375910750178344347862441776817135710506779416024848441894235078111845968054433673195407829771758009308977600181601689025689428113099604843492559932031129145757423905305072453100478139679097090416118552726896040790015093723280751121883389160066714212801397146661353326415966562343299985703747579485944582541705689074728452797467069970368254119238965353846565835546811185919636154097552384176407233000836011021814310459288337918418622201986682489402583968208911996824624484088636755922988437613327896491696332534560559518296981679469308251408648500224177150333088802314341514673118959133608191018626429192535683456514210660229829234080005658691164558954059331504047176860441135977049951260617597608119163075804957674675554958424376953720619118347599791440431490938621645019524209951259672990730167939050097204442741304790246944480503457990324960222343831675645142447412555396394120778444371143165540759087448401818165800448436264359747632215260116392614496870018830126310809197787092201683767714466122543759395712764539389444547294953232957968200847368023619152845241865034886531676437751806576403758475045771674846228061440664835873385840336256861869348023834716067699311688755940476754968648344624782868976369021651472665338541215590752158860937170193056077961187380840543640111758745160691781114527212671430038951749796200269589486760391170160407965921204252878005738861267531016056776463439623515926788206990585151073400114646252361432731457291439093375488679444889567160718392722200190291165125403145164915792616248689958474012176202190389944556550759881688415592113477888451263965919553412632044385884426244739173106161089222437094806934416497521650275307353725183056989038271431695928382365905986458531159957601423860054641903070684616043902682801773224351049999995055427594473696711658045987312120682710118485845884025564340354001812776236581789155254624976316386502033551826126062305575804481623088051101772276555394765971292536873633934649232364242287848798068538818357435187460592905162071641165363005642872348943867215556174775279212312338124193798236075467651709236188469174901083448997328847465280735563853546707117395327072708666205681330200385594729857843064033633586878417322130033285182852791817335706219209754330766400294884498927666260648602961464986179585246627357408580482137691964739803093181851581629167369694623941930427673940215505160365869962795231321378209788243087629964871260166354302862789718072625466446877024847058610095891685533999046412459546131292305334301613131636791342769585028106566047514021115229970102101561578268387227753390801702075308045954161874543322683030049306996906056503521980449287775333346136108431021618260050107621602473503977479982954260678415567222504059843634500130915426054868126738805583616697318142538207437989878758798416254119302357278901257051838554991431285783560763518049512026540183328105565939814118160216393610081828366584937484258861316410248436556823361400100644431575009030172675526260264586713780542495718566349674431272934277446759887492730805228272229762282052942726699960370139866387539154825556628157090193353132931291251828494098192149891164404046348739291348551023733364521427569342663403050654696742672951060394857932866381811056827119377032331407187074810485318329268190081139282527683759803494338013676055223666784175612799807014758388163708891147670023229381730400952253200541117859342728063116109746450300070404657542667463768785652469807591859405270843050316628832680541324509984852177147452190527467465552393841830930186937849514910037713761239970516252619807671670337198439865877358114328479776361603681972883639049598548917616164343897521445810148928368877149905328482416234664296652528116065896929858480635987066481297905016281013469872215668065724429089655151424708503408938938125902000877900332730786128931313808561448357793929965501528188540843110899562698803577841411874737543554532311651993742405688926914357416039198957393951914839901788380666756696445741629993055572169198877566157080715710274580196755765234806857362839359111098904949082518378174510458956185538104135142843139010847579444979620211311899382843966649108992050062565252495091915158516212691632794006233971551398630584212877907580910167979035633814089323117296201463105006089133660036854966268438264707441489991107482212875173581083482070143416867513268487430256137961801034339770533852336343586047410825809022838230131485049593052926875801885792073593151312676441707709997449068137649569774616833700655505561210037013067223697051384483620532966687224186509743220173136754309129991630229287741166643911010949015434522306856206973465986645873979811921549156595045987554598221485299461556099618768535335410823922897964805127714437855918663597490291838280393482884441966213697631307474439180626833899247190745610407705314253315520935639755561280200031865296953783044086683141304707985887302015292754260302217463726819823960754707473047777755201272564014686304994566746126143224601275852869271479091081368400142040073013014117647410132007532373642193945478465594091104149811183425703997248321866761509673106185871897782715648034493951873746552016222339645833999808374517775837439536439775166196309891316022607291397369741075073743976523515763427116357314126264354285325212637500465008573683877747567736365193901351422942736376073232237073108872367900696230355897712995688557273719314991894211786969385626303871997800627754128900408916563622272580049064632329542721845824035409265261110755426208249504720311247847116964351059152374315034332616557692425968420392171956452101870011220709724571406624727666070009499519303155614532279928994415789396018260125114493018489163140104776736202692959601246410971881082956302404683109981412310331735735250475660284811300886041662988057757048732631134514225128264463214865530578788942396946300710205539901060759416920075757345336188300019086762103206052114528670417221595746774493771392687860443789746085318565870165941832162932891694031251126187843802473374087693721816363272876407038667737236334545938737935195539173427444262556230177770613894373570274783223495763899748954103030269545447223299271924671104689209951466273553794455573577545942829455358469683924117757366012933765489913946749678089687263321973256508231242474651194958941080774449878868332426795864353364223336902808094410004188274493024479214132418244856120041478580522563596696623822624088916618992670410785563639875429998255471013121427339169440522719686694351728343236323742177905593540081907588026309405351524981977150387998769222695996913539613130286614687936246038700976126889537880650961824987410075067881510934204871445895524859667552019848287000346422930824738981731979169398074154274696693794784136259017847792761505058948572202122518400601930882216595631572893826789597285265290928735686076195958316177495573220725287571566698883661258481307058988754105700673332288650914098950670631301020527713064408465920083390074595719813507674034723422636342412697837176563156884790314584315255583652232781996374333438999108362819156890552711547619760502644023449661719407945546628249147615538926212551013330933501829527679703340070925111133728289338449282199721599230470253663625260388941177352356987391947293160816720296930167435255629634211284420426694820733009779831946999540443499260227963550012009920539212823128365416746358841558054174878873833211316638282290126938673015570011095821166262723642073483999915493298480564806766434661625234788175261493397075418522825751724499506301990266625054683215499641654012674025650557479730268228279619153226668781117118608616533375885411744172305985741397725647287122889222558245730142710875993845737762158882495337846386124243520654948318010001179554366154446543840201807773130069030670717696951736566165102733003830399550885537298820491631159008920805440322477184377308385800952250294712402910075557674613730946870452389195353548000374789439113906705448178253232861136601718558769701981831739535024361519155322692367583172763366682788431563830541594244421143766181512412570065824311795651052829500311000857195722029940783161798527423910311709663955298579918566923915935859111769964252012441453545571580021223672812031211916869053831626158005699114828997926088603564228896500102486967540948867706700518505335919444926987338213768534414299915604956072934358429777844364375311791508624706217980587107471300355411385145674751499394286021183398936925135257898119819552426779424239164212778308974459395592173915476163159017297259776252823213367028421556050062493899050658539818272407628711746560109281825563754191126181254244512120229502235974544351604675086078510235418739420295462279057079458151974174769147464285536262142358041564400031464006319048871161294896983355072587042997062717050255060041820848595492106372755149551450933206394613603686464202078238103706701335242911672195817491125117801763767437230172479856533106759315681017990986382650311171922713288859837220979641430210105922871367987992897172103487376244853938840090070455414706874764875457568760471220080354146159365793544194559777712923192524222747903660818380623915532617671569293474047397801358515571579453671577586576875283402251107882853643958764437946453074419695476407558893533853476171262379516041550825271632757546634576192849052399723650008056633166322496738632017671408932564246077214592859613192377037237630265205385005396818522953750818188194251957838031261726051537661554243803945223698955144884379328127134176999408894438295657556088260385436837133188195263906771396172014240088679551271130395302021451790283776967628003749774560816400312523477866148838097339218023512286989559008167551043470052028768639538148084747720947800150374361119877384217114596617525422667311722018037697322192314146553262058869658255490108450788362689118918985149078457066166273863614506355922877282864494388447921108331429388669217172260290967088441100433767945621667129345951839873138536723802471241977632321058616418520942244098095023179415109705696903760683625422939796535974138299425611311149762874476468824103048442535718433928194580243609352000447676231758099106913245618466482669951157146247504215621631361364901895844890849705996525823169179635106798008653827268133683010788682728656318689284081689793408636344957795204117080035866924087380153155001365879631854156832078316849173967274094269051179241525814598271656088598177343869774613183901338007803994096541486214165517240478668342484017561081782757641686015989059875798753537547488307472426041716359803119272791673206143596015214065221704791060854549982303356587039280515327915437681616864527833788442096836990989805840278249904511480690145464443564308065202263268616418606447908903357708960925264057523863018093829256462205375237956869419523436025106245713730444264148398179090726442324518332209046168178602381986853947795918917328807246318800087104546153871945131252558487552170140347986724011863078314692142889784746580700515529609877051603561515926027213861936027202209444928893013097771360294587725309787466170386189121212340220527015442731218982325173166936251573492853192162497334692213744914737356659539979554782071097681632353063495545573110667826795399648619536963261486278170757491202468528490725378763072061797929023175088389667714837368613740514483453202775981698437278226324215434165513435687405908942118452405918143665639019370356543669377151058902716194358085028085581590786388245777705519941127501718239680505447173391700603357323659576103225892957218794939862060193282700167427316881354055261937705811758578355381060315819137978519078664741415988025697719694154378482639044798704797640774518394313800976370750330124140609850565116490725642213984873885120954915595751281161275007952105813718472727739049202352996709928884230533529724838397952104894768206670555368134027266074576669361528195253357934763962100172431996566284207397495467981427033615250820329851908909751404311168213342330885150410043244088463810565359578999527467244707392486153428490175922861548098361153392315796713937841736290123167890617158533091273883350254268996666632246677119578988936198516931371035440129260937638536285353208091527692229450828113802184607600788222731273620458196425973675261198697405391294667621498576022007896233913431479966313579921713643730134204403506156407644976725927258238458509774861983991795404920196643306869485302237245220062580520938661731442942843274015191724902400369976427111306772747698236319939840354595662367661230217300753083459473963355214487079186212222491047513197214075307626859972328692241148719327350177125072736735400000085674650889764715791873724660147530430579758747375253787297849360866933984637336979704247742194026283170227336146637271966495780122545584546808743955209863746360452603711860579331717953436193676595197378277764355345390906790304311356236015623411246141782915495325788788406263040765064117504233659086423773573383945896542211606423114261808021852233803890296516615224433914883025279852806167460102557714232640747562098321620939999715441467391403783420431829650927628944284445886501032653686553367096355915930748249322294238886533090838807937786906123882667005056449325932869780912783969361632093265242670323782414837247118841958947317163968352629927347339798359418532643434417808949796040348688335522960422388639359967817901983420778541197217099497764733952738943343334674267049226670488604947838931882677202391353751539357696125401357706816688786280829440217137422247387050250442847415397065855920365905638088126381640745996725831607621213898510625896278749582374850042387855934481848762155705446624112755902820033185743071849921240182294287079111962384561614659478579667841862229987856534567727240477930508773783672270394841219433982795077414149208645666718830100538417863629375721111945421088498822020296020643877384325809905660417711457578684237814681154016069899923925047813079314603068076168724299797990778904158242009328680949007908488545712329451115578545569614619079519992170292472037388312098103665134835233273591011161350402662048216002162452186505976159508763907456203281877681759123226782360827930506075367464463001262405013450554916127949253539830591767965792891936018791939619587061699019169041608638894163503620012383203889846707591562279505577849044527907031475788573629906993509732937675340076702154069133000790148116937849958454220425402957399954305182319726659162004358566667745819670556436900577478739423142541067470484284684131073277964150949258126428120110060946092135150486291375156114772531822769535533828480011194074738149678034092738265254877927080455965286736890975040448390618493766716654201224187090380348414039979194453723456815088697177512744162998741771705576350366533681139801217650273689600358398395083116205347557116955731339146217708170309866502612338449249259093314649928387719840054665081711689602914705212509567313486254360478799188451879971526947174000519819833699192605305546364667968373017672828580750713590750179230696302024667590808959744165762390488651401233641005634455327060095385384873051399510836147598708672956020379594507846745730098543914994847630692038016460922352216619557150253077029508062474884733955692967470276718256643458087229529293012494968374598057892925936084674285271665424922369469539263913708028913301761502959624317115135374994156584660460982936494825973808658828479469499803923938816245179925760613032891278640406949391987735454201349979512583794797113321168927842391593086500396546018077030656871458289437143832416314606911801689164232347719037692223817843518298286231758780860216203667844764115590206415508562796810172307723605709692987254125310306272012676084831205872443680865056297278987190489800371003687675557039093433930255376995872866250690710064372613453083753610789965327036702173384550460882284341490424469294571562515864834691201262715128793316703703737794976304167682717684890115578156617022713060444859599801679054768472146515860242528310622850309903401233411449195900710509682689425844898449062639349939984944012691970226454404093706964945417446062008931388526576939750108978366817628522089310638793232712689222332257507647467320567265257021888299226200140996103186690696695302835381494804087482360541906438383664932844215510944582991057319202144802586499475666692851676641297495107134385053415761621280707950349608942035093825928497306924847664124005097202856600700276479555072599995060205494798939321236556627710108510447390930419614602954824023271308168726243159578531050291671353808055803381199635164961540288405865640790979154913836917929767883077528296924593074870595429156349562704888838214008592436684137032681629607184177162181838257835932648709424955295594140378050481501417474987348837967855566762661947072236294851225741411118214686365999174062911061926608909067704977663194643711533250818017675627317581942192365518629070663722501091402768036007075943783105293366418888223513106198061688537221116826508515039034129231421810030078315963679147884601725590504845338191420309454950407378970053930452235595480905699554276426780543178507969069980592112706555562976429417984333742503064383859399060763692831197778398264408505959404952192146501660302164780398998359889737848764248605617280526853028139218872892808024393117138842239341414204688360229142582881522817850170805633596522335809195377061103644189400082044156933627977780397391900194138514822410174738376607906374253472740817675406417307915838774311887928924971677374256257780451288661288134934134347748817577087411834227196180017929374287610750369914626909974664223168280323767132161373548608991905471762867041337035075645347737175167064575025518799418864679678932897733295258940788150637181731826801469871720262441410494717545116143676487659162767719973118461149248701710793047753825505303260991228140192763016979452621048165343722274184929857568406288814191155629550474981292767319613229017408682202377762326307912614104864117466067111538283950232152911576993360078458321468792838809182418307786505333036653163801090284661154341889463145373852400233386861925118207108797053973538910036940957927154114693574541069970044904118707494901101135463653895425794637865020981758174472356561063194183078045985859925660351760692856722314336715438060419762546082900880714417602867955723367431296855661617907311594108402870343833753094919567462489878311397109102038605340689778026425763317586050838488855213918312626842836631756186302270227414846544931206332546066683915295281199586273804351293263368828708423634388162805533960062014697804538594374915342178801264082071101215052540313606746780855840381237272300666441186748089145822519556268242076603673782271366463692137842120891432277504767905850214278783289979196708283658209471391274945474022073923574986926814065847808136417561988179315769617458083234475354354548572823859270273154973216713086603677236777035282821735163500859339044724633212986988362178787274091492285116342566883976053775381278779490431877534295507210773059934472715309571851237217065828986822211450103703001089740182108186848575657082632391819002026412815266582968815755969974826764350558765607685619279551546998285960987404822413778941430849630233459965898133132905951680129689216083582742579371557202002615517623973769317787757757347323718714656162299065889278244887506071523689865014351828912611911061690115223592663240048681449968259865274646689349329211209076253191863261764203619617507530626965428742350497017866825617211720668649965001215677452398230238526411684954943005735623219932670988490522899941642877370960732870786321009752745613459074154086232224271249966946185009891680276840098845574264699900518271966845737142046026607141157078424497577835141325840889701573230883027348786680370768819771799553452258015562657547493055266521360539224922210910166595353438723026740611423296905557438277858517094872545060644032285819227416537247505870599904539950486949242235369513964721953509645325304990537980362567438174973665875496273288383576239566733494681765739118212525875951388577909893877325616965470917910946562724626338357358822764701696671594907917897960032062756997932369674455835493921356940930529473419688252156665037486051392743243980534947558578522622396251715459378678617095343874781817842372776038676421907247182441721494783782576995718066101130970095462202242205638699617754919797292288413618272140640432517894985736879869622930170223473721741233021443177726311254106734671914795720128554083715830038537297262493244145785343361326450367950356336776160644555946937720589048681716779003464473939329013097327880850090283274793010108929864488464531324906723235590412183057435287900571540117948304760412288755634679565611572021928467022382451689577024730272283262066044697383487220229505976024553962388993469117651207037250538251928896802336323471253746245817155234733450852275611951809958532419039163878653551287048304676856587343646000479556402662565724142556025782773379897078408718360623720628249477034697057833452906564855262326289434762676401401679551357126067453749161570966293528293875530118058280518304064968434365787428572156957326898405653038331479386520280299503062515434232395159462789204123092838619621145090546647628728489871398508107151959055931036753027881262277015198182221564820224362199608784250502262444583134375271085803526950041035716463411568748346456982851058829784989057684228937373834884156970632145006890470265566397775959468017284645148400273275315339653745793007176908581752855769932731241209049442201251955995130271017572239013848698516381459932882511279061573434567511418397474976601337558078651699458683644638692277974542727699767508558267227145339759073814068448132871093216403206014622280382420318604691120103632015683238152052413103116933774684096163737250708208755297404139682910511073113505012596865767137188701005406411996666387781130374543011739767100638286864563029372398704076588365365943668704363055997024125219945131398269001062016628427732330546864982600288448786267847640280514646508195343936043285465037959698428219081372686257942902988109188685580336948136833931214642290667245986059286743607555806746163545789309377693255866075435001442210855284705204716282139866749036804291364145233795251292153476031683957253892108421696464397979442780806889640552385747360566175723056916235897089146565396168436165326806307183311870864249547876913789920518601045939818509244383216767759721303271102213854889715929673635383068597545863790807308061319790552478494402792961332748311314352566551935435941359901606757511087486918583030148335258784730340325903849419298718930300752876855701838124111379802126750252332951620011980603470523064009307599381854096391286090690242487540494993780861815470120490791844090174894399373690106476029416248624188702117856334341406742021531967698224919344996600499304862402508277071816659007563000712255929442332511792684158080340087906292252323602796880254244248383245488635447841028128533607828706646737627879587424583910744124066524683679598760000749957995149540259819112802475035683469079807692847437911637313974975430171777126342853765483992625920254760552630945978280714269609667832598768022384112740618741394316122906512949129115931273204533589308807346066382102433239315569992210842193107894090729051661000967799115585779921543180501233448291320559326270025867406084797834984168690865174889879890414051775816969711975529375960457837670835423652425253048990681191223846865849813854482134023771202509616715684055461866203349978780053297260233251566683290433705224752001600831746931134419412095669400282197971469768563347650570369427161904115273828213994289584679846881625360163874205250114883473029170677429993773722221579214828825712625962823950413206168761682702564812244898346950005774142735202980354419690172289165507650035124857884793203753773455030929581345899466311354441380473286762595287313655054608990409123214727918405987083749319314869616585282792296437234557381323423398157778678329340353874129356488722187336712897312357265619986343555084376090970837019276224004977060870430375699262247320360886798936530830234812874248627783138642074600986687497186919143490808109914050395238140220479006668968054281108719421670839922970190517684433707329238550270323890778384116795692427413308997699651224587096337619670451700283440492218789865182831920151291252383343081157779035495713715195532948206232156471547373923756962109416153914030882158414702901864927541278573058827989938918388870315022122088198244501576826930761128733172995581019285434070365630693217473383231867035893477539685210416404454017080843477058411288379330376687710595585087291375029198317593239681203255936306394234065241547423235035242730077460205620743099672554548892645475076649288168731761657336395754910538961756295446776146239856881267190613016531409546979997731460390400200970855351858541370617167827651693735879296224094479769553043058241023519888662989303019380667552207400039976431817501396428351649776535535426692163716216081690997148761032319078991124691789501239072901420295196977772798475314807695957206607714415393556265799737730324797674919056132620873379772024136530497193610769651104331754615379417350961863729718216343933656235317987540393607880084735927771787059668850078646660166442356143240617461479392105174557192770814329469274937563380312853239095248154567121035259700341195949758613239781421497194127797180837917378399056948579521672196966261071884561868114674848252474054923611077206074473165075616697889092069412216825203417258220115643701980795472770033448221033144010597355749005512279463089388632932359527219108164134110237326432149069325262623256013555134767046148466526877670186611845350095794249928532589303078391325935017343782499588976696643814437195205797929177049656804061486928845692340811267348268910201198049601194572264068710267332001786699793139912814738712194875065875238779201574707086369240251459844902123062432797276127869849013821270914149396379162197517450452616000758185694833939512400722494457216761777205654246190635263912104311245746976348773084708223896523516243047363825825092305806300816611169115750463512499775558167996125246199296772546405882442509217567846364887512144381749050741079703456293664252524595798868836995536266970329703007186478088039423149857951765548099239353619493694676168404402901236451281699557152387342122208872985080616058904486362473104421061403556619304279448861004099714055521073562590186652844437746423445593713849887835436338366848875810847776729876065276074924475947557246318104842276704706034432715215920013236276539918063143102137105381460047222295015596823113581724298803873826342742099009752690060756540397835434038068535782010828857387814126030235521717368023640564286655417867178277135289124852056056992487783695669943599327863670003065380374971578058842315446157279686761494903777034139803769654575051740320000870834026574213747524470219579609292440157130943738153670057801583002279356958834335630937800787630960413203194748397066467741518156501684014979991271000487664534741654216014517888687438570788297345270688892677389465949199105019574695579347136978588945476603823298799405418565419798054282559113799016739698915192987140699281994466979487048959165121788668238753849789216484733795271502183474152058077392522298343997497124421651656211663927049193633675389948811749277080080701365722841791480747707635244930026652182274289944788365477558117521455667541938586065616310382023277088478664961185208397143147275137251018221567427922954709418901972167464367988949841347419598114266146949486167732877579339153704887213924090037116597742804645782576628441050262633440382951948367994164614775161118780160474040882394225838099138344896073075786759299793598098003860940648216352881780874739173263629200315395605243418078254793773534297889277564530571764092184912967780048403117135647189041074763838940712644410824057491209641935505941216291718900542497787104657917070580892408468269409046423173195438803714038439521959915477124390824992791025495387676469241845938193055980508212870603405695912501411804698843132688862092061003289808215734507810488627622421608471598846384386665435723843553312975541620806395175923932982844119748734014154809844897190819156933071634220591905544073135718975435843352102617986337716256195216854437224427430942738088251041008413465442539307152437530578934096570728141726855584010388270622552570482027269011947602262902757600572739576389430140475570580577840737155766811436512755848028236780070040760575495485329286130873949357924940091058664765355404293329292166123582012757547719638706482300892689449103507417831672510568789049390047044578038841454384653781586782124683444120620874206682662868513374089235010614020621968342159254052147162431569502573807534082995233178420091277208982568100182360419680642823300992299384329387737140490875269999136384666401566076368387948027528787636263907756413536863282259159047414665692597456145407937405754493400230244066574551683119115932833957127907246520950440858298354026015336111868643385108827595681637067386414414900173521616575515377035560665723685041418088591776182257044715852569542495348970074789091503346492822637970029085753630040937206759332493575264979309930993026308800793645745754335498647165496135983943484389056774449502332784280477610295329872378955816585645793953865012283131125510167074610345748425473023885599461642256073077098629707833602855496065251032585608258137567958066814589199607314250833078034876770960534765043817347281211264499222368961302241276058826630890070686098448003260833581969818598399538574383857497284048427508087102919314600192822761065510400563673243620790556267879958945311819094795474478794818397888316099003069568043704049981312804220185702047307159851014051860032341838098908502200567856246276493496941310545187441034203884118285025562378622550410540558912720713839630361723086259067666319471973233338578567011318138311936898490131482925082966628219684213944730333635028519649896104951837575325058269588394051079475831482733570194907736838039313405191578442166779907944264491032415926772997577580587745866438571415939436353211215674101863994695427424616709606718516374572429955942241261698341318554637389854481693101135047122840011936421634489506407234261767673411903173603269304479527131320808296591265123195557780906896489247415154063314155307522574657931684028110378360489189020492144397886491438324542014616154682658021494100391445608261634107848365126108373731016755490211878648664999014658602808536973791889063773120080414551353176801426266855630157205017312177738943090300656584592516284531984024250699612836121423296691382511777753178403114446936507477132797193836305437383311128945454093704560083666940305405034061209023541465856942278465970867820685577816759946578664366619016068025385073388129090925824982031189257866687154837643028967916376241235047962445211898328669989217233980707259973914584915315224628810849953703338115838083419846425490818312893608341444103727448852603865912772421664003400182037763929643433479527090746214546011223500842625955959131591505526237542698943023744861045973731853198965734194706110496736365956262563611268023144333734955907662989147900597103784302638266934488414392776525170757433060970058026023182750237345297488716942065319463027209409151054099495402389327299656678682723514371630052932713955198046203632421109346688352668088428737319018498871387749777889890360059401547303321676670468639000740617458343287787199784190736027333119145581249107880726321870191711000690032503136139164002273690880185563740474924692090764017668095898371912863895373472682786938965900442895897493091118494003937296709904383537294202014179868528869242280700753400723689464585856184367416543684211333382491929386167245468669845776672598018270461907310749957982508130565067961025245396587567685169126272454908464631423270039714606383461809747185399332977229410351566918130158124028049472615569363755142979190573289147059771511737962271665499306656863408736610081376084171199888537467964203519497248591541095997216906936218308949812621413363428118912771274511882495625232688748158680908970827496919240887941268665774077072274531176313949222033349446304518669823702877619147193874284319167050757301058795941304650853512321083315044308281946855669410923431960531909659426949985711262949678130546869788608895272916825017553093399340298413778748225197546630263792051783694506394076716146800045352054666127595233277517009728219677058746458112495983699067054218314144377323427862776431588417642381249347565233318465926712624397722893574387697513004889836763173876959276566706735474105364846093667888395067777115078182387722674420054119115112734668473453220258604304048282151996616379627379444308471526558944033080072836508275903290836412460973100438552559901075042860129762536364671498514301701974050578994498057827606917733674355733193834781775912364726028872241799268534692701398297404944625185159664908193182853204318685967786707040051933775498134393320360818932677527668381149751070616036732283167414714004402289938690289286891699989683975162844558041042316942711703629814515831112896170257390151617913726499671179798032437129340079882088656435755283880729916085504149597166479920014426958848775761012575919910573059433721617836597097167497644880519268502332339690486975043734967186881838004725155007461435143186547182944581896938751090031725145672962065329071144824193712650583862269243273648467949532355954459475854837018277350410248570199845939460170461225266072555809526540232403336041733093971474315965317237467627096711750871975832911372332873174409767625725851380930043784099419991414671131589003936680607477158322104721174104997680685004853886392827471754881255462342239502183996365571577449511807531006481814150100571908991785238715746573315750365767679218045947396274614689663284834845214359547232708354143873527588451213468762557829721010628980625993027357399281574314488841841034758263057351137872444250450565687573632492376432868586238030061667984929588309135575650448600700755409635885144859510781285284978158269764818957822656143469717570037282211413728902764193515960376981446426035788831985827148311731943877323543051685900245984086082879208009628399238044505188689184021646209358913554979831170501871006712556926634722748265148858602744168240780597586803156608231663600889745103771417329475592569207655883787822075357314839779150792556643701287167334730213536680445213918846624305587939431754427286782710155871668587120089569076404027061581230062241782942709369452422423302982929278853886240866207980073197070018829751400663798757336309531124686324998764610079354993524539711941452617782034108942343660207799864544197028612712922944866417194206349811802478307083189242606771430798447692805819514023200773881242914016391700276103009267430905747673716902409677546330741958258248173081012185741178009539333900525840278425960168990641417201784259842681264516927747729539534899601577361695645084690114305802832446587171691860433360609712649543886346834137967844043977616984742367917764708464267956707882091712452112935337386352096485088798751292448278288640514881492651069660651687886060193029474639696319961285050701309271393958809790288272504315943236440541979071305662134925058948534442036040722514730718983479970555575529312285834099350838445083383600775890941348775055985540518841739893158204331748166150121983923929044623906770990614624518796828510651499547051854347708428658400322647544420196825877129256704591514818807494791528300985289719348062008562351519735254609543813419072393295713580592546708139125521925068650218395199099773531397930648476484225824295793320062287796331420759509506782660072826612170989496332358410257993723159826291384715009225945873238900863840066455313300753581280984924244594425069180533920159354297313036717131523836369554021813931483672284584498257653638436069974358227319630860198830163943016468085643009376004066661788551553983322332630577741828113846478926044768300125533377512445226749045451043692476518934814511088512656512003284554824113922683361888750188331096018600680186321858138907822614709511427138518676375268903434938663170535553667314292338883833565630866151832357627095718683611619790454681318038739344978324491951061343270606785286276255059012235006309338260567757696499509123407804555963127498740937347673196972139059618882594199504101900374643302498008449702988416166563899549425510938933066707781089794060104507611444544767188551847400685840193068527230367997815373141674777691114653860926927407428692231663741507408258192182118734331383071199626758648118971848994909586888584947774561735163156150889755670118659695147240309421010884448792989166760635992837738651418744055691049717892811313481097551640302047975060286567917318277800756893570465165212942960899421731374568748999193116906482871483775650807305839804750238625518822820760733521938208611989710916345315255365629250475658283526504834075642716789961557420606274429834009854818073541951342198301471890347433173022083767582104017365929350372701975999172203821834885779267116847411287958017975865281867003080504344701364682351973942657353138308089643658992742460311935677465754458775657241399504750912182319190510435738655072083948490941068317429048609755810359750591261987797534884781896555784412081030970328484394977415394918262057263077316455703589496833407902142108537647414957754917529781578638793899480657990481644362473713424567042721828390580286338873270964098954409218741466413338658738875224902070048110563186325283653464434655669108171624951491538543413991015184612785706030447524388643647926498522743506955697344160234681890350319281140240901469450905732226062455205009142047682989808175690785681997421072489628134799020657866002403331770359961371594692310731165232280553500234245109846873732206400923770729169900911326114704956562909777484283789452148639460830363040630818987061403751263595295641581494380937228065611606878860318538059732616742740400371886550651094842025874415928064058154496718740785917786892899189226050026310334922239599159067947867983306123422524451481430377859982349178600795335986230314327570416334276623434098039290761769652376120193211806519246760383611460931334059786714800328298986329619982567885568672803767296331304009173271071255262599845715247940355373323739815941207220317156786743281584121531893485900867916537740331649823648540604946487869168958628218703662068777697865072506239788409890041250889409348947901077599594990666272129620696493296950171914411110692667510093945811510804817136956635503499049626011400020266992077937201621892534034983225015031973091994286279907980186567494112692037461631428525322313887796546694195048136990504644444729534018620494945781376386367101249713095220940278155495063914770136550875589990483017067122393460051024666577615842174549180575190044719392997542930511624191598782449775929668673878126456546383079534294862737124737369466614300006284639074548475696050298250725209579124962148716504578633151597096108888507166655454794760590501630433272517184147980778601750937300003047323861093972921698534390810808721281808290320034784981359583542073653807284507220124204150379508120793610067104637324199613369840551220091931813453028628458463872304770263118307226773042857830933095750635668637107262556447672978048344151142282271215165969129175630183165718998031825154666563333968799224886333240725257100246731993036426275446551555099432162100778068337815066683267818508726513405558634820940981829452121648771467345337101915773853054253228149996759824763111450100319239783166622872935305006604638233789054568442352372212253948595390343136274882201245489114278589349065165943949208494111490621104784021455444632957979204608871503995607956277307161154065298144586268091210968716236687975306893710590513344920812297737787435235400489379585871642495681243198249608791600078141058499167140682866295156885146312144814792481074582755476315690507348213598968014909844438460636860942824702492867163188497377113043776190921968742813800466584902209122558350194328530931047119554492623361366261060807012921097746879988046071609477571301241187168667218522549870614461011603224391895318418321205074636880754831092717176522949120286943089909053599473870475903735273150676942882563466505290678397739588258130449465766000462983511175615385937208814014362255332024336418354690012209617204408507336869410503708369231374637166685234975921211611132417542248176355638109073785730341144093689251452644261212390436039111358047730174240395353577444218388245229030932767014210418543562040334569581597122782591048170131635500263812493439377721944776761714071512794305369078765807234277734165254926082876846647488682964243096742951087753654104234013963401823008477577313738578710974463124368054708845219787057267884319701721521485713843934433980749640201467810559361632227565635574246421234315485214010339393319449310074686162292764238915106599711449292909996251577980108378523399045700671574198243271873995432271506463854521181762780722316146030877997957780480510448141806951039129895871591244832963861728735231199390817583349475054970700792702726684820197652351619761319579287910650882824066911292162003031610633647193083611457109849685525629195662193475865444506120161838585074401923407420833494114049287115774542140753059469421189173465490263365585118942328898841215330510960743710996180459946179091689069773948829521412481864357238302216831574114317012307233978171344119185134856879700291377226838382473327027937869156229785268927875497069614395478340152600647865471143229357266360808312795164870304810186939578175569159133472284572254066130281815076241880803126230446131150874752221987715741503222876611034487798241697998126930723862320268498859454206828626058741481568076665148387307200976537460785051064576931336475739015895777611710254561643030310465780814530651123668877385119130671690166273875305897682410708311939612421018008441295442073828764471805980240362647640791155074528492607977347420129666372801700705754771287297731857130609645568752215998537554824536557751333808291073247808358876810930941636972835441259447202556817527091303973141614665909237392832980868348702603888072794983548361719138807146086509481325473310367205466818144443657452719838533661180969968855563208936455995465205609813372321470949734848125797918401318303573968568227287003705966399422104054103728466657744131777513721022641031274176242081705060293039581752241893200970286886953350503735706920373702845711701406962605346682309561034780002723833512719487303786711560400023650598893415637237075707068501019115846867295524185485973217845843415188213921621604968737415385310705080500392293086664860210132031425161192006423757781922066443291290178122886088919964676997619528482990484637160903939824331765155903180076586286669594860714559440067065153857649498444994283088385022249183258461329528332583836218056011786460224926438234137401365815335954841275149468194729492720874701391000441406085444230173851888447106008927781117603217523705552667978397537644780537857750419217570229516028638900439054043193212079579527291041325739407531026722306636712251512713584115317733598820711821462863947533358135351255172057677590810991686619920212738912154017029813055639019750334261903589727053727006140534108663523060918580788397337138278249477820404408100797706987221005021321109973373287549219094983529904692009788191752807584225509420741001199316433539132040846832198982154645801528718297460525524406728464336756730012409163342757948651910274018948565635885708719255238727045758404977648250569529827382319828067035921890205410849188840426389300738506480442784076543600395135753493319565941729512960935019502154694847633451014406296154649069966188239827216339776885254136354231648710298157850960563700094617167492254064034933175806403877163202585409489120572386627113037047199424614911572093120893213087116237444241006469490353222660903464244670838077345572650130681209426646065282054973833317903663935600274160661385105704871979292930053252531321123517785803226846000646150493897627805680624635029315011282283539962515977809302096490300825089000631416349786633389258609210806319559014200599603529079515817429127049849303188399220944254590923748450532073591948866733654315458642891586484919133977578686957327865039636999905643030096858195567098753489953273676118703525282411030532229241517556647654163414895335715328608748768446450046415413091563154305051625057366160904014254455943932123118270527529735652640181181877042747837542171766138929655890152936801814540835900821700343957576855059924505260717064609325258914364928281809110627841186677407423841211597518845853108271942580374890815073999541366439228921041902382665664008969161523274713652405067656564203147456048692450372438350513373205993219235997284461913153495676757458107958605816777990073341022373807651077369083177778537238715497112649507536369277821424169109861629509088002037321472448797389751526385031324831616892567494386527211056085746366001457920630639484147961234598668492427519962530536171662966367240158546253104365115744839282583229954356495615734830783525698649482114308123972986689539565711827517514072248490634213394918397610843833840738399583195868095004376031655347088650343798790336406782602715970291950186056348539552567454985876443622874654084203643940456512531990791890253846871003446195351837057803571164944300434772917412265224739610812451835118151416399967462363598724149290226229900620443572837643261686787725835326697962868365391182730940735637062349455802648197476620121046355776031629532743152237989830653910291754400040002023864112100782724089739227658411619635111195749444172381396420992068906632632046976146359309974903534211634388601139628578509523228627839007434121217373910218301125731430101033635572274042529712971384082626235911802916839741581877406598936694752558832228811736546513539197912625586232527081584746324382308067484178520185698769438948506777020856038378794205499597997029318766651453564478105169223731770883644647816882814216534470893763375812750366728898124064474562628529132300869976542279691569978026722981904914505011422167951336190900150075909428779238866735482604693078608564787767959013502676998222260068382635976777175167018856644024413125733554781648719631866868795982748820172438531579364229999094774903846993633614505245104158867790632514725009597851199648558486314454578876859896913808197753324632901033276626644957820425195725764916719622621269487164539781040935864466530412946640555111364032567986535636553100393578320058514447113977246486583689425406704249151687927579693983945368826321622042064238006183527383851738744173491102920717532502942962438814789047425119449431888250566171055649140760608614981820364740440067684585797092479952640213838978246459645579282173801286885911657932173306696899357205838646087943254898746505802075968441706285655695455467205200083637190926366929045062299962286618898618116870199872735272564244960666809164048469074535417896261119575103514085735132025307772251777425549531666510557697940428594901519223651626877373641351714226560423475982550206587790883846573316699933253806807167852686158812592080069737751004679286930660990823471344119986760558535632942863124543242595456238497769937712309488460939107533502142660804028575393090186188602973897936304365150803731177803866382086713530205668060737803378370067079785513933600475798970968672313189957668306124313803833147365681971431826815688545234848515938234261806052415937774060149894311476859123174362508827829022500980266934545212484930222417139934980837326928218487553690205212737683876869052420571943907493083398710618282986932883187593336580763605615891747233066346948703099801450466218868737164050964584384479236944593882275450852284093036481842782699658063634402873348678581875659067143818833334060851946898965268575329947244232668746373798742607775512398570231294574163440487627759174742736972262294209042802666781544277914668567209601907323387822653388294502903901691974371749597221751821862782601865248817495748048758315791002288742197891474699003737298072513648563968976985604193848676940241112426062826403467883448028239233260495458229136069707360643059324274909333544513939937885823329047073130675489252447584393689248823953881500377677592708968651804269715394778316565677754905455646587456043830439734401636773348000224800927109707281184765708426487328525469700879522133587330364978123727571769767616975936495570737440454714250075650647899306121385310112312773769604184618495578588405270387448055319869680655335202640313836676652597766683627440203984660603350000567507164636976539932384495458137812358163658052837631729135505356744637343500562863509305252250588771499856850466449832596001870586061644330501651695263829785774662378516749919322877629332983591363592660342921545404382038201068394469141897090214310149666739305129378335694430723831190521916752409894242428376701917586754121629399626994870906678534748673150253429167081916588487740814079487090099737617704959438746600210910511661385980404135203666443251390749325966475159764724305915546100113412982169083593308053963574786400721718400576837242675285942621282541509544236647063890745281920207163482131722790705035428667597159044460400390530565584342835493057577252541621436847739024642707967145235384288592527939036583229258106903198002704732093219746024654417033363770192908184204687694013393381404192328801763782759917942015009367630256615298439263186219730978891573251665652396358125114209772409524576728516393704202936362505456240638893392736777335208501347872172691026423259890625729402876630803315792699836825232388650650290064906453424100899050253688674169969385559980604593008204631046698575978467007638527326734085621255983925534200378770065674879361029271957641247677187714711629426972229265146110888875864660622447801991975629185472553912507838723603464055552802549531828038438406399048531181704581135922580053553047130490730161780957948060732616894026237751078669275958152127021915865046478036292979949645756167814795108918276879157831188260202375294902065052648194096074109356299928429902481023805241174346811475224796212968759482051493436310394737916071334701627066055998907023735600011337518702562261476386835979799105595953508790978206107434942964944477140478021266166291629571392727699090152405264086534645118928811628692346743277295214933267100065744087579809389848569514554425947123190600448183651078229568104944731712316603576123965718957480825877754699818046111487127670942460950108387387581823681643509549660426642697523981748806684087239669748480938028576175483226587526760729853760115840352452821833592355955930780344697637234361947766977232973588897246773936233482786885212007754185754250350985937343001749723905943621618854746709532798346278185279026822808157935831603962924294990210666159749472306594672756134322834704685965809116427927676491914870432247932228767441131670035746278457588218690307648477934413349717631213658996821053548514938288157946669833718242512490344157060569109813505332595918357854962306152537482134144172153333096772247967488803258048157524567888468821855742879578775984656422652806192316410916216901388114681460721813848634634381287196030115158115371643981135482671758255089743116584612301125951757655967236756706235731067560045688784755768894912117448418594962100406180789599487864360240763037560030073551100324059364139643617054467424999764848577886351968750261695074048096598908285264595485797855499952868762008929295817935878189026477413033978569934751482697503193072628439081455108495578872106114351283101036420199909520176317787000438698719124018722026898386718093643829743597082914457291183561652721739962977191378192263076380145452067651995481905414249940393586253429493559446199612983655887008106063818458487573446443824831781728348621921369519502476264382501845854112704237979270055760245794564015137630252728313121999779148359938078122679564314925150097424895764950241021268361361804226103177620739618350300041618119127899843508908822935251681393205193647574912849781785878596246378934116135590339929217442475569677664227465258506907006612962852005424832647056634822953518404370877149242927253410970001533041221458326120209245340576480377155431053688826434147633344452214074720553808354625855048874456737217178962720242076969132003598897716377734838760372138598791262131015605461654464647778591972500078055538314263264438617875270854982533054135386403766590598683644998902315974626119004929807986777880450312658611658896733600466094777723759985016558374438766463494183075700904980628572021451698611755451997933133450096044445658662322645286976086797779517924338856721858948748067332874436308850550631921967278620104363402757259868932227030807298495647130639216208878524697109603785441781600466931719112415155100437807531285315827069229391246432604757761025476287976806331708904039650981716156739779539830764002122142407106372638891510009218276661775937742522498437586710447748595946100058051533804834694887946936904895169058729303992721269172486471663828238320289026525740278977251644965812898887364794140554212902484596039225746818762499204789589046230950016743448157684836740124655678334631235194390052021348057292874364589658641373901774148256299782096655224711198551958971114252333297425144643690821541134064043722320659580567455121778814851799702973680289071447286578158004376090339152933711072358350839766094389682447533327493885770687339483274361051622163845588886348487980265766195683856000457225023131578872161763920750794787222409764056564529738457388124751831173816910555848972796754904535462547435144490806489749051682225878584028988442238229043958228184990716430243010279633528733793320863747966940430244092353583252201247267678653980853997608090097870680837984371347299368863203270908314164705636578554517656364871684344181930867500889614413222083313549248357636249260790763178874125372544851603425322594416049674173385045027573942738425918398245402700677994293443411354905741079756018433950296426443603310202767095409522013810657721208048668046607059684231405812799307470083374354678738600163501267913806613934540190304873898278527007047095270103948826592459502554805465581182149101781274416834451776854648445724953544308077414850099943807096634281942536114663075861183507144551066132738814480882978912119679249256298238658794080396804775997484804964852542681875863561633442967003756809686201083206552583267096531056740055056214598348444836781397122406744050368993405844856871833611541585035375602831617562713926243299253736961667312065493878286756860853480174425404068349015203318335440668351944420532715284102318185980417787760304685695359274113737267369127700765488457540261317861033098114599277791118753413531722645772359809457446384955860117550528975130817295381954634606498158450109561559146235097491458354718855839204172573998709318112252161493160870512964411763767119849041811715472898755575133099235833961985397083493339503119215483137132846015184447478768379418792316036331821237765031235993584374551164750267319423586468383063807802011677376344785655886526781342826312004196969056880642237236216031649988120167409212747804528801381724692341202866457607162356241536888064552895358406906032443933108130619081884442022796920628883121159578239569179369561196221105552698564469295324657653151412236943557044585044379906103453065348067753310965221594546462494325536267708557650693389511301403155264834456086715087821872552240118521147957397323325967883154215086950544141673099994826212773784181407266055543959361679787750220669560599102141627971679773659466139915331323312774641864303195170015521244865477922487641190397034524331401292905294854830290848947383213145137541568268709545273428532836267783381298474777182552935327553217660183934103896539720426748597741193634348518834143421200649161918577607207038140204329406867084091435104242082458486830024124984364837959764748208859956190356339993256178630180633668324674374336218045554608106279862284182604646483093935168122566416319811167087158110232601260340224133084240478144716272234169264439952323144305182220333676563757367184891843295778229654596195667403332221289679882632025092987576768196274426316594321999658069189857714758346618483838789265051553773438136464715129967094908617123585458867523504357883729973458282589293562910832117959674545463200075435724762420008827332355750919844605098180326307737477244714916462213195718483043123334543455493422750603573402300671589943641253966493537717418158335905690547428537671653105892104543073404831292551857402204507234983094969806819247357104869418949699198321132379047996396286592338368775604943191888793217835351811430998210464009070807926414470137484765899648290172334118519509964186856942763427428320204422247099377158228550044662740109825315474674350116958518716710739223770767111231281966452154473440840471907900287389811560042431724582488508228666956013664677001508161305331903381095287261985463946128774164431335912525943441230867991729390599656887438370527997290456947116080382133055516283840664453204051162125862179211717834114635755173671300623053255000696530956461625655173354586658260630137330226634115936141274706427630334769068581355170514942915952563330745537749282005636281578267771054666070670931572677013150369777745396283251692529749626809263173883204388097228245560866933282313327927297730501381298809982873389281729677626504570791190923542470916689774527804004969492094238715731233688687016348307563981954021145003200225468931153488141254704906742039145886297297958345374865088855253975208962209878713634898689908700892581900567177482354490664514577224366689507346281353054459637202413117327850941939566886813889754885668008532920755837939152311853532108072999184737842185737969130476905808828895707693654336276379685561069642210909891372278826888131466962172154961908854288565076058848238337891514786305349471963231517510646042785442102130974482383254011000492924701816285323630191321405771234048234256362621136902503399011188777056883066442601858696545962505441913929790000555425048208585266087441858551420933574921195159354121521278629687468098549815187986255124483552487652476096881825233586092739864586406626357011239190292766655906089044444854103695620513404596040312032868338694035202006250423585963303312116857213716904886685462360090343996757199956556054581200535431381826085056189197489642039153263652652451125433893509982559327022238106665445180853717121291805877206791755642670469893023844411336906219855457501491435842914532303589067125454228588109422056531637961862920771769007768837095638316757663310303400222473910412308776222436779174197167086682617620446282022689413998189590869847660540844810193527300083800010066132874467415558875401272062358669174857134886021856894601293742950603070348493818187116475621221155287908779534038152306806337863268660864717282039784148858563094337815559453127965913171992475591284171762971246180827446932735836842775052336858713889502445341872810159459309087645074403340904442546977900710018380435004290832838995847858823794551698950788953240870968135771337594683175995027072729279344264085171635476186834641649263719675837338497097249357261639776843341305283798776197771026710484526890860242496701670036494366505150433707489126929955077508949188891336463076534772115756889343019053794337555021044949190460200015941816324278399899085884004421254109704009945297535121641419751499594067282571033855597326825569770662999200964309616098063957221129244944944712792487222583019500281374526027948931376158121747172820483385126778770923028096503745021149353711343078984068575430814585370672257643724499329736308798576351788254264958700267276019274322085682281196353056714050790698631717995535562918291432698612920449324958347438950214606085224349179974626696369027132987371666726497914938875732598994224827721885064195205500057357639755057445471706594873949845942322115299587550715236983013565951506526533240710584072292268699571735014028667075351569849921076154425502815111118076991151886905075277121826649562296286826419908200319919078034993391270872526367717963307595999769695375288507633790248857144124694990988512774050643996932655323187226500634729308165466881202987557380617964777956647386432338391463649951585418342569271025275189184330462220508215126839315026514415516720714768379789608057993009042937056269564434619918476001000418277944784342785751661014736534167534098585354079734287763945526479175117482312488220531831974256608650263546035193140618230969618610205772724766791493498430204620471073592454162276815140494170809706748773180119602994549976160749211407860888980125290057502418814340308754685780466537936215370607260500056041364704284146807971585044016442242140635966400429610021259156857920182115566954269277757909221783446536885663719185478506355701030022278147312327064785696067490080156801582441501190383444675906112650121453845142010933237290030445017722093873251287886670401536801128386605756762711557901926153794148431745001441773650658455045112895317224747722475569431833704264899794311340423802151177961278329912647105515714220808624362807528526659206170862699127356652424608746567740852399790530715979733006206668882612511317341328069011575172019094131774543322333579849581785281076420894984235896437716819310454269395268679490930872585681716819688521163334045157198194390744316452223610932549546180744079576979666273886942597564889349504951731228753603328387825405292291274449868566003552546483132617899584024569737207505706405380565677528206210035723472491471348852367106330222065751933117251623348757892950461732361224972587306750049233656230080688064027933328860496156005232959543320819779568750847986071189046433223607779055287078137305868957492055898623920372648510861721144844100545673958989714060833079252942438815208258419087908635071510037312531037629245953030782951649209396600735596776461689161955141710057731830862427453492248197152437408513629890189674616062689195447855353308616070410589984248062491288976342997399837050794548307944968121708832525514948310758780834198767532480357889654490413178552632876563676337651491609294364612377982397371718934468638160879717403963408247645013240395878845979648677086690006708700779855188549432678281685953194965090522279560690511880499246204867596038007764045701731978884848484486516853197119705652838012126183361667712797901657412310610302316662408899893157455085927924845442379400971560238549264511945737001333986940422462424757460336016512813856510389608784169319992430824447942136945117049526511317204026944222078662817345301580694214669390245432792372460665570269929684504135318484685223520383870786921529187493582268789393949440384355902291127942499583296109531149426311552018912829265924664127509121298187516804296747392931531264165881924793865635852315205027644426598131439101377467826159007370626666362047271960916007482401696892645215558256239158913684599498277618844318622934264891614647308905306001819033183464474291281907923000436457124896810372021624861080962869867329358863520355214870082718624616701708542331712507992075730612471270768288149328401288606110102759420003415283824444139887073106081287597202890457668425333284667978609027819834307269583421189328813260640299344634944818891145203236671198049487560654200165287443260843861574034902754443627926106312535395534894531806956174019701125559489091452639521682195481432448363995221007106287370519180110044119610980356233543621287827831531479946412917202044783915521554215604266230233412669744567625681749509148176839920664360217448399442316156379125634679067709505739249533139210525649593277133544258885165852221531234449727411676062504269068036821460339336511123412747070541832973812737705192776248990247113562635231354540327262053853220319140799329964090650305906592071572847334615671042635115173321797404607960072052817239740738707732395557888392520176001769725347366505776098133487688446431776620699359799074677836102300741516453825326260191665410955399043333689318151007134911913834825468112253389630534269101926834504072280161800647513224886007539622998001937833410372035061775838083973938139927072376563625142733642726546970096368534661333030622027753532371533862340510595805134425899090017865475468096022478747417718801065093610789835961137767563507251732233027085344771786555513481406613416072466087765093560337741420514772590427178873872698347029420401689989502680476783774821542207758076088370158717258586251348224249926862879663547714726376074882695619562726201076311237295120413245105482479866959755413803626414554087308752726222930640535677410161340529932195671822079755235602541731050557834649923403814206303121221874064691925159233797951206757705538878652983446252103502572503439000494329471152422013470299146502937418832021776218218749240173725544084952537526116748207087621627023092189350543481952810975226120840859069626911539380261576439545539559641068053338944458151837100730851085548214900982954207022006584800259058176242259177371728800948410887996118630574876692785945481813064870441220679889254062574845030398162414248331777240580961765919454372874227182023840470409729128182378168373250712043306637708336487375860474149918026553537434509900941858714410279241052018278627231992315336614725200045676534185964447086811894519361005332648539311026691155467206694755617848121965480312440621166520452225538658290514054821041533919676139203392264185878247133498558712233044061861297656473343206496163966654912647728198111274679431719852710717944705705616608170420658324211428770897954702074427536267760149431455078902824165651618295906769437936698111292137538388822063963707646919348540355064653257983410331331751686964653798947681673887434869045344378647785951685540561878679888158096404473060334756452658185392013134855056419157783974123798250418429124767628135400256813044937617422907625691675718608266340785659611744786007079943636708614537167891030421396860110128205241946811866356310706945926142827580620828685015750017440089713259243745695494703591638750699633230930203258541557411182872817483381168322734012434293241619228222682454809436991462829468700008217693334897514941650672067673624670117156408902100363162692845869155903190752676382302751502907312165843575535905363791844539201912538762415096929991430044236693236553290858563872649036759740131277178643651650487073343332892026708525973786413506190600115133280463478732851993407952959209124016437602376931135756390369845330619429236450823949360075937941921227813747625025290823209327158531730578680733445045565815246695512506343693536429929841123373907679851560478719489292551201830145097064497441935292736202950320256127175017981539473292051457914231964122914043013937299353026126241060369447940341349952330934443667394845430127235873142309319445073586166699513992959347283901995798751691683788048368345531370506466687136326431704349959094448267732193900168491390528978958293474506622990897820692209423101584324028134533842252408784061635291002474657785835610376897113186326252458507434513092671881055949956405360313396097888403973649415815991331152980667277431730408630355026647157765029081807062736228887971380247327111521248823425250503397170100454214252328477446498979373839387501178562302708828409189768292013597564419223447983510307621627243485666064624295378087418708034679756078672159781583756661389758586224960267029756607556939583462639114188542191566801785292698022646792256744412404196812093599033369706345361570957168799515723716068282562319212403755148535296786181312445312526834069073318430388118499299593183907177674878996287545359455860484758987850860460048244023631456277872737925946592080045105199870098477457589722537340703391291050722400002149658563202033742438993152358802006251327418427775604653145249536944019180118195141861835111411072822530119247983992332863878550762153865452245826771204404871059422549194406935865603542966339562191632949533420365607337720734218965805850594017817004489170884416451130265045171081775474220284650559648087554168836212780249724291456140715325697942826610261543511558352967074425955444691226035025111749404553030775458917019189925933641567691008640433916279657215265856308278432127093744310749836719639258953233147231068681859931638484825968826036525819650317647775273689464620494714389792242398671770662270274577646586547343983759770531846627895920252620994167525489260610011957999807941129201561146812303211015383784038328541301811624762125253804156656305445804162251568784729610357288378304662011047069601295937656753181116661198351705961169047412888236896944812648025695960841456089532025590979130550226117846829735262859929966585822318870962481866881240120584681054565708641738314294888751294863648328749065915805751031641578206156133566289634940139970731071055686832555488731408965172225302028089964742979919387150932922075130284964419184620579702438933360200699010969062095555328841287030354054689860431940370427472039854707210765294028148432872357251883184186869152845700324341328683211601061743022544520165815402104088266362534715299013040333067716298693923165811571007205313977519549176214465154087659068572614747215648288329122613187267750953528520632198578765819845762855887116375272149943882588898192592455580585860687664364262616524792061816984533556944338973086560436380010831888861581167334895365795344781228821739493790974269773379500664419633244504876069895212404809468369427700972900895532821970287112091673346641940399179348413504723377747274459861881723388555332617665056740713526169819847896640287071894054726760122366703849349716011558572284070714717955355835973179657338432582490528129666303450103912015875260309782575260536097953083753657758628323964750931679874558647364581903541497786417449108963217145956152928091862844495021287994609315977472974702430253544669942834054543433667690295176429833085877111092301838797226485569034767997698096846786833634375116663068561490210659787010948179776684564017039178332892122693609421557321045132485919511072922539400483985401340983965425869111330940807609482710037476323030546394033099739594741855845572920625500255438299675333897869304307041729435817535259637806119615380155230373807622225470903816124515295323942733069972166114894364591101092060969960586005784022314562238111509273417950080555375823117464187599310929692339132653449479496677438487676861400754239657142665113020843291417295147313219691855868891758629732672114379310717548643139985067929223902309263194622104456486978713505750719559920326635889064264061824638969900338655287841456634068797436055901644454673076578889382423790391847977317152052646935076020238193110615980575280418328728004077781626379521176501781513269104020151832370676771688699541890173313484946890946730372698517773205697457219123033782618455568692747608570756138278904629643031007958386466066000954969582113729736996704024095918703409362236428649107464508401068165404625614284597334376744208023239811771734254901943426348005428444851313155196223178860998768459598186845146868058985808618876560705403669287816578999330420978405234965399782181181464778499843544481745931933641734954197282663391374536095757549067693546732416136635777479192506179528929835754229364951651678481505870937375149465428930125560915932851019395811656136304542387187518750220086571957909540860216279682078656667771227947464993170763447283146586282177027749282314904039449786834327578762759662910682627657611539618627536032807304233476195833246795588468011165536180451688460445895070153938325374790559538983854791910426993514249788420089018464271488669640317742162020338716091015415003128385022017271670031768512748923694935496438373256834772394460748829158055977518278751300480126740833608097590823164150340524789409934771316170991102183217246981050438879983868304587639101785819374071216205203725680717844317284231239223296475201925314570429516254947220359167514315656913628921963690810989464827667860993532520093862428184734928677056651644911303264418335506772489175268423208658120254210610125074769152891494211191972247725920454216661583751981282922364937033503740841226795308200382264188390489625301034401918974043997757315013817632172505791850735926784116208671417266849039532205964442135600490080426554614466572761011973050849514441052597307047227999838542922459834745383152799730154453020286872889626881822622946663992770021359647863214297701570954898145570606601212059655424960589308383071388119553093895100741419407991226410577344698527044049674350487411999441682484518006015894556745368339181158240610929170927369910609873877176970019165158131422039681624308980759242074367925788603555269826356226654631947744949388602855850570662688591423304643769610395897775228631509988942232327126804951237723373603989147968029482223606448738839643832098384008723103537161915463755701064617574179099719491333896036833543403099132737293657432545230431451414151712187726005829309225721452268336587669945776619536405037924458862445427684450515698986394136036461490837212619134831568692725895554886354732356064706841122565938859707072296823452642429781211065434159481979469556841611789919415685762234881266708492108394748823801933744240724500196941667820897326776408137008342915520426626550638261558965328020198449880079190001025979891464812115719523255588312654433887504060348439314675052494984375022822318011727600074812440417216082021925563860111342551114790753184795296269497429529598227771342502404687901897820333873510841187669629704640059968062236472899107664241890701246146461148991196879804625541339498797600305299384706563820959533936121057235087140160327112461632738847606901818731132946670821939298981740281403100123431772700393534695497575354891021395045438765550633949683370397048390595464574309409353235831758034211763569684096320944306173861328281180863084701363560786606633185731921846383685099262360703826710328980173593927173401584695512025878534574331521596373507955088940665291028262711109348422383663278576334950879098335378162261647111016040163610939612877515184707547578456119097408321996516197551794427382885134897973437314131557506712758582472048408734782150432014992415140659362329928974276968721476608672669561533879205609896638547813525129911788695794427224862694527701098730776966183589160361826576455292447362665299783248861487353093844518150355905939941717468289597437965665974757748121056109359675347553671387219399715285764150739390019471422714703033034685928324953628702391522301473911399881568703769296472730400727480317660471243504982425036829996782954164448603422382746205659004475931430030666485920087864324915944912365495126997589145112442889143374119795279620664418206032353752058378874387972109318763173669304411888054966734391421406413273084792302298816815771433687110574681906196382584355439217774778181495374859595538925830445524434967286300171194070033121478166994367490988198218579125708899269576613406723907302436073784541878973197352228064682457614543712143074660973998071049367323815574968511531146293936958265913614570875140688683014050384018050970755702156634563502953041219405165050407654941508067844347594342223410056932649299104064756646256660230620547335333458181689525978274095695676422406343734273280882227106829003067143210645898630801815767907707571492815659657011370862073432460468388486004079894096626235660726215483765225945542158028897015303525336025897214537079419284274206907344537674386941705966277292297952504106595769994158376744659184612952882222860060089642662200130403187479613722498858886531394561013592498829776965730926915221118832081519271030740841925205281499474294138212979913048162421614446255137208430390078491910877770923583134673232699622838971061811053540152605000285591797151478571978869541352680325653095738217592326304888070403367329859600978493979420384136807041986149315613406286575453712645369578149024997059377064272096298395885304424795994519390200222486618587686759409664864491639384381402515072019902558358677586918448108422441229445193783780824261701199067682332261201128547909742952410515022036834810909386843100348146709577711253648168827943590539404700180208915162167948889312852583930630540198259999180642950143595511194054631777227998031549854769640882957502315997665377144910862771758945661749322869945635113346609000755023456078366181491806160908845165088578174481933395258168078586618326091771853081652519714965502720195501303925623109997463308356140514162967270239911486392173926958564878019922000050126013583040672034345989945633857153675353877335362326331955546728365384200426362639823295324250477459815075758331485391907256230372597744029640280920046260982398705680568027528038401792670434776265199686333323690621231936393936063239898332964931649980856218021820719218769856603933449965606651442623501920485644338169821059657320621611536516415656230966029464311680688455643104743508518025924657563865220035365545442852296553614032961334872602891025019008977426556264318650121910062225194038521273560436262379645813954500233998330116275186038423861596688892394591841631595624499210241783982339759847870313315085834117191632971819181061847322661676222624799641312631031631542450763693036672336424031787043457098926276622362067734311332805448041077251313609027074656078861161602126437174947885126345974834810232650261424856793125955621411707284987796773548946307188040992559520533751905640190870253238545443600668218724913837707172994393807082864209387571998521313158208557499229616992554465668665233827007500335777332347838996965730775283894190244244215555835172886584832394205022844432787144829004260248167972593346151028815778342589224700353705041725836184701193290637781547802952643192876147731932406364667983823343468607022953507275798470676305268764348988525373126544505507763287994611528399058979266332322594163437776860418626451756916790189798919998292715015024698719098818724828322318191357400112501404834080422301425479189183424404852251837087370113149024273241469882259419320704657975797679949383278921861692122947708770782901978346374348564537678450266241153723969600614864165070797032007926825958442930255660936021215835536742762375442536306933660452546020643485706428548623403256573298326378058402670209345583874005293774210993282119657867350253048173186664174076815727012242125879475130598508483558704453634286839056463476754039036183413486843113236816171479348684050299749430703742657692619671513152163217006919769159232567373331912930945594047453336071692725562523000304560161653443043624741850954813936980542943552911960699079637428021043978434400407508033157755054065938886870421849944814282080827162220805939151842604029827797788733672893591703718293854489865610807995223839249009310909132660878369868604646140272836988993864290807943615629100110655972220534875218606759614668438211470835501324003395979099483085622422913285665360991132267945945253659178546620181168880587320883596668299627556414407670367605652263552245952471416248908703929844571513193816499204941401224827526971955224778459663360090466047721211620769983299156974109848726592948736212204927064723929674393683746515820647998613758414324598662192639053660574956395051234779692348451619358102384143280630787900234842838399047444602738121619291722625962293740469494435963542499901955749587054091362795488667449146688832677227097619442871046228262819801891875187708979101784499763745711962138970888074261300033932967334451202445094503951142987996094612000837302367292504345419574153606148322153130005763550110156667833422224585434246438382305908180649075546588759699510828459466295357148160616171887256235760513468407744231595320266659697603040450821968585248278993875122467883931679270556899834025817068594229303917185953427842033177415886096603881288751358048949897689708744625449481094115929318110757509556172357968278313229622361750081081501429085671563667269278426337545122762696113340925895395295094914147001970607869801194532993976279442772845619510698783821685280321782834337183065064609157279607945243749881358497124376110032521805357380364529519462993769392728385069680822668562634930611981854441887162014687794992928686215117204796655963380491757572678301329148576064014777559575470563212795166663915918520299716937171884395280149532463644115514325712666167723037750124232595891425745045510052472364020946804776625058270745912301758757539420123590317098895211023137346313884292451739785757686601415456202738640570272435032820719718454342198425996689408652909936742966448766202309637738396739015394852238831676289082774183015503533209544284367724059901214368949612544871759127078193013029220162334431686679723490259883398787405813375400572995244638736607722815325066296718657391037960016513114007535444944735566818417050042017396996545138338388948512959845383363677584205523779726547553592367911481160794730423205592400307434353302505332073457444000482568340478368850955205636130195861909278880720458575945858375583229286606300992061842495800418286241166639722169023983520140648449854881999339092139206147941806910190773561551097089976645497636518889332939544563293205882912198192354702399360148284577955711647758919520570101774524343387375492864838557495448934911551395906226477455459149622401601587650058114635177932908731740214255703767377789263302427976351392211690466409160082312748939910022570901346621966643346981099317227093557162513847774212143675161739308852722201779495603190216596827645302564464042316269905142700071007357341822689864002302600208938899011443916784120250042601387265081323553971756513847632775650075058975436949570998374477746048476312887853767542058242563377638704747578990056051316689632121910625963878925502050718494242126868909987020798504764893913094318669079508309690740043319815670159409267083688383204786165729020856148586540907187337011927896994708501816096111968805541205565579988466639100307457715601057589232244571464952088723815222430633341824839924872178525173268666235845460260567881144839713447186529420390707777321318739309529325400110973848390379728158208462431468426023965788601494882091331664197830554823095964138501411073488328007232026145075206685146359431407606502628085144804274206453504889697954629671458776678472792078934869574676546959958062751360753387090274124053892867444776044133869008985622926561672460122140502909175751219749324718194433353814322949188809056564305478053079523465687674016155814002134443126802058236604232601944508652269426791818003040260263490891361453685065039296635289356662838686093941294762207187470514474985544292848794015576693593527782183486740691386127906043854521610965659852026172190250543608233113896442500165173696408686195202833415634145488443112075459160016720810233197585689468955489492521492404399973228876935919785175756015482590905200395191647110671134645080023160623533820762332391041189295901046552043380678924306051592967742565303781876537613421393644360251671000988315345899878754783596366432135964371397932605259767569586129486068018926762965538171733646027030736856308920153452723133518818266720741502278826118367103826403487827347486167293380482083639424192429636440638411699220028382114131568974940229362052163687397295163564403685501713534848567285955613542189622138385160396723286613823816545926010719697993957020055568208357595473464423226066839678544108814861339812602835620393847012924059344956165076344120276965521234432814433262814876884446890945519465309052223621258968725551573223914952290482588594809209958627352356006978172949436743278880680899151272602155009302131087117611503168590552872068025241353925498777426998531712077943888098849668295727198446285116324596513653258532701952980220996762820810385633341088720053789843414710637979527695331584221575239482830821441232809508122453358432734193978540227859284992358590338294305866904682875905111092452148671084135420870647830161286857968613608151420257597529397739119196300475422118938219761962600616609388178608717232222021089766892959660872832165907311813918191416201066599560977005613307167985540107871784268213106872599463412858926879105272832717125418276248926252515928138583276525554319329366736654996756064017917631118265656448128992376749383748666212805869045334326496853239803027206167572921048996576883817399640129416478538259842349564184578652444078183040262006378684779473546581298874781587119575320417426500146703596839316258742082959615975852070638379628512541579534436742405974238221336611050568974825809079730630828927520220419147225116882846733544269808336126042055760320988326566315520151294716965325895097937080452768479591522445800761364144608078807044248032789465336513275335725958391267055161742406449042967361815384021679119864060253644882598159136050085682810567957104344833201375082703661272478967784775793029211053482147979893535223303030552898088985370996228763593379112131356593956570353247526913937959118017706245557196003510986962900707236195922690398625814561363281159225916330544484081521966098125402669130765046590095839161130760031996031531400172102694138570245261240134200461937781132034541705763112445106875643858681797674018384782820337574770504377143998157855945554195613745215720523297794032354461455146740574833586377454200110640112919531519673956775188035373231887336873052785270679384710912476233913791881597066798337360964289737876615660004121452781842419981923221036665200364823245236680709027824638543706872151389958676379296365584510759856893055505092136791598718085426635765643949583586822839784709826708353994658011721260935837006615106870655615344253027400870818790621494529033086569669597593127492624382804103348040529859794293306921035416634143292598137820874238057743153025544759509438047672006288809030769350097081396837496699543781723528902332157873413775608378854836922371059730437888517903673487778600294494297273590318526266362645292278348178549143112046978034045052873109166113531597064177001925019823663880398295886451179741306071439578847855560648604079412902826578844784860074460607326359155327553290211245852516414041446373103760734409039129754616251439991144311138038297381937452854083286249833943014259855833482684775544054149921865312676830189019843904159233713181011157707348115528712629213225533974789797578359845858066827195616510983632987369787449002839096333714004343443092706153527000503906662255837801171022081468104363081070746439727727109073429184177421789773021020748645302311235627629526987540640473776328365762579476966245004265384121468390906953869396877887361826033869364898852549106136683982530872588177118730873027155129013470389816420626014675895417629153638788069591211653420136151053390497936824231345992020037776084681872885223143488733383156412254575577323691897240056030158423650902666624599279471128534773771788805040612605405382981661997647723404252991033243994372050425545191732509861178924574267325615258888670544044979655285690292326986274565896585764288844826093684476659107214359473221975107348221814534666412617796591818794562929919910448463814448290356840717239983365054319415464653120752244434732931952117245507752405437457817385857314119712870450259830373889990384961596517240869577578356855589449344058817665388544738681393502615551262717375600182298804662469846459635619527531121423541886086368710736220348573277557314879536575252206172422094522715595455522549052924342831309898748001863272937894454246719278521905610110350171441396867937581417252273632047043724312762065252697870602957215485900929395082217553913841952438487383236054517718240660160291947042934087883396181147051641717832461750976402244507572081201235716866496936756086706913853532535823054819321253217872431263141071295063660464301758110914132772406254246616110009221960549077207752509255750822762313378907558005923551836358367634406151373204518698940199119662660991173418250048818427175619666926819905435757403804573877736870163452060293528136656160909617348471829129305717912922814873651626982218658537238268975558051007663244374314624399361176306199268254412102107028746372295692848932336710639350691413103046808504586468058901090377512613566783330826395069876995291199048170432461098171036752547615320498197114202082991042138195339953034472799151897218847098886759431847075285712545276486181764950438174943164953812799285202608135066623452153215161278301168379024876225839865269869775450315102530841877119710740189357667968150741142484576640144107686500988602723179906227778120452467157149140166141222567238914518963559413536111151929467263954583017444189428810388774399692725542390767110457640033505854552540552352543946249112035092593770113344336223858528322428891523302632833024449435193998827810541891440272747560520160546126754657320760085858820260614756640225803687169946144777864567774791734750589559172959137339361268838108520703495428236858939012617021161552162650215476366406683031765457308663779493404343653400052037437656121290133985322376797791421962868558902015093210191522156455022454206897320639114632601885630922486588493162157632662286335989405485807820463814103046684028592905353671887874025695800071194363041805261180739300124550890617854674270345018801279320917537718058766490901528810270405375909093182766366242311130805444040378101164870945322668043831638196865922852276526014636527082115437569702918355524386637012144289305542917745024345092956628983911690453614913520879876950342631401817389495269133993744588862226371976391084780822507428023520856311954176675710000133337447424604339443817101818465775374261264380633912931313255053176024130915066868817914090270997689222273603739873120827212421834600727011791558454249005035322785596210348925761883993894447306196492680233323168999015168575351435228122186076300830658354411467612463567627116416960151297766916910015662882925342503176964158147592738022980906454060011401872867162201173521513698439422146942452350125862844205618256156923546136498140599363125380328291609647340113374779004254897944041144273330299031711480029954950406980367848897932547334619124262154808928718331958061171020440366858706265582437388763199416276901877399431927946099283076282924554629619962091730879267806480146484403116461304741861680462695908197077316384554377369148774115505195303556503709739094853831401426144926494912218450789870976859669133571572949103838623918103533633120574238893034224490591104567416369502155057788082449905802512246248697899368496338614147257392516459958411549754724023797228583001393182038525857956297294175485903625586665923059791246183408267313952033557170968692470472648044910634065030236836283389948433759604519415520189421315094107188390405044537118724430693322392707326624942070063821283578299279005747805401831391376134302451307580829432444122494432874286059532037304398392544499432691917139823527923374997081506585177326031191107187292357043692411987749978847545728200128722517033189153476665517782694732305698111323194944378727648801516840884940889503781451720249253607934684792457927297723018804542516088948395096397000507099177577848395977081412845498611593025283550545467950913799911016556736508286476391752064873930810091543224290043231031547603842487907236140657212044374276111127626452988454354680165971186793804519484695354920832764431870486391260742189844785370529067339176373812963728398762469626662576372768001060133889004818255333610604265395197040844408445265195912597686364837686286830497995964782351229138923423545684241683943557308674986687940694728026245436596127300101553310446398532763120300135317444734255198975815779702524715668230636062074969835430352209559166361317909382167482313096448175998492941144583485424967287143378027191296727587603250802379256074774352615812324558979758696899558029711834785299583756094661633494793205840280718931685233757275214080785422071434136546733378115176690272971893008449902918572427850159625741352904501347548868084200651960066491161470830620213422872408404744646288799652893284125689711840016492711164586240568862890845628460070909462856663831565850300699739622958892735849982012211512941600566759958020866818531964431347330689435493693528614122701725986303994335229288933910194578252007950198299810970945254429788555698959483539333056307437043322666630398507987466327342368879249599090055809247074003434466676982877031686300329105986063302542043157099990129741612517753617349283403815590540708850770105759496656016293605505894534290172368277817246682675343135733841554246415464767957777272295872132332429782871999545183150847510816307604293695721116079338216671608995401966239311835033995352353347952314714742839118837738495262268109963776131213865376644870829966191650721611540996882121549224677525826773474505050303654257549653790192205571440936663623503428267545832448477548716926617876185481651611538835905031235461369350951202481385977020380084621619531106287245199856326594714876641777423033801515804856640383900954159154091834133286857819303096012747420519874975294613663352699214026564551263962203020183044230436171310953816304210296020121023003560046492119508622469943440194901846204719513234951536043863088016124400738493015430324727730838962718916734470259219049175000322203747784354229093845282956213326878278365840048529096898307521971228699487498615577838783369610554225107593632000514823447918007463337544968273341766933142946666010420226020522986790801204717551747288385279201000482696685918065226954963222510195019238930613135778331539126782838112876601542200032460230085597932525955934382596544171608763297971214273760341545460916005603174511811704069011465253439641591675855570431625162369287849610941167311513489430656327154089105195339070250939907373800089618970951073532970855910621090570929985244666842001580959897830093602122734676887311420284631630475722556245612089772066002804021842918246322667885720830236057636157313311236975839880157065155109635497570600577944208966989011196011944359656476680403067562837480580759180280738844317721010283951265281288527930001818655870205366509249890358001755372185959242716765522085197793218069504763722087065343511713941772335279954763997671763582969645341106052200817058531158842350203068048922407573377632547809942025908646174292322502440766178567607543953809098950235971920736756743670515540023456014521932976090650554929182434872772404589541299099585137856268796139916688289786653788624230922813408958095811649928732976008185541741242343044171545941195279332807520074780852954080512285144558336245866721767051240475744293337426848248059490356329658898081950128874902612238692188179425003602333911601245205469065973340443912060587086611420609789331719329140558795353683235198970946458875272198099338104204524157389790703216032904666467436236861921383562316739971232319599599928335411884668923363312168810581202285449017532271859140542513377220052859361291026610522459516438024101583132788017313882632909877275359295987890662825702998689437716771279531715902541924427199775499844881092478035011169812170166477849416234191355343954787017067101209253498552118126997384761224212658954396842092320914173893769123766848227998188675873846411508899011802555105663338497270869818470115417599292013730162710133902926454952601961426012739995290586430092052246874962762342050592648743953103892824452773249985113672636979694998314147857313907053433619754758594209290730845272398245648338295710503526445771572863037158905403797148842838536886483098770188191039014306004976505196587425698209383193929302913078523830445126683962419480008580088465262132340256440053867157138575293194666897844603085946832154547350339780737341862475186749104355768695534556506543907880565680778723163393024195573051397496049216804238115912618571169409934282411187938497260627158112484026912088368109589683624659298472108448283486127685778282059482972904148244573200423127285930896368079406290193888198600406558816973775716087495758221005349281769257199644862462584813859975236397276939667195401855074564460696700147639823006057460049785259773270649340314264269744781817167013760053689486685589352896923357915243201430493013256407979694066682799444159916990442817015994984298299998173541706054743245160921706718575801865499516491646132880973758601024379021088470798851345511608308143009455206208442146845906866625755173153656155825717792912848767404115690802602178133645234820904441727730487791445830389984736015821796491086016151697864871304325726938575096166633184321065845556021102689871703521618135742013920315204170691752014088748517979865294429253078511247175680343330457518474228271470936241938415934997026989932070098334438292089698635566314411197014981295126972089336467552997872812568622310295171775730770957625361299318011227547251547732694370615192925843631625375266267181328578067531370785937163463022285301498846386602740968235916142926057307349360832956289997735464205851948334013089743657793317036042909271365607179098026612294185791171419258309699152434643794870233402901606660678022118982609983839535508517250534741901613265275859434623602166097950703562818283493401571132359942357688667308563394935341354684220248679689150601968792488888526239833361353531397061460071742113763875431992824407720416898249663336129724302273985398009556111616224421505534377394508553051926451153243976922366471390026410123105201542633982400036941597292712183022833364070017545425843713944207474366147473463083821336368077336318279526121741084771507609445274793592659408314066469655657732185784731056638487560161764478535521105579774585192755448603375215207502049201105316061033354073190191034727199234627204355143056407979106513369329637258886981020657455759271627200779418934839979817416427190766173394305987334299014873160103439511237201188200259586003448265663499323401699396095856155407222387306023898128298718618175312806757259623795516064311335367999982423725906633525434339068105092823565813248220918746064229576270398375127466569223878730633619690838802407269063566924598777288489109642324035016821817319227389012578161532957278552347834968991053546103567816954101445789897647080455840738522313626803932040646409371641325882361093026242095728227456785639650705051248943090386999506174025324210939184932835939149826030242330958779528793641252724146348878670240128393772200972970788757207991566836370997283374703288042155640294101387531485619029835901093310687399841613654676636859787179301080946765360484659318168285836462913052897956769883078820714082529722486388699823118894733705711213113899383587413834387969307222862695524065097986143825349697137368642533202937187281350824023476858416704265615826574753632413602069659548947035044769798524897205795911804784658010872066555144588408029103182579415258328389789714847039480438937162216210501534293413098817926701410952849031900837394752544079700877104867718469962638247229909675274784952886683353713913282365680861612948083233022744549048858032713333278205600633597044197746216098033104333296218123214297296431623878223074880131332069329541193672653652094497952823736320663613720791440942465774222011101884666320784293134607770458701231393105550889709973576950051875384405137076017122894208751840939238051782421775465152606075739617304975421125343773672276625271470521170499256017851014132387916046082754551562849497276328797015592727961812979640147805848655348503690414069361745872857509593525814282031091376427583848328718941437712123002488087166520452994616468081339815726111686385351435104260159270633320270084623097800163168405926788029459390903010345988179825272931953702286410731309434990046391874516260399656918994614137211799180532265070002727241349159108101952241331447009156474599134288662107844078729283837813498907000866120555700039479764312995108919835817856171258010356210314675130601206486778327787292783414991362976467409623997957372957241717408750635534263134794634202321712296069970757391623988303958746778795020233517150677185171999689366263880240391127721169688588068323823254551646489364080335263336623396150002886475889087062884324241792027876269874059426905789754882501967679451243831632560786446070414010893769942434877598096301485033687869093323046278683699572367994532367728345618684832407084730219371817451506869788121814103516650480730756452678549706383133214760075177768237369845145991434343357962018648277842072081315443662082908738175881385057892610378552480444400126589038582530030811292469944116006828207520503455699939529685536136409401723050791461464692602602288896652731044636159027024192447647836981996791592466392249650205162397452338689531362217056350387481924790906652142113410180799447357307878692330233278580137738749446051597135116617932630912964947948001188066669578028367569749005384592336214048911062267124808174934129038767895235738431684911029128607321211359010117037036509971492713032616972145934137361467880228293998039334343710589603532578566511802149447627422848918131541518686762626578301308739194757344974540199684626107880814776375039964101351353713308655086810730871615514657769113362719196223787097392529835010265325022090960967191479696594271817115622674441510323234741374473577772362853522342212539170384863336464078730327300690129994506808746495975879878099686797366619931978192583302533580112563168530030135879540484901442273685516598612316488943084144429481427553986978508835599357090631857228373630910422869667262095794801693751163113415809754202048886206213223834191411833163464531984229496768536661009038932198931886401907338062109277491861883618584994832889253113586802408005737590975366379601872129844989679830945623837590323058097864050169911892746250729846071883886674816550995571652979614010758465978703991819442584872220307279494431339256921756162185029909389035964442207178088633889674491186647986373808039921218289569074887710341542326167790918432217763718942768492170111285445337050398606987177183573006720362096561316613611563558412564895095415292161666559811768065902647839984836450244380719148863185859301434927924592694085753830162410540172461549044146605451085096334489444468033317222028867731651802714093115637566929315591578181629309345927058064898647478910189052552689004255539528093000932286565225800264979130069957049346302113672364812232398333845615732401831412819783631071355904985570493478106143355271769345397935445087543064401127822999449335251046657282908432568896945288539667094142799577409578016133682592693725529898049662808936771830899292332870166538768841703503068149875701931930410704578678828616950858057642386163072452992701047668002886584437265930171899272836640597223952401886312322234605782791316043039320512235892500245521721642616325018210737318822792828447289164604532826038460533617804578714992223783191877009782413134008939793666613489278331155814432402341251829159227503371981279185109809307401159209954135283595865091165543010936856574594071960490128120272000911250791710584875906684072495454139085910872851230679834144651508651584283805861454867337685665380192280474445803706986641652061346324177751484949184979652572774288512345255683104035681282328970373130903382386192091686551023205146040076531885826815665210983727474696563035056755398210929767049711115713020147142063205702636804674257666215029931814031539643177564791755121448783245276730861664354457170028502407178450181728631413487542697742629199333061625690061663682278305953051031934268209546182953595289630049612072842721100557098304003237947230946938364029161200574038653836820126876640033318002934273062707626355535299341579439394456574788787683773502640573667227678997918794418748002434453997738816675267052445889936999348435598800997662800806205517608684004669913586241651329562097557268583522480103932429704711493555852420351559360005673159824853497366511545649705477009489978497192417264441898975355825550898195458928945308722955052437215487722217353949314138880177801114879422316971885838395904963580254548513100761624379662053059216536854341043816607708726427013527129170133998610781860531048073984860375749256749485452971415913207256502270765268670285050109245998459678840520334524761796408090800923270046789586569040543301765621385597060414703618167618866113874754107283766690850001270130458010125601513350093686087955609197574846327753904361444053085299916800924418083061343791685916980082186435305183873262045275856714768716125245227719237383943974453771947598991508300379635248578519880207596272425147088557497321019097777034162925374413882317625822869628098798528902542272854341515965994094479840629439171857587902942563364126427508717259365409205987008242993890059500969649379521306172833198506179515900472104363728838884464825252344058036524040376157843099693195072514417070713851759045794453001889641629257896928798567575733954757680812435426611913208550579301004897240131265183627841234990692555453705381733334276965397662685942681245853237047081700306392529401665584278798622048879115720539846317372943734294850187773021279583118336510260077584935795252027915666540071665863241112017847883541436827199966373585288943215312833333746492225904532435647259339252580291152542110708700510998898230351946655668012163908230021697964128205891525440221968117571970483561183467180394452679740414107036857908894552693364394615326382492274577545085139739649936393939846636147002609195206376569506835599887559139773955112813594547628419781689789746902944508320650258830085361601771587604685593958274126438375901667692038514904689621280773553021159718405678592499917742048053921127100752491304188266097725564136257823770417515098864301212201897932703443693398399996582337580605421157872612052900200481312227404484983805356701820681769070782246785123883165794736163273845816600621063018105259081683245901986539301901002627949717918150861026453034947304563136063501568770929489214421142147669182209908032339619425253191179127593709417591093893066517385941670183567757621384257652017451348945151599965829382515303263063039090475285452141771013439073594105112997118883310768516145283631118645548539882932822506556698266615752089281524227834914692656099851873098529333921635647167595396175611326036550981173021042323467209096349142387118390038940554964879928705910085786321180780464628371510523290673298351758507225220902113832904746894624961962047022666471653538170511653405896700990076946717498215556813471828085576837104226416143274374926748598096276372655054432672328568612328209111738423040717230278896597434648897568946316551529498608091626405444722958884173329442584717242203198687230498915589456296019435470806913323498344899500122906465875431681885356611723735401618067081745857351458701364247323514887393144468683805024479405304569002365645330328854078205745371475339375744174712324534263385523230005534904569455777442193786640147365566620035671810307971908146398913455168143662656420018195681644446032755421297184607613853004606007418993944444290028541604781183703513254320527960589323006114110693048348255248231547712010291037483741517164897099364841513072345495227944141952072049420889579895852164110696447935794917986308037306130166812263094317875645265608074650551037027037679904610058142342513165629471064919773065755199109314329151224680273166964187100394572383776081337675018107744324973161823999729766526729637771183579043342228774680249228530545376128592439328260820204126683231352299281734067672300417841429253155578908577924792999368940141496570547079213309052700583757945227685775068978199234431570028466504734583091803207663214743912170018485409329282196872544742131694885504908841714794429322822543686366373652996263887946364806928387620052692560596661393249828609198814370702925388736747215541607555996257020895026087098167357414168545166088326371066504880524618693154945726200727451640314538232033816107406407317604368746532113163348050236255518624486980211789870088044234534275789346565839594060431347629095311331891472163392944140019349010845161533479319380855295851802340519892614184093539836857741265223680616967547470404031920659938465145397039693020835961479980039853474417563628096624823089906759567786466360408856609726497791796508328689054772695175093086151408925143191116003415668124997601907050246043858075850474216714610780938134607032441543459699153804289388526280636849409849386052618120692902075866559042265003294582266539622732180078909380856265165851665371011192082867047601469047052984107634496207928194726052802783174952536468192024594871030546957925703201890290348104110438817383831033925450491415337061831519684578363314674086160021987472671610696060470479352822755816533833703646186262371523625835825782779033319827397058955388068547985502107075868708876392225367559197872091043546542759453498706012918942437429054256021963639434287567864164325132062012558880663296701764542209298129956599538219521384181263766384285851653939536771303011635130271863964265323633673121038385912367026902598593662798998909525568871232944253354495542730509807951143819862653396145473362557119013442503022411352560165079126375122652973228339472385992869728995164366723581868341843198776014710019578728007023451358041385246782934212113283087198050554579069858480993477808458689928523592929295636889623364540467355005733174317003340933834772007142758452854804660991853562394040853366764695575304643027962135363983273586245793693871436640885725776163449000189723607153068996269123874571026676382637158122753607486014651815776729942888663505626160095878825404303315771908185504782104591147516198516094644249614973626953728849656164015540709652919133608078309783826918519909819864583408043341969669061804766554073665845444377791755401372297380228241441018700630074223870170639885614807304142201737682543918273856299600705029638138735700041625789009937148046962000257215664348478392612352669405814568036230216388433588635649773348836775333295070294571371712035560777666468331120665647185418487725514087245526123970963902183022829548682996058153523303060811304389464616298924886912937397620912551982568850217331697719248335917307512054649025024326188115487471943458735878345068448584292878293873240469349104777456372748463552561181675179524404961806873578168642933825898897028625294250276967512191759762266486750861071074077086043566956775916989810579702373829409528077303855656397351108298382259152836545958472699739648008705270203785555559515166216354274482700525842336226228292578341694680656804211125467434349138427473687939529377671141681510449958825816434669313762450901503718180855959435936073631220929701462400706911290152336017229835034359539609182485908866894121759044757110899118232749226115408274000235206595614325107007861123823412915130155683147153954715051052187422329132480348939284044920031493314592641940144758186142491539473579748543944780692242075405218661882349273108287031701519432377836870454964855976389688811143823229974496237622491414681747728230563300502480339442843213557154971508133600745732291129845678677733800373166876516430800125373894961492636109547780777652180924844432612794294760203967323757747273492896029620774168919055509734071055469292704708763479406360832209219164412599984551431247980905316864574030376900485326578917997009499546909140331673402840829944249069612788719629656155940142145632873087854428622769388065326988411610134605729400534105834204407274763471381827876550796382931293102440588056233051563344637525572475424087615308682914353800085888711027152745300829464486418586407636867614047806805634788789385666038223850710792804020049024241500135721634123960861929498500605164018935135997473886493713047531859235055736445478928814921948923666820203838027681814744646112315596401148721252335657347466781035529638213800067462119758383935574658680264160953489129744514013673021261807059856210677250009925804226171748420699421458699509379756954661914231254172849358905509558762842133964172115306794512173073912149513989401547254461289925099614457097201466838648787526755146644162415930954877765886342299857311069872159913195407750984636780302906062509151679939177078774901392324677908299242735788758053515852526079489428755432699336600998611561361504859488487034675092237867657632951723608074451051545635012216556151298688040840904757760122076210100362614214536867275326154508643203015093013971849570734271633616638286398288620806281825052853060473377469069920313671684140640564737668147119822802656373632979471791518861088016256404850651936625887614524227007648853514004742721057583532664867236062644604454631663857215425924880370717011028411153897438794450683588848859244437695480002983024662389942055676893979409110309435348856967045323149217134084782043940657967417517224989870541459654843102951200471757914947671286754767943242257433981516368219522533552976301804520267361330149692590426536801572575714231773948480530198653982134816427722475425138462565836700131594840952146830240630640377713395518869512052681498866511858179343398099696694217628204722691593213920054474015978986259247244231409828868119630087834561049307580423823915129000764557567511071730586003679658436074999700984767018006708597118375617688990765596798297453874261601138742113643108030557074341490330472817226066363230103645712515118715543834505070310541526078389187749361066677283508415182314109796625185798308465545378859011712939164524132743044034945557176559793876495942135484593404575680522393968774531634017847021617859483962322686471554760449755120187123379631759329831394553480301121575085721150633190628328189346793556305568023848080733777095007650773829669167736036190922610153229317805523269685586042883131012548820330701874268573707222423733367239533108791947939043701788207138690040419775973067631840770986074901955720459326845669759856712182087019567404245289574642050287291930656665253857039627487116891016061774620951386073986434095581928061187264319940156568608290459265824784996982755011213172517242221323986793094185020814487071526678133687872346552886279373017693105543723490030432882714745727314782629095272755249507296185254108282789171347364829710988069534078309109369245919414382021879488230076877476044425755184254042349832609256461490427474147782721224529730426645131940033646001448230555473181496891838571885075431416134709267042324292086189890770519285984130924275869676103019735503066880142188828760061895273815037745942129668969050461398190975163503542876619166088883574225141659316951212130336316234353127969950265136504355853782555456304078141425991548182305303285774038010882953702435207798146208129506056556587144277954287853335617680822969483291328029768273363397506049893196142401853362889644158096260299368624725693717958451686469749928009678870885401390636688421659855041596836564268870804390569883348435859392919786759856868003754221092191709247080898622054420114747864703266244925469073225971967837963056431968582846927767120382771337542024515147612767040784952434167025738567664139752781159408281626156800640566346438396352034796589150448982173706215979837121705525462157639251699948595864100984880166072447214859466950222639368924624583523187817258169281414232578332159623312934198388467807971284436461690500334917855189440148912900475276322364663779990890710072139527938090976359935034812167675006589427353456403795776403003788044669550097497335137518350025310335026450125451543694958534383084214174827123832445229948106003882193276469090527360293919056166803370250249184505681990793193508416418486049288001395106776466482928366253894411782590558485017627664540682001191311886116154268225563994225799329803972830106737074271195975853147986174235313531960026397921115058776271132143808382779607185318257154655240518329753071110886170293906098667755484712918145578944296916958125784841102189286119701187716585454209008980403711794083645504080456179137833786173463005492549723809611183804472401902012007431177737031675035712894409307460603356928464503690719497192753249298566843934974423330521157023465876161342350236140838109805702940520753756972873420832678443334363796661250255018183799354687687172369958140785590399228625172515485930400066470458040144619805373571085319414674855012885381709120494067798936840992970854023574110970258009336823854684366398609907791768367645610054256892702352464256375327573439065953538219384718055236318506715763189064629816689588517459734342538314084261340091822272592966569944134048725936380141433788664917508347180179502285891207987789708820497494074801773198590613596012422382857991149115170657506803573914990281524241787109810083957629050539566983741293266235440480496795674075194719245297629898360555505807754852803839981343871288450688930471444554476220993271014041425835749490978094276537241680533116924949344719083206168933224643704986199519086812229037189769354287006608179537959119854103248122921004260142005862677424283922034123123985704221130531533968842150164151146113661513212714517885666312182051710576605609981163190368042271208288711454041584010196987196714431752623421988056520700190908768483013169344447027969183160845887766003781796896559215343099172156464531482270149196116629393841393479072092783738709356396778618165066291496670936210074857965743355606257520139459039051353844565058849055178733775321797017369704744111326543388930118657140420456137080325024165533280889281836379024354317724639617298749227968809351139105202869707709824421652005244993509236862668500710634275033687976234011414683384284338530453601049111571186244750464037574556525168179407658232191275293777744895898053258967614868144555585171234701886962655828258061593671669907670744696638575617513715253259641785257738317278201469894779632399441476937112628865682673223863432352553964777368068784071164938923368269124824561482370096566340948231955645482165422628789548681840499864716656131176571768653074336337090369789640195290022012335696243756365810870043891156433068009849901235802304377503800948758038266421075947803593175967381451727617682457434125544838873609321526167683927578378726444606334499140681177010068756955895770414421614999226295235469886209188733697993194399045789322348281102093960928681851801676574566686842986396671250696019188938156704224220347785931749383221850958780714997586786182406586637589256964661769127190937218183610924642782275355563572524228878136238015228642965708361620356339296433890845453220191680668395878642048594862270675327812257875427903574956531017005764330536856186267112680850410835009691181738884249345165830224032135266003268738696487586671339742082759831027437755683005948062570195468013322919505571867160985230836447673899025613497143568944750085266060306713135359562379892225699902450215123298149841269300161411822114117454468889927743785929699049393014957453826647587307809211761028436214872755996161520930824509801270252725533536222039123752724216510727543470844905886328453692471302713358213113621091063311135509676586065276225843104153965382624889190189448623112830054571732520188475889018271621125482381562108756238368464594518259481836896294003671218720523670513534826185611883783142389146179571930687693429775731712381029016732893316364108821191293658604828760097611826779161671386543815678133801358808929848160902307136807126391602257557665453076940873339523782261381861731575119227053669134975824038038738090510058767508756454019384935146268010576288318321405480876319661510031226135552156141191287380231375913661515416318242338418554077289728017914778384878491834790689564518846259425465481984766303519607490302147534167387685087973985927162536161817981337908365813591339755307815219786382519932202865794529601141400220113496781814668200934746404244116420220360500307174295390962109589495119151637238295683113927293208457761663969813300567028005007892351064029446879575369992220244626203759820619453920550291994104469749593930070105724715750077982619273605851208173945302952367706142829904391532996493936317646477593773895472632475302222642889071316345905205615995667298288254950373252944124608847982392436576731141445750281977626250825752335678650283113530634318560804227083403844172692365534515015569565878504237264309980488123948451526093125158434008938875469535285683764179393252132213538401635247426362062325685016049524498130331555235172162832665210787441434887091380604589697836407750956011654318321734491848781556597451516714656898762192732166691673519359402669949349877609906460840968114919822244850076531616007737713470089171024030978995465236580806909491582233434198825168838988482110899899812018694096281999614774878879670296262229770601896820229573443401693670412364987640347080889608375287970266606477504370775535846043442908011824097978012338273623344500113755138434030315415241905701423791485911045541758578653033482165144108506610062668445330358133765792071242324336257393560753216463333858200405228540941731531516544868087598617839892591479157522687732693270849278519440470823204232538814632167668222587749301390626215504812812304899789583756382606914642508783534897847871914369214221780732363246481816547949267964659658348065616662791626639737141373275285646866188297047980271926421159301517804023087110294550620026882049522636727869156049649265776116814252201511688344438606065447282404593255090455800480859033176208525230844339253920993581169663227269084735525558611067351629738468930973549073733298439648308540124525702453677589758812365451065879613397968709338313125086270157188963903028359951182530995575978979368616808407604558594511776155263626606586841095909401697372090382890605726001799639715917137062042144656862804488296029144601877638482552994890530239585642461645565081273504004930953244852979813216722277897728358075374821612712389247206322353568852698635460578516296751717840852406928154017829983169200457007219893256715404134910637874625167769667967468479622183078521428752052614501895408179297708963011461194168802063880620586632233355150523038431764693462989739762431376478827604494673016518258894264869236494644895253224977597412842540116343233116833914008385746527829279768468833048955855507895743003121135695290240159104064340554168937645638273487323681986502332977356832677577897865859070134478066911665882185877043527333594537359789096687455772734460169872825860732399434502572568570949822563088035763458268256363599132066168315588357880023506479653584531563501733252068037553782527138487823685758737052048978161743032921894509924313038780684817469133455390713026824009876997429521556157475029379044367501001486423584278885786157226661599667631053888633177854755476519096435768038694182503918169151710331580352637561966933382367033880088835168276080886956584797933751512596350222975252339531985747108346817495636566234622386070679554214973915437744133828920920953257934324793336826853915568235664429382427477150014395188713951736708097174149949133292352131167833448139342359622780373285929703514607316079512949984284522522925093151256196073306935313926134672622382761659938838837031696909372751351070694228425523834380098505817796348071625900769898789986925519103614428977048472288911862015626775622500539854665497600559416129585947568621919065617187086158162957290013884210250670031130717780376255653053750095182733715541914862009166440376289031256599587601524504236504597081111504719721299512127945166593713304224325439639330329438596160143977040381410670979226617492765858668420264452557117616198725151803726452877663602132810391618632995853373627862833034407032266708163291132504907213888566462668004975534657396821527881627529642627178079913188300850151353430303324938591366048813320172790743554044343648783334076126362384448796063197814489551162852922305476500629345908554058529881277640266880424595238744601299303719531538525939893460985303737134720662314043214400365110105925495198263636757729968245183240067951817153468246873149391713714436053642088186778989145778970012637506412086565542112595404020613114353199490842122536571896953661707431923386458343559348473588515026496384766650238075698118484354310223513228224182581029766320485988189180430597511541542251130110410540566419520994946219775894806850492696434625374805636052837796855637281846050417312063697835918117302770313240085631845946545379276045579507228328972645243854326195020320756040974143933584146365533081655268910816096163152995011241796440466924668795178626285180811998149447429104749813043743678390396716126671649769487604403731975363453458726903035530304365494770099899981850217988047515512955288946694873210558304988822597247154207334183170544563116418812959354453526147971866125956690773018771987542898135983363907053075692960499602693651300237414598460335056145302207737407550731392642753202954678048082089963941110849611352494190599679498236636406995531179874861607312368570046532168752967575506394172442265381223588639039929008048906213190021239146754738370121614923623776483959001468160988409411662674773153123212915484370194302701627286977842121118573530907476801695627681332928170898133564526093889769086923067129136258236487728013803843119537999659283194766904023321167361531740411452013301899882174573823331453024420713485153675240200996178552775976411613733100545013842964481326483980851883043837271867707708313228590562917321794229526617447371683422233778451107486556036194803370014897744404738460097872446068929865333244973666682591940353434754809477369194774892821360426736974791923903506785410552892839476335756798791277890597800772102722870590718758673789416288954907326305005496484743022863675145590317767565179452928302265826864488566730184516328016698802868269054848797889837145914350087670982406232139557668691732905443969389896838173410562538567862018093937966858875819521483309408999916804177377908553247575279819054847483248299642061523487926395806317068853372281892903692036266749532992362972608152771262066220516061631637096112409059870502487889383736547192213523317957271974807045357573828930618300966752311732954689050589081977184258959001080617697078488954519321227614262167051810500058379253921206547739893705554147419052331911706703317855199379771865428907141612867077834671062121525390404720001012118027011410860470092825294417769206460041242996314531725137992617150863222396764855235618257320588441989052687502541691271438571956407840727789172796944624184085126149088355438524099763883232692232772418942821270875568086852281574030853790907181145422916103805812162307274408288185169047526368218617013468273160272315277109600987281182160819663035970222929402570947481942332226382755380179752319977634223689610360446652200428273664634235371700471954621806550405030056459862000941216879088660336767209497205306417512640384286107469722519969769188393748624272688258297271905689376128685124259837862128950641890245648229983705885816705146299005420835082868083282423105161058308931053773763326062976400772908986835799232698736272877394108518511990748295178494237988236392229814896583779438864931661630102628728032464358071377154095203255306459600672984906855167251444434293605792004597054071651060336340193985554305569823446799146849003950833559430715708477223523494719333860624713689365126590439216488767368688896793162119973695102801290023205917422041866591387999025676514809352768144570850641012505390335380703850269431456760829367762212646241315074140875757341498483731424643773234475945696282487400356028849158939784005918009896875713042584574880482337293131612788225791757068081199058106203158495272453023550256949319671942383331424942612150277634809295387670005816545843621994377353735944211832772043256646716758345600802207825924214048090122917353173023927019298814036505415460401460005226267065609259373185315588787898760694016119011359396776530326056028271862397060601121459042018238591119743722165019714201755788842247675171165071026616048707946270164630252193118243932396516123878146290814101907580375392764499589013453116871173008051892419800891910631206849985104986590163086440421051692461910654291325178093127725203528153511649600962471049958356975052118951673829118950926589021564625482123325612454022012073724391688751117333462714097861563412099809156026575764536652772899544188461590019685195713429592455579041010553127415625900574434585654741330165930312313940712626456648787003473013864345725272945712824402031484918187918927828512033528389423603079194567995921900956685289795010429653717746981249664830900929941561490142412695352969517224750808157775467347602315017056453686064472070426892861694682184434405506084212720546037599066108614700653530120331136085286952389673709557126583582993973911063507747006716242772711350347088518200839299336881559795670896143745852956576629687870595776708109671924425371242389335722190518971297197751377331851395989293626806208769013476602969859657423230364373982452935786871487891595027125739997571328160016786434679856732324576089547368358915182634607112299607667648037448264974734951782967650186124029594568790066650168992430531322263225752578998404301537440469998095754569382231619668103699902929762000683834006797044467466593391220001363273053007391475341419037167023210336674953333619085271714780889883079773410253383977168018685687212279649331168935560711837596041065380601298014028749008363997155295762673463419652889420760113246483805942408493801970511261903836526413195986688228738860113060614679324691212814032694456565465393801699640570470928601795999313556576609882344026429559656682274120075697361382769347281101575431239823748790892893209619540885283902715057657149006921300847399573393427250778510734594015396031611613878234085477835959588600972465797949291265116649438861714869785170270375743297615607805388679959965486221899447977340617838235972380119257043311604903105230126730099043694205213369477657666124109743832249718086026503931148072218887240898971329243672662491972626186140334613158350845299410637427009749088615345623707439212840634654103776955924228808344939121336907277368543695414667104366683995601017577823673295845860862212307832210687046967517639952065489262582532542621084682822497547863428280312687100736437728546056501774346032539934157082076528313631133330533084927114301328471753025401718883471850009854599275223283206109641586695974801162486792346280337561375087983144051631533977886267962268526145140058808329999023602650172041162597185548106408847521603878734452312074017089088190171677263094062819364294112337677273149095939725857172460902136964630395654079207250305060065984883445374803919027360786138775040534585953264573312812685910342713662890104156372267422932941249128309415238941200925680501449248967665918142327730493166151023731597709675842008798526709467527472963734356624512077329254260576351938714869703325640948589187690497545778269473488891637479250775646137315129723314445001517665495848328773291674426992454659817249606769495450924122851018597986575719303276815623219743913680345217895823330407112161490447552889225322270210849470217316944047197022005324510286562905055356466321690550669186116108846665260279577330308577513991027687239923797181012550602342388998531221699544402764120179681795768592098950948069779679393119178139838585042876186944733746890293777439192140342810015838866951206201674715621972211727320880885439221525819210980725156091811530034962342576596677629922994638057676381358576772590462857585604889318779975801170161022715395277895688217828841075169671495631547981429664792854055213519574115097215738487336608266223266936589480842658200351931923040997314668715430191198473370513909551698913549949351404707793301288843859907678844875667413039255496843758195370245524720653801797114231762436770688601365512661197376355646610994665751600581959139323380915894304543551177625971454606978304719373735038092575999574421582096064303236797596524147179401165134279392901529689792359600025917573370016980164654100582947665855667214763039425304316026017406183741295587786083389098727199465099083604654923322474117382097271171167969719314023261459902831750763376348032130147547260075208172305767033259933333825144942739719114474913705130084326923173640468867617321974944495987000690959944027028090544738795095345347612743147713967321868778241222622643158335475037578638754645249656381308947999763042968866998990719810129705829194878737678900358248123261464392739590117230094371374733925180146908542512832024860664327630995973112814799896743994552842790854233994919419987923418228866693088686990725306042139160832047998328052219418601644287042230872252999811117797913298377892072451215255985281569468329986014321575231882894595207357122517494930977381177093415907886825131712307994404320143677951192641159008147038247775701468748063937323810005282754953698494880783431357125690492888567756212316063863290693090203892347886027677221879879517921217151594160733548605758465064888472582917727011787712417918078796229449454160972890293045278101050216314129344209619757907502397566196616863813615204814773205301673842151809046821572273106376198937802364631890665964919021105993751768255329531689990685447442776833579351032039049468854472471770668497770909588179853926827109553166860165958883026172987987871199253100720559150479285997755852046569055672496175969172841534987089080025177547514174072150988226251625264157478576378376693189973107086722419949438638471080752589317280911113252958473986419699560315874734700115674705606099862589066120564151061773167226478387560408514687988959945341835973282549956499995600618766855537664143827529455511491255738227110531103244445131413236270818748708191204616674945265148979038752370220249694903043222223115001432800682393498834701488730992795630448929104706919838547482719704481222001803506308740126773041111744052927503800591928089618704037849733717780884650338276777804588236450382474744178816620717973419456893626892053339655433972708435865156988341475275817059412440506135113715771390105231794092998964556220558925579186987105343955382567878303441103432746437833137283764176227903343356781283402059152524734530283696882402197661745839400373825481426151384277121320486679673167869841102813844294238032261877529751864481315276336712165365090385595701692006173134835993407685292304296015177052359688715983060052236277713464739299423976549872984817866279357817679905910369279113162630347070320232303925873981451263765844786615996605998417871659488649421524558070685822185703891300526732691818129374877143347642943213528645921137940038221711554644889762132042589565235916826637291430408673827840081062288911202170952945246195214442893770454273228887497431016460745842453480389082719658335228692267520237367883952105601388982013594765465810332517820574645865345693896626075129540214128628392399911016687957358159816070387067417140377088290761818569747418447079009080100785129193076777112492071267392604300874167020269019165473377560591225928544290201461936709756047769701124579181924129587602984201302611176201274789109356117981530870538899776745362095849914666334990084511958794352305755699069552921153603601539542160677220603326791196656717589066411209140937674565024382439518911062870372694097097097107748189976773038889125864292282131432747078238918768558149744065808429448702705425404637451843907994094605621705788209118791461489111587946158959005718760867282044490366928139421997737345630967229490553827311172479092317004242878603273894906455278084366024517056025265025591285826578252655817695767430089127200190502003633537858856500723398013991923717192657703599793508034120200008585691132525060991278398997254097286063175506721595758236493343708879606828460546050253617656599555427811970723287379720936046144447756282915473488879981687390709182848426677385996795549893349604590768371119175626275286591095986406860558205565837276116898036931416465703721224557397417284046850902967479255189882516896050749846246752977608146616045437436702686192383252584930879302227328097135217503762387257197209022766516537473909065140596416994131426911862059015972623734105550600950566384653111998077622162224692942522640771963835699264437883259740362396151408050558713606830467723741966518674048409872361031687618564681237644473227716236901925414714548105750736111393626156404222400500619261310993603951041404324417294326642659937997408476724875510366750556827833103688480190780791716329223489618962235747203956821905035124258578525170916870883113886684859141239954119217254838857196267748345257926317959627674032309182696812494205824923419408983305956192514804304275032249333220031425102774533002988799910066679973043435516763218205761592373808929667641349438570315432387902524434450233777706110255858829845609496404984741148831881443360172163480611720237880948911075038791757010926308754859227480326032208441792642553869556028951248005243866922921823635232551933968012844246017943481860375711616267924148356536052698684605858928129120449009377794795967518486857992503459085892146396966323699617127697994869050710229839731283470181342444727913057682448891500538420274073614341057092759005289047590015876046106375330055649323408406585434660629076143369324272772622540998417216308531854372529879834716134498447022582821558430842162554612015738736226620527375702996857746923104382380126216939611516022941877768654406491006755888769671109274741778594897761538022957651120476007202595564213263343649829611098906608156125636074143141665119165261130645869214371728925782709659481818540536688295562393917218685410216251885741021675621824912953755672534834341514345886288495903277185564907799532755425510806681907731170602628203840438148474410875655500963512151617137845495238268635484967231508786865604034541621595969968754922754370292245576904339673666862812820892055876894099436497535280421099519295018267194741357482014094959446598384830426342178522377591319260519272973196453354435634009813317027301870261073888088389916637023722086049972220163527325138763226414795242211084019285744799187493430737297513889218924976965014047906975783401732714535895033123327708462919266764992668881747214392341904081306773484636128953023901693485797456647594824213028532276674007836699576990928987202471415672669738639138196100206001082760920082613700241289623189564397449068211731005508117731806339753634214396322137630794650106015290609779921650770774820375604854424243650516494868260477325393327347401051227789523715450878816526935866714206822662452827552296026308966068873057419743986267018197268386921339034039533466429073388158630934870015761067252296954054455262227694505907498779835369950145685001528850430374692066377503885059746735590578548521318254080254357935125175242807879948854660203501817371670835310493490560440987537259585598866796004263479416197012644104678729056560198253121787675088389539015875296270852158802476635632061853828477115255395974490426749337933572291469398280849573894362761262284439440571399892275952838630802185096156012229111672436978149367331053054834548346161881087646293437882664545755494814510651055395779249271564768884454179860155202797706559493444667980007994375463839168515029228229200010382823859563423220787757383487505266586083746860591059582855495970220809446613964112535745002896822496922260900578567610900085304479584945145320516394141440882425010141115761750246026061804047019881516972395299001513570412368000233439493385415199515966427472302901962096058541245902448920066452938214077834956347428277530019447954072441592053194591644451089200489875588958674763691307279164413340169625869794912184775303819924940747578524907724024537604227166775491298234082688077487968081234876435948811974888443189513895694302696833554465556175141127465140929496606357866428093819072967310799550363595328080829169266739606747206228073169568234867115205625057950106081763862412487691646096109093050557426594661090963893582880888056562953094656811924152891824911647855957593851063584243424756063777138879646381509330981828121168043120285937748195583202681466070629094085768926114839595488617396111555330378801697499925770487932428090674632983894519768833088639878481046537612308763766571029302614574289089056842537807691483431390705352951105092356868864196477796282766227887830564279158028038215541676201050615596227892717416223241747314251357538085752075718383384510888446128334963885017969807735381158707739393473760100378129083116536852765780903064675998718643480738052769205061627612045778816257822307199479826342715308403686991308830383433293255313003638849053641469913177678253780397293758026406502105130432185357612728152975487470121756820447248280677068752190516755598603649121611929721285197045877107141692165729179132235354235311065347435369418109056949844176501399391432574133064899027823692514813106604132188768151308958739364582415751070980777263467287043904387708699973623213394892448873956909212147958982951918019724328661239068978282263077330317750746120945814709638885654498062995227774343333676230320706934715078720683607002518374680056960502468835295084281161325160847078467125347855059802778534033326040219320100625012849835041525107728426532737113732040020407592643133066864706948377893560784216514495205869779522053420211840497403528339429042504174089303863156395402874270409797643969955343465890842794633126227083064462898588189062873819341965124889192018518619383438695099951413094326016382042617818686078387337300603580504385351750982691301807277350947942215414909552434059810861407949040682822862831455215076264981182809515134017868170298237761808545796825184560677945494056752682809573012214895084247676124292212968780577271928037091051051628509787207365243324996081689555611597958406933364909530897994427069602131674537811137807896693754155652084761053961894974770809229884092778548788829520052407914416726090155809930267771001874799176112192778261741150573083916673277744657437492247930688960948873638209196159377808866044043267809564705512669505629672372662976025557012479488756848268493444895982096957940659351983394897495815573348113497296634664228245031366014188822318994580041971838931706141311517059541809320389238640803495294474522981535971474464607305914239624243548589457306131368012923479225844746300629129603106299580330397774290496552014145766909827942329877979998456865748671167499645353846987610351819620493307604833652311433013336977531281685205696822891381928231861952154768093194046351798052760339508149288317191172129411436230738169721779217001835848807348651671904536485369221292011173832485620867256283073828158387034289318386960313660766396528025391719349254366167804731601414174227723712322763290843527413996972141005131187683387687070901077419333867151531170696728135727226645320679233449999305010390329629537011459725501348765071879355735221341821709353713199009122482029465333463494408326226723780361289245275854369094319270578106541133998223134068491576362459786759236482214988393388560668705086086236116264397045864358488875224832232803916940688631564054266231781550825245537414768111564542842032775809215393318490562134153704723647340087136438620925785895561624460321914248269393237163337982951408153614510486600451253147325583188073113770436492664954363439070782756538993505080281414498733648472127496219124237817891182258465415707576295028452515322825285995857804352724602363758749515743013035765793473405631879278629108940410461867871602958633980457927914582556897011655826169571224750432977448285531837004651907041042517900040420625059491522448853614980552394738987211225382604791667865494684146248940716056857086319377292372280459495206869193850497183294038383551669174267914219978483713801874887297364181242906054656870903735900445295959076720798316062850001513732365876520898764656503222958517625409533026050313041904171216231759458016151867436285185129381524069379928791229335190968935656152776561412662449655557406513816518840264587061902992461325433650424945619603886041476833478732164795943693507092637145137993844537309400056997363499892036656099608989730144687291156676470564905684938189492555065620178527225005214082121483828036715520047374812400672861668328833272705581871236122108402473064596498492097270486159626903072750632743331599940161071334046999651394928204731384336269808400794775288606034138086339174161172868102998931704633455038741706556500396677932154706632150978241119673653922190030423469592058546748498261350989495146676795398805085193364156164309391528719188530016051367075985383015806616928109246635496108569886643769383560691775098227245837376383704834359225391454999111362272954071571825084490541314049728712774560839738625785105739741401110376017013983929303441499657985975258691078365027220337647207724132645472781569844983166223953543415132727652437141997625879094890583650503012246960231505996943495246250134862555957217686457807617155014196539139798061291805702732901019891677073816270727867509690346897625919904922735609469977449835409039585607813303035232111817205124016951759832351473260565986198743893684582803710571387860445167469970175251891378190887251857258250495641030017544490913723220826025394665053671825113704264071487601189368600419787265551323194150636968726757929548225926061432079505549027315203570952793124678220347728992376988885974404875878647649220872359054955188646496384058452454029684074849350407120319759024189939909040614155079598924897020854925371935807433387333518287426508497169016399739883056912748273928586281385079716426051732654639177814201715342169343624060301334551959209883117077813801279317548942953478994236507578306891389911355529500234890664170477228423694071330640753729579371967875816491417260963283552538131740329401132234763567252175087300565383108303364830845505668730958560918897176743237059523010717748669160374124526767207189697909282423996438439387240145422890680868726977728816435885618614450202550966844394482444853242740337267054646495542027964899147131734759268151349323243193447150557592794360662679008423779032296039973624911694952515236717805061014771125937384215594845163726865841804123696271152408756311807469787929419110965733920654286297771683729481818564702039444116988218457512268395260676288098289279468494159379943035992779081977424815212257762501599267632497778568262972567681223320616999845539278925259720150863779302630833060399393715916932044429851633049598304880402883699067057391155926659783107697732230878543713362286490957426080385798910845781451200348325585326330295138111746963285680473937171369446801092157246105442222904950802855282465381843546583111579150807446374180338075214273161928538079682702307184156890236625202771051256556259402287506242923374365627955989257711047609543496282446501334239732259870289777825458474180661880101089374749842697105050067019453028017569809479825661357773591356328853700714410904318075613450658540613370040565028225138150771161836649540603289927090263220450922895314202043870053536448477281547316604848634387219876378980105807899563687972085489058762502973730872939047518949100310062985668058232166493709105048557598255033195929775424137828105322869020596122595926638539128031536860675919568318848005624902740383499880489801965666573365026853131385436758358258642368375672510449635839709010287251299705409813681246229250051635132518261697876257947525485370043811605685781888149840416518345818368914676221612123169842265750219085456807292513964244841332986195246520185239845566748335362959668171350753473224957022160269275743817954365128722577156399756037362420292978848027819349718188105072169658092845065947908817102613437560086714102269163960900502688155966782012217047952283341703437616556692056027600658077921151548315598659442349766173934220012058160181567706131773677550141987996663420119221625476901156423117605829041106195328947806154871758479322210296130020601535258844342592484377045423374740597824848524330656059318773141012546108820405149910939851844006090603835095928683039730727377441165030273873936977476863399382305757245052393121027284123560601084088536951288282826885223821915307739194613000954829823639546060192393771570349757642219614378593944151997006513838705699087515799001703852811204026983290618398970830889064573005353680283474841702350641515616301681086819113799747738736030610668066247330496634719817346744816194874903306069622040777315710647926171614516132394351188163256432313619634222295320817768305636597369450923802296827638989730981561781627722776803020950564236724095869508870053541067425374403062816678418211962063610694517365480737695741894337817869861229188536611621361121951119430635263438133243874482364632316062026839123819347939927798164831520753040730522149247360008040171238607800512852808653785761881281952896760863287987022590875816215382016605565372213686362085600357805054524186213850975785404847701576108042282575907788040687643928578848033790454110507461198714697702254418403592387376928171156168669716098401149788918975195360497192405158036547761585018549163011864440271650017741101761980625952223984663221920970665578141653712277108358496049015918861335691347107122431592098416954519084642635176944043082506528687122570300985197930257416794278994923811860895649222885393130057298112363327868848322478638844047731071440313020588526500151388205575918522932239581120748465291799589776711498979792371697689579653695721210493607234076326388595626034659203208723814046280013303550563324161285589609555368761094228249240191357929430878819306871433763159348596744360760515475805964058718452592901267590389343050106597247972689228783093281101880995276405694872889868453994181507555205274426746011846339048574279156600104034950481285169124863449388108097508495351771542822145505903368078403737223371496416082845746699689172952100505624092167361442430038103709001928802198000712255932166187692462250267550068083567731104829711057243260941978806601397630672171411032778233687076810467805925928955302456450029435721750487038545692909931867025415014145929659137203570523871728305788096169804183880593021961964911068139538423016195806053379466377840356635526506787030850169284974570857481422415420705350908202186799029105057687849619003183552994593780389485775363142751183642768595860251536075385948932486789873224590279418335528450374737542249255820740167753333407507641137518793375078533648923002410804243584735923917941937843370019812483795347302164900456497828342712710718653613296501000725134897576668256599672391197167109610983533995273518656229833573283413685188595459405205228952055282002240893122678325693645032731442616596985904463417971960414638447462481806862414888066243583003139828457126803655907584418197920825342655482558612388074651088315594869912446343443337717102675355303447250799727546905381225604480610053914906527812553135472654229603352676274623231687617296204053965971191089663881358342924671389790984294650048202021385862191590360410492329750251268507838287088276848994976468565542544510716538111358258855748460514801787079159761690063787819146349897485764415459362197287258680777996116671855572605406260833107326058047232686642110306161638501513096700879992713977921858541732177979024225152766421057515836155421797853147037785906089706355133012224901960886786619968873434327780435872836043135961781960649545223385971636240285500391057644691056677426852545895113053369045614815790311923003534773442889902414873129755582389572577267169980690853847731900129661456875190597083728389288586466309779271006596485381939232501707777491189922776773032670059639840367159926331407753707182322677529870064731097681496341518352249549942864872288373503119066393705680400099261657014256030594222211228759310744523721058531213887828971919527839941398496344489122962802767220656017262519110356982448731835716518114478809743848849856044015714110312261759753035299863256779683229121155181450428097302719852856057440589473066574547122178524040173274073151681907933817402732491482384390042805045696345275993853423289148156549848454854853492640812803493831252264252602286621158595333401239659019892597518645704814710169591027525322700487887687303520442839501274663100948784887209153245251876133394344151410636579312337091304581819487921222404257061110315879458998457429008807092514085210186710753492865776458675621481143542928943116514537612616495262746316942322531019552136639223869197642289730519567897421855379610025686603876706154886477396032600774078835926920932070396883401148459023411047416421116127123980867166515692738624166699596500967073326936123098475572290692067133413536838422311456533858102540295956963416421468638864556864958123503964440704995565866801442479068745292335687216515414866237491550413068858726567985487102766073939775859140709407667282518695488049274593256960219319091369000955760786995622227015116366803498165072130029877714627848440282763787225906993793267224028420891142361388970161979063122184859644655675373494543691243595228326478479297932620613008411628600352314054524790077638455737159763635960960023836505048543407881569014282917250142231808686764389040207095041696626026123705515451095299221831120448099248303870157815449411172869186636207855699011623995925344677585063120207340948159170667072196590245577734786721824072952612905124480107584873575519933488169297481746388972763205457867924680569122980635334037312703694801572124686194489013912083762201093569552736866459023661129915695819642135034486477690198981461986233496629693756547544079386312227423868908590300281747828554799079906646946094639427683306740494151617613710568050852852429070825454927551869409648189478170924816032982770303815960398107293786095312657028214319809069437388215613876330194570354828119930051250108905491701201199948165917971413110948902385957484446949441322163643277652967812131552003038052580415424641187843401431807971689813026604344215563424204163287317990671082010800660268910089090406444893155731135515125979109617293289047245136108562227561063635150158852636737797543301678385911968884483681971969120604099798952034334087595681166188344229484558908831867602412188839308127401498467231830580096573784905809614454100588194032243243111129480974569249167492081181364433740803849811060924651646811582575950468792449854208772784773236172860515090432281291879472988316490360134188315042668593070097909802008569418141340738530793176003748220132354961442669970904243085212511968955259350788973555813998618950600192417393233244939176016972157998274288422317265977487553942616974211560155374896927722634358008598710007607141330697706072280469980078590371489885255092207207474343444952593160465020694444687699797193918199022429715160467564571157995945589774372717621884829392032849401153948522930321650492093518910797565849023556503090234047926755315082666201467918349306997543264983651345805859654509357272986799681159101490764545839478685451035016032331430261403782268919180515048015751698193010470664333545141442734279931351994559638973965512127278841982761023331491730578029310118109103979599953286251244400684786131066355662726623250638560670987120198783585586109782775971077021886071924076037834120307711522665924848548626263840290251633317034282861073191654327494210283963870065798482346205564465827651157868223910330759563988352719234614198014000876535782630961213946497813702275657241017949546790494575340882902688358912182369050710939609404617156162875271607362106778608590513446413271053443647440993932972579000364627147723555700666088926104248358374335034006363377935754441855118074918421257413724691517766273706908882898820704353196669791097853856211007139729391575588733788943921786703748161385472166418938497829483525055197128918392928508747715623920625130661024103710600257340902203314695165499097530191716447776352014360187748195726628437464179205811923906646128627995878707373721626688805974056552800363285434971781167826194422123355306495502547494583568225431798773978359236125524384499809830175540268412293209016793497914915341303841896839661512470288795289460055157986468551969814124408949224913700364640369596820402875080470336449934882636759560080910933421764485037187679888377855592511757289538523313818401554926283740396181021909411315080808726644834449716427636179083114571000063304443806034604834393052905765766452648661139996340542796248323931596350570748342936870296847786679438492369389909403759995585678522981477270761927563717039926392569900040670177375171219811122304923804633019034893301322185829554493277667145181805222392833370124784364899294740931427067767903597003283026997577539441663562079838824838351671477826103067036629002291977381316838119885843792996161859487194799108032988968697095248471285387672006783617848497727053038994948477844293894708151607392366462671860693059177509522558499372111181862729023245176462229050921924502709175428555513737303099085985087899031229295982348118413105674232829446272447398519172586883442648629865595285470400670947427757615712735562987250310779258843398496121261802620144453710712340997806142013504911813822415669360323824239442678395390233605813359220641719149499299001344034873150816919848688190745978574697727066317041031660276614773096968147273763476705100650153731962803586458200429986293318988367215501545225621445959077847665251200958470714233377075010910463570301344321148804716165118307530997086566994698658655278919593737109569338373528862433899648104143050964447388008450238666287272636393887561903061793703901529527725361720364660308742128252936419377787133045292313575976325600539346359468829910784135206510865472410451062205782219271370189123052002350937048045658189984108318833639708013085866118190572188168972812472626400117106713036638084044996630603903885632754764016872398047648796098225554709565386730494784562342701824445957222629031607038731491443607794600908474354472974511808686214145812170762396381032035301704461725855075444679404610380194130267090471969385567578109907076917784082402257106407202573465641168759164938791188654860145495514785795187791528826141333344190276940691062271923895461986524439564589081234306982808498447589543582128090847051864332112360303539327265143665439865557943453831298157522929575240375475228218641986495848255620121812747242196424119563441966277687955548855016865602187254579596602286468292044369585430864386381095996088901454963864430933380453615009572303476296377268603257901551244936704062268245345973878795780748084456565286108964638081821548811405669661154897512427426666519280636469745699057798578015946054532341221722708449009593457989213714293500372224236407812729957263787677137979258654805027674763245088273023463620029815391463956992293363891797973926941132524605563368497091973812375145064846398198650765330653623358742118447910200610267372538401622218998461356505261791095890465895625179460527892907780532850177801171655169780284192895084892546761335331755330707313337315933767511878398606655517544583630502933127347119576766308360035511830681662807230933619684993804302362476537389293994484689014192681719555253529657921253587979748784056182758004633866307711718413393977238706751029462445514680384570691119528877548333617752535602985379957644367335370524403965194898311960362132058992510625104524757995670617511461560345172648375414561178207001061817214563264851570378753925374450550221608693383646370656253683545078572705127326286223400784360066161772381739024660149879276627210796375034731659761692224388496844290321775794365631976442801347381645077768161935692088589582705450504883554166542398668456076512559304815389861184042779964335901416271264725543202897867348218874934740590707973722134007663141230064665610953926761658110826518542883483073832201757144964571084649059948212878670302032936575851939660558900057967930967273718728094754089160141974923360172988703176335703170347902171723985373378783880084901784874112793639154344165526348552484267724861148568305315373659551134456712606987026378632957521723651707639221322203766406945914293246195333603080918787821885124151052608726138642274861493406761554302934264950564198773883960818341218683421578706579727008370596064954228481665274644201980943160577835010928143242241531417847468078909719180700951319303839187737936786560100176747848875466413537623183630810687662171646060025424270512049594506490830296024078004977978770920888411427753063199540960041926958042729912002088558486030331050036202958978734218618061402138388884689697844258283960537275835466208114583975636736271977097591896946999820981739205862121174020327746085732168522366260499961401661807929680179131035624110520790408856659943494168895735367201216312655232840592256772285420223612649542203929797067633482144118599770568069441477282374522454393173612972519649224322834981076944607275418900004662097299076649933400730893617631528635154856230576013765275837913552437454037814882193651503907851877302263798119445712639339393641950239801185806477948410396882094808212772897296851645484235783191462426125902548194251055488832576823553247438407022849912313392431295845648575994471680172973815157850331118386517184424122974391486185707471195026229684885684867437630555292058073560238178393237726191504844951913454350845160500155383443624124913247528945245216328152532708753987596746157667309779432428114418985628135317838334695127453636804847000713071002709163190126663142580468368344231956277841420028964495917397400551778420942386435212758212676065980568750422705751171889313833333504080865148562523157432481943610349345000173381720834181095976017501979512767716441934480903729343001760368430688926361445569120736288807435064002084119888180547817632018984039223292438497910178584269553456678294404157682438151538690878754048469446415910074903799023050709150306643086145079152751661852424472145072465995016670724081085691952488684917117461326551172925580577592821373152101506130208601655632721285347912327503793008918762804734582255244309866031438462041197363105810853034196841910733549317733228235848824019105017259735500610582395358996855788304644276559676670066002539624163458585467290750865522575777871092798229374171173938177203301529775227113393950642439236286025534204359439750249776484132263327871366770593420143004118726538208097399244566735844478705759881259080533395746710531330245334237303086567800023696021463052018017252834507143413434665750489562777914861443546192175369682059711102553961501566184660501681491814746232332325951393178445118385447776692843007978105764660724851008531768374561054249859435378225473605197580805249158149985319249816747773001283237592575228427189504133282678850566216074853903004061863731562104083521241657447054165295714356746862203128176558807738722152393444598624490735931414611780163404619046737080021647913666937442740193249742078610092846904495459208228958748674693845321652569872181342455458601574357548085769697085054822493761500460795445260697709617920820006383155920415569567402289249477016856682934952024435382194003769922684348769330352195195582829179187344165922883741997210991278055728202836393365167442006629738140933896560774773849129955070178522078812745004210362456912869304971771540137020136642370965120482112045066415259963370332065589150015686131586957370420347875673851193509233816424965433171238109623014024223110040335474462034870026204789565484904695531624664554628392717859302910672856711834388710310704547668363723597812173560048628148198473938204412525528227957675199598771246811921047151768712089908618978572075218021746507899767174445628552353869637273700519329860150624280734985655419128162536939296730967294937846809412714602351905791128178107949551498603603950338199164921079788674849850251208885490313156338078193255740618414961618301277008232292008424014228221045956313298492153424810012964145290864042388049572090660958856131685030713978126615213356136246392525563586498045149872419991816921111763543289146447828079941221499859806311841565026500108006096568793891059697141358799814935298287289341471993089787428632411205086953381939280276128367366204098689563135885236505216087481503913849425988147051111305197641789518663648254051222170470219594481062126619241535285308502147019842444401078089106978336576384493656163621633308074639283111445331328180686496203804708568705122592133972919710458482266887409710824564531277625683491300147662330169808939086755920935038732412310475220562526954393751631398242328545701162110844706267942351230969154799431525356961029020921617690756166307098202177651633063211943209001442301130413043484008414382513705536739760083192375563542877281924735340005448327813631782705981663202159603458843998037373394342960819441842696402779529870255705217093006473650318440456854676533504146781069597832205750316840805905854113197842004202161905545724908214837778600417784070597304803701473575730622527812086551766508339263460867519232342572563520265116987152391798981410371706382202066302165459236978216052870845626532505074727871050065333204427290609948781384031135870723878920274268644534765312758718673782767059214110726534777828958650327735586569185056121942337787343602659944320777007955955354201602728302091591755460394280332657203788391215924273915160056493572985389893846531304600797898043606576440489640362361639102051114872781846729421750594799724758197568439175078697311557722926195053575317214946975019569130563597131036782167933593089252030765480726547963656191201915464719103137802402988586367303409419320601879841902511331972998662939110195445027139114731813380180578735496050100981334324977605736201715454852943707101438712264887008878863665285486240731964943344676853067800392409929324699828537495708570828800640382487323339584528646247815405775100894300926942971588697033013744918600905489056863493808921240832245488624064257989867422233061959580295927832941436292203518974625640891015049120137221129109783926571819219254536579491357692470955952377335265543834372522669856809448983332501111757744310122292698380945173228330631038645231980097783891829437173591634327555656079410534784190302749802510481226526622041096728331155617323433757176690126961878360597661902349759823343902542578100309570495233129892177189676596984039031895750451090106013716225479200315974493612224825851386575310710563067318146433015374582084437310906644370882585404176881238910506523601248761742631929998872682832527045245276557567663252240404085313934542856279167878613998124296308252778678087847384781730485904479156054294395775362855325561642933533135088753606134479480092617570749734095247386937930975904705414043949729793557646861337115920225905648161421188016702441326039700512997028330108155822769317297272176097359339660619849504609243798697013895169348995525642531533283378618997209367905513850921830063936603041630923991828348511543592556056051937752544878295788754606077071835346156211198128513715799496006265058077143536415113005214638958008110072770146527557887526034027886615608929515319132738923579036567816229302264895372119273892960113012675977604604683434514333832115933485135886262792338401665821060016290038181278067184939210380457540110874171763838240896422214285403389474427946515539773148334007970306750798764137068845166849675615712515365243129618858774441474094457652723769832195691900637841031396256568937172255367623637068002904909416797915579834995270781578286597915492158091010721819418428292854948136855807728682348079516787984976691440682402201738481793079128171685814411842995230327410139213725272043755973671439905189065475650911140207152856754949172907221183558209889730385720716099574232647501455045881565324832194614512562830751288489071879275911857809221243887278310723432012219547920847492434098550576428005898647956914322326094128335313484233139888931423075655114106324414929824753213672692541140621896778055346439631738010752066632310216300867857200640185831786042528661310636818567525894462312805389503978221509475474837383363741688374887470678860534203125793344356844668392797172165278628691505164390512040281649958390890748339092521923862584487755302423180345462656035295433537559098556447116402772876222033997658982517707451665816186707390165789040471850493725104118182122680476087909571037620376807003462886137622891574639405121522538811075036340323015309606653194992835933437818477784777833933680930722819621090913139255333902000658321867148547611341934605663562636776380607256693946318163669130951843956359299700127673263780133180128617439969379359665300245100879025861401089815426410217771293946730764445292584461089857280280607764822421499173026459281185307798284632101745629230883356788306659069070391624322922595460942327715498627812539014919596663094831547062091442308265475781325000423460197546057263253732732440497704666067172409924787857054614651298751879486469958295323897810348097246648626523627809012971849292216739002164557226097637242015730627603161901664545417300166260425769571183754782805223274408044518024681203635770772264763543969557253048178389601169655901306252760580476034203305043030449845538790332585124884387461554848531395465864958236219406788916042816542540638614757660352764443808084495053852496258261740923290406198428859357435478066516335069271968904566123878607226830765220507950278989645207453753126009949943847184122632733339242080351243529083011618011357330794480794809095441688590082854755531600622290293899423439527088774007403650291649773211335186682714709511548542304931483989762760178603790574158986071453133404819687939888554686272123072546135086212597690410519734247398382692712113649473801467294734249958660738293826223283617413249134285088839867274473309974688422978409131834439706490098335636319573615945063379983451257465563873569543447117453289168437214584062830603005062188853093809169895404365449676195513551095417169015589551149859467484604376611515528770360424246462344469272620744523222732976456449037802084555769067268016327902058476211672294718630575505634498134097332477641634434239298498452797788992407064581597352107152051539100503896371408510608592850074408941703790686362507009545039560108178425122418094735159413934100003574169396909473011469516262089343053053868668308313994993541700700208173550525905256891385417063153090231010503066743273735227316501913807363431199156492965346710228929338772111645689461495260513693312412218712025399666866982154886737573580543803245800827509605573011523608044392449990202801471281385182051947960759077727178270257626539777484727564907192102208293269655567233245468205598926572592777597102949953307905406441139399212855517176634911981217462009463052931576443327220907681779507257090804267056376646818142977648480366822164895728784740028455508402078672710166566155109326168106701211224634151374092484256240994699349890068150568928730735622947200107703461474652446799483890388831332976288611992481237837646603389878705769817803423190791298353087752955429423533398119340066000796501115199006027568653404396656281691597355034349638511302067214700227159190647241464044399621601983758887641988689482068192282716475893046255028726962686890477569182537327583269905506449558526908811918086813611291706297165382256181897529910714422669894925047023610377321803004577109559574171207900884727251416825788276654521699019565257426852945898441793091693945303660394253929863152923910208016666947444637406525781856235587992594796037528438164138032902500874537690564739719989028758763076810806587460230080566606563492269055205435207949159502212885762368535425447327039665742353059271366058433090677592142745747836112206110249403733099226816746703449733590306858642187224833745411166644214588058446837746818584139821019364378684887443132317913037271240841111858420377913170750387384749409709153284096403405636555722645005403388146912145922595332930529261056781790569225102320622256596053062682837274209565564792141745210977954576362716437347142100790306350671143782784978563379118497103445671359520038859394924251742741923805274800303415778914286144022972175902593854904207722121793064637850243165861299576929107878989756038920377474748911529518591810646311601645224019472505831653231852009512233108451029453737955897027820029639921033388955276754857212143916162481719388858327648672141072700835226532445867499185044959137521602003873117568052363856636683846640256113286570655593486261389032141859820507141201257706814691776443989431136699131092132467300808249391093401293851091233840591461988963279640795781801283182173942765238744917166032217633716896613404225735730704424272285735824986262974597228741400000535764855130382415734894612342218508288845849674366754442729722675410727365019294701741020846600278280862112419702049188894133836209592493223439957458586037142554928575559582604196711548955294329301459974346639637489912474551440388236002769417209852844626054377731172904100121121238075168010123592112551843951120026691421143808373877353737518389236762511522761253161931800963401809128983352260681895434669553410676415360861729151652656780777618025891890384674274924943349820039953135038564646873443046027996203697304195343536204809372777749228765104745319379095620721034368627010812351504386363312953802844306183775761808540927307588755012978522476918331653018892455276031528255655324523085869841014767342039855366068783874185144385899421979031716273400144802423242548606424097448784730061925909421732257684224158255164449170028901543513612171105595085741781627305432527447708808900794092032068083346370802409626684773950281979333750862415588030385538033676444437830982642693503293619652763250160613719735256384741726161680530183604114726098202343855829673055582317071866920131375086794648843045792788405192910361985998033565585343496605522221657528784448671729156128202015318981975778251139358663974955530917298665234305839750692816205061802093971770556491693348096591691495848125653938104235111245309664780760834434331347037265929078331169397860136690216375430320598234087707556072659715483221915424894937094136868894725688897938551061970634760323725905376180969194857034007972211682201170256038550494197176807137215722302969172567539111761245266463254653617472878023218954784290957917143971742611298455415971630115881035766893451665920828612487993162235669779111316269112884405404303384581778012396078566245923817903307052061475993088206631572175497509485026915532580849329427190722775556209434299321213411635577003385032654423739784395054402531094349498712862327554482869264457467402384624707926546213816293304985666199633340518801095966041099103895937733518405181619130521675945196131442079283649707415387134122352661070471956088239336657112796703821550300816622758432040101386384916364732933117990190855873905888359508902408741236483129885956244065123647455761796326156532016133188656773431060862565061720214519441594161042233525592117485198558396322214337818568744940657084267172416993891395350526001669599385679610840665302653928698965504916936991811457074964220535499884850477715905648540899180784572937305587836132873390438881032498822863035636196814663451662108823001482300067114926736930384206035896418031668867804038869581016755857791885200548244632424883424913649830795538115925201262669170452945466897477841413133726123883515310378203608856864899972561791970317151585310493797310200864519044524873741925345900385947272743199930751861843826767159892679115888456587258120567399689545382432574564349466947712842136161973594837441411096863379633486265883524023473434496832831560161306550141800388468113146488141316506846578968600356331082971140626733287532494179541152775253601449085915634456287426479659547869816296073282676618834491415895248933144391410294846736324725202500734510095495679558977520989722304100243083956227963263247542207321326774575863727745171057392231161909809350978293355563645904609370680149946709446766749215123138229560070320413935839580779865928805542391682264610614124701168984203463788529822176548818727276385026609847356365177570519252756723574092782239876478222824704515624111540593548751941554616262936646546168724439627199858091888271678139323391623793475743578751969984766805436687885118867060024941088168977033121259322986746440980711335392472399071664874705198041591343296972926711738665791401022231853483820137908970377159053199386386943433889390278736789132521713341694747843128473975258890882818232127451044992420818561218981435417241968468876440843812558342814717583656455394658617498401820999924018593726770148174219949854778715130044358284973191891264753336191032491787741999397049294187971581322303093806988939962657768283664677058997455643969660195575718108212692794969269206779094215877416229497192775807058719739030978591424269380856766706635333975058874165308818601523569968434315934854738109358641726056158641213462271558538150209568009182641791493793909140481303370810656665509436814292752620103495726424682816271931418889401117828498699942705024649904918659494151010052655565907342325944111564457375404666739622840937445637270203236574810437838472961332314690442335430001193970037390238057190252516189481684857030058841370329265347389593761102523582824524599648674417636942515545901287929022430186438173233249549804419727258611243309021236406817066520918758079463338485406543171379069146986181376647305666955688776409305169580357235932768578873165346726489294189729809970645347177930060861159606749678144692108875889810308324400013483930023443927716916031887655226406950241142822623662748556702153024289260178622110989993330588869714220911646699201717174694918447475060960775232070815149176904689547572834046428669059946968927095878020248716820301512585997973022921700754194932576622328695321517222283011504882162150559809964370914539523324594696217441354374038702361565720090045987350023738985610726801032820335640361457990923173278587584291772134380467410469128660761060233954760039710197243576895371048947895818079595689671134364510476737417143054880230808674779409781781107844659589032365377872591104633556683686169747376332833311562133867383615648480278707936052848263777677997721605864683438835879790954654222020447582430833766767486025885430806026411450806339083079615277434760596812368253442098826558844541664579876466653407389671734610979041168604347123626120890048436726458806836854365148126057526351325076893313410672727477967087924351903263295621086825061117157629701278262189681433967393369804256975740622441743941532340323756334445856036406681576025794587206262571918975428851487334742469668105453509599973730338435809845620485856967476177359791088465410832024128773413916767361907663447028823856176081681473147876153587115233752409113054448333771398534761472753390246997693873302245049016994287482654626367605841240906049462094613688950229288758346262519296383238492307067529760363340898215168313901548858176730096566767359600175540640230582519950694214957610360962383073745627431325856528856688658297744066187437510692076119960211179242661861013386145740615163878264788902800076264489688362058515631660230355213831510711473963148899029131814528650917225622529971976484750410976899953616722872416553683380807089497214867546168057761735224080455794488872287445425029802118077812430714823954300127545772755825391505362916812645107947915191786695486561605520266890228167244196779863200957047337471161515683111906008125865234765202217683029695823382638476593578741759373124385661796581448093004422485944837452107932312501305523708077030546791279041952277233693941555965947028657184723528988237083101365559145609170294033873241637570243341269089604474649773568405894496556376720702760761580156064319195511414481460032211957761864207563933805749127601805703552033645627206078658611474957210530903829591878039101891237972966652378373697931829309186199794445602092445827376131190551206982838043180889206834560678045348902346859448778712450278017539245125864819675204590775878661305588685723521058819532896925041178757745250798461805715572485218371624048751809991800030716578290420272007057076665601897627781885158004546620815690703737505394163549999424535768580956436229916739588395356738003190123968545427211825098859959478414549917219318014267753307206204709555688054634636738641076710205992567672208732527791377525492722979190373747301332359953286077365144952791896980617074605216377694215812472726986871616177042663172538502154287532561244676818214750928946111744038512931771606336370853698498537805732237253707526846343874682104301068144530066262321621000530410566250413108093659546766088036979595296280598816536630140197425959768566313306707875141276271960209530280976397995063751244241412645455979938768756253152694371294437820193816913133461623590587764283564638730120371108955668677771805882188284997048587136522057505553510439109366658317676981458268662027097753310709060788352235790530972107442631159916195698414413147706480254730334484454917968234172596345618980370546990367962159552234879812540015695537413344743440147480925009825144941041679199795849618621313305308218511126464123512037628064388751065756092470002569012046833910046705395199173751838682614996519429236569462136007076794684781399563310011879203534415646629439998533184698583596947759645660824349060946298416042699057519281264885781538913062499755321096081157324996235974397522905858605315770866238524648908225238139587810118945584911438110216771153554995104849544333296463814020068217224191148292210735681988058382559150943623198332282704920507167290301918145011737478724398419788264335528647051168882416270706495229073038166990727510052410288545131179054728090944131609042891399868140400483496468635805395377279359502671034638113098052042376496291110488749929661198239223833156130715428762311265742710623919581005376497607478834238328341626279869690314057034731688719043315128405942209115359374892534044441900697668421184521679297524226920750934183863579004169483096448798850674648375682677031262055106575046722810304222058625014769915727525991683749602073820167560518146403476412422575176561330300319533745470552486221015812536171616762478925654948923431521878523335593170886705621610889344281290181432265259767902113481689440907335716523596722942084424331969031240554903077650965779836414276584833811535990459314061650251527310199603532624741286888133309283002094987100939134917822454644985471967167457035939980175097556531941257227367041754891363651201237050731091111122868216808202905924773186773813771878768597382889101239109519338869985581712289909176196667509662506927075529745167206887364522505022145286153673388319340484084330105875571350813141580524966895546471252827641097247854567738445072744322133526767663731012276788778038240215654524477692107123721097135779725282132831727828036290467338737349137664811243141094262399238994948625332671328350177239258093705947451210461812821796442064996643167194103499818987271667520687665344824038345778596282797142981317650943622146395535925385598602312224936454307617094239664530525735913875767655796677422363311610605915451390303749068090492116460777316762428269283438682812397124011422384197650995056409491868593275229752727693886974638927161788813600157766777930482765729283445446442819589173200269563405362206824561320196241784057851094411747605361502273042919542958964360255903480802032016119340877761569847470007288096604700899759316413201056103622757945424387397450753338411639462993156879574436982638368285945855472566619725906266181728388653480830828993380492922982890605663814425711970177556970449472051961346386900218303367797730790268372949531413073528666911315814177226722539854138666916519396785487637482392411613146364674477024168614834938168147922409585024206668245157346386787882199869998329401396839527270599245472796100993027837135913507234727591907955322874370784566076745426379886995218773296791939651761029409426163837523312306877357681422364064169409119205109636080464815753687689747351245540353638464343645266702159638843108615683574266981482096090222241166037800560710752586229389142750034007318362384682896924720814984688474045271159035698329562457277886272758895118843316545790992674629750680038217861089024948086909569318119435695357452253065114118158536148503287266349205807536147715274231986384528603895733087833491720023678807946009360993155242888820974396102295888730493299076021774667429840972421733958932261844133967513719074777603129222828395415878286213869883317134129664018080639953339855765744321349101302860887806483662808962052899441233492222931893023684325161823079839124940708302757892363741561653866506268271800878447229975730970448432303539901510467185097318294775302985676440549579580157323584430602833883198181369901600895598859674386792121972839717704318522419353232460604746062315511124147398963134021647244044418626374819197761099963100863411358667229512831605028570036506151100522349444682600677985799385840647141509093682761764518106833288938970629136680610149659711244747554476171404222206218746257782819134660774140682395896286957788989469357613571296049504615381512959220319478870386221861787729571310271198092057631551011989544051054733740097387142952100586544909158386288042673367183143526465930931952022577965256406357695916310920168789349102781704727754998669478088392969507723787261138264461804718160456607539246313510348257750442913141370625074644085515584368138691277772704285044238281892232364108386543530151610570111691576248606618648694365556053465881334822954347030248028193668166298240373962797047566166643798233403444494945364410953175212570930314025982888652838166698536418728881949331738797002199817683203185640102344498818308624157733014492266427660948386866228791688678012847550234238473905654543976000953816180226069779268683668661639344535815990271069843858792088464022226279254768868007454815995554675705001410705846058442791660117122147561334610726752379021011747156004473960223093503832654903367855416950525426918215116970523370738466086424245136957418886611673552992273442704402781930548442526278810280979439175245344089807797581137535087095730368050223047387934951194971575189475108019294572986685825982151419410083736011341311012148226755509924749769969421320300454492206699596062733419935244523882640299522431412846426057134662407195608834532732314525768170102656419082329297273845546160935133986435858368444037094594730798984353930885149829844681680119933275546392211473263820127971768951015849622908434042185652402281955085379087361728900231211568983558544593290687103674415899324736311769949664917321077867914118371390702897939783722741567447438462811138589296098669827569659598923974896329930662776559972040292856938699642205185318755578522128751232915026635103617816157783740941268230681322867103633876458438436381368201378016690199237526181273984458202193176208273412676855147146421954079313844357527377677094269965039721690012003941247033838138443969570735746521277221994786572300034601624408226528292597209382218559189494542324364645100414790367418250602932742832537858578724120607772196347076968874476269564094641046420813096647394019145608083226662362342872950862155800925042811324828373814917891900658687375990393957084721381737418854988153665975202202476124379434404432232307777093411872306943979379142639413280148260267036640932760776968769675841467548422637763801247878410424024810725649051280111619778985544462832248104797312059190746657517633696525478749458846458372369720010340500410875138386323802121744871655400762187282619664985155454779343282239994627307613208937926247175817494563341020845136620489512470400780289490429804579815856097835058062117214102458027959083016515030835175583900840482954513592032247749463725944144679315536352154069679650641399863875536748261565779682921103458053160861547980583910756393916360923363688434792118043036370773687647818454061553997363074998820191296586030763029516787772997088307571024586864883210042148690521973630308182932079209442637054389738218722708951563975032593370544833383741895144606266278903424752624606826947317109480984298484967462789716280738531554562817687897118379044636240699718912329898595000885216206166343510159520102282276348869110661357338922516795566390764560509981177660689736253825584662661829512676149226828189372113595807981338633948668056457953481126411512465144723412464521831506982114903912775262886939431712541098765397370793124194100876472565093589544560112826342717145359245279582640441451265540763105341828260911880320450169631751114883608049418724121422564648959883455565868475905239638181126174348872740752052878028071522656822109684062957026591486948994327898581101035602754334590721270508297726797811237932789380133377808280940063864317614737198596867228653005652796654652852928003736739777542578961779728326226985994738073969055283771681558349227737293997557346961606686204207467037683826193741564351203244590317082161495008969254842652117841238004580270609043441738816410065522635498936561407400920055105248909328109960030937512201202184397851540590574677498468474438337539392088949313697438588906466599732731870597151082553209622346526988561305184697966247426494598941110769472404616305668722586994587055268419787691813887054211511493290184096870367217277887695871808778816060664521868625855341705704806497321806691428865556657865082269615896334656105626380974866396167606378794774458768080125652561825225507624608596061224322932870984104850828474942667582293338710166971485932688678525285790075026367027467235609158935984758367580627270583876978904690122749919822625604723739820504953555131757193119505332142944250891101014797107999239537066954695359056786672917398232526185480663369465242288775208531040233006034993794385846964537283708126055275942026365768102870276909413274944735340745554780510827356579835235104965105361045421472031599443228245379449977017983601090302223342826263969582077352161944467247016081754928029565836765713425540078553301804099867684415356778211457820628663603743680727348993185947610568744317874759388916963321538419009760604564153539057576768262091249467229324422148769778321438499221209186463632641495260692827815196602278493103004292474980497035171181152791835467433257927560526622766939764471389041077935301326854831540264680516438980346015223340806587616581257870189683000590198779272946875910634042509510941575476882613302472111780459319429376701933447124013624663944780641719314513218706473329714964077623365962302611840448111116302359131682398284673713663292952273209867881418360528975116045645337467376639964045328880547141280919274085515750011515225918142809706902898357661997427782874985779464550836864550002610626280226199983016602859038792772776477895801419173837369839217800474289973170148633911325339928627140822118402867786781675182478766658449226162368316965131311537784892213441652428598704857504930687590419636406902703694766473123736246048176382639146562703965969152287619506891605451986736249943584335495164032019528726467020085059872808876803485429243163843028695450442228103348908087874743905468329880470099318379929737965074726510732681967003600855001964540110655359223121700671258580805956797275004386757854708833284856066576049166168752315002569438631332949667006410138965572109148976003627827635792701455789290578169417817041138036804293813723916523191729317286936470631726602175390198459278787178646676998164878487085508039028395184870270609305449344461121528359560583313715512131631012635968720373088103269261008472555320324026896586760215148637626165724162503832986747913308368735986351660304958367788166540208231138903326863958908252769657374846399522279580770017057551890423595405774782486873174640279152219841233561788295366986079997198854636734292146894278090614049077747983867884706108782651354625230455677014239291368176090388784471516747535829726841191472203796397376090633357128349637826433654682646541653810293425300467438977834718502892077347467210985673295765997720562779302814705877691525128924017198923876065460086768940102510599129026148801247300651169125409201099413845228797436782056257646067652317639458524690227137269271654406529816490020790603080496164480175748874541458717226824244412543384088219280627932483112587577282105829357020461450446433487741643229259243913619602821773580638808875111532437079604216986406446731740516396092019437208380930205371408963211402410731029822470271242589810556836290061283011520331203275512089197674677619674112524247710391667387550326242763458538132756193463307404022037982275218424045212896442503486776031599921759370643948111517769715598448861397666053444302121777991630439257897097281423977379890889489630599687573894518142455282889858829814248956716258340029903656716565790602960586840922602293367701131022104938542714888236376310720518769710600516778796966039743011680721120512766913213995205508479450069779731762846038413403191402599659687132501573026033780635018467851617950576215193650479369839783295875641014517775114002671821012830303946812198405803614131331910492910446459737509528466155052992911180066925716563726208773981180581788436750075685737300192213852923343398063023465187946753329339852969844749298801541622439023395397300681500061339383486364432484815704243608309570295180227436259249069303112845069937684960550164735905931876333671863599092323351765592956378228369237220754118504882648035095990601208294612394307158556544518835995124763334582372741684051006453415669543101003525004948976281880358837833220385418014957308183484042524834192884085272316848938796478571297537914703496378957915854333457041868499110140950463753537150724521042731552515436793245803700553418302496902237579284159705523909055763704086235388347756525562181099574619670000747214035688441804024269183919961517834062042763560266754145959058307697153477184137693852049671909406512501589634047580174546635671576524644623404938692966912661860479744186300651449866505047801643468456953985663656127349562204751178326031283349055532381205780803399543400895686988344876869816421066920544806982031190679797110861772267855048824991247378792388219574124876278772160903708437661221381151763933195174063652990419926785209899512132734072271747348499919442864213472089461988902095583718747207462462488663890041092728575387122147758162557276918962285735926170298718915511119819122620832604126821707161318882453444741864261837737937730383528398440699025311565867750274792114988644007273216887245591048510896216621166746242190932342878704277842843890979151659274007888401151768340355882580897521547498980912485307945196513565913318106289629118039309924141970579805117700434314612114074038618741113365966383206401320223119906568569865595952013782311611782458028998092926984045235342272789441884710242546489354991185235068417258560779314397718481573774550006256339140383554764059890873305942074205198722299611080062762878913310521243944905321811909968245723140626451127262429592194624345940050935759841589847264083567050923596523828061142811545926392773213209622761904765803424327085822328105899119403820817803350701542431076895816002287410300629773708913150071069827980842785204195563868432592151067337702107288645829593183490740212503935272054599015275548442554270648613518963085250351152345885423283037136339360439955051464657922113805363177309125102682861519239943239130673884759497162369964518079810606084625802450910323647590337419345992347375004998797082956234272577086563581242216630912148689369858541793813955112855591016854274347117253152222957263723315621137170861647423374369835978847588900641666765955330529994863978622393802167938881747966140236006448232526718758175494008334208815811151635646424358065223671507677230944908119898357109954033034607129776782795598300266936169034982648951314889632010837002686442908898450138111549493439556339926419597241766767471840784494029983835605453091111164372593208906548643955628406536512235222782453776640552970887692163995042536002590908352414328978094160081329055572163570216880536600719509345571977879801054272714917900889978770532213040709363325650433491331638441310762739058112659147730792945265455357908678877794948939489875196927226703282103642947751590778549771284942295310774946120535585331241427490374657117393850066229137015627173293108577967377948741906824642383992929019504513291309763609760525921050105038161091912168640501045551999717535758863926922681555766700114535844859622669512696251691653168291013011951604686010383248481219077138983247411175797827681329707542800329507506006678209252297921480007041540560480212693704859887119050663249468010838767170036448718430701919002761845202162383470180790856565016019266186150997481302612741821798883542567269179099492130878735988804965964404207199116917167338498116105844233226275207748680313603098830729305809124667096878484032377329422911829423500597455569881255865327263477232409469507774827702851247399489872083665096942092150447380929925915705154878072345816100474791756464696918657294770539107659644863599151357642641259551106380530710888103295895006048495516084255066277346218152892305558178362278650982107102156330364155684867178633018472413555915128775522408992455925997645607043506621479045731142054014758898150876528419101011509641584097390042306177034341912344705545280026688426102833213873331889120073137526159112894046221420537173028342989024563484409826847632940947892615967091264171533427557939137858257148913909781910389707992655072428672405416497977460360923892010999813909707623543173397777021288005512300019588239886619891425072639471379962427493675791268089353365565620614334093304260742276306919314607690952526044892809878908099428295618288406039387372571156565343534271460757289862337151028125483915986227602632139417394526680664951145789094998506514732745467323954851151923689964037114996463685053289138951030046605750692558893659711148207865667850025685380410688757146305912699075049908685098113812297582898463814457138359721880939813751420867309359740778699345786731078983079394689406348501925641961496032299486574573602113520606593413017682696073311034735984764799360131733139636423540012429646105232250206263764913153026093696885890639664067481416355182687924204438256860313027690432361532586798425262784510703978688718412929236466357108884300054516008037950642864853422819449798571603821183014607246763459855874814653426604279575774893701569100352443940516247252924860593714662164339328054166570446680158493043299377444909253878743497709070421213167397699981671350350383542277861282128656612505203638218614395569881938570271827125368779601087598731211817369796758935034454710411573199455787693925851710078985508069791925592726071085736634625363341332264106210911559408567891899708148637817421598575979345599641009959670521018235484240097870593321984106294069741033473048184031360696746874236694841891246337618274990622846918007315585340255569211432030370969071809369769069169928474939417789735448926062836373360382452451335438145688246754909261033961213417682317392236175744346653768897329209423296820275854185739204165099111327877956742554010005087259193267489060119573143301743589593867294029519340029233276894518159451484438617692639412100641533272115185084030678261857414740264779390408100279074694495370732368686341264934808275100859834197602241100568821806351339408269265710534848089552243293139732625593321572846550882208754549434782988126872943589365757357047009551587604271325535053593066326632245550671895869019788703751011747170237187364951094280881618422701780909421770440854996657799722757319453388659813404752020280259941869836645652517154837340905264159093524351059935706887306536404833897476608204483575781326976310220222056258483957056504068757639348328371332195381720169679425482949515846242003125100045904653738551564318168351254060174285171167252217019027811923302091616705970240046065014529346997105778284346741440749158704755562374257045415313506606731301259443850542023667878019342971027402619594244311296350147935013311502752511616104981366825718138391641892469936408089375853091245108807481454202217573170356880763148097378887306186189277529270026121025937011680581262452852859961887511671052313529943427058362282081762962958043909280671552031560557447302615116783818338530320422118811050174798647250873486244787877715195746946273054135598432059782401492219216852941066156304121613332440955660205215608236348971911829661307099412814140435572480311321252267111437748433770502665713754698089010768160136823988900513981451441140196126078370805867609222593969632488781462816117629054088879774314421016911241795115024765710462088145928344255819589150774890758898215481063213875991856971897914357928856995703766079894046959933627849413936696448582350289605202571795215851121788980609864801452433787735955624974338562868466127601168067121774893120386816047895767299148076877455025783132515867140271261627169238611397658172804608684068285746524053815493667044775267933346686549929535936713737323172828883555017124118624383412285007587595786143195140860574063874488183670303169241170192185156073273278494271749660165228397760244717265985090367892973338772947440867779732401265546159396981047236996433000060680263977159811403446099996031670051108852895044976100943053783002225766141196839805927712233243493441159207358984105576999446263228425899682844572379288352139027079364550021967050367672812644932040005004076415281229582936992749582213118758524872487512918488004765620517135272756326364555259555428445017137057105268817246216820992427229299012839851418992891654253891659816974013895686889245296401347293287248554671384380792795561674557745479871437066612543126545449395793209497638313458237203733322517928292150783719659727336585161805746653323324847853879525023440284638816484476629229461250565992071591861221090259479471084816315716032007799317761573094094955175588401499326490852309095790123673285604999418489148711075286492452665068610496426911359964652188537970615943742755292759304143572609320608281126916958335255764966610457994913861819399751172175862383249325116414267545647473423752957355708417753209620013359442858732028910123466356255225263950192020782833119404603205484795508259903090699454230353077979695467355169864323467441246070896306387053787996217533928041200145517415884506771268624699911499520274482590791490607922386375687218043745027871256325400038287076435129322205031118560572484253528354283125186124778571663128548333186369593501228803449408518938492192419755240559556661454480184039950121482395436814553383316513508099135021233960063435266030720250541753244866398262668393434162497054588666749992701884575851140729860160225625976467001859193850583625262498722304415909359661643893745119559058990713326369060684444023516360850899165245586265749650785237754188412442911886229603815771333252043773003007980284562531818019313763065992756797219609398371064366905750167198593739467124258560814530099685603927863542408073207604058804979984385356098555282475717887339148974499542815457484980862719674001961335488221664332310739824499667435112183322830535217432232816260592148737253129746235037649450447946427432316940536257962232654317883825258142300103554781386758721762614070995171814263861082068701134340362329626146925774608197166397441414343708710283113609234468821777363492811278994940260231476517555059338848553934152053357248835343670883011629941628802933492205935444078361438529265554020044715999180657722468261025103980652047794575878838979660168087245830713832803910360381266008228213332213495367557050727567271225658309887913416990032902360283720577033965097813978172238342078610079650577058405394314846963377472339989021158472772574503548934225807432925325943372486544560219466469779379303526671610283670700883045026498600737155595004523496185771693602948357551485242939104382078165859041594142293813375331403916544504616657819267342109148923669502753445946329978907695265256298961853857642632478120052850422115544135914401012966405446796631771244828211089004628212017380814659571580923919337925151745918550895036248103189397611821799635338548080283238155538451737687661674935351615667323866072555882559830165278070619205642568319265400899626522527628275752084179695307640595368099926251273557806510660561699544463652734155708850479191907626075212175476783540911678454662541798849400060085869595365015887801514705858637277541226868886685100708862078424897603925640613288123475293154024608722787220036021676030033578683813360496720148972689268203919454982623116293019917667992102517458498646158905063245352895504144057615085046148374173332279862908625905906863326606751348738121694778235937838951971252696370475858399732863935096203070596454225643391480337666117292922056724945619204618110954012713564307206425536805686329771281686278453989692863676856712190851267962124462676611601507845987547444047000724641882616246061749632881361745314958529528046895738372018556191602312488147272196664128367539753509834480256441882511406356672205151214014612403198207957971995405530762104075290523676207984635089979398864124605767331174862252034775556713384873025726795610339946811583833217383458035139691800945563072479472366185888437492542920318400784620365690524906926911002907019187655548782386150302106560379763489114840962707566258323814550712481187094384065166533185064180578101787970157084066143062683876934310232282060784207906266083010846755167464956574701019030346606471699334810535286654802086042483597634963422727057669547399376039351059102697149096535370467405735749453326880821267018518315907210873136828094312178232783659236908514602608856494277643852473669585406012695487186146052420501459421062331153611229391286897640270962697305947370555271688937553239337708769766143046235253604447391425616758345723380175099528787011412099721851280236799724343744367469689861733961746096461028712633428815401365693674407428224387498470464020762914177637907938888065246856991561502571427869635022226873308202921043754394374710131365113076627482173399971138402997454742073468424752046612351988671930149701849420795916132463810770857948258556950900102164920342944320734709470578982123235264708106429782001540602753296481503873239408282353729889684519528097752718269783668207339706050635995061816152863476126144712314101238996577685694943303380517667204483992528543447319953605877297223565139857134832353949415769958364470073173661433436615468575080394078857461526691812332549296724681129347646644805197054721355673777299161826315588053996788192905971103870471844857708521734624340348289560550931439856887731693947007908739685172234047327651663283025204570427283059440548434985426001290580596413526442440067035661836028938069905012988893760806651005210956660304956138348718343466659133441186581086784608931683573745625225183661113033469991923167475980363780971481755955589466622530113783605310177667665845950566808225365731652387285363135671912322386577191097917665414510794934639723461897417643895214026154138758601972314884980663650516958799664687907787173577823307905734201246617907556707075593681551757284905861925570741311382820513828185013614132398704320189886448690921053435056868075253837793149502545617301300839310327387423119765265988038356292299615391376907297159666350794529608641178703877085147591713541370224129431841965884042044441141778388800280790860389825757652542173982744786218697618018834155986785353901968448372562999772820742382966370013676480757960891213899327513773918307856824973633542758155238185112113524851454278358702833162172871294405855476364000242178349707887961334569579064760386672130224849459365093618368955697916073302932922317090283681282417456613492303368103239066034672887273800007436692615699634090023325690944737720005880295593771895093969445426361362703758709930425265518335176819679645554662279034462265325610157756708502635822206892299304340293541909269745048328047437626329292836161000116371585546460385951003128044203437986658981421581365464142993542514842979753579610770455611289630868835179146439776529476610902021375364376537839624308747044226531582368154542513009266459396479993969808035649801189284554831164631310153704600644778711394231745589251497420828464102605457868004775900047392861136095952338985415888439896348592288360231353924825382583546034910531790804049536775005299514538730208488772681876817765094583235270178965578370695263939455717764738979393438221794427598960677877499470592065733231339669610827537112732642881785317487481197795703045133504134402564809479998337693714568537572983021696904434839966590476627934055302061750124912817649444122057994136140245952451959765957325854920368870262432331469739649938804130920999049322570849301899768275086871951246102083013093011056674351921591158598709302279665951359589301625871402899586240501466439105920356625339943821197139311509093094760725447310764577059995222915056724596170279101687770672892585209670224752598868136274879761474252426311369831299111216981943163869244334651842785846875489072629944802099586557454377974606326836772889432319370110951754861423896518704763080703160273812592431289117333526353087820415250913651021141584242983841710073164345406523188050059632983191760376115693780588958173066337927577239369582114584936860076897817910802252501457249345871855560672912355773162146793894308829473857233783425261670073837506478399469509114073475471741393963874218268182108506734817871377505434494522263828399191650900831888936644193485304863485940548493782303602057240926464449673961447405785087306627420498502386881419124194410838888027656890436131232226066153910173215978109667261584998579632036580719985252244696508891628412668956780088506540675808560690977936361070643048913653176411859153244413379589448395910682574150352463983150599046711325251996998294998435289500698547679877853603980780141908770722665000139976296846578360737150836934373086116733549952535765075897114494395717460290976221432996062662456751810883740070466724716245409981069361352251918421273423904185083605960056476348580873019646971753305370714707358141028107934535840171236793529731854536483546540721302586125189867357587794384783679277268173728323706001450515285254056399955277101521367385779968806218171261629109941736823425192690423033897506510703108240663679326387410412520355452226957163004294350744351533273496126829052874178510768179534552740777316413317806418070642634209107999070421601590391260158373668334402498428713627258582237871469206384213333898844219404816706366670865458959191497944608683101282224946574064312955972687430401318295097413019133117767630056377978770591581985957100323329958396477224399230572644204213913988739469459464136036940146951392886304821518221680869561664002704429286404422260282690432830190616319327992383505071910867071075530527575332698190819349597553091853213771337495974127686880531634545080143916386773666920068869538612515589412531146270467913387583165582481207489011321553517080867194159182799146595657078328550739541069068916773612021908835456806115782513264062749975820765297865631025726190696925574649984594673447225607246217341129619001737904468200071199713160422422668412423213174813755078411340270457405420772581641461271582996331045188781176718757102337200772859773633018395070386322556824859777056132214577369650224041608074395945852132981101321611317455925135650261667559865432896650300578499049129355168379637500357179106497101955805366822566118093633654365381116963436739985248232934687646226571988309583986200424151611497340249729090980071594592844769291777199087724653420047812911182054785769188294452328226122152760901900662787663544934424401990124420358077718306541511837457069076868829116628190185218081278014152139988166631546526737133285907522505408236082144452394775545260190813903668381614631796418343138146889472367710350970290737006224139577110593219754988676748673442913294675776715249166371542215120708043240889883727388403452468209757173032097535421757185895348351008089614578983899603933871780535876748395371217800059583778186995613401984149169901262742314599023037689658253226948150926354852038587213314721397595115528412359108732677264918835114698798947532787741050045162675727078186645823709830750762052145947766599692066513453718522487521020283937666594370991265139581954381507053324792364778596547003371311130270316443922374910450471648595424221581178955692845142158473067692073612971972479661212696791870479783121373628352666143996808331506643515653495752279039018856625230327810011462056698062178676535337345537145514251283918783083269348578977723583735264573015973104070158239656767804112883049628298772245303484530126385610258040530700859579601760596426727429083409733403849618666017227066777012914764847681611270211098299325298413581656003291441149754902649748885223995468833991490996262302708284523881392094917484888970026696588030773958802671887185694909285980167952587258859243328711775697291775877834313107045424846978965948119485923324646723678700633643740628621447752703382521496597531008583123998283416466563848496386676472611295543924211838169306010411864742437588942709631572724374931178911237826125146278513294645905012542985246402848644959556912213137911856131014131397351170947418873881614752277063025310850967110770064181513556425967964448315397791557708377354501213320932969173954609179717346475899266286801812716977829679357157069513592718235509977490752264310358925505317120744063424744907084762565431039706976889872016640431860382353159194933335160016144798036180594856884402781270182334304250768021802012712820988746599708810842156591873438716456081537917916556235598479082108534983332995597013283444376999939235157138696920865982744165450674510362519279817494699567718380909864692417771555469239026582817523048352970826713274736623984239722382816949303412447929227604447509719499367631444607431599314705346855166731548642156383779176523278680784834292431262663991853541398276287909624183099289440496742767848663014449852714395400554832045538964285945511415386422292566363613203684478097472591588017134556900255955423095708481582505048404366532131051667439850813205554883320632762551604692295701139498417588943095291924273951113623072851274121377472637647889596871048189434778654699051461787250751522997890345643298081738411405550413145438191873201352313591780673501730347141971963308566348559309409417734615194351785929961617623755466335797683734392594842034730816317955883064382968289615929212815847437808432631469172431345659920062255857491296721835102454299047753674316882412951125935686883017746837275606673396865886655930389024359484634214403527374606211121364818320750298950160916031934293884238286029613352318372252649651500778644326109167369117526612141922224113972219396376529598367765072326195009274132087931476766809019550292564784885491034471823847827237994363453080755286301938930287169206599337232722377267345798901177131056449841552542085837200502847950913752344059121832364451808669726521692474815453801268550698399810735496427459829773579972897784342446246946092412436957481181085696174236588681249512229245159535538803050094036431645784447060129180138896892415896494807004625198183969085438304686240936480020216888198853100126040146009144352948670438045445224823125511097097700767146292840978780961632250842597072807522256614028259312685055211594865153864406167890033854105637280855022022861219939536271832949690999614085994902542915394675558268558973557345745719475539975776952643199204164423479328271478292496290042565350665390795227186023302143692778193664842847336133163434109917782112142018203200096584395782598169120928317454963205309502039332561847266029522749837102215965482654973990247319404108217194914861699653218580209529772761001267956379769377469832156755130656209495180138424467702606831264974279862577448303746671555706180095868779999764195935397783475889731376279463221057658548822349383406259349821673327147858786067114056193842157546646615024313255037846898338513309170720236965160539117223218850449981022625683784343147056559441123073758694752471130611344279062016020649244509993841484927600846055390363295657064244087644798831495244544882342274875527393996890728676000558314648669516426412627324917546994486387727719884248804132636529925480098164356471570015070645440294957159491023970568331867339517922294423885897642750551188504189529940151955433455652379983138937926747849548385726014689996621367840236680204298997926001659636174155079656746377673473607905297358825683517275196468241399549102984758655654560046569465550464963673010096116977889894076706451145117346246501306249491307177643191589041135494910940587489225278773123549009626282634496733078313637777977673441730450867717002764597175742077114226108860184747206925960344048679903290501172358116482340181720553416867113272701965385676716000776956898636640254483610311561287881161374754839661271134913411082567546524454978491095973028620741420342572789729889329508153139547317034152944713057440097746053857971530032038784270641578452765338695732344184086754491380681186483551335180293940180295830539894214332047274948040675827259186662645294285870656346043672433247673711844257574980242887531179959986084395554454264233247902479747759153238713198837452708831674598574917515880953689527430952107175257627364317035002063088372908700594865632846535239143837206493668880781616938102692484641411861932097403323789963503172625842284105720023017075774635808935808107893776539485854481195343602052379992562019877286151367782711815535898627496701270149726720700909473177116832418688866010500872142004234704865350704268243907045737691302243405358316957143218691098797482606505933478138442032946560526308198986010084129529124240198066376776440644787043107895488300066579525837784959972000105546577318087454165735162016964253965255868653028312251302914910009544951429367380080279885099883525237877312879115340786580554271918145511243480744398343901931724916355152940209398561771129833509637811563262147735238231734542145788386309420153189242270066795375411726982322125698272375314518015364795954273491967866632441976183799105355314503464806222841961378731355218762268458758527884069225887587177753333126998392064256522742022510342362980255754627536172113886961148919433485540653061235608390794817452670543400489762158267976208532924716814631349509491328196096712409024813943838205611993249579552507077227955520830652506218701934220524001366890221171364595917923081096133161143289873950792063749631261018423379838559421587891969415965477628780285823816558285984104837022591757368041095699197125920366491733783728617322945769409582807660244347129779926429049553802360198168868462171884283831258852273162867333259336148705102248887588115147154889089133418810600266691961720752722410081597380906157899252438836431634774682223166778406335646475828901625450153914689911681357020478967026852416353163881379429068545456562904496525618414354333578412027749066207239423164331040094786946588255124495074744876635024066337033857930328358700994747574081800835770278845841360150075549123464795864851205708679046220397541686992564574230710335055944512126085224894257655534164302237656912371194310863063037603738795686430353541589329915481975489886623413477121795291446994562889289071977293748935842926923707553900471793511752060405965564168580418300045443392556103268834391649052204480387754378830575201829519637998887315540384410466568078190649033668442290184495060510293095857498857776612641965782378966935549287620499683045644406233807624595409172956196448479692413953152109758416401201158126986497502301457534668769268212477425463396594010837841210995524527717389691941183443820522024114044644824489065445083425537639364506807791781827216969309689238165484890267073095928235373996991752911215766642650846485793581286339813396979476404986004869244734743035035913156971372154708486352682565788665366157599285851079123602500782136892236164563071835685781296238417531669177144179986101167551029133496768053541221040578366379015905884702693500884603313480854124464558263563880665538352651132470057375134054201371459744452327157932012599156142538678330237321620183568103082250046986513806403010426475357093496626736622796661966159135902868032815586017497696641480388270632244780306263704116943469972968869701101483871030947014100019355670327667972648939038182441919172465406878348900470926056035500154197914397051669221301905807250539119155979037578115357248102406765774338370159701920986522492188879160255532235144125867074630783386264858580551567617747368772506340389556902394057732647770949968891811840348672532098895008928523367008568464663210546294527568902336707255676183602974790478443567514864233714780193008968936726768179944122992657938442272912805213707927440775852788863176843692535723809708479968477210680611630272645434543064703577968178222643705644217521578415397379998143066919013671434683014497602909217656301752611549317796277939451957433234345201941421203058932909966468135589128067999250296295920685196909687054411470422879252314688923234054252312591679969646261495003260856902942269230376817669410409599308362507708606933094501866601738962085287663857819826198352956627676963147681538713403991955408486679637205518976218535710981656769213768811778611676269168078311247105902640849769678122661213121976625154677592742319146895252949798764662197241219647088394641380357022459252613639276413673350176797066223765157323724958342943232382785336403268995151568069553387796139509399312291282528927276211286193314920039924310330840865368752004627270295931445547833241033090110163396017633135715333634242893985397477842561091951287781179644810364847668845933393634316555559785906874264752953782067729646604212176167127822184621806923894825009905972195132958664213982781962404539458560940917402139142907363517270183311190585243707020278778401661520686061356706036949888331150521416961635813780539259822354667817858617276193412503599074103872877701590309795729558439119557171715277699777774585063006624751919724100742436337333666115501601448454219087886073229745506052880815711819862782759750744777385125890531326608661846018271118134237942181878201006344574545357643348148327433300024857803691945791395716340192515336494088163284109228915936507338103113748522501445567410272200222486374807075599244757368474182422109836245279095043488258635620783273530951548840077220539624987196090687951513438638678769666762972752111201676608008474277472486962518020818114402343635797518257773976077232965021271030311273836173172663434543254692586484417996885806620164680894369480266505724913343555258014243317639112153052813897250093632968767030632393157554970524677527964164986398702113487038508329748631541838555939123088437427382503933241654498169746320206678779768724093312221976042486490092896335122136540434511966937899495623453934914763310805429763325771339418175428055376181725588844155762058474041695461363447943426727018213637456625278571626490355436794925984009360129337455711741467789882743304787552313831720014216312495055674745847769848317221912736879446633243242274300141891082570468005666107431209392250419522045961807060967695673613130150781851409167857397847939882626181142446843348218600976846182754799726553352251571992824077670310655748847985773287716227769603131709118929561463827526966891784335206692438052563280004455925295650200895923352484682366888409357483841439567151300926480839003999933337153789079403535659600606514891008678859159295954316950456273903613116920065544950463389137643967738540211524121233622340462613528187669068896495706043385634721153387587137704498899880754673670257603667632450800394007056881539859967288618698739093524772771142885368570838709975888663560261979913052814571514019680775563450986109522536989939598907972355218291317325248868370779030621070283413044689016723514145827673823637805803914696232862100059596245740853152669359163599002831598331163716193860680782493721160102471626378588630175677319650990220745981662296191906088125914277923367613104804604528312274039455106178042697759878674027397751240548476582566943867569505020485143630862747485553093157955982135756727507952665768274735812943348733403350360333164755130554583062706170852804581880767109183245379003024234421533969180905243606205618199435028196689507112035014320392328490120655468639612798334564967929671224854032898502311716147728163754591704808371168283185493275483291156144828476555042497806049400180665261467025858295444243386610168249941509937993042665686740711259823457087289340497593621430447028535774523852983329602654578286553913784719982409119617582487695982681074567118549470688522151297168320077692037408060989503857286753069084376171427393045904124310285315930507475389507095513762059422900476815813100057605518141957982336924366347321618248692551607454860799927217648215726396084135064435149999340770125218652981573439845081912787084358428473503189915116448116370179479492976872525997188431246368061950651817415501669245035934279014283226370137465777630979360690009994864687538323106613651449634527160855644691869702606683020578759872469573070898257162343312557941683702498401609891523750044536502811919937564225043900856651675153196586109129783755448697432862901780223549436878397131632798743689266802818456108423531594630682456077709785762499744358340798925177920087548204065803369536744976057296861197511764367928596967615808284483843778096688197065811733987804987542601836143846664207790577661058983768954430663187053717224408196597111537710802848724385614615764571311882975785080429718027081299280599870013105305371191615780105870417302190058494055944450117663068983294620800888528708655174437764535057756803829264590348692539216740481095496293973196465217860880171214213117699851874270691595182696142218645161020206554769188017187292347108363443383508259359478753694853598263141826266906106937205981966904784522557863019525978855707057594189785385114810131418337153596716527875542501003144239685609562940610467811499296847787673428890142171888668620689835738151214134812768959887863263744660903216637362980274792070056940370672964565292824893596613431377378635191255858385552200981726234580124752176559456434388156292908614768641286753379117483568844481526121256852870636860900941351248872671430694878595157818854319880352377139833497471276126971912473161541992875394888055538386212665481429012237675532820323625801463210563631129322387589527155704130598487397242468869532900669371376776968304127448837690606055550471087881265435678084522761973256052714054665977710229196123744382111945894937458840536783351708051418875421419918786700604238766498673487097197015212898431887129068285585698294938375123143468836055614657919668923493230323478499387634058658375542426507182346396067867195232672429180105923323581930688958614168494512473140690486695376931150067252903851586498017909245445934204309145185364855034751432059634273404668890845094064279205321421200252671016788750821189411876927564196560938885966612113504555729260795212801063037140210634987439978703643142814851199023971842545968736455028867058816715020082022766409259067338240671406380026328482842123339931012705510057777062613959143316022350624013187239946425972047774054461231271632691378739521914245986887194536041898517091333066017997765614821508786125258669871587986009744642283447341218442123356307418475236773938398217040230633184398145870058871685447157459271759691002132071369600012119711316911710257003109597348417509546138469213104178469667763500202628147774134880812195980097179108947437213987089643460285746677389112441498515991940282728548089494605613570424749714117569923712581247397176865721457320479181018569603250313925066722930085136679931106829604170628683804396499766968519453089993678382034847605379364591035928853224911656797534668657039270250912985340716998743086308833713588043406254936212576417083534753074953459485877825075906299864588842768446990433900848099257064116653522261011870903505677084183973040548938894645350567174578435372457700856903814275447833841001773692835605619035883140494438559232453560523817280462128090746981015618231424034194528765617967814870955491827048694620999999924674966772843413852557664704566032100673619232310278304288023581359377206052712989797031497094243334985307740137727726055331511447095958173677311959574716874634870781749218159932508380017935728760760688636820961156708292919140723681255252661490539530876455723201229169126244939310417674367686612927326328020417834610597804352419005260531408581825454431314084950672706265379118465292046940741545961448219013333960291232763061635278515341353977246890916491867174660520148255186195884266082512865630727593638109583513086915067660214372915935666999635281031784206055172658256698252049062914485688723468877859791011888848118826852039403859518325854827484276450452195202522231968634584831198870252087572311564514301996249038243043497893256088487924537520737658302080233583561525489702355961192950790671517112811120851714908637609996226172041379337542668885581306013302149895703780720600112883690914915796676648655594294298878650238839186999744457310986956090645029203557937895567830022812335833833016601067088356396449070608365705884395546636417679675800312850497493907833409688700628149793679519946591266105649747323928356985285720788283192349023577920551156880432582537615199982558794972746142571606739731495992801639181424161320324480632126792063952962166318053047681841207959673939655256762375275275111381673642616837123072476149557774369162374875432468353295077961258248756824215008486630187509013460005453063321277957205510176738915773477114051888977087164818609726222665792623675214842725683784065253849153846380406775065262725691432328855540179640033243063323400610479029146629133445609559336655276718616548371414962782929563828637048948715798399857212546676866150173883254788180336991932199119967025093538666007270622949325745496048244774257208672269775581105151831498188147764849422187176910393854356018323139331558237190899799100933577102170764894632757245691933590245903879896891689041232973580365488338369034178203077252946662134135531779310746025319811380012336985586263878156646675427837110886168132794631790203705032598731248940770135674448626094123250361609046064429939614561531777930118266787374293667759805599804468674307969142208599663420160413913025934880856823367069350554361247667686509932710747791454468616968749482331894490404462752842587516356535446062209927470822243222736756226775644882404711545565580820731964349463456728054898622047401682221060259843262092061503558664798452292483671297673263524792573353085221913663607800669646020911769592745952178161520292565944708923997214925899161805182206190009093063032335958597351931824483005813459884505537751473714006650535743754507474644264136608934894162956078677302930328728239778025792198090428687355453398381975726708203201365190208850359679369558301687498829718767451344113019262518934806413492468267300800332191882036956573434379264798506661257045937848070104874866959265185779348805827844160405455630332857117117039499465793459266179534867598793246401030338244696437978082336510319820367656137554022935038624204648931906905265572000667295475810662490948470750997928764093994581043199650347729715825883664951938881487771288550964297570342572813095554157920162326392034582937238313714021060955258754320384482337238196212328713610886402391815017938057269092323641442609213289669936253793391822725544845831548126640681550631510562419994891729064937364823880800684219891715269727794315915997177319719541918809003555032606288518124624241387696865538241070038616829484359359430317121207194835344151938401495943581685406769241874016896801254858375310120971307860029698816976825314253690763957034088269171730368196282696176434634146305371724154870647396759352733520139412802814892165286141377528664322888942018331856350322137416088643642074531510969006356227718108840749629671853262476787886527684952862716556470861622254301181648016406746036111914875219930185520837791739864550941195740147864405034381986902456564817102998166933304277170157839534386173655609294697073087942547777096846219947468801893524505378436519775334779709769306930986342676166000481958459216173389475610583183439698148803163776426780561566963205460549180654953306562116611380489357498414660118568982125990571225073163771203073088793324754210996325351749925886668148577126635558540223098272933994851814005417730525566643857005287236225313412792907384008983192707464873088726168581531086257099365300745287624189638866204544502567688371930536989245061031056957287373508151997594271029483698258918929406407711606715220237071610802904472903067721593987239893606232234738509780785427814668488910641315998583966526743562471761295872411683964377110565866977181696345545717300706269030447126339500544131600352564985580914849309226595773814247243646302870765636042196133514988245440192640315297331973261323140989931197879232158828561858960208090129850879059310142263335691440562388675105406697566909461111792584583402812094554718212742612502806550064583450739551160584250092011913292641594166834867414356824721935540163281373950018055590416097487277606444934259773968391337491194136315974508039287790165664063468395163739327871014369312000847487799841844490825267603965906223322969639070524587640603046412797491123886137934213636558660513379877316191290833389001085681648362468207587581670824983766525510297324555935816825099976403302713562846285550239774914022212971392753264423537149022418117344550913537962272534001721080686808647308587034250939511604799880352563976663951081140774095372006649892817883451863334810632021170615269395619775680192543393255286886946784032966574549413517583666953579465760063013256029099446888938808025582883782187617563095533405929784903344748055781904823957512006452049513288807919893063574042774964190451916504296351888701518820562797651249998478894046821795836270885363458020077190534108331539002349863599541667522583009807681454542678614400393943280236294735507656836482721262264433260254841878370499198919687570313311189584213036335425646173406700486302806584604087856383290889145669173491404252265233136354628215026017683694012917688975182455083763051628670008434691254193492071776087311519475668407106375900716210572267305160323328450624469508265517805938096588171168089655640389204871910586436910350838643320648047111760314493298316631764345215611799874768506165125111796772830098970438264388419107142175069955262149908976011675731878623667516965914345464929818835072197251914701920420102394400238371203437017293683460016365500853244522032010498883720288191695335355301989035941908692989884086915927784039068258680378606996239567083660234170978941418427184771119764048597825461438395061446439929528035102990816689036679444844794665906309423116012155303294484036622266226560099615368944463141041067476122035961598588799159457342997346682660096991229443335115338268641463679373192861632332529809502644820287243448587875280629262931154774147829926937135023189412267919400278647066532411666366483682806121432199085641801404033513643568032938665585774516726827453316196250517474056623620032657988289085230861692444043315382594608728766344079137342407549131783683437775756366047208428611215043674295880901522237316408181245514592329382665394225811496481792364197438323616367439291999400442455714351465781613549706164627522801098378957864104521716049003882830888577407567226747830324168378362544210854643189821304461781865034952512025602764753782411195074732427784227522140260488451655820118193846750732639638719168387162143542430329061154575519216490826789234580868308967954935171594556452358329740893639384275317245056073816951901665866395068080606744650864733819608445532456048105270876784889902634172776047373657933837626093909488181778506304211815983999596428141730680329111761615296656656155844305433442779823791872586504534267685358995837626179097273911798497815572457716414820310050103559394463024745950452058345129112001022279873412753036503178647092505897259120931361233415111521533903676535513254768390623261711092829178474762854822839352730105573697952672623160629150666488428484764875189895550196870964679319758035632387240394981585317990481689697279262073779821588655686357278520181578622140466375805507496211290279732102936395716087610121778061193895178357817220449252711414704105362431108194082891074627094412676214947777151707959022755697602057611789064379117885447864296914343431496389012401411546199338310457181535335522079866930382937537249122687108575498480587863374996804156999272169006167431674131402323988914782919638932639503584686026025799325252558419525630163891372842609479958102619662268988007149261809942465541415591644004602861861885129223328340186232203486676468354272171154879363305088176640592603055063011537814544910316880962129452605475636052479631207033141659796277294631340767217810358680951907652007360442174675747831048857166202588585778871127475162187653229764104103713604688234194824252375483168852861822090816603911386274264118370339576455110018418974725278048231154740205723326957386038081869536439134516307965267517363872693485776499377138667157428146616624585418182523144286800557396906703557529161964939236639306206154563251704164297812690047182755965517310582664231812467229820558350762290091044649427942395280496146085113474093830630563407256335819841779157592493206964627443465736673612062754458709017808806835973560368543491387831098445658471155444715498390812977242362487606136638989389864447652488467700277022149942918382788171609775543934368994072779451335886455026468934343989675399949199598661828745551236695118986279112852733899489475897393810995632907990463285467326449229113123091239479490530101569508107440939930928217753402269190128523833077695881569242904251239661411882775319281742506117834973245597367787227069253536653783676970252608216508840439441060609794537976138197266687046701484455872629413041052481524438856262783658686547952415171444380786060440164721771596321400005332150048897620398912032701365874184929659774693737793846058567306754764177518816858629461051397570032634072638594631386713827492897989872752742758945403255209746189858942438705649861374795093151281443780771753864157465014035731896448450954213234748025672057120157443846068561150551103419268693781672366279029364145520702828190145708023721561513961421363758929495589226888471073436011932701889956336982646482525853555315873060492758781867082437297063980292929657130201914078623847029723734165490653351404538497189582831932899224071965961475172019855792528182000630944324411694259616603957524379700005863425023128023837948391354661643074219465866278367515224675646745874300444751939970186611939569595776278656577805910684557059394496216439098657656761614556288043008848663188178903198909960722671554745561749607835675395349161937709796080048807510375623135528323488584533513275938457233266406759407011604233009272938817522498479510727717081639030851697588731563546280221978625312944450541376052313954477600216849437442993271397498398856992072997831393282281434984927136455645556065806896033534140163297188993735904712561154762958402762502822024352492998582918691781022026106786480770212256067728360604390672100257117418125335763138406634589654003149740633456586011313726417716986062711090081583212306537511645901620395825596430959362249734591667882396986991208319586527957455468594100808879135951292326406345664536690779650807292945402179167971897528942933854885348685549612654898256222305586945479731787946968265684329593255497998200245664847478653034824433142540494167815239864457037669441712994609951989030562363497729438704117842476811705198547089883566124340510962058455631253052628132222484396703855378551095738000509027308465701256706582617992621974667856433936587194221571378077759130029614821906535320603109001355623228896445891339116751915482589369304070484024964639877354783744000733576897491609924522958802552489367048394520070795756982880873726680886611443867206005806044657068400449233736368063772292326419992578596061102106726038104855104873692568568909193655862538108659824969771675638658464219802659835315039311743069923431878294983845518098468254793219751504519024459240328242458685003859140960182746270004932485811582790119845248002977943106567708804998390769506560813225791952598162766537973653590565795595656603562942783528869109937338484314406180116703712498218364402910267694940660848845624276033989672736851762674635733644728562514368410297121361580422028378452752022843007640463372462354385613246105088287030276713447481481965706289103273686866143987127382580353760141754652341196277569863422264956907545290100190696796988555530123348802190742587506991155876934480324157995602185889887006389278844754226100284135283205501688756274067046619397357950696833589786853027729568133301851935672275683101715628804354234359817833740342202002293093286878596561241130821492205330535440612394367895317826488705074551661778977093551281471548864547247255894171365358971941346276943800114443191914019531464575189581394312533647598851222285863364726888192660217725027809245019934146593428447039052993774836361542145315666795922387801985036187348502504925716089895742807182246128575210463862399628035357765989732634278506794540376036022905899165857137349300050697248549015636700787872733044460622438658800298512886508682378248796447644471160749304422755072179357425411760005526894464439951355455138965972448836890453822993883483484176441778595207672748300608484447708422195363877190514512087524460168083352310633398468420154804881845785534812139026009325105345515401136278049944603652142965502253037303010829861690934028566368630400232885414497962441372993202067698949657615864755442334963137323959374838543991615672701935847760315675713787556762978088882509673679223125050988513340187518590109405984608336494059709492405563725949430429796972964675970254790238066916162746863322494692681459057010482106680224134180464400238749913291560122777567104812863051652580370494746544984766727967655666085123843966819203473194265800876174216307919123183732728478322541234086228957336477174436010469187526430373341767694887965038289563558859697060862026098451443166634384173019257359251133738854839016363003216799535740226026658256980507874046673873069090955800474769127880698924122017728625603189084086103005912515747299759203201354218951170104983070313857212238325762261925823733596812740435449513193331949848385364103637301082721227108721868150418208370964866266710740911916795700031234216223699257595943181361583251944958487512363627045717932659372873286110599532086779619559861017047709313558523084804887325778516506605925543090939018481213372110781050625265628316917511424657986846905983043761008034977693386066964362950746019679630556377897724721705010164951961024114884348598723385420173730120876586573370198400627227455090428012113715169457751522764586135595759502015102635068408304798419347031798309093552607863677373272423679275716361954929267422421574086370000097369866059617894510390407514795167260545147135339041169165168642440795260905185903352378264847321205529359087161032045070259797281141814456590325816892362841575990085541046128876423150044173918765176277132004014091785010168155095385388918245845622207894265821786401496517809974142190936440621052179578280087222718291341305372279592122149550433813060863556775458563370863128081052367650260863180985947013706821078344141427277625751617072150462186367402440352714522772734381788873296734579029417824921009529847198260706969870735035825146311424254547825053725023147028080666292826251155191713847193959769307283782360876234392791003389326658943759227673433398481918390692135756155714021679751057227360526070841325873047509747225800304567036118383289636306319455588994595469620307520185642183894680471605349826951914423582117950062813091089919818816246751018853544957495942332179086687417644311164728223798738658422920110113942480964740216656849195156254638084812352266100931849180045674152881098273618919730058975500126611418003987037178887911200393577581275992229184721813737781021498564033964179689681713717115953519045069303480355538201948868146982438592799599578338076812854663664861847518227710778271887990757827077236346201687149775609666116293052323599882265031051664879650855609823969138573889983511302816466215905696909244889552014216178735374100450887961780579078165525940154704423915884314034794616096382121922694151882574123403611071243215857229679343392303571376307456019483527007347745889706509602579456605057802213458793934010083067138405321223268471477786977339465178504130863468719010740068926432645620604757689274444054753699178403901998619233608972624370427792581924632841265206972085754641186776778496511625794792498857802268365646204452102693261634931641720093054289908032462507853336828949399578826404223489901201031953276194133770636464648749054424271865944278838997795561714136519466372864218796113593624899589867928003392899379337984013258467261420012109674448170789734043473216122260049799992595596724038617760697468396278973176581638275886076527029971606742401747646246629418462852155536814987644420195040257802585348293748209907557861951939991728751590604810561004357624145991577814986857222647828057953532175340291654260363827277751788280256953940966628146131382838297298275806914058228935487284380746282309499827683218473315824041733538653961666084069863876884565196537915622578959716052064903652002458606723145646668641007682988767647865404040302763237080543150481828959992146346598901959120765663355274419819756069889025325256371518444107288137183335602814896853685091615775189883300321992913262319243885438101479938325294293341868544875419653273388691068753998873352215113776704876697898957376412183885548569922817239468639867173832003873294208301180134174047829872612501184795884801266708233482624056527090673611068540401654792742425490533477981107946083924169528919353339640353418206357402917789667890137653654669583321078541182830687415813043130188865243608827920834789413465366099584844044714186932686087350895343482808200471220686897329761198184938770109474056893773023764338709566595787818246880864649143721141240270921667290814964760338693903070902907776273049008523872520832822789022912886042756168260128609298876424198552437309521853268208726257388560657667627237303479146917193332643424488642463482337361207888299875677631605710063556000560123677265317575093650748029708206971089159231648715469118153878484500286299090842086573626465229232932134141651678867683266238598695508776661236958103037724172886117129158871953496225495254963010635246041509830862299445084948406563008657786907781019726539413980111717314503797190327482356905560664453456910631091295339777777365340443217110375569845631563282510695346210100151771481147947539042306775544978157254088127454315462053478601540714686022545383122609566559961241918947343562156661445977439018750187309505704963228907830432713987842190148364432208079666682262217235174090664438463684946002543608625945745671634915970639125516509175125861476304596743182541106861266890687241861536694748700242801646362823203248382939560358351549975778689377549049291094000492086932344829146197573390925176501398115370263753425927167474646770004734793530663902185950291127437158502971735742413034525470219994706077196050809599210732628591054599240524321418752206478026914561164217956034108185378711702173917750974899018935456080698471245881401235912142733163184496012992392430356627781684778495328019871557778293469148019179660226078437395874218745911543723989507162424254675664430352000527102074774941930350485984333550031425727952529855409000562884338063325835565187727406959379805920355010017123446409776470089928040487952197589394418839802091022827404105753570298608055486111190877635091859274663176898278824639987488419569973055801410857003140592506900463301833942467677520399670924425173825424531709852177023934543937919373391219769096896937520420877184914196474195609090613800033522904862290361399137438562058772593723203355089867035574625247309683139426523156691080001724406496011841724532745056974714254697162907439032008731679742962866479943430881270980427621862257158046556192251682996708960916721147994484665256348954444277052293924610938178555138957350950465361664137735598867976402568526426842679369639913959206131860608943749657610848047552054550507760607793832476675105127017155832588230987881889923157719200543402031241049046273385729856691873434271469286930300175661794568551744220336825316634919672230135280054423896861918365126947710937251558213200529385651595934799774179215663139015535678727531752197655399670641062649136937373530084206508277221592929300558654914272183171123047435569889699396148252500899661067538503463887064901811035933198870505904251487509558816974376931878170156554467929451586774207774925739414906600039758076498189160223397028561013056004377854079030205954203876111607532409156052160028161374109398525909119077831782919809655467383467372542360801871291213301950349546174566745681647885043021537293925003890207207185599588851088228465408618271325243284990638158426494948483569924678215497214898018027503034211897314226078946949268885535239649477624620231063972308928632509328173559662340018169397779862117183442257785851383365015691742771400431299503220002399194640190122175315831771054505201692090990597758841012554220842034337939659177444403334217970772110984357744701229016364930240158651239920403079028024229957117260931630851347180837334561070521022242115825299531735570508855938211726542834583328044373670136654923088377275265439791624388230799222056380687763562902275573645253599193975903584035292848383800145509277321965870347943733967014085117576498530650358335274901586135457543525707916627413017905180663196576338853962789271840290614706639786199909823821164467899153633303856736102236017096102163464549214097998716420421137411783393256161372045391748951102953975407953129523845491374636559864782903813162711477434767585962849056648159862250170180288978496669580573721750650724645344255769941144814123964929140287078922146038746879414885867533470199644213018212964779382415185358412964864675308470023513041041971825903201057178469999914816795285080078291097259508844978212844826607943043009007669698462411357119195073175452728661088160003478063386785493559722710634165648004432804364874166390346941655523384093621259841020126152163216483671643722621101998765443381836694733524200687311700804412768574409019502718218557688933557523718832944334151182361364592967310527691256971505407001595577925806519451584963612761202195523381132329689591779627931824644782303615716763218723130587801701405865360562491372671024131310668813398495871193452314490455551377620073580644381441514508626323178509082204589247385345458435295260920510373500348270325921461553131417429440988907893710826441462553676961027640182703602503700234858180485030636197822137532031630008599503700011116522799005003426836449164843347744846141092473746646239891290500754691448770698157419607081777497803908283502913501104255805115332799531968645307049383655831632386913581769576934845836699581726695389323677442949260818113678952751156849455083444946545654856844324774561189622891785193344646972340444955301726810246881504464178485105530750234869695591738270716582061289373497429351835913927200039694169245272268785116195668193016260217736959972047611500225756866535406668191682051964642798027611778239405016196030820896444092090954243269577240293826953463817651193826544862223591653384698243094931359705290160249875471193120435327097154763128247114403097965639431833809020133072743090483915535529039325434521017708995119883028093160864257429747859361070938189310536251099090781626126265094450505289595839767521108222642244090495645060231087586696423685255040825632149506753031378374068191891744812048957722795303772950048731057623376116073877911394125562827744493580912161754541543737122292761136181330774906699316499539717127456497893389649937589756800692487784368610212280183860439895969453117157082258721343484076484254512600474140489611779614979940319064498310673591238776591369078359899713228781477497037754016451318406736257987644008144148676150781971427077667763029091756656841288180770070841924032246801415455392936552473034837105967366702250194513249621712286280149023666206707380943512903484078318316994282543891488948801171249413390994978962780559919935016264428261841815173976005652648913205407857692952724909471293430672593424675236640930908229114441096290702573392508770000174611493650381692640519093613147554072874482596330153708699177634756894123720449784156779661099837337101079835509465968004947956474391725122601747154599886811805642097111060387496577913166597226450645435668701062094264931520285045867600939473712033548346464511601385678795901054873808971121708792747067485461749137473014778655119838558995848125179656024924937962988737553478773875974849443095225637269056349040281205069294455703152666401022020799213348697234158954683074604707451627402265410811532173821073939442440720194403281441363754776518991892228594994886997733111549889896109612722888569186775054781209685234018259188721709159216829915710838905959851183784503578375465172843031585743267648266517894273045567357804339453680851420161532247165949837859948555305151422444550132693606464154339967850302183289172794960813002739119237169760086588827971138032008089174631841198837804930452185990085132528301221505890808721675025544368606876943622418989973377423047590050650486841140983162914395312101584425467199604742317086717639619119491976888359892129554463423941675192585318724539063403563983581593632965239437466418717437194670276999428047148768396671898817437692360761322964185515575264960548854344435058217625924292385587909984197572184540020523920558706914418756649073063674714339175946061798949812356047645025712500616745931741021986883466170400703244339238265778740948144992687968950196561555177873328507626233689143857963189371921430274620505701026071252683278204556471578698376522243511669995087680451899677870163881878936344118412666687769311325322642583413418816144115046400246557010576727266469284102807937407808591879604700159957445466630081359805374185156794873502563876921232139763637558418334075062104318978921852770199707220827306083895441338020910745963393185091226560922246388417344166090435468846220494451428391448721526984672580626469575576017186834000502666908735812055371864262627405730734095611424116499698719608542930354128346635241384761893649034296528145339621111598812602293314544215111809897301493691711471378903741667342279491670485046166799033526346886909821618495026292013881138847390023232592409157703325959959858004472484693174780935615110241042843370755780772823244669661307460762313274698847356238262700821494685956560580930162306011627844612558685280663235337448083380603216976130236800719990270811267778291395179689695546941524297278438684225373399053146937585616621931779461945649431920455249095574787437343387241786514059033845630767666995730597133631777169499337710524994774938508844722137835050912445411447997886817868629739867695150188907691626847551093898950970270213815690622537885833302619187397711792198788273575683742144167103615459095192230615026380979815169290213022355810989725702276294003960191314255030036195253735631223441704818121226210613033245674511560090555238594893191037484681851394368504845840474010691812470546732496114419015226931167584151831426982043518276745830021640388106661526703691230464711305602350212588299257059425757162678962051971204608091102172146608030052771818472809325514467719255537072940954108810822175798322098037057464548094630917786454610504687384033109618296383627261326893476230976356475646654927055805066173772456106560338326037770859111375133137602018775710192547220677603716968113031376554499533505789950917003487701343826826173141872634090187927110180505173799884524433371152513606414338168490997056494966652947140684872915524918775738544776298496971322928766379106735079975178438918685017096282357009343826452570787899349485363864966912529210307885595021612400968129765685921888775015172886074316532809471142113424235386668323390029070383120929036502398245670381021935619016667353244930618703378070843344780278030326638868660863594077671904480445031233606060650139366051461512958404830647692794713629721581993132173209542162880768965122642695723913230837851426881623922957069105952974669353004636658813471191146830561448689098605468900526771578900429066635577136508454439001133018387490561815660926990769206643222589243242268716855594077098996507655987112599567841787018674457499502225274797081789179049242431438262958275438911717067894416667053097432361254569133163930501150939450960379707241828414924044823354576658295710827272128897922874383743678534416068442812168320724816993375555767773696198189761874364517256154789649759242511943108596733550284490235110153102074503826679154348602411138725317001685640946742917095546926492310983376202098333141735751917220620578129834930919633630903057686816796643768590086781599409230964799537856595125773476595951172503043389570467479664700305175057931561947100790770233865296976447899907171641891974478076475351931026871649012757919405153601062076782395853776341464981305950389835050926707332904550438380071864479341815946158338704196924150746408112907025239191692893978075679084809854957975735288276101665938290699548476345537674287951363301890007959458134628338471571163905318352598978069438288705037821395006302358223720471506342515617146783836690729560054595471155724688176554172397995917021049397292328177518641544419093489497634947685708014680399239051355226864055824950625214904442175285008304144427617247655748021800077358834076397407261828460924087638912907524246040765523127913891797429666170289545581732471102764483540928239824285903051453657657073734973869694835384577728814231706433157299258728875318241762261703224375663876241760096400306130477881988512727992712531581743791580845128510580358466696623470716122637973523465562239314276850369038179219439825383007134595670748440586726458500409952371695640221366131329207753834467424602180318545199503511731065562105120670726923778827991658762572131449744474884904702414430629191518434280790953808301202235385152781796248197424841669550556138306525481652180986716908238624947886056673865479616442960600800906597728915136369144335401383968482734740879149141263968138283421837112278591633047522959624358917655289566638602305203704440893107136904980808248881413112333604867252876800494568719478456085102238113231625682203270496450631509183103542589714902945252071654580047011286964010607286551338796772994922490890944041308587478825599569901297308431738919197377045953943722021087337640252257397640166658074374870314905717620158630442603939995461363635129494634781312115184098228066992011058741784898582161038497330276617396498920235199202760690300158890723824360567491320876073937917404712282400740896506510032497434829995193756702114345090866273470915822920415204711020930207376166671008872928399910264712860375925278229692594145480395366440716066228115619533220831098835309517444756640514742527154790081359328683199685510369482566200129200106287844681732095377346117703225009904424484229612532988577699354372608791217265234436604930548451111076579448004761345320872839450129368223020180059800401144870293259934905275998288041094862890897272455334428841464590041613919121502859514942373877086175016402546117920770662904096815638391936530934953087098887769639365718675205890556189527948555082226932510524575591366506083785187188596590954844115334922123127619394698960497177032315550132341648251405374342080399654577834935911603755800154035588426672603039629840751588622848799364019139332148750121418104324309416380064490298597578688429627944104599366581387611135094390369192783819593651772505428115641014761441181664422642489066995641089941434933081690041017219786246214511378155448631993001683993341960040370123446038181567511625697428415148181783503851094294965410068546749298272104409982673976519483588791790634373784386063604976551130211480117950439661587390411215481363060545815334172151948929804773905864970704946878686603492890349518214635565775376970708502373143799254654333169366396228316095554304436191401199536775398007363361646363866769025883603711605290280284920347060347991009784909866707125029089939276559655725454588596974871329264666135399480911808440395305969690817393103737573562129023114829091591110906179578882068304834044066554476224301333585390680823196600279063528391261906198535010184411080204962314900416738450597693457092431478311600143960130612650243948777863186989847149116014117770269070369558838422360511207500291525799943186417563907480724979908000963008955105657244337221851544427623983725170462577122965852513807887898800719065005330666710836886449127402763666819449337769124867525478161599687157648033306151737638871830553336935393331699777404127639313559076859551572538021747940213212414395880602507923244902143588073792905941399488822420922720581409257760787662769121797126242368081626395744582693444571965870387083045063393368352824987100093327356156115976360920388686526953869343082004797032843039290372345740473399095119945543351374717033983572553905537380376992773567022470574661554501961897716176121989589710852946780657784618906276391409413961490419116280552602638695572889323086750021600816944303021584484141115306655863117477709814019555222650154968832623539552663645567102674904583595282042888972387672678526482479788333449298811653237403275152522005304345199531878570667319206596770318756975295083798156267509262222332374678505031271739244608128746430717244793829111713886758670287353785292496635582528926848502502911595434478578756355369662382646372533907910415632008802869298520855629963426731016423205251431575128366572763362233382479696843404803335914350208981931085020574775739907362668351168581959457968123153564978069509211605054234650119952827202770652736354449067008890614150527199278417848231024096275313530230298933122746365429911944743626264802931947031802080618452652985023528713760255467371460045115818359224270520370657427377131913868987464370296955938715291332818257175010844716111614177948405981113501864847039330823969234237575094705670123663228886943408776397466985501063410826871438759019024538158268053225622154002548838937006049256717040464030695679190618025822097448888102125034060944361813790540762215750083726419925413802147474498693963810343480953259421907161572403781185308441696199366662708758475620083785111089089986550078621009237135181739539598224139731712356809084008216865521790134998183980263116202912703532305141266564847633976037539181104848228832149073725012564926637960345449534634332245823707597944547739723430223428094090654784619992726635881807763214126844873084552620329563810858173598608647356584006107580896348994714663272124746036159702286611480204867836487788567754048576725393104521996188411658825477531275675892700121064160709643525154005780636131410668750781986399843200164903459963475251177596826531686305308829346450984749150647141042108103476686314077943037231548321250331172051055631693729206299571916568321458672825385411762245905872384723913109859916101993889384934516618655158862359248961015140715873405429723832516932936862421229431108260233304713576520411711463874265267124911351123811406469442060981788506500195566403271420929575675436721278163005199262280746944082298232214668749096657601461548679383269008790111183957392263074134593343484707096834702793265185096352307573514996660960456671791812979595754713032434710455972113728146429623607431536292813534533986247731796844023282695664131025887640411291724550800361302807624964469619200488788070118583213607177281899104886542333312133752194243009294749780348964957142435224801153032241404165436436983783857364934617015897821983128953853267322296414548801448188849664101265117691415682699766198223437257414008386213283474446227145742550889052133941844879716727880874499649169788224652853828707046427326201434587400336700000504920720968164073168087218637885571682897079352401175413998915510869625745613454397396992824390814243815201338256703762145798642833679002395134432412461935726078307877296492455205639304151527342088683906973856771555952899290542980764446793032540239266684518756179922099724566049180125404497214005868117577553578161516179961102894717965445642136338399264123731363098166143216526370397926984189335698724937363722785448942008114810992542885407108068578157631912872721570357309943657209697039394725319828533047401608049664745234211729409952606380927403647995457596283811473672873299386587904926354585767215376680775600491444097369756813540669168826981257347488544477615887645924767638664314914069752001893816950096287176428349636379432165975012330437143371556830839536745267615524319870784283715241622000350435667846315012384639593835574168840446096827717651885239334656773463475742983039929568350186476462899005405030254830347137344933064054453161159720058403829362890064684578726587722087045042237063545554401748964957790809091908091531155672356180958218260041832199667645016981253302843985155358343080215157687730558440847446443425021358556383337548561410453441550141557719197739085381924612574367920740319138832692148085998102324305840067212934141501721038135263976109474075542072963222862601366922632399324153281811329390872839420602176568920288514752268397765546203391118148986308517163471208597432367929831888803005560300714306105785233437641266341474287793168403342880299931974457483530665477940941761614651523951559211609088308675266241767906293204913660055261382440763867369384034576018496725035162584320304724017248147923337980633164887983061177664524813270500508866158435653261797789491246313438831039620041193573997860147212943540319178726501383983613897818351706227838450180701376063228995183055389060098665159414392020627983340149533065168256603207116362182783179002704931532659189585561954554084202863980113193186660251628818788506047933649545681278017969491959088945965130320645357220575110660361302317871873647494796237427640190680375511264331263103993619453653313272275546628646218950464967229602657309983145287492995311473820864077726951234023029793144888314131184199796838666480941584914747452404095083747430953697540036742601108492946239106496450058075670231360866471785974936453236293809796261847995198991636099390263922810687525317279887776082173570429794735022931043098288807917099570371186772863517708493065715428016144328094361083702150447490006018650041195356567453332669286656285039044965355734794128934266617723461014983314870518351742290185338682953955304290850897926355610136364786828882983668836090930905333234465167296801221949092604380326080048029495768494739586302793871978754146348262352532242662742949379446226020527414376005398950069479814601248482319649940134265232361438318956162247116073049737614741109451682755173773110500634277503328928192140846540214991181893245294259856197782361913044262553431779379264231757737404292402315458766599895697816300262947774338334828062963169062245237970034122368413523028082228591810762718458541570639875655339627168111187429750017373733127968293355051505303934634968108180038779701595738671763221126693994217096656704829482264240649306021739292937018155172152192877627124695700960750470115023788710137568934508574805275749878801851223442248906279514591570843299155967771388081005141395180023520633644737503429097896167800717322007791243926466166246281887249476044839670387580820534029772594304143446314396138028492985541721823445533462790790989644064926799626044766508956746103899975273420790251128317608172442140864438249232033886981298571446313152166272586403049687346291400742301506666574329320254803503406869756778955191112769789889906225601313294680990477841915326948173458761485328416990069078825803740893655769076619106884946029941053806934917061740347098878578761350613917494105993629636853421806703907805915625306987133698016710782673465376127177554962274573386551771383731858406087922193238994032916824301518441975824886790825959375792490748239602956545870712588344805830902308263867481199796584262360764632842060445868373072363426739967364733904756601600501136406469531262402268267907943343762249996866560082906685735248400403527492138002310437567094496486600135854615055957095325797585887645949805425658867390764991407374640457581871898723689616278255123908397929058886257386812341583786734546322797080943313793124530997686728196279474222548580175279616070731878854579065265111797848273439363661184978767140578554207837630722447398798410353693579942874982303257224196405115321443149863024919536335546592951231618130496977966953247846446867618143352039055916733569008674792336489183997272705465097180063881322049857744656073489120894095182994844403410190351454033859939189560119156488136411189693588972852816251616412379326345907011346654461516044815689387196914655554009407927697479361328367259792783678877371011943397903479033494943558192409233329294014502963536063258047232040030717535340055997683787646687373311496572023402736993221771838346101428645571109035160499465747851721062569218360371582427154946354177685148261445444382854433526041573694191868100691894995252964231371748171882389196500878726961642382690478047693021319935746057796865858043234432475989691364350873071526330508328816945173678936490235165481763428193311886491854657949707495580427203947258179871831997863675935229169892192951218411114046728675111587103598161665533796078164412570286460560179216495448907883084677098328658582225410147283125285329708335855434599119862456787781022746287647488748328351896857712771322930098846530749669281954212856209645472366188898269572958309961751030929286010083189256423466058561261635494737747575225814290334720524192574311177726075871022865712887975720406754950780948426973822692117341061495816001901599804366402683736293316541196482948324474781508878429958955410565161126865570964592978535628073792480221331929618639997774575110854700455483024085526767293413579671007154665338361846552373580795630015288059988946250869517148386984912725183635692335396207722117097208995181415279710648203828719263697109065794220792702357465642831270855151778078060947642860007545075861238312480851070983115859143249290633157983068436986391309188540064284430864355128549172472337815373795773340292813198989477544094093046954140965714207235985209374172300488283426843478451191368578271664160117833555423362410017116757467581649758687164609854190305111879948924501075948767619607445286093917856541299386101888079511417488789032239703512205408566062527970503532708709390778085944194997849838554882027799940677059686319722462978203228146339611223135612769929680813462185032979146948028302221608517174590708193731178165674145276111333328731846487169310580468699979790858891565170101161252448350595593155006555193893541348862518793564988170029558912737226567437432188286928986569764538507276731905973582995623042290903721019377881307997694435113541808794401520642195746277210873185688576913107804934158634427027373713114296747671537408156262177736907011147584234185609535291823281993225592261586286738209668235646122022023520344107044807198389261770677951618099044789478293284256728416537568050681943083380088065995312341130550525625265490085064673208777383398520639087968700916851233398829991521149928306977702679450400354211880186299178675281612563965330653367265838929012007422428057581804074322786795469712702151279143145710688590462061052990219507307571931939645697876403781708078650970697757440528305384260396588039320645948458080345405819421688771760131912674829777865379729126180203265738243278573578322385407083993420695386240543306272527672416701107472024246694200711611816758513087999716728373966657885686158288399683751919913369545100943254079890188497017879902471597462414496668047446442408293216608663998723779065389915216590653664683703347962386744736593703485082381721072914448891334964501880242274447457661865269835433682123092198990925379249408170583450262064378794313940060938268318220027533889418032329968640512699526739303696933161801450972114829862653428069417719139440754937839710574158045105648025697355881835774045831335794630722647635859859298280191136483351753181969977618296748823656716407112785343442289249123204347434978853866436288135601477093240919053567038745093001548470546041517866187007612680491823852647661877492348685688348185312206474261633930727102376438635020880892935363345185352026666895847028912938315973894762677224663052244554968713371461961112524859058577577615455258828138066375287736553580847063534609751092346083807264470523890934189652263651090372897933426952132750374294426718870501609148922871029839478992425281184110950179637750480940859083837861119787214979121271401558881338853648005848473639707379755124698769569617855130082006857390562329485128069814554820099643412962079799386864415158605915982958311115123399208262791614532353372596560646058472686591745672360723246149968237157110202436339960656179794492687992849861634557890947186852021055000524183623262614754651501251559668869403081222117385224095986407174290566466340736116533681875018778366299077643356723690136950763979289298626863775282816886665802168686249659833811930692375620338784711017037626053510856554788531581003890567600234572929813644857814414341975381377204395239103877515577306482780820410333096883700428316300482246845780401685296534118153967302044657861395050902807668678608984298777010713955026805641325671293142055930137469741679136699793014660110725086497113815553970391150381236584774151863922356621201537197300193730171475288048525640903273067128197806838707696813008402100940819279988210202062204049508155715779625870537897763565067490525704093037385975536156626776866300704510081118966552297929349152068556118864961114390752447585034227938068908273837306301384736708216977467801518856489378666145282490811600955397614141538673709277749517467684388128222660604649052090533561500351125919743791855626275088051954935852337666519708184371882163227439744253919886701852973270222995627523235945012172974981282635851018941525555629030958693037215960546354249703188031813562540345257685331573011411744135797838843278919975595974507933591353499124958893634763925993434657331910852198234501440246609513120010120903314001475566844768479319655162763067772364215678723494882115859975395119106082204914383567970008122298947378605276180674651297389009256967575121318626106148366547182884555516838207829589157829185799477548967467731773894691432030653387401526715547130434335650715059742448337011137820774088905393240868951689033844622228006649622224968709841661690071884501060034506320438040773693799509583179878245891786062442692041819545778727543126116588932646549881548066125844406530826557684802930816351128636732636658952044468239440488834445754843433477116696021121444465707030491599492660811427506063944236774475709240258198407547258642756924154335710076555203554244775771349310585425823015667002415171202397216124338595712337109796428167882813406930263642826890542067873568511533198575459220184044838741505175967940471106821020510780375037667026827793960144013828682852040811903525362225144170084107481671721005082656015392597921347637647158532587813965971396601474707852142959060824076153597301901757150864221393705534766117325534237016517274668104214768309536241761140991740327598861778889031620529449179347557993978235760409219991473866071844536227623825381730399898799300884829550281565652035132308050191450074477587138446482973852427335714521409818578524578462717122947793929710386341142862389291855051731377567544930258253972731444614222567092003685768571002850048443643791071661224122495491213416370629425424621042112518946695103693676511259018452516574669455419386366380646325539419637288472893843534465736089361528053273733151654605011532304493034656378428347689297780264319564291867422232661860141934062405794845280412129265017174348081197839494418617422364123027950071847672619078064971943706380587983027396663320884038774029623132144157328621674283339808541691981377324626777895326064715252112342458428086009677211958354558656931882154706468854754710090784159631212288656605730090716727670938553275663332535328055736973572940736466283506282085561611017595277840119531272599437875126431022014241477003906206713459506224724490116548560133416812834791188182017011350479229915079648014093317124298500592812341611765489200214130255454512604908470198848428805720611928231133488640682802484610292788445644802525740838527945046734098296832529265380551045682360238024737681537872932080864706228177513070377607360042004983604548844556877787095347849178982764494840459851547961937907054957658250572801794064246941649207615499268637817739343319436666386189988637670445067460131227060987513161773102310168821531975932123465962050760107258175790634675683712670805284514151768083235940515256266313620665430142705991229739053816122709531457247884243930387678066142663217968458907342256582650046620306190007055573457690993100410518198520032289168962526199726667019749103716467029980947839678005965639914806089080686734155240226514318207859829406383327397935709790392798037287223852648294766001842250522368696333402313645748557765353732146448248661307802221159961693154411843030583610367121537938638292112246624072985652674183423354819924306964816655093973068317267367484853390188270269393597936986379735589648223463751116091820214683038927258739611978722392003407136450527900781521450583962591013977375898440821968093800522069835717767703138873834146696071348711807249066706862031616406172211639736390283330962968164571059069973222487504169505233448684624313491463190091165390373867653403085924046486581952439281815377292521687106096994143549543007615811188532093628644598547122757387946446244274486640741081740054738499359665634750082882079674505905533433814376619938775181182464302599736321024001348009939182590265159450052810834914892092851874098817921659680747612200225971360851321303376808829261034221176449996204555268914193596892179170928998895725480899976116393283189685895210233271125538302044484371610627385960152704018307989831762781768030049370651948006220973374638049817304173583232366813818907523492372382681325648594690136181384102840601388399339930542665997144626667613401107830111605917525676946318495724224726313759251860865793981437708191625828242001438348666764655388871453168647441201328144295724127634905613544782842544090626115202877013125976986444579987066697187054666521851192669878749230174855660333045607583152820279784890525433431091184987869813210050238999932938938814716520678596901870652905728524010142832940351383158100788417137690659860549513773442279419917725286327448079556693082692905991907077995283467994709496626457888506213257094060876854507016442988054996837026427454866464351856070756199349599492593091103240600265797325259142129237508438881309690916050874486065065210524989898650428023124336439152554725826450105186541076567213454393559811381382474831056764009769878863391788416813038080491279010554086457980310242588700098446828187451250871626346397899851731326454308626710337037216864325310282205380054320894861724546178943135397931262367882269724768949475660930685550370517230476729310884422645143973597601811438803006715867616201683579416831792887795308289237593074431283547814381982012243212082148049156222670222824129154065021000629743179978787953242390709974012226086575388045829043517328880064731180363894015448022625612467859792105383346335496116450245390726337468036425103573430897715632815409575660762177097380572311777106518498278953433008587293408629318775306589672708592471824105439125668715372873077345286997711363956141928581123992115231258990198121838232780983039185743573992244361842462843973994051742613849116103392709454546944161763455109524240107123479259315300840812814270520034931737049674080755583452510800977600095754628363254735649728381165286102287664794831570976806124484567867878498972516645052694704646904754515848906112685191300992721891919532261058275675929029447728872773806958039223407464167429842567438297104203261328454845343559532723107745578597715387234183172941742006270164373718117846117252398590871865760409384469719205705568272792585732148886239555215142664631865437228033478090840478022037868257736931510279172417682886513063932297692072593413081767931095357197338984613278826998855614749701936946814255048446963860601455605170368701734074599723461682771443608051832462948630691051725860154043286976849355516350138718542814046925656004388108611601874968636477660263578097009740605105403788615144623954225715527847342641672938262991070564095259910609264344262822681873043397997294212859321938625032538554759554915928550011128369689839451772452630141446101738316533750916344798644909377560849298537969269964989691867021941656721334616528546595234946181216662081106302991078453698513384192056264962422762762056693949704104642104455019421528303056840393241264367288596120582664463927571886893345340336184911219507848878399323236687406266612748150503401287916657898909775719362674137526388122268149509228494082408237609286627136871132665753354556478629631608497585368023495105884614445832188674314126366801571928736320266922760183820810707556589824979658298617196839169847390651434454037835866676313824812958299897182356054512024430179932374207967718237805959125730119769609299264075387665488430754415618607646894216374365186109863482480839383855628747860420266538446765243433015412003993720664555883948033539969221938219840867577930740029875869106466208390001621381651320105518548596542540951947829002778942817858757782874446286754540568354508543881959481493421553380319777840537061224477238976065828703171991932889189317620717322911435469605301598507696687329972711786308277439984566525630260840696338587267070673030079151789351540082663637387693007503080787092240424848209924242506046086195905571555300425830630403248251079446157791607640620294542788006821260418159582929173001798517995292332952547358285196100541203412884969684695631986243118980406537039481735201163298004608279997693330618769413985924016280787663446710019472005316281318564367431886500868193887115315732808962970414925082078095854346110271472000126633683665935958130058584659652127130547819913975919481475918150797157928849474933414309725105982428633157482235558029044561383802153375414413506972953152712504824853721780245734750840045288340510386917476987840221964321835848526797090591086715918008934564953878794763262710997172655141558251095131345494055020281697006536936855456555578350676767682723945626686403874492986733931984505192536563517092395543661665182828288850695799163699581876006207017220046370316785152476828382303188700682513989620772446565167616759011317628941499501571018334146574881224167159212633325339375329809284139709551039286933507926769141775230661592659619876744122350151642259483421219819965033925580756469714515667793948411545135305388578766747240456635312346658143197080864253221020837983517370324858543688516044493223371613962494369265201404236836298946020848766443217532799832409453158256207028643904309169713775620992557746056207536320509053877774250123868261445534548376673040322068562543686156668616928377905561877708940611411555233558910240287150282118242409453689315901981480201539925711857012925895021547391028536287511568036326400918684402149210759136638896445128686012762527940327778101193925377595038664357072301849560598268424204245724995128409318652326627953474432108213461342063899223004757505742359387215675114500399793468297987284270719481538093685224896398523935740078784409485470229479863199169337900118423059308396193001340750511725161289870083382000875287069672798156446686048471660238085887491027158539802733067075482190492352179004418226510425889863080103968007425822419217343086563411754082480069582794269837343239850551638252721253417725012824229706116460976604718964889793831075298773401393060292281247592439167969948170125238040812381842024718739258541143038897998658840627068758386516603455034729040581497648121750916224075765187300104167001491157848649242309214601685736740984119753118787051681809242217152668472100179149846791768347403905494689304394578902891570694478041777578513531408199501024640059318211827890948322358927142836059232055767139931404740733517873663922737407656383601259900673155163966724445110158950396808927723045348773632005286684155948957434677884763862275363466537321559537342039728472615032083134064422269463813913199353870157404854871447680818098508687440395201731145531530497218749493473868093292715523076432325707117547175697132464088885065228733300517243608960785308186531397754159418314022654859900435478358812644456563733409432132875930289588529527042705891557232308705290683497837710588327610536114638334450027387492729016239388489997688576653525645833134482934385201068656153852281712535534401862933408868111424875147650022365451976463448653036993786301068684214613702694134009620239556352523333235916485017991129287526476059019355973454947016000775767869020165197434752672907507600018219264561094817077020231108945239767187563386136971716148972414321220074482214894774294101561408681100618340782939156468065527189357848133321491692024967966656173432226030223084883490869265043516018228240039346509788817004065518843472854530217700786628370449057967346684080809277542149818778126980275558946981692227476661811993402369933404323655905397761744948150672172461187162023301058233353168932315909903377505232794514095146416846797117408484485206532500290076910717246980017357995379297911891071980910748370528851444954602268821092444524064812441264444075061174973787259852324577747566291277368023524996223269345351358105218357201807859661739287486031912858729163392916860064471313828147871309514513734439569199788255102057729858938415832033848060515011955686260827852242713213335744527264542442793749964094788406267147855929759526147633511085097141408363984463907146024582770809061824936063026086138562783001217011845570319216520355073035102075035488117261703129533839181424284656839377798316824445549342084543093132937220045868399024173919213983155120137588427916703293824891744194789272981422149940432229236465211409242350016042971289069791411095670814791601811954946543579957392152694865286139938591705504229079918142380571156554116262937871787149530095494854252975274764783134073903571327939490400376763058068714958512332831882698420789764134993202605575802694945773572719891222181361887639512242871579588556812822908140080263081926701766533473791467652737084967868082733751596147027240712227655022540760305224435542898315109973558260882589895082524380300843588242592537237863742069511630230387677655344010309923352631941982719206440684729780466946910191941834706437519501748121674999668298762962302669865743333552098201635852402547865611471327635506135956562360312912479185828992319228695517599109615818176423486079437081985791603277558373186261198163854245944876982706629275970821283073381869520299304791524880653379564876264504261449994346860515661046965643719323722307796662004895369056317956661071276077674057660755398041948507558632927347269967074760552456760949524822232599262017465270800034748208790592043983584082860861412899754161840745797999031103010478314308080120747440037572090493024537622407346998853594200131621162488232527727278824812077489274921414002556981867025852900496744506892931785750402680356965682623556334576192319238589023377521767612697517023494820391627603236557238656206927944158616116285226059147795495213040943946264648862375174485597291322767567082253753040062487742599887653740180267986278737475694293042874835368247414476381524811173199820669045638547382115010490285016111929581903291869236171310657121779207657014071509459966194494056172329180986051874488369967957846674984243210535199139123723063490568058951714009963854797211053036933655684736838018039970004131343591283622346055129546251074384145096185929745271745958216824854909574775048169323858363484684349293275072541833228428203408580498576495940289358493444908772653060192555852382549586507503660395139374965417439205005169942373729352539232884399555556601384189067936040304005967883907875855775573561544694525936587748206991859985905351112321074695443440750385375774196787699130182052727531550375445414391228781651615802620204244287101616187799644578007308615042472618128355565201271010616676762205675237031505260897257167776629068859878777978625603709650477401929742296075811319480596344879547127864616741853958997733620553948408225807126553872937653967493203743083838927707601262478894038070396377571091137501954580833663308731623207859219889624094209480766601758801308410996447849878341003795444008740374095316009069825919335196350291356203984911408057982049335054166324169491077046234108156582496512316717262969830745164043993369635964932995005181115267146668625319669757061041848886525454657480510542640689322747666153027921040845903622065993921270796287822947373088132361086765532512328086312386105570079810296373608737446383739354567756152673474542582734336855692878329458483836193527301583047641982954336820989286698376680891215391269283120879441837254307895428292789443776785697315118549275972506423192579438560676771558650352508058539462856712229583027084620279936668678867202889240791460136942136888382662729652942116218408960842057160455401542126292419594709802235749255679946665949158772439632054248884309710854530519530882240343689452307932701467714335196318685269167269494946433597869584332857682827168437238661344436368809334530239785409858181938580316813366964859896303175487517515160749067020917514079653789015854240762899081263166479043232573014975120757266634957975583016547119519550270166382737062514141321707772358318327728575799296453855188812143116699645783058635833255542943061783410155552390415166904498956192328922266008294912189041775235479092916383389754591566605513716092285496620249844858218955660300282094341623043758973283800447381679244870561839207391802012401514998606723425985621316246628485770011171138963038481092910431217349477314815221821510922064774666671073108942515705311737587714309379000085260304676465536096326765632533234606939245998931808816509598420432873444483607153044936537403973643391869093598052474195988916152282916100626118574460774615390663785874384112754236982157730144003456110445593162046716860301022641429194703756475743158679882413907259307004483687488034446780902216505097002765064301404251649440545833968428696569915010612974469275274103950820793186001115334422930391457709274090970867186522806712467682879858976445472913402908089948325204751929259890886373401104440811595669305836379099706894128907506997987315702717356872544958095786693365185690625783602353155506693664369039150850444714183401783858513799511642865210283560908674396492468075179310040098248611731903337967380580850348353865701017591345385702438502673085715914406055292596890664071967594422975711230180011265529993354952282476309982752748281283224017534715686581881503554928838384282161182822760371470566224519852366630086955336460073043590963361372791062806140046738482711402643320990245891991015706439972233596829928105091412709776029120246770007101001922611111588619779509192820957444707340473466255679296993267042427722870970282893389906205078243982848963642009452493696334021845790257219721756670883827517084131448216592388510612034815857911896335033854882531426554814174431755339417851267734897664920553752455219741129603285146363791085523614970224843195290897599621322527011668665793708995918524268629494213455092724781368842758278617242973812042155010114496533058461147743207460751014193040094320560223543398189432721311473752802945271256891136209465337196772388294230517943305190486341121762420947051431768774518069058450467615278906423902361666815719878165880126796007899141278970753428404576570768825487598725977663046075052476863172647484058985122461557585125695391989577972663425750564939286654302204151406100966213295845453735405009849618506516406804143117187359928655895404212076430466356788372310354045894711496343966405657357446051952183212930665990681051096346393874635965571069364940637329363466412934268842753374594020066489339626443766633503701258587732711754816040244441785738121320671059668375409177307791161214262015503984077222823905095289752314775896096251692179410100054910935379243977842398323438891700328758444030394573310676109879601409549468624697041776232776392715546735041412586159557086956465498103119191257835795050386938983131981309154590385622212465202353668444887869500335359080715745250109432863006564764601621943557045322581463429132692170358590194579601074469158383563788106328252373445133401342588121715992625392196682928994163434213844958541123578578566901032817845047399966207000451210651255967462641431558407425529840379212829707986017276366912200408493864942214216682038537443089891242797127848316608159739755330947610435729443060144896396216819022472839091566800399981691939528129521837055880195353214725702995054932006842269588120439471121445934433143233072583050786722855324166215530217411315623401724749135428781097240434530134198264984798886563537497558757567199925140201354984553738180145259634405225918253839013665805514931167308314184187092806950842427008092182617685407897624961523590575765295646348516549209126119272039109219961670929166786592352660325357183710827922547732294498463794136026954969934281284923229643322898701497053998752445395320017610950636326432638849479809542915837275015041676858974308972727417273431964606188784434909830733600666533042380468037613372518967834668838503973300197988614523933364389582072194938499981719940102140220836400228496443007814936548885264406296343417196377217625482922342282305026194230616641367529551064702361582782282253623626495873410433523631088271174799929300967468326035774432255582771285158211285258039757579953440060615620112580797459191313075252197674839576831084864436201289692002228161638576089773498315362751719133686427623122148509090743224649582069754311499977390134164067271581484807160525935895406111769346724368786858895201741953762360348562333894305612997716220322374767201211292825079565065476797909086479340279491073860856327989781743902890182457513260330492514648336461414355803931923977568552435784925920852978988710452293244777831690395402184562116267636781463226177514075268781975966705005901099500301664273390784312596563390608317248556103324783925214454812019910828856827256893687903809770955515412687049170464925751125475314428274011117093287152903103765549970762868705030639229737514763383318832757314281523775100844832628253040717495357061990381485676078402538056815520571329554482566658399783408227986686051172011474065768320357864084971838069957513315301540476827568807769569766543081468852364790045325485633801013588806909633984176880178051812202482281414969351405861903021586243508986147185170629216281107661107487681608341755483555126363962081121363997571936706949485022641994611727227563439207795537476765487263509994129739625966406001940344063696409267435728686702937307495381126715806207712856578203404779453816906905655293548835257342833325245502182015385088831486493017622425086795238431757099764503730863811308227172347377900808842594895490898917984959070956333824544936347297898990072449437893880061368337854145200178893044998780617587021241020222333115436026122509924774402526893958152481181159407805368388280682711247272177937470841644404341445858721125270478058693752997035186055637028137637767810827544032968499140618528021478789869904505720626294482213973025767737900609970570903119635552880803610461504506567935172440247196522317469701974747459085058681763355318534573665813234021079980269226550195337223578297264384336573886829607340365826558407151909029472721574639726039506976754548648168780433854390188761565399738933883818619413143576159956874238634652498549079341135139847292143991476004507058835104500679019550259448302048641356055124056801988652776684485143387728000540566458568326107865809259949517642139204150706973965032279057268976760852329877112790514901621641151853663514940405935100062046159542032485109591349479848093574627387244705049737463163603885313842790037580313378741643530129462770495388617301321415542856634791434899227327138936890801178665875867146270122598101827546938140568568801097160930824675895153772208580999242903055738425916931876543053584014339239380955761280847868440393964975217819694705287026640552192011557789578774876179880485481424737948547688132111213625996122645594229221329807362534601119778732809436244618554684640807915881458105705965700145574769072833198455262833817967357954899383674885406683555722752788928356197873914743554944444654434654496062875987357029892640629873964697924234788149622896383294424603389674807367249916700680877503113591903299994417959888196526455358148004376611260310855665918076500216871361098404056158337794302833483862358358713168826162905861513752689183759372666232808669543117458235151501856345720298627254046017216127549030671969305837328015170174958125233169368960454858719089808299310823423024870967716495623996654079052943006603958953710673667939251774403428757513231566955748276534238737748751762287398754649802286888676159563800561533241572902391218900667367756687677571712821909279657666114965613875907548266934704321515141702177307038107323124303374454794588624946859121399649627653668734526797988886000892408472052102192637958275957142619351427473708463956516132266489545684503220615330107998213949018049802883756856715407905690844098175071651090765082418981261031011391564070568440517138786218128423760268005125521748498158615696796573591505488790006640534215308339893173603850135546158762417427789132313551201377899260265245029165516491809611093634692538532229263338834113405659336782597317616945477525287931181692107897920759341501792538879969813407093450978240372443921537669581890895623481533630954410544737961701243585145645698827183635701736623999573167851320503549244973195157462649779033031989984578945548155377495199117488950623647680848733553734769335429830823143325066450345216042272573427382091332647190119777694499181394014423964995133759271089947858256365001239750196838393119395179842977932726939673374718434082909421580592237834002644692247176691755671389390442320494782469447838869956772212318067564716478672489623745731395134258864225625655174390932515272967205666182171023054545407147622834250323072862367329465847708431858546431534024010789829913248003928454676584646396085849750830029902396223239079513542314923485890900153380548518893880284634403079362251114141745189150420833424565029130818077197621300426413152199765708521686672033392411682633445354640958695752126915535409225613582596184796164114117347175427203080959991002654582446704639600084182352975734990991339532701171583701964730752592676121979449046858420424957146860246070628985518724399392403534102109583608504066377181540794265745177191549923002522239635832762676324519860584307065514525312911904989083890034307673266301845511407605995997713521516800535930168300002512387422725891853330012920854466564876866148440989053846477516173037067424403611452958827023881255748969022353495594974194083719008390522567389362090157319816728141871798508573235137569237885074361747501260222991856892646708584806108850196065723200270768528395325412956747528886354836629632573915715975242175490115192527387139866578391576947153535140552150232965495257744202374079562695852971517599129932458892089875604743143857481677677686641256238190530796735439730528767873690141557595740715456985704511845885418265507238338767627337473347088482385079003885793215894663976061473389920475275728129460291428525244563961763372610220939693396963605913657216218925097090952741742753002523942144514814013373729011961202584095653125182739435541137595406870809011797799715819033047845064325829817962116284350427254680283723262610141268589853924008820036572127706035463266750868873582174035359980197810632537710713221863584194339039427229456656913337157567053408560057497265053626324815844211062624266571850611023493027783965676561616034358927448241017632859546331721843532189577038447412266110711775037549567757157234790164505271409057313745520756295084469350656667385857547675542370560763883131958601502727086539960144046505049453565637635430697598664485131488964826555820427763807146762078750863488081635435892511764793943788643903852953035920202964238387865827524185186976194325467816758067452783636525634317091528679231888725629541845536192833353057086413144525749911354464660611308855421835750461635226231112624405490116368066794375733645827464917031853761871705072978536292425635646601537925203629484667565132342774803196603184723865267692926034645898652750373902733393112640353341978997726452340652957812270355159640278288898880135215733173804969407366975930490861533787399439740139294522407341156189631784743529562505923669425251169635059958127892659310361629818088260310395137541593131409252400736867030687050076384148488776328184351832655978682896572692978740691646232446394886285730483678063608746730495175041395778651746087109413948155836945625973793065024275459277957380019076400598712592399253442997605014752242015368549953321395122269302361238802739422235477099677069236879361578875807298323542458404525185053996993197236350122719829871381265639148492325820814674149049763716890449580467325117475979812260683506456276789392237534662769140829316913544672030664097051038761835744149277834450685846974461072491731166638463783487976606800163287766924200941464251128315336120295668808167286688231204735849161104573189255785305095311096339667062295279311640191907645923361133507406358942813817446557773572083230854831476672693884202701200912458213643184749571398793004937142455783903881095418971924445774581810396969576322804274171416550954174868305121644746312632310193165468975378827368385395275294405890957034117574879180469708232512301167080370526693318659411357157142035743411569111502166226175497492686271283624773397385912398991675017361778247159273906055013619328735515530231828451986916285487891239718532077122056684190929415001380541547232699797800446183282517356160081165336609934660768159655831842349850678123782207392110470844899466884601224378512729351977338991881053186419680091408657799583813994393822079730441606186776706248380657746318106172901339852258573332910881688839900073915834019107905609823494657984407789227142089477578877765674528217221666869549077131719371799252579689965600254229853276600567416288993180056558837217607472389758622651261049406838146941143932732102001615244633913265045658985065264644033184103588041087512287101506124725598203484939956347687563372419619320968087167497681170772819701421280706798502940075230188819908320562811627805928813543777236294634161481778762270987744713718474535047405116941391943482763409316158993881877527347504699271967187836663243149027810912337399911235113495704080005470211846541322593741705549870181238250347832537642732915045138946807775557068922146023387126107888442131348281257217000693483074372859494191538157479515940859946190472473182357839318585410668354285078313283634493977934392867766140301137944461406309694462649427823207941028155645070269671743487241483693879648983626888214243582118798526372390629847039474897260548299611577504241948207500645098321421783961208657188883030167390431053036673430890031859282790476188797665094249575066168793655282903403575427417579262868364785658125628101569930578150329180134271132066913104934728792623627672996286645837287682729818181459311136200347279119398829600679773511442420107703699253498568750324900547417323187825022238916325958173962829254263157575949829353381455356984422365855564918199139454130126756193984363014081579769553566996637524717612261628629548607837087921048488419714498648581803100458839494803921920663468742036420004181177634280476994023775158652283842918053229913019708918412852353496726572715904051534812725611706000643120265989187282526377899020126870743735032414665921774426234655927353337297020065644185492750886235722849087779232237114648962982884026629724204301139875105975281617935563999654169096207995520997428023236759136561280788466912837314479075108136021846106569903011394065672833123003086204501182244060062052173558948112135291950706750029718251987744029492929839460846645795839389487134348483171761340719786828332820791949077814181826466261712663955438397038749339909206560408666290345186213180587679378461863817724669787400207564492702810138602016295705732199963414397119469093267495539036498098020731144596653951523815855108267373294282235154042636728562572082072366807311692046269956824300441291942383626183232305960806279145927566677321312932659865170808806675623147323208449973551708100110517709181324350299404494477153478074715474515485006817958030283612494480835571840291974635429763508756479999242079276694794367035616345161620674827141474431711137082354102468096610855092305224025892238190742516584200315802914953173761481445858016217626209996799840613308344510822041186228189682392654534640401456176743691104820432596485757941674520387289264771559901007657967120449140642370124073671653728307479153686403100513867947832915806037130234759497180221260166741182345738311752502964203108827512639379338779707990170216036640775387416291546759684822364676858032053254437831840048646633832818733264931223430421032816506346307753771318119857690768874368505768871642505089076675109513294670613044724510681101397915223254687697802688329709453821923070408644116408127361068504541798274588068033472136060084767361527296158865935601674809747636696053477385289358187504822827004568240943869279004835419152573698311368073934156929459160714305088279337042344622938291985259881999863218073921859046002252831931135988215601356285647997441861093850154105634167068980361758147021485714952423742425882276740321867886859628666782312148126079921975185426862858528356058624782225128640153414839785173433953161651462679498976094633837238826030295667056292826196645901950623618175052160735956173214045194775492538516690346102286085419540051264031605207529844024922289749950193842340272895014254667217572812627326582943870111331063389999990850941644747072719241053909852942201934441010578821921092846314152460736979931811495022367411573407832298514925383583664501242002367867572032752521146850295801962562016419217732315344815913379061942405133704435562716147845680117280167381000761495976977581116825464911100694967662021010354905585598513510277236830869609750025630254793601712168278784317190437325886509719069211933574312836620531076398518874608785265267613225471602622863829392596304793345151934936978506560872039600836549994551183370982693298145025148662647245207755110350560004669382113048546314778091168947098454498433655072868612889074666096190937981714431544444849195802130213532743852825105965584943228597720466908212153958762053575932046884865881222058623841110788424244913582878155362772930003332979318353908663541134820700379636119362565733477197317963272297576611359803691463100464884475376828331625833701709792456872279135869364945726084666536668815242072327508124238047562822492287311366138217137110964870733573325843574610833164019832193509700818980838328736280721467194137341959332665300092387145217321068008437089154789210312871992057784335317119965436963809572487212777257258388290583298363333123015574865503613313119782399214927833806061557973151201901657953133410534064719737111600547821499571179990890376005985760891655863554691946352789546059371534406001155712587086282532458515381435866157483153432421067662760394422086952704370101388474408011290600884617770865760190755402593087989047232682602792800021699076776428601040916101181214231180332513079131427050996797288633580434659356982511676457570115944936015319186337258829547751526660770385446072121453394757124039258176908293696118278892619650589360502952559219219460479090033042992829061743653797001343644843382224337391480040835134866432986078779017441987639609943295974733534139305343343309339610195407058952946983143271901993785427711069385325510328566583775623150997737768675387031524426691466572406446341543971879975066712982013452374406524057251371449663981812623737982964623048173921741395058441273070678797635599215916541746583044816437567858172420610899791681478040993873316324778640425956402052247818935725135855806038033638730076657205239244615010516144383373455910190869932651286761431138873950755059598002480171705804143119952520518481086341050723878727430097935355605636050243555443468441120559172876496671237913263023455747627313584647066970677315506590032775282568281108953828438064345848015911342109583788199980709990725701609515896475195449005524953420672835976081537508484443653960552139553243810430702677583307648387741560081089666075659460171770049053550722619474818845293519820309685995176445675771702941987289177471950618527499036833003497654411479034197169411765635367413683469806393587019153629372305898664592772217757325233479818175716587057239130598899287097668021640797446119847442501615618792080002642231604052472502260230314885607959931196398752166576205498332236782853029685020608824434807741721265458750967437350374973307280829725280727579707844197653207447808858631360759733347995809747568850471841798940507897015206933990775502569414689396075350333332929899130321335108069139610011205645442734567888529025480080426768801420047630005226932681571208077436246604053859290376154310074582274069486221622219212726002082748339700852006596940261943023209961548348722958307235675271347620448431446152125460992297834640352539051421482945961664645894855658448006294562336999467827015144943924713442074514795563292810262419078091526145403600644853331093423191467879651652998840020795204741339397410971778885067942714686895340881931769942802315741578539853414423813725257147648713985421452819599667059641501104641950524081675981238769127228004924423059494426812788678007658007037917136435194815656872942335522013836137968427761751630255189917489305866266386758150153457277550165566941834902451700201884447412898658754546204820303319200327228555689928229534944212742233514519504281849685447309002710667007060545928807544357817014440492954170518064062914698103691852763212697896337247835033150009486330718217332017335391151180052875804933355638825222786825302683827612535839996697726145270306616775193200223568051486760008636233117577841755608041016014075037657328293863161214376384237864664849286568035518913938168093555417756954704185793500621679268330513618910138090454022252470654377636597865504193331422636325044400061961416182992835968111582534811183347253083669714408385330211538626271807884891543753539921693276858246673830591512254382870082248777493971543612873409927046669359996458996662533410057874148957753712688830435937901133635956781482434319817137956556371945663541533047317815840210138013792164266242850140470598229111403673666269165746978189233457922399581302426430851921269313258117411850052328223726503294741295802779824352117850012034002987034012699245003475098842259619909067722645250617900837449626207484200576602838128975219509926450206534015335311514186250906294159322535636762242684129011935585212205332041639012575922111192237856212221537095990772096127327846431951868201312590968864843635427880531284147514551702158454131196504454478039955533018146267074827475263115597526304082745631569020859360595229088846118039913584193953399503584662935289343071844273177420671474478084224413415734212804741442264704567189058559225504625213422398623159324108392157221190257622468032494032032093707634915043877328986824572540905567357474061847244069561459800614551929387136484409210840635105405758287288476816964681687766383668967081692462556756172847564357487618982174650235576641278796247203632118884297870784621663849222115838796100239286871335137444196428936281747630178367814056706748372006614212097733181168630904499174932799440581125124277603074387419683976080039948095254493605050757176772770650886288934948189392833982346694218321691746083350261052705708016212682761794848413201128962245499887627246115163700507205934782557671707586388875693770013369083824183597332250102086653048925209313975269339278842231606372001529324538936424639678225908447352370270407488213531106659284372802267850790219253045442372180176899488919426030944901265322020521687163144667700389403579827950512310767840515831377253616041722556715637085325493615067710593303456112032765329761355096931039923673469143406365190905227383796170954457553236601403326788262679665269505133599231392578045568672086130154270164796954766142184672078447364166361898263278040026556133166296418170093738240931841805180627839142883653397839488731934463265300174704372550750777275199459711227105448941104579934373809634645747918544485015968339683627980519931297178070876236530602794566012267465465448663201834644381003891148635623461806439164626065278786869142776064821187210916185697748567298451200298647284031718937007965836929128915959730441274104912360748686112679179806969760651054394559952696561925317877000973679170306220728425714665601130156318863470671349487858587721283029876114035269624471130841166964605134324496585024288155598515967998598684178253876643568464648894363098874963807070054243269865946771457011920392868686839945227956217236431025091663627811455895839001564039142257708015340131018822988909464442155544489341918095073490595702686610967066222108972615222017544672857120871690915397902825057337053873239261783175582359200501019914590043593901757973851127263868227091268787372208899664584945609635169524715934222345264438933528515986005601486602502181550593587964326349810722646608443658320295941228117441170806439697180400574627351409940295157361707716952918709516962292207656101128091774928740964251349766098996622158237337753063639868002018413787684054297566965740872418621952126462228319716033299790218898854638682806306871190757319376889086426496582304600864843115027142388257099900582276043956860720818226415576482995419605042241567431087037842592302333511990212834238795291220996253703093639574623496818229876743437305825990567355259459408642934614920280602412109579564684595059218205929575597890051567326727129932952012527009166405043936332108985734877074118081509022457049478705814954540553366705018065486672210474864588657537202653415981841130689553811448659341260451096957268255673520747081043929345754439847539375856124304455024256025288113352842780699191536866625757038214966337387762802479808631557671220697879119520894505095667466614407286796849098270372041183363729768783836645033557014749413867680984707037102826499606693699527655287088667454355283787889807956758323030249403495347193725569637423735553485660947963712202810739235882679755218497407128850836202467773008340765350753340935761291255647541525968309458186711973568008784633581806469085558063225164898501159616369494013333733626529527612518642155404600127364754189060980147414233670055752904180318780950065072742792826540950979556190886974642497330322708563487788236390627652843569466980306386812739743076149791916447167416672617115454332690746905757739082957277945589822393053829909019704831319199816659113819966652279147926573277402239863002669347760573427492595776665233458311256469250071874780640844305341869304583636260176694060826974398466936674445423407652298596613377138111203200436320347463249442999242594593548806048016310442161982442122286081605029668256760364325992826589672419111121451511846565782736817253934473043776274427942276763074516424550240527281329430031368036547677088509666342632591829114660741905093082640783120846953421800567918197604914981150304147428654375474098774865430828508548704589502684808850317091622580719678651771526258045178858537418103906560501672155424530018432833497789305046214247303964274221259103620464538957515354974265362338859473320619640795909978945880202299733689918745272507330723480010518362460311503421719515094786900420935262800121620805392393492945290889337381405525864636899345150010800319109925970340351886915957243682177818498980359621791515555579639748687478766158770528953890869256977494761613998512893548178832951774212530935458149788556154454874077384131934578486414034166047836923332955376676836513515474670956277857462555333009424170543479660358104809935897359190800310550477616470466737943669662899230173623375351016198433031554447192458470814068830465485821580990666195379533833338571133349075632134235893770454092893114142874400157972415836613149526810817255787755010057122304525125086516665376510965923443673220638497056338212971966394433315755467135697695607134002683005620745012731961304178421671123960495014107569084542721093028946176427372891400355583011705748985649344508003506873408562568483682635579727224387523461901151813664611777593123845196051824548822190707500623338024478557630968247925915503209254431487401118947785587130703185564728238189247550312595213708363426894343758592633708383781310344353676485090558615245083829458169051892698099430693940273433744379060088496019618241070997030825016984394764632766674505737180757708507788677122472142726665838478865325639948179176420527675846757470034183561924027095190718998543206766872842949327854248154893165114180823585044573825479342485471090494521895214407811977553079584217243757861102441413897027313671966940612083570704250196726877490420755028663508813484204801161380643120776246681130886126972334010328654314025971671593953317000632276522945056703282307355813289624433997061817675602395812558454590400764670887407279095414609127428380650031158789617719855054789231179934996463784034985323497551107505131643581553154387857736802570017317487160953407401020077186241088559073899876420316027162699384180073993970657634524386376457832175550927560928488454714719188196982831453954300912140162442108156753338843926692424089246358985972859409895167593233144917799939391765762663723785755140395491187307101199845661975364892246601962289755141917322646809380565586324771416851590600915078958704514096846386606468105466504475548147823874005940045889645561961867643146438971978950435565474846816303786719901473471012767150431486091000716863720148953813088702797973943672820742979750525176420120414160405619405429134831101723947513675212618850320550335160308937138414120399948094153185950951133531544006559386516186165722654552843549735877243529050116818994504555144827974393956238106893746731975186558277298033619937769997401318151818305688221620637510224582639267725828638755410343816201991152757741209407756272903136687030140720322120201401437912803550811421912471028964455842008269749641339759538292908963498312029911926996315942727751141169689011898915043395615358395538674747573400683759569169234280145343744032588109005266940289607709218162578581064574238353219114275090065628605330494867736630285068894502510809825862779988090277885150027061301219399698591937800403501921730735105623689733399819722658818959624661194291330608667603192840857788479690481927198858882732611193479148120492716621275883521734276629533948579785779568120005302921505398559184622200456783013683567439287577580075182495598410165134528210487219587223053994240688188294567996712980925753923318864989802562405122951076420207142200195232052248552638045074158033131310653863187231377768750805818362234653462291707135174000697093719068368529170048289137234538428495155438005819869253884095502230679859762212641929066827067073552652415288511863331136742037598437719688706770248116930061551899432135151350873614431571944127847050806723590296564448817693302918671501919908416912915440758740661727661567234462119774467677434886271671412209103096505286059427825291182983920142171281873476699806728085507865802640904076548304561003279436130054936293981950073976183477276802586702197002024239765225219419460959619784429794085449204819597199504274662105715572007096539660994970123307755468042192781320038723671783827210358020939115755151049628261144705893988247889301408537410880731024533275532634288270387358460611207996267748935265598401908206788335703288747803249105516597257857298500684454113200158746057842861923243384295869934883129280107318681405961597671699221534334996489813831597845861382522660769692215488421783050501569740039494934202843489608569700386475515916764935136720336119312939958403975332213238718850164194007434644968590957593234454620373061373624396716952673584927167044171440961779792158130379427891796574520243842044706432307096315709995245851059980110600777125266007265804150015140951030004770711995057687246320288981560612328638754180398292351839407579613207365022560593286062919810976957983470036083821411994906461847711069099413126307320670513821323244992839454304617756205242337331635484116151283673894771062603717944168764007008152739811441383558663788667902323772848092321955806731524568359602868309070728326423276929892468070625262114062994497635261120918262173499141030566710223279958556432270225818712685703127416183822379200283710523404767527028627110563421952775054323593425850929916635674076456048986744858790038282624165499884865682241419623123075295328781161920406787761471093451329854183786214835148051252887974294497257195397779537121631345582902608260049043631117475120489031410415397651149608653195221996150246460578993481104326434021590645049856479540595511828233194699798386800441859621805119547728791162898268923137971353886036327127502442269386113723547098339471882994896213962395916460557695443275401105841422965809527322333551670327183205603856776660489890606664204009426997189188751242620453521890210064773597402427972540246331953680237745903267378236608833765170680897271007115763284356101470067031683836169471141833638295808190386093169677294150982736414219092109012333472622698439031045715161826364965305625728888543156715204084957779585814327934777664911378380760951435204480410569532797171854908767021598691519772458554800038894387955104769660920496127963978090440874165400130034080305101977211845565233814714210056999990648064647844018776365136989986817937676973779578705271746705513280602952157193905826774290768264083434530693858030385063340710338027579918309127168932505185652571653427231105055394925281854868552838084709357619844051293893525033630267184457813769271229609083172682379576117220237720559868198999402129130993661472741636198636005625557675356784670880672711704967234814732236106586608034361125610347751503651331807369641398055917006492394810835276307572450010287680553929994047079227010767451874892573737157537522619266091224728571181801999486888373498468888880767728978657278580990107427859750635919971919902576899079742191026199241438365704882735267691306387830560802029940957565710722023586883312293267240777374416836597937669029969144724271264276076073599618722912072121052641873702016171572336326547218010980468507675841688184568807356175972896928396281607031634309477595993598475134046510796021102494206101421462435910893461285968708626553194794936320333872632469045083051845491237042879465699084009899198668295545677091812930863047922583408375684083660364452821107953692209176660411823037183580266672398641899795776599971877269348499910690858843691636019747210006651204493291384099479381727980280334929020650925262560513968142682692670524492110885510735135227182257341441381954900592570997376293235960706640916234663936433138585423593185335739750749353614383675906899814727330423387249186923055367503335161151577800889184378303999502952468267661083829808253911649946211153354579557879683730852463726748703063258682060436140881455031124093737863818315982250798669921083624784451820927948941706821950654346481890230128361465604242809527914417189022723088837435290863818840017026528402065307436319608051230158142105627044348437097020557712202490891735724971945114596905577950421639960415449675149095170032011301663549600817849248721172220492658678410859990506198999930285600442100124556146978969598494374541958488186310728126935433981937289129312424243681549593541416800790057140925100432241789098708468467277963728593462591784538244028207168750012155460264189962627271290316408287704331051660171281581110869665076547712123284592462435726965978710886895737261050975139310529148383890062929274376372984466756413492114641687906924370297595442231211832193103303094974508806044760245295124885093918546951968669548353241241279786009651430410177674029063676609657899534811477791339013913907334261526158590440034053423330114935663386659279369827020522878863391281579142674816932177522709929049628105573144333586543512252214689772947124150664442438940861397004679443782139612725975452331702315657925439881756096661347802399561140475277125148638188792405175709053300364569238666384482407803363361356936821379473098871433566474904676154083330707096091685797805068150369594800868040893281315253871737815574645280225753405055980030586618240106171281480272665358157798665414534488674925064179516550733227298440666982382778142357464073458369470589491870818215157321876349824689978047858365817796791073464520358026014814591486684058170728899686213127544734530695031305553783838860514640776424204550087106000842317373188728082864699665311622426625839295400088735220536202278213804462883973106887927226503120341589901184158500009238745588938982316758441728242092123507537529532140626915178458370847213731851539131157722778761168102422931722610100113153542123845903568340198869446372362492455973251238417809834473665675212228367842234600364217308728374539472577937925614952587954043709751575699976980703939996743563336373893970934359944032513406843103188511697014241205618486676096384209500235557332551093775527065438731133056349788825321973882804157836116581725277376485395808192902321091289650680001104781451143507507332382157375827159922919053954020488921623771655234248621942318277716058517240814900913054198249785036009243811762904722067349377776163376031173458302386935678087476520362089118951764671021417123324592815703218644637479411144235148119396817973838431100526861158392856688160248823744131553121068801719786485074691783086209883211806623313221222779276907016056299973113853096329615250278658123707531030212958520482568507805621693392971716228822800851242326277881206336850345689915262918543918444999903869217750545201202880673738912392790044359239200712859243232076943532821453758623283446219648387923084535869673429293891944336483498940994508418511252566974029499534570677136180760150448159278937631511630193231229571908805033398651113992652600506012711197683884360855673724056229740371391074239519173144494729776909689222774300100556075611220565540988643954821733071904693634745345886896368814699228014349346834317233182792063475070195265371515218085449319549694243187170307433095756915452027717196834565125370107796866983229419279359823520053826546850059841507758942657313665405107708837787866143180776812955196016645108811772671180857744468353362983965329531579649287625243970274204746965542441327669717528770199068763306048833621403629937972382493153473846981337402863871979554067278401859811374002353449956310160015611504772443082491162737648481233315457290383882710859193019142867485179453072174658856772463293041882019716786603688689291215856727659248572641407112246205515645683580472271574601772295103795577039738934229386078551097342852817024386079425456796412453816177795454007192825173443541239341330960012335824384772701269363262349088993507625484976349863382103542260064810222099506465234287044692807442259881593428130724656474355842131643877300940790301637787784540468258271174797574031709667846390438384117689853965669126225665680717782729038521322532597722266317719664190382802092883155955686056748985045117512287680968926043129866173079743038222406974235412917731173074000266945439955411568697698779809513564689836686805425898281966609856054032295953554097919846553574719565561358649195240939413410296199852323491495265216090586914408413016895415418396660661039320552968090543415875582071153709174752351548875857054443949632328353525877409841418806146323776557569676014217111649523553364042626316635503223092677760290949998751282876839295561421344893623827807550281186786685445288287652160435320852804640387326101789248437611465465030203117982499538988235252479991042911118861076258097808336629639426535115935377020997381842149060256770349334233016780530776973981390000480328268319728197536732829889323951285325265252907055924945061850108943587796010576290096518680103395628049574903823260743445805035250192719860222739082208964397384733885581481177454288944657252993207350435681840463430708532015143768583476629495112195830643064759367415504425877220191775582277143289561175617005785654314663640860748756498848924558638434936356285962836587752375594043077059305992899485117067411052403619537224367521465638902202288966868187796545308197072928614008470037800617241690340428326219972350001018130813902557942992503527253446558813159111507378790930032489891830560472013601701279325580003475653294303046162249477920276013148234202725937035100001429231013080798666651563710514130183292074055574866285024688492486443037555630925102749046067326580505057409517503001524850519177170916413917360303692333715181689264953416585420998296891706522953900553487646234202860818880372531615702036731302845584649598001066812376382260646100863113883959970340706225073416819710735573344161695161971226199907032585251614159488397971832841626007890666116116479809389806783120547017759934751322319367539403776829542754074043950520555827444742336922705192970348007439391431993035530336343004055946029454524260212672304868362553421993640943463566815728676560686723630972025843446204358598746886131877422030542767658162313824511949885534387464526082730756832210103864726613178762021157486440309764576946713741054761768140655507983609363371778558360931414242390288871927841025329365531790804416551166983770419028519341488618499240848258845041661153320920270782253984131104599842596119124149803777277052145364507508077696951946987340555220905697705463786921802637765821359370363857923021621405712054167394224357030042666677100315550670547145484979030823523039973060865008306368498174925115628720596611759214107626347475813057981777766872071708627468912544040147977471687101888640887669474216025300697230603847918038546087771307374571422500064159246257016113167791433207648466635390897894521727610902855715429007099017636816142073471298740332908741236572793967086969382028559020152919624794303841537223113405113686169936641195988721465674238113924346791395465315448111479500215352774510554218241632323673727895718455600088467211105130225481058268185073633282746057029954406761404991535909040564671372421354675752928911418660105178192419651151175390140980321553793934166009726866297750726582447041506529131180102573977525569719786111028664090690225040368187093227922045098719726863548742568112400047263101521240085956023900537690745714994939458900284244434588746405372896638535924797066956032732020410302269745388342113690552960073236542860615548772401039180530740941802770470250458458635633673553162842714759995919085989368062407056093509432015959514735678255345843959898346747466695650092263002416021817142713071964176507396249524300150141963196535896737200524044171847648779117584558865794331890612768535216368512848346544121819461354105981355101428732410594051470241080243786147394991799895606374539827614030540087564527663476744711824225891035645886007748566715397210393107221762456824639556401304862642817087539121834600848466174711484535650923897402189040264394281061721255526411368070859286485527897377297670423688960820309577967277001263602991367096095306543526179106995116639915261017813418573706247241229438455155913676225141502671403041429005704990258620801181082308032823496467961609491110559282170536894147938947906773254828965043304788394164198578546920071855929441256191106617858405876014537226429958130722989286280718687559527171460511641549168495074507818014103674235400701645761307578741163153534650695256718128521607913463612750277852929905665230655263273123410419571841603559514336004276243100652804816177474393334956841557192789917158790335658233794882674747749530637647041124803271300096277581611067762808022961145707903221503083424102309731494615122008123414573862603171801681427085534835102979802497385740033544567625538085004899433092946554262814980864614135129214329917050948017755119249009666917459674038664062570402052635714077704370001216387367582219085229533117771402759991264455295349825977508487914048090210106361210873270107603370811000691646740847056018844325444391824482899432908360042239795561566904545764107749038247758819453273751259846557746346273354070594317684845303751587067058481939152261590271111749907502268749236581399499730239851169686898028045497130608629787907671060861861051181331616271086633323226215811150014255855230325804081791736361413160766983107326341343535833327138373309233337376338403876565327679714119668449219400907123639229286978870849578667560468782704420516844924952012551772627263955359407685742933502539870226831765897234630291616459219560306950096252436172993167655594987058628694214115956431886385727052384090313122445349424886582050021148484908051098887345099973157012171150869575382839872803292616092704972057713570022056091104030645870723089578005422898224021777608242537654511708313423272149098924587258759576173725512642884416333616145432035657337724770676377999928229532886535950614983250105528195725924906828021354981086659688760733346856367623925044147626000149081410989795371858292043871207022277798681483589244968384413255044533644529859390555641730278930369725240597576777394040241193444993488631742514105180094403826281981669685624736517193431456711974697425706874225294509475851936058723580709239101413087189839077335516374645469635678288674965558214224225184453653451332454009824828884021472075747019599757609583780318913805451226004430647442866881314043736390839277414594375661693827541021194751722820049567757200411398222619333202915398351195265982099945690722124653422572174743233706401993822798978665916768800824964510199495724932986247120794092969084719565103061741520988027765715943468746502832044709220836724840974702768474578220126538417955831271784037669185938032231665103599445954538175774396982787890044931451302178645971190830476125273491059599630828513451307466159663645358732352784992754797376742035073083999344975243476493684104891182560451874196561481301985790939066294852552708481658557808121444459246411057141119704757182010085888619647979261462713491670314369966119487634666417812607962259428864538774183191845476473388089457936097768567607690871550094048333360505635543966814474152595670211352493200498824940881911497557879492089023599779215632879074023203321619775335954884864648964131387721803307336241703641121128784280470773913985834020977889523273581693708853762734963857071764486133286768862232754763442247645802215006818197012797629588075446432994074007495155677894383396654158294159884646192097067138042572915684557755735716413539612605197057420768562568789530868965623994747087994270061226733236088139987040178937333225194884680289669956776311553698284029753549070840369557262359201516126826760796564833855353946181722584730816995259556238432690426099301836269840217167888883410399232650660482742625559045259754011588602437735431354669099191415444837082819871588311501802128341321104682033021587309922192710047599702721832924268039564424411874386720061685970126726629291876706477624932381494707745607176991799857280181660621616896249925123714015821921012380387084019477928085392054505527753279450023473912847932632491011182689925262780839430539935699744790316552748572399099872869829232615738960463351936187934044601551150757009983707501035626293890748598120010631702768194750061128845068665996243089938331445807172848592858594868219945406228959993054411743597255060895042111446856050124351075233766490915781944211052881791984777955152453952814491684434881124577188296173147414152466786732817785826488641592903043743159023022645111762745201660482289818838786884259170522363139546062156778112522146797441881361875337963399635366313279453490628522044067882807496252643014766947031466894903517161469236092403858100286021308485067613140695067935508044144060600866800341612428306953513612752964301768656539081333918080408784412894522946449115178310262056871237956279892465254671872517806580037482598507705755274696001990372303172746080396629811648177680914074183880497495578269708220804459383688231162305512164468994855930460119521883834200624240971164426703996022476959447016446073951759201820699922726374182576948722039153503016209303928757601057480891640151609833022993010491539487338815686557601201964475090687275834574155545651206856981640731645267296751050596733383804291560661082377078474688791185208678958548922667619816419062933065087434176877299965761749987999293400709404309931814341335082883593232694594798750123163242561124409768668069389139086762861431729033497569342358141571837888278331573886464464008020015328375503401709291443233816460335391012770192521368031357258062915138888809994743856159262803713682962467990697648356742227295215535955696904392927019901330503164210796911439960322480234039284514429494754954149606136350200806397245336854142468213490369814481519776890352377353537167203132726620538397134821135475258317650804261471391555652606105955674613067335794527011202593723655231609828980331927008482337175544551757316799724625933900342602957544666522362969195643829311862962276187263666809392017732559553840563446603577912250262372470751665063695395536840639774537176602691346085354091051509066594043832509981068901047523774214193959728583373181525637373608479685263643624740594109299239731245125038140871641536915983169727056223286326970026741035917000707383408103237511949081377527606223309559353639485438315512935783540329989752930187002215510993920186561995325221039540171793347000492843079264796645058733657292860002847155560916192151094390523351893041248221005915905856750865946901565236087922397993983862829432950739441572595582155826468604557094752470111377034551296880911234258508963277333935293494736009061340240158199583053825539798281683255024354106558853674920272157198602886741849616675116524248746284999693647492875865994082266189313254489423533917273497762540882291100391881942523312968655493285210149678612078388096861016376350653137213224322269842228850705153706353793310481100303292342312618486232246483088014284552668962786936089227356171182621113786456596423877883692836703238482778695295841897580231841250972846248548943899507302886831488623761354593700259140575417029394357861905686729971988785426786613941538943298866318888749564429853920538417851840727843963945983032024370736574825412172193338547873407831160894175966181756577831048987790813897077356651686554385235136161345695990888759764937572020189558961967957711799931038169402189783955363308718379361215156757652266446111583885647826829557953231747953290457056724936264836615144766172039961760190631942366770701535798761716139428339876193235707073055443148207804228616108926690637915164144192450400614284349875666352685621412803548127548964618659982603939806475238614080331034616755734100942731519663076124664958945006998467071023843654461939356293788306191845976677365039466011170156063305351009990761164113175680875881844146360726552528404322326154368369367105589741550268754288796002635388611337810871761664826476821666768796691179508467696055326408255767847075566122573852516474001881091821924888648420965831363571610165200922214413566092531880464925905041513819523158175726679230164402601475328765881224278616985522127675297992314260075055192851135988644244716323582868249698309325722557889310573152072768050569584317736009047693637796441027934750192567169359398662175173058187673686678152746497416285867278952412186270095068641596002365662148372372504898830773600769490241629942336606788928495119658378758867417980414318135416232418341272988009084167932733964195107121197594682114412896858433110876326397542190961941041430397194839480988381406855685479601360067115508977233191695947440709492343760374505518269836534843586474972530702601324231583738286108965847727492590101760065219928189709050309453137475121358722570483068315071968324443129256956496482563548416486986357542266542610667948323020860286262858074988439997624617920120605153910270323761629677885232505803187649089329608126056438372015400207217772107899366276332474494701006961641491320647033385463016170005371216380155250471172055378092271038676629564410167012252206261349642251503993300008942917614406405175423075107875331636822159724778048410820066783688640772287140922910773274929304129973002923736915636040220920268176272479739386176612788710449271362297639509425021886385200055758094103022915952628865877616882951434206649413069444133815582493731887300295203956568407678884281997199845746766384032654972033835501292983057981580434067122718061067636912553930691648465285057488289308842696865754893178617342110314777913917721409279921199349326124850258713895398893131295683503039190147864343694958032499634469058469525888271428479368268369242935659096212403622848481476007203942356360214013276078122436101045776507800822682830859052054037319180111447026637519759848198254108469934248986723578434119275919929655384091310781302337479737338116466063272429443184938824104715319557865047083779447374882065550078748775308948119222842137275687741258326993748534833351374677054079644151888078884272483954273650160695516623535907272117886294359720490135382998704950743244339152800065964963015208511065971763832901927235691986941924832165513529071095987476947780990112293508321437560222028155146736889115021216181800418742915663670179281615978384654012712224482350984850565322649366233249475482239045835443248850803392592999293166130289634187008814498256152727068683849236085845162972844350601096710254200383666391887978478862430692596762342941030942213662284251708213925972323769724107608383640344504137990094575855090272987740167828694778298391862299394407154791720925335923134731992036835032400065414075823953276331941609479405506702735110214497423883004317427115932717524295201843518697810466667112674633961577289973079197580882872865353065432474132570637831628938675644634414067755746538091944926008866820271391504340989085107753678009947648752594763644045482786258591549043118463041148115134954788394898947727045476038743918997323761430645275306190803675362708308130671949902941016870161658097369048012247953126973091169458710123165992853221063000216504521921747071634730023785210817154652304089093580370327084535570461121079650447932601413433755204058558799919564767851203360339317791594945034247132330751852609669342507438187160188813629145934206241742303982172561830731245843040438140703999442057359343391874274282072909243952472556539425514790107409834493532891594670667076338347208850165999188168969140681957925649157531228720151585788713624451359875608667198417845249188066544442741417736718793591827607486918650488092207343068834558028048601347974375070613690756451757893565154997091586974147345935703016376288431510591021161403923486498709942275118175593434426256793905820227178146671933973193515025386010681031337953254233141088366879964098677508868829815473947087296326381228284982056303220511016999383368641330352756175448438119951594758539398098351016620547667444487326505588241006313439717029295312157275816351761684908203340048781175244892819770301568611851374689351418319682635747986177933961617500654443448223402565515970266179409818671024477076277586681443762204673806206710260086874781864555094659482136776222239449781889989529077675158575001613643668101150375020768658163304118935708878975356748374742124154181664485453889506050376458959722159260001552454954069689516524407408507347067676060747280960738651479577840640855139562108153882694473007249075207680860447977474640907055830718770917294002154513092092068796017358289202170736752169015264584124312054183395076067882109591862755461726793945115821469202030383656891660035442141212177250169076968051693377846301951389872827502606865591983523355680908161340364764224419920419197542826674346209409355564935110719550812347915506529556629321713667369848128492917266626010290656915200966198247733650498510832675112326116081010981640553591677925582425241060276806771288048008977080770157345469061213839215204268283806448463541764780375582175414746200239811774136464104636107394997064146540806089845953575733878981271352886575970392404798176106080920336510070892989369216910136519262509319927850019661321930724507743127957567520258613267243528316978672115298785067578212582049589355263429067354989353300485025433464088424131079803776063273617355091581271961157594056727676157942117609594628150876204304737300773629056039183773413750421339457423380066083349136075902698486935879214040211365656209208117378331124630884311736946547975316606521683965653960376990233960046510221491802480676097517595106796604014878873595606083364133656930975997170399625871489880443141420068008168677681744346401586130506343611695858851742676909790993804057667241580582347922789978301219149895956595140479923573578051634195549043880763176836363260894861073837948885454090270929689443544246656601199853865989132045119534244506708105579471255649724286608152852513800678699769990724942332467032092575722256321806435241490617366043261120622382736629211366209371410104511739028334138198722721914389248245053315078982180381431054795905289579131147719769796539784425464405622337036877731098920771764775567285478966424174456062046178831747036868979579259721086092821312568767604115702123161084272802669958734276722988021678460286299500340855807874107757145294061559978728814436602677299763977482992813865435831826019825784239376920332477612886253967782263787409420041463237750671845714046613500286103863162521596448716006946669020707795915912472408437129259384629488639337303718150858483846906785339913664043885951351754014950238026778881983391649753612197726264263631794335138461759014448876158887800254160598613744952727601030439717590074555130330060295285427878581618355121944149733991097784826428283787008441928735837064518784542235350093357185076270063355525977191036701842924665770046071033960979387145222353294382536694216501569326829504083687947152546752210057013424105179083872689861543979608294935192471824063922659555441298652296838733398725719383772012760879574257107981854069575398251369489921600380658214864572319829353964078819022090957912131324448890305063832821526853417226694662467575105519007824946266260217429953745325596882851470824048379022793349555580350265938326250131632324349449374190293907088357326837545122447163268626344372574340694443988155324232452541878875098673562140840433510928591945201348502974305906758293210969007324985354117393257403910554727360188968843035522977226052653682544342214844394023267684740452492007428410053369834598800299028031425736927510948973371973518027220389367530711800663298756138707823339324811414567746898774600003538054304924463739616364622841510353636987871507136564155682133343929341126435664527581245710154585873225601033970353185995513348053528663647599396324348618193769818362811414792182057648507516516962561456458693629342278990851531123969243995100523363496279272841203657589150967877481515269955185491843430652455755504694078278314774021886835734265768193708738504670762615459005589615536035029559590542740246562111236580078141445657262794703576423637677422127925167220019432722719560863122294676027740133407721855180249741881482458247568564481197087851174292249426717350093882933365534931206676867762117233097914626136639783106631736847615589166097249313463590315497509522649050876764548351740927535059893832708381677790922631990069256380433319815117549434389368557810717959791820828832500079167009199301027831392153403896341064457525902033200474190257727150941778580147048857618293476977561361828642816922356861638089549723673736488147046625501594032499835735540359381487585421350829916954700619379172408375838399849365006570636291620958016762749279814226463876358138754238321597613998656074107653260820563813182621942674413878461219352644168597056438267084671248636717715292360152135090959772557371002501513435361130120084287029440337373715961314162409904075315947763065132925833668500476393827151202276085558915219386884076793469150267839275731292153005226281370294832598735391613552814077407600154304316397386849418815416562595340849088261167910687708178041686885985834669692873042969858181621487928182234105318678718194573710849294984421441658835371857386804735141649275661418288041358842988538021747737627974800146179122938832089756457658657802585052309466971302933147844320411286847542611775605283759718948467482754626415086720354690881617240901861496368062352644134378373256253065207777077738660513162381733711683347119110531636303006929625745943629959410600751451950821247447491697338965608676508128162627947792134999907782729584643688965415314312675769382108820740865054256208380668220993753303761666777146713726968559799633946056809173789226892466303744050983439585859930167347498697550659196451762204627355157976083283452971939416362390334412094835143106392264065224028903864559138478621570886554826039157501801384949276470325119022026070004429531855160164545958233205292618633248723942135646970168854703492480356194138398924185212447148775424745422328261665414279497645677538755717962087000416801069812567071782046455170333616745313638118266845220290754711742795507698512980118068129348223698232204353746957036758587481426945841847365360506381612352367507380558743603064715911056586898227675416652386478295444278706344387648365973809158767346844787019315696907577867390869115793745022197570952645983623882159840084279153478312859284214977180158755964574518577778961964121791615246455613093614980992159444815737365120249743757866825043231327250780678510455820578801532954476333267096325826566613100616011329178763206956868311357462084751945711775167056981249905956702607738054128680727544970107733542180386936206973117076062111117365732688166594074032588241690380768335490579415801043512700185520589185491432483302531907456168364737264206381464797736927463826177367145629824072222110202524792490397350768740085962732623107769421911254774144399997788850540370360716196537250344667719744778295997203144005374814179509935288655581047537571258627400484177704093502310160949024258226213616376254710980194661219326500603860035546562076858956296288431607553195472739316569113872113948106087838589091039580704355687381282550483471261404710525879603241256723223493297010088900610192915527618438523283329253822253500700950061841847552450064192964410265113752944281952458988661167639722498778473785616522213033223483789633515974590089661038348845734512131391277548997488656627787833038857191368720833635811074227613708480624074334770708771830696016813183432935265177660962640822610928672229953544956639390830469919378623661123211596386970150583501425155454265163282244339467195343069381034963582914639656673018107783694177874743795747342735232687842475963500408944159069817181493276014562944995641756251191402142218884926036276743552371785198233896031174689587493019898856707268962452484140532916685118659825734294206015184626653447253807828754158896662289098175542620105415992228825678126485862461108250308362652780299335002473975447243459611123248019847888703516896750617101858668743818990246610756704385893588342203971530947643500100612988819403342497454949192501468384452035461508326110777490049584875295975184619170851328820664110664097370422452064770264903669800518859056763428952918269126587935945134776162908741677359036778674771299011285589767202553244670318047863777464050003792896856330451377544227511751373002664795640444347482001749547872189512565573262517328746814508992129839772580754608503685224429187876135137123147639484629527955402815020847742344868735011809827069927344615988776775871651158592211690237236261101181115004536238872951620499106263904936493753470890786266463293284462111386292125898590556659039925040435659329178093407007717313145188204066499984205008068255069159993906686769451122848646809388076111858291704395618027159716573124530868573213658265153555856164718650311185840860212608860938076427803104177073155915137262196916697850045561128440194681493982995820522416595342986163840586079597804232417609831182646893475598472432883658356720165605104747903585477361223494810853143937717315535756042694246962292767461258279946231219149394838434160145251116224486324072305030707399405232037118051148367161797859941239369280544558685871737147721801123723299318095196798471628170275370792806055820744484081802115230503492989788825141377341766873191267878858318895182857191956521043778576809055154970413461168088712712563848464013387382082123115634531413861224717601308660811650712962013238238790761763256897058905423625840191437082448760164240038224498940922119817207790170072200743646112199795040530429208077353619863972294170452866114258364273738161119856117156050809296149336840927213232256987617372952466746620113293495836141176590207815095949963509923721790066295929826632253232997344133013029311517475249439238936901034047671496208790960220578522816257797811514502929450476514224135558842724103688209777005365214585994899088295614142749062858331787643946267561646934345385077124159421989601822261523490885690567173159389290640769732903953624062408231977483373908538375376624433652720765488906057437102431152519982526807578272075109558548186494786299370673742336684312830120278491964809946789067658292240776643818285535066343054427476184145271772252714159837930200165384243971068094444822027140846738633123069407467684794221649530478152489183021855034671195756955663617445338580175959074838491336208858514436164182271048777926414926945138715325892151075812799112782026021731303762550625482528153693767692382707311628258497924569405623406138137900715180151744607034545041093213502446187286290235569127881925404630916863772056128275668358700294910822455810996746179260146326370649640301586019191437200739662943862579162524566730784495868708488021504017049966529601166070368257224664567659612545404624321674573646500334214606509666100278311282586822489660494271382625682254188193247612273824820121724237382828153947599475915407456150383047332534360166935373150021684555101872535301983190626433227082060792502333594594373322753237484227050715183114312534485837996628035600275003732741518536682341738266760290703872029007937931342732941876256924654374521680680254919198373338720264170438544954553210819962685007957356431283010641570110488139424299085220908262171455330214289261656909424640529099794591172164630273180555821757722605097010497791037941615630701892343144146955106179799927793869048564798048499447713302377814791894557074184269674117378976773985404160850111542409320868773058072019901990488752784754691764476583604480066297246922829457606875096886754877427779869380801271582113943073314858215663701091130584018095206733890989537650525547621551115183364652015398601491307240878634416583733632156611236153699592994514367066020121254674126070031186896239784892609329576474637920084484753132326320571814783871127168742605033621774434353486806408147865056729349254892856518263062527906433804177370321065531671429291313150938222003250366349321851605360157202159176139524986565512274757588853076548526824447992961262792151923414690082524626467708200277662271292624380536335049882787307383844474652758172920396485098147983189736525530590778890970693366703799330567693512615687891684174104676202932272274658118634633307979662155783694022430308541051724314598526709545888209741346362692343971268611531078646300554404495932617932328754156241700493584418191395335907733780026554403553753893256806221965059501057510130384179713049519987237016973918829482577048257146636277049666962638152467770003832342925076435159413778038555804412225939430417145803535641056883816240509052709079702060132763375012070194354602637814216727488963729179855053687310219703037339618929984118644600610719708959357414538984700558573084246726734098113070152846245021805009957366783636032792497175591557153406900992191597830040585528708053183408857298232594000179320053095060788521196217699803218737621660792655677776356570131023480100507633130943570290970184487671282232320854679771978956898446752756251687465211075028572123922558999264952405524479173622884283803506118698687502396476001018688583596032966528704215843833455698593854564090679174923650408931940693070160610505191750636395734348229295280630053756801316896221521538152059980947209312624946083571108012831203310089094590818271611786063181542411122765328273516855916978091017283921889514561094534713047165495015518968492047532330165876462328164336120860174657524302514421059106428340904609520951083188443600113224083978525707063035934240387930707972495993090058910970209728738193318874647757740290536579851122632088784660122366112337755611424696627783671723664365645085021490250624506114206624415217275017200431677759934424342694085142350750663389034444848367016570908548111295512674085515951864129158470976432113701501578847308669794463413672609277976329259767376430834271354548966169042413339577175863756927583823787129216144772545077287074621690944698827725899204561395027663488326430241048793457110241780484529795841277301005254887497946681413640493157987424958297711609003951277696761851380878750960940394361341839150076765300310391658517749007633521473361777500814280212285257589378726607926664581970354382764397488919315523405354583338423864997565913683060411871982740633580945198720922953162093552856502584931730863188672797982448588517243808138807564513339180537787282048855750006925086939757768690054859796836954544104633117701847917914381686169965603018262760835357810717774152999044103186346771939860878801947853200271561856980201370614225571277796786281861131951546254864079046280028936060667768402006541428222640990106041024010605127890485013570134197997458811573378203082853950071166517722854288910157252757864780051204457391076660142776283919116261597174816310285048821494552073945540499536273252147974290201392073728320334455813261981371262604369036306672232657048827911928345149928311201719890775691768989891035550039882738119660839888115468872000148890257679797836428351735586110168842134398879080449871164387718762909973698202841585022216649952460158523687620468130180592364291789403938908058348382517321728465507657027418080119609403598443300981311327092156508266026062059555338561563239842015927456968832522563143527167827016193491747942498393997857821732119301096020145818640047440520471396644463481102540733262299793814755583802661846628471009403954951366621835793231658830049223023226255029464256857522155354518237533426486001411238311772084587523527451633332754012446376947747927074722256350689947228345471853427988302262951164049280712403734871997167488517944563092604948335921604977902438984490386966077622390818519678001866048464975398637784341101448492690422888495154885296449166408649334370862665522151889638303805749883382658610604424765988477163742717785519870799615824490062463310965197604373612717948707493453782415218109294958951931938599808155694829395013808615936275173927541434898192159950431100406635332902464573326904927778175375272624902142444103510604194795719801529013668890435300834452600852385569457981306505639992717185558562563403350280521580978208492522348659199954009245440460220302331991290405718952309054409155414044750131951606960700052182999513240583546796675751076007542439196458302159302843619945788433742081233389460509856574232182438757244339036407362237979709121345876680304387457003626103232939090763554601915222974456250096435354634308537885537092649944496907224862890363209193735959646186613293936765548284181456550873771631222515581186161817257827939804364893385836512027952378519457130769217693345118885045674287479553489783501223816271704193633798393191919919911700157299630887742907633971015456887795516432341446256819959190800888160145112312837875436421381441776728481688075572682431080375103692843482358440678445597752253716646149926529519838077714247761902583935002748648575885129267038589519979716778556657501217810156595281218749006069771498163254005860891026234237069948498018916325427778843493674293580476368324637314251233256995120821063628057832712013190063230713414181219156500274845542401355584162180990129255562813400602659179983120507102026989027164551256833090334734130917254220790751788676838493162234277031631600777579249091915227223496739967067119187527955670816239902000667579331395255703182621733770937455502929900626285923825377509582454228101571064396723618654324863952444236378371816584321685937881288782064928702524219400873669059236679568582308965832199797385339470152736993846361565263449100032774215372799924850772887455835922436520561281344913469467119798711165834953147338539450923438551079922478377755760548379266914926778043302590280328150488384135346425369774943826154704031510014319615662598905536763375049920818621833241896378282347884218546245314154860633307553192589297856981598364022215760409898824289530319657532511010683536594544817203184005043053234339988989325470525744815143610864914602568133818410356817032125271258250234048825979260769269244842262469386355129880276447761049626077720740729044416279988159113665912788553333856253650956643489516707843586924398865721529283649920605795118752338416297269480280657142952390388440311968327306801957888064750759422333507017119760083892121205859335454497032078553142157027117212912461048398483692402832412447273473747023614414802083806741203849604138906729122051879667736870133371299060842099926154771350654258869025214003130798548047771585062885897177058454725222970533692826742206073890335347453417412909914266299726427533568420170138259068239422646437171819339083176226677073188468492382997897114262991006643709127028781532964360265401851512030492118892580952925135318824513624562891962003890032009012929677115417359995411787484016771709590907835497900174388189692501107756248723030465142614244324855911556012657435923203463300551100678541186407280774120474355879216875126828092840348106285928319159489266701828640355428047792978590831871200827695299602873644345308485908366874538906095040487618621181070221090563244317570579639657007766876660649472601444238132762220953179918077801124691461425588210182967106303853563471495177959328095568687612988717163097242329677540705392614308850258976332947048226222529639907188561973903865056859363098573901398011192585882610685480840542956180924968434057491305844797238137972227620278893850092369324239632947291849715213262057240364019635040839532968131090936065448986582157564881019041701128717194935076571391578563433759751595619051437698399041713394492604208615579376061434838635025289259028288693231300843240923588962377465522526527029522947419672645161638600729421750250319634595852253988581359353578293038260496298698514362740748912072460762895662004579212460924069967957961661159549238210992818361303459085904692944240602983981851778770840196988992914667929354324586779964842202944477890834863432008449323155599218421142200290975700741120052501204377963157804569299848622240299084950141789784890583987305808179749399904443698680483050006118395445306563986816708804021533950999040232067630738238432653209966712849966539749395368573545189728262070864370376270648320905168392536818869573277121141132482945206015917550927286901682195464840914976730741077565701511974380105566067345492409793181390781005815427726595519839046831411957912851648983825008709473664031734441919503070443559141078607442860583512237423985955129448216005330756551593787612777343908450883844440120965172165178740487216329207828698337597620449376304985950292345919129376306558366239928441717669000592784799581360703342678778731491254090083762902333600336297645538328929239851190967004739983470931290544994367683593964002114161795639117262683404913493354483406013852541476643956458449825607897056336435426527152641365839057964497192607459069237908245738120851126802850516600324855555867081145162510896058153977577322154130383214218244447391700146427634750221715705092813932154842832483426513394750047849407682639709345871238159969237474675637624002680557552021439876047259419825585587999578950930110286312738652461366291636480822884855436662279092278768248342139062212198450477123605988164167636839616794499521496475444432254632966244565783874819231130632443907889163635579543943599229867699997043964753626301470465868454923709588230862161995723055222763627664603197692243823712748095677030837898223217321908861738802692177591862461647732520816520855147339819912203352789176086752878633145906329648796266570588187466929533731415829503031919960824735608078233241268366591145299992843951234726589085600103709510714894260317092785119193210338594151242071387723121613668515503105600614781045451027321571721276234629934747551287205091135023732178988533508415271395035780750705959721064097639115789183963651728122275864364920512334672294910590627759469040061122170934599810490989669871512094065164773427837796710853814195668418526000251404835700428748585763621729071777648777776169937354947121060076523724959331069142560568099161354634536370924901159086327210501839281881042757572208735470602726550646869560089805633579782983470574150778864257458987332001264758365205468909426551302025801852432363264601061846124108640828949729500335122056360229069651109132787123692391796715533127575575842932755468263620634497514525206557012544469626310974438521489325579966835301933778855695039109907952115016355218443518227778918808484329578547877857445919543315512350938672886485891235426522286711207217369835291274117897428645129767359356189385981857722274886253156151091984791035754681849053945384699142308007111210859145828349437747482470085580410594271334568997965925130185611413905186996601796537564450439713052952443413903640954587793653935363294761859514284686212183475532443184463349364473577263457083901669345876739289765920197408865298565068650645792070251695196911358609510491156693991841896599987355726848035523763054046905157917001291532400297673015833916427358664931158553131557174078778793679741674756292350713073824836337432474350580855693565902353725397303790052885156685687917142127808843777632567755173222737481169767781706119556397565768050436770084461669013217849402091698704038366901224789338702292329214124561101673360508207784500737911464578847550751380234072361735497770475387611943042467567307584883500622754306867121784641095232692344227947893518380436233448831593105095797358803379150731223754687381021877084317407153266338436293922154236527348274774245095593583938284720369555702294255904515817443391877910497229589907605423566284998882463324604934194887381022065988382272418918033295831730085202882710170245125491942985824769233239216838483241449972769608411860461957130174687529653366512458434631856734362174865023702263338658599660703876773090507176180184948426944952509842732854625089877814270762937079119645770591421261289319640154732028080044017202761248383405815343027132581061275970340231087434118262310882226447464788855408219723171359205284104065401808932200602807532765283927186734093196808748873232571955731714410764177274259420210041070487705426338683657289925605003931074586774782852236777729030210814478117544108139551766805839744810283865664528835200442942705191577151257083604917119093015652390142348468482168040326622460370116319481259821585814863595540769490253493781688890195853317888872889137362494480318030624963880302915255957945940097293928417838497196649124059201791954482510045114561642708987625494122416822342209449090563715170836213758434013444079324338083624996673785243275630884507668536234495286550703295936707226822242726209703778577864602748329552897897404025502681879057341203149504577824588386896633904266953665457905839777038918769637449426886870157850889497410189191327829971374161090988563514235576822383767631449612997276447828629188593385995406046058091186400875336657395425747889588946819797484384770610974300950965559352592623742925570280035331885972246682277827217484235850443799971978266367428727580675648784291268808092042262161454419676900376679400019378044224257737582181138799274562534137407533411615470892200877120855650948085854957636553817195935464337047315802557269959740961442409938351678516388598362074579531873330543833263366348590755517495762202840366358910693108531113485440349270942378090364446560603504093047494750416849683190290038543456254196937320033003125179882681312550495512988602089441373359493137650627554030447766027018367188268906010861262763439947598286327600879964572028829295045155965622501515288698572173789804862730719734168352676982991204588338218894563652138019062333515253460747246262756232483825479629176426353907130565836853012978162837126561978127739557373405129363314792610574679667321924892464609181730316078361194582285250925921401130087614003523290934142150498250932414217614094397438050481195337929448171274667437263684447530058589165956686417087215331990754384070541125980453288252875504846643832734418524898885856503994253295726426971230080991412593799167840939138941550947637290773791596665893975910101596554021372919689791483367404563324854869080802627783810641263554749090968447098182714517519684258667332736321842868894564220203983547122437076255370485961754836577730683022017296709686644619470554848778958379276430217324439309787800529894549286783668606854176468124039227862723447416721225513968691183697170970370777351967785311635161174269379718670830732384002647921836204939348361777083364447708125069279797684882268760359581369230645066776998677593878000890584435147212427115376496052626638994761596099900153288964910418614323053540103192695706838196453459677286521289254071896228893131718214389341919105698959761697361718033932269175234880345835161809507468607797679451116128430596009942703012953968319469689607367424532801384840334236849191463454982642733211838285655612506134171584538399343210151986234734690068354556066625307034414124287611166468361300734954107864360970805236353038337634429561226768171729837146879589202783014941507416022631567608502692549048105507528980668960718180359785907777335764839420801685743551398264614620330857593344366382927986670745747514334475103385029241373264942647600566107683924717724435740171643890064843179160041556862973931493296521596512816273327517881923070302425267318248538376815697333574852256432983661894202741788632700436759765100694978196493665753769378166105121317788961388994777503936528647571325760665429120828899841373080110093491100616800609832623696688037794529424044652275493226935230241451792408126477266606142461570493082807881685740166810086351264760632838900638810098964561236111904394485559004015608438125473878559909654734224522325276912563647044919362910476830346858658348124614162976446779846137449113302649732539869066725747559823109608278396401170264020574161732554762050167676597650087525686744990133953430800391786558636884477967064179673690330560413350705815386518589945130505169918942455939243444047571486082397797094445876829924029805864070954902322799446387814155854705644239288213148948640976627489604548837082593458569203160911798563069240474826029465939606034014157070515169693307834678034514478130226532095992727153368624241884167457209596678472574506556939755890781139869981517710247100551943781469494742081647340377139193324218517146928228297484062490083765128940671473572019073001621977039470372172942084846778611445713449892193712491619847465714592788467257997850397654271442371789799597019021665268563348200451314064680270037532639806888810014795936437119766788882821038643621999679617348860865585376388557796178326536459702920321042016855759685771482467989691304020538175224548193657724045976335526911520058806639762561196339121374430483198891970673055842484833477102052106728823418084554925112876341453899007396852540971118571504626286235844785030665785403776230710436172102116260557101497054584864213310092770379048988413338963216762275816117077234131721808351850541319246854165439236286437299486889967817920137601713195805998758013573551982136969352282019783320069453483084210362012623955078666631146813058874850831983848299690995799536653468369058025043086322311798901776495292559896670140000588301290617247248096738111617655517607556974452821908139511253325662139628846590228200225983205837155477022216522047648125942627139839814806594131070572730292649836978218645134472156696795337199881012975065358663633774623726932787732302344065014096044727070673611919690191427478215995615977202437627847780155542902464716514092619345975555166926736816136374871862304729463594475534273856006502711497429510174716968853335348453852973371156759468222857672723649648690740929246090673524424706034490182585473950106769172233245566116929344154148415642377403096198261313063753635407145366070054009078234465521770437000321374105654419562224953562261468449712758720721364945246791518834702377522068652375034083767619880627453131363728271779023977877678780005186138714590396978039951176123970821950636768644429982637483735909282572204756014262749696726358123061377463562985103705584453228470724581454185495728551188239497460110441758636260189738581224063827357342552939854886801024483260644662309367108450036879069596658716290797404946715537291341168135087911051618155444393879999681908867265400856207127973137380783445974630128237080511049387884471708383794579621312880569791520589912713593702748673473203578956169990184263145378411943689813311093953777166454472859064547598463172018500391993594345503411231382174897877323420823790578722554608689988090294403974966036776615975770846362280308347563544278618372579242588491131815988087773129794318758160321845904646989584600312991515989188418653715090512553775535100436029766466550741448313491618994510660825374005611985958890252199480816826876242102065734446256813925108048252901044590607078203792691809111267120896072503627386410284156419447738366896255042840265661073935678482060434003150042106062620028328718274498680276747555158556068602562678101130108358529087282026729974023791628030064875886478008996810897256997616202465417224022732486752398782293932683596678672618941636446233058452246278065716849603035563514805802827109182895433410384861761019435034921629338633355621444496683866117334841530954036404291444132363807976664021610244139874706542720013265768115416455149845823481048323980189254249332445734739750838813669785390334342118553368774757721633763797865866441191763196595008975686454506096611131993416700345727076787088280536077864641395340954699464676543151080796849016589805650007631543079488127201472746717929578068070136692442299785952266012120325350135581092938436381856365860048303586298043893346376364106500358370537267874914168330028389975996538416414090264334766668780113428894502648373487583626675655072114392950168148331523478468819062339268855920852400873246261810903305791915222833991400104751804276437826543205340347368272352774291777931514557538569991131781366720618014753755696423290312437440405423360114065181811190222718221312756188528097841507719427619740283150305120482451541501698538733442662753748219589177881839538764395816781564760560325800199971430614728974465659324653209868429156197218416459818332317152075376001905144458306851863833767977821755207377177199002293268932247961887642588965183160932069691325017477712320591437596872057185515807855941266300378870359138100083111797736171745488834647183835002045283885470751830318582223944468174327522931580228324037930356727952786956937734273107887659016636743867818010631690991887531600833947615117621388555004616214132229723174076551022343018770751721284864798581397054375899940498182175971801101057766861758171729017282393743471918285290613387850088512175893846897736530580915983112359066410452342686966338500737147943387608644699234286776149300377786640613650399754090281322906932157270849126014805983802929989716837807733916686625616783284670111542051290486212187760359197242255454754492321082748879935308447593653875609381622532769673051363474742149823669875318068595329728546402176759397934702803575466649866755718184215959827430723419375441736085234154900657669262134407711195854161672779268007053029269025007852679993590591501835405593967570137162832059969954188937323444997140967790922506815176987917324333774903905219767636577313958230708154733078495732893637975344712635202368146573530016093921158998127929823412721175680235017503444371304270083306389782316394605494168293608288824196130018441565116732030251501351929606579531244673910972870790579107810384595843480902684770393059986914655351115694785144152118798369912286181557412075153967635474351467368246223500070481004864234744601953718807033379785680231281910162489802706165867693956737061017281184267202349656014252803324994924062938962975113496064011276736185200919231961720837042570120388990091727370133200271395318980997619293248550464675011492569089481741228544179735788490708138907413030343920528599794711526915456740708491063961618477540457470275762928840736392348076463924428994835563098083029636847837641149763169452207878807431650106500693796113055734204970900263077865058391483850838022323730023082006831279909286779855303109519368915439409878514417939464543906423732049200347660642380275833240179969717455947557380228871622907047586436475478835626795494867284228170303189668752319947820215906696968227233087376298652618902380774289195195881863530307592972042904737841736536945573853002852183837278416163163330930750216482692076471033093010108975277498559944978240886340637071965021307924946381024897230140849419287695677430050912983398654524068549407088010461353459695824519779428130229582455747066127544594788491502504696477430669184117792389667155364907772892127623682075743813757409461370960671885413020795531045023654070184878695415265185896897819410719381223515425579476928387391422956082089370030860642563408497712914033711687444905375305577814487728011464605307628801526401797657503779793098418263464762774587200434304329342540299955802130581089892812523131313737159783384360829472798373764037349964945730813136914416861742118147986635567667348382543619526326390591405072268654221551761436192972185371605931698769387278203307743140082001932047850301991610987587584965497702691293159073946936448087755958274923030615756454040494295066609764490338628098980579394640173847702978599576135700720049177249290896096266970200275161965291110880746669686272038251058823178827252544923658854765727972528777367407247212570638623924329736922827044713230744042688378644449609225572844441646095660483212038657316247889286366302723083754578579372577369981600947202290190860710175246890549326266538289613072410618345366350887629411017633076800775022714664307389687190441785648735225705522597221805929793038821835058733496950869183022308856374874498496329766163811990698768558797052295691279448331419826878775253227642444046324636727564582031002161167726358823679102793592197475177433385410982631219404427686338035916188752055777658544658209106808978823147343627189232554750186747140377155153542989906141094533032944136601261736065440976088677323469269703034397638180034031124962228166953049612575801500704142371561425328611934809805525842495850520270332239926362742380753896063990923475452258518775771451554189738059206754177791413565419016861865329851983117184738009512738157393509978758421290599126444338834877135425237219202707523848430235934537045582553436683088350662342725174372577785431644113281600634633095360471778820806423943663008911909173196037336710301226722743201952409742548419413946024480809285446246410366245560932779109521779965266754193120851104224741122170929343147340948789219953679129622751306765704280816099239629687303801002653696700105857233941403774854249030965398641498185605491427263153843236545520080646998235459337575326503806210304298648765170283430597515857269295476356679617803020643941503717597106909998719184515911335938308833641509099510399115718979965103051059710390597782661151213437361927093762679922188422536341902241302328213611048356071974312691046221900772770987855429018500328650079211963299670658569778503942462017155269617382580285086222761324155273070558561833338030810080788021422699709142919156453937034610860385814775888655313820888412925947686229826607279680115659561358868036838703823600766184392544684802659130059889912707518882966247155207202287913243568522362593295708097769076937168878292223872368621725459801449198724785184670641166058554781773029305089651601485641866123852014248678991057941987550211602077798042695376064863854549572689606333597014360827471120731715649231275861184150380037663161686975037670213771271221000545153843212276456153938518911669878871823334700862129256083249475708769150712862193383408385719892188400621504803118494634434805102765514061398579712807099571114690245307014411372867443214690039673139349553333039761271855463501760948807105622554127364384521961482114537309457738628656047893971335868878067681163776992000663220736840582907029173510887227036114659397470411813242712893636273732512990986702366906609470617243212008897431516909482135120154814086236733486762413936468274664121835508151886415750071613390153932425321314143679501153878986597962915979334540354515388483532429060624736965978571164369108705290403677741252088187969338767033772955473281171445324100159343053380478317443798178388118922979990306809225692464935759109787864483750717144869979808893618235640397649202503335051428288458669346353643559913744722467143955423935875971228026846916812960101210649530528662779964993673644992201106358242707073661786611469727878459073398088669484489050178434776848106860714123763983054738954975794385801908027430516771263764016777014721579120286175910755949093179947524584616496732909184115197472965526099303868910576521263027410076082395810535640600815817826789632937783446559979912664707088640300349461612267973066212617202012032623108125276822533206267367260212765238809533195700783187718666091904955423953286987225092117384492016648474535402511832413071106208365176840673043493575669358559618278815326402703835411895151541870227820323130947176343052964113923276580825287563965002933328632126835224806555429810889257264230202618642517762335804710627729522203817779651307717266888114434845574318054823919465299251278046274405820351827265775860917032299830661329351448981210179217410234377800295517170229792437167210061224592449461199656730714090116399519583270227375529067314713504260078459217876865610854696970910202381958756393354893619489695337364176112015856374257753177270868025752410641217465675244414655162501754667348376157297409899943889626920247795331158082826881629991174861940125812256579308025197865665849391707063689029333003046435930424249703959381817181486376276114844340623258508507614795447138983042238581841612734896528375217913769110813898640108565506845418958423227744871067988745390292682361879778225619932721107394428917035179973005173632138579565861369644400130666035742186541685668971752430138773254665919684418816916745606401130920095414291722067357382186595251408042643756702787776209233912418762672928329141822648930370698551560351511956530564344499990754089803213977151672799458384591117762914948459089721652617496113102001811187520612842165584631919681882096893025676059602354688782927599373812248749040884320463971675948670488461986125493090594693549796667525937997628224803601794681140542243473208316405124093497106903091342801543087656836982385903386937246576463659509013958471305470434823871450507040188598834621595110645050185779726747809679246715046081505052300586673773000329056729976574099496815639882581634072596927221318922110994275773919756807327752295386973274768376652689458409360703868806101907716817619355141860486639506360036830758357241423758526702585389282551179582992848998348003286196113563247743415891447872718004392930238334459324387595446403477781956562405451057637539277100684994451838154619373389581222807330731854848020292055203303561009116897681326475716089810106387492376511914018947856363127408982916302938061051854018106411138601919141568910939513147603918715621415784253157724010389875153448407267830750432356132447490770143325319979617811576218902590483918518635423849106347412472907473953510394238428841144080946464449210701898961306926458028873917020172774491008755642590200590536616264379293112033863275846323663653879883990923011471708543935380342854198954981625940409483243490793675491196537267166126489489879184168754217285471287245925114082931730862252813980558975249414656593867238424238141606167130971073061990172003637515945025665427563864383044136684527353105007284803646764491897936936583859566799591650295410936400246821006268537216610265972270977200467005307751236102951463796985153598030181356719931108349868696519420205248430374909108251677087577540730009411806388761374824644328333923634537591063654932884432519096089943517779313898012995598868161065576141710514496316766767523029245978462535171485367676163895656274407223764443792701910285564094492201796392164289781729290807554097207077253480108378493429585140573701506117177106977619298486378612959565374153800481935748561165569324860402666860464720160738461216990110192458772670495831472620173055115556963220036782954149998210819217963817422178590670493845336844111439800308189666922892694915632156802290114687591951304050403635719183331891372504068720996837347581489131125955950086521466347830968727851573555217832978362434825803923567506441900578299204470848296100089795736817665888544780264938226269337684308267376147814379743571184495247861621903091211909675252313435091251235999842257021057985649753544518258591686711657579358015924674143486490643949350881117344750567837976301466701724129450870489243547303511526312442218280557100315413765022190228789954572325091883961329595244097214561009635867033644721088760899050173921785898876904028401945477305423174242640988094214074165632308511882026383934837463786874627849100529629761719520379494990013878209836210323926922706608042910563682670949715599216807367051744557986049063608326262132599069434434585318498328553889494805856258114079897044211337271321844144112635221411495143783703180889424740877011667550439025353425430993929190647300672093398623612025757994928778549845946978002567375562363140265628592389429336229055536377912047522217953900472795022817497275390051457309875461939216613035953269190631809075098489830701465993055021971895775421096370529726240432655491664686269608865518680921525921469868683124492260220909363789132764015799134153879481388699843557819862334549198180964077585889973852173897078052742538094397227716284018564079286859464993993825204359322884799271808431623660669629743870364748061112150316975649927290171232937274715728403066916952374971824661376337839836839515294992253317971178393376032616642717634564937205854867678989061582217129127779380036632006044444957295915604957771887254123978770742467246688272697612013194156785911178974718629666213435083174231231135193255548708925412850059374992596379098768489939164406588086431323039439744550102924203968453956261772875580169861373637469538990824643288955066052138576385359312746779401780198375944622810852958213267921380325414546940381266510686182858579207689033361034946447101639712591207039386685916498491183918753761080286850662001728898749190678082397863005803768830848649095705582498483123399969889599611685267983282240818844181762789327605455159088944993738802430166451988357003530463059828191102423695971635029236994198196754274640012131166210835954367400726106659617017014150638046961457586196238734508592601534106572626460348971016177473512932859383931313563475943130895978282550905991162566067010435862632263253799414848186328007842881581204950969813673310156361670881612533540776354209760124107076417032282297718230636377398762312644046550387504692935989754277738730199594411582590231939170907157734911918420221544609333065207523177293882386704194859299964397023408416161452068503485579088148424460409916350454463236273373915902864229252585425360341641400287317285182140732818155551133575943548284858467938833303765112092773958621209897822198133142686074910631540169521084518301916096134120437200357683741412059674747767785664878467412023920189105780137413107854936909042721704599448194114109744467354364702570514274003729936435900024044621366592264989351097267744170723664506815352232891253602401055965008755822259555705814071560080163218826183855978034240328996776236466102565315943855530351880392365502644917158752936704519569864404118184260673410916423631100867281680132594822198432203671106750463131987507306303041801881965830577493967823574178607079132936338489238736804675260049870631400902717334328083929177191185748660117367886500210757005478648622815612619235248478185851598923855233844004467400578152382399845141142075965040816387398502761846758749264850052024300583001994931576702610599909545616209794451443621726967496011025963838764244010647357679500332504244822058735555914489242472491517266873564980604562706416582304467974546541665640346545835794051028397008896287272412681618355046696751390442699295961238025995443098065765736888604426628165812760816588227215418085698988535796565726841754945091918586280969645852084476966875452282200071463063823636148744364813293633388461487656139169972906553740233315816721910557843335733292209610907509841806334530733588524033272265555675439905926461350419818692101052285767499380402183611258641915224890870468940117593180431281318502533234216625764169068299777311143066078697140708760122203321640178316744950642940706391315182588427829736728534491979956103866569744679478234392216069693109659369436711105045446909967330545393170532644471110662796211041659081719491184342660798085409905385803977264506599827257150580516843190182964085004864434210626881595593813373313164253602165250731384156639635356584583406514127892912497828815654774885268724705493317733214479851666515058040396542267071994448801506402679680988026205712699675291850145418694589770404171227290863258579434002203938481740780844822554346530394805691398278077879128452413719198586053832315743263868492507214197537176785437596641183696561852047053502434530579985162048761361473531443525643467340402623064143857214730875545007435611283039420753563922794479957006199258450250799476482158431557377369150507388776008192580231087814286859479545927555233806408416798396474194121089857040058944281215967277606241517458832395205683179331128274718563445446436125305484418447143561984463405844234328716090828251383045055625472360435754635590584257763788432221981851752308618864822410798345495643045844685549085887943663799248283858275422963391477241916604641685508057109150819906954394434455047222236835436446721483394047796292236353761549959986473856233227135448327473757734281721533389791295032606459050684418988325186285175454369187129989883459339348378243513062891076156648072534029625570509913440079217094015151881495310508502556116734222274017823213242219303027989455539497199149459731891451748811387214997038271191653384916595722447322077629536334084744373642106341979452103262368359137936840009789438621321996160907732166457362968233552937898447427072596621972748153883926225275653400025222108245927633632340823193955070685718087627733385405153926373361187478551379587519207822089182999111003227396063089497826302722781237821178894525492122512215851444704077368283456669673071225583929810721137416859435482410623086842562622852639784684243172039494032273516993536638330060957112613827199909750861025538569017843999803290030892481283955113202309868919935764723309236368743508369287609061914151167166723396710910192652342141171148666769485395785445515622658856714116480166937602071961643001284930695527286562831544413881388088201234812869905061549971299054730353857602681757906232213703089230419504408884934954440019590448295985471558152857740560082372072287963963542358797372461264618283257715301208879868271794189632110747432628984059634495887242097161196851034767785559754837201025921908474655141248477119545302430460594118352822990670156049433522919653682668694224146084928937341794002884482362186846342124043279438570914871100476881464034435269688842044661996826764949122355198738252212259423406628236924110168428974191489859426558333663716139779782026889724550451927998036044083819354761668269436217136032960151073224153786236409052882393917258888156636480563372593181809015310614287652806542684801678347018399015228423495349432150294812110521199102899100146802920378023119303740019981358785333753071247333691532846908737749282613923872798027907818995927051427891745708574896623739696101196337191951817529687570947515423097573265523102581609255540975608914927831381418074062910256881414300314104692146524567361572527404447807812208067726173501334856592830351931085769109035314045040988931079598504450023816101496245833684997812602939093606528210691402704486783888121828262358619929311950861428812871257486165082803255682227374372804838304458932071566630887334335922412627483424749798097240170480077110523035448583646721888681855014356779269225841493409652011472036311398366401930795976966397326200916210910390326333971617253287073548772046449969517935904442379335658321394676344834996807763073109860924191031120967063615074641845905340443076190125296171867092943435728820782527408337948663749488340269718653529286252577562621058777211571406981685529828486556839988840300443532724639254185146374759598655552200645192702975494779785239735252034129269487478694386719217022628683646278647367765250085901963637318925224429680843596995242791071259951970769389785277962151163624365869679526905509564709358400273314015846808246584089013321667433607945399529282277551852524764631508284027144853130124376307269255069643313235524955127351085990488774579364321546029139631506108945779748456842105654427011567322129557552230042658148599250379953962704273545661990338645054549354698793413149261917327489789582169559117979095045460554405410408959123433821962313960565275370643738186088397375939055011160751652099274587311471789964297836641303512253442297235487103357934347613335088547632202371187551547186990495587460202611807377079436227392574004435730023845673962677752875591455503978280453314100302632150622559250233385584015176407284388407006985528234687576261083664903403572250527005488646256296061916837347186090271229698956763570115190575285049555225283504086719666090207951254934806275339195771414985717587334614030101214722141854487125734635927014052188866806128791475979681225653727957895008553951531026998981500914210070653147000727138946255850392626578079778998022459886106126663961270235695646672384254545203076077570069827237061083704033586379875895778893561288619609736906261347706498223048055198941335310039551985040969504088669688596487690403594440085987297110858491044086944025784321760900154227248004059791285570688323068944049685685204241614530087467640930104889670670319202095920560475916631031641416526132456263297987737700784141191758786072982174168661111502413478846193264329340978626907795647866991115328797130741184269602470886686074577383316267002572564657607768722141014929235073701997733226557032846645154646778207175150158940738154714754916367932977471116961698716118239460506636652472680775079015468168509337443727394976368218087112626531823813693581831883771872631903169470625348294314974699762468216273748124269964073293805466915543082191556144943705870201028833174128974410487726691497568959649706932607751612055433537721961987919186336555335428110373333139577847780452517723205964336040637432236029163856907375839322970064960061704898842900451343081342057980552488159232033863116110821646413464683692203898942458635725602629655324561497825316524729598278722885304181563957801143841814006916161111785043997062853044420813559570151935073495185144754294824167067716437053304623634721794471822519914112541659688067301809666295176380911078567865370182749170536428294294545645374514644794252821335033652162456576649714187612053361785582377369789364358162226514662318764812803476755207535467773681682076172672018525767636133646095015579138077321695073655037619028348191193720834609891326468247615488739589126146193493071553224556925742599291735393678148030990977613106604910999655440096142021756465532166241095200367031516569507708907581973441884213710053210169163001954896721219363671025697840769406220026105120920462240236033646202778980539984470022353861539358622849143467394618035344539087528006638503686688152389002017381327661505448672377013257049906787261002498255059081207651133091349622262101667979664339868911322743165038974585043775383199799982520031003344837456763280037796425779227226631994931612411119700149255042060872504084422993982688510457465760663248787004098779022901674902637930375251132072961026254844870135784582167275085793947361435121169965366651536600145076726901678797072499122093933033165869188835124499841687592989164897405339745268783496851182325083537591194371587103400909631149060677388157084979486322028376930341026783249623156484712629373067561440454801275705973929268612038715591399290877805959343443958357336055527174723468726547583495719307095137068050484766463583865143807379853226600665601187937789300716134955116752912544122062912198195586793794835057387511351885115708151211561503516231537431306511995352141118738774831159898224451996456997665448934987447120997276969243744534742424003544653525120986401017937322266958065377004914868897044513938131447117138306741311643464308220464915868466438327443762151288395660365094290128260385113048165244233677487213337115629337254700394054333620660617338933309865574308736172965976834142931173578351992810169290116332687353846735111554558247305281420967690090216186123517619410135832264833390165611220867513850716514311918568159743949246368825854720209476741427575457927898854144537898693567881663740251917230568859029919620794554815554311019253862917397284825676845762591852419713508415132843331827267758050363923292164632935120869559534608618384382152443413683033235014350898009309890334569950402074302999527660272622611684221964779560821719150021859657017510964006916661388273434342675642685355170787171940634984368043661275001771056283179873425061485219492269399065521654434811965303540813643382501047864166617132975491047835093898550030101779076786967451189450815249805329287664505950539938529212751900141306942312139237142596594723857317861287658193040117143765091048937329864647014637538990011333289122478055162231516249291356896114858746810003934366180730933093409777374226893450010038332818974669609000692171344982197542514924918509444753142604367517788050264008540860074097631623863706795357583611623509189916388078047742526056541772774573470871068648999505653470180006340276174859017955170458341565143671885629285174069761381684755802973924562811315300599587829027789605987297048182187252271315427478825293527066453382304245685010298533917487223656043953611103251915211491387575056329931624637768196394374256044031824506656930814448844131149337558574482234772893592373228988998345786044156694566086466676804029767741361131378812791286688250356866774581102739393188493523972095670780014752567514978271681932860755133833270020587911780043260144485017417651888717561188465792624342533230545297495992339700136059015156807176737680267266688333256123539482855615363664434811176030504193517803019412896902666391295695238093439642761018935331986731458692579525810927726370497195776678421011949751977305631741473855308358636955150943768109655745556202516552290121997081703393734613763583559037430340245299134371279956726231372215344484734852336243607126422387896943569660785469094107732216884021820937103363932279636159427504295099323703142852243646004559150337252858063321662207203897482726351655452246534727572168001375400113836581136867406385114279310441104028638001829039527023915180017789230574097294273789418614365342518185463406950268867808443495129284219196170483086584757314315803549120257687593931722561251582815427264372593298954895934460221513148931059553617976881205736335605159288927107189694849224493910315793426806136297711507881907404543257631172666725455410118362292834047193165867597711519794837925035693018347302027624150811228892813981168958663821771782789481818108264516531251374524613092395473190738594520447875808172034220652328843658716199360930120772977953837769825725176653732862904293355755114093899826377303023177240673844731438449545392924711465064274846354701467829893005609136831767728127486013304676559282143398666279604335665026427052161183241055154839503074107968685981947413890301021063198527756143870827110362059777379354558999420664421971121146420282763397715342050505885905674032291093947213441855634286692910375846604408277403850571881361105828199622964614251529259388648997974686547313525873274120047989606685651887690099874513293554870990047320499234565392576759726236475754517356502071153848208983100398090342443882705649635593399848023760940112907373152079424039734860925722157818929121033532913475949340259865482754922575587330025174688435263963745187320334605934117084730549785602098477182889345084627171521358566536219548211015964502677942343738645802501359628614826038500002905925480434134247196595387488004141962715005197140945522416692174054446552211605381099800542959860629376249566237604993799345004822792541958131780181483043975532053142100923552087400151110926074560878138713445821239874797819550841388407142978438269771140686084397187427229863204858925133215672578376065759116582732924613899386079608318370940770368057599673637132330820184322585990452465264870935275529496829839483079153569518426421071903436062365192565231869450409295511945629630123308087650315316887600604860118814913419014001823255457388870688886716732120220772342007759899204958606927677060610163660770548601554944410745361892533378837840757718883725094453905670514544233108577971444112517104590439468427814717261823716673960125241487446995986442993839539612795828859002587816517592957139636324126914466949613374004593623645126628879919092802351537071625020416973559177768392933241182021196921584664971074722139999007300770504588164650358952473196969658404455744812733526381772768693348432749045026212020765551993003724376444983612484202849058421959472018799393358070614615827959661639933074568023097633877325772276532819382086110436494107240044668378495273492210403632188586306688214519069942015820715654034929652126805364623981119822755286067833659634397703395664688466338167498692771061222511514092508041054647314547098887486475270586934743940110818993321560421567656169149037294847963559796856899955450046886523110746094018995451573435156410844570058860290223890803119899329713506908307350445552552466853851070941415809843271183224490499334450949323621468328694255697326857328802126174628870174972797198921437523104389866220533750749368514977205167100217654291855717906337385692006051792941495187608972553063912895125869063119610706283499283256287244881863709158841081999149668254998509956230013520930847380955052203634574871918842215912509380478401099159136562405673926446806319005687905439392605293921344633061896223049445571473082248915590941297040083002933053913809596819169466839267955096830266668262704685607591820704631124509622747552439046811530586802496406976270569736614783898055537820365974701610451023140618848155131631511391805017783797530542539005602183942867797606893646147726534119075967539042842666291819361279741584824679856966067374784938932585780867894060211326552430349862634642897417936398098645395781789634264540309310301066240916903468822619213594077444581326717490643020236449187418876940225746494261507154100437211557297167660525563734136645323215083192567527888568692641286419871209032586006755608373851692374722159525843809894468322960966849565533340194320774162162181787935153874151013717182592558455988014935689612845118578222994370174635718517651375634898123809618609085268228819076497102003738337054902712821349796955364172104944020436029778686559542938179921389814517460397123049122967867993192147254038256843063060802040904349793476402405643556615702814639039566797337596582099570562338901214835684634767530076886916942197733067966216666761862170506822046666481546061466210925600034305767498087601201568149060316749451584581970668291321377491825139242667205953569400566654669427195740671183637128505063012104800512728151039542010916451173049510427435476425936085233980875014593582553708719159419123888576968860336963657092108664144638314886758206155847075368335439485730917040823137804074191961177818535677101033828820960872034488728749581348099664105606432288511616485924715878142845858478311280904739949175113568426232750146467313576743591100929977910921004391176458014224582210465121265607848066503125003047697186154510145838053047748148567329493203673977877085335036325205642006652665819075782169974991030941249468196493361476957986509512930899448219586839188154763915118572875414728611547755396232534732854256049595821894969472873520426833443570000428607789605350411251651595180373231470566460199329456792976067601701151517029334233043448327390771893781807580492711171397274737528215400126275039681808217416152693366102839280651951427187724505266318983408520104361139439035952423353255470230932508419586106248317766392084181154663179206855871064998258189607705532593559257240813221895912068925603172335355886527841495784674477240859629573843580134663024376433507648998434298052202202574152015246922340272499407858369386233876510980701219867695014126241222627550918755751873302608770506975547585623039696968363610177141055233515241093484437430576546363960501061946171826530173135425511137388116748908575189120570813208733420631792682464811866670856479277515757025259959157309763970920456202989889967404705728771858409595894404210575819394724581004035744594027771155797907062417840010373593788746057717254885972298584292481284556595606659387342838903736953585094428886154156562967793023098433111794295808370101532379801615442487397814177002348703704089262311305388283382890440444657385782465310328338063119065838659422835061392669184293477823457047925405363050502989813771310180332489084322898945712842363040487688461428385542713719332280960384342611443728570562519800524459693566650820032260647849447561663214903589288271037494947554048946060465135102657128087212181163269609376130604981045078883553785749493338929839418286496856953163870945942726218936877895644451130882565963297715037804198598813297068817684433691956284661756686373185362686682765450372880480000203770089719381410843619601305326568199830477033337584369216010984110485174387298616056952758536482179119212268711851277499411758387011445857000558127951867426306663407166985693645701779488434106375889675415101781695286189058113091895548103432804012844334550597089366634534396347256556421994088003210291886700093972376341032462242970872644847950733507905421453514954705285122567071862774043875716195522910000122660560125705871834099344902629112015480427733446418697409827040462670460058454318428418628058245943418249014885910934525422842454397685658948315243665665738502185824271318093657777463113449308367045192666746943418009924317647213942485142858166643924828466795174604621681145110436280150352893313499935717653238239915562729389146636385370878665809595823382509151360650806320023850234000992877671202402958189871553967012241926614554468444938624861594474151387192919653372079100805635177116380033785955583018472482453541095608154799562442981123585680850994442858232452708604819225236142358525531156858578433604843977146821532115658022277362912649358358952336412787775465979843849330309843144757740193686846262577444306123437440570285125789086095260584705199160297676014673188745500022802709189116923182415412289914852435974095280610331278490689905851820860947225057903714333019059013570841632874475574112303522355357991184399755752400311681792213021636491266676150171717506281743280960430632258202586803655756771118310561513918205117550135832222328233327770790600224795529597344285103771152255868767112771952684567090975033424619794033704193311022753364182694565188603795548701676890021041872036031561116468051472195805738621746180613407991212542845737345599801032152615311993248719010263107171863311803486660273372234295901708418223023416202193625109046016407740487062165442642929711272596379746123689528499866009748094191205206100156076108849090509114667699857774565120322239987635549731286206234138956717166196958948815569754492405710536236118009481440439653160664663965403688290548725714350755173163790678866382127747965781275441808480693243684407576194795893028935946749028266637378905141698400512902007619357786506828621260365297328133195985421490644789974762871509240003664708406348238948723057440331067284725130576331727853974188443348814929192647790860191859805094533166436194790141998260990753460409101813091015056505242607730344342700746675009474921124769775669585296261980862219185363180800049562990095467445747871780731101764457524662997249102045907749254708394673963344781607963182878698389867013252019837171702861526885832458278065501805101783945924734614689449207504552900276770516097837429013110787888145454707448728623359293883355301294395944455795883328875369342477978327075833176446910258786917411654360002175687997379822111215939568357608793019954855706834340124238119850500786738995193255431701163888051340309469826428517284628051432671570009950915593364257150323400716031537559332610018062749478197375996041702807254512580558147310904792127296971953554530074726139577513399249156994721988640283801237845435465718988696569022241137347827527417458109780883280127511539635389303771410701442901503175871644545679135398555925035402407138706979747561357866778838633851249387669837872367550051056091523330187925477965404010560675671679284474693984255225912615145635102728029155588728419553267089034475317685597766589876639487314586122061766794840099203192161237379727673960912446923035680646848276849731123913695380737886763539932702326272763610356370132965986403891572131617966582873058006702533830575827992832465200068195406618966611448228220950777614468968856099032107960306161357301459168212846235281201500056387556123670777954648104321906420500832188624197155663397312239116331974624961213110012941032627896586536233373806837453516383302990990816146953390211788026618688378529844740144176577902343459327717169765606024470039549108406934375666407383104608888028997583212386784644864367795964974476133771570311405455818498390292631044651967943390312662510032791130077201386545582442603839108887419040373791816952696912259162693481503104479565816300571559085801357583307725970539851814270436643114618621368861592053626700430037826154753451300902790963525909350266754923952343615856924781709567379030111612232601814673054382922046964906495676317529312793042221556547574584004070404812856314733118113895095288205938975610492600654218312821393804464936691467300579647932570029097427696845324265612084624317952829058614488777922353933089818440176995389370693183535451692348201864186141587199463849977527006889541938538073809563545748191770212736767960306292741175255803195293600855784798496163211265334456906548357909556924625886738406314012013835482399530726091711181578387333882826804199216707134162359558675048547157932586644415569089049993545110850116356526131932484738152885183076732190383569628254628034150572079230923998975392963603732608934822201655149785257145587760078992508988776454977024893514728506202628819779734291573673613294591252561025262143755677859950294716080626194146182846387477039023967534330028313622383778707972479119285151771059359686476603091256330412200510757837307273491934580040573629168585858985168017805520620954623548945208022327235557953242404993963359090740052472039570046967840253120344313282361194709213825771149163641047441788229687336360021546735737200015941396787317725899017445632259614780195373528795970437779947619902890559955306862837747395222226117632267023924752373765792279828567938343481021492500531569993910162362689667493159322648720120928150544021486325426710836594594658967450078592156381386231276224002516118590576334835364733863806136771927218039062571775213104462212392690825783248800548829064319033365526313042404770386539897077890422973505722230928703449880971939044437850320209605013563057064411579233471779215468047761086590051313372869977733944523523670053381349051417009757926772297216328639042651303039003087929079301511732884535502795521029613405397620130550145960858261175523514803181227568235148526048360648424972224148565955709618733734148830239568815961839918053398568659340692196823517638531744095474902432563097230119134093698565719129332256334498623565572942291511463477718656864870244901905449159332702373919537738122713126525064113022608000619646704293844593468360384394257033523962871386731231012299627235036283395555758955791635825082477375727021117957477141974093806699169116329833633656833798294938592283229474964927432346402239734993790172866079802785392136585072157568785435772631264882045040580745381771504257811908336117528387428268510475943717559242291036284938159579348436546265586474056895199264460507671500562733682149972638999893040048802248511271387050538482841712433037663665327776203936229151102611950336067875530628942816315507810045468041646270410076742924286062613978075800061547112104824562957444583295578372738521191628546700228887292911511227910321646584339380065163798578995589322263055037292067993166916483558279536721935098097187409373664300422911099961661146430562175134268864143049794070559959822843042666988648095138782368796335243045740730343535104259465553079638350176632938760806833012576938386316453979592341139876217483410802063194729604822487842108792796328425591746460420814043663504571951685431589900568402663275271395372896862059092136530942268600433951775235235884059010727025204226525171828575394850169060727235071560458292864909204537317345524934593610035566439729234677784163730159249150178290633235617271602113406739488424459054350230649986892944795789854899507225320838821099949666060904340152675603438232108004438286157149832233571812697374320461066311383819556560729882954005346545033174955685451364004983109543799870028057133437444290733534217944992177962713740908459384075955624356256526143600246618176752934669167403287880941734475741098997433903693871994141668904604531660144154597591228130089722526706426353324114470084754463317233337302004606813227913615405682397205628549697458575694062002509097150411381535704934468893017378835669623530992534063904583682155606686128195622207566295111256794874449843527217282042728693542773310418264128175004824611819196695209999040260197359094625310397915706305376252163426183575015382375807143872146763846879418415308753347617880244783640232891446751099563418205059654731793862851656586308217944920187294425285116596785637171707065557133967644226673011525658926017014074028751496592748275839401865166833071409286153228863659532710218919570695471800173627294891604150977268056928710927078376138367586174759492340565211271948284829791141788864346329242571513704658538232854782064509245957995541935606725166693740801937546976681202266737726260021889589979548022176184568313336997692928287328196910002738106913830599986299661615148438513649623044467242046832697134260387870874317420471522573242202261000225436935558298676014200344844506479781902630513983612531541880565729033953554270351052740428596761229897684760781263123576520917148323584866233893931036210227374116049132192360554649013937349237781501105999592988573094304282023524468132674347502703278716806577801514824622389676404351936511388315950569676261492225051426649886380158633503077616422660795750685136927660575506797713286321966023607728327130404331413582717543998588105325230696682859422397409380874237740040006577397848225430081632586810166890149237561531044475179024308272825518163561392029609838105276423874894977236086038770653194202580804636572688682365990195018156835732697555967867892020348055081855200686862365418090461042410704486628608355518096244032645155337597952417835599978549655380328679713800522416286105611284714616464897100143697365576326454159356103748390218677853002796940135286896408257340475435465535199384741604721319758424127998913415592751069955223349069415010943000195697018127021569144809391929161781760249596050708081928561264500733473861631437778197210281783090705353299329169332282455493117106773915068327098258027560678682165618376168297226174931644068977192490874841858141187655659374458447896372676895306631738564555285331044476453534022945916785494544147232505647549701419913956908922150885222522144767336074931956431585006826978653946126699772684722022906400165544114102547913775912830260691463797300993115796560945042840180406330431888615236132818711720751122502764294804562234719954912770873228215962968743949122254199964714136309131870782657307853478364242479692505741145357706053449969060301708012621159611930076651894534203746048410451191953982164971576527273371408752557181786406866341926988610339197268540824758338585559351749675726654036010530242155505067579660291170925915147803320479838935860049389191504954040575173605854059662551766864417038487740006674077522700165641236259064408736771397728664135384731790387226033246272623411068947590100988483965956983138297515792186655018777128559059899581408648115367895503727651304256105095730324829124200133540752809814412244868740072470213632042623655276471418793690224722661208496453220310239423035047432737324686936750308934748333445627948807138097583806125749925403115942402053915495744943596429761702931342371340054638040467214876696728200866542127907991214864564657405272117042736294491510762624135735781452103196113601548994880709396610464721056377980804434583603688370858627002545663650790946203532388295232175233111933314539644129978564093714329940866616411331458494416407595600295822521433274436751535405791118907771772243061087760202667820132475336656590456283192365852261947198693867207650670605477482645361122691732178363919814453700340577587604435001261145038171329306300675236485202451829664147054563779275498251253167291943926016660280564591558517522532708510152285297394367838923721355537284983447263833409611025381529665101019411121865638612637211695023238433516751401217420894157319214030721950019464453101703678680420486940339186720711342157496300834805730984804785448793936510525919657717035240065546762361795972701351217737716809524486739571608985774968538983701718523830152546083697813443625605375018818760992365231451854095054354945984103859238177117907631279688107556142412956549139403409786749844000347014557322757047491576956446230259668589429389430097665456584728613226928478525173406746928247242672704302987883879119948825666243887467724120670483523216519595571392258189328163797828038686073943882096322185419366556145617724573328310369970762974460167566125647534065014030007075193627267175568860681129274545075508756758936201488720293190893918646293516102950258146219845849365580845559381067927946626727626454440997861471487755327292647444788132555717456281328323298966809026525733539204852922646452290099046896326399058455310944802804097149604742868939440033615413275891773990257091322602641295845837593935181927792706097945068234809757813037648744077773871639230690015574556563388385431664806627009406376576730823636053738275434004355993379869404197518359543331859334564410740375334260372630555031565636877156993725127827365080179853002529274721566505136912166311746401824968425760376505326104444684846678037498359923990249408291824067786875017980336364049146295294887716288023068279131637749916075913467631095550435531616195577370258244261023927237829936734426124481758400006463410234434063409129741092607690676940526196762246513173322956089778176285710211793690442632724084950688907811514251058049160995924370899851534698174157706906461182037568260778775603930946299118008196408322990656549531813554780783077278335012167049311778023867744371151497002158826112512221246418572171505036242075243727432493370640151495154200479011729535037672486502692990450860404227732693946111310790921648078475121189556356703706415495905538239298082804963693111113191253068764114431159149564764043763498301319528299886946154501536197882911115874656849465570181020924618519404205633245512970488820776162197467652724916185747913689233350952341087657832810521853269376282603709893063391325399062320512129040522948244999403259099651867036714363030769747505575259580655883168115579794426682014613249592362990067917799438835985775610970378279266410672586809895897408367458183870450485171180918962253585868147084109065888866534162041579342473682145032201612489806490454703768882763744322505102307667588241298353901179425689020063088824381492442984510254769196891796452162775275603977810268511640870950864376211950914739781220563551558820089425474886885709594566797871207493338905150082036567947761559714200191866242333484090152709251307759501188577671665562588906960807372543684503308519086865653950072525873880775103885154585587544670461692084205187348926065494084665275071240335099535190286783991155327905350548125804522872656078449912254740864078317499339071918253771697436377112649941413759138375048348951946514402744647345902074361122192924696452268599012848774249686441334460768034128048825798698393421772395556259882662522599941916383109647684742927134535189475899683042303520263964011190634299446236906175652712022406109834592421188033831853812429485278328898472825163418643942835559113855527998920085339047539326482346815014258610151593982713064187666937303684287885896127539023417648374008845406840796623071483596588978802990836608769195193460687244729303800958353834271426165594709791825757904732232714566221745316750325997713891847750728641256126147594157880411997483875521096686073817813807394996881555148993055190779049229509177472699053987805213122311440192927195011703806804095260037778907130990648483639795770659969969247658620357846111310163334277224343892971651443974110403392551434122287673425422877417590360612672833448640002077427547110504579532426217911702407707908904651012556248719264748391106563713177143917804496506086757934521888263626716763696490839350844169725418288806734639892197049050772599096728129132597058679847426673682638809783422929546765105501788948465412175476089735380106682236592800198137933118424561954238991965355672266152589807432763409976765102323191459516079657402087150549330677610793510629042151755073260981047179184479025748341558919723328217564530229000492780798065629360405384085315597964040080989212463070714100264417048709228392633749760839891104854560187497083710639296120919295153511993636503763399415771023553663948617998230425728438523139112949340352623673314718754579623290439239371874081820784220349735025237939173895484016260383513252335198612179550720797591564795115151064289781825811796123137801333734907995937044692286864445575596902085503510769284612398191642486815956069766035864758816054815180432437173065651962954878935877339795273598539568080000338007358328185988201743273136927111488914852024439251650777250897839746050990871737278491847121970097510424041163018181785013213814600004532502499590729360604375102719321000323317437913022715800381911369237145311180079980473505938991331064540806781849728618861417951418264697415562081460071910540774141090477755721573945236005066215911764222384729625408598172792195909719799204293404429786498042767358843387868750615424974192399179544899156735489940329561698219763597057626397112557232985984031254056913052556748790936614875117136484775882515100431748936781360531155323505478720647411862067914132037738857175860887967637809349709509829096311443236489702014778077162436392204491600070087588005068177862467701976022345194328619041102829917616156479724761804971829070425715085845283723156385581563685400868838169432534978039079958100174880981849870768453195463228407670637808362764613526053637745559691536002620641403371246267978511258241570720159259777376391224988198347274584647132570950037169497104736141582443106055013251884689834155079766189195853286711096221773006503717935248687241685263779919351629112382418178679548205056412350937105259178350554946561862579839670585640011378681251110500051794162456532976029603380395893565869660474510762866081050781070260895563275061161051198088210657999387538168757595294684917251482159796607041320893960267806811128411748597149121405190059191687661539261738621935294150843844253415869709834440867780398711429092745588135378901407521435648719498752655920452654545999420653401208502646109800911341702938929765656542759966339809101980759843108999660472677579011640671377458741066236407726161820068637369786624144067324595305224925975013320051601978995279882707042125919184454786466426431202985052720767334958775001776210786231565774927789871761868725010792646904166898227281927945214408973545952254043891002491229331351580269153185780274918662552323830557063244437868619528792691874231648087481046380301922741735362031574286922945231642777012178849721249641303585464465400864419835554196318028377497173660271745255467475373224423216045333475224787750032872551721020521404825975774492141853798402457196923244496529216665000140882871212757811985136860351585747795369712365175142142879788152490426739940706382606210686050008127575909939505037227665324699031436254290576200284639623638496790011644256531652730449246690619361790980531779648370830540164330366625762406716074070485669389498433341684046492189012039285176642697744828085459076514335309403069858914517534634980679115957339373143507267651956921738580818088081926654313540238072405838911268010011197474066290150451143635644921084922681639705681254631304838295323190896918411110360269202816199793315786967870032258590947549438424024107551746272916393533106231055813791162957137970267621654749811452547125677318204039285159415682187586741815961834848987617196256501503072482080171571695508682405985038388083255984701364906272969314928993708461491007892867808614023880525739492350810052823636324599380494197206983455801561262135689393761253622178475839752441860877838899649070465219591875900372165355071774622564439596308286741998901047392233368054458321359795887051241273505278999200123276460549291866238430228496851910128280759199548974375031479529729781136203571510054145910371490058936917583635997887252775384571531464889103736410443679387394362240175824879485497695502981109686151050760818932430625742667534558182086385974188456255643816707714795732360697909382739660909133729400047705120822270232848604243196610187500482956207053113302260565342248824120186977925332211217772922052296680096629099611980724834982552201555671657828994544298300252840853993954196740587454794647043508234696575850885516488536727167717699947869534692360491143790440097644350526553150306532601647175528391261057131096767708030442163459478072623937981437209474025416891752311272304869286643942623994859844542511155927310131815363023440788329487077015849067089150450145598098076732470136339386830436025745215641411529975951747329065306949620240145030437135533484193586842920243013766357065281045990536787806849684587455587449318911061677376495445471181451418451559453976787624986468705504485645033879220744675567979056145845305409147695239168823865432217962110756821956961489314513090568243952774377155957415844246535393306367198376715829117979546953559636893626749686597809372373276395826430566725599681720398995976703929248055441397668925931505878744763517051777892606582931551756245052379288069267786053284171122432286439472454635452952124193439292505098680061437990265978948420337119579955342887084523467593396239117544897900839752286312505403392570382763602625429217523000412786888063393100916117935430489140691160928159625181479407973642671253074559508478888064975741879291066760548328631336182041264227552580006381557344956902797141777523271704696179107301775683122558161840700512328924817965797575432809523086351667758694632205193413707609354864018571286827280619749012067377243292487540047850732695731181373569585463645676409880075821138472668149379602078191179639343139617835133515105148321934655823221071378926925632224348803425047578972990830677807640009452173622374143159814184685680330866492841342205732018550787057768753605848143245046076156446744776482728561308971669127674482094555156802815002822204130689711907732238420591460244655957711982554427886664605306152482015661112111496237132341188035615786627643754132661273866120587954899500268170882524290333987383386687317716272244441357454092536215061310609894531891896408072201732156272784663173782285019855011318343212997503704305758226812928785782008882009568251116466044522856564530163538826032735018528306803613413078279787798322172647086192284579613377565901706844924946254104235735142126978464156385746105412835953346583437029182721161542649841436829762347803013974985483628233951256138751497898636232169351089992681306604261411850177118784524694592010208189184512461622849364018425112466646892898488214900475946317668822298925379645298313605019028368854415586694110846591548722216632628979708297358180102793162811978583720000007607992341214029443345734593312151927103644654536712340527007066027571701491887161911256855582643532170423273672031126989575970735938816531984444558127701571149722155778250908415410342206533872606447468892640236789846036621924443797699516215089026654428048068474619914575029476494293150117554239412401815508233585049229967965889331442873874831177262724785649367159100465932700601675934348134402385246970195902178648065693905558370193335148662895381093582438906155814434523709214267592903443149063894336536647827754714747637411093185145239943317597645166855172546969139287163022672218306171349392519484223099897832232411342782992060566642637714923708031466532663074859748216977641329185016540738501638249043250729393711804655862962712747518171464412927556389529614146312147703168381474354117866532553270493847016594305802410965611824931671730803734013432591371196459832644921507594340817179300597408124992706493304406599015336154343233178559287910135717779180034187191461345362609517782782136357652050411748897897304564549056276689009033993892336387078893057136545432787970369793446652187904566139209932261131280485953779676220309768991915238353282294507166805146382814533934994149876354196597688480822838817507005097837052147967965655394716293248527541766531085728158134177236857553968951342039023058611561020729934514019346710685177576226854960215738921653647663856132242021276085830781910655727092416705422150445219303211010331743513066464650372051874408690128866961043172893853832527089651713539241866734489208301353097645529481057392513146475042285943881167984465540369347596263521121169045233538813425957324654714841752421639305320645065434094621281820678650192026088583281854489288471623232700170183521913381063526171049405790128071540099813707929699656169471239503447544201776696373906370451960579722695985502631468891023481425364313086207398151823828065652003300460879630283974702492780865329746642577899429403107632012409257241386171341650408020758710005457996528630083667212347136918624363175689224672340655751860032450220051033274159384589139350487967132322969499316752131729045454168539967063276348908201993644727216658269435333969082759827946705992883267512485951373792303732763038786000262421321707873383790305372476543686448782334871787654110017034807368128412470979545514214434748431158324344473937495070841578747948067839776997096332986950816273664951763967708050703067999656961226281862779591500133880737070609897803282329707019464343250548914485381411197772093276854912121657243580089662449114830177724537611568816024189584277820901992656603540782592908962777955504055425093437662319951476266268881618298683566353019872296625114120520352183612582099894834173285563604745806005760935811503672068009987411025228302863921340530654026051002026162790156596195256076683263331801579793281896245379589436385011182660870853180277346147998695339944264752320055219211436405906431632304433575661282734204520807216340299881850991175636334874015957299355703789266232839220814990514027651888321406884382469259931713069996910470896887468034689780510366386967912190891718816757500727596251897992161989613561253181980319235034322159912474643615108526695939501727935430848967906238220529630231500818645853745525059835005969849118173160714053485854297399820615404917606829951209854027209732092105465624475243855465884689073473533022757625119331991943369290366373716369922917165355722059375860006323446928484394331443317109646991743156317007283232993028938258383769179571930270974859396062262004875482963543700391902038248615923787945881071324982671495003992174420211939580330577475580124683004137949265763507078462615226926938169373924289183903675878592733939577525673447795649131880284328877609100861852111118884085123866524180926851020306554830950661419966890459905413684481951824976052891044707220443302063587587213022157032365357514718743856808317141892521189426793617689744788114432941251648931888133342259656869145049389631368508050560428338224173201240456065030213766234166371335605648642927677803574385207680612348800771337851776145375042586264137881756978920143450718336822026201749769669513694964876763189336015370658821050125218588541504612294811431650195031902518772526979850677177945314056415271008457287486854598506555885289310779982394309934971735324817090069028338188042655396745892915304992727914216411159692205021821360780092210926511109418726765856687819841802803810971688187861647093948625577086439897821753948580444241658594583449253988303778693884764890802890884425690629253814934445867417186206824093311809434548952862417369375797111794718730893779311912706987956884719621804413839801174425720091217632656521249203268437862416674611519802078499527568642181374430609936666647982471777338272232426957127142656616070485964369818737961164967592852264537578643870833272137781291552671111565461669814071820915466754700677223544460361789325294862396039549802769936098166702157213203934656992156896939955012303898901579228853178893529659951305193367707542753639712139977197117320054292663800312640883158037284210662634891327185895756360285286622282089684194609117013504296585527907773778328931938064955922330565187724909150622375003895975399630564192039279809967733269365242829053911589828739288192594484299160519996441477824506978540464990593557414212679636201579460009579364447915646489550677512535359186101625273225361192472408904904998360165426546284701705290054624906955408200156498295242318332965454064920761551693334538886496271267148647268495449246649677639222988461110216915573917622160478079123116235799798105828998724785507749593419113203223330690902459169446226246552597214033993268317208074629021869824418720370606393928787012488818444124862168597467115793437487599045653022364513354218448233497372967788221350742755089137267801726975565182732963560830519492062427812518979319090480668818406333971538348579666729648876417499924113985826257379352474955039423691093836061292347086665302807080944178775816142663860997394326393600312602771485397984592310160348861299360107415739852939265045878303401366583604433506578831906391607939420078896118761100206334682585367074305292882226730994391072207275151907457696737823286479022467140783853394006091676709767531585992037423319642205114982252908270062746069562423834744283452243467551872564098462270026473774521338079560575663017417060066069612741156787821673109786628986349879889576529376613100317987444392767742730627007825384433745193819628143249624134671163373529767464242424430631851009572595440612388058768126033521528906711998575843184933009425575316930807546991787246907292189625251457413177230188783317457532881480620680986756143083225323913553620105648226494385191175434841464269548946843518417336897414537348102065487049645886068797158975939145025684864272040518849279410600007076948575370073480819021671158422164368545026632296305651332080892821566075465420435510248399537158760262070342414578445013919659061371543421019531959284771671702489143366046436283660048605107551445743226699297746044008250840267252575107615227676951945604475434162528184181971294841964700841588404396954776612157886660625221136521312283736664260657289431508190756542231683471825029897309701754707230654451809264959210828180796159241427594852039630411631409888687166092378107439350740223614126037696851059824591183651201464860370550272859884966462039207502579723507117926707727149968891302759486159494493608335028536365244753430335626825243350343279413685463303340891779822464384604194867336363142850508469899447319620842204803267105023064407634041366949414314633710455041528623902535739816041007978643152341205191976912327355404344287318215083818870022134925389069096051132543040030011277095863039602400205870688233112078724421170012807901531075425900448420084525752768711782901093856124486722940101532349417454455999759678184619699853499201914327499922013934791425339822111350788277355643908626856919725058996462367168798444423135199183252689968328711785142589692000039195674403825283438270866963061291445293145640179326064538726969561560735858058827739184372490919672008905436219696843041800948918519457798711083340688348714406011411098607848669582504485551852049329807569928629156628522629915481536439039067469370963388407106607138300459799333161650489283077193392803350481153199915055021247398249710482328094323140243819989774857451683158614323572666474975647696465217489225132074529666132352780474163172703648201978839153064960782558283766430287043898530193248170430021802565581333672081971087744712946958005446196572884803043453184520377873930185174888992539552059699289707157019900240052461405787804573904160430858084930836231653545376283722546242963918668172241235042957495643164930100873659583658493069538866348745566546544782332611948136571319892564711269088062879260990661322557910949097645533672577491839826249115936990545336850940702332551204854672361168879828468488466233529108715154986712061619336342373502172367364334763824763792576936945692478817535534522876788722196436882612451913390506601702779029468723509966237392181725818569146336460037337165129184216227778346377898118565126298037872585075084638792074881028362210451232637956711107286885622652308815799407956931616211263508035531480512612402005567817909409453662638078353639080793526326749588702802046226641113016473271964988683330124491632598927824791873355171889488840251354943165178349279084728565324913955634642227979878326843805363218980425331461504677467971622506246267478506250693193520367141284158074988416601090959157978786344747538525585856445040010389935401414991892264355583841625147491807666210954736362508906609852356263267043615317647561843913164322773697303689561393828275528323343631405831358762637500557308154486987813275089598805262551810269323492735238596116622698394118171819393957948107991522362116334677438292737947448958542456566279431337128061880156638498355765435951779108229774781110648163750621524251668467408451842086781237958176811295011472541270468818158800431471935728204908591678933598441647096161488429305640150794747464370253257286352383799412879649048655198856605757639860806384819013180660098008358828431756023350493561417328018903581967906034085601596542986486552892852871847378184420223526343442077136630329975098828928636357540175128388384559943547785218777465225880010995550058457137531441626618558230269406333980686930231512381154465281113487258180302795718233071015601936664061413505609992603472795519223078410516346155163841238900449242859291027720382359348552140563363142187396941427516404719510462818791680963381679803783006002578959717719959903136039155510414228569352266918534441977806024691958691107910811351587225530300122428634714342032280962688668089214923657216953181307515834061946587418819717360826589578590308826065381261533460902407463075615019813796147491192738910940914547895204035317936930395361941491056676941058634945147961955134015746520583171002145250101070893494162121921616271194370676835105321673694005694103018206207506487913728461723274235506802918205007604646394835163160456178324414864631575869884717488782535100419775719627027885849050906779668000037236167265540624487580934700931828638173844100075124878185685588428455871599455650450328478570979383599414219007825550404114975055317014537085402428419120374987630366121768428443938736779414382914856806344693163571932625965937626022948874169921146692311339420160761853241648172862919777388377767243072019441587525709572435288863582661925816254962316981402221380114487094971609470251297260635101149628749513718090804780071993858297206434333083748511823610467332840062751993640097630715221406548961500701890785995246444098639015848469324434582193937408888892654548687994663919970392558233310054557356357819234808198362983861878222217885247536023334831984862634404886361757125354784301923700962751981482693918245959545555548575933176042781230706203695093313935013167604541899218287663878955166824548327657557379655244223651088306877862717099350610474208455919311855620327041930842415396610368760872462896002132894786441385777380438802813151709706576276818129191693013413649526047676911087467929089738170210065732122906152437675498798191291523631134321029359658659755524606962974450800528959189429535174695360678381601702474777361367923515549173455061552248945671591064720394938568812610380933327451011745285324275419640380436162824539795445818947887267737464559381644998401242569365673043296216663172655601455628797108067874877964770845798826200991297837676256550310170067123919177368824957787053832596973420842133401127789563817837296961483701183224341374175197170681652598867885711554104687557328185777991860200407368332300189022760940596973194760158742237934400233181472024617940527644840666405268653094079002444699531808663877031460298202497661494117418343771469300125093341089776879036332106352901610910367576690104414614200718528806068520221621762907411692932579291687091704806806227156561001569358306170620401626111771053080436685261079932277239381465535892464741047151523018547718468066994334739521942175843216711049522138258551677319125785843739619755382874073173752877326513733520299078850227358561721593000039402773650402319570033813565585528134950806597097012581962338500834337553267386107166850511171700940103561409974639251694927505261426561271517850707972201216965913881864249189510559284260100435221825916348961601173645771909848085309329913777784603302954838672484081914295331568286054977011514231458511228425718718350482783649575458901887710812165974670713041863064877908543881902652029600694480086000646158377356525633904222652675494118745175472466591638737471280514169832041128738247109602186349022445787010815422006201884370034555249816727449700197763728494863412676035740123980614315252925860907464771920394434355393565026097873959984504797751537221444464037749767661803425357756059501268293997468352613233946207956814420263600082589519111659627049040634692838188398464805788741261818711326842705827030963467538581205735171493382433773456248031989280052996668997759651736008112728543903322852767909539590173300702131131077926177529181515050091397549987499531202056725298870328309827560911384917049959809587402526575397857877238405935438692366893059078945854225754850156278133749118689635186508351010855921578369175319819346828486085580797432738267055207412052709386904103694690543601901159277607303483700438133458981970529605826983464370979326470816992605081860348633622298809471453308546739518504367236776497971523993472608814922343060119595920064373001252846997309012030698178471302314442077293013844578404773199395349709858151828373363694207313993464282874140729112732250547026501329093626599146772993416966205954753657630396184087027464752059078626796495821326513552773639681478793187743978901504131419094170954132986797137207154029745047309665115785713165894941741293923259533119161647158135587859239769952367457686246571808472477099664760551427339788978634585631883571241369210802657964599548223843377126166253582406948272248769201814255109267018191236437315166427254231705500981996030744836546043930316075355814014876958176704730423863064906044094108023866397512495764260683975324398927500467379653487837220289536662015325693296113654322698573921096978632460007806649231190735253406471457652879385331362403727440385246799125256114155965855158031258355359865948077745474002015351534727217554230584919853734231914925080957217616902555372570599747516343796276829825600313128773111589264164005689542378525708318180325065788031320511179378715018835787359842813151455778105777502677509627781563316142998051382167589015486307790838232816240468347258955236634860776137017015616322495986493072137228965847373222597094132945103437578908491067028989053947249748600758968807344691380910414717046951085046876857305400351127027625385963222120188292809727113213902119379240216923367068345788989418694955225186879537435247609988881760978209662945705062779579527618062730650398839893282555623477130852555464869164574061750633426865599980005104640923461763525047904202047941505206276486711902240378737214608289949924204893397558978096058436891146346499099814804043627073300961548826197896594493613934769352594609406749611104874456749823703944684486000607761602370792748016972230817906133505726897538472647524257606934500569941453456119527998638440781919193018229312473261817838598230120019627763622850892570121685990342534521033667440723090273798781646402603276049060828571343907205528109869165597802227139913404045959962941141143408401398867480575144171009281852675681675276728018305054479316456367615014614102864070468948796395670314347572729248841936862820337921314060741376604280674979376457554306605919110947290894641147769092212941325393105212322981726772921844564843236019701548087274510656328411157872454410115472231246549994773541841154114426668529262152976100298643569413732458208578426668386831019030327445225305990807028713794440624039614858035915549847065903611427152748604635595845888227503583361679674664552945358759101682562629541017519506430601285620043180320924811460810674820399913969141066131242061652667686026743006500929464720159798171892693526089201060059860042607852816936490075367990398309109577965971427623186614892926556019752212868571101532134017613502591267088385037680865243441356612670591902027914848654503951171858972121097897480720669486627472048743318671494721816460525059839462164673020790017315703230266368108021623555654417402420382944561269253348179215937019507968468123496959254404034883128959903715212840965886620103540261295354800490447181563799903377852534198446618434749881959675703867046972284600875588142512830364791306933392757348069564909172226693511881974340264901244893299487692437613565246635200060152273487556703024444305949956168853255823477164955234262639691825148525524938718799511608118169408441952020792951683221247195772807355251248520974199281987973668330313111944321705218450545328279956925323804183994683049890679460430910643822767760161685234785639635668887733447244489644283542910109437706135622033578368387604044496592919472021949201420238278157327614226371884907053010212057751573669473460533511224837950073271171098814168022157027852477569626065221609617496772665672058484965145483473572732047752000335556999139583798414283895212150466956768069090303490961053850661935006151448953405788349340921187518926603807411355396168904412401304855104574811939773284328395146475754406424203234828481484862123528800259915762850182690392750770564499570623242024353432757708881089402265180644089386908605013050906689401495469914131222595259318518568626405003348215666113239498834922562065002250942955705944936540185623504901112275715821226573840442144997474797912936266979472786492596872082257002774374221219434315343527075668586246140293614511565220654018253691967020368073189932557518729015421300092263465895995790732397816688063390168074057098567857754009348406424606101607729462832215236007147588879970851403441520076695746261981848592350227033936586320032085209051483121359916668012912804965744635865569371385301579710486754029057212190372167130845897983177797244328119445297394999551128894612519878369612738231854919696869865494634457156207465404248068562202954512347639664759376010187107112720527188143736925704866559978700042372324710311887499703923226697995461932876306481975430477420338306877059131127438571092999447504923118511972365822450015490133887080949924135945564391621381399360518313006275905269512709984669157592584981579177397039658140634765482290387035882644286236226254153354480192374863389157745271631432933507140305290950685685594922953141634177363394464939981739886924531816705027261740843439056574901069150143136117094877394251961641186264709335268464322968346528709262009747851657525395479234755439493252144956693284144904754961488256099153083856553614072160500746078952419620150610394973194911816903726349224780296702528842413578170624000705794284320584171142766661874026613949037683851693488408987715463108438163270648348481881679580966291393855617937197532170992091225384352130194063270499418764751091180882897071433851733068620680436362389574072130912650024733158826785174682014436924230504007770644241385678437862003036646160171547726030742848054353569232446533482451742503885572207583704865804412614342373237696366674936374009838212955624495449198501373254731398293536155882993688733442595021631000120378934348894915287448363680759721890512453048485210832647970842694360094091165365652855818605201871471927828251593033674521981561480356479401674154026168586696034194140797029475402650798395462779458361764164948352860985838569088511755121276248247157529506328529329126978811950438761769816603153257311386787819257901446455816380384321876411241439757838169656230528279392207041530945121533593524828871703308340632561108168113778169495124249426786258858587149843276687912601012179515124104268592840658536148065658152213506281686807546632509459014463357988343234785325297736476172780411042468165080307278860213200588774913697680202930538797946856227681150741310790904304826086870826496754884450396081570746798234356978223256528346870973699432755026463958690359046819106289921970447232610531144565679424288085126678321995645380993157162536684582550619345046407445270389171381112414325977109584623263437930917865248022172236395656260755713518112013644399590001002254186191214752293811274512597327817229941117298244210005664562827728235610151229364781197635801423241768701546039110248211871102993960376681683839095894291652951396606201549357418997744675974464963345004961163148032514165547239835765137964698502384995227719269024805457426333974710546020410976633313417219430248893746132346834841557748099169078894864854065033817772366277328431507336471620332798613302864637953525644482509906036942651921364295826037922752142083762617740999313617421748233451895469848502242427855741036499825403895643640515715139762831446392231192037720102380778578971524925634110873326145890480475850761246636673988433478328306129838395368935319175794637470062175382607077516625737810540390927064701684908592170480576154618736037699378739166341649796687613837361747855437528406864922167741259433711460502196978728809841079903325824412399505619341721242307621148355905012329778635159860081268710990714115894092954439236033692624609773020721950440385464621952996038441976409321136162370276813907116280505923794855873315564749797978160263501044431553562441950352331753338574368140379809778551464660739051069151295612943527590716892057706900120411384990447931311652652622269572958420932345511869817774255564631633155116463816752597344335116843925476523577859237731330869060491179457427875444421978961648674181599420930875648901548809237285988553739215577765258580495256390542303776594448481171934367023518716782080317595951190282464401298766810443947212714810306514152139316594290263840231033464841510151406486502841426661225132818683325950685132404207190362845436635936651366492357225344150073677803529015190404448618979869941328060199930879168693915223614486476362320561927095577987532392969779870010983810106097196089007143604557344025689451241843540855288032141130182656423073165145995971844568610952499910625986996227829447984241151903709370145777449708666253910837379057761890779483975272209654994665418101336802606817280402019919677929288568107982046384434969560834773779356449952077915139457338490468173282072627971564099137081413028539199190432964629703545837758260553270222394848366387904011091391837338846832092189277260958933329245189278434550413584693459316264614236286982911665322367826685541319032160258637472592147275772570502124126818458584115246119276188436700664371878445428554808309205915542183137959364826026564730230532320995824126372475856179945102047196630002075882695457364091110452681039448314658318429014704378090893978200294103931180810403414826531639241116177402317153211338205629055530309832332663138543191389634106462989853017216405645766067300072851453784867066767923884923956183223338069695196587667474074426864772034778585531575881553694821076679313811768291325800089355844061370527333553455929123705369242043690629712603122317925226368102619813733099072952732971539646279951368809832308522970170860946768715311920199963286821800542485247046396000492514564204016790674748665786928131258003205202141038576909085457593602038837730084666475103167871948692641122429552807310106419856700708089520187107149000937012119381434117249164974660584785372565955600400171172126886801238442996422544884214268632293418083492486961231242840916263249273935271468766572361157859776550284031877338794319586120775826014329034814819638572386935369490150114238235970263120332162036878806608060017389593918788542393457540865209496420107500832635871201926188393843982001629200868123221740870724495786593009048717664612838315346819666371423041097148893443041994421185994645180077822126279292447488930422503545155010270601527236145318350933521776106884751703711419715923001969805106412636745479984139049144247499558065546023451780811261474038417149250999846071878992227611924633502383418706678301554290663506966240610306581579956084477723021750908539023131843750626234322532359738904040135448188586164574991701194619179962504045651324087184499391457673927572143199227426066607314942474526006345548436906802322616814930122793529336201541777610489291192480843441195068706068135004083192972936147738574023463038774245582099357440351034673311477459666924854817378956026506586522220454157288845448105795067192956229321005127128271854371160769370531678822181114052099592175967825131852667566083492708478376565335749661871720075061603547547483580848015076484522282145733359126364706182501365195980559294225107468671871703952926821829726463813691098620387493283901504733210009229242785925119717793176742996552075759026661729079400382886191404498308532713495281015138977786186284318087766894187005839865207668488901805715079024818688757603702839464734602408225338912152944508069510081335871143423498100495921759300874477368357066781736649755824138156964044811556488732354701284633959863896213977756659582941005701117524545312796468358473468929309488605809857563528372910371418709755217131768889476693023768155945838579925029980102720705553421679691621894293268810253931453802721983502536492807738656438657998513485246245061770393869385325763629189578212473164385215675940364396378673962745063028071207258567129392989221634642620732842825342990354771785454173465269598664596852991220899184098883984765166661747266399877314127743148968947642935440773848221772895688425889044989246268258605801686399046574184953257060878824691544543715207221421019539476136960806809819806062543298354428358610338243605147973659780143640709195338053722468235793739967854136517987510221985473515608621489533121703478071130175384954372125037515791390396376215376624750218659127679667479874472553359008968094880296022416893087623840993213365818399049132484269739719450233211635107385573798175722760890995285745271443864542476585550538393219042490129364913851962668706489361717341616790553531281906256265394337889501396185728495642427500350696064700133048479455072529540723838445859514700488144804288822680133250092142477460864140717004341057766479461461397128001632183036465215648793761862990011402539652371334809496562935126319656864859093045197328560566215062157128561929482437212012142353117810872593809781764659644617236235472632332069862449174221809920274806089129088586670463194631100103215384050287982258468716300549879570547263134197731807364366519981377138238370989817510612703634880021450189027828273431953514381373861190084977923287016410352490781834680385241845190844370401882017812810814567758929342300681296027825816589992395567719386717932452340366776731322822639309322988547095039739284001092091916169393184862191265052057308320448659828834726477138628161170141858881223287081561044341726843853653639137294825447341178827362192500526805400766554893282455134303879945835463077245059002220974214563296405642220025083694592540760266636462592165302746087165280984161580728367344686444973386805499019358954885435799016034304128070680239660417123122231620352412061770754753505093783785570221578788992038840269063232897578372716137336840484125165959896204987191953705343045257821569412068563957694217888186991828050167206912766027666268224157787685501676203952401084761961205281418973412147076679416547513574255046856549178962316811608236234011402280933763644295441126607161473551544950930965943429633748598754211928328900285495930650937794027520401111511915647794930219893563788694069819122550097656859025412053700772956946384810905883821963200683528577798491531691477428575544106850303132767608536374719759062893486393800762106148105465879556839797885784563645254315521596711384448465344647127468450616141538863026291525067998628530255288936784112031384548133239045016083961152689046456581209674891606038710961326996458990861236532261518392149143583467723991115151833476768108485233434513707733793635072820666945633383201726986990670518578913891449793359175451337920841200144493774322043305329517811871218865697766342866470450254815088101195065481815712363020428099638640714847872133225388318405639996697503537080116619911597234923068332326647417443930540978063682081031325885100277392108695409947482554286016316353966613065620268058054136943219950134466272648214161425524547564885216930877901283241318017904951608735397703466352285802861306231750586917680711119567987857239269611673081716592568829887477231631301722157621415967180767373991321384868924314448419328123135752256805000991307652340158227308698652884164214962558058229130274555916781550050135538617809475063497656687008279190860235032685471088333845809231404183368540537061613948690199814444418186428270971576178512426602211820598863627862959828917731348736508206332113646921755178564960440068149066952737160251628211066138807123666157400616991349686300957987132245038430723497451207609603824093188152760593131616957772950492691356642529118986236812768547675427467756523390350063287714831832023719122528777227091477299701799345916822623415857164123623381191968705500046609295838308451406840058341688132567840143448296598653569458804710067123002014928044187598448894505827236441695948570962970613573862005485300610914543122600078010902264089023100099757248195560497934660027400691125129988051801962298568873729211415107465072695484333707639266044680174354054911021009444671567173820184956823342547983677741442423765990669444746900279175662654346966445750467002101913317372672038792891621708062104097773444102682470319245033843788796626597003799555864866893477262597221951012256483391813936149389906308911514155744460757259287434851165253382860634377709702888231457913323456559785108045768447467358555009943285799677770493247436915878255679668685431028989506008862537633257604427167039732168155956190910636116307432564842037769000853055042831078928597246932135083596596680610031983917280882521927087148960473129820144394890666238195510756993128620415238753212413388284364337177567251546982282545691857031858699809921123844471145461879861755973762057499597784745684849646167861364840757408733290091011945871049719378535614138644313373287463980203118408008523488012730116249415518011173878574343595792643833845952859848658019118680868864973885142567454269623019933959695977319594550907709852651820745452920116409163346957874554200519231108583184866568850826371489284373288004843034389135917547239931423517894699234531251046058374413226876117853380321623802964105871989687786737684214103677682408916727024983979234220484024592729029078117839043780661598865043818735829378982027939263653722158997691484133401168530982070489504551999712238991357627097052632274852207074840172190354638503845998057582720498042737682256822544440184624032574747021929083047414870736209228335814113151657261840508582315680684818114929645864756843179763024567398012127337786077021801092792498024809010028891144868108380717973645234046439950182390966056971897733627292384380975826911638732237676734299038108848018683081307480100036619481954145850565242674829153488234021430818998388793225469631689908575124361912837216146021483380218438035901068211534856257009625112512298404864079602721640242152881528855831626497641103005366502050824805594347520928842524257083886983546572143204684309326390900499905511334024258946884731829643189198950460474843178205249808398382452959786102268447414004019489904468411270745652833136715132689934360673497193547016545010179805854660682502240840330635664673097380954803113933895174027055639436078862893742041677682728300338858982533844821645843483470965257998262336027096636037994286019070125948531818869277434921138777617164547458654702368158260715486918702007449666723361223883620661267175099734495698900808241120840143424271442761500144482840041627647869397286791941690046164073734949937008273393211956308619498158616264489320763376979510577022808968714033170102946955784890534393712823261929867938890650158540853764085034497324132414390638926890131978072777996929474111622665339463982428644293953542505784476647023481716846285215858785186094570677659624532719015000646577077114390001778636265506702897119219439193867799025101112855723395508760104591804616073744927859523108653150119626867510266128949170287735758415104319159285180733821652322648529077980704706549304117233352835596749191155107443172007180178035875185389790439387363210110616345331422464751800971861459753288619724881927407284777375603015996930063143385644015088149079071304120707493189015014729015160428967528869222778138879273046995950378477750218176343625144302169198260196545924766019439452964022801760644223540859427696926662013259295665459809406032007619833581212216962103951050577767994651083479612573520007435854834588674506586744277006797401836870308967415370750333756083222178238439559056048185261519226118899512752357944335626881183436002339067485516925292124373085237184587650829569058016380374896677691934959858388252816939705067303642688723557189733769549023334983753467194083062367057577413490360459608229953066709637111742199562443174068859870918049976515407981479062520709189663000192019754038783103223987657762324319628154565179742803431844212087267954484167066449094400454801945472100194739508589697317157856366625858648661354810848615487718220947257981191954777519181313030591217966256706220151705765882602256712329222592638733175622873963868814564690713825634600956248061764720705612956957382786667176228769531720022628952927725625402936121688215688508398702162149809949880987473256773203801069642308239558081071917111482815180807794761769878149714961403471707359342896220933288646880788420866828971475433997590331788882764872795970671624307839945994980333002519217615365751303125855080085458061602247733405513180432416940915747373912962627645874954902212894048163179581053787148111454970817734834429749969637635914716787758776946934471407393254615783762553796711388977853941451146204629509957825336711858516503220084871625336808485325706664895028657452720561190227707037596352389989511293752026549097148175210192324546868253371651063528714675725509188463530773295724568013163101532044815747004051463352419359639728691395756356479579380626087020511882614920858653037897388898651204951868383775610301996170723464229629505298829234345231517176657738923907369843984473982617250534107963315650061869399962490561609210450429601056510139860534728122625131859729260573363770699417020525593824981002691714996127614748299109258042333540054867443748772411640554740007194478921153604706462826152485260712422868782972243530867779410947216455858333163541038371189094079519179862744059423307643685374788891520296438108217119835706358269391373251363890081464013245764710713783016990110885443832931677931827169581417790791367854525720602887225308620698808997618220411392593677773824328452430824383747404986951338684281932020474983461187761097428846131683134719022287971410464430325879155713480169171852160648454552286574306893788880358972994249602735109884751944021666669252813691550110048333208615592988176406856066605225387265563009195244407940419506280496221970624552604096845679676849099922680952533429516171201702883206200136991358598980744376203232375044482072063410729165382379900109015344335326852046988035608985571257925411239436655402466813118392707804988048395287046694820225028371613955596241141571220867892494148049178395275488174381198646666546851389738328951647999181223449025670416807876768052776722571459936906754382209015949846377772955539132802150147990655966840029781573526074947877625702297455048149321468478573852627328392803266950759459711300335152560514927538945416929630585592268621735851669571379302634881022923605136263832086280557839379283941058334106336782414797891425567225137949298370203784178149338329596861629453849977784275155582912633293793867590714419561095784338477841515439797335800167888840482251182807633695760712639553008100221895510525623440057932899282058079867928530960808269619551304106262806329031465804979039587759262559977229598690489107549563603637379127455689319876131491944084972248460360088212762902510613630524903043379834637698973271691503083887609421958718616336673519077407564982060351699155718021447842591778228380474108652870676526135646676250349541110886595795322568773384107635624593423334272308692608128706801204224217080539439098314474815104359266400808778224598451972203914253404102459120411127601564434204092511420534281792734745046922699779935095198212517132753889900860799610005742349108227536229772530198188290128656746870452322542047702511078934953453159959324741639041840046301337323133652163616229302500565516900646027045446843936316988704948724475199133828088431822794084408514417465794216284073287754950159594293351448342127162267013285050492732040989065683393817269784565653789405200280401209966382643131453549042195028484682046647322594844294618243389145950741941356670768097560894990619954282021030290542451441327321995989906959322949048506361773836238077632960529714599118379524196406838804688847890272132359348649068148457346340238611663929019204263100778237819139538782081690023264269534735911548037672442668258032826832927023621807700120532819563218241441152435083358805924745036698460838150418633812053839558151014570602955407824967749438363024170988557588580179922055307619664670156876902123470296852194079483141595560408464319281174272718192404238638505761020180962094579749327751745391656280108618224735413536345448245483543963098918034873081350251954626684691060401348176560592028862277402729989353291046876028321956970276905204067583824274825635927337558443400484676908943371989201155947195886331245152032077870232658300699581801067305268567721657075775461994887556089756317973524340460237420519088235604810550713315367090405070083593866718123684515335069200914733583051128991126201349054484991972385827602202626350910999388292267332383681256864376612653383636551334913363530320691237978438356569578674482897624987281707188949890703742129164934209851008746989838069184775194677457127826715375418417291888211304049025933784677189878108579398971797773926260924095664124810835915898534613139441525380383022862002868510732578539893459994435744448059017633662054911837008030582861284031856192303736290528215831215471555484409489037806392484068267924407790019441877807872803759627569906619169903520816153522846905279046999913591972324327280320455764543745613809004163333914400797399579586971064997114711022384378658927638799968920045588567986359231228746673199892687333046516309292564271045107938609349441012083962032934402155562276364058831174054079809210336800564751454970582947118485528209599777743637658047626302081576576656077301618413998126162057587789861480509251596665070913905219862932656344031066621584111566072075848264295958631012303058800644947079647017868154291619914049804021300318270004935455197233991745496514164696919579936476983215240836731330825024732233820083782444682336178360583711498024359744343250462375428610828340625617453904815659276647107411270125231717923474523249867217770860110509219586311248952863940118874254368569112414265704444480252576276734361233126305343782904854558225981626664041965843187588524534590777613722568014396207582273497950309864689128984841055463224117401685287005673412355754828513938642436644355191314005405782369189212391504669563426615894868213076699150330298757275698741465823902233249502858929338710925788587042862828579103776505651266819151086875051027058727044134756015633066168936869068031234042695325361215568779405364478066480163008129660755673570377494963252755083842545787987577337881089153783063971472810527452087722657569859904213399332953817888841160447095351555005456171807856640259360048681572286169474324458463013193874287298044815679252841123988031879384010025352003832988219495612367030431653405169693786855653954797279104918773977801316310446524031804660929640937321476141086178436209673179279763349545712975697010499524019206059796119501694581522681067315127057930668045469922384453936452850234097525489967384667261219466582727823311761352757136635383656483416609585670256787847519040762926191134408412916889362209134684105268108461713019751457645461986526636822925331219407092071974563643938464443958580719952336340814238657565047214781993402985564145118637747591537472849398571419627559416782486673447525288235939678012407279923310372024021791209339583985453824394106369313233145475505411617998108570763854981641619532904222208576925260769586001443772917493154379222968121218227125929995290182772118850004305248675125536887855701062131836704807633696677556845191903600309551191719182876694418626724939433684669926495842825181159460737783100544669487448222423039891653768276582369903367524720610233477767831512009330956783419233112166691464659442670746369152064571620234034422027776516489117008360357685174137463824077875190023927893539496783646007915881853771239282268879566888045890478437056859453088622111687455360587012903403024108344741754364598829939244384170279206245904175572747119233941162147129154019150674263815229850420668434335333933570237905560281915923534978871124498522918674905123169759263027810148926681801727474653858145330074467083342091374446957502503865368486253883702898349950146509267392033731434097894294889128543986056023238261297694459165954620376605653715240676995733026774401817360863894446861276317124668055157052787584054253855474779690744374570983991255443104835530779198158789144002249233751706923447957786816164759422982652499557214337342480125766237210528541672793367260390701337082254384067389462111454169505460583679140378952297647540508579966969063842453905490246229416508985482178895923438632106774314027923173610240472327790065065719345234290897325670537690203088396522750065479015398766659018675910660128918829379570631561469021217392250152956237794429125512012072963680375555612810793740766248838322741323982130725455788136371772727142726814802206519603217500421653269783700358209990015556503118412257851617858350368488775570348260220137922004145014542859597328063878722961856799858715735489950882793707330745124776737948911021408560220849836075563486600951836055861273252504736749375509390189969476299716675237886286253517024389208364864633402307852782778039078136528778059708473877003038409231248817636539749275682614531393970948966564300726649946133598758488158427415385289037647123239076855783591606272584472419784910256247824958651923013956732031177396032973088127475597972178082398322827909626047776029294289550967955449948316526016601791719221393551768720364516652390026337073851932884560816471051359803260416930904084731730715812708821151254873900175448500369146433422176979271810077406603731695136047464198618092165956804298549237664919707118285800647504121324968908399232608291202675557797753935134548318882106440393353344692715535881102593399490835146589415378431481492475625619389319259520967180037229145799512751900676829168440599164812641943077533673389509997137606170993852127674440429885270504578887357510439178036500577616665485896354607219603554193961853453297889800392676060547996904755016978273326929600567188426080157646159435851031870813963951952808992820187216530553672589225122538759231633053096955151499288164266282962959311874909042068673948083103519679866660480983563528359332908240533574732607780504843448078884504017132923445636884728225926984179967555781458447462812905180387228331939315266617849025796435238703713318684254825090060611460985441568378032450362154905090728786891571408237752110526255262395914152433305493400951415016984252728900281237737650277604460166218409873441683542009448917989302947394165020374239400876239619193111097827732322194531772658082481690443154105324962228878765645624352276669285325832210174138777644404760986136483532201971387208676178616331027110239831943225365230667431153350471219483008165653493088469356378231775563687820652999895785502228443151435569419733845500794608280720846177002377003031548730898608777063354216929224496089747987179169750910281364146035854762609928002880669545842385850790971961823949343973126779398024099605221399814021866345958253421289205486274751232921713011195178111238364627488791125172404848527746267123268865184087112941105057620140333013968044311338455165168397478160996299602505499031401307436646195609273684355412397013173917721353432143776606236392585414137049003683089408687425827866318856678894517316926426701481854996473959184040024358980652396633194871865414286916806299983412973242752442596908200672876153859222381532786254939988940227989896297238752555384280372312733584863125923176097074903084847609360431885984037797459689508226542074763690113975486347632361690088371726776485253330136742967426301630541344123611366688833080398435963464459853008792417232279801713428461437621533214894082157255865905761625974031693621349797480729343943604471752691622801587574203567969579570050282170268528719800363264792863612612714065267866131312625818420493635106818210834935227611057264623930347410733908293370281219201017611448230682515036710462905018007559815685461123556569690951747776851988908018489342394168246665921818810561993144855842896151991981209947877621377405645524835204087128887543049684312797308177039758995686832926987050322409169659790114596546168822832673791589058573536259288411881278932740544606063270813793389413874208563423736884105157226294943920683806483260246605835527181857775541394674896648425804500877738261990263492850040179987248724738457359197896868886670354816762773024663068792789026153278065987095168387277864827456500499873196873841313540170980134078110867526977803362523753927348344054143350708887507152584302898781986809565967491377113387620948040954633335973493891158018923779976292835568041984044320075026031360423604453912319978722405573696577643190993568933135201719331235819798495943272075668544439835832002903330841425790066755514454691748511936999612532090778707302818998131535112957018764260025961523672784299734717356434492679691325568301627092834346854200299688700155091018797298007077439821274537208329508098169536555283388775691678732536280932050194797049685582648479665046130078188238704326258379134104328609714186458190805107548091237440724337188140408936858099409583896034444258491368059344315228034441365751603530911412492372646423623376506044345256541681605106702992254531944231493508208478239099130169936537095913085597362287690234865224968132651041012401360401915645287320906187173184986882536111024819214565423890975786023531331468386620853187853772527381049547943111583112765004174106905885591501621861348223905363168883006575176868493998115697581108818219680589956079590458327169445671118134167855104684403832732874356110408499548835308676865922096249101518325284274225370470500021266032839270648819391576382188453378598247470624650177730524039966251166262795558659581197643414231541406082088483623249931640785568499914656911460164096431734815182172176518322457216265802122774154610806989843832997707398132971645212759165142948651008956812787908297331395208696794755240148185399259623769295323592109454586973165137420587376232510270030390412068889541996140694792302262192940728360529623299919875337064328626469002874016765150628808736264704108509187789198383334109117950345627694712875742486588668387154612918710758401075201805313207241474135431387378328843407160566061889635649732562165503694170706543841613363921401837337072273674858739085701459570549105342006715067099320286242252931050765827104309063229115177021321973040662619768930424423851087954360148279817866575973836632675801220094551044934092735995869417422216752549210059987194432962630693128984377745361480718643773459310187833309365758546755133340095102499141449237274039091751704049827103140633123866689856519694882225864480854270217255250888569022962574424119190272256245558486588397533881443173680676217468271451854536349487924979534074324233400706588379497152770699530158608445976383100966363475555077782392782247507053335338775985034730505270214305235054012160400049784796544860651962175877028612632133467431271815334377878342283373927702654374934184687295196397699705400214526103058857598726134209653770990520455852997313722753514850772626139002673035077404076872197955884406085049374064004957857964122888721794170183689128025287637649403471095558320611306441769861987480653455855510928714139849213602649657684239134138803507993686931617919539847383807744146580618564926853940196152485944305571480050442268503605758000270733875382146462743015383857919757202186668610286502948095798945721566522819425720776831228103398327262806137079182286215063545462214666503211446765170116466051447350094145694797186995967818561279080431408692437965039647858289752666129439547174679137432323092279766702398590112995673601000394726163803247076709937982275411389019787866228693891939266768460880237038206138508499005769620505588106589810103191268436318702836927341523468924144890582912083754644906719850411533327538368571490204545711609330891076218471699825784252920867754962467578877745252574719071047751526080442971186970849604757228049421780973509722204928802673742513712582051240146883562400492216148694165845038768466687988502224372246949674555186221537431550243361994772501442967228358318419609297924428050488837906690280872142333709500855482820018085631311390397605186798185052861655372636118911834614532900783155081742115862606591199548984126190944878009646368065051626415737886218630188153666420506681696244410173376521911047814857248679495924422125115029613394430868321936368417162092848407542755387799533582704913484534830512680403845071504775820861930555342181547091433179578815853258868943538488792897387492967267785990212444846068213820903803385921518698516166194700660080532697090345851147303379633467314614302099603017880779264420594038419573905400495193679706433199879458167857730916779692951260247886433462969819185960733784375162504766608510533327300928289979988840017459486178207475147739098144718461893548390659195009870591867226303149579237521133852542786853539591935360631819133330932767514135217504121390960447480379121184769180359019697129808468275972410152189328706243951483359664377707603958305459470529918090960077717369948410494051929660335501780235752292108875440911853315612740023333384951554450907795760414808201762417310150497117260473705881107918872192443499428807464893548898993271003032867141813191897835261046537306961716213904234163560461614784649118740245578118716814449445382531737410699746075810283321463475318842249601959124256790553082544684519149314351095192671253945851131178825965688269523355836435008755796340962793584133989766597107960186644478994195878581058095070222014855358594818351838376673381386438966127383684181120756356511907246480739273443328219532256909827650529825766438973507451947571815985532423049935418331184373660525265424579412205825748406374712063570975268597714291045560154351418180301721366704099196123936597577308739423566933430274561865703733531178450844590537769133166206223532389200209627599895222508769470182542128821190631552892213093223430173157813957970447713724392638690961204707637626922380135983624025566033819781725012963209619221930378540236152199485404034331883773238565031971152074886739801211353659066072016038609209868867869072895162309184420880839669393798332824859421246092086038161151919036932298940802285910504075614847873380871249357627319776143066561958942662154088479484163513299906434251181091869225722218726900268362570646004773363796489290634066457254699741463361396810008641222786972924317903712373061579136457404641515966630975008579516802852514018493752572196661482132266602585765231627616271940207349834653238496301738509372749232181300191433631898446531849179327709470975191908535239036416549798684211203867877366772946359607768448207455146113184485769566596666356570824930056482080971619806606979836951462453518444091115625225559315954301986382912614663713767378033463865686839061951556042032018004710101675627766462189189875059542383908227820264095155950017709280188359797707274441979075575300156186022430926655471222494455998035620573937685711627204897905748540995806079474760852491094744303528988213505641503836622495252400695349653615758585700444750815537225396805856695825262602996125717224862337963827386029959322734258904914684622706184780114411090303982789649252747216850362104599418176336357488672451179924142206046932208657699864500869021275270603226266936119087944471265358439544828078487144367463098718504001880558244992099582334613542785887692979538255426348458237848733119940111840797486746978562262538516565634897365716505219462297072777246654506733409352740509331203154892096432223354603191932126110027771585291873002353624947726550820246332804680219568865217172569375305255526196757605661297822926625519633647579253604040720439561127790240867614743984316491529003876121137658209204855970275401914490937722572847593025887207789697623919645792022315496496343761414766261366855752574442776696640548088757125226604778293944903115722169066155923580985110628702869187589315363966495613080574958953741856869506019801093588844301395264805147619057448134252421248991598839586227935023244457257780845671483652646996900997853409020452587001853009774429434905233114955247644386774743726124563097166121810967428497499476822035157717980447429547758287299069636249473866107706497791374585946936726828007111315115464575842086236316298370900545115560455182897444882256099884469783051705565525046425253639813663795801704625257979003637179934329020846153444709236348232752838078948256163342555683412880206637136565803003502163371694673016975898294174512766390280636844504229458957160034108912494330280965133895040410084144198653147479582276181436008274519123715820975012506421092171256346115154124549262188017681906352709977646978130705233132646559478037674680357551765458642814515253424067508576544301044484248212332106222912369415457259121923219076659220356336775655067827875170671454645048659981804309330981163942494359514317334982504098083003057010431431528600247899554466295817212494908459516387500627064427112317145475519886657935071027899730824399821495313711748564944401408341195377249978009105118785793589348821492869759627006639055097412994660080058136069720598602881744793445715351531774935657387138569347400698192934207457231684298026173940002687928941945831264914109145841911981141075848726481040403720546533429824511854928715314274584136863121413634409093293572329686861007074878800019860060862551780928725802963068996581379907705153528514502023004531683952337175268123565399713415974624449297523713180423559036197893020812360294451805935143166582540757005614023708674636300257574377265977447314783719235927061426576117977159139748259625276451655953690545237462876241424724285660452702610865304905246569676552639648503648980854808527093271806469559466618405182787966687524928656922236475908775229496571608054054325690572594886823613801595136418043967490788011240079863993047058507295746601789577385002138851823079967685445348695518267793448603811539043687142547414157616642915060120670756182964466006647914939541377427261253706947549489363926137159602914753593398838651933070790600619374074397208566895020627076655786923056513822678574247504095510588112056287616872672410205909245765035933229592682928319878793066871301893957811030306990787528568078273456742231860955288182556453080341553498717622163092104559705527085551324944810455390838452714431794752926670444547153418843205805671729005011667809429747153462463956694350110115924418064392662038489210964501157530820084853130079803373906256650196241846419223161031390575444603008504041594388384835622341319381323396031767895790702252266380130442066065151714621317613545333514382703449931085785407460468378580500009349211869071527962522925018279821401598271901270747752558753131808795555240764429805787131801199517789071712492305251538943998853849401739005271593968184380950618071900764186528398201578858942226994857163423075934416551341639257972176873537622768390661538708014917582013128149584552880310030183964129157266936710720617241095140916452285921504697745570971987686056843608422893284215274985711850727706670313443334270655904903519835704488183893567497771993776882405173424676076293562328737919642363894515516280821960414576306700937925170742661722133123176301039871296108587711054932252815655677211288841619889895717316343414322828607785192170170299729710568698792672941009563458004570807812743053935970898231198254755682494118486529284998390534188321779452807891391800436077319234089525906454690342712696084420804834820856550791462097366233305322877940023137052777614655124979739629544590982964714158091419614080779952971155767302679806281991677679777611633732917743827439293739074931960150188368939136774620646572377555616500373819830603582533844596796228390555338187525395930346161555319224041519766360634288915192944723805222730430125517010774384265046956982099703242188021391394183416987111986055397721348430533472787196562954950938823519427865264419017774253103249177941137089862520542222428672037363232127919138818679839375479810680776181094671575982835582986441381852436209780192995741863157542081269827512881531966323888005583907650817072786225705460437358058398118369632593031707913814995084683958977751380552215664555188294938740820580120760205635974630104233993829599618444023980502521429534528637048125657261089859334955391235419304076646774337103336011370370021630113439888333020402275344431993206361697965577355210929000780560961795363511389833530664307360692193370079604153373311655145817270453751962341394504648235754446128849645083259802840576196008327708454391611494114370536893719481843740437999029848742698502869857222529239508833733804717025036928860106397321682237036930744769276488727081855790299304287619921375241512153353213349034120106550392636971241179642530454849287881562554189219906793969264400907538513101464448979520569219121103749933474662632261781914337997738315005155713645077955094363411551814979900202103413332323382560032287494008080221244895767700101007643900810508288824250369149001297852205053999383835575146731077557155250738230114031190585540128755007472043555163404321289654866773372975096434812840334262829559201757190176059259882558288775211041106924446847137220672538236919408752579871760260813149149313442235359722351976806101336537418443580749340639265725882289928912429181937214299127598744902323859961214130999812313608035328186482788704529777447143700828598550532704605883342105992853739388172108709252181346031049428272254556312621704116272879151747668738295057360188726952999958355159488787658754957786516815789775271562645786134506511938078392984277711863999083765234983421185735481541684479793647221670700743633645034492238524067448454509403472196370758781248878091499869672578493339402998181306092027749344062495972808181029318578941876906162844136506852467788372954840433988869642295751253983010710763754490688235202049398617861363743731387291815464233935649199545459447819274938901422473175131633107350836731780241220412676392762790740357933377320312759392486897267376510517480886554619942488245936812032983725354408506340464712805218830879932751280728057560710930351540451481044802264787152918742282223785201884852640943079719564347441433018672371245662975223532821528177575390133780917238815536577155545620338571280071752075970446070291331236866817442482405131489141709080871279313034743501858925436520692283039999869660976926429022678403685083140884082960431344948148852122006163409237290463347215379932279308521713581899767490263009179528466041872211135514531829135114612352798353829637885169630014285200883085446828197409213739102420115005964664381534365280668890732400441074391674670131343035663659465359065470455846347114925763130082755359918243100835621197485033757141160440555108284634585398671553873549590904385354485362119018658310111933427148958628892975152924420746975494815718684696989222226332802807975250951615211183231775203693701338549538665253961088050302420469030023083945293040811213495909165993974448886072004793550639051621514589749695643668454921191403587059990052567019191886229729715110986414252791485475809592752208140425293979225357634719337840868251413804913235037334672725984909172063147783485438753636538868278265291768946354635736219498825622563893028868430514881152854880706440983679949147001586723588445916972884916453130764778235316929756014639076152820578149118345581539281528415458981104444975443956695432988061096174752674442985147860815649025973896610175234696827215044449798388755307270325729895568452415812280644207106254024986627949810019056211075487883649571472879394274612129380372866302863188272512672409641776317154970511337722717905134843460482440377594435135984886765156572871684123402643164399333752925198709883588174024336888750561831026847230425684578474332820302747665273190188510163817113986871758363095910645755505128707404548186656044665378597682555324583121457275021581257638768337416250989567224185088614625841012330592528581837197557709375178786719107838483458691964274959793954495541666093995888963567542585823414700889334962015030636700861918944293310248582833775866999187067383690927900853215485475531831053995405706046369465486977170302238540349939613843863286150025547222169319015428212781162365433732579353091896493714403411104322377469318688415205357003853212321631012540797195439778561313617900005638936626405367151215801103784216429376610304648557882385717509149029689890940499928454395243358859937110208748184405982837232256002421941780333494188914711689707783857605802431968937747858787291867731200712085378929857689065881238679923743947183153207300519688595115955769658600412898589640596421439065983164345708156413603962771671226555447802947757961166348254361829693523691116116533021309926780797298717038891670245192738545706491029715997925292253320944923445457385443684186530657278053464001489293129934366165289655005917145420478954126957991576373673949635112263103634398655390809326111944914158906401700653513532716271336810726124393754677404116375023298562082394996367962771013317599817950552796250143898216131829845977456632097646973623892408330763584905941671034804190755802024298538978696915183496411005125762615512728769319445967281753363636661786348882287359067658659287313717627803297486071025110251610872447708080962679558505232984818715343102981517244103053964587260037533218799407584962349073722976130543637521968002308470582985887547865490112156723266878881468272562397406669277137651004609519533286218432654141595055811762735908159181890284665514659573493977395663200416368881388658843057424573844312871261686625803204328421618581554825688341857494314753750561600862599748682127259159921646899150183580367596511883904797455524356178700890174471768631010867400229195639782200909142906384853748874259973772970833959374934389545504103069485802952010000316828437124975148925200009126246296923969619300561615622932016517901686100841607670523083218660438369847897427579100323499762119932834456196053177338239980481114127720574926535505657415284776931690501500693050321048112783928976454747915237350180368952113903009795135070949113831941504440570836510124584190851151903409662697783016167038802231545515576076468081131715577756965867214839819597451319271522740578337762054249193542776929497199242296754205601772452543865147534699185750992541589164511671237388852799356623690310758830213899188589025850917933203477191227637956877595428247436565314201505646581038783521830598779883821098256949615939023846601525327800332855917827332703627549957456812771831715181761470325167309597823624977750815190846784764052839262659431126266416794861439084506829149841874877457618015306135825698526244804756846965791194507946983523016216366739901877966079308830619063170564718413922567625117778871760460926851385174703124180871706446563018126259904958354834739773602621939493546812508755842333559817180376950365084069083881491312264160248866652194908121668019345100677721412997962086795094251735695187647943876186973389581493955210383318489394034628268142791183006901353792336162598022244722128495549030698328290137766803857755442251975151549444638612605858892874778560590214448827570088007338385552696987808404792166205438979365394247965053567608638297269893523198107503943321839154559251253401709120165547826317464524659700452454928598001949063120368869880865952039740300556609853251952010974128605074652470211527713768456442476558299405427447362062665637179452936573923881697552327942313797746845516652310448298069522462105072352347828211975074293305175191981757323536482367667863763188233021060165531717548868353516871002215083358481022179914482737148030649466451642378896370583395229752337981963130581381573151929558044202013062119760230146607895279319855211097875690206715584726911289293115621092538054837855220448205751243611969328935653613892598495138407993025562312288280685816218815538200010983642587011996923666629651477390977676424348867159968289817955607343495409589537689211252691465119150389615226162456986579297151136913489092960666112588739534247819763970668397458940309840690125532175171852005937581157134864021429847984592427791413922065079028889934923167436942067825716188002474167880154617855163096763781250733251857505510353865122009610830883086242843326500543631265183418871090733236009783828199809331333434470184452000066328241041014723025674014387738649601658323634003596063600456455954143375459508325733837636562036757214220450548825918352266025967284192253104265705654043104011292372124155164326330993423977912901794907892106381654760347553572280033714327879749978137905528144662150960725572886362917334906018185294479630206605404149548491804809889110794506979180731496840577907309802542101064005640604893177931916952592904336854408298613964841383391941838481652740909266062323988958849297837474007746019864021760190442615497651640863459916119126517666768850349980093683727043157543063030833070675585656937752241226410434521062434229394376923343908530115791257716367837680012109578099564066434824309052653309955881280131691489629231709195665778512930503031993489987423153421477321435577722047564152454604499551421658608597919787109523796865594254891462162613953601649085456479953274815837211074812520055870768823861291100129021923997930571286646716442907821892058613270992846340502150424225385275495949952574212588835709305170350218345529204029489341288208478003413451379803639011745962454997745857080659286634816456789570234975969797544155393511478038678543622352890164778319877996137125534343029570001613865242966232196785649828753010630420342126379486427148161492758557204337925079321431651033286201424271501476917198640165592740470764566977701600545260955660158617606140989097220911786998016359990673336469515375264974076124834322964528918143365123909223951142121618573343404231761195409535532386506567483080596478308317496742787552795764276034802987889093085085935646897938247617101850739778496009914768381629338260547042638025309200041404581645187052495262205498550567703270568559582240372547894226391354226759510289611864569762257454078737775163003681807898640515405853891829873423651743423662565537662203696427830596228188484387999409540951199068080178201625808443106237385024827545224740867751534033911447916314548653779447585128436786726338303483703350585673445136012638541487432143474962396510403731881991597557243436464755478428002574979095978051043352798341448013396299369175086271448193450595372817639413612108418788329137387025279226482619967777252467673353925999040334570688354210610362453415198746635446325138577852099318547578870645908733105238179007569210191133411728351067844196605635458343778780081605335370994086653016440661504659029370121586924979264450894690628261953940104105865919513134839246830548648384665475401604832098361804980628739581620487415233081173807375941983590687527089799688834506324910937518634651876950604469252038310690157667457306686407724033306510014399887107958963503238382925706135984299780324564728784713796793425482160761677542824600575796014380780406696013354471563526714482497354532192343838853703742633615935339168802195321101705028019631349962751376230534854054587519842583681714585100307817757377488839986549925066239232535507150114932965574813588691240328335082829225465731870154315498659609266666505158325186798623057467724732695755503186587856353229385413677162099307330512297758995906391453101164838468131351712954233972288756260511286659297576723195254951731232517024221753663990783548346098570317308218972824933578467509483283425241823335888014877993943274292510855463238578798242790477990792766338881692195050446541494454923788574863195790219798619245568344782061075500927880153356741875687513115937896974834165692463787134245267043274674200956839730752570020507640364031627017625577408429632645380737669124870250890176131432363950871893861637426351228954581424355775575282006030992036172905775282917982714478717991564267505997271447347665661013321214751263940458581015940272112987542292175460764609258811927958729079348295698659110166989593805714933504632530881302600084113789905623013248726003884145946502346763741295744011641698793999902502295253011679798238888597446266672760107337568434460912909926040843400319767986887153437393586145092864852182330954655073100263428352811275656672948729556092758305503874876085842358544801268885347772603810617099353819156648381753732828389648435165249278015337587636734484288904806736619650531110433646416330570966105277281557900920622373625259112589546467506945621551002398378174346359447354931017790771041288650568741443184464015113821955386925739138008011875785340402640868475739022411150278449893864404392072876576153597307239516331482508375945696594743050832192190858806233272765868792379851709275884183502418854198941541180312517139843353546108481098503807069264969999759805102393451663138962785797346565984114685674184871240275814658538381092382757635380234896607111718829815569471605895326399149454079426736340920405190231949890301417199379789430687951224834171172432551605920639486736497213808149120962904256503066832000852444278164120591033940620267496953110174557329479438446133126409423563843118833201639342202141484125162778859439813917329879659307422466396755725828288249388842606131583911405278764984848979753439381868912305353353177735971792394552469323286145308295125705675167031357053372021812669865585787190422398796840981971429090270089842335471833271706816396792503009913229910975319460585645417425615726090725962333380251713734221151832122961923349343570255534839974504109003025965085490414595923402996822510375382979223788419243005199484130741439587319834900035755526984561912112736301565743143594316641410586427385296386574619291557616320092458723992342517241514959048818324941002201315218411211708215517410953717775348767693254366917845270946213205483095454138564033374504966851603614869619282991340722348101187227836278823876996576281828618356630407445222739155321863119949827000416872111724533317321405416942475433370804575700183739537731631862145271374530986347058929973933472170116483962025470935104572403686163184852794544266149229445207198341673831382527582849173349296587669140331955000323215537841533252199399427562354951798214825795137373791516107523055619571273817047517204653899015441544566682914461944449791174159900062725302936603138530220558552514297656872280882877823168645913804491048958105171623450179772473660232636752393329631623601840288274828703273825871285357587927763672364282427056423364957159909872408972806564821525655624636998650223901850828841034156388113803587840815930700254572826773047077970284601238189575083022114025319091494621553418210661585042054657735530048932836138386902014403948967072671729254088306922603639550108481788153007183111622580473055741370068600003957407199165296415250212677140473092844715907959562371565847118194875684246017516371971620930979154516696989374065566786957299088276170237234983930415199737292037096009808793032799829676034569543748031835102740548153437823325167913890110258574624235725523104885260299284238299183765105702717609880083285668239273010007243263881647294730205987161656965902411908997227801191077636126007511899983302459021071839628097999976376951670851434987005989311863073709180132620212980519509999967919947201766091330321715846014798174184227310888443142065062337495884319669889974416866024815537706805576355164494358658073649315877309316174835537456422466828431028871371256890510780311192698067612885431769900825510310553731120784587637610067616488319986044891082859493682475778397866143951386801810368108536235760314580521436232474360454671325682336395891318987851651637271010791897283800776367750993657558854345911934177878621507655326688042244153276685742052385729109652472413219193337711334641728651151499645931611106458821473322037961453337615061202635763437810118370759973938845270828284692279150462371686934170427710730815952227941595807424762251051775703157709982499634117507321629132491710548514702002317585838148288796524333953223953085300792300370515548297701281121932629625957459802101032292131268124953244603275315117893362160090722210976927664168270614332641041053296738188340899017192174960847845692731943703972451427518218523191240006552400791076618695199723556796931383400148511970735857957767503127021451835988506085767629369163305530465070235949072431436646377124978370735304935390784598586117176810170554925172913920151728393759345146600221334750144710583014213420549858552770980375221081975906489222552375964190873658974725391989326873130128335277934643247568364023436932889554167696233077990896693848415282677381249426499547914853121939019602358812451488050399824652857729234311175400632380967929277363708267772512464224835623201740616139496849229730160285155145312390814633210424129550751788208899056896727425207773810532187526379627353309424965567646278336266716566576989258442450426112056763625701833801058063931915086812068196143370424567638888440898788180480873725130304243361945547028933555148671240206455236070550605792379608950508092923585571761233498812177619266861120063723586554638727634740898378423961724132163594263422334275505509397950849171485049640109280959245619400398379993589085394500272324488859399271029155838791545719543095259135401909712818272551486727272235956055152621909531337042947344604096854742638672047892605196877318095732252165853120625951954556371207652245395195981213834621423772020100419256075611750962287751092538160690451435121249325935651422653096595150609723612661062381922953166747147400350496147288606154782004014193222616369404586838456778467632467110379334530450130253799728215645522265426433195770825586228649011046224252675950683337551603331501671492436237809681683367691865494015994720761642196474519261769573805387139037948573698068654081563730299254403954210168464429768455812349480194830159062113629454654616614571979535373958241348486060538882540117237697942439723459427235904957765587508421299709905471543935958533819340660816597131116936158698242160084198309207186491154152236864930829809857220424982867090650342335323139412055007390186246185684216690608339467231848937331085113724200109762850590184539457782832334938683054221435611184385754211227676934890174366644558663083975301898139939226680324999786591460541532997553180863846635075667435503502400385014841194141223830805276554092085000620733386655003410793135293681272779088660281176850361861425662637223510730737932020772189162574119043223996213245329821457256836197321484538598209868734894947278344659339606974264701570111399043574821640700271135206994547156782859684663670759321345527991452447668472030019549955393012772282991331713284361178291643860430736677496936567528558046133881415856728538399543934725267792096692913787332313474238395237608243265793539874000625983729418578641736328503655545927565073273309540050874867515085281398439879041028994291546642417073586743650900137356395673784294931163026496484063666849361869526372391879153435020998511737505038465682852407148755938869451985771654988953546790908053944216114309555966782543211551620773686624657350633833738241607329876506305396113464197659310297022728410529978450775177369640009723666760817739206611776578191021165108710763457461219471955152228209525816571440524137760711764039038957156929546004754316038765577019125333159219849217878825575499285391765769296281808028386351203359175606718205192879914948826295733141510724867091588694704216937904775242680412621742046965756769682064958011154163194171300823562093529596007606439740388162669625342907567380577795946520183496468113674090420411267718872039811136000802107135553423224074894774615978938515061270650949817180935458850236437103492062341057912455364581570795309303654426650153343492097000614445412688672487127183589254309789835468520955473631450511741096716052628842034702068426603532121050324937210065496907956565250795260133525249780042276756940576665905802586930763997410329426775906343486999012130481161723914612393798871826051166480746283601622842795605312136463935233769491428404985678446770415495609711096902047481521221370724208455471013539023870123983415029320626823018175677395157592623322859224297790583066780500928630717138981838901403242582929224449709566289612719726995385422494770914557469061924382338646823792270905844816665315894301941294098029124598453710748155404001693193350880678002772288034511927274547693292633791303629910061634186888611694563617191768579560229741576247293491858344373669943590487521027252023537630763293675242026673245035015190942187651888181724905856256002019474249977544229135108927187512885603782892988588742126782442130785213597349494381857100141369632681432442034670313373443642378310357479651821922657905316711242464215201775229606112704289204615883567105189111798486075100799994344719807861219076810283544062433213420088300993259969050822632347122789681848037949879024184680924340246055446053091039656582884012563999454190464872072450034469970594877396127178572882893901463429314130350956253044810070621495978109840528572594218225425318860009920616058749551815992104862533368165534275038925261916522095851250040314405427009967977614048776827773070279180228652619795532960460961769383435506664039944740898724331384770378973559077116882404622983053230992007457394968643960364972290487169829307578828172311519773546230469943152487820577389300789922574565759990648210569609744102320678104808546359796009344878211040491389525724909488622525081056027389258348716091411541195548480320978553261818982324555248847342501429205108716769671564742375947212807327528562710661661965842578919688971783316393772258792961750163457981211370884873998845196162053148760685797528948450483686314785793851187087521681177844414009958988897894763366851470840233598481203995308195554097835227652043559958221054677938701251615646752105580513051333404143344939486652045682574109813992152047276291876433225711321785078665558610470883776995479639938845570372104940231691713312265886496363919649391781622674418428158541387530173112484275448652102025176673101455431305649856507916947671151187446482317696059486622059128441370703829451545833663073023384748925380101692059445622845588654661784573762481850536272955905749078559053551536307455764744658724059525778254440515962942727137286754163326672075920050826203778942916456543442106713531628214785900407677676612102029588912873139988652805082638207568471924451943761887279585156851171232382435931870887952277667049641813673482307201959688566400707823139515405279105067674455378081349984331313725860790642961458474117798423211487051543221984537323906980392107191505488021050607988823585501421671154335726231670861216448359466104167050334243075258080859024621440562065508823332697055068110119968143722323207852654174229881772218638139503057136974164896708218106366859694573448831892614716361232069478778804151586488807375394002337295547727866502132328628010865892409928425212604407954292033282658639650260107126996368008675125228431814070639764232385561798495741255068136899733184429080472109245665547615553356488375341059043521191558402188659952213132754137646313292944960114056773166615952088241975294521315660777536173556758061207566878511020816134018384258928413442013824022652200211304041038723438931918668363040233294060199080565305295927207652874020839007771995393104088541534545873667255839158793322552324116793432932351436940980375565895905697220783689831279816774983891344750695198451751674811611652335151978106611751332531369657566685808983962621586778078070349770266817226831277700359697677998097563420662834403732855733509087637867822608447282412052548718314650371779378684365624469083936789717371736397443146717886590557044351531658107756871115909776961594273038389415943376344835582390045606400120665408060587510003953484201639383054541080566669457063956512800816555001657285338457214240204920095342600888626401414640967190998796612520536039318930076194600627855754578283603856100437771217591089095303163851586905993545364702971338100783696478525724850435651948714156096303558503247006880159252193539136012186388121582652034996926139013377644544963882264545860833250602474949990949829782890678054910667167927448007922338433268409599035638558045056899777490812151577879322614941166085528121771691850665323838849993375986752611497308992486969218777110148379447121356168464403535963366525264183806320087427297262568659840217551391336409235523540202230455354032273105450389704847254648802189122449030735977506313244242659127260710896366790424098896968013319960015497488387722693060857051105009444792327467208127222764443617410421984220466889666412144810017418961003977961460382735331000425884693770551102836648856249406010699853276730628922305385337780908790174522115725236192481812309694816351778650177870127566260773165548376293272139016392727162371536984663105234621173930951852873591301836616432733501075375628805458445866106366865816694388898641720325340391181112248876291867378870395283153128512797584037314197394615228051882738207682490546583763031477196958131022435212173048880134946430764194005404020970640605206681508993389600535373090909278797096440975630023137144968998279242713695065979980965203155625488773847970591928811894608742137804065680717151169241319232574865100199320503585818124835192440136990678346266857167119046663462034044840341120257137970362427524917035934489867357685028238935972851822667773225567661910385101053719321038104818903470546652622788284298836342228333753944928923588886524859247198211933555037288643991606360676803971874833690280578438037005682290918555998757105800769357367632947741070075937315915124548632120577753986079361395993553389973170437975955195090828747616344162057013270177008177028395801453618074602999718263403659643270719329218952588219408123654475621249850895102212445773688150347127712642019948159825254150941916821740975391139552612461683460676835984528614787256088419870509817579519338513435436203298447687338411712954293114055771720673428181268689987811589091964534743614008729553366208808118338620923592565846522358118567919185537037271526663350653972792552636552436464857098102583445682675653480225983536741446813270703337449938062082136296170709234359057175246454638030420961796149013819884813902889314154130932307311114773521101192015664797475326636490752290131118383703783015459819185226474255736635364072401460399230932050847373236001545194517773121494639533184199383473958485476027553888196980575922948956528099780645168867493730244916886428518535948526741339278254951756135734079564297887913442659544888344250165881125513330365952497774076633644403827464479521539630364446720076643776541776602623444262643059122012644616074382685080776456096919474537259827666679193327258657273655668537475986214428981259893001305803553959253104390916397105002177379439292634553857704201458044891747701266376351588073808481199534008205350829330821588026324038840288533725466032281282140246556605431087732349356063900554097960222191805074020857931561145874836801364369564659398237611387992026709177787410825171639585155178794584940295751313008272833080222454504869622610891346499986674617041143621452678528022184574969576024447128191465398921306131258286277651567248840654996805236963221465074852835888035921264150603853722257528916418252513718334952368777677777903164932071041082232350407086332048568956526866067100012064305633613968872199187806714305479532842421457967653392380190395120116552341541633899463481998296319286112775600366615481396129193123402826934546047082588448427817651621223304220003037846787955697327310755258716400605581401224818085790864383413998488409887048330890432795426502437733509264649316884493996900358531339753625176533107663590611168238404173925779326463276827697259114882720363493554306373307360223727010894580440252758268680567797886987305880101570623410740449326539943738239877167881166808908419046548422871838187469566692266517925415126623945065817342009725594282675448444853264944353687764890594701242711670130134411850810805063267006579626770858076919220197651183852803535463673591196241997149357398522483634390683510700440218139204285749662616079151381914984229739078082224586787760259684512880901274159821386141616188863698486872400001460792454478369224313451175054621362207474638484010461511360567036319338446931482197724259221892435750285221562189045541938236980284891383414031915528999376237524081362476620293703021697253574366773528637182835362440462669243925538397522744367612392397447645092832224248743416613116440695326625183689468437832331994964763400412291749623006087467709750624432343525031521955098351840128131791071547489346493662783434939591459628209080556722520861827151578684172560550273997540118501526730196933379199988004550255829038124133423284678123486325160674426367411223824231170857044076777452940973295983083782768465971433624387257355750589004470131392085124885695674189572251787004680218963989815989041754566763481650565061175286780899078399756707318470994290361599071335898585067333148551339589753884471175000216076051254444200567822966752177542726034290307335722642038368061007204525145585966133332483311952721844879291365426892385289905218901025936809074459455692859398490292749995786201270564469147320249008629061473011263664228122619389739867399291939695258861329021021404095303248278870708765754582903555593638171254103889875079700108052419022528027681261599633155211421333286023418762928701995835433722786256640403699384955850281042578537761379529775293749852712229563383291358938539774357294976168366232584495518517349019742238622614110258888598304065910574529314221145160433498029865382593933567004461283651919250011950980035870422719842266886476025019046056856784091080588854705063652100417587980260392740141718419154565230871884262132596477893055234114762310821232275639642100798414503786438217031871568897355038338122384136308397209757955082980674286876316898515376579498860541701381389368154827907911876829152511693335045870327314528139902523529475060558645943819570414560717241876739181480192122142056438390969792463365816060578245539544258220061849952207268255067572899001596422602467269835307595536666071634691941915056470884957481682990462181368786772469003343230646469532619484467773279457700905063442370304545943163482887653946438539207239987336210146030027847176905365932850911442697916164406375318211788593963855270858648031756062933507767544748111958985384181863435280113494332049286683730283791463362322173941682504550741499826531642881759954839315683245188618868476605441933573231950480311266856853780985070970616294301325884901895573625431805647576297384057571354401148075227127224634880914545438867646511848927091831848957220761262840875244419024132606581650211111688146247221490091459908776225788597781781934579902951561858420581396093364231558907216560382407519498517074225204944774895800505850625153300879813739414752944393525788987609385946567292884543377784189781916753576828318160833304127627333903916905206716260788437566055008442826742651367936963154589339211143687391269953063013720074615857005228119868841078524065540290995491749419235659667807134990032322063977010855953759257529375315679239193634028903459293812324749165726563943449996093574721681206987342635296358985449808394037919681352472328192673668814064991474759038610996349363398938430245172047601440732310057359218364101260500010696778738836025860971891589421372105785047421994305002734466188717670608792878811807655377227922520315769805023435233288969845192488510142558927812510779930179915705936092512816032320243169420776379104561413941616038867750865934417482345201411143250709734854887970842971793684661850391807065435159592937983806920197454558734205669278360108567092926089054474796419494555453724182219928483206121376096457403397824477156571196822288725108582243404052996118083586144484211194683083252444087330405023403796296202515576227746174878281053139178295433563496164897323796600450914244233878028966091004565128330099950134231731400643308080490583209215572528340358336776904576387454614732789424841038257449816477785478745230634104707321952234123405450515292744005667370536725017947260676751034793706232814550399053326995755561236794103523576601559520563494021433503971786862677892968451217183754492107103531747454750697379091883568354113774194332120129243342692190988234432599117922782441127492080028550217069917679851210977417363979394849822742651284479469500029241089737634368745037027189249066059202490094822545521858438797877151165499022125750663435988415451470733463800446527157395613023110986228589770591551674400213975267854766728255201111796434014000248715796001680764721087060845294990066105366378917994907742239623312227259479568214760190831297554400640873809582938084822177175013130521027001070382916501539948228011052330860612747559908689342496970221493830698952718767567269373835529630987668411414639424901349234679234929871224594420975853450495665683467495187845885953299400492023539300834785067681739818963138548786050870789271541220984584377679830425057743543425375107599759097746857861770731383117762162864543674561516400787451715462797213795012772670348528701725304573747072615866610830022031564384651837798034535195160433046923401049076982734820685019987081455321096073629797046214745765557843351010419161800326036204333878441366320137355808181421487830931471493684051486334351510072817341808101243652677269574452786501148285460208215598423168776401646751015465895567462312279600287309045130639051276345179907701906142174730322773047373066585627715485865911492844021879211473648640119470400419067323381834946312363220345331878768720969882555685119786554222276341368973504405963618286647757535300504505050795189336051966820375344273617484496024164232868621634608484737148723582405804976646079347407992364564857636022111799919982376721670469044999371316696011982833149805024202164234729321359520440001202812237773802717934172911161611603552825236720566696886240543162671974718743374717262194053917971242542243423575352508266405165509904269894915382281454703609298854132011678950411521140402011660145588096035938878218752119491338187266299734041394774616879885560722005327119219600489717861177958223366280985304747435133151868529692587593752703566780117252536363593190747090099331030145494644567037686076721661291891164428169493928241517250085957809293384251596845047837370136711241413626070706465065996385200657396012636041610851858326064384608551959812391536209571864656982729245793736293389102993954103821818574607091616923592017062089882734972467109261314665978356278887494301788459952225710880625299198552869323226952118417067949334640351082517061660315340781442408251564899653957064613364733865895826369559312959764622809934025092977276355721331453653685844144163348351641932388765519824990404686161011355776679698231462557791536403940272354638684814784881004357785568617720057029518832705327749475257947749278928122379126100265567665485068856155720365915467883463738753567004166454297211961294907268718924875610375855574585211461522158743292100138319449795923576756861938415874096601973538741525732200688430915282297596740920144338372083051964595351777233639895282274220641680974247353506980160176234916028872151280946821241819614800622978780513418520428674583539388782082495020504248722500218597033262236704474220175676389859813489723604611634943293362196526233036440956105257468316163153604167003563100053224438240815409863977609944587376552480112250861146731907876145598485334740736461707921753087275732331870351177502216055050965705331736772363334517512236709044104799189619586674125110124497279553059984333755699837290612722159183937883345739593151934112584650711382850506518183738190978615039743578882810566162745905617117534729878634105366954107333460893573925901355421656802783951570063814062985233078750961907099829168357845959874486441676840177230179092024471035879646844536670051978737477749919533670093192049031295324469621262927823540228277979970604457522978060607049514200090803088974849633329013959336508583705365115615666617835054924136069383452734103867784131192668876588349391106880922169926292387245921189174849896509710754903201430072881329723906586407938912844574319721831286335910517170872993894058792522147230356342517856422025826209127298180582909180988763597560199253268530194730078689632822779832955470154615474729308697633315078293064470848552147629712656150318285101359203135017739559586154406295811650647043287739984327033938079508871099281694748416792495039087672927265912846514930271389262312005464149311549439785174958467542719966487529816897513429426968686617758582226811043188111865907968556532460955316304697399454423191753876611500046300746884342277539798455622421517608913190926394862755907846326150558954925239989924932725688920437556318476565185847426010007710211883966900505969216815266261799942096900576363887845747347366274658676948070870532518771278837917250392847984117192223345429765836316053203600240334886648874475411992243320420543078391130747560547419469376582297018451533000309011111407226828798077718914603840990496381520392300219400290525377156917944878541069418758846148741670115821158400864675570661425404737515592869467448291709829548456549174713528127198382143558973048894742188083112819807297175521920030737872141353954941598797767849977303412947157898012008654925367830621653476150028191568227869035899074607223641780559414376603689540952142233315327731264033229640172684369558596792120669511712632498818983221029359168566244159423321801209296495708614180683882144794291093080551291020995222068384250899235017089297401026825748723030237866551676504454494763416112556157526460058790929043586337248628651855975308741209269993645808496718736544887329368388052256887194085125875466926036894302304846875520526729296198320825969197636154108020271990885375856899372864863025768404787920216982002402895817937406974850308894979922824694173394266921439909252647693094728891125670300686746849030270210443414214927463481136618923272670344066241711405963798107819673815221301148274724620170605572409239343586245051237814472930768957325701530830587044324262176090077412937184204228998795182393585343871276908923525419423223511257046889677806038824189058364814634273852811322652334049147607511932812020253456858259872736685389341325462856501580161113170329563730024937898230474718856449731555833287081251577500392221361464831821178042018121393134393477136011082634383413882783211490972650911851539067051510821200762744376031819379841869193837105474358669025028162954899365270701414855978868751735756520414448356466058899554223576230722816819946216427544865240856468588424127882804072578112859064883472957343513754642623024352529520028334856798527020310694683463033586838085106316728310835509667404636568806793532978665868785725156487756374796616433575102651865155807176470126627499399516122547716139125193026228816753538219058910034624702513559801958236564952655935539578462185885293985242779524694611456859059932470717264527877133452303784425353390527698719243659573535970457000077552532754062126588459509926731678178719372490598505734354721393193137240401613273224913940131885019240926242676774158061361237890376148467705057739252309529125399219700674294343316144640682260778590545814340995499457653679857187460273984195770729972907153266601285902737335452726940077603892831908355672564248460212083307689843820083947702012475895263342024352729868885089772629802641148892829479461088314468528835352126121812925759625588597440972868348222303193051194874184605520717616078823437868043276349795212166587726965686046063570120169759050667443031386550801867215276476168955447467020380604247234943071573385932227335591888424609258841410429899468589729293590190303718676589208624102333676650058409673300320566163542773705778027658641386329017373068540305283132445743646762538345384059479218480137040720037372974427260039498385549526248466374307496621987785304270226310205584912170522209211295321957450796085951572299972499323335230545208666251541267691134030708106169073590443945474869657435800320430163870358559695675653042078611756531331832687752282972074761501285231339432770641676787542625819291212703234397364637952535253021345081771256039633107003263241182683374445342957231690182955531822039537870722614819037818056729985313530934859200334715666363887195685669970479657653087809115610813159183303248733530770034665453009431099182868795526389178946004482638527903298539597457529946299816020203081983689136285344350467092187869032505699008548236640261436358191452566393782036811694271013539547165282336638336111297685087922789287008818026068135969769887989261531652714981923063643654395112857180096203503562229278336974517934707827936802646819444762807997522624856936200579127426074002855243637015753268720265542558875910296971130055794533625236618083210667373460384887587452566918769558726949919213620963468542196953451104217269254401614785918811515064565522495630178911634527806555198115016104980804758776568506917131956442268620475519164876456191397056201505554558355768325405032650306073019745899801690452592468846358966966383209194170509643145511628177237347591176228751267826589079905584249445818488052927351152004087485426007926165672665292880777891893907497627471081794838073333932524841504907374427206540869080629254801024193114407519856726347039494144637669645585156089078148706600381102889571285412378313141446257294251071695988307635409059310111905843202132124751215066723387060118712558543373196615247443034305949165155071997504843972003145117164540876978016977325641029597879217283681208448884928987595265053797098619234047595791433238418070398811044037822880996193261444210841044682455287584955088119423222404853752440715990753402397538794819097895208562114994008752350497931447241519336110733136115751750534073651039709486193415096413777455839766903229187721026475307988172303925692990058572171850776067667783375569072132587984077588027745080287129864190917053937705849324661554808543672907667569955125493380931932146482988019176850888469117932989710795869205646741040790240550695161455463956006646236833940324312536712601355339990580108296417766556781188418186187263707771753949539952138959969843317870424499253415726417664475896563484595580192696948383731955902671231323231526482774053060333513117044385118480719702738784346291952858077826128416662663873106991393682507471134525566429712845072553221375984477487800393013614757104906278981045126865628715806912816597779668505642272438385204964388239696484533164328033200671446574188596633851883040345126366803184831843569813805096484559614375058229152066073094765115435768584158853168820067214197143898978534164202143417291678236362672213820446924402236725708760990812306507656459881583595029078420991815794952876458494019235115355439869458891965885203428162721958872637245185172990026544702988893933075970330253210264638062409875814851475597684271959841552872996030480679694788193011396692317643467097983946167861290751198810460344016082941295571498219986537914374089253952748089510857763129954801947175184331429822116049037849181351679277676497959492955898350098461980356307983681343705647601893470804454846533740786008465213674101255663597207635339773612885343494625609074222577581026399382752635112670054347061920389831233975679661214892476245968002478933822493948523266987105049076613455767159318315688971871003593638701312569186121295166139399555155805779936602448428394605346822866117800541819748575214539742617900618614768909675855673118976022729543094485384081196293576428885556570885564666161039350325670616348377134261102004947086133216758464275260170680866772218679989708100528235775373903059299798010956512278255432375724508510685783524061988771524572618139013847766049140200522216663725111031539167773787149509740222825704992286711241257910525938020806526775996946788735978751362757050710746253921662565464653966133453844938412440782715622493683578567285513271721533431027222537212939179798784722175749083408302595137036416686437824621197746352811407042299173364103433122076089665781606035309908009884499952918499985567327255215454612675592240539296266011904585700003372942696466256261947612517861933093860241374643943622746126378869953380257937813896196422231739729862776406905337664916392823288160790518092533672265712715871337906127506710379917491403269014853193798195306265909460166333401272270549220200541440598220410400630634534468779893610389832968365402409077264495547032076056201725980432082087963124697202297754505510454620724901158039186273241165307860444202866158396462134263704940069626679862298843551635256425988105087715364876875527881337837251009800756204672466661188443255055085861836155709268464293380356578092383265178507348319703791026807200453333773321689688938269192571282893273125900071744199169926215667863897200000291088996036320058149590736075143500719002313404227208070014976331182071220995792345773999986624087137795839245767482765387996563667130618191297841353371615426218321713642590808007232050029309349819020502691370511220510101163346768488932604792052325105103221784795202116131490638506420956168600725542659973644474100044797256738388696336407350775211248338088426559202259089003528971342490779387359289243550396905921167155760214306128557228153080652463448400093846142744942301341380864795194486403987070694688960948250987258471481945227061200007987694968344077940256861928535919063695239219405833287683571580630406907263929329046328940760344909931454268414424350056390205477138042799158109817594321212552701588295041584797237411558341601979364611714940167826421608495754269370247560935836739435284867257211146737602129872018444295314366517815968885073770944350988186261071873749720848626004140799248200819894067897362983924466214555706378828159866342675732422095322092271539660270802831610289045744238195404728951773710560589987988739579293121307043391527522638385863294416261847269073258413291761458752948867012672672244074365081517986605253091684563383280970000144794176262791128573324147804643254576717502397710204418990684841765540926163472236284752459810328407861192778677216990409917983002529258397572585151659058449196852616570780571279659646168600019516665883151364565777063010933894456180167834708548161288083672974690368776027718817487057922777868564419715389090905362651417461075972315054470656654902774079882769706011556459083523062489712268829873276965084961788651985697242631687826490118813345115544893643013498176912454671535046643683157615375497978726280857670148123249326123914867591061036778986116465103882532310065406505260045984890752041981948375715381358162970733419321943899633665685366888239270770134133548930076227538807416615361818891759320792350484035974879600705446586481024068457991129648444482931933088453637662649908196708316779801949276710913019401642106623674905137547836809387130182896574511778532906836373648498718116029093970273367769677909437437336373446880162635855396682071928807832478093646665759843283120007955948693032723378741608660583875450109742059819837207191490790002781671066391269567815351474794939595663067091626824445204138085028919188092312955762432704955946840140382555666629691300991860314493392574312989949500194949419819979557976165471806491064837773170852279222993629624387474846188307917917380710858301748064908481276017751570349424139803043012723353649196994417572742239195062626033814156623123914955438691377177317557981085252087981028886894379912471009972269970923873625858819382482590367263149349105853491170530346583527877136889894720636807457104427159608021523744541492129631531687370698043770716636955318309796102621503042927502817886449613696748173974260520967461551919683110014219018433355097744427552200089595129148279843788746924892561946711721280788629110670611636472066034152981149610121773421552995141927578425696781254494439274363178179357456903568395222840629649134993594240421218714630817992124285091337545311903965479246843512562574606138595730341005833756725747025221192723455401282421688778094038966292405511709027099204609226467829548979794095040023509430743475248805382900996119468467704846552256873601984918877967031502990368292015623710578023261561070119858515260097329598647171643324777211474540962818204304916020544376575050759699141183725160444144710578974899841237662291233959023782481780052565424249746525212399747035787797574774115193164137261267751843862165563290202442191442504886709408778504597752742953268141635210103540765556184315308685459619470325431077198358756133678225118384286719736653513024431153130976627739499323257625840293511125355751997808211651601660226834620858648116727479865920386670604734902028119054962384036171606651332350167851669151940094548345849167283274322614228142776156620173812625538592591426313464006746695813183007805454763236915374302464637680654705341285299925349202265250100593088109645700986042189786408745155208136607736174948890411355706252767038803119156129775767988452478630836473441096017442913130082648432302232049051054372960890105400598242706851307493902223666225284449727054094839846761577621052575441493632324968424163760705813954178826878778259937428201674346520668932520793931064245769483323959179006738386373367401321509042789204241375586889308594717322958194583300305262724614797287028978699204009543736018120256656585080816350868319881728754786228122640965558653951265365651235190363752756340665905338095331121434182765620615886082748317052134608490362156478822753518245033414212496175818772403781070678856889516551699404851747727069362550313247803730267515871656656260272309988217910814113262950100587642098323519301044054482625934271306785906041367422641695608340486993154558394127594175112544969443958689819451192893229362993261615865696767145260256630456581522061962458554138996589469832028108741819648957391795098836834637101076098581151691528067944449815414124827811484087811896028774932585996619238980400024973889061709886545774457985605118483529132923031104988114852087122435350311736058578139406487769737736545125288004308870164286400845127461300244732797991968194387255491603960046294373126315985756886720084623852563775958601355836374885382890401653192313486811572615415895716634776456143093683265623297284454125104382810578573602245505582895539068499220310970289400557101767610085071690112801334531133622468656201651078081895037072277076123403925990949588565171788842114303031140756003231413932250750593074514237470671636444387992813186382266265474822490509273823185186193755939599451376771174129491540632717625457419886640783441246030611805835750627135132203989917806922616397782192974898920994427284958554436633248062106541719192381314548365222278402064658752138423826623489799753796481610450927377877539350757922456680631479945692479719250043015452772152249202925360612275725708079266929557801421504083574645178092311130634393469008904488432388579349065966034060300442853256283748970815708788309845228994669783054581439953061358278526234691586960699623865298330453426051000863481117933110853652479556312655343302731798761786312923488806869920591844438873222907121455000585496744451711302441862446479041463880845699407905575986911542390267849598479404696036138897307791883236941007897367780304679285425977177095511221713389282190304466544868009389204473999461952777979972931915778997041627751777630925047418477120333007709308645159749714808212779302225198789382070323228573424637559023982873787797341282145661221125721866496936501110287154158097161891614349587519350355015593091418453691122963046653491197956316344311844050295823319223106333595605085281925639568860100898167149490265563848812235883075708180751908873311498615059949105054968099787388956871912512295171646949384180312982108000021668617663748202089145063381889345581736145825508084785555923948776674528395559377976311283205014536049322472333135864659420774375235777649963250989267742857005514814505786982378137353729453501120749730215343939468295354255480454663403950613815898891026744384863970313879115051647924233877112337033513870774528521783103289703007579234369435641217763583694577734499748015088174299190714804585228695265630153198209017145033745480279812450163828102561508511730397896349261908225581852387513140526669357544443059909492354431804455925497034390606953867853265763062672991116468250448977028793211589404357232089034853837225306052553302171850401214886784458069030674962176260364681689818892186322108546829128083103130739195577619471810319161848920522378665825225209430633693150009658327829037268692823389505901982027724855854477704051555778669178824289110703741327254171648213813539139752307866187719665038318844151526470737520983684097664000001499995552724525852789644283706403691261819086290478760192250790340562865062430818338071800468888022624033809246244051248661715259674666494633920216415186353538460445332138524684265761723870468969955138849697196953774300625631343077753675862217646619820220956953214867927317445070846001669937318411664354896555892412125928616035256359836046765214976299345624291599887098002532894419189567767012768001381953144749450380351733157863421065137998102735207095109036665287146013049571886637824731121913747827364251460073054034821676591821490883993669109910983628933754576527207018325347548788678957167208287955262309843269845711774110645192558636949348357165546176418692787408578285145617277096922202815667173481612627215803560827095255974258894093443964257328427851229173894956482544103890689778577744456737934935590100467756281134377047478731909872222160327611256862591383327636014251610835880630331731608977034366148790443483962013149821797247024415982416155477899263890458593403615518107194891325097883117885562771457333112774009651929732022434218812753512433623847531986528532172362181784798618380568713771109225829342210002299714517834958434827541815137661190856322995019458197877441938982724098965163420999627427637960532103390918516105930539845501588023183129734895440509883488968534504622730407127529560665942876653339631424184814520441512265789285707035654104165671794097246193166115354794039747072201499045476347763375125694851776836591784031957653003278922622943471387161469639093515642848296816515445637162864071297337562305472142769031331752172577506939121907328499020976807378045286652827476085316093658204417315925180722659659910061643668798395397264901480816516406898708307342582140807453375384685126671142013280382020559393564514118054678893971293017131796060394601849788204713825886943310886587936433723036134838661412883130497929869561680652516789906928184898579648227738530665020555381003529562297427523097476932338532052962382744036113349636788120546308473625213844728362238275593140830811922287063083770559262249358995938982444820296445216237369905742290684802369920873734666644440468951342209412081557211495265144200850054851269057820291505062263640134597337435546969519908016973697800910228854738955730162728073906597397862940678181977718333049322783588715332576197988073213204996552959805706635970487953594373226043531645694709853752283492464940244394216079899883100498316555207853903076905413010199871225347781074382005823126809169116925416624910016824261639090806737501102322026474072118421999056363139507857750170450423854593754838827836834689468672482209494291398266433392356688701633385586006063299486990811454115594739052743972637886286824903329684147621095204348277975163933427189854360321913659848300451438317929473332450605300356782708687878320251674995062351372894703442808651800896478647476496639113489084628999532192090952104187417932880104441605825843039835715692521202379839719077535083802649341962544404532614929018709586066888159891678473439748435571984648452784887103232638124870677890204394026680026323728288688597500483918161049905070858949555578647005524618672153442306364489996542248193958157692820434893392783990793039575943214891152596083043431922814938431392196466965040768965208019735218840465158182583527835128187347498644923360494516701858202839851576874912875015116788156676345445261669153550058544743808956972171903417888574510729790333093512085978964802324426646360900962662797054252183309980481565555412350901998597814425091377408257110618744650765949596789679329877203960990316723964629988946555242893228668157726259446748860201532771037765472371094472027125161475338421014279157776968476449794418187389706883381136480725358733659316037002903029134010261368484118995211226108449801385663033020579871527549761933624063650161467782264087359485037957492904447112216191864287698041579889661962572782120344648738795471920506352409787369543666110233917235983501935860085925535026962896476512874882179532440415303834215948312386005648082378013682249338499842665489995838919383448014187524156469641351252754101578231882653089010786611251985901421180708434660643237846669462924874572587585427920798551440750594383121283076689747793358551423975736451732359330856851297859723777064158835291392240328163433923064179394067369634732386346111589324398073581196324714006450948663332271956946348952944046488060593893468152952322216289362515528378965091292044532384667734471368990358631133366893979700041142799621129581148311747397172366547605556263760908400190141743406195192464310054148734157668700891917241025662384128825178121240295358337514713609457154081987326394461189312585093930801762189752345048929733887405313313545640653103089776802532100611756058301088944861195767698867031261820238512756643833602560312540004408790140297611865057146441979416259257492840939503845400125457014203412780947154842858391917525456417488438226434374383901299157525085435377134909639995487548822161552496576534048648454299343831833345411863996385995336370492265139053311089465271387423093816794986392256988686443704679357736632515323016722009032230925617886148865510459998118408733427980247969019433926143631395436177483236729630511584172749567001909342406615558134637818379766973271526698755860146869878948064726123736504728746733516703533970439083997444144319717916989856324440223293192054561462192959504354433716728273397437264714723992981264510865520914226147570991441991096309001440173705965243178446581683553456096994797313139212032000349910698484855504647423167616733131197057866422528002174864992205430708928100888860886405816284984954911601915015837990008610917284304507234980844840296682641383987102663065364373759888711520616672607786995987992810132311275273448369712077248815966177559964252502261141235883063550228908364570416451307113366725800514475654417027195439327112227273050623311083977266657325025623632277928408612850032238114157080136515972849808131175487939051728337960064562956964245759983711884017471148542491157337816506310528532663796740977806386980284438258195766399197238491931385275791965304820691772304030405888450328368126320966533089940383308176656625146573645622052008382423515006503561178207469363250891738533293977061679238067614853714054992898326215494620886089367052673966499830383838944327315147764654436710814966292631775007401214346072431079279279140997842984237673554360658827225778991915486590374508694374642508995171985222672661958228595315817281456250634422944423418499696421337508186637791784947224275197539640774010669476893599156456620676862035901955153746593508360688055398541779555475969307217337600585782705195021231202875192188895353392164963437001011117249493023775176293581700297796628617790477318151178341992801170401887030878634747180288056461873833842648732062931651538487354756134791408694704900912629526785284119702760065766823989956865801291866847905614522892155160302093858592276678955638820127414068778755176708328724175028498303316715853038302795371795610375998552097790665694617121672717363146018776929482479970587177681541034250296395688940828902082613126562883708518530820994624343915474062057195773636024632096773902675894255245467676693114652910843148446704381635863205153654811482199756383007119624201980075714629175237739305579629070484432292323208418932992489805429262423886547347267233557854581356179831865150544866322659982876444750485649391001863879539996673028944510057095903587130601787916393435697800443789191898757333535080474388116126842268917028116457408169575942846923440558147287898727630665414656295302424301916200206422896580977878419770939305552717013795685636678638071437163898346766370655647357529904109181868097444090237095319600870011431361937260169542039769006713361672370013513558215656487030375676892060453815937325734854576303459698249653494430152791419377733368969483116708578801395986803404220120647548133862895881188134235253278872770972305622324193918071718061930273459095094191766251554297038580377804190051260520124361629205069328885034508369315440381562462019084739582612517463579464224946816482260051976208268285265221110764521344014131661094590249796021063250470172839251279539311896662016763283458446258756469977453585612005149871025707593081819505888139726443000742857405348418653632363200960733840366345917601933373783846320323889111286687927650200570178975547752286270797239257599620244978742449983405867673919821519442865496218998232568501698073830126925700329348454416556013632283683672455355924217415737264257945694591876533261033746482611615774470102236737020080194014561771933573206194776402901719441249023040694269606510991521867394591013419472377393387309392898452936342735412822962120321507079996230442127844942844726840998195523183212333321933463244004773044325423953706865093391020191407263745351361696678724816509453470150670317646911853977520483463338137390602509521727010759959274816149147746291670771317443935351830548427681953145717659118844787106379871227997354957003666555917411134474804525969487739231438005705055149095850756714724317901653931293011529180438534378777270959964971660046221046712707655429212906354807155410059195419590677486690817424166389994797549039067166017724907362610855124420376073474484871603856603331999046403543549761398100171648965137886029462940519869614687195045873622048544658506936519640509793780535796890309859231472725043351594646185899820242332791566867645186033989092204060455102926941212624860794156602267581288163595364513481102843917841814554165798204102814078702762578212603937435004746309018325211968787829306473243925976160558553232385080761620454155798939118645222186977631297171431022215445579226093447231567208904517391884727028167410349004726805039923982527456443115892872183023816770137106740854920007702442256693844928231285360426741779073669205523152264301303680119274184502177137024115057643229538062505658370200534134041516629835875177018262804150788419291500204879068877412272801636408863390969302222944930126019794602852918085424510973732872462833670555430747913137432244341584806262641411646513816638685768235535059830606975119700980560217278669976230639944251532923631273759144637944676733296642151509977556602881571225381803349813519040130651841128535069189494502050722186251450588119176892119459833917305236297636100062490578421050208483889826965771716950008210069573079201409146569904000795373152477770959979611012522231359407960052638870747587895600779215054647174675106581197684677354279481392515383737679785076057297810220039328539563166016934592889331864251541543407697765845185930399717519183031675800160043311061310978141456320283195576215181983044624795866574228586456672376258825825243590152390120707926304959442233545786571889384291965792978450698045003383102612803464836735102598667752290227944484288702082247128132683814716343662077617843513365672975030868067072124413389759533451478578108864697279407720950240417180636383598137568952967331039980778337746301931427617041878738922663374674406236840407010629245017312723858727883795553056627513389208520177010460325016361773826355314110617942818849909017524151846317819489332084502534052665270645353720983433862208391721372569061385234178272397309511859641850337994370567041907156976894378648155801740092324203017119091765897472510555364407610649107468621052505020213769923487102191551838569935621462951983359274331993548676081128357561754792392003206975721974783074200629905458321264135611251961026503440911440733657046936809514999927683333622381215297976041322186885330048317375549184386933256242505653094455072416270167991060767209930219003449927376832203758815561591475393731298432646784803936433506505155046892590352597487083743474201078614808692966040675857271373059764933350512714187490283105651634287972686728459909233481665724027708335954491691257767205203446137812767659656698323341075070206272319422061678377416697812924659894540626707747710768298235574652056401186256283458411550760611897126833815385473947877136844284172487187309969141177490090886281799057733249143691040743939966927818663287663469742341856650255401155996178270537250024588649049307260559291232659244698954368830194231634084033377093955291773056446960089172198259073900880825596796258651194275569319428977461250389797881746430941242177049864464542906795904340931493640598033191981542252439754516368957738447995947826011732239347965701494709936036274695745215928998785045431427804009309853444302635507373023356029132268075267308774565476687046289823282489773051861212060891667657213530697180516074264345624476644856100118837494887611005526294842179144907364654723789839789646331485312315277076816446140467783981262685199949240142647685236397403475402381375462422476290282636566171550879217140668952259969809718948676236007177514092732703718057365627069174092621526838149473322270924181560925048661381819142602381717033753293352349240803989254416934070109301623462578549993789767693793136698758882102242151540460890290640243348111215299548089840959441498637333887134315746290817882567517693080342466582498065620616883666723330571789244611278839748421011245608871015484133374005975724940245082971605645095087767118192165027670790996533560524284879193154541830858693514897839696908271623005805068990930913460358159010460513907946694453288742327461345802177339960099747284925450736053149470108197547264830653794824746808994874394077426443796191650923827181282034207067601941587527285291925474556941772466046756701288028446723639295007011895059934499388081659462794198251175777872501995134391181215289807515704130356074879382620409207720117646709208673651123159652403250967093104640489904534195003548263471537404042235998818300275521324174350150409797813007645932281403151856269681776334117808515159007413221884788219655087224051242154960232540565047810757431486086220795907136570139695597810652645828261588155550467488437810814387596046450444456063002947616501345646036745992062681836373590920697898429831543767476809344392898604215720304495316682270529295970352388136843914279031992391564660879081697523275064314660480619408410786584032310121300958586108592992471445727508494954972800410183894910924806910710724226402845790246646947471031929497853782016678476788271975722755286984612244584092690562071565625380664685868927239456769548803015417739386802393015905005042401375609168260665329790091310570357941446377807707829064929043194088992410192252712481197489782087255926384750510841752651445358399309285407784615704069541356544476191612613258983032696975173676915619595971685505903343358265668824586469283617258444905771402552709343107502858366217347352765353859311531155070687979770575457990972635539889674877616868272867763752423044932400759172545057489678764505642015378578772392122698296599609675222018603507516016265238302884123529215735306605346053617055288339540716993743300670499566046877140435863254640357137742767866644389551738141407862859604550449455342629225153210598600754769722855801940381540065219829707915087764633096708366549558591776907402844759370529734222269211456278774839456092425393697146643143879995658346182772243361815602612770660543211436613642238700970582739467233809836578666917968622455363334288428384879557143848533850515644628422239693752958895906254861307604954090768058971769810846633791927740971175983416260824001417005731668709620918327945038553667819515063445372879362747616728090393459788180446883487591919033792203564781112796065903074586851416347911708513692845096744614688698394958553227237386262607409432393605702842727998175080042733452396460903080142488668475207180131171446928155992385221257250858423253818213791534975189758642945965123868789587816633391607829011525399081171474392210928739863291511521810209055032219103723773363265355601463647251342252227136668045452979752360701544359528974306315663014000185262962900908836261310697144158666133936557954300201636554805783974889586474449757731528936708549587902689631887336907616341365381465256252262937055751055645374449465694763759164604575157385696870240574710681788808696327863017427877162270622560706273009315214815224610724574216387993786146273963029747305874772010420996680953152213847101180947574708637682151836733341837168345013235002821206560089304022213941424223193710120827132712374204332144533856779778888381664645161314296028083256758020148233118782144248735594081600467563949502058364377387772697220398762591616049805531395988722801709539965799673576862379600901014709114750680321351648412012470684919232543434197998046450738661376621603839094501860007906804375104983750545454730721267507281431218477505476368601277583912844464057294495044860367896893222331662551426086435335052472200340749015976772182031456623989197896921765330487779663838050473115473551322258131779706719465321737534337539952177838945885002174583575658447341024075005137256292338814067810535163145198868943365601261434429072925278210238198902986520040950910456802473121263896074450694113545219530600341310440216279715321832997841833848193995360652829341940653099585363041224696144518328550403424686139121191345901212983439442144146266958517387255002907330980610918856193499778702203737405000368910098299354024695945681000605929667984634488396830229121244883139383187777846580227574456960845823957204603473521573743124389217127405699771422078537672464429303283356722183336987374637834662047038715391137483269273681911027286180094808929214554978460072743915172507572873699003903115557980376875620729059938927846228035915169806599231415474471422459747906829951566394931690777769243401616092910161502126080115284431367114911929086979163551811683070808036335178182105526563406792861322669814311467994636813066689029087985120851331067492919811040421295281569144054183943421213932595285282506585965827275726564787944353908300009584013145600753298992014022830047944082733218673970485813827922964433698247040319719372906457592099078339698350465738245728163373844329826792268553805812802367525051732673502405820036247368014918763686560135326445980098550950140248150760963128630250176028553970925566704345202922989343883481723742581315498478424929362716866053979468340074357547715483588827216023172800809658461863229089606408861835309677107864374900920735660223825622165175928274213258074881856405360776543370497382130966902076644134790922228052118518848218317798378137297902601427607299343423262810230410465911682955873390209335172662933535108383955783190843355981293078708038854136940061651504665058564955605545233460395977826387211990490605578912518380163597726450491399433586731480431615500639573432760800728901078460550171191895501678766371818049386035793703247231466229975328030804337450574293771720584517711108056840083098426040603647760648553687776274724866886900785845989582666441201177313133773387572811700673002779635770680551221667400037612367816422368396396340361566968320104461280458002073197010967264663210265838616375155949119483534891759672434045953794781548215610173816719700079137415017492583321035772845837411940368980965276390699009439363802885820504461422316079228488696724029254684209973171268224719913121602510697692197074412531237236839527376993532280736387790634374872565080668841201908953273716186745236416878696306054765877217341776578230082940878885634007300367989204947473476749717888615888270644552837457408572953781295245812043443948928140287890633433769776404832314047067216947721315080729852449985318448032866154824367814567180102460429163966763425242602554031108839120879120261852372769015238894594439667791575622599446740727424055522901759895661480313202156468750333362682179711428223999812060174619180887112006045919950490326540333861379096110509498423633178850236506866149801952402160342563969905535618943471065448352066894995942917058843620066027937373400734821015995049616141548273309323492006611592968537181153034130105344728235974284285824215648259824530187768943756476208357395274359703853415772257555061095763503019985416049806962820255725451601731176099892850414222064605854257400001733448814443381664044431252976077579634083335891366642472780438797486556809104801509121577597800409158002024569190188952673337257507055084858048767818372156921004218243776435909097691966269645833585536757079300295416391594775326414211676568768212992585971972551303696071875255565592828986199667961207918148562291478710370513780554660942000211826015785855869342521396420038442334769549175754761797368763611430546186303287914095484363846652533295124084191773497681114654162000075595910050196995785040498024196875296469599584810972746567708941794577884025544188243340818574790261302129362844827190660570556148777627276986741201801661156794849181720684695105558782180139468076381459641890694697917471710576845421645561587140581460266991355849942354437027559643302433751868112600345659921510808082518024455655348810263336084730169430143538717918147138280251515653844626604424410893184369169281434424014601201775979982293818442909264576089781102045326958695571434791569212364912262841903921185958894382323706718013014207839483957446000408952023740076893672125765574640902802927522535750890114887768650955448628248837687129018821431324836391643678861796720354734755410079382126007733565981286737681690781259495432669701597851706259357769205157447202619381293523802143996079056951576846613123089605376860354381720995120544613160638224766505681039685694389223379415703129818833561311430571312843418605677050677591276609247610915972774884718943385861856144108867201775906474167030515633675556158392201047227319321221174082350047583801609680582853657137235808038203459615896841279583019967934273139701729300533769632537304655524925454457619071069033092361111563036293350220449706036986837771805467706680483420245255770840787489811108687515841719881376986997232144470407433034167381356379542335811299686799480297182093355817549775441471832478882142803776457506414591097361887624180488724098188007305974587971174570826726906514162679137005486104529612550655530009920094674543218235565358528055659520345981648700376525931259853464694488165232963028802841176094514803377837122731513410879022596994396423038619683275730395461490994750779337153146676806133672093932240160685045230458082715709706682396496253394130758695112468659494057121627404765801534376535712945336638676888857139434843670498606500724831051018101619944907188014244112408123688839390937431740276976021477736111093839072490061747873242367588121532825221980167700313896307769046588636177352307153656661114165004280389572257791706951465736040946811798401941924092219846561092760881569623097127981857082267558006728695794815360277560830841918513897424545014482112793803425617091955038026001710465137602327568907040505622829210437661939854755730142755024103468028643805177506894265833006266217537540727444906890725529404723251394628211483510184183089297894614064024704366334495214936278943862152196181639425630273829900503126748553755908083723935230830819204681344233867205301803463401148194279790688497581764835699292770409757247428900576104612291464185015636798049773489388067573973818988570774846658285251957567313892977802268670545768827038988849404608391337498888320937566379359898618175657843463801337140246421245012361570354162863585764843515180796775774907107917911925995799618828992384058999036908341081749560741525059682143632163266422037833741175017074898425230710075007730462974051690214099908704723235958365278258765320768477543016135280906149906455787059639916354068346241771738409956543821400165337261240048636883836714975718473034096035721056889449711331508479054464556147493873267618004311930267428198343427790317291867044255786333714450359629494244925217971644724283002256148132224172201109262367429177118906935514094092662095852504815939554332106177142989212747431978849510932507026251890571937595005431409771319927181916287584025815331840131356443698539706303813446132259157055237515169906119069478061343321882834133986380851089767571412637974638484869858449197487216399314557152284344433403990288567444865448800913036269067998529175573072101767542778942905735241728436019496018040742242936016450862805312202359467929636147607821443972713795428246463932289158520079095625124976833082867665715187580113966605358070374828964680311050809958973474103633216944372982178579869948981957288036190742664133939480943953622531716256432702646950168345896990062203928768583970502425409790980830575260361781621088985376091910868284125442855562132126811716995702692995216551502842366342673772004231495787968096085952176970926740975666673652780553603994496693185976332500477987652397674883281579539092962699016176143424266914282360100274213625593914748642961578634031474940237303657667695156065129648422967684925951340029208088490470039044615657315105336192600026416661901891052844363479003552545405965174031095228191281658601309076724812700619634877305719796579585297184552775615870797932934645363404931307843417407892682031883420017871609749741660234669556735032824949427536773872367096624552116777340033501217124058699066505693535389496868490995453822999387311917069439621473520574602024561804012374091287083540028170489496226747470619083352943016086159537578714615036947505133362311191553205164592463547551057985063785671535403871139957064403837718598116061833253394458219568038026001006106605650611842880460543257941942812882646344571375093297447961941773622576348070497705083723425590472417926866473399417482537402867173001315950831352284220490628939393901212368391940684112142280072244119316023411287962658482645258003888538472798611353156976115387921736835121538887621817128018091138604520082174358994229141552293171746996059504350428289730045259902608985988689595556705387852466699273454355860652109639034563433883047395844824511239803993072789774963178568777106407479087451063796378951394803214637860289060014197081872224364798903543208547843146585906007130391266769158902054622675672401175593135144927141094488770357486305908241325811860421086900219765820046393683392736990895234922262917980039029521054167228990327573339664094462009601707298515173054459570792745601301903601083009980702707253531136909917206110696637835506092416119451660502414945360334525609182505327621509559504633000996085919014241610078471358189185218808078795828618837211512527860838899919531696049285000367628194708166680904593270753858652554291422158339569508232407862676751162340609944747469271609887577338057396524548362315958496856757824182765079524755924995484074342744312027464795298929613411138675771666987999933996386886331375154427139238970023111824889052759841385129204325284568208311845608729687244350610423036826789055606658463078375816219928798994409680788079454147818726454990849583283241747111460338886752268620577606180079933696154152524204710064916442747852915240721116522111053511452703111030109077546730907569806703845711874402259550632655207910406220343890217398607889613108182767810284332983677985335087958615648414997622111323683778756789179418265690605884476084605955930867115459037961953735658472131310810474106285906262739742089767342574729996232742713161774111735301424274795269939127797656041716234359035951551262143563404900116740931840992799525878348224976334224291668348900866624900910231348453148818262348639123888220756851929474466365288099561590832566590257242671325505205490060146344828637550136664112312876504251810606863910039660656983086074571133539369131662248190404223826067275920747233342545605045449221334776412544955112890024453008253962915130613215811443922184863426471522795287265793638049496848254697527908314394258422263783319674135804498975048532970691677136303994857714815409586085843484707682290591867412060075153116909346959469984782934858991268980732080062482297844614810838546315938929175809390694857037877602723625560858077752507235139986822933560868084298444573571160630103403170918262776520540998764576050424107844966794257500423007396158972980649353144936579644467354459963938876963274088952521431883089321394052356960220753359549588951443457092047695347915923581311036769277738819637982846141806244646376846745535949566172161327485162412956679655141650054148267969616695135741242408230359815322119784398778705345114807225102826883094689338257698899387425443829509415108408027742740919915003760059916457465863061654209975466788278728156056124839105235381525939818027281959400110361222803950731172406759227900989877343533073929176390052316771638368389863387991187350632614496123244421873330960043801743867599911801705540177783436373326171556836432522791065376858067694860432478212305320673798237078479824360230411825843753221850397907453599875699494754870711459755341895460424210492090375296145640501758554633276014925219932867525904994926975167790750980067569932139855728370040693328213362345145316696476579729681641802985434763762821636497276211390752554392252192257590723510837535054819160637883611742157712095017785620235955642499239592108277582303079707773785474117328644631385253793823733287992827907335509829166192788751298379107027474149932419880112944245951519262415272677465250728574521397293715345486531453346418753190065069067224143787124381689462755571725594369498624706518821649166420303379550175358932701806725913220589132289799011272572247022571692941644273009360434218850913419304837162613179762621105901553441239849557180924328522849210099013534674126541262873477792201515504722101586163922711722547056238644935620687828373762081014474407231817849724313266694053542153241554317697051120436673847197882170576609247946711173641904827697963604574330540354727577490989835765370510450027723814264441679001999032054232154807952844238985346049775357027212988959298422451332605512375867772840669552384754005912264635457861198875971442983036161221374529476131006574802527043173620600830975873580409262863388841567800207031731228005964189249842846502710882122021465057244551462143292165804584277501801832080703743417963597831495270849246796355888828509270763856844499555687270969484257038251624264515030967698037177943947644180103600987010047338207345993802329669056946972761106281131799159681156145329302325105696777456706910639183368704973052104184338638242351574443105178052876626502617650879706532610960746128405907478016945998523819362519346548949966875435829034799566756619246747216836855437835258293393152348885606665120614309793471307185923222391490539340138899819615694581254528371474834064351894623535832393712116498090099522942844227094015457154010851893131995771230848881358631236676408614700993325751789439619373939114220956031126189051632151626498723417103793425289414185166579750332129245479289935867893556613975310094193967288114297896584577992720202345147382952694490133870860806650549174450605351026252514752798613590670129669119152830529970122920227024346473136181849177442617213825692752315957019109239783718969982121817587005444347377696365073639217334868236764152312746583105787704786097983430643279856972252062593372246093151420751524456194996361969098330637898837122811560252115774602472879054662502836225702488621024230391480014392831702328458098356929520922000475619524049025473368670575452095758149832180420536008734422758405985320693952523709555297060576031097109045983511560363360111937881729149319208567385003020113679262686645557986150028479391547034597206340504581558397304695578750557406476213834301596972440355841450916523611051764643715888144892874892832946454431387525813955218517126975507732666444517223550500895083336027885565730669901344616832569666518623516190513211050330243978427049690184030774820912266976660312169578769584144022183315373076715826709674649685860432755298955400221370875588742387724779247959392011065851536676213780552701070286395406316925928290222063078646636154283242339113100136913530210996125464423419904147476477274288037404990882919679292153921331907312440770959360819178513355026979797690376101103895753190444952653458686682608176954587136641538395614324212853440179477971610559961686701684816943556982376447014041174924549160070638641836049852570217141448162287699414272405713363823631518981018329489105650071735298831526099428134578246188191038712257351733348607721102153630253349065178328934997361010318290012210820067206087983218589603921017406407338453177537555897204160279285290685867656945629480305686414317081662425111820118136131848194839789002382415720891602121555260219297808543929115334077800134356500269391358020098262040542737889913845816922291986824500717709811339509267542478956879004913107775138422438299521903706791390689891151877916931228322121364486026507056313099229521906656609525418276944633894518854975298786463824391554132460503483449970775266246650011145951536870828163863187022958135019534698201702056351758621303453615805623136514618143320360214443282162176321349404991799945242681756655618333341153516490625998158879548808169956651480744572046823155493629377022011649982338548625794971683681322621945467986559319708686856101429514797161239426823803127911888874959689856564874838238806674647444540267741380384340582850859209597441567726313097572689404010997797251814178554429058446840136801059223856430980865831758136063343415215491518433568503013395739392101810375944064785724001679573659046842707450433878387597105952534067283779742081154749942369833276874969800240117475405690673935440137359640507505992106880328048942445703139520871299822444541916259535405779756391669203703985589253838356640635411618552165282257533048529367690357409178341356747040834027641280382477629226040098070998442642180111717637708544353520297450454667270747139177833059792202209688837642468576786616163658776184147999817875223928346408085595390123368690918846988399673942171762824550594045830172506405026050581087872086019312883072511905858413303519152342575932359516684842157706541241464058634281518949663704054313417094085427928258233390312649082241928211710151790292443121576278046015058009836359201965668623173199550028747766566976464312811083172734471567984640818315357151240831712436660261081188269571772550384788823816735261310043005089932594751000215908835533474432341699428237184696559743038769876783965617968676921696579542852087389221659214663232933533986192407052583953548097500022261045919680614389785485055363211029585950524669874143093579372557324267631068997092240271401868655204230039530334796060520218989543941198467451723149234490069603999202073489692067274078626536088216816820101671151672792626454104626985084048859808322807271500033721063033483338559953688622662869496657608838991005488013343792214906239352826776010324563342892814049950609248198820532652860107309002939811547512091967111148489863006708376192384946667611020628549892705101977593550937393009249301407816849430621508413908509435653394214099281043877102801633345667362285959607388459573631073085664978969669235152045731232378736912767595464827107047880552898083518966293155701266741856557639706644728311844116816799607237230113582867067593969613879870918114364611401673823492179989097155609670084504829102789087454335873718873599713151405992453566520388832321617576278224192125853072092121332641339477231663417389131809223975078858906087326559342374507016739240544794574902235023819779576649248392525435322560733144328022978739297188132037191353065708305280138336448649630643701300370354636849586001354271546882088818541964326259936954846995958265376327176776701318494636289835605218447001656237959804522989309065637323466251499175400689574906602834139241021868743890280168768717141798829809991615895500393258460726546894562825665531160915079534175404491657846619029625123343258216669250783205644447623699159966767503650182060534968114607998956808404482163191915810718152220791363212957226096746939919488945409675526147362552829672747947799242569290234724947943015182603530558774346499073573144433238700621880030448093775292297934978986633536193779361408071502022292948583474541876730580100904601240421757497336769419145224042257581127085485824914274196990012366402506136901808696734460327282043370886989385439835801267042780362426508387972419171042463240322382243380433804790854122783679424597562824564780936136231200786801773136231287181671797819104505327962523750479454296465567678952300709884657073729491216040348075760956706054699274020213077501289935971486197575378048589583528262372456900693068989017875354164958489898412084707277040068166089434155558686522759627177564950100227027987281496083943224307037461719190960853178073037523045423290346919047511192231434882073378504221787407405842407048078172075399957272504714003799968786208086092662160842268836504341860625080009784908328024668467151756697831734468402390665405544762831418440956851928903812085723567579484683334636346003216597071579052684437737026306403727447591850598092128598681590793527540586294698410772385894711163604260456923346606435713331783437974996755432207487042308208166045026102019269381447973038420517337500095114271628287589960763767839971108826324404201728893537315098107265503817184058957224182513201099300209811197819617203953135636985470294765580163576464987242369492076196748909993877699653462514760864521862334544856108845018706771395772239736887787455603238376461594714990688877623828027328743069110966692598351681322321991331620804868173826664814422998569343369196670318891553406095560997757926472041565917548344505639909312790799107691053442428883197651226786257493171812676438332475283889889797580383733362304941018131652633575478416704500439815514331021303424226812728378718829414471383584516956755166951541988342232428109371280998561687872884477440820410004060514310690477418355807142583691525527590890188655086299011753659265063322327022741788883845473143760404985069271324468281175447491224427897878622516959484060122922568067536491445663296298907054621429705874834926753689651395323398163610755516670746835214934389750648075973638850603708342995636831215013379607247314999231625317911464231807331421588621472460087499413767337881328044412474017546999833517696794367433735963955407387746515737643495471697205259525098747582391616158787948150328390306765028609945431070177567357739269749100941784481694497954216276307431269887962500828994281850008666709881354121781459485448957177191514803451053673860325935270229637360494115708281960198776111497720574940819359275478761692932329020285493776928206233621721655119671053615478045556606391658456948604669967898453945735027158059304666009677957048344460104112663990252207189363887860764715567506893311823925206061803196555447757171402523014969114049467983225146246448085127326922782984783988150387577379758105417057138097494496544828642523811297565759916478695281831135701965637616190421968984872872312546203623113440200347201480012120835848859830924999899997360143431649191447138450817281338415089941686773383216028140644769904439070525533835166355487072677844047671127268662547152131692936727847157081409455470155627461678235371281722108910893800271386137623958163605533404457936391982709347172631783628407130169492807684697642827531417981548755211404948544152788296958720795753056720456120553952373353618310699565622336855041095240236817767741861710321208776251866368479941893658592130386757215972361421644963113468412633368483980228649172284589564162494562313079957766001373682083213444915369478067375938967556899609255656946470174390622110702007778273970584646659808510813013558970969903210077402592741575885086444279448678946711694337121088392444690936045177357435445405674021058952895991921033658692202808305997873502495180744359121792078257361525935347513476432101756465427651611913807417565035725415128122744859106317561360688075378662465265838393516018575328861882102484589341851881819310225511335847002721699220094074305652346278914270351406866433329737839735209358395275123187672124841524359912649532928251596103324298113807069548941387012383674057823392280333235370687558751938016050766651314110180519206763166998834587927349789579098660851682896594686524914815826210925468463647138627849775239524500706001297079985436522100548841147761247217790465364172048355781128088252697372551027488058640199309275685371948042856694369758637979771549033426875278360302134451853074097470233191627613614731494483116776773510144478942500876053477465738225178751108897872748104063365126938460492504467177439657348958715120717725533804923864576271401969172904840216586234046497828380968256654359642536304032592527027495802039792416737206357498592804678243449641573571360093689638301597896317996035051783124049810556706078241118109806740056520727357153795403094690703005781373866360058748488554440871080193565280141163742643814681496078735656236800798997492782853434832192623823204042512432717635506872039422774070512333535222642435131029270801910607469311586174034871329935811941903737356609642810393169301587616048495747094714962210542390254759814744340426848769242561368433066626066018580463769400185766705904641304171891064500519469747005361306974632819872885986899720698303022027452967117689387854155440466779004947018761554630615367161027746204330701840128264218442520384401504387917302814802400160437102220554034525609240491036536261508636832098789971198156946221591370278040878840047274053778692085719285171714353088747746464533845181652164704701345157817860310117099134803236090404544681008845514555727345686730611341125280061174297068646065100212807937546950060161905957364528767622563667933206975133547611364961947887319864257082721993152134909831826966107979349379243810285403637812365143083200280686706581586775173624856385613443602782074468412324468310728853784706371603673539473760298853971431066082674934176467394118555876020394883601798149256746843455232285027424858104934755874275116524026219738478637379037662425019609495423956292490685370633566175749613859841335279891132647237597485678388972367878285546449244805293212963107247350334896585462663829971232502212269625295399386038154426245839739880537318169057443309522149053168060654996859373693615688178191906252961944347532570037464834678077682754067497180828752961693959588851123953996688039170978304637479664599819388120278953199578359526210948852920872838171346761656975320899561959826504186222609519925732328537837624193163704614009410488098975293724028088450930413311390744778801356527012562415513484235616817643167976645363075407089772950279057482591165970070383653641156213371404085536247072107324358169412329329585702018455616211947765755701382924009606726861032661723088563595807456408340229097301902172888844921524001657302303690034171679291363349625793428814507729785941414283439386538054437130770971482645188619855692486121840794397579437581949272529721209676697358846171008986226920054851697050952602609643563309642369101958649953141647058526512626665056548491269615012904329617580794390877665237047721261447000883975143690079594819874920132130951701675166383843316276235604571365685600362713354413713864594114339209833731350792106623626945023121785111247695343463601133198377689099289812091407026256431688443765680001234176901481890728729075973017887129577879913874840251181060765756752925205152511155557646625982137621600396500012037356449612155810644488936563585909016714591325783880413493510781004006706476062091341505185716984582276643740234983211393866810609549611837142662441156244195484782572505570685253746405527983034288974838157764911868756483902594658472895386727679257745411618619035345786537356892122704393360306602131987744800666072029791813102080058134152685184078357770799907774887970308282144011832080196327816581172291821294268166221426911402803057626646356769040495591303888317697733956691826811076074748193781849362056141612111839232537329765318618067999821856705391233311247655415870059180914203582179761310310033859816440008792098282073424578257777089791664590074049316863284895861600279978089235278549947390733566381914882598670292606094943569593394900897552498704104579167942401682391193847920024186791227859302534423201290237831092233972955418863396868830434206404025904921894749555823871307904275475185787767741868779522585757046033685125132214663360565255981151300892468954279404057382835424734241085232784235793652060583852058305939101115212160396467589165752765189267088717970274869581895868041605839808145975346795449247729824748815008647615748013738518381032912040362848485898233831446892219364905965909673998106090428487927052538291839080843633487155275586654331564531633960900532926283298128061115719827573037494692705629383861655125376339059652090114112050336460084522438471551250171660411635112465165131052534561920227675470194608232306803796910485076030772703248053131774157867022020599647388951425462069471675228090758325223707257899303879730908377822805013801845846210985878404847504730053952333224439591546645994564915677578674904621968303433071796531375424284222150174285590862277553555145609538114193755342276093932164693823222431227044373034910627084028724088831727099102072965007934776917482561107593635740156595325823076452941192426786872211754903580594092897386258161014431950796235340481385989235035034400283102270714750572960716204150851307796013650472929818331477163410246445957740931031257633963131455589372409968861880800130139749076562005250421875433664107003244775324259704241456416498049761765394451128316022170272306897975115272096590225997061861126898437337785620482152737572671111658240549074872032026962692649991443621350351348170385787090466797787650475973344907345458089923015598784861781557801693347187079838128682315375489161777515863119437731823986975754112089508242470297357397881849931743309931551355002100980349324179302246173563915959062431483576043882554530982022867279732033564531770103473318982849238864193815776917413157490665994531049032324546167319958929164117785319731792539676665631219872494682355803023552851108867269416865741960214117124891971298622307933787459804241150540628174966098086016909859772035278314797383218820762214195751056545569674959246566601855374312192999334989235156692387545394218408075418780527364676792706668235525022314788877793712360874521377765133813488680713932857835062744723406812472880759275012433460894367843556660626678507092112725548605496831639521839853120608336140866758517643423639648963319633586635152859183021278742665488972975527622690461748583549510534464815361991827721556316313645719863489917566346941168195894634581639582937679136834207849644907301439360947133808751662133661223696940589007309697061572362931847686987062907470150050502123494827534207185564920969663641339735402520631832195575257297455395852370748415747035907383676953438916890166591034140767311118909669008885741281852780459659512535083125379575222886212701810854211015823165383450411433838968919174690097134099709084717630594014703704158428037228500474619417212630111400424141392073891838312121252559871425998055883757690793784082909084604728298571829866554055880067116214112010880016610357311621141288234611484369571195767553802589796649746975254148125775529367657513379661008017328561069985968005717574503161009757959781377372456012708547082743610225677621618597712003030586155789165561411496873684411696248139347840733287197827238118812999080291770087897998028217331800354259239719648602757263946415448016628189961721821070446941693696177146744568291430667027583539855164693860064746677562175601393832348246977579127982895680993751627525191777229519060549050759111555375153377232944279384261459100427160520281239099518517768745027889118673242371464244067335423633957758457501614135048967362237535014309500177705912192142290286624677133966612515402889750382596419227231895885381218497067054619027889271589008885179205973427200319761544979704708501732636136602543348656366699059511983180997451601162135505321626537937233364952547115472045088299426105604095695860512800246227413185673361049772811596686302894541341001087296400708534514631803204443201818691791624557907054244626014135239242713289367392950349909350141169969475693888329106094558148886886426620266476349258530063709616639025556462588145255206978471085092279374157846136096073363637907341848271904492312796995250707565976649981853263998717911418640519970659803879716558375223289035951229146857367518332887882863905503546579997188854298995007431011592701618829109122393099793656114828861845360078661940650424121416649799835937743832728659699096675318114282736228720219228733964039218833635365144378476439795810574791898623533202469170827119288865795809092927656532862880916229766250537788301384742986529673971504805680130147496738524661259469089862766439575374212536536637191006677892716523839505694428895571558180566341739951288962739079667932016132213261787493972825317888051978622150754676718560371302532835202062819908528906591573773995193037216710768694617130385696117260279254157618148254375582504319928032750515760174000902114024811023318013364186948678196486491841830956982864803512506724130220064520474014580228225014920852503162196919525086797618539948706199555079689624408338517814594984743079814677388239987621394038261052967130865572789728171215470298268790403194682370246213015862576635565133525247523324040688029963701420727843964257046119235266058715778206776724870225587314279827336191442690411014684189259926077819471038685332423793817306183416053617620164915476302047450662856381185927624050659971620202831942748948060364378455818612363611123511614965829318413722849631754006586639618844054461944035103483039623898225091985719583919082743094957728972457969903869545830156784028173782352251525557803440159881703630457892921457585170291274646672596995915922044087818571211381663905791958427194303431578452963372407520019912546398081362294422916062985273080414728486319776296202467325269786961279255102008288695150006417782762404531614919280951047195557856985207755158901986303612940064600716236017120870962766099188854126494691178863759106083755477934400291162661227187254463991641662102415222434799505748906578194110881802410126334088974122983637150620195845382494908308211990985930101180026744725995077709114975091953621217400602493189359199738059074953761964692503047715685399166647849547636515401547048264370397964191935758839547083279434419723487338259285778696879016432303252126419686478240159448795279675348353131250798271704194120685775362406254832486311425536805007174060516798706297441538135166517433995474797184101576897848382511635078794765014287590537013335536562852984452936063103236179826968476824218427825111351187755719635732287738755903999787778340049259752174162521579835262264005721204449792307492898058075554585784239544848631888493734854075279467078491782685446543441740456311968211871201396519006126757685517175966401132951807228922919755770314536421807077620429394391051672120082505018517231140101138360834422113856446559668316461318701342544578332927690962275626502296501605660146183874897218820624620567259367177567553071482840239999540852300072432738502651736476213897691804107863211672829200207627416209452122854299030765658390818282073492389173209770617370423698724516582297935083039293211319351096510384167145064686205144027727823103284470446034523540191103166931299164068386836077921667781410030019586574528276728251133409361481353412479608048707285154320094873428260919506410885847894168675697347196062847577956158386019493775453460742157859548703908630845832481062316595511866845585232605139141693411423390773177581527730954860932032068914740435823240373520085947690450852520376069228418464797151439708242159961088794890303776599532059503723753034775497534263908059495166428205878344096745904294252304058295986082258932992117817255201251122321720088041162859393432872507895237472666865764379649377373225559528531691300438513735471876016642057869509108724278711479893740703739989258349277484110322613464143791087931689596541069921887440072164881412362050681940439620820148796810040903710423732608697738773403686464132597242498392624300371794051712014230277288517054430998985378501353302616184976983676213938567524068187060273991629861901561321912535949692518963766169635947607323496693010908641184644941179825545332225333862077979892584535917546518144061607912591500284008490597990383957370901105235916409406733588663834597722616616744487491044329763589571865106296544455748954249123018014514823294917037598629359859786807181658624449971245427316143571410652448700866887122883564350457468298342474874225920686734060804219492317428468355573474195404002504528788944209179999139229865106418748401753808259096316231158628639118770446584276919040763460731427159343291373513360554430419783247599887514274065821721111935581131876541916758749530753397230407793457257823030685094376076169048930221632197561151029242444432255996393384228134231854130142582995112035647330545021598547178871522232331140682389410773468375013211213510356402137603675006843612824520944642200987792504130804802726116914264895228232086370463528712280618415609471055636245274028779069979428219883197287828427294979998411295498848588508671671836146943340095320585586995391176205287224704271033921193272227841347383728813829661502391626704722675755410938903838512767805278405741914262583224368581547365730942107323024977255351400579733423489239843830370881982201562441240942364117019105390229067814421859951545362414289785212168154830616841135407481917801209296375220532027832801697520419243910628454504798412325560873704743552354990063633272434615743143590036665026413128655503039268268864657324919186077819735841638573592044396151329591095612598429687231111399772348056251282576117052135762915481550901332213231793782731920651299652129920024463189259822475350275711036057904617585462561255926149592809679867679245831952173720216396612640391986866146451048271505696587020320081964854906922053223150826272680173244467447113711162541429328214123095915930636398255561931913545507497690951316451773755805788957833269018905827829096640953392017819296436072385504457887397658606003565379741663967553065708004548515714617734635718661158049670813521784635833016593219266580634850937075053455775897633498815534119440309465691925524032249187611014040774437618615274959494985693268403440960905320782817205838803452393657415557975974583525447742243810540219512219816719461196517162747718920306121343282443613561978660591901099078360137321069164892839811976305959854093438494663492115340658370803330276134847813800796113821025338804189750592191892222689987410733120974021986549786324283092380042512749846409029819756014812781865670179705696862837958103082142403002051423281454267742839793649599846030151118485553875033329313937477653205853990175530188586966231018847190800602552105559543787956781336437229628607534884542611711060579449537640428247486625018579009904038904822935541406528137136043691743992944143771774976811479062475851979785496289959692044053190164604401358113675795583525609040873922428904365063506584650098782637379129008956843742054013227313127547942204868099542792379091516798103000702566289828362115642537277540375024734215828117790059977289095655435443532712022686205785881203094220780324898377947138227698924800134772436175739565954210243303746559691551751783543657712876666727286347836355293982859000813384140577121317274110762502975162492201093669840530867252916245074330447602565129986623570693443827731644667452232929474798582752523746427432925927580958910740954569874403749905957535387292441230418984507124260399992265926036846957355569108911400403329955008570400219448801606412003228043018814588976365031987671129390844322107152335109203761558676873373322244523926474685802016065136515652295674631354616851799434962075373372331107036653514730265888211541786282864704525200908395304525504438806636168058895673849504841511303842235045340363127266084698957659825298284150259288960207689090851529864323020132516412018253338203652756021504420450434978569165722733194412327197808951162558660891624701712574906127735117485081217911263607287366870321982271723671094800658582322370580086582239737706141364211290211087067652562964871919397481497122528656848622125702553991716764617147805652723629802230583488308262696283053461410452005063091550437703077584215186119527808570055662256515035087397470982594748862464696609442489050005064229987239370972671566720287360051876276814676041058723972490361606771360481736634390428169470058832596031753826702909047869404895520394475078122666103041570110332704673444662842966616746982695627713209360635593877069046332649455287265319714954537193699598367549494338369811120938576025709118716604003524668418298397068669953268862922097829825158226338093885583963292461251801706337282250415526683397544256151443675278473902779331607058885730437677904896765585275695523285017916882261104773401484529153127339572973821066104235639816429022072351767370534424704806410544059412693458334832966771400497142205221608102603890868692394882122265298206808740846138309014171649874131309808612004914295934927949847187610081805198905722612421419079330752718051463225051623923027228519806660936627832469738226260464488562334985700866229601378982129073067918015839910491707194318250700253603282570506879776258942039126629228540077577132232351787153342824267458424727312242480279748579262748390183468096667812562924287306056618697058492375598766448413958232093062703313379097860261397149905844761515920724241861304194982323762842551104240552876276374732885937009021540703404334637154461222280679692525589818394115423704758473112162067197409893167242729863841283200809736682658157661562920275964021755612612871700827716456321150471065077034570622826992865392845447052574920092458356556067231106877340528593263910279475620997918413315585031018388034979042236215765628899030553159052254311649701389575794150473870871135871272086341157452783191781232287589065543018822387547627546410203678838825251685136705659867691052652858809327436638169088862755326945120023066234585472885415735456112837560167807792528703736522076357390070710686939891913461997148795007657085259868159007658777227670703592596927164743782040662458159640843938585233427708387525548288996057705537282714166791322894522865438384325289272183252855902431997252632207850148281805112970531873713747522178211243453227523955817458154025334592729775238392867544240678856427519036123932454480075442377365862001781441569430533382498183398412793407705904316300145181084639506797773919226442899742633303900104893027115574360158358654542285245108295501184851451604822154700442734474687902984521457505578633235012389044579021292266060804119499027428297401527426410164669942859696344517120278998142990291929930452456481182860537245300498392064718601959472609777031853913748586979132939841228944639281659326853698886928588672449639850093299790975135820837828290993174805105371103795585683793460741432858140010174386546991097657116377353737984505777249047747974559138087652700078328492624931776148486998167752658466295353565788481001096416501036578601713004965307754265916285425601079317541961050922706464033882956668571922906518190969262529302051934687339152098834979387219324916947273912739008555095818906742572783992588262905813392924891812679555469255777030772505332599375363816883669198822452788025103605019858524254822649780004263111922250145930693200449179915012661367699177216486834948912981761941451771839589189886285958109530902939760172727132546979324606359491897401413938665004319875425238107671356482758043313031300719617165769092137749610860979209195503151756593463673462214640179426458724205121089766930332491280318307689295396979358322447110718016706117001076815702732589306810138949897007161920129747435342685770528123436373498315956405754201000644797989916334956421335850123033063191393091713399009213048177467281004334429212489590636115290304669625487127814671394985671777795084129907127888143620958586241506826750724735415650122049869003459579881061649903858152115066795446492572165738140313337627126221119887082949481488158834769433637864285085260205666515596740372420216582468673470401600150469187937866791992162679821425882517517640692270181038057549099251284820720754760284096534562808608650639134641917439263933052890331630368692345680383075946003336131161144528848271346415579073270808721994510284388903898618466110700438991355269823110148890138726362856429818429005137901138279313357134822209560604914935247018284448174540325052976308899383723192695090042838914937471490022798764627113048388719381565050099897832978112708766747093024183962780919358505440925629804298915402748908831918549793906615208924905038706220335068682159663897222881378084356580507975695710593470375520888016696707844903990103857522755745333157275231851689097182040237688194958167831633211492936712985574249830801839539193792610292565453492888854187272016729862581544552611945536143075747013521321509200536401780146474337540801297310685622689791433841798925905285234703808642769452899319387925158840716423458152252167308056096767168366025377364176879384838064592980821909916251911636016053983596167336934517789233153149648755295199076814623889764099994288098167107508358667669730554788326220398271913197460403871649043624028145710671001468724645307693354733567441006982552413129201898274862359405632974229069156432773702197032259287740851986411432618649941064415888973564417295117164756378736331869550576777826708781586935853020976836115823468173783013149789173869046286123348708268533221617600841609218389306630173525675824288600558000150313265933383191836390113961278043423540395987895356501535840396164503096554352960190178624260785251036605735278769136256056459453992536675123512605748620879866762788053182474748381060799670050179604874835018299728489022046064604605092003146299252455185976109279442948674997238949992962743013373980691943957472982147575603055813639168797500032606147141394721128350354539737879918367975291831976213423349946011123211513348697056250152184668782354602830046365203895584348260310955237117559093896242211181007147136896029838314238244327164064062645301583187727353677341530105061850452656552359230859200501505627797767806013107825648977783920612808326295319870791631694349102948288809343671452323790323529697235401892865069821500018658653327609748478754142746644947965611702246690826661447687958361885958889083057432069651529233496597478743173775613270623907546662245617502416453065432716370212941396606525579034482134590270656262243492012095361492241665315389256074400375028988097204330032099453257817056175205483505201111946287445730485250276877228613902671681934199695352849965787120760354207766235891658054996452643237365708723098543021986708089090504528945709369833373951267706721905498051766723840558950107306045036622014647030102505729860365464749488412952203003285835802009372937614885230356244136417972651220152784738471075983373243362292981910212501848348909747715896049050984143567146116889356044676458472434534222416567222797722626970781623388443301096805647453719115390892783210594997962267053485137512932003417541621460111172937645021934049009870720677271033541662780603075322449235604102583561241840744286596598078448705255836610754055821275952547555990021064578247366127853519613421759420931456148990526693653107916153139951336514178584697077743229771124054084238468654576425431472338602157910046219042967525874742103902965393025102145259467608115125183748369029713727230184583606793801258666274505681436326486430284189348028197883395029191602074093300224067966934168217722957977294990849055530057938458938243719604922031645247361642571106727107815435298666093615869353799133115323391759391361130891948659500687167968358357005648994849168316742943203628877119653278213566507728948242050684757894393410595886297185343493403217081316236025622056650640267388195585786538502942438078580724192468111442261339033620656893155693816717912495090435136586560852575767607090794308380888808743810823517744484947540407786658877355923624819753988861203147390009200213851836917077489238181924273640802089810477939524958829474632590265735175926708472353631541706020764562461048616869633607815341530520463348103467835027629563876372434744663134374799457483230530332199764162358360575131715121413000000641293924702367121228954019707297980873754823346536475191328490916388015847157286425712196560813117641562094699944620334144055810642864671413518366913359491360543460090974594640309722836054339718419957460145095749703082094054376918570629378011832870766688453909090015589514895670320864877361791221596941872419167977399708567819272454369725091042678498118271502625903526663100969075600089546204718642588111781129532712330487171388686729559365814667684165746369631028817379547555606825327376540957259302798942633355583179191981509492621291205688362260771967924845647764553746836417967378661307431377700216643772068031151980555794826342791505179778075898320060053042866927282058424811861589935669464701833124395993974744036041322175686171609714649177100099634258522097820703714838149045181205463499831693193657536073419563655263549049711963545969822264423533626012027471441743068998378392076208293450971351481432115102508888192826784149558109260454348234960219151130744882399466141971215785823322725834365023804909822297107358870232690564366736245747627915106308605253288786099459653792115906872669921651996209903768618113039113158333615856435154471505443520145899206358933171134484937672032737125906631262445814269890282977396910544400619149942207883541402785054922659628677486708126437980435930790708119071078902606498963116268644939849688155496584684454426457395344038473080031176599200365186958482124167903438224842315340028461964765856455324806306016840990781213856830554087064752223293441534783170524654901340700636752583017734131649016197772124946262677960667665168795796274127471831785831347294479875739406579840233051057869342403868584948079420781695757598163768623632940405132486082653746413461535185901885772007987647982499141391682800997327979268462062898092775754607792196680341523415988541121644067859760052278523548389989410126356238202143743501050739590729437600992809378444823817132516400214558044755843212370244118355105112684616489063562818167399168448071473493462582740598652295151759204172819395331990793216154977643628215255885251363840750728532583107066678571436106978030703180577331529884986447298738414663753698390757672368582889572037413305000663949437828650281208335091608031606497857424856168097696732204511532244665133334684022273933580788765811749031700395583507396219568227600432014006831764465416995078892462996909263308832429471621219230345627842671638356811289042143839791060846911016698407630772711064335986858137283559247794402172909734198933033892290942443127567050546284642608189067885662389693554403472917413487486731633273953684004951974323205710309284265091968120873925350550431716279367695986962917802220442231448086839520181765042061337609685612065901230041506840858437515918522771430930243322800688038454603747109449260003475179807321590466838263012368318133528934220130523667602115857854750621141186204214960414705844525234029549032133157350558340848504305677472921175081807485196137746424839466570147239538374813281031825499678461287138874285209554978908696418492317268432809642304385596838828107530124589135502937516866727659202704875788490373131118629105805098431922353050594991021512772467658873351380475337340805564436771486340035409471367580137842211128709289732504514328880439109807475388871458942164292674236623650695816165979071513683797242806809064582103390780835312512119066175912716839070999911082936336153595521853958220082004557050186568579553552125559640849239732312026943486035773938018907691096764345766372558168960906783817094822029240393480805098358554189235911643353914016212972297705632711407292778482570186665787413743016332361665070671259488990417107067301492029077036478277251035315211693324284170781601016306389428557641764925492220123477125947251358856491315835691217430495089581991085913232337710045449064055172882277237172195758064884368305533394626783479232959557042441859020823710765232527293481239412318365684095002004917717661913685709178854316449453529688064295504991404460784084518597453460908733869532415628643775812257355482451917173136315968753582178489114033104305939300304906902512525407693548597456166689537569595516990358112185826461560273818041240682713070596944357360723317032014934859842161461652146169208371322756908577981501163515372396508655257090310554711176356653797447414514215557240277265376669171390355779612795296584343682133450074123000295457698240298172345607156299451199291339305363087503916052240367236357128870560126544810676136757641595959169371212864347031268370937636344053242771292348123643485389726468177474763362763109464188868902162134348596129620685543903539473387322974692526990475268595247494448110255744330450203757637603544038029854586849416539856595650566210430855413952160195485477210669377060325735486876158546145848551796909326655982634299726487625013206155917816396882772663575819701357323826679195251677137314247564018879983051363298067590249985047125138636716489455942552829128890922964821423952331114915625765637608997006711112724202545442121484848915446241924791207060107257292516563090876138422122839952635370699154666884402455022982556816866002213366515693597155845013222839962399285608236235226801639557766068762610872935876900480733443809964642880447701627522329234432031792379389591065587967406210408012287250495345597659064058751040608168611304232608825990340962331806110356668839879542845775141874161947814866175258969644681866604300581259600438229494106251467799632766481173951036136759200389885428769857143252301828917984234385778121710943132095276120186107693416773895001314811334191187913657494273361448648641851001729337236872016139896596331605145895060594404078907849570752610407806458681462925739909909182124313717581253101505942484691436894583689150746967480936869891468934448704542674239145819323505676415771193279455911662511281619183094608064152198840634623355537463008035707550626086669457829609265042029486533365740829686270761560267131473255212930833840977605818659001577440980306369910976624650879527446076845318272649936597768167032370122146994243304062268811292660604404969077283761436835613249986425847310132437860694135698066944617025298404171614858514216946821156942784888234752352346303977712685091782767771923912145628855066098189801884198873256553228840988564217109660592151248177962356681120801730456767433549815816106355670635819603038007113490692211929948429026569026276249417996414488081635932388289140649033488396472767428765409349014123228101333651866556280166684822676814618316556774076527501678811266074031024267452940598257394438367065729226521650769457570161532027278472124772462552425407631074785723128600623444326716366524279459505737383441383621188091036099247382097636551942270407175768510377727502470779791381090945094045109711440690049797234420684980926253683851046040608833524371840795807076657681051215234175136404666588010618514600041673923744450875927507157780071181126670390985315530609646925541005219110594801940498611066814493556355477103378498228103384420389457118611780934794268542342160295860448497763337554713045894076803762132682710591704405066713653124852056975985375126387779441832534831134349839227400797800457203770742304005135387237088810214110611810968239626512618295723293107491355951152619841843755257161122777075961521105374834313648634052597885403285637796327009897086764979448045572529322012789891837155291237680385007126805943708322745670366858219159387969803683750168187414726424508834889718543221437369906521118749741135400426555329170432394512172341592709038601179396338414035957880718721148893592815115283225035838194347761972969896406430122169559627204277451809184049464064100896914492076823013925847593647435397328279928599317165185986665763404424867540006640639227168101656404385572800953394657221546185355437683210101899872935111669820940315572278664628369121942079611220787088089431495365927971561086131342697459315900219611011906925134381896018549185464971996736519722232375350952300159439764608790842983890638444533012953175311682015036116903018575784564677572664190476787211366792795526437061978687812289898446225684148823297418723304912946289187843991562768895642247116005268264144354335341798315312681088228744276563744975122362994493557555468469710529554609582175606400285829472080726830038893000055548406857953897455058025419778980819695818176535647553408786421758925840377771411679069942665301446023893706449420962393452668384387144892833953591870371108616203996628480454517172639902643529405120962388044190206938072841019655662001383333968050001200111296057803245635012748257719796386291276073442848190702577683128447249301102167597611086903242725752276268675953712382700097700180108323021544702802353454116778178460049378970202896886859556980727151961223003300098926292633336147451818832184991863837661194005137902980391219387058385706894365674403256427487819814501899433715233563648029795407376354556136753196238670097441651824487412736337474714716385762538861258131501925595070866062743704568602437471642158989508123987576161921954470544430261354296768541286452807286524110013996689099379708916510127202701332510401710446755834181961209229862214154496695988163301558456970176493524629486257233528802794494008774352066439605709096030094118618499266056808301855810680902296176167062183331632476906495043426339306890133191713088416281131726424467071603322255236209280120545561203067670109010958473879697664388510865355091039950057816054794020339213580642570928985822210637991104336829472638184075860051986439675923513857554986064596007177040182734122541613447950916179657082051837132282785561743400751213305180657800463772480783751925614286471471546074802457862499260845841007793676313828614240578747787884202292596265646403673802080011916600311306153339011871530848378847607621294521724211226201736443618052760696042152705618214490908167793637135200532045991696265322855117763506943847321687017738285880827450220308318599581561332360571270761177896459589087866818094000613586911618390689509578358736916171846474883586581078873464980794114413006527212742547887132665314418478831712751888198904478585038335864061642080032258837298398492872824004351905115320632248583248178954630808586710284977348909257251428012881579655170427798144404882852426225329492284491245456823298578952941262032809701493412184915460724761920326096618475851830824417746115387199306453551781454848601560718540140463655935760818837522982535011573648887267446741607411958401859238603372990960759147466626616274072322538938701618328166309266179526477797664812917963101874525709824467469655731635668655645678388795591865242336034866961345549856348510300810217250638054872123900570800998873247472926618247410616710702991305378393547200160969585916800988523740282222479982127543464312419634408931207539854390657379490117187927759628478352413605987986133515302973908143451191067781251290083806259836159906699047494364150896868090427672247289523250906438337940669567774601350036465605742258916861921504183420326551700288998227941391168585662256752256290664964183722015147734659534538975956646530202641532770050835852750342613888062240909451005166503206918863570386047419459835170444526125620022069564214194604187516183948409837212872266558604013568545858896181844070374028501550899050438595774245869105666493662868793347074064783244175960931994610984809049742860416844960444072437026661238290969709400178162270666694384526365698554044499224555805462453114699095549844821406694998784847423745143192831716322303121151125809232571663434074598616828750097182009840228439277154820291410017197111962251544999126700358417958481860203724509685812670903201927127650789314284503743079074217454746709916519295026115644739324818246590569484031198445865699249694574200961169299385914219099484757253864614960467556621236104533223604873319895571938168538781651318502794612236881357378360959920200161723794877437842812038754759209646798289033544703476819359779736160584924978854213520430210953265493955836396311511628307186985631180558977040234256418934332039544138627313907357480148498460259882132641484974542130382216933453466184358622848275790874330094265578963652325683626530132717455703379012932380632455271946155070910665453886376534422304579876561255858232517581200848682407640798238534255325076410503751500580941531965046582544198519940222715867191488262133714488065476190417620861102087167018476004181059010719840641578454913997084501938723699505468868151743305738310876167037256445066081507897874800816286853035781772080886680815932451967789775551864982485389328954573636417135813199798064940851748653988350215181285054060378492725609449309424306243149098130617130942145890566408072603723227530407468772597918923656396407753393340443918598210650364403720596173624556973698343116187329233129126820652295396062554098003362319383627822996900276909558659122349975524878777431345285949183147225650879706331042945984030902907421919365753399830135577141456951885251247590377135348988488150252049135932025230594023643767800622761576590586454782789552870715169835273701868378925106526677023884621222810889002095953108419374126051887745275996920676550502093251893065568767869833263026851428873960518549576453224266541574298910556921806040599854246886428611468214972707759167592555354224232382039667973697239832586496780960897121035956929254587870322410056208959761292500092978055448961396006160005194873669183620861697157532335641614915173703558856039660402585870543682895391488685267345538370921747511964243784295556053366483736767007109519076897644851333795318081613099722131487800655239759442095232300840211143723969054080563661796775416204029361194559233865065900563713029288958261161256732343809987276331271996529026016445439079848226859333732215183386307953369031778191882330751973548580191238485828711735733018465340239427016071813506525838054922410139469800155093098367567832429417567462374185587812519904043865365993304650687779244809174968554584126159448936974871230886637254283793887060284030051816586955068750751326879525071116062914121815662329581608147803401201743335720790833648243799700357860087525712552317838760711448045398056476535528755474682321528902661957434207283923349576907196202046103947726310524851540194611993973823375522137471563788662829047817415645476376842361843062009115611648921888871392447403900089687961042594753200319079178881659127982702468655007365569301370414075773489915981422930550875070849257108292796662638688852427856818624212766366317866745295968960112542066300435349546888999689559427858957764302675530778909592794098879084832885639612020004453003342448522592184168671193128512592174676143208827225277441228705725997277260284413271301617901702823493346299425698284986553629132149633246075481289527339412247647349270280488306936505200967063972718402211587524600243073810958440097474324459609029378976859065869877069591752961940441973716348348580274644946927442757998981633283353829065179453348230587297197197601424684188783850955576323578751527144768224123664368698817195767498017944004009779336390975463005258628069845131664996976746092017160436822641087728926057487898769371145966959917463231448965261266706670536005748021012773203939904442489503874559803518741096415377067276645640182405520348080660457679672985633611631254872070779731958914156333604518571832110934368263157446926878118033963839526712782171583817674451808783301743379789610192410163101108057524934974336352654277912727684685447989970478795847694489608694380012750435018813894299959382531425082246209512054193784837208875446211004279708427319202166679718827013720915478450176600054052172467008395998768382598541276787142475812213824797032242282360754747188856710973774280630195715555764865149769480226430175127119820465744341132529012923366338962107924007969399897820057841716231550561612973542623654547763247566297179285720744489518863803478535860355183599288339005994601911641018956504410985586005449596423227901011426860470754714495207749236679675782225449476968556934859914854634294444375516183848659518134165022832391124252462389827514659392120397728513232087288521258309996922408302677761256509149234905101230665500138070433846195267030386232589476446623301602292745305878397964677242913527888503451865616633938364133769748483645351379241863955014934654386961836106443840025451717171650216399168911612829861211624249756403007222136576479304947557538840871799218374024570508567734619582280700298798275863523137801515694093436709450262488195407074603825032469253770438591431814252947795237190046452777463721201937707154090987358319182410244777203776125415747796743905643065919571757085074244403611928548126275759461612164383924652445271722532450826136560307413662450516355690828981026840603820058390152916856641486210546928880461226554484908785531848946558280497926504811492128241581773330583406488997987001220177212485645966846926629468881283725287312438856388739726572011091892814424071097264314766241718997937436605883435903708389547960697523947675435419629833286314289877286450005824533125094918204523075203531951895702200016563186497988007823779240796900957821377061423678728078929909106163046128860924374799831166122834553737594598031552143784746452243448770459061427160755167490395386461053178262616356634430144278029602752931171907507464929413339030396877915027481594136291059650897436755378863394118175476939638137246527213263587023639923022547023501815015186305451271453442920119423825276704357941921097424368084510558709453402259916086896678747608029451045547387517319507981404878666409262491178638219585368126157152188894563914076100286628551372549980391319807644150028403953890069462454857139519322463726077516334235794592193335622630794543400356786205681552529558855310780131597825438773902652812554870924561887731286815608431492217577813722163779929289497353522755222752919761725992684332444784286040483090960362175985181134594129868138168239764070979285603530360549011850297344926770002576870406695779444943799545805913202262587940731589479728101915796241875863200811041239763636482004285881072390649364478161980876669799976047953528552698668648445249657656114925102152143503711301754919674522375374649247524995944295986377164264074147719802252657575170418544111391600253999824561670583715886062165045013730599654285184101780601607865109986924256797122436600822055808212672791478412205297646971786434913242280664027080284504314171294262107986298069757550732495367572903694312061489201562727064901611727417653814578001961374005091152392434277863467295685034367884661219925212518256596841292602573039527079361593359526805388488261901292652523258207573212205689145074795254665141523267517716484431782466378073696326856997742194241154512100461541504477436896230840161428189366875301564606574838973340891653919144084084275377592262499139364662586794154388613966773849672761963110201679705697837483380692098273260454970345182762925140630856432224263795276807586827242745683628463846221787193573516077328209517117374746952553046250804417339738191441473577708096365659434521176961668234229818979494156401583664720509873931516230054288163313627001831546750233223118767980104244455925135047645499428153751979183061904043594322752493134511126725969462584959333463416128588422036107027465841901950131742369672117498021984891172623140155600294027272308003953962579239777971977385489878299120466238575606080572196169797160831490036296505294455915595072753785849252579889925690670944665635950321133664211760787269821697495036780065668722425874097032894871262237895301198622105673169491266557259311588113725792313799013353467634359513991575605998394645771726926613502401662920159405887983470002773097130599001890985647578105705510583109584409980448935245854949291161169156744471564846149624145977761770471459197923293035861173428521594374254034390792649810815624348670026997467264522212101134678908499737535578023876363830716975712930357547129278903650388930813302263158044828187596698390250038075329271416839016542077339928471433647123442706122675789393720888591305412456254740813407376062671928452476102379004627950184602017878348054857432122836213013477457435009523159169635569270071065683538524597929989599337733975149164607843643916082972000276819381921632764957387730182177462179409113946570391549972811279050479064690908816587306546055141802475330491640324871473361535018633091900376759690651226164660368360170415513407410484199360543886814410332691234356375106874739387283864349858926569594445197175081765210374303335244835167985506986473295062796603828489514205032821341914007061141945672619784448940417645804106514655891964454363632913259043799150559722510139195287743826299772329933383430573676968544346936482543840886724682113989151898656861285362825835245885218671966456831394812929430637861877375889681076939463599284761395407012950426732925701440128955431650106284172005410744654919863144523658118786767431077190600813994205065319387953654991410043988733666485987956463400293204872782797197753005735626979101268137743353823263595598547245554989190515138508440469364511050209412835080840955572085994908627410075264573612151181165353636391106751199258010863004778770259741562315267045169682371438220428746276314323140363907249174425263611726598129281505504042920075781153858931480002012798022399778364218493166280330181447780718398646110995535392723344779416220937166202799432955562645190813398254127800316567193790212423886091007466249311837803094652544127387559549923290444570010285973334212152871512123760349936354009921398999405016196237346375908898105700924301873872655427280855063135182919000989942498280433365579088788902777876371942490435760852389481268476525403414822678709936153930727553085506949492035820122984164653887028142572340210477644425488480477026514541011839456970617216804773132101437696329435462006986489551641970756254095306965308144083209900211869703728987114469307253898279686952506176041286557402015259749585591675666464648026938286996559652439529052300011189725657461791632773523485823768199016342005960312553179979599107001236317151344397178459037618239031203732051509051528311371530618651925857745527263291780741146067668164545517831276321010751313891750145750789959328976386621854654516131194656561977450389968670184965861868649413489128669771542729435430982914416528704600503197003475267889464862499537485627365679586669836658565988135103090912696805818798879587567774212444392261238678920740872741445911607551447520730625716542723498628921561889236568396899203691864044008318225614246081448869783785033696098954576815889390225378079339333252501661199770924023342413134519622376058947737584920133537360096590853430545868858865465078144972123602669465466227282418707299174793706531601644571260302959077872229598053785425295088375826862162906800770665604573117328595987809150162917473594612744080598992618496958087935664510089384836321124143070874910946381634701189192641263685995237437463245583500709792459802062834750001584541750195216798902464497872906060562480722795523995946881043106110305434874843026155454377368631002542589985499470304672705222872840687453422843941782013965578541759884040855941702672188906738095316772585103478433709485262276965285863428431312436834485310312958297876731059470977240094336435223455593375868027252998453107772713269538380424538755036759662425485715188417342258804374107991308010599487674679070019787797057981894638037853730115818878959550150989412621656073718875805744266620183201579789326288184721426397749910822767947102158508344971192366974743757384702927675676814127878255805111745830715609108639808209627084707177904780606697063926958049398850596819866086250918347912444944383378721953737086826903543899019992580441480087271538034162157931553526604723112854311417964697188661283134791486348342584543006506912643375162862008704275419430647951125162000461734176414070101851163188219274990808999880233809007481504374551731810586768942884013093517046521247843101887676140192530278548488005371444969522554931446691013446667187889875260564628962964502170713890967017028904355003517409464481785361429583065620209121966483175583232197786186156764709492851088734083473304506798701969209845515181352048207469877692744381234953478537068775253650478244367247596575317636177012995225762184921034654591796237796541489239946149224588310310362940523190512773630507226822195403093602687699747102917415638179693317514091999495506386729582243741148162896610093095040260173498429007820151389662205295759751117923170612821056002841619723130316467954273944516434386742814862403622346848154976502771308442116097589173310672766309539971609122710142782572540975768780176330925446157929279569010545207189984741284373547554878584349002025839034916458051458326232171243302333907792867893537911897463107991235479832228415589061174940245976351796169111727690076481814085612975380595854120034132004275207243620969899569480199102789237730719410435769547644877082520993332603782961915795416837237358528853087067715666697286464975657683159332289173938570836038066119417612608066413335734869874887093598279369403108516413394334186547675825282709434293756624880964806076427248193066697921638667470773004928814252568454806679972203360592181872440876397658052928477161071800702129055990672363970830100154256452670022213649249905718646487625339888117021783423250098526828854127491281494992171633445718732392596691557464974250412175266252833405710563698076509691889406889565965276117992150953261767009799942878943282258204257497424925778018646092951016765320326671069893238705265538182063261886632197977284021873282300291890611365672534945760660398945766921733641704749883860721744725161534899979233384918781793032413415649338506241261406448043909330360399112356593330853246815369310977825138311255862164753143377919072531240886985486759597583053919999057755590804073555406963872389742879503841422772392053125460404924462777881719386748210147074466722195425565240164384451451740837175348926025938978043413214076834083172219794442089959063774745276678706368319575366275045583865051770970245239390424918464716788972356974760567676421074549751979645031753646977902382156785785154853119193731410601057026634733605953565787561688433933168383113285935321968638408867802923562041314857903323036213545443835330264049399280129092940403373388529779226492086409063937410599914664252314611033816580002494288496482137199304111854643812173956027845094736755743876227576913288764476542699163874264238271403280955113686340949137418366296581800352829332943984302790798862221053922735758645909858735386825142794058456122035660632755749305144715950475468774769449671491312654448569067754064587797357164873088691979662766505888140498097593738500591864725638880474826069073707852005560253631625345959405284483569601222905174747905416921737884310066419426687764665201431383696657022187638476358830243656757229024446131139064853928375408876292868829859984829433534279683943450087748944875265799273408754364675211619327507094111955134429090515878522556224417099479702982390482822427114108234988797941562551712385160993824524147211341364090053635105425152947923949709330927454978097447109283791036568985878609562530758683855340260929929269110226726475518137307172309627434181865234511114608229354604413683173921840390373075712900566473139700233099320210115889198957420042563002454636351856782394749878206316248616954082190611137803438464571900027491220517393774053833223043416521774479654453979677146706156490881148144856478109717691120976272645804971036122751251706889296118913004025990138584997612491664520758225734277541036281958844279589096002889425848958087398767182704326463470939454559409439961716375543648738874727879468477445833666399099061183937296267098727437996733578461233646565995236693005698763942497949038502543766665131321177191217342162197730389008874634027920669643901101895360882485712598282184415877467669896112461972691061749970727344013375154470058301062361281857361655291020011675868369413501208647951444106251531472594296931852689650557406102075435359310207268396379360259833163629276279361310496109513089881052801763998113767994211061557614457737759317621501090984792057613657551248564219220095358034412152805743848882448138573551037372700440540220596794893997921010153832496986551813647622555799332788887696379384965124992461734616933755684457235528816693167211759474931981746553583047006088546154380699277203578546855586970453968182990465498308121133594187439217700297154536740664091176335667476177358757726250909310756527811900772903229920315550576290979480250175893150363037995434791471529391028879999089735714790962201656556918237981054900729937598428881136674003371364084029555321144530311271949089276905549095738555834679006075658576832594154893540682915233858118473757754476663650164397245310440179395056805458025993930838474688471348459231573732771301507918699115912489202313003885054618905020813936526947205056309216458396794372883477509515853647210535861970323880312418784977409147345772629753294536408045991653232507510291047123686454661326521329373508044150221590067811481203124242519435978621697808771472405830207816720968984858232123728761487529346631731973952760615838524067775978265254521733600769193008172262625040497400052204922833475067986115208758112519321144324736647130579273811747286376250607092159081290739139796729552953137158708785723921496614975919204614962561940025907031784801855826547708211006651688678724838541924833512149917339952173049519922417852644647332800278313792472452818658860184151240171692062313276860494018296861766459494719569349261225948956720682648346565888187009054889610091506987890989372617345039285362164445966586458181616486618067741440251566843333023830715517654404172131899520830588192511513764508727875111929304567483797797980229073837874266276712678790106875028663467843546537756035446050409250323075005812428369510648584301406036383641122429841783289313636696299044514561836050025273404739502300096286835675091181903019800026708600781458379976735630803343257704858878492374509606419805244113431732444731315965301531088825497003411290624850827575013411976925626751188525922063860221584009796629291889325988391166352123842385241875025687399702338709049492562328570033705271715630257779750341028430405488139475233728966446094963405440957899698902117649363760845429123620056200488444990849178273669961008982415352071765938759532003946328058001474925950906622705039084620510553221478347726882213787745553552377864852232749017354596150652756507127520364671628647746640693044024465949309496502884664033571359439791420103803826507686966263448686579040821038005976094224936830177284022794646793924645857714581454165314323836172938895574852954430728404403047746381934565123300919429844100023634153710387634815679333581362874850532732446651769244653589733149993499165677904831222025585704579100998819960044416846688172054698427910238575728216235064807830903277243385135799498005107938485256422250789905445979470222834944579260648604367293937698563863299965645897136786974608497212873363957578698043700078936811975064713081846932787662863928473939051648675389037586439791443244564955151441216745866770911111515073440228130603088983574831282892581452559657825939338327746794184429507942224346533092564613424979541645416278497874614950894322290099786169706811413210680702963956856578681556225514369333106764617430103394442179671184772893391108035050754664978425614483723705259092049780231174789986076701860127099335429951948412202691232019887388364858452947327943008305680094615614648468168533686779999475262940705808869423361974119323775245366591722540100054118593885058893973642929009933760301549557109038365375733609367399243683534021087036688202435971266566139014672442135736346773772511584717644521047557292624971332228595776124821759626455986873247813379050600855003688271585695354304736233112473194874690972756523627573582175912317097543165858234774668465235460562207295303264023671449988681665234851365406656569664110453586010466501512612795755667944457756016724247750256850176097191858825105647940439139396378785332349196384755109207632862636280908589902106586439802507026512357091038456232871178513448266056439805861064369637671986152407644536143543651538214582789670569001731870221774390942742238430055240212640855260195208405799512842277229004156152614777011047759504011619728218131944348095107396307490425148214849041818966872935352696164326594922699626578138554930659811275541078382248474028607062322155068062889924204858096421594835818725147865959725258446576070383389386503106963082843408920245895160989569726099649957693467375323377755474919274273975527359845303659693387187242129738928850484871533012060488457244507131295440571145299044400774062153580080347614829562430118617056943672675931056127826983543936224795324990614304499479689035394119055631647942579859852076332637695212787287945237539164374313350510531692151578734609948770422311807295391076561742232993264833743745566514372989057271553616776585203090123827110481792751803864683061344834734960240582616114456745745679012072479413301041484649413839060669314631048866089086587175304645627661980203617135867928041037464635157240408635068926845896864108775239045445787820315594823798134191799907733429797021861272128987659074974610627765239691112556317417367241951101139922007888833979975870205372853636320990400160358672553771806266519208074287782475228293245627686657815441121431764084068358442407786845780202675391392044241231641079188819670501389947761097741716882323164729138619484694665187216909934136989700081266222249560044084948105183265939500603059544662595613894788590093663004841596588933072704532589546321815616557726682885102015957448306166805826187649648862685016028219789613548650516687061230954968428711999849949072844689126352164970255834961516598442763552964209798083557149827939326828163586938884544186413640443460479338918377660112455901337967375819731501491038196647717804934360237570820573458209317873303057311220898348510426389480525426937487718759693465084373644494274398396733378732253381877741521125535794830143001277207015610050978239064680677699043834855608727115691234927444352458917085489198053874993562381321712248834376988995027037585067322420960619536855442019287932917601479766245622950134859562037973706232849793090418585654975874862166760668545408547825997536704913934658152169066892659217457263935634061008297835828818796888694056690703351719184844153527774484569771389417070110095724164019094716457511543426910542760253814834485810536662699993020820053559519025459395964018586961613043057819650327543002325484610828165774268183706547472136168125434817932682331846101345217434569237891091938130953317822203591243231139967774802442460421813597595429702100521948842954314350961121103325663553710294730397713893839500102671103628537411944668215898435583983161803174057414051040775349111579513047842828979005165604130773284970200870574220770210261632305136361399056604089605960303578117836341636460212522337643871778656620340742775073085120267312448688783273812788966314777979670669708040997048832810652905836299413881999801955017177077830099995874185274456614479157172247277339181937550498254125595887643277384108422441040130748160881570838567720645966027842730399272735378125444942291811448466044704313321363784915186483274288792062733618382572618045947739585180326468919949378449550268637160471177878711170796167441959921186753323807163873044139192650392148525760570907217793466570646951789011629068988609510064748436169224468903339718176999098693177167798817312820859441629864297526395035787798477482206634738512842076956621380310403585588839523630207263765694302206392504058656567781029028399959118271121273516938352357488141549296080406552689813765185206048536841944056735575691199837541721196168727081924270537300686772297611720015962642171871361241523982699260868188273263368056029487201512420818627258388665722161051931527263239668600501430239012424461797703382242563570480660675547885329060958383915059827396958361422064863017040655670175002366103924863557684505783438737452753096934408922991040839503075985683763916402008970402165986305367779835514123872083646439846372784699193494688242175292086425563130330412743714603204404226408873189476127486042095042671095021480258657414954595663193367633757401406760491592061627051895196346214962624280663606569786482820230075013901095850391548914785441276301572350793481563204453262728091498795393148118518993860725689767872918649083015791041281111362143905886702615704313381129096639541449622022297981269039077593283104272319317189308785392629727133657572541348096717308667471147851890468646573661185761203017287984658117176697628935254599315172689514362274900839173221492315805157260829026650522298467268536473775068348796126742759970764984760589531274807304842790935669947612564023234230305718305066444063512713441212764328771706179938657607367887881076816603132577951709871070755081528837664157209715925487759600114801523850254040086604676157506492009362518815585075319022946738535537248156038430503992854725297264230846792892262370273836137336919545583345351165462538696763640637681338702467325393612539850289120486155727171324158752538979924374146048498585312576353288555034468022829851115268451017114349405303195237433972703596741737502316593722111923545105923705185379651833821010652356205184619152654868517691856062106017002165869321908993768655062651667801137306057041983802799251240206163285297102803255033808270292983408972640266435560553937050531208171100719181021734099680214532138524382212460465654908166310698262663531297952148617221207742872507975011271746136596689640934727358837069439322620475714067404059455017691559137266138922380013283737643267904735835060895356873467053742022885659783997321780218673274355947064959597735184784610383669753635318744804597515532365046889211590175591098564642863215760266240585669560583980729349992008609392964139618202402857339929124904857354773310703339507173068468422782637480278786901997867410934363945574083680507351957545108526747950803871249475062747000535992177814226535127246724864934005068851309911180654253070394905416410208958887998740935296491094206978009486964100118212662691137454542890955043431234810822592456130628390001673162025848903064472685805828083243595567705269157024726040532389662257559277671390177737019926464458801217785589312247308517928832404218699391200369300719670023345443658824080887859661642526188664813886696198779502287703440824890952848144519274816844385134053818110517788586497426245866452500041998362590513173202423961779154513621862503489178508222590760273969817620698714075094441238313722158346562227395695579742662964075054913778077919485759926061976824524406222945527912934222785323091371386198858256926999794981776889667178709133778412826814803885386355300629674416653971058058185740234859160273625223207363281124912009780057352411416419572222149639290768541347660264719531323842550960718095557217492744188486901788919068559015559796543333497868496205952373820705286043408325412311963949366808980656600117437569332112505127060967413503138424475438411169142970408074604746485407916550476524054126018451664591172873901169927310763279768074676403186992279578724898386782383902532960424199168851199289131886387554048809908288125322907186805504163346252707409767135704810067078615092209979997008094791629085957727627760385117486439712649815745874063548861380809242730369207163349315587194824265968570495974847525885986607693918095479493515532016512488879970235291802491399292617725718520177350905217295694121977200850121658773587713109306907804000970465253222147340592842996299246929480024809478406329072411930419580501658627868952213231267816080685535955394947897882981722010115326233519133356260689427443115586276529183640290521698690291254075419481462613423621489548051835297294394337616609921092794014987941120524656208086812517109573887273680449657802960134482569821384333575721160169153902864073885745755148281421781691079777328843707854004069052501629703979003929317870129353428481836283656951044414190234399295317808988024097548863669346167618545493667772913791163007447363739426797932909837180222473097936929170421917054084631900654095568444312338181603591712863875016351575440842374922613050348458337940221013589107958162571194692553077673393441728729663576338059813557595853762257607046264987668677514433458860609172906939474060472025188494895330336633654570150711601659646482943133656440418036898337957460825225396399160313054380297530554735244616992366275329927340169826850719308237276745298692841772679635206535671385784659675768861122283030435938854784017469621761775828625270793711019598658056509396252755327072210330836074479947174936412956088012143139204178113392843539092727140611244436087354129991763911496457622626221664766138937890626567070785699629758267155721073616789259661410446805430437184134296944491375073229475888662004885805388600469823394284918851464940699890724467521405015037514610998524537377108958811337705852851677252587607199018665817940476469398863888699910294077247389194081736828025762663362293424272601327679502443380767623475782349293460391484111325543025321516014937586695146725578777551858987492255428209339282544318849554451630789753670680236237289015720247739631699093523183965241198876583227785187089539242926482106673304957658765314160268081438940259830619123206724364087847901229191992762032675321045257240808340346489959762369406253916317023129507839770305781035696789941608249042151186351328777487225005350849415803449242462813943446618784357836335192258008345354379472756103308497612696506028781459511060470421736616370290820626642962105695193395038570875442563798715353369196247171729853150954492505900323355296715889370215228480302660177029460221464634226572225496498418129654903248104764248710669934948275121259640123908162435532925553019022491021156333831175192012850296346549412522343120635120125851537800493437103569613622216762618182170267303695920598948427975944022077758297993518601060766537307087748166761280651944926871424977785718791549083397059742848473542365846235614673182077071670241263629974302883163109254744157777934111282125410216555896077822353571866519843112146033042256344233126224246141832656832850887339879894478532592630144600304636154316470425402441251222010028951909373636795806104805203611229608101441216010233482601282099038926133257104168008237033367944942630580161759582054653614123132105175988937764214971150079896507951585037275917564807328475868595749288434838789724023417644784270351444339663377614720115943831523145739049938807655800316082809050669181505603358251295645578996702504551399520764591241566143397330838572023400040226341977340521602509957324846594835462603499939559691780766719594646701674615002648909926482135061396252726105001359902460464767110392484812030612835675349808681042241678720081270663680209066368589606543548446065614355047605033080622487660700204540237334489375384201630578481558845542168247265398710162867031242708036703302160684435961413357058718075544638175088711143845101944054360054212420889776940187325759859587908597704956205938739687502970385519070262242322738553206175939188258833924209887982374357783913462911157433504336677453140323908801872699527893316456556620761225995909898845571385035510584542664168859177655195391362849715153053294457051556159616064254065398726178385430473592579595313450443668779323815713267568267952189647550329455395330429656594199142237862280666023277871858864078570350867504994187566914295471547634784535278569182477274180572913445512074416781507805131558120575384803713840163660487995041892571799081627519970866323674566945885424657011129745776708966123811988531556884978329088779880758256618923408048401102792517877180852730241510265774219940018689087153377730027371094716666036164807847101394120685615951292903597542607479125347970075480340401895322929503864537206089576335475525274405646701646003947778788919072937384805385986769060422081860412646381749465722787191770252466432502777979466091481270885039597713485144511943138362974977835178016953506546167954082044598011758048796874078168267789595547430014922121504972379598599306474169685541868084167069272113922291421575138185975549980619688658222337440587766614763902479938511010520573534423262990194629537071343370532543274609535276483240452410047188816224483885002107230428728784174612127897656327630991274447237135592329909781353730989932043086864861457400279492962060121120610808939056229231397270094324811488968052233353741322170801433587656554760211055609455561437273679486809919369319355198186009091477354236214678101072007524766630640802890262889659898998420152831238602492993384489122893383362661847294312601327991645704337000133392951938941728826876808635779571562995305337477541275232887179541880491926456202963696949033994815301966235235670895236504391153239888483253533453928952162555865667682976012685908340582892249384025949548674219875999226974682581074606906162510436701085654205761836425442254723066027825742305410724228088767852359187758518664096285160785925128304471064243284464050240781904372098421167549649823033747170289850022279771185050467705840656746999174404137862386690896553796896019035712976565505879582294169763526192484572074558550176377996427610784027063014974564557354713300653374984173304564329994702881380929028243598776439082632352085209968954694320225222823232885364538375610910711991041110460837614561090906449189180479250121369543194887396386544775660754181186405854478437766856561615958301488666420700965441948215053791772861499226452566723530219556897924239078571876234043616642920905294600622172941442582106160173762900389868525453563494660191098165359301858020750201958397082583611016884644678199619791800052261511917520770851400449584164295576276086486064461108683176773591589420087887526292436027795963404668469603882558163577805306499497375681225087385709297035337069598495543870140248607592144636173781511458912326177986702939160770622793075572516034136200179087635544566435062898518762632046234827846981944523660163814924409798897893610946738133307592281540225918367955129469929811383820439757281701342373061527253781990049825417974287537777428208922908010569482098341000498525924160843437568973735670524556190439780685906171085379368983714634810433587258158560787660244798517357050315083321713093587477178034131483299304047323019718639069184763569637439935155692942718072447877748732222338936181130306049684138453283424422812244267588379896636489393524189648641577256141704692123378992292637512750115579341207398674437897524079998300709972419490727399821754095537919997925324688426157095256896625093871194359626279691609343844090083974715949005893802096917874628853089501730344294730824502213776496386045377824969017857621229415778283227708048477777060907296044652664447438301859044387834646678827476126338468194154778262711681526232122261861818546299194340636693952720372201840265744954559551833387160471296576901712476687237894305815601308171512576498269171151571465469595527487049502492512927607357744221252557879075075669494659212668018624963769168797720820427760015075148219693715913012509838707957463763103322550012402767182259749070968790178802387675477721675924765599050293079244828971982104534191279776569234186765593465033300914609058370511486393169850611946062246728511403145693096705161847530754511357028238389751674550199811966927583889571362094321523610492845707598004893413078124936318432298659833253803993120001783590647056992448396132240111117830843753221587681101238728712840924466868566412307556898669629175430232239349537250472153029546115167446025679191641692738624049936919180444641970505023981921801642731424301487190089493947190531865095309609818141951312584762785087632032920087765132566167792499050381736107198107093511718622008555345022715536547835190399101902007556678291728233302671632456791066015701314016887023950052228215777672796512287671791951911016771194575478253249409783728663920155011159405378856920513902845504390442053682047078403928044259579873548182176842162653523158130676329934363739053775225134870642623803102172729760327346269351934838737249653074304900945129664611508207343968283692170149918984174174856499840576090399899145010809341445528680668135689674465789789114064483679538914107623917252007200531484044563648049139588939893363327389976313492982889680036450609410478525879238134535553371358827136349023292781016972715759248281654485593923811391933398768690230972473202066881165157154242224453645032845931609404312497970593542335282879806699804785196859838396694988913464255462850533122058304673273308561850502764194837198695658487079634859530653531396534639855049740235601125358268624614139882379971485684112796397962672513894573932099533061548088032137957816459010939415181316489551765259055636680797619496889763476931576281496134892256039467716852863144616479192265976797758698562411345555428959519154535421914696120046673835058039420315232676705107547280995801254150327414216092397950473129727466691795824518107785915128604963386973406662306070554442023637118672758858918565589234947105641358196947656271684780386407357597608966883022649892650522009902010950674304213502896806898608974632220589516833918675625346582223769216704163345198910620775965882934811744945188891056510756831843802004019374192870380391233642669591580424014283855608702765258772271685343120945589926875161739809112962595263501901098807485283404582615413000772086582011088708585387603617642953384461994231390977651946552149800320618681825471489032186362215573925150908639930171666708767545545998959196301664021710056757494039496221317078397543053951224146981635082766239989895977720552149345654639628866561907225344487963954844087473699178033433179154922442515255813739965766413583299633020054646120314976815344963420479284575213176398472550441959969544662749982456246423503539487996624359730976684400285002050156744950036244930740797252532253780688219205954238228979740861272017544221249050002324147347033244571826088459892930762452512144564072470566036243279362667421774599049663532782166851211644759156507758220969229055290739823417967418091993539797763226533481568964212177580364475510639028181007117122743429531293799237526866288322501797580001503271639776061524476072468785640279579252909279755459730846500942836098610489343217533742843070750728596390499603502061063209082468844636852096624230587885077584771998980238686778477101229060178884620611205405333759758146564516654401901799002695235835089381918293438555810770578749537512769304334693236822721943594811450346197529316674274957487394237121431526475996971740764179612484434347696680720817617272638702425234305853053717946609051504134150457830920959877922556662137854526512185197039505657322876012735186891372292322553524802161449854060255820249654844607046957086876710956829095507390829420828127731861838355373989817222778306567945135688498460803682470093243871607421821193424626070157461812679765710076410910312461692606416860209762374167704911586667449772107780999085585505983388824021295319425756192622255151921639299147245148133229818567135611797282355972365877083821230752262526164456225442188305131285460258157992454579140833560312126425275214550917653723888922271509690055775713492700329569395168406711061690523973958427455165189597577106202084358407787063049883093976192454712203288712847656043937948897024460007837828311274535344049074924143228778060141983198475696687433646937167382079590408385633887574480638160389170283287629202729298391978519529291569818730929289181262003151016626983956648378139956811156784461518362071668281107484075320385306638479260228861911166502851143272964223521334885453610688365060598234057429954456625528235032104469991929278698294024773003832053798198944184044009327100801291223077113198215101526894548321034720975495075476701365455569299182044579736314536864673399116820810672177528592589671302566114859065772799113797326632635335118165975003688643216069997122387987642544578581501473175233368448535995889380846390286271234365352001599300102176833673708082447890956971821224801558934130280704771744601585572500778945211796635765811437620535328473794245828836673636615221526144287917747106624552065243605271538223794612080586844699262270714066006003898647485085261978759328344560465726530467473850193492631093496002982085068469689942238611754055415767674327187559001035178333195749477450463471738298284523787428988806432500101597845692133404580074395222450317237995648070017697557895245326709648852139455592634336058518796427487939247081864962745325660028358369577186613120730800780318559488862029421563463200393031583883568622819556038916057037122559112576351805668797347569693679725101052890460383826863763428000076919921380091923406670785565675581244256402256537999006846353383300001518277131295533309854477915397110899459856898403427330302242217995138052564213095906120251368439381612368590917134787783788827160994231669086946412364984804997447843803984332613792218103590342872946700695256926071706704198089978751435626009343252660414631269787064449383081721692447490167596238266693518380441459454523559652761285506267104038950960692596792797762589116683641498605694203998787240332092504486764657354846664072568263308244315640708827063776993511877286299341528215223752843741191225976892810049656915563987398214995429072368401718036280073563348502414900004166324491242349932607082880051537482104766999009514811879639848569438305122821511259616891474153584724450514168711033475145496160133903308834144522682118766856884398556295988200898649868180177329108805457887308460080600741535960530421790477235795766466262125614804634033456961945329857868046284905414597984676919482120881109409417657620973060861719116415396318589764916455219765327332249899734574736603191359506933558045375246211662691020990392260698223291966289071233055265231242081742403724259047421416713370855119053188779850630876001051055350811810345438344329694931119755351730725980206833260636587183957095921742841241199744239182160294793340058914049818430223760438408866187185264213364548300854562349234118295781526191394708655154670007471997843283224582607711375083208482623908014648243900463147682783645130507909531742779544778095548090193674605600425674419635340966193300081170467117402958272803170368338375035074867974211580233628918932789331212231808750808367325131077614941156595211125715386703218570000689894752420848350849163895624601921837804798006450721220449067936047884062459323314224051595141324313707725547437408958249042954933212199857622291394548997128603317778079470842173199782619543624370134894043908333881876476793947729788162878893274334913371334150357904130338963424490032590516334923616758132753917905102722786658462595789346314427679202574978176203372502990090402411910485333427238350097403594534555447285570693696946073218835942357650465199764245024251344479568787981706805532639824490436413520152947702047878368270025854914757083206844963317665207666420602103508470282777289551070369371471913703138251361893235289441909899198327297689216502339062205618838762063946986207114721361169496079860990136155538250870622604290852542805790827644276731455660213501633415162439480862290492094067613930675396969821285370326360732041633500741117783030732525080712257006622109197199658432865140241406926790241618741548656019716691099226818241965798658044031402886880783381541776788484054765155146566876642798836554462675953983645764923626378942538930307623455733372510538191980894606208721552058665065955848591363890842831613219653745836528981640716475061044698355426571273320087581580126420089156367719411508512093137188949501445435431072705154446392255195637541166731276381913225282258618878023652389378754202415928162645073678589154702777253302818440494156856535397548306588926224643857524696324035414458037850800557984911668221442231608085826044547113391164271145589724945909868374254682166323942873814676404073205093188257835956046895596160488325434797454804637116839045949269030080189462945460735136408561879238741631769095501408824580794611860713010180941019478310398144782527480977000886041322062699207823016653642032180495714009152775139125450738109173490042978612404473286886796637621397664004656873449197918357660754634480357263420775192846751938526389860100067828543385099979916905950083710010067905290834416538315400495505130498962144580934436327555825259631902836623817810717684024744039873648136675603982285054776332253534189039880556117521218333928975446873773667408560236055687290513746770505624953726312801933970170127877060172042571868652395834435577271941343564740798012442192317471779966338616471035120166119835353839723571946197485937503738423324904833807268222517837783600682367613651229426267287092428207479518607205472314743483430029020625640864741175543637367056752023302293198481179145072585819730526347987307565649015500249278861877009172475715119513947927141996476890455118797228026314366842806352613601943506692561391437227326602227049466258796719728153089074190038521546105907266052859784318177987851216273215468983460262397072027107856306681286441676919466021538022246409366915821073624526620254922965542138074241250204356509307890477357759810106880440136329605526599099990373286741378555372742517511084862727548144309737538111222001008106673532630670349239720524473806658662926126786585224318406534333784151410584877069234402608121778399303261929653008491099215320159634038061948762213660843378830091308420789922689795156007438111457812599123965436335521005359830637991431995940539019044673507977847715713332414395413591114919644573812307357022209143644512727396097590157912824508149326075356118767525839751814812676510911260474036705218020510477296463969309997366931411631431830318392450141303656321906838783987891178990382254082185251309210401927248722551803626084423039062659207880570391946714358257101069008465902082485293698855484630760631806879206516942891112297437841864196965004691222218533077292632464753735419223229148693490464055485514404551756134790026892613867744935396561749011015335472345722297327464734240578867239367429811892177551001001535925859073015108840601526694850775681426262635518915828577870471736445780270626885432583120746930653158765560789942602491005886145097374816583612086526391529218696504367358103757858859179756047884547678392617429236735838368361667222169914213530124136129267250144189736681216609798708061748310668731595229636792385398973694056006899370604715147075913724666180016072098661301708229892573318914512847063309409883567276018694899735458831122826333493714307767350712809505843705161895661677930118488888119654435720310922319436753246140141351577803198482690678365736362476311132562139421393926089578008945938529749778600387885969883797517049892664720094225735768463921342114437113399253909614129153907436453013969982953620861292071252052637224115310401001371807426638857032064807459934967256652338147906478676096946302208517970132326208289140306306549263196881031804346335637128553223618770441869687634961196775826103786198068664522872549879195271907772907890339279604332458187947683047599018594575772334502178649198672610970784725095140705600111092867636696203377427860494689412331948264178843650810345477795935050288545126367978275343449431453404021668813315127981915016330415236338945970331080947837783797585094862226098694736892331667484545447329458396954690551641974634387106588621879437568392293078673991013582209481316007772222566006951234908831044892298618534792149338450870015096591096573720527858606181080420368126185911863981305703982032260832326442711811071213119695574016486232482473980144502535630976757172214314628810300744692204049929042594071720249763039566216233413463689196088553788576360814830186909708910190066393327941597794013101656707383777873358342535061644890111715493384051829130200774396180181802770811583766045754926166912811275566656089724479301524439174411448732145991579573685699250259438651118057370577196188932497602359614221128477530804593772311005538929317606858426365302721581495790327249271886098103282682741094882892691736857131534563818381870740546314875930707887272812230849698558756654409372902863126000495087663760031291069861898668450333227079876889574413734818261022884933428893091082570295787777883355213267319672554230990678779484069055775188999382378041929499595733458411151604267276604826004819025081755482232532476642240976432495569647393373126585630628106008558357483204680295852322926943515259044268482122674477643009749203789231733436508924416847482471938157897899613199838178766721503939134187489984577040478349643122669442261794741742229197346365614277472811412649530847399161319911816750700311860268514712272783277520742030849906745720606439089383366319993206276357001199491199693120360611633364435344312937913177791118981099014780923196073334068022035760515461187035677143460534497704777522771100291755062336040678162893269006890201298663161061382323970104030569930823438852941353768201203498250813776644725748226901430828767889855412030075782554733018014400734858111738442310833069895620866782913411794705062934773756017471350051375148828164092353920268334010667634084853703836516764811723449714081323014712047003889107994984845927951119580157832819840021341583000424842898665321791865226437346522526861953972566232232315720551482391260120859364830156277398186017098982801499723115740970860631490513563564477972205501373453608296992510755056482139674013287717831366234176145894355863385892619214039606037954907598187078339009354277102643879507602615000873315817264336433963057708150250422448585690957210360988321191416382290139346381847982671101123810092267745724960748626822198602928649763262529593663269347666940712785831245099179052500329836014243529992399539702580900275976799716169785546594441796262302964105731725125055257454632912443574356464815533449353606361087010386563342908554758099780908606710290850352942680242232433351233973428825321178808212108565813509916014714593643155236660486262988059584295738818361793528592311320701244922994781799672726111965947062530923494829005058660919312658025953944623651017100825874549896967097116982718202286436542204297457135238333809365241304213296992593434298046025195013242091836931485068029984309611132963585421850323240342213502679177496842394526857245512761863957801673772285325105230257830767521392098565151643456491215150692454113735937335142223595343924109918586795844905920846539894150827839243758343796839925625122270984285258063996778984128873485626079295231103514947355991729573246824373860717806048560054459674081349144819476771639496271212713827189013253023165693727433869109955694562164583036471162853526756024262366997652207233098022265984878065299931630713643051974314035509868550330392689927567947454657808998869301906656105441747733178712264065297841612363865981037506422741983216437935164074043777635647730934215849485846890245236201775716233554808111028683107832810892563754945069605422974219571584936504453835512680225950605242340576823199307801354655361282056019302658826593192447282371344522093645161292579969022396310114389395876333412733399126191219082469849202703129154343978043841349265603249071024536517830257659283101405870545376161459088693992394591395382755460204835187085998831179709700982873356818971721117011556422651403493802992368336624381569548261402769972814034240880537478554738358120392161251273368750297586531734510466476553350745984780019454310676844055870538138093420718455842111772650924598802160988090152285786400086257974855952323475136542561788361033533949172201160492942138544591648151152050271191356501788552666560334659744984274216682474450534486919580912289169382618833156433566065231793273161630971301062745175612823999841976812826007311687050159741745688615598892180115342991584127764894937123964371266173053580299856792125548680123551232956053121709211811709527763322757670619818684689192144939807224890586650941095676096290964395278350283713338333800204961169124618115523208868714327320630456157357591117323256308126743683253854955204633615056236130612700532331296165667922723782594632371698293221030053912754444012375365225665899626444949263979607480549186058058357987791428766514703728166777467123414188086176406710106137084460262663375447700747815821896203006852879332139657075040288762440649168822339073912339081889978209407124837637964504282442508942249562437742287231979313966589518430762945630741962134893790552627923234199471322425476880729808656073168943346368807345215251187187721496123939857776990180327199784215609222138003723750116186701892737736017295251720648365585619848805050850092204542469829729799071959189046150227361657877322267112206023677927095672964813422025581501425354020066807073717137567971967053736821748071096105184634180350014442598487247542472165052875705773078584561250120737118503582516068867914228308054567122464226495624159002804800876679526792845812062659828775943744736276610587640263119952492322219025073541689686944535186510845139944073335427019609986366375785398936273503902503096272170961197865489767798737009731737272643540679172146804075194909926459726876393284798391538914838667820453231996037021623390143009719591786699720062836279661852438289332195904303727111810819106674980643801599458314409006027312156909990000316575884443827628104794673678602539988757520034447368244532090071210644409063303863733340925413407197292675767810098372757757082446029434288712805784349029557239811960531392639313744660473592374081125113880913226671735439550269883783844264655602399732253396319759750717730835602688601170280996552401517488452959071025403640255237055841490797211908184398977331385265662716220711729415436645544593790476648819051341110105131161358643888992435390063729724927290573766301890422318033448911547044570630348280699423453089495743815881360403976935456002668841345102438180417884661707564406172567499073530130249326426786153064599697049720562130064328684716160411164840398768177246616003245057394906563561550851888859381248189716471138977876809516794851587152159693468603007280879400907057427753180803593290832372045653705683800979783812971107949439561308047070082896869579733488588520928143725367447533318719899497081963619917640195614274812974636321572198161966920045821796249441180961326862190632614557612458720236658774571920794618281093608549709967188009464380976038416794136185315378867430707445548989775064157564882926273840570195477750990785070558327819874955151195879899494452851250965982785098294309048215769824920882724550625078583607526462774793473990524505626580400206935890633326675604599821217885341191163781341802688532576862688464650337458093818895055937493483628644120748997870800049945148837309014377774564066988072298766466520474671889282632377454201893547117504283756996474831052511972246878409520621364861487722226954844511575868794088270794882587693033299779699912349408734089147593155748557543850963660214844279427188067145374510851488818125714307669903078465537725071937248992285527455779488129109992039097353681515373581778651728804756964823506731263695827720866656608758786096942245935348767890990191330257628606335029041961757766327003610915554117557134884530889980068364021053909833192378069446510221876545283634480211949717103026382926130866355864243753117089833099131808583081687967664561589746165692523721156690859012000057501746006125784890627925939622674083516039265322051713393126854818927042092338318963386324876526559877298027691912451404637430673270926240227904753090244553124473616818533116853516026131357995423460073171862486750799020743782035464956636388840139946072572584579586449569522748733305095563469539564131429358131266698989298071447151242570060689276030528959070965287726689382884447130074510109956872573811888102720841989600170244674334244672149602064622606171469061466406659251217331673187460179499116571563990327777395727043362663528929925308614748698528469502488082436525120782736006309006225249584542550010222310942333360146866675798718947054429474687988283697809827368109551957625227134730625836990617504591630248232435579990807542355473611425299430216473413864656047980692233332185246592497678369278813634552624073292594941700313276472029659002200784391634773713358737117640919820424251511851624602303872257233207823261693989740986258931873250658757950471249983966244314072942681948945087631696158017193509533250717664154794624756589084288314369336264646585379577381834072670974691418575980641196451347577205665182916400537419383353701069087624147411270231630518603056743676340221098109826156703990359470209082436149983180085701368300431878158837169408034912974543741158500392979279330942124312080432433775239920590142432841297599555785385886101714160915927456120007607037307285768093338094479882015264327484951050352268850467449891261584863274329456243475825265206313449867445022893557041398862520429671783987480076473820529111559132931107412197935975204074603476802388531836730025369071077007213586001922505453488227820014719088002692596702606853548422603427498159278793864171868887279819213803749530075566625413571922306695982156486611799875992106958338111782858712011054913463896748047864609478059855651158303213136413913946741885308240140883697665133153787759522153737810616256684591852865986767789880750950284482087785686357346181414237024190924967091311922662306549285590659961166999017174113359809438194563538937335100291221691910234835484560287138958580341217649663905207138257298022497546876266995880272432745854218125631042704572032478176769530414668264345891656783204189597247498223070076224640976883542675673660930811947786663202141941112223885298333674313080158706544522445276491509684381102390936560937644284397824136249881333917058456129217264470182351524353363046438501572680604591391005506333967739714181464681423569261628170171236730934535800643394124209467177398786531372030537263444984702987283098326282161747663313851292201135631584851179240084645464143635029059451097632266861900175124865824402511356771789054191879051012067862952154747239407966014428311904356157005761128283686617249988136886511145586421832567413713036212902447703930344501853340364474766138502459999847070976633814524529258153172792131506470093176697607607603813674700198931032219384182863376787011022403292675268055467032697074745314428151963207963515502718505801903943948636738000613688079893735667336688937593000145513278162644036935108627872004444718689310449247563855216778694469871410042058076515008377732629055290586466854503912472815880203932297041963921625805026472522711720497030936288170597139750863736467231557526163352715210417634680630420108947095758163602672596603702473824353422468625597428774147820534273623710219951521449896563805446382930327180711934213396197644591803472234715281545299915717353712888430232644592986119048913032607575357328054090658625726656618544726781237343498039911083488264362180049734401434702012040679178463656484658354565042072486049442472411689297235116851046851357205328427382041051946074869115833072721658929785228651433669757022191411940515289228324277360885464918498458028622096422580703867218645382759815103465809590853390264556443070860611770167648942059275586202951972315544069961342318083635420951393148527009263842274124093787149832026549360617899454349549487115190933437898857104550608495948455084221273491589553511719263497882492928064923521468023081062010828679097614488304811706514723141883835905482869471908799373343110560598438857111779916930971520145390896547808044130453280298794331694572278599223375185560407374162098379048898997476668516546917756687941387565415108870292352909740227869688238264382196737802613628484279957214896856161489133320433826964113925972230517892241921963614305971818601932660201434818615075635937569328049658380292798199457746310408684689643007691441334152422572985764537144918477224168490784922131379684816051023496073605442477689540386533788366201494989744330736909936137423186307000814358854263105399400973183098606157480081976808335404667990125717829784569263821573614438277607467363501137731142122059221837236703257002698966563079770389907978090997056284993170225820489555246441304887424632031413463124474737583050427252066644299919820537832893075230917520644132070744053877822457375510963163876490554645914503130940521183583649332379971414153953481199725891714959190780318639642676601028966952271043619969274562541436058614737631073783395976247163041568878825013208263648613231252712267495093550805270152584035278486477984736742612392832026456958346767688462266351349993195148928962437294292884714048612925790183118986668131818202343553210497982382647729604483032486791883408108589176758231502983436388965835184206792954904982672467879198360638202234558234376898239027658270925238384310682084988264109437824984813849012259521531750577744447440130738995726097233920581048565297108736915159121251990155095187991712516291503711681887515773204933641362296106040657587674301167792526125035281566492631893808507488363160287048593955132178638361848231844583200013686425455222255582218444634782798165056788620837660991670753339735804108502027425014537947549187601165830432177640844767307805062676407051343357468568535890688763029381191817728665346770656226695152273005696971731181189705292542475239538009204260496253032636336331883790636091513431661506258899532095999053311841458007651382667611466118019054506417402384275891493886015359089052643163079297280970586930615749102594533705013949685521282438045922774621384121240047736481116756803536240946241065925787638505485079353026221957720543937964800773300897322164586893190634167013845192340437877644016306037951516103414545484372039634282773894147480243225153304491535178535578463820312615752516856536976960968731309432560729395043696403411618137074447625160687345323417152812826346730372570636366404876785411975488359346645301007911591995789335015439467195573482492630716291709732018932167762552010576985498334669367240288891257001707621957415689105009987316135790375723273369671269184365585551277701551028471988496491655532642904287850510091376992063504360252686047607341819935016334247810346973419092412364299726856452598052443103667793207565545264599240853966938013808988056393116567256525714996225103360717778084640345535453046242699292528413755471619558282043194320783931937834536175177022134436021461064054479660769346438831347220924022322695048906358218394754123315293011995792823433951580590117448129166287296646432966033685114501984612144324240555367636764313152118401118681892823548318068862012753845076417408855800244624335179912229302922425357366931687593946531133993595888404380333985486411866807570004225147367287119895197725261029675173115288205657762817206256935522709628194323516396683488945501569141716958119585225307745565657815504371332357862423995268759994112667137685759259087955808344906250455465701472472706750065281011142007081450994322502708502201107261441413259888232172384556418173957675705452542982926197643328256945862971143232996390261202569585103745947868884634941249521858193159037165286960759234180723342868205240176923244686422638747615611332245368679255455416128569571572470503128088396742492172639231842803523872181978957213251903120679043043159548152541406945853152360492181813792923938666503895636227636951169005211390325236715466659402554299731838155785875990276440952183793428027194117952005802220926906888790933854169017164660064457841204216057412626085895032758986813853403987578394917270229425620899447462045666659616699478409446781884317155630374141742752124565343304642034786535437746500898640917976895452773721102588272250208002220239113071876695051874772142486825621073767564611785987565273388502930107104855747328816996729170868808512253879404493808421476758126414891172559111892527534606863223330783985315196652669691479227806105961989509886285617785617658189676736248914347318981863981963077476581925806002732891564184127072654007104892399628136505576636235976445652515994175054172254982692657194419285503353922733706890919899522419670717009625509984542900003217818525001719420400542658318922174924088050993576081344518227240425184561541308591755422939524235007410568974934878680037059936288289211352974726695667146948583678324988871117282543438884843361478257530366347044466396140806344661078203481169995718910793102213544343877130828210286808083594134899753165870483195576357946890754272350131217359665445483043846484719549259048393055494672529931201129383957278273701271556390675624071911090917354381891820404405670623156003812410334676292955763349178129630433013833953963411647746111137643017652670337634304035569668445251309376046657968548789607396244074275117309124555535516838233378031919211122504126239072828530148786049010117834813858585818126627227143376462572292036892833107378008977306568835751264118713507437015462346302482197008872643169301701665624613525354202030054758183562071003100772128371232392657844076365060749377391294642697679334033823111709549043749085724259594561476270305744400574953699486813731298982493641556069032337332570866500536944304624848041999209283836295786950619821753145958007898098999808182507502386854832643422567128165094109194443582403498903059810543018147449345250635682189452901225500240851375612167477270176852575083394951012733212656592443625120365921245019623141346262700435863962369763478153004310168273525073201198413272716760868985667921152340541506835626383446805673169558786089071402252778169329949283354495085671969001665169253486887183485863788411244177692106038068822781202649231408328091944534674838818882370340191027288670242587749525662135278403396205201035050173915509935219841500487999107901010533931351285536709088594724802754207000341848745287209184148456484356690473109993972680350327844404599559132134033196857127986696896448211199956558618746335002279586355001958908291962523281414452197049936362257731562187622730335002853539960306435149535126278847259916012749009443081777566769584001482053726408084016005325055608390777134553735171204965793089805727924414070447814908451329513921399651392697037360704996789656165993243932560248739415406496308517402244603291375552839224378196157450858500429333021953710028692724416337389352862449667031792196197135214946059187443098024959866183330847733025739361620506235736531403987240352164036596188686079637104673194740759190764102627486498854654927558957950552592763884996672486362810537352459386485426617235961421466901175071879290933698961124992287786378200400443456920088558422619840708919914725023398636675977043692363874153231153746184002811919615093353228898115389155253553084095647505312262794680275901625168512519275606096497299641495361372449115953555579977879981267899884885400801230228992747436104034778908485707863601887672151965969323675332508480593836422896839427396531075405817963340513766765803522336708752925957908870222208308190819516678392397466478912516873094846568910496313498661113063181662646278901499489759264948000321527200730640872514207340399990188900583437338148883898701096984103681815694884623077532326456039475206549531831488365342003387683992920069418620823970025968270241582902838058962504981270349354027250817920257160780061552536490629685072719959018240112887675971460115087504030292647423504712797860934561109972376571806800468239694924304684488594416314091354973943035168844162611793660331508122767761842767854388042175969204409720621330816099915009178872067909093705721373375815858794347594946073303947616160709775640651856341514128179128587420235182058934087622719796428174931583156372630185608744460420051189026713766549962062652406817014759867124959704221377281589761869839714332312809128385870833314704410709458187518227795311539286482924298767693238662595313582976213888906450569519026755104938000638789469674885028466718519432703616732624108874904999347482237489833117055185977586735112411248930115718167146188285549442741824105861134740346598852409322604627427129647667815230200584603506538443727614253169674511267085482854978696986388472109536864361226468119195974090212725611059315482168389299527351394807884396766535675031816684532593337744209867123051972546290187235154665218928403669016527931958087443127718311295190008028569024991746163538428887748973524189996990211837758358997059457299475276878098458231977132544163652868742757635389410658038051017101950216271802099053755374811898572975361892342059059981740164700234046570945221637216232428813844890532758050007618179230115263758414588101615902056567909904294107357365245354973690461408714672230538183152612733051772421868360044003447203382436789721093100803113704494903267702629665662345839893713701443899756184951150152460480295411983826954519963452156776769596475206534266381618988545679982767087725625269963448025994947565488944631304087883931988926348544850558742248420808495318890884821436139202060486559395433931816173244338112507998127733546710218710608631151225795794431994568025942815040852114712274163413697309167951375145222407507720848368237992644139239958061040174983827193938767337947048774262251280860337587805353126695182426792979296237283907234605537766150721685879854319448370185217349029888951891887402635311044229097510552545683313122593441158099732406135200249670111655649598826133870846281547782470085376352871946083833531629036823519057524447376626594235811431488976107152595568054749851479595913877078812748650437488400930820298009495462155241518483575767771779631458246452680965788506532725334042860173904904697945341813259698961055835124935942175678938981183094031275278466120479551576005556543626288482345676035000852824058808399048255589654676963089266786825516724053356758183500654406425912909665408435639350107877820705821523378407586001271289501725551558361410722850419457818053876247188446926820151035372667765037678498206757419011685899270446599648818144616085514382077576233186466664910009228335482010960740204134196521060913168665224362365636889869874326998530183442412471961140888753031281448872442875618549171143844974159244261771903757949260109332646650094084076459145480647064163290605491374899944700198914069454480291987776933617384245687636532653758735480198719206060392949977856730570894381282374651663756430984435615256430353212075976279974852630366051664040046462169399437928603212776304227370897291290025287907157129103725645377377740335026163364380491749636396222337423828922979658540975416642014974118375585044616542310065121889353065995123564321848355137608232340287428795101900068270778053522658437208338754300656523594338296731498078971347250385134191156622559269862369899642638853669364524694398127333409575549109668198192997268232736269582059111402972909944457275084075272521674195494581093806949172019699063593639567388202814209247947058951818913103306273243248679336118800558477537642999610110869822099783131843624381599965954505832807525450736339694708265855777923021193104188772073559428514429278398492088454551072853952409330532219668562679418357748884740837423715323382462486868957859414585644119296845361013185325301988246901435694184062909167505885206237411178410741976919900510249000820890592524640324804178652270970685585662091125670118725735290091784961911036593530158607376887692987265999590050005370632634297061743178240273570352843814569434182117370184561597929328609767051576800208816949764853883986035820785128714679892539311114785945975928278951498848702717252780594936825214189589122352172752424318864177666610314510814924863155097289158593347191507379205613927483721199754757790628288509026275672936034534814125100737459373490039830909976274420937723392138716320960874782531137879524818929191753518909277434343727862340434040394215136303435811614259130550361584436238673778229971819914129933883839825819538595805242816273100178384001676776258657028923450635087128277759563066498515513453861524407960777482033639388635495389098904986705312955596700980813208919432891021125271161692682646951372569327382014587778494359796340481743883644003443600838146578245823125714372692275387267165543291078243076132433701673577245437323578181375782461812646506364016859365312907977430258421317791449149122862953734596000039415215905431814257224213587403946809850801451584291913626454874674666798664216735434496793873112268936969153807037798675229436285657857137842070773573423467013155886792350921443738078652102196403110585499634651553075590281660334960181123786782280646766850457769212212481568811465697886210220421491491198434203074073483997201048378494601272620374914758524770821460270263013752577439092474062937556381748051388198634621061792027167345528329136786764025928178527276343426428133981162043085268699974335886288360310744552633060506771449330081379372184743284577961161262186505604297097650330196206037986249289924164215093959104254124757990662130282917720774023119255962895614315497059914088793162604141855649028990318672468958546199026724055414253274863536754430418115424010210896515544742801193205593602309998779993778302045689144036086363580318083655874913294187533692173074080861937500605169513587716604282684139496728953334480196070285441140518485775358102425189986635149439040700012615184934618098527759643921465528557860947878011626233469107436462209028038029653771958475930178540826870557550175158848606939757222630800038215336810524158139606330910797502320650448333579702400183225163783386032794403777093139774792372309772290429145805134108915277276887486334495450107012446770690370630117841158679813206835224793330569505629704034108000947186108891103833839124989097749918305113478341594950176653890745354578214282804895367590532132546538218371615734318403048238296163260947438844770342334317639089283717956904344246864757324331663997614310039913356474380999820942845573353655709838477092828846115409945908428447060741305416160094488494499982453556801178394649201864403970816489016013940668190985526726470364707341219472585440467834544713528958388811112175984997835050277648505655003621879960502186432698002907789018392344235041142128040592396540821914962482121200777581095148054327310165355982610993787004351504564190036549102643873867889931305865738364590581578210655439565144649058260451564972094092845618110669679549226469917582283682305137975704281282898635977295783083577551948156459952813711567520875307588439590735639746525885482261438883989232059156757241991965126729399971833202037589523117309108324633156063034585374805016957538638421374741423861427611286208492536047890744256054190393526019759734557248474947109345189897463307551261403208646937010644621558336680958196666412249189895582180087349784103300898979747200106825145338467171101356176855705029084262399754484695367018228147164937888589625477974651444077794228198473914464709634287438075908608727189409890722767626125460817478504331241201244851940650867345442826865507396862071116957202284079776014231387745477057805170084451877567699316796944077709811691469234776566469448097692567054199680104996711943708602251980685968444889505924985890033306050509279759392388119576990446367317366909207677883563493054224705958351036464793121168223128622006152773474068463313235498977577650129648318591334592965900166208324928956196290330028551933087717807640218360022583034179271994267775714466030734906289965441018780554089831209726627002583296428050721137766608438921303444239862230245446344166085064565660798627804323570917241459876138524011453260919605591604795111396660127779591652880222517823273538364642539875146587390390550909482751275668106249721413977866899335839327635654567443684220660538079240752891550698156895678969719200302182856149536722873593161965589490354969561131297003324784798911413600931243408007054333274194060355942862391927424076107941207814830570209973749444584000949133963678444615087045188319589359773319735949576672614291839836138631887924243275298581634035935318124741790694303339880221271134095764451959966813360918071261094092784502261280297709044702751117357626596607782466879881614579004813485580605708239281921699412517237979013934567390066966417696877503551939422220682242546064971832970561636417359558167775073945508448648407243597239108969157925700656673738555943635934175254632026850668856557143611299659266494576948863078985620394584839939937566264415308763633902432658713174122675633058000802528989331231785166138885970072058231092082748289544254492193487713563379278816440692931628008054054236244093424485361002047990482659512377324391337263318420449833548649767937084347897304406568935817926154716462975069102645997641942970584146708659714995065046092798880743015110270213814672852102408113945365588315044167688745156644827935111848091277428015268339872137979026988596242210979464984084829464763393555285989097180567136320711432708038414455216944510194409395504238638175583746338562766839773125356357525123106301790598464326874198150658838905802281453079911446339183005163270778540350166605495693297751311712755580477380434401343374493370801189172349731865528044609796068409275190883201194440197011671729984709012977961949942645596137494345734264663852197218700306145594266115790848125215238531042072584388245608146096655719045064768636305452025223323035901134041956877656501511966743496189087638891720262662424359110092479309105283520712032597749724182082414060959747775643423752176950839178314681189943458107383031351443924653895062536547953984262641786745112583127365894923698299268291994498883267396654161185271193617682491885402006288223679104249716191028766514071624117179560689716858177006880256989329212443982942088464526736837660345667723181407738225878678603609679704518625867713580022225679997607581914500016816020905545897108499509562091881680071900117170223846621573205714874299905825633544810167856113326968393596066657084828342203952544191652400562649316094819862538765894334957807757314065426049739587791643621498657846843188507494520890834877566083737452944040301363392311413599728551971547820200958119429462327799831882490051251722483041860623960530964800167384068629840045726965976916005517301938600515926006045899228510127277637574906868088758067830694735243568361659259519914729255389875882291623422712089348846136305574897540970142489845664014865466090223372877660958003704532392511564164516472896898775803320789895743225516016445863142052449607954996785870197239508384000473977222015035730410007957786120687724600274157994461255457378125964093421280758190076276186815340251287940688883748315730750113070991913631504699634518010115092545094091277606410844409756207595700121800746628259435540362414549495757610843863440187555340430641109953315432429047928490295322753125984530132945306532126333446743705748835877700530693483800499967658554650854252697725413927328453798766796802359433713721402880714506385003753495706286751988396823425891260697285348680762562811882225791117584321742805960986264105517071157004020459519101277911551960393228155417210399035873047447020224246302773979550328333229155770543556441571899213887476497073818021204400562179892492137682459497334034849971923648685326261108733198249564381127111281182076511894752146692760528329007515999297880717497367874312918839571803873199834187917058836017617048756387191022833293210591332978032478303516029251429046991478650657099890907518018460675042913886397062245307525764423099625427981314906882682555878860201055889452624912198794573623109899751174507116059906351967015391353959127412830364845372278707383420219212827778812213198375808947378018755173279712944001191012554533960191145149405658214044877601372485015427130277627386117423894328522832923321386633303026795799355080582936873876729547082736056062230754887332712111053767256864956512250489817593285576636814171380943694268680814124010027164354862163381677555377178542323871836567674959866869556716321509209855496397640186249110889877525408101733380269997719857553889322960192938375094442281918944212873955864440186963640544255925290345505232207493395915102012775323041281796936100116163935274637541989157912153118710113514643207179798462147287291702253632068658437680086153461985549478165962182185725924131957346506752417452621461128472938867260774748197847058457670968836224592206181182138091543973923073725061519981155513330359897695702553461361836397818740884072333688013983128230133334866965075079062983684836634174703737670477693999557863007374487632539191843971707718535739028371872783542088084315038699438000611297087891600347754000623395770212147882098463021740018008207699123546915484148849990594541782237030936032390652034465223957713901053409390418408655740145625803794201521558062946849125576447160249028966075969403888435607011653681745259332024432336067027329706021776008205040047906899122494593544196819183778787568927430478641707307603023651056980889715624427277066657009872890223821999271835783289307980298754486505088608245714413601935573529051717330836296746670426900177821788774833165011929048875985170116917374308338878328892839839398189703769166856034973095578023645520352400229259126757032502653714506891521488021038848561660910208990307644535274221978060664409507935396633571810569724265201946238733840323026769650281227924603839886402334790374083037941447302874776963728642546308013928052599638504881986949123425023245286671025349285290495300162055298517526895923741701173277985805561864749018061889176370427366391820666950458933136244859089490033712354714132261683630568321048575616639395666264475534075124542648773029593393444164432368523456664153325897225513098391126090649503663569935316368168227591611056061873626876380776857228928144281578894515271635664071948213021506019276872964495585000084981085763254678641845789228494528854263404042158932370233892221381605603409266569977663852986113109210177387577376164632768788954474662341062037688396501376854315911961254855490928520784700813141230983083099771616581203307989269074591252548383596811043105003666946123672970902441786281541948658388577822008568375206432842741551531284543083821298326222125865056314213482717521663120683339136732351707045398847042172566559317384626420181015997918056076196786560461705215727236831169396688045730298327372710218576571746436066117675202175482055071711915214296560365707231997291605173855027046639675806819039840253166269669119046691109939775291367743862831045260125413438980300836613256026838452581015630737509913880643396020428713737179859557016032608774411720209330251223065209283762503173623217891166963096135897238256190181736439947332267378343415651708756996190558041813964122014207584064174070370601185704466361241287594903413927693142830162272718759460524261057444400854774664753234248751068833764376257018096131573267220864535202468263005313515546658529335722508094371437302121631768928777859746381698221990805220476948912570308380784478019161764455155417393700737394326078509112475560079752870588838788967309654888329131167305539578278440843081821499923446571426716292517525481506614857210877137852620344818267902072153772228289620221233773857440804390255607037559344029508565135783557864174924894150959351442135692007321348930832406786617959200718624025650977719271682102700210536305702481748086790620474868092181959918397344713406679669212210080226567834395331775277758756669263550910265817890055981847988907786624718581177739252228825946980249070061402861113842624341402104117986499149233925544621089759131229315284407585712830316285726159908509012230491530970879046095917519890781142529601953669074376228170396311913139151200653561001285339402683752397791822791001301818832295866377572605865266954205935645132998645083042994368678595607865934324132540314270235831636504050831146465095159213214505642767870929947929324418758913470270094973142208489286057026489912306905487326810174916991647564216901212101976219335876660403671154736060750770137341022323817227773194516679177208763584899105084000569249410651672564105206664318105525579200451784036059475521422128438387834691042222804600093164650589590427664335048802029207988003960984343669595347307630955960718908347477511629785929947539829072677888693110580768476515532937609717867615854614244977504637018074572237468817446538609875093048222680961630867201548355747593486719809256365342051342199849506029358721248610944855310630254345879288533675868317528211281840661080227104580145886463913301998185822669500897190293032645375661568284019575804481809088986642960391397701449778661691956868193464585033027069780755094978585560929913809426741641395203489980835147526858655836084718650824003597735299031059531741483456880625752282626919742115644960404112439115782238973608075817385199099610069881868722461914567251800084247935083182337037754981745234306402019603125388759962423266254114689168777084555818844289831420351424866089667694060925664123364908000072017280664784348965339780924410443759779482169544768258107327109645955642538307660170237640836232783248143236035557737536092965208234342687762367799035507842916231954471380797148358236336289517008134411681182821415349278940280095424565198524738536649164456515689004714848934962597742735203288224325361152211172581132907410099295254267240886474156951147794794488752019398639856003899605466196062135128559337220952060099460958393016144450964982018502519217266746947702325318448684156310318597215828243880900718327319881850128515094275336822609413107074356206455837351393208238866111669497381401740242191928065068783749890744725280585241663235707862454697789510054979293223833185077043454903972861972900731401640931721181562477200563808478477718989633099663248719456007521029942791816481383941078117395173724310626316993510887808947989613636013888207090350752814104061870456809251082915251355517814379805348779859781830063214009217173852030125639725152544478686641684517690915834221307635722159344676596719285053451031313780341159690798671440452185476551133646506376170891548172890049688736479897028835057578092945906627934612102125207997397928458749522021960045413288201390747479311403458347970134102599553459571670100860303032884977414290183991045626739757099890819381672030213812862291087697687320074434697544218640218827910228772350194926228776201419563073062739348129351072533427223736539343122576779824469224629934849094965914861913338850245407019167640203243458244390560192301026898874003211394926367622131114125722401618615926526981091131634906026793545881252053899058142815755699684799875512365942582697702590670438390483081696915901952280735469221456644593799635542437360979266022522757016020630753234110260832284086087602805731516411750360721202987505811641859812407411109849421223770022212509484680566671840327869917262874562541654025160021085842930907392698106947402864161170816455126619652441242516845716025965627407769822101951476881135514166281967222552700744904123824430977030006976285875266189658376361303459484153266479010666848047753163993837792182610825710073348640949576400864337290180961702744619340624206373284979308678384116288679354393083921626721679504519139715481064013419878407167615053215805858153711701489086712835195581415019933303090822520024284991972880868970151352099762174904659924520178539750159717139010520711467969809783136061928054854355973426053191476885951385211657742839826437584079189664492234600501048588100329439298985958051144046889002259014768686992682234020822486652307397946971770123239317113250211598523893351623787385252969527810510610830265792537762065173903087718921867548836663198776085661647862330642510511811574760592409348035885387473873986283307647450136071745478387348184189148692329177716017739142305845934722827033442739019026612312449423502111939139870789069373755710290736907571760644248274922943625770360726243319915806285081725328218092426336037088505680379488123916268584288908427418120679412297819076528455499490689206803292121029449045647788697817275212553063236543793128798559830121337889369505756717481908235795092187107786737123265029415857905188831606635017904857678441084410604215361409143400363316964572093068662895561560628853650633506615528915259078497649542023304757765568913813872685396031766578360866271875853143374178987839497677165446026000033002533201940637463947607847629640406072755888207178483261213941100570153744918473859576955485702092814478414519747623184659206372944733944523340414953583053294785474320392291851229520896043355912073800992622193952891544676299860622296569111284347168267418637840061451365297293499739114766660484129007541099988506548268612085259856085506784033412943361749728726351952815526971202707550891025950070818950105805752516031788237658608235638203529995623399283947045186834455172477954889195772298991281438848461357450345290534295051510875404828444503701904839412002555355737805943037699007063306181264638883169482779699868865151200987242893381870933098211746543995652607345256236497141116678446658562447721424119947038930937437857595490215927480519191606464420695685209383098788265561250500240632283145565598975102290025891666662315698756873583299589921033741892704584034029794595465121014605337197903581281369861371767853836275848149922624648704312755675433318988595350147626826781876176836660779542394505061373511730862068235071433330961018187114731746932203903616538980536654805800969729121847748982411417376943840177810726245478763148508049703096073722456934906826665413245926070641434293458417813997008873783421134585170841005647290574262942558372670446151836268858474262205795541276670986821549983883086318721976648617148891926724275746993596954740231592021722620928466299825139667469334642636378160236961936549813173732761718742493616592157468561645696655898147965798844050463332035886611319402542232844028908228505820752141652589906961776614331886449224384991300270789347323991561172511392862964287777140779998403625038795614416211565026107863750951300217143654859819122697070045740130069017749692146067613858232245395603013427508486488688821837130139123919414264484154639440580538347274596406252561607911959866638724803045766229954924174823069195230876758115405197193336215260340837263278608946124233864855184275141650486812186971877217025503444309413196977660436011922338730301005928890999849780872619382984658516266206189680435181532337739342567332812220052905249837460360191180901192965012088301264420121247254109217908171207639189867373517967769469268195966536010463539617814964665158976928539522215692307401251188178778028329870791229075094148071918582500794078257803570349865642698816552572863224113794370036599018729671484895356248838985064970225667985890229214408837889294006818623584760909515437796922137539605648308794045134784281796690795493940176850838467781132431738393563551516870661691606933631704246649470026345649087508820924686436606624684325325441720902768916837166219498582161565714811137642132502233637359642183675368218009425599466582158203475421510361548147744660068698415937974426232004613178837025780622357135222148359057886846145913776341016021636783150306751418695416454159539727670004424476784948762305548328504014958362641712463530201657093625458377635862265045861849383333098322877791055731836493952387819091712319251087591417045258680426665568299985018394774880230558574309906570794886538622796386537457382308659485498926490353959333593911009640199103268873163807753247393376166111429410467523583679508473771852350576510954551226559183628309290187034246116406536667559778438021622983269316186340003272778808169934690401501548579171005304180797908119237926451993798978917611913278832605789202118716020740251747341755725379245077983305099250884040605578105601024824104258680354811763054269958740211889401567431419742806254967501604655289779039877326116477536358913897308720197740922500518612340341073722725330708604345611468886391288231659652485013098392924582904878570554561003154704854298918222651392780553198562958824043523409388499279890676737796923869153920215122155821080711238949367599126417864156092358957191215195887912738502338812861525027915404443219228861839614300250842448733256846903348340792521259179048705837192358286430106044597725962379456906581207154967573834229153601604066409857623415761949379403433020004277173283590202210270677578783957853003622759833921739457707719939090409098893101766204490365357737364801551203764725139679142349635073750745930777418780546089862416928114131603413074026798172410030667164041183839085549672544069240390547147655645600048803269247147287458683665673332471143485963744004134444912992994037558366806221462239947520357012552607970623637449268375280886590218046792340624715017399540868162336503443278086864136423877678989823205678144700852174741605253396755015623994952663590094067651317809175461316302354985801137453917853165101709536739544907271215102964056133372224931624749345941200697331549744199117530180289227992510755001994152792930184834203390442836571729009670671093475943574963463465126811397817861967642426872553981116402750046465105915367961618389167800345333670556093510945853925942958038499158921639762611397037008746724937512491725310284731228941684062533825418126039483984051738200264548338187888300309773197950995777395813032488901835049639026082022517683235486357888514461416025513478361706785293124033476223424089192547415263655540952235810257505226589414498330161323222880640995445108018387674563931914985970228782136215585155652118631608324872730823982045324417411009759680701727097388403674602371327221391814834933489867688693781139100181672769250588140861242873843986260414499609062216947175398892451110540700430594893488121075512711919681075183010608975803976108301609765286531688622983491792828919258591420984533939655582903787114925772490458045563005904379233878010204227663528518559749178868578237714393273664792206091166374982770572908426528282689181562647737822045206803511912309360930976200540216233314677248706885601862964249530106845896947972866570937669501967106712245393634026494799349265904815681951892697170464889032661934359701119593660925584047188029438829842712014426170004382452364774461461693961423586230725563914920956498422779538264894904775824343555529631372174513851890413741422824417108954892070285079188205844601498245895852174242589833420442400451557758917649931713826364951803886084372391720961484864428463481778276995948191663477786266420542357637690026093456374690277853389736689517527650234888092328732286911642316307249772853154836732934942108089490819524841492593939121804219390916118898751534980347240651880266283348413696197892323256809381582065033902275488358348431407770834466443503883177619451857750683313569339378048701852032833912570740611844461805899252761251011770969460342674708384388684453762238268178525425635571093978221079305521197734418876149751163464231202158754900713209094042426529256786658477335791614700399864164264145442545732910980879372795037893583528695270736965181962218094342570699989145917421960027883108843495132915806882372712754373208016520549221864184476122878401621048512376965138301750587286663644577877812177365453088591511393344454078121675300241890775859544129766925015353152150985772309922589023828291574185011664902985867862821900921486805308629807120758134334919472865000678949908735884144725504020521716645844982183514327868386084723091337445280594479643100655579535234955341063997717295319218553414507281265078238840050922516880086617376716781511293730349172940475166912043805579949133642013822810717849392883714624272564933475949159956710484102012971072143409903759030655102837211192724925658388470112469663675760722969319341652895477098873291178562157758402074896447358290536910224769679900365584629023998398526650947651091220502191459225672323381585164628631803306653544667039973455770779502369857384271697203318061216742004876992018557021499338413209485972102558694407252156756255287586338847518634720947851102340940511938895126627981200150514702557465608394867129178784520827762239112138721102474237853555681880273310026329882821124383737004716124929116847611378818531649856963760558436811386773329637695164390361094179063795067508737966804362147635158825351793462384994512965348391839558796311255126113746279861596275254451737557808716443079025824597018306895540107076067692687925017681010430481758724538262822497546201075590993280302788783936170393854465397605435625955737112632589297477904724087779869351998215161941448589801686678163022038281173288885397904846410816663514884199932073776368858899555257980094737816934116663873652118799148951971496041875285712931405238400460399811637713720226468827704138553201982405630196129174312796690485609852256203391834111581346400416160911874331110743406231328807008244948847535813277303638170696949815875790136261570173303477160577035060047249235083539672654396200065842177832509788575982910397061105958756466339154648013305131755401389088738241210491192883557343914423157025235889989298529792461869130381715693841614402451637748838060767529927280687105008239783772131390208126723017982052242433366430688764222975493679423323481362959163112535919991068495451572115366691948589609054214166555544009990264506399529262383187556594689895065364728992310312710397041100807662860695865599397301448918087420140347688455932615176410385493950196915104966041290348048295429906549220249295733305084799707100554229831354123939122331309725223133423537701116433617910423735515294619995027154764211961055452199907722704524495112613835171347164079003061672121795702759979326957020074848349510672273936397602190913747500412002760237963440625818885837838221549075572987734342144949619670850509642645917121580183747247805491249372797754152432352292782791054982089212965005846139153409751528269613514544946766399265228610318845652172593083120022097117916614764896636341960881592741992674129027814310572042645388644470414924125509525083774306440308110771351676519568871623674014197414982550606879573904799901446299245328251285341642545819287405816536193902002254733386937141210899087386892964362760432007269167291256877314983337730564383533422604165124701418484774639090330469199019798248392286357647130704287055923319570773259735319388283651618056425586752293280189310162345828340990704544161922019031954693678995531947241666726456021213475166830694152343792947475497857094547358856258852203191195575092718443629683648671860962495514958283447054816873026182547952739170640526761699527777040494860233903921183132976196954428378598739694197710522504699579743048442864531345183866523322056544866571984945323956145624831828830083333646560988746582294075040107853558132139508625021976652171105608038024056815938855519185030289046248687234481586218022250412442135924678908169872217036217844431500996137164946416622105774032700463656794179477613545896163327018906260584560140588076743172802654889282280814531707370536754110181957908798149123857243278778188266680435005328334722976547152143807676771573175484183712181018483437342765302715636457700780308565067239284111308578697176418610272052382148833364182627291306140836017641832819321291397734414897188060173986959466203433078112320344257843785759076891854216936915669453219683268099706112996896463022220177475736565503539609228394501726323188620321000728148281967932258840249764646658080172381681715926792076591952709419320498127631892489329814773699075638607069864120564406215322121478449716535107478629586135445758660677498246890962232180758755636530905471885569365679426639855999959764398598928041792711360831174535424184494203508258834094127761290257808172600107809410226739985119043907949704033738404583138595406223701808394977973098003801810338637363318458473818734817162912951950349131161316680881348915289762115799200251539173244193145641449574905663728443890684072096580338521148786222014358211861903542196049992004641161107674166306550124197049120703595567124350269628230621106349518366235569812817994020218156615943862046532919450259722172564742275261542429685818943234193764876290721324733097474111837368352837392530851545758886706337092682359408874217635961100699589062681629691870245834688411450517285291179242848142565508931909252534486345325575639010735007331918863923581026519973789492536671107202192432411334783225837436884105773805445008123343892841065319099501380168623043896753739658262050710218614718434399537228736126644447855795522900957255405799916056078971995506699790336418138628963307045020929489309104201991114644684338741041167761550867401007780330366861885034013948476744256332567646255450498872854644488988483789075808953225755768836715012012167943431865039439095743001630475324104233270513747525798165112151254134098000109297775443858035365432430422878428272241272231942993698490508806823274822668039675665390301985915311941124209881947216830689369691062807097246531244308191713083171147392057460875933647995637261764323990433754199246421549928328805904960161779891314417718391505719425055884148308130357985065706311603868366332786931021392621645585245710629118671030291444810284935989063178145089203966704733518362763992133619408711575931128965823129561627529320613033494618739988616736527464297893730686174766883911981846182903848250730074773659907570312108568906211298433732751322722981421013447450231167195509917589304384812773161770534027618066818504189407056206071665145249928808387852503866450355730376645069201734928510665863595001238122477532646817489049553904017920745729622201037207967157787154965611650172525093690488751474866815176426318913045713023467948896892628626715246257795938488017670919926039711260974161137936780655427015072891554509430511925827793336858605004614961716195103975156742165504199683305139905075046251229340515488363331725476278421216261955268242906054153996991278996576195122079935560322839457571132776150807267640861310869937126906245797892288003492168726171632162515814366707890021365860016278055733371653282301593759460485024652277862120378262019101622495500077563889751585149480389479483895371015683384715594199417449827967752915562791239837973490078818789592788845675895339093244511096632099296190759145349700982925152763341347789242510390926747881403483096399099223209784083771555014162574658359565229617720720378478777719266336811872056969711389422650588771220317771919489493381598080455219414912916601603846846612159896439853653503917134322024663602447971766734144780673729519187916957686994565705847098859742836303444688824977165030724080475676809115905022533549943053229986413797835545194419173093977948852958416623285738896025421640856700017376907580619839121155221556414368061263348066766466565458176048646484465869080171747910495285279026941922185273891697432353775445363150856235814652993765224826119922177668519218878636275644913609535394778059425626520174116223221692303061832728543251134047261225866423381703030976219831703543853696992368525813477508593703254640530368154392450940841714028260653820460437918376454176828203155779704323541238436279174097900664726653439808530823797783971080562064768143107282588646796979283337653399973326288272431154602559027211613725125701386369685257761033471790065035150963806718101391926546133833182333771011934807408364298613979896743848519429311059180461074392728607015179379479471756012467562934874529668620886418838374280721819761232501528879539997526696414254092920039637577910340341163361762542881572143485900939874523456037989759809840497452730004198621346348688364951673910427706203825663843829773062152413833986932924599469627537170450368884994444763500346188155940758620819821407227148479654970785698649892746514235443110705695168255467845728451407463493430135975765173221019319179667499623021485171751889968450949270288864343324813147227065306792088898738937661592764462176423861708411185436101442820605829012372187427080966536491092270112730376957731829644833059861071967730256784031040204608101591312580976069789283002270813351506899720903860684732893369265618985528087148001312093839085071057809522193736561925493819560987874098043164085856139773236301760691401679851204902002312778798739358848874636931500870216005419132750696024791221881880390862602200116033937770345191662981407406495988486985369979722075433886591213103598013163892533201990711907039937670871485309479787937443404671807545341663865823441112216347407366013992573345426895066645944513663891518299153941560732989095213574503160728062532243869899801970299926796557582318530649874793179427371945560095923070922876834347429529712177167179649041165094760011985770314586510785933678541130313852242811306932989977607321009674713091852982753442808146028891081473338095347007859276878217616058730729010598860805003524913143394652136189436605596196000679593970713962779785276258146377998041250235328130688464452746039393869104619923266575113752496680909570401544464665046941936374443392078135005594677296560083499250411219224568689553243877138925690453929331561098781045066421455757103077423503041410986478200009600792705962906227110446523930154684885575352894416439643749069272925375409140859229624153708944357712355004353101693054022699136256335958274205383786468340322012709210491673278879984485596202328790890296750337117360057543435375097230054082643481805437416666457702199758173948548764511742742223741614772557185082932903488384709945186513923229700959617034965973619385037795979457407432962544476596318420680045653403189024107728738653242350313128397643936483144536554150145911330445627248303245221386685336576963228965148946473828924799884183076817642546588173655854301541758170677748491326869486602248121638241193401795050452288948775184356550055446298741616360172762776722614027494501529190336898393615823106048163646785062876078648563873924298966905110300434042126204213297046435836395324428889814492663907845527210658209464916271633728270399795587243270728087121771055948372805443923835912131996246428005379868741333273381296867176523269991431697499954996009644762000407300424921848363178050199460201646376979414627997850913985245137193392806771625249883571535806203600214963455224641243595554851027032004262423578542589318404139658448985388487460584653759597307274854217000836816364252303223428329282318045757837743185868920122224882129955689484533181811161392136442669391453452303166913629662935480329119511283410799621048769582951865353060513973427503047254877781552954045598760008320617234357860751392810246350215583312648302858653749666006038417828302218729744751134950433559804811025557916277447735664274182482104635423810022372893520406798853999218164804736610330629304960750744864968485884703426898585026275257664523986713053951651626400243824305193517856022025710067084994080036053999959761258221106165987621590259541775080418631255129625258087585301364504673956325997595330971279913052165355870924212480932450291095761519313312247407931820024101132242352077541654245371170319700179863651601459134038057203720097058732757824205836217724957424450006463047171902849339905499625082050846409265121464461865121178900501998147004508149077239819904830194538202784282212509177989105715077749781549635222353102460869156616832680157194029326249966925488933863608481971926740124128541459946024608283496802420793703210453088273289864846980542005357433715105448228950422557591148366194517894691346850683652835363719338479795206938976051639545427360337570412005768810510341808361632625938930654045089501512271293376748299596290013581381841230503605111349519943589629286925096265510389801144555619377558631609106483890598799336306929881487596831810118323668635079180049203806199593805881313591496400632038620449120832245714620171968889786682058066108349171791093152178822876860789182038032919794917361749582844592159400776433462580271640720408774442282628451761076580928031382517077799610869215031487740674157200631318932138329317843577478151143225998147302502801010621859373479405500043374150794450627686589068885191013726423929466156302596532569475659512146147326600019090061659850757276026031259357024043224042744876015506540155156983875463464258311144755961910934925765722738911446125901725213199084660558264501804011496407333527396122424811887996603523788690908376427738773508325332118605203730662297067543037412454362633922257639993798820913875442342208722539360613170956452309365303859524580477322746323828836572150548039885110848918371487507481656264464885456612005436937464865107559410718520733176528694932895358932023186196543845154559670813567075828563527336973242915732400005503592507605386499678781737951493129661799088517308290619774341341957440514298658434456966382224937363499636637496402693370894501579856402746046176002971140831488307504147855189840367273501834509671848340411740892695473468639287854160370353919012174216169690556022379481383274661305774727549805010822259420553714812240054954330687516109682954262207357783097583780987687605479502588098725045976285167947691089499645053547754762318431197591232449008653278432799789914330807451925105401239458673742725812398479369337643081754411601465900875251117869895497977898887231517436461318659475557797876582592046667593827868219016745944472032922078376237509750295112158183827757363326735948100927240542412922283827710874007200197965179526893061280414768936402561019055841807151395658998526027864648215149877222664713958358219759476261340149811341216099267137593328359068117770989196455964512498757800857302141074794800142698797760004506752574539690806443485505824186893980104338251257428686023177882111283092496657309531087248286420557113857586825693327680221970352133213741614353545741248381031321906247833833422030472192369451046379636564165224627793046794620731391524941824732862352706054058386897240549719666196421305604938033149757945591694622110037623233233783299921356769386850717470702064218803228389336168337832266496424829399399225960446484196063482665498155555141769306155168130059182291190960082853858173004030137095029485221602079201455108165343038083250621392078757184122688265376226515792881791592871009010146703629811079143576945219535880335845329660652587851085911764304069556775981073386277911670830824655245927399827506170612057366717681862813764644708229655225235659495418854783026641311619051143362904439428777782408517408452697443596080951782338399289874735742484524693221439601877362552779266053408016895648914052467882834184704506749694230732113940118015075827521718082185212930686175689037076241138551141517379240090803044839234703041065183885919139791370197903886614166400618660159266122577107032490583695921290047663038367122251783066793609133078014790651442558765863055079976228047960883791391716623848876225615519619788025151776759329435722123308496185843578089441966816367842325991626254674379712094161639190827983225280059367042353128350642568815134462705208179879941175122531432107369420908781723068833612260109392966898386272522586373909957853648304382887401916197275967925389055883375379689482244610981941034250033238810330541148127924993402468472550416817483862561976838473579356262442300779839329230955449003075311621210168961434162386810705535932791823160585409368024007944144591856084334814572638922856658600799295282291244978390308670526831551540459589786956396125734420559741315827472943605142670784566808802967810169062011102484969740040174472133944349432503098273566862166973797811228756223350944660494154267048083925403780662944124530326403432380914125634728476409044586258615780155826245904521554281538875463445665516669879382878168288361830286571012930846649579643059729776965221152481499731516803677533801201436103428098103604219352505483875272621542201135799444883035900084918941448145782580022679758246039508858526000536470135649141039974005316666913090934726836017301631150942019782664897453935350203053369255554158981085123872919121283828786980738625243657230452732695275843251602279749765704948262643105429122109271275406743884985731491954872475212024310053969270831767623434098944332590433388472510996042246209823321589002176423803785823238403830339117967081495299578581555533996664851875489785763809197826563916009387387903445508292617890964491482628028679216424618945316586655622036590231798604601075242597033181688523068568089888656371520172964181450564205094825978048443438394062957656422522593675463271069606718819519055641860132218679778842822596536142744003687854061560369291390705330488750943713338140999635581534903187333997989910087343444951725348995401776318204997097136971807534978504469569882799510255282631018700621516964986399197236208529835369331013300804157570829214122390611832776330968434987986117855593518697995490551792921907361991218249040444754786364405021463820178459010286075317618197258614956118934865678286371203865677262711324084135706273633958484736234784880953256944103028017902688013311017558166510420684647290354013639379144146005646350829522469245679843438226066343439947840931369485922279217338473102002517550908409256249045872724532136177707388544945940525435812096720950947997826393066163951345195481485430464535180805623502902850128853937449520816175052927814956248305537989442067650695961804209794335457589347790925483030067949806741179736839677881214169349386661684000068006038606303507323865104804452080613518783130014026228262658947928140957054128075353342920422819513789108941829087219854132312026640908151270829687557688701515504982601007577217295782284623772534424279896840684519108399155503804380014322915356274009831248708365484750442637919019867765045987227021922089944232380414687195810326280614062870214033792121279722980801173205510088024259175259297804976876190173819687187653632573593799588988617474104790137159245340521697756825727735892425724150532677030925894884409060003281967005612828956687142435170666804322755583720433056764673651347238214971811602637037817209778507571574521824702423251117798491118190904631050055338649066290404687445531583256926292837698054446124790597802342995508063006587340400398491520041021226045404891092566261080563869782511069115221655539462725782084633548933238600099156018446738445471899843036947381132677191409686641476574071452965395881457907469663572717214704700739344502952699408029521751096842286752178800768165769162622526922820671800265810288202814945164174365600980879114335158257056306603374989732162497906126448548224588867315111309643472436725195821089327009455500810227604976157795018645072512086995035052365052852267250305737187531037426081859321852747232663524484007041293939520074955801049614244974472175183414389030853085652702743565799442772749218306146900584306653360673983497574164098777168805724663120587095715398201934287033449538648391032400519461166214891814162260747848243341349404957400493669690299278732677762585114227996956243951389840490371289311856413360533115129452333165888981226635550227289821840432346229686447484329969748397029764337315072119837375419189856990474015881287575998229011720892884196461195529504361952228919861298684252017481534654025334752637298245461049366888571137930072308564704896436621510853557160528696060413299407076328334877215920021325298691613182231228691986254390330322831335668331470367699894122051664047593332860768960143148182654861243535343105224917049215968159584464725492688401081338282463829712809628149969540408360287511492963954252653914843937219706944174025310391857555434705942924725300072750248992737410253198089042664820044882978030101098705080826554934653850616625788180254831094930424470987888645339235339202682857365542150983485238017204442455716184976033402493205823462705199475031050371213301059601436180433026661771534610684364468177447012827578950857348496223514607590367457694253869141919666432337415037628491467922403280634440323387447484630420864727178795962358324460300895702028374328947785917908423580870907436582582630860272139553920877593531002037142446683078904016912447984036549006903305782230135478616735676202189562724660732422118004651048809627425553149603021037055095298349342609114103451160890872580352302846942631235336732444704706726404733331290703832634172170797333123806084762166507324155565401634556804834947765683292400968348011280774450265724196641564761723489412404618640180600315816529860110530567767427817657158133767101502007276469768934696893679191554685258692761654386385886817255198003111106315034399021304885062700580296553482502117118650082857499862872939949284117398609191196812203632339662176660482444604901500939139328225630417554091037441285748179511739139748187150923562037760617900901954048851580346270216626667574332234611917739750052445026412886705543077762254612502316225119163855869594921801880525153995853729277134854422106035169087823341921202506351346873520437494376797638774759867318226225755189888605468463574234298454890496459844701668184119292454023379362628620857339195077456214815711143768105950455318850495095453935997027158200027210240731208966715787697007728838841012509449109383822267281708028153789943762131553645393940585338531045417509014658584768534465407810644629517548328330414784890116146986964469201617166455700503524164385419932136730359556501719734876563781061747874976500608650989798360810389404616911604298777438477607630461288317749748916745499596991792513400243148842652036883197958012952355579314940994343334168891078105228076553362495179041887451126681089036169299121631822793164517896650754189374406469887285024850562705550763014182285331473600569641045370852483471759490691366101490944362945908214171225483985728657957665593659080128620270688028928789254536946279938601117297240498338277761101642100640261440063043322175796425479090919901934260928596521597517067305519858961529500680004959028276208860795134781675597336389214510255966358550908453543479146336722721566364166889862614202409771350929811101115008736322602007700071870673881220662607230775841541938467161908172780120544900355495878123062949025632523813743956293724098381155970532934997510144993781472250299107581348057953315319666345610993381741674806742361214440500289165623307284729808141035005057634072379775068589613790910263601966966352427683610844063270456293312460655237838263228265040283687151487869291797164884163778707633471259153653235994156905927406868854412980664230924457583401157765209989861377422955740488007445016261954599634704078720723827300696067622956241626124846923142599760672353876558197483772993790088917849418009984253599501697782243250953737329106345172314741715141224378372542638684683127756530492981201564563172341552201007915101102852374110510787624155467686008580380061675456378064210820464663763263502651876672055441191859873203904251092828122736105989236116807447139012535317371992496501973070733189472203558877284428686394424461777403155183087147697090286927981934337722153851881882183665001337089649602892415084166552017476926550427080336330235451115773951668133041848575022696951902860093321598043005254753495106988084466245271820949266665542306350009802458288219850396822640981756363931494135569836052464885621892312647668966650988171615146658331216764397250854014567777377877360865065832273720883567021575210867631857649957142564979764236672467763789811545522831111595784759498731234441725694800531489903552553587085628762525969719391404617186282034957433409926793467146176924423397490029038742162446343170126574177298355388964374765972543980090435447651950234097837691316825834756750610680405721612518721296187430048547351054577101486768561498140591986981567125753380642743286723564204602666316779961388462841361721310461434887868216217444945994919019710522556493252477993385270143599250107522220237662133414713142525800255728825933613359402008661984332068170736113862700800278476084478679097918983385129553701428642541719629805007596161361811290912705435982947751049189766601445994286890802794840567973379133175527008028620318331264703944082934959028407978895654777533114238508349119468469395964417665529974871577826596135970775064949992676846664261041837752485924164696597615595736235058130084337841857704040234144290599932925124283306826321520837912802320489850966809888865224572037406411395249305332289422628477535597871965005314978557095066642568136128258627225820141930548702181342924638103746002773278342457132985879220322563024187661137184094765314447558060910371183093991054386642457344407802819364354137649952359673088872458982090627977356504067305177327712273968881967575505651979331676909276009630007368711974244405419546265352473106431969533884130453297760485331495461003118478693422890463589152060062777849702282103982677592134235148143621753853828844489357513155323711588196308447763428410688947289986114489452181609466762588368816659254326284454150614223561135540780324991716617942536006535657972230782285587666028833776457470741834828838489125814284678408003928537575596991427203666111586571282857623493006104376283071288644138375858353948195384901075819355824148239208103809945239720185746589358670967082371000679506193428584411023209132177396061265262146072179145154912760057474112271998180794130235304280809334017503450638982264056192077907460440478138540354735959355864256372314859435237340988969911722270202943472655503405179422099829465246059924597793988857774012407469714201519075019792916367817324115413426341163898861997959235593840022886162108680463789582317117361007146039921974852218469312818518942439645510277809209254436107196306698712314828960181916016959699265036828286189133082532751693008851384291242409225944330294309503851022557064013059642420458721678623696984698061110634309677540592293536565519099242349557663332089994718427834474968627017641270327070730955519687806254307635619393322183133842601605080053799661689494966848982784940498539454915947774942591262985979504045712725531609506347722137396951188013036540835292659323221087289150722886965257577430218773556464481063913413885545660305772941826922018364017255449332591860483420153988453843095854086318782952248609426212164002780892547219552564376827365761637725300514635110265699351796715958881739254094157938318741286288616911005085870418453158949734453175454545620547424619104609416446339700514954788465659959797155033463953932406070711550004863127619326860813351710256516498611267757441596157570210868830581916437004138191835846915079017879647492174133861831691551635189344893183881132157371523200643438210822001617012185166645884265117202116374566592899014548214995039405583665372188198648958281358920975161042067151485304124570178838042519096041126834345300894299489591714131908149944649033052717750144786821553586655119218768135234644164861354077891713319068522064575071406305001785914864252282409091240491583691484369213384860144515159967925175950104457934460386962800425922825352146656611411867401082606125721199617720663670192767264655543047520173894154921056778140652948708975324514078675353723532318903112505534512669469583605009528823479858065695908216486872073194540964876616465979519859820280708101058680553240551167345100795862617313917174239410180027285807412073013067237292653335240701329267662505543425562278616420563879578638494119475831139408136565625676162846180588533897421980290389275653851215020229181348175442093313436395100081625388480231283593670663241239276558605207928992160895382262000382906585023169477132841282492079189119097754982245198893172748763286738795019127938275793461705142511919198911695005506510078873715037472093868234438825050661218781026935303763145870835400210557121130735699005745780749147868264511245347804146527715952435935812122720348333805553712256369690618823265448996076084416877754943376457881725977573958077032659750636053021071486587494057295903836600640778789930110757539134389630253964031994741624360779600570705415812558010865432793301660291754202549149052421501256374417307154619299494838858430687550105716727470400430863432746430086341052380471601147003451886079346690075586935439766698870589501881692896228913840239430679159795255511998313785729368631009705710128948518230603506627056372606503625947323473818854683649694884091798961306631497500066202335063065802095098812873334744411131205308449914184368175565211257284847405534185249624477952394536778985894328881615805421632898988213756524416036607364510055385455980673498338889037431268464064866327482736468388278920488701366482789923038540154825140562679416205554825431479134491890120927196582712535639313260167314191643637957686659032654128778992375724295166744182552975655732831621029301313145320615143493527728551080582200255098798416120371774327372060659920099279268388993554716456646130527194519222048496014044472538675917340571128697642168155071797515260894482888689001512142122954150154634378374559231003816744161002225532691694150993541344126538639375386003867931885758145063523685271003131751165500179884903022139606727804434017894521645625499013076925361932937673531246204483449613004517467031552525579795764390355639677362233244428255937545082510773097353061141474631127637972889043369433035775975050620570370927183322245942662343472154211366649166164386649640958059006573437800026920060113951840492284801044960677590343248896255073576301665664730918199716399981979702069487216901434056750769846472806409923080307123624046691995321945596410698195833534176331000089064775923209957653654866075639796879638618067521110486465738626684926088395678352414841018206971718150058271400939943920773374600700025564067866382267571595342582132641109860732943619232836293929131274459798901847926271412950519098695944909382132050939907011353127913616070601323611774092604586945950380257066514399878674661983878567210218341102508036227205143925835339381129634107908267996937851671636859433813912689046416305571448153926861591516763645332656987218937169120735176570877410556520111899216241511731085620242027514510741124192379837464190572819821971928720728507474919449509368083085363481490797048390997477897836428436756668952830599139187480541244844758404610135366587666733345234820615953696018949497657869134821902447554969386886908511414797801334548354674810966486369301409642773816639411339924122618940203688645930775492261098116343011918798910468469817723609123976571106965683117118493081143172889688901136240862143520151399255491453331783881275617579885894906021210777609757165950770442580069301376434271840666319436729085293077891074238349235857826849199819274723901210652229344735454456861362390603825881047212296053883060338413031348690410265368179027152459125882419454334728745931521547071930756191284987260355999951356801102473127776732369133133440107882356708081173169368210946431986263963929358556198443141633377699380376018319603992848843441116848256862390400590375036081087256292760212530786029946322097916202510630900043095329464878856162476208677846851950784456178386968187330261477892299478488160558673690569527849820242344887177417970113282844348803475680471896358749440798048449840376049849555689475082759416477037120571015440207178089193931200627347913263468800562010898793044470354769080881907533763503207137596729699793849223581366962991994965535773343713335045753490384460213441413498741877301062608388473113034708985863623457944753678535972379347023313661619532325733524547573473531271802101861604493746126189202860059888239365732351283151081938292831395150372262723371707628164019376593951280105424326206980320197376406983329704930022101254583956570936516251742281820778602157991931746310309043712852191243123578251355867512357231090043931966383868424161827642757728278411980487914507150124261148609554447083972897771780382899992856327634638113395379013602254699195687117679790341037957913758457836553494411850436641706111404217007648000868359028368945825676782492557511930698473330324443141933908131540566765653919717094827334463356060334610468408844816340145972437762119393461928942114640709028261304244133356716496508886601186207420904335889738737258016556326598443222853297552384533690503265647314044928237413217085128372675184202950292179180644455883657303129337543191059074876307894301675496470002135304664606632731569529494838646512558475494166149082000383548782927840246973197818804835208052423668587178643701321921743306289700335474414187840034472178927155648696204794305522021750992026427782152168999641147568081237134149449714719718352112389429203404193375279147264451598883363771402303171808670060997395563378547295440537024753593377374987152503516415861449054977979367431426842681598536220190228094640124826193804437870329689386745747735697035843062189323858281473593145502410386440348289285737055203980276423950905568357968708732244706099279823253685619722159378819719408381566240925102858120943944434326005711386251458100352548931165617790334626393722039094539980300107227202678339881128578233793397629400162078984909928463163552658421822186830107454369204240608307879335106900421719172778150900780969892931523906941875977584269024039179758945737232079605000913452021531684442855100241176190126529468214846157466778139268501410099483175362382198699065692323146328238959823423052754649135153055607110940061182609511909191838489383361263620026712252615767235758447888386034481529726138402827767416880908417094904093838655445986699132158929880324149259583808139192328191935553997217067858028913047882664243992655977947535639004364734677339434711988862135300623319179751354134410599409779001809037644046667368848000028032575799947784118814530825794116941625483761056995821316979669965274103640927938755821010940269125957466551180227339259328976158499910479193273896400116925962199193301824043569123804464678179235075807510114073590869085348764137466531849958805289444577429336822102616329839975041241147467844463962925514860773292251740766147634920340927925891535430565383893624670021606480232746070753323154574255211364985397099917730278631689348743336317738102433801434590441728139876176742777467908091264832623933745566291474635363917946770435329792028281481989277457010886772117719939099588638410291001519892387420940434285500653105860233599509105980360035096147132659460512530645618577873518747826602884657789186196965293757550077953725394215636923534173997973364414933185937747633352125569739645601262824255459958843783786881644233354208141951025887440047495723402237742657259227252965845677458751599068208247751772985910296764611945194803660787767393467262838862390022383369585827570503238285828845866237509561526962083264653998003615393173461862510053920945661591393439238778199064356977421577729074544423639326323290554638101217592951079509323899780734870246450218989946262960652184661334268147860793068455892635460805994838400155189817768782274217050679938592279061340096673463583050865248557515881497653909114836443893967488221748498324787426040746232012748023321462237547182806012783194697424792595425402869743575898228067549139661057694917216773964088494185048731936068361350856603838282914331194164241133507231438202596641061869666935144567355233045415175004590932124936341252651533797257189447173633602638477995311529093101720018303215071305760546992995263863487212100306405350886900298085248201991102395436570643985784843716970981835049812370132978274317446331613247290211712916469426480057873178883512392618381259427186452090370405276519189634563549615245178251868607208140379720729639704163496875991080134967203243859131070498077564196769169439932718169976506360264849857281082749290683669794409513617451175359147878474867968719637698856019571987573720278090312057696651159427933032167826704086406292298121215483060129796770148036767022489085583326530603885248381473673201262105537301858999446627076033857529798844883460983104606577593580384932980592423282367763355202955986843056534676783023930058195958334271070506646274615239334439260365685038136726813007624846491352062534462034586591045278861570727724975256443262784873947338502860277216766680914544190396304417275743484083096720875751211347270806645741759571419542252036140811025930872554897639776201651068020729371683885252929633145757479534293248567057053711123208981401218377828923149153361044965085439735952603574149666952799402653430477523351470976582328112431746525838414621867777268230813351514274195676949920942917202326403447715083021065574577680181106870991511792110757763978416245851434730942407955234339269001713361650792625254651947840638927081949462503261021139978912915022177825585879494796955667323904366109051470358309613164246978440793700988105633481026570612345247035778207257601253711642733547380589040042635019245089973757340671964132234308222200090001352958038348556947795624870838564236844643975120228561321519974167995845822673485085270101496587981466647111935892063137831647584508361854316566242964350404106830536624583274586364741927531690222643613012338465899987587041535185200218563463406087067087835224630712472713097581170855302787350184896188365763537333243548340557934145883677394897220865836471945428867130099827277667119723676484914529839165085841771733359998403864769446432848315255288039109720027784023816938718216859072861710749806650956494110720389675028740607329265824794828906857249470982365806693705702787873397860237297069611701709158936082766691969944069590155533843980965829001425773318774342694990684252463198995025858263438024680343974683018599010996751902678877675034213589452160774928308001579035040109127295644702545583474898031304610740831009763728890877688270921365277178712938851339459124157895113792842835343476532944165181935069263825627863166585356802658661771812569531019744411716259640439977601488091735632413263026719278735088433784748723705076754571896331664637913289387517940002613622401787021962996185926212710175273805957108315786714430047321102639366509385345118515331095423391821112703803514165316689906541364703934203232877000401614192788075222438143083624416689482627750775786580236130359409359755896908160940481292287027922307818741508910238388367248552327326447567330735308420838185220404139675581058435963762859142733191283499396940073413368614776107158751445116027019038307320345080468571888596153087371470397641161600637876512238744544962767936533625592550212639074073148497404230745184451999395725569612493075704759161496614840980434986759896776251702673735298421538346095363800952051561437082325642593273038980994780712844363888884406775550109084538403954441257172204794472350597600222237598407190399658552846898973787112705772777610517001390212074101578677007609029210459850054247983394945884823536231135691939778535783868586249923805436246346914994769692876306606101545624788374658770817065833059032460084884835353633858111270661367542983775297421428486034770075394876550206439870938645476980309365631999994843076618547571165315254065093309224718619621780933148835603358453192203249098063362806385203935352992855727343814836442443189694130627718732790208541677990824942482051094441498127074561752070293469733545304231916147750505811927380527495203560918074632243010872069587938856286613636651048097230359641702224580204975305313975051719192727008604314790591094361259761408967877980503311821400846883797196536650888819015309308764315245890468520274491169695331949187444157445360450883068227183064528789375644339836907314712784054425839707446402537505726518842005013905665733128732084716245599956507729415066583655374404431512851868237782500226892526345362754595026721748591861343074407156775981474771476049542146813228559506809496165281517783065538992530199069028482311495662047097721564269509954615007032875330871723206745270323082817538369175972191817833562781644900561296510622059302267013609622553812527180582023337402232079330597562537344232918902129880496318711684202981367734365557292459329208514934472689253378320415969440163037544549863286110725042326380163405997880513065383370790726476333796780516838966801984804115597202907545129621252696588000698398390827148383290023501654679089016339080249362744829917563852033435308900245017118448902423281262591569098970249033001649539783967339954917936963684539676687294894477391650797656781196937582332589749149648014584312995113732669201754120115850108235857792868317585821304503558334868243936947933592178804797284431769348935812130213896706995577668498066890013320927166316890594634176223298929353472164287926276941862357787744418600755418437298648385126895767498951167307286734454356404712194439519828695769269352235443285505189204379416220701811553109457554984150984795473542752714431298002568283585661931778741902714514287822414628552883712702625753678344000556889108592046210630563623426980279332338358725477365121398378793597347487710004965267635814505894574280492932390002510408911945518204911907391617843739128700931213150278827954451746118495676006355802143543678050463923894773737099350664855515540570674946745957269023314937314137746055066591968055055173437322133800487591152112529609424072567309085939760400024523329588289428473319077790440395263855835375731744398019068072122349565934227150547547120612836260285597722125718940651161258441732254059144932777765973442935516295464711064275821798941396075905259258050985675913345501001363091184253887091889675512121718833130068996869026840717661774637640124375764764448569764677261641454775976654170648787015382356587211921666236225945587050529565225329558743864005115683050753487008578980426073304493401948250898616319519341913702747379620398639821449412889468206238453304815781573293110356586757983832426228137983222785650952285123060649469820020067734221227861774891757786656829254610812020655106803444145300935549466673076751598833890940473027040001813090751474967290784340480940110035348004022965482631966126125599902642417271326158112433005267926392961836875431193118457275627735252043057638018820612393812422695057968950778088462367739353770569247146132413140392641497335092497808516946055421758091912783054082452619810808287838707741154312481819210052679960244866382658500244944877728714293458329635618622334547835264417259476064255128186020772121322128625318626099855758062860246068431573583158872963409389962830899871403760402291444608693581660371874862041761965071346755139923257561732752235682980769268201530166359337749085234677394833899165641442389834199389231717787503909134292788889471022356587195471330660960093291132350681585792522338423423649261750334967316294956775314737420979412930871241955993438291743882020004816196106051778813542646194370499567896572977703461187657118655746972446197296772849089533137815841088887370482059800806906501217451979324799580541996171153639901869129517065465356821529311270385992708023101329165851477833950458217336705601717389230327264219843748056870068445238764057005786841319844428212866997148667865658851297761605322424985299284255293877545160899220501999612938691650821405645233092672939314194589864830874589407839903430658091717273488460851574971555657201599468070977170288715078760309481372950772265452062149513191163148511031684274832256239386206774153010914401628280380735329249578316546180894806607955953163335180713196077031630870902225296412191683988046736146662361258484947167603339290109982864980259481844901207067718745082382240298561002579148986138185657029496048981029419871806296080868211680393009370229476029858059034965772319994279491962628469406309006484967416083493706563148724346206507109863771134991711277823512448928364511586413649511034270650236077448721738976895177199011707824699316792667447616570549365187348039378063008458528789006210629064940642390682823887847647338611340940610801029956070968638196170867429302096117630694866901810209339106844739912664693078754319324757062059881879532233157298261387569826145589474147337339145217745173203626198118932947689730802490943248139567146988368315385053682854711083001020983457742218740550790729286942607419288872958703588805453809469332626375107149643320266934999310678514124212399040533101412900983296822059596031742426228492698014915354493589524069966801288519700129967722965156299748585030765525141028723208660776961376121547170746857261602081041230499394671549851924092669279274592255929438034196912356922096921541441693152657428613817325331907195899040399538770079188779857402850153721924346912412994135648525789169060710991209195214464090197603308264952784111152532564000563197330833021884631265751102977259537547229558356577529417481232098803803558736258792921349452718760926370458619215376568441201102766558735883688952493762062616280082362502629489841615776805396351172581578805104156711088692377829598951964750779133895063965026185535385439033739161548472153995526387051692075646342589759105206506273200546348506772731247554421416044808920963062847852370236804947468026771288908813840361110791772185023254802574096259368290522780104575230636545257756197934176613480533800393212387089013419862675857441725033074850395896782032479354767518105111897455120364077405903676983315754330235085871673814084230774896276965847808901891717633990815841510723973343087267826278704835881759021421379045686211448803679052563314262908574071713166481173214561169572150011223709326072046820502800523943754668968537489968388746414568349557043584038077832412479233473848954599970233215836587895444531105620185316610334214614965543236392718479742903204942715915904316065717386970611054791739009039702502988283038606381277004000316297286658055727687284832345624672447866720911876648445663782955953714333194635369991150998064527662793696291135148551254880956567614900216639674988458460120907367485559285492837335442289059642914819932828219940841225388282048681207488009884443398788972271537638563725398389594580811508769483877476259141632182850311877292652910546675412002681912670488712017363836076283642076396868607649720868674344075978985726511677759744982435642880114762189654507328778737769501797764126495855269687235583143942060530380963211282638810593710658912631520926954803106349153294796742028173660576768697132161639156855026808866150372656906779384466271181888994225142153144938397208482033145521757561479513798747933727368462016377554630019698867656682905438472385165051372904392988617291906889398465736465627324163527368568397849405416317599314223464772643603511071784303779915006338415100537398239011301366502021356857833661201798567641518500729254952209176521201911742537114549701734384063165805365937198631685429080019965102633524454207389009238646560165043403581720741927972732849333593161418361228649212620478629618147165453629482554687385032038562526208981023195796140657795870842984063157410500454431647230626406514799218989660244844310082646331110167168246209144544788161671210767712589117701014441969513044010912311096667142287884214622038116892688422577867201536182331643252552203196794241641339892290258559936264948388027199386772682958790083495348636725825495413827284806600632808141914377239366852973908367499293430320350993090087947732727575919450155536435556265553544439311986942812547210824260198402801423166275510191217320062298552532364254372477130748932482478269161589996305916462061760043002532570859050746354341019437504585827855811937873617850218514073828887213637639777103468322757418052877179179197406356598089392874280738164079826548135755390937396508241397341788217835520809347362924516641163806842569651417767975164152866559454784926455063441288597002253500720992824476096708483797378150931491365695291376615595493415072494078968479985814020550338216439039234225163509440516826047100227504151687713225430976361345887989708038440900618719025138179678067076512399326897210427493568637035102585177226742065195836173015481694764501966875855528379793517251646427103886501303177407920218503668361765411131536102423697334082911398271285457763860435072544844521872900332926841205887977716585274184254678533008379816917930144142210060860205358586003485685665884481982821703602036706397361284898747238767207898378462620401460000274608499387036039724503922446734959771862653114355583297691017463434948170945546564343386181908142802008169407873189809727490513536733914909989118945094501687059654425006012738320313210902777343493661033741622045761604055554775890180709009535197762771915820915457097039328472554180154766915674605466921891794674777771397765202608703696593748717269418031730423170819742222826891176297736781953065794122096833714023445076876269681673816745508056701975938508180725959132716975435729348684075669580703125017304187407709911981881718922938615616795375593716412064302754586601299101853106498765281593296269172017441809259208418921018910543360714854529832994495520039802358500183006794755561288159033106966965772719854098707485225490744622349967151420824652092470090900208361456216610893241810515604027275562599492298752292893994290102798404564387232825998005457165544975843980062179402884532621273256292005596577640212121448206589105806733473516404269586083515218059296188701367854612267744356703840705733030577226945729415074617802736004906574089740121788922400365100997032999932606987858076153171144983730491705885287535285523091030648753433075896382089215030069428412105857144862334119031594604338203900672683988702963135734169626108690172155166902945289634225567230097035647533567246786029833242989216721736604550776321851738336829922093898692769293248288562814110296088363253826274291153063070043062142548115964653868807691711996804052259111129340957723335494886183487738581721524567277318697384651253419740043548807787572805231978809894229858155016176728240783641610071558846676697483214543327916960601048233071535624463428752683953618801585003464167565105755569976813676631278297620670927370437265548110874189332764041109687981501091421383715022660193352746613787179086345856500354282574010922456228240056759924201517750369355948481474498445505595794022455432134082557016513420279466181213000366861244208110158226763159590275184445163557179602727498761929153724527222861039222891777726694288769578622592297236718353953859636304208423519769132983343192319076690911647206064817962641479486294405632164777774371056369047314136052677181100463845460654499757496423962875602427073690293111268548104099111116293124986732142959856466988794985963283351964093653562551937022870535242461285665973453246456620511187280808844813577798374744866216840531958605602062415518841767086676390179412018933259809929000694550360248820496534363564822656738346400633092958580783557121292253805211737075858865053561980773948613204213291250335747669609990797235920136350296156917965161404829146952859287881705253088594961543354523193463528667506066152310367476708134252395983851249211137479134767475539698539924719730372930562520497467973909266785639807500215893081142901080564633213910198400446988249193691585101822445967077171995203885184527301476013519834616229125454219125235741584696712465835710425931591951232856300802228356064783459180770637843903777149965013949604577732931390877677486887297553493068844570607883353840009458213021860631560460825643961310284265020392393259980957975681996331861261600989781873163654632384462252080300522692342127120365047481520563186196593834646685892797543170965988432678018409902305954548448107044288985236745483464357157618529015550023519544781918272568697187204931988063340817929353856424755722711224581478765766485634608875211446712016711829838737622222499710864302776737807338869653217183188593535133047963513483459642472715348801499410197588272456101671862297733560048509896202068837444279706298866672886677927531551220553426253629087030176965546678165499437211097774959810426476260368919140570495869364804888457120442978584886474455549545621284853453874746862482022096505731521561384587373430667985092180858389556614217910971471373394238169800586798236430727566989046271975232963060715539287094761567762300512626054948982719249755629362051519563281877792064551760369987813441668975573679717393259205942886350198574926914971654270495304084394037655554014685700355470750734954028019557837182634406341077540322396886689332668957205893264503702057366296281815470679972983466395935391458700998939560191166092927140158407330680979230305082842011820983999306238923570334849262751532538985822804727513755837791417757074397094978757439354549525102251835454754577411149501787795411807398868565601028974398811358259158539552332567076911882247215416594981872546811102932093987280043362350497219795591057108039061679213452008870902134236216866985610749579226142811112095831243218998605970323304079117680542326067978249241634376919401741867924116270409569026406580436216008190871591681817537508596347512563027681394250420655575929258217368112301125455473686073023805324910536851284607387809760467195456282383795470711738141197635497464079204230198809040361706050109767613623410437393115770512209236958952235763172628561858434330147149366454309696089671240325995148942092836951839489237299280696988027626769759980190014887449280552145749386533579195550426447062354895030919595975401782965547607995874217352357136078135573884841505816237702438358053888116413595906053805605467351095387879201051234997786687087999728384447046007435620332036127599807609380435178278748707465616194539167732769506284816903956098348608932725324571912358768043154841330331430749052983486180574098548922381479776703329515115700602650939449350541303780200665328183857871813069441497752004904429778026467130870786646628537663504456925977981949430750182518255403799430179871963694516634294727134921626207682418896095817331652422686538355050860678427519570742324119246042344367982776262469256980850111515279858392153731090274219641002028820845965812798480571483340060474694542880192423819963200157660673116591636760303777158765446664332888339158723918983565781939171599331806082084159500854278028054606788403802106136294608574944107113832508331766443094489808686882748266174183278741158538851351165950336862546520401053769411674222452832041216720338622116889094920652844278672111212004246810213839647265016726786844343920871498972793070581773381048258341633377874220481781758631979280431230655491462315909046909959446605925788051414679476070850925406813186526498059122518251377156784325811348452728560351689601871041858353688672320804355266942564909756241567053636719289714060357492396103318074333360614321408841934525538969553343836563269073779487913784987729767647542798351884747282766788823943069070355697319445185918934027553854610612113972265460203450236523157047321547203068065859321786994739781014115534210806663518289754023322307173825634221042224909721474453624215043267192395107048456641681335917174648841378210840221379677539152654220571040137729859369557935522362775003085808492966138106137374355552594509873344283294441265659218845308358558251239592848849269899600007129070365351602057203930073057812580246887414343711769483177319139593400322486063332733345175185568696380923170478233387040168126699877523093500377737321855248692941074593343971707481205219896942111923328262083502641361971413371373118985674279243358340052196723348500438186018043016125208239929803558237767796194335207455021579134411701373637444654276814223636126082735221212551964331055367932936430414810459867516762270387724782931236007644463952718733509067566197214523122449981331151015124160020613896399076475605259306080667225996274247348807221298542841016517001670336713463871705686615987666357972565835268673553927358412473521727362272025351860879911773853495888323213992018238592826157899038875285354980116006659283871104003103421839321151391898050540421163456116771816117104286284885147789468440013011146369847830984831163353989370603406142137301092762485756325791398118223080586243009440635027402670173038380497620854338402822962644046523813916481921167601447504831931258567192360705239384406470460178711210097360674419672778566070140640591711235443853086372458038984754127375213371556092041047162691068068693678488505865742823188192811817267340895898697919933110313634533579070445589728391130968794131205819465440819913659909717849856686844888148483545699824917776508887859977554164284948934850592469862242486649028933277941210169997859931223369724037428789241167059205822623413457466560313723765821952047791870613865899681012248298452610622162588295296786010292299994185314982845076813016614599648185374526270262084406703910941070059922607726921604539955092516740590771186085198303575312071164970709047859386517527678118128753117049503447884038490517932225999301731662017438119898897462656474441318044230893541261941059372486045453158459017283487829485193137588269096318413518039838312940511767697381869836666025993562927369086144555718315788407994826387306643186768945781017288870161867623116941383125464606266650312889259720788400371001313397853936109366871898497968715941738209773063166235676690502061982887732205937130335916328612781368961538079418821825211003076346652649025389683226011516198932355718656796378645744300381568497287527220759969751757717952599720059470059205553396673186883812709193865758356813130450719252175731840404020228789146579945487393069576277190709620305512936583854734021776290081472190169147121955263184619491191615346905559383841730173860361770103751719803125571886242215789310612170961184111291039798396045271899487754803376121366848078525545248925250398094354546441747972203650006663729953877609330785110981074971764352190939460873032692624266239214797311722984913961058978466456890055700393718616983829993018457522136219502525791466913663618663838691396984198077595438153769494552273512209443675012181756539291615924345204208523380134326475476261506417650422474651691473519021796308697354790560710843346211694408307260472925148390944922030456896950215742550950563129955144667221795702425298256393239082398123511543578088968661203266163588196051977237402721483770274417405193958726721013797175011740968238615219522488773351749749682683828229961164385361746859184734973553380630115680115387572572792714530628359941046727678938898124917445649204410235773054527202258638748211136612553819920469783287381100260812064364571691351888967073356710586698925471238309566382291937299737504872725860033295163611202857398676654432605863349731750654506791908363408479662071428100464774796770375683468698735548201912494414218221574142083895922284719484746563380473454904356332339762123313572719090556338807728109383521757972334729753636816730524514384502219752085371049971250601308203602068521702530585690207339207184630336304138510024767966458948298908243039625201298296898910097087043008447744223137282957470822747578094676480325115720346180382554312112253320546732996571965875388536858429247367042546699670752349987035404101946471013123839065161211946798816514522737402331689843473287249200408872619521107855711558999217352475137812509160481007817411318183745739952641676771009307945942685400417744858795907463115093042824146940864357246312569144298791193482064348222141660414012469592443910420699513620195947616246803541433681918699058746412703440615669503076749920459462440761511359810022505979951911849774971524405273181306242407665497150529004461722167909061332888656687840675207443481801338379726715004445920638013558408622128888790826738369274150184687884534922160391929112978751413019617370801437668539154712473802216832891018229123633372281687929962167978229239567937727852566423253352319396851457382346523831895724725725402658679837990131748971242932840360418622284906896504093834369192854005776226680016037667584690105205859659522264195819477107091764295618253084061389215757515318964443963422663718963021692301690316546084304939666810334200428570621390158863943046652847398142733871564535290092580340002268055802943752165359520411382607553622567252692509353780011307308574292374487009180991341598354510525680955360188691067661621781767180870806219327761016205971817776696936776797072856203569875440493915951744444357356722460138668659596550628977648006713084147741764064600443029103126003586730222696196863897130790658490999936050662513000571324401572450580138593815422782159665066383536648062205059060997504551106449764075374610963703564281949650199859495876546237831036293311948931462554617807729169817648656912131814975168087576835227991768878548145587660456583286215593029179049587489512608410656097849862827184870359820349535087012422693581137513347075018186446053770331793992972088892698945472086549589318940493778925859775933964014259594546906151169764217460804113473770352399336407823451225539271282384086965196974711591559502653213219203093069146861106659741212273650441781285943236553178280447656422655499863486751218948416909450188089667079800276267472920204893581051177150427192819476813459641004216236708428456828836823677104074230260437098915725384203286315099067372948456090142057739284402173336647335082430879243498265684339419155352625388559605140679615753495948677148538149283277455196274360526183009521142811034485418833923319058645736690447381051390308067525709211212430055475337735876458998242520440841227888235950371926348945578828044848956427049496858805578478717672884172237120312731091333972720710211834998942707981106935044909676404584337115720626118134288738515086670205824118296463195024643367492154250489827527623308163446899208313709758841965618797860918415308780193607472942488587857860905974509230711578658907443948105517892827768646305687684114142814623476036354381118102359120675891309239370558617343460168358196386900590857110022840075921795525274244443544609086142921391611726354488115712471240383020312253124681502450084638355713707057574646329815222303743374733820333715624537995697162266151981262274738564751815494952781517622161371039138534932238326945816396167323985607213778700501072573467724010514934001763255997569372216131094444988275473462399720811959152935074110845651330158510358632506226019714441157711114589269884352459363144552471222681002099691075283251010398821686887288425844660237860745419705069761140415162102868296174271543699170045966208733620626834349185637807473515718418623876838964026797089707055956754865244905377223395948220891535381314775924782287942658076932955308257044511358159573733928855189730106775052421061762589026944918355047658736526094386573353283106610229106456707788636024936900602251269986202540272329710265254930117684556762162271622438707724634525530315124316702292325077962644534797435234370140464390834159275684986523348578780999992689413546883127729132538419674559313783793411389291743503288304153221756345752532747343909346520656347796052078971011792170516515381992860638897591057059904541917014492238307011122246961030034443407748690142333131589716659172794899174007262931077852910056100462567923730107172436932299742511897713059214639101234227976201826126090412649642559974406240999486365393158315441672006282538364883436920950351250966209408703683036643404499240862197052082780497151002272446893243683476140215642217442286357425426677541778275105961383980905846734978558568424644526843726481068298158502549549946328869656805755091690045163637673302618959760052415982148737121121377220555380235246122699290523792310898223554865071051785732108105250340789026482065846097028115738377432743587906914177382793670638626850433740778256808796733929223662553736606824196265930748397626968105791775603791705617872200860640011207740933055223157427635543254964171223236911486144969930218730068015158345451621727868555515106314541549575503860349550879846801362931965090050204027942945929446205060218740050807111790991184257421710213633504497573341495860091551027212368906028389609219126633128269487209680239899004999831264174148668017671662721890000954436720264281036160761983342226180322935414354215876340480611772435652257909403907680796250420361131522913256150357169340301111141802345670847878325153813810919518923183821494925407581900350447415580583012587142886519841404916582607334052217931010453311302525279268314918271233106381571145654681588327323261634578674158652733483987725797357993409305945730489585639519809792143475283464025203620682622298693159635854353803278595618608467102265975164261170020617258083940748531757454003799650062732197171020994490134727229874510963123930093991851781165358229611831587630496401076118569134990636336957534538234769509445928469498436403675867150348477908709103929208893581764130012634719479774200316940973657628733072306817898245266435378430410743723718007899236329743027534597904264587846295952566602833262452257213890019043293642234357400814867599936646281184972725898393439111804343520491138073425405322600642670301429990688269013668757106980385794496094987083590670838146250049554911219217509695848342768200503193354498805511198858559238800466590808729781412350343406548200383815026981528518115861903792022650975707764296801732609364743895950239678595501191633701488711208341568328842601798941450529607387902402935444229657639730473399299998444434255478565523802347106019111903023881330931255086456939084724235658342499718903703356250770687230663287207792628040866092326893883720192318761175924023742715333832933335300606402569542368939108397194710824172051501441297195894254978378748619563453404391090694541116800930895918486146652795881127072829585584310743910742245246505419774564748277573757051379575198676594954369199743799918257979307958318958922643743261787095071492245375607264605917102505032484182207135560905600096244105750977998074796162361638574555611762631670533567298662056728329379680045467607667186874744011983236369884142831648973922613182269548400088605998909282189560557062410727313105388171068292378754079398047080196812103745709572576552386549684712463453682642085681582224591070870035186473676804129039607535828636912822600575818528633037040782322029374897185204455835460123621395208770508670446709587039195974127805358867148728737905133681112361923322530553373885489002017260870831872163113103402778316174464874447824319639681588069432237986772344215503426244388389759637698923783290168877432383039456759416542794189131344215755065889422725702090540218468531464936502340420502097310039630688156152767009731745685078006651002171448378363207511873377719379564848992265615307173223984898918405098531107695393018385771484114794348231171931495969670519518256298732614106891944751714372326120328502481530774873909921907455177002391687219189721249056210667870746762524510224464684024432486871697357651847138623549032865206658324205925985937429286836103423213242315188364694737958362780652572558876877609677949265870006868232678295386909907718504492465370859571722514322475915606546543406375183163585795016788494007274259653559804925230939107322750009860782637056868677493710181101134732608942768807847642537272331379363495092415832642790939025247319216309071467108599037441876579695127795976217934589541300916769580737557476157962311343563501582908538579160404114182428977641568312486468328874653442255830896864108560013134024610503656791689129578460347824671552585183885909859579383578360536854167221984210205317231305062525512571472841850194260297164140688715636854466307104749084299485830446235799949689664859056082510003894739306385849022279060273253069535888007178818166524243382530084149076597874665876907850063280014919598553607707200441332620956749576621385515897438214733282134588624073680533455213095460137707458479432915492356518481728709772583329676668556565631794419494532297079725186555891888707216295526526596059739211380587485248964284170937149681135706264270437209093279931506887825915062066469461892586917324176743264228145329742849554551666841885408006283803333514626312738694461932955979499716850105056126577139601147804809828506512059332912851200574577888712453163836697691055243306543743994036899659070667405350114887988936791324240480523371588430814811777165767283367426397230706125832257810872618379390231372534152912958282766206491465772355180744581358638977006734678248176024273470076519531629214772564601853003201951227402468735690276177619039243057933143093947948659269987493667278638296743561940619682369510597176965265209805450490365520179671070207020747557465340028470913354467490192740830323598155043440412817900361378559108749647606308353627414492539770014832923274435101892648818771545785064597366322574347234305780118048037072318696445116782211465683452321314492391309403679560746687625490390121223590626264182164796200238770541681615647506247945630397453696768712041808529387315830952350221916027272344087667870848914471397640975302915587901470561072568385533958909527757679896406814332499546855792058597664268325406323020313065289093757291509779038492583305121941562460350854299613742345409265309117257075275253956304278803081513101614267873257762751737827563598942981566438588224989793627001671173390639624425954309294879597432352097643860112886304712756069270109807058703001332622956494362293165165001233661127739111177661505652064972037627063834894906713401988424390449847985180009614971520969129646077957753653360291265200651443512251099465683859382654900258852444086883390021253670969985762272780389013524657813585995021889409807083743131126846415031440103604998928595604444074428481317616704949328492348595826842933319838587355555607591839178183184225781992517440887622874612809391482592790723757599691010655943170871903290029265663312820965201464845628047118036455449044295530019211299575444345379018509532879750569933403216345418981936960033506311662960296882069536093156331888710848286190303963728086803648839717893982568232356768976935159107261883786874204760332711270191336448961296900607539765355044909270641921751487756810931739793104710765616527409080662332720628757180484974752408477808483966442988353273768245982754301296654532665480077347274839560143228857544867788750698310526866340848182387762891121472551616513672933407024645475136807022071645433430968066068104001117702376053290536741098973904430544033126027778144008165176968222819680913502838905280397583345730469919141714312347508148610582739488829693746922114305967901218378182416503750306166936709196325382838311030607419047499350139631817555690217254086570522570744676742923770444418714171139931834481506174527792511491120939922311604932974884810327621508916288174490598690222929438244758182749109858953983574841176680787613869286549357418632428235546944202871709429383438506155225216819787092408474220380921559745968522795797262471137197907577157948192606730668118383742879801250744722190068258218813316679738611449337932819840469760486135852318629319796197584352675991284102806353597037711385387598089719085457712446311692520474465643289045577294584176817759866657725512939099587113998325416458166206649143518965456790565263618476292630018461212925039968803548826231076356507544929792851338065938139876070470781013976327514377027424989431798512639760998778093209097052118192096281219363971651408246072668978090744264683937387766687308993595852819635731390938903097921748006301873382592574019726627029209596013363777179056009713610641783632195355513861616210730234978195610259239226809267325498973110040935656145267226730222194538187031006367369328534070833023063705698663705185608845410108319420028889996723634671332178260580635266382793927120063488794923751856098706354714843938388410062451106203301373183207485316561635812021620760362503215428316708627644817014778972852660348568077895550336347005723010558846931488660311139189428997322025258640120454602554959213586163426232714160777812823717064200606588384721678988904101927457318436211810690809234697074909428806097019218290358021986475024599320776632488468424109684331368140996426237293033429325101245932457766219791592692468363826661706829231834209211012051496882623252830865466123043245987188478455546150494196276637725627143463077085534004625624931019769644325642486932560341686245580786090057506370959921744226181018459287944444774675205196172083364999211213564788524546270174361570859565851553127030199475976200940547544201267254318089827230676508292192048033216230898363671699016800887608299344710759433236123299617773622595292408308797054752675717790458332061043033434997571413700021829797758530360816449032245967992681507344641253019897265015392623864422132948425267027674472534039884537713111220842207840886398706036493297495154354779944265102748707603375761525961524466520914400763010838732771427753532888232412537782870904316711479569122908443070871515265483372539398111893479947382697365488362169139716651715377170543058651729860383496389425774452644070803203944033969866805649708845425174121078327342501322218235114074136182091592704458936447323029314716283759028514527814382765669079379801379362782421931931898123141764884098770445579904486557280516115248940532771477486294628579337340725444938420878069744887855763930233098090096534197355790286573250156425061087904617948193760374500235691134563079014620777756791134847780963670329693452395024483183527217666615268774062772764123770691493403814158127841516651915458785249695820051033630674553702695430635836167909730953795675885135860242654830394520339827687263696589017868207262058085358082807191124683672746196480676148802220858562272471647759593599954138048247167787675915092845405952550546052661345566215525570701627563525864061960405239492544544398100851130638548255572136584418886390255827894370498184325993359206868495269638321359266777040951502827673950508742661440563863388645821312277958635236407193479023532230113118072525118682162782993668483762964310126133037853081080201731824122232986958878459246282708215374995119437837412213463592861071405762014639376037372111077916072724449717434258259541000395446067628021569072730518815598861017813679519899273610211661222497456425790584849683150455902530550453403045551699512336427817353788337924060695299509573210914945598536452591232233746319784503803574526868755790502962191368981387835803264777288493965204490359049561726665986349683655396937843999513606241956879320229543580007248771999962327426287841744722240741485811400683832840046598730970636298352385011900875641493514043787042086904216427055203592245153182137213330496799858109244588192828799496557273744141649164683341265081595370628743903613578830429008616111600708064313750984282942572416971280931346129732120737887749622500598882384749099688890641383987761309485820637548904045668780867290478391613714365438001607925805093587306511080632175185593414499504256650660772965915426833663519819728341873747767216136236986513210330559294620286173928132221020748597873353942219025609611581456135323826169521524800943724304154587632484316617860755694057033700728716089598497256302575809514605090497343477876392826518495150769733536443952395265917055785996129663794691653706137143292701037133930381644262757271361867583323110440593467338899621792264997366758052070351730667248430336166077138504049218388276154950483744540481383664696952864114889864722254267435967016810522894827069329478420923361635299179354795124208112840602532500848888368637814997417385016567225548418581346804817710452373362921379673453040730707130174786289350918210577384382809348923254347403006973349930949625759446413856954471659863892299765683245827817754131845315675072520137240496632843638711500951304898430294692478697381294620686490168527473103203373911265078725302245120349262792210460208740756058935349428219705581445282679676809498879788751706908683810064204232682568629399230943805069290524491159667358540126503806986720468917250930152000643080314068749006938775055885758169198198095176683814997734543037753777879753198889740699374912093670700312273603250283458871949091366784881838115812581615483212946933233281649682897526753855519443722117376774417821457042368420810380465288283703091345274828347383992442938026849615616650599280285874452955607290602426076552963053397187228186386665052607064319075134313382391569076753864934844639461525756104289590250513560230157685444630839361867167495695236447007205570786623520370601868114680598687781388873546496951930941391836758585307089036619211864191882873007589466749438631977959283879089431471791570523780622547911035539795416692521239693484820392555658517681867086287310659226021672971296571498238248274438976967952745202248651369716164037144817873709663642829715305400522186381065907749933460347521140583257250044043546262080412181211833646608969126357136317740832831597594582502306781400097702867597340609672257395869296383976593894187039403047368053813642679669043472670621633112210041775399001068580181875227183203581428660542496493623077864675668642452280409539213337911821303006453298498042252613409368161820202460005263551724859936326319784284910069081534137911668311571655142714244242572558407242728088715870144955050535188886370751851942168774972918113180646385013180817935697562278107604792320499092167371058654617837016046677546650311889690626147482823869786066381299442108727925323343430055822931083395147883281837549616775520208161733118355101360548588306808457020726673637029570111538866244041487254609695141387149315489426907824075237142962427821232210544331439307546108421727446000314301223434329241231668712976426370652163828555374795599621057522524439329606586949325957870779541246973627695375690998911362841140479635666739867734022626006041472970185138067346665686983694805314602302761345290231442459313132767422009085050354291575981449878464821456146547210605192871571947321553544080744459446400982517095860201754562738855153863958940672923147859518787430081661392685695298178983827727723721169142390068313248319817143050335836147401664414705059800352652343650612626431654177643125330771842065779299342116927231591361750750928119954600599859371934345479027305249766922916793804017224425004132999057271159569031069541677760087301208463011228428317275106761585476387498529761155462742056966127004956344403347058145434100935542599282269439288445462990831804417248733861381149806912049082043051358158292730391608633326546367957033422002263324633248087505600686183990813890891806267194220460677684872129687873238925500197093956995812455231468100291720732548909905294724223131563270962818346043028957947212014492383317819078814505264964888854189361286241249271566203025879834693501481048326703955787507465261938352134252236077470429313282507847961206392170839070155522217522976400131859169603719266814621006990889648855807206918125428964880799338727709744219674880857397055319015414798418166620571296702755856655587712035016552221173406915752706080532911311053781005964202838075065899790454312625062178987066612226711214341879165979340629899973507095990372343557326554639999831697151513023523806205401861950971106542977563119992016959725283519454277526084853866413387289289673300679553225185697420129989795847080331326900346958183185507921878338684659477157244539084108504360218144920167378791445678038096239353185346481978272482732600209525696791298550922356745985837889887486515225477111998680505148671103052595162806511512983053365226827880976037544838305714623006727952625231829104303674823585045428496309800678380598682059197688839933068294402610118623552800380744388275414304802554269280073077039990535223540733497783283499567663240596843570625930408083447313256726409915983529465253737690621383514145684231231081681356465872184554372131061216739646559022350949359436477756064818997772082958344772587909339957311460180785735906464822354859716529557205016144393571434273784377314194555189361492431277997384700923382418957841845405499705868522683160897078635714658777639632224753216066609514658977079120163414770196029787220650950676262809255261287245400268769715769476940193412869536073899162120632063930202896870755622125197018126366075125961013124178289450690234226753052085894399520224243397829769321900299565742147747280136856551987645097720150177196022120518891429978569576613630027049327971687160809181193921008022545751951434750903291217018079176507498062327722171271381035190811028242531552653641569071436447118634669841102841101898960925235677970686369016970238994694593928388790087627929398545529218863133669212279917901477271130118321317409397916201789251928175263077703100813168518692950730719139442820566665337978969530594426014128097885000913784546840548307497735855061476673071967967760326958125020776989812358375105125883824155084625071978799706521628788928295071969052931257881208834152698658000694507065381873779366744627840281773598727617878566310331954642888181277423251838891764825476758187059789760831589665799082372304019648205719849124007762449413479822936872772829898441809989676854564822409170795661281311100051006060360181767982465437341351277877164969468058370232919929660038522552441549294902904634359039820501021908656134117293525580178957975134859197317980589624345035402044520757161882132315595476895204255021446500651037165677156140972434403842979459237220037817353537896190595233258422522686238948552250507129945992371351920286484175250948106660005584528457644450501943136696764474717112451641918189019416925140141096006451550251285725682045621989944710254211488468947404458253070865732012887435465106783644410633635350039687388837247456874671664395488788542595435247022359277407588199332761777845831543248004403863691660364506346604316878670985161337652928080386704342973214192965941021453200964812978462146704374413751193097929074983252854520045719636006699103019173871487453018655687183162260115257824051853977821541322090701281235028436415533051313065480896157109322585045184721493358067271880869280846074243700042592368826712939865885714238318211290471882011352562100741712064182958356090438754664709725633756744520550295240778313221869688195362367920893000885395113611520502590939072344108585868188584951280556942153498846797475478670794749435303528608721533069317609847845721056941832785985823119744640807752168387727094522487544588167346710646542002483773068746124651514303854767543827042248241566016795176372588616730432313302823389431236710661153748856587182426150356411857171746525565825460322370407074395225402749089285983516303938718373569465009023598155537735420613601971417869912106952427093695616866666438117335832957604900649579831808046594629541598800725846994421482092625667933412724219172507369398994195954259252888713789519526467521616846175629199632441002590921282156615134492887250093402094037035363222725269317102357614536297794296806285790458646848315999172321711496935507161394639089128041104852985926755620805339437114649257472931011783643329256678757603079986387268666114228329654530085806342710827767698495184310032752232281402572709576691110442377902602097996170729655092986971860008768623430968954841002045749257824559032592531565076215891300444944854444864482367456291748831180025391262638411691625993939732739036313306917792825604619120631027896500202800185902994991548236578755865256205011995016435033258693764341033733962041092513156048371922966669293073833781009841968545405691494018018405699870958145217009454381095810623039554566547838155660416108919441963402360605703542407058626516114281448662218136418429041619853967852932533596603148800149801814408140358279853573679615872168719109222366586771599151138788625309716790603263671710782414630343360841064359427162134968393440326789633337146183207516622524500548320631474000199291455967671461709697874580114717043629088151318531291790257500682262149241356905684881535492114529223290018017212269240236410149085914517545440237436823991711034926349084095184647400842974418088268219173437880117142803352834994070100392055821720365018815918019983379370101522515271884353293190202728645841097293011899862993887726773861014272038746059055733177835197162187269800340167715851803582111648644718097393787760234153736760288382120787070864954091485615777215544935560294748780368851284275311497163311457568944427314386123751791337623878531433709784080373138925124885706976603518507040528080289480512557887461045791054198189639650694720967214878886989280157435137183451931002211850624189881584863032379267608872939068763664388804741226670946597312340054631884120660908637175142569992028789810561003305227598913380078142670111983075970770917883143718183587647608364293868686957198288256574554714281830609144617813617495727410660170096872188662685348336259832476071674199194681488843384104804849565998659465478801029390699436268193892131138832824097071601246718147046479903193906779777522228010314605669564648251514138077857945489575389554650374081513131266675413135852885004919698651976945256686422721886689016906591763741057449373037878868886638555674655155404114043943441312213122927483527381225963954665423620479674049649091314863111994970406712321612901838782609447669771244812535264342422216970628001875508127992289512386989034512773579481646496665363151055779199116763558149037308671115230763756455723220483575954715240314355485884358965432247484622151282419360959320349203777268048959583865849890325408705939135767776094576242131379815996976471444081379398312611818762441228880090225839830058756416777408153821886174659822582990517611112526210113256339916122093286459188980213305280465831841335928837137555625408282808667263254248568205526999182801969127948650861308121413621404256757399142305584991594027890767002314094045349630797749657011849742606221986239546441369963313500082138584998371500156677699944573327170943269985478201120467716029632285103274587632281391784783499208384678194468621801267871780898926223655250367882636338529516369562848281422435744164818470089596743247089180718983457220222958723024996531951700967018396355892368373763242562531215419329245303729978696355904462928446348575105689978168044285705025649187100098790012367418458673251460962035420117210865204058637072317639840218500845172972962300674317390742951861256897737805339144446769852828432717055599770481095962365253118781030302792295558377680702003768968002961701707639311939166815784620577427420959051807603584472682232438387310608156035398180633939557708314317456107725012052450119523143285221132977452860948949499880278605267746277921054019751440955789961626807260867862101641303378450746840980393948854149789327237888210013618315278355031080548455851622114999691049759292366655020455994229794743791739426788895444052098175593162512353317275020637928001222066564186290502433915660451153197597169858676717815069206700423638764218916241048049706530302495819494221399663582907320169976487468377618820034462085535624927921021352358773769945442821400595119627198892054167564729505664260749849973713807295985775949499663902998450405977103653244556650779957385652030174584678039255669958501831121296998941518017165986339098168998547364452786182632741779502125124413159250679565539416597872868855854238417339436474628364033129128176274459768432452599396882578274324380041382900469249881118612760193627496393463607360513945564777510328833555929497722176546675223992250451057038214027307328987322660178202385348555332160242919703202725833572267724928378324989453033493237434662639502208892603577826644333578642722354144462114865351060475246253293272015987512650295785746158191296342817203585265991585159644975140617250060050728338742243329592639838326343529604956169742507261244655558696453510894061646881687033307872919595056841176356902057550343731412116963070997610209332669757640053343138104509199415645949185589553135521402315898392126471462712760814739530169608164967511005416986199164135045562346060840207356548841674011799875700077404022696467397814513512579249521611606420528601908129443313746953120884337093003294092623272062542924757965466091874619401866530920811613175476649755237471740186891319234871764228787176017993718279609574218273617175654123700498664915674758981439134116065670226797094997519582360356764261976092669541748105862578256033844247740642353704238399470449001824692822780071225753448608538775750952443664770135554388243157594046270501769587942467521573562125767093239707233259717981680071295438459668239852070873896171698263013826682845498416631481160194861941290744319594715375558251879102106131462783356951321421320795142023699861713178424291195017902771502473947567620460100419624360054464024849717412894827351722607923215373334435745284780988449877177350832506398581061832335526571378095995063526719560300963891378398212044067985475824367356407433859472884803340300067279491589078067838861858448293365526985555746921503410198893820017407538377143277476356617899523142008790944935811594877590390725430171887198543308666019017613971041699584905648206474269015834254565168706137709134712811449626364369488808336212176274776889877109012745518790924402555308605898743110626038601844779345454385529192372531708647179841961274922392934855376860555919104042561166266015403524899032884408801613493849313830072002237251603626717565820453912797513875393090355378791854508542505435186919179410716689390888873537431873265068896374679889145806365229880098802980943763989758229597640485457270697508623715287330930430476249233742300298885510049584462486603751625112108669166967439987526382107843717290295745032979545589798763244462555915544939271226509471704881905888406822603483093938591703728257814482020756259491953638078070872060074869193851925518181313199851474218690955882311665577104856664882452540922269822217292784661248134855639135887299399654865436590810301916798620741005085055731254934163609804921442044400177314337730194767972109606705955479040513344946372581520127477253440777371667807150617188953106857265558149259788890227577540056983195539135113447609839731111651141117922566458680064767834569891982500617305570046159246396954522225180107141236769232081113656788595433546750045328946236565242135411953102036288564254742578903522174583194757918410695694059068209977764166381536582413817087927018406470139858429310270773471375379196493285311329380930588449825060800785401910570477202963954064279826254238839721835996439917142484987088884090426250916047160000216697082887307783299553139956352543621618302872014086518314278153918459715652641689530861686568616488594907439419530037053507443836649075749829059903195486253947758717632542027420129131238122156698697358687549960495044907970075302789298981277191518192598136699165839773730024991730253956381857064854098072844201117393760043960316504972756753431339834706650442398694125221974196902777326950656503533530385193574569392212037987277454595279461350203848794291000812535979830911371062011828339465113306974100510352820071395369806628165327365032836316920779953136290925015902656947929501720902944988999575385341783063389753208735639061115345371454242597299880417671022339790012818370574187380966628004572572685092133330488968517136321464941271784802473146908859347002599777310173177596786291480013940033045990813549892436174329360521112963203135880470642820508624032283593749127007780447943758806022682540675857759499337811952740657197359050360955551605091333310511608140906759670749642143179562214024755394202935740891808110459987060736460206887607409490766266956993848008518878366576085615895919149427650589913655950741819121565296785210192036288535254304731649774654323383008320358735968651808406014645931519428441359930283247569840680542313050961896781957081104694712265446532492793599367205591774606655943386598421394471789264805058142693466800211568879232259868782361408440297381742502232728400980286171985862069193480076387750956560057829037939571551107737863655263354225106633206778073108127339776642745419114994305397769977117675361519542960058973927095565988801421751775607595484888903153194969732001719216088140720705374544849264505147702499740956928219216923027690489920212897819425795439391544302074704288416720414462493626140505920465444605911842069699729331173714861442408426093894179925020351263697153062760327437405183302380135297267951323745265864964898576371733409295382602091550938628000234390805835401558433200746982356644579656624552848749866708454678432966736346936936773805344354298834737568956019868215794467767182122363632420996620922633826921049245705943716386034966666917784822084178045892315056452584848548035615159335878455414232477293626552072337148394492658615490344695924001222808762632027914291322527953071364442030112762921129843649993931544721351320883524460191252425147915828314706681474038981972813166463875987201882829708443272369242533854256488719334032282620974340554432938184309822906959949584484747928361585236599515635781492596877655138545206371239397011622322995900165443952348403419864829457349308776885374422046822615103110074308462545070606474896005136963703445979709508763918057645974418084787255968364665916397341706359738054011114243986739107524614198276052150971563692484907600029793140987358550349728891147711135659610969749587191895066655786672809826902448625695176129737346341657775824482435418602050571874379441648072469046865724609531391083265794072012406047968453959982426427011110530756570316144934753586864468066524400453311810982826362111945638656435207885119709446514338448523243522566161391545220632755132852053604249175196920868434815770945269629380875824159341142994586299157986351562549283282939289398198286771312444209292603574972779768660041660702555210290617938295276088651592595090625806073326751559831874296870914612514401461942909639729937213509498110825397533304462085669848218434658486847644950361741653368234697452915525754933789147057924709608740476597025090610061913430749018863569102249059190020154328436372580606551902661474389288699361367204600575075480208758174479276059451932428676489375628901903396293221337884742395508695674293692418141616623711790074968198607673216505329279938181850045845137642721459570876312349325407733041379390219078325466558482596914465258931422007829009421690301626833278215320424294450947601716753858497893766681070380639801735518812501615448807606886132872958617870177598732932802192359247332249441348003561099246859393893077939868422019633539866484249673711921948818885428318986924946766269200390739172270563032703537471945108366324821649205185376951524824203280774958200463956493902284501967917590625781369623393001235825331785184563498233686024401946517425608938144379293675247852852932125527913911478654853756722075851977831600242425282672513321727762983500195903997316246379645814910237457795494584948326265620398067638084430589610381010015915574850036505953021486621688406903448549526827338132045133793980963684395469504130470860960336299125898718408881142369623931944606942401209470558937961082373796505632590213742996594541450518924240357717436738955467826966149793269004255278542464144048838638459258772240952965304103358934583462238859574690057590159341967999586142447704641288606726120359842799043865154083364580804804374472854792019559395720810454422474313443013119315103751652508386465484905786839966551493146265132989044857748298394251079182705223995099131013407574984079460944194739279990181572566083194216786266511325762470204724415510959635117868354296890849368364858524675677362918721770617883397235861186489636903129152770661510180713490692524737296173359733730629304408769743742412930166093879886818674204284210680366976255730662698023444073283994328929957843898885552127952537762610110328817780897175929138439301938563066065877963605933417471030591162964306107242022810909655888693941312506420546429328492941385940370253603961810905716120861559131000306272444590815163354364788734006773918772565288221021882061409772527361116214530058932156829426267522478212162717540929884794913714785072589082204632597943885014693364845766583006383899887912447611096659518542158925207716465912608105535483870158004376740440437692274345433180178507744348998567058120541300676496364914927511129703058890045552377156796984906657251893983238644188891015274483775000161437510774049498984526912428741041478180331093392252840012837475006138467822281482380428139640243551505694638612751850756948017568704570319923749437141838600187397443920603717602779021459538479392447772152792408224140138668495596730659409507894892832946489474816477788630015895678558092332592157675635919651389806331082270061993060225519795829383825092487347777138186306563465126013321616286112972898402695517865326473406277563296667924614351652618103401558663142322476055855343378346136235172442084308969135055082612879374050616085922313675189875993991699701441587702935925108420578016485093702779057732368022289323409706148125205449607931888347019429690539076012634015298924827964149152133286076108183126242263744336999464304699438351835839190219579532274843886671846476669060554421172114390891535169859118323470323359226379660422044855797815407525398547061249356945520908924676993942027995638251925120664847345325245863572184223089636199856302479382014564890141776787405799664242630907916952591308795243405166537656958810622040429631764965815830298529464668956334854753903321132456282453751048705471438544894063021795032998185391485205924983817199134643096021613127836342880008123815336874417603026978692375258024461353179143246252850886458456024573641326643626021400379147940554269153619982015528986643730570910535201967960736536569949452474885364447826019302036076929121960569721704429168683936754988036347623540112253371993630428793987009866566462902299992779530268480071465829384960083035654430664046127461166045746367662216849044881365418581192347484659235918894925712617773391273939398076799415799522758420303439037775020183813619018585547853297997820565330455775856694050088023864979807599993309146403620018076663296464414329293593053698207799168083198191690925565585890469564677813374017080501190211311631366481753537216676076731568756976166341998137820937173265565169012821456006561012728109426598874534141495437801162301280197026739937032546096209145257782058093521980540531025396610756357880378199781969430642124437361174068136707395726895250183943855320848515961162480612268252639712121090185572965574720857852916877275555087164186196419907117006482665720884815554308200666457768625308211131645958607777361423535269779480593377394814313958279484723699747164297181975066136914980756008539509167124874454978129064244807083582523208443920201057470723876792387095181262395450806319015153716636568807794857380461705652184055860023742101280855174873382239183770848923010949993677578476474531763239599719421055294156797382238703047864614737159491785275163204950632713767952797429447390893975760462142083696680630213372068321535626082359841381425558324306302110481780611989986917027351270656188376524722558662954752376436550007148133226210691265870834163156847111213688807567961470663115316832821936378888276325303971136094481725904007432749697800896741576909631193298979826868752163917408739790853067909208880110131742951706868137723978666042824546934916408232195240835687249551566257881710607310188614980389303663457808936738273106626939756176609782943920966824968275298140296891830101832899075767550957988460503003689845691585817310958186091595206977053563424774563445994516595221516490804451705855247693284503721664989417894450113633482786098733119493393466610760621385986302755834744790206682450578244166750838603431436414515978256695234156646688842503360557365311644889144516853082007189677676763373916315813138922760976717631973193044365892115607863595415499079870312424852258059793603271389992099124237720780341008915962415033805112708607994576747563757657129714474029184632559957034972175820441060177165673603248976910590036475023162956950619372815122121798927519010472098254703632900553642449658978429137177886591261103343478813967334846312743326309541863528420482189523783747179316466720262654925808505222671283012703738460675964998349082568489837435436837386845188697862159504897384723824245028119378860348844097814784540376017491433420937481197198988887274063084015419164169669821944486766935592102365480944164295719632403437219181495394048855281943073035803738023858942180455131445461354186628076704267902607507988155593938849225952325029120006735762037021883794859167818107830990517815367940692247421826737812218861108005560997715417822638301469042182563580210948930424311285240469403121496495929338096779727150997781834395774379299386250779933533647902328747925922304073182438508629485595130378059345687743111228220936673018071465344365451528953620270938471556650765790672429027025826717063438710624505820348987555094930572246568651404643878555922961302530537076805398965945703384318314001593324172362868965347134995114952175007348891923509486428956383897334387622549758905256743725461767005466036398809615434168752117151204877178731417075165853989439712296869264411386714959921536335136216822889352361235381397758814157328628564059220674272959807689124570586926101515757582001106544659855035488804188530050240703940343492091181256409300044749996030177340238701260751786022065201750018607955012272275563441820724062162384737101966306421694247335193369769167934662943723807738818633462712119682425972406637914218124753344921752506722727097124445496888306788201511342945060430363675015774938658090518002395454455797181501774846946766167329163010599786905913732699520416749866778887022101570956537388581777590157908498782477310780381823554998136915899653524467583290454275542472415127898418864486291067703612586916331547491930010489457788380836820027324802412456514878715583947866523095353170149724118606689047233575579199220770324456363056577528536701947464676874649038752210170526634513036312007830122869347508630149974894730071540680954591205421858683046379536720420950843598970784935933103501116527412882839204339438438496754340298997437170889515165421739598443428126442391032564358745698908523181662213439961788551745906935555544581153173054450781997248579706811400993604244196053521321326056228689217252916501829057448863010874727269274610266319044362607691643437206629048357690209690838318643702372887736910825618403091402973818908217446038218976943628342332735743273839682289724170036381876297775552893901707287234512240986721996026199254891872083620534982663657363823141543242183187449426308375604983085084967494092885842058895739190800772468006041855766282189798528532603644385210252024381532195715279397939752925876300732893917404101290007893530959616185632892209162730187324384989189723709806972121208873020883133315885906225065316440562196167775195583565153901794958239683359926568028443224116963600884262854771463976574610287006663851085001214657324171764597386873149340547386312519667018295227268388171089051244604322064273664665328573449597729656988827987201949580007173435249442332821591072636169008345025939257318539009385836074101039308804714188047718961472635298988410298865398939473781940890577199270024920729077616876144096579391884831392995783322050795993518453065507524467346661531882566424253176996891527191914524940965321759579274672915027929388646979136024088874272757015859563517004647431562296094433911213931285419048157992694705672270938817873734082035265954354270079934688139394457291424020989177442579019762874783621317094569739644778840158699767612902859325362374762515299426566350016349581079977072156890881009114125655137026292618696617402469005761825581087369584019193116546551060471960945696777751711463056592952357597670914188405231994196487369657757996374624556516362456953272477409083711036527902501120503993254431617363818100871900029436718171773997140398468527618176430564157869361512133261700616284821582765206446432941345147429444044824938936326360779472153701299037450592448700908145492208415831122343312942858294426958125532375467725657527151609381844157785043063872669643140710846273982949888643937454848960788521763629756013973816471414405046798667278810266132851593772687262460755219059858193170126539358748975673425157654067702137602893773718765971100975346264583226354617936944585409070163314041456981867531117566409327517272209562313178240776230091584616295823292241275942827537093029275170550429343912299262343189702168581678933999325822622027205295172436880696749383390492283457340505635817639267698913810093682909039859761666003504807453060585805344987296964730650506435310712192102526918586794469979097901807857863159843496957918078381786663584363030812435465159759209714968937059712246131689991505732328066581584224744951127780306389901849072781883602679871763796893407994520556392852344263553751765951933649008313209854175680195895553865013640849451221199572200146240020058806476521880905802567598796946200087800965565482361523976790476700407613067428366832492745783791145094533149584644147032919875908083317185664362671886169448808305569270600756519499112545050795372971110204413374518950405798906122543253994463358072077175499370489212536574271760619908747120492737933634366391347345996703465431137582388915471537914802828875268058315848880059313540891506491646338976202894820437474855721883317788483282314286146201894040792932839553396747722051228114527470314260770909510627606458393979603050547587701443757846312490068262022769903383481739150592566751430012520716007284833694754162756862313010815315498717047315504825345542962263068154692996754388763182377085870575070487721113068084235745969750402743804707939428452347634866464053063327430258721546630206660200853323112050095601544162160994859393619754278323557771873803089301825403133991360186901433542453002120306177911622710553868411564451693489675418712104066447757993890358368179695641089685124645945321581838008440116717890149875937360131814872492289599264713180594059592606562782555837289890706405321873484270103972525865888894543262701757135571625012890484684861193311049984980405012260109313554886076885792707504217375096805344493305134072353286953624028573487672480966700289309643168671242967570123937085007993357560902962138636773169052034558580318007703476335705912380686471627063005453059171557508457012923786060540671058215634220386486765604237020793387477106285780719075427169725467339438140764376153526993233171618941921502257039005073262059090059622245748445946873962886891278604891634573759137337132664008564421714101062907017844558816761951804109622503152122086057096018878318781173885207336020482765738495467808582358169407505107987441591828242827622572342515846653191815542169579962741844139557553651782151912217466077250017179031352152323457070627829684961740679206337501377439096928943492975136634381919280992322854758983720246367025336345135609416700911213454846541853134108653036556616711468176664137381170702085966818005732611213569515407523097004148329809017267486050122577592466400077069264477993818217764378796966273368534930257639046561983533074225928116021546567793795357328272409978000966007634315781088962779461336476477862226739650019676405457029688221797697623343496744249392074424431216534521968845502328562459042582869346598940185877709959475563666016316871162183800994943433787218136940895023518330239820423793959709417454393300958445267738550732912571797252678087444695747698951292406611369797345705965687150580386445431438938185882449366027541627129967768755312989063673904844804831964799812018421226841729543180982757773040926357724980783214583487607136104556411654155410564085884625947155810692114045052691573392999088694747526362034435025954334110871558406042867977714841304657753706076221805640700257861211252861245082182356776648492200321166247164394350942403599326888092600503056936768833498830665908572757000501324857704530606083130453337712266917311692304448091220228051557015416716498072675987574179385320422887702449280275752674380777788709299908966413446444462170249128239312796280820005835340877027458643035248718789393132866575642849451295851334612264401127254528998031727973253835650931277064401199317919198593160192561563335294358907770203467233956077475068348819748906085445276058360239144193966081063507190266954334482199408480585808312587536330660817523978963663689394218416127384915576014707387120348977044796812809107548254489942085932784189879859019200404912634848747506840641005736368646448117344351652511424502811740260232537288522638870231584542562631240257417318624211279586389930793568754642431766293751019484793178415853716948105399771149663051966053502963549400078702542220736445163544267948899573805913475813481285029847206512701135237540547298240644716471554747188823864635517661711443912103715716455362158134671275150208131768507075058413085956884021846310294494599372876156543185153399762544586866988081293037270549552507036135743755785915482277235842731956686231872736933259708714358970357509086388023403224899409881610909146745270502563858494306164540474570741952696941852283266340085021453925508174247542818382816137281982958441423174819482787811696828644133806840555679338746974302389192651074746893863959784777955517269160953500272041542250600550831786717076434774674313947957861354904901346488699448929971569102060248582728755680500272633248679649787960297867655275631293438599267219073615883730701505248233023463632949039825898616270826324906044254307811409560377863276005403076555784495806620900391997733621151839271933523235488548372373017060436994475924356153497992566741522379048122401835864821040751735158678569567686479680887199769666572176013135173832641040724667971722023265155047359849185107722731687398723649696393619452284517549789601646703737408518145463276711487018362790573793232148526339283211410348418650764578219953041614885128239518405776094720910487682889024179886856266614792772947278658818915379562567419781614646271313469616386170929764726994627451092137451354857715587192189303871750580593432360523275306312273872215189747286488279472404300639061790611997240858005619386414974382522793691106958593983787031977723763761898367198357041660074336626146208900885069540202286216106639694317592343112096423111561516970419574724304836316426679482960881269041720514318308909201143625178418434066502769681089035842649622112537233006995118411778806494972777277815332422483870559579682905562531705391255891527839540221733960577750610145080359667061518138960220724072020844378239332334015555477694394078456180559069534013254473173795011419015781599297488450461167112257687280260901371016224174640433119315855960754659962969461119302324886695199835840926075901794531073681273922514031333469400531344277497835158468744317028261412078190006571908103364147105312889009266786533950943061039921648413019692878846582775340615386686526638136026789147926150928630397017715580859615723238924465262289297355309974038380478736625282361250409215314623121652555596191542203136298116107455478885472944407372780720605976355858690298505991274920415575589823070405633452465105633140709606050367136183563277054590639804338861546330078181978301366336962255657119961486591496944917150681434235932426085365617535284605733652764194194283984467024809260457715170808840974975545028979444261852365474652776138907102736045620534639585171908151210646563309260245681311995323285064563272169457894023206811068508354635770439878297018232354889466055138159762799100111865818644553620509029110578830796901413376647674967282411089118664217953355142571597547396664913542079899351441649329069854341529523449979529604048037788760104056993327273915161794431172122375135695965527809755084357233496648017787828694719579215421661088677013374924139278286818201689611386534699504380969148835972098983883055439881230934519764532596596164921531829106877506178028285162990495144572106605060706433820730127062814327158255267540296249831902421104745241065640200139400508145555360482447489412660708841520954513913567193835729291827999817097292888242684332784233776821551370836780036836428501655820125848622905201877575474846212454338676667189408909028970163501921453636232368818987264005986545701690644906201775730252969601993607353401432029931205113973894237593161860155975212539881563501499843411263509492870717997237956860326994632710459178141303185762533617605379721866307461770574554641842376261938574389550076500284185813611267560685701781947999340444302357902322151754648732643005417354544004789525692599986559473386131353428856236403437658516337332469440941426256533038152348637352419955182590967628231531015826226956585517657873769434617788745019136854543025798915948307561198345831540563200493723076471176703304784901130017987457295262234722973118936647248827346802857971308255823418166331990681521332691789132179720887607217485249684046954943631318696020209865191185100158798141637960088255180150232249440832477582502257703770206550759838700110380948770443333335722201962346625182670193610082733805125595482037436564664314226005374619305692090048494103096842504410959885405100013430607319025107526437530470547852189852160273140507386214128683752082951614671174816757750260800951425907398122206916288905020571520335104017039412572156121234770165576639379632494662117866088710160717742817898062838846293558024125939774605049473392666462659506022130046796507969261592101682183293804787063530965192146092177677316863286454678984230206993278001226520116261614224202974928553914251968219800890406094119435501497591318511166887948747325028338136709183679265509582333934411941338814004669569727896606101440823399433861168546975425453121425959639796607093609610800802867566624034873983806003834029780149910075410286588197859313333114880660094007942787540872509670257115880126818866096245196058786202904690340529757608421560708842475266080547424761374268009508339774869122624821992073150952342537425990954106502461940985887355011871676249320267559228723661216623944871801044397299656975083239162113393992883031124301582267748771689535041255336815295674495280528523422244474043037440596840510425544950109390049267686628935197661177569845544769230386037858654601498662913643067644821990888328011364398663436998643982041037028243634275736507445404083146990628122000506002068285755876664875841759869943067530544141668515364010277765311191049665217250570089058013039348981532214260281589607522598841411068783683603047970242160485405321579008520247785445485561260108311671910068995443330201196692694593363573806944911474817996948549383541330665680045114060107575658388471722121726157783671633899592916306733021548796387904845160915509010220429144141644281788757304877014660951613277589115850653461446157364515282409952002546130839857541409022091657346252892234647879425509141012267215507622537204115657926381239054485286204953209891683600890329533831563670040411491156866684907746674656900284019711724052206564615812638444994174817966597171702021335741799034587057995489154477372169322480599298889994061970607900530831692926108509400985643042365589361001908085601260435045947207814833194435081015161595763012117151081394821083977827318080347113774423267293693206480747880106581964468064379146329766841803593089782662042182956083525889403178111794643957149728080813161839904227202929092579699292919011544769804368699925200718165917238547315725108643230005943660434187791308525629074974926521322198560722919028764604117871714885277071992767267115874893388520169993349103163191461180355846780418049874576822492993872913771235725430205694299554436026690183255536228406724254709539986818052369978257280648950703527321018948587732635030748732885086619944711687314667733378306463036315394321698273899877063653454825908555362903051357774056276096305580899049411508674921574270918909945823899007710559552973520907518112655940791952885350592986353962179015536164826926233917268326544783632779195820780802144013157619420236092283753551998520364370737583299307551134527581631054367163042992681523733240064999688625792214221478167484494655022960661974130535633500766473041422651978848815536724630851924718268490209044509338579860788459592809197661252480927259788463685055680090015400724063317591834836168009434308133979065662425369117454589701592258935067734815526384909333363356662155458035940660615415160592523312369365824740050837269799524720789130725633255150091964689594429144897631383480092785191022111248572910017331268597221353186939122670675635818455034832956058768373500406529070691696096115293880585483359680312085165251809623658528862068595262004744323714529462986716400152109184458878025454404828127445240342236880384124670176442387426781363002370196005012768792471362513234664215094414808031959649008811463818347607688386755155573684920035930963028816771772248339825030460712286371741232665649347469457301899205470689762546718785691252436134001526853847547640970695471709795108499476532634853467528010692560755378399987213380140564034309104009106347377057401025822502910774874327628258234535835892332133632409710727451266411939532246674958677337382090827012526435351117668819833246168565947105858303522071780315739629296911103480487262011875974094090158969997359862956989368015498890191954308131877811143329495772233775238389444821277425325168441232103408702726592464016796695033475418194206602806981396103317811239203750389080025948899610547129413028155034594352793471022347440293051697734835704833149428611408242401198195236779194292354574413620796759921055753569135687616869025722525348653245794935577810579154840292872219370945808512696093848693904786573562153817096859735311644220996504501737655369152241646257862367659587211920030812036175175805617246709586891762492958017007543563917902845706474786760175081410034350056937504005813678818171141021282629537250027512094497650783648954943023875649664995329362989259674110442854621556157772847004290353880322633718054590006523683762087862517027839412310851042848342899732866804779192479392850858805307839826319018573019795530216699499108525418510990393271522122949039174406784712932414305670044865730074057554836989736263012009587284498333795571696029955022985316189929047250080615214646472658776732908602470017092127028282859397452642393366389194012654620462957614293584014131358928636838128170335104481557803941342433714972897259310484668420565248383564408626821419705153774919003249321804061671105410576609617620636352934579216312347584659137488744879482075489118316272370439982749014288784469207168052679358114465130613037926800307026018905122162573836130348574509385752562482543327039677412832598427018695893493145831703429666881791488712160929730389885062705900171578782837590300322350844630974448618359543597135337781312431767617546724394388219964064533294705206787804838337323926846071548556316107272794024551418861516368768343463082409800858985619129705750752337407328474101227984683889524833869661842484925133598058441154057284926311823475409455113836820111119656549845096600871542225210972562410205725801368902789404316995674295937983819401239395759922225037465683699709544298994293703099439501126210608448479312590114730121123475727750432426804495727918596701755445858153465178524259708719209740299959001697015308527390709111162171961898215139003754616949665945430810036048924279909327274281514791287865800865648488063007983629890962576905888436186236089427117050929009492423068266416846418392428017579959024906640215932626977605578128320417990372651225109760930817038751234127010906390387259775997970974810177388698997737280914111081865551413633191796685740715973096977488160280256211811390923147434776823942378125548202315570164620933770328599255664322882430838296212213899734147009572557938943039127253905498084898923501819619438896805040022728623020276605358309123012874718736298953872917808903160792875688244169965353115513541442850150020393856890629104801066552938676622951997329545820458697251281628136618300617071182274842453230359928280702830535381285943678690455498751549770923901552891602205290616040029532014934840643360619290544311024195692142060901937903725044218194986780146233044274378453140662770784133248790318358052179670346275713319039185575203990175441944316184856673483788491525866377426944112616825638379309091233439547336212894355965906688450591437993947317381527267389255012710592110812443015991405980071133691646220410164740584829559531692037801079682577790312354649744513230599731269982814809048181297475661566718919129046869479797007860370652559533830050198219976929081790701377887388997378257009643780123208844496566656225270120700456961856545446387246956862479283742841503443007323073528904890169414828295404250591115114598134631533504930271486746111919712059254765906799362722597042179722941180732405368890974426544937196139579762975596721458409051408064141961938732965070988038023310894492132951058575307379914474960341168190289483808896421535753690938012092784364051216989846386050790052827202987993553022067451134805787280212551373459650191968351901049426625934231413253688549383018407784211981541221950572983084662540902636076218037781258366248394911531988865581296181888948477878279957201151673799641467878957151752794646882483391046455334137479275928499864801397206320910484768914973089419612684499006067172972482865028619296501717114542254456498199128889465644829319250642605902451892054656540006924505015847638111428372786953096871126892242861535057415029449790659474158853526865066084475502460953732278415789485584754800123317363054936274608904652581026577055010219104176853623154019286065441118988832180088923054213044820587810562441679427193056960313185287282212832058149871603064506015698671989871570102405867903181560194798075259712133477927862120645449779362826053798982421731107161944301414667250966797734813465097186086746517468579683271745536545108030306062106828854710799397535445833091588469866803714361422252906814281027219869244566153203506888110395215667235931819887957434658390278547291206903861911365324283367062270712500463477966301795298000013132604798075144879830321239275524733453917900487643045631964254765695007251759836751387542439930765434549662449183509521027572970902165989728056446490029331642834221801157663789456283840287352376826787637662122159501545743689670177833112394022016703974363407221237914361242121785823012048307759868855216122309979435224906844011469091598066111768139339655949705513719731027021344466455303753281766989190711215846408408322430029547495124915371052735555109087239729778083874607430456085456986445447540066545320752698425371379444908587156318158407151770761744760855542946547072989374831921548007629299996370231253891883905458451283618391946280367187918294287800746349756642852458714870737281482154235559662740330791302686779463166467285122261406833022605401674624505546445645216950065631766065711091225030213992994640645814740897036182254728009546141718849821845752903563761149135712383244623294488613686880336332885643626380522668005952323135402434094161373836756456703640909327709078401556861834413562892004167616802505059015619968276410342920949703475904918803128722292232713762970423480734850706501508146708418378549127524113090455862056734391274654380362564231235116045171365680892218769669225583841132470718660147253119440807768143735738955886667412239453539408555298524708352556102678360384614416842038609054764697812622683904839024010764584798305538016615563245877824997177407710568494407711443781833482742596713220992309351317087955208952741061037052340379776747360155702543124248895754651571221544631370372046601904247693336745505797113476825590806313839781533670065465162591525191368620769759883541505732294429620332666693086948601406782208200836119443138918684172103499146858403110395290347570326040956090725669670969108417115376521626332813175312916439373796513226685482272674291785725199317004963769108359987351886683581947097825698085768724132719626411556128897582534940939400780597366203987433953942790796435361081849326113264097050341963729173565848395776550505304613821874303096109751090046640888547430548206984522126450124279492807592750410782576632123823991094275387835024093091285588903317197123588096209288454216224544396549075644551049835073272800903703928176717106941142453003924919773901099361447999193799072214715251003419733553203757208156502198171120558607921135458609359538075385692970688675851559829732481429338679289088877271869586303375226319549896534587972508231201648051178286545367295505872175389597023281166978580176054211821446686034267848084352211076771374024502626101905688968489419003058950471972387684415056394410526730518475608439290642302747056583110029260937099990488350996372869629575825259462026375039467575743186107582413546743286618389040773530279870540153470897160145216529002479256529753209368736593766454454224575769122319121695332317954835173658071202070292551094506580784999050278760197546921714903168028478344236238263674922774328853727995904535427009102340630916451951658098032220902633068288834238023186303805348543753456408489954628432017817546734217844344308420755499960613658302367714149568207496186994730939968683572769360593255617489179850203075497939507190038109874126251123796090697282972037425363179990732759013244081613067361606681754749062089828551628619946243682812000318985921643002059622231102939183497860342967978329606614664626348778904262993975865403118000894884763882966497554494098614604454241616469724310601283143142988914918219933967889307471140035174581341667557209389486718734851624813674431631130326754817343690077050916843671408355106804359835652022389274205461153810071228696063331401750652036050895947448849983745240272230851524709097236268228376331438515860688130944571335995572849288039315894020133525272897255060060614832775859586868442311402604722413100766963990175190558059089197720232622932984882688465663534035671985854323129797088013509718304733486196724619101280110989728318932629402552176246487891004345627234687442849976839106345578236121786537183194337367474239471231885104559727697314416880700638059947622790127922343571840238080721903254148536973414470680479428083477087030559003156867295937210072051870158321538307009085359674506792978468381740487024451124790343939411100178937128532863636036779833713033959515768213908285126282699857625719188914773163279976367660529135110289662539413712307870885281180193299545067674880848641913952214589105957915926101849753038347099007149460399125840009129558369961814583602567780749139552802017573278920713289934122067865691538491364730814784490180745127909170184079328084979575946286276267110280489386151783601626079682122878055951356210742241397406898816642417781954672680012561265688096880051269377245945503385036108670107924720429949371318847343152424867382444238404531643715197406761834469262070943345946395253790485460265848349643590439261207559001746722095146212192507725578244749731578086575508986027901754492423798704600984607388400080598450213485334245717152667037955123077626039265756031096805330164096191581548998937249585196183287083321798289991588953048931356883565548775915725846170248103662992713781520034513501605437611668485796548568267701232029021556437494120948404707928086688707235822086753688273755802576385863656008845515784420352798918996331786157923700995262153013345178854078846819730594744038122688660389289356117976059896904620468538758005720627858726992185830482045891072761187786974979266297264197707601942549987527712396075453106345782035935677546191522028004459902948378587576990739006756232805474135869360104732716824550997103293961275940198059409113930351389718278893316634790543926822985953211682050285644405956701298363796149278331110664094573913167780079352623031319028036535263862531113464714729872305091089302328993591688784934133210923774021522613528562158616413546769047459698935262969412916102980992636164768039016550127841445552798659051779489181563422923304732584025274949669982239764518654132095025846815331084166268869256535048380692816847473586605711604288076534282566671912608769808197697881941496248706631639218253980184062026448391010292053123656898367652616729447437116602669335795483259402113560846422622249150160808130603981473637819907699047169116496825213825539393955897791116371148119524966908331609258301329183946145069616671281383789924133700590088560817145151894524669326700204712234898013705673257138823408497295331545629942758842938879944020939829592769478547779843399923827402188364953550794984868144640561863536898629447539423196380154055277055916702368282989844148601241613917784821295612164568792059027288094153531998455880785196013826051906690157862277881540706267357907135402290318147991618716409293329847776541103282399831637947391763004873436845594792001971602962219401926890876030581619068918999942751216306215815655704922921283177190887340156668198710791862685293381263867369876796428155440959970962155080506227094881632569989458321415008095327024971014337520745724365352054508089842960784071038294638730844404918917170188533287299840140773900480881301084036042109385000036186053838927439445618574994909938036106893902873223516433274457851270212192010699273782345881972499874370833642152360944810705374291772407501493989548002620262412960311190862070860768050969562605405946055244429804124351325614947313601485297473685246332297329628553119403793558972314623368976838710338350436351372635005216681019123931827733878413963061327853138922500391699363532433831877687531155273527631210700254065351296192152724137624364655890802606032422640219717542293897405309991130748212455925386543567131476269715784625718200976170863544710502969135558440974528611981014735489821825428054275871647429389668355806975274604064490927621360763813657760907904286544006063836790154314553563484297022293254798896955542764155596037795816452088477862931640777382936033002699415182443622483762075983692570511816781168265826653435234854287245513602981086736055531515965553954595303246242410694849577308947581558881126103740601917132855429583914066881646789103747695847482959498530380065722606065439658908080728681074177897165911100797367516311743798865558607200807183447870990280387888494603905163509900164038972511897783607270262671467834630801529504873681843206970811770943583716103415237650339711214411674690048696253075277552893742239049528428311017488010669026752757886963665992545115338539106639448610221998813340869389555905878199674069667484787794391807286152016795664237249232647742245873087621011163012317442366451003438122322111130711773428758762297085766631440486488280232773735181326157178683921636870898704509468032774401516249926389760908119450372205231171115026180639309482592690230583693231190477066806839965473189712147191581275267621307486033447075757996782061903969505070117174237536190990778933703073744187482294791882070235802803215583885978672644161689485013168040884453707267941521250810699032110623065717483379733018695158982030736089252278369294856247700111928759340115136614547020103948285942063294070073838286060627469927043335615620744136162794337080583613878779980095904576385491305646976926424609330900431445188739583685170867109796727011914920163063400900513920308674085118348371185237877322491481343289744200035094272522260035559730184625081346261776288206983817713371432446381437229167971557221683387370313290884617735997976784625228269048815614243362105789605971334317981039743592241996203808083380254416353517766865027794858326209927684713370866858513200645676225939490322936454143244877430700594673692601737781758739217716395101728518972523381260286295253924677028361875663543359080976582564901994087360629633588860293687542808098604470823205481807876829401411191713135562817757769614781662844311621897166309431468848400831479674559315343711617133272984296992737636151234408231947920207903717060461066408246779759424797848085679176251798375792427709336756947399413413102031803270463850647335452155559068516358215854065541261914093042234689568780294738364100709356933433718997828888381717117350139862439581063323199462264282666287870291448022357947632343480779565787841585712294826837417785065784220903810523746633646182338157563119396884255310671917323796131095451119672596935315099668889610581813013736411709274197166646582655542975892537226882859669222354280338167142201087640441359265362465614128237286623950042642516951318731193592335386377988884764162013308609341564340177018134326677667695280123808225173895004930403580007083809608812753374715231119994725197467934075358048392203625029275621789013886199883551002531158472817701520242284087456326123418032198209460229718488447424762255250180763327555260938520042230661610185064205721918160638240494141727186749282905623773341564399122297039588067454316267138028344519017845815726840585136271641827821891514937388630015776748853919798841167358953479163774295792249936945211096261459733115215842806563963361477777776102866926636913905928213614102366069999903301110201384290972528487438939081254782937097601317176315646246455167790450061595362247614955195639509038761790055074262635015372770851024248823354221320869294559147616177148700477437852277221469612889968473173468689132964492129107404044622370339719358202457927331029417336576397174408386523192326014323156606038934507813201583865470897294446380670891654110391815495465649328819759666615898390886561735944883411147176496712130662426960149713048302196269094806522789183767415265656621651519890560791450933633498507386455122668837016232175733056354705221769348378538041812215047545298994859174974648961027847443832690829974069037474593343316757611031186715404780891162514285578179464561975977450681388345566522303389136752126492115683400865160203074701339020457753509859554222711154273803930678862684755494057225398822197794032858432021438013985231372308771364706649341479698215848282300500984536300634535484081799272472291906730764393795305952552712959631788146034982760752813099109220266612580606596956810119417319441881893486020333583093696554350983041654882200700426243599503283779419018789078715398697172985551068548654488910183651425561551465567760379111131678138771104086804211978941366042298637534320961859886200845398374941273360776871123622970377938621705329607407773957556869155162843343298366712657609344661249103142596850346774140587793253648530119495061492150884043311752767771582589083437685957068085907578685148639262008914653557790159756124564524525430119243354234197830707209347397705190380324633143323933560539482012391508330599075892485385265082678419544316589434829222408604072022030403556253747797261569210295692261836718613489117924446902234428249428719433513721624012059973445228366389581168856279481587302196558639757315154246234325283511260245200569577672778538827763557956075144314733123879255548265002414304680901982706522791887421934376897550675919320593488690805312382681061137923306516282668846186804875965824083599313962869605270584513196839424485715176884964928786958408251330870291199629969039516630814253054917124894008444498794274307051597677553921885756855468667052044685982197432066600428989929493691896718803823338714392962124132431734471865366486000589282828505507852649372784962122280741891079071334513411744323717232907319221056409519202194950393582220092611957087409728505976043433514496097930221274988470070654435311197620015486831330448630283548354221077237662635097842321688181443593237569808156340427585375502447152100391091478776501833726587512113919150866391490414175278864206183843291026287683818615819558430800327009552240835682138715613988176041036951904863799567850338297139533440773159911422495217882828369898902657549177934969209225568016734766225866317105006056650301234889931827913303649097740044696153937188679052994801626398573038359626309320552169928981866654760071548493064202751457903245899530286393955960050677855021352034318273194092147668068308246556177550898048864452114208634703963609429841926700638357351691857264815198523069641056337452833477931232660954072459099351296156435195256896172496769568079944443720595660083297425440334283941768649682541634116121064527868838289014685565196769515039648967526220712671059535227360534218771904034627610849140583086725081921779733693601246723254348695744755065903348978452983604625278393284534255919810918894484769133943353272986435493884048411341252333980978781776167709709021467962166737800368575856079942444180468746894199398553241842227484183423384401340615353902123514864469719521340757357824729669412145737377962283952908634535203492139140564141366160980372420944105293807621041679999366192866753743609502475619583349260389484391154746316069024375524247519468405654195139565455754203505831053364022624347954537041615549031472697987746730594102098168758044296102790123001564615054949594012955633906471466434716213458216737863730380865009907691430653990249058398255406136161286194503312953402753757664939770118335187004806678011089494470839803169793303666874552779487144533183224206009750137335433187726031835064959249725385203803173035895064210382387372632498328778534571993707419097675997697920692800394601482626891471196625893681769264920336357297880947352455407977861224246940478443063170776179441171920803934786088431361480946968098687989327067505404176590497977891309904821364564938505435865629362305017079404696790451675261848823260798079367753454448564405019057834377089511158999303410710783865201413810561536779110137778987626952985285721220979907418102543564611241362779442890866696474426993902621421366260461220439975485638683655143141080983904595333409691584379144960198292569083911552698790282319087074527555927685864095737343735840786808547399415906730084097744568126714127141485680980271383108207588073232825594552350885767745250729722510632660227585109125735358947236325213720092106507659688631267204028210865271750336127808307609475666761447886339226686820476326991071802566257374054569047523303643962503041522216950131241938846763566389817611013218938379714586840865200557513254408739356648358642867995568742170945896429839400865431617403203165114506499543305306292732471407064995309698231926239573385479641215042924214667916502358967338046030578553354086277182250712327536596405777026076511649013350202548686667334950782165046175330751751920817213081473524356577291897108736589840455253835452500591135422989974217824841171172626127958947690815485883200871581095372263319043827337390030206759021808371499609047722131846325271934069852357278114280731111115178043441785852720357079408912448813003865630069882740944771182025842966148085403700797215644248990533988794131232155341316905728458718260084763913053425898472434119185956239831717603758252459371618171202430493541054275689320610935949341073632684992752778425332470324353722248209558281047610788561000131063342374378767180542737454196245916187929593328468756566732557927880898613980862413497708159026413600026773413942864234200406570761665896703862974626865959885136369415597460153571880616558188459703784138211429647075425661903511927866936606657860824534310529189681447190278964548552483792190433365763343984707929208363764432225144352008768115169624935756637994288442643629578006132707225414186314510625553192847971867101831943043900607002035472033866520504828977403946421413809815908032088502077714023544272113108756506564902689300724751624988144416557483688092543790136775779695377896698695257148456419935845750838372981344811580452935904706254592283176260131546652055898957135827442693279273024733099135027496715576388549147719815949282214655155477777950727927405934991422481322033951091802767425004001272596830112420533967454623731704038355977981257702274618226599697825223188433872940688799293205304356601065099204601248334628241081792216100931548895354866751779974082205350581279429079907894683272995815471028170736199275325642034897097059171653285691364346943574406173316263899010420657225266185593389415637410113995856812531055310452768789802448937925583612280120927966137850160418761191327472916545342632471183100078206748390545835969697101464846884818084087166345122195557900479327015904566891887504939183141203098531187743882434179158177255956640653884288934748956849312585539628238562647574594371996978648217130988974178612827550454855771883221346996016942330204717700665037279103547187699364822018474315428084410308749651928189988449228476678151752897081667210165294696930087226966764708245663995908936052401596699636799483061666487259788271309965539371174257234313680301840017729936835936340093969145727537304877919261402481332068543342425357825139147218205430648033471203890836634151453082172581867186438352114535812552250295065986565809136773722031414725561151219443066069262925570904573011297026713925118848900474134135592762197958778332871481756528628433979168342446253658683258171757889253628920426737815028528192748534632598795128379960104233528206407394336046321408282381892261901829441884729505000874289544061161904014943873493918245885940996585857335660512791720330817680809964285944146368738849446577215494843123237951982426730889129005169530263417055132838015736575643143769042780961247744536371957557143079628394010042622764608379921664284157732159772191666971639377476397794440928901118144054843258813225528726219989525744507642773206105589011443602410659302689909287005237459480974162279910384366605469107979005910135495633057009287851485864807465057847253001346996410004125748580522873762802504423047157510305418902478292274982635403383075494695195273140254939612358433954225725514043927879037993894045384807337408909075904590708454923017247234217155044457648300151118165045129655635420574369240145701369603500315604199382264461478740139375894030462322249801393798542361084175972822021468645984959508355408095255508484060061233490259251238119227701753736968065109536234462769856795252139870966072622772086902478544913947393734455317060997813372791763178395810479251263532099582453933050785229543713019214940711217312529606587559595454801006200677055179851199059332773435245131335264853833998443313165678585816067995987798247015715252072215496542080563579234063020510968720308824932383704090165921808760906119667889535413734339485407887160890421919863212768508169170973119116233414809204141059136005335254999088311395068171180260682595856268728392505271287097654432850934557292819527210805430753596237784367991450447004024906648192598488211715602272160530840242217707641392405909230317238977119356779896909691702824946780036664912049764241478706499009569193668379259440084495128886958437635450750539114286657798461657669021538754595469538495432776219459086054498581742176784027735448036677113206287453768762993840127739541848259604184775713736367589318054200353256714490461390411197109385204260787270613144694045020943644272657114759691499397478010015628605712418221068959088653903411912762061608873575261263284755132081136521539448251131588874925686952462635011030623469073185841509578932071478816981662012181170448932362415107373683492642371057927992868209777078304772585993948147840887359188048419604530548505648750057482879594624339771242694668716588446138285784752072286409401131549023967402316506033754849803294925347790575646259931993510527673608161825101592125162973638225502314628455601738847085486114237472336968788801480060773265390950915493766906392112439406956755604519198185201684290256211628124277704479370911650883627430013728046569261588295775195946668247352477397838412199823644993232878179329455270237905370633375622133414519933579387890313089432227820463260421851708397696163786881091835422871715286123685523191673967488961611370153378068627440105002013185796598476961265355397204617028975313489786193934829861696217151075154639149287881682755593632269729448466205540720976083600253257494597998695645122663122672494142396370432761956593742348823293944490155965985020918756120090772820382475772060401386113145851915446407872487579952017510443851981973130406939359904700642304476673360581990627768533393933283712570701811431584663481678773625505206429029755401055425766609642131531852673562015388429427447382034237386500756428232853484151532334771156915089860262705925642110809353437423434923888901408403451281035440446329743315665836110807227224749061785866609209720557792636360017245519983279582960691560780947326803280383534366010801634939307526576157526344230108131718835815433692962108069572147517160713270826519212037635896711732639766122691747161124195499791231084315984901701262524650986253717000572779037819580537943570874754728115818813871484040746138093700040737963052823923918902905246687546019383814677071015362441586604046457528538063741349997265967837460977290822428170349201039604477423919906253324278816959105553036093087962000399212525024977691815457127679364058470568058587628672227465321106691972803918035840491211882190700355518418764840169153280536838382042271743524080787158006183884126377815643790020054222621122881731433105458073544517220961944112484823562851721687723483011057275241368689113353156959764112592509642078685941353614788536226756002333647819866423887310775919315061860508191038137746405343976786171819924592118216281363856548292364248075577780137901759523303681106790843748426190370451458658856127646981168994805901987926153754807166169316434763477478486719397035982581923550616123991930451009121539747012636069253262957362947883771295261885880844462915995389664523245885793141267000459178073057046034437843899498962523885394656482440828830705432120692720739409866179723247647874418033931068428241098683464443338053133073817956103633289626845730351577075568061481896618827795802574549497709070235087915859314115460127508736177879743908746771001345519608274671995305576606098144522298570459940029579421514035079647139118863697759612993499955965218243835353693510177728909666521252742919163360017449471218801264677211815891305532879066007376597085882938345042346281474481540181663838532574205449697586722123073343462044148475808116858506122439991433319008885190441856645903901374333963463759203265703761945166090074692013121611230008346810339845706692006549673716375143429343970283024191677903449158744879140749386292786499342642617765048573938923483908627543897063849550904361986285529226389852176769989293008255919493160149854120300069943124251541540782217395392715917290052225430748790922407654806235113271130215103629067360151156296764788289501387636710846267169154788951481686476256974406791204920511588235916342897657667103307813423335053755454106957488407907386072308246190349006603090342357351926771655285864903501456947136346867137622368710171364446683818816896650330616046508897744340151101142948674565827586915347210252954639916172588551084531210450053558943961082877755123569364411526666632341488147779593771832941748743295234206250509137440289429994589378242186388652168337823420323421955597698168637090079220886098256127047216958852423752896739316925831333260510407616113814834048328338712546193260028049399261822958108411326559757739281856039449162530472024355565654995788666918423019014694634740386636359602624105216123291493684356166770329463915860777362331806072816130635150576555998763292916783918752526576913233988073037761663347509386560557514503672707277611464413855715641310460790863236020511405545932971163302260072214373754663576947018813533986836315954909045805520390180315444071336226411854420565787958388819547672883523913601168300422095689122393665527073162287764173656067864125122895753985582447193057701426627671767816267869533003805089088746189645620596948092091220461939511115250319751024538293187488556045100858074411991308966541997223462962069008101579771298498268666734857760710630802834721416649257869791020489594256115610964628932839474025645089960930099425391278698295158996650232946159252877784483171867975187849913772003743183456474263057353425637024061288300160660988147575451186492563489352109514204321228060061621036012654759433461847365724763963685216731490929870813762493222749537114765942679589847707007227871123917570669513649974920870044518444001932961058814632723089876349194058879460049929755775810042325907998838409743983819415969079580250690845392760847418593594753466605972163153945604942075214854307734796207913710912593611785366768821345448644149223496206036344200877124734140918043125646912873060120237561210865570332260100585152662482997012818027885658292868566951319551357122389714951958403969360709750533534378107632151230258673743337907323025803640187026865044608351708822235429433924188925864859339674192627560600530562463588017302175552119446738161191140764710380671815743395685612858917506747958261431373888954876891290480920016602540714619075247748038651414926764230331361663950408504305320736582154333191911131826164076662543763785775580467520958451760226901720644930502921876986865706448630189965655593739677725789913667948822774147448705710121347964807716725396855648511734681566661465038275287937882940010495476351868703432413068621054766899177356036295526527019711847885375391982876698433103150711767282265410071226096114002998642193207192250849377335284392121651804766001363378711556731319979427169447745802865789306375899900769307806048905809153260051335807809831664388712307873696615066479425110433173007718406673597061055024851414506283658100626767618217561852695698436849794834414780785545332314884108927065556700116784282947029604231276647040135472807062950366946162782482561542079139249285725147104137093080340208232357516101858088698420870364984629274015060343625657261847918492054718618784888357692689649275636141249028156339888135648642992644724325037953605794448708888871399024360578055801479265362737676244374951423402661604010420448626063900929740902004642760889705797097061818195568989310612538967217547953497222202512828089059066592698150668910696824591552104063736685684959251253743301870197852617154092941448814361390733917413129925628168418910948747507491291845376708728397343677499432341222448738255169815593305833386147850014192027571398368558559946305774248409131400156536604388278210195407115645572299006079862139115314105505418294902471646483210530315451044857179546614174212548459598457278837347606651646481901355177665987101162001772899778434436993828509769226764057810760198248371057428565615037670897202893963073862569735127314252016006803288503433148498064057190309326784540641300942126175010825990961465091119994815972523526774426396380418788823369938657835435108603265489819415591977524210226579072793840596319708314454278326264375151779906390399109717206698296638410778419849553204528173323524803068671414310916937833041262442180397596925325848910298129927530489400888890493734270592998397328473743393547853262283509115879886742987546962904040954961166485750420820948059905193629946344994521626018919963376461832397656989871109592757460202170759848741690454594164373491369106321871839438820466251665626857029541608341983348501961903701595784707153635672416687368114893526570949860839122795659204895744226921826368400035334152475285007759120263971794211684777621486650190040345281598706213574097608440906747239599367081832502161250018941370076831324995349721988930073648139522727974702422096181907169297964733947259900070183793446523132207950316253397774308059036181271753933596946072138191023163023503606640853676627923739815826650574317698299430871603382448695276964398785076857930903359482158033388840450371114756021673194053661295581295947391754908943408324759543749086028404397534851311008055647116132627408404776334115301770028642856470346895447966299571818805341187928888211897957292248327659207531567401504826117349632614833473541204143934290056832256898027659112440305267699150164962275132188572165955882499196401277976126542685782407327115299200714256718981140076294523642258307673392930725727128356896328185349640232451343818509781406425101133130759852386826022962065697141829681746338591190663501192264617830765334182872162316980592963723487343007765241720900163157185722117093545486905469341959262585089667626903332779919186233235323118605480597577362617204867951576965856053814569539280011134564545868074522305080882052329429363663395805189500612577839524106981532807482083673188616978659535793480391586808714815471021549294930658554850192705993320640889526677500102557457312194977275436299229556914107231548711837770160022654944838632245452941666534664486844166134957023081221850721728502137194052223949509268729486042428350473779483570267860946759719541117257412691073240176004215646442342185728857034433973066855540352130721344827042573082380041706483417826290638116004526034812962205756201422986647374795020427656587220332109451633546025053895433795440977777850238850193178288360646219648104122555165194950163791637202074488426871301373888859441190294655784247006028492088413075153696323001223960645711565112269697321703619469780786822711376843593467772661974494045013455464539618182300639589548835814538463591509786567944391352263539841221041675199341581417995609986300559629113217508338062845129108246728207324098411258236272118844574018289957428166740604920573802324570759238934857931017907043820360464282037525001472029427426674945732626402269664227392498300394465857292443930848656681227699152802162724091666049710148899469156972761014163884393522956936178690462329451525927311022260274432105536294443973407288732898400110055969434460568006853417763043930541471174769653692441573435090367162337224556606771713342177084845375771396756429333333218267854792783648563409552836241652761143384470189875439914476455569227973394459932045219850547220714760708541627535540281187727477657597827937815192448026823263541652240232518774159341889835056631022605925270229490490187119033427504144002293247202608835113396764580438335762159808024244449024843257098994468871695720798933336080599555134225742850182456714564462284700039687788354869354270029000244028863064790219497270513874931178526298051961135887553874949247387970261169415527575400169224421114456030621782929890145871280398072614125634216567204422576171000333118214720551581999985458337373983648650734006432084721291091932374648928243870142856812138531130372384336629402291716064123273444519796421668099113871165759118610313383109407985915574604003134504801820992153608218694242163858337523837853601973705313743867504734529672936227225571844632150583343258343362434835514410424486414175591193485563627648465529963613433682345510730461673095272839510422980415595425071639221414422715539454705729865030536351051784190370891940797501716160367884643597010959189284933685450972078507198698136534163184753629153122267908903292293535077493543480181432630832315238546795179527467128409826793198417722906544304525946527442067427083769251153136988023744656143281557104091937637083267106584427251222379625779654673066401358052803855123488001125446258193359194091216919972301969963412709274066145614477787128546645539900094476294830872727256169462293437176786766444646389047608629942084588280923169813505705097267542574539566550888560225274465871723291197057126396473168811430316728950412278582021640702518950293177102010264212990968307690476823767980343352581784592089155265254655672608387526900282663005829931727678229243405163505245359957769312365978453989361570471268008890098139143759968134514386377353727777814623298805360959094148183112445451629346655289537199273692637268413914422877736163978913407426454483185052879461317244813630002951044221403246346740669421386039219403058912661006931591058541705829516943927189011085980665404676579795296782606278601035304710856309685809992591643687711905531389637881553233665766394081467352920567217215429904887138563726797758746705673559599363400154197720691296810776050807795551422674816466881707357235691804433836894355118960838868047196635593762327019557651571077803138139329727042562559572275630946476763461968361420199977740815709255497312663467184208931962595841851500570126504464685601750204453764661531382279921678417213322908640943153315884241632965858760413236123285355312541490114965667120435752864046679591774349015675144553712884016197427418073256776321389667903055447292049524535487481972673234497514331753601348036566799100381602695955397668196588303199578995996552349860539236547901581289607536638648452309830961430495384581216540076754683736070750141198423403630222140711382908577753731260770704598985956999052999901242101356541723208423832620549370664829945610760357005421427486959111939199295647967971480033551800755841030748462854774596880760109846357371440543242760375019193813127320690714216934095082878246612958171128885749671516202394733683381595926585977775097575123350329249983044507560497692703643465568669399262089411658167274478515691076979926632052304873978350625509014114608031299949812261602532295319677111031557605157208407394825724439004231356641293952655173627891232849277058011470338361747322493964963186477014006520894891409605686976159639424034715609829480253315282747873750814783675813716302159862811719427878364606866560274483557189176287062981888837817556949842103505280388329962839511921066069481660483402985801611243323656923407819893171212356223249685302678599563035629886608669991537916222378774437260113354285297779541395673958233172760663132174939521286225205188942384135162392640714656308535987987982379349480056490055804497541956842039778781136412648220805225077022958081417474255038840381700104480776255827083781668745511219586770969082765222161251953738808349847727198582099923586678327160366309955483599315215160972092079996967430355091767657233142014582914740833467872286535079451006148797446622479024436054670262575499581308847791147840770284854668383848747885353805949331329219992468973191535889656435242987689300703858842563516867796339258751234892277705441681547216286933016370405886146020186156778967690294881778117533854984043883733783516927132706180961427217793254922758188869702253295144345688086172563548681266033407536157213580344716014933927420015607966615253969999371776168717501656736549045368241623818515437470553284398020783050476365996110055859461159471885217347046358213066175562916125768997021509089349415884491257770959502252913161672240295482717678479307976827472191189375429754290751730320101476615886497707713296181070430350846221301871699413951287462689234561014081266975803854513470086941882474145819166741408335284002286557909066923600465741731269462228742444684356602474329399926172137214662030932425021971133369311164694496707251964348566182966163832629011376419362286214412102468681664572363095807497521208657580345271963691500818110734560097386962780244633035821542028878565571561688181730500897479186431299602922639926400547944568027044719175311836227531335338892419904428425256116771317781464213038099049137894619027592500212431869984328411666523646981948637237292174066758852882238593059980349044689476742063987849086638749426505084870559765100545892378607026181841191533078777439547599126616251010656490725768221661672937943474122477019417272316900595308430816639663146378340434962708071023169073164598514408644842576780401573489020604599623790578860572295561397439029272089400050243736655643395647472197940393766697767818591866420985670092835399579585575324684985605935897169957735057961782676050657544912443002916695830988416850722381840924642393378266074465990590235577851838774153437249180726696780294078846736186554380748592581984675609426667813491144479368195431657140029973664934743792932901891673386754401491363824058040968233169944705867996991006424104585778587593168616956501551475256885729692217642949462118046561751272476711762261561699510678442610230443373873805785297746986576137286606315052072365055801395296197932355214633207074482860408483789430359842679069759806372606003275740858240073046550680919834831409795940541614962745439706904660017345324231107560247814484425310763484089453671155142821497311051195863347096332372427905564363584476837321881029220236859894741445752286195297303727727612104855660565941600184000504871390637537970378630375256925914871058122389110657044065028062569284706230211431508598117153677692884275068030261023736173972293610774662988863592324344419791342096235804594034922525739388771810514712290252399420900252515096945970025438991621713589285499968504298277669199650935796253694367151935473069346976101658436480549930431913971235247815761169082450233235151565096562160419887308806325725709608606057462051542145938977765877764265604847091588696874839974446626437757328915473059128610087225369794231277605796735479041957440196243019117208379541590248622981550904184415224577805367286898684750832339030192254826318752123031430422457220593797370776713319568293706272752153033636694531103471661498522060438691197717116713952451524022316751771969730909452616454035720678103098499053962168274758119832995923027770926217102328679736003344772911337648821815595177197713386896474467156191884520996996575409523311763555005872751820967913678838399086989244632460213229673194746212081760638789487514014294546900143770377737828322207445738438326666595833198850780054334731713057464971376448760965885373605752123115194320671736054482668968881972416981674465628016425481388735104133940474836310566576226082262363279750474067869896109358679959259995691748686409785358853634214513099743549516551670497869831818520097598002524689856092800628721608238837056874267013145269517989826127343464378206281270655244071282533762847081023578416765155344152922095625051632074018784604007704492047009378761485264136763969471059697219116262320292675812973273455716788814717734275767793438041937135094397307166622422215062473868075003475766921528936813689460098263515500798518191498677781144157520574432885139634859097758807480039863052128513616598063485758213081734609640529365996390187069864692938900506690339636141897564379025603140001961181080298580715532172793465216621675672651960526468956577990605605327696378856556168102196879088519771662368178766596941081213125125731048100054209220535894494024911641743136576913461966062747586110180992573613363239053401578646077298318953511326064019813022354758902472999611474280426831030817505908372521196953479001073861163109205892040142285067020798067424564378696316495921447935359279128171711214877584428782253849206169218475284437928628920837496287391217340964686714299597204811860146916286954387393798256083876110463475149025247070651468844606693377591546079027574921726619399804861427393824482985098180979185450155906819778660092149434525831642408497736738400478710396871567768021005563145576501618386683640795252601876876120125492303029725670867323344459721385154550870138963792753252781887186380896598346758695185403967850177646531545518284877459854111012541315297030250075415878011569870448408503541022768773418044398222622931892150124082470339953784612733652071883818239478590289629037536820746193473767034698697973955823019251076668034534867435312491801858509411767374981056494874937592182760907414294445302472306608789192343132852842489538146417177917818921998394161997274504289350032806691413753685778015827597705793054380331794921466621949260084944871354488198174191969626462130646929204439451801854229207482205261437839872889255837302935187168312572557593245244098891820553677028974002930833496365488429438611907661833569973965717795240194836047190177664232109697621678765292560182494603238145188569910639049053494097782871430102660790181863964503389717497814051943709779851954298403880203299016549065320242736248529618940053908303110777344635850446793543555499602728351562900669487744571830329898149980266147633103131540077954551533564295057879143553976836230645528292295093422893131211252045055850893268855711020878471484027033938624732475556201857684705109296784825208778460753123808531373166093583421282342046139002932243599100667526250168153957153392023862470109111305543650536150451950994736076288974515411666904962350616752939528817499542847043228594733978142065064999840840183790602584006526136003722295900537604065900768284704311127249910714581137524519076023371693779891109988411880395915330083951780070713303402712465764103845980633138020985336485186988389386978433465693708653539372705854564674543372712459351118778341129663196476746203231724318514150826672568226275085544372203326943373176896218161541328454755082566811270339925718095215127625384508202365101665017310453971837187299155880669518566881878608956717903433542674210749642816704820164385228496218253389652921604094357862381936283353627555665323912341812896640931372837589094042443670701106244876703115099301142777053107997160596750847996373938010407792744371412694713392166968299496745828337568304922948008202415004310766199861080220986375531329921819812306490845577542110302298530052358910891748346822805030140475370320019727885473164714123512091834810728775059953506316356575438685976652250137542017379243257259453275130666115071011155652853074246059284140500559176939010792547272163839410105694057255419356474315365877407945280918902020948580331095810776876448615152335427430672164124565653298932496154538299687283094034999748392827427514273549195210343600114230103844750730831608921220579766144040385385536116721566135732238434363205062098923731685721776842316445594046026801621651496414188462688320932715854309681171759206700678660717462087679467227563904085920951690684052597570578879793091684252210272807200568586480777285967689204061061323237000236540178295909739602317761797401973511404069491220752695781168912431978595434424462737294727688171880236949596381210586496866587114115265811154968180796403583034119566504206110434719266140377515248524668377914694335908320351527359750196008952647821417438961739978205876403460454800210397442585718564473355480185484602470688822250112331363321932555524074481992690888955186481812073813948802567570699848562178274599148908225035237130712772502335169110660696694139356476504244811208851306829933810417721937838756600106803334898248327672845054015634048619799506672539210221581091228955734464660984241191943848717453961302814260710357743760523693278935854512493840438983447935235662015912485012394704588350744856798376097009350338396606102121343737419452301336468931054678066603394310307914316116682458975761809872790975936400147589574324060321761407636399183297449614947580493240750450926921202163760969480522081341233575887878455067806621721047603404710094348553071236120873121437313523121114596220850143855823249819641883930327670501038663993001979644327051219395150925661651437553503730500921812361879979401242002259070356950801984610325684197822533188456221443931129547015575475355762572990571325003755976113030109236058054333171457376757408225101232787573221039728317191081125756160086097290836266841935502433605006494526534507007433562995379050350822145351231557931344205795123852946810525195225467377141227803945803730890636406742474997756935050684150459350626939693253136137292006000689270855663209556208493691022446485322939697391247478220179267120671569637974014572594849825108979550421879391305738679076279384148330463213618366334967438423687807777958487339870501777845738659251783651624049672864293291746929966759927384917213277878844622114834166793292340898903380300331297949268116909239133454517141142985489722580793221209722907236825220272621454324471422935632150119552675560640802152558869740000828840254854563594717290865683808994959068906027807059401641645833048076478032612502472026555606118691564494719371696364137793155258790200936533826809681841743760073087575173427178923072547630262053213625265582965217636836852831010682557910376278796999715640875196862690591087600605151952214674613336233616459743759870594942475054312029747954164403009951337658744033371442409988582898344484455604393043364879977512852365145111441049783363454606491105153977370399223092325070536310973817218361712025074612349902946207477325861986751193981489775500234322579265050622605732078859529041292934602118790922919917540795469168377830345965715255144047284110167160342975135514439845564683192636039678781599727613338799475086973766115758623715619503939187516720506709250873603312969467108915586350713218680928587044871700506246125561983568521014178555660111792418427238659505533014703944367666118675967049855779718980337885030065370454762800905814814193832987904762699543951661494814894182727970409931547757735517479561637538819486756233727614937954787464948892696733070368478392767476770117060842288409115145812394602264691729908702070845235007431365913722305508106154979305376836593642778705798969101136755915807772646894118027745842850055261430045592475999604116560438328304933620180706035961861444043377438795991343978386681291721991404359259603071219242526005255075327567210881322296703548430800362055231583068317921940636551218139976909882394239826775625937602162093164867661750734306487411092423022069471606786390306580627316278958432375692083829607949103951089133326351699408900501352447269845095142084501703228425672162477776362345864519461957128702625504814684228230686252968900689472553286173552829898991251784367615507616994998033564391977913378681734368336454761520953471097982530050010597984785888141258422551159972170144516663711346392615934849665577249608130437876583142841786957451092175217987957200456071787415458592164377359994039786953730464137782329029669928793650285626543457844104454969653469050324887006061333316678562216994192881281664199741466655685525087781907871916069222402468317964654048484150045925505772050021466357483163856960472675101960761496185115629769690479955242863169648965739539346355510832335865576409749377993021321106260103292704232271272296429191545665807137815154387452744877150862871185729590639745145135259591025388133089857220904395459330952762740481875395982597132095828852561203017103026273395947206937540022596657794664492918681232573939840775986745775262142527844101644528642715189920935973327131356145800682074852151189731229473001995665243555320875571012343991792835959747923339316885240214678836804489090932443495943568158109127426040894175898461159236602977781840251921464780080849707540656230896902554385099667002712337907699879435260689541921434585450102297265768263133480072273415183978536205154678457671886958621994152322812944637493835475697683724098602465461591632723577756323417566347419026178982295748805977813273315954537742173207705670791096765156286971876616425474411583964899901683868856076542293491368782983200173243161282331497573613284031565179630090353921639862476854735970456310026101687296238590329148409383771970177278827759449478295570830587904702583012581505214755105863906179474467056649821597295409137378442584085902380399170863656511143919650487856609187200680201818470317561822795017729163991962855336491359890139210610242929905208158463066291383962249330721553762229581185197395969321463788986749019324621188157636584832109592517056598830064686608122414255581525986039385762466568272809492212900709907319976767193180136974370869955159028577639769617838332046916730775265617957734584577974786514608418083357414948250251358847398840319525804483921348689609037268080638762405295143562515648354000250104165355341947255370935461743996256920159127509294421946447296243034429545233731377106336228658734667706913718816950430289848941744255516076974446177689700808303161703476739114582385370272447345729035542312465104536777211619820554043142831239948798464226309308218239906104894810516761493519579331648586496039676499126276554590015480021891269483888265526642188772769545524277468477969519246245541311880989849156540675313235309069212241447881731051404371852443153959213992210548888146282439228819482153534386130869766841277533367944206028932497716381113347021621437269692813259576769782931329417984626262912857878884556873334212372192603547671974468293451255851525088126088059057606621646424466708881420642994970035230207956139535055984358686786276054244457827397457781395540695068717403906738552607546055713495963420835329917957108536619787425461839748041397568921865524528828257816039564329967200974490113876327831475474190475680295544202155437683521000063087560474986827102183142708760008718468091349415891371201940509799927591335246993545229370594357760898543939311715609683257979340330278390889404047300700297782221165253319128429056524243270400016328224932338803535145415325257377540197278926295492129471972133123356703707447993520201248656663912533833201092036980739109990121486784633502331108434053198765759036495944162788964912193903120556274360461972400177090137027056232641528713299927567509655719404996070077148204432075228635770987064070505110594328987900870792667904383249237363933950089728218530034998434516054412581106812575240294434619684797541430413946184063635701581811406695770671270507659890167284796075902046852324305747475337594559699054339494982503923231944257819597203923550666313171411684821414485953083376237038996450671686647437748829871628641637873438910704155205808549339677125411263731129999871156738663373428702945860812095009288122218220626139107878572204126317636281553005972849510324260695724879106493250641930468558344329979693443216324502657788940025631391020410640687873804834812435125918596812908833280985949154890816005629262152753130701981549270100581118222247590671397919150259551262980326232175822944066284799355910302504580617769865358492606818169531099899243033528285762610918858568541080614412482898020938554296567643000298321403293166831584926003827216193647459549935902759391432205046566217100452386674409347387214248035048715536719617214383079252992234186028123402547089952967429133549175462745356465289577450942462866326839388140576760830964506131754133557912622868915398259770042426030734253808939464002354087184008239083000850182596714615046437069416521965131213248814356536990518479460129751259238124263780591497252175590104837828642084352099054060417503995489004708282631435124571212569726592077153153475933945936277831471815101146681379394793443535135524761582100018846031367499602014419142084539626655350599838648119345377340491929072069842359838179579353207679250766081238694138100978749950631621299652806390630481311275334590649947902314074748052635744291733768127615212977922641090924587824176158767215847938631345171689946967858117947963354633158933488173958753632717896383053837562575290744992953058623749580092688675080181005040384094232496259544950889240931298552746271175190262011692147206331428831948664438274890107419322379445642208863359813760519675103359898380657239543498013578628600150471344894996066131061847060400716653269216611340781032982575844535655189781144904227148055126258387337086938453363270626689955825473324218588207172030439765137971479887294528033547629050735111431786282124793195542296105121135451988147640763213023724930379479039664974569947953819225175420432911040177457404437658064751090223498401250550569413668469604959254741207806340020491124342057319207894204505671317879306960966707395923228814697513435867775759693624113334081269096451237970527166279870626684892877405406781270896461182172190964312922240422199429969088525146746750768787592588655669835534508201360262645698204760329501914455122703580339486182546299229590540146482131343135522554087050363169216898737777501600683851478886861774312401256881079544321909725940605570578457729415562894180523420899916855971812121797837755090106616899070932593951129408812053867753849945542046912588637094832203898937887675183663555148344285579691681843495078316997278435850002383114082957018429494256225579517202218921783564925354711788107571825547126324435157156738583567491450967800642320812220128047381224936887907886588671662030270505896871628179618200712743777491828162586245025795676982826369345756643317518600405164781988327943191364704225237282884718808848074142493633343527331293394299214972767625679050536506846413564905711453013133312315671818972211369145473549680662798653323433483472828076058907247350961246505903567010440429279182725191607795503888124067935133106324588860882549599237322111366947486994403694491529500598387592661840956510464099913015330293332519805307604222794162355732189326610351211086576573984418209910169377112836781193391254997939012311355305177839452011810304460154248667691990288822254104118649892279083917955880389705970021412349100573946066737455414964043283383705478456993699206061481080140216833262427966870033278687983797572891163522507942750954980601700448985008629355880947977463011529135676833627111365555101273688287039127677145428374672018606043859593826444380340668443486098702425417399973370966360172429219616244469834148258458740385847895773102489847859873065868242532727008652239125792286710543870745798027373125514276843406305787343963584733578551108128216804188181949522633794744022682223101219137476824722488594861645844743757904426069459205669519046115612166930339446247555897788661618637770993135450004360640484926465156776749199378577131817859166756560297233510400799044796682114334371643464681431537226979647416012884980043264726155970906981368259514536035278002457887000920261839373970609998952447071819050806714841880829492623280115855134351786540470515884085484129197814369970066009925826700160489602636003795713779385217491689471750191476997650619393084530711653149132790435108228294599940333701579141505875087055566158519159723608905459714825529290191265291857282443207161549989139121888616653161095295070126544738838435868156144151722723109388942733226448240285070657918027281923199428964223229800297132220249941960415632366345163233222176604894867551868696956904966396098444013216517410589950758690161055130105308351887755359210214462533809582600873791470695924822507983523755842660004022267572434027239722600267269741609527836633576639392814015652398570182055360179916441929179788496698370517926678695437172451012181552433488457167597572124063879731392144882438732176729344705610404563182642877028756078930552892721550654805391012891253125589199151005334730200276725527535962322468955286648356897020703667141239164965850131230861328394941960698411445532326981024629711194547438360676131368011102432752745469780851573961632801250741638205764824151405571814924964998403238622345934318501759106623008988899453044876108377450093924282999654310302868992048740419076833565476497472331441637158432432466535486417090935841044398801346427590737747459151016710524738006463336167893775465336204676224605949551768515493077407864385416473253132601165077870885692870368348633250610705006278990807678717374455531087184438279701116996236784900327656182797778749175501415114557996556042135534660034759331111348818334241768841223056506753796432266853304431876875933223269286013100049917339880467156370286447114913839805690442148927473533696057958844389203986963398462398365890010892088949184254063539765859043356471847888799304592012198054548138642450049668120225419301647194123201003519602061072003800695784292862658999326163193872166679627899563153483954804702972533510426779116762055993040281854371777712582128477134170067337849993374929417723487733486630937196686445202324668504979972074825909243855616630332977349682938276800856528401076118725685978522900003044783725672294870714974717988319854869857825107380233527750100224315718560053413131012007585296050110399684323755551152845058380161349000992574434662044379928028197436047634456860444302091848339430493222489705700057341162921287883167445679940338640786128641672266028820818619655155384372977624482433697576908606030800010130117595031497050897922364956916572001761609297164327229097156149539941453605372314415348218254333674925484666216507537956617155079567023214797923412851000694066852350998722098389062662560525954733898928477526476183185938583932968034174753919892633875384358077201015031624749774042624015389414403288963434372532259555310509095088626330805621827746793567451379587821967870742532176714365737861121939836481967336777916811532846749828445291636912089296822239685848993485913969514399583766077806749739308363935818273627704613198105934856364438931735113269939032666090524854418344024350530161130365252732740390014035864130213462091638338449636825757099768680523919173920997431535903202616279823225557766216206422287676937716747280533412469418964152889495000944362940184486174073719433280557203210330934311137266818498505314376064575642527472970687275669511423844956224339686548409641726349329004579677740472242957225424537950490819316277904184765322139227329892356952783371155220320473760818211943183416778844315503445045237824688912287874497691972729986596645988067945276084889463790672407366835770746584474363205000531102642172794533330608411625997284253620199482472427946314817341355392004095779096490252426791511681155254741702191242497052255949162697420220045402128070620462518368178731902787705816979113204860618077978269346991368150181528610917444377503293794790264608198424361580080801645929422178871412684982969462542864409728400739062926769574159404794792678782643032336066248242589061864568483758883828541332216200689229540459886355030901223674346105322146080415871854110811931121784403853135009773416042570834809800287267346475860940187525872587784966141621606106650891378122144349797576488771783960470039291253876779713114763467111491396028268463416313661507584015949875971873665013899444412309886444326835685184409120450789321426761795338716275742746326594382146637970076492255320461086320311386765155527154731573286211896279647733345050282792063940863596029486895161767939435270871088095272000082587675852641165801434867326897176711155038747269120984920866216047959920601169583473872954223977488006671279710727067601271776106165502641968625324502502669618927425817891860498694622957787762993766790158326274326165154972276355852238862398671834802946836190918727763769983369888930313210380896628490912720900153172260530353860347884474714227545023167202067036178273387652859465267939329172293415810316647573285027298522813363743787439437085105751595049223078691910829689664838721615614035036956659237994125301205416732275547339933970489835570885213947519367626541824196870005472663927346665996996280358569796016793120181750046745016981881199696456471994242508193282621138997224537144852776180222722783380826968968190117597786913816378410437480330403524855846121293137075143342789021629333658234643247818032715086711045464287999783475627953495279541449825197501442629562795247944098490057245732948198128885971978400918095027409002227325744507724726373498797038745131186904813163005445070899294704332263407151085620285072124035045056621574966137833857885539872705826233108719339581749000257268970555203909339124441765056003349012473571341148582978481827817147188934323936588283052410357342969188497441502901203768584030856182446307470797257863462345562865205774938780716421446602319335546813973809629053222819701274081986565303298885891546151356048535776912834130316785839588662249714939380248493220889216533325516688967693974891021021104385837392031801099982549278657426199655984002217109551595948498007341939617176102103264812537907840992586670261188681296037095257503321935211736892201834662349023179068197294330357184426428643948224452028517517733257220643320446042383003084626340083569107111542769606007634517944997893803446832231678195123423284323530252431797931130259295830117771828468756562335301907716714686592850676690209149235353008996049058727195399093713875298798002528057126013422953992568056364140608061397817881059799791102455842467621843841583644318217803702317923492483513141954817075672930656867108856573660566610546476622567472189596561382359942848872647521079972975240670690905677572205101462312482262874554506461070971995764707648593348999576553222271529944188312144916179913130194204295481331539458114932566261337158554945179592042860143159649885007747406489334428812214772821092517729337019729882360995653002770584615028792342633221054596628796607552892870766065077864378503763740803443338657187217794255180288188125261966751375104274362595327554814857434498597866443454826399822061549637088171117393690377746889988842310055998138834817192814625726921522743195152170644146729777865625579884403951731467633006000545988781777927917389689734723636960884529495717653584488707323703880720698412580586659296458295663164714026922417156092847066602679909151941251323656257243046211751369490805539304790019814310370664666175554483879447649696665660002034924540591576526524785482052211643631510039825550883146397527814264894727151046912057560146215217562946323050024441736156638677499149400405092197742784140553346084241659354887762537594610607059386365791305888972692575769990864817086166081616913961104520502435923868945956790360957120239719149836036584715977696494066700473750707965392112846785579041125450693820476403456621539871026600019771963670753273926698700183833367077620223399612792282026952118510705265852641953212797680062882746032084588923744894313260388628378140688504050410869121870645269851070687996480981080620278604346626674775374685766503014151005145624999809044341922366474054934146485942075622576241903852599297870978344911079725434599905209130561178040418111565044271162223070463556750449863381239083264928076150990663988284010447710665906886504700278197503857307646818261016543868528346790920890638172981574626548271590813021571792952327089304425660481988537874499896626860476274254928784873561562160901739302262729402874649465711681863941886863868454003286335367243170190511716349912731310016675040027083219734690073831236144548781692090736260306319053425008228645938545081427484824658230210359528795146062611869558010442957699171286310589849365668493306633801543407933329292133527492873500938096508745117771380312872559739891104929432033248662390554970255434727106981826360767095155828605719786997234002884870101568575667000204693005354074118734587888167893625913880620148275292151252633595068505690721388165623178731001236620262312709490585946071501816612463406272805593078023794802930195725517271653218325785570745134894827054839717031994640279154887091687973728719134263230907437264723260229271369383538715704118070658907060921874864683363312362469123342979269743889315188480947379753327916193358594694072443766187353566320899312088047573905695586616197352661109725557393197569787271614892950818954464926226697923204781027746514049119409384546191317166315908665075280372495687160719539531763335881827878748526459089978775562081238736925746911707564271126171605035796540346432520562197391305703471833527176783957709743322802705342892542438552694551134083664037494869669127590488222397879468439784717923732660386004007632129200119254113470914526819263277550286312194084733421769453523414026842050896918357951308880027787194334554241001405801311685192126830987063646197089135904309160147985802696638925736473997460204615059251086991553223642966456093884547563175290539874918874034714847451756979416565695248096320990122794779506362943575137127936493535276233962279920869470245909707070855467188489507438235272558749557324408115197732124749656764324308755343830547571445278761209273804162916439366754666602961782097678184392895954046513029141867700203534368203905051486953613030611295245963440075291767784419481560492506048682906709902761243756586358589819647457417774845585972683046828598003533147760410493384732182911905703256625527479176424617667396419923141692708838610581898724079692690418796532922911920567522599237356171531167068654517072220517839603044909936787774791793297644769751035242135630854197360219331026258198562577772586006243131097748013665789731897074744961658719490236923328568396810264396673250182937876014425249714049313442531698083873467121212480108381758823244099494045422813841395195925836426108726190544324575971670314880295773034687350076680397158073272608687374349588999621293120712427615103552977427678166471206542177116580394815858954024498307056711649856024630685028552335399307601677089830458901740304004549762748214080392642891806026549999820960593598646774949999082675426966117981347420222752674269076425801673996894222653199884495267410934095888428800210930472804903899235379635625862217347302566652125815495087477716663141542897061751829176203627414475345928757866854956165790492658383443644404986146930438356850628909141806484827089845463706647008394836061725312746212570083916206886833440079213916544374413961861919803833332211355907732851725984102503068273434403958789255161878260259877747439252605493845570782494082866478369706176435261562831007596384924623986660056036151718894180509603024424832226241541899143748540640666808776516452145059774806725461651761465196867808525703681686129263045458058699523223211431118133706439226177022097611060455754025904518921892074492906125750542175929983869756088392718850442850402170388897522227659068609542418384432746525860291992056922190202137268853221901796745550247792836542277661835753566226577803624460074690443052809623198142057529093776553912279886462390720746433549546804479272688905427477227346907515129705685386016763281145718731954350803660698283620822871482876286357662503967653139410277454952634416796360139819242164114925752285453107911809209339038782008010422966140123205500808122141172250727908134258263583912131246472137848391051305385966175082229958233658360546761267877468699758768077193799777481144234589549356389740526215025102482497840455646817192747235026940599643587895278750260303626326805595314815313099137043630646014141919173581640887994454790460406813738097388089297798104539870416548675429209913977820932075004181956285469744530603912209824198501576560988015458343217525913478434936982651364340040055712001537285727116286797705155402549852672997444534872076845518367397781708418481102011394633015018998067324819627358274712473009951342849468332337369157282329146368027327529488961240838570053267085018312111354151271394977127160422530229424312875982854624591994863257005421197102911799642564765914173513675598669362722187869486146077755971782777063518245385406729789113048795434020292613519982272458211199017685206112497664028094029004974159306835231865521835355540403357281859930885890006813257949975159401109712027374732377299595804195897513678993477549002895677866331514269474983680237334678673779435680046517428238685182811393012082948958333831719858804203431136893792273821602092783746964020719504102571492852947715549610569999979632910549467191425745373476188927302240307931997911962725595846422149436955338334384343389097650046912957445918767640284664247026391440297278205430929850439002032355652499218690578897945041340620079455391229975268162073342377294969719021513311936451672986211338747035948399977493074259975346363863383315320885130404957339881508580143597568013833691186358145346139716818542611849514037396611863958431832080837977665076740687082324529522671032258940943409071769329383647930797253848737257104389998308701950972532416262488741100541590952458636847651548603769668140366147801185665630994095458524084261021070847259496371419868824347691936015858491687464033383452882371039256170141665954589621322450679290979300277941124748772458713545058960893118424739238116486692562901516553797817483322669879137868969789233653883106947671404329184790454577768965135538575724860464243627316521737141505531619159269925746506541090747809302484452278455926843332018249651316299750938118745813327781167558955486842582163962108950829458612117918634361064256526035761675841814787185340343867497658370024108443523574950128171374987362791003135137089190016652820193153896170143396739365086437014715877870358185656345765332844007932747111019457790612896699748249592638224605950093277823553642574199569729024654155697764935255815457742374312602792772521487757256690431290648543029772898952440317567307038991347066247547673998855834299855842736484985295856847020734715059723634292126658396381188062059529916672036002044972107484803329564193119933718535593603253006927385500751782092892211153609038372758704363793404453868927215747556203426293683221599476530307104857439262060889182659354467915102275701566889265295229676498486888176154185648362929442848087672728482955776904466609104218450591322841174903262743383372284739382968573470493333153476931929710035729147037908153516963653171540590333682390496571470631644297217475347106984494574664236039392906456297873957221442561533922440701907842887168537528205599537770971938917710323355235811484882303182945172265696554620893736627964986403691962994393888126586108418128812603660932724093138762783354973578368606213714359940533766077093019825490577436101702766611368581513881563910880547446176520414058492559446831094715116551395638648773077553284716038265162440598760717275205690559929091955336199423865212447368295277094332621845234460233409174678738368531330472239398819051287866443271434257341904081308203028049401827922290804851286152059403564822247371708146801332612398169024323622532440315831432674779138087740988287561483192504323338421969116801486361068907404972617763577643745934523730041128224928312778026377997595828988471234475218240006373601279898174062362489216577237019362907041634521867584226135808379424027586206411661475002481574337293162946351142362882984237759529465220501966899870434594437211481955276173533208583049906596202319402587568610450168010505273673523889940962363152885635630435298023655571632533885769356673266808814698865377672003770640371260836891834341465817342022584422154827000106759055211518312295182494461836631139116386018365485782567226276043227507213716468109888039349335982422390967266445525176230699721728843147767986788167545199579998962155142330871436243289496741516535581162854346020138190391537487969215381257652203260801114358444719089464195760939536751314579393805776297977851480616788744752262460820682337532254215250629656410607663646784129838102139890827101567382259596950481941540833865386481643487552101995909904464812822439474154113055281176439929290262772487719134050042500835860877047572256779168788000330355357021183674419393357297030649591955380147991340564144783307869326277386139166617729860463082551209555888665595107344810987165195964477770897782446692632268223401168784092790349461635184047247401127597217811023809337487686940972240338423732879570523364219299564569404355574819867555555277385475254518541138288388720693535162033854549083282263974081802846527931100351986687480148494606252916947355239477915301905059172707082209175369372049442418653823331379677448829139690335158380189362888244829229170178766274890645741656766043520658845210332534901082364657161409133476231499589896348320665802968877163824514963060552853895467072704472329864233387531884270069209074052645549430251122375275945324560593431984527528778258021940058237421049073836979703439732359316835248384423390927385438173732573609090876878495533273361009230906730986345182779456265411584021838565104218523358897013959983700154649653801217526243699496762833776313485727117641457490856445956240984091469446594915320102660557954251007631360035387202349569999971303397675847470661636913614337055180371560088883555620035068464961603693563855535621314546078460698901980591436652801087291657094224639419474706638551419045653359417134383751205948972785543050498350351520552817479831929442865272902563200161885763972571313679544655123021254457141436138831748557001728009089331841972718051561889329166091997734342006885618163908681501427387243688553431205592595255379976264415850344637693163703162482348601074140978091770013231096436170121899922131410163536346223183075627575408766102973462816831719610288941705226772325554889938813456451070392455003022735485915371715830353770837783864038900920505163478183528567344144047861041500032287532501888160350932180095849096529317762394453005495959043111503799548507173861041930042699150573815948781110502936966108610026733516136269248659478278481472613593502654311161323660281899946238913340536566337222646822951506979708318395039817769183289161660324478367740711413049307383761794217026173994548364772901601858367450259789027507669453629730518211816493546376922652508247128515970947144431817155239287558169303884744373441936997893553252626257552329705348182621735049690742927645643732279421230732580665371310432898441461334391381553291038158688910639607103347419563360669330015414122541353163621403531143187396848585488105139902027801709064783474599950025294731962152887428549017517649025226869610674791254956687772161736061056774614213747892737000394564823761831720901540527442826926733468209233852408290224789024497183467525060613918908284900263993428973876056003695365430977587859419445075006451616363082885205576650279519449238153894322275284214061307425821181160743579313406330288005460019090504950752319027028298617985836152135061755849593651376105870515316849776176143119395746558563905878234209174441530453701907461239773100267188084568082179784724894710898981471885764580608054398865475806745897702092632234167265533386488182834251441631335389374515770132324433611517145994203441359889543594658824025490666353992072125733928314041529477809854047531816748025552005448726921174938997706838903424561696353662288540130317846891709166788502189520950342447000876606246691506454983297389611652457071517369242340133418267539113466952005956651854651012885023272580187283850445952172559841160977333060375017010276118122077554749785726340026414964141225259363430418855153362124445331251138910213821514000045218151406592448867077525986005900425036380012008417323102392353624713828883634606511783334343302535234814745608183849684747062241489641073261220146049240153066290317598135961057684906084667163085971848084451753073484392894760106367852515730867210520851727743513360793716441396309632392752272173023542888504959062488435872641647132219996391391075945668963076480547996000232332553203506942136388498752723373763615693755004396135126204208221418588471978520693489037439090342329177046658108631578693021799849521032033955986872988068482461793417429822018578984463556419811731527501791365698540811756438303577224349162921148014579934494591863355894401635209309238470885539184231504866053571916598950672452692571289154040549942992957490110928439098089955263756918284780046385868381706994629470653851421724702974435524874297292365622836895053724845262849533641327722418515318994031616428443721182291367969165672810096842106378623422621509782056488830417398492473616144452309530232580290582634234994204556803954434802985158735687325800003065208854817600005409407442168982949347352144155059031572037669933747594682201751654326065650389894698826720427088055706489721282174286418843983407908120904406979416929305249941861700651951421431214749737999292685129597485044754765269072226540137620148260819118791013251832714844064802135685707750780562835170953355910933616013611891789485969979008186749303748073307735752138978139498063965619181551456957718550119569726416716840487868980917079127130950582012907220854346685563707298753051834164939443890055956975420963569763255120429674290196011313764329616838495305077146952527796274896024554218159629226276931930038132969714947760852819027809986982241646657546713067426472973532483347583166382727521260206752955347086787724561892212229461695923181512998923073363144804329553526546495846648850079979330242863234820130282392314623100246075726301226083709846849979263980533212767562131322298780643458993528125941057052128898967275192330980123452160345934995270226431953360480691071242646198399872798878842182405609380489978468885645032669990015221217214512738038822093123478525716386402268173163789544877394710939953944074044741880578923229358039382991294745534289352150820983775576782403197457629944218138867786113793376449238284791783412907356458906335778221455241144432132791556442100749102720472772473995605637755336422685789695099918634483042665934343111525947228933851308688695456449951731938148677322161978586450338214415508370525729304274126369503042829011118186556391266803436599881251041960502711100061575005517698251361004451343013364792736903787167357386176669413859900571821552133390117563628340810672538401879411904460209982106914467395742559599865237402239874311693357372381582139061697867070474801968672322296967244513993202695805474430336918572884961930627725995108473887491653180461245833555803107240083132085823576577804168910225502752827974934846583331336047137766768600553816391570395400357292170448163704862831608637450123522037519012018236954697223702775826540814419760194549642513445178207635356298364642197318018448868261189245145282975975526637326158041211976229178262351948451030018805044761253185052395857174985177144848379761108065749121538413033247048838626637304354531204388927789527839346679620576010929443409660053038411600534303925466937305744624675313183622804495547312079794369591937276159890924172289132673868787146568490980505921251418400117834627868824506740563248845185677171528054273233250979115451799876916654500637922456779238873959603546156235749982143276470221751951027963627814663951936942396408534299586543664805450734579319713269105856568988654576306260727273356493554138329392983288334600880553063041109998463810755357534664962723649437052272071922983347240056491773151513848517439438749553972603796128267681186648735317879047388582794090904159784883192960324542471566911999658547818381844350541979002826429166352384120859015519823285543481102456986481394701270279431175094441537491320671147268967736445510798948165945483661498464416254814592273215336304058759376815851525034032731868873104655550752086226289659377772176194766618576546238375666093436945578682560726168675976676727166503394538974382121342733277110574625579863932745371427845431957739168042927765399610350303287978933003571296105596984463674677607969033966641924690131177394087804352491967171418875581779003851988921099570640457973820560651274404085145020387276807369035116979518617563341566890103628244991510752193387558588121868463880093371754049361983299262673938042066715505701705807853906268964484104651743719427549089136008369182296773854187202202317565129746547751591782218511323588461157405732537281065216834782035683802597400533433379284916503407286822278915761705186752627481618377017718134827232023513882358787680785169772393966525899297771194684685565965573654019256554481823638291398855677398614348624531146849887237780457406777971419079635664536585558228056104986976923245401241824757484249567348173634887281842287512267415621068177792032695645630197682341694241502282666042284041074448616381595042100237657339232070528742124446023605007983934619863269962117664905964795748330656319379352239326512422101327759909991342345992592486366290112837403751310163552443496758879608237053666128223759132210507911933199450943638383831712617335677629252569690989901517200070057982803551880610687578949560912330317694984943158652173491039755175752841980510889428827705475921075162497043477042279004253966078585721613643791474340722831062688962126273488331639670359821402838881967029078430804740269047428478419255284171449304494296746013388330187510525321542895923040142405256244611487596317827398138172692047866782666833895009975036182197474174229573760858065796620533874574526426171446510646178242819271667029932374062802342604092286967080305192295309124422414851561565043622258101065248426432542532958497006804500588681612391692794589362140613739220450362422865701959430889929674996495767836515035022283808025082433004516604576150560677204141568339371794663896838480508550551816503255364178631997481543101258509140658987065043885113323673816838102599597546136933751767891466962538786754543661292348738143892804037839688066450299063709702005691673293433250996949781363371406405115140148497389040832065336908528386835516546873540827776120200192001565325540308709099808752041314333984339180945499865229830915693911316944794293707538877727151084049786051699045589654071909313414253687780586910108759855380551744250719214939229710323733892403398293208936903770725938258977222630007143397372284870741520892174465788944082310363858490458685766003559635015776666390551508757149693994950597932158695402692087251411923171279893294882709779508175154119727574388349585040005337808962853989802344369065499613970075057091367439796714894901519297276400902053669152513454389103235403139490609821494710172503493699345471265807788646605333260862184257779700575341953426002391257958782127332704805171442069715135825660459812979280360266987483339809407273672917816540359767828852268569806974866556421068725578406681943727223956078134288739179970992439073844555352392999188846340982579808068956604909419472695968832753191588300813820281764673354450291508244811026479665630697764171479345316391871223076453316497712684026104035436258387908205109806946698139880746782079569385161053413005460742736893386076896178586021293438635069319458047003839502864907605096246872366457543721246132127503029569826360764796761106273623917867014980708711418039956086451162967081923503316048973533417033837402199578601541681657893380319443013570418386096916033737261519737163411963165831854162521095798867875248917868573933620341358846519905011202090852626858217232259277112051199994897978347866080296916577777424242094900018847026552934205372665386791659664338722928888557201309667159137674384816992130488859287407677238900552506200536668611062181317223431003579378468575147195136148116167326522064348036414380416515571696593138280022341382343171662623111589068400737935962849916545816439868037631480420415378974089076411593433679028771072689292575252026696956387288138526962552709740454816385556005447440629467213323477845757374047438020294430698952894521410048386386198504243194955235986106337932027799598755669440118437107912871911476877191201423220501766437227953412766156396323300752461968792266391757708107612770295601458422417944182405119749297564167907228127091509989127084513446851288591518811963782732068760018452204393727209683813404662316108478973988607701972550747529342420977168359017594564947185982127486087440536545699695280028989048354799077487636267138156826297236162597082419177706831755461194416714671009051748035756654686320845236339089676556282249789931906694189283072026736351817400655154706885781510388938102430016582002831186024204922268885202645001105118965377759760205967671243894116619877846324002643940976216539175119541403466725322358903570140756436998254884535253581353581064113429785525398555667382172440681088272476991006846822879383886695974849275214298872217606920909713478284650507582496216135408553775575069574183545312355326620958375072804778296404709249585217280530210184996122059136194566024951941004403806055402264992515226179919078287040149056465411473502682525530588562280793465572049001303642781315840008166123232259431409426069632566746571092114255628550703970888804951239806987815007712058889502640937986635460392567351028842129991868422899953347151399677363180025674323968169685308119682957062689039468230852008518895215618080026852285191510431507132918265635518970248332178010395520914131728042139221641872615266626824056854317181492040306171721965491612500529158608832113662152645651227283235951800648480685836725257221226546113869521219085861784451462408035687156121544407249050178976688915416217751283642437022038860650526273506557986725603995069184253731220979432481178700264772979104547741804665688476592271985732759597335871334005015992402070959751744685499406094404856522356139151880201252648904068091298859555804942537971610723162158594363278947757757661832771201071614190937261818087000510418721545712380141110645450068300191968593267647153616114967718635390420368651618862606911924981992608810956955277913406434242765200599061803322871023368903600989484184805076319020028183434220833558189965839914822366579287879581987781792549454254929994793786838119168666531365919948623621224157905629851649534548604290546245890242996339118217607836778286305502529147948165487168895729965778905606046228078831666342032125238258112221157345877915149422460979712969043154942928661130338227566314878757421439644114041657351059363336438285594218961140131356089491343417759703492169666464415464841724082620031316532532683965977224300286694022868247580885603600769788478757228622301736430449072723262478080576508264384261701223122116222958075374973594493448912535204994681713366589852187344148384539526355517479005740522047507849524080481322929205362435594283018471951667694684156052364339744700454489921252362000436306478724563673487514342112333362536228487545930565792523706610492677890884140221379427662310856299236319427792713937995222994564691592213757783942220909145023931674605824922283279769402292496573636586027442822906851805482962646628698345031978989715060402355197804694218357614990770851229338229076853223312163967972303086409411307532405334169563926184103852999393567030951461386262769510089522158741691071048535012882316229088360841688707110039157617092138108340794249889098415894654997175883474417761672985747672871663908133222316295859687773774104485840263833429479806446242513941668895182288447656601748726995924718612956230273269226220874021965646810162787836899555801751026369976040435930288750947343450625293918002451590276092434602424848644362398560877675333582072622090283995804649361602382893253888898159904715010125479931688723006526899809713135619855187976573781138180501696024198697622717807537458170378432234700422435154968557444985181157793361612740588430210945597719188702993258841842142839506247659492007448530852665191377616379864408217925189032155768034843833160227933134858112264494603654077503250568607179155605105140106127289101285748208095042759367478927888129253679946233697871041294892509654158505770992139386287223818117440844089005833663491023228955103070320120557675683955497115884477628830170054456960605701816333716238171547340281468924455181420572238701014737723763035328438291917941405828102551598411993744452281921650489260059706229722702138800678857918831669196089813521315190716874740033409925135678173527762681228426820179694235032404157387262807818189442791183658535051551692819257354513886438642591642510970568687153892932152342355365622440716089928567282037686474886704788028929437240827328087682544842115976755001577619938629641135388632409478015798358599528033567685571209654720767480009964941246959006820815887397463036793639489035257782566574433355971637393431228657589998639718048113266707294041252089875737082282980320576175700399917967856943565165553122009827829356294150271855565931579284877533937087304642179360685271977824100439102691226883495966760571011168730642727255067410214308299444591968401848178365161691021546659196880080846296665241125183737116452015401874011144132972011372773742426761207198047446868274307878058617112218763270808889251809841586752338289118155076170179223230045573829730394528891197860660661801362903051561109509274716217435496588738871986709943283427314990772216543063012780984699205304194177322289920246872480688734437311819364944883440563794615289359971787550753014581086805051352547167938851851701708796756202827191815475574856570875575812549549908289165811024468394100846110676156644238553861023098532717355013631067278224154764160702903604777472401205582490658760103756197941833509800834735826237299372971490975884575454274178043745478619365865178329421126123746104795940161942073170587526575365763633077214476520369071009882068925574920272225064467822423808306057456801852367315425211743868856053091104237385466208331649536995359827960027684514301023765259300557066036039956032516953710239986210746606040598476505864550366289439313696666878830832409356866350070794299473940949732977979060152909453531871436903156126328695543134957960684854092884803778515790404309242292913922996886629890638782054600460392312265057332390138848071418346483133456648586525504315353201474106097285557312383845729490772642144898262835999230949867447984546074964870312230843543093675920202233922303785181037043921782747520240802478234197266942675764215925520360243528880621805523776935243389477914000138265877754021315675109348114948431896431875428733696848617635415013613445488316467828182130008530132212133098668003993714485214054615024305540076091876119641445104933129740822325950547719601408664384696513080738986942312481662675560992641272690865832808934530154784339721599665930676608879067850418923054172856224455005931927587109789255377285413640576994997188101645322308201255731429724331197126324140522372174448568054429522476611689985100405559932131677395712631943418930466368770845325377986452848990811450003352387104043470082520872002776709163120621695540501633660456439698914285358805524986502121672340530066535527765228067131226537829242144181928663143257392750278266482413289562609802060295325514697452233076604031140927801630770578386434537083595640640624616409423578829817516761567057607709038880608508730272397738227045634864047603339299147821015477497411073362319675907986737760277374997907221026215459165935334889346565479474164945590539727013177015863368643267161218245719362032701124257555914132033032371808813903196519597329685624882374934411840072550878693101602234295890773274775300562916777869095045657327131494162059298351014910613553016915901429985341776237834315971623666255651535467831531178292736656456583037554238862305799007170613354163537568390669244892643867016227023425708609912686987953564406305267225901942389510238344553117371169590421525958733969077511481745208331458699163284640476569592996924808864320796505499138673069912490996433684446979608856862016970562634943734270678289958450402705349611480009065246970837280744382023319334788108998889412583162849825220702370186568928321850843528620683918393857171782481256475793925292768201879594494848295911596007947051680491057740680697500419356457956800017923486410440979798527865405339256854821877071452702840089745182319585173153658210733893137080653410973824390066951652711871122096774914950431119889652772932572300098506248268812482533349503424807335651810461536671080155623999063972116091684018283916678506431639859210622114482275876391026923755806010410443587772233542502219112311472720957909267693062962335482628369272978592993729998026723778457842294205472322243444247350799829456377067255281279765562402164769693217378616252309079049876071559407324746336098900349037471520686456396154027008592197411266331729927494066538202537813345946533398524112782789120690179628648601459440829821306862594576935480628419183175176388925113978067817763125371329069153380452216352270449411721393811115381223557063922140947168079837437970239542517032287305225616886960238557946722482281845842907163990673683187722252319563850295606640239207629086200779756193421022125776206895009174769448074432710326764179740269735762477996051400775435283146768176346896792702343186205294708158638833916826295529805045152329689272491691312041143501943765219349768940920835423252487564771003560580759302068929364077785836310111481066948429255915876757827678700124772117136420669252925210540879416116273091568676827981365832394026962620703718055464839040922495096876454572223362606294382884526743307111011832605243238464658920663875779857962300433236007826764820842105900583176027590567607333285754029713985660387303219779281578508554751879456228798841179663932178451517531868093437136037258237879929945921973317669383404712709453053504703717526905216133931713090013172254254526127245515272913134063435406438546411307493400448391907482562680314626806718234553066550237634048750984260675300263730642435704552812550125838744983693059416481693480001232237370733008164239567442066249283051706918002848726193980638526604080779422880473982637686993185944565359830907423134471080303744866782178989458165640614676086809663615537426059748796489805382836498447921531477785876709626237575424378445684524036687053971151270708905119801292515705695936612679333720832397182177917352531491726616101592731649235280971481011616814478746487651545005520191393561591042238614879506572992210750091698738148409342500513315372480680546167872320548754535700119687960096233277178224434000066118775806241680126227893201312546223141419019474524573050431889760909295999702655154579272433386017766688596741961443268049795490270541070656372185193319536046697121048713181433467183005962444839786268354352254302926651243694510618204301713011675114286700935348363720743341939493919287730768321465816405763533375508442083040391997371503046073761688090470009187781881789747103051911081022383567971217715574277815626757325881344113386875413513669434746800849430620268092997726129558364376552869796095168179429868355310152265012348032237182974357251997028314352710890669732578129812569241507675643477474711763669940525485549580776610989790086085339135373193947719927563625658471098822879252026412054123006490766958784845288820050941020910023752532843033492832553778670057619005120305159374179511849852890470926957582656204781597465243651001667116633801727517245566597140323925312082795276824096130381361084406471666581906537555815305629580019175378715104522339227114600744977433193273224195237471849814510206228124848002711605408448044031587449475613880704787179458993946506919099425571027003278742751120646807864229474663183799488740988888188473711916010495789153005446151652013302681397141851818002164088743883878869874440025252180842909671946828574620063002823971442898368098569281991680884209187300354176021275698098077551366283228452805518651930820724134803467379246345550704329369276966818232291488118077254674179474599641362622582031025836764212592399094582097334921112552305644188655017999499831876522058285411150923656739243134300858708728075139159763457067098171145604928907976658930301070438087144175756259392259864864741924842799659988266887747942995024274314097520181352653800745042337181982736347130191053035342448791846391577642053713288392607759665381123276865603742616579554017742057468399022693386974143456411876048872748131388778243290231625280643535080821078314770554192050285992909267438910886395241270154738112129158341154049174582114772607881265784684485657281964101516071802017093751631370708669301043256483008901933497684668796839867714456801012239001403348276821905810315691739836957796984790334472073547337514316828611531745242198102717401160235502072243883348881608573021803099264826007117320211674304707889070412403835002300969286528013690631601562331780431340960219558797549272101022726064977157337487502373094174120681530270458030422860604180343863812162805205688230895355059592330938812389361761703591522886697225472188892569539172696847818801466062099108467482171369154601549058757337135415554506947813942360243422929304073599579863679107271059310493038336146658549354208953933672128155219805713447361986845765160749310751981067083999612145362310369131395565009271642410464550501483711623240290361776713431741131694691128714546497924122998055751025012725182654776978135064819990436734058285774660950434479301222744355834709359570469927954803245654720220130581696703975193859914394300779119558993344377119186184567304167504485735549466433297117581101194587287652512742521391291982777406024059250459061126095183987198971660129562515315034207673618453221681889896941263560566971368853863679423912556304849003121062335765614275471000489467197190214212510322764304157352871695127325290312493459800552025347840648714369792316569343328772150299439314571822339332917663736648732911506685376217530889755044444528990947661689673626236600913065430383586662798055255056198143044672245912787325973168981652810071245299814932879558828036309086506162283744253081150667914891252088292996514315871412986822079384533670602793340256263296770958946446468174367836758102675792062927315614930458667073529970137009333955697661554817763865662476989472839805681468953069262079036733176780810831976181850351699650010090209016754275438222271109859697781948024796373326792239642788513894029342938390242663686729104596200454152283783990540192727310339134082790970938504544931305677207852387657501358965589601580648082423166624262876368742539607232682254235257145249169070752366194301515318884329705506202828083880102131630136621168056065478096927998598007515574769396716288915110074125507781555670876021827778848640982553717239330698597381786616952774167400360519973502295530527877508458394222825080938408136028466332891946536714821507284195920421608675434692964266118440584321487468286535188468972601628657142523651418038855745525662072062786304004527922350414823733964237210918001912484604856029857794706183467986263984897388874877757102515123833684374909456333426685148362358905462737929042798120830797971705703818987011284869084293973765917164673037412239834204407006012769605052737472694170726644179292978011232198767687958719896845064439426796771332313906057500136253336666198035602067796110198422150393101590975282546132169035017244475442581685112670046114255218335378101340930938033748146738192598594961582785040449112478764094577906498507822895033087718305180182174348175901143811910032258515012211530177811433556450549926395900671241947525369699418690827831885491254798624979930522076309040934784425468243058052745703114083031014805632747820168048527796667238405730045316464386944918268935851468370373170735359825812111814815258815819824173697016382727853884372371059038349031048551973675444871482405415203154395674306865368482455100940717712981898196933629405581951740559560822040401192796445222790307436134842628799580382513676484879368166772764444943227249947822995538709939924781894511504557270412029590006180812756402780328749190766996104120468224303336947481517703075683670551800006138557845627261301522853124943403328440373764946135623405806134544408054269568571963819576316636509952413562552178218737544763148950794499796817340195755953741643496856350831378276924696845635284428105414984743661553804253121815573204082078818923988484278235380070383261206370688267447093877978166911949541379036272790488348286935659324829961944498373271678696979269655250701007279551923552893357419542585827259174716459542815507617018163396079718474208657917852037066708802612047043315079003238574275994104192166513498524761379689967447904758177585321383796719599785077752517972493393726187636099814909405210647423948962264967068787955649869191049244952146654502380235109412967107014664025122499500723245189557452140297128389077837998860964680980544158695180829235694662445965963844433464214317136884801131849689631426417724775356642078433670540578491813046832229511757687015566567832315985697675731883562892035548399541801327123414855489852518951642399636750378522076434124189857155052771783562582787282253256429515927270690569137704116878161433424720028406873849506993542527970400719906019075940652850129508794142804802715116171234517460636180704586832143019684406765187848242310134227135975600845765336297192632028169229597876226845844844144274333931409479839501667382973256264845367366848513048839299093500794479306732702777984108078552156624929074483549047920728893359978098725951924486213387118577379930481671589268946828226710716864276347066607610831443564376651516334774233119092243972374541772998269611197614181087289181740798679520853941825849946520748573296822577972970153946228545993952514847399390033678594040495123399384817723363197794384239276264843751965616873395615594183521684844320721060811513789276287749655632250321337190971252161989777222553534525121834606520697503961621954981322570905856183293001299653265924481996118075568227518868829400020443134730880834007619179695319190325668964979349553314408076520863828749983819583150461695164032761088959805950401515279773463287035469728515667523335886559028952093208200184166922292607104355664588517194026951809065098414924938306584852041371827453132064296568928555178756293301170976689778703062344431212596716283790256455306839680627248509051492924295378804980408121545670770875682832615943291091740374188848223684647449158653477326459104547950897029217306471830783770374121923979353494044150876144447195740255309954701040680657419427714446599811180225011331129699100952310300258695628553622021720493813722698509704967856119241634934225737706587739062556612982217509523138351898384833958605288932367471062201848249715798287965463687534750608260579495593355294646080642732288900310236702339426820790547419532170954250416465960679206594692890202964566920343055284990141606737883648949610197401556422093577092620392732569876074367978548851604697947635165561989010271768326302527895758225658724547455949022499246091539110168957628855307677870192191259772382365845899646546376585582545192230749106051089400057388912738960757496135058143659904895972016666433847035473336889954022266508858704857830855113100604005935540155928462674785945317362813642327045124051222089438923921842284086379528114907428093307467302969070947389672989467029870906234096577184420836667279064609820165363278569911764475963839847828740295121688026790792110075793333247370876429257442650343690649900658358358017399403632767935448859178678569977256589490238814894586753954125801611215567071126561491256283331773278340933729782120589932563181242345657344146739993072110371433263504198990407623245198526526606629235064299997709269834411641567718728262683328925191570386583158370362364554052834866043234757289203603298057310903036245742320504684986036579064320677212579323691198534015419081354256772093040618539346054940038331859758611002180142914795143718641187554368669938862145144099420997846420377816883332503603806104928078490702454949290376669921309281783138654307849636030735295554742351954091947511518346453045392269087661142449318025173065448152813218519805967478626871573572280331368743894996215045520599936442648264238248257278234993210036935535791040997259312422072203615339008641131953107506228783126765831443202391987836407801009028712659711211654003801206881015976410966047488193267033201003723504777315609412454743707659628032551544453681376886806384571025898840552970523267261710531745739269396530457220229287138956091753659167967543335314134241413501892351690334618270186894459416765660098323101826492997261054952575580177523787962064522251172047959994719818071860217399169384087355902319327139877010938596097748375489766100730262067010366441165027385154784038318904351890626659755544069978753756267998791015651946251963960895762175240536658643440479049319661225064387711325489250164908339801674666296538071116699178244764893835597038909513926754343479792128735938645624987042073788238394625149823102922222044303974901310083017974739028568259472715791665462360023666860430627946439179520179786796829829574096198906125782264623032786274475202385131086703486030790745242372850357314761339631475514461202355293680513078564628415231764548932849685893857165383864788500337145540072873934340704024878307653235941373671829564645164007330214850215492725106441363386943149874154403445452298227363054450312088640177199236733860818905658260580872388671118038960512013635662331482866705869789546591355517426916838111168143937155556550227964294404276698662157267206278149606937066149474137775391057052543232481304535921475749728457897257503167507894497938027606073271605403290679256693353743391974281350200450074295391393984036868398270229257497169411990215390041693488321564141127606184378196177050700540770267580407534812897115131819530835775126265244248558283276071194161384545616253559076036637099440828459637314244138058452967648928695482102134188495661523923553509888578814127894553197443330206536422177978575987028753362130441950006483850166117649297325683692371524955148911619617229363652972419553841170719584464730461665032071776335710218161839842683576022875342517364787441923424598557010381734595415282073710493401943004055867752036623689929794246583799859676175122027439626167765994631749718451470011298303509520978820750199082461996217301641914776542927845973960182703865323898735532264592106479974611743196223762976065313274462794531522080331466861150464403436055750738728277799663701052410307193867202750154550659687362915132683252879000714202869251175530549836634315007532560214674713313323080104597108535249278580495815440521381174241791326059100865732062491374799121478902850200369450718010980609712964671571256068113799902768969760049639486112310312429754732725248224339475726408298985889358556923920775676908275902301605270029285533688138490188211720397902855060091930253777196039879152500089666982034196436101253001306151595778607529688457879414034316415932824674600364000504826033753355185382710852085475962684896193484337877369918230005834625092216607043758851246187163425286895793119100358420054017025351792850581894361471406400123540858415238991039872183850428602434718246206804233357592543709061294927518498523195470103620245856500765030867415582320301475001972157541758382007999447388501538464450139897930768063341730759649646892570442595156050662574900393917764354699736427755500455457980700797974568058222924559202721295949586420221751551749129268289980678664337610332351798861742560945462452965568107855782806402957422664114516222418709038776935843286978268440860167524861407935103282397494515761321310500793987130788141712453174804400030251599426775468831299673438196215152032753103022214504481638865382929834293233830271017957101549502598281027593306049024042271311294905035778710171262714658617285159773421116788968057516601327628046206709188025914238090849586796174572535713975963964791095234307619396322182375219939151174331126095456538992708735523678322403555829893077097648102847440958121404561801697558348844128498624031489398734958167450414854957605924609963956836458233348381889738831027778605267718651191673749970490112131147762996447621487719018221867894731130881444217673495239377040425680186001737856395848059865826217212717956172503660831679695655598738666078587678467276557497592699175939966203081195544095643111766693220504485767153836228139760707438933570142485852264024039307974833514910357710717181996083432858241407972982976023766827508410262203282984999915337171045615344802867296192841234663453441433785643228910071550299957264563494344846005410680888328341387121336371749780305684222720716778531950806060803170910937910023333875145351627340446292460724783485126657135500589219577469274573666501026495796911278128976512851108267585452988023557961050465321616458069130421871212660199181628397961512803236406096520890244658585452069776154608906030415106186574543172628345016183486748863230029901160529665942633766434711094844469769236331422111958913460995468559430748824587165168818345856945618673021288446283479442921320185090130524156289660576439732524391391851894778961601641427873448583893759957911997249775619691002546595227472388622446532757944282147108636524276167090211864432070736624776011655766156589861998087115016308024871857366459384966162678453992925699165376379515613102955500829219429375610829443318548031683391172883219570666546425571826526211321025310944774540678550181980697116981913995114628148175284297305028702324187597712981800670222057984846060731553824728819369618291813382056784998757466968702373285904144501744650654585551834140354249426406926127595015948070934910090571342517241864674472894965516090576953878758020560880044202522665375530522856859441944813360982544248677620242313185327140783068714408715744064667081437587082878501735414980261467959948736169589023022304040550939921025739802404390217762847401951238065800951209595533575319404634347818673321865768472928754300409308360294072140653900913086647507992171430072201695812201519800007024874354434159226226513237029240056634363873120821347330676289192515511295436500129526199732870450915248454299127653043142528560793823692432406271876902819452618905302478543148196745944901254510989719831200618883346719145072861071343221623754808912702131027089647723013404161462908537426111674945073132969607380491815197639039950255496536251985561288070919029979851371628813099492978837241669571152223493919145257097369600943914484964240249758719401247503687311872707190727275994606769535116393983770201371362333922737086495428331316952548485704115848959087857756617501615615077389699968492367757063241404965683681276443265269861959236633156654727094929996881757139703907792372171365397459722661299338787867715782283804201429083624148504469390089104102697883640222002349975920712787901482490862344138182784095625315464196060408301563938029691513612619234875033844130236177267978708394581229756966390141233543352891773295838296433868472641382752599942552530116222856835602750303105733792429529229265434735564332256318261166967526746174061049798150101307878703772215664737611990365997214458188662435740766393319366084833430293449091148632371521592866744319737731714501677724758457863597647384197963440005831683076651398309354429045630232857116574533966017558495263074491827688857864231393480161673246743349188148077501542471684405800559031342753935195498909494409898103123593180140109952866386117408452666885337650964766148510917424031080289870333486184704889796845353675588399749391473183744413869398193639661207706347404517589551698230772543297266536011431760409555130485132470905339164702464312234817178198305404887626228170515340078389964836704602189126429094837417724823571345043830685802678216025489553635874367384498085852171479664705966023746118102548653092756097842401892042968404500806437546002064849257329887982507209942994865627308675531660599502176027384316193806454746305889795398585363212659943903736320833663294332489229018706138011871887769885246766456520834930075283266366066268182419232273619516926686200867960912972697699437911717575265363107355878555114997428493324360650000314389542613675592664214725972840320411346387771735020130392726249015936940895665224350254763634417177607640524832841395529621554939413006238898513506918928255127558507081623937228301529096137722187738134311524975946447011028651133737153775502488479558641901705652647768359480545375571276794656841770828673388616953169070460158879522645861595125710991600411027733008582800936776457185799076021110929010282077019083132306058952930669263675225950423990893515377638828174526561672545851819625281165196390714484152696764634109453259590584206236261652255319760375537858277311576153856315360947086210519980183119301059082288439105323955030500103812328175339058315861652070159007463603703990798697760173118920227477431031936538776926076733566176844898591731858037769231191732986395584350081012869994461289616448274223501408689623716704908637389074051754859097966059124993426538646359258321234995879231450577128533172824557413770329475377642177067110444531985051100550546331638271996733190145753655461852474297504165746606068812472774747546068392536260722895025437949628985152600840698613599025522924994162106961841832012716308198482895815308094787472991501736653488403242513042052726942210054723682905457021183467761578069398089728757370995465309915943141664815228257219316487449424376708533201304002422948982771525958398707352520296254826312187151087070075053392214862941144802929724097044920673185748381610915978954472593566504644407731349260763132557771267286788277731740551219665795222245930863704578819424981438264844085858454018661101674291722538337753479619575096256392907604658673167239908210486445275224127748868407662172919461658520424476643987176167709044209429799397861548396569922088264078241999630694724456361569964528686230147031675641129261782175763893933181671628536707059424399126481490613324992655288424204356180696055561498884753532408337617308248109429108577145227840973390509493109208582630587326494313886967872809836910248396241820378143657567906576834932012984715532141133774407078517999859332378380255981840212125999273263187925968211059181152082503395589367478051315948595700050910687379890469661772410168281418668211064282466817639050265290381391551834137182464123642886863674726624246372406340669184994532172744831013440144578729511198378466888453059772739800108519884657847902290149736673956544315081899702301720802902549263938766270882789754969324342948102148488695054605772011827050184438207731758403478364803625566870864064139475940461165457222948911845888112034089589893229063394506958821507086106195730047975223941387649645701592874451109921206647302271742025401695706234374193834697631675110677305746997391348076651257569495096404797221000377444438897521647727946489845676442348319989282935073534605109206543681601503197243098321182972553294365109648933122633999252858961055264332075505150142303525917472803746282090904535237368332733942186706392928231264175850686301299098628290543549717764499359071474844924229255401010812501776925346620570419435080669016929961512212344077212316345082408990799520580479772894724467059277042479717297904756337948713772867211416447057488634190938032761541830916308909111995148038359785027786640630885531068689393142238609565404511502543524762821924176508725967540005963213875461618394081760444475881404822915620199012736464887803774038855430018516449869967742732240290880944487116118469197601572823031592675482494095748721730623299590664503493679907709414184689600023305351814398718541347025408546819659477361278484941212381813324530987805116613168582619656746719071394922775967098681922670071523306864028140041586600676599012873590226874779324097044136412927951077616115169234706478284648782726848761804444339467833020155100377006503628528331208042272644363101870436698446365742470288402813110820074480426848605056059148283173258391963931840955656080660277390204886172239820801547144356260401340720733184446044721659894873712710226596126018984307571599190501174624615064858670699340565488454148013520072035578481826065931125727198195830108823825904049905967353141238828668381759259364025794361355416688096675794927248009260904877449836920546160012670529747406186605980599015350528913565339454328449045636100579329991491614046223100514743795516411369237448780187725547593573496777038823936471851878293643309868636967461807481529466820267917153964548270744293911943300962297293453701756857448482931987025037107130919448901622709481993472169276713195797112610059060144678524236377962642693096355576233808140884730492503847682978394839989869137110203246016834843834977555248450756145675135981500458174614210471656189211772443135342279002799694574015581658174390481022714764685322216062757448921207616931389777004306858518076212942178026544538851239676143457802036903541885709814052775381091824212734332743883324907455936793871153449596535456956666503177288590813285699143239553999334741517366933979334218770522370589968440677161303372216679339888128441908891438712596043208388661000860041115617265243571173734273358924566585904902377335302281514241243692946215677797365261309453562117856446849352736021404549121679925877800099509261732745065746921733189524413546760917430611508642685657362611234275138927924759130304283093951981742954582145929223221536345377618479927413633431814628358698474207900522748840110600311912397177202612675884904120958176818442257800943402148559242497426132566722708787045000595354339356096545754074281819401576447596975284002073325174472233170114696417069025886284238875566174011191491244545600340443069064654822540991207253769355909605202591823258104011908121284169451426236045194783658548996436682163893421920837481852441820662586058588087277163266718365187877562428229831293299752092421797276791149055703403765595061854617667177260205371115435582175561550442161059889748494951204321314229950476373201408219526867921791649149197835593346890702032452055169993643013750760568837887229648508981984650775669217916392883905293407323420793477697993595757087628073499112173966215333613300324408242799305720658802323011181402555911467127111974067635267316846826666927607077598754654361911541174954953750212917900346524496816422208843833152780025001444643953550428072500602621891974803656823832057878003456456264120233065511361805257634000482992320419551104283531897865954975321278425197461264770200044795328563456103175455937157206881922373348959620238234364650374000270045434071557755889371576302565685818460175897613811182602395392631720654671365702553961545334653626453888714391657877725120916712132834609259516574343352528196620140231343655959883224856373631748809220888931234848984168502076996428618227114456063861286916502023987574636083778276529590935806330774478210651636265194528009247560761819237945430497061367684706073122385703241204044042068894947413477035944192814423587709853146843093624311872382477018692033062162828442187163037253481871486885003855300748935843057276293208489622066889185921647674287465392478499055672712948681717470944663525257049122328476296873404215234965982263363553342670222936279360842990353411696059111094125034158763466947330239550994602981848942859330344076104348111889651685105902958721340284001659255626226608192060291712954770214824120470106571527647755479122438366463189875385347190693384604335462403469002794455748310860016904219846610244200236827055943556689604081978577224496454104574913247862718142296115977056992774334963124403073070510583130852332292165695797106095869786454396171223209160083933904373569115066515318229130059659379168172995641046253920546509889802475011150647076463049504032531663838755923346158883500366663289928908019668646430629253106484065066113883416502688013625034689916313792985853982991029421664107992197595969284412787061840284374007881174015234692882931193801683011607694617729711642315837668726662978328504627426083152835503624864808358345360683735472244450512729227581717339873007197405177603679636452203325902009356768731849442368120728364937345538570724158094466227277287575766674372566489874667631464774894616957199062591517662340034713805357756157995592075626487981373171489583294757781992178013850464387932862880431338143814990256666300268454961400357412512477055578258637024519399223083344140689568679960260017764019140068775956502220195711998100425625708483526491411956866472253192289049021098325881228303008511982428959553426531552437183033936348981963700028640214316421079143617080552156441882833114879610582864122002057355730642288232867273236176045061898106174881460039694112543490628810210791112235386206362100257059979369104791535188841281479279261202417433565806101789486673079740100268526458990072286990699105770680344092397440561222134580860480326890012803883010207779773083872460274390841885813701494141859225001148493194891154019462087343953846096338642328790060731691454794501494848564210778367259073568563842837028217656374657880719688460866262846082740754427062912689873371358939250100567269058814081867517630586425526526440655955589065200686946219816155073321474305119988171871294465194789646828493988461790767995936844660671517864786988831288369316623800776207110159718551134616892463344756286634279114378840745306014879466483016718993369895970192830168190288919109137933446329851012171903765503604830485691086776537112112968725123558285619909581211372021600656054027518878665459861373174949328032438066626933699455949444964253175631257883096259409729920064621911581480984924913446636240576034534364391713971369249530178298030961058136606120950773806377825382587940644146922689253190693876040688243712775415514444834258531159613774033490639145573603473633222251873586659466010133562368252795517883276259916094146218384342070550204186258762377653722515032820913890993658936777077802781939853210666534216675064068112657163788673179257234527721068941792910647830526195166140301468849720673711107572983218641317598145922776510555904814304017366934195419909628595447594162918487740156420078689904432541528929962343228568336187507054251224836014546140323518597861421555471647166950260480519349200404569997338663952852972252651011343562115095031362591622990555635322456488716309276066294169266299252632037383180859167265846415720795294436463057522521995925447626942438886402712901651076321096938640205751462329285124621285961852417964388747433693504906194213590218684924057811239349074773687684162624843774664964604033594560722110634174017918730226101023319168635861963654314463107529997491110811331357698168223353290662878959649257208244846336461005863935636140848571017700717087227799499844297205715095972710266675177649624940281828524758080035783688484066568800149462948169671447959252091738113002753160646086900885356862502790253065242547567618823013277346753929611701714046458087616051073547137205916330401151919144140260124204154400695454045186799499105984582403945778414601206223492055701711815523288855104222098173808301113460149140834539109740675663192985192698434272914501557849465700282488379029031729658238175219735663368298571453419406768832307491571884783247843990313971867259601249072690108143467744764636145365403434667642547291376745835072739834868347801596035079077038767854324658517001044494566260492105684521244660062270094481956494254095881391187190757966058149552753638352336719953229415168073939259759912826764990883576406002153145499436730221095022110781869312758012729354171437413926094400831873043832073854037737006124276648943867482434839097522423507081057980266161317027667859735813500604346065511759867878944962250096710335308319672660843566017702933637293159622613609093539062918002626917873566119750781854490275425940657230638558228212160411477891114638734211582528139434621093255393553692892639232622503063117053698069563837094036241048447416255563353949548925547613588077445844631868295101322132274644640002304586138607899184091494591212406626408721089987063322599247873561178061821860700996723651905214546366286684191139804258458342163028480697175711204993655033491769720296688291047697504704232965736665662224951839593366466063019823469175065159184952967116165409197845449445948304296194815760260922690672053694343327484171295212287775116479635122488848549837514888482805710565666013503930434641437171802992827530455465239146264441605879901493729248720779618873443690066654931974294062330617069970640947600987781774636116665338505375333793281325049133897603751841561922651459747152316635039043807637442481385445700516989800292369862198147596504739658676185961555321153817190965758353713635754857944647476444132800312541890610083987720543190243954819358079370406395730305401390010533116180858835311090076104156866758213692370686736267831243617361998436445147486710107903636775717836914893121012788506717150610916162825386106384846947461183130430203479854157275073007204171398277231719277132754475501446951557777505453543020098530765988098854562105055734648506142888560099357897353272453371278254776193568833605666506687370954801203929302636090728986623834958130327112050545655600431971906223244109181426938501550787546789075393961162599147494846206168322647179297065958490544744320684626739046104363685822489596930307159089195578284287276500972450642385872253774949013011708610935581190329230872939511458332847338837364347458535064878048472281170209740584101990336182784517187674361913845691884086867645690984220370587052144649890963586118000545032364873482725304892283669498811262243048543204055014859132435240766188043983236032268323064080209271300780984257304747690323987532328398847959756749016712630494740629839946677785496995786200950854851667860318526087578212812613444885740628328249288836604634243556649887832491333201648647591886924863873128657806163340444697784155370751895736257842573002200057484740833658381830435573077339436485099444774963628239434917699883953996224452002956233127382875837725519369639594965474579939491829744354823039269125175885534964463440136598026618744265246764057937102262733060294659324919312716567314959228673391427521926905551108822939811184237885063233191532662141326915215695691912242011747876029588727479181190546236406348498126739539558688967655677958383710749969158193198182398559504121604239406814675061030764117666566105479658112511826579811457908550691246910229661130457827649175706169597773316985620574465897358926421091055838159329845656294020800204782756869403975351129359315041742649681356764827862838139303645899153154931706224492601066834726313264728803388952476358469247803065691605824544747338583132025443105445523579173202650119355643296259948797100194086559242799936657703371321846656635909232435452386497856155287574460199821324210417767144385860226769237922509146591802788441810802255301182169562667045208109284587600512356326145510051831309814726618560086945040528825065656461141172558393033742497857212881690488714669682814490893986228612426104873236381725662016287849964209495700831803727913677213781501051656433105695114317716903553018634507919438934661256690561333405544668543213302149871792154586507670148152387613446870152605178104554347123588071126503903373119480179410596083120924628364215377708892458670539727285680414374015069499356252393823157141993437045712765157271463665274509375397970082193528664065801836076644875712961886160706126134734534551311067991191408485710884774641655422825451635710793128958621035642733756385442801451790947773893311455394900283951185312120019730769541662753938801844370792368508570039991907484379454148501364873613780769312469576551619765095866643275201397321805918216622269304903592118849299033189921731945127582692038606745003789065936992365197200334905711361289241552685543848742780381652608997628801432287091231493893002897717767964469179315838102118283896304964154430537558174921399634827294515574299512715054414813181224472796147983008897809544267909495986342547621255749692733816444169530256095968952970083037724496944231377631290101766371210645727393051394567645750430508982981790319680466953157210989203280261559182291341545461150854888925452306660933463369054015804638577848681844942890826011553386446176292693254751143111741082311161823494817873749185458605436590774258178395084960011012846350363060590517656527749789714316760121231979394689898822247764164681467866115740563778629807389877726081635016332078066834302084463443726725151195546277983922661462878389423094667642447365742190897468372059793230302381841241031346526160288708533658135764865993219749247493230742908165811854476133547141599188100676866892669462322838169241858729019443677413823224059569851634034057367263999534626548678637921340218113030865866868338894247273725557278741297138706440471818054285583115023489579654619781455499963902307687186846408540338763912838942101860391825990744896343714459754456874227293904088877353797609486023334551321960720700212532337426979667402033088121310087624032820404173704783518016653972956610726109237439301558398213278201857586242147814655869921762976336206613351702012228290102187775406965801709526128916876340144695775792166713372009764345254278766352079779344831144389335319663310869421236248115354557819136429780613227344531325142032214865866444717794963175944264967030101830240159394261165079164075902417060788409009849030203354252115765860787477525176994695045783550222478466599363403159723115303154452173955190811924242462509046556565759403263862625120722440650448480502986765136838468292123115347361290303829961035781159733293233547981519475849545746500187125283282022358909572779244829798303262842981497574909935880532734173338201619183531391881770322189984570748052511863887650739165878157046813784259308714268073399748386770998181470011354632512907443156420422807967950050257324983282387948043940540677353678196293691967237287787117381880212604270310120024803560021539959250245657349141866808872692615390804580972335800944597912247665302985658621006053793798849999745371784646169552201068006406662773961479857489005502852026444666905723300225858180830565643791821179594552835196180238774827018160576983953604133914908282153357949458500998142436213709350511198132817530224560357776409651153118832715731631505574734987329175139389732749539668320953306808313522159365078037543522061382952054181375220827442896071174040112680079890932015485977328663290884563629332640588866027671363464847936006078867797917276724773362012165366871720910392168976414390210820850102029835717908918593858980440710558570892091470765850529274711649399956518264569636429917797201810717649954024507473358390745125282396881905000971120901343296885116220954502504501223084381949090035143807247140986406947353949473361987616079266441175199534158392231209875356744713038639509020008518548217370670729085625056808444522659162000573319599518076996619364096115734293278244378527043752213733346514920594637834969992263899637698044656314237827609470184697319532426496664790717049481142451415139603938575661964032088087385330105692393550075993155015975827968653135668081244801230709933881578074349772965097886396185530910849973019522894730396727933549572963144727536889822907781487847152394697272968367061164058714775180398038896759132163151463703109982116857930787253904915465797471756995071885003321969712736835522266737045878098972998256781359714774263578684190675617326801383058651739665720465434447260653573529462389719198489633903603613937848962048093156237882025452107208647209217402062963954678103974019965434604956224994521145486156331699404497512544494370602822988434696259711105787022149779802260129042096925717948873369261708454080545527762330654107519124260749039083606185844469202547530727622862169864759850307414448919141986544183106126470844167458205878337532042485472736482844432338416354436639244477163667450517489006176908964439114640508464823988181232973990955751187469673539493367946263631744999478810547430532126996111087801448281304606370884197913180851671630631758670502238644159145897924546783155194275029668071389248147016326774195412529296956808904077107953894288826276083438712990398381060693476381774905088740205760464896265628426542069232611655247669789191261313336542420493243393696676350433284867394213059641048010423631721600443599017169480483321114006742256503924951420764406524109427759374867423160416669430769919787511419287285159261928853864305056585401662225727485031468682286317456394882529943067399355195213131703771287964500591519609467268668743406932881730641420201406913104316441612144516267687839607525023577145106265517049441976745461259761037624779391188303245647503510497246666959680583384113772789183217630489393902114707484256115848550518541847947234994688958251151881210986451628821088847346448476782428664231683589854974146233361218740233490602478717028751389276922618077159468780763489908659448894029252784578005268294436761167511271457868821278729884144648294172034568700637678158000692228251115667968610212884182768923835702921937422711387933838214541735342540302045323306199308397580063620202711335230996627923785478900828862993518342420666966315547062047784124932991698843223470686295149207914805574407310268074417962210395906164197626076375935982716900946618993938514903439819670441422711617235433517990905784162880811416006192508915340755485986422914394885892285789569850952361404484120424852999810478766993051811164215317731266208336428018733692853142412197823881573579866892600843646440128370979238313077206162015672817355397046745929383277759199256318474081083970932814085604007589172638845518999658832957301680240119776192594613855042041746746743287920709622155456321007456935879547452168079405221246956600169930107786972885897431395254779591791524328632163704470189027293561010585915571366303991052426582341506131979530427252066444298909581836016438262380064177784745450633844908613018797992504862797940179608880923046825380711182467333685639555264698503117965127911875041703069539107656497034719591673499000196400382684072576632897457563965789723534960954670267910255644463185586286868214122109358954564777811988794187943727721184591799942722169948162186668644706887970606009576274347055898999926135719432188351580337961327446982323601505897149636416244289414839326290293929327368680725010911814706947853407918251220301097784681645127629730027712604939112288270417701433791105559416682337517774405713667670252136070077544933873056791602756386059984125649328718800150973967570567465932561396291175419076373130978540023110844320257520174496211540163380276863521993456942762750278166156112934538325332721159174746953042320607298521585961907937743162209009710361932488660646826586172001515085379525516617507416797827589798543155034824203805103262667306162651047912409325749725196297952943865749287018213706502858693817367325698953868307535569694826094955248667708071755193859764514459763617031545414607039561135691653384447061729039712516255471601942489701636538463484638027406565530997142949753197986605572524942632259236072226557149808816732272678328103339683743087268148030296150880943703820454321412801137103255237708027194369271054191616666100906612744420521273060158411346666268186790351511148808097024385101599830261579956642032061678683937670079040816276837785883862965368428766109407020209242887534787576995129268300089866907220812935411766523208158893767060047267896226410699103431222616563361909064841571606295551940488434884727723646979689812968969244268770499074569739905698826773942298678314875406035582123540738148033834432856398585422745768176090296463700107817360485707473119478466075997620392111245457362998181817864658723168896218630539188201889982079702862055281159331835416360674240211645915349789591645637485642504115179185212274827166435778813708367158292403923513843411943387023537444028000365746167785662741282108871045882556281935869971399459179810108939273834067194940145568126116407283487165321130682304884580414456248680832761305597644536643898095881987338671381438446519906149445830853882304972338797094420383715191100579353823617498743346438601080491572831289680733511055584138192658941706175709290903751692530356403487651046440951373973986989600351579908239569607478903839110611658903991588553138963487120253847178240537120974820561180900107012516429500945700502699597088322021286825622615545062641586545145370962023373826982861305482855118645093366510513789714418495254920129312824308795498930067600146447446569081807131906007920064193880368124556676880552708908438488270197487049781049429643178821326165709260961516307116096267300750242766966190164627000348081992968231781975767169179234980625479441053389361153499056513694589822037479173089024681654748996182790783095780819305016980253661912219394545323562533702884487419995972537835273698018310853951351300594850549041742402031953738120251554086695006326152573607653357720880560133216204490257161567066377052332008858375295322804224550912157737705033701158411674754850955839069177359130505755832794911458576371581144393910239993412360795118832889216114411585942021322350000445008907736514881150604323914165244744772428979103873079859798010924123254262223302163090299685717613616166572767029971399973617659249590982855837237228188136264184319271612633597884655394511792129896296538359362392336648420690182051677919174301482332912540668105310336599528712593486319237824495352077273259790545499519085166189790991185058160371389520202685969072404235547425273110228634608443521403339795471940411082795180435529742708061491663824234043751744287540443681422163275832035438885535935099348045275104904533961159216571635607212561905312447418691307428853257127544066659763636488543185704151331475114655279335761111475885770914300801881421712899722239753258081779164684377630538413391115649659590065027464811465420835857206151558302586463857806294561117913394896724442681015153109747663018630557232379552060389644163006634360493194946163309631098110501708240172679495759246756029314009110218218743358810970804345600543868285848871344517257716015749423273210998530607083984881581945437926116455770204638051547127410022882334639295103432382988404712027095804511775142020270230558113242916977608961047418847815575972514886095495907427582156680056731704561106258484690873692981176753938418488802448767189864678564355310365718288220928431029770342746233438880318812021395392252971010139599383845204711225952997909644945420276373475592331139814895257497920240696397329168636159356030517583030029659034132158023404782139478731119628677785270976409480846049551884289794529310865505367085940325927541991480775767873201448882208956464694538401938360206187166511378036926106824157464075968016042310415431034818976557318659832760056124620095326313210366186604580780590644800725689500010266333897616169666080056601925412292926472910039132474106913532554126195860743552796962083282675973482961914405547836918571663425480583740458875395702194278056121307764386985702136532103390205961671565168321973395649080814206996840087673527592665504422739296281200343571699314835314655859429757386768480366367956087825213726936993042536438663118909004254858908874542088476202898950862287791352509235556985165907798124111391274691118428053093724085258473809831823539783617184465957311591473378257571734636018385013582831072250962620744121370290341950082675988439624154972056025589088306195021189374706226554372537291883049148960448444534950735385544776925765129916929677855366997947695891148052097745543307590340410753385318635837510881963605569156995081858414174361318760412115362554029386283838686576370544572616550964726749200669103569104631709519777796528501308143577678427402567389915763940374745663585600968232102505072695138680709045099152884168318853573450992373040258940905002155383821548682861666356901989179176400807458178678556369300182407636636341750259316218448656125775509689193625170971958123698042230439845142780617629653161716611296166649611600564567550666800798782186606252176635826179939372981055105567123577009271873116815039274613433002365290041836192968304761835024074467062316144405501329284896070728564688743661634700949495238417256802230326669945685434257916138630008352039725939814511426470309483965149472410185695338388421019715912165419002611201182185312757851001248974009921382264309393955542554338228543434868487905674420521657688198659838860471372970556092103672738526654578327729963745037595094276619345665735348462341226257576633638099309251713844050461834593354936164847828954829031854063244197729607169159823116596730520616012493892064440066795098532010052058014421752990152990166743852605600521519175235454966836457809651951129031010033620600771888560424187707176420368777932373308919504790296729609980099170194090526704619423123151029623660457646411903171632924555680168111994626587916995252700377021095470346139877191165260945614056350586629250586682650811576299035615253590684546606374145887996481237357775677051253272705968911392503368057182887156353463087185264887746432431313485438177134148547121398867891098063617005229694417223435647265593088419234406083114929790179169406818354491065067255888974361183197512357997952448641403385844834632983846448174400020067534352350727108993044940734398261553492351883785484651906936249712018224716778229603327497181274975533952239013651575317183771553334748309891633923420875853113794141925508520182795044055765022868789870171894093026986526367081021671754524937151165924800175081395805761258154107478080155704846870514125789376494219832342784376621581354852494794358277072151277361387530030393797523564336019140496720481904112070272127228368495834672259715843371922029740241193162948486025462546352788117162659548685273079740951293900474539256520071834404403029665073729099235614915130158586676957096404756421540709298728803618942378691713729549787158944804710572452749973260337687099755361919717991038993229932099751571588890475152414911980485859670746120434510046492172309087692179425556672338432070862004767416718083998033017700132540107742786300842944973347878514876689035240446623201509740708564642151042703544882797062299075833558997942907135265536682703194535671337052984013900148775484635372511087785048658980316246076272365118576887385808264746466395634535341932880603492123447439606293951952473753906481324816136187447393294833938444191247897747877566156729592230914544327002984573906304312358236530537369894590546110239495238722712541559118929599420214663075466961400262474374693171466822369627189453817983130854161773224682191480290112333783493249689310509640824669075150300695172975072477245121817818744325014963440796757647166949042195042905219949775619984143854562965641564702476335891606587872614157416455570232259303139123737501280537623780121796581849635728663748750496805501765702401599306336939398309316683230467260375239897854249703494230273555919385875151557170863867661254955678965242411943060874793584836444590812874652696170992918524926838051630989776419512942840396299151953421307486895172025900247977459945836667645591544755639162428322630842464516327154380186476201770511200232567539477779982123532684613767119580604176157050734899381883930323679858479639638825968681911636879365345857361006434686661110037902064527668980558540502915942274707812781299480541214558617155180003420611593488026992530955558550241824225790088389352864929336881666265852796910751534580991524066488283242766470676449690534338764884814419632664009475668104930673016121041108503463302885534378402677526922254998292717324751997047568557864005492473452166926533495071506959752066960152168119512754067127008608849770303106582940657327958164273574127243079582454154658511557744694391390132872076333283321667263665555305688160934538641974979543395309805024655171644796500531024938690853380756858067553656968983523808902810403509967168600626363019274999212792802773082755521532941501035344573993782683950248120272443423909583103799311461254608196558188636091718820287056584209668510613768805246903322163688864597626549567318529566956700868554104324109894909938513327303968010353906185991912078725513909771085034684984384650414528068188290247392678863482353467576434724037328311837681445035812823480801124759698569137944548523657533423547513623337858798900403420642658968416899308442991358753946486465843173758972578158630930090240808665242984846663256858400419406429068520816054921827950737191987516075171550746819592264553266659123166926349934672440475512963180959795973538229461978416412249421058728475055325257748636359600571647495925170094484745368522963683433745303286990860618502343889471966143604359165938562685855359911595283775772254686979927931496250606657541573208872209334535075061904405944567912549796434078061150839574168754884607091578955655526657359914781786353933510339886440657154027358640151714879221005927465373217645444615263254631981860157148933470017825653959275437340547193974291320996933545195518625879465286476699165668492001031757912739216077151981747843304330848484406949046058886724476121698627518812493048297766923985701674668571009699378226569970638852206531231326822606832079224334805751760442517197546921919043582764985139741542772431337299216386265719466452026611017246319804991620966010319790926290620391842387230775283791109180823254911574435016849552684470244378226098864629074463412424496677637293172808492525937942192660225299581564245297704033193003798162127515238343255031032093688094518442345125797589718180689243014875048595867571684476583506763780249014215983532733755030528985296937191595044184255377122339719395032580537193219155463517758751330887817979099129579964218284827925807005465615555930835093812770534079052210709593322483063098869547537037197869440941234868895405592571809412229618254739130215624018290187971123109212151789244302794347319696642756828812439437056509606744206595047275161703731266206675416047658878115020739934420742102224856613425988413681786815642251112138028685869966923890911803080303539848383632043359874008539603738984177909782946780502941956115693866760881971336156304392941239061914063215741500461893017000731536612017087556942025617785397786435475903275438184876611510591833478704188443583358166304502716277659783096052655696935631992384604825322338034624849974288491414711374921389126949586354129836645031564950839998713617929990584172716121841469491437333844254015811422208433856651246244586067956012833752833774103733637935594453892321588158740753897013303010865305873691046977803988471360022435224743350802600954182574532250422525376367258374728527745992985577479706333051592108900427490959382473135929422916572271030296290743396992480310173722257651375212081237091639034319983761337882036485103280876894170908964268530845619112168567857655797347650501946205617313929697437626680025240767220207940843515711820358187057369364600247279684225742405362009103238390936296680595331781249927451324576402445229087332797229171298832234340867824894223446147117364137746229401903137270745760849243829959379968968706104682957856027486912704825057457301535352257766361363269283014794394283206630638650120740439438121688179527592813265896609119850366892832409856204742418329578859178460281170695605943292436634165418092213359302400061102250163945402724597710342831214649349331747777688730297016521559753274833299486966729547668911979418003309456020239073494190186801822589572033463952959878455816811636371081252207202767553388601729367094794390238587974982579326347505925787261089502312695349649815908112152059264487919566090808913823281671379275048236379625135930925236055765809889499122097286096825124177563756760882341341456760236644823166707696937375785243030771518946136933893013431547879060621581960819942999763122366491448096106348379973890340409778841340124119909661426239047944500351636721508408251147806586159619198686315633936143584241329900883256712100088582536616080862968922353905102219253044167363050969410985349957544498827542764474573556091899418913007920593088945463783792457574797587894658365927568104591971090567156291378663911755212694716255790039124883815308441066900532090353220075710878951746366646547928026690319704368882979884220552893448784335260606390778237643196086720381345266784718699225447479429702317857392808642034955670812170934666708496633899307442093985234042639158173054350602527046377342192158954771375206016557453466296376858934116699198765469773900002779291114371736963175937482700239918406797627936150193020695028239778081177095053170380532080585394855620124319666796858878168845054408570292682086100653369604885924156178821945026339910337752235275138592286566082824759502203946742543370493339989442064848661991400363982449932304236241255103136466553032952548506597304491989396803746451104565191890064699263133157497520060682650148807504408822300359723418719151246341158865021823678262189243616963468377903869658307869479863174436202210211576469370583543242893061101807887563092748155486730833532569898673547237129997650844277684533426703540096770022352313204126133470300073975807671037852928499580840409508432739888432640698811441014158224924317132919808184709758237902135616394836209459458837909853366529442620180867617805732472175754439259092252284386211524386280827298929435030496784323133994924735356260489368658503545551924819743749836854615941782886570346948630338122923009173427867449197215818313201545321699779684975722932009518538728659387557081235695661228316857494651663949131652522125178770826236880261509585215826592588500254691337790741350050026694811486894489334556978525931851151595842521090441565806649293893685142727549483932078961422109886935336399997887464547838391404159748550492733473240664918097165090791973374398797870466051916211946880724452310495373480934052491500362790392447187521295610348932256257043250258418686205532300312254245124008375162336888091620265977447078499255704160503670226776474360173838951245353648754889310512309330209629254852297009503299895877581283436567760216106805741602628229219037562017520624414198284364809236168401773104054476537336855128523104568424787267956731256471151597527601970312230731837598491640166228436283882901825437502159250388172179091147386871230495269682648404410659566364910484762986662021777187770652546586465743756510830627813119625487208984710668151279783114003053479397200710377444059376219872129194088300433394206306689299614615765653863035347843293772141925742252440529961955111167632071917063311491032726368572925986700137724270172458695596201317690928577446342878345609751454551288101441953881494444369363528267995097993896196641193182231994938850989923852114798049945120889084520112242671591320814266725295189282256464540500495039732114782635086713771804767635807937209376391627086673099124240158204843342679968379442674427011841887376200590322468585799056554854993685533824422007189777802445052070197707441675997978140976716188401078095353234503984523159410437935624241205855762420275165244747439665643672441633366974505189437996836484940430847640099537956035944693113273638391900120560157931254423022703505181519443818533063161064120772843625160263536293503826037140173126485627545381389556243765868722211562665573710211141555945052691014182093551073564724187159038687005904327282023938676927698180974182191742392159104751610739034544481424862598110551638834930846337507115749995653841074770674216451366257611894087361357116853073885441155678204982167317796679729436916812398259661596878973051487578595845458356135253835816748312064941093901673654738191421223321450567624298947612469406138661051209606221320825603642116038942997544423021429673612872181259900006456818418690633273470807840697153632902144794898789261383175649002749231575626629342109187973586628305326540423809438248515528200827477271172304065403759163665444703768097032351205775975442087223862524809163997801755054796030452238248884612559226642173827684420157784999226954965884800151170086384453815734204612077743164998481039208307002298651952727196185536529343909314027546988672657620169902702366101346125450297410546783295245652871630537190507320599130966139726305559862024485020323375616978748261425795814401898723753646631468170063936766159906611695956543974661375856436043855998657210202373393884240058944607977669078115843095148619421032967690517335143153186417348266704772824674217742005257332039628807213987980365117252459744000367334750998705671779455197152334158765419670761348283428156012939353436973884852666691561855394934072603696865414000450261062588072172449033263311415436432936525709830091301238920225500270096574528112036598393861079749497469124517756798122847625322077355764278592197198738934828996451511440196294302370848193674735268571193146883003491765560842575213196896948908573349719373674502205385841722788759344754301495058341992769341593033388685760692471352747611152533248797705547333921611274997635644739322910435565041414974369454960706373585629958945872940935096727406787185389430728162594147744330174438519152540912739885674100194926151405561728058599895071325944985380705813047228039711608043740059343423572874418710283361496918986575691159788086338216352566742316643257891541886422069125455720060990210072533766758994588174256503528409256947842985416250424580657932176715010414153984841925421576442674718054874087388511310731296676363840878606024775518005257163800614375167445560647894094030647350045207021267034459349633669718832365339637582048570856098104259172883183136820698992818645201786928069543305862948918316034702420628557909455398973128760304435539100601153982998039939220503712754835763825508671822673131329237009292779006088168646331970729433482383491186828129505376767003199926729410030994939897355781208872312235020129721795476649684633856013832967119143938902296274592971971041139466914407906661649301094091960012414513108931065090254497960454778205162113549335867920873482375743121846774932646554449458351398699519888161891745696930456970649332779593921415634158954067278538522476776681423586531052757044369312899199598972392674987022332770300459646991543550855635307660221229251517924667222162117258164494855253873537512537252049782881166879790598773592625187542389646399730312590241542381258725122504335530695671091974360196280873479026970155963802617272141823287353098144009130394754687719055779624133022268260019799981852350928160536985777457628409065336998436912702482684171832787722711311722460111286288029622045382742076246082897458958077977461138528287773615934641549843069678085578485956178293308237914495069349868419158354641138638828035235007683898298803267049466554009353854710151467576840901906903552968524720301206267679053798640325440138463039843332230217167719925278627954890339976192763226650741689626691735570558302891237581397895689796056835294528172994047421575221861758430731319308950980238531413608246471852187277744927733597776744308406730443631204884047843121846063811412348064613124351597305611908870474344620351233449092316175334222252008470693346647596764747811322281862570283136390988233573602175806358157234220118674837602095149571419800118223947274069195854283719105782472130438706799233691953473348988566292963515734537399578214152898166324143267513811344560054346343768012190316022114968078365137330356270078690769143397936441494756564113319812716766774850752299210055009547923493409273948055390863882827101073406510687166512272874901620042812900780472503861540281567993435493336423967926630882443339936728793949257991200030551225699365337620200697159643213505835887245992108980708028315626274237960153039625407360627742825322102009060353372194274431384622624611238873090198035369253967267666513627242456955913285549221908765545374135003565508333334850369685915440017889230720575480960399733726465311602634963137158818108618820419040681385703315239145815054147609890574176001055496173959238302598035312109264213936117812888662464607151685049934677846604501359729125490910781600814830254912973166707368701884101493465369328588177717416649592851989277140142036701269614608159650533669988664901778825343728034232095950960659854277540872594661637182709923928023417473354479446981058769859297314688095765060732435738111431583729450693334880675420353990153612522882804305622766832476457915499246138174241196921592767136104192923546255226445027727080123627020613920747766375994247810446768831338925205096439127845861060619050376166602509523681468060653313143182762088021259597340174449741961429350979882631507167390011187200183448881901961731663695292050242389268359624592968875436014918429251181992644152575092743963559091272940907594377323531382733815595751995685784154852304879427552749518901241522288157497610715497816415870383085499227688662465709897136624984079849237871566253377871487845191212819492888804666702848452444396004493912462311940274653674192998983583501179577520913784966503773816766647930793550388774717957923148263981202555421362363776405181321558103436719265302378182367952563582222581868608253994466504872186771947542950509746168139355125244961395705602429577948420993171196219264411762756351484890711180734753274133912647423635585056368707466765308846435050937465910331065887354677841485976514371713472062283826647378091846053816771275320290303487701459960696049613086359315374230241272913109431016463822596209465608158875798392323654427675499202843965742904416016862375611886272619484147651162639022364843553682196540324436171638289555637570709746299285318798937977112310217461773985375254936423188877976045199560249033789691757770994352713432863734523801989417440822511264193186047298320184107231423803731998814809679184112225013059888740958495233075723638066582058067779783086624876585885797727537532073686890073846761600614335001456901549398247779535687320310444344621523035689417274857192677094416812566734742858974135419021481342650629101644191726524937843554206057511647615151433797036807653380786965269919457227783429367678646394185486620896494849672352844313668089453949702352199980080494823224839780079209270272427842981496208743563556208980966716089267085101604131728919729961944207763657593669811025926418195013109867334115868608210918522867910408305592802078024184085609116814001518789085086832585670692019153073333609941315802227751062091208087552431597323656551270973058873505339981666714233566237619323390486444484448929319585044393873190153334200308885157632818557758528968201680439225887904050879995091249243195989142429274624761809736004173381923614356283148930943610657658199089923055468134721750970914140317255135449662484090027586180408042637310639536327546378423334551942991972549889797636825354296775968521218354183687652049727132812209664256520122425265488884255452200619154959879435534346786947827989446855170878477314639319628389342075643475897101403390053074654520844950089702007679246887506639294798098501821528399276652163033011693019654246251977454230820656685969094024957738579525627488611211578694891650605436634697596609508122581013233718797342142961161259135758594995574671143496959131823170651226611986400880606900536522409132835698475625978047258919509058407531552091039644230960950559714594291384151727300768003434901775576326449818373798407733287803447354880145332820994648273882814678933876277943864158851987846344671631980594073146218927303209798604114577855782751022937883176700418200114388108790277740089829794392383120080416074782813260996867511271323102947976289014730157953786271699223505709724049637194857012751824905177208077432508230059335798664769947753846798905021452578875843518508672329676146489285915988805977905255654517177457330928306818651271251160323428342915318544023513823692734742095174256006643641247717753464148105573306588939454628335572599173864151779614808707821544302157367529762442730507586153354394911378081986731364863471817875214255686677124610927334094985868219043872312788281371721396427692004519881103700384927742334292066228162464240980640502242456599675968424365904101602907680055910620707237132901951571383680705465900943009412709289765412359405073156169206387606421120345936781914910423170555576280661469398360225228880065316943582145038226127078252865398224716438576156567353420762389219995793514449965857948699137769064344220136008524902922240876799190314750910806301632363366350882264613699668174679794115422440422867257319485316952914192751466625976627956079748730935388486583009892669071594009616795313358471864194217983902061317080151555737746284857896902183453024812494846178116884442085902597811180280291923854656896622860306085450457058265280987622945928353968517116982673574928649516849523033439950440228158274893979686191560256918248586773486674209352494641646993988279413530225947145009324001195983495311452827400132132474025710633854268707753531309517818941998239678942929477737820924883937373448272931319192265925903502863663544251011102818161309161296268626372224780826917189948880293089588567391163924877435052921257528222117719017096280080647725513956234257556827275202996969293986870839766062877749319293531206345365284895131079640313928373551371267241246336060028569353067245903600239606656068759623825377955932943129589017125054794592035556897681760637312434578748352244980404398703032392630689238210808034859337853954286897361305445718662259665397326908407341872962796475533052204155480893817417206780770552993881098655364927504528439845588314743799074159540977671186065947355152134305961093954805083553262447023263332812577943934888645582891765669346727755212682972910811031396580825586123277487435314550907850642359330895630028183528260103350325079742727970898178913723631808248652035072798384162634388297005451255820405332951630768752015356694393790587687268075803234355251652099422054633996570093468168877337832431347052647043611193087646036943757277486109186170857077326726815467327734550387233861393365517425870992360448210460623988082879699450689179841984229863027502095762303455346920499937512094930408149705392746279435063027306790058988534015820939781751555262153881151085577129872948388044323973865402923851603196625734925737687313680162487378714118236847613296646696037556058588349956288332922857724700727882655320605651764080644203749908641744400182773741956788653736151528871344258539096676151017287447336223444748134631626159393440698635775872293335287283353053175687119322401015567714313380234142040576646526018133201282140055060733380640231576928885602899955101739874545386984675246304188699803050968933139411673586967003434481472781248573344792235919063184261939782986884243371963763965661627505408355052214411050768043243580395003010123365128834093896556672377272087650657005614021146530274254235592905775032089362244296171037427724794195923969936514969867511105705446022595908250719048393739475880736171797077393661561064904706468945573208457393083451137541619562401132818901020662117360787717444240973189392831049706226779999796678800337436682795898226417095351168990644741220056150372561020000994474581578048845691623163718252286354701205722941471210433309492687540263280521198435604684804395006067587635843253747651256292455685400239740278787954819121120677770079414043123861050537605638857347578842390153422840116298050025138925106402606752794880279362734077965012222274825589090456629491938208868780648610749568996014486274850206832080608050271046126933005717843158587899356963141246747485487291997281340112131261663423318723964421334813641755639658874142226919422902335676912249214994749012243026647727312804309043057004852279862579169929929837764692565019662575054749774771856235352806860025524878833525446925796119919454499361102383006288467481591599874548811607091556937029597339031793844458627588215681447748457883209737157172028480210155963314554344778227990021799883062750945296192310483657070774663530225872410606022368257281196445029361390305710563038835891039264069020579270682455459451898767854235053546413456798662009430816340017931408246352177328917535736476585290786164979203620144393506351110595554939429278211008041316457255906873610957653392110889557000210057784086897602328233909080788990218106219301823261115445620127773934357762387332122255464703868723909086964528863174226723228606216274592337096225223220260521020663498886068930966609770852757854439563668102781587962949472068035598177294858731996744819312001491499536305939121787392497608956773583942715455067711483856988675452373012823364312710807911268297502200507625137300371183236854292782597187507187746799849276776531969964064214442174338925449510993577571293564718197885284642935772777972409501316661055296370874182028402451487493589623152266488162428800544002551261814856567809460747833905491198415175658590965456145042879218851157825090658020464724021267942512309617147534235414028230604507162575012400161754705335492763742159311350286248839826106984191851990142988480749560877482267352700607937447552049998464234312094509426866449379879124910210919184563127060899833631032484460051613038720342237495614611406426029264103549684986641007574579260607615729517948095160910121872448787052732067852197132613026536891417320928180608410348753104675740294989181526168182592974095516579482841490529361574198512790469241569378230865683546572305349203544330830913936104685616318605197104072538564422769222604467582379404129397062346536510216327627081274653010443986080218462533447509113604266301284357965737372663147498804930754595874612069781736262277635996772155395964370701135230248958707623611212662774734848317804810308395200685391910257143906036401845110919538364853326957601038879316034778394598074253329224175754932750170475741597598528567266689043026888818123910600754462648815732590789966266568160902553534823393687313174348738740120933949610011275727418028480997139549789333941652634787061298142591101183317156625078971796184665554904102024412442379273563181057655192721759535525202113989979373103238419042189228492144826760877932942796090794652639861775048150115254217924595396603944660484615530431673543302520751699854817085356126835237785952477251481311770163279717430599487989702815924270809916300555441000836866767744628802935487576711385092703881135560920254100401287080598284914511027925164655682322064840458421514078096624179975595315122978199614681541622991510180288057546429004307670229261702784075094162222780253836544393531577399524840243383509181353142673742820747812747663165720707019905966714226803095437083914314653694521346171285462322865127396426373024035064684905363687579818974457470767287534813622488263729812336495210715276707141163147819991432196372910072805798946473591358920865206708556131405322370620893218946054863625168683441600045970346682476842847416264411965565484179118807839310568247813575899325060498947046951249656914183847847098991501517934163920376321400461541293594392123475794744954583510308529076357265048859897740121415709969271672060458923238760616056643860244026899263178374502346797368382042211284373532033825269139311343894186385785663399670955118357306175579515902716476486540068727862655834038075711380734971625582277308404214668000401411246182648839000086825200588703004679104816591058765960751486370579832916416316699427639484184383522885629596054355790438175153575589120706550085505868554440164558446400884765353815233550070503135543935332609836324931405967211028202244168055808613568735486038526243156239819693767464255237748313872153859053509200343775689129553710352707030594275445255547040616304206218191609734028084710499871679783297745865924733275450851917795133919169786038260783011204560753118986451732086413825477538878681732511069807745941182574474546316876736634892824055041160606977476191639822349018315761153271947550277366647868118690282822911203499831239948739683887522409157022690260764102648055466565108142319551955529609900354170751501121697146223092345566162407486401916110972525985498224298692458076139518779447906961767677766538260970484378689066613851022109898956315307722274468206629526445927195033541935528053086938379443841756279693573045488406875149242613517711451509024036556089696328690126133203444219185100220254526243783479454011210372915019126231982477534582045569451240823111201005831660260582292619890108135299016634351740933709264631582980460175954258692050472412816428294078754283008562049714397860028573565686589773652874970643077623882517076274008848045218255343991995938422678783595793482591046154175347224643963898465016286142069580403014662440095798108474521159622381391421263993393053865817418584302849533618329816591943597019792946642822577830767369753301719529674990093338965011241080461258702631822516433292295501380418308336959887545444068968467125675074738420602095242237700485785092879289511264041024233621932358657756239274936435387813858197470242673969338063322286546006058701456936648950791463869422739982582353569841902059816448420231741065131652062045934284044763439326608693002644289441632396221560496421160588587646236345716240943662757434057334448804958232498386285250304365099356974952427746924520174395231452008265899686730790540924627534880597588383706641273633357710278158392969702608707933157340088950655415180957488271303918281915347551641737619979941301658919954669063865669614508397272608570410685530731695732755651269122432030555449989883220219955254677081936228496430335186792510818242152329251500116108579749969706395881027748860316401365921280958816808422010991475651557213044506864641318663838807819450482857712056649997181613514164961544521479076006081477496720541303940918158481497723173481164555335344706041722309752589530051296894639376962763459526382997317706438437845842491219058414915687931117321091252174338449067304064109840570853279946214843578849586984305861808415503820856618220092857802100806395595076638296800148248100647138692402823829754368174785718125846722576376545163509944488744278577823186303075831750362197732284018793187534974061279996091513761156653992043672948218518043108529723908438903659968382516731277728123197748319357335145092587292114459814801116516001996410331577896794881546442835439467657255714561135890990945409567480920648194340559796100585157989464935553072068549371976233512246657958160076856401680719334703066104850039223182246902500553115033865282018533841584411708927986798588041531686565829934909418062459602464226196846732580200557273306042359737995285309622351304796426677873818256284112926142469871752451258968615600073354393759142498273650870042827783681298409506991834951860644599977532736436359637782106185318029361300987783739743041355829774772641560702225166031388829087533368863656160723371282428546723453567210745823065095827695070177900460778347508567567376803222887139615682912294331587815417652355420003864773634894026314881177552734499250754564118906257832328646559383167423581112716567871011419400741620166227180085169541955870917645387206946433967481299027820026102556067474944932162656576781442986111109911459083493033241991127117446870742884053630061982019596658896524353433755414003782456307017748292530517047245067447989003108480735321557078781325438988532619143791445726903280474326311924506890871829337828070255425504827785760466416771410255921768039465756964386742155224783823981656643926956766646151872904734936739388755494971815575489286159979125397815167283465744761815432929239084277758055251705704938352687131556756246650803502332923448905731481292008765880550683575105777232643808803051985390057868788380777665683146984683723736715240325048677100240472629875520866035889961069523479808137682998093741195822436906759400244040644532458264640918050204412387401824452674646419956870409308746985276389672216964413721338927496001566842685301962670039255855615661318791682179341183076193357000360482792702741095633781908825287341204354022918961271021034167978431014901772235426260588783198019194425165972026875127164677456379120484057913964118703312586792943670269415248107730459254779197424421354509791192714033585231747513993529903412138248031858283593669409647549370811463971524961294468683710949671994368386481940485103840866920465060044302000019679445175073972398373993380108510050611497627011266644718344168782809913744674566603086657815724534165850134928009669232940944994692376547244386170765369934078590788320452792592839958792923705139655594071110888534222373716329849218838665776275195895781455907789498097643328405162151524425589300203806366952902879775875600799112305151259946303638363871741259492390130208542144386491882488474568545558801810861124598829843193959348536107450784348832584276102365080643650732201920015119412293493117439020624928847657719169325078268480489405057346401639725686695439597868773596227144013762745597746581105041335355899367846523268364662393949707910602805225493274281705536628492680635066173945334957883340483232669445770020368110287797475475591576741930052487777115257107989445632868385493205500176150341682160311863970061843604242358245212618772639459592099036445183857957808650025296898053087952692929199885375224221412100899058548538482227027570347281615462441066685732819773828902215921978230566331413620714175645155103263910467405281768737722651046942018071343188372592284486120795178506911540254168163602496308143827973120946535716991033088626669029486616282059591650437960570096342481976883571029107385474183546285558063597583989022457248953349954352584815655717501470430145438268195539072259624748427783280249395957215499783615064316873385006842094159555937169479420078590368332109775878833896287263056077448716218590618172592396770308369714978788406427966008786946787772990267954553380578489660553108361688199998835812173207615938577796174533669072954167537713599176162389612568670036975717540080039204964443555928399596053487521477926246538927851606577394133998158873547786651301231015537500468138850667429886151776770877410350764639217347098113498162361662636688986986903715541796243216257280349011959457645661568280597260012700273483939491409410761444814985912924377050743930842528739083745401283796048135517852304251688762060837360266419391008286649609441649457362875846437868089844668523615078210785319323104202668298497238099229967620554424172620492011972996663920191942952017017647834016595279618594407405535930038556608314023998896785775687731577620647729710925655825126447697547955272817082714600104945559498510751586215218153532444386523297617941314262440537678413375487650346223655973719643947069994549508291285683833995844127397095349981990070727664138437372748358021824508931234344779883578776198009255399133624081713128061395553374485465874481151845363010415229716387742960139144637502669720040616163106376581901751336869616684444769640444847396603277264392728065426943071476091964083784516570186011713079917772649538696409385300707618974954902389673485151840709342239796403476155963738686657752166423086135447020200667312516529566447590512638422253801396371453336539923045320517372418238069657490138876647213031838970896597140621454420939241840071957692744765947532917671645981110104828372056146210882238371859933353587189417879497257146047159566567531664484135647734809467422546541044433276440463276612996500027304976714827108132607790167434414488122583276729444512590971920277228400345148436178570149587016153688403735992341135193392113119663831084080574083583857461568262647757149704612650866394750011152078705648466271232523513370174940069655906238665023046159644086895523988064392533293598466796894599355502367592849855330525669192885849125240058437684961769840694680066842963916337719683382442231033589663023117782210167734517110016755413530328383537002954754189718764549627082774608061677153095191994167158781938576452441272690291876101726595321855302552516176956223599550958604508872153202517913140149974151299627835396061235244508499779798521522377626988994966616776488458823846159930254735722453638360422325382495336571539446217303841693315648885846696102978333142093381454592455204346762352644603038352839578197270689968403331762177382675514279314030327581634878471059614257966415887533872372394432357920184624036936233225141773961924107994436843993211727392008009135283303900500775488942438250212602691418397127527199342940510116535488021220577719208540136533551569497158054358517765488486474369217708420973649934719962003631122807082467785310212553306582673753179384444107143320848161154897488147802144741627973790067164295977855544014670137445612464848400802732094781387570349417904483184712889085882352123922686100886161902625074647380107671735807363565111387204113308742970677657361313171347622594428577374410612884595515568999922292459134081931481046178119511534978359523791092555271422403503735664063672076916170859412475518919357222982717363191562319794548711692200906627656828529604420023889333362336242854037097325971755537094352447634848814223872394787507232728927257587288533818666253308946190622333332425117851046699084699106825191286984647353168697595539157476234773109169874479895836007012757026856098266715985824849729366890388751470587736552736530403302532927755091874766956046457916375745958709750342830930248152629234020390938127297918649906735827802223896891462796949174166555160986781595772993238577246249082416896463869569112615393586030842801561745998528983544835386870829271316650469452875370321779191123821513416318103808003182489181903737681835239552879030071112273975422625523143751920604258914093670548266040317071261669664008824656217827501680981129246499985319904781720828512205651210190980931280597297834031257360740395929378191067958396797762547704408908667957019976117152424507585978903660723090108388248615118135712186296547243247659179116229106920948979598869815926768781147596954767454622904844425430624511487250149231538507056458217468644437207910590087335684544865409348226030770932519199476381887598743323214761991964364012324878420328445048590627322159994920291427034116483446525780976036169587431971332055059773702767836287924685543157983269066650996517354664801697955672800505220905452948270129899881700206830441759727479453656389954211226316890126806782711478146356744891780678793197683178527713854977720644920566398764579673731309661350521026755925138918308232069202844227985973144881786584037646441050489902047065587638859333489523786725835824165221791273319867657733361649589110138880632674960455739266207557719348953927530777160745376571304474054434844487068780366578867700142664376892740822509954100537743950738310795114019563274739577255457974455462338381941248381982476929698513709416498374161316003004289810463873530505152426581019615953175844556105589047526086101191017295084580345393648357019274719858645929146305246306273544460063975190615323084922276475959824697735228536653532120673820844597401915796524354440636745949648752753247189958822228712377083657227472418489297551124460672820398560554490810447192021412051740914342589416147568687671483936690208844622442690251864575512184614111595385583582564634297566632408047095575161683290344815660054724009284238872368960078285270917466129620231980135385104516474742798465454417552024371025519167241811538555287400997659829827720173387878015932824079455578846590824084993503408963207173355562197069996941980453932494575671032787687309370557662393109281379865954244171279222727139944577715999248225150291634141626697312823356716063660899262791946091231126570524888285022164661761852318403756878000443828316081782992959868286098951977172339778025503424356108475520933081988655502627461095026699136391174501648552961017223895986943909052025700274609438048952014790979011490725862299472600912399714742494105700234319024976446151811572230991430330685558254303277734485523871310010143667133619473439044413248847949806452365056243923435396415887702628425126155797227301622877448335747897532109794155650538191940899369383781205473569173115371498218966916472547080365740961708972122237368895271274614541519324774543811616542571903350755030652929433590991422103082481432552119330199437524638718743760962525529897264661081960997564493287443016540262583927982812453722217091590936401218582856121830787819990598929662081661388198698126426941538432505533262064573023436441307965527693602405262896926859276084526297530364688850969894659247105557001628138771316434078351815210694534317107117798438598714993973102728534647330137373093758926186262055172494763684820559717364595230483300049045897088242413936577195527515941122115681493338588749930247370025499714190255232971776291116049905620184654138688122835890906316324898273678586102986612127834091143931444711738582753184775069009507573196304471204615234642943544532671872993105123162252548066729865368685639792387682150358563346147156065532103055115173374867764594177797509560344396272150871423461184235554225908766538528069096352048976295192127535511053083645259633225729165566538805737445651925706370656275359592761908098019429845952892806500163899680237002165688769126903759205358174309093130778286363487336121755755567448974735257608311243889044535518366345028831135405209811345132419622493833676020367152466968905112290261121511018965704079904974628168861489421825607053589275634661796282684462878873340591973379642421463070745386997484005818242642815630631562542238508968816702675385776028996362333688399449486165003251661985947658595851119642999746706231488265457607666749082074541482568666805368130228786224154280564754890638666713111081459505180558852741247850228864140390185669721894136801925318294018059117334478123284994390119800237272736040321146257026602290692985248083737030763944660006456438442368382283724969227118194519392481684717052417649027686002045653088679110955756014738283953817103618277588568981617701044771013676868779366821162195700179098578638213399759208606662664926796602377140286713690363422310131686626161583454362349940794845835789419936882496548407821029058196904005089213384908057182867391885013906617376550947409643333401936649707396658181196996144282902556535757557574094982740005521012122069818438458497094011957336368962525945935655384106992617833712184039067644702192211602721460673217003583198327590049770561228304789087020484054304548910891140887586652595221019946770292302079026116156285332188558758407435488505643672698628691930508697908323829139459010561208497830851325920472367640867511678819008495994085752435054955103117153888465184392628583717813858305186077215268740712324323426385734541748921894391152948055167122051991278696207176035657890708558638950758635878712347120627478582144765477758740768510575055993450621914366097460765028250325444742937133408290088095426043582008692136471343009602195772241659467578879629533274763276806044123003370883451386842506650682778304904924922054735506755672028058958073214085603545936729689388870670072923162714294698860753686393768623750660376053440941122552159221226387867818974211239427668063689307761770352487433705337846545012093381642030133983556685814724417097451786765020621008621976512236379116786443899448137164448422714212112936944739938589374873169092145307571456501250510042240185936617431209145957562206600028719344281833317075264826566062960699216622901360682003096603968769160078592973708399337815328262777491338909186167696358945378974876904414195915637421910051984210890976878395290786696723152012866075606106580740272903045895110578911050016163272672511464505348214303625026720632470811209282409082597947921379231677108413205002023785132539822165237933627074281128041393019654004938606139200788952843050535526677427170376273037206225203821189853476016850972061087033173402815865541222377456393006253685888919747766049297767842817586101741851673870226197428330204989757640643228647105154908594062532428094905375175653881385169746560682236612096955733930720432015541582704415263163978045477887529951647669207081629551109987832540589804893255775299014293805143138124868547725195385654199836544038088320369848490329630027044074659507561196198063177460059143895598307164311437878437633309204702428512184932072163368087681378959741484209021067587348720567608909530849841524960858701459005408650976498880280688636633125263055626912265907689942067733023774650675853959854585665677106902869622414187162317377451060554938930322919529987139208293122576279834202704966089035871272339639927862783000972358841452807323822893501238799069210389176187639059500121501527272526444134643356145704015156639459456746815542473061790730014029304460099957084855798283003909855193198278877598546180647463729268345905396595572812561283412950458854163758169602332560325764393877081459380554452328850296058005521542978246484518118298573431186871099648990633503234045170489927829973949584180692961140731561740771861952591740761152325485002667449520353602299578827468769023962665400187795124634143007474941669463741429167254156236405600316445582927103760464751858712001885797322405190166545846202216167836795776412754055531629985215597544821068528656126982291617377991076691949640142167425452776726285563840092295641847828549725165616537893388418334878423516907526898514039974746914789253029775792702757057173618005207413288440939719080194565315745351838345159234677030192334336597817732977998320071991682301465834874970072091373486500801478682055554154774412784114467581275068359095111462640066360973191135310066393530914196132754466661342875545978074165100537763549361869520287654076174720210395229277340130725647081515050859748863865249545535296821939156404904707591764447643254425269367918483293217120912031006584042532325846342502960918395681445278680130516868093026889996414754196587954438308689124661791572720012821884148595426477530385377361094989828601279133308560497133818315038774399568815012695979993218556055402940085074883198741547804601782657857568059158441704214164642667456997245595280416284583999301277737801393008337571213087663077144615692662305961067394535469420399427081862692293437607574934527895450943362636451104175542537152431055847496892914538840157978127235842467407886867329610902933737256664242011485919027866994470253592447683800908737328949190059319435556066589444118131756339340410505441960310551044713739367958429129413150131208666306870362309891533986599634314677201096477019833858763590298983794124696287109408168852632871032857114111978342437654216130684618988990910531371541946350095926165610192552467031418887385200470653529536673934982245182692933533207321862594501925471660202585386659114888355618685766648622258728653402736831671814498880522543268742032526501259723839415412288060643919114535832376536820468111486138316887981560256456973358152792272887037930652505670992718692870828304799695703155492105463429288859445597769632923040901168018895842219378975818060794019887687986855549636553017761732887365344810029759836791369137180719934439224676232919396767005337241381429518312757146877633714387815636616154517925626906053303337422116908437851971195744600336664330471401471301723947598621238828414697571644098039130010822302015505986134128927467944471868468912361138046330646898515568916066426578495002956844475124179487998573155628184956363298184976001719721500952440462027190318751481940501535337265402276557799886773300888954297550061417691307958690360482218979917045966103158019122420146785655501338158256929543900887986769250513584642006808407037833891103033042747508040382535591220607175539023209195452285584912082595402576548729017452995829444827171341083531507860737132932994311773765504231329271584458664433251480988967636390442823624179927858321064530288191899926745526496857020993268678765374708716798348183906848322355872837303129911546192639763234604758930850657618172501258371673455836502964436167471825078228856655598727107453588674171934353430335353877102496139368963045884337381580793674296177270564259711653717312855265149305185855171421263153909887702537933862475553966894891312407384747822493215432919961345077946372275074308674660959442427109575368277659340270757029657315368810135001308656646362639086586709339866571410967763172087917375187043691241218577146485282634828631230849309268643857372129906450850822875527125623698737546442642700244629514859393335395536468703023374051267181103079348469341025138652205892364620878254385271718932353292628386085216566692167346123012732839560028527630184803346628418431646197881136987846763298574913827270749578575749249979746242838690048242351503161308232510301378706844951609539416028282019659613070079856901585453979368860041234410545031365433921903559704449477019607742038771439759862230630558146990355058392211536335322352389164156143562727846295562172901216459814201690146629008708364875978342506972058244643773479088562685486060605558072559070775087957720789674008462336704837073322647029842865204331159623794081262717140117484421109700486288837488760422102249652960421808053590102966836908348801679791157776207690972226448393271425695806262437204664854805197768736197207762088928394817942908821285227892964149659129873201865668496159641762903026535733535124750220372430164906700818415582135637666475731020497105486861115411400058646935099179413515794685090910906252302395207921225482192919305988341889128984640566272886583858402655878995891466915610319768959450537845893531357798766081838340304786438682835721421376000998629472595595581317757927832880235219241895492430299774486773334294187944316986444644480078240887033214493425994964203654273663188598684397810087055949961261902889730027941152850779580160749767576621805457498644749005888809771589484731253084994886820097844631537130704066737733169392139009515248104990197062472709678013777847987293567275521740147391224551864146500971399649733515676698639358187056687224241510134606624176825032307351056782303872714846545483667256807053789179625043960643644211316635030462498757512747001670350451550877715024103056884064970997976874008106595545310068283586207988573180078371825329291290145152537198117216314897562826593321582776504203140476441918202491070671919412397428021963019102205564924889949098752450818859818141090469838230600071342049761141821620460739460848391065132507377068110630732601564758835802512481612244901797486481567744349209984295508548107207350000796318322132295242944630659916096183996478002485174147633162280830148555588176900064289253176123330929142638646460292657416081326184238965068749281430647686224298036112357930200738848660761699415090156509599077738588674751363104816905913164077887373864247169574107539565855740512967049615117512485180023153620856649875608866620339364190821717340475108710898486480618208961851443637787856846989946768097786069288084954873391726223763476533381541494022962995920760328778071764217345349893463070520741832353421278524239330508014221730790805180165109699241018784755050375820516801016120460025409204555279163808634632454279955853940774833706417787222452337274050857078585934790952664151599321101168585205243075616428773618153367592029163405779879882645883376890908439736879236172491426624340674357906340462583579782388891312828118032246359316154565434286035142535463841866860933966360492690413435192854404363431971799371239531910724877959147301042416377447862213480209579552003915491236040380861046006504022628924201173230632867649081444290699912048364157188986360253770061078375823976589739390572828537191356337643738579137603132569855394073462522072195500222650935901852499121422567415284378369346670439316525877347722753773478266916511227775266003224635272741512983056238533519667002779176873412086108253864835784654622534320280450380067388872247215002702369024572237044573538315365608666610483529457835792724550407249009962455284018123494970256065309425015318724777412529163110744044216286701483728210154229813607056083497231273112377395594503822932773840509590134519694652736191588547004744140565664436830516868072946332030917490403287977139156338123830887424461344056192201233240881258811066335342836597342805484798104046424321333834723427997140400388389666583075145602352116765661136114180304303148603126107981550583472551478062248633280717047681506496551514691225807666749281717848455139187429431760157174007446911861391954878561324736171237804188652699576717303292265963340758134211072001232907053175669480322850669610381183847799489223929451767456710556867891842424908420550649469336837528353767234361578090265514880485609571910375299756857970203518603187457675270316797299742414304701916324142353490981075293472926763724128865637797828847080702357818396211973757779334497131202583160451050047256553973298918052765491773121554105659814693724552756324438333819743326479105971556152571394533834810660676148739515600549616147701161217826346695706645453162908706886469154037032309505836106605877431000683423659556684872192029130607286106816075979091974826511132135963057912796550891180169923935069678337554811662816502406271539459286139011791920419666290959010365640966399370594576332322975747455979194779634895963056559638489257932871383534106439198112363912639447748380581033033359797931523216585692471302649982322400631247182723328128937432837552492933667060877100432056502342105510557857126986291252667043104080196396754847319489760185043268048438599966771064963373848876684244272918618555537323236421569183641834620712310032429637402330777826363674078682482512036649038525083223341638767711900406243137995096668984703273791838856399267651568951068271995960825373672524048403899962018671708560137366782446745872927657791971893036677906759093236333131844637292389980505808260974458864659678496882435509794331665653678877808284077208698779877681230542198242752270680104952114452319566835719358471202080592162389741665706041252402646502647566936506081610455404615253771707124433872386552247254424735994392449769439324711488889830070165371801754510058541634863776955973146298321015031492145951183869873556008191733820804433362751921001337253324802245386668847519533836696624656921103906511802749380093760376517595837786994936445367515350485712695547568163544167879625341553605138256439777785457631297799030272618843626177950622157832478225198887736842803949118241182717132919962271831509329137719072649339676995034176006665635890874656719232125701626601001517885235763770205944262554803862467526485402804913692089489990332205703791425021888593060475413590736571963212185362197214536823269489960277856771824863915564674172755233770586313725290774504664253685411415009266904838069486121566564215028093626122386143373938228658305135762867942391867407754834787664541198042244885454333999814928180320151653338615195187072086553985099566739577463206737023077075819148850556577015483636727597418316640069658434611936865668234568820720687379335379862305845467106451623427634285580943831511811763621601690063488924806181331335465411228507724842684732153030894030836313339403588388057659435914888670989979741451658101384944681875742636251563967915477532461184238995652016243089832811838212289575648324832639234212333360330888306099052715693646440167540288550656673214432356998745733248710094032570128201244415328584243598415395237291700513749763312012216193262242838810369096531809007118273562017195583462932019582126590218010878238998280565363142565665499348982874450257626826659405617641217735821069028025544789163425513039920498671725181618588225254445746156245470639016965281572416007383387968346022334961843514946052338305930592268317751308141242520437915812354686683674574071122269194351090031015332261201689669394243043301058092348887492618587535642326193296667870166497119734511235121101676031500232173424606120596493921463293001892763048042011997539025679196042553799625271779337069989241947270572694891498650145646138676942466745531853459358242402570181268560795742243096244252718540824164863248495918958043697762813302326107862789063876090922184958748137881255461906430281388131489353363207868249888469697835054950941856768299794063316198037095841253342211515239980551040947533513013144887900767947794675473331640483788112978278043398324221852406653324479586945143699240621841908563753593824793237469587347169330307353060212076278867341157170089377366565784266418047370575341639818069154601902746957542907801924776888822318468983334450422895550838528872231362102418983139116005211389853214748080011474271457625861011643871379492394997226736633402835478104010583981603363876431921827892651825130642535539898767406554417989052512762741755268401867522996989840517931610462947599013904311056870881999302361371855289513808766423304989591191407981436756313219801965390847085406553488507992204940687551191167911497753736816744462195494606601570353181420447943286213107141574255810331834300183112888381522916040040491111115433747798672767721218916246553891542098895263944074347453991978827112064385783388515518302692348553585196231687091149057388810870375152542464626136195106362612238177866549996678735451981271621113721070427739811228294928161895651213643665428907406331513146799685043393542824777300433886837102088355064573286010025057951996282576948901666582931707809779194767625700671433771275715748803430700357940594254204316499176267253205432818856169244875261408932479115267670362320853217731433589306556372812213501654591922816921610984867617622217283521725260366044774984684932921296741648213041341332211799269983454516875942250752123096667342777186691024997789329326685188494708905815617956616877442883195731919849838948108804299572003134017131689306004008894962219584708546222852672440709529508221717435108100773836796792615719432052126335446582822434935539718320140969690054680796290836956844657619684533554601088643784466907344495474025477654660907827834615823936135051114503046342416203861116487851161981041020090924544909191615584667715565287145418421994279085195731104601661621973630848404771045457551476744364959848639453521237191560679946280639428071334207720268713683777186690363712929432447937927371835937750987030794591013415711472050679593517663338204530521357631064702951741565369267424862710247577105093182684693827347822623311855491024340832355184998540788686123010259501030059869160903843596925048232121579875639201390934590851426678441304275878761828741891288572329080470659736802923160883813924036471894877188745265089153132174477717087647784854262492927077610604355412502954413664751243307521026012365607115014950229010027618120206757467507277030290053382528074518759623489771048523068349174183484329923551410626964556059908963966227242968470665197435057020942039182094615561031164182447241717463220064818930164548506318203078141203002207126320763214406213780376169569439910598837426166580624085813623292540706422646228373902874797293521372571591469692217282502823946746333054190470956454300866090811686339798120760521398430752383103239267869273157676245602440230696610550798256737608823649216356922722978775699614082502170001584016081015490231043434115055249988528539485278444727076682453910029838353070763663220782999038393442986080173297255081410643991849605046018074245275367977759177687048316836712024195073274585742961407944116505660284109745630797523285281863366976249412629898831842437557500447640218171200131552755356658470015288868164366588443207756123989497409793509741950806575037976605129755947710578819547574072152876979249559888085691383434464031053927842056784474986330880422757779719056117256390698093881402538395402116704453307962914511620074015507311456409180584947803623674122137282899414193283288469735741694615012050596061515064679490688398940459776477967502480832736961268906312057109134098212503383297954009594008114945948763493779743867390752584711069756096698067989597545339487085255528397794055929388156613276553447684391822929835223993977855227262830449129351567492193777823580329728197117363499684491836580709465879943558767661947885382919635061041713394577063680429541484389579638288818022590320327781968790357090505584617320160901047820691029312626022561905460989975323164014297748394883792226481374355014159660935731147675410360289865805650134067747697068497409752586426304542625464539576277101343226285774130573365634376369056410122022360957529190489099683087138886788878438731377280801922600349348602620334635894443439867567746941712339733764893822244641919989224836358836214478686025012273459534086415950348499283432710955503731947154379809873611462751225259923825603362059343248711014000086925930717638031737494688904503585483030040228663183424759554322544124124172108516892957678053363592015746015817394336812504699702809434761392168573011763928878589524060393525573314199313426289923420277629680002914095456274558749695599164729113389502108492082084510528429833376797450182463146222407264390706554690537682868774066367201884578087017132836024712045509470927899121329281868537447226496401600290257164480177580004927136389588832679109998662265573222350790403310705097406567060096533123810365833820838803796310977765081897322787833167169345548528497784462190614721596802769419017259370074592006619912986307525275370777267377344880482215353433979584312296746235435144668171674327428179917378388172314432231718635262805316343916647150416621920070013615041592146465772655819005258299411508207267751539152509095999741346642600686004629852861457851354863633094943202329820137551020614442073537020982275144515940671242603584998430967020774209304503961989384381753726895468655267119885143752933483711830312934151693675649683180924063492869010768016335296275721299351759508831500081554947198618904040806913114597945455011408427199873563156827408388250657091324599681226037441149120158907329459549534861353964740408682386538222818543114605400901312046906681099127482353102096592325231393910001168728623414870207529584727792755188173771511093758997277928940127339683501617283019221791742906958958481426243024574692195514937174574561543298185782224519953720066943436056544252480826385713688109834608800159809970478525541587785176835354446450837380010840028484701563433685607016355392538379133979354895226632088026048699564628053997968906477020623334208407564715406115794210837402395527190806741158029644654923165035057892223485392977169978368849861288288378395591226296215775611176771144590762754611296318278168514514892557454640999398164779324524178198353584848456572537182085853381253148647030413654006639941207698849690019025012221604929417657612186583802691766462418289634484886701577970443439454296919769871918938534853159671258833749541561633871173750013773789346769520895190599783574331017249096326167060763241129714921530332144416554666393428026500711682099293731628303418310450157688433611126892108782951596487163453423127691069733996381279207433465771646184522056490358238934436586919851358090937368662393301368876890238942499845574801952013035732606425676577142545840522639162126280833103144354098973753956513043443753626497770497743761052685589275838816991103905226587806230114776513978230334740491327767492055755030129551438582895192350323691984697225754338285287605138860765128943194667342860764084258514666472515967027552300599881471933043914067198570740167349378024379300156781114074185844590583620134460242353150218103765583064517760015386753915921731498362594932124941163615029143871925686373455768601440004279940473528287189052938150807762306530465092874367421728790070341774051076393308140491116929142167711487059825733034482568694256145891260793708133216677612879674594907055495087702343749771005629199349630300451856905166691188463922204993406059997444537906717268188886682598042483503815530783809669550843576104282322142845239716397582333337130897836412333135089918469796456853057350967450365710589037296747126014660166583309868119904560106014747906020651654217361913107176092566480172656633790820321793452677496175194616237897329795834283150358839898570744171607088804989797559697393358871060239108372036393534074842996610280673456094258968036065738702821155357004605401734629511243449273387600531377385768478763166869800148665087150722567449691246718038103737208138205275798408506834249215040679512363581403277059433555184485607277203038924680515738818478427321073691152773185756970121518215284789485706942867391380716602946456858550057186513212572776693370829317494188586163609917304260062460397606403385898276350158291657680162724244959812036261144968451104207286385678130712769430541006249874657239984869606658037314600914437912211733036942821115320630278797603900539327192828451472087783076657354909097443221005808958837424144202836398615482970461741013341931943746018105898388281996353955516148914585025195584398522393349494314975672106807605278969881401166788170893594689845696044166557681000814447016295710093808967164719234609118827376863061353934067882988237291342181478792512314448279036587111180285548377925185856665363119178488478015675051005705572932762555046113399763018443789632535488314494553057182579335057051890424331700115103481559501591670170690669920808083052488328022650802282147650243155442080849543238016934412561715817698740224329971489859203652877125304520688992973110427811980656319014239491558028027077782507550808905638124025565329208638045142794871827871830197448536092285236528912140636470436766840299298839040985394424499787760658040488037264625441646985489756923039166250542442810936237700014455177819185121793166340876722126146724319498121594095661541484641010434533145868062050085100375329106050878449906843671644835058187904937378912769069114549262504038321905992059295972810390282840908679953367388509554580754909417934608526357211679114578298937833066513723600852775359176794320701407247387565335498876633332475252415740315079513731533582068882444641348191994732974607584113646186957354591299085079373770021188481943361274854868164031623277961689577736296163675776212325421873479113839468747863417861041929325412580577154800615231362074597683583938549207615476717341441053120069172506626836680952717852846077217149850813979115507508223579095773215977333865884103509180431985363680116581252113442471523131515359644281684779953858327739173947637697887985487074819230814731546994141124087334252949175558786630214111453417566987355444144325076708914459634265525769249090305710171584460512008575930037287124671590523989574585469417299121440947010216147380845888522547275030578269410872795147199887282193828775217242151531635347259957541233815537591077878141429747757747450478119815267704348716923834971405664828522845521874880805794438433921153039921667114928625338841755702743849240966972575731160412384700064097050788038349755661719458959626987091154801383252375175102740666974921985586401658525911761785501694698387652186659078292230278837993117786710007403705997935460217138629311678250112265405614643168464654638266360829006480009454778482377809164514849853400130209457266437512142147171411740490940216715121631459755852964824956523431279141900895527331342344796211751560289041164066524216753142716599901902546927191630836307594157403140514601404358197667248090287888360482569671982564269069978645567670786749823535852783923631489071835210641141451945492175025530812683366491618204294666280868649569691091752632174088190956001170558060632505875696450538922569044880891568840319381043069564500820095103048929541540238828650097100351004124951022597045392893717127474952142151772115709298467778180661876874619410097564998106189709041781222862438118035977307950116258089465630006188458141813529172351658374300144407227708975884309480539366629417876448900086142405619953233700848308231558225039401973545168647661421879450742833963569626456602310051031258189281112544264343818562867728856659784679319499933285040572359238976487632757748295838946424572966972031492475209633587213567972288465750012477884548497830101170876020038644909112472802833838016301172181787049315993973910850050235827583285562355592955984296219941853177443943841268161823704273866106571397852466823864297055093725156472562962403324282440469128622126452188792195201602984904895974781775084273421169553725049434407206902786051970457950090047167632181790212313702047340833317002300708830043103778314649449223538147566574488099327189449791676900881526886054320003269158441538748886251257441825278860971148302661727112313511654626990437610807599978733468300329521249646997718552729941801300930825271928266155390815004249868389497272683948429319711909734151299205309157729999651106816720286960884976568396275510902812061225754630587331852207364049302864299405084277963688732087088423454001973472271733820050749439519262260104789996945011148335367172905629978747526749810989776121705947753286399094740000399297319678660810008360009741691167656682053948983151084425339470389971001924519686097986311633357763935262779268985745522985863814390756952766509252210208055212108411063506453287018737496163519655244750073956858151400071868840210140129747870932854434261818746993524038467794323606902174095900235432339375332769393995989457376033272708080375244086502741133456033855212742255391477874267113485251140373703691116311233483602839956222841912813291200340163649019041992031785514260954449447892656682064181289681523202205499779151619594552212789930091906754580237963782795941030522876439770872058571161658858356862547640776198194808492450923333594741383664711959892698448931512946184891113504155369380984924225852891799664547093495650046697530898142919913657747641989954653040130023509698786275454705688874356110448783218144390964082596629867973823857504448322744014782496275608212128937952734504868554883556526655941857305235356490456731213665316860633991176485129536173724030144246824691887416467121244365438270896232685180035615433001334031677417378616410223215589311305288802742664843642343007192988334651794427349869187839534634660330401074803107386445286833768529570747438885315206463098314150314479644711648515485446896024266864047816618377364395754265382364456529418273192564461652294423320244451824432506576631335055005403851419642026795557554955923876746484651002263898778010034545256101227900082945015572709092546851152002475087825479746863643370075335731095552269616186133628946489992565333914392703149172883416205520239010765983078801567341058444506689124829999458692153610806886669105205845026846236657849013364248003940293030160517258259533928461145536569578502550804246348313825535177530110771739407920223228000782195016682009439388819541832409525381444447677010424068317434413871561100920671802180621044370662859291258373861736885109872394678086736908801082097873663146498899009931741913045074095073997756819962322779027435199949487776367376112445309013669999601596484640655741529977569206451824828285940397030176694718086493830543706232006530825397707990538747251890935399548182721063005793058501728425602001977970604446321267062145795078855799787217914009207728322731194629151506748611431618629918293139906385855415356865800019813536344111006027518945718144834449762082387836359056066409174029367941085811487794108613691229560461599549643191865906480592530336782071296482533360930940755199666332127089309062361267053300409064518853401133384950411843015469749088716837187858468608338347019515372715461812721769635327716024256056874481347662206600295301934673904509021800439054474061569416733821524701606787468730129798632894526984960180679315633735452935566682272975062431379622128212117650161716990357641885751086730979584873117742465727778375418955129311415944962137587176458395973172061936978846485382826528298861997555132809805135778077043015321352530784638916489344841371123566415942327840284351674671124416725934464805250791012510397938743133446113888038006722704310419645144128257802394205433114205387160288506206105990829778754719577644495228746332337302220649803162046529353508113758478500878891401649449087912272273195658637473487245786381740860901542176587088041931941841712288735161232548627443678635955193430408832611144912415258615847177822997693698946024112907649714000504083626697928032120818347368303171415877762121590599301515364330537452722783068104009727152951074606148181655575302123058084526281465292917156882540739520428027545857885655665065260091995032502672742366897162861595259802024994528142247023717313884827527000665622369749447678149249720868395155663486427679224716658450854816031957327554877530654807673603727144922117482850861647542610842625497031928758562625294018459791063433251892081687477172488055543714684130055763523411880412311816135575970102664230420038653586344599382197855129190996711815953127745954708373148163034473983327526522645071991050636812021759774909193415854455683880799446579357342641037938333442227681395415337480092224655747559883740295032115667065108627921963713738880138553524714485690488588431262255381868253319170828607557461827819515536355574411583533745701390582683548503951561927013425924696640538970020231591054932471289217155961662801230719212620625743228449259191475611198814463693506256128535612631702022428413459501440653866885191435979749892760820248496340797814616402417489833596610735218759409423149288171435133885598467695559133148874858446919389227948952376843064549403864956745069290682617148499194242316529724930090811885775440067588598535080562421582434766307991229563236810904979622014838689520925802580686293376266755483690344035962381703148794822797289373405398644382462168647968800299335406548013120233475994679569972809808452717959004028378253467438006411672761795926950250208004317153505213424834257014055431355187787761461872770125882432938293432013821851553482358370297356906368592407993457518141620675680436279716758415550026852706912780246568592291691887183724355152416003750694134516231259009042959726418793990832971412697220016843619106254445830433532259886982663463794563712704586184802897438327246525383058572927234609374544112313201779232004737433610861422458365660101056378742908095825114465277441402559982348612809246078083263001926166259093334823033454503714731257656262306124495451613497078143614313105532983388020945581482682509685069233213943920874168676589667385632247141812211740189193204174447117763723317658140401643755336821952999739325973634527837154092377183607200752797482465181638112168349346376373481096513572449936163490607463738919153485945565675121878108234098273965088506601777361040215912742311658640058868843926506556820295497100000659510536371134575659994861529945448113129253129423732443681345865249105056878011654589842455723541885961183002210867538901182470767629290606993654950270206800012503586359475226930387243342523982904418510458047784898198137789726030791428637907794032094841917555107810147840355817411801150673764358353113424899728558343408299635750953084963712724186836662795265027364022283075312336249565756454905295184082340023529011545848146028432996035589742629988751376674598733044000773115496789353451950050503651996475700444377521356069198078792581789451915340570446624731527997833752214255168394493157412336129471817217821975902388780162302739634663253340323203033116680852066892082549403318257777237960127774094131116326975154576815032315494375184132084292524557346316706668698900034111781325445764929985316296369885894334687659289415746636665104516781937278015417436448375828458806559843466457099539549250900639023771721293274896088187145017310740397907906920127757643432051735169763477521859418069570790313544794793055869428374898489748564737665463267397026678624679837181145701419955868300357977822886030092079117769227059660897649849497001094607655140339118772400314439431780427787112940027608741398566577756334153515363682847762808597978890470323055176161342374977300050400412560384146596574958293210488969261350501336092211884998418124336258492223313258640232294875662910772197547539389440647045463155194394957411503882079129689592701013160339374289692818247753898040299646700097447040397328822226547607745701081445112625102114120747303270467499619834060004800856365418758594542559274567237190657608911707036856784285082293650327285571855884918986133579495803256038791209834711370556059157384117859838469558448496857818825828740448395686435945415573537002605855993147049011880931090842613525331651775514065286675555418713005632384284435589287648734074104234945391204962453860134962158518450532317720864754413753624088954787699696743528839625531061728655541817333079716574677073978928736465198504036394873216855159734883646457319619988861798930426337056236063409883228150417281007905980471026251756470491396485281422320046962737543100898310343115810624432078526866882574554552083584384174308701407333308809548387456714920442403642976055458588656438043264074332529061597120722014837948343224824257232122858439001921903383860336093553648713196899258786249688301588968736889060555369201111046109255579363155937220766130753129278655465385808697161864794283076145371989323598895346343923110981933602114012418112939830002987668951507509320724593260553129827548537469101156974281821208677789138207281482453980967064840513959170417710676513329120570947260637146656240599218215328605459437147780855677236741188530078103116707519694073400044598449650692624381775481196528179814983640790961369928393818461533744084569515929757785920515688325437707688335411730722619699957345738588989278690022525942495463854625159662066675026482788672725247062320971521865458045159480355712085332201511364755994967736421162493279200565272099831589908825793513844657551926117140324188753840425210746220278112042141846637154353686554256639244285850213863353313148673971716994661588879234763347279620387991070771661155071454181273571852438787801613733946167949444924534441807410139317487593146372659976061491920137559994312865487019257588890599321327400082472973474761570526055909997285165337549937530299130674276594753896952905933295937595309933410181916400204284418292790844865797489483952233443897346552587005153945515755928366433964148404853560898299542288847425644641591605211639460194432409267990048422343026681226435003145080192354996805174898791101934107136371457539241367084378694772714078543259574195878377092310028638449267966966072156649691098170953581006272470954578905567060681370023411363992941080743376013142983107061107612444507468830204749143159859810460388706479779293661786897548501600718758257413069898473661809625927753696944057563438862445464735475320194967901603896479320886002092855035268703819573392677491663513742070388612712290266397941103927430025361078095110787513839164961762473768683030857476869942859446479342453923539999139970384820513143536694969861356431057843895868402134549922190476583322593759449652149172157328267631503985389966787330820662628566599102668679193301437048257239522871409315217583675743428470566707730478110165296981181095194440898765522749756469992493693100439142177113548897709808258710729744166001132011365608563743938045566771418175481436165791145243719899155998171285212655533357277593467352458303959865510082109581708644095047248477861396779557992792412418115411842880159381351525905514061552635072515672880671465631012441319463152934131266288038564152138551149214057633080936417279056799395786760802882781283867399665716891358209408991802669082066382161219131880509769295099360060708474529696576045625084489196921144569461351968111699986072228244492230067471288189604011798605911519432444851627508029580745845654940553138885533720622415123421786123247523249464306510592247194044962965724551026886340924228622525920909732245274388361615180715554552702020254238017205210273516459636352819639859149143332230836386592816643990805869678260253016063295052402297128148036186106089283840317797506015205212320346109652502354077346917594729161332570497899307551210541584249577349045066429605543782848896095448361812814165102501675994888523958840677785738762758374839464055975121563744155228317516584778362529164415546044140111290941743681555909813721472608830717895459916178154879978182052208938298058484788625713646429891618371751719701888379094764128160975486861879361827485430021973879037041549025420247362372273804729109169159218895954124486487013867464293086325906171016799665103677992742124080297240344045105511833412162085080154681830769631472201872852868810886798998796974471306212225842242458397704016682607771568582104244478172127700567765212233336020539574378935431965655505380852761932079866983121678582447489922605690327383833873355457789418661699572766299197301173274336481302449999610765723657285557896067551497136950251921619055712712335450003531561380968879953074313854808888813025824667887376398355042314780316007639815989000871308951556860193408075121499528734752123341948281423624251381723442395365987774163784926641589050986013273059775538258797494044037127070389318278762899560198245932190750307295769473636886235169414336759120134209286056657298422044729936833528676706458629448565709961544920348914045443124986641568259252674594821999867280033420208002799957930741987197078401341695568357231103389252370470034003473242816626248624822745148469915592155180794666852696771910530663795440499494101457192789307930628995101500441382310359301767047780083736526952322757865402695355860846596887752032252312464816478327780294164636710951376019372419074710421188026079672686481799489986000645237618516971245199014784018522910158321539359866751966435532325673889696617809368136327435810718283486656492671855940887783212159983986641632795342335642377281745589054577893346936588570336957798845657287948298644144628058286141014727996907532218587453406039554223897810005705485753354530738053002778880279702928374930775633412848242554197871612678368929248370595000862075811016648574047074880135261072855657160600438222138602174171245647146118494245087518327227398476842454352738182646794079306012042569001885495076365312026766627021841052291272888211936713450278362611647670096801926630743951529927949012475948230613863082452498120081177320350091160723739586409009693611126373463729943881225002358843294465548710803157259185770268931519197426259814843001687723513605099750705365212853021056574036824852686546863916794721891009990202539990127560955983636627089651153039042240586470861214548488502066942378044937871491029149464975443250991301609953109390050898032515944085181534048918593539435493821147995911753346991488565911287075070876813872846045277871914942134247900153167697561526958724687906855800568983332053801164073840312196033424694888653550537036101892613435836839678548730289839230388467684194591738446956683578639633426651925601018622874068087039955421847489312572535087010000316214707606452733554618848398975447932858270204364077125448246886898370570680627476602608904496293051762554902043656436130315021536225696931648201215944857293520979849869945822797975022305531509629690794628034848992647268942447762667098290069703838264183757540455625628299866271190011887068223975337020661895445981002190715881959675568852019278401504792918388663582234364007984332257236624427907120764970991581705331698186158359433007372801793398932188309237919490331667644096689629132466610561138772848386847459219469871832456549694099824909886248707970362753806036271779929019513227442547797348644843813996746955565392343410185988229670172485682912448453594234528594313113607375648746154659377148205525817389274270861538454794755771901309070045184892371686987613647461047923277408677336267606906856110060241396942890113472539507653344673624876272921530573400514975219363643509495796115175659869067397048265346490274287832795896480956983354018022602575275804693550810491244478552667928278462229553042566269775842170792360516559100553024567921936968624521467631821087716688980745238062033714338025210876367029214150994788869700615649869578260688250710260784385392920622727081248120888687279430989941522290639326098860616410689201026087275865890287350767091794720047559275589319025296226835853063311945744980611577179990655013896663658244363258210656243383180028261457628506064737147350117246629026688790755123429536604987749309234059856278432011156132274301872444364877943807515840682986655564212179791785955930369015245680199948406831807016181209914378856286035802356277612259097274863849830036247686914040702460559597573722744080205153072711860901334623837300225732095282016990472303617701930111247995680804416382049233863850173574906195481926365300767454368580731411424929889668784085162357235787837062835257763659884514956958985181288900908429327372910268704970037287440159689174821387742844565742885543067081223010596783014948132183005210049074994146317775581437343420536652664818751207105394473592936446801081753129386228375628164012236226197017798746769586131648311871042578571515229677774746159375496746061426524355030628420650238013660654691889076438141574038969901010805781430677006347499071087344786607189977616175688049654099667253380674618401251738633827674545918293203313145762322505142203624161474261495621693276558864585811442960909983582428568048465304487555743290208021941673823110003070981795669986220765890284600977227581923083954940903852851540324624290624436370327529905093774683350968148356544297270821733345609797695449484500513835551654501107619873301213433882821274570579484403603353181885918260032771275227301279997724688392965208833395289582708809697761023810674211938421870858760468145739760657528417882115934624292701215134111771950371043860058789195739631485221665247526104502643602799905237831452034955818145660502261563240778016900759040841186187759490390025585692933537956055041192195681068994327656783038583799796089640881612643794145565431157885702548981715990056780623412970731875455730486325594407029996821100891003890923542433964440387985416058211108913591954126587351411970005227241235700613714116598439836406287257301412293089132404500706924293364397261960051252132097384208204517569997918622827764518100351754472240436471387747819261004492869355452708300017098254290432292600313044197424055929037656277216921022355769196379844241004372062213457439800115374566563395716483440890428431689743782156446494518175029575875604370024934814346245028860387213301580550079978618250569619961530989576139578679479694947283713364863722690582587868910898939093266611539475599885213006897901165944107482947031846438116597139348833344902201038093435602906661626277943455258614783232849267662230416083707237219645889320983540612192640040289179359851896894583027714018302816190294872698492064401243204103299644330008451432616461994214368095736770430803385975036386375691117926839566246553829906292109855709343825588059800993477345989233674534365962645207633364076171208226732269403337321141517449723558986668876718483367669438737204970424345974272399463721146337046212954913463569476513253055229186894126882981661206881065209488166474114698403112984874907712579020408480011398486522937758415013385618249125552690868390134226482313117192658600857469273515333861682020835830617623809344954160316733780777901438965812012396118609016458240345746085882341870824222118545972688578510184692835403732458278739596600516790244337617069983057689628792089138770580174207331880726532470200362187818592480366895251406213374854584169644114768654034598767710469979459367307830210991790691784412335871563346938886326116983699787692436030564172820141180289636469326465850878653882333495640243372020321423809688960188767614699205416894756828521245444719674801581332877539657425188237084305426593612439584043633617756579247126210077027885565338291717463188890448148525109388495633001588268037405965768768203766900290545608866726967226770024559832149894603609531297077185365027440772571783987089911558501523424114956194114741750649833916339874087235035209188206300544905074410596023234374636545051707013702457485165692761409957646080877140743606324691783842109425142963159126631822782176663016922131441714529193146528442512796527099153422677430318868355446955541962029485245058068810630229341708178073781170385287022277959323616698076267605107927422001930376438987805110041808006643874248303606952886133106650583165600655036968310011430197949108218340445342163068285902772973540056360780910377827760004205773657877563929908376153103970251440020816763804750829148725022113839468578956523212040777124956610315895703131393535895321705425463748036718799092480433477431724832444773557416236800416155901868994176288997487472182587555153675977406256588510164135674284564828419022454824391480701153384895996689140093847403996356394849771019245238877844011411351026666542935850518604990635557078076106825417697786365103688279014493517261528304652838127274162117034272641620268396014341651395643685393528093724522120503274007123306444279992582792089197063334623058167336380032857400735772380966487359132236094046845745951966722713431014902014751209954024024543673469521229059681757535498759687776930860540838850433244057619911769070452364904123797505389533619396616247333966057982227297178997829230372907195726976533273589665530714298819317846885831362499898588074634732914211218719981086834884651413642350202831732657662643016802890788868124404714942010355526692776346623721479506720042718078264875910722803722020587376973609566669812812287142086048778754632894894112969395098044934515934017521190808005401308648889219004865572320427559683478512159758209711516485283336677664863236111862307027179222296184193103866119730371781269807097628302903886699095429177793910891453179302809405838693879138562058446987051705692195611821878893644074095551392600487443750568259697905742593606981719457166476094542220891011681374482242266371211354270626396554582575084500201710135625002641474385868983646856154889645121369641968707323433886792290026910358678053445576828235978445237031597278248635665607219031440439024168107690435419746611788710246272530549370353343147977893860700905140709764870461448689736029446011093385011260912979307751927752206404392787520387843760498526784346478166896119707356083670357051910215629851570170232023480378974014853633115124787487120937084834474072080902104695819800397092883495067175678773529478244518276865879069969135999995915050048980368190946979032365294926284622735275552196114177047239382987959997535998220052776046758657436871615385271342640214218661040291905962851915401357524170816469522747785585984733924322573514562821756372485759007417030276413618323381454591752177674254501693365114228987298762454822578839976847291113790420577532248275879423526193900270354406948964072468885692258265960301553643064227578214473807872757131127947344160842314342559796301936324397821658300128718665298241445575290418693880479403098823567388866719941284283029936217855783034583840778180673848659222539445515126301130321402393996336867224341147698886586694218909726900593627582068212476714341135491883872352343171996343765414916295871794142577976823302607609510292810379048193403548481297669622389604624964911281441060660055149289085633924228034607991510778369197943905337281745256249834258029890434169728746203278443074709043730832952775112040884980212514125412453066771696368218351552325971147311500699781653601701719836055721381287540199116801664990319786521847434861058335596954675720016461222339631586430358437782711464127856676159982836891223113165363112075662290436664034331347626744440381129439204636008275872809506147945295689364750448911060129978481639573399624934634228420553730130826008843531808526033755264711038147266184256369549867845221760655853114085721993884326622675851703828859813683025372549393837249941657504972110252640847522840547123656942322830026715703388294266441157131128492350720351802618303245053727933093759306783330044889406315931342442298232651452587835547159881469579005850534496863892654844433625755390789403846650334799785417166820037996339430995529684194569396326953060834339728052525391471605787139837500127018868443558452313746812791844092060653816873316805212835174192559879786056747082001305125917958088630009460359866129858250875176195189688064196632940083474587878656993814745419719654405657113369004587196311723907456899364076122429269684558964616556106338021645151882115958860067124591891574810763632741052517882445952108247147813589325584004382928757801568504028764070224974601706829701535470670723137751519307090230471775428815604545240083546969919772233491012701672566542636201459154739259381157918661503707449234960571034731580646074757850500182844440936214711732217069455709472640754510264681232002555809088964875024420118670065497301216321355417271509631595325649835662949740942065839240312616469706203667749247030874481561040903727354218714308571784603795163777214357999793516692716884380155875003357148817431455739839456716422950028162616315443664179955557426772739271337916557153883285957228947342237207443594455956343004303920682667660509943954703444290999221352595647105878757160455454088056921848885871916653379817311179593142073815673638845250888549143862363732829028842286073061558941591679157936075575957421589651973495567242814109077259262479364817690145419898628102094807641574272875149029006673047968630645252243224526001350771460168451278828794065322364453358047971248823784960747379268849484764876139097286598933438665664744663312206977787831949784203931119679887217342114889244257300756485214888838777472529183571035116185611816628847073293774437259450697116697583696955841763756001861933366624968234327074535834649360760691123659324723047972393126284604610479606366313318714455217284804440066029904824831725046090385556339038894478655860568031166459497020946064081265743517855616836569306537058353118489825874991509746811591045236153006804534891598569363865305627778807541017144178976494149327482211554584806590188249938817890594879915060608629604291602305270662530466019661665249093042575154732022396965968450586817690787684703638558220590607728011453157464755094904082974627133921930831861462640979187306840093321551722620569212020712655239166955257680928526530900174780068644132866881536106821784737696258923440982063363186944455720800879844454644996776358972452240428935364368812080892239801855505017663126105222733921884714965280769023954497269274419368071587953778443036649554195252837501834881944957918126539645223589620105344585018482428826124244796020739702910778993486520776774378475237547471659571322682408212739133313975757465277152077799816619450848035750097652823917911175678402756071394483373639946012691376344525313538204287966079362437250975152593010509223090146495229246551125562841450586640400628751226235635398921338931884597453844864704038917656630652045417831416435226747041750460360996163545109918678963383166876738913868530617000794775381820399563012604523278072196060596818248544042368311456487000200278708199568144196550965852981185562692137735519375093082236362269425044153339469218265596336962706398977735274489673792081934446628861431147492197048976204024766429445332774204401761430986495632856469468012652712106495809452536245255882674642471320353908656402355979865604356714360111850356924734219286831600692184854556921184498331806375015884528971848935753795824344239799468165991437610264687201573064229690267212637562490888603125282757899004562428272973167687899581516850950182439306761883244397740300904503648097025120533391940147047624371828925443063926304537620869754382419832779269774958886304103040912453964514649195698086937639957756594509774628475560603787624119060248737939727665944451127913915228336651113359721844729015721803757763590607823211343922382605769168341418641618765125073630269001527781588718099522293025598386997775971017544430539954898498100217809878594488803271974491045379377573840804577524799896731297318628458641241175600460094818538208834128619413884091058622605200698921126411492375602677172473656652623769504694119338208077312963233433773559065940592635929418867889541412991300566995864933767723207018465383687348068411193403958645598412516368445798840171668157970709915343737106775697613180579984065358115801071587799287836603538508304687586189938673232458772894629250304555976696911162347682093449887462902333805698526642567591269523433995701153557744352646569241627647389279476908182975058439205126924263074941443102473152455134938481720266536624873004861405589037953450129858814599205403339878474459911060845376300698024906442257182858885990961118243903959489911560906311113293825461035461270485223516916905048186776560900383167713430502766752809660608390285482211511688580162054250016901491021424944430060943280413846958205290382578342708883730045811632735867125831065991195872864818604093812887339511779637540415240996103790328095982312306724150190478259600870780841477394804098288287166467856464549194743226077971122528356037699954297099231716786984469627246671278398175738355292919256610102369418855913739520801029736623166747419290664183360837141937274496994344750009627753107473090890516775625898799551214956921427187345505372590831766921583312604817194245051824040573770782126304692862392943195520285883099339437693846337754500741825523339845796925848732866477284200130768157740204638380823835710823697104939233604658889764829030229296338612751214067930682392654071763666633264330610347886857728353741612795335692979343785573260501434536606936374706355571362803330897681387046868820091813983163794038979409901102860925082042315278818506894642429860452917753400226061855115965686679497402438571118484915188294859197216785923466655076300872569722172272989037947948056220193507583979232705126032520988035585419470221713301332671395319404845727931131686894458186654163761200167215380437999747813424801165519863256457950195034008974502029697721850317876218251329296233613877395666804656609450245879706953485570483983429937262579201714415186531583754084980175273754505868983164825584018677606023556043653274630263838785070561745449855551826481345619454157381485913274110499721904155876853989267596772729412793335411537754948656816990604927482723283064664328585673722264824839568183244279989672575256259201456182003597997505060076108807715759910515536924894343141402366126192824373706673641245251428789847715678324829132978537976004221117701283005251690572891943634486870185410221538483431760032633848901928604655138824408731847481404199484924075674346660247408949158309450874906134134350630721853229556536591963696277722791236041182973459411882431049255000494379176077531203817556139820267582157829860444481566588261956590379571243690774071229420322457305994895156856049070414954033778619247913111704857250243911009756254957916721516842597886671422460047031420425598853440858116210788558941737638839714912668387004697440361599409580204389470697245455039030542673669962334797675864173202965690239804656773877887409865421574406661996293766308442922413775528825243936808368594338833730367222790179831988669593840330015165431953640756511611695447122791022939066428434902904594822076190086023295738792392638945833047477965101976543670136439812200647451346508129951812779695153008060715325167162704710508201828885922891079259305568007486969693987570759157908806797790911893746261496840297357829870821205133373028827439265766252072738000485247822021451115015201998366012343840301657019838234205816433429364739629960957461721405100236284308346803835642422557194693517544688904185311710733396274934462982831112180613713877724333101417017983719802707058983606249012843156950647820613714326394767750771313935067788950172729980346998346955536842473718650459547346696811177487318489655499895296024094110773571747301248161467378193445966343096327560816086787176317425948396783643226658520189318012860897225565813649175840647826246314185637954925289188984179044222626920998983408586038275617948356113739951716387911067041829104955757131010677564337607474603545593182509427393406664817567185537025671104143337877050526639021210042492875860682565044769016300514789129270262401319119266538805352741814831891293357529396747554492961414862182986001551902791526939114871295495115223276663077339746132530352152470619733967588818508285938170722389596493696868386946062128193251197821332015095711659651200423585332341741468275225449766943217400907761625848642783982783047860104198223510522685121093863368805725316166451567731456034122571632933265233440107949163370361297260221413338356320726536917271500299113964580713195186037588605995634524850147432593786871961523686498845664541200531057472817655038094303879001020227677976132885863655736932641597147101205336619097818389693877881367501986548018369327482113846598690833011116332996162468958845503070507045935707983945119251908237505513313997070415917074463757551242000046198031880125930829801419512795227977882091606032595543166080609405288777391961451360400939684851669732512516311962700281590035588579488917450759086372385960025901702993714045336414769352601008916413198967988515108222635991277249468164433429284423211406656787273502897867898494917302446302230629692438290315924435517861396882785709373797914266438402446943291430470388002969122893285030732864294115778013601609035567480318355657650859613981531505870060761259371160265073161424245850304751835770359363384358874359874729096773946746610592793893378811192063314583112649413254949771137262120695086932099725584660371109170690037777524318740906160935859208635485117444765248397861503231454682039341653757498351425097828720516687411483697901393452741011248278047225344998698836097883153803376581099784789496286016670181255577314632436037910467783399153282983001988026252726768899970536531513399268997067577912828802594368312216211787476170112514211729781456549951296722386828408844035602111335973279654435919912039370146600127482956914886677341347067496443912859604140310926360564183976172971550278944793517042363216092624918720699961067456098786596377335875998101467092645031614658953837309828698768373738909131831517899384631547913168645964683757357748542086866354179539940693878297440138773608625069618400031393910971887457681719443379901957454570394609759950141097541518843807121600911219218648594968951117624067098930950640680866456608419206473594046988257958778920358865847445337466366247847741341768813420834564730020853015832783398547323266080717157485487946116668551269899444976221536702708114593732114108208343746400465834350014452236338268556237341594963915601154684384190241554567513438906771883281034382355821092861108473382555531563127458783834873590280474548208387175408092863248106549384496952963203775608774393274847563010945298295052679541545606447184169291170901450737755545873164794528813827811434474994026287030973613440846228167317861755388264499607819379338631027592109284903759365006832455225526422400503387650683796286385706287558011361211575515810276630333037556896256461130387807836866417471528275184836539058902556365010522316219044260710935314177141016679867455539410554458797504674598601029417603666172852246883625046800377023872623150375954347439223971627946937342000505422486829687131988253311212302469677096915110306204233978885821253781137879879890970290720426428811950012989119714521229443442680429740409280308188913845291450763612795649637242421766942867582997450965400125106559416804499551851319648440892286710683823055823705904942882342969621410236954607478445360064715684416141132265207389827600790394116261225570128655335962502170835789548925722071785223582337210971599716614493616867485572015935545973593186386610884149806290371533818137019768461279768188985473937753053027128091069190762776021686297457257498515822558723393850219504093699763170597362832629415839546750253382856830557071049179078656192870737173008041465666795447028062954609965558690871349147544674716196608310349604293098845977868776902163818889921566049439501651488749611449298814357281862748830588807502929171217403591463147542980155817185270351864877079759466831529335781040302252193959248563218185416311208350970349564200579983967524282107218834368885171246732579559816089434667874233569119714367009283560427758237350774351166125203028360940236341449803649507005605077298196214399898505485457214613981633273240656222045841567512030448534364303864229797104145450308085083761967375250619676931569156465234064497894586875503640732081710537878947938929808061764142517157369436153685676990405954904974047385634130303220093000258248328838985145641036887590812686792947319612474763528352206647959450296892442643161238067898985081734595880238161126470610782108052812357370796897860458460032145822553901156215997243657167034943284227801287480308353898107290826442100955962333117553571089619571279999678532385356399040679034692480945987551729692868188012083786056565682052416356524088590348526642036232044504873193019932578218643145996475601520610340286787630969375271291330184952386541543656428684630370164121915826333190045115827015314835720387166025543085900930561649965072868613459028368428233439594740912147085319044043111577959304697154399329965171338003849831764474959242769342523992812624806743440238262773652248987953698990531509276149560505765839684377943280313263243288834992529386994065272351508412115157552460713790527528401220847874319345360411816158759216498616418077371089549810360091435356065281650776853009652775440471626226142771439856605709138678328704688307034096898940226313716003336565679832318359992981581228655769991049644640588327262969888729649897265267538182183054876105614602883913978821932516957860399591605098807339954660558950053047172954957799788132526071627778515975969207854289732458642945745809240046144707571804193543634889994504233745542365315665941206299428803446745424704210307609675838853270506351473483526493218144431762386396806293782959475192755881358308907623187526500574588690528489971465443509810464205958799130705163549094086367097659214079699243197877443451446057814553159859364564742383217869916595611946687484981278177843376579738058631262592496037327041117197321002113965798367298628906197457452019576841117839600359656174750081967203430193975103781867376584619521590003816101976958476425912742237602605320498710774615717380689894514096805918227287821488765098369542926320099419980792200528210636535217314941880966617893899730930658208830594528469623020515316381578939779327931871592353366003407736375264183826059926365166991682514202273561006435942435864824409715923846408654015394671354792517535051831924481952731655067059767777770411820595654849770240422314095901863715407798196113688742654508714517736352847481930422946836929227206505178048762347092671929186111418365881611794593272086085417085199038688092066680176906798690891035017043703298228394783851056328162411880106017802889803691110936394490759011927464128144428954179707174217198318050945855253979013196708126162757694224628344208969530858948761305779619954975062110424127950236389577880133163183351565949472860880983756384098230204976955518158989627905333955174808260571513449165572553393154234351814886529911497937452427661224582254898928724246338962754358171852992290840447555573377675662722764965492931902473617416082794438940673228826994676910659179963342334155089623921937203483958677302268062543784012064939760917317192119951532584312284384318661063291605933241470104900078880023082230320849634375669286104781882659162038040554132509199335461911974112539040260324739182629731396601033689358171559682523609524152935565385530791238211580094307500573331040664993282387723614097579367135086207440988718722276151445684246724192215791389566476085970594678772789380201724947401102624382452186638010627859514359096307311396299862904796525082325974301460834094023735725302124330601472335422363178438152555523176939862623060606586797385834466358978855334980893145249451125193763814073889563628084560398342563227130358555569394579992047949075983970734581981303570150350959102635123597259711512428332454221243311562237519569957007663982354931565478277071190521422272258717685306313164570810039614158359057376210146842374205746629098456408819802188512049264800923297913349148896308248880166284852044260170725276235070400396232073772013944245392187576193698910795258527001251512841769109442446039535499265669892281240581752943006871574497353836383488815572436238539337078432369207849458913429762673392223151289820109418162892155886195303290446789013119858736480780413899398886073171497677778910173496670284501601609975618957519675230289751990988196517648443766594777152792579005541454403623140894316303656744185214982066905762348921045225244149138368628518663395425142637930232221509665080056757649949078931254272278367466254445695726398962548370963600944914729375574984690818557572326398921269413187132897017655148641411283009691394059334078757572970891335994354432505355835826713130708423977006383229783427790050624456676047889009056763425793508443168572639419735189679909776648835962037900219076268635528714721898312136814162341122017246154752404056278574252365658600206340795136927318599681343931056373459023192213080837790848268124963593088243702605384521398574937255885200844669083394993079895852117721786660825037999966068713771477183639158550813876695718989389591610254921650410925037408512616059706697235608083115765108016270271122187819610763381136631844159060582675885958411975432475170107683832222319268042872735402736204431066433514262440462606371335785556242750238852733187327712898258991231324918382900872178438088720369647769997951498955019928588871057446832651637795867263794880587437458778111745046460592103215792513937611085315490551822318574339383663691696622122411831593083959672677248594258707662909888735278151744240342243833430963331658186569750049479088233867981487720455340555278833094486400364059211814447144041405044477292363602678117825685346331818662418211840823381168356588105100444529246008503844798142802160701958719667453711132209074341642569079304099756398843406906875516958759073070472125188434284963731604701682930730096031358530452595994183421064031387921769221208972910834159394473262726866311398292383647308108432066257543550990508908279433827631753525438392365400102033466534607875677566879019834722041650096707296523304285476245011493754151378615476223113971265835503975096409265462495043408586505489133374353101644317047209424127126909721284415679054510618155550764198204142117609589461511016406722322358384805154311205640298168684228681680610830424040905535016202168562378276226943344846073399436598575691108832356945692345546933171456896483418406785076422974418260420229174811840736358140884074214206372726505573121390263740549320044094726266579843458366285978293305136015030053838026187060635472309965518447951242221733506784913211522578538083314162531142013891056436062644876927674016910635224867958099343883505053923261986549346640077263996235275778894526782530443599163410666654273109094766275848604980015045366937500891758837710763257212685993679349294908502596948315709086659877237512293423523568830944682234402214831600494163579868679951609317516485353321715615957808863385900124393708751189652934357525906041887198408375587621268730641908858114861400466800155069513033842156272536020520181644808182589270623359334119316913836326358808485115709312244763453671512640302833281286634682603177659937835741067608021978058075741121930510192210415186295962485763791476716800468590900014688926445397161320123740290155497957004643947201521593763210543372230167909956906156823336244880114586263095284130081052202253755058357108629094083089779349405892298445981644580267187659305882315387320671046600268335721521620360520466800395037364718338832104992569896325849097939044612544803287914199013307769849394386384756194272456467446181841042436352375986885969254888113649473265086091447342728877986651118647722483472839248351479335699537594573380785965041101135605607901069904971757094646486075486227195331546053551068169852562697921150550616831822025015586529060321949074922158392317797958106629301855520991701447936704948823342639938991799304797961725994333101770674658262877754395502749658883768537523530761468450333820268864597440438782314484250701087076967121750957608436972712971446186183067072804503778182516650751745608050128678328295888296922530565372934855123828421132917972842877647740994724164198118276756791688365622437303746660024103014677458221377485269065670997443208047441226759318764366327862114038033787768837597915545274344823020794338111809635128689408161622389036980736270302097896899954594750119801607908032386155745419907316848284561619671292346339796411302213285801078576430870991075454634397278184379601822928289903800789437203176625839923572233301459654749185668714742342933379799704488628442660175806512455122529335900463597496420419742281936447572160840035733969563779398992342876114750949823263544614533436613114082245225059827060423554536125710084855164568236331923548723082921940723890114876013611994837921354391685953616639531065379377710765451104815443048679358488246750849415831207834697217539238051507180518367895983471929921388540309493973610197856401164153220670713814889515606802648689635707891924011595798019330160716611690608302733744739310557421088760342329464209004302667026602111728808966600619839817694951540121330469151985679790687730582394426543874830763677610445709060282372058805723373837932076243259649482254144354950526200723241361844202673283651427768924291052775285138650948668350128373323352594590423467150124470452828714177762911088427955413488642705243065752990465657992208364373761467006351868009824903060956417534272312898579531158932139238924456697067992015017155557006775844111136735225998708930733716198843057245840882267914281625271588097069208095413455833739588147938191397985156666119300536346653587185160403563491939910392050328315178224023202532058382975357961955456968311779440812998889793321745222448012487776984541116127129356907781903313558637168563715015785973967470210227140031148795748243110863506601934141898377926134193638040284693392812939210791921980359346359527492196222340342225937567217600471194345274784515227015440170241252184813564855772457101567571950756969895120713744852881759612647653751696978818418198520621591932535326329732380891692219419385870332669352005433664853958491516903362288676905413055359997038264210959921891055906384037029182432279978174440614109793379319587822719345516099070118345190492770923378806814341626332049248520953082968260879582703566094226793736627685610036942784707120413251215939559704512580799289118571606864459562278820308364608268520632499533385463264923711559069835212667118048175128098528467866209918755785012742645566012096750748205231503873005526306909519543122785288136482703935256708251643569149189455892187654794691759625274219854674885967967173045159620662565119841866275609142522743106576083978569408725044419435579758736903006848334371122465736991727353906345024890266699498411715216318624452268050473103241078738238747173830677936772196104485460271787244655224723928796434879106753379449133355305905823113077234409241144880475852640556183212674865008704002324341339159309570469198201613914967772345872396602163847151140404425427022639353801661916857171231905859997190576217861563246655125105936450357796952222571699066495411798402670979403449398097735702837735638754554330854147178413169438061529538986633847203913790866881049238751573474198081888206400834771157324445595663768597008173863807769051605723345617289097944988062404777415307042292493359483694635160914847619914120604627886446775393722757795907224610268602810861541349905637162911640208565489343342937085900401084206202719293885960473869529131848378268596358928958737316161641885407722833847278096598861910765119782036896595304938647490934542039740528091261319959603213512449683916701904388657210348972023611430882254469777168953526867593766507884014092179163441183073587972473342298804389342612062916378751716052732637251007790907613595825427594491193537687138677174416069800175354806147131835310509845453268717821959480313464814325479540249299035412101205875814794164409689312645472828732091828940113065516855380292274353752698589801322398571776611198172026221562189157303323530212298595960484468868612575065797824602028736906319241470268570097027701489469096844127354761337033974364805273391574039175557653412286616367769605723618693499461006041614198076582290279623403170741401261789512546309580440623451462050438604734932468677212899406247091849830860228346901106763926405923160593806503899280633310540832053338348300592601716026380178097289007821236317534791676032799669114328851207067286341508530797542383118057232938579324111377220020451658943645055499885294540839219511580469112595054686348460467270832020452009985006045361886047732994677004083773449330493528357739471343529545663330358058941992810918257123888632602140778438039657083562398556292977302502302769392610383316575768720722506018179634084824909729648609197684717536624931040930374611136990196873064095844771920329567080339354105316959610553431240563911548439125260028155582183152010700958916205964166236926152903556744580577154099635288975023796592569689300139736733167470676650150274021760463187231104715594552291596307985572849108210787833909196855123205509053641484959984742346600060143065669427490577612935086351805701495703714980420830938836902440011386957331604983386422048002242798655637125075761130505321704238302119463643966489528940044841037583124260820002132659676606237360757022653577679992609285943482836848690781441216261380242674960784913776820052575003218508278550727841336971348831669442361842467912173195323825292379242660467752681249321094947727770853125636887637645778157219294875930977366985688830343801682080789455585528787352999913034134781335278794682090275896801670227108576180312698860100930049302561722980301912966411964825022338345955404595072853242411396337521646213637275513481672209393685077326945428394670710752540892323663437188099108124619832792931487717591865542155842502302503683621697535011823466899209032012600431403467274191605982777123230255196229891942276263729150084239568380443885357154337083643448057918003427306418244598568225142022541427843679704456711579058038573786589876413703255014200397257241029966639436662712428909600547728363935911078622590058365042819499416036179674782878291981293621240891167766430135459370930948752513769386281602100805861665306050949329472562384498093791530509327178323081393045111768921250411769145982983445748886223123454103707764068606477458654761779373453857748548593510033352860032091275732217680219287822802049318872783502855023165228495874459465326572582189937653812953718614409874374652284957818636869432686567430294925682989256856492114240828942940717922343923764075483282649831440577876474013965356285218705222439180483351882091622177074244186255860699322622247629989334387768579506540308530384847765109664291920299443447545903809423216072765000289144537491274474261788626144087540856317742889218581073284867108905054482631631052785821308413685996151411296026392996081038889202708568371089882221565267125874410039743688985314552295267846931101989702641781732360932224338513535734575252312416847812929392728838532447559086042618163454657630828951852122318064186905723975181227914140044399121272878635486174036900003157236642193050455715694781373436603286472339547760500430499869953358090360850325086587806539391400229983447016597985168107777726910314606514726540429322210101987875834206820088817632368327103796367396824321329629630137024464801236537148341258174918791536403608219182046561001340351428779131798057939443272596672498403555010707108014731503682940170739498127435553252605568456855377252262772074126077305424719135841401505349153143355903143873023953098757523411824424872875546995051943758532442927129268103519653024281117525445079035576443583283903887847998231446913909580706475156024965255083188362832378515586046580117330292843555793242681320005330735791026908398823059574324450422721437725870875753555331129936016014229903886079447467509577444788372063904857232714957339610965861471171686083209788483623853663447992122269012160265990583992356778638592911515774571080508950753150450478148887585352944139185170791154387280771718967879213558232753068725968115004056500837852300910226103406916219537972997740722867226816527051528919607214677365690401772900774626665374608497294501239430025102343059849580510014990017480760580070803644446423748555451936976994591375523468237571861797802510808594426903683411675269293648802722623897934100845467700717921899131396537562755384568741426177047676911764205041880865816556994777435132100457319768447286250414473412884397294268303170255825559778941824387445641560074845684272552717713903929440375383428118394634563454327753760094133705456625244078063315715118230793826725011739307081826846906899852467697155864430742457540018095504699933881408657593294131618300623463194158860439463976228602872910162526754124447118497093071783835257519988763256810008941559045270740865315855776735270021333822969288522907061169412882554876864487593786197939536662217458797291606541271555579428243923065743735295315390496312880558692000544227584629015473959952096763237652303823464255095531436383972609596161063279101706902272338404815450775043588753048071351877174810036023690606188974613025792860029578201263308083614712109449984417433902141549810761150593597760898413694829584764491801915312050641947129474385412003681553814486015299242224162824675975908154289018777836699947098240946330914951232747912269682997177037194614019455305425996307673439915094803456970126491998716940138499826333761119185333308609753042227986023788996111663629657623524033345845059239502345420731625668241120373715157303523366890854551454027139500343050972552495003669392296235761708438389920407627079916804510559831312502936296336629597697455910627547360227702218116129271009943027142152726229471316639865258097664056008162495077560335786889409511050849316005490364054660150265281594727897567865822449359698659426911795140906305069006125596653966212515632166971354546935530459817166668346699571424165799304018943670925887039644512665829206367724007937345001252830923512845693712581276112114996764556135707485865836304998017859580778465630300557567137246855533462907149956507950597561534420324685408666894869616830898538810719986241138819935672551483816879323257343994778182828624612757251392324994153264146039075028217521012323895248866278462012003755448985353904428253734710091909220106874407656270606130077535574079531375770206250077695524357564678720474310604793042461066164673995060127292101984235024020700937543681283104260624706130169400715705329087757681257034717382764957054755571681484964700146230153596103360277914589062637084793475521144007568553786456754135086559418175470172733053757701383323325806887661313716699784831260849564877907821152019629667825776337589620031332382402936254661801845500605245632298005942037713933008983849567143906530261094227011214517631702768548121435989529131865441578323128152132667143811027743567529666616657178809138711680475095969199506094021561375791659514806106387351634189696687935062342867629072245350675632335243801995798759198119624098806793544011524672709389292313731627976367461660676620637977209241761305691667099920160303154275020360850967945115688301522012572675241583603739710420158161610440278176708693523055596079302612012120671261382773270816961050592289679732898093408500428418655906430971087372252288304444997519138583544685963919502214092999683791839564906129663415025825921609761937550461812239099426714417887031978789922352710387335094669344810018636028080677510970667172236517055870483724310438596104168906602552387752732365749154456537791839988854985006502861124762420642938802612085262066647093739345713373608991242833118349914388845596390912947186785576612524279473438894266903389202850242443013170101008542343539564762323311200184607317901755276853702212791660145020012517785034805925585295632979574723893187151380821582893570432633772293761194466297783944502626967748113353350039978330288170845052232631436466126933588622617343793627079766666602367178779884486705259165491476482680622108657219838986253991793640379967841779154281738271013930949413711140763851144974830884040783222496971170579353641670369148186581811535532177888857965306882382147302472466992812391792063062661406305048685203399058825379622267772121776393955293616840679140442899275211836620365579753623158058235384264764555196775819481621492759830839672301542144008160995092940863989943631631780106905950481510649724496147348559603240361703953855264997663486990656051607472005147423875206074766903244097316303639397156873479193706984073046563193247368706618396230753652703186548630388988460065929511488188037083354721940098294951438878600776838949927631797341545877088098609033735733119995575200023604930048944846155890966438896243717623970887504825090349735184973608966029755364370358432655930315294097541219355666423498207601389206325841539107040018577063925751987834717527095324757932048419598202303681552682466734612856640086890230415507121434493272489227840847170360660356691029236462788315998798270278359210316493830494493566221252007148051582701436695970170372660253481553865661611856606145219903825285830718307695946565087410457545972404542081793509996009760758710296307770826748863045688758825248075513804244930218560516506550137509797512162610809876117430190934197677568961660223567625549917079283069701420182031599133725863558609397314271005508781494240658286763210125708469482493682292240737658577569223295277034398520262474319679307474447507097067850496385824103424412417718941669227844331959050648486197029878227434828148606502660831807080616884616305225117135424760182373204991847599433021687111604823777326715950247317081469589462954492374014239229057852998418035081861461966357252619077135605513614896269350991504272270115241369996254962187279756859308074219885940551893450905919807910900450311467959122498647826209600729613451921867935290340680095274821101336734398334860051616733277778877719608623027798803069844507071788035898587380143682126178529137733729687097973001335592483551495426403503588367832799615368163167008664773394919194513225811967978086682574228541656147398560347195214019100621042916089983627483311822373129696490248053412838708700028094962145249726704954075957740238268087044297604286730319355632897535284777457685467969136176910971471467371402543562918919773004648440460747261549206497119208418504482720790141670195293695482783648411861277893816524747841651193903872036414947772536731917488317532582490095769357839776429834196662953896316974514930267894840768281840638106254060152225571653329565440853976827285097357833177153085898287149211186048506308899461236227206996437728740137962857196325360953591641179618836884442119212698167594036683432841391343555553422291298611688412211103590751107665662924768506171201750398769656997179754779805725911875468666438243818626152556422219478962806624759935451806613171884790153364769552056736808710692725468558224800457478850262048009757123750292280552571167605595733979995708919062915829245154426073935002729856231907750311643073120736956854321700969036577681796236932924506755672531203899423498562217752746802332283628507582499068796161558454005692505873753574880651835931776154304457373489477062733074782013898654687511495665398575539431132266033680070502538074129885963508464525366045842465337189010321812547915919746739930107499387512364446520641071515502509477533327098017140160446273402039930265082350878915610295581008569569180681904365722998696209535533673786302667822186274792571298792339730721977795738842976447175233339340910303343061313246044939852411998653270208680005694066601358133906712202437036998411922591226986776586587273000185723900368099660548034970480052656567353658431599531099107898179168389398855058705627428864606564653830385666277737556668590737551947495607031048589068936774374425916013133840899173420741887333740416075354027436122660700706496241466460649899639568790727508794658351052936048471056719556181746942688451610116375314200218821355812154060769529998814944695812853134522199741062842901122825540104949284654284236042481793064094844006431505783994670695134637507980258519428565571619196874289758789953745533386249838216919881076125607760720398556465306276234362151863885755496808726904997065135265184498291072432918100633052480632466475443354294251221199000125468981697551125474998552815086487405946553586495227482448604456976477938671165921171215413952479462319053422927957676090925459101718291303266139000481018152748393651853436751277040858530692839216298245373498255092172169896097075898957892494417559779792686390865022598083389719342131568699611760413757006387257524609133796333278656445046950640473457645433778580935486540521845072930547371390079776508082117171408543410911048701237712724234803696922211362023601795490076754359880532252242937144897196112053082679656091899848693942001068133258256100354575387703669486537033742186245910336526669869367455663213948601061535230703062611789585903498991631066379412701278536274566294312376368180352413299365439465406220496599427866296437872963496939332138984546168825037700147019050674334506013667472050672436900905952068889526521226089461122627721790615558264585521970730043920959306541969561948258768666697117227555921089016605213785741362256548307729657508034998877862444306244756320021801662156675840937103219004293147772696392122774995900844495142130995106787496803844471316292628676112947277968402163303205448700168385102998409087210749258037315091896969390816084962398454885188820876349185916856768937133641658432526722601398528875684171842136651372940660703139256787993763903260909744836860405218937969251349162953064116088300950070492170384481320689680959290261847417319919346103275887984252768979782684982969406787596995065032959359227045860174851556425593358295704331432747894369673249605302317973107678937524960050307521234771663550450407652371034361131881719088531104660995662296138108155066808817444779572812884149280443266389672891065710313942208840508191565264512978259261062991554271164132826317664320377543773555611052952578359658152680423176261061963720842715968951831105293943461228305384446160851230532173951099319146367215615632571812565369179008388527085288315587277314296844910216761989344311919319572839448160065231606558810319300872081013131786318796488317245267997639869618538913015885887078391569182001622542649911247939354651678463282098729166674440223399109734435551611658100146127573812120502474683229832829974974266518682005928255294416429230116651458888288531568208684634150261623828891467161898297927184865545136723918762483727150801457110992881275171435554772896083716544088574336420236678990144952003867176842750258878409250057351473596197705031436630380394350020030913597522483082586446295503435424694473663635007708086867131282182571933459945680949510092418792425763648658049543893857847633128532242830013488252687575249150502890101489741314749858289644672432603615538099027976796580424813166341747612979679257029564005986181553393707884294344864448320443400484057338258383370782580355842967746971861969356586755458040641100128704214741579922981181596226447927661259635545324352319192037998399933881002769140782157002580715512484240227241913362911319784591504731578003898704428804990011327068638789126521098967065508360037648336506346976708922762316650574941715916928717466878837141711156572178142105446881667919228059234091460620551946817872617235338899078033759449288058550844184155156979838270249659259557234128954787460301581347984068810101464159496796505634388234397678461922344734245539039489601241709859543470279334766068750782237321853054057027971139325445441389974732207292319684156051423780316754900202847981396088947125334593840934039761791291401537754735020179166352833458219178496047182397739033847069086517004910209561794563711749172759068717827747791049134201727548081246843048637717596874839296899340350324664062193241030581308414388066914049789374933802911541442869524952562343973798616769009439923077407903704329428692206412355540070790827041348758231319909914563136889317149245069167687226476072128348815722380528561389263964077000236044905565572895739576868460775257275437305500047443120134704993247292676786243529350762155797019424138688115714236045681765542748683673725087234846263546258174402640449814681008735615893765241205736564694894465898476269620018870766719094469778111156806662618794757014332897112064907718719265295485602277115267273421089246540795610228633389881922692362433521090009739711274257590048220954273740097307003952990112417018180188820124865971658999607062445371190597438423705594238649497647498550879851051468260720970872583813686465534046902607604919522114752714708801039507526377702967024299498649853103344351090104322572144538001894892417564785121480371321945178372276474432353440160815248415534666284249672166765064951096062367213818845956334347456477204380778017489022622194237604532455738888895479816399298002263333261255850509695320726924139212319986523655704801332993017975405222798902193036882658468523357079229398600590436463035017520361662690243729162783050908158234477589590681762936548607193695157635653880511940625059871501471013685655309499217096031715176831827174814762170582633003719164511850706720632043890253143590143628101695447424643652259065045829607894455785324122904454875892245438789092806740932367830154451917466047868788767901084409182062974531286261634094525999158744559766159209023652909076548563774590517509982470930958351657391558076138507533808437919133426604577930257900117507456226800007608285735521502927506497444959861867186823635591558676042311716732378360288090682488649159523371901219728311262531341277349323348111011175108364255577894181825795889601373910088510118882283331741136903860372230404828106235670832638277713800644354033440150346740244367681770626393756210867602653380612944822406036952521522382295202988562440817677839452410080995458054527078334326990758789265074145708565415551280538257353127907493061408483246781927266903079085688314556551192223959909885999413327198287592822240966366725716487265017302997647674928631390502766150657788761154130087296429546735235920563750916949098970643445726254345905410618063431865405715847706326772428245415794411767795840723707525119523437840442408676589519635574963471589310741973275641883514653981760103994155673673386866151316248683729523140431807834835944332086196566757029820206604418813440416393179885570718215003909568762521581797685457309672995349639466392483469033717237714487036810046674566646614336732187400655506942502410038024945640290460064531317782959336334075555033855772429303326027113340919909677527273948350241290725096146315569090172852573163608610862464147631698678944529456853043111777524474376743898930867508329897721151678204045204692421063160758349416429372033179722043892525112750443828948349426966672347652202776393546127150312869028638728648745969007574913771749001946887827894212633921723635875634769465733608103196753001831422964182847608280341094943731375792559333015952497745112549471908462362195003764620361958206028932286307489215490207020769224016282023120382000883690123435860661178101616147654696422883360801356038239879989074772431740853470719367580799886826262871931789400960152833512832226081158912993662928844101919381988287924245472936032135727274640496723125062696279180851769049518537318735173089291286199228999782778943287935641730358544384393509896818431364796007823936686493725554139652929856102297137067798566944037952153070491975202019073618176767276055260866183482127629216731655762373299756318916971560248092090454653756750806170273880367573256983812506180285710052966191243023730537747358816263446677393447303974733819063944173626212994303664193779364574433296036372795826222760473827362219653581345880657273139481553911828540805102455179863491412400920803651489354901726174462882984292569722556245243096758357056368883153946985045164982104506180728050295938088130800594446204645627575581441204266307565148956776060294616230755608507271351636742837650142349220732503835369656946841819019589841150631514442797301893763988562087434561204340862831487989448318293329242603017874846497287447490192971652037201345898988356944225192499415160640110016772598293963086228115948264194367428546072499770709978102093571516392558399607380435545947950471693345090535489354634599868672608644297352498589882591725252259489688747826501712146120604778084944946126440220205921905596339981990866189786098814925336268912436799239177160929734008986162185624677598145323886074187265214774881776768488883608444392223159648670737640781189338573317962412068021564683834882257791150580323668660307547704654178739416130905468212539137288525927695088511222374195880951615271139840976658333539799625633459684923180165373521909834730412358455058802815522640490782629263435082687308737582542959501206715639045087948463086027215315952704725034772403640627647269346253053628678370678625903357665094114349246410807548365847099357266255986735935708405198056286594974272844456101370727806769954959664457420871517968433759776524111218393702443939042725530709780617590048999296421222144756871470006429864866186360184446786901358639590307650289168303752379776183772174588692762332832689917862599233398464051696104007955511999074394273295779997862437216483581715299960805016931873024174401559290138217821825153542107977152101463197625118831548247337360912040783840302852563888683562247848525745264232601987337373421072582363760929039488183231916701644722350495767796997675860394663261753337105543841373640234516149470419333874695116354085723605554120337284894913551867346997936365929916139647552004607424036245575775714229447931058856704885048960820732101531330796824512072186252955414810882626290462714195480718161359600276328726625279379668774485513513874896647866848577427104065275751530461583235560307299008451705314062913488032604581664962229799502814163304211321448892636294605268446613012168078532166562494202632676894353953510757151765470001003568485793397491836923431649852151306905712732690943546884773086549709429578858661059629784263311859609010842780627104645190563742285588719272268736525112887504359996820225999096763641086594665140853410396595028724640323034259195804447027195792917211117762491096980346455077812851389256119057885975082334155972170312865221814754416067439571603829999617596298475024103220798106504530791641051526464530047840155827917410639353713982780630629695057994200350321358504893253532728416825252148760142378873567072768193952253514625975028033816605201658573873977254372039037897336130771008293405889249170942504065244573672823200667748409286179498055686672864449555237375985056380346482085825689326130761799884487591794779078317474236531760404228132124019343031611595645055207715829820175430936447492705427893653503151406898096312350756708710086500062997630846899645562359047264366605777871896432550981978746445666049642548802994517774243781546937757594186657293728581323022398737336517321145823784283622532013571384971685086439719627824750323140476128564595020444592951226072520229792154492618871421053393660147439579150315242527151200466774953795386195371469688499361414193277152154327977584273244812965236560653455142011622101739660189079039504497048971629419577260161261313092800104018724579143651344069360764331660337578530645994073754381713836685803456699794836592357533386408224174771475372483217571241698568957071447954757367599602551325307125345930569637904746439564612533092748726182568936838149108805393070633024352187990392922049547931535435896747003232182620352750557138770514529968093814910899886196418783929172877171257706170116776369554492820367984785837071709766650240564881598986496910884971709428301594586059787924385780739444760624517575928513225897509729710772654276672063809751088008373465179067306026807773165112324404740295680784741269638148822366532971520912245235251458028457078220133871956848549260497589871606337728945090880382446406751921746173707294382614580663907827927811047362734902235240025319223846383627198237660687548107618728169234410726717506607655189064427617775412807757768457393702011431110497142444737215895437954202196774733123679032293409308737958774072856988148390878053532242960331156358793626802228793795369518671613844765819218727832157542485455435304812789437378311056135401298370957761682884834562694285446484192593948829812028379245397429288580368008265658192970394174709061378479920930475512084287110916759634597393016003043067914750035897515401942908229166276901123631999740428312202942516784353008761022582587418247934434258033464639574510129933109544423877741006342720724459236479181667429682223481095571235278145369778300571360388245852868266275077853270191489516134967918376245779991576013029565363085083822092560166488158508171329457768376834153918733575378110450730206930610494368946545408198734061115334982202474157227394001693698886169458745251310320655026947236715100990338057790022576309775045590426941639401595380728896422742127637975090220729605071521418191614072685319149878346500922564714075194569141922575832742183403005966088135062718520761635851878632251608549706241118712539493583149257716699250761536613911118837721345402118811989230973102436798571673479522055928718617393844219999617651882837310861454874856021517461225391697366344661187341483811302905869921009464246049840760942098268224769616824757102610989281200344729543850464263371724086801208168798487645465002536819933205991405117263964856906303079574042479421263010932232051402585467694799034263135090690381185376239471418917522700136566973440015829375705194172048422776326662195500446909304824174703739588089372415920690005065074639914128870987938770494043892800350922855767475622390881807243286519586749139151698899613118674838812890619879962084552714338150995707949116120606768373039124367959152552004262212579566233621023033606574764498652961558507919466306822294627843368240465433604871294135531434431060177904324089839895977406132004061571010216522388928792518312953033242140604873351124782342411324887224394721893858817614184184090726883953874760055350408740242674426215557783887598237333007045556746711728740168091608909883424114415595649295871997847293202744862093533768496757852143609723672501984911097437333063445943603823024150505781840855487620042109020931312064945368978397955214677096237959778370346322056678186604821492538273190199186817303192956428894028845348970667148407886425597696904983126218708811112482559451637274944966493905906460816591763086987984530044618923685048629386968115446740772185345452782435348327131119642395408932889227607122723507233932375359975142026710123166445722738057073121092865180507540853755994656612535267469977214296684251605371452179288622697401362238235450515769009168620210204510219241185072805181586389204481063337003134755101358114376282978606855086744875647989616786773770213753289454298888891095710599049214448208055432891378754344758359898426877932139988193599181125163395630554095477651024946802246808007231522558672635407267466560509763460894312840249235588406159870576710627675586144457896773606070387637561621234850279195574812412694938214710745597395924118326252181266060907677621454019707365483698258685853107460436244878817780002111861836556046281709600345455931361561324748334344396360893447695853439871176449236129809678092456837461948263610917675019048069756282462091188272506162150982307509660784739036045366035948348949861132707539700544017404652444880608728478832383261370525367041726585630522034679150218128221617457540707365417304641138819520192488255786456176337487861615439738877028818896052458891340190010938794985628960344736531647864739793594319962986807328862781471115874072667758524529913151596559697100263242592724690776825589697465428164219036146738257066354644802810970009946542995972759740680078180933743126887421012025356710988294314175692759611859260341201581826875803519368953130424219684982755111961629496112954821116452322974842447035201446163707779672715043978425143753398696428271812836717399708749410371186332006724125138355850670188842700673730016601601770412445950648911441106832208271081629181258406412359559053671404468192228120826786612705428120890160739567944520029057361043480438154278443265254365626534759353324449660257177999845101995080201717179088799429300654321430986971797568257234762084915722627706030084595281571161884736870580029570655648379012670941792614733744506514483674553563275256665851185395364853771798655319266835786673168738680763869133308961481181616253741475848003931711387529412778911361430201112136326379681782962614554522012275388140775257620256863796266567038153134136981989859627976501148435981632776597947937867494483950302756598367110876735379826757561988169298384222113885704370372010883618753051567218093931111456790355941525044496878208754235238180460184958369299730319620163470174673098200005462819789528172401810638142752154597948580423412408762203267441976067316919671719907643136631722775050557336557957052626640454129700180425863375943156780321900333205239852387984841202618140255745334968201834278577489116353507458909500943407030010577761422655955358853095072901319042852091469455802253492422611807750563753190374925839192644138868012173152414803496323754179976144640387802777139277799006483083197196780693827800162673344976424189342855909243785583220832465920316709006464388648103251825707645487328729026125679410634088130151381531193329797687605045919786075816184946556578648075660674439117522444425915773242137208062469585173452543390608990548793917207459504545225317224059941288856633693831466658796307881702825191434083925028543718993603620962970037670729085040187121084267752933008622458949180862957697846037258799837543526915919080398874752883862578397360177915402972577447170010244127350119929832210074250942800047980839813556265517647729518979181768361170214226058040499104460288180831708027564863538601356077752103181600345352494263004180159958519230492316717302225211512862061333060679822427259023551107462371336690348385509979139088438545711255893747652286265237784652747344933237343430097326666873015178920530557314138113498441022027497828277824792959476764996863909663034909182899269657629960664826713865036188919372274995489056663459500958612264571245545876524632744204378422007231467624881717899516422689551046814887521252570078166181438542939449756498764610923512407777767495788342235203351962316569087893599645382199099196879010221892335465957638195352558806981362072130983794031553667057681818582903059230537731964876203944440486910547333159990679346782417973054542570848120075442451166582198008320487143030347692440974075915980790048902059996062946800964450572202384936798207567436502359098889783828387600577443522970180661684929898236420860984004365480351494513821037229402598568850147369717981093396523023487236656475726746637212375937423140757768418061793308333668678107102430390914314604739159439118177739157502163721041390751525564316367345286909302774608921313723514051436619461964030536863787484435470205756403093824575637727883480850778333155960191930954304853384638579236051605352621771423402548779006814943232149354376572980246336352635845179473664583805383224918913697478053565078468955148836140010146659381478812569383861099910236219930069991577057700131235332476111295119903876026480426021366106070650188674859828881669342176134773818670588570376783399675884306228184078677409736415583967557426082702656414692928156344598638208046257434287099799167850846733348586755984696093668882993408020481797077302943912371500862797714988702217484172379652354575877772651120756366898264665542142265223742199714587157384644822236173729777984830887455978086455219189792984989722358389701896666824874502161241836868635601723757642892974579340788110860553699823570014342349745618567116912149750581394118020969893100681016358032827476800651506908391377874005193547141181519078946834332915488866579992503478494228400452076409525461317767079108819710324231757553586316362069580888342999158823832800185589764906497988680496770649081146477276194915259654114348120642191283744978432144370070799090749854254847811040630929646543128376935050389226660812693407171458106876669376465699356283311324212211295572092691534731636641501896236979248561465052354510435302827843395390925805285554171495511794610018585140172644970615078789849945955087464848883769079544946862263799952341566843034177496826723211590847470327891043861681418142698829036484810722935550775347850723740771070702075332709200261785815952382196100944799166630766260798129552345337898089749387177332085310587064900324391464054940973780775125267261461065568006986823319491026592471642671795542450842988266065100103569052122419884887272841068137975838318803476092383700807894542582191393717570289507480008110809561084748037680790047487725010665272362974163159131607701949006163234065488917176159868550325988329234842365563914306409330399763890640695501249486262387714692330816889901177618636991663151061503921099725013291185301942452415158694722350914234884836490760715944777662985441493215510205279809132584673407704800735848808328557767248708652967886400229505736139799074276108469492508189934522316185233577705919846174021433656976102080166724701984491395162601472787507438673789556145659311012382922257764349724625527991182530414000207369318365615458989410243874172904780164730949073839740644371952986362315435145050089524617020071639704127268050267972323567667363994229279541536892737839642119913302540021257984363708505646090037616808066070228140988089762796518647046842505885588655349407235973836691559911256119001626714450969573781555600894966552503739230654609571656392079343179200471388146143661570973556955309383823648685431731448098206319403721874278787192922794125264849187496180009765755334869503524246776812704418271776403169179452733644458474320686639946845122029338452575103491327330278303411237232080919626387508026105694304196717457551872332273876510442807348839822210552707151357241595172208923674240228778977325515435132554537055502054050780899251722303882983601694672976193285648147412233281571026886012147538945566422299221405014320417333524200646831783613039807220717128091267382811222261469850931810336327602127176501776948619555697002533022004889261672177806212128744667659598553767697477735143442805065428056951244902712097974494810604424279788605258433994945577027022636156340664213354256044543243554041817638651716084303548486559684739475075385717700271443021811764719740521078596545676356146972429174625725868320090619175372516613030946592923094173156890689411217775809102528219608347160890162581773272476305844215494732092551069935668526939526656248380574845508794992617266592198136398494159404893890323392556876345050109708567523443318525010298710051888063148034414494951097611480577776716083465605874712001172881361397878666990895420734967154872856632059825948290952151612971340130223852154120565650521722824665964666091543039835775673061587155854440382889902695596981020834241005575483225659125609317313971675327425909681174300083792805387012472660844619224721803117683506049397730903678430127694950499948356281935661601889973601120378359267122655641836327329755102461372068642957950730697863453387767196432761750822122454123001938020929643472692117690196255283586800854139185760663851218219648630539266322326356202980693977210735519590714357229098565992941126925061099026845791545805829868157650439369182413561725998600039145742993437287107394467789665582692536486941215893937259862584326940047374957667427918485144050643551911801546949391609839078493103615174828437558536466007859332326009004813093101981338504923231654735141207261339974417386399871306632536884960752246246837417748655725067752896295150419487121489227040874719868920349702376062127344912734026247642293976618075375837102589844500315607656878711819556615837371078915467048997396671899481752487333507918589170182858755831802600000411739788297040647344298331773612521676267320001241751285563790247168451222978803480456130567114567920094136770446082443286961402522830108977178089397446551581042553485678505512432653299837420689751985452060920229645255374195162024766278663240220720770260326050092582128407844433702037544536180787122070743792716732611372992444127775629227776415337991119654120664472117669192113839068717715832102914007830983272340308837514291362430297231882928799601073298761119980514648723046025999865037172050848725916535842379877500003642825451954580598357617573052826557907454292044134073020630898874946815864457163853388472416201459387371038924250735520595475200393917103860954374284537964601451602698398124485491169336758702108186215273495398146061176257217497192541961965341422622080262361112976127385203493298685281306117027681966497963562485457466970019570609585882837985605103680539134335760979756440000572342655032702250574299665466743311063988033519130843575439214130796422545197075351740740860153111095826542855958925883536959873004901513931306252353190849159074765478667733663056199355675870612125338590023370817027257764790445796125303911805898988301561959702705291501666110967164450466511670549925740677590446253890597995638958593615874619399935267525450655324845306378658988729174241025948610531117571250368725772129610176346911940544381248228509111331909695516031865095028376795038197161923632416956701511325210636310743579663112723920277691328733381173044944075005319811833264896455860109336309050918407369149135990962605305081982822409096069453052378749614689155608322970951489224331856840220493042327516444141799543030078347818705031615870307428233319754470861332287043091406364009572293870710785593730672347439099591869300493690725783669805667616801737520663812032353130493350997905307148846831237295172267626761617037900652873867549709678387767806963558511793502999049117572576154047581319936483996877602357529079571366541460541861000559981483938324433757521626019526443995903423449321042785653931032901232586875776065868610873922101984805287170805219145673773369420046178596637611450417198740613790384835285677718481889553759250028689853314690013402337930447750512068089350126946899785296226255173360763212694879635770049161734725325290357480511197679379717791438056234136263743321461146346989170338735376078796513450478079601386999260571499929574006811993419944323214933271085213174048077596702380343825294983458372730069195886200369035831967324567606449112180066936240284502063410453539283198732810056760505189810950579098278184104935979900153187743278319385510361356904486850615525281004880005669948552118061664692367143847403923180159600845993488909722651066908113788964019128298007103546360336341724125005599218999008159236990190324109903347568136339804236835460338680347869124585349639183640822829761002722629746164131322248056833501640215072800936881124573565726132676719047170770243359787931766158713863360195899082367406136008051105176084404271730894944008523978021478041961880627018050939717257719913040901277143994407098423243434477179302742484578689676855308755350130559273655204977311908531791886337785858177245939582591018719061197557788231141651092218873527222613390881810817815466146896227606127342423961993948899109687439439915202262321789814714816372844736829409346430337380759746691028109146789997255223961684474586803267283970513001442578165603654760855733556155448454292752426809617943900033222219768599144783225895075493834706322981208525339871889557753709396181952996281016902850735116693436421525449749505391385237927475857600412727698070425612900600243035969732860309914568071047505792430849166168251202613660940966542432959392835067905777190553826887859646987425364461683623831221068543303731087578764492065204396218654938383378767605452892225275973729986104981346389473925056783757280073584451334939024518255190597551472120527697660474927191047630138975693352340965038298089187204864448021667849840227827146852256804972210486857517755686357478204499939543559924718405215495482897416141072489109184857211501855281910954691115901649207014555152550615239609637648808216267758026998590489587723919105118185529362507282188207814667351344278036783437546163028255521488834931783366125628941040311756638884108913622433983696786969121811491201691067990830228638613893774095741441243612126932322893336662633146919909245310784579305919773222108438277183964829907327806842496820355399838949536126767329011283507222798334573388781451548561093767922147440659012762256968948414100374944456003982499481623263653943679621119449577147258476875289518346337291946913184136850712488420975377256360129648778819430348114982120786419669721831632867415952959041791839639086751262760975336017889049635172826530079103064864941078454498389182575439432695693383723950575118389208573034356684082943554924179951230685963771286955595068775050138234691329174726772628207418561050779302902822468424518052078301245219021369999409458921317991184303072733837001889341193614700672154137750309059293985436903613461783094340951628654243192445079975077511120048305972961979528781365928065408183642286526328101406030085617754470268623762960169048379184821466909519671165816422859129148835444583083806378239222551547772847594136558610212266184920039527040561430586173826886468433260496104849923120744214295724743241977363810241315712203984234050763043640406198461473577437791121052260945289986219047069787080506763543199930122791545653461551021325007964761454970214380729579582959071405644384777436191646465199572386987611382409255309274481515443626845094042470267574286355538297477376455273423857596751312214756766726981708494889411761888248631720887847896947717686491101396936405982216557094252296206641245284010129552693304636966368930337955866921078198388523998297650026186120123904076080604869971678263414631537543662228765545467484859406891857118193017081985374999109419335645426371020579942517460051580234621387733132965154094969526665462847423446411204315315150108009123423707579443585954522668893781320885618214544625503129735925531043917401868786796764490558652647431764000246076970497046516612918236127470449903782534940777345688986369221968836159087486341668044073797594469156015416863773265361015661909785673244613775408722016806030886804759935995179314019109138210735123862168250845906720550695464311072432727867049726507084054120405407033418361869194621824911569464709615149884369509810715554839914713655802117936849777042403059222378931606788723379215344596676727241402402291219898037200821872761646635152787432844786291977962530704785789824649267492201528256036595230000954407078588090107796022466206982096464545214483728398127040435056199943605071558574030361028360127504150689213749128240913544755416038395472773295976094790022290509729787121958596323801116719283906791545692946965680724710903252183965521948871883117083853152781257350626165352824904450819744778318316583489372682273260180252214754167468047181372922302993983651078334282869525724503454079268261477663956235180291677006903835399181408524179171450232722415871096889666261459080589586699171229759239906361647957107972303158569293409813696804460249098398970138806417587415572481499879297360472361187166582973401265831758369809476177643046279070030500576140655942787193792173185891074484160875481913649680052608490897221460953484416984518181683438987285686726046719843764454126409404770046509780998000341087595398562288389956422106692019827822260294630430661919703650387352819157130728483261589238941108871990781773510630239305079867612107410949755263803740042741361354420031434087874554357795358411601464389780448270137032875887850402405551484111446223776070283714950658483079377553118778154647251416901382535918971225331110593273660006447488115911629954125238282827959173624559059865403990448124004694669693740947292216806571970392130601673432808603731966634516715339722783955735504034119297564654163185409195103407434765892839207479464398491245186019690863764579355696165845102597072918576051753516385894003880031547623920700447309820690915394292498196866949476808298452919707627736086683814220731505916629054886250924355357014113416208247378149591690027439463147650453709918982144337276014846617801974175247572067441805151349553862345866990445770330367561290345122062934131210625899064860648732663125444069499607451049092257180940977863535664664287394751371231719641820734876580438842076833073759389454934964857878605044526427760548493836728701420950466613857871911593889579592604931230352113394005369893492756985071464692140248449223936438586692041094335180540975964861196521029851235179711053866539699431979672638173186709655242078723110326822397217973145576660032117035216486812409632167990838479098940007689658483884622511563457319250671096019555231551595071670255351506169739253573508853800535417301587197663635282719036431756400636978274387976169335157335686336636520514072702009915617070423465179332646232357409528292227275079482353465253236109979655487345100362359026246516798936542062894036816562559688048886277943918743989330393045613981228613344446054374581921226070806848864276892834463899075432779973944637535312370784580247684402268569888273242250231163405808175118063040061201251648656346453837885487656882648823215270366646026052946623014550123475231941765796878130387030336469699697816024306056787456802463394641718147810579508212907373661838536496174050524685976030187712357632182080963866571761231205116915957398147791872822963137314678692956614900235315480025941067546718117059862872156893724899701318109319900550005973131067692571818464721874895431025024945977460573133406000046894419879643499458478242133448156033468809693353673250545034322473647005413935984673836754897194567951631078389387803154462753428635997921986886864570737578295771364846524812247479633832407678146214010987845141459725626853902142711598084457570325171592287914777617864740834938672949856607006125221890819278969330401948198760321496063347257483619460651124716813368303653803186626371870501925434916403120875366604916314011123514127131470635894153871246923099204080702360196510518231627904782133234077164144414049723324006657142465788170059345423201251868089328237455667636131769506532027003296303347493094083849126279508725453838268920242800334563354500066711215297079225433495580777972127268729098525963853121507175652899477637853269166627302086683501121663314910400367331788022631525654320667211460879576290089205016219666960809989940885513091644795920856826772721501133641281088401368439965580985934699431589807866101817203681517022726659974160776367832364166111809795391211041294755948085136007859955069133621533598169960008132711648173724717705529224626510923824527900162047953346382899377033714653899157799522483515804769364030568032720897706939979182678972126915660387496118037456877351740047394045901959778623823935043059551999760677258594437294522152382422433597139498041993043072852299200294319571982094807529061117718369744895033680593361480187540845392466470532363826753497286278705912239428071280502182967182755231247972386685890200418894133809298854189153257881908301525585062702214362615625294588730847720558716427827289039117497893799072648005856544744131808543943172060761268651965615119332713075240656024091834761265222032850456630577486064323952355044526194713072203657564817978879967600041604525487290456619094474923008297983527324277294278780552342807738211364718568170299099847738606954621157605819890899521303482528949129637574648128742613774078577396834617958890832881783587629895215842676309762037466356917309128338188083884404255885440977567219005401121376639306096279510522850011703943322153013929292789850478952545392001676852167530437350616187639181065056167598528058616371346610705825915990390630064330970417460499522167821630719683677653574642000520365565660797118926613624680308217660868941656549222355026771280519309071799733901770457289456401662138219891374189232631793405201180848404119793585321311480883284330944700511542502813905197732347078545770575267602059473478348758966701701201884497543878640493472966410460076199516891390654204578210490371069438880756543876043531186015103162066570669047596278948971100465547234292104020160767861758397891325942881458001663552734029072318144988006401532189324617756299540390190371224155160933197243863825289013760093570914380430450273975460159446922661740469699689251785960976925193496568775651761875125277790583999416845855123986457489811489953399388106194976835253747814756933268524579012310274171135997608026512169610184449431838803163380057869976750735937240227924840285295308757336736616750620929820376631248848867278175936838099768521544322408465718713459810323140812344235190765631322439908830210659734755790475822246634757156721636185658751458287203866913336687890284306286672946488084749469134489869049937154712882996341048829192940028887774056790461624341147442276122744393670691064257608465549155833177636459051426227900452308418171176760252508663313385048104690053799907002210287866186924675625365726970128637197781977104259646827385407087349223712920567257865221849553499685463387851449606195805827094403764221851319591345015016200080677220159717383732201663261892611600108092994617514685817711243714805449968480251385112603271853185168599473780076467072239120235476193947348848296891015965704142903839296628247068221184442138002291774911314423284398565438055002575258521485787422641897895228460115466432964425920241678471694524590152072388541008399113253952868981032416943248894471974012501553899892995735873786364259598103484458724468418728934256432332289558435782523386093235081757719095890275567375052904636349159942976366831437144994105280492927160562443560760093276532908811341179142942522767705321116353333821413077408712529894576876717887255094296386183523787612854522838315714883053984823288311311622426368654948799035887218632578468139312049054646953627963335976097277562086226990289373019361435820153729721913913779273931168710641557786847961926523087268826031316439326108381156711153021143249238513050612618082593708831251117598149285218958485622632215442936131469463361178314182729455744530475925994501993709320786216911082125483064334746002325077701945524756803025732500574554058020888018990340800499150077285730787742159008358135404071455616023171674744698931865228153626060654379137250592386051198310988636728046485679345952041425274592065711212097665303037092489257015473208350956873758873857819012218531696068995518190216226198920007605006971242896548643061324551880667668737321583328937612707665027081270545797746317042699452582130771041006909561906822115467383060298641485561870309082030366983264962087475481942745011302246882598230830585975587052905005731052639400240470523907052789277686200096944726059137321015165666838835761036916692580031774335746006757617399541396236941892470389816151087874696818144923799849910647911267015561292803118741039377284249818855693199661144310780913286657009538617473674698841551594878431499350738261196464687883998250009121209487749872413712948471866996447545828991610773898137333133927190200597150676784211848211014859058823880286702433959656406219662661649110987397542912021253282957009225185195504745042039333375640026692226947645892719958504509545843828065275616916433990102610932701453765856940487027679003649437143563519469564034130137931060313705494602406052854843542049216843192798501198499891846391018943977497873527212534060313849727612769851695515024497270570594158464325856962367661245841845971824521668727377864842585000257107118680749886970317749027127959342632902402023387202224982623779501222617474949088752246261270371747080260491021381047360688598126718899303403039510728730066435643962088429942994728282090258576462482926772726244186980055601593418468021625177262935448080112892792241828078029246591388219434350567498111963522746848749994237428680710242747060746392417273565971217823295083127179086549634233794758958758903670510430539132951342634791686918224967940223363426723546670547448316400209531034801099805579865288219891678837669710805246994394118056100952263354919407302859067304313845019532834491601383063221439378408812456477769025730282790693723517131454085146850009222056407496004084642804633008531996296057033382427706316256429276751976264447679828349860313937568380837032928267847540718938084165922997434922850475001781750905414260387310124736895039206098208831076366866842720966137861458086213298897121846461764146551297407758615620116804874896880921289980260871410714243503783455256538946041002606513051755833641471681477074492857411689376385174081953746648078536509789026277456752747524230170474448323703727459224352006205583841199199458630723522527601436851300585279663624501843506023832125209145353508515817893124089588745280299184841421974429032442149334915637827570997833983228840136517902953993881069853958198629914168465948590344115221618009079768643728034964368698185965787231359256268856462279740690927035660967434260233919134848001717739941586495591205414730175235654060577827965747027492973474265613165413619213903159104757511333211719084193800981037861645933496181600702306664041508167752086904235638584173370878363055434165242593030409850840332612551128800464551733507982058793916940383167245669770325276393911689150018003824425049308670205691238130939111465773731551460808981852409849963025651033744264278507115120216384354733643382127904914002034901795162010370742802625854608493921833022281427592172521919446627191792876553831131764531552748137126386287570657965370711523085895214268107263298530041098901029109723691730350175819449426465553744911020776044766766243333758476868335109804512765728193457040303463002889365580784207725991839660520460328131426086667130420853455387585311043773210793025775280056862251104432476336298307389385258954020782627235380854840423226510427986573178173270427402967239113863816609720304000303679331617393113509319585867094246247725205435621480037530143527448238299390538202157938926580252610908173316659506640760757966594708539880465543101219684321004086838330002360312173582272372035316173095318394218807885952412107841127507536244522198692694860851013208786046094761979691971550155036991968502581219243964540810895670011745831215680821848120779058693669405787567546120616468680020188356547903302047581861025641042464213076333224090385105481293821943512937250853531329047323428730615094399923258967730440227916848366777950999586208631788210429340152594924590385722377919498596368644159505148888016977982175100214594831703142003935012353301953490736352389072558862353590167626658502066306271112209033577665856291090499799717390681929712581211959573736780127046188289327076596299011924121318144230312371504494405880305369998718291730494709754488543360334436734354060067048417726316388666240394693330592120141240298644140427129885217634634013668512327803344819392057365830615799665433953919121488176531268764688991192368388780822498635930146043241447461626302252850613202013448414723718361774798916865059244439453835359376700031436240372153318465006954235173958001588508905124522326083160574476505269762047944829674724619792763033603982070032427777158385519085304169661510232361298898978127897719351563860064608790063235405973368220929274257722281757708565917050004023696623579787890979048016681580775170667147447870153618848825123549516754250588712485684114615203523545488074245861138973882150101447296703578890457269932847673941133818083070932620808482435031596953691665598300096242060577013902237582093739126058963461431160928012503431347097764905654936994923960919371221914221748962172270590458704782504824834240889318984690009614474268755207874210249557373231224184625601560679596775797989214277272975032527797803752221364453377582969851011786294315503770862490288812311920742320613610344967027225747948220023239669430755771967643858493255886646132989119789196643525220600762630220069301245634981975364945815339456534051836258650300780376412289095365899137381514061479226042591186454187899188270243775675669055502296626748447617468624420479762499788304770119721405798824496467830005316418438753030903121267175282421527840103278680839489839070566349721245832470753468343387228078164296608853532076834262268327676338854077739735099113772931096410277108020414187552845632307773322896759542059205119512815228164837902936619176054281356882260667547308630183474326094142226261124676478253257108242296400059490633873073329224590515683070908306293600292387089641765179924578102327506199071766517272256243285062387430079934741443927703723743055220131362927160341778346573367237673777616926735681790609794745832459524754999462573825914473841850334547720820898360854549535846281368134294422908061492657274572449673832177349370333471966385906170989042329964308334011931884539219308196903803110943819790836356856316601010351480550383174446806598679185765948925906054760750621717956320365563795865853688516339041488925898375695913408204909391373002622687100755238980273616328021961727334238174467138970251735718979910585698401410485693892275592747300762025590055459117055275748123951017336309151540457138620234532820416086838552657996063553897329069516832948257670497090828481260968737581661471129436893847521855849059207479416691161912755351953097257115605040854174982846877027899779774354613640809613587312764201399055585760463730638686840403385920866283851224118547755417890234957213797141373413323234768533376544799941690419050263422732914978027464629853497473283311624660608882540307071766321811605811439867124112217022878336151609278470096157914634766209367827246874785997652654479897315637207298732313955974970130808995523656976070386490603220249024362779013924248720202313634518661991022381258598531482893866851341638649712531486779273049226748335757555023999351413603531780647581765014026057849170795338485964610613426672378918802268065619486800630614561263596326938740709760305627620895815021241790177985582768815101822425787766190609981337167524830820941458568281250019819790163029424886894246405651150772282360341384379733341901520685894351789742780598715038568286466603099163809995979016811417386892610460666216529888372413717622042080461431803064651297711956241470432812630783764684221437934681476300696520979103295177423036440484072671828172965808425986495341579314659654590174030389784035155082926599692642945952967456741049448063703149013914170944195744403012882872317708245208138238900317665347716409032851030122141388771406489414906799663479436927750918428178092535517675136227172811407962701543259795188033846316281799902552648244942528548575374759109944871668942767218685322138410901567609559117976776964002959842461505182923677374937091224107114742571206439785403017411526127609512163656542082794232658897270146889070309088273456667153556750901573297251909390056471716582141874799673805656809702135491410043362403709590554327582993081296999254441090528999492739472770887923116147051879675027267547584802638599191891140983915859002729849794695324443533445388056704988108411579208977087837397165105535972673800609717252943969173102692641588652068298807103008804878867838020079944771176603970342917351747663849863058663107709438357036318937030786248472315264970972944421470626258576991900754454806068347301008278141982890362747135074171242760676701325102199033150118027599264623469287102734764216904262953555646729810945262989413058231840340581078302630986568114473654944030850042988235375105493369205664675727061675285092215208482926155306477850925363381355482263934987916438308160533027886967354938751957225638451409240797720649480724060034123362572053107712389180629026504229526560640045547599720386434131596731696082882408656944680838375130744867615785311390465761885552261519239201052596977100477044738345067907100733073992218915288022619892593317955712617502507240574586018446382663541147770071696757791915092540891672077138400697055048887619903836955312705726032303693514419921875843149891573422883203310785644579692018140747288130219277836437062390730129370876375380520095361556128000354925547264365293658294954644172739790148888934873381391180149509879581679588599571316490727944088563249266896580624204993592764906177200997921797469153588288514726384711181163413244330991108090078274343909569626860971189353809717273263666648107904261552761058921611731341813307844110523204427556665662746812525403624913492546498445891274870201219099071195018162239633746202053576886202027082647762412894905381118525321131253482153907878460356206567809879519687249843822259885704201025674202702140163555871987646441372809161246883618947891858110693051693674009655435202686469890041938623017341958943598124733245528956798950327658106761786485898730914734820793011453330933053074471886069048195992871664561421809802495498756359023897399788107839702248279402339400652942879261348768447868476405191154680011261375127511228653047077511897455528464323358325033266986653644704176253829127925691187112488481698715184597873523383328325366149905011830462711769632587983845978801729557236548540719845945852212181518787959903249220216693702149287774487241681209512803466563579262701007345385808498875789693911185515199606396814979513259058245952637560381326258012344259277741008205775248134071328462342688746873517993095760979100285478617775001990098410801047692843105416566272867089477257415219150961915167116795282466336742609817320647642630312973172601195849947300498362665836669373045926353858737878284065281710349374256106052327161640999277711026005480282719027326062997609197641687127605114117058292132599695772293373815724207522053910753396923920430021025664186711816426525779073662851897339790701159315067618344781266937648352222873184706149145813315722744895729496803859324156058973186318397899598669645485460087918602301721551018613374154682683782406907942819584713333724194625870106502163714761078939849814628654640765276561176556778517323579959521901614362754537880461768012987074108495218365886248449688290426412489699856641369366354417979173909192043877146059454242914376684536161665408507552126876098674477535563104918228187574058006098473293661913632966223700002637850306955606314810068777885391571209082163699149454197258058395023311938008231058253204553035416978658575360677179370097729665867789657687422267932968469557404811601529337575545211605099167029869528496055155060084164728330409672353815277612813138986644026304400106355429141385090740218617992253546038233188641197011992942332112828625694537798043898008528329551771422110987568368964400331109290510043556920014639377152421433199234134775121600641276674258599969272823191955189443047469675685938637487415857641699109735620169752391548107614785493835259111001222471917460513853731559374451465729653788721039248681628546221563038738509839847129301527384673957682332576266955289902838483053364479309805296422079102405243912785143985451007709332870688009976720315622795091955193278886209673256827134637396526296019102430823944871739802213470168474134566644807201374658730965580049839690778536675072207732660937535930829102357585395672446195229888507093727592457758995713410262382623898357389235706839469174914571111881722298316773902852496290878375210246022377405485362816718992917385334691896199699850405033691115629207313614944950603560758823229193557818319013831734374035230785723157514933666998593227831297636344475154724583200679387711196219800814103748241673770346987342804283626099535644639317875749457296091805699092587053896896856150989112516177417869084475168074967142735908373123310409025579005534985187987052174379080492533088693813811074811539484254490954360364485572635083464171844550146791156944675983369898141884990138200856021112122505696267004034968295316687008956371446512893707977606772602707433585419967514441884598282719178704318428972430348151053581455448197535106931177191291805127532056137659042365368192203600287730526612647675317020880422982830034856473994841890336192185340650337787794563147439413006955810963865274574512176652290422283034455830524937495728720679127117636945911633365193208167342407979620459459116950544942418949368046354675104200757335268109217739922767258192546219867112648379544049622484609727221345902352354482464037409613050114698343320710774182997094612895261335128660090619987553024246432826328221836103566396333133854379799771572921181733594594183081614524447687809245214811581968173178954053513347539549374075148056949412581417109851533137230264103099357320612541696558221262974034748333291198414893344555555157545798699099748159756331728433441621646259110031344614131041984014066891180636650819070346255560101809385305267094844734649792017558244794191215578267990221877166135389977106671622606882109241352496582667747026364611928535649685073217307800494811276567944054891818049705304444423784776381675341992815911533386849167287167113484885028514192888113338906104046835557462021795226410501474470077660331376797900004479455795700695126913480934102886514778351040589850355134030906224444188635500338550308870238357768334934663711375488689804167688766998633943032906906795661226837929800942216221069164869804450632931384810735835398673437753871644992860478239656477634333440861917784858590363363198770001407162920940705909425350503319871180821097013986941722122400449580284130822290430797901928990735471653437294448817673279447506644985294845045162875544104984746469829106646690897001356267948516096677485271523279561272244188642300716124998663468181903454995745414094381164387077111141424016794223287333415441831577568670005012479243561708162953082001554746289212155270529622464557963927746805404097424789244892272791424690779663360843485743365942628954276868067218684526175423467935416621027827491745525523462317310395883058247772742796210894743041589151595393534366774743647245495073577816160132601120168638163311139285066492242814205754798346971571251126417290507720706027483618860278289137368574264976150488876163925144530138110862022054779626531438855218812280777157397758985956641287666484245541532062304123099585819113894681478449507535481276682981074254918447494758003089709727069308103722116910922319565848004231544315317691846720188425117374123338944531563984867802196094155729797176552725064998686487473851949120995258074663919716221521763707154039237330433220251382607091308676895729132228810578491669748860255274200478979728491758318605303654858518374426618949823391719150236644864734621489373090947636264948453221829292440175095189519105633686434718860033742492938141696638742917585892853014302908221923133822728680333313499987294394990315082024724229634961495811880914637506131437435278712796146047812915906119577850374675368066333855577352037827425856514005662581807225465964970302931052404416358926783408647236206206930278159824126666211346053197157040811833458785253438659718866561152057569800127141267777754770889774134220115353603708288084906497907041175292115805939588399801342691502490470314926251608805368875997208551397365332425182377911622562965684422374409966423435259067113918944786054840010995817825348134015794040893982259675057794739805794602895073644976858677508823051003619896687757613595263464497845517266361845890537279897304673295555606090126700883025648006805860996526051263401885663786717288905420384658557127520935565666881143944458662503238981490431086635734475123365057625339566930416374835544835291274720310710627171125886267438378906675884834693678008089883972501237312448930347737448836760168515075694669767813640808061286354900012353256001860438115054711595838128608335857531325608177359784716826961008699044258775708707867500282521433190524135504216863135598502170211716010869731410550952458768618007888896425931137013671053097690609701039036162856405538754873944671763763664965726799049975151019226018383490185310779418828451297164740381509473980501463699289584545539718635575253859958316210424260232320722164081110552675696367623647233135408566847944860552777088287556220133321270154090613810870253653669696962198278339330907376677024149626465091099282828304678183387986162040574325578612782350489258714904885349211447630179097756711950503106827587198375722813808094562907092434094896386551634256568296057173418041373196148192271080258289725801355736081858624629247354072400415507166430497353568548596481842546794812025531072986499448304888784485959875446626788187011035252667292007220047423436753041355675910003401634042207136204744635518940946262006906964446950312878578971912282866567300698775397798250445956989543820373378800144514519905793869386657581945265893873178169554064452189304722269156353191601857819847179769857157257117698380584665801823332871796316678822015231573136389627576524117355080668950075421474273657663880257782092219594282085120635541103223964697111985965278362028860271478922316610220160540487378467656694541915937963804922381316906437924636108189774213082478092151722437597640062091223192402356491437847462966198734097638762966324127286537792552983088056880253375327060566133943530167328467182483593109191892711531798776987893290361318022790186332264871412248513349623765314957332386499417739648172178400650016203815533314356402941640556674460117571064754526104302641987267796723542829216872775417047080059500160581854289847937284260354679434088216879243709601352636073121920277756485463448053775760398834984957993228982365570563762388775096598224931693855105082309672132914718574188070978843324598391962599223353743089256822827323737321557354796660311014467255503601790152915961034316830435379980932380307370377811238687106964450368870879720739711746877382814504975606585954983272792187372829835436987858395571030584528315976209176439025276187423519667065055294085274745883498084526017448867827820471577621100176770847045136431361367729277896097646354422493406768413874080159617100053919015319175548770539895626407440688318954334600879797037115844321538880421489800125989706477339988962600078686217112000309728554462281712331909963602480814510577762705907056570161321556580251753966369083745231379117447322062948456212526995130852339587900037307199100212675002142542426769085479904059039230064886353486266900670216032539374463358400455209584633970948231381698478596775464185574320853197101896876992087320168800262461683201029216208104459766170450000599289986604879332099650988157475423740171094337128995133680401202166006805731351983102608139365918929073596471668134645124017986582326744422858346552386081839720171776364703332140673499050355937742223589985448886822591865765911518247377760324471704350796719693843092383458828762297286570308239813815330253488393058943342035612732297300032802086216930681580666198246987135187163934639329394962418572808232624396791159082414744977790430304270471858992543146038754728458804019245173180724972012866688145971725642707246265268041068339231532847122969937826145484884024882842174289242179326111045476871803479900270785302818152967823191851492387797144828115485302955156661196376250650431369260335462691161668566322733259080347963664797497935411686307254266989920579086409749527971088682748387476497659058135494745451220202848183959490100484980800567456736667252912256170883558630389279861087108909648750577148343582430722337392858334281550924865040057646887002824515522241301266722710226181663937863986947956832135339662583085603908362136598126276615033061885714969349142034288082793922488761931213457076125213677212439348500441902183160745868987731026212191528348923695717349501197230130276087611571605030505079444879862882883646870374338204855643674670408219222214919623981898504517848367436486498744653021030483883661633640333055924615429288727814746359360373335300344704277409471492139848778176212005042256212020737134083103337949142837357333208641503147429739550925043693576180719907137634352265460817313841191356047606106618651164402979587526613000135842643588676625655560860875498001406490599842877046733904335983158968669156963487944732429851583866219097473078173348778597646774299419067438910732514367606455787389799857075038823269424703068675961276272351285666788188778697325426110508447911332112859290787264122272747902031950143924298179638238996430582372636923399595616193977069505573813918595189611763431493803549068449493094803178154132726853521913419226908696305922802408760880143773009193017137025303270774780217667524115147082159437919089343984273473883723038551569667350773392271212928052738132712798608901429731911746687596726114389038869051724304974210228373470509639331209666870353792670165430739087091894602234986396672646564032112958867576831025607513995450711396166263636495355052208962014214330074534938817630156262082368753208553144162501107851870268896637267782074068262369489082826101534203469448248125666527376238181249672953893874823740618556806443605767318211432078757321946222816822833169659001027753654116753299341610650152888165303241312931051321242572816794022908281700748247883380337745264970334984182187100569622961191585472494649702020446432662592211096041194408942250586962457831455380357932184030913995129931214090764795476892020468384634358439663602159484397775012380087453288954845432205882885445925447986721564367979798554214495273150705105110238865631732206685604065061194103868213262682626690266056122241804843546437963657613420281147069105115289928216335043847756628545413954161618387116872343195521211128439543581688379095425757055739473362855035387444846150245019203216340644760971618692149537977710926487070069237608202914760137309898172936992964099534791832736415682342411334088594854239111360950374108560974971749596987554042586985526801087680292574415349618415043531550093351347380268524687113752592340880831451234525369252327830782772537619995254926885814056083229121835795602145830565368159543474309001561741251897339385375839964965181461534335610107964625260581548546814870516131643579659970467027225561509270359025249588237076063781573261224479027897596467621170383969386156322032515538038269735689433922769796577432742853282901481742308495507536116909940046826482499352925270715808125910494491384359870635518806842609180428881898660984997598963054486868704713666746967474300235369156918202462371962410408443595628928223728365675530711483037905167296874019588325812480561092265722042987316751964893105605712525698772304077410652743512801050728839195118083842064168076661786595220951821268255527957633731647160645743208918778252068439995681238674961508421688934865766360755749026526719344722216817236352884111717550154385217245928616001899442589945383277170946546527249478520154293133238171854181546564080368933327981719499970843222364519189824380512361656491121085468552695498360804530307883550705352316942196284978328697141234013507207542191053589670869290011271168669241353534246430012376553449673983266671888203438359003367984057479776084684785417221980067132777903982256829607862863132452985383472934964666625181576434392686003627108437931983939419628807737181288558603175421169254517730370003037701200990622481220723723726519561627174995684803949157714604370530006999425083510673025065692592785602437797203041599681752482176724563884017360550111777449885805789133783292338249320334858532447739035957359218407219267765999225443892223576869116731094577340034784664680950762441548967908264451593500655006987718989484453533868816201102831644280298252291617932096533720243935072098249748667673451006789717484058915569220960838062909227376526466367248180196781775576515417499718501929354994186636832847450628902065202793833598974201940447021279926913022183494318594220545708201189292205481648285356309893730228305068629422737746897986236154341290640125208727950402878589683209615041237975641952704703394806855423071708935178644659450295396731882076680203915197660384757470784367011595957969663330042598862993719520917933495205835879967086691744223243312578496353137189191724668021988576621935671445872419899770201649057304519948097772704235004646609203939465140259580383406077197330801577704976908296337545429570944836298442286808195452110313480541520808954828026613861991680852253080792628960788469285469848663322055604358863124516394667109598159928485005801201695097570467048718264385113346055575000718771937944734937684331115396677976788292436681574217380807281350048681909340071153527562017416094875256851206652722922386138203102259301955047905619318184755108813933056599524713470434868367615508262647519092693287860658617267883428492631556482474609480914040590375035247725963887279197920115662701197747020308405237521594878333702112678439075027839217154718728945168195182730506013780284573046407907233974348208101855550481535897303382091779467679271435815397515139791638805424144753792099817260796260973551337527903213599454483173853578868545150904498908815349986654514765696891752719636958775575592532439651977836104015930024919958291640749101220801417260661554121329364441752807880092162398376792618109575477800694794348901048758747635124930862443973014826995452904105821269873028957920495324561170935523121445850997482715699183296481564306760410433698234267254862223341163066976009127896516954038875491428319315726126924188497449692721865880744099543785233499902054237043580093084586250230890943401726232129215224987866881236010029759935331608771360066676844495626941409643276409027015906923879368589180263642014388098124785639584395343773997605762081579447178255156664725341395919531162493620669951382271846386945323684361341518145448933985740146151158300609096053428086748775049870485782863279641078635572342501208775049905044887819448843530163570952692397292851676483713682894628089457871973616306518804887216083971347828909294766739158245265039246694487324735998193371376924098988298047571790482351514185383360590102481090399453060108239601584847023946471026941025781619035412728656731413245319030213940144525604919470837588851004013690757879847948439253021476447175996281897235554196920715240149652411592999473550074816503763132573602331062273395578276518345975607911922523193750556059660815149105748090238127317741844048176371723493443868374491972017536089543506273788197146631754025481330464201619450176510684130438058279350683941525721995533755000510104612250317091910471683464435838058572423843044625125255374312769359610537436362801323530902991582214422253341131542916208426391488999689982735794444626986540796235602517746128114742201758643520950619566961990832043275155046760164555684935866281539768731636868258569754289203520775003187782905948783949524407449201551412183451950495173347402685188371013350341782918492766135136489188302454477224429406279957484232422140011002655490751521504517980353795123055663709587932364008093588256356939636350994260398137419597294771062731807409666847383803293920874301655529776268654571815304990121754962277658547500886062621496532127264827606208519114715634029524314329725146751848798671025588731254310859747178595676225270611202635458296891133491801854798376906532096057555823804261634053626533616787685141848312169099428778572273069410709038452947552239001972535715974976806988446431398099613801265545121517747271632635848930164847865529433810206831560124838859722298921268538281980070278268821019328761027601367000918557681781803784025365606302396911270673839314177230510292009429991376910227521608540228907790027923392474317820438347605702701460268772750598373556706945660675393817497664820393426807330079633697384532944451792207832297679131532403399508973667223910984765077450702962576476960359247337374008022466434471559539141294523806429387709535044956321004914859542501705365883169623468883796525459308607301439329904838082275344811051641004191933648376557906166913567301724809834733311959511719230205214468529309212395069833311191677488683932590569065658653406867902735215272794449046548738474997680572919602697139029882255561238841075382771661282731857669683060647004010041877589112605699961091641329552127358585188269643229347734572571003059890590448992065970363299182809223226973269607855297192105219820650869035532168150851389645432155838291777562332224709378771152893059996612353403869227734206064712560959977922160655798860770152280680210344064719688706488426122807894018038185072727985145952152116125520884431859700515091511450022937317555024856059024750732052074908460544224096806604565459367496430456745164146958757595683936521985004805923387172737518920181448139655106104122616780389521925723495130863343253123016634670482622091009842092885905294134928383939042724221854306915282217102820808954004546809309634954935871320890634358662613458684453839629183939384674253672377359416892966976268335044442587982546663359877851154300420945912489499136943512748827554190295007452305441401685863733678057377345740501471855781551555412940892712600748374868778999893251370310387545083472246616417455605795818264303500404139174398080375739683182313335519351278578676989584749317371083265734547469430889904872792718612607283692448109367030652464336879352626041964801588743711931927414546769701576790663808797466219667364616078856634585665154722430918643156607715760486833357535663898517601414241315154529243530216383483728102562767998046268860638093444098256227306710374973933904567112375881966746680790958393234406898325711227718920715716698450706585858579094553481138048098054867916906870033273700397438210009482761830382790055495312209575216830551205369361032268198339018916104903696148648548934250949936642454706479086387365965723572829912275591974383469042297178258906820496950209305746871893247928409886720275431981039991971981107910788919885009849581488046706523485009371126511916875761473207171577569441045092706902016294389122812395516146436368418029381965902898959590460391811632204721348122957138994734504955143021448534545797024451052625509231491607363699384317909113351804742282369972964060486070580063261702018836108971550309326909809493961411469567270107382427175937301412224482195653228627185892229866746689311044828142766697392070369714414156698618382903756055134597618065865372843134157641050758772536732102718215717472962357766061936718656978495753972365732845208744740443825192221907716164798493637405193043432887595187858993186299506315414117671094544694894249606315536992718973316978920609115526929367987180558222569408100715775146065769187224150518551299863392049822858916639569660945698988078081703452656876725899258121916600902346347934951996752100012469759237997455358584131372571041201491571823637069823685387015846056226127151621825110107898528135609636519766240638984825608937267438406202796127742461453745356654987519015186399230220033960387190605920759206270156732084244658029172928732492784238442269799036150168076599849766055727452543429024359774021939818651588077183537863325718638179024141164657404339158893450473557602871196659748772131051364034577238836870550769397830500540225082792035433718556412984792409016466041610477615083813004745574994805818727796963127434011794961726658985537436232458615621803648944129478092744606643143583357460242394620698528413717092009779843227983875900964156572648019863478897866545494820252204744085384619147638890106714882345520117181002405524676982699706489617865921830478297014511063299887666854716612914126936521986750482089185777820623782145248172919941304573081719825009465812645752785282983048342066690198437906593315453546643382295826415342427221137770317227266846357470716223895976616874146372394557439667719919445437194195526073544739279697941168882980050810575950914787393385090459006336087680174512737000376711649762787533761871871242873143515980651550712494621151883151073047317744721850183245373642262321220910924076763214114634411419832111702478099440220764711235753182146722504163097493886227499656810453435563148278820330121821987326475659941254473732831303107154428181451150003856183217058818247536777639452586283849867064439639095241884935300440132890669715677216087072774226220200802871311908415444241278337179204752748704943079713498906226096441046478608115315823086234038309887022582084901278110997782710051318259108610695633402297904996071872236941173609803778727809617781541401205679337959200185871591638790282981541819416140117601274632106221902428244251552823891692061189638718502213698987114296958516378309657093817333787041555332426546801924982863571291639242137768916558151968522609567247378323008801277377619154499624805077217669658211138616076031368013233938743413614091930420336543048007564712281326461892533579599788981726705526986565733851113387261487016594447127875364887021294625227982492058616722841678933983906074756836268220752673144263409048091346027290506933284899145750434925051699973872094745153422711768205958205491277619816345786998445256646933113580676916715808602719276506303628941942582697011529511062154592720671980624840197332466000773268886366558191736463150353955333916577797301585867060668392055832363181592544692262544403781235704754772168027813148898498220589567872652253408929599795119723009116215081050607732231837904915836393045980724423006523412348396205057216490881793506990662203426280386836102785243093220972337199296488103886990438562587146231299794532936255552964404548675467652473022455540725960778812755565478642242036606721341089778642821545073001311376103009773060943629811155213123353186868637980882468141843916155584928219570155989777428745943343644795423518661333983698936856063197835313408784890144949946854500008147994248195791945484449091572661328891738042534282484702988317323650854542018237074106890140923888093430427861185944389078162432630500341641750824292838436550962611664977525218985135508418795739930368669227360734355663948655133554946024442127802919427830648736426703900848551339167288609186652437048191535655952960041862333767763632788408262669124031829198598320518342803543313081594900052438922374489251768855449436970411263108782399561836338935346712940721723123388655071002255783280627438878897383109172659575608422943512701294492497251986195370450150972669503688016498484449841074201508199705186249674502729871087508699895488890751410251978565838719868018535616387930878330307805323704627231761623831720287184756517812559410020084940362652807716250596145626015627872186437519383516664510383087884028351839921764226455216979079082788351280800816341132977777498158784393402604283073210206974666903128628763432891490935272569757960445173924128057511667923319697667075589483372892286427067450891535869707837208408732738787678502766825440346747750434024097568447627507739827530114189322155292540966988105406889550469057197726379309680956788064386964594124279189519466119375359678955097100143521309535842805690090522485542995983804825994792806562236475178406999974034921618469569553536231009890970641245408355276829194546208586283298701097643830140958052426796243845691149841212080272344073521816330823635873488298968367048430130448339875889826634616403902321201872426489017362402699765554991001731343979524821127541548049121814287366425716739083244395312084295410595256391446920135192966654971851620540446630349769602259925015967108724732070775134368825670382384641309962199133598160747835100963777068026591799553252682367533208073746006375599331278788614259770833652134464297666424073788121506757710914735536103853765382835786394233406365181488686878582989681568311863853815336418366843854266056366537151467130374296966718766641667998998849120099701480271615742142969113105301380845329204551689576009894122522855006126883470345610424232557301811860119000852469517274800780463512708072898041426485826956121988673232340682241907578386508640324420134417168440681901737248585260202830519229117911812795158181248480310784152073122295662571250475995464121803770585602066720019529320454439660437944799974182489942858005898757434693041949798288435986748773604264773378007053617462394835185219521271530059872317920642470845136794379054431237940954114345620481096591632366880878463142508218240522523430796995844797180798299803150673052171673743174487323524087215206864015795547110955638595327378119354635829276034215417985558448238713145238184740732198045962182986044038905565497237196634164835885637858116028891475446324228939440712245713224269068327606595884692388131499263514731703866819471609974525749037693008759174500432298825792072036146130068411383513269605443862081739003856643998843032404999027176737948112040655196954927502527685552590209003835017814207514414699233944300488168665335131432685925795750060837322539423879659063702730018997860664493614966204547522479294060850913201163965854490611015520871871174198698101420794687012381060007649097367789261586019515941998231216164071529977263672476210930787223159134946703431086998301454770262267340316150443550000091389025633859794752356843573003453365184456855099343614582001782632913065703463740719426639955605999977471470824998833650652253147404605225650099642726998822987548885745353354720375810431033327953722315727081318839981611119155989816744824132926576260105120953826531407064428785651345888725555962701168567494195871455357669021199858895277954449168905752421221876738197705514230807782556265651789772403856985340875129406078406414261118653849985095477710774051670059781880445871815232284763600212959614144715781071617974109127852980421721021523217530310992771341350413936014099015061581242775409885999024417870787509953832071242610825667333795335762926138544147058896383052141705131398382056430662737673927852561415281784595794399206436670937705135836345808640357140960985758621207131220065612434606585258292962443690035127031982293841314432472879185291351543587508177069279251028424817475573084284019843971940633919155387731488294373246430685249917278441125642815238630763018118640220164350079158399977553177438945389549453302967196447187308271024887117406817148911663214320279165359373027831808262671373976233125120745616596268517650263886989053382115170786531864144865408233026328307371261990160973307867160843480250464052606115492648785602719079295857356870632383800807337891377457065096910416891771408775790467966887316878199648051017491556914402807027085314905077951242428193485078132819027627437040525866481547290449345344948349918853748837525888716664007101730794208859521490780979325163363484491982697295781331389824354507797157720406053451133875627957328118270548043976280882631807986276882979815455718662487887383383419129554059374158036164341322332668770836985220057912607547098951539328772237127044197316828293522294824818142032974886891911297095323788261165741130026193855299804925493801062222764782105989072303099096478607769242472737281743176964893724195205129723268116093522659647834513038261424469698472782906426448030181305556156676665420717631853114266453253391406940909000296602353021300638378800403348856091556165380239505287800337091803451018518945887728944230513906405678040103529221480008436302318950279304529128105400471417816371051784126865530618987521534420310477733503304874428776110377375460374625353031666483553322524220594606312001909436395136219159999030914882443448808687572676038170480672441233891066313555306091358400333285060172280037831583007809196605095612052346921192843055303326392937973139886010883714569170361377917486090375641106585120356061327460026077320999603406661748985970214628759575183005224996146019422169844320116958640093310885263365850537975664615470866635912848829185242612959173820115428235524781647675806311925073535816596041327891208972033824017290423477003112226626353052017320339484247862460245583865828960544021733435950938878411802053915004176702341984878673230148573609695700411865228154241862794688074378363250318197018599224836674172920879057961675940495393858587002716018509533918238222500501388544274981345360474097532354924077344859203836621875727126402732287534218964532401427787159953244143324886060639405459777338250689339833159643861769261671204454273249631737844695947833115688083834337934325343542801084696956322456551314534019351199444264376920674250615697193860150068360083944892779029390922031207447261594177322033513598383195934332517289429075235649444396168356458660684148396325728133851930500385295992656428142848958226115486401802969314556758188419982172355251715173635975296859930109117981912058862108912018159125981797577262712669724371943989743743828356416920248643172679155593051476478596661477156111937129111274640845685736564673581421822653922054107199289783827722342618391346921313615142155995635982808215890189284880537870275021238033395453388750318720714142957954886809768056117277144359559989798296365737310724459942699291930927318035884103826052668138845437043376964469175635198951441231648552252339169439139761069247612978363144642001802185379264396271486202727272295445995159639087096199956356253910932708214373689302591638183471962057467727422204559372792477294017083670659111324095789903233493515756422102325666280012732063403140099781374624928162004372325402123290546912381910014403641042670563304680863670743936582783026882084096816440226233196599679304533864038540777028993461873613256634178191721879201811193893717237822849404881472558213634973063348671364104246779435882468322278870671599371348931167332386086677712659710030912620772331714013725244205800177544375861874286488384810682545333563349658897014777832021888190906632909120465225471813294103581609510345897922222113123209588787653542154843903402833267843921557395789759000213789704197277591616032479856395570864540814747298398541750009904506427400812574230435537748868699945218010757515047007836210161999145754555778393611337911634214157357239431946980608356338346719299437995076294503683758039876162258837070054298998529160509583849519411157629046312911819779158205485036512533175605130845688048921875910952289306414258250030904893815775809967859392211166382996818093714338537583510225105133032054454033623056113450342002025350566796463534641524445605711090393699504896109381824567769602488366664753154750022427556064755953011622518743492860534299097358994396187797758053406178692421106142744003754088073271686926033463938899378147701500242887362885297050489240093270995995682154501191150770936357613008526393171823430739173364917136860543123014008790995629598702247949699141692785351161669330084337578840832042167980259227451825570573039249145141494586356752268377532610235686554715017874791334064745893133067408284105969141164154568050509780276147729087686092765762309101088491491295331764724958706662584708266438750692567757055609998266087809463103525824653295215985845390819637267996116998992898723329295874113041201294632606636193197211850643797982595367267246602035824772196252970608731312202008932593450905518029677236542357513602083668719546177396851397497274274679086638287139939284690282230473097675086362992963670803818892516018840846670290973511073370192069278631575330022814506459838296688860091197077777341469773215809255520759341601337497310823039157133287201998950866237112724434055625850179494114915047601058433097228478210601779031451902960058530085838560362131943749031799264701272605202650601535239721208320635538926169332287817376087822439962056084379198379045578075050755070889198925766110263414260082361630784751948149268862962606719380843156764904729885962205002615720294688569263491006731925374758494219483164040351906464754346004273551664926167140901312807689166023886810542196692338462644058350023652920423261489481447375389963631034711652287648585697440570457054928562838873491298976177401892520169768686421307049114758769541950307382144806329431802021851397848511348899102278738890183415539892735299041899746290009639938954801543177911998602352597629743419370944986514505773026365942714176313165842593343189580710594048413999132640170433655467281469980277861909924713135465416724359646266460035337314924014137891606118164513323800174148005674918743996625940707785174808316615853577662511563447056014320777476577038792920200437313302240533409782906064622597262473371310081017230849276580912830874731715745995642864878266331264485820761063100830364377999054984751476575535371271146998704399602985624279167985844785553840097876754821584062094847852828289571378815211386910461117894661501420845301174891996722344002287116657950901880673731264082879202708570783890987033911629678086170141901700421203437964714661947695126263120329941218572803262260694407143653387090083298160543066979250306402714933290705782016006607355980577380236964670558316113306731797017195178936892856401615719759208844933871188973011037621970966165505368936323630372231860570237078985194706373936041268453859848547130647058570106972730382391429663498585078942247513436070781627171112365884868908699753972038462548274939038403444549791099932580641651629283508992418075917977071064520807279633523319811116370249179483533695932145900738777409130994677111945697637832838672198101769986146144196376199331111371117045537732315357023242609815719910261814469204811789820633462726365659938519355566667510061683068545903298720726095646931495570774754232116709421929026746379397677554137066412959170006631336787635804526068306429971296690044337669392072359117878615894274928958429219973559391783888399886069030507969928598033190400607967805154886783191034050968630372583744116345763084161524765811055417262612264801656277865815799847669669480533543839395711886769030051509291064232385909700347631940495744882398946595947756860973959335903450328671122518750997318150044182828372863119923968177084994864574465133695686105308608419757179006756025281262130711933244350732087784229524988236116693476674732806699589707912202594969452887637349928611518023507073702716849118968730780803544036995163572303003943759882989517562335104031312636775823701196844299465056967156061399190884798230751996112632725563022466445482533744120569511790310675406362901560968553494329314242276656292967020182700238572070665955932531210163231735164658263782701815471240407502483324957135810186215523429413934363197290524782422317772461536787759078166911086489961493387130939004488258271472188644805829136147111863173826062862562798284566115007761067353682348831881456186041739617237239229232611727367497602710158494347195676974917237192888931262448112485876540295999669798057402365616399313419117777906368945227313752688933697710269190126381070423577917881242537434328180580668743316871726754095132485180534141583219961090501434900475624185009591363679551370862567641343541348411664789504254605992041591218876970564338229837277028339193671393779375553450594021215008726072498825146306693969963157981653950801751194357382145938597200748678328193272910151480233937440715190047716592310107567073870676141189232147638536072387223640042437252470350534524999712340721726539780483501971223787147335900456622782764002881733508697976572275428010871873044707928008817134160832138299691055957075029380376237403725699962678727546190109952734671743664726115718680969120454376518376610995886697236805338155808959494189143792792062092605201638108179157386544705434685863088056378744481640397808868463758490839900276997982136159143459746770339596537434288525087292484922855396647855037077122501779738766949447024762298991358620559403242984200491671643043564386249553314227930950756680559717561170799904763543696092464726762518823262323802937973708079459160932822749610376821349192342809008723548044532896619244005821069572039322177922624739566548169326413300596548178190969615695134932238117543735758901080632084785352769069233458712656092934109030737556458903489866182507363502350117730332235309501306095416994078027850481472806597624850035182757576801223491358625556313752153869369849815265731501381185808029119644821839409871638326703538520366457245803810945097256583447463262725373388157284761894154852065324629997420139550442821189822907796076617788800107383795104524774006236700543057186728517608126857947108965796720562945552491177493383864666279966850295458487299573595303800901227419682780270432244884292782230244832530039065372345108352791262013603712583123130538069113756161128556004708890020017122158896069073501946595692462099197819964475963102254609796053528497859160485996996632411946331851585418014259223937115960633830912123783763677462943121152819411631835191292313083905556698489023314447368126432279102134715356724575254759841348571391791178399822667688238359675058569005297792228665562340713246031396148247438946528826712114509521285748453673960002896617651027366603815777457540644306204963544800627828495697301480180440317713413503018225349375926261290822877278437768519170434716102136790702401298762297894731113524845427423134196959056863313614936101071752603948110565477107979289397027767374304111308574743504390150775659389994446076098250938952431464589448847260335920787994537551291126409090307082063353053086917180695511119746982735889771981740330726240840099969399237330926311557562999179907204965588395563554728199679722539642397203630995399716872176937753816991426866148660042351628809713378044895451846551001249315502449353884316088101435701889492915459249684303393264828399414974723675811734134784324397940602498076640308703499276129154481948294493322917827403218434515768033122506209081204143688869571450943560980519828986322749961194377233055194996399315082918693845093202318326256600615957824244618423894445938891088978881584405591506477437536650220399750912354642582644403401943963693534148441675282369423306834078928289008120033879208465508770512372378774822450174549002141326156830542338914664427060473219108695934503333518100096668726081750167806306923679744616790811914445824367634318456243167641028354490907644152017773463131677220631229501427595842334219073840974790295480438845782116642833582961601371648691988615593548760453102202835098576179689579534819740355466509877526781641446317591248644820800256425267488290927920525467968517294864382442019022828598622144616184598803007258751236743373312717386859567567565873426825494543663388049674136709165000897053646906356924516242816944377166208819566768996761422787891693064590443450681426049185036909266841169818744858699347296286099503419097438539578352329076551930497717691322955989220913915242139783898002776910267501183629129366741680610137814271055382079532015508625734786196863428760566270530387312525035006264857852378351339896921268901534320991892899238462346932041957979117038667493697727880907513951450895700915096445375562161576448930560883099638380523883181274099600327489522784200648472529080305573898077158677107048343509731584836568208024850773611135219029864136455286426198336912035025387441667227088532784988989969162981279587045524501292711008967274115493280955239359140201106139018520372989035404436211628661008847075403893591561516499696133161811954581834105921638902099742295824942562244688983836275990237587056098206859128969883550430614438082395067519053163779786352960648729207133364866771791339390129269274632513047423332883483933240245873575664394784724583204022952966591580815259408297774096997916462581773860760402322408869094224169084297577047557574312823282966137030655212975696403492683129585127599918209339746481052139125522708256080687622220184602555234918215075040963857315060488223548002904601410038058112549828363047414801929331081957303918892154999672946143348695946812013904903138401531347256333447592954629736201251362165291689600795937424503418340370916905083091951678419284682513196655368168382625412226750804184730336340602587420015367002185399680398216570181868624537497614870329206342345290517479695652159826452875108912454523927612775590088482018136366582627848285964813388912602867713153395058721903983031676599156901490394907625990637698577166787001503071674492151561802195362835962508307632636856596724906790267059081389629492721302959832129098103062956225618231344470823363970822900999847938252661278004457875687887326825440848195856549250965466434191039593290500207539302965087867554043455519637024933456647862705047553936194175634303651147646137261761954923273746129834381021136986054344336481277845258491102263882410957675163744462873672551982688359274752016581781617206370396860839535295941337612134619048517181022486255852775241532673864325293677441498033499677074303572269204037329149557485737144658094457778105880501358665705248876578321442189379533758069140643171212783607674328459675918833016102157610431161824185138841551701743197080955701614753171112784746673915754665669972448871738473798333431248779228860213436572937034735933850021944228084834410811618170435496332856285591903325021103540913389998045577393455746031152589393384809412073646441041539771077787508637645042115272777540104634038943886281987483340878313974038206435411425564947007679364593620685031210305350164602391913424225304267162413619480006966273548478527881885905988602990237934545070576507530682311814367264591400937013125480163922851121167747643417648621876416893053905130195072959775249150530043879288052480296242055421448144385523549434684589142188825170899757387589647427497618394261758118748594037330140261521468966874809184010214062215447732169581925307081679650995278464628623527395575248887595060017688558382512969803205553088395268306344977613482094063968425240100636536102800265456112000391253552481408577394201965043777651163167563796712115823404462336854111102163942019362429832418581419582487518124395854608628215390146371696566172586988381784340001256766363029970947358664785416339971975799971875274155005637072231079844409949063063027835390018388433132853030380666350272298226624476690329090162349573913143232539029343182749553623658025267384282230366991180848091743214369206585429534666456342970609354512173059464878753153190452754677448202521257876495833351172175381308650495010913941029769883300232838934248332579688593831129649058443687886161901758353780721434664788668060380112987750446334845609823967686592687432897051909783084273663260328611752999103520295866739304710686714214019335156779356418443257386837995663315269396667656682242646357311091162803240096173078306115200115719413367048448465557773328785618802283800968162525828783142936044955130601708103078173358582793330978658876461517448841662891585434828210796727221546201344002544284096495825276139828346088450281044006363285274685466798190039714767565207378664065477843733231761831201779672800460979656042461593138756340931870178664622048788696220206271222140661484382235054329997108903639997074762060366470950530490915757197298824510629458516869163802364517999445495985855033455134143659203128742385965197693318646114719761956950882473357906667046090723700614815900277328462049736744163011432591051336656591132288599662595137195676474013181041288862812541377782933819812587522527987981405199573356300978594536636155300896759365303030637877392181485459658456342240812142075611925232848406409488819223712901761219774702006865708476622105295204490426788579606063699799771047339010495252610432726153282221747160734948372096565643186929803097902783563927235046652566546805904734813067254784932960877727757607387645412207028570632458662563632136885205540423054102196064162655966922400466868523117851946777996822806332279863563129155688829557067518030392739307798959207260127370014556350253601865353546673839409432691886153384262230564717971174436121919738836132272966983200933199195480161691584690574340859407200960278543333652217476670373999681520381409521468447454800279637659813198189543344976656644443504489928713741688976631679876865484881324915804414096018391275457909737589166193005176143203316009112712436424665427650926565997605707196319605545092641007000581658166818592064497673972762315419991512148950699450352339044128130010648752306996143225597542518825538771424066919255273611901993661208986509647327343386367215550105037754921926887365834511643772119464483948244015142615248279895527589468426752223548471520689974551840890243274597271349448139173002113188957258514298695839152277122664623867462813657396131408597199852124149391388051665331953556847510683774701214759883680401025314137363670860305781159059215040834901233800089568143375557760349986011044190592209544148572118797760502010970508403956185645147519443760187536486027447040876825797648142631387158476544176819912787100856900507681328251018947434706684236367273682096937037300920579025707010625850704145202173959813159682384661758566366031440499396020541088177408759136140116831448366023908647563372914501035438791726631793747220708372650546979381795341353445438650861160958073117900382204079451934446404135871409416516433641480125027031667410554262776480785573365712790818140490959439471329047902476712763020307766502284621382920119555895623189408552458843984001099471401143778012907183526137899115076022334151922233018931339372297429393663873822108300658739648504636885006334183262178845771684749348546461414097065688888500792736769493751776000089578041387789626228810942877405674819776766708564391480732659942317831733684205289677091292371107472082958934447927840002033805876502292353057776105626156100109118858470581053561807612710502648491564803768558074771500639403029698217637168304683383981471533850628854995351476938801763044815493324625081132438724106885250952745313673897923709662478067634583198386348636094503435004683559174914257438094504977436534274808002619161451334078532389383435504987445146605110446206962003017683508860871002992142842173669103543440107134154256610054136245157797048711544929663937238702905214092335272274749233360992903369190009864808376935679203438824242586671861546276444218185600489177295258476627282205090333223423723276162295937432970661312697971095770012001541227725781999735456795987621755787751077934326216201792274394958792628141491238711151923618633782663694388021068553976082222336802563294453575722538028367323784944286866884508572480398322756539482817511258550263511858102287476906672495227217100296786660334112195217210082923048173782290654849895212218830833438798691643527774167526118186641825257948550347829503142406060099957075308428671816583071847264282042306294863174268286298933334859406253009205027366282521164121042966406673603254993816009780002185697227973501868780561649128305113847897985199593740035169296688118300139920498993986082944166360065852715061458342016404313357400970824759667852053807593317802628519303373031571404903356535643336582711002204118857113727365963153536654365593514595578614399158164349350245692078537530433028762044774955453861688152567574480562627290172594074450528366350564902500060572939925402550491096697122685674184671737320269173336339714362879727151295140472621413054503659321789974815270630069608406517351209045285279932363636259150847216866191932396465229053476377085075621370415041630994334358327889208280741786380834634675721811264818147549542746924920543072705074137022001191830003979258872861237844990089671271268643362413087014479353429303459015211287999869269572714470870484201238923622484097360574825710907112346401166758865828933780307142366667851169629761593943362585531621278703041705917665814947675816416125695353598573184770143680267127823444778430801153695689906194255557608381433028302315414720027468328653894522319571894894826494832688068812068946819624329282726343774926704829278186252714717974982242285995151683494755343753193540765782580301370327202515406963234943821491828864091871045957682894122638049383432758942311077582074997844626313015646492695042093364259038391638071732941288794039823742138912997374314616349305707521408888845522495609228571955981003586219393958437815710453182569609993382886006651099417536026238370640621088170986452119507778770707268077524829008298297079318342436509451984552669942341990907924257526129003194518548000081846469411389289444778503000557036953555527164679965397916120844630761109089602525689259903656616056348582645289562485532249592591525567175389973152499662242479904461412543777549552828661181349232608098012347067892818631920657368909329431346030762256916741207156836057805536504781920820340192575743272081452186994405757551788164372026368250514645483087157446034419043075083339379362738291358011428029861375271863308250852602770873660530518270659536142587624906850016820686077645626506083153112357968036833341138678291485892570087357263116793418832799487027982951600695248204518681807180436808146887126360394681634757378299482738375057207552313580053120988277211523351489414036599321821004377535824731802081484157967747475329231096730417400824889215980951549283236266837052567304722050826428120129086062762767106425054140437899731202993501293196000941542660896070741511524595481374431179668596274612688866451008120382440820828535541811370982274314760612878034835762678984890519289344943521118599196183686194675748718756460573767667395589269976754275601951667517303145458019250320305676197427217966978896234784898761859091753741599179018817254963291875008868000840741891733765273495805028505736745963302057647942260193744729443751708124010524524906774893804708689073811824434884872315220174011697980761266292287086067791086979254357254329475069509328920706751891069839016998500311936324918720323777098053995930307236845083794513600854415093436954181972082536812210639481167226827380532196291543820253102710755055113955857890160131803577006923804106555528497832024687719939881470485556812278033058648759173521765012848746089974694958841713377650781479972833839359105137518573323571798643979892585450910969111330711365813927851752571985360598871933840795091265003448593755063513072212890890219787852015132789524399829480434964675397607301876625171561626824678719760104678111532864347875036499350230374658358793515118100726052057221941398032907017781089639810179024144725326119445452508954163765919935710621668335175776199433691903936744067558310368222794595902836300086228277694282242308726461307564091411302603192634613630653951760125922447894942247821418904766199845471819341888583895365519957289336985706158828006056889637253955807163441258517832514371021719264318806505517570909516490880711064966519578499570306524583707523042873966429795901287168608225334209954202668963662586390521271794573012896370264059099070910828239952870208195500958122284285581034114675245406192667751836847781091880305369474615919369971999569627356175603531617933784012427753214335520785173578640752693929924267241676642771142780442330137562267033525964993174604056818499066489800161245301087722524922943621723021156558790520349430158586395790054188152230363583216536965235433199753296135941629458445412155682945661389589672824325078201520707980568701578795817156344233264187118582747868383668272907414909824219766706090030943499501599339435781414415148239977981090608934986432239631909116211595568769826643317950794649526243278665989997375799353286594512980554314882045729381331649019828500497977274138210995858039608069975218974267053079544907458795969444622786259755430030927552738047223030194199021979087686313372045989617753666141218371096850513289176536423332827625846459004378321278255651054885239591636946687558996964033188221018512312675677446194492329843724393689091353202338724498859988899582794771435570243795405339460969710250528735221105791947206510196799013662035371450175959770627327903545750848103288298331338576839602830340698672941163083598832012728294097074032914544286101749989028854078419899878212767302996445632654001503609295721500360277316144970232262671708867479485968585532987568277727278562210107844409248063855139982437662318650478394233309602140327337851691271026265200795726414281829431245284881714711794611952526612390041444859605124958706029287843243276831710204424719080233100706674224773629747556702812620967788101629670165371704309685997265908434759567170855589307955012325496191251679205665253629604371945416945983229246203577201991773302159855528984101113420101300944143293497476202018507889467533767666977472623318459887569190049112921574394106381409499328947875737932450168312834401842956312054239343452010138919295233952099516064909784733180471718117036271583273921431549695692931044458693563177641294668027525758080583054937718822805402379585700803470632246771670030091747083060340687593497670078062100549754005999109834644336193127445495212947831838603409193506173645568992976038345633791174809310796544928543287865147826390147801777623202282583092125702581411680740277137280695891116025781717622079881931709944449670239745673245988080087545306522936974601500361180979246059722506048840525317196333508574485107649286200809568705565385867729974549720768400013454200907402709109110489003289815139357683463114799049240838169353967271104235635542677498901425128528556812273069036057751686608884639114234219438131414056802041303687529749216539985642321884361527607459582016769472167420797875802071812188791088925563561247682907672446777852652689868512816541159445101509598292319374264751516690942530651738592014519873055543940959153525937449673795336775169855277406995236383789779755374878319241821060798360641483687356961714102265987016341523725874700449650908347150945730193166544920109938725283974848786428888531226780611395049177168328671144757512434026661033616843416303703054716965155761475624662973735479584327487831029451784751628246354886740968135607779335732122766198615481161092133178728627118150151210718186918302526855228604978702053523297784542111111862757331930910534354962409504517212909047549533033821136557687553012158140551010983626472910639837393281584178764214942553078387361371425246832906800094986722788109311407220856156908475050659672509908387863149599970016644126978683893499136522670930600443484226186838861345153523862591689415579489568541310544991573809145390761429011988195376152976442449003528160831945641209786752825978441818440038637002733124343206484980634949421706504185605890555990556868571875840982923502293225375487925656378217124853091522183007642448295541688730118743793914683204475058262888189843294679787701597520927249188564049977169673522283216239135485179035714970383682772387586704421174091416141535860528355434166939256391336511733823824024123536206430062861254465026988503350638904356191362060146652055175444984409710119389416274775786521886087143606051886047776096921600133952607671145361965244307173496052827936829656165171706910486435063244470404035160192541026171145519689033999538170052822014871211633100115967559815374210971975339489400835262030902830671857338338199492261298423285730653990083803539728873912265949036394539719571062452894360827874607747576235983182527242635280338994712185507260527285977186480291540480121100951064474013804664044908418640922430013206016308805316123928998353656511566693874393645053803657553641098483726102595955279804498124126906112832526202041575746655229861534378846471638435175228575331572566923275528441891013243085628536758783575217940871795132870204083282867566537412015344279390613875631509659556164340871337786227730147515989377747323630037718688940518316979472475540755992318649295989601760675937077913446086416000428820888554303940862749592065845137357512400607718659573632378244502493625035517788359053773474074539477407976385446144959238464857945751222871853809677640666556647693257199293657254346431989639862701395852619116347577357861320435099026177920302158689452902637382750461744758124218664355570640372614882261129789088406519749567989703127072742645249316758010422058604639932698663455173771189887418464249970965754806030695157228972666732763548823790018166762439204425950449059287118073430166757449091813683433701946010425052709866742486038757018705641399453627656539727682116687472830785411878360916682212165304195031143350957002284214669464530858014850720781471200983015719315470829494298417003480796514230932027286265769143196392001921716760153296546209009746689209514844695330150117510222149896431378395079429658600235435027260991529096582042781773803158907047230567531418295646993448447347720069701472352735285339212186523702198160183993530429738056755009954236466154629330204122121423026744564279225593785400923827985716351488434034097209481488659116287434382948994867777270483901729624419116980868745441398841156308550053909208914664933536048107841556457432358303994697794068394232404970220820018668561914435217847208489464812296607331636109669423544989464384912427635307013698855483931270003979754497312777076007728990881064158731717332768230183693452401096441692496929323879073588184697515825870972022676634605637377797446925592465022310138391195702519620244491732156671181244102701154337447681801917920661901920893578049954317258057628979516507071230054667966106383573921381193215629089442040007116151954903242050123013565401624629100862807174009145563380477515549226567410729909816372691657022009233321711123188259690364154936866901710381918198282251327198526240781439215963379771098472736113246692975960538070299892952735728885886908255534799486651519959958559265608275134513382386271608667165483617009671078536434551431050448563079341438820627958104226486063195063442266713826028892892896865412678889007328574872805795982870954115645595306827114851007860747285534143159072401293738002312465926964877162767772475928739590060371088667690948121840614038635260464683875259836871375813892299381278984524653361685524261644802426855619314053452038557823759030753756170441148003796657506404551372486791389450243965684338524862342781818639768156433062011430133899253166697982367895182754115608224629430840784978802345800910416704421080180613078222174528807430499519164768289670556373562120854323382743817448676985075050213336418675093204893826889579147521214755923942788688751747428740676969170765730265189297075344491115654438649622120522946585221673310081339655131295711901725097539435372368739564767793336253592334291855029530059585764460458039710566245237336258674899943243769913942048920172311116621587642999030325980621438869294569029426273871981042957051694528743766924802974887442817601701865731073639822736243322128828519441174146473599091314014158489075062936861185440142903959979727477703032223856164136240438116771592454270809866469518027407017325535912729837658086978397240276782069166910799982838987087762417521157035419330238686523123520527448097849796230591881712742863107590609712290077190160118489597278873983420631092195943084792791886850255432900275685757694867337370320977303436060253322680864026114156722020520899910337230959803610116691146458001901610354091856163118463866806141131897630718171573499594397816792123972063334122663541190302803427226070112914651294305733748451164028987762092187364476130439658501967281467033833803510114040952666907352482859506975830431306522701984273389558665468668765833187889719234714852041498849553013524970269806002711592732545643687179056447510229564905018276860290240181765208580716060193459938335770038318227204509539191743388411039085512014968982872776937279186945441773849669002641082490284154843302063400215129433328714316836878203339647148144229162521606207512305623925068378722975759081537552130704312970056834823738468937260393698367377363163929004386117253236444459594176236718559573917536994180772988510828432096769020868109908573167659111729994534019778798495663802508356910807479551397248784571853435790290206943476627534349487229910145348281014156956902030756808476438988334358207359108165676143027908651301240377112001001816775883609921684614618891986865294081207500619062970258360775209022226577029213342314768900561679453703036418656312414094622322149941734438213989983796719554991159726993503239855869320612393176465924519195706096724454918565068347923349765071015611039629551767163215099152049584747674108091344415713709188187322128586385837784214533372461177124306155554515853917301657487280251848791629857896851965965255725462199930004344716680492744340006594546470861562296044377637406350866973848727090350894445550967293770450380540898248091396553315905899228778310887119497239065932489764458998286898916840357550823780902845053538156902245544223589183517391876991365678685875006394173176639199382680748181087638560926583651790664579860046503014661053332876179820942188157501256002048351238205398495260322293538719828101389459055913692076748804990816345349060122630415683219765090564355556958880214364720304901934572871965209379247459599287976581486793300776163297018436822489180602694754250031152559173062035798071971560064637900982749109743023449720262048423103917660134847420752603792701405575036997392248161521543825210301032112502398172459678252495483478501947142265704372987259142243041724648199221513074936684401028739831723830577391201592415608708090583407420621300408794809588958174890080990866131780851740842664235755634725599120419618106404562429194166449400592205763893714178065819617701827627294295229141566236264709508055972628923206675552100436580225161490325445742193720858711091539183245842188149210816866018128748849538839982260870795514450768263736211683070517459997786499763957949990585802977877244694347073432855773254151332184611674760154931893645833357848162625973108312876260883209324832108100663015726568887925047551516029692164299857132105763026013139989717426667540733602859983638013192423501702000436005829899078860504926784903899868570336897256853893999439985414610840688024771579225968208784545997050520080478276657165223563397255377662617047874267475938712890531495712422892416791698671884182888958289710954004748804240647052009926198037491863124858428452973965608982458626560603377903388199194113419804535643948976050918572448499115624427788139059587082877910351034851980160374108288167367074015788212612691506966347403423638700378564687576474218759022451659451185130575126537241987792199360072809404812108185188175918755125750242117384365022684742033944523659538075057702380370299129643291682589824490228228588505997719409963410065773898417413821277458284933446880182938346812040863497735910361629692589843763833061498601669727750472361984490938424184646408314865544323634664528799438423442760372092977298401407999956458838531095365649222269013493927996745236010781524503299239650213910433076960500787658176928551870407977537740402199122761388464688755895159570729930948946906170038014102183299329480072881266199751271767586492410978043707329384093753753550397216500930916472658757439441400728418217420954184669961188553474417877787758746331210365477496014951330041482739260113091897759694613086939804205718253868426970508536962289341683298013803864604495806741646231158936742398401469148427646604972478618920033682631502656444755042779766925868905586736392574821340718177169114254312794182850951381587221252551605967800798437066344962112781084571742194155863076207963358973815250704086750221339861978087549482127589623699709366206349334061004584129946848587043558096909569582550113438300235166960069754211579884174009512449788919404157157229884925898717018270035909840532216860516187825561696366734769638911280821926407089814766034590812873678361489605927776718590959694645050723936619705045370912842014117962116442751407995502262374323549207444300324838833812279638093146924065065414876158131775111273619727635614015352232217987857136891735508170762613686185854575484241327233811436105474335563737692476004964006403735804398390689373738488324383182819812708933063443874550351950149171313647535529713855352876505180168875688588786352109493806107314066050799234261904282603509546492269404684166329379596229059369618448047743679252684994767350062208447276951243595733558580187092027854504193846591619179864876622843524180905618164641385932618517187473362849627359443680986188425618901520838612571248262543727007171551088960791678033215007273985405026942902069391286830925766677454478626764521895532515366180739318839602957309775160832259378551732953283916023579473745316922888574710737333944665518820018638799020428210301037595130351075893846056244121799315606861109426819557328985245061722502792710392039071639944875113002280419427664595532814121658330023565326262978356506344029932513731566138832296887775678529602321507200706135969504309822374048044363857243261148442413197448195079317956097275121398517273167850491409822572391754917505691301080624712841938566717835997836303712647511344547713945027185713788706119083846885682061378171477076892206607739171808987922747607523849460131050742438662493942481710151182597220689025328473722451007643459075538947308495731134146656287036642622398791546548879565772030809272331625901580233573878046155961007947378151077609645954410461755029529011797536059137333800137424500133949756070054316370159778246852106718239521635590289682449831020135430591553058552200291070468130039301947309080140545739518594091974921011157615016413597034826651295373127541677906459260520047593801052337521055008629384639356125130627080072436906542410045419319833821351703664449734812954546451844714824498537500178590964776403547448952580262436343673055786001702761058934529514248680335544444808140399898416620050635087418442867571464698913728400214481148075229007822005283598458385718249997565371175005243752867029754710051301567136186801765147467338331724231288686235851921628261818448156221374447752258762519165274014303368601259048597427745887405600760340943800441491190095212927761483275771713124414994311775586154785428217841237953054337090218364905128487357910198959140523892951601015041828133614708824525494944462916308118497435079045541063929865565937389346492731690758879210988417402199961342674879387260356543005102666374269949858842456699865709880370736203030153641594207161348560868192463062565473114916550998955167166664234656862217800481668983962220874911497980227801332655487830187831146145756824902522464373678171936506422569119300576298944946821000283924736885611552748358739599856695469262304971293664932207642297860202879304994465461956204025475015897565375580220435308089385243842307891268938705180317847870840129060281516325402485282935224764983640934696958639978976136146158500568625878022626870828477314461868186757515244148175087596685063474209697989080729016973509550527227244997476008313100631245440483409990347101534940122415813094000120492730260575631043032068775034612806781999401039451870197785069992003435075329599255344070837601174790403823234086787307115929000272966220161879860294662582406494684168880293735662986335245343467671998812809050846897483739296220498925923420024023971909730108730461665151521373405083135747297014447678026359148929793999857030966190107095246869355012683489540352959381886729768127124284851996198433660119322212709490943960639866127706377965547622351659956079643703795440005144765770000093336572055735662254477900346223850157872137076817531085607274937949474224926685594165835074489145368905831057561379586686937878634973293121746132792387214067204312425466508095421281295185120086683793439179749338189112264108230931518528005239214597160252437393776950490130968204720162596625966804602431124345522076621247033072008502917424298100808636311585133909211883753045848225975699713030693140319094352912233319503713070608431906364255328428196913459811432818137639375047160785904619751202782178515152979851271197662781661383191198219784603791216187597511967854087021225197513441287156678872504489766817634904594941194608027631428233960677009981286788635578721505638051727186117083643983700724798036559291719952053429390075928322322908874799317501025450495128156578238512116524626249608529737973228110366033957691515883071520470410125731936182356472803865898354416563033990548006381020412647498208536971264617679440063418921044898843997165654770236599161263805672692364822680227413225046087094452521592984443048833973322057939358705661941208062599869574363970212619667284610415614882903030254934442382907554868501155114753441247561846137988620091523043778968398889669106751735891171419030254330189837210112561697373753958151972421328178218513012238212660490831777046364227880148882476958954201883262958531009055047635100070478736731938398352673119504579361268327708862111564824051506864208222746979787259069805857856603382405244789007640884528189336285176196358696495300995892696890895099740213324344635013793198991647162206102031877263807030255703847868788464715672829180702974989692041644491047834840110195890143642696107831018827164040677988518956215867429661488732650344094734513209198208585092958806231225217292624423135354172341279801868020524983155877680557630087652120377658314406062245581585551605923718475580853327698583175377918661008032951630410897716913243991788057814708245445154612373602125769275147262177845134309406872585945488296435864920785999068908343888638733510458875976488323180084230519721256464358058435831530580973800288168882805237692781706051499639800959806415903610969110194721259731207396739305974790391530782671387523514415034561070030128090057642081179446330400032827350500969525662414816096334941489542198305864591099073985677481948852784423626374533935713708158699372414649472709577441600641556499787900073228360209348780802134429462867472423325357898938129688404537846071973447145588654675935520744903247864213191924102589258538853996552535592314112820495267906348917596549745433713664531575783608330993869741459962107541138721564874754238580194527729267307562196846480051044737737213680580389345648162077836389704147108202553312878086814523927582442537902259821755389660346279982737139603916846319761375396852849300643283213688172180130324565350904591813816539420045243668556145680691862860912521047748632328374203274334322755893050239583007791685452764224352378924382549651771291274537574110426076613219798982943467134716600410214870683255519611997123795679831711850149862966066602231775390417088751575818035450792862255385402918199616189453243788832201779756568932336176072787635514060440042711666017735011335318683780383485912869501582220684185707497199351206562712726782547035113928635673041990995497532455456933113170695894295070679108025733207913100089643450757198705929211893728422849773425530274856006592137710056540353867659913036900221614146952229382493995459989042783408864937319886360301439431960233687450570501143105992522460304609920440944083203483162078719625060949901597052241990356312480212289209288195810527913195292105717911646036338652530246170152520473237748642744145432404509160849182627220464160213061973738063652466317536222883564957303754041816146302804124658470568419621522967368049900111868243649321484488935020818706184943156573214396874882499841896227671135306176987278668372788603668691204277944257297869097017555303640610354540507701070957184240673615684867305835556989566641472018023048823770724171741213000001132372347164324215922994203906636554350106216773319967375649185428976879959252324981017798597443261773291352844543107087461066581680537280305439648430368209589367884998671659675577560191544416569883293605426933173130883671653596031112291448532604265318241552952405064946092355130099717429950648117209656100693726142246177111798832965510080880550124488844560441368937515679713762425287193207956474585883880224450539236911356576440189357731970205698785100079241040371492691651181755208899088015678722331661859241427153927171628260171340319511689956363971852789759149620887275341808573598855716692878038500843721360052554905172348480059677003721445877218656878457975846008169234034758886490097245823403275226218518143583626506133447636807828419644841589113716148714616219971551015550513998123259019656805497916296992790451939069018841700337179836546635485890170543050529232071491172189753538865441639057224708007863954137419567619593462417570318076875770116753587652658529806485083927319739485922546781278162289366546198964614295029969076331037277592107048368967108832014228081372146159439797484784207037508817555052252350940655349114323863911086878276772004441701510478942533219222359172914170750245837771332344291439110026828364769786761062635571230018831378917081047447034498116976976322340589442288597969430081059389963494914838264921625015114243507754354544376645200503885200743765602651948419987729386931145400422992862191269446503990450079524419650873229205483862491582333300398137459435098462060913696221292118000447932737379752774630372426090672380610867454631714601789032235383952166599573160055324764071731697452854283243594912934207103835940943144894396803182412187086560071571115973680893188838363973184516995312711430443920734944619200789331643433129589455954886632710421901090517400780974202393090634996105535615887962830751978905956371858923349396596336818317597256656901614866513534639301277129138352501400540996723244507593611825993112370158578858505131676852178876384717087770605983081791214403569938213029444471295565444876699874952201020248334702633142030357093923068371427044246317701531728562169538241647708180742428623836456728536213926036899811619530149466862771161863497185131054933055772156105800370070726829656539115912891836322546019738911048217719309381529839780873744096240912930010298845708432250665323342786310752636688955447288544469731218031491928766857123228129320696029350965534306939110895076843952479205459925188067802734699859028866124240676085620518901655515035514629725442343991776347512618095814762983937908002559312965279349265369532222139214423028898315180961695582350633312979701700453279766601695176017333136380977688033936766519955485882434488540902292937595851413731072834428764649845325134252814575720134767261673025320090776533677568410925439616298809633582851668648904061444319514945849473511491623046729642916340549869859882039704148478473676095307897422922170665112206800619321243431417273408210782381011695973028294268246049570505902335624800110381060712815942666403508508390120379376089547057647438548124007617393192662399648068887341297078001046171426528442973212675334998022774401260771379094728763098544809582910669621923776864496794743616934770119728569158210762996952022514490075184969115913713990836240652740737585364487662744807955503249369564147078995799879428543357493121283208440666927396276237420070736428098074446169943667981536139310393800036056015728298323402436112499145012108458587841404777750177643025281526605759577947023091009788071348862640202192029901174369731825535658066223395290039889158825183794518152163372643945276216132592063756825390751247042406995875880065547788486635734845997908284743738951430126075296497403039988101698277245622087222366238078693943075169863639339780827123476712552780059300602403015997940693166951368997200921348190344285752776970239118431294441444815307434258496645532973275588056793766061381081238744423150924728224951086728380821173772792789617420129503798645738985651464096993762455080160031733545332554964593967903729115179867441207341256302811997415132032865188397932728418571615665938596239972462298517965351420152560188736830399543908997591677447083883464600677020919009978585674447998650723786196354863828449425075597013399715784009815589797828162756506501028285792879799325690893094455835217540740196963379241706637779545358863444787785240593527851067983396504759229169658852317937252873832604913422935240123942463005210991122152568082651712586365651277675112239674648671730753771797220577745556900885256517615717915855307406655857818538532904109031828445425907765068866849579131906871960713504457671466385704850253785970197406149410306195831047194192272856763103131929653556587643147377119347463192839847502190022223856908008468697122708488270435667849599607371024880772105012206107197863370335395210832858114062467187876705164855229226067507147240162118132724743142129593153610627449271746075918265851234819227826355637794070575557233150496417702937126896980237769201989454451143909507359551612000140093993975339588533250120486474595988592012894583920603935887788303558050656487464674573766015601542104364909163465230252077311712514063338762434312731599067147521011896606420637032616793806955253996589863055766154366353668033302909116664982838585783492561423236895035218792802164169785685949414517044033620885870522756159629906625027659146889328556454161480063243123182537861751610375937203191953817439330622004752920469704429515149787329518892703403030889518407930380535855036359240491797510381009060234332647177943835411436435637144496301046584005389555565605177312439250767240361069491551549115168674174859915824862805742425874941479574194868150172443714302218621859295576806814822842213343747476719325710045055717702321263255061034892503527961224156700888869727084885508821777181764657374052761857461011728647170637382976531634950706793266422559720764370142177506687128757918838300800216404273842432461487437467899395175279059173359241010387130263449300728059044869504110582440245852830552915835246401950116884366314672077236292676360119090732607381285283366254577239463832437983481395853685421060244221164207574198230146234849051924000849807628656185253875859195426698586232758537793542439732321823913034758379601743510188691056154397725218273608235008444121265776643554657612676645728215429343642410160396370225083765178392846483113191673819499526402996117278524773788887644138996494342504234626446846230218886177842896104109787092373170059748245310979387944686720007321398584697844860822747677424988189181749367056830237155377201834489853922502470662147877913507957408846709423724217858608584169501711461895228549939152516120067136096649225364409092408772342727551457559779204852985509479460106739968615322302128052645259819771968444217412344235209177778727455119325932569900306769756753699737567966989755702403863730191356547587213775327609416595889652466580827517225587098405029506618345566971805078539219614675880527598239716069150788127910153304819396663151859357038601359686266241063806509762571974962127152028972027983810504160180253804253870849025631533675011702547685951480242518327881823828351096430942513159910184515773661815908542883893000884170332917013757326566050265828267145053254358537530258593940296473130000836516434647719576097541476152096853466417267768750430157526000110306189850756138976615074575508474666468865461486238370384148176692348187270603778666825181182414854282264834068488467513735172768707490644183437983286086081771433687526477021339172378586304477605717070485266155279517124335472795479169208052729158919437172910694235969469262433045757018206087598844851079997313386387788060136828867035661280013466342131055677524317887658651861598402016601898123517922753534741607629888541495426509883583001171346911490465635642275648540499242628612773620422268141410990776974694261258941591652563002633284620619521202470958295389353030085449117834098301829312421590988625789008233735296147879936527840013588431994114486917736527270203546645836125093512187898262757195993654414298637614310052610321060959083332572409511092534434554579100231517921503117619169335732434965510495677328366747453106285526035861798472878178847764323558637154129261369962651085879209524465798360620269965975020688696005277075468294111730295919528941870852362443926052338741739567724667491389208283495904317637697244529449030921030967775568248989090373865275247605934719552634589737344183917928166260300642067076577441204746111827088058408765284958388704494129855941186640098327714306206076994335205634359308907642848621309752104626189106509976448123198307991640527137211101617935507861043836852386759282158755328717150493899621091277591118205378396600970532804984707793388838492367096656188654082669923505009372925074049878969098977223671171704867838275894211582480604109768785732132939059673226218282176385699859490465706402950978253389117796805565906425784997614580713718164039011499781522014680046964406102764930057186632229016352709812341087212921441998903757434519489204215803240887135279736727037796599799309697631327936836813747841746720178455355395135533461151037342998665906381163630583039296744842603486726448238400396584734738805195005866260007589249340379303525292743754251527872421494070031920573022181965606563830194858263547586080703236501638509918896234572719848790638444219165291049013986701992007549969260544515581242325925501308643047639033367192063507295462761581855170406455204090286213556672444107213920072143369262660317530626698545154592829737817426890965195278889445400615844112177998914209962064413296564757060497411457648825058448611739517494097507747449788852700009086422392416283677952941688087076946258510986857760274966254469535120752336658608399250584352662907388722310718649017567120297621045147195527140248397358976594328923959553384797754583138577007827097365256462203533362830786564927459399006054666929785310457343853285494241205324978952960209541580671693243761756044034145904214229445935076839393490774059758393471757318183064664277755850100590898229827440740900793245934454461121616474599958879928058123067567946875991440509219151696734591261600090010455678415347423569134296636817545711559641949381807432484840356478413117532794220903370034110414100944372616995653298061541929880421395379962325715159605866199671336206982930204701498059232962931037220018427548362952300883317624119798435048851072229964024778076069529640591390870585631624621019140225570802850198171456337692489639220399177710391168437934454132837891938616920750209973940603663260397076581585617391765890850703681913265653728030498001580951956896930231465749603116941425523925095998803563273341187699037960926192684939326361470561265639436527303442322287562476491164823933573448043330145218470804247997613832877570753557144514124670303816426973389621093912117471188885944418342892990682916439686495472890104883813206268639047275217650567498917428942869525547979766873236729287255048892612502712613334022675829081090829211858263184588147763397639106958954220424584901864057556391324433646713654872484087835611483694471657649720073653979579715134524166821504078388632628590045264825976636736470031373687588249513201951845623777181115505080148652745854659312370870639914694617576227960080689986410769351854875229461269513349921232356811110910253296340001389460303819770311581569402460106563919589936177984419045044372916194378286210339664126723980548972451711758141984822214906374488688320874850512834434289832125722706533873718719533111810221826915928639532497296560390835012442999345530217075455264718988004116470413477115992091785630164555909428195127426440557927070238584667134310226191240684906768417060730530331594343234142118299447010228982950531699550144668703600648197488584243095401709956803570081079994896512008265728274662960331565322602191228554111866751811934353488584224055045166198115774120417204372070478162604645129928569858769850455355793569758593858056117017378232691636334360052446911991345673365862947012122996365484076854526873829100164967846283464061253875632208751652097335553434898375791853785582972629401981936166169166834763079517295347845132230083721049466206971921245059964413743371334889459850370859276239727283271806584284496373792196253988969827179766589596954550897996311867126622563597128242682938642293520650733353777372215232300730369712186496892656490097416615748986368517821780948072471123232670014831318989344898155891621358576125853381601243543107846299060204057495522600885595629284865607474261221609131495707899909365159841977188623207625957491743626167044629377839172439773759132709026771204648844631427741034125270675231061645862945350652580135205845511646344523823691139381109158840828795090174293683178419538242428996858936137119030685525950115055439968991322778023455717882136155436955495789705175801753517721270042722040113520358708875186488426235492360179788813233008237880427173028804351097128786442014618935733407503515797611391833333213000308537243387394052674701404437359812872090221520285443037977878550344662410938281720403156812702600978679030456852365243842172540169651678004995189184461395694397899557417933550088810335395141719466605123869173191654662108014446570834929685525669535185961778429122394224707717722584753191541693764952982687958094383209160897093747582840563214731502377245839814280362026293759755019613086107598326309145964610512957763574956007451459967044470182680565311786893233587699872794033234863341084766770629288360515301795419106382966288521188995720382198274957424797253962694245354323475899102256114278315606603287632965998460212962070422571619366064197336532689155430007082426395292370377716057828525219456587167873990602785040374411145060600254019378745069038803606475496284002676316881640416752177456730002681034620690130914539517381733408998942472309994434509545826081155765276189306491633002898201822759030714941501200146794668440923759865780827675865392400338010942247371132597190801941161773199701997545477155939360081552643633958125638264201064136340790781316540038471725191387047562088076864159691155358044162979850453500136573590061215219971454472048186961487482762043225312381959514059113251307401027974905160457488625791790283312603280627725209402623929259219293132802929942309739745520615935901734906150957788956987389320942084746225559637778273458782484323368173401939119589622719776257489639237464838560350146293080611082199597792978639223721984715173620541486529391296872457624343627257817431605661097305343049862047159807553654620680012836124286083525312902093133560804065730545423964034340805945569455547176159716869620401344394533010732953620818872526309606845237374954371390166646913204315090984907373438024786423256711376166913765650002910089939027462774038043699402552810463519945444652556422979153587705155507672911501162089970022900346762344532350637332532914661550939312251838313561026694356566258421744142124420094526300315431984286369363794241669077238557590360112393423698864626189382240446972953262799378690465963455396135528082575434305549177048020755899506688734666847910612633882095521513392014039500591708465967362797481245123226054742711674629228525541166232977433924196154565439550313546477146053848155716667889879803396357998137787638808805730347017498572471005483012735600224011146261771124728769544358572003805604210791285401897564452589229577783804795595185612474458597238599613508885788400695821667665351413450054425273637275465100185417659458236093602340409305278319995815711171792289686654762835839575588080402042701363125323164823861674521144661623028006014979383000319061630524302448486935480381035990391532596678901133091048106647781872617375663613177872528804790946137876719679864644584251319204512057576245066121487728553193970724590932444520608022899507595088514935734433611044013749376543318885083207647927105194401305737427832775151245613515293325851609333372426328794812294587163509430978399225010881088863882682519390699940412005463554421948736268349772605573353850382924505873573246636797779766648137163346787621021703042321222047309399300434582378164110524452897440879227514390722514770584522937404264165923907860733418675694779319535051968529125118009515738894342609235387637104126070947393313026753553544947388919173286452187858924760436536082137436003856891283401718232385293399530705828821502317565353986055019092313784438724107507383684434259591115887422896612130259829098759047073376490087979837186690924365018802281888024104930067378160646506548647049263210148282996869959003373233346128772653985232813759481669575916591841260176505135610622519381393922528256595483408668930450334343466262587795451024067843649568752041084874629555940029553058951802277023910643270865586984859588041164467391493111589265663152584450442058127132482368334152669772210165934983469513371538219553585730599986560178690989355382007632589524076257722113247832037164140212620872673665905408435347778247984236795980475588925127351317506110539039695290792475022967255555392766215359092626393049920274995456332970195570892613378461299997056074735224369320990848615963062241838217615542691681747575694279684982632696669862075145118760765445339709409921159550660101915980697402832124565200100677617003007635704361256184092041995214967351660168827490775828584907262953874567747228801627742387096285578661967004981397722480019985985506854226307920707835856750935694695692851976081798990187222629226645626267529705631669570115302671232172372356192323010864006222081976820509682824461628483300411936590474780663799732027967396674930499063019944612715333278241952143495763824758482055021442411266918316216639833755107573139122079565467642651964133539253729889282641252362216981428265471946486278952456334331292318365430013896129656581267611180720029858166800820042219325096634092224528401417858421164242292714406386978324635497051263339236742052439721196435309311766300781491594187289890896634416593479982998009877789117253687136420455470881160592215030821435436122831225359083170079617146443609133512083451799675874615175565143516768856271979603039123050918292109673933605466401850838030024628891100988070879650087682530223665817264972298429039886216863402675945957213875529167619299824384949217881594685481199579195958003601965322075420748475127063153607637588580104134467734437028883536992533022707453965796462407904383132632712536456242567561215644045771160770588256378723596275899417065117893328206749934154669487799179433643526987622956247896170591451069794467160763952405437351991487619912587938466933897853255499218942889735061136947505710897701126420672882720521748844038065304267958482672748927552643717390618020322262005123297074725364003505609256925948560904338675789623319145167001518041398334663686885279210635071045178080552391129845696809242010646327066982774941102292087053488360660423726819344012500996918885452426553899780825906740120331094192631742701143177935043512662119012269686756894460331939871257536094496785599577701612390342923100849259463259450793389866266067533631292744012724795791537514824600239294939366082628216092270382407128919514255809862931592587777726643339698527655326052399461945122196346459707161758424469915887575198971643846716492611660393547244988379645268240046135881527922945259355170612122547363776567135429845417166804007732956213548225091534683771036561178651405841180391973543456703616581900360739339991602350440564111955349448326448500704545304143405553485077807011775929979893189408543928826901782207236201037886703650925765330119534198105398618940346726483385227002221147395487023939102710949723423100378542703521619074663979920495665782860453501507274359030419490441525886054552598198851810321196921145978524774206935366060526023599971721360647870429110643012056555603964574548969669197735411774535293536810899234844480015334824442892489601202317397241749343424510655311140107655356042169561149714768219781979577205791316573665400650939603608494376958898250795536237885145158686188922482782051814945527232134791667637331229589330027733826980418419498468910698531122142451835562984990228260000083043922771598540131526204606394671441348912208326112996988454371725566410721532370650236894700083113537335438484390650102564545558101741842473545862019466627718424336909698785357817556061592982953561826546877720001579544233793892479799556870188815838677601575421642380732365210954125514355584914463737628382109597429670492633530489258919274231734132895081705921449579218854743817694213446908759480810261022796244589017760654387869216103123020696836045628345241287260147535914555515283816723879748878345102106657689501248901127838354828635413071078292059507008317548130560053533014285221944214099657702775585488366820157006294148218750602925151861362030533946279478671774983280935704164523140124622163111105674448312547331958749232826305362640583009988442872167180309879636138003092816201662803040585750001847100780727283660033217244836041293154533082111637815096375123385755579945606651895554100525059654387681257988777911821192746994358902000047593509089132447678853572562167745540896764688910490035665026882706040665788586157540785300936034987410979826260081501941030745611072012261478059700901753942584900175325811627729747255632583824078848702912666985382516860788779184474290510384388915752144442881238532692045750083558875713664150936847188714226201721890816416472059326778331095392782766815519585114254905365505899283058373325598581278308694460918541511769378809826924029992657549312020700166295637581344960788720259560884367136861152734413230024866742402841912383366962610142096025121116059972787842596518402612883727645751700674551076928438630795354549188925761587446984759542312986693378380869988744277269554708489412806287734213150584935552460814154672948169606803577789471965142407707637573715595272388722315642740842401832002326371764473338105518832886669284322260827242187804929694139758857973629506082618047487411659505743318182424434411380869860564202367703868257084645699249573366174218463166975379405039715460359879945336437150524377654309719901524515983867105726632761599651689641626366040649711158067848701942602209051654777002302293827268675802969155332992547322392687977981811310359066917143849985111088193461754266038426236908639327795078516949739337372241574954403718185441476329698025486088526374509889017530377582739157767060934410106736659340300390519137497120793209586028861039181938489336589707901193132157955523622048392876328774720878234932430010940031936587149871975166636664176942888171616273192965910263437487807419459135305468702009585841708628983496127410939651429012350594979954540380999147784838341790556170349345891188256569413438569897261010774737717361157366519431555114681045535320411517469468517427969038487743560532348409425522325151192936067236203929186711918064094162442348716795023550829719576462279516289576960438515456416337881798817233957314627161386932712062392932474138453504427248736343976414820451451435735515301069298118214163094145508530199507160291120587949658719214993788325061410840876293025471263032996622281302785623768604817830226698789070038769506790307310690795062894180006901163776208519089877652432435942632695469871638203306242003476559988697788314806987152319118198015481661162679043979200533198538757565334778608040636710044810972259252132191506228335945800263588166951338623108690316633361933224739375137729058055285232455889528384958548810492143593995329582496668556176496842834479076976110383056019956044121103918866419844685523868934782133003645945770711625675974645635291202242194812532129962537472291392092510370313007888854003458366924699924422662709312015615567924409892251658256884995318691503268301955722741286094363652450340399617001429665903959394294697148654958017502256465172983549814468935074119182427030575639755038467127595154350225543193894006857026025403581343587475330673793431253577182076213408772546571154953036737901928065736855494277687499127319079286083938295021033233636909643828875093815304376594942250661715606610375256518071795137796858568475055635595596924212178214204170189233673044448244027254252051405823994644541744429885905867786975069535209986599741633739140348370007407061403925000200019420313018025234531983139468467627889530108126338998819007921578378606751749955279799048479582516389515395479421648481374296114524021031771233625094761665322422836269728652269570512473403427279423645674857005509469637339385048423178984661679263637608791950533051056080601655765415895628581527168494304050153967367266046490139807074721406980282038445104195248181044815026274599780283685186799994611763138521802935427330488761951943342510957458314472687169881379703296407943719297288805858909291800176639602205986773600762868072107248405804816182751918307945025128624614064738232822742392746121511235215402395098075579872053203953732173454246785625587834304283100130940228485445084868855868504527550795949735553054281953732338484196547627900173163415424019354612087859454564168565940615677710275239951957004626752597607435055273743395866315533758245973745840207168732758654300411915288459040024652076798189853135121120349878924800171592146065619921988291238634262158981466472647358634567471734462208820563716573522048196618171237853492444846194291576789238014561870574090339836588315200142703912185796045758084988588119891286811454973013621670255388623840678091988182425382906915537285661861777304045784157135523948472873909623033793621764034352691430157929459590325592843449499720497221553218366144221844102628520299331136518141367450540545235622065516883171294706262477688099615424551787945955639000244857603251385320996306070661352554617222112701409968573590927327589078664379046202704519297354339915819706783616254458002499059386354476288595841349953709394809367680066922468644295836383576767134080258022889240334259844811229135148766068288638554865866444006969187623148502466131742598981081713207428363054758490727553425539120037665621476080915654626050766696196383211861621384297345425584023906362283683850586219163644522532016142079205351993283716358275106070828725238342490415499077324708284593613328493731235372746851656598357007608439054627772729626051168323819390802408983398236636035727656980900756530308527420791499534415776708409479300660272887306801155436571754321895508810485955866947321360173573712035780264781977113588914130891861128046167111970558758802950924707490727004678454490887678918857284990149219488420329026402171535104459194459355930629998018896426692748384319955567858536861173010885068060509688839800291996960698091243170075078242800673306264317544900424263944296544773880566947781787447693483241498052237241386213590768774779343696182432924856846914974166431394920195018109331859767596819077890288874593769833037983085599445615558003517295587115575793084380939868153179186893030895643136263722098799818171261328793385478584001550250773005300441530330959980777511171254208198530899300806206370573544175645118589864220476111125511830080990533800159935596408907327996174297260623266702818484571505552641563541585757642852952328797393679929798379514362814923352727625735101399873640903373687112504917887405602124659133476997111758631459342106390272879596112397029834804528735559131019779462303517275143498291865609585130718974612564451427516595575225206730432228566136009352098102896253810129187821294653963030292054689497370396477242893496665837499046369114319427559382870379539789170942251261910704387459875295804905302883841295177297647171474073612697886548630449567889523207420287400451674360573824442438301253175457839739559288890119666068744258567700589974276105249651427521948681340036839708106490268683648354110652004780254131643191777901940430304600069678904714737206665918586187390671627683786989318331789941516460339212124957247804094132564450960014568025839666577467110560590256381767131144342283348307020180255626739262511549383643972007611472513236084724681056466803318461544613474436195428864376856251234556820714171589960589843066274899043763551745161110680855628436418577996878628064284233402648857086585066567978585807750568058939803898186970384592860217018273692703268794498103209967591086297086328077760623362644804583996923522796378310559156247151578526405232598138659671831157404064495946386410693331265166660742801796018390045455779939983272766977638816340778396673389076808777692656109255768182529824421360218473657169457229487884642532930649221560305838346269727090923928537714490326546025832185656985645237830176822820972923637013762580764432228032111051094102486662050219021182259870901976820411039629415945004797208058017967787711825871654750988254002077424704895305966119703223442096273098106940819520645075210341246025558087646556931693505883514264302770838524790150381240677287218852975631880664467115450947914867025926447987669138366717306568280472372161604723132386759631319641305090167776925425287213166563527726572231286505995635802576831269317290215330207259453989900726987688584779013776500004904605171948461658799702015246933532084664565048904706296654372304923982479020461436344600213469573264413194791038513395881207549835693548212114327047803456717863619628340520250314803924973874040028723720668665605417945336475397061064036435383915806204901238897312054566855862911514287306621712907439376052370649726928928397133337360478853378037435796531891647878755881518468833350909448943922787588740339415403864189636604742371630661428789558792985670553641241424615501904610191079517555177563356487202618950932559802428563165871219832119011471496884512194457521205587937103252457095503328112695216358778382119385253715924085635028398967569455382355803336322184019368996541708233135875225967112919845477844342200705428649146883485583291275112882856933296025823851530135841909009341805526439669761754394630963142568011021483389557494278212092722498466206230374834868137135601812379886080868093443555018655468970609680086768114598859372011342209607840409743403692681846882663724175014397851720427842632364903319130100821614221766840156576790935165243122226364850613773253340970311239247691318163467112474269296671444674484376504583439626449674567103209626981026586213103200739405791569577987952289392098557177422353975719389633776590528392105529033707559801878085659719096183662118028715976852183536460522290120209227679357100486627387623502381351407866509672027221854814841490421166495161976287634880541454339549518496648454459085936417925058686529443784375422466493830374768295153340757453627676422827881102239378399793974289988878896782527953119755625453572179506495391548050402726324377380879348512988690351582345173151514214742305853969661900268909078424109454155910029747297521178306768957511058113499611672666324314475218166299556371986354988193044160299933956123283056243756487587577299640597127847084028395779208103566555206433014114637015080728639514118353366182124467094092554346232842745082016307675293691520503712153855138638143904934444407300947001801506983812687190264965814593295695840307687377728075573191882219091850450718870290488127298154901499485690752989001243675589076561556780777954935102833745240601579645856716429690133782444266970792695849271143037242533051086333812817584287700598418924392477630302338596418346976216308432322618578409575472059352517578787076800238625414449143585934821522637674348977714260066920719135040708786916689056649701375584427165948996693319092445442739512035176844167539253958675652424041237329910852713097032288216732275256200418036317359881440168794270966884005515056942927664931341540404995552836026856371538325878587210004374999897423704195388900277740250048974464187380990250968213154662854859836626912636566440012507538657579687379789055774717560434402204103996248890006134174456450019200954607291295785730413333179092178214562518317460878212825160971416907369365773464011797868322560361477567045454358656818047751413388706285471665168927770970325467926772838490136984234665791098234994214084364417025013504890448312429771918249163702988044511479926545499234642983001887456147695576678560573913085596784422849977063371170257995534549381023443482360153882010255622960389468119421970124784573624964164910778071418831623674883683781122896688291241682150744072970553852845552765100930560030971385850590674749001989575898908382180060333792240896457372502579268370749172808594338640105823676793591389122522401650037406891113123030921383633710666458884423990199907650860380522291707949419892920330922428422969661851696124684111080038424052376150802499064750734098037660672559010836052595709354180224173755996496408333965456490886215343660293038748952382278134409300340602281759358779580349580847751586387468254600763630522848797718925172401640110655585829337336089052024677917042651516491463539608654420308257994650319016737340837076908545944202424455363692982466787105354855172635305223070452531937487040680576190058165126410221366878868300758159410432550988401796454273178952908528305581485810273950906468824540929339190761307056585252225750638279507059606030596127871127009754263610805752896578048209395163352731877005692264087187064136089193583229277464407550601981530938649302146619445272282424488598668524450881158789996743738099385885191141357243832656823761810841607517605621589719905109844511165617600725819613132982483297911211694560891878465016300572956180038350009477563668844997884563676474718771215198389122783954552205299524630311122956154728027208423983705141421436376795352675757985506523075964872365659798968393651086512291555736453581746124079755746149308538701270526029688570820041088704750371454466842344499606103629712951685671621247185251131675609248823686423522777152318625176925717715516709888609950284099880909936987565436167335562770131637572137476027798495850881876741564265115232070897847466703725972865469116850555677312189543977655782529666434934143122055169437035294590827308367614161506836579622405959688710908062206825743986499664542913701066804083429634306180918859017573211041272029917143303846580621916092700331684280381028256679224966597715811093908375417658792605277906267440646150303024911260605556789236491256773256564162079612911182748128583618220498992303265105919879149897184984431199214252455667014662044318821918401007567075437118971776854432172080855315502110884694616844168271345094470192562458829265450457118360236110099127400925593573135368819297437226609277524804141683329470164208455661552579040225951806037732855383971727611302937342222797357501287492847664798053568830338191911924997277180028252571592751770367369382744581438322862150413190153292503180801845516140543600012071618970633745433417519094050081762522826942001799467902107788438449737572258594777390806498544408259068470501159383928619611060041028508670359798912527661483959341905941290357940741642012436886539830010870810459360934025695667209296569350795895115043347836022192849936125327282133347128784885963294949062677708124972207440289216870852419194231796934334125278955263234296355007392613015763760726270396270058442468461178600991759117285114600475083820029595732739676857680390904549444661160328626018249995469441810866717124974143878064699459428541789684309053771568012197171952047812388326950335711138644563193662594257572407430254789206538657772546723663339647539599440850451072425424840051668172607252532054145942951983627867381144868675941108202710128415764063415408489695125857473779680650019525573866343751761399827260049168244897522222432389689492225902639245735627082155620177267427577733051239516567873828491289812860159251201134045883116929299821143996870701614472266661316276371116480465337265117111202103065254381158957838881376268374339757099825134875702439339991344324916121032913085190942349159047574603622744832998294944952970077187686026462842367093749974549025298109516089241375077781522921312744935992199774837028909749865595730128170986591183124716373979103329462567060822578749762806529107575782379749692279043904020421765971111639534023045461811038755554421415752610219943833371397037356766557814646160048891121178941344597967575194970279845783530648731450609876347534460519802863221553350955705786123499026623472925058020774942178216114914034195113693006174921914508266453679428459421553017184519197316513884645103863131652669510528582781967636987088195936460537739149029372084237952469862670095799273742799467039734734741903780715454323054176957937532511509629996952601468919636703070893270021881316290950548276944330779400578791690708759889412947569093917821152704670756602591796437134836340617636341337831591977344780395044494105163563076327835002597084196397519654926189946810478899239250241037064391049382262912635689258372287814435561245896190483454354196100484609169216473000392468328519538697066687395981338240810614007321289960840955537341404762327167926606840633337310414647808350362415865713501776432696849110704494118925705440771739353055337176946064475418693370311801686250430808692986419275429141157697076556809144237229630078595878526383777500088593692982064370219832571656614542916874746893793269872282260023494708195155978175184358093529530107959628271119656522430416745625647213842266119618532740481550235044844505944964881424799980039901092825672610030389526945969814628263587211863613676316656463153742841944720300778030411089188466618020786592177626175684709906753595359678316076326104194464196637812431488102821570826186506690080134316729452364699045129631143719460626882065059120915050595084386107053578616772100308373086778886868468610325635835995518933751586085331138710645317223832712630010697475810741814152272030462863926478718961767865812191824362178376935716567000149059853995157585162231110674566622646501639241915987212950447084014399445273968229561885379086122549638728324559497959374580851878930430781512809694357039370778532114262707972201209532455093258146039819182598158064073420476813323518986533497419441993194286888242370385080655348716483759987136495051979932840145198715052616375547689200531467912754011397169642324090990850040704880643296405377919783967901997641019354543664071177074454137507112180043975486169973916534739850869273618303966046391929844742286032733347002572499344471987410552191159948269873181567949039494989038407558354967349018236350357297316517184492215687632206627986194776754665555792040149662177929115074951252316464397731370629515028665686922829848629992612052936004414052667056449668538045754560924075444814074903473534181704065189919653132495320481796015996299226684479177313335464173864885286857839421072411154483098409337970498996732612571155317748447326567402327162905463388711959880329940793979816025520361104442275043493329213455643443046311640467679509974933088987585769276673829502148733602953117403207001038390260423625361298895787295104587042896734909507750677533668251494607851151996569920487269365424116937866939737447892321895851661700726904652221231379591089880517772293388879516115827978342447488989062003077484506563855117963319435611794147024271771974248399333745687622038322199802047159070753405266083635957777060881097031391777484780745153057875421285780965534946383832228608941283121755316019930954005621481758205981164800331929998807734182523299284524329547408377265847899308270210776449743629320422829167055230624041965585723267725845503348375953684105334352523781363684632423785742235220194740417792030446723514274326354793045922139443268056681522356679848515198544214488609886791601345403707786527688345099258169697874988064991797542116920134451596893673932994645649140162525064844491671958753776328794080204573334909210311124335604126512860837153563942062388478617234545903035524613279685182353536335984044986527185305372195093356331528841434967265286649617809908539413091524011072619173300691563416972155472614076530101857216909416433508616688451054380836201916482972059791616115140638415954601598460604719549457821388896032048945029081739084224432646522870895284241270200724926767535319392576588334814193959812669276779916246315138728410981308397268497108843890063145856758242662922465545698278986747584087130792876235725419082296123909761408723194229885911621026671410884666035621004938996397234480814870689630595325032956504812777769974483067200749000128811541461141198884451941687084825980607080873579751843754323384258962553559291166619108618615016482113326623294419851188470123653212010314007666285546502205986175871009494990650692879867895656816394000126219066182885498597040161348794915503556204656401339671474070451434565112756455755696830279396637515332384369355328966787456760608356136263087953236059380830139875090953297597408763174914041474491156386884139687892611082817221793362484629665089888564995721464235124175423508767152455725944660365410817196850405751167129173512931462644908298591094823880336192577339681509361020692749929115520060383317785311425093306488159093959772240806971891119735176885096685514783104483797746685189095297903581478982216094204994449015458961766481340528934886091055631246526857559372661629609433105574113824896913632133424411910048562568736860066164047166257127435695927573526053844888352193480109641535792678943421208539458754666553063203172121547049611250555999725071629821096861081118982414146858495814122428922153062248885127421218376321254392807559114117587588267990010837208725631488928324622099484722647780054893008696214864210363144647262608101857631473337598115369540135083608179076681567676948091927723133621384763747870047259545338325123260603041230523593595564388332729969297623199688831295407224455515613744183110544954879206097930912012100471646362789996442274047883561817455258111201175356062696468273467490617542307807221600322404186677283843512613927103019987038283408909989337311093210527674592270806347080075493012283171542540880496335336368761206726959312883974619697952276542363330236759531292596289087632505380949691422912414928633206967415018077058411700593634745580453627369073548501393562563444212600360074010150794982205951683899736867982291396950188840429323516756189923064003704075804292621830264516629554398620595138061118399650194158406073921692141903663317346963120189352469865288946457181253505606462027442103266650776172181939729767319547451723880699181621995003832804838719923933533569707127108368708022045430077965369611979782242163626410881339435100774195609687748307232304497277575628216444213220032057449743853220401589622086525020372403952817566487368973143757940190745632719977653082974639309335651848872704212712647809536929735285441444246783149347738920666207265169073432212882771758706522162409820364281911811445930339661930718254447928172272170066337945088338337061570053618455819896170892655655209670793031829152126073738844075124555053409734502804574479844672360784473311290129585683284858803893351366267055608396462260428953654982123183416754151633460327063555118773590846718539015244179814617445834416774242382515330535184153982226878416214937432474848731620300089033069889781252561150065849168380819080342849460079024158947201655651565124193207775187105485693522717179285837377683436500990068510446785635177708740612815363811178560304919660614372968954158227569489220821705389581098552371046850618925022655378744446799123900643041628687286960963206567703746316096415328346319123779006586763421778355072329021742214538072404614490748473744178597926357601401960488545785529530599146955088958559790836303992741660992660447258632300260748807328818857340700601303037401710238047768014610482683228843921766000226954223676502596066130175725055241096200524858987702725667608739060346599689742835920090944307113162229440201174877985455668268472745560634855613831211119360496509695040993340554889035035308189347798865726423176106881474430271978262305218159519909038523548219911600531432895527646574953579039681090945917950264726933391876626766770070480221397403539821563644832966383993948062277946044799876946389411378115834097452270081564609975455146936401428523256749902130702534073570402728763344361580745753250823298918937022078773579312298844298262156119031935425297892068520369776732153991540422413702365245710460284953083194300820821671555377794995762295244061718781918818784940506094456970082271813182504369964956077535345028398759044089076685131671067607008139364262187199634800247340500498847353614822760866109382347532311993864646966348905133785246247853249133138420320496424152663233959828689184990765135131287711807761078807525968538977654029553628200103737138046899368533460516680712777196760915321862071779402908259440718135766528551524711491850441564382151763154339623413830832891432723515801875067531279820218219603113397799977573668996966049793857842408367291057429438387687727792956539928791255490809432253293984210842121998460549786381718727281415020889943114473728040933477927123835718672560901843325084610797046069293936719002684853146319214664136711525334094538790595551732069310112986841835077706139267319997917238618654765629493392103422949346639816163506436952163072323593311088188285802271269929970725563038063862347745830651064278538618238676640202592423446625213320623744190470177099909713814888468459766200884575666055914943681324772146147069904759978014649904145981764900026010387047499548179899463381995027172065056336002955096552331758963806071556291243298967534228825085148996857785022051174494515631895244735178423140337018010468128445228993567276662007054999206183402662466780583107222100608812694387087464884231842166284743907164782043649701316491470773456553422064610756716076284324751263699044149254430931401078814868590380071393839598385962486630315042123908696543593295248360517544561154799497705251122832474793235737342625855310343272717893269389236126058262081591072784817112967514508869835781391364630837491546995213736879645959153496424431540910785347926636396961985861101799505061475814865705227797329036236391239499226923144032841044741300791850472533653709008055551034218373897894377922129108174115170532580986811640915841168150450204993792572137445233608022122080800879980215166541412141784283306823246818926651954151249034532890722462701845998825010495291133083146081746028561035733708561384668283653908705257908931465380603117994145459057211695326321836552941484328929760457570832736038913622139276707604147348499036230097506141809263319472434741308539166698082718239841006149143481571272259891690364066495878265321907906616502788831908895401821578277553207414780657598866616132543546510638634405216900774256574388754569955190729338858377324375906678078182089891262174101899384762683131937088694280040479604290331311707258560276291507921089106371175131212798648839125942714883437830788022191281385963305298874941285380387361529188297844643626508048264353947653201837646653877123223657376672640797799505304750687656654024096949930084172395240330904877909250209648818971768420608795538493226149060270296500576222987697696994783848035643209342070250016054653488267067783303686276142097938370403097314193300697991146421813039830245175937908160183776394877489445508761181778568104237544145104813390744845546693546834635033261929595350507492248910106179012786535749525087075119221812143104346413016676164566730142515457857826307923626867103970093215211517722768243853787715449948635799496648240007320861630408997411915449441579635840675103672061019740397463093447736470589322796234452402157758100569566759080149115843142364449885211469808646748387459826072352651233937566479898978021534711773867714869278562890197852186803532095371622718367676838629289442755740337775863532543083263176180384384979095112272920034068529303340489353689224189722942153151274380318167963393985935609895223517768576127219926113033591406184140555846966990896385932543211460294443579164180620069580062840226208753095754350041237734639010235964657922131502076116895450819613111817540940652630905048377464450146119494942827458998833124960001157013944634978197358754633019478329168862800281376387874608580987933905486802180151771666767036380240199117341686380380632367170603131700902175464580684922429159315046415436403484150237086076263349295336226785592642253181099666185912749116481954729652143507705197551997667198930302740307084079190568707562860981503510635566507795820690053390597984606939664759368905028471338197624757436574689678781016568211715459502292736734819210503221551485481262057296262427470028318601899925267503878918338140559716286368455329852669660785299615404699638593600825572032564267753305400343548552743718804763554421580167151228237452859906781348652672905617399234081518375302875365485700960275329529592889254605719103267455650386325496172482225805301204686839216519268984014608341715534378371481698354046116379206948468596352193891497118967165213731918486252528028763637953759866362232313964145962420211447359653752489865393292169087485971432416540566731375356486699229376995777867793630704411005312951402157416561219266102482206434943435336956912656484290393859446226770848019668300793631708427554294548244051046762111182157722216974274336773453195064607785303256745107114576350569233815370971256024954883741704637006546563073026348574799721180279246971199293487925939890472058208085350155803535755768979251837415660864750080007527796318103121851815966582869471585041684338800034002608565504450246325750779929001539391637691485415763099262025931975362436650480643958154071820647568901785721864929291584727679714405793736705655626720466071645316094438106225978276067846274545051769919711414057545125519790517957154049263981944433725929362288986935661139068354608075900069245033102618212864646860296049389541324044518018709294612404441413844773891708042024182628331281162107356645990658022908525877157989757633915425403808297272095367127683204184622073530698897680762584218506306991922559086311141675990637117257746669882682067545792599523480937612129861722633571300290636982303470632302837519522841092620443889322895204558564177231717532039564357450799259069707705188005119138630159038817321230757830071542894383615549171844041239066320378199140993930843048599703716942596245163779622851182353407584062244762170353006962281349339101524503614773910537076627260048477214082140897464909640695917099117768615985412661688454767621190193394962147053534127355939354225779128070005144740872302265353518349882300575547621445631069830680406133267740455992163539740024741923714576023087158387068826030485856538686453284121257421384744430562585796178431273071349742549013469839158689044815834057350535805188128299447016581607692999351441399148597645975798991162156631537056977079817259996691324132712197609393279314391203251788253914452625828910360146907274811610943683963770310062655253964863237725153673816133021127706561753460614354211286889459067462373694108026836004733250495028489901562137132559089106793823284618231601477360960111279373491243846477910304291253783262002206109948944156190541474985069421902496739863888361427536325910083812911332034519081792202303723811716291289342268752246726847337298852564572131479124537200537787944089510477670676282645592059085842993770171816094073368651045862295171800461394796551395683630364225287458325731248904116040569551442429132600239184438223735654947701258435893440427479430576031694600901692932042872417959527195666659555224035935852689856575060433169545422560868656301526096700952142354966993898475938891342622067481890906738048122536068474232470099242950785976618709360572692704824420754007708258306248967829072500367160612242092318831970466866790765240228155688761959027276282861693243516453887031267552387829397279610294937435632951792824071879368389302570224557194396091195807358902340553163202813033375037957088915904018584109075533501961811450829210382259809811849174253114029157054759314673240631252958217295667660931046069294469571788433941426086237453681112199579363526872716243311132473511597436164411621692437413481101628648369930264952336818148433225326711836442597923443366556175688434963417848963889562331109554202427729621508825580766243616659105645838150735107328896290834994121178133401076989607910789372103987751697858060357129648866108750878032517518266907505503046432105633769912324893668016453085288327887833582644343093925585059474714169474525200820807699911703449281728474441829131873435247148511139787911013733927460503761053517950456725755846292990483598200129617328851702043052560905934080834238074921630906778061115809404371920436229516251906213288106762908149602671998421871105973177780329531035185525149809124997557302443998509911490474666003687911300903542925825785920729943798983425132005302001267746101293634008563395879108192333656796566485048364442444652384603415164123397083756616374746262540463828478995040112827614204311240733977797956482849387354686110072649617360114223890485343843874292500829990116832900996705035117071661055735244575204576973396573440997055716681259020753965162554187057381392008675219751868651064338727260389428316976909529337376881242441287610742372458790617373274273466317665406465314718437890172059318545684657615682094711833947602203787748832098808834803161600816864982797839138014311349975608406358508679165557771901952941751475459333094136065848888078932470593030116057118192121496023230296817174057931954933045701841548966817935631626495342284162077932560615844604373321348710933162845864714688490926740053120378988061893779681067601304593618025898902535071888871462947816280011184307329541635084496624589718105498179225861492500873195653776227276767442543470519787406687538809431439052592428332930338431189206733288249255506235174115838480594184017143001243077016205543381579872827965699348841942355944481649421548736694489273147372775046887654968340519723161318194188280615343472341545026213126774115178287691642283381751313631914518188185254368954913199764063105013407297476160003480443111655822649113173327215014823505360319923899672060881364583885322217617441479529039588288115321855433991443404411487871111400910524128464804745631992415860401264948872873962469590068251605273845269517998061161054682785635667612219969865718776199222254178808793316559904766212455196585890215543735481341312384537541916999289680017103646797113886336956405124516489913631328612832153520461365724725408070934846712578070635072998494201869876049297070611049158493115789707689483645228916478628316021984178398677870739372711258724107526044889387362071368621534340561511787265345034314000511778195224101634915793625338466832171532495435062055812950935516577562464731210258556055384744887154882105910759864683791343132569513065848010148936566640841066481104289321943987472303536049874126502371047154999934908996118296968571354225645583489344008404984114051685360308667272962120550964508606926517289663696858563079416218318842250355100886186994526054380360208838067426143626423798441592849297584293555650352841187460332305104427159089744594469393622511826268799323080854597051051807350033677872662113722687067002468686347873635588962462561181065123793336703339313923580136917823763942954356649303892938718832089625652475856654627059833490101765663925748823755987017407035664525584448305777719833444724421921493682108409894111715148005588763073718821689758348929344234621685700251687852185951979088530675176358364980363456437212830485136658432507786237232246171619034628987820066167779430117598350211365766261247296973259974921825972770116135212040455206949081966174011238516442612622077273655183790661987178124097900211649931085406802088850480361648515184163843869259676796440042922318547073830997077769095591537905985016891963167432426363221455824823609086552844296638378248755787777913468507281190256281248162923467951141870169542143136648398570245021208296001539146982993178861934976853521152944181031444837172599711091338607788043391274594567675756245681903850534627019146985653885481216399905291816465155734541617185571982335544850091229277024454306347898410623502096098790463203940236639506647147192225137555332204900965804424855347996093195852748524136298811486201575835030712050074267527094231417068733270206176172808772030365909791813450392418526550570058841879474623716708071579686428993369848085596525462292951439017033468018347654977543793328349082633888923122198302714665338496050667973988719585567808503072148216568069808198807550156723531020827707558736082944558691294728159679447115591346802786723226415309797270376217454783086564782537374416122541090834206296575163997392848967844240401468801760179995940071759301765010530869769363296258234614383384154080460841827078681984558670098322643240901567702260500070971120727720955697253645099415593559760523585592565605385797148033032139969738578645331057049228853094080060200563785525909367987805616982082505378954356991120472019753196047808177334319630016012035816096737881285351536638490955965334499857341218994351717617190009857776999453213089822855528779169677044671130485155429873556008423583633353808818582611579223812938551789642011550313520032356040319342003697061381175227174930604420548458180502261806161337326848437757846822434485042041298531871860191884504034959635017069799569634762268488955701079720256804425587151878950112474018443964317505510209414503366886368550785143744160280206700612558174263208898427353157675876348002038149336753188685126713322859337858245690882442902559015062881479598926214143556105273793439527293880162236877601527450344541716920723725629752094901577625509913082161029376753754576322887242204599646552696429672115235976383742924268064368016023492956943585252684439643026567330844543293672993118947042443037734967421973754981323201636290010796271002286496311541674330703837383092537812673842855555224540744419738841375141576507586464686620070442541843442283801408113082904146030575548417985116663545333244600785730520837681038420503732442050039656131691093697243839063383095716937515851473797979359380400097189831796224516386139668940168562137303355430079921605643282750410831453227320623656163773079905305089245241412282143203704578628346131093188761980575994894302052600554228920990004400483031762094350531603590020827950256550798305034576526844387335415735784056034218732616075971063898006271355462565987383944823026863742981853460565879648132716777741415161426690380298958884722701424938145066008211764206447273146639995788450080961494516647785203842039938997920178665120281357599511735745767542758674860328885554619637715638937635788376143120288070445166891801837238890551655743450064287158530532466548219060530714969048065435443367861661846664953158680208535735928364042565217084615666902128484368831885108051551672423269059081974277005229391554034308508211631676795375860433202163126696394603884615334502402880175328686915349547428763430927858186333448558386077269212770842564412326378557527552460727623695234969068684972776594739392009374328816371675623383598160010083642065501950459593929104597772028194428292860671462485426672801809226621223424571243312401407403042970630541236966956545850631159203025417629563619988976383583885461649522266901800068714134284293831911238540331659184851733203700647366549315477568422860519117149442387551619039999954929584975068959145151075241110612806308686890017655240067544387947089698529560102975763134611951558865960492038550824410848113783634267546986494715989066859709636783879887416886269593436254525647924527506378347067647586798764952998010876854385698962893176083930136301320268934427459552116371904626702415084454359634555182311762596536555273746637471954868723487826130594371338905723055377811933772633503089421776561379958906874008619149809320554975266506657607033080578474065225066422826511296544936596763052270019624469930407096574543460508179444440521352196388027183514508504505992961720349939655069324808356252800384194899462672404628256165278321851441075701730439879663934941034161956037245352459603234927065970949378675879604346426729992034510754708322203073931333542530840921438349866686900598532372397682553610363667332497593470615616449859433668748615006395439784230478609690255416733976759289360343293141690686486469879010663079343633613762873361557016582328128547750653389532075739285602361683686373211656932095154835714368271745134953793048123010226788050873146050315766953207208411739133220620647414264878392750099393929859187872196802444751321949302437833537624336899631795574122298706640292797311611394389174669212321864004652361291798729625322536058608674335297655633101793555212806944714795043037717543603021511246440489707483337480337670399810944313087902884189656896086756286751829308594036052194276541629821250360757462226637722725493778073934778214935547635450163407325369403594881887142954383036215871224900016453638762426274693151041630339401193742804880243920061668018843596889663129914042625456741769938847963393109419142289023783505325565031690544685837726344520545884132938693785637895143477320952846666496962025052407628100487650057729340446590214752299109431949084348474345647143159502827708759697217312459611235302896949455142780346864316419258348205273734353162610647455548675267529854632213754178339158905534035777496591751797623469327574144313487023417286804994783764202102017030927849054967664333336610266165985724330054436000834744703747581740295259065621868590012897482629822398466864620586364891525953530085265910410303094506888239971820098152098232886840022712372445944646197407989476893823892626906416915819641394923711528319005879306681285965336976772624998147058348525351299918772619175055041729077763857883275839931482408317942062606340408746334967235807243856135477271056549009840964723764001733432341838756036654441600658847813691919561793565630550643338798084408041299210325736175731869173875638696533069524326777003133687783002588269147227750695420215517527315710764762606305684244890213796354047760125998669034999788996771173422670098951527627759014658140299302235440557245154031712086222769642497551153657994230999089019235794282373299406742392773898692004821736962809924985851843036852953946882542769991504897193189495544131140642914792326539936334152181812592124702542496986148155977993100154362162466589364937290404282391888062512350930037499371710278420265374465176973199047960221142624450124460504308519021415883424944288384995496074362978463338422176118659547012579528288640753387414887102432361588449750106494884181074334817606042881723266934040779301766139179339702879342451629847788366567168457919175990097872673255572417013951442169698046033199530819093044035883847779235571747185511726616784684822173744164046405095206790919300811897275991092783972360612437027384114295408523466367661304320655065791943177559837364726963631527206918468183785149303177002213419968431320005229800725784382395977503930839508456107817281166962739142812386263202920138912018482398568631723455784211117647154546769763580610735733054459319239693755083205407697185180533874777186634062322644241614262323727598279258207512490098627593158045233112042599651359187044182430504988405735799364380350340045426770823256525090378791819774159148593379626512665453765006277694946396853516147312176337308195578351104320460483723448070535526169379432849402344674284588352175363657874671792768016327581054024376099325363248414929540636933875752102154181960165311180652319236580298373762850504030752794292562044421870338470266483038838887879874705681354800070898202067715618262458433433074788496677133546824839023392855235360185470589840675393412796637747251353534261036116624745312887692384694779127338354803938130338061155607693399547770555559108972204043053644907377075581003924257280789555049864617519716092673543911905696833012287612902368023259799600771103574762376221516361832177444706429035963963943943509243479373111443205735991357253270979739004380945475244833384051153150600629123790131458574809523238726863342391206311822906342674540782219169039314046893028846750832267784170154184020444330607440373071728196398479836830813415200561830171362848843855315897276433256685471277448297403483328281259480591443073137554500323613723254388633733805492246946218682433521972338272488081413000312561802751141301636762835631393734059109224617440907796904762468756202813733632617588513493845625184239967884562176601298461187933492540247414553379044394587062001209355671467718008170975432440111050917531463811071091239086690538883123494151302915646457851536710947136388458014838254566931484980989415552616230611328924164399933185504561113859911740356630801671539709073483873906275078954636293659548639056115292025991224724284087531015688961709891196446323564455152611834475911100355221111684321265656735141166142511089592896064744246816324687033018259926295410539713289502034225900493564157882642763487493354542242535224318925887252253828040435043599928302019341101948741146636076903616353888143879525795129883396398760382062721907916384707472687883863335176350427801469030118772334147458628342769454617742482526081264520394584117158824877954119219362815590301878426655406812082094728978926148417664328756032828330470537009477562895465078917741484109295228646653855290036126545154798500290399848306696313955827796207021506930938891425170707818080743895624307767035069866162862379963229904044513723012006662068867029356471098600193409982235849739314989719717686498697181601272034373543240104004131359728045008693813804741908948480705000480243746684647144255422554686544921288219636387615153435605273302678532054341111685410707599609521027716768592349123519606253380636584704920070255777338937286177315462859328535645159653269841464579990021458904823686281105938126554488731462615734309851374416680233498789267618377756436070466662438381305417906038893658417257977283217841729538607072034529288050608747391150421993319499447036633083056510014328267922512361710472066539684851047190220573208495055000270777763350384384509960757593736486650054149593484221641828911368469032141142712440893090738732781166122118497497205009042655797394442679934890241464826405851715798693346510754460863588137522092072927274107764803756426611586492754505696158727517500137323946865504677212340195673219227705168095664153252845311445321586548593320897010481639418884555805699741459668164056872851345824243693952283970719281478383168065157123678236205009195257177621637458119012480326877942115089187840312879666187815096908914981913190838451949790105949280745113344571650749835157900842241513251923473928643443056846624959326778927787404532211048789042985854437225944754307910449344237952414713064229307057637357681753675392279281365064941192077224689121506591550290008973666480315266575658353921984546918019743845939375189924735012783394811360402738729277987398488614766214046629280419928598711391689554725554425530485282998277786938633418635451656135949284856917611749550621118089918510967992300164439448990551671657216046037060533840152163927591794104246862771121803421648104300882764649392730012130191962148143737482799672817835747786961300134130133848561469097694745123241058140120188993694736008046246581375526992234243693284716082733502889301858501428314947969791138396581557164069675053152569348599443420956852553596588746061220177124046252485803366241312836927091510458303691484301821868061539422455201652823350174644062902398953670791346416847984143397152642081011474360012555447149217490223685652103260638527319130917401654601922776766197968308092098508700930683244394823373249932708586922871851999806186007754559056312264741842567387260192830551141117378598593844780661777496799276200360313026547947667011445117774843598932724173890234697020531601657906020019624667635373375639044318934265819825495129926003211137289936780912265065931733140272635718026964321099709366214704492532127054989428030042559895307279811503126218519132260712014575672781913200867348353949852701527484278526403105296606229774792449969817882714448245936146393726957808347186795207975026153675492818683871147796817712427405914102281581501473965033521095443178582275581951305106540205947074644235493127082765381625072855359405344496412874321592016792329625284131285217452595454770088771839454403918417629351605691479741971024884706084482441823130313152417129785697083648557167210528889753199755569218246983669082213299219327703666801821283901522444181444896202144534031553992761731393477577323065303509782648690461917233579038407631820883761484987257883672010176134959406308461121448120943286518666749171860430620410840634282454610061361447534353813124442847739997413865962072922070237562020413724624692060112912385687482855867725783485824853923190631616258571677675124276652648112181507385859427632849563824310641514069346757781207762453140002425792895936478580772578918297352723612364560018372367378524142635234827132883881253210967351182244986253248802175897624379772295784289545990556386680225632163062653605106540466431566663762598509868210400471286409605188042188878295211117452697304384694193986925646726537556787316330536705042656160789830287563892914357125771810460159355644767884221109549600512617935376152771184799816844958357649657755288461270460136800203959057890854970692813176450481823903230307302208798058132486661673285316728095979430077283866745459913462833618046739385339160939217615759024127540985184954347718886510284090180615097161200772136482347068195315694984332862606811919064367160332084101866766079849253724516128090240779256988828859244330549806475727949767979489363134228125568972452088865269926895538597979046205525522382689411290366642233868092091302014997922042243970603010273505064639608984258270257984991475406717974358467555482244653425050557906959065496939686038720374268790792050367820481128816335961565010747320866778775831170860371485369507898391380644493083398907613332098643242980168844075176366617272417775047796608831014321973740408199658768068511693430494373242468069143318208190672122019424050114717990211369521087871349669974799779828926176422788883838116441036446396731259077509652097507322067728939396202975479698618897975096156299324460707940133652288925350298243522451586004548224928805746070698693662002025029041517495912424859715595612774074137691697976736914229952297244511683474905866527301577014879957902368245683201849585972408071151368108073229269969508648287143537421672639151069239870755770204681469493106870090269981197865863707277656402032869523167057305316054711029314973986084972918125921268202775022118087477901169536136781910847973871959808564650358848092977397948015107465476055244042795942949002213488410646577704614360066611477999924853436317109023417060726221879441163838212825143094916399048150985528765178816551801343787384241177808224474517841846129027252007560669515070553579882256283009962521258415505616947580715856535132186360871481423747041591204037014624439711220477154023237825747391083466372798605284949189928927029805680584291313417133960063264397971300942772671069459803279499725585133009718512577547141354624990314757679863630776618595666853784079475947999374382004830074312214639431021663139314475477823164945551538508345639179939246446519763997825783490946842248497115590055129367420608678062872083168212578569286023928166418969483295480255275455588832156704530973186426850843284449924501366622819614659904587167407974825115722595490090622645929846104883150903695071996028056187585833143803444086800567674604374808490684824837897086544684451066375622425458613202728748929310299778744546411897039619530624967939106330322856355709984372383489685570051774702811324067755362490901805599813873390850117075305577101877971233791450274478736905614745751142543531539909631447450039314432997173258113093783204674154780618541012355109845181389368812536004229153049169888674839826660120995637096588521754904500279905155091274549647439910975397710696837341463977090427527309870079522519152638119773016344285487808900218641288497093934474975798525488480380439306990595293920556395033244682426888176831622545705163235516128882360599358805546825121887520580195641571867737942091953116425552470224615164407450094785288096342437683935913764576379773295757191385728708105223765499878253153399702802655679011065281316372107863160313894968598608395391513700447840609870587453457145475361336363813008862836841078922508427210200144368544421274595213815195642164530653137118069977331563369243311200509421922188187946102687740367203130637725332124265201970745071780417016199631080414703151866385636124796137242821573146018901990561223119309976843799713666129959128319277158187484936512819813430151286893275747346660855578771941860586297497015465683185993461943141893845382778449320465830632205641651784292094265990911108923133975406889196484322579452161940656720644065859104589879588243026393429963772864979068247463847928860120180485858977361030291045430850797277790480949176462455484305260141948942203312372720660415867325748862994429485767169050526548722690969324596909672266265000773647297698366613132834957369722667091121670968431190491913934200238762991118193849065502204360394108517879077991026588215186779703800002843305099038605439026275521179984531383803089978306964150738377937974783103861363920215213223817401576874126477861707404010533311565190867248458638819750091453704164503050581901689418702997362692025187127166008802500011480017811530083685950930007721986806126836002371819318820943505808781618265964384979341133479413468521777711977914038673482398759488980924764091275523436943212414903829699329533127553341054626500964718666537758453629135922045468218954389564769843913541837797453744274397643589529264776863635437092626705909292873458750506339052336540893909674771818223672607261179052635113797459072420586511111728782024705361424633249639044006139995600861975077218391836332621984774638308518335314052635496850614995706163830538122416879046551627472750930505495767253078479330817694531379908620833154312551433906510633905240618478126726314449151869469831164857531893995816703555093163832139737033728076482597390402881051418578773263631914594267621773636854218531226460149788044732358157709425318282314172916416443168238574147152428748447652295063525866949161639898949126698541599111629166890794418324928839146253724785309225713320381828176345574288720965534898161141560751321797239245906120482594357637462756525840211254704957753715322913635176188403944700665163934507028570014001848496335843753441943526439021998983526836736954052259811299512423202250702468341033548050655370482609473049269168900934978288348334611221469771479407489729177250621521337945988592264924471900824837962445818459176824842916641146664357196885468529885209162207975156814057853988459062860479992525616029146483863432043296158867847589873025866972788663583228010438889878687177336284403669282859774069953854081348883871993751131774925251715983370224486867377231058742463529705347399779315320894780086089172753666335599881046575243547569789554629374132158480933167882252858852897762110722649077392558497739877805346596748327437911201782179620815095898985176629454863782989851574503045173599383412904573595435728845329913411492510558797469861054092939722256008411797291170054973949922362739152839877763385202975030663609305547357811768932389453040264207572659036808267214267208448528574603266017090705768231958151367197497115718979765184455893582784715772733320550831338723126306238970819746714015926707221136164854071017616643984413658462535196645711774721302010226729331057897021649591461021976391514458887772252341642089043635760157745562013181847680511805857719546550467922380628917095572981977160195493757093029817561091251037305796631069177266210313582751530161364072556709150864661291989376577949030280947712744483522004032079300347439208262824812585343071368518798655858543701570979971742897382206246184067285936486179992231315859618155105277115155977070514644500722388028972857929451744716453173123690772204231693076738150383960576436175418743766855688668330194678965429800013117053716610089229827413482345509049278647744143905276866753593938479805864610180847916765931543421866787526104419794581484774935612186382168782063956786097243842050931407440033464972810634376294311763171073635456766442578798492514430254446921350739578708642212410574404740527873733704616085431019378828403954477552020022338651718055520381722251698372213643629177000762303323138445679801883916574037434452793653090666877380278551851381747557795408982599143216554254659272526393583212901616792297072472252986825935894029784700896536869173164295103315111426853038708481887016861886696098049102309469501011162178485159464828733369108010092307233627123442372716277397711758081720960365186129720671600027381099003231627749750780361016673592516641367543140221869808610492798005314518913563888650561801696913893532362218197224164962620372706071272653554476630521448791182394567905281698320265470194841757545982053866665717490233196337257302848309678722757617806451267654278546376174455687113146463144997786273480757080895445215439840496866165112806163239018694486580225691771435478002571397395002196352231429520580043749287841501762213865989442546620385091786046516813626784540293561178628510954317899173457514523636411253783043579810486376618572587476751734823563919113120554988414957140946902797823326776159794057166371617119446584845618932973053211526593941001662176678704065167200304557626466946436754451262331596668826727062438870534412315663845159465350132410661991013376763241777515910215878772292797991416191237995481217051449201124404630061484843092831012719253687766564394535222896174879194388171356658440200455227828183039494795037791754089340923198201081479252022534488198309499558118059644005436730027410403788640713852554798012177537908954483509720320748883818943874824759679792144760316845247119437501497831652054802467474515778482983304190651412854815064842660375399028682086132686799995740677901290738882772314952696203546840960146452253185266000685307656849517074847314140656073429007072553132943898021099493778456294269536104845877697773845510780012002525898827493456722541455881738036219772273104360461499103390669721357880911211018492091931914039464830273000388150456466188468559697853427206885142699948996418789086293964452468611456698962289351703384885192384893766845377865782608402374300581008908972812145493556758232293118211128854423499460711047819014996059534281837489097212674947254995349793508254388659341778877359239965848154826470275845865358154338186399329524004968304573483732997862155245660061478535054738921303587211526283088561848525181931202565874233987136901916491851845762442173730701458742679020881477260794948872563314632116279003712413493392951198340011242779639795184142679766746024294727344007169452090304045850770534091547039829462226610560247851066869736052496084995369958885008816980077372656340404775992119153465092739069921088858380209747342730057981919057592585587348881716936672883983644636414594088890594909271539957249437297517054955372860168097983837485427012406976924381541871676513398828106227903585565275564946555680774008358166064474726169551703734078942592732106974846899854422172313305797659147871795761663595901601577397235535761326355461768595152501868026076931608709576277379352696027561120924572468518860509779155682233130932417913427870679752150999130611124298489657788726653229385973222826750669901284155966689470374084377629890306112079630539856676358444466643919852762446356424098126034847221279547296176881205313762677461215203516862610967563166099604409102353307928889417969301666579293519410762679514990056023151203362706725313433149810795274492744290638521104277080474728829621608460546988446844200253469252832467384421791567601173614250076788554464040046818913474519669496641207867295221808844362603097454516235580814100427526198115979042898823494312513484765925145765404621007188270594993554440877564920760361731414423852172834874648493556683092148651486614217568057449818841090845451496040076187432055121997633699185352957574554940618265659559164706702297289116892603740522450388540617999799315136633680177254150167610148713150017763515302247011119897066625769165937460302633884732849884509646275043399688753760244210933158529538302929243175097225885315646933041356262036291555531103715215288064033856016652835086378352748837500015590831795539613569371567952071505151163115381371352882969044197280695733065073236918317342811205881637316212619446691565508719255348319170086523042818060642313996728940124088728935462294078721710604055924584595851012990243114784635219806895448363135564149951914392921060007150798617437982887685616620627264350779040329505039011551393598389733192820141360460425298605134910252667615235626513337444893931314222561598056183720550323690161965456136387969314094697066122438982296803591569963066445177100713765702684963944022753696859443955916876323683899916594884840024656192538359942445304436109134604881618326992352382631817740312114845080004229890712147767721088859606071531427216554240047796942487856029359163100111287463141900735345153175059725050443884487526601121545652914312845288715357689785938136099670672442751268621001992873552037926188968653821618056434531578446303058960730414279671683028573919271042150872107379310062682782980551875132668927375633889379306043766593597818572644205216585315462094668810928014871970761390005835178695468998917397553486326101192930972178583264027055131992672962918896201322415005688796367045495484003735450664371635901133348778391321049976478268546283938097074361383845417475513725269513011452041235603529111351534248551780981347665322428516169705392446900848910282724492924354208586440520338351590022447413646998680160486082628254975412784773131272514609516564144064614240314310171879913286666612679540525402994547625821551659247688507813794186285504615864305168891989071139068882170787347536153234346260231529582998956104828913100109095320598146884199908531501721617376366574354807624525306074697967344321467143564766827516840692578339417749718413787501062553477407746169100582315507763030208499523825599736426825859243229589289078455061742920945568289354060281411806516689689760124486602567297977665988161241144365570467997033484715324016213222963138810587771616187099625253732221602799245958031329272267227640182317924155365717076283967057975338193102429802480573862836268829137614439389504496875991906112709420370672381232013872549053586757295115271884693081888612643488497764315039432001525711149957546114920121842552509058427609931917779772292964603625544064882999622010069958925081383679690569382409356517259681934460196904514391670064834618698161931170935445625831875787668467585988404584058385855177178574249976685141876946410463634465647051657115575220156740072132102259239870807457121343481481979693857291617668374989837002440379474491877238817032101980765798365276925246345588308571967240008447006333616600665487767841141563282719379291296321670388127119010249389689382592854164604971749864823602283768995391374965097474427500703294655030944734212699069286489533474788613351141675266938971654325362872681013219201698637003052683003118638534578893354755888489381233088295520426974667694738387303450215864894843752496079326816146295362041557784506586734561988293135273853862197952267684110823968014370348327098029447109015083462018947912851538177432870153564239775805360201765453945417091941541870493428614418052538838811753591456416865829386706746104221345553330381289971755374305105956674001133870586050463461508148803280088117652832967474783945457398572835026473859276551503966043073398947430128986105122606269097595668523907993387273615593230413658499757406649252620629188259130096736214406171236468431362452001764373701606556488688216843500396940367670907482944401905722372553896531818197889304061894513443892048932021519097072827070720052417419672986775256777050473140042934752282011484683192278497202847216224677962549069771984042028003113229812218533853491688916026418506265018922605126680614512037446361694699844052296703578567626087094896915367534518741196507504245375491521896631549988645546410218248272998051282713019672758994686963422437470637990377139209993391486308872125575938403076356370545064367711539008638816204888722592734945047315782344549142793102031775123472863741518404066038768867270683845937843312266802098204558280667174627642163580076870600675175164035322531639604222471317878102343192467885555987570145408581637102443254757248015959364393132667206162142424886752322278169167546540848288233338472076978746069948155199754950185754204878810447839562134342681792009274940473313187428146595950556731260772412071507520361503264525672349172719625331849476998180298913303973501000222691788265156795341904569602416175149098758145893406917037512448563991681591370974278841320028629624174503646106086664998445658925642856803176411323139772301714947152868412228998770730805009452172136540154494938433700772796880725660838795359212050445715322730238383441902320565306678383510683429760794465395247628614815182816234196698469556404856917188857139989689736168631156673085561502923349707166299181120392326647745332225910348452793031160093371382672169706613978064773841899884911419526128218365411264727981131255608832795256293418061167876884671614563069769334882595183899013071584752760195698712208309569769608445898446976489550835668525391494517752604119984541450353227578016020962082862084645264421216296917831566422896242736802852298308642712480338028973645124130147474637493117177358649576589990061001098425495272250305534120931373850017805912690897674504107844186174306753563666995404628207183034567998952443386778453251507233241525149981711041824389234757966480865472196467112090320122270749292203568164983255822901827035690927942215142000514055524779823994114689993511223159927383214302803069934700780310478420263494480442252011181050964628923866904867784220069378465566140295897136821002506850389480582330301889506669038792586708522572392991034704163572139575344192326212852945233323516336605594913555892052772802707886160928741586055745360183772739546285201855181301043125703259148483928965604918939279971429462203161549232885758593627953387010603306940352491880161658053384363677814984973903652513555029769163911720932670139249143059271687186648740817287167136607174519592645313284149204710141368991054854890494605102572303416909727593401144046270915169251593616724055275850752451634440452991082664249944352401078425855095554691437184419338924376497312350338257360992689919378566253243394324202406858092100069494254021175408866438304151271444041405574041076163180130483547045766773373570414824647881151552792189250030393780215851960458325204987213112300362167056471442798212618349422497370905016807324859371466297471978573909405781477690665653793982710611834476848727901386685032246400266939506483412829260390824427733835348187184026161852369240046531571018486165699885024440240293597286797557988557168864712102048240932386159955728940021601101117669883671406711395666262863731338953002238668128443299778239518557995629679372482770188264183975407717754681321123337270507334304499514717607322099638700294557701305701756105748162802065835763543750325827991749616635074861008743989570929637881343587095249682471599448929188459157446970136897880253297826244564628640896762462930190010969075883745375189394897909744629359817977443246113773552308257081370511473297355195455728558278211709087517563940606798298440887007830402659465784784403268025038085776011572055317748864497142953312994608572847641230899985137396249755757556856995881001455363351026587500756752373700325108314742850772104737488442045051545580970541997862274986561955833778870969235120061580196507919665863211923114050867556411337109412856941957000833147019359996119964378289176306888269979945860410407943446411995783222743193241037225556149194108240310096797102398675455820108036229225153941798532084251336013607966347928635938705655423007785875967624715747806143495327429846365611793306648179141280033022500798003716535676581646828172614555173702523367938648576254036319711668329348249017374674560070339016968838790432966694692069498728790697608108414877471181048640001393394413671266568908277115790101647283125311242403496560869629590727110787417996980799108156471153574950069838755444460682343252492968165003158930537480056650564270027158223281010608305545432860125513075940128254180551276903464184467987926798704266709791764201795247163168822014883708670056855201962283796103638822439434787751576667195706252648587368055349329556145396582580528876759647126233750654361576384042344718693174886817516326156941840554843765631305284686204971028722442104841187290174981168232045780923986432364729039167042504298747732002240098003267432065733019791397652897396634186949056304262185369664192881479258053116057429419473629570865180968727660256093844841576412287366179729269902110838133758769517305095450605823996333957311744548630877077789281360590455050779107097560940964873790040128439918024172480572646702859911918623961112636042945893125118105197766382732531705724263388358916281805070411909137131445159823967751097291727085707843258149869887754292187683462967361809583123454812578281604660396417791587255532211799735332464949365821446609273247692282933382965095798500251291719923908055561387736423837893492082748251019262983214077134758409445985776452293469431972826134093126892911662707508395580858841475741455548559726495340110065382302415478079733135883065764733057204545874480006450270424682399252257910350529456658359634478868090353403119309604346100138252568988714990378238779302084791488950816494509815515453656651609844477780153179898416393457363663491538227779844903533042082803962013024409541438989452736959165600005771317731605846952619183793558233744347487811565915454702776144207399511644398768969699591843974731961860006210439109497840086572076644357363756300568680510476752933157033182273201683467802478432794175494327767420819915985453391264906889795217467606356267440092127310846029058473167958789327884900903646000626032969058631021013019836444235841500867866089185730009615285168304414242932482908583613046123125686473680235112926535576486689611989029878176143717553804021279799225344631672024375682615832543454160842811475061605567302930561058245461180616083530985127194399789763389132011025344276461437353905767632670946694411900260481034613792501321107204861463429312306125494014887948908324520548604570904049895296367126789599691643301620241304506285195206277261839202393366668772816818982603346673895197277630736181505746082802032963293388043920737873015084151775617592764195407465441827678408274426415523602776469271768256855551475918076081191871410176360575032029939537695473810428971502115250772059086836207648284562967598753723884981975679085622758447036919468133654247474572221031231845228325807162611190368986444904484882793516135167716680359844809363694040004733709795036879537255207103164023233006888155564390938488049138512786761732706120322390600077249139037938783227341847404003075619882330729590676438766042447339538689882985995379252543952403341898242177965181782627165614665249718780922233655490420912348604630195428201854118191305369233839069071343415016693854756412163796163503559218022680811824763173972842490428061171174932035875794676796875289072312560157317184981112029123194916421887165916420126275611033121695956178168986467278944329798535442081852340618733658340880447594302516462296450645833921934009184877324468715842236402641751533618596373661711659498975850142922203540791973582861489545040388801171761177142041240568899003792818640906747910504028571088880278212345133268488859606565945539949362744039075680732455206103843325221390838210407671492551628847017582137222183397460065854735968296260113132791582102601428709069485575986225853039183014858959161421665744558384110891261173627826578312789249114140835224244469590143460233578352789163553167480641177843629611313354685912057510510587216228872217737091055390278837075217956693633811729760142876349927935638802039398539418260904787945144932754300746726087531898928740056459452933604381049803207702224306793191351370140313515537776418100869155609526955023416937565669895607773354059505381515029206881686221714407147321403244873453517725899274197863911209496441641044744084535017564645227801549839627692132561116787858488932940836843758762720721042132636036188345200155075392301488062947543102100568978045354049207137959952827382842731995725662908028498308524936486595668244250252865830149189241468724717299756993697751838679782652825632884914849878372759311548731693836811177643985244811675166056638756757018248986605712691005707167439936913731903947789294484266637110841203961635470991369884250112891529938313091197006791752450252562874702319572018713851103529186658920596226923134537334277886604320026931168519456245017656723027743101753705244035245902567367659970229199550182481645279259455039988694587309146959630525171642979460928096259493243309179558716865731940864975095351573903598315054423658561095432572911990365781374865075134703074403382646682637886689986329627561759530801422165750985791602967165206963060295856495594895361066133143731869807266791563580697813347008971109973504910339301312501043736923160052979241579787186051286775138282577556142229230813539438035664732434005878800938049002967097107316195283915391557225275890287268525841113576657276156575389372188421492876063783300306056807538068107402243848248491032136134290892933835792430821633114817239974211299375868140048487137072567499902851272894690445780673348638552433167048348016080937299369095680346987755614348261537775860976307939368474812868491112507951182168594662153205895656971431290303758897472611296607355466445422056942317550643209093066350593947347253138353597993449092623958248928615633518563651289613733481188881035007346215083056427427683504692098955285298607948279998274955540242494618820281420094285277769734425522408375405072347921019864422561376826596761431286811406285408627874565320725433848889588241298672860233663578003007932334140600158538620592974866240726978140864022350874356566150869018798093075352491288642133259076216006294162294214096583111298784083410833521866644359808449722632413460008719887007169060447511959334093612395353197816918909279724721766345575524219765489681642622153650520578475705712015310754930343916167754139129669941791997022056876039422549870694640308127874087418782925073682996981565727299664780103951214515169839081060610558602521216185284541699732558888266288625399302436367153748044520636568048069559328092948973849041988195188424158343400612656344441444930093470164036395676897270321292233021044799517667179416237390506629372771302693907274665177066195298389012040466840942984766404025261382488780635281089432762606737432066456105310085543775030308804145891174370312177814318554643921850757369513536889026391286694081282143822329827922009024145760281053788180356114235504417326615862723937654650204161288276510797245988852783158438171471555069478876493796632960728583915228192651367546123690708839913938424497651420170228966385570987787269134470654201481861725061210081592216615411760414680749563488743079988439830785882794642254062513659316885819670643046106115808597320034289252773952567072373196011955678986213231268891805290213601603338640246273979580800345452002516069012140556389353623851130492233604001309635891516017097870435898280392725002454955893121233570583035692463302525851150967410390869950129691108195375309810236548600886157573701616365878731613552061123776557949514837082422753659976289424141366178232993069105388242788976080552238509832283833781732641828782951766051307333570928812210865722140209343387708425182718424666399691598825075579451813684304910615436125446048860552661032791668686061305069634744097378409824701187085489104958009881859841029170007865842396063572192100688623137397503948283522131134244033305273238314745385676836234765799500643566432075144269930147176248547148491000284093276652600257180313658063008282338052400029202512597360669938720646581225195877768063350918736128247961395976011440204611906363831646738088586907513287373672249873358948980695950112854449179383321866284386593018985919766327406849381547929980015146659999656628918644610846021138761757994754700958667216628839191901309535212176269794892437886199114788249910586565089879418557793635789804919979394934622549621848498989993742771662901598418045400620715045338339334263275379654459916866555501323207416492853910353418898711818125190729897431901294106811770503510198013433185843569373981899135398019108285289238307457058066758052050213243320162057549440155061656097645900520077350124116089259043804984955707871802284469289853726867094885514094612651611276785962455719528257071679710978959028878617756210256662901595829954469109736564290724741212005155441186352885559071730767441664144714680851509543275520385404633420365467291186206814480273329233055717135260623030374088901988331769322705693148237384237113956644199528212923977184592124013932596728431518799466041285218126988723258661909981942997897074681754899307985791839933202273252831501059482913971606495184018866411004385355356060963363395548602760320792340757512642946428383959120163694673722300094742203946603343728126340070629101132751170150869107975857891742462594821687773732869145376836646989833235079496169224995989875915077979793035329647421566568113765795910749901965027500643665506761123568935549739681770655067213352856566663606383448238374797381578857010746675338057225987989873938459836467760910258665978442634651782441547677058998816563830110477933953497894516432091695919847437169007534698726092843181104197821267750322238005286258961590742141795277995841274262349101734342168660813379528923414019104564774804966688898536819201359662101689594963312996417747986396637889717763212857836670190906628858647460519249644710183481689204832228212865189238959471468591042911781409018537037654565432836811112045937080405751347969927958161701445585524993933687425818802905472487553492784033135714059535402693031543809397642945259220061520359354199335234824091144008439634419887899029550663316814259809922738297452043683045099113133014736768727925440378466750978561796906356059500072462561740416957816883575802968681509443518373926999848174972393789877210035560593617067411889266425860843245983890738803034462862300787249155519372120054185016696651043502201945594993208034429035391853822830452435762554918012805534418115692741408282203715657340944254600856152242332095157566378016431470252370507042083883291714506578114454525371130399308720558547654990872276676870662247301405706194817192267388838611037562410714128186505336914027672136122664945112061168621401124415488932458936020365744349041009522615448460648004582862631717157817489657625659364246212559032655284737429276212260508633151733088063896732397977047526718227792006295137122158203956786505158320817242468020553635055740176167375259421100970877870247441562372488963893680389377122517673403032432566303930727802295123280593484196956802210240794783758984633493687085465350491913966350510057914690862791751689079017579128737485530881980864863851365064644390069715346037864428702363076911699740676868688440655127079133794803671120949954077590407905761242150851302378309899994095466861353781585064679842210050727741223340602619502048343991351429545446623890360515820562350055703303031927868435414039197174023668742464214415588474591029443060075931571906250722596391539699830270738616016855154782747466969409686553940598094363269100746313772048327870105736954572023484791134342048813369966395790659145537979453969021274826681251055982179877826032863647885535766264019727354663021301297008271591662733880666999899786129386738668264323735800310567280788816006794961728598188996962125494658728166189502659896565406700870614880946510316545356197119474662142176150461088384474118553947183890589116863276773721705616204947814051980785294899054468453849558420868026732003023752815792503266778319521604483461555073003311509125754651444298197768770568252629427751529219637029346514450507418886298663313952234104154980952984110139054783113825506954920478429940078357124904949980993252491011248232558253720180489525532223776947764032986849114114048791240593873760981015897640191627668543088210206835026161906761016482629441052307039816474447210535350782713562348076512251581876791880765383802157268178671573995992628102645359620928334998381142822477288861353806158124262390248435833179624310892532830828794541872776130938923481132714382182182049070338603100499274531912289836086788982157912667874811625032755799543353995070924453487354195523911382748536245256134315175234258001402954427021204810800042961608652347707216139539867675423590677920539281750711774614927858381824994104885146585091312403717480042366588175090228249552031848715630678531138352158648244509002440115630022938254550866245028568170700333131708378853468769848149529421586854303647853065093584990275431665549373954325905213456994857590149898817829492981218236397671758241960914632698522573281111935342113207946675977260743070534841011093652170670842976895053533573221624157643323752092667651617064589064250811800488778247178316567258863776119629702650571373272777497381742874425843238131226454068505123973876614788638858521013294954413730912160227167497600352926976868357574375734246586736307925214813219554186979971156089683999765511389796719702659068761327259601585516078042950801712347676845241526965519420890632569102336220583616987044126320791003163447646343373945828673035038513172861480265089506770169543338012352121540056157627320288059685289309721049182625238382446856833173054025793248761143486395586082644951460637004700638631160312863268189781233824327932398279940362944938395089713081330952272909739680658026342636915395613719432377825927010294185913066932414223011229916923037516999867963731157055441359306887005696547947116325914820915951178311070188283731604876738565483780545582834356584332507765460940363927971744735568755669658945104414085862996602846244773206735173521847329057704441165077064507521589995473120498815465707973069948925388565646524538774365074208447299281217035407707826260103066264450131423455726815760490799183514328800176364132174717189572444658495094268782810957641441562571188036527109952164805662942892447865297190304151634557907242229057970561927358683896402864282044455195286361577129915822382094335931747870517065098120694515856335881539651068232160493231143149348913206156202203282150823073650720024592062282892384880102303673266945933882018592443375228935027921567042609659090440326981633203719318900225995180849709795571836892885898959504555348220578633307916641634813820641118232361247113013716271144951678096852598066206264523046858450282452011604087749368207596205875357783900659916418583071513174466504907202097445160434140533874815266706522559392088721238409586489295152438155926290144572715533036535882109955832996362375953522716759112266759526401708673182533412150937195287940223088630164330244424262135952926337658590981323218771751427195385586523857913714893682180298953244713120201205530059962695927521973415673285978724139182521895371538360953100670570416272026760951112380029738381917877582952318632560297154372556850776450815242772250773307846223818641383134020633036289706299201522646963621224756210660101496528768526205747728593896381445696688095641359829627677015497971999482872942911368655970092826434696479360222304553415927192196946527510707238031757132527694632826668674054592596857812234341479222758950998373199006910952852600628704129885509972763522987182281114483215640347847382516209458617505450856344946959573312988713739880889091168369652001005192297342779372288710933585138410701103764994925236921248994286663862169004952079934278446532456279536023528358837746428826118594655540343787420118258747161159446145179539813994335470279950834977057018469434676431853596657179657464400774299431352603036591094326367039184556157884561603151069498699611085408493118529288865386878550061994887655936798789576720918699701048773140928013493426685929916826852527749630371635966155135816012913582771522847131127303466682860946955163978272824135377891362962306470235893193027451700173048227575897092691903735860726216825761013129310950209382229318410116207919275713356321383759040009072175906011074914056968999907722325309028333666382171758268132969175370194798338040947292337243731761444667221746819647099502286923577667492698521415100647197705521319434187863249355273137830148063879376445908857954750816633567826819954025706183065927252561021753854893798079838776379464661611178203498131268533359514323031587921343984067758958062678819200567193734857151974337237811787701403962789397977158304882500794415841745620253859207335387483511718016743812384756909861593034133629627538665833758202797150833659923545934267995199846990606374562588705810055193297170488302892242727667105042317195141100414246979260773049635831983456474343168090544658894602907184673345164284606017380950118128478108663989658220087903891628380344990097011224961564210424412337954284271782071094539813487942362472130342260074896443635442709557289504264185354607012163840435886433202496075364231393800734811320198064081645443101487039584252023578112605301865096024119077143468711617758389215041994267997721756196727275417653840651496460932366460782387609123782632940853865107112262586728980079386668166828092727105697448550565607769929746557365967258519881682786687278859718829269750269586323277682233051728807069427009458553493798395350349823481849019582206116850408677806724008139397667043790154394645067284955083565235897283206791756403055664321964884602625649865171695297874420662662300859400353665745876580998813466644873739550474545577285921360343911018613812389199812859346880057855622086187620887199413123654202943059813925170713589151631387970530780046866126432617880117423960027946195516925278224203833373813520328532977876311514280118445399252044123768919852473284693900245295338844920413992158498447178296737062556392633960543458378714176784025496788027671179231228263857389566051707576772617411181273803827002782244467105731550875802981365854158559423763193740892889811150293956610981336324296879278335669967608811191952209480296669657773197445570354509288984398679658616181720001985263572084864032776694629213691920316063144002270465705860338828178236452608643344217911913301212889694776613606031141125200953804972050787863640171217135815772323710808450050206967369265096981771215634171702274178051360869881796354199706698800292890493151794513664619058499177956062981060313314191162174977707350062091448816617684743266158031361979042474508707957559898932077818883682803136744381732551567363358973940562038536606454516695774774026911277776526717869582393522338673935409452849941395432477753418501796324126730416244965901761916460617767336854718975748876768458653284462998254420205396608159370321172318680727403961386201629598648637796879483960897105526421817081899945900122269425216190034573552828045704689910305662046429819589283426058418444543323167639056891853729155605973836245537508170680410419454235630702613706532505410977475089365200684412401246306297933352755514271307373030126570263718870792417694090501246592286678403570319321827257415366685674767859260262249859892364003075775636475540796008249510657334863910033601933042020406778042874884244069639867607212077884567402614149436270654442182232590462908884090013010282775543902147549400241162473119164556148557624353394154553039403552302956192824332585591189133669011565521741950678356386976477769551077742205653877346412239550026880221611728010953802757526078505692109270518155651126833534583842009118950715126413596502972174687492007089113787206475286334555166008510304163059270355533244386921187564140622724127624603749551780680820009967895473975756020097023184133120147805226475033056010583252870958026156758216654164653673968279018524769639696324329183975920205783935425600220914170330605477533951381742365000417883123854401859686612812473125857281642719527723978964635537839495408107107795886464383460567495752450463038167670237079727866386116818281071482383169681304792419828533214788311326816799849251650424749530904512565527391033120358817245270869203249031182768304565429875643584263426862896624041746955035626719980467210081780553675008222730537527301506035473473908171189846624295916563104406411358095303822602299327676427079134605708511195134525799788153735593538036783596720277953309003379044830946761129647261266287728703011447241090143293164415409615063556338796793290170836892505841921137417445269797903650402647962464814114135271884452006173543474917661097462226296622964884535588498005355429333064140276211499663138795060966996111711994155924553129405036230894842493440605745933430767493727446201559135171658956471672050897817452321450858200932730978826466346723461997770995532740687305881039270346712364055212821920365966186753217868336768831596601207635981277744011900280514268630128521530849773955878136812038105990587421355265351654855533046151477735433750882511151441774484190330008468032747207552453968984150448810424427434126249712876855161350150878877797090883217407893238723632967736286446274318216378961615069162997050288806316923681852778868684538704501690621112526884741421104767728843809204271891626977266048465076824633139611554197679095609486677404504235047897071916167162804576858858214065052840086722614442186125007803908281336620295576384028111657023657857396464623974289474199738830829365169220085373588308919133963781163253533657829508564438203925275600171279160172726904490016075876099803723037428321989559533242534022524780280341622691502159183989180516362979530519493008903792408257883441751929491736475003293280655544555544839031678075721460037870878059891466830376620608951770207549127058151029366498870622598585019110484433949891659371393495875735051185144020077474385010561335039781424628558656390396882115888089677721360664518741934540562699781969685519664067233169407720767774252790138847355593446012809490313212806072582401782493788155678583063165719947475172764033287216095462738695548284887248962746164947800861967875778167650887862484945970455726199378764994814239978094983073980015212986993860142796366275907143971776411389364962458204392606598659451079446855824957101714035052182757203123345010178994288850385827527699725018947585164735123074933922438505671415993409088671798211436367408568576253131646841483348464777444738936785368782614771435449119159255285226361845868511935349265937899899832291037475444273339256088585911435961497601752332400698813240832192850260052597021975752013824367749657901544880828247776472594976407464287033587442303981692909169477255660145944985760072900772546348386106924274809289691193925735835226349939049889727817701179251054029630166119293746361083971668796121131036899238200677542173096238721560600085933135920523682718911687774009100697805263351791175108797323478451219483369727218502135555591042195678859194238075461755265328256962161271462689866954370543838897174086506222079428752691425207819038421174544424842580273947039206539119758918723670590247198325459815571577360808710532798715529967351738732530621839428721379910709187591999600377147223437903059559543764723158236430086653750947072088032864914140111486718779737446474074971668316640188212772276322423485456609998892837246947954639411719346785654656417510670003221006753468889685037943069706842813022552392055285425106727031445450642814253597117293494196328457351490583507923061065765961396146444204211931064817267081835711157133156353309715836849487420924686739154094426332062413350240927669890945446562999019141870259968737387212971643762438110051962660123785461953876913497874291700826215590532238094620298713464461228138686484060821272240115978409895838099857310364907037993114208761518045476742784512657541612325766832049915059639886709792135570033317237211892979862004901898651730824235040980968337612559804830990619895530268175099425430308123196475065126734587969086528001586092026956697428158826260932281592840550747903109426694970255504540329971288681881712541946787638445197175044871619156551302873379524453148300276611327980745394022008399752466740439805276217606344830763083484474692931168800621885349413128444763914731811663854733400183210235265965692258078396416025983561334080203505189033431084882274093235479826951473926765326811187601059086829862617006293272513558775153060875885355074811093403503623424070907616283435729908777121246717345344127658550589340901000474056801825657197532808765045392893791479906843591682777062734496943642422301922509433621469612471429752500109652572370570182347163687529353343360221547598046019309458486979132343662972367714992381308125202374225801199667128962133805483560287005201963086553380636015752599658095252049955338615623378534608105491122626069716127729442138069907688638313258848512622315563939026949132714716417865303161047375199124980214378670892125235074853704069527515979098631137748474127146557656724682904497338528954202696850974663665919722560735502218948445067850177367590365203569629033359066876128534457560698041750410695669638636543650436196538864194625053817876344246441355719060969527957464906470103998996238532074006686835591258560739049865953381991728368429105310615976074322142409911138256743274397449077990243410464157616755720202000725222972753274087831077573727066881672635294869818261227310062429729994064209611759080399531535102386355666352770614514255048243173300483369769474039070465899326068469907323690949882787080108126157729591174674050215664311440885733291014574913581575133028642159435845863573877310351070704433565014358707746198723108045613882966219129758933521715334570296378852881038244092987010816113625694545540028438951814976366980207664826277973111642898102421087279773114178197995931688664504957911316861936911039585570918673169796128843790622493444666065575625721928644814669145703982862008306873444248330650044854451006347263787257338091529556523508762326758420686557393360061881801691116900095551885199681820196518316158503831410445605359366116117512657612434046102916219728913766135006990580075043378958118668618980132502690922121273064832351874783830064300642815803694445426503253604322389906020959035828049659696396823060762557859584403002610293525232073038137731896176917080849380905539769461735973548593402677403023879240807199211354919122074791963409919081679402586551824203256188136074797811552827747749531871118254430478703542071727721810526704779604877860846885315041717295433968169950761739062920020117944071360032412979937991484349968239988188506482453904809232022659837527550041031929521293273104026205539683802958368297768784258746173187164125509734219245142582744322371268952880566790602682296608430624443323870649546322734385493778237521611940198240749207061520914360213446804771030683581384367792625727735311695914938686217164322058364832541297262263228634496812864832801499023824388430393456298539306503644821623213238743994614102514027904359409810575443390429807521265160258469505796738317627280108115183619270745098578490689070043255289899611148590297427938045935934666916668344522366921002683854566391105609628884024186256290568806916892422410425343723898620188100172551197159484603716033351150549665427636849223628442916823793504733443110618360596158780797687165833751389018751890001461110569000496100372370295575779256873120991429386897265826006756309743705816783552904583171251339153484016131233322859990282506525869113666261771759932504694387846963640965086697972305350415567568638798937146092093502924666321407188133190515237191639018590181858658955774515199870704622599658686118084399674830437212517962786287180229283887116388731889807609819306075122191749212009317569213715403133184633288811022218811021997980378138349086631884065936983418989334346860357858960485645077672078135142935240883652968294128573524962368203093716064244025595747040625431963426866464076248181092882421611388627148879653450208152905948291424736901921095546004878489029274145978579913157262864077498717958214397937971813397304320307502742476384112836420864522997625848746315063986605530243558588105121590141988486844371417005244719636550625497388607894173244596977737325811709721676648871821138512800704847616417850629037966624610287718011127487332904056835587996335463807340082818057904104889382833450281946868098888164114596171815220100669960646244508300201730600481002028466594287214380809069622269206803825524723905480968319088789426909213901587893584945540969129524122794407182213667835406761806769017394116267481530167096762121850374976338970699378532016160551201045391420877880608995083416617666923039994797555866543331921688608023096589348032021535608492947786344129329992399651927291958587472228582382115626501407922394467689078861892349274128400678835197545471883245174913420662428581736994800262972483069010899609907441009506590243185118580241614907881333913139127799505232275820091419462572448190603856921513761252253387852830060534389529387755124650526451775470447233489504908601339735652239677078321222838815241682564822661906566458379441767727913541094441823667423421139241452914399481921556359316547707000921822120477969405447154182922376374020411545747344311111209793391118232619017520211209990646133598075260799613057872964019177572359686682664423547588591714184410791014125563489690145299005843555473757241236730215183938093733075968394830211059276420112431209958732505518229249931923680497246932833021907858312220194062186231783479388573451909146231687987300133278286818666988104485404821691000666214692916579466585088374407606000580505902666657867868165060651105663721631062617546778069246839205180401681402466422076412305442692574220590315642689248556241325237079649954807732298925633868051854576408012063117720272437294203006695830940875543348959902908639676023420907846847529715787241175170991475941644038164414683852267212499102437904909082039589214648670994110503390259207662521008240888068520439155871157686398566146011547408498771749546893692316312507011900906535613976509521617916512175394821995650423799467686727356566784629696387788661505287775485935227871621199384185991564520260363714506020776943816936682895434744182443564311786818973858540900094059766384557166365287157939461740129754322370507059755905150543259277399578542014461115798484535094303796222795449680245471641468783252708445818290530470277540167073073400863650921069970740523126767885529712585228529316576879652377600453857193761862188322633119637497095268366607642476941100942298885396697762157972915998025109994656477785677936591805874809332418290318200188090781366457811947911811203563417652425567150327730568314629009043881955848111134644465507409250347435011430854925336610946650901127025961393976292897277061485790955761852388206105331165239674127386713477176527867190073923764129969075620086736165446408715351175736344636072284980007451964908154152034622437641054787772035125945388763226820443750924818630917106702029313158509802616907566911078529173427073581606972505836915596199125058120843173755552294058148812357867952496624844457268327842385386649743133058091373776439786785591832936547884591226652954098813081965984576268593803073184667984788065914639955851344113354927456492652909438344324681137063116090892345861302140855218131605583653109985733531737507428882584671938849500218000342473528280225121343446341127326187231499633655273052827573373909973152401514058516358879465830896572707609648074642264846301188903911234841744365186881882019422730017455134240901170011476826691913361262011143596970904850981034799714834492006118200484829790411414755069480446094049338338739745759390626755277957047001365143294735627394188516475482151024519479494835578099594260880286595075703226087735978956763131590501199552474106147563815924858705075666304356269844754192023597690856633765661812149858110119014161801253534381754769259676250995010678427901820904734265271666579766481952225127572646161792212635667581903363426688713197322360877469809598045446171544473387704899723047137806153692610680560716020638126643662896466540022939522126067008869377208717082992631888853546901153033011033031162216419953977260226588500094467999985510994756726137194206265367352259202059893031218930964861354269926004409491009386625850772598113346365154600424083041267654035727106957391525599125765104963370429348212733808365527127505906482358032901377087225640976305091694002146443782161365567064198381328240082907079765019748375491271465563508517535824680262881422646267956080397202416216120110592836756543951902656387128102911654683001315968877824098113204428337910653540209897395633615124283455545314682219065865421836430206625116967642327533726638156506646681286749977188096434079495320939282009326592258852112554859148838783218051987489860030087586738162286307405443416703683379403283063598911946048604892428676823498743065464128501447805362376690120457568880653683183623880246930219234556657122101116900048679023429581056760088807050209266736207168857963625241320000795168208047606218716201295686209211086408330497100974499206660071221972523476249906582280090645781296154345854367448992452126410428954343519455095830479133701228916733677011501125329350415386834446929322448234973864068564367646735986167141156879680888849360701703597879234087532714335168428778298909905425095060498032402695771011751902945957865178367461127043395741328282829826660034287080716809532256006332392908238327758359768677828192751399160869355157944757845310167797375275775909040120012821323767668297250146757836589305728365441744744824115955872478582087024431826171736829660420296209300376312386641903930661582983107353023531475812021475812170889067715174355365104174308086811890616434911387628827430912181254081484350982980235595748963453211194914358883353110020283542919267516200814655592459872744232565358672181547049039606690382128977853898048721140550044712347388108984584680484500776863578968485146015346160335187770618735923571206011240536973725695620330052566604637624579285972813893868311533967789567704351428668659108693067522658182196059911688635797000947048159544682095713512830625161765818453694930806029089802422526946962604062698955934820619468455307363974368390670619120937081476514959219894401763098241633780974064751465856865792050843103529687212387396652874700246725738495292142531190165613754001301598522542638427005070351007078479748041009091478178699081792738221597435302857948445337500877595953735646707502122946563459114361042385372333956625686305086263852458990252629741179048067990762746318072264782556148600166516700311761072231911134597308657713872276518583191104413324206770018362168192065096325733008267951953457405648151306517749221652000715686196463334560977427238424107321193630584093347884046210021640564888877666732581713480656136873747989056916202007751979216529429115841176324302229480223200315524673380887894241373259802738469705449616079781222597361655316524736349876146641068846288456779199197834464277647241958266593655574169794197398770996010495011007021235941763154425700309727196275433091687095109018728917983502178430773346881108831753183997858264133832361890329042490850502911641289580448666631518186981090730525058204268305258499083849221814394421115009348514877305834014678029781920541345403613424854928138636979050254841523257408567111800483093215464658864670303263662793956283661344924830059014564202286374408278702071821704324368312650193558596291598949141810895492075544135839130542183791031714759420601767577991232811749515025369023747471749980933219970677606825447600263160559218071904484628527988319540146091170914952378217929809722781095562777904670611182731296666979534365632398562332943690606708309131829260694080495228177884559128972660090720525921219198728788283958379544773603901497624112388157643878109888287964724320301741313003759535610842366075436631041192950146747778789294520693699726249043371174184530454615072479426147854513243503316974365523549145354689243502862340972845422617338476420467231468217481866852038915781847813521456613445572429757179772651768020682272117055783213445223271046123925159465522895858898760996044907612933259121295242888217260450663942398882747609336694003027487478118108490085635186062149977357301182066885874281620912602977225554505647398618318726911587854068600117626422183535188332330272400966855071396653566057524850797402059810432038905210560934057514244976251548321663055222913276917329552814321335044264299640283166675329677131710669810317032950285507714555787712836706013636981591825309237177922816444838002056459678625255797458599284313011785871857584074660117867239724811065678722988961387287071516569455910459393443847194581769942894745374830955727147555381568781253325906735759591697549700969068423977127957467280595759698344207380356812667413183449975315405037156231125632446736989397615294162643887462329838528855269292922182887044065341958187824819093833643403995100954904461103467287011621823094828338239720729807521069650026821790599016048111943866139192251548236233174314078726299578795639179294122347020583481305160503383516027949649041189437605709032528845760540194380700095972675099474837665425676858148601443335243298130724410963705539657423146191671042193492243871355051856193909532477559905628559119865985512246303634178099280711538894083102361653562630812546046347509606510081829588728011205820170621640870513327396973035394857138643900059671424928736960114902080753226375490167514072935231055716369613811200028162938632861711028628236898853735176564575247904260740636568393515095377312302669090371126990664333009261921472215838198490976107497489515056471675632941829061507582578650134556324098749510535197346370155042653866493486526189646228388224642151670825565946873835700972354279537606783203261326114743338700812294312590705042001478148577521074879053770894166697983362472222762830012567570636642399602010128844283744702347543307913002718231718220204167205092101417803867115129990784003271535438240439542345040192822486654991241632905711283561546702568919795695252669258142590240516987410801927321926351617788365632079375164913868272255083469860715588370767296512255414740309624827929138492849807418790077690692628949869891130957801291175126339714118543152341431929439452878777435538870570838292149215069518314960638458760198651186128564193817774766841792802699006596811823037313458387856112709764346175534807506715543762416935901974404474660643189109532414141681464162590419791106055211495681412155853316057262604550727270611811773549367949789797235089802537026700871742768126602640953063939381872966612982124548370508757375821501200102552254060822837953502107278649558956899993682593240688914028300229474995912409153528500210714702526644698809319569777024023864145984024504096048273646852925192634891098120736875187145376497151975608348411580451958794267667429740524278105687195983442610943304637422324009674970200768690693828924038087460221480117597444910017860242179111698042263884020060787249091614285962306258553560580791565670339399690672705389650572424942641236902285696187405423431653286634297062515372554753304124031331854903014522271782498055134760802695816199868798896665421871636678493143451863575967146467283345944112033209507038906175209504302871637320558997698121835047383613356446605927773079967098674959730597378025557900751857188468167800920060808936900282421246530040856861864812349027444196179777744031430650024840888265912972212044054907824443840638258429609326613992735210605296270420484900311474043913058449736748655073371253334500465193596399269602933555748532776900907306477193587247586931859048856726210875600782119119514350764118761844002240766331053779785103022467446779050491777375322838703540948973656175870056959826106318844891613567563397065347155792427656238575429528429733961588089986418420561045451216597673903989952706395882568880300308049288882079184550495972782207881780636787554103329365032361993032736823053396731343804523423891395945932968854122529774498275819238494162306637196091801378418240169161600047844551585722464085568598193115871670144186921032253673165276481903882939190616064685029208272792704128368817255432919177919305491261739457021009644969620624101865628846887711693423517995378946941032330480954590042410928682057947241203701826293877004804341827939232441414011667999492506825374355343926187608415191839841240777423141438282391946883497739067759217331661965176888833593460905481316721227902175148129681666498711986621003168530708079431442696014338146538440849977253726824653757453350866251987218831784313086657156510955160670325527327981593870582510698112512428222690321782184820249810266611763801222542932280344932714725829886628239051735088831667855188637688209121868473947914183449727071927812089945685364975180286635174290323600159336084606082749583865696370099129077746757099305830831552147070932427204920116646858285341537330652203960021838336571115941679158169183883848455313238619521969370538036526269479117205659462163873791520148258935760728285063402301033266498968560328521803535274655908161050743291416670749020392139957353553756437224059584229236480353238088198241533667439760849668105465161508592721149561306399279151002932034083050412372316312954754925834820496629602226944026270393569595277848347736448308676003985595410820193330175262321952450909762855919820784573994305960814103083299301857393022846508093169675293501029150642632634481762493217008798206116755241181776961919954301399906883000903537120868266990933226290872288941130991892105373519793161630736570512865099648871911087959659102751996853426275289260545629422655735072378100784264805136715959332783035374846173961556120749647934351269335473745341028095018068564888612167009673206520384587816108568251934142082041269764674440347085516635332054629345445791374269613960811600839096470172592151274988149008504648434654008016503840330014770300969842742139068771284523519215262869111486053697315964358951880686388188408324352755530049632611148784006569572830395304509682745326938071415584423835182582634710803079655947674011359986578074116031704894737152602508602051848839590124048847954755384011861758817486765783935004478956029805481287703544300272749560367162018030791847730507552656067226534177092425739715000658169805383894470941976433865104471964155317695100911700604759237360830070058907768447815499563716255451611202865646213842566735153885602619516958892352466688126514787010375079349377599448280813731605601112033807407566307493573209955384078238758846595653307885948801479484681214942101536631612627488656520316087522118839494309232337677457804388364910660560760191542465358836195914609534365417477844122936016118956335793506360867887662908685893757288387288535534360533365425601100848772438286915701164769394272065515229689651857378749903778871412719995304722863378386994202036252659228917706747579118394187656044685947699002108925648652134733718161057348333390090411204362853338085677687817202246921019741472159998164832569894019296236764025261429114966926229848602308055055185998303123685604786773545032178565306038683816020657368932612748145689390138667055855796712351011737392737877120627393290891495326889397488529386642092153924542978536299867979440962581870424327821240431884788638905316008608656989914354563253320332633468483443448808876099496856788278396707491367481469651620823805679302556417477301755124802127400458428460617403195152836915373217674266423168195452606313768861868046920738496710564835124987915405378715383937803979197617811579939242257798324582472664908291607601719886115956942579746861573623869711243599168304857518000940262053158721394193140466578125604559036379228377754007840410996253867454362393989662331421233903655780162911554257099924363622344073849564475810992073422752468743359702559496458076941755397708695576452972054652606675813285092099543964755312417375982190915864262653013019900995843678777490344121468302585095923172696101380582801555582163988860374593581961865956136095276519157476649137375212460828067775197582442985614087968793901142908206835313338037136645835520170473026447123576035895311854527633205406341791941730103437337229832098877299272529199345890997647251938201159916897068405584407099533233947614132914387566497718932980193044413454018893707252736043438612448798805152322259998917486574931434899094155279719390788889014013731059434345219685212286639332932416662187380879803214965925316927335224098039073574577549780668955845015595738536395249988059649337231770567462881985139105468163174176219687951091191096054099061264339880131350569957596942257236400343311022223986382464762262074952366313202833862585910411874416838028463733954007439587239101115661788598469184646058208428040588959794272112736214770078733282557955145407035586574541704789929993739452729800823635665751404868230673622079311014093950835677158509269030599291193758726968589517560518822919918983924458159030766965584567852276276145892088530012677754631756359868327591098398986295674258138975822006860311161816236097405725444270922680565232146097784230208111681540031089521512546864089538041864590982063541902787971915892259615318287512856392921749624486218023047088507786490611172817205829590101312577068558441062702293720242336347036718830962334732317748660671306843938761276294009821217632486290235352309687395146417590074640521789597700419571220064752472996442443686649782592318252663513053428738847505076519398727105157711864159363340783905578867388858070838899725445994523997132106196228545249569710219981368204939488369141245079257352343447991232898824935445846369853157457698016415400138446665586459853951695977244433813819025491181797174941580568557371566315927176255204669549883832724014339129090406764831586898360801253933887449587903636641862016816761579114672773825418530753278063535225547864035399798627348504877045127277197464869294489233083930968699438897978101607222635315235231987558152862996444086509407680908050604619802780956102850847257270393675924725842920256761393035746075487963137744133346546811199596444096172827862856413169139555037527168018401865119719043645608982017579333696436660868597504006973708632199008687023757463883985983451678928788032552110240088730622694916366378760975113693040827274839163733016575720385005521420056108067648000633115591538185958084366987668259170886886229405100989339011025497372904187814678017028451217470059562916957703122855659926056615228388582461295915901872994614199691327701213289250853202892973602433899497923997284678915120204116665451523698509812220531226125373695109411725320150610580060085002553373928736408666212145322997246692137970561540813240359193291047865778737728653535832625548432791344391711110674880191737862060854016685585979212988187672706122721936952876393535151691635745067694316177239333068377363644496959945216317422727472000020175404332867886089423702992948573007920695203772791484755130825740157993629165864897486649104591820352475995467162045797079657106080393707492753474991964577108768562178879801764790444264098123091685380167496185436205170486540596817859157544168166577089385909941937001590061631676509089110626147009861223155381296792799434449997550715763090916303567055452911158689423035358506213241312859793506679558316597675138804099373794478499241163301420492700028483104316690828220302319942117226363687336796985093241228285830488218231624087777873988512500886504251869766509299831985268335511215518853630612660174509858415938011088648579487521526032576729985740717300640295660808134971306304425668382270214675462459844502892254655402020349766829254006457045913283081790479980829847056565030885756336865241839670560375486042392986569445607249361948326094888717800113595979089073003795358854154885268570512570392823300595445066323420121824058262343599020421104849068413254348038689714408798476800612153291223390576969191486132569132925691232478272732953356065338065315382083777868556005181347385304408829560459482058060053528293631096265568672315357180835347308949242440339196267063761977746647557693265969750611975760134544283439816495148033416467525328148566195424220369718641954484754954139033157140471510545797759031437925449502396828539150900888775805497954336110781123416431827738930723108594285290267768011000478732328341581099942088665849852658478714632053431675165169116550435825101793277005629967001944270340046059810081301460452724821759901515876150977754785673111989804343724918257744790440428124444286509031997585119180024096243422349864226316058596194710354011709268483127657192221026994001752277459870134905529531640969233257261086800126311644160291770022172974304810338972096309425062390931007217957020306051674400943625420822128762965874729141678382084084852980771572190648043258615648179290895377579537667927188049094370524243720011354199125132971090868007846891427950332800539822584930250756287152402812076631150010020526025353246821422783561648422168705066903949339131642803545598538169253086650874541580988597135682388614601750254553450278016039633966790337162639785927239064719619507211592214208817445545482546752385853327216310531168112824197829622848277345766775027269127210233684136418355893750749619336309678757851018028768283627536087498453924612520547043960801522145920845335173302549911325493613533082607716696430304530226475032908596026186210190695742003921351221395417088599766365125873060242800388903582664151517658825910402247994506794569103540715135438740790668088605023593916301104941084651136556707453271728767763045648339239873728127821959421381838296304477321169858804913866527751697308191976009287651106858377415790757451057522421414695619370040573873266213645347574253070064629205535164331102341228759384484583198908724347713221629752274294450022525600888974980081947319807679326789377062663279760436967671040430213077718253682863622176059460644174326275356909445240362216838979058224136742584454011759457788556530702246037558736655828126627254103146166511181947068574699456924843218395600601824203179949730116291460879647480719858148352017053365036399318102125719516460997945992217127610136292361677434351101457395799690922622464349556636780285215499505286368981595797761565950349041732109663660735308831482952465314230989543453751220625701825893774447090452507519030324115324753939847493380455720757047654753494284634191147307225128317194241099718638780547575159507728701593579051230668091263441725192888766554932877433658237309146963979525715203020094288634900284546521443567206612221562388897361667300325017766717157013281603694955539120581550757438395925823884899180632122757401834723428367172469972016455340343618025355717654844306495221255449409051390983292085724766301901085267449284933125253606556175545415287715201473705294773501538441974246906574034057035483511190160010217665754874148928714476452599262416648272630089505830616270695054677129151440427777251791366129840635766560379861234444673604406990691424692810129394088852784001489872162662418670144536343257282217265819282275606949315948409437915126380648467885341730369146685749417559116010749519490645398707503765952960105113292041072233685685317829949633248273185406790841035127811798924445535555704362167700272254127834943265076489106596003631691136082005083718659445098554279706463207988122388213237424644224899823041816509604939456712744184698806609727721793911793675744630719634923250073296241012331345600418290639499037759559280676689502429022301208930767926471058403266826948458149985581725099732583451329550216903234855182594609019256087520658247208634417652162079846542257954498968760783049920510581558197863683349654370537386159819161908901124956727686883336214787001834962909210135092045019090967519388082431963218364783659768115979573963440155693293063768116684691950718198162414949085451719173767259554226016258608652431231454988754486005514489909063637634581797267251984175961594497214509095974679879142471597105909193574742554286074006808744350355255635801308470373862289556255534498551623358251641059277509342687933289740816236488143518382867789723624492649845887997019912605413485867746556754155017488769435902939711851625308007504683132516410386001335609028718635619535201676337785007274569429322433478832779507955778402056296108641218982244344338553563298872749536434405244131968281690894133587425046877963228729103878315737256306995839778571726526767221115373358393314087033355475050527331883221212295099152988093250859402581181162146808914046522104397686572040303142908366155207248004323421601754210986818521621321127258298856410826411326660855121689388262748442719642789636705000913775741756340001062105460101188504530789804624400744769769099021468102629865326704470021212051916791253274811945669016171965118739412486948341095381035878135251504322322399072805953470116592348260426243364550546792532472698822720928295490566735320591307484824839200569104907259586268337527361824677732136026703400937641345620795465818812302905354005580153932908788868762383583491635712533503884970243113095112569660708297181364673916405098062379885558251145381135293905963197377593721658030379357163730326707491867026539038481670883988481501653960029984621902376441543303654316128093228337383628675705267431585186101114560101006449956949761328148200761706509645121301861680910596517617097311620708882467734917182077727049748150151660910100848129137755209252774781953981148381997686384530119874417850434226006918133488281134605103097975259578390946683638357537638669783003878878780369980830224496587056939576258892401500636497398650610602814192579087531415631317585429638523024188774590010636797597338426001895793771742594453588704032934760675105475713982393885379332270997095543621174871466482943016153664067727721635148858486718427950860649446218795306885608951310313981293406128637959901476309670472471971901674952245002622531866491537440963191506038946754558874109294079979402392939670617119241595001905772202014072822760312243266499739186309198672398572514780532875045426278567379011478457387952271248984230632569136208331831553241789340352444228421598865958481069316773652510149313770114247916829691784280237517979640818778182890010065251070609347028618279705876616070659194648456404639738359511295808000513924807171637888661507723311477225228363898304469381434036747807468160609974202499794781809010148238934714746270660386530846886781064455119833267639338717443066536141676514503558447456955344165514943995045072996752908189859008307613334352566717588778276042481518174376628804360844781516770923849723764490782467915748144415315608636078917948175395250983023235444507519149204322557375291513622736693294954339778870709727584698812238710096469281109254321980567506403196530624120012083386578443106315808030316602102817467216258605986566134817106864711127571812248865240647396244981002372953051684272677041187174898478707761020328643701176568542957003803166879326353946009324450751761442744948084085225550497114682844803224053204413429729595942345337580172201286971343481434521838281971533119951149481780722594297718081147409006655723937538883158187399040438846999401153125829910679876720149657823203160719231865246116784537966368924137699437023535849981713016413311462466296221627337191849010667764485435659477152267847693622399988279564812354186414829686905648648873906890513801114095744527227826456811466121677693644211181473873815700059470638212691911694652544879991134204275977646319741029285430116662702745358104618949887336933899232089305271798988823797153411057719812263778964620229011840942530957030973092939594042791457113695364270929147752416139709045194142876747121257916997924536844239080837740092766307317555083791632313009152808551669837508613195955732915540246254318875746624406816777453432544976977248442814319858114685521227723632058587920927972214837404332507014505572973711364519673948157768325435206414020602744990000390801039985538401691473075626183086377610234771170888848932493266270157280775713142744998766306507591729765270415436983762568971693960847980299246302440881286444290926552364076185741336040743831256965760625642075059608598559141524706442577936118615965792305242981186099360883373509780980905285890128648330625381006814784292030795356031800620948551828126408453579371671219809494086001846884082791519062236615902159077418983445305560976916735826180128334724361643901137574900784282197783223044766243729314197868220718254618360371319930446935427624946205219886272595540421716350019075788899326962254134087822582574573600654435119257412343579620084123902097304723824551217139750438832933225453833594318224760845605340214751966673420450607437304463209315392904755202627542405712159913577584819072929691752620044584055327629084981525018957977531708273127537551022091183351411375210902036036812449896192416444206237666380355888800894219891990154420150893047725919490819478500052555373193856437160532289067453661142108636995838730012554496347910823852932393262628614191908553546331828119740101084027620866486843436753034146505032054083791983882614576982673881643085592510922647071607880479507637853791607436353523370459297384343167647137541792440583937765606682889104345945127171885279840857361150874682277458632252130114266565451796491894723202891256602561245872956905201546669556707590013363405347138599768694681798567543016208316630652923694444189800022771681411291688805930655798017453172198151194369567304854709012627724901554235656678728708520919719777582950947514668034721468973943754823491426385374259226608634364576953312671909510424669636754154609421694048824018131100122915677635474917211380112235500563675078643442203297237099245231490122355683841870680631142417793454092606016117250305388598828979057830415013055098885414620932134645905225866504932463475332003105159597370904962597905841781932593181312529817551079939459410293397015708745279268136368667840579564573787455729104593637377477135431073028579266371249364496593146317718178797602188694872465437496015957124835223832424967274053561357573304938543372327179281913768424981512601931614788255747469684457813056048431107768253404218943123773203856753495357802150853332605585301351313724223488137612861642964705496593933954313960690095602399924249790632483395825662800415172230677314319460060318801841752659044951342604310501333043890864276007037785256066789015117215351848624831567695012959834615264975166900904815020895864415935753854702545897922536235330983272556862018373662547317824546564393712503252062537028478889125184813014934249988390141317663235637381095949328736365738098970993790443942810147999091570570494203893092277609302035836092449218572019876980145002415827528136270994900572833739329366709061256554759368111007623708601175094994975904792858275348431216706344124117459742457438859186025605081339885643634738305403265023711841157363822164784134010977662393795901381381332479818973705033580936198959195771049559381699651597237445869498580231112772188072250418908049035890211323133379546392328084592655927061605156002148996310702652347217042662279842883010197932441542481108123567643921457586079909966817970416310313205716926742332084710639131942197338379849626792256025498479728176168075582322862220361077857668208214798266608746095359186696758531459233563423774683132259436494347668335061231045156214595789880544802458584657686853824624250465469208474581651368950208749150683991027112387582148588354428137564248239544724200997142577314430962717295622039670330345286932136637781323805536625601749874693787335095038620708824813423871235928688753350223273792181291689954502668277939574487233283579474821977928007677539901690706557336769836061019472582608384588170249990673845977515004832517112015909588107947192483610145772973500019742270607287986087001176616469527738365657173694741225707541336383376076701684362364795640519447314424462463260723442145667352219284068193668363426298610843070803073792137198814424384559292025334897589404359111586344702269630254822648448704437947465657825204649612938690980952881918999646565575927213864712299337200783350165800642704145820617629150920609422501232977096792005342916775780294400220408807718361396966032853139124698788549675503996818236733775337251392355885694824391406595580837497106382706339297444578665381760614892398541034615643073086428669213125828753602705362006322890826348137446606839091314751047217504332396711955349888862405050366806177244460613547478826664523644422626180017923889818633091265433637269564170969938227256071643545429603417030567213957928574600387758262532458357251849479594121499934552706322449036100864446820365071586718050753745424773530290763661644780231148524794477449965421008756698559943360262114162324346774249295599922286764412205824270561649586157542240448563528864373605591404347242556703554964199331140051099417964817565226095051906043858111007556431526525588668616816124417657079322933310273158431199210502440791181219526539869570248692387747174482290022089488133590014055725951640012415014425085308037790898439787670108825258035925768688296404822612282212900310485116883806788673794827149697531855080792631042236856451111057883260070267416974303260321955981855942819511177489301060781714995140364605051444796825918763354198481124936489620313930192362224217363230953543404758558411363990207429789024045844715784304417503759142653130777641105458519989184191766135146837730181095974879456389297423726547926540277110645328764830443959496266012451168722315164437669775986535299846954719327134492831155392710374979283643702187235251037302778881936511454936891365167242014843635432886708364242273102162330299697677269403504301376691701711710573622067267892238399955390003252251854018817654698310096150284998485145248404890103075396895468505380754193954186474914148978129025798549652318536350192844583649912420602997466246025224274629451920131842108664825993940311145626480843736685937029070158225717212519362608782797873808156097469172572480166204166035248977786434545225267822108549904129629315513977316074917584053799901090332117366649226834790199539123877638822121822427896205703975860145997260829755596356196090094742306031657451140570292438820160175493543266124797993580635985338130255881630156361265280617618756555361984240383708339889415295763644601811589822116260682068879562970349822681641387875860797200330743801977357117022287339452703405508187694113494183935146329396665918915252413262506383820301672481029582217580874275934325020016313935777656846875893442210433371441301325001778269632776714512247217308362688811904869459765231541889683055383138417283556149119418646468866540152935126372763046528638617820590662339009889105657998145184677266856609916457107386229683637870487108823652048153392288588951907864981488589278129810532854357634611502968595333434286440252959872214296407803507185930645864114588922312750137712193742942400046768918624903239830934599860532906901272447838490775730770246472803315195344547712436086052812536779050151547725076874919527373957884569565064255876710618464918218970383290257545384066950939381338818709449209012671411539098521167862065116744583518410353438261181172330772330714333870405337593430711919781573726990267944692041725066477081043581201246231572574981955444297156963215388647255352809245795064359015548727809044622913702340923826226507416812460813838328479327358380546617010067280386126344216316214413477135005084259975538980925171514219841629732665842444743741777785121669695359010560176393373856515729737288277401606444618332179459676518940644032644097513073580543812876176895817776412873245958867650261547833461025318065625573355909832081359300926446627118725611613311469753101606202359344621710471380402306520784903060123910641237325736431760079759176274204589382013794199858225929433632907094664843944668289401321241377227919205122328995635650277035294021694692317759726234737447804313950377330206571952508343698384598374599147455401468499898989203454245400539273195657746925507655139415791833278009824784516840373238811422426274740485979262589731146886846741385479726956929877572270519573776180747417846285800917746482957782807031144205259592685377325269417873735916278192286208802324594350994749734540122134720540777346342582092053397022911704855256036788534967854082142465935329163804390059605436120758411333583291889960933914300082641085178477673808841974292033726850983755016810013504256893591971534162956984295574485462737408460022560663448996186551847735520569594479575625063587366585331380785581366648725755372320383696101015066206361044854797953717948620192333842791064122690610161543367154166560530396498790095628664334794693528899652836286217365271080631605035583003504310620195942109091337563403392087188465019495176117117115530632326941342801391417358798066848523647322481979390848850045993460523352749524830829341993860017367200734722279339880383044686915390083585846905234847166615263238412640140899810354673789853024872166681707847218650299244240055638223333021903925308810047386669399463423270642469300336819926354651286873158963624347180520162179750701286249648281594166951287556710546168529651911416541166795621475373391518638464550142198252576229525476201529101316785986047836470810854566296673915947673874400334667307466770697481247649688049129770531451199341532539757954783383850734895154254418720395986364900287694307453836453141194380679929715153584346935183079012667819132464112963901267062604899237422855223391930140851591873612240084704183486206163714622858031879878063522041302210814050438754358678744870103633030909956510319252417344873147536296579412573252563059077768274626511577625555067411204957464656816668947427596789846518235727450386191361005346900269287540211076898998454924240609746981153953991916654186758826530143750715533873051370287546910830672429738864803592458725093942573962134792478742461073125978108910712186619965344157289296837104758900600622357136485601043668615550059959899833982163400022399435465756002350733056682098699090609564079705224615750602324586828364895703870803144854524126190347178216272015549225550696310629374657011898184747927287824339058770413564525059269005055799427252527590897285036913659718792628281059451023173789789249542012296406013708419623488706492015792287183756034245206859548796679595485878730001831196429353341299617848461488668279217447910232568071300476039932116201231166801177808967433894898835003407764793050719839178683212591183181084740903899145225870406749898728696025970619853678321528120053962452447443773213823431799882488080549660787590003082708335390157266382790940879925675714359122823837526780797046650964875886056951744442681645222546498406204966044528140668273634642066310604555709299592972888074463413782958080891142701230900598018008513052038810568385548278589849430432585313975741282973246533196946655401011054054551364345164783417146458455178369982609109935430384279202087322690840112828145792283193053864695282310002790184517960866588322633834631507010198858430018082034555381000762500283465485681561614332416910905082764001804089778687126529954647954927001201210755030582721107500708580538983850070946317712153816537612755018319954522245006443605226475321538272931637563130303990580604168193297660283034297753533315426084141175519303438888383836888891321405492927184885809178440282215807535941249356860846506610020864696097163226648625011690585840735681458293159289992143073660568071259982741892910097257646692648634977214917004664902034178667809761998953030555196956651342360411465969250676806558005028284788241317586833098233280575131310806658303375886536230281709181356570276646097577463715521344617484083374864542541717446744607288104424056992752367559096636765389643411798551182743480002225635176052648753396504863040708074505685224653976398278739075016287886541092644318418376072124927122019336081455410638305423182468156480447294191337993139226449668591560475301644207465162994167935426565830513292196044135546807788554904347746033158944974599224256140637196404599718940798150360723276404303504630021354348407803136494938689573669963754571567608802766908140355243413753373445399931253809554364222642775865562534164657934825221317523922541344560619621032551112768490573572717150900258703358456728513100763817776458144969744831013349073675510908685433137641143017317781501621202489566315791336776668667539255715419696141389350174509138321385367049335120746570650207932753665126875617011804783761741484255330203837886719982055316911798273257419591844923423905306847471455191348760838720139474659053031354338897929430743500773491518885503699033636304270823376333177146834113451406488921365399958741138504983818590307976721122315004315742005214579670546336878476469350087796446959723310122098224553152981477408087361496029827561503518437772469862139447337744250781818455412479937948729086602252070446776547977618771400817651936260070503810761151986729386916610182840544280980723282832030639043833317677216971500082926543503360364489458402282245588326782001049559557757521318924794104383834487407477540457897704538752289363744251611076038454439756623916214201817831861161227371661877872883221451871323460876861300851011377381488756011045290977739195768944848025313230789132838607304731072403617804320224978331022918460907967796660416071701308765327267663914097285972738214463978577293412793787781485118844369122061895208498437710633154939033507154106159997911254453974572958209597914852930633873265602112187134539687518675400693129219003522794554915084733018947218488407739230847260837169004961524181274777402977116511814904604288658757731985747573586372246797632893884093726161074832252332648532921867237822345647650274959838744842767002723568311373477895812989161179682995775015551749992051443693336172767245459875912529873948024591893591791275319185259065759938619195051703676834248758863123273288680207203518166559524087058279041061078743253390619375997845060171606245528661589184228561012795166618615416043624469301631908162784604207018658437608034300843351385611818378225155789347287177327295648807031303312596949542303471882062453119726163274427128014835159885537278715702268229710741706765448787997298117413301118641475346569480816487775206612209070488646594670221195320417574297752767296061830521008959683604379964375025423387487094226944442537815154490929936927980153775809212548854320520574135846527469735533681617979546847589900409207114858928292861895571830716948212525108359564923409453174496222797595583834992227854370475074390868008341117464999403684593275589165394760084243656305607979808480860523921942461536642315967074560309165377229161931178613342145297346520216276618762252750701289272610967858405543843710583436762287709905171417188355060363552746027758139877652830443828572896018274546134642394630597343318826854113971238056390885963627751381459130568127260048518569548080145132432157096658562168281953292364229499166426528159945541496195108248516992572269640704749627123517960561967987979006993833977484053898962513837532711213084648849409341957526613851550183601866466699728869616282035345111158737496058798561450231297962165200001541619281768722874447039452675232471436021024165710581462169069548215314334240819046623863957384543576196596341138376723335312787433180669079258199634506179273101244727135118362099663242231215744127858256831993596293854054913549614405329749932455977573060827097201484841580655110225554954286264913938240477679921481931638161303855194828217159359894117118952901478865945319594362390161491284211532035578720812375021336421105998558928558406540648768256712643859971596288563550053835875836050095659980939514575635062732025693758548433235492547696849002095955384386659181024661946529818970891051394171971433342459184797121685169764351283524420000067029072883381988976813125132217184339160469593288481535511361705120270485731877012621330990435021482288284568247724808968380226962950266185990017357223088896113491352021373932825662536389598509952480167342112917524725062285102138150219085461308573289341417181702401209535653966595164269076169208325464447583777151791467897013490958743011514901824919363414095178211198139618367646363907543895793323302010392317668090165007585188779869143136812716803755365421977679551068804515895469828429395766987739721762173562639184289290502994280468976195040894153003630014683049050076532082566106402317515822264862493050985449712001251757526633357490914288683191908953299738674010826905356339681807490960343110844246327300286885803028324493110819723868085342051198294292197728227377364661750422153309014726746396151691498106576107669775296693670975172567397338383091311271081082882332985794822081918554319084236528387952616419807307937417149694022493171422459000769092311153809985486013040587703711687199284464231048291488465116830563598318776042496511671431215848815528811700812132865790657779101790435342497919246083061205761167709120136436359499025504052045281086472697224543046410613283525191384572137358810020650548660835111004301883889307888266960912570616646670884817120403046659265405731618677031349671406969139255637659795276061051600387329457835838393093810116370653158660585378842957430728889029879240524582657959626044690061429650365613445159479161380799592545831594129370746519595159292631030794786620207730044118702268302727285255981041502458462086003265135345815259721996863260596718368376032232069472140207319855765709532713833410244574629982087465770772846184275467924583215074134769244370835507099700520946007063817900840099562176150170737964799834211011029024374961159453673048828282650763881612976729616432799580147282592225295645827906722453904049914518015520943239504003658886521373588738073619594286778149281212593479798014661157860997786455997919017370775877036096500715111394191315759595876603800209317980788852588176020137176040296967168741408444623843009006319273951853368762288494126049192495461868131280671651949596596396437966661968011712784229978790807862036836709556758757405647435012135498815141750967521780087825246792315234994365726639887435231233242489265440475059326912843036087155549618777341892942233899739469284865500869747176822614401665476879691677950092110548207943005626429590962045978676191989692987262748492648045953230736008539138548773111683184861252586712351051265063288692863968177818142508634766290895498289066798157614575147452507559028308585403363559775020774875111768924511190259800404291149934061357868362736807645079227541860079373742301537739861050354310851557237312529804390119154066061805449013468166719818189265699066259358143176810389252958508854384242984493050521527851479372866396310768355700848884128342690346708639812553471015893716818588055432832704915088162149560997851944136747665160206648312862336826152850926976154450206475452953186550551949507230783544681900938449522099256344491802646585351532593513472442359100219456055638014757590894481868613869331546289000414299351412064586209413337972381279371833785279412257434467805737016742030949022091184973005486863242588993226340087018371945434157783521184061488765323640023138088525460889513997068704718152221097515298936710879962284063106967162157445710600152867265883169365511284438538583651964850866282282850398324547662286259789148732762915951046713544889050306227121994520515428471748981904511130750774553390097173293740398357913737388994661622157603752963207749166335056885533762628169376247970823527001380766225560408874208616453562250172429793374340266410914484992334228697355779702535173431031537027609807652074989095808611167980676868660390849066777770086920641791294049038076432993325258602971687759784499366631156402800976633872714593439413671755243824451304922612799828219220229018397984832130983820654421392392617161883504301587186408415960665553503048728719846168489529090111365889686738395228165969693036057698467830914354436439907370357045555322079347037179141541039709496138178071963652575993272781040056320343811095026487004373279672384145120564865494139257352761485591189807080703783009674894768496599776090254631787582868831011659748906707264484163592996404437859663024120830658126023875741732236640587570825951511131928436102241778826598875011335912354072635725004188770571018335285132405652145009955331949851602950097065730994659096383384896348190662598943771464430666381321819974793065690630490105306639048291527201950758138809842717258765298388167151318772074906888170798524868326376530360206308402293109290750805497095754125887428964357552337900475780619108054355191941892342563975338759174236829528829512745135905551371023072301752885845148544792607092526520235241258015730802707244836240074427867284493352033011137518483809867569478424699422537396972730066298444665702403960826922331286336381747069487690023347864580350405507823717520900517994166167262400224504730690819347607635448827662644368175943617918740722652564511810823484408243677207207526595716489774087359791020941651319979404613414577724481370171914370416959718312171875145049651325157145658463622134721730191727615418395131685795650788398821009960657094611826022970530521881967696764421582625699620989950269111959738373847222220434243957473979914154266514154535734199478083503745581888824250175157827433837745590985717202221401926087937360428335411412654190030991380018734896859014684704528739726784231768015972737723610388394944144172632674139151201440524111992570103240546463947667118409443847520705800765836456939014694091774761422559610015699045425487506207463947431658633648241265208626190947342996969782944161061331092757763422907066256637146205923962919077971101304660172496749964633542355847056850032444582895308230021144362466730548293525191521537053659721183409572907910336690263821294564775186061763978095603531234972815587975393609781341365074192694116546409679931313902405155224917768206518616692207764204068470403163593823613357927312420251224439431983858028411867673892386838703780207491558809173847978575764003802132356699097808655416901485361244679537682584477717667926317280410975285666662556002664474763213427589763281840879685254527040137145135417145957270167569054069261888381504128437021320966691161848840024167325902892958809049002445777713034038073506946965244057456951450784290383262199365759595417994101519225748676192160159682948380860263375848588713059345057294238139898229609148892206206980836284978348889028847761486909919364081955880310542293678104113045208044557768662942942879537503814560300113476493891235422390192629457679345514020335583428422674907300685838813021677093313843853691345409436234666064908524901137180725124284341347598276643281023987694025124562773876408719329708714715898676375492632211359371686831997354476841064331954536135245894413495983815120156090846033641956887365720526921440088607729256726303876667630681239161720823888840444397726101479135706237206986032309529740783783255456418638599555557393102838799096386952084259313238981930708935355244477654979324789974806667256081968622364561456328880839192082082474072470881137544231229457364952560405287296577747548760167626277344362360368218991022211236872941848701653397703804814475519309227203970202896056387255552190115981548258553757522155590829104469843006728800644674172270119285995777870079354018754191519796853749008360055960751465798658227074396290127581876605077579193445301926142412686443631365508321126042963969735077329044442350391302056697167613884133941784067193901711389105241713416980025084321124951436802569440508233409324326822646315153278413114775941543333333823787704883244892267827539546620386966154086387285408279579555232781974903522011825479659162953851623789049234171273885535290191539836552675744975016064067443550438368001064747643316809418505309901626291743929642336578671351125703203543632742551728608593877401585184378014675198977936268447756047532555150478274170042005754346101522521187414799460537744192574291920569986213625949626850282912423802040998835030692618302895142392670113571037107694887216651540516814007818384298662315309523577228624422773317479083652718658111533097199398556747751513948987616678206555160012153457989017384476665120642010183730980104479211029266610313836529239284193866535486206876363731291355811169381748535950588148881717655849746103228236561066437382090472159883036743780363800593077630449148743862379517046267353282616308379773712331185488574067688206301451774733958845205991878695200863559771990040536848682948230510312220789392878965110374741071928559695128161378186306946696755851248092888102850876823339686559134144928432534910038557257927360139058392107248110828809142535554898976878920628266378025237247482185983336909071393935626919919539967521507641029347122946862200198150974988831817099067928874477612267229345633175387627301197289771730199075533972549185634532213030614216219172808872781897432729929686474462726978955797170507419220457618542971080256389893256036378281593447405087257560491848493688576322792063984797511064508345691432552175133620381300687828478028113916119922750744515840358661156609923791582945142772334000897555032167332468565430387258221575119321509378111038879778312380222943230033243713824230629285941869197964751299125286286704644719388868589203404980302255209633841575100126659443620140957050957324399798575790763735842885374340883374981852896357459864838891707052063517457116632821329192642865262073933006777621946280301973497258101054862394286857326177799891777605161934739193769050167032002986429765335712249874057667408235442984542806917589830906438077321183679179547258433806133787219815434014513367368633865079504831287196835160387115946066492115061094549095255688807035298778246490121912681134855118810926842197500315529712649543823808005766469223065650771755977137402096747790621020759316258443034523475268419731445876848991873447097031830508520962907462327502102102100576612473730811960564793391083078695936510112227386258004306146973870353529110629026107833113353300435467677992768039500818949014059627890815400110331587049517205741258739781162014342173498857691741265654110481349104061057642225428838917013352736594486677567189309594667672212785343374995984485462072880109312001915398966941785953058962458474469421156965498594594959335927081407521041121166673739033282691599866616203679252630334880498897667029000075794209899001917512896114405403514462423194811690502803021576630944396772370082468629771295574790071726786068849655248760301499004921863475545108434660967010129787929738831759133296989340001474947652759592880858043087508518910296526222423522228063098985331839032943269706560551323803785695102772137457549676307469524887560648235319666284852330692648248153182238189708983676737075591417051934945855822113010813941387389131898867773276568627806413603884679215923852585043051883310515668670682733672411547372120334968056067265331732299053545622690803497932674913784585529013512474102657948801924408448025909810015412337936637299762229630127520094964252431065710934118826974436937045938862880602354742052020446837374819647976792342239853407305975201663033115962560990102339686911234251838880901112293979718906385801503172944306824664692490524306511705451239975580186466909930107052336464261372036337651077359275450200530569881160249463018028797213811522243646918512941968865535695833089465290868122648724837382239023325026041706944009975217670099786595284156557112641424506500995724462641044755017827370994762106851664678579740605441917345683660338836147475372255662199574097729192442048706411705215937990599984156560667513140812636904235219059043453195870297063403116530391038215173069924561044629730686266792839064276255363586137127233502190974686258894390743909631018971432988493309896699644831172104172252172322471682565400245797944957840158296066896492410773843015750367851984498613003115523887921456542484279892522330562216205400078889140963128001326120289978918732102004727412754718987148092890238564692797623038806707848969630335665232568512373921421517740655466906456557578807909674869716306664574226609188424330361692575356079623307329072356857574679620329323331730047839672807333717885962942585113868757419256339840013395749946128123630972554415666894066259865110413283662621792473723812100295574728923809606234583292142380450718998478192610523396374423587661567406630015351791842082258724980338144333438176974467333380494093587242087435850130303527395529983059903364516405283073611001030285950088711329201980459372538940844336100846934975617635467629919400185802135672069005814350355124339970124940412169750897281320327730342089618583265115363245527273667865988173378475387971575856164455794666234282415308737443939498027683154822440401887997127022443210557868816207228615781366973543230597676125439256078601590236571181429406786628854338188885936009947570547663761962597267477151705579962895533798660779273609630840640930951600368940439457937351373194187649206285385849277725599416649676335868064956925224647318792709183635697726502360144562650285088290117607870507854726700823098779331692654093984023367965424296058466041932513794781114945410531908436288917085322082969272861771584308022986560164467641055370802899023506470313324462749453637891083664748778422117056384100993855041788740085620039242834904782203857693230792326315874073325724761276253578869727959156548523004616909720584417297345025751841113669732826170998388795495805050656084461761944268262885079405226382981980975532660325429766915045666578249628969797239393547196316782729889424581293246804662063332350869917131727608818298451510790665756983689734463522892280138015164485831495120781750457262841566488084354437138739718443695883300349367807029045279101768669249998609592627585384649563306171327992695425355608613448915401713381135559299299871136712362092276168075425487214741460975294200225619896754865694027577320592942714691666434888059340624846382592436513710447468836101488382495461814994985836282618031090793354584581024154186066131438666249373763705723005658245507872189571166696324183014372446450106390045487851298405713053285632412186673063442798120063760113216324167672927711713704492999883442281480347221525686019892705298924035847882205676836328069349145728412215795696019309572369798125245925510874097054012442686026865648747200078089902387927059038795393896179044703299808057689164005498083569691654413698976799809748740033911202238547288971858241562741440840641693503931422239982865196393913056112889832542258475465277788638685628117039565350745438146118123183662463898724341559603367159146828616933031352088727557310163790709107734822638100511384470371945716237158116408723521180534723558036292208956527839626661905394050636988266908298024451478431272375263866831666358129575255946078160318520678729022971457933396142646614227410784854363444197331400937818173998610738612075285093583756995533889607359546343205097597946411365442657008202354037886696963864877288122354847269419898420478060367201629797283028662980773207888068687565225762976689356144696371620243729393318038402059689547150404415205668982830916453164402425019908882651224972460602050247093088310683746309626253879605660813200699081306118148975391447639468484351879868209059798084879144232761575091653293920650554410615383200356608508323518671600229937728561122724143190911184064483570140365404739666608799783262855633515641207194457262189137072689434843128926017145383708814744072827608505569341866915300314975322265361580136239127079612325594254460408799171967774968637383587659406800280146065051029407744660171779245371818138419759384713895859489649582904984641881812679861035501931038958367297837351105543192884366267903913358397500087046826724497117261629223396600445279698685825182127712583967135327963890146760977750544247286923359299559339920517104302713448405196670314071718041738454953063130283141646621276832688923229106304700321867462551894950103181217916240653166689954941410214660747776776118111828358820665196731440481982297147625830160709394401994365998610209749496944500983420206119980412684029630033971734172741199310683876366562587024027817381220799360243523447360871820134252718301986344226124970762282485204883682223944091607469708445397573007100512587484651276939973324007067250434048089373049010864411397474222185293138271743002807069540387524254910942691334239291791097423417612500497169728692985981673418494714026372554561350105116661580946429810250031601417822159204371075557703046741756557447750078943904006512726037236635682325091966448029869983530491670575457221598262656552065604793583270921219832252427714871131158251896822474568254332904767838764166733019485869223587864216532645726374818608092638946690692349533316496835052972416662751854595186230014340147124194494685251590620281282302618897165191102959254843504335626756540593801095177014703138569298049433237170461757151187413455982118796012175849748783719821859965364107662750463615433690046711684425660215777845638817318274014723052771649243376556000964367895493756298754498496182264054968441224701309693920298685614645226938470077223545934752887197823288001687840231874519889092683465965691079019668237234901550947287032851150952153190074336404320236441930208388800482734386954194201117765427257685448570525782640007027059852073341587690078558139329101267164909489107636485668976716370819518222094567909495194848208062025930240035068899381545374253335670111122527012848472818499682125246107651467927329818811218066159207727605977304825827223593786176410158908644311901009535044326028904322738400440443532478209902313125290708604387055863085611548908484810925283467026485303596585897080070889450733240860512767520730486024267418565814108315700524684278561211137326920524812183835344493938711399074609536669795854457581510551822830322496212157234889510305720093803867344965542681932183861490317989318994786727423187166518652855417048641217624150385895982094514083963658402343323629848313143026485121356720328552045864380343899798713368798297765508858167615984251624847973573338760105231630127547036513709023509206027080066005204435441852491166476016153448132670664245825699476188623892998087532447013029440778797022986578856608158384545981329769821108084709368724498850253807916373013680992822558473733510797624761328241965413611320658751317111834569930759132298724073165694890215489977544934619206700925328121252476308388823458268717295983340567915772082026228386663690547970813520152385214624558961000227088857323556405366298104675427642699817611027423712903769531097917292638869055679718539167299314833316807411308566853714828107618617000407640051302007834100561509785679274469006010625785505665854022377563740502243013255361369844815010988777048449963750579503762173388198445243039436097907741732678580877413316078561140433270651468829047813713625649626979689589028705450040316690095587058201314100971340930021751376515585875093906353649241421468257279825517706558824880014760479738773022996678678757746809332495696054517126990230064655153966379811185172362467667480270696739332619866587589761611480455744297666193837659022933926265928854460896108419639601012096105424476418070006341306337020398197002586423744540519980497972326335223859448462617582644280425400219748971401824352493449479491586553857685905046313420706837187965813827497195037194449523270056858275299384411068203895565189682112640624190404182088729309595785310624860800386000198432581471656753332159522313609326807908867174749153186866429600040506171394944567628533265663067594303355185763427939327724783588829971986006803615279813998876719450358152080754757784580903694332851919337888783574275052379298081669824771042853760523837385564083120576046773907128518168228770591855779349663799063141162255385458839605912263759046388679011515301399479373924204900350772547269115098667485323140686190977304857474696935975220068695930042416655151682986889278561737579292465274592579979588519726854819383147436053803184040877104700038256024418406305417241396658655823182604373161799546474488594953397575532024278805733630716284967568279485782908670406413665953533825174170002373538753582608502995190197356000969573576713525784128075571724584610557156491125198281656779251035297110136876624739769089833256403129189558694006571186533996957307490410821128997258661992457027397747457930964290479175645807360190872758145390021740369326379116432579750356354354499166053642696496389777719483366617199133973341631473186965149279121942437004149749596189345237454998332015638739346269819058064522445438315064557908493749449594918796878158244427411673607961745867949034604532566666334196300281929481035895316644432092319584325921362643998955221470718557102032569378879665042036717475426898041005144367950999860759022560120445796831705515376296874557946817337323910745053217972615623584516830516105981009375824083700732251459706204144285383623634077716094036595132494967698469555055718601520847717998023336074072309734030984323975288093749599872012115786409997245886858751146152888432111273635543631491976583893011748659427940699469177315504768540180527434218697235125881700411685063972926912076226239927679888767804395592674475390289664479267106655223613636310926368779585297251440766958740384461627509745935287748565593842512173384946940896925829594049405429979936966069181594997238491779151842010358144351454609380477561894329033402141064691084519345729015705539924717450485968617498766573369572110486954644537684332709649635544737739147117911473531520561191139671752931498853017271234265528634598747450069927538210000979307089622529741257701004567431013739533510631444972014557153944071361303481835020411663637090119535621175578321777280651398152999222474469790975542931519177950021945855533401874468860632693431332675547273702570083821865160188903478797320758485883468377546610318635910000993691868995205549880483542329740310171659497978995968279773116087647082687433702219720378428390883948552406234626854759169901720870387373878232473499062455508751544474470394435883848857141322319499867158427085260887658388238026182021512629300317297537232586233142071118984088499633874219405206648433771661023371684045474884490845120048650283545516541606555762299262170661069051341108806277772631179985382367331991650382816504701850584100411990079381494216338416975097040497091384937146544315442337361229901870643121305776009423707863939928453208310642306606213790905446686755839730073985336186890007131415291665518513486992584888441383966439376089189833031561410750979342081232687441565102954845696871130107727475851025783969745452228966726989283770949577380368763543774664778002429239253933960824755552880466158352172681808705803552207854303297394784747658595068850024323799513774798505864489478111298719924773303541240441720463363429899907943996128137654215845732206099228577535851887202440089437407210727629884029140103191002614792399657672968526373817860611507087822884685051329410373570823036367425386266843987423259715724835790003523103056188377985237944540085967561085989948692863026764346712704091879751993828929310452520716225828453521951812238302493173324765635439335618286305093113410972930827233901739499850243888300659583599816610120906364251771021705741421148071867401999389939790314609645032945665295563182863883799348682893196542884408274665298088579065707458203553898654258110537874755195211507631206544677783079708780519434138180374635788729885589840223031040323245462112638263100059217245747923243955699114019765973782830076360203487726278619689865391052034981108401268268343314793027414610784642355835631261473374355606185157845186325087195723805976827262777077877406174603173136628873872797848750407459634039786220410666898959211183961125723694836270825778121658230418104447800811572674723046263429191109347117133290747738833977112652822606436137047394758702338950211523299380840943616205293704691082683957761584553751693024469724957473095891636101424840404828282915839905071765602491137901587275240087880407481383455485747230739970343589521035991059237079903803574920751312545601757808454523582865885547945349216202785036989038164051091892768981892607946315291696923472197675477158232937908714335258186143804165030503779038682417028957487389941166922641537452440138913790454313095245198333856490556085214657426047333842532718518245066966974732800820283791154367021931427357852777206682320599726744872944516255952430367382992798582630012478802084080246103186560301987443095435758713218391092290039533160580044037478252433631946117496076310471077252901785800243898468385834304883773633753224118811233102501817199155860611892993181600620640000494810468010266939284312563935374925225766388539580686792909610019306759427189392203474139133967557027501785059935001357363377901680034145201186376037624669964143595377186580144014306298435267845670319837575176242514978531964326166549577336403183655023379883602784270637547043383989415532998242349789455260498643730697624990929691398525122693282970933083539814000055378205260514734290353523888966477800840497110763017349665332913942948654559637665066141568720274718728697913196336190015801141887351758944100908920561183802608536058085193656003329554115350131079714286463331479736663759146018033466089299805197219910514609057433950208308324688494791052585970274655450245022512526842316578126709323984032675238021607726649765952567723607820407320774214705339908138448971795699958574925920292721837133338705275506355373076729031952193511814649956992792804174719099096087847492067344518944616406050409515573546042264184861380950381299572973789378178282761978743567644058641045397648754704730780773344438012304704843835838990968569758154207757360971184303249629438658038714048127191314136385611002644907647182454432351470709078299418339528303177185226947338927432202137802470253189412168427280062728347843475630974555889345315310782611357781903349519548774946164618535093779495235586816455435973046513588075669151772216819501572427934949797511411576862124818593155122572652508997626752622862908534482772681639370719303772392564827455915296360809277836371417760854186507068630499596794743110119890307417426116103971570689590319581409157749296791331069265659046738887295759409801868657990800429865190698508484166740807449293837763452789907069592268760023723144047004183938695881644723262134540194260592671235477657203024081117889912154618244917890131196706057880202545871358138088120037675321825226563175164235743751591688083277033065120646290120633150289090371391366579168344996563785350141678773051199545225778854752582081912721933508585720034039923849453048923018597050390662687266934816300430273730864156183881902022039678571170335047122389784638625949652418746901389185114834329436533170546541094442367381735333966998996680945168808751173164929239087746242036846152587739307011608220287397818999357197674672185301552655942874324580723366505183326096868127815442338525445920971882246821971403488819781916537000769706556419420665184014300545931042235034794228482379804136870126341137798927837628838937019921135597802870015516321316092073695960386185303771012060780444501062768124620297226917987136561509906361697976464416031142327278929654948554110279759121461089057149056623512555337137166982686430021182851528436914563027589420197351885359469529531293469518335255580134409456175351500607202374752404300574862786367247571218303069352539274520721868006450050755546458485639647608530700174690535771850718003546485321946151038182069894389575100498263952259612509221138599134423923525149573405220654495987434105826338490847826949963924813049659495536758326990549852368449503699482113856410114426574150336454667648546897056886550041489021458031155642394276154787748431975421092170226722525468731821648846950087077325975821340057183160220613929684369676460564014802286580479693847752768554255850849991208115648732584492628356835397810399199890713580802658181583094016602344468305141219231386474274850733511262959395088961951716297150070767255283792652220182535605131457192259449866522465381134810158248903432616891258481789646896271193857476314267629450065304001546571710315069669517278316472568014652291560054801882255495396559678358807749796561413286535997183082532477728294650867754937391865688764200282655205159400312153848933078649939388388822496171024163186605343343871772908778087700358940747481252973434527556425086251149619111460779065777981117603880914464812923648389755188911815771261962910528858274232863792369756993284152889479991098317433431484090124046591439838977520628402254749428171063304660041575378256567563646174821532002082416256001019178615793572899878252677524543419868950219420385335143334379115261740181186886983885657753919157982854338790097149375713764183811561866519154177725332183340589418767336372503400010846317659374708589119766733108796900716372316126650607848612091929504391107168405880886346813067644637795873597578331852995692443381505555279070767530614212816186063432561676231559447237671586740091923909600436584380966379055457052729515106293397719563585322089910944923739651476123067518536777595327298496145616726258885246834790145274605309459279886893429314864777464227236824003226416817488410013508096376839094341575221274613157470565729330352743163407007265644620317797518604558182250676321778724630066356652093088336422409460146295034046075592983597584745070846251733531192921941567968621196205243628694129152018289755011490949876659224722739333860351139990196680982894494629472102449268346620893593213091949210028272428677285652721913915897204814282242189336964070100078741230535745846726192277416923244052065689924517005310831023554530616075713413397414410653742098329304271980647690649999315643947310675867455002792751145733672021527196849388148073261179141824696945038115037849602690946004586290627887652357717486645270505092106402893410645625385327902996998081631666482645244512411891302726245876644001157892073311293410741047557259679308958552344843016750896371054079537919353080179271357966440823390158986994547722678753395472865395002358422129711049858777095287049186585907038028466860326030490350392422713425338304141612001486360992016032780408734319628867839688204659305241628308988504556397236789631851194248255743967330197848741800647148152751104333081903741897254472180792191429181796190073307951490166441572229402636876903015779546696622465804738625497437411372241143441126268179388401712325304643745195557459941008310977524951741052218632016433753216878474253246822539424470070451605860302541103661138116888851650445729181283330040240383208819313310694907873049739059762754855863838820376561344724658185063277243464314234364982736855543386591990235197553318504558364225052920147231190712725417704155289243283078634405545646699043102832873918968667500706649234193311561047825045697584326803152983925989836404749219487666702997902937461827791925583082946682564163674771349397659416582581348298591378568078478365946233774667832416088080726971926922109638064537820580166349249327808881533063385688767441225257941768844299779820917225152532640373968854773936896538683505380449094418914939466291425796785850381442199231976402441079884733629741712778804295262153666930106400085711336220114323115349954522460724684921429877020924675866891176261698536402710581132245702390330206401890161242561761793547001532157101745170547636346821806577259757725645347931247830163056893957877628551878363514900612332997910590796889899151681722344143807920916347859872064324135833806977834706524053908597464059035463322474932118265352966675004134710650139839343485674673892843558219976376737546638996838712535504733799285339030804220732387624939854593151200172004290210140718857564399307630977445056334262205100122363454213525632681713749084086740654966562782200680697374504677391357670155583225911630206801360706385553306099093169564956811811417071229128647867899390944928168296217482435034205121091177825084107713867198377248070164450343717442999723356603700097100772803786165655862473642545408825742909219672492332559014679057738558825595858086109153930974477223761858787652448591668557335251303253256553819313856169355156375048460323369668541396947779700733363508012343506898480304687206323629119294738236940134911150893981462982868689877325520662081635341958946943808141189760926376475343844839192384199808857456380860533946888758244573320095902940826154462252498227949278145618446740412033454299580646157311577594784763940543199314588146008886702542856238111581568589539255024114645122262141673587735125998876219445374840070072683427067566961958282389365983962635954580706832149646166421384289965322202383041621276011430132016381869972180592032790103263996761775430062717419399496804846193569977015100238713108448560370347404567959199773634735903476455844799842192081075714933313873901619923514421223228559441281347293033633600433427665831468943064659403225914555041786382235886479548574441233214283652609842660995265298685536748383516255382664994798485037347204734516426813731894916189923346391001518419011941563323552582030888203449503242826486780412750301551087780431297280814340347175106604493112205690220943540174905115333465468635982171370991957192382913831055183471155551126603175690621634414476172364426906164889073930284967190884239989925612948443061598507425137727236922610767473891217540446342867014843054460820302555376317121541297123413009722936201314408585998794793592310467528914856586406035785155974223279444149893429149894119819381942686723302730290666460383349223604341336853472394571607128621683406399331546728004253683989132468964565244724007910075701594157578185364135759332189204913894220461138793544048229434403361122179587638649994026693076174437613547018119515788107072668427037915606489452802824017607485114263350937861941282219241530509746974673842033381749596688618663983464979367593861719846896712250748883423019152254457379036043374689711926365093361611265306221596458845111416836541185701390295186448915742120053861219155620755502321103109084037078818671764822862305034219515778074640022462964765522689490531846096609028332534760996704020774405718072831423788468025048423236715475295561056353104095883697407848618546030036719652875507016343191715007111257903654524429129521508595972382257669788436314181468510830390244085440471331704401294628896247140820643992533370304348043129514650216062265537403760982100743133812244296523344313481761807980013523503370075726445984663631512841389035893453167082064307908574356659828524337507582255119333316694434943365963815866075843169929921355668921919922388155313794746372324168069776535601794509023244602578980387410594669337688222681806881874845664924364616776254489525574315240216289816464448726783721890711843004772562654176389924217133649821396084481275757245053765114894252309356194028524166979514127453712362309022503246063516996273855576507126101607549743117355810381766379690666942227912750458814940732250994378774359630233273130709948190419868554032233493356113369012878115837401635395722356843668181400356816100004696848384618082511626646609086781025766110218193931201619101659361349684896007549117099123438835079581600428057881740964985813645619630564419215898813536852316333231910633923465592103198641633923630697452627191802360608539104626129871595891007522951292736717952881470543154677146744285945737343065200873423430566588602742408699035217489444880454158101846070663777569960128805951387197639673161688530580768818079450851708302786624867589183971414973444309508008740892011649319797878408222175293361656814793711676045828583401903446200408092287384268297577856371820906266230569120480176537184800385030376772900941626062742583358822753193386456941292108060861718666801044912545500329836943914470085159138704987518797248954767261986096665331178160040608109748882296620397588384850653994817998873603246193116980634786761644846311230765325125522715927142454094786809990767922438008239533363629460888859359385627768998528476277226343595853198973256287817055707472222082533784454470743327446542937388450856745397843836894053333796237260976875361355329531298785859767750702733596053304446912116302854735943827311417221380987521917557284294998892998702574622458194678639438289693486421787389268940815933478661380651382544881806509923760660166184799757838568527229847270247608129373200202031266858359783985898459621097793208730729440359053254798382611309878972661296092820365498722099216092671101869178094401391476051947794974189329088178715459285000575727219831290533171613726600400184096060103364388352684255169858494791342482047308046933673381812858767715755221657137984592443731132836212371106114556597953473824694658243962441766638526851183176664876203352442367476891617491867396352566970637087897883520576576922141444373964421558488673989175967085946528416193731147605074000333943879487982716572939309517498331316359871472484064373239474305905460317879678810686260905338137814427026636378378649763458870188462947883136710130283976826691693173445513141710635127200373126245540185054025773200275561930587058959739908189809641389398440366710288262788319858894860043941940463324963496604932022343421419489870892986938104766722180115260624265243522334013989473798240852776921296421682714852359072964181081853661437435788474444346317225609553649788920542078097636960380373444392327102243769529402153959384470516046317934515213573677323123171404894724640896336226595084224816208221758606292961069638450001822234884992995832371467813894087511066278170795882292032592594648627356693805454825452388226986353436375000449062169887932017229541802484639948486091907374839840173877673403174648319194443598360855322697098884382350798171836206877643465531444097234197833965203174290896797435000298424762274185570500936597338650937780348191979261573886233347952337205369494074947310919128304301861411438851067265327290622583326169495036029321854880682503940371022496304498872791116003634174332105119724739637710385250622221998590960551758209902299944218729820892556829935993671059652127002248488952262457176954010126877539085689936094030468415305272178138040689450110651741657874392961490532387353141894012960687675114767521631970231057680268938926487138927271539143181131632610361286092660750709525491029118205190996050370944741227452332386561536790171518448696662214887294834056203219553965129139027229210914486397182195371994155805505039128631176998163690915617754768830419379001574690437577728162314065715057661447695075649973012013077959642065116864165952020026858998423832777185236837733240881563229263437022716370512104459321247698235358139729296999931604626195118233938024861077382957290042255411988174249634617283585788752219095599811199521239431746714291765514434857933626713480221982891537380559293991801864399646910829160415861797478435422289133703219867013246371867299764990870814785919703717558220620997517996046549818748819799164033879692524211026160013686300829819978118969487856116933430962768390617983997345126139012321052960927435871637232321654659068253144750758656904640139085154040402986682668422963076871779524451344235623425507766238488255807714989298423633888759310438579883173706764634690997476466999064269107971648404831455212172020767221763347259241990760776528266265203803855325649749474830648366570832936768483673094613184679674118834134910604185710124302163292591848369567861393939326531443768187363390800221862400958131117201970964421219694613293691845122874218723664802418887061657108101398401809426332066187140653661431073025572336120252671766804609631145531760194042199311076093799924792039868237572773612542158446731675840378096564294140139345334024985829514778836215981808121141436704206221016666791755951966007365635833357865526284094438963147484634600520574148861575703016879706717591789894214585995935248510104248585534151024784064311104271630438869244599552831859916792823414557194107827808389562788376240217997842882543882626177654602683784697509184326832180124685744674706427472278164123894795614701183979593394202301978077362642425172165243874954367490683644377830101722135216835301941840063814368640892337145598736262367292660803381626986606491071934793299066773804282206628260008918643218420758441562281824341830671324774389529316132657032970690881599203375065897514334552982411490727924216509640653377326956931614446106236973099734016404035529146297990956539797724203240619396680677457801781738740649383392049298864972372094177436654906024675830179656617611484517622311527422543404727999700880250047046327681655417295491767478249209095067476442777026374986285463547580873648398494766437988722592334213868611549825017521882828099506526592779159452914405023700396258960924161119392566769752808147985329400574098274911177455336179870944231560029196020889886296931797649290130295507441492479729721155000653838673484269392965179522942456087783759101474482647294169392815750278222341604762317803074286392518842760895130273920135503818987863035083616960323832632360451441600967976355235840909393352234512853687986267226771260749830083657391704174669121017732163680077404582572006626649967405767403613053412328215195566351408285821937987866418292514689129030041198093093613316107949925241110323004586962933543414701974629037390354239327782597625281822533732874323488689408989027247210188945021046312195052904502949895742620899781368043144945123457282858064981642826447717320339579636157268059064761988653964587778930996572392071641801383293759082775284539917719595846984429859328387360982495335593419588439190473517798440446848068291342252038642076815470531421894597879750084662378978039092661228299204897860320161285583651881484351722946083863232932611834906451837737918174257187173897527040031483311008158983895296605742506073978136025873250419685299378072179130505338792079416413410215583095813061751807947445651101472254569129073708895421902126603305489109099676380387196153677800464741340603357001033090602138362101273038028962364487905287248149899146146303567606232533170737466996496248957731014492062491740279795141776263192413084896036206233452942277794907442802970431540081162422079275706422018517279774476643274691353831159302307644871130374125544516097635147025278179707170968504930269342816366993825539184410123636890368126923947008276139706707777993415886005041664675210728295475358100353169692020728166162894412234479016841351823281570014661644724936132728439551706555526074154023493643038971894130887371554880421608092867994195302123792981114745651454672649962734402777815247865596711640753882416652415184232782582846048851054046510642301926100411983259703498767619686148094273212072037954403606947197009729373708273838573583602399417745739968898761277305926638545874204138224727980142053652064112896241182954383807626078468980672531982334310387018798128530641518129478856068213453287844529288185353580591459667891836776165716378998512263013945004074558216875455870231826423215093041615758559785033603822356067141902459884082807099417612754660747401886662296427625369882345674626368883393784909237291963786340093994810088722453854766536809557008870526333702589351965208608502882189474909680745997302265539135051721714346736706898042514938750541326437794127669469992635711799098897515458932215110857382932628688481387418288627430043914226488342131624599143467166473614825266697937506863995722676498943015751309001034704746738935940636768196566894224850496213321976442287878672269384835754599914803402210888327004187060644998282757134357034770052152717472888484251994926418896021041669273312791325615379790418912043877670260961557603245109289409445228902447014833258737918922071109964752273852443751752631273534537815384810034009576946030369924329127853143530676702759551974294660744318298370900137140146159322715673548852203585875002562873548593023325592381336386299201636334869198255116317326356911969205303407626082997911766007354308599545470024381337284632076243559645173711695056683588637467292036148109634973457800465097123146375925529777212660089960842457046314037125241195569925963912781383447377238260717523960252254925136898443909225611755205708896145213104435496748257005786358143236508798177606842555657762471976671313672661828560780678625824484598654678390603093292852224340170388101736555415471985932713543696554649559347173049004686549421703908234865450467299687812572019049737927487630552040369069358168885166574376391164500334245118552513025960143990103335663173198808178306548623719920407578329029557011488821528556559350465794536784554710982987453732783336157000504121425350732260909921712071970987218411063874305887051144635830329283555305864718697130939302040454976321929533234910585114424536045308598924869041147122673134537533225430907753407878445927880184305374034151077482942453187810617560990069847175787851482184590194263215152942241289999220695791221880327095213252860753494783924683066258678803632897423381861463601045396214740784430828664925981091946161546754375734422918243995673049529974425683411735820389039772782415862169708908223806652784937707816663060225571722525990218735369085733294359738652561303636954847544886237077833868118969163362258540883523690116983077953986704306800854132503264972562437051384055899863091643132492583604135106339543894895781642056438546478303670180341791136551559622817723103840980510501492954675186127294937432374883471867333298880537828701151262602182486578548156723167167905250240328760231340704036754545962365339305231117082218926749198777802125183384759518009937793770077367606119541869627479299468187432963839280317477304473256399231743240428383387308664772904675642929285957116221532699243595355692197227328599471696325046839408551931802548095438819252081867210574039499950230423726200769527264439470131889691020165735724533176541325568050571238241897201316310260282014696923959843772582560711565901932135536547518540312633254384973621949721145962154329520977626767597659419415224989359345085930990523596090769226721291878893538478627951983647911824877558198518673610454339785083584383550834810831729280878603083072427382189751621536401707796936179288937569158690307186865008076603104359875716714015917216244382711923894029241710018307896016689732372175497474434655902798923524337390883007938493415625083234442792246712849204938893959411420058581302461786583823989735856157481288195074259809986047604933302186985487095234170269322143357810133982990952885040465817953243801384082117457741126202294936822412489906096252339487095503817084034581635218975381133409643093707639257653753490466699870320757396122021109019728199796205257355380080714687261890686923618463199378881100614754617940930691706917777518191687178777236760454609437918643467582019040980104090401633517670841430648363497034231423378590465738798784426164634690469707799636210205681220976012477659653583878598782513883947158879876951657220327311902474152930027748135067347795490443673642828162413486855083395623584975072511179334250782463940952816508971236830882325294816589368770517153642110597147876830255808653526127593584593811992348175347598133217599617380478843702979398746920827696826137106055789442118110308280661615997257772454078606796172645289371082978972671415147124996809198699899401297218238623480894577445809142387848907644095219972911957673943627524837859112859589061821008427259455282890612260829944774137213470219110934866850244372097966721339722793283134222582291351055820534188658651768790503267280549453996807138514444920467339343566268671510366638817530246285974877923336545404429578806572805314216284515005014506340022435379313103895583815983027782059840659444557549414122505502065157806674317414022824445997276398537346405744904222423676273307261637280961603904461691307622836220354537785475073946868616284518419913733001267650007871776227657570361372566138406191732415466066128483151869262851056484538277425649531607659829854959674210890166855251978164166375317078958886926861480105318519379053677767673139489892770772312933812467286719612228419832974234584416394336337317891448860368736914622632429448826628455357368764632873404483536982807846211668015552879039279130219420016145221552625187854712614548138338953743979376610297354615856191592144895885502479517493212574557776744578871516964082216481181128547574376597128634326963346409384812519458571031655648384689203892124134376697888467406250099529238708444540147221157318468355872537492046704499506362380224021322777115874897636169791408325588465482847698915351319580549702864999032668866909427147626263452734063043943758556530398407611202652556000655973354478663058727558421424283048304587377938140539705087649906042517673739042917345825323326676207497966947902079632073826055686023413786173611890931812241765750025265265371402626236214896596924092818419310984958234667067946123639336838655589948911698000137803402655093552755808304887928652413716295713223265911420442943266652768565062017584172223315319061668354938020139702656213810605851452893048026970370068966161348952271126127896917164108637176611059971836128656662342793957540981484900773048674473999785114500355212866044868015232317074691440755031040759125276827193799661156233647434416046492777409632232323979216519300794441466637901173432287103106057108530960536801231127266357929360594135710657563250568793028819560223833042401325905296307283834577079098930876802259222234048152037057659072759674978874081376799980567225009751951162914341833605060721953818001686056983561859123481484939206814851038178306036139319641312054746454050973343108757659436263618823694450908344706038732391254540568371826481342914658440919015671236610073707824364610922687995490605978839849402303407488228764963109026816791988011941940101554675606075926550863512696774723253183388345030578912659225773834156399497397404570217754004633914515640463235898350559403066333709022400840479861576435423272045423360911611865335718852648383409998311920825125932933477111559473799020366874626119083212678794562526620105074494436132795107789223133421637449619441095240873364672672753087296859475699401583013693762050121299865301599673751011132298631442958073527235458286112323895848052658395949365179429393169864752029068162078271511537673924140069429430375762763072725360821382768587765347323009468450131837272657251375474028717888659128635491936723918537228591304873651295931717164137659525760762501831898926698592718438898072847584905845996411307993663035899580146889504273473781292821713207458174599401127577127048017917998603243663546691860303398462253715040166954846469992035092466337911034688618983227576618592679468897194410029301542532374026043249733767239224863104003784246904035276260126959936854006303383656806240417326402746605035381940813208402057090859727358904489255214759077786460968458664249433855867379129213824111067940534226196287906545403442666172758560552905254371552277254274129428180601929416281535332085431229312493414085310575929250348585961646730868138282781170684144293871189435103116014192873515056577994993407955896517728345509919863669340896988694122591384219023120103938291860549041866016773377485190815998882681150918626402714864357610779604742281670795071713053929186220325910691134151799406595253656586776782884605269919503375718851164811989591380914319765723166905873431480924463227133289433406863156741058735013079042850925597207367986027224788539039469251229804073109685973311606107515572178062400868298418476656246555172619874344426928402337639410160522964443085274562190463933904605571562989396951447453084308773928260384166909980205298827351080376269428071278693702437570543485324882540305169408862669110074995023717397135579896702732263958306582599851520339231997142413802824503215703861392682076736157741131374460515881728110555975510382163966745895518523648751846395646273027750162666893552440336709174609065098303212452458337931980843681754212809731754545784158758631202735942940544199687069859723771498616636924991244127874562290898853363549329471760362330052656389130396068804294199802553300160521638019747322066725720663114891105152001229410997805485245232121552849018453043541920549110550954536967638770992130021667758750523764421046204790713800822528748721038292209574555079020195334217030947767878641774882153018163508041863440225548916175314373833460355797660392207757444839986549889134551027507445739987379609180903708299630279001352998954247912919886559456922619134247465900950495606698242244334875994451018365979851104488119612554307137176826766623256079352742399556231031840994431380892027262452525071666944862962665698306373506931016108660634573295878001483743822498447835311963964494351419772379818937708450614570723658714189651011148058893454517210969794596042954229820777052297454007544925460410031961455404183415348346831039444883506257430573562655932107950258044602079650024805740590362610753436844450265546244391741330743109790193762838234005484915570333995212671949202204141802505447767179587746307443884158836227792344611481396548397278042728567724326374481316191974413340683747295134309457871960486529992633306454860175930150897391626321741284491681999103612970631743372652116778338858026828336264038197884394049514326419582492902750153675632841238710987790235769814563725680578732976038298143117311947524287909077393541698321715635866197689993945600240629160968116511009279561025460025446504884735037980096122816261335871468615092414582328789219126205565286906884167366205387898663110380246482197149471764447019434920473152294474138845254860524684718184640496650387161340113955001911470614963259735899329032290090123767768941028447128034450446503094658564496866947351148378614565652138954757518848005454635872839371617649571765412017094420226513150705979866081969459734881361716359255873637088351676438693713428444099926414971376426958785783756357127203076776410086780863337810206432821068365251681215324536706148733329721376029893958960920166623194102639183422731283118293409044875967075069648109084449395889897805427279165271611434880125171772473291671228259192623114701777908447267781838125427571390381480840533244028085013937995072901326191759690287030887432477816572206618633553276513254988818834312103432226293874915781201599141557576318150070624363814954153804758504174424084056312938225458399184123967552158153705338780539040160701183509794225355091403257612535702161163720843532241590296132771441728327222654347270060688515464632311194200548723395736560451481813091989117193870444074895668706213651390053367245765913917446485808984567718031419664341692213388653915269223357993630663201727607718639865567047297584360099150620572644236297640136108475502362246812922438219943230727060205064965003097392482090520929232575946558387054834093402381293482236359600915962666332690386080758200617519678090952582029203897016893541531799283596145367369599781992778196418051006527878760369305276629986923572647665433170440169720308854316625306302784131802341087299036164594341743461721055421108959391039445440198928168126342399155482849744606853342376260093655715672095894761833427233275232556470903848320046046494329834130022508320182300580387301798280636300112645188965059466734111803590142435868100473990779814594957804314268307581517277866269839263297732580456829806868651395923948095397097027001852789183684229830422336887110080998418303522546762571235017120687359757759190515246034513804677343898096363890950137219845742893923385016249971266504197774430250582330530981568301691569219686350993676119973375659393979494739123190781383110728452809646516431346594502203999007590502146558565014216464469098470941841756408969461284621478588196682317466185097436567046090725380518994037948887789321039121446078638116021421837006767543947335927314221008129789503089451731421616074813679477166994363411591927310258852193190312785512898819701452356008042478880982169445381917745151994480442494883488729466523472602726082858332258145238133258222119671280314365915236243419858030907298301495629889044887121438981538123285784769061517513378745446473282406688558294417978099468143969923774755944838039794778977300809172359108452048200633133861964169154035090067940718070301985478411794795579932750402483055184458906391925250695163954332441608952256317624657365548431914555898126392229382516420353976670692388578088973425500182895230505950752716381850647057975139031956620093203211111827084795105693416443959480332204604367598679443791899890750258285531819853917128399798200654169211079097860802650832937605278865146898255554375718491459289590351624849334023698048368691180296541535078949190672977353498436080010632320736128608761723141624041958644691114817283370789595957375487804386282897341885628170113662642982051762719002696039297834457382453827614685255165957691971986167906001767408148904969216469266650528728541938196894520465442870572835730025063411179864542231445786727402178931296468884782489437252589870750194220841558004593334955850090970279156072861254227831487393050989724603652245074751136499440224073641798298223789798245913145373467464861321178434163635130286574292866870316605613648074554285920974727639832413608276618809246919604615244193927575878101139951151945359711078323077977823933681154165118622007865446385560961203327929743853809843738618243203666979204175191754593429355002550125790179866007620548495737902745466049729351764118861127156957378653796635380330360559550100431976546567209065130696236920194915440583268306796325227469457370004512154516275884322175659440220970287594268763422459847286017208997740016323180240811277443168715206757715975350969980938020850359955137286236793242591133495844368512554827031802307752322502004077022384295640096863576745110653249768275132536795504681995233550052428198551625143158391200627652157028157573792509504099405753869416004446205982090022529629661349990273734936463742062721825507079010366600861817362937645136927357721713410321370810599367335935604120495189765999799395610527246072481809843738719116446298566202910523822553064433480791458017084749986912652762236332953488310997710293042834870938298918635611609479801218596761765448069847183555646421550189119265351671287561419884511682284827812126934608344547730657096888478599761605094393856005390397319819723090453526291083771550597766877785177067042307183855578842880125531704021128811432807181738226824281143403838464093228607904257551848024107921691702450894411568634040510845045697989333105571869618810146008975871481679903008254758408434187724517902452641413587427886508649522291577791334657780436034943494906375612213314254800373102839824490981141386709143321308703204329756693671038863168541868123334813338070441853518905244779818606839412087037651757073917198689713452135544523896913932511029721584740194170966381924264656930074936112105496863719759083830257161588577853517364790954964067265262164504003667348692723895005208115437046774240311344795821688067211773545575497516766305408372691948647186086748443924097962209156657873170689342066171350577048654802626554227924832737288028897211652210087025127933734284483974523015904197192113844052036101290172583144238581059430857407875820395226716796741943464618602828322988417115161442341260706269531828239183480197793602718093876348175462780485836625167944742082638786941061358862829669536081148707572876997799171868359293743171812890040170461073799242407623513977918478843669538973243896863676079079973586223459735509350204020587306979529018741115186734699266324600577180547934547820344737863687281068802086888755619502497370632612004914446412939469009506092788510338902940873777637306747863726399203657176842747320514213272585881844843232281966506212528325319701226221508590596008781120726730668827713787465552934078445231940679301929678933242334246336223045706643852755070813020918667409856588056113695193365727421278012322092395891013810005322361488750482965009031159407609060901404199518042441978991897515890727438420316080388560153394690266494461443233889844380537318186082313436565530593308149022313227882392667763237239106202242003058080171673739673160220852113733419767402758750717394483528295860805085130275672988889255723577855070837228684317070469164671785835580362052581191903173652561370267947800465280905525875958873238820202713532124335245105009496593507132485004654541749986031834484672204090420322121628891902564541123700125512282426840889942931920846333528610375538831919966651047207863254933524268956261905749975884200592958783059176975909605264884780405474020131277961767039885863701487936503834433509933703818395861375762689277204077126409388606628322262062078788969698574073490384612044416774020298840185292390886671422151294342379664409148169331512429628104738828503447962097110885753917630763125735991268248780425094467461000951194180916672013713196784598044482540407032599084689653955044315580311858879457462131776468843250483647753056334416545941026362513362384896176262947221800013586638202855555413133826870042467558462516557914645923515323661875970305456852732652730767666169901862714679754723784865456791417526551687611349146848216526632537949154427417844071111751994348812431855466155853865789687422568508017789598379706596760231737745723568294371892948444433020650333568783213837931855042031166394473245537224358356795036993110718815612343196451568757523298989628409407136321992810176271480818766593369261989783221114049420349313846868317264147338362281060303432244729691512644640387998430004759406139968891271728308097953723246565646315772585411960451604816871693698054864371413531454451325415201043111103593375168037307395882325328008541144622139586445005199661879224356062942209744139604479453578898977382291463961060392215854476760404106655945376136939694125208912994419392312551042664193366580905261523638838986183153435210401286355848959373123550380738292058274140728234737874357401479120610125507146616142052426731487638544787462688659211242298141211661477135460360763655826207561720560950405265583763502085034383234961379944182816499126572715278659653373934473884083918140330150159353400903996264576794885008090787656736569392630854884143211117978676588650469796312852897566106486008278214263334547466638329102985966317164242829941590133555369177783452660158050475659611358759377882357397862090929375919456662295602013285560979714897554869365069224763099231951263275680788776297642301341084033129164581595947314685086953188881219396601038765921563545385759812962502162614265471656598291318974899448180770125686487479688321589092802459366899051784530170634411291455710087388554353115101265130498858341421245719451384847110318807376473785839969238952437506787044885094360263198785570022449542968940682827913548676361277497357888621977290336358170821427501373606798114577516796061097730064531128052665262461019972621604460656120249722656301529113232352802051019343064672487578369203489036985611637027322379367983893979392368730963795033922647307406228854885926015871403500058691944610251184406384263948082180878206189939688648042747141081388096670852483973807509472951090605239423784570605120527259007516439491759353253298581463601944894984565456485454352498980613097897227549521447115423094729668899918625733639527036189658265178601514637801323305201110641833045850410668533241436431488363915145127564745586514034291410355097168018841223765542951353092841288312651188390579610987831935143465361810969238213883532294716886372489344959820966912289931318718551569038301781320546340565211797041478242619836073403753105900060597460883266710549034544430710381469681984421197392885127113489066175060580934947131042892437310145117323188784624093261163147370751305419458643495966605557086653375848299081790295766799132315226168053516682431865656900225272942807533442452025494559844988877484935609656399474677443326567628950872263886680580822552980310179210350867573561058794262918186482498475320172021695226801292469984746563681842034823108216888287758742636916684811264579774370350295932451772195400584573848461369737568721372861655959382001422333482351068621988354397953535764809468509478027778642222246290105612124036624628922412234108925135186825598686786313429970239006194673795706873658340589926275313303469812052717825350113753217247730609795408564316169786699528420048776240930712577100130151329980675315983891627868136253413826917560258539835086215013577783943742055085002187453832257958318016028763820890288454668460318222376475699709908627784300849367056109814579696204633822194378831522620288136868806915167744901152380595645177941962698183580656569611659885218875938577091452725255069017292535239191679504721451166580607150216477956005365004356680158132018899717493656349684258376401656876532629135442140979286659951303158541694090485172825931821453492296433665646941339264962140233744125690782990754866366682473146018779640448826445994784267320456972691623153966697958100784243024265371629368199857668476117298532082904457185020529711932989184260318011571695230823336162815858193691556969056746744602394406985952831781110919736994443951977684607922463576728689146796724239214122886388775692579052747636158476200297595709932109598341438854390438652668909146837306554937306309060010603895547521245565490835669565379441196439529730227644945965289162328485120259942424036582006316717824329217128496053179077882031423920335051273222949153546853777133557254052002115625903817045966004595932343431775183888186752450008185516389561389718929142457750666824997484999413922143537986637621345110554263485702364048120312604924934033898653134702319399344925495403164175915062881609978025053397698785887908720959428159859961442020825093525335815932151083806130558162348376749848489554943666326286365976586078267138409687302452661168232275119759958302528823488564967988572309226318842887861087538197647965092908217036511804036146758941519608281377497555802034674528714366642115255909422752137648425411894920979486585528680309570326195356194112857374056596047166668706535774015549648257936971547229254497791734998715940185524771735659268366445088678532783929927551458720331443811856342353085785921412896160891347191142501536415121061598232693434755921513893368273274060043208762776861512821078842098736796480119917959795305278855077626506360340910650558392634147248641902794326018873115133321997681677239814624245713362988575494459044107762453957190176426000865683398175662288841052001192650136065400142539500113891090457168510073394837016658785203219948174647480139540404901297106922901459688575823271468113267787827147995981777174196021909616552995063934194735220240434148536953947875949401291264855451481760344486757968240569865371285014426049818215732426944624881778366895229202152163810738378525474476886752369189516428948920889570442330979777350394388740633899897974143309838607714473403813626712309485247063767288669262404932205912138877718045904537720582313645240433378923029266280621442047204622131661317417972928649874767798530848700052895458514337842877866662498165532441825554591884198509839910376060547306073167422790231707949204353161300863790941692561791761068610710074104646755147261832454542888496020480506341900201845159418695448036282551319676987900603555616842333888246295865448906189291207593371700961747327185633844117765677481239017797876611131156672263856274170577204404885766014851882247325390186263501603545446174599091679207421616114409593151214785777925641599398600792678105266818730065569379727858605113484463968032978320263096559631101161190068317954098641388771951415743480194687095062838143033992020970983385676380997156317164438223146008542346509636822235661154846295592548417527868705569426982221601436102723427024921530102430829539799953022604981438855787585570005100759043265898080299748669528266816326129002178632404063873300194430847746849779897572568122414838896801423407151474409036475597844669470555498198603685094833956641900909034368533254724726741209525538941891985104586921198757190319188221154588090369673050822128600834964324997472248870605392261832874786833285799865317969685886091305075279011156086447849838472311252330963656198288581788202605120903419178116601609502006166769170491070638601411320201956591281025140966026956067681899312299286760140786114444351180721953948364287383418986653493328778096391750293976098486016912222855773740529628682643628204632526342602057552384694946836809384722592621283820174849615972703748581144453736749527279833678697770984231255746331619823170983558495238106555112600858533953991793489245468439691813126243171519686553477511039186142652082455737655430189796163346529304166437102531235206557469549542113517607863450206407416349269512799018602174833090081763718660287304460154459611000768456846645740015213797261558651774659617229256004761805888389119035024676601785296623962921012812473572101470199381010549014202249486531444321028903673928268741542225689179990594832845312341754506295240143977804094382572313549108310683845728633519531934710425118286542080649167896496053155769420650710665661199973621564206771081759071071057239621376020122582329205517348114293928192347663020494360151708444976877873261012273165212720086827273474260907737240472599333647766903474810437587282226661688893567147720647247882385413554564175886319796089203463511982576558393555803024644179472845822943313821755919272651514117093621530927304488220296242401295551671107806134820728077874961480514132400957288585300068462860128646454777198895820069439926560524638621762557128058956254028447644007005408933845910355134387690935153265797655984262593473285864073809694377041963860191164080054906368316950312031834374478206301518794845749713631819346946230742908012932041430488456898539481575213419979459174909144966864232265637790021709386093465432790433929124024816718712177131659988928416710153525852592515599774442540843571915148235414481959074647759991966235997211584793135692929959172062030098564981884303546598746637794405257363681650834939064150761039178678389501527159120162815930913852287512785671223182413031087111280501558986760377246768794650112264521654807920372431905751967910320382747222615168393563143763972028688363587986235639021878081694555413082179118696736100187921413312010249982132930504571636417014233299664859371425603841661942236676415789310398800039137970724591385134638338926026095464297775997732095399570582394566639265651342408653592782852014006429339847737433992597467117937611361968641304807112418395672492974905835774082261101911729564077090763966230189789107197268560224114803105788458052741965529193550982049680187018178089393801231961420019680892414107018746187522813688886499151394995738137818643654176799317691369238519817961188305169186598604294945793444856833966412583402077930847169787037720718345840574287598899815859674333601940821482216340134905140961860334064291205847029053008565729850117683502238684715200271032714387424179620663131078757731056717192356447970544704241678857096609598738264807966584819425203494110804647491691203786230494378848472511378328790914770670796220595406583279940305084361436910555328677288096556865998934771771816305115572600786747883199017322912090869488552815037396614080450905200507175121786636725636164347138258279822020954450886197723170540913376800766210447169682088996955438116571794972927905375956708515094252819447498718515679279277156171829240309608464764846786992157323397562734403828319244363352683958188935108039841072104049204510466052486814284097593649120604662767330932443556348028077571493209357089054103242395228387497164127365050086616527355191506588378823856562744715205301844377022622646978031775929764972163205744443065764222232119171620062256769546544361105823050684523695088787980845095296816980249353673685556900409735256189631207978631515141754985040757471297818244050941781335917504420250073337228793277886638823229918400503217545851257388422838522096354657508981333162498921100760148824650436884359188937574024015569654771597501571404243514229350664999740827436980102885913981094856795029567884422027930135452213397462669708745004442227148951368095073569840336585778027343813564983012977520250728589543964997693972610406914585889457832022266055176245074810194956418930429311005029813648471461615746904707870040831363669858245277454714107700851167759487629493412383433559352971119682264752387295993322743563245234045499882973399208132685107339630103916655965882274455457451158811194261713669180468644332271202360815003689910905264643980831290613749785664948507175439801234661814602815031469821077910700060637065451240560207910112213126268579545303119408910941266594293391609105503045354070648800052458839024461493751545071352195012299314735649976452901697315889841725752908413503001041294306658755112524805561851496437759468632865473749145757333422286337351617476531092767818204434376158112117776987519548675913814521171460864600189180988524665954017732550281742978520921776105657718862332513432625374603769330568996149821956372344768063889319830371929703140009348050183617811170084527573656907170929677551249640162116047154694667672439177191215587750399884628344423751470786176004370327655157262986131074948297561505127860617731828624175250113445576921429393818333984366247437984783665117684136263926235773592262750362737513991740375676484363104200316423585757093534562765106855301393265333123393968974750635642846932811692807317899601091619676521162054033905568672837990257410474082246824464387121605584822650349655335311130167893977583523862168487374136269045558912640257212836031990369817597280552594194351823418829862493479306141855507386023865868681266510580037787608553043344936411638007316529600998610081105553370286938568896901549265141576659695062179699288161057869254427137178354032570815531950850174361056268772565248794499040122048807842439031623813872606339818443154365132572509473589757830404867288649859341025059823712641228134242494543972512775429985903136880125628276997718408845900503989454649875478308444075021011215110798216182963100700421840018652910662420641571665331841354178544953569781447572463781169384191417473609104234045043481537311196634342406183673809130897524767565167454701746376976536487828676715512708810941833699277413010705372542179312819288807724087209065892580895138292286557483495467054661087599611304481720403842898879974785971835579690648750387318081849089373428428331112312108790926127990226167446747859539671233744850928832847127733793155301971216649788566497713285012238205261210720653137069673381713150544331455417838523524054024479664808684473134684792111489894521586232538293122311034459347089358495612603140970155880544831317761928161641350767530461726522073701907871859807309659884009234723019419750791550749521172311128532450764521728762006768513263578970134038908814315638157334646345655232939086088913361915667837677480673779186957599219734609390817491048250748974141523711521061410653936156144609381616787443329110451153819040961074937803435435162295303648467144210990336552478334105811548920550842256121995056123866228760644998197195412449100595264614597400587327777286773701890024856922058770120715574528004492977350765014148662666257045505866052960823608562439526907067993944760916382504138720434121988233408534782634438996886662177248095955706800237777124033261916992157611186517741934292654336855523294124663239045640224281500553597655133595777196150736802432757606929603095881548674239732954333263970829289008453588670576216545621828873549477759278164380497792472551686024539500396586269937116202380755817464347321200307253035718156640616564371704325357932196575197099826545027246132683876598122051767466339625392479437692928616161586594246292543195807884679021340016455430325131788861793635967812880525801540266160492213835503728539152163183023854110254549123504823471243444422651551046729332448251103534678839079061565038393819713658739991113302878232775530255247227112608905757839187559835595563360338150270955847457927464765820877166338922124151341670191884859640671507357509024932830180528244890312926225511887908963018953214048602878421114908392965823592325231570832654447692588546366148073932204999984622630637053161842232762541114335111766993249355411261590416931540800174449731155005473816528205751669355837898025916169710043538057963349640191115256773790204576351926701350981619812876631347983465165959298255973763556717660632904595736136560500518850847319625470679865188999032091225005818419194086513289041598268064801451896783312637403068564699296598149926083729943066729632726483476198348482301026032722008054619842169264428775828016745594261103053922034540775430678023378228011476593476750263362315855519210277777704998865218509576102596766428063641640576360545437256925123242990935297943845631792221586291729855393824272968388204435714286851399041657101352919154883024163782363541590280378135347946556008696905925928052026922370357427105414951365201060022895812230530905412625118983683302801093751587860597965474509183294887068260896852396251957307206885127849391506946814087457307408439559312454353412864495127431415257049507355167754016992520830887771392786244633893930685159171982991403269183723237354430754065621029110682429584265896396077172860048096925940775003218338638504280040944759673956357100315711332587117270164841947667634907886495172892422944779411044872485326535211232146710390730356949974771553970528362293842110474630918676773194842590909757865598382292553935811540769958560432066862102570252354716537834897642658794241150921440694635058094219115560822244992077026666002056213881681012219304749842933374318610530392786953640051257587196167024986669922543554436165855194242231322174362356162509087808831801780006452821245880826489997147694971086175829104000870885761857285031161250743828878300718857212820626143350699927150116048960984308453569098635316661894022420099093687218804683872639187969445207776589993410651564199147348011041072493147442840608389404728490355813421811953499393994858219390522983467429129516404116089763684265693603368878848795307241750291796174830407427841349383587288403772935203739110770891367675850494571760529880077518324455327000592881381912626465824171144010003360079349119903071292254407300250569997306650095418654775235255398706720267351608469389314173739344906051406373151861123641201752157135081801757977990609310830105707175834635862858932798098312286765331757833035453254919377307842582820401061863619535299946006192434196751953318288589536332961851214200544088116213423064893455326473744151132023981897634644121780028903801559489813889840828418206331165138264302027576467440002281341239108858724127457581730446113072841274452317068055162738875643926593193935847533002674097948611784571633304067302376932832301838075938452252675250114370205509030375041974440406527124082608678178564944603504174111762031898569870231591752004741470698953790147048153810631263583604517754127200997979836528658801479270547457091487743458944609482764839575225874953914980123740313115355684942978263179243339233462537998196488160019859790448237854519065056560472104176610080272684629500279240877666268621158488610458574687025113537928896303708905620718155974576667387509637465936286498035194550884133788474909100498742587345735982869566252465201405827273246115138804927859167662460954473806770423532399981854128588463182297837473723534813199566383101323972931107596607089271538863322860548783021546688530463534091596584231310477268440372479088090972825730109297244619816754716751727657047638694618004468661328143209246626357596964620570368334375161255507337716180587428778485810075688230770599885195959255512494984569321898879051366526530013414643098928616518775155762501430050114145007984067786242978435204425648774541242375956870756560257885771915008574766677487425034708729602600479760580157574444668343467215227814047278763669998011115129339113933251549220480235123306688888331686069897659214348315138446307786533407304346396048364741613603545799127133810250721103937346845874266081430944415445251765013912451521899355298722181321170330110889343135303232838974961133661462626026830481872969916580931108822423484614319442349662955990323254889097324887639999336659409651236302129494533682169778909230235226109116734170721425626463503147478679435696202135072697571444302862849009920311979981790970124730283328414135969207510543205985543884836867233471982975737265566787697315725446435937686823248542730886566709100877758369116352989578787415098955398030798942646578339268656843133218502948967256169515068761705593559248202349278488452220463276264167943879023029190969439065543432295721400874149502730130549900077307067275405520703900208193180525121491633815927250016047752328208908659861514044893883351613808117860570371244698687640034408269438314582872146724484590860581187908408150789442975243548277446363519762318587462092953078615648405250734214286452431965224970061177901222004813783208425924892478601349271434631468755995844449078144499015072371567887584644005063030964619370094198557002211812115211319780160497825798497098492860946715152872276980354899661824553579686362100919223199722208443167019563599796731245286055177356921875185457266814236666254537601856186896898314325239775165792613163937837365909439288892159703405274499736976902718143540231171247676730890408070857316778197107488154998839589608517708251035547901557017933143730867554890195767550776358867414641294629689724445697046578396298840337236998907212634036508579866639452849951665390756067658850263032582223185069068104404993907644354560527097452598838067727276079677558525444612819456387016950349903390417300862252660281595453806169671700287525787470730229319175959993149978311493968696010922688998241492594694246601313056783821505282117528462876057981782030110240939290188273378199823562446204525788738357852078955369238890349134730970250030799483914301252448710909008509829087826476857841476126068521046162449472637036221200164144480469463000618057270883021342029702143737579587985906063349740748947169683788180285341464645657825343692738879141438454300677836732926273222321711631297301383391600281910371936378675702404394882966758840939211827186884652588655756282114259690773131186685466754995140133727733040292175380319122754169167287657188000223386476033779720328379806720759118134134569512939181272979305143512586941274656480323760715180510963897798288292482227839143403021102810369682457585283058081502839567516708310149433933403427277649951849968155429599528808237951307737002646369364549159776135995431680368369001149809474969205369743777259360940152788565522005396393431311762985527333851043482045021608856693556654347802308595411391333506622327554683449736743545395964143106440152101493154069197847837168054976511046672134833139406759110514653817889652366309862048599198797019198360832397560675974816076910531642100142096703677167990369075933650539899853029495537194264250081269425212869728668988136742846412736944397340145515734408949480399869689307652989414829675879623118952875925931339781538464971250776701621818096337521713380344037942936954094762598959169284813370877601907411589584996240549688883926052198624037281409808702713703985110805183123474059495827734861722241381201978576587588899283493632124302519820072137854661691298080359368464619626544363382232356737256391382761004708014864785089807074826912203225448478103170628735596466735629114856728360394458732356008925630500216484482658203367130448853128972338551673712826201498330414965059105242961414789914512395523912085424625499637314519588753173437747481951745876963444127115393781860136762318923141317749937817338565164638628823688399260431578114717790087947605856935804094305645295863329124402064718210500945147533497704065871709124373414613620267294340506272632963141998358203385320315846743370621899823358313007543838730654321979735602382012133165511132843106478069734156599330027161878500658583848427646174732465113791075702286307396465209893369136171631191996067262284400165182984189087890043175869057094634365809252623930863093157311595943041267851655442536720305209852899920933359923934528019775243969891691355532939227757850673033613093991359994512046563783220702185086143087131880951382123822814149184158307532878987724618061906077897345003861125155601328381027624259834368147621146088999275167469933735356852989112625504613066946817307697089917533266808464884466657275800426833518474235252158907633940967437482612360490814587234413223620189877059435921960234797381946126539868995772288836661550371479307090454509374974445935219661858159172178831310359961594268006807566190112384069365047585387790297006082951448686914878287596808537683029847766594190142960555098266370376969401193033306311042707840373417972370906531050794588320433131355831187945117633485044607407548315020801889374707189880994027005413991365396560056087012974121737714032070555229524205377422532362510564002715285158940786197550717545364330985071969228979101740653437383552119204220271845062291930508245837900653648558199601250212742680927072175147466950541415373679698138390909540983125729709929758719604846216139232160125087670584283465233444960254744663685031900896128671935063221037168980074362949443027352590833945927856363141909433412817288199159508232163016133545619547682345721195996998475651052473973853231955911828850575660038909778073143550768616174368076361296094381174787703283808271925037659128216216602258360183579152433619254865015766813163190552081704231214480477676515699065533878705284159555072625204259912666499479441874599160123946401849786631615842224469498227437068276360974491987829246172333116084584868304644077423333360452802967484010637291124628976337860653513917257389210448874184258087889962013683282483766245161880543157566354548000343898026959710406255659784070316299711733646115827662020879453574449647439423680346114107210784282418966088248481739426815538677714198623578611831676030021960342780150137713727893475334591297992366656271238720472277678310832707109960952796682625440750425958624463377859126829910544731227870448467568971733905195696556026033110007640643623631592178491494698991629511979762374852639262104962081883252409187682299171098103349035965882042626461225854696690973016415621546171617674450722804499944832408858950742774669288731490559878023036499592539770529469854098700479238119986573015420475735203094730222043216350396965226617738729836939623301231506284493340850854293216602844867048879964634352834005321791363917016264884675349896338860627631198428792120007046103775944974672882360485874635635324575730904764100618602454314693083311082824161212769271539603792261666639694576658887542186668132619222073438982581132895694375394741941488724831578499948239008553646971912290425183433647421955671327271472314482945907373410974202841528792863509955108298706894626536192261157473914615791218216864338906292565166175624011180065381480582290552764543295614322783315475585970750806769129343152508117364293546305963200727604282960367773445822009806651748696065226246997373825729305063522794742606616324648010517054808969153672201104651052856740274479301455792197072455192863989199329450684566788172742274049568632592647718322981799153775424103441569784823990782961593656552950029867050700010136955776874575987322594513024500395895727638766766973461808043230431326523189931397460219869894484425144805448068834438453350457949417837215610271668535435882019744821413863406694441601821050350383385870756912679857854206428113139317170404299682198060152309291274009373377140742964385937882716055032644763937500890017738093341757803857394185595005954717806528391665425144700043461595297477005467136440439489037055826553400854045431727320181168434667314356941217541266343590444216556534091432802991128857253728251129927719427214017079464805167216212226518903493880362703809533979234979610174941689032919160359078499352320343111621636226503064317729544432714765788887261421634979220453259770735770409777197376335223751782268537047804701250215171659162386107979578606746595548081066706251210377745810266797202137256288346491940482280425087682321246089155978967814634112791313982744537976088077816946315826533670922508694167013035814106937977235534375542520533720154870789750137037696245696698851863632777799942893172790116385051977128437570373585041985880869268914009031825429143806889685660584026680844259708349562429797101309976473761362000392497658797612690353457705390507509772640839571261909280048572647603260734457016313014280014539313525503034582894818968670132219179005096422131404995878023504479516334775478254254724409693707165790602529630420034379960319019735489464068194201911374509511619085505025703954777198198075017229587985611349942374664226171426914628682206862159060415279789659149516120525078771227612079903380313506444159823047933977889987318249025672317189535541490727782307488023456794973468691737866693142811647710618605431086138405647144556891745449119149226704728584412831086082760640590972644060834288860325526426912876916454718075952584778487659893342406584547621139614804875497908305341250471738977106946909173035314280624022852933369852295918349127229408835376541016826787442615162448190318352271350350451684946992157111954282908054042519376114490318109828550189853277351571806960593334486172646692828156821684206205972678132125669019162607763322211573944073586517134468930087361887911273885381644470195321107821810992265527277973866652335050209093077591356469811013591274068313948231117421340500672502923301002690140634857911244131512767481945726292760514069217374004316748063662175893666927941233180533123009903631902506463754552442931410493475328404707176107092067381287956502410854525724175666899252396327961094937602304429262577882020325795435679711130027112991593067550902355024866191887604299422746633544087968668298619155837551429079707571245317793375434774766544764585730212912782161184446381524755718269933487271631694000185182237295477760917702903561435648948260430957749168444563534145704144570065276493447131302214474623486476103748735927903534813235898143218149210578090120128898741309824409366781636110275846470212154494675697899521703530976997301976771788451453709762188182677020297009653554078066212642471504520244194454996366833906407727822371514373807311444595935432256605807173852158373440773120243620120994359761022034776233732943722731410200663941001030508322866100122298199703123352822068694461459714249449345807784604175007687258580237777737137508471531596894477695106355623890980203045067002411855749768873194986417379254692865684616482591782191325898489016150539066862632600088645264149172767717088398715514586950499241443141597262329613625582336032866414596996451385201821489995538564974080169699684945661976904452293446532386731423503549760845812333007679164186762763286945774901000054796512999669231356540952074818669995511546832099203431560118685162885867790516237783871390456230054555183659724973161635390042371103957460385418000619891722158505570596029330686571245856382342386494552733236969969484193085954544674174884190292379291224667804603314973867242259521080925419989486445937061258109581978860365107611016295603159990198066627252891592886585408908989906922851831470487091512456067912603457573401271236021843782910465789049991535553898070049370608554940644180140094586344719410725920295459389291469973193637855899114879340877955776987235014986582599182773676619753157915048860776570115813845891383567683590728574641440449492603530595896946137136630563436320937722417791567515373929470991847233167622407510138003903439093871471385763872813823948537201447577891973192097076170750263375780171567240424003303730347071022942438740101586967260333156093449143128248114431935924244961981145068363324066004217914698315147393346872440026168337588728896888802479624262381878870086582692275338471373914977130637612365440209719705740158010958808630439499877690473017156111140792357274100821911049154354972461327851122420258754404649780872916422872641383931908355196662392788767640351078341919589066089133538608142231667721952776938687186945284927685428017489632768114628990300704547127234401286486982375454482319845489258083118641518941755892374623225845126107161647380473929486063014553369224717942651187465157455440490164977788809014461386662576729935955932389784872527107999782954938319146024254884623206118127391901104284323662754204580351898139973302434242924629955631886717583338693514446404752062512384924869979833826054659256271655863637155614919481079007689154891536032983335901231451010373025557920272062367379533506444864772290685657472406898282202269645601493121213410835568825706058187853815159402478318508835216274072575679448322978213100781769165050952081541916339081921779321424516447433615501447768473373073225548552920010949072251736943426789296599469858982301437002762609736730378003420619256561247921452746029100171964172299721684413269921147194541933955497520204296087483363749179543386646448811658527768886372000109976913496163060363801421505001053374414036969020053451554843661227960770004156380750028092437337596304302669247218676701942456134552253379059369891294788634863892419489995200921824705001757964507107758146738250607078428972302860630853008219694678715646118448704868677494539879443557017971815204503169612226433825213212354325914500476306803624121590335859492528079438925940958558902688667853491304867136658848631097904987886953640944626669886427754124019675657266355697969734612333726243529033232909944327192696478010440853622024496161163586567299814222767361281626986125980875320335592309867023213751337867932266800039554020985191986189734835535351681633770844002940122534805181202413676648217351233809544228199512650133234435125408234656735378962698654180196248900723428440613893428613668594312696131073075274577491214115687108108469681485562136109366388988654643988656656956254117663275025916037375443406450686760860930221613538397422893961171119547347992599024962030473778927286887793742495795421533021050281487570847489331713697266737337622860835322051360396205720538723201113141514218029183968093532535109106050218898908821845318426212853711909980401336715405592136203585162096158446955433650723448740696078468034652802416366326472746567767687689672015116667672151921122335517154395996421879314802771247855076781044288855445878518976259225857943853529991056754186708274529669474096307385740513547924992878609918205616900359786362733817873170489550650523312313233407635734305497041204851394109974467999256356311554519959507612955762835240054656449551724762147786030142030430550875277413572144960328662110019592372715133571932044350728534927189580362469391722449834050564461646106181435957998351967980426271229118072654951837439244282338557212474401841343312596948232140632329277327625188313003286215583681862138586212071915761410063715873690483549543993661752351197214010414519072960518765664605644794252565297776749880623576112621828616829711269636384992700843483128954911650071494509384302844342700178574610450668704181906053557292480814191901885995976091012861077380444866961232237679691428565750735143065068090696499933325297908370283603591844620293053151979424889039525726839739726456656959679467501646412825314160245005914058318311389374125073012508121715831604384914821458666626898834950302749407298274725545527894924984047643099605026645261935834567504677881745937288361811717778540189831081181684466574986489182335050547484458599347109215303299126688304520949609006521179931151407106505421718182247406975585643534463478276371287083291738752120180917979152579173208226573582209777327182806877952860925492022149344213548727900492780791060440442801028208635209358830221825711243905839468143117083642724871737264180262781764639206671195203072753462490983081572896659801952231415187271101422096726925496198550677517988804216844214964818486589724955282511434706772878006829862864157921537610683307870050757482876367781176930889483148700911228745524652072216345299531487458902841256659825736036109532712241304891429142320786990838072459130173262865122321066382363508345447460040847601133634625184502363601511676220231703393107585312219301943908998862962460518515266442942493279094878589126423192631510510519903633635671026655271120527783854787016462116805312444288739853728840603533772344028641767670002793060879766293101819047281043358696184684986149049170500366899834531285408339678553802748956506344963082977515388658146903142196773921895739455841445086283070642950537126874256777319078569389220292689716524118978557083638616597940900777983737491813773045269767268018847669693758226582894521074478769234752522475758112750849426358122350143708867651420328667132853813113425613143328947376521030220785136835546321744013302769076139823406104978277765372962368230227851908954571742453772729516315633331891653699592973127531201065273409365286982716346617276243094222514224623607125104420063055807533339961462606560664206738180430150576767730611097466525724713323953476302428416400444941809680999534338334917269746399825690853050926978834441430146139337302941232008573586693777512159468791753568864320477030412273295207585969682157096132039125602463829887356033738269757591949110552659561807283171911979136732060153936082993736876794974775172137996992605783462749961024092914723525484439963976614805534209630585764280541445188498751499235936397088274874224734544845250393683345045843353915637892037844531628177884575716854967816567241085172906894799020402337216447315054270430042760045613846057961616726008545986928744073464797823776496131518089284284387734397209266124310468414038732999274745357848182384271686615169360918223258012404485112806896990654011673891138074436372897386795626991883812936496035510606052717788093666067161089810240853835811464008512568625169981770141418635101772842335610856381255898743362562117611039215103067012233850410174758411042828619285815747522355825078084793847362730907973694221060798348105014560470189518338749074354823774438233588266730256901322059483713517638173304082118581912916657666884395864208123488277965315376472374228009304565995971018988959025032488957768001149366640216512935295085257846831281183223178954051233191855150051881601099349281451016093579875198455371397289381429713971603126603259595018370593112086562869501222644183647926816481133075967208814385410026902753399848277661974189722886241927512887866871611436688388303620065673523081816281883779876720843440554770428775842045458489699825119780650642784315600842644792179329578374944352943665349855103385125356835645870614301822085521043094065743637890738848946367381117403058345820291414744367601873299132772096796440662374699243355216639896619942372517609263414872836552546186031536689119593730082661940340269607852497252757103818721879750602188045218632131472336499873390916489348510409642329899350905889707788172042585136641283639130577554243281772109714043025525180609271949840751064497541414394398304944859624041439765201177304679203082779459428869578829368606019426136398942640999591529287315311002699521396101309494428390001664256703310623279034406207543986280802513466026594166146153268154000257611723051456828122314067040110390204648474848189331891265244936733132489572845880476327770509781735835928676750474120517606508171330304725655381588698291136152606872799815089233715287593083573993142244573490030844869042994588012787591417350155063280506665795896394925069486390501079166857388542795255406138280175929619652467610864583234495911210648012854110855206244936274315127196893234428825216538627291999970025278790680636218416310839611465975971710956240887462370365662939905268023738200826174901200607914617535860104385188569574614970290401528327789517248321583822588786431310869691532689619740365591850229252582780552433656588695865463881838584080338771622166182383079660012206944070732103330476638635249633029688780501929102121138373351124924696351078075602648478453404475304582908486948538430114628097969443613821443039160353690847343820824464059240259294233231576885818046491606581435244563135574202565672685264792372487091879584713760197633901834118754295463368412698310506426048832366939213409722421231806916430951997120986717820813498271369983888267621322150702776689704881579415078502689453390695571550901624311718572862287907785833989512396510141151037393952363315454568103464394225135815332461996974848825805777146887818153615063631227672087069210193239750947690466387236424859019491587423253449056203055839957572132805002823964679119862349476786844199627137450334468542795769681205565656770805270169063458898782873477707672352827059951011496816358368196059121795999657495627436430269293808860522684774695680804312978055811156175522816656046393407872433582170404678468898763316688702377341814300375288119824854097856934959409626232554152347870303241337084367152853262313001897188500860490850074229736271782239352384113219167954331895850794886880222363360651886653925011366708760374244096722704967399855257531280268141935040664405579014187071228216178426239244392421718561356901986117318438699251933179329813531543767467251712462257226401465203764866140169434839212912423320938670706326468595792016984441945735527457474408967660427304246132883574787171857461764631454023094070496034422038772963258637932285248991714607113039043569926105595816051528085845104314750656328823442232186487301964775760094175952985351179744424965727454049811753883668821698035363582050975078154864614469444286941942358841223169803424058700451661140140779359484686422891323363092235679069900618245679339035796775377502987976495768103421577493205302282854215938677955774574133057740083975273345699878720736211613600028342631445400065209330384236134815593571188473699813994484630789441799159373591650954323835278836218910428553795042845568298271062225475631545905234776496774829956157474126463190526050320706475053972625070293557173888655547656537299744257957614319540438122451413411313144250948166854496874400391085199279933964118115803328787552647497197856049748653477225611698028735619437655911765483810569142477435315293482133767889132765460322702942492950114473085547803110841727038860381471184197943322587338001468988542905130093426001983608337536463854229888610223455987305247758036842460209473121895470841327843332854097159309193347987381019737058102498585234754230127516234275732347819876204326346879647247698503472148579479927692239898363845407015709948586617775995999025782128607593539013133185928254843139454361932727143942652782460315110471921107972583437750941392509496186649188735850442237644470256616261789471233048357205551072482132051521273179971529396138412494596578701370951642524551147704024547822439020911372526959506288130201987008196996931055776599827167831374216066659695810008285949057229515900349851168080302325484869106521797773403968801199591037366352158102621379283327690809594850629286888791757808891421951936130430056907137385708979871164914948351829230047569630043868134038350968385226413559712738570778305296791440375598968305653031036326801005364830205377109674297641608271080247167656449028346580126556273525972372340765372829834481244280339425657216177544294695509556946724033260808765071633482637695860217093712061158679278832051250051032760767765265198209718962340929890821604374323643685415245704806740185780353098205994403157103500041344165243415842380355351882004178047698123019628747030378426297250628015165385401410866496930226235114495216068715468428995411141962783876533281413804107363037449760223379232486892271951506036576124380947505511999135243217354734525296271112039369845407424176785912391065369516331822906933982707101279996037374564621063211887932612654584452887619833575616629092530322338661203771759607823428453464982407849179568562443215220953384488566313951085062939355410810085407426283961504675982958319294025934900203292021752122970351616242034992931923455607270718760967324173359155912115233448882047195970950178310348159420001236197973668767984065476706049262084870358050505025118478227193552129894401280872491239459694432299579159812946018468256130334711267126229703101142193863575235635263028548274163757879750019569052533004331615934073941819011808094767427457872144232774603919826418459332426320241790631225655526506120451918477191394124489028806027229285258073407895910599964151360867005587511923629642464132759526347033788304587706141048809033393351160146594041102413674082759301263890725811531434545271090624642525802926389732641364855870092267600843706860439006466144966387912448619663528598855025465443224541730156518292705286402713270881892316815050080791474202950459695035176067110414065644877373641625209198576311983638461488176682551460875960343276513595373550246983272742878357335341214225621342999344330675293231178414936321145202922338442551629836519688217217752341999118800016918302806748552808529881599587373274222861099429950261154026336202782419864050313630735611616177427692141717244229987327265205420367298248855417456290266577364669833881075801978391866540712061021067585688430559698279434281532864909759061429695587962811930838695818779202050444446111872516448362528531463739186644535083412870093478280516948825087039438661586531394013626655079706442811138040920672143374439558956545883970340950277745158322205732444479627168868254663503961404182480809906329880274744780337472232850748579863314878791555664319675183442815960547217667496155675068859832189020506501965298462466875181623735270717459052504893378088050878237489657792933540127398266869621453118806365975578957895370258080330178240020252860410244648996881574511145396112347993786377329317390375469625420299502925650365324449340356371164193368197593030357289775797341337746380326100170089728321810891606536548248694751404793410895040970648064433695183173790382839600856216679750892932141573204345178610831942920385366154709814592394935180853530079341162258468965253667323371193799331870867526029018863561605084402945976619319414865158902368302031780501217344129641633192499413828208066289529467641350795511997575420090985808763067029726032873903866692255686268231593692102826200147649244063115924248502917040495616813002757063576330208800975127880401464887883789780964073981708903443429006933388250256848652685530395383216997261535685874046251944338810265141478056689595762293055698633664067918417390916755295246432089474235592729483332061139881439049649152391554127127667858001130763970709224857791077269320742968729564236522044653389187094709940771509575475985072319187265045487953678630274226696379538752139977325489850031242426291607174424879788318937859492262745090929014088784173402572744816335114852603361299463397283171685601642840664613983828366609355630055437135422340851571625108192722204898697638815830583372831607937577884383730078142416861215847790146280270281879273696468914359609907083066653683749632622694508366342447545094223906718682827139749031570776156231638397474203812764277464279640237672284692373399959588396380409311730060293620689694861773486464906599013627550573491449412168718044558915771433289964365834123404572222083181069290233109999054305448247552557414609585255451498124162568030226703488329493122675416427421268498935038459397929143128867816861510145184641947663435325418611065959132372237100767212777657304859964012384772427518608380431179982552233572179309930676251612610938008722296377696395727054404466707913916106754365268269034822887098099797255533155560697998463133492210732613323861840544672706324009492407018461897350831642492087467683777028437521481193957974310212460329824895275866688416933461731090849775658029952394404932958140750089858596503902982421827071153979414445250754011253364979158827122161788865611935090905098129292227302847963212864813345637813431440698240342552987514090514465875034179628725120485352096489587164689527607493148329427127522610727818886264630746411373506422750995400506469894594102860138335615667860690389933472505801738721362247978398358533410261401548108643510932412232146593342771100196983458308444877998563760167094792502838677288867178529966145918478868856303013469437331713269982515189956493383977401412581818347063769047128120678450188428892763953988116283820224534558201849377870643723560929896938412460654445057084843537267432195115843352353376660027420126458612568882741085242671311267221880224979405797404769193903305554337783934934559384688424385735687966811488723117441604563127161496221211837144766581545163554175417381880169230841856026364678840663483500451671857825801856413621710169042682563258273833709086843965107172518367975376335933683159874281910072199266393412947320954203293630707557277154549823911401439923703475324847934021172473178531434517065744131247860825562666278059993536841660469885073856562283362811548709231275099545793373532816893796026806688020575261174812458951272817215984973480741826966935546963195524896029266346286374043359389537801367005632073241750473936775544101107154858480282351195951727498450148627356082522122136524371720740089365561222019853941966844145370385975731000685305653471290115015134623325626120922524433678215222497380633289283482755791120823635697334749206391460654581154143677166764820428845790535008362687581288138698262130150770332796203027059333175778259876257736065223305234020806906572763595394644527300563808352120977374471870862721697198030949763083649093264984359602097850595344607177532010055313424391334634304989630778199289230903307162323533195377400092078404745047484040553730357263127906818099607242882298423392982126343318910374100172275433710380201295621162729852489688412078054640468456184140744434117462148695603700090790317974728512979486723738334476478917564844181511779603575102433426483327698705550145620212613486044932865077673125617807203452558254126564899975183204301198616689331499094131439921681573331256780522554289042345631717741358495978389520258973090811426321088350261210367060340500166392597941223994961836595431662763905114141179946860163654081177448052745626859136781258515633844733901762431581723698801409400375618933093125717415289102645821281930459658475970224070645516364349571819149223900450190398601497865852936893902479355537996276890984131481278274119996203645602842823487880542832629673006354801631891847094910319620595392165922378085999106804968638980590835017278297718599987969975448237743349939065487105625672912884597612645931928705089301875888716254860856521450308950951732238305423993983269457441206795633027522089336702788492951649510694462992304539671792853481592429356224520488246386503794330415141118325911848323868463475704568394810881506045069617887454241772053922005520457166788682897831405040468676135924153300479923209591484269526147093035421780528878945866817369950043875133237997711022335216579851939506984405627778651258093138515388048289977958818381908995703902028642123114422512679323987035683978502191094982020681738612279311933883699606863390525746326907287359430993014421022028539595806149884301328275521914533275813166314446034110658031604802481382870606836461307541859953856664445588155990004269919839348588557941267668352364435662641403337749285600308320820409070943464708490986293728812970305027324172959208632219081806829214179196995611163177875964165061490037789633607215174158263261385188216376500492074542634020940070774295376564443585396525551390076956646694279586552072812905739590762556369814646257349448001100771053753417630254567899284875278264459442655650256690226243929147879658326197249527783143941517899673399674723595244411081475735963588709455137573049133233120029815510837102918350587067204459947642744485200718453062748567286197450279391726918033611762478399463190729173244950917388564363040722647326866332021258291795289181815019980223971552192088985598417460386750142199563224206006734767331517914579651617280581168089880478676891775041887245641058780485590498891992994115697839289836606994072915404274403260039822277982702293779468638049869247874534971009896754893250277421452001160393352648902330346434776457120376932685431987779549551536013161130841829560497280030853487709033552798294616876546634933944145374271080658962778314276361913466387567209838993373582493713451928666309869353936360891520656858196725267283605551353397040704104406488737134884896670873744642413904600979664869265869105932765710689947297457465277361220136304873833873705492118326613360471366171468842999094379709085453843944264052534194429930446516602067396550013193092162552883790912687434792218258142020887900096111387880541954175597744829201140163713825701488275233832906912023621732485141253590163273861154294101899992456402752362724769958064733574541320449974876786529876825043055307878858119450673889526382787151483053571220260840322319512119159903257180548808195074923211353574322224736865644654011319379516425218731710887770688803450231462208311757319368805937114593388149611122522404541172469827543092629422154766455613210225787069281473312815441944932713304782055462470819433664429285398048920384107192114085152273736478417934136929947117654554823364459479080416304898406309666436939365153812415670511426483117977545795061950911073239242687367995238950077642969161970144094056400433306944768491121430084803248388780857804436419726302436163946462716768679534269716422844695291988231639009841444158905595539346962680047202989725543624619584889125771202903660199139645308106962989855635847874110584188974588586779673866051186602885560988573958963365871889628199473056518731079532515854591503423656108923806288732605030821361788130527106562897012903366139872863597176814916018346951793768307004166070729049872608758570433054996851240793204116606340218813475308216988216659639097091793777565881276519392413287715474459385944604235621130469553756055639782227514035213934829591135594692526215287848734419184494438284844469887105063286501119861682851868379550860613381057545987372067871161675760685474577322481063276640314744049788948800317311511408010209249784241023669818632932082851686835167632476855937051498507805532135689176246907004831769218436920378739159647920340908576029447870811838747168256686703511309608712192177094221288528532829847508715421389656824602604036303659686042325028496765763608277214975142493581455291794749943270793949890038970237212892767970320342051694106000385437178103951354252561438901165512244890565206121120447332680530850330344143429223087572811561457382065494400752822894678271166802008948243929394877110787439956107936872252609902351908143720554871791813652655881160027449328341768323019734433791284379194507238137534536577956823759650187109764904869394920042264078066131985271149924379579563057614696076085028399184001670709295916017772699090687906787070338378530027202474466543572176821503328071028650423121705381675272641948933416728025463950695095810925697194324245303205804556563751717367936130150266662254025120474330774195826770871276221079516471077577773754011438740475230456125091848387665899031365868422147189553137509629308009455231441717161998443519790183630232587425531481826807014879028203441664669444099116322408568285451004178557099674634331625236480125574417463500740683993056650193148431071776350288941927254271516434713915829848127606933275474398916382633879819094207666886782708998005563600207008122754233022535371809841250138654369682021128188132587768421159008096583597096343152384793251441641448272524061150319326548202883858796575648733959648303547347900324203366456481107946532194965493717794549574322390183341138465628177339126991816821270601937584714064344586091855938217400814762951996398284648234052370482307166661728368884814919882241883700290391900131913965307357027189916451446344102714851874989480747856096242836620693945502875256848222701516607695713430151132281747417316225207204601709682504743109301573143106746974679885192343858158022181720808757861325532795854778810747266185732030855792492800932691916692978918591226854006238031597096404022742980085663113364002909639533237187442180239831686696874820410029971297547046826625167942612068375091123049153571468062932505343630765990674293657965661381885599766838020803107978193353807203921037411334223497724594611526150898038302815201721522669108327628090042783767197775176846233816194850121184791243956106274613910789596600193787068904922588971516980352366988645294168909604142102125662403148403875162676916062339858580889539782766970068696805956468548635885721608050171425397156016980728840066016651225894398089841697488067619397475632715196127955206999723964758336893810423509169177902533514609354401856677448337009502955128986883988577510903995903800870466041204390381049724402795983875605716974234016814357410526914051531104713189589558983906839971438058447126741797304477408051684224850653914542368240710320346042115783643273402856842907749257149499405535375479332243798059525825005641164235939322175183365446399806086910573086482795770879575866928635511814723011928883521657533763099869287073273485679721717325304804745323494003181008946732146738170085529191864654394929006220081266635535281827573524504666233253017242152298750075006043630330579455575636226037983620277343991001738148303812617019431794913224314243937951854771802335375378427002506514260329825107406382667991238029585606367555857957816092327680370923749294648208655228692838457964193226828655954291673754371391145158930717115636500961766427730742616254582124942801659399010657648561283833186355470436847768276231126772737186207749942648365879769995727632689243214163512579350225235956443464821697917076708693505913309758056982815325826824075042235836228763835158878635699525109773343028096758350157112218262416494399646578267883723388793386254150991195702649165916700686720003227470575017151116683557204935870751028366796033141126918014110605534819093989008554099190953176239084574193540909045237251030498935654012693535411564263146092342475984670042199359199492826453170974125297191534912727788554991298182580018236105666551337384258928878260770453033751206880577196230486013836585775299781510135280098732409772695802481502823432726187096430155948988260306056237765532772840920067532065332651230931832378952898129528307281902148119154250813113385102948377764573463106845191677179107496962069253419835212695857117892222745077189494041446355413384054432581136010431974526262079333155735746016807750126907858002660551681215768874577210469581992355978765499579879516010294156399859993179686148117953902293125655926169285475970913140289652386672088496198149203711044772805946116625314061617486333023233612492361835411358915812855980815592651024323026106539470444540851675351641793986899221975051279722704788854736619741833536913457119763468041818966031325555414041742941397132357612189648950372994376413117472295484548613451565090763698610667565358660530582705511298550496671837041501128748316827377071069287959536435954897676918872603411959411822850417564842670278457069567423230992815117576191599318151284734361558912633200883686052683109666935584203963872752301295017796000185653657591616993225437324381955390584702077918852843526328587723139760914569505567295673143868878817702819550863532681441427127673809062153585479367864200086615012176819803433680003900928605630234366011595390435510390814311443519086788566163353142816060119359876874269273213140953512335636689627985183635546493919090961343246593359007033259320439896561466231343329881040886892101731256659833861435344900918288038369469387654020681331461089375487007359149797862149620659237634765330068234636435909818962078755227380941545170606139406666537890971186067691563958083785390868121275379481957065497007204789165520365634444853051661455018539099736255225831967366190851992724465463736900677756499187587011168464344160367927024694513532169414549106270745934483221994452036489516439605865616204881719384310809258236080999156540654171214437763157980445337992186123285544182430709223558501100983678231809736676474224278893415424112189033434759772941838726073400713805926215269963725224947634611065515248571177173536014395550732881140049701885524289020849156783462325863350509804343337948385144255501681109612181108071809140082138483007280270051009073707469119860678828839357433339397971473909532849346966793068187130920341858512444278701318466635771004916726185156843179159707967505458608583613746805316729010844264420844001397243732292748615169945448867026629591767460531606536896219204079351103466420124112437098888747968640418259672224827783062503207047595284145689314929043538702800610072858359277452895542592359101273886047107595749817611884515896130654436605583778303020882059645682823691275618982329138789323236694649078946752286162053233592809871798444994982283003106469089108089610350264614774887288850094073579710803086050771257636806842522540486839458460009800056979256078682554062096898947527896904401482461687290864178717206313561759889877975300091723632026935427764122150764382628697553880034903649346915191421126370550485693182120113110003758982049306358361511975141874026497475033791191993883597870727647043228264731033726821356823661179072869702089427127709189135026421852161096980078491615176558229440390232346415561500839022918043749248777740181896672666103973270020300958490919564508816580367588658670809490685786263791029520654987034786316853780880897080809903385983070220461472976390056760206020714439300981640325332455212531969463331481496094259218270563066042387830573450357712931926805339286995673611082147056365193002695773590277502114692372878927486015752576953029967683943919559603289069748707065957799238823539344859355633087554940986527475471443073336435461211185875887987453094868091078492919099966899514885421200975265075894054687172537721940407797064193031223235819053942990881651906838560275158043623823732460909592304638398891408561391539221061474590802577185397291529441657302801520696811997534442027162319138479914195051100357181280427664193490316209205320438536755174105623452011653791944593986498169237794372840917599499412700820883110068252580811701701361233670238666855874755523678266682569425284303264465897446268662222986537475881095458027310860111654579205242642159280048200364625995593056088788332813670689033476782312648099114622100283180031901408051923828670760842731359844070828249795679832678162099174460819029450677793450141386467602181522039646617677149568890472017463249707012792649253469391882035738375246123270882461055554165832379188519520867616471284087336470833173269765043496712013881668502489120365875553710783837761506622997548151121310307895941511826298385666632494955847612274307968488819997257436316719920331804954461431517240265611557598538207152162032339934488902143695419163814082941218525111260728394966798493761277827313196841012890294741187143187978457495180049396459267968797280725293538527219071995984741533878535235341178432184108467235768710110148810188172939815142820136361746610818694362713033128361640733071890393285297359283573168330117208139428375953108712056767708628687555187955680183874237163748391266875871622323147552608980718190286837850531497507429825616281281937018477773739611059656369849545803983867898073590482345793454063872804401115785424761813861958510462157423066652713948287308497909239468694395548976427230052619369952730939150790334751136445761841019319184083162228855662916913368741366690378587477749058254777369794479659314833656381111668127675852116383577406568948772863450883172492018557113341549682925928525257734381499461936473758698065319805565191559797056557653666227813701447098647258454580719762617136683937108989219743461016021618174476114807353145569508161636561697714108964870293525547329247831872814912263944444071617395807242961513820032208884427153948983245170241883266673064526974569438269543217125182330776000491685956972742379326896996621373913420270772499152329041981485360148519370855819759991937034045808352725069583114436120563653672274649125640654659273156649565931924233255863717425697140882386836313973409747184754055571464507239957247675888909769074791723074475637375710920854862224581745162406830254801987586343207121529244907607639084352757634534269442019795685671456449539260298790161208093738976564400977329655578521942795442155481573200849475432675561129483506170018779757448750427216074091970350962180778768834182202704946859732941034680127630403063290885636254325522255814270169922728873386627173446507976986413882732615151417289501308715938466149333187960112952477246582973250700929002698574141381220246237895565232462647599465061173016549512080258799868740597636076259858424528608006028829786341069943750987026656654491658859321844201472111190381480339227454893026412412184740439020183483851001271403252711776491786772986977459929256577907766405027150123760238193026058904597532976659967365389421515539927647604082914661069869310836630900234382812211806742958297703399616265886446353432972147833874516045694617155689382430869353429140248326943078132529774740849479184947774815298864412378494458414613632495340299247119496548410722530613014136746935277748037717288519551426678557286475257579284510528440202308833253176693633484344663426530327478443076389136700514072815979677958529587612703895240377468143211299817936687166867875392627717488931359900769801638362299966694272823404986356113514386318116105692324891839019297175038503300301999600895000628960258843518951585332500511667486530042262333361214661883322910212054991009503668746311271119866098288500155543770138153927558216498828204119348714272440325869080175183709322446979806010124003513242771522959612451088083500852436464205902810962596485137419391311479688959254839407387723700696298036651428847091297596838346060461375898432683504162850414121636449102347678228917264919404608327825067892454237687386006410510692279543233860649592910955169729931613542057962479931536561394378820115754540552692790499350569267487433029468310511593910202731675161631141251961231420421101247001618327555119934710745529656627038188290965307718015811254509503112460157081605146198850816643876307097265238785048408117481398574644229912433966524404798780432834881761217812646534813050243949617760856108227541782664276765515734589759474782122849197529861462873389873425908018779945327969557596713671000309835294172216113821256153176058700630044421357824045524164639763761648909410123706097945043038430664061508858737751143166079216489466427382594172570706066617677433416578446743225217766789175097076491195453874525137204151191227985236918470169122781622664125744869601966955337922428602440565833676249982290761220788721881532615327874580350275021761292263873715745607606104349153893766160050605439409051941726954185994429032817040609850480448043591556804630366789966382434725929599122566211374209887310784165237944872767505813378403749657753659439590132872723589468134457679309063664214017794008204508944320290857396729397405327622479198234336506266467578446112367347882481996763604123117893356870027059540376664625009534940790266684124459420885010492950582246112805121632848318222533228543131745159017567248981622988860314442074608620913543632503125306440656923498201523384468353212702278805829733906305049164854353115756131423651024560031123128851734314393076208222836877582274006017602688339022943480330186264009419473422086874200052413430356122344753247393976811694778425063147416847352262508805503947138367532118690514197307594150409365235700914572864984793690374963776780836812378018305522238747337595336250805705457412975947709089484953108588837993239860846306951899686410091623974482106416243694254689175285643096756938029112799452291651840493628535156700205540790489081741353206258032250803384876437326685248904914031981176668510850346807586158136004594197418466657329100822426444712083274071370490141930966720441235414515489767400602431913238559827263097282526754192071964618673815756387959186425623041074339453084934452183427099820209091185978896142101777299740844510004021872761901652684311616939575719860890289161453444068904379542701337122035092883055937191168922166772678048359333385862349233484935744303183301545955836689869489335299263487212619586300469000032722136979213990936858840374046602760875001021107303645446767329011217478854700131293693234824623444585501498635482026242648145524668139798402859572153962541488992197059146406989974622840951193619181197241448687297600112506233203805559929620428951845695871879368480959836687544683370566584690515196497029903189207308546264437155733242634311684803696695094096688108682250079586738583313291893133678286578294430539176664829992260558349731129341804078234247946915799544290672902431400949967106097430328720673873816443600384209417930526157712133107984093916304628675256202518573734264448112189805611845523045570082518995886688412659809334026640277987267661660980748548470459074916505539209286848471143608904373127085189924343495775954413123051044929481865450132727952934866759374764504156560250981260275328943909551541642488013485966611543490496381785867640287939712810657845458911883237295855894883192483148260664925479518264744840424429040577726880446282600307627209620145489194825464792986335583244487823207148240020633643341840078301093208414041735073700610066991535845618873965543735966440713802880135485768354731256056455801436099754984277587323369358322916045579599212002587824552031723325038743088488626797659273635939596460910564414317193039806293904311840092017403555844985683776320053112203993931479522657249271857718861594891307831612056776742586358223102899025432699389802013919829826471669821517363288416793126175393776441376234233796107542252049589678421466050830558230357822712583224158709256099564631967343280237026468699678342180069485769556749201223072428341077635352313965472667959920107346614724387706229546789680184111140666830648072974066982730974600912218833674979661298071578651929844293025853717781735312819903188963743417286081694198518714661312062740269033122737243179986482683368782744885563138829295141862559670166643883493417242070794286972840110617711825939245795519612729602073177552769764099674920789141884286653174887517511847812529874839946106754304852228858155065937115523403795303319085898272970310813288857472804185118454689336981573712249496436983926754307779024832253668136913640853685647124379120768654190145479743610641347904932581101438403487254829283396474189857295501248246623414796024588607568331760028395918748397395937582965646290670857420482604960362142056829941128691894880899196160318957836519794105274268659345767062356725330169480504243366524397410664307442424642954931032912809979652374793112022679909944853762146575328536867152306310657921212585046119888235668017901933939141651897791591021705332099561630313605239508110171324748826396767657990379360227714503827809138801990593525618672520482893922289116330241021658559867580862719140957894461830879656287572424484109276849172471929128512177801579496296266713797503698644612923121669738711961820370974511719295063155271832587146436595181138814903508585890505712720924591234170918682180788215504112514067016641357887837492045615502670550883621155078769187705683036998719540833152046958142608602982964138783622673683894000422864183790505933549007688514361557518288477563248825255016129441535281783541496179788342593011039521345414024600536101661381300569574833762948477398169080211456464846359046858964131389613875505935848001165757887108255938057632810132571753505400567457610033383532389153506632234913813107548402635973295308544319685480260007290103246495284602953710023761836887979444751891363064643194720657913024680042400633854966946334358714990337773051062638023552980162273142596493684822536968883652092346401963358732947779507631007776442195880362489082305820885761712459919873725681687328381675197175047995416827902332842986606180938801424180925350809001231561835854057666825222154172285419131291535134414526613518620008748906048748871207857966138630276283907102956965951598194811308926936099820744989209745037957560699415256212045316104206284218837941337659501818540646474594275368692070848125550319932680364772424466776731659687019890702462443307219871372992346222368719850429420103300305392004254187724712726444570429161882539148181980248452397218276507446121075395748436784549627911019459927719773928783844388176358491900556568822749785933121058004450713291996256797120401845183298342930794382358462774946998325270489666381441182429213474426268020209970725283731714069919260697478490627907636497059859477306329667568960942350551048858443919576543669757120879081437588678265216499843103646377144293131920574179837895831365864093719386582865704338753846539459306050105214847990191128581292936819607955836666030612063488973589204358090726869347307765607326028947409545127339382975468521663936531288264454866414818478129422786891050057726881782405940081859239964514912580099720156366262736594593173650708469265671615152983441469515455213271694273809741317694035646871256976701793218186191360415656830652543368430902061875324528805174531520239823637744778786717432331763178243022127137304156172869872543287927940766405490450284302504811966227739557688968251343165725023300166203887453700991513536471661003674811857970057544489013092885301641693584403703316944023825855875884667152652943994884584221131768289185038332046268619743567163216904736990009769589316982891567904889100127771819843625787358605903846802531094683818151683598237118030612770654534887929852769383462422405997704793435078236367085267062002922783051968111333416772547994668545091516220163756365232624485367467971866517464277987440787481734207249578238904891147255397264432891321790164877155118412450661671697808523498966541405440175599273024998471933167504867723635506535381606269698410034400839650418062476304484414727625675078435774080843908364892926006299734340313282063517412282758178197622833639510619634294989662625163543606826598641439509992465246600285309763180539202948551590083174790068425387235771657487019625636153545454173100181951127594333865997129331023209713896542089988599622520299086896908703146974834791635875680130624245514386358252902545696613707401567850881994915772444427018630234443416927592243708402360972226661467147293000343655658113549476330313819635324635455121840259787233792721130172258541044201358031368423718374750516274344416085121395032352928169952815233932758572387239013742973661094424303058432969015929184571131875482015935465040618183437530155705029818866333901172019568815507704459355478000921810471639096081711676371347737667367535138735621466636922327202549156497778815454056459644258671217161636835043041167223485970053115958902654945457246695551213821113442441867759696271638385022244142069289752067620300669939011524613308450262403272329520007582224413217064492355842164430011553125752570977692496618271833201810120543312948037947480787386561067163812816141180508163203159342431893119363437309307943743138968880540873912377984075999015880553454691632136959417717134277337167704233619931758637675958060222268158883809299073451534149896365701766875249147196109299792600134020713194808436609604364291627757744676131754842640319954515605512353109487065341190104174101352606379037312643944613373673720004204201658628108808447322701305886952208470566503095942541669398268917678018860409124733763615382076328434532222001534480083823431955198996791279348917532885880563635467639741755038005450711742439868311937637120985326901094034308294031480441263575515625076328762413393185577741475576863112004425580893647720479818075941213268643078108576923185816208826825382369551302229133066686176589350535699302441943389124108669722854423437257595753362679656689258932960441681726635179578510844892599239519893598724728803364910079412799980843980102247479393713012128982159782112206932843840456632528673689070688233467080065120852402826982821447049760193473709436367112316870166533403591890085894968065686420517477706499726643802773788223893439559347974487071756175319085739464431404773636907134148625095861316183148345146855014941668541748515091453518924800923804528901548337734329078129109997800933788079068765716148084450582497027007095809484224394214527017425916934323708659920143765793480155519760555919952667137867300436404961126662247215979160897934589445642473517887469380108415586418932172218821105949210001257030076762704527237740224415206338979603694547310881351643092995780774973336482323399169468279312454956709370554833909276513290368997354423474118811811070926676445456833234667432253173312142448086641379135380942619368828654529375650638599339653719738748514202093063821671118179574943138838206935613889920543662233837868277939662499840829238697886717201554169307248866265035893351318164104080956080866051300227853799913734301960139816064403817845826428492091604966318413694884921379197813752326564298253548764304591646807198348483643982931381147276175084480670577037933827501174851372350721533327130782246475175251177111975781302832008710717453955796798726665453289644188546255330211977843619562621301204825839716939566192929868074309725658961846273446822235278018227033177663897444155007237085142891172654470882325006970249636114614359719631165623490868790650013271857694374377737879907516629324453903991671713422719488042835400075257609094495137807885096073013039240689507427621153577449157579718472250459781890195374498959692857114301232389127799205371473370842674388370187972172212676822208223928475792176966411724166879049229871647816049434419944010042693307964397069355811493048063715443099280367055120632611880288066682333435383150460685959397237260641476575719065256054762635600061024703929727142876129395868359419621575067509046008131346106154677547244170083375105307594268055213831791648330163973617471978199857106409835915336866167644267002520189125543386320685846150299503894472610579202612098690040993196118827868982507515118859882869270882482601499868073126384735108053783941303426625524870965799902610356284377488975411886930753069260120147226090424503033420148268768818224514518643203095700261640911633395944783610027857231679321842686062950578625586231313838439706371766359840158587971108677508356828915214642345995384340362699604021508922728153336889562481347411992931606355185824200718523524650546497815365807605677344218552419736457756660478326494595318661035078614020750380971428225078262023435775398644438204724930829415504891627346315770622332569639628991037724184826728889359338150135059290434203200069684997919487275163931689602539460516623891579351161894047542959657575701785652876293024340807600207317425764782391863171346306400998766392893392761071974184150950132463527750907931712781607572248316977822045038275674606168300041683205483133319833251599817735759190629372533447392005383104708954102595055230026455006162165131421639707611133121756105875658160159431064189144074097628603729878669122533540247536845950952623240637153672793246639156946156269822716778314453237153976739075603631911615108658898534063662349283645766886238790314388236233806029991971928236778948378140429071497820340410787610875591619996102406924065025642308102741931298222300762256998644966914384660286699652038322729362412017841946000436496651633252549832682596324143055926445921641611070080632395690643569608921892344043009822614539454176454297057413914648904836361067260796682693750182055879231377192170862378003094210783328349881226399656349301353372187676130300191899446758760948787094438288034234726948066569502570116392127204690008153520932946685674123198337709895537196147683484082102832233384701684044658793096218870687804702055528635203968204478985229519259845126320583521000143287823798140739315537837136111636733518229463543574491504778757623815014810564648924249298107834198061682422190370695036216619946585883637960670239900465072731790178807422379731752294535276743439040267840712698251829289809167131023132811908994474201895114370218535433636443352861755345508915287176847380591175746324519812251301615922008419618373472696605238474931335372431880096712410311281247580148444123125017323399569373782065661422576208195065252147818204773031524633403800628613146868130130051825724156967556783623150625029714464653356679161164626007166556334071468911623426933613659308748191928724748370523278596593087196646787228407214826339353773957191826917697286120607757775897886435922762251270396575469087815246553615762645241338418179516361716427336803693034421588865109388280029747701803342411244556377833944884490547906611932333901095861272186975435758494766096792214096821420030286098914979575580093257596755912461043856292586793862043553254886803660651670963107831507259128014668574560153136530548693631309876514050082084756694860266837512152144498437380608476056659080351241163778050200463659097122357826588378854128907759627525482182968629612184452456215002379943915810441469776858359609451273035998582521869608863780967352181776138591035251929412934294086108847559227440150855008830318561997170805789404658322906757834651605337418628576494873686946021237740921033572005383612562904620325558461864777000148709007501382143575368015269979959394192887034272353453360593204295954612183446834985655972138624922653766436898265139302532343535090527552621854801540570285828027787861676051952470330173198615484630951086449729635364601550488582513559938344017904580236848554751721693008853965741968986054669747345162189835513765959662410312298965714346243210632568367306719558345619538100428229106409596421151777987398202800849982055282782563175567432452337756169185029327821605727717439539422879374962766732288362581213484879521015714277839876715574506725881822875876522481014237068970997839708508944281487247852276971928687778775135265186005016015580098500331700550254010578421560361664597965753950078639507383935140813537383965999166480839518298873446488698315690241228668389915546510548502471964784717153772007918512740432689414179448109058836278544793693466256495025213800106951043480582016972499595968684504241567849133715431504405521427794532316287088684263211146715422649987153834113800062974604729358309090839813608937880733814074036842569526554977404250957512003218789179956960858778019977579912655836244648739511154350122674094980084294210186033013120080586527723476934890980295115919182394960589342481309813822139158225022693179216420552151116429212065915988434228856324969990831951120287526968725365714039098193693385509405085536520363052224965218177543850619888260442676903559862273393762558756829247493608905766680737274965805854323005133664863533553717731448874015812584355893033427306732459919570295985192951525692109166846502737914830480532236154384002864893521926031167811980022554048130533374534390496669926520971874175080959077634414314054826924526648275449031106593217282963981237125383084764977808555228417553896601183084885789589161711275864941137605274746967431272458926560643238891536933967677101240281894962682369310452501318554161939914846463875773320442175841456906255238949126054437364313715442668266906275144584649538398135671018331637886616809876515747926918983147842547606190066163671486948874630630178240297896068106178771453752779129374896086941269332934709587249798940896250483298240537436068117475027628660523167809059724682900156345607452287167721839846890245461217904439230181189033473426813210083468525302473323249811698761774798650813928755890824468627000907358091658474336214570440905219786006451069232454959211838739430195553309574972584585402381198863036472959239136814622537216429104044180032572937003380750108410754753829516205002691501938169337936886863118929938145874074466172021924382158969994201523960080775234811308480448797185411374782521074085066745303557155452510780858937951339267197805154137554902445373637699003759428614432982803887055476351433773189027602655826122273912399797444402401743574136229342370361300477388264623066763188947407390969050668600779761076601547241865060733926815558305533872208778673181640823903423630593893722643087683383203667659537503281039494264329988495789732653403933775105597088236177799214643774612935481260896408969450524519228046650012159467202797359042493366106148885742377878186775541167202491020790670934987072301064740956701421584888897875395836421488568550624528598802894218185471303529810367234209315661554692427541817696886490338739580087308750235904110287472102349590963350890009716247339084526773559502964644141414715255402352148800461236762139764863726264200811968027234297771032371587898919762155826041328329263564641371363429594200475749990786055775708531065936043083826566947324643984239677957534218907433574845505889337440988685437335206346155361998814742789002342109303756616348506801027104170317286301736671541278524685382652778352907819169554832504115471007534945663818687136571051796352257052763535183553693908184740337401011368453058040856031752410665200760727279692432213699542722946959424924438380001535846781885065476218160965817134957767168476275377696852561590845488869693053563515545290384294896301822039175376594783805836512814726203884639029044156534289389506299974490567510074614775836524883372576105246306773055667577814782529107496386506457406698584046702987216071194193393508475022210347268750367685952626938692740109858403377904361982747796973376709426281965595731006821125178775193247975968775716143578988431347816618550398510129815881346691350674617757853480334280191628141446547844419435992943437443369371443647288164013427877758155187643263558861896674362230723529829221893190561828502131513228019028481206593010384436891240019703886167263852628823730483407005302604341431575307166979603581541908617019246880275229855098379147081540160904517088216732320378301738238070088100383811431733170947904945542028628297598125947344861797497423444064979933283109384823706289163484173257284241810331383020154868486614938330460798066380473752890962065310404238830557296379307600219675054706331619962121480201049409829845135037578128996074646965040115290060367171704222780386364938644740920906622096473146051312390913567923488186496634800552341205464879736071171274155204069621710545824198453000142913064823745970185824770362486261317211242731321209028305442057135776828994877556462020239670256182169407465167390241009675200621489066720914365702679954337548627787591438371735704433129191461056638784531647913139846126269209855197674814362587231668184450743500908664532059942015011949350196632071756874366611309190771825670748564719860319947874792953814474713113686834976221576655223645847677462909068582241798302401894764983497793601775126242021563185334840368283982877443443647673497042150610402027519810488270693354273609947505022348680928162897736894861709951125837597017241287142569524973912736404495424734723935273898226623278236636407576281319475141502216282277004201171559872758754461304844513706037989320112712133882109533210877222484419902230967445054547003963809450365641226315464932324134867625446200907308279809936684790148617041386784401202705971525582237989916813735677739144236068514147976364040873211172174096482659238089180514446906113459037250481105229508114374992142761873009463635241321460256864917219035738317863240200857858370354117173802056674845865664458444770990705562077927754150149269556363414859448875370937667602370197255690966665418089225834876901032012223999701163042174814059634305379387774441388450143516024971448449044931196934021506803533494412396371676927998883148532475106681761996758794671356062078134532481212586770710393605033898371468608270006137809909694673639648918778673595900907172103884321937497079600457356481782147002745342457656514205019422639793648349070100736016852005134140464041160929147839575608371451550957972315892690812801098258411005901392118892905485390049522161759069247238756415686419879421555368140931474906225709333876360344147268370999268295959284878759174102687558782227233870039551153711372849973777995271837783440117180652542867792929115854770552603413579909222236725974484966092125161974238425185267201885472679956340850856598557440313767555910148222827848710312339965731356841158637701557072613757531519617189864464789617928195998565635532269987646406222595002757305753760134404403551168375038811129285002120212588316133784012254149691867813893952085031604958650414356678436682497033869293394045800254953750053146248600643923434741657819710379186374647075292811465745518583179304808854519936566981911104345844935846123347593641196387830893663528877317612302470803240029321432545362246423546697147842192382053724469222957621817213369710050480521021356579235356908041933636580090781681169832738082583424559272595830150682991412964581422620099460334294901081712469777760129612071044421250236956340302002319023863327300861367584339399964386513124052560247591621047225815601540786060064210192771955027018839610495550865455907891462747142278348733785143706441659182244836347508994357256556002541539767639438568088070032188779590192877794045779512938154979009280958357477032390076746740694492802799249064159102794229077843186112446485402155612377887190783855460723453898047835115287791655210556504726374349145251741711445596919269689256729782814294189600581630400922251623940896965431090533636424876778628441895616846375030313648037852671864363113382226956130072799616866374819060690663735968322975390665274705725766597381644594293586861337893658622299345564365844249239161051703368981842969392381922942218734710170700361929526172337678598774854060074700185591751734641979016279081934980442651721208814731535699897081016887408424554751988381499655604261359439420504252315568663134801783081024067393513210415975298305969389310131324997125945667884492765003230112572094442569911855082177201592664541168885363124423342858272616994586916084747715816768626875787821183122617230526966525939610695546359127352339634221802212737592602713712661869299663135857831498429989561921375310558106887408041062584615391096346808386032490416925316701048612993656884492991310468300280644848440893395346657128760855112892809928380839332213230681855374920523176099562182857250626139504303806272721175492770727763273763779363149303006566746357658445513456596737225636852112304751337508175343429732243444925939466041550901491197287568019097899261419464091423493494747283612971761411022351418738774943298155516420224377636519552959321529457870270290400115477199208368862290703251425012330088540361936953670999484380620922146143217215482829911041828020376787646235490375373737960964890721410510214954541130947364950936040823699436473889896207326725765437023854637991452105600182936474167218011252752382120393291813829943924289279877173065381753596689543018298124169317106748901597368646835014275536980977239078958540393759065191381103182119361949103073811061840017000269068270916051459001753486572339575027290052778896076044170075379075965591207872665275481195156015916557917472751768164218834171112316884990152901312186051024074296997877773850586922616215020885927813901909051739656939069981536743580778985626948118435757455405444829024314006438144050126196066995897087725698637277021906612600718914624108675385396479977470534967065010094731793688159739727234463859002402992513095990958840870689939720429426081700605881979035278755741872143746349256161138581494341453632993039870622823792442832828304932661617323914153817051126959585100916077680153543070560681148385584963771597398309591254290067468278164091786698732203767830848650368716116277793058442655410569686260181197426657966601627595851395330105222724756422741808989138581212041433655930016483738728911016450884223043841012178010498932037677881592979141021201586576098835169072930642482743850915254945810655798422645094791642400252231522106817826000816115286169855779412967054422499962514142537806148127832971794200914248023392069771023596063517921820363787244939329837094223186810547972774231092914284649640932360367595112418114346358609046285943294700995105890670240589889086466777639743716730247785446216764574032744512154420771049777545196158290545879123449429139851978981276706005614573810201900277268593795821268029827404975493607546926603880322749829431586958689946311917642025921648510397986408069152096821096907125857923703332667101693260839557742784240125330745125368326177681650821767882040745202966350269743026587753990329413047522522053378703960273562002573158772828377323783379387946837108615873504546962576982390694311598151568215277323375231373876406299509277468550041406428254963334542976553366996993319003488545470091953615814631263179836628886018918548884397934817460203513969649434681670957277751011470465737086950188671898479740027174441472605383709472026635746622850621880641205692758421991391065245727858344440608917268260227536638633296076106509687580614730941120113516699806058499866425768275993384881002882451781323007305446981158326230862876023966828338504592913561616344679531443937900733477787291881841160955025147297735895712629737401349486396097246973107889922433691932038012258473593167030273042189750753059134394109939542817880460111062115886439168603851139021944828694635459177394505980593527486676628010776256526950235591630489133244157023116349735778905446497541278365978851824121202648180581019464956745388163313732253831499224486350232729127562478243791723892719692394830133889066366617508603076661498135406348997251222877236349351226666085608080049728339457119790566279251600938022952610340062217563559689196329226969271960798151235638559112824414762283757630208609838029229961382074684129865116966826844130527935246465955683739331049628842646171345064710435685139341431464808148730388083053612532007062385298266745808575342098281193452610028271668672299464883514663307352134408367446189574062888945809277577096338142322571360463850395154155051824890930514405601145716491158894453739236804712492413741391862139659977987665306138469251164129883256116312553613481206367822145626718725007676752694023039174017056148982331732220514040402968682570554124853190014429107445463105364953812059531080462905896090961431871555555703459668014537938228273490042576332160781855409752716151417862919453732012715415643579678432646446266063222357410657382082636699700352226112308433264386701882790941121339164647573148749535352075082020167468655677789260228515351654485226530181371761264943091593529521898379121648806503430618130607634408264799034399498257767579004770744690217731204207511055296995086130741955011002211106867086315799225366936713451113048944531479772432945621303519735507418788195246125752388656707314204508519024789855956560874645542591337336275795435040042981927515209353644076642914230731024334097252244559821389128935590987390744666109587726652210130143983884546694355430497364868942175191246118003772366033451623923326747751387806166020424780805980821157280995836707598491439839859013556435644681365285987297252336429530545085059696361578214837848305800500485048250258781561048354564504503024456487916614219274948074786508690899781427450095813483616222585226809978998183636296568058435644909102243892711183584482875444047139625338381594388708426208879194017026325262167339037479174203163458900121195542283322189258136392026450092859594922928639961223723734764645100396365298872117007841182146262817366415120976593089001042451643803393265245290526100618683792612694393741365745205390217083912742297908002187260078756096667398657039823318809574468447542659141726668929082722324377042760920144428269963484852379748114046834187556771939625930850284299597189836173559171004913675942416840529967332851877794787293908082331650429412619996480181175080355385766066402364636545230598164531623946869574009900725958392998064281012797377392389192517387048468597924496883972151129310167824711406872448651628474476756525307034976745816830726493176329510417215598429886455450691716694362898796603340827287918851567645737744404767745467026099545407509311473644901807019928035599492166596822304840703837953284807006513226670189748872359455415180856380618499517534042007111017614446237811831994116485375649056463439327487747880593811361082746541065524882580367621240153093637402829769174441435293245543168552869793493934424344455460219209345047274148168617952416229217364297688210789253428944154628946364018444292901296131851111539126280368515785475902792436371997294075623648573820059745575689430577298552837890047644006260218081187118407673556246717352006403936186822205950790293299506627717044295848655048076042710632580475748017696087684810357225436037365627263202344442864672952915117390071187897201384202376619631332817937022075198092329031164195187729524205084879078103461988396287533121092512000883332781364282552734778320982383380472425268475241869436886591283451692299641033486731220397316827290140781657472197129547106809666532005711266558389702198711212219032914156577622855454500576513751654519668492130907511476886905739918076791610179063538934468378102068326442367523743248494841924418396108307195660536451148993685597651689465073968895251173889423326862293375997639522804019366708476819243156590267923955153180332792118182028057716672560185126711537109863591870487102373331258473237704665150058038011754588872271314299457182378843287228467351741635153008940042653597128386275496253711582896123205746418349370258951467195993377058716135169398620985282253925666303311225173672691821638343020296688288311813266710636221208648092188380975313644035288137274354135372734103908444934872518285674804005085254286724139150449418689471721052237466918684597465275312870467659519934790438984993181756640596282808728164451483976130968812570786899900580334599989641799898223504328437887109002137212218812218918489774651185181085346252452080195143420982660983626594801548584585861220955896907220571765466452565710500657153595772530975105923985999820654980094330058796330072791220520633388035270225816966862536363510453556068235228792690943640786686799207632024133973246160671714967708657874594688222670215272068178209207953564199717233888396490391363948013383675132971780644682134972047856947647786250996060747072341144452419483308235880719440467530885381462276871107608405815403715187145287722343182073591261982895971894477692963567855242315770105965144551634799427524947369891432664686366811656762112304484815495671051865216476157709904315670941353939370005890053339203550887168445412084985982493418436241120405554216046557386265461099239163955215124447809380006786750220917431094188016988123401863390092566600949371071802684909316112613142715369190306617672671225894029182350232493272786094994512239196096556148152540974247428682198385277569502637869890660117627663046056364668904228755042259791440116982497476016337963281621467736751091454334552330219527929766199070288973322092814894642617849185093502055343794896377429846586541055550082144158301545206535996436528546558866555858764739090495775863969087827745457489587125437008882446742386385690659639161346155683606638511587629656393852773929459863152832968203115297087303548460322395094936562832721532644934104598201725797124320202018578007573662733480538293149868537966227756327253823926118111691140490332949317169259442096954706977186874472155488955704214469423614431628244507118541255388702166470797750154062705650070060699290245359266789943168227306867666157395145509520126888011673143085944812106843372789891609347746770189452571077176536204976311645846232221310450919943160931860718626039952460773512042802215387974200996460829879830836334803588824903107453510925367126580947425205218834833893040770311861384308506998846676814026601049608583989677009018552086011033507495154842645399015771764696033081998813890500174080726725179328811991007577817010430480609590084497039273171929179543213397938626034757864718468935084996629905819514540323554900139069325156147344143540597980333853626546594221295508752141715499838233109607391966672973137940783417383716315068091792726388847232446336032086376331709756370283608050416883567959629757202412055940394010119979141687876639020992273556245656717329859175919739072229414004656756199885373703589818604398755573110499506004434210990769346461105422551921099869761968624536159749846728115045242716605857219083486111195998458944192461935522687913083135815449819774246357846389994188171593750399489487890913234040219245508419342246022537935315628349126411143890884345232464414192062035065646197190092492961078301251400768639084160602332384460823279412108555521198187650460793656433130491777186632221075651366216739107695129892123528239191623778979183931334704606791014366624268208168170330297527437761886271583038616461027243786131829958834584937898282345372909780921644613341190214346801078523517741834117405762448618748038955994978414503041561287077780824026102234853787488316441812621081505775390584077841316931824176225610283194680709100467480768356735959132176648912811722022490847519461432311097172483823619358734244084385782351501183655167732140532520822860514573857610281867002270385609198784840651587184535678587714066671903842762104597655029776892184053411579072891344057807600314016788390818086509801731078936389226990029084947380984401361679496123300755453999268326956763155189147697904753195653099647938324631101582926789070780083213698119687914738123235482388130400219685176352990006458430333760801747733221886919959193309434723633055981723193244854183868903513980347632015195729285610281068906523207045868345075888321597186071455497756142519420055460462494323389763666970556710347076648437816940617437007840546208632268432004372351366860719241951047917022222304178435386020694222164227275692301859003693011553818784965533945611094041725613381762882996676224487192415781665078162913286972463590402193594360396063363050760599917544397818942832441432251874556820352312121524524777281642983607851668880365239216474745436781422015093768356960617118098796892346116987635035544512775092665823511471379475998516349444861505145698117587005419311360396279025491364777688175289268737546941693511526988191656300694281896913313912628218694258102669087700062988010060249513002687663450355725961102882187494986686621972240729698939024050578130310619180672210820924797085926865197245164977699893860386382485922354249073914364588859108234016141062344495383584432057920906642264545151665909372833849139865957740690610210740548239673128179110631365628992450527896391008985325042762572333194802039709226074480898147285472240275277350110122347289739483594388280719584560961463838911234472781168471648303737179541542334795543997363062980910909257038345245451973488444752658927500552277340065073794266998222965615968129872513411709770171211055895709723863731103339482533551236571554714230839933162971168261725953111138506235844527061386327611250791611077679193640769725994117392767420920023086901488986930047794800622725088967069720256131118915328715059547917420726718618707671474703058744721927983632138646728734748658071473362080459610511017184656956028432554413470874292334923185664894739104852932017574779694879494101414859194531705383578377350713999952357979327819716961532164781396789074455186861254615040544145206708345147711669367028403453304171811168562979915558170389512670076061844911378227013785992980873035684967438074652320186390474999570724782242145320368036893990898448279995487196977725391295481214782706853176095382363660818321824902878218650083039294337395919249310052645904128485859200263135189254292354649032310628039785566151668292278076313142630495379611043383514362194389692313384616938447182965454698238899263859927733366020059866069304826891344039069974272064418243092821238670730344831224531599473282786613896651572828327015279228145818838763714077578736887549462899286414981656110069938341518697694864493707101116187899175308968606292578795847997938351605615388550141366450536401126179063735519995458353932253734697486234129933809214719840011758583911461291691207936923879970173993145716907235108324337998612726816026702413976274886541842145112479779012566064364281755951724639278768806516280025175346728325395675745920319158640076558905155801486373801673993517400307920310299594136533697901976433813769898808827683711754656326309765428642347759662700736071251659233550045440280570164983437385150091496870835708951269482871004953997356229546840692491525639447365789904994259789933884650922722272523037454970702909468805497092329143813528393100977330442939635492555299883157629381376145554067852205661315209371984916056146785322061550119236800257533191883693903904787624031704197567006264568833772874982661535681861646222591980575568998478553012236196127578357833583169445235347114220377280182036917314431321800250837625838287092199692613216730734027731930768170330793227312701515978286005319601581354541151158113435969883220855083248895230901872031257917293351262939601974346976497252043248828242713750681071228682112601983666554284053736617435937261553382058961595043576877967196291609641048329636615824428998779763462583949552967575273963685223646494671403723544717145933470926475702276345415455827052609227787486403973834476269396458927356660089979469620368447735508295324275117437684005669779107724602172109108723542627896825995851605573319230187925144477638674635846654768356300628898134718272404656458154336316636628103808868785160332564718784586297279093536114204972959224895992129262351139154347285706490657477980174054235841300433803719728550725374714239672730367997545414722735037141353891064282307431077230277924014314574131266251933079367421096762509966593428644870654392152721289033857059639899342079287300149673064694685726085379271615377704070315519916635155408921280701200433114772339430046267703232462266272967529710149416595954835174616496773118506062938785531379236199672645996158876939361060818332772275399567783587560200297196313151671463031591345749735737259936967078869893472015966095003582697577396131429344224133266139372603857896126683083464202294474615188457593774938011338870553335525979234882904380366360622798786392888539660439825665394457291253965959254979416631372531086563644061863164593008092147347183420297079371337486352827067578378830880260832414143751409845380754655882885853113627048045952008047012438461116874805375310398638365039659540388631709888118117961157686902595986855295638140870148425262451764919136835098704670322567803199176466935191909312134675698245495883528618608124887333293774150525151016786959011189741291013993419424647140785544453539205858467285088050046714073756409164002401312256712118365747181333353858383390526878297342311845760155581721997416417302912712650309755604048059287837722379630260215267986960084537630160822190442864162300853946997076609024497971086626189101840341717893200515909801743262420629938221509392837371278590469743467538654410394548641028562528087252141187724958633649375304467644062742580007361453685881754332788417755435136671368290780082903368315303786340560682195674252588585328376709464214560559492505710175831408090178897863275568052043623489881460391519887291334207377463146396199081060079329878335327906063465786950998896844829657296353313684094807543543169238487071514640149018759272491170832547075898405139582180233684394257595237108018658247178006533713651807639750176297108792964702875752948470158167855701454756500310448209223827645198324729380057584494497755078120009452890405158197991027656976682956753691251024438562744488076435444930127639523147914720582037839012905846696032414976425597231164029876467145356108732924244575036731070799458676336178267648583828020199438046505092348485917827438077576680004301243695591292043662983703874673468934648627374342304330258883962831790044299384117520457227990126518730852223149336047865042488485419909953928092686912493773991681215656164907744808610060378991144081884923071800014743386839999296795967545825670414711958092035054619644406774255317098531971395947339738134986498324327249892397671973347363907274833221652171283134543273460135697406326130436868616639792880654713460105998540737023863171362728565802908830554660621177374655761761880310028063266844950053237497906719796524947999372173565701493559092874915614039704872160888665785189627628411275950289686802728472161244866363556981372411312118695678029613160508523477093918885096719036508546599886164474027256515750028482007349334508103658223597756661975833662570876116408143036954864282262553755176923410620636787119418426908993330145135009209538783470263062846956406122831892539101977991271652782833378759194338197586437331554439438241430797538232530992572358690715292950576663673432826127055617456741837770497373224565805637814077368441266632533973717532215369833194236741203954767014328669182245078377079427352722517477480130969972679230539714543566790011789451037438922918536352097728001001196426242496779265622120371518999033615614287546044385670440242548882265110358209785897987427079835012416304170494611833201380106030840254645675501350029673399215831167445599482425158731859934536324953296447021509773732097987801191718067735463295668158209619288098030608858025991262252151833292928008154408530969975830420982157059103548036403233379852483651641106560265531052533536288096642922765937596929683159466362978594325823810230705831353959242015220770881805639727030320263136227374534902756769942177819451417729779521413356663403953281089386429400801313093440668673799074773257159136962657403000106051243706359766805478974965234814982499242431549940826944994041802687441962908825065398099432072936636106095532726413757365324997229491069330541055268295018932261974183486299701885517626382125396345201252401139142041794469452633832712262838014395737610376334092002597406449277056711833153732993106536327739236296366616978058010592229312543996874887032998944980955641666986467719659243148675637575719680258254626092934353571436439199096562643574846570027217459949239747296302574688019138806557762358094369591619590244134888394290070760382045754207462701766307988313772848754506623809406885361458496920449946482544689086114223699597683062923132528024041893286701637253683522089977943520652932524330948836071832625596686710972870957989952399768420753624701217006814651864910531032117708708460856639484272674743411311224208200003101061051192346471563481081154965165461770081137768242131331605817433219996806212899748641529348493421477856607000596087837085968705664322118505601300525174769092610935971747505456431466282853447320918034511678761697845111220538948712913191910272977097615691863473158902911094808095493927026002357730833711679220867797940312878275409033133414267890476060237815532594083623009601483708691423036139423422091335145817414630525666872189149295227159755907056659848427456104554295928918408741168374110170449558188028523641952296282789757115211330375640234925302276615422963953716659589530339399088827471603943204221339565986844278685382679223070904635516749450171550909526553738426631346751295164013590777956644849020482475012063838707407169879194981169578781227111390708330209886854377150927742059267839790317024830896804215024325562179323326963121655398707201324796417608906079588037579169253885957382438519256156704555169227757672151355277609427433903199080813953184852419552431697874402662450294651804224177210280595516195944841264054048210358466821834322611797712190270049287274866029137297997145535722529522239471718318073514266895098798056243099202565264403069074758735334796480210902842898373358667007251149868514544414291544571819204951541360887932223085499091180077779013375827708345371916205935556264950211025622428564972263604172448172806137174661191976786999207179770830841238992210090813124576103621888679052256489692539114108347848915940777808347628428869492169438783111252262734077717207012286737622933851123216013973741494211360070854485689911593680440250703081826018297806140627763984625457392713066800074851675027103154227575974544816227480680914915113672073326431382266980391893729999562896559934444583777155995614997251005048886219719574979177065709202719735147666988608382443542538673315742514582301441360645195504887368187814847238528897117975354958853843673306421095495099072376851348852837464715836468433774462407065681643403909375643477851731159779516166304136558525134443440919425326031779336979281693140282100040328994659933983441718536423394876589248254642403236729918318737189014128578979017044514327662022294045682374938537206615965896993297857365633064607094708694791714007417648653081645951456592894544906150251411721882572041121727011109676412566482249271377558159419820923990343374975920416901278112651978242043979406378466409291350957237856766139405002871963721883002751290867179501040498413944754916703496210068391660910278387872839733175359715886380105719780919892007239364769753951040041707952242530665850556496009284657346419133813393402750056654668769270528135782741162428950203947144249415960166910052578282011606082011327906727043541900479548473238480145483281008504050375715999686098447722441530818981962962820143228551612492119018312841347923824022463614365643290520581427269007372795704603554159852575998361773831974581378592107791288469610978664668688708559420580734248955692065822987661431445145934982360893448012743081318542427264316354713217526470339889150120907609104525755010323256076265547189565112391270230000708754274468691958782811015976880136427690005687402521266935210692166198118078181877214565891199053017420328265743279497573184491445680883720993984964440536405513585184768672143650271087426178245391147375913464103944974249348258853246734604025044506949877249469923824014641166126732344791330088683177187959940142453773152230569820792459553145859910781012976712790185574956716585365968888484131589395479054927402731398605645664121690907616926985329391812718599811362671936768292031301718552301904743585495552839892992021225510947454552066240478428585929613190322997092599751134653573020193995041480322662755986776445879583671268421318392866529436728740040352906298917731792197883435714318494697411024949039923535030342033473051439797238433957527417523454902205369876198250425700677449244388245711026494380709435217826992308885325723824445278510652714949108449119895777726514378787110044046991566997760526570587616604491254898895877976487036769969592654744316589675072127880279610198283008770576088546906740535616783223795042041197388272275400208195895553340241541850111976716329089124948238913457778950706272037819976232847986491544257244838952364976668016789877635414826349031384311675774315665190517689605746126713491298447618067820628006813423795692685509199812779298366035507267588073417336788289839489622631038018710519041972383564063639268057291944962411287132495981931949613264511165075027834512084046144967034822844347178011005578602357204237890827125568518390823187911896991382479775134647513769131763621669953937640940090231296846098538362116632589172250195014875699828449094771024082864390549532730151459097074724416565521394323726689979960237483252641514621806145968461008694340330456902011807055551116740558656204443631530921272386905042067105162553337516109351276415635498384871170005059178162775247247023419136099103416901098424981309532348260416402040782681113095471517809155045340121063309143613670299133144645248813084657622445023360348762405197133979292891664997303816469865674119882897993063744907909094041380617171631955791865428184186079205497239352542339585858882101209467732939955479673313789470123444500191446405614095368103484747706934973015246771654599324603728649735648095502416830452687792428763538662684164531118963902124535684695688519357694519064388482873760699005474385537703525807532355422247100884297765221261451659002265491806377927181874317810932468592466706760135551322329550128529630314107294932359192584257998973693487868191803646849700540428837456751922031213661653385610515911247289911745502578236208890007435101494258320451605893257084256380932301435104538849566471804938292355306264802134570636014336104502625566883597304325483497925353061016659153241783091950666610832342011684099030039362613674360419476129520444220034107903756000650444782185649482022385943645546432464661028275615469772213401642228840474101398984888497951566698595700049782378754046182933855632866998442906521681690278257949604583713502465800032187034896543513029738336901489762408398894401901016336731937429840596770332062414081280414517074237880917255007479482043970681935908272217854900071575098749889701847831976698042073800591726260172846015531001942578941258241510096764202908994635242458286495378587292680402940567490340189571295221955978255629083169994945042044435163357982564283780080390917750821956509453195268184057612394542087732436569822426025474776272013934485972377538946744809295247934085812228208585312906811367761464685151660499346993566206672096938381165906195946236737949211507361616148251650622385759109967348536280648869280703223205091968994206365026962539502882843000253563552625490652778471849002926128409785559113410031824779402348635668163844421377443348799578069244151675982134351784084133769377965596747036721099068010836694903631836685980236875917667415266253587148553837379886177429911086132097431191210138792588545727090351890906586420389130703290973815611429000798162448405046676538329155175981611590974017865150939913118123254741101131488012089766046424044425447200201780871452770549999930303848057522309284439733134943926522585549645735455189638776755313338315286313511390330658445418042666041959401922900411233302418129167918265751402931323186954654387583224299391503161792870525375351295428383683086109538913427921377687630679663014246493455867259707959200383262983317910296064681789112799874538769788383132790984926718741341660720403712045119311816265235905080855523252317435555905862721587148200905154235107370125552069329064810542892465461914322066988268957281625308246651223701469659544700185659313650271941811871551245534791605848321657520579958766174479435172913635417242753429683061960264394223022835524598868363257608395468222751723098853828901956627221004888002682855945841795198783070152151622811904133466352008094065913590325486087624361479774353891394133160495400675997137622394143665868125752838238542252509304723460652181596984252082754142156436012551879535495469346458291917554969695191672056153372508794633214238675841467336928240660933467324988501039720360795092383528248885990169313334008222237705357919265418803639554529758820371520746827029577959131982041432912217191670897915008153822490536168380993461463274198497679983300563709323130475980368063799595759197023840562421987232756725056677751816798538956070980393730951941639288674347496335668125942939894974629394758245925653426881267719120470732429859462657295878846791439672447244169155184400786997888904363565161043703373185470901400851605306416149295660107749870397075012385437716386203775059778891192509964497991913331170698407304417804387572792780379352371654268076817224683187960993153630587440749961388746984440781633056437195166322158182341454022564302876217094422017932798878275738898052765452160387225583690252864536783617400036064826767465295969640440117767962181639827349222069062942347081822357432963462050389007976947375419567313512394739824555513711921507138672233123482372222812325345297098498406920549737728593917961189726312739258688267343832695779133792054671130881190526791015726225671733965916457484550143953090254897065617026758488526951734547693029772286711971759958510108049658972702637837114739750531105971818306164137260111531760134242977779621232379310471452234332426895410665903759688968631570521810294264419277926700098346996450498980273674751595514619525691773224026765570028695475235713589712841227033140664685410525987421534062401665671674519643002944598931245818139008382508574054623520408269819511838730735202668788018274030014481362876158879104552117103458388892418328359002684009748187271027621037432965772174600244751129765777071534069193723828181706989601060264852222640510437273297501529261987168005588738036587276066398662314773783214509300892100356513584964036987383299425579775833057668540026932621259336649155206157561692526108621904209552343847960816084708633348036775387947951969034218500308831031149991571564860773018922088036887426892942917854688832261703088795872173250647629588570163560207053299339045328405838812512974016726151688224122461492103104732604405798901575351133220976741455848648738981682270922388551619460675708716840431081079905282760144530024286906812669744133668942557556109655961651719081837730619425980082915252833331002502556791508623527558999110545706494922363607663936833128323094014932266619204879569991143108600066387698488037379768992540051500226836956088615077152646499093349331714580959516190517020445750772405591060929207123951831237851359203189517798064446618787054237438648835133865857684694135172520546203671418698021941850038999298980833982840081701704825392410204462985233841765828347196568752881840717589833763070497512921053782461526951163811189296143267768228993662983890706449662449324474881719408671748267769513839267584651335339471626559057955216357134792352830200796833123120518136146869939803969311903725096677335546719674212197842289663759833851061737362321556075564193813493634495757954936621532999157682776447776708564695436681210861083427077971679288758655618601617707241904341652451980240852588704221503731258992443033521369154054584591992720705047321327838662899792283666198746010359939147205055185608718114993652349274925173531735934652441043248654008458224168110892333531431356591830961965870711686001340972591458580016272884523548923989012154058227417869194693031943514886306826554109478079514674198374799498101926350972285033607856954285494283941729517293357245183149257054145682115064678817433491616377589982015954272515717974198314529487080573502054109978937779176056568897211105273522298254152582192628163856119284658506262456555821803632252342457936173029327347927947266922793860771905551503614961822963511495356275726737455149123701514920256529886320923205503431517061606305162286110496706836535459058476533467963557021468403518500585190722687421878557327724281064740855065928335966572127033761833591331879431904206583189655420179451787603797722964663711574158900553630163874628508041361275402900335505710325772486707056297290383167146196895886816083806825527840851195075788742990892383540391175253646035151382634289202487428227457266949011477509181254077611215264834564560420403583199874913892832520526471885471807675450804124169101954672596130814346894032319649738848917021172499576053200883139047802971064516887918894686956729078274496928285007524329606367556728354973302769605562643770762278466272622801381425835603499980411909223914543386499321443000107659283895581538003385843642193470607782524113129464348546193969726340088847624248740753454358375153147128293399252360393088637068715509450535660567856250553202620929925098390646702487113314225470121752647903810038964711250414815485348476578337177248086619129011001540376078404717082094182450938821706455532480225063927627428011807523553756531466183179696921353785838240163371383279213052420143792184059987649473305461618842735610943681754469234284281588638431118389685468350683956549144074540458962067804177535724615117100542794619554334023203669055072180842318648794416796993354657232306309648399178602676494423369695271360091031668670124949975498484652852159923324895797780609911472986029531352350671863195944431201509703563291545034170851284318152491239513793038580674878626192291257312807144479176155439017058104761609544621916921514498815054024462682246241365165075979703187133225732594159756421440031101473565209924248297224176054293647876093125905882217277133956571079240304546465225417414508654258173634031524752408238130277090486324961404799042176010010029687283598402502738458785236516556559894238856925359865829235718968134274930436915506009800548699574898489003818745533376545039944156452978049779430058772443743567805060638637219822129950895045909240280585954180298861585972244410802405103656220906494652822058695765812187157086055949169626206488770530709524302447130072780241613622880596780284265537998187186166680600475433124456084783810141198398255149027894553797597279423520875915704287268559326749257812067408276785367821916805782695850246839257579421723082686055340045130413107356435574415717567717661396102286087809014569699619325350696178383214099447265292525004334257365148476493941776255140398034196333828706031196652177331287357167463876103986002600569566381161315631303820162083279075097333276664667222661507398042750963687439955476825142101813115548582945689392324706453253808158448380858100611706820289499490319585972594916278659967822497622460116732764711681403932020907244781185168023540247103334940183219654515618207942896669293783372031893709304963969550685264992423363614818625523754695101392798706049855855093279205959086179101828314176246879863166968848329307001622324415603932899111995283986035520330762614574305931271112788179679157410267365069949831059962870068821247894758177692558297450122444685738577174024459711135231632044265409454815441066624309200088020422787992443298230703699414252357871848798145114059218864502683114588540001397917662770994668970860869257657961147768302230333355912367689527063004189328027819321613880029687265460663880016099381571285677300421593592554208400226841158125394321622060874800560170182942462719619269193526330345913448570269167739786621359441943123842582043293158136398672674458635711958073238002181196554216752112508440244378367328977220167065007216155890208113003961277335412716335138701809162208646369709574507621316917216584277767398136642497887864942406710812221223688577532987302638058965113764187220319618556317809106008806932499792108320670848564698842837351246327643799551313946656122819679488277220297434411919177446187457446367919869025210301705357850186423470066029467711964186814545633229784757859879058309460490298147742776198805891572157363047896497068903573770292748304473517015543772820710504971208918716259011259432830797237115836741903669105801972756086907376302820605353007782390685183961720955125137628116659593859291065706179295705072293677644591930114761237441269670564369050684988392072525263552732167911157913119311258539188480955835229705689373542445861599934017688403939486599576630666033733556682540487512312318749836853679085007916459001406494255055522853955860222812684418528799092477824447672123237341007348159140589317204558150960257066710507913060411287601588270526208371506827051789905175304644771189315253257574187584390690713588594520618940146616552807198994769905329204221269179096113107849364251499334156264689605425813357723198489364775489404210316293396588071321442072620927963810155348337107137582502045987077195534636898682597271089780644469429082169654378962540231615820494604076745245245042415229255455441566727802343253384007780474407001698651933866013337102875226710456034268602047856288904056582903491892782474005877190190811565190399215172276818237831068548926559177747981869431478303289508367178022532869268333165522125488580551173788545365091829275975133167372481007892147580599236262631985575491135671550134465813937822310111957225732018989455247192498361747920859103183612114447551604078306182961325680333680805339095935019223788784966025549398400125008682711909761057159652452455496730411554857433572487288345508556023967962671615190132134154667092527680150758201964167801258151374520703754819623020758200820693607306015593436888129642059522314590510837067737914128952946091435801109448585188016649454399090389744332396730926934526418046197231295752145933084360191789450197048834156981255956623836609242874051053161012390977127564607537959134419923258727288840018502711336653739305750427750901263287715423156703821374138754932192469909077388567065512786741987831426605282595029721506997809805457320319066346927535285036259798009506616752332101810167965343418022468298233538210394018001264468277087522253391529500447281095396898224945574500033635039649968857551420142118060709959768036992993296945383512768011647049843267017970313171227692341522561411697207195748173927507989799218620426448341961703531857917089321888654905103893859209036436850731642603644064547413705369833822873116230360537450836096496334524326904218257554791800082900206690425994440530562629331666993642915896549205732847797695146735773054458788729229934890663464924808042209255097644533080065281843331047517289372669284813584764298807548211224411213994720237273313490233034387862056249711641955009584676107721474889386225414463026851977841073467510277762065958896786408940391694567194219005097745992128821282983790191857191730237257342134526112993347100992208012800298190415553679447909571256030595343308689829304948299303502291468701834290698122836070013070179871369829406568439595889972001251322723649921553511213398248565776036553286461083048456573701941485170932207134473343422755879262607494584220616343233531418837644365497403948714841422375525342944024616620418389805805423427124295469303339731656663407807335890220522669013122241335109398367738913212441979376237556060673289682848148701773965796398470563677254182444729500618267722172400824350232277451074038392581978055010492796893549552076896801563745068855903534570995296532159294723171909733920019076061757762683277944632308395120781196945476508245971630084216466895893483335565166890631123519424394459064552235122332056897973015461292547362341030130664079701197126616959631707781125222018850871104513542600646743923527873384300079659553718586234920406167762559424670692801706209974259599204749758991468905719935685644183505361812308187096946756128524597478655304582404312683395109503604587122100999118491786657755795333627141812923679853578415775617445641591940651083227390378834407272619784040946626379039946620917087345466413971649188155047651892534725281492757649521060853385513407202412729810021262221384465572828986899886563234190080912776614955470802924824978087725406962494401732068999883861817550098459895171039706257941257203293960249944138263934445561926482367866960475299295301366358488525383282041338694726133554550779997521556598117478437438746465890884691713480695176577873748875450190836207905692228640793997335412087013805990631868310865478570076385472544540787279132015025330114984033635885909868842837798260695215107562768505605884218392230839776924410643568079084927652595238881771903806113215834249122159066848620123066944648461536643539276856918021582098894935038230201457370705027738590836368928965549432407251116146265103615746077041108278951825174580057792066658213151048730327213236589334779195556723037504727356403447864515170890363890704593422314981040966207373165578752286341315143609347231645714311835182858743149824759620381444349206272892347477091374764261019309784230838259609891285739716000634158819167118944388557341366951434661324495400323097335543508445063766035244049561736414542674246881172317574646955561195194232687992717178484305512125879697975052486925184805193765797915476539432233861232106741907165689905594660024861858686256471929883739702433021621243429001913163822376671573404248364828250374292868089148963176091098915421165463048327144991668912710970256230798775388328790366155197761592940229940224933119183902864005542728676024712548399436619231822307283267703348261961940831643964093437384593000072969978971867349129841923689006689669126551593457117607719372859842928036952062857928513846371714694387928317716233180783049050303264502215711813457582637395215418617562645989361813232398095336840872468339302796471835037841657821268780379104228498010179996143332106291063506991014652454231946159045662164725058275254776863122888984899448709378033614956515088238191848055812664424186511776339268489677905998210220666526359642914521427820797042953389651097299043578285943826367574984935153644582418697998353097838796527811868127603546657147429416958626671896258503023444584734928196343884279342370789368845853842575973359972742378633409311093535633886841842320842263100797649768005418392002491746356516214481974674108569932411430180477722580484804600844099040757824393971137966954133690519071118429871836419911580590932817304439927770963844751444096155094701669409608572262171884480293764043372867879664828057832736025728102096249074079850602630741922112370612764872787937505064888531549321762233749626293154775812943038961199987549852780103180883185706203443191201215985111311843964763784913075547544300910551202043285763655534482616573852654134192627930012168058738795845103310410803871171305001005050101972786845392510766540980073380930277132367283565078700809695592011158242397549879097141157440112808172877832566023861657417853469771679887108615846783179546625202773536237558636655538790001367011577044499035011037121025414674581720490242613164839234772292001998141700950832678415500506685519579493495677550057404848415932929467179556182361808163509031449277097666708568412283837011752532022369505077902126665411470142721814534556503195223463790686919311108568251709905086768128104668668645439088223178198660773690530006329871943593193096478481774672614315742667525540041037769997252112772053063372333127307311298595743515279654485550970238303197981078254347360600487124218382820843128689655509809252003096718749535153300549457352718209298757257609461358803939111885143641779191761164980528272451213144768252766927033847052402125754029773368998073389379508451240480482915649699185760380598059223564587419632394591929805562764705165617637772876839932022818796331072814543528143864752345271800413039166690391391466244811131451606561123113214549394047348831036210229553960891890338611741327724025277081167280117021788459124052501348710779043675627221547660006914267187247491551873522606055176636151283279569946438567049536602689268175935797465156837405094485182416406128604068972155453502832868083470475091527409830114227365805898123382478581332765957388353061595280127286550511524978581751442640101237476544447703091958719839696292857588071324657974326364363908769845822098010203228381003918670926911737263676753702039165171255886118117118216486741289184636568827578478137044676165652533283021163152404666110405582106250794801218356959464289299855000793821891196983311441198170218732453646118339752947170362507758451953373018328935702720094727696410772274674424391501824182963048979692388466737529220787270353189711448823618301071841164799294303009972180280918188232616806090426953156599107735681858879352803791825438401130403120394589000242342949370207805481415855402217841010151264077961518272410204251113167915994202087199684603324524681607845644586319502063152921789073080845056116167433318532665166382383410105226193269846866439267837207144289602632678743443846337577173889383964606618168690548907666896532646632867103938335319610183481064605538226142200971664730921403142447865679916708360284373218067810486787319178859107521675537583506156007183343610387395405793329524498991080780159006785515266491807388382335463821481957817108626936842778727639777607165300781924625941914664919437743147845864823215584587212086170926956027121808816886335534443968151280442682454821447683973522199344634422162486911451909935480244381202241834881406682714003007091638085110523474846378278442475517829092175237061517212899069913252738445908443739692034458596857165923872675570084223570002883541366743138384354966770346633743205885088237741690169555826534595629923216100494132422825002593773394645474577747302733238369564585284490794610580229194534164837916633068386789282670446951590359360286276886882884252863608554911720719320959316498196556749555880112831346004642814672828963792833411346203056925675629902679091982094319411396285698167751656851219695789941201393677002777516363604577285102008226055816436936654700087626025614323034043278275916059063707849406495854515292605878410770921662194825908446885195565799410272179035886722222225761776865347537668267480070726440368587531158745127595674788917896705286882517335881227807696804041360121993059206603090418630364547636892606646730450243326834621323397288548981515160165105899246598928585356975429058097928922609197597668675288033126446206644667360292702118901814575994109925889711610773863853534600742590123094322862459388697370688567246591197217232566076709378478182879725368434439735657627436067608456719439274077613063052663294783086068057241640857769283569302596228309269490502244925258048886871034120003467402244270056279796307068879430266102049335803039970806375865127004316169075032184611045692222175863115239503831562368779653105423199960026866664747345567340503980223603516847878607123984861397370635904107365604917168815991497004141398057805365461323395828442763417149154617848517949110816950590190410492278925228132877799394358888377982212303272926769799970566139087721400446498259797663161447312132405104310705858781700513023877897472562935421215412603986922860727647394393471169856218721691221269821556336110226502746184599660346239361041659470901503528558060080603328080733130382883607526173312431886278528848280771049516417139826602692306436351217470315322715592618554244643782212942838493024518632044595021523178119954917516559701597535867537963500699087346888859718767958108343261089070852264723328185216330706245539958858658838262804922151476947874733313625683950002565573590217860592779417867281498235199739288045655222223746530895552518574590173537458904516446989187769877258748255683996014487314015400890254441489368041383104723229465748218335871016165583901108085289866962849414098272708854663917922004284374270149364460146280089477425922800007518621400712569813999028373363759256513853421365908814340355286948808834316760803837416549748145340634851561861608805333575385215928130041965253432679030808933190746244200270284524518735166797163384857028170353293209545010346562924508176595141246972084083919994304482268369113152919247647406842272997124811600838579657372383923032302499371334315852239054898282505162568743507687434270419827259359853575050313590971845410491594047953377843752965698313621487150077585352826634207402927532233048062543523882259951577066821459220400845541255954667790156526103525599399154096633850654083713602069111211955642657662351325067961635355112624555492577974031136253581708555485307050509112068863167313156566904197040939089108171585054063349554533444573491365788017148750076648765265826797455541879303796792563664634950913110920545266156217165088060629419782721470969530930622582272047133690959764617304868111411715090532189193972504498748597801175732127370484495175822148542478231645057095928190832322935870268892804418778153214281582638546186469674069718651617922152924318322089420163294737023583185232545582975293165526379128653327728363590123090761821134360717583016262561628340576066140861233302823785089259026247415533993558343288168736644679554955234481716904402862059196512322680554604417092994372170963090701133327350215737739885542714245592222842647100655097714398248592814301596153841504475369924432485914033514255249421843519763235262217535177221218363539148338493404910114923007492108956781940565517702839835458661350783051909076973155335618885585776502646271927139420281775143602783263056036939803008212725405082396287617354505276215302298247416467986978009043178201933735656337004986038444158684827529511418188489888133477057012006214543506611194618793990228091309473761994379698444786651100494670024424180294591557362680232961039680245145167483735791799561958834435891731075140904708320899431037465351495662683109388845397480975931438372158743926969355897955440084362066830702096862255324061010379057389692561133411301097344726726502046588000694922058644024412509467570931518507013785338360801183267330673997237321451171077047915970296640537687810848836337601448425327576661065754647080770734664086231389803367169820824463940774054788946404760757672784628967333468817436208935132201107866789850436124073882993913710443344709685485147263235381039481095603903618527115027120969578345814647221710231082991111439779713671922753938822930625935410333806720606761306602794828560823287752943989207036692469054480238167261508274849599078592013183726985733860818903601041260904364629143712016637554157445302851260797614567344665654362524186266567295497493763879944289038882599549224959163136052717121182308969282611656341504626663926711196106137512948588166306855415548065849806315508912314072520948458857843367175266763199624552870317112318765790959809972313550668359403020159172416155237011576486662149180527318654054985160590728717215716960522918528776467366292837377594446098072817814029112519924761590549988533265366517025758938174389739157590250413315624636474269157724529633999488743199512052463783802240212708798986185013137331225671258664338109062456030533271496499534271181191274475279948556237345687334891940645649882049234606182937081784790987338227342785480144025767864355024807120677905641517200550904576377232302957471525511145896462279639777292555863398610940372006597683258240081288601113843991866501450517003696685409882963798921354411434198464359487986784797583602969177668629804413707875278044475041333469708800402090794180759823743580229292619603180487720138311770479603372033896429517928660836519017971661848740527295949102518384416403657250473124050079044462344950424586963766979072245741351969358726026748333077768318128481422883887853575121165754056342665243345105896106274259751552248734831344382531715285160452205064136178757133093076131090326002595988308387001941934974887334577957089168340183006370220523858805858393738099920179664882003032193609033074395199861797343137225371747599776756692236284640193768656916245479142830654814052509255502712098297861145101398327357801825767662644818867410089989571258969442893360019478809017592526892680126600577215342157377663836120578722812647738123084511905356088700924255143418639303527458047827115160244939240368759332332486192241748837026048139824187508197899060184246161223880297013465803342750826028623485167706755805181886222508207260961928763761482187678887050378955262153725027768265333615960336540483076993230556711821654977268397163552310529331677427837737870477241819069255638518785817170201518582299760970601423084959731593890497850595228296402322457436580990340653020098103074428480971434903647604141922866220475662014415756663455334525178291113834072121853287200419402962555676700403086351411552621718515249608054829877294077402723075994232045103337193085500832979432975193349128388454960216833454429086321298406031591772187978040098170613176187013885285516580440243702861990606451730514140158193906852192978296386048624302661518950228190865877082543463494296768879618542242325416386409577957683422133457049825439518093733730908265310586026388571342077371977288315889284506888448247976958253041960139633865411344839946602238084557259009237475844618654792012525664277476706529970570715642358273798232146761670866940565180519399723584877694355473330812276731870350201631544873408814441951058453869092655866341264884747933154956759803797260532521706789454437134697976403998934072293687338273417331305243980986882959118228378043894316948096588333084351613041077052866709252113027148083412531711915901822499095489310223440778902957405186689669159467272131959877327914434825333757398362545450704569997150464793346077576865341676592172828536633861997360861205619023697070085580577187168379803033496285146265755962430355548481394472522348500907772074702590266101716964970356565888279367481620903687106826911146781312769382552044648744380428766632761236099132667851616548580634835676277546267738718398982374939652583777730818293177760598148211355043332783511327366178192147294601374420636251149115896495218738125989866705418845591776092493018541624825803071771881686909042578325093328447963110957006111926866873816885544519151289070648572838201475594805728438250823788677218882947876087855023886536328021984492254226442208058241241480317552635670831344646996571528721783310750326112041294202028289754756919825473554370829228657702248960975985637886494058194879933339472594369184857994636560146448036032291782324212177167908964863541498018906264898198607367516859232922204514390269975709926826211684317257764871473962208325481605002405852809655237211197176668524395767782626273021625685354306411695201174713626381975010958936634766172487498509848264907465406178275156990922169849997652408564593673873538653734868057233097094533288226911190902733963822944853806567531778935723696722592721183121049281738509884602073151156223168445508584230136800093820141340050178688860627660302183328943415752644047030528167689557699176500777465926211256394961758486787274267679571432049806993793356733224198527907033616633358564733548001369694906515429745078954645730944049948333538322388312360896007224420614975217184363820944225655574665199559194446345071062718995117746015853475245259697283598466409192283602583976549169868419775882591492543358142557360746778170022233532171343643860775893409749613439342051630035140098972743365996406875481708362759766088153915934879149120361016347945659249647770826531746886951426480701312262116309721902879585051830638988008197912568654895120226288829318185068386208753508887420850048160084486914413713558606915034954500015113685189620761298528927479346375593172178812961044717580279616980904845108347503819816927244621185389735688029513060127299559258553077331711111418477273519172754807177432108729864082610070995645813753888874429182512393401700187941698946469620155704941019111120603393590798578804979457720109208606254410277965440466482403457137606891838136017257143966460201654646778745857144398795470177948692147077981239728113531242051291924357809028682467821352647120306017961063062777722604864264462296199208156498490267290783022956391224805186848874563382535326164650615303096014706840901584264445203448462071125036736247100827223907172352591922192876046642633977350555753596091147414547864336336900402638319286608182344065327799280114401554941065785664716230092407719668658805651619030585217601778404283906570615332007978385773751740508345465864133454026169251038414829741889641421916480010862120544878826820922191111194262896893761878089804826305709420474182688242049969413490870927178891146090857165679007085674051637021906743108394172368120863334268819853603920690673383145547773422006369663598183583705047007084319315433803275894651937468964210389478395300814017793087241998047986391760105672086536952272777120418423478784883038224630509277242297763420149074098191239926233232849626086333207474313086003688833097826637376438614243614383113725256335243942019317321635505834485749969208186517490412918948527243157885705166901173597261273449582926818683305219630258284494980021115133815937205273102426436445176574370960058502870215773268800114555948628404481353426206126727838625300756032264369338664731055543567575946548680677622641060305516489630395494889723726224094181378028245930583464514083923466681811432656956821359513762213904085566046789933349665384491677197788033919233001493488240107409361588715815763324232592768563586553324633927303402891551459053518426933929998032489344367198883319124900000744114825482291629088628573985599818236056071835838651909614149910824193935311349143210576497333443373333097225454657626592192443004479938862658936624510702305909996306922938785914644320740343778026124731301499217654272039297150338287823642646474323321520250590615641402911959476139316325210228757319029369550429957578593761611146658808637763332619570248408534573089909240175964398105428682074553235037594103038910219859966070504562003858571158447174986756094876568893510022935579239959726107137938102826817272973952430261338646176855922067413786886395264145875571769081727178581281486890263212342745811776907637732425119111459035109187298904671464993240610101571894971816486515989880804520667900475446807336636704773314613795223014501117674646823339145765277172618408230057124520696867635404428982577724698847946591471046517796819062997284676433710749670824011732228600272428225267221432707368352881633015460678830852003295433047373769357651702428357704800323605274415428378396452018098591492922686174903094642323710775869314996626770318171982482967671568768511246381180927024707048233287659108389699040689231683052058706514728988926080607127613730431080811099976001411998202517455640411300017774094442399994716393660923342501295652657355594609248003507776981151504570603882225172822365990961111030991482074682123041005701333335638180637786656084068449088519749671466368089388016464645621632949585614423502766270955643190455074947486016984261778282299336054210861058648509254819564736568230976994876486987995485322328872997765412227414833348995982557211633289293737159486253426323410751523210311543211281434034204275920047795157898759706815597913538277509992085385092230552302969783416158162791667090665861830759293220368902337095025267966441135066546631489765443635049960517544208777266969490466806328489030059141576560019475125955535250308590845883735100824640572325930972614968092861266606152975094638529522260847999813242952606794484739054274797624659072631925556974645071695813734436955067625409408176460909606903001908458533104937546227261704869567892633740760187729368685795754662255193100474399969369838294223052231080603418110649072529298856676837158072626042182230307471360164475211903930164677409165267029074829741801168484490500574836888361777426177838497251678228769275687821861176182711485622816992608555590479219216860835309677295297087906641501251646348417437203280106647888067105131867252697387806659529110623004957802326154657790477428408459680218947769951121254127592176646398597253193294376719274940517998993962255251012839310615725146171407364931254749969070441203073432113969430869564790655675025614330607160715868283224280544976414395480179662490939397483940974966082210360319393718966990473853827821474905631266662216848286389813626191282505528958525612495680796626612507268298288766251447071467829416742721646646906810875893546679890850796244733660975398724244365922557192041810376375116993322083727052016567847306700928554285320768263019757077534980275881059078512941940357920039465317224796556883707772799904039028521539816437004486025960935337596948552747865359358379372632608985925211187557048739800495271368647295844413554844949133540780662189994534728369056901504283426480036519771960714054994421359639992518959456133772971538677689595184994223439578520825139578064333409735646399242520595117445778661364769730609645793785705903260746581547329390092983186855294544934904987171453308861148131853214692507511469481879513924153153795052211611708882665237931769936643931014903017962363609196851830447077781636328358988105810698181570813830011420444234837301709256649815710943567150659331779698572782537878833851978603358499090428826940477836834238261857633346850362626438967841882171222184129586284388773102485867700452133967505331773065214491346868352918050935810652142421335474409257223337776408868316896257229347759307840098234639103042961463170129924269411970521229586656731418918006388107056033230963576140986186101919707677758463869996240991966660137310160096277676080661020801625036035391447534862094333903844181335644487302471746191638404074190206397602018911422027142244410605018086440965622781980745983245626915030098228506366682945470535310417409236037717428577609131982945617142882412414777577549289079879130431579287782697329543935138877507138830917308706443565550683723329052849073263183843948270320827552900045669488674439202874421938670215040656915010551385860982795298188504056433861263107339849830764742394626438008741482853921730715274683268219841937641768200236865053059085804557354749471927077259085259664599438811868760210709590642587759842906835414489551712670139382950752985858588417586532334603486701699846641569761576700280537509207599793964655683233246295794824388971084829016935000685006478471926354836771657423326795107946394411896398849721019135940699341599690349449519610094169965851672388070371798340421458236971129142668797849505855728041105799504708676963354105373137405470958003782527660111052368347764365780714094160656075932452670678314820109164837677745864796161651006243265939288211959541042619205545740808499200927162960565475920913082542958073974083021026263582874330950809827305151849262824653387804165524868287322612751441350876276367601699679666997952376269368820495781794870520357293137260062768130215636165657469610607914935273067484102338246755943934487848980422913813520523130570685897036573668699216777298082665124064549855761848486118283142172891603308698854192993801416825116906058677173271586614184457551355439955545313762975124342175306892588574069743789469009773900992898046217552825104830816786433663152661612081140380141101925647191588205501493130248738261841264596737472822187799008796646719814785062219410857152819290527000404985813800110784685584143994445634345015075982050293739186625913459911313595308584566846626573353327375423027807680863636706259348684203998410324608977478569335262781771842856343355651598433576086595956482883199761284101425352167281456625633814985496417421234762105793204035449581933335394691438340261407846936967842393104710537567941957737993861789453610417175992962888495776444277602840534730729877383800538857253584563958207199686688743963483043684331393758147669056397245167417512193305127266239275467982097689498776382748639311409526488366310856521088051897022026600552816658709701350915808342755107056335708331667056758464229151039016973772046857717205614778407965365893922928091992682843873303630724754621849895599934713560929792374722804453228844117755422254170969926772000112238128493368231565951473586254997475641139205363874015576295937298640349641467485539032183427531996150076047720501513364355016147044217007362964356945847450303908756934083224378926077293975655549446304907385497077914192404470252852318304787177932326611991053607647542500451121661310256537741165778346091469223041280728411844261484396128657679186832245214400873110965045039139902968330823986497984549306236320035022668662804532753728739290179275415718212973811826098437738934617569434301095641387515453719731361700687377536422989868790581478824858512658487493538354593852623500404297700098233470250556833967699004144302184127290582074811761325070267273095633379042007061348173921972985515838141899014631717421269438544249436404725698933755292680453436843834925175244419435789048972024310498806748282191472630057010043547380120791375654327851848513494784018948820520610610341045023903623400860320937632394347091405087870219359307084795388059504617667060057760834556967602299900784079621282088696541897421287033223464700351323719114894686938986223265282659738119477337713816358008785881008971905047691500603119771341229946207910025161444698738851506502711620951482756678081241618362754815888307959020213384168830918100824377725154961500548310069828419622640152389884959180481274675178265663177563380547292706471656488538941367355685451147238060859945902234861678634819466644721572407802915710379401661383757037691035311450989081194848490297716157452416470758856281681518297741635667007775190728121999798611553209578481283796539786596479599914595928300704232790558201278833966917537752159894659085565746015366000564423138857711323472502411543773229418615012097576216522563502053040601539187473107868964352300635153094965456370683438310791826784471216247713982990915937673492633668433608722874295244577014700335569312342291672387447391452748514768380959039573058633640883860241695210518756629116296482419568966502182117542622701519006855355956260987266201835904421466733832833426325203890186365072889626253585834781334492641893474124672374540184188634373304031356475332927859640103005744856438005591708031599745290625921714595308056921977286132338261063623996725614259328064455040944779604350631985449406985502893885956639779606193683004482939299325536017008677564336687161500976458828570822794078279373875922239771381400996374762412371910287870955796015275626981281920407701204233198684114207501813244523410069073812345585402289741385843585886880113635126262785456723075745283291231346105464384882368474000674961628720438989304475853721521337875709520550602117252511587858849553350031096157412378413146357608161718099852191253940872559982343497937594589127294136779687843196212049589311191447592425824764443275035071594513890179447336071568487678037815158301706897098265753488306401717104221906679134061398386725708151433371828401631057147652062627777306375421661529490302183321010218282639614957189129562036725094500480006985875658977270967049655250505931790909360702010278911669437906576679774740317767112879398426383689273133516608811182153570082033911342717790654693339284166760718471515720409039664196619324143598488394279806494153675985755534939443627578057772740981873241849889289247487713678166895181359039763614395144009757301909512125210648045713805602371156501502965814019038000030035295492437852510568898714681075759501759464257269050947492557435394267040700128808275038845733604427416597498325144394547107386824751990867685962586695285310039578788774163671707244147195064089094156528335612081323035553184392607324479692604725231805404766054129793129036180228848466436110672739477984691738993304180284369462956243549819906266219875992208594924934660517551486545102027545743819279274039789326908804287559900753126131252264592888481408673257885713117383742108858941045416659020721392495257301688682314488555793822548583361409110472407190834548384450351858205494943269092314802272084117591252321748686485503608751862210642614513776360888030288564714606095415469158054763791575278251570380375000109768601135846792658354882032858229751932807324864341677517917144382770131610155356839503299119166672240554249085130190714967939171877032553660483111632516074720300791554169682158263302544667383244388948340909961130439817191763212507012228601923103885285065038976439761003023104314919127364529499076287295581306774945757723810261066648233219889846764972598877230729222231820972948980236421284479224645242636852497988785799147800860061947928115227449603545309795836355785972843414702478949675977098606519201999010376048479174062948483165296583437477675015669959817319847955835015129989356662584210107547631272814195205536359694704757795910094804792811521545410023130440656789133287066021048713340789058406886082293500510145272273254981664932608539979727660751926830182766692757063239326059370195544740378932525235862570225364332473455415522315140153483737774979909347765617772845816526192120793986016336591293625569488978249834145981450729323852388983815470420908847574290875183426674040933275048926043338854786471219653597202086051478644640859457223350492911061192536919973097886637216093035547142807264159798746159905628033364169696657170007742721369871927116023263898751134951331028566053533071129323614082210451503092346173284928394627896463014060905190152955506571741376591639423670817038567137942560922111567887696011826208979891696573155385764621912401609667047275677179283656512063552440125328661541408150127985293378536917546451559438365695929783187226667357186541434439527702468549957976596592866920767366003591786142768749674188548528944721767027753040941974144884739909200288991188962985313188382140424836465130808150001647794890488363305696637635927948777464007427996035230522424128084075356671200932008492876312923893440339845545562180686457629526396403102499443959361187906971329504590323679644786305430689957581352247080892745096056959535295195633585067496700542927258988855623780614841184949038423068590466808743710274929544147074050129475523338008904630781134517689095529989861278049679670791950252311419788211007428803434029251260823694830830366619504597424124164289015173657802745100829557381987514331531723340604292045664885935389294266180450914473313328945902619504194374281086927043984970950279414778212905330779731742085616566379773727088338052489616851904623874244541663346147646738802088396113011981987117292842560548635674424996877952089887411862082302174757771665369297172886897216932328434645432202957386953228704382763980617066722492839725737493607172409822602802324332383735576133106652186293977102267574401393219098092995258253824286467521471436230584171424715523907124346815496769236010998558855946600761084437380942502383564075039202220918024755730676715102001225652644689734444041069584259006258336653645143460085423417768695936883584261197942116541190403203186844953467714323304126407733008129130476939847692774870304151248238077007167755274531136663590165453119891655808445796759278007562694532534641782007515611580807466308231891384272476518483542097432079932442535782510419856734498911797369613936275442029006307535534783954352893010822792112422552100001752233807413236771736452407996890814294095557942569010901522946991309642853027374085770459663258630884895695403390648477317870537633681607585978136763869597317853651018975306780068921526034973212474180739747253668009461258156605019809856354079833207810631264121066727103862537287602099821399043126558259890923993466565526358057130510585009949826395892368808798682021003201211084973621463515857777385919664406473039999122794260018023170823473325323776252161761636913264266123186081613715249155875052713369716160418976308095433104343523689191606516199816685596482849884544267481670426961585324753158165424730794055474282415137751075896873853156831702164333462793971943571894600030437793816637493793560137807896207914186663164751321456290446238468192464153450094689720736362261878299333210383211369452141798294633261416655115487626174256516212295756310030563506700641109316007712336835013913415818465796373037778987309336874489449758287816793708680902539117237865733604958853825568546380775875368863164538308436353076385229169782541406481185593781508707997249525922364755305014292730135426516511985287760798434795547212757791144515953270026727975266414401845148263653938936606008503216768126579238219551882318078746870216358678822428355809704563881569986319559142984394490953932159864015737065530185117071427380862043944260148015077669492196243210609656981332065535593436750281422584126570670848151786527686209395538954874572408409825909101303545425716828437832405863185312012872423861971682621992482843895599870177658048404989343471012017911201569622991169441409452353328214217267228426519160107022836667342823118262040310639102182307548733709184701501357244732988298965721742890379511965700456048164629811318960731365513619715410923237293949287516482514557428549153551481167360417250110915063800411655511544093342184338832165121480097198133217710095763632530182808176675722348032706739442932454776897442443718178011338201369086392739819488543393978225247434610898852422337926744421056395746072744523771832400138110291072851685883468914848460979226049217200937816618202713124255149133994852532270643630455503605429251558256135865839336038452268917172881769928554236002132243553474435538838962898720864760792430608054464312547033505904379206278647835646376553253155143851048643925372647516432189065366086929588565883062363386949755352378729686826512589532619552449310495115535981033681434726559422000893476151858884405726474006772171604323876551467345621586986505072869639931370207521815954059752113130994051764488691783802600462176897305616377628969322926457080034029457277878646975828347808631585609620798800624093703672837301180751527039241879009333803657963068873378504081090201790281688346444553520386147926310835564070250892608114575068483095539757486193519811674147132568914599697616232060598110979150451501288712606192377240017967702845294856022234176101213669702075295232291010901383280252373583388849173302009174551429474225445907672174968735675463706121279842124777701149469243262356906083725676563232412152175531970321538910552588870689031962963877263621766150826010077922281555857102140934259720589191707774524527051661573184816351871272901281759089250138327920701070578887232790505234524158717761559532020550057603726278318095717481742032010492091830426841798111557868614226701264768658567109398720793147291899079964923974161884318282776995579285839884664763286076495950914947089645056474680293588518871959128259818858909075432848565978752025913799969352137679228370309272908014544399299744417926881296837140501833789331120945966858854470782176864222120531780875677797067980360345936334340860728572999615255584777038191989158185450244908414330936690526279927095351278670775415377641426330989997149009950396598754911536731224301570986065783100610473781222360330475377922424088806575774950976002457636067222746462400740634876313029270070223614389538029635454166784949564944128264305258980930610117436292944780518596277413724445774728437217164450288638068697633521951317745596455244504708504707096340990156431597756203154089255414186045866580280265749758651570788986396170665281163796380330881793033396661585320019987596984142782985825360122100967608046406499444177025997528354805666271624051128584032473196466093047019777391425379774011746238483437218105273837429611548270947053595768828153073426624707418936429556991939255180859469440778148342886380431921975333037623673536630974926310970417984510749905819868018413918418078358770234441387165984508290689807593536938580621081163422214004121456021017960807306063543349441677421693566757834400234705690461816977255753236445837153263172036603734201783832303708364406512775663564592875590370506056572725302018081896731991030154759675434018954792312426912649053713909103586514568890896129432212785572942046265375222923398838059225913247125688294814520209385099291220068164302061838270471149496941118045349703156656919237727430208929698356979704756319280847692915755824657191674754310384604199807035802337879790795622621648503059874099801981661401576094183405139224124726715591241354138138652406405839816137812716455464984285499224754519376272910983268340985990539268841786226356440500150905120599053834552033486764183732814533602968761938810063287799395988823446141716135590421590253326393365322134548316429034463375501473121906996571489981699239298452726599045912417182230095360332705098549888346511230146836588361147980779176282961911808170594772275971102822028790692759620787573972204025397582176575909228619064080468257200276949482234970368409803082804053476894412756389254969369199833974116750248331402805924475057801952593519590652472327053921720168796610318415820146823629620260315821942068275587705493269402599990265027949302468456728841100058416661157999440312626901871337794705586998396577771325388882222671639847302435265115825912606553307016787657919425804730736518423827437966458138299526946584147934928343216924905260083939665622414659257725234785680096868817885010905858030396042382684610190230521045247292019498053797449463864077180455077299553556191046351019546564862988445211330683050028244100768070156144315288797127556161769715841765066487822329473320460290728682662891144403346476684711756274082520206301774603236098793412306442348807751167901200309784413929478594467838675735437951718611382793134187407669430856733817398423078553029167619368838318565519259295258993180793654316443538477749538161693586395910559562658417062822084806801499332583818212678137270213093664492574220434527962423551417050390686658134398795050328140195893834921859148897708474084966818038241863284200372599057368507949442527426410931304565046337778817892431562640418599203335879817967677528497802182226133650230250200347789161462327319547799828773767791615566447686291572851396422374940672963296035174569008249410553231486046203345493649157758797229090230943755142568551140657257412317731807591063934271254065762389950884624498759213177009529405189031897753351222308414083468473388516828032393378462412484511564953470420866653244622923937997436889964185311303826542769266960903512046830608904771050198504190755043102676840709444696605073898561889574028035670363865431206808787292384809895093419650518546513760901171968194084624445304858047349345724809943641073196513349524306974613287007820360226787219996020227048483236324436869618666585929968384064105229850960562404694168804693606443581314402100122968937255211645740463233045236091666496781234866782116329588270467057475516798487527328441403849007577608285221905064349018962727928238571199172575080403458971315611283789185666474794969286481099612430982827838205050899059171327693220733603408692282314521799581885193038776070884493599381083574635433741803144225395905673298507930167276104963220740516989231164971508299086098606457688056139612819057091492740119108609825444657317318201485538392532372813643480666694315112142951357592646353582924547370210584859708360732464959613257212395653588476852807595836305226622239575030039276657994018750328818770327087800423910227536500933863232869204373979063525996051512297410061158158304243585262998910621688103128347828885680717458089525429094496651246434486271561597709769309230701947590448403220426685491500463296300669386534647290998894391394470071053040821976359472915789239413955607466705369169687234241317684436472079464009833546856186098839510282122495912312214157008924209025885956938892119521587136275953573957385161728105693334966023774586130059963613842029328271507365009243926471655586743480661485484957780673123107193507741860538027177700899912027862234296769202763352373145149693000903915406037880278142474546172863049037391998605036155014253987731348510552638793876252204844511467893065313107406053566547262099623445838155452368300942542570654063761049777824055174104688856943216617817970357035671492942392733940343343865631772544878726258069310255873248071767517344470839181318320906569790199366907671273380348858866619648151399004629091295605228534170685281453962351912429544173123414233945787490321780550102382370858199700841634407926815165899001139272781898814868911022447023499558656014571524010734317715063636915400476894429478214328962657672833579935879992649905756881391010303320395448961672660796761243214086069967021577744915456216363357708850107769298483683208784096555717869164701469599540000447840373780987473495896819500680534828141734114922621274482046937175231168652127538530431800138851694348242256848030045266434447068888606318466489918577356942885177085009651919267922901632941869809796125274457068076778201892099846886340287318151146983637991797642712319316165996671485313454198080659874952879125188755402962121981379958044934178354938684576940843810840441403093503302679479407824391307901296620498631230349502169264435176932880706554771463909270862265202755335715151548913675169531875593416659568239220089724910219839108575724428981814281897298390567570057248146813692742051613201852351888248983822961077942789786063495660431129861446157217121268126914267694400373120578986544483686668277591468308666321653931463045802576640819173961055252792990292642559735343296310675686500250402295917274085453703879923563771287194339246104251827577808564628737559936906526234442168639381239948960945224677212362873035026740080653922623677577359839575106723969056438433544464911520908065445899973951746171072006857550966523800602849683922243716101100054023718199071341946145813303527729799251173665396319140104919530463876394421756018752181525925190484462645019026447623097611976764166143862897636136002988050857392647153742067954449815485743725838436950500928180635131181850137226899167037492514433358577018241639753430036724901848529100909651621256107616163963583166411874424939284626178293894606574228319709278269631366313415698020910551696455332819637728421525089205943067127337295050947603467376492198406704095552641319639137236307038601711927632587450236391500381181905699883843076729256562877585276962060427768324258087960320820553569893904141180403750150714600379922681818927615203022141309936031532312030107091613109818809269826705632881996236526507748701072558080326703832069410904367058815243826548066757389888066570671752764751091753935503525536501333055858642315785902677059512673748810881682745668054591282408320465644606679258492370356115903480094614786106597715903482775788856397844822009147582648665003347010094327403799813487992028673626921657063467533944816072810506960624477543027567687135485759219525652087737289920427965851205032816228856202937203932653396061400131810712372565018860573366553270644521898952579708750394921427976487752864717529229207003350259418704052485935588280847176966685229836184486289920597794606992782812627721912046891570411554659175919550216958183983577566229808575892782312969855281542492596098091244361018142889133294813150252680720487916800184797599093472722289951696623916663102202005820587079059506185719988737802190141327039139606319465043326839157160037144365374851447895913149788904061044974057759211951974032912633649646000743537157487112621919501722681750403592732149344323702539381392746416350132568915736006558159546877362648248726710179042257973597621825408993879958527626079271301278040314359454232913542606652829992182132227829353305342227728994233405864433114249942677693271468143380663725795174033279160003134103798161007688530748986863781182042415238581039909552757788746955257790397843288417318052768045808661207726507581786353056377496077999860028924452109784438317798949351148690865443070979293423352217873262876959016387837513893507912048037799659112323456648335126406635607028009693833518034949741838209052861458256417181257614585648758059913419670043786372335128354362436962045566620135685705028366036775948325879419284181230255067071333259086553988673401031072132525021240833866270891843882653928394923551199415197482293598492426659242969171791960073454003350441442935145788816265463241388781586011672313294840749292095636354394760375626538446900220922673512426443526032417576328628753669340903731554064724343252641651266005645014391355714914039572867418642009832158786860856207791504091347007218578158550165437928463690916877086471772256050736971797646402445021569968530461175552615671520084504091504917412471106813470303108642264992469696075505462075719920012023800701885746301111225657295689746357488054743155767028629237412577875109509802678704758838543085171268326376131283823913184990495357692249730682931879554062545296641079837361081498574929947265108454658795475112839134340832618082178929409878033063284090511095288718775574885882263639593506791573395133004339229320154181105202980444500956497980747548559844342671542605505480567651451381471481011701760743036511780872454666541242304737667979824307083320311721228252449469798722903497614320584184286167186132919540526535787939318113675868721865564821589331109112898317498596217433715276828529065715830421900942294478872944986148674136562716997071766299650839080696610738513488999724969389291700574045112039632078846941999999303324427910853572143995732904065067344701459418972175415787054058283284455920502404673826364162894981905616864915080478805193951885505802354866053640254269374297688623665208991053349295097039343495189527753875964030058801152882011630367262245423098254435611001357602678453083058791024699502671099538150992880696962651706246373963609432495437067733621172830900284630648745778273646538254853335936689872164674276566400375049542692158496497573124568756801713826492501686964658453762444094796663351182068464379604151104660315693319881305011342609074335533754191981630934502911874491406829982064927011749221663433460213461009963227763186595934186539406749272944485981428866523272248130986474020480908577222828522638837381899496154314406129051250545924652924030425617902726210286515044447084413095594630474358521149506777118815108798733659299973538885458317758893277116387822544296802884761510736551332702032856896461102506612482601074031231079587182803867351899410831493185793541883594954588356686260350165370478771987227824099955795355809448181582220545117192972936702634131959895578477127115450409140503640373512140807883776169049295851380616402130731324924321015699571665262463821559060454467872301346865178047686944917804458823276311395745951901012312920779136129975058203560101534800319923149203595763798828303692664801333758067330708694365967218551369398316866075872847535283375597531121733006876506524453768027110581537822469849554665660366671739733631344766037821570306085469749402726786624346383324253767667160749952841375964894015212836987370176214832557777015554167923374050012977800035951760851067709496470967861130780713938296758333025266139805914301551426051328240441779024137924612875162648546285293205228245569195275440858149255315961756509237406753768489648918422496837980436771421492599757341606739993579844093242572492052522823494159575102680367102454327377471023094719857645499079384855001404424795950474316663539865427948344175665793750064792103434372216693555137211045530034643471758897214141243217181993557826577025843956815375636760107817310715698606827541760392458390991099239778733399885473257416981629175727874658445905766996024696061117210178589159848968354867151344700304456064257464165756100190510027345787207376412180455695013414255152182100237187386326987502471784965444888146918968544006650627650893513094573606278955387171914982647002099821913977680733158081246162125286693192676743018676688347171331239826353839232652830463000453181589318780018719095538238614687623119034149856522470264141238024240319577430508395602435386468318589455390894403488605508877412106725619193471059475692126620982513851455106628629422985964719747795784919569755612109183586353756744784802634733458798404784364726491307902028634257678798587756030835190389688512858044253678584708560983153652641935683766370304016491928240902869790184111069544691682962739303179727176275224836983565343346520763816949603070290393679691959798683456843850736400807517824253514468412737094900310808985332884652840660996242951947187485176110723300119355505178564739386229889148166639888915272546330221720347839140707545167206311859953956423795857221245715964958974662969711831707067574659900832947608299206289009499492804995053618064814026985337765294630811972237385064904104704330814926829241797711919890675420473262875095782377244201456806206385971789932922001926848310794486076717909349628527371287616168144836793186274017311441734458374510144214696459024727726592674609916325289361340142796814485110648638682881116680296169245074898693201159964438381309067688484348264298402635914723591345988410684474921556926018837707260030255042933147726869865967644139395224603958554613865916895517463120119944061669112960844003701298872038372237623436470928805896632328327803807827546768212486900436876321448209013762624562692730313447536988798793214223314211901349382021046863394800222892483119450758866180793503804112551187118599969125375895105283828883924252017992749940439603482430485111501882784755009802325506397141131439718077147928783421242962311671908804507411290142600659161143301998335673457821907364240439017082720813664315137799975770608453671845743334025395335007224318741104656529083674533324884496657911881854810006868569551966539181731588318427974124319347374911569414902757613690402423428012549482922597638157063541119672315580316114532911312724534142307804474298402426016151832972839241805915780290406125262816232938211292598449921713040215026356257319834794304251087869363067764552706917960351633837472443440479684093549690669318060981088226020688421948663920725737283117595381968714933435470137198853981465567213835501560268646881144994276482590265773067884477052195985344183372387950450636073250950609690459838323309056217926337938124728333721515866846993523717133309972646862711208433830594416877951674199462203922627211445626398864873027264072116839474062694921867260707531364133769433735873970463696237950886977211187827291386781284190425823058089026223113110682611189247297783265112863101292280292974491533363209525089185373731450881503379610657915150200638944443064153023844217376765232565890396039558624401749683471444309098077699321096912442415284116708043255609308992709320153750870516257265884172733232518644055871875342211938047514794630749928542817916758945232013496498164604947230557588422105529153959785587289897363271914133704491512491754256014614628431514878321447412787044208298945347522997221495032917028255851961459738761655341156810860423690312905938891991434578057155190769946406460566601843171974190600882038221720994543703050383437420183515293312431238292603223148598000080861533280185782849515400080339839219329373932873091222416787710492865262052338584825680051463101018605073630430857955621294396875892819016562313827806723085746858527576287848567328755582401280032950642910791818942115626139908244858105797126415323274181369890899856546469100614290705002954079888397098989515291632268302366169603655762851796773234709563360930743391863157006764050069574645335974639393332560616866557208048672695156202526028200258600376813480393011354577695983448797906420350150048120262523536237493511414282316891198463553047332246784723462458216438120695128210092388677994406454995759914317542228701720588002890132052400657104796356970887888030735307145848498064588744650977518460934025242563113662115184061959020094459865136255743318330094252379153400502099708414931951140417708006563000048967149802620420497134909529330737856261663928278582226380134553353685662353061504860811670290100565196643928089393476232014430195764336180208940972390728167401222095761730009594842340873034990469016173166526446890254415144130639413975663719282309479626387808364072661430893273615147052405159835400259040581981073878800410559676808148617968509293720008176892436664542748811100510549892213831536085347213871870140736959302149696195151880601148778007594841935791251061106467929559212359874107880233930978754517635906621401162763576643089744415725213442800361575809692054371767172084198174713067983538830102384683033131534653762824446186271287170092396771090367211932705628812405715214970346875780688249680833370909165343265540790968410615841977307041680681817100126631012392498410734807088414291718300128936948188609124986899456537105243604032014166568487852002955489457191029974232356240465833578576753363331279797183635948885602714422734510281185372735636759648424833845778424509877246337558654938271796063395423430779894045664598505829956253388148904021591516298122167793877550047184887746678922052840468792144085230238156268359941151638932036261096855335859597000560290765351893412764571229585722175046008402994740371047290265007961284479881173061955959222279796997773449171327384616764948417351704262960453915541546565198665604040025758182340570087604563264378103283500699654716192730825014423654832119109269053713576579299661576923077612275224482809864562126733172693924035002960318030988593388381408271429494064399726023368597299974137360040505040644515866002341777768282019610023833731361163022123445629985466360318245892906448266355500519817299786612892229608624175289474908823532556791105725955076254677134154833615147226627213227628584662531334264894692493559499212951020855869727132952021621231711011831040459906990452589333286071420260880078576716693808669811067299036024403539083416413296875314769355863687401289578969444130229569372237634213739692709276814608720478048606204582534793024208888045134461035067845849667455212726024567404186389143438782801745539909407268454375171697780580079044197286406803235163775506884296603439228769063924673634045219633634908925638982606195116998323664119110120043107637594557441021270309612170910824920403156482264974163274115902284299337282891335781933865921108377206170363600139795296333641870247664350893066074820621081230919560180192662387053521672763117978613938553733077683553490098312605324622155963795688172083570256737385202132829903831806165050046913822754747701228194631195244039721971509211707753781107923522983292352441965192865009218056313701961061227452451911991167118553202336358995646377858643869032460364053794860450921500566496901991657982735953965970865328973026968922365277839200441373807599496617470574823929828038519777107034070378960529712677377714901949195832140528837081785322843932709378133681285244913377492032756711968284747622878738206391959604812569718751771205399067215381075754560844422289684802334542847246925794274820899241090102633980623592637454687949144204945099859184544901085221795536048393849705862295560868711269853242191443903882946468532921229386214147041993824946499665973415889641614351066940795689997235142347726327464822043496505478031391470826489640732375483995987724669119738619473418499774367489522294352537246268824752494546746461170892171915002705965460956501748643792187058518322864196944242887696064729381624146590854391325969156797889671901134402482990505264811766627303824740591847530420619937009310491413502347908714660161902166393229468431479628017650349424094357543635802648606060800292820362872467701909309627447645085518051305847859773991355156537705567143552013800757379393673037042977499947848486479319639515268853378432817107542910452206537499399106093298533638301369622144357684527020517138007305232667448355265515178620544924584622688361084185258567913002296633079947369385808222256620258954564556390243861954159571831322740542117562141752332581875541159055571806586059420072337374711053551470306252399202348672583648243317337599674707845521424333387005267049084723741254254097769302474784436246805151312184633354072127133618656983088681019170052373039658400124164999613033560332011214601050603693374430946377141002152830549365910202448569109334374723342299528296005241241577277534402882091858299508514547987285399105218073058740796016442449239087309894471479431015067269334959839215571766681657735970019303049965064382105824044595276312137301328808419049852618719660052148734378387303607793790707552333429224752200019177212784029610023283422555189884228070847037188145398330052080396551992409385154932976794447518896761157411806456956458307169406479531055097760251622099124282173661169773150886732653948677441457817239132066455048256165087009235973444043023477987966815892296854464174682605932463766640083133574347529173706805240391355388173510329054756391417951126032499420615631160671216533421755793584522775674946685338054256304621830513452030764020237971013575383837866792154039453969284047281083453476358530339065542232373996378181939660037212406537451860732561867337244010388244823313809716030885691433145352004650598896657709738403336623611888131687882356786487914948563796792230770089414994840706728875507221392371934815721720166981333121969019808917510467420948182787677354083629789171741513756487608712416559160500903246217883371959080456156948705919201318614358561580009699137481967435231371100555769996499215891488253392175776959974745881496815415856301125392861205374848261144053172241795542270370530882391907534509014533450216332021603837206935112876247695741933550453242981050619411821193010441301195080890899914896924465675715662330312351502684410618886161458166905685309187010007595236309440049945243073159008903572596137318385161914915454861137218714627811791650820405350339524828220825255243734036429125130502549673680955189831930090698995627202421643809220795074045416747453345665274126263163948138599472551525444895995238006238532534980198412735205242905882578662651637234741886548256015608079369765351669350265375998073717567624763412708178049670569542397430247841184145093930670048246655434184752504868365479277264614560841304435437346696762461550414699721372748624334956880018816177469826648592076718162964524685723865972861184460494160667399065485956029070378238450156460285289399944828322384863088647815588029338880183713538358889278483186142748071245619441897333070587662944517181613803147345798743343896749745330921176917130452539708430533113334968796991112394203605759397444965386729172124907859058865908177531791660245616097090394213064698858209709291050710671176283343798693816584159384750723390315358969045099761362963004240078193991489814704920186141951515497639738862711294862391358657279004004122094121285595431613062031916948985340161632181846089057796710228313326119930390052782831171850009372137212767329308027295395012927471863074328537443715853929631199447863056448918565104986342411176126296815054049389852717567784512395196122256777970164936797739404086166405701619031127017165990383951798235288509096027133569378223976245239935392693434093106329042318191782943661637617415974534306432244886574833437021035021252684205643775576801095909342403849873805355246907028973024877149469614545844735108159200500435759923202339875717472042013565809286392499950095551443769531051595463373144126976655195167589674723989623554913460317881404090655350023775806747620047645949369988553463964356761834956187081926174700919887051127039764684907847657915972501386294169844404532752903138558617213546676312940272665935449484906353149480565100420114277360421519127381692612627689886155509571439069223520192467017368357821746233573696716197499407570643771574136587306425980692581329762441542552401674188981380305329486842773772170067973531604140931571138058544922397559366413998241591985870782128156393011671179676894815489184910063858725307132478808935866809687434306955889561194362717683876280881626822180014193761772743357544512108474413524881695848767672462293323892948261305187683259716842027441445699042133270995546434685843158789713980392643285802855354389537571613922282702004644126697756843845685665231518917722814541703259621295310868168929051562215468333858273877539706680488216331320278340751103631027579424715376359391057519651644894470359321929479959642661323402448174890580238045117830192860772346608669169333699175775335076996530345846592569472257253996002803010605065829614518555748384297506051354937725612031921502855871145286213297183871180727076346676848903749248641270746156923516446483646380776956731726217131907405206906834807145962390356289979368571631711962875397038824461238653987595925616264102231665393430977343509852161717908742318294846101667460622967110501985071412347095100040397366216125094680269790944232062281284527486065308664134945971417559524606296267338447318533315152512642394224165385630868776947692073146471398764832131137027928378723647996889181984935745739380560725447201775502657754949575402914084360764927350463028937067130875749667884141579393291929690024555584469072772332628363577676267425502770656461370794989494095823206529898232266368754513070018997365389258962159876962167196321610301652800717493055966999741772177490139455235996998005842263798715941483629359458327039224157987513989005646075018589828358278001883649526201083343486338089837964434974857980690373302853771165034874249429704693642613138650416437044162937443460961761900095118188227153865306173567318019341000874141916357664285460933191941610816341575408656256317577492739060628590012753667081453542168701172112394154720733323056559207930561373271910198913038597384225646695440695746041422458421655170202897504290423321464271605696584733983903365817431980555709625774484204976949705247190054490126005865222273155605987663116422835758358076126521134937933811218937006235322580744439240466984832597765530237338997691951536497756493337651029973105207312594707231908208909582253409100764052192951269631219927881153807090794817116138836579089370479644195575662315675169274044830704552592446915397787173548007607850167230151847891727718181150749701090427875545293421647890416937303430781610131517684799980229350889718968281841900641476802969389120911305391320331688167827434539519683221751322201980550371554634300559001556600651407978234792181817736470924723751331056129429577141625262916369576585972773551877792443517037110803338664127647684055451548277142395398823088909040999039533388715452297589077658786163762581819795989330090252120196720736483883714366378888770370131510387382078644539858591853903304773962890773352389905181575029047035089046335871457854471916347997862952479133113233984244032705056870599354091814955876859988072241795412655965938169674169639710527715210444028387913113935913105971866366035357179674628021082570526956862440219410392997904333850283027719383449477200557009833412704217347881963103783442047614885298475553552003438841274287476518021292452397524818721942295297561988657105549433411802665465883016598295864129647695289838012919643289041835662880082660197672276136674978491485575802732906972648571301823937376084050580818090182171004530079584447416043330619134298500358869227073713747313021158501306088804310788283786578900039302280311140615262423241741750084534022372518875572307135814411993471440669329598157432414218684847245484155410540719792835479224527095453570175615886572073605154292919613220178533319299561010955404094784534891877625541143250278311535276062414581073384690951743237818474265800006260566320973130140983397440685870897730237767744227925424027047659538994717159491514385766041219113727924849179290512606863351673272126262837926774358569229215328616074744358631868292917627000810185048954397066882050732620235048247712792244402098737151175242921348818277434030025452178127840503672040006483231591428143714916740985490557770416920257484685014194558717218596907727248952493845149637765985031370723470947424911388520503034025700437063545550698683628658667512475204775607097602053470641417559427658031699895230661075842968535766629295913045473510834501907844709746382865143700687027972241930586091618151831313370055936481714125774476767458626165648735913773212085207064550892957716796727512971327102108520019910344394018404862949180092706265849716689839669577760710460771125186263021473561691556588047660359460464181629161475567005782257429293205140610462698261860261747902136385526281747237617477140576974465075666837409218721184172737379647037607580601340455431365071925127725897577959293938663565618126368704663555305813624065262051352824738711480817299688992560211237963889226152930536650659946115277762547384311189139772280266517252717959670881414100910295632855644665320763146171799571581767692111451811964313963501010143976838429982948360388341912021387281837000966380243451580124258431288722351249862837162487747377173141355954108339764742699474592021138407204786196127896131526519219768973026849901032269033488276262243597252873722175714840763263872069734071917455219007411579733754553649147149588155169770070757355868517358562315894129710390925898992376337511712456440822017900952866502420524209482297845348789400998990026236101056013702913822415554318917668864725052366053886609981499277179021420341566941466709375332639892783221504716962539602990507943615662567004016212799693311543924548604993905486928949379974037588480344994852988181772614784690978546194458107460854372937232171257944675058958399867304132072908262351019347891891208673179039507152724949979460152884162718699799950375314695809971638658130597520636958587644888946167615590597094686682045835358136727772973341145995111177847921965005751775064025999710295209158485210562590001737574891503456376057221463441325604697252259788760056876427934115010681997236739228546865098555730325030305908356843178175079366136199087192764993573373449541808320702571665796626282748348062282405341495696191775869471642073594805647924319052043386523627473174290498633803544323494608120071106210710940981400526110181993267077007357584371994142523353093992618688556989264769424999078068906843077475360525438979660907255718772522076074770667467765779997043423289822297104629566688650135039265804850626087358241890284770854361159331087635646550257639291302685955309033621405039918031304122044735112261681460497125946613791786853949881322098122658821181687817613444236864697631540334372844314771150142213219738529626439851952492498048900732236926634132520032889479962669614076604502847671698891775782525792229034665196554038490177248875178052718773892730734963438378845337988740077030114892320635329777834921844826560857811836170973325632329004887250331971197229594532102461787837385609454126156620562022619377998356068884526650487540758115901343029725824916173209080497204690290840711130265774798655507540328260576473272701592143163093276847273415473329902883469119117287989056062731726868144046315047248762995474763993979763502032886046837012475117630807163527805680012259955028312801934748029970778704171473894238550949514015669264613317453227894507822438028476296016761525347580619807587984680493602591047916762644500713730566178367752538882272094490601720883428381147231560959775015858887689114950265909311779019696882781844357469283987314882038468869750377387861291710662408803980790687275086783602386792514696714429894762475622853100305507876278494210882373069024664626063037510907306344914946409943050151052507295123929630827223143885127817571084376072328886826423676837394986840191432010806950800548184933318030366059950481369381547980282329846749839754251254926138030757667328814483559525071414038938718823243499570931527955423359627090388901085917613217775047785717356361313783269058554020866855600432789067455014500262776075238107509952128147421425927682016140098732064051799294859735689061163381192422899131474987640753769259711451120330122312156918134450550589951514881228533554488474865269643629886818144889815669428573378852164902253524360987992686695607202482733512270109601936721479750850971497904784062128603672923254862635913897291041675143079028945705514978809051685631553558189341571865215052817024727764396759577285895524071123934307418707011530581816646062582334617134067727554060004234232939448164763183244498622958116461190909107629678313065656188823871046424074123129402026752155684657682316977159841661059704530662358856963855432485090772658920980600103148421761379351799597319036377546738900700394867690227232764171093480374381594124329957636118450435005488276658909972334222695094850536730853304805138548768262116087529786899554952110696923816204802461801983584394551528243842503315867779081187312685070494623767869372201705317282964646401253565452447164568773381748023350289330315753595316369382494157662751198857875674812703580840405364052929150608051695276677347586581281898387378140541000662240494868105620290422540677890720184735309747499665403027836258750605102045011806011719877392889542308417561618440735290227701782071499277283376338220786565992065015905229115123961415412616836841737191458371277889543669066980544622069953404879648753553623748183057951965965697977454096876524733940947245911581872354341336108409534946386212754468719808052987996283185994709696610550574196231971528241884598780785529032326342134417065061081062911337864586018450256454700315955149946771504046183308536415613297428280030116501715293273404819949257411404174730356325175503834276614388582398700354474815554275405000892787055790820266285147712822816542912614704155472891994370679884146006538153410255473552791934137782433809757982392157275391645646330064144577425718087071422387716217646899051206684698931007252568403722403012531102733410412161879165841606555101857429828548590730729186916120880154813370456675651881368756376397657941089306376186978833257800180256309185238367321104291075392390587317384785769487994625958927725750386478868687386639574219544235545365549836425615150330159955407529714335290114431521264037598300355034911960009755143557281672943305540568630529687537988225610648404520340938710653217519465262455918901093668827041882118461685926135860977481817450898226462425905001156226425860150034979047461341744708052824508323491466699159567658046477875312278510471110815196331245742208146480721306753522248798688710602441189347563541671323510271504197554717736134721002158677533825564296369709056193032474946832779202711834965477347467536029524485182070591211537966350415213654609877697553598604386009245296357546151207869571205554869079689467316044829442141155926858315814950932795328501280329026651458989374553468778502007387968714369898811613555386411237250330001792210370421995098837842440830072994901034388219059310486608740115466264159506864796466544808803929277127438046189683514533950430800516466620224456725692656504592844100465731278818423245697004829013213802685389046181420720620109670443016579989333850372415153958614847402584060005124712139837303018132117907095725926672156784046643830234310256704273751418651092988025075942204039583508656223788190997877123244755689687135552550001228048977512903374223002958677185591264000865085716686389800287784977330550869009074037494732311667446804777007786170353344199644513944667828408853895708222605148231407318758562052698190023123098023767949660695770109791505931255608652492917937713062877163143243126718076474848559273811085138080507079298069496861447759978014441945946817000773121824045308840977038249458431283898305032965027986144629848865510604003780894335166133847684610754456957363577244471367922865143861603988146940543195271018774076285508814873768304855782614495805483172019312165229614531971207512491327060517958242811650373148898568672523283253399486009478771431729501603705041060583317177532780866352849014535216980932215038523291191363982733205872138537912115606705389004555356321527652237569898197562019919634663522191177426636687212825506352547197232528592324514434400290194786015397423393264195135844307024767346259959167462233093800135813995770982113684999163315106101722811234132301478408120989243511649281160205931427878238508494124518787948529578344618843730621597595398622292686545444779019998449011796269598489590598031062553430996000786837095520678325413971011223661063310481073945529596532918723759892941095785107060136095724721528024344306745762007086607989234571535413771998518568462894903531639719537352988876694197749699715663217163686108158889515570336452514103881026567016458836612927725723029439578910267732579225429243639088722873655498448980006592185990751452595051795178798070648147886148509838053588174673243221359115435248187556901886895288628710620573370519863911377030602114267269687116489863655704649529411773458376303157949051571524778395231906665233320967740090120269453831114641657350391908133386236175543750792962186568319029912940260413417240086601609475082777954933955126508944579313637688327407074576928351545375560785381854699694621327552713939236707240154307539166420176090229173218313258961676252537155250811687183156194992900548964690661914207972837371342552120157431175984376949561287512774831990843103083505006037517705752325232577457905922248145902293512586797874263085324689464790632075160767136588314725786112980710951056005936021617830429916399166544645537624268059888747598961097487678171343529779193365722147262896844434216558586519123649125875874062319297290075853123460734280155001278087904072294834919886262010858177305127714957597798597753446971496172448591738078336431000676739289916078065211771463009325449430251628468073730779745728326290926586572317369744308674762909389594532790763588147248973698645764865750563747193016898599280133446016968578038802753374631738130244766700327543833334149830095836652773077099417556022890224584897017162136891543320137300239913698023658977441072092636451787373808178248057143169429687258359311389554879697937766496449965871769307841608627075010274185491925374138470940828163490947470720678417516327824776682184191175337868328661994089775234884312169520819679879349961164163029355882050292378033102013844480766696715932512252770674103918901568457335324773059007056260864219037599107323114995802490426404278794895712657351581627837563190489970451918559934744692176165561598041086535752991746573866188667294812374065530031746784043658976793069253423476589275665142274147804653048040186210601660218680670267294415283424360136621457972044733298396075933770929914101673969180066709490887987149506451443236815028457191100983504856538730793154241689159323742943884532108910878571300198227853074074025498155728901435299147283867714510289535691912370077019055051838218557784114685766551409025212536196423905755317053561579921515465412937962472821927989793179210473529030310973863990980028512644167358516957588236423486556528661222749657968338681071111531053131355946673949241405504737164858641869402430563201094863602102723392182622702270428289353618499437312972388831261267365206754503197022833169735369875070627854956616100039290423823860235832771265681685746995102730438305351280726010733554630863385019844410770545081479195477038449258588397823614886177012272047958148938619337482482331331200172165053719207851162301640039389080235147810947111331167952296032543691936531264289643169861632237133875030651570661642683104918879943390606577926015484019462594983878656278731921509200217856328340443486528834795358278243562546280135434972593309980134254784559895809453688651104236916490987932735091800123162605575073780245003875272093252779113517473831080804939985001803983112883090420922875424479702735376130901956054095766241606654989387933482074543384295021454757419194456473526601734922268914809561976668610268676422632510270489327290193562750691506960718735969863030355175638858029044268449609666553954658900275112354301781870921075307456484332452116277361732864171535947121589392197469824691657380737899587834451813629521471898297656901431679419429310303409587465001749736855904008428258537153569226168816884175262841385360133410987510460431023863067982804892054357720158221844894610896403801527222944123135039537602385254326067415769715953761047524267075285032225251125760899524798891145506821096113324429594167260492751514207804941569048788277134542127008688396715721970654991256509032365125112148467403422962504502875351446997928066717054827266127399337130105750211285877694286747688293077975098567068166323384216242445202500709358342666930326637748892105553214910809984645585456705966992307675201014379343629437055746424833914666174510170490869492939667248060546665216325922588190229065974001016750905331185787666830405176174412336418858225063557589591807844736903548896185929966518964163505281615346599603756263232902303526111305879064431274876612426322277545666397651113604011918570469238195393621796727215908227245111674953457019663096265970826010606079692655123477138045138018217069903933249944650749773158661118597131238933721767620556510441590131269814467688062341705948243304763298859924222691953851394041553698680458243231319339159335505161299924262981645660604787685467805657317700656572793817805246305281940301377248824459076422982751701819988913485006739602603370587081936710448254105751892891502273251004104288394670852636815888187603505265702802678954915386215967975766907445783882886237345123416577460066743793998047961871883541335904726998904580113067143860728068012630189797864682482141332327427842109826703467172749195254944907143196616444719521437214043567743273464561123371244264462652011941459196575824750185025894838770621007807218397800470126577098139849259733776619933243465178477976320845423096608212625943298306547839770365977925199859374776930095814790388583805289497522672255565471918327194663452448667976513435650817214164533112734348623022713826879925138588395603636259050081721621019593753621224090573055664612337144583463171632834082558567721750327560281254977325412801949120023953430720990889199428544051569186173505243244165446031573925354746773604972599290889971592220761761146561756990811465797046504553716737814263541837504130035323062187665107851487614631326525032197054876653083781137821732985245892523994563077086399560311217099879705812581211124654372071318674314942605335835501907131668863617669824455653846275272814114958164679957783350453156507232584777888660018980039239441302265181179213942645786240539012251707217551002202977950913646369832195210280761006621501395627812045260368757819705327568646669027163414615330646926834686403518308779023441765525851357134508112897161829777820761836491398573636663166949069811815622737075448296255090919597977686981963008542208228337553440975572761196969561233547784523131316041435823049849023322139208219946252169697217695711036134265865251448822253697387435808424626593060429024552269063345591099169954236785290111990268092250983497746672792766800371247990876391144925138176660869120222121169268228096441406226464472856066121401389266383068100799293734473433865633404279386241130750310550200188466162833534625406832644876905832180487317945219509492710618538180472054296031392866424357851448227056681521821207114152035126227777862827656430580484178598363384150888886163645779641394009055219968695848239130757520644852979780038983143294343014960999813592715225204230817399664863884375433734932808267485084373933469904571252348181545054002010385341659472802025803080524014474557672666971023990907684989563652185638059088954153973551208553196040542213477317141770986271848235112274232425406222847987879839507217800170459860082030890752083198027210758597124545210998157974429378924879594863049075929079295620476237938150718985214832781542072762274016076086571505983613848167483812665269935522839660652687094513962676605435387271644701835974092159351056597977222086431557705360434785883516207893172504624023728566094279298436807597761454226407256874254448043158606104169578503080923241554065392707479120003280664033516830912427994059831467004328619246713212157917210306300644348875914480156372683552173936095689328087594618975653324919546304869099865657904768320142034316255939890203819987128228692473219075770015598851634500974213107816833615595279752057171625849009203746368462857833602845555924006881107517561544986805220167939263828811155925039016634599886529424589414595129963754439847950389360235507459603455044347633441910660253745050285316898223337403911259676455696830004630079673642102474915545202312055221707824291262244066504230787606779081366935246493761036759643793987411282581874443722883433160056693273817182101594376493412055441856649280155461985241930469013599602836787937833419058429214688164784816446345257776098330279027608068515863666334857072644200696745797064444151831962158828109501389902587651832238276155039367441957919315135622310516081129675581166698331034362350175830619348136557894616144457395529959483362556151682721990898893163344119996812416080857776073806059938975059560508294219837664827576082748267469490189576672120414893970778388460306432215985688919823471282050267986866170695795912211629502590872475701501219560955440852840437055214905901841929024612322007622237631888943586064316210993543409840569617155336281600509798069942760862307555376012147265790001380067747657242596926421677714463341447569512881394442796617290410495761183140810842056093551395132556131872669390978492273690400560187334353591491383542330316716220746489599699926840556022481969059782806602568536150612087402184267068844160015701605606766868021082933922424867812971497843714653142356098589542869564092363191200166666989175340527000431488850661063638414545314885638411600633143511310402674618705807468690909253880751498997962070068528931534904878397518652103834628966972400814592293431115494977708838034850264011052011253967706328169146696072119513554165067373054235770480208033971635650304262106099975159812933643264306817631956497228220399368758186363596011533674517544326987728129580555144832151068542749736548569917695343144860614782268719936509199460419577040450587192314427050597419510499822902873661234217343178717006733789184998347228262403599311756005749465810069583623533719775047747774693362089794166606497040514625974472184831594486067500960149796393898851145048452140996400511224148080283241299875713498618820380646399059928711290483961265607577917471172067917459217190144970766673665655060086463475687489370248094425300023082731334071193603062366412846095439010408289263592031187821271554834906787601255017326122551330449235576921173968414349276336753410758044677407305253140587091383512950394202441258735277833405875397473950381998302302386246839450074810393917206083198404615405494792096352647712240855480800211133488248752411197893431701839057731275273080562389409368934600030686633517735299533379383985844806738724512540756732394000313576592463110247597705560422711710800822904583648338787836250373276994545791400029073107625517599210282094059271338038519409969272790762725876330460268636089502944755431529490209496487985099897451231127445500967947849485812755735248023712463368533406106001471454819330241673390554539899213726278830820307301179997303237837430561122136196691619911575212741221825551438173958785782127042264593848305150287161755110147568423170126972437478475005555485455364544431165353461076484800819442407142660891959866255898025192550931854161927966872497697670884979100437892944562011772943210954007144663808076486899132359630853267976994682466743853460836235242435201478597466712358913233681310516235889372564306738594142319662963630490198303907233491771886572969952472246658778228285614588221656014049886924874485889432030082459713347186274056418963430058273362418028853556316817118186337947337789338768435261523255123848092406732360427276223500218806292948655444128741852438230836337070989165406814370080852159805557102310916013009487120113372195640855727192502526901555546690245938985504884870176323533903642837295760537458273159222957089626730062420589648791435906863737380163884372152647529155312827164273694918761346030960642307165096952310584289648046173916318400347483733401245943648489831783184728841364969144924169541575095944443390013744021271890606908080048611145938127587088443445279749036914851611240494631103918388876537542444883841743399689072153871137501021357621352843175471698957253870539791304276627184276801244880833101927554227229077455439614424939653990073747622975174792545624215792431789369212137669451406727105355611921463888374865110558967828594023978112237852923089898517092325094658053591737214670254785312707458000140253610594805544453508013966424538253793822185249188910367511164708548106818193892021211256744667970927207359313828642285767862269729507216666168851294752601782255546357048529690207892417354835656847381339078690182584552664728792206053332969281969590815870745008109758300201034057388645172956641331735778682009397551785646983713184106976943227824253105874900336316121636834681019606878494240175473717205124063222906524303117528006738253705164903318028379943638354014757728350000069688271752094103500063358727316654093612851079974586843793355368251282080365131558953798597930183379899156339602032309998681662780378173673753732548768284187107875641619954267292524238843676458799315400985741373331215859508029128963534594372332122680381632564979819415808210526872421812580750932365316663890168920834726933374347019553238615133599453144176727315190696891390507897399042409204949506278800315341805826004309616519847561382571118717546031440181462152460893561150244422025524618141489098280679649425451373933720672721782992619495860145372273235086657827269697753759350967244010553761621442176258040351135700950214065618897180556252592236507181654546557021110882802199409421803702310563291407267368550389738163717977023824574821689102958169241305778273789805438931354934193167706038371968878353403207446161309801324784279727402703544396501194913056696597542237099649415984808313704440365133683671139378256609703352909942437126927318621638970100780252627033936897005111889534116295779292117533464832160567933913782155558022016915287894293733999074371766357880591012706112918457988726760822881381921335228169611833780141027279565573859327728969355728455607962914369177967324675716139119406489817194638863102904412424961134936780727390845191942488425839937716266037854637559841551464261744988356171611771210407698709415481634237991252922145669036999823163159865143429080703570192623442460634129058338235361168076260558660071476659869794804192634419093274656574678508385198571169454136038231785171577729698462787228156160325532691091795943163829269962711134874096346742652603298217820153290593274091843670085318688669854463933867689145751081648918817300975995659831003862047927484467008445954494471639460828827803075418213932070764497956177409007487515380951260783146678053985117652257227578090650416854833946364600048052720005874820279840697881129336853136545874423536419619881922074592143935058878203423188024037895882127009061437813381114254772977613688291828114351113345614533843411392545432090520778920422348163679829418563239530659498511405130487661893958080114567183789814374822008250943463166784790705410363613227085327381487787917334039942575071495324509794945224883098929158697795058267089665943636048872413177617114875894835404297315287815052753761574123541524622570506800699638122364194812498624500859624065594509687791005864748687959150516121963003676355039196785322815494544757298795099947481859889881374063718616532697353907113643777457965091449483538899416771703549789461622208726851981901163206276565665525210997686722360346413800368838044655717147819326190437717418050012157818965569617407104944533817866762596689086473240821873756016545034079041651559632799292047256952610421753040254360889517867607965691319573230682568784940104772568253549320119546811136171183820087786436166851417913587602672341146033040376013516053026150251095324198045964168855097130530127483058231209728337458684420076461436641442287392353598291820990139901256416538393663253595424956607083740528320506313184100318827185069326384217473931528795829662255323572578392775664082755522362913006435245851398466310156260601498126167006840436841289031765035692195872751699155977529688316918455647987730113491446136585182084263258804731685956891668900087547612319105879003093530270894956351213713016243921431348636441003160611993213385948679715149731429387961427356856868623000893695143692183418649020221941841926154993349269146907775360442405555202460826809744455728051550215417580143723014243703956699985833313937888552844220936493203449714731563047227006850100303856135025360760089104372605508190312122273924241489787140198625973693877094464883841153100784474925158512732891214566918236176294504968299442432683049950697024459034674936360511279561300340946634937643792355220212991337340962827338596029817377380571772978078798042193958208293629508114551759578492583215036555163356979263137075789648117306150451869094296032692558516245533183465473374774023683641844783298145259010989461812746751285556801469180980603177707167432280401406858280761477846052368244482202372111717876515928468668217600142186920984363128434604736171429099868517466530316025101192853425373407856491011575037097268056208745844492627710320566661348328504476484226714355436539626721781126084252884313172618713323508414840576056328669180763642776056018802735456146206745535009587053543557886779304624722665478746441366002867718176483134640777081664703252991181392621930255677793567358476674873130310555933867610835056640033397060917639333551850306462187780593502021495612650606549061431362341710189944618859333488366705306212135533889717834831981482424222855340959415801741539842799500506485487136820131428039958739030209878360458429734768404784976913331869646153308550353489608779793343739483988172250189331468809329786096865430066787426703497773836050335373631674058843548722101709765220017729568375107517193382716442344940746082345418568795391052300844481601181048611325811471195244126379355468988682788067927276718022478518083207890718349945922591989041085163298321446034223104649565965031905394506244437775414872210763766176511028921848051642337641386647585727661781683638858028391300860884704922040904945428363513658797587793878647918741830558284453386923473853287848555157138837496934066951735482971759663872211794806405142433910451689728555274768289716927010193580254426791323383634361243677814126500668438033241721789638202550646136900588156264854603044539754398832525293757625535106162263083930194683644130404690935057130835444536760897727043677357016825880097661452601253556347666975418757268620027053823997454973229923155284181881639444916854736437439306563971919464712778749978706534495713815031679129005107869812204513133820068586312688986683083063693266045524153186713883530805162304972994207156830084128853912841781510214596714540311259804899788717582221737502169039848359910708924992656634584954681100299051974459425626927630475076196243598499312195115198843502732802671128457998784187027165567115433724904591178136532625865715371040054729059794116746692721609220845593068088070081380027536099474666638608564015933739481595876682545516392198510010091079269666952042222144714861590110978176181153397922046170644982226948197795933094306123081367865784156812079277165345477181861182435383586755052624945819965137654475852125447884239388511688575564999808833086701363506285975221757084535448808301575308083084258811662684280960008814125256555365452769866508853728496643012985752177745083268604355194100069978082339379447425635167431755807038009431481004766776822880223537001250250736286586882803256819006095526431369637262110806102233335871862493168930020224772978986120094555324139776107739877204396071712983233715113318493142860512813421237026028643378640390549315432294779773767541324124914126791085536019946671314313608793722836072078363955105414670031977264871839229795755298028096891687941488287109145858847482936951295851112073190149493471267311870657860698712399382574386479530774910978289283459807549101862691517947961561887730682479638745677049325638403401719665013068178202409331999382357878994791885695183633756365923780164852959782761510053371679097833042496951390071386004679490979601841593898860676875899556177100430699223491115620690214759019435217070328112251330775138497735627189634325298185244341101324766786529090927788737635451899481027283415387596903531396305477699863157529979067363360502277433526614564164160358977927867148835534621701128799946886579253586936783610746595613354091854266545090505851012073704550417071083352842904315260571881916127627326690165870475292047740873804262665371003283283916245881602588840924084497333427058179204234577227452377441125002488181549743109702909745020025573528553699923514257946567218841487231119667499957433689181245713776705180068391403653481022106093848166172844108345801337800646895436280844542136728867647307208081617881310552808269648389854949891171036748454201820726698278620606829310376833880781226787200041872695263822150782773299090996774835467741897443113912921370695682067497046038415930408942311258272355496374776620393531424520017616847525305327317633447210268019490531214722765285413553656325399034853001155348745084784365743627386706054968741789723147066338863080313539430978451763043573304326654840175145144972507245321164465465339742147822362752177623003163995467736625625388974010928531791633606782029181761745544747249444290341514455154001572073627504419077279140465103496889870811156989668666207734722526577280665004404268474552257023745489503604075786034914898946952241359123973861457717524462555644541099759620004125853409772342864812760835642275608520266879203352557215899200199575565835490119027842977458947923907191629021517737439449998308650366911019696593609121958801682604703112307682983171857194903235200072487819968683345345370915695380922871320621304665732533882910557837916985476984671152425975728400315912743414048516891988514226929362087974335861987489113686250837619164194980346916918766217414389653853691948331777832070753535268077125306503007769579357114238519442459739172177000281639841272811137124387651398458618171783825347515470397347918919141435574536926868864039960604188008118351483628713895762629914501761929938090393025611915579500121231001153258590703034849512876135652766886210785168651239203980474024269918972990118920310543915259683170997710034497966514681064940094941616325677062341118799869089682724268765987552141448015383979973410071559022068364702201675427020273449060567892031272581379469429317078041655347461564776152261445671450907556261679031580481705155453205139872296407362773428063885426091752604099081529377496460105010772467727590554423300925897854203027650829288945555822728940732331202685029177680809108219811058560984925953231629632996561559793389683104230048659314797520182600252626122884477696965205721917764902728919192063306841663832595596636978613489800391211494126012588832886859080516775191563812946324512454450712877048461684442440238714145961696125022569159276553732558239794575266945263362077504136329873773124239125097346160191283370520173604656689469230343446557486824219869794044850028376588754758379712225218281919665385971602722523765433809275223496854070276848170211217959897203263407178001273591894456223959182572903696524102370740139112013391270158432940443619411801481250572429192785439600810877630676412714549613912699600147286616895539688133761623699669496171451900602846861218675856189703063759512752049987639660224738816535006700506094227381039949075705921212777640063758912391601731117933912421564730654474828609517572023548292869545192688742149293822068554925484849196343263833422264792126381701965183318615045138995507901801501916646104128698894281124727762908874470670794991822128833073683242325117743644622034636704513367702234967609124607856394582687200473165093173336346810110988136915304560353877765055933793014686104283956851622136958788154666256903733319189855351667793729450310277561232715415786233773782202702864517076512606402317041831566469650193390112831972458327616031637325168073034948343690159064490515068725047609994945650509064081000057487699722958975055810406090044301894070403657471031880732448713467202215740061576098784103042008974716075730740587848341313608052921578442891030268568556903440462186325587394670542348509703194741069950556257271843198684380852833306861287840208811022193942994984903452097396257268978467025552692029737865045552065118715086811038118343980689167049874800097083836173109833392236147959239234684271259519647562361270098191237985026379628524186478525659507352073244207216246395651189320868634189963061369247041359895884141039675756095044424884141386530311645883371681728684078399454143154322021257939449358942441725485403640583043995198830004706519902364268903241212924926297590481589198463555243864232643694445233155602871018962334583856882158274027501734552548282795538193389725874585069159006467837286232133043221013560575579578202511497242011927141136897832568585541475937802830387404428275668041679151069127872911184818866521297465595908074020934271421199253067653265724895362146820533226484381359953114212526932300437872230131154971565122175565258058441876762555863466834378047419707780574273035678492625383140579846665931947635540231301660809185428950524770962291514558259929846394608608804685743755206577791750219000849750371627962114834936310773951366177143999164490204707990990200953516997542054953791354815269850504984519176259589399610370704656601857723828580271372097800888295518066163907591762293948735009852002530636838150096199849451704184538267829991553273652163788083507904107652535853789129332105511203238439847415355369901144131170429070042587769641890115205560799031696540889275781153263222303420659751201976947491050497468371969169194609155951852853726812140394926219700553656607048255258438189243792068791104555748478286553217753783612083161388181848694716120219270104790953432735317118003805625055803147762718693334919999210398934481558546364431627714658775182586208735719370029258359574943855109450202538873804393951940895651337985869170932409048944276553422670399647742400636311840753180336629124887423773891320452383683105480456328907508734282329408230421857325094113972302577432994534884008419344765882048607460564492101109547202929843068548779015371079158349103948602498895427745171410175174513685986594497536284848588028820175498583468732875587190764197321471053715089703908409090526075232238304188597277293717275378483365572728188013157399184357321140014700622850397632804439005475640113736911445516269359207560235252641564191311624112389281403565145548613535003611757549600665495312543166335029687001026045946010897436748535970323550599874751300944596860682883042337191487297269976933850991570347576498470788648440184975061251837884166847508759162394704053153830070046838294906571432413371169303057936914619265242696184351489882351313832412166707174964693105746942596420999991038817246097110314297084003461605768724972676061417342083971026397050037031249249007731233262589115384970903515898867617255517675266511475174740400007547921935250198311337197014915986241252215510435267065502456626695548232475068453581692387273392906169163219147640036470001316009464681103389814541562655464199107769780109995265194541478668054167815936133265918227972682833313929972778981095778812596213569027582771438786418264340468943186845459127745807801322675257083528483492952148502113106990820704769323383606243787760898014832248760979428893564875630863999716014940559773907677412557367497958513569031104293836271190283832850315816354532743739550947349900773757770324305693692157414897369822283596671511047463900592755781153574282016237882992532168943335022930576604172508154354063597991924620291288467998621152986666880747005286148416859367406205675038015845997207240090779703416712773375593675584856030212257450633365976425447761853432869555919078132361133029288016349525603435530970787861611932096884482250340006066672946655437368419989999697160136022625700668348734614961761951555130884162411597608872095738199816406216131989439780921924259720673378820077399274900640682283421826982500308901850754498547541203960150141984373187860049999897256986689756964016502683318678052689230834371305970539876409340989277800874608517752710391038676530045251347839205883077904527228125888129101978109634426441028585989059101355729516073096732706305772888613229253290287432120534339982639306922812745220731225725985386295955920186732368404499624766833789406951639181212904629694817509522893495575994295618046764595063241153144924893102499287815336331855755648896292731099345668182633813213379417043068102443844807759835953149248609073881707010126931859811946180611824776262039728770911510532543961532508530372083084243484276517820447776069371255660148348508283487842121715624563760686537141397947808037616276061754917002647036337030822713065448538708993411435121347520737795594187862126597368198769716483848145248139026037029364452845093751865940507228870967680782321202241702654766406891586261246860169384248007712176586243390336495337797079110305946956395580212006254086829960925078427394843891116771186693521439280991475078218334801862396676438416168015265247289988737987871490680977682475075862132617814074728333512482334703007177941701893041061840263184201216232568027940170469233250923416936457223027038726823889563903946609905431219441819197784420299852166969378536901430387343725717380103853393321682748305468400492357489098243581915393863526693620931107178075683890302374431390746693629176515529499014728278224830170509716044050742200621306116563524743231023675847688445014050425736351832425067431866810276354641859059199310247274700171748248428087388329168772097776200154829138416977777267071583605253126126390137106800236763615261699626043938947267802224420678543048224657288429908999350535829810682515715046905080026888197598146088192619057802998598987500899132008453717736633672822341544497903449141063154486670725267631732701705281633498867674497075371646700763393426278432482655123312621517219702130614626511394238700775901897573716670886311328856858165901272394246013507560141995058148264746153777831743396152501717027561953506279369631224221378832408190323563758963591381689040880353421686800760435025100305952245309375272887696664559539830033064348099291301933484773388059884930223047067516424752711335425271621936258582833345817497669167705867371741845556128762478278907788609097050894752116059189531215150815901176336549036537033262446657093838680874660163128790446622874636408121873763721523624348602861005093282227977513643551330868636689448046657717803059808798101886775259233686317796106108577245392515924917697800019255173276920306969916621311423652456205245186668678994551470828848388736770602683357452928900216488668821675767351603767007264646693008607629176493962187662731645679126432669565832037441841528498682887721144561296639614679732220860366148835711772110212949496967553071600753897296471796633112939812861893187839387584816818274275530131531882877150344940265275361379181735362476821830929173615407671054679302745778439488994091903985417809744586859437767512271771289002605578328610964099355855967455702460669302702745727682626457059959697348412360193474025792672499927780875139706249211693549081914106118653750557259968259884258411361403161136041398764507725263863025778210509891808366430313676380303006250133832950474331361399143938885985278985273707977407924729692159461298581604695762183611789958991463854988231962264840382410589160401447124283574088269738809813454022305136251256354829603539024546425917231551767038409792258438731767252410714317991425660464581739801371311315967140609933817384447249373278388214774099406450606497417649881894545591149630431034512858717540261180696096406459744727496131881676210074081580033020369012809440290635783656989896715359051929515412178241119740910531564594987931478818917371122296332603205807663507628772959468810761418865087778081156295525692825644769416470925363158934649151095093096498499813890496010062544225808953064893335382253811859502300059680016103089558810020455632786656853556952533166548149822748166657414099589619857735199383714404216587611929350856388257688357322851698103738226648354902878868815559781166846386116783613704078761879861183100465383510232261875653510321262246295285643713808540058256569221093229605396324418187675816931389523170954366351056395261049634816100767419559481196526304059285404419632635287453375990720318372371694891967677850599280622053245723064388004552110397945260510157286835089827057016603138355182805866074376181505761564693259915261144610218657683769186870886084730119120123874576664577337691027136527461217980072664936405673858571763921730073311426113045625036590884618072789928759604739407894295455787407491983268658924482385184259563806546840037026859539248387223445689385428436762585159808343157727047167578484559925766446513483553406178321790943917127276987283873590466500769399706571816638732339140631263174405064049432560211370569023221926270723705163868560681737320607369663778365183407658481880077032509851672488597946386123291154345788095447173635376531674846781136368913201544880302027084379498384035928932815684189047206413154992121592250875025603410339437695068182384889359788503235143662463903461613472196671314848979500551195145650823064594586741288528945213373248235843496045004509484320747171821779553043959804335167633762955393270138829646037743100380624798340797931481051604079672262616001263360906883015418199354074056672861973217420488299131835183747658166277320829932555781953965847556866673606769205243821380101161278126596855337018848983457655201775069667108651111820714967437884558614423204104519703964401850706729097132129463907612655031353764179475723113844326373675624854404138599437838429864623265016819666509288716939842147253127000696999759072583045387922200372611917152516952392025495372243414990428077269013949545853491363655691393236615471301046915615353498469617261479015056208372961673530385095489381857803591574936710751819673570741454887260666160154284828770288063880355532195028067192654835691611448651785174227812865028308545298132335235026657942429021314058001633162874620226962893901198542915156523019429430540725159235843231486554582898658429722858582545291675668022074393821660690753948164529321473345214278901678749952441052807029658720628384178597873855622454262034544706793314385834255477027869127517666679277804316070243890832110125344722074884731058344916440314878235150706576541743273380831498443888015967165242529025780820828857975067080679308203677674667375839614726872526161390140693599715739216083542342197685542311304164777342728288797941282896500207082406897273591907592546324492272304970332437927081977266484610861440973372798800484810427866132774083594633537407863081110376133597847887410735998789616316879071070033022509710907087446644196890437233445451133984057949852471318500084752122301737290149167002251784699370640787546518828991501280368120013100501316929255762692927522647548452215580371902847825076517664273870532936595470851586157452962382338896193850570938410331498699503262690636410375311440086967135266484980613871581669987829088529195671681525535228496583409077044375918114334950584372554036665394239857387252425890695650307051469745906830018403521550821363033926809532936218140236526743984885157495898955052160244993248696678979627743747931140786490918115079381194388017179199777055427146581086360205591042818310646461114643924798349838964500002770172650692624067234179266959998902719200102242775313673534577934115381936930695044124832867244986620214339636984833455986445104959791728703915754361161203087192992109063200879214680816829435211537104383630632555385524354617915206744257711827752150306179636462473345987537295534175312949926831513359892490901935644941631023224218499782840194328457305748498509448566784929904488403233095237047251138344309353107573589034267599520975642475230003988154179032532813266062570173880449950815076823472730964015945961679992379925819754707003437899449592848153873915144118435331480871214947118466256372787042979396748162438256959928840901645607039604482571854160165830695266861682051268533197703111763798076637791345826022743203753028156455599972475270474855838440115300156354504818067469840747683343692060663888886769643342734064450404793558834623861823748305486342953647992601321621397633545348574727331762038802703392736889709508840798941928930223423280697771451032220624626494586491553386359519863933646416807051476378193520738874788926591231505231880980561190366636452040895012727124030294681495760788737942498904005030414550008166139179525786807603275438755119446223221437754875917313228819284460543396937455772972247329258815372930737882235084952495548691518843097703817133745970694377644127586418809052139934968718693124134975812338556429650872179816718665744807417780484399265593117827213330964877829972109671698750544248209841433506509018873619326583401462063990298941718962296739296680804349843022467313853574448326332587840636906337317784158461368979607311688920057544841131104230181021510729407725466287921907342559901775888264252981493511954119228150240803322603660084738238977739923292679131564167076344073648078756890335247352618863334348972321144619359467384041275927212993070561388909594642443806276040662652635874538072240021634842765477881363091673493041621912010617126529612990698514583845619093641870523339458585907826045308509000621396785493282043093906960295054798655613920326417868750088559335601214253391668670969683512716675939104090018423283823654366882054533043801020482228317017200954023576445846032042830111240758396594184236571320605319578835068809263391823144701386266568943976813636794568509621658171977763532883523252303422553855353184590243447990514272724962661338955565924766632416659063780392501701651535706833789963174324038088747398337833145412294204224840081378724198831414340265657381371878041483971132653099777720600511911551021771588833422924414790060930143839461056846231570073374622376070343158039275673261324038503135749938294221071826195940320028416117540831428544640545857013778487709168254832951595638454624622109805506474302212117166485280242581357924579883474309633018571458527112271959529978673698183229822400352107710351557711539957857147358559532097783801560515896798889845816988623495402002111653796361910944189938685350025608648310488519738572607924490912720994446151583616215372663165321649310741826558212533356192084009859937110738594804671191654494094978788967347084955498765905272668154620774727630720874676797192869910961984662501482431908885987348581215029155291260106529445611471744049912514887857073844762134759936656142605650848875108801396923973407573470845391601925546305543646132712619386377825381709808985376273704393556669405026329217428594881243892572960874802793994295823327614372476574431687779816439760791826703586250087490821548583275775130814282959255173023683208702535879303243795208703631813591629782879256294585609959644991909077549796106272265573490436615319666336463787854455313987558418650550140494563467656161986860889502168147717986260158401569730687869439763278221417184269453350120653728342649194069887422407867052279491951656029908135553702690866075558496425937434795350053667392094646035146844169180252584914680436394773601370470349449403863655879389957104620903844544640778086722710181068442931892722886644920559575519605339182800063172561087454257543791882975866061298974027968783490997891929220355220705719494332920756352153242011378287382306806946438358089466096178496657096264508569378919994029979916411954181692988085643872945614015849742894971512909042207387203472563750737476488666572231881093867415000445510787646957415262936800931732806710916195796956426257709814919648391314097457182856566710392645051088158763048356708988049503105678134345934914831819637478230775242393715346524459336986480698249338385307625868598058638929338102025540435015558136839925543239032434251409347931904151730862848672661640143031965620798731872668464705367262389148163221603168156706741026301228277401316436996670558515682904061298035952134821686821258369943659872391732817280033147956588550943977186205092379412712291540490129344035722837618997861737884011125986537445543364902205065043900113287800794584787181734349574743809345698079774094620603122582961679159905823580833033025917158486151410065417767007314647494946180621961092798068874666497941337230266226991934276260322531422308869162583622737801172904020011704693028485899280712119171104150602236518201109304254768141259763294930500738366353617368908003814928212136516299516652233518576238914204191913948635283292600154526806190329709007036463008826433452064902540281737684912825934574783170904469343390202117289212763189633616327575761017937454481249895752315600473852925799580578077454884292232460819770799948999183761675566282741104279694697005940820347304414728448181055516282157482176784754331431205943690178135763577172912021674415175201509074512891498414385413915718265864974509891290428566594944353105145705071779727727075683435879325053904764596840094495612169380198478310993217245014035507574856985402513248899290824319799501601338417652148616669908025903261244792290015878860485715051670157909530180769572881656899979130464911873751688508262122221159787655187114115353498021730663657938330990583861702770904041205563907627233185575544489842650777197630938566916568004430463145160329873515645790644761782536911773236379926441626083284541102705834721219218965396272097799300120139138325218344732709982484518009176378887350175775826490750762308905255952517758490291920332802468220819876390407807400010052336669840489629640079891261910991461633930323082213791808024247097590563296875353218537371414867840530554405624004381021652869422443811509866482327542862719526282532272653265155072822988260795734155936995458512098648332971928470372103916775315333764757053060328293684337013052633826823769500191965506025991082988256381243344181025331262575778911292209889163671648708761130753133601994253037386515417130272319072843029126630079919890168643315587094108160630911687755561765750163926175836312405667725712578999081235474900704258125538419096697739582335049110173589981777510117420452180076979700739316257398700572101637458655089897362426226529572182917564620042725076884744361217598701413482173442237055976204781451316967127036301842453064944538753647339493415035227705040018992152860744661414389431199580473683255126695383227907838083588059326131389811519212026595314273720615869031642390141954386546415618915199734839262283981899989023630023065814441544853888864110786448939194531662559145185041809812487998199787590266682616034157083823138533434205488982240915609536990416962970818197562787769331758479813133716323284913026829644755504887259646176460561942552615945684713970711797206395548185293124611045977969293113057054041150148593123876466431244675075116269183700308980652273387040070369725573240515923369931871076756877784955644599427377117027951617371921931177967255272748351734403530720283932537736072372965116119008765945182568455375020367270118666170858132843523512882613669227267206347375138848082493545994548919123038656591415465807025139506524776348692796633245457367043618732314925601056299248834110957163617492687751534448160108085074741805028784917478366614603611420912114621931680616622683431442396957975890807366211752416390678685319290674625766578188069959007374389003924401833802848936652534007040890760274018876916187641441168731810537132963595298860937364823781356812894814881708077723235910072856528312094500869026854302216315403492512464852514161826149939265707201235469422210316274560683616879129727574978950645152696887755591093722234924098429462854727830624592485138526983714322315126977363323509228867024191132227491754819226955961833274424002679177531503760881203307650615492880088084167048973897396880591757026988803247929538666206010500875294131549781526747602927946114857230689425634929132054680527759261186318246156574742080241093652956717431355830676596452314460665222109766729785933705446483792041128113456975759770916835283194909220255482976716888523805292808563406847500498350587815989905370580552905022923930242547390661532554840128319155070392606606810829287167236871543053395791336471460550677485866331598298676900300506164698280346973291757506536717237832757249729118042713358763258878008689980003519978442661203764119289062899217081095316741900016320008327212581864362077626711969710098299245471620581504977222645199528632380013942010804700968372921586288760939334659307532661549028145214718002766537639553142945650359549116631648680276356231927318133037092776347487343975023729073454020912552301867733699312638952012624161385700839578193377914706060879603700280220286722879805955236879396559272801924255894230181037836468083429885454088052916954965902337600739801456061569256057663871535718557410907803403256958339081683400808510459471164898856920900381568327980942286421758336316779546052040657365727430529019034637636497982687215750603912011951566711568146260418819862018400340991916917523936876439085699962379549312245426406618220561888345718135974473848140078170614005958713639993043247444281809887344651250193601492435968770441732424415404159725021578684286985302869951468708627710033717469281279165096414512988782795696914273473547617230804934214903407456868179722071440005042212424871104699374695457108057911552222942995224640491384974399838816213255632097309025997411106083644421985178208823166089043584499820143948506490054183549735773893952514169216962099352928097042108056513770497234066442998488112684926657410037835444989808737404471628428852104127107030916098796613616224807023830858420329902523053372165410097101807266676238904096545058111319179183754958346248693254940157979866254993566240071863720302493225096650457602054637705641064568706904609721406223080975249323192152812475206183189063452533727443554124329913959853319951267238473759973281733815309134237036440992789268966389563336430450481302536748775084092730564766871414741599190799921852637154993478430849464035307184872741723156091699981545995415110707826791891616662894373482279808756581209694487800351246461592579551649812760018225432659923603673014397177592749955628213381534202022535432494173400379085454961829744606289736308231080346540181895180796132653464058158285988911462591005856110397696744319515088582516028530075362315551487728375027475708463269416432527360807753625573296102725276961322146283042280138463790202595208149028671030025026607150395392426090097436362895250259201529884290389620394786392960307163403649313839165701796777704829159499314976606054012454048757136778343839213144439903724666328520994683115823983534938915497205622334030897930220026568550229736124086934741385318716903615578787609947038090264683641486381001435395921302912992434014812474542266014573041882825398826912352773287022005663748123521723971697932257017619414360835348504672073598777178064640321088169641688744732353525300288973075836373773507001415130587413537180271159458400988369338201801728064342502414707478086221018863239046966263377281413432688573361772892259347231525407166853629045061693398475206735419781650172371232286041855134506089302594736005434397794281244494328314375798192503099015259484071396324474883686621201958369457592450942877343831329232808539467658345864295125866012214533052616786084063943695095193362611653301429741651832913873166607324478018140464292446172828059149794717949536734253470460660784271188697101283115808033080412031198761696089638668323585992831614031816153808030388695066830667631987712371410698978498027579575155299820967219173000735732294363318637221968058141211851593318576007003875503256659189546775604002996177842129841360021191837080749354829137604098433874835026771898761749320395173312691313816710140461090645211642454023454904028442420520783259428750068252854249673628539735486041464818703140663565064499309936357312999649839701829295486424171225512842282604068590014195211290669477090860450106048604098095371643245250714004579745673856428834708891820137108951511346462027161898873901047578296553111981372139921544739095821929364195828690608013606746995188887960177752378620835905661403969859140367614012312818074899315578528243731026738539428588306506654889287114803687192603716124662342122149688296908142588514587833266185503802572548288986553386617594682791111782024746549158207335771947979090386338102670505623928709926244941609299890368358035304084626734858930252472347588743438765754443278078723779246742928766519000260897815349948650770874845121652070784358739119213149829715730363250874422454772738055184726297734382446575168642328548106656085490213351581854407758839731343433044215657330265130411340249809503665032551259959763619235268955385779348810545635390550829303642909575581734009744377194924121941364743764799274760022773196652520756710829881389471294324450641741416994875245376423195447670268146102837514799362800326145030093989917481520896025257150473767931978693994041720668269373796826296830360035017203812314274762562143474764361649002629184623430898747676497452964492080999624177530121516644193223951105579083916884507074434103587524457120356215334813711083713531614558006334866739839687063715121870542217783983707700543793734993433438734277278745014259669959702011786828905887200594091415707132527679326584402835517543732714578044390685750684794235653718741121983075961456913237085489923775587212493477795221375664164513884450081680706586128200984496760888130192155655090400078024521388606815465593593125814059641968497931790184420957834049011820907884442005844460197455444871758179552429289133502327135173859452997333043888105035917699791787755086315325997621937436175426065012227710648163928587398563110028839441862880214047459569332350728216349723645729101103860807330021600276342066468021421640118920983320364349915099663191244166947345291958465050100842259608833566537261752881939880241919963568438361286406195112747519998855855962629029316701787518535437094266272256574095562628027566767328559594248341763162007480300803276593389279293972233998838685663523610400290789006675060304454120118255614337532167679388342041467626381550958546207885563755408439749445531524224307110057192484732209401133625080298114481147663804716920504699167971725188794415431309748610835444645313444209987279531398904015203863504383866459708447725709169019869827422093664116017341109109730703883270567276303037443055339200215313478991392108933783505659512576910925614758182430141439775282031883820285341293398812456182634651941189089363878303485494939619249993686184801653416296697948599805206614211045924126205032426001912789788341117970585292038825316413474880936333891770567569877053527452534704349895268239755442159452428578840764264777637879319634290665460353342874011122133045061195613803198290889884240647963091146324922870475624878873337291446833394348751302240388991150944066840448545612312584444129584762606541191608533224977847281093574225782017466085576666008452900929449472391583192468212032451296756730376079104475334641766559478181654891834184889688948479726723491828554316445087765881420157192115280714673185903884247509785126144485027645173619349680031208224473139727528710427661435377241206801007264216956294733668085659913387099032203133577267669009455293394344326497537766425860992369102600540749790900751052382856686540371956439372034682019809915214843459030778368358884483654929581212848526442122027069339462422125146712099323542769283819799669002301135856640503971361753161986744378353546926917639992361054998969226275495150627555628870760772894115906175488045946576109850830327942561486465639567746625831531178105512302271409761147075513769723299106716500980028644779866386415759833308972301827370984279424170176428583544127808386889994218229239805735391330419801792340330538842574564285568379094912909202008296446729055927064933711186578778227803185175550959356737662186224684212450546648906203179396208798888497343648221353294505369166897119324950670071630471962178061843885030945998507232647249302549347678080078328019550722440368538243639934275109717625018612915531089171046211297324448671699497377120173103240999409265768723539929307907789466239588551908827687517035310238304392978816602855456657570869528755961174387688125036442959632578577922303699639465372893258147394207295996130568470112054217135598319470979558661486535377384095823212929510759633036047680846536842803975042215674039656513856825807651337063377072679738399135358642510086237510523769278887898464813929119162650779501986347763148513294719497249906856127415500220569549488765017634122113287036597951542497553677643064945325122112599248113679040633209451662867664169375427856593899682900324350810291884129165148956339883641740653946849579983089747229302344672058230059049238450651546586098325114182265525813677433191557590843349440958529496333231762146226360477266263073529641934995530354513371101051952031921666426538812663883673419130304128105991555178864868130037885340105094669084101082181704573805012399893697484992488576451868960105078046900033032190739482537705592133970620162007047088803188371942715759577616998970832566204641154383736971278650282406192497716243153335135616739028212110110803729066678556499838170908639479540191533815933532756472054659735749667837791054405677878356982168050115850747342980991801284705782327420899237146671310185345778381652535418857761539381005043045030395682496135538166016820779005023522963644833672072914422780477552450169648506394636703954454040287758415929688881564052027298531638867327569874102336265262820345800477922220912783268566055392896434151711797065912250917655418317873317750666222451621175417250347031949401925356980075904886981343502784773272896202424536798074357764941083593348450256211423173336976252151396698331781770159238533896014072002323629582305908990703619542478007815112033786830513251857300239983064863631208175536488784052827179983146195195545929995674803158942469018776656030744977692858159298450963883045650670614830434032792129784200055964313670668413349615328058094427257706066969747746809182692060918400377182882798641517638608112455343753674767633680598425529313569459674971525598740567789343240052282386491624738895397352136292019201697126286602851876161461368774600276979436054919243682377321423898838518817731072372381645196356514263217966674698738971744301519556053882484539779225758427842205335864523638046605915251703487178601580031743195286709457434288728504895988703244525221799724897041924305774683734745918875291506095548208228599840111225983765828517737301174371792595372798681976812647477671785886662519024587639070516702739693442358650106369357134262294561390730339232488410338578705472691743766549833366196050037020844927667895327168083997872095629150626358620577007515014746505519685424763985364358651745564478350378800553117971498708062099487680622576125143872470721634082345072393587115317237612694109687698493418751252189620811256297311524115250131908266010486003961036041170698097603213435829901369959286326487238839112993829501975426213375356005194656223897301819360248363735615860064527353667885241563318685611926410731810738875693449079084729965015165021014362351267168752363802801418194711317845218414123892385775624151844142260959125467635890335982743735811941325936156437890493509510216405145924326748748417014444046941453359945781370373892321569454897642115592389996555900030896936205332162181222255578132649309134822229534361624671917872728858439702809194838657163526272639930598459628465375620497181407635573244634042729710816145008304006770308109824286008659969805979219569396640708703737619874305838353448875337791455664395904409422746521636901269826527379773919069953327767185072161191494167052143893603583729887936560668092059102837577429549264564910400265268320893471139786113459526243228784590936107614908623463414241837120823491440295026899442716913115570178030155558607229566102737882400048155754716762453463516168945972328189156550628420097518668859897273212659952734284042390274721369554659452057898457230062465558717831272395339355408532155503932489685962498659024123925488818092810716557483020194164127311169324368618307787489387772450727537622192804901355687553506418816946891018785569973787553055060670710448737660419475276473019892339601339266133040046097385586749448915821552244458963505423073652356825296064582994693837986312628560525108150181331469945621795999934147943398593378087524871155991293386030850251538623318843001107536609417556400383778041572980814433985484302865892741838177723026977565763711484982357595327701257141708965583216146341593086760945003547232896543466689819523921905385214684765192342638935995787199558063631309750300101196965120127672082263350124103900582394542872653824125740807731967439059311443965366879063571270933509076943898955485873645739487565109561036629571226362188100011311342788253554402165786514276962708049574940991569961891111651526341807784342705306262141416482039094809686177340480868177412452704457386841075033062423294053944260714984600122688410314996683833960929651229251672877089494171427645330339845800115398221294352758408171871980016820313768339981745230798322032070259982646387932285598489596753737161126582449595339756528679624763184920714692586767629553096541746048282919162934920631702421098055935409638723128703762267929439562742689930353179096666325803105265130895373240118538897917139981074781409663706748454544801721353640378183582499587590996299434077962083909895965159958857146654517139064973414751602462340680671122079749556755003684586006008849741825358347378162612489245424728374732638234459755304748907970013516780670053979150593299541156031070339437193451090382959350412132403481693319241500191714429837503078809088081811421424171279067500483788576697062620966708106540422764763584377085425709563540719881922634007225169477432617448104525003250154977180824191369436175695173988840720575842654870021459905286807169919623843687565286806354717008652367525033516497884318393435042234993907848151868194697623339409610177478657873969032804060601634875319511016488310694682384664163742114308237989498976935706822751398309136766031829741322833687248632919149651207327628619500827559403071537264848906992333965064740125559060801842503118178581681844146038685262362055677393988515609475366897489843056463256525263574910255950222256844398108100644853211107990619699946286227748636994591046452616504817964499070579713358634805433360047089502231033591349822707287538096678686117136910116402789483832582750829605898707211891592079588400632772904973965065953790571379085249865130998435282063581284123780449959898153002481065614165470219858115519378950774312007467952703553065349640499027775098095575278474624374701532982494126220825689696637716147000951266489484588467065599562770721779317061176946576438997398583964896741977358402654063058415685278182689082859469114724387739350784968694890237171525131487932978650069071538152322847955895567574425678775634218227717061993697046930145926753072007274561367123809888713629334477082158748200059625134455965640205965107952351761763809855640947354134371710022857165378491306263743261649127872632859921106023186839586704066507414020090940114690065146887947517407337327612611020421177617828078601063644793901301539282286004832525435347216320149403975493413190590208083146925270759535858937185446338157905330574130802380032963925862629645552360999326391408750344167869001219302269615869021687950735824266395853163109855656532562120163436386174283398002121260758990629682921964212328038241913260937151863912787999855450224116844728494641946361379319231291783509024469422740040182223872966077884024566292557758110867092840005686313391095255067615888385899616050453421338403389270646942114497430789937828534900348420770223273255526961862393781453793726771330133055725776788475968802793948271230063475720184091842653011858329064442019979698942068010427686291389451215204039086817410404108662231390906303677779789129964546182360124005856127894930584514832732627132187710312314425805641196759539899679542898240928646300636789202960655212661640617775186957874986476217148226211129137834161611123224519484531217012790106729903315304518983912611146672337605044022598781737899882473389669329001696452209049701443832817911986911467404801561664114101255696485972863286060092685845558654504844467054842926687275781720788001724842598966609525136133494703102943000275811303456112745450500658753626690100106963195831395214878415674823367964440546170052245703996753804346391491108435772152428292041486960788061475467378491235955914304755674393081075228921406593602111755245744560204071197436446516331084786020354045444472693151211278553477259546483031170383832967959932795972070465627002958072639599739469589393207122493674511616137350451092641361929854916672204244952726182647677824694634538981536019736812434925188491045594646533208685967167025366838116645395923238237780792112972920785336544479525754943090888901814452883961170404502340146379609056201676176995473092470392376647702699086625916514551663061061831735499133795806308430423152114930273767355682454561685612466103083925781620184500010915981053998059988557853017992324003150804689614122098927711517038248389223881891811872357633889877745522873923838578363697607130614562154285496739130617753541697500103145446282624102332221469230062101689460885265518798089840249351313984469208329958305929693793461992507069761573085939097651275072636620254446315972661567794629437855389947802806018314537675374556744997563338174110706310717620834760319765287432160677675986687574169811918850393124179089913320952415653534348439754249887173074082943830105875085334707795662132173525454779285527699670875085252807968516469064299988394794559751269281300739912891338912008895399417314475114928674850314236058444700516442229479913744237262179816350965499170435642356738148165269889480698154860007173845824467455676347226959663812087218013812397335572142559060697047357237541058694546580615090381072840781292803594679745228678080450946231696831705589361489883269333534028162374968076709964460934516422155421662844926968199051101702416668309928193824578213351499037052987651746484162575126274075122314179836997132900747542484817405900203300204352886528745606803403927846131135046727281635961932492178804683014330338539657880813459803256059500678157874136857921826102863243219848790239648615551233259219071655628552003116816572674557198041707290982687739584350409281550675131083356519749516540873381636364094951443348522988560423157407924793674150459032246561982875367519990925996573711074129906960585478897287838934095132264833981212195899844467430883694324896257789665393742719225654490990687629529706519929937635298837507598451296185772124859831527450230786056900544515626137908098669597590698694670999359920166229989639606410900504766166717159657613489379221908164756755903629424497517257418884793047314416838009725632998200589863534981750672079703128298180308127775883841406667881483789674935737311884777692129816982610335358534437183450523583722336172734985223273257372716937696317869661142662460161402481438454278804363696931714184693678156490797916703385721653669801586800923540022698885410558782165026605474566396684655322586509469207947243701681470208058299918771395296217351757467456689811228647342692362604500150901683469536852907936605838566646861648407054366481177155623138651027987347145096093690200488849531414588284323942217794975862437692926319828836895774727525496048396689627590288393909118459569919158530660695579724377769274361459240542017823481096823630321534178044249545947852218199939308348164318731795792643964353411275169684836200540523129913235233926266415822930547025888089180108944186367991420142815234277975762820578002428368092007798686676624030800779853778584321702332441509231653776316304827300184680009734365973097811878309805433990134241551102944754887947791821888896177042922165232381827006893366670949681672926867700869914013397084511906734615873678582791798734804317405184783359256480585403013966647624384980942408843442418501429039779855270155901148251562464032058188144129073204904999163106437959694740803493494174564381074929849513613320954569609125117758289445812038438296704527079262840343271576182701690010351844322078302458134010952028362026602820732754340167550068358763647849274350074361204931057083184989464369931302765108992637851506455344661089664846848811355941834301825479180285053853678266710618369549427389984865685477638267015785486669744757938430238514608891366068677095380102254155606834405776401245189101312467227689150530833801603737589390411992424026021458500075735222556654352348003066047183143304384169175093535697225232997632785216450570867428630874380053023800860796822904636526312753047171230918124886051552526660576562955994595219171777285064992874644532189272312743992058832351339508131372789575151469830332261345579015376423423273202184836067947320848486701864526523429252641985700505699995304814971642540431961076831697898382857368940314360003570763397083023025796875997157047376129963430193437341924138219013397103720773605416193250975305411978112216390098309399593671815426465264911729090664735647698812568585816980488744463853535846570562636877616193374673455072130115130867456649161681336287545515746962744773412972297575165058020475220434470817017011871914889989459850780461794723378280637654377448900124008977833349302087775040799841516779987788986580012680449867046089753528521747548320498615655259715119474512183238755467795085067001383758448175463121700936012954085546244713809776419283586764711706331684205174410177757474578825174673169372680934803087605519465411615868716256201770487060034471774100666268622651083440687292173030264705577830919902714630129989376224652493008695415558652847245567756530597089558272490741010850081993428888579152312649366761602203161433619925612518159609426797924782222308269373142118906407610909803952326371970499987340820287054350145390329238572792899396923047148119434993128871833607440568447838622143847896180679179301795427533239482463218839962727360137268568070280250190731133487233345645840425542088444958322647056484424556909885115692126652595140445583125061912558058572650427433581510834837900011888361282843152817254239048442704281645842701604802884815031725569060565261818405938060731989932142685588642292925011721362438678622669150322018877105905961137144436825595742673339626884842679691218184648035572634637760679256540803665568535157324646994863102777534569767192381697169029997006086445404652927462134955667287646342704288240737322932712552845041069706346318113194428144627424061965134667236781099414500224620326699144788721063603891152129326539530828651690225664287175160206143645235952981788270569502634076084813481693241537660774975343315763145294570341839698971125621730573588282307449381444296554820972112463593400879941637633919452634136950544593527415174911968124255811765029897748261192428019440433244393805953055957240436038034962739451539669044881230309153739557617035865900401015517497432430833522374198126261582581418118061469694330077813209730606910927683863098840708428750469881205391579741905397393007730942282380073926516524050958980972256597019134408066065930456995206885301985173916622979888423641261329110039168444779057832981698879593975534449666575874710346517446347996572514655180974394853185345456300521822306359810898372694181083154644483674702508797133148462971344369390731440646711344506248302605198755934025187948690903386459059718693338063823824090370540095562580020456628282597140878769195433449750735332940872844304269847845186705713294208543658608999652575522334273238892824262189712504838005792620810177178547541746535824955844933973834690352857652642246184892750487663521331011509743133713071881452604816969671207457113118115726003175643933378048420614978992819885714939386856558693321961582666442961924106127045255475274885267587039850767261701775065242018938004165499650337520709989306441526246933662869802835558919218432533309788314243279321349261098280794882880168651475519014651947669332747642014155427300989126779445644538511792346113874403935265097403000543150371270616890328205199775542997438747119431173488845837493022336748990876457670274480224162063373554135480976484846480706903960513307149421195067553538692407714372766142599588655185979769510928086914932121124732319199590353025062036268430652372406071949574040023533921779741811944146242163073409058484939335711923133727357372955453717308887939238429267056245756404753616253584218580516239283606466571171668870109411313709466911806917351458454106795951599965211488974625281282963142430381653939715268655876447574061038702154070809440296027382698615524043856025085365726210242156731033358454567998132593377706929981826895184723390352683988709923064966550201765433413493712410038053449225341095860780737062983187548363955445030062932520903754411480122017820125911311695301913747137440203859345406428813237700865967448749066706067118017519235057751010247331933828379721546903281043260685756587528304098692924506448675132730979997695552481405007540405958721152924187502079448347392271149408606948527598300189827917803870740053668199508298631447398333717700362432148155699351018968570820990032702214896390932216182896697810477089254923149962256167324517719120842169695096604679649683606402750548798633129359331762181858301727947715170475533124161320228562458105806393271690228338642536853525953347406701586383358701047018511184848929904680843139635218557525502274850791461496102561774861239949604439141192393865166507690830220785478566466482525732739181014841402338990030891568245060161524451712466882573499613088796120845624419697090293683518903964600991407694594253230267848829121511262888694082626103409086161967851018911589284887031358029454479956536751171547939126655823942219837097298957346650443626750124202118135724140666114871604190979515163752855640277623170590873417332333160971427804120709416209169293451977522327272992018407440559990624919920154790515817980172246484948268971265535135960004286267540964797067078675214960619847170598851129881743643020490782413014013072558241386817611456414808956367881139722087982321558552697513325088725467152789654490756385943834632658819504666399000629856601542893086921780486626582241569437002149644552913891688810746624354238899350424645842932286321032056074355967451078491296258162945457977934248642658420584290427484635141692078179986607196206502643177449558935085560869755929530687243904366534220071335506723173549439467159424830242827214262961426417290379538266694985195753126846796572614015903486011980738799345470848407315165152653877873704011551456229267051683689794923195694076040024096232998042567209990995972760738167445105233168171748034894065605767298264894909424551587384924495746195771228859357544827164529279344953410550096219357484662668962146317190898515758430030130435321302468785122012675958821528143316959965448434886360651178021043324040785943348308015362949420885445736955725698248834145632252014919765662307424894143912410969737598662564996379210685385785555584348652024293825230454371524800994227335568973957227342480689535399383633551120058826845757199595873605003016061502088115107875818580419027299986100730526025713774516166006689616212381290411974952567455087705114327839808064012531286796645461367292636250056358899356648364108208515351601527657811657489228843249036164677285920137372390237389021794738650040274576911923381095377127887076983126539713720310119358005041326012362288911874076286212410642994004112500027348646379244233801267208006742641736519307464650161104513666016258813460993835998123333719275654288968770562260805316051711773252429794365702097799888750569739110912422123184561952790355345575186917025099792821899774577265976462095079327523085736868904765443865734160038453815637890943377622321053494151714056405161930871660281093676663396630464809909996498755934811039301634058506229682111715015988078906724541321602243601111842826966429787195398501099460155468766824587725669511061143267767937558746301017839624483995422265165106755572955454769195966223248938913531896347687932326931912205236008889311223706550610116163954293586775679948451225491740868810220026660283093071335613831844196174122009462795014099742451547439016296760838197789303013717003491803507210907488844743118756814818506745344360709368939772106370665175170998217431337024352180030900651821392630205879293723455080356879599092085879844335601513991661010088182371785468620967988599053856183656017732973120691906214886620063662957163844590477388892829174325433366053025327582012227823481935776420624814934585931222456106729860855017070030510260735879558301040222815983854369565944955407329169647891285173430773178006158911700844635176463400738134531845968260441537069379228261587522562832213228561268674253529413030558595176711681617580962048237128612951589360758131036799568603912859047905486965916299938684187867042079391427823439365538098348118407674590782799912682944547433402302080547478408019004627850429115011424948027991313677247078354950740745009902433538379780658625193459920750459192577864186294891657140830713331170475054205060474096297077826889911592484581700579210623724147040948016511509243817949287118782979628918544405825578104438056048072363994209058336333371229406470755947397988223230493333263743571497258889111454045700611507448760315467457327625116420634359391765644937435665630793543008604737081238685517512734861279723476935545759801596283703958377228930052505816745823345081690944307791148786447633640008558712041840725395406786245650780518398937212469048139272075372646848921521764485169138530034641218680711263496020088942003202125163267736750429863609378784503727535341603335183482921122236168096646488607386452979800773278264436947732853437995037030742191897942294102405287131233753743118430449983835725058911553876829793700783460238557885264508340827539685997498394434716779326311244159251497060578053804479800593113630430555718853003103835606493884176487510913510259721560025050899548857085462571210236335045211793447366371752004790855637540193668822215516058339447217498578413780784967627591232528077026266439362727781148131763505980465655019554622625596698943984571030017169750934825578284596464681538589912704644381098648328963985766155978696239261478294846976077882083167486415559518018878477305571418799014420098374108886855977179995729950059129591062510052778681830853627801795267394045577253020030324364954553586540573151782988705025746200226982904853708770217219629063675208468392503259348442932078913070438648398829105670377488669483676028638196481363036764228848941769602521094389855833326646878124500862668576226527954640348872213511137078367527384375357424878912486538194744753858333368204846106107633451299406203382233744526280779743610980311476245019640594553638422856899083604118187417303299659213990642624303318310289160231204296841985511356083971610098394955821422927520128589760503069265378501433260047867585022065759247921158005773263000873788377623426766286167262076485708970725928864037377026987738523062163838790602204275260716992890637412334660645363126528875727604808628647021749775416615530174460611295696879011403561198213534618507912866685993429920485811961552175486900774275185716715352259958569275150090261462489266474225283556491979858508732446048495684216694067696298971210688549080057714033523296003430896505258600489451977650622239142358702277156993888799696778466002251498865635802984302148655638154853129011475240871421674071861676611901715292813979264925071302972004177862165104800265693264277683060518980329770464059258342948731709306686229157152013590526131602724031521384614721548618753070126890946646316367266486210152868771955158727682366017721932959247969225081682394180018119423453679253990109759225124220832123584839217814494124844274248046903378436745790625342235570783613972842689264203516703609718996175205179725761897854000236870356165982280831901981625867025363340032574194719575590888825401757376659192729706581881356550929102472372456148406260411482751641904028924822689307781099318910273365016188560642306944340750974086743526371471933564586345461880781888413378278510510702526014884817524640854793011943804024370537213475929518027012683109252012905279104577992389229790894661356726010583156407161136512058689625235774764789897953074109194170119123773926515315671712623477998009611216653492394884753818370218387153186653391556472916206960991719563345305270697545368653560978986133272501679618067897211602882623713070488691236551761551873337222290776138958746886813596792530959369077147709864502852464061725444836238347082976114835902142403247625295227193643969774106349762757710718939673898951557367335194378315046645850947483545632522962790793632817353401769605434727137746319659033593377215822587360808785115817408199011077121071350164198037926026378986346206422851636683425019283653547461962524112624863476965426220762972637331730395244912658985427287422395876864364704762810794840067849159814863705456753740343166907062746330355722823008750601721608819538915310004805894677454324111155939651596481562474509360318507871760978745389076423255427682353911295274692340527768631092737433870231962466303026017947298162153690753496441909498169223227028990043189791062884514543363022350722911848180396238179409440624820030998266350081248667162262205660684328721073426109519894222627971726427192180304514468956563179378325270433081149767008409769717173779007394497819606428918808052531647835194914817962853899989664876174491362777616604627834594737041002960475672746323367847750679949207240627803460069801581049779970627869543364074746519854462585173287636992270497275312757619254638465280442155485784096885915188718587924774812997344290828739527831471806521983851347057628067140445022077821451311972194067446978647986495458608482932742336842624279753195747787233483858403108054446813393568447559923481026371947351813303675305280617319653613848437057003566624814216955820324354705444429666240430858908542757227814931130761452625609237631791598992294232103012867857052019807661314723129313065417673571450645657705956839417533596510710878959809274238007409387903533405978632956085391660226896683934448765072138814041087896666335741761758099717476692228842874469820045976955505228716474633177527941574727436450131044772535400904355807088949777835509274943175340485971220661118210564183407177717162561909684170062057179354432199254200083949044538040009373021195646659895926767252874007224557036031815631625757975131223931081575407321852342336967357444289828560935347699923064699378490924456984765826783926145795404656719993566081210278117573883309150767779744766092617706764833499236322514762936573353881577803709928730340194303935507006829202769590091026848127118547510505735381389695137887124297018596103670222221140967065839759920065663082234810958050012049417184755896010122436528660636144055058805295099915577977956383896082155800974581739548318074700818392451148134320158502383180292084584934259594830823308324514604000371545569994462797699472667291834620273618753795831983596935575577947855930780542357378683988654419449569669963242540763884964048182018628716172249138517725981705173057688692722793261777736289128521396557726519171370319911860794627781387167676274738970875146555019547661560903694456522398510286912775908808220743069220897824288156572000814079711380646228658507911282437912029875090850071313613259226539126505667517632145016625316110554240583581403625224051669402583446318776352955386483045090680434902657193724145262946594263065717224133338308038913270041132651897209036990306940391768073954857711238332754972332704688005166423227897930883409354440284041908081994551666957365249729329435498809897704660576606851435881241275409680215677437763795782398776006612379833658136696164376411277226959629242866246465760310159631758726316875297163823646977078244436605089591991635402487372204756536781454411074115170616252822865699325355641757621654859479481909995329928257493531373352828839451089155048403291501337809802504879707148238352643338350452139410024252993227365833325534383346356865744034169285534276181312628438388633077950315338254976701813036129464491538945588567562590576016213533964766046100191180615230363439798266715800629296325890534433472890263751813559715474887418104864601611665415435581654800743970069373262169060729152818757230291768323182680454110466043034793543712390682163573745183055258593378814783071180318980970994985047243861130936501413435016001832197213014381394918536686748914570058727323994399753324052920948095029402291241961564561493458486595144852694862777810610890848686083384237448911104215409245688057946538068768140063643439831077645187785753921349270060016682761664707137679629260128754413663268537621914615194906697623640631614161515484165170949168487600347997540883472282404156481431373959625225101406541542536928717635997370369719923196256091670211659201359249871194570218878646790315395159527514469418857305400783734892810135950322028041543051446320867469032571080626670076364485731778013584706296326063267233497314211712711784019796610513013000106200317437785951970060932837559816724375355590015127998954011900853913535766967487514358142904529393684536680504558461253864227685786233859351986056710990273271392219566851188208815462092091306367273476357868046827379676325785040385036447704074048596293063837185935010437003706924898449239268241829638615935806749874904282304577722239545004272421248878926565347195096711721017999475518293804407113863680699993816882083132705669218683050683689874981184826411806865468853498852813192204526382634380167848033285420011910725454456224012318831653346167148609898220558784144793869891160589110956549629369251967419324306089025135601210566383339376805649208176339355998586787763241272374419289072594743235714317659421335288818411041732442042128768579341528185144733400564070801385607674286572140858183739297770785413074083962730172464578481672907131523550020868995046085707718172727316218819222900454319079662230098199209825982358308866188476581838044853723453490916211557111930417199451278629943418414982199023184011274147449991941577074004115541711306437823948178952618891722972603569761299641244072919314428431129910430718115191209972104021905295936208708044459799409488256582626178981550443837013991565235464724644308139739017802227948400198540657503124985743516852590933959024017446483353497266823302647657256406231524193505743534393666937513265252391319238374319408884470152628578214082187385097553358723620125699504961389198414355392762068394744083401716319062502287583165701803269352081833167951451786839785423140945044988004615383767243120295473077451942879162128314763377775592784971365651051125251573736897196401263647209608799265347370439867996254433140986295868448896334387658874895857972278434303426811559265982449803295900617383282562993355299801132592485724398617516092382437433116063983047464986455982564360815659988181767458541575939250047309627099274912839891946046419864623827753071356800458512854681005272874852807398374813120879205380889508675833016545367833588575178565469179601104083222046723432968942885623987118528916349879505254599726123050614834624131386260452199965357713918450810470256319586091890143814556003915164330750109093102712043232022908460806215270618791478794278297820748059494172172082533271738176947678346075933818485093373272234367469428898535443702839665760679862149854826431050042151545231474296126308624269071766801312113718481442774961226377904188933992052663407818341587436140384188408512360342943178712372701176797091242785761761263765413669866500340425580331433821968961749294595546687782025665520257882246631874499420263519768167812734538578591317018478220682618499530476319082471535987035498221703684132078797946110386899602735907241995884352847428549127201982572130655392705963983862732996056988762689245512003425497673967657012094689339239190703288464607348988718923927699080583245379267414423990578468380308101535837666830939901880497222878969369395534977113791798827008347532527094643090979788933828782381987297646016615649021153524349662244617475127971994542804476747396039336337444577235125455170586422315941607408933076180741433813312173103931244505003602785992059171553701288939929760242643022421286197477585378878501835293282030720842220925054297607950147434411358978773129570941556526449422351069623008903436954869265416104569046886269459941346474606703170057993523878374147333245233209526025630838207506698483782233739929750671385632131091208874748843529392154393640673411651154370198876445940981593683049575913612791153251059330894921108314130480284653049382940151079239664611503343559058557414851663580658647618532796752972100237762849924642967766765695422163854947745125050390261743081074558681529059116581756340150873216926177628090383399333388659663629268333341998420716806919707226591571018597589542774537720334638590995249203722950570670675654823496075565761488391487574544562771925305298037780810044993193002778592975380459226619284767505461075566888794642729694821127103531421849946408990639352703274557148802641990622133612785191122484676399696369103700854643963794683475957421219426165119335753706932951489728987550713044792906947874665812438057614163669431524997399034485942092825272884253286474946512193175359405707932178917360644995323123348014250471430441579068707294361345861828731330223336981244115402594664922093509944950643538801064111469989278434959916150373360240372002782072983779806940488194003876346486157524154651284110061723577986748588900777879681679896226880073131200938237198463965827630409130456586356545334967485274569396231407968131923524824854672670768252227973566820253410315082905574858159821277214759304557918511089143533031851731365976050175116589443787461097523496537171064053901080978014353460299886582029350298373391971756804096541965737414502690859128785369225826560033459278474232600757574022025600669370733620434038396434298256781069135980908277984773568474503030563912075373014361410677245428514670305941142703947470782058586898972773501956375335264656672321175754431619545174859898946895959822384704743058887131010985953367912753137657232060309770777001713078262781487019405496195586021329827728748257049740931826915591950571875110631330848734984235479262545138057469825123232156619170152519773251355680180209050273261362088129897299178007048122963446363808015953474529539421136869403187940099917175911689283080146032021960386035901761793706006913742315798945995283829979867552762459645982431696451626760800095553156042575328286287960781534300516948093322669545877498709804206664121874846968292740192873070860388020485119582512543295871424087644500660774233773490453162331461645632486118755268006513523825960015595447583693207726673939810699339581152575680414621585723698661557089625568199988571443739915937391146123208810205399542715171908850703919733110694502401573159023006419227406361585783876095794485923416751182669957296490464799224926526297620373194673287963491384288324625414040492348297871854413819719667117540169950309037750712682779668937529658761571682542765608195512762359210967201881151152945376441298614912431433172504085445699983082133964457387768961486961190736419880586023412930491679061307281024340944006875105915130158020225775402333308220305836402397045152049855747461812141386806958747814591159603925321693243700011276279324182533616399719749690244999949589130796850528722114825593396570245263046535518357015782967919937199421273611369944779203193442252442742829938799541569817059627663194611783337408233628339210017989614216789881333983368342956670117816360811017804186470828187400387658223209711026183863349958032148870195446068143597280140929666408855010379160365699009516478266276680677552088780810043930393137935975970568626586834222281001551348606604527001118453648071562614502043864734356917195991589791816849151523701522292483347560134292935742345016112793713615196717965291651975961494101559241717817826420415054308006612244634952272632449394397854672159831339957211474051261726525519768166947534240304638997574423518659060091347466701973282183094872024279401686860280505622789757068035516350266118415295491498092209786276485823152513079658137335997701725558152384589355941070894517998962031744200816209511551089920200408246823805858717436550467235371945120141771615904858204758497355721617896075326012309392594308486358577225882837787333219469949769697626577599938052842113100776366756296198670611451285188114880243938168862809190073247661941706822603183291909930329921755071116511165869278671989184631028647714255746796694405487847309520315091743004625674700184298149513589542822863500865193219889688229815838864294441279617161050759791846566575998354897078492404045861463144277627526436040898372205681548209329674500269215608942425822618329353074714178098228957354191925919886206984169171694336401896308321093806168436220223412297010512073389397463019141561013222046155576579755659885643391659860449921347057687347741525969558422117126308306806839020785716775669799488384413079315133046568034762346023427723220701431968109766097523752173300881150608145454926607051601914699334180218960526574575695599166530044158381515534101830588513710328231953442137944435852443924207920957004370744357488452959971627779195107439247147061310970116706548540440074215755096383854970452502812768305810642117541406466999957570747369880011169636424811663737593694029395516446481023801680901612493524263386648992014234962251775240949622451821225371399647152857256903161376129449844967697797308858105601321598859445026557356766080567683362401331270148357840925004021249554791391023801833520115852305271311578988807230803188723700456182789628973093879257852005337006199407785200959934972650655409420582544561022233575093969256170658026657716892223168437102464188399542653187794246073446986979181789953279341906269152473202822828937906997453408973893136442179247951344332896365651975230755218803241690328417856640234354541374298190634000810986181769083338149566685722006997799359523926558419133969760217356884765885213799914665692223251879474758196691884812861422520289384516535601242419445619248819752432714911194800885384246481031891621561417008029236185662055215426832940770165140022857146703242314924451464656144985822730920566076713080244112877433008301467814108142935927741389027238238357237519769559108900156146089672511142243601969817834610274127900960661126273864304204046085474075698835601918621552829232167651032652634424522483264108970851300108873063138660234870097013807234112220464743201243340041485283717288940534837700405461074465231032821949831690697121743181549995222119567433247169707498346669171754898766742441078126672385922242988537183320162962124412615401596840049337296297957096818552453366734536428222422559274819558304724348027372666489405364306122976019622426453988833533627516109850265870439265450301322304869671884503032307112855721799766687238795519674991351090360138559590353033255128650351504074743082742689012900484218632210356238783646392778239711905640618600147127867449774647050405905241172292108041743543482401221736104943811843268606292065861761850398486724773442811520588304831993241402413185523547632143823430167594713111355904042407795591667078047872113175613934169352788901598937228989276796909196277225759517861421867717584235415268384515139795619895909926309023393720561151415836517957560979756418472427361923637385978164282707164930498254651092780887542268925869249003890332806117032176923815249786397545680207510298765418361563145046418398670954645096639323640565290692392868435814983928220126921586709004996607787050802403157435006041309869085945821729574073557755453779527640102390871061429354775292840953338245706303940541170900632661933182357994330710691813679115136691666688172976677669229772835062132926448464805019395639115870000516371175610482798739597600905962769320602290079148341757608191792170261189871756852746213386278678007499142474027688223647596163615366814864197072418602713824252423688051240883724726856525742646079724352467623770099335464967496109913582272441848173526479814382049750286249814390807614812639935722704839471459495226286894484016285935942415015883441394464667577235579584567149609480826419858556606309179835706317225659700512330453009008284423999410121443907817516998016139695500568990822732249777523645520458445554947071725251596832175211460549436399513036090153903347868110989915600276931512398379914314793371584861118415925276687093047105473728407754607597754832049760907313126586494747456620225100671480897332888865329417090704288307950542510941766027829929487911809853603521355447071374222163906750386946057386285909221898939516032901999174860503956075230350847509891474671259339098743695236457855307614216909635591085127537010491014751055337999623058397386492050456814760313920149257759370612468930551575453031447949501869756832421055411498381136728946533294684850035786018405567919320268491154178546005162708941972171624450759418744635320616755013401680358605509501898995474888309666512154675554706821446635898839106617263585588770502098976178631811467942971059323804604910067392161218250059223204602340915401004663655036973606808308190515430078859281936324074152791309287094890035782382634989459544268599638639665062566206311768643823262370385028180805089614083162458745231772206432185985957810663071606672313251270645623313040542605083427705648917838825627171754018339804003994765688062132702503803182032411912350876680080631852450763922091858732028253013938540364788334723381645589826267610050254818561776037448437702239510233929876688030841544431291568648134489546238860024766837242364657452168016941229984347366196704290278245182937390050772071208111791110190722606832895060611306294464900755037373262772025633528693960686128264745721165568267799589647080198044168381471205593321627919989878596677360217897039396769218743161664405613028496015589772988092847883714035278225337833950588828280035968138229374738498359572115266682832892838976668427372023654626245160849656479343135037159136068067013608409182887190262384162939453198637179439000719648047196260177759319718573541995036691473963592871416312448503373125774025433946109012702843098780102972252105536867010273401034942451784365735971633357699772646767130150737882326076127604853155440994058911422108474354428280263840423168771555480229761736905746714597729668487639519686730750518991239718599030974853908420783405051924279587014487588437984270842146786721032756955765117751732857572252879640516913830136229071804032628784199129667139443202336475565327794058987328128513677328535865572276781932439232742625156624407725285560769756549961629163593612664203104643683826581992862070675216077475109414660758995461925454835370221091122377258420541344853625684602612608378501684268832754715327554929187632037192495580091458701440921911189373722719833953496320524973857782734747315061812517030311219598916254955082124464516988443096139697301025205451631341682615325864311540744586541115774534306672123808705463883287875675571935887483608950443886189958448254529017848121530866471704581575915528505106453619534784217877382083402911784902606782157328820311471550272869403544402347052707434650364641114933852835814224785446362040073732281242902498019983734347701526346990937914775766216489173630364240387175900364288202936327650539966239757215938601020682855863116589758046227018346556531490072599738984368098033775847472530145059037104813921486839822388114226212613546198232625070415498330875738259099433285662806790455706802783287149945887225744381276918634322710314979749764131212737711951699532907603922894384102306841143804972323126199640473315753152348914364328039423060150870877901024888746653444262425552158011679265637480385162233681033711725117596553406255462459463259714246708392729555809897651805516377521829487608976017806812284672040697609314561066808775750429551914472049297626326163586160991380776532745874859843828325201362522227731740688995030253591862194978037216660024004753675735306345708528798468579359439448432776491378693729192370579155083473421942085836217438676080553898870430512079320023579573936304958885041756765448980405680936534375071787570533807647419799327617880756895130427203158121424776070507096754392627566698579340877052350162946473093531114785824395716466032533254455888389715804188391666245900235219828115233392176991028729623310652176682865080415491731777337701479398339385522602107686214023039661622436767289899088289618759095447382796541458692614645973045043923396816179023140996380238294511378046935424644805952148009260701723875825933687956994161792456699878286016011016102284009943530630842935674612350325011963788783274896294024495142272842304020520539076998133866584426064701915862547277391517139347541343898828543142493238953080011841136011600690267151117177955700355277809392899090987013009130393868630457875775450351178906745719044237807662216913087781538871852270001060673457009791070510976737185452320627599373855122277782739594099311683041089476282260804081590503747091001980007316378460421970943643913493070314639054843741303839552822910713429657456584355720608383005483027484063066225805937108873329995569541911765965004909690778299736914796746779534243874011923903326576478389113688028919670797750288405733375073767205163165426917305276248020170963134301986090746955125343599697482442975842995600333463360504946915769417121156203132885529981861528068847935757639755413312289946055515935899998159904710184883893167899014795803345197163794376455700873390742201475973511005576519771720040587011621281498691106553526032278962475278019749452187949320909503653960676315237274063266835230822907809229399585905781265915901944055661871581932014248563694484498664819996127865376434230493693186402218188520553720485964575800871714928290528447954048388685985223709629175191401884378123772058790282126733896301327596737477100712939887217348957097265081814422049721274059579094110663958246588954560505896949415117366684184326620956937230362417676525742650032013906467824676032447841733262033421083308807072691102256867973568599489377574996651825346877130782362490144009181819487014287493873896626103285917897827341257539830538154432137007784156497939406898857745677649464505676057176078450344771207469894794954658031662389990343491910093763268866421299737019101448249872723482159101894314203288736756480368991753305930539048930546417999925677525469334910629634012079294301011600698150398343089947170173068407426317698504092309001811498343334364132046216856172687709815631919367597196307503468591672608332759112719099306168846951904929332587235501143206274505767932984876159451286055732329990538212224940765039302317585364110989494847947628467824060960260538166792291471253089182829784591278338281745875341347209959494972299426010462629736910458583397890700415359962109246444402783900193447625759306372827009380391853985962858096663800681870035635341464630295633057756718184186693756083618483717419463138933848865542252446111153854589713449996608970661755720753031736046976787517341165277576572137372747240739118740528956826574836007705142092496789782266803653282726067486692168645815964639260819055365872979862558062874666350600602594002925875745627954435620835416482406078523896946246338436694195445068853745679195091244136487312841133705775933708401430160455407798668819578888796208406778177070069070351519523980069515298279981704958703431895950460769859905503737216403747472599801075609503272608106726484677890352498452436938197343310927737011739924062782518951443411106862561259922779586952525176271002509008649976292407625949744527225261036753372584620465996598206934534489935977948826488402542566373217086854716305860821187939848668018912942836036368164251726240872522793724348062297991863067937108282424779739442319772139865977015358690777328130759145897747300898035510684313768690268837847779792048572725261876792416144775616973394792774844865655002114933847859387692092096368771188730520927335359148777065796682558623222457422834832171075290984099458536970210458107293664868558176881784872848638411846536015960903269806072694717868460809499734250331059153848211630631210145884467208280284825499849993749180683353521032079659609612417531033558150992518440539174561651894137984765776753430436755656681473259139144333923643480250344643828510122779110861735515799898098368404144710602379816301564053873779757841975973328056956624013846561380070032706968866530427926764977837193865518934835042062666174729173871453432717032559764670754544696706538307102796519667340928029879397885809345145233774768246855838416275916999099180571003915925944118539544779909099634602952396052464555457945612975000577036328531087854223551859122502864061129449429372500846843122606616160775987917161293756959738677423872398500857710616078863448092227313842451542224067154217289031652010902425749386670166301675229623695371395765102647932336563523814183743167742832135743427570472657146353657324919134272636786701350355623587603065334309982796545868769160341544007374115028585616366270601447629040905922131022396880280453401956703536602123130616283023545542957282932550705217436302791543672628840204140108135881635997102732224440933850351972401134558288477095973666682428645555808494783585230414116392570974961509986252008010499415848035351759640929759184238930586938338697630723190713627370435602628736958587919417328980581396360955781146433447222673005635359821040215397785324200435284448980679869900029191587881448285224196122104084596287599159279372061474754460327871997456599566909574506724685543485739128017492076313371416431737839374950501157992654449390983674485468431313736181421354575540287184875664599173557236002460448071332340308060340807534370399455646470428822483733151360469315697353118545987281642115240050588884816983680433493932377461678982438681070244162426587455237428144293376921713789183540566910852322004210149967793089386513301798630548661012203955166422277101705821058937826711904227770209595179751461706720694596478976242344851454395336023672886293634493888946663531293531419906610538896780005041248333282339123379425896900591153664674981099932873718534746810232108563854432467310950198637489358820784647737596490073878847177851571126456905886743712080112415889614374149826352266497350909655206930610348028380401374671950553410765403181818573126118896269982068796330018583271060592837399920221873824561018484060993679393044153422112709168728261043634015890510143080102896227351320470247103193530679222614307428345357214453001838959346441446697346263860597615281273474265140354322121672671279283920526601611143319785376721559713761002063119550660732222264536708015987624914428383522401279834955400529026455986836083002888786517158457407143131520223676487632505925866138675025578232548585617921102382561401821862515367106450130147674168086531759672399088857204357544657928464298067233377075862653426658704899430944226402382383753296821790256611722912709165235201417760046246460592540306473393068096515407234521756835286376363385855053331418230761364966031233224624924512677094837303033267681122381828304279362674211525528894831948280028855146940120872237726143753666072450182451493055358744118615240083612557663297567015500454136837834535113949932369708598441884418538613593753920016471707882966702603784189488620528354095068319012568607574795515266198104772392733591006772857382306482209968942638013908439786166080020505545062046971527751685503230881337612299750502841799923506836601587442553759473032419761915792688551773441012862776341543225280775900744726641563273539652231335769733130424820187188425215029510061627561124979617042283219723459913437204553257764177111971321811911645689157319594588844335999281763985894044389619999109329844675652250752776287537040008601806763089155093901797308732812599794414834551217670071209664716161209466152629371673238145834581455539346665481619829601922502480598931142991967619236582217855604312723190048677018737384749545588633055663337999788023622547596409116318518085627586748830105540475941957560304099664197771704326047196332261679133941034427343780533369076327999769633126712657390957339416772500504602220082218917447566205002101255251240426036172236908710276253146138276325160513118764940927732527925998981705184840620886743497088966984237151998656348553394317289984909157515348775958581256855775249927238508657024381537590384407014035134103407040880980375246953732389868896088558302744786691478937697849039241464352986863325507094316788207190243648450465626960333230684531975545844716876958811277932868377010957285258317472646133006495445827847403939842886250201546578178324389304732233867510574577886885766090241327028881974439498998554465526582311891271680222686806029074628184141017582584616835379917368958384876185474659011496670262582625833957929343465530051531594209526127762535257256591524242343401373821382025220333777639363767501060981541163087857042785229768568172980220542808219101928445221315705516389253869271613003195784859844330835948636712739149373978133652375949736143655895274624825600263539242284131397352396000508847818232464192807137727289835268984522445452461289986712810166342239471368536699317027439995029524515851374516270484900233116288847209836659818061446518922958746959246827871246258768801141381820449270092126869919254668895405268050194463297248540770628095828187172398152031009729391737366820223717890767015589665248340791752332733514984354670874522488024202778840014534890523762633050729285278706699728569771323268741557392031456773407207360037348353749641327675224489620091391733710926479064293294859856028225730867931341159066938704188083804868655076862515981957656584129226837682906179158886097439912911065828811942506125766641145164579429514101380134093587858655021068116455514015271248477994261615669663019761672902572049722964167204639239221963056641062328952011156363061235677571727383287937952450154042984220591387762306322585711967259067734189362543060283268858985326693454951096795413669005183236903721994178645855707670352006738310303867034935794799453461694123128967192413797378891353730514464157453094734347321411871326092537213876596511796182440085687337752802156512486735989534089508659883290284367507071731390429590730394948860078594748097859344859542603945146628347878822336464806550554723070761674624571438073664283082493369291589936973053712224007346835836281764633204099492574989943114700916755392788377296227782507778669465661271791331423843303580362786913995755996773473311861670128306764364225643733006943828924736018682772690982044017716859059325384541415998749494737966828447966597510331613198064857844602329321771040988403810452631870746512598762442935439225804828091788024672770111670992535300845772925674788694536253620499837050508640940611982586571578280211859670329462727225804148933810571430963797001590618273062503415610727633374884932881394022700658976850511870521888977838617103553135403795581272806698955653290034582250723898725745375531120590999460577504328604856629486770441134813635122599520280620649024088385082647924045709801036215843890931530873155618869727224168056490020206758428424340221859360696659528870150445464307566162895038806899976191953518022094248503647510986493670132701065867752339821570020378522501953149393499069558455286565030521297239067215739120658289090853524565451271589061480923211479860093014361760200616737612070716806774618795830618492122196788239654123653897785577654798750860860535731536205353058315269457020802665996013899351847334949431655189985193986310908590707870202811798435417665108447845224667219911652963109071161201772549243280893982238335919139058162932504480245345957725914816169759233162781793670743966439917521049740438553619392285108927268287937671557324305473870081114203550920567717628015800908523135952062624130333330375673610865475358841901964088393668507195773912401908225157658582644261113839271966618999214115737698435819513625268352926692627973922456464721658214608246919803963220096536868547822326645947653416639852365153952128924143758912116853906979423826581642341650914947921209449199027602766325309123827588385894377464651111453982181170989489095311532213564251311578457123832820979379619660087512277861942137776489709287585134400174205198960812323689146699238710753234036108812295002547726814275054986626168059653057867624315965885438149253134125627725151838820982152352300228016141793462149518277470004819554083163836040957856054963401103189750952962027357704455442134808117909085553359234684263185251950540659514840775758939751129162765167681795897977828385681524460257771912022015671049979562209251260087650639695044399037453676742418538665145813009830722723980727881027473843613611447422866976795532303656573612111908121286157467072534805563234788647602942760384762899898901674356310252838337590425161160626902911460287855325226361257800364771242746755069588834102226955743625955289709009800364707928505965265403293175617719509868452296297962006837113229317616987080193185991298189207650526595005772965899329356368489447143741063311427541734058761705093093983612915978415300492110883322304589720227801932897249340858522220502364794281844814283891134772584098465601797327268176399177061693886218151211028601676861623231143529480112360814406682053225106053691367503562422039915767724681845868641946678085003311908388235637721566631346811023638254468149806964858350039021430770903076627168343529217759787414245318254366160794026976983046180064464772065425619645762866665967565740139764958298157382506516300981944584819901069139514837350133492515621926254518169314210816128963514815696136082551993746074483976749303205081045401273977613934992095546788660263758820230795560072467843979986688550807046716054731201918808644862040789158319284560889373822085653040264846052617114642279983773594079980372297373230378055779145747342786458355840016916947855602077771683337007571032363075758041474022284248388099530840622400074050200398600951044252133813226320332341655305667663816581948409990811880230596555413818202877690271612791122435150381942605764321444557697378037220521435686721383441420135382459427299129778993562120907764310382238797952063901374506652779378293889586079746359753579245087241291798837317810735279452732482808228207233013041946523714907738611732278696328985246923838826465794171343871098683757267312582791269094332257678285793221699701154140301201389776384997311758138775233766645784350248563523802858701658421027193439982675956520468838173795707172043478533995507488496686915775232726428852635923830474321553207726469860125663820449160621414052174322697228443128568846161857892152705724894271004901082472185304658931895065390665299244539157851752010106238607693854961163401224414199863860035601485099720229673750102549861754076654888927177370169099423036764538943278639789227362407689714371081719842059312822353448051814609575988496647780839395576814172649049324858519555644714985537363136101222721384055111717513248481594793743435331093429689356385624973649934659616169769635395864688467476390649687061562378805369338598303498754682372851937831349635060082433970796342515726653602631640755863180335347036851716709369318524088307182063154905969647919849119158409989798890508146038602622424539069365062862808131183674205063093114443340952068838004310859891987401492438227608493351103245146136915726417594145022532448641835893287193684805402432707500578610818478848903597693865331398369954063731700488834602044357789533555302286569448232881504109610490008746364625507158262703894773343729816732787055777816116801320974234694120258859549460881304288679695215592337468008976039136999372465496483637565460205412300556886936850854615364794057054010193649785228720983620529100425262557802946454163772260423251133202586360657675630610087752527776298220969177152055510249518006730625179315525429738397552308068172959366324235681701025043665577070019929051750088395887228204673093095646498412120981444797144564012262697988657670168116059069361326313321940712490420445566634431089301082288894192491526985655958291313504628462701470274890042245572758092168008224422972278332135837467817505170233341669656930479274378240173296636706513191555499749743984813354487741133864603621288756408994736954148716044250435097169078051888473498587327234557418123050177636519009831144129900407669459192254164187992541007752044151727434922422928663187866077810235559968769625521202804436625475428755497454260568856529803949235703889193218831303142243551969425766104373063411177205159746289912360333781329527432702355044943844299357248898164156810546075512106932265886437286122156073283852744819678636299198204943782203945790132642850674414395738489436291791321447969003599896908716884258055275305938057066666068753545831308193092862105363988253949958335805234016913760493608224515989506213329549893745406879011266736939708048238080576889082706657017671161380730017779156913966191634563638249446362486187968789027206299653306580407105927870782426589149600719595934999215091011228469899359746558954824049612597465057704963516454690637666655414204481218003648446690558440008891130088529363366534592564743894628810672334667703853658975924205841298351603296417512601301570087680874642266036169945132479946071025962795628758016126577379207423641337598741322232239930603940609739607813230300308255819496365222093178962554583011048637235994552278745579098783153705224361672809096188158721477928430513784252364141891299248185972649156441856766379474967875545235367696691539612166857489101896756169962287840251015659483001077911768875484568082485324441888453524593618672397190131280783475305112130646426092610594545820416010198197955190782905608639136937068921645047329401822849855260316191833897759531479757229980302355635770634688101323628308004859833412458265433586824331710129072251985740245955724962628727839113753757599637965142451749382497025128751690517343864896351256386618844690919477071262364118810625895128067278185992464340061506283307688279589200712804396537807597232734897203464680036562315275534397930084989995442999485977709857085569000482952375379554178462785200347477116149374675976999604742395407780922171178137776198443219336586533839536043644792699584877853900571963449584976400433652160830438246932695449664635192794851674056534184009114152597229749099328886693020139847283530817783177762042502956443645861155271493654647499054950620582601133662664641466074885540528630675327878975085429160047072672837836313677096916750023428818724301460781584834433314602133475900618933714221876743835557152451491658701441755131602444531592956438964876213550117125448984602668611481079008269195198175147442868662017564681241174221367240601568314262283288476179517438950107381999663165088535973020594962025994463312927280600613415814188805513759358831848361400569523018254488043924341398879042543348285675681889215054706105062664752918362980031602807035075340397921252874254068147384505965459149155831614625445779721861098054350376425388835887600146183295787319259410233942568891240907876150132321594145242985329071263890761411045902882903508314738152673195607400814739381405827330734062439203054674430280239505971679053187473071894909460007020223084721249750436830727316055704807826985793395775504245234950894525535031494208306982871578534228163813713308909303594446798032511831919285974625219935069379806404441848580728242197271611594462220839382005540644586486880523688293932884471631691146419689311066138957390436580925637797131631034616037518144463900329003799773106925154213368189771568914705547340029135199712039450579464941074115367465267519745787862808287751379049540501728246334565199427484224690066362051193875709745477651119176097079828126741726797854393606907601354199343555248527048631150859235524449924700809146327143407846658465723420242666839312151964006141816186809955387327113421104241500855732961637466518893731843363598465968992106515641419140944635172580960237281409990122211827150904517523355136282430542526512220313991533062845672222111358689531778040191329459285500519878691704019094931379589782116632402774554073110184685850337526656448258576793635649646178949100465383900163167807239624185448781983925821431333141090643698514255040763477836426420040516061341702232132554245992215684943729835181611664939010724219701631610076138704896994278029327159713685075193960876038451606223073941308379070292513582009304408077109428044934357007207005812796549076623641689329709578475915733233881541474879853223936845111179606272707627242607640148972356540396666999847811799017748261721887210258971653367787073730143995768498624166944315177708888980488217693160458911632518541006098405224235809137554608717514689984441881496671927762932356312932679844733166476140161918383989918943962493882614430122297541263243531649930707567161417234434872059947975609060361574979913804607931067088254361302474160822021150096027612721666938636661154366969338293967653726878522279319966514297106424925332789532269306917342099265935806582481526453544241397165293450531492430659740348254627435030227027094770764125796900412459331028183325103182110119307215517044570778178186551999859741715825735112587816237732572908118858475577533823869281633655858689499828308069616071520528264185333563319522854714191938329233544140098054816617326228049733910065173251302768246378528530162742727980793929718814132265367746080063662057355160878507816746335701262459658328443173278857506645887576604615188546620623936985641179692226086781092680920641626074983607649110022656168189488214322008572545798427577130028500530296381309045610807167067401006091450732223076852312007053626732914553077267307419362805813702737887625688016630427380666302589433634584941010924002396401451862960368840925800696351718963199860132112294575936780912116105595205565424322875316387953697956943039937265694034408800284832745101056423876037526331718050010365085541927403845471055710489944258698724471254471398775181361603581077648553283539662705761921240782581915824548627454899528389652000531460148694224789572637836110999350553206500397065866642659188011950690361632216231426464319905381771279711532655259494898518441492114510896455045809875232242580420296599656126827454288044801096704175075883384833952712036667212167687682236426677575531751473229514387965129124969422518009479505913001422891669556698772522722316857711634532199745458017884814978729369368664778120965105992720353142235804207925190138780285866933875032747445904862550365094370164322207252122114832498537717619040018450941374682121367827585889714606783865856054887032787349531471430309168116236702960857250382328582674347954742464937364006562065313931759527266509017070029432860824326001217371162326783277146669466555784890889037187320352229142949391201676943631865329607704824408028123200244907686446670292698337151037769608872400784012992910717998321851066266367122105149333815247451098956205105427109930711784927077742488096682724542759636463247914731757235859337767192539590958947720074726007886626214137429208797227439260451098626902922249527752167596336522161509432214352131210008959139581791505106728478822372665132950747885423892535371585644835672762015889769021229898382956668605261507312246213742278735402180821139292770412343768623929949486167675253871785079596678077343422079109086186103309240233590544731711236914496949168153903984851793567865379699069071455997786223252719124821014434167275302314964596856870245834391952376608056453717861865978968077633473867962375669274562440627310212766935332535305378405222043952118335575681924274795975864975877359775586540981296555526041243027290518467671567636192857478928772117151275993709082900665828412088920016099253829746340372422757290144288173661290775476777530588683093988188585434974136065160984320129924652086090020208174216900245688476342002797690737987411792558107417409756721158959425596177180034677261266725140259192590351646345795527166859940607366954168386162009560993001698761201069682423900992994937914263236633887258185690713870109668331728457272071916023624479605998665319142832880794273725228433612344017873203679267394861458542257949412990050261271661963653305646805326191529355420243742386752690534208344456312360846470825669037433790410275247554334592736933790933480508924833005815470922230332265637667594695787566007666359642220798074798185471198968450074086720477262009722953502554982650427368151639490601162937907406041004766971913002017578670849467977697248398855880307215305551619231941666554510138625287088577281824230254287167622626671505015693752043847684177184444212218765552642269174807861236259602622486701841908817923007556521478326253446247243068683512041554603507675088761927341148604903451163264385883516210255554088942915769162003354241093077423516120459886900067967433814985112830668352221771983708748930565265632067141738733793384800192863049289725965920393454634896125780147560563796766710215457855181883886101426663423305553528586968083486950745456292697217159546207235980571594645250246536908346045731318800816558516086744426617584541867402370208890163753144201839291232179113971999602237071572131451585469079067775027024203596090922134068214814211033117839297234530024701788352784586505472782080204110290105045844861815298135974010756240465489666486121104729751904512981174794017521222140442833409034288387430289477365976304286435918580592405961067536827188340979402464772622463326148210888653034170826165636335495954916049613641045175484153368024938537267406646313003343540762101452727081610740782765486542725818744777158454485959336682475390206759431105608731295124686731493966735808292559435194052151577034770334026034888186989638586361584602310133446834525282804965575512808700374675691984988028331110306267185204757619210516377389426454571022011838373830576192670340320319611209865494751295809748826690042079885289804124332637104097375658675248803374555498408784690200525636023428152875788900254589798325374949567081661118554069987603113827503534286878944583235385241309834558987338936404041337422685017862969747129728304725742725368656823527301088418715061107474464065036090958540630665601726648796261796219924273550343239804839877167513643602813782401137986915887229333363365458639240364509644017430318586903208675175481614925830235225192721009874753979433662344695463582140291214439273068061605152672322889958184223204455034528810966159613325965792376502481601349596051863357425926753680289584094106808116432561431469095620588064581891215364988263129849506301479051125320639691874957562385642358968473109773245564278268347487672989197050523917256119036580836514727635564438346679871833166465006231837596828394684952923903566978872780253314854757630038849415843465524098584523095328800911786587900067102367174340492446963118822844418874549877106792633370841332295881832136786843874148776991954721563114390480752706084573483092152667491667679457344566253075441416140009461899388440655894532589465886089307042390712809434645266732847651015795898791452280099986775776764905531932802558375609937851687743326872618662765136022245425225539096655084005555936085015496219095678475722323880210056663503608723451286790799760001644465895544965302056177422991240401465904411103811826616775844388138630788697313262598482341923367510128445796020479255193999011667682669971130293745149186993928813576210638160563840970059195152154026310758917947173507884627470035462820689679961005211045827344141319614543726427849654472523942530158092624921172055629036091151117264254322287651439120308341615009879134494180277391917708045599355562319113649608346810925701855721194017876153634336407569581493173306446713738558374721304688921385563065791437778917872917778927317055990550499072614184548756900002854165144208992311583545797581383580618444361646079074793177143400646786047603296747371187633208704907064067892423343855372606318580489376187167954014671062965077351113211749192079781355721597044549917754429535510307582475671618129693706925442953029183723672557399861222743091572663537651414510981908474043588773712227903387761990430971137583170116390252830459337880373854490392731186966306194809134099181242330919926192068647987942381093093084738526768393529476189404695282392785612246579007116532969183593125490545592490528934595801389809101151005489217168046390356718613238698329694664211386286040091429164654014082254281641724612310441905308681148663200822825468709913724971694154031465872350976836875858717815558055814881276234371060381503530542949796196849440654339984325420327078184440082877509684168104349497026870081747889154686320193993502707913733924247925629753805358186638078434245319257429082982166456180089358891288851526455400653925748809076486745030979317378741789609883520423522733713696951088909201953599459168464262587776972359304389441924293454402126241753838189125588909081884969597449098318737294637162163094010156204829726908324075965397780446958160310458924170270913885305650435921171999505984792672493189883112390164222436809976362034512747104980801330264708497099036900139561006792146117433882183388232148389446347335089694678670411964533312168367686941498290537621240959221717199200390835583250758058755990998768513587861932149292942001667004856731099385586340235457637319361751856744306651416544011527076435170660895247915185559523767868613981718972934247774782008937845834920022419709736763646954548627519955959107153936053119105188464535467797804076062619652262760784982682370295925723512733379072767455248866535857298970491712425537578865896329212142422693960031133230953073380327495640564725082660107879961815762330578214429196703189764782094090317625273687497172159420739199155448923413211994656821120338969864808527547042862197033395463338339847198677424675786893719106932387141434225347136752908596222055886469576205283444298297054363670082440451675364344559582552589417853548646836438019568656720606340335120729341621401244082287404929973711308203869523553727297146630880648151676155472563254864780426549457839548876525902959422709035424079562931167446218197150572840316180537711460020308799915966513511341941750750834928251903615127185448079585894483104798447684801425612282289048443446872317048188155576557115519984684989804737921806171206492232246585988737661299757521503379002039881242251688930915283842249884850161639724960955316637178493946819746481795996243366728093062874428037414464228426101937273891813341432742525113824566110127995800867645875884969183772667723351787916111823839130862531585881369790532345375131499049642912948135287257252457229307897082747468910487710248450469033024699971598993282106413968632191966307944685041968683003445797244736176846060981011882897598832413477244205202603921922504464946502647284569082487099353200400172965590333747261574750295030202465141092624521963891603502436570643214298991927593383702056950789425132693920398270351853065551442081525990318725965110432084831162085242910526892488976351746073953593957318559267998670917650115213067244102116109528230371261796466077455378337813605693985797839851712534099411773571397773654553217953644732692097191747884195239975846773346329280637302889275537288530040816631892160178308005003972932800774128157640858162522788148308960241841237329610647322565631245749365997785325867623246998892856385002287198434544593537734456354550159581394207597159358586049702700685888438492543918951709703802447187116619979561505140744659156119852549880027230503016155186439847207172960746205267894288374596581365552461370980294530755406816007598578774289656439955676014137384803996920011754693636710437795198668562015264820247997078263914201933827502291023285829186272464732262317450771645189534719054437230668657785959543981428557489378027659829794445362230897252275194831943127270462240347448088843689994747459173155419975296981093445294522791760651883787337358005014947117792481780212233683413575555181453198928764719838202015655368913693235781358944399246288681463293092447484251518401104519927928762113801654133567007955525069385009519582709995408696203823933683477370107404672979290797653843050313728994773700554698023797330037442528593841627431192367327904703779519018501575032650227758866911992784205719412622316870659577742620044770140494402424817185179152657272951595511826937699495137126985759708351585714708656701569767923961589806369755627576700203725890086562550542529681795652941470371611795053880559141217444786995652354310148376120486379055729515708787490554410078587734468532999206175295898018160918223419841728577008462436249022971463045279746669115036990414653182384676015821269373515888885356085136565654917597598908897936226413501224616974334229279085410706866747402923049474028222762906241619230899373847822797300458166136526285933284713801698788371099457696826788620574465585728166371653589774701950441705285259483970943269454262490409237198167206206490090234054300693274356160572904602197627002462831078102194364176661438907469481724316207850632328888586057977415675290468859089775064555913708307288067228006264223676223560422342145240484519798345179431789320939246732776965049359238861602934709013597168741641742937934923576756020452896702518931512815025681079727182026751772332953740657096946471532379237394039005795331878714892251130375544155688712869085469762387988125251200136614399831000899285545104656370050462754524232693640470589570076326738664568258987103101138641316036543837367776669296206388548790875653524790622198441284889734210491457086778271438916393711743440607535748252554760472546159287537382798663990551113425024762136452266814349570207044910273111355226806862435021306844675212027487516844572673022847675058681135079253739527405906418173693306535401099882769203413757321072258741781967826161270839223094911561217360098473657726014643568999937303979742324853449468618886583522494355254879828033033836647692711008703936187134912286937090801815585409762885550393458706202773949383124471099021890533003039761500238218129907915032728583306816535604487671707877871513528726526165366980985595798542470779653364514688849588869130958697186462113622883685238897900773676347891052619960786770160498496117285963890193514729467400692146133144411701146426867072556888038344311627344816706066471949021655588145033459915664605697179511529613952979654864762025721880714445611430225092339948973941603384869374895363508084046496633493545682758780269232679754962131011030358605903643947525514630837191285472876584751756226607056575985159681777677916358518689248350601522687366806526682932718795029257463639330321262217169062001518223695298625275078524293778309535933585276510817709883849233057034129840019602694674096951587411121728210112232552164662101067936422559366724137855604354538624019471568951517697518161573317856747126733654115064046266257080386550445394955804456259787860238562993055125087966433691851437214554962107941325859841820104759852642033179807364346066166875993941960040340175781157981241897645850230964263534908538325849162593698778998629290665590866070085873904218647009537991411531974041980497847341851373382229182985381220379487364916158042760508831782599127377919261898327814735634248570599652858092982815156730709697168592892169198650815928020332675987876138334976124930488022597853459055034181368640008355431255666550205537253348449073569043662404706229723248242041457302784733383759211444934445676619231051361157045574522529533976622271108317067402596469984419298747832018834561043958574205504913070272623442671111080548721186064363691376498652613007464514083515489192373823827383164034578839157805359096058011715437335746345080065966860331858366959261382384718358227470488123369564124182588460568180154352930907923951193120839479716206778553384564798205062805417220293819400212152343057723821699383673317181737027132611555094611457682570199488031389075456990184464481948496355633463200528602386966121637876127067702742939471805114575830119142446517968990540955167909916035340490198038464033163181599693429591242740884653946663775044419542587312643425836791557793157764338536728871861224701562028123516174274669274510858921780401655821292037276673511107816716542705260810573652470036406248187047781094356611511620977492022934696037511129219216743558935104305166211458681372386338019489581627060828161560267376621689816782521308139983897748397786286449025930632901965419552764624721606838584049153619909050193347686292894892782154588854190077120412667919357356472104703083809318371798473558785707116919454951370789468983479887110051345913494332052171306315201727482288548966581260717448934051552112854990260770694120818934974596092470619154850806815076428138273384716666687549202986662655472558369186123689215878496772837673455481964555069141100864702387858643004785242928782211224868344009377842803782202579100924969209511153924354031575172521814609311582290036436747320815147772612156225847919253446167020347116295312542018459480799994992682311475173473667809225146638210428765820342483434292027874747860547942836059232369741856850769384179209179882200722207108188033178369723044996876062511561182778674863604151082921918958583333100877527717659152690216443620047903295342115770126212497861447726915705062084458410390802111226112127930157669287801819109636693627269763568949657791640928346706271241434467956306205290662333009466430104079730703965592393113285955466300278425955728113337813096612854122059064215528240707978248094924980962600607967948774188544882997741750293012858768168701049925284450505024580248626549054876654999680240772837956267853721856476150883499036854296995339026665123350381381512452997844917608903595437573894181334388497546489113784259622638186205306239170312720684272902150275429698415913481682038517479806813732309700191805314136702283008623040487821666586339977352946076327007318719692529999309716226731798119413766848418084150387923681223629415865486295796549845356934759208529142257794197144372724848345442008295211950504027328432500004078007620902266179256717193505660862829566027694470098982009574237217849952344821394701798840712270498110202245164902052802106354909893993971950284033916119380756654471216692912338827861052503329156361197784361634835693108010168860177211291814653450951732465674549928919519136997032452001050059684752343545265169386944380865347596867730448741244698666689696171217843200457332384992838850422392127721127852296693856325133777604960089456792035969115233861040606704007881253419376978926370049534984803168682864600763650713148438993467118167563824766166948654591001076546707811538054398421581657356074016778796088636044878700278633849687637481178005106149531120866290225591929523414602343262878234767129145747888004664117680164490454457466027885286588017803728391771932541901516900308409766966740008838254329128514218895928613085355931515652809108235915058519977937705439737216417508525162670122815330673151768581859903660604042232608421544951075635129142254806557124967688754523748038608742472785733772271393294728552274895426154253997522298773986784157473736386848404679758703657215361089622768282887948168684655433267848276590682948122429844595486591003870842317035494396181452687497358214090052436138813297541970732166382141119203545485764583382201593232449756995871303451672785536677211389477742347980072473808519746855946784551713686747970143204202054431073254713078088908745202196890492267781020127292519119556786832505357194481426041647172077453254081535527180835401844099703202286324611115182368427384766282344447165977943928943292951214064770905521155748155653835071215708336860016572979144397779341528628729223581931490035819046674547202894889005079438688293215420870677923086982264090574952450336245129099874858971521881959377454463057334684742963133052940095576033055789138581607306795517300724508647300323102263639742590662186299823913723333739058114091112056407744768652431638895890065069996777629460749407288758421819508309094332486284737071707864434928156161176196404325235582965338272498322566283535828079447932851247448521988785886304464460367713926551722747821307166702567643011620606360226174465049892471960443723835000841994468022767614231837504177684652129946948627302752281003695300253867866419933725359467028886049968594171949388425130068778176566376574837747508038729128693881553274188328390876658574504381597279348308576000082791937324846341767786549527279587873509668848177616471777395054632475576569806559443435338594322501408328079300059834890660250846166209930544886352720476416829872261343345015734259654817623042315751090876377607291331884347255179049661055941930172905988446138595049563481016286560732671458338009460375557250023930594497690750823034281982617242387783217592992689831848227890834194594296544037110248315565993868054361726513800231883399714924587863625996929124563297341087855970449256460535036417596016960527424024630497491815455859396235785291129731172540216727775727940197938023741302422456959619195699382709409563089562233076631032262922108942913874186745410932278622879474700257310253488129202280672439861985339229180468558613439400890964968406418891213752026133555908192244741106011250940888875195593795887198938650976380441325724773567787300020674322539311763797923126842793523260050629640094849786354420794778574404358942873780741692898103043030579660948609611270251156133074133255816809802723281440906858690484593419647546309668725827020829944863876059184094060370367338331951193646176806990640629671415731000949249622477155410542036944157980083438362724561113304646168119282405167560198412019639585542342981382076461631196132221421497848032529903333812995516941540588512949687191095932683230299150272700176582790204480950383094580685071082820729828271947020581283944772735050892972496173714759401406282039855802462330172093326892915043092964237251585412184346658158594458284127627037857877562376082979061392297536739807871454317578857543552765294690392554748281543878628329304380041780569323401054225999161495876823947817420726872503236334000184051175706513488326236459587578630473567517534008966086132495107533352815265006768099326722689001521938778974372680202865487488580703801732803634082254674252426929554821176504316197956546710226226398477576618455607632926092417565990820420135574744525035452687137987233048156590678441035617571955528365778959552385838054608767423378934782083174806338975115388159304494188979358400391021458774623962540566541229124677040660919360288379924647347165009039837790361874530685964480618740850043316897160317917206155750229693721235227920202290382671190931370024020884583427636523179256905471841411265738050974914607193324300971118893551745584792938053209984383856182277244708897388516661774347097139374397190030356479921921128634755166271898546787099983227625520693172565752180624852362329950129553493926906943491113303825036463282759891737867867860825756426040783361577536098376845316816335519678718422899998938565032251532402012718159904356117796289316446254375669281985932553692161923753312177499733646942739898618438419692510446391767619958328611689321906748223601591605595241788240306317477003048824058555240684744203807831570321416081372235569438311879100984094873258224402767607454516895667385808068248140145504692161993678025994798727753873213691985273993044297519159359508861626859132547190564535223640682032422322252645530494169405637416513407519121284174310200746591354147086557706817113531607004685757789547235338279138751308980315280400578163398075883832210258069936189062357828913478318434261530264071545128260887653817058805349942011822530214525947101305011982332779355664593840371895133021571609290859129741033934142376764084508744543541583799499270329916614194047840354500542267805275111001603057209793985724493829302652321010256113954431699948509666864382418387556701751966029809816795134540024858608437554058982249120806132311678666061550757011073932445418344093470965495622316443003585515968252838567917157695151847165009179893463777203646419503852466093533084537821011668224008833025478874871399935858415260583297939591217740513086097227824409966210228939338339618645706345520435412234748893564222573930135952169798852353916844169369766487469930313066904410910994684839361645357637852524664130883607369884163098110164539831885173534556040690653668779819785256048006595846344451247919419846887021398585322599361718301362827819888899456225907306871434954682727945300000608181116523216316643816962311249210911864926274704319225947364598694429464088498380348215502690059858692559014526421058243141091093841428853424423153769217647545275992802964641527969856190328237241637030555440709820694125443029445481977574499965892247310548955374426396185743142547994637496013832688822706562722022361465563464764360986491417024589626951866842559887758889274004198130285954624721005511722778845256917323082508438455458810932915377525565819124870752554721209478277328581377342213251612282979608838703508565346018759166551732738090707278671717038435829293754325221028780426825247545721646144895447293785011010314344585380993010363585185162671757561407837731579026052157365596166604652090883145292540910086549423543713286120786737429695404678771387669986704045678066105723018518403440411621994435870766259522882158075163680173109787067366091237086348592545997487750894313698822601851474779306860738595935627644551847037802071760138393375516134145109263299105853217682481321996191207751751270366154654565045160958803231414895488722482237389642439599837051243348301681942827638627310333559009915783297793229720471602595827199974174949382781141043864315663065790602129020010896548585961836147388230114106517419240886740365175032269782332229763227021077604654757426483235514624435967777409284908560133947808906713073878994939844702776315358223500329139003027270216532366606749094025316459929836807499674060100150977945199709629064574883897499730945389689207358747132090714900099551882340581580002918888821961562360631923590916044595193222056413356972380298551782794816273278837483133679531779754669266784155688366221680884365996634112914773315184506544590136918991746453113692316803794674207255814047222072495803621373966959283640286928175801175987066931945601752877337310244705560384148076569314871422705874337244639820050328966974930328719763999770631891053663490437139863374126002914343853588298535559450683403684655294638632528328910442255823169246263135107817529797588934805585569287427721511078466620773393357147156450027891509246438414007355480269765405364096064437705765282658445477213798948969748192004362536397493436192096834989603025302800701919129950341441365133311436386770121990281532167690617431759368545136329903476275737805261883614313007187549236062554952503208429257551517770018127278682347207832210129229944566879052465842537634017342961200777812020510108553591174549825458718108667129017248024258748198782661911312884680643089054137973659304908893980713461094984428066423531963747337971368358721750420629156732895311389325670704675155090137170330930264422956159923685683829941937123606477146508814289640829052339099497103268956527222397883952626051489259129722051873375404085379480872896069355778864872011978551383542578307572351102767386667200195396705762260754715207832959714691967734691291063907345079211307514891969098747761580014800942112143215809726621115489205946392226241473074952134494072647426464556376254384400509567965166917109486826821465593941644562647447402581523731707055910563774279475122957253401455546597909443319593304510971614808939852218037811864342149708243302443935437321238387320142221908823273839248532121363089553573080259137113872425798729818798582094160263200415802203431586484378645096877987873714847614309994603028101772964746054344463980334879442065806646448983276604220382851623121954095100988320481481296813677920429818623401290823010602378832530253792703182654996486720203821629627600527043921398312061779551139550039707428818013539364142891897177732673196846773668892855074515737887752465044535987331373542656097651473098287422538103277046603366506207066526447293347457610918518523864464667525744843200071845141652585989939816885254520696433526507527871763662766144340714245494010677544727224264104276222766778842040863452645677828009553987191158349978007293642672922790694889548255453829031061096727779079078831179044486510792270759903379537535742198763352402221117645295973759216054750991849002170178451989941904568992391596800748975101305760166372721276988532256171051751137270830549297810375096364287580603364539587709704941849783228800864821139372496933354722046295938701166253457202718280692620847775638436430542176095046337689367550592309700554033319405022635339797998051225529006880746429341465672553151843718757289017031319675107880171513546228767518699040371110757895279746706183198495886220975780215462623729882249880407135564806500814606785356524937482058958148445332617262455068923223552778660914201180592795813253536353826028743267468616734328028933483513644123783228453174433847799882466042336818726038099013608565435937814312167493385692473084898541459100320513700231163908540542906270243734931082269468654641529449659906489039537023325364557634981590573445901879139593669459441833421577002670406477422989032696145999155465001764392067584015493207798732091099167220241370260359006416873403622617236586255110538716991911800715457195016619072294501273950878192762469195958588494181016683265850985384463511499590802273629158952169723878851992077311905391125158720739250896942153946269445376988137979648751952269695693230103077413269944233837601921508431363143292401808145234938740631960419510431958233286664998642843933938857247737803157220631310990945635040339115954453906417991259005909439874146411043736573273173900681126410664246162722728488192014808277967222535926091257180399663559583894481343922324893389442178592051551109675873884182816179116188886911055538357560428084282688245694645145758818358298214600182929983056793092273293206447458313653110359225694921716576184776153228035310393420103769646065949736194165093678008362590835140886597250895857824987404524850725815185750407480113149273623096034546884137065970360402116101282252311493266137366141552135497903842884651899014417220216027850719136960041865522774303119353021505698128946727994719783593563729959212317378967737670736946827707809965259231087004157925785872430656957238764634502207391194728049110931468788329653202696025845768177977181748586095861398547017992629938905090861087102335007611258575970339161484905767354461545119487153809968824214098876064957347090132170471850067635911758869221957044741772314485534693701163539367457314299352042579808767038588400213785553503695203440796536064870434917906854767564765948411325970343417135953482668234824412406024740568753614070481096607967689591441747810620749472395158971050893067518592115721677571021200027091357579080599609926770054250910448734995933964199270180611405132834514685648779721551776638457944604278189377179497877823803742890886390163361778868454827882581790492371218000535947048081039127581289734399028313773634238453663197619746803297449728746811992469540816957070977552869722415667372300144593882455182717575869060393605566103051211137536068602802264044757487237249160325259887747637237708764651974654944835006776448820318364788577757892269535746549219791366832050957136465823899400876404812904317520426145159035532306745028497967428433981084085044110461156738836518601981473388959494743293727640332756344353671778666341593866440992378713435096775678527379370724234472989672395901014362471842947079750453947700933409163295870125587967457763089421316300924704010168299832702503222146343435531287878127091563006654651121459601730646423490333850042132747310871629559664087185637282832992382615615089426437377581056641847055244689473348378076951881269225964264762899240101488244782351344822015948741814958782547033598864163882070038765324768190706624608888324369336233317330292679782524751186161008223062529432792156269442021441622002001959959498429001068390876078388475450163961252312595809555487928599682306871923858116561555874464667813750132089497332729417167375473687030881432874331865282112561597177438608437227294682233614016319082582964055796992393676076805188264652628171645162170764488141229641774330677398596703788093914802369907667836771733178540143181811115384332107528463866476700050971978571242965131762903181493659234233612735597529826330562643129278444668632230400083158302417403322757152512668851989398235890196269458283093171978094093906008976455511536821151293687058920022528107759841227609186609132821952493037254324876593644410058788797997852612054525262252332972475089680745287678133860772779920288092125399675958060871305887836870513017187675254844533731160575912393469159446102519555476232772576456040718983290807500814853246258475801149576052767826095753168233166968117576072508611977432816026899115275508993914193432787544088800922602068783712457293874382249735002552926063772751850182023282878604696068457181595031643593100387248256411601971633954834267348807975581964622183101457673701923359423392438435861780876701817671332403633799236269033297752100178811677212262149197794542941698852436634019660632159162618640725331894747641839937869386419656470805591109603362841655791197491449821348963680851362106056049385970293334784489543814378593546968902381074477126573800359770675386865661881307094041053597119466311967168278388248163550657578816528230938074416904065521534949970864715948548941015005993016909752793718118949431015442388622786197224331556361594223280955975612201531102446921091144100421992480431080864615251591129607808549946627575389911994270507431026138376931752624831096128854237551646622132871688247928734467709782502038861404568091193106614318048630147740519015979622880917340570701238344271665636957093636982469484737786987418671672321775554710507408766418552316094797595902613722409951842710660452636025665031809335345846107702851495782454315783988943896081760867096202075764097460675516567190715060900191807341165266041375241212580601859699898072538136895933387776452351181645010848203840975679637781241917467517535752478483108613786423660130638931828910175687667798102074831896790331075252961963994914511915433299880613963463310135737524313206726610334335044393776012138024421525651036954584862784130577786730756950985497144020771312891493058094153455810017327857823602874944573540068277416203773599290777339577470045572507306835490612104353116224502270784985142063052513937255821708100282414969917064262119907216416938439726454425993732583104528873713229793029849209806978951508577996620116452403342643516258381604112314612465262290571261421820580407697631621045388545604034277652927832243334487242350050320500672248268332993131473569682013377550220984059028970163432743171282527562560779210493958414193999632847282696732400750022246575453705055086621991225624298449111517942567248322543178150795135373209209235988465486462006384872065267704366219760591621016079905852643126356490757699499575546491947584081437648653894647350582912579581565063060481021729986636117791561654714322808675350047133793728911736583170983801092895110048029396171732081978774465463331578158990854786377988028279229674308211208234350453002647906601068802768410356859865855215988941112887752508236996284027022221518452128128205838590877472554977459803171337249722425668297392001563339603174180355706684486585038381178053028263136591352496486879893461974381013738099860454443150771168996864920010621445906072679364608080972805577850113044730512233432363168565607219101308870894968311121214746467226274783006753100951007563560750394773021701838238167505901036153765589173143762068060252199483856351766087324961395498973625918323560608894777304691097434518681762077253561817236989072593553646690989015505452917989087694658286449685560538896774535993204471547401684349732209931870098880785576058275261320582814313657501248380511489923041147120204702101356797435330306683286144487706265477304519760793573364910854415050654764309929982009712985111562723714814100691403669413297760942484923876987560694089469161989607941319774218459836723619036402905709736956256687032000534782933858914267754503896879092543145360870537358698400518204258201119593663061752797617570592083642563837324119508058652740401012686109773642044169190721387258408310119345464528108016288213239390249451848896093242137492012551599313459998404619066971471635870902267686576550515017936577094083786503886696184957345199437056281634678796488900542644939244966798694217303434652997272455623162043739850210160147889841722303183363579876304759302831725221612883808724595621363266722526593882423977115740581381815756099979959782923856832950148822046316095797339644851485239455869695293448568002425106824320360371769845448468835256656723777846928979824629184731935523056280031294816724883219083108240129810417150637738581390883187887203510139408795624781870474948169726995193768824481138170013624085338057948767179632960589341028309279473145006982742692163441923467520323568130496281113991518596526236165308379609814387025854786188735436625102074385131230074738368223903102354665904046180308600593753880726577129652580943367655677755039456870697175266195906483740082539112040523559880954742714772543739070049148507641795756414433740629615315964331205688389345306930540785869350797698064688016519524355029891561095947712145022235253568495858217642959764160229034690436358341659190167158552722874022450847226622040581117277148433327899271079000502188547731429755079203646137643751239417606675456425492374552144850132854115740562950475217396224868683591491778177601250624438535938840085762262135209856650169015365845292986707078295668444857330615144430713018806453639434060994428825178009653638798035514826060414947674524346199164012046826152143230508913453134857934934353761756660271771880898135349327881637461276698530354511461280221866202648609045955950831539138182821541953194162655870261094452073455773076592644820694678992409372272051522425769692014818511738879306194877871671785165835448341653065033183124585526497914568268534831912163037906720100741595445290369337093029624896165881735402647804244290973094851869723283419883612885257763107546053510479812358597778213505342897341976709887172352660673390632622764977849960407526735459160082023952551065421399233473688535645371263930165802393106148510736125236217815895978805611759540563651244601195940872866544469760759525781837642711367891479309928672419233468738485895971259354467131572854883649227338790208265434149761268744944165226209611488931763784173567139376281814612541496908263584778275113022082351768121973322785900425483465047535964655911168463501540442048300083630973288175670518313294454899241991923357342150664509346578679199322493805803538023636089012853088530174883283206373445610490784497757550900665009717371088303338967599247646768670154274490334931691957412972556717927346771730827611452001355765411076252425007926703891668141855606239565858192088646923855993734209071853468003350421037319571001793282492901608648825761293536935228763191109031581016942600073100427872020580869447506912819632342111070991847938156506495750413970210738924186935319640330813102824031039896431743530312682512976861906873800494868529576932532997690979356654411550375536922182006134676329946069230804116905839677681305577070202728131269671715787265835399128253026433456663271120552713623054835756167146577780056390628769960891447597210198140857977733727743875496744157176170530142838412683988170378764077214845750684730748188383547888722122529910655169223134217884313412669281017407259157664219481243078314523912208640858196507483604013370140132082826129917263693548983435727622061667885931460182679441246630311255366469992695857569979281398948068104244324571763455599761255657907438282964218640589070592109727212141429088269557676431514175360118757660610726194888702206392198037094219243238095737159612524557783197624787189847190693566588517985012865969319187373067009529760294610431420005736634098859498831258592379776080560935236937974741164562179093395883249615055910068118117683845098090802495019332818099038362793827770906859613204511865657367003642609556502037860775814836264275293477818745275884062106033810555285334351520732911699008934102458621819138162849318677398712440997631741483267419430175508121054279462969707243245415181565213432562016679568198472077289840301611809502727953998288923593140597355792103688819606848698454221223827462055187051549079061464507690716407045939508057123761595098392233351778911143466726874840615681600449153541470573111127984908268925762984959422772955121139058034203544481070784485252681586110377499481663614698681607495677987999551128601288488173116404040813737855249631008901023657157761823324648053723911847435544674028958082147636101308121695010312094727816118373802997923318609102509306639907192021633374391805969332635032962712641547355590378262249778957377170031942734040694471947342868506348711282099830198899033504568721418865436066243266738029638043739854371245712188494788936083872563966907157911435133450643957598423200416011469612538865281312613114315232460376730366093392350559654254221964149377968414614117107205341413114777479107887855340509374065852630004513515896933156682779492027400978325759011271986209180040944854381791500822675121040697175690485807347559712729043913783057597832285879487225752876930766969071055897125379020165046818329402978878863335287036807417295078153672230866416616263766744540838162752713660432361902581483065434004930958778258710476634968655598257841229596091641897066872899187628513939145888264952911751362319774015472734982839029667715443383289659370284371112992284092875141672305411272426933149158517309788088473127960082206477898903567917876181360303038270709956377160196145591784036187136186807627279418300066275424821847838702650403893468628859638802839718917416678967697283549179377508446325927787505570621545234486278460821115088934034398157668326505103054329033873749588579297434414460091290054146972249693129135726618655331250455478232273625674463326180452524007684429329226472281655609654846677279213991568005541137214447781786715884742302620314760876467915132772147214668606216776535044575251485942051070605782952988793507881207398119879560848250237320589665125051338877155212765815835421796344864837043890642295028533921397600374486050585065274803468410221725971294189955392833371258837008588161844447188326090753918780026059844122820424689221828969415137903611817242343208385538034224838132762754001818764046596880976101634272649978254911913839385910470970084359310163518036970555359097409697616841275420919608070750686677420685325766105329116792685471356752518278998874572877406478098160266871547850940569718777253642529317237380681196549596055300245719623970555486170690170170717831529306876371459463651173667009341169142354209471007583076050365713090785304552931981060843416643041987967240119292159983605365266397220392835066669581890657059147592055837124228808423325179452028031435562632304965287096779881970303805734331221914287598699230254447403840218368933969305217197706551545514479027351252550245933544089024438658621443629818971595743879953648980455847275528156088159610728253105096405495365126969497710249653333100709501434806586369465845991946158504184009238061916696173856440354249634092238870605126112226979119737960226470135568452923788969752220932666798047414575317578680146259589008715703375588358390064842368837471144124797774579634230829471396921251189329589793968327692497131925870591600289846740330995958471496641585666711567783596814469648677394292975336260529379997153294143061013741961972922622450571356510289591261261155861609867942110330162000655064429548485712771097149083626310205703676091200697001378516807811470702598468527677999540124195448892798345311754260053621048126708312615809982493383792694129753364379943396274350631462298613041982018549024124166406217839096733261507653799355114142519013074803142845998084526366767213886251785594303324162119180092986344384270125751405278402748789588725934371146549368371172374608836394922482449345133772215163082826778908923142720838654390138204059151967999831254533240953114998619701206634686310718840081480033789395856005036010003647847202732116924907466898017221001257128927790229211123280696766236421682770830049903440300005304556162882520767031671735623812003244425441497155796390688672247508348829740243326160261580574186934778434846311841925452303241213907695628796149672829118680864698694533207913422191816361047266678587424731616401520626096599895860822865206039017783069497302227102816845375226106053882008175548879914140326972127757846944533874226027793040036383981500392739073282808363835829696644354061997423198008852892953532760668376094353187446076418157208399598740588885159689660334052416851885098738156473785159684465376183208779631726322054954950864872671243813849062256629484229712499140333730900784605254019614197062089256992434110423926979923424130982483827615335628982759482995554609920355360465300971452745450968681855824011558855134824009356306750026998723283849710382720642258440505618179818854784956129499109861836422427082522321692155460216464509323752080185877237325703620015816007235828514461783344753608985995136483220339798976423825024769084352456955912127368961842008146236579619562544919917331299104923969075206841632846704223859437330442417750098247455569166254437545098160506751926498644801003932112802498118165599567181963297751613194338052158274523271674642456205890495358569250991259689048907686951754421401692540262996928184138421931687007681144555282269038141799366740475780720233849746685147825347829224981460969749676988597269695096720505857255740297203648351992038935285190160337679107825020411067606712637426782374055152552075541529056285616479492879858740277624825350101184682846555947604797450045371186706928681085225218522156026853709369869223983023097225271208202800881964102267751230670612727460887220884863248222937962082468613534638217022056840220286446498171145914559502108801657450111089065769318713377299491013885702093074585287137323172954364345089649390671439255870082641517868545102847500427687278857880182302517075885572551312454100587623067937924119862446782932636911181464633902019899405853957500897236059479105836120611808452459942327128495035203410885144775561654680012789733139185503705234189134321264532164184667067776268198388177002612983677898155799267243253018715886446566818862784319788281892904470178338498998877026104171928796960102153248705751065644462896190256678233042538547528784115526602750655257243012316902251371705318090153730639216621511243223063925042920327241453013958676756240124224065208245164961104911200435215709730868061877575179832724307691964761847224577996993874920352165466430910963508107398531358011725169005714256304885675154144400410762593701657288643203841272099172698883994980520457961984466114590905468127670897090742269604152214396757801210966023362719628120909693508335143286830366139987297985157599063453763456894590983422264434691621401228247961878174980376505559930741394242490297185587336321101504109080439016611542690810021560188475745189984041225813598951571606321925589185543059880676540368095772515100453871146921809415017019532870112828181604718761399222871847808852374205046485647583188967163444315391248642951003012362247771249890484822373463302351991831417037469732741175648725890098695994060953442995196246657934549983756353559913097892238367033662330098243831373667841935713448716477656689311764652979767658832929307860111510494465595969994730245316745582362998978973379527610619864693120483405345316922311098204551871067031545843315503244902969201558734451388832624812904648844875376394371492527604977127390749861403353804408717744571734263146520637100661253195988766656815354890974303385558068697322848509941898866045550699545903090433664194969290439598578331605007931887835328893100956382134948832628828262871698787840782670071221864831645107742974900415980843055253729475738554610326656108308351007621655193056411399058784846782304320771564972803068290654077121787053671878389592163908839893809231661845658874975522450516505756491767853123883986926993668582258913183060992068606692004784632048820268532825724957112226347226653271257850881102479515815026208458981595517174059082175622456440856392272452798091389958893161751216385557515382926792329147675437585582274239416099450345020652673934190742814867619279865296525643374370986864299129501357750368099653686181541497136194065149573791131359033900173454757624717782122033001163816785504636041921002199433837630229003173628895404916798085480877346610916030660265051075001314980221745669912029576028485293982794560731086116055369556505680954411037323828897067859324050061381482501851179960482195550360690238410690176725897092344748771049998984660094816621814319383903374994645700008633594682676503062104780930034968203246836623133635753870317104579654986730367803029899444338160539505554160533808356605654431928779417321101178252612833648738517893705380885069978748088039259345650539408957763278552738078227851464715706047516652844441390788298423680122414327077928470569288779212434099586058261587845950853742374508899997991778810179301857890888256906680131409547863011565800054349189237241526751205816120493423323320601841116707322854466520823245938979761123879762013392948060561638810198829757306708689270728315231321439576570028890357556283546489819879805689491079020243287362743628276715769997101040117871320500236277337322091260879318315991868332185958905400600536309033990389581191568578985118297961360317724488273485793780013604091969812478032764766822493099811455227048309376730828055330559970637887130876670502033991972553290445793512250108601671584095761570201741230773216183160725082151403657937950504244064926581328923161211115897601528041501493462946993537716766920107734904923420582826925744933087194844650992658701211573003097364521106924697317892016592751944611702915414679726328033418377942113051545558797984823577384898704735083350433397538099227894994858682467209832690408138198872183365418764543693255135510789481347759289416600963757763313944476010529749737294318501892810884856401063159056755842736930587446838827377617955503505023409995011346328793735439200794052073691920003033588499683556859747331560275188030172276069739229399400996576275459811238381427792774673085298039804914461089481141809804416464762372169587569811196983424632327811352096760005699038934993799366581888720446470472737416545946486335088247561044722331860680225530068407542975635187873834041196378130810580580425216528197801782356447067767437461716999109669480368541138984516080419451793733382826544428875249186646893796163359446054389328889792738019891411068082240947349765405329010404190318870348516729470023025629026957681517037931614385182636043685485187231961378294206879079235092365000910182706459274727411749789138753760144003878513875786744792694449097295863030063873378431356496798684249265984819254071501186950507440641386964730711878545405836399030721417049332113562152397696410648348429056011167077458373655009320885922339228333582110036043571336618202865447326541036867243988522813018372591068592310107899154722830790984403203225449479146728227214645625548983561357135396227727655375781341732438809660232270515935931241930229497071939872329040031181711350817137789012824167556429388244684529973502540157586656595141804104976074029088032927749944260098143565090529609349118097386047267750017636348508693791918031138502861126248493259921291934216234904743288036132961579762369201480424128403165006150368693415255432767369537653562583251502091000891474770022103757089015342671835028541753654833477085264135066261852839403100695667351747489730386121698110636558225028809795268024651091886712337689450179977107824665897566785343738694947867452684859550654883475188061379638152858732493186954598519988259942221406229240745075074093370823342787853144452478451494440496909983388454299024934616138802896578242794588103728869356332396909944103513342081381927396768148667305310481341965465277075188672164443188672757692585646349620628695997022822153999353698685666421528925242374346793876286934712588443726536254572432059702819667395629186423388431300990660807932049459550805795592704789929186475420856866935589332547112513211440349762811713284405296538493701334244941779469098234560478795315441349732747133979638902289156843985229166951627129967249509228292777283901781517485537531885144384915780042837930310957794328601148079942869363055604065780173409215536551747092479904114461936539238574413009302605015044331689689329049560402629469528620825703627170971427816925129750187675436624535266247513099703954548762935379879713664916254343240791945526591025685448361470381260343926338274640987549294234313690853458519534143372190022990297525975025102213651784930519434251870057476764994152805381091069150393638665504049580571895911859474375535446659933027351420957263975017223168726253859250408215264484687470400435298188157823044291144384638276801736579983042727229062197350786779750966817080773889753138046614723706733004006567465235433733828194593570679254645188464146669654577004706294812738240196873033294628716517719794576610494885416106064523094306141481293629765123483443861366905148103643303499549132952388659403338808191865749418092169191713445201405639995743172032182789456801587427310545945347727472672787793264260634518864390605208581182514476594065077981784098882469696558922605635793506241780956437983391457215090004892947657178947779347076011697036807889370466388415661681264574771383319697490075155553827563156609859701232460017783392981732007149101438371704264556133020002788911376251923832591351434402995944741161611122775747375431505102336927382493415938198800578939396055736122061368946195567997456642812974336805069515310837476299779857332082180440141286961772541007750729507692057371455027379151126581937912635042037823257962851127947452743706718034094281921379476589106422605437609984946081224177211587352458229958760078626587557565092346683732045099070612701813566485829763835105747819904754371939981714454477499743855391185071295427347808756583619800766999953270281412233864999399417758477887153120257330512409795831999082353000680758463723045696851388858636438015534009784925465119002642717231518893134273449406412733230353261059585449130987452469003680969010568510800694371921150943345086483777722307821641555320247458408390510017773326573307734848740404842413101159357596672754375053131512464009323763319900309903969934746438169999265695737428090619264185459972621068976019757898047575732441665450286076626997783721402041325958714303457600260547520004389941123019246745674459284613645375684051244805310643457215007389213728397126662518063647876221681267236805603871702065371274954714651273134200590475442905855892584199651623803170251504025171064490755480652503611330099600141757664674037010052716912487047369013423335737954319529982790548652534205982102282332169164018231241816527391035340341942118403869400045552344751624506934075659498895717086330564668459547061696564749934184305575883752022948674352977542331462812134526146777061180770726976224988930923260351928830331480047350486813028358879697253051140025227580540354241687982207032759041585117379988747431504150634118099413972493568899472185227300569112169580281200567745046245592150244176728647871101784238522024681591860033485920174543273998406380186508992608495056082425644941775733118132952823461815089974254057128614654547372242193358582190256716930125697496196892537886736433194905598076236067219808798433917055294023663577795552600964794407710374086233581405686018553914628715508950305852403590259041993732799124924157031522483015625311670209917078273136351259323659151040680042241971024100558570602010849452935647569574673732214920561684881981309861580071274462782843199669648006588355213610185267193676984434271330256028417982113752590090698005181474791545482329092341346473560717916465885925685347492123181839489359499703910524653334268071274730278551887851099113604217227186992543066604258458341578923664266025591437216800961615309985387593783023245908233170152419766197627440122044730746911045218592543048512360722025503718854780233910845776799713647424361632119946495183139202470069558361128119054360625982054965587215504162012573944384947249737371792300323493777470531740462335666768609919482364676828012971982615538620434767356470572550936840641090944412154599338470440780630270114992326625507696832692136648973309535385783207808375854782355860180482176995516020529598743007060714225422726151747633770939051049524431085631252618291764549409098718689410608653898103765077749440290843153051824551358754284244367450799414945645571664856374269763414198316277033379173893220827146204889099349231962250113857697133359955214979714647503764645374335705176912345983650685944345387196262430064327413308802343491238116634633817552799664797340413708686151790011697082513179826956404957086715787524470935841280280250817754915563227458442411409439477146037498762386047564663771814378364331164347461017054635583138360631883190297844599765976972701648861622442062030566509870692865203855077714091449625365801028310356591851565814764169508985480492869447512117226170688438343305291752328953223909997898407782199240534557128137161574243893203036231759079793620524108692312603086011175899058987533010236114713213685579262067038756400620096791543666417986495737352718649760252068122512230124206390541976138014307326054687226892879317482687199729930122316813912148271411509878004431312451800739310842211707137613521888802443561533196777325102930994805212179005753996089660664941992332604324594339746156313405117897956821133806910951084916204160056635229808784128376277620052471857096293250745451959520100420755663929543817302314736328740055577615069771080836692519889477909679824463564522989824034757194470578517358401412705919002057096768318963619838613662553315324520510296618633855318805905049510777866373746103111131998833508719114954397578815714219023645787841007309959272752234810076342464266252526450940477672103489097415355564723443886558909974461000700697789460783187050359802096131948988835225854849569408976483099678843358995270065352692489484877169272809364711080900949224241376666159035595848253352479567996170169956484521704862233336992405288908720102968974439049976685111807842426335067506725497550610187271025161256144288521146192574245134400409824810438843618214954410468751152702104040576143124842655943012706281975181562321691687333406352373198592879063929406401067356928545245403625019654937719789600952627335204649211881466058101037320972555425139116040961236918004784094630278447691176436166482124610955693146712148331314975633851715309099840132285233583702208349796315589972203906025126332290367518167863150947783684473994251761642959948178359851047943961512019867403069588698432973784441368925646754918418053373809327234837023209001211144506528346097397310102129512225168208853192889155574543795166594627879881165349530829184146422339763415233629681173824107258310003726774917441643166842563163667747037878095529053095691294340855257177927497978349016392603178892978390686384152254045894492919764220853009004510084312856291314779836368942658522538912429291225207226866059553165441758367443045852314543242347163907761846626264223491323820829196163812980113852901108706128915815005507678438245925483908171343726425221393556806207841749099968031210482686121821908782278761124606190302486684736785855192120148986845046797528420389862255890802632282316474107367196999809469298276544011859255433714310610803910985154749547652883243341504147956960959929137878278923723132983055732076599205828008912647287187863317257106400719947061708077343478828741666005572608975033297303318378561728099964515802252420034260901191796128080824466356566783185875324312168524564145353716455678548424221795910014080297055569906446321428100111498493440617638996763615992639259684980788628909418024012739423786141855242596620558038324296553728577092711648431105228421513980958359038987101834318227066604014235386808086961043266105119862565803306893128059352444629104310710168156840124093829052180456574459419704513583907319615330695585414636901847064066564354466141037625634111521185101453150449557674733601754913642076840506115582947504148306225154088867617892703190268511341167615330708097962237663473996797554390162353155645225059123727580165590295736182389607243526207191352575739966389631329240874807264332223332949575677425140330809169738088121735214949905531380251433776054163630135002066932525910204151048700803008876275048638511418217111043458422800140849786724991241457319584160313225263622191001941389937443133804249734437107385633742630051808067500855973066570601112913926479410286214152428478634901788099936164121040352034495430576242518480509537032796402447672780645616513555722774607249100224564572960627850072532009796444516414917463424937860825873533980968809360885766258561963919252239718907657253061836285603885090877351378438642271336195159365507932194859394591997068031647186960968055651807279487544018104829184806285427933241918163946393077087339076151178521397496754264025540819683267229349509821038694329135515115957837834076310006640922752896755408065729817372145395764453727184987296120203803001471841089977694714089204374616733136297494801274039869037457112990485503240086283399516729795655092090204828236312229499509451339650595341089569042273788799601519971655062753963737965842702748895845001029260199304587772174261262285567105257353175085296060001160539660968053600866574413625402902562517158618397658928282443550601416841606709221253378244114570172724813383424999258219442735982833593901882399985440288789322903969901963880895910768034751430446807516264242304917255758023840192774417614605453455130705910697860249296892114134124491580769805380744464186297489716364576665026399502378197848434824473340962505249617308796555669719501785180918143749665001801885662801370097327400339526329425630997116324832849583018086470075375464691691934689991631775582324703263511207994513821558870619163229690445374595441717633413698624222733585506429084478372617727045779506512925012477287658013523587815460135237940488517004418012732432357760931760955454353203862161844512884811185897012442844001865836937419563904434389726552788419688368465666374978897551242493921499689797738503366771314004726904734483978720042665213717720169591924621979575758579963607832813142411605536616707505454173153305755869896020045860083956867513822624955728310019704427652164174227568182544252256238827765223417525721505100377119862649010350696626439412438648876507545085708918782028124734058599128802258134363553586654183860270789550546230132949539618202896514429342010488329628080712899849088373336846360770103981936890147964539757409742205685846145261273992705755297072843221068536099128990613708609556447304846505794279597308434884640437904996603984867489562678179146127698627811723130418833968499128608534160073530335736157247954147312305273973067129486402632902489342376576536644790701900745095587667275804010632915064417449712094145513025432469675586988764680975645899692254261439085268951245763021256552608961175149371706214501961350123502099222450862499823173526234081176906483618452315062684234403224107152377262055877930312907855710671885933788895362014373213399836851269696543071857992973609021685802824583369213553444523310986302424718336815501259322402190057344031803836939812248049275760971134239345080703583939999456213077478931086976945641723751128458257976931942831714193028199869774948221253523626083017196994479752873890380691828796666184469757346665786048133286594726094066413385265534164503573690657515715505476982372423493826277628012169803496934411614806229793036790607557345247506452766330207169109738417255845719524666594651893136055802960018955401940262777692182179636323528936212575091705846370248462161064680585368430968592055427815756687911424734539749972488272924677428650560548947295031673525423041890895754508324616816422826796206699711693496931254088492149737483870805409627262404285950555679596884080656300650171617229492381223849029628347084678643258722412361529162243214589490910715207519192188202255251981031645830769106276063900125916773455997132947673563434752163541293181071579749981129187792394395824380837354523905686886794775207492275753516896196499358507567786938644654542147385950889883501464377534260896782116603099018260697237126089952039546462932113841568243862375830185609185141250936747168735064346185973333000274184060255524471424932608786975752018413834581823109548658847734344579446668296128734924539464539407010127496797223242815929860011396928646497716372986405629262758395137022401762029533638445843767782035972360862313717835965596453917893841745000390000871258609661670439811430887414413498550493429018350746046537724587456172960128197234185830971669691567492825950915815594635492722272515691136794491082039210983083105416065977749860041134619195988909783245209918008817130522921233339751715680801461026211719799762402666839142899641742384972145133067468582886873702114067949052975738527201289379820287500119422521694732622886942065372153225618810046168960606554460989463915935244184711380408458808728741516485741571637694421687988965545990395790693114629185517141114135609495370749901016307369889265857284961399898155440564201783150212431939804658234454053211622721235483594610652321995211403296333719202274553721779089400980397858769330767528835885477918794481864642337244240888056664065236009047096300571075346812228119760647413625256773263287222789891422280551371389502218984364779570450744021052525719511709941790924601705214421808101861327558067326902698241182524998437259057310209215119660398419344501449305192496675724758435095586626479166014593845714207032095562648601651902050776106975895816410269807728336480117389955916094875317420515685067276704842700299303973438289049866650365647612107432884920104510765472602732087228366167477922638309726720549391653511740680045587436829362765649469124549609922331303904501714410772807276750174845406382225758234848608501848553460389502233518500464390756312016629597658448701602800852980071829395424236616474707705733706079781916181554798917808912627712796657160748172026176094756838203302024489795467243726250105363495267251884826263179300185299901899663664466696936759094934495476471333091149781459457985418278461763346567201792414597364053175655851101171520489171875379410240034370078188251913270430409912964809553463417346826100097964910282509213936018134288551738196366185512675560359615663900172631221551002403104796589495277470043752951759484726799483775390552669572465925194347301536743597069789569158641087019095825065890849759667471540506584403018907961151179344355835492556884338814340125932142210794523545009503739444126214057611799722604830520747112566023277080550424863995169510695770556843670821141712267095376495961520615053172503582029865505481530243669929465638526607994039937183281012530130384434274180797350070350556951934915269256627102430335206446088869152712497924614871102000754276426573438597095890660797171482297063557906035373350936372526684595980015727945179179698678345539951580648842231525863155751635833455605114905816949736884525989396541050310231098834635629379144095953365773404303470307801378798245258375407909328405791738651953484713206471091671728455852097898072686413870481896040754962055589195307394419393353132833859720237435097562159612848016917709614558391482374935766596227074436301129831219247912545154317603496255897893737131176676072867934400604447171954505250683006609391914274033880434568264487483997972327780249298594452210435315928760366102030346549414005266307258150404513328826709348383740956861616599253184991119241859504798888084758456409617866454505474498430366722080448834762576474615721012959675768913248677565211402968088937653629240209162286257569677098887670964423580537247664169124274413752354927720943650514406678702537766962124462151827391327120510548393913953308038934040643714306022388915044979495789978364696981711443835132379276040965722602256357481048289798291375284996249065188116910723292600867890819833027953875809843982874291453081932367430764050769657342672791189652727485948725279649949568688944177216185573204179778861146517255258422795433096282756750875635550354585074054117921703694759475727470843771690847227766104363502456212140022997472721880021747123471950625514722214849858450844176161040806812311597319097043554396115713323960982006744970226621195635232429497545243814428548563986286161833059409562785769137131124705930761305233341967894209102940165246574465864944967484041491194260264979986336196881985308549826080354817319713631507426391226218613789134140361097635853506185182491749961359368297859705265673469631545791871647610984721635570213952832872841163798259210533530298057585668453179082114936003372605221935647045541048673441384324002725480543110811453286625683002372185299646493393355064365705740355166408033443615238993046469820694707474999117300361676799438086373444852441068506558994705773911389766547272329267594039803533803635245275587689784995970586897181447770223791995185847546221506444166592446187723630848043528927116269068209681370818979794567829203350251172459900920318589023010199667403452745403450534935019897516090142721494390958916771518385732193603499225582468955941616058625599367950756428919469028506858875311466322559719679240715353697651173873389127295560490339638388940976381011801656081726895179170847765660079461274381719580558960139312098337076324406282611476165554715374666321150458239082132922538963872497845326725957743719922482065344511254864386456246453884463511655584088364738964434163342302148293414814647210524745749338842813407014003813761036418155351147763108731646008167754555473849762036122463131227766138144459564571591734304573246156818839615148595451100314811317163991034459710951521128005249874565033797116340503198954261652354281856984789161214013241713703695231287349248369907543010311145138632217772037892775756922643438639612706826404408932944852955325672140084794175029707884646186418078345619691789168983868414850912726433885915486833840649321414767842483684141918026703870518691082065494548891173255506619016632237402632644164396064862044167576762314906576279296988488294238738015785309287805908091358085608649287723601971174218834699176336560580682655761108997951613111180640095822707748061893486831869735143414805482022041437545865126072267265451781310361529728654608209915158064122296116965606806317106036462009990336398588832307625077325256082797988816421553979347255311919000841115318832927208428621290754446229895596247183672365061779791637001913424439117978255542284353548684843860695467872577404405372062843254405649707040708077510252980872286173601452427694092008443814556373491332247852672311993770969155356788895959903670781991689112516352551977109176028123433339650977243322242562234473078495137290019175907102254989033085792692783356751293046702845028307602636446309417731767421450785743290420724928560769954007231024783634579502928416005718828217527973363913333649891956364754060033136059256560422177251140325156360694110711859469095030432917896279652255124461750630574824453072320204698012649330234740195682747046324529741577420892222233615144069232849262198049160759714545079734249494850899854615328960857757119981136227451770571790384596221466675684789483009706202600454530459101711861214378996153700325141643226859966939644257418747588159537900726895989539230506340763754024020389670639370332672936261877278788191634698909670046960229819244628695907679183127495882847642176936992617602002277316484241642942767730428116093767660349150880401168934750522097049723418336551408761426897051104211047391156156406674860359455151170708283869343928697396285880020112240780453612520014182455750549987323583102387999511052080162751825139126892891993484198721595594175857487881852570425871175829498387506218595163509186498422374765322834118974258202329860010683835512186056982814946072256412310716919068140006175286966074516109426690306474654930922719227861061373519358460278865845782972769553560265870961393529193447330993805254174411163070092427740814411560751866841383070545963879828413211887089395127950852087799845325976283193970315902784252266434503685543225213830680024529358968049844045002927560888579153618351970784203435877068309090889723067417949758199394946531967091923946268790543328605713793282320050171081723984396185145971448898535270616570365642057842089055265620951914019905940476428966764420077354332507134227408914985239991121685993238429753084501556134462820783117647146129505484620393230960345878912847686531367500301826193750943848423839683602780061907791654277697155090591981220424608260886212017736918240338381972899906619321715368508899592121226422743126267951168734878000449126553996544479661267888579623911020671069380676281537729182319340858842661904003326173915472368147568559670543167731294523069903913441223604713799032417893535023343516884157041176444367284887852695017230052682447509679993481252618828809604895671134995331172029002105295857905178046173666424034119766459644648577980499811798696763778150878042687717711087041276289530858031768997454761279449399979652781083970656200561944432032607088476306261016107501685942159103284593664077780325115623768321100909089902883840795233830622755276017192670016911141165550840277983077061040531936849430518507927309233622639530364747098398768131625487893380967366300160559025474497755290567705765803294090466140939750337811275430324989036327422887662644164770945080241546768777505626070456778885497320147038499304507980996980242317567733156011057012067140150989431398976428839422614983397369946529347237001753306176628708413230769848698293862180681681688114982296417378310070897945509816310195924747239969187999040969323952328494566632012220451641510116703179877861070264417703551358320958253493392428116906327277645858652448469520809363615555190189916998920472866574509448455789336392760395233801678996268592750530424679961432713211335665054557185107163991941185259372989816650584867779140563200727895485328386149194642537486119862388311784956424581007436686209294747212196068487194110304777820718619496662991938313834707141672478480016740944085354954974539416529769356642231723302157541199678505447045291473781524764553904000361118137839189774441986689493277384021458556192818511067528382558815048612346708160705739097159880165217547678103881729569250390542157639158588683030755902348327176285908819913856584044566886146481127568183640577307051867523462465211661028845616113396020726005762704187538241071650547925068939440554902430456496135520717302442067998270991295245771363305894830851356333216200135759569424789690279891953469558284182934917022626698663277990708258279021215005659553879460511384043394040087768883326170519808584662037454361672455319146782710136007004309731951387341689994279206131366385901398244325475930088005111889972449234846107510611889697950449235173739532399703196703135944840012761233303090476268032660902667280422161341630146887394500074860407880509210191314275341183997998387917611988756997460145947079026657884570960649221180588160949279653650056031669132380930356905338675279355296889034454168888954694754450184800570146725743078913100755487745584766180381669376439026238577199577859317734696004266088089473873950921383090605095842616324244446744674663664845100536527103049289140334396490685742792995311518021935210278509268573529144692395848421175676292774938565550745661521316847505641518843056300015003948767382812722387675188835875010730063987838816134690663560409739019003392908275071979047353649723549530430771650568426740619855807547840695560617868013550039616871120802939410441154152267062946004783188472576231309005474440251545706083389774859659597306874934567019470726160549053226894661129746623014570206666192057146760170954384209366192893513503688101770565358671818786253895777967765699062392823152425549623849667738023836897242389962587358913928442519752715587088064335341913886657664795974982245458262524546545435841973593171325313468240387439934716548298421719048344286709453783892411753306353086975935213981285855942056612744613890292890438843546204683318784401775338137758616982162912164249563198540727084648551631898711712972386960122677170493115536721515654510278684079056437216348258024839539522668164420938327498772428910483911298218754522677355606642273521340691261201196189305732843871853753684656059271055344266956281845541982641604666080812343191284964738717099377902552633821395658437380134814678063426153500138871509555073380621053810454358096329737884903771228751518516723597089423900652909129803883063290403077724450203764195549049118199928869260539306248138282113885182135334760244467841387920757995394441719519934117945579531528317819231249867793047180854134288835138811368902311969783154445232934763344879113469232960263504189748292020938295419102218237209375193929401632572148031098946976490532390288636714096527733850500206106899478157959521506349467076858961062659137963656450765190210241910944226430735918934571513535929798977379111843845397373949865179396038994062796343576480666087580595368273622173741642390151770801451229260622906543965870108398612315163086568894664081549960191162330746336869482037432198804630380543377011401176612309630418615793774522140811215682976612313656606591429214741761888595905136949410205474190386807519958945326130297357443548748966842917649168313777631212932792924365880790792841579601323839974219759716010371499315189436123518131505706740446375480046780198422593161645813798779119393512530738818053822889640003563124095451266546405841246403322182076185688790530585753821113963680612286041411049471701669374862594117648116441939719737814991388792187085201947377412758155613130978426608744987971956897570910213088485187086148419533474660073927174999974431297129012161527535621576626654613523880391105687125871488062881525674849311586791668872950117075913012022311053210799542699377681174279469556995899755221077501868551655926170313351372302708635009487693394330385851378183512243006064294156638403258158703020299433152160040850755083152196874207928375999233531703165770441449151681664246073355936241473661603620036695299711633940151307747813706694909376395895464706803545006437321756890251291701714639764066245614257790663338474168955301756307100095471157800946067747488113068270066865578084201927087739606743589282862289874349121399385123673644715826754800949124477841820698295904494445465513556601991905759113050975466739721613474649336668102445766493023031194508712604870852116538562538954821594526847883421302105461530643845782900368620438134201073034561955566899908751334514208318436595701728107572053364739409702738968058280056246731666158484091565685090197799025434995040889922639116101020367984647185390583102773539102750023764744070991288144580793401993454178804359569469289280367047319392709573813297297825763256967251029529357232190966815286412392287426926606702854873387473162637570141319007404453302121482648841655303235805698682680718517493373129455660229253449110154901933384335190994721714929275530883974882640025815824345781461825426861539725954947025974745206712541447675257576334194842894230666315757334299652117403442681049355133840733662097773811812156672491331890500741310499105880963756460776719424450730604597165545514093333764546756717471318592757131078345650435009917949663563594128051600441849112912638907033443705513821026176522603195106620033837242340658120561355579111984433810425455783920002080765348160184051328249371617446005730471664510982628124122733023967450276590399358123710563262668552941325688635334127498089391307535739147881243340348977084963986000015363426318443078138195454392744593045770488665846718273065010976569867735553372141621567596387583920427917513205433840310694120841052565092656805517863655797196204610257748042467310642161624774321914402685936611078100301816823960710008391443416450995856270210114407215533274323553286088838628145008538861935753171938210982215718730399489356880891599511232070266750103151638751627110447784684816750197961376863695292280092506934000664726634705674843602948775378372065798489803821327931969691649911185861486290837600967456105013813210801475788324518523936697281674031517591326254037082949274127911278112284862745844294492801727894994146093816108345384812826940674394820788385054934189608649765485057411046026606901573924763259883703667073850760548421316927724082798652091665219759462071914696601007130851940153995875812650442913796360859567823336140689619115574731521705045640472173783302693384104850609096686270817781663846815646828593080438578051860848032570187558791812535699001947576509252058266801619458591824193450218569273095407315354079219029819490958639284861659385007534121547428620142141593013699404674882246260398138641703535161082399339625259547837699126169291106009913803073991279793888318959253211726212980876950888956514913901701891644191920560977755425936957391004453863537346301919884196257707047131753819001326567479935860841674705893077955239839384757944834373024880987721898686317631978312185600440829649816604617534062674926772550690845722943227612548771018672078900686994285479700833749358825202613873409554956195124611688236614864517903829769409456317663142536524494526364391428715361152943402294952566533774785004831558547175164764526234509489272317795657949868915919263900931269852070375367566422816657417931008130139981881886088368613869700441151088728707943397655822871898987792238408328880275719545526810385758633306229475549801946617962059136596574533498207996390985908904608136220255101097899670058923236778016096821094299145402246782767564321829135617391799494485340985404152166335394310827594856806864059799586612112209962379903770450181681341207603085932905633649948004452583566796785579859519562887779783990131053119898829502205437310784320304059248745154053075204991518770282602864093124543902310617806081054397288454217950610466993602873897312216289932073914150932103927321857747345147217746234062340189143105740303746190429035709788746943658844691349527477438408394003492841816771260839509025233436081210820947544898924606802350860954261082108316987861521134282657446345520951297160503140546413950262573962886083574966755859775982893181708694727344669318293237466867940964487628778240009126178744869294176214595166538137774868456675695047588985166988267837519696025728811261541619728520619095609794807724096130622478312862531337038234412634269629531307457531444802558532115582924268361979894254736104253011751446969205577878080523927612140380690363511864084529369027997838360104613875409130119656226606005509340344561543980120494363777906009700402878564126223531494615107602210192421185554057774106410206477769642613826037832486618238796533162683156243293578725365352618215012051584897658628077856193358833157609910395285354127166166306308542955998732562095165051818693415507279100770533033160314531260801352823079273563492172353786041914556061398852841056644538340201133791584282625226249731763414455535471194498495817396558680484949129849080206672837328297841503556553728971402976276623044534482290143930904170718853548472483054028858753861391746835593656231746049401284758379263332121523174367841683008699942145324307466784236556728222810010564974963284532045917581044281546211411865244023845803179658969813199553363388776538395464000178376570929180998149552368713718080279703164994808679965236182364026837889955022997003078660012906112376319604154170275359495320874290307508103739510496689665039942603355574142207390199542167389142472972692732470906787953349885391751374461946132355215009553934837779901217187086532590010179146834853682024278424424805861905000123401557494137001562072621523688428936458039880199369261424911557209179265779755006835188046419438022812969876243287966752369712964890623685479558693106224239655771852128154985899008763694597494456842565451987157293705042546993176159566947914128765303428174845548888625564697742548457735726156360297743257254765359434267057373815830548615384440214407014076146087706032620346780865510337540394157342340865140807701553633404237896741079627767642734430021538190429348901680312523529799761043568282030931417784672409912934306934908324986360054665519524876221080298072206437721762880930791769272336029061559787747784309954970474682936862121034395069857191624140570087187958222474456249123687723710464776115094136901720466539590248405322002567158751235036305043378307850115228201504415075106089863638101034092189535642461472103075967133641232431115038214277426581157856112517302358770474212269458281887801935965786143174435520477439628392273842353279841009092837010401581936573429367366305617699224386142996832800147137303663940377478540705157347032702224803664032983429889684092151679445496795835179121122959888720679300252049657900425729042707626984589314326757477764342672681091313726049216227861891845329552984463009979080050373597540658970222173458440904310575233551420583549068974923988556494772432136638419293495308724143877631236157612132175935848088777481316093551072792991079972021582136071395372814025609811202858152119441926421358011021492067857162055620190457061193022325526360451964992095994721944719226783545589130773663404749433108037551797586144087231983933647512663265262318455386946629807306076430437131305661596684017792926166388015809127393111957535351162420138637119260336656546000223764027413159382785429994116045182541894632567880526600536476726068865682642613542755529729204155593502531069452137535637277023996953960701426585147909946530526803106613999027248099065566749334519489854830021220638884707381656590416118521729084787750121147370108592954545372293169463800347772276759635777125392178578453996139380260162614453596115478083916021060612735722771696954629024806900697632401072293364843022942749769070099928420502834122467033111204005874445903074560972417055127099169182110849262591034242486509059059556877662214519647530027827871844062736822332784866750045645013792550246537023944941807765290965154160276960203392205074874966631859738500407435603440207784383447387615745797893957863265010800278787479214259880355704167233218431843327632143722614899786890193635125302918234272497321936039599266515093960709729631612000044586945408496644082878429911921704200306473046223948324709432609623072801458130891254153614321510926359217256103204164014903524374946141367588447757533339484502754127483427402065289729942753639603263900187934851619850067088921967526945861525857795038114802002206303091145807074390962960447276682400934891155263254906986539665794037028781459777881621388388616736042717663417693585213578687580932481631845421997461323129680905502084218476153720233251100715796762480876971052203763092659377083416674447570334840775660810535376782229665146020242581449926736582974315994207440973574492859922425130475005490114851226279199101272879740755145588684550852740319617368070918562061744880854366132853356912546216860592536995434529496099845896438738266311763169998491409227495225499320925176025082949472834689245799544210009268593268159693935450240463019741105233942557556343445079726319341883536718693277588797393056604637678847439489837881443169224046986618642596637473596939436534693294650615090838268347739129056104031332729269337129512665349044120938078035628179715534379808808198264234198974030027262844431776563968021678904477336337334967449500661080020391274895832822295032533443626895732416433695149535631130061062158866624877331186766532130583143827006233485530899303684877866935173213600351837184421033165921912592854836681887685249982854651537202370343851034189197974991080767273180148662362724695157259334871307929559842475141711385125551939975785528756835473972263477309973066074528891745417996661132955592893627059640351725500373195099170211378129676503804338750149025097567089864513945253858165765686839798869260891339883014915567902235386049439965909805126344135203569712706548892635186003218577195782752763589608557731712582681359455614764847454012319471197222082287773442948190290592283976759985554051553974182358239593346996424334161355896797712961445862912576251236697949029785377142453655640410007730684480202611378759272179841842970166713817857968379951786107566496683894804057701974463416801220841855990221223093230793536083145044919856596894500834541406311811307341221655199043287517819948916704972547829463549537329239757879453803271200408977802507161415459538373807388372682986741177425689421803280596082508522956001001448973772470458135203832487913791757082553804303904653999654628682133339835537171039857249042594101398930222623534484031431005831962914323404071519489541134336600631521144655962383185704025810134597316418266946963962796742771057055785907133308870979196866171350730694925936951098452591725340422881834009956818285047009518680551993100621859732987545969550680699327803493905176433459334448980301861383000404648359939332162628777181756582734154876725279827829807755354053067169301996431006425872446556237340546770664495201561620343491903204681756868783876532335153564236438068386941312501679424118326484769121012940331380554885860880776119850592842945926141386089925755873694912925212118212034735803896391200696477081524466385266109424566160075638462685310312301722993247004758550144686927102672652642108852633807538979349345546095874586746705439110266694199138911818097597691860891446314194763732530518962017718506899279052578795134861637469522614323777547955302829547462243704742052229543235787797313549394866276309728032816282964767094905226102954637044137394946544883996677943900138879152868135955569863913720144100754479927680888006034811800160215617557345674586130179768037337116612281650096436361713627265829421451903675199990880548236824576656118975974163850568169631014083474518802490589977146120038380003424657135133051319991439470852403602337997197830439813880736537331394169123956684131778848029551375700028218137847704966322652964770055055228706140705166888913964429267751293956809859881695327520215569042109264162625726017490783458716111536918672682992359492632160027044030423095445871788136068575111980025421163008802217371274407709406073865832929157562566803443003188021051317861773862102066753710041297843890821312123935813841212418034946312188116297908512219894853068477251003000546862424103963879260484626744647708422616731869570046318641199800943702905780352362904965940471587921837029763374426182620588532155012287264819709779432365905450147013552536266072732444594892334549687346183402694270929525048919452935557880568462553496138059095105209217673810600321777276056352281000220708160451302871066255022388836385614828838122310284270333281539455543294107246123450575541134850450562759797545215584284659928204061951898492253204642173196370144054349971759164473945894524767049199821658025319839285051664819436273678579847064696212593892143048145509330327937121412955107232185224978040927250441283800372993104092103807294868533461554814217031850665120388158027253063083500911279731919494048127866828139612163746517038177022226809130760063099612560532551629931619887030598804518292916744275137695532501357690628232611453592965052211234763622225308200405122212781330688285012890167812208968806513773651030347186507567662401349425841831530811141628182204987666227770329182278672684321676303226731342822029688796160916881957635557591990057198041300021737196186948483040071985212046765043147029135519324606759306460546648734628949883691371152961154624618038745477705004168896694320144223220167155959806152728330829360137114727984102511621257812171136910454360117045407001613461987592562345357553084730802970923807406394781033454189308152708994616219450791567266841209714669113643677634444899624121496974986891264539695056851174942648392599636639095079886808416148353840609191075451303867611924072170951041229661520367080299370623785532321011279744788225669439088057824200899766155166287028969209185731037502735130949776572787797808780323806718023716188221366978125213738361162012524919358733795064898342439283410654869170700272007085824217532243256733517964879739314692313866276858708291975784456577866524250707488106990810203693641811321946994863370072591840050398363243044902114782228724015075988691188435521798202765813612086987814988316760253179823789461508927049891610352380085020056875254469307391763455946440018486912301375188192245616880386148532351174906678859414191025792575824011571393815873755813490070479944759873622228844392900939110754445554585215582431853484397221395186323368588799900152816956351345799330692977861495807968471033196578883160971562699516586861933994173540658394291976635569071659731358637681242178818313888103164695135580925664248219712203654698546736099756168549954360257165999466240911797931986924807657070132229098955888229862338355171482324407331688082578798294041790465414913500182045104085694604770347876614463927648872850524949704328580255158457996292735055200465990348247074122854917799408680639087650535164038740404198984662834911154883210875406820820974066781234412225194855257908328434195694989382901799153174609919018170029384042704488080005693590580119584747349418024795049453412092596340159917292107062388616779329997717673480401696188787621835440198006854376494046932959461174250981739482210974965011871586710688741006692090865115158586590827075871360426013935967327573833486487942197786815943516823835222932794902930841507699213715159479392340066120586103847582255340364542543148431012850013241462336667004628238001192853928105419700572576086255788946344774409118612643034763655786247290089921052384557074321153484997818827523235349803406356397694877017770505282583981516965928093307268278779159362624829877517401553101591759847342776402311784002297855943213438632113495405241622715762297720627557670446446449436998195831915440905572385000433829199854068176554360832402221514533424906063217970690216569207096125295873942906449822397664283045566844757828912021261294845780867135146975039137989000972187891922092802397197695846040661128974690294063925340371417556722842882239582685098305885654015183111637859819947240701391981247302658090415748658809709519445103943604930336138039981654107080610781878963712398966356449471884004703061065122241357821291937068940127488195703717044198979883336108865069786267008131299008688476079202281556997510270900383883186447627537707412752280021366531058832993173803191371682696603551519042763694969619099734528513201181802084247867252977084174358588876647095838163732128995944137179612487042504173354270354515602471800870402862063399227379850256894991155007264536531920786676770649233274084981009136258787628777667032310870945602081916425412337140208163353931113695817912879820731317258905667418065214589701576258227467054147268728435001625669604801646503409746482790750070403004728163932962032759462380598240091521094087255524296949753124400930412091759080530797580230559279426526791202442739592401092035186105537378397047418476946287113200484690219522292033612922285853528739278192305822892518825380067830064295484117956293635993344037837214337997662383611804731707886392420273604880068233803107095689692402026615033347506814204538426138885644068878290544283492772473417011053015887583320086062075516661553945000948038568513062873805831602203076368915537951958897746135125192020215284961034431797237995884707891992273815991767450416268743847867926608292578340035394526449535367084648352365959182257692555549227907758199440308653764744508546389551013447996381032167711951833328124595096358473586074838927500371110643540948802404278580098784996337551012212739723905265230832895517799168591002216641840313117641674773459026960467917526368360845921112422842743853526585938311078896246750444069517059515242391469344090508422129258661757723882708582645541338006714995255290458258160358619235121395505190425478062051013130690500355234494273796632075942892319962686305406257790587428509178476905705694057199602743987585111104785037745546351911719096509081623268619167613581376585987524091790289541486146051201102344460074400807746568442116829714277005416025521084481745385878532401541567802847782648393609440259065373218109752830668182026426057310149757926391494165913477764737113967574157737216188962741556075497071547640735435099619860488150254386215034997340082998141976042614005565910400565703282290698556157038731687438854190683219308639941002738267045582101442545746943655931699374389541211578034646232620777552563613066401408269595784364553544596622198295563225301632616242153617099541780341930874115330441515509390167166722328333833661909820644417686985902823144986919062992878105275786233427639652374288809430174728294835204526658311621268104782211084755082586735136105421382420201152035279613481438673659036063554958696579162032080467303577347842118425254539683881409640840477830248848150086368372308154193471881630165527558522861131681628209327956848322903629445061297973329493894585780590550604903455661469477914751699069853731460735468247685927133448342552823380011306286305755088552142824160406780702373468669225331496950305726783210107937587520303333616940643759776982876368459054320557591331182227653323099853555619214093705478208670759223175169797577535461071752385405958665186322442571900889464479517230285576904116472312377361458168295542656195867782855359283746762394757878592410394884820892379479105329080331771183341889664070831063603833829620328916554151725810880824665215057186685878025325158966776607184704076747638090522274784478656509865215156090506625189287470431865076309608775813412025629255567024080720814907701930193760334029695589492838601614250436900965878371068191764642114488485614954839878194588081118499712238261371288234715454916472681360440373860578416434104654715363645292925807022165968300079502981869890674451568730558591942749101603898233614488840559598391782708780805499660974492785549234676482786730743668188989634883241381756587442778267260024484411337932755438265854076846215528927472441150921845721062470617382171812127295929434804283950486758960670322592316447182127891452449033670096940195474942618891878589710738786578323130187536189768885104294457946950693481114425150579918760774737927633680175879422513748413384132973981496373655154589737194015418150951488993648853886912483120903798848954395393521873931257961224488036783230518747618997317491139030786695158574844963448965455942578725782744319497940064492532709034932147657705130758531070782478785445639262901123128830536193346127865481901808876661452756041971366758125952544472069771304507299995464552837521859985413452963114154720636488268284611757969330969857031682935369472957575866030493232885083025147073469337426323323294753973439545060419914618504755005577510444057492879598362614361253606120024997981626336950609455477438277951694111071798406514517116430780532009466837477966019183907212605527256664927109149093696669094284791990537314733618897034292545432713218552631120655035352610436851018748231752481525525412342523403680351853489469623429699767748308349742767243809352309628679083259968349631617545914089073173725860505794870595967087097454245791589418238869207065998251593297500474712441087969943749645569961717729621912551100005144477754958425381296274446370241585076729162129417207926249747375177334356914823763600154424520629039614042201892310247319487387252984650510957416028660295403930249470567799569804480044833970426115207370272729791158866054055964022221589019642002386714471921298993668065028953381902629829354475592147672653354568494753384948351388098492824362233046368223935481524748906025909992480165590384171797534441796532161630181539193704362904586308073808173298918482130362650163486547177642497920033001012355479383715068741184725127241200277607179192639041238766942050473693159810385099824098957920257249762990896425454309302471029472464663379164521721246600331282298505089584909208927828539493289204093285138942075510298140595406308939838530533431186822152843730285090680621018262548493839662854926423457927558666072088099356558427851589342126878940448316182747107348526675254306715270308220315585553963105836260574530396609826619160142751705557894211840163501386598794527897247989905258800863599396470867327849741557911017236757246718810008520627390430049677151093474772975071393057316124803706357152682208810755481022980940768526969595835620378299055088862409043029804535407023772080549845174939095930839344690913930707512172984025394325531051797660925020709402669039688193924800462229786116474782066410117770989870796707692022643198305293672383411541885148551516975646517531425952754556022328589431845521655306713531106544914915669898749634503298141279692908723142713535966046182280868003575046198924937394059937518817714578122515835648682143804670300785067514443993468161787383933995027153353073159013191050579731974632561090914845162306842458772086093295350574019613506071758812355366445230317688543480360300824410965829034696796041303457349137077018320004418466509070956293452397537579451034138756118526783463259373406425473146287159486423137731730987637529813607243165296970660427650118369334319139284423001586984534463869924042173072365588171677616575962381365168285393405003480444362815548878748030439092647001185915127102552517842873034797387765131395322541320387209968843716140510273115946079630412480752921205543657980995671447657997353719975169672103852066576785402317479205393041150089600238834056725291543897941858271781194508560305633008454101443490035634949937017709511192292232949312193885843491903534657546202479596238148919473112582548959535005764203780205135942574050720831279850548041814574742914904895865464326765082719667230725689366947799446401694793592911546477399583717192101297759916867788192955839619532099082060204175586251807915058251991770076165479805651086973050775027151072305101419392263413259152711053968900133681958032945694119777440016908435491601289288850519806459104225541859159415258999063543362430520748452592683372074025834754069272782484311585804296556578034861093563967166894953239769377563833427009426547919779428495829370494527404401360004814929371563560165283671787077706017532686686959339438451289164243371511072311910706355194318324031352955869315728925657727628546200244529941007637676189268275846685197977290469640853501965628534839515943968371602646621234279391781005875117854147344729389661790721485699386453277904287564613296986381122954192691265633112805695420689683447022584280473754746886440700938067702059030749277357633845436898956735793049946095974369330790894552081158515912994002816859136332409665690983738417778340803640753145191005425361245060045284426795201513193835963677179753923024294469862026948372826764385978892187818383100554637370867014388159267316693115749304233389766638605640899231127702350431320862892495999284477773760532621159328115876861320146878641747574320904889886867006501579394214684552831059186045716808998952783652783750170313192774089128296614367825347701330179084475353224983701229054349749823772396977906088123896421293778264865766571098067522014740616682619985366724786406359330682694288984600603502119855073616607728702935264473325550843322244675518104617196866049745705332881351654281121851946396814270857958691226124121844024003922094047266991398764067141876142125772469927319538198386807233691852625233033806520721139580034531400441494433369522111005469383189587686536241506239376578570295952220625745100624593185547788256768947236470587576608822920621365560620098827397941612078130401656377868371842667543606158594121722078028777882367245934078012130852593824966459991980741258151850188426154063305952786247931727284000250355823103655379890865907857925598217804399030267196789716972076543044691137876251702789084449997768680838408980704911176617055499653929930687267720273216019283438706014561170827613392608995412748054869669766189300508262640041175393336726909692540598260749684597057745706401613160241226106379017630946108411727618834817593366775474481995630782613286830819759505663492188885038747999235638355342118680255581107144897945926708789533501505444356828180531766873793692368784563264817567525186163949133963519895986360530091676766837375507617114235149739289453116614615090056539771452007743050953279225571333396922880366509198605159161576308836464478951517234460825512230685456795377240622469886351660001754280229640798399536793302833347277130557849262008585325502327319731724903121235812414527512332439504387356380143392774710950127708947861199983631259819090618817499018877577131056035569421683906093465524461487403014458883979355813884731223771355391738817848542232657520697507788428765881599821589465384838262646195294054374587630424252154716385024644753281267218272756540897436185327325804700363201173351758981042686247074966176768713063123425809783487076178850756477640212244856465705413546766140031967604679855993542130010493570141256060373183834113077647004106592094439569790835809348867706226440909314605399337050845298975708156106756549100510864509139013863660237618829601538358191817351840485835792821396764090876853848501843985611158899535757742695900635822279706180126882071743181318205805481486995560743712503346670127034122808984662739524745212179232973955254463279098835550891107963465863535089117997797530825666424301442872178730025964175625153914446547417711004902022130270996857149882030197517322833665389658102098463260892544034780153200599285032604347886942651703925266977401033532240061794283788771831614703935465054758800777483717208647519020138996136510778667371262052295116074117020121907121124318357580165940819875746384184479912226679066995233490573441237501783832357467248269866774097054841057138976364486894162601628952679618297970771617300982312235531905301176596124318100450428803969297927784077094060577856655708639368577793680081754403578900766294608853656907512340408867472965428619696670463258932958412725866378330115706073783370106078289989599864442514987309786484260409390863584372823726302298169669552061505726054062492390457927779501591020717233382007326637335337999854467115921779402492802072197925435055321582091598639531532453264413646757058158364504013568213049806674540737732015803222924789740266139538865765233632658630044327506892343520672834266251999981295266527457791443504835725222194642182635232743221625336665541521369689333694738595893077004003530560446816523663196207376024200009426757180825697007423183929922230703556407043778432322744645776512270773428561521737319665742118600309743898669709238735319038707512585038408717254162571277968477929040167621676593733462294493320333004258531431799782364115454472691609283753018556493314772405385502986181192928208529204613025522802899681815391863779609745019741520698672890989210412424223000657523692071378357001200838303997334966145503958769839423879808332853753730271127320913277145673953303664307811158782772258195156455431282309704396337214583477472169667204618356158750104895903329020592549414364962142251865199866670421847692282719200138486905846295222280867372998218507254142243588632350645470796624080991107314234511428393637155488915346766985811697629194166099748992233157799601929063424536972866335557225658870869977223303115311689792303842701150398410633688590497447636723117570900804670317439122781487554546081469420450679775257906083244672799725569385301438317532377534891400724957537190191063064046932067482284293990707279934855539268386329156774802434653121194105568097562571421858343532241785479983395468479797060764019578213839341590055843978961974996716299215419733136038336466463083990233595737058355277237578746305775078493409103557206375550576121176425875695315746426539806735065380284769495963378287277729167952747037123431117256326630463446144298498171505913769332884670195843365478892669236581112306826801763035663816280097542986279385882597146507107329271997465168207274461397089889036020492695535603520190663357427346678901297935808693575625283519954616174776967997356281312202245358240648012185888370084601169123109021959569729479267437356539183018894347284239412135868287993681745765516165953687663078274672007729954265986170375378638967439108640819080097458429427364137268880282220435485925826736129859592670290936276230958004482282649053481684995986380541954133042966758199260986137384601794476795252879805762267579148674908213183450291141950316396058530983493854533907429731466943124954080269874923083202102885492401472820837863166359338989567714274140994169958733883663118134807252499754847685364379992770157816613535188763165551195214978360113814431949273338081196312291300337431480554090060609318968613573637477682172353419597864012434507783016832094517085601558275177279282650549808772531646371124771508456261455637684660574870563823120948047979432363714972896084872337193110575517311749572763310348413684758865606841351237111449401777254608226573393987563746775368281304787826602755124939054491432255230430118896804055793827829130304459780760183444301428314668289636216487926136987821794536854607108149225949816756106276631274767989527135062418336116940059659812369084770634782217647175042016519558961015207684975477443512186314015010811552779545798855822997904020704312262596845839145050078474525764731273737905406042864559675918664332972856372771482484346269301828161899030050181229343147235504274519878175290211070248334464933336735000301491325516965549665544055808390724442767509719490255752799089867042823782681638606338680972525102275144767787095041573039883582176522554660924062069741619466203869851144468024559192199722555557672078232034014522386540266874183236997932165441538463733394100215738847147091362486325546326894085640478609114557035333045381350049359574696128582612211943940576221296265021105694688984928610214697540156759101580464252725404951049667938429429749782273476923545563978474398899887333253381859262526529304951087938140934485541482818247860923497544116148252577716949347346297248037274038802741425725243469484602713176440598868428399418445150579680334357280740997859841456147536082564883666845699031676081672276995330537408491510826731258813083314752792944723719349686818780659399407856696497940984445562230638141401873403923146743005579441904692200923010342210551422900078636880199418766529688828734608232645124604939252647776633619551701565041276825330997437558988858487437796861669451768062836862841777509382350606616538815946100417962880871859072607118895241156036959229162235244186474172056512450090493866243709711151939181710040516952897208551987224973386574538106367584050620405869599590476038400401081026316374439339354326855915179810991366803452924878308071550137620242741875723549521304387000375681196956053924960035815295233328655142712066073333464225820043968013137117694512771291551093268990773275732008672277376069074799234340485871960504527164399146812228808011574752686322621540132835232864448785883588517491279674680501790620686603361835309046464367463789156694770311056553502529584215550459177759376597133977046471945559293579059852239638099078639634728114679247798734212923971636303403696771390808057405913172886276958557186352082676708161700819651255837491144254653783467361226524968089302979258371657444981307512747839485010688422587802413461373689759276697461301733295691200511759912555011295603351579121728615358618544647474493971037535846432151016660152851219468136331459845342992202952234164341911300482169740546692605725078995735746937961571891864367376928655892370850980707281016325437392907744351806480619435142097911261216878376932128192800181960512309726617764258473890135316352802383370053493791351966548604145109129758398953120170885142742718040194744357477561026165558174670252212794111093889943033045146474442250386911071019734279122769197851843375131419364876132942052239269557075822300525599333080024900962759940322817241033738281448426121735313123123278017210731613312557899706391503192064753006613368196670145526051436323700482432456867557127113805161894910990073904822495848655530947743391385398294529752285259830005248383263031980770825488855413974672948449500167019082281953393115405198153988999698558470975998393136653396814282799935438543133489989860699109535294983017085950443812592800861646575361615075049426925309536719237321093965678388446443775564712898183633720475331704325738368242074888142132355352479371322549676659210006596339184852561344094141443535393669861503543462347473727685659314063552654783460476966643481204043350009770953177335646033701727702315985684858833850656378450860227134449773361607768140922304468493174777214016956815548316870329588762795870071252165682443494985930448938647831920616168830458188958659093325310069460403141300068619610430150706815889655279215143429611356616636120013255195556313255743030239798443695838263820414174989112735732305453834284184841688385122790931572957005122349795368333649351268030231793565662201845040184559793145673926269427518146398464323536758232537129951046946875308483460766434740753059116665862001131078826870401578614373974124088052908500630210826322364701502162656586457625757204891264651709349874271119292593468832285415565673601038520263953793011031708683451941161137188871115545355374396750738072521345569949555940988856286179092745383548963020772418610630362865848622890698997899799379478945160757683467388574679243934740328516024743582862892984578604022156494994990232878688083817328531533178251481119283895862128956098293191080441873460039194420123907040635390913195747873554624895690806710015975328237701952619273710090637559693029014272219102053812620894822561549633639887096398373389789948472116924654158581343061396715165183766877139006176567770960980121594888457906786312842031749570092954139910434026445088904293266428534593651084241480463754766386966855067760127138805061783666402544946891206476172447280541644767959424671671254544320571490223100921444892267952635287131299487581799335030714345213758452915118656141388632971433458939830914029029652508916967901959562222192850777834440607640601860596265694842987484407784248169496195006735557620590171926561620228985596243959861866481419247547549670648902631855599967073795011201473430252259117212454295501818198606332975509422314226553796954948649046390177588159383031260933615011844112711497946782478460065220706919427567693959911105970150445761469371598401380560529374619821273040432241208416879734475793532807044598993606980156444094519796699958074422427128973496783357510997261744432037635518803227392859511736293167897079030565304352515528505005204318376525247195567649045209707513171756240158688180774104254697768865522068249435259540440130326655359853137542532930829631139661143833404485368315128341962908580902684361734438740755413851339089018333438320733444973011737995388130810155273259359690249842982851337458432373397633612432643416324943527773830599295540786022542970584029699481201426367805438644374579709843429476757930075588558208187910613263859335182527714802126310155348112745043898838107971585727075685089443368626691682740594360330909465761411969111288410696703234619320088477394737253945788126627616341981635527779069204599598244675307634048640158712635390528107646017385068199343491268557122502703671611460471992794953363925316949842836198864753389509654219327205692363616835786966213379009145589048034641051066157823386213024491087387862985783466278934587343940188484986937605504230351589203590678412942014924694251716373509374023065705788193830328832822900892259896500280969952098922984622291246837042211698951070974778314858465978155178185931722490121975993615266966760414769719597010545439115195753215677828801922150345276071159998322251638541308057021795508480755353020901413604327446633666713248651637660397516248109914454576011294055846512243934435048678395882355401335715974264247790955944583640127345859840452260918000432504262322356265145459278401860574359229090082690767348414065994279305824596202251279293933699977224615344329356228446149932563808290541538712430014935241398646592855453480729290070561380761932165811085107074811659499016664654200597008276621977918350976144844871485444325593510463612761214866246458935863366982750338666413930673626407720805607490777675568117002492950386795625943123139374566979586098266023946664847504022854066811415290886362397703737761291339017417190864334121932626529828626015709600046095515165803323438389709564819752928756385339222381609883291949880538258865351591885610581965008355984111492172259056488026204167860451378701898551441354114278014405915350364415450046006755715368160751935125259645512501786936001906738952740348946617691007424308547649348541765298191587173331983246335557301103241541128890869154668255518122143009514156597476695171918133317704716584985185165068211781367965834405466903947897784040729640006405448730330153479253114240709307697841739754418660883646280757037101193370967702301331753117831975989382445377152340165335901405883246714471507060324369542804994460059650357261352199662975961876340648420456954521592902341558000867592675498149945909900385611801580646134789156040902615563560331289078951466558857633033091985711164306035691599878332359567672384016945192076699124981567380791497048691046395010878138734019916343867325608547894499448088959694464312442571886317913737244899438120970561898740199695825495302952603227581755578027137645185132431845467235855993789290231734064281189901076282507622317499156144824093590027248516558823506455719602763091276787186413173814170629096912747708325534504301296312495941786980528144387760765341899471540840814156770294272001667786731760346300235178997772705775422728169193216196168337987203122753459540779159495701324795610892091802492820570665093349395925109749898598765458335723280089393194880035064176709046745250778611152521761302089410259563365783364192114863741622126452631325925604583214793971507497592052742248265198310019301373496385022898774384200763271514569358004851489438366162922433417189854967029135813420480899057235357859181657827630813492432563716542267686165025751811902918345379985880258186928758097792318733334588162965366557832996437841578541976601388903777358016920381112444589106026258866234329716323727058573352959302470840097619593483396326907050280719755084966423112772716985288749396239886779635541037392858047395459870118794451166907444566213141295549998618154068304278506438601448793798858151375011360997856904305612942974145078413172742337278600632068825472002231994650686254557996912030851452406568756970823304394703734516047167754826521479626975333668616883033414527239602473532022206471597536029317783660440474166768102348273893553314623270650063338738314752986998873084366504403538211686914227910941359989298193238621529026064947507169124450803129883739786784184984596914572372240976399014083590535027216043751204875773533118277143992865840029465839948776782929250180764718229035241499834447117602037578641462032071451072003008279835133846449921549609268481952904917395978637731311998628613192064791028422108044126315887753842544418974188396972341647943019549552650916867067170016347505207644532502631831968470903586264739850120740972317282707905529307595828994872818757584238174170830119065720445231773020545721178710184839681720917967016583622072106441712696636689882160171808682315377128924912631583580435739274050821875215393571937550196991583089710570324847207546094376473731835647535147553124283568340495726433734688886299157555758313667215488628710363017424048498561369279247266912647854277519078703405584653716007405239471068138386201421261455494907099986826463542720287402714766293986708355107466722577163342782395653000702151805561401788584432828682574972169737603120295656183507660076149899510844149154659671076742005486501047035910026089870198749365633961118857241896880649756879291683266999047344378038540302881286078306662467094350859542765630745978844132291749703409186971351786328831537885259277542958138764418721666985875291170955568777942292136357752996609589456137755569474986964324688209322391815712374395620015581732305262857275368969018545513728563277771028440878471577706866004624560183342815918038193130489079086316905072316461201651892674511620544821071649902138091984825905008999539107979848684804779435891236012086649849710522123973709095109874892750545324420797721280265480401323303405789880052396569856719073147380511242425564390641457059618481034095753210315634570385680423466037041999782394765579251989694878335348650357769067194672631557372794885759174331575791686216938899443745378733494130012399629132389388648055692960829691564447690553816272533677390501716414989013155297382297881333824119941759024222911022931205224009627680253043371843013731408112088646867621720405566068408772937532473077577281441220980983592724233292572040340592448278745221684753630303439653430825250115224500870863164684263740435379022500185048050894416883744402551787117362508788374985038169921426264662302543386334311376999859030934191850656462705362988754463461926909430983536346476327007051351871445871401659668059055393141346416340044822607885311989061497884974264829005435031603644090958534187456519517545434817612491510567451641023848391533720645967592976555688138219246461741024556948796950569277476795191846414605108726326571975518318631034501654088642038483527476726375665401386267405583186072027617857944211661699779840406863835815311767472553247244982768835686435599942747932977412086730437213782806187541631149262908612211154411541401690937334628961100985589305731388738877654718017618023608543226482624323457696002563303306229906363247562522257499868406080484980332336073765781443448249187345246323880383757957785385041193124669379189514199130040858932862056617699438824892829385861349686922333160715612153739698233214021263579003033996553926702665951629875797162418355008785087963100765625626132906677380776963469898732527342622400720975406504102758014235446591018183797238243976343843456183633859390138010325551748225618144575169052465272294362528383233140679765296667566053628088797557279052334736584191836027686947299062587700534732245078021900821107183091930672642667365134920806478411708118038028910450943221910053308323963353886978872821378461376673444429189945993296272712436249615141500096963314394591532768038490974083911624995418835637171561112065822420903857361822600007485259206323901994641649764649155239632712092133330908865469315916683293084666822357783303092155543564509030630818231653629592807695610897913821521278377273753226124988089414684200214444561205459301735614588015205877841332075890896965093036049924760689932669414244816967582154388184996188244233980975111708228421442038657053244163355452524454397210500875985811833393675533235297918361901633567857423246622237194289039999841406360771769588664901045830498742038855106746825968569404220276982831625044888171568127160114808072337746036752873979329301802419202301803933251673537850250392364855388927736808019669530479891052253656785345642002881480127649574675315374722823470111342076209327250490201062361606815148723299100541634988758861415505815488692035397042000913941347015760928013002208809731244890087241385444576302134738949845503792150768060859081079671317818730743940221603347201830837891023731640310223259227301672530803843672768800074634019567758963556455631916454198919335605693873073851326196961136683239665241659624530121138928321178449199936348550691078718487022519667890875892212467392966599383980642033841280221645055910565947289067758475063613877190733981304327456949334043548336570743878713269124407128722455737472835635460861820034968556160229766392300664524317173926578342166414265870650277500277281780626026636243109887480566351427839063959270400991453969345212657867865748863556189212742580056899462913919890933680742810853490179837024441216310652024432947391334013453286612047447791440247278945283114251163891587698808729056466481417721599033999946513590469630230113371218680754734944083613201294779185486733824461330377290131142766077616550269322104798305775795281370290003443658110413703563424342190031870812176717558687170728906699131084948220247191209334028053415716720453270038500130783349156690549685888741147025883541657418651356077646716085314447072705857217685102902272431915633772403562666293575797508726035030039209613245444222735101763141548460938441600552930869431153859701271401336152592664969841515076678544182174758341914442514510418430892547916330969844136056357079974670539250949335991257459120403647868090421910560689993614722056247886127453226185966635113300642854589879696011698988360113916204084249333565740838902139650665403588952935823421145602924846375904110151371204202807229333142579019104579714777346552728756279130986766411858554261122842418315604510396564681925503822571619431108590157021141159802206009371414903014839477923049005602376238108240176876019302519630485503937820077257084372144035054955433844477378633297707825257875421627722594298140789654309856079965629011320629561969543238316622052459037330788467452360415268992492739688240726629314440918186647715511854921158260455481290582106399424064969514241494755338303382727671035019722175186632736762503901894914586384924424218936085278315936198147307542464448230061583400352749241896806768031384937729687607918204660212511318978955372907399855894257417279703965796035724409565456504790025656701614005388830460378689284900826714118256410795049744188338883305146412663562679446736142515093500375678425947492436528270596891039706251801182406081714662192268020015518884087287508191837285171902175077493690871959840324364081136430860162409667332546784331059397315219765108805244040797751524608906957827569385467900820232787851887929334322106568600066146750852790796010768277860821085000503917708952920408571439986234063075046351058697084371089978579326218429547665567238355654078489344011474898782056740719138435621427838683483389872402213283173762971438875801798083080387765251232554602208693792427343255321475042756938133083548261367512939653768490992247412533922733989636351176781570899332974277200208051846434490576599744695873079325468005883878556866414433161390744043984629873627026725184855784911749197043677065302438958892857002271206721970708160221827536012386075950959163009318798166994817023552484473067731411629694386895333151565946093039235965223876555420859712725272534313901308146314311379270517830433808993312188040543572937946225634053751991001404273123177575957893641181473785819588393389515293822533209976364665029092407042904316870955236266882942715424022548151791263009964782436817462405408383462994422355438772152371864703384809811715662531497504540202230129639148410488034836787473003098960277201117701437264964364916488656323950340898419145893270590574336198405297075735886249952765389050469320363019462093126866553113412835653143351383316514516332343269127258161949745082632494687480165221784000019657814952187252480757565844407537986009295967761916337432793100647930277564591431913886184338538209267833514892821417100698079020936506232541308227868761880969551522327705835791772953657950294838139594501446478417905067593598758508234440312661949761058673271525858445893565193642474284839330724009000277725055819389473112895308479339839089569933748785533776097188246247519888496391106940771997182162082164109778683381142492611910259655418565548303945644038171888691091848658539958077601185101930620566121198262406304906567752547079753608314202224330274696735503044840825257060659064563405589183969460726044311945275465356516975070418569550315111010004045747511585740839772480258669694691771890265948750260158865138541705798380056079779993126213416884202885633627201776568723710953481287744444513919674037888689654744143579450043524025770547968594145330661819092581431359347208581908050776865662567661919851282971372700507662212581536706208603840501394129933853281455285306494185108427081582094117805661822621395594986693834599130223300939172799861757975187873151514382368553242166879601029081542076124742466225812270997130491918606264073966810396764783662745761297845741635376756284776273664585574778881295065309616997348777971546709886078097637560895219299491452649005982475623868446472737893154229457421842486879236767589645858519794840696343983857816523532296036468681518092415570229523876502164750873015387309016537092438806831805972165900438585638694215142673268560465542066005573381011556416027267839785414079464894891889736902243933658388225117644181955623046161206027438091590600138738008810890572973744173360440927429309974115869964986004663818386046963456972616513868239446051141673427781553020199358642906556898810077723247245238724349407776626905322149606011522021253864946853551397621628594598323203077977888958338676038077306409254216177566283255211898284593512705436143844706393349133528771957013533089132091527240240422845406223135941567077396659296425010003996431544194351230155293402795344733462386717066640523790689549721259142784930328966625906721981045344492545432885920370296928508033487395488694916498456560032685500986841811630154683816863820042254261917648755233205647121282747843703587049606042234665641223067859318264630449813271554513135450925585844475441937856094201727477794467679400063060789619681950366356337259223669864446824019191852137864808842627421395291343036051021673958005055728908075395456618090926166762957341464040747171369516877043447205460129508884057687498025866977249993919522969139237886509036939750544857836071776693982912875584480766063614190364294419639262584750212922633248524292153567171355176998594435855885348066209886658822377367224811739305547731231144333011466809094799580134107475982169519820536578011823365930924111476165268840027141514900653543573302816366042753551537531567363093129313507752081831094100326215527910832942694874113370760458219229422725440063346508000127945940741774947301717040181268213415202294244229710859916508470840492555085328421195570780286557281835248211822442616841102596253239538450191812005886464834263409055912116764554175678794475585931885759465429783668899018617822418109791634664631721851978146044471507063729639841214461266377427001761311959808284469686445447830237515277517025289883983732020203548599170971563291591778083684616539620790596292366319751898299269111934128408825453908527003600072455869009023485716618011576944207879454616470862710853764058589587622036647249255972563076851830398082787231667054295924993071052868262336870005890172768035713139406647373931826775468446763310061798740997244264919237552312346006343657991774591697092961355580866568092444141205350712838403506018727916701342579494040200788381760838781954135824539847541668328550732763201954509630610409801684143618546787526902427706921237806369429525036715556353049165227080478095315973414507084765615504702151377031360342046888555789423026537311452989018932324156749121308780528562669163364438378017988607603329228434978949686004110949396312380596983365626885018588797012076672925328321125396814382004988880582489513322827698434984235436442673145315958671363661494085117055862467463984063906363198000381549468439854971815532682351448582305339056649556828420192588965137387260670820750231311717337015406145750876194134392710908842763119213823799311414721567542819392644683022761328341936526588984542972843631121021244914226599339996073775815894223970113743483304205371239719400738262307878347217026113968983718328133618405655417841520682019874037227264588993570656791298761720527555095666952584223182668048759063991711003932675550905383226065728175663778596666075736020244867497488955052768564683858228410151974837499821539767288420903847693086001436325224218946982808232223652868082573887020984350890435930535763352367646073599496605917870715119997114936966583483412340489755698505101682653540029119574999427186907257313569958029521801190294836846494819355911037692292465857937127443360596288270823354480216253756195604751863795197478872578153802740390961014452582078872199071132399740522423541716939599170811301239985044358459330352469866811396441398964095887070219287041199191829810258878085631403492152656446631619927242487321149040177255730366043412119249390225217131864630438656917563703871727272156669157799629915521032721214474268468033913488179285520322280513599819881150131824618895470182183727057307508572059573089721823557386182205450922556664810339334199582112458038983494518438791343433286374261777218924685390858915225393479661916562197205846519141893940141055371120119855338303770212626552360650323446850001254968243749985500922887932713975798604380178513183429802039071466075150057091123941831818871917258918047179136209798287718013190572934874790966089411645448420150285822217516075209314639996533637062647354444346821397971367503486054926653886337571794587452525512728652544219696499902396876012074935033155627757079047883376196849565029239647796257235077290576986196102237007537234509322580136026268209733474813158550730976312711149922653832277738618615121098414312002256322873730912811865953391648851483862410360564378805981459424310669056773179734175289306084680096680396227295430349332062831484114318802449694076185152321981824827170590444297302926734134257672797995621496545583988950536316248134214477964966861035399338672994927335671521588459477455138373311618961086113259689995129911246100534476710567036009949321627814669418843787184401371654964292827170440805246464907647632525686837164890410821134894188755168563688204428754733924209310241867198659133932372767065772390028975892420765013718597371797122005612796312688553623558939778563857573084718389455063010657716198282128800125391245488712699809003172502461670338820560452209257273124512632255002887504726780759025433511541036107289469475734784567362342679141930116592609397841609512708601756057937595188778617224231666774268152348800087086556836488451063323777551605653488478378182058147569670391318640554064288159753596947798404208100632013541986846770225246161106378722653284610192980068181536566011752038256556269263377314477043516464007154476638243314774255499585878372435748353249156661912205028899942937836278680699130226878954055369981181204603877731715568155143872441775738338580524685632975091960416433394489030176891687162657420833301725008928301631044132725286692374662314436112756426723352211593063785923083974810394046611923916464455515201101457685065809788749617709835400014127942953442727723801286142861940266156018141224523620390133932510605982229329977832378385049209868443523671884066499916017850261682029091305845806591775927904110693675332806416238046760172339392319622835242338065076293541035273902193455440935025962423216214593051668661174452574475219760210570949363230608488967890326435582368052392490637331399302948653114906580416092232064930983819680775365727914645809230748647399283176661007489047882302820180277513124209814444667467555906072130519151261146839411726028622078635289222623552187112120864749751198640894323517612718927467449606600789764154562344551128751655482059223525192125115052491214210502014227922671597915159493033908210918721866014443553706395132687307817003096014690912127711478090156096927816039566852345135803039771991355178644701540244672603085762319513712125383828896634967148133797440820888613327413816567644447879354960677839479740340252586588722884971024626058296888648363238837715419316591824991941781697409832902292325338309789802424480355455859760613972367602502488998856733368185031612091897151518634974150570791967153356602689088945202387071434759520745389796863011157840512690070768039196355411808360257385206269857141599899939149512489674986870132371867602059149224034884692056992745745037098725397055152260900951752946659117836035075463655537524713218302603385343620730409466083811132997518185369746744556100233930526873489859333122979892622254970833127732738653205215811146489854722620430958086655777084405833903231772736923467679542428158366877353168044736475825375651117974278816199319340246204154817297065718609472655335896208645096346634138443044951708655337552662987910037138307308242325585459203041543713317147340094742131215795800203762031109741475014307783825432092537793392379666408859655239371432183648199541174894077276908143616321414806580749386096568827081082138898954044797851956100468596681645247542641441193006730156681944514103552075320247306642568765243040232857404009037856828788574570200310625180801357584087926853204968608835985291279718491918696110718050822432338145615481792039595250311210837528584659823261136229384473188213202845866025994759792177999657229417932113359178447995716335528067578953068473329565168741968842995181919804593761973157352475254078622609855628127800627562715752640480918297587733099792531256855666982699409935511005996118767117698360249622929145235612579395336358964080690774110939723470751615119693895113475567360669554738634116699328183759441035456867633476478290174378083275668432254707906374705253758929844347923561015124349451045324558358717493735572029782550340444076700269549319165183962980969842937795071381567663698455718019102990965206206680592162271600523219218597190157134814058504835344897079254920114602731986149882445371539882792471145072771842173049404536228533663627017471278664129472215853436377394016438846206019395928733984340116609195771988599579089798730064937078997989845240078193176691760582626906134800390321838923973834891579860144139335813328760479835786641429722868172628061724807386862958863989500242587195320311830027865305210827347990594891973282207685302660411969497516777620191272861291249798689822711300828054723598922581548687411358566673373962020005076177081311078148316488945723050695113227332921410053420872347278846431088925429607120464191459584728154373004829706182770626843896426679134156368341724548995880043473203200818819250860635358819501580999884357920572993791052563834764627464685987819613204758435310116939647477857273842003241088275245683832013873548684153831512449040947390912719641950998416254503757078602984929323760795801767397608374538337150280397207870147021023319067078183138081527642050428975378747721467396183888745661812243906062103605367359729909349698319166722287550008742855410681429284040021022927975700474954443343040171820877792538074373259211238560322248036786798467279025116190257029765415755842061353350892398059462171937638947318578604407188547633133750150406690083199223226168891462822862205956327734632265365273464623101617449719162514138707160712066309228545781446052234384877942104200162346439809850369873751770918533943884418717262028028795514900031796048532553794838810708918809354692049504938928697223701133072510835564482854012655290558836506633442769276599332136359215017196317786474422581482208956160310402173326730973784642607808151202892126049245283118330084000860450863813225317960780835243119301343773901924257454276739519530506050708402246924644280796746592622998886688254949691305352078986758705831711387301017002650574170193083123831280719807054584813317688298318415401863294993653067452416850736859026496420015880330761953948325330317169787455325720804651150143854485929674629157633746786977886852384140688267652889076571249271124997989805971540681120663326599962125023937366868388491041638686103263900359445414668682227585444067034343874406312326144393664320319103186372956950786236866148917688845049760477722985344698739408934211664520409385268757202921587753046820728001484892948641674608649260150231678951522225995405674481950718803621280253939882593912896647006631684559880650923412132332165133683938697600124092176167440884813452853460494587554437796952927548952329276026547971319061201177831096314766030386588224543691742637992208867521661216986135019693780268011667921013938351803014023021040809767295628562853301512354030607036211198733999068817576436024602745999136169513056338121758786249838277349231580169788335800243412151215563430161839117774381127887946888762532900703691959400255261273915931149848913831140453067414262475532324558096362571763703205020149518977003877571399592627634988135471850315819131941367384636569219162031140490793006753608018706098594330939659946146753657763387712231091683926039186728165548895862731043859002574729500037125301047647612281674315591926905598114665393806804727620231392977759955745111489881896618216913064987401973508132937115151755768578463007510858332414908089740550238893650399789097703575499545459275848555022095131693525014013278538329889900994912136181099082737095304516001043991161281124088235936318964950812190202080118424009185410179093711537489596236718687904782335289286398359159883233326464114104849427311548369950195205951585345783930127412552381111144769555500170123701099828323060490936710825588197620471136941072414315879783312182975028721400650969852655406084257557972536712070767368438608861872091401040516039423975199646806353010309878700327126062324620974650920267951831889695222153611613029360580593590488358091160350755754336574495833995665587412221305388084570623099837012727218469898856194918948514833027309491887558059531806165634214159445120418611166054578622741215068546346951682486563504077908541054063362556910141271278272091660235922699366482499507540969575483233729234273487601778991758990038481062421640901916249792867070117277736285816366100052039947494556385662422826212124755286508002020827893317365755686019081664912895922874488684277204370070240093803942873633039991736101034727284905282078505167570221206262811783775356418238771559821131295394417837866206465929803100114219587840516274741920183469093622395724969571202298639858435884701224723841731411258176604731780238331934533043777427642161437551065970484511871789758671833468956504143214862325227918240800235656862605285564511019130229080320386221934433355475091623459754315182222422201945495449142968532935369735700208318510582223126107806292842634038244590315313800283314953737735355711304681994956157952194369549951633757779569700551820462220795918308767161128452855569906678376194630551895887088249697794940450589022245738874731955547896909320051264779764721883707731954129045435380087458771731401925250403596527421682062081290337437204627333643652697057461799956464654835977564408271519763169094907194874825539308552442061833304970815564185968342727987313193004451467137145369327312619453460966669410924789634867496004641817816296637427082805043838230751635917024022527682990701651829352880811555307629103097886493901518888785011038910837501889181550962868933444402073077668525965625807458482292455737623491185543004357311882846578529160952537135329027106123374319291545601223492798275743606096559790882205392908632322565167098883466461346923543262243422753661502637179491516653171270725156993824685563213515049529166841541440041781821984377036624846693034014458863844896228355297291988240724593158891021000776480858322134737525201018085517104821214788395142156065194033485414410554835891317647070574939172800137225967013568076104278581204732458664570619727127852968126795432206681146231994626456846601227951210137569010354315334194235115475175080741671095893066145101295447031660219857246566878243510644750722548869598782311983174285297285782197759007785129898542442352520902381120588681750293757463231855616781952255804360018090257208629218304395499108564771535641589553680902642699898435483506020531275441281205731868766724403477268537347177427433923153711431078960436759905995090596063164850716117171538856753189418572714758824688260738166268016741194974094178840818431071130959336954847907877254220196528707055394011302287325974537717687204588241147051619994548987029289760157173563723388313767910649751037667022826977072039689945252658275742634256196836472988218632641033548609406693415039413929244435688998123110473169836505821244294699535685279687909045600549107530748816516188315962096838758343460691819420582684122965367666156735721814993978607442621028058118215338492361577461542955043756931607630419811066158183771057467374396622887584944454770041044153723035932866836552256108493388959114397390826073868940375774483997845850740550596683748816103462069114668437474917434880009926825922616516657382260221492894015112338554362142653556574328758925925013908798475530843792643522775256644101624236010910187194951695582820525528040802406322162609094318048728428259087298471271117719108173772761191737336732067831975370722470745372093250039033828648700768799777682332061148151514693101248315593329803925801473238980664603111323031826002067907769278235237962262681302680493540410554916471832882537082149939705157340729744243280002476610479476801162755435733172495201293256066844693234875764246138013772823887192037008589709361474390904079885151081481093810932804397485940183616957739131538809862407601112191634950172368029168331308304329552738684498807994926740062490802138402938950590087258177797063975154082177218775730708516016376974905461354947366764188991502147134065680476249465175761021666781731043978142592249047387450424053846002099088734259537572719985412436189092275593868040393553956391260020326628391085272131590705290622267031636164231413499401594381303655550498246144624623131590457723033548745468136967390457204571793886926762391931173531070585239614026127967733103573237606090107158293222641056564069992531309679071586198955764875877507210518923435459639077165769634042209010551450037124565829668308761843595141848163671523534671119047698421330764437057280955626069570372299055483473858480015562188088929783931561682685249042699079488112882998250823413478725065973736513089889865561996955943675540038996314701101170608754239148662802487742533814401512636347888053235663862261717418372483951339416701985348480363497835282827055021690105771369772624028011699111837072456718029910415216113913866552980127859638041489902984002486647118867656108113584947148861404810885260210733921466121388557075113261181056048191756433182495550247626693536696581802150443362524093437690009357619832384483557986271066236638237395298397649296445848790166922105100557972227193661747996929967089827745446424237648603118702185072770043250772265951473349576988337443578040458607266453780823313180774077220108275916339351629023456293982091869679563237601124027612333321027919490847173381378874013733309149779315004215764361675380899491470542111801316016103255105354723391009500247849504848430252030503261460686764399074906385886551906439957900589271572236931097442763576892277209120961336463974579517694653108894865728530113868631700710085575597581418849422825176653796524980337796219961801441439888646694838537574455625200794298910154862195290817606729196408842693458446680116853852018911251453601892680949709511453987919403006383498217341069806515593034822144751803661692780545660550182660323651617571766530095987112495598897517666315171871783966372016965668266228917903612683799798507262746712855740239161239318465289339714952380461235620304420792720297000831548021554453607921350165754430212177027138334366117788697360337850719893995308641808636476035590050595860177459751438822626554212441593435768091765872071949242401663008554910224850262155502098642923603199294185281433269826262049945770039839558326141687915541202910686867322983539742124785723144333360139125042762495949970317466451983338841174966059156124502226447696952989609591157841163887285279935168420863771585110757392787796330217106875898895054509390438983780950924733721856376739757601878564135070235004270946327290679815647853390460218969478394590989284780900237351022831773197995833819228682277992596880425305346058448767919268237704324834194458234490487191005342219502871003973515983127924146480200407728627156103119374648701529718575942604170681862189118418897098322323484846753476007373926716243854680307419846438405346901409298686531483111529051038286217098648899746947468261531214849777844123183624868992119174376739928048887078097422351668263854155571688326429737307143636253722191883289084276182233934102240620943827806425726488621108331515971547753290592217136002378434213411651533546772500958547084183312298968939371883875990202183362851674160745869929533066171375723882740755487513951251168381473797742239827941955485034209478810394521031510966272708169683328518749957971127473054417696989547477710907372568355289863509519686026199896453940941589537553893664531196754462756492753912552919458325978593349378180562517544014294702042302250370623831997544239849202020695147017869621959690467964786178618312553228690403450645245275710068226127845929309210585876458725851035270242653471283404391990916754818110515678682685313794317211055831307401225980235219328547828926177330919823633555504675385763674362082062873009072807675825984557447358528471990729033517372264716197447962737890479422290826195482010361696898703434738149763298212939557906489618388521881453234067796206296175691948011984604383128694532487082854278917338729729900088731760835751024291918536109357936089785503090492219361513797898233722520065521166363040920603630458317971053706275143152523638592841345654587625358976897302990352192757043501118138922521115654292265558259813138934005504344534555297740204599657709740603397290706028313606363727556198798058538606948187435329407029325019596452884055304631393643900849861839648046417242466538853157196434357583883095764949936064979795652947223965414063414045401772083242932074418832647376627421593642998188175548768156072067657986296557293646679453980872179795588452343075056462903961992926546721230235536264370543909634358742880554096961419583540201359551640595367292536801880274907436217280049936717584536900376544104017797627522937366026891197943536992022404835702245322886769754157248763656599753591102042405105187044751330996733248151030369885546924892271022009357633689070042117000661927145324668307636245696063101932496839151155752471214474991050842128440412514798705359776480755099457374836027622099925960318752389367970022619569680930920775092086523101997404477648338260959836709826610942844736114980463946735999791017376921301812792554308536205033743598336981126602611593016511515063551408291500163777460180391624017269950014379890508819568559816171576940160120505957717960529966827123247703575873037175838652908915985809416059534369300710232036548509506908152180403543493474546724455396493769939265606309671529214881885203312733241637784251091072659326144701148669339353543523716511800358430902193922351086407722387047165488239089840880812624106505055581559033993825082304886252422708728208632397469316753596236631852189336512516558933802634084596667584424152359781781929899163252987398742365327692163475517928505922510930498840459610314340610676092844285915078546394917915767901224769696509878754083526013418440967065008764390247079420318469459277344956370303113189201624472488796873913806511131422788380433622373169541050277186116830024464941060312015078787713854464569785197715598361660206021893461499912873652678635812137008426275812134429943730483760294778709887579272884189144681814680437057158719555799444118035514127465457510402921037049924176908292050391776754487173295973834241548706335966827599767684522361848560209115519760095066855902090142368906958239920232497116108713847384612119712556164637640567592733982225209229718074685667153224879397184230614304346576985009870693223579456519375920913889137028810338330866146258017695808451635963722927402562437842129901141871035516678042198673971855080494358011268247374296886246818604582574334801244567509920780861961273017748012468407744551346300676464571952380586685954163327247913082159776304033648360913982152577419380439049568638105791788845361598572805458935606314825100728212637027296107924176949607900343026422916648155906402017101805083830963701595971137558489746352658603706797212043909204852115676535581513838773139970852055403400876042276937902825844686166656926993113493476325676419344111405794496584927108904921839668096770240048082592675330165581335834200905589808308198879150779158303880219083538689314721861239937795263002315318077049708839474265828430943715984997394276843924372206639746468379172371160228105921977263577701952134573967671682326968215563443752946498560506025225143575624868338813534391154083651392351524678978925167940362669973496165326019884731578225960866641235715744711996895176761230974573496853835846103836476837998175768473499188833838236645619444598416110772792512009317429894784208055794383009166592729198607196958497082871128367354208071300323461444165144729611462631490655444280955001580146972079310043245136419162412227554706602485389575833345307361875754746924115312747197373021922893461855748444132083874790753340979677729595632401559676113328422269304020514615368524530775696610879945774384409314858212423778301262607926594410374459273111925192467494611597776535302843693001434740486850861042322170391203199638553958969145879715503141933355621547347208186227531266515998333235373987836475544099476894548761258470556567555338497551990249754035807030254794862527404973680446674238037161584839200265634288634326593612616159533560456146556791421376550860967033836158694844941744880050010134426434031911540615531510212713584684141311857083895402466383274584693168592966749861203066337038748402006502189081241091138540859672015533050570695494752633495633964659657547060464735164899034790039046146494208376160784364957233053668314742912344303506442474378365826147024155387471669322920490881882588842210368972107049067944944513804021549406641489193090323579946183015170098451925809798911138820069560554701827690607793446040161736005164439964699826003420704767406101086843232535853791917988925769427063003001884347676593318260820767988166975874624178821261610460603844867477233909922668036130110823733098541338532859670011657444797168251312459737596138987692975826022073609422027082569465365817834054809926821631145842226237007028204807674997714672737270354659917286391642427219737990321935730336400051902753177724864439746121281901078906299157368937312171457581252450362052262789969215526136091909206550235628669384886393831786068250656666772840486682653019592704331184936979330475425275770303350714475561184783604801506356785546969803948182218056635272853317517300955637317035133942942805393433933695628439762826690463537344913448625480939901627937603613833009666436267785088574133125404455907300825543214131772502595349128710980420973069037888371263790845569205410358608463694368044713484817446220152043640462110354488260600165947239734518353815347890371110704147102539064274891582216698632267186717199122064919528285129708677188315125639781190062676707416684602851428356982463388044352004450015600409197785124786261007019670898237857019581483320887270450884882550100322141995172436341371488648961674380247331457150341525980109399577654824246377430976337274156981159119415070771907640421450231364325773372893423536774836035099782019195827204595106089144474057052926471787709044463062015954135928146554111801016113777680025444898279675092614633612710684093373096679269829677556781163888083776020859546957719854021502301232083196382731701921750430967186882993064467620295720968340148915054330640217983893416681327519038878081996854976748863402763284606578045955673107367189834975826294832660918492404726717306235708173913303067821031003521813134436152847642902847674010824080124341698076941303515308367880024522215359361337159952305823203201938561499055473392173914071240552031662867458180291265626003525796480073398170619057561959856312931369340500826106902953522499645250577168162619237773952658367716968563827627338719727410015560498448815626937225164696471905606166772301970382411666632449687451009891739870267937434760004986136134349853774029762927869177467204135939970508183864361183630861360103341837548567373579886477398631733226724861214284546357111679485935056278542194356566987007691105454348624592671714036593387792614446701896342302939524153380228717584244997854842165263415469487888997904668786284727482828891718065301919068003126415480582608242310081516553907832617355765159580274926578099287814579620719948419122101409521734502144162143987264466857104067226077805069426671135911738556533121871209944371367594103651141721589379309196399612280864226048237171281233324835739948760442088273462303857017044416745158082270911022646085778683037141846516158640695090397740296709069014421643852627900923444309460612177760623147168640152240015425226409096277303736821995802951131643283198558153429443837245303749360492609528436491665157526816856232659657726532425843827264694315902540987329191241584217423443591256043681885028861445793414267385914553065726151427411176407209260673829353719309797244558970026741879865417389547408908388934639363494407660468336680534766488303172416418303450935315115412846209004058844240541593907323838118760819831470732276666847110284803302269847109882066044982553227267698676490543098288066758196277450472222418905281603006630349306990284712918535901839116742312025304683966989031853520866636516881063524224786944846001245685788062460992443843440753635099317552185097650211232141761541574934501915477175864311208846135571611796207043531872573203234971097504697311252038329554877404131466490811511662909054742543606456617578577062250818669041556669616561056546745883758660837422861174763870322145862088481381850952055684694576519503455479679315182938977955638964345300233823057550086330134838062995327400392127326664395550000743911475255536892107935743611174066930306611779503342283564612390717060198867814572447478932121708730508710790564955844699056190707887169255699485301851349254571833864664232146375484996973087106868823619588786052280246811920357566630323467612091422489435564157259813366987550061827972661965007995702259613739438125524989905948356990672432151116871860856777767480889370671506502900965632194163403114467079014164225487516760388059291964487055580603277076704633658209592595244695743105787326875285945952927604109765548692653191879053268084846477255465030087449736513598689413108649473014010318978269749684752177252642580392044569234510506859039830812497062351234396545801135316838415113808884735873313857857793726188793295772941656572126354092967476595036611075385341937175830306363770095328101702284463930051286109462025717083319905990975856779069740939321419884348464484177211318898723454104619143993463997884300071938432055366885351501137100258702849514034063263593475420003906088286953047909917290193453088395153263728123019625514209047580739882338649532862017311173174856920605581634568899353215006705322661399114887570772130787055789372314034831019963053777541769780639894723973117145178247664942133599725257085227577690853934673678970229493565289016368458046913569780070595691510454780379817513431307159268898817000097874899146269494866881055607141283986831372086059148747478495943574441583541385230028571292249461793326241082564847110089827806402753521061653352841492690545471910349957713715901317969787710207382373853010334689624515213795341882054140581696140967992662703212995298624043679959268337010461297421868856883236216571697927543963101839187818772593631062302710216333057863656045190426770879902226143932250897654315701827511849817471853983227799879086719055718103544711706646208296985947418302974173464912282812925634455135129607277495485874409621797509192114667798295602971585630495030528251510487769202378869560798771196298682880684840830657474575028729697935228075813668834691382347393194822495378890008247533490058486453852093700868685577279789564363803151837374760491338369876956255053698472500116652259587697064329153838526588421455780002838776645864252267723592928246933067319402864062484427509213269191930040310640664251006051580185562658530848622000066048831318458349365506491326155053550970215805103842960298646983873952085221584696659133353496659892874991238092978761324502730264598091721951783473039813117604335499067748946818978656840973607585876080533631128230456665169094098225784487740111410984257286483549592936016727921350100132240006587360289963988996429104484054797211635659574883264687325483268435514009741605878253548703339407027284061456625540938917750863867491874081599242719827931764885527749452492305710618956122418425479524600313665421467005084577023491926686974653907685835619616552301470851671618342101464684860708724799610001401324070028301105512318439021579700226474294776937257088140880859491783147323182454308629852256628081092046003539310746403705240895607358560105607833364671708659245853101600700395311245546621291365076088575026962345431082604520573663019325299899052128282323600721696225897288696226372883674028958367605340372643279653183051151523072489121007630734312398816867649787342388780585095902552051279544519056295719329218796948596486391128096247418161660961336438770539975799016720481661753903704921642726653719720792971238758555521218554387714870057254518105818125247829135188282017300914029269747095628121026143999457726943054581786646391605060367277326893335495495040328136569725593560242793101751425928811565879296871732971557627881658156961403407556847921325872205328587150675985406030341767171867502415680389662868174521962843330583126853770648539167479929855005833589706011283649185645639596857463709260752654472286920174895909323773327490015747845181561314630095973591450609823210804058118841244558306729211435650546796478547464261955093269300044459942700722943838377604777454200374293002979662190077362764738381483852256902324477417001720098377768403834572826207006968164852428518267895758080419318630423616138904753308838150856166444413559870180060476151021824185589830744236780381988374459664915393371611652268638581926886373150901966121352732097901468412215071441320965565420588459882114642822641088074417122984380338652464062843066402001153098582389527325186891219275659525792899696683290045038438661208082313484858662333592177479186810942589438225914425158886913452876325450155004994183037012121428182039109589074191174677654376195524119133889684197454528012657154061826754050808798315769489333100025726099015734090463948685196841425232352731218650113805052962557454169466000279972124499359109779709092331521678510029673867608874546888150723304121319289543776266621759939143560084848107286657112339959655381013888700080537972115037357043340736290847150933828768508500996475403047619659599531097501779801797671281813803104618062877271497548612206358521329081142151137839849532484787132163066520782467083479689674974147017998776327185468519033819798244745661664802293705374760829047010787247262434338725473749802743543212941820003586306960153926268139873857037888637713018389675354317471919024045520840140759180364547455011646649306203222445986397856559666901903566880381985552727496778108580344472099683462104646964664242698774014743797049102868419294087404101578097753496461573407083970838033339589883623467228201396129039747580052196052846543461027475425863217842246046023261425505268039666586684827498054050359435171817928388486044311183036663527727348444141240613297942803845907263760138906196219311002141807893185652789036715263703900579403658973521140224825273292421491852859808903843167515220896886296098809137147718101915733191467772359227640308512915921728453375970384737220071200063826103836277528183524749732019156321684018882781534554266274349338564555339216506373281128160711401781893033268025317212559654016746168620331577871562668064332391352912107029137023967245267805837359290169135368975957027146085668944161663794489778764769268461306668057038394214128960087856894722806597077793936016765339587161969910717687389819477963587359257277001039024924962476967367738517647774360964334111032431690402242862304450201948678909576456560607792156725866443544611338267472090438496138588578615290403913367802947687178561862354621750782383070357130290632181271206167069546999935948834092665752390950949834027461911210528873722403984770579865707528808896019951602826546927119747298280587920901905741014335876525874735789041095287064975321856377640333984011380223414787956843562833985592131675531108129080000229223367704952135737156666324363073466379651609456558325907781260188477497015797489713267789759578271011057815578226794593378638881870872047374175679959397279866939723395658372343294758623363626694292054354674062501300319364773158929783431963971661853231822277031400656781727931805686898170876728494071165900011689243285840647788387713341803976171979317612075867155150470606061310954897927764064507597757708801498278272974805669858596354660240661473447715105031943170319432111570850820642610042501045886965626724716165736183859480044980917958060459140194095615291145098620193047983164166087178665244317813626030082048094551853972050547049713193910962922899000577115305909734049838088192719117796705408923931156180298369328902913975608162420426044828326277781407089957313026924618767868883225478836566884780679822432437405627910620100147487902932484914383166954754294823426698666460636963013871806833149336977815876070361284118816464795025942210502741456912549024003731866301202594796835620032962351282353288260417403068501801473664623916500781181653645598661623252460050508654880886163727195784451877662377288334725640831798026774775973410632800995262866819619508340076407535210374161073274071771273502888283825719993711797578032295633797509297699876978697307744942497632580062679031896831885501806083088990706962477079549414581438383065921369602019284501744015738483472495020934453205062071990307989221187440999465448113311210999618340539764911524744611625244567588779922096768863252249476729498441220829171309045661569140757538882062801647100263384007455729680937830894194732377196866880316811708235961915429978508334539478453015085253679885698907111299086089789806870893938780626196382109782142777626165030127763376574170962629314285464663715673781905940563121372639143209097790956202127067115657089078333710335021352742504747997199933597129355772561974643532653777202674162950537933111488960846391467907270580040243473835748731015386652919252530673754210502852324231336501604987562192112494590622415424141492265593728919202273380960841585126047905524022515352804901878279511192264717259875516105454424726310829571132978625022474513422094563806008737496592187198089997796836655878490059856685173555357307723846908176152789239246669705780770698729362404537772242949376655208362073086922148553753902655871237164269089785063496395237406951313946351886342555419854708858536653679110406511279693706418843280000817952940090227826638812175618538067667021891257141253906677673425142958343011018748656210675833346297672797084870570033897424661163818951795849827434825369260452288529313560338269527294176691299646157928004737544585382473363496497482123008653165714707148386501349676413153197316927013870477207095998063411248723829249004752902182397238819898744466074703144207844113113612277679842714237010313089355183522029042016955632471077907557594643505901209716555135633164120593872907543076021720499937533577518194684950620718870282739850806948960127769099112660037466148820922341052826624914283255599399829581578845017298171186120536574316150702033988291227455539664790068297725391676132059188803067108590688889111665625759189658741540342113432174440252602999387942084311082813075177416464097571189146716716236057575564257359900799765954432629000929293247887034582581119671916295121600083953296608220552147929489157594272401236127187181997020413938618427517270694102362403636059211970984130682284541506309952976428651695490213157503956483707405794830052778366197693769333709962059623070413220819001246952899949516225050818164048106252811876493092184935622569748660723773650370453688213875286154228359763345059089185547313019510038455475777917341017010698170049122596250426040915718899339969780831474451476329256144854419012050618772950240342938454599392541775132847547558204767460079757128284655241089268062131649790425788015442406343131452772524698253305466775475052845279724299415856014289323360799018126859612954937711992785489848527441630625594795428570069359151606365877542342021575489127959428988033490080650598575595405418436052896758051182214638644676212920239194414959787326871924300355288841930097324701160492253250557551181127121375226687793807141487816642081703973319804967168524292348129083692771570007419465280340950459033014313653054942038848511966253579041894700436191728686363951582533035903275158431159818037373740206855010178989118776047176812776882033669957809752382232663532073249994921881152635611639160663088262856472023570611481041858356108973203886389245427701875550588085288329075975588015801194901553881664710164902538349573574471789199680798211187821302658317992369141178435477575675467764268543028329635763123380178082104207516300390633518115120072440351716654900497564503613700080829076079226565803536312354655392861420412573107804349505627567524783720816535599301761557993781450290133186767192392110245830655532286194200027140945608029306078418003892542689069503675540797546183013249347140037370848264626774355230602753968940957266854751755616124275917314103105406737734398348146573221478773320351514913591025620189783427461436741002382629490072688232454202623685194046602823029954088107205024988991730561719139204265383283374503044361401723555991411621458893286079051713934016990091467651166348557597585281231767117727512421105636043115321500446999342474706448112046066169084763658336493773095533276651569677138972106282258851437678281933968260296965928206561480516710537266696683529654378807108581500343409376003127892195439114581243645078312284911949777014618654799183220380919782221613079311078771190766268144464731286579854237304807238124216532457517032966191394082486760370717588949538420918386896816763459755002605582354596797125158815641753697350400575280982997495706733357987200663149701284241402492440129740003019260078292943030818413918631546603816492431832909950276154115529967034062336972991951698942247489950518668749134774050691602845879479499382377863521184632926471541195012346142905257544644839140031906207265537214687701647567132403088997255126738306827920893722703615762011977618484260862003617434735974370279795589542422389873200333833606412601632255201954113908853465326188187647921661020862495303493879797091549406178687552369718998453062287239778749193655893455087781285390077128565979369362149989072619117203110359453056611394783405084799047380787926808159739174838275733893191653056137584547856498996045336665149183520045111576086713577619183047758913005992915794358058121518563446873200757306243490271215438945095510244291097695038860862432375585786692568820626612084256286673577958039591506302444547124970940521354407738555820639836889958845298551872268459644098862756220299203484252713865313505904888157033102818268230765836354120258865470924327089215974120819256082163849880958871193859599917394236615822817944965222568572347542415608683052026003928278240256807557775050926970324892411230527236276695708595721389987686689795502193898626406430132784839509740185096706566273239890503696213826260306583410238685478801389516735722257990052171865401263744894946893308211303378191320158318623564594501611805627303010302457210496792702420925033371832074937226750381270396233573524551680195200858719923942780174311885683232593162726566072876533010889606314598137382711300008195844969903049255996896631594196442348067035215547934531434862451671053962883687105686887294495243581560151369842534021218802037236483079772635848411910348296696695136181815906300538625433876445755154104718964438774602257290456688628572214313890265336961543158648078984520176893895294887981596997358485158620385379450404051375398273644334985324312010536300440432623268385391024384579759321887952308319870717075472424594471766724432172471990207795482382500671175713455276449163220078998747748358366814115119206585165168421954303407154632006224593447818978866149546028720517420363225361073043316333190194488197842014841135270290248721036675483895207526782446281239426724352195195984486087209200143499924147135605359931753073516191524093324397629464136439656867557628217007932833846402345356130625000123028084764043520087166328157760760535008434051854289685041550940878736324406981519996645839266161178848857559343485338628967738140003164595096353108865142422573107588866590917089176334685391657861743067022652083813311723726744498372360994732126226714605894775437863255352371129058740634178601558858119915324922033218098034497372233553337184575631624826753959772286300001773003869739367254254175008228123311988748591481484932664714428760515152412982192055658307858882806293655596194225233418513335156428710903314167625897688262074954930141830658075258948534025349208262228681554234482937233642764045725023934660635467593026869502643481787898215071035875046193026917475388577752193130849487137848018525275940705612424868262916888901453715178959984315886932169854370323020999817419283533336598961820456955127550319511809038464100891978661620934008514079794004063137327028838361375851673138515056131927412085235000657208774427785464025608228758271836367442658248666085878590448486702052658710747268135919901953259750155675742210530815626986969970416249363063375946436313808136347365658011496882237133375546676825338231340062732087525201259958236033403640826580469170548045556586264115260314104186329459698818406477130498773271460065084672969528456147032358105595238306624608608081041260286286636410351091854061456251271621433658026632073954328523609298938774067611653573975893479796225066012502205837353534406545351496310673333027826507903558724751071233122174937036451635196046283726320775617411034977487016571350649788660253709057642809100379335557120994890951309449762398609934443951309183197334117320894879453014681412992164016363002170483370776070124823742585507491961923373454079224017785616772716164506352636235438013627364873416746210582562458225713324809453807641574773725104272703436101322484621096733774395323962966083150799576755070555145715560857829102738159881291791125488573811661521118364523101173642638046289285276896367310256472837942038672528715566372892741002736447132694379963615959402083334079244272928121699472452658548882291855722327227247927333649380352953039821384928234337299169169102201857450695348324672728573690712318869048924518836110395068885823963003351749598831549124267506868326854812346059046350418260582594215131590595734377301365005836335480540359109913349845177705507163691349879782561153096384406721452975094864457293021010350859627512557527068189124437048166711669515929915874923912876148049573329390836886477456444976057503646189892458571570932858409753203733235474450508284933276601329058140626303190949146083767576635079119008644594704740295322946882690232908256058534130712917235903243793164803037463678789436050700999145627934254922495268993561130968603372342163613292660455002531866264083593788434949421612520834773646740552992018757183645037157829194240767302704377756474978356357198809933606838835276938104565469010027395883961258131411550890480951450316027018757886157494970889680227770118255042710391563235937838711096382569213878486045751323310474544657896966986066690076032933089580453411107316372280210706700731721368974087495126017616591328013963802323158471566168405253468063578664089344651850802641872471496104704798737745580368735934529333541949935774495486698105526414515943829232887255461709951629176841846884703059575687264268498402696898726150600786873854717459089736317641915609139364205062857829389699691759562786355256334714437315810280689579890235712054611344165451668407761297698072752451901054080659439100106836133056283734466452820499180914636251662646998303932298225800569243154114273239962297611676172900151792733723449378595726939397299177467811380647180951500651596592884143882487845145661886122447464489950358833113874314668408905152195469097287116040497799940561259639246012564537490021147103030912083041095198027689927818112447661527748492444148679063246633958419278124605276474396306687879407509765372805752830139012435196195849610872153880235283145136303483739953947349864652756058578938609872019656786694575203029192886971954876832751867896456721311056639821616435916536776502378398455329801722730062653539328109595068896382226584764339278031361010094757948849314679721024065612422222720216474277549786857984446650879243305715493047868646232097178045596680714842879818495959955644274111990139005755135381816718972558637113749710765149836734442439170885418583266478597300622651997986952714687604303205352417735538505881323149703830902035796815074567278718617616467380748713525097423232899395329972453668227435641275804932425716352821737541361273140119878194465445172681979084208188174088806858179111055843136947831058937155934204614338150170013727948690107909761159835743411835011084054475143245573094943001500369650226849779119738842966275734420934596034310335443273703375001916241786220074733387147688428500978335559860344197426251853749886074804174281209924259024283452536013858108340107142337103332150814200903474003090013733265998379331386741370477626092019967767101129651350190471592458468235462476875933093152623437971454819680545306900644791329358499115938894051106559818015715207369852325140144019491566298185087976152771144964331483262059191141652128794013369426791081618295276772670936320995255808813497202847082140947988699292775806227169207808462295544221539603317974758947045937376891618609745372096401323847856029433461745103276824924383037577327025350132365018428857908757058488066424305281744759846049494849182497642616010276394556811209404243660752718035951256715980151864623969688547081676774210368777830500344901040241159968880515938562995851631957518236177247098423157935972459576889028588370781815611876032725469960541485926864110400106123683512901162994607772386735907587794392530956765590099965885080970484044220625890559948228703647873487196058478408819230272063476360242741929919553113726677372910817245479647052788958006680635482647399337078963287586437319423838945447906571206136831328413278971232451722743429547066611758049678162976170654994432587519672740012952847399023589152188027132509125880608861970262803497113885972085032521447037464486463311754976966152938150644297731992958613687907939179287642395825775604594520820737853965910402244376777238929932093237588007009623368567652470614246511630526820300994832342471020298835426294945013800983678953694846868163319114356585167582496996578580923568325704422427963136661056912687875810903229286326976030801008721152386893361579560473130713002742052620770053047004946629187283542121999152444105714821540676051386054591881741657820333483285052714594650308630001524816247392407869242218266990835709206817177216927206967923325544190986187156390748822721085119728524212022555737371686456579261308020784522564348895519741507216730480800544092229820334167863055040962875924414731634906777675917817096770126151151476139336696987066120953961906457835276139875084207589990369141752216479900108243492560480880194511512018936053359222675080883048173281553725996702680674473270210066413347801959407593138053164563805827710676460611432835574994257794123662584021086289773545767536963446025552402059300348397743596930162792871570962036308063675709689168664985847572719218841770774338274688794865909861076664680003558761771666731235950374665863388386516715081291270714360547718515972225576023708064500818452986020548996806415168753058882276445182500955933611720461729582378354890476071995416566882996558828628592473838522985376681523476208189627543652528223336605776389576366516823328471957338149269678715447652109327045264336296958844672802067172946035205209913409274870727834377882728350251366788651191606239156804321419582763613507050228864247625868957297719934278915278034761530064679061048539476700498737595059068688178173277852262741462324227751371944399046040226943901408880483259753775731953743206498551784396702543548758157801945562686407623588230791281925186662937182733440238229386694756066699667648146508643416199857038743547708092134819931438684943503825528668456694481400815496116472027865435973900281790065033468853984545345308041984263200245540482649119789948268523609534665569315385601515582091750980191040956135989688190694019880370149895986319868034526493676821811513433076807335777160543368965790501083637799381845371915265385711930167774088659739146646864811920761794661949836380995980959818614320290579476954527705176562722470197786990732121052550304489368497767821295631098489686260375132297336532770202142524033106547977852800505149894641019683756581920523807997710354662176807965097307946125448238579162901814873823100821935700325058585958394025883195981564903195425509032378543710181100914695475212801947622602892374941418213004755617067251609438877934243445403453053028474764913658509658423210386761998263109800897857639368436883890841595151767130871246746790576526533747488646748751152722062781454333889664914828258037132149856898431868124028698432262239637167260678846119562122517851590816291905668939215630471692302623332179797239048816267167769442739794399356004347488954518537426386688564879588548246850535697024039699457490595385657966797200411879532928698119715619604417924852568365805387380134463128004002367487186341209602396669783663381410379901896649598186498686393179204687002292482716912169107965390470269773158267669968353233031965921320353647611263072180949367864190281959088249867781683700912097501137359964605038220749660849668065834096652302364008387902859017388811241487755107829561326109439737409050836647110438589490791726250056203785680628458311775460178015927680652160386157037785847652585444927626116413098098738645466835513301322673498365536271631470470337884798738525169031668439923635054083726580680881634860468266383241034087413218178283958558396226707402682519097838423543709954560533700181581123939184802140162798301974325402605784647291245913594157109507671777618919464856385501846791290361349107463191339624263142683383091584971816450826551910540504370169155417456572638060548848219222713351745304859118112722635793628254828841735993312562221444995508494959061106074700132757304070234018803059173775100795419652133147470818750268996629199687557703110531622602492577529520556316667059054907345677400757602494711566425582747303007384394094608670748963503779203486082220412407508828077081988930241257102767014715136082327670971452464916978132467556234380101890621230219299216361265266221153961190759012388777449790432593433064008084469784823793683043250534436071225114679460684472061427196231742112168191065627572366188422641687516050443652551757539847448669373291426845611325745207949773407288522934401940653344120684980822092068795337181835400050941484721201657076975946461892286649465860286871544670850325772011102111122370731443699541562754055156281617018733714896084066825499846899891759716596427450507521175043245016251078440013544908298115511723194869014152694881301324137391229036713660932395154163767743592170764245469037469978526902286029738635613031715065411577126283833148756950756459385119846453643435911337768924446579329709350639467407920932680372225614036861247422159702858245004682680698368208205170232130750583906394544128204566394915325122836430862316118065083479466769335292206992488536130279275447659872849725642733832071632544498396587256875487689396011240827192469426805954373527134298710113986221424393411975687491413647727475702869000138631505643576706491122208673861452512354576222819002825205536441583094988728152445302100880258488849353177660371521614963004766661788977154881232498725361178204697278518324187764983401888723762227534477086992208016077975211774510307118920283052487503194581074547926575921091377694566839967502705443901122493180817373212659976721875842132788563198785348370016515462137478656646688534420084300756938534010315898834295778317221202173406385386507622389334491345665583564485448791229113335978196205496307932905217220686338462154766109324791480060042906392683405305862444983004523644496966546472969711261545683593451649069440753101878434928495679339568161144873766078904837633465514621313360948041617831114509264572916053311690085381161109421411444470154935622807205188701715382714641733593533993700380269939655759089222373117058464985604491967828711438002025818910252985831196576315935338938699337933332270403485478033661400934393449707762569340572140884942796599746742818930904069740872644029610949318961249335964427291768566943177393939344094348372750296505029631550026913834495974170758115220667631561720201280454062223967573712941616802117382928940662640616389579314383244482129529465140512120934272459547634980034254456088657950542598748458515569487592630194651291927416469545714337287061270344470260016041443460959024469352386968968135376271147879063060829003906859963304427874004506679325382282047369141433887573309634845901216983105238372378383274776127009109799939596106110407933783349182878462994927528930363832309077552651406085948792321493625216324419678977051252518054996610883880597720798657537984575987241626986502899781681425077204155710740322703672625787311995745706184727133937346382722836064831220062124798216830668307846059716099310960419000914058254689447048588107759237885794141608805132577181217574763922545810429236922996739942763911141376182612072182240977110202798216225287420355773499957161431043073013324692180784869440757840617704106878266127767187207478552263798697491605177909898980261507810535004024580089708633465196931794870468121668071370372831360892344366829334396889283397247401589205385006727907882667316442141250099898272879833288953687935528582552624155376429395686820977055539968832166010458355392084605704853813957184215807461140562050853654308777036986579071453165788486691829776851362478968562478416124866672815435540753081104931316275226707090434540998375239472115589907120325065111332949526174797387615929974240779100042531812675779708502795890323210453989910967973586533353170845419387350543240820468954033824049408805079110232757329277811388160166322441541785243505753347797721689271765086623786058914481772885333492732688999124213914923030906749910535002522310499600684998628115053960238746388216043667088019009425844236508210104945114575837915194550711683364582855149416741102903680310869717453467551443746866011302497328523693679667456568328275278498832768628623748187467094832058122051629144156969243264547795819064322013663602508338338603854568657804628614265275066617454871654214188478489147086266724917550286426805120958594807432724985591758514181522993200507221196974938516387910790279592176996393089649047313677796275245583617152552697145046542484071980285373707517757636863497452669170968626832522998667141166855276046738447364194464319662635455525116091271213401676824774824133148390931025958154433921565789561421552321633400038703973265168523934327445390118218701739458774409758733662754996311092647344489271641532357765840056805136144234730477028664402276585614509933799701909028985534508807689757339295042049689543245880351944219304968302883255586368249056635697508927855726058392537772263992238295455872082559734648661366322393414407082964107635573687406778998666976426119143719034210575021913217239342156920218981447671985803123630854484998735927722885522379218407225459252774305546650828064740551073269225266313440877488291769052547485712778905171229279470322989691248882547040193257243864231237532631426241940614959415805598753358862929379307806000465905322504735583974527954769741298514714344752556939643278789595238745441174225331036223269547579148763783972668059983562541520290009460824806925748085527192517613858467448675765146257767193568897065568202078877977905083549805626122986250204511629471546695078678751014230464527124907536478727704061796878665406988557409223911533470471042900338917507464416198670553269196550637726426234379206112946359008689841807845814404011787595136692402460962338752787570821535791873936958657900619588414521095330349185502073203974581647969500941551220193564183277107651445959583378545869380787857956751113891801115464500977594399047311291255231334509584978624823018327138650750868336772704375009122969991997505113808429562382288830042422699325293294949885318210863273486712894356943044880049785441354860192206070643184936980375731716139324514913302282648710866742071586527696116579253751378628922487249351205002005619255307679796539040852433269842165043137921486887495494932635437499701384970066788121571899497857958481383388428294050160979630143482507601626926623655749001140114852151206510538161093420995447565712333067030154631818023552009626014205413165141063706146678629771351022180641480946193219424319340148661042750345249116798974804695039832628232152462218551709581479745124285238428962889002961891442930439751993879277911616711051130011476123672026265407812521650279327626984731843876765092084538234265625733196908667162700113501855313292768363171701505650799394751624643124321829596920735846583188278695592871359300478353169103259638308692148585761233119375015061303887004812163999825290519946073000107845604108684122989315929103735252696301627882386786832090788744407595651836316918315612977851581473639600627042698251588279352639886829269709556040589375667269266728341750667441679593129462250235118569995735555293829597969538793121417350320368428909290497311285597565094270034041312485212799273336132032252455322652815957490743489229413300202952879152292523858576978549976287180136006509720719246772189848207420588127982523782673022721478160737257782719357812512331791634014292069446341839618187877588012320999996106462649737112730454275297881375668810920220098554231390940215433958197637486395564888909195253850979998896441824834454260932029533952453384400086332699058412850536175345460687363022394993287006838080134239237833563833159661090565849880166472054586442237644345470484920704447310880417244774161992198442594547945743633689710744095670215331080350745858827853222501657634570132618617205496812297453228438590921354736292487969915862769080606727519024787108366579413088929646269837612431543315596775385041516321288460017428530498330037948126893753941709055228986584016602251760265307996656861459224534026125833135494313054309039756847102747062578914924368824619687953117785824324520544848994333431042500180357312447036804447940007448475953508425886047907822960804661535068624203547839889171883293067978595208408784171451234495715836779203789646568642798709392571293207931317680561715243699263292442668428605649843642509241307551877174570560687418778843581996585783896788093748331911803022106557257139013148901679388155995293466887171800612043431843039506492240569563305706379616917117404139109041767414284642524801478220181627178593329648778805900623356791699275892394284134959040276217174004249729851575184233301117161542236770974188804154631045608943810120205803918750964472792568293153829721725253922943204162369487318820727306688367367798014790660708550873652533464014028247865777082787966649014766580321737168103273741700814044098354838993146230927680259412321442356547973383325290919318459511757140440552911619378312899890640083304506037019618058612729244219908127296846886809565754736654659702200038532543096626252798159481369117856431580268807990360884207226844332243067216169704689869889832891205437984069118171183632786446039358278100704410169932951342821742081722292209916801084342876871472365517292511606324233946815219030280605644024613050476174786884867161561760539924886260157147107885986487376426958457549808547192791716881927628401459290840403916602354542864129846666222538030462084748875856341088233926496776452431941797554228934953790295221235644020007156951164263961894146556909790469778851614901251218176638994822685911601479712241239114626780958548343610767822491228238530882086994646484571924882978629400257896660733893512723704042208277182864770626086322792145058995576344260778777037542410108214978699876585910125242570168274669713241828475532173955238085742056839103343754466180064612297162236147179783427833576173111933678057643347970655856373488333594707750470978625108600074318149676175564008816531296458683791316212014644857027008309063062129749187039047048810990801169431881943131441528239151788695509301931337187086407593450124128655376922346845698747768366216507708688146429783286129014843900763049176537251548927418429988961859954383401134215359272230671057147835015402430275921567374517721479192709629102759641967122946851050289291211017580554014096416540479713797414853588734097274720087142740212037466812572431471776227500334199525895690219616984116563159319794468378006919809558944705172467092552703781838518528885514377236001278974250797915108944090512521693568916267752374248372780329354721173267639399972229635781980149785691147330446691579736747483485199048824608201764814622464535292622819858816284984292636831204053975430829051807856553119701030763567313980664936317198873081817960994108953438565696893374264626676385730953351512938556652154453584900268995580738927085729509904505075687648296550638098734499120840832841488219145037365737972623708174952603969492695764831135120981956459338119405918933542566872440398442552888675361773911098201337684431030287423904507316525913301373002155490414011774610550095008535523729243776046516930737272278701538400146259920210547099157653605588385358179497737264199773657326909168514297618407822718344183992866740643269774010024183337583883946874288367570271817190721581468520698342711023793980806843104930093097763809644186409754456309014786658511275878770593976201537294037876389073694756665982721369505932473337036994455999932571588033009930231945722226847827328729257892873174681892803397974847763186802038950378553663872512515230712300438866263706834254949213344741174791548039041275548770642387657850956084499545831848834076867563578483669999752657979107034561060293820805662073936559017780578897434177173303343951549677553660412973275663859229960384552892244577948838176357087475619345101274429661503749530903300727530990684041584931899534353995927304909341767442318294053518125952020250369419159780587168234268393593011762171993389164961287475904297030714431243017974262810205416468633701539836980947051728396655226315968367921948749657917766989911267613506835318030607597554139652973413150013819404973566496822758050650539198739146786330691226032105036660953934309741787253586444681137998956286179848717227942216046129284082807118529791447620807837670145388768985640366166715727553177185556755099384416814858244329245879116476606847501806656034235318514895155599931438767322090649957197936304130864825133684409249417556203341618979384426597907568470448265609534130392971549729556933148912651786371347173157822646563515667545650343503022026993296926635225750393845049502439456440104412408073750063735220323906131472561306859837667744145137845573045458666439073919212512038908504105182251034671579489031092849055021698232140330801130934054496637147964810193889622348773167554142697100973576961942099145804515803952334372212123451525010865123896866847194890398713910387628286712748106630675846884748275295726877341964862880964875612901225711462276982585905884081596151904560292307147963150747508682240094536516916243869874412022837857247911763094951351507638564741870509272930813128552680336207103621584479687040756474223763515543321566601850456346324309655723071112231298934878033918141834357021924492351059587313786479503889078750851189000707224901692717330017332708048858239791353520247274459204818333181073385567890639375433851828313656122313892307617611770494080893407332585246135671976032373972986101667235672179448903653294772723156563932594069471415353016746396452216114017556212790626439052654611759162043190196218172009467043968038480789262131895594512648159902193817310341264609075763939543958311007597788002735458632230244714618837056978420760484457583569677345641380399486760940374214475301218862681949047774178495840116300684871425384149425106874114782891278550918387546016374806366075682510252587468713980623894304975340429094439001474908617369901438541396910792488572136846036044274107470501740488261483778961234518931444809569586159441507357274085013628717908822769551437436623240307766252466956073021143008127560020821156164934849940121901141125481107319739551851029515467693733624582700860439171947201109020458765212197007264290329252022380921657829166366841076290878532401565300936312164307008772609242450937513417812731579351170750983337253473642199070509870216632031372904423648306364788665486805045257686767183467405755431315763324627740801819625770174595976838047914194730608367695550302154294530413226955179391772007499546785360922505893436141512619022725293539114103727523101126362508742469245402107545894053711849502117021113187772829185717814415667260824364684875469424429228307828299583775728651644853301586409309557810264790158664859543941080793513263866464703035099071807563438926582630977566031785952519903405369618765553066423954669195433058947162435794157091595149334971030070120611445994140032430813694334149712193183983204432486819857134969728904087241183279195890084339897031452309918749127405321596574089909627523772791715919517696707045608325403563756730892382417047079466045950246613458479075969447208897137222720459638202261741665318219311978602091854217887624097187311905463201540154743458460988165039365710898608439743846783866050650882257840838136783765522264756975146103176410058193392003914318599291157098075330933299306544962729851701444760005986183892812879226014315477044663716463516999399157773586578675245557308648066573886145183659473582523006988921360476875921607963423073841765962752851927462960853207166165760724088992447243944274933232087901723735358388898566000869988726992912481484350631439896892640709826585208983908759498843503719133197922793153124667742392314099466492193377154623651399503372003796912477443266497088254676803925461423964222582441105292763590035196547035454313783045133434456682668456776262323258926526135717500884621278905911054783201131703989759457393014418202181631576936843477653191719213893010801737143384996870185359656434117989845948012003121064956969808615300212299513763810801518160546719216796596985656946739193904090379272815425068628591449685096628020216915015668790502815555667011666263928172818236972892983909653115938139660527075899932848022589865169496578464233766553512338936650893033821576943440328217071889020498969138523628604992121168808439943602558359707260538623707299946734138457916066101326877452836238582996095042113106876959006422728439797484549084400053314813564971679529249699595119331359804183935364465853493916975242546954106235659137053786661543596739651385233973378493056825057764337023400511590678923535655725545476534203778547408294347929290153752371345164393420222195685826749022906989460444441603503784838835550687471044852836953440633189559098752489645758476175031829568890820730773774726933860397078499146145655363152172700489756722955848566954026956738306179545825068573849848067464514135444510580928097735009075104066995687038841700827817496608738423607471099662930328296875769643507510703134540375347485608058679591754755742021589953300716902048682558796538593988899800693121020090336792397756868475822933181310086637450604249591342649478457598723881413664584460143413724721564093950742153630991523599482414511605600211657202254161418509706038008606629783797273935198807956976011588062652561668934905672384108814997699447016400612438331100424639885208611345595876568426874661910643845149697190356061991886117116007093484079200326155336441201196187206024184944281263607309561255004422925221940696318677598129256775206087802186880805904100848037447673041507502731062487730453253203304876282389963435824340101008223599567131986619736111711708292457859700611859479068734678212174466539977016680305194232845176410583764290615792104419599435258113150099049298565610817240043989098789561691325888832088824006871329269395577771363866112973252247775330287106957983259445085940514987367433797035402107189693000790780103585798312177233537622116507748626599850934364113279128982695238935966208310490171366288876284538489192273624462189168986072883692496536790451721190842317936022553400795991429278939300569631637870898369054329708489536792062796091868353729137554057181437224828807188346657717615270368826100371054510519718355388067824335548706910675955849442486921291660292249933105668715738047048908304340530234204530781059379489341188683963848735324770865060225287936096066040335829396402325782206060449650433887794689641596767711234081775997395312574310248248823862184741044547962864777697512354088061433142431809113821608330555539917425906775545016103128847746978950210755042919608808176766827341209453530261476012630022393400830097521788567755466342741760008109938179398155189092944695554696603348444639500949454241235725320090181248172686600027092826979629599287437411134283068298076516905450621341141896779531666765749029188884148686942216542763992741985969419567126884766267834906759756771779460157757676875784609108917162806801261845006857009398241829554169901938221829637312383343824567800149798970234012915300601537353464407616645859132555136876424674880653291336176654857338930445646575329332420850200438256798743961272278751518279149016492822722610205271470357271713638518650354100370059801268863912797566608098197797308921379265519274963164505175982967165602138640821887925060901406868022319945522476973315511710911350087338294337017091323185894406629443807152727734009749620232695559865596160728636119491472921095213816127507793566128905407133509876802886591899740750881233876637250520665427419968806822075836154026626680671143453560889932228131636060619499882734928321800170461543449395829723322605547657890401473637913727824320304780052008128877923032168245521086513084953495573464966953704478695049991756482143055151302690970809176442609492319656874860022442556029224601412922174679203144558395776019423879217401024840388687311269447460277264000853679047494642007719907745414074223051925578809059650205372488447229256947942801481499481568828523358566300273697638171695781127693813446072684463008994247658741523749462110196620438377074571576211892007396145081284577500948388642492631598724186188076951531006409904064816071897646111729804708414165730886971382040555730466580582741393604239083837127939454748641925291500997040308897284029574837860126325938855837068066085830345759287353427814721512904118660567477273339101745129171592915910711050744265030152843119671722175261418428840695905061005237240818356020677418051261599229724429315986124064151975824442442091688736336177546405299175946674337318548418225258341732631173050031926470640474493118115510993561067246670959057904272257307639328783050755453130792567893098312194381902132879759900855039231600650463462842183806429405683548430214884505555368006690771452287187775286857018458369465664636596354456793255190897618883713405604617998245294124306453654553460150403951252407955681126646024350499575677638570701271012827577163847204851349683852105957215764816848060160223213159011835598445098712614219934513704049226884234411768940989852570254115607770923479904784198146891594472904674057670939866734877267798660388759637779657952739748551245228649102699525096388829926783997074596704344541723118046411095186256502382405511445347716862253004504466508392533167486594797656034705571097858667798793438649487039567259276578561932546096801657206260977062534899705091491274298733695046868620581397123353479728445336839026681846613693873245808858665713581891502952108575489151051839319739585860633939396825690025420672023868518814805827501071769962297506055425296001684732075213629527177839287283745929933190983934248072866564523585411362429925326145588757483949912311839178703568013841546280309250348622061001598309219386907319109768625783320949020307198715042045935421867884294332099921278525486229228119420213450957774980258744562538970273301503412777626716742386392910973847759665261442013198263400896371652274438074455005086637952755543520265167113079747442162595600267200182957997292689345530941822742483125394475136855345642396868237987033016723484166356469923272654912354779558687488738498216180817293946573078485720149128632057170602303283781893776754184640625470464998039495027707315793877029189337349684445717196956256948912702918719272681989409444020836728317036700200047586900004991052602195324176012471561680022810056282607269150640773649034153540547751065015125861456476854436304192323864842782730312759329501231394832811462334121456659161362561588065305057007530103839491746954570304736933157999764781571942071082354664754913619241876264486237313379885348113437116052214622736592003211795712673286767582303419810774553858656869679309422087089496885256221925166400473091276567527417609663196329948623446121663930385090856872403663947941766652136187473200290738005054065020776465162923631490203336230450016541953738532889237054346058044217675565000334318163599714987486432321525398000951172770421091213561655788345769326406877393870338072062167205851810403541987815903789484853677821093734339546529522999317525566946037595028567991883250727748334916990110135868069602722285873886460274536212789312581306927821373936835300356520909210533725983462743176176162586336059216886338822674662713429984067764418474111457838178504850760816058526497561987855068505159166753391866703808412429377453930225427128983202634030576845477748655253038878645019915482029212905283910898853100165570757755406193302291998143650788507771348176820780834021133245096144466561688396081136541212057789877025522034918996150148169343893592968757792088425937389755052141890143867111597599474456340470603976987973765825687880125941181632215810554763662421172849928027979808914115396755462484208446779637571451797757808246377628160835060540076255743938821486413041054962709939776551004625821482033599210217807366553892627097436759399980476489212608576890206876546798927684682318792310691026091191410645303204493865658331579140370915142571941905275033515115856662503445672885619692639381115798182133142582330734166921040192982250191820599118945985451157360399593837453812195359812511806615625787271869777132587772778649476089181748689455885227849170669099370827213466805267015735941654376797237076087397998393802847153730052103458992077897028780989699651640397947537362641203202564035712617132490647283590197697682810867396700337466044692856299433809738323207301914732842337064848965437170713076365147912122961447677773867553781398777432887220160134561410719523672988642055614983045639096514543157294614627228779188630580474411779259803532998779530615290526458604053597918939030471540516826458750653225245326621003588109013509391961600374519182069690030805832001349498372698759778797446007026115246060299828273419121639771082497938267724903446063478562262129156447871626514725560404028171256633546170000385403100508896389129793793445765477103742396888371499066709540351117253676931391903132160660252852795700786964244496123057270851020321420289208710593541975330954111009575814298881397240399618727617127769816977114698747131199750123674215449414672124678404420604611100252678062759541059792965364058310239070109737470676761727346223467318292591781777251232431035723549725378733950192244337862165627681626964285177295033987347177160953768736290879810587321106714867474464106888984231608964130981100303281948438830613247229292818752187876678903601418471427615464902423043085902223501832630236610514544911182197055234389018081570788536104843425631408162662785272222457364233509993816365687018942795431336077205678158139662492332071854222399323777746669960702127713157730849059647944227239134316730610291586596000581999304521494193565221582787225267674778689996413462304622789457015958729978770616553984585912162422254902763074263905440082071194008393866209644901329480267832975994913516177965157988510815591001449621469649336675007288217640074642976265939518276088736822038221351257376932868112694689332255036998243446817689166707706435034180590503259187275676461375532806210167056396592491152935715477675187487094049478014409894070171208582566128972946693270410935087611842515931662865237867530881094367606817857789244304570825385928072935793842700051292682672271314321481413910430115360967706202735600665927778644053935170897277738744624428428124513668616331731054189303988406551414406668608667176973150531976495912440941651725806747780247346173802861443729163324103894744120520735397421346200975985803846586666618966394934310580761509302982467797607597320707417457031657145604117021151796145548037385317835861652045469332541180666625588771845502057142498427308577521738541174444232035586372642494485178260276103474524699743167033100362566133342608215571361976571110404812596258949300089070072738221397965962114198102963079141903344437570929477651576676185320368480526034000652321716759340575252451145134935927913060328289261502727585907081233898366488019169840864728121373709848126361728808529941199129551771502145748197472015443698750472296977833624549141845826009837451950144579981926213659409002642166740352774983662673486741866172394608537901020330892560143824741227683848556262357666138582074693493337127088287145179946497610423716749580022518772861309912978866610996968088883155201261788209062700332569598322134510399029420193255079534977519215889254832610155309505524111142677895370868005185535488907754176975199343358312298170230493100833480782364295198795932960718757940644898161890410624932638913928406828865809124770041449171028788144984708514214349887348390499843321182689855162005235122170390071856859254594952740586618063880698983412591644713604752280257722069027790211307270681653581256769989481787980869778830932777489291021357592055508129058104613806310035660229297212001482278890887670034171699667904366623959944001630780318854769616391919976565197653258173203302449734138353265710972423687348239847106492509302363228846601273185446604666818892170037416006112506680157221707368634171031321410354718194558949659638977676541991180692011558144764608162445403625556905764643206001551789842970366846266637184658217472401600821630898380224107874417699492284822328421519782640542740904583776001214259851814255718724857959756750127302823578553202518152196284682280250134282293614987376902875262263123499093078910626109532412158589742501516471531019182868036463250698810035474944071319450809010909385875646638056829214068976610732007922401355059067408413494116993646050502835338648873740419803461634003476306697523663194091779442983063527351092140423245478277224160983573464504335295839594567218831736078871573258116520485610873658089429691427969076010102392455528905564950399946480556079212754983541353161875614010942928531501893757779971132103016208473901708050331496083613255332315899676266324521861744873008026557271933856561205309039457929741489219549800528640207847090133057520208383370622992154982177094441774632478552623656124993428272933101729161490775148970210954520967907240610869159480305160882847966508071027542216349658284437791146199828543998065535889702333390193232297630622412225795639172421266973429730302543365042626915043160487238775327106954193628338760150394607368517919270382635156716088504249481272735129474966302714737282272710467992220602715095303006417012104128715764764079534457498667368519765012720094047632064507436925966900795998825202570251987219208667610554085981247980863435768091389000125558776419915157873954931035729454789337558544879167860205956180872333515555395561826723073138491238137642744469780128625259784826471597929661670125260184045074021360968420958418126845437902128662277396713429338526054383499207292984953496218566124030772422620286420919473470477843312814330901714717860376151869689424830910254033470279180890118100041134272093896581205858722640353439690804691570709637235520547576814177124992004059389544427668063255210528699185018573899633634463069988727135913147565973344225870752240689895411790276347095668317299586954237068033899517008236242815087528305350314662164192158222630305632268943215396958173224413782621704977023205753217060755004672583505538449304590028097412638719189883800704933062927879698126520357477443968234832800379335057092396211259598963411384256326297915711043003564468703413946059715330501345118096837786284954807854570123625565469600695037959353089181788275452389075345766852827626331635606177472512769512775733695331039338286318461754265379816079974010587770480576552570386361461196120467392150957512221721729798347516212731499995868898862320154279492041877819157070444324234117145877135578602103469549818127819069009466992181365857302329228930415424443337414258453691745583806059760635293820003983866321425239738557895725082754687834325456211628526574611698797887027076659831661910199083592626822721205692373667011199712047553717448758587746425499621303507250525924509066289766399203731949275004588877701298339127988282017212566127745611581891850294532029325782492380749839389911623060951190409804672846218226576772928656420207673993022490322894164062833581495444631962885008337797290648894537085697535065139659403609582372284898923092373815687818338829804296776223033213851577963472321784026127650468689996982311620612464192882225061999973654359816770776730112422017918559341746361633483052925494384939586017024657309687703657305962593857280008020568008537846380613357538495483381630853501263439273757843868108097132486905149129647595024198243746483845211628460088017180981980224884130223191076754048812726803451009176086462598419545342311157844160584466152467333100019099155792823227058075471971531336993313876137314136162457674085612847574706346419174606347773455299893703037256186291808179586751539385415360639972038354811175555925438304011963130842934684071225465091376218790121961825598896958706648723284616278745287001029986761357874969408106309377712609910603847702370434629364143983977579424447379995615062009762919730690748399061170929954219048420520183817940854089615059397761487258742751485076485523556202939050357781084583220664166005841335275545329605468845318777056994224684128508697659276283990704037295724834610786117716337772188678136336356559117332373663347572471234814168524148545460721087212487250625042448368819280194754369844345301432100063457747426783218158723491465854918060984196924816200889809579731486395854448815966420152757201820002648055377235827344194426886484892808351565992315111780330768751808427364477989306226312705482202018136396472074707901181516172071575423222890109038299422137130910752804714038042022475341335728418665849104565543849732793249383741960407018240219310399925632388554520668461547835600152252753695548395531298497123906647301577199621887095528982801019938219491463727879697496001611252815965181246006276981903577827119050398766181994427508748304206640392175716423986274686836394941936115887909526573387300979701263705760336382064190953572333738769063809317031830416669061721742579282052575457967460440226357617996449983589142565308088049785493386860884065893264178935412067138457757365003577876781534738747372411602822108497272388044542355591270218276815053117120260795934989617073675748301304229858150412090273774333892924479674260487576926985274169850924223180719726798158949448704012958642041737988366334777829438164895078334334145683762405235040205565922402193761843210272866424234229107965032842788346915293365682839195372198764189731664160354325086438982299475187024479488649773306125112708097705086934605160677524788738518719775656463664107204047362844565915841443767508080870043267728888979414683517360740639776407795886683395560242660932239361412229223823404827537675955732293635546242428654734353827619791270557313361406586074729218261122268839285210543000029858754841131939571669647624412301267098189969842399713077763137841727711410178684830434388172119878039385324493870699090582319573893340417587787602732438445216368624691195828957491945997513936219949071266048337626834852170963491440542218502893366454255875083647574167213669525969537265136356010363005897061360173953654198063769205987656459156104710473219863385209477626165582497087955586301545986795660969864390600031577453824855205448819560987990179003180106966438462080170888399805959707565585555873450508717556575324618146356592936823073705107945507678294608226754353351481690429563206247302415687048511551378940079782767979394023037902931142860277712260848608506014101128432094417150172098396102637543709197830854791331525408661648558744139475084665686709536106197412013708702532665615696034412136984518640044235634616942975904989065545840328958715047435220566377723700635514063154625854463743249586497945123257559698145492666472803462869245959570747711170018139608358807216925657102727236101075698864330423788334226569639948441217328444244136380206460108061982968453743447096893034523938542492005999975639561271936142270591364246957864674556147105333844833687501148128291063275894543680786851983949093877414550382779560225230333607086050477301297563357144944281407287292635449943922345947441615892510401019057763780294276125385209547874534437557359439379521123487364829281826230311206192183550540422948793560591279865688626255777302854347388888871165541192907264282313163991637649979673852413846665361735688980646008063753715346815484961110186832587358428560165707420119877895597814617773663455564394219455366447640108855014652145883283471364735340954311656557739152982980366337745002143390485260223119524171405631150430779241634355807815541356811443324117146327328396235915365707916675790678489865584295550908786354765487970091345701057958608234974122912048018486140704424016488963240876774855934003254976106579742625025091133084032264435166231380544521448727475590771892476372994831944773328282265957353134360618988983964522000193522130815525269510662873092387320830671213945851202250321895092625553493501123419935044226499194551007467088977096344538377722548119906516007829634129261098078308405156960876996593576297633498415184476442919813479055429549539709025124183559445337361337975961610831936192479442733393925733048093788781717106680322977130058741159676620161552482064547736421945771620634064696937443699998542040313040965316288811759315594504597825733438722048317327858209031053494370479231570485792768137453239497245499352631009429833271451988500622782579531713046214018621654592251505531464851103275900318016001396596953895186591986943110525389862801391820072248620262228064217388390804956178926703753581528474689628952140793021831139776478687459110883249034855118679711178730159864201501686877135105943151168770916428488468311955701455788440199546409614449957895964461631457290981160521978462553919730192632541170349138210312139927151602292270256942005390206997530180942807713524052422304401208028189948598726729229496009964941871147858842035827434920510240082598471063967325455405584641601369139773912408145675830519529757087090288564662720236680580924312353751497055607506614313078632195553699969360535196454401937060319059596338570928103476419960984510349555484200541772588379420070425040607652093499163870663375624404037205067528259023734780214250890060030294776088508035419981453355069954316421460457451038167574613399422627478692615518531264315780481903062784380691727577229211727373159377543364467595473592050954805755472514548783212030396908482034825485849858696200484353889686489084768825917206140647475576877400280068734194622948063778659931289694907059525872886980245250185779428911923773454952939130136792675975052787314413760000480242619395964226135130088297672872885983179522815674524143473646957835576778505603889287649894978790333469324659510861689079618818384416990773362055121036848345990032106911959902917277869186467386547214942214906730477201648409495555609091371171820531894700793375381207113501282501699965088519210415485013012409679619131127603137736878108756462357756172901486567096989063672546990666558439559419329755108602152555283906096412286295387971302743117208085128641642385405229919661820086959833151943826029001985813371826255294303738580065102868473980282276224820132175130857885746169297124564156313509740545807851608200020458159219570147019131223051328080290009981536564765804133495675228185054481652915810567946251864134491248260458270346740663321872586672627306639390421001853063341045748261435797320368517995237601492063991654198378195050787884387825254616748795633934190670123896358259146081930129490784472086766987508983563829828111843547283984630189491611224602712873405743694920704307001876018569927941752208842060280807139587770345755540184183660595781798667832556553710995546921620769251917504710663905842077991448359685100485041607585276710906079303301761359292365473387079406450580177110515105613747100737201663582221741367084042817494100466159924778498068145023663972943316359370639064337610988003778626276334079161396710344104038599180076199648244850760077095592699586331232750996577608654111401991105436238332120297239775880857471978684274959147456966061246652645861212562618632167449262377077895762652413245215808771127357640938155280240631006259217481666328997845976127397859158787871023028674732493932491667040465609609211740829780537281393593062243068607176068239143465124073951248118601163319257843084402981650830087086674766073802776509401933899693589207321383339894910089620683768852283096752438237973523457953803169961287547978376450644781019490185929239415426225240963577505449345348559659813389665020934644832793765346617960449525601090773841362676278419402273481252362978724536524077954795455346326916256174335238617986771981881557134661498660535059801524270871795671457781341213161646755510170101633898473737657518818476183683867327866370725862994002354842563005896982997168702348318478246421554160238369725888962278801532832324147132303916057977169929647604383757223691923354372015726332192283719761515881068596028824573090509263714213506501017857033662786041296327068510788111832238591626335104638766462964880373743343381472027260612426030466641753151070569401576501273123746776689588192869862663942613996690076648691566579804674277363017092451672337131830929676862533238560799911868524028591499843126882605233540770576114130735874006669287795112208666042887498212378057542789495302513202773450383254327834716594059745820644391562753284887692331245510870580443069110095177953094538108376185183446597172674595544605052343044335322977569696144531535258974902889255764123864646913676234042506033304143912802583231460764681224941592809522123374867447480894546594898997007839240095547079330203969021078721112428316510647386140675030808101022713884152850984505611320817937663203997697619942036993090660662050197605453677947254161801552554093519547865380307086627452163710822418530706078525929202628523951732090209770867409031102482700752542619657594071562011158047442312409959243567620887350297968181611664116049058873104692309930398996558356687913323182482108235971764065045858410785056245754351836034569169179704533923073506691339598686778596876109713105288125604276487372797613632014398038628877763333970118288707282406864735784285553333924010706798173715773478037813782064494973072586116262901666497899592461411794974087875529861289030368131814274558524705910507206923193960528179685457702565271848833718185847730085628443458437854150979868960991707651406082235744752834636134005326322404172672380882386976203886623115011808002995826855562262864303047799456507637019060498759221571135605059727605594959054939078968234426194745502455787809218481906323270278159938140409864098471980433608442022511891799771520781415857274951033396477988522090480471513075618370438049245347084989611254830323564500391242493089770628586533131862447597412224252052391287979579906114595882575824172088031781373025477546357594222237681044508605547207195557157347524770914203389616653043592980668408219892603104833384745241622744519378103597789085805480119355178930807810979449716661162447459199210044600666889492873358088633469833475699849737815252099126851538186277814818361688611577969333594412524290322449103606830311849440203980096098070005533972170214124437518679939318848755960407822941717893729218753706507545054950904878686238891786740461301043501960311924307744692465892619367545420431137880886247100771041074684614290559180594703643569556548484964567925989615184478505179818910097754018898386869042766769066148312910678204503701161705263284399160153298282328667275482741366815029290753743103025494021458261478838001399817985778339406338413334571652277038600343242611394673516279739321558111276314361797964999228351592875138016294676227627369992517169120878186905771320690365567374649006065754650887544081418638136406302881086601699994518155689681104501162714334537033043113203872349445935035380785578369047460266477816887600495599366628388870049466583345542024099648901723167134228329600202015713734178423574447816730534735915755379511511650500013099575262150993667206943657191468156710161500855241950949013218346144003014203702305069665808241939284398324762401239709887149363116298403442467873465473455541631944030605512326886024178221256976194584597630629395757424979931261277013239494481071421769990693192999535424349323022731365181154538359486937162925167472098244533916802936034066930889068410114181739817346741344006105098201017340298906200702799993182175261057561978104577183768288697943261486708374582379256344568209988948232443390615691296213427646712237947067832721619135630612993281124629460224125667898922603541324373019661465177404026292190985905294878095189803479043249933087763755481147646470356474129492117240815975113780790924349104108673739548448656803004823656744281066812276998135279232220137562822197107364995345416634020538087344252743776625489839386716695703346133994820623243181325447203682743054734530748476648445154835261044210496372417806696102628475462434305661438687668158612892849754304324056258405476247009274138851050486055162551822021571353685784601402945661147344469993137044120484513095086127307236427234389279207856792744543671533196007233655310128236923685701555139258293085369291960494133616635257992414112641283256141998811894161994772195417558976503973808560026291943267666245981565533906350612253969658902342425753956968153606719530501196377245664846455886321254163191474774803439460732721181797030880064672205319507723437939820639177690773172727787572882156294429151756837728515021049755812892611693888051868201200442891562690066613994746064651355996393205768521499220946861588687329329340234034566760696854243258173588334479385598599095763388605117345798247243412669198971656095837764436025823572572149090566376085038378119172055612405684340390980728859127933874145477345063198627000345388253486112407845426969256170650000612526726062046989624260981127988030510329637172767394174910653489611386877918722398208754868427436741325533684170051768640395740187078582177769655302151802716917359367073649575833347074457741146231316243784651839953867365920404772048046032123537433044649005942392232560585373822636784455802855534673947694990854396646803058936400552441273508072913698642933943987236808900340339389028196134239389960664290133936123228794809765755853053941207496910052653245156581108287311787534943706897278500388446444474844363946075630367126182216243410667994975080020206110255886138574789486938887745354040199383765559695430076897422929071327696753019140590534681588939405018793572524115524956050976925974062950767198103623246074538730539919759680534224615879812453573837125605207766868361006008004386698626276899370220939595088999782136400945904517374198027544972764073737931507816153809441013975087025131892716102295433668102434648096519035930833574024286107891401155791932169469322506686213227824639387474874398859062153565302522937509801442820926574730951386097370176559576570230459799897324547586416442303564431722593832242969670631864620392069826132855343712470420783273255463485673415788367518771507588588850381363345266642378329130273082761310351027821549147777854715891893995968872770038699105087523888018411955617577199388282679130878215692237638884471263644207773942766461424904288387458409205821017876721257620561706924538639143508774662114696076950140948573467269328847513659087523456652956086052250289262922701476836834597747113907988778672811223286143121245275277761513506804714141959709975423957026368988314360672099826084036378264699524732113620600026364196286034934887240814840492589729046613750278925815302553159471509361117944047567057175954898760569469815760396739178743775426258543983849261961464655895279141513393521042637567072733705721110956967432487153005379244146285144773577776670600111694751637634926689286641112594323217235398883181618701381104679081589933602233268338663986230257211107730071783179377143449827690218982108338165789618290854223794989817844419861074541022883758098316858651610396078840032445710138246149968632959663232588175487044457887384286458562713473729314364992473555424032069790525660336214485246725993351214538411065335858461533623357925395399788229993254063958246499097154895851575064182866215357593716556515247324381392158123791816185781539435500722270752233171455542974575215232387939910331084616504567314598307907101453142120107125117222371918418768421155644965425692873109969901852174749194273707017505545606190254437203529755654094547480638835466401089281043551488276278845809621549714531652057786289203519330065955445325458628037510846896340901749303913514054942677423468008739965812638054334020719703074018144106949447824490027552778517120978995669126174741891900545565569742539541532125611436361928079260724533176383917670602489503558294225629512588566506788079055624216841588693866245142876077313651146814939647301176709348820992162970306066533246291986862293823008057684582748489491559603564124335603735791196736621624382288161745204246665758188991096337601491097566226433212541237443965103003589806278394195804396190531529011930764770432228156276835475174917943084371360085205258953833978155949308592871468572212681094684702243137054475224125572459222614174532284168375827458613319460461720285931981405735407383621892425558094872440531616610778809367121352011231597401037818384542168378650889923862289348289099503478414627630890186295887492800845384556194018937042806052415312597737610480954323974233612201313188044806158411496617367744468070233493508129340925737019829949321101436216575863251512700638104850287902891273875972717184498471398924431443016166761279281443002082812318690761018169046302363070048029037022362403205691300929850161451022421062228186721056899484439301378859424034412187414676674054140981236846035243556347322126399655337152861227569619772754128580644714886227990174899976731321262044783516359027956211664985667715223327144599757994202852358018215958387670431564653670396973999219353957967817304029042848895260762687314306540657828058628843064538054867857291413835165137806646304705496902084155625608968106806476259102764321375374160987889923620340148030018081930883547704411286977777344282481521131934278545672801273651741650038038190960349959307982182985478081710883397297962431204386458588497846514221047493103792401555454255602094525718263314813184328048112656954688036924100552722422829348538192647161580181190127524466531366152118746843592080052560371924987861702625116230492460371209615375436567059068388247940237806394086649894611528414207639212686290186668069575518859294618348572338295894454300760515955149178903627248510891178096082033714574950934964099282017269850852449491857092939928331322012037151429009292525751775541031652460212867822246360559499450178958309874954686981685848581765131278206366905947611193428936084614581115280920092902136510960733430531173704906588564356220670232473704282328112919429552137885620251115767979961411668793951811632694943314117124749610981071479532454461879535567008458570317080812400932246873113018475863488611553374900723302470278324219275311089864229715388896136646952356098110466764769650335164177313479040740023303529305006855460145178721248206991641692156275641039078818727886633747047506397594451478573119545906834273252409681445807639763950106625037331359922501746913781067365987080075021574769848558779748257481243507931679772274010093799739502030114180600259294922955678523659952455691678068861382009782117505907502077863688587352397145443600962627229010788388397125800098328784140118084780445115689291180769421819935272295554407567531757069514278366123237469655562129193584356952384376134743717156334344437085058892269587017739270579986516588006947784942597281851469289799407447065451582697002216904159836787974966481947696168817634762780147433694086595373251704388345427042635509801383232959890683119625287834577143275786985113324657651556376175698907869071637478117770715176172521146335095815589756314275047612160033140134839709295520890767625420793803126538107896619059504929688222234489402118364798215677702403027289635819816823207085714082977950002231108306291970949597817988716597326672338219886681878884704763304803362755155376270773157601175447948300711962903919653226334952830142780134152213301189478634573511381223678264414292680715870982974753263905845041705260690111496596316452276301553671367322122498951419663125971179342464700297013078537292987738789284397325386784902307860521840245776692215536658212965749810618706543806581417471716209976339705658893286946714483323804956857888251011163830113406980770696935151492539846184729886606830801449850994401865969238998230406130114897295347474853569233066895340929869471915248067082068056351602549257045501695268149056837010360043696520029089698122585398530591111796217850653366463053390092841033994193050077271284125248658001984571481866344314004874027302486500866310542770708919097127622011458957736624693016892915066251878338454756263488499984745809970904097841552027928801969749420184710359234152503566280356573647757098213910382520425549481613583246211184544703195348873755804658272542646153161483937367907391853613137105866781787295915035281537720483396693588145271260734631733836915822397608374181500933106050593637848625720700241634317585413687254249513679878293723086163561991163147427808175103885876234743566162013878449102530614113485517858839258078711839621397703073145549415152764215395372272636970730496333729471198957203053959146876841272536205787737214846842957439974671906871935569248957669997059537574188260462190968043427902201585563567159577877340027316280318495185249454599039379879111758656097749768860553944304845075918627000579675207337399582534701812145395323597433654409113781355411791360074007525197882848664548275307335316804464768571598496896983546036283826709591622096252987882709719592910650540243551297469451619361583666088438297154404248314807853134961097684529343319508444783385103542224480329947192304979913752988329281418869422657129480240822207692152585945947697294432327223003784180174559248037770616720605087881058763573989958499507834390915534791314532984164997704834170461304232382624545471087050274180527336276565937395831873381078311666505545848626545508840865694820629384062413580550089158176636902287378253736955323528721834805644551637122814850204975874899458171716148308706357854666929126948766601011093350963932546895611525402127019069566450302414222184147759079378584136398441695596049091678727711533370402637295105123208086611200287720580446536201322165296053401137362997371487640782937496187367424555316698031623358841930405953483841831444589394384863507658807142933683982496541684568733712974011973907083610201762642606769275404870851360665221251202092481793529221061550241286841554688306907881311284923709161407678975469826925291327217627826225797482245732016705898166016060527617291104496769627241445092525342381472857338246063783155151292315755368658997091243203898836290018197969257722429971327119829949474206496018819553108600464941499037387417748451930728245434487378286098961516981447310450358205727814924297037637518710482947232442098247596543153810868848043570771375796311694104876643869234188754226080460964181797813206453114516323624536171371992613298214063997132378288445371116566308984297746340480109124981133592682649142155823236128662831585957544885625655254890269545495363313236203332912347777237423057100763697629470596375466810542723258642379187908818790578772168631506580773138572002565761406803683104982300588241864068452654867475624224354364937633377899781363941976601977009349822457422051695651392017308781102134339595298382688247821595111368394670214267927319803998967351571210483468268489446876047091477007570234965359518239329610353864666068131713374416616870733668782803159280938814537810911917366998893576300448191138819661586841752257213364771344951419879039986925948616227159424133953300816941943934627361857204098982719411007190448717288591404527724134884053090128067858649249581895095912968877284482447720437696384357460058846517246856905841296372725621958934271928826550519224468724483883306657813074144436587981324008662468918725420954958661125497067439496981254756959416306301022574953079452429919252510531841202023550516321619184461388820706323661668494948922023905609040993246279723296837037508172195558146849328709898033929678042490793490648137839315512171217016616242729541940997881582890693265352549721459964405356602994672909669997802981825460593956938764592905222094164480044658076602109871425749287338027067495504961722634439320794092135922682611207533075341600693169331827341699578827707553193131670661958283877373701207636880518889017393439676771243584548075745971700721004634814313202668224891449231739031901602541953830683743720123302265442849105185020339661017847129300088976702083264096255519164939886532751454974599374327756792903378505750005714227611959444360574451316389105801300659370993633688995620262948718668488760538652713608239556939349556800186122897432523802424717752265377122884003598047232260558231127374190315837770364813895342789618592703151582490552265823673027685474959497208097860236524535089145550272386146682624109632771788586137666711834196394539856375191801495807886246319323334616056480850743843809045985136942638906428805197711790513152991641893560631463800129702086999973007702057579165253970797046861720323502193740340889356286049230968908901609788096849850816819589868716797466779485227685729445406886172278355932358761757932678869344070309268963558473140482947856366028213338794387171816546293696629277207676557632859659307387137693558593271332533929872180343843619673150481424276608529557821344171755424211162984005389560355751922906267724618514946197464845070379757145994438268995099833408266454982256592275649370506891442337615089106010749573760907139774306141239772000016898902662537594609696561379128764648840326687444290007314054403526541920029493051683556306098345635629285774908174375112149728057455137701807490744020620729148494133708648251214517693855565566192912251342399663804990163253116113206940863980509686693846591352403129781826562078677869976669442935841399963717321181177019654156099348636292926281306572565811407966292909909412196507316874782010380849913566066132696224705359784309318877852078506290403750394323200050076446537606092083051836379945213176530102220517366099486681869527011040207965825345418517649997178810999824082922652155018710244134738103277816646803522395958223004228930121138413487735882720267591675851732121026040213526493968513759833858371255635285614606739368861359857643910119339825334834280637122386688531971968290948420829278914016244751984171334009608739109900684150028852029752361082976212555264772086988925588792345528455893199241610349173245556883820542804305729263342851029455776700352025286370977435288798479813814198521345970837695765985603878296923085748889398220358553629890842499265241945955560666094059822233197729673652249802585595516469388141546442600859147966582598065487174231903307466496250224603591213522972305256361825402199246001876027361033372547174508150686953843606956251655415846947670182836132876583559145332722053278555315607960341270451094896483765795628034032299307832970736349861196504552111499804091812641175580919225888737394597970868706375398831974593981103306087351816536846496547139419582538999798832489186907419941820016400014258839517886278824523190234462160634652416850891069800230555240416980321724221839375653355105474559251413681339052658411531338636489191566807276756535768387813714318232251072984417561138150531039891604193923207779550115277540233229389648647042882961063936741715956590570468283101632901555226423177216708670333005884720075224746257861743711395119974812296963177451360319573467753275196650424859987904953611442661177306478697278134057354824138817400786461306475068586723569751655961008226224077785475315954781781734598988040217045205316363508702284306672077738626134264568755229383209434427204296894205474977556726251897924770626903571161320367459194281563042355692367035533759940563746499674186920034273977672093524785262067145502981932913039873428953070764599084298372747477929904041452393409392089075765775927950749099951832091714353075029564860604494606986186349655524869065760135232362882752291096040765604034801658712255788887557417577550782030805232622309172457950709281986170851389084020837269904101670483072988181847094638962519986658623933112022252773271626300120912998145039288210053377719040357598710642104349480172924497944814110236247423315187597608434322379448898927701181487794290282317296337343140318399020998561411398745523919147952138004345932429345020903877608348562774975730695280778055995965657642703322577321015213501070746517396978816864052456727713092998127028907976168900156386211496163647829484501032376792989122964776064138123599616598246885211928958460546539027185404930324617591380947990656996439396368539166047324936245867389767875825206809634976802107586274617824492959357186547672735085799443957559889051342754829267088563034231420290686060223802190412748070157697528399563086761741477121303803122016827420391399505457518719695690931105433095595002147935804361223410983967524828090473815596040656027379359824067355332971946149692125787775339412153019413545330904702325106716955931020688230616913818248856700147348193173591312296415865956726702053529977598391796644412705766690141974575566948842657731647469504314445203658148262021707266249319968594650979315196040281419027606792203583527495243515470630836942868189057890394955802209693111259967712214439724942608556802165574881060256679919570417050398396811609900913962069027324675422742397252283263644416437445216557252658848544596982307499359037129052562825459941396523424179486488856270818344932259347983609146170354921480388794226964272760181123344937527268272847257259861678765045218560853851702683552980792692744348743354231618666647549756130610602435202590656002632107340738038515453220307854161955044212006626146440990991439964481734326136263859825162390364941827944382990338822188169232177400284787853430358342129450808438475210202100825165057522552295155838166351494467810496586069024651634550937405174216499930739972310697249881761145609415334435197989177066220962971110672641494794354334704152504690074473906793239896558806959415633458492530407192650636449582493116923988483920886476805306153124541931129591250671839658594739777434135020916660959968495960282797928876901614160328768003206999610681447675073749175779793876167957200067602922231971671698411507395846643167596019508802943079733255466414696239285026661893349879763471450665783168995848262010900705582049656968751287764481723813421493125108711039254127127097328021520743127366997064604223823191407106423136379717935868283050235459924569861139941042790167839105313587612936806585311997356161639236744280072711770009623740236289905875899027124173808401587473126818443785237860502004244967503637389393711750639183771959926159300991471025429613299026202507468651513849952214309941196571337786340650965614347543198686647921526883824939292395175054967107109319769658990190457934337075302939721421963203798712278480676858386630237572910251939968155728968099722317206000929244545459254016139738426672653727325390654107163612962288498724670690028159161439930653058064181358174430061507679466639500663859613566871012751952014710385054974803634109407079525232419856709427331193035599428941671600559661290676715737064664881885226457796886592682306396367066877365993788594989991863766216977596320699409716120097984618805078150226356600498528898715290282616354038662825813836248240706897430287543142499512369816003919126708222460374319373503318073993993632178244053124775680910398626399557194775779955981929202221012067127253038621399260692923747669266564243105834549695653196186278716950827364642705250748538254679137049540628116337451321504642155266173704674990544963494647119568780114533471141193409327004577337668286684233086353448585172761157289785654121838319346286738653118436534492708148571792814069855450831001259138885913961986490120217996052975953919056892289927492162854306328828232326605350428390166731445641350668180121363648643128921908621273988163922351716509773588248308674996755302839341204114049287538859121917317712382987192528449227278536600626908139780507675899718588482609314996482089742687107289178614205199050955201318743869740615515164193165357196070942217805867950513571327852055330783081382054601358883486358023794288900673971359217948944845590014129707760479130580698670270661521156358696039537144385439370720238307826855250580860402081275095926988227082396601388909691482099263939691825038110100064470360763575003168264422596871515754640640147917640709049100023044769496210595889828109257917390637801028723769483779978971830906460411340186272269637316087263691966508488224720925358870650839111227719513864762541908703736308261077166686636044877349138799997375298800700048356866161630345508559325145079859213037561673290714486846210202993883085516514257300826209194928290082214853401808600650571402481410251328348243574358185080461880688906943927073057929344746015408774473355127121660417670865737654704512153596335185912850499359376130895897616633254745365360998026175189222811151942123044590971996355015395625098870493105481008807813826250435356280156518494245080463409282137947884751620984074344706125297142179635625253543109465541670090388902048222965081773963129964220368505572771301926207458238348267963229987943200512089154224110651211748173222405074353685152474908955505346977341963018039154394897657857094322261774553395974421426296522807240086083345125073119800041116101034932952040958476961997261874062498085538886704175333737452083873225446818937525867871656362714970940767368484580760483794482377433069913539761460693062497256213696269606390794934250257594643211798618397440120310625241048685094305100937816101459551892070407273980416434968274753510369036255857340493056546183812208997652926119866290114063599273360968580505015134339079323295055856658143534011383229015532533316656890997926723517883024733069075054145682989898950624541963437518968857776541537854579642045618229386723750479512671788639054436030911851148369975515605149059822570666336185847030894518884016847954781116589281412391185955712863176465556301471871913758378192194426826339809526645195790749941140324519287143379191555292171649232531532085365556196804011090568120297440315875783602662092095204802848043696906932037341808809843657672429893456075550685894356663331685299588856171760955660500771033778561339134069011921024279165851642937837188527653365871202655152960853904283391288412658150366804049940192509035689698776650136969671720978140852414980569891538768148631853866740767498119725811928687035011873119561177214577174415318166442350443501148512026662081508539661641127222733558183139568470039104764807661036354914450165630895741549397142466917403248050088524065784550760928903227089189872477058615076176864899762927963134964053746228967030350286330503845136960093857547424423963119393113775710123175502276126520212172299977854985775504297193436203860496247878788317015469665783570281378881399227008604252072511240754262813511357735484881010405454956196386676084304503782479266483701465040692911593260690577478830306765825737880170921659139782371629197517958010949517342927334168306038102681446836430613713949027496910103214650309913116793583677692965168542712643694564220060404983919498646412340453096803415150563227958574890029646999464728745915659550725985903348882460250824032922499346656178837046336646695037766668640090445021278221662784407928366922258527533220313695870621298646730881299488798083354070087602521141034015157340164246564385495345707923065162876693584956460743923934463183387380253036969203004514358174464811036349256991525093636615595243791162533292713262991008050641765556095462829120767234633421450351141336000180215131534721514853797019984985872247414113878199854095893996033821326799998034631023266063880734241309285369404755627328222669588742036178758538862201573186306068270247039469218429963922050626889804337432821257712504094639746427289207546695873720554283331336384842431521080382384523479179789017957477941171494774547312166089799023215478677858407916926339968290260480706676111721176847690745900076699625295187176475863457806418686331042145506421210135958767079462015021585417116410610704400395745270291162196550018585813543375602684019225424126644739083082759931035033105243108114480518354637970777812238245045150652958890791078130161634925200554689767328925206274903873073747595948345864583533750982154554123013676864959335623033226898201005983928218536002464901881321620221039324550718042215743520701304731821875152084401759602412061289095972317754010597734373427275923509177027297304376599956372853821326193281402769601922905092657257004881297679623129756515223032007103903646289140648249638434767576036326666310999227067243107569637851849367092164377492885173764667340574559965626899649368114778399557955845559810622420172842272929785289861554302610825637772403873593569973759827254111286103228560028950666535994429505894602015145300771651978636069964574789487759311894239059500100466007873226163045740909418434431571931468957995403930178452813694852352324698024512862143728727238315834992209390428653916210292890762816948455950994429591778801067127211389730069050302624093628379054528926815890758035262654104362134379071591593675973462610492704835479657093963686915816539542049116760252911805884611072106710763391853853244252019127522303316412668767767374129365880233574235075487271354676980745133831523364603275463191404017350942524403579900078059507648830578048332173928445480029165253760419684611683128652746083463201439777541525223768624743121995255851544476167497416906857337062837633915325007658945925643823716832195939701754459195857730381865691173310374335505793110629192790994165558038217234555843848463705278527499462869349117101284209600150818802164811719356367144913633305079916540271019881910577207820480923129051245525664709982567390722593772651689580980149574647631612811080491860729176979284975825333539951183125902429398874328043936723040909936189806031618028638822774448712106552637989158930082852617912814538406663338661048747151067026963121854557128462059217100042669535931853934171491468875494041472790498454428092783606122446442110711280043348043644261299570321805082531624475249789862632752915673924767306515089803247716113283847969008114221109193688506750012872602777017171684088222644953598610776562042025007913769559171117362976799191002576971153638684654407676839100093297819065769395409155423098769179526649702770266492945258815185268740665053965916978845148517734171682760718414565663794786770092067212708637828858183732292389505475437535076479742008082490244027972313657592420410625999603011966211351499232775495104592044090306249441567143699731667376590170030191939946416445581120231098979223301196411880810265727524727107995923103627969321621625062061015101126074066613302971837471569880085625145096795769599259372274866711870834183617001246471746547067748628057455202518854235139390414359991873322427667181880331032419106192978441327791377550547249188509242799257025903025564067769139565641232729230089418948279998485938361774354704801521214143197132017926291053756613820492492828172168813410330507666562164309829926744616000703718691122134763308663810553492049601385131672512824214114060146389765238992782171200819992407573629471030972012276060882342971777170501079295947903860444062372647541552401551322411207603305206795688046894907952831447422001640181798792999655461921452634921825678855911820107742813247696972605814769153602156938214478626542636267319880139053288173883087319133925504695474235681714616926164859307079832101631545022108030912061786752718625844775326317776000015839972457186265495352924696499438049661590499685615660561547679240995128157824677039953571224073852152942687650754611967447610560641337360585495872479068836984039338831712002914368635728964916124594406041641259318895692405265590907258734527285984378876988882778665396346541533149145792640058323388991413752541661440323701979816711478691720447006368752772025863435508642064871169215002733931313147571719926669815524677507314284160476417225949982640443108611227763982226412132953690295867942998168055112361610787197217873353734445761490994482614711858076197449488536574455035708652285717631992011280273599330992740952911117859628794578184874423526496957417803789639152923053175571460289136835905900619228876475508070907190985166111378815623405809746534854206557006976835791497290307468484476681181054370614271573883246399512413454694654896608630664859749237288286243460056631700798457167705795903379436102123097833917504783126078477889587302309633969877579637581840120163052893525141615546897192609221967089162464907200374717285367205040863798790560394869845425345573190033503682895269431395511375609085050915181499025266838859245357225583136290070025981492469617877965756796200149890101403221428067602249383198856899432493925268722983476144404721206886968650444641716856958347814510988379338471991014567802481820892704596867951687554179398857093312699447851056317630277503228642504593142227515181616557464540868251875892962715506904161483492477848587220113887493951205130967336258787058736827139922430537368139420950674755370616660216461455152002232079279285523282704848097922308142545007861513552851831347366310865524200647960221581782320370204330215829433794895841785980080414072989938751589633453671994870380318237407830492598664944361862313033573397495340823923868861134703744535849507110769001857693576809391299046979160482912701408828038680610899775903941736452498648517627932446686702288486445844956916590354833825642544285688302495125616999789083035797733638062129333504408979074264207432909725383699192035262475041080810058369569701968203270021382018330593439221655931312171742631491907531019996314605505239487798179759275961569648108681418847057872053194003494668555881770999003598431636528784648903679333307921878450779513820646704832955330752936442687392822688971118874827724413414611688646879013481151347457121221471637684394847483720763091571091909267323918222734821394915013696625224746712423925683639216430069120557992310088739979283148245380163104575985517654068527309650871211613895222122375491474104356819655488306442831240229644440312235228300092362357312070663231724181354908482936502810026809700915337543003858464463244126286896793555608014233299860619250848362639326201015507370148657670248477233303141759563451276179935094073154514042317737005256643713847690575503965709778760162545572964718480546394926918770095723943496252536194766032339785545576464020380873102962627706050020468933693028935786512583974667636890645024607161652159619680402390778207125958791838939147497930743908441094542678849534226223977585086881116826982011390239185236534751411223598995395861626218253464291345613554267556968548666993017052440847343190932739074803653580522936056116718184466739389113656251259429813288689206085663497988822107780732573239160127824049238152347182446096469838675483369055631169241253504640291911858106479735203461924997503257527114064432916340123210493944108024432628473276539481022926738558221409795732882941553563534312305200455909200007356387636438826301669405959298056230252626495201820158773095825247829505618155334726175703896738108991574719614414798073985628509751899003560101286625398197807781997805363730944394133119784337637404094880651823851590506764719195444472817380357367999799889642058216325965970448827431492439403424116404397912917823894554084965231713715595048772501994281670127112214751736620336762524672413116486120727303387434580303291759509429910665422881979720930829758439721215415118018869185488460242003055727141605923996496400877789174668326339041642935670055836274920770652995185244027555191745570529469985516998529115239840353733209416095646605216112916012390017212774457471804540733415026078573429335488521675980807897678851644336428643416933091897669779010000091802170991031524695292469084254240407157474040357254775861011597816048642394992524467651428380681893845488404617772794093007882515788132362116791152910548575113618921114631524044090625494562418376019845473340990392268518534983484499403980233913268401262397347389459471184107913674952190830999667452909406072201534583123331624529331738315788664955119369277604380143597073813588733895332114124831615828195028327148684135100781557914584778463710631003827567624486685065156073595811076687426337643727077193661177764324252985150385979397631157045697403404766210648731081186578103116262327599158243902614996949496515550984343472513625271496728414871289676426624668829360462638181705954868331094454288203117542181892543208171446176567599016194465130189916045441930201761851522922537513466823748990378037139763202554985191590131589483390472163860803558064727326689964371776279698246469414774313721828509799267269837987258230099458300104995960548837784360299172974884785423025397611420144085171865344341962074409753876177614985247875778771026326354025706289523853666621815831142824977225019543685032561669772164704830763148829142105871994957907991744197058942933274623534730380482468352006550798943247556468633643170002862482508341237100275661155165268513937768166471557478126275369347724184993438136558454708399834746531231285751560967184310299845362208299423512685661045967551240475246656086277072079206146122325234648880744579059036039555014381804471987191245727350451870585410306645445298459743573469371815256403464190320143234399592284760718538717869335548749297433508846068685633405172630681118554375181275537094965768378613599834260350553947541289769579065082700382532539053812869181928278430066142147031544231927835267324345931238126977015315135051803319020603160528126459788476880006817959664825187840530337586719554477356903008034370569389372511795115523498082190327579198917398541841302712261493777818751477364698718824550528034470717932303279289486698087852523099243050822314909250425609617337877392486215639942589683618359418079876011635176603887433057615447498536781742145077299858200988206610084427739847134324700669517343780913648216177460835241278379008809929539096909668882058536972194482578554542756636402518468467218910428322093647200148827711812242577468958761753136178637355347826471561028773375390425302963154004449435749287655239554397426933305769996489093174634914622189303875533176141513562391487052972755301679688902445379527094216523542168222000487218075157434486192716764684953420707788613134902326444639123250523120189359212738990691776850010745368828517060818324906101641996540013713085070979688502586679301630973028970461203958766394589485617771378961150221723036126888549549599307404277046132049510364597309874750026347577458403836635408134545267327083950558244572015670500738511990032331224784550140191908450587298542420514948577946412532411203317455313012750784307468253730061499230485250606552528809626648929093291029005743624470481528838776001228792496014593656165983759751128151795802617068177297263502023028361583883335949128196870065956691531237343297777250769800467279209149672412103434035540034658001353064083317174423784270239998538130236914816902491300529668901931829897057786296544549483613440681943572604392271644275679930258713426554427556309187662276984940776946768517506165765846348071345233381816449682218035602027982991435946409601190113517264746938483089489837142192530154601187581186371601804263172196025412713064451398130038147830879102782212923520326043281895552813058751802414810880967355158187966873944006564355295967498556361576286477659527506890589948470044216041418179562568003839158391551102169027850211916083939712729905281098239374090157664624498222071602850405592159024615847453736633021719808137358769698004654763298859992586763968943008584498982727166582084431790777729291779138633150371636794693389637973017687530336346802647274383034179787734150378322569877149438667888288198501055506457055507349265905503898038923511229164278415852940608350362829882987534450351546493203731897010303276230812511131647924628059414083119151562301422601710837697184639584393457830877698892381317552617865931117069411435574890126703711011989589537788533895337350007644288242883619952642711124767776924978797576732090734691232251870715417145471828086073737852538429502653488576987596395526637192653737514323636697213925344704969829077294056672699353446175047562288230259319166693708354753649934702563521984030053381690406156760382360644964013190533272222697863107813040610443942419753522022380568946824546192944444754585552106856157411803105524804820533724421916422864286227362555895169834505521152328370261511216326592049857644276801980055576832703049897043621328922482816298010659728154261568085415474076509237981386926734698312936462146904761280447539435347409141351259568318416112575091578291623794721874743824256404435596591777920484877322692848097439782966433187846639905958630015986277945655480108981233240571183336947495931582209898979675411537740321947174137412439547044404067294082990669964857092310271593263238272636445483443166374188730120431196845251835491155399870795317274053872274626315655508130289645091255360113135740845561827132743080762297198525974765078414856878652355698914578910451536729766944098775167088695219489443557541703206053573218479304708378746475044063842091921265093407478818775245177844496343459925681944908428796815273542642700955296043736652580979834761665683708754018174422125159530146799200572012037801486237260810734798073988491674237676596231993277645686774260945230646803565789558195405354623861256749738702338127029974264458368747057520477992838599453025218901983765140841498556765095033792514917232935374370157850980517445028994051992730133454997889815245971026259842707367593262776287535910538442469528570960518533228230921686371363480572672282501928766840891564800128275821110967382151527448043335331223860607775927423495591115344132195968079117270682885450291009335029158207475953927971028010037895593449736379259134576382625770580846728447786826524310554632147382215511987830687152079627582368581230817591538648756174387170932013933182485582348385000705121454490909653555290083189401762286207961108845960226397455500282348338216699062543183493121046378452128975862213243132943732870624614867143287465870189146189483140920464871922504337109670852408262500299657651246200799649837556568625596219306252258085465752072959706550507189814152460037593627448970816332679064510067956711361853550637768603395284224652753324546424735028083200942521055193324101425023690924512635845146026171252824048531509263337248430133919195891902764668917324993424907038702986989195126301569666977281344930586464283399981427937136226310022206590854730669947387382248026357439054052992464571511950398034586125809123070690973840531224635468927792085805198698006533141738845195238762406611254689068034414738440600914392739679697800987042064950379823787536102955903958643251139554076544871367213555882970915573941606201332824970444182593277657055337718535683036920914210145216975655776497337392290668161864395311140447133330530066381655645316037974992509730533936035542367721591354189062980246823182457099139706072736624739827078003192749280101668586547387086453128999424199789524824268538859087692194508937531265851321122910061375009059807659209072127924412639971318227605497525821121049057180300204988203230230931404299299844289590057344480821413097366782757464572269395885084995782892327539870745131889175805370355001602754737641696362514275002682411748286927963072324046194964462409044831061166041011752214093834051370407037101302662592591745199930173885193321275519522478259989762700535061930504177198821363485250063241908615902581717427649936576935799905770531593684598688073120995670744775768954942941169649281544601212971245256422184014759754881263049432084085035115409439209427922209629431060221044348624912127173230457424998088973373347382056039771538063071266758792628731963653697960859566158623489862116089857404960248282017763645345229536402228134713649643658389307394492251829149180432164253138148528313984211533680996231064581258349268603125759544189470003988062339805045648756074808910257222436212914635232330607948759839514562721001925344941433628486510684998775562268101046123626612028061541324345218519315031084861955774222697412433645621644647345265958080581498117338235032158532960384419181239395998948947811709502876147682067691044845345475944770483604742814454369433190233992082622773548653855616406304208434189721167461506816227349786122772447737904161361882734301582148439084228333477392966270121850202321296833186499221520715394250983424069170517288327187894208301823750677617784739771983392215981153467277754792551615036544566979051999383310280483912311730897114700711486718596697562209461213251342380208549165449147123345607127020053044430887623467349150714642995645663585374680753186409712069128940072543133697929890312545863883039570668479403136888766704251313306145147070033769765286584430154649489419522706817070534696117040515233721533705363340180134551736362740272317843621852035348197447302134679788714590784277108560233495256014625300211459836061726915274327145567254605207454970192468652821824737951961670899390785977395805502021144936010066801954667278041600665651300298379934175920116827728147473396652702748118850686393514373624248074970252932916844385296625179547967369778698094809852269015097167660887015826994667515213882531056032673629367011912348440778581892224624177344012141573974445856657332778059998265883522970784556288175636099979793581034638536270717805219644452071253256328967052410281580501383959369360425128021200101465465616718588028472382662336222140736345249784883710203182728998481280897493664690222671706985863977952862399454212536187018300036908664927069217258439444432798256443371148545151951903657783108328332896650790383680514439234087132702109509146496816984125060097316403628595021502854162622929973910031928130724376974754010921413397525714344865584974397853650410012977487439108589660473931896724010427461934470638558056910647616494705980871133382201711178700371555237975856441832900884864772047961166446309488261513860708661640176321822579712848554480678380784939508145816757439258226402831656457497658940475903768095843837915207015395767014270526308217593875888054071215516665879225765666620506055752986192377512046376581549355851313013290578054431413643864299649302790159770710467754696860874351509683289784827297530671034206069908879940764844848875234232952998136411550145297227637213740041537562966947541906718372484549682453925183102340894760317131466731755287525421067093092887197470314993757711137742457692279790464839476264259440882609000347633802430885344103450966847374324920391793451269532716885171558364948902201301425157538675374812670492091183510660426237092476730832554601732920770799522203609309329702176009625180738211809616294015972872206595724852478936437905041087645187326383823144760354065930990598731791781913981585398950354588729751246559161007673730163932334363220979559726097898446183994026792062139259662853110013542139456581928055222042871382829730984668321383741655291848976961380086714779664878581447127205258627464811708120547396734533310725068103518632084120818143289867024320986731548142668905550921409586029880749679198089267709034965969590205544803083641401469011630589544854783040225400157788672339925038458308766026072407244297157437853679924304468455731409642542322634313231967049561714993441825870683305602039945453876888404164758373705167740549604881963980592880415413876232544567852918153393452718908986781473192017411755395191457101524629718472262664570513063764310808895033339765321097979861608240039986154874189582267112477535780448502166027683151418566165642172627903677686900823013448311892960248163600805935684999683914181454911655912713634265055647257364057890367329060839209282603659555169220894910728206657385719937105422547069711609056709257055641736994129953463551143967156079703646159793299942509976685247954866997175698256334423114623874387711922578261399631553415383361267200189495850925343780633569510336583004582753723758787674818930051500460050973467131641565145608028594583031849291545146072049791722206097588799684666797583323534680239359730046391502267508457823144483987956158331048929413954450730938706234492959822420851435038340123911549011752602943212931626102834418146237549017662321957201006047189580113347347903000363690788791081228074415969680106749814779311500689997282127526035035735269955120193381729238747754779554441521827966291036291586102122875843710796995063522390201203183970911773130141819517773984960295392594784832428205830900118474878827585860949737212561560763328776277138949528311746491203733675908406544900449057421212743954618805084475876704083296296401259646739524723812575372644037591680561554803362719758978338686881184851815361629433214793026575700789835695690793765486809378306943395635414654369074765950659688128440704796385311389101420625574141583262762619930477597966740822311581690987138622287928705383124721079474583695216007017347418766105617128642666185149681945126137827131989883882504710184095848195716486847547613184520883513041397808909823330106529266788015918851853470140246484108758750289482253581738333694095904743686875658960301522959693188927326570798995350938710504377337375589099025790647467533507445436796903979676943131603463246379523232946761684171766803884729031608406917714482969492050828719302907166347226573797857144115938958747745278330214239188897749412343849743186285139294739356242232618009923092179735109197771875739677634613957148129342788240764955224606872700408367926675727088700180875123895087178102874261434981971847140743793171936020979829455372805713684072014979400056392177788208563089719685321986609349919730838421662779332803846530844816953897971184837210767972823516895383547338373851472380608624787724488636585063405219247629914033900726168207924826012002299984774422958870420631281946497597472598159750267647490287141028018082696301320776003316851372395428776257781393313716648225274424023684227886077591715384650034447204922529794147763587223228611553288188900775700441444526164512317177456889296259446932651234385984014347509243250447690542420621139778324554708425715115609925805590918752977487331922231293644316796387075081278078616364455835147757528701901976120637132178370178682709528082833118257793550063255915225451264803644072285546875023627523893128960733509341227973754981147791348547347177068170948376334076436320106036429470304865569848658415360422912388921876930733331330478935826076447592572554798759441011005094048668803939174329121229562044413227301068900969908202425415361051928760790239634827805290794389299276063403304795842590551572122816724770493080701089696809444547017212366502770943832962955390910318516642062777743110815924229699639902586499128683556242298833666474795076625900954291393684788489321613237123511144202062282991822472534855226618912951364511351960883039609568271696068747808407628186575928689603986992743131915008533006253319401847248602246510561230451164536629241492994993445222299000717811124682129324677091865666498221589257491129525496423284402701251395424660069307674270557204428559541732177170790560314191551765570744152016971123569048540643463902580355260666172141071709985451173844152360400585760905779054016820075965503958258410957901314153643446249692987377328823000899081869226136591149636193697865808543032000923075559224345190756392651158077442657310929929176787954133153923966536784267916661980832028602318426899280423538088442548622534618303821175097750385221436693499051920782805908389523046169221491532022804937523747647570429198109927619815891754741081779465507691761039325973693528694262084916823831487266787161513256233345336522774598916826941052779985147118049109657089833204388700587198238115728954888311407429077463604577284255406923699615148044045535908433253675430361744043115963800579626609363063898335751078350924110865755511643853257338812238399733685790693260272134188294725139179214389904076643894113246172808889616798855450430540760869840422132836014825045763424833172253038233316837368543938144556936434613215692326361789782512543735798925891261967781287010210249535467144931221264028431572414324787228072553270334686704580837281323022070289586047888063432774805974190190705006725544351812691449084013431027323288198260778084943122731630133887976421577417199709603868904499396451027460876703938260519765593260857305510071390379187196689562072852390006707506312495687022725485846610490589257969616252597932851627660844750804203062825395867370185629328851196204796947473342611763107920241210861098487027372216183611628949192708811349560296181277606723420166954371462957709537353560503656509564327134049309134445469963957466381420847146845306514193522842988697158384931728146049462223916183211611620578109974470188144087270290007862240767573929255515065653917772219110085841640034110976588570933524089100299741979820604050456840844591113689526054777921144726215943688694543626176962477857586667534884834321813913980751909095666513204261220162305858925915225673802093279736924662198462909641569361699172385026367708122902088728656566406960839894195127525178502501606627277280784776807584588182427215152008402399444432193171009742074498180082820099280747316331004766658479699457505819899093932635234572055099235400072527768928816298847033409806415734539765177914236712009417005200844347814267674057641297935711303291311132344170336695200028256727446111848044058612661088912861083007428159082597017882760925553659810371971115808505989005260922904897959279485030674533331811629357760114506108820711609435646537946556803303320611373290929953083484711256406376976415878681288803231847471329327698263875337422000185909522197634073718806028833585651953902858897659597147066677589357123673227023135300598776975533459111021052798327108962919955554864285924816689764132340324839711043969366364285889350420325364815547886749085083881214467005856748447894230246067964153856080258789857868636031623542326507831984605455238855703804006656415567958395997268423265362330606605715233661969601989941405982235958663583633670065113967556863740445045601798899380587678310167828542074145760159777595993883723872432523294200680285548229349565703149238914063512952819360640149400409892666894783346023155493594008148038035818649000934787466863569721457977715951695214605891422444104672557683029588363188667342807549608129083002036946088416998363918986349017282836086095232800448369787481380199877017354419248991722625340055725514396162085455397383794028492121604887652092664669884183896252200148348743663931903066602253525022598792772587387526517728989092950557141226576368152223992224234972133582961467947113106563703717829820437387997462227528534746181385708700838842908033770425222486303459174960614240836524343476617807027316002964878345111758767508601224760416861470226901595568476727959294905241408951592680183756087165722354040281825836774137341142656052183080548397564019309379684123976109695566322338318983066723339537293230797127586877117232879583558014310527435510411578315792060398455471349153240679532494054444735700671605866213079767400334464622370572612799740297318308296103010890261483086809157525396039730834127638455315248604062558054839843874570497552206079170073450654230749688942124564690169363291297513911580286649699830079368170052657171525575139441845655891349553875401365073626846610225234274221700783425383370840570652846736977397328189411919758031351955424180785834108482654871358650455790073493826313075507911251240813426924390390282231889803394645889212150025440281592683126020859112726223014492878072252764653203794504877627938265856065882443328615017784721609014741845651496236349465586890889175088106775884491994266509392203267074208648288937624674635848731532244549407738437214758708738726263979672667943952416334114018153315008998895349166969795023448455074255634181592455618158231539915243091128102086862053062687458594912089351826198935622977088129732370281467307426829905509655871548873898824625178582043842129494531054296388468437254277538272450903696771133915001207556992655003802975869879083380242348453693616859709655299421076061739289031877342349512605115515536881595786607619173920770200198908421981454343009143799440280442186808844094344481504331428056015336256078544735018739436462020571948434783966939784951851606025587361360500402644028484696637068345165577777058061397589588430876055153056089050312143299550500623063560734364266997182033466330387082575542173076860763149439995144198239057977707897451170498233594664563100784566249032824281970347349811120490561895028144023038205981787739995051462365491352318246424334247431009329107485288926897867085393052525043375099471738794023381864083697221813088198514137937312658603531378392414553719454340121529611170765152895575967950780481201734224779049809601560947121491827494484943033683773748813325459772104864626518061225799670501910757829934540478329495608099779831930382811585997780788176468362310377935845399521733378128796497685302673656404965168869869482321794373013172447461291802768892888847444095183121958866900126075523477229699892114430127745117830974979845118654434181636122619623084745890509515018935415752937329404145394869830779873055886438645442863276724230978834859105420077173187920925573890902539912162536832787346677894378980737095941216476223143647762086844400180155245430368112830205341227154848361151227684731664009199865988703371267788416690223831770340337325807808173376560704113039928990891826931849797013838402300400992268232915317333720299237047129942234063199540398170105132272770760337294894724154855000003488063083376321766247496701991494419373102547908374206876321484686816517882360824190697321718539141725780299097688155261480014442736966196628165639184755609978015616033708764476274672798657054223216382510554908464687137931802555930590587711396378409898884050139586523940224600839372669884702237255011574268175451888531653262888951174521486775472470690452423670183476302759705445266716531711093957844616095117184615637480584418828595741369441488545835441461864074758089605612416115355307318362991514680391313213125950899651688301469898399088704639554956770420924435478756067052128077887162919032231021758914776027915642749534292577503221797902343747588020207270301185033296040324484946457034351373341791946182054030640413680535021420169995149413111824883383307326424033863414930441294654366747619302462303932702280646492939939096624607758389232723918072595350628668077740201013352784322009623761058980710839892629369419339908726955962180728673721364227953195764550405342229948401182242753458078593502230099733198906529676007567336266390909878023095887642901673904401264294669912230713323613437559534189213612742805958343431629982443047774878771972715904961724679207603270167910407369769659258330394659991623928764417980760729096465580635637646918919674088849754188656434106527123078307123328244509459084778948956233139007056626547574760006015558841002563832763124845706664705851029562390570160197774365704309267862104085176021479537701962454682929005443912123582608428566099033513517626859415438694708984671290251918403598775861009138395687749099158112500469532532302449377853569997583170387198639216706172437923509860829850375935052407409115877210543579660032240185662254031977409535400642295079978107513742912069280437611246642899766985409634466908503685093619543691371519999395812454980395990663745269870940716358136132125537793586416478490606666220739133023723640691344539681547230644788010100844036535427527274787281019473242019551742200814185637425243364334408490463556163466760380847642882765431408556236296115848109966706636411808094389738371172199052580163528408585378557999147982383675388975608429714570391139953549824502236566271116908529938334657481950033831950536858827508430176183857533024533587270739089834547718905193683585610446348674415652700700335514130371034065015323683932444390544528383607812346121502212103490917664492554841217060743677224107356292493538598633662882746262523742160030201933681999604273023307870945662130741740081543805296083046490152627868282584050368574419652038985569825835967008926060948243222023353773225676228078921168848717448615644340192207626029027144184473814311805710585621861288935469085838885976022962003296749303880028133371447818833382623303741211159012919282974033820514097587930979438804881326329070345574128160187844785171864709814232600164338046460909583448454735999854136568367522889746685434479777116854272828413067116965373875704780361817982714519660232574868037233179650256570037583427858509111463857114931498636046512682367326482336518083810252683599398013804937279958150103445907200663950854088071958266766466254846924588049182205439710496158908841470260815222094202051509184232931502768760806331982001831498737973542537114466732539828436744668855816907185995125797673991006764805547337800443406684177868166454932961995023858339852277753201843151064036772763474243241580303354179693634783074559846513991057032783136279290193693054437399861480993287431359267664046485712230508787999226492466716096894220311432019027245185993944528173709397084903019474470492692359755117252350602299423600565544286345131177664337299760721840174580415027066541897674101933953808857543973953018161319771929535830629874598012543133760514049226817663392895814933804194764874549251611833919817168521293674775500586186596052124177218087810594223557016597818231696024665858582653678112247078028000718831455207989209094346339587696875367094145695715922545880254016972873843043360351285304433540524221339656730362415769771743159488987277220768783949181632020177904365268143146995591403084291765299164654146323762340112338811338439397678773602780239998083956166586966687547410496029105884988609412014413821012086071089874987905753784427115424530319260236735912947863857743535664372664621036979077353235006438423636585982475834141704662606582009179240063254166898799820902697920447742322439673271125381549429406739790868636648378337634291816290869325137133583123374792363921043701805355787167453386988377663036346024506095403574436847888345577931141640125547329996571462351438478379267335020437496903682333153861000809611757533220186702980565348159668591478826430655774922565764714304500784862888945604253724950592922538870090264161399903082957989330084679090045540980935907513165229341727026919205690232663980130262346587474859306565987133563907092674079445583785868601094836285781107905759195330239324498581322956611036784759799114312559904638810887421737582471581138656948036362623679895720314080652772677757868689984382679335982797732484561498994077715427413567243014160223312292335824318526604902882829927189440868855091803424319837534501298170593275951500369469810370852885652836742121726519168895421864613579180048325065273279531148082766155229335845098755469949392371119259021016590363877748064082154683258201671589275618328724096959159711107924085125859482170705943961468194233845284790282222562617217257130727040212284301185670035703001050219175377931720304135796617823106887250960619161221380048301387366252542176304244298094465970180021044337873974657901131408991971811767730879550294089650433313045927886640644022090283473332506610697518647124982370202427908313719489887356281992007239197187007423475042601966024170284231239340295746454313909923139841728987493190121381614871635815121650995056482325513459371622180295741238907963822532009797939607629127906865789317785802660197204739380047288516331665334040468030735958524831334551193806112760603918304958298237233783569129404377427758254325208484522157924713301887499314785473969926870372692467669655940452164539530864358004460983217373043096896167099825192998350913872416932721414090025665454294790292552668482576983466697945407448685209534695685124488867475245800461243658391006638480133114874688301782938231521059585227062474693959080733902740032579862906013345028940041935011767602826494946614090450501646089872887400982735886828916648333697924535670720549159984004571476166893730289643353388626875988772102115450303825185261623608430851948007720695593737913301685535573128338135435431728841159555528661728718548115933918949773173603468961922622792430616218352480832558231091123670490772065422396638406673611830278378475068588205751873881703912431156895502425297386172225684769190135255904817484967886627908358593358872136880118915957007229260005172333241192014374794238292192651771049783903300166318049508086644755285788780846458881928421391294443580320293505861954511859131068154045799879708848288214145888799327101441896175409279495850975239513268673083505272938912392269172119783556204644181404812538920969700093940984429853606029448013144011532626416959669381561309023020219409402083254922373709919025756986860999113420321132312723604424912159005570632603811488939815087889306577802982328931424845079506921507208849179929949589436601346588944888722052699850381119593339035325779338230846801149168879120796161100435138518011654837947924722880690271335178860762155194541290467914381170985213721200334481532853126191156495483952404223411692362134781576503776464197873493508800636257605802505370087099690556095545583179517935380696718182224465296668298397700217720848557649767898565895318349487937245690181337026189386702405084328216275873942120737016184264676947765472241706037791475266113143048186034936075974358471162936729390724159830856473876821924715171662674197421617025702397479743601706603866571216410942800209511267009665560291797203465566332512628297121254479644002248647156840613556403183624844988273412090719859872670316067823097004957676866548338272575598034183042075420302837427636255941532724938151251525432928114091162605441561248914452152068260821496672502363395357811335424889348306119522943514992632354462036747577817351301123955967744054166719771633837369237807466812965412686616224683990889325854256867489747582896264891130485086564716367203432757610358071154297841974079918750966424166630620234115816471847032335413690187637297720418022897108842997507481129275573630196427745093575717035569936208641878723830787376287058206751518456954560653359398679582303301416716212239069433663439053893342063070604881926933385685306571446869019650653291427953339619584620005561941661210973204455009206999876861321071590713728011923696843645467328503299953231703150333171209165790570527805915888497493934910540711419998123593486876070079795915180908238792744734079023703396599956090517794952381258036596197698672427663418000600096302157753906184995769143179244159555313179629577733845638931845125861549239472594419500855471807238778215843854399559548674477782067622637042963101378264948284670700139757396004509072650512689975800625527519091070039071755276716390155381812295359624610253006798407395307709161070753912932279828144527485004814452886209999315000655345420383934267623964949750708833429927841233107917284859962662607929598583171950703577793789054700649418304904077916383166261075269546187635774864304470640749784422468315118154181737609697068582826777673217921318226791843332566394926984056524103426497521760671817976955108878372272957095924013296398422627987870309452168753289574416013262740960003444444217421431355524618150092460697797972024261977271051621769329058716443029509459212588614126196269584072243747502461357582228417876587461928785026147505740825652046369546014360325643030027135086745145395870969624011785301608681582064227266664890706816075870776363602418635275425276222349218331719867152335721298883759862919702365023833579501081569099721171427569175239872993476052807702490626321708878215762552174744166946753847484302437501735219952316424087865623320168931155115412447549287144096028834088630353141023621353931220647370226890745501416011851236630406722543417279913461890334326159005532686179296160510587897078920159711788276405759910314093503149604715994379418875109569689135741982422506166838587046452691932400368607380978119571290898920305227098794669574537926754854296914163417018233333896333491629271422554391539429541044903791352470785013286077622046753293381657696344675636154298639963352427056175806081584855006226665970489570624731965778397827187936325031883807809377842194279184119089259878696717110599104173476726572941695373428325580168028347380460787683609910074140311142334624547953059142096158005551163616501279616270023755220556412130296964407834286159253587205138003882179363376330567989601241678179489652288295842455773777814897374624832318074930471101078376818601283615244739339610651170104172740267324478691304869645234336963730643047532874151314832700491596044812209196573460911716945001073742041892261083805633476086498283496593024905332704330964923673267792312715958871367100679279979656908739127907030097465136163224105721825165769742541556868091274555855628649924620279227677441031455553720868976681927128384244569363774120810191801268249546160126601434947259430198411624219729575811928887481879411082212857514373331084676499442042650251362094207263181540492893048822074667545818961166224785441002032624258943058257321402865366946496582344586357006862030012613668929666332748610080763929009366516333553926602434525788464282410094223921094339299246777655433588138282512017260906530779321911242718433476015112918286910135946498175065891569719678524680457853602327510898043016354815261313758948322571631575364026704467764134602234735024291914818202386533708613663236276425692477349121881785673600367893554004045718905546162842694642493212167309536974660518392322400276697384641178988563338688987003200108027890382743679456783345622860036939323257633748216543041044386213968466593795635216033602837401620568511236639012023155593456137600452986850437148896935058547969304797467037957202599200004885597665615685687670360478404713791004664627410914440606473486610201676064055648959240321153750871614652780959621836926948621824664790850284073338924716101267807258678260072917237422002498008198379564560917590833845899743207693471459465189493581723175714255888607326325318501894548283328523503778535684061827342135869256056414923299464612780100182678552155275840927869360783316639390661047727910574463896019146391428828276805833923515032137277400017438062163007851596865838909358575748367963520125043040660329199248080239606057400863473765298278006455498998079805070234168350645464288983885961073304993565148984655594317186474533563919521687605497872512179927286562206715777267564345842629557348923441270951059634879570689716188383003816355383141884469978470464620736404435011029014400459794747994158985217310099514142789986491216490722058697414636475097137141317195275435326613737295535519077903217815717868677324779015515877950283334791083712023751931032260812896318879194325910706312809037496719173332620380283995913763470300982228580643990998937980112036701161540525437955176119018418147857050615348452464400798954730749030011027939702824117387538861788293363321622460070862132753569566384020090608191441965759113679705887532032388828062954515321053335966769723280662116214373436104809784214273637852399724301112384987813771818977336725637179827562077412011440274536032715944112173325703412486926681118769323177609530976040076914497990430139718135069692734331082515546660909894731067256264291099509334860774046291490159856905759778388223661622170339921068497171372936228491814416616618284844098359613605115102414014538381715371333655505298147760511387742116490225907110429321629963908341141141698841822521616165508865657601661059415193739894829229412445839287166158872156424566903563584820525016489141240556239125927572593536541272686771865906601696994782444938083658170446460679381137988069341075477484483615575227484062367965786279887401301340963621797325685477170244440887877788856469504530992156122987657389279354416201229440247214430626434844512215673415818282425428728408725320829541933231473314061496391165119546147321686322636629749913925832034223669447785008840919317487096532639416837319924407503738254210197898722621003224377327037101379380317148103267396360466586252925723630616741448129182013475429993534122032695722354760229673931827390627109767329384512655278935244902131293881991937574973188149634118077446585222254242029797763166878175287403711895890914024215205953447252076290258404264917743864117851457967928510207991753431459661699756399996225817243709164935746085525755416185251989801322749672880782558902013488679015166460039538109953172076958615166102860354407683975998813362690014099303118233461478529869195227086059107110285981391433582819810603049020545500576077404621501177684294121822362752965029925260697849009549951691720213306989495615678250104843558137983597039190517666009203509429766443712390942002302972304133174333732567231913739729127745580725326663527463455573313059009687084923983352101568134607221166290551790662103140790637698574248620182512368190795617385107972566181429221585905738157145904190211493434737824431114771767962951086852832554082276114444242745131772475220882011491029573009406562743942690468006548079431934499280133764200013180705639408948975631104678903151374289932625045407744866961633015071053703178798805551215878158231379606741929109530704628692901585757599682662595943083609674923720081371245746919053822942149617694099605503055033359141388668681295508133802376852511370687775923533078057736385820594088846242342448102831436346358067234849045030572373262614977383908252276698422285127129792455307781250831825325724478110060652394517565289828417623946584361296565604013143801126368546621840591098346989393732781724876796797649868969136622211409449297468921263439294180178932392037383285453778707732551031802243708844607872361190684080851761935496862829857615114801912435264106315888163993933123337131560895012888591818957764894769141705484885376813406591954092334467442504184952614931656547460005513214518553864476397923883126039757280411497769875925738460208744522072304670375950829823326315353500949977779275387609648543065469175014258489389543969597654234655926102268733738353002092278943184109520192191110411043911580258068849295936291417644106983476056776263625568100390104805687899232722860199264027308974166028415441861514010633610745098546608591811490285147469669266749026286525724605796232680033376874890719681828301420663143791614258565333640515529451181527279609543405437715446566268689438959356540982736172527511000319979189125370290495394016202877502100998118006403190748881536067753529556529542737347288769546485010100498171202129575872835152690832900471580769464476307979406689454457682304751281081272696062298926482895518478829876481204360117822039492435866979727339343015532279429933967269106616191956459158963591044059340669474801223108751922166752537072935837911293685109856281242205942024705843614027731384077372180302714091629031958590175191861402815929377702965608576224375296786580725192362724208437629676910191088234282710938300109552721989466893851039475310677214094436832506759216828151253621116448920218293480220816940409217151564502111495989538724266908219435627841884562755040025944559552018367994554181274328098565949850859663812340891758005218107447868635248727608661969957594354309828698142931393870603028528370562128923444793832061800130665414005331868012646283063994048609460072225542061557110581866642543315953454213918044759100168097537013384012980621758732991899193583699232850789340637644017780118969504630469633780222831970230156015071849524798081599691072658408967374472023398970674225785899269800294161781011312479971305633019818605226317733366237150123941272088545586834781588248432485271259544106818569459630700173031860402068791986295169119376741686047255997219743471881832385437475112535485339677419012533194921215315221317422826110886710702470033196529400509457552058610676227116294907680025782052066575157924666600071175958245656438205430217473800322089221001223062101160286049598587456209270997059193027804187109666585165656463265486330784289650666226935119295536441597759696115372968121250364929232451815265672999059863105380932238306355813438472373140690998778046332590102206526566467424346426345692789542437150306879151423107237816836008263467503795485119356304393969325813717285775048846329127750298433649294617835614224663752802320323724387312239122177567068862057359897286129360441039840434206278888394640730840866685706497294760295356730603031691296261316754298097912513929007181586631360984895487792033505431829615004299543396260339064857058000918468603848690280477703624639072280585522243605722879655592702592592603486962307888379293483245768443602332762133077617524880626521187157968767975290510287729308030125953544857038962407193507568806083317014350734782798168920622095253257024009719731562803053230459756234728960622757889413308295651293233155467068137916433663323327132465462186141508707086233907854754561206455213713702543369733755253205269720201372271467241039944998027736355758774766641486640706695783726239454802422023565262281840401739312670502874747704899198868329301097385714549817128895948174492336838469498318483141788495567796438971929873784898796647051800960134447775241899297077824649062128269932188583909155878226450411258176929609571225330755777037313624013134557302117519903226028056823821810486824891019883723750538013052098458927085813758591126154548562904456507205282328478417008048643142534933742732269964573548498284843002130543335073155639750310450177444301619282477006485255076610756930989076729811513652154321302430936349820643137453172693344903399643339159506341643100656956341165205672939575252700142513841645004533279243946282344430262982220641617834332016747966433929004317404313771233719839877102829979776741446984647048007112036481511074508679807908459363087451630118754368300308309198349791102095923623233473799079257568080953794734334888459183769714020819271431515284987707168439964206700799537906389755497933435340068623226623428230850451745950417916833420856593601151691457438075046828769519366480689945418576890919399043199142663326834887247720956367277554545239251756502285673432964816290584206299444434962260238330305954017134910303005172512499646213744422618328401343590622494864269460936231635889539629820248910259562991976791573146816702373498030128561962879226916419698654755181709706893571420370283190246248211075522011458816704033611443258014344290984335332628697589296908722561239100998289129984561788732331893551606779647106391356443373488270312195172961335581111205902773106206761103655155378076069094974921819828183376033065510898276766984579012030321718403327581663009284395991667030787338244856340430832782758888370688974796720442358009712524650621498142724963546493315597681645688269665414926867431613158313241882071643224988016593890926460435756261262198217343100564882511008555270082658037082732078985510404017436209268945661809275771616967496993292032856060321475313872898016443372097172064440191020006505402168878296399465599873161737018580668045456670357799976011354516868776377346059793638785853134166110298623260227892273861279648995291969458532033623237669528312482547144035233152278871382146000449695470983981107695969629365768425387678793824867143975525518038696683040559931727334186731416309920606234478331319128193003297100317910361124952577389450254695555153635130362732701794441820870656759600118061318008157518638419467946020737166174014724136221620734814537805409654335697768076026389513686707252029792630739217945194450330251006425442671236093344435242576374398551297618342259402288344876146073254132328664834045254156059544396596011907670661677961196601652884208099630370990434500207086970576795030694612879629900194972227498313825135484176522594355003226129553368115768295460486938270113766559453782167853537188769841046636732650558182959428170502036266486209551298600147561512453401852815879625463845474978404705959886448727239147726453163955526983093306292216035081078546426568216933547097163720462603426385216113254835796648509427463992475141388853645499911394691771544140089050673197334581869123007680995859320459951104250544690370122587055937305367586876590386710803177561188021282925257573395850870272765773578098035720943736370334431557767713860204883525821852138215896880949810052221510096851255659297569374015481551574982502168196856147771491791350489057386106389523018257443346841969202847009752700018872750517559322111388978829708658649832353883883031883527535099939213299561769298247496708069513840134441650941100012334650336670083916170589574240538112927178373670551453326516764786650101252450970326018974936055608352877215361479926448229448214445248046858676842715754146228780110580607291919383327887571618955360755238370761903454684093657521106167040788830701546027006860097914814583734139821719635118243033781129257949809753976208422344650369022619734020089863514109482857733026823777280417986725826052873275506614539390889962420908773879122782749076746369294046363070984801028470292859044281802018876949838053635825935348276936142427665761443736294349309734599244168359202793497026355312379461928302567255261668998568671845983492117407375945526242141648806400139028354779791291486122994040568151719503266164726561021457246461482389023712916132455015879332682198888091569434962775279883205454181385908434463972414262436499703096855914959528558748677090334228972600172405175301837361712766081617291171024652202434860455402981790889419951352600822524149142329122984331369403203860509750222488938426316042579889201516070832363510545435279081777848936725670915039715306131516276738334503139025840075577386525336324100073396977392833230627782659452838199084888280879857783081419786202761781705934225106617628859894058892336307087354415996431320680222244762093282667160522449175012779343097008147519504049210921668681079901245079319118609491974284818160609105732775888131664033538486908538220989027945751296912020512157598099256175229678463108417591273517750010188511180226936804685548814058333520783044550576173300492095467655070370496133134779223523614772466239022528069007185341175233401592395829537733037367787575658259889693803020494684681553425801858727489050061478946206916236467937403811357444487256006522373859020654585618707467902970730529617945686770540163123006826395291611233765519340848938972453234094978476851177641526409851753433365326736732268895041124837437220205114345862586838803074231377673074187602184529059651688674257245109955911452641118059997126879112782480320414708068370445327268995259123517259478826640749288796095429753021800471482907234001200298426797785859570311694073824061373934280115424895625463218967910900616664141005017646257798652067357308252242969661164887697014271076820489038911467028403470827891551627215417517630340588196852631783079815946494834298109462706826841429049504005606969182452907165662032642849586791910026501217166789197609145954625554653201943226862559700456844227843353237951351206569379740201407190806939096864184611846622017716975634282592982339381924057617938860942351437301268459640994425979515082191099455416482820384558215378944191917142255738903839782982175386791013527839292994477556890281519843575657714333646725932384463942330907022640008820458256659608321113019862515125719686742640182452448057685638363969006364930746617157363358750418584594350616903326648548523203274168869627190391807250405524864243634215982973239910737864091786293923202604850489172248319308143803670319661999057758702790890775141697987685567109399559697531576784400915220034870631860589655077123399218891589028546759648785455862950615259487079909165481140437522150219919810928736860701591251220671259469861832101733550233285963576814506488922480373106797084498743614146109319996665949753032359151963602136799422821313813966082113422453377927469179164434347735288774234436143822952406756524882797971987987221310182025914122065520861199413864671981183586942601585777199622223862588929656214969620374114924336743456280715513764265668228617966261985097895398267075544310965357695261647055701537725172256803933876345948212554641405500426804935004575016142927540297312622728679502278389681687444111473826161585049498240075021763856082865017504763329823310402135837098770499027741732641888580492424630930098306836855888609712939765841230539578518291487411033094144884787815436114556780417258703929798040285938835268092083268107531438077711296923088478051178403424506018818488976265985672807558244097557006156216150881083623766195302449119022184592179679346736452812457368891759225923049862070177175215335514841285654688049940221869480715609564709719933849086706292317032832534975067642821141850812416266717534535916784753333664192590081064773399783403993847970541651123355392777472786982838926178597069691964631507745635751255371294385428275228022363505748503366726769244678869861039001377895624054874955034329670005396229588592035750199730764520087486034483745727996909742518286872054585683571280734996707625250609174354319173245073827370870448101572329223458075475628376337660903238203154246121359296675008918113090404997154341639912906566907349471436735675830865618999617661529643033721725646499419801302895551871893163158244315606347136989124769112081827949708693819782585802503948203139124225951399383749574928900525064066673251439326429448777506964995206436186238707365144512650418008225767565627704809904552538827720210237218827727881215712886969496900934797750549772535927648815638709393199617379826793358739058963829484583538190183679150074848933434712145933024496391952964114667144397304678920045518139125569526178662969454534761812813320582799468568438147571430349759037833308973012241253109884872868078988552346660146174151338066318972668193520811243842699975698331808338995998958404731434514476261673932225016079033043885380621262357166992472839574270977230691628019431747966313922049630609055660114721685268406078477969649089426533920004095410168719168109462265947649773516558107865784382701212614801650193454648792914129640954870381997269001662211885299341047195829140638377413673063261720421418365234835558061550684279255657006778945699596408383099374231704058917473271043158516056775857624461527224729380893875472984788380225998947377401770073130370678949638048847925904241461743912203060591931016491292303364248010006955342997691702071121974321953205914342048971046859732447767597077124913832644700179352240725713967084242852467996233670972986470991954423248852237214722024934648956975974295436812133529678386594173733996407537769232038700422492633256552971795099555258299981162854417885373791594078878044486341581474456687217482304053891184504115239440389922354360426609136445529432684401296087676796319140123905206957883013355875066615995184407811578171523000224033402585381292190125581491452491695384752753584417061165185367104681754614133086739142885633395200074565044463037631102192919302301287519764006147729865106994412446455109219384189662084186132432115923387420891410061686947521020884310531274402665211610730711167956033093367827376620272193605629170825376789097536255253199820847184229899837077978408441141101163829968721309459329817757704652957330800394625908201042196848207760118661635480412110539809400879091988083239674166976364251853861536861722646479444677110674676846524286882895460029409750182768948187740650106114064318816402918904731001886561613579850338777969448925137444797977278117411330726881722289680798471662980639276003416181764663542110245040442291843778970261455376261144409206117596747615452606393965050755466439936371320899045906904158203859396584669210464526360216039755329859466750048672417050602424985048940507187418029678623535628766120660823381418769102391335002772268566563493603351347786314886194027427811722783298160468086695747022942369487657257031334185164402766229697385491715134844068707952123944014878088944266742849565781498525992978623544098079665411110113199428323343030924829117938106883724179443184833390817654762376006124812933423343413830364358211237685784572856004452790086141964141504823971937051789190970277339420587786859539879646070634950529144859785874184211089181986492251893657249000491659313336365448661135823200172196600579690038710796168507742164133282958962248884862661969568628026558765525496859221106882290119941881882057485907576886651902726392987695321455153098466845312383620092990170986809171718984957583937088452499937357026112282453256637062600817672756103717834329908067012013011738640821668389976183380040268153825005239446102669176113623802471690355116844164922087595737684569530914011213855077690119204284500031794022563617336918884263264251657552118875545349734551770023627174868290561551118785083757791522983669379921055014249948982944705991772799917217593994601547381534410841842551277960955140028503512498019833434929303208378843036243951870260090953475620970188860949094068653150989432260834927930639956004533894759589108370691255058821616151914322503151453102374691812362319654157245547385733951605232601449792915074782304987298927181660777880550585772228161930771044806214613845826552917190331047566705612916347594048658091594106677576303222053081378592181591924265020304905603475016499594175395154641165690572609474299881766804952860151275866215552412068026605831847388654810818808839484925894144668163378526170320346314851629948925081706290173741291265822395575491003247769419722240943064981944790825154008106895010413191188151123912768403583099450029406667781738830116533944875583601072839459724193235933650749752816990970579581952634623993361786992619139196400254472229400143253330342116415226707448374048789063185747241326689320805918984832805564494871540733346818924478585013890962215231334237045883957051098959822600436489030829924645072681254205498017845376355909770028851158736070327956169629798242328506797923436450506861236100545288693579629152195284913273961259396817191386719238673216346991670790288319240547907368851081829692716614204683703176560459248603530270770962210898938497629164874391201843155524075347526077224921628402000867727069923837855050247106047523523345817467368734069451591652139239627270784283659972621870873448843215108740479997078334827984434505203267439549683541852378660758123011007948622787178952134174110933903313823683760261380340371818529270839396223227235833096427887481923313494773174298448623312064383683174190707019563597479964696497180749697343352508090967370866802618529398006425500083315393309144745309674205377807393900450494219858019869390005232564597015289311396814726413082157020886136658213713563486913978790994104316115195270025871482106961068585337932785241791873767327185891592323752366766748662699779363218322442143154902058527582406411582750754286778225823793868942777551562750281514902266904557180448696157029711051027371372002645626024637340072883409727754704552118442006217055634868546027538994210667796291110595227837545284150820984709165906826631159334570664203868689261034287171918468639860948880105468348496407359429851096757039605773225209900778571819288017183731224505283639199140640479581787756485662082233721840176957822765750794861696782230178986838299365273074786598261370240465868011232162959502382483770975018776506553652295761686239026842604575242069709386105805294310178353713918454139831587390328457861314501106435534892728427197908715608606219202559664988087823179482105055837929005296517533615853575324095401782688371887216016743892053907296578379849912958076664622440451401362090558170487153623427017244884143688107132158984255712343317006882251493365650161354941014970360412515695129146738618385947703768044540822442319225705437986753990835742728784459026174280836372060122872101344948882459011066160450755037932395651086827084899125267203032590926418831760569705953515126397119684517908425115055243067306638169260217576759700047151016552466308157148266017124980120176205993510563597584005492418079033282703085905180831662725099058720749546899219790749540394593773046988096690203797581582372656950463645146010964061217617974485293274596736347669679169610563057289738554181151331130950291828758192701421773131068676259921509634878676022595115972898520408441637322330204663608414504516162900743593247117153612134965337250394155205801218328837684324172237588039876439812244626407686973377855333946955980808725547187579805607064614647276241724269842729731654043635466240029236199190169423280481488301570204583639938703240389311205332199504120394859194506107921568716652467671586508915758580862917270567285217194823556093981040814904158868516560764216576598556343431407789189926740261867725792587666859221740702701929597751447812373522577555259892592603392908550643915934109507857139825617847805435439495690119152548115813440843197489867495367918146688499843459119725245385881616914581061782941873257776980678930047998527961200860237273551778108682656162342537589002545522444444503618236199114160063718138376111845532458101682080123129646628136251209728094979163948131342546286803486454901924917069814505869739256642100309799709920068956807828401459467391684774624232529406074228830498345419763596325649046167880399236497717077690160727336068708311682054775415671657245875589429063563271938274727836351512361122126657717616865198524694947051142228846781357897039210573528850205460784027220070267471748911798809111726761023194088169455478848379961554540956135450838867373117716332808712784569409092940765208777252343400540937006739098697645293254679000227107642874892274903452522909266893630327796743553470286426023002004631609111205986525225359237834770217889435773670638285567406664166702478649571314364655160681512427759435107430320241753632085750901372583851327748149888409782043559306226215880506235022244617472233863743306999103006548764913354042667493110447918488077646999939395655319333799923761193264246247761963748902133904703905996744535126094102146705127722501099463335538810691276076907474225155178751363101927417267154786777231948040770563946457264712123165748497829640786444716382260011493743815445494994129044926456292323413931031712163258506954100884127610455052286944185700437838741260485150415879353588246674031894347746050636618213019508030436209824204427213477218228710016513412848504829254445201202571170128743269745928993186997911691673258394975510880582943809024637139191658708408535758632693634516188583742452039355758420007816776981465388868605776479930127039247746430735847803786002233437684525021984380894585199278045429418409915284973578336951020956901679275316994843907935985495251659719848664052050215044610020929242450643604486201359128713823486928518270492277482101768075822725216346829724501863056877130034944816418048637682558343678767152068503114053465116555460163324128979824865145324367376964285376091039445170170431733814481681044508419555519595780788546160512852788290069534082701327231341499665012620706561322595153222091437377314288544377120337579775976745018706929514530289729924400666634981957921520644705591573531647064566209634345538127808756040864366685469298637864557956253725794077394864475762396395190318403826446991372185085925432606588732847897942824939917791163937346651281658572224302457390100216924234380112946919191854428658077558233732700776600553988243052557251060787940029660038270572205483755429395621160620682191300864503041090027034707403581401091753265220251817991368424307611622942430927788444514713394255903834874886855966744433987278708310076368372377024065284813879071038981432951786387227563832572537770492222888676488599872594330501686290032506488358768680287501885382703333439588830755969140943453934025602671383670669161353542512705924542896277217661119556477104650680398050957883800658583285286617550436320157283939406064946454431718159457946754422179765680961964586971398450839589010690461934113898222971016724633019156967701225633296891753386162094731161223776114363069922813103501844736241449643629697570057417955086116583682151539382876615484853062714321344099642111008151652004081037739418164128114838300906528160922394162678285154381119568552105404445351061828554435100178295701897472130947061269526171913538827544175019435962835538955940294713963975466053225901501371341609486553262996977987368620206971031119006882141962858242976526622723772202826655053718511125749080544269664487350526947994609448030761059086621604461477590250989947676962882369094974249008776680113557927156558581409451028762322820921449533028836496474498153564200613074514971249669312212583169974068952033034985174881550529826021442454256785538584839815135209754675844764805131722742547222464214976454639316699930988536154207033846519878778903894999318015296499161103288599615860580729637955529043290187069092214998655140912686989989871231890312186788896057075577113391966401806459973723229409151170306565927573022495190564025074092745305279327994993812567584441851902090565071954351621284047056213954337301791771829185453701870551167609670447620288783612422116341886883053212167826996682044084846699597238325671245494808580164508689948742142521495783435271070471189711818893906192843098590873516726764825569388076018594252471172470694771503472107005389776347858240301771391160872979014538167370037134955518202895047244355156317792184193452399090495273658582584362802576844880609440789071229754300469938169938019557615108263785570115922153857319548730047059660179074438041270510744663979047534469119224077161093428408038185806971434632268040231401789299740936265474022162369181676757809476059199739036171883626373435407032375988377039168043007177705245307607138291149094412740843661397359408797891641693377591997595473498454358862656061941390386506108397159698233129798487512951256352068221909636186907559630120547675593449338363587662051935329098972074109317892188060829714401943418947265190320384081891884021451608581221019121142574205952022475878020412723749659948739286218012714826208088920796955945021876565593216084163927733450796780216694671478538656616467563903209247093298265311004540462117288851283719036405261504596931441510304521347552753033904932258083010838715193547727582157736041660321586239204145410799880509030901267938181378331834229332870386370951193364980870953667152371837491461381089808016464638153516346014057775617298249847771112760955531106613406432603243506024451753641149691107736172867394872332686366446982286364970466666141742763968311099802399567928020100137187465192307902070072654426134623255501391531920339240027625505601862560286426608401096720773604552498568381685521538183005083422438349113811266308479423069136510893926708345091602411042502483568046332162965001962544199149361598173790058054393145817437933951232703227255861642060031804880731525193904336049710359125576906959373824173691448145064906533919866408848094830765265580727523192373161453501057197490285705289138902796165073694612015503328875569389923990133694292228121933262526207372398054682392738371604079753506549203447526076124041387742272512809289352298190232251963447149024455568041892011396521827177266478108490199453057863669702168224163562329407093366781687678168328129136586314053419734414100950136668144579316267001008695852614515638476283324951274702654785337646502860240092918087761761536193112442525202777628522571220003449162256291065535477215924463953793755048139326271337992626221438420181591210386335135975518890702482445119374732275278463194882291582159016669998672647072712992952545224658559743854358488617941880388391633449404805553859937300613703190076065404952862917245433506082137053033880983124446379192279905209505364783520886413949849904890871724966862326170222246677872478936648448269580229124689534317866930865331639291191459878196103051141327220642457195449048112162876684294315978077987495760851670018179697240820905603847978712605112800657185656205000486629474336283051907730906718354707076213906956816137895442563324598034515693745324782747827338648246413038476243743884747784118243839910544899894753446270075712254254963224004585204065364603638260184932319042476336930434627300094200726803549019134501771391144272538789588521627233660096062392039869718048891248735345717245579099369826104698465540266797463995874516406736276252284778251295833678626667198966245419215696677080957755457147187850573218602466343532756988304361064331614146659700958137390153597082204203858786215246509932829922333726418428378857298699281465713908314287026814094268861101261403172698045681612356570463103072785915151518150704483548152279275993948876149551079289921387938531108059292090233698334348730433971913208942231507347421429122611338061272815286173217941917850227887662365527455967950063280229262897381476858423356321235625011290795540499649905129526885434409056091518047301643676829662368418624976522995100504632422117528315514910263853787874665481114766229123389345174446327187734616162422194953271067777956915482766449400741921933325440204399967658006670407099455836412030219695374950754099271548497712414940826708720147224624550161317296832140698890566529929481840433142528890156949337581580130955775594082945261421106916630088308015593510700433471496019960529725210660204793079769283927875561668025534153392317958004694994260306266796101720390306592405626350644300886923158522533063220924464617272762321799564704390653576504259641107791926550486339634976600697340210697433683326648687704049422094035471031065551955728932642532501835406278285817804440834944012496024967959238037963675952921629666538711750598446812901453414168301285147896437352571072820773704150765401189838364569072399848407261147343158470622713104981033968284191715271435311636081466788048460970473111256697148246693737052479259035415673623668235218173190876468764142899736874220278685831382212091617218765520001044020812451811920850802001294871073195794821624599776857378326766849036422000731073437230689706422766751247742785357240360171695495883741201978080633165420407604789079464685171550328615710121557278349556989259366618146807395937225724799110135094658050965032824057611463066321625341790512308367396574163976096417340021429691727244583194501494849018440487617160103268221639081517497846332622691885129640116649576696369451206629089053592631596632408226165238920186851514421862787147465253210080322204215541370346890708453931079558708777051854880132474563888140884172094040858792288132542679897022392366072214374502860678021926879653239749969046407042501881746662528101295932640515821986296842779598897016285843367308792738344298873334115361783652602639473943138564341315986260067062660343838123994366572068703483878826047982449542063382966355364241656787175885469145523555448264233526394718490900567883880828016272235572550660089820007913754243277734913767274338932422219268192714352847298123483598155186235086475103962541394968646278404318964022574206020842994657761261855207267754981124114135844764598614713901930542092578018735022107920811158947558730877763199166925602751876949142859123040752840231321157144663260381598798239376059375670562773841778526858430658007993138008873891723042742467999204588296995952050402268755671601688438716187020656402489520161590479217938772818017433803876155137486418642442672009994694773413514371905170789516750895032820096154579137481850068024924753076942099103232429663147293784250540840476892996605271437534354530827119674427933506669687651999887891987101261007986246924102837967096133029922661607977142665601093145915761777642043101677544542520647433104725312795082505283221768842209511400193813450836659882811124072035992430461290484583479209098106742088097774931166313469635506913292689312433869844309237411555958832615301636778466229444346579540165098116263606878389851374943247286008623320207423530217032278892392044438014006373029165004040630507623377321120122138383770141873586088800121854201417123538479181148055132930962189563113752003714173984616109119379186172316204163008817063465974643900004871040279006093596277168057712643574080939046395994789191764365775171831407505630282194636180925294151123354800416827160436595844836899720504403071062301380541507086143867356429285716094581237529152601158787149497186031735526444439902505421998575428046541052589238343827373219571037086238990025319599377863486113858707199401739605475491459392372718028514567670336108670380125364267685626270086045853539362383288319440636233766907039344607527269319715074103552115373414642722064657435488510769496334084331256896503247265647934469079493921847112356002366364721441613341574329996991809919845811376377178309742381306762279285011896085322834889774868264547609700627132793957424010628677553553295935861289128646140750378103214255107818750907217907178028058189788833652037778343209706653647774013809714981657141780513071783459729603884197890518429118357964028359105211283102334977191315932868224760281180561894475551157527799532160300565665750147019195539176873961840151849871877946818697342740812397619494088021708399889965993891646365326205866655082619337511554408511368953167989346654532852057236611797567035468892636442973509352659262860846350564813670675624998749447171992199280774631096014980052318512580548813189658838889944329784923697969462008869247959186846625779940369916048597043326235867785160180971958204355209281261214994948419579251345404676881053846877076701999804802057013159242262264304273145716738547341774414216867995498736063967519186954134727493196005271536598670892727341226136930855515223524106825879526918170175898343917668790212124523410216594719142032612711775203028293209735278354867013359092853171691139976729810933707131676297167676658624836430209760673348281907464026276859514760490028167297293377344002604119988784692053149706078673984494110790713291205281972733619484041001218537397460399031638991342932154143831363488983670222420451442577418767402478331597073012093920635235473170185126775368087106025808268452966772246843202769060751660649630127958352217075158689233464622445610068747013388532063927688832070759448667615595559054417061564405874902850658692810085555403554325940025626027021265726201191688143522697349335533696260769342364382339609747007585450349841570140393210195524373805718419431721541447517654884973357637065853203519188100258655171243561904762383529077867935002418238674841437448788561824307285183844803333044079740678861633741496063700961048302687968660675201670342499087634566895502125087017615966380087185962939164436045667624055026765447573448583526797201730483695508274056769495338569326335133227205436237584635410852954572778934770562225388078523780867607581060573137806619098624097465778712504692960376411039008189341330748915771880079452557037206605083862816949530947984750636466391047913139897812434583055311372882887316546709035919345387572520633637211037995103228877723491469663075477355155830537954167427989593623672541676819697900269002371132076721704823706319596821096777905132525267998973362820719160786470296188271020524698581012243282488353709558107525253007871789779114809454336854655301167894764157655596891863735504475988206701338486179288513827774953323093129538298713963667082939418411114471005896725348010227868927568722919103727416459908090065081823946997085461319311548022839581013296591340965353716853315144771478808025061067291173642530728004809281111327805252247665753343458524013415121072618651406616488801712561336703234944331152641840405161860289114595480688854590160507983238473477884173641738827759553747299935991914182776259164004463630591469005730417440980726545820202077945661419276741301697708004224686096573606509520770383106487609423457836992711502650682551421154935145756651581760080960370222015480225264692256938339975249690075340497733066495177544330424409430782995197543187291067157790397856806905207809547138122023796709960227056839405516029219262656847974765699654973680213975173821961388118842571450076812171761910524483333121914467351664284153275283634990133601780326743269260645661843634775653033522817077504086269165719937979943829725499118450320026933155411256335661764882779387228075949510892642404863959357782792573194654479798143548634802691914966921081608427264574683057474623567029667177331137653457410300835610476989400483053636189834410038304456946464065209976127109584920790689746852462425104150551304293701947418477524799087304768396305997915865805393202770937590419494832813243744578062601224313994460034589637620053293165928999725842648407724450755510539973564132577055727411538222839388523516730780925840058527674751828883699597216801460189170073157499235665841962944069073755892767075081518577326392245345038256747283453200393079526019232334253082370046885283901344031717111413946776419164761754305272185467403595603403177071732694428403839952780396797400811622488683722817314072278646613684429054778253141007031385933391783202187581375427742887853913137441648990622254610685473641391445105209180406576543650932740440904518190235492555610588712534208848466832458580584031645068378022223396132066560697821502072513288559105200447060219107197011064457085845337191778146678590013997695685759830046846627836780702880799788753462964049950307921186749226337093576694098594207347699809458408846174781695027604185872918650437437642964768407598500495319670285565615744103031544139547084159381301247541456055348778291285436269648618994628970006523490636439826437548624950973793724947167819295844955961356513685967182862326278150180894329276548777251071799232702056049772678259079369888754592466810646613445408348179074281369688920879488730904989093063210841381774041415373955943270326661333474359363017407349196921331006857150460066302050713854402623427294068374412167901236426494727698501813422114392577337385331393590489845138430564558732789557753882250301493821116634671201790559127711453883202004097625846577268521122300260852261642919721352336736663919899128319588932013797409960487204089452998177770136626639892263573693009772806008833027645540882816241352644270753087821513992643075515551231545188683625491964716887534494709304828958942528951444090794847919379794483994992952486637054244507082018987824776619885650376478808920337158225763634040052295934925846799922619579177695069721470542075115606051404382971380784003977598232024492130279936754332798292680354490113753494479461090014133949978120744335223594178218033940580681124452235411865909712540916249809003839646067470405166918182830368714369373485585164658279005404428240642652169476323853942963775908638840718701838514979617825005622985927254191174127244791897897493260264616300592823614387396411546471270732043955614675725950340855892846153068336006161995933266300330071979213690039590506158578186268126520055960735258714971346588863273348837313111459248063661246046738662027351365158888693102242424111908789922619248367231431261864780453209237941543918312783502187385209534988334059950165317529029615437489913483744129519873927298047856941547515668617817026050862337381720056119730957758713442106204931135061269026974012228239409846904352495109446629992145094812442508120640974525845622772424144582785224976329586550895820896516778791340346627178846631717918187430782238789168569903653919341980828349775171045460332899514639264835721369127859061186732569954902112944342107258807829067665126823872708449798140866984516351951767473791909412179976188031588604345074208186023149346035691697404175243408161156467360255285289365704679018265034691032829386474751364910909997603872137916564733221834043291501921515553695879988645566093534049616927771113223201947666764990574312773244522344247912084122637098148903897197518081348657929402988758835553125095361728748912921048747224624286646671975872555703816669269585037524246673343911986423707789943123041673284771944847530653744171132691666337761018334837880170828102308991825085099132601645226657328872263873623503380624606754239504891483035426773937549238024081951829748195357694840069493134358486642460066949198412301880102424760422976395673683678777488106042999378081001691135722551420114659492068114559647850145208365183319596731675833235371047189043871323539232120028684460319236847312877985387158041932351311734503230840253474135394655463563885315237771166867274533211188747992638277997744484282635529159151881889803825391067924160775838899622462760112228537070974980851918582639911622262187198450149089542692338769173057863289021903224372965751579065131188413406722777334934810567588100661731152362363819626977662444114359811500778614078896606333156592210228458478292147617637548598222721965786803070497333914376541159558153649075688332849949414169188682305485748204691641116207332703906939831846651853404431230813815446286654579344373620686556649290249843150515553133433236655019259268737120934640532562668039621036267930438226747211320688847283404024002568016419016526765128044026324246393340593224656762545684930320401178368389762458427703330215704047429562942961304245182995077103316588598016862110917475527626526534170327267650303435508822902168905993377778173202093268081990128105167792463214324840138316893487827751518208567503482414870089766588634950164325391120955613250466217644587067862208524337980471228331213269956469441119434896172018782357242176437629374237133701771683169903624232355355309539262019521910025764529043276418856826693987747769328759367063585422370706077428121250098258960043134620932884847086663893737419457911421165578482104500841198604379273098326489257517761081871115337634895517972283172665142524521297109223635138867086529988960862126499306205111283840815487201381316754148876183616360130265812231975926965710810438501032153810165094673708654050469905690615246192029407642081982663204445640385063257950829770323770913376260948627885088056839679410856675071366144922458312625488636020523592288650188650776421140360207137232663155968812537277311128405019995052266444463181093616808371075581055200903667160995961083824688565615815310663890610654442853168527685893684084825644886052279346142798387318086245359247051805233128800382986933575029656838811145399254760857742894157650253811859886433501750904396363445976626714483262609726866464956110431435373093537958427574747459356503006161657222313809376833761104724218095041890432753674731761231461347312993961731461062813987898590814492577918249670096042979920378827113752314475294517979426305428411918013029537921038673284383722179557539006721038902291086363168042644486373457573651124620154168286467696846878901125419480767576058415721070591713841728773695795443189187559737792347173901981427134793921949931171858673217249300302262173631801115262804439811526527888780556206741190687238880766053295586595765343748249553209889034162902976236992001561490878678041522107366926818315164193893128334633076744144052441358992956480636220809514847301358964790429122659549917736869549485441765656535128990603967442821545107360340067857197548502356984577478716932739121091120747629561376007882465034791088309247159191317840230941871810753184612314636293924752482142494435209608500589433349426131217526075803955402978159956471397500896383952633806449560877858240760060994980985744707737382839515464969566038390416690012053625562252704321803668031316706482573755147980747312620332882439197641419030976599172895778202603199291049439836458072942000281595789056314728472471423716381750772261999296939764634397685775654069010685589433345238085270168567544705803358678637879657385282044533230406547822716088616284628127637974565987969684919973771982766998322156464181701669707978093579605533360552458040706811271282287799101581711012942261375328981391393566382942650118152321944190826476410144034510383008560153734337460343716917043247547360689222904180177269480227928486340485871872303628633252596786934652424417751220884988017084751601457195222433731743339209668083707897509694913396658997852136756058678916633577587498810027858547545060654051203188072718220734234659041334365340999384362515638954009151005913669651913280861132589763793790981992041865646652999267914744351606772695101565808507341874508512929220936691677911091675248729082813178807766268875362108748148162726579812943958145127893070707309837524745630619899087579733293018479850706632799093563242061367925783956063609469138790540905565656727593189066031514653985788010054000517370075063704629508904689600182811879130517301828353708842690312220003209542178052384893815065643160886714034802535965805625255304013529284539637684714511849092291339113020670153280191637194076967428155414758619313513776202427654909055037366158806767688408566767491853610116182649292586166201710649084659102363211861964583873480650122544566555975175883115384607821409414507844555700775948947217618184455222372203096683409616593944105923712517787151016495154310540227892274751679229282748734468828346166088202338299512243570057130413230922355212232116225623842882635984702594441343184213890402848514460916622419019608444886236601220974911884392046405758691883890210682315826288115706572298903950663468726381869426725589077236719302178805167161504619657642774853072137678926734521582861733543421036780539933367184188030884997669276948382524130088324995147713318561750753637098128516451893439281095637599408412133383817530456741645015441330200455397641107565869251770234456533491159906837023490285608415978428370496371615491230853147513399870969918885428904385985151354588796291943320676269528272662438484178338747466813344814472999588336766318702358558215033438212416862441839528158822779134175672039044666816981792531647273414205097543232417392323459843851785634743318766780648563869654971609817154019528792787791611317216419503995423133873998358255837537379891396537082268677512366310551029215738579873718089703614299759154269349773533411382435856213065351653057646305079369096155840144711154639695109870472196799587513812770066383798190195841636891732604808127800698812972258822102291923403948863032803194158275193883457019260721105007812806017669593992964960995882169710833507347588565689357471557881663709884718024677253931648671899741347984558321265009761792704797982680647793071158485080429476210060550180815867263898368743291971415259896874920558991098732225094043451514255434387142115546934082189738552464702765367395159971914816900598765575942775878263793324095151356417953429954101328313109874353438592959235670376532634788931169997187202947274983659632537179508301129077959121820869867147106035126734152011018161793511531470551736393933580218411351402907835917041888870097448399535619594122053678324256739085314364611378832916259663424169055744932902146163672415059802371134348873956093919186304138320652764166996892332081212141594793101522274966177443090583561381967474728517250447715640689452305062914173726038681390432422756068332272545669390420120353522663738258752533323407683270758601306925186867246401807524754181382829111507336609847427646235010474598331270395658752603856389485436815175745287788686313154360253200334515768826204132932830901784508989025440989958951516946986377434073709099625422723949445556727185560844828800786622534626015454821022650252017898481033895441809492093252793687468218752472119296100015683120605363306000421152314754585116177053180435756375028814253970907743893590381218815933903741457443112173913328441368348443101771247868643314770794805105523537780674815934634020883752386957524452239957020054707355237748855622776337569983626695933793572532792216390059535884361698155059087969225618672296766076246061884766407252238342916377906311195127279366743550962841306863055017912366030950150899332412097920050587203965225204094572162472864778165822102742061822774362853273317109967512140349849122358177467297380730741005026283185633524112541607512456072376184986292872469658741879534882718225249120896206698395282361355180312444654237302766610775234790682696812412529037897991429721036789421900774093026655454766748068150108555457713946838393184796773065639178620287358401534694375389888170266008794504782018392428916515196936782707682520620751713465043946383376115765280314645831673503578390463893686445535809610148521693882453853278753642518855943673474367797135932572291272596314768816270424718968115225004485314627715950122753970584722224682938051060331499697527930624652302912633663063795559085725971252524266275364038872685110489342861492114977492547491495532184324325579496075837313663496671869570917541540594287494337242705730112242810337744993189710030796401385561603674536693180837273277133705465761892530326034304024147152828140990593040369891782767911383099509091317964225701309854008960736952832797432363084238837014719503338178887796694716799028513858874218027202399742983917897673470055028927236736846091738400856178333479607016079950481842985619958452316475170461817178358456670709245951427412955017829587007785774223925500961501072568107769891677903737011074270824922718350911414908403740556333903771785056708198271953891757239126319937932963416066720136213659892366159690564048055095123409470369721392751459133244670085572996382313252700569191045093325130450394320601079563465640023206638539156488014335420734196884811069667299887009072157660678923874973744888486395143049715313451219979718599948573804971469634861678926458303367476588662144837283057311545352150596581008523116294093155928320235440049011714734797967439127533025435560552293748387754785709651028373846237393442109442957134772400660218804247713146413202528891246762320186726949400931259012459849342813103086589524889090877295649431307478779174315562248711384915891927181516491070161106231292056910565066320614114788996425301355062382438972946866244325897552827459745866476848946316049460803680302042696179338216971074582313579340929425579311690508683994235721773224909474211224097446605983989755619088826888675678570310549014524247229855786476562252437442702439506699068070081292359159353160106551062865198692251803395175672942417960758986339651470722681069527290813347088931698833990978636413450244082089779534849654897480813404937055153056992207048192998336749833073539370960643989875994724607421933224397712929686259862009368270397469661625189996747532840089832729833484600373377789095310579488881220969229570645417258140479027152011708103165741889594404216662877455964158343350403389772307961451994794776453973100786304941781234609780274051855841770215706256547583118872594129685953097785573424138641674907576929497894938444439611913469662746669058778747120707586636227856013074803918849354806565906975076648206211807560868391736634786380147130111572900784199015365177050421288081741197706567991983000767214326598865187555053163837056718878633040275976177353230727807262068804061185560769235025555536309257882335338737223817324436391532483841671212819990133521387166522789458538875562245508569244089120476020553427530969835717436672547634788158096429333077476140352143305313389834180039783684748401928431351492824807216997966624405526360905571622719966914274464484719438672629479188119078786269306146301204462363889735908565019166561969287630195895573982545282783972503588345649062420119246629353716583643516585230972381165587761625236990511489417585123739959804257712155591428938871483195564574430066001911764652102830797942986976002809477039851826005407439137002787733113737415654280421818408693875511070197624827239461865518487257069479371804695516485663615143780067267529534782384948987725336696911594019568389716582668851134312303731371014377529553578985756468439821023399317191704599520742224543141718545868932523368111494758536659443402866388021727343887925452632648397928773898019701215613344510140345151777815659065868856440032766283032974732726774865755995685641312896766577855179098721170284910492796877014899992418915237523488714910301431184975051323633920420561011488192365351466168392764248472051946012297000820949253589997981018408883781541425216187566181647482453697547763726714171358621062503752994579338804552534454404715228710242989549691035292385167651847538587820060104014974514421037225153865929711206589047433103211048795740375669966706486404345991194984727593459519384846085078338692476331696829652780316191750027758561965940456653781888435361970370795379572696216539425420109386331137797749154123211933264623251556359717725651820756901260042038857664837138983273998078470166277631959478933145435288209470475616594455521556612799271566192158196069556274455353359170486715752213016978265849313630038473386002080058273492780383572889454577195187569702949696125295337253959089609805065932516069181155073577082234661068509166523653456355049670269169587178766540197908151638070486176235764751560818286908915775848019718120800325985222538067606792477966663360689883729068346574764880719726062587900694245742178181011214056039462123470068318037648497435180661839166169334860611692524150211107104415335127742578878684786856666838992258629144113784111773315402997134900110809233548027854855613403476346238958623553066322134751856102903622180044546571795572701026040295537259036342848849972710589764873048914638413185337030823951689616498976579156456608642938648935861289579298294727411113321648163107128147066216703480452313089745803218607593751349572297580674614280893793160844272077094025493763906902322403022396307459356408660461338492425414843266858780863018747019340220634375841503783621474291981092725305391821262732280423666143605169640699033850821297230878028662621969283690530830394021284208174822155086777513718293386134966955196177220346339769110258760998063511117219467329563027572481013708364800121831942676312976760063825204136951347538975263806540911837574545731179169124498356962208572455182502932545711784370097141036832003258344550096929979498365314065100358822404662085831850475674910501319511824546175239124904717790349844058624263073184229979110713922144379834819541002671404377586786480313702536906609194472912809481452663908704553995971309247402719145590108110194124455782313805105754749646952671159643436703217460416386466397919382454325688017205596545120282262542000888743177606935186477232460296144020498995108185758752919764474495376838628714010515214949674097812714197859233958191408735755183775939462637883877333523138115759724899845344817840058464201722794777372107422528767974765187619972602041019059266059855460704826494045884664317136705430651697654271550894889952189163673728874499790561563813939442844895944760535665808044246290224119242948663950096236361784155337645064497753917946809982631773388162950350518447428015701182961831245659818704025453844780305311547144370635707062633119856812611169609647026267369362993642329794181187393316847954964780612048577093803994640789910072208424427023978084379676614302419642769146789040015887062821545817432197299119408179451850909251665693355738858551474550966108408005164877669110391277983972658150969623514452525521975377557403025828462185670318961597489134067804016246022104378421427340120943365815103977223668094219502076940692239610130352762571356281922718502784126513950645494797995424419818546836034236985106014860858790526183700738511436565985273052434544269389601194645281970476210219869914644667540766349490937120596482039320950807628570646534550962480092207942998434270842297559161599025329252788597749606620959860361457080695230518906104927670891445173362869649977654567967344858871235759751716194801340984383151551835095410328218948961964286057170153568100746405727333217526944811977344242165254843864206819933127666818135717948079154527733544206238268036062000332586331143718862156846222439851369164220999959701824065622140451288649963232464489598979320600755723934260987986028558295416953359555758908152671288226366385140316495321151851854421890161347761260190152197485771955764839342401936897194336191980429581895164721311537920645321106130685699868096489152293969235336125192417102508093005739035210623305516442621418487841405732323752993278875149801856939929551720147026638010560537903682720498456559993192365493704194394857573551727893221265135921622063507986722207181751415994760460970839990644727235363378525441948012761886097862498271356588556358815609026938492844531118868317761008338872386424381817459274440002308206162632505974629884826567155879911101029931936440944697615291476995976840683171011314311633323077296530823627310244778533470500959506637106962598113861512670263459193962025865522005006165334621171569943448772051626805941527986289948556540521138410962437118528257824457734954109230837858081026732357039843670449477028953940028556787671725350780771419162821458187656330948512647429487503752563199456832907055398858704204972188009340788826753721336420322024065138080491824173190452540226446139499619014648948337017237485206793191263702499467559288255069574760844115651094350707523724549832824413884816518835446538069471358638014306614504622648310476733583625089568057895735033115534975061448636638201954242013757804399247850507778125222033616646478467636426450192036498112383209017250027645606982006132634252549832657368152925167350940100170783158464767231714827194574281000734128276841963840489690604944518875204582378002271110551186837976104479491858611969024890405646616009966003333163842478276177934435199406919924767744118739831333660308247135696666885353527742469359879944647102677153267627845245721609866682901743906919605315498044990268935712435050597940254079787285042781019170084192785610271187937163394060381778212619451915736940895292938130648470167697862194520259618781864719293459912025013144561958634782746829783189048358649558363986600576251052198802579224465973665108673386572121398459047887680329545401446198483070733549732453366072825024546903765088213258032441345329876524144734675533188772266129195614770475537982349449465788580938998737903366886697333778302888072998840308951389246535156296997690108819493610178339110338342846908781191899800999681856324215629444352885671360735695039264961281492052683136441763082525416109378655370717412022570519733881192966061937252599754538182046953059038346303417430394583360594564417450121541653391457125233272586101918966548565744198044478610837715823360541355670115536979967377069695462933301121931301254311625918013622941341731297084158147608000549203094467315562760135953747650301290777240531468916086431884444576569614126519537739713772133272632861240078051710510018757735711369530447124014379345568745541877307911563170110727853440020025281720415410197322787235734024153056603359037378507155641636089880708442651206784302242021574735549482253063996307595662958171769015070561077097953595681513248427153926921738324762727771053608428097085371315127256022621367041025957393837091944937534679110793379525807819636984422190334837314590168442509214473988983542878146745489747786984149280043884765807471654525893864946849927761340463035291574926211341423650989355910151615702410920140387627692999571269665835254152100745843205718844608865185028326100578447463002020259858863958833067331351221402405528117792441397585733807477115572037194311014712390943003818711126788253396442163706432713613166229742020656985007655858775365812587888846683961015243321723234812378448965161033233623189133132291103834779752072447799258970304075141057462980253324168530065114591814836216141546141139696487620815558439900058979274207017925869798936954984119228851598713069828399674894767905774293402771797639329290163735257470073412583482371259348456929188230640123924561638778109405762668586103645899430682741403313833367901479904996256561375595420191336663504269912228585401244868974118953874572021617327272906435426776606292798664375770391669478345859063494650232751342394299473382646207451262696998120700242351178230035166226057911997645117944343110918217622438579695521256369088400667848762534417266024032420223747619838006525128829284595351910084455060018941085297343876341087169552118552979005729206064490603522658796412340970500786560314758686994113591077255932247498257303844300064587887355520998678732717695907904919698191268442223960976257571199594272064646981021269397736098329509603600767877198682167734944609910829127193627647686629454410462165510648574379965750107060686455260236272578154719361812525984589838909724168613879826948982168904535117721456155542613237391687535342465272038312492315145993383664286699091160971776700804630879121293069002029597589123456461185299395765133056557213471038819468885605668722183643603975028945627468758096866536038527486044590081796081511060526644764530155171990449189127830303298375444277906723245112534774475561670616593705700488368101778537986950279302336216319516037820339729634524523014112377893821104011331804317847356244561790589045139285038975552799486953042848577291064196169723827675199606045621125091843886701551643589434271296677756327903912804768021553156862736963282841207412080491227401591914843779224303331682289782633767841521399656928554197331658718729194947752366889690360696307910995935540138024148334167613977635064515627730845147083560006681903398232545183873797158136142833271631959002117432873299797858536630609807218963791135114055606918539409983812613798694125135694571503464691543245408990358078955042618093576407457694631644864931787052793192174936012637281226642851511737358585966270509873021946207670304784789188410361814743419186091194079472039988129199442314552271407392246946294514759883085347675794989892815364507641540586285853752790333135464752585893966689653441825012833220179051034171152295183993583675626039890037827835179730751279710740744780061255577583130008986488399140146772726784330170271572931497825090024167838416049679497184693402579696369335630401140973763821207172277980865377790030665815422558968674977373963520293524478873037876987485460757435266566573057445691377349508232659426790508298174179827334526072072988316160114058953808999254114994001602237515322641332513125815565286114823209928052986048156423518437681576458477492662858226391775475727638217011439112918301716177904420274019758273574305470214950040321309719732733652335969481170712424917640146216329691749814113416992283945354348999808499365336038054708285383180478469834451752817573560239081802498880234356905379765153631226113749594113564062260214906665144661883793338547180419855672179704601078650428928426772415468001809304597331547446685910995475069559908587171569321849519416781017369472697789500646343327535034568343171750922599056909018661583661385384623159399455559691708416776799181467844546057901619183989814393920840152458845206481081594014637826742898060143491336210406264733802448691754604914657556708246186381185059268559260178906780988952906612223747652613372857347665352127929458178009857685858663946075979926457246934162390223306858821814032412568503799299717577980834323730907334939709095167850394159520201992795114014201885950940831635260524402064918282091240643466450502429515453531028617422636974369729871580465929723121104073235273218262169572132939407344724115145990667563844150752367659584001746917951540262704704267562461523473752087234751001758203068112565067911461609941296678505521461124318973120167763664745581719887298670667651892355743215380096864846333644459510696316716487665901771710306457104919285210953831451164159093808998320548019052018157355453849853815621431208899252024512788410327261400716142628228694686732331995930325751167784923261528997594109696855464643808217816595462588072246678901854204317355319720770075333812168044056007074022213757902751151318968748883861609168955780031618917108326313708942944135013303452053998948426741588236470170065109950406576938911117308505694012128573025331794542759998360015575195828216560916317786242403509031632597121664222274578248364474976431513859556377047982294362193900220055847485073895383158859133617822340347902508011185090398903225994376983184450391571508689467681043191346733629948845361236951859810539125485428917763053769884213415009100715835255095052487677316093204958231452572814328251243971381968926084995731211186735847666519913751227025016620535204044499064759990367045601238808848897767396428076806701592050231291422400209337246258337511537867854490272989196256669426796415773942543758178331852761438052298395619706139292831818190928912398381350290696977633508522483066526645287185615845859435311121863275620901588606109997287035352870913838565936304664576178716588381102196072665354834498734526278414379701821502498099168325704275953491148151668314894350740859235313207147938481121551526610483983807997182690414420676878650956230215879680993928000036544131109327452880937309130046628123317175684406811867110812669910779219019529524974828083241317531023414338716494678958884510736282194172203935751606445940978758388331800490140231618540985654329292617863846817430312365579745143316115421428366543227664797132260753885940193896419501661124980361837410045297227714196055533904807658808353088620012727334207866598140485407540577071925824324599936765681764518658105489973656006478057922186044116481332575690821575031912671649526390686004011145871480954252838504233839837777153464042366978378312539820855241951465358951329985899590182027790347684367655102608083267041555118647599213435268431527748273506343569487289588895790606371785799414577391676920329063032418262139145006592596120356076811092555057050966932995199339035224199549648340403597276476437756420044561539391181472827810833103346057239148835961762311884432445573820590623989178826068321218093208698584413975066023479608947248431877191312051004826580660160864867239704451382205056630038743494139788551100476686718502558939170609918641795096692832682176936403388902500460613200133920545206302503906665319721880944857404360683756470028720748946485883238070479172105279956743798177574613851351854548320707768802748259176515201045558085107907561673748995046055854684578817434100748712545407709255893838371096220671812573332745205883246539692254835243937226703367273559018395327123159976723173505422352477409893174947079587460029580309239392125015691697283705083178351709885654155488750595131655416344546738789952916520647757250310602115745349673451983728687749165235936279971775711159651146861763578731470922547635893243595083063085452049976339758055936151126262744343205365504656700115915374256147643343986763529362051291372137932266117685018280527217742811294652184126245682556072693635999957662951477744106062410248829678725087074844313013442683760631213845805330252534861819012024169667743396555140775157119885457507268207252381599550165790983513146875073950950164434159124670386423900101482000044083345078769957162582668788952794503159870455220121857534934942910579645840752625953049433136129557114017362408134958921278260765341396394413569894987255806819609682656202916575843741673557980394012771917536477753558588679481880577330128850516999735260826911875310376191630027348299557139751780170143677746934532323391204065136515650873295609683652908378503745225341947482323895323920358061460607997866216722912611566010399656475369216254449618759333828344414503255229286976294097022311994283518019375121153383284394159787737885143122639903664967021343890631222584747882896286578325402901303995785042422287874222206236206509265391172629848883425047812349674447274719674496621633516171436362221371240359360356571413067974839300215151949219036948167195846525974573857809126251204830090894203261525120251970748465005795474009982290906345164346212893212391716881712433858182461866168091843421169360792988515797924420929752774301136182648627975493440399322180470821145369238903354614673658086782444721848387810101518120617393295470675565983543682663429501078374711985040070753860500710118254415360009488039251092103429296215289100108561960382955316129290353169418310737701865263470751298703769548979701632143309936005381974222949845023736329538994995230640302812749562560162123158006075027614331135118818762283803437515092788239352704535815150206834911701546440854242879243037314669917524022301615306123431633782503830154304450220906283288159467192752743997072459341925858431889057041953000632621254565982337962374348798338852597435041649210538717116520493504626599825753251478044348000437471182753302599190537094945180302149560165998582801638120080150581439026789873302547702785984620355285409022275975924295630160534680764010129478100636654867239562258847531664888831453545208423668678475959120885639657637895459913013876040623515533582725130703153272230662117456189836785247394010746045918436702596206745245676488202049874382496074865977287735113677382253281974372258032446168625400256615874327148649208868936835841918187986527387423398500865290615213408696717088673000488389624033100088888250051020418848574211679090971914976152857266787394983541309256755708735404985105674218860600952323724606257716278337042755780770178967748690011159867653284374225051132248277977565999216316855411861395640786677747345889160633516747639548944824569121070063389248848342847793089913700548216536871315036317877004405633039561338613473959516608072206567433740668237145256392115401477723723203223195425840727409543350538974726430826891299798613715343298890217960020965024532496223630703424357455751128642134123398752711769528345569259806935933296213188851600041492599338525726108597336665756304387459528115651910317004981109501879276229384089450705365039743096704329160899345980752653240796169620094863322923619697955439655481761147345803098675889157208075408047639016609181591058562963005233130175436086299260661974996282519159751092234718917342024953659573409374191203302517829481730396911409078172704986072224209374976686356880311936336630613818629716608271437143061017210582010202600689172728390925069720095722544559679082518591271955823787888041634502817265158260025214800212934729914200711919939063719667576260932569790222964324829817899745657602687148090141999140975478100532667310822848384716266312489529725299372528456906666653884672672356459768005207518083590053795950607022759358643514118135997406668937763877742848666273178432096556708291649120458660539789493364877304378022602435074589906215497716427047767022459542852814070224766187562562914347982310514366895452082531153513922007869274525169120078157564926718083114739327411067903180566497729820269366082527655941661148120892257748283119598712789809282795803681539709084299911781543635425136817644488155670451765585806139877607572138344021589306631327983517062695529047574455847902916535176668182437154317660599767486543413208037568037228069805815380344006437450644825325352727889035045713551339372002406709406689382625364248906610826532802693813968275449433472625772659666235591154935047215803432149856022661917102430661862915925346736401614345701531426329816280411942589487309564829675255172082411836114360020784479683706308318872722927875339306680133009420886347312067661866142745424326065211438751601889890549607696494663108417208918207939050398626878893672919276907993060138328285942638633388294042220722039435206862953435844757950632574129759993454736811166337426125889692939545559249109602541310822108830431576901749112315230298010182829563619221282816943636735460562363060376289373123084291894353040089880274374320168028658869673805196348599710309612579025662358495834141450118716625514420365897369866935745076054207192712194284210290648013735354658957630839652446734727202948711497354073720285448423927971453161266690182460536294087636941790538989012248102623898126070986902981759484738677827147274550321407390482023394841278331386739423478456407805755041460420227030659750296337825167941536482466004189089637104353700031967990797579236582261265397384085166152821875146207701822568430404831087035483767622073575063436735937025195573176572683610462958473874032129418304048213854684048261166841922493787756639944241145655077375045372021615402002876928982604015775967119566643421902823382678107641210774073019822662901919136978897923419209144088034961138185576405732943754262345194976905902546864968727483415097476581964529680929444020493687786967053137424233581009817182554704739969483855957667362759751696589132290066627382509471633645724229251986921051076960595527211291026531834607427359525832267344118804866091080438596502497332666357166439326742182351578923233217712342787359762382753903318726226653195033416201203099878830785076915487885630580856319708013556866178996482555688833702666714532945299723179369826957409412487712687649977859741640199864711455892812037543549443454373574963589905272269405194159661812567509215289517218633968863118875868204167087302834639316427336644830421690426429751386070937206588777067979830868206109288139103330427553693999877969259414218806142013619251433755426706589932215103967948316204848669361377017780542464104633275465890943110894867631715861105245492948740091949000217203733731630005756001350865448871599890704666440807618770028757589435805438984052815650451617055375460444304049262245187879950725706130174960839521277820972996199286581948519957947383162580654977590846994805302139256576807976957901658930890391689367958033107280966127694010416428738444644944652633398941320135116864427154215345039886364524167336186697533844590539592430503996625539625094630075110503255870578876905178985522549330727200265414866441711693588214648305981488730107906033067003555039249902957299173532560005693199557861805660984541426796648715762778378084704481449771219089223855061795586312911577764313784337899651080128057870930660545228193072514109622603032676236257353885709641391512459340786456893919285769655626808519404799786576129330137807860221108813859874442143898463237450447183696784168275996121423704760096271150090787829056004108757919774287492883719719618644782013794890823116714222591497641525004554184069994333685632373286596380126838663620187476528588127407600614152323850348193090297270583374435654702854764784575258232375207825955583922324014499087512394445442988605807022300531905615114185593817947432444382164438484722485991203982777226120706456570992881648094038645565562639543001671218658290519807657110236526982238923478487282386963928235967788033848051427478859747206167481336594031730452059506191199738795428584872348655273787907328409094899288432689378482523822908462079821986775036155388332108670005454209069744113031307397347637180162622694425723606207395002239100102504071776042151611141206756825161717672100580038050216091679010545249700925296020250178363660112003259266748541700941110124901375979955072561299265495688348905223279019178689949420289214565519113257721342588384622472949257575546729230800017766690728027125817043513557257930274247102275206078796880395207982162250657909463208190479691643593873966262204921619824151466522606541805813450224475543267472221032288981753004741358935865990906214992453298025162592928019140516885301264914989054749645630522765441011659288555862624385506272037943817469499300722633627182862516703939080365392261849419746974232810441955739587915752258835444955617208801151461585883707813644585664703518011081248021559300481779745588754369801904171341942352977052520885283484090100684951567725466840582034623227054572025193945219038603249870574751668803360482828974682589224560519795744247972857190574453460731581143176406650321036252745197909187731914849330441703086950414335238360458942499570298951161990448412098733873406090779039059865578768289788106022616845640939138281079206652095467931397932227655532422198159673457761695514046688951834131257873966646839563967994979942513428581033333252489678107871651999011064721388024564290961866781964403089560076250641967523643973990916552938791596843226147195407372212924481755818802761439983328893837796305255787745487806319375220098690609020820024036730338207472962301335752743076468876133677752969385224066832699475977364479436498572356000753607176197327718527995306729905758563559731295509211942569573336513593328233763239624794891411647100683152124794687940014361023256372942376195462280408244559970525346416901312426211210311250993129317966986523599667057987717676234359021428038512213845054822319278307916392698657328247843692306059572615040581116499020215596330188469953653721173030840150105132877109034928913070690228666324873800008909403390501031878729272484630940301571121952310548062378517959003635753988200509178035129059918799528966541219780510115768586035739659701067817165738375404302210977099397095301878281338695408605898073053746371162086876526844847681582580717216950063994563647597056407535911299284909432690111906424858224009449167167151116756661147737316154505864076174711582321148121164346371854240673834719893438192365317984084632339565550920325716585586702570325554978873694890535006314347902282771346858596442942316168244454658493382742296003447947709724379439237211239387118022770091904231684683409131806286026124238026337793895378358925562386645790119142688201706798875077602015951833453586407706339557821201241763574331395203504261584208765207152204357970224647572819091207928911897217362475801677062767080676630614556621575286173001882723056972565761361161602036994441969303070254273946989150127984401542416977192674606001503830223197594119979685727925370520880573860743684211871701633289646655475601840113568778535839788825469183477403222412784694129675291057120030210074705399096149859430271961392576803266963461755719582764717562149819896914592401023132105764654583987982929833684650021387588767303675256408319113284449033710704468530466590112843648042750074916308008616311345793856409992315307696344960821395054960630942539223009188944856753948364353621657158402041732980249294235949181122816535139003147109788302871364479842405101835004338528658299437907415541687761384269898695318789775388051730567966986143834612370634659191656149593537899441707814778657905500446327288923690000772543677688726501872299714882667645613832461934905668388881277145824040844779385065181250955094807713247018826550583480101853110546191653751859686360856498862622114494714706301575491040267459048050763467064705090481402030075001465461730809218988096983229475233744414113641615886748403552405013745118138089882526852930924567624538785245235934095304477636550574412013690143821053667197260878335710618645432764891886022458749511597482987502862736377490707441674871598570408946318282183092324748720165742780257376654118515235903496588830136566960661118574068298977050431091814322820262482056915613387829772019265021480285206036941547586135230237738859687828737607436565791356534917647918400594963952038005722932846259658358650320231629547896810926607998002540013293479713170440604484775400309759807461552275750844953884701952835683713065009762219415991084769990594651220555946664032016799919808762321471689155512260483096250216781156560195427588386113063246346766354294522593650683332327025019003596874793145781607167080406424751472629722662104953472206146121630778315946753108908149699795265935148895346198908560021792621252211786035349195777447881729503999802219313986808018736326929484885661912525944541790464884168301712012399055380415930782998001210653582517094248439623548197299374170498061935106783423743005059846310555539053678093438944023608400787516331792752658721952045192657089492593216945396780153242017076535665917787216699244354770329400981069702949104879869409529143124945833005516550620796321267690746266581252789989435818753636488757860728296496251285493666475434940046686404405798788647472908653870370946364606471301819751809617439448444745795553237277253605130946196146806352259627682543073440867133315552429677239312523242367406563668759032303049343432211844549548534127953434220786417741467109976692974308922763452556448972318511091581618863996718595212760404431233843349046373910207234567662180576770380052726872508272466696276709906960380363175023427344834886239861170153553098960181678128046202330048128895261529859249586870836176925791351955711035086334394154154438886523446831699596536787176211590696797510509670903780524702059412640483715538575460247430242148208784073597816345283638777365972679051611541722933344201186503857845283756699274090039866034357246870546777998198311116791084232392299270204916414369783877154320994686486720640496696722995337138403926080267564310431968040782553962781677640482653216712400159123535907035821059209833737271631700899171236814133392393729502976415194168582107042633654333034479404792236104617118413786574324371668248522704885970089519840771282185179718263253228319498369641618041994990002418319657848229594680153908041778142004961730715289215541121890605584845723471091482150689934245555286443727162009237166530363287340183285202365376035442504596199165064874263698125355266407121505298065339889890188020489940266679467069037044591981906492140416669963951455164192848846541754884426945295406820216214083944110571624541388751148285765558876148581564000436105609797445792117408562584173771883172137728673817205740246663078566359492828744411485291674922016375546970048713966528794827019734424070070498502559712484141030525456356080821658273624817177960843580620327437448035942008034483612217026167793321898094150798354582950067773798767015582277265221762935755675307777138838559065359139579266134373743953347644021897663930150990711091393544585474588234359794193179302986993384127205195309093599277543216044418318464125993110409258083554226112071406346505154874911372512619708542382710364206812636961535238513193249503651694678958248217820156814520450813121289693238308841834133431226325701285401937109446591662979701724988174090935344690198223711554904372624365225599022707932659327913560277619975226431230044224187241683246134107105627225745711421817888777240377041260710240395530880791308182376661279953192929589352184554107732991561806690340840482261676886654321609105644921589396979392330784413285824748744071807336651487673989108792141326993470455694677216694280391345165150010729312228110532560468268777740592010607519528979295482644332871842400712097553229821685114903024106558608460815344870522817035300711433302477642234152831224590001907603481783302332879301426293501519347903563009204301787212247788909486933886401209128080986607713855871784796335407474246085313581174070504873617198403986179853245732082967580690165164788768383390435181561822012192991503639175790820612308328641132596411256369703339119255054472261011254595695770893662200418287998137141033343874315971401426078365936866087567178434899159493376440311972659696278105463451503406389392860232185873743369595274553255586877867768669999076261579236309882420193925128708003117186461926907159613718638124815187426316659959987624937023469174668087423867544154216356470878143443412796095057140781824326667350729016915317792984975791764556956556987932614092050241591343411588556886043636443295587613184815197478152104024900056563672930576709420575348139823995720253212386625895705617517940007983742117297832240500129022720951702128420702605308351406328681000802115352599811478895976624389646358244533704608211821103745128996049764667100736234329278853332575567439097584636630384538503867621051107366465649141418445737837540654019794069005914551449069466743653648709127273723388851536864591495391944328674123812182702350344538402032011239677429322006421752043138494213818778717937813511165866563898946945281572304179472741839032970442905376694444421297699003792817702112113215679548473026844316365635897289609746949622284400866374770082153997482535049244637400998848406757869155340335924192264114837300088569342887506841225839682649898105201788040030883371892833709082056281419844371795715105411971662484357689512259811294582387519392225226074692283079147233790903804510101197460126802989276560733970011487604165884916370669163480998239850499778748718812859133960762050990066381715023000724227965162713163087008298975012772742199202341519893080911630120664883625074999091395597106869061242217433894156763208009500959869901213640743903309654224666936838039844409631145772714227248620502412022957896574115665971025740498763913323141064878136531736482049807364397474548465557091430739660455127592802593568534836930035550513897795639474187821487477449795905896330099846393121451162023705480474575786735645685477771116495577322800777076229441574640038538909079173444599036406711115095450345447031239803395383005059308430962793542310382167298204429819824497854618958499188547488795967339581413437972890017850314265000723145815634541006883515547848004149315049324284703792665963959679378100460222208515732366674522151220134221005789943298307036669447419173151893000763425339580284402887536389701105284000757339954427491215474552289576134280368911917496451652155840711271023228090974381626932512760066134168604611898675777361893427366186366424810550832120231020314267523408963992040139031081036827117478477462389633125084599446775649996444430836407498140352284750777413759850246869378929449164124607118426705958503409833897054748522777395025396449492432045372235344811620723347778252786700092916692499375146637006653926803267670787168082866023476003379887457291536080950384899829534378345082361708883451254123474812222910140558115030364924418359772719399308781064312202730986191194743367824488555631206198800699627400328487498612168347266177853383068599270003427783001375292444954845706371388081617119427056244853561492034654866639343629898432849804403524016848437630502200775717534669632495457676715316968149773835522178286796050551565286348958070563137411659711312886891711721626897529824878606821953885225611692640247523307707907025336457887477981143203308497525983287629455561944352690970517353883847748794866588855730767233831961020635090127256627918399130179621238842196118790681319707860813401733908202188739092297419799510907763339771074630478462165704771060716119189135231737664383184915768016283963213524609824930549733039533574805875002409047566458522233489646886263155156625387568638622383290424515762966597643821532417014803361275589814114398509726496054216547553258825132186863337735546687020882177539745327186593092908520270031800198815396507288291645009124209977480167553535756789431105294657496612471985247215916361896123866004419874101701086747959808196864642639383325126744315180260327362746939290766488005144257157880720161273019621695440195692621599147406059437078155180301888854882710686564375458046450121420724588923426158192564961682926272926852025991222092491323253691113971250557930058147415254758022081938760487417159546451108400472169057742220299567149997035256859279881996063361459636312252182490069426778118763964828809979253232191536521009304134473609867705636926116679916271525345468607580850847264124648572535296651188629188429599422242336946201503906205851695548180106016900188549656289208017581943438035040157218917542535172056579453205119436077441278126408378936842245726621381233062756577741701167080810380194639687877917864639797350459549313406008057162495656297166210046484693837465139625207096768332348648734361808759627880621153115645627792856039456484276597454484204716152971913070877154407591482272134107309035839743091728916538450730906240328571582669568782193982042112444812455101114418687258754311244702858583161696334058721087345089095289394133858862430015711611451799723554357510988879276340875829946039166843798950773874263805774406189850985532864725177390364205990213154067581289179526451540056086895059684542008446412476953998811716400116263339294939173461049334324387198310508299899413823628293593501086973866108075647815936221146935491155145829550748340542595353247963183883899759789821607482419821612013553451508180757633948499365191182012666212358424381923281366362129102281456913866815435432252575520205531477064333577052263653668718627112658304675931962535168237994057504541022743869457500243565523681476452727351571071311862067771466511000955444696901496402321658477065950084562961810081449486074888340451218300429675385458082301739318221562304863746253604382703377605606003317416197084912108640519351907790116467488728752739442511601502951816366946160760459305170455005306761962779786659712065275755496984009069056479344602819810842316949109395177609996685616116762740837080342855620747312191402762069280756098604927392427829433695849260962504323809558013937955095371725477015611083093570217263269022756325032726372327809531947682475912335630722274986013423859481388595836262332347430683929879520198282492230018007121170051589417926171987676161872066148495639036962097603889266439227087017718273773790382171228083904835350368507121100249381004589412568808135065898838231999289709291897449913159214443867657051577931230230034313236642563030457679428896842323552631245356955186349641790187853192598747675491725289744717215817779660950453402082156302570703139219429280376573343138390109788633112629145671468183324351769398808820081698119044775496382140695273980772154078571398886611884470207015357976113766188866849869344204252742874692903391833186784452659358179934805797556341214785602127653723840083398765050141868093481278435975488696313483872510431023857609851519300596934783850715077563980304846744214280414958829171034722598831099618037675886542207057582370895993134767257169812961760679532277078018254544194147743182746013637989299025764525142039713442375554164100554629971456586442547583287054158400211212149127359606510372829100356859290456847991103711674974258000386603187719902069137607941812999199139575641614095181101194831549721796221978564855453860915540428105593621789472277578206539020891520949165582930811392388836487298728532704288609242485610154974932825103607974739734149599829017250776213233907239482349865565875628752156727807694529033785263237495332489704842173818800022033471376386269402366505009381915695229829487173895550994022174423773303167621795807175467596311724155869772824953870367641014532368295368766452457506046351470010191335568902609582864040897100221327421027289249305096047302486174615862544370228302933285480576135817500166747186023588358634710336700263108613072688101443386712124627904719515097393579559115339039237206804753820966372789427049251732454418774060079994348763768536601809269575469655798087818424015751237743169620491250941917504051944180192459034614753409214479907000405540474558152778033724414797289748937390593583857590541173354146958751543462538958258691431973810237548551602871653768547966833747458679780230909725799350751077568741519265104887924652182945937436193113784693344622095881109593051053739257283602225632291130600631179621820729255693938270761397892634692098510161657945764744088856996252345960832103305216611920249233420531067506304946325173951022233029366630471501228255623062234571865539895820518823330098324972398148395088238606176837002497469012317697938848192131193900020583355543990330313491475242434664655214427729192805902009902626769945410926343548357821494419645004878551536313088758654806198666352949299115437192917379170775247501392076489114461732635352990618727376348110691339262324336062903365276921286021155631323950801616151385568189279789635083189304780220699893147315730953916579619966025143002995559549863498657353068178731915388189788438495387319291829003731705006196101463421356825249824359296537392811778587645555651763362738343428694180434502219874916864887029032872420696622806132058257556217582856824470216650653544653660486179831836514618206925456678750140919969819645200993072493340423088801589443869261848499686645729280992196323522096447838244031717972811811968654273537882938378400643169016856004245503343207189372918950519707567450112075845550198068934111357369256523965220549571718553343876912176158291903542196619978880067072412483902861837829058245979441263111244148079166855570264925923548646653538529779564693250051902459201569657865978858530707389514703180738163986196807081872389822427909756197766888465893375948987001201803614961843877859315393986601543463326565574766005138952791018105832609558959399062418764590213773551593813875625191234887540894096513417282968849681703285426982110304318108855400692373190885582352053086857313337403567913076018697872741955735272170203381780511276803511756647953256474489106624963092584367981173709947083359554765168439127939593996995683691888484578983529500658510241897691546213428072671089903794991659566129545678558763644264484922242837786822259502123577803922177906862962623197339391588121952285297672769582557863680446883728192131272701506935706435317310742603923981091397948350718820438468216871810962624206781745574169297697770300982724378292690874118657021737876310770595684096119236367170463490808750190133748276858274042117025204510573770675997745512663528940886712717564072482972270824340502040993116965534486030901930272811914557786428624428966734120849122001231251854444297351815512144816691590276775147840519394402141330008505584567050930531626083054828356852811062962511631566335801350907214298758507620849431988646159655195810012392039796650429634590376136665806709986364659088547462244078998535656896083391347660052057343464572743343321822415111179428706147598874156398784113773584354287280422123977504780424594727445184072066094183677952167729531539046191454991355855840289106544314204742598964140234602797445329941110741907158450576770637982043508234469085111640584660180318363808300597035181886585758065386603676416065447454448469668611919595307707407859344683667754907458163025074858423937965463010078101649649549623906004256248546548121801568536387745524714042272920912147503921430932035556045253511345339335763894785076083804137751335775840974813633835894160385387164397399611859168029624342220205892170509671217714669424236423877906589570730593337509843563337736808075886696373999049896869113635265913699007963599146867565358384409074084278830643479205556557992558494358488167542631868344036766646070463144754952032203832731443938204990158034342099782179738898737115245844316960132837790326456543362370179422844019144547963780439533998491922575515109940869441739686916629597919071305622305806891095517466634334532878019384485017580958886832388207566485675134511753601601466055645666499601839477839533420240883778126318113096514601793227783197914789312705154062572803265674166370898532380927100287865168373045322567919370946939199607935126492487687162068622892844081020554524257131930588312335049145648259860539097017692832775550053315914578997789989845536345380942932206257792393634394570017001905140210985452980993798233904944384588252518244945320695005352522829183636223760856590790562311163037131436848147630683908084316189881740438192086415893702471054127042662728096239435505512144075638895414351158847196415962849254055605692849823068270336152541081699249246330707554728893428599569339382465676938657698451215077636171954763711012697961948806929723804391105243148995165053123487722857643244516565923541115909056650813695649748470773496186095055308117567750503629866182747362059955555623171482032399261043095772596559719712743729958108582704822426326587067430291878280166920518497238294772939848880950445950639614359863580733990035151522137198493951458770376996823594329079707968502545684448188588430930758116661009231500107044822126083590288307222774279488610210907247448245753787888342366321587729257750077472591156442468101280377754154164323941369075087935017385778320676294656603103233328589028193917650069485062042709615380641345055716112928900315145720691017609271170032262819689332055692327092426767475379332790994041087918000893344522558041363242433118238148505769960698916724883541778668990776380213673836124124857666784333992910715388306549500835223327475016348109764106163876936849546402071775796661214723348630246174252812607613188066298511639274453727037480531746101956434588254049448474714474763787358739282608723036386706476767687756890267678456066023334472982905051695782955592015301243573433162040964125187326509862318902412837712033162625827118229068652119636528186847177107942931285553479782713323420184600902562171346260581326807636220653214130248819113297095712350451244964362985329054313399961632609305688649810576901859918745231964741347795306699527280317725871500834487357879926588471531783482218917961051471988068357635054173454337365854675605406206537768228980640585848439669449261004671807829408554797593318732426093622324601803467330913176592392691108431042243735744089894373481774097680926160296401318934135762999249276740486865434615227465824075265886221104014492322156686852382528206333506499748798112076409332705578721161614276178778627419396503193285502939045152478770143513290720627969979537147196696323024332216521043178234065336472961331703552002432093640473085488382625671312126172821053585136055021554347832898755551898239645723268948820198863885702489994350546210489948498067428913761152210176578098508485190232148514555433939978652686023090114999425011796696458317090178029713613082222083142060461613246891122779418709025343195560767789711445390642885004357195184608157915153271868047347105176502281961126025039985732619372147333319159109888455945957240128126836091790389769677416278927254824811863409694646782259615298224595550837005986153007032612476107195404381108506151561550610257883533272008291424767617413196265610261016576073049740147064894784440655698746624514973333632583714206127064466233589587889267054897209229476341470225705653233423508704844385743954826523937189285694284338398384098737100041458184911031458349753985732642972200127208838221284275209438045307254796986314791158533679996584690925081469037311374921411776101564701601349130860597811807523595610145764112212139819129946590713552784257558242949771886730518550231244915789797198705724071577901978087877493465833023212172849775794808769784507687748826620673771264837247464655102013850945740118292727067033676661029862071370518509602978939589530578764958985501915129006635795769801214405318672368281184849975785827514020250936124697276684964477607696879501765276715937704430229956417270641757923003534022387724117967314698914247905991938767499925780275030252889110085458516532210341231763768445265233466078882520207289548924750650984558961957693676674704228177101521623198748847185525833794756586354821937559267401466973300090948339610776503803523741206861114977386994861127613805997200619770173814609989680632886646571081748372679135108095285639965432496098880461749553961587356135876623294899616945700192711086546456072510848601323655291206289030665999160491620706702293234479765770338219113195352952420099431691874355650870810697090897237632343002692563000389219515518161178474041238279829981850814300485902585415387554480315923055727287231140050747546856061000068505973575933546854866185316048845342276509230411246893639461728109505302165276970458245217461427440613664022915491598226805016984619927688108411207504316843015334078046089724627217373672208332362825531824152959101280207984335768570037732469070681276865578085977078778317026309822417448324425228280003209615068122167265041909908389273284195541853759180799029943850052130374002128701202550342930137101618861144992947821988406235079082152238771958464694297390299330458995250950800786424764373592139960856711745967105261669785192107501472537235333450352883984354610240064847598381770248520836588314335523983184603696738418631173451527813626267528399477526579102729874670738855634057183285527230496625776429904050939907503755188962211743527326966738797094470243299603000602695312089189690597780197501061154371489609398248505777300201778122207905737522125512546248656247892305824635608905940806825483262338105990737839915181849098970431046145270029138074520029005585284204073034727036477783198526100204558834318621693088306676745960360362915115940390020695147550025736603856181192486543299873469517642354979463367777312920423193051993773163763490584908520822094854284111176699956622463755642370763242591962098899979704977259895631242125939466894092770931646321694144570049044686354875616825276307267849832701605001554574439422805104592561805523196498966588996382932534487055834838251553194904210305516590758895199839043386102817136914307632184298287289555234818106723909236596155140822776218325661913923775152877127277047262098131149177591843043322288525554790779647150881268524305687371188925908296102470094212597336269681087681772173651750862145285826112417326741588361051832092385582475805002121165517262486661662675380724857189197924347694918231922049893996084947830495708300503278234717572420147207978862789041502303194894190640727128755698918052004938010946425386976746403394848527206794326811802536537624865566309730122698494256887895531969034317163490403991368244537298833097055877052584910924307382887662693417920174351830285067767747140381018878342783807887136397929478676729723873887488554528684459659782885245990088226082473981417844889637044764603020137586978540265282192786863438287510290294242901262921541172944649821043815215188621088210590976750229762609001702937687284514600430324149132093924956343684926495972015148237376116042213142718492336744482230840455530732219094912700849504574442191889268778894757165493227228413592794914078723753890720461318883420604391481930373242759916866237454626640106483539006206841018891166019139402695538719454341914569214382534492804443859849996378851294037576722710315352339889005222285068227340415311164141305692470229999298685502242612362754383579586832340317380494371498388217640241096189516169270724107817413502399679736783329301598477146372507227922966440691816470510520079234012323864620359883129797905834103019389529746711599192773308711442936473041050414207535729934897097446210622114385155161784824089899784996693540106557206939375883209694945037307638000445920396133862527561160150417508965029613976674387826349545860340583637841423792185344400053684295439839582781159878811288708352237185032104729655254510196966707475385773054725965669114462323226175228826069613801040392857332070170965485534809895733506184499492740276056149517093207224711779719032239262271326748342968197081895648452629356879133455776223711164242597099536347250792741377388756648214216063538315073481183082444977234887303595353138939087801070202163622942133555837490296385676435151783927746857865945398529424180832533655045645742277612172530457838000381214055142774525844625586920400349551343371306494770919143353243776767931324867376477250125295707123595865885808831460003206552126963803126386810797886618467899746363385820685455251923633109934779218790501709522204997249793060000770187486129449450993282275340570420319502012510168586986773060591862536389289476430060097595834382530869645532744550797526527257693111698970819158314445902164736379182947107597156800172233280786653411427374996252887397519450797053338964502132238137930926878242456546113350150312675017881972646762014808584033104887198955295837918765476318170342158495520059733099226126757614835290605036292992812266529485907665708559538567355832784793084383792998084064082493686659841849913943621866696518496807368984626173052221006632189158772991059233445168754711174253542345759157580001720758834589725769526981897883240341368170132965183948461017221096961306389903048892163557056611025063015622417095992927289837895391190879506773852681836672813178015811393421720255051402793629807958828528913092280028855141601013327533591889573759328144165765629073875703736570556195480848011852254947806265015766505507649027080273327611409759992195754322347043761430897457652583972150594570651617019217675702101702037606075658393248734654859023400267421472961607075159463380649178453221687463850477458433461582529690703959899476893459396814478978225721552721601679629064254873535624766186962627710363461536332594297597120709243522010654995567972405337228881842374342839048758258358819494616366423724345398133499219963880398055411521827287117354759814337890351698613946121263088844589364070974204313035978426882305646047133368800779302305472628789143778277557710993297929178927947992956337460499402662780861321279667036014801321480279214202316187756314770813236850416330247405392512718237652815552677796995393237046153407884199580781335876444047928880334983497210903804978481518322129909281402246905719198017842811555306507341704372052554823833896238871809164117932976374853246070817856188558339387180386063891431537355748877733392188760995671424105812265421921132078243023237718058449472648730845016544663047648118993186815362642706130938461103506015984905709653831017307177870158484037594962305391653924395311918069237496939733526790342549430707301732911029418746736361659247085581444765888214527755563920994835550215543005139671672392096811777433331474503556211764174715973356523701371895348347780373048546071757410885930557665065100083662939405199152517340019307643752173801722971239177927477355540208458008307320167722803984878414118170257434203883692777455434210368999319435073491902810792943575787787355230374277051972528108049268400405732164959384156006930081415266701063945216695610767493285281407218337669231714810292255241082202107487527325000840669675964388057743486266616065432148126441128734372198811684111222159155323341637720401557691692569815244963362693507433307638496262403864332305231403833221001330916086128821098382002661057417455516788026350614271903310415239903703685557357714412417908900836558021635967035036884803364483146537368224873957971191182226580364123816612165225925878059211397465201038713942040232311852913890858023118053817991420446231969965805698582226118874283811402416084473835966919984409124605661759949345761927766750557379236700138318759798912959227282472334376598976089323329479607475469576001236683045000964595242107206872147733192803297414931937682066587034537868914826151303580815387886725937344864988860062295629884054656958355326398920202095094654933913014753179610849548019664395566152199665604213174386632903843954352057798855868164111426982041455173389935617007518830954879444262272541585603665248225247724336188315051574642678944456604041921757405271646234419488135788728544341776743870511711116032629800126354473832091030042383708186128218173297337795429772323592144803587811804684016819625361801148950991831960971597936035702755122669423015031059883056562030288152296687931069336291931089440271011889242992928560305352686243672017193386213189935240547183858157260719820173962468820837395548004228709107256471426944760689636838979510217437026754477584345357490305871702062647884724930133030482537100455244067238854354339695060473735637518075613403595039220421249278382882199692123019291597797286597106721531854623564041598542492537401811236786227519173209845381891647595480101804290374028641139723868744508633950543596328672691620414663169401666287426505386733767174668538699453523940354396998157504083708466905760562327306212882019177316194047897063936745784311412257295902471663774676273464052190717877826028159590638120719297564605797539222128265355126269869451987676947005832367969734797018318113666389029481292593710679627397519999561602959011921771360980746815671457139546992687413942642457904508651923807514896405203052574841478165467354951813860257730659752421253064551196288529765757432005450891337695228849789792358562952214073287986414160582699408405608819317719558859908523035069405152412926498505986275787107126683090167336592201470990703601187153790829100819814829479722577818306611351389378508539456200286476446304231345624649053167309596358187299013705830053915901615820725020668884318382154646876024514278528877648290072178793626532905789040811943187598841643862711993087272325362752408106032703988680108635490089677608615310515571260729152505403151025965926187179578534804559895602605145494288855798317597911045893776317612039676309462436336163200888802802799954441558122458772142405249490653567125440127339681326854273132561526211144123487910821132453883926316091180857995392600384544975578509848634348738498689509358331462059282563781971775061501398002069519165898138931756385666108584682648336417212157412239273585514916375008890076503607167198361137705522202394772241902627441834921678432830786584816246582733297709250873463206974488662487375214810006970514783117389862244261014159949000394882656325201918310313215296920853719466869743009116717826373833658168047094356410961264176897401857508776006952988866938534567854898719344763877991535436503777513003850168944148651230335005238823108589302907159494787742744162242251161661258662260131443768095159527320561297206039977310305099826716532697501084668141300822537692426719949448925861406102072098789900596633323569413617594040515661231522414799057373600215961384948055108349042644795519840829188984050323563926488361750965645419970130453582591728273127303389205629200768149935961268316967054315020471181810590945105816469349108418553672735901357503905694925288769745575882993898969852874058872602368169772893821303508191178637334257056872888004394419045440284080833268370124373710377466079382596778560137302215517867989537901368488854958351891421314085821306803576980618376730865214650189340818056369060423824537969464902309257695733070423553056162057916371638878477597834184293278262382700972663168190667967650552827158643422203428734612597077661498756296057589008446501620708652377293175460086515732349204252570772612209999013268449121183913071057571962516801076460239392883913645583760528042662886462464637533643132423932132861540365034180569762937552103032943917991218432951696986626501566529526467456088568800713194905992727220526007834669931248348929976732343456937478231691780408942841003966137508380089667399161022518166980409853344591354743047461944537297673007280010564517538971389404121631412161415304337500533325647034508497720854684680247509036380106024820873503308978176991706021450751801998649618077238938000647024861401110206483546674225448033013934519376026321184907982863374913789805434306265224032859297749505608186498328152981753213809797267032945432876803608725220889761482583373446467071478443124004639799098346458391795856148103318889897414228608438391965537578369109193808698853132858695033146661266452820069302854424340778846278436898409687571583887951771406041747125307615376668252257579628501038696354399498391258671896464940314673786208047477919556182232872948587402551278584786379553400001934242691735232232441173771372767343079595986530899729759608248508180953532246757966499829765383303806516387531104985104062928851181455055949417499877951432113574172997516150042975227852495858350528281770885882708403665457397477415830385034441781927201005398706118449210218770814649380854541695695165874925347965268609818275847621154627069025614159581681002788920443984643967340414656147935413934832647496418317631291506084734475436022608044987015936776002438796990759221483672018559761334252714384378249066904586561136827342264023794050957021766037029289032513328809467994578526891499857554718069495184292370024817491558022958402132738663019717194772732341271231463555250547249781658763087848058624509027637891673941368711214849978368503147190084136159755226107882272786947225010152543022526000765127381443883696748000029745986993399967171068221435951598218753338907116956435669541228168452062802744097313918806269661876716452798732862249888500438463855063764300804096252173048131246664859364282039347761176292104414483360081755312779725289389776276832919506885185062316082600325621512447529368251634057291679382608496871981927177155093490326259868585408333121484583531343211323335284648335807181114190842129574476022519420847863342998341237020912851612279429690603125362433935388715606082620960435218472580209296878935651261290492475466766524242674281878973846780760024548454828086854668006974167420085097801485312225712439537175966962427824790339333522978427849250956130329288524848506539258988935518237052143875960109836059011226793564564418722033757371082246437778448512250214350611621411235560768151799910915859747703439578401911321464414888794022626867763348557144685525386063781397986617409803247051009280678181950710749541728698524245773590161066382957445354791052689724624705114638640890426110610228123348910244766472681079361330761104071970007660050186537517168405538280510791723496677448789200776647559853474929521748262803355710839870956858220826289133301094152946981678897710891112501318537676772379777891320930255904268021860323004074040466032766672021106444931746711831457772589733470390471128087520615488919688547682449284390260590680850535186857292498426769725643656104815985972011517352306734279849530494498893212371348496171243635064029890326321322429806901515962462932323045205609775392023293029487630128221415294359216561881226085648723948732682642163581497165278271513721481186248702277136665262652802851137674267513497712436835112392474919651035385724830091471515522774114911692552231644821274245089322948915443014058258581502396462351386363676453407948285822997134345669197042246603056399594977716565929124166960929451651090327924219279853372948248923262317746626727266076892670325093828207946689446173657274016583912431725965638575802171882103472378734713619110477913090086351312855662424333124212410288673049123629644079697666368038575296907897539310888341689116526773294545227067421105634273085513882540594571393627537959170619261382648035681475716442825134986667831943989050008571532267000204737658331940181274475432242907335974202992690504880603388332002185788947469991955349867099268501939843606006119986095242839116850231456971348963246376856084759773708643425738543931208080613429921884769855896534996475744953515737415017779984689486143740400160910874526169279624388519710726640785034193785330848889064321591121035278086340548770475664035328073146739611444162293423387693772391443843756827488911651908176307398410264532727102175569493204494477083493087436406236751893050878137023762417204506874734272819651057401632185787729514463372446797687092533644802621899002379500570846280463918308880239598369471253920682050441636857226920096899746677107255652444590769057753664140493008228976408957504855640774656686732029637176739479714205032038304532056397035608791244121371470251318504088006904409099050985773245214513324125405006430369278598788318985234097562026136014979424930746502004666249068632847251948166695309083098592705634438656261404789290334666060994414103708208665525768828939306961235324261477002424955896899270201748887583574894302948726594265105471194805001154691101231523642785990385584511388212443014131176164981297335274227829734463901280407064135155395423666365184687723011660543614197071566196449279799041503003636271096203877507891066362015063200048226449023935290136539535580693463978901831884246353115882073262478427726506699452316428448517261249911178743861625403878872340357219192619752287815112964867072652246062266069129147706525186719803486999224709270137011268940360693999393909538260207408530695789809886735215348174317521000446839516273609963108935990593155438253053812666093120408782854242612982649354404467485076509311479882421195797523910648951935002615507692046958224931715882148036883843997163695155064914060203548365039506490756884148886941054545010008158120055439814319889656621832887851000756512480533845024518601161456744696488067905190447183068136476873857175902799581989720402050782124876688531567879548402877154285679325398379736413287749231191114294715381252954249393732728731249061402842124513857188058704546824897712681531902790821189886694716223776503592083203376046744954478774378974298325251232432054597188564081688634340107875562312132236233722785053035417779384821360479269035873425831299921756588035084272891479731580840707345470091151065688871048381904966053975456921079717371999743945371247965388471411480390052299677991374524073997367192835311155079147106743014039949565015404293216833652364504806009353244408904221515184285614763355511202442744325917823994364500048239828659559199361217588744282136176252580845513175695778050710762263008147505629737772772386028658746124222848720667730434972216113519882020855323057163170100081534918184928271773666242581356417506535096253137707534864122032720609610307010828580267626828037309427490905264777880966493797386690366477492436063434094070976586846903281142954320922425199711889704515658998838549850259636011686002331352270566140645406248889555891238711234596287646033024253631954449427544898667037003878152027669393707241191573445336847110199087150230741108079653313778797751504777110724495798794102953552857358851045776036444489856833436237625162919446581443077088488507789001394235875792193865944190011981090198853678675874993132746178591382629711459874008783009149667247171631567174343394497839849666772787719572066073606411863013728444867800783945331498583691281394745251833914832220706207383312129617007022321870405456708746475543125863191255670852298733442134870204049806839131600593291396365577647860398129334172930378540843130123115725197614414130274843538335971948169964467083040164962871972404084318824330249255609190630862763328582860642002753001609902950468036031586081394751129856761459530625212974900130818975714292706274472302262465097100289560719682291430827031808143295069001542582371485491113807442580367982331300005566600556110319021084138541139088460999262015840545690175635400297691055438106859529230022671499595137976685740710773500076840769224336062406707350980478134437600625312507378867773589501997881746463533757845905003480538837133133858177445910071031327608207336819300460127747371590013276445362195463964079632218968327856235838454446770575741119111635713758836516201429306121160200128422711091254288348735548923334673557103278419905784017542496264489540203526701131415627097261525124088761465219744275411803276452892032361551143311982631722403679735524544248107463672048225954019691881961461696670535739423669664395308975058568142771089688961601884104225497665632229392029245620195958244524470292897628079486893404622794488488337623989470516379999480523068511599833891547912501288451333296939815569359067508475828588106300016516426952709423504632379068640334504084059799893848414683508712550527954853681127984066775886093501363214736964366340694031400638076834975017783770748665577445141069574807210510272370068155178289206889768025053234160101948829531019823034994511231004657636466399184477337925350975477233540289860369740813926860015181145736937533696399774720695197736562772771176184007799417451975968857201660817127925808731196990460277443475221384904866691833233824640794586075856313489987489617085037994095478317827749103615386317025094933630995415067692009950619490298532810047353173500826739880724018689596866288150191760181371959332231844228276441361732044094670069221132000892721894339222797642669995702600100065299156692873211154315472050747668525878808059314969616527885765121316665296664956286870791287237521262510709420905206890482177042336640202794076422255561688432094014991995421570101684706662349164102312378947401527790163239563672053655044240672837409064318476917312483963269085718416157421149483240641407647847970033262230842915621538536886125363080678005271804897558952465571504136343023477236825569809378051372432911195491420321898985743581507634452412090328046376942744020133976551812118415601495299857756554930980741652347292445852543844501345452344671950135729897429281872463477567508573664210736336208393939811608805494398363201511219007733784942242321262897178483576567321856188664890032521269844977216372367667595437192588648226304210909865819175321548852006273577437387520756475204631584613401708655554155132242763534573684083433951450760807142279071214280741861317081237532823965715260015993692880359995352563561262314366703999643458768848630338604952378198315033787685817288998855948641361651918300653345887767125291909704200180752855628144658422648627848590488585484707969204299250508078124911000105281260496956988378724600144646298285180692195981523422689400562029132712506742258498181564764170988383436024065341345596112879828121319356951784749005248414414774320445310738117248992761397682940213551310098414234141839396310607556854591057499422971916766548472022821294110969021910432648480143001366662009984110914130550129332070376648233853797936389401251547538939034574305314554813210605968970125171730485350919205177536236286514556419627635480721046153114016470022521283221699355430560991377059022397913447260267307594253502157240606697229460984339522627321451509688982827887624730927372837911160046274653544112945093333210526106886761507746883175111778771672199636157245280897312241138639028852259994537228206679928881349394088666130638197227872379669502342900237651829985351741703819765515261106535572570860560946536858151585116213633657736914301768080252293592150271135559092387516860866560651187161857587359601487340601750564309171029870041222640566434433823767174599650771266621479862829971227447472367325953720188679128069422095561794397751763808194186076998593158250290857608896472100749780706933496437939614431247998370440204928382117017067033832013622853278655203579715410339858476197519827084581094688363568864670879375612154892946238451337219480476719305173161425609364452131592434381823405992633094588069676735025509200187082514405960252791235840164928044390473542565557337530232825912997405274210022652315352302062558483646850314458751026798174975555959485533840266375632563668916019192092900160908575718892355982805241143318548489591358900775585437896291205414423204229165953732400356883118598289089288295394824134866368188663142684549535967650898147813223778557811726463673362697260025982947702588800872610472366452165082638039019603613555007177938315544619227920005481035138689076507528936957852297813328823523962409634470074212148582038715724913679282220587120523255239805708798114233557373293460760370579073486235639160579014021880707616124098606732635559497352138151830270276578613715153852858977385568477744729994951138029217157029244708871304079869239336983919653177835611240538080179535978301840510736512596881052273257128634822472478603604790983712574420186124543162711131816913737139104577323392078232997273828931869652561086651540568143110980569573906122394896835676666576008497936875261607716826022868809567320193078321531444092926726825618235357359732500451622479980028598369829325224944580772263830479235090616512336448111097852428620777854903718174786088091094499202626525088639310615898138919992734337488387694897973315215967423276370614630588626744426746000036236956385662257355217070366852600344317012821955726884859134486606368354455609847621151018437161178830641893333383876598660740603070424592642679772271380642033788025155795510246433242971131315070861185645298975249369779131184403129500068462339455749671250273060447442324022835157193297219565189246652372955869896601938885441468417107173172314996304583268938771205125558033021485868221324825359508239328136304972611281477625585554061376411422948922358307476204629342575106827043272121970875308312334701041240287569585282698104344860245535738013885464969624560815780458344221454586989983692628426025815379947163627592862405782144803538773177587731987686712175226780937574965558614624907190858050240826422379894010903484783255247550866311688983865022807370940082788261223316527955915093833289231828678669260437186151093576362889614086534055080379802318218442263090652841139066961183812110519706966086141633745457509245859012386191237426488428913661066529478420312547224756508074292206695255025704690958649562489575150908417106474903004399940890372333894916749942170804739724385877040592294017657947814333043841543561587994266052512297575227405417626823338051151203430823906886273039758118824325327096120766234819767183483999204948244269825361664788148328904183823882062032421616268412721489823535308561301229133335191918845497104258518144709016443986351624373135403565790160827598306079803083867902793728469041276101258514247453546954755696463827089288701637213411209858221726346106079226756135754437134925843630378713815538935440932878686211625486677901303268661968655248916766110462429835408480225583057301965916402681836973236525562339957038969287283277654926298546707529903561947805721983204510427837426940065304150069704842343688999934754823533511398168761284033877003867918641841983684813872745040062542051019142012301881813800173906561656100600311285242623537977801032226139126934394073499455306531479700986305560850861735792528606031504091793191413753249147857303185956614762437982496124187209899761815097933607001472027051598951612332649918543376392812019530551050025343492431083647688833028675412871475771399682795046502636544347053461324128439529325908370418422688519785066560440833279434365311339295612180041296057652771447280547008674041397282388287615086316238956207946336322690643512406760887025521015525308788022287360001731680840935634934254153151517097229407301165310506243668894532795122639027009769677108418323710942938078479682433135880085193536287850177518426839244917153855945227037063952300779350843745063148049344825026094638262454350610895327612230914147452498490027518245383562814239144233476446728482017957504169275995903277192274534474676791900100591572582048556714633861331818072980428527723779283713825462386375687311271925185104056058717604309298781068833944473759893458869272739412818652259041469814938912523433342986484489128391504407569826430880451500613159017497812757918294750749972505267453579895011148954276771308563717377952346678710788769599058990109459334873176678519854849067232971789908616558252782687953794404883692532358223951112265830385001101203799185426594666684972956378294926675792095111218148237047527912969460402580343353983286694465439302959038812980984610785343021008409435849353971213586119621771007169992740920737605097104594631880432244193498836881104907089877106970286935011160791669659039691593332746852583459929689569863147656740006451472835060111128041746303287354506427771409290974515085960805374905338542450569336806179738802082172090624754841754008342600946261910884049147645974910197863295838975663880905430144200729315177983644967946028847599572386170509506872231645927073187483221328688384952397395029041622626664282235543561391691610831376095173300415847562180151887001123414845249043461778670258665435288841838728676920571385082792767638498074835874577782339850480059894879685370317628414929913956929904026674953702134782177704269560293012726165197655419061090648604743266083558210367757355402081095558066324174854549601102309021293692654632993904244762824758080870769337534952088314086296833257352700749264359106429994322234471265597391456847149181358360976383302291178781789285695456234737059009157381445168272945824076848440073849775196590015943347404714772511245966456328546978690284266337266968161209375488890209683474458641357196502244188437338065559342993382477484002866166447265124264898440896867104759871920710488489673006028408094467619479402069272002854538134023586826760539566472256140688390675373382765846880928827944784813867238080302372145697742480658260204188399551926026025794400996223338049059259767048924161478784887613934596115821786965264526128562970950687142985386630490073947625832619885948888707706046886165390481946801920672363993588625615162049400712006184409550043795191902148433794185700538494460704389108655102271640318466019443042429779566047311191028456800451202421965630479006312515610205230070529795198479628405860624908931332975705574528611909883095448215514698441068697342631202640526564693158484346358558312660549355448057945858217254966039642243413006250872842164835166903041696660470743936064952427359160656604938597424175332014041314521122271892350578815539915496022205113741517574856983708965475410656387298730326216192818276667505324123736344364897584026615481304460324478885795193145594974643158281380220496971653775775029455626434115840352879499169837165864537002460744132184560511415363020529320819209946758284223074678146711241611721786659475883112350210050630899289081660014743299823120230981887833606739543011228543231891138969466253959486811885253585043359138805880824142592249363169160292810486374455766221939163171369160389228123667655897678398530078051848126021786138466090776816786786502206402720310413722060792181855007976114670244651089413994103149010081797849543029366500033407709195494238612431994099448753933670011547138776063203326585306471913402694711860721289800753937614841441364406664958582297457978890495031433098203110910340967313971045789239208411764157826219282525239248406685098723617174490263286876958662066308412898393686052684961220760799127236450807288982021038734222285196713671646811365470151289767200278835687485433405507075297987032783515857964891657249062266234176391968377568250319032353579635545772691703539564871813257601429235881451328164722104592083604321025853669269311594257189614475056049097787600188184203737989659822628571972257101051878633738661172103265566349951441647593858369704160670269571266961057316569129271094604382753401495199663115398141817785133476652108969585959325173994579681477722698901563764758463451296864874852782428226017209763323264091717640483914803981744292405589259673470326848650448156036383488461963559832816108226828903344522456395720658182932812980778366074730673313895817193379526076650916731233370138017868026731210946905897265601545133770492148839145245967355336972724894048207935393836822437839561371962195864800014137536525611652338082621579669479862462126550597751770294826937876800523473363175048476415931573217291504582322428000799347484749606388285626446705510387507023170810246780747344395616502229228320850940898236446187225098103195690204867968686701069900910293880930173376186217525712568142180197339690963338609868031642289880154273295080151406837820979254971889742342554558482286528215434971636146821527146976744951673628449798137262216708001974219721192793488084883161260370691267256404585354150470622790793069136629334384015309100737321706151241353223530578721019289262191360912346917243433858777965175782648267537330669547718941778480903423853107314075800107550028426319952957704005432533535355231256201208567646425373280570851660531865453833939960307591959728717983608998976530243885847695770502392356730194224760838101235044107785541076091551495405868166503495518901256003670324715080107538108763283285846405276790101860378296107483913808307738242615244869582825046127805312281542982154349242338931851110556307401063120426965115537705761142964072876967883884580225913067758829514325019992716192281317174650586722464719682241293282908382853070372570575618262351036762125858720722238209699247288933871668914228782161209501088108203065668087227505343697686209484939948201727606505226206900005289809103805243598581903893012202790016677754101573717864547172373758486782405372932182180097070114238130962792987562143804047488874961556039316397271088028733775386079819466856649116928555393355599117725980805466869761899294157447787315472808993657633380659335966041417825410826638424475041817657379014295698376285500526538155102348003772120149497695073611969400489189840604623851053848669058841188579309449416438167662368521060422368157939864855292295873728813143796782753564806930619638597200522520138389268144941360021534843094171739202527933650966775925593470255876994753310502224655352388497237182864300220724472657003274208972668099917389292570352364986870924892643952960840340275889646552625765975102104460899210060472416546347069845930947349556784742624137507796663064440437007962030838124378548171058929888030176383830886826496457784720714654296375101946947967310389121728124191258043896276610977527970253453503220803742978372149763492463825466816962215202819171880866251045252211870178260442410749322898869025183156645240616471965725195558027907225272536607149854326377110405352828688032542543857976944864289649315789284039472003784965987057392270435713804894737188057113873389580856901537415095247966751272152699493849991700957091463204962490304875264461140957260009058699459314056063126390567523542384736109008841281265920936183469277429315437480757694921739741394879929504149766532021266243672296656081500966282263169288244447799875254802325349267339740406328932712525627465147065042378451420467320432355427261778340943419298335345556153373572653106570291773194321497063156906751284498499460678619497744415942526379606472103014742116956428087858466251258808497400205712160661791959516517086224407041522040623176510711124179779155736975228439146908804304603546276859165171520761826605583108977760873186188851018134506715338868424581870473351913129715486409703210017123587114384654963800604215607674529128446913078774222325300413656109459799378582858780754480130314878081674345805223377101229519754991293621269501195276249602215503940317673501962969777406464759481795899574751500271424453655940145240171093222274083584885666103008326857825894400964561570321400947034588586128417680158231812569094006311806483705445891497975278232350683699641318212257508080445629596998460206212572543475149688069367698566145435428229778475583484263315132121153622731279769679520378497959549701924900060564451916109998637789576080927155670556294041506171353728218646316255347966208154126999846097589019182628010386901905286158026307246746368453073226222707126379398396673231813346211621985373230206062721329309288313423916002318020257967347155060695300688650639550386160819368435425871046132239484012802068887192650907832137198349149480629671166822102774224206579721315685190020799830877687315226272773982779149000920320106201843949893342883903055229422955938816962041882786847622138941571208740094192191176196428701161455104765863473476612643226074395494702657604739622176049943453366301078001393855049316436185246728373474435534233763984331164682807981471555540265692069828584608139792311189770893700316981590135043339289950782055841206176895295795958393493092133918341558229935006566821955155901539504488370341678153628580313551269668729002702376051952080903554938213975755140590864802588080053201227617928187498512156144022450240914072272545672537687127440499318805943403413572865598690966521535836935230569985016367432791186688253523538320988951029127244961112853670754595050226659147920683325214422689205016986467812299876676354125382537202885104409856371817031833781185703707362870424649181406234078511925396427437697255392209962394829589849596482879821277581755326467066189946266663663721637697023402635778896559149054484661181824702660102106124304360140207623703637260914375061394345548306372210964243748551047193791338186531607455447105736006428636462769102010765967539315073897385326805887455111498254765204830358141047624076680168438547594408013567623226889916189094533485070027093273904114056382005479734273903437273531232691529926108826115393093811450427293937227756813358767254676894781742951491211867055650406829340620765015036735583901310660979923637193903758840068504629170650457739732494410450178190698588820186935859948068283203080541922949057346010352806009445063128348441719976289537137542373852513451365432947893877133687777746305058946945473681893301254940599116850254855134064822538156424048138626583246927166970520156130544268235861807305141468208419421917407882201036438762298875833486180966923571456675385897006162555678476108354033284934308135481051513743380635200634445480608818709314935377426005093115458874699567142966117969585908401457460813587176348146269957078462387917782299001494651102402917640762688382794904361230340753595817421374235292580439112846554509970300339357036748150857700057749006417811014748748957096950339514028008631009429386528412796970361103005829614983557425218318830211764780115793301396256124369667842639357490745177827818096935588811307773300989040521748087170370737588664381352784362664451315481711449175557795944926696036963938203967048131796903187297921138372156846647150689244194068788389309785577634479625476118442272030612371068313214469445510763867723677115189867232514022659989996546783183439848904146500762673551402514097317517571827979840417625459673133551426323227121776219571835210363518615851992151324843121634134175222191667848786104679723929484115139703839638005910665605324027114398755981903320296911310289323226867235988397646416850839006967460521034797736263112715562031708858448088817408161677148962369420634931644807363163366175889039590866297169412134179770896734006145626274571083332699648890784850278960351944611392256634934203731143439957989532950632969684083209829843286653949471082194578990093816127175936907255245096041655568907047470855118276157242169259448389433202945966511531668837478793783738504197976710578312441428837036609875166503527241405203378191354755074922661742152021329350844732204151522388914274700336601370320187285501298648241553081302051921740831991444388259658317116958609152913021529622422070803306536041056366998646712664490613567866053384608728407063594461804675262135148763627857776239812590840316046737025188561964858373417514081455715057719002687419147374002805882544701196846489264521009967715482276840685889146525885290432555925481857595144769445588916827027521209292703160047170380724309707772822818509729145635846626842694960974857335622439875047173548079639514628291780473687600756132494916336774339629075907918649866104553806676138378988373704328028373794583711252634275617289813216912105147361310519467816780803735720247061579591498190010326409474067225897700704254713796137088269190573617710548473033364994683133287606614149462107822694399433113726814543665388841329579669632118456929973928799918965161823548235519992888769012078570455933193287401860997855083004763781899547158867460208052370118453869183121133656827798401259051298349464363715393289681849538076964329471424307466016214003829112537601815551386955158385513672821625694423081215919715553916390856933952209616522677125669538263983699155935933862307452088005673857865347792350357847275213812100672388598226500240750637975259594289806184711343820943578424034743386607177725311004060824233906323350126912844111805350131066427208377282179571831192749051838872013495076023391665722707653137504538588297187505403657370469953959011129203210993425045834266808803343490191757855337001931927349409743706057781407354141592390060500741146956994632430711409206586100700933021979011523837088869512693239093251612496510650948331693959493385750431757075211749101467607144581716847844539976625618355925182497775528692416787897006434374317221778305227381731700330248873856380532124548362250643351768182268158533087257744951854577467044138838220465176630995128455833226861829272159288972565899602967236780748150866674040033883472685631714626220469433918020372325675221987443930438116008902862005125102220977125134082351233909032509275722839257723951504667836359360651818989815884061770301002585958639439058851991919949707199531916612537255018551812225222883890437001903273625966021457227613625987245316277212783044374596770194030876367075206453848618978639154267236192401232184932606607291876018782697416742641568567115591872016654388238109399855988456345509482133818757333830740058333973305049359159876614056516696057118011081873872030444832771784441442779882931338549295637646154476546658832675811684190476085018444471835629306393985882521898233389774392589294498514387496878445238770890215750325197558363769911873771365887450263653211493382603680065273845434140658252962327154004073760295836242581454491998044202902866842003854552737658248066591469459598791377049609020031539810905936364876653331085545157649568872597480866155690126302831292290422293045103379487346237588337808896881087954821213542797594446670824493427464135007109286563967457618650893003058882635643573553062018928997736342243885298202481337685596546501958496157752315453631903875175520615358359413960172521127350055629920312851626808011931997391935833322826875779186939652203950032554265932474255305874958319307399491248270740423210066591929727618611963320124457187828859944888849905406863898816142669373438559186151358703198496869653829392865301369077617560904165086352400727918485229835681149921492851667680572954283474733716931121671970045376282649847124007579208088761685273357942362941577434114274126026077691083885277286948444044076824100429343643283813971473379369045914225831450644896246475293930251720084242515517195271929453073309706798924241778665111046992038400260814174940502825358671255563305336612296329355256803695911291463090355754855112374546491199672626040580183615309590952337747829891659277350791374802120109073839778627897361316245213519638169368031527891737482399704286800521723444856899586470181505368165301779654550578453791262698515268461940238481500093237109174343530858682133026759978459732078212611634676948354979642671431319569473222114457713600207810753193552313865804866944907482857390299610881991133645006493615349834424359729425024573594579702532755797664159280917050242393840293922075790737415354562920910941306085073268917966705907940048905553481020915766806299771922716846327780557100025746328085762373797918723986508925271966441551901145617846559504185799780702003615201210225212368165148381946445634099209696307402169523461580069249659870337918376720663243507053528444632360358740979756112793156253684368436984111511356816672006254776629224443325139538509156316669139840243741304365669512406195686723116649370037177771776686680456594256602306335410862687977968848733356143930291156391041648863693744890700143935056602364362687530700149839183887596117811681208429615603629529864266947465771592384966187776539535976809292089178521481304165398629296692763771525069489467092850106829172844986568114001337567358189520311413646196798390256888748928252737047691051852966044148518514828558014491202789784621770029730982392612695079689883669104234072248288396388443755319934637891506983376298969941468136684322075381899002526972258649772631747667160269042443404120027092608723878771897713117111348728795650558943977198355612723901434569036323966928045196044465786146413238934902923317881510629000342940719917827376156494297945921672658702474410633421243043986974550450967175919111352570271604749754299946764743165738435533886811302953515276982715943132808368238393756561446893060339018260521281954766311890451119185985155317914857172448652025081390378259744725285738002802341567642674017284533897834633292912480036825790318182243903349662727575621058080478174061279167241969669577158181472541667696127243878990334017440933951815984228270079458348068500927016972236797755287038006593854135047749280341020154249527375609299314628008234819967785007877216570137170173260121037431137436656354935324199266752463780338188662543947516786705138713848095504805584080955990415889600050567772789929345452384917965369499218503533325141211556020710523978058300516368503043586784814522541281964444842400066604284719046572016862291607036320503165562389428007690460740659262264032488738214040093673125841762653235161518035237464991375674432347462930103425411264777806864406835709800001309341745201744363899968595681399090035095690649583926732927448193028699200296059739473639119927191628989907419772842849965753877336470397257798944120912880233719951551071228143279609507737741365756283834409010108441055837246659129538393181960684522219127474438353858769065927855864275837163243019184696037449326457037282259931633149804283763029481294015590750448647668389145084673693977521553385169441608090826071747249398963775894884511128551307882048094181075008620794431621156029714303178978080857273847039972376593061061437594704359516810979668370029907630283221089534188638954395119076426982159547701353720737934106606943842364582873627986951767235747929780143861879088527074102762295293262390390391281343176488210395947136885495004202801849120755001048763908240850258154891640960919573592548883816275191149655134612986838144898401309134260898490194623391207703042104805321168305188613489861084920012058941329726283470105054803624779599627761986154141622139451136623082273636484088296997481536812756269086150116317204334856608989668022517459872609324154209868609901268724968307994576182848376819024599412142238088699513127727921582851056231890831330465962891134131144820520670040232848965471107940128633295033222186841145092210919854565471570791621516285399849578168786525100383655425820756627531359406620776593327799962310929798193866793291164934403990164985871497427264999323505425890281427752396845377757933822106990494500949097106988366827599804457300188302978805381333817621364511206237666361715608795498932281140751512849207715625838667649942117238990167686887043698423153850683239952396286374932962545188799260013825486694333336188185712772689564050383160871334548931996290017767548876343796908859001787666877329937247753303340831283639840281231776057192541884242472883492415177783524246292690584325450423440798484272450527867711593990529553749911767724058893160885409758381574525228941842596406725084151022198030633074431269426924620363092726712718769135886491514808670287608497637076272900450551907038442729649323458040176574242488197787256282355245990360505409689152116372742906897138770781419494911275337926176625958684463158113252935671507611659721603946605336918276391178484484314549302072712038092663318331102348198934159406407840866996718832888388470339931374141810424198977191416094249890960324054069534976278037223925687221723004196883774603603301792667544856959067610108075889379127365481935920901015815347911299281879233482403074618257298363897653338334235072587679308387951047233286086438658079694813594425793843159842090324569175025964197436488665900138017238676864744353832130041482590269559253661485134693098758145061569170656181001407304039550250089936288051484062011831600646728171658376890059722524230589923306345516430910968260698502192070557373402065928562275321885109404679652942999120481313618720795932151594424692278928084394763021285732992403259950471640413893435614421778166876922586816117335870854894235358811090893956480445312532966759635769966975892646206531663245634679009641340606103902045454078028822122171172238422437429580381731025417515981788155820052853031887739333782450283462501019411392523942021983459860026631193643365817113796304546235300497792327436897813952231511375341637278386455716794065885362311526872031038684072033011177938897309007998987235328087894615378393146920093109547692753481341351166336717805781818048673520862139638180913518552429781549682687500830548911250602087616931567334004252389517114591642141706362757843327279351541321026155729438759004831826869029922432789858710923625674836861097808952030408860298761007093918952915285127799848629578666876393784521683251516300131405875676348614894620685469416384258165486703169357170844311028323811469020876428911657679490373494914617091135398251352252009254639212486060691886134452202237275196947677821015781539481852937365440724850662912264766520264657665446147867540975385348434186199926571219486361056438107671860507053096854865769988579787092806011721835250129781266998565016778950129499222976732360845184007373286474388106141678707751305054476086002816070731429166585291795944288223707458298198404391676671726127909958057459463863246921305810131705299552702797203899946777337760071324325812427894095724367028258524530915970529892624268435947110196712150522534935924007552436962944803004940287777808634946093321019460545965780073995308280472875485322217419934575866407036600736048544192461731306279776066068919871866795463910228671785210429848849287461108659353853444534070946401621915993087252947392205698041157162284132466414363527791056719133680138570698553779642680617272604747171066176042216008667768650034407104090023141000216124396696718935775613275534172176333322991255552917796181055820806101554085043170899636352323737230470288360971565083895835800916469290407943115341837733353711213605435044082168271069700291672665507003418791468118056008795553122199391535197446552202938237608260175602304147745864067420258444879411694258060831859021067232741745431482608811632127155170317618836015282801477364629243823576422209247461538072788807150670736761913367650947686110717681274334830565035442328094306869586112204573107111895276919242605132289582880599843320642460275997655942146541662023063956693995912504620806487529556030131053089942217610943240462069721595462044061838296302527311270544421704831489190913737361422284028568450548467500365836389084070059533943751491445000445486949851254131633990560357818303880677593525348102221706920258461305893730304162264220112602821188707730440395016488455737437987155403637419893855377630008180776205050490780062370697687085317714115282186497222172907441302126796052284118213929738441635560164549027882225020045547416938730405841439223474456930174465169923767940378973255649388546607084683509832223289377181300559419123694480098048464219549714781908267895563703881962357353097692950017546699344378993341991037919381211650356396495450701973550192389298076729878468814540882725977176693907801698817407346979371619070791823896711181250226160543328709030910877156010053597528584045945486748915358260311359246311467156316055880604006180547619109441925719158941477602356940884225152429618686825936991638893253925772957036570564573970225353389237510627126107356467011149324783565357312637063148457994238526552638742210547127735878637825255246417518221676841510450035593531188238365721993753881806229045167351074310625822212287234053635682745438546611003036288487992350840395085980264271648291949967793704079989744487019899752607898506224694010157373012698828387600668956694252652636339631194256779174129573476234555657378102800837100791618733686083478245661141660276432183150520818287936663150077118817203921175182369889050081708711299935593380499088940387189456304421214009964418102571890413708835680423922834086640812426011276898732318195611981286398169995640565112175777316173525283381186851817213548391107282302645840216497656269285198872946475614017409018782949676556220506135135409527975073511819489268905111551116134553418801177273836431369027095377855892468129112037730433901640189909513084283092724949898294864177531009225349376610012850000491032616553399305516904604047502563296094389437398282455816503417377379746221395565519157969004351554570146884366795589505252520937361420553350511017311960384505449399968732112023227804429041707001743634921498161031433323922499868932117725951882446872825083093486841276865657128569769158157732181367031197757514754919601608539284783084617166317198812650592368506455121239804064206876882974619099987533817434536797266460191147969822642628848152365695675028097018997644999153060927845879504226766567851161656195348939193816162512239394103620168388187695354341681777546344636863135060891092692675992481228710836275063748354065627588056497064135990170890317663039307252439306348725128182305251224436911710405902702316265400689453865215928285603549903451324594271900893701341593540685326748315084365354432161724266850490740603205374132618520713472104915253918401605503101415727605811430465236995295832184081273236877891290912429732325395196324406719195037366325447514008709743650998963885736987913277546212804884943457698120366684766723943670883100021114382204915665804333642957704139478993883856594222974278547489965882465669483691192163315011199837949447707871141593207434055148869503242134784167428486505537780330144019576168030233151257830464556346578340129287603246188967253997303021171877355684202280174834021846058356870809578418757971799878588820639097498711738750771198310131982017165725678595761483674752664451017397441908685365478935181709873686234551446266477301080488578053369361315584264264697643139836370719916855464025231363703156274528341230484708701112029607784644732187105353907514527925303193345705903233700231170643744220505556400474559270756798657293989550457280044261549631463418317779964611394815437917734376023342525700592631272783131497612532297451849782498542855395970519512244897313029358781510697964458021489916330133318248860826061795809283958844015386705473273339114406201680108431002173482703056889702209053319606519122651159693666472317008015314693403234705132381206405938563438717738492865547916869375557689717080514036541061703818119626622574867830778366916500930104597878776816010124385273983658560698045272266944059599684578274394691498233388578419402031263451058141413919211415117575571079180014677835175131601361678604856399854975269406065814746210774421915544899372785117982415306751786418999380132835517732475365419486392658238648133863683073823656384206941294197870678339709317708223063600295665770526720079974089261228313345351529333221865163248521184139321869675393813443349760804109292614644417179512193505432717343856443306868122945025799645290764282667611043314255192992460683347135110715124979896951142242041731203263733751947444675471673467789098049956833672392571256305357860239307893161424211814405303648144471077298532213408911697773312847622420320165470740179396853813444703829857764291668354977528388219999261610549203025725896668234859749385526901197796306509504234858370446022057125887593609142699448195321220169098409384010598575169142502648384925216725008165754754238617021845709762766458681761439111142656011977446552695999676647223545843988252175924316608195878970628975610263667350984230829498681999178575440458262252926968832316976407448619272368910666295701585908972816400325464453845437183569494560387579396974467217792061773466739975310995965063710726329373395480129515989829158399354716578288773632234316579938488006651354234649505656079863029605105277351353328009686647187379836668729902222892567590249014430318558616222114361975864642988161782736255385428221302234741651688947876165435926006459252323737525974523905678139657506296003976093432439713549050046117332826845840312055076893948733287862327338108871337588193171415276342989512758140099794129743318711788461619448439374534740720604630398378761992001098829387483417742159049925448361293445386766443961616955932872190993900897770393340130905634461827726741823808659757216976129086284697068237602293199556532267836245327729142511166743658335305455142870657948552836213967091481324541650975415214177472087989709617705780410307952325250995574176151583368824654487881048090737890250644836387126080804305769452572218568708602510176826758483276411910667495888456047709886706735351081802481570531574536013719042351532016384999757130710031591326694965895855678336074182775607167960376705906482208639582083531747970363337457705962443368911993647644502195333940812275805383636008690163590217468232593296282291752224674195153396040636596018539576894462236524548966109236904096657752275750734104612252766998428878374501883543865904441046330388457344574799211798869928755182218410546737913357491571416371383976223562034728036595425705508739425154387811776780835591279726605703934723006715156499472605739462786159624530706899597815100280187232482845664666079196909847200321589270108952495471109043678727819029487130417482815927510030964056460332624771525880977274965723888179327979887724980822824290182101375204937673084967098346773480694020988117273391404059420825227639975665260221779922031836425609810901564285910940265621550591877888555979031978206729187782133932049924747423296843300012535989359468373123620795703355977793803610286686162105462051071727571925683615936452085453705503504201387511789870652783821701949237050173262669149705939907516847885692622058730784823916737868057581266472903786948408264567724452096150337782388388310141235668591098337681986118657012197590875627455482874540107836673258218307421970947943440223410321871047929755663547613463175662949195552604158804322889678930027772412347602852522269655496725408855290125479248957452898592428761136205824392908443156182502011580280699073574118642342510009769739264059539246168999119674461961204568139155952010182664414452038042104604205447288089147444765511701124781927371982709129542806955366886341933997222584925769682849972460057087427750202100197138538904876614785716285474585607353624636519649110972715298696375257057794947673365277373783660299738272862060464280248579784901766910559590738184985899607323510816605670092292207072610942227212845160246787142019841819738964448352458548146363470431444581048219982317058598510272063228029590822354133189962270712130906098475105462903961346963143636803728860360806769163792358103449857251645505574835314136548105374458056002308387662449076919141880999464180925855877826791300473673337571639394082506867041471821203141747682586810593837365503578081834758108333176847729964790143458545947614272900881755542422897700070089784257064758718751271390301682863003979938131793100601232376761358187204300800110329408763944489477967393995452118291619128874501629473425870618371722529685956058013996156065065296211706655705579492365049497490370625186500525102975942482654926358102254084436859478035335384316646959748129887508747223204545441186342824856648821918285455518186330290511873705221400120121586279145613672451021241530236479885595207366242382471782684181452195983607709451612091675615868460021323362762715181408657620193717881883091396769704910962813704618831917913969218039727058960077789629383492284850661184270846675430477995350205381047206146374623882283725177164848018335626928968374663604409447774759468980313772467676744052092375451029142533881013951081747218540300731451266967351469751568948181278693502818443554277659523820586611101157686565434066002291945322454062956303713994342068175445921921212282593468495251870219766010572945082212894072540711763170173703284611693097543843208038106699871573144560720505473054199879373732414437550405184615410963883166460534497296674706134598973415494811147949751753043148305912745255752876066867617783477433211777082731037645538771101861462503590371451687084666456029064493479004042017491839504971747916575961955771242065048890440216484116106212683237046737714416794661031156675417298299701136073653534850288104060281959814018224481403763308764654951958616043656207872627115401215864959067338634660468683623358026643172479925239572735462612546856923779918470796394821661827506694328666043119585222391781767963672778604553447241294107348350854241584920601148855004001672265539698923960819299409946571222612928019204763259160982444877617948302611481623474565788577092207421211154938348658062295104867208871729067053081419457529559999679299247783986710109267699325376567770340530469973636687540378618172330152562163660418781127554934117386344733577207933769688700022833757659014359646831535407258793187434475661247366026667521058989763623827004611463830616246187954999254722524916330205752982395280354777913105265784845039949885345562364034837387202250764549792688083876169622759629710208329908281351156713786364419276881592384722711676995857798912175652898784764569771074972511889771234616902028948163167516405144618894473126439009906131369825473861357131964445281852582085029667271564770093770727303672009621596643962909481633144700122603400448389247587548333757190377479287708856751755545381239427969618688848503339618657470309055831648561948424469599674087196764726226310029287693404357112166731377761758844820290567212666922578275817749245917163047143158765176552830448660130213392756807853149517324010721412981227779109568431757935369204271157800458137987522861017400062888484781041308942728406849738361002115266685782569506437441746552982076748208734542040828759506025380181732288147743950857123677220049165093020660559096659005600519975874941454106890690827388720547301933369267739727874694838993698097386582575490155915330603986598316514019175445336415021357801974554340157893921939676444137665996195588847436964290486109109090976618086555112620396648787624207049111297193525775630161023726840046986892252947799847293287733870545027652993054300038528664776665544522854398277487121672903931137439195444017207277794998166369682530030066090498336651521215628113613076874549911886513460520686393605432842963661558900544577034096782482010788801725436760739099034971436032582113180654433444269515930028224733954690242839364418005767789278286954259609655978973216504525092159817915078213108201588121841298777444412135859156948359320489567103392049491623879640143315940588989347208732353465391328479852745195828730304474819743191567362451316205138597043131494262711146859013164801095852087646356380754490812009057081761827551988307897046161708359482494746145011236851596485759428491676261594311905337480627547500256072048951940980760186291002582665028039556972784602391030471664357335347772611541485935051891705053921544666210582842303922808031967286897949244190465489675274877243181350960573409030152728856593906994774327847170993750044275886725106625420783690745459762790932715390939736902370000984653579747187508076278540900890353652021152280121530746768933015863443429770029072672537162837995937384231969660034870687505587158663912827875898023471214971707761929567606300808609016373327983559665741290900844387437688041787488236919917131972326109727353436930633928101121959060649938220532205642386186121116349800978736236591792995124231212280764126210211340776876396401222445947219283784285678805311323334460769812953795914768217442245024293630550449848441163115884407968553077279196670130881445136422640672084101990868737933845670285270750357944439045242072542827337620848627453986181564827317860403029178724484756470517521174351988598653465438003566699094199516644681014526754260642185926066316827463379056707832142500482407666899396621615858437585375801781920086912636554961594273564024315113960845095626183843509948390233228394391116677574856834692587447789651634725554316999049120557216250617611393516277002718858889791676311556709024692616162986090341336238168285707075617034508713981145102538312818363816712763475985373744521745581527047060175673517009743761673246802386234622294224742355416700851244678224770995388003144742536285387949646531013972490783301239841240040208735221318798543337534317072264566426231588475041680216955532579844694523821261684410950898055343310052794783374623650271146132086523584026247225626011076625422794646380750446169689141609617302876977435507181240667252262202413954144536273170384048956552576507281611963482880695861046621339966831518147696486694767811851303343489572096253975585544718170830246789884550629834233290118286562557910681367358912162210956137587006630634222218249743638804771925093293934883961386329801714247130344577761960746427696350721342891250966317965427989086321443305431898965177612686852677234360310115568408565229670027708040492320180426685106592656616225104186875939053106876132654243141633058107935017844832129646364906440939334515835055974577686928786581205226651773091050603169057142656499374773858430312217853026172039232218162353037872962740716787263274585856667056597042858289340489849882739818243983082250395838645660114338546720196779774647026404649156395704786646611418403301328355726060861341374435783264655553305595432460236592506871936068660472073593146727637685983885131430618660872356548054897770021315039012971172370993236633829176655557017795949176608002610476740314133397394758191085349446570237614622751212148208254486122776194084646836609537758854692709504084293085835568790823188589340099079090076191028534142701257355028286024681551893261042483747794875398387113642329742259168480177261582984452932258691707105033242124397919255882535932899393803095127773152362604358454491485176360099282767635972264531293516184816456801926255980868220129780941992002518446373737123147856908622365472835809114925000369920692244883204979352024632409753181425031498163746829613962176570565101618843833756944776019234588940119747255746554203792582036923107897491633243388541580130348418545158805313712344563892813955900572795250744949831454220586833342515463523481519922035205460140045404535904653681763579047868276111473697100344038428784848931410800806914355779427085725781559347695942786624008658414701149586758160345059643317904938219188718257521965786693454979592890587820440811213600955042055138565041834600539161559461634419754812781723376314691203247929619026127713494829280539697484716857669046615157743076068753435593769558511016580842538835453915750194707259836787106546129340585835304885379758076000315861979650457195381301253807814050425851347141612818832522284840899334972467463221988823244620320988314780474160692922815934196099101752463711249295116190161177129693560886212548516591434334707403490763717794461273661796941190535333240008860571793353561682878700024808783154305105110025033350224447574423853894868736445811805002822967675382168973831545569112764454428929805478299980780565192247362376464759966366617132363443741807406309097580780545135576896767568228621995938313611435903350823843372828365883686491859181913289436994585591543610958043234833183754795153324525500952870353970815568609831703720029365973236805263029343782284472386361413208634575957800044738912799775218150762059960817770921135089422245296786407276791588599744368358289919452059701991130783745083798305892235882885608301164352293413404914244071154938756164294526428518415667667926709342614388990437061378081551913514985934659965774695363402893808668071192680616934338226277593335564738391776444111875519833388350992511987992284406576280813248891683655680546877770582799639333004505497602168856027520946161035925366787955584456422939398170210030895426410490899971796394561268394325697203708580381213439121164167048576758763224772372019774484628477872767745858449870111351014914138747626737463590130418076263329419781929374020181531363981971501160659413552842185387631405998348461965380920070387760398409607987551295722880485276499360032382130520650696271963446856717698753755980017567498880162729985505444206461683885802539211135626757308834916919454766621308245247054309895738472113354934569307527841849861043816527576211264054164085321854811399581118617798091377489651653690643063053566360952565447600180742326801446106884538924376865921612942526659336316088069135756927113982812753722315041817243210126515793020265160795002617118629487455628660498052926907506542410452613849847142263528076181601622713054427303143925590230013720220830510275703666513402060949880321981284432333779990067399483533017883926158815388334973557655775223883510343893094495972808460628521768790549444004069762870909950767760948316869996060014539093592750744798413292500063265038346264090050537132706037330832511778332191903977170595961739560230311180876266908983794388016656044444007249421692341682195950412328537858708911968329251937898541148672695386654517817300084762407630894367565814701390012466568586435536066304932251954521854051580757409100639768448408901711844582769849965370943916808029753261036336575384881473356906374960040466791831961978750398654989667487811490879395076909196602704504200637949032588978680623992779437582953907544968815058712694487192525404966696680023655943243828035297260650572101188789495716474598436016000106214697994278367534762019960754437618633122333514713782249958550023601701593580077640498873387585620427780295927979814963052920165375681074949989900076627904348053869991784436991512006868242373745311155183528842550511859755729692421153925219120007419413427903587264990428666949140348104905526929051672995853469240998834565827727244026060382722433053100486003034632640882252049554256157428310926939147736115010337098926883445621353342228728508447809882517236018661568529998134133432854806334596762975547039205158720541959074572742846754747753583160954956227860672647117697457128078479613665888294198467737513864319468329774218060906751862234469437189397325363972103249823713365262784820176559936638462053673963552238014158302781352705440839492397158006616352544852892504907695930478741736369338954506433840870044711351811993036898315769617553592305584377390484902630975961742089503246357755832878236587427625120151446357514220832942474155983544267247405713207879977857213523797322365836891352375699429110278669546770887943599308647677728357709911166420424588844391751766386984134686988476644616262829561150307269818191462100710936918459754918421444785128401863983786822391002013920299933865355313716932994818970763512251904836726450156737500739733142967863560762313479369433399470719442841587273790347035722221744055671898025843098238104555825048838248668286809778325620132980443649150053156119109966386783098848540137798646043788499971402176904722980101114487674751415440065825739968242936407576307325953862999445977862185440633870721752679912768364790319172201948120888262323619949476166349037835840983548723017994974248534776147975154629814547436102798046779780928782815798916754213549702173842169778424991281356822351486597603785326172301525333950319384377281460546695941094358307189199453939455072952295468280335925250821374213802831343765847215318590187328541813768559086036796461334584265260616496127484659299946994277007629323373069117764607398404114866289335089808449816475411072545236234170879356897105560149571058221082021124335125826359661707451601413847797252850063208146477769951609879705529344523238238768829608663870565571604203032401973689409615575324580407447531551350209615217509073707483731547113785762568722575304754810672484378827060768993263820218924567540609457230259833012739073231909905655834856961749904584744405489691046729002856520715929191280301629637293065930689391080393811991492003709084957218261524721781551792300407279556897895981551064611561809009668179367340917117505596968444633420870310486111756486775572883803003624743596126013725358910869502371105933902990846806296271110630757296298013291273808649914092405618752512493065960809908650273443270038018906662667284170768036168480354843563861565203357264800981847863661349068468066784562836716470178347013579145923689369192668848570201303291462538820606939836783393730272550869377740760973647950861167633407888336680033320383655299553185942163286791053664596479871334941718482104765211190325376723704995044088645957030382130020483502257556415726354211246067029932890774450191199161346927290507757497327478714549597135083105999191052907018575075733384576378224197192819224322826101748662735471596106273754900993469102267183745029689243550048982480221590727180397977449581828550114761439137152160216081385605124066841756602947047568945993926484921022068706256022736229141800355854669152061884628970900191895050269627877215139114386426787750785811306530978335403141077415517815360687587694286927846322360477724742926596130226440068830576775901229056410344292392104333700715255553353994329689085790711958423359406427512734088873196676534721483443527221804685778665432733414583474829708441564680444695186308961556163744100908120735587207284548930105316841250139256658163281171904605188917581531756686904640860251345974352307743808858575151443613087663034219428990399617482710670481519505288715445315661761890122353003273451878980524626109859337436202373508461782266301059951157872006467401620618237190416097214433991062340259394521063047674840028515516518762367705147952898011536983528938737385006087155923547393407982226850766031336512267470934092340030288964963538783658718871486561080943622395600535414276874013286810923555784666912070631956401439120420152609958600923417734729673591001651413535167771144582745649414418942794453901581358200763617919197967749251686786301261352795499565803214344410588999175466611076681352709411063105483142578604907945161395172636241776991701319087247436060355973443875475867883933719729042001536789428399177041268673309147489475782141221224078017873545822855622572404313539668172927729756759922675819835862980407290904226421932879097223495464828913857967203287117594974100559983358876227334770598824850002770078994596729217425244757971695162450553671587176920117673636173255311922524432706616826309583387866868110588565777681089140264360107752043724741746108499093323542146253803047903458550193642515876581883276395894647564357706833246877966673162509274516450338662415657709442565436434912551533585808160991430639257284333536125403605048010744362568705598531186829441088595613401856871867898254942746268696577963422390445321511606446332010946878071773911962483404272763525224318555638722621435485092010909566764463644638816172094093445774355835680344923565927302038387447496276849533945353049822300142909860041380919519245246440940803397359753463872442459696433131956467908410399175185651458464342282874076442220353369824514260635770769441596318353302278382799083052852635480354207553584284676727925709726068669991599470595844438684532134271481024141783027402296592224910798187464921368261987341645657352932448327348531530574449855243322351499488306543236025721398899271181636874285031541527319207464433991400545719556979868771394885296168318580311888255097164258775544405506315787001550698287854157191501173888343031465491827455165000388783297749916040159244555870136045035534654187521598296425047240758874900882733009057203932984532379247715315124524706869024130466501139920013412232053598576741769165110787776250072892422413384793488376818075507025315216463164945564389937579824547655346150532170967833452251285768286020568232561671476165038205270068514968205351469291349803626471578581692877132855736419557275246697589878130472827139245513552131017390660623158114991464103021974896705570478508677897836025448153396676960655412701126775594532095092544406940354704081844307078408242159185135587708307325401390536139413258028086670840592519738083546965825796771819432131201671170195406155599808609275480952819354605650691273199408488462842846924336706232441463371810035294365052445132611451270995390416257666523543880517225108879392162884112014766936752914368007589130979484020160796012745030072011498833472787350995394873504399525783432718368672618958303616355588412356410873006119023742220735164426912826866904838583865265187433907089844218921237005753276119531768283438862465681663995925480202950616034046027664279868981578354672849523086307359022904941878398901166247590415538547331107649875641704634463449955749397118699725550495482588174657163018447351100138625929363347000507931663404971546389862108965808383744378640646834503386698175139131798645291448295454989920381357227839858666339093263187716280313200308686781687965586401515002176009904240441847495726006743868387221299469783754733835192152854851245597702298639571027887568476995975473936836725963602531095100385635267521910244138570032773694826558215063019868606350696429515139528101911437824954690914482057843238808883524968440883507496571833876084931291443569214537912413572608149421204123929769735919804135990531954798415069638654661590759293572552067644290609346550067743503198879844341517228929101308753801305540074448004043023086463121034864353777926195998916407616700898512025391340206189193135793926666451637125042389556172134580518390392485009151324821713361104161102436260178400839645879009000150397605411825378393889556465918853522019141841563376000895061265519653811505183620261041792583672050715566921556336594793413758238048339939872753415430526950797272240498565541643941588184871264770350041127108913971198369128115444511390713452867056700070429825376639460327202419293701576355627124191644455077224275366890681037726034727381249985463925691115420366362841776027567681651029172249993447061522506045704954871015204899713240769144366799449467070631948492431649222272630765542021048424671681646877127674782402124390224598505959352375080424405248519098352679655633955408647037172890186291353128681479461069671927128898540760262879278429373831079355325767171477821496145425874336616794963092593196404895208182253648773710417463454083530504444323970353956486969049149589462418337119170465102728027454134553111221514436289977129780053576555544342841835850267247857691636585478556993578312041844442080135306386440615601966561347881965977958827399986151426844437514441141757963297272201279410048173971708645197447774793004970235316074308102888836005666842998694868114123996852916048604946319072058956992925790108603286978326578830212599635742003765996845293499307484950446367184902481793823594083668511156141515334863564740858640725532577624701671907807449738977640509828931684337242219334878931818550648376255532362035639901089607858664457703550807907656710834933807703781058263587854746647236906043510019912142451567513236626961609902670345329125587554807046561053424586420323223169313324208818954533759663262634731631848658948023389401962146612667834093268566702307993295413723857195475378077444614035403851470738396133780479554397068464559448445515647026569261764765553787799981460778235951584509133727783260455543597676805281774158010566538294540691435839041831353041891037529670187202814558538589619661473068999826986166400111656526872691572718727950867973254247988991827185117808073432910057038175194213780832572421551699570226220083071214049875801840535647050803709020794879349255004717722832435845271036132075431449858471968273193815482731592114153295366377255967946635069398350687219322348787875924800518324664456195619599440846693647542437157303190866788448185084731568004204769322079076183293352623629638889559485519264246249826532803072237282015039289658223598855949590015690921433921295891304420555717302787377761240462393177922058686934653098720056103529424546322780295414062963515766226066308826416060221760428751854928243693961200947362120363056526742967364389632445017931950879742727820344432612011862862934840584569562799748418584858014968771969995952036958606933326141521941948789385892491530813479834223712392905834913233989903249595598474222701036956072990988706547272373920984666282947219250924082971977090775732106841065768411922910055691169288146917443897939269859175385347289653781252782271646009033318227077977170341763144279619686020389631632662223063372220202343698953754040871584012563509491968916240277560274222584578369098327280312596152500718098234028602433049785662638832859883303759686907183299783641287570777339778912746381003361488963252831154328140894016576542544263500722080598543273705690325035181640418765708695618037445197972763265554483682238707202081362877616612261089971369574352711799609571910792568115540502578846780597329172997360287759023666871370017786265688623206796902219815283531482210044783962784089802271180522983471922734799384606236420330954749846438363453459364350598915947889792220887065156176889969794027997503039846871855065371035620714552154408376779767471366022526369825157447566073686881268875752364293666483048845974123868903214066727768431957064577972965784411186723476187578963095223112120546230640441637590479604679559489516539766519337511273665670365570093595318724723852598090687653063807110325076137380031010310708948985751067685739691919334747038372368741592615834095583860814516751518011837243419922923822003145456790774326997647769919961977279200688525760720999777918664386562719220240255520573148238289561239354795585882983879830656803943939850462235795378100260805260267382367834553688482286443785081764784170287101752090264465414481981352637696583952344785657154630490893627332036732814643228253465988992715340808524027515212715980347949633467366662124248106644569189137008592404441355151650162843397855368220032880234599212475446745674389975089139416643319946560129953603886534855384640968542820032619210420790461290262725851929449963382141057740471748108183399115955806406339717346582371208102037678424951763405514044613082618318740787135144493955034412044823802524420924594253741156549120196609312689385647961577294003057637843331209148995827473021800783870528979441774671383757339241061078296211392184313020912466721751161860720370362979051187964366026924202448209093382840422597953538594714789008853877307894245540503654751991333975605047098567818421132409551614765142792352983690581532396316017323519365943703981924575140343132984618583093799569519937456125969603943903158460542961501171278178862983074801482245607371265645362348528695017295739517842731027739140345578824868992402959721377331252071805485623031043486404470321786249636301711762396220700835699854505309713450419405083980079597151147114034423340703043002635281656053357221747273082224808497212856273861723710965968301165882093534372957710241778645535073882068641505661356770544039142946491096829168241010960125951716334963294661181029712142585882594147141287914895885449597412124194890829959894095753800336564974159422718106797805175279763495219927589399539705494421770989765916235787736574972367657940920901339123374461174673936906356700066518388637958629698737855087531507076664974548662035302459087125859036197919849977735190674720830499726628102389732472613425847498182054134806491796673641111072938384200456464325682502622241317627806503041634447059799055078080594974713445041571851467116033936759977155946048160261746573162701113873360573668934963496921075131927908632609755215522277580522469777710446110103723198147948797657527138325567566802885103205578029430023027137192534974982868058981279428774458627509744998468605297933593012709250542891961777966107558829029878486693652273826569496138997214992594110126562018592725953988892824165705867899897043858487384077691549827257484831052530159702110149324717390128595847612423336674525228461880613151528419748691178162932252687857452045866910432022977783901553763830005724651781704242854450385941732416047966918585624329292825566059232134109886805045603197597646764144768685370977452285885715152754019884537382972685921144932378860015428500825083909183416897497762957149189702263074402486227914306513933558234971831915186284110697055419447849881487721572368799818097739513876130968684404535433405915376918013661443906828624508508956526564464571480658704602544294988500634913164400112209488675629726827225267850929787509056693497230726885275592883440677059777086843267349889578511047175411848191181359067493094856184290143344117467713178908672279185368872408109504716097621213675813078039701741411192410787131434729205799647395373516176103183504534859760023940169114450396477858539638717030762656286738409817163113336686649045905708318084647400179473346887943249921857166455438019897090197138198430369230408988647201792763718465505297354953255650022977371342689744893444400700735158459340110827276637991129973363574022159213319656244558138150856064956629182385917021028630352502308614514111672395821483334022350757657419350719024710812307360288047142120410450772871286076506333099268944005873143721452768554088237305118143389393287624113144147189173153256937394484037577120469299782979914064844246971584784827818468102718027538151519733755859732940437040257032007223064047401129114084928410532720660242707316724348484297908993771281996044838605958439637493440576320025575579312567472344548904324809108773480272986848505977202949338064853291172768096212498724001482050687753177026421288216026844946642892355920062393947959080388100440352083727927494644604986494728643673537269675302885918771476518941563857747296518051600096776497140934492326320465201805886634183493957174031691466494345232016912019207524868907902988671261723412227530077933716300893359659176766410433279113615596193008682968712380634706240263180878792730895689393007766477990155050585336008714394249284800391663083184557039941409462216982578452096070744174443959637069835592751658200123555388533727185700971322593341588466950566984754812288279267879488759864874499835885970283295056329455643814114287525459178430530977051271414266303301069348004592996558614598663899299745004256691228530483123010251524142044022286576618404933906654954586923641658177340811957691225885400009195103118380691740258844068375475584698287714937828210596316394637357701582361546348969662754365051398571725212680455591996184031579234759155630264094752394141919468452439601283340642603344612409131818629831369151843258662347027791084665878962090053374185919515488697290114788809684070192820671111235767719859632963270877255539788054083604205297767302631102373492700935551104573573106536686189048830423899632545878547324650603274859913479767917196392012467618628869419073517400871961258908860018097593979550385971523446967413535995946763132817475188929208277838872970594615277052403110976493415523930669732664971262472791824073061662012637230297314062545837190410468248283911391179473217692619376791181402745572857049381837804560978837676423195300681674372361932794028859078150473804881932839159915633134178513307718825340117550120592362614453997367285832922254138880445162798005726316632553049898816345980791709456929041365033783673522478434927571105546874771289355288004059020830156438479425154491494638312673261412671536337150744432070756086607548605451561865056836769123815114386976947339037749844606623146204285174140335053597720374608879208684296177671501872368983161247171305174051132365312958422506018196571927540749887479711708380887039141623218970361430282133852217760911078972042581318766367480714219061187472023903685945846992495045109329509563031007418141491998494312861640998871949284401977245898356657538748896910016918262501447171563599440339061821435845751333783637976849253954559540234757896636722793836127225852036447716532621078611607257512582108363307466840041387182370834808985733926119373152054685096159022839211286391510436418069747545895859752582748195742474506835056716076693305841465834803094189742232535307005952612758281074515507979207533772190621845276687051066828542860445990118460467968177324233624554367821948670124128617063865894177007222332132719051851218985100990657339327842223030802655081186243256019627558010598533530338762030118866922834541510798321175738417279465960112739476903979917392616598018814550566799771172159238215007558562458914214185879164022702490017540432067143773812486162728689102991787333674082272813713960013623434663077032159470087159939414268314783384481875937776161346955646944660151887767254792438108345210953886694130815613430956502108839891927887214159441652138661224083849915639216693002796126896423642277590754578164762545440581727217536917304107868935195508370544038376280294041289735224670539082883053456058167539551594021921655334874136203063050591377986165412496294260531173920648284191619015745856890707472668424033918375877862655350812780068091866614035373362358694500039788903832425074112340761852587926462255995159287950713147704693711101979169992489770538123042118148522273291395755805293870747903838675217221995044489608980400009308214705121786005704681097166109156930547261396483540391534355306067860687155038774299645212458278403038594436386262967978785089104903591830646639811838766173019227221261123985647858029320391099803821860022516538473522821424490093150771308342415012923043182978359790526851601950433307413607428211106102013496179232649483103042607417818700784696667890236312235665695162459864161789529860343518866115927902870028464588049271581203267573762364312287030728215874108281299807617368306169372124158834158605726335196584515210184113005324339018980952955363535648788546925442661522456796211086047615234287534955676472647361238115224325414126436279849773079198913461407251468625568305389900967854799937255024552801240004666294703400386133880926928459465089722866311677106559251098291592005951137457965415774064655871878574141305179874459961478163907582600984278063104493289256272201079256718962590007822392100075034694853969407212152784506518577307345256224774007245926543602434645100123176268201846578162996302278720072385271045788283099562744353749267812810130184080833427125604119208738087830146658240629573782853618877683634816487409610546995903140738286612647268555672364762573680996653711053232842147469076110165190339709916865787317786915475086050240560711082446922471556005214208247506289641762198717214325588565609798592498831306350118246807736185997489515183705046863605133622254098972506936804117141406475600592812181766986317290536382258079389831519923042211825075210549359334419946502995129956689233969529527377935284284872713188805308644861275101501519455026994271637196340332166347670030246948690120501246819853658833466419347084593296676320042554349369658821672198740768854343255002220528168163703186611412742827093953798918582825198526924219036483781043077614063709112467145864940132157125452703231007159383982459693705576349842241669853200604251362348138826996634060004836144771525966750710130886621071274254144371883784325936139279290125363857170944066607430342860077277429399244861605241429349173614002983142347267998468919412556866437860786633406354200956981334190563497882283784548551308793127108084585158194154651441034012543320626833501179201467006869799078798503443995284730055562813235122723352227186764760033283387287012177374244661103451714352151197881357756623766977651085846824343775557928232534158267378506444700097638186269905079586665552780955892563122568752929478254589297204969845157794328521710976952824257035438028662000527984916416659936861304044348778714428210933593867626554042290358690667603458650707871161198322577740055028178079104495716000654297237036812267178186036407387000771178479486659151619267805296954735119235671223323332573077434919557956717828369430746366515667630519354453365726512204740382712160902207978421749688199682856726366460432110497427687099467101269636320199249543466429327890788741453467994017104941590111876939187464816801860615012195273577732704291489862964242701487924341688413861738095969125412724712174091651689956201626336479673686757245345228698592763680184133404283486981887763802939200082195732238932780193433052358120739383109432659470754157171440613469861907790210586858567645264442534644364694341668531635147835493599215404730751260658575342836616522265930112810729303619968647085359257478276518273631428363063715514353164909259469863921361126546505249721817839269493987039518510351953020555655401732699337140154137594206605599139340556252016141058510747493632096770271716672770175624239277102543080719752387923311841623655076505994873791222554162900437061605512426904573750802121512309416083327125224885900374491424179444841497397110946404825143821475788347157461289578393514399164581969847089242146327044804900972969861779452148973446710598713128289740992273589139483137710917090734420440481465792806832983393704961346449221117144090442557798277210740812265233873035778681785904916093868945091810514152988228723384758754402588422660314041792941209522443621538067035518436375179432999189870903672862870868373621475401011845063074942312754048856133186001815936687413463890214750807490858552004896552116122446971593286424322478242380826258687652538684436179130941857674226324242779610677254574511051701199052325554258585248379730321481992584824674423369929845866224117727428154448453768531851110823188125319550873864641526763877345844974771728984233582947792496261847999290819677505768218804771420923769560953070669090121284422759146708441578588829987179704522058776766001485404414759584120880492286303343474302011219147112106034093976471892459866902242435259077705341487998850519380248246245393985029420598462183112744842858589747965433325494471215525708575165315638879631414580129582267493325676631642440405657168012994254627494257193947364441582505317590146687048579592261221744061438166794284277631565981127073115631086689967139759382670274721488975315331204345127229782842105404267352333373581269839668869632792474324535553138264537929688642692744104504543892441006302052984038431540511355811504279041991949997119485789177524343618838754507385190689073144643886003385642541666642240063014457301180307114400260962611788498621401092366043427602153703845748788120545520426328807135879217684303563846788489425594695283636197474217653362345808245184926257361740433704276092846721398072213040910035591012062703394490336796635673366733072096519322372214566532683073872001962371855145597442832259676685649497960151086877666730210049814601905368422913026390030089523267690514148429105849572397968785840666886064837819036784043176135628888855354924117702623898088364881219474475842717470550517194573060830483905414390234646460248142910544909931331542432609640877381139144771765986183406390101285323440164540036410602719724498995988998723241390208849418186374403627967201014723490779904252016735789646494491933508205030987378843124441366546716914543384982114205129151360999261430951369357955238520992098180173553280361699871299919890210052317023484481414800140125023531647719980508431796780052302022147131779581758961120288319776770913463398273360494586315064044449943785038595406890455013597436647534132823433888077512283085630272539313943659730509178731504907648230576704001804026534142865786367521392162279994435125937555330034598086325189584280131070925583169010434891115003292050902819669127123747116722927587252632960437774527977803141585699288316607201072175897345447249141690371392172102498872877576946288581212827604548790189592085249062664697414125568514411335601448853541039832592861203274924632101678115388090529780484215361984577709758297490539184206252178726142135854361411034697374958639986402068479144797564246018717463365923939490966403094901406607519797071355643036475926509767767205231147416684761178556592739666509340285031340603000559866467063942421053303671071485260637445779993014045156634328207576641016618103201651159339220666886256210630972968311785473511002786549851481134535606534783075782133142024464148586203106416675022238285734119461977693737993550172394828074362301724094400666609456514431264942642636254508269384201698051016424779253018997935464014130037387851542817640992926400670899675182234522514779393328406148074713036877816043825191473794700527058988744164613043867105246581458841573520634989191502513029281888358877814687305225053802211186059201957503708613542346656611680026123888610376297233943687505399850557311706022904490711934859204006171302615231046781288331307987796882952614716450055882623024410414548292496175111122700228013987087026422157801602103479111411520424276560358979838355071460061269814512248628830640764447109801216915399709165705832816459426222296442343513979344255697199863698268734439993587153525437111244591594859624262270215725382831306807289398661533005996410109071543519230502112258840488237188842145714462583627694887933987976791786729842698846629552624049284471448077322856834220979268351030647753170515228341819781908115314911778413950515568295372708188010468371238818867971018996187594186084851366716878248221932389242235710531074336480273616527871777272890301666744583568168582379351375488955732299337659582097977936831796239518207246122094790901976176926606073732950934908434889650510266670613025635460949499575199556840907925251019438361283980138178113637247158573650820111628457818362160339544202380706929808437129736545022214696547442755537543454367587956138160912327943085359370523077652930129427425485997355604226289972988128816236059109603537766149870049969179605288549485028748293922712729880211559576271389623218712351579291703167100084211157128419239341885582062613022132950289512953833642927455190158776698924439517223993216385858958828634063150057946200817976302366365347459435415809258265713367166545424360697001528878467164876355553942123106123162637999421457428684493739017415737560893956643261332974909051393727861596370780493447926909544341487297844803342852791890458107004123252842814033874892132525800636090244445198778780309272712399680473855015532906818221543679886345184624926061145041888527546873401613222138838016438272327998710815679533598299271857401506216769220602672366803061451975079242233644051278519439369222123876552881036094470702492900613756683962916682991396755998207029470545644350520343920999501803884836695165637315695042048792968997166632775552597591535669759700953829482910765869521795172668811579754313883909505614219218526636435149076393190971479250942113004120882873706642840293181731076808392911965248154645489579774246620263218383755597465552124296287232712259705334680909319889753087661769999124755813751517949044658584488952445654700530445831562565513472230447656508059697688818444133908715072042859130130253886050739491673420638757875190277847057005085353608151921461627145632762700699949156643349688575958390952882505819744671831851099750648821510546420670318565671324698847124437397706834490055166569380149905908013281150688182866268956721551991620200743501827096027077066787709305884695060457311589251711215936086971401523028609440095794059242522345406565926920909286885210216769931946997605773818939902208790919270720440704125620617068173527784614315949886837510152260411748166014189234048487850026682928874706972931076974378878650689639944281155011619472850295230709342045131905714896156953074689053042750784891533977371226444267788233291421240178693509885624444942333985906557398369368423026451658122746759853566100371860449170872188838752505313853752998884380878197892919564023159679324012446029354100161591364430174021750169280506634180483666584532073217657448248473886674808478351272392203169407236558173568379895882341590889598503097177737570432555342127265933502608367150597198027370685558644535213247167094565131612493519760424723715038570361979720913502886800446046666248510903693625972417963895498905150782140289782714463166297377323685428811302203721557469718097283622180261379592644275220517077716354924118487157506809888900271836157632083845457825121288057894848480523749784768001615335479183562536073003001043879035027124747261145162619794359213418621177157758524115160383298500237484676339325406717587709725486701740785496167522505685889827823117392645325394655997763546590323699392569363686374329329768421933717152859998438740802708987678802124907610466256809620780061817719615912105509839122937311016631406469313620272661748946371074029469192232452080278689106543995457304068036488757469356096425166533612648553990796174832872101805842296967718147820507570326703816262875050690572964303702051147354730690201201000636072382150194816455657859069593782094197073273774652798736609701413789669098582439888131492242106565328587810428367258338504877341676151053332161531166692840387374990704220104437432281560696186470181640108083422464544326696895886447099247222953791698332821305127094687136598574855139215909852930076180736396013878713681230890408123768049391099661764302257558832604577970164677001103948986803275059914511884234929579206241365221524472480379627014870605869353833687800080817933323983211225716739746610517088648370575241232131612224861559185856667086274487016114890678657839730362905931094309437017058928408258090018648909088486646259158458410961850733550872918212330078615129241694606356535395903428228004666355621411091415749153344255816511662123452260529148943965196481760266070084719870746682479876176354086641781256665121008740389892356981729235738002645212382740303558533333583754624282758647832149596822822744214004631461499923753289788451648892228667780394555418419262739259619191559784092797383232367477946040745757619507165381964976791302375156210200332315520521970404844994155623284278815474598783496890328740838181294869662472392248130718986701892660408450596666807444500300274510955167113812306850671218165739693476312472972176079952988208858056099809435799698639559765067573691754639873663679180996246032128928286349566223157440478943522386454018225853101766732543530741243963363265800061508915707535037042138196106101689527535698980457497091233720437146730565794353570422733073567173529629740227801959133268341410514625735253231829987784840980267640219865696157487775631558759864636352006147818287790823863915052577199554912632288121002733663975811279515061303614367349462101008572418652921737955260106706291072162793693031107919608794572031718455134735325049394126190903309382856930156640904193919666682228182243689894861211255637161676457543422255412269863035592377720436301775548770160503459345873772948572523159092555684337309231277582172896183282535958477456810670684149129347696580186423998242098510808668959302562597582067667124156113126139110150608073645646852582395419534905742912497053113808609908434282621801739494047295244208551011419919281447423639792586686828689616693919934042013698713206078346617274250229265409150311068766101453674968520988511291193900344587359465370127998872078356581034094418551296913911541935279139136801035940178670583717129182031294140157596150236925509963143087686240316308896432742856953768750600074193561266214693689019192621253652511888694980391609528133839156461333480458126658222080157237630088636753171441656533085106488076136598580228757216256896101618972246218219168936407357089105043594313043464297675684325100135665694018540269805669518970175260300116509213362894664593578622129093629790379164053816345730717260864711135571591242209130903659719329137324152803793162299884596423525553010767121357357090233742596842179986608799205828435060545921928422014131164786729927472517520987906164279894725047815646365312039067045627516781861004054913085082284125186404688404973223700969097813043184636052657803727972943862950910969564937629475396755454842028162276565058244413633314276337650521501062886576925554465920118039719742223719903090052490513525181210679107966880216327111746197244297371927157470351750170849260110920295369809793862281624224555110207604105847049893772594988156444737337624181331057469724623451632585548565343907764443139999725740686878621728450233927169880856580562390553957677630834373004056863788747823693304009643906391661774268971757898185252086739196966209193441468424883176327196852604501476463744827683879730469895149938341541041926006321308278427997502044166609000371253226797981605020517771740970964785168693815728382826956554865438616718216994982060429972460931503450631999194869788072890372613407854181899513728665940709395300897540400475411135862652587242750755781906941511979081553402623164027910395326162384277537265908915416792268631353327147821078350901795287286678598988402806665152871814984624846204293649333861019452090156254363781533345558700017997258547856096828384575504168268970197685517491039003125526285491437598439155863283480418733712333007462349596374330061760852144579027322110542296014568395247334373602235122775376476046578939576409333790780806408986366639716107162785634676518865331529809648588424924134806331129468417652901956795409100187969281755949573363743489881442609654506000728862277844693563261571020412798023817953436709867655785999449745196532954149434767633744429049386513902627720768955951771579048132442840418432998526776486319588809319483539863474307211780347247415676152444185697436935730314663101573503028561597568490685142304495157753582809466701370438618318073237547673938557376218530913547169661807370788945087743387030841140692894533911677278617172114920727889109835092020203189537264065136302537818323291154347891862725892470693183127168432523523649437654831611365107215763047112992814963415655581630968851319796452959696538167433675099339424678436509294067555084150484818178352711974350312304199997915321241207083244839477460845136677614853009574277578819151258073714279045969141536100166620200787881947523862496065762095851748279383652946413589044174622781422880365161365175422386084646862552285362927173348566176749915137961017459756322538884542857861840930676590081455268209848979010335685477160096664863320327116855209080023196743565060651590847973929548574099368267859621182177776547638045445610348032973264731640378944820112806325536389522893820713164376353531171222587798110855922088326473125845949438120896483725968807605783633521382353904896608578010652769801300844781760830287542629022295143900721929607722623252814892181813833490542393314838389341127841994239143646431408248971870698504129522414111767986812359158589310719181416859544385346030495310785488571317286229369108873273638669753761156805091834687675152270885898619513913482628832578214942793959757248413406204355075728846511200102550147303436039833873851930973087987408701094251030314524027124670827808678593519992834297486686033484775208291434350102799587085951130538538227235376514277431727442806174818292222283405353915283462115767107064815744380101659782793057568268219470851633260482213968042665762302606845910723246706678080099855796278177352802895964115406104413267838945518880473175612656451335436262795036876816308205506968511091266517946450713093237239439913220175186382509911839389836658192535657332463000003596361404207043703722930791363967113375213449353152533797306095673595207629428709032501040866968391305713232718378082267198053732797823995325558530607829573682448940392713130030916906649097148878428676637385034071872139858466613976462718001197784136422805818759456584845861285294062578853296167283689825838746277831033698483132843821548900038574164054112964545045172014165410683735004075980283340964553197226352562940048019006192269812401279282285544802768785332143757178266377491201577100615851519519970864134079328963110546383739080802081371485782725237165122343926897385594521318417150870777735458054916222811637995380846903775198859661989885891586795778277999740543095001555877128987400099129722088383456769305644167916858423377879769722144926499726092980400368748698618415251577799672971242352900933213323635352724496958665986349188939713577134186241369262086158236891050658043260042715399532831749948662115002444316060857676266896182764230820630547847935245841844984386679904497531010277428732987566034975330734552413805125967162325942653474350417593093983876218469281611576692772752674795651525387297474794578151149860446370369285920797311396199867018062580424070032154531808459706038001367331841194362925429108370914498495315366691589986865316582464469510511969329372889592240275791930584961868770213414299096608437802154825054955840521889590593401811749518966867147859698104133904292104140456819460860761550965120278733004789852326368588854532989093829024007748746661478998452145458908073894964742007705570296583777571862698004415289275277592627503141159348250915505529273180489246572456695225287452370377048119452288897267943745577201258442167766525969864041599154552787417555412455397674582324112190804391577258011278637854128283398660253116473334741364243079766549078570485892390911804429714608613180814858887460154118608693136011796900830251682491899123255144988461333797104581737483074221969739290215613045094748693684623600201276090179330010663266916825951239502887441030105840249313711571540100316337060447411570908147171501979457280075495073500498478354113329867274058343809244865123023753985643218194343241867697997121550347716669193703137738274984487645825960504501467096115632965895538601623902704620912807726563327255192538083724444913456588615151419197421183393283803431604573807062587604030785882378143675262755528400922179065109966876856236860040461524007276936849902721920865873046855546382606314656821091520648230429070916396711652765785785184566109928064161321728704161265831838893556888300330589653374155948308997403438294268780972172994637124561041155174304445937003812093696438596786048600798758506172471143309719779065673094195525417268065974181477407241434839805813249279237486566785328368217641105207622996531346561903656968562921301832385047496692422593902933494963724909095500038884493201296318393356475411452663892627609095116389812195688489142342140001310625930877091241624185442213361361707350404006061171838644948841313280372688596589823663796943155354533599864116264210912308901520562653150131001837821354551486965592685400310903184245880286545470084967542699788444799665214927368918130240101263491050414608600291823055742920963821831972908193387123286672827885631136705300618423162394055048836316060758058922862362629573447614381196880614069243312910969841632980141898917674380168651493452383003970164414152858507544324643621307576112677053725663544795810064325506317272613534798286137536545500239902924380694089992250553629304293348484370508281666893845536066875756144286741874994406345962644917099677941569280150266832592360234476920576324560966850522740216225101423783213272389813287449654884606178505172219100758503585140132548366233062759013768109298611637995836666209371879646471809857285796783190103178627682559253954865269591488406025111563024578453224112409269849097122187413003018578661245441228320079908152971039841539179312988351913980547962600098385304634262333610695011111191748941631781130335122604102464424830647785704920804166706092664762867109429624992206379236605230040485117611099472693712688091140502272393625416398334500415912215456880845609810693158631409589535035038176616356502080994190453649461164800328310714516151813807319679993103134807461853503611901755189729638215857446531349280809623885813340780946780112312596279304683313458560572449451428519549709354790506675567817904439328012961695506269888107933001941222478264453653515266802977554876717270806807900588022559414078213942454555782292907264390027314666474116191695250908131307390667359665267309788669347394284420420350466238290560671361171177782256635974347876043697693803075850174512040935119602869265159203430689972029991623589020652044896042426215611497983636929478466485349309410327326616409154011691408075206090540597159429516573654851357362524956829129519948245956780669981935057233838085968812101013634776633106105219435926031670162337242711482756117950541806558923439275132552799310608846096735373801028185520652494371138478474652246707604470264563162029530889977188701672923136169430598361658722633950623755980354228459475219081532514011009965163311370197723228869707287510137391073598932716676362422811443745042342117129707312195086486944338324145249726891190335374426058942853810949234835593088074542488037101871869943788435329846253400621689029988535878308888809040035065473757213728553154426040412478521239783224434696849637101277200942812465674895167170036007566044536172275468862601623985440711762707426599708774584731200797107684682975690782894240309631622317324985263585110659654325901569127926580605253726485016240684934051952766286226941010072758898138322972462462720737721455053698875817269091178156238556111189002089444139493541797896773291315352411348623599997690328793375777901405536193888033267892447639994299500973930806767849896966151253421451617895388156221092719728203461317453553487418923396955008477748664088734574675074726388229427327749803792236438903189090491206480507913537859008674021847462448468328782413344459507665004475405148247487627123856770440691557880878180705134111683631819047458375957162990079600433679916497536461711642332847307080087738788359851096049569595820527864432836521056280826070832239736693867442065378861541436168382716529668154476677515443552283948713523569718205232493149840914416782401295541503176464684313336838645959478310717612949059565874593480253704290587265373170653510591197585209918575412055622086916551423920032884828538087655953033109051199589672433159638534446824984256160796700177468003732085389276347226458727103201384847627332620907144090798254782957216152962691481110621799270914886022705029474654826549030206908864777698258141483572847468634617730524043177942832529113565462627414459636663828860295009329608156549686683844612284691474766703295672872519358123425219333211810855134762533000178377761762261405179623675278774054471450919165422333479030811005116994591767253910119922122295915959100965512712026162472937364246895818037637505120895267510749181194245013584179408881364833399416416214843562406712052859814633586152691504465100606927210368475044472523503844562531632677435450721519473989987721707568654197548666422587827038568087714731219366279769277032749555999938123111679021261467918825135998460974568827710601902353680003488445939346395477461647781409124645417872630814183801619742159978620545407501361434335865046377924978303384544473700956738405370303662942801131226106217596885531541097723755707508686908252768216106735350938756661730572871975869874479955074394697777203893480960560858045833272521171209457923909580312774016712365293627585859289550537106340551199703624812568984570206076040888337702299302315485531945367349133109534296594293242148319853548770800297992790098142426386689057039786437389231092142160107109126073158953991252427325016089090952561936436547657386864400418511280482493134463386273543575040050948396577173700591505925245973406281228512356682208402756237044465055403380047486629506049305947140284256319191119218751041273320885354887448430110358425714564013561914205173301409128049922932438344303086546454952997290825471950936006308229912382900010230892100489788608350614453981144464882954859234278725204351498572527984222181257285321150534947671400157238046978071231248251601971071588579421784000970623577728834268481382669623935833378626238309417669340105042413556190189209550261132675534462891988180393411566456863562445590618244724645576429131109883122833722501692063141262696771802657841124688718256408153132577327612475119957236057503096543593787987961947922131576299812781895424972055092627585141785554733504687350330361669163979409757845238733269365735032029017702076795204065462619215882385921952878072259396680464956915550078346373027450430422050168060584154993309643952335458374427657340445452747585684948066253819216145343787817502485027569396417900643786986064570171445023656175975376244907730679664765523399670221440363220898927371056725214735335830117343278465908887291790272246387371663787681339689973799122115693832919727994263090873367270002133238699155356920715291689705765781315298020198335958056483821704472889655941859861024006916416299955472002728884093793282356303289292542668138291455726085481300528408147830033165584420199401264099346857940939031803096294664270746239656120988505585452657211066754408868786442273838998499187919498376708636865431741621033074517057471087270686789172614968605778197518553412805233969175823818559206391401695066108013017910826909298276994240521364508105063478282473516820423767624422948228956938724441394662696834977057649493117543224683404454416831540040361448222451107050378498624985695366181048337658133720286508748044869507496619396155971360047782970527714024851118658288962084643294117935970028087534539135225784865114961758290133855165528670660282359688183237568492491267105978022560085981185777725075064707608321605631282079964511458401073710268134201507832631011223254044032331521852315789151890990299194382141306250094741128724591830684447471368572597645016102096385231728765976141731458540371585931402242197507386498650895585703321518017626701703871904207883471044977977940039955933592063482637190725425054077849904094883847426366442682446323368650741454438665741602646541498759029319332878570413436825328281851210154706765594538877183480990611011650622091211830053244287669880751003901235579878869039396021990558038423385391127296971094280000288291645880700133762475651306504712223865028348298497765410997854722638621828426133671257933564188993148387754857157963453641897062444045965725952515021172426019843115494159957401954969100067544285089894348358157135001212477341964844676673086269025327957359412466838106670675545439190817425838984248054790729316893987878331890067363219579955046027092462067391074373727428777934678557645828152291270608635401506017151553336902280851867866992714585051555041636643469719115100308059593991475643091052005303277861650141989710012871361351608208658223024410694774902753508188058665068693753909472516216154231397298932865810980793790042597912963008611031798937394390787044434307426463615221239313801436296298753619866742597487099263961380595473807845048653018518535726774377354876968960719309000841773973190652666760879086022881993420475403022320943314969106546479716929996415926976514098995746325616105028732386785205028901163424381579261522440153070439872968113769742949832243946389331749486353153078812425466925532755621479898459688002790364659336192902849360691232930035100506441204728852375704989225337554369459897976022007813695297851535669434389688280534919459441588277082867762977907614039300166419844131638535844443669840201290741815959451421267811297930408496729178792917670578274880286833066259026948760340691469766363038166458472213311232133550847675301688160824138725376524216754080424291274953334717910682019739299919915626710563180008338301275829313738944569466597336622391390165569914258538706433955556949412088733040368077595081729406081213378538248547408998627674111723713714326381755083703367904340560583550074818962860969750393099951821843004997871911278000573739681095805820679505765371450530449521123148006730508231781063965815704030191467175884607639431703538493382355710114273158655096464788319931290295226624100874487193969238246790675956663011040066108634058782221164881432615573783111258140972340934195548956475968325930661502443664204489376075045803992349370962706034619517357991288261756896461111069413407324903892578054845229980615378746507820052011371714088758859909109155504403461893479174303780240066123694306825407578608073602447076326231455995190431446292260281027675303656326133773014515857604706277904996944763287777173651200839561243621319899557054709786042900643655353137296339020247357781052470553444444286594049489439236031747053009725778713641965482061595723591155995285527487121640059650970550564369177815014784982604625857983174263936929162118028986188535344916457312589369488276203814203621031837856303499365094547377888149037874018622525230550536478175723706506838075734347283292625747338021302502023683772197599741582786542523968688126751920473452502868777383269040322531191424162043234814720531857580507138399508402565642166866123615881809038931689414480438796080303517760965218402257634121938543942065165377926383328503622514957142581126975502834240196789638095477298038690263021298407637098936222367573906426434525280192972936496250577567778545955398063485981855585553732114283027079208235342738815088865544879501305836015770388973472161637856508988316043420015695912575390365258289685168745950646768638235607658028437060712466461189394032304332519115000816551226074417520006799544793811249028933477380873140706025711216027045547960284922452754997338985336469397063785182422482037869010878535005966296332005012771738282364674686098540462341190946407135360482192033522811016754729836328001752745779479786875835556669759924556585890537244408359910579315748827791580646753611457868286871344484782721285258656940247513051523394874749169497315812003835291503807005856152680521990659352696641310030198747628111874968723547308937217673964355543279609415675851680441605810987442879395922759327739537188425580476269258640361628094563891059258175001451438109437244733236630887961324116210037685453730604312442190833755670310748379507495864629218278276897542815872300327748355149071216454570069372086677956687122157016191654027606849415621536549492059941135339620393249766732125876793912535270049336379134678823702274242961261716806572958237572647557522897761177012900733393340673359905281088532818586150651343027060324785126648287526896194661571597518733228219709634228689614603997805001173870096181174466326401211262598941138943361459970419545418181472208091116097311723218173890512917543452143362225793739523810011867766581365291424251898310938054212262536987677619209529264893139427846669917398353335746310564258522372162965267719966389763954161502790546073587797480826259269365505564054885587911435343175072410162755605703269570962168226772919550569547885653691974839628393333524944693297344134879029504094176451536271839243411690672304515734714406849369299555035960146163590189408049346052907131167130996424760225475391905677835881421387455125862282822131012860625245543266319282492456772018008565111852741453686104464571285770758453391342761111030989869657483307183130015362868161214856689188521018507642559025363630151780039587113103866659336479305829657491613316772320156724102733341662358024305452211472379882700069374573089967009130414333475926288923725958671109805676482220562388339738919653824397823695768219353052976914176507808104707569723589499616036339244057344982762220406438519612455330985919217302847169961045412445883782403990014515853999409294288133786151564843205841678967737772364879420776861083375771687984835463395736383822119875370803490430817216295211857858215297645616010912215647279996778455102287262597733477704751147902839016107406638331044486930853957097946795939891970531014082912435882372355935943618972976713593602807143307203821633556159428796156448313526685516193974083474004526383659413663459823247322704734897277217758022455260185231360563269615322843633999178223082002823958559049738431090850629311910377455133018493591910842538611250561524786670804319771262168880525828056930822710744609682710779085174121510983957003979073661146567942225729405465754349771625318522548061438015013542820411985727328379803721110049108420705740175499783967469181384777306220615096287240746324723768364765924452115538853082823427258573325564339869299623550601120944530223779817492991888450398030164996183589344559816275562101711635274896954579255680461830327552146134731608678367279611715744589623656275712085357374492254868446889669299712399532559227243300591422781605886379462069637619662008222637650323152804953201193575946580872026516437674151235379758589383283540824982319672626753375280839221302832557481487502759578211724631220962737373001436052735981562952951988314812547578663273316031332381000898207645760349714645629287526655073383395034759657323795646831274899605152473818397017368657853942929412309152974720287224241287250744218567230894680362180990308080429435945851356630543292808475371568285056651799836007673315031652745001542930636521852006497439986413205752522677910073017232043126975837990697589800234559497737550469888650587905932821455919734731437474977164380580162734513910176079590655873327382443535737980873896067423495406082230704444077889044437685878766016691132258012687666055137350591477968955946228107270727834340285347798304048618476482001986462240009231890869250599997314673140649215986685482362426015659817388122776054554907044501316649365685651261915774097970328721722016290441784002207167013286071060126138322575291040194872514369174628668385151959785492500826612505088147216824737945452115488370540642608775347939273708553476650789357851636392875118640060250607107171861392209999976414378091174475319597964790097943568297830138370276099219615208015931267761401156814205339236104685766110972915782379360562844169115692563241604370080965873736595336333246550978914189580338041679825366686624183463286228578199351312026517631351436637653039713824578308354106094020076559013484760229986882176516000317791486247009626263277434390263833731360997310227331438589227881330666833052774866423498524832417309766483391340574159753139017763085989908424944310082326286765911356483988412344810685727485527554917883628824711034498362550603463858716261522161383802891424966185768964627889556580618901807865688007236902497530089274795626639489338341052024452867617165889260407768309620605005521976895582472265194120546127835398555840035013919976009456390764565988783622954665667102462869549224867703537225549705177289767725938588581422523273498822194798229617920521663787337741241305465285931135062706153847693314296480582559524143889753113821203197122107216034763646058272728140150190854378217647882878525300825174451577222531275231413568603734965901169721899375366119402356237728821182313105683364029876934389314103028622346433068468338867209844815850178602512816048618586398133295158729815521798335530426610931569026358868697684110905554260437945282072838629908531545990899265758583870287167173232292220529730575569616005669433423625538615528492454903850049612996095164185358687967087760814992148033038497326580543716497738127731136986718666517275143579481172781878784374816116091054070554688161733011362319300375386202297054706623440915531655568421146237552436359967915128026083958730174280750315354136617929789050007597617388458489902702431456061501005195457346716270063022228231754846003538969626925937375651822753931614596024490979296173252104996547502538380656780633332675311118091965436467807296787346039362610352087503820067006765684550976541898696640429313176641536072636601622776072820586278019069078666692923256357021874421340126381125122795486624442142153586226515644707607847637045091075486940003749882484041068871719398996536751301825853980217153563781800569059145085360163691959688120505518371231385486320028791011529164053555139151120291768725697522287414188434479519912627690500013586486556144759257778537964330965023933395472919311428178506170975795016014416635076980354261998716054880259495224000914151622877402848216248110208395179145470874061669575212321694943097045218742145183104163158197563955773923609849057025712798840132913073102065213358896560771856235126066059618868573706291146251762464912939813084204453124238387808478991356827021646366648672683032735408570366495701894567954568820211295939724117216398617818879278449035913566609504010006862210173760265426535097958517398375542656292922591773527631942483548367489180314816647499523583186734207873611573045596484775539659710379215795791656840733538782520364610252868448239362751423783925403691589607146853718437019405058374435421046279590819338697794743927091809920242420190838663343107595108986641036371960491072025735604881681067512293936447675434672665156410041899781423681029394617303944295592058132193176004333732976590283155922670832863586652079265055880678199229489930481374601277757382130808502006674983275999436406139443274515406226007537848522219803877189076778909053570528411576801460455461152784284041343760667268132718673053951973135100393321942356154765641754989679412621894966356813153709866105767168375317899866211756050997952494110631656114136685602676803207047589683717100526741853483778659184417146049365382274131586882860610601458262513032438762815710677103378570094430592426611884899500862903745414081835486905431413121113674529809924310193781177238597747673295853066643403531631854491861100571108740988135094474583455252887192432721838459725973052732270664207879264236443498773912846773886207111651517259236881012167993927764762671052605165238479513353007673464945519136003234793227286738492921807664092977929940719868507699241992044966844295294844317411373295666881110970639040525623632389485382315952463065274615369886090024295725639118391012550868440363439743793343550624453248680100208885401028854944007683739766127075171279833176079468250173092547678278023814691868594400972050081277487157844523104640825220491925693940395883283958448485512143455817849908104005832683431328479478774474657996238796429659206774180184386195125865035366372747576306513712162192588951015926641152528752492971951845238241889688609773000258558410298758483019373710370271440960589410620782468321034975524422307608908311014042009412880014347055906734188255238604518626636197945604073980325118343511213851266968117365675255887296490017864364989786942317123990320174000839361334843736242522724299924145874872905802097293004758475151571550602207248197607434764837862607752765820791332773311777395392774345800749370648513264005766514909487906117072894632190962742918666153642915291559042849179658391277640790015420203161816433442671977677858957461568488729019272656694984577114362805386524678117747309895048065713273785255463552346772728207705075864797794525261263738582687865162564642722061848254207597530846122122118408768790128800891890880130788476127671769915395038926772738353946225316216767836315679253431861277163037130894089453038424387731376794657208617952436523084621409650920658263060727092397721877601182968474497190221956297583601048940740450341480397056542446794808584998100912908911217508602238086082922407496346502076826748116882781654185075170079262545630828232254211605232700746992984725755831236264839706848045908269979173251600162524534426558361301624061726441196504779391095119709939698232289818838150197781305236976864189155420891956810779150685571686299482239072039248565274608921009778509089596325220197024777010981494932736023176493350621997431323664835628592918215810759439628859478009460305318996091023618464926022317330752345294483991472255275238273862209034401064282103916886550707202668553050022599580222553755262836708541124693566940274180116403269214409207996141163188424676121381074397592935680347621894993873250231494553571107973022212154431592732054062385608264121518061181441094839182061059293608586888292389599175172101185044128148216336549372451415753327298048798043760542166292453692271120607529348169534510312505901962686696981916063885336683222478139726799703169895866436099561958430615644473533152135648115092273794389085708520899540997842305611912435264855363847780513010647510917662702608948874483732663346085394432320276349757151582033991292416649141397051404606975851461485054006328167347366668478609882462403769155142239263007052801935802345802717037722791565552601049805025673276916592632318124829440717274045519768023630065480629716907885724885093965136714470178115948671194624794336194893716165318982222251286830166400152088337416633957328373313881596826416943937075042147014766165402402444517071706354165954519611728645687564100602949144022224378941078937698434852164247806586191890864363349578230956885934496705422900246124456658842490233867128400939474907574733699822972426251216189274663963494974835250787862581031921357030314408533587287783137813074933197467068205719579426846429365635186514476443069127472290330394708507305688231073315613531241751107568290910458847677130890574510755897289807879348224070621478881876348144053668113828315683861352967028793488437204119049900730329699899789460036244152918625168866569842786550649330013973235782840584521791676431128362612048734478365509642264822307519398628908031477624870571431321455327092247019441518057754716111840080145828384588508975695925657364953274958024405648445628637682545192366605360572446668433739463286659947023308424146617079285462196431893716471407816495389682356523108612979611572012446601597302392312581092498312386554466616909505877512229805230159716850886666906882174742576809797430663307914841161320552700618640845059978874654329401108758515463015007610906595010700355615595893859161671637718179111052525275535695073076061709916605567254389622810849568054438721635098435572780788164911968458462982512654583455902574640228956012271623545787459127949573755583149671447025328497044350994996877401495524604998888137655264434030914166575200163850682372063316128566335289038506882672157811987522599896388507592822801769252739257187325304097064553544651369047707082569848979439590555856414985355334201946760560245692871235553297239934203174463982216343078559921674441261903093758131171574348267699802650157226339518217305823445072266864250875422831983109225378523009159825888181910170336964983655898474034664165310525046503570411410297407496163459295428953669145333701278390715250297819980187199928247056248578822001531402209368801314882098626984361201662842762428972227057981161195041007445891694852545274097313203164291226258886492898911881936807176892193513530132757175665800214935203506703328589157280232861773936687562687990839172346360206999076594140032576309343905688673414942160442285480419575978502534538186626652679994606239275925357848405235992077339429522419446645413138962717303302646152261299017850147035860552817819676136013848004801456611737490877767658340448626803705832734688925300139744949424649406642981218507633806938953946432275658021460643208451861240561546609209849448373859388727043884548164676748072034398609862524379092861752089222644531177286363582094558953737570446841123971659066549093938027796855753164862668940632119497239771770082623243525761527360765602391366756538608209212504674986303788195042388607976179651370694888477168111024657425663542528746298672699306265992895415188723351007406472625606456876015284991795138274368669953528823338216878872183382800551823106251663273143728769758549022064123065059213301343045295180410397261572622093783344565287888345642178942361288214611033681635197643336391242176614297304840515093544720154569705659075689804202529719064868667455031973327873526952460509344734541663067628476761680471279994765677048604651441053942571751865953500022929891424832321510570143147848222398291483471422565480242742499017297981755567312138469450107507114983289046773920668051786567652402850889758814752760261754104186152669188970742646473015242043000609454059982800120476335401177348333267577341456173479417973149650995313144256439948530725045850479956141986297325440620847400496016155407092791069723308908994888390281980233472988525962981251255611703972825160993387341910866901737553148030457451593537977789548039563560256868704535359253031921533737697155963358091966925824672235864015784229528454236681720843710574142755543994140516516085182927262342927253065406817385026652318258939936651860452673123899560145081942448595712754906485179801800266349456882505796516775756479407602402971658766638709637515168363432463329849523741313283295465450025866476660321681247895148808992294210856277895754316381161128372614857761609444175888533645692017934223252346506912806847503804135297482808624597178199055547305540225492818021500197339708046166156452204717840683850812223537836935655276311062992209189525798911023687284943868342640003435931795148852354757922159705540515477053204740840033190941434012876968002159962390482579488156283831724202370460453013987993793751933769260882723553734789262510203984612345514322687778370847081450213935305006569652647068116231257544151476467704758502329751791765648352570042213652547079171113792894341635596428947884605774884200303295748368508426107456310464960673021487425330327535833525036777745749720080312458020560434799036240405958652851885375815186500834963897234290092034719453460645641718501371775477316549066964638316457810028483881154071981163244424672728862413669822192267969142005842643164137340195397140024055457772909109035726494415716282872793713986391509179239745384909126828580344119189503429294038723048146326753482067625287447759075459594879330528122909878588268931172995480908996402052921717428876239599233116555118907067612637713438271279649652631504883823891136868120689031567928740945296372295639050147351784184298798522697686051739808775652047119482530378217043727024762168979951850308658206078099197522669266831136967528022523438465318303918471017071900610195718984123650710269048652333602369241475802561684254231985777023825348593939747023900100163580410001569724162485192254761031739731777695548434291896432354720500178334397261723422029281765944145384344321006026930707734780047266443705489832326848329485465892641827789560827491713386456746981193730797113475855097805423931853925455301235399821985909835138615399827086939335489789605260247063248895707349484769216552682017864220599983783786155073840057198420761967464595974956029785737128703831495965756194561335620307202161674049989332918083689198749840982096620923266613068854602649516945042156884906324340252245096226472044341795535004222028650335973367510387320918117296905174508690758776355902133399678507636461915028637710953413224706780590514437695044763831460670203959934173937019865126091208826447466646953885715212233084222224339347598542582013935042399586633099827516150154931413836951388761291070306396188180287470181994759443358593884225120295264989980744226662090068211678244290069975563022008560142717060174488443735165466801020559914757668229849592544267625996336026558635174832585086573125893432395177848794453740221625946023649830295664766053682856098900599569053276776344387855482871480307449828557279338581467633704503667471123165601391248244031163377864781777694135130435284299013421358123966262689702471380183315660705658310761489274692062280395344498224979165959924782161126044894148165443031194054785534734877209012641424345849429215460117314302348792311943787910058170850187232678706653999156357310289056723713541552693277129869307534007584844620954672422228938649363041651170354083583661922095742351844084199975388617813647423623409576877299038079936595079062284836337882042403795975324229614384241395619100422609859298316427527064585884988080576306888892429411287294940839522733814902654512526382500057809106997125833478162116780554719607596095545347241420099876587749681420390780277029365792396001002309097884117533925296910786956869985296028200517302274802883014509900304117198977861870768075657322529945668763754208987639255904573834637993277815764852735765667709481376213806778991556581105526723969007146350788142004125156494927699822497246916040022984114695476572623539993515536869300835753530112239454256641567704348749076890262872060741011813793826795365455507579269055749134872691924901620055354658157850107645692931368458696720875323062004645711828318224710395406431356373208649236833895832569681811200178884443086396190250572534289569229741050022270101884248610623785678220436414063168809529956380554942812468189037247949557983120761733550027144333499813423825454860932342382298714824454132695771793855352064340837170265538585106768726251346170565359069561732261181165458901926532656894971297211175751272983804471492050342220546561875748539217859923245122101296646712610195884484506466428907521409176601829447959290188976097969531604273564135615055707769917856835452872270304495553032942230848418789282634148930086290911312630559640976958508622632690038170298230847417385981239595133854320712386692499588987908949239991243941647201983546784567581019279842756642568961626907705427974562325667585278342897785966097573759024007311813803700210554267244886967886481891049951985999124877377753794517679065707938988823793336804991702409929734196360311408643567134520816290930515956941471282742910124394702376009663383995782765019068058057696876027237149384935017694409197818298081031189907996220848609719902165278897246864156276925103852638944851269118809887529355726070446148936348581701807183524594205667741962356369733408439262436628922666866690645442526841630461445236521950765725612624189080545898961285941319188816775960909778873833449286353629266514809917358454271763947712115952699758908099611245845635383384343310759024232734554088114124987751699395478726751783853778471296472819979334610813474257245054446707878407800313766365474846729197200933592598282083531144910471547905035887263232737359987856221157179654284106683508160713878752465549246942687519269292477473291822019300194553423260549986310460482722102530190312650547533912741690367810610047173717044233810606219568075595985334563208923125107726902187713480080405184912914128197711820343840682740761155673793224919339488614778929202710595486109185512263783792491233020815183378819434369615163889936566550739770055186306042350616719364230768044711093649294772165810843853868607166555287312714566745748011087335897732071575669284500378906461089247021908165066465663056269539977381654776339306051499723822116762653581429230049427598084289076572694492386220401779450792379965256409581139408300653246915730591639976568339247071358826479335896304646548095556838302055539065410956638068440486855151477452825191988110049106333866321512460144799475867849175819408587138910175252012082808812850193129256154425415128313999168889501359990578624296636018800811207510529018216039721819991018753048650387966019784383858218761067955633992530344097407874730903645289848978371153771845060258175063319876504630930480333582718910198071409794088131540314389831169052262137613996314144521252507323358128872759314312042539115851129360920260532637926203070839405761359666412715213606072184122034495518626026923518067890247803985015630035848155079517286202476338187307334668922457768794567578479006033504041363150901565163441334441759289225471666579254714165789031572971116495139037976893835798923926745659024925604815048817708768976564846096853508487370217964166510726323681064137151862774792484521637094901253886372265074228128941162732908882259674882497993917360209501665882128009116711714304598469459849940633924673382361383336199260803526348847535857646217584444973432166096686273603263006172806633030151018072296679910159168617437278606726031460940071180237931802668919057086652241937870660143056032174348473645845084542147511352652458325969698760233284877470674982374615556709009450808108996527917967121539920210933444720560737099330235469674635807622911584354010253772892934673535094339403231882633538477334734373604887606705205370367110555839097965144829777606239416862842168398566611908327053493998120390753177897574624045629820360125943233003539175948174481504037615222611774485486131390198351936439379261516470699632363963461938997304938431378127976591970009458811531770673100399787838428159389423568200497319073767151779004515351628493848861327605643852664382988722971485332640467008078175878146986401513612471380019172481899951950060306319982239771434409889336520230499454939642798129898474981146216562899959591830841919956452705515399381878414097539700355402610331400096902487213414704481645434377461062578966969210889081573180398737786705473118440829054093238159422579816417609117952462512400326461090492581072879311635145154884550816293868117906246884207757265512914835525574889370485669922464460766906561194032422467658025501317637436354032948317116220400449498486283794643338499820270548291200972210782709252975902125913667565625916039323946384781940313767717573318003312133790089955799200297298161998019108240421702204368265708458493938445827059310944451020104700113466927045236521530290077215508107205921378723811750673892723173915028805436628524655910659871841097759098951254254954204963921621400730901244119317008470360168840604269887667605121017728242564555338222578490206137149299036709897817626885355979804663711291902800257239411407229533539220005919799932799047617660064653567944762495721221474171077660881340181221444050499104689273148371027918832895904014126299627679346273590958726235366398544425346245181074240406584722935181754731800592546625348278609790921406877599045135789636018137427260887412309442219745049828624281291919439157994020204649246440655165097250792308735743881143613268952738922233701685125912386186798373614528301281520577107411017097280968144083222916635167742640725222482810383654172593116217979379208175195261847056508662066191170013771009108865635594609725430124498344793849329391583840993959775221374170575313755579436394917626182840367614278904942093514529123061440284122156243545078703128539289361835353550107676054507741766795836680779182952190648146278394751918057308394568734605616664459709380991742083737532889777935403795879856391647034307623680688722647135782459106238993102711669782741899742901335353293536304787421714903738685045916959423489447410808332164610914565374834773624073015749268927799610563896250509949623345097314595495375850267802728724154724949248594292750376547442692673413152309669711326438134024211382989000424041776844810734968711384638015418240212791426219678514868296444019206611656117155437762697858851949565236372555970909595967720604238461527217072232673051890979812297824334095605003995257470820376110755508470339768275941768323979050911566040750845486920537821388572924795551436296654782111922779033805883971012606270440176305440601261982639015938874146276437665978229409729095299710079816154740613915273100168787446506945842815067286808145748343531181069322872131317912732388867638620630382095535144146458948992266763160439212469701969705426394535801937788891999594938038540162205098390637699454274430343928402175291589918518799534047542409514631534642546882221733861690202790137595389897407923582576757753962325750421292059956671456485776637185030564062236854990268490803196714339156071075350964220924537545281052749925036006921581272798043348630198212092439333937127463928504108362654449773703601257129918096376087901930746665488670498750172750366722360831406038127440175540184041689644202644623349930332207981846028776119870583527696821392806627680054227626551907249252869143959017798939835488425332247017238227370352163033548582872574943343554678142074387917518560414694958052485821645099348270177583054590035072848273035069580266568094791842223543642228108105866009673638597799487360288244325263300475536444116960766196292542109445302808894151433725127993630771262843284728632587230790492608161812295060413989652001489824303183643252706269022842390041291702810691027717868130093566331020582065075254050834351243457407307192055912628827237030131603077199188509757925189921147943907081964332241175321864404332249749015359465070058592985915046538565395732077794002755526283294528222751637938940472679371532916121124646717993955816695168726034085825403048021806931952467608861575892158497831167104273469336264366332118909607373215288345360159067211136130092005101626977184987506807738956520164157291106939237153957688940929378532230619505171281957319742457126274017016894338029520678919150837722736216262227370315201621373134596186033922915223557262124197109788819391688193685261636812379658582041060153965543599627570493059141627901238256354746376746711160207478944933121649965863469955601964421234935204618569287394566630656116925711838891018363279357990122419627822096225882766269232447329116844721950276693924039349685443877540345552505916488995222751067536825542136192524683591500923264699327211831113596896014185014218489760933424628149852973310708488286743455401601912492756232660073426511282872635341877163958262616578029125323636171923985944864797801165917862656534125797787620193446067693635809797597236768244974287137412642619094495614327573262386824795649971164196649800871611406079761008841839312749780662829442995773678798124076482508458779937746044752647137187877527355366254640843969255937181445394106480338387129086170394978536908658870060055361407145701178010150848921565478711286053447312161328565168261915289430914389595315261603430929433877945260692902688832205573654155194801586577518670806113934483699917516537773760549447267652763792959240630538574930067932542403442635125991186030800344199093748034602771262965315870261863614808422178509659212003681727383626249948259727951833990936185711529477402957206459180490060325812033663442012061642049733682637199447418094134315307597889003945796812503990094658609464633356037323379744321678955986497793644278207025594018139171225219365887199233394438806591987605676406166748697777609380218354042676671089968836849694088750205143281622815138958469327203421851285581141944314548503356837990355670639521721360204374778640330569128441056658294177441111950035700525713063816255172120331885044482654119435433833669934789121645687057146010213903172404291759509606095472114999440360616241881709021962821306983955968290400766552447025468468488875740450589499126184625896245380130154759333318378747731400117563872005285206387424767691836389738081487293183053766666992355284797662090418659392404288379662532848282888141519176601291468723581706154066723493753636717951936261756004127146992990739776883906521742093525019309511505573808198161912428403044007958566057980061035255348554802974301541188276562036493502392827104356025980468363187993653259823271315447415888328430388099789803700705614617321973024736421900411978514687409872064737982398684907031734275925544418219789846862868093180948678383297895586147631698134954853389934607512218976696701244651315665376007253023604743164914474198939271898288099895821908764909459523323248870528531287119117532564044300354804143194747327303460789292540257622128453209357927374271117052290960018652992357058696482823725057605267604242886339137046284925183197299888331057525387224133142507406496349066567315107261357245919955372904640506017381783464874192794663506771479159340679684354396642125717291931706633469133964527630833263888031534860760339159134203630004971623409032603399987901359194906665858989140661376225300962073659615819419902015496801559538518409239736613997074650261610786373320112495653710683750271759109420346481119081595059383899464600903254134526462522519910296641079126617746841065007101835515444321103928568976952374819936467851834617220051875378691259794555697658353777673961278537256649112785763467423880396371202219870018668645911396443421586180349940711801627189361026059356957859531265653828924410200313771583683799061377364959612358843752028814775811186475462458409706564445230978623837135049560836389320874342168379444771969103787591471298359150441336943076675273914665571924697316902299290526785357374189238674298636266378138929175828826856265286478179117713878351320681903468962787046776720257110658248281152015486252940570929491797263137944935022245187513029805806860699988702950421637309976174674254849937781945796365404628493717219237258196189889339463560971433885174835655012990479644767546686029912407756376282689945831047655884469972883157767162545876288709928294317577225223002179843225860714234008602823997795082970489009008016628493551015776642809845977090379242710821136584511616979926146996065382239330001232871842344463373258747041277633190641550119231083831336882518211923084956042849512739886272128108177416813494485398312256334437614726782165082960342774264509337786555319675550141706162503865318675547245566955356009288620758740332265956494780673328981592071990288353802872200219799613675882223087782369400427871396793156664887970527338423891131670113327015801743134917826118838873394446657964670723446501025322113350000411525305018266528179445972982350084955718595294918348705241242872962782973031945271565842825037972300746736508515232980748348371481927431535803038414448409279426023877089959926325852519316244116364123398854023764308195784729658333948994736943051123086171348025220198391470638953861677766260756017738496469479909625654038492081725592057560166038282159658244694962168704253910578279520320833758614962280508928786518820795590689741973755831987394456171435473771485060394714933497983354850670966188954297085540129564635289828088997034294759895918938305946536106629256072501786591069071356066259573155780769531058212716450361151872272138123132480524442973833382223821441216589937891458429242687626891904162565661510318934743179888893558863503658230773012820408692614388087923364090736395883694226964759659859595302455800496134604684621756695730343265936102245097082308575983987814632258263908993765687743337835582055189295427741851566779088269376864282681087686305536522563429425302836598385666158424595614350651798937425889205649371840118584748080523181141893612611795152617620099577594862602054789253458524746635103448128506446621801212521928779695740541520398390421621460079880277288003697025285964923116962600157458669365710281376007249625709889788573893973684511117418346256265162781111263373722827649645703066098057100801843557641700130362386571134007177627185736529656788386137839731023735498159595033928972979994653786102347723479085463530259639188152378580860132566210182929221963590971943106432189874591958300307920834562194355371561234619454716545107564423144209264356004558813168560371764934008468920886589976729778130263727034944510959491618919744327478391206600885094323797291922468603892449424363420772683551839707766480685072862585960923767991808210112563818395545291380959718158340686055669967928886749219308234396912764908330809893229881987071343860840800360308121933734500157261342708393581078029867744480421452865829941358917547382465474057817826750957330124524836060407118106831191394921884198381230569444667605044156838204023108947555745622489455221908150481192977407000244662177051503423677945493646320707560298028370046582814291403735973563322637828462205291279153707587246255645211234187766849635496079851446683511180830231820376016728508432385192171780431466859448485094058613568703203184688732779233792392658436626033585696067639118022017946259461604753254378369258872142244516842960117404731362365571469814900163993978814518932523634571727704174484090268771074236139200928894182612163250647481541888393622206963527427290105387832004053244672820500933477064583882882450202599042450013684154116515218393480110603860307220789803446441771509543102907699888644186341879781859966536774848507260387575545334776021331727188905738941172195153619985980318299685366258257564317996516142697874779383143105497144717552751599130886143128873642946118709346658476414372014549956964131584336127799380145477815028035720318489687146065529095896126938254240712849100356749325685820315286641849767838214259311883136235801882564941179569961219755043809910138193765335829317716433109876350033505459534129062757281954704733742824071578524849105766826343961323493116081800515205385327973699661006781555260380803614299539679427952279080501092456929612079716382764053986367710548190949156586333548956809964581153396074746751124852021032321720922769616214198600236436340425356806035756620295971974148602468566122193158256980308437673111919044229701711399476051153784686306259706203769779966816769612099990323545123293663799100028777128280306669692790526616744851507377430694709400439373163302601885923856826990446906898587739983189430168213165016837515934620452572408401013992426548502167940510077114818074143462768934620316276001386174923077959609600523922765870403059034806386308149520573409246069683741682770710198957400870903900589822503490814924960751368357029041146146404823078397009125451139542029809785096661255587932736477956134881828761024467607197040042981635500828651845866916511648258807949885040320490713263931856997904519245754601880062046607379627917123036004642268700760161997685321034728387562151227204938435883739194194489366066869468634937584821936521557763296263012548470024945732245380184473057383593352595966951801253320423456450952029246583942724453907678860730428420344826643058680233919112413811881688699858517260107443105745160019066102105923691887948066667860205726081651756668216678046869259990876786441992378386125504695944857015234831684296778959944315954501025042421363210904126018005778088701341687546891520981686386515829102750470001218857492829487793774153302045448780419160660170802251375238675176400141366516092415408941419067188061305621828736580385112827160771935778967300916816686319411612059160667997256299598507085815500984901883724119839875900221131678288365721249281482078775719497693354611230513644449661488295207382226337683977267163843278856338807180993594885675900979838455603803500330565965101561122119527694296117937905797935345563730321531030778645118147338960169874484149387219820773442631024790748831812211257048234152549269159133661836223445211967177452328485384226773514381614753433187303943481248781830463417990290071174423960320650470485281629722169936298337085054723469388924399969288529063831977047579050578721497314229379504550572406478590299304402969704229032635074933178164336644222949258605887372141633278625844065836526093051117854898032356295930259099213307884993919360939634980526332508978710097451007605279107154337902776170308624159520323329103718605866629589932599269574349300079129570548442927745105782330745653373949816500620604786871204023663746152945559399049783991777282846747056478712486845447557406221817372409214589852983508648162925751210845572071052616028227119578337902223626967960556546677196789135219112776663978306206369511444777915964069944225411870360153388458587730764979192242025044169802167075138195009569749958793825249149377438835678544293912557950960724064241762024321771147794552716201616381615628193447179101026738491316987187893785694610379057158655721604601163627130035896754980873471233383643064971012170918522924076799882410122631564625660492347645378089183570004490025741914272130675412302979762832656536800648230599160130912454420365747720311929444319169065737152674500815043943121882828995995363356644203872770454257885135548720488381211373207390612229062328682218181846159521713404804063565353560313492960524918055703694566372000868357219039291195680432515067885635469211815562160276308020161854748256090583350177209921875241381366119635295659041185551297790389589576670795509615115557027327838292266367879393134748746212696613746970120789330379280188810707172285751133182146023724662790413924349314883052282043086442136003412252633305829062131739511279526420044587077617017366339964000184029155498731017139011175811603308121393215752193804549643861707078795411823463158997530841531252202730934360718521800603803271136604622817265258719053255791368285672648587272326951650631152395081217870566048436678969423411745929679269105027137852143269970423916384124719869149862140627570906734679948340821215337134200619346284841152969775331155460687669616580551000204057023771635619953394184738418509256475894223689709430283378042576764534974024014120120961004000875751952406618011412689298107094171020021807122486592783022171086999178020415572328471565709808889454262584711999272650900958842359818095721940786055814563609549458086442966980166718358419550812925109990676849375141787612066523790250812349997759569602016674412203491534903603808567593880720457797825887246509035349891044437947375411472764862871161815665731228797002362446462551775336327088813374773094499834618458439961923622429567900109053853413317976206000795078697869746649777613177873670641432040958375251024489665541123267820429899083465245709300321650748310057670634587913303106611028184636445864395132799978622784290536324749710773194395724431913977686976589993739115772484972907605952445991201663515769590259847042966528128674944487957944207191065755961139358419332819564554240688126465137604626781129371676677344677118897416402861621658311089400903071584248526295893995899354384207861018328574956563970793517425017394080913293399676836944871649273813273874615368207995077628741295163979130175094058140630649051071997343283263135410457745512012964234590360831766769262056214939549251453492236171665586221344309573969301086629631892457481781789608067085246480338735373081370891753713307756044833507577747993998991596293660480355604530178818482957423993711773276893558627293771290350731697942964825195454043901641242548411837820956569058071606639148702683095800992965278519586804707262103784265914952951543499003096865018165266305983856523108225483062120051759273416116714770109216278692742580644062313799022354155787288478756570168044966557063948385162687241739930813414942512643888343516870227670582480837397847759788858089811381577164284535616525973887167105553252067701940808627530662063013896201948990813358247440070410329127711719601703317059362974745461459505318572472155561463983864288011934340519644655007312789277324200750370110276648813709339915980623958617813801919118992673407160184609770569837386320230091824520129835312159103188554648393499807809391936274563082683526287443198920789637486727785787268539873735549257637571475756241307093577198683154921882524090873888135014073907982316619150102128445014986374224935977234832067706735159262794758338563303587680424341156048640896437456721337578331561144090126047974511317457070056867914689568673759949820377069243417162415516791423401701374497475759413348337380933220820611188078340371232972725897145288204738385905759631189458367730509613986440642606783648833759659101064268998665993302684472991143518869999202825327917832341117974842976818480976151563467589940064657320844490927578662187116696076157257175830940527202736665682686748813742088282074674005746831599732582584568179953063867460532473422822081545250181215564259751718265362710946904424891609722669509487387966056209356868801112168712312294010834576669514116967580414079546075456016801726356080342194992022468309575354742328786578230089995083615521586364602107564126231518860810175835652575714129692088703469023978602486443629850381820151753567536614182674192743720239146726642818535320186823328754674463839408680460726152030317010846974962259848024188293703584878482955172603539659572826073987682937267102591586195195385914800385251515429223937256139139019349385880892659825993962334937965075345485098192101680660656657790635140743411832455780033444636617370872664697282248179097467628244554427231236452584258485385666970405169953735064322760363792748553937711013368108578446700699864234064465019212587382730463475189574262650059093125162997610686329148774194718301603198371495945925485769753935587599354126991096417704128627068152411671735357711004667714935325796188234659955858684100832104706249802199872102599580432230504538754826907362643356174059699136181471972275568059804958361763062537613868414225221376385343400805424578147890043256660541261636049468162033546177816137202373916393383344541278320481386293675709778971278670658949509570448583194659341789405091233715089421117660495514593390910685785960708714832186166975987832256562789523607493436480352996900125011689305277770050840504958831509776532218989481864672325472104195207196366976941896197465331769210860508588951270290423860914064451363580012309750202584766758776653782301595053691213548215706937574893604589769472478284094028761500090959883608778987109579370764575576161870244722899647128739337017040605260940964155580789542463655514411557420702877589736919980573773795381002555285933534620356703479916461230914569267514250562271595527436121392311149483481201429966585459202505138732662836649685992914714068867706231290304783457641201665271470482974983061419923075808636979331677174931638041575739460534428623043865074889278192467168111939201519659345703904372978867765653536029974433775995889839178723443979024580829467843498189277013207693505728495373509617315723675442289351529565516224704531831956641456834108059406646837156463995012744469061607549190882819882197732043129148687327831422744612288936823289905114195129824007631422362537244430943262160254209399056745581279689671780356494133488459815602026390353481691894621986855903687225999700878834579774803269228961402737446136991826742365435795180740098018410334958964901194514206535357902219221627824322960417809900924009977167640309898738591555779517769430648458385498795601592614883699374897941571503284277944934837441928824919453220957218600501174474626669307646081941932618760950538406687450023861090500296250036741259254163093641534620866047937162399742770445518160798914499553791491879016516135398371277067339929708080805905765143633109525107411506456327510193328780820297972837846911047449641180356531241910436264302164982973617709559296531344662110854663643856224954978591893610632072312880153665686988637317080089557497856387388886687722318000281723620901106371946687153963796594678750297348982635785183364722084605925362893724069293407194460589419043522878738713141552652286831757209569591852979682989417654216306621272249379059552174693255010720848532536724862452812793811619401746681703973550963199719441078601228972660303754032910912951139235243532252817144832504335692538956723076930386932280936035348139243484138737405697430346368887945409902035557638221553481249939134992895432815131181424649919475786997414957530290200002802080874379080493018108870526867732125876484176318974869321707466520382388512798739169268924953675045216069705560369692566198950911034230382251789555543897706973338981430701726031692720571660589320987675627164265824168982393008686670668463081438239729865510782207770007516805479166275540967747894319869166046995541517177750806468925662787969510601978031574659340236454433769801808802858848597716122910943290301479234550578027124255917660707978520552793216008487924905115581936721510804294117061107356564313279996126519053415620656700163741538467654746399403815437121670208416261953028364765982621407209270756477498164416142548064224109500306090068373767785745955427639445028382448564656630285571179279873534806616888313353040060949838870689438608263468681516125159064227849159808222660883382668175422225024526207143324977643023145788012154308844359668231651867901007154147794334580091517395218335833290407919281462992635589257166831367706883115947161398912523434247149586140563454999650580405265498532986918476643206185956943746417620703151365237447499102493903410256397499848926789812027690386117049261329016968678146872146863999224955464095103360377806740989360832512372442061433857037741056007549926824626432236661408497699623761071674855989254780235298067475822084385575475030595804581401488008990486688103418582187555456272241146856888254871357741110682423429604584035583748015075820551485765382028500493779450260652249344940060411676649098058526065057710965322245041006555248174224858471727286083959627419140572893279505016314210438480534993612272458120526388848999248292335408165266169605626217108746027030551987375927917302072157539758921577299398172179021534767968269198122534386264088320911493378938366795612994596854527335273052349925240236665272375203095790251712458654131309319101086219917718982426305677307757726079693750305432034997218742419480028992009524461026331878486012787607292036427941563782432756319820483099580761878876179475191858082857558474461691129328425459315490621856786215245463869409278242809852506376883708412536036123573707035875514522405761771833358866891945553692621103813402668905978516486405447106730653670893478562583967895097614785807259058616276074203936181977788872127826650109341943761165249840737066777894224014178537110577450651025867466133899756456389260242531196788158714376166137645743363278918025612549911098175898999407799475978769833036135932502668607350628177885552328560477730846367577945758273068788439127701145041031081255342475867885974613272009430833950963694163611451084265900085398966445395069444928878203565248689649508659640616807936677291389792965550439652882724113309725668317183812875303261971917763297256219151306410799784136923739534942215742216896376067183222279442518049273827941093698998545190519999765260698899318364337980462210989606662265717056476857937148393748312537569805940468927093127824348235324559731740743533230347925252593255338620511072490592729041620535842820648254975911571607366785815558082131147187319630971835363853618033531410040083345377927700600851384251951551290098919968278945990521988944209425000644235010123209172664147006399151686975911026148941518637875929236695276567705668324796168016005358396847096326809352134843461182425228873035284540099158715646570970367393823319999401662878428520246271086822524655050293136426488105467603906055828123755657678693075369610850375754244388387098029184992739273788249636118591159893519528391602825800856269796589868282634619694752953679876731105701679537487540877093591926657467642459096217832201753633282455947051025851813338800405054089842135010297851568890622309875274523522165787083957697899250731837595722861584253087343872563580424069893141951415487165406489121763631756195273300680998700175534347367929582810529160771003485844263249325701693136983488197253836156009544407531181585174717561060032249849485447312250493498625774854121946757345557414360817208778099144081638287176712847524772238129571441990304403202028927673211244247025053008214125848538509071368388622959002760767379896561716418419615295669190757550573895362067562192757175818072789339468063710648525544500996694643860545866190293468885257485942124433173928252362198301455853198881780396048506123393036250478129086455455540200790001472627106807383218157376830383663639070320368285388089126187476441897762040547833034149743349189141670408526826387507174688712290426033017044901099878304417631100937013708995564992483643731088936950960216904707195639271109190052477338948855174203785735785363339451798061106715540821333269200435319378488384034426586033491211270952635397808422776798536953818784548009060237388911231083321607272811479230661493441689593735660230827389572024570339998933681130948968184367569932209050020511365276446444177865713261847829988929471509689400739729076782520481297638008280288484848314271494950897564293902172652524993936790681261055314101587662151411120095832461044537826626162810966046524645462140015158384290443241629200497616897512847968441951923188516202194815214670990780436393425716420109852116190579624491003002354467665212870339675324689203407423153307578230531295802919449903911139738535530793601995745589089272361519877685478351576578756125096536180829361109839585947367345168977810334050688896977080309567898746281129464552706707238836436790799664167366778809531419826348765590766233517741068992356772118080305496923001888392368798376598032498352240274031881316963693064061556824302828181408943704157166702242997293733430344915719490563168287198794523952887158024757932376115402374964478209946744759807716086313354631143467763569611456657639416006065566596047175493023918516213209051997350630986886033900545352795131509747672711610815715378857695320807407462093923514944306258616120341034719155461854998499509632974429343859070736413324867819326492542855264177919177105265458976516837663285269211436666449842926898725292354218062474329799028555270873121052531007139424780890796347799084418098681010056790509262257197604952274937459667596405282777791501699663093105090231407265137384960724172617328214290052950725524879648140543692386747978573073244406576720469065965629843464895300455506040066324235718195539989833437366375872326411306435589443694213488553690409852656087485860933643706986190471833358019995462877594182690919942570384280024400421886184938498356577575734942444937908125085682815758071049934352034137777045633638541103387710171170068382429146145027590868620023685823065469949560160598724847559213517656427389710867333657826643897178169477788346083680447878900708529967657781901302530014590821856156631968209222033380534706452035756446400895511720817004563189159554318605727895787058899296298460670460575149310711247703507412567399809604488404825467766188164010135124805312352739968799982668597984850283367546782691787415560828377829292804021587188190513307683048329943009227444045391048061601237524101954668262010391081120405879960319647896065925240746526952269127298097763710336278704143406647216642498616209954293759827654950912819293514940953067153762618351169126946660509194907798308473409431777782835298144904741037178164569441358391722967102949408430240424226048216693923805372318015312297251444443212567901447767433684664180072042722715850287785176182952997173113382958742408953469582114038855997124219024057480464449586610463662240030063874235585305427686495800303479150713992166182430505757855130212234223437578751570552421542582717137895769716990444169047919103486558739280794544573853481534430300408369543321465429783340120229699537662570492055067202887439061058980120196071355684434552964005722033969432139368638063874235889927071844463556985127857516783973598334399074580492837194565615109320753221256984853483544142953403996312594397301034972509143609794898193012010548103215774846280006289011089190493111287360430661524468990441584407834291414739344002782052665691272146378289999952527501280069608738814827453376496550020844661084354290920045131789392228163341229489314623966623344043871899094843629451585844103519555086895200758735035859941419685825956569818282144005703549485994542494607578768827023183987028284680615662022941226633655515313770771289321284572410813116714788791428876753515997659326836630695218494747033411430705648667154404909363839277514532647010730297982230922967815166143903825880922312555183575681765484601431225488495659106761529249025658318987883325453244370316777040318739745391639191537975085653478631514343138672651210914888598302223948943727991993839932269009879805429475043211091989840718419097067195695528337992968478374352019424563324187097757337417881500155952819762029453969341701647651782010484364175276199106732143669988561205095911463445897735623225487331874492030164155088337786258242537365197051238899072945947513600172445339008218764541300733810054694271887161949109084225144566903955606761907750380447074530391678517405814777663063978811480504964527440886334670668370342387292895121913954521140249078658738957448630657585530372854251468467633887929342639339728137684450654091187001863446104915475279506803583176236208517797000380934266669810684406760306158114480624934493023087040468982487072457305650529634175964136117051811049993707781848861699022745363327463691761204210706721899422062674593911165932112868262998488551517714376408417632586436142371405749807944364849915758099706309160371729955982774464116598177676886666252633385959743078244499467716037081950305587996180305032723324408119946324435817672219760925164629694012096313804994846629467571096945770370471253539138277709708281316502912877352057679292918599471057190814091196117808548120700978702731490379141401377521958091559529701645280740304049315469213840877016597688521612947232449927460577842166442254344244551693896978771214507007599608168844399565080142813268843252020610330904234933369588493027918599115814182887377708317110236783660507731433588673575567790132745862280490839033654941787167703602466049760821815005496176214283252708301496640374211687974315208484722392756853224596740028633432253033871991457522747720288394901212855869492720804027315034865946227949478364168546657145880430141075656365953679098364537409576928238460125908646129660532168890628807678591804891563480943860250607438588673187139757710015164085988130274756609628093404613625639235318027327928774872539384942288660511518047465669842390264576264814097635966227401086828114843053524035491598020173911279865656139408739769421418145835163533310796798480872929222508274619586376993631445161344427720583664445464439629995581161044005134147804850580598101886686786523663637284630314904791854816490934667827708013746288247462346734051491328690325255687401982835673107043884556337986490484996125672642607647284366783726490227538545156672110446021792646872686136938957791978779985735571060714237277081519906499486851447427004935584914142437333061183406136276592349504326594346662619318738635985955292457885707347579881878174462045927633619759250896085372371908406384724843027182947931823610537064555083212557002304101840388423610070365589012707913472807573394559946409464465682142073465794035053089851365189784353188140504586750897392360968042421918229497829629692318649042897054977172578112476961460738012453532687059493722136553784102613350167259169556354349395935912372905302749758679505695795147297485603668150349426111557519852618936905948191651390107542042720928230575472596752487419928742853923430714276559592732769031299770715303392308829445228490105542030673934791119798754428845869213864061776009387597977106565920301185641461171933559134594717253438810414395632066406873906393913697999370453125169740902298293604486946701768722356230680209559294906120345323855782446490217323113778027969320343146442068881698900901152904104770424523356560126499754487023758254122567151428042205685132906307768578350824030590912201921411157163989937593815786361871101976189942367697504946260856784188095550169111559391333995375327624251782191775954144136088071451596492840905989542802237930059566002451506082851285363125084661109916151091028037074589122409107856861594762685346687802714480356067287848261929593245263817810067049882875482712705260461832634891167426237661539207362464019296044774923970565493683216423600293429099629306107305625111130099094835305139345098791376802853056160143538373722675725675829204222453009450994656879588555006938702994200695627735794328066494183023128324860171053865783920098328671685516349086596030204473628649994331581196859007356624687672404913180099734589805177741751678918346041647829617405833123392117620687164717017137198871889789623950149629263419316991597223559643819397287215716530487592767295113804193630839739917123282152272335754125769716043451896220527551907404226003399644348888695537446052915162956073705970909322162723084367494260644828740142418190264035580885714513226431918678977437680142671628209032212691837405589240985885619374484185845835124143780801318246465919833074899292437177445994587932970429663713076262207264709281684736107066851019662762668204033001559527512717070326433581694079426353865479330157863939103743778226055622757476709810549919315027615901865139813779492465551701334850509027115714796409744953775553024153497253137457449592094251860175517542998642243898694526258026349088970580208925338642242096748933439867052742864488362637612319071455132556118986179293297224978568286075638211681486115377015452243446524271614276164256059754049256778312524339776126589013762653488768110846960491291709520271388951334094916050077041940196630068438577522560191398868872209070812902855302281378889969215349335132063213538299617817901331837869689245471103599469027521759127625343078445307084486571106571136037577975749614860780081279003909926717162853525128044596440014130296456455976043241308584114713626711688714635863961979917570077215319154492305534145355164936725564189131894582207714591985249995611109261379306143704414401047778418520695446829431868851516063275745615517314170822567095155204204267788440363267148844919330652307026574351237710373588884669331067976941799284856524541317584964903963208199809486483270316525763915834512793960809545290773097759168786617886799202851478261204074232150505193082222564501621712551813667039145655774935887498463590365257791589408732404268785824466946825953454798016252043125436220749894881123281443411882561550817044628408113090338863954842792537963568924655459925583795109799901269113450625988752576896424836905050760857723839789530767579121742670514088668287660482547422342973192772558529121898981805734114806028849964769193099984137217685974614347596216027282239750707241825710037291301072197845253015549177916370481965836448755190844514865078294521940108751072768961217261201976568454233945871735011706091864572289476745285081138821746963655074054540360432064579292300498678447305401903073750257365266710002570429475463836165623807239862799999627030114150814991087039759269846655344161636532486470061980699987903671966801927336313986562993383744350067476539776123172945179512459896848850394504325734676025863009538128499239637347142075677261198907384675880610669048907602648526977141032766630430041146098889809394306003857276453864071517841131469126259199320929500248157655788616212021689809985722988979388583736518709168219394801383953911311723223173395770740922948339147858264305251325633221050055685952711972970821777577862058258283543803460539099850388388835116502644676150130571271035184327422098301662352474928286131107082356934338690457011369998340735207715608707966830681857405115310271432627555147398494922938182665411833996870346308225418509000334241082086680232304659522816902349602561351569963636094177660642209733072411956016772526900035106676549285274905154543487076864212946602989389401424761553803607272998372448355470493783230300481416433378128560299496985844647253851122824291818340452713040287156199186714501074699304315832309535856103491477778060150312143951672417595455980378114275553836402168989148138136358443336017004864351530810926885014872319236559407867017895432577429297356421746947553512229943605146133488971554258553760676600375617401827499106038436942475920721199770066408484554059994840146669473689891887583178102971643480423814537843377312561900759605366953442076045363944255654703851267700784991850648305486916572676151079904592757880209645213208576712293035768820358104777408768730970153712719992452982031535193396575508015896611539952226159923721339793426491189815752694655157637928355640776956690988623718586438700381677180348554046816660228292046056971444976738814394983552612839255163880309838778276772087659700282686424262778378444516677982178668830989360949453503597826684486365376779771209023644797364565768658186991264581348393638288595086752662317900532504520561566181052559581352689018142265913100800821096935417806739943020768279296389868143007599039261441837088523882394405882058754815271788682244252776393571146506832429705930666504827096895270379233294585633215255983274267133105991743306236350836267080148010129534607105300146211530791620192004806356116341629622355318056777152913810597636843533888093173867714409595861681158667637540902380907212930862402603613408400985389151888002540764098497157841223987613956033664859571324298475283098707370844792532121486969265849774607789805542089603263960718520640635738975816140269557414859975779781787093371240442505964336949976734664853419136766892842388498478347604578655730363114252881673694944662854076571071165405215990361633993285252341740481514843237925454576239345360757264605099409243288923062224058305998701793030448147176500999367604801790871971552859372883964436569544372859171958220504656135265584715640250064166601858941608266148157136307981900110320918207689499687677228731634250057063609297988371488880332358244461250871688952138578738090915988640050634435204540303812810545693057819408855874003485564726907150015422091495761164141084310557500052913061322267376354633103235603320651738422235784805079731056137671218623036020697157355419253345160143806975034672817891189493331975191396447398876452860595016466031443624943228026116727648983420697062976165451277487357353098879728980585996195572247960978477223270672428693779305256672469849668108067168906959956331779268241495239068190533818931850580663905116719651000767597462133080015171172945727457596340677258203240139110298503209983443665699604822964293667225634781008242074308679030908727437115297712743543852857977454556777365285314874902848379032980775833812521746267828399483313095175390751914257067404370451456002124714933381626225132521569716595115900538944108513742706733347140730334592824362899912119954376495755040570636685473066555461913297305561009209058103718938767735744169361395886297873884515639024778028565145796979544638707218506650390872863344846713865331487703873545746832814792068202731950570562225663649109754619046826945329540163506118512219846751849146664359581272785916048439161671842442961257156954093467734245498438559797445892756063824207172311033749228591428085744332171544009485444062383407333813600617826192343438406856620937816886691962356211121268640136212245337403159670162308880532209502362463105498684704639884252599784116445748104884584030590608858069145487832319185736667926862226790765071175876956222305955596688011110001599203302552866167718078717129731577516723234870925820427602681016714686172840963184386402751137145854269589139644887997892843307007072353996365943977629106221873584214637921254137529978068141348409240907640133591274810977201579603240559958503958427676924773136864425347755339158973466009644777260562101300937950055643810858112258685860783145413929283434700799075216569046234554272699125774527875590592814272119300206695837376900728365397445419370655991716055895034585504656416661181568414978242514618154698992832517985188478867641888948593740886183997544510802177417543429809294955399299109685516800154557478973300309875938891005685595276427773567095693754270464185318634171009732057942381717010165181464807689129837390579959676915072109013595891716740158984405285130218164265592572549126173136533139604930624807338426613998293720173833601966946628184843228765859603133372373910289019836666185296313938437763537959713400442364159327342433885035512532757242788867574663872899121378561201195247971813175922640639518099922678541384405038047636853982217985249563153838286431124063995693193439944929170337221839399434964243102699290935579516742521525091843490745908528080839408549553644003901011748998112948881511776633502562444613422501198577636679561399740087575821848323000861691491256885749779664601288464603306545550509913401915496613371056926890515916096468379243678479711203480321202792996509182315925240814342449853510572141971477763071838434961610979632512409404932841370983262866969184200860223812834756859302518462953876335087133856096411517443426151298525312345644597228600634447734782271590275993555765516420750916095886402403509245962074612324227798856323567848209574754575205885866950825751406633132184182175463649961552870893495102166584213404616535577127378101406883737585315050142879341489471015511402433761707153502943935011806458574138736923430263271782576922021315887207814129321113558829949958672094567196935402171071582365812616250247056566608647152600505504759417211298474148616080844123885477430345379724423228336490386163689400001212007423285349252853604613077122382105847628597728903393439286668893474158054946751872721005709504367718544158782928686636843366211963986776438055331035568249665637267638415039517357283885126433331220865958450962016346901631296941690283381849621487936815507203903233908257531118830527797739226205594346826091163732670574408839129126798035836509490523895239078906355934034419922176310604049789055764271808279076377707337854550712312142300512233104401873584734268048968871111715233433386932193833231107727691615972781642494957636912372462565289650276398521164505720457302271499570510673962722223869257076470564962549380507406683949337391646363318952549868552521933669818092197744169431644506012683261349174451199079979390912163304435519304840315901672356766599647580148486822594163718217416710098859149504170236729426319250785738896448529448095561301488708157349523255389519731096376591614944141682802992171915360851721603744235037540858558467047749187560740575455278695532403927334544603765091449832695276690862631360433717510420581422993430046523319355921785011205578958605744605575364966016128383122446697265118389345790553631331727813682752712646384291538931207417231805583896281083349886925044708728967623481234213857450734704333528201759884150015924459058380661023637732974508980516637779803701678682418819065313328800769865286303342922389681058856149508093400402024849351868727239456860071246240118549361790385389919373185356483377738924238115095894269231653849299442372629651271642617452777185725029650999778590254341677597313329556234135146242773370904053731049446365207423006986450428294835156503707636535645947024682005652775592793017041970698000281793269559548845959856562195658293505031479221853951069913187318672879011894972011042551209198303734809395103730400632333300075292733395571424732313874884534915188024199241473849440497082127431864138387105617634252158254749797830383333829958268623924929016801375060545158221186955185648483094576647021394693147546752217771916136801200255766815265466755527619741300858968933773898597274670307282766904764152821374721611327970912862448885538037090501351428311663749841366577244451680220776049262414509996846711813569195208075605371860608827907009599131192706751755678823169662542397200180160837026292026396910473650124128528955420790278357721979518743300288299223141824183922818321368126594541416580142849919172777354573868200383651709723409270041224219561557158166459376914695174971188812667767868719111448906452405633411476062727390760420410108618759267704588625746276668330237686983299291913989401450983017841522903529595568776216766521606543307350186958625665423327076054128062347318513358492534890354524024846450320774045025151604489004902124323964502711678107211849396163461842223505661825747728697734176359099211685280733599774828661462882456792575744277494355792401932721199122648589707820100486614312885409324043705794908882119219120800515454643420195602543927865893094366921048702246915278541689524747765851613903990391038163838652585534333779038739469682835345027237312105975296755416086478516977016453529167557965612552945521878271217818206609173813579993386842172358801027207987446593962119085094461080772255433060109757829429761386878788936477246870927954173326089248660071323601293490199378219661075304514186811933743111105110329759898049197817553687070049978433668022542862423644762046294713706564369739969112065127160134793267872715932112554199127942170632493130557594026438492290292463107228995590457777910201452126633524881927954760540386492316488323829041090722498579799528430952034047190599452219198450931495136144251795908997409121237753545620325573452450562684768818469475597645682105002936420892827221189395165662353119977165113528262910775546394171768708376862749389174547354268780837435284050469988101018512183824771504506716166298241122130581473196369552754011642488144102252736266205742414717360331279547101150647133389686880461467101605662716692473182433205315946158689139911478599366743909755590258574652786986504668551735214093016745445282792048413607889228603230251395813975900649832771948950241480420455008694348248361967791537054208917841950985514806319681434023654341501419200603946474208634423636348838518425764740864903733508953353683186533785731936345726982016862735000822287764881956413680879917338939018393236449000436077349135357776354655188192227585227792699271232161778940931111796734995062566004602882687110650739884311805269868394785330189292215982677121262828365652387271866528612866019704464005428817949010471536908370391219366767867651107779381662047534704197001674842599329775890053301583925497861993134434545431115076206490194945729141201877468298398061011032964682722951751700630500418476669150978902114519338261500596704326273970655038604343202462298557533040786095088659880240168040489446170599663072667213674092872230460571994858559697460259430453837221825259857226908287543412888511542704084005831707491967108951116994054591729442914693772989449198451575895855944475005407935381427671794195978619910991970292334798838805619201855694273977277690429065872997255515068460697367104455454198423191964626611687449891314999857117098631031096403083296155193390411208114221999789157949091966612178867754622690834675103913431367359162147988537585810699666150974322056566124889252039258845345302966235462399443704442767539420157271807414792109739123773267663940890411739913394299046731325305245460835957762017653117858184121075859270268024055038690324879552051900219698968009101324826106547927289603844669132331805471500109445739797397800550022982847899813870325485082468441044222178183493305007109362539491430075644943765719491683595754723144090139792150588428860274372068317441413290345546611640958516287310510184412748171089446488544255315554590770420697664214589484985317150167426111302971524503263823660673330912316633829994645385482196346998199799419479254157232840217615529553013397616213168908111902938949444892891380785599305517397668641982295553818176353937372227972971695608323959769502170984049781991534911259198771239378701338195795356260874907915764472349470319763255243236261272178546796981028736516249610213229386248073447195724109911960502281642161029849467775609955058053216157354742652461867165459479348647662231068372051801799088414786314158422372175185440610312324003870979487573745169889874763570727461875094352739796634827046983966126525784023228941361415565139123394125960292840118047610810319369420486346157919365635814709754645528068595739355214305101495099270679115744994351771944059705049654486679945031048039375576717902477321475760546782849091182655492862130565301475410645211293092587144884992538429019159269945661632330822495426651252805177420357825295985557964266809668645564913077010918002711525290259907249486724961921572141003009298852627145798385926399234696520567823058037511123757744957186285572685182246295048032326528741137866534875888060094870271758142859189530354067200779819811055268612483284598345515972689410318737757634261471027537166259410005963724582290959145937023444077347012593727364125627338416108124265933405792316825945274513610847719968134361972552929763296546858282763817555436610959460677889912993250848512973130296280101465030903298724289704569001813362906240706589628099321458202312363941991249896413150579659500300448025441738675102668132944028613387616400293037521806496087482918963621754878268192994929421247634249893047048071674624806934814972443491839113777810998924621891940665385924750146072820758165794449641485154716847589591732505821425426541392451666405725907030638273583085898627214760399403075619119978720504127539714863142854629615297531171425734257487897000852415579942348885271578405538620919428132749928713241799443759655760035232165106537630069360257583161231501981524663713113706418446400212832126991667290508775614588882198334606929237127382851761308225630452103622896503562932427177265870065370691517987554441107013749907390562200085559802034809003736429272975931455276989268381644721196941458153373958767957788593938114813384072971635055951458136176338217517257755727632733954632428704452704318304940077692658011874975699652522451989070365207500870932139415615284034677631584884083668491432497748245350523899617018291475822883137452854395387963378206148658559611290846602336411091610129375332634098484710176473796630729640855181341499671452632616712664117202834802727057170419089243297339847999190905811994754731547321205668199359452661949622561262508491336804867525330882449470070478927314225340689579137623116518153104804709291986024280614458980943177371762484224517714374887510363199138216130068014667716871331636742297716745114063868745265948565015087528215611529530013444978463210214290699755723139753424818403606208422160207757174157208582303520142063647184061242892863180413762986445242896698682007987807251497832580456202727271728202203207268053581023938868379921429927335845127662282104494125680382909764453849441801577737727368726305920519222963599835224433874465052977044982759691029516011625484015502977685492469645578180853194248826955347104880565607680277505940998158838585498903411914356839298980977439065501629626342051968941965227706579029634696290823962790818715934559479218139563370374699280585834659255689919886438086554074445411912374195776320617848404828338203459445898056367702822140012103403296972977839286210079003651480521123086917104053277726914598363473632531423791390909231495228506114606805257377781022375178026249158274410937869638595319236596401861749026986451738336781222841514914972898169936258943144961481603563400299325158231308898442895140831356849220002859173102055747510290671286627679988868098714739030216084030677835440490659872442797542057787934326199871682535057884637731777819376689132983193475081787469417666690552697979712111967180501999701733158424204599630519982174001729706130318774656413419243594192535781889107458063591426139715652662302595552760324038455448236620415338222135157744479010077939942658706849318102157131780202128133406361849513384184738893607481584742019509065047659315356843602594219200190990347594438646879172123727093502323625688773168998631972451300685271939088764307860439048423123235160438158414102684700699585003875309474989407434124422225078613544443996064010546460399946555639384182145970070964524881923076658031185746556914474561047445965663056712863130814884975725814559900445581646312843933332916108863214415145326875376921332843561361115496358814533817380907288596869671406415686183223735468918206000531044614133262510575571949051425764347151644295762142254516598646814321876983312409716462224432642496967751349718997770730261451652726244125804908548533821227983762524883951450405932884202054175153856716315662765731213036595023707843155985576910121261763180809136855541070502531676355574274468737200866653916846460983200510131807801421605658183183008871021142654127032574748499389036227364617833302488673092209807398974548303299503955988934253024256209131950097950529031161388388552297230870999371108079216789884764717466952297104018956658438745598870137312027012528169421078868132288291324788002907278393544144847296836768392971607880291272900830262864544212832123191019688675796075009205428469432909608487501623586557781696640606387668889662790193890934081555302460631516895643730858430308203723545283836183938893404600581086789520409478876354543003063359564597957675206671394361486751880139588110696831297001739614093895616542793006039975677690467426548370457259441061949055600008035948933953918438273344402204840913832708126845817151746241208855973964658616238086317534523217159109207997481228290354906725473031678640303976581366257716532164049872343388057633906459782018980947099295432775121636020298455207400119830788219367256704348067386325370769154049263858344491003695077425816882380232802716250391286898856606158774832048222516472984556177096513712438573436841525912412020188259690444418980895170627152853195063736115432962878788847215745027285018258226351824369290331727833360728487153021699331381597819576410407656387428649966268281606654472868304257093145980310008681708300932876189170742932667415159685821437046241261353815775772829214631993220818403050192586385458880928216396829914859421246740774648050937864369829908648908821172741152193764678615689868010121252058086757520142683447397358293173938326749310174301404309202086419120776546872565628570332109809309813722210470206174172764413897905122814646761364446585167554864425749798432366220718806503422247943993480142879734578440427268721581550934800746557731333116936920693018501848022611949511261434736233202200697553825998743504017283226290831487078877726163815279259391030820779145729652705647949785353175692168283140502942611420479109208155713317856530297381894277128672901915560929903218111965976374435181793196888515994135507634945340470332819894835091443820165396153910754392773853443596586547791372750891617531335314575038893080400774142887415270815649527766224771856228712187948141275219896301522929285891481378501980442112095744072966530669986060678171072704711295138171391744928401212469472825139286276490278625633102025307931417688265209034138666751586743664781321519383745834244724966767081586318874301952961894884708717615151229946683991381808338712149393119723790762564997068945132022999678060650418762465819642757405058919363852056912761535630780313821663741748633000605738476909451064003909281007600275164594790037984092805365742030096292765221295716611615119112998139866980713291022206205632059693200361530892970162115839819693690225610597087484430549494889144219355519657717546917413301447610612704765890017827811704195588556639367074195372369519014424139505000286454301619729916111756465827050127136222889651694141885366760733904188710882625026980496952615279977684055388057961179317084654930224646690357830713723974880984612901867041372106027205583467331256057471866690269368578192007656610596353306506415470099783579605275738651903096802889565896534092601860345185220880263633417418197823007034097364281575172902010460190992088478797229675071657262862497388557692990179448057904376086152887117977300569484250496353103250848462770295030406437532572292399624476496310841632428197382009229277222411691907525737766133520556568189946734605888191888334044524458440309000918671735810508268199641960465986633344759902056254807374462397223186615354399314030211946924454834397756134135281139014463354287856770448861759814696803100010818204219035691067211181645677514879968160969110989023752259068092033548837801479558516178988276329568725625204918378837741401340343549080676854937659847048145935019542335375839205774409160213316198978823315831200491366899331863619548452154111585790458008100681529030458984571846043260875195467856123869663501096387518219247600506186168894475785449902951045584869864084878222946474912683214393246145006884107420848206672011807344361693437814033068503061266635307365135873196961333197809334895794123317274312180150911766550901113163701732031469983927015422153698997603872234359458445559902647348952195718617917582902113050942132849932118867153876999750283016674656126317503841560373503410765876769470104554511223564488711786452516608406710601657794636857334250400229254956434545273743117476743095959735730568607586440145438340236398143650240700858002536230774497208712743225327780119695498698425506818129496637488715098987582341143760322759568474957614742863141347888614201222043086258534134856546203176693297774205008432974556473393985647701027234683375210571624527265738392116698999208626095557446481366795106949089680761619883521536874703293317520010126373149247358082723546925239186499978776535660187633773624438408032979579332434779523934461086084511004978013842232864069951029218995082600550414199881009642296901312861402617697539032458731933928329636874391476111679760311404671000031882694485023654801293020294009892460758092704295748215385072622382430529453860592471963487746607153403498400407603986211098441998838339688932911490252378138751037512074015129493537957844940257841162269263645146314284008855577629691603420272097344641679803191713437025957097862950884605135774649533455706147257737928402478246031433076038152457270572315839716583692935216243760992251742765094336845914463809951052351143709932896866057743464454353580423739287517049949414062733721930371850119419323635245780769272735488429314162244239859009743541771362443354263949673305249663984450358651108553627574646196056588763265842931669241724987007364306159343641038508803199886979449286840427508762310924809372116792768700064925722994222859747179454237166573218401362873529254351092447809101670054322390836277469660954975538405531224504542933578044486872863413568719187440829296854699553986898035094067083212556729343178261020063246069043828454411328300580558796281252880127733770353893767036988564588219670076470933337827717662710582855832366556676213976969240224692471323390475408120857532614592063510348738160494510933153713315646756630861082514758844014530603927784947609013720731256832237598395110399049743019625949824796685144860149991546557274507398057251822921750276772038739177848568102357691341084552526060427090716872609264261577987396988364358379963894261033700790896278880747486912745604032843195874958198464486104983641340199419874075486432539836992203760300219643639152773088391207611305703758950093139267880359039457913536189521920295775159268529421357483115722552963719902453532431278231172477609669030627369229494716797507419101743140681074661228298256761150676698659262837004010843457854068298431010383568309180416150166688346536148073180039997119919793293547404549416781128418509026629512755411957167960778125599723388226221267365994020332238116749363928890607135932531462225717643131527706884966840817611009129674503992566596329958940433997587945287716703137811434001851749315448380767522056322397890372996361026877616911996598754455982387284423405256414469090593544589606567353624110759043625667184975515894085208645997928956598767455965112361944248886900555300723608554629706717889324266677367855426458819029585510234879360393913158845486764690163690793583189735981621465665495745716640671711080298454622979851745033499379229356063734726912732223458398260925370869488972789572096294274046713561055243588353848559704954175920676881264357551685818179105927238888407182170571476822487003779029718872221399328952875143732115685841011581003169371499560575616863312111784665560456384026376179950955033384402630777489925854002240577222124892424862478486515838972723453727554200786169330435768802732508127505771260549782792591737937537833428197769976937255834328135819678359829873318306888219386864978024554081437786302620133061870403006953273647365425809357647172034223825129123785855598436845467986139397189399385628499161793546163610321079535693230895914893073256129807856853689839107404439307580518245760644349686715379370288997172668697224538262914577612899588675578885203028680511428935612671598936768693732272227155355762679399266461887908246279452516061894418751888803299103412901098814663867067248331628405098415768015983025666616546762448134399666240755477062137124109045293330838489213813038161414714921371300163084147095805513510181320679872265759464344034620135233648034494324375059525834357741430403626087573285080438665464524027759353133859303774734906768283693690292203352103455938105039092466206392314566665379293111406231291154348703001037529994127834092210873385643915775425183249732932458382835654287413640164867042439926143833102472875286948557274394495167583688069500123536509676616628626416099193141188527821299423313460828080612768403779255182600064634765952005642387084421960852470451437830955290626898173126973430140880758408995511606677163142020275865894573451358028421846654295402544397994260386553309723045278967559432796375403852213499401799679317221371877377826008571401428867580145278976331178423014134233379203022650670368190507962804746425282196642535195037300440082727643393094702049014565739123291039304203793114981299598705956975271680240851369907897294564126478414202141986206673199898148571559426315644961225577168303068861874418915884909131253468521959631196800562328737475786222125604570051746030204241114952371289609934511231319103752572155981602754229361847928270343322723071525701869391526233366845706221016989891863518489872045670478608833076751909767619521160121706133440429364980416074613654383297880861524064706799108079467008058073263633172513486772235758837271703424644997587225402328818753940780392049741652309611168089521904092026123894659900960230932619688301163173007982210643192926241479420271660673523674500301182058582891906245624001134231342026170859680307032979733536950204541330658450241388268597034357885858942221976974043895857785287457952011956892614786999814000854943167934929306828472088798389697818961487436917656219735722398073733092098907553187384633992017380571294713651052231583891217919778976125429293578589010851300146417269378235754636832843021207029306116628429900844411768061635426219535439869029183142908611209379770927781904976004713396738914316528898266059661016506044487532354338686110639444801257974211260990251039999819966821347619922642700133867340176299050529446561836444830227636324293544864684992202056533804959553189752207921368962111820481198651325076024500144614226609591726734420329453507047650200591057820745234325710362289582127341697837427551990270293860607588072437201435589346894645630205911806953509189625158943211111711167478422765182321023306704812233822185138977358519027696397442496527787089024094356469321331083515871442260212636102946704133124623825565684409469429484328533921326747083243942680518653425906817659178457873568773257792339734744627617010920846650132440985868310718895401319769226685300664671048977029662765544142269543192143424245855334631689059798979469018999574218936858299020301640246941189952922417268822448124372661493035983445829402359745593742809237515041043792907507380201500689591379702742886816336825551134904527903166815014715055775927405525606847674676814502758262868430851158286266437413972343483754595696431872282253973982636151691931883791734312818362319127887560706053423487404784323074463791159203893996611383754991613645711394495885010820924521772796590924674008833759155809202409060703171563219916356138559725730044140689057286962543523481021734890071619791294094016869538123828638834074719251197544828949588564019737679715585465359265427582605638794414296739483835577960646367489252977220210716361780241253264491334642498197418567393062738218013186653102921584476167503895446360504179034169320860678816547359070436800737570991963152080043282413056475213536444371657408463049576438439368262518470947197095505491288085923078102180307838707768510771783686860766579788651565721238978690568681224724332777819946902147139544315731684642022169073460296351119164486825049747402596256223195978787809423325648569037451953143149087661993225285361015828614579085801376923209510603917969915163207493276157769738341633036954702542630595640963987526291461230805054958958297942482034192092856200830433670978228126191961246484307349069551633141409634206084066182224300462864192397959532051362963568439442591942607372465300000006899443198592003481990509927308569522248235929939238913719780665826845989024701444523926805688741280880532507817375718366651106315187679498621644097298789997234841719101624181193200641305336512654917950359262126085249117997814531301109470539700712641380511508054591117223663843350987104896522158545682179506899536951100449108963582799379660709248230691004942030809422677379099723242985151234393173839369841995444767343837011052645464828790926130576883415393260707279420822344498386286884495531976433434726986302242824482662292301842220735512211333227030038049842253038522446391713559674717579937887157269803067174960909971567429576441007747624033706884441025822277551792268052372509458218665039919730605458479917922503485363166653279378673156907617099560697438438701849882406620041167672609374700032788060448067260847093023923645529305843001301841473895200005152009469768198997038554327883414358918868442927388603279851119882318235067381548801177836241156398646122259755346709909935304797020784074295296118819640030490616047616343367935446670987332294005814702180312812828748383064426074516291711404344725049577216688608285186305512126395722106181570310015356411242484040674599466614512470676979526810710804393180820256349604539820265655678333530148299185646295493643496021907743400650029305984444093410772998556611793767388600520985912932193149048049774265683602812430459747979969214475314932957337682669631498422157108006842092268942999532081395608013992862025702826206731840205776141631179441866383265950870515544375432747955739101850603947516455250218272060401676692222524211268375514551076006585992169095192274002274347525911592412309399194231361530833093447763229804986451439738339925740001521694133751266513943192613263097875597618512113098240307644472214699995384601585097589352097876229705041193926962586619967015281276236040064405025594254143347205121415039316574149644335261521471339999773022274707751225135409672334110698255194159379986039369827241260778609827438352013308187679266304250220182208050337866010897019672600714302624940982921989833351703637236528916557669247546152790989975145931270212099938644316955991918176152440008501038642609156978484735395407888371290206067262651129168019537705365284857293841907531214370346384416993659702751850005691454588091244727721308278629587483825240810979819895078014647799183573886397356887422818678692124705153309433095040900081512502845227627325079404222396118733551140346167077286921572305812457485684117867162952032461725141306248092284944963467361972987672209425933744131969482146969274713182024726780360577171121874204913140943298836539531401317519178521047818598783916380269937220148530481504405917196675002970259700953426782259562780396651059367441073040366751233938696249449399294714023850482225638344115868722965701080564276555632452058102265517140929975900355398681914153115436061919923830433881916583549945363891414288744724449676228052593141238712693183127438438819799978208645287465428300385103922931671549716446605606973499583502522280931176953285134245285738899231937604652819506015252865960874481363272449534319899732995771147194835210852073132375454586447994951731985349258731012205587918019964392016283551841976822720140562142490316156455215935376664526059471375461274334867889662028196943747074671968213201350779845354752653050346704157835016561194442253869657291432241917671449721548216319621257163951885690448529674657478963960635673687268671361694509222574188602081928809781512224472850254182274481985060679828143075103367081354431675741030078480059117907276181443547113259023699387520887831684928101031004580250930085242352176260828606745247920335298687505315812107522732111144942751283034828150938081159020940306668328930054642916124327226414165987025674806240837112502235506594021903273021105442682901703556085969632983192021580865505552633544783132284155074118666563115322971801135699430949352829992423207204828017031364954468517919136342227711901585052088499546541001342943823212449522351040019153446319028232283539373258624228099528385181971294405703770405112746397062039069683219577372490494694999190316259292684914160663166248969369137661745246020141148795161050497907100180976905380621367322708872445844763717000313784921882204890908754552192371684430975258220329535420075777619113938026092915674808723576138611481641093870344475580273129892837864280221350418712517610356198055750646591172673956810129047629714372485269709449808698590183680203157133856320336107936303804228600182404325930359940631360948112996338689589965349701383678158316914654353590637985922217763775982754864680187672123874329632167679018626812429012367415661415651430349770295939636813363403022773888883335507587545148339694563537790939309434766837232094290847132730337001521907272922644596262654598896817671353215131374237626358039946829950773380589606827644428695617751489960180076661326078094825054684094235075124874943013047164330068726031654545051117487928246550548669673650016769395939985992839781247741653276595679283146832025050683890864262357221356738509629927634077763435750909577759009545072294168199520812039930027045734056477232569188056774762388674783031710220703605256707917304359492447934043826382793167199901410996604397123829909500839106193861227856022379094976034224605508689596290868283682110707795162423694052641316791993074557359467234781216773250086152777419035798691630648375348560237469925394869217941333093935721931233095720013008162605023075214619586029149674988998947632150551030356147689540854211628132714830045759610826899620006017947632020223359987227901885230754402797700574772189880006230510697801408255058454542698399540455689312203273049382046700194151706433949223965793766270229494278156874076682112771104117742632325743465196485429854153681367467996615535262368092931029139877916572513872063406268100190470204630042548359733073821712362278535662390570409442367424646855175705868609129938263732308336496661379342401991622264258203206532794845359046174245818706211834336055899727291929233370625246768162268629792742149000107679878505847257701055811100794450044232758582747483769706269391434448055507481795715508199071415428011843882666243134870130924940223141116319477703482129841349469645227681598332685568052917570023894694249319649848479511078256459984992624753171146273925915227807677715186693051885219085202850355155720333047003398158560657712870669503757609913462599465413926591851511398488404598761219561991948445453037070104518600125406875763924386647230570537377427308139342253645070319653572860190348472865715412511825343555625377166161575856440048423368592284900516036143892545885595289113476701300812298307960615632105186355772679722937727999897051675010259541688000432314409084407501285730610240556040797644635278089508225901202403169584316376176146657660944936091836226839357029272909499472332741810630956772660473629258199650483362615902343783592951173061896809695725121290139830572881524464680283493545664453120708854966152941430949425861867952363536257791472077908902322039147889314016799582422725691758423652384296315679481472662653948634716652515863201150085947702430299538968631334900183734308517726738395960972684768989773745050660359262000193031089195396274125353245712110787056154682694361632781339928907454453368914645002158618579852387361024751521733815985821211294026283506097715008342450718114678486604057584575945777574341429532913562841902155784217720028530497435680303817748091276170031944025250463598006532231571836466030864406439654308210187084161000615497026568428815489415477805510149752017889334354011084438703996780549475666481945053577629057333823835920191017269991139893946251523417778113574932248771221312036253746551689156634641159768945164875290861609164869209563082051537330328594607355479948089764541710750346984091315987333173892542748645125222097980727196384799494256869651158673927646588558620389365638177734252333874245347622646243824227168172951957709999061409967148480809549244168188843377703659815057174818075682858414486959291137755330425635789971504687676633411355148660774333907490121769327428047855036472008861852716651992915277866570290010611547961093989993959871705267873645495872664375559160705784066845732184957281076994642440377612894218367170178677519401361349888026753398644590041395949634177283151644643456555760702286917841503989426340753979839591407626952552066081474434624468499545797110031425449457222321797597062603659154957400680076269922473240574655227479623555398707283153686204905678809769462240934023190287218901284964743019146600959213401398524201666021043214132044291178678572074340089455520214395365077926938721547920764861953096901582693313799928113669244215590647725649871764118689609048874803173446264169807024678406074450185879766942011723191694942471664729618906426676438712851757014094203350673853124196098417738748025009205206752394613116376396469942011711530569153819417978110893787168627153523356217262941672358164318841504417104478180875192614686146757190534692226983651582767931385321618076433907983529330940478715046510370193668499617385522674929180335999365899247761067019545060824654681357150119645432575816837625205809363398492763322769599740650650260460128042252226157361164194305372450824842673154055231391927020579088150882905833371471473101556361050633930286199662157905237220925690722229268919534685319808074801590247378412950016175805640201686160117591077788294615555736656509161866500249999162439344259872045789163563802868869080157617122980950875577008429153702514735337048395453589311657809854452195669814708232745424600902557203769851862658382808506258647850804987581460662993795087901216192680533243284861088406793363154234939389812854220186147366632982955643244133300104820697560372280292535499806001965535783961592890663024960388103087028986821303485501394184599605796599941261729937627228302124692320279988116719169557296432942124572241897728459581022128713948328413979235040626136366277162804246797422759173526999873806268137266736967316564947296002757754427147046149922271930984603562827217446084491191743907345862935979390149932172647551829450601469744556174084472981439402931793831203585207997145471982684715798577898732301804979435592937268238850130672119230891302610123673793294401403466497742980444678544796378623940630804858252816305581103051454994175504901361090044687884798092256884916690764082787815775722516180495794904843031030194167002986758858590136022734803582712170176892263013413139998280721095625304518665599173015348576138907136287516875338637057302171925041579364628259433892733947437031837884193201262367081834628292977618237590833646076520665605476480639223883432136606089900022992759188566953145262906852861482380528188652063956492621197292919648152126129679802905761664080444499161314054811119006030357583220259105078102230170092834088737007839059103115569059884461388844327032154009708530819615913666627390089180945805598803448122063770101580802906924258442860204306668712972261188839140268445768069172415739494853225179623609831365923561954401494076387423817054829224261635590204752403883440847491981464432040206169139011004027077988046104495785971392548698623167307907547734408908030311619197637349856090361104336563386496666371480866666324624346692647622539882394526046507273781144392673904999518541916819134437958851614315587459728670630672426599225552777809413522089421511527149620102418527786166855194957029844984678016810849584147072741273417797647859468140564476301325458809706216525857522941940160122544259673829499540979112084779218646881288529028309927035091156953979231202437003321295496404074053686175210003886756036229044587158461456447979707954972453341477185864734330682977007416204888032964055105969700424544125220749757368761018201497429362744264822971394413276614807606732745532841958814446322557266572771159371426401462713511511976574545479961622848084265569349349006914443497402101224099480072246669015227218488646337823848877410968486893829454893556637789168507025927451565381074563979128139387811582441591957365182665728506063770392554969296001156575415911725687771558308530345190662962985553675174122687227970490180655271136754109432453982282236330040995015808907896739005352811432156655877749410948594763941216623361636678517875569240399719086482914228428898505260848980063484412928346568007757530334196603308392704015090401055607341414097738869754331209789846892903400286284847339637224390546159376177234944981209185744361820011527345376790905703888047758842216259762433343634178623244371672548402212371288700999372370884653138893782743549403431104290134052624356350912492968921209599103911254380698357170367225935077875121330285595214765500161922254546273936513107724780512316954075463669887588343759836718834440868617784107836238868778663151382109901676463700439465163188947328604125066071987056106051999484875661990366731027115740911816362825881079365126298440913960977334364130499397767343068540708220187061411934643398989097972395312021050016482807478302978366389660227032245224989850380773880610906585460729087848844382794340860611273960963101772357237672801100005546360650048646302138793685271090594965460556221250846389232076882930811538012185031201045137714608804708093005642785824172374622401402681862337581129235806802626876450415377028944731594197950526550384787313665914020320047956914841258958185196285245403458248231166824818073312364452656040653974569718037089317516723662519747984449837665806571801892111148976750309156326885847456798832724700137415101170694715176354130930748082006725476444170707122345585722968413499460276940868175499436063430409121219630775315839978946079798052945112990272246383219045907918675347686440609458264359931244245929410967990784441937481711997475679559165692370400421953681508459738923403852515905047161099992094546379557633410491409403569215168915707412248987253366284096698837352560856080380975610711110028235303029452293730366165851429128280828644104248381391749244677352856046542994775163599397230004951991165141274279993248664433381979182716846230424977884895746298344568154239059848579757333811462715511778455994096418616680135708419503790062617623975120874757810385233033282172644172302501408857939705350583489520642578977254424868964834436660362027834099619359511698666970363918803396401600772514553162603133307924449788761976699784376261877328672935465571162095266618782445445691121400428650325189802278684380512660540809427279864722997022225659058317244289258747846309932275043263972033892775706640338237662270168264652482157533883348673723879301343780194041594382873515012059771137156842138425016549214775039521925318452773608085939804475099614167281448105810249840848752773391342605072206450495691074489618607572120594819852901286400999219654065928875997097338570349123086604756979228530761027868663578105704414972478997814538160675952191583340832764805721374781421886742128249248915648326258070881752914138379193798120160186959779034681743873967888686699722375404041572281370653284799378210240175308395460870287175640572367105214896843663000449951488935774046922477278418683992858546682116117167915118088037731963967177184526730102682650622416023743447995819686672989159625440088101879360720202116950643749819103962693873583841632163679958530097291803444475121331666975336081358632077637545774790122767337970060389644132352676602357562957889052993347032404667060424307058426386887343420941260662492048572857976749966252813567291206110608482309171767198830736394661862936673082344221678973653355062445645838926932739489473723113925753019242744531234425484207990564703662438655404280617402516907794808770150861194585751110628099663349841300030719002571614682491724553574266681840845093514625079193713580550083479283652186087459701060603376995955685010091591712024711215443646058242777720845375025780939434513477659792743142546048540215191894078014262435833816582010285116182259532019632475712143309317959300371612014289026021186190332112959491823802711026688571175049938828637688802810176400010915315556326542785880515204085551547084250454305605089680701054864980261033930166122362042923151125993662934746318326995434030031792108228337546754567820641911568900439887282247238461250251552749069603827729831886402928180601849095447850255392464188702259739627185951703699397562726081355031371897968268123607213787538899977428019485993148573721804681073955655991426224142212315341125218287362131907927354817429340043740611578984388320807135156732142705607303941318982602097738676096150708051189025027263224205315190493369270933053808322713806947298465217744429723163345522771650701552010299426214478388568848174848829496038239114519147581292020358208523796807239533627740011835428568257103553803286746555531344804779290746743619069176778921965471157221711407790993701919522062286972736785424362564229009043354745485899859371512566183771026807531166188075460388164847854930604511693709998949682724913095440140136176958635721122566031411083436173278545382653031072906129825232794433843364828099985516074300415347680536977852383810855014753889383957091674243467748513687277054243459375445840137654171837649822754041462993307329798181186628550978643109557983278106527526277322320130071702985837054023393123419598689895092184064517459879781493640927901647073496865705057963993713043360947192423784172368540560970651650575097899705147146310832147883524941180221160728635183052666113339896854893875021811295698746858467711104133473764017711127304292094597838811355365454873074508957844400977309081905234658327370178761809578867187003607969577328491321461050737352139030461278018634826819434263806248759525899619589158724183772797893590122937963400993633341520349749466227545070418801216244647660530724670024297532506058096263782514111946075544020825859022875359386287772418402635887495987757754390807529031987142540642286303718015255969855458331487184708474898836556932792000508250127132108932187999970348660140302549541715413480468308801573233574992129470436827345729541468256210130607878709300591008696353658119223454105820820682960857247411537293797131470440652400100280410211866714361757887089174433204293227729145766938714450747663944695517893248928015758235006540797582459146696392450412018285095889741689771291577563487072150940398029672654428433138342682464564209235837690875483636744475255106276323321148239966757045066529618711787017564376252840029762499793035607218998319164087515073314929915761728391919932381619928637983705625619588877040688388608464369848045121759976951126172984798503982200842427363134718004911689970507346210902474512071262981477490343901930462593087807257590655630451145030764811913448377549778386682144768948555217583108912276601259864844538563961385539325373146790149107513220213510833886944060869504207502172781360708769126868309967753565789835324782821424310115188207169373681106644405565123899848484534120383655895798099507057977156889898937053073885993771990650886444767763945400169480577192503304673207496176393040071598546460303142371667463140118179147200442981539410628824686680404470080924116569530565601495496461672826851408174701687087459173719173235397477759487376109718653203462875939860265650246494107478034967489420207931947575444139156676550927130133224664907649906288745271630347612868303341410493993429556195478485578492757717251793070934598631355704901688751125098036362865724397833835237452386133604069728643623938196179451656164111590089089389064517585148281040984135538368467713445417954461878243547872260641778306190241648141769755482206708797004550036931578498625071655384378632741959405002212780857707372520523031106341654351937988162818860252939944589198220296166011434875742978159292435560669861244008710568545287240895648950212702122031443473781390474189806032305952841219209876245859694801550673186852934090457447128116232938968363902193983879935095393833346140801895254232326031866732773967777466551674243365164414471518339130235359750062893703296537023793623928114257840736592496145422653174642419048214792581298433580429721795294290963011756901646179130339231056636003097343096505077117198675076479195899214450608492386030302159225017365074991455808725869021065052594827764829382536650200701547197467353775658894995038785725224226921484832449247490402611153208856777332524490329770625097124684442144051927553809177362695175217987362318331876307789930594248831867338318299666339839516158851811450986261480318621360940389745383737362649411773638201645488977562988993686422107240005935899240525820565722002191234740629528897167002734222926045190861783762970806725143381943822327148619256562367594033227929041726134261748902543131581931279264792453378350907648576658855321720923354189668982485826989821682992671939089901877829715379073269933365492971842688009150277095175975766845103859095035553046803227388836498812261140904728778267134910732174205752763561758550990431569758397477557831387656783682582067293135580640755154116354144905979611182440746922291246912984201197325786050635792316202586136541730169925179129180482525389151674459829653805536894013687523089468772737620310526088131378829456808964156918610645838541001702821212869667857468588009033328178216990254361871668646222784413499176479862373771099691485666731854472093414656288183634465769394328761389261248907489521548257143683168418370336100111774147672901867701427709601615695705998668889005176930224635480687886533075211969763905894316197178492437368489600885537914962019858598106138415255833115027064090488162869900687149715029643500008068016351375812785205863202665609586996013684544344344930796550083191266151242360502397438743782316369511834785945913223528977052443586623265732226977220122107980373007807475437280686378102442652856373838503819663096579597042820307374388610137117360785088743348380008544101567076927309868461652730498679657502457360661604672741522767476136942242735625608677761822695677664427049042379087118571981359405908080865404289565341367552138149957765814144353061024173310062236631499580092035589683847560077995226471236014697865801908286847626818333399041283800515528770329375852713182401058262198625270217682931410111775281921615833998801880016742657263381672082170504103922684977053943380269459704678522628584355194819931638393486916801165143620409297042418044881422390053270257681150149924228985708999729433809335717530078460155527830167193326078689465895549558322542522481350420619940398428682378665232823830326205087615085736536390707579066119866597604187307199106823744491534538168660409101896738315688430006249255417232442256904353662274853562663537825177531297231769180486834794418127093480819587451974397488043295945182784543799431470980198188419365074827830677312311665427943216059584309417199878718720499368515752746654534298521459812578546926867663789656279534743999311431982910005122257526457157911952322848137217170942926167575391736293652994327258285160179924552397817443534032847473439331653599602368194566089618604192992989816437677778831471995185840592069068181400192345686934414596056385935585129630128885106083141234815110569710339256068603870633216430866471454660669762746611887809977055636774605069870488530733150161497768309141129363570674529169223321736722539708170221353144240072009862062224128333236424297497649095764164026686087633923546157814696276004674109712340556532892059132943612494575033135417653728813066611380181036977911299286198529584803952501038181424694478078712023767657497634874244172375698681461759127848375892266162298190235374230232659979052427559664915787317470187229930161039002815998062934216585684851940106747563688580334840307809052134865853307782036407515407149302738696920150956109366674926910333044799629083017320993496647912909001910373336010291163013927846736234351285175025373508382653064646569917277457200897452570599516682734668563568654300024375002957721930456185187961034615138410953593242076110604075389100703991228341075664287146088317938089033655812134784452264250696921419068719948325439133130404240032207830395503611219269081130212439797259798064344361578148985354237539022413313570399927363753854331770274380272872727529454781971137629363532426569884673476297705223978546736028748718354103693528676799247342682202283087532496811358070715018354117803650326059010235704632878071205023403930392971117604917225523330831436228769974694590012590127852323430517117050518549968811475927497778326355833963868867256930028748441524219711235592516521904002405063679834014447500052741716608729533945312783012320376649787450338050708264657490897665549202728328349013171457923513603313842832724705455070919897960314213153837658976472252026052744047791295495915511007575312080057282902771207218292307319688397178765337498714142278677248678272891666096233215415636995298697285686733667079499072539788951509913544954062435327345221314122305607878311121718560356753986931561766048054458656205906520112635906142526933146091626387680747365278721523111417036570053594658386220846223291087635543994368093138377310936770291713952956754584497350570503430361021670253806039386727522245599007934156833984000112307412676653649595994338050869068834687007807473960745292048381674256947292146681831859214206661766513774054455487060263445808931164716989917900017262916851572816398002046076495068430963943661029272886960145889751988086950227428647194788255586143479609925510208677023873742586717398638289795910322584266028154404271475383560641469638214849783824579258327185436787576623099033970463773088296983330841689975438170862336473802926806828444605770129478984710179842308816170176441258837816489591514564558438013793475061415063252656123466618326513363382763202854230435834543946958670062166833675896687748556341954481821787198070481229551381953989128267332505959162605070471329388226227464708925962759569724690806606879559897301202609981347503770629721532770511950029568661116736058360271217710934826805088130948978547895747319000020928224000688470786194469781208584402968866067085020993425091219510977588353438566124815351894181039266685803262596494072347558723824644856040278309114203117094694639817383737352545402695597788135307760409468292086637287624573110520204394153024188105015362730395301958828826558152037860585542543512237691675754593732754830090672645531250373776341976592779722166533358298194670392318461532843496588454687141231065376359370500784624081051072303220845861172984449143049433005931466254940160879736032401127485002663294319031513067296193460918434686515156630290415544766959050645103147682623432393305309081038148875572693808636216058110192659263913091738474103637242587161572102250499429177667590052379391622778214420568685843397084076367881571242710930083777431094541373426104118904666398546491481485228714891020508918232038098963215820265991804428626232047716580574877862888450594476106669381909357199727685336724551745220921156942661474031707094481256460704354277761984349359841291911952227307191626407130036125268309775486502517613673092755753512341791194492913238262963156397311440918107579477402537902547165783021759661043531472743826916275708784012316796279735745441613313478193059664808485521081420995820045494979708118919388706618776190890060512728638774102908240648948895256999329134852155672632912180485492429522252916385708904203689513843519388740282706592619480595552828182991988192096923561156211454198446814232672314745229208044505726828409679714881583669383039592148110963934265265558413696728899916698743302627475739243083306612505941693907691444405143352439543315320124027758035296368278823482720922674367424416897291380515561279377982763083796199340473015055460372828490867793474013468488829771894913269784145859241275806857174767031003353481530849580227718930437667553643293991121718889544174681087812228759243792561104878020305833127679350929055749300161958436404228735425556718073480356287325890811087302091547356790299328342802102850710741106154825614911214237515062958031180387740652353573700823677739784461260568403980905090573210793036717592301909723059993991060271549740125459296022415901817620612490111814675681385950835729218230548516321604091835650516373069678231214213991009037033716470032676849796266729339582234874686393464492785075512249510776751509095217908566761338558927989809344487313494514589394486008716030455389076618899227730516405207915693627247071354991730912520923363285138195800696777257025152025525190278045800840944838572881603979683300452424062904138785585380588770303753598769229196300181925976477700581107053351659496903543578507493826819073656207609910377512650152171023066555194318043977621961260295952953573409856932241211228677867026213866860352487079804388464740829452308688147217666975108221885534128036715039146514357311860493794691698334549786654836610151565248889224616254206881852935525921407976246984868813125073319163040604840739640734116652522094656568646119590752194107099195578906723487367300162605882249084719323567615226940218915486124820022422284183047875191365938331542435431067492197310938193754866177491572652521319251980135824086734993947387250873653188700294727023225815233613474635018822429944711335528960407590617609467827289401952315349946683824209094464183529714109934174348415440616015028093448690781549964189716046294805255634830366853512070745279436686527178562858013149668608625467893130396605976408120977050379142729499290764846416244633959362218198059222931452508026170263377784609350702471286824293486633216294665517670202674317320554131685574151325832410455478740742099587096295069631942644184298011334787614210362987069762554777082674915690960994240748350388416332602683255625657827839309057764002834360827313861837939632898311720378122867996359987373722202485078828223121457080461258181997324425570891147660757636698053984106805548879834058133218574379408765817912807429516118787946474476309064131572062740224313890084197429507740788337697388790428980954307030468849452137473597232634912783801693988704690645543714692003506078911498269180451450833957156911587413654272470791470077205870860412236625926632288904527384742984096996650427578263562370058069452185559670485852159148652041484651672194308449589519170202820460950660661272924014905261064142869671806189255394686836229316461918867759349458906279796380604650852578157669780383519151907360624101769707117939922823507816419497778750525387828198146893494727636629184335384529089988783345707512402777973721887303789013285672731137810480484530392071615897559456941325485058310398451421832829809652767320322460479455542913282166918044730151389096227775141189603459767806506071274757073804247395410942520365613567960857027487750992499546530502066416378141976394493400328825233436823275473710230405301741168343089003824903836782575568286713909688407573919086646299306547199302107619337140612116761158456157947794249460941826904779670214304876123381487138584402743421476781321472964432861745195608711976142484805326547984095430325038749589429401135448903979696981872010732296928793516389611690565569375904122865908643294275514339588733849664794520198366480104975075058867057033291904468438750540943772807928829664909359351360132182936044282208053729458974162257510076780858185149303930061634522328161230802828629450113768106467605865364745186149416260606568666949567727085047701550744519773670826349128100927928058686609601020172932167283316093086944861805414868413592019757848363534962648926748685978166281757990850892445917942303951488622914232536393104513618372422820531281853546151050123063209186163043560138357572938532602595187773180381057361607777263861577229376728332923846317634473427500845722395163975505063300984983385293485163276252194342211392355514899149203790332371909909908144139364613968281662108252403138357718976313663112050860820826749751527991424743095270480726256640703962191793114173322675644603972008882869813315981430568827179349575444639468099277022214186355694559353362183338038139100129443670787423397374680652838263666228102636651210469523709192552747969023049416876876142489801086196297410282030513826305553349555138354828527089125980694729097205260869689210037184573823654653930438242821921937004203946306356453394994039444932328890442479723322916619239454989509420977985318365773650559735041849233089181970600421599342257429052827319907876903628982807466983345259095784102844742352210309153051789748197250897882639177262927720453045682104362491491554912266992797020309026530271705906171073359320796631374002035966387378636230059059330620675909511138613586397732798939651701290248411716690150997411361336166208492122179736077589954756289238829116140066804143278599121667757829828956629445755903705903030512079685612631558040208182148185526666722426881029489410580834315790263496497833036643932078505285142921171181877435263825963115425225847700193261580356864600210596692036112700483252427844096917066060247407993959946501731728642541854840995568526119621883639203442069477969221898741989925893448449653144569193431558772555710736163426358151467192223706346795315406826011007594841841994918708987857346472873853431734767526889325380044001951311172418690413025454226012117139184588321524037755212183814948285147680993781940667584564795886015920537891791773910765551710235282716838361470577640006134720447475408391891037261609280286435593803106731685133199205992249386684653581254769823667253798125484549517354611818471825505089755649041107957127058969227534910932924656041433839272805736711294458673775913682936655208211038867762111551537021638390698953156425351998502601959851565097553830670266531235628450799794691565303441532286755574792629449027352414347560448324613193773437811045177863387209998841000388466373863398487667378653562400534573696919972041424734612321798333509735125792547623309427241242665282524014190055260078227301535963855968094604958562651797202708977169755149672075814736221738037629549452367321524122683797518786415229369662339069069090448743280955276024511085421590114993225875982170255489110915563964508426063543226495235814142394267884739491619043354593918243341327788550476564479638384544377857923112160571124357373218935415837082135982666036376068410341403008778877151084787903056356966749635850763812005345265523490123726651503445983121027909933209228532103587875250809530281477979308890788039446355823473189644801521958859541370651697808602668039146049311614999178374728463695169112439110630806418048725160263123059147579602719189193661248877254189158928274296371910229051578643574799559518613957871708495770504561197287490017466006046826666638249386196822580762102090081335684546084860097490519886609461083494887723955581190302590324931811446130518024371730145355336962937312324386627933683004490312570297237918579754289587875915985025372334327756625229776571020422029040025004582828266132451566820879520753206904618142937415992490285178955846734590652736309743474311476765256383003235306165210174665430491277691308583365072590047959728714758638739972384820662152261989056182631693580726996567214936456545713546739093844744719002939865172298819643012102128355318266069866049890032494327252125950378062863309101761240183290890532362950822662290244059862679549369195805653605381896442055479943718342576629219837129889072761898983318236860985216594400370552180960746300588208863192303472845429614830076324203991124888293704682528086618883492011598813965375374583752678081023431218155592524893387633144831284409375098492513458919828134865902185607610366955884108834154898826311201890955405912868530512753617927500294852365398856457806052761265042470818141499951994858917047438151535134538877923044827704835031155381436819981243754468479806060958832593582933057931974001473241537084764956475509983855061257929893956645961311234525659874513702456323341866790498566783725846460144497153106840527390948112847611593966022367004308813861102725396321471907591112385968740858924658892994819358619211178347070723452555080537582885584918425555690067937397185502883414230800574270226176416440526911898709470324064773652199801181482597270498593135141039057179077314353542467530729496887574058110416773559552778894229797523873468792774836161360573947137057267222167715527380771462325888968550754095715876582506839948125642607520505165803354267328541670138513097905882000434735756575097041494357180356089739382498485828604104918190440402085069414449706782979336597516728986791001375234727018079707859075004030135899801316793411937697167895786598285780541983277131916027255078478688663266425252440111192546716847332325200383039534461982806500254815068923691213841354087380618234742531965671896598124564865417713065811754632403918871132950535653408417684221765432979622453062271245868323886429252785572678194862799064855053110686422728911705731826817576960675519069338790042347762155185879150719893146182690988397734590616346780185568287405101116814591210264972489081775587397214010340661650562424950979833001381979646676401319042560141660853416143275266465117306236757001596779068179733751277060306332288287914505086890108410522159623437762683148713982499093100559430994321162887649424900414569728592953352181303076633554209611195896341968735609266589536670234799997891713209479028006729385143052275308489061159089281303872292427567321965334219156181131337759462031164989653942501411508634235519875687892367496532558428902839923260793083684223096499361277042770871113687740172274255825000402830547587119726089816917496720574768731283515653920459504850240526144065230667106404349492671301926568104969197963409611036220115017848560797168438621079158412091395438104605323265391944577107773477276210111404683163477501227258688585209254579525846629652035584239087471306693379652463583904235576675970787564491292750775218827073930885556845995026677736283603021808673500947749518537911944910217979097349026437998713934945157231839115149308609113603083119500339625136464558559788456058911519911020600160493597869863110779421848288878181851253604475873164630849551643847639106502025518410679769700191133907458940995267818104659967893362425169567314723433187765375606741630743594466919885845989013244912079167155445250767187137638180278456383739628805367303968324209951038844130197084782417350686367421491509940751973575484583108884368961112866736210331911348273040696611890221544308650914024124489922332287464130976426271392516152429628450999770145329475204055339491772916130795062608639418967444730936145269414787091225119800063416902707249422278480562983457710795702163869102555443679590612829022088582857986236705052009416523908012171657664199832537453569003420437260559460693881730716390838097612338510991230849920438315967363443999593050933745869443854450315155545023812756531251196353836723204218952549024460033135020130173919259312070929800563085818651854535525648423672898653543720184988037514053433411357304792733864046213299805114631878072598457787421635064751944502517897117806374105262217349165865644347619262132799284823800175504448528412102489022913734438770913713034082683280422735653120511953415299358394985767565913828289106155701938365227082173782475448039515155041775410540716419363096664904395240516560641411872033674210254146132852529493035917597460932457244886683930587329122651747356687573700050443722368537973528867576088343640478303801287325324489088360511427762165036661658076278762487430006652865038424796881402666278585248759229612666974497081492331913704586995041913762164582863042033224397353374737202149668377105067155166230261108511298718694651954497422057434861610469840018828145807921949690546966889685705420295499434340513476449289254578557417523995469765918732504731211209482309689276335804280459284630644774706153866791121158760524921283553330886947459660801246467008474138601706790977236027877431015995547582957607677343302178761494462863554665135547989718720953848797162889193101607393392163077553624540128339920798275000202898894221205185642365583082945461676309162641788486406621646993002103976222634716770706154019384117707299342881179801138241979780811832584173472745645416843061313435248429046325782853033035743962910987751039429995891292880626680325877193526141569019463496821810537630937972493889896392000115001663869446774955300199889694975586625571589157408620818052449494571051768489274421113637316559709705180846151946350834678106817846119624190895029041038405804913167758749414375051196253864355660500140681743073846871892887390797495991758312166517455909294709624868962475437920069689159518393451193317233095537947085829506374378894909611063800164612600410581251813271962115091080877933540377996018049949120913883625301431057354804314438455929188349331897561364739402945663464131625504302005378578274444512601064022658621684197852815509833017023343752589219335238458244417023954128837500758397637779261631102900764530013978997640801178186888490547324503057409187141996865225053667144090386200751356296463432272420697036128901926387551184649660599994998961415110047057157942369446840568259417042048934375028576340607654233744621699730436133260909788997110902356981465153079742831819334004589640717920781536202127067093264573617692468256465931625917745160579803159011671497923074597044489752768704720929287011935904997104632541293347456912699860993041933860441541591361841548829252191827162647560465153891638097756954906964303935453856028499153967764691543506169307881314335655955822264990233421719877506323545673370758490479838642383342991916698831904487371002846910531848929812681332914555874657679166422297370588712285593895974290906187653536700417547905098784048150236845529363132758673430374034999395504245783788376659827190461356322811170540397278911155993428087725892040964191808786200563887007095311733646320117548435287087496517142656436793690530665300422030240736900674594014069195397727080552288521410607087343310166174451928652267028918151997033537493208835884992746017838385454238886516035952867619657589302624364864133901307272046910612787661723389625455384296588993512749570088415322276358019176074945780558850953281755397747608200323100602198088769566328549649852495909888908616425008814249697377224274835630165392122673642535858846746482211113796802752122915200690563824251863576102553916830711715946012720609109816737811673184204179166835865380877888220563142488775676897106665446723001836566152004693117114311589676607510219208824987138094855295638384235551057837645596262804354228176133191813370410560591932341597755316989065835913010267051071969132013305633534854194329229428794050908189551613071817369602232843207741826474592666454111948515497943135276222308696866315592455424400760694566013726429343109345340354662718244984913079309760427727501915282389548325451681820897604596681060858048065365642840742811400031999948497399223341275231993320484935249171298608429431185244865473920306033555949834164822890907682376427620062146587261982453790797151067439308771839719026193838234581319166142229888188058661272562608149679954545713462314893429199661537150209863286382452790790146441095812462844705106649896426331087876421180126468730393783981384516512430863466902704527447517963901983148003162848316330811432330532743672060366389681781922376904738260154258386442648694736106678949534913967544696768326334690830956098491462882338927534954319065074992576748892305889260392574138514442557791316626046961013816531288551405797056094017466068142268753746663627324355553899618616928292190479837590144147142531028073558719515658225798077843488842409927958296990368939842048623957591229752430195520228785777060916687867334828515128649390153041219236164147690752850525666395220903982217496799930334887265297016507392695156892620085001874479502967915113923192682411821029623811538827747866671802372477151956133580956709487724874461538786339080771130447262254973652302289730635349819312626412355454504105742030572588588939391308270783615044510479598822638271449949041591975321022930196664909661269661438522083829992772675931343053695487731326069178265823849604448453486862561086428698647979577201958153831288122794062911391608378682627565241106227051038073981897195686166266454845676782862863400779792868710305588942314350656145174036257396786682940105573144975473929534726820956813986129536421101361352685502022412156651355267546548934811774602038032617096516026172503036646405405695608352141476494070618535563744275567208517898689541795561777595893956183723760721873515184436855874438362380089723538574927774992281990627241131918487299350960676264379582788839054731898037248966302001452910853428963037975647029424749730546117593939593484329740941490110991316539761385211948750976379570643293489811206769255489817238079025921159932378043120346651522716719150411703361438234799640771799761474828083685502089676780706352320179970861443117723890686727520427125825875192938702312125210005445375147752148160341558902453524045727300721632146343973433799854624191873822049541403537148068293526080815774339349070237971745370284730449372416876942249985973131017201064522120793290962952767880135044626550517508555341664149437067768828492826513017431802051687854536237424783049645363222490956734346182347897636830811601362146572954625048566405175170887866866994435798808974861337414894949671715235086272159046579591910481781881385836183305574652848705425814244717087556509262039782094102999248600265662067903996636848582785392409658114895105982153002932590286256038057287823854774282188680488305095814682088775940545800368985166025844660976712493982115450452596728620878942531688361712806657398238503452726985470321466526131495554942018586152709936496252429314878779306513203019912155961980900214630638225093160354109014081996213424897061143710529051572611919394701611975729347020370728075865833653484723937723788612853664510949681390926919590642967132070522726487317917952127033280760281851635209906759907329290741293831995732338218856353937633417276759588409082787421750791536878382553877552526843045270392539292362082865573731424677242113335699172208238768237928165603539341870663278449035952318469655330908220946238632627914590379374377757108454501220646815948106714634394773836063264728355003324187659439318861069886263564964891597005871255528832509362456705975413375631190075479575544824071719718201966795641973597029835316347654445831819250712558376794308539691674468528814208866140288051918335529289363070803965883159141838093816070670224972729256331123875033534862776173653602789693167102283844699996135931376591215812622140443313936540976987518328137906414864721303753921608597089073475242241430968890720860273395356352871872302246983265935033765396137201135275951005791240755800092485228159825174111467086634549255980493687586209068768017748693705741999097169798081492319716674498911931311892199724657222987577236376829050613345402085865239502478095718972389396930505297031693369356677244497341788050022022845500378771316861006342904164892150364092287539400272540272473209969248843089732936679386450295403727857525247063280058999578814742319857286980628638896950865972914208923004513494135710472876478035841803731707103842948160515453182581112582417738579805641456317914609155807535498503129325170793257941279318974919956142339045401690108547572273997426114691594752478304593775467999511895828914431166107760997104056734764857900442501738550083457353410292598059632940765084883875484485102473034584686758636285215094648912956120025472461962675290908984671950530825234061846157182723980362285340996563400045469146282836837191105223014781745285701973728488873538824221152995787249153060810219052168963614506271721103085382207055010711247039457756617949722308080214344713959857225932269343276638524640505406308963215842861399097347327761928765493063394237334598675674167695075428872612437456044548537384296456552899703804682633181638722624172850307889586400720252206465129810048120706009316964167635714820689136947570544573243557744975095446407200077695804116629966039851926928724834960085460418163651172254143835244734736377368170076553025420567172514375649616304585331426120001632644812853371725335919782599969586765200113554975609265270246649433747131711278758049249946140627691384241988164592563844710056324153480970012301601879462647058250186220535400413660594174544652584890620376378551874977007085041967176993622210812976222175286183202880927018444495557045556127259479979108614978538156132729892378852747768851047687427805682393604617429825400631144359139108147073327020188731029481743923015909227893868100306832153322818867583027358053837372465966510862050635229774164871095374366333074194909710255959319334743191513763701095229108886994246539063243108924598614820767565182969717756584182741895691300292208584007548945340840590196481950328054328102900586557137435203122960734068196753462506694478998774913215796981927863646372428177016171338882623017347552629580580054398244008938389850505645771641172632650283682572651486692851915903120304431787242358473362860220377108986264999824369770823932465351181435521235846419836632188534123244618068291220710918609005228155037598868886423071249541814689914898373381979562787811654111612619940870133673859930885056804186810281312818559709065425784362362813281925735556916803337694972985174722061990774292257730290233989727909196825234118574041566486241302296058563676342475868904181637973310096854144460517581418764186688760579863079879014644637581111332158334546444638892687029469981096945374699073245409298438697327721755297100520915037422145970049008363153824002931983097184191950404991866551974674316023808938172325487414019329767437613007958765119836617277921879224491439992031480659953080392516538121985292413958034454120679568094420396284068259252855629165885341433220371074374302690565560149250863470755241822406241356323239870275783663340526534775262796367414660864271865888792269710037875743155840612455032268342085712626858860540758480787865458072277389115166219112351087352402571654639505552106899087649098028353844050756266301312581729916686616203794847148249371956706535506344701213855800005113717389370918490985499727933636386235582777277115556713889640528640565857202698345034253986027157235540886906102025697931330653472539132225971921205246793575589205392236253973926748360386254040161890297835705908051365285019457508875404817569278761006308175966418801502533021752892678532456303547441111529001054864654899348529620247027749464798519495257607458100759168051543998244020162405743170708245524943857969884829507684909152996765361291938925414464434426921246935502815206917224292845685291863906230501038449731798496405264775469383209330820360593563082211071878825591095746142012602020551529423922094334040026862304181424952668693392354545445806918129510269462166721918083194842654549473143682280903756996630932805729652415558268545732714321307486902025124396256974322598253291403162150380906694959355392807572721827960643568144879017100704771050228727077608506873106243392115356969303873326715044791601434354365588447872221971447598536855065413934584330994064185046160587268720683427101933498636391149584883292444945428852076526904636827201821603046494842023895391224954196654710829782613321962308808524228973002495058264824110195463323357776204146859275385689150577664300713746582307780046116015766164185504590287474364165206623779760656637069925541774812441255714512377020772729487473465053527773295886817351605503669009266958246346696530819508759284772251759327039384915811808753047647440649089993692752146585875222332373446598176748357373019835214098810055459473018586797416598074184318406057642689918608557647780699271811920907799829381532780965907586731386975033245347177935739243981827720773584489282609872682983980887389637292389425595392824678064809740355577138826720731026668685843838541005599089079178350163223170798977130240173396096931466898596680525947745886882559915633252379128164370126126954914504287795191776221336931845249037906786187945974610937016645201424339179767975919835934862582320941736141875966420234787785624652085042299114041947542669438708202483301324009861798816561701951418174152503215508728236846428348536206153010331071924084505328281334481060919924951978773306735190590418822880188421878451759620112642580048895560320960357175197342285087788647570962009137364104405141324302126660879969337828950644197747475356861702772623800485350127341692940636710432554617556905277673467975770553081902950816473745399979631772734573743637272750214240410522713326374027095729444517985998835722081059872081466701788808884945492663959412366235597892290001414410095991668892748035858495724841389623750393981615960332949406836439138800700874173682137248105534846869134148248355568264844379176736464692580918584717609266125390368971297167609710581357039229727849636601684847133730823120694333528787838544940266393567398598916560081995384006721309858291632062805931900657626125541180772124561447596303634146983612699379174418536790691037434850114118163899322778365607246646268474355609987549154793166689207382977515482613579336200831557954523094919500975827278943138116626547618933311503536369432419372532552825202923693988400133026400076833527713097834939315737670872114475954112146200966015344299274239165522126720964978827443042866983386165830224179951665230548697221681561661231567286701513564117744491116302663369068484808564458537878516266234594788303678153299128928239128002407989156370294212998068608305841043160799249816293529512748241769180522250905235481033579556245141464238549139301854231657123654027497372948451717702922355852268663153663733109182205687706556136225906321731364028303669333707168808578677961054272837791588833048498757171275852428996190308246949918592135218356652459646670880389524675747483787332879167121984158900786568119347245308036632911358994507749144220596650192809560875006122488796642305911496974714444145894868481867466383246222188578493833935504554508019639227302369588156838467175505972636466437783172890538234949116318011155680277045184628451074293454008916399886567173259475825942677054295660943828659463280252199709925161720892222882166655930559224698012991899398147161422567542493606940522385396233257140359043180552353078108820698860717583410293638848885402232713494185467445819233074500140917730359252232360881552246933497539400192865437308504380319311141279840324264879518535215623282504046376447419480860379664923121807224288723120385340272503234343220910010318647442062932102918730131345993979464724933819028981079234655330052282949132477509252682585021226318275836769124382550479692661992401452113388838477478801511853701359990640006278600018718232730293651535386781881070029657813147746515258533824430296206536983002225716307083447382937662590796590415977028379724409129175338148008012959130366818240970125063104288314266646655185245780948365516495033988064747528213927527599434875679234060148254677500280024879794298394843484195697861385839817355369223874041939247260604016296817810284539490184575766448848144547353398034256034481077912402045841216570895578065499930807690330899934335458259964878425860108639841351400292826475612661639123754947592365215688128192770843352784448511422424225351305497171350130220818770964652136721703447041049843727810991395496218425154553334541147580371499925582204233011648250537489568330382444814760023383157412408884113288258622493304759753872846735608047777151023951641288669495309352580623620023409072423474312743769265816527570884947725517462496592901913171209707422005607912289752582196374095143236108461827303770650373674293959795421440993637525284732779298175420341951720462264719436938447419698323167220660272734798404041640194938156724914273975013288037240606959882420942187375559805781830246678828835898005511221406903986167735074243481163627667944278700384071020451192987093271741708766373951539417297764986679074831343124365109821108737500864318479414222508840882341523353605718591944587980540037166098512205731648333103209985956771261146516252916311241315232682447063585810437340332352219216862512279558525224486176328451804155169949926234832711856124534936691188217631441029466712037833795386237240461428714249674398064119971219324482195918172750293297601292435861869190557408902816220003311255000251380171399333269455954707970569647580290585469537257761761774114039483522623925273435661372247415794362065256585184780952800439520729377993205585925440710732454907244209500115638409621412821546310419273303171973358560889365470221305108389044193561947579137283042207958620933175352105374982343751777105733104267696455992748246796925241758555700844228271348555526117298548253492725080185887729556636861601555248488018737385528733570346978378843067472547564738725369064117241479292425271329394111070994907806737328455527152042435740506744507188378625371399919662087183309978988317239735438289081422941240907910468811531022389236747407519446750668918696582857751203529845293486446110412986490952368914620190567955671704032360968763393799623263752278220956863548670879797715738636906165576495138758163979582037279281243803366849574629546078031005408846459770338402746230337382250686470835514576996210266243286912236975062057341540813012285177606562287177518169824642465425593906747283738092885783996958433325859684832255695905609449972524852060198000753526624464655669010191279548103898111082623085331668085075370435270176137919940933036770821222531043422665612625541168072718947634453976101831435511934637474239907188866698682328897377102805857324881503609185863147118851095153059242216675160914997174683027656600962928774689570629189503774751650461002376114524620919083378905489846901689565290384856877725264457859057018682601966402618690449579786938867867117682989900566990297077683099354783299584795084641151754987559503835808334214165501273657075853556529302887799230079143504783816687374238734995808385055532958094058242205227777623488873629760761016955128406603112539524792716996887215622702843422930608024424096250958478461993777192050000898093485176585585211537710294630247236867935295087148962817720494607695352916470740999132533400153751316773780216004377759062527858413664947241716206220955267851991521703879789222356303756171206340917741278642532167032016862019205563732960465438113986720926235265768152960871793774758496631887153875226675167912347969515764213967981860316797526946556538885729727866935135806874955175031329017203958346803962463899398529913651051142852054902622832789873222383538656003128178989023163297336640407343851668558864561748850169051639401624820378361321503760103708997736721203294045487991458738433262820105210350267902306600583435829521096259060420878842435400050684725882761093606345628252417670390406135253075736986634186417329936653366891445912629217475846890416695423618718295305810406854752574538761749081808434380597858211447583397678544092624792110829216825207466651074341869686426838866066318174090906360518170599578471524789152958602650369086382570522863710796349516823187214128688284400554750362382358013166319670577222532817816656320195663171415916266730320636076782144093696377497040832010687050435434302492121926356796583863970369211040732232072912404866512554634916859216961092218413561986866366401186115001872180502300360671284275519331791225166787357016387872607810594199995515150770581496332449113476922372526260511153225306981200897114600525429102389153339634506173654969261276290967291803766047111222624737439655161718382800843624462945641802067123267262229335003076428521557225873018812622101660172609289153180772298795338003037750296937991864218094482366199887917194208507740437782003586966719241095317886087402739329292846671250325231747800134447122466809363923962471942693257579977530240335228404473403301152914791338480371555679327558543606947836663806356427188915014940636325664710530292441103633225643060251456809927864521842343041020818729251662178996293998751595420473057895996303346276427468331172857455541211567866784201688053388751460209950196433148300379602222245645861786261871121706614004244081790856906363790035009162883511451919189987096756874175232049745168388760781432746360980903627520287198402954855482057232452210482186868029257197007314050070712180575503299264506071484029487428525854728829112231794757385744631832234831883920599155640726796639844304920609310257558696207176003626636197373393997892389268620134109275287443243564711356707388917984213993785498994742521120766872639126957109236222224813727654237773959241256282657673509069916538144610567740923477276823808135044368365890539715584874074140664815467266450880414973600557797381637565432786333187050477114687109302946557937516547871924267302059516383980267986471881322979162324537721363530114522699715694465270344328088224369365335821801955912573400270230020224742554222207469629518318384819451159354747630116691406144259086350646520237469674646496939061670531008807530796091671728098339301698935469390749923496509141540267896951396433935349769188100226143501837028214218969790451621870982050360193625593221925930585226203133753081275685545630428759398001894705434152221699610490868461721903713391441276742955872517579059542075543702151141927993927489877801182746752277113629056927718354479316780454512761300589817550363626527695334292457031612873678723565960002814167482391406567113902257089920613375566629176963902230498193322805390348148817865707977134402316997078399455672335619358651655448965801669777783672073136076736984079492795502475971933285920780222987329296348570373064215829384753123045485884627532823375098085317700619678793636397615134433240704713825629035429757839867677693710410291499606364072834039664345801404216024895482942451865156733052423272298962404241368753538068678021032071981196575516628352043372129653882099854001421066973677325146793040418427998058423507388008096473571826067265877666935760489884763784495783637750314439936262851535730557994948076975902605998412847572608394874324039984383531856123222588407499352900014007663070473816664092593550180343812050005222808507531661734344641558286084798093155807539207917702467034325287850552870343483962704176623700230246666098918653167511757787573400307704797106098438087949264085108683525731372428649863627890133360741614087738576973247317912780628843184167197606633418507194132319373436152679577960760040778127907747666584477948158841381659779329640905094275285882206023837922743466509715326403569849421890435131214740999739269042563104868339275588917494060969503627713968358091731139049555965254850684741750955371986576201428024290218005272149046922191116567372611174129203497425707569217006962436487127858408975216318300614190851410742326726437464850504256973801104070723765151654827014854704655741959895588511610172570943655748838616978701519454992236300501724022305975553950128956623794029113713361836673914161398407748686021338904560471263328353874166498235874041028729289946060643243117660284577504276462650439603424702194914110737307774338130266159902511516130158996906663161969815907074964603002484218504969324003393483366412851736802244841815654746565931614379883501380935369228059901742909923134930112637285996395241689113129391823198599770772920082414116675166182898420320686140669016314583852175696225733531770084603340360753446912033062173211393137340622034790843653078481486784731100982796529527318568521328200976779403205018540029383154273829993646455369756099315372455728459470691103454075353283692023881587447350363179540516613815380230612238707391617799881514609359789539655354208643415767617318955757776534680085874017072127223693796019786533578327974347210126333847761562278993773578371378916815313259785202914126571734492725827843024228972314822548954167650975156522814127102902420724083963317271812905167010372768839120721549302870568584966223160086206269567193680005804086292769645938340675548017446594787668102099543800981068379412694474416152129341305806448580587024543936822323067100987264892616331289201785436709287500604186112967186940295642467494429462983999923494800360260632085619455931480677176251966639774802042532164372531594646341645751871121534249268758196806547681323949970715854931491774787540096982824488789247541139072435560104474067448558690486570206314820953662871456615278003355862259120998156556223255389585625989063126291249188218152862973273321630274283822356873926619722876116247242327110855368686696192730646644885809292983806621057697566800609707658286784363631569886549251825986855766152766944122103346646837116720018043128940195672245026772285153795205788397583107760497407035546472454613095198122798847112492852694767675431779664841677349093045081275814919237600984613832825676756836635109388611096193266609109619799626115786935267885719589305626848019273410440976568292279476777428683814558347440302377451295801238958804289693032338562892083745839531194055188168841501696559565801350178159307283097742481420021266977453974912544111273730693271675458428037379574400163479619992811784836499379405818823942276180421528549921368711309298965859194064834724057094344379917379511336030258525052506189873358695488243486725476581872213821115131750326188318912262890355858527446078977150575876183618700540308998373805448199288167881137349864077226530642954983181379126886429575408231076326177967300807317192020582901490111392326260911983225695227040867980308438881255975166386993507632301819508459531705401228289172736552699752074131983172946375780062345020922298784202051104054003058399403389886436089759440647514070579412783625717344477866395184201930167272815893171729408772506550957554441481536756049871869173393238364326178111503901810563845166733963882729558746174024905023256179766593744786983172353113791182188321065962779053993334227300317196056721927050761420895731763352828418374840490379960491500489441061901548739760701902258988651661923170202310811087136032315975409168215389108140250285384657601313690436508054987097743863314997625402428181937792304413265788365137502365163865492045609481545250385648745186478956405081476551115132882272097535058616848345289214399683796722449305746676691903376086720261924589186825598481092565117030975121994578797713449798613335123011799859396120113380219512445811703629835808063368233101583986567975080127429593526451428000413703161760832449317992999487795583095078935091127889816592411124094455080900185931778361852749838881841690237814285878731318818198766662455903314867306378035385649769189467693493570794429374242441332894303524866387265721752285189486525945096170623332580457613059427670868503215730790362380129871557438725851636517523718740880075508502016814868957787602268171733183464047455082416385746603480543780449697226833414339004858910447195478908337049847342624807375975746258012609744414799085709863793414164943824384330526279500257156674917493004710852130370898752374802467570326034816840534512860264180086857289247566947295009328281106938651273834495302909132936203759419417823851005909718211506030686124224077463055798254203438300625707772013083359856721976093478614784187651766836791886844381789293166462741120614814029409546028318302999443133363831509725656586129683696155082484334555078221942154474770732502530976395489755780463579315628362392393321466090080663024338481184485068610373415815665557709708591560879540238831988777031237141070370761744091723032741144757756423325998432851263406780870625635895703875459547958481869723346039673793348321082022057224487125339004689628004859457654993724088396077178706992347131385376150045937030398958129307778803299761813031859730645797800464155018509916109533441375770318602966607943456048337367629905616051151506112475095095620028183423865191141494250008114762715831377856039206461227780148216741988695365736167589837244860155432267133714864478430671538482595799238542796461996765432619049991922251609890764796417225771760130741566743920585538191461779609771507725139736368867562004563925748177711126759309380154086587977494293120579206140131911232036259986160013768945604833572349638959411134490767232882083033861033280490560536852791370275585038179196886065208762935718791410782588488141554569124649010917716994403006382594661663295963962391504635636197582415661207213688577198563991602510963570590900244037905262662227939681657285964649892456447888585353816319410567196236829594473637366737067761454815011220686468375443966226025354046316914285249901965809943191745749405348590631801328036625593898372932084576115817769617258571158766715775290901567300405724037502593838484544350905616835457522588657202784512474932804482261309839509436239336059636609365329490298270159462906895744203462250719342643630318624352967394982065497616037769863514199892768870530246813389976480212982881926493663761475436726755184417098853092763131488025754941243382148651866010295779079706764154992460654613085295446458776132185142033199338609048960674867801287368441755125220683340252827737819909007777855892440070634183700560543233213974628514163514828530160107865215600983121053517476461219099878202830019401838717926347031017735597352167552422457830225252059705477138871249591622422698326516706481447140755075172004507480683169540802331602274980409654697050563274171100063500708804174487144789774726552438961736896813338403257722820092549167095118339460819177848620434569714215562204192054899409482773658978945769617829749186931371101179733586950260841472640769061604559908050696894322116094256502143353252296713762872437839431635373695373517511231926374620296414462044539581990705972416260054828449700575578436716712368340643330352646215724009343240100884574395923473805202595906265666316603856208494829293672967664415671132806018460843934963302604386822723062410178436136300527165858065965837968698699404427821441507079965654025950675853586296068395697163355077516350931310201275632978353511829948420022661990489571715848775697519523049787497043743624763950346336711023800270773469950555353967012649343273565815604945423758548691987631302325143731971740364282476997442040335647176552859160303515367160945086817350116649030906344275253652253911135752295277411663808540152083448315743121155136282970625422282188928618238066162883598471657362578846669912597846078685975891602768973728012761961122053241174055354998821492530072242607449587798223893783865323385515863021945908524141446766468453963999410832523817267148258748838079628929960691889505894271311336162363918998252967992059656885666327492932549088702687212018181567394569200332893045042119140738668476020919496831709489164764013423060143679009434611715715659830375559148347215781074342101790216194493819295947983265506609195054293793004350994616045605136966332658301697139551070671017214215987226758346334716617432167685641143404046269307472283281973836520164123289451190470585369357161557608839872095513229237257374543110186964021001225956553519809808348261409268482903418477989325146509694740248103589453600253905986387524470610113159302345309095373559587877793597444975837074890138096802339731139026367416893235212469322283592079768487704691018194118498042793872051727127869086108618056633734853470249188363484102962429179790996849663258398593064267829314130472147321809385036616865179236574690907681989720425679685405185870368047363433540471798309111136504608874218576801262726262205770500178932884187221096390258426761053022119693800579018158113246403820420881638638697952138163020880410037829660562307123132104948571682062359046535778777067521439605584115300427553417805948196358517478755899587148913022426855780346126618835773004739030574490718984062569752669933768151706538083864529371259688188794432005554081984256702949792628334770458026102726993854884117175556759742573476921016580772565629491358107589720364542823549388899759576985089498537446093250317291333777665231884846207364499772791737636096648860481454351443003492494467751691138956791990900296535913092974764360079612979693837025050307989839417096737042745415354440877873175172579078022210390205909491807693927158156190847078444273240462054607074864657633327377547939675993443820524780240705573858714611618396471722776492606913734022655275555598148576166717489265212518843693483059032168609408863787582628732250635947470995513122189478150133632627123824023109321300328377308930366173757689601099765445801317094920330037700575250564700161187056371992509989790898919476610804978318066459641179013215134352001185219984633122823183194333554415285904995551348102933247895594310229797970247048529462292045545960210733363913903276604746756516134120155676022152899055703709928984546523523044287164155165161533787718841954271861250133434854937669070096901060777279955358577329343991192592190355893479758873303759217808868640641837838108919620384633324826357848923760804140474403294023259742603551885773748684450785523710831912857391432446211273816085202233722946084310942144163413125214934486099736478847071065954991369192314296152691201933856023119180142247457809349205859816514970965711376937434336431873749493429934588659156830350730341872530029082520776601690109784386795257301613009509537040174380329822956964331813591725375996745187518350397156735768410634270712071926343588218018312350676103391202659918431983006761331516929320947139155020711901240328810981279659954312052968706065414896009992886293191905426891120554707269223248604209694879247269128996361977498731089415464200042915414965271271456695461917054292890802468086052019959576175015055527902822264808619516737892633254849468254411077172285481004691957799742407789277984392172337452069532201806180048966215762638104759785401527598129329908633711986487628132141023670987252773165203919969949519732609034811148394768227028196339152975684931688749749420635122416236264798496242735996579040579249465206802939269482388664513105381958364091328006086753670014771518643611919748584023625369154491892523306722779777593045558506962474231542137972077800745665468424580088811786848158238355988820996027048906561711454314887237652330960211607948689810331866761075172519880194396841106296241924644647137411410889314250110685503579395800477668560502451641509538490779556315084111810051799076106793481060768558446366619606593308435576976717722235515054273223316666843558219379087545592439360363400828815818411788575507465297417010288637617973465385424781955671225931242550983379275149086430325894817154994001189624125299231495642562747506129686379567085904778941372798366946595186357168597064413940701337790885442526761686947208073540152607530788019818205642154420926135955339196078648171211416834271945856777242035749831902317442057358546037034839365589467655085908470034289350780913433057216597924648590267334405000461062815321579851088940812522657188563064908426704261408222619479528783869179905718285476714194896706946921930764362664561899470833245178161118559266646032852140182487007670500231566793138665611108488956078857544610371699658343502282404832033278878444673354195076807728269081966302171879041225219975873284843674515909716786034349422067348475568104614132574468803601005994184516908745943709199775164752475979110928188724007548668616051964465136239439442591991294620682172211281155356865544138765015887605437953527303378797951931035622249724882548245106780426221397728916552429191367384956153523543029974741100788820159392490916720296362381978181342983154216331842761556021530072099645227417109510094805119512533931780488104683662716408382059514806217978673160304529014869938923626826176893722709025329148700752461393873275893787804360112527001936182713894133585766683560337050879733300429121200542217539428534254596982550990486893756851377523564491516364095725327066206281242237795435583837346937106653297866771447895545967178509765566981075991155972250754764507583058913984597838671447233485602367632950938027591590114435418746964472132239004473094389074175278669409394510984037949896018991967064776197930135655819358239544491211074441646285425775484323079974031938893001103195171077300848685895289004401402702461677625306828549373528710098086953480560344985456895560024320466917081766161740412959538208234378383372210905176047527188698105725757466031576139485011628564522461480861752341855436265830617592113365654516802007370071905458084819814597686602388921332388986350130737130896777578141004822308258014490810069613689168687557489864875748870912881067144211095525768135267548983187968950001337516631332795036770427217121298835091434859676350790914900000623801361648334951267224549889587274209159193513940730428637501326567331142693087603085237820684644794192508318305789954992947456039813983711503872694364548612169687788019287066689860658569599252958762432148378701508610338261215559666003367935154271028656884349761303092648910492503575263735422314763396325045823171426184615644117566341241416141374748205518998545251216656566311450245132048797129214522487734903528647199338979249634258752710679973686400130730390875571276583384040306797305585284059967099845398564586564882974934125799790198792307707846993802531427286555823281457666554817810575716284916959466229914654808529335756090883044521923778125659143635486479008212907295050395767102883388179139502759574844245323282142127648167642912259193074578881370220769085691393484133908875618042176436747896263533594682515210915190982849146436118242459500446761971917914419563543697174000330413692351756448514112724578691628851614285566807336750077407568063256054600821205968436861788280994417014074492250800188081968895097796134620898795320490054023500589577671450726050169095536579425673077563548333957279312456380675396791200939821802175906792396467102188990046619446338419511923326524881655699264819772109068842146119170908177180817727113995129634285728899711237051120331932735106597953187557164288937481534220754125449177025685513213015081620272394757624480409938508765367435284364488556638144223066648135492432332647864434850547481849473813006492270675375673629364270352890970477197636291972952759769154678851034484895589015819183452517692462376493365490053765090036824014289312465453549775887215532179358947069596805728204875208890936724518950405839292942746804133847177698443648823959199624058369462038536519197033674290587110407613826517349008274335040322784786065699152121371267075305453352370515382788500907097800203460726076359206276811942971136583154131369965090505802992204504568729166732836509422026147268730921919595547351326837323666254510275567500669558892924678195155209714647997850935588706101470525393965106301558732521689563279505941774918127540930201476652952587161562495181079548669201356076324959999304411915089053694553936168832129951599789874676792888508863779854519460937211653341627373160890942306141746017959151869350048214210391156467439638022137399263202914293811020152071445236716429151257592083996947872908339258308046000614270617777886068587912843446176058340005518823634177968446694710910268836435963976974344200375372507810798307032610192872325257612996734430447492172484269652396506827166960581113136407566529360627502350032794309738588539241735027537564499111364267290428394570503859526712040100958825076006552556048331556957092875383825573284401272984572067588812322346241566439877189137353572776638458358106592639081293425977784835923387275378271822371136234226284476027496735386023086970268447610138211981664875838827772147091628151531990522692366733327479197118509245735952456378137976429600932969843696779664550692614112433461765861860525847212244473312258837650212931916981199416007361692355525091075491959919152696991507500034430776565391448563344880719716980417032164305641373925565658702733498574542621937019465409361155447374256321822080045423827805140851583971857186212601576068748475523606543965126485158015345537609078788592215064340033456737903655685154383215032806252477769317020943837105893010399613308582890373317361193992612485272578435376452473187015687072549968679950804905833891156106690622644487012616084316022400375943929562020104771067035747241584813294331367654159731945558969026455912210567027377385869916839386551932052976879170451160405887362867768963753678345148782511087527589328629492597843294165759479400881338056637052857506715987762740132003205846553273561596607321137692813778317044813172604538458827662763856987449236230090168960756239455036294590731085664151679724799933619593372114377291845854485393001901349034671617814894862215998533383162302692919984835245042512946054101960694732539138920836449133280682152158708943326306365452584675368115744565484833114253192454259393255338936870629940454706845164100688771960562457656865318466634949040400961406440722164283838778277376124305443805277204083811984903344146119534753665854270176546465168961728026345295279061565963796266454549231790672367771323051243187709769552292370263409139175944089607535804631445946296812231093936923625881581906839251349326002636317950002360374247204256700153851648633280982109697762682024508644468493849730081908630753285967659778623085549928468041903957302542527439693215666084734899120384559005238724649694174025026142362790510787233273261852178966934054717821499364976078824966081230066603665894367572470606663247549913223317865993740074908156180835272793146451571521813341838761098736388727136709426460125603321781249221010138532385087671910129371684031261603769714431813189858202212316667074124338899848250046451497434388453455119234588699203868579098199495880505540647652550078760037592273347286227690564331780502545947445144306902744345228426020736353086006404982232258719818672905771916867028095931405561562824029089241186429716916199754502824015101176920895810333129279949756211650720460937275776023843054200837200877064727314113682706488911519699463437574277709594319645042373477784187400915522333999010772207267691602623435022110129629687454791071066679251122141319415192283923350435450196094097665673412862974450050498162790485026304116340586608577185174438567988354854973464555918734486321827230384014620486153678860774170058594340175197890825240861818334756581360369626609746816372542524647403700106999123997371972805254799269573677002300482212738333169255506772746926799517926583985877429028406958700126761541831725096409381260760204108901446603910983520025040886443083355153070334052066188230129302566822180704401687538287817749301193090040165775973615389868667727702960575369650066195625559427156085055676377996959758792155740151265553661057870317478330152001693510806614459924260308617135903730191357502168944596190075231703440912239896845247680833973065962816129512345718526328584851144429299573368699873294669480952510929188187798036403572510649340953109728343482787549682901784717222009083575024243077426039934601446614846760372767766816488105383911158074294947184607193322448419406980741368177565906644194495619094163789950974624293784777176389683914987571718760529083047039004458540505562977393587988052149420713287032656842462555885651699164634492640022995451574331298631098091233904640608648991133935289978715014620139588911430633318604626214592940538074760649968883733245488073050573518988743878978048281124601908869113180688152226363769155074741234943897128019356752480732673123132639785077162579221184791274215842307365900992279087892384602628362421943298020030738267357538470723405957633347706638558670010491985283213887812410883910008701351373792677039751061037697880287460825439669337840045008243254430396337546483568553164808133626480858576318537249210331664378689180833799083390686030778771764831038111222221823382732946079666103599245088812732265389460745800143899253065509514904693860697700654816771911387200107773892521525748691734648794262244016029417631657518801458885659229637648496850883718972451929248243336404431017059648372090705422165206822268610670191346268574610931462729446445871136793346105357992995256581349523127626860844513797629417718668022786091402502530064459353753344597155506739707814795894972154550909553075064233471820479811019595893322471769284054238895603454191083587456023819478220961959729927775682685505657488637297198583460166879291882186992887061829254560719800519901962109787619491249854531686439305884948102828270781259560549312226468254455814513559223144433314410546384337706738186351870445628228435446401930379141363247658405440737348065314873244691859249765426880527243732250356839173842144881328228865817684333377863531993126409550154286793929368836646030803478599215878535172721204394934935657910042770564715410443300511394620712812715613913161957467205730603611949290135548054960461030146851907541724237460481511711982040149159149307739645866917486147519844912987837564607151709828893449825212242014344360706148785523405070561355934386036100570580983636094943343254161593915085459237666998510946490599716440587676962333810823108672928464552815478434076869844805416010713155801110159782112426498514179683621015809594388438855610141309987867190889526075145910058469763517547228541973265189108858547417843576832664399382537366126995238041440432468146711175353331465065631709649467706691756203216508046553380024306520906597003670809287360209604685515060817514439646372551189016589091907702331175145177787017160809322455181090567017512703328441265040784931675615982180980484209351133488191802869109214908198223498085191676301580315932851422732395612849563850208811331141821897635119239342485151963468828632009550144461705119766593718566255606560736116253147942996215251682616848059261887678226711157844517621380568785670279778882253314342772848884123278350566571373800198488954545863949023880523464729900589918979878479947105937287372785959002821981764071478655499287209647819111234157912150703539401670319035436417425344780409328425892970527092961055117320898478192980367884657248360717736905176984281284496557383301792881598741908318222341963612505118366385496517138767881873735460916968311233006727594050804048614876120402060946624781594848878797331858174011713049855227926708553722474373268288235163912695139453233863596796415952559542548862306266960688448358652440183301167080875781356670156608591621908584868790453803860783274577797316214296064633686949899332425944216200817203050085867080844515090070613338572314337037662663447532553351459267228223859024224739387630637202261392719285658906786771645266542049158350627894984036513316564755373698272447240892072978187274185068202226032523648605367101632569305933555700684161184089285919689533466338369519565437438869118947836453784184890295980023917492077042682101709347867412832476536892783026310097450885435916851716576803853018227860374330235398439521590615742954613991520351424298468127975129337432796188207979577618163069206214811645646955856247255087179894450084604718449979663348418223311589254684588403973200428745421456184215017784005292257269984989766657196735018901453131180196859641603835123400869486903702375926512328208483360110781926834011047116387743944951961978767118651773632268318533452981076857466590591279993591692559334065606907505000367449021629197234340555075757863630117269253024666991075690139177590401348070746341978682895770381064299808275763995830428694576531165820609170876562764665841404147109458773792953787620820268185936082375030793531350430371172896582170808034313287223007078748617830898214553704835163077527203349152993764872630232697528966481178865257123333895677441789093362205387522798442646792737581649000630191765719716533183996194683572629594664908578307551178263176231763303445203805926099275780936039939680619129415333500663648547596620114014150692210495481587958245515517295405812100327877137822580460134362924599565452885675558080057519654650998928945220964497153067461842769609956215306765698200954088950299209787328482630960198900463874254189234392656611698391732118181609145752871877283960288513882513668437079997474075063390696662442277476753394250619657418507310327443129008225576473329405048449004912369536022518329392408738599416126991196814154941196344571683451352401968082873083472630219300295290262609668738436700144529065232549006278462745392000470577013220956166104562156414231358987902524171500067362272899704730531858295110217541754479171460289912826580695487800786547067940104492352893741676762897171582872228611121748517964140843249088657229851345198377380556415032282063838171972623845553985937629217869093017824599667919979733689986656277186751726170615212254627428157375211361365587505583564049376362427734898713739532915142884327443409547562637725633106751832307773146768303335606397732199682548835732023151629426180806062466703626802958635314279393197901563871429005876799332591844067167820291372962187478846611600806672528430891110090298311310529956537906981906806380331815551121177061605784792343405521575520818689665405256859712905310670375448390404899080418565492729555134289545656907202699728751729378703554933935701388939118362561740650415164650370180140360626496006365359740146477525681981504809051040626152905359925113783229795762119408566316512988423930190230495886770054465462073845552643633056467049114947606215409741075014044042894046884221236472959705106855587020219131744469232824238376676791099300932519011529290326534798745828805505244097922291767638898600199105976600374399382053660699167155786252144282227545303725298811010464069928558359622008018176867500160969602723325489259824959571931789389125992760220474599686009822468977308649857040387957479389246283199247555402032028609301753271098168678134463053079483538260697633937060095615488128007655023095810213033771680707116110082568035791006466020754386958232269943064704046258372664244227107926777042235186143758221817965696378722112294075561530720120580323387890944062732996287695927500653570742595278566266731670919760242302788276178443232280328507443716266635052274296376598789450216424853571878670881010130226136977433368623829485343447198194629581779670672594367656743824092594029784425450734581618152769180334538361818775851252767090572708053955857005102176190598007812759691396759860221049751476629139586624116984402519509868503911966065230269278720443641394364325451343146823007046228293622019271341106524172001262206237652019816740484396427133025227986803779563514596373857671048755136161118407789275011841965856956710254820886268938296181168624295683834643194210315083159479261136914882918090913390348227250810685177651021444453542648517946117004971216480699844682208041681938543386528143726271002502210653031412323751132654615792932356057744314073890819600877828865818666048142931177249115735155499724174886007805138379444283168416466170257588619292418588872832611205912092361352544520526010475448146169183658182268022427045417451718088817868577562518343063100615068431538160922832083215982194963073148819547177644933016077540156902321838925603673091584905160005546200663805578055549763771302322514603635287589665931823544789343717686808070641525646236980877935538959774419398590442696160531390517073979525406706752214718681049936392319932459446770960627086099379409967103127766968354706389401596566105766793849824523754551592125572265730855622095590899390736446567799755966366215661245261345657282747996494261027006755085263474296839030727743452707065700803819049103848911626355615684336949276319394901408767890302223575023556295612142523734433436180593183013168790190128991118128076895968968900206745699654653000761498382464857606889401114356609713229933747955729543440460118438314808313123127953660321164093027692909850723818209116057736270100689025113953145140046354663426422594999165865616193874801385723420399567220647162565037618404601131041695111680707861092805080592488579210953818849367565396832963002056038314137376376510460646048673748212524754746640196550201158471231260895411592774682378575080261914431733417055703837041517781428510036522270258864641603906672538651124506981067832952122520248497228600904696127121000636740258858555467582208038022243454713478162277775743597934596973037939890775238383262847374158429144805077847709197204647218595133120849623362203672236563905691318345076129183594080454665496952000446638642552348720780666248419185330434007796351832570455496082372026712736738461091355056678666756369246382664877347283667766864408707248968296187710722276919121091863655047312165317808070554455802881674221147936850655559391583063739587193738791030175647421650344581537101142234557322649473720820639470811492870927354281974190814043062562180532384087351930187311634641547475424109232465563929091807291184900776366765506744145941089301732678966825043567293054543101435774890096990865903204076345171854328149754401661210611273473240790797275629741361146101830728878768667288221319455917155949792894881392147615977196083769236073861555074158475552683748999595483116849950014007926233255077176466463672116623896160131442881240666269464766471092024384165899928797609755751811088673686603417496430635691722989550940850858403936239655737733047687758266993476185356971348587325180461995142780844167968710107954007332705146293644713881339128352728572712876826641119785188548030984448713518639397849346049044669226818331264292905525153529223536483394532930288079899027426838907440439847172194415218047736779512728948298013916238554164480924326142125891063907187569656920032672128165277309544666541110335697045132486124218998000827141854993684593948732296129322181701451200463933671568214071472578745034998437885561544596124607462209095591072732407071078879677351373465013510761044322116405385848653671995170823682190149399719021105864906178032816307229016454726798832407912390914090584546273953155354108113690221355216900408902449911788862314363299433372145889707789443890797409338615681791761447715938547233114700780273809098050959561085557778194272236228627530012038796754461035223025128445742406354628721044854705207841961859264814425913336737848481932220498810501873243660595071099472001536036497971085558481119570879344887312181203453112745151278318997427679177183612288737198457803966166994031207335146352276632893201392647686113468038165457413589975046221767601747283604442496389208873386300413379847779455758212831737892591090889759265429848176257467027432839161296850463040861949664635395939589738502785503580526510500232539809691931624836677105605389789387874722998452498656846553574252007490322408428586444843020865117605787854903687960379176948852933067869450837865637596637613043575486378061785506545101007953857294496913302562988185618842135257156493470926698244881532165213290911583345487674883885489568961823458379080290973360368920304335165382471861309447387327987742391267890972765534656835644116748383218933738626974925169993620066782351161811347255220825866031746943260637215034957790733393843272287348413085139349625956404415813076732875421874775231407581823402824082591653500673462749319454253102413056340287183980354108947244550374613708232038079921329035905304026516434596216577823291033523544504860128623581879563415590929762358065238852958091006495203717453161110382277878322815212644178930018938368363898906187963273180471684920303866476524990216937292127344744043081913192852190953084537907452478333803304762350494256830366188348879082111886168654028062026401937943234166973956221377428429261078796720873698000818870733346565054537152773781616811605619877420550124575984083199787078662779231187105062555114070635280336351594525069240927981661528416218022118937925486478937839254754494665153829931256812680604559417403932799765135212532698284294718475523358673980931172268388664113984923954283560523999883906907369469114337447287768563937173521048448549452492586787759414973180954265102768903798585748776637112105669934293594583592462235809835146913489519718208637961020927069099877559184322364437047483038891440612717361159381719098007171855701492670961938415726132681817280661914721556292368327903571474158430608768690373334201057252768379453530234505923138613183875485203742366911474736925724557115442302501329517157110164220822491671492536631515823520004982188355368229782264191282666297095142535292720598337818757651065053808247940669236799824171464898443429155603114018922928853601592002835879124763265107821201632336824882767867569402881273527533019212293270286491775532767968713504534675247806219816450884105948486305486466851799992430283730649212937639596765290615241142771414770490213354203479742227511775507527053450650914878230180785838267886819035761096463331815404387651130138665488682017498509341455441024383160271910766945186769752061867931929015534692929905695361093966948196991491187023434738830195155057278117196375461817801933008978779364216811953145581729568984440091592352782861174431712197739370579659524401712532516554488743243683718184926124321161136317493118026566063476814414967035373942218328715674331931328201000713001419217269462147907188757677112033118215342070589701679185613570270341532769938866219530365927014855437577651484354462761832618972655398444412104693931710739887340734482105480170018018530045773098034753059996787904033793342904428387473209120854578160890537935009391561308044237057388520928888495113370833783627965354745158930050547673907121148549307990495657621992327438184959760971881276435132195399999597741321308076255923490242162986908288267408166616486828062164232236298091292190329737195994389915484733773147140779424178501770685360840668991670355107369731050448283814415783028252447865751714500108274676862787236515820741275990139779486088860948048842469385753755996090654477477158083836293129233232356738436074454960984910112834783661513374961173327971313288490694538757979517285304703888452195255034933553720391270166673937613340965908099771569391981891076414042980202738046653141862282051973732725020739456524850161817359887868672780578758660303565259527458645157225466905459400807741097845915819468952648916510825569734869543827036586375748224018078104339071678206262350146255140654174393538220197277291998362322439476161398578311360819141644954395678619651614554098918545899632929316595744526400406498896398213920765195262864704545639776443890907623636669532343098201065649996990742664103611798494678434956668212743861815867584212826238175544516964619698752592984262872019031065502841653642873768656436848926143863587581417180932738453068937408078416771040087167366735396967008640741592767411633635759090858003124451863117334367488315058207193367488412146441677919301187026882285923746496063900371307128353467981628322596995700788986570359095060358277633278724140770036534101872566107791699246325566383728715514241802975281593005831404010682325649635062187882796890923047290632294303866079178017296039291502166299950930301256633628872847890865028756105791123240863627447154786425766399156603080332743976190957591893351888396005570538323558952638222786684898584554862110681534016688632912224174125905760549945265412176237474535066639189363771375034566554095484497278826766435160167113814985684021219039078394329991120716875882736400421560330722091812596657683977117929865739804880331606300127706734954935689102431839903868677418159776574295307888256432712016075257109663500207535137796056909656985229749219075009512974779957681327705017264948827309137679999942367312901417809194705604217446602949669663856097249661191379420207845259920390051665244629935653808112674675098087934667295395724636870273978645751777285256757237585610744651834848418453846144887099086165999062980836057836340985127363973667289331543461761346718026368414054601936746462393761699558061538295670865195249981339400542263219324701061704303391676353865364194815379872095775779704552793042945260578264102746884539648788921540848068548767889908008513013847466803014260349872166529821463812920272081452286745753310967875524749301063270862011520304950706650437431778185233677536588300346487873092920024574507954879849691651100283398817167842276107561663318440427253327574573964717605911385164340837126357490929431010445897687402105296918402715579374092193318469659001700885632089974624513960801700889882323194150098492781128164179391935269374328844399234980635452991680816061869679187523515992289709538713731393657971885429929696203448086830167827127683257248086808127819997078040866878988722210057457090657952555128642878693858680210711452116436948253824398790173645905534326371068844585180427196343393863818299449739444791949798708733091695891093778133549952578936121920265594349266025628905129368711054590225572925212116851129900905916952183279844650092276779683866003912717923030159705438552832632506801464634173683655202581978408870066089426770312966579907940304053572272348047831864612580663607143084915367137287690600025392119079315742750446571422524792915345073595548207208618201050047551510213968595142399261809106973225289701277670370257114208654871195159051870637379311426701923776831607242692125649811770919820203083116465084089800571674265735950026917897059840496833850622567196515189876637488620675354000485736690444714676808788136349364089875961213858886879813645691533944880387452916401394347062250931759668530526850627192446988049779060977518626004086799440337878279027829853817279491435667804133229034589539587970893212955269228675027067922776293212157738163824742410948855602456216937982558938957378051819212571852800856099970942796688315827497113270785998395775885264433381646805702478312495428498814325888681118234370938251820671756681294226852987534971995955978628852216310195531356773517135320313103354191844655607750710764494419083062566964694320403009344455545464834953188626193179259844626028946713240536030504812800732610989883237428175483677812274805133015249434851229366881001149225793153362200752242544346874728815142709281694597597960194809702655339669354657386229465468047551552016751582667313441914281650901002376034693350371155773295060919685930642139876201759872694519281053530998042503674646235949629934754083138439858044076221838925939335082773118726202902878714416169983394192968458971374725845869908106037451495505243683102725162571469793657380130831047712482320633644027976163875842473466827922721810810422853928727524385714564193753025516784454527221145130201751187628925619558470945334349424989106194722286861089849551399334159049096771053645436232149317517791557631800598316387566842215334724604275013354777473385920092996204092218227929015060633146993703901063147994883766026261080971945096679599996483409714170384149175146487713428230892136719151023875614336935078661436447188816039591077859844252108067694100077530378723749802060342393745896764430098922241149365851971415815707805946011157256079317190869416199882138287839759278529231897381930094704613579081664611269567893269584716446194510816062901461698965782316919008404552654873232514244414921010294779449156824152535949855822243653077950924550001815896369811214736544163866560650046630181410187289097448307217793315198697094148591173077357925317296347086072825400800574426182540221557665847996846948756757249861960979058748145319897657052729392319230358408181401428672691560676762232873313466115862337680952622635701903266777980463052835665470836552238242411743708471038946455212227737973213717456459087001179828266290821398659886114510059029146508817905214215476898735154867243463079564671206666862978470460617610001647501093244792024366308456749719853677491644128839475107441687635541181763462748483276935750752432300130297555685581940460818121988351463732062247411460956037470013772106909422862414017224990908720628901160374262309823350435881880316884824193482433697513328407762969261372617636419272838526737268388445128426417008096208852574583741075822161899583877003924655291923068825844271748439990562241757840209843683951778736059384231039972854681510913564047151160317037206048594864470911407400940762018604958029219479560736113860377521015017266967488437025540123571866233489968404753643068013364908750063813066888839397882356341246896914334050567942099256526054650948483704468910322238178939152251246316210679149267410923647780276403494387750242440872271850081261639372363012240806826402701118436947459911945510040772935203310252402996188872393816041871150157811889282951488052381594593843169785588892350802520291319534757994018356379309949173075482513304209983839569579233049310506741404054753870614071733259062815279107968642320929470131208674644280028243177266247833103500166850952355457582224908654657185644086441015623539858992708511048290744338769927222331727733604956675690408025496336628572757479987833771180039169643082353879955414254912040294088523925746779257630872183435163066382556522893218577213836649412596274970750522923010418485642360214690082883814273963668152030817731314640874492873415536201666888181222043064544508405954788546792561188962792696960537613814909184027340909350916694209095876279586958368764832770020184133299447073606546684163438450988509647592953574212726142366317823561553944810452229540092438574049882612780428891609945492913213955949269024846410291673445051506105007511939080700136147387049189787121942816458835861627936052263593609548788196080660997914085834763317266197808028698072506973453160871921190425357867093213219381795384494275420299413551519063414881053267845747625542487632747702219308313077542051669036075569918581136455871292038598106966803408895396385732294812322880638349257791200323929879327583802307216157746604527110883946693538906858804624058050545344509418900921352748675143671205353396463779314596336393345061301770212356838226734282705669668983803232465129102403654897561466503527547907389193640638616648684602835557367147649660123375642994076444482586549487550403814759344613351157210913627904006123599056548705945763384698302937691184574004057468605479344620839362883767762307094998948403827430410230565027178504081095594605369117707942512209363749149628205907172155684687223929682577950544042905909374369182325122876107019075180551329928857612149384550685786368914014090882709900717187424121527160278100178597818048859577677446316961358160342702844204042532060743143715653176155201505650757435180121663318582858659470498882652272428558859773300139724397863820668338127707516534822483282480461771349527306810475202395337083036520407755493105760455270941545637061760437781781089714097470438351050212074198495204605795626363565758120740388027147186409693287875192223473192063389097180586586393714650101200014616182376492415245330546108286502694298120547975973709033203860344994985263265543791177901447632212267536117923950098907875654644887311838725906352276249559264118860542722257783887369702971823964668724622329051139019269927009888188641721393018710240356663290852975774832717797898671505153897885176733277046509066010438427696921985387614297297776193846529033152097457214406792071332718103036859073468767344553767626570174622381351376665817082005482003248804747559715716085766599209371154841199538076413630686709492244612320247789441611740834197544444191910623937183539483517273873840484178239341237623722150547749558703953955402596230479212954772001360646079373136399415961951446684120608001100268851192496023150724526988572533359417685796684135328571661740046071533862102276239741365687829692029555597305311788001776745975933695318335953567067322608163903892779447092988182328633331189169556427660097648988416474583254967592009005896885272657074949210059104659343685471660241650362990987254020100172532163246222733180489713054930906323238557316418671645546754293363902620213147245452384675093865797900741065927381394213280456467957556681216277231125048601899844522258251663403463001448064067094418589051090840755872666961996462678905272505132866499481588274702226680691011393514511303475018495707722690825540940204665753457407373986832051421485826676492519901032207496538060223521792674261302502513299487113244014555754305901739596484327229920883266888422865364635095487322794849683411055170503462171567069079669290258491055845717295442653500845737896798714244632500615964128421130019805768180529921663260919117196591494055226985788334003981869713830943859331720695112289329690168968315266470646937036838755460763892748669140274744205720445253703250963208024888362725943380429581088203187862659828992057651662039208956237852223104652839458409644417561970020371218472628565000969990656272557531352682283305730693285637235061058449159777632169990283964419913437305281636935142749653815363255978010057781589348198282661826665985828771840320003821301579910344309095486028980903237190678442940709714568245723668517495346569349112004279190260837130589249113934351729561506493874525266737375857378699484031547268998650857851751208451822829033484496306180051277433650516330278786074617293948787074539338535567196720683362055229153919741957989032177584257694525225888673884978918257767267098819059220041788644953423120129461246763332079473240038112640147763211200648411933998704400172082362305083092342359155214657504197893641851465249077034952188056620068331261845066975633430637833976756623286963424577700972565214482624924796248864502656461944212100673521887920142032309256518708905764111812882278309300180434159980686699868756123326221517033906582646649159739237869473279227215612991392754424160727942183619724394733298693474765444309078094679675312571046635625169875559026330827544744847338784039642238636831632792788907407827658585408929500587643055984852594308208734172165768164153906569837288649766212343231691469995297721479862105791309810688041794258397743953780404332637354573299303988629449899067349570534886894785878851706339470220005985342956789022791279737929777211521075475695454492106799256333570165617696698965767406078610301645626765163899637778619726821414774469769727407644316704855604334038491377316117188458163895991830909607064545313533859939952571013230600859194449216624589619241927601208910952439587441105577995215888602866223159398130049080220021372241755692775382221256554573313271227740388609528272146875066083783424781271112417469608465931117432381687437906889809595325656760007136977448228945071986827383442193620576137011721157352570781141068319746016929090348056791736367454445510677678780762667217474902868956730807824453942312541778511036162981887436009619790190547140842543754724503978792687395738992942388045291355743111468959312400194097721533162449455667640596427607542216342603162225060465797456223309603554215043503490867435401273433938411088493083107941913699768315731049460836954896871861822277585229892416629577087595455029183588595425728361000141417275943640058819221555048544306435435779039265285882462628499782188662509398140441367271300593110262714190556727553311215687115982085648200262060970584702666559716356926704120013850461895911175291689656090039271034418554553336545453411951988470314359654003800886149510166421546641363582313766323490146685446400110391859015787061629304105374009706692349606212246570441816135415395870798080428870300700970696745332475021685092633926949897814127091286238868915427308339663711944185749225545293315530083595545718481800124074574281882423929504587432193025747575985962126344763221001858918099790317627027575017633763371961091654422385549113368809111529813151269266967701548484367478789147869803888397998662633560884813020083264209922419020883428651458492307036435664382762070926343680033969129103391118954436929118070794447087217201320153167333589570024796734220296713540007943543805255155567822795760266362366480624602091377717868759711761861563581474699372256218830103545727943330572260792029692931827680902137869246747451122728293294763788771031387307423815985841577863234616155647698801767693436097050992506806356556705340462015389686625479953033063855520040263255114304161159353136475856519040463550086683982213190269110962630635292240314192311548707591920233438855984664905487753088568256681068236514771115430279188527658085222852297998652011759899081533984592191085534025540796879960402230503384687157284615192347927228365256731413788886903156441644315153625018031523155497192399495830960192748901948427250492999863391885990670245593032369144185755363329098951478478591513532358674654866672985252120849847478154349616068899614168713129974218225465134881905072019091545536326584253844969966199813247484476401496368067835064314119862743178062088563571566477451235732806940819489734525826834972914744672407218782990582903010379784238463672785483001730556408986524306261896817465593189459829578746153432091453292255771707986128624623230986138599116338667276353546813799734466946700712780542115055418851800550845351098004100017468839461005231994047856966778208120492191875479920072582080058292235832002702673797222326627655395349812771176691144888449401092233395872017084314207403735090248828695065605401657606375418392648793470375274420195441388770176795975693413023614936032562307936757963663922330333452949607331300364955674798595007459883392308689223305256231741684362164878775681438873435825529652055363230601404168380773520713121958717380325920355401840062943975206458987815860874510813722414950312635713097916168916090124620911492903245960912693598442085973092260898775324392917582627799976192937465712635129728102249122645595604747463712839661555242366236828934403413243849467281816385843109742504353634527213932696556036001445467005112228311521724382071379589708754202911956841336152341533983185302755454252698476902746637270292340548256723219945745898090289908076178764177200779220807410292669930345591854794696779246021182747104689044817122187952992038759799678299755324745454460026511520054311834104619171447639962041145679461360221813007878335751354096313026472831967628740601253741366111260781718989025002527517276080767562359173682971204699713658174273315951885034762339544115457265610437073375445970338382422846665604497178719245827156811507967332752614965775592156469668419609361813270617734509287667505439261720960122230545507610523067595480453266893898436933737083436392573158669816937785893573121469271750675216058280142029097955268576398900796680193883409422682815987466739336240723840471920639607434996589292512806286307398005384697030035152416804249023123092999558529196083073375223665253127915930863387701412469379561338786507610267642224690679313637864554897667743863553858629173905332873523991922676709777185479856850549532607411845873585088801288866974183924109081237386596590661024458512502479911066185752570080837676986911907893493639189121447405827915232836949447141965408305310185982949889097482845048295212655693446469076819912993080923419232421387976458399222049543907836098206444610217592507785282921226066738378074644552937039926998560751192874226501700904720089349366376288780450742644093150074993257308010726910136469798857298194824500544762999456689081128166105232060437699025961709650022689710984171976662138217220426758558698487851553052017853376139508923191282802250854868538552879376222536597829792620887536719025553971158053027469178988174455965973719799833491682504760240268212688203498832369080659399631281957443879947458334254887966292995008444558772133193112829769237586888632980365759058013664506693996975234258214720634160954174348251702570726508100839987704994395603081661576711261310322363741555135927983812299350335081208572252389015369431449114578718897838538089042544844774313924632086083810850151287345900080271211920185563913619944178889428574073695830096288556246493729039340524240062296075284983747150330601010863738835786357569223676983302853084182723943567658352580364676992795296084846847493108996619030136249506361083152556149208811628201828327554229504343896838007997137597189670351174053634020884825562476415836233355255411567848293584839056085953172169127462944246498453873466676211653178991562015848846922150697848916275216782985096850992017379058960349834510311136870643829273989841852987965027361743351527293164938846144978066771155462514668304230093699780995458765978733975473585437895978624391203600535048533108502295093536307122943085570243646473243158288391803958135478554122701965152509533340693201046265604388372614331720372940943620616957450630532487106597323254831222668453038107307045255664256745360668287239839091549601602021114678567521169802004880112995092817833571820121462283078856390700852873212505266426791617208621526806762830672168408334330324698294670803263520334422480486597488753285111710042544807064755812481587464163184745574764130200728021947047039949798199623416296715768098194594011387358851536319817894690886289870602554112092933406282216134471105071567477851392584840289738016151814844607639056333225096323832364730226463217317572432843461696988767366353534846751587705184624581750430891060816423734089103382418994385774719946796888826790770544797509557542527941817866222575338824619310056225215771007924834304057016166640620187165184166455880253227889534177654487683127732376164243923053089112143959115746646549875230128098489793066403093577440921159902780664555948997102686964383158842678455650992230542947114557751736187774784698360918845522839043310959182211389862077992117426939275994335997612165019094121592383631280675694784775840077087999380419125156483671167154648654693606851276384068011819426472101367709838575079240547016842819985626313385715222825816499034861921416251313148232078779222628584718631923969016321269092116486691289919470631193795904280114253187720974784704779616309941753882761811036581994591614927503530545936381157410466531160177495780825830883345448466085333083723237116227417171074053249420963850087289260540962373684059346983310219356663406375541479934494423693974222801296549146760787984003322178592767501996349108620908300889228897325583961366807010438414580253859754678113122370891095138641533879676964133304883894154930622561952208676256236694414361338999012702077972937552650471258710986690964714479786887751104011651545233178346496104152595240977179646119009434997601318286400739226630590942288954446594717803096967948258295870852593779751565239728685877526322829361657186835827186171320687548530710659607122167200479212939426974730867080188810448191426389559492507392174183261349684216385648909658412562583184977107709404380429998458670272534545932070898321861333308480545143538578231691667878520002258618265864885414527386583354505951207331467830111402132045977077999617731052742287175087640666738354998338542559490883879927032132860701093972382260783091527035233157511466831520722142249914608471984893140378201405621558858084566287102428567088322648519603605758938169013277333482114111078471342136142961448337862117862615357886929393116692940912339967334399823381258429616036427801029752841787528267288921050438919143709626537302962288030242022535344021645672324415257432696647300063492440938016054388184077122557674105746337658213035083992597735402921233737519662381671762381432694987893541805723680504107641879563882405966998148394964109884164164945059483760634612209733516579068580648972326813720711535584400601168214359734547162656290547196936043335653557363573584401590288027534168477113691625501986635158471213526422235724994307212121261368321941846043268006347718308429959445877983036706381006604304268112825244474539513089854226566068249308876104170165702566139418556166142692518990137917635063322869237569575458079762156733575984318826249260089944730635964136948729811053457084242399844855126758594397799123556120543191183086984862952309960192839067036489773104601699823157457739657578760495968047452965755473642454985950977022653118276284849829383129894330157953147957340695230404736792391102961553565501396264713531865506376844357310499362800714761204819515503105662400183141950583833995561725637134714697741011116625309848568665917579294413387769928678726904029225395812822854136907386572504374947683418774750378636575109255999422791633581211076432175433139668683826567260702433558174055883537979004144320957574943397942603102762489634702948300905852882026936617182359009229764395483538999372861720727360933185942545741470517165676556773496204698161312134523214784950451371014405177547079859013761891531671378694075333503460450229824370376573883978747275744201374710842048363166814053239102526303795048836868102313265260777812064793798022355817887851708505572782838013172967885583391767164825479086126114462571671207940572071593239848251212394953975339620887622911138824787094577700206753543827980743405229234467720169820411102435035339998798703904795025605333017006186944623312138572139756353593545875603538635909559385035915310273385300640093317053569342746639579665504023340730758789129150993509764818080438833807360631609025240869346036310503133819018649754422273081139651304801669581527524844702665649778897330183568002992041112114840774774606939164896515299278850685993696318963644490712364637179798775814437120853883499854040960320103725355493723267357371129475593714957727179679619141831759067082080681108272571821910168044817872928405911777091041351148524624471165262260975545587221226943137125687114722248745866110738961713352900551962837166974896435256390299514735833949154159642398171330883962098696048647658669974605039784014539515430971138300488447387139472328925336059655112331960839164604191607386542493620576253151780957460098355732263958046273548313450385995535935901855975294495624881237301516243096441059820459234713967192824158195308661503194757093184208188370291944756680167522566515790039815391854323165316725794377000737938624426792972303979833727118584735881008365116876605870308039702800769234297266399656975724063553653558617185368656425827209715904466092275914001329489742544209031514556752803706559886098082019169233345527432613887209324295702239883635041783026912218076319208120560001297162719826490896411745610271865589411372949767320507487678832806626488432748457811079538864793347218082250869585981141409976410809480440613367084596882225466233411066474205164835396889201753925571809817641173180752611067440388848249589516594884200017656332207642872573975367393355746641951187435203291838999425601527252825947604809673431325167316311084207966702604494148576179166492843575660775885878303841208848553521420685765467659211991262869765775543098439129871743721914256946828418114858003901210268346557054366445282595842820958048932018098204887939462078829340507362358838028005118452737443002125530082787852062138814994218985224832957810184901777889080640529610720344641630425650778744490127633033869954405355484268478734917847798656096398870008840553915418946647528592287415718931911913138632521777524428022268085990112756642534953750741411779892652041430136334199556333153209629163139551698769784912624144245963637712830528386061726608659791663060498288913908237269143899778877355826422840746447669894842825207257008567099451157889719316770673333632982518433755101483400088972683061365916712378535899297299994080920178577949225716071887847224506408292643142082306709711279432196860840084660954950160940308712877643524819804116009645863746398314785163260562903500493026716693040044801948829760194649329154639736125537043515826089957885065217976027878608308538595103555123254789420495393012875380871131036151025078975642469756075384370186128619093900843507289446971007914073600331189861064042947802853062204333755583635476301860443220863941648487699156438973246197058819064518215640226734986320428434197026440409812097055159824729004582470820759616760880386033140633092863450525082800083025823893663554487498031394605114725171556021033150785269729301116540937528679140125798856051301770564619848525917477801491815923123863485511164964784016062367988590531058659053795737109762379541641412100235692192168184657270478325932182606965868445334190304248908624386855162316447077375486466411327364891529890881081422636549248671809892033827001478001199818313051383356199778162160862681226623958683474447740494805687947695275686119177988972179980653541463655118098350737252435227946423761481854451933865051882556738764223019021617279324231435227207419955185319586387685448326776063394028108816109242497925991789991658297627340013343848340750897143576230365068595648906171530289945382862262206208436767130702075381011080527938349511122481360211258155728637417331517968009796425936499854349542394934914307214756960769341504549251608882064186350249582449134496798533886316196682869141423630373898530082621065824292529429445909758343398537599397881326223565514207687633749534393175819585441562983114385023276357586660309597776232405547564760856315286045075094129862814985655886224478806214335754355757469137496786216136198641348199481346245770554521853896287487550715070456245376886893356073915863688494845864759212429165213722283017624357936287008193229852858134816462410586502388389347285151661121805950406397275805874598863248003260139345682592902866834137856831213850927618364528982233768663727007196251228620204153527400349461348535666249987539688202378631099734642343361779826903133510339532378845161645045027579214115806597316409659212365639828513086531402667937046049080486112770109082038389655138062449080755750712583146623264722221952112364273516319593051924147895517139844129234744977312737529623326054138421221041127169968715079187055370124907513210637818563456448592577419407908548378591329335431944000274739858128529258105789970187187778574341900628607770453525762111618513957957865078339193479698537283106259036086507679785203391970594133455974003064167394935493466257896557015511089482137718907586992384190773326352056675676733696433595989109461381028588430682451348875544393487635535373768255247536804126391490851178149495923651822723024154367356068203313725565759760740590040168389621687473067837589711442576658040308283186475411263071183358971198597714542642397586523037634010563656943511636659260548281727751993928527494682841734418167253954609532283102965886844686999226065087227413111505220153573017504218885388832021040221341946992264371746434709502736193734399008149316369766167952352082132044398252566101482263154328581647701298519987593487260971655539305552364141796294231178342473215524506493089166806000607171117088419701142247625326807596011459511938220932308813217867530330163598547392098662846120545451565370623731266213203404826964755268205793162278172438927990277858082064491867489464871662215466356487310902459802156778031597487744593978842963254141685796203745982021649933901353428817566229393782584146530889992398142123188354098838960542480808957034884066991813131505094288839480090074482517807278089620927481024772453437169707877224802808555743288236428538411266469562057546326279278416532911356292765707962898596374797366082021522877143835924884098728254295745292486291893557112470759698358286962536834923242500298586012253933370911842813859642083555517949451914096696753623647716085312807402982458603241701625304669870842166927106472150551215553779155348264676332309540485062333685298744540852997087927933234789003050244916887289499047788447464081967400531520798086547928703811185575230959943323298639180485431405269309875418505906499060424679467626639010143783691928985897639330208677853556388717924640551370917857423037320042006089144463783770257926241547848096978766438874368295229575791778575405063334931146611380175435364326688860939441853539830021804100001559136278483843931577813435798883974800669920456886797449433643140508133775237295870076856507816196997194684925402066618475823570138491926871791220029085267314717172722153116493816339839102826659231008782848835182434315166724167876621719626872103574314022013596107262190443414304037566446904109241935792386916714078840898104509851235947195824159874406827485597427574988860326849789056108065126674733154500320943650045447283657526261405655131996388136983908371709914093951755211495823703973569418852967453600354687688420033682016849239563863703038321475028843588361730571702849001946379456050807998360850734992269740526145499041781757305528834109711535989741904507627243514531908213290787560536044653399467006952423821555028010858259299193972610975922092725254579595777835859445672396666988514608893616899647025162700880607261126271229144450273346539699836990858557993401826596758864114228781827229109125347010506167425214730708472419463749672978022998688484097871370360184354375780942974876577983189588419571336012428265990665796032329058544301110212874682640054349434862911378134189110171196967520137509795885235604753165495019423831007346559672844223826937638043816319801788629173872001453399721291758004880561519908053905473769776981768023675229175675071338903578191834898273913084071471980563261217821659728032762041098370906403469046087451924689099257642549495554719669574654364565245033512850985651165950684530517809596553988027599345558740909328004925121603414945683103389349224256342698847985934266937214317257568929782862804556309393030884080043201800362301626981983625586181757597293957159390858081401723013706032448176298932376879441019266784997088376483992451561392539268901138888715190981908313543327830863141249366047562278026583257206753331840645920577558946795713815328988137203650065703353269372363123011226048546985206176327286366020674121947960406067277646086256772602932691311839705864192771648773514415222873600612683449676882109306023380191973167016732122359626877423606187972928524764394510428566111617461009293395000790310648384009292608615760924129836046127065474329225267130937422489007123697021368654739997548812876897634429854837200585102678341860873600035398176429214566836513008457911078817748763434244749369085741568631868390768694952351403019652985709054644331012594235577843521406770268710930642540445087608109909458072886412119766739095896121446651207306517726113291513259420528593413480837620583459348502980052401190260495432219155045298028568905109979718015886176192997719014732100430544734411416815934765093778602169909898883184343756074765281807442425146786583629535738493213998365899878922298516506139309411418402032616378013476621929535198521788536775042373396896738891368984157990518764567933203481345425814016667664376308113261588434898713945318158151615404688945626596908418550203693317153161232893826665786302527019939253940133637926787114157737312037923250410250920544311946141842027814486922217351530072576808626152333269185582599866162401088831234961135984122682622485830226586305526722736803843651916387204340444880061883483725736946378527840477080144312345017940700173308546732316331183506795822129493950241495861895491832872684797681811739709663018279755938074027443860942430709619308146050181635445729661944670126178087530593888412165261683738431456677316346937162265782774490443041589245900904554823432806881219291852961553458756839026612230782444504179422617202505028660103616247799143181233144227762496108796302797412596867477350734287504720943993818668762946587772121547714312599164958643563867841115446324881800535146194717631967094122856389614669437444470348222103768142890644768229383488811979616695631849333103998252609218496982194240594184020665532911861911790101461860438502395140441724543778100821620547956282776516259343953382087126836513233615757824166459218149068336823972179437773197868306231130077317121046483055103962516436870165963353239634069185685986358007925816669067118575689767592336956784999312206365765455185608603184679602968187053090072281612540705168473853550415430084576291507209648588125575824082072029989131507146836078126586578000531549510916701105007641412358287450631547383485178515846394755666976751103957518812828889651313228843804586197093259830091324834095182695274482401269623009030542467117244711381169311310650987041551377420028469113225227351209219804091856274016218106211042218349852054169811017190700220460274729101426790964647658034949575211143197026845475685315903307733183404866912179118849451554502604057269164879407799816887012415091204754942843747797773171698001615175883006617554975598010659939713719418832645964196262236590145143632312142854071260786441284974570881587622955377348316333356585225462363471642928447233694207327020568968667428400961141841371537699028904659429566121665821995920059637377789042582571669070662715009088520879428685078992579753258988058451074172332835679904679722289153477538348161753420113925808944959218751052726581822853988730243299118118509518658780325472675921593269086512388166737186066303260069991255688076430984942372319657462832510341806451325369109505445214919785995030000951479920467384305267653373214600457386557062478894886594400110583801904881244049527279911038079841428243862097357520743506459890583674488030201807126974728271573088582293946152669567140869145963495015591611240529804197677339707695020650903438579439332910322036826876998810724055557714921534205270123422546151630494476455843776682129813295969109215701022559010753382183431361340837223526861607627853555241910561818865780585275899538070734151379158795989998693672735827829107881792037149440624826438152643645810939632236350291041416415394766553504548860544639297982568904502839988349835385133031305457208918836277644099291429112583436628306221938008951594490179537013138720310267726942784720127002662631874109982307231647524866197621270355399820025045974954424780817558574665415781402360577617580313631507086399799560390194395443854227052762492698921423743633138135872159889797735053570537036136961920708684849255428502415420272982480621595574369440637365827386062755633163270819550279628028823379076332811165547367242763977806728400685764477777696051865515187940460940606995446642288931940990471270901177748362802520537524343024510182474786297695401921716765287467058504719407915935704218374828923413683306935890538217256020227284397193633740157958035783819962989479465330960137660615170970089275578059508841765504460202669457144028140878452755134075720775687316436626870869225784506885723756875441622395675598404624836520594273226241420367841059190508378561539485249589863701762693336094244691288542491081268951879592229989303460691968013422872886701800984084749874333642300238419034168511865102607477292593160413940229411494076832074159895068944446598267952390322283037893547542763431665049060195596463089547695712280409697700527190743902865612362628875407229430979792071026757111229383137882300751202776248374186817717265771451732904358488983292820963223785259533464065928794938458180081665602328268967051627910921268761827996104196856323350100906844409533844136521433279041759832575916480184197386559543407235745115453899611237198981810899478269256014623036497403031087415554462355864824531211220642398079498720204138974469778698507329982743255420854555351670106988228059745507893680096271230762164840094053762113141493340791608121542322838591662150522462191584326555298172266483702602511291823751556256948363236243426659003565937841210476367855898625881012942869701458712254891401553326546014188343329224142509720742981634191729002466832188232415597643339162582652706364973222280713555215571799011836080057203849015495027485972665252761489127070435799726349842026948286303481226134026331153773261678549650857920635981761607114863310635712420507550911421140599465416373196800448977004554104777889134058117384374522841043392521376391665109611917574016744607937827832430506105133697443318773134868084853400416608059967422636319460667574097335053250968823232906248307594218621886055558652461454210008938719999994330955378674791781168686402882181055631515127127149009309747548269067498121531973761549425855365190114356527366708650587043421949604849083912171811740397493304918490541859176911682716187031279526525431234064204712195216816178306540958595297295513547421296901262555877277450583079316136095889560698360884341311071889152394339250839687945753472405403177012128079184372787163123633322847733111001978426886995143421119857069625668880772677616163921166566461927019630951861247885754493918574298715184886334373985977044086869165459272402366207082632329027641527044128837954060331879170333053896240537740989375792234573136847554112494119668220033900681828047198607561431238463730980619461070764419884637717626097969740546801560542809460875470712832141683334847016044994908868071985883474664884551772809144462777500478563981856573162526736463740757333689617494538570165002806290791020955190490050840805062106083634202885017234172163112003793751128174302013159861238484114747201622686301354821741695081568055286132699777843389049580447477718692883381707757208355211279764453248901686654817734900177713144108890637902216688446971446840829437590936968265897168281178624378905527662285938200417828091581521847979550985508756102672082220162134257720863340951128178572692537576376076980821781588228827912574175365310923608173257425406225215071127779417117340881116277588384663786409631556650332969367447833952890466196478536854994605411764908820850560590375344771426220884893116397965389308704023303918645417395230713539231683133863328879848633545875690345294213210002242407410938511579619239780588470662347160392244985961402610216365292830635475169439713236159669107815059210061943854873901214399509094660747828831186799916819966408228869236786289484009242051112222564356875726062505043155952343679334032854090886548385190301596917275884479781514110737006327042324372086381907488256190783200723412673240915284205768836567737249232149643359406023616620826458022647284753808474078009989419098807913972960451636665892267842947579322521957241213068842151209763277111356652556676208912653849548951989985869815335582681779851980474026904139846953835836287244712268141776360085230310472747070101170405629415834278766871750591830361157114278641340633066193065379737323433826952002258461879830498839979840180539145520662181858594941616279739662569599010248153342286008637625090363281571742851096738358148480608907484209117805041836443819224952309876641036480121414026882903699893371440177636038586706450913910014437622563364067377223897158610603608677838767409380931293646186859628133845730248505473994295518257264791568163439358204319763455638815443769060489506535682285136298003162020317580584412075017771161685684823491299163959739785115138695132677621309611507056455130777084354095394135543114449824638801565456066310385821413004796501675530459110663107372086158190826220163083375940598424268485655938905135595541731436023529527182323314773803458812965828269777260836270226412750322809672698604793011564677207984911019495186852317730371847031315918216762320222824358521786273466911696557073861478120042671485131526177868350293170439946028110656992760447613507459486224809439557401312725079052934644468116892992131658625472890430811319752200356365828721618388853742020656459408369918530224703545696458768576745215738410985621882008611401515679497167417235214795967523131593061982921197522873877849938401430872149734601827149593985896976751696136633814616395644070483642784601845042671664258033617476022191415052022175589884334977557604170905345311145864045881360367497521554463441908741910216269153203895554149739718661765604013666712303456971156291473406711066064327992832222395105161580689737952229206358852318501948955539780348474452195734174035653965526304211045995245409726701973883358704838506589754203218040956837943276048178656762058307683713641323623276630975951209795077916805735410980181173375910318651999891137286715088480017172131806718963603774379327447761678634247042336256582559702415449373634481418906230454551815555820345986600785231022412739010724875776359841223742219560263130094993835420443901918688099777115897104922718231446065328527516922160663944112861318508935094440556828127522619592200472645108028611226526121903745319114074986956274996716377411167914694584864220195295303489383272320391083659954722343763461761490179868869242780168222365647937906809806426405966112268178857836301993948681939957687177498611033466651622069698870492301208143776037598572274687260830354277521150843655866850421555555642218263333605224848237111877693172379878394379570592926123500549754955377815921803603239778828066802981683637277242773945954139749764716298455413126610270208399121068004667303109284201254535123107892247495765999646883420783271796304441694673032138712313859322776943764938737348196436458070941036740042401701609463321515764358391703823658936780940214508027110742892393122125869223740082258627941882866215675153669071976617276101304180430259851315217747708674184601405975345956221398306405878046097598648148644579220646120389659488837599925086963812000389351839916587376020240076640369748073943754668340552418213260786410611786452361611003675159131020838291465954639841591811476486341878506416578617877621472875797142522470221654197371228200348326948573166486842954958761107488234594811613551857902893776242899702948488335810212569480148850349080706374977269974689553396081302327876510112276253803089413245398763158334403487581834643226761418285371231018838695509005361100467765410817202270767618245686760809935763454944036199444064153497673235998928398177685281117418506281110025449976324490257329247222445307174705123962291540275903341150624008685680267055672464352941166909763381942455249688630145725228818184759109082898129281619831160457038216838174852780255150842639457108502471721295990056673426375486665560235012484446665985187861520609029943013857423346504334751106244410911646490877831902111195130140492426973992328707257398635007283046237156430504878296422511807284782990080116468006812738016635825008073573963996324600932331012923464953626717708504020633566563678892442915487639981196077827030730438083253835239044061883740058039609504929067661307403602494994037427417651422615290056415798434868791209348014863390752578193225575742307606587077278199049607680661101816016342553353726932966127746370439357695350972643256670598022530701579543900614656734274009288233017618463928403831545619075679546768168274103479810411026135422338188234787550749944720205767049962734306711502327684247660936402093828266438730133023844838060965048195279941123035855001746887309822008597975102572057926598135235668006314672372768267987971967156336410942111084703299109047698221139734027266923399945785089761882126009807034067440784626226575722692383299348044025130363835749810179645503405426083871042185925822602623067475265737199600492498045857213285951292302346779938951607689175927462230841845064936840040499337193935670762363762176844261268697429288565203960829751196768865783504340735414336855012499537777584945184551851048916101367484615817798151291276766543837058231486979544268204619961936230307495443375071575031198198817733935559381232741605331240531320334674972401415343923448970260847083580209269854402737212758907567374904810511145993554978439508273111825393345060672351949946184063255137140739728125603793886758481771961722088523277336851168379245513803953501941887247019335791364385460207620829579701160738426381077047396219857553269987334444266354115667880690582164374348813604608325911660772308685187811901219735747574151993400496396751519927482623548097219762731535378050512301867332510087474632469295946945347585673782411529730425445067238447121898772022693402297358631997702014376535927846352382734923902330065737477281670084912780819375458836207221676285538451511483645087791859551942323715867183167929570619886708666390361218870795386326931758724106531877670678338999466130970842154575606882863607687667419303843913633846203345100259120565733557467709057404843045986033836160341715144553566581601582581713187123363763651142976257887699589877952371675077633442362467924435596389432744995982330034497392158559977891823691601329968857831912358802342639744287737656229795632597876471909867007795531747954147114600988911249897868430356487127018200897463173187702900746671627126952361885843171543979445084892205041937235051617472167136396888700424192210606395714473389964653096096408655378561021528920983776083776265746353495883388357798794043480101440579067336751055221558932072280006364576936667591325184714613107301416636406262534979304408467970124414219970923739646777006091884330645256438420112106802594346165184399075707733425889526024269717327374848430300495405674473151279748615326358795465530725288354527123841013470758436783108847884140565111095169749565645314495002063442436635730635673077973897696127593562224670203207301836749689586218573534748959650022507452754268597378448670463716173509234593685914138602778392994648233844249010346175916219307314814235837952194499496504405605414579020114402981459054427345373464908213147553268326982694349020961397414030654852159215394743139602235215205822067123616858505543214695860686217163029172190619500410676277508155623007939262584798796431156088586907292707990564438834133975655348891277514261508171526192762934989945119555383825418412313697541546154533392710399861761025725907295452482149733772259851720926563765356054873275212463323563609008569704813082936635733679196872857906045669216450880932701798099345001833432285648455596455591120546364789509301171841853712621196947414517210436823467631043430193760734558368864837731706474097255877567794943233136169239722457822371254806181545595075936996808199862135925846951101018815318707678238969080671200545604331037120393769359046976860491693140094573380448148128223500076527914004146654100642368721358136804706984316454618990469688763332651839828723553032393612785480373744674845423762159601956369546577165539722797712300198981731062412859615898662987148452118021843180086976220822648241933711742026738603447182357274209285949029059329184781091297214707541443074674606819596444000874935902204270203613130148218701741816243882208130010414681959236232480114569073710382044460625437965450963626401395625969803282770396747235992151405837510809508390144213283114863398419268602194593147705670158881341158361580023304222375737242466114890327425382495633863299339168395538177117440144474527243494845900164558706499576778438232707005224297936385366114313710836457366533282221660658638941385369404508668630665749921890233947371629405425976750595653431880267841238407484854040691091013789510903161689048235148430522487833969865485172680572980556692791917549247640162240549797192004557754887481319566476929291381577149090249867588374279924072094569595228075835978450614494877035618214771124240672648477573893689798000152175417313700191261938347638376271166813022722557359456189026463046203301484651465178081902230089009150930564847638055794231275572139107611620874122687176223544013842937386366509796787661997616741471524465498360769851375023943425815622583048770220044541589099795775968596791127761500709716027468650318185757076877155701018017240866162973096446035654067687009771683232215599262742175027706548421650976749992929286556153811725435941433130775110659057395170879881413034625214076011293648677156718493742463941370113969941346463363736077513064980496896474766679826424701263121769889427720302155335774685444892695227726348895216224331101754435904239101021979317238380253557298573196134367091447319236743785561165775438984292997480332774521762494120206724950535754410344313724575636560414863064837593749634135460475154387399683210797890398675624363491838136978256983761567607783889585712238241932337848817717776722211754161048726002469017811053177013106017458717258008992424962841175409339780461530806458989220277920416915911391270582033564337371407516686730721688118886470155112927495165507261497855393955204234424195642393241994835225819323889112063711218650681196236026299077477889411615394225464907872247804025053705462356230051625643447553421876808044802507677902284418996904824531596784575450433293599773550093422191937745496323344336666649651915770883466303910979255725033109884314625289790735026047379240869698681974076781107455820188535102895607394103670505881158068171154893497901615524931160545957904859432783809715500103588952484345529736045248309683020666106194281116913925598034948023530926110369034395368399709698218089706696849213912274822889681025542016932195721536769678360013923257410595726673830110468255872691248799462092823346677138482475843753180735390485383708990256735499985418252329462262490502841033461660513920558534648861754414618137083161899246587534968862283046966122092976471702988682303019291422084774952410848734831558725000708262473125694153233364292566816741280585364089196110090113831611598265529209326844784873397461319266356607867148240788719657594400680125985276847559505481430460363544921690467531898658418934119751036309772789316854847275842203734773765685632686280932928643002527568727014000617210012052299575080753736603459264647803184075899986191761188120378532189408751472555916392283594553439258977384903172358798367908089391287118708168226313329138393359357919959335796193181845690182695036966113422890753974492003039545994106883204690817103988547479934982981539391441850343502017367355228620737195348461199385732524811354427449935440372584935636999814853782534063590526724593186845162583658294050702175714297982197621725897359834230023920432514671541422954747131684050150900583712173112515211994246621987383795177600968855093588341733664015889165218763602096038396142306681201505729013065166571096357820984524995444674246842896187756243980584713901178706492237063280590601246779144036940186022098128169045061887237356524211837391396977312064658046623215159110656733506038279086868638578553589809630532042381311238927661278412940044242881693489380213414937965358598471875434819674966407784019272477307164043504916691044193116980220670640570482332285932763656919692471343490979420623571047868352354934374539252084962721954512483211366841142513251882509810595692779702245556049444572860882037487786458134647837599309002801325365037303440884570649139699903425003489537012105752897222475575784946314682388567988231770301601687816133878615452594185274607112489316114893932690153233286819104775096229843582149834880099511041884625601159964038110797036714860335669810107199289530744510822965394846910612782163487277088065112920539873930284348349653967404726965031236185960721924554400992080410883560059380968897098765055683244390458130986003931787672292608030485321399780724736446400131065696766745151072058855802603505542894521721499953346060449455940709243284634309165738409255906043266749910818696837897108711633086062789580203837846460630294312456585686870102878954263644862643040965302964311169202192698918661428011654940861887692682134363700559892692138510616344473863983232107733960303202797440030005927128212618417488409961129039785121741832221603445529899561081249479553594396654733277074873305681481099659304455991608247182434538792446014262027645192340103143709218095520214119717680704311652097729532818979092380743553271150110040901421628278591590008005767967138821888238395267165799617281034053167661916409649882229276845053119929673271089740528888792529279849248914217209898334438463174768292996108266163384098000765147129134055592128186161342814533966513541997921350424694973383595570839743522123957089066130888426989490869525459830207900125515042090066973623458508622801730152107926736389532216556315256918752854847535895411185826401323075104683641772103963389444618643187902334880702863199309417641274817592868478552315262142094931393216421671357939744102409502202497739611839700014724230546270388231708138097072146775756357495176430567811688745324756658149646453015776442225501637382549065535711319856240948655141414933013028986213799185618929204351471763946715594276943683644353526530390777412229238241095555613299260306381939380129761268337529015750004607188428647744734356641137617813790775096323642390071570333852693660740082948908651678042868215041080780742960695780565135929044847580005128394097369054465667251228939792553517496370468519568788664973860000376106256161281856039349280004793453492612647572565009095547926564813738458064644559104164116414792686111767055427618928060254758703018784502629860879691007406113123856715792059316826689294407655236483439055918894798516009280050768218665366950959426258045927966629757619927337053977421757726286064349276976256247844076040138221078435655361250622353659191575987929807898508516854806195472849134586832671101183215639385841457423028963646837403865120176124299338785665700232848536905831774170096116628258402804211233378443550944750921262151451467470315975658269023682907011075540415126639714586665792257777655901577663322336044893374428202492765682365106046725352184095432938294930462055311801961794658051871522541150341625109906391500078266851401060378633882320172463130494096967464459265251551931483268784984600145688094532795490697852838724199209554428140539495452918644470220723054466260437948892394540556584076179962664077916068085538575062547599504974116337791622819554769969823535535122976616497972234398641637747300750275012609026860883879558345876170337651294313607109261409818929579710070202404086034107945577286603166005278338343515739444583672287094380608060963317499635729801524217238332166085658548557990203651308886702844617007977288276319990638509016120870487186821821942387328793677510548679745964595142080366072084884141564395580617371767041695422333393636354943308007930336772786694868380257537163128304174049520013773319044349531416374756245865586053021791399043218593928198526922544838918054968857253468029699307391135327636248103670286823862382827171064395552915848617350520601966595615650532164482014076380976769583046132477839997933798199829243270416660202808629297659934988778900651164956311710134202799528945920421407139940811314589827620888021192515526900505558235315983812576142898024803409355984000596918319935897597165581048249874316691041280345321303644686407918638234892035811461001839265759080217053420586847869191398497270464477023747828331194201423513941945210945287852810837153316213167637968171484106861202508990927127211847523124217158901861555437983442436368448443779605593718704666517039436408473389640077514647966356728307748640090287759359010226608910150269932988545999361765977022946141151475799988360757381138388259942037672440482730491035348215586690846951971385545397675046239516871109484010120069241561765479050017809083921363105167542421513775979074903047563580595695934213410878172586447538239343103462935172830515569836968394884006800649430239736042590473122848206516864866661079097433169569951770371005602460296583689466764374624207116687083048579066042009145655796259141160790302537536539509183357633529947408768749192990221700151112203891740229430246582264831166872635307431585834595916649203345883126693260831793352968448976846960953664490120095046403674750960245642048593753340879498423002681147878390544651327080347472821137833813784309732140211314740950309330943681645012260999693196131698733791090100187234381723688953198870426604556645011468591741941812770045569797219596155767344117770555989224851656515023248061760835782030168554691193540418816476884971247419615521627408666035017453387124889581227468101303593864211651119322359807416946193795464518836930015991286622164269746162611980478875527053687781817085743264572808398971471393789882851042162320056588791883410523571379859911775327898495125427674848068007278989448219267665094337263921302690026316849452089414857345547289405501539714726134372238701986984721449511112144839442152564750932480688335561431193598937973569970180474103061420976662954532731577454311721977066585792841425161528796182981897392286004563882295808476963473181434702228070887457037160686902084227333741309578306519702325314777452138743805730316525934979237115045777549498342178165042050049360305994821524540616117395660469567074749649869388396626506587494326099936932650579082023663520999747857979259598010663494702222685512592879261401295186835031589777114674384687159431051796621980335331212709929425009271317982077757628922841211311235497209146956689892470529795459775918178595664108284284051256518230354223339087675995177773839874010552384369682152059648576863416939335852221797844832946730074996679658016440345010995696734893610736584917551455739085198510144576101973703052028835622603936762696838038107701752081472428597671681324781215431598833182818051033079701537376292082489424922216637308824302102423848241549123607657010884481254444163803297175642764026705068864702952565943013436769466099266368813575129952458045994156055632339273087646170654722538109178084167868880418916402410532827576306895552780054780684413161404695773390308465782075544497850244886769709204350130581085335556223501511511261450968409682486825471499268622302153898120298562764845342826945863255568732053423260508792322085581707675389416816371059138774882870265403568610355365929357269548307958614806820091501798021687450127901130313959719506441749874292235003204224366939472355773033817087140988375466697560541268777069255726729717095886461240052586690763122818121374295493024726809531145915979298570260720072527815835035490841298247181482253204599876381293089251578197565757844728369057819838610294187992152475540013499687916095546378147492179672811194898491587454573702520252778890873136197185819352319709306809209067272941049047093612254049180324000812425164632493608583518690994135847798235736708301544913270266404522309291947029925670685032863306784192275482798039728012304349277476618265730100082212233284159519686581413563014582338144355663240943217262429899475803052111509237467275878816752097502380145275950112477047736070503543054596837878235353209908118423821290769815659975978154239214395036637521638282982392563556084745121350804690593562226850793123279277417333824386856356535558328466229954790116828310889442108679590877379599428310390594459641739102849761628150028628355778807259916560710664201056986191538060511926335148435891109174114363634023478459402990533178701011228184277795198936970382393620050859806760533357824084355670535836831295974333524426127589916441707774369688071487721920047509945227918074876476451257384248814192057348679760934537174829821285327654147882181317029644930714949993052613425515901391574642090438814623956351334022549765647094133703682300667618377477330808375382986621194451882481527050582170864786921543668781585126841295878887992072005148676532591174192681938344037101304128442991353177535193304955908514899351787429997951959848777448398216788462777690935914482443070890184820075364455589803802904133423915460976746335263959332101126621297020980156682059435347681144065205208030488379941570036093668264298087246662907993098780143534730363511178175822017356009873556863834593549126542196365648479744791313181870916276727975275857283386259788075976247217900223873230161289190181273776102288671297143656767221411862184864084736916879309283229288333884281203691813770022211011659391306296110401982367737512371994038267590405355647831461761981251231568642434065652952494065737878750050237011818311579153416793062850020559793195021632248134116563172508031609235645206405861435338855640825726073991571373135547261192642651744507355820101710449786995264576091167183494360404711615370706376340748337581740012491316004017803463573248074685205904242407422671107908690108733960386976626518603463027432713713782042552414593710763741111667989237021433624510292629057406235363348100277510110828194427530787361019050163020297427234531955154325187045089312569867031506587836469918584839714449351803617718821032403521897058155073841894201947875444669898296959503348180773989901840879354003650519261613242060116161480139841387144601329326527504495775830463905464423974707361352373360239344894863874734320291033403387916949622354417624682411028380539709110935969270229710867180716198332327111824081041714992233277985781778820762675474327852032076339864019283471389767420671307488617247876389208783465096552459135662296133164246568150422753110777940431613906642917455473733037570711999265172224253521413587965637473288360052294888345821862709288526259797421935936587987889581602370640966517172418377661388393140370059164046424586304267740746896668598532597305502893600109807194169346699370316977074533607484252303958611378778094403170959768145016467310860447119009504031399964528500297189976875018073106415259871569872573098303504497087033586085894847802401458080415771474351623450835607764791270599275215893727272158233654287469111836728424362765956405089322640699413928821285977900254520891717348211042763497994395356856195756580183880137659966747672633899223688441594384122645014136369364500533132517218155524416257923388599069639118731535722011829735189387106144890684850626839313648851928028165001503448173030483790420318332989774523792251448185481574021139109021142069264988450377091175023070064587015676827361209037131396552385727482000959912599549265759795653244141696170159275032170515019875075882285070419557866763918996992227842936351574985285196785493023508551828129090037235281447187775602152876413228148907514845527063219154897025038995871730973517732259131937800966465247322651392836446851366279771797290928806291181630057630624143700387289548776848234008180390787773642142119467805338354582573791048808049162467458026629237397112178192486899549495535755650737796193936960502303231759516712115184775499814249089408807237208605114213862760168647682653525245180007351529780370546010243832548509928355049321712056630101636688045804687929570439970265234797618304575850777069538328010064430834579190861325204571327230169384070411396441373095781410298108446111380457851388258563770431786123686109635684665759626334232440012251263484970341342617366714287056696385662184166280400335671866275895041776059616381641041420772046221178336941794017797131135146879368294014584121130430863069382976278091813862771983518173217105152426265350594070212134999209059726276259655319856755993968981850709547903245553524069668666997427652095654166138884131963595280884149501983771667704226619082517729544034747849423738799001162176794507687064964286713896832914434205387392315722836407818992706927871041229727543906913034855589811848387084848367675396890394453759766355887703886044212291101808256687175598656756466390980752873882910644402393413721738286846169380392451444364006397183442114128454888614684186224629959977548231068523982849663932930974860719879675151281130542897275269771604613349688075995284106966250494958667625413817452901799831064929950095407170065826785643738422954410169394440597765667601428694047676161605942517028189102863880326403647741559851253286830711896079902209775667524626266165268594570248691100920118829329534736525797853263082219882971865089136897076023038554618318381597092910817560240943850378706085137676137789874008066605494032551827235201689753616636036324473110310221349112579766392202582276690290846627707698038204862848653604332976064125734933890577234429197507725916540387830462376823855958896151098143435729995854801532526300739628668511477300623399159664740613926120336237775328091198701605905135682986546651680975346032190460789508279315132902238275474772017656664442848532682000029635103671116880584774100084755338410170619137491983731227403652475290317171478606575852554727594931587569928497559339893187834221660875640808240519745729783019038931456488984751113808913501722577270625174655941183834284567164581621508910653172971432173456406909226358283803306524917742125634612968570022604405204689839764130800841042906152561031367641183392492976725614697777892740793069971647590538539199322816582057094126126762237061594586697949373251966123821898213217176645692817468918274405523447808985602579404054656877411425920119965472360908221996686620883944643297654549759060040768178190971640978217020810033365543925692518447037083331887050101808772085249601647159283239740802735410778985969547513828941588380870187476536397122316262790619241432972573690323888965360449380912602895758628483421712313616486943333710612229645965291138704698344497198706165191858706816881652544903703378998759355225482558770427925071850335709890092471150826771228382056739536256320125689104107639832057113999903590234249759331076146172174859673982832027428761404582573244063246289159376455252099076695144586929280520289425184417867109598793801651192818999944936654373916095669791655126154282931440815179910394213752646832412146438237254963313035484572256740516293220574365111014592582363958722290302341509273513053450481060436699344991543646876357310457135870662158092671911876826801413857856414817915295630264056965640062216597439864816330237028755210313524745519722479448524488685848624549301790750125890297084021167936027732987345997433171775103295933519626108091639105240233906102480358024521854350809449998963454713126880586561610764660169258928985154349385763051801586844791400944053985234780324802578285993856292054738579901665753190500450247278199118718360294612472016562159855238154438009513745693524141722350371646300339034815037016185957869795750961803520197457723776958189959241283906829271732227839175227565636687284133234428494866827835680399779524861234129146821947584075146890858065724101959613152845083900126567887018634644102625993337048799557601572128248349405113027050718848598975089341293304141553814238993408649094165462356193183967529138899424186029594678689080690327651555824066238532404361604862777507546728978857694522786331817759635883296047633844323530333907608040349325398966417924332651875886655181529779420963661554589909061235219519636500710811939966118454904602676352436425029820075090019925088449053299996851115835321733491258578935129951227273104508820723576420756138767397770107691313205575441471795557061446655837331667228742079600930657000465332043622252106548177815021149726287381975382093377017618956993475264111462164748015416919076821960472948390199570262877874139755621675031661349875023625310180705027593615505197103998094277442434149039904582137053169460079159428326143430122572516871244499659696578045351306852700187219354113670599866729227167324049535099111554118906455016921287176562999678501450306352327697653329600532575421417145720274578193327149803094108955537443451457716315874206803391646408228712498465301023489335886877492901211769283985992480012800807445322735151659978645051889452230944592038948637619327980414965329452110190431067470463223562330358315269248125533170690010428617726071953669723182228093993207909655789444338254382501862943348187635969367160126395953855957002526131066777074666782453080756596517495324789221698333584603172837610240470950810122999460771287903130731270842241735104987945981604774802217061803480568280962659894967923179638454180513897392551037163468699083796035370406095790311991187913853003665029334823790790112772759157641441241874296421078808124658464149636695451987654733721647541832165849782887921143162850484595159442156590120766739125272943195249186254463795654844578965877882007878371486527773041660618051078790838583828353017219656314622284831500254321162298132575655138430887652742176757993083974030922773554734568938873243751817000906977028823106335248172454794316049272591361428950329373416493591654186096312750327822078655875484468383377447090524259119266278584252235281318135838392830534952646638352061160151034250608575743351476238986214144026415266734827746420121899714360685029912475175752839865990682638594468530043588679871793803020902912608059794631851327790464859612174704310037129209932520054129512789420703790858088318889234801802042961406458548028252844420473878159386862864978669032964579872354612569322251555479607572142260649925416531448350215131883363210821018418325354338146751704365092616401289543963597172339052161217622849866247035087360894647350151382468550443781282330820204662482057336020003553648319316712786642544167988741719383916343330153791565462713357113328060476726133819325553384811926660951290515949394503336271348624125142592496826357681967094075960766179551117816327932052567814544537466527266605790701260984896712230290740405162536674289112042262335636167983772971006533156207586531486958567326047952958397456858166060186972028161774312765093637063359247517877829736995426215659893056939683296666369621304761883811597520743191837631325406441749456206278534143557594482655875817472424069209774747670501331803608512502832377098224088462512386803312874046876976885248537166949907101873528831597924876869253521316946997145998000600508945309254652816028826718108467777729399678081195480243878068275911227504663750557831042329799713118603231068145024973057882598161302615091805543360136289877689043399805075658140799205442894841871296322676387367194704647515250288739235632938961997311646034906123241870569969445638595545034199787581046995538104575912888889106961948229450954798504415230284283446131636869088035769553365183054963036828008531514431107398388063277675583533002904027720074039314834239927411123473186874831142191534397409616938041761095887461967124606382750445158576640924962093525460478707228175366458750711748143566788219055433900760753979122474216159629451973388770692370701922550171410607782067608156084800476507944063396879821290501193464306956015758320827189186595337489002150560604285782671077147078579890545300808108602441590688814882099060388287638246907725458744021716867102790362037683970814610904965337913171979941501311635435418713651961042153263084347697994927926740673400546910963617236892575853389470393163984723874166574730456567295550272284121806202781915736338825401772038223588254560293033605044779748122598492993917124326146900045662518807339489502910515419775128500636859398998011910476556095999457103450225984410376092726214162764521930775114460902491514294892526979014108836695708320791395187566228995799123382949959995152070904985599267331490031779734539455024578593902260372485853850283275334746639502665845867006818645078120140895614804458391978324139840238224081887393378255701956199429444770459861928334507572052403609056350528083976387348397613881648807616119469354743667811069139644874629464819015002633040041017035887617765162034217828436193285491871305850209814652983209797649521623760006025116411664784176993406855399040533331903860296063511509012527448008810575812524408448671035972861748758405261427230393196762500252245074528269826828606497916343098338093614966264334856542438805709320590319882589773388081938801742066371345589122781092239184300457991653016151669030683389588236549860754323038021574492242925865630840391269557717204169707607818010355260306677209590855543051961094086771185104472959785958078467196558677249016789589740227316821011297941772224475029133107089780578645715344017903804712973500523982212701330364174766234594635841704551694832761057001671891789424502650164916377040109912571943644260638049048519685437216669439562870160362442407733122413819191370791293052933967432635497585747695414832701320713072862096142896716173629530899152895530237739143764248403053831220222294195956985321739845743663845356054270932594598148549351204524599988426289719681067228996441754374152997915431978173848029476605547475593245732164534237463195537671069051386083931770511299206025757521787398984340526284116084274707355636442170065890536489662661209906426818288376626505642120629007430727278649585970194383283953909216946851428696392379712083269835606633395173679790791546961139849084692932231815600789186213221587929138555179208288928923783326083348816659668539636641673294674221325767078977691071937632448444442388057129861587433378438352790618752612773664947621871696060329611905527386024057179254716131044860001962332389934753369680170654377295719593715525200969825561178582856555316883433236477802209283908903439768517376697487021228277725619564500818852646153011417164043564788822015694271782399672802367533378897987841996135886407274721770189956625120451617851509101089783288678231919551449647190911472921412583521690376557837990455982864363088612188598266202781022993411373739844917907217311222179270074401334676421799069467233388102114217016007431374916574135356804495921298151874990454241695984186730892288412916187900005006979560774883194052341137388685056295579557346967818420356740922522552614802505775632210361513575938063968446011780806310890270813373562624655325799389007569826967149406227106806699972493703852302550870956147378937171442464070369192043480390046179045780436690111609200933898383511925914609876651771485459562572469410620252855120659051195131251940617779055792818454114443723602387030015785043665560196507606511445433892036600705054775419052097194659680214329745248328875614137863054320896143513014878790060930440730246650288599465909283088522441166634164653927486436426304946873900104713654680490556773655234117101576610737119855291125165694591146734577736819232408604537568101807656217974526899661048764360736722797368644955739042079722070496036673635009376317860439958796748683582826296517988521694816906764632819405455523625919404629150659013383156412248514914520250446223758323754155294528451133927181331128151216191429685398731075361180770199071429309583490612340232466649642037591302415202063663144490308971707959451278416015327081447611674491890161067739289831417580541582894863834176016884229350323512128511644052135600894946744664863918704464351332850643991105968797772852939567464339196560272168236440688032443432675298688328800550503287995471344955970194676224563102606939891076350357097764826233396625425951671834448826595286414441902592363494516855313791192235269913700467210318659974739477594448872287936509856430694757445240655980710237819648475927028588842283717319906742714590962845678226302415455248604486436369862750972920532355335799396749940803040549608069595202112265189922241105739920902715004957555094625150158076721310125981962358782225833752690771320800452258539409527673146590689714774821039524597445806365192114999690814658683727971436781772436603093876708774922905180703569427072411466865576280163150594476343592408091908859605322109744378506553355223806068438367123402477894268649509458900764976689531459029721846219799314569295078612773814429321422167857157990771446336496467119231680896438742195115725546353146914283797123137815714924769138296744702458960731725699204825264225250685636032665776173463471110234445617886712857057849497523792870011477545461529318746783166281632148253625798145362427145275175893275367896169349014639723026153801742336984934136353810573357928464205160962668827187086464714408236630371384798255611745766731288664565813456394014605801107652463433540963882227702874162215366839915984469790716284446511352175403732526944957306110292872149933594833550340680760081555819356203095476209384140372767190640429757848360965083920149908482323836869138256484238841040414107104624775450734128207401773722939391242662980809322432266986604494913343878368487870263896293729725336601853998457421092954958668856565742663999623672024394364119995030160431028424881443685958994753860119805560470948276204527661189531433248149521622099908985512213095938047697925075088211645812159946673244542013429658279640615740664151698462043281137321325364167790065662316770593985491134303111558617317801254053242305162065922870108821652671609465922545445200498899666040694488259012955895130367397516240411329918720703330496004411458462239050311326815240251669535168829066903699882382351800638594890328800518531948252252261641370798336379529979455097824951682513620682086945350693314455224969432961391657415228945118152318006493895260034693423616984806332429474160167162223290788655755818740609215024438088662483482582931073796800279985844400268443828490071317907175255480586588834190323403934301820162594369949554903890559914759106681691546411010117802624491040840925940548559269537792486273367539266258290546214697179183510507791249182858560048144357444295511662905906396430438803634530684955620784297318621847916424512906977392074309346350684882028098316754703433744006552751914724607034138889677004061409564288290293159517705531427071747600562123843264482522492231581938512415509212234383131489159538878339875503224258980505078954534109662837366102103514390044202780393944064446453286172000881652123685491653303089301863156303556352384305373795008803495617059153746209182797891390542098418144518676331282874322453676900061711105966859991417849862960051223851231132563162014640802825551890314547623869066969597725761829736462177092015177899481613822305987365920951210240142321468419402913544338982507573565646759065295062165749426280648277832428548312882418793966829962471497019437897209803234277597256582043117937427162228673155522701991764471226270814929797823763195371837683837187298634142707926994731879788197491884279994038046153089477812440049905382728601802241674261978133631500807083678282882848839524913001095360632088841898182463640621825467260413208930618413263791398675186108753865808090762199914993843251747120752520555369239186476163851475330711664011124360282516516244197488218805260391240475819584998758091699735589221824187548045083516160369364397557922731709025065944124111811640296796516261578426170355684221811352765907949620819484560775769035182922724096554152364094571371503172091179889301545239463920558396436125066697612702693611958507239523975787932180030551193815079172624957763376142946172778580919660818961970184250605378336598953790910688127153054338151659058712321032494947219414177612961597978164905227466148809899618044008690573000714408606990487438066167516254049613279875673791202013728581531724466333823407970902540856891676957163253415174718258173056439001031392301727352254290990477532478274699271597861205442070002926136812006729208840730615797755230941160401443792075300404123710303252456782481653243810243211799895907366050456202844452837864059154572336184778094276995498523246618861015802142144170149712344443739461041789455775985010557765798324828252761068992603537720733071821148304053749029567682012696186863104513065163435683121220696223859420273603267093764996279022277263775719147431918603450063763238311921423034478293493714559053835686484302077262286931993523622637651512720501734598638857624802068181384528521922189877684817524316317811691761297456253644347583934057909264817679058740443878881167921403533977082656024001585588813825938321890589425857097649436193606141500944645513423862113589360929683484961488118756616036340591153452584777949913011914298828283038679717417925186718025384591086501709022888130123100276852930124835218201641065367648486139383273439261216523769323201078257550649877985693306291194143295591596502996097423660017844615017343692169586899284378469924393121801548271904795067581659145740842139451894459742149909133259428716714793272700168041436310580723570966301773561180298586349593607227742317854317938538434004142402327200155094149798640032236545256576228392733205130677090597001428721701057536110655288418341758493703695993463978617070855407515707108048029187154754961230329794748818048841288157385105756372757118947809681716351335082009807535157746409592296299552995085034769422640734437756158474271205399406002357611050638916408600741053585756909317016136043518970844736458359816279644043256747999860817785739792446405209910906560716096777335457526527124009959352764131238111925864286852835221315508989813232937033961179577020138111456841434311879951256675020370579913737055416636271748340034484270695996040862199222806351314987086608240035133220669545282353036795490711003570549999895573650578469879345629204446569980396937902897108927608903391725540831078815675781717250467860806921198933757260693356129236983434506976825333245279512345680017057629781465434102106105869728911979451899397018570738685806454533726286895357166204872948669410581204078357867212715532987953804725562483573834719612490958200041247406964688942964616487858463442740316378884708574690125925227874395157760679136046267742585824576569470579407451457801189579477059780342350448897586880258591686420915491016730942267262564405097212866832266756725393659822621414204947626270338653863291229609289325416288700357411696168214294200246348796530367786293704670139674454265972781344179689957545057800194328369352514524893596276936011981442546548603683039590427934076981175633971818573941409141088595829392137328885867186711112127356874451809889647767973306353692696420750475898009361854762221094504657265219081057529713138779793354358404634416327069648466762716920230021479849300710241206885117868721742650656595708574131710272914221271418582084807994206180666269395946520140555295925965007739206162590496438866170271463501333083973905586489462647832040490164103960468396131423811787863346624182197557523725515680953105736899720281976201356519860590611743836695674998645748964334870207152228468127547551139346602691564774068733218004721798679109912430366355526303608003365884276932065243203877533851510830280139913335851406732904151160293968357893383972207990815923492493501057281568809039705898286346635623999683575926396533627254947837047707142440513940456745781389730808145006276929590469766986807286299546317362787626977065138092299330220447795003262663138289174038017854156621144670336865623245167860232574394913949937859416892693888597253199021667696642811025209653590423611579661304786111311336966892188431165146999310101935106805936454887768802981620395534255601859320032003340498060672125153505812785577616259691263499260404982869661338695575883302095547525471474492510072528293195312680967608922398444853313457715329652997887977344104962539990127262943829376444961133515554721382347259466610914701991347807779059722210126807809606358507571120152680679192739083283180954783465306833046187246490865607062106886206975955473336612043363869668130730276016108154728295596449393712231749796001224051062022617151093876792465738026683810525493154562361056476707847707082784016375768523740524418109852386228758299786787158519736103701381909855735970797767879976826333201866532434440318518473200866481949293977424698917543361476603062780124995594932364165830483539728784649247956135272858283233735265887532256925860809713647241381949014338383383138927282397667308999064535883074246397295650945008476658197366410593109797614504700410855958616885967205782688705113377084979650552511280703774143762183128753015301774273732301113113293617864283484425739966554846352894473836708629620438347510048299842755713692063549488570402213705266718107134500422349569077279052194303389998240919458521912429683133450521388814185023714403916088253593361763568519942543257241306968056032365623625784340132426405067340699494086904984976227246530948227069747265285696649053147326692779068869884749052366528026755056238658247917577534566422475007114476032957322914442065643967577155451352273146470239323077188595783104455016278336540537655209366112297953123292594593223509970861958071388272741712974364489724804026355375480093083801177512135422101688025510378154713372958946467987748377915124880343127561045450476600954181561308054993486777417567299438504757208775217187584496831426688964421211312678046198348016280086983367712140088811321285851336677205928427070789632197151586531592807908339589369634283990559222102663432903597528382738664396571424186040631502130066482913979509375545402323237126125704848355141390012459142556873222862551797869763638150138058256291766151150630070997090983019197527473745965496085082629677908942533951044146735276509481481851300457268561183530558009813929971334703444080334804668324587504342772522828094066357158448407526964617263520315416180837768858770859943540071070085542646135762492580653143215225314336905683769613978370497730802383453600513461388968822194133025437022214522412515831767853353295094265592944342379189945565007264826855366657962823726443039587334139688866015595209654585439762316396122963037775246960447842172643063993737425924637340225734737709761689257697449725012101939087410260342311512158611747335657132629202254115639278834541669517557954803372453515496314837202715222234742158378730895164841583650086412383180488898816161662851337339259032957952965571606659333526868702440367673936132067960785133355106909858676946262775599062122313949852025627092041610127582023031408763867688030915288424787879243521933252432086692041052023611166659871043140582493787498516338270122747736208584069908730637433926761324062862250579059685919872577222062987345873797078361557451553440295692310937519878701011621408972885682525121943367247436283035150079365769858324921761933090597993057468518718599752091918834052519423010184514678100155691711677736009840749249360246224829789026930467002463036605551648623491333071909760229495734146047828001202696607908875880476867468285382778424975933498425924399217733429169419306809853395680369910216029376878711138506452118563748378678254639641305706294736891264984857139351994887079291548064163284376190868444234179459317603961973542690968172858847256300365510786994452184340599694754331507422153385501167922150365873394315181594333897640135205679458688164705516722095721079264825132490651285211278380821654053710972885757434657293831671922530599887312870826430182838847685193014307342261464243909299342802040349317467313054796656090949098291557656143443500194321983664585394901296234170337332977738839066866704353881286115284477254170835764967202278558252368493410016323710792840451621994520118530710428214708876337992227432669048898251133861486428703356152408613853141864694290378472440625809619357828833984912119675638363797392508966821436310614841450019761828795099697869453808485628663827851443547798041828250515318805146770409074545699893743024688440530155403548156410645033625071833710644016941731340627582627910515786743418983354314865613052496929266108199645981150476718581405157913904810805495982532278811098783536456264583553970706417135998961195867918632369793348977939470788660067884289612887323183460297067880538843216349589764135741517499823914425852513982949808809789073478835877480520004130620577864340110820850511477779475716973462393385513889758554313365370346290856424029587905668688579845064248051408899329104563809049787471950999331461846799692468061894450642309868101413497158398665682466922913823964352990869330524506292485425161779288276676735901290323071822689946747008286682386765183835957518810627641627221863159401493249645157474204481967005558769570912351780896902385431949812161006727264076359201890566875207706535294274787516374622335405464080073274147839458047037696019173153868799336458379506029431073886106100973342846864002887465758907396853713306369247090160978008342935537106128317281564526623980447911603747499280069002782885955017287547988390750118946136176891048866815343418591850161787430298744271782266879272259813813091874464623698146084171177830923115922090569027455511453197001224274725749988051594275732111490919322151107584122483723629199059955656515426450065975738862726404977493682780773207469321640950258320352685423075159846837077333111082146065547405551615560742702108166697985465323891359917542927303348996231878155123881087750982414514984199888920962853682205369424402801208302806648862130490250509576671020600752168902523695014398200414105488027151106924003738168987944264101494188819504167285363793519568242627346419618033319824465038415224393748519115775549453309649348034456335997660665176499628197238286569372843238774447383321013561737230886985113718351667436097441017445529893235270918967970333663889659176560476322520154983138555520581403952574740831156284709795865548908186476929250799034573198811543627937654726417413626450790297119687816994985450614079743087879958237683484210466488352794144552970841113514251496068658354137324101824132076623578202568824814637867724919637407494840642306628600029483614270213843353358809990946193992948088603039799764334577471220914049113606267562358773982458694578151283253759246267022797859880152279713062544680877217003789352586001872851629925752469863167106027162358283099764260093540897539342521382210549937163987125871646297168797491827106433256921221388439399592118157451535783615358571146924908307643124117461827644704173414142297197630649297942073810300405570855275025897189358263248385243265166751054305208484919861579293070418526826004055691349428071825425143897380090815424522288926487570653022853093439210782506130850440634250023196941913582000203721912638878482376905353375171015948618393123040169824032776986741210225734154683563981795734658560815528853536741171078394451719538306800558676814202020201237919985064390700382372840978809989119572657763362580374863002619965107144383903425975109084060496103052997356753526183614457288577020428566889578435075645287405852829178859861701709893923916914906744635312941742151665597956511446599364338290294828740995996583323750055489669079254535371648746522887170064772634901000624842982328303608869750270035647034564910578819513210086696042462918115296154433368175051145187664128136962736104986414870229946825209248192643067539622865232533165857195627605253225721674321279013241884839810059131278800781236757725729848819279650562523876367429550217218135898835572438464096293960103973240736599027095848649736458205090289193300485336426703216083675655876313959731167829464489515695973999027900867145051211652504560849942069218176223262085154809331671833011569559614945269227088967281565567007814600631517294458489913330497551509077110593359977770602289903825868891704959905827965211407020897237000050865716701145410307501442466420655169044224209543715874575064057069382841901305503871688391734629522282574632794990768120899262017535658317657494542125283425210971040129566478847099264077853433973876347866738201249628910365573991496916701902246475412433550061921165489037644212311279064495610491046111174389787389182684805019610195754205779332682241136473088139844373008800945912865692422253973034865859374758725181745670893042295119417561201637381747479929792030232382873426883068165480120875588414653206778187793864139431814971538104925184869188944877998597555791970295403059613259215230136750427207692944988983674718315901447753614570501682169168683719226815330898999164133977955105905396022886972676955684841570368858067918526004534704400752103234835065647974033062346251069614831184144642881886045432158440315554542880503421490399680934259832292273511989140666760119669885550691010679019499995761973069822051085615573380623018565708889604791977240875038811423286080812652975530905487438258579168980816993022889295443831146439350215649926905433573741343856269325598046888302326434815354282910779769668534696965729836958148120661598086587182438164431767181532647452557114115698177850039776672299826433158877844304705838843161761109389273176428939763989265104702242007984723951716577182615926862096590320383865833716937335796716475174617855495205920889791145978784625792400905005618431501883335869347107219339658133537596747650444563227062445436665620551715720954807176401472446103373261165942910949539649821957990032129395051142672049277609550059515526395066739635153304375516639203050968767940930335267700436787607672843394048351356320729842411083575634028308093857530834768609831460585491364638248667405065112182524342175389852872972929340088090515768421706341188254181478325217549822288638508443258874828665253096210699501133104938077420622366714702834396230745700539678729614326536584092080258980082860231164093390014064004530532740388748138414928884397619808591698891578797862095104235105896217614028270742595581077605487765936755732979132289152002272130522180835721287868860753477329502369337049775138623359652326258094646600365197321064955900792900528749260472068570145869134902571296450698135311201827119048751279489159721131953718431335630741298025545225365837149417105379579073286414771024570364495028130987848920053246128311007684203190206506010627197330154522468340361750258147339087699558105112329443374580369253218227584843840546451308949100489830720638772078151782890744791467755232932881055274208113731945159178034285339237746914238748987847412645737151357032592507474724597844284332811030422383058140972964845873249974460240792168128790675048177802184114365750165968210208092082176041665336937326290472417390436599379941761020890116869238330739881536588338946859326316574143773670650130423068217813288177811927483713003955895076032141367921485532216872105845018071056253850181244947774444511657645373266401986555656930070166638307178827882692675604957175435506797722929681472464814964100768726303100413863479154184380869153873621439023933109598589105561026262417303878593071531156289514227417119474907189384843214880112350844327482724958704422321586196462919307852559460522012723242069752176702939264384707653262991859165688174632755888815692471871289295059470385797820352822157426527604012581731033296871220279292733572482237291410976498490599680511540294334269804263686220424178801684064817137620287982818612356269655272728955567651846332611548010995842215268962717944033187811195928178023376181537621739070897896559300582999838061193279904567647382655730863625630024086813784771510846214228936840860446765449013738586188275468095874917980317198673124984271810302462373701761817376101951350037338084163627002609266777031585531072714963403985299468869500461614706827827713982679230129760583386352927074533755828833480037338635509430646545512196210568024437727304731239480444952608731449074315242072701264004106693783796276077585012652743031846707294896007935216350268513337877573147615592570800729599392447097321516426122080230007976368221480743409643066264829848520590951160741261677196572186488249705388794961749505113272171444172316956552418679502933350403913413436086870777131993911730665791356417423029283721323268502996767320387893155401200868474504019012877816312233529897039503835605448331009586436545727319653982331835950190863809748971202012906327112828260739386810647916239212797739103133380561426926252570406265892361363717277864079469884608357013232881700122168031554051253542561218438186479364702717636396985301319847014696560714204182151059819069325184717051104302778205080022449550542452305505472944840571136871031969453470096703458942410615983848852600586390014252593523237391453285083112276008354238355015792494829228797481579996324122025996223565714699450732103381101190469080904909824913581606946204655862437500272152480229399827181625433853945815058423749929525773214352474743658476316374561651821816779790467926258333980405601782146416800079993593634400285213505945464906377690295288317140861849444801930557885884676308751931177715370038339552642326905057248178258955578303739515178633958472288768830811285871975603729940129493750421172271972736172985290129670971573163674431103141438123414471290747924077834944276334641793838335064050428488687488480644230002682275140507298527795213896457813032999219907361049448435802699603525665060175735189747525733168409050218993323344006146088459993960566273753685496993656006568415454720512862911103101511823811650760421725721476401237765698573143578558898707756348004768746384767086712929168423140829318427444997915446754103795183999872338916167953232785142428247534921463559989081283269144874047003860252114939132362679715264461907798285859064514508699195728026118345135604161017045504659206973944020158778595708229185925379878821002999144090776185083786788033296651716473661915914683862165499373326032363218254784660099155043238035749903018023767057143120430930904375915863637365978844777772692014695340706543809108103545807146446328796559801202730903824354687661470097597227768330336961683368841900000309128281317310139039487338501223105555407454691405093033660880897177968246263388564974937382564234588724871526307523465436451335835983477879094011570573041361658121450880524925626427572951365212106759193038586611942667264434954243643347271090336947102557559998156854482038469058292030081062972945084957088039511865914787168404676282412478512875892989730277298969391365627205770500175588444925432729602131476752481158352726751697758002324369234816616834179603679717975073743826341482265802606618449009263530747421186835815475514531140676392399897501748297492805060520890838990751709160486913083581262887722991149188359822441999346735117151555350614282009665400585548959132840069657830374558139919057212505630957067760472603668175223469808657921990525527106980553027694461518586349631477420445308672174436909390060942586793117450428078431837397359628569430587385468245592236365781745745330768699732774530455638160035637776549583570043240117174878677147543682706907738212899087290557611294078468587966905763328857279657903626107223222028198887566143236084843689802063535454893117472267306434400899720907453801924303020941713929903781704838741299317212045879054769645578708476219858597058612627798288969057855502340840242688430317372279965016259611029690706958112202201500773598235562602999299267718457191507572631805227456809165206797711767708209324279545951314565075496112588296272152321437901723119633716512676101740147486007274767157464159970918374577796135393271036583231653732310347327476495185600530342128337190402523508936957276365812416822319631748265506309032113441250247252501153681610184550083179108102039453170566728526756059704826413215873712073729686415371070759221376856290073174449615802458152805277041866428925991868495646990754521914186246837274615361136467778433967066204089810639539925065755837166259319698839197233232864162131377660174039706298423407071181427200111553242117202993148794813682838317518112506061623294692910388225787959221208545107268151740266824638429948297771385493386855781971206973530317432428514623144281997724692890839632811013589182495230624123218173087152532798022395988876133303966440547206236227943447155982906864422031479668068722665552755961326068846759713129516466866779032937525900275520864176401139762522705221712415874890787072839715343129190594956683241174895753445643814376841612758900161157291902973061096770830776635799179398798479314836199255816849261218161665276893322662899202233311055882345943754721470972822162783064123609798769564900423860386708830075035618413756418797614722688625082487984480855509826790535831831502284270194068477649116488087494781018630096652966827922334912373572085109452767364867145086426128289275631745748814222375953149901543353068696308377337459564061926492107893203100314982082588374453238882647140728932556953310536306483780708353698173087976945793981086577361832745787160120567392219132767535979588970253634274240675597479413007718084580192672067117066230782956784293708563241605625182143586734341238997709972400269746296061126547953394521548327085134702007467281685500709955396486613556995023866161844305345226874498556983245720443389096184102207517325888520468766397518383244252812039088000682849226310087791415269348294238465826416402707773419115838358145767039911251944277710945098913423090579951260240438019827013037407662966115702920980180534837027641353722452211570350777499034758449243047470132695516684527266032352345345697163427245893743864155352066130521527025325820897735506704720052205497031141309340260714495642030806791158470440733184710440055113804649333066600676892854950504489186438477016916802649343773929691134557469250196122366407640741858147300536745641384962253108796101553345173931659548165243998329390813902626876327890954513855500627239799860207854981276088508748760777221487714218911384603797750626437253090982904913017013014604654423818939255576094782196696167275067859166993736831634023034943251581154509628081486544295427716481179920135492616826621886215288338351832891216606175574521432120943115531481398990689240780563205453538803268360239644165501166130343079554654846805428599627523611491460335382153988722798589595152923454155538046287685940096133181395176660359124487725423950040702230832704736098008483249322084768171984330567667559621080307254594000220716305478767710208194293559148137743630034637412756458374203374661059333428969375990310662821443831286127800087671687780650683353430690361865477480405914171980935304835777748207091260656756730801760765034020285000873332979545129078267320491371845373821898867979553337970239368003017681205499786284012270669684241045428537933745144805481685173803465710252421016339526646631650050643397534423204425849031584355060599788077510754788546677743988513217153274617830119488654267897399742120303379189628222166815535535359598847271142885197838371695290408915611617053469697190665838259959980922281269781461732876399236220526113789978212842888617512402585754894889593876532843677462380111296718459026359375258096002300026776768270270484090758894610797106485280039835355166597920144862920977163030924006057197932926311274781342944892060379274045119999260859125972260159249883787392589970019261892442335946313971441475440513721701760604878268948366806799632447571290962522917015904226329994642534723679192183230231833175736742329207339696271372153405971058009651222081100619317562429907113959926663931157134511119992610411835105403688490830131189509526971652958009170555769391478311106139015184497653963478290989869691357182408866776981694098221557984514064734674001400513747825746914612788006528646374866577398043051713422332159271192280924443490007648499971622320120509726127991913015313557764611901217214382317180785819785944441872861641495355933829593850313427786923746931210454430299855262259167404085666986169110445834118927138529678904845018710473421698628819607993058470748278150376262582382380418226729789098945529729778756816275607544483848206285569203573881951441510029315106400491321357838702762299962465981026096066915018041340457972374799535559951252411809289375764704461399529965504734460972144158242773620223660527112735556140346970031974972600537183890185076045841294026011159101223699682105611936340067502597400615698170897597297395140017610243710387121421861900189811409359856886389195133865638642291925511454691689268154809167127011253124136311630705772694764108887382679744063247067055761413119297312246226760276478960690450028913426332187157888601218004059975205715162425034251513935376121564057051180029042398135527923226805346738788333285288189861247192110761809382691708376460251659833610401536116417892400718286420686401214467843305453099012315116066863268008616053942225141726015637098229679696578764528061805534056545831606330798625864048476038227347008864431297584644858855303282043890125782638627685208124907130695828664311189952429784398648862031007338984680286789360042879555585499865897288566370239736564172652250618648126405124415666386909737376866445733603893054004842100112805790612049764685815025308721357182221774854050441430225297043444790368211204307491935198315042834667254475111924838976372429707412722618845492755068814833057688878288700458128438718091669800944431532864401434346644741069954298650433781608612925570070446843452271537568681717485284094249770360029681112917868545807927124248724257648804831743022011503316909885729492812487587749773798199496993764008037698805177841006609322132093498450167777161498949104928274991881941232620078905384085061930580205065348886097380312435244174059951429680485555664087047618199286265153149672910570666301196177716700905029180787440331452455418782806862866389409901852122044188796879012054369863167300519902757403120135575860009046712395343673392947769317354064093085087128256264406418232684112479178188231641487737962044397584495238607578250426786335921741854348250823561402154079478087461830664064605071356829768179958309246283343512529690267691693977259063514310183356659117544600473578724458116657860141280856498724776126283327495627310369958079428117496207968096303540348446659367853132800622135158691413153969527794952905968539057306844975552397881980208867898150020493007851682428755272979052173529278358963924165447448385133382083015563074775947446403552066430913440051372027957821958798279239606838628578527636709831825381616257967927591547259187820543517796661668958394731726612300709273761215620932377397465886503339544342588000934445127219090133835336531899797074186802795089424078605231663312259262051884116346147975727637800462754218618790661106246997969282869706954652234301994304922848482776422831685590643132987289000386083381992017633732422042157386839799261443211015841420924390865173484154772583843626863218765648015252489094573403277694398583825409303555803368817863301162804958836589217274284936695522459132990498444460796113334498873468500679739863253368054308020532972655092075342042469760712123391869918487846388573373585464065179529960351398065389194196986832474686704249363719291377301081425754157269501213413244604754842672443171302178603029468316744335343694763253001281155594857583183364659277378860160974573557982877454394786639273219597804820679375157954628856425210647702086808868054194456188824956755192656441366099181054138807987521572001757146369730610556028541908845681245791115465624846511720756540412159207754530512299258147631162665397512241920979651276015583467070740974065088683466477314069999322865560115584470023571929211171784750119029662476098429423329765989613538545433158402008199658298902425349158179421514951660777331537308065482290082722956298924977289758304147650388999043092972481854853996660047203385408205523398280806410197653935427887480286327586177698406041991235882677978514764119824542305420736791264639255779159407724622140511172798869103594956883068596067192475552571210594615282993548103309782318753035093060607334474450768049018310300956548035569927853638361642262077892893517879097561029419838861967616619381330988293583170601327643632406349588258996822037443609955930793122593239316365772175676357370777374259149044811522652722077555589696084086912675801336454434043425395616944353627228993547951336198187975870018593039610200052797921730804506317397256104112421744207695313945171206060143794954556102502244791877465406991579034882841269627274607519662107287900357512188002946953615312710968060047787229124596168668771331218847899456107812251593683525018168236718092014916587135908190621454980713881416731349177941015471205299724255631248512170445871795855908218597620549362254410865422745483556392803362769474384177996861159172247293931261825875283207487194059865750918701745835220715272427336579069523101218128989603772614526959996647944123978181915866516994564249805958745661076394079719988354484063986001412115916320394345215292425139578217672874739049926697984924073739035234714919388494611183375106617635547961820670197796769209354889547231513480525412441355267722506397187145954034062454137785903431554632439247795729219851898331558749326914004793932501108533281360979246729590681250166956075566185538135801626309296214347481009978950420656880562037941463968862722089649111644346634900498469048092051063464112938169140817779380790513270649581626915599819850306121243814966561349240735178977091553698498733973495069323984017057348938168770871215623024621124111440929962301410915798837498651530225736198223353838198988315760830215041227106716114200608702663388635668419037456755255710621476800361413561316105196672528800775382627468315069617173450870889872520161069930705937236074080614820529039136441710838560399334535693499611208964404029352686909372067609782674563973895375404279594221627714789642050496362936343077030946771690877294253774163058126249098976789440627057728251662484132825777739533071950852329605796992812691205784814212431016825348435597486909010117472383967323572148210358701394108371888454850589255598751633802663419231413358942866966861257105636588757453197615979911177471474468916943574517981990059478358479583128984357848135402171847402573072064782925700630922163109306154122110210588424789615805035919042725958679623080825297875900167165202493932002270914688271189915753562676221724803300075371594221353599419638432577694178237285925610552494135331345665716363064463577762167471586916856174132925624608249642292395613171628647768617275765934739403115054827362457156703802387899406737087545319644979790872885894037068564381472751539596617640818537635907719432272199433712352258396604670766337748831117369286657404145555423536546601528856784201153635898177384306138701071685161932663697488978570278678096340838077850326600889745716922890366557213582221338982260571372057708381625711866357232387253875649142705478741031835407179538031700555498513321580297638276869881100122761056728083401852412271128573779033003541204078684380644585979897144276323919531317642203117144012017992485631546717374076438466518881104070703923981675656133679108142811111287501422613412876243688864525250174759071649784308472394355521896850806063628355222513322127724551030058977008532976137619904168427371651020238373474924315122228092757134183323670612338169250160271309428572783073197272086724189482826845495227217635409439830887315718376635235849100925990930135767926456250002303547328835478247219934740890530995044094086134009642230593741979321376325651260036393702970325709231108865790742800253718180496130914905438715004158437190577821308052763015658833825302908479117506981714372135061722328560672112917605584446807891599355551279219803222524613902171343469700521747242837489401496331468805808563234915396792889930476522644486771783583731174033299427348278068627545310187912143711589342102523526062355292878718696720843897858064707088507221063364700258447047923871312552149497455116375754887398944025682101955354342311904745785175017043738817235614930831209310254102906181602277360590118842233532718659972651868591294477195716332194913181921877569028465433909067407380008720306164579287200661373624986634558460873407717189934789345680335763003050652527510681688847291417519957561612666666656362012411381483220404353689938584828894134363737807370795216798766967792191510640002335063561462376682383656632739811808300274509580751779727500033099102280417103853239673829916651585446949529614952336485570071834950610813763524529182124831724461242288905982857770403180220398019816135531281995514094193260965221096446843079849143584968766185344262216176281690387775739449357914333165738326006263010743079728336325292907927889848689637200405909240928879211990213903940420179534885511253497750061776704089660125167723851752924679766542031484172817095191224146921227023186730902842106839705732940173170301497455737584253238627561378850085423305737185646213981092201508066571488710987396902920750054450323182554823033634022157567205307760750559204533444209340139636577122913145991624948495971329525066513152755659946094595095492278263650000268949541897544654013002069412900545329998356009768186439795987661542962667274409238688093880791137871003118969192066005492587864431550451630919534742294827885067465449118171627682382101248932296917722318503653993803872517858798691915398536836348492985953160771438202176253895458400639554020124011172512103683385701965071098481911448562018051612234408532126074371107339217648940234761826511082310048539065197749779208524135911407688702684953035771695585637009149612228365032436906007511205635549847763901601554131220816092413940489094310074087476181872496284332493507703176021907640935577369730723065968411947863083524079154618563067896498985097830675432479228327192267866679888688963071714632148046772310228661700806172964669965442242465651070630987703826477733966197279394191953084345820544841788745034284707498820513401549626255181673933523051824888467686284327773025249335464096768533915503749493867070304359095336561125005075031758355633795332581730964097857652382138968854041147680013086485803382025229818527912716235050357956468917546666682258158285789004176219025229457683706226094087949287429818225782545127970287202293284815485950442204466533090222420897179181361454179065870185599669808744229124884523980904622525679863289136491584471859779398473568443265528605797031119144036223208923440120131677229591167936453227315271381732141826383832599840972699212375192873586418862886674752455708249819660627128981738269290817155563122786491712258249726062687332137884168609824091924955385725347387142134721473917237437527873999502923460616140470338916832887520417274590091739080296848402456443903468902618962036106980444659522424404628211318833900837039082731286192015200835704675368964340437577410102981643792766335964926968981686983763136590022394969967266797340309657709432470479205440523419810790183035557111500368537800422646503559881441959063876662981068541727085004139551835322602750856983974136531137275647101954522424715813445279339658679279765539463064981441136725599126446355486401556742607185854107044205558236472695372264615080719117198674692757981589274723607780160139699112467223798337482605213452228478119842294683516385706624040264682801967803206411270656114068549808202561008205334130503581966790244275799003209615191630547228080682239063391160234305212249058983826135257188507594753718716633502748826036059002827190512978115783217644173825404783862626077324304573902208072578144118315787213921177174871194790804243420723592537054697256226610469955321143052877840840779214556500481213399094515588634611045776275068591584718835272206026357506576184179246971755381441908893015723577579189199242358939039078935627742189336404887220436078718694298024515515990397462533479344890911901492024575259715126575577689940923359592596134129393984296915488380686420842137074774998101669057352902046314653627328830535063703682470248532294646008300659144304273352440901579844379928676731612957463049151038003057760617382915246680641872070883125302033272470183207851658656302040316471320639489299300355477638180898434034566522972040029944812469342277974595266562942019595859511365712033611675665474471222516244610097790205274927187338194696863235034624313223453078951387387782930258082957801216689388437363727657259895004421098729910911867602933321977934721072634265186299652588106080760175365749371841761791056869400681899381882339710120263608389952826154637525690917628946071392338168726153693267621427954856439234331522006409151116383463269408837553532957935744646271719251999156415951871888230086232835309919360006232069023987148644739518983314648830105786726351496241264500074136180145919462322879537563815032764620717649286954601936588985262903680280557622380586554057821310623042081584661265607752838488744145866336916817170628938301054624333267212751181850948991716054092373475819958967544354996859414904521124751444562612816862946734787799197682057323641633021492095848991594177490491169548919501161342034540069167345713913811834608373084456000973569207632788811911122921546063510197590733233689939080804387247550940296500192854389980486752537430531630368302587652555582075436312843720759346005583794650422803319065186228263031917952571820540544462989931771589131478983220262747021644964951228366020132674491277324393586831869467251779613122187548681983988491388020180214204294066606478389113188908162566818247845123002164202027591056752165901231153977374533311244967400157548524281490500397657674247982852453141535398880056204454217916848926800179881497700105448749554637409263711872483000112872800221612707521065467896629607841625910856272564545568986652772771433247585026758538141345004075105498771653075947679560921534041670780747350134977655550835868998259015546404628996604485618029003047601761958574729715997455977994233189950534167712144276192821969468921893563142084295148229420471691204627313368723971358582803718425426224510360842627993788622844220895098359395143860512902297264014237001994979904434494728146049044518451962440651111336996056334504129724865656631510400657495524870741397663164637576286848080436581516331995340600590737230224961059350732813691406343486070227657011346560440840032699281233744652349014062197922233268733701928424646630854960001885421408724342952941285852759645092859297672466749242088540978773672409740039407917953229455670451696899435366048896506796788257749068658725017362728843047300071167183949460829454875097793584959427232510066947328497141425423649816768882870255221484388202868022568234144381667950367270006245418336805244897159885360194498353057530893441357392502694181553731766701041437876000068188291259756837062638479340481367704678795541896348653702858314184540140158632070586480539071950995357395193787116393719303290140935136309330588030622304482959849714946584373677164287176269149905096807555787172978737437657848496613258887687765804661327742074207110326750388329316907586789077521593480836822443956514776188796839394112959955653236333378522769246500891733904690482186316592875375768849825022627017756572690726234047467333909244799216146782463331564182575808982260292703896521079446304335892567116658192089469718910592840234301721703327418724191233550053562274560941630533442546577816341885291386717270004208244810648823585503983596335610133233579531072659000118827767984391535748111034487747149186144272919436325282149318236128984308124078694314268938435542626574378272405863069718237288968702570344982496923013596037797935468998982972415276649511923314809365026786363918773738632771259138041691318515820893035178300444976339531202390945543120177900866347087877335229194106364799085860908779724210491035762731432461441236848822251502301630049829748380357164652555947075638711205295216529181543035578324719033614213027885122091379164912546193539378347832008935079729755870503972860788093825994573561953371994468996609924848364519293397093524411388796267118602441839949741866346687792588833053058531675331323710839112438334235558189078500667105403657992568915159270363367203140798756286931385618098206171177179604297669827668759077482401028278298065898945560671339112980655328276645263059072526926976220439525286564560058077614262778665538833202770958636174189587600176747302382474702341813155989033474662091430601142614720614082381682934203509917461100301572587646554671521223332061646495497789136501280976320101485682453017327962665971146289712202449678429428529606193011470567134861110062664120238234564792578474138827980644235181977385440155293762103938852810243125095606718507803964821771972995953629020672477156756005910295354211466561828879471987935347152319868372661674551568108323567108115054692615565784662684121954148269278208084984637615121066130380804542672910289052902205779643519388694078621415049624976375651360240523704545110639821884334813145487113762599952760356623360669721552971700745941823345124654472811377044670636618364568812069920015992738614337918008005972523287721120113196965471764297225840736299350503374181628995535147545422363645880712515700731386123257571573566372255709961535014715164306260616204618670267368325880901100566677804239415628470262339877257944380643347102654011198657508423287040745160584362417010761003146438592161860229194298150294972846536647927715374040745329944405190305668309068187772492882568801613839466488281130629687381348839390280792634501095015643951487906427644126836839948864322618501835772876315227280036752773252771695550992777946945324880188047029872556637416121007349782702977448465497805345858094708225642064546084088266197069068960464815795908693591551346352940967186734819378111226656519158353589143433009398104181114501107467497460539435800303196646871554317179551488539160787501611955409144389799955614863258346329733863772764058806584373817643439506545356799480708210682806364223119512940985402766625332289979927772861818797199540431880361049719112458079057607800304145225261308673849829950946844095094478964471255793552858624988102836891126919468320860488787962105902303130435113452328483237711343788214733633064786603091587502786796949866850853627747177546614563131691943829919040265394456975616957626792552348781452602852444239627241162964766244772798977174700386632394419439554666676945984375114466044840743376537631752417641987653758123330024934709734508163973044466136080849256386678140346168938318312646459440472277782359534636028438475659914242706702679211024434307196354622088048420529319839816401277520211310875484831561721045700870607948731980487258608031921963161243431745564844800740000434012468313238690143788474534354538950746310596475662756049801678885054571315323424945907516502267681290693854950860248136006926341984050086844083205839947640301335091580300490005244673522953287122867941107348332358518383930166067678489533033973534301246707210730599310180831703867824734384508060665080706044118680320181141834014206250655653056874588557184048703355768326498683982179423610658799839945207916711000266314978616588151316669832723148337240323133550792850605226662057294247758385796252028040928839580844270136878624716955768619190428832049915627113860849290959913605479490807477779334079234472196869467787760356010260587736899036915239177863041546331816094080251328691352229505943583398562278860523347234468624694580528502612650956690035523596650788889223153090442630339109328075253908578166629375050144223230387424015706166696821137189383011381650083922360781813910933409874992796905088508074120904669430148465868681707412033437787298518455991413160155101253858228470509565468838222273520286081445303745759138664285165979696173187439823103036272848570095073707396434134393553094112117066344810862169286084836540340243162007769030631334351810028230424380778210569715747929829968258340089224145828774822179389214143530698426929875937407153968351154530031623027083917809488946464633764852787784622629770838948260635238935252026073561052607887615545472310987040244872340463056841904522147069187706252693441091536827130144844176798539684156654574768347868608917614716909463331223665527975262935750596816876233175512871568816758524214045025801804145775341646071295909472958395718543044139690380404966176178637173663693408056431858644948759071822222642508647619283084105507121874972366062611233986076079812726916857875202375618325213863225103181538451587994297530230664799373183481592479325978212781256523396292972983228873037849791227671119447071309856837906742508349085631277858857455648399318955008623346342593121234592944713707376048969575634940109637321167004565344631769621090123913849462915604130915316401001676733550467119320690935330224814247108864173344569536940492359770532254325648571984156854510227619976718665426379405234251051987277004792995998005686663306909566568874668482058884200327343027122023359574403623502478705612774778245113948264266180516087877396132653298691088783177174967575223559453292075697543098785407632838920924389288849177580386130617019190703094536457816955096848102799486937404619120860694789187957570487726810052806247958963811026365866119801129868178503893053098371627865027499346670261971337997124460676627149758156591078020194762186491008085674746668291567338164005356895633159495598213374348532616184352883146895617827113267778882530980079445865634851619115195574348836992983773950158902408295953604947355201742687136937107727470299621743020658187143147737682592234120724666104300684158295302500793448109424745287317594267713844325495922536124378283367408152228364484717867272845913534480052504455612825381490648708425390046888666825031707940046282283727384249813207417101184521065984573234013943936146625791183393557352826033286139577370418995460790032467880495516310977624610226449941269973793314513760413306024729467310657562780812840010240705831991711023916068901948493165493835611775410325288413201448757201559933563330690511947570069855783392998785441652262805569556852474539986580993082805379146965095323163679863971978780615360485993800058633742609932683026466705470920125491969991530690075450306462407896712431694975718482517593827972528020612037873549957893910783021243487666625481842343668822592024583053170867878905168859709417327102371937205819555413245430180519817313031224004982766205771928073642737369011760737610105628849602200362763565007989635107151825211733539111217203184697931001222626924889875893307062009523038528565830446710851443225980729717833854784319970053945887360512360753026408088464439818740627775049677572116066364870060632147846747822621944681864425130226892944180447022393679567520276111028163862036351128498152430417470622326185119133417562010588106078624715216689470217323286181185291063176056523623875581299579466970051541511712724872433170155240873780127924088653556452662546571454934091459621923211329355301715982620044961498692649645027912498541834640768620943668704107482302943592592452092437859175422064767691258083175131624631951796108288392500221420307983978349466135040182168057559506747680971176289870127640841113278035336426023750226246749533157813468125279204078226038335232181211733559276781775844462236379324796595634334919244271594061022674617759425749131769452054894873228609097352064302520059716805928360214862220828723968720260891510238555602783242695664310413902003780912303983940547806965361488956949785430640821109481740124576115543572249498066753583768041250159521557233100159555212528556583820919587395769024161447760111246688287210037773124017225456728067658685629620492022635322266050975356868435671949303607201033967820328236794527906820239564579411096472816887588829865514882543638041025873541086138153619990854292622958496646151592732950973972235401134950649542433808079964801181060481215096575708203995583231376901548935751047140655807598703886202814015769251008433411463265602132097002666497266603011631502408917983993026542028849941165482541697413288856935930422776092789610024000155351480549325720745011813897265761622606143623410055761321126611722375014803738081419927900895004297907161902617547567259255288946612207201704983505675558504984467778375522909553806474989423089989144823213411263135296585615176973807361811096453406344366786203410148688908981894963787820269758379473025007553120016566049924021843029398977576928609280799848383479309366694622018104613106881274873185478072988998240067202092878261360305241491484100067396846293081311090569421227982163398861292253526978875199903067492061803004961038041125213659867645093894363532467742723301039746308941357718466321637226967761990244965013473845154898608246318179745092939595668353722049035218253238529657554540914133334388002974397598676673443000851373933032186835325503354761222929586013093187736951390836806569319357073300070224750504413103183028121652708579676012487723332788769843228899394029040539013801890597954848392815752524299163672492241562738562349552820470447788062115140733735110020325878044302336433912035892219174348900402980207899793008210557513838522417303679640710314402192127872051343944776565762825440550440085982526105640296513705942971706553158773679712790649215534076751334614085543122072025487662350276521548049893327426928502907208897906101392822545781263876412926805580248052689929317899445325865303774057730218642283802056288241376789818880054908654755245869749638114444766841616000918422922710648996698545010279426916849401433216794367528730980452349228639736213129581678594475549974386303322396468609898320387215780350706320907186223949409806322143187695365896546462112119770580941533656614905983637371234249805394887110328728008402344070729048961535960884125743029568559963546783323858964713028891677226477836172916109812581755407032972644479432697833164969658369812138710976244680685726084806417964388548586257175397959349261466340254850298941562680145897812355873261398408722585163268025429132089874623796275302816740679527796494641512032405716618859756606893524823812608915709453427412525711456896763327334964745598168001283521579176946953559530426688317140887559249123843746346849311793813325861606794784254714188735221022864845118591759949142082784388277689811388037781584720654460787248494403723700178637829424479121813966293625970331846231398230243261475536908009794465220280371329931830220368728781398749013212438806195218849271665260775668927410128815864900601006868781758354085964727475669184741310927405388047924682577815033994879897740246372257614823949123385580445018961446121675570593552599035636713516902659347604278106045329738164703893244022853171935315923962715358977883582967966286924829861068610979764367071740691285213462568118620478859691748802990446226158673456177190087450519915338267113881415598000324289944768703322150011701486702267952779366412445306155711564623691957027278981915976180642681422593364862447009842383751357047029447434964229774922762321907061518944704325415110799933393145145373541117960545158966820460759980226300652148130956119085644257818082314933753643708763190783465207008101533967662301895412406306677456690635407770157575981275696953515107918597431104019953766690236329725358915868649654732256106534288223624171827914731109951990246345315699615130550012553401738924566197440745194648597404934264425074266698209314299442841084830881723340894112711975398851422395324975217156496665963851427947060216332647044259704301741529296645419871338724542944494868131660909985277074263076712813021988305551849689925566566129629533298076411395180019736847106812873840196094473099458188174950306592456822127444325076699897767159006374692287703271145085509847667734135357228662829058881101693873312887173812062093900937902536138834266562210457515989217919588036358579942648074991190911156465281707697061616095138777427307764294427634632101476123408672456367729521279638124062840942237227487587879626082427864441953252567787942634862919104103399419574717871576875932554366094344170922523000924636771074592341925981301387351370831968182780288592606599190153598148812498918677697217545112057285911584429481876607459736634257283934314523646612643199879155009047876109660483917224483176876319325648902228739089274286088865566153126263282238587945438641482724913438179615537660278887360179487228620429799935548129338160167299837079828589288483038967678956549717339374114445027892862080388804724397589424428785746954567042920760613740905047538595055317279594136883108114125019056900408874094674091713295681952355733090761821167048198337189593798969297529931124131602769862459414936002297170998289378000497139952805506611542886796825842093021812470554038334072034241931777559080689724431205215171652218827539365078500509068084560799720952664985621691412309027500479887753327023546171707566379104833762339897187977242106906110560384289584005058628162315650711198533343828424821615958956279577876122465862079198824229279278546759767291525074422388288056422474506160532808851875696523872739402271313728003354448382726102232401845056466775166097405841300180717934878246252027757289206763087975250554096981797354492906680926002670138640819071833881123079583269925308600726536877944714379348866275810445133654939560405656362459583056731632268394745226459861408858350114198438054386898550206293939687820807846076150727909839339327505102768311886360985130311372900243406699339668122141729976139484207752855096292807074591162652557223033435495358442893907498076323390804131125604897382754935074685775677959675560667034962753130406228690944577899566508719816371742304171542155349938620241502499842652386501032342847839650870071949497092917227978497194258742463745743893174567383101323013784785402898668359663366841123269793502898954968478527901125557761660626735847078194222878458639041995241169906480661098906360237046113207549229300863674084477872620248806040577220473991233872965603986351496702117034657933423108866103284548642133559721843979894929963200612346829889880695064199411373104794298845035762042071954169727634794856689978602037761295034460608044176691020951914418873990062542830082398510711118673582027479418557392751425725439579213450018418825891757273958783057948458319563249928800831371320522680338712569493867980696747766141126329385426733798550626063061928734909717910851189985487816046798963370968123290656803143007282122746658950171810386115084292539400147269451226071709699079337228674367229738944545621271566989079788643553309510957997957968211457151904562987883134059348253394434754696720654048787491692681930441346037925013891548871097130429596700299710226884826833268889913861407771760466571228639661302387146653832333198892607389174092150470235406930588946782379852771917047182338346206053748465424195636313701424708460123444234526981619654321467703153882509672920747584045378638736607802751342584170226965487572920535955009571800788535401209352458906664972804190125996624696061374066191705347231124406520927466932045116623234019617661585998947135800275613259272514488762115741939997949090942463854682401127197709982186573788109285494093893462900608155440114424383519483253544905155921847547815426146369286672928235058874327942589907857358946002124186770878069009602934473648994530751031564316546444275081293866316517878063033702794478863842430133217048300953224878467826859798538885270529655015923632225834653301216928817985411506921177849147578898078667205826626684143623876394994791146273925693953073668031986048436508789074897939544599298912284041176932766127563475968206167567673970154551521979027414949156961374159030691147619273076597216170029764170437899780920332244418420220935366801643521912596449516167813806245722901629630810742599428118773862066002909031817606428754437364753911367195383080356693549988147064749957640593310299801747898260955670038919683118709383706076293667775235614968261004522863108990324531553420644305842220261523491392990428180487940668823357633761271228356010004395433272636564424195751759527986040015487460179423078370646760279725995790654250658336473895160769241353864368542266011566562129405337270290487237331531441100863060443374450459996643826382041654761148447703299411199866921592257336592185583750919043234185938026608879274062560175507838643085236496507784420988089634359800851627051451976869308109464031157292035507614138359314093165033370288032590028890040324339526759746071208536494644137145000363768163672277855225152523422760889320260233677513431222081146021377335654978742584679422976569071433134512842575491882578886622952138009808849486422086589148641014199063793361124425453115945652553565240018970428061459497331922636604957442560422526849986278556921715546264375313781932388612523677960428881258676605353038840902666984281875995422737133462420782094754259043677406810704902071489722215011714091612490096506196034170834372235278728214964306843663135861955412257762893572904906835473322741671276441139152919788833436437568653429152294056908094021929474777824823973743043121851714733236442091445941573254344216893788964914062927823711544161653150448232645919823372933733994137532051933934513051810062992623734127355096694836010438491594591004660055456587105212549971088627747229367340976223097966208721792093968798538657518964657120037590781360819968851037238073677527896190381073946552630050031290425492709523708022239326869299009600684800143869323385694555663992393921093587184093769779665756797870084561119817745072263088477979272399361225109518582168001468269907045872729756193704196620521365460177866983881181355023711972909884969394440138888597626130311475861974569753240227249117230439293250727070651292126508200665588987635997494786068082312666462399194861035660648541700811906251354015502032071289695759083623001990063162454062619643828879574366236918435180436206585223917351705083337954822666959537261847689771662361483220570424057975354996209557994375368342428158371448819925219926673831539367184685467456019413628127189597588820425211775989906908662817960467148160988557189869448829861768799412074540976229620704316843837780673293117322584620279271545507815475953935314349784180951179144536750496672592130362763512145735950586217329198009322093024659422883885882944511436235155955474951013875507204386804912454939502956601401707227372746779881442491123670923955699604468087217743300207522029420220930770655345809899712425461547333735780069360206930266088159546688901731194940926680275567226572391416131441404399305818806020918721858911061600159307706547428451277355764188172762191200657145780828819820169080694334468080648433386534900633352099855734777817539555248678933295665709799686858380116367459251784325518818165863578991977089732707804464045501523372256390926995097404379477090534026581520168695373712623552804117416978353321859458082828491424544277468244691127192253881917522946054384743125700881498235679955796702155651591506085552142230024940537381333460669343400973677185590089295805692150392717715230365270164720914431213820804114288608531585674555125193085186386529511696454820331716104667720799481090911731024738217935257208539848571388549601659568377506534516336207582474089416245283578371789177331886672633991446219873129420101375816480870571265772328642825350723183895050245305413234013060917223163409969246560831706606338475609284556354491979994791828478815513451082307513364529172539267744118263738285475924938137419899302691169590873802105768821198896950841747604759183810494706673871412441276751038247352056138258611679783364658257840142164304802199149666744713235755241621086583470287562095573983721228439462825719267569401438207122655984504738627554294988353269518396632224971650114025376402120353299734617539676975178562943910764589941671733562768303452973620452068144372882939205993362433572650105384308389167963521500652407044718910858293692146634341598363133313929943333415394531902408749039455675297588865474249207403790446251542379848236008084985727183344333263813337464401021738222639600721998125364017135119079371194073928014897593762107205926429221814699772979507280651331792544687784064731527115131962754246569079165756386871565682572271589027167646828236717141073242229951425262308334663909477928816636160566821579859107338499090552315221685363826915431762973021182654077964030708830688125408184375359382229842902157331335495205885027587061317931427691667587402957682362564599721555690369495522681319720920856144152520604018708903540329098316988161545224984396858811459263793692298395982777060786355392471015607956908435990430233928547860175334355591225912192870275523409056930410629374085240706848110664202628973026750497868586122082134051534261616925885861344720191875581105190981362385236252080292564065128183703916866876071697650077495534467548474972801464550639932165969510326907258777932513819286506546321448730459883898497944614028571715743558185837858489793621954131507730434069368713161976835315499446123500375868063820775194202483388665622149390707883562820301099416242285206647919509101306561815833397402121901698345316360334721804124096616706435118686593033708533100949669383106808595440717153620354862585486721273332425755864956648074734338085422217422571193857160389605520199644143082310931354560965109310691724789298004940321883019181536301650604354395657588443403741557657044641122921275239735134157291849891240240891921719507884379624884045772817976314686106592276578043218003865169320418525166555249774739668371906954399232578324596420771555186438307240877246845045625781625350926419948940864470607208780243747481484427110280915875722455572154969285064492692182688861070873072454822708435604588352438301570887512143810268329562438504662881879627770196673877507383562611591240228389706561226567573517225340988446313997469527874747319444570318207478629130457232102972460654954201529590071234744861470034948964641824950753754952397686010714967751126546239817530198099708535747834909450448119901694767046550533511725877102331853452768493080129950625660720283314442567280340564905054236151503357594807304119270635346742067877598738700944554195053672846313867135465443576537327733342263160272914332282484025380775114590212238686664518220414481513488221741719738388322206834101665848088010295760195839238177982111779883889979954940021159628282232684432969393731660042035880167666177545904049550452193314295491339972635053938521826962891603349090733541501137568497797586465942290898590355530305224561357881038835661211721641240059991453458029380228690047676481392700730745199533137940067094379768876785250589472853769884222045835129449340765353020627585590199818186349337849010468404715345162944440148003333123026473634952637396980379714271466180906866952429619749409799267683509927520981635339839079916558734264027669900818222518382179203984518064580081935705047815742388031006977601485997766383126725221114628754259678688222999880954668250632449772970817493297083684832185465603946584629728579591449917209804325656709401808528395603126771794235159202121909040497440207318754513638665838745605963875253511256939168783577664721456643234428696072036719907892770049089436765415527679457610014306066994360113476668666563516336608980880126857833564759292513879066298892301154650528992892575656349561496634538477959918983803780486405035143420289031479693521306541617009564740892311028795180322182533847599537005276127136134048943653235930988830627837204684162617294428005512936243118070239833086409435900594112667297880541961620829410803222843464601729673824652972545066818871425814507684064639557759660239199488829579175197589216601784653162127967618520028170139716752487453087923841300150759717513794279943258530075066899246106388636718064225314689146923498618045134685268625366929605895800550097737308335202541336781403358715734953141230072072450343998412180516242181529802339560395907241548595253045321501278358985190217872500177406071342246171219442990091270631229044326205282747830500322173736130901099005090551782696597206414615907368793587291192241584493358054385357025233740609885596846771584410187819007804755198645827168234256575160247455852585821183043248531077479237351731270401377472328233897399876876421446939287002339930496813371107212018499678144718968121837596361062622768874236920159612355567672489428549190117933348792697679199652672992309708000456692405826176599930715540783929294552768633730832903666326518821770119211018598579698535834589754877969751416898471035924101783640988570907761866491671109574906820959916093716481536123712614406858396214315830901262491583849267480937972109350671529623499277904594294390785983738357342541895801379905155887041248246443341913445929049065996985334487825236497902464989894058427555538840746025224418010830909577864682225610154791273705834896291054669689440257193868464643106851339877408989560819933377355168514517170869213533206561289834232300469136717410917500915774718166450264002647113653499718550241546709078886578485985085447731816352276207598926748225489722408428517458300765172162754789170339985670041983859508087015256036299127774440120403192870889949112376555282018883776267101217138314148801721304632228689083813460577582118990475381504489933136378047591259921215336174760970730447151571496454821836938626950174591219945777231472440568745199028999399734092516068444684874873680749616967198590245247051213220947040414001659296597071352221776007316528182732834887979082419162783186982072647190507164846989827894660365094921760933460629787927511415807020687908183096526683485430262395203185586101511765040482706256030377848402539048855820932945805011808940212445091767480871680466883203081696766679821559351399383140629540259653404983393943890349392780791566663169130404776367566919879578364779579112532908154728392264873298546689696307661734096649839954409867490353883960206770238941906294424362306662706152959329826214903903356547822947347644067514618592492771165245679019050381496117503860820970219442251184782589980976585657613559768150706358939249927109161494742664311836694888706186793512321563845422707662275573453487202325804471089168438129412463104486027352447792708633254269135400088181179954573933518679281482487914340268727040669916558101626505104880521317111984158982128558080925764731129227888954628124779224335921370149903437640761914258535011226896553954116694731237423588577006073880372956479765192155690566845905234679348890501906829053305840928709907105730293058107122302455151207467677615498217939521760526075985462597720538548237892922980232243666842130171932426002738691860284724069230466412951972753911178534669135816871919509851556230630328236614653353525587358902893474741584215913180531984625704383760107104008884370890232939776369894504613907528668764193585943376593254677122404030618169413312462332933094980017329966509917942188557487252110995126920320576967660673155702409901362997277156923236927378438149394589227682641804302072887286764089985730314950518431908539812529438909325328176654346720508633375913428097963466398445907912463609687908090073091970791052800770013840152443441625457082401744503402253255293740540781865279240552455139175152843857134309800268305993744222759127844616654299667328523779268640958882785204205518700694870097993632225211625454719896669165411256441873685837913209591990616089365187524055214349932537167091333875134255886922449646104798519621741607101992592632097660353970612917194078552640932267399359219663062331808187383643824724148596539072069511992812964888779133151934288036624571958232330590634595256700829791144953905528347172311726687846231347780778110195624020756555452861075438682198621277704475740670382515707152814436067382293430151482757067829532889502486495827360341212685075331860012118656564657941633667353350654604811248383506507656777202719827341605339474789322062135474626762751540814972619951734068576403383597171549358088140030711915038173552565293810653359153086715535395271157015385645370103261893703557736004738927435815908620205070409524561033825541451086125556646879141670533091571279258520810864260657460908487721369621948264371714191523382466726494927657864652664777313021934630901425238246569540400292368640872058641846908907531699868774226890936370389228571562460338250231047062936196534726546097015569889531659953280045351800439016398774724195479897025683110244149341844764711911909994818607963175963399024338738528246930635886476438675243319703340110814861402332699594591565213797844482659608049263997955455696679327319863558524009927364080186548960241097888684280422338446228937344537805375222890051289902212844627129273996613759288202284286338754603422761562120006307166392324435412698479471097528037536682805393970048606983355987176442763492473159353485682955318526104677027435878353223618568463760518184224015277191050313050990224572153964386442539890859433773498140252257136666735514071037545775050998861424403130701729842660254176949118735889389539095303033274860852243089839060091396607432757834125983795334189081863813521025030117077838083611810969095897305720336159493520216338886821006713109472910948290952987723578738311540083840162120246775444789506670931231083497865357149435325260252358299351867387144239372827753949850143763795922149782037563148049022222617535873475561496674901779514516796245112167215922938720018816079741310630463966173291588096142182211889835819414117639582900705471914863621390568128868722581404764426601841809155189547889134674374348916498066161272086068987139153921869068484744088471794434726665979840868443218481960987217308984107436964969508674154275232456977473550581116547695252354272257822597612269808194920093749223742438765858448873433003870909087080789959036241902681199599869992502758070265372126350537474221562405979728696657448089314049301547146338191076451341774773378106169024005330780566605758428363522696401610770357076768714447616794908205104984662087724424626097860355597229377890158688645347017394155103655750161222561480454923854944305166871917317475071657284071185312719168712911188475105902778936790093265253288930580944789994806031068759809772942217087550922474395497360361305131387071664935992293796478165864880683030404290109577896094362715087621914067080079235564461554583654719131117362478648168551662530084352353859064062543127184258753975958114652301633740612930117930143925558391427391198356292226392510883071249163638985618678348647416282754471965179104130336023826003553881964483021089628468615206790127191104029055945086699282179925139799109426195573684879333040521705320691326502933508567866931904886551940661557469304595124814470721154276484255055798593851624401496988504784321376262087978191837129140158218676478112404879503752071407993637093108539870544472497181357594405379059718937534528223020421974855552947758912026605150282960745045364406523338622282655375290574041367912223991918928512676720085008807618560391267883287853904533582919138282737952482829625733846184551918949172834676081656134579285098028293556689913276955293689624334828123401781789945300596914264874320650100763728318594071073359970642873933782788805114490353494780056972069408934675481307632001424590657960571840190312920273596204000244644226397485085132629989549117440461761149921466151953211777846997640713203066036470295916437266687221810150157674988643104417302407117858108127643733138322979712975990042601689434049643411917044236750484731254978061333797453319938789037989842099851314234971664845777983719894928690673505758907664824536469609185734335601756385897185748585710000904265357283162366733629815196905828890179074569961397885301889825343468957824754974034066549947174161428053703195610670155573952092979926831537819286834752438918565710328992655353192498075663226224131021015557619512798869080082178874203064126276653650282985174354429226908882982186699409960666016153890430811821939056606716302582983294206190654609744209228663937167733199032439852298279051224685783987032126494555844174061898415216508176162932257729935555967120410733579877107510112647257042457867504044911595273294897756446477485052738655561426867418243612700125700114523749797688524909168836323124780792613350967437370550040366077451951933293551693816400085509798879428671619720582783939174442028232083589401393949706944898798185781948945968789992042560169597228207619134383080872066778511329437570706158811479378905235431244365571438856147989489639482030373746789354210017243924789287830035223968430872412754298835565223748558702131722567949151624383723678914174730624430787586383833369915838612532703079818241359003104539067779869063056891218170149404061196769917706553321647028805218949151191752113037066647296252421714212057056204236038194996800607562718086913681995464477095914513549074593512637722126154819194702578235503623906430300603625157036506142037795938073968178009421813191100103059245301303803926909898355950885866679085373059033345180595921530437618072021346514248682118604931237376063690329722452431470806699358144665239454888467517277344311919908017720142022497114793679833813953339132608299654116125264549227392500023253060076517971657563421410727870246721815710885981193004859414567601879861592703528746002598581747795099778767261785132061991277053094659948358470605441594093319311048631038874238894733058669643343282548906325753214436087223260644227224180009760187010305816350390998327229927404202414319774534499476332671550396852643124278366373948793697878771772955646524960511829204260249052724495996344253968790014975220701195226489493724394416128785575145137656802334306962788866550648767545456383669240101631117159559627110605083496009021944024514792286804324055962617865021250431518628381227890133385322537080338187341745938912960672205898718006399643120688578000613802380128333035458627606925619024997055740600280072243665206726265342337099891218976254361977459946004174441738821171257927587784505080625335073045501483982643235759348134578403655520360450363723000466613977432134660848156733981348280215921964823846864546423724741125629839913110390132162938976937768476555286116092104053102392068236623477868313840200752709509142290311383481296258326338967112342766954082634030109174378076343308549296407845911223100101954637198451452535878567711826245165452872612976836769264879299952346470078846526739067167054551545801293003117311714518204593209080600276060017246269796366822186142935152559023613269843846240369019129164745838035366334301051358544951997185404752940805140374412710289061843726118006691246677589408662566286151517736226644922777079980678136261538170591584675050399781880743977909463229072178436265663169824202951033262325873111862890195543179212064363966836504904644998819569417966573709425575788878400806272255469517595068078019650894257446856279518178912660680639393845200723826725150810686283752380154161869119064289547323964713404270901467867920173441564844893731676884076558802118975084362055390106566146307125827109444386476522120626765145248931838516669493141549502010991264366579901173964163328091979575753678123450591272430711030229313799931142674695535371689954719147718435697523760691163973445381375510474401389482136551842643535491885291237704467850826612215420053112608698629625399835263879787567860873207866149877340368598242708399873791200516384692639661117658828041464310443415332773514955702363402946242633527706498007281622374374091728340596309689564075016136702209120784078023348931949185949359735655633208955329099460395739327593652201188881152904305137750436031871348380977101598391909546152877155597608306479186152792548809559514503204968632720698242717484987512316332204387076227135406277222524167386662462043680765211073855441676365071199320272825315460430785588662921322050960064789976190148334524680490726558326656532981170557553782592960882445675215051274485395983259769350335443702646734319372868980781443360611595778576132405862833599623381166229778475193023269672255877847398905838925230863275525779072155035366602658288365536541104327684353677262555244979488892539657074783713815995070439408381869400371262678878866798119321738895482749684148297179314212638061297603164740358967042084716730280072701666627825938758801431349643746547154955290587444791414328053729447086896977922322993139069725917641245833509130671644318496966153535165880525630201291180268450315643585463517260792769613268149788226425974359099172552403141062225055754586645325970874599173088872700453097876053760263105450105126356727428465361331678884461007718107369978281478693602824497721170137941992753021501375251681902893611848674302390858196355631457873535612312795450916873415996026212742385556086025480323233548912230213022576136136369913126664238617033213980634618704953032956429239178886681216855633916969378691384102652054134821262117421625278246752452430860121886266220456683939546985196635246144893359823850402021286949607691036927129403828138800984298397137773657632121099182349679392831488352830558783755925311343641821417515923812510372161964084030828989813385238066385068477945245641012586446425874178804464431464797724028235359813218845159349905340350291330617476023467695420494581380672293202221948571893631162014690200035990665174870904573774252570442360216852686498917854836210959351022706313039609139409065221248345225162335241002476370159601510992948795129036663994942246863541228386030832056381944582283986949188125611892076889478414047404038932112648623285668697835450652452656903688169191910482018055056302341598956070002783363470950402459976910756024677552970804851890508326586942853948144444914949569749209083390320998041023277564339678465848413078534466018059410004694774816046261711656840733020010312602786769357855005298316994348494412340334494865955328055406007887982956169695100887360302231019704492239474243207934296808638921800260642970583886018062911988273467321364344362432047482578552505348214411921492270933139815609021291550079497537280445204756437428432617487236340802662173237565109479325899157820164991732196838070070940647671398903483902192532152663069186041776227627749971676604138198307447553463478720080032670055786436997910588889060000332111858790883014087988681473937177073651944763419196887973451583170950898620125014584472952560633175134664947651376185045330508619804367264068768613639021023392632541984321754417045057158192459650417313478685256253113314007177712673399001161872615456274685162918273158542618653720993327538624676900050149473126315216426561608678625020414649568827891329392683607843344752179619301736360068893780253449762147321357253725197950762409717043599692605862052612083950735326557654056852770732836362017564155252228050727993032024940906989152858829110651598549070122877864347314946915473182468418488657012794783275290391349541594191709652530391696457582445999018921572283185643943956524245291039707457195637830513109146457456933126260498316543657474388087491698099310321416310523697010587007411352112605070142958870365442585346290961881271571912763045387197850685601090861478320086242064204093614551899763599156253603411343197516757166824950377723746521398908977941705724717220864846928114136294006130489520394667369779182104002687265668513388864869376422062706137381396017100294015932945684207067421152187654011137937274474360492573740083932196307985475628223512181618148188397715166815949004708326441212399991408844351548698539092449011899383455525031854235541289950783911514798949238642645194963716117437126038132194978259552018944892576952899861831294254911358711668645012691874903525226838341379763772593371336669615669644319319648780119243315196499556772022383732993657905738445382706261911414877693201787414183342488489437729525843339322697865954849140294450570237947693780293452083111719465295837790334061325675495682724549767093381627274868522043708314812022518733775011099217766218782128537761388700116913170984898677372073965376476666050612728877320690883149674955246167560375245408789049745486248825762662920104357931504140316660531788425265544389868758271000034233116031366992079236174183013425498480483807078002680464440394070073273369742287226519305366055198358959005527174138291389098291408599518449562739918492700508254522861222877390517653305255072053065532406501391717971411976192224458614053612888693799845261981798678224800218274822276386064192294097545551965296466465201531654912468944510295798462318583048674123778736980835970622863791980674175188073705055706741930528264182718476615848264545485422699345989087731660145800859534384856213026683982064527917202515003160222196415892168639734215712731000758648590754419307561808226975375219254105202744426854519241392467967979566170551672829006297885894344955885004001720683165145655428512357779204007991356616405412049886195244505605873116155069765274424804807822344007919972309843523306867364838465069011893743724583099046198340827916664476451435880409576012276878546453742526372146777036068603011283111716329997955504972210734408780090781070489316810108167932531089219978383693620523032510022531670960871037484744447433696290192145792791783548207187551589488944234378155756593470327454093028442444017256106651426813695108107611599348555644130756723198812034155691858410864510652935801543598339299221743495210503039944763724920678492003408193699781504182264730433433420460290461176562580665945918647310039193374833970371668531140038431894038106924150321489823060966765711856017698173565177137165411147374023344600853014494832103185939460611668597106938837143966641103719764100901513790075669382997137585035803555065390804321936209030906626617911186608457507217563725902275375474381892311534821885536081668073952244927185873943056802488661153652800969652461103275942690133141168497982879596869166866423053326188679598122658442054707216815216416349133458158355172551576410896118504830423139953834286285896695287320112920348628097314907897465511176741874835118576954329612010836021787280964561207588471871233229270142276790800775476914724118017963075512045519767760996752900452212396153477956520048325569585480641358388538119685289528924354799605729408789427926127695973608883695215811437384959194123613078463772865124227036574619926461075658696808485673686771469438510583531913489609169000855010552481191709463885965396799549890472829945069305544017573832493893922531615262521187816227636681590815121392568534977538388712957973562365930747279892514500176593924579176193957652415985575812776854199106005154307794277007026244692629012490521523327854591264843772794806798315832366644415839004665430043122337697893552995257606657941232337236057501379483619097993984678251704502051444965213223313118368485311764870518821604237163211317617936783617116037245015029297279871038831909007562307693277155157611991566124347966449127519293682549327791466117087778106713927171691697746626534885901657668949186615739372216324571291848663493931428243976446435849398892576056089800788229037013084538786991877472129148104802922817361423426090948936385698285469497838592700234498254761715072034723451543846725410102697660525096070316330877459606221469386357304504270795576828897451611461544148659891095429928604443702637198202327413342147827195766718955680985562223768382480699101041044977328813457842049172080183692346333666336554446299040917094293515346341656974655710253439435943928124488216327584527628563568338933862619220585283491477346997968304602333810069920834621592778204970822794958869343795111077580309095533368945880337565278037387639395993348218305770358967974340022237097032142117629830281551728689825219924005288237490258799870825603196427732405096490036691355013045953858097335846091846625936060312536823653813977063919138584966882350722162950879145466610337946500753502945629481048460953462067826952807398357585022100499702336293380665972541224358297984286553457381133262821986759368918962976795702291006064872539529013494854159037906142332069850960646757462968472807728738193440421270211273470346355146775439559324369666104090550735684553514285026973282113815232251309921468046209288427797533737232537942957325486515493944853451569369908453976368154025668543149862511815440387280505504588712678196376040963923240439293665410351958315919621902946397928694989501015645058480020553422919311254361002251880193357474986616247931135753027240438853475313581611692790318270167505164575029966606533441680313842208212271391490124843099431188960617609738167307176502309001762763197762865138696025897547729242206134192899388400641853828178376136789854232923168547528574811635999279824722171362608528845889312867075227669175268950970821375149650064292778824697242084696306520642622065101780987868986860597202059260598580508464070313992259988461659130963548068961439068126044243600570097868218452665154479212943979673130572054649726694341020274916064277510710383038125737288785374769752239110969776589275330585318030977032385544553759770514222816045376126426238035713156484819221904038524575585104954415341172793786043640847002162505214855945972383919107239778048015762453191874803794268612007485781206453165045682037370501135019187984111028974967362200761619206481273283773870480652362593784259355357609895226842577826509575892688346581058054582844707339071161433387124115364763296352624197032384004111945603185347223406676553531394072872609065093918059790068983815752224818516609127762566526682305275805807400191967378154603058951546356562345597642203305761932085193798891583976318857822164193016314892553469220688646064487785767505580904290860711152283492593601104071718590187966573874335631765381816159629192383650153853881046830533464924208339621615814791648621439444303841355612633630048502743654718938280096065092448383401209636875723319751295449596000729414390676376376279432754348147631413548674362926876602601956491095658160314433424367710973262863133458343172008332108870983545253055698281419010837523269371881132203830708079145411358347210997708433653296150485058886727324944266684605675210724613778576590606154085951373610777561245811718106852955415753283070838421284075173533263482699690685172394942327004653312001664276968417230081696687719818050364154214687080699218920505887809487008064640466161980173518875958817298430395453375736813849406887075545857628182299047512528286296082265067257579996422669096237226039045938933345533110530326576782917150606701744078111445830299237163005903481659270147917692645221897275137146094617358200519438378842398369633694726397150693577601063765831152596344682739669717228709943830453421919231446847371731015601012743973895196910905243172852723709725481135734582717609069330327919654476640267347855295721232860724491054157999217308053592600858436842649486361418107700095470683053885725484095994243975287957042509047752262072438985439315152119292984132643358783594593384322993702732594440830363135192148558247481725769734717147028677752952268316656711741711001400519372855255849720822572552131550739031727291162869297787004864991083219253641372705681193122394419233003262688772519851356638008986399236301367524149699298584513457587845321814645785872444462329408616438695878515195617030606356966226830686657404745414431339047360792036427853176869305621069086131688349329549056147088363557690147145553557031005547785445873265997330646247706006077751483447701373704193663719601574219481183556422552528316970669620118832040408063317524452010636035827538926440697948289955857635535874329701634525924209479993844212658485179998448690076579686761405872525386805802076335166730953184640722583049310144791690223497643288781214063425350409518907111963015639945461626036985974307340044455294331327799815054997709282546259680630016818980866032562938583038330401596689525380182011493283046928798509166493409160696153898741957882964227399419941722180615061826085944227100905922354689982940760949924425832806307765446957823184378711937362220097072184205058879425794460272413311529259223867164266309471905440829073293314764709441228331027652633684666821576452292064244925611767012875460789931774730905904161860526500197713673742663947184650505331824990810498677669236342055381045191946175358219853803392048981564668198568889477882822895221144628284582568020300094259149570321566234272884915368078866692819232503706504569141849781379394864958833013966116262754657546324767547231012480279191330391813409840903358485267507088318492387423467585002819953796592476540157261272896674577106284850749080456406113119955724631833457432266290362471346177593371037592148737618229633416730264528605178633139645942482135880563036602035281889314521089822486542181617096621671227823184856786407671162710146641891504656421013863498967894076896228603866084826282925109411600472370874807527953032189085824784858693632263022826624077074389328619723413064535998419065278584358994941616538205683229689597698182904545062002568974444577003927200521834988707075337847686679907600666147294316366289630859673727938719083518000424623025615914840321183666916712846705758171106335553766054995135632251597749541025113345730345844940440580023089418934269119731137135601246369244792102518741731201129749521376846934628934788745172454140664069543423925796812597483364710035524226961376409248205799253575429632759814810684340274646305897323313250428608055213019732805934868186392898219893248891452849528322431389483323328153995173881221088656021441063588831349614977725322234287172153071620394860270267203683002302240211778274195017005578295514165805591552211333744620110625294318174476460008875372425789045229645775070773216856894016022069263639859475352634677678432612773605462175259137130627097507485499955838949916420512395343734692089992511027981364697350945134520934737879620869517050359092881867267057695136485808521880259122425069532132343879961284260451796663259427329767384236231028455822183236811569833318406485196290061896003666473528371809958087010419452244252954396527120517879686482780074316838976653373022818396314662755906004453439496607527842728166792477283404974653338919013367512745104248001647544266125905440635054304669722685696105001240850223038721597047727484458178915502513171930122558078435476509192187470300433863994101200681901934765205064911582490517589897779041988977145089701019023010960571455977129591073042576694950602458632270699374331573906330696445877349419879819513699895732217841458497867934176578815980408385970081167942443045053624371575901950412279821083834441324472586451213101397570495262854017506216975490717558615572491798426438118276050727175104965379828892165663666161387985110536034484606398112686635713661672010118268611071094003464743258481846735930010180268213584121192768783581187175150003882991536751841052524738791415865694928372120877118106379010310852540609844090631221861655966756909513702643890528060062013392247709338707657605437965053473502473856085073449958496107651041756168735596828847073647156571729678069107072511894318858317273951525339735103272567128722881707544394367802708966002646232036988856066009320084268649602635593178317789173476884589576679768106343133941433301893097584943263483983479541269625460359711595476028025060232366456674930055909444656988716891196236969150006278543250221475326015070911209305023002238197596341283653056064812493079009154668991652321777197032082247627223698549745834270104207628513134543511877837337447007820926941925408047698008285353990263425583252808131764049400273191751432727629372281618027451888911706961902412698380010187260427483226403755971550464565407402694725641247377290951419916902513080294335706399913243582563105193623906201810324738150999206325189582934116087577544858293596089275941747312089198568763070331466404040917440791834136067094731302870625680970238478399607093833010674573581690643404827074959179049261003958374755731610742400731820975118859657622049152632409022331207368639991287981097387970184572320767865899266208759118253347741041722907676021892288675826202198128767162660718123801500230366916410662701038016717023114924942966165204418864677556103516833227301093342517972833404935209029279817339854955117505711458289181728641508907713483549662563099815362875155988520461255529180649297358565075249658573987822958121101108296892381532417898897518750885846329309848612734173374334770623688123665648162033549485200714091371240841963314982318601369518012457906333316617275332876838058123669135299177033870056084560893713598623002693212641680653195537345680144279205463323253194399403730553664938778503294758177058150092034138566458974217746824952696275466796627861016536787523577135204567743813224307870948146380501772479288433141402493904235208036130914445575165939751882359115381182063123176237339609526286353383270858176948421113495213421629637014248117351350170682413759119651993234444401009045097193723987533007661522926141868413654510908703764083870383521559388793528260523615615030964171519540348333877808813879244342180293807164291765303043364222245500248052808882453363117992349437676866145475857405769529944170838417404895524033808118209775492881697502942951868332052191253767683469855399422812804173936938732765321210202748829815685135388184592230625739435884490660180859523929873396598004154204267595172905029221000827066694103895189189569252531749293472480029434083977679527872727367735096585105799589429291156744552675288781147779501047758636245279063654431921922732109541422574223117715556552788309106016731181349520409569032646282779761524772128114274663753946996311798138276863458325418734008283576530726048092862894189684403105994962084136867841812677822153276915873958195989524354057638267188251179399685725641942892963647215773651619760847543981755573237240735342976334301180692952555409399252174723475410912298192822256625995778771799240933351811615878758161069056996705106806240199681646433051459939039070731820876643118643349533615446490559321205475144113734297985857707463517727887254465391800078369070654961177784254635223932608715824133923887154485706309329280757162246287953467021222538175959858894440508888357541564568671913427170742783558329999218803790871676038161551944216065866631167420333267384308797413905562493672950797084458946311325089342859807227195816724141401006661574939695899862615451742872043980080490716371821575569716045835370368556638412348210666193900182656250711884822441516357893215427778452050294580059747948928769044893040503594901843076698656735200787496922253566753880275404214699682192160909527774086860355771567774870020717295214985537813388040019055539226704177020519953458251610330179656677123922691576364806403627199350924803991265015735386038746774901923430118974065730601194581248876610195347688079132881742770439492328726801872996475903568546499932517966103562824431247298932051026088569611771543201128312236558017569281813317228552239612078230705616674536473202942535708358193801381236165501188417537562182523420482102817424488633830230726181283343869731139106885100592300961508183077951667919027944025763235574556194964136939642369623568828726250414350998395763905409313571237359620612273157301446343475302383768338024091829029158186086312642826576177756269715382512429088473167933710338095995256662797669909658284507284959674828053175639305426505417734704479242850475601218789550052313400642218677641896600443228857471772853760631371462829629294676794640688637745031121877618899697429643546085214950029695311613687976038218588127851245812248160137260646738518890098995393116520511319660148402360727054510139663182093499918891982644490374346981275853247546720863467198566419089454362603194092004112131449803732067642294310748259784356686956245920837205582977950548503737288003783338049025749765676118383838737981877346407257761210925319003457497797904275215685911822453205625529670319918312202723849460580587518809010068687952314592856587667372091563929495711229985769465904553567334977794313661019451666838676978912208569530701784801128931261105540900522022554818916042188308516410846299730103687009055732318421621412148099605618401244248498356018401896720646908647621828465887842435639692525133202264825044678808167762277681050278243556699355737116093952864203729519199038322755724668356877795405370745518951033803780089382120092208485388904835926765310732307186746901882966639359869163308737604114897258980187213731603836807248031248694817406894243875566093544499768378475931795861533136250159298882572314066281055444998460160985399392787264342810824239395011246047301712295090924876197678355958982365100289749670127591989244674928101992753405489302251260575164211323525984580735822187412056441782800768621002639708694851871792709742517959685130524614451481475053872060364245651815724067664946723606844209711049873954558343773312875897887453924171714273145574180283729186521949492841357078779628157119066296852671938920888808730019863859941140693599984805095901420145714109366947991778052116180739725010935654863246508386943739403031192359276893175323760785207474461367747770081915239718902562585457781167929744577889799686357214207015586864026314528457107289478992713224148009381265053194781130643012659843609067563067411512264069024255060385162600360499119043928049851240603542168521716958139342472642514290739730387879923453026334117553981840049416831185128451093924667731191242751524734525478323954047909673550205286409407646479050912025273864492959618723009990809957764390933357116157400593467865836921233572661527624191407570183164144214547416080239988207954283229570652648811390231067163392884449264304091234780155052481882466468031806119287963911387895268029347538675873788910571358782600637907016202540503439745452977434089058486595918766686564873186091898542237263528567487052025214373098941874820566687089831187323834958903801716865171910811810581041984590863662126555542485065378401562998859892442009972528802793759735230708694654125221757965051229127605431716992331430802527320373606781861477964470346507319298359513078746733955435783028645112515776914304616101162623908277064638989160981755486899289171171655414105478118532965915481809618626162291896898607431978673627273173987008603248960862001850901583317259539427210015224500987559797564451456230069771408316192136816010406478705304170235543524706316417568092971597924392755488996966233292574088476725534370641874498153711752988834674890228327827355799257196647214795525175530903663675043358214541409879327109517604594537163789439356744609868257958121898857575393807304741679623883195962486609046329854467311425153138125758822354061669834388205126132343850939554520331549869085776331213364434371489562810046688246559668631871232032259964288815740443510836862174208284476332428100031872113762101987323977240560574894024390508285300983196878968792275658755440757568741831351578784869270882209642407279004222673504287684857611513009988972948926450856463199984548668845562151588601827134581338505395706005492160584696847959880742317990560798325582953900438913842886937492147906579337556413830532062514987857011492609697828378384311601186040351625860798245785121203529263585537637897118403489715866246355974700694877158534151544868012693446234635746154198059592076806979980141284283936362514020924835390000212102604168740274637994337794589139860102450255583229230978119716071393969407036627137831797001280602323221020587691242592658591448959162595718538650395630544562467792716019870546133145968281603892840027988427668139074603511793083698335516393468176862952397452475798372864537081727206386129633657226556885616383429024469693515619462409929011374489728427549623942082368113199753961367806674839951143408092662988108006931500951216585735208852749075828407625689753167101257909213781483435945188372963674632079613590340548917178505863668425214394864615316481468686597035881673929904466062829680154394316288425970807006887058917503521862989937193715544607221938821723651241313912667404456554950163690145988649423900514638516605852901537848947771934146603217234296642562318271409562922257635401137705919306622850264821773395280876278387230056164975830157539208076343762392631375082928068928150379502969379595338097810198524173137672343940908860908297629336852160509809101384501092533750043261424254103202039408981178126665040212837366135277897712476723881268845406508011696346945492089458891298915017432094229335400211923363297452988063236021361739508112305557374080017239403315611556011214700881325720435026456971485893969896646188132666928565101719585088480265141159485042593972345355902387239996983637238461194616751871716232258624491391730047211673667661091906282047201250459126405083204019469430466126421336370962153978021823244752229028025158576360657422998421676636557766811720348915843196526264849265393590550177111340279749998234049616171270007201261476668700407568828812312565520677947748528486084574246251890535964932316644120519868588975750467758656125170593437720358381938554896628460347438521153014143002342146726925973491947800409244683079900459974763235271676971314839758378055442519017044215581211739568946722596770879266781696356692339247724291265707124903725896289182450341248497150586451148546824748311163277637419695098057333263622163518624023669747350406446847735050387702984007551532995601475223919465013826121593702445199366618267808663433090577272177346210244669847391170997115509698625340947076216562942504738804267513178713092671539789940999368266787530514226685581634835035969973978955935638924394134528307047435961061461086256221657393683106061128890389195775896722163233035074412896076222848721167504167500721941213425579814576898772520251408104292757125205584583098761022787597767920423882938757472197854181127301228812261788814366590202031719993994988115873068985743983592992755983562939178579451679184742697661425763114434495665357105243752733384922612895460483954131521879797372602814219372967063821790100790028404234152814455813977482490084039362830239839639614167030750438368626865770478720802455397115052191420478064625900914467428446086285571790237277975179837546637179241477865512252196132213983929238723061732394167909242551400679126578327614297371255921588494525247845696189904028393896378019254862742135079750278615175679930605717053013079715934976180573188571787918488377427142800445605048606229144405476938337709633807207086639882820870111018971187586918671414186403840610507765847212431897440393515360456422490039115037306318843014133096979455887751988411973709560463713620925339560063268955906737610533961359478335065521325807893838489830443345962016207384437487122981571622171720612718214620539890989942417184329033686795468677793742815832774637559841507138031042136113336344003574607253123628454218752666314508360993372248556122924025470179971455728251751632796201344208653981640263532884973381700802103068779548240291740229458176036422053793838459802571948921630012778260305394964056698611729010596389031135447735814498870954632979813418844223082087019515278166677261268103221990304365868166137034220205634519469224692080844816232365264902417959297124195033084999405323916103257534504560578072644264306640179567850997977069657236719611032091559987167695724933361237216936933666491793972922264066043740961146819594769096686502013842143492912027466713905831033185848978415383643798803476472317326143198361020539653287130018703349182461168236478270477920143139527006122953421731459585799268481889718834627122809297226383178203249340956227533182844561615130827430214395735241769321998982515345373543055551106065630637066442182338164722102221111493354962534261155648054151001284601204158272523637668288407313157500311044785927409364072364668336445418025391413528972213661659438059839687780102204626671636387700490874774706969144924887600977150569813432187464659602319036518401631174588287613601173964443265879819282439126912138247478843967418005162241664994911607839316222086086586694817702788281490061198496741761977683797049440299254180300996307983267848563910121427943371433810760115717899378911660644503184446435913537408098242596295113622402419079019305760231467697182701252720769738502083749193078052211052090762512722467004650086201709549807972290527311893799276930660061878704148025610418967643860738593231117341877842140460656270580131512893163741987634936919505287065493258439284606823656437927489898337887915241428565435208883854006663883110167679140525534450580713222738858331160126538996656521658903060375764754356294779624568443296319705335697583797545777341786217799617465891294141039434866403223517749448318559378383348548543508027549644057001019698035554070607038754469263406757698255342230462620934858727144586276205383354515906488143973832322772237842073883204738907065663028324764872575687937907289305435852190186632347199976339531330478364157823102285502089199362193232797315190797585969584962497037031772161910792772941821125419494413588834232867012061248206866722965452460495529609081507672046190636235725735609907557175154064027007267512498013570324726799561593617209084997039309210266335101321343341274295298355283527424892994392525392196956035602850512202886906727723252378170296539918114611734692429233201313135917143146303499042397142769229023798165044692729990648748966777442037975938925939932125104697221817931844073605836064911610051706127796026117597932158794032984216762765905566336466958381379627624095589114125802019627595054346025971676187456539084435770501440027435917029224147875241665353306109894760613162879200079252571291877125279713638036566719184687261210613728099624579354360533257153831275730207357733289241293621038027707103422296605619696275157574787355285160586465479325410529522866484072495198466962892744907998166518306332898897855561032038653917964018454832841137019550223161825085253584116111268671128731820598879027685465177393096770998139707189326203997392578981543227465666517864943527410545555312039851667716421388799802089819329096863340896581897363044251812992968567381593397131759287590699054496681798081322672215068298335933667038276972770437097134636058027682642398816235454230055382778598529299242909173845668876959785158701672186555772136676672752294735996737999088414868258783033996384207178887358615993229420533330347277768843892506823420281079067706916406471545973854468503841777159513933200537239373676595259336455604534804743787686172015390052069634144189820832993596062952053595844885331474024151218536485213960402947019147760145998160364114865812173692338832917456402023228360938887742386990610409118673108348322217203341597013589834498381366101369000758276940107987202755437641450212150901086010754351903778412498573259734207683156917385406803445821164489321121329388995333461602239594717511254420184259319499343475340432898908563805170664122100799677278078897596537667461350224299391561016007999083078537512132398866738400775561463180294770657833698641504955141950382590464030878240231256898099134604624108346252944765999157284378606132983003841387533919782024060526423916011969359858923261757114909364189963729610653033687526090559286858841942140345248574379067162073213581593620365076338554022247070823195943690328718821708197699149320994501850055721175085429715014979627873720794145492854066459032212642128497990183036176476764454777219424325353718570017431864447654963452917259505800131139164532173507040984009690284641595279737333289443075195685694905528820953349021698845762364857649951717116276501582562981044215141698220511582116332310531173801508966327974796904225588089226924575458066014858773543626759829822911126023562564026736530905909355856251520352389786866834754484450716212498106582282406594529904125359211154292130497905455390886505592044560578359748158187207663740645844229000158650737588401005069711358554055099163914195460349134996750818841750392445315130650695241024863664045227299318785672704617234672661651152651297704737980302316730876014918191976531039772401623247626609583394138183615991769762196086203254839471400966471924613808056386505725417680633652400821045053035586652172279796869754721774962588618100378838030942326843317648296535657402137161437624920669906030452326324191430075838956477584537221398400746219215711483159751367201499326938746532000185347105986950775900482207498368322576816854771209106679365840445868154921512042035430400392564253593296200152079580061327133914710403928843398872967972514631536072918775685198226801780702992368514788179319784251429224482521186630710753179451848960830192772421995016607044917613457740635592466216667539885474153155909176778421594416013766740918451361449781360583462551999911354096942676481276191152776343695260148212728186588512558635838675688683717228787708536548041110279139086989346098566779741383287404117144195365510310659160248629801012890466047089307480319399044377127924133240869350667904917525547274864512698029712708047662762360194092511794728198142606463601626893825970993869736346650159973059432084965328981212309497928535047540609114569700607725938924590527598627190061692900552715801129118460856658019002373924679876314346543432067294069092567811829393757078277106115949190134654661704664739831863646608294804797589328754818579150596104213925936590151871645746379063425984392134153309915370356499647511697093409273984583899193825064950441136442673971478074652878215442671791415760301486487746148492067214190930464033205076303738701706734244761793861012175167452978894220867717438943843218413194016946060101315978747027655388694219335333933665321585019893364391878517609974685271644130848298470180459898876646118878541621536496768337994480362153883512461846187507612959527502400977489610617762469338001649836279199461933723234241659410974311948368347240105686833976620122159673557445678866868474881612497960414713058941926671573327005246162486705052066668466162781544572816229228699097305712120645350844040319207775682645260895674589589731078185308772681253368262292188702742428834420635989263491418213052117495410397435734790564550373057281803467257852114623362033938245400631432452982469251311392028246816519691689687636455182367375643661321140495367383222822992181510758795811258236771815547062044718974680596920984867542098088542028562659643382789217159708425040228217170687585308809099389012214141045729457114122369508172771263034554064659770491434725865139289680244425856198361273858572283498567658772801905433323433545650649801421754468886049834624569555826675152644896572440100928330290645632616171466326814755348787231464216773251962489362744911641508519866740977229513272617166058904478644783754604884804798167877736335060732942150431714075950452356204372696272740486985435561050244665066547978256205201422287708510069424672393839821276009873521386554164312572731217998465118274735248847666248871926040528187185443364341220905494080941601164633626904876044469785399883788393455939839774852423927335328239110697525998810652061270888356410658796047521718739193655135869576493726024282011943150053902332787675959340961281565290810086703251109357381457073730755542818849503415093397400631083239089579970987253058169142505532394809521851737232905663277615947952599025840977022546959802407376500241523032767852581543688804880424962653700067972381557733274137926182978700275583871914303823109882918627779491778204476462710840808563505538289154646803264936998062656542579009342419837304600900726140244327857679834908161946812843028290114634972683095733222813880502286506275133484376806495174586656242489258035645223218215326096687189374674274103612581536554871754474966666818447863645039903817916252988315236250459012034658252528856224951586892272679590978453039388340685594878201667960753853190468367826114515878153319463124878412149182483169219232943984628119780018891982549001431519771205961799525836281987857140436134665724397727171682722907065003148644065579615530670496650645977329075685732347615248542527849030829995592987281572383304662676596347911564867867412105558739544190809045097330499459136126282312380020577341724222928699693769003065992941201717830643080774988368166079761693688481423151819351222199355205027159992902959221240014332747297975278066582777438058346010459013480944300537311664379700472294292135635985590273621561268683614380938129406180283510084813594246145654846521970975931512299313468968697444319502787536946372387097695148156104200030051325640931175539446791366135329629565591634430404294756118035213794674954945443612844368173422339092978427727960715526149844430488206171735066470735482167653001185265039373874135289656796105652317575606791485699993186555076421273310323682607701196169110419913065456000056231038167459845383852474010248942382246372175115460158568127154960674879113367185853021999626877869476905384994885693573927670986058170638904588464503667562960606778197847718345281991189195887515936455193582519192525808032101089508642386672835594634563401390306086327386135042729563925257117947064853906840740654658209452585232434265924074905081079993045644626472815582599623217121474881724510609723699973461160483241439353938443211428477228319304402483945858999766186142710377268570711815973658424306726569827450746113909797494143531053304322634065497368597513053161219040839121195763426992604846773799483171892790430910395340414277143990781590138798586477535845058272604583551555226421252333419273104791317029206275428486670291392530050812543037326004726376915113806200785376346575098128614103289488655730050424648101745349258843616496807307222359477238665022793962570412997670117230424262920744728624410749331514734848911695089497146791215558143804536200586255468536972471891022339575466212536944532636834606472958491921233116813093478701173739562689350301710918984049537851588496849709360967512312808366450343988288324750874321752033471143389277829331402669471859145844350000104947149757664009224982237591442722848628113974070832015714270532146792902973744483603770153230871324360276761369729507917394902380806308956848493314364118300357523141341401311502082508267346710056650753329485622398087117418594445141139433001809164557979823412451532149692697287625906638705983561736404105240646602283992263667844701410516387158331512220646415542902720395343900154050534263838715696396971895483771558823309088966269845332280786508990000312624711098072543964511691448284727618651019680560374512998042957063481009034356504957320987175139829745960707355985867977150078090365186527976744952104288411713099288719427315246583504540271269390022382829555153774645547519259598793368335846575044372760017127479721543180189132311371139891110857194575490944381890225062371511983854240099190736636501986147438207203685000426580496687399237764511974367437320694534793098753170834868789515354808473925280372064022495964007272584626414062870857902201584840180276162677417923231085769969983885409413777367722450075895200400260264129060406141950188913917472697533035086241325968253497748309158610868515731657202428396452397141175263130823695781656024496381623246790801902406032059557346751582674584876999152319528280611764702850530627510758717577083925739638943283734526055495810411675004663447195992701403509449829955351562068545123688636939235540718472299067081283814941803709698421152863689734233912353446654702860071248996312912564930527124345262266049147460044566069172146024895422094882398806688043849586033903690357789301440988727215309560506663415469518636957132197070577658151717578950855915359136077361409981520813846051789838255318125497405287916377964321832667693123620194919312818957951454191135296434160973715806892429857958460394819432049363707023111877436532269767741884988582306250217978662132282159298230646577434564781906551716115919647318465857638090027928454855521915182581896063041651494023849084970996877921946314185159929856407138392711774569681564368939838602351538394225348088329315739641767358197773098847694831430564023546471003128496672251831085413151353687903237761289690801287719359850658914410967631530604899038185419914120929906388052015375604144841868108382816643130013956316835997203395821759277509810551010920337031385528119542467567884117533314075436271446377220555858418459841195244566959767105593988246356908332933335741378301186635073981375013552396087071207597081424603361151213651854162097772089493224596191060420359531261633588773728277630546566045227532012708239109994715369883887028533732056417773156545260858796733955591096399258816707772698323801373830204871982058859365003147284454140061791396690864071396962310792440138292278344673326532109040440852599840633804392829745608763916112651904808518038261030871621221745049273671902804899137479546132314221101219170879247166242789148220712143920862970726803311695294465677602379863943326514965075547955078794579696134220882250954307062247375000467653942243111622610844974329170215073358204475436441209403657010494942146351224250984708937006042948670182851520706478824171484700062948261035946077361899242239159254561051667479560187667065163462697870315300861844178528854608225565924859951200236578894392415402532348639507703884680633676977675810580224407314635822567222802389248237973266901490258775501819751572798825354060881898106980204036456155408703806272150269855354354764564207481414392478202095299757081370847463920013434087613568741836634452158932390195679972471829809133367685082983542745389777805718321167217836068816788796805710613426796217913116158546596101796309330293730483792363670313254433878035976438681612439975020456679287891527295745952838438962236995253402366600184582447353333192780856115591355381941361204918170654456846083253805742251922940281403741788754012604478700540773626033079902100886764556152146252856858170261893403928107019145703125846534870618906456793454198991045803832666914470993543131015154094397734533406882181539310627993397913264569896130188197331364617822782737474024836504701249253639455659730980006025736252079339110223508479238034649282415862266404488638233870673549266467562701318552815060137720874841274754070692087870242504065914295342671014611909116124201944580938588347684631126633280477169248335165958916516882931910367758536241604582234880638290478367823434128447289169766571410305997578256550734456489558660023714561866412919701738109967000188823645672323914491214010414749401625830093737423391071841373300478996604129147219504226286054666234618075963410584897652497264989241656373784497807270391728603916403420432077677774000745576877285625943653127571805027367638441865691041859749683127642973216208315266186363621440394951261348956697202725575348884565675947463548216595531940503961680426540350798672507078870170575708427842939482777016445315103431881137158282608150473756059048117562982463485465135100660103040314823864256264492260295144996034171129612486253803603529436712589251074720736318579596383439107459394942746741320661702074970668703041880126665580094671735665422690645992738426926973073496454074439693701160806425675362793874547282826695945919319657850712059663001161316877933164394882533324850847940751712191123960345895755059667841082577792632771447212415354029928397346919855117485959541162545914952592981334762446760439438452228739589853236272164180910399333740168676239416326602528139523700991247506316437440329631677138262684387298648218399289402218226742068204784751524407243203194168850037647393813966043082507746355593353728248024846132193624799385993236092387593897245666084254657043312108070177335858699695173010903586819063668625921250252517294848224636926037173946489017632536485270687478904236006660376350148493163422919981446195959179693894118602291368206930319186133727838880885251138190804675971300676144224362113373342514368827507734423326913451215789862351142667711977568323326851050149527648522461657829355584753613289913116980174372485983023634426217198101557199282146833015411129050323447450334608372096823488301631185206087490049815641592087035279323758865061554740723452001393125349074800889696337575448302937301244140657847654577762535706090001627706832987271352659457630338981857725420663461834673356356089461226394012222371299772921463028046505515922581190786522231793676890260851302457900250701104393546270734505638291976905450458991288559967439367423467409098048907778866813378283405970533050279398102501196022569318473719278707159157390869149037569843332723932938878725332742109714100014554599549130749847481595928617365859453454272578715480503161595576326086301979618080557407706751863609449221902254970641716224988394673452476027453306190808004938387379654288176314699083138708536641155410737761492938700409654788205993340489189080082411831044894010027891353787169396737010311584727028544653681033836315143964559107313684178175329387047723917936666823061219177875220545971060426496996376734328374906130822351772338329479354723749679372180044537928563766630962290430594425966997386094559673363433265668921122618035029959020670214472856431854689625013804696481739278225954486449073937627759766109752993905893813539866700885989089120367934831848768313356657007914257032455257887640893475864019555720556622158040700146425550235389269784385600804441775954278716491774435016074090344683706769960971705754549213566182698237639339691313181366491387597884019000397429467751015578867351605825644122173313285814334118886839077814915929785445843345676984705199441346367620467507164444933377691830916161876664324431890812351725049051472680483281827069153636798793249113739710211694407100128495469596628642270169942698247630450895068697321369524599139297907956470609409129091919256679300266287571022605911765016099433777534162061603320876426710298513956269965918863520666827396092106371664264578196114502882140800426743614966246359510798695612442764043142471127188893788150729832821050371789319667749162064568027010836822757095853477196023933727376796812089575448766231136277757096683066636937202270946665396102232955615274335267354451839874538419151100022270425991979662173740339746874384784192867277811364812211831544600549131764648776476256728581132121141639250231119932624653213197762014554805762672741219001759960292533189850671074868205477918086584282700661269452356983596629393088895557771027208734568634634521947453351897976215403725493221187050023091486918840980637143850140331653845357025076065312916252682401359779697323058384290192244750708508824273721059123223987319469498507558383323811957818273956114098021642364112280078839935179335940800790856941154061662533414420864254947758534403875425679111315026696158508849667198097895962745558258425542002054322706227723871270643674124174137203527077243546562507377479378013321493223685260104475620008158988501669091223719308738685691916096627726812931773164859366659131819854043277560339364360354935894117194454846504107627614541921690629871845533139291136772029142615981513107839197898821733509514191352881062492726118742610271135236823545739735544995245350730468447088865368355811209338202425528058951916002772529092227275476513875817407625135014566460098390824675459806581186989580169799405059692046614146351538342435611016722035028041982330205402575843551851177192401475756250148938703721631156715301860202324714386971418814134841279341073112613399538193780599042063440549701985083483653666606056458347321890221204564007205861531540317075721769254276356240840805662818822473147650050833172547266735433263899857051512562767112458316999722192639748842136558472506500255663326038764838148594141365594424963024927072958314957825907300840839404082366105137619649212070423565553680993573874472979183993233986257582230994089015479372486644690336869890912616296387060221027055439388665624782830716327627697419539861415094850515575162031132265575043459853188985970928537283623974507914154763000103351772250099790508878979226323382103648090519205530560695149473236135374219191055417691930693516639718582797742869781382527618996476126481252242630212761482243076224266661375346563128006108204822846211193683961096261787445894967155248106472534817408937299467516248318832497106437218461320955219711063215571536713970549524912712216023823551599909185180381766200579761233973152723126612141476640022767406627983163468473953528300998226049288307605988322893255117624075097872421029722356914704531155681875158633205075164277650130571337427977766659431264942017966809867384216105959658915471274451664348296997886217950893624547436741450451261043301506586429591836673289812673470060136328469026383574679173082024879316336220451952299685016032850125633894886839828296215670139537738933096706441720613889049736611114841702658785067633178235467714472833507858602136436166050484257374092644739927541940005591875076823458703586524937306062348835132621112226297785028395056055394137292727840952635965075512434275322827642673205911376939644066273924622314056745703136686423608690791331836192067546686180116576915632927043349640936351171786358734565121952015675364654917108569070799901194314873020205523237100063605381647108390106824020258104195367013094458237002764230285695246446395811039575346962324733517630187490008705028814421981822247580865457197577767240738903420297532230978268121224972789050210655706772755389855183864101712151396954917559159115615180799797462137575379063022329814015154477823967409105935561933737014455935239883806404894359190841943327409778497810289497957557776211938144516095526752011473366082321713785180005763526106108927955401358547207974897534050224416501195262315220136584980905744877775136661097848686838063771896627243298072837470064135320466059759104773689997854073288750071491665369010494658266589093709461972380167857191961300520297280734580158125814393998236781843354834547837105628585015190668467880844287465215964720916446730099474695798188344706844878609654097123144934436094110963684697308682931517026208950608833614844219687297884963118963124057442788530318649799341342234875979658849675585648667759812536346810729022470430302543335140507539179729081588073098098708689098459403746509860757037444514136298654015512769670703393523014400405265159432563511219893859475299527613739623822516053259997200960797609334047362047549532698121191488668730429230280831577515461147231039006611460189650249803996521066107582142775100873416419136815265150998980244777677259131408477498052630867026217518995729547757167447221010918742991576480615508286698397357112536961126104780002212457991597451682871482370258736640407088762629621554312505169456130685144981625322324546083676139185247375352672156956134399620149193925568382961418915113045380584100536194361284078698331476578330599008737375636172192583782436514600879865852470815272120347221824053619098838933389942608614025903551963675066715975240928685588923075647966494502180180304028902456160540338219938163970078145860621069414442715094436236346950954134469104154717537374936089906359941158943096195026083191155408400027293368032760977855049297213112668610156095599507409918349748052292301246033443941285949473690953430841155272465733990508080016406523054638960618464455000881735041974990916116440503930219574194220091994070838558767621786719091500908097334857601488573569829152010494348116885795155717035164144358132081745922072526106349881937948380490516084012042918041904822368153751759217909233067217092548307938312725382281641089921444161860508676909280577675872313228422468842340112966252023968270957877805922201933619359622960318835782903905233219368964547343270071413079796928854092100416998822675898257630834007843658623775656903720884493530110728775615397518124648878837090194313215011390647671507027854549895736196577784467749553058724824607116834935445607505518341764824491067229001543883962499068792734354980861828894332362467364890869582594118098083964155821587024231678162192646284464904554531609984163081012778995809797119102611635697515872564648456579035618472832585179375955117299551869316061408492674765836471088543024440133933169226078147849668313827868481111267042850776010049726433437166320998884340704957164867378538854371325814114998272276024470539254935146811131322690049809708473195692561427673307182647565679202440500796821585911136313606011779075876864963699659124782746800494685124499141459797656416177734419123722016130342886270125456341881046157540773294316828704607441881574952174244449510064806295751411414483840691740003422909691436882633174633755438813690747834677239501529711191157132291060794758408562154363935083521187837610281695355712341215897682742325141786950434212319670462852940267869179294179600330912328200270912033741677063142317437196672674983387240471873955676323235265770501657626410221040289487042587350355937961596310010754130490239557919501656905128052266231440994832457712901290486591093448528882004982858099791606001080616639810852636137183761172801068336600056630442682439476004255079179322896127147135011195777901729826352152452470882219205828077769269135354674757849829607221698356895541911247864800348135994817152897480471324102862842538234604693525774896691177657181085215782153531942032763934432986281113780078270681339646383561098155565040326014409551328174725009751661711975932812928064474608288234359020320566703476488150543495859056925888203501676737200143659570408581329885597677584514369044603775618244176675357041583198294159233511885086779189587296810027162302696637682080678399354046383390558657527838869590524829971271381699977054437838860309395534492186093835954963394479575904087845144096236139232076866820435741734648397899659542649143971296112791261335762889378851516488551885612455705166462176203454688789884116090032767568664664264459054437485710370436676424848756962250161292675601944788632577080152424059631675068222087778833198344961088686152615330907410465243226016460183879219175034583168535933113269242174290109949842298203050523972594789298954302972973073639947924465594253956458282954339836438266021053585557059651091543713701213490631514892796516519378269157521590057099581844604579158303482640012654618813162024445825367231565928055723050511542294431253813209630987722223060364577693392517599241990118660175571727193090214302953014310622120893578069571066425428243986009654069632140236877471813618048158167839804524623045773981757750754360154666838103769044178992189254377221018046909619050311990145899387169928166923187598979025847639594524167394258976016502485280838406397102441012676312985526839966274290768320366517761253749734798491189332369450853209663573544365485297438621955087732387740985821609393104340398610366452422327948100333652226519384024061220979087945178580286250589723876487971599717208246037819812825790426872377913711269299377888557598221935562334071820702669717701817373580704241904569832692996301295620098460146109824767327989144128743043302982831139084451227695914563151181804027050651689531313560428780060741872954920985321499720246255316724715342251368136332644104155734821095248122575462607519228365494857863073669580698359695203848548885616452839684451466550927643196099220456061291565014924469685045375866154525389931813243751216532619449798928043919478690065117769166167790849225015189393417776065319678033207255245937063057765206630674584760412744992436172230628193327164253308044266884790702641723440592500576524478747861291235901606334778771056872363861187451382535161115537714665882179654961737814403463756344918299540904795227984025681686366261456580057878192409635499294484285644111243162104124955766275888371917541674665826773329620495374330353031989053116425864232554456328593415190593135283825115171899240191406106655790119521156651452856616271030136320905598210353019463693128976867289100241027303523892759147718537065335582608727964544773690323184489895186848733626886148443825660450638474023823452888437324755491876022586785467532083930968949405416231932249528964602809786792038226685292827566486565833290065434676221941610437100391822435973039752984575466377268691565346836615910260759750098729478426308770039513251784113760179401128645136626628752340384490178528999537356703837241680764974809084449125381433099382188729440932667629122585011016725756821910252105345501365519495940781786720628476136006107504991512835393505270040799302366847581810454547275021298548058782116037517345423753957517754954298066881908269885548416305652407009020493527683174214267263475803474510759413490924645478693036193619087170729414659185770776150505736858251524775148534486353992340025989009338837830600951649741397435381420902719481653789857015952816113937183554436171338982011466362263673701923510491190112708366926785464946245137169675508647568825506222733277552405529440582966380336093305480333735241859488565266807596324799650207780168745939142164091211468180243304712611666467630019631371746218129402499643443639333030424723390652515642908419427486998403396475371936817164318806457006182874984663582937180134583781534758204812652962302733132067308851857069182852969033569902415536596104012094534096014905989705298504689994422615063132041074974478383835148234876176023805809541006112065441207411905859653397289660048991460254027310863672634480959279825646088372251547689815913248635087875659479345944866605327409684739107611351492919896038585169302367188074370745342025491908462282725924976570038942834225120336204935792393018642575680828815400427204364719291671034261515757169699133925586954281186356015133915204578369753532756943125058340849633962049108984922579047876080607988397065085573016035637868203316565689305209688599653294122760125724608948136471771479601209090139566003752064382306131535452720827078742250485395433823613432978588684347002980226075104839517708605518666536617605960041572881120494484463968833389125251190624914942010204326179623505413623424568048399225481295199734201754103681874474047439562983846607691293227856606472333230296327841898490453207003915972184471966553934621353652850548104668139709710814744129358679316755194497072797421651995669090617858617600195087900999317099827518695573802731229428268725704935674665523669697396073464404132486170671537227901799661971850493978600652319903113678552006219305897082769345133531929162020822050330638501100409747195271650926972702855344553674177820862294511682272008644688911987812231052096278855044729469098428111072470438257471175508722277263479910544581532532336764352834401940871170756718454046274721664776857440494070793066943236126391913128749216327616406459038034080714091787810058835553000489346923538394214160300620825449973880804608233727277427899762460398610888518455349799577083163547210500078400203903925372451154278407250387146251897658727390811307604490977951482165475405633324075325179847633429458202660285540681547401107875116519026748119473197366023381991075681686701358697707892929784844275217184452082492389885848965515255223418616215557242179758560725303912668150086173257343292511777028461502396408383793627685873766755349878342989745681435752468054462802258717756615723646012652671704452285508067116174952306373122624645517741781790236216011452274019310945017729651165421335552606526629195176504384792774333294424328394231010007224273374720128898708106539009055592872281164350150362796678149959010540210174946790789432621522855024103400616840612791898751496448768859501632843945739254046940386097889102668944849778840327991460138044556713122405909422399430837153315833695123968585828401826984049674110029054937864982659950288234286527077085870075457502835595781640502117510408816075740504459456305834323923505051988325639605127853595913238081516841068817479455382547234845289485747286852601055659655597529585768638013486825522522829269410079988896348632233205805420753212322900395602535928591326158639829274157234961802245178992385981251825669280515283457611672519466841586752907225730303471866605020221822981035359176487742210283884070766689379403900927847151124043992666026916329798983623996465200793429183107616769594211649231559878482426451154344526099442200183368161407827990357978680034441793722780324398315083678047516850972476273958899606229707716849668762214775403772803791745299486679337395956180634455116366778563682974377590098144116970810301340601242699848421355732665765629425535460818935879642446286784061420668102238756316960311416966247095122111831140899342208123228789251659276740045449014639711020658330850356453709483021253658271743316802336968048177531730114923315092820521877945316582745446552425215682117862970722095325757060746670441470478760409670978139588299567501115888258339045133618758740761795435478971561149476561874494472551550556732168050734030693738291102805633515655756273215353680227198306512866632999051981138881420766777036092731905208549070890486770902231424711210119560015813880565553359151218282353017700967669043084792155724789377332840757957601527501276711365540675503240638874369725556888340026228251594518075905543838677400297941112738626222942419079313184764094056510304525869040332952386974280475953026505460137659958043159706205957770057177168917580974536341300018346341753541170345753025215757652981636347099278299810025065420240516211924999239663397312939810653740787952792265475960026483463400413718196034090394686373012600455918704464494665907152514046705062254964776622829783017299598088806826005073332996884394847305813573686768315650899390279346471961717079672566654129870330018791572344837569633814515000002845710659402929341348594655237862164228324643707620774603478502510677960212319520013953476967398582073020975583475731136450635520275789295450208220050349847066275393202193935794740623418472165634314055924117451699020082905079981591775826391111660849733495771803238657234447368699940652162971487519241372335511539893387576667720059755763278305914888107510725492509461214937420071836179432893391442325394133398254494938454481920217209031262367224694139825362811358091588612879885013639558633811129784262661297032790881906514615772292088208629821476370111320247108687532392036478565558792152292155574235879366551372229367344676051286974108063787436572297164918449096392425911935541847832867850993906045562714678019289813244699632559843940844640662259059285886418152957534695270740136108526443551559117755837735222329698717775191231120007643824867992028944173752161377218086772254123644844281656324793638100133166420642845480191198551098391229479130444603631804136260244478880553635916789356813992270322867814787160912696468823920152931937591345161657348311454012458122129793569519376472073643999115747638970617211416222034245762978039924798897187020364162341671511958712934392177280506197215502718500411068294768602109917220778690548770422924840499899194836461944593234161987497020893343584782745264965655603912294729016298809528366623866537298709838037165603096994166696012980925550626878918680882181795925468571827184945454926639674629795802976649744845634916890725015684938671866509964625865827598216919599079917099553154497783041755653926653608539781259157827422524491201997635492795888307413881527328819980706791999726744066008204360469710894745451245041627587804110754406391593388450995633572230489548220729103503672491357966110078044246760167984093905785815479119047161246374311951204409467087288788669629012761858914700893122167275132035430958034307239832462011406902018109369224619752809166676443966942944788472010549896693121549641471479732556977586799781129619747028518700452324612690585221539595576743208444300379411352925869943034943337380359691275211914211769758961160581253462740477472605298035317354587743931245396613774132009716134264812397567871275744234969327914470429204993616597491459068745500065020434675729609359455221138842289763781085074058375899699206618286679442946428516822430798207292822555068559047641408518369996371472768113415752381123966678157879446161090357179068158720934376937984463423442530218711385472200135670791283298857435736451540772699133841024259441547932048422818088842232695273143741524785995084655166421128945294589931188016068443733616977891877337747550673001351682415909269919945275993084322537480965054253493099501691563458466572069519604118572608389282070351559047601571951220179921793097665411853995083964395027812460711067029107913503491877307851699722466952293470396919797651371745315695025193362832386729038555138270369643248029574536304062548284820977202030322691747594930950771277681828085944516442254456386002986461284576557762044544300076250360341276281215010559686442003555486929542629322752296227253686960821463310981597753019625974000338273316473373697271750786603771244031705529400354135986150456967684600345390957873684628846716778064990853057901198174853792932860238107938270823562761096014995296480735921709394418453393062091741894173332493295327345182703785240182622054823451329642076502225013877458656254894467641879120292584942046005409105760811987498833603439015635075528110167183351061747826807282781104829848083323991715409489519750710080732813961509558433441401084822793388213424322457631861779793329849329633030716744645495330390157693870698722183766779673933556815232658145730822396966695066485786244442091721157616956140300802751544983896034300101026907911065796013941026822101659251966476451724915787278590604877451826018172017220715128555465502332776835786650939606962365602642335539491292647206497766294176965385083112170704918487286378737535867955769220744450778285103467938198424729916342791054275442097056248334761048794251695214863737525287533423596394941195535508122747961182674991213245166249390695858946667457214497593830016984104795110649157173415816784304289529515237498458371192696952166399986923814233253560968614178896035168868862604290141234837269025532338011499639762356476642821784194921997105732098518966516004127929195330183108604332822400540946669973111056469956764862113534103540754929986653250202300502812349378638232037152285563003517054161000039237146167487243785571189748540256385994036197493775609880875017787508510710284932469582968839075096914420765818928694378790825355376198293583759167761368754800161609619057111514046623299503292100855168340898890604463052511582062890386664275653048415796415066067160793827601021259533878610500817854828849628952911437259810311082419763708044684039214427215124181614946907209088270196388152543437148939484457449246901374678244831901301419018062753276484449738221844162086573812738122501652086577381681470051588418575102084977206648390647458518711147239392466490158129241402408972614416204347205372567313441143191804702860537198081627790789102203174873598428407241630482613744095268307359369917249561777770031597153126664425731651846613996216343101045688453925242761534533041728290105257093334019730524603485201117263438502882213195249996671085157812215975554612812557306253315729239768194099868203926184042204868449880359637201091933677662986607187605191630097931823829194213916829500395654660215833790007160994790609089187324313091458556029725347522279065851451240813315801642639523268717145066240485252510745519414624916401934553108206020258277970095105578302050843396401841812544199937381933052403135581974212822717272668426296271211182957000989530110444458640811672724159061398288603191881598449049170161798945056042122894661716753554094324923952049894188351618154985634328083132087904719915304432890370392649409121231122065984938708942446117193221529830497531454101467420108595232124384184455975537860288209278772457286464897546433238303517999057536258262420700534434997525613269956802852666941551773831686130980340425683674060147977425081291181146706726255484136019600475157613965023226269109803727406643027702467543767847850573349044145406023449712139653070828036015387177074139047201325225713384089632988186057615306529925966007569458195515593635327906993744712857429657469072986395006403470940439432074181619049593386691028518328418839935501299127885195340983011944627591854837184800561765901466434807151792219694974332943113741195109327907116439138336010256228130570988032192752963127572377689676977273875124674619286109753524963574004962703905303634931040107232369575245083904224843822905843736138504730748090157310382221572499068304291306804687174729857249678833462218509132409765214866302157162689648232989240585713679433566357799162732576619261651378168760252321563425200011524772849668116836566228002509127832563545118753302526639710132265513429374752490277360337242564206192207947505433860215094326398306845977736891924058912384618606213029608207670759583144777693770802130524396565419917082190593256781633710056881891086738539507399264562886760635114371973311697160392293797075568124046455475109513571032258003454824787111481712137978207297097718936797674641767117320045384281502985703022602472382533945895827257913586614101784425483208911727597313722577773052729394776588445301746209673064690926676744899226759524030202380582297088702773997232760810524600452496938281629091505256693636693124862969644516133849375317370083178473492201515977532093574528739138462919565796837078147093300863128014278358872575866986956889609894563631430241349122527416240708507249099902927971288227977746077726093303097139543091149841472581678834680213252849098643130585011552865568078276824857742474873879815067794686755631796749681209430978761757645328128293398190616101225327615552802076953937555427134468186315738608047473979502738922379220421686036948692476642157062994459142790179278829667555600224469984115743867959970414768410736391327157911021679474064782868133768793450213713090219577579153730412307819389618208136294778561703199711040740507974756750228107068828353981941748627427178540270440330714374607762394487961834198227761072667529182702284578666711614288000586079917399314864091008963698055896245195516322615636576921519181061789448734212896154963214728042675830270211261422671994641872188692183739327033772767526584860655808210959141551079291459201705242570713493815787965236300094053273032037223637891755773793500831165845046315603328577446461461908844366520663578458642393286775641610681773935594681298744009304320429469854518227664309335426257631283397689412648203727285342132601582406694714026939761374416398757366776288139934137231760477513553756823519852243205065298814673385552055997775869337199010534923838746918742174843326212386992792168641658146353470068061256470820428939965803008461631687957700633192010824128625524829510901405580449515872713958927073956388541972408369265323587235335817167547009740939945415402051001816782043704710594951443216248219562226390376236511398196250115190432528313460532390564841371365742197012657851909747791426745274764662515700222218475109946950240461095175622075052499897335829492887625625907671949362009289868192306746318298442882287488306912802888215422115201978578982268543221951934889425558371323684488859621679398744524073385763892803665280647294272981998418306479929664157616304570041434416341127156236868491536356279922436960434755374257705177185756172003164739897297914771411270900351970572134698028069844755646119589041448696116916146798507951109798930382601874692349811145022555149265665543050092222955452049146437923801722457452863687677638884125599355622597616140025294802821528468160496000704143824064278506506271361108842169981042258102457923055971003273655046473261747770409157605781400113989651805233719719220943418265467581712081430757120862064294283381629163396615528281544172925037946189208295799663361011501465037031411381841083208649900289300683010652113357672903891260636919728294314196175021419634448478742623861361877956543276445816285004791016034449716692958734631469671625523341945218890822568910971440027946215160040327255526211341524466864856358899335072347543025233914782885312874234960369455131498918537708566662070747098579720089115757345787732851765084001780193380435973583894618634169194216898948978579025216517521087614825203968285219716462085760744234421151720698238025532985153430941956147931848203112546140984841069597938371410313485788309940037017919465110879301229196815193909543028434475582542104310404832030055098268518059732623752683784288743815144061945258833386301952227154010777877811689064222853210805468150381579551080432056756748893393050891606971452516303245985747309395742803640012952773356387189255214450593341413220876040512290513532176958725153892387926684073560753236984900885048530761105003302782549490750122271402804740294348613663206363851011799871345158607998605979928069633974522291000914148928384354321694355337578952091051197653538309329944452743268600499467257286494497516365167865679164528446300634725236403905371938757841238306453353022879649616385635372335296728157720103976917815616752032275245580105251011236330272327713624774250398717924897164609348076759062511641133195181067735730022024290780970834624514956315044763478366251597566779878913414359709158987820172832148844712852246163815195989562769178097428158575650485274389099398130544514110935415889220817141779939917127817147506172714237561248505115185391095918823202793444449041739203453708091298457717460622789948115723936847163508761878077452802458769660511049829322728819497534111890416021985966249022640787493380014833352476443441293817707818358709972681630247971910520405828654587283793145484115690280762657065085743019872235698947213619748057071240783274322526388422851049526159425871614668105535606421842646493050696221346784949801989219106242678581019682244389251110825454413533580174546006035707050776589743200524223156328295894844384915872558351446645743923247342263245148847646038429868120435802144700063228194189466017941666148971980259826277079347895315405690914592597880384157053242467207180687112196549100914016180603202802274221971256248390922941230509685128107550457599890666754838667706210822492411958742789392457510046169639530410848909497672631889558812093523205477649382178420386883836056765901625401164984363485126365452343864747621753901706016040646513946940339074645512010966045659223414624958058655460895624979790379320659826437204834529514870933484927065932064284401117282175223489148928848292287651593107504846730876524900573951299365729241588026769671444493250691238628428722364966496436136996249446203090161131342901350199782787816685721526526531793324471126764011784437415891850509361251080369958835043892261022217242512915327002316434128179709031176654942851698092207301991600526362981064408866526000830996007942051421807354756489091475357552641476733039283742538609691754382097701579724742621043411204331248856040764198026879813879585122057699656929380975683172168369504027880611952911547629234762947933800671296289347736116261732969592665872226994344787808200398792974695323902599492929026634311841343959656856539393569725891670967621948327729496049293143096301530809416674671883078651218389701378934337069566609880058793333372984190461565549862593848429958235995230900979449282847367091028472559018236773388719612722863782857493928299731653474241951103638295780148708354323779298461026913844923998706184048821872596109663559771368732171138336844153560009504189591784045940338140034100844365510057017535249465206749937255993252091302742355286271698159138464911184912900436880941833644789972157505240197569740396540794311788825892486779144367648165073017871641856076176671298155301509279059549101578957109141323195611317992090181724581996601064742458088658997140003436713564525542504575702203048887180995270469595315761789451779057491832237187863401106209078208793433393660888655431271365659590805790658829479685881445936860834994966168661105912898328724659518784699565090604755288148119219708765207692570316581414291962867418717134842167702696196724927136788032291345357817183337610098586508538668620421769346133496385629818262443515921237810473455612243283987189406524392408354463181588747150838871769652780406061494219924138657630924994520785484969566210031396753967316446104232355249564099189092080422379664609009758302394374234083110788440207458194043215064949586545845741954021095466311076731323956502734901166722570609877930382407578559168263186168227468969301727297325698364485798896679949657537466609903960651207331083994802787948079955949009806992255191245896159014791528431483793735685020956447072673501973041900719330639510818519295723681302758026657186619118272339574175470420531216594309703541527093925871530181968456552503345742055359866578468251998950997591383633093805753342551021687705909701041122538536748140412043708343381919691446171015517442496311691909247386102456807418469636845501237110363112964391945622636453158245233495424904237477911803827803384123897168064901910691613964747669944114847413522798141377074280345142971557178461271295136625423404433208595870701203057524889185656256078052550673794641354702149345930116660506388688368153554781347122591751405796279933183851539442120354908740953550844402176393215374416468773497561212101571549158442204566053184053495674976811797918698871129103851883469298951615951573391219400929290844764625409212333784056981505246150539937418945962487504178196361294083667423775781037130371851306806620964148381670357046889643040376739457174634367338561763133223873399109126406673831409160715315806218985698821177475286527478323628135098172641245510943835343237344145858801441669640757913876571900456049901735855057329277977085461870323248988427292387329228021336729783098206842623431925538420262734477942811786719577987109469980925171053276062356131954036873893454406026674581602464826600311194922634760915679523338423718158628576376053659277359501766841415718662106137368479175575160259839146735480907494704117704053173284774549906314741696243661748193620203008994926294067572745089064324746566069600437853398524021621945396693879057552355063338107165194082023923119512629354048462662537739054286959378602072462436942122057115057729599903013423320101200019883884289605247007505632865231641535231823795894506690511489117902355640998726727593061224825129876942246940120932471764254009914678035682864607902138244246038361485727693379731999889828856099877974364517561110647734119867343876884369148072782635845734825633985002948892840903125372133894878191869620376728397550813937736640698286727994406866209061197037905917134174366000878322821823083986784117153014583883669166161292551826379252441395358061274650179502084812784924080550957440593739926363015703510976952216313629271802214904545066479002350198587351266506649152648294242413892626420722626550445334201610828953462743825651542687158271894552795889889034644475378603730020718582972308601952845694706873574709901303774254976602688422672634772225643742520971129488854428990802396853982989308590055961378675403399548534380791145781676504282213646948679169054762639531561429604538855795829001330722607435724841859981823046950597933323740651302524515438023507827919185735431589415619916622947219399096312091439845272841789113429141699536930779716188713190335581844424714270041838718247308388111671098136186639755006521604255702790736137926165124257191942798566191852413670563774464860343509244004714912032214482473206070145956024387490758950133047439786846378529091874540040863636497898920709504711102809979294451403623558150665255953397459036754308042498218084126842437173146283547935034495407536956952665601196047551374820675142830093329098336489515383275352197733494060989249378399130952420235844358030067756660546994850596330841700187485540261364629708013374262554171216228784137385700322368184054974885667490041518003677096588322262663421163856465697104637812649623288876889412508128177863703529471214656528529121427382276876905248421068227511248332689247271310148442317611605074361185783139319187572780843710737266946739698948114681103701817258699524839204869464049378715828905072212787053191377979382842220868653052298913410932741510013569757860630821907347565973516752380195958121628604127067068527089270450051397687294200850610543672092999082670775905776256898617221202397223954965450440117451927968206875770566854045928151125746921332170270964547933746475875849980128812855191152976217671049782100877365772460192500172315528267412166477605021432665776471558252508777482275094820202958414656117823721786976055240018728016192332948678507733647730828008433483730487868493502602019309115802002486341364470731938870373801350242167551538565114519726537665804460860320098662505472899976584008425901944002667135641154035941656804596748637800120394630651954075517510882370861525426334669146055565080926688649549817925928768589705275707440500632762820777090822899805727099451282171193369429565286879694396828375650453203404147799924266344425764686029478545157248797765795182910352648367150951039234019456231136976448544433404252636002738745474122445581965152587228885450395120449292954892843472990908485714949000561881929929522566718109715261532419906151403959117686759244076718959755807645801638336945290005598629382790144220483984979692112021940152734622009433507719786435055616339434387304931888096938185981121144177722197371749732586043996947927352306556876273631718097043191711135102579612148355895510490270418227250439362263267042896195920398706652993434640190750893591745997683174173285145146243953894661667487800165344311549446611614969916003160461042084484170803063027171721631247203624516671115236731068050487915972526350484364114158462526796919804624652552405135324208622979713746382278733133191469951864097981896633742966121302288042903374330141449217094615454465237785746037556687730340902184987612615826813058388949165314550339352542082920221761303052096275991377776658643200478044632740428686467301849662624269361441702033647256033618596984694552800991170001558858582281820024026331410988509872177256535149748157204653920136058973204246151556965257381534949260465082280229054442058668970512754176763653053683788318675947118669356305193807938788232805440518859634935085828881857376253526054921751542602431358340830604373729036285043236002796760347040802264323202070115150972459563957695686758600399748858465091937578271314840252445761149970481458613136642882761658697287992169947416279632767000505628069963131475893826656958245465517408499372859948275880820863953396728164573355248254520434519435609612479647532549945674490609424542798041705719256130696582713991796785055179340294272049319268310928880672863469016658165303184476210067819238041656730332424361625912248524667979654449539786079172987396303148272899956419075617818882822701944786640282193216088514647702817382793626615441202261813737510224487670335964659471490996932192851944881319702660717351554911833969665246188409778537732769874767402409787374609447354560400435738061535690624252716899932594011026777692229872311874678414363981246966311710834639929844879062704421583984779462794855523537897397281811401105705597180184486740565087221073249465282787653578386877903158590310107707445609349700943785667554851436843827127551284545106483257752641334524302322293407096203828663046026372015044426938716709919513019141698938489537584284332922100912016980568458281403762891532119970462553550946022379040203083288685225052043141212396543643075080252289492482262282242612398730587899567029246462791024575570770496445836264151139165010439773663765141615100646042181158092622926085397450063300137257005864360857823029022981756599519015670135753903693764803557590559840419184634139357992261409857360755417348791136042046147478214157348319462775626017647902045434836345866554090192841687181256260373180614990838609172124173809904455981812163046122356915124839991604796520494766782733052734581308754401815207732391356310739226695471599602374562046725646660110999275564775864763481356394974035065677952539579795130175932317138474929819669941116095256286448795691512930428746920110717533167014417206730760309152827044961152977536818097537934937070868465368996074202588664603203643498978981831800425084461753315409730551519477600651035019238965868049046989363717409938899141863962308799339907364744910217684702326281990356167212439032128643076155219314801168781446017537724694500719390338730671059470827725975028842609812377799933554178172934716657886443389608981741881709174198693250768858467148354882295693646907689348564278762284656501524181652108267258287412673127105531660430855610505285120544846548908885036619455767323766525797026583175186060781451439853703516159121994984586814337266788309003794665871409931775986463011461858244131825481209706885130801271784842156138490590404772660951802382647997154839095282466817165841751561434266853017864955151115477032073832195349115237244063553622829529348557108540208610764761383822953051268761102612066349316759570830836963395966737279823621809403991803675263786882923083641283471562654140687627527127750531590294432530189017626187177338462469912967828370790757425154356723910899958304285205040976646809248110229939399162802062625758110518417781725083167595653904233295940261282935951748055013176108438218441932873019337091948771812848360452473193382678980548291755594264623151463895002240248171877743403021739087901979813648987744478791818794471915805519340372327619976130011366524798566234846855383592320804694421418927248909463284355356326899785682567550013219771889377659151903022076262905339974626776792023409593140730325632073626702691538501768208805252291415234531026452152751966995811881336094212514257481034598856599228002552856928952456505474767578170691599702628072433697021862090113821934172858621622677168892750839153140729706458651920406825338937707238884509951864694875524579379369508377309444433395664350975529779864811018449058333501794476986022745991283075341076461965743412735301358668588037273900495523566300669094932689173465719966273805793579678952817174757314480855896246243045624984064614155905899288538887978869566311565402853143738999764416990616818950026584586078478444332936814877639059950021466299587169541892386280095036137429942294947245014327032814567002585371648525028710722252374544136241227054687871648296968300339956958919142676458390770847423560048578081399608624981707624508749097459454536203638967574430947421018183256189720858241904419556499957161256242356889974663242069429939628708599278211212866878589361174854691504833390358723072998767747475144339220829334870031830811649047325339908247797156746415588108290395019660204109009952659946938426172822906154202771332344466243692412556073145511137352245544375495437383143918972486628459085290580485428748798536188194407984544757821225370388486789845719325202368348887120103073340167503675758292293268758331880956021637922612646944287664577897526913317795975851586125602233790222449833322509320262627799030653849948856848279564539059835976198617905471179268111339216904624673434592590335769917175498851839584140695315641794476522108992749481708016316414832342450940840028196330957218412733458731575822829322946105422449803516876977522623850627481826919278960086353111232473018500709443155325746179367694038619102610250722046561393309747602567134207160434397183388473852570496623498467555766660793329617179440435143014100803752935797072973647734044111417173329769530492982002242740868631519977346250956603332322031734021536052501728943031933164380246515654273143391570730975074836619464439945715089900123850276755755064532344890128178314429849508509970063705604951127601988496599257566065696202260851170455823835624531503214904455122199849056305066455495598385829177449841752394672188141052648826586511660363594428837530104515880368124921652437281104327784112543246043123509850546372939454189380278705818508194767830229555172716508762179532275734446546314378861823210067122108072979422974347468778671759386012473744813881190603455181935546357689202757005017117837442319309058020762277576596466041402002674449811254744594602382662188921286376853051401175364741936230863950231971830033371074281790111295211680227531209322427140928691870511772615680035751628402969886809610441889058354180551445562427416470589641138882669719667178902903697951658505933373569822516150150461304431198019507546304421429967854706126352926211889879168866973451425640414573458027952593223694847038584105759198022809868834146263939538939097108764349730545242595298752567520043809443725858785646560628546910976545255506528430531473639123984464112299718574661327404176302051101727396258436783355071053423619506914545728471187057327503402434883829329299375966701959390465686332122486746403041063989095496375613439933145815651566072359016298835551696476025482676978697793117876196501529057769594103617957169537074937483087772975410739778292589097503874053927367386922085872770592431620780923977026714634959872473149130112305666399778893473564947344679882557663590697857572299312770816557388642131444032989314489779594373125156671498836076175530458306861066707512461840433249057288407297751908491298072122249177365079564852921064637190019517302217097328740759397737489519368948891114345201650682597113653159487404471068560366313549047311377097774032421561015114454079523973118059680583152268990059798581134258600480457460788375599246585744616311463625271829415764001054644408415757712998514770967871456990482675556327616537016291252254038256176929395828710775774036050162698789172590449619376797701356517166443619102992971133156301719745468124976342772752423245508102329006956883009013871395906873150816057566814404887882399480734753038310628390118048209916968545158886433191531710695784964676117906793766793801770113487040973507213779328169470671607261149019589414154891939984632937239019989098102454134745845119822679987169501724752296013853824748676974073984814580061989955391601395180019880371239912585769735057592189792855918713743880611400002299170886654859265725868624275511903667236368667883437832207173789633938263119308684594563230453081042974752799465758078829697586747451822250925443175943249823447566508853078454669225243488751463146386008200142521905232473838262592748807065611503620559400841627658009478593023201106126247197165101269750126883062006056329478026738225067617875979504966623771505596617133174312695954039101053140616891730793564520566677203134020707265834627774013110752518993466119228970120233571302045203776191979262208085230586552700823193350575541356613316263700702324187823131519704530008106934534577680604209642629002365989678029289990637217783483455262716523174426050866135360549845878821984205064102115893818033931590175856036404425803122301188486996420872456268427045058206783306643003597385135383677090712867245626707929179454211270531513569857911740115942239636530445732559612718995430584058896087659428432443515869999077075548044880663946183199003162383541240843814283008428493099259093641547784603746826076326720420790324576496552235449008966008995659176214312750887026039503888711852534558537144447079678749229108649871096794656609920134166634062257151837637787938416893789517927983203721412253749418312333299881227534033515014004555206817647030834568705104567017814610320790913866199013957505704340919273502097321282343167757755836363199415815311451021870647834947817563041804626945480267302417721062187105875234276552237612926766888856857911468352051479437006860097946400865691156715933817465097265155833328065507937518502825096762075248576290024944079680863859401271113259039979431303901363052572705111552691671032534867201803944868902552918023789494982247846138914733662105849959955696569582406409626592086554448520015421186171689906152730446470768156884710681492496383566788700330059352763138213728202480030000275697506210653532181490011797639324804574501053912657159163915489484940768026798528473167733525520696095640313548459891104011455672924450658622640307270667176323936007111223266909258283130199100894947828014023483377598739617337012074670902313502366264941155772907686234273962513315526866814268751602123916541218489401721459947120877384348883678294611992420703743688287664415772329302022034857686851098770854926282925294885534304160468034178122639622859412915166963378304199589211912882442788543410984935441345181687483392466178894648730305445147799898139876104374296678892954989901381459424540571434524016356001785759785724309530157443303182776377890613817120964285696422151583933460938071789093264758268035036124880141759274644197060774345593365606371505303809274640731120666047144023006955296088054166250630039320800175645240762411147967397127290412549401874444408513700505562662855422984625191794093060271981784894620172387450807743415736927165089773218655995490975817014299988392537529113346474679145937873530010768838884534869407672198103442974829971950545945246381622281338770093155835401963331687230082899131660433548443642923281697330795442599918422576509123039137243200107227882160444976903684034324257185373184537613069923883545939618629561479583748799311699717577194560588916776742624741548570222901900568975598144828272960877588660040357121101509274115082844114313762475111953995409299497742384732598799805625351911035399765078678368297382746391046530686062501000501301212002063155390842877398656849829750111958612773776723281674660333386441438525842552392759170138821847609158178131502421994100329444494647803276541950895578714113577148053399440883983064610068604382814842559329191115963331191767529763232883501208714201660596723054245283027962355093524673416455615275020276611363559949335474385819806746961381744815312841928347722647928389399024847463766634622302685719857804044592342339155874411774315508347740100648504077675593913771314297050427829044427759535477843918161296985610308016118286298295506730716978926361186789838291135760683744562016337565947517611607790179344976027783868284958440361240467653865196670289273184864319540530800268601141407049632070618304425138961730926476508970232750528851420130674365848023933886110143560778684184051388490812942554627975271888185083119678706200007376950327211639716242508258276840573341417414673149713298435599402499914941652655145318795818871270829648370924500963307275587234391095925555739281097178966227977909929377015587795104552674588571460044969168586797400302380126200317992236347617282965618932840453637024553250421665943829653439738954318696891785612399186317484319160503416676200323438772009913064833203341301867165162887170141404452969502470205410133109978659146455947169491212800312388695787620279124369041026499935739338656975417008386774262998946219450322129300331318781539854744862887395924224084365263888984182915570617007307379438635666073709072239793038130437202459939189030527996409869885835509757789013563030006589450050860663106131137682685876987679692688962039227301303090582499066931599294356508412720023587015915497366576010401562435123062875822313953692035641235924176546776908946150174976051801411230259925415654514325719082176314771889872115170355985812213606445212837226397735866415402944559234609120877332498945275140049836798930224841319422932024222965928673880784453761579238798622747517637926430224977141609698037871140379197887064019653562340162267957671333122673803331603213004949677518441521460258768694998098176307589046153793681787753685317259036499301117122170197200120710920113343497250978884334941487053922450929036740070893808158584956653232236613749937166575868636527574608986746676333390135753439584772283834599645927209219107492648120373723068928247727172291887848126410249288671775410400763681209862916148763173357956645667250468188286331265419108251849514733388454900653336523923963358788103718769820382837539399109489969358618759544989523233573432700679546360849310319563171183878685311010996260604341851847369032763474212595777269221227655235739700589650293264002687910551310481062328051122856699795492049784888102151373877525698797505649871351542844163776397503431716903945398895922147890736404191905749978535714245571479428587222912678727256467911679215007133892232049991475495913000958790477419769975168392446585410899281242979211999096253428026098040236845234861466593476542575198177969177080307120061822937054849243924386762579315365927409574563729230122097593921213036884066875347227964478639640115873093460510394771162467140535242074558855877683326334524911808044540512590768170787083058488102007759556619127849161747547404571371055586427578066438516517413326075306379507855743156483612500658845116125181371525639839614563627612501710554148250723237622543326146299499269236450355304154704048260948696924009139226615051334212209226068354779747913759572197253402993215324325074575603569564916382640773506343703777102148205735107716784020527931958867870475824644432439276310503824345512082097238917942169221394323839115399259450181953848562505377626230734999904790385329780548574643525894761948850810923333879504636248913028631911029706985774251461207147759928909920908652616235913797672953562652258946313071238455221960912231460851714986720700434337660838701242698289810629296700442533060135464251537499715482521286327778643465122509077792705013989598220849484645486990249484473334957247436955968728260139793180029825027145164274318420299223183047492272336313650496679078545638529794493699477143844010123679411489211004649958825371020988786759313167294615543007431193482061438938397536804989021072959954925328652582814435055593985579117071026215472136894994952713179439730166508506336860870748035909284858506273286598496672563360139682519761427788310723683234820391932028237725276334888170079548789576380996221956025031410107281117508507009338068131028719887781630389121357294374182526290395561124573481340916821613203514248853577461726852030374297001102742064255858972610237877266732270582046714032364629740189433420492785576629931919716083479073228512191300800788162797177460505044272565242239504504912704925287015830220577210943853419001421023267100665129937199190633290012896660634780654074721471281259315378762338500677408239022789387391364180795837809652427253144669418560676527880187266333111592629484226421424742240580750871067681632725378902061623492807384801153675964853030399753546463697112642466423149298644269904659125889659744764380129373890726346038809167262860515201189122768083183900281059303526411761752869821822668361927057548742894164383036081795845672612149061748774149440362703788745091331215899572867865023561213083749762478678458215471619076987824888374823552361710410898329008495668268630594437067185961324750667071288348627268911600907417395433147970515462515262964496078938649779904996027808835867708440661148834610928327591646896515351861103829125757027388698782058270337895925858486787131345144555618839521719713801523803187216132076642386031812281808352326526369257316743154175520721628350797646494397586076036233320242939602315058707091474633614336385763462941287278724415702140489677462627931144850449180522260762192886639179958882947198449605971558511726390558638037129583435991448032643240496357505817440996743564080917963548064421190199354117827231917344221900989204096023468729078538217965282664394838631919759040882087423228496171526278917020270969820775179731464712973355086581550811646096668362916119758803800876573827889026216264446989559779885297696365528492322844539341909790218168804002021355770425562824583131842622545666196755009289938904680465132976569505666340714404944988333906165327914286804099533070449362235448032884435949060658888241943246105172867800480583599308788293357964225459947235727236038438603607922401645658039830959691746808232516403250778309746029373726540426675576678379199509162448079674426998714186800750630032340063827571462203330848344027410911239485520083449948474523174097318427702820789774076399088328758971300326810499241979844628121227748528211400205358676580025210902774112854308030489770682655935433933101310836736549234489850089043450013396202441158603439987120974596223442355046736235667963448028110226046319503969002801008612708370243661030014951498071911332784994599149865581658790423985261987426519101816718594061121516557607645973576183817472840270243665567198948572127707080760121329565921460315645138674170517373430290204942595351031920940806161970252450374287293891381597243842073856521529165748930940726189867461623130533619172083008782825619731242121704331666471590195580196130630008943677546364430014933873701400021726310645922331814941611399930942011757163059744067757898544934100170015689354003340030953016295278145693594755741237032454329046912431341911866582579660876240702886219581305034387270135362063150138111015725489058911389715680523709070786903879544725593314967380254052393324794573442281406969474943673155169847040961073957244534364381336099278545587897299407254811042618229988476204029356923024489147754806773431618166478197835914650543541681845325424673592807116132752716866215341655844418857191147331487111588727885183891101490639243592406443008395942901005883974348099865866757749766063458691500790283730575439545687604846749573124823480341257463172203705198676877164570454223746176433213779543086405882381599260997929085572879046141814114978265203862653500187568501182220376009025678046714278471169458462554870220453534918749180123411434888839915646400312164471361294288248294587578061336526830593208074042931042594657765935595892562629608345250710307362797896073839327830814694751437009735603415102851463820190793867030381808613023211810955891825483890955247082928146804139699009809088075774374974117205858571951405163750778079125628509484324140844192329343382014914659762522531634985197897233352889560236689860439638537043272455510495864807921078361330773271684877369071189025838006568822927795062926565404986734804499433286945191609233144074525600040040909272163284242967553205197460535106236405871168398823402157751638552080018485711186292841038529950135858172907491099648869725382910231339235011890842351491919293680337451412627633399518177684867307832639510949713719725858162753507235919490076906102916350012396077961718887900026827065894156873430148142375160302606849316640972274839748626839560813299191840745255205854066769715376511152105024284011330981820023503769813313844791295454490466630581175872131173229039733926618254732196336347104560757229893684837053493611876849521314569281491832448016933122314431670230528344433820537566028624151334365980345348696266323615657983897208632218268817957758340833853179597378446457208157496353637091529006649362385695636963459456297698255142495701930738310803307257349474965264777856468344469779510803434885178859852282242365817790144720348831777587977380831226154033115900641884899977593505118461489166083379171008812210620743881906149294300614827763886681894060889373422968922917627503675382025784617618508836924027512076901140531179150099308920671145226263944025072233868134860587511432114816214134665291869398698025535132583126834615887872107028806902492224016901652430456383018683543162723893859095135982720480807804544949715990966202582658069783518327016492121620255099149874790393966794348415739850658606389482425690769396932808205774444028360779915777110975397871425067465038903062554216217528405164594682627636816053739406595843181868096573127097662140406105672489214988030353498097225495330099988671773065799249396258618650149198594734029837596238908359443434839011709565374971660480723826373507942644579231596922332568431685283352277330311857041353669951203941318475552477740119125053141026675621008992749536875290645359841759512398000863432522108452428599509647720080634514001206177792403864399279880040771734252416586433188549376047149293641276183450159060631339868010063407591912412698242671280807524995615876501116318581072026910001218319714639500975022515431709358430680642825649136474048779322636261444818795444236028328521469391740135544903686057569349290368672875618230145039136366591263758992174512281698732388699403643591861479841480800858508977564888196082856446369421391292166850891023117898247624087292402018066424770750003322546713234093685672508092480834058362618121596680813218732704613169838376038216057099279060147254242496086716037195138718392883983382252872087594404806032034827637941988760195875016168775668827744142190197219426414384388230896886845379879928179589071681480031320516164830740904329146953003569362239359261001729544662627862837381184404030075583916188956239786142324789107811426811865818170675928433380403238419493752894915073974542063896106977173628633628346646988750819322988680924877693381733050441434098901820810822480133043686318611036129062898230475630080332305207017880444362040062386800241693232012841841242117303203350957591724923949197979060647395372614544018664054176844541702275255980930649186622213829927335497861745814910717344147859397883434526276052609732560605099919887633535218701798846997613899100370178699856796920325043587354781851420776111201737586306093970393030508078630596463542514180969288502330807130133411039595549658541987516430867156172559088038375813174566089063033309641711640251026477117518003607529156661362951596236820914277693341483321916305094907018925641746980353546903961010561679484583203975172305289079072143210384532791717462279707346370101616758622178531650930118111357807153521054564580428747754740940271917244563348077639547551172641617943693500141983949181634871535503938684649501836325915965443976561059266904172456311493423859472930450308164932371911685044912329981825447659341250156633070159747862927736671921319613242042994292193172056879466680036636122688753236644987337886977495675975821860635018105878498093280881383635530548318528900128972551845425280885482893881863662513374522372787883292062657168960971252768685803007398199033690608886305640694448707249127705614382759849450838965217542711268237652722424253037299819561199238152516641510614843371606470382655985705156553072944532024530025382522379403172340604686802054306537851234349013629943292209428239437578452932350629427875328036471690887121125741917266557563927859167017000097497909747239431250182431199698546686208992829380513997512494317150918325740726807443964926997825885365208480138045274040216637619774329718995328516703684594425889025650841587159197320302732819691677075367741481499873617597439569932448600983815379569830490270056483981250847378708532540228291824682547774364856328727149400362224839981743938000017239901593373345911505793734239543943955057560952332899679229337265108163863368334241868519795453854048460350969941279901126474319780461245491870151717825802284766320152286400059176176494181610293178915288195440859274071991011043234932700163620357722102332553879790691862183808928114464012192408010808009039964490362486915795434783145571794183111643781648623064469120029453132917214866025687864709353932179830049951698932761411126944155345798268620871618998234835448981086451649266391859033550642866291990595542165879022790429585794371278750583858810168990668537078311136761633777820346203347696401968037788846036621968829124489003017875156175953945742240663988865697862086513209373014399806492483662829285783461667689659720304102950453579242829350586839633977787793773382494039919024577528095157284853649053806069964278525919353347915207687909735535145431749740606953327542448382883574801102390689834707615156920942078860772194754234566258636056689426120888197348682578806905211710944690871463419475975416426140448467576519224626894417211121955679275520716612408995349882899391137549798098156445386911920176588962336239946645345255594872713982470604023082246924769976741063904162800381693803256969819465657182914555658937981338299664720693131742919841420895782075355791204688755655087604089436777477098748352354475485427853958072220111618849265729494247082368548417027338800839628299908673784837139884786223437976101184058334311941900206399631282964999517270429974007317367571702532879720661825901547238062256346340411637163976130536494584534014066390669892805348218055114286751970824333251584225599644820853551699738956685902736237210341680458118060134027576820953521658549176746717758412327101368530605764813128503465959912048868855666742912563895687715872787925494394215326983479627538931900928515776949974564308799627028087362655540876508449884635479962203593990273008032013725321579620635166711549058439125877162564167690010496276309714311138632287853652705649400727775789990452358119303282596086513562386652018346075989730297060092902025031053353185644227413775822821081535387407602901943754762775928288380602611070576534405732537498868763863111028554082799631840157899588640640499897746851569430043182903738162386800041858506257484482838486098542534317913580789813356567818145257516934943731044655815331606499596646482802647959873771913871777542153481902763866944094934577446426702268462788816919317626618229105246541774501737287449840332204521113451779405515846986545327316579791756606567976029200779710674975000963148746725275241570061482183880450596460034606876758016829059634682059215689614161191785148810184454260582553817931771706453175758660391394041042725692166545337291937869608907733704654465155914250703282999147603047051156744422808596481413525312563286494594854184117057601692676489720584724904958995789542253996335929198745168957494852004479023319444478648420203833943587055944269135081842673463361983778902166173865093482241447384208288750380907077256980500951667314063546615750633067255946169981058124622983442324211075189595145566966283856503684509179860924999442481056987394846218572149733026213956741794018339543855770874424765653265134559045047142948301960556830646027550325827157849154473893752203610186958185853782478756817642693172564073103940639572340043064343303033652855747846975651105716358689413507958846971874879167270911411720130422292489522902160797986361658308782748742283291857235903434034669950146225426650187696669697336926183046949629291469720843659591162127320439710566551028681667144122770680487806077237081802156729466971971501673770453299648558686687208353535081126044089323290568380042213682460848774777931704287259548781486571179923219618840065937723112462162397772084866123295562046611411638971287196033665388077678384363539682475621301236435162753185780096726672513213004772039939665243154299107104954542234759715544917876729881173035868779624260042290734262353090385253413059089302648186099142427043127363366469632384815169799175833429033823163076974735315705452524553130410541151943085923760498796133422567738577532082272892950781786248003077493948538870703713168213085798419988041840433202572170100738276263040753422094556533512441480776746760863221535829845424006521696068704216722279094003171419572485419763420566829306335377175220030891572752188632743702777871958728282527432129066879105258342725732512508782286047970146266094308266014582397613474408456844001856519868808546672433394674590145160773049274673328636656408350078913911856425008241954322433605760545462217794507267263344951835115001278917329431993348348682981215373524049240551947080034348997735197121126561900982965008948706081008246261762718265545471719622159144503959984331051395592307112840409329668304240542761483115233623434603873885602547146469431539452205308484087686456897999419256112060413216326247156350746744932594590677513280788995013361639096166488809802670782757822208227821221452520037487003335902611737359724653274080246054441621580328591420489026250971198534175094150957563349842976685592664798195106088965339671267549917321420732949287757454167926175743580536562679154622923986386688066431631465758036494800791290170682910676437556988649468362497862346005685781933157312439258789591321336415008809633304149955289520581958421729009152612912138412459218559393953170137976859107664243054233963145150816761623352099571096088818194059249360686194867290869262594237035200262019019602278082129789640915094817741845716229642650128907945328846896267202695784750891669616093452559683843653110908266395268778495920224263190284131551987240825892099636992279299396234757177659657041735828054509046393909888752008953376242117826334733809860094716644585263875644579298241027529333556397429907762980697449231419191097127176402148179818395844460130443528470098860934105265625196354730667594118268894614587691056137462393340602196614165621916783467909301533063324587866372243655530133702396363700074025038075755118533848602968269254451437620946350135486114274040386994530121353286581849626363507451976066157890111719391350483912600339797658606915806107058221457440747071165909829350102486563109906988203958854570673809664538096190106736788745515262515714293624957910386212098119486060993423242584049536320063331072008614629979691834059399140940394462845909105950522048857250733165668081688807432910888003480215409511936878258913195851816047543527792742634826947360231346965668520235860615176651956158216137227972325890117590602111198449774028610169792626932069818387805479051563402927195963418621111764794661280164309952810122280074716536244405675003069886033389177373370684165771683417258328737910880166146919836114224153556040243701502628886656282854877168981306866973788224165745239905296746750387797338111784387571607819317609996181817730879249496506150750074801537202228926936033273668845570692058711875074915421267869206334544936728184119271940622175505771664165856919445484586367846420941215500508840241780077113007614697854591354514352265346242062828063361968779508241869383382052413789612991334538494752664717548709103342025338486661005077717737661792491047664649767102766317735613807723358594642353286025439568875314394272484439356729299405269197444441647063265901112790536312980621847950865698312791385059562501197472066307871147161699698287010746129963327536833076993022588791192641867797624861336133164870068358736611327637814025543992270942475713248099710675324485252664801492141865262485145801746343139239574180198202980865916773152706786468602682335639211545876673731521122619092946107573263328227303980957266143697044727843927035496231892174413483150517195371327714667104253400336334749013380758123562557011848762321518018198006162021433589676176848783835048936081179371398286035669781591233882974040664898069591273183684598680550707074477393126860614892962029863500228645175150651851659154520703148966384786858892018786531810780014095912331277392494483908608369845125181721512631057024452421553135393113473065441466196929778398891152850226186516270388534247414960017083355738354923630842637204164722770517790585841241830364076950124776404928020804306577879400823900409253456287937090476223812231062944379607413938783909536816600434206283150502408665477974900574618443829292479365922544814823316761056026276964666959993707574743185172611598650703023134853890075986656114791549531194001269338711888801069480799132282134844320650935105770231011159645927419364274492412757663020642347495047538778806426953076931520023834086962221690149889717872896754873032529760094516967639155044349383492157066057441041791072118873492724330558056000750828299782614120266845324432556931126666658454216872056619790635433756976556600651415274913075439449040301812512982826304740058910785849673633188195978455794324002504940044336232207497260405860627066235198578639081414983768101054877682906206253168197328624121834941231512078350806916119267548445226156354471618411793790585264260482724537229227592205801233715878552199982330132302230560871369657371101475059549818446078687220672873589850075735565886416098953251191524423571035342744698016493868083087997872502403685261328986379233406453858701710397557265058446735491604731296780381370117926135335733731239717312680655543731436049817367046391289694242338832088405243270880353426967672878024605317246166940101384852644284690733417347832068079192660240859353691111275169659700512973239621414299681765075435262547256189523864573142909305305492868584649008348219397915722086883904850449850310624892141432876147720238961967849392929472287784803101436028189639153586673579723901330190314191593298326917867611871276305691486660377257437132845407956747363434758077921102638928431702209763715974404706117146103223329857464322095054153624161998526997625205939395508145712359965284566834525922532968555855523158369363042176140325626596659449461361883314305081129545227777129780319863800090365962310404329946505339603167659359427793278810917528636568308633726050545826629840366120594231018799985887481769391139792251059234369298347988654508471362400984087727437864828892281260543465223969990673395956280431471240552547437424618086975918246928403768239621304844945463430224731790043041202475034339274451102903379175218076773850747459522673999397404589990877940256455525250264316743410273413995524586109712125583211629506518830580063763597092424893994683097221871825061933789285257625291783836222993879700773021949391453993289908412397200296972985800124805514345088407333224130489579937918422860226600177763148024724620106485572601118627083956487057147863512676555651566228158442698563756854809086078243193012429472448785892571984266885947553667365492340994596045316599205333602799899782168508290326963356091152049286662999109801372480794437660503318511891015087691905976557846140398342788495553947527298066541311476088203323165906724851324671602755297572076709023577339812478741490121664503642789688673692867941072640343448968855470088944616513873922813242177544178831820545961776606303381133102848628446924708688092399242657781359017844928675666286902464825584280799402918295471323645637845186788261273203782675878398310122478416288602036515781339700395399817496763175992466414258603330812644123520344597591673163246761561524698089197250285765131910873675214877715504392357660865547557493162105229746298975000485436513190223824398406253592074566544568397482957862008224713305740941006505557392850044388082448526882573687487685033595130513166336891135194468042866027725615084046585658661032605382679853125356095416582786845166537347844363453999622719540618036746212292373725998367763517086399848848787433247992267397305179044495483462654516314721016036596334095904571226194366215356559660836869198847602713881064132300509502375010250763656810977083328866162816122117406031866967679918682620144347992273715143606594912520193258436179852215462312129055835531376287427250588392457255760709455373182640886165405066282787869292826964412576027141361249549631060562404751377865600438667558557951925249330685630993539887491667506179882636878356504963447537818088577364983347214151221809590951613521610234649491631102156719067035024413712715811980740473083529755154759747191520526538839738125248417725596051718963619678263038526316380953913919070498716962644504580859277314898671401856756745277821823298821017288938242335758729881348159267446380505715297122408328310481470696132255259659786506101985711258387533508148254168143923021822623658002410854290443441486544458043296309771640678900474557068874302106557682326748858948925260897291259817226898670135317547223440360988675129355304545289426360583298409237208792751667714932166777882763052574756165949953004334912652198163982027952762306390669542103644963074975262050697822828651248809779621812326687053985211899655761245548468254994526868256276200605319631867591048418345429133213072112353604526252701150347176501274735142112628173734166957229489462785735097560584999560046718882831133467793699545382234009698560947378305218214418283288202418832709437381224210002702911085874740069461013674465037211735186545730723651870333708977239446682879256474370147883208740886607454139092307967037443713878621720386120343862545103501685657395491735690220877577216888232703034020810954264098692296767133925506101488865020148787239629686513555446089885391699583287470092924978439037238347872019436200425244483879323642114136511076951465824935725160130039503376688510844220892855908472657838601762569261554289988708468875006380693709740914674189726935280348158072333479418859571047897040822084484295318632029712117431644330197878637989453341076384541060048987516376256984457600183663976987463767869928215252642689445025647881012317951068085832391805613487675017938219037435939446543170757050588469752380548934118519174672818445178439217386238523366169422963706243017335401726343203059244975373080219882033577149028169181584668096538552922958952215618727574211711698943056734158145943179355573784288829276565788341888594539168734063130282185667085046716564760713014331110341571350917363326855656039470659006558760464011804148410435618060514907216106388520800335730363127277861351732292739008816704240020729357263608210954743842482492672683688392976763720485848313714377954185882964406932319843496453343635543831669132705047612265526924278172445673915200130220993655557646076996557276670165391802859132975986822055693015366298518553369619021324772762798827340668485694819520138517580853928175417452440570444768122493707841770680054122938800947648665955579871570859486788828121931192540334773236239472315772663858468651359476309881950200186745228332940903069181558591236697844840136823461343824612840846955959968786489940430680646186072247798959321378503548259392916428291644539949045000892796394586983668275936508004580035596794707891072412334838689619784270057075058609378516491439184355497416754112846755202944578149167791034443258029182880039397372438529100590557737392119089105757412291073764504576892171835477647635422190290053984423387511389394467022850960574448084421457204219679444433915677160305989497501265601683988813666985564272958049578838357285173356377334861932300484358211898961845658579776395790309850053413324019587635569416662524441331852303467026580548447611164385940263439645714188796350965733523136453487407384628707864307303412019486502644645801775837669920867622079602802528341783996932653104767167318194447826794781397312140493614912491797584458524919964107188438339611546240826153516921851286888691109466594790394515843418042816581522166977485266787763067996069956791968791810246650519090187980986089785953155640229458701613894950396814172139210853980809365427606375856850184555927525178434017161655795743820149262850864687841615934239439162699700537069023703996271091048807209679923336502664265724593020799331996423398024601707447424728363220829500909237473217812833107341142200277750580307820603218611851727658775493486754506412083119134755436275669217385495942083110073604917317316874845229772046695877159678155170185091389173943609955799657387370940297946099960851079926068396020094738646854313871657510400369947461771082117307571936822186050529148654737575821729614074484607605046737656249195268337679230675908591733040171695369082648724227515056042691241306015094974210329905510198132074677448065626529033665764092235597268312549089263359923143782941717380097776006324269655259509861121459351062137000328054589197780789186846314579297753516838481085237104522436042181770101567661856374227494427858810141865897486113201069965713543893973631519298851131940243346301233779444696675320036871279257061844514703134777749748683215459101765230856296744074167443582613654454952745104944257703999203447895465084811666805137387317494533941239079822126459865079266480861774983586708756763578750188342207084577000040850186868481801987383115886341357925847170514199976160449464571198376205194207918546050475008432820927454625680185940655407547535120725480049020094230770994665501801465097278675113194357657756593683463753092946534348717917361650767576596956249343778137658487132582113804092579478741839820911688344304887740601961207510462810148911306394159261478865064136818485370388486617363934709864285372563681447917465011455774928647465354149964350436365773844973250889081410140522621691726715907066597081866711227090691691824640880787328615483356891881330165339492837133309054671087198886360966865295922368035611210868326574942337571705573037207231367186795201612859726283640618505847615851541069960059644553142386440164025840061346444756266952778320547608992982851670002577328356115087686967033065698621273288869214535116667896154601843598133313428955164509330925738454050512084620173896357680443955013934186949659142415877472928902621716967524439465395385501619327649876420984567028438133091258769197065610951121024866231974777053661525172183110448005310320835616267761172725699136834854478526973985278521705055853586403500127250916552097717998477709813367430226914894965909386636779564685482901421866828452484707776965631453408841754006260647380937180836356103010771813861138280527938730103184042113875477702870843542687001861761371529382762169285487059663931828498449044309315558099969116618065463586966589828151769716269713086684599463894954040539017088890820379852999609103609176055361901796405946691237161033955875047010597013839486661566072947138715716558274333183520309941132970317123902712239204881275901963018216148416675965351484548034686009100900162040708747712187374205226734057370784745927679192340477989468702231897313988957266089925387277403174137109209888299055799392204082340132736122831242632609570730476129736475423882889380045039339867092070361760187246524092121979693092065998629357456014011400117818598383369123222523488199133495491643138993886458232148794919474706634140847989553976271493428524228770713448887285031100730252223799622645801783493310229672151948285428603294111483923612187409268223776412724874085499178398691505024172588303313191072691205094544383436929614930066772028678514376984833162305464111898614084243154258461212825081323260251078952568615805305226109235553131936793629744456936850322576709415048649670616442226015766358918815250897676324968080596146445329205331104688800545653220470491453259707983676388445687113308230854713693583927888596361143381502760761961900219030149949829351651614084760774379775953467769686881705640148874041947008167844674200871817394715114558673360214437697033212903829372847206876162334542577990136368210771939431665569319156390232239261720316610626298587759275365368503702321087445653864091702770961286916213540000677488094949799991230171651939823861766565400873191279679375318496750932864502073222691749705699961825782255277468390041905072517639960273135823734609548730374907834478431964047498710609735928818922734820106888892488188969432824716654693220881054784860752315719536085972243364407781758968070536033948861106526198065939534018887880267071047874867908248381413237225201182998681788111733895488591358281574634185094264485029019793483454641469417437733470497059874063422558870215540066715672387773532466665399125418059011161411209518378038136838524427553727551575409674370624158826765862940813147775846916836030181921218545541432707684382801551380536996612114482846183868376286388630250829748721700514715619445772420345043476827654652398081528193897676811830392373400958581966939773922376083706392681771432216887564493695258514679916190564890555604351888535520532971613066356098011535788326465420323472111525668282618846362230141276246790208579198281700377446864402444464050726605962526183546810019281235844210711649859661023579128152521824089735544408420560887568697779721510067405761738541217369273134348502486903605306298207489001602905729072937913971941221112244248297671716664268628480799517306749147394336812125691925206229302407085978820144947448962718842454219145368972685759295037081745510420410369478273750883573062666734854614338625922886491645685169472493731461340005434244454926263964115072944880152268387754973158864939718649556382802065191127882576223298467012744726314909926543947018410602815878392304239220679914309358498505081701864919577082590819926689630032083018990192809225344078781236586425683754836145010110416565907603975993167252878000745026866832411625541509168672228610811505694744419284968927177855597964804332813488657448674406406367053465040641888455524718970035519478094436320651955627017002949344017227422589674431485182769192112367931263639737806088426450169507341903918376268595003236705196821235700281051339873168511417639982978503768647915490523787183435379599391546422406562761214052880417238487211337012411590615608557285832412671390602927694554326910469289418293642601496160394778211395860845429480430431696992693007790074950638591324976590779322397738776849963764224685379001172530338551405046057043301736601009694336342142753069222340941573441113203854675591105559479364709766348492951657435407651205345269246883843404552234681711156806648994203651181502369021310479184268750254599723004078992076276141661551447477036786984173235440785524368878823773564489725219050004459741698989287786861534531310536572066017587243479195615264422403627147942133427856816754493426318821123875738090246778340695360002504469762883906519680308978770250755888849751670739212115452625443818735429367577856452555021086387544843885333438054776544333895049740176091356240360990225075874981446193463457287409530977617154425761666753748057686363106119963656840604410513027873176215897608199878110178309796038114566513112349566978418469104639331475685233911299561778870002998280935635569862867091507529764051685168652109830301336817523172608440370163862505301899060982718274713136317544895940158305093913571766664952371505136111489316508416906801012152167890810432984785599542116243639275472224809192787525695011624144367482518870126510213294088911016455626239448229728418947318375644155029369203624392318826680234493348598732547855607892722068784776870595386278892321939048717141493817024541887065527776484835467473211236222907801696765696428802080472551153963742941165297666348345606124326999380568709564805550246643294891982265792568448250055291449036780137121233922692972377700538309842198385992778130296140949028047304529041558281346520196755684054230903975678503244403561722396005849305494724596524318681698774511994217978376530537363329945570596835414822751690298003742134672130614262793261658424925702274188279026860001826511360760129789210182819764362020981071267716694492400009802297321750852498852292758011814778254893168773212951038927874394351619385069556790498200301256048803872695531833310390226551715339207093132484711537963469755768181729598177554325879365656350239260046779217690705480419682106376623107163359547737123186135987382234063765834874891281232111297532130631253477273630317317534637608052971570135068421955919104645542030095495965894512983555738276111719575996196309136323414703222008654495551018672250626522570964991659273181004383318855292864249262385445692099301179703838550069275727337005718494325834671185235531643023283307391651630639152381015743874477490756069173400902073005845404898819939938361672778493420635201581217322075678882681766781098865259434220461318347245774327058698321003301113079212342064733794739202923607766557700636951718002763927168867838246985339758538915123438597093628793550667980213725869349646384735597095140551265101858672747290098586300619805242454109586656615532550812391823241045412088078408456683840619388409240219354457228199268909576137398124794020887638185665957383044877325997906890578314483572709691979498491053992372009337389580759888883182155241861554436214507196257258337243567515922114606354655956738904777163771247915651729099730040702362425889114302063762837237769184866044580212522082536116420857618916147785832507155204386086883271191477669313832914481905457840804083114271834318792164403794774943586064149824265692548165492169077527498220024151322678219321216762339991783989004521826512006413288981187086472047002985969101444712264235758416750633721668371958621544162455813203496348335445729483218899666439585015133578181332631541842181841382937362595083187160185943578549327485048965148655726543522876171594604519384537687361156146752040541173208443145678408318931980326456725975837976002888610734056900671328516777028032209295186298040370294203282418233210716550157084092585279330369774678686261872556427016436117150691021527505116968949071619304755782947192058889787241102862464335585089347162187227555663491723430908436963408850656939653302035886676288736658358464103382859572912592088382442998678882442967148525187263195517486372443186632146847264658367601933399913498124048575784056680304269566472977143779213580507481297863413949211668382253979319708567314031857648009803458564998232563524147999439459534659879702469445608517141728827134714244630261634207694814175088099659923783712551243676914609403399359599225347974170486709930780544458639021147839515001426727086988541703193556623654839295717915207852534691898091850213844139514289296572454309791386180706689628258663068469949248983045088001995916052100462537321153200362752506618539786015896720994734892065072708819885431983758621373244725370333501576413195860126511394733331460092600161595129710160204504477956839388878672335011977772532277663951073588561782041870043185917492083592089660239355230821187346659368815544929420779364081158672083471585874184306023919650301754790910117045591820923765806745538478240428879175928692997766829874425653475466858534372704253732419184884199959635138701422707125680484523327109437500157937996386124869009164907078390815244428301551135511082866574456995336605819983662421698005067074049363265927484715049490577248923947282686370503676853214418214870877970606693209492696140667912346692937490713120844304208207618402024653239712123776767963395356199866945155756395174193604266737897613218863671745549452444868519014435748289798828792136583620956317123576039214213994262114837557833749875342412118757993919437004003736605733417711601901278505812595846356699843658547794609646942659447822147013454619598242969881817658911432643951223129767414782102925536874213076327520815032144490966805375501465600815387719593560343523510541432168604680210213902888877407915003903985573986438071118530322757412365311127586702619132029743136385115916715389272558171968142301616392516841668272511579125489474460657128690795623801033525026109989500588522435163446932193798474909973522367251230689570602383732611024352851457398185054653417562176320543836347011970874205490526042813869521871563645004626318326597783958180981317200529219685114513419647606692251666987617487870849704436979503796992416459659391265808947873646636224438183797735513868818121203001946512817595741439051072426556011672554021546437459618987903013086205296668433672569052961990528404687390928162776779162584789659513646846590967573044440595776832102261030075216333875528108014985535812336601078662442008516043194961227774972763417749420226775441625291992066688472740805716481315378613811090254352570444629688007476090710534153736436090951100925564501388891413886206202985511005113120440072227989704837898233560116534923732735698700244622592203442168576171920179973720229422090507229475358842577521549618677396978343283356820671300144460934014556775265336041616688039551924841506849489373236437090607491530361495373167458060528140873661011444802382281676806038446084047891974446037761945058538958795589250546418696317581628466666146581636867120071942061911515753581872071517993306515373678132018399771655472279258862739128692557112768663996081375987078763542388647692468407911463696647759320010805072069806928474732702750621818400337527486634929516678417580211710811208455571556529184862337331944536557048389647117761606092650802009218082864390320899063273587559069470083987953297549556485834664967918062555264089077204687122065775319374663702868452715703715160890586128194762310738100500275453665341937908191686971077797390821866761172183383294617258990724630434164873816952793974988269895412032315978233602489887713577969005527346777080634293492351115528657533340744496131016687885509908693059681060035282973454194425130674602161032955585102232094636023917367944362652276254533084386040229366339433336794212907648772426749175494404956058287707585096025481222274754584077375145531415969990643475491257755365877219876225436590366917801705678868687025634499687801393118655948438299629374729312416614060428924878820486940964671669770180332169893150223338433052119874488099816085611373098205060857225496565564279570486504753389095232979264943453021302364261496178250240744325664813363253302936695763381832381061101520816749733066003791420451533149869956810261338257905152011768743052505177895066531363173768594021453189545574156374452178870137218254466906156453342745680130142453210543481033503351949132118842845067442718031008524727772514426023463616201126084605924601094171820003388451428489739286139987822473075913090571550657409822044850726043104493718328927232386849151396786688185448157515625978481286656937075199814774528512292446781480724212835488317012283235221539213691689980429117940189748903824527541817288057727657355860232112344312090959537455068549689044830580113190976775402851772340677441274303553799484075495773816561932647310072523219871215124096562142058870718196825405277366938788790302315242591853335895122481376239756571131939035871037907817496068699360844628626011336156312659336683312667242326147358490288139259067199940723955620179994291870155165051442094330573629473856754017875614576460808895701932601465844176336787311251630446908763915368107926658693550707692341887510217251227281077331155998920501547603233576402069547347895148562168615075033639927489722262835166298354940447041752159452673749656904986643234598689596999957875772035373406609516004976668167281255140680317707073131109016537378576166672973780984165045459714398173934061622576433293792461230959842326377436068605847323903709266028016797912965705483915345136524179475478922789369855679767610407704546855741981380714910719530768263567971171005823656026407842471449023457670518837052946581474154231904531896174062376184739137778938545000538019553554802259080215805106182057007819481311613074243244956520779638860255097773090476699159851468034852195109773914967073510159450881395724415271589097781093421649857812628453405424091100685613487838384350016588892938628420442747683061828255099873468560415298583441333100674769955340780973756721871239977497566283603762896465620754164483773972809621240337884546219630297445282809499668558433927626063127566420040608746047558767590679558804371977268796597998445953147320991919029022491772850719868180139098430995228323518891699814780127351654097124753471570515648975765863047233027674376904847971175905665928506566296203510331625566454393838137147987725068519854739974516817280520105752103390253762039038365071582321007466481018799224139700837424345072270211926460184904847897142145518818467554336923873912997059358949518865738055740839272107823667482416881482469464168538873466334333380460285608166730309116402356180347273120580138604735887497818331064218414989778905573659459203244986786756837546808415321280738734550261033921216294837521755995790968139404822536570221774031156805865629632302382908664264173285487181765015359439589745158053218678468022466260392679199265585592994025678249022894537823111066536201364428159425871149693001108135951999501907860931055316987765589514828327455861423783278785664640724717353407818592437330246046554549467786983022165207487136198938942429076663689638962960485217169653161625597616139953178539569607294714277693759571385973763185207759168204156482578768418024763794051076157055827111927135753566863225549046041356826025992178589942731978678701417065045774862592889626568128019517420659486384735219550289191838095088740982457313464203668400710067268812030459116133646554852938675326906669319427439208821487305212050372206904894225862281385739087568079591500938979816176613389611677968440020874963646246823039966622654558854904721177003376912234550479142127964167875785700164307084012809681053552025195270477177805294893681976827023579209958009726223279152768774885825767353319328966316137073006018566819229686407331562729654650369304241733288136399661891546341027299864895473890220609254671190265400145414639478801865690057275003655002359703571627869124948080758515633660117195897856763256363458745094418365009712964343830809202504162027660509014511333718177014828161534595360314830955772909635364128575569642680370766501818926430721654921502711018767111810679567947409758199688976461751327497593581677417247552175939790778191896304225123987044870646098129891627395244094088081605198525430968915939132164998177895053294780594138936630123271284306163516128514710492930482450902895694369770574453166070923586354239542680607271523243539086594055557123855894342332168708925992975202730714434217970891312079622898106088644165517153188614771360115894231827173388071988582728827154394870647073987943004191850077499046083164454553205177233421953786342391582759622514111772780572992554648884631235666452360516255091389268713601892574604399566230861220403271800493740393546438827194822884790151639455366588267450817900815591092656294390207833039380796862363703307063637799770182644699354691250153096952264991799980098290056816601132275290936399168984680923597367671748642659171989950112134156757977752352659977832720040933098960967234335636249188925994718961871647336555628762010257238864240727343043306817085346527340160974332623980075486996474088162678685717803494438589117652769519131437632482262197882577898952043470992247814489715849203305235043238629915435600313923106682394971623029632895214199318347528719033322149766096487438651341618656957903668120130521292716552296940460227008055965636025764982696845969510997108705102484167455159347696630396857273045998299488292001064175626811009590534411977620198778580563313328321191157470166452225643033282135121168288947591617035559955716734524349338430271609059738434053542205968169394806667233253930472550344134204763659143885071691314106670461008611627347168539941401418152997529517240027890574505660398598477043642574455848925939111885319075167083388660077482690724690611390832372065110103675500133580745676609927564098794908161372843304581106283755081932188197080714295680447004186799092680034518559258273980133280466454106364709289815263960923385556293241483888466501273957939899108292843203962670461533406103396229466980047382082088198378270249746184646741576435268277507649016133575249114213714053873834679308444634301081614125862310974347491370011008332566191694213096671729103403900384898994793653534935972242865288488296177499514620967408023733699996028939090417054402874042742355301482627021653621583974083359661163968549160222888154836104624036378027443708560459825746465069171941104393144486728510659707774397408599328368952740553584466510664054318081409778853082025134267089626997419308708889010040401192423446554161629604368330017474670560801873669052315670632754437918211020999095956948003279421725258651347546845924183373021762026953850658441737055260809419084473811200637776228493671206950957215373630050281915107211863677536171113008890531499454275977941695458370944027889330854530696038609666882997682550744629692061616428231358358481827719739149232970858397011018060620718562738988682702325895493082165570712686463744351465813580087322647535007228496999469115729403782628404685194462115816217252751637142567360201756677548460387983299584776792191344124887562718756614758490166385299483168923585823007425813967032498696028394072149595080115096463123033307553708000402280808797594082142682631125064562532464917985879472639259034578917707868299757842220825849971553652721427007335043394861083481808245122014538395122205397757872726012144847162557378647590166697326559869670054203615291379670351490337436541537705811573899585295541636910114548984427018505820898932796639849794691234783308392423748837283439022905912607491122023946108967865194398678941011743091092593092950377920246688868496019045170503322707318350251988555849772569453781970369261967096107441822387849962746415539564670038128090767733894798132269928597160471554551780514621845904907010768846184368723079260824716814402530956458605657292213122562189005032695547646702112446904055516047197591784699754022819600151950660078844346801026890196719492105053169969670492068105454817776943168193882737932249570386538056065519601433094311617207837377919936070576233037166535226003097217954283638303932837239446079853509268600475020838131495820704426098060131835161441020402626291884334953751347226968323938269913748296131665490012021943107614806045946056299670132455996053755283120339887560105850734571695035343824647150905944248034850505783109186860276138320665194478007105600705055091952029342059112936567398812526259338839364227076906088322341704986612118535419400435945264660952505741695914124398650082142488267329659039497920823252085407358830569205724614011093279140150992834740922556372504858739712878370448399821991947459914233368691378365144985737715456267854560868890219289594446170895527900698409462387064184025522571598425228927120572301761771547475457338599798541971968420536111721420335224947594691633041769417606022595267589488834426815061580737991943828134589284240506511099417033964997237906053659324683171480354056652066692502293702839772713753352515189990749482999384280264536495583344418711822195321343510086566612925696025119311445841466061230059804114219886843881546982650651780756831542272802245453933521312438743639453699882108600310326340002630720629219010367860385590033349025867888041838305520028898229582445537872028123947214064482184963565270591000462436082100965753978412201715382377074006494567267994312711432998653408791750053350501621377253943844741417931200738258692485186575612966424270748457525188997131347944577908973818891632932912989608241201887794663978566414165323429655145181413404129977684200438132786243226625439449484718044666626918428115607241870984990388766698345583090859588039396855103083923898859977157476794716896404439005882274646969870307853271345149754172040326023089491898355894384783333697999262499733710108953953619800174311112799715897575323840673962975593888259409938747534481025009845172798485505351163443174814882785683740727479888379736145274957965595568658092640355274435542259967948320105400050947384859043203491909674734878693619932233382647197449116750413216531404328405196138373711598771609470856777911921477444069600229440842609760829208862901366660684023429318405669835528258000170867670438143953495059733716196342475269532447628759497077769031854790894437304860895752269007412988533894399386102521351187911877236233661279059703328080063681200942375166893601498121190450216451225604302870718546579975091665401692933304742010424435083756330959774886929266509324811298119193323340340156441219414693293663433254936893449419009084047927307929991047899544480577272018101853512524749185944692047011172670110144418142702245680351218675771562372214245217165425086181437410167778660314580839839051506996665414343442806332566669068196107180238858848704074691173889452424477397667655135327859523965533260122744468841508082964233360719316329714486129656980204150046604924477517532393587567512309433403909038419205237642079613044502493165947654364679349302075066152500714452226449853059501383879151656665971820243867598801342235247389409927168358577437006360267908808952870246532166596013921907808949778468725427799168672425762208760458227717195638253027999564690713743254776462861408690552481421275144799170519075708177728022406550143941609483245288224840366813768877806598338504528283315207654039669381921820966822571498018878074449268516450254545553589531309009307608198511684432199232787190771082028146360590197119540728468493695221355525803914200819581568549689913096319451451075624212126779634673239156105247926156068816507197690901950492717020914452974536260392857765018956894450102490199849648235682094991143392764667091213151309702203096389026524118126284354957556221882968704562040433484824830648667051022699680085440783641321913503151618969852705046587582126198146972318939155527347489958756988307333068017551980809463596551753732532514236086738329409197317767899376593298381946650298522763792804380692190370888036083468238292086029099027534839357445331676549233438223315396645205033017475710191709919419262117947506100789482391787672359281155776236289656084150752213736919528783850837922499846525228871380548454560895543763398670116068598614845400921328296239671324493811408403854736941163935574654654595195128298881626002694168939922162920694262342280798702046725704112027679500818828886733625782578360142906593033548296685160811879187250190163896984618479231581421493096308123249260531594541073550320874664356450223218574903656556017399621211292683685764832808925560123065629377995444536558283584367154741490150429629042875370859814177596844352012360087244787544165943902676240076416967696509194876265935365845930244956733742618724797924350426064746059177231816766647880505697355398592233251956625094763695645072229269305724041278671204980216315881317526078260109375588818439043154017861295062592562080004030030973025652314523689090420875373468821342182354156951547469013542039316870840402726962138674428882173026426870686708150155312006980301773135402689784390051974789128411191000419531531019633559144744016749229564868058377941794750821199100729243289187651192716690247294758395350150981550764027714410842135902181777756071639393343182325615661084170553368826743362402590934876346746444280373683319516889458739273027997814240389365518249825840551717626392077692712196459582665178317925618932583753018040924177653000105577981684842789115036741278038081825790604691015773626986268353916905597100868956207895015188352889269708058728390523697030621029344595774667778434213537742424177540056324081857296124999185569473772473209110409177403488974866036675957287607500127202104888108023993955938293231950207926923246186901116663827917571253239292760813240867608790515324248216705676550571004731719198039398877190569972239839980010895497401368879785290677532821878934470856652756024305923495988541150764525586458459052055269238564842143276466392128374739575617760283803291001035248808488415518050965179863685213418749023290574539304635565574822763109466238447094385037703000806909632354264047678487573074570473277088811344344049505745264194285297537375845452528857666849029274296938830205232597696099707656598132768386110895391257766205963607834074317156483853207642554717545248337859428767568039117505244522906978524415717307235591737589124865677692853995956217260522582689247329520155618956158459162557590740959956561540620677816823005279768364649031779397376558982628368338046340366725741786793532961834949351494919033614234572082108661038229458938141130500406807723903791933574045112744660931023257814255934253903116603102240673324250844855825222501913089168203792830218151055039282732336639473764052479089650105438815034493525097608896402343550242816986261906298702458178043545510909972222666934859579721357598158000616423683592842256408781488440904063606034112498589195833097430777801396773375168361989341902513241082967960417047724294372633203078212682604838242199454910071685958370868747719964162737787567874258764702088566641185210558472008579355082996596772019748764378350096204680631459007166858071856434911819322028673942943769794046711421390374322168588130495734445805219729785652141062783366860232901522345008870906794392402702089076476258342562036965468271483577550477341959188319328206567429641908107541373300646559814350655503121168107981516784061230007932895947379826728361845858433069300669596884874849544057846672377531776835030703601363035448229056118144285434884092713555636529965171116036165857620289571777910983564096325379687572453103998273458796747807022161830559607226868405716639275938220128597034484137437183448126139691595101885068269450399972200697743853353953590632748017081472976799996995709729413225254899618367354911111379228158624764518461929495818100845492895492652581711482586513382229288594273471722185346216019522405561300995874180343465806998456871909516132337636536568460417394575241971141260350958369274698824064578458789028591254534521044982288393842854097237964306027670320755142029525395037207286210429063588139244814987733806503251383016202963689388314620281996650948015364534051651989454953016654930223948160824674304546853564072310701668109673060332894700036498670524419983022737059322341819400772832858128345125483275200963030004128351760820872465619403493921135290029145537515887318375813446450213032260342236691467516114131851825738318579556705107900417483742096327113082010878771722597233406934293041512673745510955906113923598890396939018045518910860770999363352415992838729755253723441835819146723677186389719289448690888869037787539446352263787783821024309800882603025853064582374524998296536914255670197523265147171985220545412392032490852796500739368742971598192969528307265471733082820005749915180854104049571868102655641159195793337541167596175682326328709363684622834361857299884267491646168646482031683057444793396671549318616966866860077524795934368890723510691264270536651710353702401526704883274702359024814462980337238671147666509281437345817618424955693093959643130324631557435689250672079728815063775513109764236159387013998849837084191502040498686403252945053361580303260387880531098323399033312676342898987111290931618768264033752666890615977196807519794085297813573206387382257031445114012512432376129906533113917104463894916808009232361909763470729683990425818482068497604948874298466280971956731013562997206915758438081212309988647424289840821058417534252890854709343344276051905979956375653361297166364833268375062594812786008463329531846373907503333510975804999468343942035431732706106195441826221513573341932023981717113083732147325147608266678377601906865451953782604171752959932642606289544132848740491834920340082521795750770261134982623258458334536658415250098504777170309210760410247983298729204098183472216836335476706151389659485339818159844832722721324863709926046299307181899079475724182776837827517106812573786248397419710824175057124210802740526193410767355076415942567316530889957902972977904962527708865270513824401675794924275399145917429920048621747146093028914095180140111189889295369572917613049428135030041458329903268093544444317953541920825481951139298460226206755087671324939997696960093708682161849271488445542412435875945571788141554231112318384959801648640768605146122155604994104770383573351011753073845800446953306655640060066863103239865676100094749611425663902672263105910348881794343319525317137540801436818635017201444758881894300535034850619833173315264998584467784435383125354833503802845436788100595751608761257776021016329381781567669555233137868722759360534275379006284719047580100795049478343631574486339203295633745007684673622967801700991648949721769981756079093783688344619791563951337855719683167877841968067367196214616768509741422603855922146806900128259774638825216045103648851505731375046038306782828327453413342096772770894392255879479177536327017853357452539725542157560081423411469262242534654220805661595453522915151110315294698382535608249470002821083918805753967828003796343364468759732843143387636980025763358256707852295625293993246300600473334709910986314007307292427775393822042114019407308672551998583445579053501322381770929489432875184220668717295843837717768281722724880960500445074771550556697707418051341936018628165632384706876398913998707258289903935780888903670749867643911695130604473088990023517340400681128784527011006306469136925516432195991726332213863781885496403154635465508222175678429576629557642333724115218800222887043833729965514105001901899275838863897310212748144752818296688216731335510569948118026463809633117111899083698255853902374084321489532036550609838728012485460626518348904475421368030812128696426968893057392995710093650473453612842217294659993371066976021315274377630223289745650244639260831516795262269411498026546099671512994093161273825207185680531354226037376561988416120628321760319025803189643590065527772058993850134324805033508661596049372325282433957066610466959637738309172026998928714887017129697764852034178684059005389314301479911106578137788535550236674346794023734587394773636955100439905481799263327434570605748392031257383302359109468387635722688031963964055033155749870946056539602315202368688736686606204763785675335883918453807714577553747134451700762739095379664927926610133606019084358395911050416207819015812880048665099857187808998018740996434885709598254270186697085286034059372460986363465647634705293916803265272021112160070983334145683641253999950229969528886796741775551706324969107493323578063311526958972082050182692298989656314489322130941178903901801205284048439847970795884965875258535478505727897570534476213414286497341430023826282062731748760853180779537421643917364675887924633903964797097833575563283777048405620684049404497553475292338205103384308287058796625834410137890308672258778252158696193263605201584127635194512479860434566673734641372681040493708662254397251325450770338203038013407937459874813971299592705927787387223344101380338150924394302598586824283432655262611626820820496483686310251249871212358558714762355092527320154849974028536816919870270168768857058505119361562996214697555931229193349756229661893370087121601643887748325214190288828092939030245950366897630470716677482136489948513744246839286419714319724817288165403423049356414993882896589526914245510690604268090669622011377984944191897657940085895401323929018988037765099432465528388981302996038109244523614809722492593467461785003867102105658720115007045357275504662838340961480964643970441073100880559972839271323414839798528013524342700780251885708737728226458193616009129077052183699712269592603893335589926417687619146829672365658758285385888681564180780943526149836388228867307131459098806873517930100065885177740560629941106299528230086925950276936902187241573532584813168949089762913975970339174980899349123063344562061548024504638040582333931387630241389258683080447030759401370320612491803390208691261651939718840064411549832602146310817617903251088128148343235625561436861728644501508830007219267018703704172737072954551247167040420215165822798673706488881348060003412450207860151153860542586316551399699240674090161042694232166850131475850969962360415564697084416574901223190694196161997924012330935668000776636114821729788983626258316649064268681967554893021217296149756263768263505195646905149007091819364044031144937047601771095817635203805166818332995102451758227195480768878071639998894222162576583469257029519756740812917259281734334084971315728325139068214722803784203809793940355959325605885082665219659442701685530506621270246653893178778436727941960295151364256101820269814280243880249293639590601926539950437668303755820778264417539121955571405244305654040219228337243195020308647522564330936171839494525127249573911228773540390639279338540350526876554867429815615374157360007039571619346247275263108471610354011963468629118682614889660717130549463867169762633522421827452729420693691849570549259872107918962128576205188465399605740186121842417402644681104221298880211783347968612407908676913457794523829327354720702288024890066442552990020947302128626266977569145432692285121193624939437270068081480820213975644759881201817800051994254284625084989151924339378614104455350274158520147286928657474058373493699626579596657003347684714557834109337271579411036071282577809237392571832607914496804066951527555383863103243788639157693868553312330599924679274852356753979260277854664684149308821491841134575956502433282602050173366345697877393845911522633582630007097908283556743032411635757278056449031502282452965773928087189496670722820993286548339927516879415009789198079066080224963883313733541378720902614202000729788583256295484246748496285133930058901713120265444211626067255915165204618744498218857233278605705383394501457433562893417403755015839690515133939740889170356902269670824143597787867321095934713556649511590893908832525026252953782805486204246401907035303417472361075159916528503774049340889948222992979387617435606822253050094512527238930266099057300488877965760055322059148929745069220787961998680580610732201101468586346523329763440464062219485180258127235545345179760733352440920337000797549812305757054962074980069251555176592244520172656458231759982387091513780949645640260228191328239870413369962460141714424825783092833948001896074568796131311011264241765829360526120247376927312602506666895238702763809821680330542893163125736403696447207441142233457768881314785179318271818376527650628669325588041609262566749409558877638762736999605762328453186201273461966204343875960685728438993015096863844468950621327093991171349969369955750994990837754679000277235813228856972663393033335250044661114567436850190812405583380533844779806373483631630449966666545042841789752124599706350560336389181168696282669058939336962370811368505933370331158536892109424093815023952569566563674470991309229695884407934019266285060167451613322317023490891625937880800979199336617976612158849974848487401316154387775891238299375938124923775858537907465817628794920357646867833275240898397416422436456030500989758606478387319794762814737585178313571363933373668525630739196915285973480702148094341730815814209230583375941499837752137142846844635454622907175468068380328929751111796209734591405273574539730460459681449712915384908907396159207962852369221720203912670426847600343569794812437854539225022651594819832924596243751198549940090229799053287116587733033453273861949708066229646017690334110710902637702830038477083290375210881893344519339504192615815512622177990779030871163690285678397020636957619850221087521819198923212540568634111452624692215583379781169992682270626272438525875793439341843571937486386160268923238161204279278562111677596302897977463731884106253854475568328394046482907509483890837825245162742336519967345097080913336141750407295319790216160423449159834256722371302150041567813529368245094857090670010320406254394243732528999088942642340918913624965771715483530690912430804332128714254993523379764167648160639368297474750878900186132024449208666145987735227495709793146546386639546480548907756853973958468373987885577726482353405992496900096742347128592357845031992008146157558852523837055862373485600812844906766216040317801831438977803554808602144345079587911667245752992210670564832076344930935726398225139587621796684513262223296846911320841582133005903136449119400497910295470345363407539604657858770576066860751158658159762401356442643761339264766103438829912263388970911357303807526850461785343423318237416523905085349759565376889899136105981978941762996573160761570611382542532565279450388801320089091326089049120364628547958813319472138347002973511203955120939693318338835420742070017364804722594785531148476036525185753076298136418015398079638520572128894763941049676488888691254534689422616045564603169526362167723424547491652474013905827020976028047869240788498181545123431079117685957816828013964532212604009058396083757498901884415436523835897038935034062518124318272880769046326737708706509450944981033525671806829777306061351513190326132402856477432584117542049241952633968899464655321831889903989026798213791026479606411810722362086543485217839762194428811227486404353682432007696102390332047047135967349365629707877053933418216736377113830703737407391414526121457940749549871844430094188836302796176210307494424285168113012380076775530150519431552581835439214915214406068687201704363422703436611812101690719549530000526441564501247373815102315065103514643939227698676197963515913802169669036095994562186217014027360401684994379699797499131083088394944602501727357435465822812182412624400384335760427591398756792771510662317742762561981369696336324353389032889187826601181994105119828941448446118554793659450627582111322569764667882816848700343567152434623478971548484943595039494597773341379377443107650586151062829176204652763568245690796487025081218911427171419118959776153876582270971546617624041345684863693381574020392881189820088467714098832174302562893195028916254724440224130417877172587570322823019359024146736298638286384372049190046821650980612198022183893720402831580068566961540151875954614646711485512744143212967336455413947522259778808380089161394645865770144590502552154635223793093302282314425547360832714741602242391285283732835455025999491683924185331541129518952024346265997763833887705198946827082460346515991310024549191658243568892006481166454692688107970615988963257778793632080699936168758963176124327862471349309555404741664441393891100579494717720265615528550038022881490675837909424481562474137776357646713220606833454068970742421345006923965659828612377742820948947155657671404568173372673806161461900986184936412436762205787467417020206306406440183206142703283899387934537943399048241705485632895904523318539121717801760496260759650599580807661931575244457540483142024630926307531017917571420727821468427058982041866473330100277864720383138480617872642472110786066297913400712122971435158939524126293495490997449542484951500681025440352044225917969857697365699728727221628462231602444592693220901834836250132882984728200290967290884105994459152742116486405746430265747424488235576955001654877579442166206659245997042010764458237347145570666418628131418836187869238691720577075918525505004463092662920066407195186651302408944550203338554589336213638595497538798422982445080638674722949359833521965951791928441454893093964156079852662605707616507004981809204285987848890327421881016295794789978366099398434679926407765748215235845349457833581555015422850743360214998883046720063442303997698764018072368906179077976180224738810710854143448942828407415777227432637584939500597192073542194900678881989728980271517525652733050766868439774419686409230658530494218580142937902270054232077064562079365518324840849606428851458910377342185929986468648992653685645994510380903118187238563071533019448674506918421862665709599055108432070147465735054043399659885309508299757082518631791173195061128889836913732937363734972517243820376166441377054908391633851368472275998143531232438620910023602843063159957717180289832453470976637944603427142997788267336572261859643518162037783057870206746743904914323869154172223138000383538861336771087473480544643264875648829311643623304766845437701675664731482653230839950333031076351200692974086502791959986242234801428320555900924983659470325631114375522650442603838997591302794970807682943318097172794801658202787973914291056642487147611378145032802070444044292458323754386921400665616409863077076267026495707953713321744981766827442912095535033951765098292123935419293158515293618175902453853508505036143713653476017317814692780516127138046780976536086380285628538885697179704719993759908735223034039125041038704700832406610693127808036489996024073019340502509503776669806380479499965163286206427838554307208099344420260739206846152175186495671478247903363307051473581864984802823084615138033677690741916522872881649148311764664914721602296724373283297058806481807567523216055672677083341787868718225122883036013850092145682424766258554228667695280702378488235242381091278502199996090662796843214511304916128007316202017221670331284291442485221928627314097582388728551092076289205037902362187952052083117863595818605381422626856030892616324397016284861973620583909469136311734737443316013138078690810550674964962659923027301479695412969572506172772001936881235019421586827059237567664742162058855810624008591545188040150801768009749922116452381840482580997482727921433207743651238184403540927106860715572215823256441414230522559840862641903503650552085163962505212067937857481274725662829106164202645232856694298186000850457777629916716809418743860233160707849694156300845413656619260428104655818317950040877102576870720575189654149180816642801109119675797546361975634562336694867655029297149694904399989871663990679266200489397015293353862270935498515347391131658529884634513272589719958743141198660365666666014132174927114884051473996734386770114863455480547195863709030297225992035401232287716758749040536030976624399989473748112564839534318994941958408494749614209938010080774543698480369262511852817828745933567979294527018335695932362753782579877584238963976947212079484522961846240639435459438828694117792352091098292584497505107152892691929363311128080092158013149054504049044258448867333776444760459773694977302346510846388796630733761335335270178890105090191814930790993927841742564585331465355702330501069635064062830522856444977489064789009584505263921336225340167703256578456310327323415301436931218305994126766880213617004648937302169401939335606470384057127272843702148929227302544616015002261825089536261414015265645344386700303982236749686635753562572136907132182495141202188023089498665331137357990635829544223595383213092728241153561180865272825374006789994958297106326573030780552886097099493339664596950829146731758615345025105580481183934366388094060598008116386809040532782032060230779501900174526226141893236026539118147601698358140048672488585429492601179977978113038754797801721572255450126587801170133647831294161413061007872397905177295244456107521457680829894141704838418863747652519349793416578486688380428013865283898833447624096383255284987362616806360568301875620789238604167713682376964454509198225086315627108738982473233616081243849964200384619013598101079781776601494632632832583500491053409631116612200848567489642503348894263697232004906534540610120383667486701855772046692431602553683175359128521443109800355306793426004780206502978727207242374588684421832634205977756505897064022119194654026588238238051726918497289348318190862885781133770181829137746438942666119214046597755377881357830857249100227097206272806591192091652035049277414715742877883482491311366155189943008674156705645762831118423589930670736363589897257335589818059414315090879476686092166162168094090304059260107895478426834078646971197111578744686196597670235839943014602511102185165462169843008756867524381359767925419136158892470020776769495044803590478378874372208797571990540784354941505255032236172222370199772903465247623225929404730005364491666614533503129943515720284466644819365091963454026445178984629457716596623185484265037079531735349097821402016414091909338574631027163616607980133102798477982395654427151011770810667540423882023776489320440214466973463659187814895621857797852001255879895253155484843466244553936074489089228521715238957965106222743506304424766341430640874363165696168503842877841162623471828610886239386462814984705766468704185115747056487536593544970834425249156749786545399547249385396909540873229139236957675964201406604763012067598424295433703675097156050608404603784028921746670997945764733595557917404850026329331331525057253007899464353597652204070035233862589702371564988009480541631189810429831820685550444846871857670847068116551993044736453023047530346847350398284955478288625890937270649491648476156021421049408156413233598531065012265105107924173203020316812172232836360623242369140482602608364060415979847009879421316064850776551766847595017801911536629069358140254491875905972341792837025414088076501143886593906851442144104835382543366771184599557749358915510951291044473627567965665683526202676122254236386806918292934638893512700842001141754425539461965863647760514644150630609120647590864182013565555729219505105815579225021302253350026046326618872192375188252842199015619646322889435286157554048052264742377029000190776464543159364914277787459110889461302888910742927012212504699609495943084141489188342095382872999250793591022920137324862786582458813385034831666498363106510938151653861650529308760480543771998621515631195478484307827379503802583588623241504891410975142487057438025699341226020219196512449979559202673192674724889124756080411976525062452995932628185443149996750878984291033295698621219157525530084597843432105332562135196539324841653672813901278625819060078944268491130842567934126560103868331414224513610793650839997620759338832205579836646218428023358006857259026280220961691737289741391875150301693762233653526974761588622805696281133167782433404085614762894579375139821578810582270621532937111733586756828172917504019109763471951544931516706057277124382079826908648585854789996819653354490272724040693100744283207495814308167437271854347831309776268365458125098596970228137677544773178663217337558557782101685675518934464431318721892851370019197764893005319976182577715842035954152656664947991417283510906960920200078370596710153357542461841772132440623013413376188862821046103631549941664054268740074552579406428300287148219008114197865561210015301117483206308651429466755440268516810197122772538342958561905179414467517668631929523009479716010464865585697615938659653501814685231409589722069832481821195381852032839741771532840805810724581689795406704823136716733098798666087639408553165083763390616080790822880279096812128765376397811875944712062832615313061402513858425117719820522431372856758140098831760936195841463149478200935627335043229087697184154878698739185500479819328818784389877886608826001206325189291594010535545586204376202134888780012732015188189847602644551792287259148091712180704670900126228548930790505866604143837157283228788987622834277764291603738048919014978049101164563475512069329295690142961204559187839592502647620795376445733310682332752706151989927401709355261573327671338215116034520592381982057148555517670487667723282484032880860790581025175365478983508162138597699402972366641160497172362755365017098810648912623728725321995998387868450486606237789786169167815679943799453560387123223242877422605147042417524777481247842226454512665579353147469284630989423368085613905251087644550598080477886370849696111802606646082377444058532505439587085380793514012910046413842588372794023529247428446432466169223346527019176254956875971393026998091470360569061070894667786087418243853199109297155999478359613919399401939248293119676209927607817106344171139651961439885270319910463735061838795705350705453368571066115396387178084908873262941464081993360040850975557490555915466396648607854728944524187352293373731622705600699751662634682938119680661277756340086278163458929431512140698153218919175733225677020763399095367345009433226678821011358802623839857536049418355093633334100030452215813120681118389245966948101487553525011170500415889911248046886298304082516082288812229621698456380916032980459895728769809297957333190308693385974116366744376142468716104341570754055258261358129888794228418316183199293363131296865944675440091294568285632955120941445710132216844433408385256346725201010600120607978001635810568407548222011715120253437947901999361414647428697484199044205327575483272484219130823097561371617436745869777089372335360478416502146560549944078665339709709875629497065712393080995842491818240063045074699227516644077045030843482329296457864945642299402033323324909271326785845372213237838936960732747600530598318744919458415390713538176630910136761103852363079306621019881238219106210072656075572957354742144052627789974372428287095210093522570695789023283232682059132026224763839773642874114549973102765486415536059795649668867959752792356294336885066619388220029013233320552057799192838019290556626497008885851087659038322478217388643717723307359502778786577466476143351084771397897170606673661620080525504457133305474672999042341636062698496878108515405253881025589721203377027385579314296620553934953167542928526294923277591754297968501129429114918110232394501629831383042203391571452301611609605703027868714405794055338747095082296954121974761760494624846090756968872881191334450479102463929894294332086048283521697177162152393785482685671734957489745361799059364593982495941774399892434001636149113750309029678667981850609974783047448414581190406510362440340688808830663682528514635649155224567340824315120097291219341334082342400427178105288592587130712446325070025485954375668919512586054469113758357307456777570533546164736489769664649371331325483714315572257088858585584662366172466585544924979175988699643206679268644355732860774069747221064440719264573280714346629222805025539771318780657233793377653153510489808531208646241914740222338454590322784530537104443118564208250414434529831906121896954205414896578219004620613956975612699454469427526157581052682120092734538897444546807622503992438372129603389574569841874878908072412413242181365956078078774614672648374106375709171445702411630842417867103686364998082943255391414738484057987902145562185811869878972071734708259968317293657657405115160977985175777936478597215628514699559592140553314891683870259086094514986152263373870250905458964165627543323710185786782489800726323396265519839502473405344786009159222246355319751882617107953252981733224947102121365831204001075067266131539941776969731817193904065652524966990866880742691531999030314601529041689664339510608080316466017979975882053714927569231739392013248911703787227415629068448118203157452793628512090491299244499192747211189562171591195818688699829824849564133140381114811348158598357012807786638366071431705982868994364266374448467212722457441530440532430981285592641787488229945022961997458025220123894584599414942399130474026695902017363824897833898513715307196282024506784890363740559734148887548351299526847669105501571481133136845835275907037071860789481996303239666277827931935192860371500601430763274019759465430802700461485995268666173760771064639499765903262780006015408692520327927724296811422410351706042996854451079334998544747297652295846961074979423697047184939205650277097519823742878331220156432954945552315624775952536513785593458256426296930288178029250503985188870448391039171463548842572240124070081575583250751168359425922178825524845982905864127400984972299818839826523561239196828023562616303610653817405258039354360978106734557340396262305304753833370507751424972064874851727641645809489221009617705024182008574561233862975390468437227515244034758570091642766461124058496495477249233617669009879181717068890700231524656566899627256954517910834195772493053775525080063580428923238627833594422827767184655952333000930789735912368730586065514125278083171326023481802375038905211003364322766069616827176097720139031323947019992627084935330278651041556405593540745631493737145018673158037577019141203811511449952453571374968897410278415444605222579021732694667113724117577357040765870769661340088770561346484168848584449283218853649178985093522776969263162484675287207454835696947857724560339995521980425294289582355583451081826981354451414171179356707655442965616565560523939462134644242589868535278576516619561644662545250820570311900833642673901540728919562445697313343488283123034336673024470382114350275483199014966516766444153389546166360657030976691979879360188114363565397989956045542647088630001159775587841801531854668824669739401259348392979810928368752280171852536242754268899649111413616797233659770114024956232651698921491422723417471260305405477326292863764612828017421796564261515259677167536787656465192437039420177079268110977307594249518343778068399240046099899066820987822259602814717381570681631405812327345908885404482719582727414095794494371714600389420432912463147905860508350581900453299941887009910138919514857391008617278444556211934272810983624013014539960593663171322248931214460843318507407849527634035737723698690637837555573775378457719540261170506080303416340572700327747684567601690775352385551455071374343373638720771690245274231188816332008229267479180826096861674697487927754323590866243720425421445538576630363079233537408509392397245132502716739710014348600509554594217057298623135649092242947880975086031012190386134007693347524536921822582143052834768211631797010769613231374123787997367370253168223151232738959468088579853339093366029847619781933690170853933652319645008646213924281110590872483425376803119549131331202804340413046441232511851942544802528363595413619155092185022843989066733211772476531951003478792165158588095562277159576430290765117417322492449778875618414886749737862072527291694133089241930766646887653138801523065600475738275023219572474676864643248662377797402038388336090101123440318863283118036640252129828697030216257736596968612072848215041825790484598272662859377598245670418653362556838301108456266419034199128960740338341602209680647356637769356302793948630017854404364752438325740741998833034572084930020220192580975161312495746676713192666120947506032042106837796328087568428633857369069242882485386180605558077278443728038574157796807878642965877834937647329084926822334765007113393166507522947461969443895693168885109680774545385613777255114356479894544277164573930826475447920981223672430065934069367238088812897251989750165564575328299290242313811464065332617995030134515913194532088471780451661217728738752661606844669972283148353589180497085088900117903464550113063900483843638715960712656977512909409616980156159203246405152464504748002434329846915729427804790379059156379575575406698637041980387793459242284493959676575322224341733982119615165865177504201339520916489414662261663473355537616262397749376277473691850129182543573202507747483563283707249840334798018324435975955690540873507337476792022739652229462903337340565132708624923609021103913627844940175201762042904195191188779300839554692453816464634348939712099741104007138576557663142478853801166779357141220546496053848996419814796048034956563240563711320022822249026939431594878822532945955976695211576850717015206479684594964478885286925595288798458110809113400035447013187264538245552345174173590699207312220625059423092685486354098655182706060902654510819976379616526029196948168710750380615500731274157268562932283381242168558885090501898081786478137903479154306183248057571279391839891419445593203448918593514437110434826186978760716328479748854726966809268222194671722898073498143624503451379112182784547286607749458409390357460122384145254575488973971805509764729438669791401087737563308362965970032400004934274083879729048451815279820171517481027940681654818345842170921051746511342908878729064384195327444582648870422624697110861547954793000613506365269409611868103819136455344707085844996521747193977035904237770756501231752408695634569143959329169019493225713557313336618782404151873332112725296057590242805345915144236456434820366823682272359717479048297843214595763518157884836269395870744865431105474276485461378879028839157184306609961275716092744388062129531658987544799438815206748666856853347356660045047768718104997186541738236040864818224738679020429459981610533507911348081866161887347989387111000013351367583670430765727984085989262080271253938520500988823943434643020478667952788357164980399795282213496336287163813459458721843688993460942820694363769014302993839134989814794195380769590918544660256993040782332547261043660902481390399577403349149464144995816151633310913257343997119464619705627255978046713804636302227188664667752462096740352456359208191098251591250594577671124941269450638269921562116937594021205195267023828365269112046398750327694093351237594191685976252730569270506443074671524651579693048497775407468043498417045059843671636084849761312160107191708763704854562353002503645155701492026073716120946923371322776885410081519484213024129847756940062363924670010428444994902305688235347991440791112554747721082219011036283560092308622404906854561432620815187926412716980816448576777560515250691634890379699499673996620779397240834832049083493029337236565313278774639697503986602102221492175369163224245814560713420688052377384814773298973744083030689847290496002847593690693339524592081316046748964422513518660956995920465470337322474142229397869290398165244822698990508259092967882713364596750327016676978273709988972673385727165670150243860432074960295834664284161494681620131342943145855380363231903081019111255730371045326181124089954361700206976221674813758382674085066006773952078351227449014632844800714293364385302366187886036096115846222382762286101604884823331977180345239677745549947542958006594983665965882974155553618675903040442490111784803624513163378945196544035991475453502772279773316340615789271119283014730966930444077569610436046666614975950664203598632191819965816001428112896826886193666824782150099951414003525166584408243112236751054766872974806613540675893165232928013922149912837830507502526460499198375116181036530963882260662597929971933383504584838757386134934975621988221790632559998033265282248278759400933166613966422640197596412522904467377498630103047400720899030812170246814292597362924568462498275142681580977603971191884711877908150771550012330800192442427057169443593140312708274490481606203168481983682938109722538710934019065707083144093278050664935159804992777713927961021802988536994736422608768254050514784052089311166688185300014213766562756825106879136453303469778661404287823130504542017511586400919255517362624308615118432312361754125692685023812597378693092600684186095348359248079246417340658377167288535620564609617513311300872694156027339548474316691917885512364280405141995599292479631605353581188293445436878513399054220769908062851194298305118750705359943307139079898413174305019415413059755890251766204099332424896873410999035496167351681125584871319262558408379309223894310569300360523789583842238228883242334674035236135116369122944012180043131023759820626195396180798225016458029959312438835849200406772596391113488913463830953644529650189839527162219285597200530683848273432427076677851184056170134960285795980047716627327214286621026835889734001967420730477848523329236581808617158790754969605339100439757759025269430602710787763195190034994003356521682941519550417273994982628267601734915574698712797975890745291554899938839709436359843961171284276352456501391876118675157728689430675550332649488101322772925748230184302240469257914771001206084119881669314891447695140986662052181081410092417537313879210966548843448710739419661656056102020334365774278865539666889997550953177566311392081859720771485773680960148325230443216824029280144409136735288936695115256774213778083664120179446128520205056959501492933312635783849468995227243854460751479071754510003280461817715536052965585028985648699087840268422847509007572396868044239739515305635062896617253832376731730445061969513889777307889822020441785530782034979404117649820807896361444517208412813382321440944875410696065623797737641951666802719460325861564260490668705699551819988043992516421658323257306319040535768960472184035715167858281982678990696323033420133568976970221739682820223201466773338358304840779854379480186107851459014163827197615147244145237185763593727818718180761049646715792441407385263363420239565408877033438683717278301794191466915795939286614550562827619621448189249552991845227048653257562544402223466756393397197595079101570789905522535035685698636051888009609409765711214585301041812162035811072009054487848714181814782738495261944928004824958995243640376284303499055744652097484527566637307593503761978540306138403166249480359114285171726992978735753125221912540783522305121304752093653832882387803537957393187190758149823325612747214102454491208623740662914909270196736060464459934123534167327399689552204162948460820821798644609072818595410004486354947023217010675818720214247414917226049152974570176344228366809877089657325074189714307865878965270785515718133796882024921117839653484707945259548412768893681884087369406330704250359704556150226075291336891575207588005841370054713048075246137954094551697215952021864680995632491442801254559484431782074082758341912718950234120933463082927977277111001531079573301109484987720814668095579750946846700828599189185015207198264774326024702229967429428353300692224172414393527494885640862067963275037684864792775438704864907821785092907791029775103843209390389624557746754746337443321185923782577285394799637829050271894682552411882959752462386622151940508983354402326587976973088758346240133231361703700825750827353474962001468704890794609336455786066490241197160762092905626592038832740044835277236704908093296791637957779030488785020845808555569611824740903786198692771758548408909313464037615092241530837754808338473118308074273092467380090997072107136278856279259790213745101912115703193061059256427875290055814047509131574225459907832607524519793110708661551533790174240321999782036481382787515163306290340909160158209740791913641830611917591855936902833494468235562420429202967499540432823702488297868326489073566719639148175954789031696461314785270869975266079091268400477520888434381344162612394420578517851238469741483040493816401270829891490365750255790972577227242462382645177909637282407519214126604976816047494194618016906667715739799458158871847844272263907221692118647705897035370235648046346358658274494925500692276876505838504273875415847598916965986690301531028666907587157209709599600393012230493315730224892280575193714334927408299565537004846964015184403934982503259340509438005343328580045608809650027955840364007234606619083808546199556035618714913722408453551588482537998771619492734088972292700481460859683861167452523417432171865566129797674664920723129102638492476728444076047939342368213599665721250822432746484482328088774646305617453853938581159641262801438808619348126044448410285532732460219741309507153414981937161224675396922543071978196311778939107724039935448935228642805144501072913240611108233584136381486068859264862544517393197903432513390248146460330068921342028707567011158473274111551744159213189737195659809708463605671953687679161652172291044821021851232302603306225191425111860859907130575560227216529624051756688869739263279258949659338811203205613636334966121793975364274306044835133959593032821986737549970196658572631524850961535307481300516907832839481905893703311578476940566323474861295297506816075057020864183120858664394911304697944950074079164421814762925899541581146350765410437024923972545975139830562583919303927733351445051086646172769980225599070695633394398506230007403014483806443271582076734212137771241291583990559157085969349313743648528605873525343097625189365024223705313373716147535793699043676649704285309648913070705045914537391827340057501970435191845509428930227802020662006960978284101368128540946630794459416907342726939688788931375349213103545049991445303988242666300885449112136981419036628281925015939492935420688658774960976194100930120181299832672234956133630671529699774200666920940063990286098296471934751288157588137040964353478978351516427196280475627668977099431371726347167224067620567583812441311600555780692907680528215888064787702831051964311774818291376833249904997985421133884698851093492932317693148556086316533673376957771880044135300351055999304166488941393806904205144667186109057312709939308211843855475361595771348498907200416802791852165827360802440326324961883112170641313977915674368985702713042517998941137993573835584392519611912702091663148170589004835061901127226116932943827322239244547391085297063519122399183132119851276800897677065104686911871103915668277512839044000056503008750855388205052811895349409857285882200251749224722797449138743225771840325259416507806177838662514284980995542558537398713816802418527684746666014279551211248686554953425539753113045722861844374343511341215267764036389466231431840116153314596404624203799388497941337129877084358994032874760084281248364647364110275817844554008810583760258088402359509985137502751395569052938393262030252763588551759732505979606047014400074990661728940569737013589144394898935574829227789256760095948017191758288232804309828386871809753651134315780137233338659918985004230908388792547147665851857066847398565765429548388347222019807524264646754671570735675280285764550931865254458266025672750156611514485314076103860451306150085528374551320802825584601513063899671441161569032366638695542919591803186019818062118350848242055646262946126918246256395769817747245242639150694352086287684866021726544705248905686975782127510542421189663780783384665572254218053915493024815003497615527950373385483236871104755419218273460925164777960183093392959081655440302055363090155935915276920801774312239616125323521134100147592841897809594591792861471867180116131438962201607467390490663956754172801310753242481383683848540822904396175643237658974966250510672303538980055181879658198977815006325653135998741297689165216309123949888093674068267295143338937141459519079238533669373009508289960102111491307753564964334025466848286132424407029134709692254857271458299536325702911965022283903318105336498748733719089055131301474857779656441616720204466724425773874563591269671975220182191402131300298313172841051957042612167371208449914963400907272299572295945525265591929793244669908056871453640950907238589185521246343699503459291427228033949235447561194422156769603861674938584960804107514746298829479923009267085025212492138744867744422274924295454472625526594734485449350020676289478032558830736657251861181113430211389006577822223887714266141729490036897151780766140116447838023286340170327534591133047737698228770815012277461627476072393129335660814993588150095090130719996965814461285340184596197791953085573772880979906023312672146161255705502072165131347589983071139068750727909035752565980092103847644491815984501299091425919952619818612086334981335601877776460217866374001967144883526899909250435183731956857334740201628309216363727707696329172972238372289030315748602527467932862896023944223586504017187039371115216271414361729897171777352977932016022711554402521368684814185812720544840710995435920050554882851442656058689735403628813595553078685044153322172734002138304457635359519577362010482359662840186590741694175290894873497468130857657938537592112248016041071574183085591941789239178421889740864413096058699123855560484305598928143177317852005332327042773011896690993936961803605997737697161209296548641263073959611534323317027460159363417943050655873938696805150649543389205629345624456184171151682944274461281964783075331280744728859422872228756499519239135755663165859582337111567594726105792655568421279995594271786007540546137016465947063415383652812268909308690775964276361005860480569360455740086660330090722531229292441032939486647866982220812027128924550567773655283208740316139216354433380240227448581894659885518326589341104253399653667387270757391223921952513766506633808753589048575187456248644527033366241972513230569003411042451902945345965402110524173461237953341645175209053510108949371705494876734055344275355159841690599816412826777654724661700775138009104594258308255153625249766757048158090825745773640255340821934989309051445738129962950843228771390112482858962411235394051783825453385680826226701346543812714443805856434290745922166869697683709546085141172375975738306667078434353983865581916183140705104665575007569516031225718519759404954978068428700297438198431318068221921636027664048951433865170483334276915116848826463593846712089019532110078646007885816226566767640303798992404785976978267316068194340694030161530860637039203142328281589729522311629329738226733490736112252794565007788745234328052793552179692365653638721156980272373858493918778646148948600735511836561867150839880869872902614607077674619718178083786373050806643982159110759205354123617447713161219421245996344668137824740755677322335930782237000101593497895262779322528939245571203029130796300689934602136353262384725375140455404062473248991677648273153555988856659702251634122288398073677302372558605456506252399705110005345180764860843561152857229935245549196112692039626457885439970433875708246019361598495112935177738269062426356243800609529079402721046786717233254955238760373581187283233994058720462171789169217847047839742549280630346210396266674808226184684326347359989481389346413441997073641937912649456761390938527774537318275819589727884485434554817694864236671321421629189536623064965335746596389840233961591853263813214499332886927426989930539979520237514819354226749728129372682512518354026010526110556544975188009114074717630710159270328181565374297564554224801206149322403039081558183219768199283621569659051534409701780757281647830756579116441313484982101038844492794927008167659636071010512170247370821148836369752115412306940651246188022358058796710869275136593314485764781509045096173827859245544705667299226342921766566377073724749945656957222855553543227637162384858981137329824629113493446105672628605422681887140253480179923699434580226661171547983204352117028235051497410816148563359633386056662509795899884017204539237304854230615754433993076980634882465078448340160043999641830023999713196047804601046948250053283726984236197197585432175034175268671792885224328082823050783526568644757775877459952151088256857185392661302248192522336223777040653108772622240503787993012833059678439721536820103616011363404064915381086462268657697379181482126289039387224574340124711859986554880705044081214282209731426557578361982882716611000385921794135563642026227781289126709864508365889571394599635664506163835505584861665321163704358261136009269317045542640507874551113746064998627412472135180971704121787350978837138255217983766156032043716339716742667340929479566095726539177015157171109812691036992608198541489760862182956621253612148928189823836209493848591113857014630300383799362461332736223189168413955422528393095736472691558280000360158242347345199725465106975605009165083534966360753885344691422252610312173572981390121020198940943791640310460471098767743040837022868911247229531854552035357224122840241049433041122169309611024727261491900272481975420030012712736722928412251369814298775020549534946968307436860429362257882728499880429057579306692870975646571540354189439051414301466756401197768938526387652833332991214445267867214157557998730455430114526078851985197141016307766443080043582866095664531374297275579178917565495405869800304391819340738404394467094991649980526368485349125729725904942808120059487882422830342647662782222121676901044612435965846501870775093176927029280333113778922049304852166724806675920947866610395526129980071071485851798937678521095429264686921564472604136081006797444008640243344047451826574710083371531222579338915865528107519434953200040238206596110051337598475793279879018312180452222463812710677246781414813092965671300844569680428030154487697505264272536015029796617544584067196383402784488554333164965052695435322664829464807595118497726923111195114081561556257749939076945857750683885005912923254423515017548385206699066828560390874608414568848044703123624463908939232156140071506000491021814703320462258865610421863428443512153422448102740482021427229095065611269073770901461482078267412259744166597197568821551496226991507632852762490317249778097057631938800705357036072973050892690071806147112631654567911276565055983033138254709927605013250193398741295730049559442112666288700724622816445259201950623039188032921541149003411608561374451888891247807991907055071335975164717043962170719945510842533042495272906161826312781523689614611237824661659437458238878093113421126306352915878195947891682197759184395093038126319764274685252069302127677064398969308926673185461712940048484506242540249248225002325416834902607194455315122041638711713865174702575822343929902269707874949313796278144520593765277071818200222071227945306743854539861377823036891467368125795726216625280247088980164649023572605489882211083322108764302452605758152782400177204103995110018551447720423233223449604138653334113177447462039853631975510786403175309439802597288145151595625517939725152198980573876962005527558919649830482448081573280961571784352886080025327394171482341172200704413570179991344726187828597176119050648464943164739451865522552401917145402237142357791157922198357065995519790966755126629929549434027098699882577038044137443311862254953693937652069981170465287613460904985635652087224681657206275165168487391328251412324031808995510683861315551450332288676820802650432083217548699078263956193176011320555558470781241212859723345287650890824720547065494537437004875724822802755183271414689223301290019760333217502826431962097496922835593912108283644501565989256618563261296268718024373415899420986719400109160851681417895550316324065550473547966252311582626224682245371156105416379269305034634753359282669271295989831228997355180148703665255850887873860964530820991441671450640549645976029433221005386859202284733331775367542132718402054724658440205663002823920089517302038504008245202999357496447886983361991679865275218699772818002692052207219629999547100418636532737394013535899300739729600063570479293275135061944468458256873286709353135579321407674985666058860654758031524813450791457490350049134145261377943104254292366193631035478647330481720817816485667717810794919447771807747237960453002944361098837517428328683988081510058624386576914576843162633530037742958828038438506044817170989251219411465663075956959027720650457680762361536537946823385198365477584405984842295194675227006280666965047412043201440222503688966994119926924576058031850943170901831566932846944014162712583562225893393903560798932306445367209772171617458713296494578953992704893120138569341951705839226414742772634874279576292656550730746331464038565237166542627162340173318764147995000624851777444282298233599297552566893031229175509016228411935871975620433166788094198760746601444048948580952888045862245535529480554875443067628969529976647904379957813028404639072076224749791908771646826555436475599738326491616041623110441817718100470896062276357642783389458946688813329615030189732313765356942878655311372294520230040504650709312549537520782384112617074884140900900530357451834242785791743032006543549825256193046810753048678086652621389194447418226814740267632141945115965444447600874496229373598014376152926677261773938626899741167069572214213261881829844358351076016785701732455654579464046852142273429553772297184973621901755737075020297038020256037329859236653266620938449956474992682240599543979826290650732148470060141444469826225688442470742323332984095866871114417905748458809731750758123896151384982721643940748856405212802481337318190225702823321881756833476475366098381492892340912228138419891002817778020769150624954982259956309733375134356315521778976979064884779799449782084471844024811037787313194932960112931499440762990412715612805413269393199073129756210360783448830622214784042378602950707311646639817345477880618628385708275060391772619532625150607973173833782311767036202737498224259771205279915861430406987075818563224292062091188001661359180120780137320254074603406238421418051376407940728353828541834473276174440862435264688051983612307355949793424357263680873812526424608077741470441101751647818306372442348219475985847157884394388034544664512860861028574749789566615068068332512064453650601798195786023013648571617444746096944912268651796244757443302625109170076967173487879137657252947183379361112558611117664317554493417497259973099183876013102359253479314907430363037010896510679589038903624935947862612430868176062543689725131906698709126313695904545362004559331125049216119668369622260698706351589619588753330482802928488637630322036857276962820038828064763573876680961437636976098999933698390898893663955299693169435909364396049204452630027521463118765619193483432960092147174626925545731938534953619797816251075281250763997004895881391543026990410428278449466941391151609984689679893848795761238681487389793050783276397016622492529922585304415243349120624857039243871732084044107472991507927244102017896159024762860529380431507087754160173719988082706542539091959152459544738692991220797013069068890272789592980615355582488261701186611251742391790052181197197099601754240208778018706232602292299254521221068084500022863295355453021421455451268019666122746816825976193340185810028593706317668592747227300312914757079454573559654308234048849511901796141449575156214911769747756186889611404202410607379306805210242223550117422642740585520201528713997247484669686466432619858546394234939971341453131724432199620366701829072583873010928249929656171451970579394448461214926723506626897020028364511833436745430666989460195519898297590426795223701598729843330627920800035794697165461201155871072900137144423557506480367979707705531773434769693044856598806892358765668593856812084741660758117203773542985308686721886757537683007526812177355638641716644520795287443477572811513667124635338532761434749343988598519310503132520974218995909747403989912409904456375606741292780877744477585913626607846805701842500112783825213206724186688135415560463729234958305867719606314850078465053179942405230703347811865070497119989912983734608809437123937458228731439304902070392067584285410025227571340834847263629947026145964726678241925730221997887294898560861989737838077574878554386926408282143960411574814044368528564807106364020406824179034560232494400568271783461833157397728494399353594674708916327438502884503160147567181675389350350576427995845163837839382194468353744613705827948196397196497242918327519323250479256293008600536465411322072410070250337142970194643845335263847085327020498472775148540761147734224591372105690577048967249988760636112018418603521592340033585510779207050315967121972583852441682544634699374048852344086933976021223944620526971921829050722252363091586769225266357571763211424016307770401190984176803023750656560134271981041246485984134439822180265005592882476635094330805065797343323304064142025143667790968179150678389009616304142223214841580316843062546140979966516409928347442134115396736108700971083449865437495456150226942872551087338430650857123108392945618975549421188199089061239752157778276426422274429070263509449631098073314194900236163920652216766817037601663255769110493371819446685405710569617941390739227591557739725320571370866542217959738759253270432714332196588402426398132361740706286050152487997959374936840404707843012644739098419750671734817077820280106947274779536399772635110502665589710792669236211736278094765627729229124550510783977049345911135130140075834286776559913565018894988674641803485005971563955545124198386013069773848112441370518448675712229894764019291101479399189546553486789668232971033359331361574146033826652581984198199648078200917585921970176978415598575596737659459769081058268828530273084694042001914618623743016539790036432224229883168334750321853851481694171116749106113200909321100388268503260010308510764566277058086403555882867938540005073683376875019219820289753139664338667769494680704476649251844984012632723612231054309735619403469720276993000549636941646955785633609633165733425182480687899032770228786480917225894884165575623840800398778983676390367586408503540567636377772830111035455478146902135615457031306935634874399765983566515337083804470136847899526272558402192007630546104502655679149652584480836724959182366235528465878934094631478260318700636665485777490119550750586108414985333278299886852780140974329834826843398001260131314299890318376137945144003906880436654512979740266058087978815051855008689737875037476241368023238761505754265081143546394921358878962044584996239423405001372927910815592764231050566729712150366879216491452705087479968998734952441315590960386326406049385642057586837719863455984881995501734785953150878832721564826975610343211825480383973940277690708612492128625417600278769445936205943552067082708495850762807873921054066224559514219872036001311398177409931745587439981684371326521236368078718909205633455292084635787695329504462813127871071445104960817983544820546329212062488342831106096986751495483362693719386589446756203981494189326829236139627069233370880902797786008152964538317454858736104166032111408523984360602201783019518900641585788661039660556157450657580566015483362251786240946783526886299335168220301608244189358238681082509585929240361040174228966498957888247340479036749935667873861812820592166643176075247235256650562878970199969583230228593955713052584499818273954311899516106709916828203755576034673767277695933242396538181766234833367212815662943842873605125933868820450288859211585310657645374355154990624437348394607114291811483517446511046249654933220064548019867416084920358560163612184541480965238387551550596945827260663510244944816644266394561819696091126978784422378996703892238648635863980972517230764569037333017599844761447981194914824580365577792063777226548200213995706871560833258916217667846882800221878666879709088904754420115662586783485190930535863845514111581967364449699093457937360612826192167199805893959613263085610669756544101782097551890420076721767215183899439335150085343336902051326309948873822577482848866166196175738228598028843269147616442864899074630385855376996527063293662000861371061863297084567874893309161418200803929764641001148054571893333843998776055139678579202749136022599823777193985968589760433049499951691462291369825012850310354725361926311289986175474966468671410022701980615340590500001421876155580396683406137384752464823075329778809345897269364745060155785450875186419714935723425951334423671183671860548586818026465988624243199732065604182464477020554885095739524436593636598843860067191449550882751768524687635176456460752886442874399339771961099623905055890666466693276723108314062909647664567532493492318667095547937103375036768655910377075807277365669828533704649550100824738652650872912869857946633108784279223922650905250688622208743501269624654189197143555909961962026332324840017473627181620518295562098742515191670986102715761556585007170729274833185002605238054998337132908070286523476308058701364080715037393703756214384545383784883216004538027652393649470279983380894755170986500593782001209519230864782531305766041213551982430434077168384860699686970415507117887705793210374349895478201432087526919701981514455572959028112603864959865139697017890554145657509513934821923073743700033507020484965087900392702066101831737761008027879117354468760551345774376115684215839537611359173980756170065571037248914479742871630604385694754506258148579900397183328373961641493693264640601613783459472157757487497130615508553532458227498857133464239247666115945880454805144005730852878995561206663108327743659647506310661835812025115017604386339490092996608938774308156664239615337539681229506030980358713976705539658974919291191006344840246780185248755370719141005626941898302887922553113492732727059835579567382568435844046916117393140124268271218048381717595804669513049114084231970239498508493640272409499595927222635615853198078398403410949195794154207901542542457275919134370644276811511962749131930248668085819198714265029170699263794567049245917420888375680188773475859347419391052771005727249891687023924374976733628772929610236523438568866480276752923124996222371493175116545873423285762020868485635346999813147591107789040496321515409232316239716409783471987688856294957838389627502787249251069497342451832893570937833292276760652454524778083087393117595367329594900004698029484551686353795276211228656118762718010564947863701357716798371236810832849237171350019175742419824891151620765565068801329295773579580787523659294251374627496968296525044825012056114548004918313302471759475378010109374448559840814953291545147531903377403560246793843223941914949626775010136632020490186703133809796547050048176208121475232218858636889764443049901420515049509457143438652059081983109036244959625725803771639449867808783682003137203963783077468042706215208126790996850387359905608623799310260248176235833139078943810207625036762826454003119536316474755214867308539128789365177734805980210012705452391237580479569035032183420344351178035841166565947193804701857084747882521620374071319017014659849733377274455102710047332052224042366665097743225375852828914718951472918829781881701296427412736642433773059634500103801509480409341442802015137547119607728483441338327308193019997425915794155237865318181587363649745756196013646926823653439543444947835529117446653146250131650652360996520085215384199237256233909012570543723258811608622530389041966156051830441526048145454131480483808147079686565997743044348951855765090826126373694911599776196239482159166663789314728539848707390942398066688394497511007893304729899234779192364968418206556533927875500143956322788500261839662320158629193197656247829735589504584506332152630914389155784480672951967968939378021752711297475820071771456381035911543588791434120610433793913143297141504898684908772920177590489066870941406725918961743086668304506816264912980419498744597017575810211134908346472888288824224630364154469610797873703498359429377968307460202325786727744617520885299255161093901435809000435808027303166581980521398346129016154707132558994590471996422565984048233866747999965150041416873415529863904064812601163813068351840688016560341579715406359078074186675370363392792024599242498875053060365672438812274562874853068171338621664978100546139267730956345119235789273022968352556005399849555277815371157060999019471502960676137871574451178646983281163726648587951765114788098196665928226756822976858791033079984917380179517096207119040286620249945774375466262480201207050494191674126485484222770954674830856927218378361341549983396469117083508729958750937222115688589997719021026728395659417235901369729981592896912251605388496523847476050359285927287340583086364938462375812692416268803507205134112863321691556471026238290405605030774363099497765681926396226045500586415630470536702326919363851040002821176683685299405382255458856613748591720864600760902731477172956780262320918814676651606792458685701873869989476290134376971928656293327926766695944233207039052442441439540783324909085487244607631439850497658244144771490828205007384190425205242721193081091683650167707429803863098034069840378592291127214422037443356959926632268983666676911486277872631442187875501984005770756834504055040960705954638157148169375055934544273356430819995963759372438488356522423671436572203688590703909612436644460456602017346224478368233350686612248440966904449063972302685430636667229587590801904481525346886813569201956901002181107061463138830978854310307673913887135626028123024669450397657544204992788669244210424918929399351076739539212565264391173035354697043092384440788299566348060571245959918645478137269436952927763152353420695838042321386564805103941392961027905941073259060024164542693662238972045421432900539078106331718498694087783192180478421559389588023206601551260564874780816762731412372462355525657407924460717366818185127058012961150014606570991929571170932140258907395810841459603004114921671393388292539525498433609428926788041565619183119440535725659866793645175360580710071761725190466687648492067613857803057229522190701786747931610722900018285739252044314111662586398928720490327829699907927927117199544442784664389299497296957671471330639849536745997303954377932721241388397367795746333578723171193375910257636519039845099025009364393084551958031194673503994028210653377868335319838453672238409756657438500565260667879966197968969910779365669422618663084892315902714508418205002711939046896358957704746620343231487235725915608668888407498793108437854554996520413870396103231074762281768551923999076742291843277407192563492968102205932508468451778308594839342231398993809484628040271248207122961249267570022352898118199911296778559949276627794039863135698541978460956850941236415904692806841734180499431374654840485185097111850251350626900901548432650215037019140824024356072830104741163592867221103560972423632461160512201446813204994516846503703895522421440069518679326507245205821532632409821154106775039804524462951038137677294428393480395299522075862880044213390332297187127930071212113470890486609747704881145573046109196098634837894554815811797668504663676156453711119526849129398646014980477596552864279630765253105495941981852478027539144879133509986627549796680367367647176081888156002989067280340111925013796917417467114760036790545507919351159057060423977668443440414351019136439992528915744740995868800816381012442465961200004404458318985358847157430393737685702998681933375534946712125251306381651274945091185627879156312228254340300268045258896609671787707140065679129189116442845829610857203999807452330446105373169744171061953960547745583683475683607927829125769613456961764561917736364631392419199566934174763547917431822786640465700771051336489871034364959618432920771504146796595856018949510480739537504190461562109506330055884598913812018240705764169791840039938010935395139457961741007078679905591281258606308814056436773501650830966776106778970212705179158113723819276155363718014774244939491530164947526469618090584443222453053447645845567089067262581244691448407607799568694991581235068367836004323698110072923114574236765240361088658449840789494276737056955931744736006823452002875646225679177060959845346532115964723174260396077336988865103766128292208552917081026456106773119712699509743619757342172722802059526865524904198406372580137921416592311306617052583571458619418378666371405580426317835731505978098485324978954687252307954831288473369500965146185713518947123713461142578268861103675182453712341238465518110468269779065486074016545183885731712951812734669332923434876329837342754443660885102818405307193522136448905585090301903795784666267915573847475624129978158196740898488598783357650633946667590197442739441604758145868564502051793805163687540715950657341996675830171401524908025465075641640705479162792412333483193244114301998366787265856206040788263684171745124434555840239121026265731410373240487633373761693972755194227974026698605895806518623253597942768215203955942411191834511810861037935353839133534996212438534856800747416241359411540102933886136487197335335962496232368095404763218877605197700610925272637896695071016256124202322621779690952580885553060163270581738029224764770390942023476630043967347834017768537757144246501397699222160625685237771768892756575860597996808750670043067064495798996484782262005965012556904544029816760323795948214634835623631022823298768725285435801928020099036083489307334029587669813485191945488291816651637152497578623009527352717555859192554196500673838067613737803116029397455406284383926040136509534059893964923096226833898034638293124370176421196863848914056542914331298523962189135616053043807156602856538394351307062364360132814702914125539450630049110351028656942068879536853887356149565356107557548032616813547907270633087085168824784390421038158411109657596641406256059006925970867558709304887547198025379930615409140562155958410414249675569106751817544007746028145869903897249159612226313356412610401885680703342490612366844804233459888300320437944223834767082666816927546623215356079262285509969553485207972649168786828983540823411238896562178177289638074442106726949839866420292085939532518927889149243695236928415692223665920803244193979534035393294540305672528048323790052412150548264784611828908069983925313459483869310486837834809485248954728211365781365458613737401150001367191657264204487494066768493498511592339661856845590598043226134512247084021809364061720215712082920693402162009525439200180794185323488657371339076459237741667593673523252294362263815577955879484516410142869584685348966945136524795129718822912537751899904187022174558034628736011339112843111773556537488538663003712463381193526423832022579715103017308922745054179895275198511871149685007021535811240095536790186787482835822010947726000103632268655786896905652037625555492077266290630012487254697759874804882255447342062902900251314941186063566464860809147502115066902407079863295768002713028479970820199907996118692044018641626633379739140384846002380902314090802512573181228893927162235368694678372367833414330256534473340928485167748640073310039514057200665795254300736778394152195601093590289880435643496501450326079441066550859380513609219423836164752247076247959439788718830450789147477122829831137212212414584310915387318811470827510985485010425739665097627399764405073773730179339782137176697484839802607438856938043471325772824323883813904271869558892077472383039598424203078444885985764184686846707440144216019209389892461446421203049910116014406769516218600982554676164187402983755667030031436552714652151488278476057739741987701824437013764764253962875727147349648041856880832580627380783611344565719779091896825690783246013351513483409385711679001657505705981726656847814471588614600687147583902062742525270695066168441437202261649498194470952064772105956867627317841692192856679999929664626905788841017028008538646368913088402058028249491810523623745862818452637070909069001189029617699270831352629188832244079739002339089471663280650383078811564042332522889899206705146856126083654763277949051087212269568325581711510378443722786655847212037561872283668560393857137772579042680520603520611424057745677397221898894405055386675578428625005697577313368491715245058028832350564619837278315571932644937430988433421032899241935353156434380239983453344437333782907717873313209504217532195137398987268029629865183506617373458122538666691764933045367121924931969937817583180046814604564065731988484278044598982545167003432883445779892412297999070748418818306824836446767097156854818794458065850027878763826895829698491162932948763062972818893000536220233312934767694783633243538159656590866874239796006348292443104408384605088196503084510925621310201541067320258405624299350033790974987453279213686166960561546015292775142249767201357835657823357495418700487881804809546671989739965873084072813516737663388073084244203559693372077640858958780633641135034476719383421568132374617924328801341771082926820146564035950179519699756122093138189441756027721629848254037948303951630319849156076431682989858842813296641429055535471805805943998857386102947281827616376642357418174965610827733272477585001378485389966354566069840214971816321571676077864596781842979934458050906626672629871485180664845792436862041269249337432030096332946569674993875320112622837112322459755115678412906680805194481154315412898407923650937954120469297498997475278306012167376907944741107291349650339887497700270777626165773952423805426406268107921353964425131884784150228069325050618984568333054840662522852754720039283436960982234342628266184205072774429076772703229461219504997788427305155157376293592542351138873170251676481021134345508076213648172370718337844164834214637790003367269827064088889618904126511211111337986599378570432185224937569054321389724784738531229188543606695714512847689907766700366093394887261635722073757044617229203046347860069019964899603924758226164290092422286859816324758275365833516099144598472735514287551667333179564190567955849207072897327987443791824228527309796427651408197083242407051214521056567583194357103431157061024150329067664923758539495687901304526385730800118008803365104081678182195434112281976104230221540827870719548135384029145097518371969424986127624778527756772832105470503792919168434029790905432767329594622281554653032942618682484488596562676229792364324952610529330267771233421946893756986429716824779886676325198096391781501015756717707346231531854238330120464725310707456825806706853712721271275016247109572013976701168428727875288849986673550658165949544804422278745940116036342591215063128643486317058971277673549105602152903715704199921550603068668829142459317344126273850302521919309462008906828704483911459334579386612309191141115035809350364074490065154848176286382453238268970861656168685503145923810839641019031192327009935065212968890923576808068450203733155700250975491136254760412619483828557372777166792515076940673430995444097656951659023916458692140768352669660333325638371129139020110350874577923394561858937603595561655183137257326832367031293786898653306162075383513587063921675868111604488764324619346375765985168317784331406947565987417375964769647062135675508590526469038589523128944988746509380803108799463242605577071579797398849213400059360589960802547497182609311066153804857785607351928119714499028238887520203584487294693138249142483180259656061043901125264663079207500991174677512813180092971294399539236991570165279323838030008378852883593018463192177053502032911333661094161588917774533150948880887227716121378746228785326024480746352488632945380753274517904348301522760436851855520868437624028696702210964339907887602021240725088674337953410732157035012995318163677917956781114271163413367171544055682980410690224462623965695196474080864103704246522183596581769006846489440000099848085887724985332647045215785571476643338926344533359928024218840973248664342687518758485227137112521967300818910775840438434726758505713621912829383327948974761696148338041626924275202374861925376370306628776286982991833487986031985541305531766873460986460697488307684397115481706196842686529064181534281781176060831379861529311684759221084862992748402778285637698549129807296710789207475993618257787962669900459439269132889971117187539849674473526828953302085780798400218408111187573971120799342792387247616464537383530698861637969073535922970984054262407879703070019285770618769597741824739873562698985622341294504370281475407098448459730383702672805280991414409291523303159407341275449560300787990296529892909970854534704754752209153646989791576875586678675214226618126369098454768610185720526308119271436752909709702746303158792427879113915661975500359849429708398257414768642595496491680195715036053079425200689332730763856652859805605107830595230960018124556026675882683128474694511574548624924271651764040502162604903012220205489550259520586213647518432786491319648574827619607260772190857608660617949558438675780739817997205845625249968647607277785144499189186884842661914617997440100301884745108467251537179324235432673606631429160418997815379605069854621370351354362591964752354020630615663846659745154360852488102216829198585297274043368643494911217473505460540439164144028100972829569987740463497607980095775106794897887863732246812249609573753201793749688590167691127333525983326514731986974982256609949102629498507430750814092379976863650642986953420717680181636939970885501569307582541392783900536323229288112281670431974230362432428338295777724583752174142500287283290390163467066046181756980222113554778396047682299277762759170103598842444531710294781254255483780234777911058656341332148929284966322644662810079542151368013482836835469790149686983743042967427854249016893942621534357844609331239278686288478784113304928496942398709195425456552626497033641198002204392606295645218784330629210213259384141550081019861004579659953619104897188335597316832678873773479105343287218802290650469534075916636891236441672012040730530346832817948172188807767113627231220784428446210640578218987384907231944855041610566477085541079803480796563981235538902339750795287208091500492437837610291113610270249567886566797602431827518033437620730957516848144695029875212786440554319962699413965765622260204986106132953290580613829553788875113995858486557638622438621707986699021708570376418785389217634848553637991660790392306432463183720957682071162750996285519917184128101085388926929388608331692369551490157647191435742310591328101322621611312458383527503621168841274313144086386403194245001392270652506371326623026693611700263544338615315073400296953097708135883777089123353067886167685956064526282739860320914928013036394439041069784917706432327373470284623541894200804756352970934711869548707986675095826264206942052551600277929366529469431561331852121712925100066937057863906276695216944257343863057904318583196772206020591386847530996374655526149298319932384854431421643184888375775075557643715700768949588047573435669108083317753654728200076327879079422827397671119225974760074691176840140535945210435337842605857731393327579226076696342170795012138842439402092724891307252896653727842127693682562424493795529183069043817820694770282988023919073003705301795945770807006136404995563495333004096396859135619739106298183128458344204881049918067849915588484858481174474535566047125577874540221007685946303869563632188369615383838684322888462258184698137896467367708811938588873277691591425563306294509595080201795951590384021883153378735893190561924229760422247927168538228264709487267611041037975480631700327604448379436673565114495230160474290808899032206256394257976336352229790949759389311535845819182122139770951061302568696116387378458406935966520315870924258273478152103355605296088061097945165351108147866667996027938400303436473236873934159929584607248625887805517811833006464679679488063295414224197350637374213965672445457900568036510457721752311778900160587538662576612491526073662298365551123408256765966784483613628587154335647215478591001962869140965827738934834743259853478091564039175289103676436259325020544156235891700011087136802043861747255152724177290824367968205384486617057975055347613619961613710681895038970910131476449005038880015261511844522804070460359061548674107504656025092116768797783115078397133738376047005981129208436444624855808802195020141938312443479348093488580863823314714381995397422090992598166031138994265446860575853022429085495239981678404026546414388153086402089378753415588517925868117142114940925278663221412660614592797223940765901722234726708454120130230204458476476599244181050218562108865633519845709926603997646091351258634506480788172948539004832116351103699448820241661396985100963047340098380594436142356135454176369934512033984139784272835881188417719178569071493518479691496411915713034823787297407954527375886980947747655369856821628981803990277345950393318175513491846622875576667321277355703485579386735087265464126156678668105646713131305768996776672249127949670053648105125992074767757948484650173264019388834291388386719630647748487124469522374518098252833453099892286202403520523908912512886627004552663030056788090526846249220472423069803887756944160771671650684008435080741178562901274916776262034440307936674861899387263502250633696576553772362898714792182168219728363055286658861568794659318102823110291614671002399877244528810985435623879969620519171981495313393356508376802855821108808990783959439051446712642094715691703016237025773658254942526254067630966464673356156083947365510721031766739463113224969545569528070593150850191394434587660443905352382942464925920521235484065495154351439684478771956398964497317956514568384966720029194833493326075712528461341962118199322833610264152203294145443594360387245588459933285884697110886743324970149846013991057027746323938646795732580705632689351928334470609494388228809609952239054789642299464671617262774546855745472984013251077604285407845635755180413818513164784176284829580846088573028614864084705053062246460182043746527866249150217342952853286398443925163916685883533995606620740351341136089545770330340258161552504898709318496613493604780527188296042614768993264957801560979852439451958539666248017397145828172579883916974315597238782255519031192903414952590107227290409969091642639063458564199578771765636330062791849955516627111194168419184551091019194887801436774877970009199278099709996510520539693200372221719478906104526097011204585251539963025387924919907641917370654170169803188510086260339473310037030854516523170983318626394682307325420320870962555529831726365883468843298078588534422795765734087710914647850991723174748038400322766919957267215904538650312410686953592500548579976256625532733373476308004080003582884013016450268981371648751394629167605849238210574501250050416090836763470046729663274848209920473198253359952177786418191835480757599182743287068233481253729623941199113675228792364061116505365573710750922680821731179876557772201662738344030910157458894911474742296293361131309610920198383098639750796656981607448818286209175956458661883565679382931317354912479561843350489769514612172217192236631894824894049970596959053317848032722774660857406830748699215626774607990574659442708132326946999052391987695595113970150090309740639225016898795866589384525526878182786400618065802739937352926542349586867428222781571514340141013523003470689854676742123204905706708009160348778508392424274657095267767532028466861416712686123507055928662040295378830222524281795990068725622528221279646326082698037654095314046601149603030968259482667384719308967005340953470960308507516764105229050907772179217434719381922292260016944717349393709868631987441414053330740754694307449742840643532971018146680283877497492201408295530871622402418561981881482173404479709495593420141832301224186240709598520936053365882504640832340757987952173956474958654726898818357832756333248576106392557742263705081863733575172703092211998476342033797770813720414595243540112741609007271417039487665417486835660487904080727897654149634151135002999177622131563876704840537456584292301840552922473721758139709713359067300639175921360227811911434253445707157114287550260314775790062870657692482172591393120130251703307975012413377396801746571279471635111996121245479307479820357437360684641180371214448865682089323248796506261557280480608298523432967751417882295461268579204732893288074765990010574766396931669528494389281032349229397986941910853241280764583302206827033782260646047228021640654384735201222709722068702447411788084752204299163657210011157607037563861452088863519863873074472566050921276103205690383640691003638699652394647385156646083115608201146711813850858884500296937083186387300570055282268713140778727838479103267223635553573627039845493221803049133281085590430621141835600997345344458014114834895569571816167403307189495213195677552172667919463970892233241333760945348581940320536279789321381815471390578904037252074571469926910842882841184496647714614477039845918787903499717622742687342613895427964855317384236304832528232061054296999425422788682414078628215475233714265550359593224093318762478189070714829973225467983383399607973846333968496425815975128550978643986118366925426170892203064555475593537123693020074069583842295848535887475172201937013140193989664073421986200457452403722043746928599804949874501686800892057398787122931911807955510780749847238179073303009340802220293054943925263561640248369499063401184929190394846647841964875175601476039753309400269817197684072784608083096309040142361075538473097958100525513418188081937982070636099063467890557568160545737333486394790978613700725302819713603300518470160133146038500504738615944551911811268497223211663037779451504856359378565507422426035986146922102850700254242822746423301539694865418505517664439190727967751580559467313287187711592484151189115678974426613449624140250282681701105499952638986451174881855666622170615119573079906256724027548893339576161897622192464666179708965914418228585342369182785930612179042049606551638530007562565350793702351699074756206950378736501548290320146996418158045595938210713544969074114536320288235929642261694320700142460613121246546787334401127205947095790440622208442678076752066526052062382514531014546513044125141917527558511670199433419462715220459282247473248867986928905373436135975743921414389764987203366723757969200712801256708098721023116826473562329462588287489561742953609807365698696403329030017151373890334064380218807164150360067655286514967328487134472856872058475993481161710491211309154034003128906206269238592070350468296752717607176158311612711946001593009447504702497372921022583485765759313226168759128444026599212195462535371067251009476062245063239117928341975373197061709234087604642749053109948693973213298790612336088267617486431818233056448024481873549876663379868086958123868427742872839426816404226970916061142588177877017309466388138975768548770381652397216371899858036181389668208633932889517616542961683327034495451316613326506223022988818210173567848152704766906569425757251953762176136366085363796439292745080549213616201256222000944527868399241678741451725931330435880193822930429654682830941949613637061717540162590510812987331381057457165210766475586767902942192579704720697153382059692799466347618755452089812181410608132383644501297873331167943831457707481888656499894459428306194298554693019235703304189772077754775936711115883844710187941107752153823956271183174223827659683584741652644251690856542562165059172961998440449612772408044717599845145085697324521472435158511499646003169206255293757254876594219067695764052089062677031400626846588852189971590680247447889702146013264197074072720658443209599238069881774098094153400985549907443623730597010226577731788994558030183398061893403830307399197958667289289547192745057937263959561011947801320323325561736042032411789810427377652603381008696134335918519292540931529485867884514938736269037469825609473070374117887673786930175146341746973893924267304778875218957720232802837607048758837438238238543348155524509597883995853763729715048382251492948816207838006384045158570166117975409642568169911906413957283565669903970689183903675370182756889886114695021975408850867910412406713895101979144393056705257288045334587412507417855140781908991278651322325280166239419175405920091147534689560758574280696085181283894260800953720140728607129961421781075546144542484194941666889946747260808996145391136152766427575152839840867973526535319533744674587335816180733087867361153637353881130171676186471207951936144463670030688182464886265865899274415676559490213162208818650473135157372135926893579978669147990802535212258346885154221427340053760215811543748564433477316229622418684146326480266265773234901989015197476470758608911900577862348502513882879901302421636962053013091581367134460097133029596952673530020911590462557825921762602485059250628365057192906389454157347199235760113345400999866604459556932064143532431800552841341612125935189361349378225409519116447197912953644065977098784220650270354345001235182055445371235676655165722862417329058813435842762125512635121486580494662293754413661370329319834661025323786521855527704918103962782441338056583082686856946578722121938577461862697902939983886873699633201178346522474118311281406780713163898696029115108973638200370572232319966797718175772689946401269193376307053274959472708437599373228108669211377090747488694652102540078840006535450339172049281050578729897628920010017929789544317823699559166633149792946361404369141948204190512741573924091605454100945209304380944960945688853087730963619591729007953084500725073033609216129998676009917783836479959322249935332284083758354939115948109517160175649668645140064021125398596363288277220643625100871575908479432738141468575603857605273907688638564691636720355645110509760893560738937409334763849281776664263073251924387750077945321559561521486776682393691920190129727618576376628397990071534512274182908471969314976841520653140308576788194897486222324887507723490728809392080845072495732413126120826699669280307092204986024377123911361413572274878068319298537525129684250234500390643568533547925089271339014772778880206881380445776461442886592232345706778601618524447173097964421069948717542110283203933997257374113125141549218932371305948068730744283801695811910705806264726328185387783649686474809994070679214189892137505857444247477532550248564961855242028327303819842997207478660978768320104192034815805839403156572723309214724405956029815812211909521880369381451146845633608036063366611199176945033969781806346211729075511620655691005225910399608492993781487385111532666039851076085613321585865481306268914885210065338611779400106891143563309956280240256794872901999917484070099279056705044561205677527542583825574179524149294766892576844082929462365927026050706929217847607667361834647652486234972219641665192422603303814230270684703536747261214924195870960367533520763621640409026043447219897849334422164884249954450151004718831864983156491558468667894915247176599368408753485432445798148737817003598740433796194060733252991115057350419842855451305163406753174051798367632958285090925979786024502996812549454864540744430392259990677429749586288652903028266604825284170823442746532260907491343972948318542884623965367429721070114614895387844371707064123360916981036149489452469995973135096214198685658908601529947861272299768540649459199161501773792548479756052027897059582750018562137741011895798137664015696303369817428743377996546978568107289716605135346500542653699152061885352167992531637310256418904734950939108553374858324000414277626757085977251211331676943614595344323352663777342675787334461361410217862082634352205765702549823040119952382205387474832286702320644567069861690581883630777807622418899102902060978944058826706015518786841575347357995599832311528208971158531269326411737247036007103227109516969992209866627043576516480231456015616864141983746961750181458050336176035533401346706146656309471282267958248895121565576248904244142690666937386131841169229694304721578050879855151325919927652098580077443145773576875053366519282163862514840807574759382057565936808675134348108299057678171700864206177779715613291986308119834085250360594563800525565533753513914495690579605431518439664427933610853706437004660012420440944306977920427355006905478981405663531888384288142724642787827881582941146202708298720513477762169482941334072936653611621207871866084000856342668975936731206789685376787262083361351419053049372351211050322862517512269444920325813985970872151025845614140632272415616047272773504308002336271193381994195869115498077693590523565166547107165491377403959345050810965646664306170798006919065600299307881689959370685094883001245708814632030757305177341673273832995532990571881850246390768914723506613192060243728221385192741760715854120399320101715177081210141390322196306203026323850616084811275017870733383397790155499656376090298756893436815638476668954799430494273164839766458614151374784715406991573464394282152187476318279008366420021249825935616006981103877203865039965312810650615947478467068714473413512775493182828356441436894064148752555101832031250709924027282399795556572851998744156911012158201890159223735153977789517781342897969569040103057954549590261283950377272530804041797271794323753660097198988576542453290437306317770046760238668004434911041475844206978439049015307747789667403502679429094535328418733201375938546503967914217729775875252818954459379915993871670850049517414559246738944743007157192201428254565355425284137487664307639781276451005693088141619479991842133936784858539392389213850806569639089813273431878051226903940864025303797276142731415932495720159429267654492085453521989212553681671839028801210494134799304152583041256937434534486549845206171899991818897319308036455847987868092325095537660460614417954301902572495626409538737178858725407132918977209358632562109602222551757280522454319955908137352001673722799981165678752451313843057529374468557926498665870729493279652893722302553767659760605672653173903709811466932562211332410083425764489976886645897014113938394066428868504498489206113508911851730569717578561402901260636067487262353328515553614224197928343870228118057354879908999804143385889141022302795527187516952065482751417210003434219876848628880602070095140169460472395238014859887841065755773960184244610966654517622015381971789831911832106264403469908791047462123531116253867539241805019108264000100129807880842882688705003192576648808745942919672186429990831342066524025766088006578270689336955332159129116716737989646850999894999402747226235522776360654982488151726703511251441225209196689162395219969394538312270375986934865994408960727412996607673415942875801049156183675044534913034337726199450649070367466579769955006017027641979038567758743576060158712120293797414015569113035675907219046404385751174676045328469324855216797908229136790427981937632465623253863851766235495480040868491073865989368057133853254509871463201970527531882541421591845823190297432727562292449978406210439429447083507184600712115249006831027474855131543167712228770218100347452989181962460662023811569671785115494779236967469329401850094169484183147816426522578008538406424238471413836208909660132790519343526858911021798350814397035833935819585746220223506681485770677727166552105037693149513132556637374379709171799780423138096056093485414912288651776258421759978993117007968443790392797242944468392976864493761859740730035355082658771854159603500567615188412721677043439462763858752831600765422666832507653015067403396089882645408999277431163801590858408165772357804983100969902517215453419806325223008107658895576991536808724414592061721237168972072630991877586224894819920116763234252035237651151824195227108245950212660026976049733137944269899552063394554404345984495569209634684237995016688883856259300619951761677088104026213893540325840579821519537012036273813640414265830227657922051581541230082626743059106952671750561962099286105723193568012234056547345061185410029653836409344351774506546073768550864779163338254968157903445695037746930469165984319888890771253728458765332293921423812098780349924997511474987913707411446907015672871943510237959743022399444567909366459653772922210487253500384858538752025059974468356753422540823983996321749178589786329395806548657798447085069204821809812443481362370345167173541702357051567619428984108958080955494491000280147361518463387854576167386212119066422097293334021143694801309928380663142143231323040976202485879002887214213998406834938648234768721799083155170524192916225149258905881007522747253153870492095023959451980176290708903752009944413929350093505104347732534011305295801255915481580253304531943596604023997148814935518505486461919295565416627116376274480192378673593588288241829193727641378660915680087989095059216533173189438885824826454594733684957067988014015387672712233689678475710364747401240842225678481518805023480933903472453085163539747095622201967722896600187712749687351676855077296418613092397147901663347496396745258043778162614903870630207768296397893264663967757193981831337270809273937067986296605533584611248890426082539098058002072328255279118749129000098479150361495631841447935939223734814989553962897884701016827258522438606578253907872306398122849010644288805438625263762498402480004242410046413363940843893681198746770511805485687702266200376729238979232680259824942701034660082316361411933730817808658528072250802302312335093904255320681279928611171608657561014329583563127565575277210703964564852373864581832254349035918328138308822108822158798025719358598391398168107588073922363863858682445944499991228610034642876384842446911031034315949208248305761372064265358169482246762123810050356211155277248464060857541160598722950738116296627016250021926111107329256945274082761149941957510359622126738663082605200138620616403061033888569042124943514662092587056114774755386152628457173328099545417509029409101178525554609461670933979641571213426495627086912847613084983091619807882685253567715230487906092078963610684889149947530862756996235433667635729001661025367653170690446769161828914966277748115650254848340517995902033491054969898555843130450492165488881233454206556236034958668924856160926527193010285449103417384341960897271460921669925145245356230745855291621177551574148025096099350474301164895735613471519564196911016339368293074349186396015847650073482270235776949750312609429840972200861813994125290960991200960430393456248856793791748434972254859828965839194596215596692136959972261374293664425523384516371476743088394940391663026796724101824680713465448365409405866146416143144048849207518223327608265761346948163438895190265557117064002000080403281463238319904390491086658973181071400817773990433094691277186096580435615244677523409452850184547873324492323726778487359725480911418520725357867099913748873229402304576756593609403571326935442415285621783422014598734522079534830094831465441542870308617120486064340458830809272285877006700541918358244526029700017753964781518527228641117275114361833395929517877434399365387353777564960754165734519884055790224028623707345964983314320340884491575250551419594237023116711145118567606834515384803181421289911461205719154381561739965576255944226424752234066935402038270917891419508435434603425593553374893069755388680779246943173310581726166486262968124966909700642345510018635635337299203225903602591151335554760964729088521656714001859597041696311031602185699870218060370800576982016703074602344251624445954413815679425796718637723302184040389095274338188397181368244224684979004630007868564115511522941075670263744402643455319876187473465877184732085428083044321414093838744763260822377381703891954511970309258738824847160054016396162894376513010719857659041246812016255264395402563343616366194511314226841111082429786488729899285487565919948108443379596704342747401421385873120765957945600814188083599765569418554526629060161501900228651276642284330877993429200612793870881081924176397257016438080667775082485817136133845561514734529187399651344000904269590482951948077651937962540427081850415694443054663585150196902188527262332003522772499113628784662514905069217925690664004009725991224774245799736666320017887173884035030755135816941850263135390161520501098524977294733465269696377613887907144246414809699822716460164348215956051773340761952812340499363591398220624767621286762576417922398810984991876449884335363740600303121409577781581735317126507229118114768343548364095021615850542619212825554890057294497569100763667326341321096251538916796522872597220150274755245551151977893870242506396762555965584151306356309714729296868503526686757209301089680732882640623028704912562545910784807562202879796296789637741018210974207663166681389934340568871543492499980466347976655388207992120276967230084510769572526021883363268226664713530087847129120391804836580308616926459229028146180554327153161668603891854308711114780444937718094126528754171961566189920101333008886058686310429083257693680284331795804729474783576966813398772900769874534923951570865405526854433711323085118072845729376088325342024359832871564749183572064162116413734050819777579709488856964036122533197350720562695492422963363698810047015402405192403981465813683860150418416453058071153544429722773586002525561435400281726382169083568718502425235220404300938412455134340348792976160723392886106883114072225326597751879156348440444500499327265229248985124655466440989072875803648981027507761434475694144418317513810836215293385000025749194359595128872183690509408214191899757379970197920988774795328698160747667357216756681944753913733710199831065637889051639445136244742646708819958680921865936356526826751259665567314126754231693631781426649326988079275778829853419098657046832787268498160951846841624226267036130036240666862556231291553844288505182389569331954488682888879105171690958269244969736415750749278000979346713172466640177394970528554065466640955713876694447548479916375078706055384251060100454724947536529516978985167726471835634174344712436990100780890747125827898024719636733993369349424509245214930117984747846828575161607066017544548302356007544674363475501973753345121750665466872206404669420252726529252072070985673054935235671248075264108660113860975505030009100525250263789593373549674695519739469793728724571097145187216888457120435183816376601936405606057588964823409607540510532948005062826967001197640892715662496908533733900370173236451976283441849925620320786993703636076544850707509281756612746996746160682040164935600838638158018979652568612753911474909665026905926096064064744360764963622315995104694269601253035038873336334953585021884696306982794288598843755216834829986037787809574165008583924785303721413744489504936214912017774508041178199008459498697739108361510276316861740030520993661209812965104713728159820188991403850933365353104577296771212526104699616144436638613574133362243733420988946659884020011889864471927055336346687597369105431341830083939743392770898444575981297862318076925429350034863377353340984812330964458839562810852273454191108397853289791172157181121299647998234962109700991897879016105923679953621819834204375395931683762026008578623985004709685742246521559129172906117340883608745690494726464590447964943311636823279068447136886067059973063176335400473951212001130358066149996262045994191378392649371681641146451583946750818745560266889013686640358543454552990547228440919844208259283745846712375964053211083962106363742299201088847241243579670264635057472568620315670695880864087421589894059544417563911204129385976881878423514785803606810992936295870741959694486622119749568161900004273265330300350496411467303946848944380601438568397675745859443713214435224056189853103133120344187089251221073449539155859361481079246713532831667208671808021123281624365814227081759992035167639148845634585517961355229802908864942821433739574475278234976989944739378518743695135432376458409901308326935092665423460816767161632404476883540726304641935113679710548247573785619059492882649147371305494837043153171548788686499770889896956500169106814293425985352093527409273073488734055555136467616711620511925993955869436645828727635598018610377867678061164489203299985564492918249240543778848521201936578227639744105308663807284320547934303155090832946651767078384685648443435595956575247391740064042897546570799586131899046557840439516917979377234990393087431575264171682147932581471034727162566037345966416642070830995433212534491002235413860491783444631731925369824366997777318085460187526340705205467383059185614589380783890195507344919373311278080710190580051647028078383197186022852036457692174674410246241030519213445553172102391305039641514774013826877601399334417408645954214246812156615711987812694750901910688117255142464438639575473007715365506939773793008916704113615632968147288778196142244599957173522471139855773747243171123480645494491171789282847521122753601878698060527806377345877270561622491348489304079151677330597631568496389335354512515043116306519902931061988697469241252836073272895529308687907445390951140354043652767558128895340628257801079504772933142566452479407858247349980681605904425235412346232820586263329507151086778204693284195009669857240800625114319099524402944857624281531088465408499039051201268871597703808121222765886325586970930442505121430727094936861124325536440906532479953111299177668056955893718632745384372357900994438016778383413733320444200038284055346928537504581500241591267030521340844920946475363004631249780708363233532672567582319765191695200435360828140065064938751658181543952336084341843832743042546059211488382943058979475720429702650378657740302150055396025433631679741139242078313345605202735072131883459514905553995513791975418738375153581326122048039216200877159218799620232365647462171196593787073976355846422956037789748581801744838987552469265805658911326239170955511235348898073852188001153551598633285013387478169914791615765175481349785928864243748366285602930319078080714247027955528148357556035025116842250383848602665357487478227163296172979506339743646947612930999116148509743439013346461438615537355603502084178644779815141594429323465361127635654863087679731786652059769275415943686936017601858785891966000638058007637456791302400145518356396297999424559873437860796051490882302292972492505356079860910534503707390141874441459405636743278452489095132391015468790187824421351812987384799440602169148830404917721493007115129399170618500187321122088436456529473461107209905942527426648972762573253217290756890112802513810596627109183492445493602910598280383680148589717118323698863599628826647894727431446062638891359579324535909587375517264926188691297045879398582446019851299912479459411819922283285878271978728389869759591344668752433916726616179940681986956572239345280873154393571895210626591806164153259421812191829846072937709629245061560798115711749668626174758923373513435395853650888459170082833477762474956494010660228977950083619657283795277468275503370379017049520556432144936439345032112249344619912822051783685181982207892270923142626576928210007648638784439772864513778022639760955549125988289855733113581002488050258335410086127594937275937133513822040462842812620490163723800384602770541545140903279872214561585787380026651624993263441865339921156193001920503889366400031906658166603565887078495551674068456870804007453419965602665094854202157689973220777487287081702602317041291563252785584051725842921998029369740910612438987431804314458625774618457205445709028425555962122787960817736747530548085455295780036486593283558803273252114918697365476784479334501790843569803788538839276784048467970396761719166224687498388338835942765422518844464821012593827671901714966065566330927982661700653593947804004502634652723959870601544741966460679527418493656329784917235777775505788004634474297339950236527849184580493470367705921936180227699397963626511679440966014400643142790673025510932495021083082186701035354822765299449493230688004285697345381950785125818600267774388338422466085334531629396705346027160683697044681011580332821304943982762349957976961382663323976919549457073587103248291395013535768844195587922055753789119378983145720353091149605628377928896184508812398074217679736972189468062176182486725106419714052036803853465386988351009319989282216629002916780129850350850610995071565653400917129847593875064033959817653970674298114494500361065724493324262993133827790982297328787504371893825027860173233257175743275510608284607749698974979330745635129069526767654287801642327082896674872847532655748497167982295262499992312988058628321341954306141495613008545509013887208292076212464922658367338423781931777074434153874358170319358996140413169290305847732018233240617785248893749040589543760410225710774795620715991994143625214723955763253274103772800401549077587892536912737455753666263751769229836411252563192182614771365909202237985984138908630032674936910814451622928426407227272775649421693539919859491979065825413730016322126437593037387834322519409345593560895194540401593398090113036801681750986912664387445475928830842820781718545906360764436380465672581105918247182864757833260047981538043109656513014284599843441219547791010579819275398578093985763934325153642396584795929248425857721900027368534213927849788666451017722060162755385655152222561346091385909452359201007238355845748010142345873357246489415449363187926672267142877512297620509036928005960629589201112199000687692788009190260761718527061395399589450037884662482994179697764819263699752934996387727367103132964218742937133164027899260870099147897611565991696059225589861857180758379661731433725425419850492677087434428409384584594127653092154968221225586528206727785486346190318287359611219013138966231616292934900278315222037752408621332131225281837717040978535278268646897040208695132926916051838364646359030011334032555720179309004335599539442546076643487967867669211791516436803685590498337530078187618206741720816655711318558628079889672279046542501812985397399905837437638516456393226573285934604641452454127170540498416819560312279725291715041593350615740648130265239816161469852482125051099787276335268817275983916566147247001916242795494207716507581249557504646121371178041352523257744814323154904371319144546206984359295402094583533413988468708602173351766358675664622940402714990751731181249613801206604595043101081511914041252825348382300242422223788002943542047034783946270518294447574747126178439900495138300726393316397200606256135149348732520418685575585910768932618503389180609158464313975731770869939813112753791945240694501884126709170620162745382142680674247844136828287010457609625777205192011226161513992137387374990920791728205471912932810496030585961165848017282018883905881076033433918023223878576621203017237024647428089019955292903647947320186163949295542924716269028288583931633770300715783725178976094606281738022442096910880129951915113448139332335720295666196162206847708918819047017143686567787224250918802383504163940968115436904224997458299846935974457277707006405761711456007863792307680922734277758669834331262465239921690058038363892274554830525822696828203520136236244313558829958041117822301668038582233558482388880647914734948419215593932905221702872349146971237990439486267523274008660554287095361964751327609778883295217244140009733201844865121677170508497639637857108069696752694177645925053157100862560929111274246187743540033864925188906003475877619750687473441527525786431617869384836654082304429244171925889104391188348358148986678333805384335950064165602670569218200379908070764985332899875771175297317356789138975348904995949538650799831220458763267372691114025849029826024483217390438028281330466621977406146341668459131268295927639156910632219860838773011538934958326387881984739714782487449506977091775031203214601241073041176795575922052441256040028119911060966286620726727423041779813638731697786115227502232031061910613201919540014578320048943075448266943639426360215634381687215110426686168018420043360196693729086612634455019119563618327307491719346474404154932831345751370297381774045758584115070480254506599730782954796445396614954647570832647024165284030711765179563486215553267598278162041210615657878899525475484211869374828262416167465149357243222822640759564398755651711347692372632857633300412440380097584754202573943736254174724394996670691810943245339612685715656529589103835376363856530840089395488559550357390990618489390782639325984545728805614954570195591478111831877991974894902167072786212326673109724478294419754469383110718051312141166785903099172782557821838213173224184917903876919021951034266556584932692036438770818090793115807109781263656604706294532397689434234582901429698060144910676707672187492622584651509279768538646287506268641992922170998908866449128828744609311325519504634271692101088506693847067736415333587438800823586837269839281727703904542680490961744415988821802925498853928405313291263591591089680425888475850834029668182694339597865650582123793292735344777861057178615840298290559279165791836182122860788960103724195093133145630740555245792889119588402153894703187353414201230902145618801271988765526860894365841896488491089035211361096842587484875735093298835120451068482361991154112760609573546982219273180988737122924010149321051635855279761748864597680648771127002507967225996299292353413783867787307894357426677229357893197205508451409814240310523924387412886280356033280685146734038138096314416653488358208435937170754327104320235588149458385667184179540106478173158700837362682161643887240993844408546545027826465353767277087276382071059984370275351557286635799937809315441652414692172273631050702900389687295018127092045960676801866586914960113769306739240408414486166241181691693381842003646744437668908016997932095303550800028449698470058017432765896312121584830782927931296020182185586955372820264798283517645822159332682987865878498266555511403047458317732255571956272981778160819614668883440818347176927804323915958342743020926084781729291015146379310820520775341226455595328577921087024095868734840069299529739337601415663957414939231363888305704438159680421766267061156613467896659128350705336808854101489874160029677263739748204072008918991588907430185579629255595738196197907627546704727262539846109446484749925182336146413100710854905989734117250374058155764337484427899833627111769006118817145688962684924604040094053521449451222258833048517167773798490835394758577900296918494367150650748089332856967786098721400663927520149819293735127991361490732355892257534367245323374876879943137505932188033044312886937227831282491567129255651979690070267968975518127554865057675596140454710842857200542792864832493962407260571874046806425427276349594410312793827377236185447356945531501334154748682142685081970551200800662816983896663372082286264695806288070239903167671137790795289648010615676175709471482411620584737500450887883244699005984486289224595616024254528489311644468666424767607019848706587577811633828212828138696257007814846699360161568332519293665478396902294497698868802912752645547247668324741059054054356284650726627869128666935635572438586485529831251768831439369236271962823160100841408269901499519149953113657174633177894408549610645224557680492952302860322429149977821198796953649292334945938489575182838852336068024749746873526540043383419670091640531128450463926416423547093457261589574447678433858153936333541385017333581487669494404690516690795279735204192446354480248222293059258093180395627903508804046846926203606758438132033102320332725000742657646251244063345463675800709958451561281693886694659991361491488403761339824069341307815895565947856589682962292629563194354435420318296441282059549411763385556172165538690404928435559221383064059397458332427517545254418754616447785909827584715927596382686327653159613042008780284198100779886358980496330952201923006473800462533876604558321775408830954138514684972842544948833448317704908525519025288031236012663187911569206397498367861561110555845991860398327313417616046937849655060406549714481130343890102511555823406207849518013753683441280041037762138550568244282093127619347319343080539344853118958637748694271937387361744847389517657917378483738593849625545560073830543788281763884648332322067465203972668082058141838901842266489849661030538336021340791418059334178066064645069702423185865763248867192104658616259005952967800971835830539754538169331880652420847553109299574658517191913283649558543094152396602224809446632601569138527263672406138770139029854256382359298401122238251533152197159765074168037565376145859964822992230271686977845010353819401752094279809096853213044289499015830678819170692646941987232768538390848989099399175484294637327018628659485498327249566735638078870588527028994880198911069989819352967468203643493631137544611210120113205008126465688150946683693784024440878790688218628732432038319487555660813592222986529691228023808418016799445844951180147221889769179220309281214094553390635594930197205840115062798178666679576385545658060217873764606706185097209605813464041722505951711692559139159301856423078051479467071407407193422904253163969946977443210107951940270388603587415258751390151975048573270528244658492479452489758652937793067467125467875660627465051312100070646659729028060893170053847033519153650751554021888071755602883884313154355032291489660825249819443025769672954649521692525997429308377411385291750306482262087463465345026579265758662258092359219869235398002705349014005621036374164904618297077037732141137124793614510284216789123995079156285441588739113983131302106460023747507101512561837917129240326864413753349742284613102944618327473423884855888982815772991489614265330801528719705427417299495997647323719830046039783329369644185521807764588325829360441386155686854284259965542669200203421445484014875789233387028135433419004213291030274365477574195904532297751391484264983913211887371867953957348792953855109316397151122948847672353958806834433771924691235106573984452862203183168081697215780566112637270085685595776499409092768976527234920094958346038409830087759735963117278160655928446862359068338423643848158051867671101737973592125552641256862050107785238523995208276431686407772154265281856008408173956442954373852045638206467602285845048127300151232249058535665589060524818020448696514543331414828439219018397816786969935294277851778371909995175574827389596584320198935065992776082086084566452477540132225997361873872660823727352176773359704161572584077651105337674230255088037080613547823267878441120651243020009934045667215523271535528550935273185417262899014272481348308083443688854057230058373927622413120454698971732048704976626691876050108452653797132022584750633701362683656993223974493907948657992851337725129892211256814765385621944001346039722676152156551933610655940122308220461713562977092113871163724214868321645076898575001181924957458573910909798510364578249166397144848421751142537317727067150993486555831344518899274512469857632531010940973229558048999969846939869617633679285766688109513349600057534556095249681030648905964203855717972442029134304319939025198158924808397555884186638285548947863946694669618274149708923564870638584154976414341785028564886825734716541249998514780266931815061811406975406124708396344473074206539676450938811845489163409801195058918716748723207587091945400866645336849910465297735061473592581302492241090073783625372800896587427521192298531814413486973411789635923002508867659323694222812150386946427562808919433640429597657485902452189321061160699019441112096463181096645525520683374642114173311736813128593450057765503417609155278139145086942077918489471613022755003534654090184470791937865108705085970835412968690212982036734651939474312641604203524226953064441301447269932242890479033613890465594334759119484391288143795145287086889717061325676131909717025334861153791342174154880472799024364248216554269407242079964079786943900902301471540464380487874882230018047140819923259270996101355880412273880481907314071554088243650911306494771169757383252377903699409277916873298955065502198405827649225848528297884585305977806971316855498630028447148450800712533270531877807378973590829612705255650490267088712980792865274759738394619750391962850793588603883221985261467904144754962455082743693222404846607473440539717184122180802816937867768687898510987064975713196623682425563917916399665678248513990103541930614897571189776695136218470774275969842796917991233286055316502241871451123127757728387694240075852447730170048268349787693642032822073597440651207103219369167405685837167990636243162059282126658412725733109676156495408792515609577048423234980712905327769605076016107790719838328630722211484791962957403581980568597475879503241868281952351423411139714730488639375343061662228708047896740097704687009964434899396631666587091629196314795404278144071094699630337888476793919946994863215210055790631506463822809519611379908987925108447457141214892361154852494565393858177846847416419482406634255385576316713631937632006285006234324544875699484571295443972885600920426671709803441905133115448695480043642079064087847139816305675983709380479278237691100997289329595277031075532051290979407394927267471603881974321642644046382096637616974133881053992020197555125668524306859572814375338631143566197291516701892422407705297388715256290425504038439108929784099822085599935685081577099453630643465898771483270660121247875619924346434724589115693065717045566947234396337885292918747505072604123143093047292143410991881300660432082642310225253594788202566333715153497353274055151165881387897074366386304637211258103943077998250031170400564368077800054224478779090483739083264198391429573449568511198097066691338418913017542771614610293494701776419517562815816796189288926393891300377918689465055063122504491118210965189501517206927798786271541521694734180227897050672792882328016748660337839253594841917180629565651428562169042868566783876323767588198286731072607493074847843958952843225934179064465756255038222732139751315941873540602157725792235913984097443475501880385565932874440486738527966307738876448886720954822365555939920613974661763463571035158641777961398370098738253418293426765724472245280492992806377184402789657132099017308901505206045715097240449533094080289891100435464459469927163053732168983796692178589432848138715630942637647467840308324407786597728305557842538629295062712492035070055115518365228852807285745295330182589597962661378587489124211536676576043030727838556097144122628225111859992616014565953625551428123662084097515481942465197948062270472718074211281350387347170680763439982819066692128201664657472687191426218767496522075632946788660321805870455763452043963452406334382127514451827707367016476251587791291853368377110773950943812938445868293785305398015419048627363340512000880085292168519891178661809602388059845176366130483007741912858117975594030329414945059247954916400113466664647771849393860522377210705344943958060378240825955473947858705558450135504787098665702567852891662982033344344543178591249301440979979643656752763567546740441774181497746761391739065387794102881329341822064416266927586591845244153727029085567434543521165699754897345796416295957119154848267344316669012349478860813104281127981521851449685569739223854112985816978143323087956777193661907939411432300300994945249110082714548620597512992816540856327935825995968660522678232444528799896229706016163869552011008421634349836239521265296312382351388387726674323281264527792478489317823505489081996247108267533778958043567843668915446290901002900105816427108815906921255852323110200233272014909875349438681540477606336831947555728772396620648016641613100644086443057596678135597901146639227421457291494990550907982407688716124079633391627076624895891654371598458312270070092188613056071188405282181515408219027243390268258893275531929870569416253111085402396414845704110289712895250486733004912579934945434017999092389193656723683120004561364193686039861887762467173989625284474406519748424079451673598863866531405792462147079260818972853795958809386987527515288765605411789728151757824583418638183242250043768187004229351545097413995263165770307389986423665083067803499896908945144134134953498190392761444466497191280496395879745383534762771830551929383067621463854743411480649832918795229855828060101003292538060926352119752670519145464516927929983932872075499185947276220540821618410282925082385832410557026207224039788304317070837163623180007012360431406310539347721242561578827643307234694690090452486146454827389799327903602874282643641963507868740493475149728979711789136377633573336301729803279237416520149597546550845839124500074114078922473515457229732628703805252499534143837465024323694846953744296312963193413347038681727081329102261630303447193737970100241999790645880541374248232045850990761134541398276300866638195373806330389048490450836194626904422115524522336453588831245180327846229178312123578236383175736688549367754268150182312150184297325317658462541591009949332964518944522247372155846801682199998685927803687097182460085412785955885503274304236951905877803547725729542039009631739963012776997497496654807284843619242741646520889675098184754451579872077165954257359531038816705475511205161671334953200155294050645659104108978753785305178302067188852678379736512198546431410144984025918735061143481100902248014927015091975906531369253370321986428957064510679264271054668396694907623560965703380370967658282657204304591753728971666408471834546951349707030252811243824007071698658496597434848350674719434038500406297425821632014510659797229721973638603207881682422662495197640419293199776992415750712623495817711693295364497327614669759962873899263475021781610316100106988373489208904715179036433217136150261992640396430432257952102433238184839413711087266653148946456858373728552939834010195738038479748487752285456164153363962112841602069083779639151676591294859696397180251941627779736010103536520281519893814732474212859472446394287874654692045633580752791337959547561885378932554890197798716175476329436819926449726871607286706941284877865501773668545036898774237043496272315340877289312286777189393456968262757543004095268167146028308737255170966136334779289378841216730478705097506342639287939348444849230821294865795708742983939398512425857155080353562939418626394099429800785821600523229116880923477514179097234318166062918058430621061270747145135805756627666369223377054274573608020471838130217315332642318309697568728399701185917007533169034947802811955650628999788278638765787895163062094049856612732452832304962235975756239996211878260088647054798148346146627182216333080895349843322338089370655097570817685402258387288029085577751109756588107270779142658427616997941147609099667278357621976211974605458887239157167228085954948011918085242927400227674758489144384242901992849409111745027333196093071567187543903378661541388607120117624810748757654335301796129541743796223750725742872727373314033257106879209018951017057495441805169885254324204671040086959812714676016186021897803293896486816465365094873619362310172385265064062980039491392589434465119853599427688007204609735489656573867714405903097204045675647096568638237288908937245630495585959489058078063604239451992131985229409889033648369783241359903384657210729467547468588550245043840150917000646307584227753399459488186356833115508610214242125912368894292891446547250173783994450841521537444225710546836251596317291958966755928072449066784386982817012604174170702948098588567095211151839857724823740290116507453198586572629122951477647204229890110972763334266824870341176118695444249090866280975837464365287595418735826753281484306485945182170064837728726063164595811611983820979150462623269558022956227175584816825617821301030445973064260002435704483657713348503116180166170216881382202744876793757101151835014686907897462354864740494051830169552096358848918742976136443774364266071565788576910860922885264547066977667686269246235483707941805535942770968943330092221867726811962886168254587929416843025951033405386416963434699392890010373285679386319502801266304078185994309010675337049969880797001107137498516906906990686333852067324092561635469165436430093197162711024872890339161755875752596152835469829725025871568358191009752377857863633179354899410933872086148444931931756598429300947131403838644328274109336762676389595381774745619498666109809360208123106337956014240068873994641816846854207113834670439830048003060542817780690504554615377911034293563562923096391096830707767632823643112732515600568521485063241977637128622816006087073179093328518189567309866397457545048436048287894651188811731575590972081091092303053896431668403828258060861516203922173005002929590529957926887386015088832366173478880890274606346768472750670518127086889434707843200363678964924321606815448958434661473641309669126617182074643228082629353308820981544648951498498325682649925542488034416932970907356534963197238474186624572000091107233589746400373442816140810588904948770970727407300037983830337269158587072102904481320060643969099231753954570067452470009492964585795606620254073429717545452844239599727574128452364385659620492149567206003050610268151100381935134507175011457316851381443740558523328221937827605721194056428002465523164625342281631379681145345763184830591644239679106688767687871249819804211000824150734356294293113884985379388641721517458671368164952045685873420675024373850376958158363132746172946630096824181301803601586228413420043002564305423512573167321448171280333373195893299212781735395790636145465190079694955982249605077483574244021550350933936998060752848427946946670992791086650333675711071603326332442322875057523281594200515229429661199267857021211747607550386458996761411100222642015002064314866576406411975246258988711519423307409494098488849484683744451332617797403219820745666545791483991148651324600170072886038348268169180447737647250766862624899654070652298473959720064122122455503308868325783478722729477435202212869228837909897634291826521310096919505534987600088448389436290948370530945867055120954253096202496967103402095923327993251037605785031262100159319798605909991335220306570192204158113827764524759307169312486272696204126031085845012303784011108855281869341750696844440652320851037994272721849103773525324061792239109373209879312528735952816700974544452803627271142849850253662373476676976825097266030914262944482736940986496563301250376141759760355319626650547845546217134291679081334277416767591900556609762272623275636206843718623964522208160751409428096718829321507314357550323219877756436439266826912263990852468117864195960791424153207916866973201584260112476231010183136445542667456294997958986477553306883679203821938840455055705629920469533602782171524151786425780790300503573230042803502348223921242965144254483524765112408025302949892829845279134415845904265749245138769949936176816693084213803000869646762150703689555431597974368729795994137606560116099487332648160481206249617651706137108888906245266352672759347904341765137186768946879129865350748133042305956656843477516340048385740216216188572507599777655939870711223527010427542661731190313523725819072223395623185035261620442862528179807929199525702262554592238408547671677092195954318940507556063693440138094267862933878760975110080163408319068321096220293010388518311437938741982595100235831554509736496477548354465403632876627017056621999080761878635194543183179218302314183886736107958392611858238379550715474703633173681066295227479212260921864860854566845571096386122604852995259319996739882656244198372015133268845578528427202737514863453065755738539808984539032196381027917993757435668395276874669271546204439406193289524082668836707408781921897218913059649847830994184615329029688759189478692631422126382660409499993521300407397951659957732266388066523788629595816235885795967807527077505577676643479093376709706650726674544094860857651494340951330670293729523483736543634518526568423802130014225415522253294928514300780105766833765097398894616235673522020435419546264694834821227099496529274506521557828895851489053011562228341997866210670583175858620857453057349393312250432702846815457686877944203526929235201677144676040805733130583511841101996551417919537190104592727351215288400972904465677711587885227421160044721261547650921270807733101005238194707919010915109820772918413894406700483978659999402313351733033138317531044457081507336614378094241583951567211394254103274661604489620382545629460333129281328008253852303492846680377405825105450573091082619400300654041116050517242753430745615304347462150025217552119362761185740684501354435142307035132752784590664565734000164218909161165482134550122038496871969077182871516573846371697485531365167612928157494997459978814327518491792990411248738071402296268934495792450354093935109773153909687642362798073225121029851852313809249754357669319322381352520248168909313044784189328894575058264010450392359604151605713271362066882658888706523245622335269914759712789047306526253901828686445199909761233422492716592634404932645310812564908525927571906562455123521438695671463176403776862536175422131779403660317100011993959978179757092710852452034113029510622197886002024461027150081617202163821173389770814373086265752294269979671469097776416098307103176916905541966313138895477283889431262894781228942197270731232103781077041266329438857855404529812604253218473038698864057458724076377002190627448963473955632362081407473830129973194346228226209589319106487337951219243025783138717094540671402320951398978506604570232370889030251637283451474315656772646563074099606437289115699172401719706413237950464480415591293135300428648632667720171090080322797798676394132555101062989193669967994462645976013276400050706945304160428645911801926543548574957767894334730825853396812919214892823055891252502010518213071070562047348596694212284757866001452303854813403718184053832026479027019658738504177036800611551884302508384593708197776199189404527496537620305893922837263397018724980251863701459944703647750522721588205616553144486935910936435149854764840025580547710397233473253330652187485111009583897233786328478985299508066822076776318018972262936903129842599915112453514489201583753536132469785649091705833149677874015969474996777829600698172296695888537730808337118340727700905477135948097667425294169626116097919169596116129336384867777676626346569060829340255147281442999513651726274944142733456239810788493590095738824505705219336377665157857356374930221414609246735949593670344778120815270079085761633834816905007785266040046054139698747928129700701667704337313789307531612791966214993386423166733434548897896800858155033045215534898463014746541852684051138457203955962705489152293735218499288526303848944891997089063778316946360682545192689245200528463838940681001680606656996634406161169274414393986430120536672842434208953404159688305510486930964061429127862270311140517654537880066601159088591517917318040360959296489600317801546309118616492211106055666820046670091766447936723779733363669251886044205749617547999571420613400252124035073452659837707354107896818619012756081413493340623769040647554038649026247988362676667627297959863150983862779052019043610046877486864532174241005243845583246683062466049677836852032820113397018638671902989102142248648171055744289821966097362113833142906193795324820469284939006436586209031474927026196007289630355353685928757947044827927745803600049176666170771266840126659546749468869910942952501011762774093349812721650097769638698086762702279099623323403375293846008439851082258681206128591518904458387975194607049870554766354369268668518228095247426798413734966579195045848461693648308579616462431484731513079191351105825833485866916898482276137198224461605219795694461913581106220608775570850127202501520852204798517202435236706580861813725259328658655596934297418635492763302391958687724435384087444403175368560580205860569817588238096274890951697499155824127245208538415557285829134873111138244816586988991313430965268625520727459910324075831396333727071211867776341878634494865786857615648217590915808106098996661697422371423678430571186004433724175285408301516476155210079037719338490723623148019727791090378885891246270012137141957024217302313658231786552685617351090134561335228682140257456136518919263131809954795426378560083728436264696546842782881111896538546730239326015613794584843397395146390594792109616492321056535559609798532305207974864042946945683934642250232550274152855537348453365833946956900730069525059162331921166196586047532984510684788830297288132741684497020873190448801834036336449120497448869895333109908674948415570200014520485243687914456003498681651032738341091024715207185264502495848678193968866727371182144607447621506411381775017889836227150544624892922585708979859385229225261513095013961720925567581828824394816429596430847572313320811576067852152574151394254873969066667009802329910105282220702175234183599880614400416669463676025472070323347572858085973162844108117615744361651483855599543369675837120904967724478959775559189604778192982424469218359312037437120241871380240995775650339395991986817297452455677189351464221692194260872614370395200182100852544127349686090651575307723943512748258518024096653148017075308639730323216983202545155689398071637971760373236480431441595993216828615885304257573718942138989380649720941352754011154370936326532977337706038698502476075017649115335767708414389233362486074407093753895706601539280901878703043753743730991308382428434530271819046140160531202533988267768080750987344328400757396732921003221786367762133542766039728718479143740277188723370067878079244115535405184129315847142305783181622340787912143934932337338837995473568557621517106355639658680344775546850887155154077251634037945729411886407340783261831256140071778811341647778380279626032244713556466938520916680103685071135655604268402835616777847640409043260989516876998308207088343294251537250962027121714829220508255262634127993290473604919652123981839122374018435852585996379304311995384351769179528622886372549852789154466869008900152362961351266422497467673761888980420392107225337163609706410324587181078126635765721841094389168878873220745881755407400487567711800765900794584770055883930902424653256700545186165530450900982632143123054060268783703255878581615770859425630884521306547799247185799057402477461487479285131551177052340505383283980985124481796876589245613080307898935381339063120327040953426338950092241762649494194527460675222213088462282183112319227022513977755294387733789551539435563149351245047328833313610254739103634924748107328109351364846903770852533056936537048801107065599239196193545782858493494055000661031538812410600523691570988454589205062057264779840312006923666396907048127428354497910818658124578592075452636455353379784956995704198658539987356711838138059704526786953931677575124624523487132949912482819698799570178343624175290514293130091306868117273485158205556286892076675931738215756162737472065500190061089985447007561925430634742338593771698639011120575108274910121170787977389933985797181104967911285693383603162039368263184221669582830943981657626471269662421167641862357015928369803432826424532277766102636002635919963615196057746200434362148788400904220420204214181261724899213341896227494338681150213288792577935973036898913701669237800604386474339711641926384448974364564700001585474747187294140851157826309393853013403096278907825029721392468535526832384429518403978398824564421525331386559859992998089058096606653259017009941923979137107411345975213209546212037530719179160840729931186229338597208814695364741301771635306174315177763124529399619891732923633652875232655589173438973924475929700779654574117507990923540825624990367137646025049236955156214434331281621679420763831173284970309036946703896009653789742702619758051367490841707808687165149204063926510813723008029943675473574673903612836771195753445934991214894787836611039711909579485608112170712753377280600007212770253405756684063102491853296814132221580861413469777251512979727909591937058697687906271768009169636956373370251276857872127896869799855533326496365349307174207545216504129870779649375131074391847912896091704939953865236313778555447818526289541825975432298061224572828221966231359114043967056371700253437541970391989641913344451826570243361182926535266520716590491626641601234861252039849504115367862032102514195687944626223598954730180266365490817722588601623266626841077747192076629151303529876510616458425285011994358014904453594621020296442583537110800533688752795641369472799877161745389024313135859503546095906516758819629950488545638034354768033959684510465989491353689459549973241296101311703222582634361194049891408861736990772343072951469430851846529629334606721512595895942882161366970281699814309151197984095738020601834874812796262290198233292579121831312278845804008524817695532563961115943019129186133619029252094143898493860722669400938042840894036679124090064605143693724086927443326458918487399491574353028548879189578260856214722319860667419242683413879657788240084754452040983972117153562021869951530528718297056894228398483065090269299167360585253158634860700077954043362393953701398995368408071593542871156177322150169201764417398815834092037208275856388681919009907299063657441578196120837510863646837652785348202680651121235520257218222831176169158167554477513333803034000452495222352854582588305624214629086546248942457393336384919893808659955090401825355932632050814584422618628991602097781722828353346183182427936588149102084209963845324636791568352043058897354089152204690007606078117975331134598167515557494973336330714646455384500809884717977567945887491697787119055444616532263468957498458428181904143236365521862727175159721674157253351375319970847397835002585493350713881936630331042502814835466617506501785697068087841773154217198416658230199845875329688877301066727247349108654609759455564566048089818521067424835088224989560979681824075621196361693650058121161087112091430635669241348495373735845349881425507204944009145111401180425235702610453455159875441809034371129132409019366989359200251155147680873097910423321205937820877665099314330997711538942479507555652959496328995126401699606103836791734716995326524473382363859368243218025641699101240973889306269794978389880727242415884832886912168367211840751579855524606880485710273755869931853907650616829024305500851467007351314308338448147215712835062880199936718971983778107292865077270392965279935000512803281559809749782820734851509827638991434527027927893494974709026124664300598990720104600302875734239961674984430472360367035472589695204356857266653310550220442541480818968340946513882925207182591995427330878803409854810460276650952806946667016019528713318411108417681160765335234870318853525073643979357611862654796168658493571466154895549593217403170233803504193409314397170380519494795988125882574975073401340540718531713070828406561263757668279023719002662258974655969852593728115749776142971658639217627052368207439006265582121024253335331377062639487167534879594247696857832842213403239482263677841265068194123153514865549497887667773270102932651570310604796240412746617674696825439681543579601977570408224987910008243841333327084149800557128383643162588985725445395158664323220563120281519926894528533598938721739292669756425877577870862600525686010292910557410531928043338797481684237689947591995838313845313220262170196477989013158210725496460345277381090180081899652097902903476158913389099175014164860641605665189044733878485438434344375821307181366437570352586001810865781294254737003144421896066952826247886578526940835826186678599510856003098702311410504367225010764043901642227091408531391767189342398481014851531652700604672871534102002082099816395098571286538370522228124667027840076827872025386320423879581748630573156423578669274473540531591256282737427575824475851100676419478286911064610845558804908595935020289871529946345927400565377807250954137886422043371180628238205653884335103793903140657366155223717270187628983108342900340681112605959635937130424774484156338225525998440237247339922526667414080492866312497983854612596962821490187457708457298947090869373402967611013960385955003063710663386443738551991178784976517599439745910964751668033214081540699586158112489111034301399521305731953024170253713829884596494223539273691063131803485638884544840324486309952323021891417413808078067917558689373120180828130176440002237765848717626793239323440639170138791234959543047035813029242658384859615191068953100468254423842470324020284706406442989502305980725603867789210544677978686840971140337397881099718972617446086546135759899367603362738834406535511481794621634698091178844529686198888508892225064915983768937521235251580229546091409230285742968984141532650019229107665183055904992836513531352112672713883280411089017491215690751773299568279256797138977040057288285891554390692505632765657932637099720115838860730604532215545284556375323885150933596445485639797111018623146038108794430908221533315146139827085500028964229120953949935875291552149036716713610847728293340475010930921492660060605486061058251477355910891537476437155441066750811648363797777053616647520329774763644874241549163063689752070954024403101015881943585384786237636732800535469401287487742092597333493283009365618405520567338215106029100463900171311671967581790526632425234068018566126042943301924423178708198270222403841922267782466946999758850111103832498213078979065185252441929597919918854811145948307280092198346951591772413450760090297648505614836013225394469597348910311785701761918548318970006580360776064371336729197574372939490458143869365686196260199757796798537969187906469827821311634093984148431194957141050415980922190153196479634756127531394911320045674719044872688969325976057357009176443082979247874461792552247471111042403110755927657397062142396544571970292992633451606539049092202291529066528216609651330878183233818720161087251891569443075003279963803003075969763522807351509584364994678158285628036871785519758976054434915153457663324842122064940318401146754466458332131025111552138216122539298749800223861998769219752283605538904012872880808014832216878701376043718014558880201586855794174529512168143162164038795081511587012946421175672284998097111729361072843849468680990449794070711531107725105391646802545620977602257616337631206055016591116428151055534022979968300365873173777867063159175907962754097838562964295851014579291196835109655619058366290726396285258497111939851913314198360524294389007314041860877811472256136154163872265266077670660308001396665686260853947921610110124438332977407515932881427386465717108662575947271171342025826958450727320396267724710824091736687302662106655569540133761605674748332999065429347209675774777615120199864347933464248106999691067020367974168436972342158778000113575044573591191764784287597991536677931714851103376679190599272363947144163734541110721425306942017881655577275899861416235386209092348715748940762658243681831963150099677258493095581435828119843108283860699162538039545138574994350689115554291536632823199927293927610645879888046530698320285274537015991706149061210045792324348027918214832133293370718360729985564251340038645351226878746405013887702628407291978282011894790535744426645871613924846444513607275498600688276242057465899869780254620561283821059454155018145023072910875567540628811586190916760026980255164988191477617899766921001275877840039255623925710648029438818229689901241044982796376976658987831705098596233977005123316102549077884953844353317442310954997302867084977751657831549312232471141083345003775129804991943686198078041682686161482397746001523761999033331320920228240757461985814636562582937971096945655147522562973796348917978304331229229769562784710630684815017400224936997065298656183981169330824962617143770113343908977488278752848266205552150520660041613581732251390275726813924868486997506475101579902465035080075167688606669247228397311956334719053104510566929923155901535822601141743008450056318426796407011772054986023915810100882275609318357705065787988546685531348943524554815044182845635247379524793573013101140611714245562390119837320008467004471698487441781193297509948266839325817760934807627470729262322785966608175526743331230283437770820678459884339718677031939784711727076757682573942334848762814726983884467176444396096192296453771732131449903284022427187408382806862572474850228994504076389495257697068734111754630380970708936759921961006299880903165421424441708176273009658210416382715050774076183016394424659892641218272821080274195738395552105186126816346871367654457743205172226968254570309654633749449603919172263414361238229713544170849161389545012007480053178077899488718313116677733610655551187301146170710777130172052513449875616136923293268430706097880970711228372373544045605760704120452645247884074574397532553314399544764284060812876968180950308015900225655530393275927137713631055295960274654675962621798976157609472174914335036658149131450129925540272821474618900607383589344601356143173059581720630002062589057720101744265221343782769603427494565356909072586298349870838926712850428575583303608781956727468680357224390056199998273877729400123385408697653455573619683432979803446500536764998391317605279936042417496874866436402362678786175541670073894683888152477705953892440211996648183250048971147095840360671076710961983654042692049533949233812821870533303082071311898532537667541669090675736968052964909211691950821056281758307867489376333143762967401405753509727998538849851377318011049728934476612769513970571356804584165655161682876648563499706242515681957049819359191059727974473494819473467385874343060771438024268341120536204831936020661558314179881145636919801599360962537599104847957333965667522405828159857127663555253248659592399451443364543379652263337655876042674079133376530694210977118549221489421556507154930715032490366347072430657617834699013579863185746564681990874984441153219425092295859096318891299633575545235937593309110234975836446404512836683817426929189211277457434015910162774952689373921745205368739735689426274398267643479515463161612513409821990443654296959838924945161941011755488107414999191944966478517539158537945486515586733939696799949823854167155308585491750220965357854275973298661385699347813410611132662051047223304768114471132563243079179534846383352087854386283351654867302650488051099576150786377472628465161133989896344334670072950599114761286839517014783634177586816451505507375764519796388692455036376432012652117786734203179806382466856444019323711256503917141166415507887428872450960874033309023005494109468290867994850998708779869691156915509569214140395488322607681007081111200675778989161454525421763332677217642423606222993203733529591125478944739278420121991033551600012598640595015146493188372156469222994117350859307209891401287675265674707804333214715184684132376761800100121069167863160762333550628642517628821331239170156484950778452466215832372827470466226338104848194377371292638743852485212288486087767815872747479173562196541481866623357946666364211087936028821296763004088742624610161553261882780461357588390868684963767781203852322719276439891314240551554661572087219799669972846705873815240783925888285675171021056190452494179828632061089021372327040792512421697631070480538758394001690824089407744236013854257860523156694220503690794394781897919653797995185182533484592574916474022749425510179230123188876739716409486597802286336448271207396291568690785623103888692557536325036980115775146289066297280267330756360429882172902294090269180226210881541909303252730210685744280235055045317234337753643329479046576025421780204529039388976613483259526295955927002342373621111102605853685588112515045786134065535961645677462003577798113266598434196107439376805144430208237002104176571090593641832051356332876476581973152663633023890271012983759902103770390203220114745844113116219439171867454572613801363048861131535234226404753455260232566253220660929812141776540478805863490947397632536531555914015290828678426548058871916819558096927899959860881856001128480533201967128704952443048620508967607690105549687038286984261449631484452468389481752950774576389452222334328130794285956613876095396573748058523229725621574599196299972422879003131279857522706387608260501046386048717204384072672242550933796835363173220815028923060995749405444558430249778142145579452662350599292511135443761087491379662716305198541314258524620903742620524097380875332838844598963804538330469375547634344073526176103757916356587868039150467983032182384861870897986016322551626605137536225925391234267146376624043552894973521689991201280429489039630771828463758288390945300187432188516757465869391020749030147842922781435250340294169100390863669728868873965599110600426295852300257209096304237431003048589672333652597681212509512114075733888430758291568104575558271423401965183298389375859049700409989815098930651378836972989679761743384749120685556440901262774284434784278874171225519120606335759757196708971588975796365787760950152480848590864345626195910430588743457768635939980277064938046637317722840052860792713206377611678288449005879082826018381561295771462160903151867059763828202277958840327442094897095343009231648303893590474207607176185835473920042829240839392586186719938111743802861897719773630870558070162321444631435050449407493806741477048562789412570221165180905754995031596432422459058719154118183722218951087187720088451529973072517736529090595228899670835104855265637651833643127517522251567241317457568230653294494067854646456106185269216895402334015703875792821418118404389402560317172294950563015533022922959432497272593118928515577821704704944613462654970933349532753412632863385825536225324169044560098333017358670538118108036171469249783663439267328396321335039797348004273438545158860840168764182409662095977990204796006857297375459640829606230325177850030606096314920138041073027018659668864837922373963475008433600553460571196038663793973130553391395266515993341276139305016778420175492622401004405654761504880231627460768941621214739719121611789787438126853319809133036668271382938939113263740682104410210455556502780815097667439543588940243607260727353089389843592646838378787717991066581174868076778174763097896569847470437194474654892730307809210452395961973473766451807273053171638113481199877117285481867967134943246940947768405190818736944818021574588171101032028071661865048166964621834567666615985112427557076041597678822510108954049888695584925479422273893778884294109313928776910970296365389317647631826088611298987515564885719953423303331585381776542551016873636552056344307715804158454116694018477463084320581818613363547765245976642005093789333609182421335250153501430531118752148129425861864091940957796451527421652998752486286867186608922092882735867632920188886779063857190983156177988500660343357572660521114689342051088330871263969502659287847826155841396274710267870046410086740316376493388273862693757527421174352516981378512622178229254421395326971442015635007592267380457205828237451403280960265184731398550261755829866098281417162133071003493120922243473733155151358836483273162189491893464191471567327187968772441337278995883176453630284100264651664470554116437687622615159722559868493782996767404065684393127157041746856101292806020483858304870146561868470686012159614932549824373183812304650856270676403414772469346578504779062494527492356749051605095060006881058233847875848218030800835780601727195856540597095265091456313881814125120946161471386804666698632499999457305987448449282406544796648384258449422800040291503581244794391975405013109089757155858915452531327374656149554007875591726090144172874981276464582258259541220938509269993252558032427416970694010823547937546247622824297945051994477581175641842460273404080363138215859207679437561316016598114905413096436766162685838642194822863934756146370533048219506550744165116141060694581101776657863258164861244435434827385498373690233313976660438982792300094269961300838113923413788038129824575826009934019570685189548086462876306814086769000142618168463585315248265158117915074874428751822489226221299645717534876878593699365988046913944508545569616209732905196803644684002608156340913654500918527337325858748909826956920171810196183874305813966108301382229959857092729560708035944476628028677227192011778319342593047973847383593217330142755758721929727819758209235805322679541442932081444549931726902289732523635667198887535571510142212110280160846116282975022620833799867765981447162549777552586753988203209466301152230814579724937931440979935288145194277541556798805995267859824997604982008804774152468542161538993031740192083562672150998381356178675192102300661960062219364525447723267098266576256093143902251429418785892878901104114586869272187773156087742073314039625237499709824013845084123645826099770632798925782216778263978113241270482634273498364365725283772399272990797079780425080319114128609295457323532307720082564537607112929523509358780744729876783283033479424469751809479848205997143298793109270836064884455188057958641533304565217806039279809211117096665695662538910037506704858135917878916969161548793857085801295977425742164126243832477910110623070669440595393655484985431919092475345672592483124497231415507740365852027402375658376648309336991112738442982475360106197439765117680680535588118965642132979560110349881518521746858796141347749799632946659983442303610828744796969077386404387135160399956473671586646032741633659339608153627885318103857969143432462875853497260086044809066500467283442873364628209513258288143069759184550859387920976812928447921158117647547945197991866928526674477088436710576318671510808660806876653660826838156932366633040059374629281882613805577440173329683432336207596089255634481332935312834049984492400736244474932961395038004513482023431703194421157696256269445859029726715021645819052795464550154219207165564031920258989499374086923426056249471420509919765364315748266086404305768911003926971590842237957124100213767672402079916989923961439458664632744455897658314246991604570382660684066716587823042109173668579736058946177145219234933983094583881990539310857699269076430121858487481508228671934676340385302327040103119869600579830064934041774772663274815978866895279626319340816668492674720215330799869033324687995327342626677977110678515826997557471364886846728331822006187651895347166904296486889622854465564639177002279986070964946017861226109635481177632002858791761917218085283787018704566376437083098246351612319308682737858493103686567440668288076472555174025009051939327898834341458386854565887501499486146258007319530838797156365821460278101225935163188400421440293085694234162105490246135647491447158362024519582652437597574627683130510445870232476094160175871717459691903628194510130271327007440348132948226033914726144632503214994128947803802291730146177085691507219315037292828109080159461593783537021271663337947204379141441553370873565146271776943242031705245996829089271274558698975417877914618086124072152465105145760228868784149893718752244308145863098720760539168756058875756905070394019439471262881677798153696372445032464362964594736259593914873279159895573434710945685597991635214308799962366527838815865213872661012990892023311092650653323425549011803926337901482518475027927143358190685954682483643285674046034572514864768465150754969430599803540416998024902183855079297888919782071135631606355625190686679886788069373373599309349631168902991163073592134751920519645115220951543675234556875364925766816390117496179100887515592862354176016631930748900930865439637304942266219013992663419402250606718205283114852324722260588034245008721554260962273970349763621953790306087615021953755791545409082502552524707506751944673424122986742729439181286987969263452076324967947128505126407774551124346287237361331243411690893544065716307656594047512442643991026342831928581444274301946662841927686255588021092356592740887397950475350158019639990040842259582630745518892300824487777787169273185081602411635269257896637276965455995886660293339172708575424357240705204187684698180503576034171509835553764706495276542411553473016504168759131873896249847751404643915607613376002018873764646756586060352395112550211982668402132675888569515393700784878228947383799203565976112856285772219054646657977115658220948192605910633443032746617485063235069710345736175889241420004630761594397155115941595301773964809999472152062623355032937304574467913592548232293298365630370573560002346820187661159565791418575069047424628649112152808556640079843766051294419219556816242118999359359398515796395034572287021094155911161477153853306967456614423639632644704105615060257956953775573724742219496472276306726104722616079039784734389255588889772076505657346628764631436472850263841314794037685784163197080805686877672940055340917401947128723058530145007598181635812186262105155624436018931101112794856315467567825875650295938762050603085131904922004869073738099090286984969658214578801903134050033800957024299646645286803700444601689431109947466255956351902609546534288892569083552698959029917519848695618087702670704700457514116882281851808079177215555555282213955106895746983279580641169557649561491947700570659171142827992027512771236475825697506104073536975717395895407994144171382192365697596806416996516104978179315026615593663493230684189313217908146648974475738522700788931600460021841657871372078857436746081490112946356534824816696176650502793715635750186308472194620430432192287505531899411447721000140316068119760552784395682680816654165500533527755332706960496249860381568853087471348375305782710265811807302709174014623503614643549506626516816682143062041907941712841427201837722086770189640314331578221572323630918176856962727139178557362078473126935621511822314842886690134304599224794791932683623157844434780987760825347995057194483874947700265874557659501100445120579891205809280124834765568220198536895328410336852637464106128071591840380952723247137625525870510813386906626668285665541451846807665039891302093048769315999453736920168888776750074829332217461986074635554423403353915177403608167104620326597239106111116061939264318293553146807406193717424552509771911493057524735504678225265499880893803462159994112298079680659522473098701649129182451567566560904237227798544615518766351330481383630804634007319283371211285868039697853464812620260897172437051121848162385365587850706664110756404079471960311513475402586549240195384495742984139548579654565263082934595353909213779805277751250052155383444530713558601836414145675581888306479506119146854552602882864109038351876175141889261997764337924054511504676192010726827358888705323094244767494600220121501318596141004298283407602807842565997028733529106835584783487463732264386268511202082962718113484084079059424774034738989260331444875280335777937843248375847743070532753632259638862820656969873690922593523505629974419181597561780452144841705816591806531182861730619681287272187560739403224545964894957857594057635812962450056681782087165644157032533219042449850301307293694021473907205881689664211449752226099184376177185104599072978539165278283875369512422322233237856091973836183962149594305440573721061690698994396564084917388091153418780465740432657480783610389971339362147523895431711448672673289631715990687724199015485790752619787593567463341898013097219046795162978937570566907264634724646854149171753085910946265814727099919026571995365691872027533164105559239268604482998314189965582635631148371803234981580333771100897095035309785343252647254578343565627586948031040743899143788452100215466379439205737975513496649455191381564223418157041728563156232458084380354683235794773834594223274504381999146280240069652007559599893430696219661340208143480228696541780010124792590249098622246818553073915419759925806066324789579311635063111928199907782191203745119154548297062690720213607273456640823178126809139878992585747593134968527863911095082865184521889738640367203911419378995718108335818007902050514573949052082970180196923074350606476728352653251577330743945246677706006293330603998332509775298755618288685283915811703800792685961730424642430014065839751708063477602100021654045256726561860998020788615472945594483946171794172507759475569153524716936173024283074962146302991486127087846876051489709264849291991929277073219391679618902474083185279935310415807954015238115123465832428141317643804498338431575579598366891715069886264457344999868296775420096167836163938029707509712660306391911689832306753666527133504401575849125259278769026088877441708343888515723431957749526333378131111966410017083892113589605076559015604965563800171798570145561358638152348774767723428970007217071428267952207218199195623935622837836066343891704761304284231139254162306492743883222092520225708705542949261455044168913108894104575812537500802303837639235008575141621348229463461170699254723791094352036435091474256855833430273645465309667309386220859492071139032709652021259389533896235522043877528944699083136195326280969974923436527697218584709736375653069739332910647520971828921445283790042605425821283916516685777754141880768509850667980874606472612920484711442166384766307963839784976827523838077580277553472803269621051113634694022396442103331159267019475289816814695383202224077129926822083260595934458097292279819043950423191495099853211358528556983586759986646995885804649339041399483283433838887204689187442187456657779921317445460412210973764891837985662482044787868211007884940371586704408211826135411288833698590828804962186254943842627796005889321871165892645867836406483100606696622546105113866608081193595754570079143869379449677493084815006951226235035953983306977954860668037845671145781000049281990353428024430330591008104768181441474156203173001386593827506742899050414714611208975644062678991753556601465171621943060096038969462145477772484675357863748346761275196182887252125828349338102775482529242453219002321363954705590228012489034290402546657843566159468024320392297254008047758097238007752876917494089893919533028127234682073754658600927366443216134763883025535389747140267145492085766820659905881840577720017019032512892344006561137104973779157793596076388436302947438200087940002707707370938209698567798324794304160249357551316681063551445093442386073159542002337116316964183362649279952726986489854463466246564523954208203808403091579821193809693875360205072151164613041341307814914194803260699178897060987021997029516429391312928094079573251732146788470084773716738025871979430127658314027966430879065153365452614517467668796736103244600586054226826429269397948269643695329411426777958882915497734636284932686702134796162445516053200092539567115028674256443944563914825438225484400435820641205488592407950859252271313446285826797113075032118735168564254946442743054600642249591270681515178680572127517766000343073933854118399203068670063223565944697550136260259271750212235441708319746185220801218367267265727365198839331153976300996183712928558660613618126169385438110531619477183415591767531436159748177895196057521279497964857942568986459991970221059191792934841326455158539070840317969456411326563329016559796303932760906272960588028662243064795256396135563765469298717721514169536333662983655149666542652925684306570675735570154689614857461280853739997957191711831599485553162320916851441814358820207569025035663886247183878462779500562387809732005858826171023439828203376783232615755843237572605814020743144781036446372760232052529107797600124198809488215489372142000467989373140327592570296051268137989906923886253520300841642493603169962030336092182164973778141474588886567745087912909094565761768865389268672229498112492805304077738472679853444642212880014433973221507264658485786238080412461456311615470553215564312984564154847185698663151428585680700978560456059424733026186378528719465613718016872198187319406873152968460218192253712521381767066988936391511042865333189178739720886287258880600027622290707286691664772332426779288379100977357796272328465607318797588784855671018184779663219541273062817595746517965353501974822530192353976581506981187061629896967594090661133397234838062592447692754043301818606605070712956256151091002698698814643709098092630365523762993519208921047570592592903578640324278460343149012216813837308143803747753430516074021116344735989529433131390842549095728855610733184486290740931631519096472804496899928902046796101430920619027309005194816121978640294683882103028065396223477207004833912446029609290074098521867848222111366518919906290296317494901885391312475034957255925172222180204882554639743543600042326867332009157527591480251945963763015556619112418851198056733085528045370510794492452918514319569585003766135976086666528747725439617605292795865144153593159447254278538340630366776477920050646556434643789853286601664313599696912893952768508490709660105090646960571774382988001524229843195926615038218607221631547448930295487745057742639857594220477852449693445319533095953594107434659856495826372749382517421775550131403478952156505558068560376309876478205550981673921917376129071944018393417627380695433352510490215648512994970018181698972774177270081917636219090660560228746777072622797026347323530333817376297716441171409299043155157828392620141314054522843540059294683349241426405071776485219078947709185715170983694077945087621144187540121454028153553445511996229731258770247786946949642886615221618613659316358886142228854713634637047914413029926145393457209342329442130203051737652721142326173580463822767200401166430495320175750407273139708279772456349284268643033302536341394965258597917393800276589951867096683716177499763156651176060741991922596526655024068450564592180300508586373158113440511384356612776886588802886662459314770700427997541201450755255188943984803477030525028055000140815946868181651846635501398871038150541597761743476966509553765118598967653402936717054729789858745436949362284207448166407986265914644099216704027860640141545078824938209471422070944478520418801527091981891135485383236478182284671987002086739961000793489579727163883089276016688402379084412046172495151659602601609172773462306045897061494351330667400146849349146403533731195587171882767465195669573077884747643024778371637033499811041816130719011416469657032804353666343917193481149485376888181423826173677154880464282404459734186105830200630588442318682750936363451337376861408687093525922173406151123819820975782705120335656711239644336534166830623427916245264046353687923321340398418618304773764813021012305776301895206851466575977145318508344016515734077108638163721482652346585478117973160855661304974959963393300111320357618432023711099012234500080364078790949426117507885745972875587305217978019813786459027334623973810719531689543865451907517810816994752939003763504320932531261069323347308878169977382546232700543131578550082000860428631641403715258117333684664710949324435294181674349505272225303270493591370648551118475514588065097709661974651216263981346799894508118547266157007600029128932249809568349978672384920315504544080010276333155889200993176251771826100622523141221609877277063516123938234864626706761380407070686272565334287659523848387223853850478988084521138392748103262170080509892518259633051762459233062639571131857744078315009331310669172656619952316383735353711793725875099940386681911723047465145392388909234115308041232056893692422036571185679477074840352511050688454948305098885251703755913457887291934823052144864371150091187714869975502714233138640856732582283973487781088813550790046691414127182203963832953648225127402179330838874896645400163146166682485967134983427338229860109029718560498882548990346884572394762800761120454032982970759675433597869215851105100065226221483746475342783938748150559661144399608463551794332563654192623937815894886505918318867659708306108953092088320371576426376356216506676093254733488048127784639179364985026188840206369648919939560115689673817539455185237150509372543220735883254172629802935038304791649563920364643890113968418386739609797954900537580541821090547429003478345792467792604911372082882915062833556802468599031224327340160875781722007772113741741394812702159700009193594980259406704600053359119032958120819516810843114139324264463103261893464882956906013592895580918439529977170651174786779462108695075546941957074316833380936980488789689415218651757808444878516577194657677060793422684536105850108447425968855700832286892730490938632168599551494550868661070127483361420636153316206214401298687054963609865594900092552461494233154544082731720774176319043977799808608369097902447243305678835395601797514184580021470578426839157729622015717950729223685715898690678138752834931988279905533550174200423708248979891613660499075709828330693142139813307648696027995942463442076841820745270616778019524564057253010681472940110867778582682408526520252558347650648659099953353442767715933938701651669457912494457506923449755190100820619231290254303653704518946179339742630538336090625061096988691010141640561848928464151786594187680900565058176709006721855016500649754878313088301021009972084103016017136516914543283781783493920554834687780541127553264983000535577272446074571453933833758749927054031406763637848825765545032207185547106524439104780392220510115747457525888137624961777316052958771988100198456342003329825128169232354427696713408975566896985517658725851459050190054412029810276754248894112739839509763659261189229794338492972956797002616165595185020992219039090483616120378398768358750449387356786520998483104466445375387155142582412606324259953953002366118967467354811729412233234743888199397126183428216217305350211957957466224109482982855688592927341330806300614963049095008701485796078553812091518588133856561587968748118616393820188974697977224141713370253842133705564271665366775389625888636231614274170873694915310723198921411473656879910115116864495932098776506508839942746368592471538566958704540573531699583054930185737355855021687135558686436527108920655671309933424036842432943498033828624266798606185403406751001739681660110317385655177969638084205696965268710632377045764172512309225169623029921955376278984938434941530270843485552031729990187257590936818083501899489381490556322007566414534182290649934987707829853794735302351949105040107396655670238975955648160552447137021855265440530986068208094195868482374817053816091542754143060199661346519836906937473770383110487007774537467193585227542306209110248970173647001686248518601622545824361824672108837668671996029407465412235043255848841479006592499137138950988041546267789457984561587565932958534497942236705138965963182754755114121481194622659356375082929089598511675677036677800177371352225097222038143977652628516639595470442060569595591624382383242830326278716680154938627459402628399765267435740654561116263560166650737003343315943102911535172573741379334499341583931397611134746969062376007254038007417957184108250786248882641353398456201717506792815048438780771110993390698253116337707971102257752327365437554893580178114821166933447527919103885104974237443996924000230948639169691658309660497692989945743208916564826949279499435349177443161199278758925369267340788987343521034358553314083112181242265983699580567771679495161386895988772128956570869303886482054116704431159984216514179346223652672953834189325808562856026055560159772686621252230324519037011842515349143260790465476068968952238110238642146381831877366321648371378198861867586489878581275054326004234074937859172084484985806542360043812940560898821571858902114093685285076844097734952457966430347892039115232948062804508422235201348543888269335200492868468412897280725759419762232308868059086507851261534905405595530869592695681720149393370587416575287549814552441651346237393045481939911396876259167928754741017035130171113285583071390093267687853479678143706501598150618225618802305940345982826800625179698884960251428751259171730481832741777628447070269027583022189044674232699608681248130914631818221192793137308082073016959513690645872915264445786969349531435467683203969193733352194407939348996171115790879622826861144355887245966415251664881229516502958666743431440587904080699832018191329255527917009294456285520607991971243750902955827462749144882000617692124899567367790603926214720094823580975595378649034742744637934684501600487264308057205910593565291646461515072300816839193937684250021714904013736692370503686409636928651215995355260375394407372771028228980027868995446300900353618344696034163162637578559689205839553476440286677191560320655831910648585545891503310666472649863528147540216276520381454358244041289084562721092397299001682417537785895551961872874554830075728782322338960940127733102224319450000838630657102874686799180658570090351140181598172295955805487310088736789269617303855682621651392553524493761865350505702383215665320096743740975175244982471459502025492549606577553181535156663144193210855762767486353455237715711568877278855367566634483864403216633628345439380989363767696093765329252672935381698595844081866813828135403214047640124625797286638879547803170347815293545419705634839462603758008258131022939015460238438415446201060676950554443368445386584423290405242140418426746124284645049637011416835842293685246953093796101346724984729863543609929525219946414188756468402779941934171799806120669489013254403532680516329295059678439933516433923336747489848856309220003928435174619369538775856493341303595597145740720978782635152712386579960414741114289214794001500386204710101240522504523068100698950148103456388411905035425834992029412293662057626029627770931055358941874142037371520452098350238804147922178910052246356977129637784470394636640779045509741203723995806055286279416878237578367695782818799353030254447224590177170812807910956946131074380735212746033423588886606270170778196443065273727483028459777085243850674650438588240253815582969857347646575971760442031394987369108215948647377514584521546061648084636121796612764668353577867697432091559809095415972423799779699649237541066201709913043093507750398170358626753037371792826984847704317252668229256490765124572251009375825416229571879905156709886549462861269128491092612270591582386537442419562911912804170299568126423333462983561954481958953351640596114967571025133245177265910990040896488376397123211467558636513270103475897931593520282366656658899598282996300528120445184817171478173240790974113672858588098973069981914914665573796134154341647000682851324818966646918019848096590139673602041856977818052421899523670332998915871106716238443933735330980437613743110179499180940395827158491779654795363106132182659545739070316898901041457883210878329974792742893409187484851324394150543814353305571826574757963712211087869409792136203828487110072277351427721777812309719154302916363872499348888504573201958271597300022549481204045468128462584415622889070943981429456725692720710555448375077853079616634484714642556875403094442191230817763279030250619495011373848580282231325003853396493473249716158897415322061067687166067408164137271027884895322415815982267114404488774727725439809999940455233926711697408279250497999213843537505653472662846879598931397575100233806489620466886819782162314614472610082638354066001359637505159431374917381678283260805963794413177746887906285711610631892447533274250437530290755312586813534313904475902616867809159796384404913551818174071586797309864529083780689001421982289089322144509191687444920205614849363706699800266643637500089303479195824321365729131447175583688770495852447718312757304975912545235388390809059376775700312478863843678130775832579702015496679349741517429446157848793455924550072515441428689921493109373459049891650395045079079373375686663427597238565678502646510818134929423698907532368782257024866534205245340245352452047975171797792461747921111780095311313287534957639006057565562490247129682698453214568341554951075506466510443764853127189467606557152499750728831704537620987260148260904676658672668606802334701429112472877673186511123740880026391395549275511420205389329140600710028758429026313648564275208878556551008916703010489966081094296738389209465518939900298969697516367254483644793292135558928417870411306840477954049743184805396358934308878200284174128961912236635819613159347075044119576181596726970182136498883502624559808782770481201716303722923543400862065471452859322961404905816639155985470466557919663372776695983462945800405230963497429160593223337291588024723432340536493924330875438402979458255616169053598805150075936611013271501007855589882710700926429679655597459227728346747678141249905305757776420204469802004974175894790489030102772458756777781219569138565126257479756967380886613225644196997177889508460200888618945361046277734158376611781908634444371992020400543850074366458568669505463376429219541871728746304314548511353168529393553654004307884325656453272568948670015728300468923811958301567247933230207091464188764325668509423552986550317909499502973891572575963393567619776652011262291340230600105487959523230782067241508443442083192589217701592910039787943354842277574842372977885270013895910510289252456566933461968456613032841669576317504586189235795050847359765221128648084745834838796289056075872127029253341624404078993165306974486862180271126407749648099301166066292777757173052682346356760800283624130235314483478374566529344711427210461493801186893026221044896839139107102125518521006071574707450619108975558709719693065373234239900284403040192449883878975470617336260853138542804113391957485949828718706160049037085905791616514481862421600537343156957389591214250817012783619460515968312640911615997426597183492238389985548642976420719575070353232202214521109225004228255800979948045525760009731580146858679108179388083136878432426116479091928332366204184155319992729796885584507737801773613697859897645683230934052575418902759464538857635396627087685909398557615603203211247949418007281588532286664988460202852762007961846255348994942526088477121571164544164595399761206301635992022418367811558160322659785328286327651141208122824023001195776206788080633271950163503148251335855074555589668095575606439725805830267787033090596945097743570763572402185710099762341167229556190483854692460521159874650042159410212988175585997411464455032017951993977800177618903395008616318519803361731462647681820611867248980602431644129938935985608766724099540719673194789018157106390748854665714629607789698594518330995624089841741627140724220062452918363564133114397785365139834767693310583083187140354203159836449887725611244458009857286421173262026596293483425652323944787589022325587670332824828209208231662514913862657292207897753088192678019161267384682720603391738534262261609618224336686532750954468553285708853011468505114017593152994631675236705323007270313842534773736590503359619681819390969818479361331020054183737141631445580166327757316362995607668590031260705253047672326670687560049925039777017450061833409586287332383373992507748484327640236028092768520127010056479096421227576850392414606052864702549979933203456066736787629364945359388005713361002872833021798423392456358886163517536242142488006624239851028992299961280651740077905185593740722881192053839170588457697081622893847361437483309728184612320546413032066508267749728080185827801184423861577994263544190119729676213638546652816053377233852407013082241981025852773224381169487022791120683448885717631793891453474540674185008366839142302451660306491817448140214777649778501085138534955539287904333114152652052211213673019894920985686309092970901379287507666289791043808003503458709946577089636525135603513490293944969675352840649895403970456759438418899805453872496817889773312001537277879560614535246153526132872893334558526316326503101018330656506458226844440400439961073427056906339466984449460470946179035212348380520755192003191717682301839829417615883427792267659472433731993281525449990281379606517777509604098201309555636294551065195504093775365205886245811918443944024678344732372407209684783858917145407312086579688113841500728491551291784714193188517549906131985830172374611617922525454612547192282685918777383299952465551334635929571549492747109737817648339101066887964237316166296847064255183071027390803052176145080131954841749322942769188354632597579752802353575129795457227208703652560071307688470750434297169916504998583986623854708459735152718283525769800594217604501847211888646248779791674476141521871828841508803666316877080594761379961546106112847767438906163797742255906667124949818721981258757328679974620891863403069307332595037390413708658348823463945802066070604289035450617400528549219115244779411647871600674867742770929087669015482720518224017287576678873859206014271169216226171940071609288568117787122969442779235509968867121824647843857557977927255286005279029205562451666314610032395791030074935904397476214495853087554800785177067302655689107564395718005052014421332580310453422908286122047662468099940676424222799332347457710387946553387874983256659263425766722830301899060617975089815446515552180866336657516704044986566627457729613273665592303033170187433523334247812789257922966730194515933258581670080650533036090219307842406104205415213374327632556760951979595732959734260954728233882613700051194685388657018339562416500907246319454229496344534797019993571205833789401765017794356172886050662665553741288238404087962187439626189825423777698800488161204095877520904317484776872072374647888186483750763893997079983128591433337830508588114700971405053173941645078361575255746408925538236502232186040115379113938089077590472952285825242910026064379458345205116187676991397814660831042075495822097009857611593635951883718695030812822039362647440315112473764335281403480181540214530690615567491941924363471927621461762017340184523369371221379651666908325581716352590882743702922281077078335750772670712867713696400867625881123874443691708886454544374202596215839219285794100631098394564596924570580125820160457305165013738275792872801305914444003314035823505126319447020635699596081388780005278434133134099699274595301126768737386944264169526920950891113843147282321264977064956885065380726629753061023167546914156198463233453087942568398535446753340434730289656368044734024602942936465969099227366582059671886548953438654866268903772771148984798860920741951366997771049537231430972979017940575873371138029524536112192613710527263756672931290328314524999846549706237777586229704709408615739976258988816685878515078644156798825996405434561704811121552691829709315309463137780162609070068131370061547457660130893975347157734673865494993178190649384864933462384126787934979362495843772874511233467647775076987451683995167924297257052941941383374332158664114537958800728571114583841652015971878201360667208962108430577967664127484417901703830493658967029582467443400508848658608441687754525327170204812258450624083379223696410559362688766840913435627991875035394062052049264043666627589423070694867758799773357095442093296934073775160852923043205178483803841906889828074482476876549079529154189469750007225060501484477358098515586039071070124083138940343999685292024964167803591184293236460116244926240074594061684087136857014908093857742721028372123155076531032317205499732622034960025530901422775646112770867229732126828185278927533982135663080658847716254098720407633926540847035845039614138981153561817175193315186745133950262842886068322265718188692832285391744548591094463648124313036208897295991221305936530533962890246161824965158284491247096634575369207773380083746025463848418077299893815617428964874957868057333440604530743693123811391743267046210099207067947929381001265752050676917773463947956965147386111318789932587546828834595600588365584253361811698942763989949389942171436462958414595450390500566149192236017339646827087048275268016270544657373649970472582081384308959468517231787048084555819348149320619824057855242052249491954515800975399867427772765943330719283478111943455747922505855274956942256636687007411573739266937873908187802731548179527573308357213529533412674768768959014227040816761428723384251150632822176021518225894168842300147904724738045532934578032232293047447624547876456086476146805526834665977687872535731461511857512931714434853886559197235793844292105854506118689164076881632690858145095801290424995925622500095391440343177581545820729098548951462005918477123659133098385267375309160294555664544574292148149193658280640326400032059927289631557281049676072825365008308828241446827524299241659791100590671191932638619627896895582256348784321775468545399741771118936668531093526986143620897536520021333519051988614079525594562591990481982226869920904181433978862315678134617469161740099327271420688870260584605641558941381372571130455238248054882667169244974571676136538191512944703071699842950326925375632296749849014173388802213047451793196635336790910250910764529578336726317640040607559096996793116842973545875792989976127064300396418429049799482236980298899773824240912477094016519202564044821674389580984841725695653862229440716610676598435940954103800201693453854129441838020908947231791521372068798987906976741277913245926661348964544929524320739048954654158549673892612356166202418584516382808551641887161194828476424269889492104958029284262261499072464335901294720895380806746496309403836261884228978682055074490212747436035758289635137970047881125829136416214202746742692384704181786421022038843318894942434701512842670188313070823948622078491381329153029013281638676048997570520524039450925688954960702285092467023603158102856582564382686049814692915380835389763584191296255738636529223309250130456094995041655324754834825447555439982007955584587960903626000763971612619243433938068737582966373746541790730584698427485020585115895940602697272868623974031391034736716062448153260200092682809260343875961892901353089178917518606225787665969169749281905646008127821809733485276287454093146957214078020423371576850180432150836528851442142636684853728740080125253487461591083307302873727805670317713531321518916086167964646728213910805991247198828424418728482009457186146670505518292404197216827451980182035520425185130849094242804133482183894762213404843481739867009029578080721170724009654732870582217187392287824230380845005461922203840991948728298204912646615633159006288550421292264070889201627931301805619057410562899806835877745557205374181901582781556967530877372426633610365672214351879041082983732083522243182235477929502359382207004040441356447487206568021018274820299580778955286777656093553369572964114336745621381592130817558165103246514615679186493979252973010405406606857750865172968596201430355975535105272784872946903616418107296670965133301664929135110462109065275761630146127582368685945461837735773263631176781503395992322727252823133037462326195859403026456505528484873478707197836828837327715255188083448486170690711107684881664539436081148491434772155875014990190962600532379196213142368355466988811114420729750176377293845737095916518165374138989336422739258205509396623098755582481586402243607622823168505148467879344101822351264852047870957376899821359153773299407369188523103645742321407424994000520386023752134739475755060841727313196678109298997109273487318778781518914399007064480986485370506434671726199910669491948299737382461479253389589492329935966452096289570001342389273899005038566013847838844101010833381732638168317478510081927056588439035711893565360056057767763896108256761132437407940335616286726443299894462447179468606688322651155405383045409120032600346358267982878720960970607521855400524312414789624778013997614132675823967621683199253541371926331944631240685955415962778365792871231109240826305771652819922072369272726381902132450769623712849400117382895187625969741675905860836482119617353108717925379653527777098895866771853967649237771951115688183895214492643145005705750507036824609650642171916714600048091971929318596092748955716562467695357306896236941249424342299549545702848451745025527782585279000403696851611088233115952498335798315708318882875971095282484853532597180948961487048106705465869552734375214425983551330931617320620489253322091864040941472166025837787871022274545265758710190009197411323627688835676088614743082689129619682406061118096875939393957051895764295406808945946000893929274640930820016220245062695560374606248628605978503780354794941582677440167680291017532064962591935128688361054725002597769825070442477039683035403354149102071398026595329258858022946680773230964344950461210901190850672782631697294932383077790722376771761311499750503922536262751001863234519694902155248199687274222754785891914837189732991121344657608153958559843992900100619244929840916128173037228279269956629418942247992125194962122864567461631094267289831845633223699888042650979830701556960623032164952045173564146367414095228002247506000781950405748309298676027785637463245477975538745767705678579008705955505897085236307853852280806550130702558406549599919014021455676251691570651299757401086075950362999664696528310381563642733135028347463614353362592339457431290025395501222296250854998475110807214983163851643293056221661136203766764168473978400346148475882793916056548914433355805016863412077441097886217951954835167753993629176301136162507423575705514996936035046007154858079015156679455012665320830415907036745645102781861984559353777585911994738777429921954768659151481287635861529070478080363399268076003976117949737390475529245926007458405468488503471577853783363185542226936839488034441021609394760064142453910819221673481055399948883938925384370623023562198822971676634415437309043035146124843448536031020305103991321977859472820447234394459635252190356278652731780012919749075235213949268515348045701307429153170832910646500465385506097461219326867551969424639905456030511839197999683495377068722120647497258489071235330603787970375629331878221369919180733543996189476684593983096467196011164801404971309995380794843028596354890941396746610630776548469622779448148688432151975490704472705455107900186632016044882265494660043554896078469221526420755234296172056523354978858909364004360384594383594671136462190412086184412259087730574848320939209164980122089564918945695121276190895671384907087735979124241714421941190835008921163881531823943951968688405265406537750621786338137658381334143453942863805957626720056549537576424928652116757442641831934729335123472346904463944261888323651474434520470251518823025722292459805494492934811336448043905650240054989451954042904500725356111530864758795498708885287041548755678021025277597129286509348933131303886293916638335753081678497389912966273184974373886064180974770177812693486418556001601981539958094336020291130035974879079998786277823520945902722050880137093556495317222285640696055062556615309421541301193137562630983587965909971324155095454587353369002231454562869209731305971053871547878534897465806646805795679474655754735900730537190304454873763002002901806576254619372098442125290308024367508653688331563264814723568032982923948162629712272331957598147926143556189558424353574217516710656027259728025258805839503113719437431557566208946015390980040442822561855331277537676407083172432671856962599624728701969475649260929080910051030179025980735845553362555804199629204686565778096592625511923912607845058406475911058873240882028400260193682156403042954513449750934564956419444388193784727766874102805517227977821283760853445604419805512753053653991525470358907615688803836787256802237311038725263259794824705313689769015755492152545328490111167891458749209373602344401772354812902050487539944040582797461483066327747132243436974952309297950416809868554983049765775351785211406864052498572937048277020903732670123520015016541566377091802319092730930524438453784610911578377446787642389402492198003717574475009686021338154909663678026113914974215597496845613688426001132655529244681528082040610756258410097250605830934766634219345637154086558447393822920615856857647728258489471936923913518218801071923354484116198819511008007113044943221405348931652951779976470526115136488068618273217596113958744764390715327806033802885602274772405190996505149905294387468171608596261047544276268157937616963649914133902634340080544155390186359822311557210275112641059273593677944068708252239323361304173944217017219559665414262880774579622135758650857446190531684690596570327660616758548896500443056181716025782969996754921030285029552226441152073884739302944987995080578109468059319186202572447705734199006789339870646781432827979805636162010710901439768599569449039674778022442076361234757146281612949580565725862334249321198839736092231514575321353058882689202167405757996452926197365708809819851505751037738447002198347450317430214621440393182356438202905198980917141547895816337302417080245561401936797871733264451483718216388517415228371579225113137864618196523997206524338508283476774978972793327535411231891132635286882378368410710925090525547369357522431728838011760244472402673304543692116754886839326890461691528698000275292934822366738743087468336267966366302716280667879496844848039471876577552515663064860446083623015021558180345987743872545635953567265975167866999045819779239729793283812059458474459640115128251105537518904707762093706046577145584150232424042467409317019048352327645089040473937316161250911066828405474976278161352276610875806484017110923392400733869716110955651678467747851294272107377109317850842055368907473169307156661669454308303886632248440843995031001877313087506824582864710893015926340136270958788493559712911163041693438312848030833661996405883128230147534767333840368480750284821465164107911096084827935546280200867453408210190370695029073359081336853719857001040627443292720427675709575579886907835748450533444008098004773768307466571669242143280098103697115348977628562657929154179138668054527427553053606745814308339170032884129889267132803097464091160142690947893758475881837859520491964567960721255034030874839097755611309145350520350606412900000916921014249922804206132413609947725996948981550467401899460221777409004415906656880098457576565543653515119092578493031991087016306251435964218883622237479667693184564790415408650442867458274691427719786290594100788431491113969731898961054744465246443689294852860459141557147581370677214118541414745364638238015269064540681815205453221408203202491639848764352208072226417667429640073490834473574215612767176493415163473440988362008718031777538197637607856684598099150551315513626020163411362211826048165461678290647138774444720227397466993602288034968024861971279777712215057195917025316153886292959971950073167019060147070861490615980754100604671249359263669994744366341992902693282815075659706620446492390111737903503917873605977922325660840000910554816781169049347196014157588079336713757237217050137845019160115234834227803500424206776931967712076660913602970914213560875207916583576141543038655551428079514283741985928133614185682868839293327033528966651666330851732817997124397904906410278971186080835083812041179936556305532240769482877344663645039228412175496905527145220316867847190749876642827010738172609753419010412919742070286109042442438883713158566063725520588247776796167299397488888725394143620148833488003091555360667748692753336890466244315054548329899391580258428387498789118278906120187604053203633442162524405909135704539398316258980030851271081962128467928419812846557433029520700904749800722507213249999647749924292103021614918969135435705987605014923529789124041283762887258462070762677523835120875777656898791027286327962974253207676048537440881601291771817364815763165844758492136866599706387355062615665075692552177484417154606501238209163216359111831245676513856756930507212868957733837099016426159476179819676701506876798108659887919383322485143882780240505411721922852062291963067760336349115774040869357399342030408806538565011198510749380794155266267751502924461362863171673923447165504464926699191342462236452528166473511097281246554522752532238038748606971980968185912487546002097075338697758659888813871769775307552085571903903318485589082353720918985918176938987221039596965237551714190698356778991526352219228605620632249328696078438514796402678053081130137869636583311525551100422003432012279634216144663995365717902300619584303221142068623262911845113833035363522814736013590564737385763441585636947840800978956184919292811766091682644401453166864347510903055761968710964920807903927717737080486212219795936900805814362080525957577168535416255294907792029719068558759350348816458531280852197433950808976931381256793278091197327998778610216389785180432369767021468852995301161527395203127150627891311342969380949263579267247714959559473082089367160158263677643876430859744316474694412748264894991196250151461229860260315514208694878462426645458107354833613469462749818325203689189998725382908110462730600848838460535902901047167435493336851403772973301153705792174306226038537531837901305652033545170101078783526922669586468542930795404803581660243633376827527210384658063161659890323503254529869244943801528046301159519451908657140040500856621442012118035810004610266495913047578441593441912637213601297353476142135727463016996704104887695886465804811271989017900674853229074887398390294680594387982898822631010397933215654723413666383602889295287290849321643747882850543072793501311865011097291462099681879201919982286825538439978220307341123082822315534017279987389839394554309038883068015593328571667357560802167858900267998118171229644915733502992549359760033485787900521482810724413653784494940236969248713385671307238531499120619740850466102426185151728520039377660653455159922416395903216420759488480508789909796596489410015517908708540084716621141874297928677690942042099930961290336643318750404191265424120636571973248732624313555428377344899240289978031230545787231851352054689697649869236956818454649856443812392224487599589225173078855369575852035741141510019333173487203067017790539750826392257540635549499437643049032974213379692552964502573608986912767449711295334930189198751538065675529299923844959573097942268363358744461705461755046328684397589207313721039810439588478169981798218223263092096781738477137606407146486472579451421043751851667577823063709040435030015450837057894908074122528589677905070038012074839098578964660105862986198399954894432046899445908894859675101939826935230614581547280119512152207097495745540107007424993554004077147704278739377686657812228922477805975973374417632591552910566228503844702216587503143766501919726808241863956492683384526952097076676370326690017117516718823191183968418792163908116670990223719355744870437061387736428859686903913815232993487708129404300933424843433211672404224898608279061573467543148312616000397777228234692760942723178251874901507818083269973529340210805331853163789759191206412103847034433432688148308510187706688542231701188033963772020349094499209059980585603454010665987260421517303717584327534653950819299884349544549884785907045431214730091206529791469117606658689498135638177603051673249154466298002753828294521824016436894391859978617019474129799725157335782200042386780352780444685787757562548373886249323466737584418384882269395365410732841932168769340532176470809712742813746587552698111015224305509454168283471219215711029561608251984086444732094359188446960015415530549716400768934770345806930239133991237032675273224011907299255474209008046834527231836509976584029323451226061643912342516818134755653770395612795041878645137395733446909630497866835214595584586245678121614441954046454130548703779471648759277447554221899148253615528828176249860818587260614095195329372105510965241466546108105576052767107614755045817322858911108737524080711549242631185492218588142153816180210504579423679135139396818364369735907092782068796739470235227244886345049891190138045853796049708971052702937568483660980225142306823611076998416457305841777066092686323161380267005643490578890800248445427003139074077868543271965637431450299659013388410971595102029654160175013402578027756693839758805525144633739580624455908546383501079900085443886580810807132199586248414643529222035597115473222388754383459381601669979821330862283126302606724156214935839349119477920450929157415479982906734465083999732557310688632700068485992328716113534048172994067847694165976598524036882821173987081247090510714566098040968968704436700196113525937332173591962687767469170048658646614736175589151000338968837876287034501101486019328108961902644704360304374260886362398695738251885230490740344102458501472932098564433282528868931704508334853708931922177483517793186643813731888851978685615334105633355922637108968971070250712309531555298731785578150248974262421935262989689388225828273781805184615527857682080786174819800569372768342084233741828438560023988364446582440954252192259901912058164674336570627828207211834035959338809048288267919091043894239903513413830003840727080858088479337732644438569181565558156109466237668482617040340472416852376566903313318519250794701379475676965633196739950488224822274472472977595153438439193277646290781841001327636414844140752479068262156911687651301560587923805264511048081855875078857769833607499752640665805562853035984127372159411306793085080441632045016980593990785335994163414693581746270819923615136296920591570781740168725246500271178775188146335295525163415538011210717317945386474544250476677816036240757956873952282521318916354970701410913999940595102836186277976878367670239680877183886550374379145439038150889425559481081240807628406687990419281382149422245522518127909558722924405647876313403327478483799284169400203499784161290032189162858294166525681891813460921108490263871680653993785825211778656604084279122182457260410738802604484611759574762298155316751612254292304185423437441357241008452368457726565964577350651009029853546018734333963741080263796691099408576228028251925234680066200875969180901268939309784477854142558610962031826981119227862580443449522711806293998932610113045610272322427241110424050248814403702850809772159810637034046332164231319488253953131438043685046125422946188702977259000639031222541266368148851965297817101144495597418864561846933186870652264007030167917568358243732866068859247436816803966041430639581231267057391408062379357658977283833598744623633060597005011620723020539452720961950153510380974218240238037019309304174962898335360214285330110979360005402137649069098622632220598128425277605383691728302689374661469989548623379555905003569628104315422353402888982140211294405771235600729985836660113741829869382824215235223348132915894418348383520812290993775374581386350166648471604397378157669323857429161032565711763250278110198311569771551286637745342363216633190618291803623868353655233188068487310282567900379218154816606883846373522854381996657645675782236543729711686708378726838192259555572182224322469035890576003049287665627890478514845149784348979806663342449025836905223129798473350205756119862926748518041524189275211198926778469779187060421787511462220919463312469533020676775661351790629989304510838016688678691371639594951499025502128489135016166098446557824358938523490825164833954775459452766954067855571429221213594100224365186129396979051915265131646151768174507671541095692266854200114005690340567880862258575098348402513813068539527609547713564084975734442514247636886040351718524233739296355654617485482138298425064303666574583191469393872572956936183855645380929280990457694425337343663432933632007162128489435885057719978499978354715561767364564566230399375790846232833418244208210539909936225043074498408519106186916989369852324331971869314053639450458315584659957700060883266998725891778582050069729063540582253283564531833867241857551903499505601365186040521938789887897212250869308369235359559294517375922248361415881981785667634712429947851184574691708675044568394332771022775417973490291538694190091460527260207195668701637853437279124913024404874864935771442464420186456202578453867828296475595142454832665735109965022933200038669595059433247162766685875896885704592232961366299463028575945425117243646750696513176197962063988570945934973190192800342943079342094169080632534175959406797178600463456273209217331821214323825348837614644079335410733658214502011235548350404658030379628745467764864174606235472115281753869465118396951375203078895449614616942415876797077032155961799218485179446470403693645990270990926743005341908230831835921816632795274424073783884570820819602666064590210264516657019289752201178562781454378730672060864051447401125948311316904133354445382789675879517360090566205998951974097911901664342351445227302778827171878447194302838586865917391191757282803950104818670914480278147298389491744775670665990287672493548368182335660572698502688559296286659743278628098642163155790047736380810841067890447681752343132876218382265384534780253403759395563952341531310805850389881537009921914168107345499921841422175919937818556130623294417875632282847645760146594483519497597634330517211738130862265344036038658758688325325999876301562191661023419466445056285614125224167280134639573187769721119787159283284325376143947601273897361741512431836603786226271032418198035678285709575847350440689851510386257832631813161907444160490381526533198425930456509178796150632390169922191577360225614253606359115533905806610277788140874596793990343534693887052521644975578714140231307294694764426422388375304430447899443032303447205947029423115994530595376890654689080383105086022178090059065117135093546418913617787303618385221145040611246274610313899517725568257312892974006582983501743424176334418557557582552967729808011004665378698303580151883763632176690862885534371606346593014435260504043581583508815220328316858969623310014493838619027276618083222654114599744155734120837614104726013309947248092540139467474978692414790832661270356443528907553464424778575675201152209535596200380364412296138512118725546336306869965645355445460968121467418880530697614223573153665345179097662438780881379244846218028307283217848767863763439807135739132051543864524904193305401282294122668552346960984043282457135412921559514034703344967601801016831509654598797095657196107276180035782286532168721505119459783211954962975003568843456694213350433423242015385876909926512559352698719387009052839138489235659486110289810405452750888897851420758265385249617506294028108972011119106839000447562120286335474652181996759346287211489571655958423576612146996371439654244908512318316406945291589376715170914695917325461269972832859960704088396564722969299226789001840476860272844004003896921639252555712697204236333713998425323143481890640059511658421607464476887684393948863637080001356493040960828489904301950597618700480359951116549626774950850624519479619288788408929674535241988144442880252250998098595776355543192741713824475058943622781016577834493550271373123170748844768918056919551770726742649978483313445088537650895266021729179384052173431617300821692704544481420384466056772386697468907200277081310342097764791316173173516108225106180962768933230919865213828819267401327040836319986927935106414093613636495880641172131527423214199557048772769406849123538854156235405759835274853831109915322197910531661642790471489356103431981323534325003662659898275635758648200932213353878759497479542387999214452328713600432701946934813424957692811934906830511758205516012849578539473561147101185581363079022349874710073006401526881715304001564648818091658502251623402997702319434091191501265375941690109548709588551828038421523010405756165900341569545972651051228491078543455828716839061317078449035071563581082688252856933481914625150183272071577624713808454488757518735115110113518719533382513277940483107770298603680242409610698672219605155964228511551051098791962368372574810824013433340386857561751977284444404379317807574406568117690090575291187202559095069587828121130070090570057366065769294908905091292687740256989646692116603943084007736836168627006529677565852570090053280831904155194798254409623912052925478932555787437955579564561726892000644032180295730751025532501236925215687768425145918844252475573339429945793879365147611806108203510515926665319735474701304228374268397864978911773825091714178516143301908069529206806172895430970587372252741871905228543344002003722780310840185998335520243268277323845337870631713931084195089002078282345924974777176808646612933335680796137085639226785353119420102052417561259312533676027965783697811375551879165514585340866811336627380040547431515429478727032428909266798515615180891595622884621090461767028056670819651025530391092731582813645503443945239973621416978310698451598557691506998769649471985526211736009245161237632746510884945011569910509022335463194725186235610341266359906400620741718935974686322057173942499556518582237564560227043004106625833351796186039005831342821031214246259838400339800659857068676988412387999913887530630175569682531441288596726664746581562510091870985824033667794533780586076594390457760459182554798018497225313389150648123727208370150611574540459872620960761971267848130278982977439011178178221344727935079277257675575444817613447123480357822860817731122021821646353286970479476094950004146230218257780955489202603567843820466740456045701110356979507592542766413133024329705243989789780453511850751782336045510945870098450099345244085388941274959730766999848296787422901545687007627511944984116454819148727421276717244144792279202523838392849503091123245232378265990940616978809580204497233239749703216572295135511087620427919563683105270767289538839234760516340842836144430372426298174914385365320943043914173320648868927720633888621049795777451182365661444260228218678220881729626445568983374551400978925425580195592828281692470860962558666576576651778532729936772471707754334748477093469654418551026229468390247312071507549362137720834056242901653200602739817160134295669954396271197584604436545527702039817836251519779199061737757924634781382526167015470912154137162031700863187977845095336497815669270258178084934798446225221682163467850092188163447151229707344812473716969692819191139292835604283515965513202681905072571820474133822197668912241973032229539000817675808981323256169644963297081607341944192989528047325943322320453540216609117529224975762013308221309716487945013772092150352209617180962782579743213946335878811954808381376570848084150094728032208800060215951408522555825760184905157040849363446932443404933774595992114714972102383289700335590632188256827350595269543016688392425352385018205326664553818311373805878157628697384738145388693313397137243161670387070900988567322735513945021181206012933193875007451150819028573088380475356466810969093196017398219067089118873799020853921706788282184740367546170454893628277666291546972583159707850018964363752747574511038424749506396089392812283163961066811255421177036099646392258562336173122669290106732278538409474406453323456987096531883068343208703145954358081990426673896750860699235219654862806787543014627086704466442060074610895235045777904897116967644870093867630929917081201805857704573776699671125003616962855634449909971557543111955729524108017799618246247727556358694000086630943476278879084476378115693628439318216221234314210575390917548388794817152112572412606335066913495707427624426667509359402111754244918247187906097479838046997965760865055966532383194616231845170930150250458392546767214262131378523285007079422331021625197062516287710933819628436489395178835128077281204907082215753936728049464361160108674906077698948016622227129227352295554559752179785336204382192015143421133230280141519771436568320830301525955794596288803012035803799344671073276626200308075024240233272052098723091217122125018732817918314213312613036406619726360512706223994583359503194502547505014769624083470967038569087014597104667728441360203436672597493080177581093672479794354230824764296663406868426433904743054046889607040824837504787792800690441130701724711329433160842820749458432466643250296541659217681169722838482648268926990807349093472718607065794175921572366566185699246015455044839170768660820161341099832922451496600124351333266841192866623066172484997068116846187372549029959190561622596522468454005644300228144779973862958310832596894080752000383211599905103891688563321865612612347499936093773070053417997705410281549676883561263604624030161744807260741046267455428196650217150492311725071053681505662663528881694334302151775186028234131222257993959584079712974044413241722527188006589903725562751118694801550208119064499733116327873505820708758713810222283808623898621613798930641049893203363996836591876243077966988471132366011066730106894952950947416909963066208147850861303716637317052743992936122582788251908563718089834542451945529077493955778419383034606931193424630097695874030523231388372414884726225718233244518143766630718594319187477619315804715119425873762153075271784727484240193064116107299807304943713834719297500515014024815448416951913398722012701057929632786846178242741905516563840656440322766117310500688295460400148884478752433023941154765936569118442680983413359076613558497937934303396352191781539252256139045261419781927482556939330045977523038828954561870479227602962975207719957907214232984084319404383689802183195848187068622902396921828015713715784920650625410105786461479072283672821955746167373894609284576768755215592450524246913894792753985811362888185799602495188154609647366385108897578838301471231817857558797870102655412936862577263428163256439700130347098594091321417388570643686245683375791626668045852632521106514294709963533504592027634837994317164475874333082906616174442054861851126336395089585081627599144890582596500427054587740140669231551639870701262985446094161798212407432441239657287676622964033720754843966909340741573196432323348727494607742275512813227371201617952791652209776518255686446209465237216780622721246227468929892683950712037416011656439030986704945736135830039395981013509722801872779272435848180357817063179132991011628828821472253361988313420934160424747568115561441989414518178767739665228806705187930751675839038747343807352582131815649692164378766462010818719842655992513800305451238663751255830413649072244001939069299011289122357315738174682381123656014227583965979299229908150198316084226687055630187867957840322506142639685261333720299428719096457644766149488250044691834534539292437667197458808500336908332227405829404816248615095724889506199933948061718025406423788469503756776108542883625446084948235011260296853804118742541151310364529447114992687383167437460738093841795240726442033217729786631587650299170206715802251805778347661562465571904800468607794659850974386081163859276442973495781575330737913015795037605903283414991707639578916194859594470293641393141307546025234763782201934660061595565827235445394815297648985693197137191090747077814491382391913941011835395371775396230672327259874932408376148866519306463763470209119436514894770717714402003151829701222958162909007852674264423821681437161020977786797306373336584773953269384267924423521191120863396755080737565589490576897997459539145368678701054393372666997291963614969857707281770726964865093293039321984322271814511284944901507994840197819111107541189768088129327448510283860315692026418119232255824912366461055215478330814130383953362253699003834020422825985577448704628975693654198078529775533879497978347849378904606627944797839925045122398679974158374455968010994483340282878878011633438926863589019481421099747062853451151194232464355322383986156113777425196933479666737339801929886490478837682222348472336380407647579579228500977714163870418745713583745119415866746168222410857616508851326821600251394848621314819890215591863674015921009698358214318807972287396702600193451044739435915244819168487470057935963541555364300078356016990688273988174475368738713350198611125146414252777766754207017390350103099115231288595048750593001784349539806712069858422798293538611224448557329005910647605845244303550314335017158288143223219000084558282417118778434057081851973197461054992433357117902799733039703335833748863366827084102673735912933452810804534409830248442526678507039033156128222090624071545722902726556699681119724007420054340641426088457635587374760615914072352176785507425314051956871298655395625223319212327731502461586492781714224110405319228591947103856599213869146142729550444907263932739358926040371216022233478945403924897948484384945401987726707766492862104549299230176079926440923973737312476682012668353604483954390929814228932079384443357453869677860590978755477414873984222581224767892638798135977685802889556597155011891859975616410787204419464298607138497918599080872115453765022085850247847285070282780487157821580408277686390338372555475867494704292450164778708528470189248004642146581138622507640057424522688114178142766535142240273826545602162496188168761106786093409638006108162180522518756229453436388301313252409171455515984312595469058024170175253862779355892940275601274915210942256249793674055149432062841564924516227120268680187873877475791267339421024626143396228628956254330554670202839716510637152512504424824172669723947603829801735315079049830617711707137444217643781512230905794338997758021191759871485042005084673293933016994523619643639642659958536072069494198315918270632247721005347041990950391572552288908537338680925780559342411617289402612921428463966034325885623427948310578451217446213967784317868678653379871918120874118997297829063283226893146982545688354165655230493442810020686686001913456216566512664650350535746493103722092374936933754034270686123876219713959834954206755967027528228678043132935790098421359033643255341176317819267301160566627361112331829771101215091514528701227681289595069337649348878872681096780906393049690002832407125897526114003381049692493025588915861152730084616124866634556636902740803340423619516435159771877414698274226707939435830274978489136947630135470137707917045872512717242622584366582507743136354817790582116029080517433367874330435882260185512700281608236727416641403335868439731038115926350777333304233419386421280598492971298370863649228960045870630858492620737614404787934292088429204943632302964031394279274029521712072060871991871854681379025622689786636758223428484794486015326586402117621878021052198396117065134222130985544475691591215550747085885115532076156817706427305277690521896004890963622649700188828294137090996888280142841530143096341683101564219060193240400446562657085113240477775990983870716652289718031967777664513697460869237670927116981640999816800421156990324996410456603773642398210120246251525519745120798688201977723143151777376518200554040643116500625653492701624118066952958200776452936603867966050651794496941414624794659621393195592932241473292022731723134512463921122384605544604106950209541338460905237899449116323440043455063108960296593081610520177581013418863221253217979715407181726103889907915736787857596680586135075555218964040413111334584438546204778703562441659543911540519442283503012220162414495715839471984038774167560285149970921259132778422440134708606175707404712285348555409493659521268258665289080562861851768865119442439187271445366097856268539931837244725996573261090961352341148171740811902939220115736363414600260559452350794368929740429431079089444203449430932882808414954171374973137996775606394626153527579286620310503542382991543681010247128108961471501329421135245539020390492251784878120564160860760030478860768420361517125269662966833918517126126202636098814999363814171295081584478969946272082825011560064964702946795085855790287498077172632614506415103488844935732393515410251612017358001036597302947771134326069986761555802296393827480964494310359382911023444800693584743631740804734636129541744296437736072570794148934624259492022715432864399623550412183767411479126172319087199202006449026945504206570750437738524640320525006940708718409795688715080663955257576548648637478437971344012423059015334881713806646687307864650851932365381154368138843644687980826286549991584828044744547551337688910239950379826217965221425085235036146199522367447757538883183161237503541764116044551075538568028349804886490834980149233661117982488054788856773915907086255150432960917418089150973350675932836091067350588551575083479124176397393723771342932447444055871875969180246088965053034254691888598420852059521419754441294669791866659820999876817703442320648858381204738773108370161631310231146449013746658997752874573106020623190390079948426214228289914120616381246485860315091005465889316601550404727876111981707802757642433220227787867356353573061371355708978634207683061850193152134850946093630520771518275755213035942177705398796600215131011396059165777347178851756920776069398281071637447679136782911851128868862437188502899182283463981521095002714270616402041470738904312802446984758443304545430666500648182541361934159800110179187177275249150762954316727491492411808035293861599305789742123104278366151246021857459777601835106086892935346626776096443158794216686807170819589905210888171309123396792479867446594719791969363880968230182928538972956851396241185088912168887170745032527493798565151503393143685232572058911635969933668881317305401186594416711921848099172805791664054030052557966436546062227184480150211084804721646430006719010662545361553566053658009836100869693460099053407600034605214297049482396795826060104007201925223994828138366075314222096650338413059446956960424821876312154637596380682547225397451727589000624019314858693090084808978867872374171874052405808356493480633855234451334783976749130233785943523896331554054939913709591164004044933901431811805848847462995657048581460723548322272349013308382534046717120303222638172525798375444644483855528157770437226201790929795954197657268838417744120888848907647559954054993724103723843325373325481183993125993465210290276525898341775973026598280606571324503126885049357700305528895086912983768529456401156020291444985110426165263606209876011699059517089649141268936934867656167299160010243932789353185677498051875195860541988259286107279615868401034571091778825113242218596217065879228694030361297208690872263318599520730705033901129508978582838459747628838801237764521352354582163741875900217655734756077351000181495013156874925432962026397123856422309829821741307970245512172945834694837456298495837402712906502166455103799371619338489397408063237001863829404817546465180850274146241353484770194326701206730363923229869613298641673852334454513702049763993212848540729472029217188636103831938838101266336217318946018888973650548369545018177726740671251168952037787896158434041245411961780971323385648259557462683783066786640370522761555109957185843522901963248641739566390758090241683683968488517684379235952574811102804289750445125979040782902652958183983308522652727554911335477311570535589312707581646176902289808239014186825615830666715769384204416296294527843911298369200328628036412440439343127333327279850469175813108011490122932646899841222028966259351456777193331214777907971462082133856173707280564376594851337262010405805671823634898402953223192719072995626473805219806666530789073295495838798225237605384001850267559575004189088775855671486022878938952816697906797872483400038210808540576784697169866451507086298431675961036629721527327773343502222949893856276166341620918181467430886808349473920112743564892454059749481007080645352956541144780926654767718990664415949043014873119593536571534605040082058022442729454117996711322738360333707772958400302290208653011495229253309752543954476345599873559336038217250445720347681979910522999767662657430605416490653999912888494778416564530338547825829817566869027260413411069272518420391450450403128895468073373714110525544335963318575706805755603193173945549710613173983578767025653965590116297558726193313433847012083949162584165390484248451298508501751902315459107075448655020960966289174071084399256867201403291348790339235184332477423706273730777159112533232549940985528386449241576198124699530086196405176964929353997378591686716169890387410045992395064313049511177776940416268825375718588344502316489351466183841541139232484080194475051606501347809721622034485672703261253862684449989752322394550795504010473835538562889581309251781228045388387370028422287631901856870756192314708138539087152683513064306676587352082838548347487392544796956386486363587075369048887399688246554280706426189535723276964435714229203324112117487752506510827870751744095137784433989749041849788184998051147401758275175647071240143322287516110356018954055670381863192809808451909649393592391786061777290635033693068285185718413058484176392772328231972507823771296115965089938674094823865942008332236485568423844462134291353166968775504506715418668223973663081724179623486277239264898705719638329649765812207496078924785437311428390245445126171935649177934176994228984088589406951710484584253317067674036690304219167565487191867055283144668977445103157503581246112088039105608378135956622554071686957949657558698726292444328151373830366837657089983099716348720988515200678310825280195017226545460614807134136099447518699296956988755070958975601629107536314582446422453213562260676048794557668949361632844977120833462237145214894047476320603023881900854438202052487326814451308146029930425041103269032353469672693507792800666319076684159125973533192252847037568874644935788536686007420170590330030291466814989716551162575122016905854092292491072791743789818459226644116437798649098899676313607825456719642796670529398294419390650632566385377988835548823601850876001464815122960722833952973066224267188182094316962631116843729769508143677523405844507065655227721258565919578971978066315216610476391068043280044452274077855010669970574332082125699436368832765891844030058693285542158173842232357508494908874114777298239307606060051132911914068693529424275853637404060068354683838593330760430937731545478543886674300128038100937407723588407063643320677016623218599675723313873424478176985563739681745460726684943267788556957645295655335828751818413151654377479754920596910728972121970101056065383780394497740720561240367520287508638957443496438641752360922690911881729656752579682876214458503148612393101559923461976654750042009054087374601830672533236297696084929204315435776037816054027179335334295558606499864264834367115588440395155019581730764756900489210789916437549888410193514447863359416866091207075287900176452510491936275337596370248565258474611188552171900604591953752327000455374306809987622791825848933695061774047288350500117154702940193542855901149762679701569830588127080523073158775373919918698586605051631598277455141832751954302630823976053294661658668117063677868726975084836656813303931861455363927910129901682986191143032487839006998839783323738102496440438722895624635866755357541107899559641815781516565533513008017429237544122705660101021236227918278312778080483065186232413711204973180482965110960533991237944653820553550495095974585165841550015299953950661207381990256726401584566402613907979516309470963462711798972712271699799667491737147042338375702640838824322163217949255546981811095261656166064867504157317052541616142541466814417324454654204054111910319084522458148344423955050924191204949739802299725354735969871890715087155610308964008998039241455654132804412991963125729364565244517498489114483963437665250285502611317186730237673993934310616281265237044140943852125398338228285569434292178692359368432173757589002867016483455076399125028572648707646457456955851879956379193736058268397352577310068593918521701331670153209131196054372891601283733298830438044934029020157537951581265234474815186379038031128259878198889656678324542019371660840279248856020672695778342346548930866423519719540692330820126194468483246342591116644037477092522887975507239621843138554788910035371149742001984422479526109052621548216442765811969256676509798835373741418293946353201213529631619354234234978371253900634632637246121009123369790636431878156778661224753889229107809191642162328188808934834040116932351486502890812326572514256613656678041928319840337720725781125356389484090888464572283437449637973327948347920403113147646100121814431093088209610494640411424792435620485496480235015927935616962286592918773415538826958594222793890061090804730470948102792067881302726975913445072594684751788288282391751704113498155853200283086412484224278296689529138200538511214088112506369563818614492594407864554379453798790451819949560360741350758077975109531902868085266988048418979309044212593932795700272146383919756539755337872320027042371381166787867988803271977546767190053717372351283214304174287789556436341443869299708793570004794097872259331132941428176148154187002179064342315361413989458408113636770199784043888314295054870375836914379399552129323655003799339848505745715712081129687755868166717965369794634788531170056261063908589750643682006966773029683045828158556953038780964374479209370796862218467321237713530236199527954156954525961997657600555612788492396077326403975725942954590517118519350506341031912188020987902804422174058103404106264330005339626950558168887662622226014222602370433840337192305928853145844058123700415807303033788392215575124859009773141001385523314610872147352682865192355361275909829630983178312084169547456027932703169599873652690014135650510320560850614466969916929079879913765693013428443385623223977395669072579576658162707063413560379369393696804221123661931028864364379218146667943409289509807341955957959582120570531899010583775374702529096612168789153528443228634862948058711486620856648371737017632734962267410808896541814701101239288562714487482854680417756765487181190853616551763356412542484580700622915651683980181197782898338862407288587088015180933810770307005111328265777910363162247309112808233921484640978907137399909092662843739766037387165461146763630323127188154640228821249791239972431819290212148485080706535812127624336486828687008386362058296870351244316905536819192580678568233990529480102620542492346068761524423578108296246370819251339453836055248869619655551825271727181882336578935096081127748932123842184786992612847790158439972028634762341612258780165333523479653444157689500127629513596012049960487181873275816721833844746272867834005886823955078607034277210174911773035878344014691097037464365647747576369153732275715063171358493470976140779790350913408492062252051448674147166817775643127800416063185902518877191089742711244178650865320994832130941319046222807586181997409540698969343120960174601927255489365463048603775005487535233990940736041151173770944916651263551039075434862419888855165749647392843508743671678887837389841711136637639472826941774687797229961419584071254725835525084085916090257719228892222064987838815460835327300384146480113141361074352629792990459792177020812519821118849135804066795791218438671422493876004020328936475378132153068826177208991001922905766087943810923691539971910638850559857344045169014337514035870545441453277431302114939248647054869838358285102372989954777379019802056897184150753162320396580402439087249119430599398110121758141276113405617598470087950701255548496632515713738497306981057440169766768099042126373306197467120114692557347567432912750862655971700743237960364675322584998222075777912943497328522496736330461206241346611237750259462681680982477591480459604745419110532613201443478589077347514732556651863065200383162103053792673093906676713859330656819581295383551002918397446134171289989845369589609280633478669803833138072746267825311256944374973400827886483814684337856477678662158032489605920764925044184754027609704013100691392912265064707595632176170999500596848261543460808905079877375123390713526065995227256714265639506217385097395437495869265567111011388253331473629620196042200076668478195538480565988687454605298350891090142400740040465888139694586248830036464919845199176188004462383936766181698506761752652072008887719818855848046779426964550908867549574464130296392265994835401787967295247964947458470838699883280693190524157024757703392361993379481335473277799445167659478216915722268375217015449364803271451616643979796247817729820838231264682329822342398016346722663256870535204592945906907605521452942612360117570180748033307555707959851771291701611651694901805370106706437861754130216344754600954578428093109788543153512980429856090721370831795793694320484081551306430200586383388213503588986820495402054284924500259187088992504059810596112548471743415849900569082544380384887562988003410999847872129691429595971075862611869692398613004149565959399494046844879222566404029812672269695248957671977869443677885680266000593773478020362330285581180845769445736193903988586883140921906890499261266396310885027413469236323252648705524083484300675345360452632404938825654816603572165940524047825773440255469828009703204379473760556926951643810315788874849980188988076513837366058552158509262649637341874857187181011054354793264918998643104589821641450422132951431002398211083132083951828095122565930718474999398933562132896572185340295907938570713881891078861263661892026282563742965221525491206889783183411094556408349150907814777835496989108504890896871335312640074031289860545060557990200543781438968006984529560141264279899370948892972371361421192655999396638106333656273944473086418023593543355042253692448623533033338611702401386262974057265778208706392766335139274777368017553921282768299901775383470230230318768857814149190047102622780739586694654047881043173053141171463782304276187749923632983722877797104236994801798998108700729429862803412445296655289996101747547433694595231633186975394433172190479519981203126686382653504710064212886510698006431101383121291802119711943580099379158576023825107315402846088837532469189769473253650315434892564418790030220678008467675409514201495652332542356395275904960949493695562680490048135162630804522600735538744017814120127424073900691000961327453017102834923037239989703400093470761410530550616297513676048456938371442699381936225684758927523826386107779345668876262287089403884750376432207554891794361617506039139229325367935117089572098603744351670674630466342319042659849825433205931836004286192157967208333039921083158949617446207569942765716755418666713380740919530846487670671613873724431434986940590633172562721663333808200779333631703616314509821048834779365069650120893859029410007352105840847643149549425589285946913743263722972429719448565868492323942410852010384239505583062846869278784168865477831848399834554791569757141245056137370616633099217589558015351945582834899001150537932252346711757880915849711063205485439712855756971806136671335571796617199903023907958756513766535718695268579832874841209248907332407656549764479799198844981725336293047361018852966542459736742128680138511271531246921604970981865648193102630435334788535347881440992104630332251549175979122618736596965164676169452455273473979660148547471384334936668901848312401285319568867019595403901216029175122279212889386037612607606457196332311748721656405206960910582964424896418062501804012456937923061186049118434549790488095720060435599115345204479225200176883753430334617383853624137740610992207328223261183963842287320016880542320448997936292800908977701510171517844143314027344988035869150163140475609421034590451041187072052423401803802218217307659752015051391558687936593392968796735495459777694508431613285390062196978896597748615083705845402984765440361142413926090610746500508586277519498107001674696027579185961219310969598193676946698107318262141928773538607342649028542275635858203257997556334781887734727839176480155642852560509588904098104096682588043126180992953882468970098546290078043793763923425033835779079444387083397890164818734696247572317232095756050876495166278555300547810200517028746391160120160821268199689739006476343796610987829410005663059015415277014615217008662366393525699308220143487993090416814061758134838110964776487350810146222385159377302037163734070779785828819248914300228624484784270315622664104944595244731280639510158958743439548417921925854852671323193443983911575560431122829477371734406864793367845840464353339885065915974843188966956903794202802439093809153405189711840762451932456504266029419679410044155403549629215058011020411754736323772551722545187950153381009672159668001761877054314232241271616280311636117356742397720874396669104624043645567923441800092944863172945871077840690916492049290303445267998026948976098043010063496520559314141979558039641877429046389778562399811985952396068567712411373188711120719721125615382453439319222360602713063128584180196400757490147195566899530868759732687947340806256063551860598247556557314226414473477124331246109088072895536042070990134773635211476862276729886148855181836280236773293500135100192875526755301929813971273611854706125159290183357102500207669866380599610996039645561819482804483074229145314107138184516546383612660922247849493900104683540659389392631011651967289385883275486552865658906495504880176088696748409354869987398873376326777177680391551866345354770910425309005726584601942326270735399303582083669817513506600199983943960978487789424323403043445395582278628949135600347944656526541558880237082976872356090335615470565246667161532775514658284418888020040375805100181529242317863940281066979885760536220363279211600195841955753375150124056268533299122849288295000620587199003273459613270351110542520387689584019957269838887828718078867120572205158192456420619742868933973196754396023744841422552201352465792522714918743108000409782427520890813006918677603844970758940683457588176041201465094921534287625364260500093950280704115324735228383550561368485214084880416206444628419781497139991885712661233951199152834182853270115841129645959715305088592400017878440745452616002612271829328596274474690343054862181487869934851744428641503859748486664460372586282440185309518814542026315431527262703359970467054533235061438841504888004460935466931506415676062100287445846506169600968932371399102767334478930931076877496453544001393674061885001811620218211568087555543024889352171673960978604007819643334331319776803867980948280657947213307529266439299744584381793229189399041419908021367324340926534236359028886473801933619039008077750475544754169093763521646716400226219360924545799343440527648078841980909154939687928042801823804266166560594857739179942116479745559161090242623419140173925729281664709389687239493327575228907330834565996844738086401160770530510281309999564072266754607615130593086036557390878061565336478748209183359250704371981371937344821338059680151979254626506022357284003714859524892418623789341128427866348693088259258051221655101139494286556225827864184378736652804834172261212349172345792488595520986042953814900935210263843245585123084118540235031531199684195838221602444711869570123420999313106936599813481190443182720826771159177854866444368409031910534786726283261863104791043738007087488128983088444501893155444813731280609538854661690587425874547027982051043143935742034712379447025129632339667966739492140606320669146539291108980345416879125745764734958992027600271686042522663869557700902660079735936991542897545288045533859274963914781748982451829827993650041033483930434313951616806382041503896715095020773554439900616263746056415713654174407637990249067161395475093508772637682079009264603069033553306598709954529712107619554623405730721199457274632571633095190115860681981980720697447393377717301283518984703071612344687039331114492091572268354627637375615981189901035349143012637876690173781850204530076403621944274081070233728964229173251493033460566825824317243486622000387980412677493695964015569293416906484873616172531652352437227446415753348106503999645822925387931940553241401316174873507095010077927854380121652243335154483016650129078794737022768887226736468872186705019183995532343858068862734855311277558235083793180437241741557048638340477771543873688642095487344955372332910089885898126358799563502531125205225740582995141807064235126825098299183555403674368260103439455069015896555753770391874035472516174275070595801956120977340492856984369359732542735321476183385956375716706640034396127934031092127007989867416110523043930143443154639323862627946216636879203805235086975820628709373445013222481491570953554021322766435722944943346004476499086546788408874221158670555548457321258606431255933293648913432609132280994037203493193331998351277740386476050156224871774653148633194956503449457856149299362065463794192261695941682961672165808772706343770058963939212202559561365387912971098545226804844310851768422271703878867336344661751816283283721093408375365252718473797069600415681951040969828656726004891656078296777121128180762182039047290098169724584355723692085523733650638547343863936813667520762841467390622991959189638172962708125253940982065301796596392883232699239901909584201657998584444128502692030258847573382454395791891987155572819028206601722209631879867613375797071506941134759259710796359706417254423424986171413459651270680707775818253555993633730144023617378544785183781515181330896718634747491923149568805658354342052353920470929446091548657213538419782648043529309831679044971609320801438797757204859106037164587403207053873867557240110707992036352933976573646871701566752256458677925215213810443553153860110681197292405678307172938736359275085389980433421204106462937686566619147066562443456553639369919587032046023265721620852315559852135240894821117858949217795664809920281174222969790710546789740934985348255674073832576043287127305678187782673539957938640526310748074532398341743815326322078523899263074444897053957851113340694194349058252038995571196167955756174253775079411602401673645244689333767485193339113421911278734751166412236622181922129074501227638404220551475034624044059080926943448916182295635231800669297317546156835666253095192202203719760776110055895953953444091064594891199325124364979917057329607386609413048665311291034638669494841825633526401586797145030422068478502971507709072419558079213839860318427385417168174094021143475507675007685293226062994336217253849718624197213847651804150538536840105420656052148981749723743596011923067496895251957541156692518666431332515068962638379671496659432057711525706816092541313880790568212383532797370238615698241473896791674068948231605775495658057364256906275234279759973083896897787547019529517251467270839312401470130111938079710590020514268637576843549464590187811465274152934026375101078617830864523166571044914894664675511646890670993193440494938289141733094527028011045096810042334569636116268976886508176966960864487990817330489822228681067154283906276441641242424030220630165138745033182385018221397081440283832249400359994809582479038213850973423576008557348489568874774218240605926697487493503712132167983785206785122237171359399719156891997046465795502997753496980105572275369372770400056249028309696774136986423077341716944623622328262524356365772852545898697364518149593859171820172149113759401657017799894633171854081718611257788942530262762056281973757916209184957169173192584317089090366677580619791180823208452347614806161980082457168954859130499504681567039220687878258650663033055936022333740210997992151544964836231708544868000734682969686524001597645915288408127238731876467042102012115809081905712195252930113856559029099496999632131067425365370220581611429700729408742610198079998177518517045466624697137576413905195007926023031841292799061646852221375806754493118311550178316032867181663748093015133909706554588142342948828021875146189407856248812280379985056677910269833972902868238007146403817725676256714181515853248058211622429933649742890747126779490850977227634825356403832066900696862453855874554057376426241335247736087927936851996829925354734878244144022114050086414773757357819424202203830316679891959942218323904397062620789179953420763102555145930906265761994674430804381440242093553222046113629897629463555702736917102432986892846097503513855299627432181953183714471962894589062711157888053377828174009340764082103806265546400512579416970108736235935529397675671372252751322712238302109883668514477051683204135861090926786333019524958619178198515916493627005173029489727147791590404942652472651458662222055355870823717988171832905910023516429820835838284567975308803752018855646248485046619819394314903067509575555780772556996530272092331826413487384482766652213633044405219005429504190908090100501871414576436206582878235272716494946591375200753632355360214520808616106118935169676387606763325354358650598410347375562400593348163527342361552084652062641351248285238120214025041987163391848616237919400014852546985158084034373939393884018279110405892287422182145767242369676735821577240315802976482234268139014149667214009838256836066483101644068176520809145835875679380740207153787567518063927989912452869137694697400232146506799731706538390012293815255510358224027051622731907279111145074430037430110517350629343378976582722651566217500860146098313513119589677051068262745068814478721996272344715855661098650421393729220215953000949303722724496744777416810712811803273764361897069547108259631206623215054771629065116994684938073113104053296093938230911982001644219535485295170833241000484958360019512908036505411758970088942398491019430778944909943195735391394191608975727147508776926852763659409794953882147416508144571134688704287064838717247764001397050366023871425195448938766907211428620248027372348438329292006745345094632792148567445907446030403834943619823703901256604824023524353838390361478595087017017133554111659398617769323575830105122653589913832060275939947307486655231987289565226235030694089461863435730117299076773849017206667844430439887675002733261131855739818571157470619262601514437870383226400084683704562031883311093666966545217838506220320516412646610162056261359677517166967408497573440064994874771786895793884494443865549498848367124430680096805581754760521605421949253170012274107250866465293646575312652792174701176381574885089646851787639089435551340393661401986452196875864579061745067657126197833161881581623619529051021666316612318899770764081141972584483152885112653754497551436350921911807984539508378074825164642680299992149708131448748404530759669985575447700646535821981240979173581327881376927197712342555359622168561474476890686283034165417851150237106501912758533103568644209877450677603015497170944538081781352929824248525250741617140511122063268103270991811426623270707022856406902100430948736540088848211782374129552947315330750233620315891856327337734137994962105427267349549026636117990092191891775883205826294099572139214332573185965147513222721132778062412366368452854695751226092288352559963422958738962006517372889283068018723830055601139720904613417272523613095389428020122714373258873464639124185829629912962787496734027101905019378202755164391519538517990944344527909817400343595297807931480645271141381685934775638142443045936345463049662047123736759289387524915654625332924132368474166407649686127631308226263127210637098004195932246415945989687074187276023217884955082593676367330483997780716821795776758595207445209405356613736001567845065127557005342070991710814851400527657125011687032876214784353687720765840721354383387893506503680485399938202831503501524909044093535867328049738233734913348139647184871919353536768659056929724162565929496592658056093063233561031267489518919779956578788161270247408670422637699655216730546655061732101938737620604730098571486052631239763524394218205992783870347060502661196544265729146634696186680513954126956276414359541454678517203728812160692091779011907048174182300431798003232818886454219766884156773318859207918342072254367609728460755831401592982951588821282419524439685042308945064072778804866657961029971070939665132505588590247134827838086893444252573089119015515916704488675214160925105268480039369886906278947126039788668689667654559821054785579848761509198691093446447427704014357589210955341908329158358926797876040902395533477217808438559854779129208561556301663772466555611669048577336188649006645402443519069128220505473372926731908408556709582164131501265774726314244275259261758616242332163588902076452227599550268656942300808342412018863346897578161807435362216219215533890420639563436283608216988491459422369671725063758033950538966538194753287112833020108245934919151331416678528787495705165932626944765423662360454617391741520505310435450488290268283944964247793610144105188071436096054998122602902056302787777904402032620787058869276991795298881277423100830189412300584148839232368132972312804331085284899749147906920988131843693461872191685821416409557039829757635614815256714829931313765378542557551152324935013219654951102552192392246534559739966520038125846039681319431286002661329760570611373520321453045014782812163681989397171446635714936418893560758705809324137150047584845528621613248088479909552233411139300437892268467046612255760783288363223022234964942796605735585972276410017497085662336370373092364456131624028702125999430060273609395225356026650549727753426188961890972893832003510516881023015715590976765954991956114080607537358706946344865721843089404945806669332043643273928371082376266893982702015235951063220362688675323875236052655344568643852576217908725022233152530127215198495893276362791988815090791333557926987022307261180162423960937888411662778522213625743706993463497072229355792142706558880024617605532737074975586941511204148392793939083171698122536328012765374016952229139976905398390275707874339853191702835942215632501989317845116380736191707388113621245138249658838407542903907710833897643836705677078853335838363776371353310571351660587240638219571988200718476473898770495471000943889219486695768398894870500554331298151701360493058940084720443227927386024648377001065576604369751917840549511333096916391074577201765232390614980604787149342679648280073962563709588957792736417257880319945629721996322731380371578922982638590859177653217851410409337946232059257170539134140208139157401202656993338264649017847959734406299103581558978289513193111327948104850386539275428791067495496684170308564870945924335644721273911483841082919331074297338620841360368673857439617584245451661895495141429862376279166111311700877780884016661043950106272508226850013908611046419413551711470651744065392061595472353495249612784857147412045912417117649554967256347081873567069971877627732900472719590418926048710184688219420539683756181252102267738909486039692545027482552852472493490937577489459061490126870203673367885199169425419075929453495016664849186307075390779011752240279715598032136411572463067569065006118582793892248225072158910122284129925378258278264143753875394122969296409725506876464325215424892114556945127830472717537294888936803796987532861132588547593394814367831259247211038138957339880754125817612274018219044481462704885151659758270802627625330121633468325759135841596397511009567309639204673438692073977545557640247682539195725366196390292138370082428429305428208082756866994282969770930027681110296517260994485745304938275707021000861999710623825827468164388702370092892369966332607390472897037756143342747810874122904061663669706071173699294488199061991098164699395321453934375926043573022099171158897664821356164090865127600623146401889735938501439960253712126303238126500020508249542083087095082132914925326610336807279910327453625863727356049191882941644061056405921569277037730387420345924571588770348467436698638088751081982436451507009192941092076216443293895099051252353008517061287652620137056766940951885071603004982986868392362495881219515364086116914050460433123567703981739980791555196276204526753476022674848736381030103578332141616591528917110021418404396665575098006045022998227753023827907607563744103377389311516116471343869339732463725348202678328572257280912300731417406310134294470590506632909174275988518817776120999474847462759129233747963187746736794578656790272717598847782719137823164503665014442076888967693391477941895551801938912761298624598237251205803768160820088911007992866041564916098936727890907358269574076658366772525373374483490796049621363203604671050932083303827564151214855703883996258364697870015254326993555556946957580983982870628413116216710076951414276571565856059213158712246428497781705979443167888968451818335677365192016726784069902441242061559924698605311848689838586261937454660386334659903935883737239485338593670611400299181020434974468898009893509477883951971269623231952655723949482027410488711287535801767241255432775352374380986343526031810250123374443973203403935754563212576372641150173219571701488438798225841713943748145942566320195079498115207727739235195938448620664738029995220115856687598352954569821724728992654906297189763377041898315939124354273388832256754755327445102301820782087912669895861769319583804125986009848738489737583314725853036236718216362480249198175231122636620560586355719346843495701223026058017197785998579774699610531716800136109415894904732981864754363972193754193716810627519073632454332782425316487645265115801950844783732841490711499717137926202776945629101920868191805709406223529816296456319899629753202031034197908017738362718328391800103052817045220290865327223749169704914844891185303008220909307255197727013650341027756629834012197507103108743618200430967592770612917433019077474929016872766602075959974172587673527099216108514690827208221154744927011883042894586236062973036426395429769200000495925240521194366097419412349842901181131848348331279213699622166358491726859595003421403187801568776800915085769238597331710298870890663512558868777847204247173794116816704699093392302944574522051061794858012858200244413241149130401117227375522316603732172240502505337754831103660092772888674180984839204515375014237303211420721680390952882781921416599686013363209769841196851086649831500632259986201713273380435660240779255794864469409809914772051966676086033035264191289342629359148492827985561330088834904188652276095651548024755156654547342890545963853446542194364203927002811845641776063387066511890144777233083047520671340600369179270796153501813819652909948843033474349834936051925909680964098110736266519773032770267806794371033908291932423496043164823069129089141674453596137341665312888958029931586286336964896008291598713763205805978261802603317589231728016465183530029534193861708942627940442038046578212394326556231047327002938978202867654598194706741201747654199915118315132786462738638798070514929168941231469220546564464367151841169566824579158338524998768662431042327480232878284209454488160142121555040150607786632490903803419109582823246157093618657872275374547162331303882682973844902574504139988138169702918477434977282627938481027028069962212717196835370910423118888248409542647605344661056650271306080215093312066656707886233155776792167133572174683683827504806443160181642464642084113773373635648726460216029471813710629110528757985897857538063541165351741412673216051629223634538747895470050402184446637668202091593576507939812951824332735851094479606875806362735000470942733670893612707653219546946072177754388029547957256815199854544476408456850747428179586352833915474534484610861298600526384056683952266809817123164694000418783589619306033937508250469461294641731182192365744858801138978806708131381168455432528594181191074274198567960099652395291366026746252260685215160641976280806818015801039062437920155752115331322151554003441302518525770343355573215570652563060827280058829332396683330941576846592863149119757223180072627671560951447743981123425402431114185112068585259326454529199297361423108547018410766276539352456027240509475777097289919332418226619436099588846598063080589054601600852412044608776460830661133063085798702035531855211429592385856676467857929945204465280502387424762831085227810323322718340656420612054093313884722452344953466420383474888887697426395291121181303225063338268221684260016804047566619306187040530950001051902551476708979871824974318474424721754303112136696028752521395665255423422586445826815394333020627420974759698504498901901137417006698173276847509222083297153421695492688132326082624977455943143749242200531224143106790524565065289392828698251435575874206842708897133533948686464180290054009699204275199207382954206076668902674804458226937450277459600528468720265470568173274488954882045571792853807519766189969626001469290582340791826245903367107438238504703022863308532264303115538476607446723775682310305886920515121508160896619084365792293239905414877815341373916105204756806146725729816998284586679315491693002776873369753331239433699147431994318466407097285687088883904807953886133847083254273791815885414771621979618075001875690651362333678539788054666855649672728176453718779619190580216768562473397873897460520774063252231804751254106045699615765897157809633121849887672391031328981771305776411816672698449020294313493825980423127677542129640164402797667690408609516993706526766559202304424850451318802436915383726795631941962209743915850912115394198783040595158294122030850530306184981941741208533154904526158616628467370007409518603018722813051320039662659340121649007753698504501466177216851973441585194203135183539732390480655313276161758456860653426560473972464060899319281665297249789945276648515599374556208653172318646067779621142152043806772635636973011376194048337877709299919638176137682198136944423698566705252940687567400204608184206218523111835489324382790083108933967254004170904595625449886337084901956598067773764612842581827719532276059874179342178455671423568756513643447429649206708407584388612483548664571239081117659772753378608786265279410120978309257264519935779970733116796230589880837686811320931761778700028140014828584160500349172459867012921520868928076663241924428434119251791994569993302656310592085876430464306671756392988926552354586424584498077051490279112160622581701126720977011704323624625712617014052325842119538360022452600821245620079217255936767518351938864394700089406566108977116207153514616741875689383662446827981791856225107141806307855421974078920375688019935298721899010008612420424688049608633778841277910572224829494965230626258772703491111260148143522487338290521283771267487714486994931655661933217642027285036261702142072550605360638785317292703506149596599532766091650539023911371481224404361293082268318256806678851100569709794905096710286866200689177495594580892651106733211640752500330747944221993443488231171842325849416874686254842726398332257244348557489913336960237492948749883568731002576722150606521453296389049363321846199930992971475621294089364874348646212471338964127644931935857938794130101045605586215241879778179735326845065324732313516243587532841941331290375562176806513080513725139056955680691251764453546749118291151972222498314500203076292282977181649515234935718714117364147591690480415575474221548418994877799334054745963269102746704036096262252690781477367216510923850517114268463849380361228019522628072108659336285031568208362553737070191852714423696212234659107368821451338357271259806930173308037232818020166600401179498525937879081630056926783921641460419516910932033266725028821571610947627131482658198278531194403889158267832552804521322630354309737401945395420897466778324273648984958503272341395429591663964307846597406836308824450700729175452390307338395088597045535363470049500759144614564731647061073841368870650258304257534150894900593978543039265972761474694765369699248414225898725703991836328748561798872552776387227149214959719373613212856263283324329107754092056234598486261742504063891599080371622242202883624480880048013742697472450408057022917818901330080619466830793487700526693049102061260900309059089273941129391231256768698319406128840718093724027709909200260040324615440219999949934026782408189956611131462976216381101406688567587079260498834467535381127364309117508560673555996482399019019658731851866626163076244428673585343757865306612304626629326625704327801931057641679074206873070416750544088598968760426442619126709360024441508479079330136486502071519502281234498431630297503135811405807040854711151931736243784112456711312182056112244399688441453338601644080958010729763067738438964125922956400268938939594841365911632001400391110030637864965089058136013911161045894570150657981097894150527920875759570735384275394258922440191869293964917358324414513534276969452976833249030631017513606717787469725166621357636742245478152662165432578072323741325205003394938810412644991670277940273493162910848598540603973900598162838538919566488021426646708800333804464706032436861201279169363809277801248512894095870234318911718590669447806788690928848357910152491165157021349004659330979437817236074961639514873968225474013148551141377608139233924785652234609815094779649713267902096500886880794098333690404415258591646577612151717763382185845025666093010284593555896889357119679936989647357083113084683558111563420405107710791348857318636397745235937223052055100733301160669196659352715225368152274494049124082264707268851006264260772159391579556282432285986136084606690641094902712605377336447536421239777215315477377428963106073277412977550316691102659497853154209090183727808641364660305845051315569237126457071042886873357096715207963849583647839605491652366601467220181189027177517361999051404499640069418252585875785534824307003501950177761906848885745271866581412319102258725885388303212278599825953806110164715306362825213956930770377491159659908340750692675021503509233837899050252809085854165936107882435896219921711377833627221399258375100383868951373831256963796769747589928538141910599252026902197876128248479038383026153627340629017974127393520116237053279124917665365579957734998125060339906436105110993835615200079623628448900140829917634933706043860698635268981656272084628586352107665835397511074854964017005933230522131445636479283094385500027832056551104253931220663100056414736617719485578374972738410866231956109424143378563436584050350919434177607798503773402547845409904382942568060206008867649664528301766365640153600776648847287515745789064142437675587695669712998073976191253539299707867660744703568423702787633104943228342479502424927122234089955853800893392328960553258419840734915216559890138596891607621356182332596702024139366787016273323490568668774844244421593129580166876595590806307958081838927634656737634246705500294820459247326510968913801085721936624846758918264671612633517196830794637842858081873783163371920576092892833202195159611620106049563972869944428268663967539146003790542023998965080316828504974641329505001531367609042854216685565426958335207308730466806276026855281693560871131936259450236110526656723566069006282329472271669823614876697926568809983119260782274664410742671881786421577431067833055215266760813525851272238441979699237053540915706420730757545207254006493817003262355114835253525889023688169271348835962406193607410816006466058030556874711817434325544803665435038742305320160510500750355289734753725441893231288497720880654719668408999482769775368852352015363331804538424043456903087089726502708490802076557084109468087073927732994777244155171346633313385243096600499693758315595189278330216105325617326029957536505187355771214491722703006994206223956782898248314649129419865216989767657624394857318172287284387190620008650675970919731266841006043040352816451556218969633115453781980535648587318483213883836750611203603541188930414893836015716953717033657374554332996827937718956125504998144963484793847862735234574665391435280114452886290213077709755424425294975973083946383985280931124322604141198744852154563729779505334539546971958441003674941051141272793452426594948590454316303958105879559393320279525359130081453275045868674189792447544365474549732599038027610188427763946208825387355572336219222550555457161873560743770151984428562384884769773536825506232801397689382877036753879031621793586563063655715267984366598990064910490860163914386535319886563198568946192897199211409333883315718600900224901474610802049273700506988769790903755789014801198934315033543772166005795325859475016823497087137507224731917132752400451175818333981743418259604265556091772784753564401101636779270141062656874074132698284533489701558975889936352140176063290268652400419513385066189125082402026718871325236190336150906523319796124779886483782195848680715333840738090335004468041028872047646769359054164257108019311971137568224689394139633294199611696644227048167886793352233806350246248858545236032395881523222957285472108758211492537586844795379395353485389679864276611073310522688828596104790500355388492327100251271968503072217325412692160851848313639719730505735962331481135353089989110787632311607180034879023562682757034797144522924778422568594410802436020185599981729113772553572719862107988493065697277796661296861788441639423771478878155897148375031824143133865472561765436248120450602872162014785954065022061585979127325125186278661284292579964686453108918482212599384602244800469435384086264585115880826469823417666950330178614493451075573425744696241226408109998248557049120609997144047101038312744846522482452926953187663427477367334445524342272023357007635878006681186522302149987159878044503748761136568669141264935168553907638587165601407535324535236573933296188251866999199965991196987940771220150908300951987260008409154081870387616891782043696447015856258864224697309114737621407298280374043807844068812537857674780590202130262088740289537815754138046673569791309364210619974409742987768779453215847856850617184327416673826789520795130620134001281668058734835820605705185154854140371734853524772428047082666228516769611686472283035337987093558776606723315290764412413340750707813255812615380837928970346573422324957134594258465389848483908112991233253551788296554343979551056021995965819757517718594291571309623565674410469587720262263017544788883204539272106896828114680636772441983345548516019242516139247109766308747628693959003981582018879872732714624004320771479865272023372957390278581633426113787701331736065624134118656406796439388944422482510634929229964256119169180288044039039870686136995726951921141864386907731409089223363390677454942468817180420628462125224726271788636308433001996619614710155167123179454144039535926363873024757826221661331106344514122945852587780923665669669742935705336522128669113099698102955728712988023271524453446925366783423076738423068564118820351380377018574398197846670290952165395594586526586314911099007135558009424028576984255179069899353726696182947268989773904896635328486762593429229443743595798832515401463962401829274992425755940658689621238872184015371950088398608226892047526422150282087330005948274139461475477098698945815014951689778476493430057802957971199117598182473429967704235526582702878701541861979036881758631308303743978391545418828414608534992554564773710673543826943680898117619511071122805095057962176846925368100461513136446235397089507146706257933299986421076889026262310513291080375454803392172231589618645144344325618037901572610162308288033902572541264177981706763071608155519348584456653257530647832773984382385009521478921788611258875469312766822835542796533303040339143576142100314403005680520487102034621991859994235982162774260186627274615111466068780972315849990810291193020032843706696646708064982255455384320910379375051445412975607836014231001969824023067121076922351205967676158093348784778739104399219216551484160401284696449966629486554885249154729484742915984710583989844238114801743128234578051624360075333295488963348937765235870508343500011974632872885839445867045960052152090072653113346325872348300478904038166605708708113488397204095313204084023903286801196632821721591910273647307310689898381480516583101739392415114104569424644866723489104546300029068084155849385717365972987071480763386562232287174472988637458500033830828789821253655846072180129081554685431799705266975333472848507389524086761354501931412946371686078993713576895394789485527174496564437827787997856212670429336969656003030819119341950455138021565215228822687436244409819605630329090721576340313282881308614670439458268379031821644570951949211775535584127125645535174104040392415902045052859773965043253537015057730564025313694918632573333699802464552714751058292172639494984259296051411737338399494070524334438929026943961601018922194597100922204984406444056752132720897673915165100966304457705137840477815012736607196330572505641115914611717540540250677314266558919164269466907213373462028930637965564618330961490822235333610327290139805644567719644094983383207083260542904627624141855779564770703248508055086564012657421405659791531881218078117888321695118075927737231806632497684133318047921577360588835403752780255630228808495040749395378145380265360039174662766701740537500578975775420236491441834624948062106228363936278607982763519636300219914577087555901142665841069451256601640760345550644037282493239316636782336663242741805165314399259407314559182195693113609224563442091500758496060051073893336964955967615907781950382748481817025679728336836094407497355862185858907363636046569864159453619623646397872733176299696114185168314297967985655775344506199376772980298728603461615297825214025247412191154747123817178555428128951286110706307847678983898039130616473681623516949958660790948844052049548403796097647529280134483777700966331534312275908695826644789515553542163404671713250614280359624689473716871552146530277947831401225936579920422427197830248360158460506305707203662345798240200009019551242215866427282380614779472471451514945755612934948062952669775238400040270402047972196263986155212300805910623568357057315675083937574882347319166984309646133309650840140788102166093344994306787123772606753216859277069317506996308838490944792507253820832648533302709799101357782787731005283171003309401665788069675748560290078697180775155460427449542251467046507653154515258952465272803315489017437027827717950899963150490287626467614328091332487994746736699499333837575456747964326700958937960521672254298748368859084580578176783421080384818579002599716562331203848902733829244981575042408144165986757876820647035212595834721711134409119929521376390551085163077136385634806081703168203242591090407859655401210820617692106440532174113231945701776698923338354216764514398808021881958703081240462940577498284128652768750714875332110097807997310129425125896902518039358819235366479606113769202472910930916658652565671733500058342335704787302973330305463337457276534085616857907650639258140418823110375237351341335524749173607769330246010731709935881255139192652839035542695072620452265457803659332682297608259196759582549436542999172105816717438128212654680048852618560663259994486335863512487989760851351984984918756784772593911230079655666042217336098076782848591997129386311691035908851200013485624053536329099644126969140731521447899741744340825705974070079592282664410134048931446561842132519803535527988215259523682855178567764096743783303420399692297504728728722073623845003417347320505903692505796294629784093837431183389889639460947392706433594262949675358694247081724107169554397525781119252849987909473380604324299555761820126185956986099442819723368960316312010946254432068430608313126245981455527920012887181785596519397698664495913209325906247583631557575930096041677666528514217857508747939412135956883440395404669736612430199930418882630754998369797765158763252432898561105887279235683532578732853780026691536391405189482685957654412680665443864734038414783584058559855303381087859995465123751817042390189038431457667251726206245855666268814295399774041885246984205220408030479394618214770707534433047076104106928105424250240641762063838825760125454210577484965517035231847699560608248218535463480229328851200418622679093633996967595088765652481602767522411686932952390889295125065602080139351068342483628075153765197989701095030185183288041423588248624092745138481730059429254278903353858019654091151643718403139585819839554628582899115427766291476674716139140192550903051754881426457691828682501144217594538342336435372994114080311512675827339746244907122265866461398724858464205650914878128275189149876157642986421893068401707923666709169144817096305250102225257448162807225453310102921535454248377363501840649050292941325363293066061092869100645745140606467316005535000242679417543858381805032230545331075855181014825184086999437787541154027745481583656316916872005115821775180511343805646495817495813436347408057233148376681634822796022880237687381904219510780638651421382817305871246124570625497562177877055227704200680332317885666299164983349646383548460274271985410890274504246979741325027289978885433400821801516090561416119883573500987274492123054021548098564586781760157705451614209929448643564915140360041598384606144981084579812730989797106856844211697659913656211958456422815520625910610159753865235707154574960696268903343255727774212167025995195565071958295537173824291037346588539735791664317443864953259394142808862449783520473083078241236094300177922786922427818485296119502472822441968265154430734318431995039728581686965479085975239983592682529670284007166624891851272069467386378602815369367979332323340716110616104269274702849951112965066978485800558728421784972689928854519822539833433982152199194564690579347327578353689672479301563708552997531437821715705986774844774954002990124140315926537710152735404923058503010429070661859802728102575931020685818336382281465301258284876326728989170540733120691270494270934659677467781191398522085999809624111643068404627507759551832698548052920533295848789610725624634128876115437901845885554547158522773425752157652460113350742988242988382759594810144180019238568124027540335410124091789998734766223505875976274760479649322067712239473648238501243122489266119673188257462862940301575491735013109621464150275377014631543766659047599573919721412100485387400207963334321473785102179644624028648394619800400876421350201897255445246532492861122624531208660399861138466662558132485732508381239759340606085115525181738379041877670555093624698192456949170905313501867401888550033237232791566116593973451127698584644846685014393345495332459674979513662649407071890610282403982810409495922532179271646452163788852996999668776184931941849788533255574122002356082140324998646709299865463221973854736278107482009199197351711928170676596619918064722062736148574154872139883897380502614105844542102091369573034651288685990833616817902815612409215357681781479875823239134626357006789042280660922505981081034490041230595039312275789411016418923269224381380388848122594629348120510888794946220911703343307625815965672588851087470761643125608552381646281575519350096808967263708914496536766217543638205872275573643557676531591117308591614183851832364935920778635733914035342383396238037556219818100218329944297942901404277665045058296373526435253010208700731969812102849101661363951199330056159858718043394489531634130822237012877069850263549491624450220878899309778965535174999505464419164416382208648965864534195176626391532423002527699676927000560405722728719004640806916121865354324301404189115963564075733323931717715000455149305470067237165250817652522027937440953855700575688619327107055455588699561381409668712436136405026867887224540038949211272112667372099596056466560555238181092410939147911474514313544972442946247336269604478399474119386869142514315770830847357762950208407888905126675958470951467600713481699832815961509453741423047016557179603845794609463208157883387647414981421543981726069410556848922117668201874290865105242579437167402118766152878697660787854202963478519970849640977349706015201664181754276086574262882226518798760789552861602439088405481309239613631301668358990910902013358523408529715147382980973633287846187640301957071464865474688059514718871000811326222422782445685085837435621089749782833279237539422701431799267833869455887339518235901282388692168457065491520217618762224041710141931566532746338685892772881444083820216370851357123930336929318253456929171263964563501070561045922584044536658302212667328022439073525248509308902270977161925001882582212727333334703857247282475625842982344883500168836847609158464070114195231089787245696043166893581610517157879892453592699237952574283059342944060973162189892812423684212409247916891644249045018063428275556517018124681581435875084113673145272575594234307288543514046691267814043197392104624296743669118424947750867171223607168491433679342362856955256906097336796340197040432012142943935086431401127301637501236412432208121613600160264522548151976587466238646393179906877484516993857227201890723789908539375984240779107512841073183081096888159514998075969888475559489099903061420110491778191379386931569812896164040079147087364980462041394596895845343318044801011852350106824465771768703021893176804383177143041196781233222147539174734024085742293375627030167514223001313163101415216905709151712192141224512347316309415310829563820558846830482735006759685974047026333181636678179404599030066132387657013757137138384131662809079817124950828452791530711854607351079823159832846755185965809049394032616138806943000009228217516996197927241599504109552093860409534403224460298322679065029552233475194397275508292361062054396849875033771703275058568183854429031506614102024811131496688047057864340241612742201343228920510418488124401429293475897391719783366974985222412039849777159836934099312968929467280644095342512885009525959817694064901872785419801574677454694997204836163136210862513396730996414531637450775925886570138327639332163987232529382896604177656205164672256986132822076424313228755001812289443812390655452095825824909913030701280162595018771282310690210230049037072362583666255374231983080318686193469953632529899947310892579170154827267730067155718938372473681708431839266397892194974899868196195067461892323571693488678421914623806135837138782870821825921981657825017559517292721179270457790869288209273704676209472040539620278233838909824183134106182477351484919772503343937768459863199332818067344498691753957289867580239668769281024282294792938248221392940031807684491900699857549978224110975545275608789107286585234533075261961787863327158374740954261963811850197976595017730960452889276115921739412418696634666248535732812569795795189595903801761264100446008359525491872841432169293731998764671840691866075385802509832055147596049835831391864962868438279263437366189610532154894789223382927762621142692087692645787351853457549875192696485548651418365138545442423047468987026010973878445563425001170138249706859486882683067109685894073661435011266001143909145014713869398726913191164907626870529103491074503596660625197675590572918460808358995395747364026772161113044677005100819792413391718171152388576577041132312936812013302346604050814047719405879863309634054808005527218623287279488552034965558630695929240935017387573543320769703146504032138227285888016674600558167974877665450579612144530770798926517616269826942831550223439463237490340390407697541161556652323613565493571987287509900717254109936814086296348018196660556733912033344322086581759742064705805427023441981723510057721945317264702018537618689476019099217545583839298795475586646165475415684205219917434786892170162024788773861988923210541557122342396369332494892853706717224861605086513800399760900830217301645643394796221082964990326489331485708942492576842242479533926543528163069643782616058979849580842528238895084862848336516355852016456167375404857116834975538752276969239326389928006669482523011056279801802671309064510671437535298030409221244544025508770898061973055532314709190634822937678110654590523048590938794553065281610800153646266313708883589710615951203288754844030995480562406248878654543364811737741408482811916093996013911205009437904728260452110740850723101718965287041498788602982061909018546565325934574303023292834144036415467374695391640234594691126574236170686116180963480334220304212429811314047055602490092249520808459796891906134582179834611302207835238564125121319576893192799955746741006045374678632146188714170728177919100570523158846067248880198141510501292415900778916680498756244229690149627782400382777317809964673335842833809623618774666879062115753320519668854292379594402088271846385573365118138336787433473901736585717565704935503783670572994671239015557109426378271715872205460070042298322477616417372819631526339134234367045232147986180805621085068525790380455863064485662559226708328357477634502476170448680442645045798342532100413742911158716521475646985302567497370677394062079398176745261689314737827919084138653530185013548048426426509212413991712059808554568775456667747600846393561842642452533743932080473027927240199575837388087265667420711656621662511811906063593222395231114429224019046205690688786928928021011948598572820212623013918193652048271257523710551633287545285450999732612789599553820178772842655836331079371803363832442791516032468020777270288146336383034097167800383204991365154647269330497123318141099563898524184357614422075263588578382976374617143275704825888898560678687529355053161574037184495811142997382304100538146680167138671105116575129504179637279793418170362894191698196468051731822895946770822783307246339606671664056593438503447568758273770208384454836860849635616240881039530887667002498353479508070558839245086684208751007357506857554497037358074267435625122349731261919272263521917908677471858410736197883042890082118194193862256968220915042528114290820382574600319068190784469639528238430144512042469945765215858603532959565725523770074191302227691037521729834986703669782226126666532200866812596443112459610329480075167180557278097879048420778706504853730791915828802192624607172368172581368279488040051824571884931250436830793983689074667682559587614387472625773590114722876970240456053387642351266075409348814468125403800706403772789086983756441237104795829359809633136366900413359622764119786224106786646700948941254182318325828505490788124187321660661413011063355308596866483808990801998699201563864170586120567091988241159670321550131438486558365633092571091984794226783232031711967868248465655952031908741261816362340409618533721374512002279566244672206807374209105253925822146973940479046484737649361878622301661239610811629193642044938861611099432292976561038527094826971812407120365215401768247168255261567907200057271540456676807323906233451196016448134914276873758614695300383987985585851482582181097430109795305924965760172200291734236650936181902746733482065475096257086595644879407653406475385206424949515263636430470143733700339124097829348607347456439915508369096004504122216464464481087032643702899352601879532111512430030502095941557022058598256352448798896886615826147734593425789217000743651929268486981434021815020142135165861789902571650018088388620632753646094115868655283911204227961846380576442459835109266699448274160566565903244500731264126377367784501111536710788624569943342182597975402041651780356028910252814154723423265037092822949064956242688482285025274758991956054221051008332035818878945743344900210064465785025216246778990076145431463827344734107062719510621901872064036316094289767469833870716765423647228430159099883107914077040383921371519043481208672822590141398144490295847576888511649313176938861563065059855931342314875379737633429687576504334040676032282552153335509812722693818695945140814201465936326801622893427887082342407433429198269200751554388079421784364661472995099344292749664230621560726958511628796838848107617679468192300732110206607563843232458588769368906450854820769421252667125924807093054451658772460015400230364105842537497146068329347097321197132046258868195142479723799680673498742083725065345786376618175617430172566765428630452817600206257888009884299424104555966422626702297867460879802144022907463600420661307323786121829412009281814921213258130157438085931586001116596298036566019274121427609588065931782962731345556746220948252316918540277239652467457775495267105770391898947818224871787041556938910855293379187732793743759612193420013409872713892587124391359003925292459186672286601369097342281244622231823763049890633876350456929483641176923933252464281740059031851074451012079321831677588975907790670993545313439872877388197523602079365998501386088631219659715004862641384282633871107437112100954891170456601579059168028364268828000921309264848166031740342440517867013975222057444473660615076126279248699645502819857507386372882998730889707936785410534113549468958657114900139564791416439930559483756403445701784298709332302673361093925647489709572278216202008140718110870206989546882350891844091061717101913498707283926034038490605013156624432762550822325167474482133296428363522581670271448867080114806170857469453312149030286581554883529528410849580775212564591843552744392826108307748131375907431433180403090475680633003803878134910479875824242648377585844581758085210889505149332589182536468809385019910427927897446208737249799352002554376513059533652753393424736451198648545130372376094800418536507253590880447192240619624301422050686116946387673223466942822685465637185028015002631982405506748862721992629576691358104004421049833923042402012187198539228279973797927998378694325994443708770711635446690701358127856770332476030313098012857727044005021111995714320684416993978003554602343738206504971591989955443776038946943849628904874591950788643124610722871447758369702689443239909888740887200067844107844699261246388919033286580418438006407450571017783323682584895403181226871465384076682873710019977205761058920522007843027774809095496486650094852884162924043332057714259757980426930274454726606536939915676793817273162832171309733244178587211780945147479407016133452573362974513840440396915535964768356285085429245063323750098290388125467307970807112742700520502266585158398246775922021792591497196855939237059535087542914281599577507223150935305753409853783209003500326486097931410834122621084175260693704922322381601432139282902244573899658279002079259827642225512135678647672267808614396443361915651100074568664028457376078051170242861495366134330785002654612179538068369314286067945372974327608554628566432627505962136670097627781965962171904149519975943836891537557078996168771022233980933844372003224109829096025661678685916734411116285967249281472062962575496646026286227405208496319111143860158954509167099922059522293637259675762579446081085667196706711038907887452010714384832223798519632179530021841191976316915593293732863116233708738472540263496862357639200419307794473745941842001188648706292407109638006342369556795435311257355346993970634537228715140673937287399742297717301465457557985067903782926359023982168563503905498406813214834762068193980232032355482260790795975328535608936878277216767971728043482362344549177631660929700028089555072901609225912232242405000592664063894744753329686202690799797227892149380539152563190432750074495211293431052440083923822769079196165675503257785601639284129906335564254686560946475175441834403021741298903845050538890918375476045046974464228002940708967320100027858366478819973355165766139372981524836036825844505335713939616738320537519799873280561622906127638498462204190457319974163732666114710292629567041160891302370924617948531190951372251565936421022712855252628431757485597725010383699090800822387090573805776696524876901832073414849117295031688054007320835883929696651684670113637396252148668448978287004784625169964606651534876051098326275866530509279717484521593423747081151133224327969128592979517493749685486169563035965060941276842695691033019224245606712006320480105835075728316633731457036974976202694001692140539593375041229781308374973649809292921340858548885099713971788933914391247394030901746811702514057044113978881216236311015304197665674670201687197391093663866958931172152078436561381858607403331585479937345901696348555658450946653092682186910829339608209053277667223070731689643403559844820491472751178351985537557981324471223068829566349896842885242154736777935487128553935970887787844879893705875642656725145842260864869145072335287280066869441975921091904363707080993422339292039467108399171882890347516084350190527596679660979291362716244251073040347348250535461415317251090872715581619949292430162669756857984325957776467916395980608700629969639171100465889559555883659756378029768510021670101757097524756331553780993463974502984162660882487392645534875712721987670313047390320863432844510296850933488044903497823275889633704413173768422970685390381953914467442111705547352078285702471311963180240026812808704999983683841373533748609356471916586637584528102546868140289097409704689005877625120018388976046208359124429930369493314155291713933082416182658172027785449382686897509997522465056765624647924584227847742237560211070513546216556851087802279311622292618628279474977590195602086054422979194073876678128184003864414648352304941315071742923123451268876960794162512256024921363620567271964455045130600360029929177040227097531411337823235084105882715474264116052081058432808127604065474616289240228965907331406258930270646838478797640646968028925698383335405561119717372929621201679764388126661775536685636978846172450950527200863029389020102981239001001984853089136872084037361978508079192518718693240699654626863074672432933758052072533291655745843362391147551040137872598265926299269050559104687193536606222370203796573315389325315137550555080939277537103865999874794260036085351593419281163367673698353282416282587482977992809157329821621999393823061322221187907943359846141418149482431748349739575694875195134737031687171813482814030726895552148253475679351292127503559440787245252684843221712395322424130400930175082241513270097422170118227290730239307977111289543771368187349782123251553324807507431657590386800577794623962003300128517862547888934562112158507723708981999766299321660352009519494664379011178313487910324549720221787398388046021051752171814904169429088067554810323653692426431418956910331017624573180024172329490054342254406531579091353177213181706191216133430479936802312028022303339397707317856669342287945144937863592093805495950434365986411363016336917629944748125591903165940029350208090048656728675195995994849551960139559368491578902868099755885987659468937421087458575302401461596053549960728071410152605470571764044626916889751440046294181595315250398270558959758850942885006599372294831347084923389769208143784423450187548119021840381550187917265710978397351562039765639428733480591800506266387610773909232761323943937435137246892133208339712850298148920821009386319107237380953261466060236170123018595654352743308685063028285070513220479637742860158060073801910137567488420741462431279956711992419836260648262385361271886535407093756611121844649478948377172496374783219148046774454502102657008197021926090107805488746312177491926669882888154624614675095178937519377261730895786726654024694405197895702078178240295026103077975179962906319879376687245857230400199035795061151604983921013769851519924290979927468721701075776927718338950084405801211083045347258541758938462540594647670909526376074091402634505361292881025003476224776143861076411894087105604032449378413270009735201651364499314705150156938349075911743514744801994241357731934486149156007759901682027806321070876130552168141137189725577177902451508305402965903812286310054985338092847919199633086236604129699857979284819883556966883797587423910803238585772038656043793459212810512082820665271466261495550176305983545080674371811379686337720203687817913493178735221267187173290070109671777673425053786118936588159518870307187906090808008478404905094751201045974490641938873247328876038581313081273189098679007159992880963580979036247445830557079877371347287069589859139066945772656749144522042083892447696008398138668929689523100550684925740462906932857501944252456314324256500417134225116988991523875913069957123215108659103367066970686306850023067391493345922679270472312553715360653169058788573034000603730710367293035570967849527953799356575053306238853102552116776423691237226881058753313139266808090290068692485975977911185947315227740233845974149085723357012367606132849210243368127679241281205799502548691923797475022460920006267775801519502540536449972544758255269873363054797469756364211404060242493592226658129884018529005941166977758154248316433628764712530068397343498202106412781235448870168543724395984369620030218128484832539098426707714455730197037381551545627885890137363397416098871565663074515962277310176507440110130857266307465085847498171560435344677748238792083789107103655704249974394516514507239812901593347105201166729182303014875180583200948640377980480572700175741961814243726751816268354502332062824910677390015091387876838181841278602081304572273209418563376772148709508962498696362606267789458463498194488735851774056852950721005054449026599448196118752334030123821948242742824484517788846945070979125429113870673808567507724379374105163335171082111849735058149026139997483252678883556853965333905860342559922152944124954991343773999433767943720945291994238328785382117860727562234151957038935508158642733382455416562923667790106413054013547977050022450959752292214139117776995032809837940894828731724960080251022927959397593432717529256710526338228776397867231236811797300972907957549309912190582957014083715275297002654415893219539188403547661033727696315824558224465492365869226080525950185397178989046939569023065783961159977660459974310906651643562542995934644013204599155844445845427785571264201441357548385786431863442149537593128702207545094677199914105060957023857408440142515035742125036206406493012010919787859646921899632980762606239797724647398898765505105283925948435794250246156882219944889513272408544442616672395026821391755119303192499546903554715757354103203964285792046643614173457625706051730676594280415219117855689389688349768776847386630369406968600148249436391458624801740464848905803610591569147962480251087655661456806243127527702327791709285122895696156868165222949145991550165494509721397786649453979860050010831663960222752035773723881833687686936872653522571207058863477097118509754981125007874256264038842726432338684107159013515885516363891003304092240198541887388229974584533911781197602336315023363094694965867609448196397908303014649704796153963370254409779626005656715586842927607942811185258476068376764782705770772362279064733656188998858159472976999064494616467109317264862102227328062667905492021807580468667442888458556207850601023139157031950562676200348502221557888702086854972733663269242534107323878764843106983845732666174230936991242341196372350893330981177033132509233247627083376136195362805247086923992032406225077316836454750198528200731623821639713431951156262048425906440296565946468507800910178952838053471928729089625850531677643091503702994951594018955039022833035457291015096660197001276142616948465702674076182505255638997774221596106882395682244261183925068515841430267040913689769110266843672282500111193370997719124031376641709399506795551997255447766626784013326153099431527979384020702305209232113996708603574046074104781835960323543715748610466901428538330613382304218199248667705972944339590688491542169598878186720696876459052827119061537730993527967722547448769551101818901444325372839190572988683680656175647480184385216624605630880575714742514524843562519332475591318439110567182049790599533408041524908522309170272404800184629107773315218634118870077065488579217353800783389833315298011429222958263974396042841557693607244003718452323771081864574098444089472242464854775540358484226486132924669983669564220775289077658898414332242698232452749245322214873639488428007067777387090187023714261224068723340141045514415053035388706788782938548728398840911463654876305057277200886235966073154592418770173285365849445699330657968693994439537928841308365755119767431031159940269508400349394997639730533626263418591511914846066603018900102977130373201279733063214610255583655137649063884198555232633327405792049785484383472675852995600456566326096282229851526011443642258035521178120449280410282745781577616918576822815364171679529776327535397941083806663698167095785343242745139967629148323154648766814891917942220975965757485542304653467517718013433454233247459788311135199894691081116755909826261290371345456690567630930477010391534056154098112886429171511045031143709323696978778390465960336337234054772988496226545761858112129710094500866382329947884873054295607891211716091466928190163681358818227440486414165279231473500014381453379135034959352942498571697058690956775009205297398451904197342163322657990965725876800502020993465387825162010043651916352783255305359973704929983602542282702255126060426853658821681268530042182125985478437988071405365355549731259762979769841993820911492635416885605533086165136249798118277816367786132246979867903877957625499198521788685042953535470334757152317285922163151964910642100128763655161213162130270240210316707457294181410357477200679863551093449006882983213304480594914700677851837459452216164207137493129900290959640004062159331627885127785516884171833592103064622448379234762752894873246740142538552461894371004964960386583816076852377909836452415283637806703257849137625725058540479065362739573026758581617890157495214419322493365723564436776605300139959743004780031922012985104151273323449668895567555383780420082030767567881208107658788281612786052919923054528967255887542021405688094329335023989234824791292628597737821968962960096998466946931720019593961381666596166091045724523442882066608169942553300521863599682824878410194395429334663195150772363784962074085596713967925564441611368650230527884567345795777337475748604202467211251397385991630363694310569574384423435027683320073878970459925328202736116950588489601909313701003993264145914991098192636960056386592680297268025690653060229789394655618041577153940075474841842135858641188204407383693324285719392882210882740976025499058317290673325975208142911672662159689140370958845193162428557189759666623866428989779842798948072990834729249253603054467801699537767385565760315136969223726660888037884856749518236201275019330570724200138735824067744043057341278567148038788316373853031743697123095940678038153723282670383277784153652914068553656473627769545361087393335186795980470730630026979585893996116449600784295082042369608090211965238011699777710541597620833144646978316434196284396310422792488966626146456672194048006772368678258861007178232476198676962254807334955061144538829680807419556488439895089220264681413355501312222455272949121751066692077569141926893616803070157245399473640598680939675154146330218325073126184379044179648855586253990504203128950303170142462681285177635811095389215190277896500662047761883567838107504633550547693379791420252742213276742260476287106080390258908218809678526754938931701294242353927690833504875731359484633281113142783590680922369401088517540874120504117178104056801507205303001096986971979669207667039254754324927721098588285774548464912675418780547986029762053887143522032112946742655288557573423718749391314290310734542564722004028291641222759060129799025496062640528343603645408221191997683382931124723593016658384998957905218142280593889228954751549906571350101108888708369680576385424064762174618395629625659469868578131665497943030229384498752806518798527779848690844826877408284538221175673864172535078265943420558453907405023714727609549446481596949351965692168420140509136479037095584897885638106779831043401848083612757345833205007816395715734338893047484537790730971119497462329603126488834931099688382079348185947919500263849848845809604525259356484688583890997944946515515294859385695983680066266020001621113609919378196159986244708994742213419449940273954369217937193006344194187509133041031260022350034389990773231275570724466680551575574435915864699031212473777870505317536512312421564420332690080790549395830907161977863642749903132300934397795133726952170257015116951348409016523051510808708469013627984261516556180294130070378119273458142669123285720093021088023099530391254187509695542809742043163435257206284435172830060532301768480314590056935372534765992295017820979453391965118940429426846356918699939124900725654627560984379098820804557059058267715094465495192470590080493370901923335254637290504620266804890097619279665470067919932716403768426790401388263946837889320952124004603349234006076431190056606210954843596503549410459100386966047385845933874545553154613432894021235343558765103607943096250516946831931393397149167214039944581665390603979009400724233261427952678933476864965118642487004246077544968027818583822878130835238506314086935686160904012697623657659251891182481824331986118409887743989468136723841741587865826707971467544193738148495099602150095526419340102667422093559400535678793374562927315043718289549511443113220258298194370079423241749042062172238789824889894259927548927330949041103774060575063017202589792156070512444362496585395227872318760660960878341056553334572731072131091932225723782413324721962345137270351925686799041094826638294094355105005254555519135605085469058137655339230783972710041259839053355955882655614579826063131857143084418051832391217018567460047876680395550464343049940409621953461223986703536453812419905601026611575038661319826673056504109278858804311030823015728649120679054589621149065086581448166699507824735760761286950585756920611342943731250347676176230904691949667125659284216839877917346295734753633753247371789628472318079099167409215015803609629578681948872450241415430034020723993758842535125762680148862479949244388104214267985426299348560937604448181109045465046485361975616618607994852573928288649566681055804362112243465376810959434960935714551725319968487032514809948670335531522338600624591380786966075078283336654524253382044872322691336509121700450318456182597733813449412888888578538848967237445779532610131194997436790836829670066584913320082840653586411666265845933542029209361733008303104090293205406303570730238895146805227352673101034744907233118023435905036439244541675597099589230014523728704374160645029475140866200201155813328020204776224910027422085578457854966079531481393026048047724217699276271442525249908778666846406967532548807581723230556651983674113149765697030270910408125373347035727577041053997010046334768431014526881324368721398071147029924640449136903124112110092645213816733668336020437106115253580677885414047099588218270421827858571773981919709124580679692003376467031115491958828041684051532886294273800329988628495576916782992121383414527890970589453177731100134147172464769892688895986656784825787735239090613529909244292326878659436420848628274284273960782352974340642034794619548898503554453603410243713501003935811190851610256650324203709761353696853741135105342200184842623045007784826986121696045423553198240023889167670396861938477626889571678068680832405107365426066083157904709837355396738606359575571556301081691325166162794304974210533450614397686775121289686079234214134844184074545519907184516531909916716567206176966762434002082955089673468851327275405099168855080025184869341179116181026018718854370495754332323708855142120978235667352808588129145975759923801535969095651701271857624576212293171238330486240205350923165532986599907801172782073532877299600820355499928398583197556887246073020185027975660520193973416810870144365406836601805708275818151306937453785114321613419214682477880883077277104695576476481030231397740993869057060240559771440985291733223920583914907283127866142902414878521047422496877100151825831300933942080103937915694024020196338307980739931102173310070259465550107404486811963264501522854174745337891596334141372170544717108552450507286972156318324750201516744059626191479501948459138001957635840652745369734121527074606800895703320199015136200727665358770127996234999230327462007575005837209919107840165382720207610716428937358153743697271898672924766757958395956287518680120343432216930182098262280060195866631607844653314033545138162888429999043029458000668218825162212381135246811266138829351920055540070380574381830510453757824460763237437866392081098809518239022783325274648769751020848529530895237159713130094297938058990958507702592186108005059197117957124756753939847824865138101724624954919574335475188080996679171461734946230321773563703750002076124844488713588859980744887809497205040277916724482100451518881151456304908941310994679210907188479123179408899955486898003589221122912427252828253935162907290756695619700337446646656967697599119810878085731299218159106375149662127050704983189303401527679225633609837021010413526927973578720810761883907617413659528330059026362214140190818412240888038991903951276225968048223045106818540093913927610331780237647511437548996091209113422763433342176892171156529842594459991220021692393756445723924925964210750268206110554389400996763326697968433257685247709081771682840402349017730031800667841149456461869383183263667418028389868133307555318243274623998392563111563678180031935144245571789734466249156013025816892663438674079517181599525461977741645141000991634190162209389892496419452552699163981038285769848266958996168246289443459397530000303480425738448630770171713147772691458976569632190912851003932031285114393920171643433786407536377506008196821328823951496864737048586467384197010608689577256442759445870257222367901979086957311540523817568061066681760685905547313080112470323981106782738290870101289207526440047961845126081199139368341234702576281480920871058657090711044508288873135354209189218191959886407586682980710419654409116764047862242939257668473072781736011110782686822177826265973727282098171040353483568394411981381834217760680591571004756069481857110213583407541113774873091932097666244510810979580914582025138816817884092798096106254993378833923319327066414154679007322142252696688493289705317517766478343234903840201713251732843935663933445182240883823520101361914853246826374295616864634348981661812970214413959893403971173224000589218786866998814790485134168926734434938748318580989090069339672904789002414461322168179067803738972003188401487548111172393836622820990937969814575818432401885557704612736028635299016902957795721198783567070494311706731551827441671928083640831799016499935792240092200618054809106727085085455030120292084209635943840188514177112906871626188146046572775475354168788868837897757101319577582971765341960348747462003966826370353352812608219568768861039777067485930858744832830115597540163327776527817890600778309975506480573102869967181266384639035080395588433014393491919160935705838391702860124610873785781008821450653645937109947593997449994117383506845232075765917670466902196239720381986670207458969530720583360121029638738761891629606888990610485884150972137485733187842825402114850908800696913202819320549879157464584180884798705527394364807886981288182766100911123605259867739358160216385612863916519661164056606012257470881854068612261358669235318673081378731247863339132829006292653377440720099046094205071038374321567503752516934230412869767499543346726012971904674177218179913383005568412547490465191820414275837113446444385212974087480614164175393127770327469940042289552559765880965363949590782878965847565284834785431782344000232131760810533780088216715920679427192699352245513213687779867915871759499080145230879125266430520597839533006019377902433634458101856811349667647888111934637508580461482541840114645957340937494485992900898708874918404740033406738909774419222143698627382402981155020419483434087833607697494861045623247955113981239311461924302490069063715373800006240922916794724631715893136916540897206228836318384120313725960516712540523868305229351328146667402471643138941017680467287830615099213070159976088371930007409266571926182870310403127647830005059727978531603496087989545893402463152838753626687460912055967883290170725263289264394237099816249851002837729370822484757382952875195411642016245402476795001369943539692715305582121737540393078305757930452426802813854671574188878564216474728951700314884769510130893409096386168480688434302277980957372484532661142701635810834645651086499304529178205254225009541913420865374190892641554351873445862421876466909621568895012315427976634740020824818159868252662172460625635989075986217330390007254964979645019935746480424777996917620867013666172153725126310253490980396889660209770957210531218236706089037272683895281995994599151165894286433360057336977865889231247912724402972159202056957493654710998621330542781852258268270262430987099413873796080442127893862004379393158105102493085857470816047243557776265547892315325211885787161003363272825180599612925204326323387378556112724772033184511359914361097976877830722050522234377576682881553692828272534279473421892727425295151096232772022331054297393661779825210590429206272001295364138067735011788755200574666265825640925540548148712750043295340663833546439126492359283006455307706887865398080179064681750061181634657062594647266888704089278548597790306729769731773951648298846876831490149853157101388833077343472539731543971258736533660234849982311887185178000462541416315402509787499964559370507167541575285240216633357140722504519530153699555106746941266386926292842936049271438845291812115315837260756220237525135910250037466878570309104632861932711544893500862659920609689275862654745929044513738085645618937483752725947998148421846222957794143193196964721837981375244612851654555376194285456998311164736187168640977003937388166865413007003069582607466415847234901220639035478599432816199129660148482154376128282062061494199007589383712254580148585419711816548698159179198455842279031630079274453783743432606022613800458313271329368125220412056144684767874573190828619400339996454216262138692348274455314852557514279690106392012603027756440906286766243657454552274521139839256102756732552348971546038080911754486005674874549711423333030416674458677918166277726864577038445497187696690123394588325036270001775981979817032386194994684242380215435852365063353335624133770892270981321628016927664835381757264120122467188623274885816225908703966313293631906644564831549186100703896016545392526579622789283648073745859222483983747365390604445361788730860300118371657682258396095604917438113717164366509554037374584128585005146658309253414364903606505407620321672890240344991096243517411480959968434523411883244210389159266016059255918156742512472952113201176833490301488125975352115411013723209386941137109241680559267973446667541542568238122334381178495032208528487432167042531525601748262845937848153208242808935063727915509490006659782694388135122714815762710278420579047217557922118028662406042606856104024415271721885738977786255615593023387410176138268648257123444138137633039651050778002474632091487403179693969372960417614591019340786250899989787234213101825440653547409315407381193405877537970175884602654019857683012823355506311923589580446187048948046968109701047445532494732008235224838365446860261658241404127428419966351870393365638720685744891670084933612076774616842968927195054295231469365518160941065799968091585497421115791576432662304491535596661133717327606256920933941417215995832409977091647703560617033343094610884847625611792567884201648329170234372163822388035209936235717639722251536944800364215907730927862637712124231225112894727392666944125764024113643257103914225693074484983897113792914439134693898844750729495071539753565532252347882961492404813798115747384617334269411470414075700946555499633132171275726519783457101253902278939597335859195175728079819843012048783204402153681282599525176068503237552354946417677389279545022611194883020178100657050247629717172927643815287838063299364118247328920507006317448465300094956019488426259375785473635011580538674508854077113429960246005555405934989982778408045502657756628946331942114233007424349166603509112185039125200838096102696589799683907243181712735002991687595585635211343408221649866667970784271211624520385307841019484316661724727626259979245827964712573276247411160072016233795639280815982675982006688929899641696854779858375206638238400347326163832131138282379368128950142925809508423308373735838936960546291861193706417529956515730194163789504859446799696996716144740777429401148135407650777257577937220387130498391919652919051005642130173740422933703861097377283388980479326606366032518207109613440168963961767362895501132002896149395190642771577915374384761605028889469608165484354987434788525003439521924523744552517339992029256841866144730042062670106176681151109244349760652390081611296264265857615881328455550192495964711202245406434383770481719849537075485549272820181002570583514638266414940854350525790592153539662946024576317160927578038007543264113790725950132575456536591263857206906533282961927599821698258669187419652505271912681807973329386831133928385618801813974700506955590098186771762638011569976836863341252317251433451456334902826959156401068682146443885256501826974558366053215208359102535345905111420366438358997891519176939902768002800977041765388130144407609075870175306847897439926547630001534330288311724024897175559128834631035854710920506249020541391514468347169867142439154577346696776428655319955359269761044593810958754587561430887049757057309391222481038262891800605118228458333403472471207712533444193630957219702409679631779417178902864587562851400156041872969166576912025216385852616975695552716436901185521645713580649321134198745447595345049238709431975454739751177990250629586847094826400535262572213802496811771398970333012832433835485935577993447604084609021715340704964862310484880915028656950285739865590423543777959653338216937746078221035484899157827944829995971467549798015450265058465914804247092824578678784552765823551354371954184787977416953029758443578169044521841971539827449123029374952643755100509918536639394390498489608274662785904589429931722034980496017424113378013278795461115269982986502377678262091035556070845102467804818593639899973948916788186708008465118534950134395697000936867704061875030408424112453833020649864814062986722302004733529700612206849472587518053131625909028319558963703983380991030603133035020281724470956759404083574878705402025294026938569013674524985307972559600692394552344164902362305751207667263764947580934176210580755992507373535939968014803119944144059545307071803849833518291843834127685888282213902097398850154871910381097468763867142421748035595437953546433910635977809862105337576048476498252886157441298045884170521057821614893600037996693203758386495032928159600458591639757365612597577572359565277504426357917372969585961597633699346111031374090699920643871477892682929435869646704471999488787680450295346782677600087211324408280185511581078765659854184781705700799214277051443042078348052222318914916950897247964508785098507870652153063259821756212399147637696854857922351605614381609913434938363477055695284422806393919351370291157249715771537528040085466672110004991759546576807597959344051923731034740550253322245436743681163650197642202016080643086463286053860571325584643626083090302124631550221050530469763687625069826598944907702228489442777639376063617535464259264557152447305115365567454120011826410671143736073032159749007517270385305584865172828012279207483266393258700661163095212576132505308072519929396532887022104205830097034327479491964054260229895428442302632429029245808152679504088127874733235981173705409775902573594663386771698253254594048879778893053090941183903097322566914030037768733509170522508277197650224092554160498362818539866673849841381668690046933084165750447544978092646952147038128037348286624316405406003119917647139024354526619215280338213153742415381502760290989391034133405431252847879614091210471039832700553453886915269733838731387309353471997657165680024653826105555335801209129048907194251687043835139203796401444276829364319804205831327934124407537810226970399735244259965242067196974160942600362500306242801539862448902867578837945300280515020573278214365975276713603103793899573766102536840731889142187558385803973861439380438811173234279397315553047494534700159069062418744107071645449856090494971733665863166865343191542890193337157407011172745822386629385708917948267220867880905952235121875922743178848475292166439797614137708931004742910902303439040925999791662134466630625473888802987902243081917067289529223205012771026112229043782624009167750674127102399811779760341899817326567536410590182666957788206110388415727192089832714161121807985290553428927165221527109457035539088653564810189768742574965562722918880467993450824004916650731487334324767326287454179591083469582288443683549148539610456609125157761977667975699078169731805978133285715997820234672940072127591408004480967414821018745615981485720614636699268971492608641327811623810691578050053623940006686650116440314976641842501697696982753366613991520372085538531011491539152151116421066198641997806726530610831443834800208225422064160567537679559476541979481139989734980706049391656500662747609504277351949442321502967706178583274936947766727041239696127887045034439797600222040349093558228083131466966276033266822294885821962952547525618871406241647003633287808968769623118095804135684084961276292754333567217851659220344239501397333458438613339566595974397079822661552516902447548914294868531702806765984952919670935676890381090889030715001445839542670826640579868167679955289711626851900560922176685749145573030666119594438110343894547828453045482434825785216144096665559605636014532679176146527339296642254157188314698651006623552036132627371888652463721430927767080772581067703906865181415631271453252464255585119778365525378869012046999522010387189887892971163432961448378396040423206917830710285252049124986860910878132168583348865625879863580083505493369665188239870159311983115974110850419683576336845003039363278760480988281977232836358354618583535498528608660285766604554650659385039699054047605970335944234783336709451529376957575846668242259318148098557711126097363767918394337370558408138425488938099258225401602352603725655664261082458346220584000592548217857892466537318116264325510375633112269067788713182400969765961026311882443563520867663063283583714227780918417798788590733544253456597099583546739221861069547060842002050283187359585561164417919200140115209170621168921389531396234405789872398970616023325772084135895652962014004212551968956475426135281215157736280772797772348983159212370483763801356008103650847395619317186747562343463034617037432612179237773324809105255722671582164054309739844837425809425200586906131103822211994319299887610117406114849147998074776579026075619690378003964150084783715466875103859172926251985041012972815211499017056463508491309229562759763451576801564391961847130292123027136918650472459378866241375259550408181676586090236342014119450083670011559063498317422006370767892338612172935802136469573262896658344743200625876032263349960741725767720075863855328905492610627674081235332676470672017199139788566531166691112635981466257449782727019340679413803563566550667967835287209913633268925584627523278849418810336640294336318050683396334262406391410565048128315062598002418341379095565257092144100933338536790217766071822542833065643966652278040272551760438112490795546524164650464251362655296839733356255162633085606006212743134061393774438599390035193326598882622823191230785669504862484925883666151497436198295327313448378613989593982581648353072873320541061270954933319462627288274290498062595919156624279838201841530381164252316652693820690528189865528719102539061067055972657836421992926669840593701253637408862737243705911915432567494001088484132577297880842786759600052849742694114924749205287630953425066039985019166894989195492513208349354952920731554301082373460312883735754302812593517730304361257759705944973611574155822753969769260499350567391816867831929468530163913681857959843710780046853361639000667210231298531657367045683158136953548840428586796236467648862852609051263414928626519622780574560389485207546918016170919715266310589353464476110349832232047785812284209128491452701406608024712760164046716518474653819831012989173447376787685579333953475103444484281147418490895019482655593756744575568883112977756924141504242235292849063089225852213388997049823403313187026132125066404701311795526904667731909267683958887588525988961037842904738169361025992570747966133769255791915440250464824599098279084533852174072659537540373527016622651751882336524769962389595100687555928008862544704442325312434621112346539490303190935934021465909136382370613683382935001895819885017865743546621708588634296764845529241388128056094732059685930943891344992055009742977490411596045980029074955174846921224642346465387198557732090780850096570515006591109952512995610770729126729775460695659772176243836421696237465097765719906709296956801922471661522426968542556383852170416689825210428603559360219515224046118704124876179365622298397041208945995361098278007214149818601420707646651671237919268192522102998289564644374456876505273980084528316679555487498024415577824103132108906113501203700341517535958407311647324240973957076377657656881219785509973377725669312656844109549655058116880279706259953139808867059986731833977963313889668396977911903905563715911809917324981374910525045696954271314459750383012596631092297054947735880270082668347851311790215823479873172283153785021503202715315556657751411399736060493215703156517545782334040320969781708929280250658509316076566608701551982448089111903544291214987746345175269666420953983797668494971884839960821027907591681630209117150075246889766587058526167751271652727737983258915258601263464768182813036779506976742511479883688461138426525323333813712767451725867566671606381281833489685735047253970504325717572020432800530289786819318536257858463221336088419999989805533731844690308108652158422397924107318707653973979872744471281238764579974100588186928852530884297471233268867177933853173545754153824576241954072111316856315132838495996503937979996457065286259344994214241331213673331761472205103696725229697188634217617292156305248698911298414296887963749501414176220880773568605960228372412127924235887165036930712299396677815291854326064090666503157611476700036204081229400406304969713804481450766179436870996859781498064282141808836385970886761294844821102379432315730417182962658595715703275462495177548025189260200910640272532852788753421725466860650877657814634987542811917993577657921285204203424198192759806881608994238560056499512474930545489497623082217878535919214069617873062715411432797137328112066009599404097980880775583815365937867149578608787020646915824984966058056442738436253877707147394382845214375169626505908144619114442313955541332058395331993549282333939914366466065903975019852061195554323829410625819618949675935004963981436178727877231200448363487665597870246720270004500652709619867920323925289466933975464663410953295239553460032619043611742682299236899045586758975189363569762072374908430527283881114764803263537162729172010565435470842176607635053423901321819364751870252851506497114818365992836207144241267011297298614308195840398140311963179726079890915892743854841960661751021571905818253371135282877126315592032497245647395166335073623383778129218712977328442544781723936855636413755845879663661467300601147415642205136790505292789598084305304360451306451597477968875588809350960304373629566786308074756564596964960967893890218200686142177573192746929496209288318371684156039839045192012354476729196645244990130062623117626854582374679411113851011017582647404806869164143006562627626053693869844554257285958109853585887383326144806964249881861974886158083396466094301792250107913555348260023067844433013958313764519852735459286026921161238398074971372480503461348015746110477750413834071869413817059260871039486098854530068952986957248692419972035248397681497800915974317859463080290347245270817264002503136919114387561863074619240987892849178324596996425010208555153197771296939240968511575617403371041876682126068775305371016096700859751301129341618754164631853324066292365535821959588538400872478013900616161530736442556909048647893694337006011093524886843602635390807439232046737877386779852577601321061245935186769374970492077650495414219341454521516348696014318686717310224283925899257081327599888380811898996748776569336897285330634315794287912316589686108263422585860506653671248874246499062017408792014905144342066247499965787582665839014168727280102676946598406782013446789196978645857228990419731628707138907057753658499426264382704444532058151502662340684460311142290381931484355933683298121569146031749720234814681860726982641919917766588240615366359279522095095522816225877829614206790334232894544984495839459599393999684344088536481929385196204846264226323069347051752666492360998579627038893597158408596927426304455489848817994860967333116587310211628105853383167583588422201180354381518332828798446089387501043818514290670304737950018303076431188758289232657080929639089503480041798267552375027793644936870719085129691688035466290095362261274069318793564228550721497562021217646187357199796027083986589987218377909375150043626063422847538516316639077102163666400015903106435410364335822040768592030256828730215051888233880689882792762796289657912136802539402250887880977212232205821590557928770118864657268668581993073869731510539149331913845493785756867449108608341496025641991115397198678471757462891433184754854815367211750589935144469181281696876470047579577523545926790172901535550268962164724004649474760389295525818882515837100438964043566497796951303611787661183319907832129377239770309635477783060744362191965098928297397871985854079181792186854584509991224885938341549830899446495502831188598357861375684017254507763449934451795941091760089674186865727346630756444439795845185221781857557231173922288085060989069271962734001487649886134089922585246519717808911863895125549499112851834943836944920712847370195703920751229329413081424176834212743059159279266540002672750234594115873603365866242159917232536752672732768985387381560676105440220863868443127479043516372471749125155472026065769692517229355470660543787944071472427269212325830340236431339223310493071936661465413446542839064773154682200254847631612425803139874796879741795907837039964964350463973934398931167503639510993119213235785811771059114123470059420507838911525799268663174067535440028031700795607417726673019579841232325452405835356643216718811009078792961814284114759060357766273887693762568910691638720487774277483866547381665904521004647840512465076282546667659064885986912876627494429302935341577709421880209717592302416584167714787683774396172171947333618587062286164453356791549565294780905643079698107933006055421246711826780555154859527506638449402937155467838521979310325330047325796322078311037656466602623706191724615536700901145826351226727689391818104484399490507704746036696032515090681173203017228894780749572119935442883804259906080199835787533006870746182867124840532273214311942198169265979134590510564495450900295307485308460318908492269311463228074933315889148428258367699860861143933115878521368714987845063322197443837982083088766721717498904844668797933374034141654829591471152403444758107412012162026047187939548431131828649357815498633604656934683993768872535982542193406845127876127294523126675135665779784748944065422714000892480570623932752730638188243625923362361433826686111132760526539973656657497634898205413067147768186645208071362487660172548598820381221915585252883358602811959081911019493413458186278585659230490255545423637705440922399129043711308340781845809187816263089011991296627430690879880273905453630448243390544567728798574301633056813191005841122411902406988023227793386560097638066434175406265670874587611599573330791990825421265015787168486530242768486309701202468827149479553630200850372865411527089853544194172980482606736624108918812641966700423928087157902479080086629086241021097023103140953179525821103116212215925279036096589796703177456709631360937818049868397631015957300702009311027724191568588965030148027797655983224793799951617078089033262441378170704830847066942640156650790368281492231681624306486978957942216772592617464094799371118637964085841524601317074523686185878983189846172482993540116272249679260846373840241061380077836042524591512251583694330529485674043163441988985601869644332270660512063227429719595704413372441492418313495635773862857085712506377177492511589957548054636006700770512040660019434693242272901154143660900827349882436094671355902399539773527826005169378071106315664034007365329804084894535314849029851815681604297152196372030540236775072344092270717890910301298763535819787023210662280677292068581766224572905864386270378276910338806045731267456342392217600583195334569352182054999465094696343280163896317486805138085805087245286156297052578720287853149896652113038543138573918171036731387348880576200789849918731615481073481894608482682932680391134003959783255579554018700699777965890439218347427306532614335320783557553373051507808973162098407641704974258366003931564287817326173038119527319555372302198009656715673924218450224720464803175289119119066878440569500452013327949179015295913079998595616428489411953065914810854955642377553213827979872143537171477833853428542164387632702134751903153086742728876374695325834105943087560916361310226565003726663901962692711519828793142300242914342222451545777207896907366629971412694419910978305833802204426820323506776732271388211867662358829038376370672860675216075959981693321072932980310215866790709785910584418701835496337545332692093068595369449398073197355260366719662571409264002357792854420609621493043848000739308584286201916033538728910125199323099661046693257186647084733544591367117014940543541113984864017408724666176090603227706009607033730075152817850566220378367649481954118692219077018729605279063829265879759335336036654033766932719727305231824793256533736594568851403623215082502991733026643487125666774304255144345800806320940787094661020961897284709399662760028026108651218293729957929930092843522193225869486086233956813024198918338297931242397895109015061261849462499488033167863197122610792355940619797005338697106797006399504417170626575889857293663205149282314892469993817574107489851859429368658343906160532060854030828893921006495016604731165653286989903268141316817961144680400559892693927088662222816534765835956069389055844672830021483529937199411339890863539642439688235637199594823009295133140313171742187622616269119295284319096811435618826012014043184468519435709407703646719007379824736802346575793563709109022059260387730376156487277454084513373235688830913283634847534322166916717889554124929633380225469455482637999185882631207231621042433582360119720931961950110381603765993075552251231420014579276445969281308170828303854316107332237318808494230902571218602961649591376499765086604708809717006930107464845143367075954578158167181833583632052624657243078384035859361025765996244544460310030335949506814644587578779819035540092686773506931577539367166150157240897025210721304614313366031304931515839874413605583912461258369523382321992446325878351231872036675890697036807356665777265175339417980898858160528047119692545150904670881818606426917283894524232617043757352558846831822974700669052053409276878041617037075385525147129940669555617725309326826677304927786205712517848507692426886670036689970098366563125551956920299458820167084090560437130174490839445460872214798015497854883036207083503906982712758651723132368767790209748575516818517282445954115339117836348500205268819661176218395109629633171780560050989166198843197586742798578531995419972637249124147901771139919714915994997525458788692486475770557930195091090549864435281456761166072741387878979539521442541895322835265236537385880060732052224783427837788383591538354002362000286791835491776920901313157743293927118187169184398680350945055030510770738160802804645703095235411585567475903621170831501713683322830281794268962234259454826819487042500784144095893214291195081216461681500733678567125735869805278755693040078285673323407375170672609109302582693357865945013610475590049658953093762606980278399331590832815628568143801185260588738920873427341801174040182721876570498243053922589663755151796706266277561926733382763643838881820171048187982575344217017702282473032726214789084072702206027318888116058211140570367090926213773320127920363701479640642683311238370958024849198418303970191651066852679501527495892772126195742371612077332919179945630935586656322810647652149877332660398681140535465409343464021514509537117959328114220385021164331325237915181482038061893541749656837698084952910133186991725643586759027901211801987502724689461335276092866839374491811005059643388308894814635235668211577811976273855948093478059748794963206272889904623522053600093495997860890680036490632240620083470544747923262822203612618139578525386151243423044228103694366549824303036093527251293564159578531869691825434073675187927654782559494918601189943294722961877557993556957900891098721023781804982353796447245049790914762568847117585658790236288184524779019869702635745553861700694411630089103670051203836570717312393057489510928513307944788906570489200313632788130858805565030404878836643809234449040233705369514743327119066851792045165109472549783343610380918689064729207454773254746522448533247168776658453839893458821355532963091263692567522663864836241657569875337753006456608202514260084421142802231315303327491722589483911292108875932647156232559070522950489886472686203752926106714900595868810424830109241447002708202352785223405905929209473771004820791501407566384927442752981510566101379129524772095292481008848040655963797484951145427765960691705265572593288999802443623861537770020855337017402606260110244909311036449421648152891677809698565048759489739027521817521978502164335104582258527755645600915771419237953680629526269071402860485944819164728607247936283737110145720079352321300336820216944041798895955811958077833972558710891306182781130063909803341394057842211482460767796573066169244717853922740531506444561771280992067798142261921303396749887254821280889704928774546363319843092584046317810747884056932501997741576305533040046932408948045432730735037843942609324645236158785177680675192587727224782857971120196514536623604806878672277932689211464482580395905318189638182739467063231697099096927228866142123215801542941568300843413738638485787720960589741088924295190799130965037192678370658300525816974464621370573370147858606550595240427182210911637092342622576844325793910956913908528704946360199464303570093193561304597047552998739005135636338089916144792908373335596336407149834270181836800505343507896013495572098369965988306597609428063025692372338277085016184666658308961267626726673739817250077715986891788855085767872899056583088713828160643820489402810252206384963929066728538636810321164240392543189913570511066807483052809762730981562230419333234831812064460884143663622775991792593081273690795879331710493704276942355772684622190568700550959867236648684266695150501022662680684331396821163629849131237418255368205696750531752679199349138517176917264960444325507453172671750640846996725239994735316793839357117526834988707637550280211673049336516594863452224033693748509256351533990932623557079865700163776368793172813504650894115720345767013574976503946827565046118068385134489306652484168233993214729269649001052611686618253510818279315426215155368192363545017171505314411416731839477205778980580719739237069577981581244027076564367082978745159321134862721307672070834151988677867233835114248514685174255493299117723413031548600991690870137298109353416055772398240730681736417700714587966189431369533425958031787059189983912284106428827712599901414930974832276805154492751856647996694379625322091825236973382766014979300544819626594787821489048313020106205360542812282812773798441234122740613947181970930190453991091423352622553108861460254490361785426538500665420360718524580552136743700199279814639284490593550410786415901831732058343828075582836014375309308163668409052578503195803305206495076927277456337871058295392866801583691758111450120326344544921063737709702718189665932235497410506726581637236460554180556595827265511023967751953426127433787434437275789366742347079053364148698407470390028300270598512498126984059217650944640258763005705035685262641778932147715539170916353163830617815567291688736902410728463358723742209967644445074841280835211660034633548487776070217673813070689290019066631098765869959336301430791820148020737993745356743877779368232739381254304737486440733892404601582543483988794655439816374999259557329643688162414226528945424503407595662912177642561568565338398292529362368164986704248142992474111748189925508121410627714498472914021502866425909751926292177307927652485583907258219616677834077291432524187652742426632778531638132764518278600068845887132273355448850595910584796188977079094029191120401153775131030079264866975957102575943203193878089364097424376283140429509243500287418917651642212402558759499920638551989421384097673846232652418312000031791076578538142916063881881791689159234507092369662493433357279535158072865846119136629308205505493694843901117567395557876748379339586375720552740611052171968027340226535472505597486293174821672923477238095737243922366916111803314276121188264103364355871285879399086588031397893315965165961208864229342042617425165043659189999221150173379054222539743460710949880716634976646696892641979419138107603360431628498880873783222678724221576401439905466085862824080976898104453763307689366898184929160982223487529149755293689547397801929687006415240718431681707352764431019201024712811206581569685807983484787960521317863670355769170705812776028558063863586869637142227861567670801535512150593841178671806639021634605517407392745085850923872857365778945324866246975686180475901012279536793095697799872545495900921407900780071848222321700652567842834147197898431435030880937096035835176153197904363047210788025584684716647882530766813428233603998670662081567087405944109877993487523009524133159663120769305244045534613556577842876561932509278985865668723555240480600832190855842214964995545021997206493291891195795864216089430740677807491636855776209130799624510633582371904574723745873303468715748267410420324502478506558594839013024250326067343920928229509436890033622154516919980743296013350685762647690033405839495871606114408526497386418565307732618059816954131016697289115192105764100485271168287821722727165292937762115703384302920825387523854405413526483073468194717128552498213119770657712184704819302699444263248852257972922000548297318270608130779389358474092644189297869304720199009446704988026337298310126426767904067559105530762099241716241072106278842225057451543456337585550201124460692698637081107794948706807696401990865785324733442941680336171824486856678115536362526233617218394692912619739571836234935045371209960549337411162276542028449825511794668604865485238373456631793514890226136989756224226914670012303312346728059179868011256170234030918683869787058181706803799617604942073243236234894449802156178694843342946661909413869907187032134030212955981701613475433578806149614097928668622658672031866632116947049952582817465176332969361186933713529015916132933338799230615981185869322103634113757849055645730397473217207792935653439758182985986345606392358861776342646304590662340374255177629648282798288530997145661881054905528757758616119549657606545568096429888175781785987067924961813134626329429061973652864501445564488291662057090367185130863458737557504760932891951604559486565317698868091090771836936755642313446966690737905717904774543157801240533421229894048561855020195867910068110747982183378841690108821672676034512095960478692475013543851297190327328663990701228185559750621456241579847128535964066231175528153335652580766195361177512046198428901406979838754720205359519981512411788867767972670365958143644873645759438471647727595996241105498561096367783243670687959823004245413517582613008573127208949950108209807384692695544529867664142287296817916460367928997797238816189730677008908628422651175196423994087568868100040366966882114412972467974227919165232983024498658961219983272778345892585032547302183803816970155526191348109939226182584807549236768852239813849207212654311663899069964491436799656674682655605796883620860660040459469514641743006149183032536532198059808596915037429083024727473744482465473209029558362868985665159069121777881984575035485505391273947213872999200435628426969860684191765110521105990651553671977275384004991274538159211893008711691918411229572879326734676235272888475490275216954537237220346253380855536657387043908783889239512813774386544485027552055977711519040693369352256144402107082756590539558050224773364326203468177295169974793353689500667990760884942197745651944554756145413003866068194797709556043199800620948533856017228087253227239631795364946164975579330686864655670773966776071650297460656925011116765320830358284224018120623993857240563981394100947844136571096151931535370648970221988578154901521170478534206589285623251868716120706848964761346098644260190872879415081156690924310327745509602394649822896227308635495990306687662862008682326441768814119974752618357286225693876232831549144847439048154941421607902917967841822009411525051103777236624556805963887573126477459136678690178013188112361486138762562976326474461749035901414324037474652397457625073165571081853045627218891115166813823004326671001733405388926757789367694409712480766837308872642861456830726269683259881787386801181519651396515852312071244481409303520706630528043068277973561914848233840523782881852388892126059177459315383021612805786826603824103619142850405039255731078135383083948455678451471512668208070377338905140920671067147436143226955560582090849144506929822448463548431264334619026592847820624790807872971807156582437845835193333408073876641128072298196340588237539085753330658095322039376125261276297208875824832288227582779988107409053560885960756998002903868720755044016730487438512945865402266375412638900613390291561677790085068943930447126066385476343667688675894447093505050241058046091397031983946868061552531997035850621058603447397760817552269803659037219328746297828355471628314838809140490070352118048971846992966050633010052874164306428354726876306995384050585001869281299874180619163302564552352404564227635101990568980366517565679013199660294567566845700130450770188051171869434349778847176953664351860940970424357538519314393106915186092623778299975156754457876602578091151973390364481813716390515903386846820017666810765538945762803706684003689448227314848851874913848688239964956056131501211622555330810496933914969289584910204198803884652701442742570072287436161671368011595218156449434425256356646625417182186615126418902457367391158796535361168469896592060070252078587140379587859278503982960780441987395460308204172023917642638782443149121185132878389523366161764153824943236318149079148761950298886881284348958680736673687672021396735747504772501371055157718697931076005777478058017288449606349560834320427785752122276442326980107073439010196713711367942686602374681877104528946786644006745007267386005023564269271329047246719973487670731584841832469449865498460984594589136483927395481722929113712373587431724334623613930997438439047769931318888260822086207107284924555837261130466178097396815409670929788536162416644251965117904465940366358732139264730728862717355485914611931913716371813701530352362981258387366192136804423590662031827523555773977378294831848551077452288389397508501145248216329022789873856602927078118225791908103424499497825457640986645926194935467992434123338204884044760405490519407016798582777661895615505405295344884130083886294714984417227712700083258725902800564651561238384793034448319212659284889894425683902564845092955693336521422509537161250668924264302011034510302926189173049728365848285474472134957924978558918938402824147707304477242596689561457067635435927123820425321818398918086072232594541145952962895318166851621289701877902954181469800973231425450720781340611990163970963682135738127989326813547398115580784044489311101316913305110361630342076641027689834581709935221147596956864404276301232926955013986421236413301469102433693375065710713489032797955045730448709931844798200241845702038897343449070475204934874505810485692782553152758259068472292684510674994177053386409063207088184722526395268604769591012448191101269345234458220418800254428648036726046882018862518787327211426853529429223462766983548004154464393231543669770975839266878136674510052007671621483236918430489131155682144207467151371719949736141039088808448103535981882398466156803766703654028964391430857711616699238154397200767841880056430181397505196634894158713231743078536743962809214675242611145083625379382799989300661495920742574075969293979936834373189485739683537137838523552202853728751875242236421730203546211879868958225441768568447916717551577775223440205918238392187880151723437097548282361336135188920655139766933442992141754461884450146354009211268280820160024696942212640354064472765564371602103138566950835285136211199960127311576568620997036313130448936821603197058033756747518500190737239346698266716066672163197804132085109747201389033892482283120244206949028460033625800217835461771791609008004641436781960420393413661824935555472351556596212949662493763633197493141951928308117908761267121546996966929029511700840689328909616033905985216068592628930119031459417084944083139059991485115908027596431074170515899976122933225255068632320132176879255181096133781525779820946167380052558230313327463911906233589094610449604024387020107184750389854813418679073090565022609606445654148158838916122034045894570971010281381316669814756070350617471627744237802886595749990207564821752653067117986688883823170774822260828523494937085813725333448427072489833019712961728582934031181173209047585585793304534380451438543712849981935220257281696428994877024686185022971748486475677102749122944165009093718109667267122537443484554771526223164282789394926639555437908070244622830829782907380724830068066695250904870600550663176778422860163775014791908924227130498216135537449637906016540262331405547627764567165064973260544425408991237199088755935328320671544785031981201183269225905275476061636155931206461893625507325751371116040675248218860063035269832102898711594441680908513135659000785234017293926988233776944939865280147724961318177773288028119283692910692846944319297336868747776440857659954691087539769315710692179251264725688295508071758955118004204261585833549019324237357607362198722842544081277091190247269284742146254176021863861901864744386949499056242357237287089343300942373759617106439342583946841974094906272379380245804959962395708117883075818830515670064003669990817831573124313258724729395940268041035919194544395087667990734234383175874038073810217177071704369833320339550348022656491011390299559849417058862827158270359918736562554489467486450363095706323026415064887913329693222744867653027881476995620571694626866459062492616062329327991880466242948607995781326523829113638239858927744672397838216038695527380411588001176097333460159914775066735555154304563085573455123202900902965735486013537348389797402354620818052310627227306027543856683498057149232567281848839945666921906684139423124412706984234719984210424933249584426855333967562583759163753985310020660878051517651839282479798656107106880104444045242795951881442653574659019498413352526545312022713641717456089243275415152946396536593801153392157435164430538071991326459230138992383809114668110823839387924722819021098721691456505799997028653510632408035887768236729792587896883303580308824498123220122982252861895523313357609488181062388490916272767168457236500394548821644310825699410479524424005079229507177085687556509996156817924386312005513682181698627250557995267804805570624590988228944917454935189207940356174556983824234536245295557777540016897951703526613547032566634895816285197828201476081768393119119747855668494387848345052457883268955118324807156807174754182246353597285129546132893365826144714205654442028642868971632539875222341671958774828857568770272088066728313403077570441598241150509385949006722220664046959786871500223898657135108838589180688753350048016805331215241653623755381821007443989652878739419018418786279228698612711461841369999920072863891290331049285633240000275191745003867679875648317223513267687326301945453505823576438805347780090061624704515634088412199601328341829476043960150417116842334802638666807367718714666623967928588459713955752785979096615093208406891609960987228453394486328002776781145272466785634281034281430000642023172637028044010193226378812281869139544473436520800280171516987962696119751672027010233915686207700051632046234964761476232939536115184800050446275399004911377975248221695182370282171402466924943353022171518546613192213280039458807752297213819391448139910969592760748665030665712958531221918578534041019104437823998548995662470488371921497532077799175351291262531386228906535425212118870715258737590221031309173870790744690238007783358821025481568543318917196899729588156393064019754720721665440751750938579629124545850528288434781918343865291822526110962647870597165101888830202371122168863140400720562903101579408424887100301494012454117895671813161287129550246055239688034901052287599574805542402080172471891804900616455142541726748566792685192075183390746093598183381785916614815257845021513234339442812135330598257145137624541424648715300520078421296939502624173177142599348925005416812733129667393984077771108900595024888365813338449142457006511126777058980230224165351371178504988266918455050898924083885411024053341431758100180989653361434636487707821714917474343080666184317230521414988039123447879590113816908743970419332981184694047891905717151983327906526047849395342757743718098580550557888530646005325164323757112712396039413956169954932810502380854526753844945777773358685814049712981122628727207457862903277046258199075367786313304527066250959973909859244266723004017020643895145862312588720176534638114609424465531731675544876682489416312612647765670356553929631451112631889022562523270655841203943907421516179832438323638324222850018154616834521246817606705106080234914962522651361731933220777147398692654015621864914204285269421019189259244851978013299752046875737901004656260267687679216158539919411487049863371878836655227035876537692385558229193721364658665686567518440252934680965309078091591249832891463636203795409482276275209645343700810413806983217557215289489668453707418817982579539119119616240136786378733166345339293885518097518507479130902561025886646207788923676538204031243366517186669283903784818070441163388576892580699958042199441799409439064895462393093056433085712209648577553291777671927568491930653896721131172261076039875935676543244402983165361524286222806446015430337147562898198664022676377945463748812262455702959945530236434830201184804330201802002936518387454447952851073396032279888959433728598390071462320936436062985545816788301861949491243009503537071437175783775279975968951165869002738883390491288040723920430897324357872874044417639824361711406891560963379316692479938476519631194771818580125317679465490276781052298340283988309133770297386475322613323110200978074071848129752745113130155537069842958298422692035596793389184338367889345245047012683411054959840920274906521310052028579508838751954352600733648324816472984939767930620132615887359719016761046401728914417337897616938141222155784722955097538154111105453013732467828252134954046784420590783229591381270220980536226902364796576425608845955701459630883580056214249083645584909024363376875498765511051269168569286354595316820595681550187292838076604469641392908616640804414613149493410354223255800451727671748104543916735934714383013385900066372989280824622107763016664552251179893069431071658176394464533039952715820441184624139715875422766701297802242332706687900964544456126497484877063433408982408863538629371240532963425706864562248453360795620329849673479414955100219219754758808474682672953315678948261586940007848637989999696092378181049395639932570484287936695440431180568780410837690161468647371747670054332957599353569970335469294806986296985816498326291277974530219967717387608754307014646641808912584491877927942650601075088276260395323341458171535070082281834539539526726002221213420793794177447259850472958548339239456939944772496644442323173991348468470859653067404029926329516832386906537071693997737993006151988033183429388694069899065313544360512729349401630228855381859551749732560117585860694799864455112562805169400406919400216706081432397454457392257539255134558704471747108592367009189633349727691219613655931672995028369540118768805273213963126604723280973031092951907437440933447072521857385389016104447272776079073775376314088781091039915949581327995714560637577270433031293485124872060506567587955425015937074734474110529846082194656832591643300956724931253854190256537353071364120417665775588527422817797759997660432560704528609913180080075855971152640232427587888014054598938760931643909832302092521288096986580892357721471296434242279972107987968094436288389704068755974306217181886598219081877567385461362322346025839849052586391323781545389848808525236902506654728707527112434558424917954310582172846946776596894308948534225802020724528131623033203426646684417829526446521561700795257114594959096383901395696471712692732430074348610062155577278857552291433047049030171607630211591274157102639055256039150261443576244202264411754759167431200957745002484554856446241802334198521329190790798517612257026378508303039909836448692324398961250838434507695312862314603425938730772556295039833402443891908087173332256914264261462030049356880068946256495537655273062552859421543742059784070207352762668720943109406075761607913219773807003011449168445323978090479574292450938507269236390455627936768435990416945447789554695545111291241209807532044781987452274454792736281497594446559415928248624947411603041840298688823900826467696762896272543233757051061389236984307677155970995661371090512459604595626846119788087248628244049292951878386332822215643532951772369582572149155040090770365430817017339590375237105151401115442430141099773022719227364456348161641443269787111752673246344562801719704001467628029005608805155679398688643061656405793937815597636115839616008366825683913899976829981730728994766032242518727270381722876521937586401383303807648250747369959636331673528222173358705559317110479988919626274428557248669884085495244709618268303925113351369833328153973277409881419128053624414368048205630578819128288097582897897824043878326485561986614213772100964607495153035912465701821288462681133785426450558034359119613143472064901798462132995674615056669627381113302135338304388547399586057714212599686198562301002610082550094632682925991244648445600197233921494492037036699726527311726111989209638777285412958917977393566726351270499672401317302068718779478153709811458660171430784065404413785984161650256971379867389469126904530063780649410558131208251386318585046069693148772299050127026611589599196724263108364589129529091912290732737027198942459637896483072805826087559288355476249818198703650131611325402494498276263145769450100087624700910138702124138038981158609819662181367860912310180412221669499059377824031149502131719818595828039893669733684442239113178949087796364510185810726252484025994426447897508831177004193598959641310973758313290362543381263642426721701787596389032333564795799598470133609159816032632755936118442616371876015367707762390367330193804559023771836483256896981391559740559446293258313221719186807737692795642903276351833012702534322948242368560257275886547106067610300957194300614259688557424591695343303131514389670313401487984821451856105592297425109858647007972437538242221400948222168756813498966358216690855259048545877180632902390051392654584708233505903236241558915905502314668452072127199771572973579231514487731358297031935930737892970883885364769169832941478355534521659998681330010140667708674841480810086384717881307935595576448176191790322472665109737802924592216027218105976519728085248567651123920923113156306935390143041155294322623954216103922410144581370608619417051597893855227205594759752172128025213801265503652592120581307581399691756524994492679896794331683214181054070190098811167490587595247776826486851474784069368520864275025813485904595500423819841637650143570902147959689840510386878357720846639184981603840801265233247664012242142478843459220453969834749698995152780140172991835812599953655094275473262614735236441031879663585534839584191960602341496106430686373746326706757798388148932181232573311466124369639112955001671475722771948257904510002616707374913173249725915719340258817018007462489737365110219149514104965980186979263999353534952271904613952370786673077382449535732359606426608347697524657571339962733549079683966016625281611228888575071638181189523912638354917008691324307296766599506135210343734403858602408051479421491535647788960164013163606551149947001133588408351497190166231846436932347023338425199329943014571280256266930806050439421535413366703358490601877463616522828662324315132438709285444048644912109676367255321469074585763724420792945123584993193472873464301181273339197697381697397449284217582002562277351144182580752324634593603035938244646081668476799594218754606944816879427646810199532238015533070548348273115703971809143464336430403944092871192032043179813367799092798177073063470288781111693462067629458070273370163266204109830584749089795184279063660878587418834950666397390988196017238299067034016225386627374012829443278937995774227418709353225664204707797571771174444599855553371172770645295804064728488117589681508964427855266047995116866597177630069723492865404356003178172241252927116998333896545909152511662747024531901217510941460619754458279136510159422070603764935721826324804714874989005301521642777392194600170019480183129519342216724553173166658399349150332210155655466881461192007510552263210278913469402836854407717502681792935251569804452789340024153669906460921401512371782813067559940979144479884259742582554274565502758158007588347324887528733334998723999880474834006583069173933629766686128731954221011620063778068870265839233113741528512577247051471545614067332777293274333865332026466083175726459336437578654139195400076444885851591726313268122323357327139015677509899253254800416561968613181516095477749463681816407124140578559658151982820665586378993889749066564823635334641144521239957128865983313904259725844839654521133877942500497955301445238314611203552092298868723505918448606400507611923800516428906159752117117055125424261892026526050080976989208688520172892998715039645668707620033672117862523910677093078629533109136171420619500775852345638895227026652224804333977909922945082240686450026168159263877080569376213644835019742952311005546483476138590922841325438599739575025155407852987966749779880273607450476574924587415306436574978499631584942962627959424697820937848547612357965249178422193230000103751867308811247160148523623108511290836603162906366822772200257731286966884960153543530181064430374460243331619582112885241438595974552005503437934622138476957133741369287564308759359515341439528516927762453615488609435855502874248080483043653035497558644664128886972827050876190223961066517579841442886635450596732007526553606149143053605780034594610081356695603220593687069008883449311482704814127386614530092385280977764446040099880754895016259054361487158606931656456217718394682164620708071725327338366547075437953277422968121288144306695650290891194840680096571158019104895182628304589420864451340292094075188329349324745001581537294720350145606096369464444894041704818585070486673965388493080035858126945625705140556118863529011474918202542769970042767472244652660650915695604104802816251587697715116050680081663116511885318503741344728926659613219929701694771628255006268402400748355272541461555804733673358326994174112620618338179210090434321666276675291940784412033341139229294039528017342565606940610117991107600623634069129292848379045575927977513022163408035982435451884598695920356065567214489714532258911522662378453380059924219740596909317978268808393984398539093526678823690514713660225473882244381776671830201082045108473777251937547926439463374250710760885828031379709434375570733387467203045092622447223071843583449908563100930474868483224863222740379349832384998925255723710722541868144032835743309439198268684498468603055625612972005803758160720401069558443486002817712328075248329788020968286197381102474119118774819394969090268873765365950677938872037907064198333235784717816864515022860206275372382821575281248271620311571204530232481077345599800698904264098757975025845223198267833238281270210000818567866036987951328245583507968310855375066951704677197506031053679033332808983911457704628481882492830502978916483356231109170352973671630764247320989064324013011505057448489185612974388279413242031893279982684550153650211543863572072512244852445913442991466870042190177636057667186784313621408521274584045344252161980439705020477738941171954423621550451050338492841694015402034204470120501530689084735411778885046884827598836105207213329556261199587165202545576647745002346086178150951940658761918202503860541272186118394300940806168649017811257595498300340087622566701472815939892734641271413013834228026223344632609959538900838087084779511406700223352494749213349015849697009234159191303501414431994391383570052870798082753762241435823805227600301563631012414850644717468817985283381048153201928243386259921960674851777615483149019284679851718482914107799710498054770196793207503337953005081178771551830753420149414524808399737947600906823688809512744375084186041137351086376050576647783258235845832202486892303367348204574139949121428812562342168885167955365470673885092598242575798752392764376267429003691248311198677725380656933578362718409530736624067866587116891994362653824365483878750751754441445585502016494000866573798191206648544168559331393497244746663010416894054963036868437003556566555753675563795667093638672829716060171369022086924245899355638389077334544101196114107226584045538237968795551939750598694269936159607464739914440456506936736957502065441338319258124229253140535601262661360192019969474299592316096740935662450217532472978420634558515277446937127346359167301541393225846831463723848087489601401517785123044733230332697626946258286583676390268228472043153611709946822002374900526697139851446573934972505954956358936851158550921220747157400469387414307539596362037701140821181497456394683245471279144037445750900074486850021976384757146140286837473493290480269254930482381428132958313876905255932752893750062940735241699362456485841572220519813573293365586854298908988805263938025778605371244485334564918293516588413429662169853871904946128378952219806251416768643342418504517270413585381532754484288627688446114289975191072576568247176350083257689363020739818341739806620717426416899761808306806202128729374716803092443834637757959224746194399820444319770920970719799086064976357830589376287754116379234778562095205020925954481094038747918333024987549058296886383632543793103770491170805070470614818363901859372354279074374210042964422457820052044691943485095158114304553182432428145482700652746879057586503118354226434653362091770756480061943590838335644499011593642762142871258368715926855486267179248743526025899117376577685530125155321229098430309557881324045517171459099986122804577607279485880329667456276830099390692976245146989371299607754165188634950026345699157505976989939402839903126033916893844613908427129382573990239406373316706732447684675114068479953910110486549852238106333686762988140638526833574793655910498424659021349358633318309753384760202350630933693531074579409773778536394834040280488528854331525061566948427062786825283537800758113222391769315970507955369565484783079989485162843181963240602150232967306152209543806948204477864566146844271453525703166307155697214834758750986014751760588575760385390870607591253970515105798906953271989478647359966935206396432578973718028192973735950319475979188962818473732942221226132641026058362256063097718626581709445542142487313912292086883146223193135397641164940684566141696700989038541121161764633421426035808707368478294456117266799883026952573905436497045256858275599764487732362906898904200107945555333815778528075921219335716318523874875407763906133918484214962140453224530271636485676283170578251055909885616005722330232379175052023344711137785424549713649233938909962486644062531691613566033135567129353033978339031590377395649163029757940819678500917951975344648166592348616868832622660444067179867249344561179618630080907281276632883964225926887068256788828378949857553454273630352071708334069911044494670615215248760994881869939639473947196992440317310983788575153875695364364330999831735825511678365348250385042782033488756003568211970649042769405381159836801270914402690552255268455667605235011591458085765674667947010815943049129455204725769782434571901602296988617821510783415350051647584428549363620480184437276503077743281228629959991486750960243599690972184905870330191053271511211341693264634767866913054390307397362192411133053052019945672273840321195029713696568327139299939087698862679046448130267515642693884965486315070363796754994735243682206611336121770935387264559383787005884707436486624315132891889944375727924170977443522945169883286151316800896905782420803063132939873919264367882025934182784296633486515344822732020512973057643672126749598615135179017662915660655574610974878424348313010822823444387275134108587780955073238750860590694705242759709015950034034170480124825344608987830832744412037191502514395462562212968032822371863188988399888995455717752461882449637986999991724296308477324705985792589921262882060703841595965183521098027237451956371564376334083982691531876421717869250363696477259813474270992151090777346576996507933860831224043602615875552164705883038541202214389807871596142755120243397580790032773583023052855581955281712471896524128701019340221159203831747786091175450704833566924771620946803996925646950735910788275131096828672414539455162332439303874768346636843163954644988158649052958330062303755361693958675705795357806253999820645405437280473263334988727298179137801463284262674391977124207407938647951311395489901580529811151715643348599697294785024868441432148311471026181307711649560286107127058580964881433295026613659686645155723205484534224638910297862701498500394375589005840915068017805206369423349098780809358826336515658136441501821083179713565658396927703297018615479430533762401525301044161830979952304321292058027723033318044772574245119510258912630076896808797952150375095491533971114397129761407314444044608785791494870492786998061128736035636989533797672081232569314386363730523825410409456389520853194810547750034372160816166809748930494653885939156844453080676976327741577499095292792190615612423371896197359530871330766295522138263160267696317474614336375603951734298107045022666880063719436250184647985527868642596336953167801074104070542755452003062520411320895175830592790276445476581800613501860207921585760100530696005036101173019125959058646102039031646158277883339961932993126356037258460152669539128692830174504370319746096686700340375256163060629586847617787739893504296528996309654898413583085173865010482989866671835969057761261928717928819974051593679452643590611247918920375839899637697317474719452678393657473941868117605443428391119160583756562919794960740414466263251414788353062253429235008180891621597775290277504409771977906252220018700927888999075436652061337112476709817832891045467532366499165892370488243055110190945279423653698999731966567375172422783989300222412404244680243495755798146121276252865915233069731411035500530250543177040426264251323242028188687216023013876444117845421104990967189642341761182919545677661717803740556041783093707617800521289387499094403021318520912780331522992521970499623171889339449927172430276437839443762902955385198928051393747978438019380510225701418252972954389108576768069996273202176378935638761980035512064429878920894890388771540322616051305394808939691118268770148662370315530121675254285234521221591682694514362665146701827623264868676556308635022812686961793563652752503016842911906865534801683128620986171857898481789028089833589025030845177348493129365961863046716167203237885518061805697011340074558898402356421654268609370785028723403138754799016393934490936611242628488425502540454184878629990878142885173685874079966411266660533350369129677735651213963825228094160936420873458108249400662346528836376454046560721300999240406538754167023247582488947930178882626454304075626204700509946310587596507623001587664466025273439540635070928503408445113980540465616074854810313747511642842653929219443436111302357457774161216118435674592915781759630696789697216137723153103111925214149301400963679004827832926025190254809234713605231560915699829843895716136464532626161213152780530034354307995743150398193367239668026140799335139010248855300731750318517990186316047442112381235070959075714519903621609429064827252805360226762507320354780403974649496045303070638491209909079493012054568281547234430943483538983544399528453786723903577106363032937700122011754133390734713997573634524346006331368913162962432530845862054836351254260850187459060447363383647464598711373195890924819742158405538656568854603920666206654885514474372431421839723204092681064190290778772412499016553043070817697376371953850435630773217246850049224036543215593004547526591231926794525583399577460574248577875603495973913625944352740514533535572338168770740010099882558367867613903205422255445438800372812491369763974021626552461984685023709151789695302168293571884482989891106471174489665731715737802674637307427584791820304482390816480968832546368494588351749450165779019657997415271547806335105819642169104941587916301034845346532441636918656740881138783752000506768268378978643712758625563717511984423917113413983444621487152788688369381832967217543514787347241094299958362160768002612691880311365489304175537947766809723303466949490736045221796004043956961309117140682626939241250681073424387891168286676809233334923746568203153810002782846835269092851573809231247064695290119618201653949479327581764448958499444551929864926840954700649594454506026736653667814200755380351801526051959093733844807884237878474350236368017850450747993213769228312509461653801967018006715298400901958002440800229179178905640967308461530212428051516387169000442386565477477916755566949575272299623234677390208726251010601645286778769074745185822271740623358389215719771554796579282721485679139135966699432197240973922800406494105330985836442491377886580005476821574872668088887878961738381389298555408100567133224801137418452264127571186443113858787784849540294223038723190760986593959135102981181956695405210485019774338464519186266461613989564411893489894782978313627528335565840104668988377092103716756058305399057761709706677665378575592845863633390233202981268681549304129557492938139252534491888559559285884072844934121755037998311913679302002878011003883499406313331942918283998745359421328838922833762475783779063930069473082778896309699443476970672930240403140614936192927418726619065563645038479183046205761177803990778674941606660564640813280919664554067260919727038070664095993207203191650249681270655054562241957124976704804364561583612038604444936958797786941446701808987580509685863828203268525936227039007745615621689293509071743446676148516952272584455742949426194373921110524760091453324523487400928119274092116376993725215699637520417045205578437479092167328963351990722657836223686157739165254508049315764412429703303987170444784019959958746501249067311121577602507731471170068063836305962221353026998359009465701460342756473868786541257111439408722409276236748272332711373728069205914341962881486870800204499735720884120646966443860004300823915712846129189610860105200478771755262190325485219268782195347693345461867301990924705530246848088579182638782847784653464666276139087238538342492943257175047002905997716996275855783678195575047434881931467790023255461126376197903359545201232614257528757751156608564485178838518035614148066609890432650332421357499635278186728703826209512459387604761079431564302623249553039027750159663768251052454744686407301212761488429571251606905836950345161865144023234733559945832058130683462447606510877846344650171395212168331025762416878088878721594547768655767648772784686435409617657497259317244453121934724924774304962298039158949004034060531222670846978763761704881288397032470894367853679150768674176697177039172158879822249717234147509343882455425179258500845960132288940659579959368516824326821806263344194963501000653032745969112039768751735199099869712130578198590375320554470760624273941268049099653511732334127587753878484307898061031332791368049252918323640527694929581400052194985614214505796103869989790060337006126010358716124061025286734098457008044472134444980066359399508436612291467481862195136055347816169250651648674055367752672061454940701671015461040434738849803125886619508913745545675043057862279516747246773793667528196049567735896459505386086517677981164614023537388422689460729750419816741252481336632494486737349284647353243913011685676604894783200870307316217206746103632457005911743160226460917306309083421504245790983691520688637847775379680310623744801541462333404595781310843548475986486951021866914356245915875640650997663552282620207162419801424169242129182947047407633793427089828079530449495726807666313780434490075508560219243497680170277820797510529056697432248918691823563237193881960615678993216334151602227024791129961059095976932402764270749790287342795922546241410610040274468161750211316250881877205723328937501833865132369759597605599853927024022532074150922518236336831875897743572096050773580798525826781646255130214015855133863290977504309504033354275676279088438401239206541641686446477959104339053191259442065990134000441872179558719283067994404772463363024187389244692491376215595921371558338666034577911045895943998885077138964753723212182506126767943960222761750058385288067409260137192083786518993485597855046038698547753579436918479367197753880895074144532061916657764139284036945442195923931789538513158662246806390636632546722907260133892681587815097701622865108074578636268342521478012324658538986908780969968669059288953774450770322916147369970705073089608272299601283857090679396853347014880748132253741176011572643748397637576179098593510804823036510137609125723051617044187584342330375167219119152186369769812659600836558680367178775020265047196395475444037357955010058395703522873212891156857533089617684972549176950123954070271409364426131786991974682631560692783556900539642423240685708080465510526318103966920002826359216437842547623440858211670090616705454007017735686594541543207617925479125659656417353462157017023212406666331626464692801302730461699664882460132120930656511813488576990899734611859567196247817642757656934387113233115148292369813258526533837610538995442715260813585240393334649622171418901543178354755528506276089354338108290536446362262872634764135549049473883887553638894085291025738171468059116429714709197107970511127963259200579491909765166184904187417928838418258719530122662309328896446505149213427307247767068429319530280672853446040690421613801976717112130346248093555528700460823966635835478474486517468536715814060281974758663378635757539723470933855016513929793313860932478098662913614366175252649458633471141928593853059415863360882188283949034811862621698995064357861776296586589168004513100965635683676638137117830853126405285766972537753717836480732261546946132276168870276355738734074961341859364352925289736449826907925538630520460038386851468558764507649279643344095522442073579389648462242930932384676683416544670419379860336075703434271635041281682580172064818820271427651584501620181658572580509151926397207287228337678815869974798766315238209573845351278302266913337886465011267731905887036777633926149727688975789805695519351150271940378725789029541092226890516733624566215782454348399014243489785769178445338055403596018344861871244785827051265491486508567989613231175522640058021453581140937149586375667901690954978813807579254721922193330526050845265945540202432292353980551246820721763406825640399692355579365453583770721332085419638781387535514818092938705680127183069772816919414961166688767133466184230839681387470123233400899332512887675298747791472309772388696705036860335428229655980592912888005602835285332571996311073518740601567683043961679240096627168390957644311881603176994190485527788816525899195606710297664143415657638479378387968948226574816106159308958110461080294264376797259188078720141055115621886086184114668060396190637178747747761855283159130048114368326481489774989807423694801284404339479251856168832073266980439764908481490292721973038708923881418980840330674171559888989471667578207076642332604694274058892817598297570389868267669417616582799332256516981919601997013384769946547865959423703846452417929874972591325442327340741340039815213697635934925708101188427277613256213590060254796280881694592147714361935662893704959345736231920240339576873905588419850589491560050493401756455313939431745048488575808192806118643769335274431788503967237701256990185652457831137246359077900250437219600033871947303780491771776699306353479243754535334649941837592376404744376082666944545065227424869835223587984098054074914058119676550493185052876365619426574943151175054721733768123037627261280760501885765051777710852612158622211642912926861474712048745016560100234528268196728433143047025047348107643313300911404857876134541849807413195917162580618208246766887052474559683403918619205398791792496222184571590428544967191797980863188792719227947588246402851780869420189172334277791223418429310648036656880034960110821812246028826462759128620449661876301879849678016751681409855022514165365196477754261393818797653474242864520902393079466873352282211486494528397720002834960538290541013021850117837967775650959873383573499651885005291498150434079885497692743332163541466593154763373938999176147551747203481710382307922896092546999059544092440025346210950168769596875570996694366642713320139323443171490988981210766875668209628643120593727039884929752500569314269390195034648756437391215032444414281551178412406550289841354230199498145763392396307416423058173368997387639791404675175737797383913233871766314775158076988575364656871269896992372901295704156716592471964377995596691326307522434435539254462282263271024456842684034850723031191117915682500287269769965491651492232639879171939929656848909266140855963001449883903547060642095333253580279432224105387622415645756715515442759401096884655280500994769675279799469536244672562131042820968102143336744317263016553158345836179533956510376352238816333708732234818488747880801411710733246351961957960631354810488262943352406347477682377693377790502398894589068187951720056061568476924903131940823795155895462041525572284617873547773829846474387731988637770270091420468867967581754227422508036047167718278644731178902609596578402802801974391327269078952789373511617419915706128491575605883823176792523504464335081577025691176097723850757759719579937573580332246534036543743967933320185953732976538387419077387268281823837432831783973877352617611665832083036620829645089568576799074052332080594663268686810906970562692916535774869317891388577054057837593670962909360225210634224653922809699863772416568347396627964450047836108297863833691895390656263269059234841192458331198552437883991640681547198122349935157541508242671693977694052734077069050816371564406292171175788827444506788083254386438166802515454996440806167978016289796018796812429541358307908852940134890423941315171393995662407489821557098371533920843008231600328300830446158292773133762159527352784236065444059672197161397162299985706236308314554709259794035533460149032598056297392833742617702259177973924101439594380433206800479977147405858197566004281819605334761547789089738265579377661004884882512887882035909379414882532736197867635627964784960867695041410096962708821471146746568672052487978866213526192496205873292946865530675068014731211097648913288844777597531649289966882200384638397627721402609993262245021731195673462194284480732494365720371085659048149722124634130403369182019904376912291632558657112934343215177187188296685049179199869309293798470774572111914346852501351970476938906616261746200125211428987660713290429603240067753244568795084644493700178551910164216286651987038740681221091103541722832945217128511747464916351324348988302775832735200201846030871498685149010682494280543272473443866540451926841133270819564739047785956147721125280993996082702493027888731308236782199331392001367151050032454775953861468717175961659144121984699152281212647755763234650515939199186692437554420531883194295115164361799857434873687560487966547073290666896725034287526032892045695628038330829520066926342896845907275252906306541685289974336842908272011711120538433138860730848603377880613518733152096739856449775689289332086198554471251864787319920847399692951018208972457162466426261637420011574793852087474384720043442190724121363026281714808494905957017376859060812413277052933527698756782648629130619138435155095165692735236703468868711624170043768352803680693900620273610723426604690279184288268666630418524730126507202231111171281613778120381259393271500745448251515480250370390295029497620409033689565098466583176169033943706587530979957607131846422714305275072437515689818411952562025807463494621680238563237886278945545461591716899407723269910345150031014120391056035841528265844023825350671163615247651154433623351069425209034687815574140093122674881992220532498445499910652937436599446161644683638101940489041944392365521361214029561457923150177611719326371648435823148792513443630355004032738851394501982375068851532568292585180669921175846588821177891275469871787205863915651990810778411476603949612245070077697525807552366405425542538739920319509655838132537947245012063867859525965518793789246549339105671395077693174521042804733131918432639255992887299655976413374111810863807979563213474218351891822128242784796410258475429690058339151210721069990446730865701637895447140766658617396909480368902008937658245236864338200317611964783117323316901653726279633162685497295793613097387458816805606201641428024607660769596874406127043800723298335946697766659852030501200810771432222968143244300386261349962178124146480254623317926444809662061464441394393765959993264721072321516521869700083205454674315498677612293487466657689860757606494905888596186749070163604677690603256053375589262005534489831624124062929526348358752679772678172713460135723170975332813745480858997772188459589542003398105778470486725165444209678027523881431148953834237017267843590067895367536951550438248376417929806835919604793970972673920195710922917996969233934706166038137853204176935717305782520568321632537520072792327775185370146687895333949917942430520507322238672892658939287985470082527447313268037604704162777276256216793904268774926180762242735619645107649700053697008842624665348525244991171525949481173360321643375578437967641566190583516287770821100527375143793153646602277018324311973720113426171084486653605922736890259747447584891293170359720598406550718045538449445732266141493701114387568888522971674795436692971985662601363022480661423029766200415744097456345842933124990024653836239341184550359730246485643973289721176381897127583306705748667015077007063361321935847793528263008355195677129755777806337788224991851411446797768221312278715726092672711639334401323627710243097591807850125231284229568472921189332516620799408479008042999561759483861133960286658814891415215440346465442728465535499801887237933271731256429005775032033210225779420501787282413920898351633129278605504167809847755757834096759007841397624773314434848396319117636803325164790137454973335780211585808836580630458715209314291458397407941897789923405265368274847923775608433633915019092231564553321720678432611986955611983420289963086275592798752094381861505918661271267738717088044563285451959325057859886315582357779143200085688416374376447283286465279664802934755310370941491810483071896356143779866288927810620920145507710774938857906059743308444422820630892094096959668646637938086457816096023287883479414419627242820276151444567443221070412628778961746103283406911922097870157067757446363459040123026640598520331842440281538328697593283670292958721156775353138329800581302837866474179236899856573402243181490588576389807723668230758914991913031758243679297451857124347113055682826007777579180463930116087156014483241138687518615270994850195692677236080729128877812536421091983554337184116709955329824292967532736910113547293043768299451298208793837506521118089259771877631524939228265186637108197411515483384417335467007805805494288989066362119224762583005981429362480708437521669159112422839644754031683656422545000459807090152719679492782136492185269211060231710527721561715308800271257305608097135502234349943144581889305688777061681607109630407920851391502182582043756518783927070050090329483276903336995242823382214721901495196904399769778930339934810700709607379899083153719696189357785523972487678171308829693597114509420797941482044982966265607651624544175998151627030272545937691379096156046730747473178241362502878715254867990975682556189441220958715945028532576747988448036981258924626426314471392073158270170431828578249603740781002083852365164127710545290082742171095206804978864061964955653182938806261777011261062334971831264607228906109092942929338668306475810721413270658592169627044510819364210778272819354443920599364374352426962572989083973626451927098500782999592560845526215593809225261415081337653224253184119725267555311923146990259666682021595969792341118895192522644044836579279973066785065830756466479641831701727085709123954312526671996217578351202232353175215047823995906769536919337311107070016066901909431014381098962794390814869472775692309181479214073697817332864246363201312470418965483038850108501701459415776745963595754978396080504543666220052902000087698489031037600475258872760811543621539856796205902130262053550702260291740810449881283572588119831761152032504361137018010535147737193043324260119165725639607279430829889788855516434751331036184573547355896257280311713035516034651626854495959296006949539798823136391238330152643857408746345126395716133817727216243628178252256778892604677135767123277109632279537753576935998620813925306229555403882568130247076693530476956654346074291407675510475539062332431837093412020275960336754091415697590898313421299140458639985761360805401419497791332556939458741445111081518315031367120383226424675464746234589066116934354284579575810062291006304589121835120585137101076085815617955818467802050226565015832666877290244195362557862499248934161974763493699432764883181652757237152581321996796826420336789507768417406862992621862061831933536059758460844573742690794958279470601811707915733714852233283651806333580055523098383271571170633358462107797985256835676873020262191128279626461452172623281355537045797473049711920239059984749791981529004531692970545808210901342697995349045227568830273131757559396070619612332786726626782274530922770919211836192752808236894059411925269227370383834268333102542795280259585147136232717940015751861774450810333543676490248610041544570801263653762215685477459174706897545873701307822335648084987064844900889951725011737984654698371931139352747006919871589820593823016785290424424237556092884138054650534063105688999645411932166421850720903885051545164838165658018047673299634409399379272986762465957190887782072656882879321487626392246373211580759710793664281955883187583054378087843464249941305616592528113721827051997923880648546797634472687841546833982414945495913484222526681483228726563992115278924272294622868420434501777435042940677059094237135940708822969737335328521629245120308032514254532460135902970112181803698406641019091648547652462559894400072976193847946379063872336488923482187993133702313120382906196985997863306389662291066606674487193296036644375848148996456688640162069139146281251261502772726281713381963131751601455623844262610112557489991390105684329402262408879851672388030737919452691161639876649973830601187602889942539076711647548582612339764700119485113562851086825349935433817855661856826725816548558780723484628357301339637127948921945261002698446641759415762183748563518264354206314175234191261451113412261412537179421651474067770732200635621263063308059516968955495736107596554266859889171883977597327852644804320904062737132135757047842382585523296720727834859947276673514977959690225154469521414393144364788682925720014576299560700787938963649745766306650356390924675318059300601171178934035562596971999544981571455644223799698082543914154777520931022385304212536559459860850883034456577336833662602932961479325045933971274712740847831514886671852482741549759034209449118250695868651818540830845756562829480771292213616722069599950334277632932966613299717604867334664664279047581104818121472842074621311809048435283444621325516246171031435390536030979906975329048043339633595303885566563641278725492013059350112059977584132867321456765838646765253989618303900856618775815888492335832742393592476188381059525898366846927402982200555878444671915170620701518779245943838966713578998655913510485850205046679561482120053685869908405153145962838580533382870934240123206193806867440411012710382818422196404027816461744714819068363382233580966558973285154504737314816003818611384199135034218809157865776513671428652762960415647549371454485846526353680871898276838634804186509079024308955881402331186283521053890228902225533398961434560837801552079916885849994246417714884316660449439169091382851805581987216945679682016912085027305424059122691739555210270420667216084059290491069911160051391079074141134952812118604957715136084283623977931966209618299282306359308388958814774219077085512783436810801561407228132815713954838966768555988497569213224418371854517730306544546109293548932609785087713819068870873108736923143239191415770652732273630381937268353815721262259685820300039952861897173762569362941644268467053385088900251111405661306885234189334367669876264195824401566384863622305610713955262010481856804785395198021243440293901640207919407434115839145764491700881576744076420317882334034050220606648385796142372774890957367804196121985644518966231867342032398516252688522562831909473199749090649680641396709662895519057702138700217520506805279313218838141251595512845273080601671853072040277633003034314873705581808083854264936089742359396411905900174403899154760044841978770368463408301271973798380491413063395679375477288189757660554110184559926960702582460969881264725224029606793085422783999689784923071802066455340860338621380388631615265609477841488330404021061725354216827987023594664136304870632900273200667264800876784281538428685853364456870282314046091301709683462487860195701076880753642956264520608815105820279030149734651865674732875900916924058396186605401929455552951603737611591426686038128373306449200096771119035784814933992150057732328979952069392984197625561691691708879742570879633797860354734758302699425654487872506140036962476526248220711841236416392351925670903285265419809614732268122206579980613519043857717488737019736772515826122454378643355154029333737379903355311931416502377707860264986866758800678109345766668849740878193916386033454610424154391679816613022408519306433068978927623457723430743806124932692898942917648754290312407388256898605517491763954254757784389238889221562025851014464015936575967344770251781785002603618237350030527126381614687621515080403205438066917348163670576556925515601452813754475176564899861976330833869930359593326697904476499163975574515440583346262124958384110641681961419232361409270836033654852980599918354165272200019119991391717941896140855101480321537981199065009398496964948217254554070513073950762195662557210146649178924446583384556093115882539139194774535744082427102024538739544388952243343823267452447557649784996675828792270667315648939645205250365987145187210923522848232547043017678566645971710429709074598238561986285684826765150014512565827689171811459119182672193525993795614575088435306593344666217140045208724041486114376936679979624179931101860858069977603328501922975883009008774545997854079593106640205008324986485914858072670488230447699618884672400443768179592012056572589084196558921602526366595650915546516592113485649829550077105362728219914687257341094459540003125367094322590585580942835686184794538165582652262296239691526960804992331293012242648522218457399540314950987232327727073679783312752906122746477194564604963316699574352582128289362074482779077605159785405761204751276727795151130596298255744722404994903456677007826334118444446667702122081829762735256387931285105543372464054358863747690109023664360909689375747987557217615280409882296989312760087112085381208238788215434935097773423343144362849677544397963722534132667591857852600222285838085049074504570580307178431749902913639620401242212374288617907274516014387668677912149415190254376184754315486278167085939316204980136411619583567786502949648014954400908174826740724199751529895924850012475611186600569137434770821781601334108298365225315281961387067194226494083695443034414663003042307354883873641821954749312603626704775464425801511653302359848855114796208799655134766944000255751592449811162545214595357716585890889788957944107941139123010054797076943704919530220272163574006610503424392380720962926103794549835509623837358272137803666562450985281430566630473574078017032584245311192689439451241822499128083456172777925169984570145004513276284243939070784733752366696332582865778990431663712150215902596165226661311657397534595818284896108086119110702229591758506018051146851734531363653036905195380319972120945611268905078226566377624894287800446864689926570869548233383088816874704552562437608106612247673568816660306881154348550201172695003602552451195866054619727331273443633234816991777476619115982455205695765129300365759478383310304837305579209496413511547169228896083483286429462722203836935181529848907908804935564285153306545619386411395187164166909949929737941526113881000723751579974393431113333312499748609367952866089314256763173571960716539064948066334191533384100097887259310659013736205286881377278571055348047169478880682448257433710451026854636493118369998918228806449290747189856434923868577618967865577914757841357867746834742672153997680075475195346221044289005214956695330558206499559323539010346236863812328518733478342875037929222313094610683613401038999268217398500802935753013544702808677846097463679590591727434167587729844648653407280252782694255927130091160369303503613262193469783471899526377924391472350460045898238461979153347873474901165603658036923850522020164491482379255635039300038414297291635875374014872653193637680658679351592156069376439345681155671296523621915245334433316896150828753557098482073843778578897757235719399149501938723421435966049544422532790188394290716494407527490221225537390234310261145020910126613142697328372509363570120156786889711708556777514311114941926502924137902806326394549994113996944680101082930463804491727683962673190323731398316835725014251176102222400526641480233178688649190762166863409297324890932971273033957516087165608987276173860341132306039240798413574786124023984549296753379528277430325426969042681374496645037816450569030234731713764155161047859486374635649012148150119454271398362634431608768404217854401968603734274531559246983480142971107251002087036274917355816390236327848342275270908851259026700170999672307082793639753213622550409439168608309552309416767557478496512371570843840500551234944067614589743957316330835908602628265943184726101830369654239178063205113188193619459172443887673193844959220131064960577492048909936024894211083827676978759350123953006849647279624230902029088771911629399759886850973406545267457445897080312112870960241338304757915738294002423109552162692247387834966566039328093173295121928234273036164631786524729911175552677549091525736664670670160886987612743637028896522229875653825762555222372247884742169062763875151821447619922062351726940344936615886709824799931983046302674870523164300293343114418211212205403158656591459146519796846987557377369213758681186247404318511686570993902565683480283637493893193853918415095155612032282817842147661593362906609928872683841158742671165395452813143769955319142856956873838691523006814246529659323533534034258588713407331200977215756106146967838003980276622325432368427420525755105643744147683092359458902439837814359941157535206246368285821950736022906992281509726956714462079599494940114131999739823306367672101594588993131216884417488530872741642786533928170746470257485662047979166809021239060682499913719992991890356921408096840948412416736759478378260176262136168511646633496799057096347231718325921770512060841417210091430489347952514428616531022180543597219333498384884958912238220927962119361075586299395203823177957138192455764078806997931526845905134471639372815323851493245056039850277459267466057314897521537916335357081609696587957394260258705411607577451598342853336092517145815685531823952261462431615446612343525477037823086035113929502345763979565315224592881432248451740247867229905359430558926191680292337061370513007852492720287265218089663165305152278247592365399842003120262019838414143452130093002590529451632996370215740401852631119190227177599587473732010729907821726336083975332621970615163584010829358198994346501935821730208528526171556166682041387470368478760005487612920654730717226955005147935658362163055042735251889542350296586526265787990321094229915274958522981139405454858996535465260931845324734051097785064498976360351147326414256576864116713551463513313462764186604986951349009430127791364426500602631867088457732794100371869310036259683979295267232880761870413158079242793595352031534399450579931072803059291206226749386168301205575979484623983982001749883155986624806000567122852495453973311929482480162042712346196821920395455073623141806864473298028136002991072628952401399955453494243468817470875539416301526470872971833423753768077754126824389455697122629384272446945704974289960520148549783008152659108470099122752031994956352944362050713178256483438228376902894754334711543703795554938712457100838682866467356333071551956614151317623188869207305569178117515282102918373789249223170367131290071456720484490849997505858500905731289621128046054292300288618089562534556593518116641336265558051883269676809936871161546154257624169237865104822949620430205123563556796556595247886786353288099289091833668536721989115658256540540897311996736520275367127957355147824087622944103770585568669912896796115309780517670343348664522310818450740149401386482767995828657125061893652645372618909876871236973870576223694246788478110448586063236739162700309786529442395505835222491399300317465800886671136922968416133132558696036647078787518506757243999847991898559758309362751294089521078858316171400757976720668252105017385921435748789758378330668823016654481567860983038365809138417438551262300737598944384918533286157603535857840817943724378043344476083664452192498413517138923454767241836250147315451204063870385663598546290686111281253183379914597690085654360934961964075213393495512150993318193233041395239466191922705932075618674021109689874826075165508186852929120783919958023895506836220077667210271082488028023486526797982725627520172036918622068030582349797808542352060528767443159583008694230588007628290120635909017188128322541713977347852908169572574117392080139805208806795487751475266054713783908937359849122661964999693346801194854464684127149347067676260191392673335146246675793317229913616178997307870743582310621816232986703604189156727472235920874739246210920716617743205327597604267229145112685836582687642034679355584545524608530312459576588533231980309004336361428753911581314433767629176055039703379331375702057212701041491297495435642167902581190235395754314097376268167992159643755114630915579338947343236179748721410603315057711151779342091859520573624548080123337777345323783661257973373152718317361874024684159999721586088804294780602606556381152642118438848628517842904097508751845673506677246107840140082149097610932897294129828077809680715156074672204683828055543354238056285145021180091086282126190729582202637451465507417756807802306219052865717115493741699240640152479834161013965539888416781932643962778635153356241113246350094476542484139814719379647437643041777500285118962499147576155793280778414406500803633207449954081086699700633564620385573656305148713431166660910339284515865136408515073758069453073543455153725513021385698129686459193944189100640038168979963238531080734789182139836151342087635048280823615863697740694547694739815184127776442591070320084686578747212873140308615040959845478239477400976696722399829783621870716350915939632578790950392691076768432429545379993498679933756453290233739485731432358158242735002676646759351696995009183948621454681519071672633023899871095129159261553218750327483471018911680253967862418641205222216497272476328427913490901045928631807710934658210929073421051991619112391635069319426896576058106418516240554890512011738795710243336985365731319751648993868808019405723325881549756235253291986162219637302677120376115527447230648363754797311571902854470186046054226620939945432042608116286103986451484086308738556988725138275152242555243788229030218554485562015528308277356541827821044795950691307446199752171907859759922704045949654607855822093979857870224143846168602560011963647861686999923759843301947348458465129703895086733389578086084019140290816720741553178219087361731353671620124614909107667654756812508266222663889533706729909352092845092822785708003680124094043336329859529769991059000161894497653415918544626356772902550609551427012988053117341642734423951027478527786879948132226124964853711724080103827184880161701809445959977584378721155882493459360882839854554004080685527577691209745682574043012930343610627747625842032696063380448584475121918224151203183235505173811734506018132045601060465481643631934187966708592268236142853956106621083230219139337674830588857910799973740879323053319867877590285322338985371080548960637922356425361850161351750554045719248031062322499156458800523195599700171252290105309423678203272836168688780115267192567071005568236342875787871310576799931306599929143991453243581075803460353822450152914729516811059317124387050907175931934846815273314482444721751057516484490258983755198109623272093339002281699517716686413210019646958544594795798554449007150932513175734641938178924172546792250693177663991664025033564166625306441990487902542288927852643623359866689030678141419159896666143134587264044952390384670864310860826876896971742393310315812140634032289988767926585845700422512562209332664833053012881149487618368317461605724926666128807624964383464904722826738254138011248768820477160080580339625133283534452418608301209091124324378292236862219285757391370422951308726424325813606714579302598067273421416253142699061184695754240968322687635314765886709342668832374111668490457969077377744053767065586497739291433051926913223277257888605321858863493764458965087200692917226589501791348307969621215217135142322446043846033778631942784847972562137044160722502635709131525729320382016146848088675645953586306897711537865028614604374446896398081096232150067238184516970205053265854394290188786036282431093427767766388567949853384533572871737029924655972868848997145543144266290618463286242645705998245075530957732399973303047394541062591693279062407083620517609890536525794190785461478694795340481131365405013255696083720327264277856139308025059016714379729543904238882087878281274110828764384612775956142864632216432259936290415510930002063811356680937921854675271844145651819073411720812073584791428165732567414776817142555376424291210575033552424201482510302920109743077531628970805445673055079685848218956503154885362899559098463637942208948847457260574271990048733909692596772603389528392601180591528101218200132682507901527062303451196890155730183238965108414034895962357788155913920684944729152647149219370864100457412555376033324465636882647657454515270178695319261242660641326530860170975610612855348482636514906148563800954626045539627771504949516262980421933225842841637714293825129185775993859272517973296311223793927409032631837874314753822086769623349118461295468925744291079860549779575565427264152839495329323785238827847864633760562988711681230631423374021015939232789527185931230340839686779713710318097886425383941348920067720055773067075527962784643790216650820187904974995230416910400675725323203564497882501450153114554967195501620821722000974727039592514123360845601896735874286556355167265625597004322982360345714276242203875805339833213904295618403261134451454843615344737926795243435623561474413076223225162547731947721551367301023532125444618825047362122386189632507065511009425529774724740172035051006646409543441618836491707323710816007294009855924734209343746352204679875790621177525105260663946139317426525827765676527034514592720354598379802449909780467011933161111052802789128253378315459821221105303435546973134185375008334389985128699921029934397551290704684005221527724979728887580549079056608203507547413752105617176170488753646873782887155920533105497019897922177015492615455166525013230842992596411520169926867222022875091853695269317087260179763412428761445481051176431338667168122092484963742205118708558719501227282055100383947890882700621350163194563157174231492250024294866466634380138708029256583204783490249948803792208359655509465413717111646568923105752645896519297876478676367786936925636652695767867824078419964125328384189397735685933545679754136792408494909898831616064927232168957315353583806613783571957625193378828324622435597996122862457312885604101123091927705425921224879226530735226630954338843623465378273848833490746449318191344286996151235302015750348779535276501148568846876492117340668104441402453708930891876386788947261357219145174045535040802949455749737775985741483032051928496055087448415730395693157940787692233692481477708523966349536310757637393428493966555326248455628699892476022347762862506263625896963644854412957282813951136811758884177879632387668310266618439261840096277991108879235740393811525245754943659084433544378358407015722824044577252171492160947658595892317858081940180314584023638275391864114709322618905568427906538558943179807924600912279434171047826589416876784961998155785331243024459975240558286051380012413059067504942776532227453486335894880719032197428243302082581396752493772926629213299152615557459513379266520758849012762687824223770683228894650460012518860316010746396981999084344621997093762337131513201236823284415803655883495777229041493925199141661135214049198498742379293036712927314140307519347844243030845052012370148497723087389846775362155478378453236746618198291890507856131131908112416401862710957140850204939219056907913640059959941395934256502634723608306755481814765122479567925291875520697528107485184044579608745064161514284443623769249452915920715498777249451720290040362868302599811152635155377672895907289546520317590629684700144330599694976528245495149141163790226206595511260058821661144540499674051016384753271029154510934213157710627764422655337313130423492400957596464124804543697135575165139270208127240129470247833562172859188553273671258371655025629076483486786186326639040627439337308031114076903520847109657905452999155501066392672609429618062649783779854617260744476655694315302300670447902866785650318357263418985464218778947919966147838213427335740366541335970511663126206729151822865780266067774918063761159004194538905437615360135205431144051641488386470879292972241023415129343757477074675749399166663362664096180225932265002391770895148065572830935570867967122496366338943681212444799134816641082241510097801653584576071359807457773082797739891495078761712221636968867589589672639256754736181202944292037061527242577173582863667462925131544745534902933133495690055395242348411128657819765961846492946105296237245725350278579251245560122452539673910623035509744016237996084707473654243234142697954822535810563437834191092051243531477661918785742929227698854489344921897992235140990599243837660693886746552614724168014171689525166263792781470060820719190639610934028115887927153600313649603925143351211821167100405611110295570842168883967092930407417322724199466832163632855341508372306905744795565115042789544556775335650808614952417071012934688111492490901864634504597297504786707173636233277678427862194501834983659477433530364781038874883385070037739983990616368717407125578893262197904279371123481020894462171409604723300314209044229543973348660750137250489426616191932148143746592812069632251683756388041136041636351824445917305718582727387732161021042192174528722651542152774637512377340223312646808167163027350018263756564021773861691043755263909936932926990463150055809906822966287195488992469252360144944187818786212168401229329257128514576595996939853251239510383076194679200911757737587226635189147507260784588637492881899491123296604372710273942122172553313513449303533005172797234534524121660547980987284377211230930214672407713325977647498485944026242471663612628558313145307496733631909793430826214558252538617387769771328896625804612139693289230431762960481010546576597038806288911839762816859903966993929630500059506029929389043471596961478014072452305145749815400544721899713196571534342046513489433338976721986373814128222316999974760918404749364597100958558534297939726190897216011922633032709633082549193128951917664543956790339600200699538985293658060072890849659488644106135566283627154437791087663262360959771275950825410835557790726882309598430353786914284550573521350416644190297400696830686478769161589544299504629034194320309087921372168126154877917831625229952607002305651012204738555303853107232621880999266055634451451289744646742662249297204829306250706527829682454591930261977019316776501609010265465974836880155660638919434016230891867549331218302925717187382326607523425059499763039430814477143611062231604481634541331885984346663154937660372784037707752174614389801403374744254790936602706427245314875809087397675211140116489159438407131599913649538688420691881454261837529280805772218478644947935629615876076505857941229563712524551701900044579021804747979175154563844592426072895789447567273291347388519120844688866931153880822575559884826180041180574384507487874456054205908915859571216224949124620664045666305897425797001630701359220473250135201209843425288391903419830617418072112682321244481178960202354614505047725507016977960551979360158921757467105935698342814894226152356199388402077219791095919935987459846906384181968828181557615223885387025063828484744703187750632600254492616105674507123032859588109661930466814731715666288756446154952342705006513143561871931494955099088601619931861975160214263213342308601769259896448509039214676111208117974376304638389975818223664978784113104744403629631115056219827845754477404287499151015623232618053605233613606987785511455849351781645600597887529316131296519551583962945893820553690733446215634921888710369092147151293706288782405388726739767825891125764686235143204376858994059337843296059963925122730573854087941359945757152463272703032660571555167964822808135869949951001603546916536996824013181618386014104657827836907450568299311172923724844480545656873314380944815457646705025350811356702579037567534497089770229121542530510772418963455309873182768797424482967110892511859489289153765274016865733740830050214778577918004598387595687869274649811998280444722230468087317992951196335991384286960253597134069544436935761485861208968931828574093700773518722128885660608828607357241710029515248411409887772630949614297839935632707120220388928757165589801427513529675133639591926672355630687817373122386472074960733180536552812732382631156421144475348306193615067962086882323731761782503408892563099901606635286103228503664853960259648498367238531071594161726187891086690688375159550767335602814714946164349959718164009781237390119118027086415731750428851762034019491909238947981953928347267755633694553402244012600968600028912409589982580634458411486746362651882303792634634447556841749758289761423088230991930877231741160050608934562589868055710136546679890473386016168331283266646594551836478617995743747935851373990602293482772481703554059861731847670318114727602816366234746321478415102448168111426096644463924858738543851458622750581082556642491602302677807025863166229866659101870965518771047963835837261725709884067484808575868743175905541764932067991604116620942427737550480856868430272181912402138705834798085079067102782628633808262413893157099865700867384644754625680164470954573915256115869603392211329040567164580136132987306386453518678077143198172431210843332813113301218956961252703378065641667139168529905266654226399585545216038030141521308720347879516491647669119838304088178711286978959753861796457504468385001550443519952176153262171099374036881403332342151853830137868008940002983111515092739184579507935768824767726292500243598976227532185530023592776845190878033697168120656279332319693580285777656267018873429822313499040828156556800819336301560012469162519674465720155685186454876184818714600108037567160197362234991400680563352548370166919058442690686212770416388163061877018188975747280294929813942741432517729711486289546818844963006702165329263990499255165040569677604614621716617370754761341371019383411490126493278966939829661606775042316487868490083331656541914717512555052898591933995230906594208809672920788943085555369248120723393584297255300942603938900807432883535688765431619316548937966104545426837308147541949192346068212188550780614934963801073665697563495972028617579148030907053479552899865329306526246674862999523964932351467334655560111874509238595239653908740310310701930579432242181267986426121645829573232238781899345707352060332059445997661162508865606746362598340781152495440576821991646728852302247562058625535945469068982883370921151123418502475101540584173807575952968029296018414802510696455253775285071762608927988171058078491854577707091047403685144721679114403825740862898435450547668563608974781965228330341855594208754371033568692942109123757946011117650765067469252922380990286229142352908482454635236074271496714590721625925294418180668475160387015672778600016498659569677018546978332666324777891253773551283491234859493955851178396657815567260308599228788033711630448893650525791238098170379828699470352853953761415504431255220426373389690462244456755258772274882217675334466350517475489804216219533422176913834430416073118856644651126535357997945731751591995800820489959644947325737975485652078805522525374416946137913755108888333130479598506870182336401191487589307687473690685912777640383300169547294465852124730376451639391368598584427354280575107940226673707660986659809396563076499674999102412727268189494428893246110995939258399625123498320369474540513290798877220154696304089966838449436057313093898622448956484830419494631657567234460496921388846196229576902045184724309215656965314478072684127442969863918901791515660005443286350453259345643063430001642611154292446664112335977566002840629708313715436229170746463439546323681345216962459543067581023771388910199603524400342043741051415877816084699638037876554765234823124490014834171242646556987493807424690212802007432126023740098527561148814454079720922409069045139055815089286125643598544577761555268853658816477539138146892068498856472090607492337678148104876434127281684285256724480578326037741600857156596632470643468670750745507587288773652596445464221797228222048604431863489430112839072600752475995121449536264429412473549924675364864749002818560955834986489089371062104071043965300918974921145450245987751473272940385026441253573802690887670465613711841405861981738046353823825507448389431099117646145988498998162232936915626636238931371479569998731262651954112881868858583295472397932943540150766526202428025382527229978610214591899222335412856748351750481236806548961451726791665895845155256866682530305483417674174910490937992233859466961725631014617016312572162906409876387789022851801733748201331952226166828619698549872502807441247889132243418462504106811688922278362157803225029496447392535210434857867313807050550183186846619784283639851751089268019292517549722435831561341058826686238217728602919686075646571820837908134582285245017789733193889141918128042383854896664716791514148685804097161601519782205518062689501562029023350374786970335795359169533519798073642590276669522463758437747560928950056733489566399096618885984877607350866496414315658712806469254420329190426444142263866025023085091653110766868307776294469632351095630527130912309600492048899093150355890888970857199370432319330089295363183284352809574764573905208214865294998300854707692319444522711180351384649594204016323702038794686805498480588570688009547458636204705848574165054493883158992072514349353528189324235269607825075790392600249571111286526195074088980990288164310321075001848665037654490866877267561353891894041232953072706212090312222962622509111239408792243532698359188453890604096923634719896251188687145118921682454503402079615843129196649617307506871243464480998018346435825077324314817164580794201993528323761739579923561383839235139813817737456059058899448011172652239213615858616503438615897474376333770900405684781174968325414347239279601111691761831641443797321371620919603445796581088786379839955855178205876532158804233892234434184184875123383122000302887785077132960069990544561252382143105974151108090184401121960162491526285128487082651516451921534016648060464356943639793940727184011315443097270379071897665787594677226017839794641519491250967261741461064695069499070140857677712509837959519472097405315752614169675579373516122739597238732348675980561583923726128904398749329883564585374056964983640477538501535582484458320513122350390263939554066016317793958356097254744013153862171834080304079446652670659255063952289531818593108756717273155599102800012217740681753427603349942158786914873300355880669453775204678791493347233116084922232663865615659194625739298224531570695103528438007508132218308746214710823522791818079688156220513758536280292147913944174733482659191571644765197272067744972192531771404060575565682950499499941729143076799526562624056671525779055318994274197029754948731904491674362088336843873415689044106918988423113244389563811810729926481251767794590953181453197720172415634892870674757381222927839893862647048875295271412357374530013191499802853286834460617622648841277859918338249797972716350927537531722436802710893701459678668958673661496111578514717072246709011349412607429744452206128674251842232149440083314377887581600360443091703048498287058410108849951636785505370340685896036506053982218052187536196456163825114171606956905738568543252197675622153327718775716709072464253564075847144035712616274633417697179033168118157085333200475888972432594859127199703260281080753254038683336617281972391531206355369020584091295898808643702968224010678890416998370464146899568776412559712188698399726132817441825749811563043123935927228461219122403929271113556027715832311168728406846336842433033573078407155727888719315793454901755301015180588125812119257206536296383229234957460577788760337284422459212511157813046715781506858081743071392287855515116197498249841833936714340573168783140475075868037333401541232864848393442940905593523805437192572211325329016394441404487202211377465090108680960324875150544867498848970564172467798116070297615410282460485997350567620083376602292208775108229275410153198844950884339849681171189628928319445782493214117230969162994657251270292178991182639924712768957982727625438054158030554971485420019076217124584707977924845670094296227173583705471107168037372024475903220676472276343946081090689964795456513316148924975280855458250191954385538640281199150352833579557436259517516648720487402528771087378118576959487422855820354676535545158313132792587573843695904418875799553111094214941028146980843208881224478669674208874273398982311890974810059993934879393601680991692070598691155056157255947433317795207790827262500605182410258251366113174265294501256483219101052625459033294098517535697661422441789836402264066796743631006611655367724241983682157933113108338585793478960979597458351313193270946620041281207636202135194579422754878696343915718628088275411413606565071894540334151636194471699302775183211279885191862553573184524623652698510981899607344016597827897551822765484491766613269816507405540850102047199147623514181586483462208822789352740386097690130376119857237418990597833360912048802249154766736741102025748871707728620213034986894838104764588027349251727080604529912537084244175054027720431699186848493080289717532840625056009753663406477793361083311012450501848339689899219044541100919803537222732651321207558199029843940861415866537846302692984306389011738416898453345452978799435640795994119352411849483545673963079492453548372644766290352363599170031101963800458150805923496057559820450623210518468674312566830457827859539363415487257836405189008468706009982309094015678975815837835958215830071060583073896282678595853400639852167116465196849153293580204688709623100916524145211968325161772580943388947920672004196969805869143154658066717744512244588110083355627860954942963125582554053028262683865126448731720596206365742047818296850703859177247994266475290639101893228389259650624960336815740216253176303183797002657340504222611820856813016432402742439680791600460271641444579153274846077846798544479082751005764940635867427019311217192537135380096584534973368715354045751993859218852560743400036035290013189410723252588227323816955980513870466677250587388602200787865764152105907126373362775588620644777966712598070058233370737622704541711658458942618006536545191524241177215758485122050174524494359340002057191707221186435668920000854869000161038954294164181221449664283560282394020049999914105099697080467828777054033705622197906545963422621917929680069838953097773803078021439690599529154877750477805773251160586683513784396707640048571866659144758691285180830837045672561013526174852871598570231147190995603676558683370381053881265769634084282688083113537907053118097023031485841962572637891703591067976260998941895327931380142205718985078056345476546281291040254343157774907257269429002257839417255793072034419719420000943561343438666888788787162949246296397632249333017527126805040239394519209107524329225301042720554295773683556807505629866988715929944211088859357146255140788555305557529049176655284724383207087981655547483458030628452300985185321790584686811335391074855535057247774723648798431547089557617016674056360596105386409134056265438276861270604724955998775560280364360755024766216750092473598573213194302153523059234769694781498895929093529569649461735264070794416487043891756393136273259073922670936152620804072738085686717389478240828963421858874911213072794490852642238331492429560508187688599676735946306734276127760146469873162930045433850879577745709493852787980831859257453588872627277310088619305955361071506853237030777734277315327155986168506147530003909227650466784932739128142966150761953084057245513874368069429828702880786237266153542486964510306709684202682023610283341493107988289463330409315001023742802422821340972044379303991175819863752726019750109366771093408087161726141196875633008090367837189506971264711464415002836337009338944783425024496069585697109382219454578386827085058010419201574383106875912556001331713022570503196238725646254779092315822549008799583311545643743026606166881344321505874193432822973086549642658512990760158698928358641355770749124276098425588765799369779529708299742676266969220241506361226334090964995037191288574206468837074796006232637849597683617654641365900814843489006875835659366871379538420325854578600199149366981813016717960909734273514428414729475408224884384018439850911262399013253221504556651827721723819900178077376156853874464559634143032056090997213874100527995624144287156434225521164354532362142841706388723782254009391291164109270660944547911958076894253431393299473704472020332013088647258367697168835812190776808749168823962750961228792234161043777480562398238750777822382233080597172649544464823758938522912537699611483620737701729311100417284890701229688210575676266699617816904967120525280763495952974867211439411596875970119566210073809821876776407429078028398590326616506139189557420269159304937640449228494031949057480213880866656844251971234761485879112162462619997679970016581028795032234282855170804394792060522639875987224280609566691316978432301966209473296511432307210268565055091433858385266295005980249026058327542954396338633942282515797440091337519667119073608361968405300251999000088502825364914211583998359815911102194246434122262334393355792640258494243088642710509738336906938455113988805598528503362250058726031367358152666690417673581730031322585310299408465667161466128689552911309645841032327226771853298282641438618604262207969327872784473576601198265054338762018136129819756413105158547323875370470320466385866641158153517255616760466297276322578316961590403084517436067203594170091125496588273403178211521739653772378671250106230860440695569711498738041181394196877484557196519118311900570724762690892565014862282847592451563861678475344010660738668629584770067057597317559390915787097291775673550320362126026690564796911228663416051611811991365912735376039067787673786227825873461263843539613646851299935674105390295149598195767761538634018417573463917499075309008651976785544585928650562387626954323054447248632149373822681260735420799048347156398493762891550298040631440648512665658449946487077581220290806580678203954527537860767953130525136297631465468012086988162690714600814318196862694125161455086534427629654995006684795191844677016184272101325764043298396852267588514648381973021025348410112770371518535525140494211058555995062319190658052100177154390686069330812589648259578252925724388574861341945927704013112042407048072170896437290948271127470283740645533410738248968048966390676204359932833884731969480673285032083211555101785257130889205865980557853099998055486558941493367345604243469378397018061226217897807818782095589323344940204848926240953602701051075033348069020687921937559161238290044629577012823312053112223140411056558442855343650275417387225135212428795533393541492944882230083163557423344027702342295905502292876611086636197330532608430203515557683949355195213594332201680469469033878386122840973316911131478814531930113148426273105379507484565952649360351283837420435630266024914097348166494211796320652175908196566533796891573651136327616608344426181840910067663707138616606143732341041488093694668048152790207275855562586925946133135858804247007066790199629054710410539158335830999377931252634986601500995694163118068101368751906591608410829563954947675068002962364197421003554389853587082059235573878454681697756613777675001729190195003347710740401864310392590858547540931179053013305176810357585245374190932310185314706470047480241761739050255676429632263194010652176476004166986253124645946202463672307296085714399701197580367939129351229349902694074714561450637776528899494007596433586958594694553973934945197510203179619915434118202487757698462893276935759624707351629335983944733263834982363492391536100211872726640423314045528082465495188226189170187958832577827069595457836381469728346336561676624315079381198949026713193603513122995517574298378091003275226757389627443605199262570415295902252195359177495760491814874383356024415536493033776615518475578386797389502108618488174743385008893843497970580871690925874429709111146298030562077883513197884012800818132003679391975660861391182556859722669147732345876130965187145440383843445995636321820397000950413654036634561389106426430119467357197911205741490313052354729731602012084429960737812275512819069241727438410653441060764354793484870610012251464539526273293866667895189311556291134135894662119481814223475780850466288745421725113644828654741572131691825568262684796955905969038916177758924490812058860283663709280528493192304239523931429608029338047739460905258348400781897392412197988123273599522411023982318402418738190529776112774818935223065679048004445681530604437399418100102822899133459438641186827828955771911675450021541479892368395598683974899292801225850280321021021769577483089045044906787279935929287390186165171083293841653225365396970718955548507103805809025727433969889114252496505992654315863169597765981288889528893603616469899446839349076489458157984821901940934423983587363824776976516686350929102548618928169881775052824744754361926889460207637084228998961198918330508909469503161593035604389587083619999274544484820771829824033617002406015678283719974281040553449535685465662032973858030353400006231013972668260469030574191545787080793436013857498030838910994442553824527272062147703778837930872083498314907516297170311829664601996848225731851182925503317247663307090191891229101215677845718286305463701881111469118358795165297853895132070311845927960274261130526529558547259309020913728841548391996844873923486246498021062631383873394712731062273566695348741465718766263498068007598380611921752065234528584035689185538194943000373501219547638208986904091946694092355934602398731762835672426323708609204654872964225176663055660553386155380894960763964728062876429895411309708348952228871489838002356010341358534037397098322029054750070379942883957344266656635375725587302511964916187750254439347127281374918681126049745972278260749350000686341782879245892968184163811896604819856081938300507684972581255240529352356744049191216342485289732328985028351714081089893666191642149067536452093665974052434164303553386203167825240725821881208193229778939655052138786285617718056838742894871067551715435967756205305102745052516137305312767054606656751125472334596413257415506908215787344316460377489062328619121844590162212048343827642479087174423052692246461721746933356764823408699570640004514901212967829174895301990972424179999430777573143497421082367367113994047931601917891462006193242977426775135813886482408911480441484221518642497108611449042159004260129908197615949342825368718747132371497671221897871422248017631528005409437445639824923680306714652157264261933299035058212856488405494642850227478371775931274299371989490652462555055553806391810229810186202179390974606503435277732748538012275622101579314798634181430587970812298444039026031039819867685510811500305252164812973555573803105062627332600359576677829045644341816388772021456845619309582536044710611779419859677925911289404619520033729758971195456521723499347856315305342253961014484911955748574414261936301352907758469518990599271763195218479052648575296669523843865507738523230931749872038196233027731176946617841860347963849931895150652158491050141133600010807551779156436812320835045116995275160034449781457073043932620687184696563419506474549666154105573394999570165616120771393340883733781241222136180749965471468005724812370774238722664730550011714594618754089395966545406430845577208017768015754554145566870771658896873912629685307711447620119504374778232967468565205703504270340218671818190148163489123307657400923660294205914540987716235404073839143012675380044274625215802148535809912644799031663122987982942222199210704960759513650689247965166435553198247141469469496729076253215022919110753834211434402044127223343147402936033555390289052993310056894536101435449295618494062740885656983131523345473227922320770413531356633875045567078147533365982250300532237575542861129544739845591885335596276396701977847872584730590948359136150554260712313262581015831535446510968636665644893309564958565382466530827094208183244006266692361762653608987345651663947285691141200002197235632925743203603913299086827123279265681310611661323145422237223706616139151246744234526389029600081325395941238669320561174461348876220552052794605938013681785558595658545309104462739257407758165893999871210568319494841866315888325461412008501386441700177467818168856643486689543429053504157514486116015431321913432747880578135584287280843425963796727734279496411063908053180937017549173422823303736559200587692371993908965705763902880483873100153505515957822152304090768108583117279050639731141292391516983281331678711466686993396701430400959500327119795724570814882839052761285076011165564719684586946334003298298534396333039284607346018339042049546917785305949615782728118053297907998305531157265115276618692484181488622313327012019231796076511487605219968233881897551980750070308348934101980714569982831258822252150460692034379597528093330355187837290171281547598393848948786796788690656155226258311609994766556324026348291260266479747559408138725938088086687993010812694971774577356284236435475816741415575133013120820539186742074700615038012787354332012822427998036625804650784545956302362682525992008010925902920614860239877507944414469607627558205678308980757735287258604962431558918475540684320187390382427733843542721783430930077227926807468377057606073354065701940387100167169497495117036096527750467591253635238058517200611761395218809672749536113802945180157970612566640102674841485519255220181500158277621145224020219550987225648446793079545786920431852525246105981864089120753726214488955398363250229235560220072936228319750817576143235876233901742279854003382297412245015828814161406746100317337718075244943133415187146006503894066076278844136509903060073764035765744921005483718073253898754192036342144075611826918840336211360340193888330626309256211068716143022975350974914299119995780384828075352983571358634751806018526319378427199337232881591971567434358404210762843696637052760295262980397064056115927148474013955163856459150574106818673486964426541008214963044636007458186935018302437287360887383601082150596265137446233463652759795719681201690826484077291601835139345213299845103110752432942615541627983926457104935458839198878086536956213856093242100644549284765666157279318206102518154217772087056734163927892298995615549376933916755205326686636417573672256169772774333409117313059093847600574622243379751277472538170062579237688637344126190631528936625872557150861139647430015191437201466574447501037002182543413905905470398343089091053489657847366026740015389459959346838534397888165044745900229015132705696057196583200335722480258166826584196955433472035108738381501949116528850356539088247612475389084063077889076530831349765089586985365083885219087027227990291459525477927959659928870811939197271036280514025295158495501539887306408149970078927105874371579871123177229633228008106621500766941755917490039280607377999194988797960494124112119295855237302705420688345061500419582996953575474072561688995587858735157230180242292845312942486419717444059619649863200951285976508071876251066556346654947600252256774194585683630974363592325594804484276099760593140036948427248909590778269187652022280206824734123006829489219794600000136118550194488401374502989625796767788773360473941330178227564993796486668787972607514511718556385331561012615487113577048324653193071465802039870663897691731030242432480810084961126802196405213449503221708186030902084694482758610839839213326271071217409691576861849925204207183026530502576742010280181005414653125228575375752260710027631687481875173938047945561424308297749855795151042175260801629938582185781616268393186473229118967086474453999975856830011693230191417871850064947891206431940676114341717059656197421911181167368869205084004158016866657999961823302090675057475453947244591475384660357435676927650002546234751591669944014421745757377667684876142900705891961516634748581146735256977906768985196204659465539830888522327395760617195040251757996504861946613839169314342134957486387284011529962096428416261140898746298067085932654994980449515925407795222004444588765059931379511448743248152418337169838107237975591724673258466353468914352272244287500898218200411386843625704399831915542493431243157161908760474732826443326063558745655282458576404510382775248109692219627311014875480446671171185116079223583827177983852265367371598958708459899428348188964461550931914386003403221929621660129737037813936832326858682863478306583418529036484959414828523205155618668197223870817586788081163189534094885638489155688575346801659532631011229009206053120371222029206829689971456222689403011975537367720893021210271946805158058613477555060470929758968040838935168862186901362119478512192454480121125110557772552483060055596289829197434196910001015268407027841174068536930222196775608631402003846336077112454700372573921712124566659045039504910969795919104725263114253980500696349228664411969236893348311689162260793920161242874382976017622896816964620835739839789327536435788477127475155973135326815298714066117999831702959798598713215523453834667961263283586906632907396928578594798136514240785901387834151181385042766859110523999236550264709533973480068683296242516352913932334884092086477764044890614831651029598731788202748245750298801713968813987757426298711062436520922433241447791808352190485349725517117294474064892707710860289322346181700424838753984218378974023908054897532774627187851141206936038561144401725760845565396127487892449067420171669102011124502499041321354734713414852185277470553196237420394787464360868483377374917425873086385970217425154771431890395975236609459702239173076693668791757611597072689390781949819645428681139212651396191213338379973154036474269804069371157484276474077686140010906104675776905118264498918645368768904814560422882276242469394733666479898117680438484189938876766516186582911335967556910027755919003118859823793215445261603451545799833256751117790351102949145097143809084822785451960334145785062953228282067586313330158101687032274041287807772977264087047427963984343255161044488299119639079646914143401030529870544490534383864258309422047203198069139838625803718779247230618424150158151038393801013096214872850779374651326087615315611752798642384360654121579271996732075378984603214097765934925555646917203509667255229359112962923898751134858546838155324527276298273155367935069630986033449334023359363577734141954701736406203752513087321292863516770749875954976545207738869201866472528702345558051934243408118511759663567418661343016953877341700327441167057194011043593002846946695143023413018264401993237082516590986127659400941876653627729400525610834970854530002370529721652647013109328193389299062338600697355293176715723549123060024865421790068690164152463724631727889227070540482751881108422009619884573095549075907722133478848595930786268533598109561286183773086683759077668827708974685075751271325440600878229014020459567267892251131597936476399178215125855753053574973374252477843525254884485964368478644212219440893161572349350315131216227362643992357921603059652378274520341400439094113085469975455803586418820148232008672033158689949145368527633378678331923139999714831985809014163665377929530483952896329090913441087488541357202639949766407068447035281520937115235328368920696992191469829483865388571019086407362179316563851637593447708352243388332481184568008003067158219373302834676339593752512483505789035216247425541085743273267572544891932816437899957430929210495321430368546144851121148416448725873743697203833245531659938399237370872621767918897709909203901563179086745042982883359509039338793912179603029256112448299512160162488942776510609553765239735372515802758588745535254935263423598015402344714021995522025139641215928011149149258308226533697663763044211067733970389865116576662929773910524623371686487425911245009765633999049730707244150517652714385493291047093651392596111868320260517948175892669768368496766482239042913537688404151122295959111222518032212484162458188349620523268213089810808379381049269053572519762158504182702066273147821134349242616970715941030988208174525782297739174461606825362201800181135416720519181888360017923837746631873547270844751957709391546336670920038684547320079153261799300152296027852336602962330025323277113436563382768065466167598790971223033472548050146970295619859353572212895748518548099685896639073253625696254181079051102368106430230102385599156040902334171387622800089804182550129835171497011217567126961814024641871895010964767408564344108310832034862897815888639888426975820628319392315424267326125563212551765355315214631801003820672665893583022391661570515897797882233370576085413467141599399522358568720086519193292889796500815775666430596876985590011023241165539456268516694981761837095945256594289056104456432797182416636527138797237958364056495201452539914728581185966709341328307236647853649108206076303052741884946255736013374246735323608952560664987303177250710799351402421552487129211386759785796969131476453649717663324009880662914365298416957716105219406360659621960993230510492486100244562264979547361282780627032859266953895165070534201436470972942747174288519314576138724977860242263292111814997358552897312450302743634580766782832977390470697592273923706228827108275094457741129773042284414583850531275685700670546787173237783582380452670618766627138837066363417049080080730748588199506255265794821308313476949871433683250512615024420538205996761819898751140983218683605061653455372668350984040723502551161174529988961095493823362284766950559531007808016809809720816428222624046941771505045768067942561087328445139004231208796761858735095830714508282082957768566774728639603395874373583046090586028834652377889730821406410698179657065679355912814486916028193840776533611267042202248438494423080935365860888008837068235298121173393811048111265625205861247872067685205479228374414392937778332413247872495052070575249889961058720917394905326880251689692547934577508932806479047337267584832329695838285577124869416074139220375799151165700271703888819921262923882658721250311797744160359245675206477499477823829933906993552896865438148206341328160606892246554751226550483681054999828259269375281028335053220308140387672820183327873577367976539601785459955690555802054100620505554121760832695490081322854693975681424492283716522889896525525254788903161377045023646081280887261838035115006912275673860458384656402222892861230073828385279627199985783331610591847680124635548229651866711343661195896943488015687640769736271625164349805588729874169880427104739576009329359088722428119724879317292618765269300085951944487175834787394597405192088299435418922574880750823955043316031036798974783827500136098200009400340588532177148004873583479219091924809583722995179900697082332140901692903540700618562891366849886148345915991708104125371822156377825383597238955536687056560932041126279978096482213626237469787449144396036087874227922723734998045903427363636014308262399235831860612895784082316613308797414166712207353088490620205652501636608912793426855603209050962319169564214267700876719858395132530310333612679179600080050542547328042149282966942910256944379954140082871730611118676019316301922142668612052879563162710418335468923902168471450242875702220155981926527200527122449065217156950319099244676187768095535469473723679965222990843488980412341999844962670014757250756455662854812489199310583964444473631148206728493123877786856529517724509520593360528025728484141033614381044893602384868098661079879623228191788575889064816965164324737979598543792583074828605449728468378776611487180992529568692264729169187698790199418418796310621841761488603031291928486774597275392678721562004722725373781556719385831685907612906823586017156673027263364237732763781576423858339600589013810290578517387348741033735756160700459574313779133320144643259685876072810864614965886190842370273718725642348315682288410855142364062398940401258579342560012643334025301125498607109196293863357966783476187284899774176339693415584595151104037450160036400179303454254445024291392901257804287618400984177638293906901749093291398956355700492697657673634331875262195082452896164594103467209571075116986224368158625543344824174065169551432197035652976360516189120318917774825455401610939052308799285036552908483673052827141193319573707246474634647244956353374515015601254584487733766708615351593230201594771914928079302545818954071665715458548981236710760248098446448471742810250533121379295175075721668971582464711064228283680631786976012071570610681955137284557337096190109927709738214477702485481931986698831210091640099214984045593345000847925689959995373134379647191347508728739129304144513421894022078518003997336325063180552798146467550230680784422153609930030348376756599049509332983162563659004380612280135550828833975143488340566535658461676111563748476412746257290044022158776182641056286334308319833722928846186915885031425016507391545402861836214810057242776417914459574054320157554804145439894234368347378675000870748867208932830852567637105863227221896250737935455616882098184068261463509660129094782060736707230497632400073581107151662986428174176804511356739327460601593412199016280643539921372239016204632672807512079758023536934586444712988224809284790641855850594650841011253610256842105827478696537374320920979442542973552332891200239260798098788396215420817191797749889296124211435076506761400056770125908725410244189896295967352208049357906954503580370857182191720899245053609649458771778599643820344514949415142473528561046455365298365376451241870436130517770260371800523766900304592119727416767628657039613092341380147095790442610631815393012273706964445147922363393556199121580725538098961113167062861503996756376147671820472487743723130698977047413479614323053359014928909857279501748698270176949080834392570936735124890196260633512250068530147922397851330056044720647727326298241509135109968651399422864612926365190257630921153639413871192234119249048432332019770813410947807126474328100790486688566316131098066060054618199070779212457214340067712600721589356303022973527778405910885049462177828008277784874011425785063364665602378658294794672270061033304296650066384079412870092248446845084711190398937908741764493252857546094997490771154857969123080559833532546273975757728586582370480574685935320747139226020569427879296936680378035025988319418631062378473035259970941104178357722873726696707563664554514352161266961323373911935763389412835411925215948883019637021687968246792909907444267690915133751102186543652019210094412526031999287099747970139203199379104157835260645296931926325780511519975611716150201506062827483645448667236698756669504286436134136379879257647512914971472009198835983973190508847585747803775062038875702361108471618104658733055064349930870195597640953943365825379142453590578924848855070105456247152718187900736053292091140001668780045194449236995381389731505565340515071809464601416078391661228803059344754045956075312141070055676456525974290217538763370343202422362771999240243865546887662603412812358556367508683461102152160181732925316631623299811992250576472561496349122244695529993680108622970381059972728398879878361889462558070277974737247508172542597232683952514802493341372527157290112324908227599501278011551823488399573441451839067824574095169870613982954008787654408341623907504754275208858269969106362929162337829559889678802580593372799509177943044116419547043774884182588520339228930706974350665053591999882070266384931258991419922639078121093814356995186205293878665059701523751564307845075271924426370309828673596627603589135080437871460770442237999505972942066059374436236594839188389112664138898858031837236573967974598532528435959479757640964873781981739891550312344098548193365650293910424666619931136337736824044773272365659032720331105419581415367198901774077128507114857237407103558472782289142510312246723161602498259818541440528298786618193569705448299966151533815093970454856982226871113531433394714192401291636684547002986159183473478674377226284164100025684313865986169022678092191803136509588362576429248374213287219913313582450874576282664576190120926199268699408024218763468824093699704032971909884428162175635365330282208549253289436243714925813397234413152708674746361946801832028998222372745664690144273608474556023341147772448261550960914772886867501406058534471422492574561121666353600297299908585120744163615768773011457785790519678887222676953548817524703370232025909570526387064224912605233720569577824463646604472933517135304443890083957000839154515754001229517563054021377206746656444643593272345019320449268450149763819526571575347753329307966964724517380734488726642867514385138715704644553196128550242564957274905464729729155395420147427541523303525052315399939368636330429384327421102320136487076555270397104347270084923781804359814334991445538574128935722958459570092122321570011408675792519391495349539733344760912391096698083264320838479211906220938791991189944427268145298799504988360016882384885164675869223127405056721330525292275631443353682381329241036412040459481924757452482928953103027439838074945948003755281265286692704510709388249257154821566798347078718347399253791151303707093798673591348219187057857127953624009209776842102982796694090326551699349125042072481738629523280262774551495572955328463491416923907465877604066852433170340606301918097280523086883003239816904424582165074292936283368532618109567535712764723357056033603212396936322250882356780764316225158611840751710849293675506497689090920573450205176735250348442217503719842778934431883304640084538751173490962454455087939715820117398901596860562377439985721759610598192241875016728649138951587869161727900347573660638085669974384740822968900999041877193673106029842505355862705104451246714519875176856290500121449894507508876032459931898837796540816319656638347653305721803180655201021193041508184207200042572768601220861029120359261115823695998251796251031471046592360785728980592282334445519163929757215644408977495665998323478316752255845991639563957101093742502517525718498466300879141997283260239935503442281920067752827048892604139921381666031557354355497879621385463671304667076905008119233053566414992534464225237981153970403947222887684428500097863646600590972395481258392504812114539260646079567813734017828699993299965097449924171204536807985784609953891321120698957023377088076052963445308921965428671763090022163259539080308527984336813944628846438669154140731958447440828336159389095361624305584866463462739355792861004954416504618120529245723308750785648792146698436840142850341419870312712396009450028408020621131286614566043321771710986853019270929347986744166105551060555914378163136557196447556380100688755148074745643277085189711000559653181785485546459063527219757475310241652277436872521657764028267715338051790731756308009428863040503072379972950766908720213463267583292924097730612253247264601640665632274026327126067295018382144373361568024914458545057296699250691630306647011628854161893191286211292026347219382543617424517263662066524688875126727159205612238629039826732658229253941471312735193236462129394744268686928373024286891156739572435603093194343446308877436405783975186088901197867493156473942194820363086078210645972525597440534469405748377767997069918718884362514705121435509915929923058719507057978323505550846063052685285651920378293595460080544996698155999112263652909499116034332298249349032634798768925443472000091991405029189535182677630084028982100513948775824776536282492152165256153450499119414832829532165293997736504649992874706006460718271579035353188699155957879921816967620561610148154040721160650492743387958253088357972167370804836171604830024218356501040515214740341392636773482035321217132675752461865597354140648963793283861903858641740072062780966233144742831375505435905371335041581936510261934772280338541507248635760254687846836884027261373707188091768203683025497366178940398902621038682810141187621940443118115251645631645827314888941186982427605572164773937816942790444306228194753832067713942738380257687288746687588493569824797577868921740636343966724072807094521929137361769784106894996546202235981453701819404397514439260955511862279867905430100084022386294308424938300105795807414760731507119260456402498632813906486626268039038181082181149484735772306218209428309621015812879855263687458864839784706897316450248870113489217509502125974378521399258327731909583140929773540996096387226489414917458999436457513323857232641925809025375423509283067313738191095990289876416029047379924476203830790714865620135463037504482561448364332551869209828754471705563167090319867637059249006156130352604610569008190247451061699622227463161113899191697065002721585339644222776210042974531324178918834935540910035333151013834761991774206343832545255492117760366845519722231802468937560867139632218049528988239152978632314168383376037257161600263238412905150100080463711759478289296777386028333321154182472915255499934439778148692060020055869749880996626353352680974291806819704497706449698266438895725615299229079418166824937100054696546771526279244487967842243740869248684038282263099211370281221463925037627651387521777720243367222540946841224385720269787397588309532998148219328042651688568057700896817665901107395613176668937018554692158427123606450796451529297025597610999871508398857068569584949258864094418702388225032190641427860533216661768034469869063950990563833736991099202647907361937550700752668557126096657160765494907917813253134464924378747300550526101978772100365550025932825563421868648612818544494248942269355294474739281262578781417445122515610113602379493079084561546113322599413782962866762214168770597076560134096878171279235791412231935835878192024944453152815467251881821403223868137862001214835205387869205118926904660354905462846779194686653325393945095212182536897173663504891398529077393640825080403112154753901872855557926943532548845289540602803988076819883177088153836656888200747853597657706596441080977082580512291429081610115451923181438648934698344211274098812074378060203270454425800245355345636048681415414569338197850547791693752510793248492176294768234487132231757047278307258468544915309351156879706448694203997108173004801491883706173815419969623233743163845949678280640391179294645338535371999434920802118906200994923512897126131218561729731281214853026047866053630195549338529669302798323982782037767733104612796728105877335834749496139978926300160025195211644883776794111115652254007751856492281408835408601335383015999318193159260734260552333811992291944100321532801449127113134040809109830086551730878901026219632105905198415474740202644462827430158077782998525695290956131744782512923624205688577825951951887223002541719215086356252804553635762256711979512780750500537230208908966140089187512373978441888891685647252186545827651084972034723218893465299620086035559591617164531367286726019059217565737993384210209991816496612933132600391606763078516112795388279514359926455931439236770703869174625099381541272097106429575243814634160814277119371031984174508189289510066032447070589854348975705661952565669679184502345918174390309697820113578781918971343792037197173291857087316937708707606058819767587407784781184885997753336941954002695873829121008627979212299569423950517392243378721348694978611127917345544287469392215143852461795917468728931792593093577051261151795586843251078028866496842464600366516599494643150492760580228727154516715512655164447918980113678810182681793204481712470450972995801107443226254065856675591927721950361127829933605975983701823015982496738129250275334757787817625199999581478424089207514262638100460654926409156177047819054549538652600168053840784790402635227874561665182646097029457423624451601815452940496420124247125209802196082384794321923832762782378781503845971445035363289294813948876271285044349488933013602241090186723742757544097855126969975298656136605734812648385190211606785422618187011990471769367696391526710891954057470506657926996159350021270577649643866323121693055653985095122682283304587194476552758814727055915803478470799547896506242475384949977315650013809961738545348666501285552080190910690668260085723237592319252686701764759700695617960804772172917535310555207287362513792002922544402943996504918090698111282064555418208768639045667014695669754200518267472757231983282509949483422777306950219582164505045118568114081758172995994205667520796884823253436979505668226975197387084947565425727927130113448042707135759385979783120430400098974620404517484323367086051246207148077124634029302120528460690288195149969259811552653165817902927576737644804075680062078326500956272232169145535126477160439127270920928440690457569239059628212772825604998782381203592315761770912387322920766986225050737437577538056247532191673025887280013088326639931489495999636766353146569216259137540531377290120448180974223210843368482856036671873369946002104665785876810119016279170554856679757534926102905607290034274413860248807176566043414641185710405683753952490389676434513798410169241577995650648266310209558794246030139670394526286113830522926984747743241903011831329081447417769269889514031531814508300979737459538000792517167037648426374657206240524715365643323319197331669800405218700071729355004062833214837977365820870337561528927662402981122232793684943405625950530188287713367732068889563322565644294129475045971299566012309355410975483876551657228685153951014852015398992309847623271906630001305482101286681164982094569556421142910296686767948577885044489033631708254117456225397308564147812868416099892057065783091694790497131496057644506761697713118676825734257904789744180985212974669949248299343888120281905094423233597729032110606629517302385789589439461795330056028480370727005886324593497159864664215974079169840472376272979606814689249556517868331701848131982394716743976790003551459739992206047335598793326435356309531159385127714666025323559773316849788326546740097729660112311508731637537448612818794185961518028732183819370134767131996507637988556423669915950623678474918946142509974250918067229477389663670942221310009414356017022942231334370195206343339221450024887795947942363012315476959881040608773922332174851441070965622334771645903840531475960041730866698838119160634647216966949343027708826655945724353625251104277517632576285353826572767798011165585479055930688555324607993360431383995802703607652054886728955662531009833046078086681229785163909138521654004832309155797647418012944208681617848909817466357562449686195459552995090582567660542629448179424667162941758314044382516754033153569065914131493062652289214117507258034802873267303540131687665221098124665938101662690825501470650701641640447874432948025525308486359309154313030987443325683437654149317937341511340223997505510052696470341585088547686115641502320472088193834392042834958450531426096755770205699147511302412855216027048279611823296267711408503914208252853599694602712871823644792160486872204539600510641909141538201119663713091282222240286910034625547607329251189308940163263445837885397078678176770602791594301159789080181334268312681725739821307663715935764385490133980294816357035420566961013034779320610756814782663065756358858825638220410798029716140484694369862808879835889462608933718031010679305036723282465591866003362168287906707325930561384529782138319443867416339087089244109601364443658536786744037118808596907964756331978614718602028085514555499882452958978053502191827246097234430117150706216879793931172729631108014411227636969491255459556570212878705810900768718624522178408087797185575860129415086401129947014526729596253445864961338419095314834814304397661065969689647573301775646052305549359641998265293678295496106064722863742815999868741597199455560310858713953222008668673988705122480660314009757577382582491278899493612049808437195770176022427301682323446577048022379508137312341903966398347362762812913254702064373642869409817086059018533500927435048510724976568716818168557772400510960003451987448060688918571748458793768847812858748661335491335324434554730064555851825669024823611883505731481784927927255077562677176348053017372632178922891974306044203833039295210583093537534608382571162264461020579228160915548268906651675472630948552628554322361802010554502269609278245005976492109710606928289052123235743321073180675677111796427263561538701812280111004177475753296220039741424157949393792205432096878029670316876197317465557744042587622563206575323020451556166011467719517289175077301045247224777324810778484904935970146394611388844200761192391459664573378450119211043784040890040614107387567952136039948452578949330138961112039814108456011233050325825130328191793611219961846969295246502393645336627627736806203853029257750728812262057911736893774062175135280757359717916018809590658772784713780215704165134600139812221520516462953109691897608068271679590878057034622732448207778222488255898305743401458178857442488134443380130810310853365070114684118373694826912971364912205390479814604628256099044653035653546849222894742746125390930532956334474191613183744781729731751687008788430072541807422774169858318359607061348548986303744848599061714260923373293563095655928926308311261603983747197401188018458667999276693023931451946635718065786436769614070932175960858241411989223837885862879796264886150013437877848181796397508752455922529167006071922567692374125443776415139823261068011717597618318613788460434779893647585737537251991135040474062150203704258827951494865381178490611097644690538673030626519450988807313398291747075559348798919208799120577351142416084266238665919179668367594330524564254816703638189899253410484747428632530918826611857720007062622327017342756049316306793273457339416893523854882282603281871618845424397308196859086621018501408588249991292404685122720533514466189071100818142652711632490537707339309948276237917812699110295214647391643000101047796770129984968831129030248318955974670538116177038776830928348807838070728817381057130932698291990157647236316174545984693164411583196242806271798259676792790650336201182899720767741989515128171947249912603667473050815654094975637212252422420273228743986412883631160368447937478723462605098901969543019106223155885697928200076521836115612748860371268492619869757798871240279883895662398743071349546459782657252835556618754508421449639212716635459295687972985629482613692973815911014942259784290816911931323176842067226343004611058387138436752557935189071078324017424451836549964865629586728169981322900452841213199701829604075375295979728390997197275552311479627618398391128322449439850047305573988433367974420607529063999381515036213368562926519020065936260019711490863070156279556623581835718014745025834873335095810691975700158920307263692742154775816430649919976999291824959414854666449672597054424358760804973272502080141139099668750894736062788926398878752253626138247194689734783741803734485436687510520601092494763607685216162097663168491472956636662416823796018860645857882476959943057050180341546380059102149011467411019357215791785080533025295209070642576263221460410776723602731825656767049832501157252412056193251061998710077035399031785612379257587603315496795425979031919898444450829763570871933589809199567005275788145587102311794176560278082434020237484705790351400304850209432791840759345761139756556560077465131296539879333445348120178191269768091320894728705924420129408964239160471845390382920973471710611960279616407938241118108109909996973880138616844076370509624936504479673644716387097184428587547200186513213950055842462451495797142797952408973750768888217856574639852622212350668799338493661660821787337788981204173744145516841403991488689981870283049008344667751002103019804064431253465867074932812971935715328595321895765279312214946318741415584132019157312738520092937946721775687361852840628060068985808699196693510012659095910994070621328606055568133205171085684540191197022249462317486217372942786259024449607941507711245985881487282749564907310000952136701953863483511532395007756506732360784745857378383574327751290344074798943131748318004437856188898263626421045277118669708172552082205576646569884447534484658552390292034405440941231093573528875352295042643569281895424869218993789461043043102520827121273502573794530262939356208531311939101708686079140374583127459541138483557916640201791298888808687064625242403699192681861966179609913990907660640691097916519855484151921119194841727388095167566261917023294928073463683176554000569987536085626755453828871319086849011649856187768718737730930062837933102418976491394608450498261398093442580301082969387630096123384977696212891912741111220049153648270325351814573730166011911759205233791290292847326307094744160401100691029845804896864295282324116742277034713098502527281261184496805608597923270071502637037977266422471960952431079107553480175930318480869562126527977096639708997442202130519040975761434266082171054085649368551212963980241560369783771794639204963445702969017235813119887827809008294057259413021138703962693389679567144733193444046707094563050601621378344808832351204745565528986023531131979600661636163907358913709577713992927986280626356031287056932224460138373261773268953133800696845320261520140342385734365982410111570393381546489005227961563042757803697235675002450609447588856641625499384224923651072734742375628001977957482238086135202954507013572116638656853941840442064445451565368660400090065689890930394361215372583246431922474729076483952185026717968997705686651603163312740951380448418337331663576514730142589061901571289852401839788007751277621515752230969399930163146948459862541831673570660766131173126391261848847970496569028623374359927978872088215516936895764551961693633189031749559394391760163848223317959196047961179317744036562065199859138079408890749222307220861847101793851350594361442577977016451584095139368096210444459305563841131866431288033402962010980559737366487081695293805530980482555260489897520768344065170881302085332171781796827800945733330650699000005195948443674381032124112671312492796665807769086197062753009001773916965003811362334441993122965951140498488546481009554472935226980382280000199033019798383688617032828136753810944819241341153762065598534473208162711180144919027975869540873150726890094756870408085819088393862135039781800327019268441148307507826398895374043984501683831943064543398940322666572117710478413518313414437823485220722321271702119075315923493208416793421384155577646337381268389058781303528242168167051024969544631967522000632265107161023460488361441850837537488521149882734239540046419867905933224173807419941257182596356702942990352557537328576167798365743457145081027034752682462352398093209841930060160993976727913026915761099773846548822873485488616624067002128654210848739863901257335775441167514649346372940945513880105736728036900232990190579149745651723241410364799344831749854725297821261263739501050960303137166006845748236277294822505620849662876477963081181320927308071025944812663722655767101624689647035855402336586380563575846005359308756015349442907782066160558187716549967119783338477590043750472004581524224108862957756799900822739019431884501978134073549097028817438421956482326824344921790090149425102253738893361394921749301452501367970509349103887530440670486562120758148547635315150032132403891725504817402666545284214845373793744075985722397477340800090851015823020573755911635852124158649300642094085860328876544068058118738954295679633047953266901432538703160239849164420676847720944222890578087818726050518324116317433829037146103204648089488566849900548449560934712192830272217449612253605300453390802588487771286523239020118452985861198515694859507502726295564824570559859970920104520458181916518407205647564700485601607153854256962361984852872091791423277381974958372686578296301987686774394196583974830261357732439556729334745808924341814953735035064264892243915785511450319742091578154351286707784308274059880227114943061119543055916467900454462289669315085270403056688983182820122930350755895747642290714619620977829446753111281678968130095425293015300153271321741414509445594068200047609991239259483064656112312359878829963262387531398901889369055158650033277369480788677361342864291884967362490207323001043367825718536331744626808118869737430747249043610202628825680955871226304650993714030822809190749805489049684121520346633053946301939024195150454186612882072190927669930198255237807463023283700822359087931609362001293688048272922179993146698255588243880724861755152529335503023813156112040104089068473679932131138870384654728953375042228275377769929909266368207372817855739686261792917938804610127209319752919487100899057728370956237222455153739909551650765556664351088801394964425970176582334669371297270790332565623072943047585197187316289784348959772969422524490310673787422240502888260604811981244230427668639704228590170203320083926139828393534801547424943663397528278285217095903062224397990747736345130955366802631875674331631381031269793515952584476174502091905026291538037715467295055019570131843642121680648936583656686707722766010493812802623713976286171710051898992708059257544340719196269324493408967251981082765480870980021740831814867321104095550815843523573197598940016937854880622766113340585159405979779771343699492574927162751627341149133713410130338800168870083654372361336796903343899346983915174427645843626763081276010749730767631967158536800439498324205086296075815703971196923119997517026064598297797005941946996150432926159164509997764308040849644835264315315847965997307632186429151482289462576251259581066900699948068112893945191394538470227394860533898423987155329133556100613913714982602265354291998690270367067731463194958724790349593139204534417020303752666107639669010835713873030300857125225692423046608412819637981767833664178410954954796660929449713387369647533378271239915145020749574527522420693875634156792864652699515155202369635816964368678721049760788978323465411028652869560900701852078451845918493223896560345949972082370072053797219894508948115476999933427655337280628927636072658092117464185640948806508972136646791029204430498117233950603651087308533713835092293146478358364973288324927600921497834575118822811605114442694030628709270164285556359990668693630342013786434471108363724587369927386390302513929184749841008262758362635024375079815065137643541031892183527101587793301555182521649535726129523408360845099958818736604147081645747953890252987594748351882780354370909229062832072871629805496086347183959852097925497818107189769129617562716221194612210850765711496956603581018023331803830023973477213841484221665137130438451636313856296365410907667810519297291250492425630668571791302619188940610297865484050114945331206858556677940929076591515180443712859275925059955795588424800714862902152117444972729804341664949940875777346924340955976865606267409033352903338993083998276988895756211291768683483230229724256371354520628807998148133073843770319182253841622193272693344177901528326787345417206369578991739163492953675120310634627153816635415493228778988030523185850418747549659527151358994310556439087428339682482396017659633020492382780156978243015350622663949520091099702221813613249683905956724093641566787999544602479099389556034837272217629964746862593467160858078922367806203979694469284711263645752556482851529182408705268968392309748984536104834950893313776671397547494878772190447198170347416383573183475177502855459362001818767253098158893954514295813916515751433682079567120207367039745612481344040277452158398818127755973578898320864117055682192248947292707348297682881255324051185682952122714195008907206431320725726095152976762646374691808053613450139567062224569868273664338488381966500188365711450020513770747886485133697387188075377729801352629701201833907803571557451213161238094341674976645736927017728737933972340890782403872949118053793896375642550390692528222788170870558587576643404861010508361266912207321579680849914366223426404707886818456957236348512935749193771927493397095048624513507517601765502867347168935252481088556773378657128564454306340125052209209455888628055655553553772654688168900596783408939261734452614548996488620192192882545380424332161801665479509207957827605633883620748270609129700480373058536984863224549155685052495964600303585481161632980670144027683575173977502268231582998092127961655132682536258952546521670779383508944211184060261067990505238198448605720691905872126113216096744973137833804928961880505274974056576758982909922395793548555263558203731763849772873441973291113728405483260610670527332862383287994099594376767912093479466753549483223325395321062590369664640750410058282499824411108040913808007225363088585495501787858010970014953386774274223285345661230335500158711679792141342366587392854774722543532382839164956185614108264121241978718804861400641002096141779794169688533111039083267239126177773908310036303131742819460606959062137742056137435404720825218398172544242981268404163548709748140454211561930455204122619264821651682523546123852039235413487389726953416028587734830810559321893756053794548480310748507255079328921821174191133767562537434692539667683558099585070123816811739412190519240285802021401096137423293692638627285418066659343883878703481012718284943891979588855103792073468431841360572058542226044727411643300095514077974469117859325531518348667513146293352014155126348969876306239797416711914250893749537041877514444895986840376404852258581163395059019097674106175746326946054081347038770941153662567469693605846436612098105165211386672178568189595335541799712902821943025410003274448929544440299559139102965263591694248796151570359796213949476173088981038428118499882198543398046364325302160499691881968315930803256594301756900842212167267412176762070419157396656690701707157339135141933392399134795175577222077260023843228960074239123322158511222743004058599530441899298985680073915485829437548607981194353398883722381452455536740085039365911372128856240643557171353508178467395528751650674752824041748015829239927903408189083654161310599093050850026272224600816299079739618977623826622891291622928655722564260723202345490509360555999759128078769008653768957068984974014689669525889831810458856512440760213827460343283076046917263851802981766842192334280788502960421994206463212334136124932317082734534842802246444122842107092065501183654922160248436370838763268183807239936080086684566348582162206237322130273917851238041746456462225556371032911696262311928069496056360497407010635319078789022383470856438882981655430973872617553309172311089168528460727067626188087629534215891143169241061827552471121977850878494270192477954017717668185662653800381303994210432463117035110708857851476949014992755490070542507249496133684770520883321646638390480998275155851229110765369405723791571150057899988033758410148448644713604867253758101782419342815156083814369763179847194866598569376302336457162931699509391687562782477716672876122886577459945693787330350956455211724516041108179734922623834378951911565887744277916771803398754117399939838439798741591368003667005742164451959241987263745741123670000926229976476583671529613711487527175981444457430075851391057172692340608972633459473328771267707988733150380701680099356697286544267415890214855416421937227161152674995149508096227421592938432052294519305723353013579165365650419536133256914049699134003296747025341795281713800664615553995692730030708638474405094111932127713125686705448070796743408338377701869718106734118111564855223883113773532775181801641816854840162196329642488260600075622507200230027699218183496818408536701121451011934978555016652803746201007614324461560923832647118410959250336601169779509230063888725957794125728716427267049544660623821247187704998706196412371671967324465780666114689515527255107107550141966834999128028337794132741325068721745894966135801314440545580651604711942191184230367285655096753417882261786903196995248676063843296981629249440025257156399243584106216953610690221527255822190951528675991857624508917734897049512934666603626736750161681970110134224392450211778851309908950723454166954147116157383421192804512401085129964402838568197554865324530620479146459226838238304850328010126256904135785054811087495994895963944736351372616232252788061528355824726143379235204627395343961355275792512353204498777309506962106309325779948039405508155515509925949500536363059395395749935045838828419922933284275406929624448855154963022903321553223047096253985431323584502278828779697836752179726374715215168461690982262783161681337743654092063308255393198690202151006210509876065568058275723434617105444733818556193452395358121353991696004562208788218754954443019158998635530473348953962412382090969491389058577499825795549336672124655135556490253104690048868800211560389059334756487265395423585263570540309840471157286535549241360671701137455173858762923933180671266288676527545762766806122411214827595445086058942935265479598753218814140521556763416506236876094309399270979388309658426395356064192520801704275275131951840884607903796644807807545306118250623235341960988693682975824751169324395930877943812385585485815290895383654325047480468174537219272288637667239557794539771324490028872501634713996504250514500262775965982413407740929680307746085339136838185271735548310321738551673389614424702713870615604492906542704515430028798008103855916635962340620446149819119197879663678151305905244192881901923731899072087080035019589032772750649484505414268298826867322491977782976345964791095522174818209130210488243031859216654882959271618688020611059477235499541982299436044774515191022203528927360843646780106447881605810213148453259184134688291396155163781128085653778480120331359722184267927479831291241356468263799926561158277865665255498988194463055272592269624885282510018580906478524668203974996326708389641132830457749750572088943583454069744016764217179640612095824643504404746458679268718536056739924312960569469553719614989158001415651148305935299347412246427436556394889268627560324219744016855588561185006700473667004345986323551057334394448943582356424877879032967537816104355019907283348734582530525778157974260119934882175622679149973253482421560112303033507112203138621233287722470824415325458874238876626059120921776369617867083171899225999414647054351495675658876024573872303951713873074362937125834844288002870131397667267445431892386971459569458122496918319963123616216554213897900350568725920564436883732721406539900424323234312383101908602944523878503641753976774253178104698230501987043470814360749522606871827716329834630892141292929211927550117392998284407036915803944091429064052337222121360138799878222894317394556823564035011568329608267031894045102829940198844222670651384613848205124115584251391420453714352496915889216346049030750719077623801313870764014379149212957859393990617584253027738615465353880644980317315792929991269289048602145575397162804125778439887969951762913442859152074497462950990303360063985683594708702616695616289690592814402760266958284599052563250538980708642599261576868683674629741215658699291773982467904466096347304016071398121881433120563147767887128137960153129732102929630681198865478771078240448210113276175223259530546222130292235042540251198190392243003587845595634324257684828604077235037204788730739158504173987317210466887262429503303746466226418522626744269933988048853252151465745476518726126230230964240560770609087154174328897888039211536637681216029732190026516099972992174780278322296110470594193731364556714922987143970629730618791384208058153482753945196963904447069079322587820805658655808915069985038465400480332680594749727056656848295577947933319568663572613074715328908428438498481307825325887256487098104514899705603327356581695717802137158480405326359683008815052080167202569072794258341100967406388280875333184343592648866530527085129178326428888794830438422048596961007151828437007195414071630810997563016624327418212232496023194507004753869078906858730411749691039400496799433558801998017280619933347414749358944162132121330609498812239819726049653621817051388024752031855774246124460874839289252794985619584295140521020636667059727954334711263809935957963350777563323817917143265658796899712126682138214360931228984384109172140091406717571522551990658658646129526790873158835681353550087955180820166221860605710099394803228664575324166963338146423823133188316548361713156043438990857944723371771159872547997864222332519471560841468716853913123970842753882409648464480952564703572454220213713583590815588866319456553482055636342736581990225701078160665305488593566973550757508846295007950206253943428100034046020188438545303327915418659620095729398124405743400231573008167791124423035958677954492074949242468765393517664466709271138309343771464189274768498161631461598586386244627667580956504642493324253090401759800673182571892915622676395952933475041786138409979328854954558716276267120059335768913413742136487624128918358944566593136165396096497843274636151116986847913332116058618717948191604454045879562335871211152279841142371532444422980710532139808078514401396716908467694933838705913502310201191290821058590916830701664075301638220350942594846800974684018843007282083690865072012583337166877622180588708034250849241770127876997652523913803210471672914756226737247185669466623182075439718411467897545920875858642643906079755828334353246985795925268760640881045736032204881693706193036532263093415584903286702112364752788699951901852521474763579392724044651096791962899430300937580533720475133031760680408718368982681890422834134161066396078110578395932891945669439983901961618238587414866712973063071179263066179271452057913847012729991930916270824565690682977342800792191211534652457214105436150824960049378264579722434678706579558389344143420253166386076389434646195495256787268292051479816662493292796782726408519340011066997176626619192340757140514528762781683583113668912005352706343373235949863456530917374098846723945307565206096432740106796256573878985070311930630191737135005803413589598939395093585521936531374806637742717904137086515593976627674547366670183558943416707288747080222212232246728975956575942392177074871542892301896645360731106477159129374980713624671886392511054241773785952190918466627435465991909888344231175986117406965880727990599288285054317740309850040671037956457683084389597620615992070938750151223465487027641297995904751222172882989372105850636763527693028991417711394751691209089641278701811918852715721640328942909026375467383656035592916779262071111133981405203586520891928057294958015314773905051539483290997915847632834552531874984837826140355138750008826701054978609086003802596505399564693087018572416647965680342802008059171752898656840547292809509889343566452414209901637028808476767910307233877541296381637918306533591919205565542476992159666381253806667958822938790368436629634368329430128261744715725369394098641185217137944565742317906311906838055529815351796740707356660431064046063843027745450449979643316859628804206874130822054027625559232309778806209284907710402765577340979339214776181199662438545103511289554387351704321092291941112900994144162605390024394757336409131694676283348036454499320556981953088273433034865746879538160951316856475299793834260247948769102152971737182470275053537353725239847946651794499892165005109310417392905101968536041666052365205516624427058549002647014588196386891515270138111531770365396174173361660735071125442427301760128107377926235730826517530606371330324525982905211899881893537535335343066649540850450418454156903715909490449554979216493272870125654488370853476530291694667938216473888437993435804561529980986193302974980171985239169158681657063258319652363754139883275499709424701733746866731660351020712485465316669104215548213094605862115131551415373472941191255289216383019884410332828089793074620999683028248983797143544243600244592446181742081240449714357571240112867747392111909897946106538020546964852410417472227308964468947916984634278536710050418347641833163283157972276369817254934009383144941782838630493262606398504602959101500260507348482343913492700005678453069432029421404191984470266186158376181050031499687719936762265989866707977572810553376123909004464558920564493265181548573130096087337379810598001537581419270931112419599747601906552619245901558806533517647072283927379577957888969042586965236273238979239984012755534520927243086313396657579304295731629073771618261015165235350204229755377524802756127734406187960809793235051074990851851281897396732107677300651630000219142491768489764160145748241790880424075075685881404766290466952135210488959273755128994639536951068103774593305391726517166101589582660188766376526781074672858387441181143854271515454681639169603213018671906666592125341935673733670373871119368547888226391921228767667383888561640814947952959107274295872449878901361433983818114885870483925697047798111406962610334731468119864573681766452288152266174147983359750612351846827359434659151792951627714794675049414264699459141419835494695225901638865469366132368266378030107428774785739781998090498358084984706986870387467508492604996797299774557364727699145704134689404298837550709898619658092271934583077612234257602603830619322784298952608520106575263532999020360147182290295510467040682549526525881971200769970187769448367317600613125229753751314565249318982469926365450149422356215780961415355082690374047978471260031338594889533160193791868228150762589658812725267533792476179133388891254392285971901791292946554632626897981585413549604972902257653687238997093400918565472417882012396888630981338956291997543627164037245046694681291341250612976590235630295261962263332711108580837234655725225173073146135800479930832627087413984752993571062978545604496951018360737347317664468781104093355305550706237306327901557239913161901860823341099921910009157945111648984873452821422883234130212274105439306369979176793831301805042137417574122723670202916538592314014357357053854654784703217788605476186250036521385997449373283613694834286809600978849709432857639970959491866497327212924751796566682002315752943458785885134458786278655008281565559373499709497274029982247942481242729553186610810939216635146538756474027148192423043106698939730238762168582600941814732544003326779865051460170333924361411013025690969241764081495095110037175320631087598425326228264116462966998992028046462880123371497265302530959541451386794579756252493816919599648929061568691655972428201229411633995984989514813795738602992448096924951336367238841038366054367458512994153325418179798478950495169125220274159253787815859979656752222305708140760679660545830779597811552584931230061957541301035152692441160199478392519227976275274229878956679991510282998214536771583298382716157526669140092309698889888883539334269957802259718033104184782916498207811896749734615585977550551496640604652304323731711460829383477581856905063059116838193173734664598316551104859978850978546782583887725860513257882282507230865204447394369399063662876788644685901511454016186470674555339595869102464219428934698938231990295143471001867039012383888211860140646987010789029322379359411645868968807159336777967331822016427108411589221482782768033525346762021645983235548704366041650142813062303712020891335988350228754204592038665823831686374693385106029527429319392769901283983100501582886013371842392081247928185971537564582329767582957546390680583657247091218891078695008683774906931140372812763539878044734189161062281264517956776854383169446491352571518392739330444977958846695823845975040012744957870695113347957690850248337285711196876983029604897596177791199393549786754056846490969614817319584128030552371141107194338418308462433094916597419960766761406340370988001090297993446671060601173222005670291380839953217842395140131074595653739476631436343785639267088304914029719677812104251350759970737470103408985753068804182991625020905836892039862917154735943953034534532545593774987860975380483341763772628954434564700803054899321610416837429982373216764170049468323853268801435911080823273032159227323315635563653202625970375862538359011362341302400886644492613260371062567672077769504867192274093268729187258276880896685233416335432851565031810027690006506871945888304570351665171968523286026383126392923612596593838967273827154384645900342710679586797810646370600951029794695028650310439193881879516923342885017302749642164108265263352488609779210440131640172749110343368468977551785851531672077245757029125370371682060180760747765229321223196826980834604668181189287049266618252265394523683776470971406391188827415753968052461943367092019987257739337295913077530991389554174638967543887947357091329536759567923324218049230214093586578786218717290716300421533235600044166230164869733209521090298430530531347927705138233619936270588197368119754325130705205597565744458105994524723111265313581286223873513879911980244147812828587334916950185228522353995406529218237923632873956059058458800152227979181005583347137576688471207045784211005396105931869100531287469019136990411488168029388413166062542312421694167531415718537082714080935733232964330838364882421438723576327511852674592063399994126799111050053968960360081437473362660501632591334073973919026943663844596011080117446452687322516137631640191083122993692098087577878955650717846894776532405456990733820309642944443219046291704995226769405894504602620441323451078630857342764437140948874737592747570964695277847466520006640663055643069066445269479390000320301138159698247793681413781275560934010788777513120625441662580968745850721960158207997161316970948266224644403823764575527875082061042637492634189283148447399517680443789877877063864050461683460056412625031901102428638889765206709511954827541489586223487538726421993811450540875173689511790048732442063396482629219645737418496319227686335661994547225571071186680170836466649760113796653677321838003533441951545857768440389343071203756388287096578149496895428632166815902418311796632157699464090532096839913852237700757344259965361364997528515475421128927779666688933165550345093057017371729917174688062470755196021526528435517026900102506607454168623531551242034389398113441057701823214155164927154235473017349309828506999247467757592788844398456923970259911565669815693224332973509834038852176436495042724432228902664308029162917271610930841449487067298242826171073276779987414753101059614321323752867690128502586417810806312371900376147894156650858270809010426089565547461472053458194908912337982063655060933595630871722014740072800542571475998451150074873017926514601170356125162413455724463711396912639265002710819863532129597870397945812357799779823722175676676637398453362822127833961733453858274935498097737894291879737243935240507614769148260687028688729944991657726300262404969547490244532364097955001002725997288271212153801287034627209333755979795256276877788890487609922482621807964625430398049954359424858976457687528488651125258443869601464582445472957972627030200059778459291818385344800910870032769891604076762565027376278628575038077150721866339368708954311610979236981913062338860218540308168930981195879608461661622047102262388750297871757433104797633788879923073461592444560839817125722797982982651889914504809493714046411742628658797109385644454750713993041254596905709328149386689981460052779676719813557298336899124344665110027575332354905160327269846728103852762641550692867168614679006331580521735052552097003361312675194071882333060297031853191206664250303049122307798083706384517365579961325812514853663663991162536151791428784027306469895680867982840568080467526471229419568596304331473322973001312585071045300538840179373697937566750112400013581239603389259056698582629873730220303557160927908701382419628871238752352017581245040063355652764890485676053749706005267393192545444521473233978294672561074263849453091780912100175991611583936142359442992122278737403078129030284715266002255038131454694299973957113905611474953509237956281668207745565910452019512107390444228903414385186970636190411230819723256154133993115976147747851365341696428612323179014106611457157479819285403872073840155025106488039083751312914696672111050614787557335122526694648030571625565400894939283791347050996792549428829327008125228900854400207546349733185556697858350043228566474338450746911327248913137553534761787386461817660113376498443940282272106988834944896444358738745091034389989319754104920345235450629047322075086252152065804255047923877967575510703622874938760059683710928168834254503303865112637016698105916360186192809626201881659519176460428589928564244733527556071454701157287449695490246268484414088422349818666445214807013968384219728131587763847844469273378881128282679644735664209325911158460889334302759014945021757175725146099672311361261963814168827164478040022069391552243919513110715387141091209456074371782079701475188319902641095688538168960494257694526565178009646606845139582873545103877907119133376205319080894223814895417243230542677180300649305965172756044902785979239328510273747276286090584946881915863941995293896723242789718370586841150855546609296567500985557453458080505992508743332945329485290620914890525056456535615695631897850969566470682283525736872668537513114942297639580587281918642377992190636804494042698627980986389247873193190593642741765779529853454538500712063669454064883135375251831975616138215613268268799606691609471126962243816235866238509924648635567629651717837446697304074633615393529869162246548839931766985532867441268693138990718990186015878738651716540131393324511281525914184247381570499642931907579241645958011466822847348636471988977607635486595232206999308841445185278767642139588979388814557147764903482023140609450527853852227769752990641244474005860911227184342405587390190010896961700870813576074830714695716342393954389131513758347397456209581692657133279392713311326143532480155227444549962578629888004880543628339923408813336358526173454334206656287763423321600984305826684816424748976347231678436812057143205022662672716293815979014288128540415120550965710843358871767681239816954190790836048221086677027642900220758234039081549399058153726195575047733208534257469479342104711602724674905943329829905824270303094573147275940984921521273587728566334918759954548505107523603536435051906253988779661407650777709577834304850343218551475419809778561085487457285568798236428139499869002591689418126576881757111651984236879432283337728483954989017229279557466973366454264673916375025647743563320786108572136433314527499222354693900956276361972116657738013874230906599749407157098851713811146967536015307412291356497093713484469215873976978619052951099738244042547523786822889387699563819163891425454413368567953890161358322983757012711014953909158195846518338802044064138806637846388059679746599745079586298551086001061681769739748056285673096638023157609659726306614819348169766959413489162224537840605436424596245392001415543863329543362908975558289355037927141386555483506272921543415282891073075778659842371621770841870602761242243438148274734904651249940775961128053180698929636356853307209642113392456573088302943175009449715097424003799282098524697656544798726771132374741062611654927198608362141733749008604879509350910081258450411110540670861949408324943648941051999885515513569364734396849053453791244775250726689091012245521377299864972428999311971176457880342622319551411307114985975378347330891295957443177828034886898057250284437539780480098400560330388042337081678292158136500082962159453675158934780286964238896153263476849021272102766779788167284105227457420476227308264740460400102974991588606741167589338883096134712581857446078110053449877079976353518418391635248944235476831029057174622910785900794248598575912751142063563649236787764940737223005848685695676713763065756324090434062794115280491104085438456132742079633592977734903976066583147782980977495449280004445065074819853238043894041260771456959279731570209368551994389627542446108791988080831120953471900725144104037404937469626636370690446997031994128974474461021702887958614112161445128790518981957077791033281536151612629458468497067800525341744007631285869998440381648706829707711589066090900961444657979947292484344677296708888366995234397744584148879110890702030221876590956005228611968398521816900521357441181871914518681100713992717118386416714023076217113883585687965283543441127012690699237588045445415979097344517878791838067528362992247641602798060604394284592194511025450124424088234830375459920024375085872753479529341308148054580321539926324388739193443708046248523685121320263672517777005148164901279519658260953385508992700117333817816816092474756607091244155762635517011166700130087447870967632612983969970753396895854658503383773718072661751819624054757443997241923793966940115235903238066957633059209905904061582947231662909351547459075456448776464200974461266124791520432832278421438893858689713955466849237678724000111453526479318650831305555194106189218311185005189989037299944881987388601024679452607182730775896106296457273721661623748714334778809949476008289577086242826839893523067282238804535687970861109151736182591722291873467632965495662483114553159903046936602871252931244954289357150895591783779597094839926108498965887840874909730193174150959058534558226143603759867148839776889369810005900124929059751929706587418312462024588302944136648033871081266809310684822960533857062874084518406578966665891375416369465806564522165181378551952543514758655275344675098042130382480691005889961190189009504257078134891418916604040666011554238637551889761638417101807946836710640323080576199713513721400480800383956524128367036450579220110235235011879012618376014751461806242732185188574983583683770003486957268255110692783837914324139251219421655920318931718826055100531337529849384603346455005092808297974899850574292877953052659898415846043252247679206563441902700035029513680769622943644402385128529779717229858589400584354095108110939176879053279445084764663611649716644136365599731254121387223074733306886721414790298768030205201063093783421086994497937374427080295409526833466352714939384871581964814287466368079143221261272997308055419048554828746921368722996864831800452626057073076260099664806621955674050425267506118818720461346427474899050903197225816670484825917321561688749354640049772354721495035102878716571180681730121922640720917688779120851301282136985569250026748678399859474428350270989029289640476246630991271834285896322381908970081159659012052097026663032612954251835790644993302793989689720426653442058405496214615109246521732749999514557468545902204846504036179689802851402061978230042769309403257790083613367788052792032813832023118733398235990188321219548366006487135377040411105619787981957841949080007745550644538351027053825125877566963774252759303306727744463968977092288983099615080793890337808519449793261322158671167585539209153340736217656900809665718391141980792368156134319590789085862711443037113180963817837548032478037271520660284390628008261431563143951126238453384703369049684518580516946888364371226520133951139119999162716577434468217239397267356023644346458989059520240707999533584406864511145140802193574448706484172012713000124613809379671759012714838648926759015600982223685064563992584469203613777802625802158602773949335036337454658961614412529229310101775081958086725677729789352309475121229501597932775942440776393917518000306829919958259097009327441529065018594414796449051991481757887200171786508742050888550568480570828460778732137939287448998296106912609424683785827278422190706478278765376749162891777769041112906034301711731799078550851581526904883473663146167750054000125404404219147279157498288488999035485487013556447285335002938857151069120194834002919940199193250247648363048392368104699509948559778405629715004340056870119219090338579589826447532558172746297294121958942536819512638755491250296935961294925674559024090516464824497760870886181106250087333774981619177472441226626303836713817955190782911365027866682643994637656574627958592792503904253834798738901459953582289926589755815553524668556746644937212058153860136752647644102603536853097617144907796664976803073280951622535724406201176235181974808402454407791338903574911701926963147695933377687577886823401291883965811692904432918804414334476584846059778604353680932345906288267450014575522599195030549923174996005269935094798684589576024656822786651040078325992402467152544311118290320353722100085813036545709281422303684237732175990306699961312617785242993514036406168718523351566372721581433939902350046501965101616857010577994198102289207694651806803516629251673742451170789913249745017320309865908985814554025243550728684702070351124398321876482793659749793756760372097979396834565011655432667420433133476399488871130212537369207932218324167213977361405278747887705576260793074334772524280632236832701455617425445835946369466915793116962541116006342020971145589041016884488543939231709203497286651442499080292819060538611270062885049455336372223081473663943787532317843519657597644870104494638569500825276493331059643080949738024553197582367906618449318531497035395272079970060134187380410691842181269590439305271887157981836087029195964555730535488339403882559721695628470289093546372149175229871115803937611172246771089167399265222549234453842143722736371062869024757829411248615563567840322782999739715843174727136867759459729908293274289125297674925419053856875013698284138953058575201286926944727352753740285671798511500394132928328130076893981011076206318254377565427254422343658394554873107891876080388758486105181631814629580340346465627343789886742464743593589961463577855907916530552598128051581678701261710309951348764078209802477268983708922973562359691237374441571441627772877618625760831696284348236768089899700030613020547872446499697272071884916276785222227988637541071846592370590692117164096827564211312334244316096801417223884904953840701041773357960424580832620383945776492565231379727105446833498092842916374801993202080754077816456767577405640501361703244516850643817057626188377812941371404631617069261686871021677093122841588856453330181210245516561358117720141249133308467679639034826956048449047808813525570476640356304933259836696883570167411070570394516701880671603882023605461001632931736512351548476517675074308988681629595516903601748866369801018688666319691156868714343487627787132742105918663195910217733268350921426655648538991796546712292532445210637784249534597796370156017569456051472396695776684487278193981036504468625083574644603193809041420590466351678066508000281920995868816121037924009744422352684218326257824169758084548080267100548183417631872063332656292008496434867122834242976018042306516271231635006104858056816377831994903302036883513442208753854384193547400384993237839533868952552830121175577566349475102202353684237960796862203593878641545722814981806823068720642289639953662668699504613822517386905562980554919297390902273421998005606638232110145180618753337518748213618628534974669446294457729812626650427564357777221369342370479898145225863739557136800819171419440099456558946351310536856884930910283593317455180919282816254309196796321349902777976693734663789396109433285152661811910953160797055861230851333718542582069628439680227665788625618151342796917490312135103791180300891386724000643793114483701606516461186382493274360492128974188966516800972162864774345409161618860046110042732566162319335338822780224256943310297101821062675396752425573256008406959985799070378927965849606861931066044214635674827708817404343235249960737317555424342028628893642604211593816177756673171282587148602884912150353936249091741058879624156104555774972485662890993560730969584547482810490848763472956855725103212015785576173163391891369313472482643045441534128924266992115366376894885424384217355651896667435699602873171632732946459675679381585052336435698965247382524018321572745677585619778827414292245071347480717756424761896326715516974961090203366454764815359432400758623522309307881378025355428621209840697429840739414108952436932784769919849807781968915499874886948421502294433643810444320031725766649890720758162758963995972268812074839471177400522498636974398148581906528130249972752420157874906973559705762704348173593245524646901821862759681061095187638547837200962494150166941708075752633920956292484633177548874635204106596981866319857714555826904464812153665331066328339429302731380177845676567562729743339847883800976013585321981100356379720946717784875442247339306144733053484621847002132117069967210119832357327159664221322993316923636188952494071478775798314584871963950094051060679594967433708948934849879957448119633428744047682197733736587744250042170177566807272436938515872012000216976554959390994766684170322238835119533756365870058467795455380003449994145644995585910924140838412564117911546337729179154615998280894268755062696741548118146498104408714406469799654746523469771330914292321913991238127864002602723943025290981445883667533372136088314803051075562836749558660323389405132518639647031776647136770823703611856527403147677657305470283982703142153942234868219467029053843069286462991896616060260994082549298252621598711038879074948592538545848422883047063036238145664195462650967323157324929805234330946531122251453100969984712831568075385240106255297017557143638203510876567366211543879268551673397758480041650738166722347677231176811064976064652903766720381123492430829683050949504956754741770101985370330329224606270741767361360104026666616595732651230763740979145136177529274290050954725886674831431200807168239328921136482874627359115230110593301707211740024473277749096888484324569302742356713742573781825031532302496240940957368412202104951101968916503894759462406127110765355803467471735162137281726522183640690966368154636253092096783711469250081536053879725393001913450703920028528076997927639922577246558732585305533858777134140230417869632648449317708179359584301870180477131739259459541159861727543652427109592229453233874031731771380788942882282272132038624047861435903454418889590385075863474668667542508289319672873372956465476675246542617871194947488528123395479628261809853026781918784198499102147116751097427273805020217954319118005748036992095887867871361187807738446721258543872234987814212549385514526163867685541172671455985232891805451793070559801907008161233402889479099855370760632281187699788402129457431208079428303900004458309298810708653407716120837687511844877830913661830668167451036860421339196973642116764000156954113902773775053326398334468229738605255786882208521810781150260656582647457139674693157378866942720734517804150027219607357903223454566747328848679244564696225692967751194397279842869341704009797886134659121896533314689860681539080591761069708617195141621430531202052794853262826305559349993066302955933555930387758886312228033125673901632780739116299283241585524663058332237932718559107438056818215697575075938896663038104108523320889615011515072649583405864493162714921168137335422027887786346887651667117615550039339416433877427387857805096896362721249053463182944344269893921068904222288869557794796201067298959577452756923687694997276318592379499008459356358463551813964817792205476862041090590220290632006237363927322802375540531598743703247057014696271271228667039087461083088962707736469626880703681238343894034526994469151235457100294129788470547498273942933813045747261571013910938600799782477445742346940085357822906305036502177579712013772766859483074622530411440128620696941198910736943532324795210088935340851477012767172765334965332547330310357163982067360201576079134873423735639913495761073291765671563858185267737939058938545688185150604670222286829799493094379532612395480142816406678903780228511067350863414548262998056868923629936001665842144191807036765151196320954049334710155706455970361159644602899557880247360823918354320850450317609644068507156540156944876195653673556834209986984579558500847198970322533804910677972782015774376536586272642987694462222910627137430973258481433684710077374534822228548564968141607752678797626157929379542918840907642764353650466396284578046528899304487233627312030749192155809454699326699840961725277645994000527329108646552493282245841070238373782181317977985393845590792427884207176661186147236437493737173842794280267653760680185150741074446602568453187787845883914660489401273413859818068890886763410777531960082814827483421530669239301446740827649750098148229643989384504436929479858388387903819261421251253435520455353779650911280456523192365330889186561186923336953453534441654168928340135384240702550093472713469008432997556480894737373878577944521849370251127651768162267048292917227631626366541224030452761408467849914673914363486786182124069807271369251721943107893543481452453218554523666361818776412293661430692200477079281604961174652073270392862761785183564975354810696037593823470255751863591718413136328826843484655022437789711768595291101512800223056279008144228805202036122158187441354644540160564192220883036159120532478459744939861378201020847622454966691068441443669971931104095070484992020617372960049696173341241447827004582086103263793579364721696056018936500061220467879614430928928961934144847563954478380044375434070333826075143721898355222015077302925205289974516557910611904295105739611830299158363841537614892871941047576498964613819894307312870870088185104972522614999015520451491436914918819216143324352413965853479909137213430091052391287171269128046958821870145172901054596213933375668551288717118683492471368313471239831066109085238937213509071280131022263973437549940167979484675558317022794857379313043552859878844896988572771901942094099802653528337551846705822112557432493481596854358331372600334429619887731310433691996642170149391135009981076185581167308886221003834668639361952590001143612628997065474604444957931942720367214931629913489210007941431783735290041953891791558622861737057087207859129501714627746412281339289547913156933168509376554068634262903352549884453037340894065373443268529888672734428612442503197017814909143620735367326326140977287554025875037552941155425111526523114484430067414772025331472045883254369530486344725917313050402067744710960118415044715271684293405202607651208169952176136837410553079172831203817826046158251999101732945681545527465410852477400050827754778045872516640750214591101204541434749900198875893916235882085817525381223339335801544686697857314991852883067522200529430547223887817040780066509142314558615322281319523666270134009045945932775950266855013245123927035612499467867960492005942666992181711120496463567809569235468508606127135109231498801021951299528175699953206878682753891383036622129849848865953377874981212383523881013021003650395573670370776492165146241623124731290694819215925980635781461430536139150203183850037807984362357266263704288727736625805549248414227302943029798119978486959857633394562591937647962286673808621941160738548670070456452348557134570658048341319086170183345475654154190495998436724696213903937692303069548393495269719974587354078024042275881288168523873647212976043385486528725298503397260816881678899414983221808517962181874950828890243517314029664238844778913133422740456973522759515896678489525992526015500884176928888436480238466268872287944268185626514278049473828518991283514213030685043855218610975071923010126319326854723012515275116772909616798488823584306225832040298177176190090812366892792206577865371868131317904935557147271096215974498963392714002882969602875038184884194679934656921513202326301188415136949820655556227938154693258094501070801619691428636225241395501744624576438277471025540249202647870486415812708660790772624156440442965339922581729459805205394576473339198238917994050367654984349165971165578835992586500103314195651756248911428095047930357864937548084063781841923901802765582360776597404019353532293780430411936748393018081633561484296184867725917822204309009508961793719068734478268930108989073353197246689751866682770160326637794186305254142049510972748015605665042494635086672715922471476895710234268588264432024065614212492738459232407366113122723509688765410922972053910298030942170122152432668471106127888763256712264683892867942130083327081077821039695199536579438919133747323253648889091480996622580302510894791746775972955896632798050545740836832195912714612548646040427671458508557251949839137099491778718562547022264950817547223428045527835506803161555270158293180226395325934107812606547024669601250122125161482611815110087729499877397068650434366028022291616158846081025757372532747352360259496224033977768875982854559869949447812343198246323766162695983571793742346401574515532748666575562865843608700052242551389281518534421768091972103927453393310940975961301358848935200146158889470076491823315392926978114609736647281723760999941392623096847959838832687109110499267847854295379370976937184364528816641186861931968552359723327933167281781663324226069879642114849874720222470528418537951969997984040740397383955910049364524844717466989658605223577908901273393533934190292529016403547175062874586106608125101380904679020996475136654585483348656874652509010459943159756376350746834109989262320019229875645134723379656521832961552982545666467692687325828144976564220986069384860301451431565270076467497619317585960648165224313864729993774656302266411950219258581353106701790864327894012746831434712379794486460906140273064024329589530735244494871609584576900402005327038479317068684397066073353593365282456059408369079278267638052198054334051707880152969668181474384291430587189807009316845209410397776204062557666316112707509672136763845375466650404173908335700748029536534006739984796650260967401935771377823584243892029047486688772254901345333290212033915472775784599518911223392862976631663275831585651273246351945334613383450904367785525099923994456421513455603945291361383185219023869520726307319573114253572882796020482214027425361748083000304269985240670967229403323734872122160499415358093477524716186254369877652359820362801426701887111250712691010418292694149096375517905565695585348520789623660565543894732103663105629670724989683088528286721561158457998419466574638154777356774162649130152570543163542854872097280705118995061659280519664500839267724169101499178004137228480030450638602536306454883982349061156428875592261453538752394676225498383290035089356841608304851903657780227140817608763492339247727979051346038333221808218183312764008200369436341249751324270973708399979227925002321713759685102103309776599705462817954353670288105496264816826993988937321372862076692653222280905134943085021595446222592891261187334490420966412863794978221421754723246574581363696134776079369650367460173799523365465533574669525705442241052853252679747537148480113430431216898746262644400121450446737430376132937004925055795488446115321571914432383484029846527767903049545429858776986922355898933451559612067672956011839051452382870027971988079982299769828373014133168231203264468814466398207455836644776495448693670623563602848666353336129118132724575301092209676681425086850603129013146941166222955746339224967543490302970092071880266191520187009221788351683064813819180274392426348024945505592485029669949999786145803618035736583433357115592356556579833027731643143131231674083004745782836534359255410486944419424766007939210635788100300093651212435129953433461481823461153705189106173655908062398383374806890016193119492950933556100768675321168518273414320187595657943967274828414510522171255840794647277159157205932116938193276387250915664429481529414081055137945734676977850571687335793396325530175816459385028761734139895233076097697184373517037345505328554440687589469528627657661564864982505008087525304986301365031520744354773973192601986865442090470394794229090909737395876735251831016455947912839446182060971186447419152847690982569233706059271427612844510126991702161643906115897344171450234806209395930119619208857986885112288390100839429363664927696936020226270958973448197824897785047155659878584714129595932840567734546971818319288648618955647725871382386235164098003034165504275695904604481007791310735421386391777688030102697211737357095181609614715287071407693775016446097756184431614665677083726030792423502514550974568819620421473833289633098854894961311576882583689221091451734658875224923641368232116788147517782542770771037608111624459397849396580889301743000595618753860315575799306713125781813916925880482439121980621869359153017331556859191607052947842168431812324457902628743008810948603619276986989377370897297694004339297713997060590698147572487111680930062714750127769530094934860585875889626732617374392270633634914015966798052716292573086025661534210257140516125726527763669457822200005225148631016186079177216589907526855909588622655720554727742848981100146991858211026070126267609778061569783771198130974769920216922203020461417333211759970879657271822598800596963152521116599544441783874927887430371590011691721286196428532003875116512555037597777082564739445415988827038632800411998562324940754595250654440933331288181889089595251652540756635705305498330357711432276229010586895516284468171123990294186296266444677691730569010462691324977294976868310481789600950051890232444922472469523080732520251048650646212134677720358378986849330974860036581046699591492248794556792750066404964874000388995493450346243905576707375865737577906295648498135632849645048330303250862919695565179102668218639230573140928493723514797639163216734928966137103732866812305868010718781870075093474564403078526031206292638017897125768230452143695919421994639934334295172623466801556065628822908671996205194042474644289296705842366003476761056037450436172787955843715790024157946412772145090839770018486028798961654943248070073389421308417355652974513440276822532477782472690106118775321601393902021863408515535714166982203479516158292355577986374960074745076023178366747272073082521792510512230509973689275215751435039240067058849023368678344778773373136349056907247840917369966693765098344459587709148543500707200714107250703893687665575865990098339271365414696508121825647150454015791515503283326080991980089891833115272080994252384733440086649828127452250250821002907831359271627471745298586186828171304505665247932144958055188737071643478141490194372437062038258454419478211946345907407300884237204131989887919234417419089133272350855898043207590814347164020129861576331011637738751040982418114832954448907326584365431514439672756362690944479995018818704716712819398539187877162845573355134216865723146359134712554254371561899348829810648364225391644133361407677645787533996757682081975460097208085188938940464073276755528617726799259316356252878631537129314785156509509771894101864917958724212471406645508236559073311427154488749956261157116597059854259656709467925742546408975564297351842468473491928632186534290444224766364992998334958773493783650722938662507180238184257599538814686634764237112937535612956365355418198524087171506314365292904726819507845474280495510243957558198236168593686064449810997394518631726618677034340727083222847154737322620987767206667956233453376963847900289677447597502968515560571772188284026640986383736968271681880352816352408244215621219287372235677285442026914235421434453039600132697747537137709980872809220655925642139988188965011535941291070881413799233115809117379892248548006672767796758409404925693182228811811253835201476794198349379703760237978033944470462462517044577609733361968917115056083696692254476964204262975141315473633242116480847038550069634848910337677415000231774848845663434740431459883590245402075327074826607470201667815392886476551721347419408520353815425718123201996242936451770283518494616917780439738487346373157911558550567806970702772462515067057931360714793439604360103371929190219279394522217169517867664032660309493762121490897041381169553967226178739786213780503211846669689207276139426528642049331208936745542794083657706704248850115175307092393692401738973009827759124641299794360535949674867137871491694424043532216692429540015360339587796227852188860317702312916159515605445812127566914266810608478582927987460708553674949103736037956957335150619044001312365444976898112969819740202558702513117523369083382375234377606764910492087583980362139932765212739826689081040084176031367167533811479096044016360241910695074991711503572185239078402525559809656932132592020888029409752453212769553151665552451134566321793764328992292392315814732372019451571808070851197436765713069581042076778154511659420874901451130187299698166458876380387793934708740380200628872080913804113554703877632675169396037399227489157895733896261563999452884376641698591943462698151559908701593502886428024385991500385967118464684973495198336332857578148656009998711231120655943345449808821047617794327174897287498275367274967409983497180567523997306936291206890839805555588331511845298388527351446933965909358548036571494038884998419350160971218574967009317432639765029454599788997804486091467966394060320274123022823525198466030097700605165143655558964739741400978546296630219548189924481934425470362001393390200541555013159106170525669376146122532536785419908510690179868006068003815197082197277298447422208910258558151526513581640099100754194271625196951237727626203620618741902898777974244291837287774995580768592340821358888193820569752324813601557931061562818305081649288838223424397911724241820108995882381367480912921197635949080465372844255704156450143034520984703561910400471469265610317386591139715229638140151127735386838395819453885620541717520629096775666569399390271345105935827520850215461678562752106466014806793220849337029760453200736318211358855220069192078703871836989698835527269428764542745837883260521308878205363656361762862306934785453230876595490222567330702255839597434642902602028214297565887369813578726611687604016935971112351647249080231683247219304187169788569732429651486033568075100037472329455546801229643178501428548360146479356821014984939938521983956903110032681139390826791013774040153783756295201071678153544051295954511335696190207699450389274955394637009299797491364002832622292022092810845758164229628885333263630280440947176187566587478399271019269455330598102839734974944541627590054269626056792296053241758357551779624383386214512787563255383085946498416577537669347577055390048871119212521598354977892620937554928432102939729126629154611136616477027917496859852153348395676298280956719443472847606980776502252343091557065818175131497966350915930022038801705646492067530498621667252444645465406136645738982877078822133737969797143750679632723703880771240257551488379063559892030823150549260289893614784313665333448665409851219736428043404429997427039110467611423358438675627327910059485057630413521337829535682117095352434620930270889280592908308272703928230388394784900922783910390450066361518382214642271828307434395170091697663668491581309751701325633039967626445878533654174670702304748333304066340422057164457831032926352276915700584124455341210739385348901777526300869860457096899766812617438984160389604196435480635529553795979080643781162727189885105235787490671024963203901103439724976213887036407689044012534023564532695887623439997714866732531094419594892585058934190652292037790150192989919220379678546642944975836436306760768835595851224125468240324428958755409705009590481131845806316841422051299893278133844374768492505218388435970481753592819059001692292294357466418806979070826849526094577279798393622199014060365496178750965568445794196410597003685381889489320816628723391758822781226638633627169811955160896920969073392650063356132507907202841659548140479347212968972277712753414684126648537970426883368743871020729019383038944124589663840289126213304344553270197201348218211205339530518354885128040426362149780804852318008235553290241601803570212498723431939381428519921401892865288508178296216318105106228656944593186136235689839074002216580522925215965494444055706036652002288408291793594394065284260165135657223609359262651442157407810373519850961174618013830331310523016181864915542381854289483032879840031278512729670936115781142909911470469639694727626943629816987074450292881187788633220766959683006103647843093341839808207408476396757242258202731849779339488869781544454549025092933867973139379659166115176408412797080407833836408473701050037625055700096576885201349677892208558435328970648230264267632754711956427270321481505826448520743360784949332173631411346982351831633809401995655753222920182013297588794142648331487592621072762060584065582920208279695068053317680210374834597742017196485878290768264048700450836722078673189423311463600662734807565694262045039543374849957922503885021988254326569448743800573884110108609261412677451824345168737427158063465368725407520057373688909895690739529125337674538730038262723662989516398503906613585976012873390940196886586824076072967391555724128326748405380450992939104729349228286534374985077397504373581060021285641747813247663096860174703328376546774287541878566955611410599640987865799072753124556176414147194095457132876596188935194676153475319982512355532447245215869470445664692293147786849927061879288975446635958702257493248661196981193103339402081113654832470564844890613711976685298399559075175793052566224489103664334519564841297640163802884284388787906286537093467944230459250528604484875899441147534637605711802718148101667680927580484275126480458439614637013900018481383431527259590108195042813735146723611516078835999009673748534200343385491676399382341422235195242379288666903223525476292971646071338256587470160484336180647168171593331589015111423203387988190078130736502236973749013192608457418398196612577722089926684019787964585122463886908170069983086643115265474508613330498685555212123244283116450963912001187837575845828494366547580833638106279802582235816064361404852156265103967584855880731145008160965930436342811167546351472659902470051602663620904490264471907244418203533398181013926081465993436095893919377951570047009939838729748443816970727262363602215089294467597033237484701709586212928685136098977772006063659105397975939658475542921067718068590432454353215281069019527665100430606716626824717758903058245623418128874131283386336081341657918229076265685868070511187278793706211721728691205809630596680038210963526773397978123540789623356046172395046793317834817929370568144472087195808692501347108038143504040944705832451034164400726627597415504897515460859428330503626078430356670523347771615595827149669854335793820220526438728154504758222559683401127067954788114783859625250676550964450406512308464794929254900020375020280954383448681442839851335385794483456112378096813077837596978614072509697582272464764964587646773787637325494310502561893580607686729573040493277605702988881474238954938703755000084489475967366592024898397592867147555469461663619514176807991729001617397929570320417440997690672381937274578846704556383864293226027241334121748862920408004944649902969983911908287280957430569044455125841103129856986019838239351114062729688850061415539370534821320948916338842289434755470955971311001682377867163803128165476979263787494630786722977464044427555078956743952361725187013200337005560814844725736558747370385593603825492459315995557600601761830818432852741682633630600527567150767076342575735789186287742128754667599499467070442663877451151050846821147551198179742834848302101872496552394603934448724062905358010337827675707190313895267365513349724634810062624304402818064730107799986004330990751926899670383468601079841115351396203834120939806009191453543976922516266532168481517642203990074195762044826210923050365922447932174414744716401457715481350799053653549147623213484513089534622463522772215921919953304856534659827526362416763278142608338253478107190093352427151446059499285787094915024735858024092688536927849979074457913113681051005911682010031674064374183129650580349740838310310673360092673849893680895343509566826680582639842488097601515385303742540616883181677558101004047587627244821396508108360356176976703701654751181277820405036595135005712609323795200272281535886734513334906161560897173362487453604438006391727452167432299905775414067048289703840064352722133660856568735451607301716644446038576344222393281709024945212766598676218662024384660877839989507838908732798016624888220228769029989108823017223029877834253869400759394309370159031383134601461504515030500648536431347026148660065504510031092076345009595700721469286117883215943107593538317440077008271319249676833943584536515303894352077910390882977989669663333563208698550469893675254097791967242838376867343098424606866520224771890026180664726561349522928933042402902384555029087296241522228345014958315944004271042191198319643248404307280041891710203095128618162243061235340854447615855916920220611440465684260878471021827724619489499924111405221058287071746394831348589310393072599581674423663142052761121968416606131169099766837104381425599648924600665298095780195174139658679578858997760069898574547559141912464384984440957845439348866909190757755171462526734752411420096028838301568758953704142078111982229585710359716755504685961811542827245347387444176029659950114844267460438049976583188495398044645379962655092068419763957836370844253901731272071731122203737124441674041806416250106405695475379279545861347557370814749751244710616151911673229202407586011261470223154444348586739173883370739909458699066621974304447841779281033773882173610158763210655214012621357928463121796947301432467775917752988058599946322126369281393389598926173618218697876984910621239312443689537455267692051115043036184887300582045126601814705222465728547374766322602073467801192898004146795076744302171403923667312129063082942163977749065561314545632754461199911075239867923653090027135243401197781663339099519750861898051367261448066976129616926220875777885305436697074647415976424074144881285271419819735436676845734077852083708451317624858602526784442556731912686370030806658044540225069381523237715282001485524666156975623483757818675299733920642848646137182887835734973361375988151759566187003257806455128789544896391974310381859642186252286575101616247947978768961467231566181084060705730538115338169677951124367494888290229331310880650104230683671433123372962264288314730705729419599775350943334254326667246109799696417186362409582510014075701655303421899906887622190754208435942003983914359125465857932051418900455855882210152667047305592035729699708044813413843978465999701993840406346853204579194637001093609806257013841907101744621586001507237191854271408207554249877768164960320532467741390240093352649611336462944292201781758136863045094701734885393757141997825900172082427928053115507936190030025772049639624992834209251066229326601028796363755935116888715438708712292938980727100718326295463232564891312692127986766946068084442447569194297335737437082331770655570084612038039133171159747539809544094283527973407463410539210237813502830464302366472992479777089962152062336967599262710591877474971942705293631522812206219641493383953841740468139412818023136963635467210725160117260502397213457595759019655048146847899913261200882438221320195328804894896231754669506677262221627860471873986577407564846856800909146872909000599970362809277952796940804872403549836764681017401256942166159152061058067267468989158756223579306869142906490434947391781078345588148880573756810932401646064332699559271573994656598925468020967115227334705215598879329354894829754829012528691634503246789419829070277949423517222784689546665169637217093435491511465704163243254961455882725006758178441019433091076839408705206244894154254769053574631589605596102879998317498767450371813425397324106204691416538831850763364716738539891236603457730988365250061688822453047975067212971979590652020695383306886559008026405872054282235818294137214122448361703834587322028664481248344824280774738999895710131279719114869061326358777129337411794575981536150055402363166300023129497767012893377726011804248290669376292223616142733086050570325267397011691247652040794381701751669886476445135617399090913259798712569038749553230363510788271766014990587837618779372621850825324929357525039043058315778123855244280599369333072490139017927363785670369744992039548204575050367386900259828603215025449124402447408844035009597779846219223486159587901629990110009558157865665919190753488342826900135664303525536833794660788934219401065349355866124124060888615621565889676093686313775063243845622493157362871505135013803670039267857029869718227631533833469906719114811049864372186099165475075139232675153664696874192100859643583251944163806785536980076067728774003401417695306050057902894320729883777049055757640307128295629464698918757764180886770062347234937709553583759896232331410223699798817111429279732517857505253562913576401500120132706684812094840273212824413136783884337847838886581598085508876978100024667481032771017996850457085090438259562766509511579980940080314952592327684578190812107324991454717885103320248754782902410854584438591081877631489591007922924553874027629625685957823583578079914223482087780630343192999019283298263255475234415607658553351508071791539297534146226342746875563217155391160322979363830698481928782627789643417117428734365429612594432703984437389188073096676746409929773690677644549081568138206319875306553572020209325347368936096434809231939096375903156217039522427250174902809729529021427114298203358684325530182207230919685806262022863570697468845818264256038055305824792381692022741132828842312261363690367566475903609278548917099519200884027514104908768452735828167853433409746253794052793276787153242177796864098697445040038249139256339731152817284659824149133299221153164493684580331712776258184360379691408272872560633917714523783644126774691620209780056511970976205713257098169235767423530602479055345885022353792909610061561516011217267893328519112960991624497082939923939539045632483313675162292283345628991306480973198900226597518097920429345411500426708500986937393234903630124356717570650745471305466398400265324487145067212689364527787383433747329959499081729034675516523522996661855904602026386640922664996851610789319657839137642143984625659163085949519813508761443465849716974492323017054441101617859521522150775521465650804066178554641213531094534074139846365824185449728124230771091219631750478379216062997355803367348701308415292435113034873000811941241841439872980834073815225661183564027125399511257876738973277670037079732122144113510052855034053897611226340584851605983353442465496105598590598145590313408245621448732531403763986422132468710918567959113622384846763294016876812030818915687935298525323973921546779326064446825268694651036851319786462019227217766943263197392745526168523137474211067749366451723301139650014652843208481034097833123786983391077165740210884221194221329356292891050974696682032822459251291025581434159086737582438067674311229615797040214508383239316303818107271573848367738467732746836785936772394185615556447576632731516228365721334517243196847604240223578918577619735239763718093458443410486688963161603589709454162591314635644906529530422327784284356555825201227242858358261911077783938434383227347500232505106892890141939689522838812171183811516992767079127310775234121235973963798417499981992233222738717304686644903854508278938975603478982154945366492025291160291159123106059235446126273407762727948959066768792556207646370691801939581946039989223246925822982021439135233000123656656085064098479346226869714417060237503654510389044194975506979175574365852434639542437049232216049927532744799102400152901239800248294366308969448610493243490260656299478739462215606308495852431015529088924504329946994460029377922740476045654041975052633055861305724411884584407920214008183246521851457516661210498027388317899373737666279762628048419487621311009274884890588410789967436600132666918687285745568475093984649950152586247241912744205534713768691067560608740068252537222195034604970128924917249990647719614549023407349618545747224216221904884673495278986649549030889423053102076226517915043941869452783075008881919993520968862736360193669668254545167247974201385807639043489424237905644062497805897725998467676293204458183517659844227442024718800069651131004992499174606778669056453762084240730630034842085091896212047830690104785066656045678532616303094382405187052541332283907650567358153464588278896788559844957079418901445351921199796778183408738159922858439025729646522131034891524052440968924417175675169956961414592067900096919889137023783709788485057759279802169109539700768421845471606005050813841269988966581446561688242817026732313975149846602273230731870912076521665975668084070022519970065850058738793112146809673377919813621096219629269755465665491155515019069687780171350710840552643442155339835270835737017776466131951929978099756937957710121133375196574042675265089493413680627343571535689079196695458112576201430140848117140434283889786098900798958668602617176519407260574554087317840123929833827377205510790607239348318270283728185749246018046942668615926112617498902321932668986819466207001499067144087012403894803596219146440480226410200109997628435503082111544756412375886779676603342399527124082569026302920920980411232971434113490161947081049429926451097055967289968619279510197011337408489514385534249534127480923554464029662692482648756959897826298439127926453909009261681140231753261547547922361698748366168138830314834794015267064208851871749472533538892920396336387806106770579124439458862153956803648478812611899927837571732403812764739552103740941209023162651074110088243879885303892690246605345406354125646578036648326154212772012954162893021858825313329690078369269188517718141886638807304856017442687688775781194863139476342007103134353666585469213622734006902642435397175215926923029988651881231203610179192170109038010567459178420374693399127792916577249508083943876147342020906553712584754880938127950143121086425816788463627548310216520669314242464518117278443092405482201450256249675293760006069333958422976865162708068071187476776755678125955000288467827318132170515530693060549380965555725228654539189977451661962250814149703610477569235784509116480423278138642407049914997606493060053389788970097443086738800998347989590499828503217427110280555247367343510190291933970258661545795104699965457257275657672772845253754034001226236765038335191073771805330709694158914350206646587147823574261877295406453841849636870482313296126344929676399513535422252656616028441483814877754083580444178617699838718211734386250182655562219565311580203329981533174995314910983646526522064275761484713854779328646581987684139829790906037007110904853407533620887099969587987693268659927292527476984510034569843661773991111113002083878659349587779378848731262851712655446049722501378379503222134719969224340119650946127991608160251864093308761115049925263249135524202477915687812366141728609564771644408499679936588703511549162391741753461394058899337946263747640790173984454888384984781728359601849177049897769082258278699753879953166401521307846746298794784692057238087770489721452660188258174209725885231317747969396031216871268142355223119463386346822326229721523102084535451268146779375203317588542930263630797906949878523644982120365065517689616206671016206552407103646495694811035574481896670030189164352702008887980717430479393650374118586510856337907924963089263303071530262894192285994798160707119936810890072637007591964293171428409315842566566839446912881037964736864557026169129711001419502594096902123008257481989773204496251057259256883167723978880032080390448301454958505828667545603026150209281617379142301015780510371855533801146042673512089927909852595583542655914384168052641803949465825764108423485443389248966533907336266060686873576886256492864563600508330371946038418497541886153732072968513483357495079241519119172490096322109176070127489357356664758062660071740757182105546003182985619985464054022366121767349972063355226694110034260414379260489492534856804739143937842893936702330683080120370448343956042604129191304218124213797369585287719756404920131170773563912705297781537141538604880194474882195005972830970712181646815181427482686591948528280095170728377069301612802048408475169685280199201081259703365198626625097917134085420092066081929662168651036366764658609589780906644275823088177310489730851152631888976708843910561989597307128438538932392213818904568809324981320924719344685722940875425691368720147777052548217566265833190470936022509869327738343373055999525863150873865909616702455370033877163326568584209968379124415449008525044599386421534148340033853409053124324226493291841604343847348111424301858814176776885536721186758933851645297336875678503778425522908677150185875851188310274838266273891758599884336900678625529879729853896139971089047759940320204743786303610731957389087722234236411229567031929823952206462745891249239149405027520468070580431924639289808662480591507006309577288528704214157131788485313110757661939467506729493044064063136918785676729792677520586115226098864458343297202325049065588030042653633735341424129496193434167151630890424228394934184340540849344691652958109598607755059193313083320289580947893375073486958874250097335286249783619112808203610858207019390280278107370949164860147685359218577521893534792459230228627585667627973916982833361369522953878293182005500562019158748588819041254722205380719507073219839065633587914737401387119906018474113214411424275609354932755813807262114426359392307372829400693441778508720923938269858295482851121692151152617008577783484561430825659723938499081448741518179950737022343752654937997441572249893154725354355574349917615462614792274806190946414265983491526792098095281327311238899359542951750401208451933641759937548496803871401963003040929481115429331111088351441258933472572615705414046947852227824322737655058947596829117024756260017221659037479741624729000492903115751009637294981680687411741489961805903178858618876140947356983399260797232697438481761048834273520511331238907787731919288692278969366802474100402523424257383280804962838074532594148515766715120421461360974321056886423772255409855108108060694160906465323736132843974045147484082528488562458225332742464403084412926314797031562702285184103324889495722314898023454075510911756736809442361601529263993638197919532633161121085008511940715259221731996992005449990392684252612609373342901711973118316477464892550392215921905147738664905661768796361364969259868539018755673190713998612311046033727672254604543921353853123330716413681848272566311190972488566147338622382940798966058950098889179472726844973869355615764468754218751917692756736931015669806246945435584656991643020388609896458951728806935466410950174558566210291364176299163502476861884293722673366769396422560178208604771558543581511859975405346992804929902640454863016000408237492058739269364998565473540461447074733486430574106552652065144003011208543389644884217999115738953970792508323135721886897344333562239243166396518519317550604740391614373405056508085702332337277353570338065138507905650255533831243221106969071428733238689094691825062485654339699342584820035346424420050534036849788543625110980958200207216257922398875204917485266191838064312144378713817643550122164735172360464326343091757921626604143383388783597068066991550873170241757931987783932731982138317065048948309853257185785066098737914497510335414735515685829232605514571108988656493862177793968557296176304358033221839459218458926084423001403323899824961433322254972790530689614635679649337080436708257431064587882363478672940507638275584889179712670010026649320994834592699708190329792850089350982869107253683377246478172592425536439485154563979233536696527979498401597319495817682526703979644973518549584320970983833352294823524401879945785274578847224546762997758458778642833676802448532844370954293918545899483148022213284061338885438937651716187270660841312731726492253658988091378276430594111291522473776173882065192212164120432258147096053262109345460644393188374444117682219209058605658782421804023582906228849964016890393894955342109290908973873316777603158745581734818859066087145476679860259866650474586848324011250198228213796778803034084064016600522465056152669227390829001182512090139473551066899559399484170606599777611938846771752602309524758295090234839486407730657545949851897728753907217654185296762279425373054476338964785244591224098106522540373508221179925370201704603405810695068284303600742780091971874983303553628752104822776478611406136130691218243674937120939975730337342105141155763423395365827117452844517668348113084807419609786438574219298042632502839993271099985599926494919313298523316420452586380323334284709407099414709279306426551409636129482812309623427987501997113764876892873304030061094972482140290725706498245860700717238637389766747345715066260253744719150712976009948749124752597412297926785583426489186860414722829755012242121833503288009035743022214658978893758457430625402356415353763689558241583439540769544165688139871193925690213173246543373246283756936965991553056913792973751241714773607138766919517823219523608750572736939916446905404350732502138022942948599881998824460473666935518471021937915835652710077643582683444366656692181749606828749353409681224651843841643273338419052196002316226819367062388828478284056389402892237098380618510878285392036191126848395082334064620259351220724861035210582130119084751149852911897145685574424631162329842025895585662693112591606348631417885629612857695171477304571424380633971056899228730929660102781839145519575434391938657759356531869109762591984960314668635997851174950368841690663425535711931661738643450491121324758102576900630213721102909867759650627164117497039828737690830901679613973391451552565613684011676549267945115860781153256566705570634381481946899990405981485421756657244208175526944910389390841941172300685257606675397613738926223945150969782217454910555649960919717378812608597758828493433606719691287848485808712856039062692566259845569680326266560676166759059266506429318729897511361543451540595376630543899776863774957138714204687578726699179739981060123736977533663043246992213282013179997919458404610257826745245158711648602946904780636360472275261359162024280667748002886018321956557206566124573832136772805958693019915558745061153323981100905596372569346311971328100818134835574744153042573578350386373057764510308083786083756210964964251182075711933630565676066803543424984726325744521087464256572126738524850443607820194241701352173448647663960380459160093712010138546821822711089431485513727102425564065215014574609999960467104759110438962497979071619777001511571086872143521770354455637254446223912307135216109317957684322130041151566944453120914901534203265462019419744016736971118052288075144341124608464094515859155058280523097435389041305203742771998666017116280966766692915371790094747623015020113429990149713743482665600966202514961392468424508256099892667497692486675274712684872965372181557191181955442230489077944430293728510797679331326825270388125860701347625290840777299647319279702032448902039478988757477338401143847486699770116650447155616736603411458758626892981400955962606208692260290759913039585342923370872394832594006845108852336077976819448574452313000623119850995217954556479831934622003175657464461758561531918125952139335874412501079900708580447314492501204905449194530169747444431449117736559008224200052569111336411956702135780911002989214143001406039671181185185033922022785943060448033884903855571554677226268601382225233109854068985607864200145277292611617303855748544277243701587891000859457537450461808009562068755730184664754416708981053496591488305853672831115484732535278548552947244121962340567840722806140624105096673071150307938328904191829300279476876778049129661812926010735690618692213485847792245519838560376108782731959427182049878017510148110478502385600520202646186870093681829254453782774744671422972494642724826590828324337362912453864375735056249983284834826105030283527957465502736521759533598792374037428566478093464144102634472319187555310362970192847618516034520343899597894843982433813704791917601522109504735535833158411439913941809165478510469993071503217211187974658172635086648527756043594710238546741589117547610935161082057397138208297729679362534870052584615970461449850713131286695873233356349378931186348724643541856873374301267364924659791753935488548746216667665115203306220349821182019626265477648116682006518361635975550811418556057728579239903249395867276327049335516216866533962106454920877455105740697951521837311909023026939423978324825366779596580652918753986828444515877622136286508311381937264970891740853559858014938242896032986659015169857558794518982621675882787434090394113480604230689566311888076122574846659033256029789065193553618259677746877247090759319953156711954914662344418965638752083951273931888737598143827769654133453733218985879203473788567992125358324558659894129164036433140713705976879598674913369453984205855752139712035245635756323753960926755730434772003477071568137206286251705006636044173572318083782573916410095796465384234379506891944732064308602985784553328562731219803241166980697811102738263594001179073098668335837565245709755340099488335096245410008762575616599257087780288646870245474137159774872361320951829799455264342669899011774917318212058590354727312157327269426605437361646771728462337324365129028053805555541991255700228860860921287822715228164856544245972713548744145105739849776782354561742803884758326438301510436220031032449284054068441577570721095227614307452243644733152627634932449155600787079939570187129851188821320435088915960647052070968116981305726627873406664440587359034626564266159459745286188447642357620302405000494253046713117806618721782030195355790559711164088949628079681144260990196315620369270298334884104135794683153484555901996459299938529593174140014377903370502428748279648856782531809601390118543370460699956901051742851078362532368106175858551916018856363581842229155022510500049982449929605619518408241738062849510936803303894614927509395902983734343498967028893653355510849114221731103793460038288880439472163258939364215255942012047757996811428692212375633227066352571401679750531792721445122417761444410545108726284307826430420417268015970046410176623372199236979531567339784521349141690745054991651886591215948477726307694781244980900655155002478965806385236840284722014576260493907952863126765014209405639570745759852498288338892909166343542367931253229722253412588685637513849866236826910329061122872843626722914420822230348278429469930093070495663122143068386182569914920268815148867886272992404039265090361451537608460296024836882869233210756130605703776847499587608655360838967446046518502280153354297939937516819670555799127226172331848879037734980527380360878115300219463410989487251441657392366905610948584292324921954263483138632876530657264826164451042257473088177109510948827830498644219838056941856288184631148082652558830985668343663807558212300592597445652383334111264527127025933161972459274742649192073059072368293461852596332051807646191125785461733703284997079038418628580275436542183095319816358689321711240262829855118465780337662006440954364288698606777254683896241563212397167740962178555341532132273903758963281653429388324130070263489009122695544752804317467815263932114413670816812483629901307142097118264259813064687465491602164572102591358530131198806293604769046744441168372613456162312535632447835559930703855916471199540179202581641320369568128423342885069898878313648804675656248567828394122764909243348321434455947643184018605274952049991687840218280462714868246585372564989575311400559315241606365055707816241837713052543139722499735062497043114556385505352765090033342081325801590634579631331912602452930439062340034276425071550079999740094083942717256880977094605052941645540128353939151060295736618492480316049884992296888460125624281010228624730012829637788664087309172128309058534679827590687864487541448411122743446008252812157715346696924328397863647970654540813443481309391230491256468880183264031168655613142636638555865173836818030693504903296625515550983570788395950163444550742004119401548586299644472230434540362001320299340915906794973251286696190518284357995891811145102887498843844316143089895507086340566704062216134259564552546265555102612480744711527874613843429380867339423517269420531285596680271047223934581680398495517338955007445742374199055924318011485457394825072674813538485995830128057112080646251652911543401344054734391411959664439097853104884730807083027007012490906503270819018954486933061848844277377495335200023556202615696059316273508392104402156891416326434340817809959946623539627586786481075849493829386114375705955973157724753915258116281846272934622561134115137352124280889269016039850108171681651192117122656914179619953699555873563380672231691501895870058282822581180238542551533805214474726508022605328116422778995675316202768365128067544172298791255165347422806513797346033225724674127373765141095474125429918864592838377725640124024966226936144704016616293629809804080488276748074256304050117049087329678699117978317552860840429081228696676215137139795616180633901646164055074480534146038155636694821678111639249931402157860260047455037429417835225301333332219242022408948257648843828000156434036500022073344416369178419002363268684793201945279647457420413762395962941358075868395942526362237593220575823591081061603856772498296730580964627331684212178465760332629415379933301125087467063116566221768432551103074805783905888405549501515292136072239575636454611694538779472632507055517878530494892529154147539007790527633866609580026167602378428290063095566346680920185576884795344777198957077548947137412257022963510624183719000451179227454679166061757108109297666658956981281738808330699162359523941770520085434205079475007774399977854192046324931498029072901087801755550618231305383442406851404390497329079197088735263535165402593679095870333709193910368772009875034890141121720894604222178471391627728764031965263950671597625536072760582698757407235595542078763065471096530651373361976672142193202878426189616674174455513079990313550098942512709945933353688380642868876049996530642913692722285565963122185580829810855645321024890416264538950894501940787280673358004777654602085535545174720545738000090870169831297023635427675285783332290090331542600594952711983639002883114003263023964078226303429068834163924940195585888959008017614496368143972696117609424883999003227768061258961489466441539347641613600749671161353003928584140766021551771180742442497985029914045333820880586022270624008999681067047600611593784955631396514267393009916396996515679034605028362848586243830005574942873325808285928370945373536328216442386748465578651430405657310577491712877821190171049322744487922002999457192540390534731809647028254890614585795418987329248059905329887610285410136207978965839985619803319343421243277188376148873535663699089583694153591168069805124026668267077985153952342337422471490751467824669018951815039543574779454550826009464200216017053127125272104179421013794820578075924125041658484714097779636191849605476412721480432065695184204673417638954642631609493173022315717733374997396486111945290878896367422038336511579144344086346500416014961904314531866324568959321099440393403356550901487871326574794773128994073114135096116649906742779272464909307033529204377888316512220186379511312532231926666944729837407123021218572311251982404391491326134420147914423631312023789883679049847454372980446664090115071150267056385085425537300306082543990591481746079836747155024969317893903849040274408850513215702524477924112870038294828512625274694252584346128354200167422496103259425592532757235895062231150571075202953336216332527844751513734118808856175910584998442102661105075763966012087245985134069031776342359573518945080148591107513129096982402288795879116490279222876163219379415401824575738732296158136382016346388990351466548207117711195551360557449091093295802530975539644544086863254089146089181415378255025448596208181417469673863651389962242853494261580906893219814135995981154530322868537367671089074574043500226060310146828520522402029563079446212671616568110587788134183128528824962883675902326719058178079544411679890889728672061774230981254583930262752238366606455231660006783457526095368914127791109372886686367434796123986658940388612116480233223304226008707429890473390134014313139545206625018582818966030485420163172547687254451941446352247326900758784239706772833165145090507993285017017585550194504684307798318790805189087094652623781242354001630091071861611305369463691430117260749337939722322511455571396545257845229346279997791955410166029382972806081228269193938765217533754978245694631969662605399914316094758256461805141041809998348287756672690246244630799785388911439978177998379481056471125248204495113944633067982458404394556286786143691871488958981999458625341330126693220527096287274323243316369719856636981449292638920627206262539135076520858465505921194650222750037284464047776979642082698657176535566139087414087975403738775501494781456663623391183517064122000936454484081584349269022707971423034769984076859167257897176565720516878128680888639122960438222607828408253688938932373410017068894609738491886852496074160563298066542123185938814181032928937387858118946291329252902632604601288201512553517201239246952039434626537597620853591339368649391480342156723835631841501360952808347605666522166565550384139442663992844547756545911956991656105281028488788664827663253081481094958402131008494908391524919526675992271086740228552808923991840754176854795984900128541957233411625815308951596732965739232381473368895087125639078285802157164620208759672633364255368876570535188643394693224085933670382810930579063049438966045086858034405257067486339073422216489043975677696864215540224732194745439893417890791224798394450004274203521311513327915236651172646299578944200413156257253560663234094320940031401218430741588786544522902501875867762317981277225278205346462974860713521232485764780677125403683016662138393107335250376227805349030315216586251766048057921987410372661482967168141740390746765281019947567839054940367996550657138652091425505632557418223962206719930897931172303794660525760009326933359138475076607640040092302824539706786772959899624468294203400776104876180842576123435787631042031609652180471662098277959104003004705789231169187903391928434989786703679132977979805306456310077317579454220574260197919594221796115712815826728379942927688356511610330981896259720998138533934175922692258991349011866420627572639966905780491919999299120787714749513308178851902961441141732540843994241057763447555099898374634169518630910560708738076451688465906373429262654310789578965886191875622157554437810538018815593268685421333075317295659649056441455290737590890032441299370080004007912897998772468929649516883888341403674223370899887389024199461717641830189875306330095090867952954954378910815097518444695351133206908153105460866304265037668583468391546507452411091941537824418768724164188210819359392787922771426846592632676660196882078879495673339380544041308540819209261029282413498103024688053830631592592719365211352601341392281817120664138989963417278494188428746230489425150211818827654382169444606031543307800271944299256132700001807906910441237314363543452653391456348009985336771059279163739002474986782736520230097653287685388282347205819659405807103324596595159353754611091507671222602983460194007177196524626235733993769475162623137747394897975155186769816795683867492131973428340026973028095712493963421477124639226190663002666072700312352386112001381443588106853690140866738130365361992101656746136602098648584621826701603468706026893507155519960344175195659778555697467055408677012805630646140074987095575634414330925506138493826902214213966203215922405436392195000493367824598810954985007821897944353278524062665429765284884418339253179853649698238359810981844191847750669525203501171987231615578457080611110624055977090475275082975198340417673285999618872223691819911199549611332622798027891862482077827253799708731052714943837262571707463560579645659682689755061951532096447649688853979141638766664147188927388237204462122836964994274824169655767010335887431468384791894484000746774475128708203264493437411676530802535840459356910636789383461850272928820006962832597976088738369041469937500984597652976385161755063690453267881957912672902264343535709917473426672310749617822862441168322645468730849050946199648920782028985073026829503472268830551830150516712191404447432053912726910783377513794158805432361562955346863924619395448743181996608756229186910568784921523606249121770757349772987611782120614918261948469416991160381236163564240158551137252843226329811369736803244518770854390828839889973369213930568712831897022656181408522877132000392496111628778657128631945536172585404587374567208686836533818531348222416303178439121272261976054657189676422185145859463890223522851704244344915565927730710649572516251049556510611133736452523911466304799694553837622195343119533870449036618566538274850288608149112505846161258019891960456749701920464492100770995492901696728247779478541993263507719069953006800527349100142909721287385487653422601401328522457149018701645875797591184919719901134476871273482468960510275369519494715639877708525311562675244244009799816005439745525786588406307334655212113962952412105792090806691986868078886196958651972862631745072827799366675339845693168417608019309170881591857611739149257244284445559652522977122647848302224862428737030085344473767701683567872076452727894124486941452810230628949221282718938133381755885045035072982548530626786487349332907011243593251133458400896913877188761408771981837623959662514325395149595370563111737096064984343875353425549438488132836826331602828319095775416448884017116874444478005236498917930040699341494861236573258979506170921154908312277262126797527569594117433118485582937965655893735481745367053014429124905898173911990423679970413568682199159139068316995950092178730949760152947150255300472147293737402916469277992942663768324074138297072146179766119210198196048784638789392065994283735884814195077701759594789384214599118517137306961452298927003622251619537531343201261911491424274054243576437894888055423630141248533800565435807704857416576594868250659573646496550692436428101652656116460118756392548022340170375222423149062134374921546483254415651540957503474925272749304631013342730692186601047637094357773636335920922841839641733364590801167078725814708151996343658299467938671833130955736094647203222772761974008236167411892792913094652290656000675313251028642978383227934032589876415303718149518201450703511724510196606042544393358676916659809599301043371315361692029584721914398739564915340806475994722388753884822073872924400907194089390727584046225903243832391407303805025650391533603059926888187179236696544613449239265619937192641341996625142498286109110478299802094739093783380324230879861605542536717871520466215690966747479345516395204720483854702581044796034411905299227273091455178283329616294777203871030346203025768173048696031608342404210745843968991537476151988172445693317241736805939850517957623308415495656804250645941863996065515425150477577199765184827172633671771152973918017068597416188011946402717574461816344053902295217150034028972750504506927749996119143844209359755776351193091150500470601274812421900008439204020868521966631471745284527063649370150871976975914563448280620486813767962150582905839735635294585426331987775792180493148026563329607945049855819282512813572491853749420070994277264383245109961220326238451691439920723337177273225023290389750644321370049313818246273061887480976547103895323693946395722365776174695083348862924977380528460191672333644044514996467327644496813857640323719620508697262346326023554052607430967947698676878130703657228776139417639570469203877336565690399893931819443355715664907378105513104846285859825638625224391489921748366087935229867374772653902454675399010214604089743605367507333172404961315701848062142974694938956159776146445996357656651391299654893206924127647171489917743255730167312006918465712031910527824449614211036456560019532612458345570109931119534908627839265160460618920093816393845897546160901985953151021715148626229705453375541810193228181505056064016802733500962909942356923596495428018792033547370611885497990531288398589436122633048903580939129700975172399575579731240610546435562435456589656076085528590179629592607397485151138852050575641410359104013331017361535915574713233820208821751239669822113773641287652320942105604325354234378551848500655290452449703319551625577259471181124033956370021799377661046099808587014730805203179943887284164442299909697909249874210441621498366974247391246803946414692763699535875429043876473420569328057245091318853326917218807739102195242806947786494713638478828109690478396703587267851872778529551562120550683685231578654596679435679904363178962934247733183178427898816582948461328610695182037111366970826923037036804247305198679534855989591953848560683837595954129099308696068550920269240280205776282739715451787878359012201474994740714945454404853666957038786024057067995571716988773707084280157975624971503856292208870102501440590798390390067876429158807531186639358075939729294895487768891435740912912924271757322283337001155097765621410809750000606786843776452917465619948917508622852761901357766937401449318379454374156153355402455863440558591037715471333243733129954139610936849849127279462318436541575264958286817112177304418263512500655082033644761985270477817605931132291268405289557068905053359480517712891622198670424927510223155573846727214545368999482543646027358727559556409775446832347907800457902918263415752756866795516511211366531158896695812180255423625637733915795272546280069455039935955248094430510341830060261214480051389703449217498376432624351471713050873791824248745069969670104935838276324790402232616064527540344129067209363246238971518873067143005223392205377076153312884867957426610191512829536485040738194323917919960485726728224603125247838916887977865746155502015549566636641650475392318494882822671046282570448030146258928863992273037877111049538854701328925004296573244892118731966108761082344766730159045729776004298076194681721636423939748072235090885776261023687508821879740379808246034559482459503951409592300528025224865194464697089561449676618795801993514899048223529790983932742981139604993710898085098313565423939611429279530010923880934044411312088450166917671719044319397539780263389752593960488339520277084426171117603531407896675688043729296542486399337630255845780396118944512278978951420246772779214386735240794201130263439103609653625938179474850969895545002952427313210680440196511188225066884530042580980328542028566232551780952373971265567211298329608480538773813455759545252933526767759900107648351165052849584388041407484144233359505656570402007599757542879920467487129595909529874755930774596952857827042315264441817527946288875268727067319386997397210664558779362347150920735095300271987043848126986521588749663687233902821844468238290417293718032157207009194956469928474099191325100079201163801947514815497491377054522512428620005446742492212065400054200479756444459857176510624773082852564473452949647348912642088965958066698953579640929331562695582342960604339650724360719795052800476872334758734849759597507512005350915445223959990603787579672645997589566166473669459655026340897842469983903302714014930678300060709604638744423762207272277160861333259311461730026037619340744692975577927604321943226878404326042850663510754302810146029124629877676465856061238237783240621637988719624788487217648544551216152644821502497333039562318089635188905806474050972618131004234898769287668461934981850166305481323855425018709168281454307274825199293836068581111318482922846392564035385306669284110139735176323433986225790612976546590914843448224481075400928198316480460216099626941228703965882216795665890518271739487204988196110278045702035897001234132217834289074154389655811432263439813177883355649836898153746260978212869116998230515572234052042093766049785415729189031172008538074992905338924840067279677352886748566745104355922544705834806385887498343848456653093224768499135944204935152466305630857831597351094733885270757876017814599756530991829084166512803302739743813543289058607326218308787870509390264397354943999829743237180880284082688961607309439722503624579566061146374619040021077596285233463217576737785458573199691132784548890221774078181607580218243111516496962003077568728973373183389381968867943003697253042027599218541033793027190271415966998937664775468147223856166905481643704852835184117431398453157591741112443788396006758010191586330482198557215753543103272347495146973142445261100035960759295946093919851659125805428778026887216635278174075106155645033938811466179094939049912076849657104194627641477697540948402121913492857897891023097035652655096717961053821585613268900765718732529212475081642459153485832888840930237383937842852645567719523375031443170901333677616822620227970271138676684964173572803891359954245861412954566129973853450227970459701027276021255908149873471666234071291719502041978673790971474950425910438262119814378845063577570037478919899175613651997996497895191472533713753662886348716033627871756567493284931590017688467671506420965936503771222824076547226256222367208595622110811097449427014482730758718405097547392744149697218837284074283740029605659611626729549005307896508834661322582127556331930156236726570375198817412891862466949486165126497293896232493998603785892708585152787102813198756381952471304910342003377090314386770190390349720041141080385786557861055775020150117068442690626194300846740116933496005020352615941730159213816306707310028045182102755945400299545723474112206933888035957241422493887423090981887966101235151376286788200168591859503853811554248768993932924615641223134335729198214862096173390761568532073348593700889255142543556571646320266382722131240405941926366557316557425810765493487348195700381499862593109844555088453845579080170180065130059089834104342694990841592497975029594859934323823862443983802180803407342060658146273098295983440227019100627615012647539344426735475276872001437477307553383103685113035962612574822632353871317709491465341018384013657361316134689171516975081994292165746123493430855653398101985028736594870616719890778400211561440632702566038687575216799234062764409850640676636579699207295250169354608495599702626706157319666553679197836432121990546274254336163972291485541354405577627711438327546398293831325769002502403203089328097772398701148265757131552784509118726860452437802018566560232647342329595504490968654161415241267636255757185714555843255218417331729727504145034373718144876295529685218608472414645168784930130020241470970209653632290511900259695905364539849204108777638197392388865016949354571129854024503946042127166639683991056195264681147971425781365893221798788135998096214757674996750049656483226386654985710825624698890533555814383293823054532315476081404962225736875006973484018801470051691799816158133373604656393089893713911942078953046309243789658550683054439506887052596990384496940852660851279943803686824674123585767611952008636414676235605060791499163464177727005830616053837918259998884413116819889215585387986092197651989255380680502012842010031626958055294800216825735013880721471157428398283682199690586507250207702944594740809906762093792051890477522232447235280466661893285717087702741812913641485975736485732668934974464305818105831817160109876733517851654587223032727028825043880495821477941442552977967629188162233076522080625605708968080873070867421194562806451973710094753406517799488196904079505854792198720212508108690153411876675679206915870368762681646704700257450301041445648066150229443395565515238652372313754102318127562601604280772106326813437424122308240568801978105654331051690510784500403035999331882844273662726548011756227006196995152002310696690710743465730808218998700108759949044016329154171271526157975054461700996773365000297482740056815361664220885946743882106376105750029340588127811388400708202631628881417826335474306008041168163738551589451451576786358071992721432789584919094900430201120289599971828910272882636747871582383642542851809679992234296222058671897364030290944754769287686946202199926430314949275465425817637724171187642419406980442225634162532020027627860093383413274176085403993592950387532483771156390486553001402182253248083126040789423738673708186982777700525902455692559617808750953092586582752480635644927396251569590227548736318886651242911990394801709175631063506453776357431011503712526357909630239823761221691536049757136857276850223616155594411694047203438959261999073773822455844873470421274930959971299208212065992840612607014686663644899576846791066474861023864244588027460039963361893052663620303419924385143913432205671476829707527986443838794478459888022454693813193406005437295334947612397013629996919362527882751375393889179446117461280804466342005786167355288366168783325779067726171357373991984516051123975388991448547017272502136973033460972152255849225935162858729350705610854387809751549242312317533422983850413794904531811627654291611521389798297428221022569003956159516052481252946980934938645731598311968730571357349046152464251501578261427095723540764690122943283299693378443974403264725443199176940336363929207990548570311379260951487194479056079077983162865248593580132732932725700027442465655682398160831395285091324716268704789600353504685618434428363618190815752327438200892084216779999666347344680890323460537955387005789146181080551965865899667210834303923317888591564011906601312457433263268322895889900048807125244040120365413185766155547280228775126837085153502296908616818633886171940599548147712176607788553209390763208685885774073179624564083753882172652765929859469801285202572550364660289208255113068016503167108754445050689027377625959139966113090695752422218108491670549109179721925750690573811514410999653227849590461800915490969653965864983989078501928466474749054375476475017436362540227550526327046022235990094888375257329330674174819830906102613406659300521961369091314289326120309959725923426257659148917768328515266234402108198686702716434990625664983798613806412293751500665635014670336792359149576426971415158665684021689627836823916101346239190877355114666570678822035905490197103084697384492546002620005835418133363667083733516790075211741548616786027945790389702453387225992994128616510502568432313512675060130158474462021726563177877821486839680120976388970006514630162975993249768186582611109164051890584424254695597939064595886704253329154833601631367214983545391776564511617852260816483039272420810839657313889486456133037186501692863107201090933338684116102999898016790702923351592939388418896798523512832369395355181666982556951712665705546007079036015242553555898003711983423506339584055811258364641285119470709788593022708550816621035678273267147178255171268222615585271122592233338269214954732864264075200798379388709413446416860330259612447264488376471828804123364679189078765355959373865855151643987692780920314408815415718475543358813465565040358794182026937873735585522148666813739364313632329367877020491605392713487504475385551593785888243916952760318061299297495898866233580291987045056239907349234057912160280034077516582385625906048881031245822507455073670274185226032899287634647790968199010368382318661442970812237127106352696549981749749512308489133931006373288442791692727596943040953903800860532525852263408327218218406415379271050746919868367102379950706362674638145426013631102936182636250318863357477660840094524701017062309633079214975196210347189018591623749945060404452707051456627211923619242545776106652205538013247114583491126060541004534267388644547373142378388101498560543294210519369145817300417592784812418598481129870632376514477966510706931787086611224421142730339358909476967290042050246911392727468621910441236658308995148613224527230144616825015978309088886960576695738793151614998339947370551838930060176496073722847887898394291956260682136884050065677647171905855792940686160625009221404426160791190421230183959601031162314874337923459769523531324037866546727366657408559346535106060895689381220442321686091779757541038981730399036913314310570898855896311059876925238925144262690329300025108478882890312887336874131551970051430012950439452499189076857680376258406438072758843158926682263577893358476747783008943936058302661527805760077557905977573818788485719124881299571413833812159075455790852833828695879597151457206224394174649795076067551710918783638721655917564774304018909715288055065702834524042313939076728133238878781185834350623512215875096881821220691020255746882516194816148697784514753930106085698144222571446878853011240821780431858304536460219073586059492758716530526880874270180173785032034492361761724964024138042724050961103545215315453511967955488064003130451574379156746862712672472617990270050413278405267749786417246980824244820868402713917485709884915817076114825398844523808241657688818127035918431422927664563608474150024078549721140627805296861376485129944847594815636681888245177741988186326177696289016308678924488635948520979163663363959795431625831331128788822453324252581700016103230097932834053001313726834863861934093926169310908362318478106876544931030681893352428121518689630637733514993891853938772564818659212921241525889108037042148538071409553122013250843650386875795743944568242731579726705374104775436071773042600594281450609721624929771098208813445875024400315626561233558808785277652789520199522595930084052386987645512522148799164458455697606031314801857058512095921511529288287717241673164634891629308348088724738111413067603601446335059750561681039799143797776134094631552287565793728582032476822683716686035942966496540030412868890197777909701581663770626125753487011853000848346419855677505640711318465442097793167277883821604845060367929774152624587270949227753205450646862317001693708448254190765618276849139338702538594863259792961751611382689541269879284618449341811335560615755435752381276559266705918479871784688700222987058405655493607407657715600263820283624173727524055127262385490624863458026174472045070765953404195215443980541067198637864515432013337629941674348672602240006239604004056290507815616715775283892694580919896760179123786333550089324162226046752392218467302073184457890438507298634343287274447794193444362731747889467958455178858731417078176416755401596477933150616768161254400577370470115887194760443656916322868870258471922894489197010002048474326159739994107062461808496962826955368892393293660092753944506061276272222876917598217307498143936789538991992880195867605849180121344637671962294392467751607638059989081672369174705748845801560296840966301108993509867666021528608600237513657788775105787379837848038627154739692549161500941961390106723555129288730472798565848150822700165258235147231104871064802317145726594985224498522480265452878030019703604142141696141375874092254692518418781311404899441755235545908244953228021030656222508258994240184929442948440924822835231280200550623489544763327413297376470505478230101062724126627288995989911628418745283096444311716602819306570532035541854235007613391072253872668858180575245204978230282768650089698225653928114427915925827970946323765036179838385059605104128069306546218494312834292005581827091839324531470792694053627137784669286817144054972443265660492909575340046988160865143900164248360709417005222616845438109171370476513725057740892156980603064269351474469018365973505858762787572749543466154399796882593297968808762949977946571568568043632537467791134166981198821981194348262448421258761043285955714420449390118974144345863393003684769612433177894955908628881256764322974766087842932264345675955572681792711076811153065158061512050361546265047853624330765035999179305597878018597175696204047170898142910418455965720559214773077167967668571233215260753091052567874683155016373733569640018386435169765963122231955442114206179322154585358470461081410376153665960485786006522612653546327870301712765013910890904876034973241613504504120913686821128846618160439245300924282394210281139167436953888625760233137971029311760199357492898670950523447788359560559664591995027611137377149370527694874398573377775851957316921403334027343365501279339494198420679710036591348632620343079038866362068947195619041939905878267120697780801726373273247033706511671210318086804577743033905632273208602143349743875580504416255323811898128423024963820388096806710998338887402333417030497777019653584143858671642910161700958053268796096613219699412611302760317147482535528316584828180289839230542902197284057116722536425666889011429981652759825790577862362812340524700144452117342854990630505029320906606685655031379358921779143299518025220694645043251385434162775909013479707827795963760612077075222837093511070082844350247251112945880387499411123508949410401433101930086814679184600142489102736700642531856621538987424445956941709894631407955591952535495088051798353822725785373895260962922637528384820172981566190476782138753167080658545473466307449334526329775925192148781146314258695903751196809796751684814523499103505844506220612431629038859963777215292436890119350248519424450488103173900548958028938820629450993651052371421232848708516138921329463530904242613403272576407708543686531590334935467558065747496026704041265825578824071356512130619856131655025549055180799907628542062147891714168714431115273988822155217270301683587449164740037947082168312809240819618600599457479787724026056430039727184803566673542961704413743251493271041457738159522072503340222275901740699573442491769404311877546512124117368961091235197717655151567096859755928014765248933945943101339726298229623363660376942965646250042414224416275525252857449638966296109574566196823236586243559383652631463502798038077843471907036842220788275287480526716923197342756731145308725995718018868456430755589160840498301907796093093323642109671540113869434578185752743305726371430150003353913389221911855879512303311879668654522812462046158989572857868126415478374509301832721236288986685662632691491892469434904496254225618757629358076934179605857266750888349339856242251517654321241073889632798630244416584156242179466853545721319312986653466737277986566820413424955567706767207139807206632480254413264951964958005395708697072059994668659187199093622505176358747896247303580892696464089956400984126142160029797264248573089017355757659593496641460046256672656373542484026294067267759219553781333097212305815256004207110905889399582559560720827919917503920376519843249481337285255606083809062467357250329170173739897502980798591689316892846131560196592850919409589894897637172961155313837504427955532861535458572690252382033154693191762558667102008947053060411313770309447965406228725331462129586489615833648517374323055500147607937491898527805561410473181819696327866184845645321860975331163914562098422897090383678731556468800499171988989955031859017450512959005546482535071938822768417743149909097634369743815531720867196344304360872875866738272836756780692828376992662216243979729851924402467402040763504966678778077579744577433610841191185541495760562292271239063179391578575720061925370283920907965805082996101950130926216222860334173283252812331354491678420976389655523604180661297107312516246338226906739870783806763784541596592486734615080230191480875824247016953101504527563176478011643131547401700018432446447620396173304067339180466278853823782079308876041973203266583507863017202000683139574847137697354885910375086671126752571416395853971409536589345136717942133625695951380851004760492857533771703083825368720058460869933770695081502609682972143051652658455165331691870851981557414443472063214751071606174561842715121856058358802809568929974824599179761438949904155911010246093442438536189507918833685345108186896729638556314670669643469197382396064211285144283506145650232251465755415192653504681296076252482648170952421242981069414376576650442431544644801549693005196995126563178739311418957868948413302916904230507345072245749107489047940629968578299371838732231168784764980787909120322433425012875848588582012573161207687514129156312062676704988471595729623770777969335396446062186560880865972235860766400512372615381530091120508006450311744292951996185657828949970652000010610047149017893145738240811263398330804171726029098395024941381636866651402511433162432341090681534387541141112038398165055727051956456500008274335781682351582426031616875515130742895595278296729650438308859113024595168487865892116728476795796732615618395196818276271869387058714211757501264341599367139259614538061226619099895578826513131710584773942599160873828921724527438277316522150924633228734415708358093472601324981739592361188430156791259720794758873911817450334211545716121016021940031713001081193867664628775016319003502387451102994685040611218899938121894343445719224417838959239230489873404869022478029955174413602103374590647960955730339284260228851354933359549278286097882902428609535265956975647244191910479835272573255054085908388577236333719069675448248748213685998685285703814584871987311127046113808084696030874982580699762821032265109775321334429553662102853868632616002100913748736647072514295250165238249929735889747500488275344868802482129814573606405808833248879776385337870376154271019660067192814805928087205942454541895590044381716797419692606089414102156589079120859302427675240653474587946994439819584730639583710044781859019350190063580097130027257761696167836238043050093980082889855917674098005735240050680966212603930464237524313934492435499281128182960760238890959954596508225405820650188703422004088668612485716011805887723033621865129740470164244977800634107479823209678785841222521440004997007891096509901115846207823010249245866661687688881404576813680263441080634997539379497639029208075175574753759484057274463429910082978482419652846782358814374563906094728871110686479980083116329334807690102386893284694626190176302527454805499243715499996575873676743800355104013152970482326940928051511015561691531288817922002727009574604338657931507642883567326555317132114392003921866768971824246156100187310172345200240309975272269813994246330388258218832027808947356363708654989678697243427391075433907557301233951760797263442559171097808663658521352275472704798445227250411938233363391058686244675249601715124867009606677457221993646935366279175846986032433029759535797963819421394865702293404132599369816373397366000298255129529896710302598324021657908065276437880674835070725190403412460716300117332189994932946787447690865634137086159914809976835327761926148631405022191989563355324649867997668421489433911684655965793084091838166283499130214421148528131995801476380832485106282625360856647484312914345456595307504931596537515989523710884695945575924726246942268365542686085761380785686577204110320371088931163070943622108477033037722716739215497411769424799714983255814320764816494032929903276279084192478814050365634580003411272084480640628491172647341042584732512565167614856525600589636740138606663755440788881643509135206553713512463732627695717516687824925294141766912156289949753905312692579464037258034514135855430233615292379715631692121572304703267021382244187293811017456377701231872540321916894389368232244306892329404222608894848635301988688643029384660152290105763953534946430396979011836745630850067992209395388122460803102917777809077544411811623102545892017007222215918463636718686040221422560495426423157635236329741984783427054903127720082453871134880622391177149591799602611827959562215565593595254713775031746625443350342605556970871549895974214790042696300286766634670066075132155154701199880862369388886205854107262377165424208893953620112534397201368413738388395062743422537907461790474618231934202329624216611660261671830670679454622249286790793136695596284979113220738480061663564920271967557247210000929826977597402434706917255589100736895500420405739896789761620198943889958429575370518272784565177702850827797479775243186702992476299385649589342343596840224704470950906003511091650932030541129621491593107216376397441008087146977469045915424931756649955218034849902620824561985593209700010791675163468304408226722550640860514690877249273665225198123472559103867552247989205313443774380455789418255959554163472417280724164780901323813093607420429211974375988674509205098539242398432223392745768624584890440067031563137284628557302474403659754814249621997669505448308647604223708718632513351247339144379006669206656565672519500729334807176949064008242534705174512835065689094705939027180442859254693032255824076312211952109916873500302516172245704025988549986135494049467808677379127790486952662804577323733606104498590497732803673290257405255462544825792020750368995840310187701125451488110677589915913486365340891395244388217388884216581127903023764414446957580272197672244261129991740055257883253450143165898241430933959296669045656289356035573673570118806782804183821826289360982625291195240854207348376171509429696583222770506267415061976424519297063475500547120121808130920235978538782263581214684873492300491596045226058349429197376884880686182502579830384789433830084771062264866767894903862566289999959750870094203126837315104084099417692991163776220160464527719250328126041877691391396077033622326287567158535488113969035762311845426831113839687545617177310124265615071068802982326720460715133041161773194787834580879761040913349557387215311090962044755032004655677852834156408825239524710712867203064576091792150047758106685365507939412392908066950768218948130069001833919135486152060702214106616469199066816110061057553198532209274849402632933981219541858470283979313049365116041147209157330738261255940373392451797589356795792852927176672021327083937706389177635720825236804789710262821474935663311632556162635534221223989151254989811584934017219732777178550692715441870563847838486536173058543839880167248466439831435681053826108115638093486493121806873922133191584324161659367064169439611882763451030114197639116669172493416345887717519514524223431709714051146090176892731924818021259726122003497894964021877646264238296356217423279450136592899164372961506489015599382090615681341105923379339622867522254519078331644701398406335405038566997225922770221115914257784527034038821305247105756488038480439796081498872531902824028250117767905053586826879126271327386817617457884985947888470880769161225324089476554376359153697310916653635963860802077463762776117673202963500405298970324976057659993576506797940898834256677992752368320756696620579088821308728631106172764619309175138637328897651106032279313184334889665549706162986578287055832024176044228053881411546261187538310933139643043232699993118643830990411631680968466952518067322069807910564233368518467498514543358111256714295542083414317539805771936481383337286473644256259234327443654683126491273448222098734867140838112616042234286233657480021875347239313571990368225297490491090994845875067999383956792200280273529682691915254104677001517186877021554721102458685469762909517606229646408142567280584767628108639420327566648291428582322196074554383350826409405942269038152993451980510666628840614441543016614831277266411691603814817828474087371706444059074766686700687498531733268378910589540491213044094028981063545360777073567206093035981071983824923094901220152032151350607339281423679714465370609993243647073924503528034537221993262945808422419227962629507607325805550284557333173208459363652140574531544435497208885925869548909561642836711615471851435792514773196897654621586115617326232328289113271764822170731289484138369895184389630295633956488650424622083492434068609917574953053349435196477257580609798756140218469942615671313357435872795648269609569427051717658683279320033034358907412726925584388917023567460506733629965525975127650880789871326193854078155593175179111210954187153408657392098717766395678062765493567734294653392031708223292106744660555173930006154915359311807911229353388421227061854595768091121639625516675842207440800374018199474735104084709132574320544172993129292252988151598255617417393663459148630232440191161558922884859820140036860413531303144331093913689422639949420028648250104406387793025503735307516208123723948025887885202795166391149529043366093009535139871105285451410818925415009400694975012002834205230788265072878587721698788715435353141503176236622889383432962003116875892997812618809016686323565159088540404908776498327624565567084324238096312626243239831273255523083302814699542428833924023282270100935043710310879528782028167597115896364448757636808372621810560138920691800217390873960817312922897272614011974733941853127778613733456031882966989508794259073472803232601831171342565203903148721235196819950326428591177523335376920145130371965664376643346334426733302166801436866260970286601473625217967241012663486631582242483174991689181135437748133863848395490353135273792616597239432583431433865428534871141357676528967472423077100856111977737728321300008353625298052355955451972385034765914972371435514013985540315304472001866524115947039063672669331509715290407315677365990497507381254810022958820955105039849267646234314235946444202568217000634777209091618909993099766861949780273602292316707185037464356996334205589283042558571830025150079673168708047665952551391180431183042035493480903719776528292863330058960387174395034494397114395848047066978289840737559345088609788779729332992010520467401783482128346312061092689970230663881863370947000383410442989713041670924691381144859774960512983268845553052649671615069969549824786083142391566794992838908749478123697473434585938333483304375190527693386904353027436035503132211080157309204752099360101957625928334747435779410637472963542129155491966530105046711502869186848318659345998077201931911635819120730170420996654285178352536729974958631600079810902264766667296629030693417232197088637800076934699548388952858016511899049088304529615143142845028746298956517876827612354693896583433286431729037464359657332469314161403142287554459070760107962359865003581136723465401631449891535981348815049191729613932326491641946239893932718045610282914377355762809586250268749980301606431434642950786446202052798133407959344022464856071840118553654727504162156447964843658542331646487495179454561778859336714810927763757630829426061851312424233842929004884776946199862746218926629497508685631254907784606119092791906182576910912056756024544175278430107838362280112193895247503183624667619644699999742081614390941433895163343561448026948598105073861657002865472575720646095063397912660161281393124990241893659634101574609517652177357495123759580329611603378540659510720224354532318991299580516541112338738781542449224279446837123488671745180002152587493799781554889632164884184317901468741507553213954191411147786058485774420726838397813860448645932434552876271407649958689355838918209359811838221539413830819674340518723444360329021006687600204736618862572996508557199996682723110151190241895183431009698154262305023443841654959598742537935248696946944904274398875709100905994549870930216675855214231178892454559015370870896022174360427599192497625193172585532283535233832737263116949243625879602201623372661377790388246101566474661242246063590304595392948487382109669572337392193133829401297255479546536628687449189680833203823374547186338020472325643468884558919359260588739426974667751931941056928185126873136765769032578846643219250789621469581882097392094388862832575419519027174248219804044798992844454830404811438440026033076589527797449099958589788228581268130709382986798138880747593304454563645209156722498737631853942979524348173335142911356874237120647483030293138311718722724334098202812557770665090785492155701665177182309705593861240160293069872212068218563262147406595781983330453869921482992664019120673137378198819202419986493581893646457282437148355265238334072836414707048094173974272536680823941380091044524772219305340328461925430527247414170917510048417698090329437508994712899639079469167753662464622794790763463648870667036483986014527081746384869761170225854967003121219080488113550301796037699546712929221581730003019351343319705386757380423008864487533734829778742757793170151391926619809007310604225964604942836975328000903179993857299744152225408619123557263496898711950840657019496065169506578905614624135037210885765460667213657802805950181130032312565761636522391110338110439367854617615657951076793076222297727409262617586687567002870818068674473103799452283637943038176144413948986318574059413862180507499227667028008816390500502208029350286782247265949957788820394802260793303911321074284282196968521597670989503591385958034941006431030896787494119148341140114598517628873789753335006235113596066835562567674469767912523589421829949138460881579932725650976795621681975641219287182034704219576036972621890692121437076590903988182732261550079145141276929737702607599596265268730785265472461702105606209189479973060945642067229690469825441319709073205574671127569097403376439996600724026787750036998940867248692503424487648910187010874262963743351073068277803497487001099763854785266324277133737033492256076529795484684211247195372378577236539296842828907153948106477907283645538679909663675013445698018956132611582592455341565667927659952097923112524892547089666699401846026223309803577540487556127392436138602587200873863749056066094269256026668938821835375813297787046214401178893692070345197989114516690740719888282070755217436168946403440992615835512877672826103466816230237120708286127451095611535249099400509815684386040938494164665087795931285519147873096053153715923429569192300306905738188577874946260489449582328797528315564828788115256243723203913093970625581761219409841542905187335733054245850708287032532860762489392620489170142948681945528904126390655927758568710705329279721769900540019600428581792127782680032046731436852148919443326577765044020675212336632337398078099504646033888347563045157180270826816346407619311067596369191529637948500381335402916149392861964094790920132253580345652949962367002441134904965373015924183631569309883839165481746529230074721886626149702425023387771620785483588109691284035278708861714506278550793197013187228331015935657886384856506886033894378207781010569359744121495384680658522273240891834619218592240665317143902524071980102747285814225422294359962851167798978758314491302734582530064248690404746820669583860313509840541185340899963882175622627017676243347645310765368542951754588084354424027092144655286970745114352174953748645585830012015111076805445011942963187669296143051538979203291029660863128482974788663388328295702723092245782492419774032909962363652578919812295891854197310530907713976934396684507102526039991277094444522217336177268190976808850632480312174889788935476475899461602720213649519254151841000287141167443014803302219228847270916339374919317795452890057080025594406431799383453165242872920473570445562429133978963465930275728573805790181805357231745801379008779947707787477762209488367581263022317262137521686771913310968010048149046482338634071840982931007958350498143357023672428595751117412586191661302908054280529721500565186805787932255201035941438926301177464878764977800992164447295645868472611689867334080160663002580683968318563640062296479147920498501291276663538291642876077102021378621764235095750664213968839222334425442454441397205944075197834319478928218786500208535921130814527476534224081702273792978016228114826306802894854649460356648299226731606971731199870912362966824789082925724588983970104688417706025817759425176450794165631879001104002691343125310042709313248535659551788233489439272979688193481956378898430769716243833229615083235705477869840638364961594175746113743911522796725885135746151430189674723456413936441672359638179881348282063418891422583210030958649086086469929179404600191423832809408635094261539105749015789975578483255422304011634418656545188699330249342784347572789523274054171174485092347095750151007617638994890600216546614742776792378738829521810606485751959542182079590961285415179802171442792818139460976177504762988681424228816823338344322810666605307262827771932590672029232267586571061472453630450015519088997886330223603867159658492897830149289776575042951485995978000977671415571591681368382196352170212141844767465764778326686979001019144490895725578330607528093571702907332784957477009196088113017098547944876637764088736526313419181240240076626941005693915253050137994737159255902047105472763869430067331069917804730967989232625768358662440455088427308290227766633601886980810957337651375727819247520661377317574676600590206004642176901240671755582900868062880717740163462551089896362658166177250906231621081885952327722292065054973137196803772209262837989341921229045160252038616351784322916595934022306978462461362381744353464353377951993360523516091753665313987189418886882172294615004715131380054100768258251101967725996178170677354412369711228174484793588812116882413950481207633620166277104700601177155886943277764859996974535690311566855651551376514115683091496032870858312432244201753258180147948216002123849620286603195923644104665459128110842120837409583392001511893182853084947233618444210494376497661557264191301799641372457742763382610518275925726761417695634640873490316968474680157373547373530919250729113625736042660164196862919971661054047420579541862885260186285536715284726423130254797996844605590664747384747811086121866255488558426221394424529936793052205898815397766778487031351356279103117727185723014353861617256302576433984653094450036080108675930210523129285737586626079565816426113789951638988747399794444912522388603654758462527020815435878274452214434619084054835648876301953798985048479249821920258731243681452602946155426165623080335871605182012587902979205430339444468677514252081852542480598337072228583816364739976816438318809193021232989429522272634740207606386853486401676491052565713557524810391908292815557560416901943892738554230573557440603950933225254040244177750910515576168949810385069663666213827335129824753648067025487091776068911896453524739216354369017444610101351003071094847633161565039751581820816789203168831125199106429106853522876183323644579088197283862581502053564385760981929351142050796954420958800734499992704698745055516463726466193524351055771627804212420446157062285723213179454912383987121758624481821660069812160508663893965288094334715555635661350359892857575086302695988097862448165795790410709897857969530343785192315793904016109391281031514164910235368977247728620258849837666366442910059142688362813895706523864785009194231790784665103406136770177584626604979498263770690271775226965289356392486693492937684502378765118915857436038615682047585030824043731079502586974662441985512457463359806849507100036538671645369895408867130941871933008164367355548353450509943888912284439765681079144498490287328121896969622917934967239439669690513060599783353011085861894301324987822567144426412134218761133685911024945157086700051183944607867206124925546632265973514037133420063542933611616624294002769763726654086037040717715406444132151820184379431090190799005368481145258632398791726149177946035070195316738718722764528484074223150154646773385573074885432860034569974023361456223236113080839696864576339676793484986288232665726701938266544666824726216123791511831178989450838504539680901753669276300084152061040412286854286487812460430216223258251331611954182302722539831451796778677001616387544994307582745298453930982762560869571875046681674185181959905509891431944611320571956403677669402904790323714985465149409973357702399788481803094566389604021794190084416499906446122667634203173579066813892129303110160287250565220980598048113920178232842197719144010441689187257020690740547627362147128597908537759438882619765378361470338462301619224068150968063341487766471832911586933836193973116557423672707783077216976768840179359567558507127888671165783768759332824066771042997032607116981268240026621810887579200598429869531952872463728514678566352615629724759673312786044563479823020462649167248245526089188192200598489901123019837444370412747955359787022091186230693520503466497538840538264030295982292401030439240407625941405330869896109306956973747396106161131329644549411303774847484615220307692560163792750311531520954362943914928792068631861088690277303942838754313818834988680645399881658159649470099131898910976119646016724738839428681000438311341577079181413916716341368991040080075040566032650388399027345380878146137973087201098552440142974027924751226987307539581056190889662428580912209220867979003863055069184080921746813003897196450428355885311714362891714616166888217657780150885560058176578116036322564144784418360753294292962749045253482307285525234755742888938662370620055684466297316336667243952155673989514140893860133823219259182791684181224008406584704512726029776661270256044845226868362199775833889292710053002707385166198370126845717828456280462899039751807347047492367134135898951268568422070060144284695489488206160419976630016654616008465930220161284065335224360499827139883100634204671396665153659509923372888555144492540675464037163027710682128904717191873340377644194531073898479756618625543371968940638541705704441428202710752375726878744672963614437738393394329191114603683548226082221245249403827682471579610513421326860060706450080797690481172172935228839462879529244053600910857612435045155704601093843879198082873711605496647155570017116841573799261120214594148850903588688892471651050741703614391942760939220115755163504787813952224534303076518275407878313501169314028690899884883580285035861593428465071752951207445631036039732609508901688038472513603197152784628743226182218570040872360014841334316607383899937796990800489554251444793050630041918139011616633133661118140709461035164206414106735296581453450062166444359078224526225323742956231813838734765325003774916945255346007966770441305555569599633826458448125898198878513616475868316124236919124799601046532965207272830443219140203613183406052550394379968497932377589209918953295415615888405430298149589178451387769783985465455415811988810000320803087775069982567766234019193115400197805249811587247776688885460826995820837363201400380744344467131269201692943893210987820901269714142855114201042023521499093015760384097679077852417072411701812529790998083635889072784265260818984316105365095448404502402399087319424188902696820890875594908727968502394510871746629658765543649100777900371752466464949344501271954008626151138284248216520661898427033873232080407079694758754948802697255587282736131672317938423384979288514572525592438802827083474326301557718216383410968909383307244805073283284505558889670076286971842156677170288344527354619438983246762118600278316567678150302384206660182897855404295909776810016700816276578566733986682348673801824378966925144008497079012116541555655939180797177155483693412555548686711746496627754826777131841725852431517956578215048066988024889480067143898412186904929306024918715583378366604512357700501926798172638143633843456134024396981810404678741562974746797165037320699084502018639650408285037669949404495770413978546121235900066419160562538437550622295545392088636611232823528436299423995285962230497368211426714387074687102519017160866996316500333175712015642767326988929431531572462154583447891407973868969368385001093224023693937954872026657113526583944518541886100608160187375701922745872763410203609041341941088102008361847085312473658999882027805075408171928124533912753981723949951440608989436939687426380867475712611945498800232108140323207302506112595717475583379254749749096249475846609571675948022894286050880227412686183235265036170044354697768932508709737436288692553695510159024274284932446660268619433300847043035406271183166824368302953762917601959780430994043257206712954969127076745126303311565577472641782853094945072581535537335712663165993527799444798569657294548605492427871502410566813323033120819123423580225844719587159158228342295829302651670331102500318007914702142811310160769165614665118766517654969098553250826608910653386072403177824941297214595592144477922481327546079737352151551675223814602836142839477372104118300903865054280134658385127092379270726865715798407642002401057741851628444862795459355827737273289441978860851042808148742530953290980249496223366214004470148485330746913200127651049543475009906950283681580201075259297287962167089492094031621465375122674811672787958170955235369682976697500176177333686135023856822669621882266339598416754705286446729206917439507776146260808874183859343615207397008355902793130290068309248649746037365935790871850620517155196149362159313417860143963464720659536746136440576634548818664444455165099538151023551837456090129327495609215307211512154247976484252706515850266716861436098974144347105242468646373754506602180965370615357869626314435462853746104039963935038430494071649790504189416215878147001033749958492211950724605017807914731600189509380069858285078914585198610623815767672242373761451170878864484682689075058314794678678801698308110492288165463694164226936947920859135466303362447139268136149054666046228601754594700258428972875566920271604211871111101490668209208750649350330493316083545658921126618577386119366527511634906782754536832707622289434043921857308121969697244084208056002958006454132854521360834636692550916053919600531478219677102997059750969009095274338389527507421169696573040143151786099640917597380897987929561851368011217246626468776124552727035146937511425823463045862733103323621038533685442624519294007160011970555519719433613622412398209804559793123097254108569816908539739452732046166411372219521404001005570709273412152697009726957052818135341348421467466643780559607297341027142780028287190041721666540202587690736230362716057911196428683768555423687619900078583643651054608712392901453565484784958583846879086492486432840100198855878639326164974402590963389353990468806229540537635077348273254492145114365913597378754079242663333519749992056877259437740374848228795230528510267274615343696596268200465364855130619871031628283179873236506961414883176359251996794524255440793271442382912278155004774635495367442550534208071909457148143220487885567439255920309683110618299278739080772500847187315536524421477552623248248741319578620650741599482307304715467342609765865296618525830017422537333804723769632202645412440217427676730671222868065325789292593959610983955580926313149727073014370794725545414468344268612386548396776191824601426334809112434096498613794520170656855854037284145250099643146371504766835367274397040584033635224905873146726636565600316109564382207329159796194798979316679820597618499184622401797482957322287905484276735080532993495530223003230191205873124487905600023359736559284619015769665253049423824310469581679124768848207797169868635439950424912116352988012889734362721602297330713012654247391717295387628172535975841038673896325614209374994144970475564181471272771905443966113326104185656377668789424242343451669620346219886551872189980465724775069720536978870991045743643020795945012195634906907145659607743144592799140960465077879543259550426972125643041006327070356334012619871587668222793146371540383265305804859510153803282339098422489071925314487617791542328639657529456857933112501792059991848309695665247521270036442470070421109836457172290660775366088382951210471536610703307078013306585999314709623259725936314272206817829398204772829505172575920676210905145969832368496455913534369522664453785925005514973065217210263979077949238189820806755539792065794496620288438609274600909194418265686672507915759393617869003357345906211343985495594907812438884328086297522899777413121621940046397153871026596748109162599013640651496080325913400411802816481824462547499825432834580338621795576183176379396459529133813674516175357934352132185579162261696129202468226770340836541194515482567705381910735271369360142282278036611681705857119008175319962880200380405736522086850087616300799876583516709460434031475111776251220598852979347352178123078786090894855836633624830678853340300263683917303817500453680597838317054349466079183160926527834304856396284964925294925667562466233429870993134107811989754808401033150229609971812832444186168646621361644293647465000102368434787461045430575331937063749138558628917335632079481833794510238420874707216523609434117643804667567207807226308832589978553459829392965875253476828273405554212163374503996262216868768800420338926968688462974299344412286300380806299418850549159795257271597984827833723410486420558511972741311668242518864736577840135716649033591565275594529740758835542197704865124956508950284324415998887505575769929150869004515352521877124912235098913757660883343953915728344590023106629639850566153168581954091187749558352905920041144516754614603450748368501060251409836751863949492890156425359206939842000668305622197641896479756775902103770923173635419535568149961947482872355389590956991564031551142781063345873549634649511490844781011920411607844788608756910774491407628585724095111544458554644769863471559272722234073752906232274528952130566044464662653164735758980022850814265872345052282353939657242593770960258340778655743338321073225441744637379493173115118637128568007658186879899428460498473886305030647349819789881492982332180266443597793352448098610741773994039005073229042881408134007913834139539968969078617846724747123757578215151551438948836080740056834301209045921276607902673279122010072294352464913580419256214465674684207827245427051953098747723684840281010073620444738330187610303343392683355286402960694774288951383858542644581818305970380018105623083507371445686289287453104963652735363919583353484397979313818504545692453417111757324410969751670892335426438740384761483045340288813226915631362809062233848418236242321782818995008678844500400756651135378715608973796018127459837376088294333709325233324907638517613379650682254174096624831794942817042440611021508230106110356489419787231152826994820984513954425510775731482395552082514921726682599634563494864877828423914536675878483876485105176485354405645064511764432449353921323358433842510143385382374008520998033470498896957947591755997434383265578234862943439713693024448904134173410634646258519328169007409761909764487492598730217248889986666925379852515606041948876825649017070602166018319830314692372965400910554113196453449365347844514910880884449262972025803091549515388079960443034636875757811021444867743261647824403456130036204156540297821416953027608822830354486290571444473397603830028391666596563284523997393926650931873138616033709114668491751262855424331142772720049054330445428530137298754462657057649626822612242484469699096747834512497962495763303156780145729384106025416722388113650098861960672127901035790435570175064029249868946677245771188847749292042788427716345816254014978946255141740462811295204364887201853122254075845803529811160728462093877702511176767810423458160376108952110461076866607071886055737773801473352351692298422952938103338931308837988509794260290773068618973019616719816925567279458813822689645980381287601225864671076920761333347073439418581387120944138937745090842042629881078171388909383228345473978746234983083139147964940997951048772122845085563082940353216150122174201647983983562602648484609043059317317808074517257150542009196198523370771778480984449082320751493372406986165598125501891988229922512508627804129993447763843899989513968772707387792259485131513964536725104556758405018671073331236309146224603311265399278513808727076889235088153462178768490439872072090171719084195253847035402698714896743011392611953618291182965377060430059593738207687794289921692201420352792495167245599984337668038234437606074962850193438682731284543489940235259911894026864245072802227137122293154286431652146326669044748381868703718196553128064240797279034827462519173652319782429367023906727052548857879928093388532450500007603519087429993556744732605075109188465054942478796995265759097352328361861127897659296767975321709250091413162598530009944648193438076213966844967341204911230534777532408680211482357388672193461521708340986871311225567426102038161715741012048877407823530874584259959320846521638695777000552152178785890665768813480335594776799225306301571671790244866966729288255107387454291456581919402293014930827409877640370971680888417447644718727376883975178993086315223856329912029194726089525298333630063252619877010559621566724867566445561788481559678257957216321363007499578439264086280989202849478307674363770121028899686983385088811068051536430494581388532572167879885133604582700366304097928748906646274482461259430288518278886707321427261787578698813778953003855988670359727254220177746230887835710714796101779031977470467515101924895830099087841359740502123104463731497172968958329732040588175517598238184190844554762171451399938423005334250646013431404439731697404294322408929955533826784885016055323328701089733360953043699390034395209546804707001952070755435993138172840544600171057700741959230583020944538635542110336032756456863031490942709104177262660136536517414249377460014000885173614094812381367019210146586895826195728510120134060974721076708656325283219561460042210367090725258182154292705418188322507860952918256073142344723272071693675405578719698849595266085633157485941562299821649634766627718943655788887955986867802651629848403823230707473109235719306503789855333523878065843083965949322296717519373459098102081525853849875339136687901109604307446674364536765893147624137547847989290115972786376676492384657805495669426674623320238500755547537758391363251463399777364965172696257294614700488209745700824978050200274240641042519623062539137880643119715435450383234166975046474459425431640527891122507610894828534208375254310555726169003108853600219026298006290980578662271963342245479326809952925913230823591392650463727119166084446936104423278556420888434278209894521053347106223029736849279816053274129977191256243562598682786092575263812946843093543089492844059026230148103472264347061686567984191354144794571038000131014938775281901628762727821737345471288371875055569415612809778643324013643055963927370312510584908108189256973791834378225894633712839421598448800204638061194210611346825826541152373075391148047160986345999695654761320948906194394304104265955817425334374840688259358130331186747291959230303694703980747426347678670305593527654122271181451196794367509857206179648689641599786274566848759171361672703750308606216750776452241182892330304404589937155852879173274288601886199104313164270890196791914757765459633849612177302583880292502635198418666819829239548163188013707121496101672217690609802064178693720044479781703341926336166534609133384881303942572761032969007873982144665098490903154382535631298626661980928877797939303355083539373714660720673578128385844073652394788961852262451284673667159302120542545369875697599175910758359531987085185476906278569716669459662097426102377094763764195517686549213214380202189187628178732468086367044806196179351361228277138980440192182787081848359756840831176648318743522216660614787874706022063511621215270958470640222693599356776785727052125889734737837733800980847613264127145945855140423673681743924180292930249507248098327055862002252406087229284492305072666451676859652015942648660018566295418970752855846278853285691133082259006709493032533926228302884186808898881323131580643889266884975940537951669275049796279199347935055616342558836366288133670968663126567906627470990850769125610871200766651517658507281515801316471584475734293763491145250197608658167778510189281741049097930454795863759474806379296894185594951516938986252843909877637320278280106298710163733458249552600655109900663392453639130417987049789919843331285759690248123404897873968115892286390188407876445824545914400932692793797670702519840361424482648628646045666577146378571788347752519052307949174842513880398739026933377721526185508313553396733605756922157602521046388545693834766419855636469034688787784808213730824682806866938644582249352757466855247908669489758265552694267329108651671952303600545986455598251717571402062644678869019589027574699631387805030404372633438295174325853048844717830689139932442866141330725887103109058434961811900407417976629609633183306872214392921680299123178110174214132733913724099443205541990544355249918756982191226916889517895153630709216255313696021192869753412817333990185473203587736816878440912820488958475355965291122779375788174563317351060251218039388511917020584306941630763492743981758719941526829961407018826033701885577272138256473089831111923045243101759265632535607160986272862922525239697096356714411442427699037274166829594228353782978583465407858218473466174820508283604638592976661573720985364698859218708994945014938614781889440266430800717957905605864046713956276762273503773684109444730591950823246909157783740398887064759435385712091950055851504450555119145597800905826672951850282302029573619465364541250801472878689067721501359575330106312225210476451129226360408513688616120607997343346132742305181827276316056349191020432814382162392690650522923839343014932618032245917094418461282581870767855802693135218190488326923533709482374101790130267584159023904343893412206480840822183765851874412142750462153399216560395283369270821698565918636506287301876225753704558013360145040529795804357711815320188383603426987643692448077458865308818281667292787694245021133782316245779290181731428487895241721007534582251355057347450114924238367383461307213505989011253506267479613947888267306356332418968095551739272803795217629715467620312450229510968914906127107314816974346098651592889287921707373423582969859364253075066089176581038957899948129808671465271031544253967020491302173359794583481736780824589106781928696588655804561933383701690579935720095933954026542851864453805347330572868731099220532947994433237312708820573435618331462882182651017250593089765052649750012488037494750721741273098352040109783765920272542544680734065316588472174663767811388266754247834887373883603124383946817889953893390552420192339285232897034644816703085048319618903039595173698704893273229581750952279530466096166555400106219116297054715102888591110168803849444483607444143718485346943228606392665020350364735844107271613619035484427630360239412922695310813724197647979312580877559800516035822814297890876668164257030716481330010727303298502997321365317485752879104738877133043688316372470495025128305010554498291322658638171898559052065006567990867968482330861810047610344836834740447788083484710102205136444455769277881139961072628152691197519441318365564804441223596469064730923885081454170510500152310492062312569688013699823725687335143570207533539334822062838384087746523424616659018339395263743498045023619253486721252550418575485571707453150902946095733772079110044574171764819955583641639111421527388570032882133659524341735052158950444172081931887197276407121238071128392743440590692966568816398586845877736728147992028115105572832517274458201496383059722791236776591916200547344310852230776452985364115920635204287006773732750003392697747553103434532282446268841668145400661041645351518094558158299878388875567898526984130083761831047807424329865140208466626340006817256671414119418001114323151622621905542215715974326514601313332432955242125737567494413179315125476492420327221895401047535659364571006872088357589637649211905299491032001317749547938530366709316653784833577842805332415831561945251578710849869483401733152727156291418975642096070912452836148073463080077144597286659611506739273154234727311066722154172952866660669982024197771070339663313234661825134713519092512716957971106697234130832570261240301342887427743820546545567741515114907957685417133536915090647909263167644477817883091885494967255045748098495904771762950211586002712860600774992239476701093620177111444942103736619867484477983567479773072683596438615584253459185963954151710469035927958988584851050081908749068573567699575298632038879594687571698290980873735871899363603498504359607014652563176100011015662692345332928052696282040244583030993182838636265247223144406089245375844498703557696544302775546853241557461483051491322399099270507532029870422475440825089987669026109339535973461286872631461281849333578817022998135113099337034205612952644816341354849848500472215031525466904397252655388662799957032666601357417787639755432734156265480536535877012644514011060500193801294809011736306044969319171220846633975083334700621365714139838582370871578915105322434368984478662606041822988184841322686313546212184254435343390975884430057041311122369025183469674663898819144151067805344343573491590996484659739312832640926630999938727179925156009173616455407176751659085438658336798022175798261122927560461863243468248741835598534430469936365555158734952807980836346714820901568690176819084967673158110632503074577228407072986243379467913014903842943742890147365083589959416628087995567142575928233099787253246343010918813330568812438058119887899002068012724155884653296352329602932217836336656126178496780256838749017073433335044536586586776692914586190991679939109544754802579278830942053162492973707550074097657044858503739843789939542452360699929369207090661843790399415965676986981155533577918044125589735298067724134898714452520401895131706980946692949840544588228838096409429504110043302965324387468524020653795586448054645392186859032920459010786493541318221825108244638920642828948904666820610515553444723724571382297154979453512797806172408666602218759436950404398226820766898148666914277322749564836510395088918414839476739831654088934510078247853103762506154182010798236840995100066457254274102535367308532237071249239230065308631806959815572420666556096019727679405871703200311624206259177033245588922530087676258142457060010740537555400052536722305087270530015200261846437259610959627622978082145716728335360544420753129602703147816049452156517065819747831095277395255562059448402935777344219046679613622101615581262489172837351148869455230235122298375865032031371670795576200924272197325740483019672752029383616555325415371920994617432238203822711007562864711817395530036082115832075131928867186287607962114570400817696763721611948800728461344099682937991669299772209232345359468150991609314298991151466836137514230603329154447489779611465857185117602599444161560177402174939409102736109273509096186513457829361568790067366639680826822417993414286753711718185045919445776439683947984925918904963748620701916173036785758742191976649074633048169967788094997369141425897167159688403210071508873003489164035561531931341589272433007366928857907587959147825051188060209119417533703452043836459156589169957292083233142586756678420746647803937863700022788001297528927355416670043496755882866127395133149600200123396917136224235701440494936096642283135983763750491401665440741084000213155620224216582209491435262103238335085291386159752659933840843822744996100559400604429011094555824823591420791905066006908606742123030386138375788304783517699802244849943248852406572935932598763225252155179311794310070320686675563328624884974695515884999657539682971543245342646465712656118620562234403388214665313666877154224868107268927866049628795662466297723307634367591140946959713435642733296806701141586990999781090624082257065508704580728854355512778103006012422724570683722852893941089531173474533565851191904977385226613564349215688412964060785559948124936420942852238761392090116187610846687709489204398950235932208313551665200521172232219851160756552583901137378083369141976293287265699068517786556274378642486985182516477470423873863378968218460837151852150780521288094637963052038209851353478119216895361919629032899917875866669246043126791169648385366815469256793646356295315536913626306308050759061939437561673865171344800823512978439802306991410280133811906610902415188806224120898998942088724009148867918849601448797380263862365469120744670631282675051739328344365380373443278606924607562434168198643774628297019666095276994491622238260912869554138540994465997912376378005074818725657507075812740720977992955582241232314584294567077542022963304718277537796685777115626105154217540205639346588522555403839943299291796648508026938121238961894959234929157388744255479406959616247998504928218391295723844618393526014428767533522080558474120574790043467465409362010916154300230188768429103800257304995973534463385776162539455730347377646608833411596790174101219715583986909015669160985108494345119490594766113466707056873379393497756401230325928622525195587993290534471985194995170511050046115733064558505764762300639398073267932945376214149147091112418663151966875759072437726673953500486519089224501119129677583020648390074342278663169420103084060034425336285146372069587198276300105894252893159601296763698263415589485826540742354041757080650098274655917891938624403655600560909189593384089654032474104439924043302747702863755047727186348995518092805900015106454111514737254316758180572982028517823312658873181196330562462804864790008139618707098594933791110960343905928501130168225040786903416806891842425018320381798741775377030264097273554021584236167101832588916083909404369956359862556897033600859607455308672917401880069207861671018659530405887624706574682916850060615154433941322920822835210405415949656175478261554336904051532117305618721344942732307666376476509631281161414071776193451318918538584133191473846368429981878740562441184099899241998214878468983931299227330643283613385005482314834590159560646748721221412290753950551984390529333286630880712671006613974087153824844179033315320196845600808354841277824552177204901529431391765972905889286303509524434857847179620792268354593191503441560175948450699571009652458822723870609063249156271956553114156100503016772408810785595964692822230517166267298555956874705319581119258619441051869645840354812514087811924338746128109001291175040075979892141161185456869204885060775346608271370776513704011444307095841955670903323595373607421205471829743662683284417785646852831075294209057664921914197134967197222097566891091413915938007904343657740074017223704635379822579444611704787441212161206435704042698046780007556021053968778176349705000398355286464128447362847351125208088727770088107029417359024867705877456496197850597542664605096622251870201093054829074931013524775759643135875739236540446306962977939493149726781549308056367545832885970950058235294861317245608147944968865626361818751572970314661668721791860992342252297164348890047626281447464281318658208058421756541568063036139890957299722998499457846022968449901526421135968012583383324783213160716732411191653927033190953432145179911171177838846109443703693540806195874131303004021333656208081138508468521454219097221420103977956343477812480938844982785719749436231444515242963661291192614528888088942128518054092804227558349100211098484124428956394658643837556519848025579827351289405717583614102335497572805049192811566516974258242659502076936248299970825410605212046674966891608515996564708125137840260683269532152049869579231387213615029115516369983208349350350879474096084109336386531005052411586668755994113020558720860036466627392170295585871272664261902901945623770775913069241688956833308131128801754199295543851061714965958541500998251205129105287775795373491070309395399861622140547378263859726465380501880721052376819147535160741409141660557616410409226288326145100607109065747169600400347135247151799226324818369223403256202431247350798509413544620483938938240683610991183412536306647497890584624516783305916413220468563996159343078658598302343070660380946478527786341910424741971396755449037754345131756752490266929112499122086033940754475922046830462481296994060443702388991783680785204906617802821254311401319750280570112107492959264384965786105132040565019973435838325294826921081470460135825482864869775510194966055885245416524292207754131839392676546127226766428509868438722690763388841135621768544945437628353338820495354247536256333974931058674448068829125749980362269105808982251159142126929650306452029182509987153950893401721924789391633903413619632443437339584333752393411911721113301490883040168585778881038042475501201177859050952702414039339046908199625369990347638070186592800430438046243795307220051024514981092541670588206467427276400006049306871859653474416322078990324098154994118079837672072550983628152983682666104342522255699882615272909519492419006793804545309206092679971306672357543753487717230631154179371733341904626481729953640311311598902463195923253929484499461219200748599823062648892601543343581876510014759544914571534413129614610676999213396788286623863021219896018020296717125453815877763132808042590971442111125568241893462346902267020939340177295851727337110184748444699201844456302877580956386557837904164179442207778911150328360486383251335515239028806702990321630225370142393432725662881660158505037977149988363635129586572836833207414754361324909748439819275086729867693752110049587656146918407836579122536657806651691827060482376345115711563868377429204678376324654631814710036801289280141097967846970442445765455588221438228140893531192139094338531900179924749747724510017571916395559030005717849146202288832065346000378108287431098727826154732722759252790612661006398946275151941783172442719403824256612363092908125383701584287849872797657839553401668634219797923947166901146291741565400261629906247281401842826505952191603034887225881367692532855032547768252522133583033635425126153668587355950794927269466609113518711701110841305730461101396447582184526381348017094981501148626044337248948799880987534232404322977151907310766470809366107069471772217422215175499547377478158102234081178663362650148781516757025304199253905401544373078984472510722045316671793610827407124378359367237790477746912076101241188838737130238840538157885570237842561498019529513151041438281315142775229659492917310250666116141269380062934612912765004291284554190945205607819947039076192082582852067972096855151102037184540281332071138071339175818146595030854903692075639470384849316190091187257168482476598301727795161519290310987337212560228949280895915959423929609191174801197942241579935297859822204335599330529137581428752774074820562015490357382475957277202191158098967947080639763043911440927009502482939525283768557822973942367123425039276804727516600816478229853439257180679376212481337028407290948771841643873607097503352335053741622270840242313920474712366047930198721343249354510400308686557471593775710101956251748025292815314051173566597066848181241452000489780619569709169711686885892813989226955631914627638572765860343298698205361381030817593707834003873958216690346116580590885277991107743302262964292951627597038489861625703585032917719213392111706766448569086498403705637827029264879044458369673577504602595585826537333851325786656739443584696853194258619516042690095536869647592259762158232325049896779753387597460671589673962897585464998469512590987561876244324183803712890051810950202592976131664382985773438492738928920041792581508638496420732594773130676473508441395936901516518138207794328374277892008929972711073469559451602709841111897360842893699371614577201561778542102800397712932518330771622629525740255532988065573312783439064958859822285955823443285954406763272664032616622248289600847999951829683183894134166491644533565732157707239657419330541124662078663126753565834284401978712852994023175144729401130175452221798939361034452264820398227262743833839125274538367910222164164169105067614213920788401560953314359069254416232294634901589185503230216091217350005651629830989794305191128568588650682643309370968892558913174037675151403730820831296464420064964695106287035658105528743427672011082795415216051115882008458517452468546110247528560542128760430080335419899402204847268472142429184710585079175484103095299326645898624630956600139329045703394696239415617348160069999972549382819585033136745516645334038714855907652501503114942732526325831020898114163607438446282429554764274453455960675924072240596862170788997325675183196264809967519451098147397190140194053911756380054545045155123115122932683990013952317211390408725341525833503046734958899695151809070549020664323746433674077225193204211623190515638977344269859826137993122554560275472058011697230285109900637775614326192689081013780444687342900502578804279123425210484757549996222075256824251764489952386768652612967288947914828270271045491374991760376853177784019761216888127649942687393133908674518934430764523913747248607490392830661704997456491514573855690595121578471177296506072148794112173642801220481077580254266475724521101078047153867504183052302821846478060899435863633411385979601848157550117831413595122536163291805014329329648160800521479785431448872214168217387522311066489210305739507271720285082199787815688124121021765804396069469030466138044341112529128876705537661172293643311393158779258110973288827142699434515925984928103630527024180336147050776371725081864094272000818958800226872588599818291494672687119431476054171179765315495182757348101238683186299794059460831284625577501324160317868375572878773859111054030851426649453355829801060178325046327122609127132257068156571587734941661001058819636952690627425967041075967686612669701383504228965141836200160184102180862875586491771343236382517134170218466033165317959786771433651229636234545104535199911240045497872727896727165862097174504671683246313670492758951733152165065816687967558956899689860529440608999398664760744593650004883013945479910235606928985397107833402804145601267168892490146900295961005465707746432980535619346338798610946836628530474685014396350690139144077281852549830647837108416812007326038959347523429183945989441383722553791018820331970943980321987315384396817963237538299098890178462182528329669886674841910612199616315801312542382700644032638620636871290625903888021932711267241557210432846993208874439107509005162403968535024073341134872388457453163961442088821743586487062330307493453031485276854213432651876743180809168946717571073981841950642677694677941589728426113451620427891628546717277542066567265506546667093766351993198498095668548382454462020605949113833060854423613110761709551569948201824415095882859511168428714950491190509131095311118843617705131718233964706368298234565950006170849309570013728622321489468844235692156414935647846648020204598561290364116917510262290390845343118771686328247147817706952883841739221624390265037570677642726946207416390749020593104729302162898975087971567994861190641628217064149433262629934680154795857475495342474496481568051105716381150114967149335292804407642333549022358092512521431252038191550804735795894657799540641050656724101017067062741963138189033307434643268816352135160526269939294473277438297899242908581917329298539266331763919949690413585546880850237353244670292565373043663667114629006466300146957160932208444903911096071955651106533682037153529224253801714344434748621273699846269889528912401873780941957383346910251554198802527728489336121342439963275859405679924789773983012087835114170626014367034321023364180283715420771786354193467290885852457334754264618069100794635627796745066667936549547959214917011301252520573678820786978283754708697508711932543735408691407464607755613921454808874726332908858186551700207223672499577985266171255877063597943521755262900720025077767801471093810370788134198421778843409728733939828817561513249874548610143940027420253344479811311096746746113246653743498607516504662330943179919759829674577982437965393622570079815086755245767157260424785355616678869796612177559769789660084146277242393940142602179977350422613891043588551040274493350874426693937877573440410409984418192369639904880400900017634742397752537578205611474486907741635820914677543397597172388305111982792809062817329634588178554388397930905989284077935628695518606428582128513002172060699896663895184548137185979351753154420302569709849789064903265215665802336341570605554581844174294830437788755901701185230116748869529388199803550064007046278224976351266144074200279744388541997585810087710578034286338800872359654470414945957079190188907043057049997245065596943332179680659785652940789467138058226068242536475309784302299544797118808550848316327575265276102208275988619680592500710768577402725089714937586192582400525169878700672406612914747496321667653389534274043455930794459094556239708528961333894055784232679983771371526972942970090875262824318005199952462768046263012494359784139510176311661856995519853047586181517603217729134464193089932661593457758608368309692760869707042377888508129981485371045220635301511534592540469736561761087377954667889814307798869647344950810910058178509037867181484542010903980701195292929982000752688971834720814702354097827989986125230568844425010857470268083841181286708642627779945086309547221607647224783216321733125330027321249943829073777384393479803452941072499096305252138790780350932211328160913152295296881973995327687499662583410731989112503910467055152519307407065884138074161701639154470217840503034892349670652648696481486807373637169630390858195680956617707614779852435621582182376648601225351714497836179707317988626457320981969671645365856713303772452016432336098915380969297732012704713123699776460286824430038214140820746174986274719139360673134670686039393751837013463173150804405698559717317425242069635288514972496146458621460793671977170734552912219613520703724019085850806106280175854136453212280884891420878361050280353661335906545073822952501614771234302073903825151131635133677923983845095243439350682495441805196599670033996798088152572756047581425483226815221485776534955292150375846556279016199286458063012963812932538028308046928367515891124940463449204511126933755141005934939801974763161496053671804970341070866031306158265673724721776008840492243366399370211378841488173115218324394405794767650585668097014941777970248918818908742388011763245412372337829130233529112818648902329344561947920493773678768282971142232168501650053036291665734498333340635094370084934112910869497058014331459161184474974464952329123321851180399917448467605077408615622956200909352517695432330681170581272483635250161057425900166812491900672659981941720336600692704885391587951059943318308901437614230224806446475490965179024951341800817186386840788070016697894438922354303178843022945831476230610157910718989271154685692423500025119680572126037451473295687820742059425348149093319813028691198685506912808905244098247203304839730684264969013055194941262592925968211997239778096632147993264476186117128064901396295868463259737416148023631331576561511615968116079404505281638812390475586543244428705721381903464474592564344331016853789926809634541583073268609448705153400293039031185652368164277298077421796412926233161651108783035602025409487902287831972930958343253320268779048123531452010411446759318513103036255220628711567202773003000236882708688596586307456380359726753120966869706865427010419997403749893333829621801650484709204727742490713096966376905094045179530179253202368335474905274704958440257296184998935383903504368024898183528457027730527766120729463325220452814735736147757695051919184749081485206303569448530051243331152938492972793174258843112233232238482441556158816422971084960561503590975401162633787799812816599410220139035893950605354439262293177408960641804309378254281605707108261930760931219528138273344326212898203301494723183959190298657407261081102410675129495158421637106189009529344852107424558845599340838056250398134129817697932287316890638733573971406948842470239685900988949084502804401702805662135034837047283674690576699347684842911493836256969558788062608858967401034475990678144721567597062931752687902215006432510768682069970443168708044609363263246961149807312325812979034283031755620288667922072636102784955474465120389083953535730068542828722761441819199678892405077363416515787061503870696619212599334667749297481052849978083434378189641209170898216215462273958222427693106693995768096892798325931130479532382341541565919811485132358393703091641945744562026472890527411199717236899713475802042001622582633143970983335442056770647452611724866517867160332555539121884487470365677165209591138464705518014234765304241580355244595089812040356792970798753406552833911084879463584964829852215735660913187161445436561109707620474853167425424197870627031898366917349201287120375169061290340180546557975674057450443810848295281292237980391527915518491725251117779328110121865503374369847545991929523115552336363465271191873519124875702634766977700859124585272769347729840925812992518897953760955794054908140112862043340116249254323973269821409985689138927973753369058053518977526998416832477144741966138540889196933908937456072924617607858925363485682184067897487295664649867403991053605463449965807471341617782555326568860766294506114425730714258965781576867670484532620242451256035536069616222055554837696576353337824518601186769427688353885275348891553761159850760524737488075753858314920857604579381163208375381955203753788192248510608522175002523659115982979650951029830967391664949078570197792822632590530360490349501867908424687239123458303248064035363909165621177781645687660966765132469200777763288470369256913003191942119843515805325263546542499069908520354279266139818196091186050556685138039451471601870873721011474607926361233350880655717424923193236219012440273791453356426582915833770145458293765073106371320117608265931973050207452980504471041687352481407185490643687077963707926106052177085750562147595716681772727780963733916554217445676227317291366051359398601591616967502223606502791300062433755840777179375023381924702005141547185063432116319619106168734048656993034702377542431039000404766006090213393202058680273415576484255581852721476294320447118382346234447566603290304492121635828580216440207610968921821117896116982180825725841829818164515756495843084980562643501161433884577202071074349148615157227659041920319244444250375745184009714631128346487505416409761933569195819988899710764955120028892898038109836629983367740237600916632835480905461485739160691672606930955665131207215289405688763494345175750090177238399943127939023046072800751816438206082766987720014228429693732608556656118521729901916249135785531286192328375098951194113788649236130865170143854544098937295395478254809545071412769777332568061463064435092980646279087406113690595329566231805900246195915201754494240186530505982306960455706386877227755280985296406978274908378345619148916326337891543232267921417378268317642362423918038712711352451124347528370680085028798285374104138963467961714521853838995251491484065277527933949181510535880560674339769131140656286036862254654731780977637914225357670176097908912941465404698854556911490525337308132252294294962479563578870959064322810812770458740358387312599781456284390545658438081318138104228103106934995116869299122616043897948364773042749091873126787837653465270502459361212156976219904040786933150093054199939262540237157636632375173564515394718346004047558478270318933505820298655035567319652761728706662913402998995024874644224574870597075585924621221168760904140416780377883585027201187164435979079408892324826920486518430327476720653641895834027063097271644702727731576171600037912411382862233293534433681463948310759946796296506600756622281072002359689519510472777131948324134469108587321588001508731228847195133393954625570721846622608164714436856290873157730131413408908620974357474443765698462847436038091023618436424747565473871323707085217937974470735566734629232421839515658279750487750395053712431875284226029260036235290584014843392531108206366747050656083805741855225276446329706792316297792656090419705242740886653065734151737753925760446594651853146399481240836325743670094281943479265291044752330489245080251015409668890255062952934032998908963726914243906296533205828146673147213094650331170001015960818040308935844134163431365910745988630076818315333576310245684037381256148907505295394628269416141149375369098963452309504477543611906678477869892499559337922721036766915544592803810427539593520726111815559357908224178833064687826496178730805635778007287623627249944368051581553105921269374059342950998193220064761853648572246231142987504180298643182925488648075614116458378750452234366069584372318053588369613465231935113288714032132936845799016334988424794101144094396650497075659947689015409444848017922323278283853720966310052180414669529181243991882345004105036927517251171192460479910583251581168321355428350959612844054132590194752789568055755919432245955131138017568786888175023560852744627828271319143471587020271991802070458836826348542598911065431147263853155678130184347161606176748902034998008285238580854203268296630890733006456715928517141783336279092340118146605365432453996737597100135424257120956537380387147073662767243936930980208966032964886748356027588023963998108616485886013675831675370648401476592945650553342643701666746844944186638606187831471070289268003460946172811055257906505412310161933338162281010843706467528648190934795894142479647445097254233926088943670287773709161310811231412427414452342112828756612562183617070367561115518415993032012636559383271899958757279916816103131364532830625360909749351422212837644436151538051776553580282169334624602582696090304480361888816641642255356144027124484860373770654585746522174558837095894604193344284406680951582722905038452703314129599737727491864791999869961090851744554500251840669842130213780995077195436038975600007784351224773694979248378698592820347431770076517607142459194515645066551406211110482881850321829815100910537789890588267156505846173317220183741729677671245117914708409746911323385836336687502228055940483312106305753964139327585425518042316436255022298684227545882500824339075414549278213688585849356747793869620152326473725565665336345101801397775455240323211353070052873317530765270665088078912748260598396127626738759947332476670759786358600129924918714160738718303253226219310700029562115784651908114410804388711319247704552340882294400989523552222925555768653852684425866627933161108708682994773638775050589855617680247880955082084270083148496667766345082999838657033465794466845388214615068661145519513089644591855218526748480777198852612816156773412465339723886438752090261023562492026231981603315947146671082587401195428973268524221913345724268456853544346265116013409488082408666046702123688105497096667143682604582052867833633641510151633957277136576721761811916082170268092264494038947627207341981215103462134093180377997467303701288439995328055378193145434149797137884899057895144797622811036827216893337165047934626276745638359878711293061495347386853354234509015036303012459472879517765747911481910218057449472848314275087374059708616393755214213269071806415393748592208798789183553946367423438025110464938647165432121097680651913251799449113386287626540781032566027823147269821666323012377826913461330810837977764954757542362874182790643920469795030627300768832770057878365776906905281045521640599183668654172745450890678140762048850342123903998417061211580302058558019865100638978396653244304879560194411825128801250570641015869430880448980851088005794230415353856674861157796986491117580176309372227024447532457029095978666287173547571065638810964193386133959415469809976059657437593350385252478063977892242856404016567632845679120041366775294667452189281729889179441472320601199752789203036353553384397751217586832905673713531127683831875847397793497061866989205727749227985148468621991734864940972357658259666604701444017649917183641487624313165879805805916561558057632838661215437596339407105572611041500248519475427391831812317001449492994190185677298776415026357615060085785783620729110303692288689759296635944674898627532353930113430458016598114139768610373800651775162382604621002474299998098405617910438345144103863074457356241851639316531549129235243471133356566771430510686346283129438417086223124849625229371928508684257894982435105838266459133178104401183337035993223951107097198436465818597019352817611818728348297235225413750069168341677308142625325610527978120673281491946502901861729671469190145014993298017070275349488751825120012668947548575330673922568189787102172910003806347627287615949641556779568596676427728603767209156377786143125028717175319768036221435578850493842014520115817097585708002788350775297371206790174437965991925667417907327046200324811104360360415371898927278686097394223168831341547990818260516107817698638241639686837750613747163630925772240886042592612503336432953619754671937524991063201433770131348168307593042301779749264780570590149428603227854883408239287590935616425493723828299383425747606277664228083877314933924832844168217659596667958627496040581991945282003959407008364963560425383382776942017523760478764191186759733546094077513742062804565286260970386670588036852927073028212627489842195793673718487512008858366815970430975861425527351240627033199752275327344251206789354836003967517909550588772130894103548143905052077466182709362845436477752855203177558669966659355522917581559611339642931453542689108220716587418088957344238457134715908174311312581034081887888908354686574974119585596065850904590955841607863169143043426561357155366544290148554426252157399217204043144824495565806317455491838487809397110859167126707288010420459097860606430805106620479336119026864472698815074920216989722511980392682353553898028373373174829383569178318222813430354343988673276483171825492215304086016308320035769402893610225373146250745288544149135818493124766815683810573513763468875752245855205588982053333263522406456534489786246496425478117409621780688926223171213888509412117300784079628466376328246736758138290255457732367962738624147106311463659874230128679605122982863047142110408543348328056514524654581560040166588382593851662617309946622245213915490577301365045207545243089440351710014206080835615543431556332895028516616638179661357920818037686892706209105471550385629027031073594319243011457926330606934219532175125573751894717147081444526011504696468567914434753530535278494727791880294999822714806223596797814070233665361603827263132253367646550934157127209112206575524696437559162409849070264048129835007772865188876977198250996258942378188011163097629974700347098214076991150716297052135993766132033587332703442600767502097080673120793011890132557560925714105588629185241071513316024170903167492074499578358175763726959104859195011506986636266125394499964882764616911593489784062539797702221488787972750489531846134605766445705181090389608401607230220797427280348330891005492469720122849825750609765390908204610959345255731626891884673311981422226684801733265004420509365179426112373888362945026821845298441668047532541502563731349996295961800516772973751984079551663340021435744636702539737115823436118104463713625975952405149467563032029435219871348311886319630162516452913810301157778152179229669042242605340704724209494134979649679957785910221113639995620811606555953495755398930984769672768221744139403717914268404599934419600945529354411810925984191050385319240633862980979535396933412552633286962871795048717977805555227564847747898968654330971574778043521071739775911904451813741943776014647947581636547068286334526364152726487772051344464477239886311579239252038226970918000539311230531472077303298906081923301123478930650527061759257456946048163831733084792518482745795556672506435262009991915745332799099707390010924413438243095097340687075580911405838550467290771811380081109881158457256106501700144867370206314137069810304749018127948197184797778993463122092328707138443587017325676278987200353184811058990313168494510872509339779385337221125007871413016217541675149584014433235454576018559947085909591584476343081845399874627791410418845969638772591561751556785020997013499349404428787905995615931272825495436230560127333554666607629576147336940918044009794913874936775232234463162445587807344629252927612372469721601536614599050685172702092817637854462205648253871075361013586162072867749812726801936011113694306795786199922734063687925884848636807574721472551341141195551485662081036978120590538894915087825568058996569890845072635219080357399580206167433365661894059144193523365415007839913124692118735996721521550576296866646096598158940815659704025337396009093333500571583221335816139330981366225312476326165029914438789556260052067427621722900430056863860675298826713590124710313461045422115599453503187955094566749142737299564569404549563080459231478016389365817479011623162096800338684869307642961218948540041147231185719836380651163064487266889012004337259203360682796053736534072634524413306128591730679431441778732244521294765079482609392953295411725867594598432299936701317759631956417675665439067833574359486279081902701795947905134283075487385931116297090681531708871289447416899868998656200683403155463545612247799480936350246204308847757243712574380004617448012987480282172566067636506674077058904764531717051112335818615289862274583988793337201264999640768356184521586843136940412224465653926803869329683046820665502910702384295111214111963603411098214527391033890202570456859184667763739637380884933011724960255419083779596064667719788543528464457629703672416663595596331425590241423327022275502531955226504509255466530171281351383920451335554395539367424471704423975321096356202510764433636199647924072781947400022249485133496436818002485393870014499991531143078952687433676320504338351582622362061666992450178401627936134616208419171837798153081110727896732203510996421425789036287677843200247434201860983680702008197327329095585167667260438245689632496007402945350804127965656903656129981845655385318620552963125552051938332274445014280762171344585658222530192228531286228054794418297164323615462835849146558473170890391405218239921396242786356717108888720494149959784183538824475253824364763441648082130664958957634076034413962022195614768207795184923775326867474834596394248762087118196677274593609364234923654285351993285841362960702264734397458269409717362412665826080778703267046354061485259201490226870344984463232166620246471821457529985246273985350771591059245933025185840868201732924864944938246622747846887826385027997769007820695126081076197981720967068999636345155414533959561883575913304850251933560151510163518693394186482603615766466510547160621802784630408059266509471534318486600892729011210891206129483907264537917595869543829775325040920245792150326948378619576243938807655560773613606383394397869433344284000537680651395028110489040892080952283619972481401249500077253658817063969463488416444351847917961311230096740930183096384224233185051716232291917139764900225239513508647763764938081958804122975005482005579125957427086497252508276960750358027901708448625603184001512995271884181917484226919724998461397110427633893823721800558890735906957001231651377079975000414488680680153724205427702844921288563285319524714418345828068653991369939527244105515680748644863681574586192631135961456166866296060288872871292636054196974476934540729318330006194945747671761026419032513504531548207774978351647781178325984369437606710256683439855135218624847943453436985916676478028981776237494659324171519443607486948302365443971821864853638864103122132473087371513817153622071020622720730033236846373766855365754431653143550985356706565169942930004613473111025935027081106157639036428985716522704306597015748472646847176470414307290054318069149327578422932766956596114896573379720913236333793541332497731162908697190774608716246464878750961070237540987174469837191566439526270198138561353454157492784495329473918107914498906656626670322003999418822380233236422230326348122955099940710677436189741914752756030616296634564882471632777038816256542736087472015240386569136227602009065888934808271702628835373552605517869657591896691366508172323243812244343767076389709674279106287686730578378516017734848473774053097376153999934410318664179564119941992134591369966368789041379649204810757465236717071483176896686727791125210812451557950005044310779424223207446913052490589949622896060840743826834775117294266977266291159067589944435525200287409465213045779929319301172992054484725622557685254980151933258824690036186257559366873848377063923635061504939467651433893115703264041122671794174039515040276507905053924131540035855764556579002638213475504710707290821529214730512646227594535099530046470020592678604304076247555727158526827322867220548409662190051670480193402475179139723569318210210012834508522033472983441480355600795894195658281373045405036820982305818718366473830949592795403665038665158235822711111934846082589179818308349806301078674051799300192658826234424416334535373126933133449515117550307031829053268620292451960382029260389924530301183913076011428142632272089772656456550536725774316399226316991422838087099413853305848205362470815048151233048302976171290686584596068100510156661019556686783834620423888195390766833532178299765661421590337955878452478142293493379427787128117026508892209660380606082671226453306772800600681797039912749052891247144340843469415459078418234562339725408842125750189821145908179087791504416857220302417251112091712555100542294300474899575943260381453239418179506144456420388804875658899219426374784036990404034104168682721291029743671373673994761142192409337186099617872012141889838617812779260516685653964516149674397792454923658735258734873068709335037460454868649078518958089067679430151043149654198688436072456881727739184268116426648388686771203644188645734524074161845141032727685215734821532859957526041340295495734728133223430025318571872210893157095511192918624195711542432722173892492364214315308904892915765305585742031645860212320159749485815088530169339850700900580504993448724186331064203557554628528945663159178064584634849618807780002706628105511437637058350865619724236222905099097860796307309440084048887746984270660283301485055895313164347262168479662907582879864713716895777384781276703878434735237481770155555868666142118333905821303634404354666783473215653599681581494940389473839264023446015373830475238015285584552278728261209448099807747884946636924398411764500934716503358042121834219763764234391221597631466037988254313960199713636171650999651201748534961245549089307828485077341482512313106511072714136001385137794604375382436394373115194018346533209609997609519090680829236869879566777545668570589837101344684950471633312053567305184435490408823750696505169512462153249113792369153738361187915467450589278410922857857064279647412696970328769082317237856253784997368457004036324189395554015904588313869355138303063131541685324768831737257817839466461533806041337541238052751105724280205166125622896305406430659623773059719560412260358872571762779497930718330894353783706570689042096080846000735853741530821577697058259491183237259677310525688168098348056166146286841279414413154232377362416672517462470013023594110239492349604947044338732757432006603259770086315217747329827520237489351525836174487300335532689596874092456178963643951519389990017458260059430935307498961317504099599797278109544624614385738992800511116042883671366727983587912599913683082101332533812955199298353284722012130283720317565802066007256740246546899912785806649503268555075320243461131902368719776694321948776683672078045628080255595261567306896020998200160955643903977494428700651577393473975328384347031824617264103437011709572268125274883532788484022697648430159960776661430912017323814386028777037932873225559989200530415955092002110772611172357583447277471065419925263103323600469280583838610305573883875348875032205354925541336093096545817913582152521049917377669332330526291573922665111213209723266469151836273809739146452639290940062529913348807607993402685293752215498567413986253743744362842653373222472347255545221992414274898635788980193331209997962608523368489551898727020562727278389201304105260827406078368703971885931549675271724039570913094281897314155968703433745298129479027042078046915606657544100008832295242198611485535639934576889487718747117922292730891371984217213479017954203622645025765073680454862249141249222960468371564028191699453935785081015568967155715673031597904670142563009509598134799633937218450174703051479830890289555877937373463526341558084872965959694571462483133055417241651229044577269545736010659668066778388363623321778742205217706547526763037812291990262702082576671499610717926297305169060474031866521690914573022021132116466552728506204802663610715422064375614069850723921542003799374551764777661451632323219205141863724550088600470407023454418523596246757020661596475363315094435800362456969064372203522246343615599194566790933558220097986583700682718377907105609418515251692707422282889553616368193542972453784379451923966381620408556823768164787710196982175737416426637030934662500436321568309486169417532933155981654167008092269551922518569713301082339279982517218478487046425578461556611280265155091914507986781373994129067612124790240694703773829206910356239800551653503954316994266856862459948263475429157311755397856196331703171734121785971380630324275455447404624001316757210188264381489739149496432134837917076895543244030109818909113909831600175360424154574438049353322165170339189116937654143613957617607967219101882933825743611036402920273471842516136516006238140691015614353671868277909180486148042084523970868626088168533439035636630244130634125491722559742065901173542165854581541164758955042216157067056763759109712121724687218361526577247395752058437396033062405721452139353704073096579975066067537537202562395573597468749466677636650268406760265605197646165087946380201941543170810132493530358650437858115568548992605411631934401983476507957615599212651509967656531195213272234763506697711735313685874302620207489298512322705730650741762820302094127237833011996201000848647518710305368290287047521273630694069329366362385497825865571482203277866734394018644028059940367977544745633236950600607993082322813801345631025986383253312738188022021033419079006631802202116467567352122764014063678849408585378645468795538351507812334511177586113211090975078914270452180717360312416364096372367159092774952576589222764766556313297265709722906535916468983240358034856925338791548801449674244648108683385144398389719968558287226651767013896474726340311368652405044994951815164681871701890083727702478431279204668389984536286735399791941755893717294541679367537616099199353800216952509232976158322601055237840766386092627332841151751707120857524844702328920133572413966019932722624169202287046426789335387674177785242521684391158564609688786690697762059142272603123776757393685461291598632438427072690034683054516006584162556220745003425546667232278768853284971295306241249053117606667478941887250084969762863601528657369030951839800620357448371875503284573388264188405663241538443757302749543930268718105380928983332415862988543098279158080536297699050045091676463919584416557154287196680606910128426833569322155256712032187845798752274176116811369214747342991760594746339122205887359344149741777016879689357565065287699198167815994160655882079123489397343096621175544893493621563677350994917133083866089818704418416700298354863735237788794011340419816521339910868541129240836738283093843979273301649554098297310268542178073004996994946580199346497163072105743294266572954479426852294392132587362946311806935840026830014675802784018741311871514688143690305302734860109782683786752599795841104431654376466128385403815110489735232183245074750087283272046733720247233196477538017451058711436269446805457018541268986365639715005489963902880201033429700984031378102675130187052002008085447512555957973459155799044410285756980465467620201701385117851688140873364872002367485505407144892265655269137803815101692617989347517683961023560037181688755913418139570503028343262404072699802277792176473991249296327724505074419465349328064299618772330461397841161352249353349021464494224673673968317467552998804753040762969786223378697872956435079276830038119815928113610422135601078548923174663731942857970905489844633831322072729413438440963816987382328216460423101089138186581527339785022567543182913118817619548572501221798009905074731635529842476066658784741483188994772083830978951245192022838698127306452762859879298099433938499778531743904358721247037407677259378724237807037362720171946810829043569181201706236286578234996951047435542671753324791688432543435198043945371019057669458808297018232843048081370282646688501947830885305941116107536831394158525775495293958411997021726706459007054872368669482973727590589557325384049426825461548006393148706802456505971970708327723095155197451325885506454983089640033627753052629994326520058110186039798477623905228197085521964932119924666438007941856708425814649903313175512186537912200758626214001674964351659616394665077709733670174545886667269413404909287127511491634943427685526479227397293213075881795976780322687975665570338158473056367335104428939631350746796439643734059481681286299162742061532433566323962497238845170464393858159192681282257404310480347846326625922036484491468146420767968571939580020889463204285061575122787043130929155141217333306046418667579533714611574753805617917798796808544926277964226045350593489089480025891440100488816321146231678890878085436114345536188748184513042792171969413502690097762530356835497993330343265355563220719913236289211979572959720226489488623511224809272122821633070764930386377353751039201991842347636762690084388147466496956533267537309913258363904813410179441285897002074083046090519634217938786374313352788829561795902628721197144773140025127432865618804810825630984881233822285764232471780638845323570864511596058166761865973380170708381693935585943633078386683455367824518191074822408583069461786087759205106453705165033837332709021899160918612092062494264551515185836700828316194010249380378397152455622911264298559671923484820776169542278970075602803961367140703670143561049370963419097877568220478618699507707248735044473144951173109153545203488712625610653323865459343085451740849640220391079263098782390377295576546503104716250188148322474913730908629991586154110344963700756498735124347407669750588352551294485282810120771116708303548495988167275437857429466157472749467576325869401165026726037666996077879710911283798176953407724658248189709466524877061967669831151273361093418506850705583164115551129020858952702951402371190070236905659053724637073596925555753813996271178372901479872510792304885857581210217443547729007744953412874911276246829996587968398547635656280231852024684125612872380641220069061167162331760069859805627729226008387223634060980957136138937133249791677902766966402451464403600178432616972068871079930484754668787077814683649433262684544811142741933443633628771041512039548228477317677059845766240854025461802194710619396947559105955509975682121098792380533280995158886370477391273158158238406366432210915642988780981069431704041113402339220773026425331327606435120272741916818554784423416024433091212268196899997355512787798923720039579621070785340891760633468979031656047149050043230593979032370127469626154367343152769205140317528446355644724432647272185221811725691170957437939300032464668943923775759010425911001582482163304465506007915989086186378956420640531600830671390327378030970754517769146068003591746916619433497923983307956636931688969307841477434138781953452956200073413052596940848926922107322324263269175374325523439306076207026465170302424452558536151784783995175402557990189481010151229510952034307464149596475424068337776744177780958743139587001522377263328739943497636741060822772812832464383171756691199876593430143447550241706059651830439949731035480102554387004225948491841751809061968895699982091010314856660755037904359303378320562230148747597654264636496509514162253068602186161695042336797016850078448514190658762078792235569464827160423336113716530825109676995774076506297633835233494486694230345006436946897316531309525270611887869014884703098713649729206940184065164302853593138932066640293706016751723004470197981750367404284106704942805678249347729377787772766623663533811783755431904812357486731217341794769948685502420384985317038302951055970967043513986001792440980776110443295321260166598907502692400346832937193295675868505705169757546295351089118358693600864097996284668667619721734634544481111942401132339993764946890488019339318753006927053318359802940656324582673437462627258513166423045139091375358868111088294541374500992166986496091651206499240220680351458322592427202930278073751400825869171771452979406102002957499824421354242989702383513983725002172427608734232621689572404347935256993213695207990844389364619184026273232090234485554034180784981081628231557879529070766487610299295686673617911633428755706492286369555822996887003142921645556107894655413083307945480244472605921000034761080744357915421582054049348236301514315409371893400508536771400257513276673707980637322314166493087095248267800980601276808952678379616486702819487874788691035090375151743378458871012814445050311482962161511945460897563650799499018704526974363727402113414182810517345887869357335906938295318756337138252415623072709328288824717973360593587134803257701518678123644907257386206563041442617832225249286000675457447012316839198912899049895405633356138061891459123072919843893871945489422849114196026408036469508459948385643090859498683373334362436347555289221855531725257741916989254872184909836719666060698626461021640159845202059830914083015321508704383509949323093092984821233177032806108293865508918685324227056806220192686439723677770446461021184425364620705367885675305570333035999838159207061342120413339721353831451678384876671422843040501709592310761571280309506986747079495050023580351766846030065799317679572583600262930650476328593621190225831626284652613611438024686501366778051339817616500147262101979924085038258901270090617314484920472509115285398814841734554937712413674128725884932310315375148410932871787479605775986257703251535617532068444734724033415930675388294477875955580079153814198439418694688400694992253371575003043928927424118220892497084519260355967134907827932655068115971093281988946792087731665653327330531501940216597686969533605846671564386847338588015280719506625634299173602647026668180628857736777957042057782455259822127198610712199858905341957444826668139844311703836915772382559199590427977802821904973997677629969434850956391932746161730485281853406176417708651588151065850379489264056750465436158956447088503961386893086131736136757960052431341458741712782394423654253781476757155909367144289162185288678474751263384137614106463161314963898914272745536771083323144405713014146079267795648858005137963790511894168997865665396135969870779028584250676370919555640226253811865479956801674292182263687322403076350666825734294349233547254134966282909221751472365287738655899183064608655741900650118662391051384121553818183689951489001996299061813806935249550269967000664230202814786173909042828250153139911960012853116042375087963604732029251293336193883716935317259669852154270963681805472798063735463066798421223917840271796657184865947256865683577062662021109910133311789793329126748014300253068548542498438902217543232502003252737845854317796210665239658520516247790120672850991969581607787653293995160379200684345893832460821179734897796893616175744036232615556891714530701969407184587177093685970573640443984591549668592054212853250131152729025403581809788586580537579552436943668890587574738469228935670326849873701562614345014032844015981753253416166351942968333460814614333072502267779281288601838847836455942535015172691179015649880416617896952465684685290671493300446977254399467627639204344941881130430699849981614942463177173964589511256200752292648612213012396833826025751532683852287054924613811184204629764415850325625039111530489549145327444462193963648434649272418859817480133725983072074163518596443652569635945510077727583306180296950996489263625096829111053878511384656208882625896379209623038242460569879682041057162562383208457756827619747287202604238496049908371827436737086842883787134232350987782959575251480371344300507801709687137687357031608757227520383452682161597589589827209352871423956790761255237741992700267885686731185848649712818025895588515528771381829204011205246664300834739531471881469746106534360765413661394514945199704620512941835436803998362322388681876223944805953251225835622653104964285505766795852857413962631589869083012012377607773010317336278228942808356664223908737293181687168435545542261030652963486474221093917432717123510293309940144215397789872447275914700190668484793727578921807759335843726600510945784121184992727272937292385764277752350328474272480459543757327330121628231388926370898449145167898324006063860195996617431386666896763141797204717635823595855784969054285124234549281105337513125945864311279979515278189546620886573647417607216525724775759284962732675133315676581768382459531918099493655753243388395371759394191803617895555849089151971014165209855408499874056891022304524652102018484630123655992954513790417365032058355618733847777727650713116516227511116489253702851568624680322215208114046184180400504911016497902064426982794816604710945007840937957446754971325082155201703013846591115654893153216748145640046416957728371329085378498719411578508729403608775546854159976169063140388873604425194594320012677023302710960222317597098459514961368179368551398098898239293494615137192199295655794443798382851947684877831409716986275430936062363672694212222347772885434956542556555731664465512764695696886409556315764335605731532482014778815721950538922850739654968164634995857707812700006778544270669509712835410353227043829743562487009675440877482807183637361210056994759260728778941331761972439379098047226001931257444079195807516559893929331141183916148316921367218476032269665397383214948704308963247041456819498051090507048898168202823164191155961200093769531968506660308252716021029517581840822611341893186427883841683561636226561652089422078470612841777154045888939361327652013268916827036857374376085472373726233383449813410143265981024028758228615243307717532088338915561777031847940627908276628771947014647535155051153563079305037105655108944058149398845152211704192320548224505293068367037366522720149487471601119707603856752938697703831280678950861630060007903945680844169225340548867103218009644697595387805445015374030736735217848130359407390718818713671269566681720558703481686489823836597608046926655201016615609276094565802476349993408605841053244220795430641229033963610492701019517655950067423911770946033195388003815538280292782375978780594205680507258794530936258073124756612992798563438592888339164011113356541484660059375877619964261909519498959025733685257575144588499921544343042820429558108123453197068975949491863881711927916671136001853095244387188116828187556499575586728850119341329300970094424932365502117231563706734132647545923494826999618207746106818229589497405801902419110037622594170200975304066033961016668256297275338270318026430027022323238315279576012774428590286231197267665696189546814753279818149695832561584266876278665041661656548456131675205962199069789795865322037440716077581303551580944552848786418987404613206111419192707887629072952316259000971439131663260785527322625138282681123817144155691468103734809058962970560703058582742313652352318242589997840192402247916957433245314452227860797407489277367560012076325922836305235416569251632603380743596573713815376846407847996573315506543626971064539502580371533515057312478177241768202185819700632395832119419775749746068100072932735876473409734416089364663420174959426495012345256993865979278538835194644712197471615855628321331590310219210270671440015401869151588187792860334525977044080937912829444048841882205117453543475208482217351561932492368983428541525118698409276957424982293359012330745119866799637318983332400725193965261145003499285145911985799019872819119608249197747240596348785731188212089015971975395608161812677454722555304132578764246586757807410901754560151483390262038328290682507442118645742755760154201078290998414015424981279013649550325412624349187657336074143975976098267454299341506168116133438563083075938634143472080117241688054156808789016627678706417057259591322858847206060139654616853941629990603438007272445160912840717548964326438180199319796341702448114005380722490280772986921784029311050518457254288722058000548034154757425624893810865219961785921190909030382955703773907459082788630380768657439055538716377150668551253229734914523230939475261871773624006090053089199311332011128406270037886636570949414883991549112223585993602079297692079793774530281407462822968581209719346457594155987465147256265008250018482808499209478275180301895953568634327193757011691062578501971208904507227244366471351385104868694949795054035051616408121973108197913338348916124156301872466794972995624245039046573980305592547817674207136741574091328622487101945092317891488563258913638297442954232872067887211746774423673939416396313989591191529123799893912511046718825775954695579631494345147540255330590956023269922708545445834855581603833896592156495042195035776792263373884856508813457100191916383284913582459428984893934187531804401155708330736321800033574802474648738409770763428194646955972506438062829690894006341077522226788654423636103890713990775110842326134751432250060890029012631815459230541351459789938206792515618725264247497338211134252715414227478667281540984908353777154499911458469633661277541338402627385060518654405411696150333993758496881890156156301612521850380951771553273702545638301864482672248571836865210487335286175274834953158828220285363979652056148809716929462949851151842479995522271628740263369835536644222498874854495535319639788545964027809577595607964062438132439428940522470675966318287448301369479496293862014258534689602206326599748657034995411132914272258522120775950505373911285188450428459419544971067770922601907247486493585137568745932518421361341352445085722817087339837024672753838237106111066137446504247885396035848964158345011562999602369571666085139574258547884383182243489176848270428581344159676020883117846215468829415885512539481077166962388175421208484821042854506310918484565971373872629388770213543640317714656328582039262036839674585315053484431747317900931194967091291969196156409511912684185018579487030117963434579751399934614339638427175127247270542702047579423846178811400362003617423316825447366618951595833786342637302042391776804854591236181922709820101588205979273662102390806847213565090098530891371790013363855852964829947005214963337632050338406268625220809450050045187858699909903960930336660963211888764097155045016171105401909616842235919674366945933489211565023577428597464384993160920975133854861931582286061820982561898404845706087509066264432852023285394050397690356036430165575667876419503158681206861622185403210888351423802721343613369073222306705060580354251542897360757692308104362843385095586418213818517344342634656123447903388014011137047749669370945800337620863072391930832405266952265205158832322513425912488252599933279217294956533624300166085575885191053673996277430037955288959448679675085128699397516003831680702208911361978376891813090279402679448043889481782750216248776226828029514919178612227923543932782023419159964842819771891024185021011909987993924521861694417623639329739994845035419917210173825710971909770720057093583013649588415322376639352712391966126839483659376990146042942779345738085012707830150290759953386275180093073759233869964451702439899037494502044082276858971896272311717694344047146505769051451404435183836109496763426450547409287126273259181711042082874722162287947929745489919456339510010194901432938630323331235632529977292644245951553311002150588076033192930266178265889221839907649063598057162495130168098280123051520417776290877638738218151600167527258735545575053447397115489996102023881699888388691785951783886664958498377855383380035726284234940065951793822270526809717282176746171088312042366433435456643548763661630868607593646197397476786916282198119883822184698299211274705347013022280197011374202898413344083970198597170331804067104248922103663564952691356082036779597913165862229531119644787044842199096058077801480947379488958279306839075679227145905254208749788550689666318088173160494219808770814250326031480690008147583602842058209148974958936519214252478945397368998364825504339919263227093968394441798865753950247454787904532348140696985617019146978752087646345070253801027666666068847418933035115669395618870005405707280985857731726574631335280505125949009682714755405764386677561162489997573419528896852151174135344196695555992712010362311029431397428971249365760901380749855884454830195969644789895370299261161650365899264245507339018579350038573710621771421455525579615538205216916443574825916157804602805523202995408677356744428443575711106620153402915207408293334431200890568542507280598667647130694686607288592594654852852660141873695047225490254053044138425363123996253545871398082326977635392688397869954684797165835952956128814701097545066234419433867400798419255758184302891302599131702058504701556266858156031853059883937844780393580136232492702446102042428650972538493602061926854875149794602645701383001363461659382657770965421168772552343137091475113085213599920308202400613528508452841039989554481730976431271127183742492115699574945548394885372888321898364147389720021732910296984031111781313888980922730522606641277961123942479614575867694544400016599458080698708148854330215733313121739466055846374098587106056807930430915049871562882849577979865054189639227782970205790939490846233248752779403264330681265640890126144250370656187757938627024283182422437219801912678506242346509422077922004379915591833116343761186570610111428912671883206485091085316522045659844998174527374949841040583096563743104869346388938274017730604624986032643977372627837569988359236506359952781414701174272550594450771142421053893411987429281761730202243703809306647557588452392386005222297168232170950646202171384201067690884856679808088717893165388102113131971186050080330612343274400514680360011628307535177244436075010519317262296110083042853459393780912455081962735496595318245880779199580281588089604153560217081153676843078267929738181841271181970716481337178114456654850632877758602850916198644613170484082629626104170707663445499609836949730576541006244574017915575043038268425939885771481751627986441853989162612359769275258194906839471057200833478697213324019601505975325947198043640372013382295382259702466359866174021258757577297020672567256191115491211993116388210929214204579883164820503788576346889556496945616009226624667214053736631476738264354337721214310943069596396394650804008484583395695228429739824797654104977625143466994448107466546196692586515609646231425156447536136066746270620872570163114223484261726479445329290431038125875137017072433133223705394317913119537373235084528226024367288049761382575873961589837302445997836302862230801502016287341909776904773444581631440674623574115331816952057613405491213396390649449894208393368421545116665805375593530951031214085052933908911112504818316254120724913231985306023556429432716838014537323139292424831618507953692744165032607266227158783840457076132875615431649469551117393604728101906764301443936447083687789552591116181405732908342333746512898002244821589741849795054392007340162519861227842022880570428723096916066728611780486652747518299359246858965506876658373049004346402535659535602090117294397450851168794963129013805716585305127764239481160533062480773554805950644538221286922867977693626581385238387859660379348816516255289834234160585372074727461464675917605099666782673213658640623738892607857007328611561284058528551214313592030121590087885953321769063091872663880521025290719645391412217831205701248127129089950850327761249292274364066357982699929108987128826155247906901169910130381622458934256337684415179025375918529899315388226587586898341319471536373219478208636638606814915794092226046732864806854231691368774053948271892676974865943778618773203480921913010241356809908704216848024215543146564376868321274545817168812228869554566984076652928191893125001906283058216728335125293573163006678058815888041662798327856647692646762629257751845619990030448451411429170513474867214124645090697507642997561749974677628116966305108482081745135366225744383792108959839367406201049493804047739420744350008940664501671022142947622685067979789788722816463960346111313150652572024740187522604493828998571314350525233312465604091648826132722800837553184132905470694435807326645023140502967471850685789495938891111044078396231872792817365244532362787937901309987698409757820987843653919974985861054486433033288818090224534744865119084089604944600100166228218005714405728636316133221973247993165773729501977318546970811915975813289568298060470019181451003039963253353685381458380425818957278066833041667214860084057925604938363075960115921486470248705729523053580022602113520646498827495981895284360735250898472899899242341904667201716013517769202788074871056629762291049619689698189040876766300654978654215288425482023944179371085978797476961032891871524531886613563545641060182642441575902827808988803602540980739416703915513441731237683409907644588601923622218178978150595273453193695125921279071122483977933986195401016694834387618609277143832611393886545421745743227768621715563330857939915129825680522530301888565832995550409641948613259594852028619755639451033385757111829819388804691095750265894063453934739603304593322396977706491745717401113856284023323486116737200940094646649944954294740384932285502115801151391874380715092460790869879540774388042041756814863655967441607000816101795944111135737424414595930529645395708473303308875723701607385349662003475246766780532988572666184937722266524799155965352042761302713877132118738470865686244686977905340533895545654541752483416131700130809113111337121185210538157737867412690556023811529793647436443011162303569984266692096596921922438443960629076527409629997092221494820793153028011340115086284285136801699186864522824591547077473639049016869935799192760093638213678636586161579092029865087391585211886543664301490013569146469252763855056370793648902782784378379805667156287780450849969149171808430171336520806599144761110592395106807402550779368759338397158035018757333730301236711934716068196878504135242876113626062550514812434209698869194979510055089285287110873507249324441311894666105450595152061478863904002476821911750084819981064310463479072893157867622252876474691984725178460010455772999875990648088395977866363867148963318003636734056018685813022484430127857455755474864110653770174938481114524263540864318229268906491049263720160898966546724830383583141737837854613206382161565935424476222174849383402783934383779126100145661659238867698115634746289331141387298699824659563324754720055598917515220110836401023774361161679979899062522777053431305477037491455881228423645618051899018557632094253438964967318282874612570042344034004192201831502460891640458586721393270773832125926049772298509318619859946251498497639087997005490106506238341667928962194135097620100478571450368352153338627487150534464590037669096267327458314162747971214157544893818058808810971013145818622090327165936889514153965012225912022963228326035465832913118961551294150980982201024370092750306122108543819582964059947883710918649002208032511860245176744804880941412173321238753578668666766774739775346296296575792325775395612100885712364914135140867991885886970343830344547831721990317077596708936144555437225140505588553630485219372250435343978390903731051268311745217831431633609817743799583920984407151803825010373478851457268096852331423524505227958769824571706170818368537497939541041881579970322977860199918401555187654132689510515118056619551630324771661020503689776112155758938001991136936575588750744114332149689632044542640571142338794522133546068748444238811554622105172956130281300859035784630812554988316032083466012613504343865366865071350645257217335733734285719304808501182826137119922735109100783728120775219094386201558749714098554257929461535921468338601075455382386481744805568293585480044073956512723581807826927197769735387683101184317140737030517673551869273373974292656980387139741872430305013830050837170420581799228532157498147139412686162406040512398325620838594575776957662841740903317614727220522808213705141919692969771116013279915157653020569342446768299853765889778185988662106798864177224203064997193487190262250418450554624716354729651771884754079187850583445941333603287712964092012557904000893594479614771420500480959213673962351088744369934097665565943367443686616045226142268407914351987482922428241315212849092131683587656138536475991653343053170752739215653644495686980500003279572596332630601361902506287106491517777828617688812399191353282687524266243609976434291356476384484614581193188613670205251923519945189301227647210694191692400701160169332627025786846424359309121892718326796521727666649948325773681206693925561493832473704003083720977218607877873960560270194196772795156010075537406281978217667277216118138097038533537582991009436245309604055749149465246531410544598114501191316579708081968206882822011851435294296509038445591781900651142840932542614023108049206705783573152712939922111524458742280729890371044439468745155999509352468465640033209323923257494036245659838174729826017129567743274899531082921527052413404120743195959419523478171602156048787855710517236946218755595197806685174120257140870118851080460485217059524989301835799923752728752337186373966532901453995811050616967829983047662115475702767136656282573368660773272250835637705649581616596487069635924879892328466188218353664119724657241526428009288024852726907566541398100866077727683392360730932483543232804883822161765843774465024884435491309898985774475586226060365478048695780151941927140888980859997533994537951159254275764786269899453284734098132261632654125888966268137458939589556455870967206968771767418391293045780403325275637017450566385080395040051711336816988229588973928819053046691477209284851250800004453615390777221650352716498495995279364522750952511854086693654025160351841845614127017870659755810845485044253682339874061098691606368770441490186778808203586048064660301868309517541776786983700578164407141034188026133101617365954632974117818655928071774154875347864693432178033776689656128315778803073494902271857077538557208522582796741900769716390960886739006352150036723289664706860427528779452457146451843367663088919315713743428777785957205039903340444950943809420307447951362713651049462106047848206510552719124679568485062920479557153454607835660854972494126948320257975447676448362910327686337153475682144670943668873867819356221849480053061130264767110217135381293894762536851880008917192212450752298510999306598556187168348459329914434635199144248702658390685070169887665051104345506836569882524801186668344281567393890108665411562514641934985698688835696803839677545324797818413684995085833927910638872308613567195169157074605859050571676121361402473522314807852508373250881424895242186682195015919039592598381156931578784541262941902344551269926346993863544180410727443540104530770321456835800650357826533104687350069809969986273404608972206498093765986249830242777356056801982919217167142160607244721920582590160092306769742301578878657046870439345799496560972752632741334900431391035246491975098379389844203561924638061331963682782179440164930246960541179156390717271776573381421225210943976647162626546276513496282383007638290051176484159540778733833915736248136166794461923108866785698768629057994958261136438544800137834448281992473629468468780375080811523616011632097306051972476461253296207476773542600949722343844027272013430590535307484602609602239878276858064891611518364064319479477518874568304306978993217387095815570822026910936391855379236474290987648974330372450766902929657594330401515728274396055044040060898517955349545168248447838437116290419199184419186441750566682777057360075274451428550414963542749931854095241994117741858703299526523178069705649167705936603963751375674846182099094904047511086685690953698660336329535964257774723841618098227573478465820292836478855892013366032689166588230198285617333938193855100500118492822630871798203384515697398598458207323566533302804032674664270534873165003899521796870083847197250560418463811283402033078316445169801850461708480555500460205166762207290727414152027382189910604488917617078077983556429237060290614963964485711801456843001653500112498626880837338069793312788176968100619212074262905648064013593435928795884899240882161088149226570682843465656766386248167333232482377547107508010195483905190033271029425774154442579537886476385754308299686996866638497575058981066640438226822747579133320060960591723148387605520151310484301411391890371661967060951519400949491970125611172071237038830231666258387930375862003172385215420054658094244446543213465867229871292798244300083771590130933220611962520739084355841492190380638916848144729906088172249570136270451419050763019189924968534600105280266114738088281177303014553918783087680876740685486709750927732578707085112039355806944519647152825104397520413193312057692824679851636429916876240823055363625581621662415638372653207631561830612232934248695923042571151042311324798717225606966376123187123191328092704886328516815912747052108054885469060480514663668842196728178665645824796755014382704397505328896716281604064884906867024554032721053628809250226595556486944300459817403886480825492913010526211356651704804208193137898247263366077574396251805341741720740449413269437423872620148494241560949128458814774383792031034375577547927214352041393960752196859374175822324956886991915249267771891427678594349932990777774388413678186150150320118367287356806118913602168551302628423626773442346676685161821321520378901405027657124619462630244419011752732275003087578827698498861572005064469880996528105704126420312924842066087984930054130348705642301260791880858371474237143687938050012012389197747325038960142689541872962079372751710846499929708507279508876916763632692162373204849232602515471684353767599058901132631621641699650302731407943703168255250749312652770621879038764327497623516094527393199887543660221977523963588456163185694563624028892884122123084290683562206103119976072787018535837185074459050840203572017678307291880828746737470945986480106839902125986770160127206106201546619269212416131640206639307985392815829100223355327905748892355495774378978198809379109068599518485039765022478912288448313377481072310415928062503518624423986782366173959638940391197379836362630352360700342705813504541149209144996281736629308437882726532413997694587829661265744452309611205279421915567694843268458528285632192276669201840260482788797546051879480183088348247034220057095681457151984093783237860105720470660941891197092504023147488683195811576321865024903111237666286333849498219629590560088205603768341606091310589494877164300482970272930642469110205357780965039703619992205669657096504689988251470853105369419731199176760132807750674389923872950891701617498947292523918341146998551330055002554566772978147845165811699062941682717591296460509088570358327877786741409219412950939426708154349189713907835274295592001789999907274731384985137923494669893988979583329934636462126707924185468550292459109127837077478840534700359819746747738046441313252636963123310694782449255833199414739764206918678221205929059071736133963132234307425909192443757835035143936009805289848044560379453100536385455736881324885607131941112572815093015233239834209952051910956844406848504610837587285684475773250088211633464305858829646279000126542675230735216549579360297029907333409532777070363576214752797896479870136714865551087689410721584514638733082151310918275102987030860818528594252528492175267703872943031011960828077262305292225136179585628390968835395374847161964882411792650929370389735955045247383499383632258247561571010949919620885916595004826848435196402281131007570271623837414261890621177628000571119657554811005185226039361837334665886877007060326815071959236188348681354792531835712839896978300745745122881470298218446733538654146996222324981297180164613839282305662791233833927168054499355923871469028699867873317075496890978705985083422544557758767809046736043397955748516737515400064405228962134341307735673255800675009046146796372112804984176005847611475404941463120477800863160431507323442002729583268660401691378958586346822229574110549455702172855456378749250377830091883397961268029077024222867180315814272507792169109880285458604129181950112705435620293581227154280745796689845659537205450187302067477453212041909357534618163272166162328875256011072804340633783255867830483594980628852393712243214698453707566749736229612773911389905230890445746944487369528910333452217088701622000958123479516170646848604740521288705688372232254142239459038747283370210118804484575207596469049884691871888970456732363799767364201202473476923675179430672108219799581001883959641687940976541076655945500519653568425983594487445450835200452811463403334371655799310442527360715656784384227470712739585059765834832227162909336463529175826451186519453880801219181194507951508348184783360148768593837870777020674561856704345664972461078798290743712309752432499125678140058323521190791980221746928346356852698157252299738778095838964242094408868155600287888688862235336215434735563484525582032432447170661363778472632608262913814956550271965466439397665012865474054941743449895526067318415300537298956325863612440862375292355979833415209784674405546403022368403860174687387235950713576831377378272868457463863597843906216651206316724689151544171640721588105787587737084508979462859852577178881613676698988535909094282876711650895012611508671187393627439949490241766355977443229415426799923756369408925423844884586674648670728460883838494895937121512764854135677224097999466413167018719960972723593602590758493850525290826399377882816842575401222498777703663067859539758626297759849884097410480220454516154615078389386954524216113412722319029998204500154500971247898517088371874460492296736411985236030361585040227880611063458636399927051466058319552416082441253319694429222363735150232926498966203147207543509149174455455687427230620992303133774389711356464506915583234650394656503707266670093525403513053835652199864203042529647049405058385662711473204155355183743449342808711584543610531683755399142974976825693786469193054961780243299762384518250522968211928345600686455175831898395518685059667738356002751242129846358135384817899464091359906712471627224662284424373240252124470773427547997493817382036488690135805258070929345463562577935306864776766191163242537652849530961184394546592447774475608309876586536988394583989891141726332170835032512727802797756361047536307969127402515610367253238703040289517027804249549389674377639222153711483755089571235915878857494851025180768348164051432928761003412961235154727131654222135312148922927117833894116752560958859403891710176682749448040292316482581831698467657142827133945749375127787518826034839349830363096842465228114234715541418849813198768305715604758521648715528721240041917101554103101153538119843337764829629260341028709441286492307252594824811338287054456066458573015173183887873641918758962974334541107048026018450038978804744813628575179648196915775010799305296308898224343740610065305257309910836425762166100510057969752583158737729090412467428951607107950647434130555764244110800270987518674980155579216746867054410799127981968258518118871716603459758722798548034805450319092229163719604076937113259321617369106745657461543560372442108281903830019198522595132692019639234327236719088252508727582246176388673048892264307613912517123701823125027177975892580885733187177629711510843382353491769170993359156036800644288368856497447021311351951861214337723265800973952165884524452131961093523662288178963901234805907305468193828969824793672815215476444208088391533987815050170409355274938583484357004966816534436967390403516730681166976841688659554884481756952853534662749683065334361188736792779495266149990106965398071528347420315536813474316551946857630577900660243374416842037986912656886657596134124994701632510266349468848874276962736835182792151382229258818102027612260177841142182746965556500752200728729472827385650619441406842562988788418983629104931067694588724714526917166525541570347948416778617267476246359155672494640872901895074004680482805301380758319807285384152236317411192853095788711581331000356503060569656794494567717097812725066935727035468788408121494306504022522782552003245876664116754044534470640031021071615499197938301413030983211491176053273095367692826433768787922098179548420090161994651385579077010817994049106448257780229212696337015640787975761676649578253041000446262870030539884217883792222455433090786697447671193520182326251907826155516519625861744806574752933945216112917223016822931525491058805644583592882013707082874470635299933805958006623433977978825878056962741662922694127511031448418561910997548153146994812447217186283448651977125643952994508443786406464131691568667134910193385640577551351260582926607847842224358297638445255484097077034511333754516862287421768320518781102504845064721710202191279401630361779887377811708234367883901279926715556186819088915825501070442659991958020753459985838278999035712442369338259686444297618251956323291024001972226736235944427934928259906078957093220787718427940332403961346356596721944059785865356117166788868934278268571977809661936252674847446073349305924153239858998467333026243264624393241124891985689376457365614191553625241678213599968011865224120618544034357945703216843480303929622862181557123426120633044258691954710684682234754351452397653947986428876077078859320332162729493271676144431196439471297302316918701653361777759499402583180269147261514786648863658119787275126958747417745660053276456761306242589979867998978245627407338059207031665431186838210720364520176182131872108771162464572560703365158368368468140106932504023718760912859055287509730689910847899801063360174306717393972357481007478726940347467313517052865875705782900654759574844460954759909076077753540057208118775142704556453300609184492126524507240814457863517959903600073754819889182027722562393622142976416941159100479948443191293166109508099238980890793743598431459989728192330500823466373656703781835148952263058255521848494328588892769969834164997789414836802667432089596202287449904771376177045940494787046843610452909741377263729352947153536347093183508282856186999560254859249255398491670840619346368668273464403679626089168486192351207454341716047512197048393403881838607125815121044639539625258359279616508645812592640092277935864508812270782183107632016714165683000762382379388603534622149432874605630528330384314602438386473411658213970387402356986733464178282097171761021250131454056274446420670961875842544984066202320814957490095835293430424079828438794367894973876638052023451022920994184181480562509405813320378731999057959924660583313520499316329974541309523300369322635685959065642920152233736247941991896933899111494976974986236506684529453581843065916515292839709096201411413129525133868415562243731535047673284612335178892087640138340542419126654944856377003245454653585821485771367323363304618448396025905278791936269069478456641663511893574213137523270177403649065982639125883622427177297686887600889920538061606863610310738115331194347096037578139030736454825501808989467220702553259851832102198643111851250964101872264964456678045487730757404034629611172893012889698136524129680338833361644744075369132668947395609940300596081343189296383046401574753966037607355630164472269367394351932598076979051049205428311881091673657298662551669805728464534552686493166375694647012134702588112707762262754110442965582365817013169333089457655960479627971779044622972423583431371160189245291641874456497520861807662888006771027229567248761340174820313974969500163883548845085975782229796752844457099541149077028523855976727045086814870778010598763717707628101483543666386181753704164391672998140736384944346821680706894306979887339997962159464617504733486634293821925918662357612291322034501829371467949967008435013095046939271955903003318591101408715163736769345865338355031561010348109568630711346710700886449977809711997295453562595728309506464140438521103560335226784086120532714651676244527121076845728379835473446825569599333626785919007508590959427166253318125741691647607704594403388226419598265245146385887970587521501546572168723344291633033020987712195258281004286492566979340565547940020520522861529312775920582775123689214571542000339511185302073782166926161362069921816970447201365436862724646486307717536923203892829109822126216284382186236954398012043511575931867935187644592969043645863251529453589818595903408522535551174112135083513066196017647346300746215572389285078661397145643747329117368097835371078047825206917695110983890757897832581012386199244780270527878217005073948346956112324261582353392170884832370620582790003497808826915130357913600815257978331704208113897632339083901482961106561030011092862091613147054454365553160679421807885874469188744358766331692258577672740110378313053157369643423068334309115445631586724418343699587295059460167137785689199427706437205882450762318877634340271497330748953406311842284937610604854330255777059359736467054854150164138993261655415774419118497466146162905449540938409325304473364159734895754510066862259145926474205050349404674153333991258810514321004035885655454060799420990675046740696718290723453158041238384193354086361816439737967548034921139556711890407221562697410430641344861274145196874340789189191996820077587481803335460633703818257140140837371186008513756318349922248420665291610631601182119273764374930163800080939653260970381533431998226315040887568073514269576769450797825828325739760930415410721644434601055103135118523087221338161887874257093041642143721482415305019798014658844445893889753426430101701488551356207090451008327860630204719780362152407989378000228852642060751889748726173943388809360353498335560644867864508658347269563680641486901021677738573311656618903789122066651008854693937209941782617612448409970419838328993109232528420219874582952230943212335871832491657276218500738046035384030995557217047265137337085114013586032745556671749476136807560941808093335898797377428370285259343524767420900732938851011167008333921493778227039598887615011358224418307974302247754166836555579809954973213902824218567175947907386127980101051407135789667872371809473560192263957851720411340522711730730480865702136230624493777898120968364171249688369208270660887247393634289452577651536050893600010073997510078804709882356291398609548039984587779300593676971226775269889674456707920227664575001739998161194994390804599029883027646836554288727788738271752654519235378985644735751151333212290452200792290330899630488081079809633300202076858801471397159052144534113014078180681403015506402161689862905754215088176622051405506290431376567004170534277923452770764001235523454200892901427726394828106258625248952381109567223799061248770566548556845345503293489616495586182996661606944057288398888341043766923918781546826816814994594056932589311841173553119880907076024672928329095178187919763967026738664611886157276601840583588307964193211272769519703192529746745781526914592612513469749434707214594261757803825358978231264637707208282152030489229390895518705351865204496857268099238631833788140826874193051455722855498374213097519101182579207018925232177638620278542327003063466382329623402099381038786093324282175338958118549949857864610907398453302836602248502447307304623818726045654913864908110092145314245459635406937450528890301960470779830198158055107930371319764729654132070232496506238941440746933030524977401481362860239538231843107714736393522247190062943020942606881208348818644421587952986228507545893372171903595672851093925371633173162599441936774846923955301243826704404681702493793939202549389942404520999165428930443881247385723999764311491943317713186663622326755353871211927821484696294623677894490229682435309177550498243134922167946421091323251942375464736558746863776200729679379646326406984124755615040245270109280692115176989627962767459595523864348479065576685804729815441799372751957878557653698732907409131248639230755813180476008141088667802235197385946817498524963834611888815956840922789962172455331693701637739866784621599269943776572456087609266144457095287703238031378064732025243995454486219884874050235304227830236893889856443515394999120687360199443312627469700667112896312603785194208157612322153325661835850275838440474049584507038669753483460097076126261136357011992464874591921246632495094401098764662387555056684669687314000069163200568439304475937928898476776367767875397489273816282521638615730557162510787728011447969704554747945355936167085015413625707815625775702684819426879549544246722086920486432884129739261379907729994773899390060052647319184492219779946284514348765023037818531061962693525766009497140419887302342932475494423629271819154781753204059372696701053466603964581724975927206025323972453835370020150738883631316831052699187762789287265741806799350819359344908183798758768810760231229593899619568049019287537476862352741642878612383986837392086923107322498394769272994993733686277381516914443926814572442836617800860519617196780890215066399501978485145535584800118055245799355243918819927158366867862376653169983352436035588354127613337866355694564519353031101161177777772704124453094209298995648045548333066979311932778455722134627034611701504622338025986519543665883380551379056328047477242726460135915812244147198374666417998633950026412447868038609005139859904382217276160872631445741782110070029423742816225467570870890887150452921205614134799743576998197896017448127096158089391463886061327471838147046369175098564736503742172483507912933455452793815060058244325309231951934375881123703440925798072511670705876527822421469817666884861007789607634232375052386821785826581446133183487187770050237121699066592520609764639161119765924380955489779139767556572865772045720459417215583893075353734623411196867328934087183257983893768072816486144575382821573932207390639016035685724655423511559138928947206015672346258882460721888273423151565180575688459813722056393933292710602529755218850754174049919299813003624361678912309844935076941049090283318678980805751741730800961767696691917689719816782068294633606275256864916051567834207871940658935906571754577405270976672871617353629413243517109743876340179937083965109686002040263733633350282794187587082280944354254618928273336424781478424756765807960675680819491846502733126295749796228823899281610598079602328316912483781691343394828384908716588220700650722673016240392383792584984351779728107254880804742264393582387188993137582551642133681776489031589524350908324750368096783633909905478908254100087995824662009016102868349859293230941258137518721227064590512257710002449387220745055714627876485334253832735503292123406508330101162936734356565205753517772277409579416203557031539528895533575176065298528925796384258972383862815217549890912559708570032249297406171730514984690982293902486363521528662471215269604933273534134270713373927632791434035010735517916032078094146171430520795309984937577465847117360855867368497182961114219065978940743373368115956835043113782276762641362748598953846003250960909494300749633405547256714761812394355274267777554487341891994563402132161804658595536384481554938850537353156591958401372348113469366454598527959845016253780125253539066553601757069480801592084333787576922287498333953327796253347822032066395589337909347165976901297389984650339209947771884164399457609876943180024335639155077834169498247530276416506940931193766834127945230380938461820225797003126282897044372614748519203334736279444864524945005109434621740139079788473443838775766165476726837498206068194259025453054944733924892628234459940788970856035120959945250075959723610362851684850858377425878128441823987667893230847525987481810343011899318046867693204988155736486850237290298115431172741281568034270807013130153528517842565890956968535763632263702016132643739169390622432705309948009287698630789363551073598388155372964954385459644853544820796494244871051051728793432631511470747327958406270165462798943748670104076542072425092827661906426717675613780096855690283385259908623080189035165791284171545971537991136106666347122134141740264945680808228165874975677804025049451227982408217880061409113834788950399882032632478961952854797206204250957618085800864955418389741813827424584521149505276919258082333133052657635092468375214298633649019316234209176373879943925014246660850691993931289327297291681003548101290618079202895193167569639705757952526060078491014798267279193144413667519911593126471226381694197201631372353226553267114286476301764620755347131361086013957257889290541428634102949344118460209139996568331198971102092206236344006137804055651812568263978702374367753085054876575603996412948425904707951658471129897527842581943512676988667671160585413836950501402096440777011328559126916812182526964311879547743288606976376341510463611921170202490234363380989051940261643059366220555756478910851745831811840157208193205899353284322842971210999699392212177801691522721903399849371757073276881406977531374068351567040193248087730104412174424792363755550381091144639113647394107518606306044442621883307098934884573233935642003154058084641888475010282347197433582076322139782531427543870924571409445669948870858969899952590117454259427170163060402798836745222330656201702920283764062991636575992035070882458219824348223970057175382896187480827493092429783608607182650576908065987254375995648181897627409897971230075484031849927003000642726978125004379868703443212202437813305843125892180107538163240957236282564901299580076386099065439016054171942045423174452740109462193911812486921588239766741468109949909225425426471432737869205626450066387047269397961901631614628087137998005104873794870572299070095188814318253222109320347034138419804676883402298297570435910501747727452826001768310064872205805493526400228460496307830018408516091084061891344816135289585158378753904203404007921675805916404053738860881876092302343885763784021576773593654406343147784731366279628384965535889117315332739706686473612572521631667122633799729911611228248360764289505761370630823882007443761712121728463724830573818008018690568150507357236642052097736745113041180325601140083577547878337189051376299493371879310607909434457861523551068385216431627634610018569258806336632011782256693191405167394088671517976273018018673070464269096057168893122142179912952258441666170165051488427928078231323255967478729618195063630996346984805349317094050342659048331864213530633963375768278517412177306311281770676594494157005175575125897417862592325828688322124887844355037284574561211088003212447155234729308783506579525970790917288118784016984291230472728597822670953081298477889454358182434262527587632577095424424445784000706958887757188299361705497875818621798861077039530970048427236668752668921660900698499555714617849876685736886039906165483551290467262827681719089864023798473834638802203969913581767443738882656987000376387676740207165047842732163725364922417954199202865855287149229564300747861980303522429641197224036665532468118098897351508410979212889075364306325954056923886988539706628511271240035488456114131237611745824701582311252616597532329471212472866951053474795753590387459702955887620667369865415677055696069863677635098393192818163457534344713152143402624259575896496539488291044284713757970116619140506290982907904729879424631047697037744115179916201899649799917971766852945549859132045990776315682395574735181923933568508494196226904390908914941884219152257066864254669499294086586193684909046510697442909804703652340124634539373612474267706296182772756954943414457858736192596973785278350654677678496942446681233543439667716542445078886395803268843948464473882368931283003943566286309952425090721379394647977240080008432922572612667608597667338816097489721833931401561788176039202002508330767129247054734452022522225519525089590565153217193560574196264842191038513927691130567955698747809243076982242724039704473840656604997107705651274770838244389083844377342879798940228745604843511321401280854079020961942160341723791311957440558235592913607112272864943676349649328055470954469564647876538297313294015261520085151065026946382512627769103132093097519462254515419599466855467268849899050944095441360968104479394244366897550399574586627745923448698902988165819923007497401353193505686866382786644225836698417571294340814918557637351154386885798562411666809564502488645433686193826538324065494783599844826864650432855835442316059948377447854088239231016487301351689907302676231433916679961421018370695953640547545794428023617591204524158172446430677302262400952411095803479390513683107123893906702561334297957151318524402075233189775837184484245602463739596053240131800300432537543828257101695912246240618383292501238358551674470271682402406938868805318368618430306544978019992362604638073198170429045861636923039377317533074766423065125822535074133044321378962983952121961914559193997285683104382502387391086193856877233678162542992046747134427077457643982508740821069582469316897210109339414050617184678238040448653815920594734142600049232654242068241684234799297069260035126736235191365832228111093799053211771223437025537000777670508143595152316599173238447172681491617288171953779830773356373520037623234760481002592857942754727628855232432689061972035645372380667146647958215605708814976557317129914573260837548017855936969083449989924762425476564600300627951168942204487857581281183142502185603837946951809786829905675058506913978535960136528134236878321975189349408912909258434727132993065921722577801013643722573786317778011083061407414142602221407971539068534140359449104574511864474227425644155179309627519096807108152430476637642044880870419899788801940967970638048871913069791353610222147731161241648622618975229524842600377319391132814770413482762327368070752188821251521073842623771117748202564436606407161972099334066817674832209470221654544658886717218853769190429300065336201112522026215779502476170596610166568007451771924461710225958967874840523483551106193738205586510791126578523092293769234477859783492941368675392389970704395382223034590753579286895845007953037918913650937477631592013791217332130888315084288444673602111340687887074882986626118305738288884614726688891981356308604172976111266393409531417026334452452325116499911607706868790596741907571582183652320483369019031349685063921823799960031532406864310610999585931829201027204023566510750235429458122173364108115821642554474659163926332475983318679784596151856551488961848853792012222709064488951748577529939026212672182977778067552441690554221566055777281489504317410205201581785163896984633298762583192691832892367229120672827981914366031200504909835424270251531254988729071353299856056985766642472850002694839512391308283779320788533493756352672823383188923402865564215296673794534600548397945304913084599640433804946514327704912901301154777008514530750448273910106510489375135027261064564120844152665720487235460282487311253630308895293877164549720462753569021203391008174792790919628930078909028829798469221620164119916250438668598714084540336767739764778586881029221855894155227084674988256861788640414108798184860514824825389574755520722359706712163838420070358765463455358241262546259819564869805835507886720130412966629391335871164263712015899626404856087173993701206821543484860125516282430276142611617836297926539297364656905214184297959613672341823604074689858356645913862799895138339045013249128283752259280614864676323507419383738915456518614280138276792844870580126979437891314200686057255803497118518407310212955503246811456237073744509004256963371723921969607082594403474018430247823390711236219269734008411923005856343935067423714634771804711697311557476911631894041917471187088293466743273799283484620157899753777944332111018493324515482080419847715017064009324939986291593693424330622132742692388292922555242379469273467937639192713843324126441327118414626672448262091828603587619529745742480441560510454494389116097146415254057008508790153941990648838349080815914304270984872414915574612056213215161387438999485448224130065818638184749356213390178188844825435104878040252291939043777369754317410530144706004925603578821997579814443238808554592585321002855807676582485407176064538312192872470424951586469745127114696140579678623813242714597014282486680537780162789626006217743392974323240814599620562947774917523520281808267912692195844423600513475720934860168935637188339720145524684754823232786117804463716735825257538173167147386526939394214069742923659700896277422956790117442370771178792301992993578662558769812366206569235502481324710731620335633057189964625044547520971329261778594980853541821766410437973403825369789444079614917575590188060858379160438573323377968072968851840561434346412590872269903480805460231459339037090041907310554063033453203045216309228620426661452005531079889823443329755397104084207100186570601818383314737629987409640781133508416853379788857401440806050387046312393261492028908935812167956285976395747554354355145350655918809773674624634060322461128358457660781450222852575635658574417148816064813476728780576065236385266894651250993562145018898397641329268749062504948435702077170526538593447634829130343542818910584406871593097124675548271344218763921070099223201729288317462365749220887220060975701622054614033079616592720290061926574709883377122619471101545013623052268338515750158355983792028856430894630481980001284200831905289558396320886036638831717256827651953299272757548905274596901290683845205437984637123064479758666342477947033064529061845926908968728689781483075949527362026571165173831997359186962534650152859076529498776736345028919730071539234290216073396660433782492501212154318998578472027283325017644912293518568912253808075870575037244929172707794612055584118329483767333235791664648904396313990023479503809551612487909668036043480053463911077645159437181164457883397623178076271561515402970686978281993197664938509001907738025042049498681562202129093458847145112577402459084519778327742421650944397173993024106538181561546380474901299352833801955255810195879924194546836335435282233661444680326778487440870913485348896426593754327407158366398427289890332130967892618463030749886368487200045793685288262243469198158622057528085558491395240293956678244443346812974648109500548885983767931659014938359249455798476364105445521516368943756149489122433626038860723805936621548060071547690945030666195950437090900613701743793728634592695391424150544001721849226049335467727929256886613236618950019941419699881965399504319881913293287368540816718423370896565643868902114522632420331958557784131118403327065928185448637237169566797492988307496265383049083375880034219322472434848237040029670708766920364937579326219935465597510895951985411510334174625634688826291551703480896210079779310639187138015725219391054724457055319017504097463114117730366250884767559017643654087542295918396964559805236096045635859897189643225609509381126132858122807623211163825597483838765709455123734394108979342305736991797160146117647918451540776391654764715760473644158027591409193858092428401360160761488864755140266257532650077879155274773449341657937745907241984664545136926550681522500406830103647051492819353396809491148829217848984186181912359922298710266545247626057773041787694900039377117473718041160495359260936808462390249706611682759607435251883954936388896708538840465798532522286925193736657747275620945720748914717213738385074243506130315228708275376486903999170499521441222115965456054961017860625843519355018437693861198570144210596976020701032360890691810676768092695418321485843778690657904515906507394429626002140351658526138334468825105361578218001514540979231102522043940210929095234565370898366920304864018949112532822313360586838611997932100169545030646788544648430754106864869039932382289660695766659126989632715848186090836107725302623594075110986646771937117618094063848766292545360515607047517300634831887978897540119000997498931580393580314653918133792489652586590742936797226713347759209297617519503936996633399014665133534575445508470819360989117063163146749291104497141588881851546538287631280220854682769929815820005200169359174813486541560421453290259908113123032766459186495356520616607087669762129207708976098904197155404258392497709748840111724430105912764960019206633332643756153189289389332493179158547811505006969249589126692490804462378751243541327901296138791973227942799664177063235674748681041914378895403536761830091573231143928767431729106921663943370772764008188433656058113063126783891424217886111042112753356587852481564517115750351170551297143652563094348648001707635593680264117961683852403979546448205368519061470864202252551235947208207452499630429961445714090903033700912633242855005485518605913944660868514235178140163505356330457936900175260122889208368986717172837718867265563500775732320704852861005262500898525065031372448970550134704595556818136798934018613030102983147316738375879057155113803883154639089990928791615832276607476206130839557903967380799650604182544811106874868127019143967757068771829432884734784655278364264654551470504756800206731771261380085306201872875362754286886524117791019354474711852876058247801843636698300253608781948979966972164413741950146987054708576379652629614573918163597323173639832830838689721182144469022770889495319977881031307541925229597263818886648969093844157035922634524549010759187046986445889479244054032865804798318634927757898906524053881714821894764239049380474658796980809968787299164367784839116463796029834118819425036597326889990344583240148311951240967909989474032977317372500230493729247140402259117305417503993465685545284568498285232401690454336790254270932511854021564485730631469093442563743934469084154710621604260095431190899340951388270354199780295892948947576793722137375044642820608683106672473175505208928979598599547795167580793771064927985936151560580001497029679968999553920260666215847250857460627658116553527734081949153133932006666692717937335755254694896250530652337597328842006381925650749024950947125184538852974150522201312158599902811238921577635232569569384130902271637403078438951954451268125824642678240063983835636040791813811003271943220460826026343404292671090583943199364569172309292321340428576353932307887129426993401611232702008132627981710801705691765392688207744061913666813999419462249475910672780353892213726794605299294619064020018608040364725545178265314989438660631426115235100577144335225116749210592246076411174578682482929521980186121958706758310045254419377522054496950112564592114406823264661684014732716038857857702081424651394726953979019038022861304784907436790119718648560456472545517158539935865746452548244718134401482880626803701682649456538789969346836602481444113760040288480290923330469068530419308384362661744448680957832735138683586991117188779873431063850568545705891003091982627868256420350521231153654948745196399232185725683494154150231826936692487302687702786687501567277901004479728588241146849516007197554515376819407040012212149036346504975932927350683451145418411577847334063209847812915603197992637084433901563932063455971026509909240466873366043934139868694176919157088526018193431379217197957162124993542747452196959266987550816118740589970035587800497377107216534258347643507598645017114687351719923307766415723055094395951827471777572521239837779233724275762597226042926206352587926879594262574110305233241239125654735376419318962700969628311952775536431573217673375229306829304418150820371303409604160086905831063667727839130881458426686674141507220735493980539151330042781692167228566185002827851553975656293001362606850582244319144516467221847368907045560661888298131133091177669168424368299816542296992406136968637397452226272001125091899190184380938084804429157161278349399508944494033101290908851249866076301990347294123073860680954330089990734511013599649702661924098694690615968659822391789637268093768387800042673445867840397483819961662138908005584898203763830416961778644179693257450600333877161726026610147348813747458121777864113516274444122968752896065663385160961032995754946543620258777575461159493898364134990829951126859206623892468231843122114607156959251760117134747927034250557180735759015491183932306605476592392108515744406702567119106141692635800145008710550851519414814188478122588239731252442748091460075736588921264048801794415956932513281663105896883386410912501429374549295635025405757242440502118291086639552970719156963754762456896264791352325483803734368149232828600385192510152573011555380579942207445558540554815162596453443379164872526435002368103466960695398609319965864412505721736684300483836590649042994576694797546941868311798966535775662725763759473508377580493280490191456127038848233300281645534265891129314911080563309762602583515900901813222145246042413845765030267994858292408276721637060742047556778822034930556806121307594880602159932968479873955297758084323596830568492753899587436248123586288218591263264201107553213799798870183662294181572861835064627479599443192891866648589033818983499365739019832449519052495356788321082093315497008924955301271044473778587295098133128598930878546946155811790927940388795566200107642236436078404694264203225611962589325269135809650719308022463818305375437945305236494619280746951452470467434846923670043322033050454403283151075128190986738997752366323294225294926279889496325955727827607011742898228416530567457782197394758908699935551475122003222120091561359714877250776043442924733243177248099148541498813020418185930821719520125011723109225746322302384476563596913518250929125874674448753962593236436371823680093463945645678929905027154858847816322084868987305227244973546860456696459522169082040984210291048495969539390558776396975376619101162448890022290890876950467300150247668594034516488447775706949039575585779325680833663606734865231747523146793702938410504909119396189034120706162989547585696242774524247835907369074855274507578015880081945344248832384586780597391652932971092286056615676360436562938534436422289529403585042455301975155280202063878085238295902495412182608312099595394607291067642859829281051523287594478423647486250774100195391202815911803486979434034573143158963693517355894479506274660492171181348517126874876695337521603901821616648002249166986711839737926567657269912998656861905158523969207947246018631185324041386247040418449439900127719610820195557108446922781358483512156434642638571705076140064622277223535515815441492139173233646782868586250114666982575026368010312474050062907052408864505406122744849004782384908240135837923477665104770453461493847871888880513634524298627591146651528685502583615855486734400905935965192003731547084849502791313629610077098412052354341908749038468672564448225512166585594087600601812589202491148537240623680931665877440943938042469359525677290677684324202939317723054732813124941967198959261472728161520722925976682035109235186670082683962617894097621897525222985933752061704857167086250271950230928245133538325558263657141266176307775519306940200695278086683745793170562645929331927717207139363397651937648524631840100953306009812803677067865552862890368766748142265436462044617168649110526740268400009788976163897953595711980404948130946077340931704126057707329448170426053386913184692782735007032970979166285114936708723129758481254198253397470681760805987511952933091713243959410341314543619872874763616843489436079065802496371489045358705332632222679527135619276212267135001714751600772942359557568704511714242813625284031656945371202030187372063014149970691292793613528765318771637877033203407922074740035550376765287052637190022087904638028139842510856390879031273641493988875930303125002765158038954100562412763373257800499623593103140092333056724379901890014743842722992438713597079897094433203430684321246933806977660626957160882452045355989301694895501801780565234753470418734282643083884858561988978833566992599382018922585000768374446708674240820932938912592940052702900943329768769594124376974483395469956890864302338894990876096828234649054172085788906565842498179478484113538601253664617560719627289368836564728949212207393193226272991028783312459012655840819894536075840407259279958395405992904816250316326179317095867770292086031985903018091615574230501639996167578534750734248378401216705480171915126615502293626790791687089112016457176103079460592715439106293334629473590971220992801397876493093340979217522061495649955539997310544166814055005140690162373755748478975691774489915175886953919763042722676204003724477117725191044458847824417583287561003815128246195551649663146346347389285377470049067515054389382925472349897584765989721909493609106161105016851839980109323824297310330435560616838709489493001389401807051521010037964697946736923664851454445427061100683982463116851024619820850329281177238565794882513045036172444013542966699941155461935048356364349307194342543091430508080376959614627924417051083207534495786731675433211514935131068975126909355899494780747741335396739836810206209874251042147060225739095831973664611999638904460799603396746726425685963142743182281979383452951331686842983405909531486657772823370069360450488232243704344705055599155517842251543058351764161438549396481669848746775412496127267810618535827013486473339850185260964484484336691527457295232773195380938609773537507121854588243498191501545862884964595416748340098548780882734813785848840637036997354293675362336002950867241753615903931163909530250885782163504685733331334162333642968641024656948165359527359126080147569043466850959889393886592270004474204196964692570242032561342448992222619180447887130506761248536345701809765165512804734775898865335225860201110451907163231330280543944692697438802650989810543212216049308160672627697842517685252516515740333498070983254865628719933041214283343200812484668521156495114660462529090082136167492176911957039743078148409944556071549377780826803675095246432895790824438525779214638748230916758772861452436362640696536513372070224927529668308184996727216440904791725238521965666125591206942423415178525391058820975080366091998196452565696045614476123744541525890724573245005625344243038877338105769966855927079177741721967674195497197967618914878548895339775072660749633704986229603591389628095285723834246305911767538510387396392567135975871249623126404647710210168098243372446452245977606305107208724867780869518540162206084413639898255438830183059698125965812813785726292375930992909750528657090347314288007111258345838687610681094221689447447168924858955737648357292950385224378474801745066383096192223992133847480029188903796241869674505699667283290539276934009671704143453005327898495373989474078767247554932669061656340302095603493369125518187756786700344724660251757070824950277307163240521280808272044128831329894078679246246259695614434937244506244493621738595966825058653826881552336299469860813163167609952507089898710151854675420536784316124789366922582617472233691023993330463257402531816884968525424873402398740411456463899615153324012218490027408417873156353389535457271027275138492879844630992218000394809556973845056119656723013286716377145074081768434797188016255701903163375522094073046656475075580687603845876144402115830019854314187571969529690533664644057012364262092743643712065450511762506738153026077462296554330198080531069436662269240706872114329208588937661798259526538828505837190419646344487094482976376002205012587630082869762591475819495961557642329742149234468159725914541440336111189153319156728793012138087996874239731074048763518834403019362042171590697062616293624938358840130972380702843760060353352778178840714250687235655584694936048385697175675313234216320290634426328021031245529072253015726491587211399263668093239648191771654268545242888471975607537763473184115360344796437050011556769421622217393748024756976608917690598762807152026186273888961072864179135073043542822336955372031237968414024213808670472446098462462121277656506413854882247954372871552154272324234661493407747251491193838485151088152034385629253818064437762884023845756108838761147776094726888389116279477837581080298687038821476491442533821535561945423137609203990222319219119676702022216537086331619044400266100561158021130304894001324274590928315317795242544321952157009670676696747368093935591407439439846933827531113651207908122965352270617685907311438667167279738536869233951216646161868291578215556008067364541800885773985567886120367890267320866890954696038214196979784531513421595757500720800983114841743714614887295584962231972363642461181480538931798779013084440976680924275441550244073844870999752961339497651852974276385299283168291582698732444606791386052192792648091095835262072793920414189023343589365508133023815715974746704467981617119994568245580215983933830884979298828902017926862273411503676184997282745842883372700230217103725855854923700210822794231514650853261352604173825276441400106476107770440052105180002888052463141990138276724034447704782009233762243771971255536111501124425311179784829387387185077298537024759308542354738721268437069312757356719662791372243982816723222276518593744863582325973816696855613717358945036344463347637808899426175068950721530558611671459885185661038245533391459520932218735459364199767456681596252873034199895956078248079088112153650174345783393814530785557868300348750504984401022494670945713637948280325629252727689162247402039468730668115568814802021251943883386130277973098657862590036893289402915543030388164391704789938088521332390696983348179406548143028455124324033336776637937574931360014504388003436835846759194268590812214896100534634313971905314696702218921558673109150396193629705399820612629207788683624891718382509800665707410914138017358608565541736200034117898372512382030566172787133237489936580834537331482074286657334189943456012420984392728300891589262046996546009384673882887776294066355531701346930227114523934878433255931237145100565868705947329852386857657165909218375338221394871776916410250128521569074872929545449321749753855459982073386103408434289536870559821832643183736876466689790969592841067532800736714830170598319213158496438628493754191604203058136572967806954418758839555781907995088174841585642538840491306487939762621218415001797798996676308763602007883584340757338920831076557414196633880264151618802030597060646067764254553647868262058884031407689819207277238772256399896824856218986401375309864944269481260402742554387127565334837759439778756732874006624688701062842772514120316133216300850437551192113850083995045507595510110700378755000668906225172854631529514165181835432067371875556545914469282180289824285722107080303675632810754410386960317725387364720279947179319468560100100808834386139400098031362940916675306823430370432081869772345379295164479728726906013131155456412409102799829520472329744978974393519050944489585038358258784077077771449308267815287720018028334501397361861559384786373566247624205349413904431877142942731024142287316052262847009167756331524658530476718931314723923169060559681278308509067454314303704866103720045168281658086143889084890430486851147279486504724874193127086323807374282717594607332492579862158813510681471214989187689308183282874618487236143566312293747828945412998082707473184461841828263315324035263275336064522817944437456050312537164692277767548020458686391876021697521651685719235568128668181251398558508549503494144057716645418661389253381793372715879393317754185178900457946015786355367744983770183419538222773207485449760153926195379036231411692860751232561020114603375795002544667588752507445764677753365560802459765791872386431665300089623265570675258971168704903735398620924936986718741649143671374248073820826568435136486854457318073376188156499313189248895109171239879763004427290277234619572045732901010870917913406476155210967398004780978063412243997425518720363315815521246298892143775636172762471526795991274259855817413426560835768737993301794319456633639267374841211822445789109468104079933319182933718787313468063553773330658359575377860103982288488209409311974955112058113013021551293155768198299607224539855330711118973675047562289980553682568840472872943245343902716519230464500486247612683673073234854653400429788174616181054195491124694829985584357480069599191258309036202100510567263682298589851748480256895395324981438475298306259427449766013677378357753544457943856025972245257437139208153828393308336983724056675555204156868824887912505838572964482271762100597741638406883162703937322933075982947582527535763907029884313171737683090264850604672236316228360265995025762006824759262732627836342977447465220626433087492786159682519221601288342074741091561877773420578016938265802113202255202939495201138522528167431373571980744041725346443358729763947900476928912683624114148961208015990782200611158840856831890811767788498464951904159936226389384806940909828809923819069508104612997675734708939358776392861683830875481386758259334731993210257403060946077123715160933111351012527409620103268212697843619225976803020755932872147693407755142194005525122862632515116214092582515877610058891469843667910607662934245422092089379662415129164208497834305470926558548421236272492008930497265534925872848028218055405298972768698470295131412144821049025415166660805065562667471294565138153897213037887320209081661187421978974131890928253367869915027929491877935907197049125395644421989479552922249125192711869896804389503568189160616523576002181079717605142849987160607520363766965229305234226322375347906724282671712263692341726035957398439859418227407580495093516756725975819014495548377697971528266158647188885005216164807191868210120081339382893512501221188233474972394657111516125673470509764118314751349865046516199609219366380395323048930052301043714757750327901772934102346793697841867666613341572298487395615309549208218555241084976947190918376057049707796780605681008702486709283525563831386905514228284243523267910674231948135716387083511529010834523362738240893777127715675315907664838397255198679663540771172772833272739077285296540009284427445498238021277988313223908634510999460398462844326155516188588403739873477899707769664930672167541787363204674846689275578905466285287797096624298209690063509804580145149684572219949754457807227338726628685111795409951054217450480187877291027910491193714171112230032671600520219575701066467386418837164208679132315731832653120584713022845415125812262714112772605319978533975336697330968438939592976458864356594954708311722601076661308352862279497977020505167486687361740589612694164143044999395706086492477824399553095281328440178935471517214170578848163377191663408120419899990055530283359814107530563988393136562303815044211384357912052936926606171538151118521334769083130895516328666503697717165214457023406820720498076223337293239983511924262129434339592237679209470779190894949853298361932697756889352249500777369402299890690189008933435627125267856857080986377045015902554811088811568387297410180759722226036037256825203133191441422533661973303205573890735923599104422665741880038554873911928015376297798791071800163512595786788518026242183195372678439908039330929754485239043227189179464116771886383846142506905941074293385214216891614411129900942989055974992820835671658078748053526763709787599987587663757815113895706081089851291748428621534545132287084903921868823020765982079435494681507245484762136853532682166074320525362428237352181238936281344364895400201404221873191369532456058049003119298316425376223550756419309565355032140582025266267453883818822751701183977708868709293007475526835454348502384844634091162307839579222533536547143672895258409070111791132150021782868150737786114916425810249917273126308164376971994062878429333878463820554350004642195125399042157755543640169136205598852186305709893495891447803430945340143967315610096511571738077026823431134771138636951043730195329415903669033074170130380568799689816540026190401383937010785746665915681515797484253262816249280009806831206754201208828795402947526925014280105570303887640911031584336794568470131904580436551689624248792106800283647580989478760431227938915907761928812316787006070295282811961288255686048526957921996085463217409810257078499767378973386265064206016438043924000289265306190418785966927005110411798772618506699376207479283002601250596013101279906407953960647215789386340209321270124145827627463942414338121995782592554054778768934623204385583055613451964780843021671633537430832348385521985606958144405439861341247188280389072508000858185791086159570826581284141791032583194693374921617163507389241973537723543796312126230173963741719919871670173063895441134998436471596206951248122664215901033519503243912126061068747258527524671544476172919754695498466720635352068984794501538322892200421787218041334873270723117774070077454537928325099962644150342584462819639891547705281681416277934981934143188518029796330106441060475930201896465831984572610968539963248122193133976414743869868578691220476447188528157017997612106900932901652813846885823767371020268626835421605116483817251626649613744235468886591908520531434796435672751263318320841583771044665532158981255855540688971331623228678446452563803066759778889265238627198326742243142942498310054999040309716999849323834741957309701808591058740774013034609042990060713632125991418904372846737061578996888182174052731431812647785917566975993524793765292166149873807758620933024618233114500996299030776586643623881456978976381723416591941122315306371413181733450899161576518426285557180216288430142458012263664283196791241688321679824210898527796936810693994848776411727645105739701098027384431445094333028311304417877641698484323746595558810844259088021534340843596449314933788322574845260400932767021403004376237966221907916687350781369083794849112074861152839932111895130723469714842492194320357674760864239748633135793259864950320042331996299494623502080667931514821122735872403127512531595225747171634780591449154612605621095004037796177823886408226211168380598872361415388023564571047235155369263501792550609861019737930143840926633207573982610515947131676725370920467136397172485070904641697651359692836277791195456369283223541715323826633523873921767695179505255580358711874806624180536386258450105889942483548841669453068984458486221885481404978977406231027415891023629015905840032947596960990625280300426978991320872081044949970807932348600091875889738462811338621814754723761360520557599057828448011903435414885796146343272187657129075806613279570352052599996064942394021744467348929236039168538964863305813616521834488141304723422521126453039656803798806920615250433836183960735340877148741559374313160113732076633164936264834060666812187875529972851501191772689161238854419246100719352982840352202263256078352143297820751471845317393980409641525838298048651200665978854266176039748131098042900377364238362793432717238129830056416425019410780671960719884591386845378944544388754704823348568484589196106977494641843570170890099696462956664930990464226348592290625618309421079904529178535579185700154069944607221457967414368691427104173799656556201559700764579940555250993276826715041419529852285750998321685515849787054876035670104893693329605174438451208275910184478012457497732909529652660978519247523213951901578619414522298328533203828109571907113216883949333128994476534371474098205377295577286875843415673363854192787485850393879339620514983366945878580705255128554586939893069817707606206473066741565238833686356086898301188789164198544532534298757312818524244967456892294940605961784576383199006346544423561066587160036175748950388111784443322756308647628734043351792513458824318027576957983224776232492512345190673073990084821993454772599179250600429130521863249416400581356155692427284491609014648539515465110352864587225185384507433885050061134359306571654292835534309732058954199846242884151600280027545853604621249810345592069185121071174945750380307650731935956352871546820979267409298465523656642965609624507580064429672599643529591660569397796194873274970490987638204558466209609240163924184592146017305224279258635366417360130197558407837412077534415882305041734103101605995258450445802911513307838715072540991122113612135341245278853912567911199382853450348106709822887783751691334652909074560040934569004101352203402387853234377773452656660121361440870864375686864631559261324064095660349904402853362800867238121537459405325868872019078218600479176044155714127273432464961258460336163596513012187853042176147770150768397365246878696195725874490878495912341724574392423557973189836723900850276342680687923296721197796838443830730959756622611267856939990911760014684248642526947132116120159997252702882901859406272556255214048761423742098401790617982217902534296317562486586015454636716348217299766707524838756405837781317216409969358288597036443935031787692377908185018752168011873839047634011255994393820801869994138015290110366693071190780526116683440220818028998608996402644358820527402816922229576675378894885947431783072092849755541573710863139417059449537153813021537350644837309760939155138346531891960018356791819429704651741921021269871890365956966836762660397283829931446711442171963315080248813991975439738284063938125733872434685084247851465569128512516672944891300884949980209519520950595622252966480664968978911171060781318912357030280819987913990162040500563316075547826371235624225921437273883643772268420308619392062697253675119969613659420412370989148466531468125281455536789912533605648498655686378564988027609816405234172676670101362686594855444228726882987157894388877824628592960489104286364848498768981598548558734316042605849733893968229442605700731704811000712690974821292323737635377876538412751343352834028952517116906699591143931951131644575174767417418570916477619474488111734194279858745533402061316358126028471357173457568945444824292660383564646430457427488120582251860033788321535329014585895119818617222345872803316680991827574301311710549236077124369149918623882214688804338481870633983519014810294568801908078381433508399575113348969783520411641042759752864444020699903805155028873084719914538805389462423254579345200815105131506048309933088504956079056603107205958728757437162976963276495233356636669386316346960439953044944068534997479750426120896755988837612198867073034113811255203236120808759045581528027865294954758611165771061597373163988035250023578785947088734908534057403342354373200000501370966833078404747535052297805268263069366397878122697336602615358941080653279151154925280260111431049654384365340801125456939070564650705957346414261489049662743049217357831849212098729469783802741855369781701135295512769335178860281923328202675274632684162573771518568627509599773049645960634846634905822593638899997872983144637428396671961522665723981455396254782115162201286032583097605152577252463220920324102310864531311605876014338428500200636482187289736988552089715374543887579150735575752110532268865066096709615561674113960639848056185889283188588396031378137085696027328462900142100416556748482879636821444401991473330036142909499924743409211751763216190293826164866947499540974739334561123958964412922579602244926332518843049084746644172960712818483395630575740251872529343826125624662421664978027839602136049405314127860810148764015993283138064679056249898065138119206662256776322997774603779959280760983808249743079247069085287563161377777316014892209409515466512622374179619986637922013041690463882310874556812780003198629066328856596931304507518948777737488589528164001876990747717878967402863042926006010714843127418642083142330466832509186998664346393578105672123144036815044002929349446243968742436204336876629915142227415179531990335382634636786377197109528977543308248102513949954797413540116361832735853143493095427379287387530798289188976522821746959422053882273685210823950985115951610688130320755932288738403380584953405628861693529803651697564216316002855703625973142943932675721023329142330794471679613958528420255442067436981828853480199619457915238936973537505463550560505676521024144195156885131507356494869465033396209822894895337882326323252982801240396170137938377991854419141709778826622661036934598287341129628494793982880072652262489539252184350796177030272338051758321518385979994456873775871621284997792448735464807444554260789655169063169402020679071604365138201801379382688506770072226247966588045053308512362672631874960397827701557562557102132279408308790955142426962616579023387682916746240934649539044243758689225517827794659880409740504889397503589391363814013427247576228595768614731285714963841966969947891042345450041447528109156003519798506716096649300003764115519938773186900490243119435722575235056208952022157174738437258667226904265943026848878678604486317523768627933975656180384520399253587090151579222628824514123672218649352277891988175428404172897634774306907328240143284257194662548365847947024060273055505973146478707568822536709372126537339405811555088538077282957665709473650984324285216421389052042154592856836317328879569682118235301304341238779448311036151470198387371243352553588166251440388545388713267971368496937892026797503330192149181076682429678610111835865021572074301679691716846267287554049250755016730557689445838307247193120991203689670240795806598395283810598274248239345075151197182335602283747538647930819154349402343226481381533763012756881646236363361740132916358935064845679459471214558014859256171929061765248585751963568997169891385006073554327901321267658942487387632735702005868152115741211884398075349246357573544382044453255993015918172355204748909032870018080775829082447441203344876049049464738537157637075036554756354236003629215417600756390609841535866286304074758054033651916538229710059402689981444491467550703822158859100400997053436523932597624203619766837562074378189455842730565584006004221010224120591666927640792862561042483664689673465178541629684193465935462701795939309655456479332019591027263828097921441053156564102791669241517811187923345332465668667717832232122696631773521066862733178844990703893738063961821141995899176902101104844050657834943858986357779228182149854254763504746397405660235709492288113872652272263503192538937273247255529740912112677906308438239131144767452020547269428559142453950332303057489776522641057974674398480277665501024267393606419303532813710646387914456955818247299315588812080362995899151585261895955426302459930327180765819603253871312245167589107769078786353625974593080278714141553054337114434040797460656570809426901217218383561487982321894639430665546632646806562160414698849706482997189537851895195448584675338980335333903170993008195777558800258731199030172598721960270200833647225320564682875635944887624418831022092886629927081061150199904913682565026681472634950294074999807021672387026104501765161200589536802286781830087666107312636683089423952895732243451584642285659687078010903929940735454175714806086805956646253964883469839272446677024492003409734012572539210975347942167868019580458417631257092347683248873297173779220904044233154374421809700416473487846686085786549063729436542098566571056443549540451834577507143900635632248612029111459243647006685346425370879427716792255891785747035272178639898780297826320040735722505729799631584268413124035901315918242777895397898624060714013309439349061079557352370229003025067079046890950683269036095427647254705654398202155927938943744138345273465835266176094982095841971105787586733134246955466146918401297485914144504084479513992378571371910532523935805425094603916221439673494361085577880704403550932465472160284384237413042387973851615893079024120879929995005166912648633776160307268151540929703629239434549422681107655182487747786606025445795359896401355197077763309483914177297709815182654190095733652633662342238219160332773594284765678392211958141676893473481128721014656542785980568011750378516780180404431188505204332691626842248296189791078215279477725761007372883406935512178959102124100793490845360884266135657093021650666952115706767277068644383216973019546751686864925328141421649033741863082382880396491295788895643189436030229066205568146497325032388245356180067386482959316187514896243793992596121730740921632967533511234346513215287007739371387650384746100070717183348627159578351870354245097687186832864168903313418916340488815807870056633628708682853449970116426713009821228658183295061578208645105054320157607671986486455755267920377422112474491374542319771254313712347063995504614235517389363729007117154148725458432044354307533046648683326642146326904464302056255929149494355709829948436646362655200128343256210170247144599775310208066903314331879031827281777888330688252378196767644172892222553203402766489676426952078051229926377217069244521713403129731472458267267672710061437197435685831446275801656949375872931083787215088624941311775839677232561697062027884767228563312561507605199769753021627519248982574965326957786873137812704092856755732095435718630292840697073452242826964114861644955490073888913113604338050378415910605865999775845342984041834702196268082495795044615785446447463902727630001595451965227673096880654549827284127939150462630565601265205142671704559623687089589047462436843798386520646697344390766488947299107434109449091603552469608108929016710270823752563684086703204714375684997213943455383507561249796973511735094138816315428752454480801120300408441905693951851439933418584835279430978972695855885829164151614901281244670574146795650054798123788566876580577504075389309700121152220840718605611847188254073450040105071455099918869329649575744100059291246032945192030923308312654100672379477867858562265079956474748392719320141689192555715804186316594039618971098000426982189943815656073799169798647430609257159570371212124656820793046083964104455471661550299120933695033267166913234588068170821871056189551158154730233011530592376574648913774229777660792381786308266229392473385815533654906002620384183832816235292388856450593897788718458305152491915296252602670875074536012701527963822550944959185962376641834075053378447929080558763138918473285059395167773254346637707468226250026238870919239630141097386302148774973436872249111926491217875853738744699813447891554453197915706051981436388229136084803224501207707978001947570685846135458591222634427367855558348714086025267889126401528789670473905506419647450032661613046031148476829988649821138689615152029820669746449149732988612216703316321359879211512104882703323431465423957435193213085071066339066189300022280073717652745225836158414316857400604360138787817831890396643783507216290956323711216087967965997873213508701231343563717130760377647404331074126713257850542571157021705006107472506036121441450285887765558291334016651203012553473094462273551991117639599997208683952643197902967653737551510656842915344532457366067407452402847050361467518830096723350514737610819886034424040859310871536849391915905127655048535511547707498191093937177297448333716560819703446273703806597712376268533933334035749167290935438309155614108656322364528683941489229804850042415607748268987119427261950535776530203987718145660759366011284784440438310664193497286956134821843650510198423857083028782569052189927460740266135380651870993718240998861097070915856072725269224760963393175996546823404137573409805496359839663038254424189832269853558349181874643022721491724344998045793222933946455617772448976451605101226310550278875499354506476476397813465855539492213803512281053556976846446459346409578789114654727120231543476519306334870824978141094405458858457717870274774405222281826654752395035200476825809713345282648892568034053170755398588035088896222819124216057603475068854917682538902427587138131876972478755923021458247526401112919961647496995981740845143719009328333138627468016938675113473707095767427420751403787640949511298233153813295599507739076844094906861233844735315529190540243538794295137291344235784206219721626413129147013323147351672830410994966575763485357696210461786484516652884765330567208942363003609569038494350191070371122575115441205044806560872568341770279002342635665111473816940177948865749439967304013783116819592401736256662835102283452937749095202174652165972636380400551535951709226648143272805732403537547997464929289096964747121970740766472926668901125425843728053954023449600091135384103737538988523423076007631812929306906890413361297557927659626717128002719363165839217712001309495536872150704904761535105815210519164984296955016720140179360531409190133578057744321466471810568196895479589863909685244403706176183679596759776294748235971931442536691094939743727195044076303179163159888540888889366549020804777654175439830142085816422852845195573522499504868362980352980710298894479216803273437213748841361128885862175209124184041508343433232365249393071399330238969842460724826450237860165627791919847923824049742213579981233798171137392651822961157519727320359101271447502916581978885226882394510401905769578516269019962676000706591811493213207987168048033118485286282279160246043038003488920812936221766600374735303350821119940447429178554932562355857728867190017805257037584616102549619090202948118844352344590586046234267364786492820200364444167047432037818237717515976680316154771674007603778316445464249379371088082155161834219909722728744348284299543815361528367061160941250709501244372040851982119245539800671633895576054245126892953620844473607614498761596704738541534322730249006033695793173457404031146563046543834141950720706875550510281832627970717201861005535760016861087233901538774612412417721512984875983570814611577532019859969039838960446131401604288335271570558574965140560212910321119028332053751338528118419513332662257074308566809809547741322800552066550102544598638038911373293683483782769687402545375793649431348520063573922155464349541671949576009932366747919505244652916674290997348522907576522463758449040204177806609848419613300875285901773008784059200791432852922159319758415696309946825286438578319413081759707842097257937040737516548924577785190669168463412437138660445635772680056555249947447940469710577279057638560201896718661038702749742936662304223140073321927122143941788816393867990004079609647928144014564314125278920573202407656952780473994250318708917685231585974534817576173259029681615965671812445466097890003666407678426000910705854268231232793054602066436858138840783868359805807670954742476567158189927209849893999947084783319801589325566402470018577445820291642022551731467669133155592986038157888901476990804156430847392075896514810995129605742226209952768336755477158140683408588203731810853121862126814407166141102446547681613043935240199438185391165106807705410499759083919961046361559781603313292919859490204337063360339581604808654628092089665958169272008029090098941384098626799338999432618799872031292691115086015963217259856054374581062169099151949228715261144481665474817723755124975426394968091565624912772992739105696148437713064619322661612710781637673183554005919170628013555414435654141504216912026981621274097302184188208803996244902294597190517848775653070065810510552692525651818461387393249127428143529362208027126540449863461397327061283200862991444353228615793783339360035097081770032129067892698068260893599165130457770399982767522853787707410979443834549111835259799360136732280240695744213374588677972041383118640360336084614705869711656017519064014464687659168597503302893674000545204177077615925405319653870160510441078736023728355929817212039714385079365406789838560732442339406172392229828879502748127670851676037411493222798830497978933761973816613736815697615954634458015939183124033998199414953299446070475644783736217818103004070414227022262569682005907706295551965026863218960792848056864062704660862640481206632764331681344026874937823020607356232540149565267297963004280484575640776400408517128430863991605576405678231377902436500494626283519446269797210815944254520456302731123717097948820946141626697928539591438531740170016662006233906689645254700885218099433362910551130006537239778796838383074739559846094149094606095471380765962560616062111310959715232260911866064253087327727878680906259740886803563524927072840328696510031957434491986610210864715337551432408671369628596682094961105708577798635106229048130342792624935489293251157979946022161141721272469577591542660452350971645499106964371392412147116778642815654126592689751890154145661644436714769137451218090565461225387679958361533831346647567476803277458582508765620767826773401271755323846717951938580944768741691461563783179602866890651138544436689477858738321890342483337995034912308549333202827039522851847678400189913718972701446769137554360038369998315262910598909932114579040892199773692159690562349151309593543019802787703267196661976093595186402623590726473962062713330807110620477228242693640238594769049904712646489132364902486332358741586084250758648980622114635403223837276706863839213950804670635214880126740109686084095843733748841600078771475987765868615601952180095520081082587222900926618949206364652056707054352254747450894672289525356784002389394559432519376218142587115484627250317928122126329917965114224709625651350195762327981098060556553555135319377009204091282018842189572987635098203162052983956725779389109897609342344766432684495268525507781682366965739450233223302791397480776893875383906911076137095230317412600456180324015175369492961556084211998014211547374607062468549757604391356012127116035682698289181911626223749262866821179798416472502525181253740983327034401350303677673731602379023490589352834461193286877735013236081394164562965714356965708245116985048959890647970160157347258009575397162927624209352908950202914653508671986748397386736995510706310076428375217534523227273372946040806306363326211991599092133718979316428758859488739653943017817232086021804923938713196723011357398106913930900181213057981597096727846486822243781952417542183562817496024812213518322342950734906743758143001849088913723839239769332293027306672099312335435592877232290054144856211332299392851508502709167745638469329919489605313257774746903702789138602301388444650175769871700937186640855174073541719535215616945719827379333603182972603700921976702901674101076501099994476443288189861476118062174166064230315691942528011423317729987259263295971569876585116530871495395622289325027067947182874764922149184880163872892233217752539122984460838010567279541670371628383814169933001063032910944090457678480071237944652835002412432227092522164960873138618995341272730595255053004009662315877094052535108232178511818438387527897286414252843460760924323393931359345924094564156485700133407113355437878137202543070022166419090459411002273455753728561668590921431453388845185200452885378768743600985612957555179537710876859309131881829390527162713011986715525606061681483943951913123970249740366787869154208623847021968371642832205804879436617389685393120298839327700653836576270974023382498937080972113837062860541957577158154477741187946716499580646433301729806667874838481909369449811860472126491291106864610852480567077499252006039439673563938018005596096504726385561055515612281144601181168130463165716250354258846247819237168024554362151745270904791734837104339455337996340851694894963178051877845851398618111693357399682567092547632099872459615068219565600997551668218941608039773785971146095958088338017001049481789130378687101461966651259788770767993047435982854232589002232453938763695524636971382622389393298749268865172381817790757475883158783329757551794421243872006200485933954639773705107983330981106034693662758149951908986090350582777849608986480601794336920034095223481565765173193197152865733221356890003075265320341712592109374109886918855274365846377120017203388017408634473794895329265795097204211603304002246102769472326397455240902607628371633864418214592500731440840267104879206111199050067848726800022425652348142116624922517206948682167661571653052126436367787265702541462939716500196170923636724386350039926371405009352318234907909394545911102375534418770594439565404547563305251870515366373165728932432801617434885579985704041042279664239667808928092007034503473661331171948787240580200220613583734079876006550067316756953604488643775484801513586641525085021794100554700176377233124713608916767274653272475181350041230906808301657729968849142901912079324380146688107282783262383004339159147168748112275871808335730547349641061474834169801037756178477461356971438056012087785464411728248302346909507264061911654655217273168862131967800059293322899238519427637765406815634536325246194738581284557659292562713526856786264208608791584387218609437768948450896953537186849606032930595713444247027492470291273231083923850635317487598656387892494652691955307233500224874794931570744989739079623534576120928219347705067987530833103287141410031582010135353039980881775798224085180729578724132465449705593065431254610671974105855655734420595354460409544875357501801658222134845830923600875451646639970505640521488073394883015179836577003097626238385671236120518364883292217814455151633136632584110090481432543156484342554888289254000667100003028301047065061622974226551773405905992970622437984396916436869326861263907409799875638933097954361381402562781864224371225520610480597567243011207809103549295948531200936194092849575981212320007328594314665248275925719948645737850036222184717791860010169668144099971864133409292099147447024672722945615880871664122611451328378641362852043904300849057693583112844182657113943615853307947516219102040587211832063584012559944055223443425284704943371621544963494295911214429170500958256178922392915136645491651644749208779136806691813293584710294332697333183453622772905392631857167726831210030854587589448045233723852960309919089787661571323267430318744103694720391866715901052650467391336445867128998713695182399622501089298519324494409570068335749317273342780538828341035380243206385597346436821383771394846461137477715277671564280701313056804245283884266278766271525307682133262778289059528118357028775180291028454528196187790522660402020096439394266788921717160733059757592643481443665350735313621694381754908007015099496327017111460383434989670296083319148690464613496293981649858140859033090704910817319812193921541499872179462897271236435986610172328587763623055297061896452426854263505486536853851079896711421029051447823285742688126991666050891390876950203167668642711526920820207612636474337258959937876515725538781803177057612808559529940459932153605957957035053749081317314655445999479795360048348634292365833479257194636555931848160068008807603903181412859642669946652591565047461651783744044169163906527735511480716044807225198789942320388618898528906592304656210945988775435299594863188538363722208388302184027928523647540499598810470820671363578887598078066908879345030503661132741533364410823368607221014338206683922848910301452061014707670580615579970511281472853622702762982245442228820446668966659291304393123344845487888734984504845980370582470789281624309425701470856599350117506259673625285435438226531604911639116706137488952030327262661035837908408180454496749009589215589926091124597006023717357416316868302110111887783614016816146520923864341319330276754560008350162447291961207192774496791842051289636435073902032756512277293556212945242426067736361676656841647811669819033503566309806075346184034097465973814670750625789471758828404283860314924744257433715560050651710702331952374086502954475438552112405219767320333777585196409054083142378288551403633183151145070836162142620957075952659018307045504692830756552785210595774087847311096984495691752559618836105987327743772724484916739691454182430770208804281499349808114805975112032358741540362831068808281586555473104732908993820882333638470089540889954450556689908888970434397094270452163332948617801018566112836668007230299040142727743561454941054902316088083622144847732306694685436888945831198245580327937855745989255542461314978107901829688710226358811595707209500068094955660550317867260853007875408741247654212143592466918948158069205640008356054325372247257164445780815034461883837332188909831045775419048297076358288055414838058684234443983418788919381626882507696050214342285380079503277829415381437341150716242999234133003939848101084073134147180159611509977352873067120493977123334062031821737152098621558133940743884471492023097741494436285977561677678971245041192273724408944575885770152891283081379193935898603599825357705857169718327196893574820054611362298182586049842392404879976522952088639215584282456131588063250448298562353988904044274452535073610026997530253751716603462275554528947696120065984478367495928576241292122565091054761379713354293806847218395193077057706442977749999187567696744163866553867058484585983850465015661466277852229821480306908524472923830845164823378901532851506949403168372599032588535128064610682808731715018084751597452188851843829307786581116020471568660865048009418633329068994175924212784146821733866721597240366332296505013267437816955116258251379995099922260660181968167658938639554939199509462027381082105008903719158642119613727193880982630974728198978228348647717968086351681958725272099382762873994950395542628622138164111892147024584837017284734552160248642299797473401141662202816198662703493602324470982363972802823436945823471068136778801998940614158007673137449968204140788822607551612645619133880523166037857351970151500738621827333281228279842146883395600694319042170977270703326501992009000996789626670241155351357120684696674502263618398264179180325241585153567136446696317403587036298939052316229001986375800537884808768909130571937102071537807627136461914305904097844587286301130992406800492468991679142332049099297613694487159488874850796781561374307032250367375237241368616217704943292013995423316703643560836658540308292417832656906700320798176616044147893302567851858681865975655492207719244127929797629841672867772004241699760104304133806726128874766316633374727307573582150881505086334427243109760554170658304941715592392025383565230386642627545823063446276602035031656962410060206549711735907383626907789612880859826684437598454124058860134758076987827776412074775410046604037748017777907916799504099180658471630254440774628012154988061208830770707997057611112814475801773502868120643329447842879605358770168064235380013460781326713005975535713417544180046518341620498074052226634659538061153590539382899899080702384404318887416560254620242000125000977115439646700509866439405334945504066298798714017980715054475960477665801510605090491215934724824746325860490362196633019301866206510026485034076951741851316563513356510347389564039335994909840694388065047688702856562495176504887665745173948720788104313588842613265582205858537418130460758328262099585733459440033262044450237743942390859131670170733912756341674424406678429655384982735865218305407158776605715506709009488607211474975649349861158383941033914799715186573318601487868960415653768169303131166806009882588685279221712732414948727379781843716573744423466333100005700069352379212652899049644543111088494572613327936196629057985620693459928797305215978983742768003939138491165602521174767666591904467175911561888222216689615509505440823058865922628554494394849151953274200796494159997562192082092657194631400075318398267169107918795685073633898155743575303872763072384560908068757345608263535246313667263020652559864156824602510882188134145915277929512014616377607190677075973184895790680772511743552134098310686340598987038595662088876335156566615357891014078371441097307669752258173070017440358327889778798931702154004286882179891335131762986622693170120787100558900031164674420026177223059563280437465002859617955356975830828881118161239681050498432189884558686378762840484487068784707765898820170744374065008847536132733296196332927605068911579090440178867114000008662156088051980025206348464267094029842846658861709428664141485614187317775153097780999692567325743742365203014102016677900489647539261081325849431413032771643432154573719580538624251771004545699514556907110840071811377252452881150985814662302127585729528034570992145640069248135049074128640880373592685261621939385062817014866654329614187278529650536999427677607477650030160725345288096861186974885404226963103320891740228176212843282109472440719834121258731699535400042224723212392767523127705647843580858318029059094398161264314790996537561903990587580038024395143786829162486728547623475827922947599242687136917604654122511762895265388141609280157289852907437700769667238590628443392176191321840116888818357229206191270200334185646568106531506010918204978437439276851173479517707040143632793928879256593801371189257726139790860098391541301234818187878785109781295045700946851143732699278960336394980820857296392521915652204317425983820914176228476648855412014541681982537231672157269979380331477691438929753283693877569423666167527072431489204615751223249722935357329805802709300933048690769236255302903290926973951666223057329788082634313587316412951619270667075190820086921106927716504777232362415399817725447276584042089781385862799595214434260985789071357740935321716738108539242516244476776001489596163090906414011222300306727400815724161835521234187355705772921653091345863592063635811578656925850711244668450964793425863619985568577471437063934788456088511639448171643899689529894197975090579131358720832116705708593606971670923125732521071254527488715109038256294536865162060664493529916128099167928864165181133417435421595796741313607845519948489953920219908814623158315396399514593102118215082801129562367141638375934423935275637030287254667495904820435356374363759435687317766104429866219888820857276509885821382772453440521090257277458827334512946447087279789983296751503124897096713003356635726103156095572273436822136113550910430313068047211965347914060101788237519736915697241814756911388760427721598836463256054033974848575283909242593261710927860504304270632745860225530391004541743682237660939981657888900498816652762146471835081824878525701453563502753578528390307211252258956037488482666430462610498388529084705602719539329505902480631589183932438018114620972936349037939272283644814939093520421194158734984657249455371865007477923849870458107018217615104114542599277076384793468940797983502026317363426419070249289753582798298372775961175266813440586416152195416725538851007062544078078127840743719250194360193739458186840264563603256961650211216866493249979726931136078941135352655467075468878535541270718602625975071946958989790399102887506938993431549883691342642263498865322793520852322246311039833417930831742874664881939453631425715426277849397271253380567692794511319200599655342373554296468275481490012498022619897498219604171620506328063065567807403552822136967425358031658345977973936803295830491718173096078580614138175075721640165264362930625834883860765741503067266300469739333170411589817757919846882599650242880619750018199626037457070779783280504763243015474142981486224340846225905390232175194610196526237609746091019400490245307778139661543322911417847037979785897632244095766232017347987638368562480586008439267227159161330480679013781960008928483231477106987429340124419697920183075403036780380521193166258894085384351873113476858178466191118191974658177993261279195641938641231008072914051199786043475402851778120192403359799288725407342480106369320910913487256674580439825020172068877734302894409231359508380807144202533536882427103712837258063076054407983961957809408591596170951365454877936022727193873816695599806819204484859648288565769438633319710910968257728501854547718141580646406654255357744355843445340562609165442360394829180530211890505591027308389172806259901737554622623781921977340517973230618789479465070420228642047043364546476354350431215749527531752961110807211717648022157802644191570360656652060324427389758652678744662935661314853583913409552811164859150755834158571308242145914685253057532682150760547047801175093157492003142739957540480982955706110680061360692280339598591075168418045191402505103161591576053420896110007534903451685776698367202315503962657304808754239239449773061948676640707433663734841812872639626765195176759764105516215668838405776114102736938731258256511196014855124508615527206197059997523105484079048413364337621613706823132619155227607895941007106136128703849279617470116867176306985090554109463490758574893163957011044769744750725686086641508850732581905522802268970558927091887747761467108707002331006859930377657123061178681532201426029480735340626878106300364650633353273594245263499866534877341102830307429843527446245995375861645885840440764953088381373315638274398953178122041688365366509552963848530130965180415583033255232187634722812062198614559447066806112941030304164124747951472896742652036731635551041648803458615446188588643724178719235595550843852010254274145103244588194787915693560839754039426518547845933248285618779219217992240289261582079072925876920147558928178269287909731541212092697456059616927398337111920476844916508982699229812800644216995806805955553187019715788871675678891587731512197155737303263101375943493476940856286059186424202239004421480850072270952607326847006012091983183236843268519380290392941579683691060599906947911919185963770501944493833110464492053796020033348263468475181460570772503063945577757985335984610616282586590613863145676434569917089604365519929622519162165481134695002701159990127364096113874251233536446006430024156270534797204879463124745083316632246756505943833573217212427260213037417392706012022424425043639896866833797179414806240926132066774295839389629994792557856812823272794689517993436192941523516135329537370599318403547980941934409977896813516303004626352449625144654960892549392636757577720260383441136199899794588744585955795050299002485285655660008075337219985365598186311986818066446298455855759664176731098822846069698523895869808381901587623534080244086659754440054946864684339446708411207174401604835529249170527791453219819068371437734592163969390612741259067388793298737526419231740674204302057092206201140406071104002892155427804867154391536553355825112369359966609590033776529437618743916699674859974008439417010769523033760185031443533219613460062650711637475429217807038649676865894416520052790063138122992062414537951863172487316242505381138604594085187678765120725190631548679199304437140646972939099711550087250659793339300852760639193875728658557992473661434263386513566040842866577608549835936370682387716515189171595128098253173403582440700316950843139541161074542058049127929416436705168052045545181267281017212578969233575837096492089421673218385639340832181718787552243991628105287812475028473939109286022334245840228183801107001298804712524423890250180658261211365013396679143539188625946149961557854366282529307339906587487783566306199196641009610101463427483087105064379139798506958463542680756528523742767848134087369806952390632842457274425648579868685588660864599339095460007000482516845879917923840251464506511481844664829452566822470451405488353167582576340833222339672552383034231937224995763938733806902668486073387511120255069243958130623238765514653417154868438275712726099735234695081549829776823943794399034800836952641605397811822301084063526506268437503229258009399896547600506365873474545398433485072111027301417479955263249617415352532019164443256391350771058440924674801594745836797686508885748385522477787274404171988677862608357503320278597118398034312599585876589092185200410215468256780771134215653593307555713218597340366913932924161647393242751636765119808913266727550501231713924142050052588006259884560671111333866668645505735834176351433912198850127509382840078644946355436328089947331514155939311846134672682457482582218721272693967453848136725291484228125542139490677337757548347544893009336660704036333953596297098426202926500318484578530020840332183120968285366743305736287726683887540781757214790966013567286639639391187464835004466497391482040068824046407459412909674003773866346577731203832667222669779556526233528577995712078625812049091128846406202599014752046163843066860425120757509488600997868271238530884762432014573420016564100615046358830125486628278152728575515826738829930299429679333013838585768685957771631878291079901146989717714595291257963464828402701121648855543210059364694180967745488673345747597375005023654070800819545888948723695880247548817084123492810806090561185623290898545959349786590057278761517234126439864383727324931970435788172661995203241780239567296727204967025218725103542727611891181806870352760315663144208537577258389991250914251980550779314009865625668708632656879063193274480093694104080743356244863499987694798371853142543445834843361218965142252213552026640460595653254087028686990043620108773192005945896338907060716262499551088725118520050367158412028348906102543982011013197218326942636199848580958526711801634144620246217419741692959669976377126701227147666051010646949954618975120650714507369419080735100902752313896562659745745351662805031200897303174540973448453776836060147485814277630493658576123263211076965415997973168969449410137045934068784726908007491998818058357221831053130314792111605937600151718601718313956908002633950306384499509865613451330289890303340178134194648000347690351313274688768510886683367882318678816762086765738887651335036531098873637152125973590334397095420810186119206245596857611606445856582440224820801873661891792494134921156026549330446961865125011210968662047308246754152955215312832397598537508906178368292868755590303665141407825093568268130975023720712922426840471483732318018965270555611412086605660354677677056734277268346194434556878024772033401533640076897284269441784347355390417192491455406901117752440275914463863025138583771026171573063925210174597459495974143485113177788143252333824389557252422239774738390848152803147700595904966009316502756308257278493692363361794289958473147189125797308016426742241282133935358300811195955665570023749143213529406069815042291642250309940171815381537543386224373748237772325744020462706158179182104121635834642942155915001073945365098049083461139395628580256219206819163804755830314125275849504362060799744004108662113731488439976928602530414978340925030657912209050647255939296532462086471369740931680773192287695353856053713380526546182695089402802496814583551907724041947249017816308777109114780092899934248690926179455930999872541954248804931567118508373497584972256502383347260250010471817209313145128179298629085590292534643191707327846828408102615221711503986951566462127951930085370635944589853477509738229157074577947268207083010557364800866480452855743784692038342298045754576551395808712607518385739192937047213446245375232287325957453596637867801197518521846225055220710821608943004492345079046473125093931526289209674696431954892979424091784017924944986952610614652414612570890949332738838786618395615499304599745883299425829130846925552278668202946393164989045151938044444075059457441495013452721260697816082358980548609974157939270375176456059137186481400685301746044154283533244852320356995792931734031427890390111647759003296662703029446942229786339786652773556044940015411671153053179280657159513532909539324588685743449336625937420705426082930716641948049176577779769290290314849173868851584856541807951284665036007038777699635497706329338187335385883147468032003429244320336852141909070520691428227526071521564213185246001815206591846145438079492412702557487118913055636059295908277878559026864852822566422466135757244205453227790979012675126270072232079338798405435848967353686419526497046698580703040257927684046477575004048274247196968297418705299708808640203269001389647014282787695973235133087271406358031013969656616510138819418846770408829800709563733010437507052949483037707742767386802787349848719375048556277281915550938974388193460715157688723924763541750376239685602025046863182029028918009583550687057331282807901920787107680847183749717386700895505980072086567263617152080575619516362763056542137684937671099171177366705584549302092869213348525436795802022951263138706869717752644821716895639029324098839755740591634797691183548676279838796665303784470331990046102349208055178001217119562797340726541832003895272375900637728234683375894630810640966338668252377710093972738910658706776870504086864961056618073361661161054880523573488454667247598579734886571820807815805219657462347729912220923500415912677186867194847272929279492309347572151899865424804783929656268112101685350194925618050322656975361930836405177365863501564339786492480832971406635555604385193523808928862722898904943539141685268964714445938975263268332308406302091143378308938843905814524895488572965513057933737526562902647738070796536795398967786019713519341980779081864792776642545883250384891330827674015314309798602318908011018612133941008535496928677128070619812709262532599276586872633522627520916496090379692092554444709280306540154022893082298913808250156704839653955768974790910790732505984964872197331607729985468929331704293749175437083715427541193332313754006227563552169676261973210122753481085738184922496378482576710145369630927109842809113301141022921911725187939794919972589198179947423132092402383164130258592935160969574761219796123253990685623590144370357207078067855680081613255849268322721489905790176098168917806321240292300424469246110723576716820760831127669729227095976218003609674164012083781601442279310073677670408255843367808611583240700521493993229820138893755746112602219241334223114868499430972879006999976317516665558864764958422924439980422680134767798653949684110661291202536027649558548103685719546915179317112687618093991470730582238651201692397103873270728461497278504599173829126830669663879621139272831363740375514351722085837350952691967076927027490972509904028786817092574681234982412151559927726596051890901460372515793267506837800674840611799606753770743397246673215961091521032251295281208732222697612484153837899595949450769206939646380420136225043604467447725836627134747148195258256305138897655034757787003856134986219955183388601270240078542484340539247883741463700654879084231952900907890523874756917423189963143832275263376777041107682459802037826214449936461435440823217573137902670634106349107971562274555186396519185425548133339228029700224696784710143551307050796402711939367177660078879772647702731844069060667323331672279771244894563494925469240296516420643286005347546201296696143326494547183328793865604669854278220585202591456276631193003193103450222167137756276588646438532625240822295512448359243777128897707642761314235192384085727544481053593521139106661319646859134605563616539839975961158067394221848874159317048097198532729505518839367629886248284715364108714203785615470250695394101721929568581063130198070076133540451706327028089241266231979297804363495079552016439979385818963505479209361473753786117445615434747125712020377110316305981978706489039042188895187200503509651587666169340830609337387629361141422527225428990918510492069074431660283011929383724702365566734868357138975471875562916905863129309065116985936586732564327390942304232993027129722050014423418121255941511706456839700859818262304952849103148454527960659593317215697763155930130577620287721391582245612341309188961588607553109438831998022959034464137295329470424862777610859639062466647283489654327362865323008901355271147893429140080658592698884133169344591102732454092226742103977065177248167860679068575000774198583897736104710682261769827889829522242054395030455717812165502916765511184252698564792052784810228957463301578361984400992006070547176037971195743120532095598457244047231710919085522336672071229638734146298141281309992231917886825696016028574282915125297188543433641578674151070197464521519926837635517138825436940065314608432080782771572050847016152729495527980328123247795083746142567779023226812438349340099762147803130752922043054121297265279493038593347202134411880062465225818544750290373616062281010250865939256626843509931425739940162521691565432197065501733284194730962462798084555928968452650320789631590109655502595122405660522957219973038585978239833034939784635244929886151608038644685955028185601153389771985554419993324608187062314501618314356174666570872469864500147700762725099328179848917140057436321781434587326173001538140853805920939776254144068969626634302996763986533874195013758810360170873816280548770418441613640646376336145583827480441543130373045358017005429764663637649512835184251607360622558386399894886209210028162643083149298472735016692168211837411290201746643511924160734352169724383252846227384819504891769042128631716109723681273840765384290300641015059850238188288864340774039578767871434224024250638440545292532660789926920221313623538331624477592022439223766373209745921193432065845925587163344862438771916008594356334572810144411692195513558187861998757610508181534971895309823816831758143294688821868640458474813762682813497045909608271215446916008222872033060960613353783688201021447981800794851040965738773836392318747828014826927086220071646939455502093695987626048826646965773867260286624666943527870423372197043963264796852319568467587712150997257369305275513495945000420770676327021008494385830152028803243997774679458270187983630626244334949988738371471938955108220069528665549728391651050038975895496468988800477186033144524356496279628000485338939843115903581172736405659961322439869729430556069686855070524078588322651636616250957174283144871171779315506954490893839336183241594616772009102442315106021943992892664645105064370352803928273159361723305139566761861081566090069944726706395134136305601340916197668387544806820882871154950001572879922185634298205701462902210883020597834888951235523785301655129055778585106523011010851297816703915521840292138712967683266231770439978226000592171593628803979129718044204266036719976449179437579645632873696504628847946202099094501316196706161677094903839341823704915420604041017368098226906591620711928931239659251260414486893731710788542085698247603139222134356595737669105692164650044449450738036605706644439130930035902142925906567706828244204540874277572603324104688060288733471671165175562763865180203547793173991995757145335943923542674553830256146729607361196343064167507103104104397685930564996192816524086111923965286075299549448517757670299274523109206836805536078428537297072811449410931599886826044479279382426734670489055249448859237081657330289783105077707602161196912258815801443278217939352171026205443208374581113815674262917384710118309698611573194079041522500656223473870751877601044037007494578272976830414712115028189768371221854959963327304720251887115726763877938267521990947310375565061280053608956491821000445106669436696384519438346883347985151230253032117398394899158637635884164714955263433432719882244531283668053344972015167504529428940972657521095330427464310145071090512293171645906219627761220554473204139581590489212188426166927782900375330274263134983171852688956779786082435621740479216856460263703022898203512055767088412461437992520854167749407483070187596042936955170805807473939538264079153368191829822454773632152386249361463007854842963844663483901838070112457084077589511744521779976793871090372089985156665088678391169838396973448614426806904083168425018223099064703727281992268684651666938815969517794909893993266492551921163608132929483722380468877208791174001008242111645570196450221820972383394957822906323329271623980301111495503092793365645600453289248613174682417021010459652648819094708717742298912806138112143448706461566200655273274186911048224919270901124505823226462132143281796055210111245087618470660823870176405738129907969351598148570270854107732048918160256434306718371272981539121214742521852596505502148291003884113407289063032444964168675349714223021405165595774468454130636026966698398531955231066185882002375916047597805879858911597836531696090347069908025307572335019821913647589241790678406288568819824787575761145776643554054046617391189617901175827523641905084860789721820846088880691419801131367874669292735654675933668592941467299065744873770536370550082727562461989817513666826823402693480792111290005615865911960425266350668316841096140043321527267598866401163981929724263162835728486549602023009292212485640437669467854584024646295328671310820041527329469485548436659569266051083680529435581543302517990401398614435857097569957726232759448548547099392224567951967941610526558761936792972894277504556793699072706308271020619803278156754778498875885616797988919841772587219148455490315063621267750423852464698676612421526760003694590099804879761243097619695835689669308533681108723610730719035358501673490465544262323185757760110693687491181314476741494461387111783866692451405668616884906476429557488167305693215161009562743099441463409607469390898879704128633072695990224657839303291917250930805746170062254691818584924695895814862836757969533342672069070393914419600127524916239560968472348640982889121953446966281385385081229261950834599073337091144753045802759615027354136446586278356908513819330367943233342419368307091795520570599186127841217559385371765778442589896393380911899067230214467746726948340602495267144873898851984786177321735919817146445021270486381883573024265710631461748628102471226231966596226315031117883367249684069214748932216391925083589645991281015524304506908228529617880209426513687070164122225003480894912542550864456395940783382940964771008425541497651877950357753790019104097701609675317597856162392538778045115061828317159422902907487960215356795909864005351407472607956528846413126352570174472334477064530871080010559883790511106551401807846939262304311063501725808885218188649619610732096871086306142101728170135668989000410854995464363282234831252886914792847926188824705343310344930392367182161749406466011208458664224251617256193721915018952240337483680084482297004783256861000519326751709654222091503197942066409473088636868989397822663947625661974615426916139739271948930347815041971799750823387282235231225587371759264161588401470930430493188591638889978398409512122370377711366754095548643928771213967760384081828065288839012862295642499251928037743463772729022483247730603177429469799446429458942907578137067285297431700064237791247232272416341103300095456738046186707176303185045118100643483357522369155714140239507860770914258160663506149648290239335521090044288531574750882542976625982937045953518522935053055028824644556324857112460606266363756441182424447097666593160175040200062205741291229842848707237055767571847559763319270120300366102192643395282067847943125046970974569358524378551673160441061583372865219932600454197142419414569862014136391536220005922883325064738626272676247673963419826668640407628919047841177085892073609881088110228755482251020531313212498937802876348119148629913943160830598805011339860728594599430376319015638783591374164301500452599562150669889152408574951742000012447189061778152090010437982527729076399836351638781069763046677578842662335779887878150349498667497968183135646552364851830708249009245733273439343761149514471185828861896292327136788849433755100071493441602393717083986272415122695969480046347099846691859312467983940950954544395283219730234723707029699654198826358871045860487167268152967362499001081137247070826119238223858338249647280002559190094836325402532184032260993597364863320815581030379014794482950402867802065298300877149530551949097720338576384688200118067169005694639643906680064424687716743438569791976723152910529413972254253937930724225973389575451301539676822054964137923959828385800212894497455916129883707103970585991469773938454224646314124241455726528372369627310731623346347181564136357904833722995265149235844646252338226398788668010721270888314227966519249261903604040255075287772141231281749599499756202505339095307828809062321119440487814515901324631807927622857512138769206099164029961544489837570689200745555852387759449969505805124667818525501554921521831825668869661266644329446244707837798778879608484574885398025944525476403577655049245478641135456138775370586364374321760597593364406031531795550948968010833555358685470882922157380844464652339390334169418330654189597285851991540266351871189651292981636813606449865705181016596747146931482327661870182039881246456303031928926762488724561518504604605538695557277111405498658888847336743914920761365082196192248356249222749606761839804368975545897763253941870953826177843305618803375778098225152954963376992309699132309543510728971260951795997501044288554843951388595367071914818834528762948745015039871066859168995970985923290956994647942881314995717533030650452396123313729083387495663570725179819074666619901505088483157500900131300000738272572904275637610945664595356847710978810249094950059596582216602656025582360377506788397115047348098006072474634561343992414736778264353348231820160108245441548269407296213355551437972660693247619445316532168667630569605788265711545678730953763202650182684004654665603802641676661129430604360242781520192177396926047579325122089295863353919821404350653134963407508008560133168462854657315950678831051552767554546695601556694106491632681842890849734912322271008808069328347554296867240019114763688081795497770286141552963465541084438902556258188531361428478966068843011206107817012373565307935667547616270642913929360830095540456957014286941022798179576709327881485621228481955761296550445765977883430486499162605844202931449294114876631537985147013464681107650527340539752942881098752106450242102212062195872242636384112774854951986012376924091335416123447327064207612799629514356405386726229911064353441439797548006495547454390868126676356097813019919049283058937806958973894707125421276860292623091190101411549003628497204753036427847359470479206425948821274077890008261854204821916829583842093392654844430527916134704851669712453069240439948033820734623988374784160610031732092708471198015704039309573000450342394495617717697087070393860733190937160562936372055572473057919790067253056494085214101331528137063377770503254681321816258067183829855376699143526605014128331466684981291463127388445959717147938447152658012620093460275716541328919642116976817534030751577078340442501625386808972207823633131301297968151605687797805485339079712236437125427861775587069056921323723490559603247411387492854612018856746242283645199865695403243822591876170354416132949031744385972396892572775143904147755849618906402298109061572568866228685674539332303533998568064259682649831217723224222977777812265419732883505674416604017142429358005027795331289271700385315639695434573436670673504678163218633035597669151617556596585555224949812749322127713735900915844877268171135037602322156109938826693391574461479930077028395822195241457177059717036685799602460767455322872112730369973914990602332772810809777130726914137091338224351699284456537583346646273608323597422121134356604672006621229987020013641095934359826056891601419912148452583257056583309891333340231129323753066070512945626713338513715957543806744479953844198093369253460173069905411207846635782274930309639613757910552774576820080182990801195881023310630994170946955039544232088609921562394390533140398295544039615762491540006732972908735835290618792467099358079084992731565161399164916974143349304444206076671720453214806589816804815678085756997818736181637836349985796773884741093086621214151906758067435959714606609406457938427014961018937551468547601266081663752124086333961635601566960281122962180647203685737058042848408384508148985090327505241583751182917938598715714803340128054857000463861223698975565698936491081694069247362441279555114916283769567289066356561853091896649088472295943076289400772356235649148992772125523535116118406524862353557959705851480472187018150305184899805285174666647509187274791591413564181103524274727144764842574217319233344865111517634821158742806545805908594851648863940326648504085586626463898612737415087714966304902464771923915860103138937541582976040077473057455887936589044127375436300063176108137671031991453574103602147440606996681975867364271332892899643008731912684925701650998738398987250873412228589471499314950930305058146304486104869938346790054260192245503670294834163643084547578191124560176471041580239934505316912095528502162876970154081814510277336328382154504990018080575134434213163703451763666247243716216970192816148846094583934602265376257898190645317602017767352941038990492335811134672630433232198174610483366311961249731999767597032944502703277180582837162196021908167056418713079443555500063617273675069459747753996327422889633640690821625587564604912727484861197181869893187705200857500803981140975785264209162298904967477300366231037755752166750347913883343299567677339422006062774610898605047068473559830067718578301221695858861820705007345082779240445779209747412645812237307993483887854945984091417302094590080849673559613185375678817310498773088579532327866928638781222936582339968730925960884931889002276773359517657221966911742980252344208827693661129023639207654026841198980606165627235221842277425902219084083954352959598863664168976711837160241741140669686888044903045643242157207980135889295938023168700812305170280415364814210297292226406481737842847761797142506410984964625399720562695112145259741624191853566574720354829634630143650780881288731391205581735530988534233819363060241363816088932593214290142452915826044229856515691059610025386616440980064249755392466860792349973080233662930538474978813487369548588220869884490632685826392623125342079926526260463684104094363224774849780426457616301962898369980560420321829120014627186781330493446265931425859437195203212811816255529710121896578055766994866872746996043516031558804033556821886112260550677062953938308680746727879263178564519438694332714290291095248254923974162025197613057198471100084701899903875241937662914823125687434642712717551578360996489508315075500631804120600454150099280614096146315452208971820562767745963718268058050620426022661168491396794042525397885319304404351447116084280831482948231537510549905789453730445214517930845156288169820726103268249443363979089902296641190746963276209335486824039092866743899627741899736352873982772229981799017575854411727116025076576810436530785356282975895739540444302004346168875368132222807079440608628831820353530211659692546226598852479987826679556537330797761253809142885378910809306455212349302515620240992520216599123307879753129238858144340721303652743347103952353224928354986464401888578062311700519897795438873485881028453133840372348544455324726583471033195893573463312777640726709438885773113532805234769348967732750940257895846248123617308881498207417919145704573073944771793141318612251512312198363711710881592196542590284685469126894469153448365722188792285605613647133719518892445619106251506556439058549381957952903611371206111504169499160394606952891070118363417469453583046121870530908758637378658844183470974339276891060968195538296446729922446238854212853897756324957255991062835133035139249259583493133595830454526466187624066695233131228717531592584495480889579870387890695892171216559126432761349815783736491062002780349395280924998943285029213286679174756485514495789599650179425239396481185398550858127624423233374902112618890556951876511144231348253919847634234960169464619184203448025805397316312870681008700967300506357329497401045479340665058297415574351527345924985317329870269107242290442719718932749743215703127759399076407999262520163579160581986302800426198277281910139248658468690396412622170573910260199532114125061262051737170938288211584820441334539279275603638592384848903748008348626927864978903737403164494916615400022905097171275995246337284213300620579380619905208373358092711101921348268412392976057592340007411722803626833408484937293998562578193343253217138232402473861738778304516936059199471794831130049507323373586152715895974541030374145261938618385859107181408838771413191893209694098807983533628326177213835380340627055735939750981391613941269737938528205752223786718402516664217111381518469688084211133326215562545620048432944781771095109839060207753801534008694370459604475765617716482256775507440808865888785571628745728770305568728670530368132609824127457983257268831908601101619509508200217239350739947747814117673233433928358714471433658159498116558812357453183787258785670746166440051954571124087105500151277147055953289426670574387813939473597359455779891754323710262263238214044401027038687883705607493778482731208946298164982338298206878828516727642893436396501893348934921637367223835336052115414279155732675291078670515482590256596142257718123292675193804996235535974999022530626629447909849629703313516734933191422755313401421619370962172179006836696579552209358785302744253059976343378848027383436736016227122959094525733432193343612091769208765368468930999633365275308226718907958534919554372002299928173674132576685483048178119488991959412634843808895107540447520036177573615252627757149631143574200246981647894234200575397629659540801592369235872859021612761134068297832271830175234608741778779136921843342255697891121091038718425273006764494398201803076309645623834588291951324994671268933458244014904274157508534796831626819874345417924482260941695874888990412813886055453234918015783758972915701152719517253117477309386113624338879161086746537440824096822056883524495187536991823853241041120340481838522601974635489783762985986066427708098778747186971630709705697849119108823052239731155675843029102054830828314719288906389894633559760205991695933076473836135924417054367997739989110828351373740926084489523690487355936600821212784795108891938156175147680973199928411919408738130496995855714525920923223142321152530079106459549255187502790711053763144331383303774151854832021416887755564390147111991260158930735504632946552917197871857894035842890890073700899150340547165462253553181752250293802509467973086645196146373522009074725715663264819864120862147164075960921279323523916878697826798867964064285719811550858538372092129681541544896104372658258888898311177550071496973605775369824517099229593288366215712111908648450362974000815221836423635925124637196395728560675093393744851222424244501405241852362227253031211241903703874126828450830862926217540801899812496582910255780627393424073544534420287626315253184465728056401893233500879166300069435029882242284927243533091224676728195437611249023059331945660086135414120351927502355578033936133430977024427989943693299760918559914131550145989931460179426265255079295660950466762099750777343805767873566558482765080849794134232225169773103609052553271858207391276626665846649339713358749076330809061813238494018133229493231295795225686933786148264864815745075038042890312288331435044077343009745877476607667581450348419255181334019538714441986453444734396152326058367809909500733736693809947034476313235493709118309720006320376375811687554170744835016509731187899750013181228023131121389209669497985612518379395804621349908750211817603122241073841105266053585691971827005014966249274840670777217751064232125586746812239715180167197822776005157354954237832674847483986510137834187750898900177903343336014390514830225166162009663944732691118878357108202002870566577942952173884020269082189543814809483778799912924640875988666831422436306398713101376352342483158627145853405584752894573503317031048445726635807698108189601317299353954708754941594762300479817683556957235909461039648791837767696034747795354505385369947323921703690301263921332338564273210328749083958855896550788217817756867874654438925346333220508863040972394247172886890158843651105360730296170705713529721068208852543365107176692510567570693910857353999786923778552039764044336006661044626072886233399286774947867600293177632836915971963874056906901666621261701844816888362458125041091918345304663465454840058275979661995288215843454063985704042107478388657993480934253040638578834139509718605655072461790657522613880053656275684133060290477909828652880852497757796222689684463050543929417216444554503074826082395974151631488247915943791545972966658933624395335172915621274110072252179600976952381481680868649342607935446387429817044882264643975925888167084468752993212425527200997323898274253997553530614168314961140785236098859541122878369862910098042627182099202382139816946590544526920135280818741109533457123726299505607071366661763164003013136952940395135420991287543786028088802814457264751088784011426710394654022687763921764056755214277895399302771528193504701323170113922230644058568917576997418671647547576819729056876170290002383790258288076939628527536979880735987047633380962416153189548831038045608542199158567706164650519396168058848438164518210024333406336868282301500956495331949897937644882931450986077636508061318888045087333132702911024239140553149024373979425703305026999431876823651899402621020114086998683893187184757539077918938392571329048939190868787023280117826509820669068349956074103527203769102397244548165479853752438519044426562000746651010680963507393243627959338108393756472858904467454277867747887445140697189783356270904191199494745372903238652269609601341019101547109127643536276573274421966859581258930288921596812074076522883368692177027673508656280027873243301753699892493191483501710575725774230924169706365177537911322537686023694013970727632547889527880424026863749837191613082101337815349195367741439542653192894179254934607190721880973912318924862974033637685016713762831915268885442882035519862987206127744703424314564472335862452643998309653184194738199885733861626261819077984010245964828576841831289561819925681089419422484416832549681861439461384512481047552232962913356791384155084725739602497905802641993570770251631008716815096944418764855199372468554839469292189951830746104350382229304860283961859381565964289391594580016458842097677357164030502499398667072525325984490779273542644159450948209277344126454229919309815465248711466084974195708646713447837257429245685814297993350885476493221589125170019351375441469692757768225144837362408945151711607455538879405063008062561167134733148788083012608513926730353400011029065562752485155377262081504305224774879482412406609386572895411787923594013454785939086322310387602417215980582356125560385879094607386761313456641885102224039212543129674767549593746061296463647759565412872251647278643217456913391256038925866066033255256578720970343772002640730762849945386226829892420377971543366003501176986702931405595493086391478966168185359307786279755343236820741077121457007062274365538135397145928568366513155679723551567824438235695519782909710456045548616208947692674912829372712611669728046031138824640372025524895137764846543002260859597726350140351340612510199000377488150399412495496851201183327817450901800804409980108120997422441814032784902771277785853355336935117851837195075921842561018489222654712263659708453430422277208367543646060268093123102763204755271906645598078296940757155450079014996110091632784010630149258648255456174386879032094274063417319884822818006739703411242464219460446054488587727019258265112787307254470659959358425769032988864157005834798242204879221726886721203057522401959339444134382612694719777043750078655041101848974143583852958588982171310712020085250964860167258640744033514764795097443915807577126455860696924875995155182388212169922090412920352576549017235908105725876814449152655585514138713788133361477310710750498344918588170916960453940372763848001090961352747248632026828025016239500814410154714822954485773892328537241862122269577950391106059488727393369620961869083820453212603898936838721138640483979771539138727922079915936167088781414184018934623527742024654460767656684243744397623797453698923160511661925158338589001390724849264766353177118107928773381963949453329507854427356785019408392998003853204805443938710751811728367899770874892572035157973921257422064078480159881212006709085809248511512121202133792732846352989039279033164390024920144961536563619799471322023415101594356353343973221805281121562955597909245570719486862909146193161670974324684547824124578922319820232265515589042559644674286662317459206487486445835963287295445164168366536072939881516883158179393736545863535005607414753319361971307669452309040744060213690886627072890841117872633055001357554246571237833821649016942041990733455693031868145288119091416147228073377339921463781824004912969466221754191282974787861305586120307986212461561893104683681182747200698405923537332465480404601082735845051303010482114506543801327742355938367383337051634655043856212666546165868932892953518815224495846210155594517669532304973557959892847914721055436707468219718414921548509990530267543742937652844075241389324374229555818880145535263138534340003393577216627914458724748557943952209868106682963089572577535037238556158100942340656756264347801434380517806618735556254415323822648499050519053909531849325213705790009255429709377612469309531970377330797940392952646326986512825990807025893054128684141294926571235785223096170410619972336114003080398623465796218020338209990909279422626094725712372926630437404651526832185104165724695577647117259533162191100833160826161943858906939203536022064947618971326344742852517363015288735990734887587482755976651894466822980633539820676023230222343468560371831152415877075863099167663760337923275155567570111180142832809406504520142777743616832960358120614978099749539409084807238339071001436571725721684905990566095627621057662137167639447345256200364693508603827794503277096301241154699435980674877662763451938809218012147711331816586642679176384784913731496219160371051417256984911388064589354654751702513516230995171272330605866307617399390633344069008779090551997781751525078845303777018682884989348442305420741980539716984180319901563078456496361883795063379216287884748021872310267056296504423428298240591353253090791301693337026813758622967081224117773145524456666234779898877548209935756210169778589947880065951049414191073327433074417042341282180045779253744628265695816871273199022676253275828490165297818903620636408875129697603617143966039187602205277160742125111262457753971567155037535859190945964602326365334757512807266225158469940666178601119319664665281496263415396048017360420125444338527630072250127227371851053127247279125085656971747593597168915178290456720438542912770249783157557463857033424545874744439235371161406009050391771392588706346253897991232441308376438718062810877052291285818530676995121279357078435597170762977461755621253790416088921111724619432312055788490767246807859055360606026481727978682166019625693137181659258041038250622085099794927201365828647553946074335796886038365166326951948007177987161134155321344218693179710649005607540796146706570778522672556695279161462687598329181585429681122418749240632584466265008640116313837251238249680489882515782898783080086823791226570741864152084183755669632418867157811141118462143504315511593683136448066388765033545413987351623825392329318378920283804079391271192841399904004176764227185419586156542292116119791545950620330837253226576287902995088779104314878960777129679980331520377318658560814683903872693384154271351722983382405570163331204968833444981521740901117737504751876775578418000319360114878911891278263240400188387678002700883209975129076241743097125736266173002494327504484536734026031142137319287918904077154393692145732884188761576064615935134861865082367931894741337732598463391918282996425786159640561391483025344892139649057796938758456431588279908072165572311237912960372705280682463201687125321967437753977602547044464241887838338942335329521053734414734504485002592799014251633874670156886864867361502771580473842504476242860477600823446901856405420863621114953521310938985257045035701289566096555796640946699743970516703106910995815792670910645454176071436343839295071216697075615246717084948452526252635049044256476379979300447768729277129194730642396278115707781340275918339997171953670354332668684716876605126716911017321387451168768940561264654513781794004785454974208694297690441371363412137276239175174413730389668653008732275153160110046961167241619391320555744225725630204811438511636949092127722738035422711323759377498529821527581030236963092966222125915143920537109977340530089267392058945346085908757911693093141470711392342103602439816196230743362548539887188118931494232802568876456179220286025093636862070940616590265225679498600487495738860822460278294311043608352673293740473269208762344409448224222548180736878364014270124774842882389386332784061768432243304694415620414525749936112935447692652446254418244985728374571420471337450812571153650905521104539099510533537098952368595468436567732984088776767433813418242381162333994420830676920182766782096259433454373981122483288426224002482687398747326235526433683763287036113535932477175960211633858931114442325195240028698151122130685704526731637776263129490686305871912872191550091409395419671264259951178047010161930018934907647164421322799821485269607417190393621549496281284056245758350218009557143077915434802961050079769366359843014312047444720738464727008223056811595565849097591640429119414629230428936779963121844035967409714875036535518964273676076619180350806914666008783180565586179583497188260361076304334841895987103623566956945149103473685527197239755643739258953989851526169501559055117958648224098860680139564587411320292834373483216241299765511791612731518985049581671880439603342195023551843422592894459923866042774248874615788489483900323387078097151469522948052539038569275344993880753070663265447364640707714322824495782064129321623594056902167252157021014656355709814559812312914617454663850247747184150096013041830658722176151159599478251352484933724379556268640876003339029109232716833817939810009069468615097541646601252857317976464641595115310274158425261689170164761332295765239323669248779469110267729092123661766971763836972314140580595509133238261377675908685093184769985769968325398145714950966913018439003113820688985441189649945401694807537442239167922386867393496215484259699328254871189759491464687569080442021964276721626174857973429986570176492517935629472894904323854827940010277707090242016356219970377393408356098015613459214138027992856988463011687021754995230122516212987921872690249052919588261365553925719617482479158959524593339444842785688730354714541945019087078099413706668915689607241680064603437361959167470339700629196497003257743568596838480641164330636294181485138054318382090398059370299087983329191671449226630011741488553532234726887576041392358004180827234716743784748078131811825027954895990164342386886298248863689307689021403268641555333660988015126086276584058784335107950087856029203902251566751129976042141743283449088218080370540044571714345371976979525954296462610478484237266717624975809696742069918997051482427051637164603120134463999679975725541409517217554423442933294562497515435062382807628156414422812879312407516007116759433464735737134191264526250189630215407765787615846572703569876773736701630386579191961391817059357074618504404902560129004957803799484778010005090922944319725639805267485859684482460054370201006786850770277894979289347951805021597553205176416338976273619139162259934735665570365327640650155970925936727313787851121379579092424523127691678515700319280205144869184622908961742028440850107902109493048902156953977058147689825277681496324000327266914216877471046317261739019598284495355981925328116490761400281834168104022314161083328970728705582374760101140288792338268332061110228733477144648915244608510819485178534151990662472044462815417490328712422433086804605723975299708029443179159423614276005172051731686275226481852528564095715997483218909094829051526608812743526206633293378925579661027230116192412490548251774323227483475124086339433717121394852593506273354531526084648973969068585313275456239573172877311647129648159795224416895346102895517998873872284030275242634078458846671921093635621750051435299939466075957865455903582497416484974293414162645600709712668147533585872127381428257074409841641827944903329381404213261931981697729174282684763536969508719833106585317244944461865517377313327777761621158853635733081017232164951873212562077807713463313155165766805333270047897536325706159433849993530298319240260565851246314953326664827154854529129274717592039208993217636126624309998379322419466083172475949376731577031434418076516072635118813885648952296912667014347538923875302159124635567143364046589482241471083958428143176873732791420914390267129971258179399501566940955494844475296264196885998293425207025281659791010890036944433053019260332480672913139273400280263375134516047267744181571553686862617630176155888836526186780266435867675314359647855692637405738846288538246791857665837205766139155618727476981619138604139244707073057116249570662743453500131469946639302559162128969121966008458854971517778608765367415300049536849897894639504686275718758518099993573223198173339854002305470188430706130177621726997908803042638106739853752220256686582473098046331872032001270537210292455469581705147335081094102020581541126583730827728430861715022521336166862686464710652054127910398319859142309186172284263750542845407739139299463010540103348809528182999258874352834250871691746849624674831676196745643681551021861087166010761669976127381658878697158509072351162561880901657837571883541101030668531780304651814602727489197834605305232329310654938676215227404484956478874741521779128090778806021532599261695868161570102609568951224430748317268670035226823400460088245397429837199487046764553799987341946610616794565892563515955201029698887442086934552815238491703770603014979088629297645190635554549496718899230683217313806710617145868098661383172101848406712813806194615304485475215455046223085934613463694526227685948587980680100174375190561692281598396736477780380796785266531961733592475177667944217492574828308509319826471507854764851378699047426505762315224544401435067320055598550746207314931221146708955225153112990920527317478639634206613695101929487093915790701688710743524188968742306414381114635695974206861132739146263524846050855823250631010608833948085853958403385897195709509258596299892708183140246287905673245888898449574963546503263224673566745542199230776576766917454563357461793943707368239498399169715287500471072744400815669427179045669754017315517966105483857547203214685004204705598751562848322942267796388676585645342534313962131283429349856380691618596074405204622340872718692087811971766850876422969811738767050967552642545756838854475409255006667657861643059036837635283813241679718026190784090142524811748270791648802615868843326531646435774951602042196514829581568392745451113779648102398133713815008498580145940461923293654781069416038968914294299321059190431433489821269995963937221812654732460620725550816685898016674255022138930773663503160718492925488083124332426695085697017560591624898683760368605228234877093247254598679224108748221610578696570462146434357716055846493660114786769364840079986066239176716334989873990976993538316200229511134733903745076868458240364909424792127782911909245145215782446942298609402861771981958472829227116939151740563772213761571325175732924426224437640060135617576845322619300039964700118878746793979346900949139391433788359328851042676814189368275042685553794087718394101027604011239103101953778424050557509535180544296470890984854997666078163166447184748060089444990993571380677521854524457846445892406762036043005160221643972816362127008122754574910147632775166089727613843163531493194236144231107089051393333569555212771151582620496049721228751110853358890088505812151522578688227540126237569916697973857380529894521586432176338439850315299846508740877411649117949676060202014418694217531186845648599372443009377652978241002686560728876567109527274990596239312522247808914663233835998465774686863970260285638870199031698933733412424740163347806295125335165711846653944563318929883482366242188488537937711953899975410710602338788980483680997058509304760668164054422556016382190114536608247089298125003006936772395157059174668672442406069298480443664448857816825310467542422010400142818817734184192549827925191007715109662362019231177755080267854348635305015416674396293572287058978045158994089921343962065821592491211257876876165021744525003779785580159071977103999039388259324484232707062293408379849892974004505667290496881839294179727184613376615552431277975936024288926178484625765713408594461738011201332566157245518153436360293248564783343854547632238447745127044453150051553729907435140074763663849142158976137867756483645609365751368048484069579062178883107030006195586827875612499639806705945344707523456384931960705821618057478284303880715107914839245847295071392448136818314203605122904459280585592477145303985400880133501671400354151778252527740558724585346068100752058917081951811326830520479976265723157007764369931170727200088091668593834880964092067905637973875953860982369563123944216564735442305024113884641968698701720025982044566586331069728889055966771918467022746192669931262900796697586213556656175655426110027343499703417369521387092182670379916366167449065487792509428624774929722713424808332782549974060478821139750893187253344571114757241263489088035553277047433535843635035974560761071072000896464592544488828389939434427079433300510725061953474961483710817396450584788510494981305006198268181415594333238208330485143998827118927209468368858797160731717439987499698880290589294902149435795897279918985658122002972164342119129815223341980317469803563875208507044828478525777277141554933315534755824658706035889330873401567365868125115553092076046038816159695794286491084645697154083189337764519531149788988399858567716819718094933925478970519000007775742427741875412242224073534172276732776449038069588139726079490784906960409830361739436011365014610329693720107535496999920349756043074222453891132898171531815736509106040602696120923112989146653353884988057139392138280903860033214581317943979852036058929049839804164312101273083452287108623127469009581426910181082879709980017635867350635814436594071914829695392034640150364308641463919485554769790848786837154092313328942783267128063165579932018374912406930665717161616881889874570864253715578118337662533970877713389571015830646212995627689762957925455211020798604237325243647784499072836572835952647065232231878810791344145636840659528818006229116431409056676511241431511646103984441503420519121650881635875250759152913623718078691687202141181221046493781055687044302329412445635457409029709421041761814847908677095451699900995783337310692148268451894053675261133682738058694226331353625291188448702623834899815713794175923461951455582279589102773298217023749399631881178052758941852839928074375036509056280139099949114783104374238138693631327878129028578450584057215061197098983108542638283534057486904563269787033733190832798318322411773437928880600474375529336791647118936971482218959831025040956082394899957517556046148479382283666677057952875696689911112930970585046704718320071606152350827634473724308897722545328738870245591455176920968570214068747996451759845455359401326586158217080854025950134070766647439050338561499704782854780975693629325769581990082952670478560961948009270174100305727858608397717894250189979823683493069734891982974524894223817448919228815631182501446811464697082930195196121266937930800513212574715970500745486995137063079972794939871378904703854852311090742517605589793365915419609582568365320843064388338352312613525408882787052802511839959853151716356679382799811731398627222444712547454196281568029213932922160724495202152874198045241559019705034164219284650193196092910999540034318034966037230491733399702573539195587619063788841374869141343254866494528313737272745763616409275144402465847999949566164916733417593037773150222200947702907850045840543344581476748736196915574734361648246071449138911078777535862388644557587221697352148212014837151999790201749626575683838037446593808231775302885255141373592713406185862534137674597434928384494152387346657061453957555520803845138264064906521520855273734515144010202963359126704545349990870456242614248491509207422429241516732816014784445218050871818522769550669423937876033210563740576745412644925630365572562359900855156107679517188947217706427051220920304087904125025771070845402454916097166061204693639909628049967293568827442152102101239078179136422540712160092987540466170107766739978340263120198566660318718336985179892510801525047248438818418166753509472707809988976179045218195297167209289623819954942160337363188296181733668563202644768890514073968848763600016685561309549116682577760202966965306917884872851572101878812474795905710617252219609497273366261181997905039659848622761844937214318232811253433803302019076357600596243332350481026226748747237268916788256175884729935951474274790384329001149478099195642027585830851960183770200280077646196424838070528118346983837538971486471151659015964305137216369697361021947605682594701341071321136904363931049828707024568415251149899711895387248883047245002118575460989680775179097511358763225446488122527432753708627410887775583746420701587290226238016481267395961888239271292113319124907003338834007074336774108975101266048646934114916024994618402350542825763663824557531195082953101064207073898657518316657603531500229677101038418051545050236073117336549423308853102095752491939290006767811429761036972711933187196766073069484806505797085868574654018521260294090760117233788045524505230562674708964192582365075778901855410303391855281771776946764964969675837998268381780314643621880640355963929697356196094111617588568661568117321335870671314335530524111776189392728710503722986948218091269842593167341783688493962913650999930448211926813742427463454151462385930714682455061513647225464916746488721923818393010263089701160727581147312051530567954965403276728370969831265263195756091493808526609303696370289433995630275061243551011657909057645775174364204415182351313023509500358121984055131837252870168797461044338420503150591054354790088453084542623416715511730740240209855912285649533515650042581060773349435475072899036724293902194138384322250951837869275783085918571455453252504660192716052914019961501803780575506922617153650585383817281267801531356359140400949739861540936677902060319330981729083053967310244869930556844212423401158378263700056915719213396378734988861415352398356313707266566820223738711953128951003755094192595590591603028665122047931043705071062918594864820121890832223343832263032297673429524549037001384142816108165393591884210313062785880884165128843421574671292713703079174730846459058915675616438927291583948759942716333824074341464311303727566454202177677009154884872068465991292707272282123157099707809194194656966341471933067273450716258609837808170377198425606801432377628329529127383193354152928355932677540017609189896078739725891588654367542375741834285625487337548856919155776956513310762076317456399793434998048285820323604073222485579810212081360395584441382047697472994743585098052652936301458925969590514462435708620294371301912908546388338967068577370203494833090468237936131450138030619991078497132677944070805150069398117615127972039701369411478846428333238288241092959389984346780249672229316714183188672388874736993636842741704436664999401080124974184736216539413705816046861456405584502667415273460341862072683605694989931957215077015140289528504034656892508380528110174826566664980185482042922228782028064757811590795326169873827226858660789576955720397279182926093833726221802644128236977286441909148138296167629873746568586415873122583441538037188852963680415618540599385468661703333351208399116367365258599337177656653706843987429866310972101974677829901866999949375438315325685186360231109518172534025856534388370185105976564936954059209377040474263892751461851359181193125446798496124412198511891032710405812508574972862451251157068496186863839664141738238014602811462511062650646139175264002558781157754839874334109066789073366872121135381114383204710379176467515054712565521635850778562681398579401015868620156248067429152990508987610630890390973171731331508668544105772803709857560661041091265944380798522879242976844530765240639759673815622216846147616004359373836044278505760204065427066214658900450267668850937735698041288060933961626423671478141815981773719019863357073886659818202704798086328859813333730563336918087504285142488270845434658455694107376457434752733578209407975613571882904716647120998045369742073599622044581860957313500567202848937743820272827491983195547926107203236515815724499896766611353956195359880576220376973656073923259458973264506490263349642506358021891852071806934287490287868476225663373144388954394046083213668677372992674986358732427072132982662404116951970120164834172428990210487314691830462993647376747035622186247980621936850464375632667249991390503582704433706119347605417842935851207084493618700547023817645527061647942819917487502123455323577440861512053180378028341015350653895259632555848540577239030269458977500891742989721926235533244432528974472303881691584952228938686985049074488290756457649253447256637664040509455800545610219291944404990719606695338245709630023226478458323638136017552983789302982102845012803144507135725631915343780136340058041474937760553236403192330975024690829834518850808506569101063468268499462613580940453353748130719119677888153075477870721415483658889599863427009006913933989196176821432157364345240855313549732506737216891461869251437278027136276504835278433445318542880090650373184303223614812948031777077719641491293073286301083745945712478483408428866576300377718858697758295969740235878695641232612869092631950377314202689063641226980020778892329846549619384398961649519388201629111508961505191297979510834575293057367689137824698382120226954233545153836788094601762830341794506761527977228431144139031391367676531013010816843323380047035591780408696467897506959004252401680709239314677018675847359124070885811766682260554139036399499465848557633054777133313847301662518480326317626314287727767795836373264699926421092723263235491565894943431673404344859860171584853904405370467914645077748699608321921092361783918429877917567555449538321626675385835456854916405281343903864514864532778390396289163198798433138209084002647080731828874516291047498865490169149784503317451590936501523060108752341563956602309350865460542376346320549225916593356723539589813457144416224218024981670088294014921894688484089173060104106114824228844854000021079604345815774975836253053909949789417793009513242616224499401727746142415327823937774055457282853685423037320493428663238576045535764672443625151194370528833590481847221272575361731077785388730211944576008686663681098503291233754097315738702644356776094381229989379812718933606799212712062324849768379469774142727002241626104732644876222709451737935895220317488779585792222631643845357573389620162322787246313078573485080152479101230790290903200197243146850733915838155712553545109525086067313447459734460461664208089812068693414841406256240138293894675327195255294589746933013164358989771769188983075608673407611906221724488921725218650887403648851763582938370420408146899019107652388256354976714256256337058212489794110289409930361054648672101124397912447795193546631652540739317938800903171138548585980235172164934286110250232791579690751310446200249905703950617454210331945356027058977514397280958314677580018679538324471718215555349333251534914359244516746811673045789766047766409395545425991821959216079799875901938173733667498089419406572956099325041455576941572106250747351110805441241206399699225097603289578472464115564885674792942241889684242438619507791349051424180152837688534166286383566091625357326823082925027446983580390214399725600020194684325258933709445370930533592620035719821874502046122090691782478481593726657029772373848345557993078867653603611360236209297592605988598199209464810748090727545718767818991292771389665856879405230090616100440789767813539249866860723127215179578489890255462973242054979742708486660901320526251189380970422732637674972939408512069332420745513920398724847305481977414116374819143084151964473164136733950070238676993881683179356865232513659751439285500917746734415018765669684714572491046756458968937756151064616168839949355102719062302641191916188574208964087763827888591118560470297523988763672846408209965273822645450164915917839701872245828116021921533203609664434536339136611570733108580414460259914574068059208793282868647985711993505553564598762522764491134108841895652051294288156183375742633375821840620589361926551254785002387424439820049465778557163003806345118342366565293576438554775580429979861989487714070726475122814092166902755260371573781949714222931874712710215795542665910807576139426233947552881352848036277858335372550645680010708411116172740209767522524643206975894554567725338076060432411765393122152824129989623501183469106483677771727782188438555644671943295921759343774098413460806781821511294173226491554397570786126758684912281017595225575124200184968535986127035425657580795205718899009082378322431765491434573366309169391316044412831158282823548053935495835808387518123554094644129122207660812655283617749285719316202289937160188811641401217369666802133855837205282991017281208524916145853564424307901818543835091581093948831533287238323262003268600558219421332792773538748132116826732525206906416072166754582516173573907452320864993647189506949407172929311815750234677301088887419036940340776527657097634813707108426433836751776805010357228742578575678217726658455263354889832375945230347341713566527244032036251015559254163282628710441174414756353974849588025226717697987492094923165630762900213043763534360037169591506413083168427768112545345100410151954126691539422119020900253028328330806921138698077778842707220101323683702617706631796958576990547445997570719182331224976530016421227787631932930184740836233846770521935435042506327173764836826450734769676368855613932872180001708425542970884740910278587476103270816276698800443359141773572561367703975590202110017610313530550755111698552983960634780261262168078169164168182323062783073546764331833405492295161079913378628431397920851314738584038093773344689219588186163083450913711782050345733866256459477149612248259364637742011719725377522544444023976116275638144782849172497413702455643397188140775424037341375193655619897712194466836553240022527065588418196572075905717536224981414715506184882759737927637993853958577934948720327383191926037158700153863900850404559876835417539393504444760833100609930852697689119310264543472303110311805748355049017986621504587269035092630941813784979972320131338991107466505727432089819751624090057442421088912858671594718109341492692025760027817314356388625398250730932977303111225610151172906825746775274161927791704449515479777486080703653542511553728983360895873118786760551757099213249340204332944624029149850251382623972648263953880865591840716332047033313089521961586536053933285495165138199032842525908270954937457884669371199601895736508319874954477992503341113446698233538065371871391094068207745874268574340802783106409504099206316863352977365522347778421182560071170578490119458729474981118119803088548013607780146020764237349088722780143446040618022405595298463598906025185027126846381341308827275057854838148025866856188341506321542625402402632409953751902750180250201793357506364765673400790903817210054649220348770286162895909971686232690305587933233008245936663779525339514854530723065466568523469073271441716173151571481750286121375880338882953691777347851242700060985124825767253959687038653615413881765431295333062255557646799390580087671040197065852568654592733851182320465478389785045452050340805650343158209131749159343432527619015188080132505393579862001432163187655783243445366684528549236059755737710412745825583234373406822321787736964266510386292212411438991821279750325768891266239211482060713428468509031217815374921962738573242243208624338165831298782026105452641058782913606354550979847635989057051269080291045022239035461694408236269954996704305991704168862374470943506601580934183944208942705252738775827576395114680234225934817912746063194761455105828611501996782486090418989823248995088928775914845564698533473007595680568837852442745225932501770428641833467810369284039764707429906742622857922752320042465342187046899379330575495719628976097672619555124736340404147797179272509341547060591374830997711900467166427233480255830794934918998830158203951352840693087017372063223079717252264971780150432342748050642146198505395427936103349227237167925597544502293912737138553066754540541051075622091667874941865280896816612929442026185556436276669594934904037559248538996086370636938701774548579149473260093551778159115258459709183841262574523714816228798097447823004501253429058397698238121518302244162389424826893898491851480725906006697893426080780188939457538077215749049839875987766819951003051664847459787562117801007489947954041142634158055681381146873428682849138645877673078055572089770461083327957121599025061555977570340760937312931539556984403464838405120667366728644579360856704027504030943519655256226335666066155053760052475544505872188628165168834431528487286174816169443191695639295901165079955260716933384996354027994956557742345661856608377758133317236725739531866870016959200946987358625381762493354727509506863540061717426578444863083530880468198618651570007590606667401627086615458523138700775024187960985208515025082473206641137390844947057407839599362130399290959128323847189198405566888123892848255406319826102510827851328935929547788493707609874978678749152334477807838436926398076674623735052489136859795725407359488318099374547743889560697172306486341181553131736035683232294686486772821092492076952082853115350050997061236253018937441130124858640719802985305519496166890863095737392562303048225513286236214814523479745410230256849106162609166498699355859262254263625467089305968798389909011167513422229621233172474357810379394711866634432730728608539293678162466972476778915105314118407023793267021228917585213479468709359295609558303976052842019661176468533718839914450231405048416526326122429519108937393946780131513206671114127707577264254209430311813422837730405021540416659277047017444387920240592261739858005988464453657631920960157651869802890884680706087379383589626435947001839247172876904699978611753843314830881877208531481804054757587361013818925911022406005672557581082117401291919151704220305706432738310495913326282800990252081746988743717115838909132918660942833917298588270902634953757198476542292156564803717229288930422301930143964202102446282344892251834124061845540903503429865406447902088094564294892015887586896727860379975252641918478033966244133927165128220616874848755406214165488650146201684554780104384018508363814598996016385225299197774231863320639446271006147610861809496125517005977480603048314604339902366319435823784278911426711462741501769243770571354153068041127535881498958368964667890658453470780317007852419974235069495887392212556301272227575186321161461468908847403992474163068462882080426961356119905109975891797096097311404700602638835045385772261001684773683648405373294193364029117400858267522465989470906041220334298205467613816007257550701355168486422501667383861112974851099851904374951608083574538845179049364606434784697694682473916759667961357473542109021511629420720270061344849636461527211352259894794511669405188771646874532098867538617278999186525180184997373242981507904655996189741057291159793457773885482735342469652149809724887125353202292171885927490307743716876021614541787572239533494026943374224644514520643060179561279919974406647176574320953813099237482457705315069890248541701699509254627076634683559463884033006135851347607749875483083489984099412120977489718615203140767963579824111848201028538331870498193227147611834328333635868713096557144079097763197644164318641942789511859972064900991919413446031840855685402076104966236625933432851551049273862198542302687095869672967982681026073662774969978887994626086723395434737379900954524715386629751419769431213527772034138642049972239210004075174778030175903643632419536225223141754773573318285563922848142222879135266781852335793750865467791808263569007840067902718984999943990463268663230869296910657041347068824944770201504184731533540461112792624665218146861131802068385689614584141236816748506420617334447395661557044513882108567152285784722265425906558391084484877090174194617333048299962347416148038457201706271032438118997460172683988317770175818102861806949553976615532812653307427785484328378417679383990699195671373750058759877130391266278518789570891936689321902169691586634664908376671613972320429535382673250019468122622877101320749002832809583331467985848610999077041821547675743662469746522454376170476750416387638236004338944083379861048973578447667282735351172305404395974113818960113808656319290297660781139821404435194384581644363800144899605286243330209727237445027930148029883867974999841433859849751761314098666774623530846980061946836201946300928394771281395526405952585462763169351255630348734135371673598980236207053428170785266587292448202335421969665294091507409126176450360654616328132780591465716228226330743558902419026910100115100642024241811653997213731476466535609088368084774192867433323554368268255118994356227195769296051296234425116126451703564153086424633007467774175204418684513534401937453610792485907305062793411019964185742554046788299732206964176291187867145809718780356471798575704133608228971689774292201745547249186342119769930905167183085381253508885968638007390916513537147464345349067073704783476628265054450921755838841759429022226505666915678860226367767611049603559082038653463494378583087324452944528587239033278607235536372990429043797221418624763932271017041962174890345548437082499843458411756448320863683275302314992286468083938321909601920301516544269975877420630970702653316342101895107487797649660859106071691249827487511954498332145971868073227448832273788655102549871449617895662850083037938501485745186757452109886751150168872872015373761907563428099810869402399623011419270687771094408508581262310385472902859668452418509882068118246187479899683534813256761680816034633660785200533867777901248903224432328495813801806468623781882363394447624473955662536572989354411366619683414032635533937511179665227359903068143820265942965830943055391227121972132172210795127106719560641115617794641984109479385394693171763464094631879677049694188317676416379717635572753293222154641349925889665705335817517149334235780232098469162805086944918080684536127246862418837457769811178788579078742141465359403810309739795258730843168062859175164925006002708839691528786169824451045312082995398298517372848777990724423104792255022372289012823100386158962973955040583772613128296467517289455724824694830285811896839911222069944528765333131870031312236812875565758209916356404726720407941596988369826155858478757625601292989033005342737741612748421124071952807220527826807910564842411567007812583479717043100949090632115105846914934286171411275382474302966297053459331826359651271247296167575928363993409395178211266721289857148158317162985771504837498842557840442554506598744364106970819023323405921824696582517472441596327100912669033270210119633679920544538030312210895017737160060882082602186350993029397073113455816905602486865912450362997488800310513015827358425315358960583710768962521610924824970615340903807925764717369973329502897898703763589468041483837733634346330112722527748109884753034063578079092165590306252191802571870372484125756438298032035230964437278467576451929500516143293401697187726931168200502189376713313151227862059184243863117247243169271479090963991138114698023790264354760622834783132479873588804335457548489210868189310287872902803303579137161955019445097002927774335590593578520213030163760368311938763354733060336227586572019958419163583456163916316858667433165088839187431909062629341970328512541267574127819692028555735610217946928370855624180845650695568143805398688588067857610124019058034580901752032099368874670517696959835166895163502921152737365636493167336923347690551763901663363728094301053762338895919009706123275728449318376766010679337974289576202422672429652417598950277167129497640260221199657067987565676729377535408809718111004543823494739013456976154433927644533077024516148041099804081398061765822651743500524343921992771799800442337007328708958285786246051471621762613148605493148797548235573764903632911396791952026044822492079757598964683621831494834134302415898036249755462019542867020953918134816394352475261001936155929599527137349710895183858516461912727249335166741027196705080239595016429742250079646152120239179007387062570452062876669367738118190081802741970065116892314495632370003030329552294354734357524672442106905150929267466774608958771289548290810829018293514218330765918301354336009816791074489898058280398717820649864512352547241933265986724049117749818322491667871697760752339939885233672859076691531820935447520345756264571401805475379493817045379576285558993912352531700496851203946268886095462060691097850331358227194165242054587702831708204979372652057679133694955120943289204433224329671856430976817407680699730139284583147116946136272997983478421384466762143322608410719444981491598432986755521416254785840403889195170425261680708862588438870835230009616913467265466768190938706367566275361579299252866629382030314197830336070659924498272728646941281526472685877400523113193627454212797026002821783567837708947123475069646090688397935438493889257136564665087838973758822615181160694658322771852725887381110119600598704945491256596366287729106740535080856676078905153628252890249511059458977291319206548593421171226539882389239442053243034977265072208450198081587887977591504878577936230208328891778193985985416384745572880657184911349387287232920556967218532931866870589461183489821865875643387435053049434844596253282746789994952569497868728792788946655975063255692686853423160090003230577547175431681173286388405807640852513876450081931086501547869384126478530978920342021795551473282838502840272552070108462611189237712568942449819377874320861733526720665208625796814323351469764763872297520392574327504759809644196315804659061529284015820601456816821305606523021771196886054292167357868212477820886970792741336327222488117237789103313142322586326649807004966792205908509960414375765342715017191039503419833791948181891193977937967835410356918175620212578234866644133711734566881253357777879247127098271808995934498462105907741910957792658767011636543718888147855168275869310950896813127973334890640527390668088991372343034913425837048528773150962021384378057010976009467831164710948022415763358866259869835821680606395642610183818927344253665296816451689529177295338951481599422662387583735979035061905535328506831536513610204002283754165624880841365617790654955998319527840689151906030272046426087521412029747412728383913535630450326308893017461425453718628381271933596615759723864201153546780025013699616622635477756205536424267430112957546891823551879536428338106942281200604161486201948916900877306632224662776516841796232933699991724554063946692595154307327495691028752413334689376383211776987528583774604933595724659059800808707497936331197564961807176614211712364502791952586049695334067986007286813357051423943864399595349462366141455986225428726844104605655835830197189453580792918393240355368587528568897442426730859987917340223508705102233861406932286332144867885486255748582961955824564574115702736812840980162810343065449405466006689283097201682165171891566402673139830222233253560562147144599704421129795755843952998709937963385625025520594242407645922618526877061380586776661960813005399076912297177213274881413057500199629450338884466120566688810183150725154780364129229852930448827111902462552386847166094519886694744642414891023475373246845828526442669176331594763045595977766432872728967727317705106824777804945671633565956553771059117020598844161667387891716027516332024194010325436284968345512592600411332569420672436606369955861973539345292369166685657450876178891882064801853764466281357542654942689165790412987786467651736513593060471785374818141669249538887473110464183284528051127930225560198100067741336988357852007467835187484232593698050360104336254446570173005990650362785371685492533366820414014541316028408070286653382843169615535114123416050700698001797612976091901448012810637700258449258268329296928329999055793303708111784939798125470517796755189719141115967618105614256741276640674920651330873785776444046813451706954508271844957340911014915466966762181690510039258129204127268076610966208155580555338834453822301990749240441138557438997694322231237239771014957808301896850268966614891405752933729792356552807347846884202573460887675944775937377662517629545349261011723736447800693092007455923376513127430123442950349082616589934470615655170053018163209008462666912339951154987497044578076534404362738100760216860262384881144581319372469165663869147106275063171542977279196345340432171068356561152817855238918134721605306624899729356075244402531860760286362553260341716670092750710922465875290464121269003045585300232708464605308936900141634429496671682519097847123345787966547265600415849190861631199454099198347942492707476251878214388891728088654330534623035747589468674149905101618313215312596050429020399291372063666368011343327572528977024205304754801295223101557516547732326082300957327905723841146022233238403440553917140489669341735963797108178304474205430181414722320095116926344723018992814484528286661298092986656714304143394884463089785218191246400278405876357676428474059451559079723005473513865198232998397033190514201443769663171466604414695899370820455438404967889604612933702209840046200769630148616907679082134037751023492597135246172758917395931809869472111653058337467479253284927385491226509061841490828845267904408480537212659570506259114557133113237838403198550134866878819307747626458911099119452028677944091604373229403576701956448234390591932904603457925815357196690409344605088511553931822979026774688525713471102422257752760221331075849382719603654582205315357624211933395846360412702540845796494327182778304988632191868966371728880989327734225315351332486667717239461677461390407556034096619147172101567793261942679991081530150959184297088031703017526309201556636900089009846401596368288017972771387925616947378163651554771537440233677106125071026362218811108118564019228463295054009439709445494490865718996817115340823330978287075464973296027971582760053236153779904413637449779547158351363873027413764404370305687807708225683354479048710491651306315720918428650978972448987130466242694835860326465691234867983217923539131913804791868222795438329330014399774085462235053633095398149912073104635191483978762100586910732335975338650101175355698117790073952905087532384081558541123226499601153863500641554845568567716780162726507549250640466527945654176737068192769719985819610450464156344142592655249344575307425356606359150376225631289247093746202232112952502134145749993475552447069505121590471086444053442344974614885313388151272259520765325801759573575038026344188337820449606930450153361360901280131548344067337006752788130937681613533262964835045432260091024779942265790241090651888027066296598840455915683817958223800656811035636240266839912080905627040574875271400517525208583042892343981913086831831304549271709498784931022321354626765875485498149602195447286916290369854296286886213545999000833891636098629678121313596216878652758605424624563039265237617121487922573817771813369717358183721950976280483505801064226152887699203338703519838911531105774742913227646172139767755945715539498344071584075642726631453686004246030862393706083656950769570614304923132871080952589736751615951838294201124957864797943322857691394647423435724537408492253401914810818104575640012863155377001879058200628559338368090398290652062387132685332406127881394466144624949515819682148388453747105710370835785686574445420525982185066500939157044092814665779876156366989283657069102775446879517498248681580163073289823346791508267629701541849825713044806789273111885566174724458413114559913277731452874634497594076439924194216960382242291145323295036408700831107975273256776888181644832359708112911009040961924974635858037206944270066215880031187675077076485502405668981709169404004499770470549845758748935383244301261949868035793435994573682103751007003981987055246649317352453319412067608725815410508043495842979058928257686555899267657964871096926608790613979632083714592147952758162313742768475241142112261800020297099684479784935711015895090566049017732194209659492074231482736167928037797322945863312459514999921603929719486058551223008163783249064384121606254308618974565747016077398826491558869864938861274673940532476676982594681218427696990250703441355390619638783601819501566957044932913998835777400779908367324641650298855728516980142419276584824269176870439848278930615598139399864000362892900234600649680968905372705834269955083312502925288506949331530067374616530148458466465702200426776296809268459608533384400965010110051029167068278345438626729581655801614434961176532042893598069628791959425259849661689717134528997473801283335827169401882681814271671440266309824330831248374414041076051030000725744906118235576594403323760723207779757141367141528304108055932609276382255638572654720801331204071727431875654578784234854664058491388407209615156471336802448644983728858112606488292130258573852098802034457365712924970777570200820285209332501101747674038871145541965891191473349963564201163381365918671725834773690213404717047195906340623334023792809247223702346828737107043801915073219030366168289125262472040981399184126207564246133629083064688343100558607147427750068535044642984050551727203923874926171353343203547723661367410299060164727527292129344433085993001003543649325121761017234076855562698024812356352015797072317800412985531600384698504953079847104563354638262604377547094171494069489782828250309513204464549567416158768526459908811041570223656156879886810065375938030605373684773200219003853983917060721325480087421927877060444470487848435849402119831558598892947471871791828657696291257542016713691449276531600922648384212721563865708107535530712621659394521184215030222762294808297369005483732397392727556300583160176559506551319562611027762710037224645735125293150882221058441620407770954034391261650597341179805600276134424522194696175330450018666005642836909214030782796644877850899551148880756143922900539410927559204140500571669130804656407623562740906174421690097541816995831679620658964105476085996070343829656668240127965224579982198794516660422875334856869667273480668373617714987576605698750585466044096473319307612975563282549710354252271811246866365031734000116601167520672028697509926110774669793703937343314195115594367864223785891935853395724635888141907624721691209965152166343667180934122202237873899806208597985878020201516476168387686339798663176933923607640367269456820665713639034784598403795875145802741817854573863907998692611699196142626029258491198975854926559568998237136342847118086554145377092004122221794801734459419998766635715157281029043693948485898089777770872886128261472014280260099533684067054079927670199943440567728617485422791832916302327176161612475773582838030881967141320852281025340232792366499601868850498931000271550899086796264957109369318175860941040536290736121744276659536898289964135305359873737530187777714745192050931247280819497287911379922382647337122303977004659246361645383200286679106222019653002769744591135863738319992599117696229843067185708983813642423545910309184525738755985954599068895166733881600530668693304014496140552235290303308200146018995223681775741976640495289275522391745491477189363779923712498887401101768551047724922695957970728392721273056839404770771497302833218945169611414674623382763350192158530479029726422755723757901302188120426173057665648185225646830199798376820982881166106522009825959732155149865677915568337539510245667461934252190598588601153420348837104531954531331205509484208696566003387516044477641584519901567173153560312492982344299967943244939063934149238950717570655155523482281616871803119049320455646009033836257309707210115230826307673917809892644223867387936084510790917887788392600904796748768137777357413285402184011174461235392690130657366444948306930348720871206764782329349791886893765199603061365003364329067797530276131868436793097931098018423736940912769943435092668869190552147095485413542003452717618522120345631608195800279679052214056476748956377622218202086420037979541708988209933456083916476195046461261531305613608847637034141106574653846712906175262132666402021293773665882573299672735253810532728895984646652076927192068460832117534328001744161948696736042945370890326718508185619194557226857279731092677161513828381802165367388748532585060013264117513496048072775406116057254046257462343591455822438963530050234151555313464105829345457007535057312956533334989503149120003351539527761878149497461848111262415993104489691806121066431995655362034811348393717631152978482782271124075446186767863660350909688235901929176010846842610469378019248345586844244250691687794445298967154306175030922817391484773284250057949972586211629775447716576595143703138557304970277611602300232057858667505989557435466447926062566108446790205469899603409920290129566902284556120624349512973955964784898256600391688303679470314533955600955544686322113321368867711666050911213803572845758344718645041762402153314625988055522107578864928131474423478011776574700358095964124134694292612122088580596815825355304169692998618846869533991303591885329494291819210703349135030963684679129404207906044225487768248835136189204987614559447677380245897027490635923550008462070930823257807507993801228782075796970392535669710923718150387709389227702848329260915910725746784703766027396924171368879536141514642477586593285696185014536060113100905249392046532409899907524241200137546437235990659870495501878297842585718228963747159589811654103768212631056940479664926535635758070982223165645812347115352678501390229773557463821018270669242822829376728484495033950179497677566422447645636487472869427295197560121682559457529852223141798825991936761043090243719272328993182699258972564008905648338366281869102257200250769507056804445940029846738630989399643712824912056220049510549201434090974993281574779994636392392271216736499540611896157999036559886039743335517438665305692514332823744449789871268639297633239380343719545871339601341224400268255881837395707747145666906491681156515369696877169313393857352381386245094819991855807820569372314951876262441775143007973196949393509336270475879178431716265118520776075972070837172358519291924755743868036184835374896641736276550427921171035803553759222055932844729955211699972649328724815246027007808744389205017300122471492284178859221310132832583162860685492513687096301015620868109520162301335180420847117379433015872592492404580698843549282581139259446433209423363743775480894143422368360980665706798756167200323746858752283992018564145592670332568869370145281579838671828429059791510815558806216429870085026327632315413778064925549736233708180615132869808487007982381568630455666791546334105822814692662821731236564130212077964217483761189786356192068519905418358133161394296554275494775445721604702194798576149158960588362786747476343959572775858951199093849993098774786943116870869448729806445616762319413426700314505175579604609219593778313306090761442018374803483093814474037815176363211180870856948615693367266072106989798821688880321124873614131732344813826629463197943269683660922098503054876421293698841238057614991848121717473741717442020021275532108595192263568990837298549817213845459469520064200006788611072149570630233080104319198392552866022990940043363765704422227359641928223863626294538428301006422887706288376430713088134652505925525774495661434250886471189495005376301390466306062602777996886657214920610318232856156910341171799280290860387367253107523774860580410122829289698866609217158386090220863059693860605737599454107978243957573532348388420070410926568289690419478487297801114083128234799173193027939710294731635117862078697405482910100300478750819914279615226049911053801482184258731714952365820898380956552713232001763659928729600562223578578648580155554703798004223596806375507419904902356184016132943270275822897120202297894083068167708980964934765755979878304837145195561404768451438559366677598363600182566563447097214897652814376019549334447657972046326173358288376566182613818788526125533307929504553182598497269908860289218767791418720694114830749974776538627449846318358202881042641733755925816393445058512892109088750454087274230112795105882960062042814510065703026040672726435003714930933149015187295304630727285872470819572715088289205347884154448871456399020035230629464655611379616510607448183458381266434446259010774088920083020786982763232261143072099406799188495037782260283916929228609346307367458462620852000367391534665159398700385080386323779566719141770222284373526374296751801077915604568713922820580397065678593281523758240370330756703937892101188886352523671092298104602989869230309932388552519993702091957940337033506693688144052239550531427768832761591646240537521129598407414975520758442627667978360581890828209611558543989328506001218989026246526236725830104217946962638079383859079534013940238853624693856945224252439720248956882834743206902245752009639347813055119175852105362184159117630478190092634044130197228084674985800073956996756309371640799140551729117310089426490627429954235630446874760565893802261287545055065899544760033610238766231148558723356956481368428254196436215554647988346999552238555390829248150520504837768622543957960718409443038556979371251002487884170803490678801180166774602194378621314317688637823495299680278723725763390502961018343489132710463592249862394670137542854442141456018431192770403633518039751042692542759165996946494370987975368031056233004394431438413426453539735518361947086716244036462989498490456789227200939592100278134092913984992424744489587374734448229645502693968401806313018965281716255441429179862514085576488357864448929718774520843267136955199266013664542853661460241773729548564906448135998645749541316730527699802801983296918335338450518613036550141391655664647679328088962667046190409385848490189334581489561743206913287359416863491995895813607079677121167106107021306476853875867051156374560402910921835723052329130742078930442144535690015583081041540230771923511473834112981783704598678327995534676644451971687002466441114620814541226627210265395113937105869947108596792288406920456891424515949154901511131872905058721521686042577116780710180391084790309649689145397895758150379662900806413931393394902614504541550511479447400504852535851609837060248401962015840984345251746611801811962536056479608481565689225080162126718500397895912293472429705424261722988424308929360447349669259403372598665216759816092272758426023018103248386576621378090723873815641292562354383359496922374349634384957718748950144640726854741157193435452866946915630051628163865653214790473583706404820290362576998428317496250566212192658557861652070329254987629382692517400033229906892320434078000800435649329731636968281097919026506987861245641951692720648217018946448076183210131531144290280653339535214485947519106012295375612997522006640038195536866089507122083995735418703702979718906389557826600032459540809770500588988932324288346972902081168727686238117079219582323125462015542262174340840602380428529976658659977936443885159066836221933817686505649309491356929350226205387256347610108637775267825973747165117568241344354067854704127828983825971161892913057784567028137441870736881642970649925344288196676391189480416669908136739898690113014621313498835724379606623260850289116274508574345346766258426562161502867655020178277420938898224164261448174337711725975222871981900051980688694910709930097161768944686798707733041916523266700001127380155032622176650131393463130041989481520930158113475487086201017748384050668945961747440263682856000071811805013943608482370405223407395039536004297057406427868532525085411361011949284895607763714354666449558636111278625696236796283279413446778797506194977487368244949702309458263709945171047750059151203786609640431366657750956902831617449770082016338195241112570167693050845214233352133162748320693778245834626737370368781323424127225958749430090407974936707367462313954153915660300527266763435465806797323189371241416987637964401901268122949727332645214641854518390870072911555428989472502453841259090391748077330310880602103575835050297153380265514863891522466416697372743965741982423376822206799948944555131734961861473900517765069002795298405121022378985923594947925520549583848660122596121442286850223762957402714607639716772280386849602309184463667250974555285854882306818560814386677266928411983526226873813844800066662029104125519019048392016706720093153010073785819413578807010006923649630896342268004938957086422477728324938443683514899727027407728675864890748731368963552800402318121023727354190980181457307473948986444306793993646952176802102479307606079447047394022562501951860800013765167957964084533085456887623498728891021043425981914582662631278798152107107862044320711640440637690658918041042257330371451505656915873665060892200460586548462018459456527047102071608144886700895159930252648463561180129787312928017882253904874710485343068276635872563514831558941300658668306565686865095939620608610914578855356979007697691580836676337432089491787060538898530003159870952046007317284978136125436927664087941941155269013891955784245471555356107501659259771000227409298373205281432269216284894678042052914985301527374060903067310389744264558647762829439087643458027539838379779290741002374786635841457354874445998370925108421462213341836130361404462637885617699029106448426475224394969319423591211750915633864944876767989280484634483530836716929529671753331721837429842953131558687564434084058184754484374771480843005713729894739774213256039232909562373744875590249705400258115511908237461260019317978611442072755806435928871511460073343332265277214744850164310473837593811211424933938170725686369352869085334456406098705436037823596258595288368058562154323342882154305837392853571321048544785774958119268341471349832891765468327839440343507710208398305489764710357289434409661560148278288748906292909522538776506762881429160305926167438990718166744058845066054335523211982241722040583000085405101524747953491833192262696079983580482138896681660464687694163121902584318267204745503164623620166329579986018416588642987943105164235535274778027970194431705955898847250280240877817901061053995276382019482656505245252036779447417963628307202960712301346219124838317784357187991605949627181171201428998147958192000695968462472707024406352576178882196788266069829959599691552148316553458003839827920995912577734319789125394152061702728009918849375481914480198576404242189921342864391695034683728313024186979805181334150945822784574943785692820423218180553507687112621989702647286790950252327601125169721813015765695009068777363360362637368774668700234949543559193539214260528938949463199486420556217806401677187151632473053041895319323601241423039324485148459615495575486351268587490330985599085134915425300101527953090488921183490630672131895133630135156431244162891054150042603712743059030533288815773721501892935776788432504816140026355389045402782607291389269478046521175808952357229664765604530590841932493090607903652732400173786735847343787116385669458048425409738141688375387948113532046818246511915832088648043978121218252924215737019240977451076031089428857726919000346739319373119596221545923855688655524599294883933908225999165498519795666628058081655767076846126401558271447026659564513839670496363453973381982417416040919365246582186991282579638530244194449234442754106825847230451876792358624327962416123775540111263894474780189913742560862729483411235850406466818114266568309746747235657021242233682535843198680406796536209815871896500997765370182091302362796850257444724226326811457541972219042934534156851832247265584481456601523485858264510102752492569599222238920236713437579645430896679283525519419138015677776527478868600906254461627131365917562485876810827826804640608654070542309776800689448504781810667385984611125319477512762419153823929522399203897165283660740388374436340592617048762873388064737006653644635997267842297540657192461306795400992941558604219345367499602175262726024855163487919490748368162528463557094192706584612693714961726859377752320666421607230263291588413533909206967694730622361496126714087139137414116758414521457271861463705949339088407219869965889655436435747262748779898569508865255857491355707948438605335409407086769792301525140956095204111901144581071619782973550936972541224451914279099974765592363617848551188548506855969006516843003907081128154809040381474017157473585094530709906149432653491087860176589888508689194364919517554374235339474816245875507738735429629992414100852727988632938056969010044037213710056632838772896462943340951111298113423769034919219257075995922376945855496140299069508566863818404667220056795615230598089760407791475608659493738043518655238128014040356428757886426095544551707980983045145457286502587423581973475931000012513563898823096514799006945367044946702506728406632980963730755815570179315179602734588142572989423965688783122530856106852463288432458713361126218864532322952909388655062695301825116045108744026589079083961806052641301815286171182384027520880591230569555594540110858083105988445547790058600874407346933043822293375490977351422629375914670501187805603782787246302756889155974539312442443510144531801086461023248119451558044902323838775888121153773233524686362536439439450383388563922812057311209500695489859195732893031050052451943749981296444309116102535311817031488825330975006308961589923534515230534329320489577247219213432861903415020744946146403167657071980669540290904137786349243657837747173732790958774436770010573669298062659800049371424370228090352760620425286130660123295425268013772051338000000854227180122373666462253638405431631884649154102987095419993773209213730500002222670569848888673394001664471762162003708825576136619820030368912736242566587079412216829484346509277605810888578905817727226327881073820001816632341669823312054714443314661564989472809292909465687687103769528411052835398560340170931957883663898010619376381454583717355875836755445608336039936499103041890859430196185512834411441666210649690401665065167670076708077036002478263156869552148104008306875222177920777404269593336817844934147500620614508349374096837074219952664371599400173351344637346545984049737361367617843080131426040640012847998927456676617508315797183152360150413387990016634763952239239797507554321741828202222211940290985771896208933949971322487554196443083144605095118006546566515217701709921599257467579824450714718511377268237340125237834707254127083196095434318145691140948221988143877451005545228690181436700051850470802365459205843007381860342524039310522262303412657069651686041555368957788564824501818078551924614741697146115798210808445562450066814868852801352996980698093833564732816642450525897249126972729672312525759401928238384286897114865594891952672685983718570307611189429646147386847815259736178451173064208788764537866869827169080697633323856347397851278412077135989107896531868735571215551678946582205064920998578890413569563219578907010391687035483527289670168698540892605261666303490025134224126701549497845550316051755956454596960406243591518898495971329640460489579159141552739684395384658577267250134844286617690319446480230254552982407404995399808159785809012792724300487178625674607631102443968711179933050042326182738094872755065483575262516675615942097424584013344336478063729226408719546602134699748102607383849396528899403264439289196130676463793452843904251260796949795879553810742614307408528371960677751853560969318282552757083456469320379353459418321848145020451801571159317669231129880821313740733446140907851464129015256711870906100428894178722726339602170246194514161135796655275179711799992548283477615541633619151546382964681560795091119101230287670177632736546424858507817345007621038762242309481588674698180516869621432964820823837036970142016065777195751962939185065579318182137614835673266096027856715577798425510642274082564656323741324338325855050376846980203118270937209122217818490396880776380634042115910420339487380083407534621217751201033864690798192410467623504454701240134846979224785262933238313694268491477193195823391168863535398688914671487420823266585451920870172244642746076432030869743788463100545239997691485088906875541244768067481477676401717672177299983385881491394684090712550146241017661416266185246836191914064442374439703678045907223099212518602425131359062299379667481285301585224040062103429548913482973934241066540332352314609171389975973511848016675409710808571199386202057997141781114631953625445153425493313184100487039948558625661727755474885728341300295399451834522465992475297258134905150863722109356861504918664336856047884772574778042987657071609932936274309769337097121348984435949532268196496607885220762549468962199549771758774970354222221727862469122752316868947721181569240825527354015327853723084586858041108117105377502677232122604142302544822890851084410487297414054524273163959211394446273781738280422118770308420615142676798660639659072273177513753199208042227823180322749230933983602365788537649492299784882607279741880021191420484332866737082126031158720704456232868657726730041533826021089631166994583278300777377145239077083033715280331464718430702109251350282341137092460307764179567202339838784793036940931420491276009679660358426768889726301279826149679279468994625448521389301823942664220357275610878825436013642834273271908710271752048190163302895853940945459032672015993665441134070332444279354679669892413078971987968166380103711088710690687254805482517909622396495575474084550022450417129933075643542523937431048980852674363839127122407104583297933401227213538930693584468778823118336787545418025208195305567142681887208265308715706877681523081429524477382429912567731827254088891280318774750146126274986558012446336813551085540537036072644332736465043719870829137595367841682813910040487761020563763965464713894079177835758535434487610722985093330556216054701790966984558371148597297691548676245852676050389561976550622577419443442303317734669182813020758821914806716506357626554868476322441493871283305679607148960307487622791241602472054738558858058316158766917601454708033386861303370687397674416966619715402061489482272834038614644792388352328135826900592043381655197605131948165035675300577312709031259469867238550503234475372826737291588009708911900793049024250666071511718149490518662252702267190910430494331036764653186745374001635903937561544194003365949139026297376387437619734352308095976186946918487702623173279345612166108805044907625236623296255135656901515436406295424395872990709657388062487420852964555830673290617304649197635586735682210241682554069246512053769629235317092934203849876222199807557000938980729585453016975373714740257655957191600757442569762454013379565493540208360621295602010532574482387020956171968571982136097401111065441704766925247857677422013053914938542440172567861246424051241399652581116165484289993326168432702207590565430010846206204806860168590622118635077119507456385600281827064589681596522828969912267988368636047063185815745600340792702762215241551374004007792877601926386473912226703286966829559617633623894705995144214269039684536488732035863333802285177951480974513141690423226071847516643463547710857306006273244309326922702644784742794806322252297730587232917324183937111185667866361325230344121596276265190593271681244963618021134307016286309250103674179801843931491035432298972744932840607959229995946301428238932768385985444697268646089149893443162347675441875141631546962677643881412621010472714563313657273085884830695239837984282282829671927648723071464933112799871900054411542045446888594655725183800562825219358308355671037948884760278570712132116559844506918834082553180259892219160678673921106529795660348895550853494815312571962760765611266683966072561021836371548717017220370445296830463097175509679739050830063940676995179944591862643478750678075783743582091818220004105427360638239198407831077255610424323678402072873506279820381008446122627423106966096534256202502304867623892895098610304416722927069013956036825792440746249145798568337114512809651234991908322020183883083724281379250881071142825795075917489680131275443948107470261534921026728640237638899005576150767218931394058964677356606993060012873007711079109966256243038588302425135172434673708466653887565463155260217739569587577924809016317545560181299081249846690081214298858642881264462900460752595472807694170500247487645772374312527792949733408540434619122606296521155062232331310713924434202047641712977266749748764838030024545118035471032720380492408166323251369180935573165155879584173329392072878680014150220078418501923613318519922491672081696851547021875393781007114850269694073057079181476572233964951116847542128856461332677406767312806080090043933578056092272377151578171308390953837210133817734877086600496141010459757960437488455933926466193503855461084554270311495508875334697531945328391256163347179768715500652107092971667579701030149650758732558984132795662076484359684210461020128192374479933410978915869682353610970066307945408993673787482226967328692400998676039070905233722139958058010882613463478461315980010284785849452917699739552133548559483397022034860606358446427525535847172834156105470875258951708189686307988766317753807515906398185989034402572363893108752501993724258259548226210085002506247326635885916022774014440784045210207934352505369462162393877265030754300600356313119391204152209218120275676897264636343926849864315671076901251778319990490244180087115547925996184555800813528573385859199745731483283901767199583062406861090969310464267203227252158669431207006219357758202741250857346989271663150778067548854241615284603519446933244330171979752694524184635910533166263929359992212499292417456588955313975183801472127070828788065401048174408115629656453819727397482005971447139219684623549980709853110222587904448542264172267889625017368031944611761657928905716076527093285137598987881013473447973840653090064812548143112668744676709375829997507224848556510193139049731025065255194756751466588898055293602378616960757042836066116158636135045075018941457866911241464428869628527888404529246162189745476069286617531893632800001440190520052942432800423391696096723206551734497938097611851657835870358907323252768663192289519546203058833285192670610157662481129236201783238298622041281350584110543850072207344808653251679876481755293750117383397198109061559168177572036377135021979217149634769193237675446405142326535339623880837639469553815693789964568586577891872570407724562918038863040643244173006932080203822451981673714718450873188924353438110645475480741249443538507174525713786567445846722638511034978951916772369560397863972826155137289714302238407702981983156510066265250510276149443685306998262268100260323125737724630558656491651485117689634033246433470441702777188630382891597369521867696411832464920947021574796044955404629387632325155763210341542018795029946875445946616407277011094650719499486322296506618162378518354833937730183488908474696104552574196243547037209049855071526494932970829754865010594916353952267490467121728381173977115186647755479431174962033882769914448224251374887665797458565992474978568674731042962713737675118336141656413154134605465025668505110152192688519756767345938174977631274820814576924168220330995080412066975243878103706267095200383047883843383616147075820359712101882861650595825332695647941676782979447869681338583573973168796056197496266359852484680790137153865110188203058609191716550786599979634706800797417021878669840554741036363971073935170510567152033371883470261986332227896887464442723136398835369030051323821601624120018075549697643896606715611725494651049998273133797528814068498687015159630642615867166309406640472333109384080490928240603762750077568628353898782734577688599505700333004475650362849117873479908361655579088053810645562599657706724358585223419608741999498191240921595213244354933420602227978938715321435257709776356452866240389629476670744699901387709673605206962938310091754671248996751040856657763036809767221819567410135715372288920482568993087684276451663975769613711931893953610154069755379760869312634528808978942134984615281719679012218088241903364516114675637349897786060552543155617507049483339159423176201498735254613583010364463254278391396993342333136847819224147887600145669376526269731647327036114812370996150536072674070019362642074179694893362145325370250706778919548313492265298225182810585478975685650960219477285675933338299821818214928058192148830791241258405995032343532017008035532423883892425251019511145842356997539573143830528992386418446643488648479525254436700049209346335606931179992256970739777083430005511648283571763412827625897359725511453933627671499842893545922546956597837974594672858510797395533191571985595471426045006354841537393353479109374164922908604579089191895132138606095102213002485778163180206829439802207664413045383549370993496846952980667698416094922358729177037358055669568936199729699960535272209775484932812109334837013341167309918661038770766616565619516215653030137182177071680001952098902790532120073433164062738458961966776153403135341580263313344304063800647773706592097751561367092485163990395634681399301379579172059885300159677595898298313695402668015248243643481346339526246701337902604028931730541941379750998550825236784306055475348659823025901242077392255046712656902541101809606007143010529798802316167265649202543415030084400393469804915073947910401768832328508076895206094545218466611226280390852419531036709608747272613508323263415541920870389219537008299500673322909627991199846296678813670978165130322911929084605543382182475775754754097503836337833959205193101992625312064715627412397265287982139183258581656639977885765494719290282783056323690987905027495094243998055825699837304177983497455945986903439881000308664505976230182127248840668854786589450731723664709943613869240614929913855817997474376083102932537479565285769606626898858628369499951198671881472954267536368827041210252424766011600914978683527253755386224971568699712408243043440121912092275346899781299319911142874906220354259680117219979173998185654780229944571757139863648491958220053383114194697986468234692931131166735702641438520032119283182169540336480386493495037685304503336984918510142860014074959758582932543879567334487840059086736291056003649958602634681341273512153127792137963022200265903897070023900091083646763075627579120059456625139587795269776675338479987389288964541163080438445629727598011741845422724846983858985683718809817454512363678758203474015258880327278109018833996922912313340863332956826701946368018315326093585161273472322404827827933425379404681891972384241255254668276472410811858847163582658100067571917407312671362712813990287495510368963940090143135798327757502548903762210262187116504127482215757791365790868762517240306139765342367670165399936738135161021700128120332379882428606507014031967102320630393426312315264961223678783558309967837420606928660159127026528128664952545117058969987002210459490973718570863843016972114711342178361067874596087624542890632673696571364603521361184127732910228774929168429432354334692475386861222023164267426652885075222008899571437346706055950334229271644585412125198180586759643559410996660733546724702427783917596605214368585608443270424071093305887192006848999404181145140019645090132686431736574150428593485089705354165131289266026756935299631289352092577710034484548376415791012427716010043726776323333485023916455481217293713728528422833689173950538096560142721392555971487297753737848154729117449958524130674827018366577246307543787377237526505061841664038700254576890583127368122216192393157319751276977949859074922196355561607004921959020730175480068724175614764017646763000309552311915064832840549399509641791258778129611308987428281060202633296068497687393973414985767767809260339361815683170505789700415124619475289994874594715354620451579685583728610532502495523873682984746018379668823905429110372113986236020258746764819451422846636214923256797833711072337728092392342098535029078563117434605036373161232201290241937013128510189422325061616248089487146041894186297497089665486539582370249238560912084595597356811541172687402223509117055892865666169068594756232865517107910840851849320116499072700762706564671573782217482982395935086640804480682439695365542777915636631647101665606924989038494257710685739383109266872819810130312448086551609936620288654299725627449991210785277821550065427481981663664345489292917939980308668113384424101965994811507883104657487382315808245771339817027513584517679591077959491427844387031899825761233574155472143330996221147221163862934424472015376712004409011950559728603420127615656563453057865826690949454863189073576267976243732905662653574874498641211673911752880643834274283038393517284716442422530204008738635875777559828268900103043076366300652198888765554711122213734529949066190768138639500951724605517887619066370831199329666897467417594088857529193575720326331890995306154391470626659312821644650193813442173772226072187317080182631073146948455699828422826941976207764454661777113205819647548125090725790155010517161402453443952283409864638148589732027262734346134668633451058645437494375085948733726301027231889189638072003291045817731488203833310897153369367709664914822219880781630669506190038890465806652313493205929544951455458232054092872818765403404946991655627325398374541790471382183384677508701208210730056116077585476008478079419606240480933767496699175335043242340308358191794628322972787804643070077439213578118175422856534065878393584861875548274649008084339533749503718281173637758662878428263899643513665230067422493356598055522390655009629992136698767826195132796635905706368833602764295088284721421426915593609582233917369168252776230728669307047318155761956748490401420034565923100055190013135394283835966978894237123139064066857285153235912295607683945927280671398615755167877963920363109782450309398410856821824963873374238571118869649334529701626715036926789295137920344122907542784346779208516687233991617284814810453193216280902735167435525535124831038015383876049967524954892252524589297379925530287079771915179196573431757524427341966837046640303526189488352417821983567964585828483845547732494477318482503184032446994762333681136674901370873416683543903969500074414898746727992144072520929035109101819894927694010921976084454924007048985148951636395590580450319926721252474215902492568480595825485381472918120229633998000445625440817676681668123811640814885425014551424422351241208966921919398242670321624997246233064870473566470670474925280602418792228016163254605447100666565610218653966507669907103607372245293067813068664083583564336911811416546619825601321526028334247469431125724506690600732973679095283400385162746961794422310356130350625992131999649400969166998720718613962139821319292115482211558950970146205673627308625576974086026289753268611793868506865811427441463711737976460137530798694647025074896606762675376964547873228878329213918893201730377383499511014938525129131435685456402146636821744728321440599375661120925968132959882642753821258113741665333705358683875224343148675137240365421037233691288311957307289720196055663445186848729981654977823277830820510636189526835989955849977731988194200757596146066943080719285046188570421302511500988904458452222879558930482893606809961884519756260946830473815928331182620753493826031524111291445649732624991510753197701389782223832382386149166398874502109104008892698857682465946575084467696817273401841117110314488161438839573371798212447970116363653076694876870784632919829998754033691121538508503256955464422128934758795570466567582516938180447971207364325600193423930496210140199951867008946904327408266836153954659055856961257254549188863266868304538798459755556906564892814260713488777191653243600314688739484570356300334751823405109399361208222830696695852849308856038639559035923749866281007493579793068993638235211387187566801358380134369021589951632399783171578351573856250973729598367606337824943824483654864661538002989491871562010741976062584142298756714413301933325304736047008576866682539849055139638055684310210639696412199058741941614043120272923758306128128703209294952902388598175912224749313846383261629766035096497912013540619971951577273453924883985559839797841688065371522477930013599915071880267424015305397602639903580947340701529492129257858353613458723842033461784042316016599530085753822334565163593202549281815304314857307778203474202613849317116613327959793433424436614080880680642308822124274205377999701406361220434065301326815521520979589075442769148259452854812390798870443159455210338781247450614412263552734107928549836246727998312993527623413354646985165678306873447794071834458839807585337726500587316523706002199229499092048942318889890482362204839227840347594783509667482672424891195133421503701636901475023509398862387487559802839382677878842193737675431172331166639900712197236097234502379025948762814438944397112636343746729198784080633392662728630860673059494899838430623927536270772555337175284290981850655078245347648181601108663601700986169655229128143400482390778117083957944939919216303211274863519154020402659169289376140555546279844315145401306316709202819162949954770596613553753810305356964388223638810257099789680876304521904474204010243413041305134056197420393959167402289236941951595265679792629593223719599293991003135125149931833659044483824714760793593844684251612355175284580502745447140853848623190188181999830551478516274707378354612245860696804280075328668121574083841923929939490915078194288349202332445288063181192194511151164855938385341134756344133415142289277910504681209308527788840440127020632418196400322359062228068969015834078603201248337545025187216217964832049649619035845689483906949183700813133164647637814851531494333200967957267578683779005490371149647546115195725466981761856149634611298262766838876955269258146293504613766258162621426956852929493272529818700545016850601742486145268525563518821232921878967488503614780798086566094304121615313067467526545557521892187379158835541080987403816087904097188655714095574008375221925598743058277169199313320414518018541241324271753359402608297990194651968760276036531978544210709921904486442462059105533318094226180430061976077702873772712879300639484215055291883083737209117123022271598414007180703152526512497691931713460491358393559771507190398097990022151434083145100065632270257145753781006536543522330532333221463287630729936392857559046734316319714903684699619548281758935001895320219491297016175594188995688535029963353877298204951035875521736088559969209522241289320493287246171041333412593600432309327428731531355636113101106902665857989293393825773329655260253067793912949014931087220054554727844671135025569522818347532634809389927507179697715975416190320491187408183371771985457296620998968590320332301273679539189706119601879564180741289086639845271234419480667967369238089498232347532874770859598343896815950753956811173048598713678746010864054745302192716500336122080227388243773542641518655363067033974598176516133203439711802073099523799787932786686791280358432127360374103357565745634749723182704863708133162806932463788524813257336459779046308619782947081658055862808741996487171220289914287145361236973512077857623725183749716130076385635947644444658982747921245526403002890761583170312390123925125674991161351424864466420730393695852417252388485307142639540742767482110645560654190908777790887906460575937363480133438640668156367869223005618089691052632298515869045952380877378689217478306324119519451863858022777121192542084167906850921710572899563780724179529588346757462482270787144829907066664141984223090646281385066350653470730142850211247951577576287286292042722327539653248121336716325273432600702769904921949410949787840397262634539130595888727125182523332209974358857081140097106547744504626777635723357059855922797181013950503959410638493137558505349874703238115749786964757733529099455787198140261258407005972898638053103379558563307144387060835000978478169171968011471654322883569214331120528108822514849555432514613289924123578566065981400589248497544133016558614250323232949429501955475587235514119269909891494078630402645366059272670398582773865580669765586337199815387252550648790437838307065506700866054005864505194546151215035829280409774730178152210291855338504251540746812087728472915155836774213013531739400643833697081384122579364249429729645100234475851186133363367274054450649617233483673649849785962450146678056021711216390755224846426379488353065651099333952792058116355959504655595725674521585757659970185180233237999622912049716139892255915588541589837382803612775394328240615353583485565174480635875440082735068340863649570193890491494471547785489684583921970624744009611051341352336733572492362748783072806116961115325568429257582916630713867951481532714022176578933094088831469557079196995468131916240964922184957366988235592419405346920247272520815897155264100084145532646157972513148440744180919658269666469716455917085997138694855317576761407657797023671122637587679133041340249529186217321614439690277561153258141535817869598724191084045594453085881693442462947521164575870373648266198510616902161802386637148935881627550101734833235942653208547176280547250284274835318221603387933862498073624618600556076659193186029740623509739848213587408428167482240577251154616313711734920635644120571348430136628661898945643854439377250846542289087305543966579920337374432815406134592864033814479608033214530861157756563879810088124791066346986984140590345793594706828715720597898013735615416091880692260471776381257271630930458717176559472650621561470615849081266997739514779461162998044448710667080948332104452347561615651287963618261066867797503386656995017149982859955275072733630296450697603865666464138282133530683304446610643215326469461584958267444798267017584207903967838268440790822073123283747775525912377345344062201410876149905975734558455289585100468801608768422210387429437885261794994081347232786741374694330051185170116278676793255946747606999383855489315104715407448055772722593415388469766867679646588947773820599189549131468614599900552757872682669984725488362374754867384319371857109650980023032352855932320384293486936513213147303617172467167500089260888640403050286314828500611452068933218451049395611168566009704502854245488063716274224582400483930805337398964050144137429787420831535854265967966254990642183290808318328005054337398063007490617179542311373160418349640140603588364377564847750655403641605251702410422145911998649133353890372265078941540004400524581569009304953516805371260746494555129429242053410094397499728226616548925794402231232981358668560421501690825379637888233315630708018069090281492994999622396362107512327393838782749685423624783709123158371115335142003415715834285194580159065281989697297425086933624695979780261660239323009554638738272158527655838961462365485591284995496789583335608021085218970801033056359563941629184289211079204264759645948375174114589772433721223973311924222010530660741095153812729317463556849933219663867630407148869434807927881866762897033709450089091788633715331697404407630985216696160641684782286611124395827643838048039481134820155459828744611746290125303786486611988179316171675324362221463483324729444506918310232351781878254336081840498659952859718995267261011770354255892232061702653747171125837781203899764724213316136633274949844178383124036171702902366112194712460614982850251948357055843495781256662861391876481201184559773682911832496439639282203356889890098670959973705245105510038789004207894935291171896801836830610461750550568733956254091299965176856505889084860325065866589602062456841650411120947606121654042208207981779149241015681444780878414968463526491073799838802194054958064069842693643937316138498173742956132822847417176393505442441045999964109662769326058182302508218803630052004682479426249188662362908283112022051058079430695708773093725536699268641717435307569738286172275146502122506690839239137386617755099309384988398297738430699089179545848263856455290274905551992380434137570198624161401331318894337066300186106998716385208645568980497358354987352624151370133266554131803784114348823698588493227176879130353950787827274335571439487000122834486740766462981592467659930410149384722447819280081886919496465555242900027656240531971570048051256410172279774584603615906815929750105971750193930332579360926687345748468110997365140789715991880909468082558389176656075268151818763099045353845456651667158147760075185875084807803929839279234817902190293847910770442558644239675953649540458717738445275244450253942057744071483733898931210955283364169681721550313565296008671614631229241662087897996207799913913291546139511356853054338557589306666422511947807046443931238574292535374751563148551674574366603298541605127153691913390154840800355186401714294514394357717965776933548880939484124433730926093725774340417718505381862371014569670305768928529386230380434529318714925668204540591929874814838311231378169840871687645671964562976634166236175474788304034983748769644078315224995784316381629204120054159124577569235935410887968756318929887855763705305628156832177065054307262977981498884826017426810130991540785973725389196894825631713411871568324518655360301899640531381897397550927022798453253715125289347058025352932185214116773105666965652015451393975747273000230247828077940975636816943264199652646414815052449213527955711315528872243225415844915094362044959982558899304620294456412964987379124176619533106109088169405712374373021657726750506215858833244588592253247169106223465420306525381894978066132165441221416236400143749890494894852138529546171758966879500791748738707320622379522171324004280480207245597492047579203776087150432790729137158423846264636703012367959714333179780492078850957377452736535073943362571747570408394227408851865004889334578664635496889454102924869858609660148384151831087401000802398926438755301458294790758030766798315784131149161749410509294644581540526300311359425498895557653163516934827433360361866371325452875529452218649575016077431686542509200916435025163555812773483840639635164156851600294154329964672353607191181404239740616166025858810265571134921541916906967148908565543212740061759311533352134874195552771086575882589114211123932382424243707126732378453590180756448880680727186638783348725023558249859412203368603411783800386808433732941992173369194402428281299510701994358756877939465747068632113429873887165167491605404467035276536242523000729470772283660452442372406597969319687622041511444969520506224827759369226110652457554843430379991063005075336384304309541440495431196165742985500980071480813984345393765903804619137110186568264697314053137513310175743904490745691115925335796283116452424192317784622566928174670161257090346246853899684665342113842482163028590529273693729564439776787255314960660959732489599591688789570627944270992434133692123121105034590700309100399316552087359717795792488835078620489841747627440079751478243709662104661107659981919100044014699156915119488199001480633928249023565754152716387734211075938631360800977155260048687809337308936042000109778617664189772575650821337399792566076567906606179410918872498587546785622109340798122057504089575797218196176092844461717456759647478283552749687128634834792266563582639842930313685832312419617424472693850281065917971380118174632550312811202832674772093354354492504421732748812796161755622503245933552362678013925516016119445932027260279447423251232574514639120763814293654068518372008287623017545435922672186763715559321568795888234168565263376957383114089081805947381220348199161898537982999444299969704260243219962565988359296652043246824887606310895376765760673613738825812567050480330163709638609514514316093729593597501883069902980751920989353480184620349326112433362081511885764625664759886168901358129303504652284058348463095238102609004467052685197272657733763814700950892190953216491032390510360583654767770644405967092304075680589014493239892784485902808175399532265100691307167828817276394335679670982929957351495930830734972398658610652036338819607848907202159386989026571376933636716934836632289785010567014753369407470095475327392994554832469160466689888189278817106479877141125691172819532085269387498204264708194178910228532625944348144974685740509252683334074500830687628610238672398894851463745019521734940022465260218313842443944471089160407373669922889606193786232164044813574583481260076991028661631098894235365035239731388609133835444808507122119028044848349866281550312517728501068425152040527878862001265878273294164095251861413906148503153017911490321781627578711911723540395881067947008166825289974869438944644922950627709424710570679121558905804065978002034868672741229928747728381991776543897575892046677864637835160633683389545636450867322491879366969832790956565352992958079819720671851684294446980024999238228742323971450437514869066424099114208096995740636187377800607136255621713743666367714191715809618228348537524477925105503491276089044009351334229797787016399452389147351072936553041188106233320354335336315511408439538083924723852176875590258643350159458742448571366730744540467275902387352405761584727077537220397120159948538725272426792725126701805034089827581176200746114286017569793968463957427894942327097722230589209976769722875361331009558625786223563231479582377987453863523549153019547330785310379290045278067571901010709499519903784622537449545102585723329034858786452044654233620308990242019286073857503789275039454276244399817716322982276527321417475617821578543122979885584327375139872415210314625244992658673429649646668518234166067510917311427581551094967831843102906195345644200171615061040064926814759853550948290019879684389498254752437470086834081997048716196852816737634440272771319364496800224187837034928347488513258433958108951645993098913369913915782667219681737595914707934478745253869989669560411022898515776907433891086594696988446650713445080918130437019208229480763652686564402607486217214057439124709745083906123090063705371920536013703849538805628454550832467485908089261278240704538616788618885788499508429019914867657344838494283017895099106483792570129138294376283126997770141817152952381028949984876182475010412020008060053586504027250860406737127077060181488992703264526690941432983804299782059215679967782533612144891767759992564940447529697058445207172148786124304279438608846159946696602208527709683012624907258394462336006995601470321039587489193943010343138442863330291743564122458259661856196714104281480140178566902537517029901103520522281885845780260795688756159357008633168987263512424405657097072167160350249924534746279546358004961311689290693056785043075651993972199919019051778348475759338327209859358916984283443899593615146779025516691763703448696991960553328043888053223016244541079836541563769461620581145072478330778166767466072387347938826420118793138067935342176502444039223333064548849605021694314511814249412409642876782129183839379218255365425785351402091689482798378420185257936571205345160417326014799329966461854369735515706435798283223007847772124681864659154489944086542713767493800910339774446592399112834355455242003055507585080958872767019615551610192774304723633409529877594579830193710600557624136063931108317133969933158367006389792850542654039884090303179419767813713032974171790607478832538211776614692942953720044776761616929454281373431128696675037870621948921979966037960423940831111253584078910158214471045141062261993937021603177954407193265945842614077602101278967469527844479835618181997392714969120344847437656044629408190788574153783889585996237077684490796535886426516894823355606299508526187984598817217712606399363970049694820265110920404446369255636714419591324227860308689362311952144087417419287402632990878717047045027958704175245897757431081696812648457104896717112151025603105154197219820449835474049566309487402576356842533803611357082669697918498189288395431066896077231823965379441584416876046619361928872202465701474335959514653950017512744893527834995428701712720281753047784456846979036629611169357643264423847215229428713759918528217510717641453151359891384514549180717124824376271295889412484958239348381877382852117806519385967650509729823967631212173823702957452388689175221792869295267782331211474689956873042758933451447304855546886322579836248826775490524757050377007701121664987031697368963861841057679421582842881506355772389947578888212351330106973351314458478678983898595462686608164018086334035953512729818421247564755035743972127735063186065906215529068847792108546676939796630734105364262133715737596213434782803813034490138583355852958451446122834086706541273368750820913854030484845848530573014697792021253753878656035693086695415093136404663044215346236548036714649822763046298568537584026696152480179942778787316578697430862514002593051442899567325298859634674046716301368194157856242265810614874579556981207993637329184467196121217662731216950895003603904316414536692287440573292389202695258391325173991428990723648135716581596838117484797553767861533303509976442451728617224824953579763237850345012240026731934097563070190355428613794906783806633376505448139881042757480043057576372193882570921128358540966735173761159432986010448124412269568243586637523145252559748175519883270658890239485372328573189129631396835599668055167669946473537694618898232523683197434461919759467915078467486991224955445778499142660984122563654216323726886054676667400767499560160024309070698475097261170881754564194774812273162821685842757441501170818322704076191699274796566350607633111995225124579244395899700790081655160463403201044539085651930356536442056429041614629237487916475971119635837248764792217131361801917365084436442212185607235370822808940765837505917077497859117713640895678291475329905955553346139157273079508631303901080014200777426854556532102231420189375260778397198255271377800721146346145946520947017474547140407630407337419818242892691173337154523919382607652479430776209040574364638552010430607605811023681121657726912965472402609283977638225659625706706259376312284678116389252402589963558876040259366030052327340294277148554385029820031225771599261971604510007903099546448068246099556182847497310476262520065731445895861612889168643204745269066249616024984970092826037236879549087062515243916559836509442518599948341629288283258855718641166385676195466638639404057398427890144625201540354895387989062181720196473741852830446609280938453830490789125624426940758314756096981096069464034307958259975165347237960023596422473348120204773984593798795279281244550579851053338695020040564713294062802352009067700272968515261795670676125259515368144920959652577338359169773290959241687139751100830675578068009684824109501175051493924911177255282660557951376752451370784585449066372253402912473137002170277259032649462142354399744271731981569194410694416280678898369142720001310538244370973340354479730360501346727442274954216357906675003431936087714187976281181644993087201507070675196673186973292224837818751558780610909585571919270225550754658954773472964082183726291293145560664533987543264497454580606877660036275119242475664934583051926876533715091265440795614187040044834418760254258055811939612462201692448459153365899927939086862618905474292794571545477461329665900914248144735549485614853743099530110724677187107333764338835054942941429200723494226240259525597237459783199626921690651986776375794905326019115820083009876361155403105635749927136442024007606470226885599835027089326168366298238177586785615189331208402526411974586370142487413075860582243076217188926387985773643812864752360815325312802630389635401640481334365665786658626588818795815965600189840521218127684066156333186513775420070745512867607109822542608063986750739825905463457054168562923722776781439616712019797015140126870518348273973066590136586042101746907001933618143540087634902990392987072608908334166174179186327493146971410313741712056851515344923171363212584014879218006127309269167830773325984841653824326424445587049297008809195662591703803233611863531266410038421884085631325076930163318481120651086630460956913388992449626811643142319222282419557432238761941709894341319050441710728866109653797386565625938686589684785802146454387570820901850649388385516844757883068325703701870749908270355831565764797376013471675696377435461471522801086066674324206901270582682429419329332892475933834080518274581939688891697756429930245653179155840375237413557217931320882340649340114980780939659953624702066468670236899613913655714475347089212119948923546287886520068256938461028157305984193245332795568619437586020599885358189236375513116156805454384105819152515920335458741619475126064050612072591498158927013018781693777168489736651539918541340055510790674129230563272227880456907697331707770147512732425140261928905605831146608145994337346995646071775463905377118841857980937178989577033061738963292602754787547930831927659876418344031314214917858842501809912110423398815990006370132019016662073346652572513399317173243447366170012249122156338443268811294256603541730824044569026073756524730880513006237501038198325727344574901858893281863386713605728894922523548687408114353011746145897988860864835184519522399227329577730199334807147088155197899441124218866434054685206216558158451134950763515566609578097414911980870155417094346746495971505180301305138955225212148594977571113918588476336255042750173022517561160064490142507640444319016238251809193504777742713566721856480196304677205449365054816054371861772382673136339500434999157592617016327099335267346239938317083024466409017226894963715291474659020842215873399937806669540328395664999263646048102090920523742567131096426765075858027211372023016917169078635603383901338671871309548588332466796312417452097735080278145042631575433700761623697064204982614352499256520839534987828241522012415907775471575161005738430055652260570251834996287077701047710271688935258741566481706651182486247012195491758808071602793027811038848807270852443596715390051303656332320447663102823365984035570524629215259784920446607426185367885499751691621409099030557335568131369909617551057762091965148733721530832204455412294983078638332598598348906174852024393591113476511151838446621201790132066133738863986556420794331825030392691596703981350843113501039784674170865336085157178191981564831719286033911651410117645915568903009424141124389988359869609396737274847859265928518415393984273245659462819703855350336544972934361004537599893924095680979738006872080403779050090320089092596243317892137100414105045476076380970602748113399859443073137138565900438364762163616878626419489438954729204419707956153264867514162130654904252911140175363015419561702132198529419455051214922763811678542212883179001336352684591712979303277839166576340590467939806653648001563107183382217067158419939082966336612644367060718134292740354052197395981030475749182001692243316435986097382549699898495947323129380580896019433324013520083484374840121672263806729404556887979978267235910891238356643920071208477992192764121981391864064578966201010085038378039851245552493221147653347726859347790787025009379623512007522315483503607450154003724476238123782306267233901716880118565746632978455628496570855974456443439635718119864627754558889775180760716064590376434910846859676147676936954585541976084685252739927286489238419192801663993604906682636200458272637581743546298456063510086972862233101617309058970786031934284940501802784553209621331140197672371373928740994139297475884829963348153512524358791776073127062997927347777116192635042959057687226857148138598463451536453728522174554469712188895931775243564265576378259593958724591696238686365830272289945417615111981336157407218720002564849423517575296565125061534189790030103693392163241818525746842870605136788545446524269985362991852317516666837449134729272532012079476425956023094976843909240209481120955098470425202741832785888138573807932378523350398721241523723384484564159030081419874030241435311247629565750195040620902297019287118547298067930288556953868433658885947435096596275366820386556257592344105126765262989201083668369028981421654651627192001638872540616480261381192271498895962342593784629270806247033798465487548981429330750329918550417222196457208824090180360453882441601881735247880670108051433351414592511384383472842016419483074159565415644541765869662662510752965019835835586100565479892386012140977558859437546273185241244315257890049598839178908393974951358839411005486500476297087631970981057939081997227595639191382722464549326277953283454204065985632457362642892879021468237129061542275838905843100389193066963487703314361607592761587368546550372150856242626783184740734510147964864254605127668763026320998660256915121202154709566068247202898106705164473739359573550405020956009205192749490799163554646740860415527571303212027661899661527813562559123318762585391832563823289209741648724525476400092487962761048803807860803710738194592257501394178271934572877099241347692819325381611853388058439921005116433918739900503975517038690813127271340534125967326365276930330831415617274440044811381630830380010991707697220476082923357597495156815456550145074153356576518478096701777755364695895269358098830582060819207638968701391208291623331705465632697183689189416753772674388141038010394426061600774739165375031752266235979427606935274272829657752848754030415065792746941351046442000738554001517885319958402736558553524200382813744830272006377458696568186391032289414725752566102998450422566197054774124069418582182755819609639840162942446878744750071812129050324389175049363308746282461123780595436684559059629367654025423935889453343679775457905119741511092370990277205089778396832119278927392722297646541463126604331201747675070856660726126789748941044351883904884676265853424194755987141030841439949781997065960946200603377921197570582689202712322853054675662785733851759722505689863473526069134979052954145979412519840444625152708521178636048866245227560715571287853543761772135991358278379378097784337502286367025610322210795294274601818106130676972746925528465053124781598458542380584634055901957771709105670459869409275189163299494565447818717753456917583009841275652044113930672776349642849940750954489335774350631571957999552961331692518304014749147451134433480026517235417065175253520349030969557409349473643335275257537697431669490232122415357170991479370046308325898184899820601618648834182402482412767546401454028238309069078039495005770647970386369644272954648244048903121868756393020688897720415725083778308331175072032008012938641353279174839318118201538052044227425913959251805496843151489441410048908114868223780110478259203684380895247351004129285923164772454627746123782040794157059695713637205067211988637348064457948516778236474561082287483711013101489630439199733670896091102195518964233693556046895050696148660618850137324204374557573729254338017006248876597047751215879828480588397812248943864531712057300211039491884561459489247318303369784483059073320481752280571520314549348520524901588019678826777928770283299232292628723770093430450940586698349650895782755939146657834853916151652524048182143583126719914225979401081550564694032304840734261329824283181812692678564806059695923875894178873522233443416058796138802428888433767017671951539090181026368178077395221565116574830022906480038897945426146845380046244325796473155360530738233262414218997557300803440991676920591664135356127385347039266749346710977932602457143295884215894704241679779801592258850453876452650961339266988457792002136078906889729416574751831932280256452231052299294839012691450211978493497352375373885033106943455223935095544931602084747063706581749091480936524826632215163655523195201794755472907754973586872089536210655557068784343234767140349138440304206376106901363608095772290627706501457624739269792267723951618391920351902217944744058980662484956974149440093901501118761365963422636426360080440892034895093511832471049081093028426191140915227088623784127160751473488320612054523682672283911869150626524659747229551107653217236716305810739177863199165175315333585395287522716234879191874313952214221618795749806143008811389235561326641751272530979970479793897239839073965291287130479571979277217126694754497890417595941321557947507989319805331380397470594534170884063002195308893789429741335811096404903837084922732845709479115674314488078670557621554304189046484782819683687539697708240973543364736209332484346937065658982646551413255440999030371780318054908984900567310711318629435850732638068804628046460268352381531535191308135434129983595579144807999311313475324794020309786259983853589092287006597517089394807230848201292901687918170927435894584406205887929192348216599044452595708980187054995626089390201505614071755612908302872402959192579686825112762262424033718313186774277746809999544203233943733417251201428711127621860693928851601864086305918835204057749949545164790715720443966605009800910350939782485487024226328516255263902402197607745611369636292551406882434055372858057429116134635852677601148554199170578304601404944416770591579187290271045884776417446055283071179559633521151444610841232222160029272988586790908599464482544081128578178203441541488863863128438496726786728507813446566282606329983627141578366282244813105779559629633917440429723564884537487834076707820682100146033348820856627515656789223139122143407591169836627602662585849187613311819735988906780807397570018989692246240027022821025104388436339311616264434058389755752886066879879443990746005086007977824853947957912182582225954943378289267859758217791147412886418882718364572090038576924837925620732373488690566382436561350327276088677694747980007938406491932056319649085424937305778969655000480534394869193414317284779776301961530299795664854022304877789820344385963307489892108504621029352037483985027571547804929214779157845132843317798273473857032183951959153918185732267041859433758384743172765563079472769471052975065878747275029534624169709524218045876237879166503744701798867067819213321314426114689237620976914048376990665813447399593915248538921682443703924672123526447688210207808788093923530003165802757824334612930046024383287698190217084170339252094413756682136768176811801038149081429176791667138603551176377863562429685491045917725276295625914863967473369164655495521113928017105638097959954287109303049207543485797711437885604075063648280386404507031855293880483289334984843566957780520115118842423710112805984173677262853374446733523630877864800477136017180855458352042851504419876662974008426347707769462279850563352244832716214764584709968022852307416507726175980577523436848775489297935650214625518557219959336672474414516254160103347056874982625020661054002917123265740768683184061029107943692173367230501714480212856493972899310354881596101472088896076330371334476405809695062182984492087021284908762013948771594344706684340036123177874136094380029439613927530476137125409851013833711821539424435299252144412200448139215975006554974164187662383659299183411498259210089359054619299284964625121998808035212947189302962036713180727535345506171746848654004258276368086530133501522109366781624788716184722427577945659301071109626828077704409210988422456437688458465527314757138468550320206614102032615830097591502849975685218127568040116644542389310447695022031130104101633655363945999139507585160974440067223642569203159904474628824938013200335627315841606406472422165477200936292329720573345782884107930372409426246788597889463897595384486239810804436121037794674570507557978460412301697562750404745774163931288710880223003128771642421689232424110214953545447744315673169606701673806869058190957497034911561668269733782902847053824562027634524364635528622006280240632244972595107482574169677994340006518749093951651502053508203583575906621837956793568982035239627198671667644474088883723649012867473699472195226274905549874039253110416887316148443395432631349101262936648612598072569486236318907205727870526865449549408509598376477000717711322354381037041368185815092336519319249412463121990433382920416121008354783860348084879350206227453336208436808114588553094663976100023865695266547030912079980663028697013112159060323304522212599135968108308693832815797847212905218449688530068976801705863791493528469012982277452825702782784668578796774941895918264645372038325907080681154686106149326104453819096126054871481430299261709317784453436729366287069951179619911258102640232567963679724039450830668199199821863426397262282617055878188011137064564693056330137709742739577565332649042409475180846890408736594185165450037246810097129777697235643956987376380272054966732170916631507185864132363053625968145624596052493913194215448718581771857401943646810708338969088295858006512718908653337656620318062005497854586479652182572450350779999072237557568413646478957477451670804083782165565008049360811358095511403819733529413427206887490541480291578178401521492391326692354361147480588053720879154746693803668591122047094283378322361321571666093185525962290548336907287870758293618722638179137377069498001913899849448912047461936788744900373875176316601728849142181447790824203349977515872821743450429567797843760788552291229318407141819239024842626313019959611826820349123754274596584922800444608428097603038176622313778126725584165077110225705546543347768438122186162368108145658074962656467132240014744146421936655445652087542771347004183111969687419436475404896192207310359731405601862091985935432401240416789654773923939028216735030417842670765064839871524503637978834181790237557303646408990721869158915001813845805378422331529414028694906253325048801157765601047519462580951605030482254395491348307707414597265951407358501530677659150788025590233849661142276328912298726165650492616471697246671001843400255709206004656928258153481807468528802637691676410822658244662022361626085255488188210369362088372903345537477028103819608602422045659008380168166508306537898747652346893597236056286550316444862192680141079590660754631526207311473602431711270013699479941234620695797832970335858810482015027870927489061859469698454522327232017753066139635030468571134849549599862317630955547529990428400640218028043177891859427331966728755495410450413416066961011240523447451167312203811356329623852866848598136753662001815028057615437106901906144940839769864447778997655263357665566125541655083186761576389026945318553690095750586448764047475370403394689633923747841223209467896973041661422860369975723740039265949000722848397441154903008270116796039452413528193721310638324235535775443174816585204213995217955376179972913863799287913833408883259234784591660410711643645273059659744527252700873089862012484597109295749486234183819800132816624766804898089005248268608198499441679592646697426557065423669724540940810685789741722637661645671359873789551463351279249629526087685771233458847144422476765758264897853289666247554810954118879764978680522792890514903440605148759485576935505156226557091750998542462736119102593863920531034116290149443165341115201563203330606540360385715363469945853622842195539250220061617701054568227954152712822932912681462583634850480834827900227737716113914675875916627340257848989725522099076656861580972027045329385108318188500170979333274271310885674288518216509751005234980443751329117451834902769680860314385278425332679531832700647609762399895305397044377652044855345642173987902388534246649213002753542477669993035339374075318815442684889599212820376693935339414906210615655500109431454306955417397681024654558820668460882843125835496519673593058223571175935726549900703327990428081057022514110524576375806091921266111867300483401459348862074948013348468672887241774319326336681868833984221631315315602113272546430141864228070006268217596724003083840667351235237141223065390385142492157340872819121051525104372490024767284490306915536740157810931039790496466969295534988753794384001491060098273503840548241929947854456138898323688506889875445170288914950937831344917872352254460567042194099164232403691646597135058436815634009037634255064399621483546029705235362436968145705654813449321551253771405597578773430432317301686783714863288754230573836970159651290774654509805590663442471675153288238883292369473791221990317185656669099739162959466205212005709766695662374535446091702712516333187481162000779073652399160496538191236999069429547344903141282024866591793849475805396022832327076607164470653512685807386310169218193735723415296784903239420564777099210766784374423700183489331784692209397415959115767488378841671248677417514611988661583213429642383592293356600125309722973042179279340373534055602685262094361697432453218448662611785578514380147493722204589737017460707957501440537728196004305484734925361162807519796128794956265413426237418651155766692069922075474539959541240298466823556065035722242520752871917586915146930457758852008862246965097949000209765949683564700602365657877945479282080121986508597722982058632885378320700780431412309106329422097174431848028597733064748509243823525997159151881814551835857477968602792855210279413303801948597476821994301050943561689354355118980113377304649806699432535908910454464032503546664335345600803820149386789237322826635212692497424205431917709581205602251671053694678481880412176405907950308930599652118668870855527132762967336256694799328354857742089101412807799787264677816007160317920059688548556882110462986059717610012641611275101182559181486986546255382997204547815380371169834572552974029929211124493870664936997886745206899396147801365552098391104380012911597531328567370325144621187942109435715807951304130040161820471115688061682962517488569315232529646344689109850024402361026627961969424885488622988025563327997108655006127596684627773847445742076528719757675208608494234834077010619070063624326968261657780512421263998870589593537461054555963738037697332068430591733872361337354970685728046273208833145385237142178928899394483902536562852221586520695963194389235829906299602700130499681990210313608931322229790179832522236879313832424454485177603025218695604682653043018634042094872230816272013420888410063351267120721353542964749357249955419458203738194063736254470830893648277258827171169710566499611912347048497883880560652141869681374656060001817817028704432503857525177165957614425706908267930911463452844690311144706588440508962664227875549962965476443822884092341323980482880099946638772977856873969913003086379746977513770277295472310863940543545361555073143663253513042897058781818158189393090473806211736356842760597396165034168028336149487793449875400287127405997184088083615261130383130666253934212127785525784670797992799367933638188027259538860391527838438582202466946146246111718126914418947944272069022996618064170752499708064682882456444880731627980920768737702034465311983723938485787353859130736804803912428230505246024000457121966067454178022252604291668867824210106280687021465919109717421269772630337379554560503431354493685755160563308058586192118258256956654707625004644150239381196286920900544607296813185710256882750348826413360132284054667219748865129330854945192219385477476310699462445040417691890656926067089376710422607247158205618608075821964388351937114029810656849676279917319788122734437345306069506835628723492303937809970975360830164974167292318251735131794526565753769676996115268835865460692627016916425514171386561599811479443671374073202237654183090323584346423458866613929444739915404988710843345066012326954555942127351508734798633423219448184919423117627970326475755573909340340380661812326655744541191479337704928061476244445833563600237812584721682890886977736790589478624127256872090304335988896550892304360083716090709278032899841853627420666000381261115400336712597997217359497200339897963455965745306845666250961745491574348267449312856649563133025313651550898460258477655230802676137108836732531673377351385312048560627980504888373751499278631620607730030660535961366659748270311650109466656878452187251146557628774598664652567846973849478185039378702795572299263429201742384596842881664055883652745658070172997568756108769727511188458836528065538272732146932296700328695249827681389139779052019041498110878976769728576922152991349890179426412017854441761830288491090119704099840802533979835101845286458600571793347151829274008027634120597037150655736954913271641962520519102420606312890502846319514473547137017151837866897291695017426414952731604254631871448134483203815611703931117808186994770804387217323845950577135223456527888803183010051766365132112484090010079983364841309510815785582257407448179047332394333428610620664026814593399770204117279038847621593197660752848867317883850355595654178649409234544099817231775020435099183892419020305636669961867810097661847023741751118986499138657579609306537846443664673866343302525816419998599474725093180467017499709163325686567180903288198133494230976956268901079828967077063966784609139422536495666514631153485155261036247687868647603037319670682219824653926608646133730360724700324439867064420055271341872073281005025633199818103919672930125326749801219159457195456528146860490034584281576506002520988584553589674470197887730361847443270868657056765494371210129746375353363014982653118534528208690998726176923068447192114688298591648355057697088475852764195291918372620681114979487022790709017966160504068495050354345217264016083344779545755725839084908681097215410158921039771789253806141383525545813690604258482432200601477623778770368992535335320775531069867218334655538621871682015791864539338441028432911213369086340281431913783172447960973392404039763297265348923084481099823724705885842706125463562666118492170648711309787297228215546940606484396025517490267931747562385554845651071803599412634282179477910030935567632070252984635272574795036683211660717354772876653063820585777174122504877894210896450282092501582492093259061780173234855393410699380178537299576307522168714191976386508391560012097526320049431648082995922798619730281587262653849237730374027178328145958653683464176856636291796379669515097505437861531320164306162910278962938790752452738746058790969045095766132775966915795490441454451997559270036632871777184706810757038960702007689222462320897110610329791119969685868543794982495243190389655639242258570072200546008799711097513555368303029257492408487985215615352028310599324264968583187193643029699066422712300099152268174788974594330711433815705008503327493921772081299610130305522641253421312868275257171988068576937620701049356669725858727736694142088726980868023778379594025122527688555864052448483624213618326346684117650684187520037229008021350393678396536003504790576672170874258494812450957102886893038768295770524501263969002524752459575288408427094630968132497788035806354470365385636116183713761757427876445126424099616863110778988557029517889826958968146423942765450855676351497572266530783005880289564048419436606811673087104953269517823954516243027738348708314887270946257093619934968358944669629963196911269720852618123605109606278412763915691644213336144366208636517294076800374930241333029202272683158559002727974571140439679073631511987233699534903888892318070849643491475715660044136024147885347070632903319975160415190146782492733325225126281816587198789419821249482250233269565067078705281390729549114333166754521704508197293588191445573626264381178740494966879388665110126586832684667357094889048398782414990514941690834043718082207600246814865705934474440235936588405172342527494879385301755444546878412507982387146131334519990088152793798192922915591899817646923990249438678542734198147155822664633199050290534393696681919598263391678020693276758458154566312690264724275336024278525606895476671986690489182185616078932227674440977295680965595750031289170916085325360956934185990728216537159867514116116457468652845836816660513232832276355645635093826396049052550234497524628471468818596633000609996672775156265325772755950638753277677716123069058698384671789292755300476841805509036152660655658916899622309724666006606097097353229272543193601996061252499450205542442187997628745956064009890836107969967622379067731608068834064705729637662932552269907431574146592294108050067643644957971581769198724360868952153489882002712216748160559406158506276267290640512491070593291692688874372193186784956062839039065930258093721070317231244457099526538096644047621091495119430624334616402994593773275922483676129211698358658505949685793972257277937214375575329652080220961491621554658366568024144200043532215706483698931784978753235717244178546450323157466370486300444271646288742755466090032019560550065633492307349895421691401694357681034145190056658092271675178740538642971933119170444150511290354187005442596121661168984368962112969485823024891321813676179764127225788767353423341659005495495868731736275263482257736208487969462388713026341840290297227079829593574453552994235116456081287714697795579579079215909684426274305014819964154066210221642203359037967691912061283262886031412637637843397430343761978609052895420591197360189761957030083626810331671188096080583966096816212380613503935507682930007576813484994561587738310713661204803544462470395256818434460939495203453436281139142537436425004593461087024838857013321830347165888275288865616833420469348836510330395569711493223171979899733846009886912347583296031151584677989032942813438477416929624896195418174144954921206587667812459828102405612798105007682173173128962403940521137040165271414836896966880130689398130588476060777477502879805652861226450924483245194413681947379012997725458536186047017270576840359539873476848885203282504170439297639109510168242857849447746732587800499417301549937489854544859135741005096292667897120109837175035748830413197296398959212133843668626573697451917319185153941051726435481940029166391785368520203826975412694831491261762286994519955975176182414508090849047198588735679962816028232322092136952985385439549701584334827668486894612702231662213769690363760739117072191773900102771837237419489638344338063638306703878256474738936913896935560995721859904763179923900722425665232095721003122236232908560320308247384320343492044437854962820830397021292675542004916587856959376988110470314817286247706733250177678235879425844404119577792603903393485528643384344156381616338860629934374106219355564987209983264894821908492518227414208222805362233551141669205100253137593851130971743866813154504166338180676857281512692596429917830799724811067681837232455348172514607618373427589771485183569783116270912998101146955295726701033910739299149946313754281136420408368327587488266329235023852858665401267919062130812146356798457206402097737173643592814923613299899717108095209907593111333293638256132191711818038162624797254085585396608445689501751007967408188534540259022266071406024114286730394163834046317856357028826229910946171979747904335364555316340087175044099945327356011895015227430636439185977394066036039572592643876139853116843241296022541993500313739240645271159119737768489402389534978028321175938435618009974688203986151507810627127055995913254265226583471812022999748883215489317323210841254177354556563182745645582397194684832215656750691810924422715263027115382727778961415068234100698193603229401403497392764251414776138439650076854675593829157082751832204210491809748183446346072607177785033229779468150596394911337676390784388069309055933939208980393707701166877270273706803010617468387702748990327089372593825727110400706641269844193827852312194562579147719091354792609579812636926846474349704542674790402400062845324593546469948825018100583673252271192369482671856483277359875600530509209016383593390824776859445840063096984689315760656725668735470278630797900194370223041269837309192343344558999852110486348987998080779535851015986340355320272277245214164253557986594742766881101476214692256720988886838210180252376075082198992213725003577018218447350862601045691751192008015964383302430018082182187657157879630431279760826853763013409583063447303390304352204786922762206890162876031411658496942136320244642879701923698736291344455725860227892133687171725294849296710492075209206433908657114150836610472938646425867736935172548833752649141003233839040417962997330420174881838552551612594150688528806900223182323492256089000031448234631553166212687088493947411773950042372902021468201935918421549011180368945780926420204069633553195108482399003086694388173208000441467743880710565589837157828459449170750235881629935518470351673711314160776488282152647448009528979590293107015476419903828896995446387582930792318826770592534060389243451185704611442464825368779298334846002637104327687859559275785409697201645211607604589982817856503019391135048466016459234047838451565504501343114519340437149415605926299012862219752776248790113173180130905970841420689817572259426698722342383371922193971383870843303259807095784880975763829742298282971939389842250669986358575344763736527318522337887790521244596281294645956141605183984929727296202638920068602658057578390816860269769123449686389028567465740947335746778579975781324061478537074177560670569518294947711010291607821018362412428407994234428208502015236977289569522551684071200024971212504517844104029765222999333981943593106705343613434134688065825794327743572320021234484135238987222759745255921834284107967942180000507916878183037260033368035741008139852107939973700445487035932499650894180004674197991469005899786474969412279726910126401879156948359767793928364499265582366352111262364648225566643699938936318132003425268152270815467451473331341892706863183331760261237962238533252204650290345344763238284323655053070137900419675691528736037537881752656904170323463180524538949113180275736933882845932821887154590463400616832724286699614825021529925956829337534218639638385957701401846448314899956126738818910097225269340534312773522158756203329234302378812708008968606518947118808564602464654688184796369241766954358370403203160605356947923750960641087828785246169039195573548330320477087442360425407459434261125411800812548127412334551842341409481651525423290266032519493332260284777399037829752374001711053461028986817995714022313863301005197266143710636810642740805930025219348197530589198319387307308081912969955617944574536645278017929767730304702972918637366011617072030456648777135213329710835554411490956227047111177967118537911948288804264698717193901313721463511623792952474411349150110885458779121980361759820560617308315970950243745167560429238757615315311690933897106068982207922657833210345962141874794070783453551129530890863168246462488050207222173432490446068163131991226302344711336656109566246242542238860745284378801734419457192994201833345960407763611924034907512493431550341394499109476229298723905222837531438024178772571395319632454794277270416636849226210271248655554147087702302166780417960731597653373539707770375595881217903766876574060401937648668960606447089251181581252328582265268252884095109795960478499841571571058642270335774132952637097969867406004541452516937190403228558703069850729108817937900113424301320911494571447637431242994742126301976733991674102029254060143824192348832346185820996020395317491371670875393581572921302198868230956105972615628969469343651549805241640034686653233363937135404604177750192598882455129444742646683251324139445297208796441188367219894977735224019652202421449349116149451661552112224806803270068645099234275709003956585745090449398146193251485672611299615527291249349913673385087181685798125846632740771991264247639081293545268372324509180526324308915579718340857386504074467067198010112178006599818890163815196754620651178286106887240483467798182295909087678881409125016872015523227982655092362928301610545995588549438426543781954344285665314704177601546928222687922588070249356600928957351769655819153783405323230968773409712475387460081349795064797102879730033938992655243440784737535078746687881104545074682753128498422444979107759285731983569418607785756433490930544872116461801892521624180727755802731597643197108930405225284343430422323105967379354046317858607542057378410401023057980871504482950043231877178825254109000171978568576411409617218864076623957012821634265720363689695844977291985452692879907251122687207463873633217672372546476412477962429181553257878731258233595073149623613346377378593261056337219998255394243893502202937540587641272992015574402034844481277366947103853485716089849393975329583460596422209005636418306082466879229388857922434452836764951416114450165740318012546517904416328670227045124129581237895252965028650890737856615994064585505115178113785773598905523595820326648634133786408571834994061284097654489868176774543661313751035700823800958067536377113246439596694338233115408240210897998864939824737980720118991072595482796445287923702645645389535147073130042347513131250312431904552961982797029296550729305965240380642278646181504883717984239180454047353803420977582657799754572847569306197389677056635021009554910452818867949177276475940357581874576513709463107079976587093765580010802128591404501148333443744239506960946755446141139369974771890683064087537410902005722585914780230730443812161228677968447492371352167308122232144341102716704916825228926184253240161827181284511354165868756025884386458209787150874187544180778853462317152587906421554179956509117449736061772541577918286681433274475118765029577768802308756619072924419213080029665027069376413896337738151195767807435602428889663929697803688318153887749741136054186141161830509574078603243931360052162781337429767751162684352220788232230791774523083166431344119774727371392475978302677412750610880158973371786612534650814192114225474219685615577973291848706768200197507970860712654839650316297654239939899389112957618961924152746055594188854996451144363504564487686146620785532045995133641743137784317696462549357572414590896245396131253012645791996955216776269790313144365058819639086424903623447094743755853443704507139827138824206243383502019415300413316513142085259266739303467714649715724562928031991393667927052748620571477879447505698163055436017038200412308350370125292476118905838090037775863414025218817904180333022334542315094471792671452506538233335734886634886037330418612433424320156942242512899824514330879470252772626265416077211496389485825040365448295342483453016453117192925451534883103979704388714584437051325973521249449917346032303480680253163874859302619473186820579842323921409562885141239526079859928906603176759988081979766604202488007796357138057969892512965676327285945614394627712333921540364319273743169667410959219325355369890752557442099200828102413591201191287958771326561461932372446541753156217524473783392608160636804776688646532494822062218433494776931808919138915929991933487390956769052402430017640885818506768303704843765176196218548082266807628088893298556244024131311311013077716657824182692761752365496899281497217659302812584566098637384226831662131404097629300958553213552661016167065627611895361516287501422102094742512194273905685840646359785514114426494162242919696056169687634145484134024116441877484595352493266977114253525048551192832832723180881973476596519411482752406028894507632269993369809774867238163059712518132806279325940730594245807042988653281410756147354497087303704855192765965829253971138286945112154140854450716903239555530013817814906808158556547729802096236876496557412986899617284941235773904758342192398248290280941709335629785974112149205402498473754213367769052478147943627774668841230820294235470514368572148232383357177976580117798970755042689693835238658192304418910990564075800590633763789233451296055532457558633062150053386276618683503492867808502486664016386312969067661143111305552603730192956365696985055824264137637729900254520466949822176572021860955907698251706184456448204005177211572051846789896431011584944981772247287046428404824516107536039828349482608731973175611820246735681136351627175557747792946334688678799903062813901461876515344674444155196779451491435311066215932731900450596733514001718827730272217008249572656537391230834493591181801354013828743027532112419341720898071818609169846832702348387092377187640475535873211415795829198695901209158542934646304295303122035352353656583597377346926991194941908286500003850984300453288755901486674451497620221888287623797419368182586923445636804708558262741063031284407000785739966659542389059294609310374920488687527458296722932407201988922714788746284145777330323122807707181030684215791344676680249417931717114700715193145458819633113353003604776853834814004240009658728496590720426568807060633965755475824362906936976891792656547811373888699497599639325496270189136362161811822557384700099923577376661884369732424963392551735571326700243803790121653801023425823323163594719960498134530235347880111003333444601133206950490184365741227024970809034541562541738390635748277636105511519792126698247538443825761699793141425848747813039004974103789351169381045666698095339477957755991613810733073292815843749131861121051193090058613084432239026306366960616825410816694226473284157837452504393353803024137184580648137622992947730688524177030240685574982444909132361936231690034968974146391561552274086553087043959942428126105009260726006016508603529543406354363160582059929628349711788299308471147873758059797094167258546352621923470914186683345349038486479945397266517216996309860457950211412427750825680572661939847268347743530007074048381788112360692248710835581600522033559527823206743155354709942297957029921067593999606018919720358712196575784718186093967512635726836454839847980011485064265978730344245645451981395644869687064308799186245359393592509481604019808584936867030807032849215716846081957191639154507794738942647430267380028228811123889069206941518293919038674275873723697800447519513487862850799365714928096533816238264270804349332909683136533027717096329273258845324668521100205569445623196061054659646714048066499182788925877199005265717098412640410151248535836080045909508474108610512843151543346909712284433498293602843014044787501021863175477253481045661471327365955243837734595088693978805489383842393113736068526266341858080901585691846301388761188709485072159090891908177995413441151990902299779263623672477208076538287377867103848897295431346815394894729508835241831648887081484723473412606945052575035014125058745938653636596804273093267578160552255233455864944654082253890176740738234245368712074933974575001019138481046036876757614103283040080468712777570771831041387376774147800741598314940955248998404438258618463391253450144737713629100755071085605264776689956123632831783024077114086978668371399221777686886047457618523453138288036381226160269813473394906143407572888577521825194899398521366115965844974426256763163642112541781708532087318647027619393736108594806540648631045733509379829447020945791350250360874513605840501468238734410951056241756109471630969225104857458093134884365930189845006031446539442231604525942320943971079634216014435714023507565436568761858981670646253517310575269871976216448381751283531399943706833136413941412673658634481885235987164787087775089356698028031766140122014233792452384910271472124166649540306797067990009122749936528203807080513179924114800460289433561406864453610144146527236090817148862151509749576455875099730341257055960748459122222177404390798489798169231989724909210540806003252220092209990473909380679528489787116629290831987665326468795496311913412317388140860159374438711046452855449955040294631736308282846794964827918495630373816101816340523602926221566876832668352308495345772619491281655898993285753593601366742434008275374356095807961740139616972983848754858251518018311035479329811767467455843131610534108060934243373077831989782566928230090213140140706541637830608996734068475939171949267508083948353444784922058953154371072765318532431669951641299180209567980041578218636170923766786746320890863506549179857005345299976951838365227311499988543360790530838728128070973302665283166256422107890207539048472824928713500223454168680461348619213093951080270569158444458669050596897816518501995383002252054326612368714004440174823139347518190579158151796941185268218111681043256598517044734420826064071963505755494988302780370719765339808745466506425333394351716214650129714240962155530420886790996716757095248284355115488794950970325102911694258997922268119427818449658811819016301787183333544743444517570679001327079688658357266807227158265891099879986301821454800948275655801096322721671244510548734801429432916642837143119771663414562179179333438996918835896817551698836175998425694520157977082071292433448888072724490825237425573198234626653575875671599888608294378048969245816281936946799560038780401728535687634665001834040569184405026700329345319351979366058487167527542073321825278215823185759107101178172103120051037847457404519649943031878416729836707850657490934418585415334254695660469017808202555383785192136647999242823438189059513417403358387474798160587707349229054639523961506127000858402805406335178579421914990230703659549673102585033844562645887431927075521710653594449356463703323137764717851359600567679976723332460736954966179022252316261552357092204000956770444775736260983214379918821281913159764618247060516149598891031923377775746545410048000415134845288609100108987806599694966887909505681216934338453647280632057123093086473893464420762292320099563324785963291255192960140301518845714148846985193122386324987336915357227298429824102404368384619317287183133650740813090546277253268674390834647295380530206922853363759931945403257131933446406349305198855553669391297870351593824033505917537045927184750510686118101100389046438125313609534917980554418126907523974649994856282600854882353357957913625138606736747245858149943897929520152328854772058278863224567008184064770765729973975359144076250343503924608070271776771077820433089512513417390750359178256173837776783640517374812875865085493140199291732814955140638541320908636780971258881490144243326843775823624912059149555261552650194694760086605194944508686281941666401842387479274461546925612435606670438771636162203463931308014121522389187125619476433730668486246456843137970747973390253517310126134855901559546833580670221229685616521246259849968676757166455445469083167914169980879382848108310199327199691845367632162790224130613112246625745998203418606864644780351591596077300154856325366707541539524583035129586737691622180900592215085947257797952307589550903472494067527419304962297076457892004560611181399366253541028183566289377771971727245812348911228129373481458795843826498435138745859461279138802910875669255336721878317131838023552716834998001823994387769988576542880513941454335405191023877917100097908323427164915665393686120350374565635745971206443726333005921244194793014603858332339216027221634448574818108679033043344060928246228714947343699091244626795123232376244317322236342628589654568095364808316391752939191931242591775615123697075197151098345561391829718142236274405599235293661735776730154181114298638203168877048478176727485115620274672912963935603483479913441046972759578334335417379787285642238517406985606591300290186145372999910972694162296914023771047505647689606227217182614716173310474383895240081027602006358778862150025522079886331543593646442999931724400477395191646685227572488460167322325841661217457684578852316362985764405420668684120387533117448431966047536219682104728036923103453349086444489869948258920139808477285742026869832410564912090462872092926882704017927315811268113382878253219971180617566420522566459530160103939441504058149536326473020906980234062946966921364617874237366650012527083581449358147830745468774418037677670121040328454474921619319833373711160600100106492448628832636063612563003232148330453626151011415146523648134777423323022200170696097343730153607248171451875228314014483885671695929252191498656873346364194268814120319142910045869254004888678914888997538084803246537311537834017758447758340533142644615336107925847822306625668073176691436331073623933886328906948313074462785073912641794758461094605342758930415571887622155152310095135663401759141887877890226623281583610621867256746248893790180161523330446017057832617510168785571224004945715808969399352099221473670399440375895841865365336093357595395662859273936620371509004058654744290839071031586256222133798929263074078884882091592851643805115151778129453060600667188183149417254991393468736672944908736135472077077797722420598643884539109493513648145225503706651066645849255097282825838850686418176251182622635075589983964618816117832225844797402314374965616147494032539782715712943531330767644730379986913073358913297626208586111494049760385674164843083581312410948919906012914614027459494787382539936548112267459336376263771191725499044418777108151627425290594981035292197957579199435290437730000293839157330486271856583354462095520478614537145316165025372321166606309304022304608889697517796434753064491518386172896033507511760557823077759195397089105718267155409262266501076272044831164460476517048782453541340774183691118721738273101769879497078980095270920258765829609395272048757849927445070131715987853662762897505470619519487717970378992306063952281036902091656755676648696135550541804239877672353262094866043363616355899304877653770467431304392967239408079737510921303087520652782688641608333483791929964493293834166128645652544935122048664865409046116212295148804971622880058541093162165913893212653433590209812595490344933939906396687925908986308908638466698560296788366682214053830361485674357179573348596337373626177941668691255726487861552969235502321437544025181869378402940511853370552672054082349973732461301553845768893832427604438564148161436209995610028423041605902296390250798742892520762954470776292382447450004147152962122033170716377361704009422107950121563889799280415771029782074265907767083069110594846519828435253646270506934522642281282151065044622050542165148163620849106711377241865699888866146358427364241330541018961252611975727219371151248542649101871440374783557674809899625928886880102934560240832888280610203010618761724077442156854743347282447996975894994879651272723560284286716644009174518940633626190976011651329465910017249998517734653622629410256834214554553735014266237602582484631319973204683794728321330534755577924109539191980829345027095608730861116226237087195909022135366085043379870541517800983331813362152291356405817077011068737446131697578657248762201808407252598399749026417596177219025297317919917272172436973245393677963804390012675224816020821264469767875350295895200024126959479071067827655249047229559514030233061985456426312377188929253524437456154646564015805951458095145342554812201059821714540974231769540702178510061454056379295187937043901430602183521202677475823543913573218414682827420201691757340150871957064369626959101411280007965316234662761275221825712063787071598645623565269352562145137857124456702029054499986359737425523570670270584969069581075973601571951822389017977387495865896195542858039103596379391794893177025899069492808658303698440370730433905524362849038787417365933011686320715305768782120997642303031410573600193549831292317506493116263196848259011497865303329262178410778684645435460422519739844119497768974792812703200527573837205889412270145847652112236068877706108040074476316085103242298228929341564552950746731421503164473873222379171391139665810360838943993758011211908702552322059243137406021856561197831733978497872939520685172387528545603681434113593077785405367667676542949835639640046093342228169364867901640844010350134647821716506684854707632511923633719700684003630716851554503330924592248363120251047575113556651655835164018584376985344178178322687717496692230809353753213184798369191572588910594351915672941054194867286476317226736863107212959318417222096844179540328734023415105728177344101165394359719409983855880058921264528491446109750465395907118656021934188458833324156349175475746502358990666451001279177349093481736440724685817897498241716543636794137738485494684255085672524339296901081478318154102267621299277855264291217531985911124239298611541284725465669693575354385010069202109175479916076366437932187463455888868300857144412708556023148299773904852570524727108877410318885335315922846342989956474650911996825479568642839827488652645573902809649173663993718198322372540295548250250711310485101768630707182168401090718332619172328888365847597460457911255530294567433531916691369159398667134135022937246053069091322302414969231536508386886353359461678729576093251599719367589945003023447877422616697792664949965531877530565600268779892047314966921409046361202381041946402204032391780399374389454845298576909010819995956379669024984588175178872600028506443607458531602261088462656803606890448018538952318509287697972447861663230050506844101255210924777575485793695185380246228246486084073333495798903389100754175171719279572938744493623920798692494946735953924909449023998655324935954845661829396911453990139422909796938703015087387466964389035679856620776713700730593494643814039278771934916058684883527635130823975490014230733519347422138731701245135527850575350559996261048007047522781951300172960252192798870842224032033674440108973422746171359831603268122034081207166069368979394434110705975950488598140899507167619994625932432252404375168120873803101971750683184666136575729724247286494365794051675052860812643674851674623491606743499848941464109475954499880017921140817824150501198758075063157700968090037013159667404031530493132617584502633765845579120895741752884971204056126796092028134030065054902707386106370518415248969361241905234710652118202818186545447806600052164179886803880887889181762558384088165008242851061911989776315366860997259965247580204505841800031591403033572585971301881271059276385663420921937452515730212408942731463718900818833017715014460926382911591278774749833324216702216233808581597762225267364047622860670613261795206492652946998971879559837873348552935451994345850689895339681536906693383868273594777299630829343568895121801061773410781464466490414788460526813879340371958407580583054415357926796634601871600638918247059134841156031488786773930973509670144177439692356845888862639814929942572440595067400660781108387295416766511249409577080433001477679354163172176890809468100728469070380348498060125731470656118464837947159951131848301343250739205999516653769511835348053886824671892938506199075736983019095272039609182288438440744378005284054884600496055154723225791515683960761784359491947966186260122865691443489185065841253319552283633966377008098296444382133009545851865601714360375176557164236284490819656152386685556296374644682714261659513214006192046154835767001003811374665253949748044489048546636084243893860341281047702018526055162172047504462266460548036582122953907870657420366789990144505462370027383976196058878786133342393005000555609177373240445724997858419131191782945892842718550019370233477201427408972531916591079300571258514311320889788856080462707008993979164332273195311556872917008404524521725214346146588813745064871931906992425971902761831970288450436129669130684172219757931838495098838386921100095937289793638677172358346195391803837917152032136315238114874404342300952503866280197231427724416380890491200781986992597147843827300789673849580648935902425485118823494759281674218184052474562082499457672665668589336109886405426267915276323320722172808960238719945967966808336525207044765049176162607174483895379375088497537914002297173920224444387372498592416360878177168143277945535205404040282519171104596920383523693233882206823695991839014390685338969840539914364797184851051145458882369627264108890766552061108644744551433518650852616899367317775977441311346625663842100376305353010015056747412117719870558684352669833004005633090757341687677851318054873196319895766518862407031481804017593365388623138865182931374535018456443277438258895206883944143858075165000645635447420592659879565731157626082439686065896327842263565787813563800589548121822766616399010542420113400046121279750583584865809916877329602260699874792797126666742122714919700100968503431738241022722431259182974748945616291405711938002778563831345756644665495319030366383146869252062695465600947631890884619489401926136367270361282588687387299089951764711457397187072660577817484337616635746043507598210414103226869526065727611213646429524008799264928845365168184050463483256369839542218965686988222615304090297672980224934283538038902367416184520895102805532713254883994047604171583093769645810983672326433317172857706027169256775576736711149822563718909254616330073715726470271837959134027481959976872781025591570657268546908925555421925952058195259607953437101821929587412489320084913221174490063808279494606423005767257373723490047293717909692742459975337765318674579500049297129150568051830415625034124961024764683388410171897660576686438814114998249436180314588380217289221023188862592065024030966243752818682119747027273204298989486117553985181841315056862374596178992352945282509218399078841920001969276784898298036652995345332033099331740801426330262320850424240015925009551070127220271073444506892044618106961813255194188911384821489015934273731043418258888641616157951516542197264168480341296969267534497718926201996299344477652484636822355173626694697525908435355697430705324829439986214737585892514519326020969238885853530944214126242592606780252886899540218387452660402293569401893668802260760826684523143466679925650957417423417660286450020360970052130636764120937300227025904850643552372065441168302727720669368445976748241620446293981262277460285766818907828683894458552720245416329997940362999459290074585231226141140178142824179580258184347831093391187875182632117628005320230132327087130844424833643140414482266887274258135594253988101767821438107527654059400215986894648650242779701317307821390663563979279485602866645044487870306865244114305917796092927971874732881288004840529129865414251754716220624294589677096573758025809546779270398096443827713104294777669523000013993310988797280500985212052798849987796961018345817434650370153007111038435548939259348542969852999489004943484568882123402871854213536303816351482091517712854555882758844302871389480051827465061651589902034167408929613737474611157371281937634713722822968630055863414176423798326706838399967508921880868105057677648693665393022189937504843390563912704307949039024061577399078199910966926683740829879476936910303796718213683760264605044902406965785816387864371748117093481246497986832936561731305860031590386641504502044000154574452155555374495321899329753644388037103385587598198183849027446636531337694747368404506330249525182907221202790890672562080928991490750350244442717391362288256989900192501269470391442934826631307255464381129223896405451326052463925204470819612775708751802400553261495405707087153854329134841606484189059904302881549993219243019988326713085146527646462520338759924420609355887631612806228554482366243781447207997910039575547480944268509133132006807834088606814833653176683166001279090143878400742144346615985755133473501753904018881880213495337306244910005134943253757570171573129874144276053272821214987952689377142139776160590832705794401359510893631559603468304362733936001775984703999924412286881847668429564381022832132026087775139527065308960557641534502539753427851066299991815414648461526300518628411532662234202375631877555237515852685522025781052964705735686192050939913975583524573781313529296445380290762890497742946822153720756740720645877959740408687281942647548412676658959861609380212421158320813176516758281069959228094099228064191033337378234864887187693831625731543269849302450850335883114472986258476387631580379638755868823717488014172081412099921322962544199773725531920960493908289285764713256461449961320711334435530906930385062014815985305456039110057495338558053908076868898732073374247097630109310143191184457824697245779055360163649400706162376376887082616011923774315348889498150172298746033524092282777928023436939182913581204684751230588779082047573448676914658596171738558263126928828916960637124467903802241096677729024237390448189622284537388207321322403291696010891062425930264693272968094176132841394193913336771842833705517547476605683901535194124867695628058828968754807710237129350417101280201853402050071316867148916838306495492279374638559650278952704988736098254577833917182110929631178466709387233824879765326787363467199024617244255565881250746664802812425163500488938251900008577961039814310193840429645086116201787647007618956144160303404323499875408917032814481580994172312128177866485761259537330864519462589726931920814269528532001889708535556541924705182299574225904366356245879561593569526567491009773059938412994327023844731748513136954035007674509652277902847175681793846362123590923363699321356427403187614783865732372775704537729307935163147426384303305627053828524515310834822254366586863854786298111195447651917470614553217572356656074929268859081406321236946594998427778091658159411488198435059480664458949207952655232358432107153322811025652533158820024286849569446927406598347109189500136802614231357604283006732151687600398541063342052884897975439701884465432243716700535071783533482416414188397223185537349878624653654017028548843891767212281430944067076224157969743588318156701075152929993303666735123707733831165043128204728071513191963942834226625956535269221958125592474294871321956225352477675281378052407408045948820928105097264016626550095337222968520904264602914593752388522150776359518231164525417679994550428038393848390743124388349488872901377392384714372683790120064666058871957660560020259572407752465064590419771357233923823224555011485291665151865044507077125707967911021187925795220832856500787215698178913996155698714453615886892850519050770557707767347931570130020103323390183916973579375135114569441581880836647373325713305042278274344090051713519155645151911282497772900289538488549231379402088638940817446649036244172203337039676930351506644556634966841912303945940541934751174061101076866910252915728393729473034886978602936660250640704140312626342657125800940479423895839014801051462020928867009641126032742741261997719057900117200319726094385320939880844332669941215644765815324886663161390479138033550464788429301835562294108111776010967861111133662250145046641041923155096487916990409958712546600562648469463524080524403385641874221381136398806653911440572816273588977226162094479425825630488926358526568389734000251667877693723563130365701253237398759350898493327793050974835337449764834305331401977574622663930982250662737474725472303477917431097784674741349828813256049539296993507374677998085868654803925913547432862473523283121158561451547141110559857036174450224820518238337351479341069577452946686188317423066241868634045198552761454620449848641632398844858959013851510209980821034602473013126882661220185848477300316984154833789319820571799474668842705843903169728097254187444086048036019758366370461892797339160282548231576542348813338662294555879392652335453674501206340908655561118171431509680984830979945429480182837437920719076180995165630971385491795831927617430246253316634404417998518840111201074611435374862660678634113459419149324984708611589666588821646523899616360298563475730041182933257558616417032196039896246505379825137496850095576571115348785814383136080663198932315087438654413106010072875956141616567091706992301739027341380742238807462254761569156084581959313117390074466051109360920395693035795756009645848097617348189955363649651643205892696832599449025360148646897639503264231139488987484323595391901988094670083720630949971327073857819556879599747805686614072205621221050112720560046366075660820177553493202534336777868752456433298916193344736050742682288695016800955725740379630400454552269719670602845409513608328716033072185761351386926823096448104107622972370718443202277698793084283436263930819797495067607846021147793525557134313439473465952143791812384660214763851652995533916417014407097599967023650796064001069897468311867178282808832003160176833403300945663848047040374537025730289730916140233765334372822047538160633550025473747649836472151161463457170946414513828497400318118392564137668957240333824111352262211772160453093689569874615910248907999434989986339358974079674999657541417959796533041422518610245668475762931324456507423220395529579601527217821380277310605128435616521122472799049230844093939096104746244774346250841165357338874167352346188182353727722292508847326246171179294939538395926067758127785388789643603174991634238436558883417735950263879044768175387100932573861751290499773377604753378930208351319582615639435398969251005436415305020007054711751642026761048788124331644244473716435165639374818571320940436635069031786372106176174564019052435512013697183582620822966117812413300723207864548868965729379001013913530112692031089943571552453880927557227094577357464118833600716351509257568274143514630430185903834347473597121839354811741271320631910944980093514437461899142735351452057401781305077561264491212598950140043551009410469647262434469765312516012605187845720086830352425762992028887089864155107693640369269732691079196058959538384919537193588809653436119247516364708504604337825864419622145757602029060946497132155511704265423232207038485160520991294042214319831333627612307342768568214384707022987449330213044841144312835060205441048437422073495233130218908557746819816542077811612494722999388384269722738967588829185149760891326698176314709954829818145241731064460965038549598497297611675603314300689788128353901219982680188480944498395791587229704689845957591090255865720808735253048924272991821378393166062424532390420537980515864282080331117417878919997605343466273832623504257173521290331680562507913199894474318256897878232615527520744241491744084604070126893579163793892848481845030703246751237908096733104908430668447219502471774040774282711911898307263190163392949863715209287430865141347546358061434962207760852947042238893246479327503325715086777934780536900482061683148156348575748718358753724486870569583705665029167655838143463511968779168882394573841643188464825353280516763118873427239795333371424965473229608697470004048656012578857470871415872411128375861288612390181217400095010943092599569724558134549525955507649356684059247711537750737904840063562580822269539013787969895632833986106540986000592808291520410742414439738168922008209188787861391621039147634522153797372920208860064492720713211340370492882631104003546449998868380961979149976390668072476151912645174833332622135289960910510888678701835223397626494934302368889839230035350920150777554120098862965181447458868193836748971680917311254746563718396693427862801198063799758862855819301167302129931495405274840771684923603220943378426163055385403579935866278726700481932541867403934293215070114265765459221478713265361137818341718056664973964269721106129044451092180444745714785204159319522896779236148744553904501166517334365171492623582785477105433597395639275580651758991124213498306313134239310257456826618374611009967874692271574371831281024681649037126179907060468392222195109077867337215701849098761608288444092323503523536135933397259926449137184356672392980903030547131182504597715275175623249562110951065911765197000355231128880084663733105780750664365696076682138098804648265265432665635511099341110509313149693218089846038136505874830932154548653292485411993176194501122121844648699474367078613655310472027089525939739605294114664265548708540011466595393086751205216592976443258918917182906713873820110070837300597829681036466723141306568381901022293391873488131586984641207883543289395879305721875370455630294971720055653034187908428764529915265953973358424444491099648600129358344368314369443172930617354962552589755550609171540984669498768445313891375601778529352680336829217563030331487174246068771309648996937546615261725126983186733933143318521017992932183702303515010349682820655272694381265632685204277653172793357141919746229850250248851264882029536630621253636106340101039163887623627920489440398912349863194315497753524340106611800301016043758064249396870251603100017178682822925584162840089650624966724303438674678803028410841581157391890932576461093628507093882545529136103773312007420882950500951665355195616494351866607620411007240297154200741250543172770790400738994190920637564187625918132426002433385034562291757410561953871934309083080058761423353136779384143336073819494164567006649039688168357051165482136908905356422038554841518551260870377613729300132036406598833927938641652976443728600231481585409179156017443380304740711316460300275695792813868578616294754691370230585382657279738745229033253028246213996811955678755205440371283952379783757848015253614652038407569982380240463613540891729826377441878361445197247973911400632727457941753228179906099317162338113269914913540692472659535500957190027008140186606832170731726202768717654141559075585173872338461635301659461633590724209032069019276673465361273484750925123749553378567258335366970125281301398864256135961774939284915308303714696093563426195391111965963805047899277664290310093703620623489977958653363202887479425338799969792570607015505496237348197084053133690547221360007781468181810368101002623048444524967211571670962653172180477921399534781484480286496650507223310930815866935836456604681951952597186334375559841339161580694193044309560668654724150816040260303014851247017552718983744459625021775548571596550960185205229278787129711428498917699019098646233095063390559031779331443017330079328710171293721878985571463120716881418520863102035090526306208577072163821167657516917858791873636184794740265040910433394527105279393045512298516755984436866762840100880053306841988972136220853242808982761101814914046633352211283274723666378665269484355093419274882476801294708943238972119011287862896607216745406427817520271942440992197357966436467451052539863331282781405162018589387580389514027388407584304241181009318039975861097633774085610470727671700463707910145712840155919673351119622773267984632981471489836377196948254185712074717908935361293520545159389194986115645788043299724356463516453882858437974185016726813483891786255403906960308976418903910590556016320420015455032310281091764434427278311155680860202222271682233368343083108942953235215265923226879575801912048837745174249288846954986665599588768586376374781391192278330809549980126448294050605487655492384656412282721382307251640461310068753970396006302148008675369130996992874455075005463556407583068224521314857510242863180930686347089397017253381034291174386866804412129626848632088787595270132530260838180792858201713258270060919381142387941322979461253126200119327635638156706417969763143647394558518004233120724037301444958102621619197570254513564177972151965082782061082172310171749666475363166355192995256290853515071032006256252069180170600398934936007544423986398329064425479891135882842291659884061659412575953377439488777182913224586298803650946679928641246626556027190105612706146589437269580849844365531218701867851603571152092666186694411456393514555505524200513180587597539164264859765057421175005626972920369533307902890195717503033485537284025292207793979350164015918280704691689128553056987731281625225162819851510346731803937684527554388021720495077686575603450295010404183020934186675458932518388661697933418853944517123552153608857819247647469307503550890115037214428180871261721093569150739583883680780525121958261628338623214596051469032016847061021233590202789737474611353144261205372386736678523773401702421517749163916392080168585969387147295275454963767911472933981161220743056911909179969062288463985641742006644717423747109183303150918561600370080982564670438550955664253028014983862843034193688437457940695003198923633313872561784525511469331832664808849122568982384553240380862626849263018437488680611341255159275791609125350340561904383522049832249475846545866761208068946580971632366217542150217227547215254120658317609291214250512992505857988563368892230353369725691956861765030858480321533170775537862118375145941881558809864066280767394538062985715470053947448042990008643483376922295235671643723896398771166216284795644755994527851645789706849932137728428161627294070312567309985213806842390607752601661539888607074963062560375509094137367222610135483296920384725797295966550799796345314842968209109215155491318750924735333224980742795145043185802631729439021390593980310368107092036547595276091063642599321787081557185824764658598702128645864842904123098586175076568283357477296121752387996302652152557934013998703828249592426768849101566864411476293546602818141066313727062486696347442327615400748387541988237979601318465002204194399125219986147904076625362201971625623942486288714156081900244690316386897775415400527210359866568653645111261921823431440506929162618264407728801457082320123322933041080368207940814720114220440588781913648171778705079020698921614325440314033007599167613442043417576410014442008427687059920250125187935222189594369393322006524399719559327389104916884710491382255275300628864035838531582061068287360107248575504464733359959980791689569094288781120858425076532457217169899140188054856793432405621717811803940125776059848509978911998696179528974387264252857254072516472774692683273245676837440064643959018806706262527874807158530486956566143300193651639190913367136543614524440279417110559590041328115885485278262449187742301338665124596633342497501034830261157364551582198092627430930579329577377864774754904298391387526557995637930591993153237396755790001223749393891998507352540842913758627712126166710895502041234373073502358460314591280657839355168017568322845173157043938920273675735959552333756948313430424979506365665304271585028806127816324885172326144268640746223748163656392148088555495957396952887140682504992118180304807738454128636776935535974133656644050659052111916912862541826664720035167238317763375582797907612392777948694129860613602893117177429114518607454643220880526271089196373465361065909479422395891756622413922949085001689541565171397572188424319858705254533678586861275241991351263315411122853472752129332954766361059453614507276927618043971067699786824067442862871074775896061964478750621698897411560130429542026378873349780782097903557711113292216628800516303402865245098780167646552117737153908650075037530496364383763106731854989890114887194573949642021264519880035533507371321866537011231506749008039511061094015398560714164687320137544354267340392538815640546953258687369065957418474300698488187571802593462606250721271103043094041410454105418814563025171162535395550942540818556891264543224263656025530645312855527837237306073927481713648736993120667267888284652581479075381806874521638429068241477551782167829039449669901121995889876414287416942604206394401776193228892761880694489948161281369229747140632226385208749147745043285903242444265387239468335363230312141310613421236392550689652696970509616025258603354965512742201886654829576028458530283615813135019333222125823648403825761381246748700644144048554534442315425844350282556757124840014657437947040164997755300173481242883612812435902373211691381542371839487702016954056826936697286232918442380659516265447611086818326768348785882320335640605683124150785352455738571480577855927322024775347671138451336305046597423870975569725718729499330549112730175901319725725277955607543383898229631448321941191094351142747057400326656303084447191707059857520781118948414925064082676483952762868173606194136332103354774860812795016070315034240505742117511464949025568704608335449240853056176557287979077398321866744868349585169891726108060087297203846928164870280614861455522830229996166482384778977584971287256997564146086100866565025632936645302233526409651692732111586169566915744822757294673676093735413591179134703961873167634983306891637145166466145253829834560737391267223468737344147193082660871601388681280157253099500201264380162739281021354758732920709514568481277873516199247420755208537373502746869048252357378414525045724942854369016958361884820223933836830581245777426975518112221475109060379793302427255337735083203409187438039131549309577008515059465389105975921452334062433730119883848170109538991468848281544979054989822690760964772668067809004409422620161421393146277328018778576553041729288012987213096132267897715863627145315760679304437019931374958377420998447823653236357141750026004439353001757081911872653334282520957060426677546682744647311654984188286328543234450614541377299551934251437348917946425934654248570096312225192678071356198002868022854843660822117324888219316139117714454554956422250895703787964125054723139184964550226734394396641623895781769811382202769411776296178575842265252602367964200461729581778138126105783559532663487529069657110194636948679689538615623824814748968159660561247035529442064532330360278372973821282917235621344581121200446630004164694614819558155987617982119126979226427761219950053995663431569300145208005261904355097321177155294916330130385389418421476173592972244145952384526182774793007871639691049058263612988102195826123900489369500018740018426763983075800763384328988100565065771887325449694141198794198785401219995720099540913187871393823299432682936214079055330607744192368553914994602532583149687867790701754721112534249102732258026161079676532466820991960202405648582546320502572827003013595726739134550876687735017515855963631623264835311584809732243376637834510637806197648981792723964246651790139811814695099137509055901869368317107586453794660075246833682897296541553575130462228418829162016885086362332604976173582832121620278798566408694298505977343562118314779879482569401255954424546807628042699289439776256403806241853831542028123011200450323487286435732469647528010034529429556068203771065764532623995190347376189490017345422368803168120660124455990298496492872767042842829266065375691879478623823643728062048239803024217901519532803134235937662153540635820264870120894497491348781425135992929626260269161058817240517117810691685399519505408431755834815926227582713939176127063352554156925361311038701256306895867397405849743300236820669689315578725449642469356871536047734484683246707307477688343269217518390789406209078559989781301783000318499120721478801285037841300661302716468879977919310100007499285485393354361890215157072033369576228567330164815687851450207641914898384691458251893605394264708190920715973249761940237674467352705910594180628877252051760162305230334920014246159721881668826099539577889668980289647709666610267104634864550691847873899880261375037520267094913754507422341709260106277672213226783274540751106861412442588536279379610179688310822586911511165793754182268428812591360124758963293431381220519023122472417284821860144792691014134921363048291170631567720623264458306137603859070147282523279875131718305736160458584590060765744356444852162034752098827170971828907721638787011528124170367070718963987317127668317605925736152313166587016037725353000442146509426862922124554014490662358984068848170391636976542311704478162992489964721381245735528681652124908912660282154461681023479437523071926545538430779765203079889688078170473483178463843856378459856879975322808574699025794164041948625381587062312943852051904578383691148923914122544273041553002163161428588868162842839410925025757576004388623370988256483045102515071116383103399762553013462612051951743576881369408697452900596274271963630018057647780741788496794718059059806087973449200832797012410426817221774415820869612092236873610669027922378677488090080921344492771647475160401249037316347375294877178943543806893303490176240163370777237915550526266658136610496031417187647889685411191670351784124619054122456613545433720379005304245326897455504754648056633270715173409913531789867356664506692939490363771227504936162630682441393017267038660454515240845989201861439523848072800035354491823119142819148501634891874663749792249135498422321308298171797401414958295742765631818132387163261051919605340276605393529327103343728404135491553845703042985391108196623067680590829037619148674194914318151050158724770812578974849868244496752968352535706268600177056281892158201693085579261631036855172240802554786115399796789663265187303551422882626566011937602434655555094485716098437035844991910513556096722060026977296659305949825152578617194671146727041139708430658971299998941547356925820719729428672809211833680616174828728301144402434032485133962203230935161213518855166848724212168258534810219357700433760743768497429082115272417773071033483243689350086490931818200092608966642881237125814335968201876594255497575689428683502855870082662242009585610609949345411729890910444331118530517504879796018330160550283491127275816044010010085721720873212609680777592030972730669315007754872336732877809264377853922632133564533229223074149609192430435584368741483628057683797264295179557592091391151511555830264733168102238641917098354092937181831338363818467826184539200814193036730389096107617822606258218658268733292143180965149003644214685292130815231015740932823284455056258177413793153213664607337457800184984076874333036125091882249301170858979980432233527533863638337766163002844930988152823309116441245756112858311268419135751801179620056666743034951227375539128442996934429069300223800510558579629256713943011902329628453013406066042140838600633053814676719935884662561571257234809029479995762995881186118601895440446022079735715055164261901693135712473587011854333504512730160221159299456121845064470085466023033173223900346108851864817558621778244285437749296145950042182769935991135857649824758592152032354159225370133256279031779172680852233544662614894253934538359872742125174438183493822523064261294470588928944915135644856087989721001001548776322235510976609377224151677605359771866812752376803070995021845481609829059517946346375900279118169288006896348104637845656151926357796537549062073677333757160135530001323937016783014289444571445636119979813783171423243100450012864562794462927197754619728580037940650774220496185713185056511112785688138394365578829991306740205235225959573974431871357417188019751766703250831115611732830581448378092749313276742889691622877743397581608885424983867874615441861798271673898824146299961113522270025997177920630006669503427326561150377132600252035403388299052890041583193041001886298650372104020533759482894183174967944619085174543680541714741947109973061613224321830064064912837244635306854000447363976272246959663269734374074198689141322909888143619463087552059759262889549183410796870284451708722459629474328428542036404442947023893460810395665609077244000322423698481795758653485392717820602744563292855708830114451705778175668333829697899958632639043214514503358999652882435216090797546975447988134020439904737240121493789440899380090375742410343736973612751043991286540052602832567660777919450553954810272636437605566504681778097575125731099038147523772614211584764773600640580830827978837430167781550366424180313013288618764615187106541184642849229783070210339279815157240152556103092808316900880838238438758025418393217293809554338621110460817134917049104542884623117471422764318019928986586816074751095991511986445435410710849296583823800574073859409169438448421391586813622480968491408523940164719066298419745872246667838105913782936273024615196860631731413069512351611384182574429146608977374936266553303234419171902291907036933885947472811409140414468791275619926461490774762392717148508556999954603422717251452390730081984323912238718267374120771953151618336662134171266433567726256568677768028785757451876355119907416360216259878346138982795789081676125371795103089403648101851052463568759153714861203463351038454701834908881869219584885880422026176020418631789839090095246694198020414828235642124365863981737833686857924872362858028780290109564635018948663227044587781689214467969525725038258700038579704385184875261315828929746490997142306770782188229728131874953112491184299384171515980859584927521706662476353005169899373205919914725156906362820289443245723916886551372528693820233111532906544934166287544981064733209681586391996732967095583524530043850926932527687994265390856476062939478581672307742574552348826767545729097115592801903007820744216501687512888264408307901151919750991877519552444001232793485218252620250851331565214156924455415239621590449473656135960514210919075117838875515096165821598580365830173784765238867312816340728158367418666113342219006271222085922803398833024565673426835720242120056193924478973411566554619981384366958726304524713558795029149549619440649835551652332181477870048599226844693764105606142060605088036852376934176360668960676847799668833455865024513643980000626363863639131251136695351652190107182509624074294051342494454879294581218859647509808748222121117939784230718292515813761007293946394368916349139159624983378977033273932475665993052708100268872794236622022211408660075333658232973926850531648142200486224912915224609024492715832715826756460149406328260074201449716787844428215509825562017529522366983311609582529841819143709023033835213354305908806166974165523705084113066757652901898672637530819699691728111157874502420330391895886389515649341181520583466414260494986287422650604912284433188745406449310402814016305412417965624019135722242824154125076805680996747689410278062635859639765754554680217759593044962290442955833690875960058999635881147025362532730097674420293227754813019567369738672522747421023062529339009036596848516425307416969580908830480135280119324464312223825276086150511354114825536721743896433461966408452341633740253807134101466497081170336394896000592618069140655655138564018380389810045867372205023142880425988873896585734603316124775769618047701894262025537090155097333100118815811170210963894226431219628585768499459423643322321121675315478676437971720535802117189043797968828423341179385693511629105750824096810563762836934975853971945588566639642752157770882798353098834048876417849971099255832214957277978344244283631888070915438246336440507993296848667372191533700510119800131880715864780682391853768344307697228320676297629896746576547590460948040034542727889716379004177751565110597011105745101620067763670800128184443458849572340122616034666161181262146951713208468432928326319937666908526389829605686762235334574591663969064248461488281485349849409550948444213458830247320944766344895051753523615628374494026031286215595476342414108794757979422679769653297400798609960201462201432596673468234230671924755092237889988855821979146729348734984370050213026533542740601382202096493216004641545014340948678270760342895639621220594901042844855418246486671630769594945498678150031116783726873136424809133367649446824085562007406007337382572914791179531825508263677335793903294822019917938446179564308255606685141274583030397891917660675830736819411726919630687073462149415377910087116321117642789738682766401016246182640009420047572001147849660025948802873172184102051923762677690428868769381405961847860976269074113484728804664119121499974668241762920412953844934468723648159590680414819727134883830226150301223916099719354302515695270200271993243288643498381793281718808354971623196959031072484013790602029590019313344369472616281754307543939381143441941103766237018262007052198189616247420570924618464895613963853693728583037932960428385112932718966451568180244855283510014545995643527730149036002341431903743070656840829651441832559555309799069721325112385684978843630559911574653440177981376866576875813122245144905950297766401714099538640348738460306563126366495727412841367788889566360718997040377988515046131430274461953515172176462313339586498771728441434420763650083226603632837862435838666526503759680896010476226737667926504550230224942476910589317725365417699884698273297990323136586770789962130545685768919686486208652318595457219683967270311321431830193521201221679130381737679868461054967100955326610550530485694469955604210079140429532257018286372039785953196959399711208550846642770360377401509341247190464830274321033437549629688097058098608019134975331710755440978283214530627144757212151040097554248559854780879122293083875143586020567089717132747543306489973413945212898872678764796784769991761790353152300108537883100005139095054721897242457849446049114992606201180005322011228944063660896740206976713320661709954376326928653791977057779018241476145965031302047042167781418326358354729290056552869815666731136655204820963968102524732057943036269600147230263824319732353625077616203396342158584076037719037308133414082166627256885548399502636658477822261359637916101210388159369986286536607934425671950826395747533246617670742562225229843954232740756927707270070357234703692211037544189671021431863424127249792349535617773883511670558513435666115264073287462557613901667380808388425857054187951485207686666937834890977044139381186876117347623415297691094766515285547903353205613072229600056002291902911058047377412297829192413886357935690018671895894066201930830350745378138925574661453609111999860825636605461590634717061547735576980421373955048067513185399208518077896555587635591640626044447326723036373405295844866755706596701097574135359660245906970032728864655351613637577751182017373817656891157710294065423366431429947320612584644381811267628687225347935571656866443130272812158291792884777294478734079522365716911818585849999736691441509159446998236111881962032272987362377444086753214468394073018358355105894260695906312378023892833772042035280301235080621145556002761869802653553224323502759717851847551940878660047282040322533281126442367436397734862689102722413220721333973402032603002875250925620989309384555623532832865923975770092346356871353454034825485113831600383325062009523116503151050423575962538600670992948887078721082283188497538054668599204449650403104501125269304973912052961026252751556648873310132857903494640787836906161443784646632881431941667548930223655730187013571322488641766914692117206899001617858617662633772535880157082747858121238326618938392772846800713617948161592120869811800393430355162771997575735797452712630235322906566698107304641151298885539936129147544607649256017254715675557206824479750756303951435737758536722600482507784246545171644704423579453698798393494777199374726557014092893273701638225587263814625573533169693738571355021625290641419765773215690192036336380595966080747304628776160784759694799953801728386975794706026922568477206094509337541388329714042025833425622219489947091169745270362531190951101024557565583365324950350536665102299561016761959861307671166745992340905173207723116498046147311623256083849153677445629489307353884249288402783175431390571584835682745201902879394112517382509576931450257083499836049751049896945116809393160437167181310510317646310633209059381243367323255556309819384601605277290270470335590379109553251423652312043944921628109289562598934165041880965140591736881776427119945682315263306730839438378132187107885554326947226566111727044043574791761293619448115620293048518869275893992138023691324511213315591894482023803399511523700670463863781891007929045893941406607256002763638824430359077881342211444208433903155198339861391669776302887233519913092639253788784291163296543569665271188006265782528752639001661256610016895919583619685380737329391436907386551486036450494905795151129192835814060312443620782504737936721503483167898496981276527385615922200759803686227632596412763198866764295042717710118586362100848199086442212704306930680384699334194300498726837979021202722973167243040563433354197283467708389179916951784036665828089016208905380692046061559444775290729207225727044048624806268765656373948071804087978113259600518202019669868889977234659891486944921903604938399582772565292648604872655667625644383075303377931512773524117833972531624377072289423070313725071088500081124297143284893496988607212357453054132967526941386892233319650098505795378121467071922275377678446980422599134211726682464056168581270531319804706953372811006365783806372118367122458187794985051168499015466197122012885485781125170057443661377784889870200055866814192908501772205751673224282241566890301969142864637686580399002259703680600189210872096979743535823372433277476919311410734427587842308136495935736218107024043973232925414175104864359911111847420475137915338386209353554454089770169426057563739835828153608425241685643307712702245131331550827919064958965935987304352972438698484942070242579067719819063332397076113004862756203078708164992941970799054032186780152439176254228102383714109727555125191197960524600265242234861301291650048684483063784253975924729958298945905889242095406295291173705691144904881756649412639548413303176377544563524582853058654637133266234805420201581500318433689571169559516101573307280058873748215078248404273978444146502269911838112005898741608168234364449719454208809846685923647616549206687138204317572399993308463291000987422895016403415129490878758418981741783732039602880951516512251989150945342991691737148126170117877096260371588275405771944867225586777641211375460349582413321211673766815461585888965679500934073215538937847711254357418298797096418059271373804267728814576224679270298377638136672939057606032819369619164805104142045291700617355984066741615085920850215157354326559161260768505760327237423707613562793579434733920517163177794392111095063458563948901560735684594437626355890248233332299545992689428586786286890477814890571740470730444959273988280068841110872124136393143837534004397597762143093977844012437347819067857028634690467167012228427492003593628292836686581637728102624971116248090062816552335983518495123615543889310379100338452901623655647050297794273759013118291439814924909639843525215033730449652253664066000477180180440438887195855249925395706891019498263916604434373432615601886302070079766203918022438777062943413748404813517315663146050502486255733578034852058395657458242330529706617535364792420457758654761805740542489010169760860670960212086796441376544728420366794922226536920396599996280667383772270971374223226435891742274813162074138368321906693579620921259731701122794127134867791175059897901891453089922701653225689767038343577937476286697929375876646080281590593103823080453003055859440857852272755863675210323989742034095368532104692767583046403845373195112184685750292705872765349814414321721460269700166509689642869041697079870258221615460228720027816474787787859248502868315274192785748002396659733704848468906255808883020471137766573061549967765933473419965096923958920331743938128254002574757910191947579067520333677891976813380542852267981190489227836126633509439383859615667769706423962178202732036827036918787871038224896376128360502067022498003461922682202432582113017572800980931296842272977428482346000666478621637433315086444864549622415951873564808809325835468719946758279885848691784678105604092065016799207899196284126107643162539863449844031198068098607752017884324441864302848186703539611726885013768461789119663084413673257256652908889499644976041918665003789840276687397468606933738054198545269825581566780766362759119343953796367770919116206630139830729676846006519945859918298683862914352155851328315441386242205310943022644018026984780130343038575065271883442581608447903659158000939085029945808288603600345331226962655773421371522023667324298205932443113126690755702581394358075279041839653974115594569948986162069410350818735784351355836422251946053442653771176594941033530182286712294441737895377719596726874378078556008215800860943742911079702844696256362479598304939158332011458259260667980910662354274742762925296767536173514800758324685777572727930309089044962182881824849200878563152360407842460341525933405059281090340373275437096356226928890871647895225575092269663979426202224797821040888696138878641920651908481787982594566914400520846225301095775460136398723025310045826341614518413697602520325292555614949527992934726816824949694354756334802307770408671049885520479173127906609072970717837818256738119267185962937100255336959995231628894152464225120215033913000959467419654513849629868770571404554936099476587616707515978447251542371347152123503596620907650664618721903148335865713684211065663481074617761413356379913507720537287272464826550528288014590204721599523607279746747159945572639594053084191663168794614221839472126758776701087068808713399163198179832885011210663965910186497963225802621476762904446329661043729345380099218866994011992972158586597968215360023417164833424385360106002267303529149157608010498602245002374194886752822639314009082677514115482329687720663436482878299755997264786428729244603483345054250810905010632199004928263664132729522692789532110623007104297979301112963697233419941980324932612968413155539821404790812646488680393684912927632621828137756064595256486281768303762475653305827205220758816683621661872019673536213198677633268039197344437664132565993241731381952926974165322183050621858680921160219296343024707597265952085285705405246976459046063692530550876409048684823194308591843986619438497225486297841950200451343877039993595481679398190288134113254858192450630413648014440433700518496990252704181023107067450324308567337282408835126546232721606856961612970387011470141545252557777314767396213820307476273574064758108889486999910024428215894267734044537799598451190676370035177963617311300977939431013862351687594584445321567671099678037037278328786213769275436687012056198608857148697685652899576321973135647489823221120717972258601704207440846225932108894634619276079670898474342865440646239339899179724725586983380882070097838854956245312656416392725072699075324879778219279004487247492399369107366896966919892384301643478223094844858967220296337217703643423509384658259818072072549180963145067165771000870682512336515043862804785114828446003129688945708919445351705425269423161450977448913668659584941980093794566449173872656668956163808457614403973976034060132606326857036120962118175000724734968291561691683157140365875784551965448448176796385106448610741870826326959301276478416247880016801963893806845019864267714123188935212239531423211020985530434176733412716932428843955542966226097861707777744665086655995350090191185482023836368155031164232722583447135951309383724077225403612635906047721284301347413692690440857856659017506886670244901621416639071146447344236087119051700117843733134563656128365389299834026258793262568905199546084975835070900715999725825164874996759010501299748570314556169916058143092123529817044298837598841958992309678025367455124101447229252873353697444075587977326273693686012164237751190090358654243708787577609193970340179281168526081979172085907459969953680318595751040295156319270129371469282322181021800535330409127140654294984473086397925579448864160458737108211952333662566018614712207550831474557450345548531346128907760435026927006570220173890875177644471510625199148403545952604139904006447267966885881323334151282582953122519937032342271173660159172443998733563878911791998407876466697004264304762848114517844537805840216903347286631264171818626524819414210383792465335065549088436775582183702515475640616370780181276738908144938164452256108076773350418454857249092736568233228136369667793690359451452751721861457147791174003619514784232729562191973345143749803516548885340199087263715820758954628680297830456955675926960971068168798159696690381080630072592764417101809347807211422955425840389669277263990481804217716917889615309716126107222937080215187378523012981876212152233125549271565011269331066061696957001514871490821075975088471715377025355515478710615221102133011243213887223827282696897942496767408010598277726674649981999149617645097495381242309817272015609369274616395729605665833850234126385432896545869737128637960821457951921524710268529932937436355982182645486741808386735902734649590897269421051744873088087359859310872544771593799572286174103173224931088331520167897322068519111409435756715204060483183501615647565820264606669422373614162842460823119669115934946605215393797120447789233888605836203070499236999390215405789500500445994753211245921163556986651499675969347168726173296168967085670281692737428377867371759330077389562890685933994513352842961214284635428988372496488740821842676252539056773355983544562597446768119210677821549494759151675126225148109412945026355867210177354191815731650465538602916928293315277345484849235623403678918052523622420024307193246530019822063243904819659917738417732097808804414410216662988952124407023222747718646635464732478744966558207562151607682728516657284557587362183693931366616004091733844044445100774320798090883824187907801329145967586676566102171974554352175820689628081981836822853158132095564673858378722551110846919886107972763937405177001880204537412053642662234767184508089410688703071798162157989080578551917546212818897889378555436282179294156782900098648614025582358836436247740067909146462840811583326100231227869374306889449879045438198448843829677314466042968970253482930973927380075138954436761445535362773328399312326434154178424246004196348442264118998300565792740861447552899892690844113852947498482264712576309585532388932610864696792013721928078663294734584181807917160227421519613330595151316919176736612345800559357025071625275914956317980628596430275844970822348168204199314097262830648211685625368058721480144846021460637114942909484961624187206425834738974114870868159299208861379474218966110942181273775053098834055024687454190007702946673049401886150670813407156280060039888163704782900321776865790689927078853795431759768541543790626614766737428822773460595572486515538798136740153584639551131409817432711846594077675219061097355470119968362781428985246613666286359525056869668042772884987108951580665060183129269457737600140508592288096049869222959000685572135878937129046829878020435269185943883399102087564969600610422156019874702673050975259122895704510664120575421924188993151098003603937644507522458389675734385492527587433197956370549253825215628048987993822108043912722274283435259991032825447768066894854539256439738728857342788050862175286495656889263876959767139994774923753008064854405438974731074176725655537200332914236932252943601174615483592929307853048677074494209395429106479650353788516812469686335368492397058998655935712837462970268030455482902542708420071530237268799994971952647362904860861247261749717912562048919874907629748060002424601972993992939410184876191024382323264362393470545924956122827834220166821312125574835334708329398176179241161176022633052080558352381668115936752322857976902151338537291326828183447303217498127825839612173899418495265202029550831159936359675817831405092504832149944092093634708190925420086224322812061884339806744397265238651211767996460888573227199229309124622892618818064731696124645544793658339982992597016829751290789285889957728707836852251698752544131193805485954328906374180692291574580050534887303564164508575182951259343588780289463815374412126376646342543714590174700404958200163922019172540783516664697472239901421316919105195582611131368356856878635901449248105646121693450539068854625807894103133953112186765126370612131579002752608732422381623891930363153370797188647720199211033625248783825481885465321607697046513632231106337364599586669007692855344628770756476800148407981716118835915688034637921779500369090781887719321669431416107877705300642766614750437255267896920064981541629714270776224870206793572015293230282286084799598479707415843378923082089615638078673678246860011935948786711225514197746981532050390549945469511511246475786123084138881254665409278583534232400649800226437452472651620714234538392049408955116764929835905397913130024871748858328420765118758108953715459951264116435270490891087213195916480242201298908501538716071164760142227662897932764705116360672008167481702251675841626593664666655402738705584929210661045095586843065470719059499344628093212207806870693910782469180862324910689654473757834150475249831577306363978873130812350333851692077993649865219178552846034596923494846925816805593978228302830501925571322512857671174998717211410028128836683077825299688143740413572713938117453688623134768320373598439311495281514848506992943503060853290589621557816832632957028613935124151115709739890758783006323781786989619519126146070331572708582608286575149363447495124167071484385636323502230672248182808915309630245006722186035820761574067027239193819607117804058795907734463913023481322263658838722697135766006828528905053199447971496152607147351384338822792063656286305864194027869695657677284064932764413945937979139310249586210448371661803964128943165790197380382598065374298076737061596282095722894090378142657720489330844756271097931468715578042412329010956378577123052693819512877055889329173111696133155069785807112691562166280040001198260878043896221462384129540131363446491763964266481358162434378302687348098395762963980085768776066855955784354877616938542099457760907718025538166955139310736911310896965042993686564359116842482004492309855414532381991563549742331745805837760486504050366240144550932066431707291135068090482000267930965659673530672325897929776455407582226487564941119584347087264769916227492420045901900059472835981874218794355598310229022635270969669092877118010634135475737723215058272972275270920082609886001039134953548278214087143205777211263004291636835369011643656423457914703167424752163011400012679663317790125767640830794104876329777654218720054692356379450818861957021302918193121935061795127769845998967162925117158426098342917624217817994551455898993378629126597720852264632230480136538625856352007370538805635149432635159317402380652003254770066353411733747186034194856289062095672203755772316943324255522807736147415383066388967948085591860579642783605984643559107262208106090427554055264734685677276651669635120957943556566503480969343181380849001196362223220526744336067395700143266468760620028058971412461971501249641920360985857211390052428802084870180541401437109702126707344941536581617771239170523943269107781898365055557374995382447279050246494615099736878736773346655588432891113631034006214995902752370058043435021618909356099437973539970482775703056019648867014148533017630886890845227094145667982906256532896972061976867330943983520563634271714619783148822550584049610657986751300469158893556616429478708389493699134713423590141547673640980517115194727349130057860507457381981671443916018141419714069146139485623132352130693921492508799565192174130563446178600698479956234276250066047769228077789145995623650677923926404297114697380350205279083742271623820147578814117978584248135533583874618835096303513964899714190751937553090148775941364328504254664729001704433866843506997344544319784765640221855563621891313930789144697048366778962434493961992745658851360469300451877188174876021476804965811137853892863273846503373401868713279353329913319139297538100738902229389116359837620276334727939322645225246648241581453820668448264494932546326045153764211277142127561457156493967967716545455123594088510530070576082496081748228212493747011203067735496181960339315224841009486473965358336528507151684419869500931047281279360154191562252443530264388535886880308769295649247805826104947404632623159272920809942249334032675059331205149124445720276072192537795635940329253479162617418169375567343011841017413474152971130912306087279054131025209423568462649176291718432056122577498606235644883201430824235388048052109210966693261059848031962702338191491266006547051194037122755299312281442698062894866462750118182446979397147256428056736505762579113454281673160879371205462770720316942621858881732825889042439940143959026811344052612327724582034992734307727111136654301102056638760651944584199503951977359273606440296293021833935386784013733478039995438973301613225744206398603516448275323818548699116150686354716577613721732896649086057506805361448145784249043136908535988752087245965065235067747639973316037004661862308543087922158429999605680904184968818762840298341664968586661601352481780219877634139108894893843472144576083334295221728951071768968891435990141195703149732665375169665078970992315249685890176415059969246575225889824508291320671673154022824740814354199300425845753834954521738817931542816366226971122111250551394966587548215289832649710044499577198765114907604813200583686927178662267940993724028154968066835741361487605017919509203750799798280463557062239205631599397635868313071445617281352277769646079796027656318081923843385045863650168058047889988328409391467422436422426344958882892952807505566302883565781637236682949183524818913277114215956423156365593315835847363567633095149323882900486428446399024767676590651838425166602124144572756260020352554499997707033957830922837364596347812763203268905295390873073664357342542700575531294091305542154159085808233418852227944355103073615807120075029994998798009388219796439580048431599160420396194044762288125507991994117674201301534101794524200133936164150034864106275326889924136248498732346761084834736476586213083099392927316200551784026526773749897619765633227360720292869285794681979386750397934950970555159505990967568061583275716521867844284509992786459271047854572647062274145212918421798542400143479918410758095650779905926601956922976694549807932747025360561057760913322984827609770623785320481717327073711093866248165076974526632649397620330516367536335885847167483229273034757803551482409100284455748234957482717760802206433899481684759127483651064147062519839049980181940250828779816186278043262798726108109235716173702600985521781756043195832111007668683605091047553509447624411270235274749410291445805487827353630456276365028202693626345437536460953663506792599787593257366050723173632241007642042040905126011450850635324543341383600412407855879362900631981667219255977032820779215289814114073455917718216098188525705889855735356852738139993472722439279043616898075302524930352742910693890669111951693670271589172850348385882113439285825042730504016275248369593539174710252648141786046850649283882188842263305348963301250957981373386613506930126085460900459047123530796429861420347417052936011313156428819918174743512205192898234002507132545274292265153714111745315208997115887688678880429079845730873508335547500746848585346578432285636780453247085476819783876006924097815173151064928415812678402458932050162665168688730364727991947961905496940463302092252796700453617066199639879244455158075600920489139705937488047369907886749760323771794420549512619691669441751082633583695442410570565617884849957985837277329398525197086098153175032862223044068216742831128981737091772556523391061055281484753915145897310697679792820832720498112926818459879788533347362151819082164050585178548747357223561582873215837090635672544811412141317761157821134532304310277941820684083782832900007103158904272176730362724735568105414040353447388511781665361006781463581068221617534910017310012174404824007845155292075392357025494589697827864383671119149372107909077014470153894026253271166297578004057026624087494417775010695373569889930698468593390663585845667297112489503618964970820377216504209236748934124146522667054248020028000491274490310346212378587518579196347720896504337005384413109491665344233421144025363501316256357376623727265275665912949061971865562251798764065016270030768067306971090031357838594337853032118130043751292179865572770684500497735927991262811869815576086357705269655578223444105128592064548850544983625111731767659528722903508799523787921589797370277385337844832350825287362501726670404535641799911335176789079332402014952083855524018414135163731025522744277930728720787263469113428740330911825113165503559548406932505955555090563161341304226272197055631610694180748092354991343253903141980548798454586746155257960778881129479828420809757653814690358907786245327275603646450467044776463073299556345216731201519368064303812470622089337103649891384241926507430167167839279205210854745138842225492013992073424002410675714842663505533432107316793918917774570248865182752944012217019786315135258367132646098853903165651365973754064689603986716276306905311048979172155613672803670081210464515221874102987057312148384470654298834155735347916037348176468216361777108938281239057189328595880214773380543967846776320051219684235914536374938310336795198225617216897313098852612553792440677668381023349093637073530551688736862873039068175999494491668650736484606068686832547653043520486178749373938675478222510630751814592902446507350226058542963380815175844260901713307123718620486193931690634358188575551086297859722613771063547178731745722093680899827957255218780582395879649836159486653862202274725887396269842976164555513696574384404133672806717582410550738001862659276714197160218126490330453643110045478027834153410397114196212701048435547081595080235928107495105641042267499096347171143940623034033839717359692459628061894286731206753187602432745142059268775852925851866248966877950081379955139478051696587770117375225717183130767582421720855946408932323899693465112193779907278778421695505251546747083930934331019484727675767336919007794500342186704391512027231081065070047912343155191113488164689521114713925868853713042084688238188950794332647769797489298582314239808031061967731739357475542057676742164172900820837882568211205228355371133716906204664432049382210560991602637435107747457331865368175955147256903501476806558676443954091688381969051346832906232530450616423365568108445418655503912554332380193217540389433317239779081769134294084406610604973242480529221456551285960620906239477240667576793829065240420055938154124544421005149390630975155390490284433404381348926417851104715891493738239641951076168856408549212884358548263258077149403840331066157575335799727620104293851573679473557883920683257756754467656403985682532203628546455046831928382314213281446390702424055278731307854931602972049389090361360877814246729953209490538678240987244521137087127449757150258910809194231116169054164312163572984654388024178264908734814743710153805554564938898724055809378958810189028881130048237575189843249113334864307802798600319819613058754953599204663165701783588601978377587549477130309976574077035470879237251877588613936816690556418822948079878729307710329924314011815635214478617814287698086237822028316679635417036055191388166910426708864659411392956196936070161275465081758280613482275980338285900161800033373010357482621894750417624192607280264548383865766217145149271900510081472092282839080102137962582908922532435417104027641097935867722338709107861935516297586481892353433476868460661903168059853613425354736277800959441286601356735294279077080895698013211667837208572804495536559663372860651519055217962348034821081252824799363997853883880815366295635698594967679890313807058314517895340584027563268082361789432758028041609290363586040045184106696568895544046683484954060706843384451155964427586884354733216923266512481989176151790387464979580075117635150576111011049600689332725836827665367527214402769798715957140511259337600452803623016136985017413473164121724492299773726550766903712715070102489570856870003275666687412032669246081357261293660160135093072271835605618412462995087581035818843305664816565305055864716382161234548683774202985695283454544599785001081487836401604611421984434598519248777531414417504140219661641196448483896902885361900754785964263954306323926246655170317324478618086506532220541591728758679368892050858419782924381708090115635897386769921457223824031874696361281276460131384394247030131267734095405966809974141532933081073391276394677910380941785366194720840207636862046781424523075054868973603139668660346985367738254977949655339035573158524396556164471393635647553427083898731223766030636547680826455884338900617342341844153792416862570356561087695955648384319845690454694419563659233276694930966701163544781095381269693876795986756688857786138000558834269869534668061111332578555006681496750843712358002013598796672708835789586631516573243141273715029962860864562920100211774467841467995457924506560291475695365874922054081235511289863466530168814125507109431236134586334999892268141122315507683103520934395064791815174162138525463201226956299357933492310205484997148783614120417369728010006973283336911435532831207792368615383253025340228619631169731145647936090218889467004526194042915538576182702129257185422072553306915629529029369977329611044494528931284576612122031225168227529202031614575885902210911702370317308631003182367892276373626881798683040074864612902162542641814377526307432273620190474523466090817532424242477736682079945243883238727069854227260467503296104076269850580107176123233252071085133271772994168635267602696475263447773107110642127269944504293861132160597794403434918546048094030449235270526710722435166696830188932521074556134140071818743077348271427025864510283310754084977789114444070672760011725128132650581697495699207840849238837303945649626466096631808364852807916210991647022683024419816274660494062032639266312262563700439215467584784214883402902786609248877564199133665786183615794397628607585147991956029558636520088907822382911891406602145484530044162436221453386669408983425318161680458099883870732638975929156230568126313300443804125906841601554507043381835437984711293660630169735404586047863620157131043596608155065150162260073836031761676742109954826421375711881717523957839168812134716591072511098228661269095458854091261870995528844102004800387982824507929737055752090857958327187962737111858779728863739180665853200934944241201440497783662824782950805249523318626232876905171918959059999399884717109350586515434711857362084335844449669060429639729100137143241769167403155332915940339542290274883837548565703194703249864309471107438319815633955526784132470717598590941261086674458118674400001923649301128636940860263184567397619465786497182775515826515423144064619542141769073050545730446824751359759322134376206835136742683533938302755100064127265242919267687555493838786737496570037453188026244790977113595161213342137189929691567496352341765580550234422418168744661778266600531020814406232872256246896279954390575263333687186888526034603744579501389415292001312850222862439154625987543547007449841009559590133016643227938523713330008682337008067999991925796396414849241784054955909283287790486050304044002316545079821264115952259416595657805213258013237301414688627896989408451820325662952971251993937493125469062983296634949851267058057002547621466452300685427373543380632093957645416128822264631282252997223235840863799873030553689689859940515491228201168377672520311537629612452817231877234978603607169410737847013406391109168105131715391085229232354780824737152644142502325428343030179440281019330911674382225432522627745707538854975263037625527689469089363030053239486494118963864350407191815595599202512422675740644050010060980183519876751522187852012499945050159913930559407198344084637276927693006508879432086846137483537051498333574396823956604278642238688131184479411348379534724267064079469722837500398570560604270817680532057275573218734370941928312743278655616119408223088868660241959898130901439932623570706579132968410231633895098428080004160903878410961506130479846898999757045942123305115739880330567320253282023687036950626087657329032426648563441481549939962000650522118026018831132923617312180531131755673835885144875199310995231689127423722200993379379333678593789485434023300939366693389822642253858364667614445805256490923618167677541855045233685872179075408203758029844621571884779323998487516735953639613007609786045632850556923200888315814560398205408188936665395422902088339921711555162595362592539175080735242873433097391505359376581327298431644645734868427200568300913111179852074782260503274917480678176609568270482609125703461638931087975628903882933930548076470601982553232551207115473354195793964292649918128997304693674051384311235764677373654150080727374405506078022038826194707803979660232167001245930874197269134755085958658190841984170292534833345957163228375470166610318353340258988967165369234558506202172241704065252405609722937047083197545557111331376565933773904668505751078880290376521506843070059416685711330353115613316044378975006510028002262579431224649193175941579066134740131606723165741962203262604565545895404235049107180078032474018299875625407238799002382540404565689391869659788151622853759156407539181084077272908890867787232744980480689641058420130662956864317109535638641567861695898691684283437884333144969191022635593185598698167355731417410151054272365557930578413693203734664867903111564754365294140162328341407125606096729173250579780729093991493757078531775437684407855305265111899720291396856569389098493623958389072200818142894112420719003379964158949954352830953594095870316059766497081321540270752040659204063995219860533475203502800391833640300456282897704345283133899119970383696798363241740823048996285029330672804619892391693347664352156060777760598756856528947090582895806675239333660480962399435965752885303509216427468204004706419203217800576144040384818845811897684542295959046090677171033202876642386526793847513357932932512107197353680692229434393685526262576760400173220419205009725941156450106471496580622575908531576116527069334190286011612145197176576240855406326241818030611578359515827235821000809575549412961854482020735833157647420940925224440830046666939058842747667139408941134709053594118410375581461873185249443196511394760940275400904068104798646769727165099401753237833309893115105799725593896535945701039682567080213412380251658536718049318002140369194300453915507077940171012666416080947043907086137820077972095897152659285051463046424116012079374497781448659834775072769090172705510655735231044060174892622811328286429295153547330079968435994431589123384288776865434149341630565673687615579191340174747283210010049167146900345136483175819930665259334109049942082906892911699779997300937060635638130908206812901438775039483458358672253804806751841300092953719999379084383953578853686591264935620378944878832869529649499446900689967059770811145636312025379538841466288342214414850743660618071999064845954522013676534015328425737708580588034008403083952416449332736897928848678648971436895662910369868073393961629828511105880649579867667201552497915626484426237008323063634773209060764495481452921842402783534635947415537929888280042674802173233271171607075063155522257983161924125255113023242257448284647604352538448778584498391306342814462909638230415137054590331754909834589674675499050070138865888439674862362769136983512129709003357684161455598621171808684550617006911816565211318450761918695318815014141462616263583012925203709797531905336284596525566890405983162048520764364146876709716229620884527264131167278508362000296773457822766462570334873322545820663757743788178658254250544598780433891670232323244224588961715381018104070042376178712358141891794923196077161102081598476182858085690193624609553755096295852836015882888018697160291500559737594754140080729498933111396932500112080680024486042660523558562173331342393824664686473455917071758452573380633827478528392413864900188172619322637384606093405921558355401606881698291201786457795054814898806226566336168065268818339867041369560082750847920442670343794718915612181996464625567963704605829422434076824302756340659846011455796622473718189764690727412204594522401854209322801453983681987435659837863839622547002423411361712541757942190481101201967853980367201147562117065871899050885448949984292539062317022016605740422075392488421158978721339301233468543020789610677452636816713642500727043051701981509107764660901928221442036748815219756884691159813730749618654862100189538913366046888565195033116386213846708998841918476138274904300562383398051983698498263990095078923702734174310928136742845179506652838114327398720318661533225170556795263486783551692266017293056699793197445455408662232986872314937111179232009024038136221264216166625486328630018043785813883149849695578674694673389903812699812991913049832934479896051371177202500322178347594581990447248676271126668781610156891017197185042757291875584522053740079247379117156193708613460355999120261038815012753992412824422289766656433832614665372644898965188852468008638376967953824683100669086146338566308567881878730036964617613702887078877440816761554092656802568793978463447208302561436332862515988727015728610865170461304239099221548361841126163403179912080057509965287418227375811559994470065426953709212483653533254847270820458156748550997293827588627329374558686776950845330157522883530773036661506424570723801870557212671934290523360396724484106125033042556773991115777642757943258539732588540657034027903913575869745911393915693410101385933984028044466252899874877819467635073399446620045102514350358673281591685914855385972254360270447057825300970927674897040908986155431152761665164271238962874016165012213846242304292634073870575608434121144552286409423707595152936095965663694439505016839008735649272765104119772490046344742730719321660688569105666696018781298515874098929367964282022457463577252195800013920712685859859784149376814117701735519401037950059793102250466516470786605544640715564790701600190713058551387162271267997734317497239145204842538976773221866229509458994669205969715644272821068352296867578421084824523364923122844045076589258707901333673265197920704088267857943984025426126947800057965824024361732123216017936086211569769873606417149808295983144341229378864466853267388036720397126511192285403683957345698089115003405947561810255715096251085943250063922900207533741870273929421294464568777555768137649492492124629262513047153031473740077136315081772203158301483246922997716858587544334986565187934080208040637373719208867806808978864991002070431390290953153630237483743743186398756286320241836321335362089068560106808382191043517246441330219260751791952939318690175932429579531890762641803311658847768856527083677873829724619300323557218176690883196469031041118946390033621138912157837831698398531000610095264811515080949595002866439347171587669017891875142647034493726479708190334410917554033090459910394617958660701671376286561392524325133504949024910111015009169810948466079821699202332236790598740864641605706864199744858085706334668467570854787583389039628280600439070061106622032725304395036749919843427730590732287398955342613223013866306248145884035954239414077494945781686903575802670148151750429401582483555052247839541733049436113973724272467483853831812533155187972529614421071912904753950857802698254653418695688072977853062253855949964708499037184596990846001706281934529811789040937753788942825354993991624552039875811966854049976283801581870947219522137707723036032323780744967459237787361451809946475079218107828449236220509546994110824074114116824044274130266920672731786395255395520736070587942017066277337863508739272477582158591784389342719276097772431825146669897336005248119754382325898607184213747514218483176083767973436836627226005340159487986697504369707580307268849862053135296412338573625082475842801394477747426927108748789336731384788100508966548812723274706112526389083259349235858372533689433206170969375146939356781813253412131601908827119068321631705604110783777039270778886959327269309198219264491974554828015005595328893576306651355477826089602557652150754390635398217609482189123279644429010825972298128358068673832230604514791990687645941651030526051659626095760411613235248242533637058437588348427724995298734466111892304092770162166095556262223828234186587528459813268332769208019767933175322662213536664231583702864235552341364558280701573991811264156964455145323300627270191068858029450126618720321628605584817394588221824478133068060249568735169790750203995155837067893521200370632550718336561269918385681536245230243706441831110533265625653933110453599630380292378005808449721925700224718484434812275551748819199865817598024233648802257217268098436301075886978319731438120568651757314887597320505348464637569115107867879370735314038211901175716949653878501175917243011336652279258998299298632441997470022909119833489337115126465736465950710245039687539864804502135461901003974810656536074877901233858170022297386466323093496212469403783185989915356995003714916488354280304055616590113323988766925040738319162230103800212555046629668423172953085946119167297262871291425604886242058058449321457921174591782214383067322477829295941572954223483577106499254101716336280245099777833962876257853337865004236083613995429157312540375194899486990964317533577465776233756898054663507964927304915680241470418771982744539651328048869255918284838388245620195879406081258340670187543633299341769218853045930431823921571566471360396020027011153976973551138360107470349398337250455903859473828502856831557071251735002988357800030892465923962695807403210390509367211612433248058482115695786146342948864919220226539352892749485564578653068996639381177944616736458207603702543930935385941401063627599461338602234800065613471678605151877149434964525298123773629826785016534481864967967836207379576983701540000215573461687655723803120587375387429264562969914042129697029427710328098397995559938062917776913767802475925644287762887974499002963103091298786428110846565603579932729783007656530094736552698768217090106116131475971213950607815387882309211799946687480367280951525752383116095211133966993843554030108364363452491983284428667664762086261350439008732376698025322432821697878784838327461288118144529854079254568139401610089771834913522285720517685374912446973393159074095895496334113267819143632393376492079781893357987616924298913016983814617151809602435289707579437876258502701834100213520292609484377622229755974634215786910649834076295139543141650972022339578175843695063917791811480698162360565471076896062908159578214633041231407730688707988830287256977364018248328373072407081266585146527970452461161770941198585260253623701469024850694466671872955129176502486431212039469616571304837365789126205894149351800885985556776852143576297355323594816798737028554020830733450847123150276702978055718016276719887406457373308507859921309194350289481667285929733651828625474809013469579158857385841880906517092716215949009943505225582279569928519290044544942692024643119612732074294036767546509709799391811582364654081580954842622437625589450354971935937715008298632956273793783153727955974438639946557798511009691703021679662841774920480545173243384076274798719484481298206395601226636006611603196190630322642196918900923863697316661745801934173075182313321159519719910996493187638794742519197504810220741951598743537554501620638665580623364498104814444110969892920561028680703784915344036091322807972634238838161446814391224447425198137605913396995158346612511630986180947706299944127215615017800697050357752427993849146603632270990535773724086925097775945876383617676506873479243910014891813928060579757173260839807210303640843594636900463211748119640636587934478613750492708350468508838896741155448199039670622323456527919190676020719642533421449054168573067100606574293332047958132016936099623554105668321843095553354449198031830076766534922177650034937915198944407931511689378405226180095596052226955220909646293745273973045450069918057424517156426143398591685608150520421673327515165526481314107154180402659853200414864660758411451574163050016284879341350000966087418960632419770651952295374645973392879699470431150060228808408177955736705175220339556086401377864681268895703430503304126268130183267849924441238514166708671890061349868349541390332504033681322744216128228933648858912480674385139658863887807377110617271199699104882977828926193799461164448982976342631523392435390252071756111591662640028517544211131367939244355866140347193339187449197731331984349599895964477212414843988795038807640724513378654089629453301876605354367400726365184315222622605422146475780405750103789605759682170426374812884508167754553645251665194827378673874841145367902268379519253629125494625843055150292255847368144686560142341142495188198884347884679084890593880317810675950881506023955082303471027177010051182535105627641563931157351907458332876630118220430288290419667216629569771007063614428821504226242793669847122446368235434687828844861186770205770034741140541940890697833372574798641945578161264957925078495618615987830641721971432768173425155308915306610164703564483909043099169302332927534085276286903123656603724470958745035733187554418248021836063640263112740848834399736736426894231267394466866507098070841871228756376396843303750731720360618768172753265657385173234972601843630071508272660735522169450183422078891251883080966521339470611365884404340010032214957598521416248430415113079475161197095668582912047052779814356638162187484728766535470013069030757055159193441473498124639753403198532360086783593166161094714550204874174293718005104781872204447319666010715622099809227948101527277826733351278164021876547591141889766225530076543919915522510889511566771840840943260545570111061016513666978369835666474915577545511627609734985900734552757471930401040631607438450949877288464981942830657121219275646295330683549057415517472820929877150127700816741205470194497944146831772595014644768555173306715373312650210965535088543419368007304383193662656385001501616599227183113023524133849127567445052225151459154390547589181413169700587621271537266517475242349471031377901939124511953738130034646937868005594462780994219276974641356133622762514163894141253750042002534108509273358115728431707933704331442109047625628181719414115441999811656046945199376668050039631764042252399107012618317296617168383829532740262364104299994829160472172542417504732624934937443518326970358796224663037606945458503056936325315648190649078286726644426517077978110376673482477118106737766422598400939678097214107953309035910698733851662097803292106729997494869470384382319443980390715563356270004382803740102926326353261876703994656013246731233348222884828219280949536218968805365906046669782806439746494071587969983274673540750240406363841258952832751868171388600082336852481559526553331500167119597357746764902321276059682915398818766139518554358993009441826512341807448938099644567570639741011561595060142575876530957588176126196779527264112764768398446379138659762845085630607872364722203981747279522807740024153535833359663133371646467046619427193264890533669125107700127908408197311540290683815278669943872030789953030990692581876356357729495292686093648250989684545577452561770370066240499816131943006739172272263668861180590096510234220878881505789412338386822737086679659196226652893075812367696079396567173944926708677981657825101092402633192814064531513004220498371194704769780787946390810687907688429805167228695598076535896904023180208506563205406101983511427956117877863653155049348663021993200660025214031518489198158029217048159522538472610823205803541263526700051083563496491795881196001568134992181623714577516322331496891327143885971518245344920322663034391292221499312463147018554734100717476379656928446039200524198002316712768118989228649953198438664141780746942104009102848775195358431856089594985020781063006882560354821065456767371700397539810033947128321380459700946694428878878526555193714702300099882786603194607169704641411198287862183590196927062719477350123008598114993832286638532745247967151253848642961845404528508298228421127348603148110488968359007395644804088308692629987789588892203906016546473919564088344810529382796058583562455296437990817566902538737268383647603149817817481877123150118833627385913808532413984073331295091144023651522047206458549759378788157772291948793534058467358329001678982619314677133069144638387350827571855642132818697664822768115647209967403755004049663615445271608326524084568436303711831727497933468420191978169514447423654544155210907467487923543295641203500817749122985579612890297961603420409261976912091577276285818195136741917338330501950112055464231655508656395842111619424074136809046213149244381706640478910652999792107063111943087053253302171047336177999590352366931302487775752636407751215902504412223372363405436519464404360337404430148920518675085665263165408720329287216444456661917236129619857698033609024465447239579906130210422159092734758148041876918934998510532267238434253538374674633505390984827688743335042104910749562057061615469823314358443502020174400089341676282473830923821774582533884927801891497747125944448272178659332395937269898425873017105697957562330962729737578179065483669143039445747733080979188420107523427057063791231791231274971785877553995731036624602718343913179566306658295667582698595809215341545363102776676469299568581174348343060521928131783696943022852005981897908673701780101735849474514272267153366860213101628278697755711014105565669960065584250346676901408540776495474524779567072726537311121260521653707797955249663180263592446831716854555446404841647608659175225628664827734192909016425383045870880723915181709091498290641566588099014136549486715454902070585496152904339091571812834362817788761169786508646485111787321861509469249203140639715962006362842594456930112754215674979017876361848599764684937186725382157260969417384527241735046649465817372331440236627878078352053809495171343777842929704160389772017117325372255028416152661317298669008261722778005531779935518189285606493432598592630555045588544452257496690434490141368091274401065438622774443198584154419130645727666501690247068775690221807591203719771043171862967821938081490687923840141179220241794642584033091525523758319153515157105778185100260378830981177884120564451704342672001009453819517819047500485023050245296455643042118664566017513653456702892173526790423123136739982112155301517544964864646071759663103142362130977125941471610819089010065290700097751397604003048933360690454986754198166223067383307126717352164126651402169068930524150222038860423019832504522327066537022650110023427554555522368517812294420813966412636648068174953934901286312650684005153028016044033785161078385315965838655839685772395132342361530940848520170007130360249218984489240693381315930609277890236891613490880486770331302599631500015405814853828302090977492476313560133371074425978690302069472232719148066435436317843082739159297611041400991291814180217268784126450099875485524157103388471360044994116442744595347475404431133790123645149739961715971258179264622747543293457000176115496120318742481973086452261551698787576526331205065068624046164173433245603556441227181918471265935731725215724735741022574818467380645128666774850387418637573748649036451761610204086455277460631187049634592234015357416759337845634548055401852602885329794156738939500895857920956029646456010403843049216897173767854844780632355647036121677836465705810527662229400564450613838654532810427761192055687901443155291150513562111270099559663297682675468131014115176430294483608036974669974840443746414076695979011001456115461349744709416731948191842247918785224931423660178175703095980604499242941258301218561781251792654615152592671262949328000974619840376575228966486953497566951157769587054744784411520023625156507857364171177978382963077433197578899386080406441567397697793622755112727668590424725570305075961759696873381999579551861629132551807920165931769692439564779630358405886180824574768276673175803590924594297914219239419601521984478915604324323442696395897053746313154338650201510148386412080059970797982101325405147406666622067184030246964295986454064895523560261571133224638374523037178494735081714094698871867198772623066960444520897382287047589523443604932098089290630627080311509174855885783428948443499272784475929544079706216583310877354668394610909027311699038824284878179441629069468779316732419484942436680549509841436139945091172125387438544287868891299365270832869112509585730731168594080203253294316415582492737150135315211398971901107601439729078394604288570158760727328186617865299885415895528565031227053850180152630974261586487777724308369123883053165289063570719976678526820337477577164051229181883377388753804429240525475629562133371970338977947075308990260135462076302418818474326401544185604673978990389609923099887859134090394367458559220759511274784986162866552301553329172655209854411165561214712019404405448239924574974126106152396710151091034513535206531185972753285629650606126284545938945843709274468011732701349599544571648143078115960288111575773146470310818958006136354145730826898594574523020788560107823140722670702692515762442758620077940977076067946490303939802030644872939296463215498584312910360321656015681753144379205027641262465045070727614573578279696513133565846105526574993207559057490123508672199794780209945245329558973135592663131578295800734846926870577729199447101442029316036413546354923262242183187882604539096475504567349744361088992816914398826383339077681201891182261851058132152662601110020723381721348210308573593798822855446113740667705162872034313182645688360157287337958480642783510551620627153116296698037472244369832270898561801155552094715850972635400012237783955981904337488987349204726887403337830617259092121090953561163377722258281186068239939731172206167070670174970521885286611313384862593520013376850478652585155921156368961749661778676294833434348148832032682322808975057428474707964498565074137243334187029602780648038221105514631958396402695443805161786514881325865071903205739712095370947722090337006409109808890232079026025625966953918553514263557594114170728569473698794507131574144629484350786289457879073140477966432482994832523488785435508274319034168726905792377973759091378885241189675177718180724589266615719713962788338495277911178928690173008812103503368033742429163312866522201433263258545264999280942771262707686342229903941662167118883722712351103532853418021166344830012095765102632186157300830716345659400706242861754367527591533483051076541362152120301302450905281863477588658411790907730676122930485173582664756601305309728711962705932352485680745881644152490724841748539652341285046180035282888405070008319861346159774650398004361996909824995642852454335776249577294700212489341016254005901663911305460087183289891877902653980427428887760509198510972542491256269782644401342854442797999144241411510035724867095942394676695866821989667765137461472423323043263263409597348730738131741390450409507719292788275707310965474036015722115965562398477752724374558380483635287844202628857847088003423105214178216043377736172075557948730535642480730332044739816943288838162628131390114087819475067189303938970657923480339376923868200708626163373285756241495029581340206503948186604635486293693638837233985180441961047201624114062573684776358318503058760209141286427597293495850625034667267248284707326413712193190885854841502999222601172998038154427593531722044882586692195458467286191464697178360738351006467448976058304822520179478172914769406890134944526355348617643916019496028339885156365533544693951006985528380092227428890025246797347045803720993838797479854427935864780647769421620346161740111168427089765898897371032910099844314957711368690317853485659185571419045221545569599200971320698343880930517993799951943851802322137373673168124803963532762623734755148798318775794832554566888647625478831874054366629114677965540898704309104043251659695920736993515620652839564127750755059529696937592503296040522225112188236665032584043418838414115119417756319474313380238833133288800182159413834775097256586098084302611816325707046046647514810522357850624754440691913017390299894804189459990897183126976130300756237638875662858002497709834452764926793541664773824075198728416603732170738129820846686716021492644548824012325640569024549823313722661245792209143650227885276608137837946126097427842334149786053962231458619124586841174167235322061036178830883019117767303175783740675554455464163880617076362904305292826060072517492609443741061008998606852227409039425328967551512608994824082277087386214962207593800426588228100149240556511879964026483751935540171980260926253724041402693914662718286938283350404892711152337873220354674529267179407853098850029461349063217695480172617192504492308075432909852294192724381656177707463795084520697392931107195278479064067529307195579275576655397387080293575951506935039103346764514027895320659140945943515568609598419980406492598256259385092148532386707173903111357979291401959293309688992970762923578899355449758667997731862895619848004866207675100912620817020822333977234473497804078870824132481126872016577995692492280520564303502463995668469251905421368999613745708605069222776727693345589567971901868680218681087911835547384633633340822958427460888466479232468975756670041437703090015182813151354221827678463028820329232844865272559378701717638065794400143003930551246409960511556582120479659878285129601468707523143482527370703983527504798763746707967106134450831177944107701819607988413429530914116248473067106278031108734936302770278936376730134385012846819356630338639668943327371683607400481868763074904707242456188989657701094171290344581568435351874385057077197650305368106431477601346947285868185451605639198001953872873895938089935702638164496360989171026988093064295216898211453798925574882351312462071061778065372160659077377959571143795540827444516023281752702524301558543458829067697910870581241396464047307636722279745220115199312615780461775849417698517457514281890719450213122005971764903234183148887016851950245692139364700549484960378851746289531086149027844724900515423057499260415622951339319404332721260189099634462009686527513316047834534212107110248498935164205449498272237508151252155793845222711136086148958542934452540143021433013795216776067430384410423589560671243124977890301228776667580972016634989172496809339003392549218636908707907862956400865007431461051458730527229927147902388109754723722149332435301817363766824781982779601288313166302038283373732440998253351522707771845813517333445120617754007911948421539621251832760438640407897960241357848433804619592788212981004830551529542490365235597023933948817514894052369109271747030590932493619536423695349254264611947691557564454809883252305855780611232404448769344079341467157752588601346500532325409244553710366347911840138814830340196662160256001948029774456988231935837839012650973323058984141158897433006448091966648744455392122928681841699261145694894464112930137359534109460281530763692596620727133063456305572051867556180672403324819798889755971192484832538388686292399810728714935229773522776479561239349170173732673955653375806445466833752559857774876281136873595902837299876486317548983700683417857576877885663641528807771884324314911680641460200047341311085596386085773053703508437283201336542806999253466573609808169114872171115023403158921386863563571121397930019833485667386198012131405234570974801959022741827213888266228539192304614683857174334901122195015274248868672955316295854267415351446603443921746864337213958827776133035636260073178900349382802821644780210109848586416793507642772834105153098829114225451177641678584615099486664295681793769446924398163728695944446028762400829377706983412072155399875038768292764420474586396156395184971093740292129336206055832699866413466892424596226477919075104303269145590513280068882132636832439515694968476206634304554617725243672065118040237285799903433339210668013269600496553873047788711872211607232629195596488962485508436073162029503172891757886939351779374030759227371256355949558387728278907032342659209835422512215158559722570506637569017011943317014862194414426207161849369927585517112696973581360455419524948756942461246771946938481184911405640325193555635425012799173780355828805217852605323600931823702635128406019303941204721075627667339621704844753902887016682998581015210255318236425669198972733024178330048196269559683571357418947047074515661223285611812138248267387982613609527079956760123489072685100380897110137380948017508366441349792900424358222453135335577243769785013637557886045371834437622535412955201219973397435991736798846863310643173601782201880143802890812086013241211430501144843940793732547714845103903524173390684811207474641829877754512511500290359675127509214069424131401827102111665420569017066786085272279614874564091101093125837127251111369152664221449359727578690190097647761141079625211632864559972010403851667170901243935159015287886662416698212701852683660476080140879606194236220307510549343547903910398378574670011694950702323548230384245984403081550698916216152150748020433741058325443391841388537379751553086940966028841621900018612372396155503127248904175893600294069402909645058043486933752044350773370398794916293497672883440102733443048134810000214580683314157601510244165240914490885961895450571344529999012734592570860672220129274845394373954762035795890238738327719117734539477945602469222722943027439490981000916904149075850431116062117812350680560109616127889951098503780902153054826742015137874696559885239036342307745431813741790413999705291718309123413294322069237466544030799717746533907875000271973235535558121782707782544767576520012920560802836266516144554445864777158669911877748440786805657815853454269917917621893841185349060533291876912970496288211617010804844092684542612887394054520269132690963301977985990364092721330630086367733152638939632507274866159404485238306323287102761622256006747412130380765607046552561216358178540663133413314912405219856779471318237560837743615117661895678553643679117495525828709487690158538833027304849359094681960412096321953156849742574942118405739047075799920033145089384630319360359887029749051875347086513599756764972894125343446461045916968680660492327418919219315941827469583281149642384322026567700694815504017646354591731703687896085659005518077496109478765656033614294802395655396950889489735613790496546900668767062874532522060261349462189003512622522281130741786559115493882547473753908128233692058342637348146728413738956122218274302552709179207251985973780034627240930625412156560429937597539281298830945477698474620641770640368462019121181790033357194249380449433132515012182137515132236113185853436422778469702660755075738652375568201968920938675143305678711221426390329852348620140260394316688993842041381266221843420764940902763092905389810392929085195814866938529715760662637066348169127479597885119692020838102815532943249513523396912398160614985392772360261522970128163376618897748204866024237179751178970297468769729226018044437425140762476297027891819804506729903787738613286651606205254402586714048376087713080879704634073097009646773149152967398687050798235434194018814601600289713098632703523113567695577103131745762889978232203173264035590163705659281978963160171678063563278224134076201857128746832661773170101404906687344922815735656205346865202303745581725175977540639594923968611362778801811318107021479107132290552939103290785825052862355696845345490738815436669552943897814130353413604048387821389792165903539347087939146709576362434638057702239067257432332119194839860365942664704665584337240235694342604566881914964274081767986396918692038406704418374587104738933029814003304153122123663735089704975588245975562188108668740109235388022106593301951324630651330684566579207189197098431682112724104503458571235088195976612580786436339516929456183028834444500881197680572824256769496339736730143386461930653960690878722334431261189497951892751665854541672465708066245503623702174319503792456878471436491771013183471038121418911849067601048097000347103341704528935226060824702760821421258148625949562572675014238674130015646412501478644314333781037488463513895884652062540801049423406862854924444282478025485901986398762437147491036064549971963260969018440124362603786523787111550959651960482286052106679597835797676509119393455645457857171167880785301418036261111219852834764079249988725274589738974518154537229345167258381175236552230769980655030201319436410222004795948033735433309718243472157717603683370884845287355920350460486706442806631463831307874845776301690260533741389788625512277990332762220929296371803329199665998934494855046826395660178401896272341545766255565480590381977538254502318268070190679018780673056344299343737807744380578903536473666176499282059220192314026227482031007806650838495267021626861690367354527200505706849092819398785121722266357422829516129905955814455754069852293331355126966707579027732606216100466566516456035551580527838696906483980645110884983246345011055930049463151339964481594062986428178404571692630907453663710828972563409539501525228115490821963334883168427151548742886571539272043079122673037920341690380216773900867011034050853706257824733341766372640854795692047777068224617227815769073164970040596407470547556628524367667728358007608342551120310426559055152617834692669837406153200831217099164596212503122079182679738734943472636961824551814534254153597157879231151561042581329196176608090838982466546923332161123232493925595760170650957352661665278296688167039061980499057618698707148155875258034656074283372850327819864353466133457137529492448107380241014609483954422900880404339705129257975358675621444010499129675035807243749310868310880760170301654575546647787630427650239941482828487690132107362811885863394840928338440076635403335131056777269258062255279152572447885445773026040110078665848488190860447854595653706290719530764929041041067703301177777662655153930403823998851975950158454965021960073535501302787673633262317471246333158088661179382655423240217802698318916212713807409302170827609498765759824790488823658826854965709783775988604992801613345929532099327212322412771273715566104246610214776056821499752695027198667528703353025941571882446340517368466774293704643357203415234748516584020330233016079370510793566917294980706653187529945304449811142045926306204850494684519362685260352201880636487954305923178559386412169421509582283671058259977504562829412832588373414755052598748781889897777097429509352602047335821224914721598253373878199869283496432455791331497002391263020648840509026438837054315130869672240921365316006535126121573943097127577501755327913396227180127600241926884704446463111272003864286144749704084373232580824056033063847607549218008274725617794249812278537236772400367619509711149436636986431674219160280901813623523885195542750758242755944152851195936129864307142633170826629405981885682220775854783735833464506799023706942708511356363410499760108019631331668170154897399739030211092266609102862781016401284750299267245574250915436248897781158944543071885136046748804270809629721909310142292904302438177076570419817232601992964881239374367434139715580725735668421141311700114363551835810012780484284871589337678176548205585646041567108368346188376896449044344987454423616285114683705517905207095717044018934860914778775777168591802965167735367891883512208729045303176968802722288275113327722282814181508275710412444211541049934052863927373667343174094594811935812047931442086675773873222123093556073139061025718409388118197676134844456856147304297686487976236631014971854011472151684637196981016680945494299142021836122253498929156367836527929784271413354706925686473978568485458932569212368731717191650874875209695779506560277296424989810309252587795349481538533425277520093776281137844802721137305767393171462338907845672795972932454695830102675406027341049948175381945856299148150878425300995675596822198498413306885470431355206523749343374261517269978203805283072296008690606744969013331698815586269326532028055859998076759612512366527678492922687447271454536837187198857868988562174663336080129645028415352161182250139990257033269169015408669253765957385499516388353187972848062670348230475413535506378589661133094669688351223614988316853684793325207706696809199903937358142888065846994193798819805332326901677931752555851313449094092367457580854428159289603264930511908878942681612802820299467466500097759190709557781132566557369234531214827523982237728006183146720640642454542598883819624855967365974193278634558266588809295482947407550808327320343722822034542976315426173321503493788263960343682326489554594285885459251665072666009958428711535323684484922915235561419679848964974211197273140481685128947125791710283621713567922592608328851374450182826929813836354481362241241973868575068737065654455995956025327153763556896765514724619100461101160392553600445865849211311865754472543397038210986090241888866523664368388809995863896002192505681273705124121763206629292208958313040472308755382275470907589114751936367634117805279693936217889593655258066747069696944822689469660115764789607868298792469787908197213308958292897261523236082071919637062361270452232080987887810691082544561996633732884910978727239819927060361491866477335037032062929259092778756072957271070371638912446099168327198265218281852426551788790089658723679185251982676134856188091320523420363086677914723889434302452070124358928870258785885553275452156518526281797945353044583010444423520763856338336898175742401688965380133770787300958216595539523328281234584345132090621123105697789884799672269652256474115619318642234909659609805158948009730216209912433975835844309489236868020799477753546815139760805605817281428919709487334267629304322006085866710875499058524222515901134526904885618483646526737857653901296739277983612753477624039014093648892060331997668795279930084842901796880744396876019042795971102264421701081448479361383334306913089503891306189394287552531162504998381237221513594997480011625654713102364562419279798243838041072319632006005933261020638289622723334723940625202837751446910953417804484157972499886327748154208476360979557694136458330033193414013789082458188902680278802435923944840391054140758146073335538113646520185929827758932444368345237246130063254490326296731066457152861845790022115005170765242873081455323027180625003762762948184179842065592845886999301304853313822861880147598168090561654192727482164637214436939845063145567434642157870128707807897234008537813889190305156050071202307847422706351007950921910294632762819893820364129723796478393622075640104760567235186253918392145993693507030705771653244152146262604223080488738537170231099568986014921985041490843153750758872373117274468084984002434473947464942922407865110876739391341719810467345834780521761496872013833944504936135482577043063868747992467301192859347102159665914717441946449751288831005246825091124975040675184224004151808857303098202737929639884443474438826794597791361126944863059995423522004598688325818605268666077910778364472818136816834830467055281719077007256145978210263492410798377936550827168241577462474476130062966234616485669325717626219154121781240912143083519656934029249485802536333002750646278762558188316916064137566143428527514995127902584331975786055504526234107072705933732740531421356773020797242152918937189019169181996249018946073849243617493294354572374662667220316792518672088944558120407543128530412337835617730336969404738991927224953328122242063010419191751412699361883257874138044119826465609168310643737428619585058616503119657309838500557918168577435659406279255849290853438724189922409751120033489743512748331657422102353922141303217807233422936681392160712596378002724742450382906360411152613615899093851733816644638014829251925534757000498275792570497880948583563810262169342263086749781260636508392539007936651902732824876937705820424745825006226675602586976263979272042099772240372941981025533370776365544938694391738044622722706970019478858125876455311015657536680612624167357258862431977169128967872314950274255183879065683839937691257986535871655701911425919114377765049780588680936450571836914659583567387928062982448445142275065781580506016081276384827265081534640967052491712053678940606768351712584271891833953524214865540879727020321562085197517863300782516820247162768624351044178767213689596740959416848955048132821444697756430019407857161003662609507950087591196080429037581452867015626237570581052001098113686573155047357293219348091818965132613720524081681592935164225972249387721937034514922171893276816465986957043736533035156683576606170372061129476605751015177096311712741759266319858200300916802406392362730000412457897789703130062985216403849994673994308299595161880310998957377387737220700014892809504890127981706141571982097938280449477381820417663868842346362998220707550435950243582795106875915532684166445798068255675015641331167052882167239274208004196256303994144253470294560325842796758252560945981446109516965210085547547830934215282441345323443670229024930222701235177674313185316064304365846968797135339777279790168472366062494020767854830136468163685369884354320317118627033261359125801964850805327544623760966243118760400666083578216281347307905622796213762115315804617037303283767181371741488342741603045193746787705500907523294762336230217986152775449206684069562329569488059978145682439473060957067163586390982757918475423606127471402185561756291299464150282525050418095843788627777489244359907030457660267887447558873607662754457597126325849281130494692306613309415444903604842581573068098501584885907890624451887604136145744952005366062373880253748201023898641034396801739179339055122948037737680561606673012915001357278519757469958045374416404888574398052889061391507070366320834643105715690442445967476491933642379632654578710078417901888022103893576914594029399070908602997579466177976516834175771135159432515362096728694515187177558045147236003262214102055395875287433266436756745729799090558277774753461502333736615969795023103121836730154991905432332913647669761116597421867062351263114078451377566068988682669695845317062863654349210050474360494253759093627791182521806311291543439343217970124954752376223677218865119095147263281904859104977636375693500347789217915160261945030584472739132356876275471021993509362103723324010415035182488531903054128440665999196099538763811862136553909769607538568868548820477648310139869123507679315420111023942187175704218516316617549128613704492699432528376370781972425506716282110151997480681120021816525637342192232690192161201005132381757521616480914217588886987881744299898003279997877975934033841675297224870503795648945241111418185876193757403529571535542067808184610601754845833373512577405588430591012812150882078608513582248214741664559409079607928898607445585969796389248012338242158869965065257867100755295951130251901614949157677780849540343148753629790243065761993546363470267411294174948606083423478619556143727463086732524828924424323615558005727566073105683705885514215082716844736233303463467468118795477277645599788404185784980369858702015833978589234080421119454443667942335888668845993884802733613028725449234424625821852881355790445190630466905269578146022637842962912078097822090097478266532059725140799808006900126198856901756857172992751215272055840091598308113960038645580613613619743367351277006539758975511618267199223469168161229799746109793689539770573611582213054243807160281413413074291771331460486759079843517836199264642496744697536330683083074176328153589542975220167798172415162812136993352151035559855868970984102354484186072603061213845597545693104272126698593547721420362707205029340457425615652282585635682020694398862785913279760949130673802848440817492819352652399719463415268348831056204245185795896653079364625307032710487727331319028828154793483735865023791493732441764825154214941999820868713887915358611377044846648767764394708154784994518662576645306658818313811952448828271631692830492642970909965026754237332793167116383157213939789329075247842129799891168847118165688056974655698147285685222878038016695278866362027531631006261829557920833268170371454051290153915400343440462280826950318496481053153419027709325213834366117807611745130039148436788211621278494722825755229570002609007414800405637461563033288772147854642481081957967750079155799884377810559725612670987716489847811666920365178836681789610436880368238615098037913249748113412875498432544745433412233357980696047572713065032484291541132683758739285582529228729271302590236949104283424787415161388334059243888850104779898271902699830885022903343289005892223106119484248488085026199394629112155395809979866265987301614182185425782728887842019896585511780171147445927075362838303683446775065055673220155710674470042252042607505218761624982128735851448478475061479663569522040844741934584635866345334431633906503710442407061626749188970636934732845431608006188599907579899874806899225582402418422717430424247595233456833726401598934599038314533884726652668596528521891140073234036578140461185019578821661367106027370345543594958674820186698195877698711042431473419069187543502916516793829259357372056573958491732869857190080836994152968902568742899995303257941860495451659266643648177619067728231651291476991084754326265430231505786670906895966697508656997413902678573535713840642416116024256858024310572033745776117852327582772398883241286217170552926784370871782429243801472137582878721930312716857683327022801911770632262861370002069354394050457192277987035858712719882423923927457739014924099312853556991569530744700160688976402122059732796711479261892062053039064625526927598781793440526039091836786296769081212152667018653626461616243565731690368197428077055676145491653835115747896947790588627674228664641980511715683706959836688587318491794155061263260047769262471677160509015218222682141675302816498747332316145683217967313548169479441250262308615213173587722113819699281953292969936924064601460937300891290139505914974466261480073495633541737703773145314233548500300311225043772553706907536685877897587244308362508566230536024001368731072038084906856577259858492308761790015731548936531581927294230909848316592746134762672694248042569438352487747203620190041224990376664979748555173500685731812844161878835108660604569398837635252390610860833764393997370002628600087049452346956098767086733169455469626833520347066506982282492077105759026056666649724403532452691641450864833490357073098947896955067127231277056533134819243958745485874960585599494749599233587631177293085355382815507833729865469733770498485225631510851718614123237158460903005988918306055275923356685227722914776434538694346221492908193383605628386336899220956169034922623589130810306766265704271591597293475853232339912390185124603980304226043587147896215847840767517247913438725312264667752201582329367217921639353369702558704305642356308682865210388091232077031342472390247733009112903150585227701372861747250212251728132387359020030492771854302957646019307003409910634514983416780886544530670201313726068193684151018186298249571834505612770492028156337678975739649729244326346758302013424215875279924258854996617098124481276929268937612547547918973440798721750733923149795236440987395512408152946136834084377775939778219127022144302009977714636503864341977685314803799522747118333319558107559779126926386578420775874632432163444152562324911985840198862634881250798021636038302500834218597633179582828885606855141837264546463810599726069385110099981385118342456954889057094367516446325783666669372197493498522263590042888904673377056760573188960864502144697233282458037913763624113605987525334680822821038291882169685042765178077425459213754391552371690677867578699096909361807542338880658994236094088090408154426360872316529338470150960503627116878328679589196999685583817400375004098864341419900690411665898418812337599856665936422699263989487269159081796534513592342625517951780561371795896159450927140104263159285836002835920354342955381804828151071154286061475880503971216394470154239157737876668837317565631069156769989966255150133608195819823414367641348711610660581456751891269637276812789342741479574044213794820022258422084780311316980491852734009146405219087602433763876514523592573070570872323667322391049551454236371276407364970597491084327368795368020994731137113651517972317625448030119902460174425657244518968002148850088192506144667700249572595999743136319881769122225392965060260701578776707464232528387165351692133921732884601447974636750770528379918227585339284449110274538218177669118456848113847442704844091343489046373863694004216562971755400695324546965883481030858126922373991425952966447424219605541083176840064413546278647206567727234737926246903229543385124646730080932272244634157500814001854159353078681273984814508683648910085688542024379666441052122153521804388310601572531821473369051357324578188934262235330100200191827289008822092681694867502901221888403949132676882475103652451753462356989291841450943254394980672963297377863439599044172952665411275686956144802866420483544111658622902271708052654335761604461247024487972465238429822395500538997247677772029986064446357370304964929715874590991625345097200504718068931781435916974298933000050588471678781912972877101828622425864188937338724717507401047137466804569599665716838936027580874614372917696280780684578644691633381728164880403352251070302703385734316129868616826870739320652665090825387838704509655274670396797917731485151268412078860092027695848926603499041888041579384323246450303004628409105020112887014292943956350140222019048906269659303552689970425105515469453070762802392663433245157359602741439649622746030134906812399246892128839297802729387235989928220081048452609058564233686110418027075906875757057703368835851811879436211160211691858507274274745793896039786004714325501427938943010794446056527228524156167350207150986004760545157441365612463769236448802595299795064750105155925394833366580551298585334569292234568399935195339258608112364956401877816422364996619407163176747173550252057102452538036053504423791206624807014173993521267484589629002106375506577065199789029534048116470936753412283608015544032386909361514422502157333054854246147780504351074604656175182676895837169982146655130416184942112521393072751489929359222468407485712832801068667318412648061648360080855159201367248351903692885265289391607332263767281496871069965697667725861439980783502583982754952046218202846208243837146591592103983406899669202933659451080465795249534517800875734157493505262693241487095623217212089342342838419559599033971958402621604977335851240302720718130390958555970276975956088220383279785986435622260843954399514159239203705624894901600016418533083158469126183257358256339353205045126699480893704109950619825184510611916748741008162856599115587591870497317282972375806433705592030088882964801257742302242284614893909984549339530538290675971738817157060124585201548978152728129435933634746569265611241563546990695107179901213289638530247658580806569683436358528366456316039268392797781878597868544581880057825938891146541896020027874465623208150093210059690976011996365243390894102001976154728762936635604167385579762765843815711848488853508224791346482314651723270921961422459527880870735713342295468703944963063291451695327414085461929054386800058349824467251510579107938897115203973892938509354977892186015281626446759216174302287240127420522111317403502576802265422526873921050793517903139015658696392274910742917211725888503463182577288371270148447370548064239157156464958160870048737093937302413677865387457190666911468140825100436703915134279196056314361316154698247232952599853871040410056069832540384462021030228361695448189270895087570844605491870064010756790838346839791658959792489429520148286333588226746591081834119651172840049700935776600850845037417885338308235290739681474858718253102308182041049197965342093482666952241646022116441129655555043023154148765807178867938679706495389061818471409402898218670635254327838553019007715784080509080394701400766310467036594796775391314417274897063948577918697958752549694761873751381028044438829051635287735474855063114049161950160671388086355830661872648975660160878070958969036967726630102603037506059291731520011093074577869414382440719047334880833645338944290275768853118089199238956978987266793916551943527020766557936984283502025082117803939937974603108708337004592028199763389164113656909546283741043641383267211442672009593914287678011554341379905255633858275484678468428639498376293178643438206547153950878979235008951902579396536947825566010481669017773360026934362012946748866326672374150557889487514818616775320308097175302627274314912454993710172088366323200460837113909472693163884364838369867075777876845209544695073322728873516945946547570044567090573532737817279881993718157630705454068328225437396101653886742415397694425044789038622808271859358866760993760209206496688558724537690478202121885080753683484436543626783209556676004438492714606013770830031333274808912433297691740651616554257229613098332422464769355657499906358658184652734791912481483105767273294961615200977551419897431602369546839673016884183739885342442626879838737317900540274690278142837352294856724618374911720141136319947648332418885820086521148638533937059443681081640502691135224655730328111930491069701158633190068530726287537837504876675660525786240967740721043810006938697096903878922777565244904586410340608235392171300962134126039811625372443232016839514893893329166031842678574074489304095313753140338020860468420700119151756898719538076488089591841408253211728063631713370605679904517528978262204722196340426076267172092689680085655622109152413466669969797941251005506441172312214052561239572928656519004401792646082599352322839582755404665285933546197848996290754603661487027131976491341127793726493005975258466636263651856213000064491878270216643419239888324909758215851668904231866264226770487091573112411214752515876179261959571546174760283169908886643913276735863755403309449684000113734708581029940500591273573594250713736048580217344446134540769503308553890175121834146279805704347811430280158632874908789295310976649507282654318731439981018817214379543414052967131804062719911812576581435280298955658669647097206273504405571902673339276854831262718342671293923590750557887140802533333054051031102143326638913269531918294220932500178767064013866381765241062208106263367970888442312882875714981230758173516107693600736853825527238763716301110759201140912195831004289558888135542865569436311634384048253947964862710499868949068290888904796415259266159834369216278025564395263007490058847340644025617310768819521968512842884575139377051168389956647036737636308516339628238584823801709384457474414742168051319799051024939640736158938171971697319290360208376404514379790526510839044612692520710019602028627943267719626410753539940689749787425470035196011233837959705603402352751608732955655870309526905736331333766800036616948956413638248444362132892930094076021196856730279795116452701509844408642565265262070678559156809854047467204768015079943855833430180754055272299120367587453594684477127792657270239428755149184140427704457609147756433874378362840849035980558724614796576807015563483156229248818770070004272801218409134900323196479633837745553779234547887031397800963326390701617718476080056902036237392413398447293287235467521616097084057153356308193543697012757888575833173984614595897481540038825669735011441649125031392777381144432670440300717368245723205481887437547221092027349535516729005839866364564339873018107108386970515409049311718383281898522933594849362629401466481492163833983224307284166749276171734705565954149440941625042641347909349910847420182268727614985996780350543566213995408779120158901271214141258603782875321281718356729927660791793561819149547238193067059025374773032830655074250073925130061624425275584134195585600786778474100874290791567592401114440837432499755961527204689723517278458839828477355708542390741350922566304081413149640654853533714928755999180560776870711356867292352025768278791322590190316485789563745967211326900419395191262425939001849142379053173162890205050948014266341183856905771827822965484962601843465371794168573301778702213666289343561698315777700224186703885194160803478954843016465289692868156006347758485636019506359911594911452318030676603812264282564869537954105481288484904090972728830928830467186868879077593337442092043969355885596956971682939481983729257479897868163764568897044878524634076583804373113841261229781243693478988215563644679211402453217202737773038863030568880621585988105925814786611112059733227261787008530128116569994869244727604376210568060038638803102389161883136397208313246716265414181900124998604160476041465535046212732263618549472850329278932563391508973837522489653529779522702181053566483462115114764700148586230363685725458788034592923278184138670795288960019266913160170894772751983594569221562534747432537343988673948666618813925374183986351746579514145148047672454840151106506876276102615243281304718006832358941997019188263845439008603243565668819733239803800027663685176713804829915061822502403503368739204031012205216172168627400589042467562901209651947206002975123219999517846204459611939142646731128620257816411743559169504077790914987842436103129248328993114447128662489904853187147777571354183653119123914219862651790041027025173669458965324197719620007407150130506032418921528185461925267401675919851395909220926390181541833574871910120907858952774603818664858572410362131767610509944462397879316466340136354501929837604323104793234839749541377541241427028017905574533301188794466982126745549174801764633447676345132984098528618358525345531953632782589127993837958024730475853144830971526023409550085793437382301404695100827789608002273694465214944690535277239331115896323472185878750074540249549395786767056012917292562117573746922977843816124863830119102158058781544807419166461999455406772102740276795208339430942927508925259827725411451230563281931430503832902881467635480865240752974964272940859866786698157514799294145873437950607594159511610765322004847971310161920030512618147062610650139961045572515697399792354613466419140855141700256376578418030863951486627064946619259183580841852483058397335176558792365520009753412496150643745756612546898242765436096130298099967630177210900642652973891806346637122291827197049063084425291618380274306934600048455480976596942045029938242372773982950569437539351480820970988275270265947422438415575181729832786646638532475732995428832383278214432498697221066834557980208607313202296618686494672586661632475059912398138195415536528068329528802703730885031954886640978345553347825222940558909569333373594776530676790507930968135645030649773779645067497909258323887407869856739792996659313370727216589933718721765609096175805342429915876644991886847143602599437248644318712370104095141773183513308449222676458882636190719907289849098182512476748311565534543716939185594771515416939186468878025579345185572907882904433291879656168830555705605997929558650558757071680062492538907488346796679662388483579802184277637739258860824327443033913643233621865001391308526218717595915769466951447314366970483625294704850044072111932721518567077399986371426585823738151031986958088960327189627878266253655903519190415697049789465455893951961800977273256717583306583215141364984967839408997827777483725769973355397172088361146677446991242500982504902066475377873183375124552786284531008070179082342491182081380292654636070525025356874290404846109317833001816234189903937930416858613911276230122161541476637419306342741672208734288918684964893201486060382344517140969885663689616077122826857383667602220107055044669183109488310078223137615857700310749904233664823158158722192248170519385376397371982375272844538082702910592251411199725211973785493701619641834571415387004676829178285700820704518424826957278061967070546634065426758326072010506074486633425134413531275470439368147818851774972342843726933990941130011019162160869109399044046817984605722710172080698476203563810849909256901078162890155778272712308380567404975043966588715605720064364005028026879606741549714504892372519605132599715654574274582614783137077928074563190386021532800697748900676151089958826409972683356261102651660909176279169610760308068614630584938196332589156578928948045748415160015154621817511473050503725748509457057743919333149919817146622852002397813277302773142507378539430621219125334341456785325041497739722462199480239750954954791613231270251026523866575702400040382260689882510580353864792641098902920718036200998216424329362792056066506185282304085794679935895401103527886824778042388044398317638192826938833174141499239310674654225379332094589931755865136561644965926080133483958010665135470369827161367556156749465935471299455907626454777692241922951558121864036801258463656061405793153688860396866399852458139443530591594503639823266739452801050263455476082629587221737270761960326178517856169256005585720312976748113178055257865112687913986978023083505480833945222644167910286622937307692224759419649479082967419904859421118196746155767866812172930503362736208744697276665815942658713516769654748922175408524169934177145648270153887558749108789825642782902591732444028071763351345092594224021047889101612379812320023524401215645081076428843399215622843332953466468436949781499157576663032164359911357688007647877977862654528730878113106145779878064791124380666453509155946238228232085822197013943550979220825767347302133634818135787614268460803636484242856002244132987365523615970006667375749594792346458000774848038922592105017335420014233869171925240356047727156588127849513072600645053513868918074124679920980792408133935111245884917281892887993882376957692246508127868123705319925043286741777912202330443389983658803224777828886688633620262127640294405743300435963056985907286926846080690740435105833378462782966476118009889488280032621095943012078854206764859212646461672983603414158001173005187687551789077308272165204723512953234641365502882741777574960834323322451703394153781796985260245733777468783111518200014387178362323717300172963502582528991441271708273364658310733572854322138480017257116443280110869904837729912963477148197950757055108742777305972362815935221609116366819667098003880368221404450855809023785597870594053525187835813316963451635713108372381597929904495073616033328897276778283112509618170136157191570286773980166819204224737589766781890357417482291470674163586490787671443720547867069097274001455820899503934033804942089055364238162034288411989681981349940428261115907992710092971304641343314137366500354048929646777622615027397525473058679729231641244847350169106795767776700349891835459174040214617697321697957329667017535939907463589026327991482277588929280886828624818017380876733247801600901888127686963864896169266540536101048114342819257000521024020339574777450594752893202307475874303227012283043773027362161626893520234377528440454335610089722096570745861369233948891431220664797341059236394130522369760888030204931200487274368691288010974771396903827230505192795743816362389354229694402985278362604675914039951614237427901871272007766764777387198864945220965397390927601637098447796314890617819168039427181319845419922218825235544583546900031046670963868958222775469756233104925436353458629084617783712445048221000053142874413268155755884926029873976991345529322178597852189957332756939507777209027378630305313277751094595025026424676798680609967057614823428383799332084269901954908555834653281574729388041655990200384722024218304512163947471975697877896436466219021562237882057329135661408659107372355465294277618664852922512959952392278712589492097555996663231524103002347097801565832026879101071241694097593570289001546338553771371571624780946118936916986012887756470527287196822927357948713590476080709952888591929729963574714549180545000641462562932870684667663618409639190983489128613374854741284223991284660971244846622494402949539827450663248697082406371661754378160110660024641914559249401992175043991600620389486643551551097924338367858940836379561317321959032710841942448659137051339492047011579654342009805031549872291289109487524476107432471845155280876873825967257138594342867552274156094603210314616622442304540094135258450089080723337184579567413248540598377791090199509150242583601065931689495827038619481690122462679765954102554576409988448644232836454787194724909476053029904651139426654589892788947339225917932067126919223831796080993831032287919681422300267355932264722530543663482204358600962253667574664432976097030322334274515335660521375516434012910338592578699509117018961240103567186563081567669839554911363535900619818080373573601871474434153761607384345949879972905464885443249584413813563924431802416304960194465895601388828175925996408533980891028955073532583533132239816169410164046257243016627719764352073459931365504395213811759807168218644502403006160229249539538242649460388389694750591428053719319184882255693926840802134112396057896769752051246433554581734407388617715928925730618572937916402182449595759502429931634001498507484816468837407871664816520594641243969491070451962772502105808058500202384773506653187033832339943119938207605196010554649134924399096957241179201374496234299693343931517538337098659483428654534710247869199795825570311120460392283638391810104617091120231296825293193123284123672365156261779789783176281867901281046854974239514065390311982653333941286813864819794045962511954714942573712110545281574774143389909988151292013038009033601644046697159667421673612352675969506978656132207833673920177099791799634245636265450972188476737725579918348558416054938624428043895860602603683652035799298703681661146016629682450136695369208888580993439459585492207356107957951792630918012569106842530404219218079061784623665676689537922648158339932193267900053778935131597626654419748805249500920847400859180470572900799502519868711540289602397207067670053355372195602702338907990133614314006872108071760211505916645458108868352758108998923461616044318296106649663198624213162676025350774918560916995688016921902987600498144959607894438452742033073291519876552414107419664127288935238510048811895690946391686341313522081704801204838339397858796257818668465810048857796898070167155990415210498062042554339715540940621422801076681126559662761897740299771605854896355971814468913316212744711560179340866583895553389762378546026762386085978502972858505569228098791366814752932528034077938429983028252252212200112883947398579746579219131493573131502555073795111633591169169029961398039540515740318692909488818582517318177240598564450114931677481266513980497639549528359063164360792184294624399319227975587081423278298562134372728970689155497001627643643196276239053888722048056741692757386288010412517365918436129990323114269308617606975974397437981857097839560747689230325481161353004851440102556258034917557108414103590144712722923322251548683564280218364164269288682309101282433493448730567035882641516697693740390277823224807344577494526685228970185139194012238820852319891614089159708541795084066213228032267041023588020357780761148425919921371733562857045938014053406110063531202159965517636999786708004984109485243597810026546927209630094057665000229102762692147200943543976326489311956243628591576329522238352968372196683226937247884828024894108659696583126100318232179840652959748589333744916161365766357371498003911687072124941967467119566184642005765774802074974501418558127038413937664886035993533111502325525715407160150301116909016931106349567945562945183150378413504147811420851512203795988068932463361063688476508080373845791963321882426467551677648154567322033976489114400097958496317169511745500564930386939252329414465532197851902909910531105549504260441021374343950865428762525664915287443754325588728965108041256988046171470721062688402096989452837727498075062080181806222306201959948695574901104045282570275652030488050086841495403130927558034315603170013828766458269385876240634046662477670470933636247908052860281153723136307997692291644356258385719298382450412122315580233717816603259420114013540407525514689253838400089726783968814565180574266860299731349963763667441119980360237779220085986353671930417916548600654315147019209630809812372340910150147933429919044168083904529396323872972539739011820435753533504112221451945182589395841543149326559947339477009722273272811385216660292134048110024371079053553141742735320844647119771572884598272787049112593974780556522281659678270534227414723076747232019283234362213550256096344956215211000794747722355624941682048527370138394310324543021734482853765404670097842147214285520419689949240313006648333994287330673170767977431132766095997725320975640119800394499499044661498349421697117216302311843645849456885726055021869452274187521126818813077797113098005597767835484919217413940042004792169880868162012284813581750404179771968064690590328770564899891188168146865842575350975812723440940590438730792588052822279093153368083596509815817347556241433054777588059313309129409291727867863060163364849336647011021757811195289104686763310956383849154155885253813199985684055154716379308260800698063064109946793383018675444473995033346448913824703895670357903108647486378997037084689515335175964007286617275725029916721649462640359447874061766408521529530387573829334566217493628609745868710771457779248915362245097332927934513645912911474424896420924633975236427355485771136020879975769771224395138299067630914021825759243411999245495930210522427823715060448448048990762958632598431591024286094705624791600363685203459216798643219808281950014759726126390749241294857018513450292754961976921307589901896959497989305026142348652534306004359420703161940750195408814258842231720132141279771908674408009936652558635781266942987495688134040015526937077882916882789096610123349212837550436744437522419335345798921143829889125229032868431220266888389336323148493643610222807748594371588528646463238533781329620932955770878140700424361393838222049212545895835680118851152464526180064943981281186757106049330355777941304769301941681147174315688891275268664600671714322971986989008215286376396101894718635576344982567441281537522946281860598756346924023896301471390901411128816969517535306185284848173751994507182275328292797367215780662900524011891279559058272101749388921157239841260461931356246199681686637318419969029254976375788114880437437881743123563674445358489510895777614322384877437388495615040126067102780415181349622134190732595583834595153987380136693466812759940681807778140612128431732478425626026066010737605079743186098165113344136958111987234759589442072806568514274088251927975855131220099153854062060699590699956517514640955697929982423202941628715910044717330419341426318274142983469416523438933806758894190217476455977842520707594159758571362912213051654661787939160562199035476226264744414874552101467552560660760898657863530635516418813725824566786905594588158456189892474329231586628301795838011260584051362816166619318539991044057226456834968054478542426445345329853793105839814832193518029039988046557965510610966541896381681675799356591440784118503394044722375932147220012104072591063082938052429322735420340645256215865761817743976316797288566954050169347038153321096936008865765167048848559299227745861421082355227674288076893566213821169777784280621677258285073660636970039392337053285033208227970561708177820407275898730438515752441152001953146342550138991986143764179317097056230795338503278548302319207763472777613338960001461277182548476394974288021012123739592274687699994925724134466956569103184083966492670830696574959768943976715814888614055560963197021016607274721064762796696410923139958939013819766706667648527792427599038466049119679213664688315248986676594397267389320958731696655963413450245004177861091145752731918872927453656143477815613893026100287418926496683041035144888765484409471907051075385689066413431577177127946950296578616891399226639713617927805383880601032838026512913712281829347796429425962034086381151279927286703525311508297691092592502412365228599073930063709315945265150693735445744044581479123077312424468988003004705255954936257957527379316785371536431523103820315069835784373890331005386033266094896103858830844884074539925536779638721136703368380678599021832409053111700453088217088999191959118312699202809959295584885805883492104520924927534149939065929272508705191558320158647486270843540861356602213622033555102510186752715847040640482489995445063652759358144942096248283243320641295508418844857668324542919375513456003064051078420369746117342714660652574879181457333532790378126160793698799114285878307546063323771754498312688222450863207396357939512706682182681289145781889544519817703124011833349547386945126776729571191136416594265929889607018514005830763529980797000480790231182518066429908999740364012187760024873239944181651290969732895242185233943017542837208170890443885598977906444383504829773035888214482831885039181661978293935191281647468803180948729030359953472112704239591353133088004124519108385668177307110334965005354047133052236749019378933396652607265412585078326116239233796682434294455648688008594101014630036868536172649919495351327911725222617088686235959460504496679090373376793527603550437027953327080580381592011735275390879680758168666351138128351308353074115849846856112741362630423343486882691443394928563127892908971197645374409514998178332077711824703998687326702071644044223863561369423440056866339979635443257796710072301524656330073106075289084472758578058838445651163602019111839220883829330083412140426812431669108922460417581351879307617826304837542718685106015339970174249123908146061506588134161843043818794224358360949681277650852431303113497920720488516884742264698371216980493271882164574449461890079521748590922937416830667869155894323398541851218717321958038271252253615682431287400472507969206307945730828140557362458945178380675232759695748102647673134555408753825040082819684693613778593239031112905478668700324311742987017923377350503884622136776229542102296454890973226534832281136318575248507886967970344739128960258556034218623620675366975788283323556179635594620559274548243708169008654276397545476855500527726862337291681382029904660212436889286874438395402101273776262049789416699800916952688441741531996155143144769456235939990477865541798042695925130519929014879122876367227381425991246915275123619523829409998226872688850541783817542713256050866633333181265324989929294484851550283374870351224068457936304219976383656304307690476904674402151816728146657997808451676706155097308163539723858774252172362672033127092148407757080784963836350030586566873832978928705262992084837059951323080688722611622443445480392470325821222491592380291786282346696823208117074521053271637382121657336269159530248398313647640206525425327440880953608024974743641834282565086525883383484469115427471475544218896870095276818232348500457932518948316367698362473835501139087098567888470365452296366634172276790514665793874098126413737392309635461550818760722341145382474998538699999023501343383261513349634101504261807230720230028216910874366532376796120184723733533836363542308609139771339110786166282244748424325201802600533791319084169474869025794067845563137170448343943175661824014747139702165493403872959704296079381118498405285766468973609085093039283914823487798804579895298456268554798058477542242018024162200400283011272061836949428305072712676851379797336420425401755575882991930330345847492366943931155723114482391986339016614359509667013195435149690140718154395045216163468311827500974274160873085214141921668609598600253166892011858223339028054600118790105116256325141005814772403613765921212632316729885882367091007643004748552601451467796000444226699216694312426516680554493787332472532330475783782202013671792027731988951915974735985281504152819972884604270584023779578952930180132219266092250567161963203398005446410018429001989155890755339285300374964215055962073087979340315113545967362179919650809005280026158501607244802840677765233826658997932527815351927092274010326265697879201147838595690449283984731210385595441177597456530295585720547031576939368140656428430791451258132048170001235906605364132644812605706405843851969909982385851975037390816320275769950456420115919834805793771399487317260900612026052661974435358566457910100497505893808147438513153353456071030121446971630363788091866582400507249440240215599099300828758638308511278841140033645025632711658756684905686912983623564545510367755796895118394136558351901853881303996844134955975964744631947197078141127501702719508958722332341659077162801108465822673931799372615459602653606095312850238811996449636940282422510615836403027091023335031375724051323132209186249695609647476869590854149568393556482710488849657401187196305745077332408418013825330184099034721749293638781199086018451107856913829201243210830578643125687251410746623334107879485771011049441990104720194392749445445240941484773105748646915790398646289498551070842851745150308875385140509804345926168934810137180195407415842363141696809481479350724983831567532551090506175879007528675524169329016158128863105789582823744802071541445336292228641796127723196467649334775387372965332642552524891542190301177674990666031399389512272796355540145946029839653055515828825653558832437063450575236137081138586308216458235349801653105665888693905364292713454596583038285882337758247092055875101926168928051993864178162541713664187274743621079660884310626090566633666274790439841035016542353655126536493804011068271814337753298856503260356381697133349692079741358254602520362644713227103999709337195189138413921323414940338362218794699764604455954894837777702252598120960275203147828946528592447950909870550879551399894365777759138033445434720916274824807789546005054293397103141090008720656851947426522897678975173065553613727978884464012633194498060761067327097910214237373257220860021402089825994024780368296874417818315660785780144406669104377905223719859120078875313420863049832968584802236591456786156853419072710655853923508404207597161645387915386942526172048914989288514690319479235001972042161690960290033274685949927106361613645332419979461873387521913375772218308667133600688154099867534684485123767700630570626739482442859654024023419018303142595347920050964065969403269487827055742812992503366116167312516803800994875983942242970352153973715880218059730631179967911385104543138763637839227006657256818127784510494634560662293818861874132960780700414160687687844412575081180916602275300222054650952424524625665406605017140905164060596826202696103326342292218666237019914981946198793273828461341284114429158787472389203086948856868484494437303862014201942857385683193808135597889892263578953851290002754271784516256541790375524105697915782172824636741980708744564881619093720973557408437651852546411160252668558330166240181414975069512230175248913398055793776669524836856949334467943453150794762966028061623018264634751195380042655191030892193698741553844055974476180581907765588124485847214048801159374961463462771816559636409223603270943911174157266342811760819331506690651160867067834165733831558047619958063463106320332482797736631039737824850147924220979883357744340354881593005267088172225639338071353911732406366711255567119234229062943273547394040386738179109692386871758504866109386187026686334959985252757504131728956811745156125618767080411290878511641689814897494267365886714456545564824505073206727365976010919856123380799850840379565514671729662983057682441177944055580621705431647208735797935812420736550729586878809756285629013873942432845504043609522007261923812181886741690943164697348797596125631668056633037939292833444078128219353684444501661282628089048656208885481854650024397220451553890372226129580705280581090187629874133779380953416765455438734832317234628622142055098712618034984124970295734727868860980555119710652866185281402151870583413120036165150508003403828527843965524877733552407161515175771214038875076164753602027756711937348524650461166673694316890763164940483595923537335707831237792365107556085011574482330445320032638452934121809132554203846569074609797724636658453711048318916606039976064281354466006305751619804480052845976299015086395981158489311873508766247820695319532577091531209157692712337342733262166908798099302095505938389488931110998381466099377094581556805391446934911131707301012226173169334614883173090296281256248654256010485046614076550650885840345062488227060245283385623108753951888611185101704119964908944961510598555413221883154131177776160760119607931371810160805996803098200416004928645356624234917964435071651589519208344568925283642630851240152704504415933226948804087976138737499289236863486266748063564478067979769177673329485058221973740114549384271266693442457732923788843714676949053651139595293773236858768633623392931181511019551249037081518437816026733216784842060836413611457435326811683677527407712832696985382099382255342098356504798924160690324461151894362439317036340717484437681453205226710261730522061676936572836669468589042584178780317248563562138325605442151242587366794738623497877466442584766227055336542618288318058580420292690689784545535403923187116401470360776119822609003168057923285844284273365567528732842095746204121622828492357671344561879973390243684400818703061050308304861217772676462680523486186256476537339834313828576601709427330415144677745859941998758634542974748760975296610758737647092684076669677889898183441429459450731552985977557115504547469677158428399326717419120340348202569551162880222564560781186221536056763314930292475355316865617523509977321749702568270535138416519942401859397287611795163484433695071370828704527244239627938762328486265525760740564547156322110329465031632332686164703882239432420676294655847111188679944413826165297507950773040014898187132628212713158973904315701754960748032828091535764926142589210252466706086165102511360390480905066304293196970728381418261070788993795475150104927020814111750113177215608841827042453289013470348651026120840107268116728966820293632305073147559608994564122740066661344514703071453947516684743620725523394329693071535365129923920931355093459690378334007781087130335340123325183731648574943727302628531574648647596950680197019011048095365208060674945549138324135096183354446028391575175145126505009544427363449654536784579603810435119887893730214009564072563290618651180801261105371443923003123275937218919535557799937041914848401604930023098062824187145671294118841767642328619249081236783977375885730066233577099418176375940053027321802243827535081416126364767565359897035526179871678033245829851628203222236712250866954635593692082057318550487636226074024474012967560670534173882833228535858634044068240127723169801235279995708745974510521783324255351416339972303406938066861196017302279284144227598621838082205828989921387050784322232298408835395276070145258294649736670459750146649765286664817402975168704106188187805264114249065463478678927329599470391062210449484036697175155616354679000152928989842214597664259987123178738930655550139108875394315671586560294115773172081013687464241365888840399673642227368783494378224136713056728400559478279799794951433358972928887143934343351148886143244869081282614847408907967837548354839178556753045176101854893275088679343835514468725420144182540390335576988858911371205962606725606293611099554236739871824725217244540742162655244504674261380235298085309371506094112501202297500463606710948068255629827803690221661768537040041180619064182339834457341865029572941439482447495405976119313658616872587623745550099384247969578032138810161028911950179349810489279677865795971235648828908442530513744853830925316752751059836468641319574510167155172541740435275268332174727140498916744052037498131891599533045411911106267418616998516967337643885556569735668560442201737262311869294889709184186395153300015474362690099595503216573231287742089296845827870259452344540792999758748214095529714892003430099574568971841883507033602153375414994214107358617804109879554742069031132649944612321062476942100440375896701730856183434212457234856254812365963094546546892954961679733029367949714446706097822511693006540436834040091277167511277295147399137379416077492983564090802315637109364401707694114290314090077179154382400522061206477738517941012058180109738580367823105680781213554980943472591931079120936295869423557111698316848310750831092206292230921043437091786968803600705613103969040389296189127668842225345564749249139338995646468984002401962217354344467449678914051764710667741812737122836936116887456849252003134624895753400950122979189262589861000644481572132930446824513182817712816991609266241592530611840898066878298267500587680283078943694379017886483798921987157224657828814857959816642774989136014971724339052252139782681629500523148798627688341743282949915549154358199313505697084022183339086010389513666383502076214476460572436763789785284653612474316541368939983933270473741799955773499106940586444666794316793679993109040146304262618079152694663644359148811047507598336473616858836603132627153858337798343797941422858263097570274375266473229476875471397918460936354796898498689449912258091507774162243784908461568684442985272322884796952529652011348533082787477305281533844306846024680409199662557700859063174051131628089335054992600093022698647802874254383245374383663538594324092813510448955346249988932165333701646823771150734131042465988213292177586266916323130896864260715137950206424123711772853636589933183766150096750370032805631769563066149757054830721849849520597192624987828508517861735379023353426129052791727295265821089246734385885193375143411388381477358988165248645634016584746496693068514958725367999189563183163931809838373148414784927277476022312173139413466255296789343065290678591627403128139802004284938978843878689449304685296882345072442010055699912224966051207243219827769859637885474364899475899276535611031639133779931677942770093604106738528293630102260273744656673700085158695185542976017666942355060080161810531618422422962354828349458522595439179265301571943582485005390494779184543353078316922539732381365791513897472178417666815381444871326405530723242691992790907083428225743578675539229052997040990117789103330740563861086861625719307684096152274816091156129823981855082951155462971919918526290708443815603434687117194397167470730983007032390063157927863071436316329440930205403329105985256501393092613053561532346022095920918331886459566439526107611191606553402085396609031132063723951575054205283603967576173329092508935637264795584648820752983742284687642113634157286879707251242125151592735895597986814540249284072656306261058037769232420447814595897257166553053481447632355799164195592993785777852392280555768532344169806731080312994349891166193607232345284808683749399644106346896266312961620732408021042609280335010012825952219059732376558851689118391819928358866276133949654086918146336002400875607395098381572753112790398093279258060028716556041917701516518052236245862531945935476523051744561816570508780596638672213809817529586967916884413302428375409133214902705614252163015696558219758624551218942974990094951290696347102059289437625243872717372818336927933186417928686930110781764432466336536035313104665784949533701658450615315479286121981050193510455028590403018127118164639825399233881540008496257498942985122707502008990211978540278962135195302767367185219443845293856380358167054637546463950581846213884195917969473586951497807243159119472404099544353395313917058588682774267776943472810568578047943761256651711919914692459103277466711994849046959098228927764637631344900784486583038940647257921001003287504807838419101291329932694215167871968082152332117995260559821870867610624737184056941006916017088267161716101753810066805634964647545383490345296821660839298827894764067480510747700735728333727926346443458012166328685626096306870578044939752537340766475712805414928320166464159530046829499893314553576708411146194740289285955654971960099716279649555555254013848251232575467262943685882446487675264451050486185965009106893642136823273076392293323581173881088341994979502797726130692801164036210911850166368740913399734090461596426621926166198099308892272764955322746917136170938541198187006683318126638444980139402460957461067971793998508469707787319733892276959745252818519911749794521380258817977037380560147804702764795366440884195553890634378067801541425480267852328846853402869387913878698991945985010103884154526968708556522522069430528027564185633252991709178963183660584765688475207820048498784078889789362501104302157010219717447359768810815223432760118077214180595185831925680826037535964199930959920744005821484049882257710250207146889381813111205591366773793361823815899291402267328769024997202663995253873293080610518072134229172120700593438898430354735832279874291951767088001914017319882988146612992072333008403768457443752420353366484665750385416518947490153724982259430669324084488279374562863714879558463372053811798531045627548750490375118836392998663033143587289074890645980880071200360408970459088783487699959519029465163618242190215047690657090872478533435170897238253907981569655085715080115904351361271990622614914664257087362488303403295335796774603436206555279349471995761666474374327575474509924298363885442051397007940418324868294620352866474008097851060434955202958306148693825808404273516402813681412685815543745174048063287127346028247958184931037210295440309121853560694644676530961426363499956654781555369857308682090660409269186367610649593667194275731041483616005980030270099044567804247415311396708886417115119645753322196473745754342381110505179203784559932251579463731171620690458110252290292205936431832767727906828080353285316355823298818827158536954386987406953376459231214834663098988106588285430145886212098524544411984463688399542397127287815678265266088370223807042330834501870004666319385580124374233737259012975783413497167924908581243500800431970631768447275424613648605470979630034854783471351259154074407219199118119644827661109379082694102017697799799875461558946303754518950056136014201906220229796899257471846881764588990923938612058128277325431931754530753155764767294156662946517776960814867560031823177362080086904064134248171858529961214156884021355194989883633708834569071694383302908528805366777178449134485876932354886824160727486231051531782302411994735865981749393617799641380953599174159024496643655716693361801593134927306488111305433623729342780464489981981050990883285896654929820649265649389941475600190573095837944826267954953832709878936434965777809999732720859875620958504238049475495411287595249052449273520660165713512396874988604355313939137958737589592875796145304625594250651109215370081463708887249818761885543922625948899367430997289809725136448856643011435997052315037585108574949485040235487787550587827099219390114066555268091607657744193486087688099839206994357600414513719316082109269154368724760225969543348094270259344262595604427144112546298809639202232377191281053917117080665278379099655338863759510040086490928265223894930643232755832560878309207990823568599611499693261242496170558551638831761336987113408813905757400207811945149240054177735964036455846384919708822845289350696459951357048135174461148110744221450757718626910204942722306705761178451199727988192388130845411720056344662762147015233174393233912821853665659294285963158515794473701431679422900851950677786279548983310729776886707586280016064219676556900285880318937644591881449657779585651574066255181418128738890928002306241626920390897460467581879167320791647367746929328373646468651402240523017291709358240227142351798474396955920231723942895472902658274573086335117300965072093289453876493023077623426228284993581638898906805068271525926550163617577302405013248638596326879394390000616224331996690557420981253989083178967884236095328313106817498495314252018367596055533853442790187762400614941533538983935660879342565791753272464698791002540740203979319873381243257440108897996743687439709905257550918375571478840275916995564761090861288846631570825393999457676452997449954742934875743680696940131079746484395291762332810669604939573396042817578886556018338457935269204776851312544972672775107094996996847411790718574220671746406413923016862824443152458825302269823476335011910094305459324982065186122304144951597969736325041311174130685516804274286556659513772188274815754595775666742608430565104644915756880621284148985062997167380829338744960937380218070231727930340351263932130599334592215207408862317843828307722016286794267792226095209904394659284147652357692635332581497021021587381627078024761035816125727296053316701332665493651652852090355210749913248818055285734154481948415182268381154786332161296097287626104393819579285665670872662798785731444428631153945345262881672165721613550028420260761891722362324828868133798041213875504172267666614876237495489234785451092302887790243435553362322263144575052960398990788928144486580259866923695610230561847716808839269191579590282200582464980251279439796782886004885440084254900466989735771404569526923396284104862173643658257646530703513939223093290695056272574307392257990100619850711074452519925812590549197521971654518880873319269497013818234588893984086957663183104984998817788100791143277643014589497723891871227683278302684994758739777077478341322541727468441000643985094328669776692450299547608335071686913635622265286213810233090069693571917977585943613018622316896595460434759544300016690657072183786870807559605625064006526735933394140462824150696684834612713050037773335793907542111697358777032057632143364417729585967203565283527563443520942795767978613219262810523522743628170015844632566867077012441467554188064129651789346465433186985217725454163942949886224381053421188075082203110444941137931621726471173905573226612302140734766949464506352473755695744905196211816420403570766530255266537811292261222081079542938738952868696637580322935564368321959862094550620342233538852677559904439042396735525195332321022088238640859925621922215811600502033036926705959175089987196863799557475776148969959508350065990127143132098380513693129203966030193116589985668631438082832265469327330216622422019282252605398259882546906084109583604755517753911227471986661073157032144556266742215500554633212884487114712285256194685692650379982302494839916976221527404842162108279282032662466725804511357130617250505120797401080999606274840402616851910827370961757924238682856440248374291883181112036428190621341362289920930431022022350097068680497185035848528838237399505871151457808096603120051945193142997675515222783232417215463877604805472306262844277602943171284848222062357311180637522214075282375861280164192569792196587794865206930681395099726285162736988521586344373724217244439576593214831277016726678076846507032366860126135643001608096570424079730597863728534525922883748445359992694371356369274917439078534818999439575731211221596280549166881135283892740283417735378638407264966898329149541168147549356951681551558832351521841330342597040973963755876380720102499633363116579469884352055948278931354593606087805106860358563772191126571194663433413701423155746343599080856750703042929890721650862659848145438275772309315404953629069770928525670589390229862402293630901097824277103596249160633853639511407511091735188683306573371198322373120158995452294912962169142729439887524527280065252894603435787875624131482368399469633437519131378300782850101642407131410224893313184564040113668451877590808245064808821274034189252315238838621628798894239156146184139092346090264328036881272436018162649101808587826843977666128347737614736419830153028374535017617957550343023495379302668467094527910209027208741926046358438359427873110696784790250789624045552937523595862860127725997347028026277598737483545675007929871303225966452584883951073820115345370273855416376938504642895578893217181409683545046265750972290761988488329277760122004616499339879400610139522511922897375234335564820264921468471416881315495119842999833305697746692301515169588208290572768164756968160229071202851110457210953840744433085160126745816911016901294662634946574323286927611647532685122081025009046863407339225369142588361858840338817294944213727081036112676462922385228738370412280013074126639174678368195491523307705091254971820151170635733178628902678468959610330360969516995288581303348156647888817260819981053810997071282437506491993005808662854638966214694315626912688483855660078710579076077677166545953382245984677526499769941886515567358921981634061108318127781674460916102702522869239213879508188529939535760606841974973828079124609219925855483225515634601717282790760342354679265080668411034633516894585890711146331164564928237588882208361123814134081271521421355958922883556128344718908342254489181769570604556504948741771905711572939321582226960351674432104042944764123465856124467905798022774759100203815871609684435856168123737630025592514633940722391046308188531078960459410560370480059501174217557369568791685556085585796524475135315253366141024488330048715006132265877286015460332707931358385985718602643653410403734533318849492585283054625680115531134983638829429968744190107911879901265534491573661389306226867920162858739661625834889778837298019803834948147688382468599549441676771247898571258401662803332999571976491704129612409447330930401773808497156786245685914650459511989530229673521940938832225062794549246988160387791104777102042192418759813426808005390892436523748158789221794082578401215514769070375367515982957210218860800152238858892122089059436696312851594082878684483786652100503517039965432285730298428212655561393703488270575416739380062525738058984529923673701234300165868377455744917997114078019022499770948978103370072279972711467862347093740446435173038904444015922990280723116154642236843137527913295776991234236902719310578814136785309419654417589964558538606210421588859393359484984306985248249343838265469101021199833057497364347861613063605383335997122919543481297764127599018926073814370595881873506849535266089115759818957440720886390144057224242386986379320560272550927212577326116066002493210721711523575118148774052632393557589294837634312906441341115904713804822356903253315549255427290498774069308941419251296900257298258420788322732699620852389078120491045788395694540261800153270128476611609626401164947821584238290168574560051822604280110653641381394322329308790643502091134283518438558380517536835169324889391922750275769147355403705038319327568516928412562242890962499220534076220469457426397828350813127771366667317330983515474094280518464865946710204200732335324712968091176223502305524742098787454789274813431683872886438704669835244444020868910821785525661706312193867726122093727200405923620268984764840820833055045925077438412866509503390975967384107554541487407118248955789599635997984744100765462114669697749832205261438357666732764798677236851994051950148325684735949443475768744904555160138458387657920704790161869381412428858585878064083770505227954421649305725034639688914176784797425578751402576892630547343419073265024705016322762718747268451690856363763582574000126653205919737076102747501962812727534717794275958670603404397588381922050091072909290314013402039324040547625904621623699186147924223703644304967564725373908562959767206705016194433874896336763322808872920083284175947971377110849984557522068681339734317949176708962419934180841188677188249475639706736312852925792611372585649907911507418842507406438235845717397516747396968779212140592461362370667750969421035364944834718069833337889772473621522102753382644877211241138431162308452242406534678767919126401228964037966669192275756965044492477095918948351458191880929755910158244053287110785738338322338486445345527191678315155500937038574470286479515177386743120661481680806302878286236367555766924298357175199604363713045305602358805789986795951249274392208981275846191334175010399329594424700863433401619596489784127990033537486389103437413768212741626431932973091331308390624285177823530759233346897249935226686993890876157593494353008069772448742790952494589304073045140106652760132569824262051506641973993342041300507106072635385755578302892818652639960922362687994099655765170642964246376111272813408327002997422981429512850737854053894909239861451484401821175615615451683192201048493208680066306750074453167619119943753137187350449241757668945644338547551572144946664451382174220015964421729531780493860385264303863341169481256213123270309372652284215453384640838245600506593165535934242150590120576137379422104242514710828480468010368774010130867990899711822973178277792689321856825472577140432956180316385409822747649232148388511069712249624705636893898114344254701731454219686044749472022890862247020246704784957226313035278403412966341288285523328360888869016312731870024247848256074515287634503252417576452937514899067838618222381897742390015281515551258550271323996444515680603321309903567543542191119787326151455375850617430924990064215854122289666896394125098730986238993192891491800507353079548645274060217372892497670114601620206648072408614195050568381829863135614316055416082821989545919503677972755295898701521004934333353004581298539940499335877655967210669840520806807347999736205258722009667986253475823227197099616418543508798449220120353909599019878764138124892676198708857796670678535308502522102316768213485588684891760668673989093257472370005489949435347862223944869081435559090776088442198790492933851854921972711480742142354396339025798065011567878698975535357089201091455754741030514663698270197693098052041705342307622423182756478894339310059631204621096729461888156913449171100831581601865866672313800906353704862012641767718179750366863160930048437197221688635416278495590381417948945309645322735689813926699559155146070087744949198415905978163619910619747335650646990445637608550928845288186149141296115195380331346954667980306713305891444253505567963344432611540759923568316393153871748849614594100668954042327174161148883093374313580066792857410202111719154009599890848539587799863100340482968848731034558926083031083940542877200723586453851797190686763461949919655285117721906780785381615434179457313685043701540490062379955942260962101619582474342950785328433115648113839423949049005567461238996618760615336991056785497395192288877810576299747839609385523704474717427358624293697153961322937826774010447900466331239709062068194022644257201123104038499070621758882185936019409699985400101531272377970389751610416772213665270253798427576644352645134128645643668398621851131760075744564765676751541773531660431137376594302084632702102505796319061124447141341791964111338532803516582600269993419791268141935682602675302196984926919542485358418848304907793380977213554622602674751656445070460537955473615452845588351649946220880075104035650875486070984084356419062946426629012571810975210572337522807661954859922644943907566523982833706886318502475162549290512552893947651315746871068990955257210047745249482243566923550055769385908125264537397347144643024566254566524261137021923521290759059157020869881248492493379139453180625290543391817674079848292014184965652627003596810426905451208408823124437150103692174427717747814350530591659735736972646250442778709589173477134455488946653455126236642162275460049113897086949358046806938669667717226224153184599775469282304551725194680123062396608822085739905881849470139619724650454557852449960734917249288737950173150758614570805159575528439299870467026334707533336706450114880166283960377014761066746073957943944371677246915545628210121510075538466132463069160741119904926451710713340737149266788339694525690477533558734147492744424316235808598655991150571545719064765247619359845140127881334800712730232099419728726613051581747297968880121333886515085680106997488181655419138417445833422242212831953811077073974701872600355472691486232071113934231739613451459389187944984677643311795286405725862079774763387381058526142503588389412660258834855296657129218358929768828383723888593969663106202604498808888253379993897621448347331300288677014805272092489518690904815310426309518098822554632190032987333170462531083135309358659306989919835523782884210384447949749682340310597496090643312450579511488812690317354855977891686667710460830714988205130784494692103399689568950129063610884336233454594866788009023595835739641007615950965828780119719238451098346896190959360756369109006675562092676728815875132112186118710171379363855171655904281945561664015606117693663217067969327655925570992016088465200268880077338302886631734793415323386525202189716520127350174835624802445653208631283537363028297597277046499303558062805476816178455405459983241520194652084975029784773093429412448358891949719737476071679229819831019967169030852476234885656936461635485128086832326381416302714566187777590982616418779422599939849329860088856303486076904989678292312632533047877406437012834298922000557152807344667390794103245933371102291845586386606087524755098325986739919067408170902154141471342271838982780283644133288100731585801910414910283195468800265159677247151511622142865589792099346882475945855574967221656770650594617791831800506694155944522722669297074458943039658210763187891794529790660172198232059674239342301909676996845940089948222264006059138059933414382138712392847833670800109813672744082953243474229433169587735332888928088003593392988989236536851415917280600885789930197881834912317542219571568750088086159895822851660458158051049205515145826914715841739140439126398220681909372524906796335241091671778533851376811363313901886834872102331945917816683407153926614370273081696540446501917916698100429934485644657892912222135594896225415398263292937226449394009140614146476822064185760883022752903582855263718809596663664855518209620150643451251199208693147109296645533715302410621795186341497867542081807664823333331605464441849834328643219186971416345318677910886633344865612514925726559743200392927376420314324594386206460688260188402248644860668957029324601607154656847125475280420030408445425915191409165391366311628968717663705661597715798727487565757353272906712789130828669488539447462171687198866090585972129205876474324282228255447859297542129165762489016802477786229057441335526844173988915451645012748201150296270086515990595164727017900263107721965796408751161208399605879906935723578251124854188531312046364387998214111768074816090969179539375154193814887024653773086922631241253697839430746758327476434132402359867453222262397042827736923642882062421039488492403660127980601407265792789419275029470794197291258535420473947992690742051165061091647559381673484015866340518078022048472094055429173292746028011477650569529963339606044664878894447024371496603467582779957805806396563128403107505374995809783633964888120808589420668941688402724844680854880122055969559407734780017399664267122307072059331273715239158657935674493872443557093439163863892736063179789989333104452117967693885577594359231294482564897099275475178965892072394392740976966849667747769020732502031032310272249728465604590375827901826555715290971136612507785422002847897566055749543748696085845547056873643343026020871755057703678132745193973532671657493900631595663851211891418465864361300350588721621811259106399641359099638418614193494161505204210958122935562577158988026530093544117649732074371112921312994666681440360728515848042309583638180118165647335908719688298660633359459103847165456661099197880589560683664556280167886702973526682241223127991650981052883203805610205635960339858945332350408916783024256156316936289198977938817524116992598461956766311735651496805212628497797119800088384743553073189592658122818286234269602348362579778113210053110036376203647950287302660820146385823540670965398628718133160669626015378291132249062961153959912057184914514988851236165731858988481062443925961826923303476911338270942976559930802714280814380450545648788509687432441011745707301763783966034982658134349331508553065200613124320472533590209396012285175315752462387574065379917552990890255811542133982269697350516356239923778290423851205152209546386212341791135608359375802168990773096106824704851134861591629201970496315011378590011302859796307387508053683192575427126934840129903173873686263737272880967020465149265113172240450232240354796712561037795101360372363816219223221222451248012978287419529097535692434669642906869895863239313554234807541636170610980164654979826760147612794332630155383600392338021679698796194635216134169711577648254141935284961108016671164533136255557046178497797106362833645755768843077900276237316526697296033199524855292613520270776115909726300646923346949708269459931768436716296512637607575375199569884129782515495280294886090323147586645205601138840479067973511091360047301798013995102793737501870302671548361114018283254216753571417197407282730761791789640059977674624357520834121082207967677368825450443510517802299537060642766252389799941051817170838377457310380488064702204463762284945375805783103124142248160053051002720398398411914928776530502985059007445601038830647070056297433447498597116296214930096481457320324663872265766088985372614252605660535526293366192011610361140975599825403256913225653131692277391651903164504362393584350884286781939808381448632531949460194497620394798856015208402568543634224328291302337564955947915272350209206935850791487950877586432330374325623589938242211723546575028396824553698184034929493724041568483620304980260830758933356646547575215001011795613333118646297602578890139639143517420705500148789165369785169089725001375247749176618239610400063346969650557578244228373693001057844387109662776203043284229657593259674745102277070165434992502446352507075492288908369183041542248893547508066244685436814535332456554257148753858366409193849130993232793418482718498011167726266443591800974512404810164863825099902079088341811539611375424614752860741833166882949820831358689010062509925284342624873976268159877078743888171432134814973077123641570073059914559892843765908771610205908901861881026457643560532523960255109556997923204299227716703819498194599434500777872424295834392121963269799050049394539232880823681082063173541930563808783934515166896830072710185180124771928743421090577291594385761179944934382682679873268110247711057663884429499546503569693249360128278737466525078281890464431369122423692746321226222460223044930960603902491461886747725478324831873320797152316586519824061365178329804759031782474722450389935120252175636047832368394882672720574012812708592329822085932526791671522766127519700899748577479203553564436833085374417434222233312838055764771453457031040315331585258976955082027185673175430651637439511320811956501141068247996935286972373644349511792587345652489443324635550903882198393637531426960343499139697408264140352743923866019698945460965245945012300529634852653813709557266755023333742807610459483219200071342328425042216913836309532164427702580201793712384770241901861278438319497621204340459946403027680616186289794721074374473490588190819456683186174610584509925529501481220125211728431298948062391838077290697247976784195025396336345973834527695062008168515000302173835649840053834426071565004604647245728565109982310312728350986335606867534749377445328872919213046308355287852669334574297355431337212224075007402356066915842116715410300211045269570496013451601015796421369152309268519235473161221178443708776396999516077395163048445381741189198882609731444284806057065754425486191204948898363209332891156228296449916826022705109819503527405967023793148925533024690424668985749774636975864997834925346234912463945648158953380691002957160390762048806946556471117572479133412339437552586138077258956515678025568006872762004474254562990653780747316572797759984107171295168418584932814405206832765014144497791016732518413227001446405829740935967679164967615840490544576419306911654191729853663749469800391805134263032777889246430069735331171866872834502465608367597832480776117532577810526025987529690516665592851761917907142141824119737931327704271019078900459918364769339135461668819500772608648988749244695970019307751482105846552043332362084972261505097063394162159011002054446680622235541589783570182275341180858735317924603252096647035209782181646519239503194636983937768247629647994659605891465815530795077084502646776055459312406019077088158448598906042034063053714354175550574636915147161548062102221633120893515383661478322554554716443690656783514921831072765465712668153687712609053860162199883111042304700042516710595379055857334201541018744865611709647894533097553091333352269424241029358396948621279849849656756379537972238088396101462761788185956259274149933436928569166504943269629577970496627836923921752255498414700015547342818418311993320803230986159389831716809750670821000359884539586498928242633557856076283197498525339415709674710113653236810170461488439445178245458123788308458455743180173167595176129748998358319088435819663270902691629267480196750199504232702247662956875021937787317292644142633899225104013829358741605856684121614535117938648210095664238149668247637553847048503861975631680521724133491581367397153230545478433245500594940686536456787762982208372214614828637828472216944455831795074498108655098595861746529164898661739013374863119504094306185836291793086515259230326145356663560643062587504279427205607252983076437194126985949847362131163058625488141660800795922266381695811856061236010900824865032933982780895802694452944425095064621318359476826625997572478909156544310373425173041874803627548550600530027456758610517756533175509454442640700033641057123129184690143575256429089991993876715082773116488242026221969659821524233398903244559572729733876969313706131703019094866685322609522195008175705739178261466315955817527720373469151871781600772232418613919077714856519282262899315803818000549014752973758302134932913306540475443732560391785616850967874891783242629115032060356316636989878679016865176563658881634123543360143238746207710750712165453029825865539699617078694546620290109061714086362000663117519539391450092623711072612882528012395385700028488991936023069935555317062202869951569704216894902620769105082818060361358023214045813237184001309241505953083552846095864855912241589607751275374933074556098435549832759185717371560937658281826581062305287928027039322999224976000829566006925005603913593493397884324046930817908509549994931479516103368970107885132103478518162882724514139177454026050205672628565415597804051597317577288932788917762436441195733815427278676636699922787450502928821512190204738812978800415373477680404075210248170452964272705028180150686030420568479122392279227222901044568614030798340773322958687224351294805421045136802559873833965530827193927777167928752266194075275484097544535698960108025085126953230537659563849768364023591978509616561110409970242937285536381480888885628865398725288600125649673034196546030637492356796918746038966689943858128229016845514993824952220277096708767416205550886196063178421146195713653600248372474864975523705357130345275060126046176953059751043338273775733955317675068047121540579129068092203205067415973888122824951694465236939921452476821806516372550426683161741955275529208869048491483707811448402664878284350488426862325429415094860644055991861257737241412658013880810131766835016479223041776117854713410081762036824328349591572153674491902303618292150051006268032494662197461698271428898403034539786746453410102430593623766864073352942496375108549788854684159592686501425342950129589982147461014023662018076049426299121111728111345711924002510011803472612314874639850320528511138857450168434105061941363922230842494586756488540912190723318104316185076301044779468433031628939594647404505747421210755367001948192169148856061286534542038779760910513945073014063949522015016699931819865121628069783779209800819929978967912497726267930714898155200339242847605953194143861164676665743175418926996275862912397837264483067039897135125920775679335123271929130663809888327626966205365050630210743616173364440104765162290611795570627217684069421679986508470995947663896707219651907570992658241736845814374920335682415518706553422590546982225416508408391853931753343179603857388072476093906150676233150964818666597123644935428448593380971575086398230666907414581573264401247439341684569727899221684838303976874071606955824472379717525869511483664413101702544744323200369954758991160423512156092965558207746630975138214747534407784787732326993731602968041747759348698306170522078520689001823406715711388793300474644824030465735139990031070393734099574481637150385461280271794722892981470683509022883881520797084210365721667628322711344589368596128757790701054383569710715683850711462895180807827861970528774548043824768574947036740781327007579890922243486424522125850711079773636061294055729983869399200319378346089243278433429857049294597400324967958535887237569792544583861082309124944968407432506649539210385891877600667067688936879795372004558314488958710379004432526485367459337193610177687683770222458910647483961809399628827048010650618307282938045164629109239908928550554492267950493341709917649093623308641699860513252343815426886525416660037891538188437235332746546966003826918495046084444052695994035824197952988784204268429455936584953735291927026903227960281672943897107812251776222136138583524312610058224513490476571170915255524116458744570710338149263470340589576909087684595671065802419214047204455016830904729964686999064266334226536253105537036577915646138136874836654380915885628262033180598739569022118475276184456773637768772390527469648960753554887901827188480686418903672107740452145297335517270176605838192789206299427179670635311095560498647947823021287820633357899133784754217968940033144105185995094022787898828693181141077838040846961557576227522396866961646783688031687255074373081029708941006605757832585384725946483096147743061485349891965003331438475367598480358905228994404788686705494045691026462430081400251175868240641159005045745248391548862402820550149620532485173845427593848512233855589803634882202333185905434057571183672566729331154084124537438393961481080708868206316773106336543534626371906697643920812709917997605999628041210162060945416490351457796362340995307241847248745751798794634843301930323401172252488068997547436644696407991556693501170621914796295951653323947623421981134630546031396920105787480945678994235857072232758478131342098427846451248561047486364037677767310119060725749004407838199344342504788896408488231618537513125025329291726026930713126077557566580961852320384730912726600858196484485067574864833115953258560652876973685502118954071328430691041332759853110020406449002054443531300930060018913951923352089356711610644834375086367900746775971063169320865750065995880767565787086272190873353878050913522991255531913767641417014435854827285901031743807685923454680640878767146645007016339899234267428379258219116938832508471159323137080080418818597695745095578861704809106651329593456941712538083886413191999907829237983368432576632517817400062706362415645486333552532943729752905531705002228658060675860298659662616345498622230022328578979309317981434887827397764104578538247741053348270276108516735476567654337134360596093172758997957208061979682244050436255350149050969396088967352960132636824988572767901439931594233316759854685668520318769931511793741353373025617621219404232941085421549633684886022453541380888625284263067423004602429349204046546539574298123550584645208126910449410722198334154174375136751331399148623917172049654373228033263686292597329806376523027745703667800158085037149445047757192496377417794034714730054983330330125333876029944787252072405675053163401198095261219101623292568363563534836478387528285819961207085802083662719943657908243076554788223115769493220131011731798493824265179039138025136893056208159617244796598372864497755055731675635880582475729168368530770886612887450872559970730463178501963710259677391534403981690033648080810586924772062745664731578724849748244456233009244497227452286736399410560178495185461322080161088103415689310545056299037968566110167969841467082378699666264837662656939856336248856814891601838226036010568120866045591445145349856764879064864709325589599890092823541396647193528652524625890073313796878404554657193893871303622325733505308566347009448683344233135583491533822786414152083517407074045962960351522419219924373648587039095024648179878978245361258912429934240880283096985008939173713115694764116026270166306001103671745216766712945184387196010543693448589724706509963037984869414177579413733436969542556042290744129133972382529882529265178355478877650636778155283407247206970480809814655243567871392051162673858009057778195405938962382484418547946137546337839370612365676977867828219941991341803778095346345001522861232952354164890441078537825887012649119076254806853882644746090048336534758377417925661092662006923822954606505389996613633633245015365834101746196650018441485292617062951090654945694557113432631142001151969119755236355111855428323465173359841874994967062122638242519796641236063292792087154202721450814273771546792817959075354614858950128415626689710384293850295979914370332130527718567250342582248984358337462993898822878465570172986244886460564900959474181998355314594589266159146918773409571307922127355902465480629042791372420268209241746704394886480877282122890994599371652643198502897473888138841240171698390121325301610376247224592304579637915593637896370213048459516570314936151004275839349722905996664384121549883672429878774701788825627325093489019751257859181967779791365513929923735527752656270764733196008597239339693449197873641845063427899481784327724020590498585383134536703331672885387431252267448492728681152623972696092814516273979920741878653178953139626828623969650099357464243599469995920919803552583073261816717724390647038339791051025229181104757145037333112831756261152616242946315053073659684681042501202039125440585932491978214137398272846454494218560213793265299907811181913235814099195424915936790109401108665873203581829521874171171642023637242479371221283996956311316518976837248720821258924184188920360847265124211504971105025894286878409126079637321917525912029433193481657425222383567519852381049595981445529025672081719314781229585153989675279284922098730580754238008979380787368309173051491213922799909082331872543516437748159198275756617321346250806403771746630786351159160614203544042892335248996199813973032098184422505629542761100733874951699104968454204155999349592291914234961156603349057124089709902822342086208161901619092480943269312214823978891895523184267047588154329510749991396865210983832437678630441506916058739893035083972533334697533872320783413669730072528960560673665049771549009833643130768603181523865711341497824827496254724566777771071469830565057637221800633953781656356472416828911767817587207478519718457225090764414448548809225251235159315836061574545098711859111298370858053268270272211985041453656806884756079918569956454101666294322752701192136214819234239256750783655071557676626618336925849201102018258074820278450149431314125489341176457898805768902832001594452439165427544839279909050922500623730301057823524088919721870811942649906816196056594895872899789175115198113207015300321273406907511687739896314737355679338525831292251260934296096955268144309579260568028027616836061089031577891019148410852686251194419686657217852072520614645058716508532776430553235792669527055351755852693023668752043758668782816353423065400573892054379100887955982671276972324731613014332256719904872495465229228771046606812033004698452633698952186454672852350836741424953637559436640305014442275743088119455068100648061548695781929763950621413421012753891991429942682642426188097629387950891712505586209872096379471478060694081496810277441974467504694910536025886536372190374583476805554957787796790179202533123288873715006138467139777632358898460280285876751097588721367674904955103906074229741675990780514779188884495176909307959008773324700725070340705233251029944653318504984493545384932914210343589811307456870314586359678393785025425166519635517805237077175170719821968774961205671546883673631464201323475382664413234470911586680624404046624015077840892537542474995825955906344498727977578926319045223552306776185126988725876383499115152183594905556242583817638625652294837435863630088360363379421141762313462593943571491517843964075660156652211917855317191754495997127570434326110688127666476368418583102100063925486212535704025167221546085998519874785349545475555646059753920772240400118710372178215501700950297565420142981271153002469048135592632381026978663571097054641760170912071581267851559625981844504127584233410372434367182753960107729502987945993512207135978461243664593775915296342707472532502534999615339812103811686908218877603593696019769806985741075925197897794454559887102537095758347787833634379466576955789619845275192576616371055810169350778726455947167927003710809989496172596207168026305969950086293969611243957550755061456136121405193604204542213108892735433972197480243900476320469932836202522868433912216451584216874355618842943645845238973655076337340266589230111483322359796620080130670804877063513169108323331986632843105123597455152456374374104053213291004307989023952499316415182524704644099808408246029095864838707528595343656052124101455614766351775093897279804278185234584145815291491722064778271899230281792882377738980504726173429048719365362024802456638325895134249469591186310770179359989579988321719668955448772804999636134560868147139088087089915806912281358700174129041388988264662202131436539065242891385968912201458932535709486657098477051546387112211375206026437650165981717620111041969772878806537165398372272797198606786131642498086964209148896356172668265559821012680650878080193405066499331220180093282449452011600776410996743117104608241125293520088081415751301938622101922887149374312674785606217645210963696083120850238950445221272428077958349802837310528761397293714763531036453648009769210650210021617107257833419904720918574971161678351304693244638639027606807230550034276356994547079181541203244094736402354618370933918551733809204247540288804240500471816806684035938020258464563563707615954828649029428399605073254322807095544847732907713557317848663656742928127378847359643003622057539000096992112522364238109102317124123500996069543562772282524796850377851065846108179843515848928069239565146519495779561565232223389676020842388896323093642881840857109984715461008936262621784899144631853751660781566074751354161940744011163394032078630531143287333144401980983087925625181030564409910132273862191612204875685317840948988638103515461189075278669675303895252055233723232772324928076809220555543866274964778796816434410059467935451070486714707927829779195121733500636974659408206822617560922167197957580345589196232247299918528617457207883353187280899296989348368388415568012700252305986007282304090427346247787648642614102746615322998493310737182730975546287095917933156887553605094525293750426999433428617071802768580510737302130473396325954895239905412709639150543910362491179510504478156450358276787089302922151535685823528143978124808388970687400961301133673054754960917143432309280109907612474018605741644797641381030719996476391174625712841664867774111716036520268560494769811913229260092333630803978929596543595181881788970651850917637356318643797133686918316451612217911367520101861687020005515248834104200508509893261349854670389463197092387423380761853419826148647366570844163315236667788638576293547618835511090320571948565656187437899583637776846004410690601310755291024150733206382012392340468159274951759648742127115073542743395703982830255113771058884354985952070816924537586090705555201340997663095703463146934895058356800917797127500580718720225999517166872809555103052077366154211059513285936734316940414244953599134819602852962310192093285850788338972534991213038032423861066812894955207041694621976050139104352059803901469620169444194557453710181000964333203474135966385433789446233999573740541713181655846525329310493469470868631790705999622813049492033309295946232234520467213274708344202260631834676443349214788500933155057302509082748735683244704796894024143542722892283810698501691168242269198212962949057776548564921262177597460980583078621722595481536486231428799192756363714555844998701154162356791632378014209882384276502099830362750829970777337252246489984540906079523246761652871768289090903870352600294558841953922758516891075980658538739600124746636513038767400162922987683943767885544914590086715481666415639866431570695417583984279786575667014343563804308551790390147038910931071485317002354937889659903064727676612996140574944549692872962039832255082588898612130057023724980676455429090073566420305264720735350663737010888351268071290028142478044547921945406231716800311024368469493100513963236625231128662893064212062144334362924538114803374315164173337369006792590985331520504453455355167790414477763562932228071325850394031976216970908887312565576088259309166237851175951249827430491825711689944505747082394237245738111302145448359933058603160401093237347404312428926051280060492906017103730310989240785686050791738218466318065765815338372233316301494371570902297302608261939593347520951009554237462417109667378207773543875044681628053962142996200992425880922241409567695026101657717313719602817498716187960386509525524214781222542532186967968066815565276200157055288354281347449351738935251741006898623825195576556880253576493088155395113850370004727354199217565276452431871562760745754358586286039239328672673208035453355601489048756633865232000660159823995117693931127193931757499667473707070861708393040710852698476473008444737673517889487385813220717882059880025579942520844832650736361014630879371691675680687345254041160944195256824963203725115767198964869761540410771350313965277928944890516837541944349188866994960957896175572990810652315623834936027683010324102213193508000693500857061354719429586774066429695216620468944938744672853100401662926125303567359686729554399074497315948041240942890817944386852681569291703774080718956704756118838058496005281065996472360859573600642078674697307447454220898316021114183959958127843470540110532437861634185986075931793111659301528202138815305145892639116771688370439079021866905202262701396043235300817233278342599862968448153561570608566417606452771700407133446848498908883829378406960899917994673453124368310989416049210165576292709935510352663332089425606372646658107790299435013334779261395739912587443366444537419880993962680022955652465057486099760128741728674074536605048976456020499588612250020775729109155406659998687208707248000769463705109664869715396592532977580899580120513324404309590917384721790835316413426570700839686500270192443492497381916267609210379682053392114426856635154586814031908055278145899053185659635637202432459864554557686052050811317008407539624801852559120097605943780352327683661680101928508883683623605955153195435164030863183086024702869788738671414577345955006007849243368127799678317815434490052539659269132129388074921846454913955960450125182205601891111492367608916559028634870236275621471451779477222870483049954389395395623906097292804621974897922160372324961117775761859764675230953912722244481871849702946990496651489350264793627619931824534137686479899938602590754554018875480113661448482772904513506781774962080037430730266773556339281556283628499048355983142301684511360390041371999267372919107990979644112410106372087866967596507794012306392795737541611526338030840233406314653828057309194453154816234619109730216334392726101849654277419004027388811646290533787539103267413994170367991540122178808016922981962129104512447579328770528806423580493214315111088013847985314891041475577668665249609741314797589053066950678443233446863866278833134193751017717700527190499330777445722992154073305316930942378809343179181518564511302651136298739792765301031093172713039669494618215482792600995034562944790804046980752111092610245054760440523748111975615814527505839237311265396136623737249094935134883692673837996259034731113548618021560520643726846808455912032093119405506574485940538611979602343271788179627024853743364016862132043105684537874017179082284275669899630619158741793007425367569337425603709986301324887963425388824496009984683769112877282116871775786331210276340274518520438895491446822702870362410011033532860945280422155049969286701390060709008543224806168624243671712654338342664953036295570091763581824400471282667581157675178635767523768370047726423501467861222050646343925958500683050662297855435019804179159879953228740974865335583609383812564797495516478288311920035018814147110386816222939973054816821137842695398920926392387177045058865968115562221872940265614679188501017140998502646522426030370285466171296410703670914761496985248714122117034506619313765771096276717454972177131607688609175539948792748694196790328472951780437086599965725042574398750005811133983665046754701910280069231594000570487199442264197226684768413193120940222175209534983903495287505167649552145047513231770358109955105417678458690026749910337653971075064129120233381373083264482515689788219517326126281022722191270118292426326712562857899772758784829716826782933967618462546945130499078859809157189395417057663413909660900907291287520487545942278895849815044775906102009488190680766920990645240337364054592922922874276251587224457328750910696762285580309125349800757942376412852403313186662967075171544000146754650877263627758840540632585772458596966528500234558739924674153287325748051046163262276639395644168357516918444889582597430684053741755539361580671340381266609958432750727203662076309196026042925990989673178880897915538132357327642839350045767317760294662360162268141815018424090073835868654211534316177912346537528524982685733164624197897761214565730392723496905639060937383008272766276947779101436123212661768606178080234374410253953114198469811049437605343621908668182417941736902361880644729575531349686906721763123161611743894396935763241752297545702698083779833528173371665307835420853573298538549635364384308779771064931387609520454360115359354599878252187164313478245222022377886422607466598646961261592302542661184527383813969718521109734995458268679321625390881332060409501242623785491655875156973393774955753113767686646739565182079172897315986592447298726539193221070254255704674917853233073370707641461324376655841536757701242995515294072509410835057694383582640670831692978355310211509264381294693608857928618381702202221644522992967408332667093903156973842962109798634055345403357040266184692565795227932671941496283189896577639717377188474784473594558358384014497888904149067248593094087199917213674694817528568330481986763608394465542883669484775719493798682689642708982387753304180121195501301474156439991191264333580591464811674454790973500959017343442386314888079667331888274143904893180001422507501613242044500447719940807025470894514277272359592946526041724155354147771018820064465188916144040177567722742288191878780246515376773601322259255461106484763444725722934053625320816938807042342757384234622712434596080875810982965562466725641729591469500647647393195196350553094867247634414507816444685258299779672252520358056774745498370705376417636033229933218172555968441136485187713689669150236449714736622172415987930491255434060274341986653117825530040064081676650977193489789134697786046952809840404498194237736389511818967113452203704533802668862572077506845999296675396530593956934036017590700941939367007453707235288773680011900032730688845350826612550296649908184175712579195884501742750843007261837936283649745650100120732303501658589485266523930292484496567814143906505304742439936176474045951449770389224412659193097610836495896365698306398978569635351629870610047968911745790053363303207435833073137833034279529516833892496983893025047425998947869695247254957005810083290941514449990551669924071085736439073518585826597175757846778069226974427811087117874498719277232280721407373113887143754493778647031625790221009461774161604405979728560581615470106221206000043481308625685799337655921796125336737859041700828760776171313284284924693299338895219080280719026389641262253971188155848404580914580363577998901526921054870596966406411337550107310091527623939854546068502405874741274423018653755307274279521593738383036103371586055430314688664818596269708787470629330807579797049486849789590303366131259402608387126932880288482802631373029356459848640014084399337836547045177360342748169956849499712562950947502471098759296293603883448372761884730241550094468221389560053560227026914545326736009052192002262678346931385365236050274784256490406701559785952140384960303569568463618936522155660934582902869812133177685936225162001075059561384994394621916080995392216495214009829875032673404728721744958034272510167863282333958710945143555681873206010093633604332048096465146430305106282485308304983474342816407343793891447240039782279831865876055318760920752726008351810532518693806184012569178395950958253335492952606594951790028287043479474282213007943817615632771909844534145954990939822400131731065842397596110607536325918684160985815095975137883065845518889925715505643350531742580614130309548645898513358112019160986809385855643000880827344461163962629867534719814329098179964473896406398649106218684248373335255098482089463199000006889757937322186841024070276737283596486130778533012818817175928198260281622350054356039769894788555101060162460642192013241167941355012901645524738302902607053077224550103689577614423469000215267408491356563947033133399577167801259377145520827287982063089473405510978276490106236230108192914791390328575181934004492009816427181684685886795981898523642718176613092210702809309220344240435801203177717365283188233425556136970338084202385091100709026294580070996741776324764954710270018427390142559656471745896973406537530278311275849044126702419850631793448857634655547557219117253772330137246562209596653254320875824441703566898176122114212795702503342470317355248837672454073825107013029011863213433373646474408314674410044619904531554174029370820747204946722613987383031812855095260744745058281962529842423203206873871065159352933580852391600193671650614964156847019935783555714968147460991978583035409666145621757017744409458720589172907048359992053106827801047844127606136539523774110961967478938195997539223284079156193280393072922682172215064853689255002011308946504711747900644460567447989577486838108603543369705709640923563447597902287513833192359731915166139718314806720943451202214017685590532028010778983400838203686258366196201231669556195207517323893524281153070445446997766413662181251207351409318161641149022963450920868080188642403506022516293024641486848546930924157435977698066168908646731053577362888732508149521850742948270132326734396967508039348368257949593341473575409241183739742932275303414235586544986500779467606961967365254005799828810533024670897938433909537912393565269671277794752038453731627855630951126858511907490765462889927009433614681175184825800720852525345787589878131046292467425506639641952079709268202518346459048969123545379681803968939097142146623968322781051230150576315213896999745709096104214029885338808299425830063434707740697622638264269338815121000790489116774569101999953200432995770255647264019239435646898583977309016779634789368904538252898319127534262107981877997838148162748868650805668483659458479769265082534079030853125168277223187985766200697450155632435571452581345684825278191288504587099967199059962289362530467670350769301879707150721563616896921601955975194799487981087170523985255954776376753812403553317650613054005552253174660082975722676680090292407110483879398005169577480920862563698254944144012520442484695991849904882743741484398127738882587944159190820716800492248850230873793431644771496870626551908241013697023101322640241055627689339207450740024369222524075995039721251797163461598868725044162152362017155027830506225643525232733362039057019570428676539600805704369821643896685076893839122330734836092100090789523920219556156096800754645396129563575189956517858513509613636273709903925944773893643819391742002673798880159518422089157153270584440903315930326510417389610142221551652775341783724015964892941948013446727232456661203740783766682816143528759344920241535051901323502545335328949226173906786531668841299400076648213455989524352821508106036084274869494917311589099794829566131330200088768722898989038955769382631919682439092682232515261723413670444970747209147990962951062275208399833529877770361953178167412301077486215406200105032919877863017518588232021239137404752704500312067461096533588100055528328688563767006424977994347381528247317440907905989690886493184058043604647223461738350020031442386245315677402166807302494844613198842854264328759355048651632451029908636634905063768407532898067591055547283055976445788099413327546653147756650973334686593372983013172442433067928812186176320742764747269039347912549176544069581556937235183856950018068312885080194281217131927479600410537228177441172295790149639234927032514170084906788530052435054861995762265447979960771552645278427187149953364559642476992801130331410712287547389209804814532310071116233850877694377332890680198573650842368082345377196290673208165720044707056457093486365800780614004619629157027451768845546282752878383948118643949056122008828341549101311911589056899966807672108848343042218325305316125790547550538227903801439414627196495990820679855172724493834564257483793044700568444186139043482645575238696406663413944639090074153652320872222589544844403911320307915965172324562593664024052975285886280542515782958040579419967501461718695238327468625356281810125424445851700142146079905674097150160372783419020458064950422391099368714879541221809046181884952360999160969918991515664683825932286927643981251962352507826381973038266762624198417929948353799446866758199142873474139329361989297502478864983759590398984452928019966268595678650130570588426178018151775760239401720043137465380257705589452197693925323544055647984621550444331150403079226353545187102099834777901383303176752021077552650697143903201979791337861854394331482248729951444018051805173784839693923254362863225866545670186732495400249651993467918835084068245690970794280126540340222229514042938224332523125166598411934349950229658718092568442181423627887400502222981022037448556106030667597352786781656102442023715256174624484464573015273080598421138025343205673859686184681280864156543185207612349946215689226809282352378576444997619127257616290632500210690029046632197837161712991336348042273979544188721594398268852260735139034860681862630842599469470248472055600029068029367266211554490624775014360204366494720285861010328686405289165573896167879850903042865069536784891326322149079739625066263829768855066183360734390635623435925191580490580929251105969159317238204194446573577888211333182603005882766761302823516903252155996386942225272933222205720838120038798421321241208941003347081011046917010849103143860420924386879264881771724463295922832202327518916349306596040668715095303128133652297190278417883599616167229763014225229746483690267222003933938619807302326539915250207718762822804900258872854228087235012367760976506787012865751316660438045717230709577980625146240953464916345871242976273355461134722186625050788348954780237636847888770477969973343560376706721541960893600458900444723536786018235139318497870496485039546774730979684053969685082542189565091193768385392420178036904305622958345371628441226393422042387012376410382096140632753029994389243323443123518019949686696749829245158110361834961038658202099384911072261544334381581815769636218149147609290390277401580267372286870304163958408880892636786073136817992401450318340231189682348836785482625434054987700524468227995863171799583741949268196827495269926242987230788228682561966709890573708254511005027406444781352373332049148126822875252828964384755015781693736200004864820435104418006239171225557517647550112076494732448595903277225719793558150874603603296144963170812950914464800325145828919590331185534160126694850641905136892009634332386321453402505253625035548155260646665018786719822494825683452145453677830838041678085956075713739082683252725763201170803912138814581231327599628719713441125762729952594351067728570185174902156223956171816042049850014593783741999251351572399839754250401949202052042990300595252342894605548318671294290142441022499107792970990268903509106060614418223934054658502471094053755345620810118778191822162587992049040496321458242277063962134256981303936472534250547409780803031840734902098120201228262817916077693856237979073719817405606028796170644794619704430675848007958311020937526644327318067984260865698540788044648975310950460718320459658096060393802893592997738604844329024296607837967245498680093821121448386660364920904597716605813393675797053987878785838994193307630573970568151135079390398062485372040929526603453459058309715428961731896197759618742554478132116478670069857369818630796655863059456933961571992574212404972578394860854358499554675012321205698805409385010422963920008881688224166173750616740072199872829803076056303369634987286334815947199170546916905115700969254652154334577933754593557223041196023892218346994338858968672018917065848646671763176184269431497611081295079543673315089938904560480359473332157155509489074313456245285896236928059516034593143870140787177281443157543925225721440253325272691745094056050106616812220827510654302399937602063176169818168180795681865260560301810592758881715482941449458515842235458073314032550038302498831929428858731683488041075656114803922135596273061327810857059480286604840087886797987364272732924034529599651152572722572444557089001039708512758695910657362905440704825649110048176639938747983768726696269153091959017861865385865105702812415744140963499403460167657713510834029523252446879153481802380446088710552952457769694863254138919900390160178275017148920997253075188676235984850161075486552095400944972988274813788859378969800937756798567234409292309349476667672661240307407385122890728477991496493050074017109425280759384581383233625437004869673475614184985391694402486909915063547309119746981317528921897865387750536494930487947085952639047582850636923506146178233579203357522778854684065077830401581730632106074791733969546463333950150217514390880069950694321440190138415397520901780406137196274948387348325183644642331395784773114668159833503969410644228593884578690775697023347875876771947025389052221769528186605618334880443101715777114239952102002429684828118106419083071070325263152838269976546021553489682330612609465828889282765289564282134940090293812444687031403423072665666943384018864533574088405937166109333464098322290743520383771139225699196963245218904934908542588973158185448462446621757142234243709181845758546931984258345440421881008837905234980336150246357347332993782286503694658676898038340154764182985397834276258406939914628910529931159738246363869716101203055445766873836816760009814330247182506939402023831813621524208696438641109309131957498527205723857600453989783264521179255605515670348676007017321723952014426768603617494907929705259985032681995443564312697208830423760957805740544526226697181553796819148608957188958299120502602630002298987147628829828422907401619604940664462185585240431227320255070506572630867427678361960325584491893471622046002970782589623140187337896041517780401547224469608791265365951414034254533799655596135807324144704845856288508154257815927298505155325387412692125380358320769180310279914781248126867007915850143510929660212968906719288371094325106897209437009400749325281484487741779084584552503205572285214611518440478905865293534023202130541559702135997333982557202570252500772254874029102566696385100888635191713171229705043835264928149061526435434918726228812804460735031862059422968395965630765292523767915555858008449623323687441634944651913249029537235940676803956227554849544472451494950805736875570750643549872125685758581163693129778206433296702488864993188859453021355097232811987512605542705622085486952522339530219248697152374535720187284414872785225897393597083394256967604392498942525145898766779861341426383973947988618098482389346283500626552638248052287329429859808922729657696985589141095446194039383047954575500904301499442730526322308170865080830314105412607192585082225810498943602180351691650597674384578494469832963763827558649669348257226525427311603564194338838456112071562890870822667262942076810303907852003680949756787919993067742320478588903140429450414562679024660165593479800482506079321399892755986733177892438208089606197162408280323777998132289983882331586036290882380764562621471660117965319107477808569081442337850831238807244030889048389047706010023111037574890106710604440961429742955295944317506360064930272302428038562554878140224015572953678197595950791119416795352542743113902814133583253773983539369996005303743456743836964426097297427643396576614540292088723113576924431765676382534584448562230698831429049030691821176112603388557155740730230408433601057674310725955663141440141465498495007727425020286323366278564402233012454137538646754166183232784486751298671939163235827316157806104366796983115897670137136881710471146136376207906900882437110486311881984574158873811336527510313077118170703682549284767879978708741789841266230144250180016287809183460163877223700373953934057992238084177427492890658168614279209448326219910906224231964696871417086494597398218575991333415506609678695955064355149940385027388900909314006913594160180891319654125231246438561370228744083939916399336916212284093970549824457730399342054595078120604984366472204115070449516365516774744162848571199509556615258251747097568669265249043269146248398516281811640029769764623647335263068054263861907014583830828301853335973964602121177316502897888063826511768661128247235384399304407161657873634951298224603586666440730069866422933153190273292828686429824189518822933501130919043027195977587562533082100326164622646673410521152205839898025885642692851318129311642537885253582901782358580323024528056846667461915165119047495167765054853415348868655187983517020424974545214452087673679211891965158111356347747174816369475268029569046789205334024391800616735886680481200975528608487877777744459497278254434037909696125351228861687709260953907583843850680349040823700155971697650182523297597627069499312451855907695697153388395949411498804483756496025897350094908847198959767700886550244430873587417267678337136277421934469093429948408395916129198875643671322839351608377559667366628742221057428798007057391554483781576714854050052583606422573274265806017445319903949025021461937588069167769737411918106305482889977640837389854542013536367259500805389643530740859300723460749193208467145680937094171661762171766128234281536206950209022168380916569516939169532762509582799277737574929121842777313217379004607818196664681390132629365127662289981646329652074265965663143405813807111553782995259177124058045889193955054343328150119977471032975865988397915106577493390084580013254977079378857444364534370021740559029007178682120963193524117570148296649546044098980035459539712440660630378538680963709349790710769222503185198579676512486933476001799045926902937854664016180641099894824538059250057078417756455418464418204863127936917628367102943207220733234886423304596629618672232561923718497448176494451893050686157227505096550585077237888415681853817397689205820640463889865491175837588582481011249701744053225823492355622359112845759676283261735360514248409442178024019236432065849708357861886208248945161348870697614325459684789230794616675078937855090246763247978015815303045656711011900099247323149713183504744828659439855428097265062656266503025112161379720982036142955285428448559803727277765380608724517616220138109997084501603091132493987085945512882533462702449758570898522436139717071503288565851615681613002596371829172062341470061482343616098012341523871162945014884665420365427455235689070242110929796279171978983341757821310277827079953629600205024001683397675897142658552475108768740532723701267791754373427522278552564238645093436430604577865521748244734990052955687161476746876408484604506872892820236974284421627879102578927425577022722780957701963216997871980722814404894729916547902792598446811775616689419495464720340574237224179019292966902788683618617989334082348561040747244645283698346216350688241958664534433665371018871697778768079574045132864047267588836367267471934392974729829014154155306530609323183258649910982998621488082132568212941520927893868872700226454470483721044498134316690205304821725424822332613145529968414587904411675829236654537386547041776776270932958029421638308514025363655512364765820419592660852863431205230771762621504591961639448595472473407672666415001021555194974827681325371978564962570485133547324036353640063907681467078486991265959726064203612340067548973021016775239185545003839102492785846197364124937949989605155855191651153614191036182906486708534619416951766676292819096336545357327935207893066790122125722100898687984024624390292643892774361127693716874050409933259616946316106888312397210207267886969794340276438101883731314668004089064059339812956466633014725247644238913672834277580143569910258373615609175979628667034017125290635492207390403617817647216647524764588429239957497910560260289588526739610725865969316560146183314010838222021826692158062439215923748971667796670422696249845277400909809669618344737397561288280975698625666732787604593921457426595643351280864335509179605258503700524821433096530404539350672967882222514340659097068267930087919015353581195783258813372952741814968435864560173286602263615192945785437725781459635957006928180131263228691004209811273007201781183705344531381383679175803351154388267609088199874218410902778949955222060786317510182568060452303742218114227284255337690545762883050911273477705951467939311832018573341408261513867052372859399435492135150864484601791668329510594145862261792877204411730792877668142517214994710565365312683180585667039603212987018452767014454380016363440874135160845604065500135756914774515117683453903602880723070652718252987933045801781158686833913603731882076163878556965242503991010679617064438675178386115445712004382392560325751039741223465718739871147944220375346110054833774562914040130156946792274554075415411480019058628396571986217000880209313047503112441045459608462959219617874492909251885013449968145616992416248344161515461681521922168683217426530962660320386982083656275851892469846439238010943278976347336905922886837553470873566217219274592917273215910166310662838780471723554155396496912277637766922475493941864698412551519642685170697999889981515848893056614904697899967110987099159273107567492075334882927756723243079348189849221061956374021758368190585627931809228225624992999154512465254581006225553636963274854520948916504637285615845156242304539769751722328845902143598567929999380542759074484481244479263622918805435810288155238260167818519987990475363184106186262125161858877076759257675077349509089894789356088283116029999891953382391599159790638250846611021039221531551208685945274640591552585879628441736805645603693655845582024330371053535779160243012919567501365616002078870791306684397002257793615582146269841988292936133919119953064645671954533684749449081157478701228054496567133865661559344844247665374240526766649998202891025309430061004977684180401932745603755892308025098408565523123799972273478726273001403116530640608890930057937734347929973679927688997041363818507154498920125278777909355515637301275710091698734922875207994956685225696454865961933101783483036684080351982331574653048366889004036567357440723638496866263300906885657470093213943205029434888480984179426375032997587877499139771796783741244854869441433119286192867529961705103935974673555624051151412981209824475496642938479840974421166791295832911735556444386327975591882542490738877665266784723438052050582887474393548579697412655375516620480512639663906996908303924622192910562149419347885368195441094710505378785919267038213031918500840124030861491275912301811537077392065624061081371570318319032038858105276896576622978407136226517581263773840323119447027203807371451276773362937385795242434885977426942300327826527995195414409779472199190693991403496481601268126198990952361804299758619322594680313474920156073281281999379455182799778276915086930608160127587568261735721421570948446005935111968287880196766363522120034953626105066612474346335993586612561830084639092913636205851471492410584998601346578998312115701897769402338565626587933468200391880759253283740959692167776111755601980176246531801445365808312508838064939771218552492435322294804903516997169031652073243466165420146502771981149598959232736797653499905550446928911969005711397375729435310476614237760136407758748970867501315525925272328479806129050605629655471211904660338133447608718506651965083188345128273298770190429422726618864014699821240210798076381148859183508677581767429347971887506275580747458912779015268300181008985987895974109656324298907939037436191679299366148348572596873586453231123884823944300536799242674155187040061755099356777105490024913148792622067113467799701734582393294658319559021149772651678159926850537002639402616804252843358111474161485567980307805211180423579671073219533839659635385252529330867494685203648240694205608899754452404545698055868022603774829788452901023170687679579947744548745171382850164701793016921225810812115278450494900230261224484231023416217852137643452791860687558402369446295404350868316393597140609830330717371324616834462917550503331502373989103310399758232964272927721888367334557167182832464617433693349335333679834142095541642325958868562107829789322965034428966245894022514257696443963816103143532518072583034925118862466509146923544159369531910967295228104162338337709577690505375712873792653978146493284946560374386503942360362406763570419243809338611594501029123148446703111840424856404779917571619396958833413245017489416689464118377597347305652021601363291542146783033849127525107081993424453840365668822148348896187371564195107328584915388457382309050953088829159517404333465706434073496982073958609138533738385924757418861757517355023692748878660811467823826091325185822052422901185637687222544012415991461661686967030013895674986533046347348926192745625905891347223245229351365593035727474331800546825314203241707282558336958931394115873877772562142178039209723066524436179191093696281296248085747702876899457688246106695817591038114138873669882139943053278287045614534380795156938726563758030401227183418251791008899648126980034706155257599144422753136621368508090909314768895736730125987834095407204869768560639138653546396659102907093483582150303887403599615982264083835005739607612638158354791737423125375741114257853897833737492849029489889992507309138005365716621346553821098245493573915997298574436190376303394156587225034973226702024210071653632788189112377314969825996199772395792302732069211848064935989562973091322532911059549779214291753739884528239941212565290604361409966942219268604383286373911947364133595458688706319083810736561792475401745371962597206043552365708561307035678970137677732624324465889462969671456325043198666139487849400607047574439358102110614197403858923497887569668446502689824799297334357786769433404358505499985207983866844227684485251113110927517229183923430651454720831946875891061323142318435326101745445088663726120499952732076085345250280180719336903234604040879460013933608001201188659611434068722981233115262605235308244675092243042084892580776846897127113601627851178924980703536522423022636741526996191823966659110557640923976763486164114314773457030441761598899016540481571283808629494501109754376847131379206863115007531792186306480258078759650319113356012576448631310579473620691174080035801335899560050871500950826530275265425095602476489751913046453932440100638490609452117257557350540460180368237182481649150404846100788100751856635294887752929212982670143723968235207661496915420457312173050377274044693320532107681667402303322499286865644001233442442904269888099916373056344533612927545745168551822796386644139922369164544265419537172541018707930915716346878817794344130832690494232171245090071037787774937586586814333367922080108270961506387345441283276524225485730548188492955032482503665148609961410114257140320777603427484237743537483997019610710426570485629636675002086997360289091950951370878571467140879651196486679244240686472086674741782874906988142246920478457224465383266096820127246097899901796931845330001296749426234354049554248903473371217474988108573027571542982369822093045876238186441507094409179853759547882868132689972937564185701587926577968949328823267074280892469455539713645676896527509271195228785976264804381286983377053109933531763569716258106124013322861555191917207851540726705138748347498719340515477136269440424727420208756877236226144440635207268802556381921635819369062901651209241656980116996934889071339079726595586376057199738439881036665253314828511972656078713439365032565029489379477359534414619630495637628916867777005591394207393801613424742885275172633889587665108171458085247441352391826231857322756687314323668636915688728341325801086176159397331927038541705965174958671018281252231516694692259018441706950572577112980937058657649803234092771959379637008221100980354310587117178243614865428538652138381641136277852922288047102980979546980193324804323733457243867049338659528556383276184502414647907435654023906219520600434572903768210898301419064879492562693899720487958016604837137719658546969649336259514995246612479707672046323494124859182466027508856988154510135960892784807984838896758006300282456700210193149383581126781908264440845222439957403414463367968312381155232013531615364016641182479032080770243982534783181134518652798444730990554054151159925992689400270043993946535576704125884961925107899055199797938719822283113292748076140025735405731955389848258685767987397308199880326014192285917489243078052187093253632947513277423744072004557321280839698597792289301798618738923531397244102160796389772364428211682498768749020656975609276734847179666224105062703015127896126676261408202853061329149443031850990139201681773067232885197007120728584724197042209104946337750219769125558770653160604176374654196573298463527402962494886465115375828742602729801978272976089591120937569078345011034751488961176856262017395954839872819846915248390407142394031472638849505826157886779079035465330269292438375283820105643041435384114473203747007087314379586398034579170726208872078829046903919581800916482634080666859855618040303624837706087204274169905471912084803997078703438166530849298845722704874587377975591261742890798071222818635375773876855734809216319626978226777463147642069394887557490562763200660613391913879298128998202656146323100578637044562938861027064391177105267603915605272608705810470055777717016157149563594264848182422660419159258541976710327632600570453647863947538609408179978950966948696154645534863648126963246925122264199546723821017527646591013805665853280951838819094240709857677008796869688030182405847006318231538956690399382774010888040275088686312076125377856168822029844009653758810825762150545736689192350962015257638782007790273558729715349442942799762297595882163558539271500444507901913304843281179419289767370062256977666653036342007093487165329776707762146398235153601998179763007990738405507694219322328561624695947819621681088936129371340001147073672744882209980119022951064066719175413942526295141755452037067548234220827694936126538365191877018252351306375867807440988831077290591719406822170348273042362026367759009540647874101289871166523545682419388692789218043073647743441972202439338884073299403689404013136757833904814592438177082628704687476843262406684461983854993222399687571170779995354033691713394715379205970324395989299128472885537088749099356589531642126689281915295755778846161417027493648316394430863996143503067759349750714196330982938617032249212074602970888319690229160764603597068771293046604694217280559288978770627619179483255780698353117257012789813126774509408956178389091443777380758091519014486747864054780282992293326612382009022515359192757574459623004278992251164867680383756450265028763188745264562856191238079118455340416318073979249844094190327963728750695238902880108040927971307434947388020599567040721245837160539405485851440004165137669439349837849322227396422266858752668641332396783635413221967703297416845011305114050166872744772170974862604147734663971958527244685642352646175191248305701937789019183072678893345722338116984440786711921463689651853511161562414404252519623894817013059451093985366999157925511192608354198918609522534093888253394474929326541712718299611823773318532544167847709108927992667217287946589592137949023592080757273687483070441506299595681138828414188024813799538734919222225714233198488702596009091730508739970440857363935371618720604148875343202471684376381100299334415896115043548268077379271209357563574847117050996664286144388354927993872834105952089395256899027663559611685778891424869039805590995225831658045707868564307474092750748508858613862546668046796405331261121742700051501176599344842218636602156417157654373074291067541678878291393808773712141672231022707463435285577719162535493882761351019452028529239052559817986793367324079009035895095857522347267623270008239219945608877954954069607729012887607044150648781546125554775553009830919753929915170539130643287332336562946007403835508621107740645218222526500471637092695147766256312504904895462628951067446473706211241866013690499289581247603500755053674364645618260331558441634596864033588770314874070746689867581101358193957989715700100715186113172528087021751299548932772902928114853966294844670426899725974323443660667495066615115429813532605611730999814383159275511013851557183568337651764729700660888264231932112925303076462744341183348807313812585738432046093287995990887171442438398144661442698909550899836160993789610547756780502428966415394439815860339406438802393152524372782251665394528122097745517071470416942782630296133331689172952688343858223401855713348615620841306623715664716878640341489781333180182128124228027075194928840029164287863166791073859491148580836828773973660929664474430632722037056643271365525158995426263464898707595876980017824468594323402488123823558817587730270242921972872520747851282805431267886158223783743026116105315535830760315077500361247452430446400574589703205585686956457937100313835325353239562001973208534923692464944946911257670563882823792501931737570757056055515598576052816891171616363236508388067293133105139083718167940064305126372064827570668245985894021238946785634876182148888987015386858158682659084928005714068436175785006491398682641321736907232969913585461627459970200847887517280583155465299773714556741165879689071045738682860853548380189756113756817968291888066956103085116929141947952778187796474895725375998606359225434428195285623107093528624162517848153017386397735048589378643506603925595134629910663526267330068345918678992547091170964493625361338765330179149372615269983100052350525748173049733529373810534099175448576318904454163851092863074292518621345178042504908471106641326018500760770995656700109645011202663506420087668042823571107537320346033349800359432391528686346886447366883637447300111750563782405169471258999556852169088285078225334522770169700215735366676026953215209275650093329492405277092759316702564715138481837491119739840121385219967143863475294212190486989597292991390871631705677187690777725496200686824247069892123983315777278215068200354669265321868232591069078322858241471091113896402851954889468498162526946565553704375406819885598250948324600478893421847812314883561991968814759687465564428405439715263646133865618167737431676867003759942388600800786599186217414268900807718900335625315029300139069373312335234344141163083124334499028152618565206201132202107140000801083019898743631978443529553115239208158197565662971189030644368422312803724987415655766011237338921123103877746534561261935789840084174426976075877464690690532853844833557340201606618435284514850361833790526374720248080034253188496071460924510875254786478908184127731618762789921250144471324217523621561129354936048352050719205414744593270094572025181811508825375435109625220603083242796683832177923164884048197569479404687753525083073818834572719355362580873974814111316178919546767232576034098617327085112176059758493750134231532525175464150794684454808620308901599466626147484893027413390642176589965274470441179154669518508232293170902238606382041967794673847119390431787883813322521348926922713739392040207737636537605131497709324512079118224636340714774197874060591964059196441030815503079079858924044186648508695205269363656461365407556929979751970958076283067711977570146506015755852225082069321931499842721902435058155147385370655063348026894663922039156023411432140240896150451219053545223811088937091412933353253255233387257185653951801995343050642604190809950542310189160075262631706804312808382476226298890785362266180314468282016038223488782433553719441623204441053893551340259100746158331969969649432837263170289657487428109260171386494806521221558259936808694824477615358288224078177410627324446711704682776638643210389725944467893696087591413695868259184887303476420312269987878263602652725258718187373314821200985790319275177376528307692657636385450472595504083292873253159825444485079484673715396703107136271751884898805246692931564170694179488422895697160888522550717548192881805792906867864901971868534747148627883973442804208352411440662427189444304435722865072412341966655240660651500299968688765511291895995359605796446811789008943766487576794005971038674284000344358896166716026812785159432843416001726705757030289683805420187307450901505658909616974090630712186409070009761901239406673266108458080223564624138116397368311099876939461040530615120816457747108994434122990863846741714749435054918684160506292503149815250957126011337688119918125868164048420948752889306999463775857587736205064886561737541405897604964454332970432788735241530852195930485199174002807753358040274469209466910832814162747643274360678650672159898637721530297594135493144798201222311179201778136533850261899759996613695600076184613539152548416736709498622500188194687238795111415054619366756539701938510822517875521115089292361197827618318286936814642786929831927370538721429219519607402522616702028764174864444293392908643059542290221870798528918942547593753980380660569631329578640695614905732879333612381925789791676752475750451386649867631571223756511095591435966862859983212534440265770370462192913660112270808882254477808721041701041463522237083424083851917574341443519269822845526504945653185032845584240895010398623359217744966127570667950249799595018080264494494213045824815143237238445153103691620636567068706751193761526428389062192238614836419939777122938737164063363310010196887804562856355346925671989662695842770408895776252011332059703886331835167778320867865607362745152208361245853745289178078633367480099449032867758042953315368746871090614903391319541568698399189557354797833701508499254135841235102455573053313237431379226300130328842360749908297822065931156211418951000190741238423981995659574079701664989560491309833476610404812929593929007572880786348141248194750644574825854105008621229904272775731454639018270436786914319239211215749218104322376984651000434099954016834716641930160014492158885923342994064965555679964345775107553608582718012882297885026812473494197211748133507345008125771876955721736061278316565331561451640939687259109602242283616209869674004507969573122884097934754893197438936792867591533602486076855612513543504174767850450693576443517545424235114357587895188999192439690991511492750190628874733508434384029248608435514924068034736946911372206725384381874283996029278015516200753442280670402342689617383199920048674190124271610968127490111568783717505472372536041702254256506789190300263758609130157794926835916298484987997028942555824394738967221456667673055633785740828727647265267328185778066583707788453305084590899855948584794263298890106228123830317033183539534946815979250868754240584341296623329112721572628799840324986969244503029167454405646029829236188065008127891057608662432472974715952541389271060388603533139811881341705996542095373541163941860347956966582833448277425085262623392464010131724615563406076098002108091359222502730457460878606981805039384270901610932980397542023271418457367171574326214323829411643320706881943965727604899220659350826057094115904394913097026071551108505598824528304222994018754537133224787252442873002495681477445418999501537318245291850882281208762679396243533221782598870064138174386682558191813531372653314715238099779165612254585058969174063436340322196201666847381354775666175137908505542692666189631471994432845811516108677799315952968595023985821825954810755537501016222028118311630944487384810226867591697105678122820479778695243112824519604018964949105409992826186596900559274787310973819814149577481278232377411028466478358258282769575424437282539899084506871176151279392940478977554486180153067363019235885634443025350202025728014208000836485742913990466095496535661138412213740949524808480626144189886443921797306103287974763742605860514852809993048924316030795038595060062373223783815013594698448325832372740586985323482636768644122565348255141573428290153112512560496867473554249131801451259515710018225117769825662910317426280464276892796018343268684505365756320377362376368467042571668557580911564876689856351106310139247141640827469259418334670915361642647363961547088336487993554579337946198051959985440013629327550449304766315283349292761710547261128311902291237700027232485891826132243767066187168751759231003936448730900919709843752659358413288152412181542144675889372622526364827238453804157447768826920080128704170505240569625338044352029684967082619256388779229891976296468502213768585681582746440644943882475336754115217734097762233010463941937795908936702066738664832227515349347157295834091180607072012485336340593346624783790886575394630529455064489478535136539350777735571226871535713368197150305421841679697044786187757780817159452279550077778825547611581051248976469154600767859572484064352760478922246179273926741498033122172026762014930577671087021166542261377270941797510351914293171695733741474375641752019282606594540907582595504263130503691055322918994245579565148856657159541783264964228663397856258680397242132236855019809919445313873803665816110666834969765363156058470148047797236544339091059345773029946398733628591445018354013261329933346831903499834644504903999741183349021731410196298164915646154371991987250749497388725986109679484663648543799979045581510426610983901191370540470108738361157338647334309682517821329227619438993466268414736511062376654895458482693326796608804204581356745184353997523262471063224228110268501253523633559520417591046124749804968661539233706355642181791103151102293156234566941790954169507218164242679668730128442675707980576669798495234949706382175087549529698626921597592600525405519766851721286699745607576269889348537172722380985219694171863051733329733214632273010609327381257881469545082743083505835292201310067786164905047557415145572342721128509811150604687053548640067613244693114539247300024997589933536368724769512111348559368268660805829863268334992229646500518502287106295416769356882921437528830383962054243107775697399110876407753554023608251651018890317579696730965145559441654385717879259638856310529612582456275675328321476149786418405548516100156137894034302965762244610022232040786041693080040350305232862938760096201009074720156149983163941217641999231918583629831786733362732754002121957412503507029562918394691836670621760476411596215187780399200119992339717180237239297015586091440681750397265269249721353249398278591047984537312177907708202364464046085926116612491488754590576884932870355700266717006647558164364902192667429861221570613248611136727184704932713622308692342061105933645955162968382163680024678307633343282958671428498748674036204145506929117337099245101410240732953578453442257697786543449362606654916898983201168269413034297000999368151155560270569535160664920526442525523868311335168620747362771778464468939096501006354362741853230446609777058110909846092276520280528626123622359460514363410803060597819538367122828386286634416170301639506762588810020845825530055169940745749053288857266320665850437854398430486011829912648760248878341604570591563298968600176730050850730325755492885909572792700978675587821166911819038430837297382791577723357255720113253539402229146592056511011662176807266930689025123590570992899616475306573780776940537155967259176089693468673334668712728306999924105837132637404360360513843424970123613110145467798378076156309490652864933788916166301805956329416192658056360030991834684344847196255576744614812284535674008516109933544611780186022716431575872338820598885714888065137007853628198102578764705270515659258681436605268198627230383509025111183154427173057162361124861959869180562717612641688729028241768832282962355726870447993978915093657774631498298130827440978964000456592913852522358597155893081569695422010800818636265813531018555613228946471382958083527322523077400810730596265534392854467064187318938877178336702035576184848411767093685836731066879923006765200654651524604444018392753594855246508466247680369799243152168857855977751426644522714491585534215047868003592671014469306997815807631868972492316551019556430766708539837347542026429407997942707378855097787932622378148695113192660223200212445791081846714529331152618634182283334216183211193469515781529786817579159966301247662311207802343263717815876273810951673253187936268241453834723045201568123898384419712797927542483216774724029875456624309701716236141236422203829855997765493888754752697634491041762404238773337284761269771773427364681016687365932828445845487463111783679818684399333159974297447646921656061365976373638837261555125894354345599103652983158908769166594186875431465889425837554018853639627757568139116101870220065687869743675082617533330568180156924586402115684795062750373889477847660763552680784555253132062450565689681263145892756517270225581263834265949351211107284219404734176024977038970764265965642139741079982643736589067357359844513105307314303729074771095258057347754268271564187674471479088926947192049522613102786919768156474698386219145443190226596741195675037932961588622797024702160837902876636949910334734921242613579008167345762325777972620170019912924326356585098936898854076933371168722103863629715241768931171975508178714687803919625119202996688773799282391091832978217688582128464420586318972791601883625582104720647512082181931937016900374753245340385512349797480843182761512583624400512925026451915193480948124043083011167788350762295007537134105518453696190054746529856156465223094138136283829577337560461912867326972252631693763487010861416182737536595281114214174153074106239839987642621895759011764560857247757392951961667037374049420596079224655432545116079336436570203302526583360238338729780626813445710708340375605543537535066219664407675072875108439386656136933992474887386604494846124108413933846790244679722719705570787963740072462517669462254004577323819042995357202563062984260507849829426968830513412018501133106464494279049191975452369464224721316656896050697405254205090862730044519789521484059094092241193390099219431624704209667919763233050410076250961554975174016932188050023498782944022567895558950422942712928325669591065783751644043518949435464463051991802333138021956317851594132449556134856245680230458829082509488625979588263744803814043244530591434727414466158286115865062872881065270780982208429339841930796756002538612370067284032563162966030748411290619867905035615714462965591980481592243536323917164885773182960249013357740476239717756871864001866485373545674115236340268053995117873872178812856087800668631656513056376112098600379029406526374651270066926019752875166148046788728002949293803020137947096059782973979473266348009174594353563337691282081707469617198970296596746590247706090304727556753335493535300414029274226241627910852080373487794516041505219426004061743001021869154011819768643229838808999594577369948996776563040179347396792643765455899970407967860159502703987691702029493306542357585270359657837634010631476533301592223330707995906268789512585511971884689944864651340604046525442213451754652544112781018700411340222525872187855024302473976790571548338509063292217734198081804254548948900220422760168311306312187416523128014989433724250089309207555676143556728743717862877492100533380086793131035450327891163188068796272749199602649022752636425312680086593499784945073421326340928374455717393734146819851839416279792659076784705916506583776453764795625134330385522831783901588243426474018613761049970978167223751000075199177059373403214097567624768284711777031468573004565534650998338337049095252253630149384159615821952781600619726189930910182437089598424572301465663278278703036847400528619995712619659629189514366753841893682576085562245044186736086906649256699993768232904826477197315689302541352646057657132078559424667603661935489216136960916421587374777037689081549634301334624424657413056491494398961002622525012831734499248032016480832447543429628672274690876630828983032521147260865573655287891843864972526117555370716749305760965246678045165685967071896188333916695070558251122846888082123497352493686482692940063658107468059929933812712167764054412790442819002865547191524729992204520536232344777453330116112802901683647671920609330251325907307710782006417073791534899019744070852459009255345760210752551693361539459613285237644036357526208908215164539308997764383978360153290908876098453169528462489876606787332411079872452641553686899032661711176876320372237023564275105560096218834439650227036017768171138933565513284536097961935177714760510189165100664114533268193744094855864066661189279674650204005914999414155765393878646982617891333930157585399915570327545312547172464121273672123640719217968108085282754419938509352003878701783628735948818283193544213659218626889828694977277758906345947287449882616504359874243209366431011620735402055816176760108422395883138504987363392322149510596204446924142643788952061300607173472660341294534883645330969241743247051035906226588929883180642627525239228699785668672983009394599841763486375108261707716656096762906921102058185281599662755013171583777742775115492978201888925963240481313737610577318346535492333886706842646727089604849295049387514565235402625653804144906143563856285857225756853279843563202984039168957193762402017107272988190790918764639550808189283561840271411272131754941428110075573937496727125990885385431139278140004618282470994585179136836816689146840637108271361388822323357879658947262631720661268062107276163167609193135912293151717024881882450796821713941652561510599720559706154464960160849898236688699722723094250899804615285668613184414751485447109124662482587137135204468961247189775833300516918459659853221006174731793738166254338965104539761144141719044050056162371281462937569138735523005880365276737069705194894938497588207387701763746559749730645166432753934305930210445265245160107266954371931891761036228025307206468552776094366845793677862612664121351386070041184274785143039992157811288783924015708664885109834095760511202968047510781240196438363918933804822598615979870050122117323519061788770522940912982090823377305202019558268162328519148986723575493472461037454349735535513455092808616387807129372831432422706603278630237564918036106300379509252504259436140839397135653770017990243864878624787745456840346874673778174849720253473116028643379256126135412680366779576209388882026275840378058913644390301416607557786618179734247577854171620770831042036697392619309032915130779840310499007499302893212112440883342855685865913350130556678015618963117131026543291413881057129091385709028215891845563827607753882383194416922609757261518200508578536898417695259361608903223750859207163724942108467286541013058395926204745539011501460518863930629089097228443879835376523183658927295704637552508026825266023145357256878706139030249244066026289162913834950305084821305667328877979924006042790896633086862770670412999075123797884048349608166581300376628894324534268429548764870297195679149165108132122998168790702814125539275731944432825778490227878278661746939236076418671403900258089073913130867436336762514496012593095348105967458706244001480062985567223991139248533504634587137510780543720890606408127151659632828226639107634419938289066800010071732175547862545802745070853196582511734581129975235129258601910750449717689932326590929602183052259048354078829953551722564732322852991592742223247271786635121529800215842696585918709215443795354414817896120193244305405234441149165634405141726105440893040215840083679152161699834056309513192940887308648041137826321323546592520542462340008867737084847998499493646401102756230369818649553669804137591556958984766977729455956963424974285997404982144976012798497624272373383291855278020697457881676136066554784953188647932552198894198620803709225266114842371425781118324823843559648766302989677375842185558108885737503770128772482245020283300770566154135281109493785869802468186302122005244362656690166349951643081916164029463129930130682356286648913333731319068676748955093623711190711163703946035671621229732127160673028043099677765032073236923803469360042783292709265149746158712019648262410627116897209091399599775841395354378440684640172595635878515753609905982420819150475837063302867832501917198505734463888804502035748086450668871774362589562695929794872521396945473843845830302810634843280792358505040708405927527618975571968040043734596141794118013938878324676469993432755231424172274319981663096118760826250036001707973719277412019738073761985985362624545267617016899175339761813262212936499120365391155511455277764443289873826763299621423208380507406202862058537062439986888733586805989939808970613955909546847915449069544102410603383267503110829877714907111253326223741156339663897195855672545264391011876007197813197722676074896523024616037518283400737210894853937767260822771042504424988997111931002184894340052862523365297294021340824611344941526882858995705111653760656640742521492816069093870081735933835616659733299733128419374327601210993333268905129829102089770702191549566006155584803105309506071329930764119466399775854801653266898971187545283458614133177226757797454813141646732605186111877072711324037708032524370729547834727722912604937951230646338582013156642385009547187780627071892935538815558197536037657555161913102162372983502252214018639587852404986766878903776456304976518395469769325279704813320526401672454578255195600642126544857795898194123623137788787397644180743406147222816750299308491369837729126637578721787523427467054198769428686257791002042092677145378320345064392165673468248319130108806933307446118871901103867538377323783826772685660973536377806215713326440629674238174097155015078203528578886471546848956883956064993834854388894173411991971455215398421827767913158718831391935425135595073048324540596579221468066663929827197825209907947960864911213683447416656831671124139897198396330366812525429893032196025571082767151981286422526864906424406436836863637581604506326478647667207307491920713887847814023261607894813661136842617775308729290588397839863205011522654391030132927002895458913905609432776378617804136564624188168683125286121690942772020224054588286670031166237244288501300599962362648961480052487469296223079608617042502873131889795463884397564979008278960778597725177269615793692577177409074977362714141186559653538930735143572078682858093752327258326098005560167652482180126753401606293832371818176694119576893992409623020148506495829966928965694842706022077044243332694088104657042378526990683617832278041638656658221124810478750248050589832262134128628250017225404131896492176744903104851379077374360002456815596343962508839164261171059595517574982506366432074498940678342159754342637182409730122912527807353305729898702916233879081193154369562129221168923582147188420539449606924372572155913477126923690198534145483438669796591072800061109381332380043260450420678278555699536509785436224072112721045075732571428189770153503525107652702545850420795850652888713999664313604891762522714399327469765839583084726557205434461560873785225914344787413187020848148353949404679759147506112933418015736141671382097476863409023973891592596845067164089019326151076572897188323289458962455369505179489792274388586085524181532592086030946798107821346030978485320248110827962768163106801285251011961588823641354727892283738350853496647451521572490728684114347172268120094504554725845862280674579358925909992660149274400433671122732029235728350436283522401444029791236979729093060271403674657483956114002469470793010759166783823920421012240177834639731014864834339531140461324141255859058068752859687441558845830037179911976467021756510688675387033700500814044281839717541702438470019856248233527724928416015081255647063092279743920206772677290226601315489012237903131060235783445684713688368899429435663278692128613579719748450660034261433469798811838868125382474275944235465027272597814833475530824799877226777339974086274220276180979836456335928042757321608280160157430180900049206417238699621912889418649522010077204526714524604971233515811130431551352675941145093876935847585884289146225845587086606664257304576937621980548432304091874569749171034505391737190561719923710660455064290018319350468618153089308310888681538286306918822402543219146316220439013438874821190453868015290939018922478725818827947918070350877497000781976353018884386534561804080637988738927967847842797977434099855654788153118370662194878081777165730657872487005245582722226617386544149236514045312677310149819298362264741530632176002974632046488740182819526814985440121175617030660423965154548733507219395435208742608179094042168640555693131383330985654850686558949528192973528147056614531362561467664565853164949617940990797459812950832631739496671806867737242274628073676597921963969170505921805552427408660383411700438084235273433095314422593864478562388759994957774768476053356526571710775156565991094594062663627682117450112570189315059712842263015998488636282832236642344527231861627047711141272401654214468713485609173828104197067118818461539302692079291454081653454495542143632059919550081113984039032975310743874670772852538270665202267006496780457109735977583595609475512755559002325499457190375161177911784489125050949460225311079871223891160892793400254917805397407439122957148462883059626307097246817778476540293847173990272728959520831854390803499529294315503313711100395533484162245041654918248042802826502919254225230186078383417591932680967199775473753131482001333004301902149387618328500418460824385312597255677536667483728972098903397976008446007252674548354577844229725121903571266106990316802973246069509625069143351932939341098823689257358309438208453229064289222616421590487437568875027223073528462704099352986429155050424982645959970536739068493045848177001714094732061153558965124635702578781589229589816416544620820432302940367143185966133910915478357938756542892623295438720751469212116087358885918032202587476468196761899036674288816217966796093145494080754818796593141100565397598646071582945097694412262051558425197533907023811708658550881082011439936192377017862692166145095260690031788985543912991186144017049571873271526566613256295913876781813040288126563213895713069300673278681318728016243556417458257751532013990240054480810834251620547725315432082432661872021008283556953786290848245131326167555966988856986373177676734168064804259339492135795862526568484157040771260981536412024732355841443992831616797604761605519319798352738425915453601600850938523976989560631531505798666849540422219762403898233864087204643024925909592908052468669354650907819364235988700291534884707835111862425730572753199806522025498441687067868445289265526473167126082596237958373199176036645323345469963463131971331066073136968393679790130557871793802407296727472408732710617640495240868543935542787879208234038803362891394042178736072899019067265224274249082781113226278989166753582013112972414050902241206402890315400756053464213739643995096856584803488475371045875320582270788966587897110387717729419183936759626937308807371705977381178634200002445860994144094330389634572049100148333425851244549275410699852360379502172915792374281747696063870798608411517291466585799839880205060092093348776502125788991750408785475278077096640163338056241204361830554944912264838720064752096727623202359841430881217057836241694154226399211321087910078017916306224221958663773621353518767167895640865609454887394337142130900695666829544662231673724121867124747536149195068639962922972890010704254231088761104572504539288983051780744300152214832812879009979369009857138375866031624540674743839959381139882230750355147842434875214394564822870720173448309127466547471478567585405247995495982854079633927197466409299460110597391216444771937305298371563695654608664221370321733531350082621791789537011368546186221685484249366042854694362586920764109530342618521828038853976895542695719355991293171722034989496391956207374795552023337351871939410241178007436079435835712148908634766930840263065993850509410348346404971238656674879182391206784143570300752533929077293422266075904290684761088231401254030331681050865022142244356375781495724398922490045269195990329129828593296005110393318737783412208080554989705570198929580368422600446651116790436875764689436749110609938289119435182612896940907137334936572502139958257239212171895248369438871790068725402407024811449188570433112488840407565808734279096701303433993888195941448571015198324926528281955838388381624641913636034517668691432463593496867937781468759339098164795659303880222988350726833605904534878576032911216317703210851351070546409355178603147083232275085109348497081069524198779851725860194901666661178268095131842595516645618188839546635330460963168239535973134165997355349649454975473623051318650557832091873849093371467227870515252393385495672793552466919465042878000753885085338266830815731447148848106632922265980009002759256082627462335713289202232656537361836546089469795899577666057833506221697990698096132968627892073437012650835778031995691072094893658038630053999476404058515298745334249262460159451585370877932937215375327565338358172932085388558189912916372981116431809359211996502136761177479098177815748905334727419273540657338471567029011567866578183303726281346363461500264369936447068759226308731981897684625085787092608156219894388842283038978865103592733430731235192899008194793083217413063202182652183089565306602730806263520188028770721751093125776118567087927105938060205508169160993014661501428215796237668079169653016266052324094729622996758082243501212761474269349391140230237988884807599357002639824110504263372922946417827073824655289437076449263506811353315506800406851903044498370777807852983861073427764538739393541299488813812969563408057848557807268386671803005247155909057215036865427105608590651459322402252018788835756960653398642985926229474252345933459405436120165791776483149492295910312357925802361206643806646467149891713957928769253568475198061706756737702666248506429983738921284769983041072015947924400032250725843274361230885605879150411938720222488137954636383810732415075646701531163126348251612391567455990077067075844416381887536898306556986509450094635282395079097192301658174000240891527691541698907389745911953322602880574021926889716132260778448995968024034217629964367477359031251542587183854308263314643529764041525765360568356706066691126936377335677623250518575039926125549727918722442212954084510972849915809391950512403441976369342985304362242185551726896264563323564366979249631642873215149184900751321755554862350083009506285907522824937672113575107035584807293961791457784288738661337935371406859588436424487845994746588926352458767941492295506115367577176705592536636228166149565091587909681597627358659266091750445023929378967726419471334459012038262969009850708302724577114073155352783093124511805640208367490724922492392230915594107000486913841048204366578609359187496399294280164362991770903220355582768156019565017088146961852152199753626057117580871588730106381309882475018895317251543218613628889746945942777723544466950185760311261540360156206434112856953359607740812440566419435666854058872218214473739147441591517112387443688227930052280208615657180533529833757478089788550165970225911406815108982644063683275602309972531409924043470363638750120601828680366256716154380800056758215178480596802035622430127318123950903684833222795768322042356018364519374904446789007351138763309416960035998145155439133263508890559235977764914851739229034084519858776273700951601393968130752759048091382628133064678002512646567008086969300520399490175999946841013558762761350653325599445600104888522821907181004660286209384078911522110280664682432563982728909635378771113612418104629469196064848837152705265631761589291206077875971858272870465785014584664676203518892487016363846775078883454416468380560194802417124566932733287616581477507070630877511035224340033095657240874971503566841116271465786759240427098077474891990209884735223241791269527873346724014364094826408928109231717739231746009901693826189622992358424779135413661029799592129937411800630729338463723997704437977079737466096303552460179376785364269668948857462714534771219253015299109142897842473333815649146232659693184099678774050639834424150469271373588624144435828392865891378193387047865531482040601897261951838911308297676129766554469660002877856402856286353291782793659514891336487753237582679597534746703724266723733300258000942253885652107705802221730857799160290392460255189660540104237730701774561840701763508218391831107680171875575985374736868963061305974934400855629624542334340063478704024938706760736989869912285424223289572447786506914623243143305674851319454719590957441564629600846340051741965979416826184187558455453786717465223816525498277797944699134400673575787245881466992047943272507986034619551900479913768244025111066923427055561415333701244968638533392114291759205326305484109181810835278381443287193877889832801903040200763400290830998704359264576372697860073196213827592579392359684531273088875877384177207985480827725897704148796879259910090896822894840660123878391119422445122592070205516493553700252295591728517896746130339529104300033044566534999829160343817242037176601825543648199200923039207670396136449910269396270859147133564144791103909205451133914097864992474926713544467508013168753789965574478766942964370900571653933136890355884102478970802861971437843571525022893953672003882289582554002739533141742354126041558035445166718693938314818588309349442855445262339347786778686652808975252739104734884672886976661847350098180779273992660137334667775807681668979671052309178678078902972637778943305004219656023983066769401526689832324420352934487042041180074106500536883993993820717408925356161920276200656226062909442274866213579065125677338434843128797683355643602216807770076274969345675649720305226207336266378763015420046133969726949234204936475032468288818337944685654157022172043796593166647765133577326529067907204153735177399498132519723561481808615243955689031971782417980168978850898207890957625712918237685165845869321802744797873992919014633016251509110902812636698423238255868239053474865873425551142937707493768008570513154125842210844120885995887938796480863182023483496990311058008049770393013972556912235250685869617405012375547287561814022936248340677630144316978444655545978718098939616239121522464896511167663615151032700699885633382377947956357745041652729801789450230473100814278827076192542378759620810116642894272403634961986774228158905537436381089030515748855876832520727724097599829661080762225307461359697279973968031475783617256359811949314593908191595596241636285433889964673257419869127456164529829478674029329536136770955523762608754579443821216671158286855749181199761475416390779993500468785818013661584846885100542218833917077603174929407776133068226411999945428566580692684308151623524057114600200551424788870230164475744016991502335499006081895449984148059050712677447718330912115864517562839125791481365742279316406966897036330198174021649979588265471449624981513179690721459680818315159381553500935463573092954249367230465712092711306588590070955006898244320341643113598882351009972969636871992546423660045855244293092265394817423238117438717922136702422152297198051169855880192301362652051637047463447649382767917539876955209294393081782450239332296266621876352458895005580256046615767549030254840943513893566268019737789269675395343196789869201280067506748745449976722906696155210071497155613542538703474401034610731760038838294001603155083209296963730608062070148820488707421873218645571194571473670259398149016954300271011545827738979430981759650790033532745902244765988599867410454257426519940391000086108860893392880855892042965496591322123616546394013379852778376631847786503340827216723496998807349339995034009241989426623387138545406284428973297241151500582676572530032235631538653840912106117133538278703049783852363549076139442654638060499626179803101125467411400119060476586373565314734298842397729326269306234784481216733799103392590242397808470344441062179232710244699772318063475323536949209243913465311285226669456897754568621280130880425272442133944886066394269499615809923061307053217871040584073831343055960237278340263069694606905790442046963035229780281649814562021245741942230042784947586798714554786860052957912477433496776888510196154852715075788238011081472794567325640785683675834004683359494246587917872463704654512337393768433022827792139251039529359117972267425881452588707919573400079296721149024604283681258040214840949082674706164689897881462322417476283175661362211858890473983809182947601994792489499433095024441339926374510534021468153544856076617946360000424393491452085056143048520115245621466272324391287235380840921047564541043805645390952513411908998174865630271604194127771999285592812890607340703940623908906997473925193408602275037171360823616017568061008673572697316464948145360290631591864692939688213396269461061976267012915607693884055760922665814047448283047194940339980777715429522111176621655537207550741545365868895761626403155854508124612121455559292374221977522085348970635907605236793695238464808077177753667655378782265708632790157421911881019627506682324389292326900875372731349106698937713116113236476289099446516431612640326377486666729067092794161795942538558437556115890591700573016348112576198657009389478879442577311812186977721268366870227586526651180973224626810131582471776649810956413437593889863394055196781860154232466140491181648522793050864906290906899519752629216321420643448058442585590201792950333262643119484786539976141756343800247608028101756522113294217807872220755277109751245055985843475474754130041884470292220284736925739417495462462991127050602896047959711422467328812252621016673670584300460274367632765396080153512869223742488886010385365852639227068550006163446664257971345166824754150846775600592603097586746239248041173018307066325861912540704291644034198322691080620446010222586654198772852437749900523192672414744016356068488979419936965608212415001704401250282484537419099937756920841788243802111497980504446074438772993750790974400308749447358978301278001852705078391256282747671786991720834461333506203515348951401953949570747664673950177594837748487022920144985101535566911180843321381269703830641231948149232565704496476691412318907215837090297638476892846777155691535621969046128681788287046738292324851373794989062924592477694653457130212301731389317243855231842776323089832125444577975249278373687981875528879887673483492096432279732892870646709266775944856170232536124616274177593645914930101782616480999682179522258879325532154998104672633111530711362534169346619011246709996045350080735279542346224158842328833116261528261631925819216622755205556983832600490539108395820742728071834059014662004478819439360165053795555722443891803763781429910846933735010649589305583044402213152016256549282155222405112895240100434177693513989863685980113281139764807634655927289486509890886599567718292897892417326149445954646277162208359980002954673680373701307985072056921636869491987497046232917688674858278481661447452002568212489172088883313287937506722880526955632369302624762185363440210670629258628244539661405018207387497373964699803135634359758846832330787315851077865991736992486385953792547586634048599440142025007505181730327076198757464650104945616637510324604784625471797118583952412337468677069041999874354859068694912571439787876412973131956485179904394692102451730749790876712278524713729771969359758344178819669935414150164164789793267560131653454515163879561183752111851646974082243940841568568361789865887112274976562455102724639339225912067029116024633008544161105328236204425850906031760623206536781813709181332787890798900518053448256740409653420731888190932831317452656882622131692116323963830009753119381053493670056959851946533398863073243751228052222668602389951158021236293957807586258731054830391769114629580799104197839518239961325718462595320830471359667465544175308662148131765727293324878952560620302947586038317783110435100608265512618332064050152806444767648840886568602023580617564720094140548276509689332313489228285393825661843217631806711607982950356473243025031647848968119997107362486847110696722047158070239699152211805439690577238087793912758453886006707957060827319441346525759079589915257055958987568603017737390406919999294325353098605477674310142175285364097696424209471915589496041725693360806293792092647699437807817651643411646493525494767352833104354925800011006537293657256073570707103181743684224334350052116565926943124287249344151174328394293589414319496267319509869560346726082532025412130017202818481951580286997758980957953790768360699124085288953356846116010179569219755212252184408658549637357211507923909275369022634677161253123133941384277057674851858173511410314134874915326287243982011904960611523226524545709010147045479904783957305824779289804836387564549926866457270836778227578394667104268788823128752431151300100846666872190788351091533925046052755105118980153192030622148830694941931113491016549609973025424718913762653625101077808967002637072176371570312113510496192719683472988861033698764569728612088601944197774296591687096717875705706162438090365956688584926563834006996336060351633995321100198273661134709817205307711019470590502189199226299280004080683598813331820907242396910030930633077804377427747133744940148519687817297579507453768445342105585251492776660608301442523523514475424291618703344032385704568356192529537955432029202347407343756114605414361853082093537556950659554667400765649915585023869264967777674490570005885211510721873937620057806119995397779061532427666357257240798102263042567547982026162860787826064309697861971128997915030654702480655221548897963567796250283285557792908258800784099382986791109722718971973247275317635385204115211040615900064371731336743258856817080132033343602847845491131614982143577661296949785498412091346609396851206475711188990654480938227064612171547460308072776786459872559866458926017113694786949327434514588952761890256841660589216727264445259441731229927269063839670074200992154029201311331878663501918009904585595384671882334352921418599518292893547574281989250871568677625149537648844496907470342021497031232258801362772051264170558346123572656697441999380384235821422093245523031635238402108529412580546740226245482558767779524183118251643095425481802291811696284128380729767122457909908092246307688366315535930699961486678195537551166583691464272566347159374486183097565941118143533140682585252434660385320138046526021820207405691520617962335466492549945734217659414642135715689041958636287259809872281240860244599137383781182179780475666661572288077623725495854090863346434054601746300252494951768691016054553067860125150057200373220339781898614035389154392691328412923130942387387541624186661390416104495745608056382098495055758224825733763644752517663637477894406004339548304541417067011755900990610423345357045286273776495511855139702019239974236245966305269972193696189324430237619238484500532916428241792747618990219491680571276190791708942234443449676804274084760095514941725671671619793812639241646701220970949902063814497352558147553425721042864223671499700673078250341233242558370264792957159995641412703114317634440253922038727439785731269227405360644118699332651474544886727148276136719625752974718085782341892857742282960212727710663044082770638988032878027070474064432005749158644028971312247495669498461826829630361150096557708867516346985494820978410809037773056622876246538646009821141186907135749961077836413622608100391509773277257678382136860468844984714553254619815304676931554508905494771696999373314983876524422705474255012614597897157205561339126477101557599691881990185009627259631489687831862838026422960716041278726571169686690094748896058629083592886373699144589047131562608331397615321766506320878479510899059066642100358757543160191384586668329870298714826095342549079141500086545490678745795349586667682665447341313768433257955658217440640566134144897311644278437551240200267287077148669506046133762413172220614036654828030156666554260791532105283319229478827146465794574214694553114971201603897794662909443091179442032923941356435027718015822433643498032438496772443971039634361331888460484611758100602292315399236582432585060030493516496220069190028263049910382552549288106252797678178700171965191495303916196660704452017246866790488224601360636150144241610676129418367005239531416045512392421444245694274943354464988366389908381016245932620689447124227488065484292880322819933715244308626512500560894490287133138148250700198184690746968533417456488162839834756737661854129443370017516137821326609567853669785859663519527917864681701050310207355722909450856777331606133888662841728607451217860542057554914159348439251489048303392062700012486844195432899963655411949147566816153655033474867160909343183035337398173941501908329567070559163285456849945871488638298336346943392967938671119489574283517586657792020234013334937955003275484305888006356476079941621603679656566059501744758602500488468386877458251953572387904237532126346155042079928375548023415774618762920200001484442449511266478206422519361783211334570765386791543757123764844808016284651376962357768792926918376316735741975046404986940283385036550832229675117952665692001366033027647076655469731545549034791425349890486862004557224402187157819566116385950199924270421798073616084638333681863941342093327910565601733339149754647312409618578639345139288958548888141623605537986261804036662960270661889091457994044524264863107546395745767668955009835031373603727796771026778861396458182007729425853877517463306303554109234123706655764074572619631711898307754592834124095046193641052747210012606615869577634005800815694648921119511147859928199400489930310786577025122329689797837832819081253894217552324066288740882686635466832789235128709542835464451458950383591657679958059632959417306951642035541268911222365412303693886776658709113665141217081429195760022774165791564605816533908068621474445734232720625144795967515004609183474288596446014978839778696824530564949362911744912987452863370062479483145902633606098655565211134779082464980493028913612369994467990072839551003924315257629439410207659692092055256063686853176809185252974094970232976165734927027814313223634775385412457035357431540935341279608763312437748134408720823821979055904425049894770871549105621938295111251249031795344843828518795295097957810162378146264172421573569615976696273092692190747596022542428194663597728803092437871986823905748980669075509197526541738400549838846800774590641410009426138424334123858867309951749917628496431819104844461025756508486207530030740932185719042317539400776986680432193351889451708065428337166425591007630558960904157209895580373886396281964408336598202263719126690915107169028767302181170997427909250938886205418223780107973806012747780652228309955914917676130283612383111133201552323584508625262721631581599576642285375574002251995502355368549012473497097814518884568504212414052661800549058370058824856665392171116326013927873871388491203524271548760997188686162549468339224743452082025972432548238711138329320927636114853525644061597859361712195738415049090300277854060752965067767200650749742308992912869472600938438895018555804763142186859682119251697097269854441599248607410699092105934324902766441399228059600048673617058028920449769816659662813586919085245359999181359422721437467810044100521731015212328637452622406417494075312816900466263405660686811338689765231661956500927463684653431739027351719952891881630121876849702446054556058009910473070588586842046298477817733862820890119898700343294053546964568567614599340189228640947914158394618736202595143957710747357325953669438117950507836038149301986828393020506506439417870109287322332373121424698609387439777001285084694217304856597711449580859861973591026905287785269995289849465144388935637106640123974766750265927916332459634016696309340884001249709973815344452483765958861963935847965099455303165683717262970053948639930121930154962633849822393288755282462869351857477733636598724796048074761441564113231387542003891560596030398831111090764096448462782954841197302291426355762269498786665938842394474759785967037121792025043100245880329145789718091049121280727190016040144062204503018525356175527021992659864915473192370787665913012448017528088634096081025918226317730422677738739733947480567063948922522053543513952857598196572503403986958760660739940788277226624255791732835881140953285450566672967909715836909544552428891730232889244843721920340985304736737403346843621380248787058734717805621544310397665857341759874773563403708871577357511295042457159545235898730560651866402257162451985570846476903642613111601133450015377280681427594188216915926659752784272689517849893195246517214345671534262359315643118598412881284293700934281677370217456159548456924001206332069249492312153049813520338495846741724687076256442150314916682721626250610702373422059879225744272981864004439631322542108790627572253845763020357239009365318719634023893086865272587662270314345482328336294311057640703064017806399353830661632795905600066362039934305296916808917921961142985724812919153433012796182500494812972908705120288574440343693012214044025279103929658454535373978530563752313651179564126325784720034399984597680504589058615108314262506580628835270291024863955670925454112155908836606719481617985045794464047771831404127258210379242708429124101599863386917797704174969833299875489672865762389062243989707220478828986128073623335303215813462286384350809929349597723308977526372039788429007857103383553676852492315495126373898309988229747090810484573167176138520500856587911110200910639433635067034659384958404167510570072140311865953472262535809432856376185395598060368877897323159874083596468304962797297653780551179814678466448494979503742937148566252777560544945389189915304206608173521131460934643569466218580880019684407335709419585638728132632069946340572141624051424730112030881549056671158285570314815735928374827584772678856805297714304939662341903272765103558807544024229241752439848389485430579649019616820740477684442195276161010904398930882140315770892781073289683441904407433032037651373467522024039146561826973902591995325750934488889179814645562441549369105425391605940223111747913689980263564382621338085595635197710126701195215121328917668137635594270546924919542145280621594644946380513657816091993894272957834896747826860164415282074939739548734661184151676641154234136500994508491623201773268301090513538318566631289596021248878730639375251789423595148628083031384756220338581459011931129097115337758659011858696097135613161103648290595241646563932771616437696488081080686200743183177137651451429682372694464803222616136952706316551497348378660584638170471325912189399115292586998946448268321728046973475931101372600336709135213622082988848843776111636258524574433263241666384682763253637237705866179890452925799414341513634627511584014350997475667457479652448996337484427133574687731156975860039766660632593479698078504739682125371839835213961219468631026609474634561761816918099718797540164108819744287333882579293146352188798837134006774827540420031094567207790580371405870089956561314698742559473769046321026630720231575047827092190152969546386747607927951707874705391123944169324199609095617852301522370613831983809462192100290612141645212663599789501359974708503853093932055647813226365546101257836544806765963456435147197423423180996800777897507992445112151793991805093857530755356606893461643309907789814845298416896412100837413421177106074487998280642705376421190294427704769028729731845075308451808949015593378484772867720522207576143364495520680227932375133241611793119429689782468066861967836705952893516913141535264215815057033291695031201192947619346247792430015601792375658653749674014259829372517176771005445443145595314576162847456986540349279491836242861662204360569592000946077786666967660912633737320408011928075822465809085080484177348532409490213023877804935649016307785618849975507512731986478053479514467474310222786993126667481795612289534334142028233961285127153488526694479470385769148202407609887691683158867957757931663155168222782497445827395653509667282916052899189915678140680467602071212812552644803458965764558918119690401106968716495837388732321441198842825345763134710603431633661023794594192752154856318815143291088085312590361129623958745850305076582319906537092795496510704250050002803152256750529888078104771533547411438839958370427129514413080070745547492608904233727580216980174269682616882343581587929833814848780020147886591191832958496686555938588699500593955805621169278602866120248072828384991748289159484934685086501752951615988377814250790419397313223986746089670025669039621815110803957903594230830931469915953526664529860664186575261049279909542908321258149351996452772067242835756593064976299357400182296194225560478346631360592276739398754495529033848538080630050863927895357190492382654522153258304934668427412916678816293724571209573952139936230544640981099003674067179467847509045982371522339964923723501532452496600281406749758419046750214639415096133378935648736422526271590802665843372319984262900465937712506827144664260339156207119445068744347115419301992869110089386298278587580981144166840118020054375413881525592345195932883339121278066033512375261397062530069241895222459512818686822491646146952583982633747264172340835738435349140094467717301835721793094085294082556392911018950263814844958313892664914793190050010708046149972679956149208254971603572739044249177721765554305391494741538518672322448693503477845974511331434402910601076001470801263198252478270944114555376174485450229053375513501392951445575005509807734685722258390565833905287286494454138465782562474218394245134353038698974607931753987678354769207779247484742831760756602007445045118011327373843363595824694917490677319835114675634804406350571598940920763528748380994942515365940170166392263103144743053537960358907319715378553829593158842327603660459367535887649384398812618603987601377322428733879199497933654932379110163105557783997104560979190271129092662416452406775559113747830644363554856402548127636391838638750679970439546222930570867083375358230389353691337225668978679610552384800652777579329234878053759675736168018594497710787455781565803444818206148947709298186734658343430593504780956968501106496440469998631555772876661360074024518711231890588073579962117417047145645251050434793183674606868960575771679118132270646697018814056199230625549012028346586552123507237221413101846114611754103345841341741375072407038565654198619146215185289756431968114354971735228712797213335011787684119034078560119260346031757872768535251697713482490878308358643287400894947886775875465870091816300784448043726413391230842334839191626580185916951777958439582455227288806857726694651376590255047201268131073514428883862275532211859121926606079192106579395485344900496180471805810417956724887646370471865361395667490747180079831173652904486562312211952324144265097175493835337344271859190710227444720735855924906015748628759907479502463976294237856171907582299907002361370868076145863550556934039767234666205259532284908102274369256076856823173894430052125403735691100225925726173265925482130566371040863194275984153083690252260710872516755551058718125206600394486564094185481646347194237270853121746838860202103995614523086508276811565972022119025849827386067245606529043743459324803930695194635609736292520924329312768807234694578510227418740867187909435505375205656391781054003849476656816919205754460654131747901757799970287019810303890659317823071036284749072707444568324388005646372856282506169359714588255649445658840487995456033130969653929672553562763771653265587744923129590589026851422594745817215600019070706633284199083055627606941848428703304332436301050118740863600953970403539810173093828462190128123723891319184949282077935984734893211214358798051324238770481988827902814796135175489775435435166778951900422208762898784590602263696437876725412998759996576258012107902970365640677061228681142473874786514213662948987433393906548850924249894745003502653567535592458265826477436491656174833234114849026356757270752994525998425720053569688018919778563702172208704164810876188636938007801972167865055070752168093738127843889940993381780204303191786189134733458924917962486007258063348925051629214767931484839059283901820784278618180099279691028990882048721429017944237203683111901958162421552001721198423487600274218616211387106622780664732245320689389385830638704487734246713126237679154363555875595258900088111372014966103340323509061944499690405652708695641478968133826291203142229597950100790928737510505815970354491304734088324760930274829652156473861389799235430117127301818761571281781969803482398154293338189350513070754246188657910887057012315717176380914330985149444096217077397735776786851766685900693715965483725905554238732290436521137717513207789642168091355701878379861877197094383423248481199835342337938816395688576085241070751590116074561477754282975566246415665193764196078111476784633335979986864214948793014211744047183886128132325040709573860306863248870603259380106404267926475947404432615890013845999747300892406323156053058868482796806405263655899116377487065971422181103923671773069956404579456833610037861049474844925057723336331677538084364381585774592875651883336910050875036102972579382292928671606152486465990754278546946343846694488620087216770322029545327893957320443120019905497834688792858738919295214766007894141293723604510314282618957485478039888988757428002449738520947106431361124279098124267238821430118139688851242455686959471643499635747448916071235929335699039490068220889969477759425492146209109513231495443152471977592276120891239194927280328345962730842383996092149380649044059337050843669690496096833562142173876919674643508473137498005832712384109221876436910123209330954383989785077192555949748760614679112532248567487518968393490732061292059121501838465323540202772138623552975727524265847072966436641273696395149764234421199793164193774967381200808750217052953857945235435449507093887928951366953185676224428366399789085133738409919581139535599830050846907043083758336584937223564236809479571866857017073961333817495555743318797483845182283077211341110970414438253180702090928059786921222894084001193093712648288861508446171742094873141507456720852343778629479409124409204998209166822121919373459534605940366296488127401116459359237755687943956206256620179736922556190117451259313318594938894569004995693174007318282329436991872239276220805482931044653019778487151817455108087868601331648897119762168542990642900764773512831836644472638239112177064362083921023912674932141352583241015766329745656943820762113320561804212308311356897433599424380909607598090535837341662054080866335400046521690031604457389456351597713935671176782086929967320033485691006709215508255015045202188801617201818405208417164734330034447147415052812878699919412692388927614531108596183010034999345946089965537319460521962386078544779354515387582947615007103237710171522338204390548726770025446177578802750296780065215277156310563475894517795899570108588294634562126059076799270432776523195383985041842406035465356007369270332550383134353059743725108824343201039094163387773210158776449474624310029180541902045277112207797703445055946513164827184147238236763609637029665649398954642587993432573968383304321133848339759603942061936852209538856628702641074935133232943841221904932488563022361020103351430823563866280240202051706746541060708500036694526298444449257204285398372166335552160503563280621809447157353169183903274552773319979275190442855868471663262049695063305247923678981290510582585778421941858856974058435726298736512882569680837109408445409492235142800145538046551894712472072734306123678635453501503211302991638331580907119732425951188399541615081114482574886454449133119799402810183567462463324762930932577429811436122453862170402874892974785642384092450288758365834624156670679636133892895739158978376872531043438993143561025331886816760306227738776567857457871845158607929315378931209660758529318955373341877229821099496782699781463005901889901692372016274347801781669106258910519476747201715579082032594914369955573384574784793405038272724745760077624071849738160019143336828428889378537287680177397515185160075450628099510439405623258259716125504063170126892460623496950376622364899802761234731111835460825677400791688004936528207416461140694952074453291150970164423700854818888952899123102950037662476436837217174802591665949047869468483299360904232232635064500335040231365473716544958969071831856530260755475182481935033898136400280436431073485025318104861425680759363362621237098245722867218921202254541807792468910601961889840513695125828207902655250061169365325354430996331445335132496633369116077493715960080089159426372947947555948109481290280389615692289532475184077095116096116177830454750610163108644629647499012142685447637960129692231366568230553947979321262573107150811650597785388529940695268271803092349890543172961972234175849814951656623943696251077395687977371160013572291554794203752605464457245981835748113160020364411373812800897750630018122555622985820828864131163708247899415338367335630584386705941542891348924799302464499715966022736270586984990215103200786544608218339606502905864735831932437849983817861208680513113109585056498953402234596346986169416943819449381368186005175604715029070235346929232034541066830467330207987925559019845022610523245969393861296020658295848468582535086597291615520194952951649173681534886273185084923810875055132992905657877429993619165249417557411531908285341632367968837761421671337312112675529561576400064387639433992523081227761774259974161510548663056567709589474799516454728545191128183083581759981083991934942504537498421909336463548826898760863912926667193843774460138758901352970644560867012568432961153582109506698435969273379035892455206517607285299895716793216645704289798774309513960565929728028576675695303247858975007355329004387275310197282891678928676419736379655727049905980342916272819344615666944248196957631880040019573189648363744999732459383578329240984187547746898795376839020183371439931365637171291510534765598406926377852804349805319776895164410737727929242688605309866388376381767859227303092571159609243105331939337268984956561023492504764657638043830853205624666752323296314835790043887375903351623192907247842776302781010222543961952591805927899147078848686603677917925558921983015810720634532547279219219383423056435722371557257854783938859642194200409926599960321365934373522920159660212238680960451135627597046170976293477951310146417254973945419751039532732878352512389331761579385252917864244115842078679976358469548278075265202193189214916446180283695757297734181039490125777017381027484041324033812529832182747970591572543280438366242789070385839798428376028505629472183321416690420835907453781914395797984406950433496589757777373596921259002147787584609975135173708706130783985236683558069420328705665047852653993704230942971349416474034111056440598956360388757478606603181577571114485996436485031799287749433827380627202127419213624886941984120757126925774484946124703190834779698231319562070740197405903237312017161037715804872416066097926317154026480545830274255352455899601041400389248382238449390066678904898676797835205167603307623176985399829597465458786964978430207482766733558574999405591055950390820510216396883428825276335730807037499755277539726101677788799079434912526723148360207323215591821930146103761855410252483496569088387339307039813771341333041883419688797585867874295839388744502408528196952866244234185154514597967110136526400754052340220715143922998287563298495794814911295126638351982186740598751334210694307907247973145890857375669632288458853918844660835711028046446511370765378285458390830707652027946195950023251055946423691896877252036909686637025634485845029971228770846765246710162591314380444278445765833267803644279300995280119825796522326399735368858076337687989760271248180367513348528129158956554423530193453160812918742250448264156822140223054313229815118100861016325286302197732729897698277365416502146217045727905519166562000185138935855179816513102081131235867873952693000694172709476910715871127912358144187150591081819164674617332294263343095051150940142249654391585849697492722285386856997868023126360652417239620691172321056913333201079501564258078565302386605648856887328926420892910085348883529472520925065663067430478863413911995983575396769488968739139252578804920558503682369393109966481505697332736422082896147860060173781103175532469872037501213671367769468939376371305984973001832846068432064031526347568320978300593778461437920907805903742668414920821655091535447179299342323967316419190688076106146304288213630422199088628722974298460915453452681112487076816741763971036810528580112811011030919674343493461294769746185366364538293840751015460339244432919086116820478292273057111318302060997041420792513804038876053011700887738962869642477868854548404475754370642474300450584820152905271798905809308206159021710060778977805246651139830971950471972023910888270612151741467733328250385610747811664776675410939238670126819093124166646297322983202048824150706498443992605478976567724663614631932754053330656841832509997895733126788787816823368957047513814110911920365492668778583013532424407031310668696224831159146773198309133922283155919614587340026401369308290615432967354482572682810710879675949957200132870465879284073309634039377014086693136631991054721179175549821329273212292641231404212824085422391200432048576668490790067461254191432639952708638515779353445179908913981173848343780160631891372308188453355629248244207288813752553812548925050329146452916277431705320461663058230869334423839136643475426229407399410358056452359755023931121893148653561013009111965386809535512899621177814874829597428386344366033820039456391069802061370557023216286175620576570207025993239706717724686819297759298899644934755946867501378578152370135313559781454736786941002453978079388287543814726154685256630938400388781449712803698559969144242231886782381022074006630512388652599579387736684457880021004131632595927887090249261825082293909505461742829319317588094618365619294153050993880140215229491026775267133980570355780631747112314762067438474159249518178328288873120145020022639328621557864584453751005979495582359970918859445406492027990947249063241386353445286077149273066101459420282176201155272666615446703853793935721246949485551232981193962186076809361878952546156532014168342434447309440485985694924331950579283550037327233728894374593948863470238922523428364328956302354398255469493193069012475591429430719874538586439775522644693385553914276135417772694466210753435298174438110526958386293352044427495414742162782271034956651465272295646438879122214134268118071101060089422892497960036534807349003286276696551326202240708616593270401757922093101277840801999326769822043965082092627183908755609985122536133937694878243922979825033830506775922457574095210824151231525352097181332674521436985476547957432089549318844983423276751668206215753947585747198066621875824081215937803656256322032408743071940476593855291321725969217789988982257156387676736497531502213192388932085779361722148632159889665428863228229406324193031334917510386338032968230704098491527126616036321886781830599099077990106224150008507875988077485686189220145262655785266488234965581054606860327774169555094349359374324276319914765154091963359170929516846725297344176079832514292350026376648619836478097559025350400599703543734545855268709969097094945260763193972532009212038695734143981510522749762807355013539839900973001119743908516182679863785948150397792622710041357815467696323869787389745273376913057850357560633746853505311142814051846807534738849600127091386642722202789040703680159476228476908699500606459118242997391924821737294407677961545737897795946395136199348434089562611566213601778613499377629652198852875358098766389912941515573556870929325419455963512942394356619497648634795887179366138599925917944953822051351369769032954843716773152555901271367610363976506021813378106958987203035064541654202552873611386200631340500118976888049414281331793016540159021605668534952905595243764881557628423334984746004221446624681191736475822233866115825860991669860471346214843507819376263240204131173054381608249651972721114013693908400277623286558298559339941299530009581698730644029698273181647120887553879338382168138023150250755430638242839637723919380220255638454758043803869308344530791565356881132584144596821579422576004375034522414183847932927793143894184376818252720941345787522858542713305795705344009320770138387442528190101537731004610291020529880361438030146330884711307507878260381589689913172173703444214136374475983795249540407396129646228528623660601681886625200760342624897572641179791740826416482470881802891201461256127859784565440827534356560857415905280617713609482419674541050990722889954380604036391082532160782695714796753969483842471400003868588954883974105189432507412233108556353048271890165696413225735775256562468514308318171651231815646821423941757117263485303451616223426256041503307605713782831127017578523993604637592279977776440070507850116501555357044710690978300713549329383178351200643573378621558785458533813605371734327498020486226544348403688763045819918752152281800883354603386533672416030086458274237534162757739274923046320759853171145692580501589405425296783040401065826609080280825059985856344883028755467850510823512828162259085662302051769050661076935382514127471848020417295630799042938286490662758331792469574757785633920344625849476954887805954983292217158196576295250208603497273470577416109021962369018732187915884270131646334225230806062149586665501890440458222304087888892135390434921002532957193733783998888153038638492844328521299328175671950030825194211445810965158660618478818257670522693711450011210378995541932972052462950902753258467193412361179845440968649941195481327474759836555502769623808208791117937090354795877794084958243822859165381705580690202208463312953281631321467433448073043125584009285947132984216168468393820625983092897306643554613876707547337346306190472306472010153659064572384499901994627821932463483373786991795157061246201973151985147514881563958726516597405659586118327608819908609202661674960399828523051071827468322639886901252017933384286105986093012968487534573728836008397295874689336402869953744178922629209323271311030747365795208314648246037946574794686761111893475974734657877030123347415268802190750310146044822324081604005270221848321222876885862829071840860261149614185993078663024991472615196677823315375266956454978156160620132235542286765326750828575266590269878504481847713162507453378376252748163737405022619435273717633846827940905337625500036088128994190559320719197517272594305039809966708853892755626215627705830269236915458819231670534846510708403893833504094104346220756328847331914711998120426266768916697993423428947651498640062798162574036976538613632022561959710718047549505892068206170005723556188171615905887222196854113792006184171232736547386088667731789468660794098729624161044824460258624828050478875691324490771355707513745396244278221453870395726399177395785946697822801180972672045472899043854481099057529713952900884534528835004684058660156135515456601920258625988191987160949314934337581585756102844937323972504078361072684717479080903773837710785864942685564273825234456743931537113579329381490157273658228094911477181316940148729987027005710543031789270050215010846068617758539652117320184435101712669593953584189835189871931481266902471459093925890283851774932651949978058903549619230208856254615738415268019786623376690887223086159716909938383750049460954294790848513844180005633120785589259221485932722259839522271371063543150823219060473733843636101858061073301822178171500045523652954989418526245809943831985318746134626368334137827059348592051862938003252398585158514576784130362507961192673659431281346975271053976738166507520068071229939320498920317135363447357431944789212768106311761961729366825308463474759492734350447922123120243166172610081728562025462592155334581559992936998477003986144908502575946645745413891615333351004779908683269355352544016787204309999099638763344729711698972965649485464773840629253528320984061149971096726266793622654562353108497980424541598708569580485537187892775648932121460812330451836973397073313300284432545582360069717685840250969882163391627643832813982863054979752160965452711540407830151819220542372602272477287306690667593903371072924844716777938661366657962896152145734653912163853917128225212729702512963022641150161895821862290969643667722601960699121547010249087893664760381531006093680413708248323218541878980727938374288229863250526268137824513997820973788823050517469982881371941810989801498615595159588336718599542346508480197526585935691009866479899849918684577455004905417429955208824387949813182393623979787570275103245585997958984541081323651267941091441455982700743975925243836894279506584207175553966763341601145060608590339101742170646962650294645840562719143770523878110128774157846474361126901163936657598298164238076272473766361266582281617868785290889929541436575691493892040838499908691828275844435929775232345167476403434657689708802748494349543316231549640030126293757117832079463707478905302684454612799483593882840729549211238849892596255726485162413642588298434840433290058942773932652159414333307102406242199597077310573470346394075955207351671765477000957905294259476513985662475417953313696482260533267040361048539832719058712004231888910146096005561970866118821169471103478382239068215937123304300950581765499420832588111906165032933716297456946561849579013645147767020026172068958336433396051019069825780216179454242013868443660799512342504100707063485448542638426456804054298061284788649975815117950523314496096359622577996242760019057345736401196232733757418438537684331590845753108579721460182285003082365730861515290157341624650703029465618511238346760900642761155481118274509716551988983453771230363030451269318172199705836892755256659579026265024996495578625334160144404229041263019020711748352163799561906506160821662595085057840809909869733744196073680751116632084147452688434704121066666663846855472618769201291470951537237571595423151502828993705503039677869732646769508425910682007342801845312601265962115741658953103995160707104400617865230204946595400524268104897424036141796025323591792778664528553265914693588654262708588738773068982847757673513723984912732447377296667514841976702967234280016780523093213239668548861603315455872582317329471014227344429057801498385980030722426544103038586159939251225537808236741654388807989686534177808335336924874332766951352685698029990841833923573378087097620911821674335275389349749079190745338392382573387444445139179344212809608094694467763386657507897438234731201987778352369754862526417937610931476535744763697810917946319730974705501336531192713486363516403257284482218239192814299235856779080469971343278204732296299486904104625990003048733176098361301726628539295828734145584344534837895862148040041824976778310039400864071253300288461210031603882807022457750880265429036398233924347104155189427199688402045477797638961501177272732476285545061959181907244958179189521589144724853959025677606273285247776001089953118553649128211638083247295516289535845624651928802735040924850258049598579183433161688119399815216577817709856515940427622319001028812421873483565317781129433502216880301334535933771701654827249026522139176815687648578763304347179252361255671958182507520981791797705423172398412240733244945506846109031047408490957613761722054009053808270777281751944551606355666447882325450078074900795084211269015760727571435211713544009598027410418373918924735104055781740658147056577893404348210991531693180046333370156419531743352267017392121475068420162866471701593128989380095325800362223797270704346077444453101281510947367890176638274508191234532740003327403734255629625631156069834321303389924004866152624803385918906681361674082145341773519497810870931341750754566556527960989450036479864207045332089966134643857825352177141594382454089958661504611398981580997120886991749692020909711988200815391128220760362677305823265084565869432957359606234654392516427916244046806123026876298395580122011193462806754925610449692440271159878695423588039561875576128314561698073970083367742921577872310037122596473120359620378928235515581529683863779520868467892746041878684440272603097919492808068216268950507040993270918027736032819984578850582920352714759529418428792211078047335170972436962560240762980099330923326534830328039748226407029989758437625501525639503371064735762198043965564157121941017445319245824306703890998196924499948194636832377986278648100978522854623738982381496898480731169653928814414786200366895361580711117051089274834625757196126638930162892936289326662597304874383028700790652889373498353803633319561742535085752846664896198624745019989071695073566695024150653679186792146938108159414039618213996878753840705530509125748030710506350605575536396461408049618658115587226053866192843049265393786893514205511222865830669145248988318355069246076317750027017367107657833036752173357491954592780888368510273406713165666297818790474763887542051926378359783827416841300019076829726218273096230758679342400822058773422276762514329188296346853483008430438770693594516528231522741624576253020752026645659977419720581253661299565606276832938940890237900982845388334337143741932460522875143185203379656680874499753209520640076069995725565671529520648230222894517528861346374492537550849759515394888858402030905654716851952401546244201618457750162400742103282311051618332793591545575627970947983783270690421254260219911717683101363125360196902893310220002371410504287647571650848457903141944302050358517797133626882671074929480498207518937252957741941322956429133263842839180317711058049730245178861161405899399631448878139532837323472002135013002460037117428519366351416081673750956639576519132338262241842754794319802239271312278251893111391159466930481870849265038752145585805475308055044789652534235400279506208264196000143138288670761965355018017466769888417124036250611152158995929850838177063401004856629122048960857064617411862449512909171826525808105774612149240821918045125685393319965660754195065177853630963661166684195627826600665215386280100688620251557681088733076236609653730363634982841384885799560914888659438149981176098385744492669790116849783348017958096405744119473977514240148649385014494805258918088560531957634112754563687168726389823146711759663886753099318138626615265022374451076847436035468002963686577289154031065241640276173496036439809933185037445363383723014010396126604996056676643154588513015826261547826148712467689127319798449879707376438817934360518138571220693058733334122111363897322402571657283175097127911823083478589743644287065486411951359581043445405517591916895263148213776283904428998398329447635387429632626065952987946160129755988895417879810131973618784813893410052087686020777409243513799181931896659238157046615266584845387470670654629782395047584386741613656897303408957665693266640593721965412334836532680072525405255281132794897142172254176983432632210161619524469287140781556393170370146068371444677267705824505180724989022839424155056261593967750268572078456737396174095102122245558103133300033407343019278155566925880961239529946115864960843858832795667619520612428357837346473234181302450284561876681211699835030911116382670449880556861232254867828147726652170598805096021926676379901858630059553886853285196981611419623592303316053218625019178728492895471291968367774718231327081042299336629946184172563529302422486292576524097432831026771723743099843298072520078393953435720880005093363799839881755179426835079609626091833460357223046479728780934923483158615445466715237408099259699495214043011682685257732626246946187967055733301129547831528208128948531540023844585797471712121663172234430970983706543526470535951261288472607661223776394465139642555359347856905863282073575193531349235794732821226043827758325393304004039761251066167421980898384150245489758269486431942528421983729051336880046349194237336210596135749049626407740259549801161498386540288793968562599087455627670804152615017879204383155363407620958285822947389698944359762137494033910953167875974735154503308778630007372908612858648789666579410627908931950116185914204847167323562629845828805296607200701670922338729027558979061088735448284096047992628008113891459247188814673571544251263091339274791777440951156948952772879682775513196207273324187001330929994075401443918249897526937685560467818892647767762396575340939930818400117668139672150142576483257687696006909321483180171556208411888040313951594360347648326531992576042108796941273885885147111434953961164172719098736161082254252712922448392395134627216666137056791216761567030987453952271707741139701383151536611360864808939057198956998232661558651811746445240954180341420380717732646296526296421174241818369534520804002743929582892763338100482086515857735093887058620122269014177937520045804052332841614965098302364774225555134929493722615570561649634052660438244220607286353430591351314500346389100103122694884704435941889254603035608903846083262659964755436054029798567323472093340600468453121755338040948603811468981750957664375762745249441979084409934024614547426849814681482588829250631046290617993941279334609443671642485944258088567887272577200099772355440680039326052666451023592221460417087932246632337774198018081983574585506439501190606563637147068050726603261934017859292688244355611736710541353176460940139195819745772020036654258641850464735461943046272622306239296173707083453132326940599563385427117490863302385672264510993664243304705242103409315392852371082095970340403795913656324955601228940823081925198382692566554878675665209953458266854089902097402498560307247369469552259869563744648255839596512862972675443353664063664889756556835778023274729375799562251818983956730388594334133058355133499441888301871980074855027745157503389695325744164925954884973869807623325060033521753656235118967207116004972936118574061523716403368998300971315094860561024538937214170368165289744232469793696824905840189258297755535009486285538513634355295773079252483346778907193121233603973479446671697256878677681098144443415673467924195736507981861660689609756953840742888594119040524302366635546698000072713783893988599388407093096146464451631290054055174613581341053750157905612566475975309314097828669988563426757349581368880747118304056793669280088756261709453507989158498510397327911387195553329444759420753414876871787838091654323766570994918440698761502083278962024618037206115558502059436319641120473600481524832730846401887142663303252809933690927664083170900792983982053802451904340080190584235840064854066888126708741024965152022110259558037383402337539671365309323375814574245967051917893950350275022683484395636919856306739962501360114144607306664796507888836014703902745981476427701739195637419337505047302338938517426560468148267107299556282931602917799746708492897805777631603022395976696254265512228291293568517026889463492233675133777286315761454690963624409328712584817983320167061211207106514760320962452716471897883185838119818650823295720007041708240946339915596704005033312405589079643257412312250714858631207232186227076739391225709972182966706351402649021108117182676769478920246005850195754571923343044419946766241535887824189297374046331311530463700843257731078502491645379803543990583526097015731388065335048214830313070341916877924771587639809128768260627188625129956368747108139763670940142130452242191062878868767665018170237902422680503391056145702489937511340396933122131271090548473639458238073949891789313806052068243799717039165763031775986467732902631521564459482333281057191483786664422699878688300326320125970436128383099093103443313901623815177416769883668932968032430670747803244170974364563392460648896429061563429355568099555826961603475823236763576579690921374967745620633427337103117330809104340148260317234715295449687881130804088669577317585462302378887164322066439182136931999125809049480450005148365975650458885711440562146828621063818897948059766534432932449673938041102774595882245098218615354110644967640929166312906814323211201876569212389622722753033778026111072193394263847191745819709392991397544392765773084607954890759475760785086066148001172256532026728598588795213187990923779836169860561684596385319323635621676217929389525921107294609583619799011408675492114168895458616000343711260161755537558794769881730773495957752305657313384774109619494727529065251811778292049639245604219747027912376858903861685474899691100241730216154461207615403180893836548831886235081174907585610371124740167134979540167930645488165813998052015606242771767493365746050823559676988350997278295048894327565612727532780330492238294347396439243529520686079999390163234989300388807367676782226959468090372829159706569788416300271461395520079164956987884422162156451624514040382482626664076045182465076107380182902578044144306204989105104478921598338219052250569333150996764177606660271889755393619216034795697789587122896177356376561015599245166374306101022443636324683309989324379649916266753399641456038888870896090831375903679967484384359032373971637080422242385259054767306095510123913474983196222071302448813492599256618017555239646156614755376682071775339332905323109550406863352852788029853138338631072724749111381190854265833470609018344674296678963748224356092874525418536429126937960239665034936924401937847143717219043747973789882637829110940753091488171433787354204778593454171781616348621439938614330848972823123176507526061844955984060236985578981943822096901310522732470158310381813705934134216323394959601823687550888307087914793816062194853565666956239533714398858806477832769785438576868485941276008969585681383826637842063560257149977656433068404961486027261760724996858794806616704261920196197602074570274051221196125223881721007533347832034457034304329924437612741007469924770482490326891322081069364855052783771470998487073567994622528502664470965449678948847351426839621460182550964441613647035210954085634118555557206870228383749227523579319552368145493071951735923038215276807665090778149038934261511930860870507531375723194157240569316913160449473598062542157332477140978102440033640850821819879248965432490089839825553199532278153310477946318261515780571630743123000866289812691915718401011097107061793011185108810916822049077265326807515978309851620956463376701050111579021357336068209844924535459663236787006935123091687374379037151307338596579152116314766810810696862881056140722088910609665384094404212409443327850694848669004905876192506926485020985642462218229504174617132047975724185114423468587825359974582522984793076218327897527070125704650738310427896563135988317287110259968923462047092349166271361181886835120646840771058316876778474228707304993831502185844971767841849239420365415019176355330776152851789299645564584217280866001222180409617684658772017001407225507056781266220540796233069441451356770977363574401123447555373950596224666627328181036876996630072245504393187264365108848133417423993912662729094083204635209773873502233532859276311456651623790394596070705301701987846974951900470928797850261789171692036852421056087945876729709537655360003422381311597122045108973574499394420220705060342627588584402588087793939522185021321881564702973592201877211788053341960413025285893322143097666978438457494856151552701082242951491359292708973724960700594903004274062776832007246431459639886552867554444208236182471492576502370010494191258935620342279553802350822250236953573472372644125995284421116405128426275279374728794259945049358173432308037124819654949629560691114632219244968165298171403893581897867831169590826965692006816271684857018358675691300459754451297236633421587894365684258225409585163290665348398620220158731781385113523454902247001777664223859101215717806218978776782929481433942736608411252415020725976561435821191113964301855670001976590969492936504388982556554263937805099805604282201393949890776165070164527689828243637230906143929708424665735984630875331175208915178294789624441550772443862155279356483554508974348637878942240680147109027313293257613823510038672888627599984324781991015545927301393545285026600312441315604943584999539401867787947774599450961389857821569326279531871957853936125619749388849467059254183967069745351681038401510728516164097561489293945402540371448864414374705111937983580095347372834957862155945468499357095965452315640312087893248169920272995425707603745356082836639068932283776600363697184025608718768063095980705653193911535550300984015739861504782516198030648037131377427980577908356415788168726599554395123849221774744876115808739269536638805824235378067838517980412209494988514870239318292838050668770813508130596114327284972061760506046285099227627543675818344696014069804804859926726648178644197477581710639017012006577297696981124586174097567374341352801565285085709134348960887786098604352987690171040838948003372241061719290331916817093541316778406455356903683924378632748210831104834256644118339166674532954164345396187860746221662279750021298864703397529813192766543038519380746641572639787302774102495384649762457434137627565503555333458619623716981089719196857708407966259781257842138421340321173048000698392228687702293632764028901386023387321976905908548153812445959560251555864250301939300200126316791723514894462001635479317499427752271034679276843932835368834272526630288515305626319484681103405281055273361288185854331114840825270019620467222075502490358627764214783758211284131819348370129238954723930404221958724240163667438536292572334454943173962801111318341549521281297688919832544490607349027419987912487195613281731121257955433546191452430452609768173471220978757965471362514696128068198085971967028936312716620983895531396854583446285461145097275516598131175872671748339540243326227540135051936982013142763568240802707124181085994011610618226561514990511552199410235123382086981232226510753301774460527995480715857185387977089105654559771483098632789072469813866344637958631509440933586886310745053297593460389295752575385986144822934977065307599976831472256305478100331432981962083262479984594688800678490051985728759788600163862969199020542329032507559910647029411166633606373878877466831645593849925057501035052971400005649170325309869785721392324838037116105428777789857081410274320496916068329218984411439912599210111566107028465349140193502402955130648618747761689732952586121351609291635138253652825203425409662687339645905027054360835696953392498339689812610330127579275915443971280309127937059885926225852485565931230075610292377298577715798776329454941300296984648040024089584334948379471693100743248085031466875330094122085703843453600177640839932798292851060284182371543975037233805925225868961270929751220218902753120365357028496812807254733915311055039111019736804449940064635466809923722900679939371660703518402464395205946946459524848130200560314013688770730086359563010881047119391704008712596716472431875959557417512103088371390858826861931542894930108742952863590246720902791591926832792178456176767730427599464059208684091382849119252423201242753592939356870935288389989344952053655038360047450256790831868058649463597111445531786602372586250890433090654562790001134318715260462074738320760606199993593623153783464357260719551337663510579979741359523666711621470015130397701049414408579892359607349564841070700515639743433466932898518605169887568047520518962622328142195149021257951276224440944588040935376075552955472645646997056032575188027436988091372240780352730303589744553108827545138721233330308010214400800370599108662615626535891327218892277091267568758768206860108546742073279580602225613623262192400656900870052024919693918566207092662859651940181080914213655015475009263866847511004114390457683991019997661410438748287687482364018933991494288092364730890871075647472743256157995245303540341206337234857033410973186683558717035525949846010078834064987007824713453095806012906610196644541360716621944829814161449099356754067111472832692871503779499525502254732880444604059703230727843454831548680132876836291842054675972564453380284108962564577743551980503979517230892885314097210114587430630158545724476574647928035940099569655618735720244969300055605734424379947252010689986097149619576928063508124466345447136827881252593857280163502221418084600488585772702146316973082484577276015528209073252540794476357393097690304784011159715471336202400615243663437836014245012771485956187867912836286660306262531787876001951110662909901520178712853910402703043464598221249111922864195871035246705966911302828738508008115516090189789808943542550832069890185403072079932166534376543201149855775149069069547804832147305309125935524833082009143148450475628440655067846661018778727587819246152936931841176357982518922957718058638677488718688232207709732890431759531964880948032921596174695442716827231118823325743774163992432372936925830811445636891742135439747640619353905576835435898255177826777168959247325507194647462902949653341400463453157207975758860459097526106149206155000967175296202418495523115501500142464696653027243554474431092720693392529482353649108684049032791706646906584759455905159492494471923557334290924346340399059489099586329780367428892912969310506479261722045922984205266788129111062723642818287306499724706154247650462272271746263006551022151571525257733866165293630535429580582393716282000835522694348937372761452646755160843358332851726267732777859868506613078708666208707266309364021209826916322260879682261801356619120410146709562172487495935913352037170012966033786814311591367753875939261805529731660164168718489865771787766959642032344592322059570853777706588992583272221925862902016766472739143856352487295648471199279049665793581167977493807306522516908898802179131771995670226988429124465219668133900027495038260111117635417203970725651152208056523195905200163220679949140168538370028659229930022733003338785463735109837953914739209264487670042120538046728952314091439592435334210604208069930604927973410818516614899811910458103371144296416827965042902174236264959308350801307767730144768827148239431528904208866047862592450942561333738521195757079355495797799033719097254408537736745704851595258638368078013829980174168244517944509530214533640838688207427542902563787018009580887679476766714390467743470951740333263895864840434327227262274746783462290478227819588840825712392629901020967506202565400874456706396294842279103692757965829267903988162284124295680868468085493591558402287239715770795098056063290497768363200384057749281898909428732334877253724845534513419330002548589649160236397439213160859272028885365441738992979927423995159397730454644849670792489174356609598327863442527115904507734265664692471880592842603322519030270745955491266781027428972738104369270133087018661025739950729451978618418836058570399633911041771111629867416729905974473150360379418708769011193898999487170491462469070832529203828110155489881921587422662783034324999368482811460302478533983807044246899834367571081079105836745388996000636738975346966166107248866221212019116846410677789316402649604246590392933176805858193964542943750416920486605408801187930346324744834673166429263637579562625344229926335691522445710564721154330779457871139284317566995177663895334162839376914795067794361307529175923317355047478272441167216837986680992165708474520461960865492604470659539479559907994625236243743439168143241019015679930263696374056428074092602105789737412582156620895174752312494058690748962953703845103922905662229942734623479433717009967510979717621503808499230224402498493393625289064533131734594803384982816430101105204042195409950343547813824450807310834071282867736026155007185908974872322698794049682456196156881109409996723855950974630051217306611652700014667523298648178001666930956739170751581634920132919337901240492890289607635430548752012592507015510894880842155818241972918637912245188007133575836003894904186732697659959478843386838558258695604384351743080169127763553255700754301588222602540299841533180258529224547990798337130330536175267899559411258172336625077055215357160310532498171307731553089229417691685423091250341507189812496622618331713697421518687092279343470867545403482536187465323236168668588931739867710940155404219568473509960203672810919074018453743475596152901942875857339338855976801519334135736641093782829051658248205066485463910960518709133839835408488388341532988325662338550886689558234085380365446102579285689909292954966993459745336967631617543872194934282385766116911579321505370960178963005385061134295465552519279187538589548542557561332340631371064037114215970112071871435222271827543058211025764416308768154211080205472116451335185894109295372604734068919551850352374183991633568830631684276264978155764038682179140670300016883870244263607129531592542218183993824021922888260609328770724056794697294082413724583468391722991755111260130782816371746081005626236715894310346382840340355844004655368250077654869996400104625742312115164351091235957000389239087690712578094439291185088214727269617404980777239016984163963002420469195522407506213222636965605321654624467257123256857393015843743385851965709322242941894857964251966794861120387326823840139670608686013782949407750763940220363931142197700202715528917799393454994845584639479878629368087136722546179035160673735664391305576792523130116345927632131749206109395091932943548432454772873571989127641451005439726053939295730238497876032844261721820959844323873248528397682164071666710917930453776857552165583022091211699198478823778921565309592282510508039374470405169103830180638076093290432618546904267392536357438763499933441926697748164992965899988151549460173226469595670258890752713850727587151786621336455852130227078971534442843484569858294930858085633671083361896935255792541604201124956746106113762629623597298989146156817638542741434116004174875261144346909166726320640122018711046376755028039906106496912884273092822548021980600946118686978640664923353143925049072883142566956095762055434138706318811250207904276562653407560941325422363384600962614389345208929586500498458643271486065847236850341516298502240725598473954480325302663524880146226001158449986637259143226032557538293641863930844388382072396722094612466238008066243241137459454800304965234353928574199830633883239026103682417799771959256097632101347463247726931911482595480321293609643392083721612159384259191914187169037081097365916142795987473126756051557979780063668787696073780949208404163327232093230982105835279656749640177750372330770091680083330823810321050167844685944097830369680367902341683142797736466006565467859438219254937036290957551844156646387856342296024198372884062330094970439359497314220401374049174983019956181323146927354566217153542474122815876113893114004889153833422581601485536577758899022145065892413161249735822855640894414614476550599799981118171364938173242982336408471811550198940265314032678332553569204474231563545777604080866984658952474380712018178517424952080558757567809999765411484901657366593814584687682751032843201630562648782321899609943510634319607076830510837591747166404473146605516534614895720447235228620554934467855692183369495029003314000564611319427843465901382530864452206374007746706428403753932731443316887822244300811506701098818776534865986578662772456315442696643205263739586185768796569289612306572513734756932895564343594619711064111562198825660938819506362183914306978700286887105767365570433916882900353343828088830052772539749355928271621152340497565258803073302316587781054363001955306103138988260443749139334899118156754128316815908330840065753460078035292875535081987877953774681225767697652204340343890354774842618155720341500775747595504214623184353105655623304754062724184850495943979041269634677551296896642132530865260887623387254700908315461621331785721388374171964085586640068602731957517053613872270495864894582522493402734717495244105246487315253194126604011762137130273606385661837420738140372904598216502194982617445362268330845042269882493038695860525352208223177730307020066889039394924019152527519096983307722759076394120568625955390858410015391689117644402895778262907852472959146208829263647723922025865595411495077410581785644978636887299421817855234088859602158744185326861062506186453194777833330910705744870465864902312385227115996194650284183207595452432761873004571318662012918590715330716083312320226792043846257522182542173122132483491619806744476479849933197203527914342859432764800167395515475486501083736612824742100429433514275123034038217523585255324284940071061703244860712810040679631791411326344953685469801866370222619500539720431924235879544498659371811301182999629766561691941552001051046969427153878371906298659955871627948274089064355234088603991496780679457212014652777862779129452992042892883197446664396525664161046577127545048720724166016182706824226356960531957941649088769823085045413025453180908032798408353020619651674047418977044200698751055186441671789160713105697536094785655020091328945338092358186376248456251670068395054162919515922769099482787070681393663629230316122836781373120937142905324959336798739002545074051198335987154400349807128998666850380539145281256175886274742274307874434353440178130883104011577280298165460455000405143269717359473379195991921360040216704056335754791019191930156799180552001138372019207225263217933992487626298489181531295118167474007443229219170491036061515405812185040059451406554151826235132755630738011000028223563698561079941364627680615814035677924355990870543540339176436101941260076489053447520291794908047400847092473480543908808765100982924802750114726666884931452020098870098528022661816188295861465134720117183993120505299333405612245863025289322738246927409852093029038051806103363161454856856212741374004812732785889848652111912783235994264699678226311488034366927731147001747928746369078841052747321617024321411210510729107447283284961641886727693501968420188584452235625134211073019846853016169903713689221517334784688697178734972920949225878466127705129209479261366610510075614082791356843429702734142018930187716563793285216333288169466814434270691904040875430831024434073220010759950367525628422539409082725584139236554788676754597038165386725702667407315988758926274344696943972370493241767887348442038945395543201547624377921653292587800184395834380639953142323130200496168738234221232203454292762143686761641819526961918650153720943322917740422051260718360002444796066987858276297888771581246911356285933243493563752215917839705922366126965095596049783257887903976239298002151125994196402063722362053674700117501247228582693770575473936919201380821980439763642477655469515307508963703648231254224919111317084472322966623223213849706288231117984687714529797812313783286043216628440665083126925569265934538491460962370580479773548130101671210562467973358883025501250669289634323217715864206962451685481395916435553947393552286351028351931404628686323290978424660295643420308740322816337115819174281670957567463670666504666725555583234475636450412016752910521218808313069337325933710600295896577308857441528619023593048113876989438711535253715899920610394601228781683604955562601637499463325164484464476462117411604537335380269088508580382372540862238636155490192437053180739365595924682909179948219932172938075173073542130746373500054452949218766175998858466903841320724190127730428754172829607148356052723877985443793095395627467041936716417684198625386332505034399684477129800641662789858405126893752624079704369021139463903142738480457287461148751830326010921875979628541188631222973087451187482423165244432299337295001540985490833426080887710228252807748356492007041595000426645048187257997117002379776518278639872408994479728019827125821238795529038442340229290628114068356246751470995065943095269366245373425668001286825066934773407799131270032379279872278638992291866416027512989483883696500130693777075350879606759052721037384129041717468188172994384838078412362545576449016045789444543836211203973573634371925933289262370890960282966472151251906044499037417304410903645959169161660269077756408514764671607101903315143005743407820598090670587521282548926440221065580133143981083387515265999094133621248156098546142222864045347979801076024358814830925019017884665416060290094876872001525693214942413091206545482819747429778335566324710995701604343339715464035072173606363136376231767792483475514744116728174707561574468417000624837557742296531996488360995241212201330140977428164006221764817179515923544153991103065190871479707667747520405404812871762190696794522633218152541446444551015589901716018665755365213832260032345278532846701632559970334200447530494624476445295557405033381131211278117353917305254959543454227662807437790575121010188484375458334605565792374821678207593568960608294677648178252681248889135073504542066394345942275858482883346945990180780944408742750250209272654655579235594990789894610577736087198588293521808041307094069603241159746526298156855845941088931921274805949754329170558400136965281818690948217916637446855802069335764589795687839940486173462902643170322922279275930104836430196157957447186720203003702782702099537991872201456767857651978179482823167162565801545166331230550906035405180624018891178845169639405742383028389649402872593842320154383723904779284495739298730486735274272604153498779035875690104602073465662668022663163935453496456881366987337620092481927780866356210863550708785351945149667026838801441075449134556413948018776831473522147718497988266532785512507558430833639758198237131339622118367381949182588749364186426053706044229412322576229208607504415695136478738159024626633198658340913007000941007655298393613995521131472478179004340432784815303324539371970977171883311876310568947867730778450936036656061758449336886082849076547896532063403786952505664514179565807830352371401028655951379019485808269808150621490141992623442142204304865760807600775610198171908819468779422160428054726241147682505501079632054763242342716340723201586103040219431827136429542414711862596281155168407248490113668280458248800103510960061402108997620027541035885566724467309680352333133890464956033716379220745667201525918888560470151542488382409083159901207948345241904208308506377039581556287433468253599251064551588634244442727022714709940675423130257205581677944312412864969215429992194912504945413330206998232203556863106301253381973339924729551279705903570714153953598617625848534518064851197942691802514486139652300911265368275163838155403642255114279053588441370810675955163005924211170498097763117988373578157445788443900676540206737039632096706507547190551971921426939476350973363734930990251883538459772220675622594516119431802533981334688455406171259580533705381557551695696001314399865751341828489650939298716864288396751579443623159775930148388764244696879285061536051416446249170458832374316646083740100704039602762094620829793199256524907565493822148593207153316382791698129826487941422339740614207498036617851113905438354835208513139190388306263942346262951175748233012306430772611001844594093461986007133295735774902140680003709631494171913954351257580326975921893171924525600689700922349615179911706792036495462369592752615965968966368727869401621977012471926990898650975570600488675739119273263894757188068902955774993272685116962527442224817419481587895158765367087183931872199017142845843468418866980455599068650425602977913838317842441976059223933804839533820852625284976046448404893841176383672875877075084496996259182527631704083113934386539556102228601238696936006272910584618616775654068580423476095198725169239928213821479523437767441843667826990783762689132991150806852320240905762807670812838635835700098840367121496438143600840311186184638699089076907404433267082405926332446581252498887171332450211196464399855758842790313796346960687488825965697548041396826745478204409965498963450077272659198452199065701165907644457191078908020476619225737722253570958654541829969758760665778503395743805378705530385653913237095782041557076910048878700763444384727864000294021227753401331264126382645303312959564297945250429055545242237072187076403578520898690695525514534843846442419577025336166507831165225366556502476612712038394238104291371173785587996732763777393713432070426385350286938631803972312174160758833851206246383355427049223099741966002872659665306941085294663515775200580232701494277857149723887669669421614252867245256461990977952970521205764366876662070350091485785936017595858914434952017860478320137324830667609687746012650427885914407120516678061750933169579277162374448834031231519764394392081332249697813696890434061809836149790728303998112573697563775791731359741967851721191502874976572994357977225615108217039477608973489917421049392371087559774486417299308759920187089140003903466617309988756680493489343417201948910894535212734478978448573554093663545098028460044140137139995985878080993342547267611713890056781625678836264428235988119172354913364250565405615666532629596751993296302215810521373013125798132949473731219566250029135708507488894756388645756038915106328746553614723758317108742232390489748682817162756503858642126429117757334714560365869903567144133685752611589909813486522813777468494360421917603621208066322979916495306268579617984369532294235393138265088425314704305326374520470318136320165999082509967942878669853578891922370107635682740241908880793354537872422761000515563899422857088879762678963442462632493047204960130822824471835150763202884484818521463273528077144292205984005866120701124339299082165987063331525678000635216686272400370334621803886984059140542095094082749720471202078953864902268364479939959890206994915766880393467427609383713971909765450030782002051434283012210823367906751602419737644034051607961111781181447146372759733635042903690613921988247420445040901965433768157374521767738260988380968912840021647160379588957026053223622711844728658385338829477324286925804218910779291992000730369718417814572998882221101270406318461941644937711854200511510806730293691228241966200271449906447167533080318204251054156737926353622686704831517667100647622886497415160157165735140146326413055615712240923449421571229235881368496542738673592142386448223256427627017042465190846882179880172527739740598636069064580902109151445152194512197363504045534765490900587437017419022851282309274239264697719620532596406651796126120224772733768149848355689918748772637436681390766190243705609802142094041463132663422686456304301339511484094015801400927695109155186076696052437024661883457301143767104710418231580603287097006341560732853434132838671640493333755914873909484763330638365600185621592100632726826075880941369933911090077213545184133157708671474505564755793480549266991549270192398361495824871883023467217297088766774843527657817333564027055169313119792115200659456532620130674003415852031068743700104870364061321143198230141762760052921354979363297176501869900269177252568088066201264941314642275687364721731859198992557218308515908418590995911856621494838423079146061801798659239626979822940250382515751504014419972817113116248422461375639033862660754960439052917691205836537365511609303928874632272329944106265916233719561943413987807189537347485614777492533190603000756206433205998359901998718884649303808498745896449618105172978508676445098707236081966183890465018743581515763914146095692835921488611888406075491193516903177351697620928329226231902308271755772820087693736213920479087949420005085053130624888053097489649617685860746199590843615013838341783177292100765154710113824347723080672264743655415251287065885583921743161593322673718225816527460342368237347245275734834598373697897752084877005545386759079721696935563038998939813569979381682989444924709001494371572703101544029900439701865261061038550729738889118664941238751233531660669581569387841473219750497762396754270364832864070977229581712611925565660060055148811655176786925429573957307550508390481678388611831419099180112988621518551142690166869796356787032098581675712600617667423187068536350871680702269543729832730682208848456046707553236915718201491615594186000493842505526875044826084219929287203783190083348221248364697477009719653151761748324428489448234050077315794111836267046446182701677630922731691150093080100303039668327913686777795419958805004910580939771337870461099706781957417930905126522557139129569711911192146054664564225262077362964676776610905797219919688313662555090173654179057231093009408555722049419992910481831409020096822473978456202539197249404611200045797958158991351707652774436705657768308742189347995452512411903960784919771976122417032878110985480445262695312522352600393943023281381182883533561491436812502206391916928579098922979383805245295956393099931798271247378440247873337915757604705634394811131403354322303505129170407120085563642395778028281146083239936484384630096962206040485324314502900689989618023075230541163284770164724948650956370841780690732786465713791204036554601222770330240324419754471113165131409180343871855378331194256085847062121832643234246968004936267282161489781021664540931898199800258489098643741239050396066859074534916631815569084520273185552259109892195933141027067623540805887604008572991776863853718559784125875830451857418774025619464556831186568452698410397558919975922947287296820401344116300538429161029708580753320578348912482373452628135025369027110778220965390509680750555691392581475862508917283946904924588801913461950431448313022290095224599998557072434981444811360829729440540835226876817837431475253293977527942589627392229928069280568084654180039047496367500174387502210895166272574636301542731640419913325651027995698146030065067278580870548528917266426576250967020638960956607307302123246858452883140635107246411080905430605868125086593867976518746937833427957950043744747514480646684754254805472953820993113135191062894210003881371599990272133565647003470006733764355832787314736310688301696148150344421365151031341406467461177487878456910605501188132292296139044312003808700937083729090716825831205327419734197078796244708410434156432652190570915097911693905711240104006436192244430235307435538157072564491945708665768163531564532726970885341334887637958599962497805890292639763823697342145104948819452765917880352300967640870620789905414156682130444281728962518931231812274129478564486330416847631810694068724125277973967903530120784351309048796632999053136150872893772069235438196138791540122031934925400347372712702616538274697061365832162059393736843920147478567659056952832027995637533331174739093515723606816124862741274968710580389156897512497011641697094881530321437115915037460797168618823836606144479047171240895597528423156651365527667363941566174316218669033657700056280955549504448785540322231249555621523914852967929945106154079406601975177179365683808609450683343116385514615206829939834840986946495088006228841550226599257007716332310899395665891767031398795742807361269384795388731919195048373729672072375838265491312073581346616656851856389345820269904548710109953700252893642763482911631123191344495920922771494804540058853327213920075809950520472483126769643546132321326407034628183275748407311217625632595430534626431621627850584905517729968442379337371447468144906575693610190795728648965415613355455593142783752540536103275024341977981491015859755065383094308024736756717177337592528265227130460319673251832750388966004244342317140241794536780020902820749234269299146095095725981907993917446499573230628869942395666954360429022865634501733405835046144849968548379299572732319834106306578661712944972434578072388095773140195904617316549114879541173252202552123357472821073800558833066724178531202931586059699367451734641713049782084495405405287775060467569091599519227339312358367714198898207804850253001259893301936657420329554715831112627266800348630657296867038418837471780164862938575509958717619226638403358891152297807451394815051988823513981658913501033981999490145235411930973622198896212634625340620080659119840952737312006645055847122604048544895171850868446536923279139969332288877004359492876378674683559756606643008291429526126008583990392894959825919892363554661626556222016383443327852842989443052023040038512953167628612207542187059784585508575579680631905894644603754001730904550625635932604668659877311327200132301549277443282529375780484759751392420683281213019715492849060212008048018093000550711159536568655391401586137494235252170551197414086674480274399915235052446395412497795707412270992765721519501130167816749493548069248612311054535252393172055525826169004443201829160524441899146051088341521293302448461402873236611847075470966965636816747348664348561539714979397049286921838822054630017645207456404371281219581129793898047215211052289138330679121267625826537711724719245105844462916256735852797867559481467374732174533036264886615189680897422802655662067883341955991496841869920880977575470406411030132152151223252517711602012526241174441711506270392315632632745862973127007131342937027972344291543126637055689620568007277233241096727915774588137432872970399949867965902759231030513561306525266891690684622281999578200771454934141744206983424025208979301538145030472765701442549041858968492420629542791205276677424352187010181847063363130930021193836722656781302491193805630890719858445952097043500532306831320440352634581375188193410299698680820817693130334053047087354501462002111378668362616791713644553360530707159936889769426821138551645982522958621942632281003021678435526267734089036071363456163963039294650785914395741660818052138510274990899500683662307307642640731059592149628881759926925252645553932547170853574290235285510942939023515985575056033079344585218718660802850496152684919182844802507761711126571213754384987920664432715554942706476441120701326612263335529978405644142410088517584287499923729578400128992011240088649053903270166370384470956993851907126074562279734706548021014518013271653660589583978454359839461239229511599541300255591902314074304192960885600405892503194359113100345754161823913841607209616711563025958863747020412934271546772450960478249752423448392945033281636904126036330239537146739718915839007223664472771619951929923188876389007769442314781748767605558882511788046195921902410087942910486971119343189628089198541812648662925432464474948732538482591332754966412167813306047241133993453141117845911108479232969109452735283968381257650014472853937700175077256326918956323987844229469692742139192588408231921804457455554207512819181973075742854501355454577178869758026338527423272989317932059214745116728975505790391837240399603081694607188252168768234223384711539754187124671425464451024105434406254562506716398889767076872994850464558026561012542158703884803841897850010994443440107459294119330481160586186427206655735051421385179590138727787801833714991830928043734165144876257026218373433298603835076109962023507439977596009092429403666422838894765463898963547320576420760033009701421917572652896998744775813052322293648885748198205924083406478906738356391008226089516882320398790499157830200241951379207566829597668132583869999546269367890165562417901367490202089681322485582263606611883594792464856994386122628262445675625247820720223712511870708693349218271549687210892278264943413356999400636017971664016207083642520061641230536536865189779474281082897594691362701938649638681680626040779860540511816791646461581370601760761864897705478126539792092886777170593988362310872080546135246482347116657772653033341460315615972248586205636644143411263681299359032286465176756445009843482960067110595307141335336071209402809493584903268561072101969823957396390530068845757133851529053870373459945574565329043148388008098384264079012947295655191204653858155523959964995997795171826577169180672305331637949094102818304186534382711061813201576961510349105227875222205285230844964914118965632794341200924302989000606796863188540795538070848536792075585420782891170130527876199877851045993546561541648732070259315174001782829597074247798108194475074474630704107688409378585388146218627568910324569300919620067232791371454443422015491620594716438046113623371614635529697785608449705242974107981195617881052132983362065662561399584307432190758939953599278770328629856664182896575070325251373303587892623300153586090005460173125178830922723945794009397456404579658166350242724042650278314655717144444751818656059616483365116280528576395878723726080673915915290333970031905183642527077599166142127001509864653805162531028249220842904208288618614780816546519520086589007620844781310143380499732966452386016636289973229614947483950492533431101930947302045732985581390660596821013083089471086634772087291214390857582762263836595878708132311841505095747410581228770896368699788784851866081995517152291919424565666762039169879644158690805592813697621544071152737320637688255269526169580484765146714997410522447380397523911097416162907435766001707325410470679623256768316663263141196451933544858492627027751609952921543911932962214102121723496383104200521296946500896019374060173823136717068144473016591561797810610200252421942292040220354982097303054420793313356597690984958313089943401585127753276682346148519379501097152558178423357843145379351613126232730565504323809122943538499926351039839166096277143915690553111009206215415664670853682379806894338687301479402660888385422956090485511589344537679478181678728609225593745191599309704937364570028378934116653810249168365837127595704388710838394774795414924965836378481789429138456829197030966660413682160056961279500924701397695265979949418895108494391220069695724593407010249265460189122986954962681796090905823924376530791684713496690431550497867314485855186994131269170632726144184144714908222463716809641921004207582714923202401698384130636818932034486273773208573823774225935103413433248262144743710973026473320926936927708306031369548104870455850170912807045047023225020686207915233386075000843866013470711092470694897908770712149676726161740774925317947343852382414207234010333453921770636923195326174411036154909898162468625725854739002315227315817788326142954997949550154601443110220769384444000299439256524787381251355730944881243391064866466954772715501609735301313048615730163198481816711203846675322938634960748929743795968614405690933800650251461495703175879913032112840632338527483164545968284100695407851527513806083403749022495968269523492916315963187571828653640200474334810969657074883085310137537593217587506186067434258185568570052647106895921431478705870577409658140794692710933240235866132123404344010625769748137040755166318302740044378385096499873230518762877867945847544871848144774246754380751884893129117489359347534741139176386773598423931387138338546454134199640135491198056206973015439736314708507065619700940066135324335053628603444136665104647313094862756439040164458629471528165739165200179765257505836631088373903581426155116332859533765620139272077701572248693154782208524243029841830558171007146677816224546972459777621620527405344254069349422396427926728720031842597897283030414062254847922996003891462405281288256413950771256202915525915852720883408073337312676166928327583416251670542441639797996379642227575578986176909542207753476488511601350344189246933112918783572262775592637207964054358747376550826417990676692769253503848060421835378712250434167679725400038541600173932809885684532844491963417254826183586447478141129900364676838612083761087205370707053731190705817425074587637895873839313380616121149760093908481890385643103100537595607405856730103606018545310931493192920438407004601609385602681485094749454406934182044693362281209625001913783161785165472087591449918952313106956242752299783316309722346413813526369766952195926607718283402326965056665829083425619522538285045019508705522348632145267238239215139446624081536398569319512755002296135387003789212997501684901512127159133784421154759646456957648052348162781283242677103035968098119804481225901672529044954745702981982723428449828577901744139356586166681732224152615132033138425543930936564491605227197920370000794036641903458558434997361389901710119353708570084372208274305383776301476757058343194011426143716539886395095322289110621922557534083008927003023994547030149127279985414494219307415311061048898131084447164767149674353850877112532629612110275415425216137562001105686965995283280425564208620985483057292807364223398870950794329108598246472102862317062859249819156791977720385353832652934470937905952865897318356532163442364468082989462479249525978244646923945966153432854867227333193960602668196914808686081749422889296236329304445942922536579899514438466526039365386455756721298578497080514637889082318428022283550949260387770204284702856377065656200407894365999283185475484576950202335247906799268910506617637534608667133250051317225601527546288129346994821573980158810086307395322747015413881407984042715005797884135829259473544153870033571710580396010097803005803801770718309084688726737212874641120154542744494400529249084325471167354172865448183105997429512732945901800683708898025655757347404605974786828888795185505044370553099105387842767578742369123694341299924127344169561458773207048713697534350011033107562295740333023472908617153466427930082509907590749879684442544090651362801015573306222364694776391471196832782313334829306031032607364271116701486683120057200258371646200910519360888927890351492635271655040925188069860898195931350221134711282546272654944276936743239431830963515684097178203939383561469325130840804083268877721377466015911896217724276956329741506670324731971512561843901594893895904383600224824869901102313592838608689467262847057889091249269934092131726059075376076368584179926712260957863689305110884582871902583797416919256884168759887465814300883041279916839600217397540312769772066075847007117375590844052316573724270006084025576409946296520020265210522548446913724516161803446184812758064197568276310948191960152645426003233853702137774470925715543331808992459934005535472750240280067123417915665599502204975046649061736634928450050708107746025127137735395895039493351934768584929459343084986016841799998410831697669054877821421123502682160519081326800727544899585118972487777723389069731890234837782065819207675439978419257111481609500488055737058888858653515707141667160841066404199617587662172300822564038984191689123465542681799722933388326862003614369249305139217245015710691986270080391948408027713010443835384431157797105324608487215583612956851800949984768487970588609840260103417376638593072143457422175243330705328825341810206785840585229994287067938193258213399901059054758697208558784623709435845571014426073639327846556851407706355090181364163220640301110860825925139548011471773774310432369600938907777163990055144071633575527794316820196471363246769467514338110283529141181830420362813180756211660297419073598628551574046286533225644160246132468062311519067120503011054568364331341233567924308040101577915512769100135973157342637591109524210433720260716286237635551744726543983052331847474152007421072159642310781600468142465503903019047012016145175798264360974492464177102905785745051674805577832586723944238498795335532029180891888739338768502388140918106974471014739012907514018035632810960716105802402690400986320574697060273426516878382828287701053860452552581879686632988534168285353955898821176572462125053953531159407786383984651815504476690546039518257413357666130137193033814397053185689456034525936683406002009888245797074846208066201791410159617164660367331219448747244237112438301825783719748063737753818779393607088438056712207930122753683459252537935656464603048813704402416991237061565546027558661412546422007734154461049975217707521997979642674619966668511517573566673342767591827909889864114188269138499634293743231539758189802250531856447624622238454122282158197384554700385723516472938780727345100122259774355894134823430277526358020508494804517312500517349128536306960174907191968006526588640478275772092447258583491387362508272570558629972883110779577578461349950756487718446157807208766717126696268504478096394411595550641436818022235794410855200472999993536783885113948421050099852510590557509603338346388426427837147898223449332820988647945706275202283405289199390987056156370964556786959401616843489140227821575842294744779045278806491105957849436915383484311325915736891766484968096662046328902946451297014430378831717129411673812948150978679640387926839527209943307868205521437911456827487824757383452842249325175129553879615440516758368521641320260470455890743110280186234365993349574373523493984509581340996931938501616706246091495067768763959088025636490832581271794976203144464515028377970719720512492340711727700261399075564137302907300607190707742234157708289181209578281388523891060390958239324006059922373092234489778889779060501084400269779010971850126561944249716486193897350163875278480412922261045225623234661576909224919732718476422683051892890081505727764894854309639936961749045273203579885826120771721608899507835164667965887362204858466968480086844767422507090727070966479697061310223435134884697118196978757345875938837649881752202283499029353002117986841391754651216569931405262237069588136212236902380965933196394776100696631404086346544084021186464587347742693917431746730273017493926118464209716299228014199282993652835565469530833452196312311443034918757944357142227991217824851018180764300781461078637109749703466898608208473760072504621068962819640690095909398535778313519933726261670244680869458213970526819731885073605088196126647925375738627818495487026387099627391076273418032657615008693562630208892587881754100701987618863788042790688893329493548031143376325174842398224277006042383761263567852798956564302372450434800540301597399371286861243070354055736506713493291680274137433367155770556012526107975982767312632215212546554419289725122245307518085720616253183462303840980256996311932253935418024204185544209199750595650168668769230303952791289958386922569321837037185520427446747044374417166078232224296549956415325080359629258770268133935112607467831516464388446309028897145754906708846922567325822554423183610084019653534063892893323799791754447412910351024109610225502773835034244865263048670455120238207891344787210225045936719602247380978376340813524737424232890182568121671233725496825426909285445955276067694589064908126733364777407548780788354603548983879705626080101043312616728668833043032832817903079901796579577960868129389213945326853273315069110237699167620329472442605114637479040624863794468597666108005447063124030691577038013795879143138816233476543711643579534438104390635717220584066878993967648990552817180744614864352005554460608033347741236899217659611977956515382311901900758682447022678177385740260074078556242192162668814068062158789323695401411376529465252718237536589228362877472871468833830171164125505462848177705171891710411637171382862242279642032065887660915231679279160250770938121969237798974848479710571721485031179255275356184231378440969294657762958444050808792655085910298147591743612484909339398941686292155127964438546694221206041815913793114682767811144206032501144916646434385918135513564619684350885995621443974749527016869408264124908070760877741043938989525844176284794825609360644475328646431628715038679208548596227178247675677286637028184756931357797217902918799869718006983731737612851542133470880258546102512132814181328208558192324158954921802758007817819975756206522461182998071786196616461173322291598229076765686145772280223593243693153331343143961342625481825401114254068009275834114213505463939163636804420674003669898537673390655816462730328905690201058041179673114733534706083055819589179899982093145581954520823707392161183562453166992737982345281572490362956238803367295427872817632038644737291437319721550459846902409978777848505027095832985077657184502095654009963243325413924173062050016068802673976753057796037843991193694448173272188190790235750225203899315708500515543549238334755285110695233976021905784429470398892899514628052339596128315662051720652211669974095306723088907281235320941565378173595873520266162098242780315962525362145568955985627217473090043361804392194274180200121444011664393509433398446198225473318855887355324193806683851981260639025015881541089173798915603921293803440640598093983360094109759671542285822117277135431606794982205292863938614527162300691862080228982392683820093308166081431698659556798748507898211069083759708642908378511198498188139350077760078259232771131856045854044903801340642108891371486481598042205405598860189131167249401577372550673851288900449105582875917301941532550752816424773701307332673160616290364907988617399825309839121546419531089925478801564958508482076795920494361216807155630723406309551929055474456031852323081026153408352798889687517964333336440742921803852583410381739449492033574408945439947884363488999975362349599177804884881369985133077739141380284145551357966290982847344203352602904429267035502512431463906133440756373413363173288377736427097171958523249927662848087992247861063290386626492749961103998391286237803927678914476010668086133187185813434647346765314679336168486194874112426808107432573204737787720574991842880250148650796652028333538883840743864825517624411147720733767295024659618692411670707619352043993838374367403534938300376240266185407570077002025904168907223221927434188404640570677035751637308808929991452488489492761036994004733677461075853496067576465795299428091456985461283986508507404163121336789588650478934551596980871471754394596947476471924439202244090376535555608298539426042044829610855418330646702819212429545136489093807736752276939586981134834895476769028491022547899111541577051861152768610042842834663551450548362980300968994149039897658674025561278984599961494164424751539863789430229217244744660603321485859875310788580679412017884682173033187026372622322702824334506632614430241123142921334390438764114896442271093774006878980216749127522882401711917275251061634827953204357165447809518212475046055334636919220284035220629072230657292389674010474384898545385593859403524968609251790295652194281794957639333877941945626012894904501949339512416732605423241469749172755425836645329179945989049818392784177252627600056969819295515062154498621088492277119092964362026554846607285612081716037787582921420756788362710962505145765292321839102769367305288894240699266688868923407718452262835809425307236310946582145033284772963022165121130209307112920973974233519946560465364121560717697827133736424993902387639507571627318246101255960918913942471156702358994467633317077163703683299510500884250705218593057102707457092205423282373655524501311123708021398756758618210264090482175617617244564650780513267546668289314464060763115746187288581904690761872309231822993123531653819925819321884920569328276313178266560392036782041274879689886929456596126688903722089268491406850722964555397584891754237324543589123994741093935148182923777165375164589357944264601573540263887378767065527140644073749697159518500941520678914039283247838860909461919002565321483529411957543464607001474556289589672008698488304143755748340426693413604374251412377517155593753475127237105372826388189686765518280654996315394667929837243506669567394373524703109547742990652795341743431300244102886388642286389821399124643836059785926134331582927454826642409237611053027562904114901692350316905094604969135500129181338234880081712730860646389371048984087808197763541127575478860285935590710634680099259213199047561420605034903851592285893290148306098553462984787770727383231467551585817525110209153398775482696800846712493596228767461572481555871820285631298543472752058527760592233212507781217377815202366976717765538485645697632408802967362107846944370289272595234420058032830718885382511693785282374774078631104584909322951845261739892712354974921112876724304300552648187992709365017985419487504853432206042783643206105954103527731870534950668922927092303188947416065063941353478949900468431943247632159926960723500996559116475797234634651547333737964517980474099392738909726938961459045209219101811427798953905470577479137938362130885170701534404259715418343104800874113051806790603944954597474877010053821759112539569855932959677862184182557881068533146785561776910428139593576025562176496510078424876958034449852404518809441863727714403516360799942437882581494912751708838814136392260780859163179802682918625642302621888483033170769167146575261856751412258553347939025469234339992431216409341726060650352598782594554186490938294100220487105746864527410158646403150578334047519948342761086187474408322280455818841187571888702841525294817089362198578797269491390512820260528045344875663225542700642488104776362895391110394111678135398873931279429704288173514689386763515837259509035537307548146643779274253546498683352965615182893647253536146900133831178658913310628786811328674338431898387290896021733421730649818250867434453428536359771663405418481592950581748764466418448248060764848104243800107811598582422219821255401779376715865253339271737242766841237233146715510426188720663539952092193069953474037744814005193608049325404985578517318641107647131016902927651523611205050468763099444327793009063857381063773282855073065905626153007693844695521032254069075224021982431152586380610110820192773567151282478376827932780550818107731186786740514552972883066302143008252804020791911429088507498899786784989127515836789243078988268482237878662599579291777549706436119168851538114440422821805408849760978999476515739357323123681712984399864100186428329531631278536495067464648022434885122512063606198928777796301203471034583864959136461970178991125535431572373637770546612613998781826089970871060042546382955703773952982783152146355013670440183950582238592455851090910439423710573905992730284762173248302813651480632592419133731051504191535024861950446011667555842415309443918168519340487244538621496712351781893774807018728291000123913024354502815168698642026797607014672598454927092499865406106904187666356623771826855353953765197280613309718754856823127918616347808935791078334896655727153398854037276734328767064866597808637614024916257349279517849261133405560785992061007918389458787079852626698749503721453207963466157621678112769355476290946806132682762045708169902040599720159403181439977996166418869656373738768693658738127380716279362288448602304674121934856118193011666232625099678637700853566695659363233699977569802112651907996645267118370953627465772810998647968177369866129988951288715038441614168047023505726644497989378707896824964467743949513418526575199373885400461411894683799478016494069844168955362084000923857786577558295211074802777071562166404757748721288254998115073129823451685109516916303078382956667142955116346518234546452643343468694351466572673083533091671908635806910433479801202929586391012363357013240125405782797038336631529032862319039717183675124481711640976352383264889083997734534039222814380148428670302048602786932712373687583222075466584541309414774768401550690929279018988842001547224813918894059086012076932624450803026125883762988637185176301048014172969738882756851284916682282009558158240558070119387620899690493352205074342716049888659979511216579374061279925134842969415855887552429719642267656360313366557303819388530212296273815550215014304344689782850942082702540130206691596127262390552769643246978808758489828364538572012115637170723173441660191899550938030837869137842368377299620672642253251159464247160101512420295794649965149259338096566761864582507738963510850714166353324878548859620733068456773998656481436286253641960804342471774616570166953961706182085551285782742180652390474005309563864011112882206206122146719280273454258717045857890404263457780934884383872374494251997432392156094937854683907974216171117596611615820062422079858628974686893414405661465224928057664012446298831057973063007441231822469121587480066302752396449163510529119028694267213651363891137189116574030423208272133294173010289718118236526392052036058904921935160430737580914290040965423288416308740036485661387837472245738595080780788872667377618462752038347196223219556088645835603888780677029340359710441190188342087152344190388405882303325888753090220058279112841403529939479395847354866395901366810335317903199985619567363360083805616758633682310529517502081070158030178852547465355480719397302741139613181589290279755134805459946955755342689799504632870471903870156792217250749052935701832117202677573796038530277525684563992864364528137560851172609148555873850410050444972160099006395672296793004763529477009726450480693877270263886969219399715908283533019206070577228461154219137050087856443641943346064327482300556928112846125486531114190258405639817736231335927010300698150806345860377229276526452361020381281942208163479599226011125797064437054986810074046968326548180204391091397001543987590361950921792115169672115024458847772931312496509507353908968915560171446710767680007864786445969165008927998507105322966956805507473219261563112255155382569696839573635195922451211210570543716131025618871448413920430870681979353064025591332113411094234665821852645180434874961449975664132780935760741152175062122790126428492791686218948782479655061066066745011828697185135155490309000781372291015581490434024155064085824492694749285282848595543758564430493800148916978599038839644009115047420740838034227575392081828260276719591813563238282163600558621463018165397174184762949270414201337886846454850912149328921409805058040284847097496762995858207062119246788246305600033292439040237714887691486265787916442666015379638650565938215608345357799895047878813835650002955917517535474892352827563460515978017760613664563665528459169724122985339522907187968155217133896107117546244978768767112350774863519358282507169614104974040138566169948890278100192625857300119645235622905259985556418408393938111254704418398008424864866912881988800269438248265097868618198118385060424995449551723013488169956583363195541127447149763368130945133764621491519971278011479715646391006630031929570743621157223626031476734936879483638520383330479770663636352225432302105499616708143178642552805031880060760931397832490101767956488824275692798727408122681200503589263200478320717971089638922736221756069089128686904151332595223940234206898224400505425389691753735326323904199413773409573058637602739435324181733408782634209730044567067261246890722244131518557972946890853193435025282002560612420685269013510514500148364698759694933562832497766451544666574556089295565861195991455515453847327429851761521616769264446932178873134850804998118567645873661182582155164933486989711246085573282580720049702163119451356193544784889909453208713446870567441187815324475112884651226417309325771518749002010797281714978452622413317366160621062150566756860168369931274605286321995684595717184139379169531082901186152042457985630991557248983349103534440905143240802321469023668231132838069232366028008850508420475470915058453739878164910674250580821384663230186685666923711610450508272532718929710744993913743052392956612481492458107610185141233817319084579999747891241785049564250445842950933855745111483819155829701960231035438472290867076458437589316286408487430344985563932608517395067178654413690281389940388085671359961836846307156046439051559602079020197008257198842677795341722626263888003089193292628597123558009465778765727124879006290206581416250509291899480116800429343541799365199260419660408958592022554441386577089825201946546143300068191445296824899548661291410096704994942761857594450980601751745837650703874710981003300837728822783394188357228659226005022542241133568476711822104093086087854875211953659770056601818698728805363980750223771393404760053666492993826752015828055332730358820829624911798734541823775564479335369046552593560992475472983102957294359467971591167036545944399653631223322550535772186148226635652504805967812455767271703291235796023415955572976852631607153162092191016375086729187906466883741739257308042400976499463577821253413473438030057829360140566440497436257215351364848563874488624161500600821981403967718615540514049898528915525361209261392589295767637846511112675159502078703671810078753372257728044316211415371516723288843046198580840798846793475901388158078928975505044754509527963392900242151435051191173318493919667262264573179278335899555068750811327879039937775336110214696581258269816241153070174506670951227885332129465668279932727677242095162974865585908185747082239349028832805697731290687319224587350832605611110839968185509822519921067230464161389887590637239009579863306246386781959213409306404539367414074741578726939395200756302383689855672960901374615790179516226194176880753402054842680480603725776721426207761374340314321245694256576863541918976445652558247096541127056807173826915877524490092322848850680370616816656898471388198628804081450724090870345913881955372736927198843608290025724250386281506639716158640138063857452721737122196469675238191867845160050705337068672075932821294876384326930659637032102329817999070319380519697767537947712682659419908727034039997559952024276692255549246053133296957456987612627545432736919701634736079837776668927259841534922657934752533286879656764211011759085743015940667633976560600990143075321769416901531689463306823285579676837378616918724325050473116733663785199142976403157962142010326799666102500060715751188997240222885785892669705120921131382580594581153532476680710173412335204324383022278926239313288062849533635792805047529645883554375629367234185340528920324091397060470715763409113901255495137144839398323428174264798808608318624937935757139712299847647707010819904237369953191047639434774478508440363615090729546168859956848963516165338769027029639882643568455299205531256580080920783712771578483490184507452906680763956873433352973307253813079273278065161383874928773261525874072584773744491772268994398576173498791573929080150729565692408801381406892750192107218495821480640563456777775232719139903893289307845459794896649358323048519855855994150527445982334863321587929291225576865905639409539382601732123052212816632003704512911286965348935320380499698292794363103665209182545758522848205050805388609230917692479755461097803339397079834014778958310780783289653466499230638206788039533803167745908169694204003747658915968053742387477633591134609593389897308241706977211825954780610237626170651766177947921561134247641256067007682963416946299996131767986414812374184720765350166022027807143088464725136030606453335907146689526412014616895787378330365747209762997012170024510709127055343634348457678221783562121673305234644919678930575733238417039798994849471766083415364126416750770073376606777123127177008073430481365028657614089323306743901006310970301299164037176563327008500035371148626463343079525246835792022672430534103880767753395876863965426351708945979498200413275046347154283208543578239796580429653677206431068665163130740234120967775269243159053642027161813519203803029410798125260779336410575784836484401899838660626170275714647970371446559346052091647639836655489748758421457572756748792463791220254648671760427879192059646583008753718862949660062480015594495616103089716674003597971426179401513713229144454746617393016271365439001276975006599453532033436029370746901916406912720340873431121513724091289369005202294710101717029135352367070978583036072208434287517897913689607846858317701042630246445619790328359439693729305370452164372480462682552781861073136190308923933307373974535216036270776059650202668766779650248220565800031017117096410115614375771621161868823747150794893767454817538617411225961742692664947905486724512765665192312947253462593480334631309592503940727288444184150485200054307434582246226787138571302548268978549413358984224815479370834025123106723528664694310118767831505169881557757267175263510586586386531159608467714989774608315039736539698469730360129156336577136631540941790185974754952590364974369551550827389034009213894199200637706100189633021855699132028528753903045922271122947073825123111382345138273378894387391351622741731459470855251485960473603717636961853396818508109678113154675470842020518760878604272113722703539433097406273771952590725733057002930087175318661419415298149279638146609587146658370799195145230408594151413632718650527382892966762192776057401152403494691428803386060262361922819659144368451135169043308552939979278453296889047628666575702858460719671921309342874832839446064611004178069897385492262212272949639908198819598030432406087714676865102255862726177573192345028768593533303836968823264690936724991638949947061269158823675733220979474287971312220174454136872382206706852563195999004296794279031146225170016024169271635055341746602495075727992436468687897107460393295918133543770253147956151932073072729620659228818385889612267214246008007357841996869531147052397058202094061308399746140416485186077202450083939053034623783127830794375066363742421766326401994867319627333037673017015874681880700656449740249942437450115793751679229507939244381457172692235054336435417381148352525611470054243658026491834802109915305859941210521346352729807098641528555018269157047173384064693495434407190480140661085514880238294542195389189116353044691747409571418279487673661450768562560844851902423724046142612738455732248453783722514078553981730017073515143695649052637226375892309297260905347617484408549808673260390220776170487866739334397631671333415013720202191405761973289662082350355655425573108311346872324184006628969941291629914272741066244755823343387489123059451453094697397451423225907257502803325470416228845590530357479502606000077543050614635864068765178172954012961515575682821319674214188359178587788441996101097037946728110822761094064938094604001875704120053448691433458691719658619574096199334628908048722328497919134617476655890523279089616014404833436190885162972806705649185387326955213695906977690142117203166740237819121573771996934738196257448606423967003442766042594011915878810023769811362660937133690100337360663380150925568330138824806033045532823961135354282849763004057267338785865499675526218039564958540498798058639572967794037080684098923500754011234479254388584874309619043979617704543631256193946147821283305755603888067486876959225016742372735817662341521462333648105822392914481603039609152660582863703143761546031550025685587506051829530106636000471148450705239038645698518541896316845815721890557631837711630459844415231330202643481792370532856961601731273968021920366350685445396758669574956681542414880299181348088317976154110203058866553015460445097119643371699193758759533944542158966399097081943880110327937451302524915587992312866212239520778494268775138554296462620482366350724874364288423822436394940956544038697960221171416288161114857170284084195904766173526323182650898116657401713792543267562040578537368631669148027242157753977372844822239120813061674227993056064215923563441495223308635842661187947564324877232471744387649507354433334921557094307288094544988264455426001282352233485638884177382962628394618750344582562666524017806517941969691544123989750661619274900929154809707886368902125378196579757377469706331775944299925573851434265032702290678183985157077050293152780542372971093881600364075859380322816511657072818729226151565261712566922366569199410478217577317665082474229955728902467053629166365539164528316959759309055649617950499121386532896470315354268839090612061429647049328442507691802811209917012056876215190529063295946130170728110291668734984313230527104840014634970652238280435354315163511488121264302520337363191049464770753897932651652022593686728398165262396436567131891755086400327259292079311423032654682077051450497253434693720188376127937279121225346044794989532669095083816331281583838221465299457270716305323957718986862374863117956421315157670446135263090481790742617360292951384130874803951227233261462169898198036009965469865215849102752105007429678685947693997841230429539973816191048105239812191629179698773145605368546954135127207440196806969692456714038116006677480178440300463658878843672925508727548895539480051516165974292267954461998465156623144380845183092167662846866806857494992723690784229663189293007581854486035258119297013333146287225728251813846242300989496652586085975331029905110138268097260113416548029133302874395714418507833442175218883906805315557442705774867280451476528920508442404237414083928382488565044992232865100291587208928901985227937670059480269537412942751992509881244250655143359496575297281355657330414692147099816510441289203102094378921325006755257578966280085181011265071385278802884668549675479212345667843920563899242475156647452858243992432433447646509212912683194769593370930622283805703400422880356080175484153356998910121269107627741856570040894994865638639818013239111528319117500083258708765270869217044644080303076881468308973410837682363515740795221684226847909191058861422361354365514183840276735570607885369314022724577528468342393371151130665926519281283359573843113152633709418457703449067673388121670786677762981893136466261158991882538259337069539384493289479128702322540493375645061386668057821321670397834168411175930807954195620308581326107956575144738777340250298615224543948369179564340024925276248333579525964230707763714189314822107031219572686939605067184971773250329009821435394219166070445143093211291122075443883278437548859676555282512988200396778436687258235691325232150477928742174519697057717395836028889662538859564200817484536315294614277623211090218688584499175663127100572425372036676606840093360403971881606276481200464491135390841743104252442327941165835617416824089304759961740214160914511028448472983977450788349304367990165217355885092401662654950732116910337312219004392212883737189305812988521093939385962892106168850353971300692225099662205188921279423934600616655224971446608441632965979719026663437642149325604483931575923938572425437159429399006900798884770929064628369075285271633740762477345878781979344309559562349093621236859886749673535567036941032864160930526692070820186773866422160159793553644260531307037154183132652546650872588806522953626580601102764019562565110762055619193311332924950944728514442999419487205847135404697642572795822530667053629309987884134490144561203889818524304177630669783127772241415355693792568964692240667387145680891709692900804473242375258276296455534734374697402554281989181994393924379498775353346814691979292681466978771382641534202056306486980051246002598671547245923766177870811316729023197095553979568051661266029191606456738063357552616510631966969473766925513570156775208877034111884488581941784784687538030999782492021252267606382334476889960124132215382790222952638611434044930252761668469543541128786088655017686702168147801308228321535915420447192924062596251586694551458298642615849321510306376293739339518247483566398036064674466693761830937201834497634740682865567616344576038825947683974091113025220782150705697571199312457687500743414803223806196428753081673303779924817531079682776055697838931665437570387189607015999627584581109295165742756359228543731944286365438429367747184733025437735026396552349020128148489331249423348864661012088426490476869723361367794265961680912499677413975066523991110214111532064699167826560225839515544671965371031110993065031701989458732973102843125769190311237378839447473012122614212033604877555100389383383436066732747162812752756287828063699327832953921986395577166908055956954278328723555112330888551671615043049896195694405449277459142083970030381346442280596140288852333444880468562703189488160432474985062224322466760254600131008332831682145469674764714620859942648606160828166572743101353601158964091655566571093531503753113798312511316671633089126079377606233091422268849165916954599832441528083131466868004220552644613196362326301594918056397553157313781275462250101387374594863561450444286063591983212078025938771797071558141709344046060447895143584522280970654776726250221039703593720778838784540495133622501547906472348100993706575049836273036874010862403694157981309913062209917180108735564889300373159138730429280154111653234934664300467431727558598539416229907251788351622485941418336979811971172649735035763963114907624324093986494979377274783475961279379623845030240900240677269057459314612606343361219868786630101133586692687636195538779636893006062809184731190137185778164411765621858217378762661366449537724582391542327339318369915763486660898809076308288186014647472742198721618973621482490401620566228518721285385382351802747444203857740948464702661935556809569426760628670937153738347524020342247688135797262699552509420838629494727663259907698279887327949329302828649941985751098329982027334627106785295176436826530813785784889976512154068223221514560238555096850404329280067890039473646216328279967888815576841720093195703727035125313461410284276384612209971993329553963505292884830667930523473114737516061715622820572277392609902919589651386857203615065973518686210696000785431598109278157624870395412926363289562361753766432932751958406515315179190858215312986295745887124416010851562176656982702450391020135740633605608485560605034172102800737227395197128238537382763066499727930475590407235060044995230883565774731254599792918068934884196355521041225724365147462392802238164805188922488579809193190417553151093701199314560606882889213051708220817832238284097964908512505571813403197847884713117648235925412968790882022645153959067351093553637208936830088688393599851603125160192551970244071412246051846927628870801419780747626530988876367198178488833834724564223544470955988907940291570610341288245126344006920180993414598809243939468300289978689608853857421318943312422718947486497593879659320971559219555430616525150020046265388959313692285021961547696880045046619011100395353158292775574115474866194411075857626721167567337470480895460634120226652571229105882706840912880433196911033409323204346085881894992665872003504339448903278062558136084486065295774325770663369129349745531170332612486183983857926356174279235975332990769836169703644122588139712799255316660049954100697713114957507018249570239412521576234259584410700918720671845232546766647822258450715468515697531308036089661368032298984749962906092930034732058002224525698069137322140672385583779324094367807135537336967340480390972289231514853589917307862520215506400552271810978749500721667781786778103745512610468235769857998544500081272323197647708910918648804208297325835211863634865469571899339860199200009247733812578675661734824586427418111736312145847797559902107267179761970937464615579193074581788712033198928574555773114436811167011186879092114310855011034944933526997424488579003534331721523815247247498888378260542015451225168110261352639880338351904921380177730043183838249326962238320841357983105818882352448860741431271422960538646008209791821531497065601044535472399097800108497322451118093173544169499551052978917769343369937181130839890407509141299715398207531109865289172476004317940390873358229405525154326070356872299075898152515349221760358926142866869222325832318470182633876089919646216691373311227945295900914847678278825728393021270607565571712671688965849469048328234377649465503972941424806752058061869294114751098997402275925226688936284092753611967180535673028078726493202810441158071337597853217737131649333820947479948326495311548596858546207986802508740794879846232900268156257950090131424342433584783584263574942936701362625005734585662583439632305786768808443675088135908693147195006995612248734417008179233066491734517496492865569385710114705526726789598119280657888397517598285874087785754673249491101018481579176311897609883103090090443350608382872337757820295100904909931782337650732573307811361386261156747342506486480074018969862654289570204850317413373523379294183537102731148717282505359175142959141749040347213863502723736252708184975285186239975077586531641440756540358892827700647594718769445413599588156570145774924504441160223235644931883929896242316248290078533074958336647472083201395981050893067535042381191401816824093119647497269192190509977209705517968461711208245058252201857954619042110720353422381748629859279408686692689209919229213951692604122163005790300863315146851285247719737845076978679324978776145531288604335944465573246921134937253976432002118886081845365615780137742277283508497446899551178954602343765727713442261775812997076739688155961763106804544418658074110093923182644345243681035012667686007170502039880446235500246887088400946358786261198327697742741769514780180980550087871438717815641153122137422799129203735463369717057041050011078222883088556768759120344604422823543855377210498099152570287059502401578814650632219804232320907810161103483833030145068471034378533088689746623305898963282168079633877288970742384389109883806177856575414991131234992302156324424416762309504305401300379511694089877635924797773827233061506031697284022825182726938846352917313941693481095465356340101862303715548479869409832860674293393612951877421821469157246344469306126387233454842098976536139484493892401620399047692147286448993887543900856602334402664529331421209645248013279320066624301017622610718356386902623329348027703839151944505648932325018167357644782039598474864639667501241691801255145436823774043425861135266333226374156969257532820356561042252739796819185978931363108081852506302252004786509117954653475737707850425757135968995710796920459043221536534419010647319402788614678528461805921709127032793699839395967867305605349333398220674816605483514996645655974913245538362558118333658845260522920257503781561935471078215311260510045353079171738022932535129056271825432548165561056070387144196398794599587264334691138516756827877551815058735586484098286019020911755651633921077700248843338757820713759832468705830003096874384183021088564852939022054798255245679544001518975208298467908882919067977938087028480175426483544150408966762659413465673732318247285691009981447517533402033741741131525165716602715275055281632603032692897878801753157063497188679945110004574870535096474521109031704293656544305369894762703793716871031040101816789126924404660055583467520154593974619658091340365239595011325718333576119841028752744270491057109061775124087250632592850158767802585363613757090622078069045126467992313633858702669962638319311188884343065186902232429564568419153974870862861904775036044796991761154917481562165016925799032981779481823684504728083428561498844015133487123435418962512636742287273280657315580865095196772121546814338473234849353802541415190699521462274819209300696300457772354554991157923471076666535009097269646459024896845244502973153750173720841218568303111009352803581009918765851290329344228594998350635320545087417181357761993750143721581244314098481744224674275630048904550949160137984586347279839757196592288563570830310616557708390363838316146683483875544113516252218946525285262640120389952582552788861106842608584387597033907971595381598640505203142946060617214223084825121266727449843935658482224508823588839301987462995537906915809813544458560646906548234197876325238570946931563584182319987356730224136164838076326373642774636954955265840468256311744851111206160989854655793788949543814582986046028454668338503711266290668480780866225756310578268707908414223408320460067656755499541118886348260014628501015813444852385113956051488037566608125147770779110129159326436718405313340376532894124235730097874692014084479354853401815387566789074237922497464586334861059029642028743787109722358621363192901312498087225852395192408864530485994345521726781909981605665906004976303385272201613969601514610351420122277658995664267048151625325859186764102826284346590239151709881255129550090799913706038415050682031977524300191617420318974171987798427875432766844848248688556135727729996033893063874121525647660770126982279393306369807918911192712206540441499203073000987965898431079658342088118737438501824846890526925860282005895914219903850471288984787282677063375085448344911392806126146188176865981460883355013135105670844829121971207050002657044770574053940266849014135277759287535194920799629452897797296685808045452557192809526688686065551077707507774626465482948291672717168240932522829838139193160625542084413298241174472336795065617181741978006163726454588102528341936177422051084756832963116056389063356721550061428092640613241106471529082655546339620461918722566489096498243674503806813854988280202360019631922535580641004527869188435675456526236375469757724800833946184075651074726825701624553198898106349546432368903118238172190935745590968064992099004431747166533691241324461293007286894257997562686253984754494233946332136527238357685017678160015996619778379222655337643085290553335119717823219595470187168195934297822764875003835632009132352788708098166079474418921175661933969841794975326767362051692790988468039754497496750666717614184820506728277436290054911884653364413821235925351568506262923596808372678290789611698196214969670269867562965269058878164936561626699603943855121398537168337332633476525731636752796050574295785094828559083649631139277502924790584213917292986453693026340489475832935613821248232043432227908959764469150511017930152287376928618998805728369782017993046581290947906887809827657055220666146908954313995286559733639040642369134550261035800190463644047553725957267601764063375440939626210826903547579444150738171195862446124918425860167165163039002360099867211739868595147024899206646703523178554221637239910627520041474828088573831392455598481656236260635242418568684228557217245068907716443631874652236929992881094296658635371500008702904266664376428005578476195912368063071360788762911625594441814061345179629546938810446135841965997758606763313707708819899071232321094200627995530961896295929251233703194852121456126620285399282427314028870470522347696765204839930288327111445309551058714279473582222063210548701521409038016942329930922533656188205262606481930255534528404568524174543390104097507166528010192852667464870625509093714008543465817717863014348939174092222556363385958961514748427801146966736195497647791327114741333957224663155733470441465870525589175794693859078406539104686899561943573778571943901144835623802250306700828961616471719409043863983205378494949731180029860077963703289968342043441588723388415746479683861820601665654908326075385440561551759944360154465311094857617419708957936692861557767213251669511384567569739302074237212929752283383560785234800771742360025213562289242143242080660880708533987478631361538436298138055231468018796938094689335868290333444680130502752522198585249720838691832312263756593429061279123495712781699974157927251182268928896075101161897210050211110143710430332390748380175455283660693447178407926161263428592687502646476102711748921323980880186986378607094815776037675676110270175333892850871767461355758351421395714654611872253820706022094631209476650510094402954691094281054707588591445808672428749826299201533566714744168140875700978943157335185400114989492142698237876973803659698233799096241469298794227223166109040805202479593120199776722027055146833770014493024810407953129336628344286671237265794977825383615349806393488058860059667937727985727438202836065103359894664791551493572574600819327639192063872781539504810266939060538062221820800394409923580888527977662538846779594465989590722154801037398710895130568060667080842536889115240052274082534718064177920747402863830020776526676473963742856488258029952209271424581737079139482799393898380798183978444983681688815987710407211063334371318440500567356554215513060330356421296688750256318514569839901688074041264114290737543765907707992034764095613336758624530807293266833032094813477579162587367593032092902899428571771596533518791350389490772213872649259586756071165543813892893596849930253671435196463169454554041669930853990424571165525962625358780604076325312515177273033014447641092662721368542124725467415666742191010057430857145812091551198450562961157597228571417621716103234026545164889029580631383370388887394105689178498320113637516433132044562242584355677701345979084771527007748007171147286094969815098106304658800866274095121004174372061845947849355565997361241896848065555492234266849750808712947678732181597402611394723205133281967556529006991277752343833960456382300713273690831578734034469063829303368276448336724114623130343399532878395356633176107176639727281735973659778102057379895728949656934458544072511859134741538433283232295562700905379320916111776893061631566716405917812177164421172061075634934596818504629658033045102612693728326256724873525491634578010313085606149878622269928087766687929654231815530232014119233420977095351403960268205293172817968001734135640000529073231202992988455308287743172566482516396079442371776788387336495144604612165950068139969282038949937144050459536419281800365397276124003395604497573457002247692766750021227470187469046121120074584459588136866558851549916858896450788181971628124247482914371244165527184332504633502213037414405621036869417001530011378852795181454595741880527553221417788353087266951242395389753167661506527126907339932474133877701592929653602949932732361523539382885021230761824690734039986311965131430506426423639196451322597422856669602917662870950729299600704353563159054058842291404576290516250002931100869116748736862712016684075238236522228654164638918768729110262226567282158507492383194664367238988561025769054527143154794556079759557786104035132820740375212524073845354437889095487741284102444509613799466412756465641873743212309291306933566370793567380033046656843844961391913780620962462905806271836549490094478333006963679161258741638592560777350968953538695234652755648770248948026440832185931834771843133917120946301160277186371621863575745384281563537533652075616455632502849349648058691379403625707061032473656343543668739205352101132970798419274516765133700719448462775797703126407441208918863530223913301925452584115252194877458168388125910325020529101731788103599815324410834579968922641451591187416227691048720776116669195597425235852256018456291283582071658258134027687184530897777506014294630457193601758888635028444051829401229556712080263222383729470717690071410396402436311848760451401529885665814916745426954706483681437120308392095122907909948809382160690938243205080113746574366227521958839972657503898593104594721086264185960333088066858426637209459786215584227823442375077107479464690060364333039279689196542646034722959592271541987114727766105587873814380819134981016185444124572156090855438731827572332564802716814090757804385585231554443660994914004618981592058515768239237392403186721352141209147448060453623723377468125122013100067738823748646264026686551751551256981248314370708681443382971269562583512811499574154960672937933167460060478896254578090992649013373218748473942845445445871849277142980940356823435781015416403347573647949144372211049957822371936935441690166146140323135527528110761958046786529062526832655744710270909018400615861504379038917729381473471778702071252613727323208394633893724850307958864552560380618349076135629793559474663354637391537649659737433929413167377808941361757100161022736306884326532520082319760597740751919124360869179579618736938187336378268713125636567515432683082702895068857453978116352740919857335115075653569725848130409054686692811723783372649262380841002142927559389638366468046671430278193622367401596498375193454955603022396621120479312288438840909959126466475431707647406353965665115237600604709275854691667787315148917859145618712584921208777569639330103038765701505370123924124616298998510306891853422412900272001825395482073493124941943628789850617334012232024505711441494024578321018069678946391445552094280365883637026279047199891040540501446575235571906415942104531908665916179602726751602721861260292262267830650279792669012638693717899901238404296800499313397516433514527474781249287849283138799908331728591010815135802006267512606676037604193973107320174933687748710100063976287348669957019210342378488150363885204004684974003236915186093636836305056402452090529292872469432278495155894809124550027604851043174610872954026877664833765684654238552717694137542404580145516204547431126775975195582638359950098618630474210950149179233921095234069241310259990532597052367507634002144126966842285184884240805352693635801234139711290313132886768201280223953405210587873629399261185954802751831132497902033591918120316153587711191095436008319576353298734833267942603030369821863215991567684458649330164072826533681572355271046484835500634173214121584694174599775420279004071857024133061919161893445324517871550012200765689937757495423158452033832869802153787768102133842830430398278353542035253972927889789576135617735887168125360109216889816092713385419967108163735027787481536957131421530928844828348268594701706761249759393876417468635192903189931442382075318605608060891200804305754597318774339290800216410853599841027163146962032598704248176518127081630058913428411084850325854230938664368427461867696966122903471334005810259219662235467444778681224402171439036897439367393944281587905991544392180386901965926586928951569103496680162774433398987871453119124662111158946877184198502234023589805681652525931527965260325729674263253031916290633636944893026231440164187576771608953554622310995538531573472409451141567624234358460874658851221336463840942868146211115812844769720538471783627173736851830803056945062495383921181362863852043301699808738755465836138668992294580937910358019988160866715398493400144952374019141212264738295371809418701766053541032445781350403701802655879050635310332403814985123873023966864001923266198080924098308798353956816028511305822788407704784531878250083121525924481252494950084192633938280428675599081296670107461465975875659119613855600320187666503649340122283169507979295782816138533581194587548012716057352066919705456118090095026165833589308387808516950793919993261322051862674153640373942147516012230393886680904294986398580985573866210699463930037005305008529745331192435714855297787784683512653290272176073159444782452060571894842093031458373691671713425320693227516788354652510755247570724950469736454944915118357691245180245114296427814061464901417911913639267420871181396263441871671134787773288217030200219993725568092573953643224054940980334643545952030510609613809648135378173278852041388290658166284933981787652529873020401415288812943052887971599337940014659777713286732559367718209204643868273015187151774016868448073641954920747465815221145472722225256627612693988353810762486132537263985979517172222135339671641687587099866309769900178028935729688672297220500315153232556773177872892090010591634831240081294800699966971461699224188592932337150791618651904200944971256913235560378226366565352575623948532267050997679331829955501030132722893662449895872003378713401275993359034147027078354843300200320312585121170513024213786667435553860206309354434772403218238088682664525400913531480865603422796076563711407991375352259651165631421249531354478757509934260914884621387445315549208777654122805206965383269444305597862659903293741683911845320529008987807343761077281564865382964228341333486079185391051121790934215716055431745235188859720451806915983896550647583982258310136805391163922738749108180710392783336286090054683632877529218661580651093909325399261465000442473476774940773827658203106652950998964335718504219163399860897334122554670446703920335919022038817278302848324482796072585107997106126775958801409638525843386164234406502483504884640703096042447038417233764874723031368017956831171182598013772996280731245265742366009165417428665147243776539544751720693800012222593026463145100728531896253664644487595619694596121307884296756327113451362554926717226968287997187253103849515465382702307249189784670018265376899061193656644130995811254126248009275618010483852973268872988827490164676600020836092836987273628930036359174291596297936540362091502218556805598098741885679920800925650648250671395075104806445328479129704928272329100202318190212993414419975642876288896942806988241967235695664380595292094780087825319837440429654560346457290065620324135375207302659843248425582584659950240615560845647834233699785307148767305528023073235402725483571332170750858338528126890302035808685695356189599822505262735600100076522920056249273163198312734600598482090583173836273677895174856531344969686207673478646252358365191714881369456271233711177859228137874972891347582540032359275953235207119611831212078325137911469615645865380357161539099032471868497326416488472685707278406574357911233958022716729643724238444988766258305242158361458000298202347127910209062529159315461792228853255667567902908155515928339917783378734233819880673864289892251873446066988617673179425550641377578192773226855324767905822775266917330490389184243625870280398546289221781367564828543092466760845182600034958109967669362998607241047386642454310032738177849058398325562063383849344540375539604240185214566963198850755669733717164613842771931977338765199778958431995064777044825855694204341031221597613979493178398475044598079486495199856517062971275287020065115680330353947328455516243860534919925041990587332087070477788071868575226187065512732248119758839540370495667431317868264460892566557409543275744603502812990482446742476329892508729586726144866705349211779588054139995518708756798310982773197289250838501235235163172863560389853713636880639691382131391856409376785922422982322929860869003702648981793131521921148616733644370163929807666839544560375621066033067430780420360699863174746039823627497087334672457392891215688030611220821459859211053745928911266349641569141759041474368401782461533160989424252594629864210502771915920544625597489739310782864333157440156635165726470161449268901705945133073705521433541559064313240686539531173051464936661692938943014545442729401470816655527196885685900148383764438725960962126433856257661226817002737389113705847733443958853744837350863068787471868417612879000533180043136317779135668756822075542097802722205570111192428633679188367568897483101520530003544571283819702660954316164284189347039113536150664116000994749929303534693335172906257330744689241521948216204617250411973660097179381413064562185476536296358615975075062148389516036436572914273438341733583491958821216852409732017159339692730269478765718515360545190453513948361293669598766219987917810302397335505126724766913122806264382681827293995264667575249044712979808929813494096676218686370359180810586647238706666854177013708418036939779705262099277825099384849730944592921065789451505590664786273047968929042499940126250606147196337457867238737393701749821089911420262583841768435259295756398742250838553758219439722021285747954277223664101772025076453935051901914144740320207150520990352376605970103311670964255234422889794804048287363486534171132945686133744622916550297521762738419295075266961280688448172674842751289845411865701286663128312833225726442308017804611073944748330124677487798872491210265306661546101121272599349966583182313513930496239880889698792918781367460756620612471100786652211413240084234504916713096748887320079918996281632562653079553494102560207561767815121723790725053718998966563399276215232313325391942395564563262698721331608521941635872774430289382555092746363818033463614025190219669024134820487418213878761560401027939079966633059593180701289830557731746419509142064001628264786441045298117557048668519025099867880107129486124535892839553835920786430489437199045204400557910002196331808201119029047558046832634168561536028195406194297693700183076656504453842777525233805790774370521328497780130726511966297543752418100563089426937706546185501473830258240366728814444386449396626050373107144007475520753933364650034700265217992895195321411464999465784021387080711167879569678924533359260612478867959411225176414846365798877831298055787276937599742056983515788554721646369281848534776828311827175118130004465310193790297448029876103304240193940858892774616058777207493313518671624340026245343678606266730538925251496860920367092931076041694336371362136163266537131356275713411852152195387433760251299688624288783966056041099567985384244026124310216980490042572344265525879238480549266833794375628273360995796731198878761970135695198286812438266230413656280890217162335665951442357408375511598351337006204700209657266994077997841043685066764132238702520216532770660817454288884215167145046673608417299500026795448606863703124296969580831196799745125743337746812700450175333941631088629749695957894308615170664646660263621014455863585379877266964115455673655587901017067094437606373854273502068508325834911926298341728737967897348500839355435901850450538264074754118220470056447068623560172133138399394740198016568764224223695874333147720990709559214944958365340112451276108056859324289063510485411951209860844853440507122083491685199476513598212126565746591104065363327192005778829054781435203430458340309480700206051518318870674254155869216473333572149611991223749797797657974138867014447342446939401773253256950821011517770000353184379227308695688722191091016432999143137308567166608520721304902363802132958516422371741392434602565546244217528160496090696721447569290658180879631452034811216944225857071138890674032226705332121577553767467685062741280425876370027143035934535416551897594125458145121376436748889636937868843637949094805399992335808889455467299686361177923027967022066121332219146753782029186908271915494646754885629746900775815494313869494227033031545098357438187158470924432915209886472154720596884063222007386387321176138667634051622022144030251441275400066352244614262778268991766302474934396285377998409533698185238619558399907834532582867752524835663062305848518416993209634961568860031298643130414449149218335586794246257347134732305945017622842120396148302363689320518729151513024279354151954404623296234593942345056907818643923428570659399184348912339644996628531706650483072910083477586222757667272762410438867797047048528546774922569449266592859338017219219398096926077601984883803905153339714628322016471219489995259956961167626429246982098351859055769769018783652200784869259871665091182261991435543595564916604058401577481409604828214472137998617669615622615191585751677363253545386383688301749213347222739661869894361861318825815021379608523238393289362006824307963427063918382059356085584289057386222908490256335853329818006464820513846451451509255596820724980073492046205944390948501496604728413951474420019990541355162069493930538833824515929236297811789657592729874362862351261016175280658539026531005396525414447116594589752296266761880300500492848123924614871926899492119141129668963925632505622256552577916586999574733684287915154519994310324013405156781902294685038354970288882361754503853196535056951388956477287068482776667569310462383627131931449581857744481215106056680925258219060024331127127996271200447674240627306547092054931372876172393212834710570525121537759859256053414641171150733390384600323404079117938451577042546506052854046597867355970836783338144228959503084240023150720642767473384631889755189069998180900197125681505965160981380318183188452031350990354366331461033150174798445682421392432732000754121560003638761319527793381594921610253779828001041815627149028715561764523768526241206155690664333756845048170796834947676545043267331597754637581627386718644658468392531044072382674141947771399952371047489119431836255263658209298773610360704827667056901585406180677469812802399151218082423937844715738002698821050453510857547199806797541145908247745577924214883282454524561164753816353400738596504395301379964657092124485718522428639232141211936693208062187761326439850629120507113895452399795790135780189122757888804006192053550427524670367556434922118609474337711475938280352973176477918662985915930437737823563674027448550601854949729489079683414303611125702309304693223476040514947509950052985603454441916883663848159912536678149761406647270882667343393199280669492450307453125236520505509418567754790348709332916139708841162899897239097154093451466184718674947936529870625265741506945445372350912042187200667627205233414196331573607111620293800821119625164361190184767011656475289480628769846330442628251298173919144685133068886158350895925254705939673845936593883726081783277247833854196008786903655385906737931922465530093460380789062733774538933591597867702469635557674726642879897306029600004092275106900401986293193469309623303045088419628596583408126721215629176320826226288501084247029634183160756253357623255413570854327854563911752098706237172996835658150979244205718918801077693123089387273015011296332690483916525614590603040108282473662006620763145372336644917892199813718129307022910407376872234844733556378256297782126602196240822974399808771808480206385255451990106663636584824049959490985135879527452908906225288962500867932695040996303903170070194623436874128016403958209422607316235033349870804043648000736073445686291587348764797207440818117719449599041887805778781721687724059436400751503478130388201656085715382029133225172571356109100252633937607768503340774348750967709065793292248283731147367890889854161868251007288234390306679805293327168686981319850936032905510134519972878563629497096339725725668038312535845695881081951828065245580309651847899683697856451666139451387005174790743199585993550535723918742094677634604269138859536049186583787944084169599416528766984470703882068755376669281932517568132303892341129829053580536222365159634522179946375487836941921510871285601950699592647994546072521973840538999990726212116192987771280713624951261501952820947923432195450676759099132050226825531848447602861449155866958818796059333690869895611772830200318124227665025063130910254503800685450845499895747599151443276004449510835862042621502095074386051250296174703397712998164698510680162071852422397888170538419906839831009828297331692028700368419132904120774866035451109107453777071371099078253861663138789094650898652529705477348184686693554880639328091676833959020295655666878289900760250689298080964473156307331572083830686734621412491618282763453855727780094478258672305900045933676349614988005524585712039519996561980387655262592961346958357658588404399706248598476590268901971120403627854675578225544866330097239835128551840290387069658996513816636768056495280104798709857074102969992481813705480317240828808893075371940834819865010944323679221642882578663612692876484905663833668744234805671290004256712334768452463549973073712295634099994810594739017678620300307556893806914126392022476629370680267096045425007707097407298583897559832586258290818345407404660858588116577396087972880953762075365093108389108825562060257336559026271113315832249265180199697179309504908836778405855238237202345795990206033990434974126773207728574365532121242682435461270271785657211855092239229744671229983748205709163677643452126581719337687221828439867152411463674953858091952761269933912118904930514062599334740982749362580423194014774200455040870315599677325237523735191731983180869150470443096526481669031242885333153208538390062622021849827306826946591980951433958959106195247106003251213283386557708045407062132823159446733417289156227768481877267044417904551137468178847362493364651917536379237700512545518535799317298340598025177844180653432515239778849784932684041322406256267025900318033631397355768353479786468068275177837753779800029459604860803434984816259086462917356371413387009891007238111359803022238823616572411608359121021108523504603391455389828973688922446311571989867259364832528133167339567187546009486538797718798832328641267030517953428719141007280813126313260335318188096232275417120458014576233665196639164696502572076213985728703530190110003746160185147515141971193191945453294052316713468237326137849380088769197660063368026533051643531069502640861707360421341912971756868171764423056595565181675379319734714749306227552258114181127238855238233508696692966834588577113886677157203011036580021069177742209412527725488496478259835757885217551195802244254656819491537242578842280449190345545827070821134022056696048120698141123647060688813803363949334808748902920070624735475202535300042201673948977100966822070724803970809739588988808479300996640507852633804308190018716654895067462189883600522161010357947992842931275126080285275138622503428150035198510029470926595163265685443495538840855521720260599524006202343299778695434280706644768592562220408358179697954638503015408063643179447705075179345816392942877280258996118012253142370703145289131993830202269975655074026527262950345266517193876763786688753878604516584859305703469317650454422116137041210728659636140535099259855981682505523625730056484632815023382698024371206440345499808699165281619235470076650562966108477454003071391754370017329397328305189785900021062456720420785454976282896096266889651452013165802239225429623538166764229492069924043493974488563939632340545796824773996845599265418586798309000343746154562410824215549593329891698775285077062823106396577740047688136904100231175516109235187108951407786786091513959730803033155981143195206532659240926452874268902423814631367769434032978537998293211316686124209298035555269560095107009653268954633606938918709742424261818875839660063442967045593911055296832264954717596606751732393869384734258755087569694592705531260422509958782482394768430233351172062477934711266715216063497381808439847452545945782384740014107391003925759715021032860562696548103136436778311092929602366008062473500040904056284219698674590016474329279350641227263422041941659982785102072161840488344998067250360552506612451176031942537542910609856955366426578569242170327089095387710122171478287339440706463392711550990983181777889607551737563492498917314975285099877714477771414532496004941122286590815010002602564816314096109081386648634095007856315517009773312696770010750403387110352134495577271777247400567079628731922917004472844678523091683979817475668498022649961219281910115073844643971536633501492852787313329226952985346853349242524585144502975036761919163643617466823800253089206931181637427565472637943352677645983383359073706633278372692274185261643617012066094104146468821456700561774524215885739219262363357954598428339612116831514776667357668974671912179455101575446833838689999527653595162482631990094294547032352953560886585985162990386846851366064720251766465336102298174748407366139071459681481233682723467843331889897730424261153501307743560950882376645788892345595816644347987102625272365467879100795535663371212470732153948992649026926549351844217282531186238375142119795679691704827683676229836551058991415900008659330688317208760329627589669016045626869029492406325219696210363016536634051369114646516530178465934282194413426329705285633587929365174088204299095286258046255743476702199009039110518732747458264440385953406154736247187023640923187492944705184980886236209819778543795095950633674818101462453413089004195214564800709000963644380028425210811701518438379407103401991912658483997853581720874924694047400472337026801066061709021931300403975304973686120478843893232121714405915426313570745050385178954439059256914388861979212858597390599137950488226865219132379065779203721449677553180174247015938543178771465469330202360642960207296288202351906844482257703127311324761651796779424255961883355895236261520935385781283401415909987605461055734880396729670101632739274834168712370601849217249695917858817818011601220703855553897968056193462920599875689573516249000774040476971499752523163788939461402405671678288384817060687417054002013251481183250972927799090780566891152780412226509188419244423079666415205001255625018758836893453843436768064612442565958147702280681685109225195289126745578915906088403013534970001580021725449536430166436207565466355471566246375180134241642566969681139399236430859844427412019800453480270852202063692128648696958971320154011061221404438321951740312777940115207629031997958427164588962154913101871047710717855295224901657393663028499323473954401095706374873061229725497622846831474561725362169722642442984339402610848292619955987586557163333125584459445190479984294238435548814775877152162895446228945842725821479645149352945287013341340930599671077507447492292115013159395880842272083407230750419267688152178583384718090629118051924626897218900435506970072389898225625075378424545630917795441520287078775381690241039123034289799693026014353453894233623555920057125825573796677670502895080241107755225795725359375321943295959671685634477679053392133992968152841813090278093141820265272533906996825763881406190334603257386755109880565922966054251019657122497764900998412628088977896796232072667088083313222986139884439845433561250508948693455189750304794468015303855767023602933453159232470824113267355634761033993757422799190491922295611461530883568234233754331030647381951183080964369954211730607038856950914775880686797707305806082470125077154224454351412871851677513649331449029924825796467207852017826771683835717945089010694059937378299732471700421262459889455745521803445888284383625740870311677492028909476105406630810761660709230871021362924593258389615332381055062173255491091347056980661208100264510714484329078644157648916946806966874199800165229590421552433652589262673053726293727950310012021132081784754013091281261773922639218803343199428565031028738093038965229507214011029295360842853391840751343371275594216819158416122848255765275854058770893772653878241788996937206701929346436874397747873415010108286636177776583411129562916129882634932084339056176321669534148998855861566869349703531958547717106783671661044950495566523320902306381516980363614845541074810447645428638226877771132543952703008074609213077015587184871665161990951891808559633873876372807090687974833996334883108894325974920428151537812253249423273213145834416690993938210132636799977245265416366265181647256859271246915325696633303529370541935618921208823306391799436828798641486608147820473478183743418719168527113852684737536499023320998440687235884180277300333416551412322269811618903718944130141181053899754115964850370347183858407795469621569946328009023268520981169377825606081011834494901795607574077423411254152114214426175261816128850861094203994804720507815769314308645204981197801308961971435063284447553993843030551241601956392953570100759644202459650708836305569117177337050200037160048747847342116910125053195660656466814822930515638644644144065398790173018429250191734146934116952028781035107454106517039638476087797243721280801923324767023377424198623427016947959828241261160289033939570477620975856540574425487440273728472496073421985379327267633607206107176265374557847585352407185068491603396213640196468099335180344320247934737432521409672511929445043942304897177445366366619521536133046759273795145839528253355035834861020245981568440135896634266221925196810068290905405923934674699524724063166715582967510813981921930226087481212625379736957223924266024757461642991100668780281044833738814781229703557480418922131706673907540485630359910825473112836642525266821360099411792959813367376924397097161792709469303479546560942872388318446242070429514612556537257745825908931817410434584705400376192326289184051796767816710053640087838097808653873806051472778414852054348427355084897743839907878535606954188652436850511133465607097105720396588757590755583847245864141997140818547569147942326313133107233706705703589901102883217905514850791080748926754957619657077114984279740762330063524449076753055889579564356601379649799444855518118142559881123139127262286775202174996574618827700978402288612455696454249989557775395807360123835366115421778181392573062970511061563082978090285840533503336661330706393871556041906854379430288749820373954558037967526296546044385040299399296093761425639616984746319072354029242991635701985125778539970231684043438970336419361508064723865296968599020267514632942226873771537946726323103639307382381232005565541768879400639649901696757774169118228314305074486421648347101804796334058291056872691404948989024102228252693738083556457152404553994099197181111701984197298332364336512463287214819927665393065196532008455237648600481946908790120814058094504407139367171303644580027736794421712614419013814975573661215330743419793683000159536072624659206042038390364498103998897873038405210454436911977735993278641588311194075980175941717781763880160781341437575798534196395335236669634234343935781165372614770437402112571562467776860902975072910606617564450743407796676481950802711507539330075269987128240764356227600608643742613115768637853487202809592010508251241438712623760588730557900977186495279787591904694353011338927198135126860580693128083488943935688543860292858278592949030569887962431763899164584439375839599558982299333286986245145834195064294762946471506509256577581789828891468708599334311822973518726286189894864257099333050866300815896405539359232510649682221493809897803723054268147312270276723504782136971579411316659665540145447421362293422431995221463487433091999052865357693255161735497068725397558441048128060991604378391814685802947496056362153667700714201299309154055242546724174250183671826683940313688752552071209397508014117352179112291144287185480200284506386831854131613081961380854360347130757751878568996629821320716477077018975434979996327722333314114143731631990813821140482548124616910220037518304066461322448547144826941642916464228100156931698716719130371379622223594569774378116742835470740646378726809289631536026998309024544844189691890154492173077782887441510186285073518654824132705390803015031843721391859211584744844623140486358489443593959886712494643608763639950817100968903987916511026194990818526426946675006033207530423025469600690179092776216125109538582365211168727534790277441552831810167176287170822262789953305766276566388220535509915223778512176448615258741667330028309083332631240929896786697412274843413736968544557620032565206277619900675054845944199706254007446518838354331430616596528020405423221436130683691772849454814854461068085918212674966638051730999161439092671800619169182263016170096823467822573727869527919384014063334665225054114501030803537697420998224922059460352089146653920489596369644792689836304463866374586034480094318540438064540546959630608591514371710754598840848972337023590288933672194346211622597908987358637107080729853374392437865746707014079111513773619986346004510852797229566841194202989395221598237619837005151202005349069412753073369634186115078797261094952015082589227657689994054465975044093119919717139137475922349155865688154712076178840632113304988202440233416933487070230397069026281103145903519221551752780348738420409110599523961071110062858965745602341745260567126909487266710121606288150639406815539586540654653880124655375928862186413036943378891207599679351737009446301153850436137277313762332903025299633645840389414007513753241251425302478785771888862746920727212070398700836976528228831785005351826799865851045387626170213912059871886968613594370751726592538746089317487090261773137414109339382381213535545228321823943048998755034443082896357923297461915507760337574359513226453879943615397207085135975747208899322231181712663672815155835959054400232637338099921476842308485169271011870250785252070286475230556001032837682159379603605760453114733421329421525447628445331822563621344218903252544082872460523269617079692412823909937846216471922144240774939139239279721614896731489528437381550039899477022268924703989587644256103135366429916176771564520258992562676879648453860478358555288938484796977345530355884756959082110297400671556421592664208190200566826194192061932040631409019400767465610080030871885638715033066369084900035450634006061739308245414121710450111212613333912079593564137447214771024714196698163831630955441410889657327925965519268029491594950703499473109605607044610522666160699699696053479453725008617034450622002368150435831133686554773259167956488739370095708057491558776316769574270194083193622302268010333102557695929358591024500995908476221622315381553540404818301908324913154469099277778034408359721148282578545333242840763899617284865319578774105519824612802842443173539871130691267666230791611032303313183904990962274747599762422742269371113902749580609325164849730361822592928835761311149673634848173476258013131916073733030957975130281950906966417086616180389672646251323684017308698884099411102493858619498125309805546323031334917359948524182848879185497457270374499186929872450522177434071878476398319384880913030881646615057628707237391798942270684796140811746659706145808060362093909396736718423027421906666241734739489476510776381853774952434618166259305478587351498199238199644054297501237535993433219435917636624972232591219041771406231033295477328035948158744650322137515216799997747664318418380032806694725007234200345238184065588544230550477536047995363419384011817027253228278730685296606121767947056628568047257467547555356298515324991849406419547723396874024276756599414358847769052245152494473955482031998983006717087361902723816178680413687813199385851313249003840619956160028091406627982379899578467892929313274065428998710338488793149011840143565544809633476622503333063560455382709885481104044736819445080997906426774943828348919313427435078004886911045505245364460737150268342884568015397391546766157838600287663114881457726436130268472984279672513587538811780558050845711912006687695703839898249860851187446350530184510262625210250049370132041807467063053264682794232191193447133745885745771800566509120780343413832198702211219932252252935237507082257247870307349108339734658216376929846255795991840186588269950947857802274893654731888569383172670268354537713140656806003029434009554677046977242724641238688548832581106857788547497374234458469632144177446097196968007936899071067054455165726219317997660148993588703512190367849921980223300946243989560151249703809174198922346883251368148893711432122758935383867495515303077156210822888125134627241522499229731332914835993311299936727964859368874706621776405354021840281951602730389932702593857790252800746218844426676118828647669684187368282538162939792839755701707653178051561092911734979171087226862937267848523191224419987539397459219442098138302538017881958256984089613798237637283003198907562775167515084469915864148308570533629486425842325234396383459788206842123271222927412441197579010136639860644462430373904191429117953606696922377423383820757031226453156151018661634715197646947053510235569506519943760364695760325751717818971273387393027671889746305528665356582267293532819553557250631584932414159698128149617796109449872713120369265520467902284705587475521401874035736450655401811788549202000770786978315088172826666883931577693404463518543673959505643004588416484362451239544324513002939531973269824181582390441324582267950088884902040424700030442028884166505948611431756357629030180619352257726870248379311690582169847143180035781622324557173284660354085591062125593185536176129116358218618524146453900275242705457633291234638928988068148906016159539382273534817641796415944350677157691435061440638046255502196674385939906400638225882464171486847226079164770434033240702138739553383503276609875189393181469793041022156868262655755046499133855196533695011216482278903840946458816329630321140528762518913931288166209578462750970982770914861985879896453561171798467397900260736426159786882650586666560880665461006496650399727435506517926177861546622863414237870409051463009859436061035230717709112689562294678340320455667559098470697815366603501217371408497327983729133724350008542117237436872331232245669682361809206800730328314338855530936577071229845534930040802643252008698945024622901746368645230845333596052039305490056000592471173403000814013452545107318269721460106273228639155168049610790765917474055305938154357868197007716558565896634145715422479318017919527417155563276287573752886836161120263207743814662459245630810844889098403901947530928232401730194202802752661230631093013480934690828712345962233517583913959022839443405599114113817113997201525289533625303317066283896452301870927163938461442115778700403635616474599146443092272107960336292596830109665065053596040010640687259344580855927340504230914889692789455998833608077745281701671506444169504644689493762073565181540766216154835577697395827157132153209105079448081636081107623098005430042860340125629059394809320271333973327082215347449615279238749607530454186806200168241451784958308693691421584069580221532164423800886917590302461346536792719078328546230665528898632049812064223656309802374997101282140721920046351372011470303733849923395584892618194578666135954071575977514022000830307941262474845739672140967999715282099359999940065736440982657535633893440505542715557323532104501554258165894079250124591052477239113302920841729471725459487805097804552897637806479229059392356951038802488553689561851520884204824274258485069149216102767304479841913378150672493600500518115203462692882071473348418157175107872104155054176526642864723817252633651323020784235047455263073194560538895217667908930927232037030312755436450213370877064427197006434189384291614605820218702778890685269638812285543359363595391319055818960418470871121522824798882710277554992999578825962250056281782660489498154415494984562126975107261380690209201416780806484419027356241680587660229506122114191091271451882698601216212432447357698552829805055989165342047261806878302267302225126324465650322631850997358006230068201641760655154861499576798760130456319655242322369315777610664367003015742215332225906890605405394616849270436657617476273842783389319666002739052531674317924785578096288702872492572054892459022895076086645056067577281253828020014415629175986955321260465657566971413314426597229617360199614737466324422721404221393112788780257001618714605366693564269787720018096689390236882757176773447235819451379376555397965228665244630272676022003829782226795637007561399759769142571802190684422514065600629803752296245125883645351998885628548449188812242298238294410046493179677154479126655212884349003921551381970084331158834721519501851636540174180232906532703582931331668258722894871516656732717540284333194268020852836265057271350700535168789764649152962708015907790798231309533500089444361196383819552824165400125757767775279709097829536311926486735295050609276973488293117984932068314434005493352466528775365954716369941633391845373081382052550020606751217702901905213530045559063412042296605207923053398774093925413018661730707200328193564093319227998119465908040378942744984438656937728698702135749065425103099314670473785911678942479597009023713916842098090492632991657139607863512810908002090619662445676357729139708701895684234227612697525313758011810060763611444300328015275214077827919634593882777498869919739880596231591045791240013809372151118430996374077637608866999964645094181986210383937712760923122715650576973148916896831410713696527947019886447592656159230251890084573487351353432447391413672712043384356025289102090821979764730657667926293421931918528456865741015816166177960113860767807844244215762108581394778389956348041917954612648599162256134055753232445561304698771001276670786813360388725004328090180834201013024141682128531720764151274041663652511184521146088944899355078540565545292537523002084858292375707436935328090214432215222994551594383430630024341199552774354598553766244070646969955959717565920147636011283567677852178487079105404777848696969588207950571431749075244261126914105103607336876249085124523656659064043914440676298955983206159709461868697446145230760498093399294707059334256080611802682241147036052201015367681678977583372703129578429333291811575416113300674525075136927950889248519348483515285001483162660581821896073416094530857388451046258107854808410128446873022892374667461685102135844377995765531611759776733290287751629984924003432044230153315247665944247225983706966707412864383674383649207466674785100327895236131555706044536293625224341569909853058016253112744211476547225028130860575282923187605866101993155066936093060422281960469752588093920524011513872140281446992848562950076887815840281659802067448631200192646068658334458184404276073282289478882435617732413579236537185613414568243057078050066408096707747794083403985977256492768238558974474765884788016244204645250594893797939026012399938583975317604662810046138563876971420506019339142508943511491311748040271415987625095613684491644213908718547176212858975788779774529319132096348525551953898549973474056577621105163180258952414654476178343654672722692296184976693050776438520281350793836493020931359300292013275149377096524477879165340780744233976269677225550624349474149424901200383818126579564061018974531810236911013784385085229293359979849294983750439749213494599772620914660948666866560057830417758998982941824470983625087107105776797691511815940980435747366966958180524951842107429710303931627335821623884304235285074716879947211227399832163273873880450332424875257269093488376012061601384705951613938488575277129324426912997544442495643988460348756006494164530240811881195880272684534018018440636040452937432451977958545949318138725031824235375475814374544646540135743794031071152780111839032802229534981107891987752390370653560657831484137052672057214004842649157986589331224215147290468042512347944869534389428540902830970226638563932954873129381353178628983375418204249900671336758182178806224589620401760581150920327243957545788945550908437805069531718940159532699004477725435736188762618616405863794246798376534253791924421253785397545217445607278731297753963452606718756739017525905756734207224787622951580229221240741693933821723000408461338567604951816340653964382846520229454265568913312628649361245472599490936169100022045333162407580722920968999130351087906311646784742652106830752052900954234149975022834150575206418429766971802529043502526275414279254741790855646820192969251749547104100256830187127208580706512526412585037983365608094079396916597513696208285227617696063567297448956772307392059409479775102547941453158846127388456943770002658484992651963697334212318161814221435582582396566171480442603355295751363320774420750039201934774889105931744430668670440024312291782417139845463643510388171085325571964969257658975644872215261440405247058138453653517874525495922349384678910609386494412829886123830316229368814024048534880534282360890977322492820078282685329332391648986888135370767262387997039251604049979809666013757327442298694978023587253455681298084952601724727284998243307778199406379274337130415009702844188978445896993947230480404945192913670006507208616333658281151673770729357122098200834575767960963965559044130514619980800257501842024535525475559966689607137396884957439797333501046055670572913350258540473709341795724093608964601367575189963633141791585704908902344573795600661292746535720278881376328221168126839776854434149371492854708325289950021034069979831345968858138231147034360566299339313829229779046188857561927054000886978117196171029477507884623308502512868363376703561327153891266650320613358912957135607688035854445828628584660512819207826973065697228874871729675183641424430627051957327854379616079002674775982487001769227712379035984360329618056059954052527153847267211513474516398007522510872291353832426550459802607989141916319541058012585755264507519744178553273543831498740070414328043239029875100437986038050133892488957783980490568316461411516077920300632042485077734682599891657276530270488954919987582098860379743253259461793877810518297984724718473466971664759023223392412798245301109297170387122069790075722035190022270442313257918599726949048885638998871320848632706068183825983115935128854753494786684708206943558080565773631706185789128024653573795605148258257824539770254782842345981801155952129232572013226153653746507209379453261968820585503396879123448092202019582228886694557926486766272238487154860890563723144530331758940775744072459935886474310504074267723410564414225261484255833683490029399543019310067390618179970918089548954175973857003796034434242519783376322206300876090094042468524886881300642521911497626039663008674899720335831389127572920567764967084889781616848129630898040087440650254366645501094737038804650136724736681886365193929795009886317989517613808467011157280547021390464025085396005878108272343717605376414195567813575159835447375173933998352018524154036139421164785154096352292535659064884375000125378208542741926193578358162909968966087750946773184325092499116171481088072371973548866362092703561440485275100515108435185903317881649683188545055914227830378980583514537030527338671539618832433380546001894292519772148003985321249096057173834581500318136536378928268035252585433416653459671684561732298601144468406104066966914668320955195667797432196608474056079654133510371694025172231886914204707687136156398153393124601896432127808661748836502674664773707918178068712499719675636829062838485052769700982633790693976831971617103633071828263253083385290357217164510928055744389010926957395269806081664732334266635239072263232051714621064960383485089626641940663074409032707864908015954144141308867933347327752392904260359793785970174403498577116735638894956798843898704273333648078850912284580690854409733581376873213669007733634027085446131377453317011038772444443076455955508165478264939109213629068199697827555384154455306084471621547211167399174185574198266275610814346340362095535383851845950466655722039303325446429358888718581100819950289234160788744521617112766072538834795471257230333666176278229610591321226404868645612476584635857050075551098865955363541249102833900569127353008635055784598291652388697354649230241807376809140908678404686723654924349447506742533140091556452016133063608309743983904369483369024493576967266751920159690108157197306483770998066422394372885426855445874155099290218243805129435043170980262088506800112384497025181987463794513426338703810072389012561146973411188424661150047593475796268677355569280918951566707144358236990385471263624440996380380697358809613965001107516731157081969541972566690405420538331402315203182511160683614730393463993459299483794255966924420011041677471433326384602343352598243954137930112166635584770437043037824881676225329224559849390296048857177912728552858756369683446901793851868173068876426808010834850715343168191858535829476752912741840358994695760013266061389578385708795314625264036136307396572961874271911949697281942766751730908154629906028386734610913443859971868570679759586810329793802520381095458264251715813623276786877375344670874498861925715356749662714557864302251130519396601443160794192568064571902355866153119968745848316400880165477976897967250243016028413002268809154430797926077891319707323553796712473954520781024891906871538158954928477500500228748041344142456823028223308984750715880583361590210678304554080840939029861534027165617571323055429722836092155241986071904439665600643999775653654748023010913148075914226246998398884217042507212100525031118807778099608532012577427456183662917783669136322151079541134152675730532536102738726199154616077106993473646664233746683127504115558764500531833092523759305767406175964408094944689261864343194371614609573647325873854093997510219786481541326682407030435939049700337160393835729844553162772868805741534598431746017602407554585789970014903157357200096769439701633211071890704312480569187650384718585957042786102899630418813715542039701028482364051977790159443193906320265805687734043428907748814269846859708854183770690968938641157616116996681205925779817530564632752123841516204710727266295218180426895274862841540910170354560641169794134989920634555171831976364899663745372912722667687304948338605449466044334179503835941664220220094080253639262432636963129785945872326080420152906596171164404765771013796504556729507830206991117390327946782160910648882237183471494801593902749384509238032433560355197244532089986703358154310487731428311837610716368700699502696328434398822118097970539494444256987703947156083588913139862493698312875916878553327636769427032805642329833935092752947156590271501452832882247065091965141860195358595619664041855173027031534780995581977327433369491437010495070211621302858545476799436676053985910054841025462530460616805448545148368437748403278794001061321437341964090880404872212595309010161832542051137730361374928600980112998054877697159477106039354026805527464559492872714916999536188904782420200564998568646040182143044628422158025304766749112518782123537823093648486386168331328606296012057094524672457412582269689760754126376305933045426953765319907813382789745307960229926844864418898861598285905607516350013631868501789559514518654008713549728215704912107979811715515198061961047348574146640102352151523112691927231536833054963315829485135182809133711143129770455896530823469579541929718347340156260754089440711610948137061473319267991840304758181565226747041219008299200687781181045728341579258620906265682773452577471610432900007388123450695440774943439248920679005622706011925223381309303402425206135596964668414458641421138266831620153483101327750530795901497977523201675741776065331794841679172615676391923915960952749660922939460933904053127045231408600339903730054259914536860894845284579937907232571260616635299221994140648841617644208612465593612374895178268544684960711363409496141638932796683817354761937642904072680755927777537320316158994916676120507994076347601509628209899861452128790205061658704871806513554450147378242584323919933132854394142916643979229553410907952686154135318978071249802781943165692661543170400356417786436810815666047447767378327492068087299240727298823757174341114362714966932268434559954273880574545882336815272788111699026905593261491694703289839441699845832815165951172527885064421541583838418385600359020861456527799718905592955324922506808212607848376982694718746294554141775454573117908667319385436510035607942034278574044537947864375051655815119516028879841853644610636062084360384249367832286728810764990471011764405320530331226026909623324054706957612042736722966733231312713040589425936075364549476320603063173888543580548469169985900302426447173130856792038361729508489864085957633677212327838609569965465405586753681408501496902914569497872842759828385794753140063546355567521131205394538951660102760011317693423434708713913426564223985388837599236730881048386264300658634362492710311017800510483931571271267453739243903063802590298296385887222036199544531949302224623269093859118367538285169437767719690300638333375201687649096765013716270958208369181600196517483148823006790906942820380991943397008586406392366731713737986007374590877865195630833829313033345506010367836305796206544717622555312602950320363917073477337355021763345779453444825417462273429606257397709814943821546832305062558243648633309128613589514802328597050284119493470149532794081622165979848208093185155981317595634301446691430044042880164898989119152116885212040811436706414190365714719014552044055297376718350106857253323302682132097846930008909997169370744664572244395934874436764818175077796867455057352028150949245801900900408168902986940370444010664181103824106053805931203943980459437969320151937603218987900582701089596378301374921707324322143950620963975318881808419757955393524640770134185197151024383399560778576140626062680725254947824081933919621785137266154797651898521519566424163612919628065822040991029584209959619273305672804112651799226570680099879511677089767580386536810062581219896611210103258030142806000752163524184572390925252714891618406721158987077965258093137465250352225788511876611153160993163907191139315588107844204575176076729050112760672327476082791381611874863418076893795279169602853742295310420101376039425761842092568800951108142935142688221849982165643140991071154096610141253383034517304779477609135201551560253359932909639805835391512211797143938552023704451359417600717025635458830558496112632560956261206269402630855434888400445580594119643636324189654379044652737970568320084279014163238199228397775443234277064239210474744588138641659809893835782943567182884830975158239798917619814488722575279200289392930756881462277981739420060177043182217458373351541357679679668802303497272333003846219620141828584544587319843607872717719411883255959970374266399330873675630659022457237470903274874060118046485616984100142908457098790523620169443890671963011818952444165019647938353542680623045040155368342372734135592263307500104744353437676297487884381353410839626932380732657786019970104955277985131940949216578426339534074813302127124987155967908613993594283866290415360381507457843166506462793951790929218978141478659547430945343528591343875858793017773017213270331132589772808027938991766601639738546779083848042583196469520388961553998310691529473063324436149467759943177177375642807257471930409352899912157844484641925832033076820310215958973906853393760888548059498364955558572054349243255088897505438903117827140239959232461603967154409895650385689901049528664592140334451781162899740409225580375733726601236912019321581055754847520919891700940037875374236932918128389336340684068204148661526236432643596632088238430431042935217041032620968616492699111925973231929894099147694393886297662881150180594805449584290100748613444075860038768562820819739722850672313762923266102812914415038473873321772253337047714473419243403588432298031667153053522746074183837587707708189695735499100706729331541647673603199716434744019416824177843897862665030188304770735223908909068244783073949640769124461393186937820707358283413058459099074679687503861974302187069254313078519727009519349646423109619551478349958766693841706500470797634937910969426962612180551600901975117861718773911444767613342042685440911925328334532387913764789599405332538993259280482598586144860272017108894458459072527203767728343186127292847937690521152419216534962783554383133173548803547272415700650871251288205094101282424103792533449640728140137819590291524317213282264132221913847191330784441751565126166214852153468974368820462271714882894856500937858305526246160391747485282222962877782311022065882819370814930558310099203197965867712487457281716204110044448985346063975755149249119635788958222989227318925805588301944498450961927286108869352548195543023323388343533176967673207257074600246908799947745860167127449709927692027982618800856765600638040052538056248062260839999153647901068117468291788293341621622938796409470069245009097120542325327583919104758835692825884386543281775480760272888333655318330547430974143909613682409831915576825499499906750841184231132023062272261975784179439042800582363564827553516139473372051426447245384964866593695326512290796320968438324890955829313877996484820965810283044207601565863299535654481482014352714170618899662689177384609120224498830660578491077680147935051808139177486765809317492062693078540730314431488854680946156575566631650155628797354372731680968688485814912704118303009060708360174018066903187394632994279335041899643683237450102408296335436711720132302274872423582720213210761350945772976951506315189153722763823893294497332118909991717095492080700213273820228764348507635298654372762709903416651494323843711568129014957221948934884159801732001014112639263556110863301529165618148757762345063993948758709355866197721511094563320044658733891044955391574197095236386542517395777602699059494286423536010656550691182705623712445279080917043707835824380678496302051402448445400627053057881844372878294661701765552950136099296999944253839420728025654887946918806912936456119016580308610509753794208874423034818604426282856244067460142350348147644649213985510058246047513012908896813259075598987804979043412852471695685430302115120991126207885142345731075300089693684189373258735230248751054354456633915929104214731767577031905884087530280309532212866254815335859306704066914110445624781972805232960971432665031889271755922743270932769581475096188282860765709934779877024911772666408643600716045852829643730399363111961822430361121289215542996350434367408242776179636669320255346813353908791651855948873050063241895594527632061952112749703475730482068008952700791003806842195979803605768860566256519586226254069999308340895540730436739412297384408728213411115393476344510197776429138770898416147233233578571575581288120001703059591124470180275656597303621966226985690166085091656707240937808830125246158933421315770920261958824673523170007445839786650555614109830716858553607456020756910119922606630347324924968565493349244449109390950729820322618599315795669697661947292985069558702880363878411986701688276019524739340894822123933832641857368767840083172956258095618276864069407631681767162304483391291772746200157824661289979335962444557408722485000255228848229273348413075525848972257097020722331502560132277710743943600412105969324753329799355654093118604492059989939687494906867830138158717807607976465562527992860523522297773242901656202790721401506126828358623674993730800865562532271362377512285977138458286339593343984017892317080247215663894447125602757539650563769588607593148689563447246306544272795255740195068659887372470046032380932358453440921977457490592812626056709106093588457472946223442077607738170103562516139692415033528423496149516449468128716565354005693882661367963738169596356763415371384616889677099103115067010186787630898521371531981034600619031754361961180664674417421819538396313494625158970633323355652131149686686864363424916740740633150773885142993556070685457756296276641191682053158429881187697804223690835461825498599259675111803890421026839168864908751864236275343504044187347818163173088242312132554169910184516307749526790352967814585394596433617925990880918058239859136524607406488311278158777056494823570493446170343076078204828147745956078836200043346566186413851092922496209751335918046537019756976087775805741478298454581880258070042432804939991379766608342569555572541725773199634887740704890547919131415212180193721793011569702699248801428878278963706335112432226995686131013132189727104169806512789168641085070320690611724249338927638176790332552441444061384960891051343990118321952175103317426229935228514281651506076462417240415459875550403838905387704855789787650179482475550380529378173038179570234197562142928852695353159170217719661825579891779945061515297935405086310437108324817948752477358304992605835940688340492792918254734136443067408185849269749301029034420398845279522289588386583380868764948668267735402883573842029468399081283656074150235993766709590977509499709502814211424380541276173358568534977568151726458169315226161401988830175475406247598924965780388353782903654036920431622249109097508298262941961518240404518090485760692816793140638954750406206566838285559255802014358227979108750574559486275366139028123273010617186237222092235298316665173918424530582762106155260753223012296318525325717593451461323706124766781310078958347395492687590583356562969455447465831109768804630892680746954072409239765207806638549520253389343579286263626487536576173255861175403813170610456688889495742138781795755653197806223341886659473265643089707180826261599067299410111876241300903571828026755466540931267372145423472345638188324220697322784417190837300481627162136059033125336997006457395418609690998689106083932841782093661143428353193563366583010877696542844691292313907762443328267565069880563576030932424754181148077169784312150690166689060860372928621500428585153740713275015423643927137820196490096286328308197466379533097328396257661522442961312465384048089563832237363874316685425096854436659128341446447132112808375245052167604482262289033640701943970156692307742692758198911233885245938679463392495156766795822851992341107179926768107021228068491139076308534997195487279690864459651553259586189271221843823280022340438015072050736828664959715229844374898621391830814956687517335897705462098896535262348942582839575948816383445459985002536148773563743167010213252068145453039655433797128652344462173328840537580982715825189313359404403354497993283506914775995842540816795898894826485785903138688152685409562587775775930843022210513596843977271140728507217246350344354553522134887243417225819294989153741808053121633112162206955128602392164928752444382267877101986912519913811761000334873553057428694352865068618814900843315540138843804503117066239608414576392753569346121614288776141385705298871336874515796944923902945083762086121667366013841376098878820413376342858370601960993376115995695587574891538702088144311875773784878528454129389930644930498206394620136858916999624285755286269552553947609125706945362596169404211899600776548327249766431026069747521465306735770224079467557542182242266188866943143573032832570183072794491747161571627100529831708363039354956696786064037558803135166523032792691630496714737523864662038408833715416160919126193223938330078569851598703766785520676153482807057789029219988294142589926327068129090617256584234498949139131050194999943059967667650528893198709264189643307834628977411649319184116451035886362678617631166586695016602345470387922480014578662710362491737827936708268112271595962172820997074289370710404766282277237501628247730672437933272102667865095974867916920212482056540087690070660441746640872881685190247096502619828155709773464021083126713793175342046898344020786519261369358185829143527776364396457814822395713611648280505549977170768853701468728912567037602336618080784878342568765263979769910240263957520763442202568695417258651847237913754384391625766292340411774984820612628660683978967688875183690229827603666646700317855339677812717887168604832190034913472265256232592975802889433157404761011529714591592728549756431009692676872487634012245272023978044769342440584338215748291508050625696731463270603412984304815449201199367172974654020279791193211998189827061677271951264714757148428230423352961118009681839455534689237075211431109987469512701493257049186958036388416262727562408649182330424555053051619801937672428270715588659362668727953228052927528760413731169068103877738245831398713924167182658575552579091098650351694209808212021019557768226636045610875511738627785911688045145093227384491591712479193661060801998756632302657785085759928230955848731802640507173469487425484295495889855114063894864420192501038254031664396774432199539024795846982018355622768037443369633861394264713963079452144128686923345633394259901829840220670505225048867410473562749792628104611359239079838087213309754557439015811638228547991307346771793916725877629371131324260151164249955289601038262299938234573807745666755386673680807632895784258475621058408983583906905818350123766197737816560747747921313335570071375453363792143774027039419821694538287136457269772536811036770877764383927807443838288963235603489907465359932742779218263006025508984428473695488540963586692618194769342527647315763553379005575047183432674530916190615825342959032314508490181241466614122244884886279996252819128145632410538422821765491109499587542998840851569259550951315103193799076746508495946764608731628707419110385976360345643150175795358948787116652923446623720441102537892603809483633594993053517481673695262599995519370671787648157622106032580292160394852672245909579372095008944510309602179214833209313802163434673632902870231524060362642212550962205331061327494658130770388566631899973455256696112619593225471670623113131585319717784431960662211704548527210678697815436347521246414181436429668557568265660412220480752164794476707963603663475594207544092237885575870381792343456463436312406267851756398426408163243881298673636795728918534486084858393426804341227934296720481133465405690197462674056052148934813758170729878021216336164447035769910809538828159766869479117796905189404064771755896259140207960283794760988640934295244397047912344407825116864246642822541500307605360006742528068096794058337109143549226819161612417880952357931813905389855088065534013940802034477756044036935832689748683750507805726437112211173896954740381036217589456992522721011668857466029311490217939365704995576022799941538762245287345952764875622139248563747162814965824038495639975503587437227197805505360360320497026269463166277675973626543711645096557187386735493918887379631278719493743934754412853163561121877807382607328371164507367527837941478692047701902640754116993240121390021151005762459350641648091529315702738297305403215206824727515859331864721208029862034325577013629025310104169950283777814686034585446462612167905691564493487695396881534672333701377979656488521322577944153137499704335021953100830274157384574587742013275346147827695757696749507092549898152018689148960135991222166958289084219692967110491041486185671075356316705097196755102568718067133679618640768699682755322658281890888159905926749223133318198447057645669688899455063693335892368253776163209681196142951546886044340840938462003839738350511574631655018905884065030772655457101679366967041698136519502344852318337958994247079646172186186182474079383783208107550461525550454870383365700611909731550374765464240726898028084024151713037976694464030490905920067124823664198411634503296811600324118789387204263733636471992180885384873212880051419122841196230837303767052433430166478675327782205542610041472642245408126592035024164737225180125087726876768670131409589510472283070712316235869167326197443323516681671722521885612827619060610132510430335315849693746633038283556895348438938503083866616717040626645616043966259127422958264672910983063784787223920334870123487799363489455645195101453150521868597936284486885833236443080374576280108015553436202367710912436374890573535228379430855151917943152684746229399513308840964600608307784426078491627974071205509220844707930286578089160563883713390669199097556914526619218565309756531974378137155211393921111705163195992838903873679131991161595899940180948466193842727806195180107104368127106717571490928064181456854809110638840668277644051997570947070557766601687211534404637791661898349793839854324479871071729133499831851859741884549058048248518955852343490049597032582081135795841638563450915692660661492340610245793341551115266707206540096759478337702243976128022341829107455058150086388727802969927344665915788785368788733556800753611691594364083399855901943274604319956911367978985629257525414576931787449762704341998015368132111291218248180304339612023596091557744696124943022398538607651253154966342371545584605925392679702179154856034746356315768530283636205920038277384577172822217623458861029987658433974496921049242291601841115374816988667252047888351489462475846667379687528783003389157150089346687652226470310078254236922711380280521380652283888369441975974368846196586339407880995015531269907839990989448146736420203366830233157409470678781481243183317833341544642811703913630571892807338894899060898680999363666259384262121024498611233477336948922946821807401126075403473725128414988017646838758026142889657483876564251054419249953565016507894332213262952010505137936840914047012634238515245401155195832785428024657958933035105207470226683615763591274718908057188239580661536770631805218808368294741504444963435636944428459626980461957700811385060465969442091312678008283416787483896582761197182843252003530296303773026905741945145019861807530864977018323243698694110505762650151726811430569946344564289950224186313497287496219881579312590693720201537772793557690517367163064660185591065138424630624941591291552258187106445045854237841911900952721381147990598303309377194171079260400249370309673792865166326446506826493938811802108859652048578743162334450116419640465968547693117190967713685409891864928574120451025238666296305474760375357969302710233266196842733847240174852895022489046362469745630853146187322000656937029441958378502056211607288593957777119779874837690486260954268890556805401839325169234849786955521098574129971556224484811936038548945935509804199960213460537971854712971962631209601858870625861631122934240301353218490028025388232567911518741728604012266478745477021617740821486937669057803748214618343714916236966714795431564941855630828492030385340947185119151955864985567128287837148682695259646729364548571475265679950163855126959087154043496337803664063644511107350578624292617749936251500723586623423484215518778663280987687718096379109031891597768940324011366968624906895690248836267217112393822344557410098293936714825395304134339655541967822876096971401586820670155579794424894550859253815435071749540892639698331596390189237551393334377058666635557545120236174626690824522553560687519075785738062201160050992550098377528255617154594551750913722519460689543554917113437644169809833995345741270800350032625681398092435718752342969492290363771442760792022870940841593877018686919120343780465296250988902360002990099253405912749771731313236566365965548013383951984938400628875318377871637127709500626536567593397985914364127488852920600371733731465003103793096281981861114769298757473535114714838799637203446630899766306036024656707327331598327371984795724333383948538120673412875136652101293083642073581145556507853670021632143530339836024342232923224866233145956882355541470062416607823327527243926596264980471068450513486103435356173235432930468863628138448112247396209434789649772155443967174784324707388126879596741379431185969964113617725138723709579048053254976587925686949580416605870804642000240272711052845722158412465610361455124446308372836930995709768140614137930601411227968909838475362919511805577311895620513337245356724362460533788456265500071606732546829263947667141982161695332001380762037758599501397307848877740073625184246009439383592177932005157860144538119228611914196775171712845008457626388548881611735971493236309586511456195345177847847642071589047292096174095152503190099917856781734734303962063742325579359297149902492055950135736266813970652008812427955271817701178214350164771239743183561041556265289999269618262819759500194130018306012112950727642439805010842917362765714178784700520734726489123552351857085389089395645455219377591547149936852824205160963265750129630768977323727964091587162538788206237535417477367770164250485438271960572402620165323410221780563639732603516064868546979980964874878670233756044790330540483554049043583377729049689427499139102909733728631164025191676259311831505236787699066229465813040816691262017544316797717983559610723098776887969463317626761034157796041191991716297529719465638296694909680617661189448671035081811677698294130740047585238792786769530777115110235634659540981435279043615356702237412548769853235016496596610843316194890311265672856419683068418297022287238859470458827403822003894609043257404971048865962987608738935514322633181501461500339991051411015029187368850436713096135965631590445610918253384396172716408271593400354837483820630094238427159920604546540955856969392468495855028014892697516344222626987828121022426400254990789430450562579601126144538819186433088971150402277427293665569530720069422116521286978650946869835803004741922485749837666582994084185300170552163607337790078212609319739570029454921981968088880721482698763632930971740383184510267393083219209330474139265619160292874545265321829030478174973407092597184490244076204701252275856360600595252418993720528290060292326290639371289834978098250159465482904801553611946323285082859912098397249453193907986438479110563801771880866790184355932045736904777607242152304837379336669473956225009257553006440677942772051358283053983445103012519715815424739205626053612687738573452104616576704008628739740211347588005387846592128707034758519468290500536046899458284000570586928474210069035999533814335143968632366393766188878889206467356106353744562633085677222542821501573414050303678477343549330205442986384176491488077892079142068131332022327952861063325817126708583336905694792436797171030088986984762099566441989061065909423694474527608510666223207676000547598104313060911380337476672381782871096194107371176321257562574573308724471700366163584171217694079706927531174477408976179797166971492184948700633870410565350961001785750030925930101761993628864791955687128003377278221397675729052973107545616243371313681296137862749601756492799958306102054042805013248530971945644155220172805619319101231847600415636318339621696763321493705316360081598319403041433550751234410618168426988105042778473085625920762362593600728399170324504119591501182473185630628894025887786778456786993237792327707262994804672692540073102893821684741675236859403804130055921702102205916609554261664564300009417823752508834100839539760070492089363162817831613060255296457224637002451773366631846582899508024893655787505299314867909426196711077130882924766267748084938562085267527443995090903615012167229604786228788448733734026841057014630586171282867633923911727353084292551683307748843028780345582348054566124999569371239682840278749433710662221867106615190268209363716530343269260392496331243778549631212417853663804804374972003423517872246371518430349071999977066233136448656223765456602107318950816012515596453951329202586117764256694194455586782174704646027415908534294796173927792870903225663460483387004555802040430626047425165315469822015813455603228313602487341079576028435892704160823245480515372935690755358988019066361034942967594476854246200738753513851405857650126305676861508038867876508823465662552352283503818600324017774964872124135099134138060602472491433494681222802571813423563751825362571039896941072419870102550156767595952428365824042594470842113988734540129821933832546385317355030523102145911243935711894155173913540462058969175396110601169296291033591026512618077628217463912671448347464971717299198240614722671213020168660431035833129370515391021250433789014872806863233341552524717913473756008016607345582113477710987851340704951561997717199479972509972741881975409410883825652453324778785036239028827229393911632231695115124166200802611988895425118884165256243623237112752111888928388304128472263634785388590883240929422901241040341381151196549330795733043437376519186845385154134987369687698980391768243633877625477719488650574855032470100927069958248011889451035088950597942026282378262793813975946525805490729727523341439269945847270017753318368286600265049291182589126889272420619143505249111837252330197479853069373626214918535619244179491525829183850223140362784771940514089858367293567985613171354909650876901914295055271244792758241060051453973005672310270390316668319868273598180272739420725538738969768284440450154278547662839422892173023844304175172644017848034587354936524059271675689686561638152189576804164457817313398990817598548931658741223385653667477316796105279899050021068518367928677783102458049765030955360398263685747483764803669701541552750711882957629237545585315115829731747222141852253289963697093382393809445358006871763721190858908263309304057355323463346971640863539155404144893738332841316035907566605288981488443242818764884269728552119956981048625558188635831097538083956683613557359164467851589848973781655465422778689273734343720607915760421927132915891166116603236866075259568753998632589105038609815761281529517340335880296018525863667054561191058278573767519598624887367601159607017462155510332659701167897604919122758006740169737020031280881237987909438657854107449420597505967976640106925893102585482536834557776596216001340952027197941055463929193899047816157512382422239787904800755146706998045270858489988527816917174004891640745364562942532388605245517104320852589401944381040590374003873203802696159620451940765325155307708600547029205630250187829386620943870802405312716570250257571201338344783143591749980040428109021602895437524666060972728665743672375054856632507243383779064241239269606497959920600291754016262850247709875568607067883870831597925498788855638455215456890100134644577776768339122508506710170247041793464367998109495376678797206031745824740763732134044795162907441936065062922245325939668271680599850183048587960795075691179164488153253900758069207263590797358408629191055553009052563589030827403082534741718152162749574871595467875431183790373818404515903439852113079161067509513312453990520133919186897586259165087978833139792588145421471060434072900393498847314413252230416858882801814318490714221394377692079806012355805382501150193805101732825673508820084689193912831987819996743447900646247310457168664851530283715528301783720258958163899494729784665050250262595145884001371115598417146131345228313440343414160845672695348438623808905813172650475089528729194124668160525008427693556115219588411870024158047922640689867614495480552883505923549361358720352009769361942402475325680131841981598148299421950428614407737817372274507602361898189026991985093355662260312951598601064389473131141859282521269667754146051623532927075410750492282881087892075947549938369121223102485529380179826379591697145324600317170819631380189836917961242095158012179452014336217015912956513030702176688653574617259330568908377104093925063112056142829485721506750395370034249666182636137744115941705027306715130282641151666069392410426738448396694791192557736308832371692368563097796254425692871860807133554570279598170707978408948522558216585645723316656776930180092633243916376989969699985118714029691341594573337930703598942693029047791628817650813289282525262297170472362008933537157257023513017165487115589761228509940711555813384192333662912471021171173587661299360973972273122445804048245218979396702918444674620765407169489704033970191596868412603191984643580541557770241509422491127745133720416324325138074289302846120820325736449115076964130561967993707834523253505199792572342986616673747846363869204376950305888699942246196495026820623045175851858555168051514664723293351613307652516223328378425887397234881878411380974225784118470903599865667524342372307105961917575615585878848590556873428336222906050020731354523909496382601646613630109705239675429830838902553766529290968971981166670487754151392374402706054834937184397221314360191127605536093025628878207585896474546846502038092161452895158195272635315455477035309601941768101737515041857130310789528492945324405016200706029110568877346169044474417987509302775686334854466548204226497497393949040410031239546482460816119059304669292677353361453479989311666344850263654372451549411207336087679595949454868540923866668987028919730292124521578962529209359465585912747132391055611245596959654997861994291871887095402836041590003437762172254703319266710108662195281873678118749500026970866597716471734654508683365628537783226807645868901232973677055955465383436074909482198184391010752496312282824280062303906301228567609802663501699181467443154675343003564339477095886040885189763446285279895887437158344293164643973298581800556639240672137349744903547816962178305811966045278413180126591017322234130977732234959961415257626633895820880033239262590689310284824024924700522232819783472660793741471907814900463586026453766999526055329037149380211211719806608427584512159276098747543854281377545795642566343083103868362555689510593754842749467461390269952940435544131929022909868017701672570033496987918948380808113569285864225625053286704378657296982037228094315020710334401258391489684174908263991039050194103702702005738506041607026828050804583813156828546553919036590319239692641752706217629328490163079490656885375235573857952861351339025043475540133124870369810077236094425876173128370621575256011116856838756022248158367443976384324217360748722885983028631852728845420164135820969855939611629217803580128646020242620382114866160846058072058394815488419177387065786285534640159886814353467070757123643603665677263126205122930925292426116282860613747866435805135447753475795032679285216908665891527606330242395494418476990696007014833194387892326611406626669152486539243229798737328716247355217436319659386752061943160518938404623788278389607635032464590415804485197462219946663539801386395896075484126527061275482602382750908955855568497203937235350238552295070445641271786254082853389378474850513648645500428557328728759748505245264973395600710766016532395386958239928737159407515793976867673187096566096977427147357486189435731122535442685720090350279859160785807136132574459452536857800883769860990400078110969958294794680031615666111133655092368426386181328571709512798551738148449133820958452539097415243975995750986465501401940870170828968913907060919581997928767107739838479437367877400737906234488758346733901366935639703044859708317425025065988550681044242525518942383021302763701590573066381826752298017217194961631323190934281996968080612570819173959723911519563063642750104377099515591946508392109802175173631996739996194121095432686509713340350740992975811624751700575655617461737274487251264683854432514799969266909063168863148670360956597867822253484826977157461528964382151203304056468057612626952960606932920617689670425179364377795010869397835584902065874039023009273203367015847846978114332772523534040514389834848740464848904424094248616802578487566505218039209229954751414219253928408298383364573801579716058594627719507738543758275067551074131854367796665777270436207944523763145734147533578355780543192301587766686372277657108690398665533574997195746200992494106398709219044562263990001489826220351540217104250372000297497920744779514462005415220717387991313856825884254113289197611265296197002461337453630169148268127433003736122229305125702554392039600595210652281495169551720513775133310691114778443997536612413273209495850550515674535948020603503409558234203053752860605578864257676732527285695154339587582212376297768328655824346347042906197187825769899478046815205760790891244622378564312573445862473092971343927838281713930704205404906159538362641076114414526671332711881320676432328242840725646081585359075874815103077933058801934321634111312656995207990450703809416536188329647438561531894634204232738277898055971071740175590775743352842208463422011451383852915962745185870642107443350146990939663636325615971431006791590542087003808072916725218911036251221669754552738972324400927438351262945347383131810602436309850433157047839920702826982639110281178673772431843095352100685912810896733410956938593827996424638916605210605640401455144959822092487096036012711661972760416365052401693293476736972507347462899007469957804805812838617920690313710061644903234694686950832099982168301874197150905247617699516517216537621280672960467920762511071035107620302263364871507552345365792928419768861826955598568570326610845103306299000113998321493431266730553879768080936658207787914055338387213510607746278796175977173642407639079789802481038250316696785822455182589488648913639817609532913561532927182972699495055166285765136230482587449380838522284600309474892840975083476893552230669755835122296212959705673758900282175250833673425995211896584592725687656288732636793743727174992708962630866172161590389743132691832047476175984739346297002582368950890415073817621953778186224527009672832306741430777270298846676500372898764959352701178509827057344659009843161469698594104548464837714812508220966361091997582589507330894936178412155337117992540891093756231045004880659836423175709349041436830627075886578347214050691006611696514243103544245688105255194160529766046524847745487818576136486218472430600221367230790318175211880355708382176377738542037626839213682252546517871354470608375715260784901231316661331697532350683350124597543343818086876653530782551630601213818607888986318350563534620726230576544687105288640083411774725864415826506878748852900732662358757837811223991552815441670960055783408975598117775642686446907591601575836001588397244981812706376380795444016074488766443424570002209345660117664217459531743515759437708576648679265815672063128822342883537769416777274981146506029013329575157930225469725855833958029995195462917834416140854904241166528347408015998346358384187783179816654005471962158501591093279919533909870225541026161461294801610787219549411069288226706966870768233627201803532059139605992197018743908632469629922293810841212630140000188969612003184607340170689165433675306033429135871622602657352145221468284957536047214236784706455750719409844234057189146211552322424940546642678763496566647287709859944862404833616629502677941118909492273500495090640948234474825337467210969144215097949842712097705629231510931839135493331202351357023368830320550221543116382246083024301266297206824877316820485896876972258091863384011798483117991561653676791026087605171967781551619889705856855613609195047422741836972232634007368834097152635494852843068589751717036857406483178915263262581144003221406538298456803997344072836182479411808165497086175125819961311668728776188654902213359979543586529772578282558084759801729870858827764434280171162219905917062439964965034160231898434153776232468721248575911047596165376573035892227715033765620430501739368939440012375437965795781073258712962116917073146112349994344781356639390109306314442112380784243245627497828289739577507537348021213942163000026754568634847043227640346851617252084384445008732945541492225086986469302641608749720714601684942703395125595167930430003016187883020918689327370052616007171880121231410385439709388031559220893399041622604228021968825557057283440964859180124169085726919319681583190440324415478581380619507999016575604727331162194711071119693002355299616012873725303877587538396715111376467756520057787398775004765940303201420059676372379522901352604098224235480950224451156680357530067628514224745398817645809361361741099948666967867111985854200589482557836905944714748896466937269186805467783511627092463001566186720838508607435051178260654429244886166408992578681988125695337140980988101082350649219589143745392236291483678560538828739748588340139479210351463870539576981717464302396903832209173033901736196277483127641056436817216497382585016717160738759419769131432535710317499804691052496864591481402900800782093607207433395837929081069070799960085313960341476688987085223037356267769201836636739481947059580507975217965547478276650968099393968142765696821376985271012451327349069766617681631449836378149027844095961229569580088735313317521219855021030637650278135122325249817572349697608026241684760417082194251958922343661693696883410521637634316167659600641514133749198322430872768481281073815276014063097146050632561678023537751371695180902648210005095331177858896583435427857745549962685779655287995130580228954070147877592021828529805033639315353143079611793651213610433397472408880968186149777550713547313033225233855074868675015090409537398634749224228833712522676364583211603725793941308979213453207466007012041829715857199897331029563665953130981974768567747229997880554166762982544063313111428255440090959451897485368984527299378966386204765135217665286773269009903243450101313578485430344327605420188559836445385299047470545883133388519290297574032694318670742887347109150521242382660641554960482794563757929322390214668320191025902084449512862489999579359721963254382418073653784997537787966012592859819227573028821624318206936752595594965643863428183535413119695838558904813378459384773018141056598478958262074462461238834685041087213580870409388043425519223690076768506863966185141943398716649883711378633575673835423461181112083435919792924857797654538156547231109616335299303553429322072143361260252194044271545457396291134236591490464229815206555457225582525768311457517056919161240047651622029955507415447388762578920857551285688100085533830267524408978829331550079253103153910762412582280792362283733792937139614922461730619719220109368718229841243804375256488033754304807331437499683498241372452456328758339232780177808036220957147243652267464770428632750558230589100308763187244788595995610339614552567034429956959280639208238527527294427193021400186185974815982388515698835159838211841894389626676639485934311134059696669780345531786209588159402702363168700433537267833637599443991286199466356943654885519582932709073422663394406238209935350929181036102068429564736442222417807078507771655414252237396381184928165160141060650411198509233112001187099786024320074107991049616961897411845285741267859976243217293632971791431929110432872450358861722467115803576015959644227642505421738561661187456504579746832366640969801872225212404760898398862348766821256499626294387703193320134139933180662763148065377128643724409287047006243347510267702166158631004071492190718976398971387647709907814260829190100052315174578243595880412615001555805302772234587933464061888020906054946637979555288372102813778997618902181528199577634590925326811502057198612930799650751538979333553643298975097551227445493363557790932929423095843156278662206579090544701316353339390939850642431225335152164995183006883879121291153918247663818920503487439255447569011065347464345595512933261101894721988510047866142543503909724648351458176738820652010749311669949164957754266738813830289912531558872936335396226625366341711230029293120404598343248378417973647072097241071277507976422955902085008848429562052019081393165549605684799114947299461411201060227741637743851614072898144597908591203170414707612324030999079724742584419451068154634305223052853207238781784401003643350520652333817076828610790735653821392369457345244547052564034340976153220785494661736207746251688799093158856268724662126445117641318874480414927407195639188188984943766957358024982563182102982264192403359654755382726626605465606605445220072368569235195810651141449341911563418542328436233714349220830918642926892565503297399923157473313720444475177808425205355096423610392326913371538467145589853274900487100929162906594211806718751382035834789515487251350425331782227108664530915304980019020139629290015393659859035078155197023674512637626511686118553945269979630266484337109267971901554822630515446698470650743709872275385566026997140938680260358456074642353216597060800337200722260859921254929868390483536368810256025673930922758914897716830258134234195580718868092772752083669359971599531867341447936165513211169682447266965954563730090340061584617484646382781916299954413048179253989165170340769549253031424500275075864757962949050422259308412855648907343677581621150534164785386194740288821811938325543625539287231385522639027567452601136842785493941818313585257092779008047738124683759237254850956679995880232622596821834947117154168458992990240047633589992454918039083516343696169932026508802275883676828804844458976230269810895686996458791697590152914823926233488233805887997817038124494102080910819408135897945088575183576689448114595212104105880542927366889625079305459492065531416253361847162672719104948893228290563438552267923234122049723909891320091779113505938179181448042210848110451897773599753691136778294670912687562344969329138128149970302440055828594175795787849783419318998300354698354215044223085342454341177953507059874119420442604278083076424371506302712943208684999337839279534406344935462946364595641804604795937710214321948301952091190296582324723855683584593963922253437500262164331849419782546263703098707586972922767414006942115487827994309247795717621501937984088565706692928748872755645775857140186162274276046337177572504247511414888197101423140745824779910708841080135540326814839158505427840236215981327746492603504654107787344261203659697030787597506784570671768217369022216985323456426880103392500561331379156698830594600479300147951288212895192749301680030099277146718548692941095397719107261530650157747038282963496324197103647523471096033114651333809368905751968776263724207746591686899730428009223933933187563367084401023098423010745560696082182707008159558119771871830631220794137789445858794003289986356887052174229912842845569232256935636633468233842763904022652763386878770630559510107543289920064609584352245179452164036488888265756628073852282496578494605088393609694085663315440013274033526586483703400960428549441923386356333967183677006020279538545214103328953657488455326505278980475091328424061838223081288630205326241604357373607844435165828229938393858643002606536957908333272547525278959857792593390003177285944348578568193698867177802708530270333145603569859312097894158601899076017167833628765178690201555512940891514041150366128624785892785062215518180445575703961360096086856624872904149992460774646455601460470009081129989830450873635080277305862985796277632736026327630835368510699787494887606064065911650021210418555607169283290315804008813125276806077029989599778129049939898627788878664361954015355212078903765219755973301515660200779885425552648247075530900114011926338557571561410825715300850758532775234535121549530252048006525987768542308199262127286887838141167922057294104342410248987368208976969776904814075051856880783261478750036846212002288274377358345403767357365608709878857848579354977303340971585570182443922857523929992643083005809432520130105430448410774316983761120706334368143111491032626131896757589381273837744899078680542561142641720978366365648956839412323428444330102518691259582072104401110396401186592547056757770105005996782553035208194739446641404733266463492275093055529699025946371302231438642794609933869061106687658713025603243955681742622788242911584749721775543564249865768750572859256747539641300653921041659362501518645762279984986119658834053358370174244696843587877917674375683115420597025279651526535932248044216447404468470113877932557385599855518848693009991425387145235117525038600330098504772461990191349278840866879268920719866263202930329020781577785833021448831318507695799739086285823146532883397030985009933676719972437000959790251986241400869882933739261954033671446317953948117700420498185416858686691530156091663864586905226039017301595038678293751101626519914935729710179150529764888704238934666512721907476728268639695515769420026034690930056770986489090810353805954785349380961545560652822864435927576479989280938582358446633654827589840109993520155799681222074453522682882716771332635448074091072289109883187184281333554717628711569347143941417651549548997408972830128136808721389143880640447618595449086227491419766525528346424584740480954378975460564646620106600764989051030298702805673336894159468194012762035938088670551408050870839461565919679485029484452847824512206723012324035081233590347419410682489539620215050865499796208154515976790062351112138420567335020399273053096450431965859403632557509005117362908007343505702749358539539616517278058140824449963428548407673129871573303599431991991740995701246376547314812887159242719292769939276852213927358488401092655998662098536823251367678795167983431185512086105068073760402911884804583588745241746625253630028781197969143963270368366560353151806147906674427138087949137601723170940698149033011575627258226321530880939933968584015684553566438105014112791109097754844635588120350948974776507051556624092227617666421135584702688721358309368799475584497220186327309782122434626418491849445753907140637288865730885041284838365894612932124137697059507859312203101892594801743288852337354249856759315823018332706053816260237304785265080010291818180354470011290709032258880663515289175354485960698862432245934318841369128802362967778432453258687381348534816504588758833157142750554144333244773616073119589543690773284903301432833093984257151868667565311933301356822007837784901805715690498100388211136307596202678555968074838635289520716373269129101511576595527641591547610646091436501582788458941316643370985150374291276237054883821328343611378330641207804040922625471894618590361892989202968300358387952363132059334225057048107287246167585583265450571014822106057764639525471406624584317906738028901823392692511259277430651702727048081941171052773876915999924202157764860798991848190502463549931824474038139359976837579092938868818153669923481470733501854342615778066511088360355127228758636032609132758067025683150232325612358899106672193581456936902652106475189552242096632295797956629788988732444623938910249239288083158246862949227605681922726352665635068764479679440552298700985109962295503440659560816105796968631496280383914083061170069932684215419863729136816462541421316053560423342299121559484850905241272916076367607011826805865313733957201464493868650775913911111418506182598799149228257382537411957407771855628028640786740105903773930201458326394682974584608211951943356775907539648516305345338660487182794742953863091802981459853175545662407190053889544319136756363433979847844636967078543441522890418139410991595489223819321430543207413100117088818309348013654295553082432148055318117738773007817790383083209003599154756807740249914586730179074524956880911414961240479167507746023501647095130938345104330548441720856000529914599585540367787261995158549109580589345926324540534831605193726338445015718244506410816804734357458926932506983985188981633921342501209208413198731463248088752523139169739369459676187597456616062761092479397166181328219963998603905592390304417886301223700183355367640653251749046673321454025503824256868916634704035087011174160344782293018719834854704153532974699380230360967118963258064150526125704357926577736576548455596049966458716329264441066540401434682995272516036937591858198569166739848404023502815791251374393117274485223097960717964491063601592639289945352498153874014857817776070305281720061470492391625381924550509043296657598662245513785474342487666442816671836224398221414874309409386298048537595225916064832370589929966031622166978671961114444605458159027279385207518034642282799376630193122149235410761224813459619285262942865500103259625084937106767940475175217781973371149749766202781658113124958352613660437994981769612994542285052306440093734297211870187778284683873125733868886989367957579229426744726418230835739884237213229353206647653767615385291243691075615750858460054245654895299975456066687603431805457690249110539460530592349410306294284892511006328873724023223285180566943690177417436962569923239757278700331157370497422349022038543544711982824451251049881885235443448224561260045900943039378115523838927051523731269757536198800213963922433087533906318077757539753519120570386774839123838738060214880934366671192681974998972836057107177310761105457511839453014399347921867288831056758598995864815919699684877284783670542483039277866070096503253182762767463500646301401779392046384936793806670482528471505704464408763982114985855355686538888045973808839716537584930351005433500009369259994538360471446280299275120329476751358106016421686744937723894722740570660338161506493555472931887338194940973015638432884758687837406213713674144380775490058255621654347299430083944493383488132446100909584661317137517902908863642335976001149460944930367554604288758821290519674810245656757415578142298444316629023138866093376283223006542437954044728230319138070362243056462979674746718055015131810393455919842711271398447688592143166321396599698017313464964041622845113454978596484458933525412910331041916471489692149812839505955187575030141245189739812568471767071048059322679533150564861263254251650087185979653309977085489433618045883624031587152688200299018365857069109951534792990783351407531695747664362742565392399211526211912989189966850323022666600099388530631520002074446894701689715531086026145228858314585094848991166699228608333464075466414247914332452917042292869434198063363793727434213450588469787838467376636237956125264107203356049301757134319689998894250326950909065654083451186858834594517756065080776263042462039191742318369910471460691335507379543954774530510818594998887532734776008925972500864942553400342303507704436836918041250607494828216753614493988544255113977095978169908162516788515163653760816856188416586641389488764927673835937951522427496562309987318751220087293990752025852317991589225370025290161464018932672510116393012255493334669094905879761254027214935104597999504996555279187408101406726522058057108530445584604511485691387726467314090641261785987759270952060963973422061752222576610393100285921611527981987789231895375891362994943351768977506097550734578345408329619205105104133677932222185169565030994200219927584884208350927029808389749817893780420554647341532903428292462052339018645570670422982978924852725260664191800801190295764875020861311507396309019654341942684715131615435610857680244443256559950568994950256234119012898962487016187141312957320509315112285952237649896795271422659705746747107409369394777192118323586305530295615233061430655148419646401772224742661905747206930224849282705079356883385111267784872248288567815317462047529663197361863123254571251352356372362668950767871733233439728133666088540434626712192987041963807992296409985437063365837930186244453472749711768447143747670533486512786224750068366510683621330155673564065407648222741631955817787859692266745304116968875358278474350676125152685523457104824484793469787070519873819125014209857208235247005040463279198715453585734688212286286623354578414606465020045285987095143958677124173686686242593154867312745530422408452665192295882395410189270965214319196608409894711301603452710603411577649987310340206829631660145171880446543972733760436289320296054961345828778336841265718259222587943977064114335633431363446675935239927860845717961293044555260971386079453848435960366900972817160722001562342886360339963236098877990919461916131441768071838802169112057838250754190564978886012970126065444600084615801454969429485464652666460922833228868435366916705961233181550968715431419271422137789619258258694825994591170786483648120451369018508544395724785493299785953772489020457048215361459131278881517949677936097076437401501761020977225791105825975602110984246283501698058622603650632869995121971892867531117978552653808745322419940988057526969995421924518596813513154866791246762075728753696047440512147426249313275913763109639251280115524155010894308078030063839033712339538520952937272189572092348473259611763052050798000846524247907969820319221952120775283302323229289636062453344690037232102249517952159513696963729127111877254676607126757410318430856197772390156445888402052322890378062629626235557454236907685184284919069854710523150074093618731184522223624340354045998258355519748018567748341752959351893677567780510232684249234826929118538518666841812561990975878851923060897208145061927608131108686283133119205486705902590816274191480464167666257703704890137683211038083076273794826774364106061631914573343045422366821159406548957955210682201429187286793074475781463381118269775547353559998459602270140023435565320088684736229045049229345194122901530537577894431439906652750056644405744905214313167965068506476193165607782670232829070897299642266535116355239279309077092625763630720483904878154434227673736792061599755841962194838810530172828481762898591595541976401620432392227123882989352550053360079520404092557273094190270108752919901654948508691446657667706864955060427692182180304690284751035486465991146301297949605581624906522400092989427190918608925965855190903445337019610814318178418539014579858535274660366249159522310743561687776528069080855480424411254294651016731903771625762400336934271504415685368072712578207902168180476260617895562911261575270553452039476799500582843693380638756023413870016495992811612051397338476064022767371398039569491843354297484172159604124087625615372641650943257386187079056017728592514889008145693615431247337470412329480504291988734209311701049200189164731298754864290120323467143798248407025814096142027408997462104575586128085472576034480130190402921272409786543546428054269943039909720371640325428104251176577595162706632396374933570379488663204518422348248304806793385776970526178286758079088628250033549214737410431830510637256160422326900174918628775088417422622487512053339897771151638685797411832181905057822890419150200044097037410547899871124850753300650869803110187295894072471008810451693458348521255595550414097787240594874670553723859110855764277486565203071931788506297629156794725235676047891960851064801756093438411799125197027324533504029893234657918666530070083852578469002100369284664164579529315904017326356899516877453023150714799618650889087283011269816031424018989463571075375970690221119796427563285268978313839431018528314453619194689719282384684114953011120836507854081994972997763085567940153594505762805097182159554448240321092874291945109045011413750447533640022873249014792536472380791801555959801097980782090734768119887257674228711230957606003630198630526156671139893899847983177854949865462002788931802341703048033757313398846656555990675185720120626713619440773193009187982024271911319970151456408837436660184474578412088310257151280708705835763119816170198048659470836397378286372246756384661646687464518684481830651059601442581516231558561702646274734636832983924567987467454036918065837756555364833834028435598711429253201067659491863953953873185563893061948995444821409094251631822229561610510236537186685260749802763722944338499422446870926100521921105488631196995302882271131478628804875748767951093799417688580723332495040739541572448623561707458408793456617816737714371404765278963882450292852736192513692659276372537417756954847549985015264950925095097836029339261147041301639567620073291237304811230334570284008114080276575919841509987278626810297208501023697249606757590681368274547934262625546313070018259086379513137154217327472750364018882647608059833171971966984968546679511076849467369710739608954473689026332603841469386118869400356358309216812490118724284603761171898420901943441357193779260123629579000766049390311145615793834907013991936821512665856340065472697808651097787299899433696552059978441265985615344414222324954707404869670211744941333695728559437114287078464861674239392972743015581896916456823535241327297808427670803220599317692372999857468334268491649135470751956087018297922339907954538846569288755121728059108741658167509367382788054028141717291450413732563798230173564367721456374115831563507880590623667806573605230808592682125485674485313232280111733096613014380345277109035555368655298662353684911692207311437980830613109371088480942028761008959840535643977281949753019428922005279864505199775986935065963405801381120770858279084012326124527630615101568551824157924226563480691531009384097067517505564145800814548826083466754524813727131369882717727110830157399664736427336464164456540390954365507736281806261920525118043905109359564846844317048061507084846121638548188857758546720326974535004169043587755491059568227714421385390512602575336060297165843331160845182106594422135730458192193554261260228772440474347115191363869383719841564420876017451846789972450451135034293995394186821636775802096074490475180095689395048807912785080423074310963861870214449687450008673140292238858410417015971539195004413479715319085955608618315585455621530994022461205081132192279648108919306815161566481713033986182362901750856609836276569062234469378337656295440670411428352215572031891705728700656215047099141980341367049823237098356322757998658090791003681937190660242717377629992025593631685678135940560656893535338324580571637112314781787266541759439818437441853972600547466585535373059052790623216238821093277162596709525387452616974499748426677830733569612616442682688122309334717193153545640416892347327011983630249041699680454773337987548974354315372002505550222781907231286224875495874879374454277726407013166032340264421393979101552109826590405303040119830754073436374607592018792883595598293084559143620982865732992576775700575398845850537167177120297905152923697458775244658105354893417735786146834123400223883778743262027736892666934188175287751322480739739113439061425767925367425824034169947710924321503791701521637326557123008391038383562108969921934105754055622086159828824419551450976965330419825685093071895433607185558952854137702751589452433739623839614200746460591390433853166039200218072535201619653954442043170468487469586895495668031837516826228038871968812043325760623875687552134653837598825330772816713373442164988997699099764057786228868099583474194232774940037014425861025548414606862414005299162099836489129326595978071661720085227179382332821197291187930663747758580466558878613031927933643636083966728870557802526253113044180567348164490517659188247918914121197192017663124954675813901045614020456812033501398132641077107325022042936057065553471922496170314390052418156637795072438747603765896186526851206136173692291876342614069590460106256242531997064068807841223546605226887526602896694052780733991805651612784205344628990277471109308759446049295195569178859962424421267013508462885675795181431399050631093199861334256941039721944652935507020338420318695560631072049968575877450702675943235843410917300321892908245341732174294368202227527094967759778244527666810379922238692112290863423064956674534741399051984124113467676679651833059631863581354118662892992757618518479915694264875025824157047726968173650801385352756545340400194478597822563173031882953831343559346983900479931277640310713054507708857335595322366096710329208829216672191935902313349726664858153357568369812036703099283716165655497773347667880563638225916483740284514771759841177108403515390855033894635856898786647046415115833621656918561442575264581001190657941319682543492537303199920009126523199909657250786537765004094512692695707155396368167422600183459887243603914746602384582053492636156573210133621594968524723890798179737341017791076470788790968860838029330689262822522969161897173415553334638984373106476992939844802370239019774227506595371363411535133451854850155457962887083680770083871320839714044933218496157954098897713464605398806021309930297997675133320048305048564818569067250175985571184085101444490363806406449020232752212520612801949191871866769066017909658832552615425751755754652239055822279660569749732461353591855670422492400292797114137968704127931220268063971008194101223786976600372831314800825503841555690969148168252213239290753125628137461324064609374711509557555983868130730296222975400729764285380237129065406244830191568848935683246227480937834413853262905708677072624871150329595279460531007156143149965127176205779820507105565019177063662576235440525162477102920692460654132712116283551017912409342814482403773258589282066208200301127950359805919589638201761824258649780884723682579776682836020461154146822100643549039990227617468361784956925870744101785364064272816179198890189080676690565894727486628304145854183292913289558457382846039425035040643821117723516564583305783879635652287022342672007222330543882867384538485296247797616015414625443672825834508549465214146249676877274076945359963723961114592195447479177726809104664532102220176045011003154102344544899834075411480783172352424493941900331377453998475270488643693929391421196078865660588424946480862073057948795083198267817656183216572908551377552829160472396954760516612903035397711384781139045979076577056772609193383267538568772229772377167543199400676086622013728816549106399869160779856958540941096577197256424841570105596961621852613650148613664855084561565047755912322401081536706395473078875506896589388455525525455734453207089842727404846750936953516572346501458950071528202173966465480973520905145995532075290927958016816683521841415631202084884490268002123381967891395737504702445816590402228377676012344196000913695262958759178572886355323132855735406597556673005965883366329658871061720771925748221032526199949782378149479240647401714195247231183535878935033823705405464357706470983271688095005332951972272783198311248546842684472786620106037895181071053245472241019423417034672107527888684319557588438323409513352246738483736816034088833167633311022308784055884063502136101190418946137668107147999347601459678248308500963863101837723794116370480150240491473375707055514142044582319643744911218615733819697807340482475205788343746017638328107228450693146623463876683627621000973684395502810954837562881579224372835315677519496043259759344559171634690983373766763567312731338001991234899668079850206556839890630225793578089691811122167314074544665702316317753214420327970887486579731028444406789636499677146004053737170435643442210186989464743100399701922085428774997107340152607504608520630687678815536188704987687140107170358102269585501288453480953279952772241047253469797134458649762364125157758835554005383845122502507055702646851721699211392910784583811126366174385092218735336827660086729351442696534877194053894249663077176483773219900801180515705302461698878698218047224051812060362072031487831752635590257534639156986492014075200423947393360340609260323839611260456279069628234829131768059191359395675269041337736410295270460039696841854782616931502626414062907510434047886579558848935864877470816221880481398431259996130892203072325039211375218485823132257674885879802787931521630949484851446110692064162956685009180004678961098472571136402791639443558203746449624074590366271994293076309319387374921725604747418149348597666574687271149655311298268966835704535691086517402782728175443967379817227980034937701518220039891165845491871432295934926155708916543442717588121214063059609451334273315264418047798843553436568221070716098951306387984224523685928989745916308945756357693452036200177995447786490299545563728430212575933404821628284082923451478041105311156481111127196197269391531466727222690341050424238384405229418696226037533431417531147775121875515827318759784457812942806638575918692573946891871579351046457240349820095079669406041655821938554281933729380905506423492152545282238840097413548741544904193849669718406612885267264582004561791454319012020257822957974935466350428233501585447850769935147327172227073316349799579678016053962029281947918848499873894007525514454603563809055332789043358561220554192763491709342681793104131590138284293600707923995547228832558677603363848008770696532328948985419619067224752971939260658910550129384393729681391838901342613913849943272020703251727603982082527062127634909428262487798006521058852589284312385866646613178846210303977075992524855032143881627948309604051757411795381798332152817007946387850235838423699158248299659925412631644694243045903193527668767212458851176802887591433967688694328915255288288091456440892561046682408502612421749406207568394300041860067682784114378874854179707358229110177952816351244172883897245947938757809871245719024711709429151441455295831241846867232945823992063175458590396959388883309822324359377673890178937950582585939279413894833538813511190973640997320922980235238328630339319923692104057586124670870045695547714228229471671131639988455548824295896308034415830861110609274721634788730694318270827479054272453523527897968810431648563418744861079868767111899913525665809031433067490401725178432615883240293958167711060221231640860699755591812937075813326460672974963094078727024859957190788647922892800291404187512928347025740530914755163309042377004134861618431169965626408902655178224697340382430523540999505066510632096377266131709900301888936765179781784422287018929944767395861242005451173947147533983268260349975632157968675839783250001622270209870271420957170442689662955235835343177635246516107291226126190758621164049986069873380381956499591942196868034788682461236039883760361400408591263276115493136341387989366756017562432579151634488241059655552415064168253550341405084896749589707251427745487327855757558594162404507935280686569704752972820955767128168512857078934977551222474588616007912323641176919732183295629515951163448901809798405320447085969539724432130143572565883755140647788749606853253621184579810182658040252374654578573076794305610185140547569875118738085684604355338498849430504962013226435495004852736636142246568259556653375005936813343349076452595311640846178558933891811703980227846338693267679575336533355392337800378025030624745949319635702798680573875591296111528064611903571549332255220562154727385936643916460713746431574292761838545751161727649023123370945644473059157097518481859848138326819934124661532614344597727955518758643884200224439098336907126770753607413734150960433105224484102627186084951985668887265012133653613291594103210856127276102862453463239065854218467776975207774132586987701815248331169576117985624373846748402888978188557981454145913005654080271380080310205798340662557832264611555015250379766589697457697705111938028582366916087775699954263220851363789815002975624405111847638860699205936674129697545836695008300766390582282909970878286185099862368558743391666359624067440855474226264922293775187700596693824694456706915574983518794770256858165005127247816186565095411206124765947253034648243508992926187244588115225618158306284280772554007470853182020219207401402443515711589808187450218802839501853246562295111512441527021835623178227935797027441457012258124062399888855062097153843388946746660074464314987077259479201796578811466447104477868836423948035679886283310158382372820497811267441632408501878822459673047058962212603029703891291540321697995239182558992225458295334103755335230095891569089040042641040366895023596712357954733916595580980716138216727767958971627141238064682685431123700055037112449026231394268532350092826581313710679290952799798717417873392681066283493677143025689294227714048465970320350500775328707303817479854014097646836485971199702652636014323070422363563783004229403321464665327633719351325518462527638274092423836871210987961192503758194015966508950344983868852493312712626095260292651467537150392234662606610783775748724626059296790134655293415014083810240027976873091705164486307584277407598929172183049771356483765699437371001010571508827537993464286526429296794899867959127594877614629914960570253790168572465573581487828173209432590326901537837556718923526645944400438146433565171238662903460631398921561700350637168071283603335549804801186282255871374096936237364176131427127260380129316599032117946105806256959348554283256241226620054949208307222653757496717114486144961719675653424056972936933839478814133486575327278913206541237624416384959972280806905169648165444386918820271652268256178762064863446491397862561767685932902615797209047554474667030893424380791544291499755204094310036225389137917813215980272149402586084291785613796881791969644617041020183019579784672569267490462638236660455787739058440678930288833858597243593688669434473334277605325125788467346881770035544360133443319938343977708120373278282903556573497022985775371306090146816767205294849686426234393981237721408585665634681314537079270742924537583110833845956114300452935595608303165108367732084615482914838374104764549277951743457901192341608295534723738686130557845831560352137649188694871862260756571243884449557886706188400447934157932610952093418520410689037011364104549475455788149338313986499471632172887684031314048201656896397554483893960122897538137543612911903769877820803608767922448402410773385614144728063307634016839019842917250422535600606777469210327167608037119557320442858266185410010173791879377882078600374965204059829130271726173769926045935108932019359062073487093660181086564439523368716397409140359617877628313360254669356005336169687642773369785960341676693222581864763911427995494433186195284317751792727087712335261917266075579185601689364838126553022997457138903130482605903281816263709088857485558268573305797158740193281580749504007549418081850890151787626769787221443299661276226665147376739605051004766352283682714095236424267942562835193364562998949008802589059258783299237357487355337572536460443953867734829029356144228960272083377816158883269038446512798128670652544048492133343459143991678138239661458836194523575861025316674987006954903432109196681131705513853916627160499807227191510377498195814288807945571906615810549720525544485603751056793792598589978558175415419552719469076506845753275198899298666150230399274299055286196890368398384862435429152100335977166897700536913971989728986665281371430464014673669275935776337551369127023340209537573707803543357200761783040139370649593826416069622174966530712004074215519745235596105477794026497560548580351651012842292928447270030322284208449151156535526111210136246822330254711279129562850902964461943968779888660537886633163759183831389147639061343976756679155394180485015931139271282335001208151196773223394440158108893201044563570491726323359583818859006427444369791674674565354034007517179053136080648607746559246128149258523426604347788681010062801927375031039587452178828584035151561601077549332483257984566680919063347216626721400093536607904430773582823225327076989914661247444633995534556503265281175343217948726279525402082606749812527208395447812262301583565990372185428927482087356590947171145356912817459684761660664818915188047501097744492946703240424145236107144165993972662383718325707586370350173635134420524323110068732811788758432541572047674751756556977166386201116724760823283130763580621346358392044961032906980983233609793972233427368292647267059992057196441535119477709322967153195143979630226338639498389370550057893983318327819807079667399525940004227815343928363450263327244998218432489593865631187030634402166953793161459521551413394218105980255345338737993900609915412473406332557747904892713602670831466084985047076348788211384276374543154885272580467480556115129914126634751427978714278465910883899260347490124796557671728726471848149888838025766091404909674535579315813910516855677459015540216591852847165260997131560369096211472711633775016113575382115205491218728023884189409388074382319396936731075190157101935081804218020475664051252772820733598429245865480933510857215291725917008066330056827790815282418473890650820718000646665249854561286341140349852540522963414042737909347757887180862679652185662975064749291032378642770603420273998312194904692943739910499611339737907435565701095581309143897258752604432578120234387850993800855150769340323887737205810649601425866538764568048069802027389889683176076822270005580022300643166175850801537392205285606461862413943748820812132813494947941558815392957009456921846631919384007169997708472541207497071525347522403953593205885916574347833913868406366298218427437545655235398768202146689758092825856765407739255587635819197154950319222916567111574376730064444452905828574321741678495861527898617476826509320301955624932723151246874402610316889320347283118736241312813393826785065111408195764413297203357429961022073517507577734587951531429976871480146302791802758656728517555191694483285998669722322777865192791116078973428187155737954695341861215761627682348584676298592331925749252382389775342764086484953234141349199296593977354884024860387668605215515783889406662614623125744308782440718782926494130923005603224573879743606875654932527787990138604129003981642391450578663283047338913333244416939635503235374043271649752863586744014733566173723034280955712164422911711799502912416098407480511047851034170787339173734284676476520250064150816159549781143063412151228496692176703240802277894909598221906243563002703681264061886448119623976138027715917618023645272620197608505298705596972487047020019657811791848417019906664205149783348126146735974071746056782138261393507323740189506649375021082390883914296614687552222715267806991182110054263174777604139579412350509843896472163056531008801144462608810892070613573387366815111359694353063923365508230658165863810782179498424413795220060663572175256798988568967614207195578160744567359260359637004350192473479960673797437489699604647472976612612108419327801716959597403795437981485547334090457440795120526006970312843342616467964019279914246730422348539893584462349904869196672277324150440300348495201887731360906284545077285019250690716866721788344068968415206977351665209765294012509748982367901418888751766020643451452209899310129331437289513512915266296328960679575457548063587292515417351707048463917237313596423578427534163244240702673052186997933554647274264669898337867318224432472575634623863769086711386660861375073412217614040093790522646570464600985403539812941712746363725414071658354003041488790450305246176042938380293636176810122345347171381661764259035544804953093998217084397129326457029511699835606827075181310524535057894960642693899652299324924069519667580636793687856361862470085160368297237453348765303079562393582405485858483013046235565666740678310564304910024633986678570385717608801126759066931114031832449796260454626768131936904842347197906425870467662738607316409047708449850606664754946745313041012466172381608958437565311120198554039623849600519205642280740215985948346890700314863823496173782006411524939429061929216609775641544638637128838655181277517163690951871525493282101554521231637429723926365372107873817038460568053206054818526972955967218759088609116163514192748385244594398636286288892956081079795951595622830859703620854960568413454276507290050043868170789121895868602485059863226504792774956871791463112137667874111663768896830561696061925615577044197684154906494581985473098103280729223139102578219255799513611836997169102646191833549729484611702675429634056890928430118145590651343021188866896973455281972971292401109608673354569569416958488971537628475968742349496929767367006799479892984588658376953678348395807249166757521919399169481333765558608684588947235910924534591021102478680333454589527953807835616350932688388874693223848791772867593457732366237413084538077528982957279887277496863070379051364510515731383201399483474338960749547275286087719749824645220463917309876434940722748873405140037479060155137544622602867460235607445047821870857543111572347632331561004906607129051357261947685212079204839330558427456242305573146241067504269644844386906670703670225596532528590744551324243819172297048968757669398679164792838218330358297234820838980843580828197027661182402137002112687696535556607619623907069716148653244108312383487961586593553807402140930344810227040000208641997378101743140788470999507301713396241318157265319254598347027535529099630124149564769750133253403557090811448931659177610359913052751597305673946998375363399086408087155599030303443559994884383142336843180889403826068426433440536175289196398962554181790357598195491693957996744894063894885476832326699094893469539332400359458312127437702605183700450242764678764962736467177932967151414406069694729853267347369460056253121456375134771976711522415318229893675719037719032660055387225633318327817696411430929401860201610450701471168502710747046894117991718184663789604123413785753199605160746513583444610858419349980197401647679100842634766786518241282502753453556530148757320204512969289843289746766803074091075165169421805531403501268810216502002179565780246605956085434295962325475332997195660833843389619317739656760930247254003031962025535814288476695027177552454954285137721727341317338640137963426624160905140433070172645500837248298963362502872642086379684692644367787552230360751804410132495145024961233890223011913720583114853705731370827043075097135472197556664823849633671675606241806861191511024780959599704992616769656191610803183268920176148043707612468011983394120607232750440810404998466489205107241436847210980738716092639137066788848274154015579219699917091647458639480880223941312530280693922833489896472419069192249066842272844010584625733869450484652071925058233463411645659127523162990677047536717694351729549830063499032485271397305376100997907950885409976180738158761352787712638075099253770493906782943820735428804664160766381943136656319810416967087688887721554963584635435511493542605121575135151926520113813439646141474676860279651341964286335916343664171247881821142728352738764787782822592135761483693661621272877275263568040738201674748616803211653233442709197646096237080584591620618513781809859313747088512360313561944204734479805708742942828423564843520448751731484670040859518462767692373809070130291900196658596020391863927738818687058530388555540383989959406756976034104057036847370206182058713625998904110483795435969139202712748616427658039822896652699106203242247915055589980058782959983407077467598442195909927274438651576794869418033969759257228250164611429482152437297649080799122867227263895981277098343173345019506518378028916786493480597986682389899942121399980570435832689973490331491783721187700362440722924905575404065136033853539356237492516554991119804171454914411412710777726310893267594653612225471973637227863115404226729082968019481065583986037049721987198948597860421536747548382145121954373886467553356731813941066311348760605310811100487257331992792796352198108285428206260105780291207193672811299975198743481430472816420410351671736471061538051236367469024006916961245331022927713978280023781016742122512689330525266936520219260955178983246005115638374775659936881266041511592165599286315232472606266008055219727207859734989443317254059925773023669118067365905277476455973258877094016958939102489489184317443792351433170736198856031196458726859930551665289485853812391051185410364637150547207211488445455140845914705093657301563646160497195272767242286720611572940153249926864905146398133455454719042907744897864384444057879761019666700235590787660474263016386369729617986051495788711900749259586499118234017735922137125561701985421748960850830090009343599454842000972987682842551840944362794007415037695461745205830370023341722648077650499674236337014330574318937192581385016020197154166919077054582642042776662638287955469490369769393068335469667026237556316120173476407799125023226029430827442113846617566396832585440436403699656329922558528355182819851743838305435206941229060859840423314523955444398581772989592425782793520494199245996271639565823118896514198809510700182374916523232825102687416995177470409595323223168327928830922438661805027231763475114865523206099528928179658152395192827917461944063212557783015478152669485643085192537236537815854581368566994135584495280117895975770945200036371741375627517391824373729134243328216876353203031497811759879601196136102366385316606195901958435521652029455521787651204738747015574032234513799923309207812115547904266299472439279629425853802885026841101069014321115399021188896229693313115108479431723369107780922518849403152554704479986269249706496438988704381128638673440444674833812398850615354739990770514819635528331647532670946894031025492871589451505000266637036848079152454325626493334670593247896372315291728109522164271981165772821277133080179648403693642559217430857571452724867730674591327145791633424117490716460405915908198425686150702898956802746485708633857997061278479946652961178753613161383464995826937362586821952553222256242806695923641703780534182320935794797805776255973886732166402658171418381056436810475378533264782175267729165224837226173738304606931924616715556614981539693226211224271072573098461018654455074538733708670143107552436397221669893749948648130396427709900449376443210021668928410419166342062785454391835938262153716362079725384973510836297770759532858480037930817987027965620282817866662342007926506837463943214651721198463225678968489152442499017352545990373629035745261291140133790970480910507980893195263307855356967166016465743979220791749791399556936927037052215125849451116043608660338358512889529663084332040387693295089250033723743884435188459970457695549332472237934285441553191791862091880274196493467034046522695510014238009598104126936770184032207660702380623345893293874496656227909384146483264114151927470049790723132770225457506013217035246732469740824472447587390873993562757356184166864168503544330408440771422805002857451112299641409151146195721725138603944576118090474073918761539478662457284965618551953343644134239473085105887701150797531950928982153237369431585311990986433328246689630318236938733582637224088194823937842427978882988494091443270227567039393909949308183020181462722771508878156828482474735837102106373679654377188283286756826059493407405008806259911653456010238373325984127561916911695746225333166585263262475397399448418240340869760244224509921821791123334157614521472684147016673145025601227732227556743949495128593295899672180427730698880846847659020855702123751746209311890862336017539941662921778190526745204501971225516304965328959806368526207821509351694178132998317861756851449645831786033398122068340335097601338348865758270562291256674172077689335947857325538271882763573576016372054808012701303496268185248985539269528128154790638450683950708826469520786477040536325569009731551007449267577840271046136758443758474322013021582402116348313881070648712321640760380918555350806875151573482380363274994899049527369732451621090311193390751568871511131763881254868712952887392229087080897022399614402309903145175082288553906874742385691013337983204635628789849202203416910190739451793010601586553127076985380754958031793140733031616504017041795461059554317240165169483153890193185463763605535861205477562863443526912786153584697269312848797407569090570257484357923106395001262580695161688781310858398930759610795040283569734784818927889875024515335141155387791578761531685909084191912593285846739787617215217905158018843995627032962574844581465233585229573927847583256688209390456994029641175776987517101769823982316056675987483361870323590537985539671079027271234124169797737547047912959969100317137989621106153088120110559002811377552365296742256822442069349751798795699372732699041866428488534638676544817859361273197981951545129246766266381815798717957620483627254491449875276609040946970841493010889131186607594771650221170059131242787344237043242291628450055939917464613542215645199918691350376309284510424116657118166192389850135891437258439479814822510480338679682273106373719942748003001197314306588599024655488492945647602566320493960337222092601142772045053958875695069839537464670932343028954962618040590253638567876160045555108344367735798153189682135790321607803505949741692582979132716344022378484063692075173739371290817751969485154319346833397637149546335901179004404893755174735882259393194784103022589466762751605137810059201329849463778949352415947263518702367758274047783386990569451365854276709828026533388644096710801567071539350622140386377652326384037324686275675733613522367031694354363759772748019283430146458364805068278405816037486808426261440771514247434894661226394911709947519764256585935127337479546067738954766601907097395204158513814211658622530622136904649577447506639187673212654610291307130367672042256209582545175185422008785306814615128112276266434916595489180520093192552418733180445493226578018178141324593737756212473488830030122944433625063751657819186447469048917922728025232019664605509488126060344508335288992820151842235255876158360510406001342668045498904102530519188670689181675465226151422935439603651819392948412441834393920873635375512674431514835924051779738031001053365648606705502063634904640798892603184983122467987696487742414685126717208927575252614712822361773853958593921668905110101232409014438480625058733033478149397680915888889295744070839219985879636292947883484621439274384260041084507803152218143649812847685073368411930661298412088505911293926508582731547326910138010987628382887843513588273826893739006988780394582001986196615484800541152126960600191365781207723556741899788535485138323205397237822627033972117269898104304393201022620246896745959443133612967329695357505290454745807163967217062895017710844745983765937644023703157313570683385976374409413223256879365083674763296637103072035627202736959992547457053058109972802925482724598483076860717117627317423621119658989662961302855942313807943865603469031735503778063344458409225460493244041620767254849054379804134769498609415572318633714654406346062177123462160215188020645864966233208303488158849261548667975928167275378493992535846195703581259492134171152003166926306431663633109689306643718739300171018708212465771020379617429005375110535424834492062141727942919960409452905161346019614348056936300321941169795264895809985922810314171639851064408137677420747985236401364678624627003655535391569154739431667795144026754620511961880535510149020883108780297604889606488725501681006557414971018345505451000490310187576843682888086463317351874652285469502244273588629124647817596090906263229067281845344050109355978071920765200517923900272263905462407236611038187595054632938921717774345452683800146351321097557827554648892369622178084493594189101967980217657049541367051596014854511698516178967691223285381443887077835791721212980026861233724037565099912116696259247048570241786804930838269964903221837040795256810240765163631968717015475606417869131560093280936104971639431549866633086103209608239195755242704473371978143728646476116001219355997064721928710122646166673350404170216966958852490733160037372720486727399005005773693266716563583626230820327869762975248098836401148254543165297287149215997843250140386423692808244296183675536247664373475118326030209404578229140999745277376595969983099697478217905883774376682488284337362467114041774512974627333740282793175315699704533278410956739320321234276101923935001309708081533069172682128095937488056704082940067615882712673747330318923208404399098982034107990009773617213113289293421759225447532443867959514285421380640065852742219417741680550059740838704435513518382902893266490375196852997480974689580021195636137963201370250742978462241302977986593752374074811256854699729976152453341478142788291569417393891285794596430952528960592258799943619831052524385813399480101915536176708052704154929337556962055788605830715676984839619051402682643576997550748608636863812109456905483134287517055934871209795528767606996074969691088608914425271545638567800376022337361539061859141830840240972951401265939163187404087332130513482273515968299504425641138445081450120631382744925342422951293653689332774719660844041055405594947304928407990156163523055550810277473007313054095915620496436492832499780470672009489468301301614494161558388961541527890329427966006799088150361095278935561524063994012720893368259880355655099821812425030952078646003832192540040229171713851809319827390514125102272098684664388892921240450289250052268951890920095257993377882984035704966919590194442064047398773151389526004399669473149180872120065264936920957371487712603564109614085181835843245989149842712082934582061223888462584621319116043884305076207795779277019318761147290446407616464291685789138566232789574931892343763948287123352157907204160841873345656335401191184470500116174064515566367575302259485224207604579743306783737143880168447463845810149899906503557877887655436494767467956957518032312426693699115454749243176233902209893325131466474975126954482795606015518068045374282589453046864623669255486913782845820576733749408155809844450104256875996091740114879154262639002521380804665554671521841371349101742289673446388669242752489991864730783937222795276021611731668633350296757174550776490656142707009470338813535166232793343623525688144546146171309457573282965310460537306324363832470198420500024406631001529594626197890502265286897178088814756517743044518617347972913006877609826455280188413082036322439890509213999097453358861420419381688681106573826115254269291037738351349788342830634145247588100225414409587146798602920961811926387513744168134219640928898504389833083529112781439937941100683672152400562312180033605150135061051618278151189617476827690210654297703952079139890601544080064178491761187958783458512908470914334281249533355558408380971616882879649872678268978979485431400671703156193924887744527023121014346377199868801382375343080160961595244340474546565558018181397454042668340543316030140876159351378468726028093087048549310732828444960734894041972754190346913011568822783191203743192018583596837362736522395892617789687099640385499705205136336728123779572821677368890809715098963320260356333141024771667459332339785165620528412739986867330509257220708446067975205035159725940071201599961801936754536833320977008984518733115732247893935320778305728764895143297422785072445218997501115425775157435357464885866894957083862910677744777172514692728416650530127241841958909054113526425749734582661729673899731927404321236158752154992811773857379170540397903456117892469481898493521958808390759906479569280143650408104515343892813468681537847522364232654576933232163957160818158538498120710633547313401329670463029645806833328190695402895117152598518460148524515954104579412229521103622611788753877423262225998316826391049023469369572883168695267211107636383929285868397191846327681573972136330720862475542444501504309874866004543467669754093323812958781502958087516573786745331166017156397882937225579722988555673641495723631412275355449260330978459458935280515275480702564765257678682136985856797843872980894717415370037103560356609691011285858806962180336910371530673930296131689302069207853888555840901874876125231977117275888676076921454900784091339688350407319397120772873873944542446493961275555097065729567802375436304507830662993653420316974288015121281197340305147324327419113901427144879214000990860877483154378487019943747315294496832533131900340974179281741877716506890779790572625970631340733567241144951765442594157829114340404114792197120987103335344740898758788659197747923568365673883073815711018011625755922264576539041723439554394709814304732659367110633068277321376641890563819851881480584890723050326014211314106037843398512880968713840437813537007361642180306766913571163235383684964768615253971388471298976787841955058334393800401715819986671799761470175907121862669070252048671091833305643983087737174679704117354757668272027361072341549124298707687551478871926097362517691939908700282299023110413555730843701471489056780909692582283040006218844120874223798190166487892821805276714420889388027855881123040229685930082440578571813860371678311488901381729845699006051378079178621654657437302284130734178216406879029346953267469276285864572032495158937065517992360782187795548068532964656864435126659189832328838976721651356086465174063880477063896600421309551666993360743365355476512439945827874788150136270031507052101036376126195787183162394373754197048854027651113742166691501615695795245763790386112449325609408752762391413346105222893962207221961583849731793943552615971380336716651406217210492036463765880869811099042700857676784438109876997470610037875368975761996247720412467899077327346983544178501870945270702089636614065379464421478768365836273960641126259244430011929796881675121063987966497892553005069913118979241397361967635037085716087339821931277732722574925448628752547400457134956420772735999610173032231036315645928842300671939581275186663894178606123121863341417313877017414842594113977296827629238908363043923882201533840952167063865972112733348841268251683975137183385641455886425088858605338271649014919421360099655846945917166558575452533432809523810620699583002683585962567684074661350591718668359497214997268617964741903755512526179223872782635436879773225768009472820825547285819540129412172315346964937583523017426299534740554550445256215109703753465802350202270289544101492334677489870692616161823896116924432517297886307281388822252522873254196761419250577381504844739319666662123156645059429554556369153473330509307370181983047318163289067300268113283336579210840148812102596628971356641768285609642696607193954536524894446259539732878417154144173844687974515933628917638993495170175057528913265712389070115830408694312573111716639269102256119869582164483343952832253402443146481562718510670892676325830297615768663187171199752994608137655399643595846981386146275843130321230809358478276837235761645398103353530197920575338930087887597202284361531315359532982899291738366736370784811713939634419455964620568027610170266619016374045855620368868373374504775051332196511284686871238720242972942445613971772383633123017727382337902982310511533925216032923375685687954694226066381410934923373377502040073261231648962744168870607834388437627828949225510814875823993382165120456146759112915269107295098478204777568202418428055213352511754263229874057894320098427766467306982907769330664680195332419023227920524061837778172982946643090609739615902599530752703110938456843331132763286361264852536452312746524038530932214166699844054571618321605318178576773635181742707441901222342472133451453288588430539520401729429991762009926317231278368935509923617471046021297621105312736049266930111418374799408647515242936149485960781381451541756834231522323482280113055098835735635943654547933370700682436686143418296441747325420903351442953084610844049773592129102526299981860595625915365474277258612695894176484323498650261894019487058254762069372013981577387276442575559720257888144294364855277603247635212397098068813894876555898550272524161524190375036355818308078726884357850458038358389618479932768292145181817596344457993622565139854993366122541498918957597401778462093940940144759119787805327198507107905242334600275773165549622993065417298154778130094438473306056292591474054457199465940597508818851344578413377592188955860323029927848299141839153251659231956360794877590785047930617468592994910824493232568310845848025438174669203330804072321326101498334577925395771872243312064127014949890756968952976247027648648430921708047185557885512986289970840852950831187913832662211871402505021606007281616715221552348621579677340100547151292945093970255260221234833545173406050574352992732617262556393065730510122279203386923216737899278625955486251402297063614429343282707061085578891788616290795583369324475188526099259780622656864668943561247350936798112492353857584042669593632568074380411576385725101346536637222346351008467771568174678984775279202756440433812155065437752196115376280942558482235038060697372496787254964082014062514809573461458048477637875702458660212953245322904027662199050502706615446769002982464255897922901594670748615958129523056817436163308177669728506943182575133014755251353571425038027065376520547494846054717414879548684282401284486295378688737709538045749405650954694858434719337048873296236649774957282908962612743365279508554999998604328013016593988891843945843179917629906701097942016894531235830087472085884342528362907490888925499309783718782450630716756864111252618995189765919298980657141562343068761028119991586246018899811393883912907883305730417928814219799745552749807953682913367011867520624809292097209212058856851623429540466166978423055992812624788040744941533251481223830420630898346125821985810278091522502217674533861315493437988392338391316611230329603851455858940599219406069610156182677475186808707684238174002955382812033444534240170774018632289238703526133704318193437643085108560303874005005525544066854129634106651918374780603651933521725639025985011592173977014100810622580249860466524688259811977067374409203315525147922377578455279156967890961894113426349990510757621604036056908611343657851624761941774470618226469071641282938918547491225441202727879276438416501504913940473277663128092068275263669806795123918026237857860231101935198675401083117750119617880936818363872397106267860712772100418958504990836280574457788353576986859848798157464066587733056930390198994403996067098301296418227304444698933472936615268474305391913316370314302284466399954270172314654391634749955391415904632170125519885617067621788036851861868549198331613479914682593363747142417254859217742777709094380821330866208408209212109740300603457712436174889153375191261035052688749387193601553054283297827738246023562666825682858790926242440263863806784346126444203276736322163808587710073646085677136771489983302585295021005233727013228764828747795281683276887842697032262199490691788144073153440697582380162026046920889305992446031641372081520961092531275100152385531225761590058977644473582150933366678280628960098361039244134269548880944087645416013378560889179938640488500948183329428454639296041781458288943704650061182108469275205373632355919257870767592535175630398846040238289691347224951002006940173250557418704289004451307946477643860831141149855070358257997305586658346809923074786777617026296876746485929680345779338592468420977381568236082521077890053653049075101551115020252303951758970987258274865390322024512331631980002664109668385581426951296956382327294476836862961672319389715452866079682348542028973799603769297660585728250472679550965203118885794820122069544941692104909293786826284144706381981069606295407441829139425462418319611652747336228945653024274691993344138909935545566556764316203690647622953888685514993441183686077451583952502327950494514263076196275808573096547251642430507941305730133981239166651189819572700719447995092082210487622436685410930280928778902050800540373625521621057419333829369440396039847299936721898966000178838157220736665086513795512688576257065697563616874181048260046535745854878230529326803208307064220925151365214325118132073320998982462130544740942234355639404763416790010677145297095892158987310472638611681288105676030684929062887353787947504347033296948958729718665694596937520558369425173212786245693406076973978481744873195102645263338056565541133230100153529961722899921707929103126897754785595643516018698092059124560985110620843024595085931543407063807869098615756100930598921428691224187603508071381761947478893269240441907815332664323051602517452453319362621174899797731399837904442240912423557498516675501930322177881616372767490904727121660962104705228087775814118237646121265847400151198109669063931094154385215834918179128498773638160128039783521801882417278039266355526442518144321635148951792335943743247033242607528863437733535505651335186919364264944156226239321496117686081200311094462718577967767960227143398836995637949231694866013214176264183164048482344709462813424462104258786107312682961959446289273693565091373527983511715147359939114416924380359990389394895532961661545509983771486939695812944091427766425710476370566750806048518248133033251266565934134803587582627732814346532734128053263791132018475086511867460130853861773426612699201893322755704802360297549709845908607986834215617974414527998345058657822957934446313927212417471554672060076968827156165642759864348914027555396547194441062645105541917642561916274371283166162735175562208401459179209722905651752746364505534594801744752485384786750267595552252081811811034423736316112818456248298746343819109934734950328564613310357061224551390989397111730881939180039911194823777456207871416282252215080695202758098842544893942337681896867425692890087329531686421560020138475762816010085520590485962785092691887928972644953455796348689592614288683439677431131152410021111647478375537554384752389473055934626664298229582216229823185975219705148979882922730601585165614171544894826964578314332522542379068023277849143127224713712807077000528975947420213769116563746230448071357396129609063433870837250112082567293140006933401158365183402706170599683109095580944751651585833619556436056786230786019954726667900024301997985516912610615124844195529257202669310213671487759074503973644531028639553020526686410709865310004670336993031804653364462929213687992680766088642515253945491277719522499159830423438807308336082571301664935553503933604248926631953755879049708838563018416735203462684618992180962342085220692582151308592596904703657288583953969740485234462419937221005805678909825846792011350347302131007426452975719819704570832511640139821200911228507681122180811934637698486789794876700274302902863573481108393302069531058351035293610656130836837339167037007315383970310260019086315536821017799499202261731632724516584475698532811260839246829761575527782692446930268165091581263122581168220227391254440615210570804559072038114292419335395204257756207588575636438834439175805437383477766136936174734905558111249073955392955961231194771864745974923538520955152606805320442042528575534409454866677137896696457719848194823972297993077382997931078015975400052701610594743843580869459203059170242849881422261697079471670152832173680278443789183727164126364277506134257324675213234524264109364225769327646847856307359240700285253707070657470675984099421930365110075405732478222131349455485703098579939842137310314962401676397991608224557083920352850227329310362533479429269144590655944918118930288137512164506259633200154781225379558371030046758070776846916491003555999040345732174028047272180861409598725101718223902945161064622053778139236436055835717181823591216591654311403412689889639380700807137134618581257695869448623823217514710109847504713043892554535705154078049388348567387881522487314731279779355622103605068426658472271727721430613858965368066020732576236249152128120261686180298800667378367571790232598761231249490400951290035916076567675419024109409059896166033374098557144454515471110639294652725918726584781740048113437155187002681606073858867078372601866382921124948154100868097331287194802785460990393590567297619189404985990174876009307495978189329518414830877943614404306379032159359087941801141821243362534824535134703959524311193280492962158526913744435374320957206893509155589582777375567621348565441528376864553693954233033022668783648590796637240031112106100322507094403971643737435106583739031120227957443717960842174436276950181696493495055204147206919579425004080388241907530023487486327214606305574308537371592125651822505198172054291115296618083428544464284326089717528663005851816259837362629008315306084787161658197456024397489848113036247014358784497463455889059738812572340963941111975803524761719201174317792519370307897270466383632840106631701653812716017404073125646371972987145449093271516584231811312896889664163009165548970917568625053161303549145167714286937947493552690111467553671307072779681673639612769218835475062237811614728972489095067515174052408340023740728763225232384989024596237552983388864858886251671664355892200070398128034607433435265563402828989199584013347089405420891559691497525115689103526616535721309047737261002600139379355845343411256352552853852393438334292258341113356928275308586976795483573743450322106365710892041500995478844637181389843133489748026120322375748927105110592116223712920437530027451681662473805776111869210054580224017686024863168396842691831661716644275040235217370456197788310387160236231106308852887514881889509255761212241308944960528757905777298383682768303203316863502494850845803653694388070755277342746302674644645783220351775116741443853133954669498717636463983699542375338862914841652022043049456317011887214799796346871160838462281469889924952477522829898124686911318061852735665801072144533273502041754039322073039951713471448708790820427196152249777676249002541087268357742160229532064505708191772540294324760082342425720134838171333503864707832160760991188974215716346560047887040366864849626392181789952098741753664703523797404562035881835250690823369534383116221468973804111904042923401931369590015890312854822857382275177231181084583568261083050697781376916707926225167585560392929191143431182143770865160787407545616214465049934096427205471928938566920095720994714110895260450908142924381058493642531321951569768430094489375928801666474642601374415787875895198226039858049781922717285103245783038060849017530275636151123284583489308198862087028145217669950963283564843101620470208747231075633188300313753553518427748261212206158836650073645899293578481814436141429055765186069962599698527466268891874433933010190701433246745781770014225754041758534117656777078202972223854350644539595331612406248858916246887464101079922008177880931226179773593949286444372253603891309533602007586474674626732080375297138199060944319159410162973212970788739046532638347684227299754690258909892558754402469078645115928440376223207564728199407570043774668136076743421493446469584393008226869430072346617443957606539328221290524210715929685992887855198560449743846295460729463601462302567058883927406644313101160501690334017360600682403637738647934270353248353050064155972842363197232078611881289168309546577418513581790189092986642884013460989095744902668587765916531798451206217041491806676075879392469263540493947135868508118270349754330443962839207589746108695060453810312106003581309086333612961104056050455703250162836901892819449696183383610027138525150106083648361894042289606810374718798873484909872164524683955979391946667033551852018651322791019979494320260830356891702008134352372651455436982099694225329179481966399580145240019808778384575768885791003930066976727860352840570353128159425729826062114661778214500932164002736957006945492261402355937658098384289403195414924128040415004870483054083440777267453245956977234542440105613388761027614826732291451612867912350619912436295101139829215776056480315472927033649908993712516700698357960204242275798470968913083532209826630969493457962528195002707527281189718966823450408825906333142718252782793571831788825791684061490757689280619482692783275489025277115423669200792464181769764195645927900211905981408665121186772067450179778370324810511187219304936542094510716777549807821060752978429699667996577919518538788100325740323310075290341836234098876765591264443715266239260625243573557762727033825986619106251740200943838717765887204035987888975655845760053290769429392493216799598018959338440949757889792371038180498442142013289730474353442899146505443674452645679714762996782277803062434909258936396915405133775471887965161238043116732979265285717590780023205788370201116087196155485438217447723169249607691323785222629113837951178535807658845346875688242511488824411682622970962033831660673859546378179459818334380509843705487274285756001764044885534550961003543120293328352841313789113418612920696144660774714375127115293710827409090816686866911847967631971944888573905168546814066232593278375831552611296829379803629855873667313702151502107422881261384978683120640271757623823282076676244925941207904538919126136577151998865391813507825677260628197765037029271872691515059334985287787020605335320993206972728474894542732161405508148110716150517106288387411157991796938045473828398346129360810750560306028795169850921046465051322482590757230382725167197468838933476868682272179024443196116854689946428345334499971268724632087903263863292770518952020408703093762859016566936197881117854895763473679749870074917016671229292992146155919980813747462246719431285580175128142866835822805062470397214690563466031371368415913747169957956491719076559514668269088888529818820868355951566302435547492917817420855107489305785301483859898172072402808052818892899393150983200243316624675193699873977584401445295256127617192413205053731109404797872604249913741348208774359855601693808869586504152385384850210483255000074737496408316431609157858445922596973619910766947337414106220707671379631087264723517713744537216335671247827939797983128574293314270925042803907441161779830904653013573426446067709092542601653501326428274837011425140308237826882262575659124293442826603312104031751740101677080505171128911487160817272784636036616940761511385373634973685140770357534721280236405999417541676973340910945678461758746880396755214517917165722515836299565264204127570134952897099832638431130276878858635695169467141305861776711317890352525148679485086960628911636967466051718179827461717586493004745746867682872353476493355653990839771725997240054054356636334202598878041183485553732500516888479543728611536431304194502125857862479945310742620072279424473294904139641791972720112217602588913033441646511121674475940443667193183408570637495533163738435615365062741809444003065571829922037652464723995927527113246995127746311656700676161228480711067096276471175076203850604054925301624309650237381876216510402635955449174960482162269549071986063649401476811574255388864697824771678767798986864915765343544809413014370563162047712982778964777037932954907308264000068019251313793642251826470790552189296881339590855213019607991523525731400911817630552478273807585918302969054523301754493287378371002093522001640044163589001979176080283042222684589471177069918947219450482831881024409407172116869217979016019837349562586429335830416197458927140425012663008335224396112644438870356489053115284415177348602250111659636880406226573181791126278370439431009247198234129872677427990321536982829759329693569355399047797669532177956129414184221550329108768992300092649889442666588787271921342388941149208269653408130997720567815011831498115820499605831856231108229705046070013629706678770105940626804864301085017045561245861237743545186515974593747703639208545149548852487518248846122716404900929246881018226688450088089343340704948547935446024780203204442900348443975287588599711074306259418486699587216700868310415279775974410816973282728207669740215160804628157676950749066474105458549700480707419830384732694211930901842075592394149289106960061271946295898546377001408603969925799305330847231947304653940566661647490914633404016257461228738899430454570324771121436767228044311958243735750376853476933782567360856579701576410863490459664596521298307131225163350201204290998778612962080588683829367482345638614325152340536376726656836331427243399381820722913120477104942101113395458094440659353001015638510516275777142059972309417030143760619076008581544134948058031594917598695897791528910680872732231867960655608932712236520912201100265276965194918683246871984819657163529004416862489825082297334744944853493527731967526800537079954334761116906599048112808018152231620281390684365012268512598945982267961278660253226186305562337462866466887976308211916125391873525283218115683830138322993186042537971242049687653080492865874350216313523185543038128127454972958955525300349513074984170569943683027751842016977729100855593234464328277273068104914455799308108293665494589636206511739082915209901171286266110821893924429582020906695046673669737222900801487394803172553576683854321170585840985119779986305231306189898006571522967980993702302865632536958161200457442245996653572608887281011045671711459057163221365274925342343730390910498406249912977897560786473898987004256017715018518441585116542157628752563769050605187649667832891242533360772000135676241727340965217609159519202515969149242819694739624264734552223045024316541818760322407015388950134780969250148095151612027874050174257627999551252472910211025913930225015175150816510735611991845733149102120857798240764779477984877298742993230702385032865882847995320899941522223745041074721784676193396233568500160048700138974546868801603685598035919559457929778646440239767505948234003390766041204273840154808042489419151395243745188668567307928929600884725910277987730039267396896784810717576800468837661185477607655384430082626104680934460127531196633121816147948218397462108120143062782731706033022015065970625184999203600972541364937605785852450414533412531185582877140820752390074208325783530535860852288587636299858465524545722124500723510402750600426517994753087020723587944000566738457637232512203716330831132615535413675132757221645382772862008853107968479210836820340712714202127076022458726311315160365063891579585259642721642797489705039534587263010816825698611672462724759884321828167178745314495642985288848523366558634930215699036458641687172397778427295831359095161318179603449594280736741733406748801411235267443510484391656803585757464328999805647140636623472093367083445156489927834353682859164899602252486410856728984815457396661738336386432481868963864696894359777680012013711156131930710601645479498449751569169243851993590492674834019348573919022083511499484577429894773189256765792415736802317492637404894810525578769321581557457202287384306300208261692365372316087429852529371808056236904121205307113268252706730937002078986964142901134312483727208746137081682331782704762558742096324672123971895789219980362640365210372603688121023767838159840360964591381382117721541461155037570496058012974690252463689440492193037136057927815051099522001910656125103283190699466628223063372575599003443235893130827943590339688072903527320524720027400504348903310287284294783244812458973280442702212345096227083129666474869965464117601391664494707396503905678677320046479030757894079221220888297887452010839079258372724172668164662470597194325462504985108398447670854818462269214799912151397152080377142729609655711864525877029614133424992625314637339524154829689802427387412062370744088589621567354288388698239725786725737763818032560368529919671124404272307024264775628559574927437433408507089689482222598353974468603869122498006782593531859880989854033599796336147536720949241685612696707104656421666473433439048960794214966612940132120904134644696107322709733282002919482587163256497971289758514306089255534391248054719703767395787645378582120887602103725515658876727864086287649032443880264806208402055415946501575752964701577280916382366964972134487711382474419312777942162608304507934540224944961959161034575629490869204014586752336631308839908816249846897017672447743430917441944605659009947808978226553480274320837560318838539065632439928817157797557089704584183008680787739242001967148172761719842760284486824297508138606969667471493262737039919334522748221999007756789114635182314453138854352644534566807781297295437076144690634643498468566570280062285921483803070949161494862815914586824250641378838587107089212907286306760047912024562557438794085185454089172548722201148119230478363991628909860248302941945096986213548653020633636869371185425722609728450454410179630798487665257931412024950408988960164797402794335212413881797431518760334243229604021549783513115186816046042996850065854057766243763718536214698403897993670325392851995690690547477181318583654843403628850160553302624391856256173944559078403019292858834880809789615123359943493748922252766738889247033594569559831885439641297955317824509842310083563030741043813095273780452579708295218314841153989424116632124051288198810914126791959602676233780400356962456691022793171842693001791112024463041457840695329888849982438937216509389191554423750109003636474242194182797066373527304277298419814868080277446437807698041354115619067443122719636015489073582904727791596344620600492544918825594223883473323866161770717531163532444747160557454873739509389812601374717081509431427632009308408905463787784729991685652612260327930355840457764478138947900053742007861977011271386898152873651614121158883521533910307624803282013391637974512688926729385944639084931076461753548224175722324623943341591050234041468996553890266211820898123912393977838106456249988567729110499481944990999687494960942448323119395401644842690116818571955945654361919724463723207439011504278867803825014725361483963861738951631614118814727891775209836945227076954572716620713960716346365478715377876089453137843103153238079742705714237288882342089171904831497777403820031125408199695267012433397861828346708497695756081730047892494323118400916480934597798672018026365671893713941020184446308312081129904681690464119671988575508481545195585324387933145866869825825780786871831954859451551611430365900076447726004851751158710952755395471892365373405824518094863379037594974394964221639667664456040151646776721379751495266851986591294590398399661853423959730825010447917148983780086830745591066506549024904938783178291664662946707275579660139106542772938828686129367310367950539054536044101353932579564737937279154468390173197231614334839255429803880629320183594828928833150563481845750843879760290018368529205073313545728386871764992251767892825961464887541057351988052236998285760082093201557187443526688801154563998797386171238730095928600149122260464643989522462487540791307175088766068996685297920364792458626010842218859687614304085853954877413220116158330246903908595001833101667821695360803007642103673869019614498748441958330978145751707255429240409902692010449249232579707192054018026717073624788002913045798554823578398567976044000982304360040567156947147887607435896904389938284350498762527632000251197655073537323395054242709359498187415776576190137384780375403642173586461689950247038672016402277699184864850488886275176189330873836077251285421013575977307610564507716485325855208837620794661039249185231633854073112885763073949357490687813848795102039174640427839261659766951223674618296081800697240130931679688885990435822135245528524904213957270082989299814656922622440457121520423024727804762621757357767960245330099116591435902300508783785968287009035553717688217911282727711253157380873982088690688294785302876626287568815790014677370049104219515050225938754172548929664895488647938757359195744190858738912947973835865184522011593045360888474755486803632252330221578408296437703137565646703459753197692480691640595426665630294126809760182449243615419301722532825081354463021754474416140359732285671847464128972194943498981365507642045203103372761953022711147658368936354462944808355840775345193057847571084151938240562761101660908779530374436866504202361794059828640185629644037594745339770227918663356302709343993977022855351420785964982977571594560227361977978203471631825256770247022908876718628217929307443149864901083788089865696687663116474539904316613139227952125323247275917137064703336917676969430705532178291880086253189712938480168432729069551925876798393937714083092851671510779865174932548067206809207546794528059759627812419871267846122591990311658893518144009008240338783724500713413414289898084160212605492539767925852497143700972845574067244738169819027492919854316201078983553785589305711883795736354940237583754126196019769079965405779469802693241599577017463086934067005000905748487839821832096309979534485216545304069903323281154449194945938207472565074184169379946408497088043933675151518035093995556220534833284105382096435944159858109208569445739183816818752007209516416428545836296408281829703147821889257468475090551986366293371065563281114464306843294779399704707225968942799608075640011365254754333620470882828889629583153221909977813316790848810535954318648391794578511240029509775489517228296150603589439096652434245326288332877542239537746111275557670219700928249582611514758375117275945321877689747548025748325818031490910999437476406631540545170223673120344060328910398597020265406816571221765497556426337568343193778753081115745825906866493814120477007725508290304700946357832319121200828459436649911762342169291290574488103342068001763377190355365396622273394977357940025219537471022240164772296711554698702370586173968738148501382459637319423525533422323651851126864632726987547089063478297674301448685773504870542118271525532403434859606004865518358144107713903851997077224097092614465565530584414063268226076060925318543698073129709192869908694914204345710671277176249550864243901496200749272816126102876831297937740644951077728817841664699988244029835880569604217642354383356216260188756945701957210538507864194907059194237302821538613679276500990955791782002555848942837346264812650824161812182480607891686654142465764862526401793247072333499159322961107942797035882582021220779839608934361977798635235660510224206428018777010291438342509576415971122893085092058433325908154859712824408247185369598455959158345674378794333111493108312749314825730808735238052298112747546092737127855591308262445574259898839884276975672997470483895583943385729617944049756204956859260920374691906236765688416105948452142879602456445534700308683450533766308401699020988969634653698993103305527890602795343872059806372116710286463042388643041654725555099261374705085718975848951115780691810498324121204414168422477844334117172004735869133950255643983133987891480229288827808612742470585195869765947845885559869080645471467554140111197006758896757433477498209456018906634462198990116635113083080406248828854332353334664649760954839132247768074737016859006593238746180363909716610022259312000444888911046887678149886299657460450334034313070909592857507067729032098206449124906181556181498607392563464679498342160356950719940067145180837235947214222074613131979529630008061900769385409631815591898512797948087279951944656051404152816260388184428903228297664238553694069742482776372401625380010372995690127999024445900115074419968431346751131124333688911861447991737115431294730330055274631138807311813408553847494073219083679181531681153908540545464666733414465096718369544603494230180501885672276966376470759350843693099799244364919912534355366596988751683199511643824930264993340460819331483141246647013303286894670288272346147634039445821483846838911627749760532776454086857189755217393950276896856901552761053677013746352161503910421025817972247198450638256242312933096245534299315907668937267314092229854813783213569261979176437107537021344439425427924290592744139270668074188412606596087468191174445312419371585887716737069748365071735455303784181425783913911419026660599973736368092622323835491636653957787046352366095236356946056870846017878962622931463633564945875167500671404103234791105690555436761334114716480646143556925588975403926162791148199968941971687050562567313787885230284765651483942749174667766859137259178761817031462826853985919359447485197333543588590370602098091559553110604893357912346998326017089566752371948707202371507836505102620542568987077438370177053861704835603471603024524461657171465442227572117728096741485931207395672506367958630991892672877855701228309864404990993670996229510666300022475561951701639206650528428086058956307253078762693623380159772705540458815941992282960623904891047763952191823326882756630171710080496511695685006699343854192612541960783991780650319736166695555057084881897284049135105430205519518928970690243545625922878692167787949097063509407879772137847412237402451417126695809739525004129842790779257904971841386126642216405264616703076294801561824942614299891778390572286441513506724093976476708602644697155252738771057661943421455225716531149832655102376860200622576879512912259977592996426234907564451920668806962195819953987745795701969669026211835597450164944343903905030662045229932865559455641335095714584971107390442635292989262168525499042113647993805832939813070344044696485990917184544919657201364990307076430817706567455687276307880284101253486106226489261260701724294760592446453689574584759084826758628644442257641850777666743573948958048854110616140601495792780158771975296293387359425907994809824738181279876073332506409066746042452699237949613731766489511507314874162761810836519087740335166474813403505914603974949058423625289147089485633499448321153864698979654907020773724873662347515219843865849657723169441948374457163209609841958802750547345775431424255286470121934312384392189358544743059039440740673482156452922104294686795403842711887617521003721250736116201148386518271450226293414438417596816822669221820166173070202217721125714175888837965269152645082845967343744120283461353698637346390827083997007464962909637237507761542158528774387931616650462538166271953139173260382977542969025568079392147716339317127132600665907521584046406409245879594324670990588324487326132467563360622739186260826257791215605869651220805314318957832032129734561747684110484763160379324943906047339403755877565255488199479704952072961065984829049350430135089209054458055275730050606754745012702611843625402170952699707230378408485442714935271328297027134366096733759356986789183095192289172853000232558762720484200028729009403009630171001312335796419990518692181613732587410494203046532461946783200723276133078347558657638627192543908739144497871035022945627134499279717389702893437034807129101189449076598635287159020679512173089091760336837544402754446693129045343247013466487957255861183220110114584904922894223604941583151153120997215843487009982826540941189280295301533840790450922037874385727026268176262212003999672266115825760035656199536362143045845614655055924287842368577998908161664936922556480793916879226912398519984608491376696915154669894905371132716862260611556107210980271747390136634106156421149170778326996680800329949033326013627032073708540923189543186687532237294162796422046574942553296367051218452339082192981339501140860392096924092360432533707820883957874787815128165257186870195147849159055329445063335640191980429485970240110678667935745168051773828123137459932500722242460810029291532063569067593133757605045692946824821262151495094273481432943842041948943035437830713909887988250592890284937625742292716728072924918042543980453081037677158877401264918302243730121223736612182634885381896556540025441578324398168897181393749451341505502386548391053810485426844955097007612481490038844178970067849305106709420470380579317973071776809143047026889528182143022732271528189957780848304640823108828108761648200340254626604521512284416903148710574142395908680516569315215752848587533800576404887788098759053655538831804929711648733428778806460548199905406519827899773186814042895322044360221903777142815824814146102454257226474499833294476200234413034286015403894631260596747934832726618337132547745530048520784155588291315842175945702654768310042399553046277343281725011492350736973599667552435542710671610103795871800109894613758984046399879664026316379408265296827860927805229079723891644359639901153262525052661348601356823755694415272374381516231233032005959896853982365959564631281025190756915731137604012915395598989077798745849195610706659997965324296605859069652366154475136756480407302148787309452106843354822512080638889597547418239109098990221553701725539362509228165263304454099787994490782590857655224697735050284640140502983577654321288669079219002527819103290070544022691619606903615777152772751357469568707790557976011219778318664671315237571920912270692236718192026131212203597832990935826135735646253360239530886312066996244507731955438008273810719997008840330156426056908316918859155393965881172303156649391073090536487032152363641183041346603475921163379274539424842032722075667854926357067605687921353056558782196291137104963997803855899719370568581169909300096080846675782952067215615204343276616212509759648677073615976705557496467962911550906591552746611529552454405232683805301444903051011561311983435329857902135029169874398843629525071568425887254821814964649845536523974524981638958999833000863249415803782121853892547471301565065985874744205573537062528679583928444847636222619449744112494155215479867776262459065777844969774963133972538984360826318728633503013707602991253519441617006826969187502844547509760376876050841051654067275617003017892170210466713054490913693534064875817417821503333903024703243200802636979193425012033842300198819328460337146325946726553614638160106327008494493810260220655646348659108530837325779220677371272310018101020267060827537168313058133499317228961465872582976064309265150165268844380328515324885395484505276998479229992009696753489406003352173422092669714234494428225295157906689508525784323703398899087033440237808062926045731141483330441889799292829992882914663369323709110805927910482601521153998361021258090433994256083338487750034106361826575645234575103129036055761415824361141281335560515003771382428626515916590787401621381955614832257977480519400767361018961002864769713213641717141517407371720266562208424348731687215352999012435435464842539316854304444057385758075403327931889361252794674585471663552107251377018201007034528211483046061256131062601505856842727873894852143019054928704011368653924548063246030126449701422195889815060115963898444653415838692475363852677267244619276925495407566844057048910886182417947648705556271001930564692162002652477598592862905385163432077811464224218514633916735031568307436630203764757376270141211612341312952312871312522498437585537666175312763934546480841286162127464398666880141778760605116338143385549013060565632377240750621872944688091366231052705889198918189237831999721948538602376979804976139261771016388065166087388169746270706345509795359358088854111050052759373316466755903338413841620816114130205720294399047765303333265973305211124294298831575925520369842513500717640783436064873847878928156699384840961533775310290061055398561827971656981369730123435737791775833916947379324879461849479716323570363454975007876624878932597167847235925573215748599194061567620221148506455654566811545637996804517526819125373197681373775113189434783590506866001287795022681093277190784533549559076651784905667632216225438443588382962309436230814843247099927676129872014530337535439625262998455965862210641732466560148468103146467006254902345594309016967858903559845197090812113128744718565437648172947975041389952403445003769895165214357694981514570409549465324749784605326572902657758728719172162412572016905071823371166614482456875263089151539558112827908217520704204639462511808416618785786824657127981628064204920717420144212889312513408534607680227422170341663327173045358437157075482506728062081007798771269994747811288301313215204796375694417016765297191506464435996450615667025796660649151342293005198712649734490027662322899131691408895745649607561285004309970447853436328568985341429850188400681998154507143429283223008150790546709784971625408497892279021787602702138662623318368768544522587705261633116745340409695311375024306832235513510109456403640382486965237639632271427610614223933659426096879658180924496047346193762261208158986893676460943687962418736077266614635000624672944295530948984677425244109385819774217684319110263091939059621952151171387769609485919588415925187917314102277520576468454555696957197397424699146019871958968501266991569158204090691260406633591475958431491674788592465276822235600734860190755372008294122301642461140014659059751865286848917429974319638338777379065518310256938152814954528566560465971001739544751729882669712601041765893072040354534364756386928950575483579136765025257421402755288779132773496671745114172148684016407573635823901205441792356508842226072122428836906814656829471058934336066255244272036604426358950735075632080805036762612597714074315392118984187125549621518260387971104344491991537624700583789801165165099936545198084007205839215490850498108685425209292534001261643966090038454261370241896556192247860680562099499367886679164953406163938116534176735518445708929491152623946785218140337868657566846989776999803425330210059842379288551248432660846716183540556471864974704554793897425291241525520545779063646633725957457633607592162754544666645100318151792535426653688370758634123817194309309884900455453874507614635685186989126098082816475259383695976092231104087219717998567718349376892717008581826314216923392971010906565179798861338296222101622309322908581624566858468814404156442039623259870934720174599024557257774844984110212350027544398214498298165078081013479669490047515460317832386064527065958153168260890752666160834692989720086662853078766214942093222619743220398174909317600451949569829315555876840245144864640964065552270363988788863417085832404634681823518446807699969898088025219037447520591759471163339897344778459784146260299686314118949023000562863089380425234202308022366948132627641237653685546963539842486830854192649252695230952441346632140988620566238245254891743857830046372938298506239127149903796733428380935864063261075321380655717834071658156559433537841620072064878982090579981617004832201009785856962151151083439842818771822548425006363369193223177886743765437110688313958694872196310607797639342778966505772835443074984938583657110538316830193185142541512772431815417074439676776798834641727093034902886946987623480351597499327399426871705617207931142187960251237177149719068193919234725861379732487408236370088052422775607003877623466626133208484667563533560619077668721005694563131038019255312411714247110416571384713637171977550860945934488132842780508499579964781310670589654200495787705789284171945434343522596411631699514466454549021236710324237544904694619610962459461740297368894352893143734389849251571594769139512510947679223757529718996861993766670259635297321259434314728698213876522290746832784792805049579437672364402585149257591180829877775818327576856326162915335966204336492113050494436656483783479896845640454817427373479627863430551161030502809346267515287668565105130454751175451244356626332839567733951361645877143200503592478193606834577737614410598521669774664567439525175159879955609600899941270771331494972388085640335378697752962578426181700678040299984715241225809959435054648805848005571833835789854235289382424306247099634096801314302094614618713730217475426364756230296984673515364777692345867795244527395078942369847468725562186791689747496841058211220172609295611819539699214800112013146513975219209260656739785601608213620001714108797517429946614139866609769840201385814915521737127296855427166572785722829724903392284171178769489849544699275198205403529428405928905334285604557983252704100664738337709300099084492286119135045886529399616563538078745853626453914174998923647241365169757140793649304934792574315803721291005125244731998169469289693372180723280360620541895893470253971163642668562521597823968363763367959100766826712859433740364671143426891727215200091200229618999930827989747741433374315766967665440804710767532910282446932220159285749316132222407208188390274203144694265338917206809838516840756977024016075265153978747094276962196475605520299096093215481253950918861743644477610405013241391453554397761164164920860838706417515436911989298896515333406575685540748648416406840477631249105801006290669481171284146412341804846749421311355575625255374313707353668203431520815481186035172617754949573164249277488599455695397476678237983690553954782242043656383244256717296426579243441733797103290279935202041325219783708029237732995358995814871618562279062009388962497029843728829220367470008082027417812231182805274404244769961159464666777006632451165601751258708167952941725078949655369907716868567045563514230045215125661297640815241521528708863258330759884208171592316255819409450997063843736639660045294554925630021178433002130232269119654497388445219377209166955150645956891282158814242633661304530259382771045261513038408786794985472618916200795356266076711273690709863292098530832950748660304503742689641558310341609529441228689861945287244705204170580404844711577257089750867742160221043551243518708117124955488915103514426003164119642652628298519946240977188576133478025837535361454410935189003673045389489491799949364159354235117149943882667179618720682280780237703282729382921578319230492849248367581837662988515175386192161363528239486290470890113896743005281509519640475436194781593553225944231834562412107650856550213625050966813873442352675378712930463138748320554787906634413326630067666834439975099317945524042750237680525468098643961306139064875433779140983903242120877236051379307572070618262914691506957083419868140006945753637363934370027156331647900900440043447523264907556600765512170854704208253784420329211236315770592481060254816902041390890166838257529431830396528849343765267190024917554223862829798295531705238156783097930559952933057506806357397940747615136497101162619275032074456569003321162000677933525306861808642357781617230196853485214280969883643245472792379854476489409442653592525512635996997299888289055076218106529024869147433344916898767142023126494291735120163473083679849206702391289965704423629548387470970798553135539078639920457345630034026125353141684550018817505124681690921631224358582619467568278650693874859417485807430422447504745137990987648123739024304202466463319398089604957412592390953038883537253326308929160840813933875183257908614128067112098798896335961577968830627922936437883094644095612299621001525973473684780056632904036114910419434676953988901191103097893251455599590092562401413483724211368831680348924047357764028786958288117182811199954369756312460278064685245461507439247506186004885426770445443757405777093286858716768047090425906833096416715197560288817684385940803148990683358615032927606449479577764809057285023078360748227724380025213526245961707811536701941012060155451087905038327305289198994430347264509649408772391146339485513494460544383411194025381533824003053573737229835046832160202576689404933743725565360345668927273675595435546132483955267080002098029336487457709710432435219136854874759633921638932620343249920195419412472454727288277556142900212423341750171355284789164106651910211245608905650299447379355810928647114476733338650350196049151696976435739430670774321032194865079890070637327804190124869702762570859694330729168055194090013725039281798883738338068539630893547925406533888575639987026927279947993986748837916071969884929116907169500383300815646180441292862132466221405787671770321745640322125242774992769078581070086024636350513279537107328659618346762604928740733771489126458993185110893622935104551103904160762352453061123001639703568166244390217724863021775670723862908188574279117939946278601984690917224593019104835113939568570770919176761232499082254330650204364593892273071272266705758036304511894774902503843400281507443584566456113989359817928572827708517557261606609930016833487665647205025743234059439943996365712052656860292729911113042864601400706975763231768282793227243816102163222589213289214014246025180839456340364710270538847974138396868106137629900313679150125821167011156941096531022867959002807384419614060675426278023142436239968214138097262042242276384388881904685857716945033967515611157875095593763494315431886262807484212421192993066428115816067922621073377446180427100093879594776462629724881323351400744801624078497598652154680052784394834075560901154265830542197989557352049946991446872885275886828068672101650324704155726972859622771120712666598281754884132483554935114358869139003573905863742669579581642072688665702847398713284320748669699476621318992582112393958296132119788120137444452877280497565494714653967876041601060179741653384413533737179772570166643720024349973106292624851515619979733685131051270021178540419089510821565162846122576685347533014763094554374528016008935867015519391775284119051527125904401889874903282938360300192709610766890061080648768209377043335511438352285269766394621624482456280649457026647317322636495221548827331612548189012248172773678672397960481487135981280476356786541912391082719908324788608552601387661330706842261737810527580648672095741111427582468577343367791605415501818471553300361456801971945177553237594633837941389125185708535571416438174404470556986133081666654602597666480977735691757294359897876860588616225262261350500683184701405821610509231418179740895479354575791875627431381931270767472032752862847970765051474999092293992806442767484814902339770845795915936132745864296941408438048442654717292861558552090077981771028875693062437345998776680021577615784010116371772462909724623891129592828102792386710658858516038383663938128876668757621782886917496659089142847460962076781180275972716281714788838168083767935144225662033021422051867971922531503481404115560278605775574470983276504558047375089453853165525531646209589017864598940163504039323318811114647314363148200930492735672087574817551276897517250877341715443462815569039473119738276343318310482095772054155646326817372979902268487105847520796360761522463919584000675179669165152755190702164047315917892132409279571841396374999006274772546147731730591392989712965764882880854723904148250714802971075929486001093564411338760705853298027212761391610965747328287193947380393303489298599611812806087975492033218590389305697858663432266866490756308296478784957420227142298898087661865162168444780136302185394908239865315986022049740063426187620666556417636030812286628615172808352765374789266068274496856855113221237002654415111347342243340147589490007853171808081738615572212147817139856236480686100435711265305666667970225001563987511855533787214045777927497652862804817437020808257292896772692193849653648236242941915781283071319426201286086172887179265146440037972929653304559112244503956918092878930265122713481814210206012392884728781828830351413649348381671574791447761412914169555866923825330290605783571202546056017713574161576859218606043040727551283695543921172612073234685087142582179438785610565980773936280406885039826961749860063317202852440838249287403022365526873408492687155549729732570219187331109248935743358088066161941605632861301092214914591315046019272784814223995649228038196901894672550281571346584712549868351292022617695309413497883554861301245729006104055222823780168554088574540313172399475016862372725044654830203742652519649164734622734826673284861818298003145725047312424145989802533710817031972858488031139190378883066316147450636183506001464597493632157427408810448069447225917834997141350715607877371804808197846378134275633057266397649588715522561135083716510781780238343249342078342174175838051347793905899236733868273722320751753695759542012931616176120121975054639524600527658061813795544843127502754599811629771545040429635862260334382932788160721965119751606741878210528185380456418326123620027131622308412810145930285727906005305870519502943468440046561022146029389920132265211996839512795428865273882547789153385176059249598104691469397321358926870994893446156946266870999318224290125648132877315277135781563670034642601521440485289814749061507211196300792215406137207739108791077875880760547819651285634349678880683262998318413920633308144954820558716805830197896233385514722534437274559568182870862126603887689473874138764328875233015556306802535530562007881179511115317798188237115541818431410130417189023043248373383752093462618193204450323028107109937933778111807534955223314874807812075085647274427362642673839195088450045079692595481934028955235142835453644646386380736649068698119532461258708781339345545903480734404134854090614935322831601471074129724752081506120668229810848704273608576957044913291895657648199572151514343444384753928890840825884370944713666796113576865417190901135658975884821133975828436951547699565981328300490783931812614344731901059941277361496229949295144339594232613477593840789072660906769147532743513103725827866484053712808424038150978669721261411804294820500722993978745426434154505598366529414124882119157681656341378627480342358816249784240002950488622077466488643793669089863453799874256319145789812976022423424910702975330546674614231707679887025044784096780015615149589438409498718991290269234253600600037824488560697754370134693714557487047961668585572534533630854050256057057236672378967759565694280454609745969311434476873183980738201093250667441482664503156853407121254167328025860690232750684606237841560890270705509238475599048628424897500703146878085009786678308772385979239050835242632117532797151846302336362793656792553881952161951420017549707181416370767608473064885304665384265069685642760636162059893693124428588879631103159433682221594603627907846543296797864301195430526469350523074887512572750303107217574504356930347713713140954060652176133394117524861012870671046220249666513817047685510944672466005639324636288542144252567139674637012929613765213236641857289529929747128585243333239977192383742021027619204750291720223507268633041226388821530661028636009231108263534793441396990841500108175289208015066179460627702120094021923452079591293174895120378132593234610846811700957981537299555535538348026434205559171645094851057215353790930895724755035362278568776694048890942122623728072316610536663112831229547764889697932932448776067564504006932689585176053863963961437469162170700690359238541211274615525073486380787765192881685550589712310271322202788328628622115508317439946006030491732958542719940481837739712182525809977705639953330759075892279540647431263761498022751955195308531631467544113830796644253443398082869443872296572805321222049031669644079397273604693333920817916380513354995958761432478261537829938713943542072939493989367645901020383648534735978170667184388011962174920121198483290064569447154389750753948538131551883229891307374270165261226652851032324961727941163146990589032975746316382081617304925182387967403977264146383705932981032469227459167475226111032402959380059339762941729890818011797112400689817612813499403966472203106714394956067317859856302724647798663888413647922978226914156028434493224828830462044337640976266652193344623183900269274016873610147612090455006266809324736788735348874820622102701272612197678024595642786956748181498119002855844553132094812330225176583474099453378750516249984995629447548833653131270765522516531908765229528950504112343963287720471345878363830252484992431014845280029146235787532370793161186756356186263721360281837899242034764536306768411469311187128808091921371393632451928150018937545479142716481832730227400657243733260272097239468430481815075067158484427876859236521341047666582868532951219052743964112439294498877836207762137808948555037559517703406333256566806768108922105402277359488493272782743128730404953854553246618821480156464260493318261329626282899848147036299050830602684216374383718966543212946102673753052177680793748445458211201745677941717887456153167252179293017428294226938572831825940707687734362124941159241373626776024953017855663547161390035560194151992173170808196349726386895876581451172734293818185623013333614320940821163062204025443885242370041298607127160632172428305150237822031028397558017481897003197568457949832654153912862694009586826115924193128405377099202739543020150819764274497460864264631657556366356087792231101138120506154579138234447013338120654415585703883942290966981779789194000353800458703956031154951550263076943522188664249332376914321305719835003116541450395345434375730789551605060989830114517733991823534018384017335116076652997060681649137391538883640603928663872717654385357700825744470104849838079833992359426893092038466753576654997678273612965685315943736554900688074868971456465359608747397407045130428470260161056178800424359198850958321421049224525889213775100277132975825411927812368685180142426956989006599367580811503016693030562858985876520513594250619935538909550003321732477446732125793060438973500111166225951659517112223115109233801649400736529012140084694086054102267632019123975503841830258233485290913308679137446137162039865244330318530966215908294260022035512662872866221744814522755186960425073377886379186900125237493778897721156639001725398637105359647879001080022637845963220195617175764714683699016739631249595487941073246164079680490876751775882828728990866097188975484890906068148052503877772486160360470314312112347221391688874812131207641597017185016164671337692204059027655415685041461288921402852927274711794674599553350211534923404163890026566184795168080281484234871030782210609311882543882057274024185911554321682791950212104953300376196879715097671592159838133873167882573752074584549827428893510952793387125936384741984326021336123540693324113322936960975241750909125249198508156550608404061249121203570276073722982802492037743503839164420119606176603747207695943670233190406400790688128213089015261595640785149529099643137512152212785806546348803589920083050265869705296677032689195135642640074356583951764411485760295342335397236602243874503841790733730778039424004223692592156896813394779922162369826561830754099205518169808495046746559944023886142683726686722515417023720284561535277339272233940586933817595815578313265238406694545472061125239341191261834094372932330285996252512276957151004040624084454446019235877007549136853837085334502240312317678440372434683502041065670883630553075823184687129700171451184035761868290466164673367267116060484918920031955803048814324191452138539678112516342238982272613661242672479413709208259766955091969219673845360268786729590455797922383343251317342776930625304230526478148450220379456230629596346190991391401410589280182285230611889709207734959597965479595746983908841687198896608818954910086526991425729998165672765173918914091130365444195060746122748192778738396616384028752699353902200427163368277378081399332856978339228771202663749875228292877314058256421230656655713969931259122415364823799369724212217019144779081891328872859074079323245278528405715807879629580206954915007688636025510481256981366582356937650614623057842669630086167513614150742659249317178493984077563961241550431989471324869892671521409997782388533577749472821868156572148910157158960539994068222881172454572450448062513235622709252980305248706113568152261793506129474622546713403888310330349375101123070223638050495736631119083495670382137175813312358765945410826505958997751178452667629934414752428779308428801996245559706923611307216601230913030816124314923339548659953661355033455989027566156461990672910081926396201265767432659872455756929257641169531333366857479379564812563033165407716953823990863564233484330842005547953302292099203694963095068782066300361814890210617298135964801468476285960121197566670929680132482587726600312365252663855410118960695582530753529684459186150537927877515351546979691663159973647160744559194476734177550883884085635163044407050096431235600733474679715050339508102530415605184164214918757445210498024169950817651831909689334432380511853330754190858320323089702188800407705324721211701590262521230149627459398915637284159421214167862799257506057935562901967706125330837162278722966911700252812984551506779361852361371161150418408628197678186817485564021540591575318243440965819511189037307912449898993415901984278775644867768156208519443671652606721568784143686527903576883702592410683489836056600550248017804171379025831193602499517059534862462928845813663391744840693594652015796244489879038147294511927937996737720395827309009141859063576345207560768201562835328694252918806050687775219376016220910929151752825275818027267199479895105515244568648274835203990165812290301265405142583091362553191869394660961699365386476156285108349925658931415709307658684224373147055397389730218596900988098280287754207202190611976731603159918950865953935505276265483692149383038036170675546017724814237314915348474778522875383568526188112616153717425280776490328596644193151404176470462712631396145454962254071262318430324003485456359364536662628907341794952773878434313960653685883646161504530520726723042621661222666152341898904833977634037549964124784813875949491313964361949789795730289779529703443787881683083145813449885554083859093280604030992629444328388057013716745364572373590850474012697451347882956700595131063162711513106009016258615546186496973728442585446379711894643805367804709019512117503228833968144416021989018883128838186472898229467128027277902857779846741670248775564765734846634374565555051790468637925770627712662612222818117662796889877180537076539558453418049680971827936270590452144265396391026669912032066964090704279761302802758934578453033470782798460698119174755191852091838082251579458325135213387861105003394395286101968313506303284728774511733247782340937834471487360629182711936571256122993024658253475552372644587634758054876770676561557829204256061864347367029907482173759006588663233266960136526487730210674045546803179472132243177117841780357052732214530755482434411139930103100116753478307690420185317740747262482305048030747124826033500819717206960877805946028216678143415628395050220026459060582284033589982864787432327866537889238618985864804390959978629641972884579803475498149081682640830552425839496061451483497634802298442383105221329604110249093518518562717904960301626724296753414247024545509806456094966025579853064253771153222682594505354397267372029398943593881279702528938972264120111483381495765350767398416360288001568753293868614847138566113233652776119803789138261583103550326130939510138752054941469678995493414013321703556273197648409404462905376595901200450160014225857794064957826769092362028304288621881904736840184599904685847876936072332631326338944579350930012586456394972786814284159373019864188886087284054104335727740913195399170568634479055248165645186777087379611132294474104309458048565889326083012853027462113619454560315433108186189459256261840630832961542109394779803194931482628041711904317437994973420439983489893056396155874577177503119333750074210428545028643018129625338593860510585801622788701491870341425562925710792728767761140317627829006781022719837067263765378340434608550077101168785042037034594941998652222204307297065768925134659736151361929666666813354386292936355502851110014085041786429446245666903517139550426059568445696186559614979682778217821015833134573382687273313074792464471568513881580571719634193146608661408906033642426370975783586884720085206253995773403974327234191286410480345951772831705841223905396590209539152812987525329215310742947341952968298804167018665274705788941147945821252606455376017750958230675130910514524736084829023564569924228547451615075197083288834221213954361301652175929724027962953788160100371381527430001104666554357412316904666868212565152850550401001542833911335608480237228295995014527805517450589523561427863181017091949404894449389578567378703867441701658209891668410351364639395166848808606770358795238237178406732783375234438218130433195229525437917236579749916023361973968702665134228762714876305909250858494305908578420380993271194030561377930609301208521604417468330978423923296989400451890805928564006950477374656349016512394773229972158228411332818662039749783160370861173981749003443802514144639713303202590794652611299256643609130460090337533860380977988360635112945310156929678103510963639206499824574098573233478327164626269582927102454419676129977725071959981670008251998317324088971256893345984617007509888692130606625354187805394487327720124803613641801254936096278820055770836968810364152526596035283891356290896502906225278925941259829839838584775506496055129435687754924069006352136256993028927678848445106782673902227641021948059080818649635208122099091694872622653905345793849765199528075147262264460737370679237000016554424565061865595901575908538169004537548125727129411275772952800950647281384245968859972587489074477494209733933466682509724172962944961454603997299795758958817685636906269158857801967257186506479003990473297185412123777669708977584283263821281350132498559736881296983329311041342216952788873073612802684335512346973408010846390491161212311751981715223843479010513666196980043258773416694747266366730674742915035960757482758098286870759556083900159579004459166631484462497083033739852910285729000012510857138819809575914875502744500956471143594063972279253288182506889708607450613222228615216679011806543685911199976537133159535534143413241329356824331819759634816608400708427041524406881038098483387889357389416072323233903042912338772463007141527172663225879344305322714283891478724072556794812688528811859745162713162986075575479528564448377293170843558828933822153773410639901384350986430363801353228764588824490015298932648262339245225025574015192914452435409645468922227960787803006604171089818447713085359138269498921318266696354572598321658599389314712469438936940095935461033877233575278747729650401920790707256430890331632564297061522196059194231771626436009224737436625491437647454161041511695258499466965284971512475954876915530727046213472658237454260667055021372591781957639553770471749567271244165214557894338732712942351266394694255223289829983005045718477221545435483400126064184266056681899235355293216221258273077388078130522255106992372125384305269767786958246340592672063000708729553435320472009831621325236865164527371877349725325373575451250977316544144207838120407661658348385449725375997366840519693654418342185526575377005571735140293357995108452522399251936960798903474333311433780467466081061169340161995330424387980600496196098958562300645694790457228253200933969938997349647093880010968518539050895476908470346292803552624536802440664198026653021139042543386525088234527057054237069767027445381748211552262435267069817241237465094274835052045525021704133743049702525392556313525716963800002904409495070118278701958298360762126903747631864557717568166187294318593502887656078988048248058905294016504480969800310878616378894828658695422688453870115331716789233353358890065592568548306533513916194931635647242450892266352675485818196032411165910441384404651203142715158218725291219228339225478447568031818277750627001632737426191802159315468925041860652881175329912836998580609319076488313640923659594982978678015651278368283368171176425100353464236406498408480275498948131098244231532926610998425711680277208671354287574890024709334071461251883033841091018983417733970351573604279191557900085197076569510699924448743741722162595816406207432163958664861876207153795665161276887408257340608439695514437688926534825153345709480281173553915996020597828921575246157762148458220298851823323519094159655074687873337387733576309971483613683134479809140139544649512048648441939175264492988128151470220031845441054853456959311356942021583669364053786198433533504277327418269073598701511212221179117215806764766518535884037272295753785906897527833070061396382005630244898908054677930075533920837593536599345139929987050315882861335486037918607686372329910328226298412211469905822994516898397207219482593281361979888359296958386904358038176112360125614332968874181359868771184089239270274283541321156943346903848724510286182227295114559286399786489064532341487226743892439375174914593355333174595519497330245993079377307667932444571851723084525913781168514456409884087822452047482041881021109043021979610607885850773476211163647789579592315847224428402646432615823636158678397485747575611085089381837675012687585923432075562333480457987671960495821227851723363700296136526147324594035776937113672752377892581669617797898424732792594128359848960796206783394746288492161689284766367838264523101054204683225247508931188351060621043279071802223575960803503457779533969162143508395804056408777476166603643205265002247848226774753981392294460684537406788842280772014921931015091955593263067387036038019487497576056674188756962267182265061289513502920813918110325010975168206386656892015659170287552529649763358566556835148435482351057927184580328797949013757541207145361789144493668565665981170835982212150763200691353798466493630742808485000140872351327608614399432461963642753586518643546885465176399060440628501681881184149632467873324850897382067516745047720927942388927073213376535597885344722530294808168443446493262542333073836218150246000006435675852322996993116097435739716729510801027597656297380651472127218478842844668021018084389018298409894591905470261165934353686154790273215161537018943890169722461445331494545418902334866391281936485318439100271809038084708031472055432688256657306763007740980685958939051083232453683864248865727630609778851638025985349273639692987760300126382830757463237818279837071903672853361546729747026577599734161997275921161862202793187745438229032596053058917295318989504353563770486704763883484294976310956145956306959740225552580559697417262820006888699473494165263460747587993569797942272422738223604316230746250612573935272005324606311719896553419603794735048261788317199295934505263967571929629550070970344206286893683141159930947248255014728062682424982155324721974368582083774772237429135382958839199976647223523348993390522976647533099583334790207631519903653481567493169186292603194158726436964095350714172859329437513208907244584185097166835229138199243939627338074634931563574750310404551987006646999387659782069764561163610603865861261426318054992620665836780425250510872591449860556008757693947303360479746747359405579982555255423575672333509593908666699790133270563781954241362146137566806441539981280292526866042910749004303727064277390462263516805302526524696779983721342855496222726042824591115277514564466758048447029864466756443622597413797959325900734266227583058663082067572590240585110987349100819057719148622902073735458521901495425202515733510997808200578208705219863941671126868666068252972199615417276245854898854221979988316616183826690862186413217575227737714544516828597578647863999248909687242277381565983606519953186942859487496776408919087537928052866256325391316917793151454275074593256451824858415406881384327516807323891979702702472810379402484764543837939817213577244416090833852972450813443971435712533956558161296102591754263983162224328060487093753420540580784955551486851922227265874178897565188755759419758925484997777611868812586026711703024297704789741333142217002349606816782573757126171922076170735414025512663320815677826844292667066237693144427301188456697902735119049034015384090173554310164525836331218063738336812983722314189375073074020036733205430505950834655931761518789803901799080456169722614185962205336797044736268783218304360333110054457240575904237211639959264334818845293501903534355675542204075868528300342927687742226337738997770586279350793146957439659717020398654675953064109222640986831245755581379445935447363271497240144503323427678324082892395850157981353885798746593862876286077192311472472455822141412277990218511034881484666876067494786078987641561198302737244330208459467696590100501959311642852828360190913081945237734305452224433735414283324012601336647553986344339673860775677445047493896140454637103825534586537831833757359313384595017952249146475605785475183548350789854220612488196276595089973843321960934875236128477242086160011149924377345003224773985745619956107087991339433435920623479844589464487919539234618613562803891029341626731872197150944315354539710612641713531888724814969203507880209151788196841333085867795599488573953734286909635191074075342700629147745107106928418817634405195328200644004977746248095250570962519496153416569604582432155578946508256597110729880135864835152429420364914687263288288946013063445450730851729425183631605477991309589019700449159352684553318646837406172485780089107464996691108477747933252047753164160930570440289802671739668124846703020942712067059901104299306157160355778040728679854152450806370395092298844224262981357346231472975347726029627440159926255657662870890874113858372078635150046809732897921808367671173276804810733303371549586566135984384164544470246070722033584650581497167912912610501095987847067759648862232106340673313978229804462829379731533468036241131090743899585192880551386646167261102166422812321456897058771223954759471097182699798984885986367838120255469578164283381434453714392137561252423373529351285935417009536645614582822648773894608563583916303770700388807953303653078848011044507805721965649051663551894139704875481986001213801774610470684091473495067976008535041659708730349456816792687299137628395546222120567254541438893607407724995373019773481719531858163756729964451707946084255673616478903370995302951918530511306923576539505041429415553439544545133367117195182714389363052263452653637486571749168991013050038086809106565866265188752793520722528131518682683493939958499173211774298889687293800762175685482002578258131343980402138879103419786708402358371287862438023475096462312333702788053027595334086168260599834636230140785608162388079179580856110880045352346477972777071860849649987652337076238063013189107101730965925051253120512378891904764484451432620025858812256630000023150806302528543947853112250056589381046615789035750906057440491976835890460160269666368109033103840353887860877039313018558904123081451775048205223675744341752216368316586189465457294544106628960039741644939627452159690613779254121900154729686493332414549659548033510377424697656264292069364090263497748972447929757770508414481420393550942881657782047976356661161255342848904198474222436541680608520630114864292167235508675393431712723612913485534996335001875995277443802027382544923151540368727418128639141888053062655222460780037186771874517993837706541870281731844168517747644200631442868836563641993557986275445892659776973582219399911321285809865866582564811814357105292658227913728771505668292918216675262449386309215263357803242907798412058494863415765189876973823612488965609500013444428506442449860261130078088579477675798987682455263502585660275809024587945684428694223799641466264468809628030278250198539462189075829507920614625621711697971918472597150007735887323665774797574456571011541636653736261790489098217104967015283072506724338137336885387745533150930736251685821641409001917064378912199909839482760278094027656500940080070270642930947651082920402945383931114217862311193120127136435456579132863909525922632009634950792267287811041119097677873869529727159231711212779056277021298292376904148940128956914390960328083240093706457528196669815588330194269180207559822356806757450797608656858250756535803081827363509693672016376552302097892217192536930519322058263436751422509174241348799550911528602852547528105727748450477371091970947071644801771991213900217561013459361393095874885548740543876008946798541999992556713570353890596702482494795136554270989992243091970469835764798970963396336765344062067895955039749056900510133694395566972583336524479421774750715258887720300481371055399923906796126642520680880287271499302340012223238534837968539453198983056186187118775069669847928275787244490683886537493716333831937468716455612971909434635589745851776613906001957933325686743341166112923232129165870357278355667062908403835602670210127290382490464049522165374239790965556226493665515385817313373487166080383892762313802652151621595956767654020089471216980253308672199713705922032749183218036367944590817060910074774705209564624788402036252128793784175454152073141165716304286170110199832461471611515204641068503942912458215088223308646521057110867662095514046044692251807312985439025583644535566665315662376610579400815615035303057393089113704998686019566300688621043218855854057371927124748080525284448100097303577816616086732102205287921334040534822964050574263900258616803930215019976394399382967220698336755310164653860242794023140716470488787833420125830680920789448082470116965031413374486734219154780022685386117422425544139633714382662842265807636890985459595755182666427145385059120315030816092708215060060417463078030311068113809911303607525569483976493437684208237587480460122315203107127172244224047362080439318766566163395188940512906458205048483670898085347863913598611906094581874800741017989159087878364927654796369512024265542707676085471905307556650928921236125973878857405643877891289179361055605742768498794205785319234086302302471559163382348946986370328628053416069380643468685385629853721119322936678462414442750450656192225214705930745596740298957734284565815162153418326753808576837923631056268496083125731637309720820741012017038117069013162182312517813863971525314975696511415184668477837879780773279894892194756540726361429279879463663291144083922362514851817678904434124519833654770678661637652608268945656623625722863080378802360803489497855477688802552988404881088324203880836607644622488854955767716444624142293777270751591053146435258627301682875796692497004880521564956259132941271599510133403818229801691178416624669712628036507396933086982645902682411202467024164069284583300679801789620561875830601429233774509769817614654641754775974525715086431019908256753279034404394067054669786343121084688534235681232662948076175151365562217410025751492427394420152911850170454321905811751512126696406620486704889391760321828752660144358480821806204182167392056166722506819891799335889346344521526910131894798931013615007847430454985026853413302774337681047962068907360731471421020203098794734177083797532461357988781488197157563530036856186105203991414418895944456885151059862226412390234341967497042106703709429276844619963828942521224648648886987124248547715476405756508971384864805155212245471965441757749142346860652005843724499846330280568221158670130802916493752669059264019767686319155318697580580060618528067223614203997347463805132987031052790621105956202046046673642944373602591050670325919219960058862511999110997606054329497926981560323493059536848612563705383080733944456735999453124012225832350917066953903980928029790293237168951708037980468912484077041676473051485048756072377471328360540151993306429095297520302729107369276344447754938871576098472888434363788548370735150914525565527213803770897520584198246282154251958129882967672233498339346542028139827686843669139652029857087594396747484469373488686636772838920820374826437042556133228790803562629488932839119536936844069078543774327482762169787299501261286597344935478429294834459889536235201927560798250515425501274807014565097314713802874914467312366917884619806259951897417316931621340677933913061655703396986451374001935464077352459820603839189085368675978606121581713094117922298559271874821545252839279017457205272669406556997783243520895210211783915631337496633035115775132507681217087918098483001871791790572899792958858527175516548314252666030620408688696520178283783983374142640409695797503095803982726465822169171012618608393793747120419971597465312370324977907987995481230387132590562797023721444446402449122052728337814168823725432370866726192737190420677300760127593708606573733510243980595299548788195187946085741805524552331803416210106404373595512399822037267283058380829892641712152634093424579119109403820449730789725519551519622997920838036176431163491790903041996476159505916261988321770696805143996246056446381461955338047722317584771625397189591679806920771529929272951793450514587958215243193702647973302556699051006618483376426131137504538788354740901444088560639983286981807056690058068097771922803507323865414518897461276795687476542913640800275741616388914175221444678208890484056876075766702349895389920556731939033856677136400991202866540100855162900073702425227664861263394386159543281311345500654115687130621676755697394909048127820339873917622573332218644216355293196417865740059694481347899097740123412136033244432543825537238992778556849812175136807393174493415288195793524883994018896903295944635603479769756509842529546707479100613769207632554516503941207647997913919644804227125385750856739305233893469495197608179660009546856695306218675602035500086025992577326176615793597197100362777005545297430413025950756034479881525283490951622291513658585863981092796111241414954597037614712793477821397341516589729298635015146232876518304408231813295601787960230037257287108789852862442898311060056578627662327591714695444318501265162068811365444200041860259833966712917039728665340550777664408986613644115104091180913328365600866620922888961208256611843064377606753322159159066653537402419919555065508463546980942627449468758191764777558590451605438441064140168432557081992828499235885286760162512100226618438861899524913779587156960463352287678598308304813883554668537988741574177456360645711000584547776267753214720259945910592354861561375490510725920284834128641425773057782622773735451982143057764296243156962651235642317903886879602747225399022321000778500252763260277483196384930145502075665542907051992196824329365823550592687764461969289923367553370702072247800654593958753698581678338063931467717791613871872767682838910912091448190948916800753772532480391057855981455397329858948682495372237315175078500179612596756619121451885053620514124954939681535532404044384758778471061300020556801217845206610011141317826221377074960026443429003585354732162269578474472766373701070934801400232020134830979582938571320110969068086737714362616756862747273084891030188294166662728546868023294404652785136805836144879472142519071304134894648470318503134498514134379187116231810622226595060862297797228013682010899830877148321348993292808725522899242536197979690543140721244683440920085640833334092906180232160149249300780630647149412063038602963103225505433485850841602033733424413849747355669858886973260684939882818838482621640676097557187745915403887223640663513893072471156903300536282731148997052414950984037824134747543467516919561554488642269461059048106064455992137877860259025454397251117316493035974182518342391705394389494741408759717078318414921569346524224960250859246813306088396189467468301691259235483798865943757987231066809327526614886717562328253626958330424885432880892251505336984280287338560712877723581528891294231480116857312620894663230896580178883197740486444517364606342893579615548104339873199453981982713634542983453266100338815312216637285101840262724278353578847716567573409414772909358232533805243985487118911562741397754623995774496277675990848803625598961061575137309248814208247774063546173116545541564688841894597004132827344408245631292554943941435379778474431711289812604660681708309034270151712266351239352053235114771496156982192674279705887333477119894582789215406342765016874295341064602933329153619427386260368162252420214098511247355989053950693694250190501640138663197321173333424802982467473156349915029186716787477047525378017299811922795537068496849268459675065820572444804795918581954822419937217008278968583450709362153167305410247793835212019142992561339069475576854153658901508793942836830893615073762506207973145212242232782098417021696055356517423057261559286909229596384448916213505047501912832732396800494539887837872334430156353400889071752719580416886847263178576407192717707529872068366710713950948499861834309467412009890293115538547995471817076327337093789720498444525773246161183960310778430003063297248501853609637367503327088616722043162949525956590238149757768396018163484694864810067143827633944681812557185949175244086611873331459774660412336222020030818888130870725296676561508456331707299799108408694016490452760689354388723300105203094589016452330336592454333970393955431660835408579995129861085277411281337285253549652435419547834267201108727097353556626998022271290691791367647967826718937812908361005784779695294591110134763103949596782798849619211402379231465745165225042031229403161097966560175231486282424713725296675694110343573396966213195590226773373197511117175901176058801158530006977736842965334236282197781996873400628408518338656285032400544258319539844153622647577564676905413117693401642139588234209468602644931930080987398260828347481743480116327902577270632510654640078185832850205111283953903216520604679684818824423090709564495236476779746405102108234706277971868875316722284936229733306888571908153892093840291534387676328530540592239857279931225628245005275236995652720136415036394825499952201662951477183505098048779475423861199231485501526464527641471533023592333449463171091296313997932998199940551431601702321504897950378905408119024983578259579024937649523454355901395025339897862029939764043574216507186773007578402540066047786076640642876306538352330719239212256146981589876675189448653770916107841750479367439287626914107059830249445489285842861567375338168550358985504687860358093022631776529372534450605218423997605632161274979683942287843095054765971524654361706137246625527923233497435972657839532525338619745864828443260204687701804572829705913391644840889476527142283723139105882339758859663500344479138493470019867400720973449499938651153489770985742946780861023662430163439434568211839542342826113626865728097800551122790085318661652122393052257570824702800557094900303393710047032271318779178992548349854134401671615554879617378726883567435941136928622896877167772974972174847302227497719284488865799584256944541646925083960701380813283480731025735735694060376391389214695585796955321836439266241371357669783095775013265311466507678103726419632338604734703639307919772447020975030951713615990944634188216025120846938308909614821034629090504949454863999110493296064036844413954611139316190137525606467507210150942033405107711465572165771624662233144489472504747326340555000915450804894046508190504225742023248786798818555671782229129678728094923316277473660493679558681227934844094478038471152989058458023964337141617593877482338339333787009851730873987126917740671704539145456283992704313444161685121662672004184537211244991654202821460321673539265553197143483364248082203189327338297369791993305969322675899721289412629910129440634627789356823183739679427670174622079539299078872972742947115037964507321429278789908805374609492987461320571973138800550901232280886196708569278583541425083111776760597820254881049996122658361727100700011830799614239706934505390744332510804885459152924573818024041536386448879088925220457468155578008965741364568831329213935213209009349939276514054117373146689301881517800499781288076694922145164806912629915450804555779817584227135836673213910669455096421314023955689627062532051836963337215401505513682469386636996246759649940174248141545036823461747064385347501657346294545928967530053589786500639362436033190507643345832967653918804529759821764559595885063993008845099136191443584484137909162409106294084316327596106965954196175932133075043723128288567974768504035107475023629050037948464846070055038409071154162005285814256692424246120081861250637173740182209271455360873254001965780696952000666834462115311749826393335742279089304918383671866238752673971371693971621791154960103023586761068656445435371022092423087673912636455367278920928586639621593876993407662055147408057030545849174326159462555633973568207454873826376727045863868846241047768147165825651322358815462944002958424610180301585774277761758435756830458916200205760551797421882666346226155196559350800959875319040579515503654017163769793399940119347655383925704410660296620126483852032832657028588132819021761231723342862093766919970579997154472734157300115115093532570122992945291387079961372265047103611950141679081920486816941583078625585876844164824848636984789463680825009602418604007117389744897748306878775536322497353398871277838269343823221078479603751171823029834612366279826301689644407386405605092064471873422864499257472703857957577836330812075868431135663795875530206910440557209752775867115410049845604802539115569690603709280698055383525463074899172558156167664992660592159722121744728346508117977332673617641776885883460282525628476937659614625813405984789286973170922465879049329946754797275409352306866324779549060314967799391371964701139741732101582164437307046557330519403249030261859362968735889832941454859283581822680434467117697890289050605953388372433899042898658455496592759573902071772300953926331653767849764877931711687402476137369812044351736051526649969109185845733488651257762491043724090242837140215348945005986605361965517359137467404026928824146624859290527192444821361309960404903798232558830439826163226054763774563465177686187944490274960624676143920119003584954552967682728126434485922538746856955856379856045763580462491636418490703329995273870234960530948854094073063531969123057243040156626947194100375454901478942490458390847606912156647747518743309473396689975696866652628774846358362435694299350977185766595408979097542924718069717660159585894115827806892847168998156294175536142415185076476220618709023264596807005557615106751126647659405677299830386671065511620893463622470545069464980599760139022094261137467159474608637085712178174300927657790292729512413119640390026788870567182068385648487077698285301577216460091967177482560998848936069209853550287787915663832763263520443630538369342778393224047005789496585859318150446090653915244107075940510803321147500831371841340080515077497365328969309813478988286710362752870150236846629633780738204813245727907592529590992338711046175544297981159020766495570632185600725485517024496773112616361050114447837831912968228794726893073632262258717595937040772613058927666292402251198076565871546896516492337079713950435755248190675067343196181802097245920685798571945285070397418093728436524404416988395102828639596597978261262789299749147399336228175380587086064542081011287871582845250593118839397923920352872352920958598995957865920600650407576063855966393548749464522046646494771160147196182684611525319258858281722656788550705058827826166244055646370154741644038721263662150068484913804596288511192086506282042562007163709236112782259029876034961801298244064748406675543455412671401425958806877784369684801392675239131426244794766426841306097667433290764736967380207134956035111816752365164584329098484709426148803888686449281804502022198767102939089965871644973525653575072820594602284307305264630224947957415381280691602553811716304016950942836308820930484260977835142074027376436210419996489758909086887703750277759111751904475671786807046568216860076202797025274865355946641229934211865821606649834096325215594836438387107626923196104315375473051251417397800651547926233289214826119089179146356336484980997365691903611912459815100314598025118281557246654969362672214675976996921746018767686901304223373018711090330323349322642547443677716299384694831780706049060998036765715061502582807347776323445264832898220143182803456235951584008833096927722138412058205591927620948460813897456128937272689294710503203145751209464207211973330000041820414116425940959217584384002265853509510378389424265090247858527118923779961576676756698722429294895458670885931902901609176665739150792756878019221833068110998872137095392681093784103222069098714738131190168086398198290569598074484908631986247794104610461041404341510996670414042285830918068691114730881201937360195685570498385511052646740527716476769522808975182142948078299923978955650710001935249291991580859588990400223696298885321965920788574310715814481404486407864317849937396153870758733447409634902857003807849865884400087087380023493065810769291126977288584228333276143368961891698296378753194235131926346147365439975891597211075792580913006347872662993456409602484295730505443581705978383501090193995089325444768400767867773483007864468083513235423543204123854481552321067069728654058833619968586282012019760163058634062736002984162798203343146031515566576259788379993562320592556345576087013292856855447288299187863560963790847580530877436392734466125292078769050896911816783468533306778036090481627087161618202527378108655576435840671702255063450585140681753554959765682141702570129333386938369875713690879940058529694776240877705134898666754580907768309145890684284124912981241345021013256722779493065517569859056299179378297806454633510666212308854649201435840990929305020975518437358762151002117985122237431784539065122622403854303106849432833932530463505848601986046527353312959124717266398903890779505050276658116069846862541887996384040126378108246362932935129152887347476959299334946701572361125056913394222888467394513461619988437686523015297928706935228273659960336528366209060077851479425114799104112720307317355485145680115126884761397500073958791570764872704638719984795450063250031214462589307049172840908925189577605252792381661640439814880010093329605988868243265782119502330306880872873593905269962124211622383725465479455653792857283750169847712323220734674765726653611363208864357844008412205999505677159285505842894587931028960962973950704055888665400524698437688056543954732856912724708176494555659048644790463407131316906181972276883195603672549963781653878550702060970573007990031031671237008994494269564221745771484023469075431241373314508292043601525843385202387596805908486446680382273349681230251891766497264988444772943620159719227640762068291388710069981075867319122463294760445640590271746552154471245670658105319215951376189159703439067138440982894813633857856302476543919424430241328033895923670747970112168447836096149480955449455367170512292069915288645575292992799320541144665295795324707413691727312959712239471427984199653581018810089188457701161403076647437911609357315909551856336576525612752452801161484436234949040714075412067745451660916705462644495746817268244018790142001891661417589008525553600610772868455674624406276276982598430931343857071848523275109086115666546959914808751695561229441294892901000277014449586472521994280550752529614442143107916590159295166918623693585282822521664411421177660597233557200983959403103373632594831775788200654745933501082528098425629201641688249596865172082411466828338662076218622966741937627488778265176149361817768915026641421620904213619604220417661327447673019319298456431284265815243234314398643155025445582040773446915030661193661010342116355539005381891778985216166895479141038690622835701561000207091538775981328958755684904116546186144801825363876667921092447612923714125580379814412915556266630361842284069301590256443070659600487498709674002259851531164940812427863201239757997238408119093272319015233078771258460376313813360892410959478826406374280966528141088835875602948132459112195116290867581050168113481705283551395072728247447083175262285681897841033285588611228802781514634625445784421482794582405414850521623491308125152627634056157177532560156931784294031784221452506401724637512695871782257658923992852930031949084669984086624564478358971290244855629175073133664142527887553442665040951980642527015256844786810750565875695066863252877309159506949245644805929781396800486375017577332820573292575664737739650574887027753588582740115452163285600542531660255083621647592253217879132321844054567503761685969800474116897755475771454221363775826207332670212734330811591083125077864537077884494362379922062976705116257762845897182695777161096800125900067391135307334445861539649699582657590086525369853583766120144589127053912089038255110633720866739939967796178266925272547995770753538020636160600105862037082597415165897714503318276505826465696187475892323029160650687884368015281524049692677806642823587134553389827611292561331107919336772775248481939266114221568516098871550614418062921056114530288098039174492598396198984110326719844920159408997822324319920559654089732504928625055835856626214507750093814674347697524679966660755704537734779180748190638813268665465838609484019951469670484757372657693175259159362576058737941821594143061886219564363818704273341460226921337531904584142039367243340847149786182585506032840906715071383924045395824128893050584248253263065017036820192570797664385278581649261816400188467782883984210316308022879017856998964625693959118484563420789729729828980721042806702154241319762837989585509631467831847897098645301103646142403060125417565752919611051535315367273944668491430336335014301420603098017871278429169653996220146959479631790189299017505454816096078121337124695669600270862750933897455452537707488254148562305255982931040384320583892539769564829027271548481276314501135634566402265180199494547859289626741135899344312666761883009137990306202908132973974312858065248632803656012406740145422524070232464363475094364614603971452461927913171012592053651793908860318953343628316593561668793643865065990458710433545368661724424758348559615598714667768949310088144961845122353468827303355213493622539375687117861339582919897201813765249033485123854630162268375852346807355521570853470943577411197443188706223285458071303615956035781797711811649793374783659665377257326068002593114400514959020662232904275067642788930474045087429338280602991022551397322720200383256509700482749355522064056928026627431694847399060302168668372311310878246780589842972852194528006136983464444042525616576124728621656945417304066956413211982366660563594853996025159202843088157869246926998768485558086201892654631535892690354181534424512058838149848393316100580272294523518634375406988395170850574579542316974708227277792962508384035162964603124174355616664752418748179420286381277244709550489333147729120125162822629258956898663076712343810958876488919102336626807769715627016500931541021708829427918007799656178579415979474060481183675165101362602671402270094981835954664816339615915343855903264417068943536461150654830774077470763931947365472839876120841184093784646325971986579437636819820490667312542486136833817944497770047318795389668540858023028549214067365132075032701636796446545294013676068490242779514224181513007431742843920848531166316518569084994291268615328340288592185581683416228429102278987562891952878985456048739813324391975043449362642219623601653949785502119179701853857866312591507402186951621603267230765930010421766960285763074934910283099132274345149543191926200563448599902677607234957863460464914029651639526963807984936032967452537878675905623281660647645564779823853222084856068993259261069199061756632014640570035114396228973426093700156792585254800602713760809640363988307513020129210447450436897761418075121808175871666162615507929207830188621302240550908075019644790301309597986705249796607261518555955885948352747232162398147125982263426134219653412110089278186374957430081750735091212262789474768695394829542245522355894476933610827766608412846053778474876730995673950627179768472959491891485575653175529767077820211575723657005663816987212724318841095290887173143516138848199659106421842861923107694299940354740997462465531095688535603616956086373302636956204894864646028563891387962242620110236161599191036936886886129722430707021036145970262684998733828084190207853542665329356136401109148269467397997488599560338093599298661965156574346863868198054556332147110763358265726215459285392410735770333532694104319497228994840044427419453259346977737224552781915920455284889310098728025384103721637317728580811481613063100122733664955585022904622004558649890420179666656070847288106994916893985323473690323806514138921776442409193715560069055781336966840034002462655669535502874126616012809010410459527611614886527410420280604033014481919839950430192813954725233393357462996173619476239185760623800626887581425240182617483305071237009418000105968587861808512519401294130589687758557672347971124894556505444625483122110258374707965063186581676047022951973204081276242671744497618586468411190220180425110895623880563730326836950650939246712269321277540341648707986141710705861779639732978242906294929181280400092189406142360065529263127909696671605045827712955885567168628856719443493554218249163964926083809127135778257731878770554884513402186062731380999888066848969966770038955866497056220331191328473285708560834638963066632291000162431862498903387998433786607447913109632726074124682362064928706561666814494221156646480424776793715271067048231843738552470116247886548186604274913915141511475070800569444088965415129702811137411200479495661043504694743848939793382855736471297761282373763119877598071782445458064836842814337526928211220356971535312598670326863545961470357831382880068565845375810225473923999813024331256642603239997570749928087024058159921919757538629664750755182787860858909918512808021116011564401230706306082217583570867124955234896624550825260453109204440425426191790180382324639752578133314774585358988146358841595049198158310452570381283020730304480825529049222045468740228432962641949804835524815342953422682867987852878358419603003681947638750088991027448180164510401612381929753593687313286397685714422247635880947035087564834721691574228519735936396216500996622038475750433391080708570248591505395768489622671733295164323862517817028899742239339570057216080715328803812511732733055800560029458734962295300815395044855051017868113561303350738129603001532588953651233048411457175499242190192413866040071460895887873476479329890779136824891830627332272774407011072226408288195512048033078605101409781673396395950791299274399775584272834841523932174389894066419791653918984448651981358853500816846832497367391403402101953479157403693188994260393747118835489077302875403949421952493410636766962513453461927410716252028210853923558911609429736174590066630646492100314430072287113083338995106613631494158337711061823606615038389701396569358888194341034816740367665553602459351885264821259488972541832591145109549105907106438014309228145327838000071594852009417299769372106035195601868404754699864570057206621344826924897869949443422577325313020001295469633170914656587089921687958229376169809099106730770419167385086561969160260445916890981070111022097640401993140857610000670144158101782417556505818243904707406040448954637184846721270767297314799759064680754110026387978578299422165605603104780115430357470620103875430605939712139044124526673052225321092627386855790908865432397143388909626239670339508894309892187129737875073048258644067868501643569436381810137556917931172890643321432304568222636674516102728005580433260317079745567206603862280486918034438858236740076723570898221361431496580428485133210434432722532873947105071397125458045913547681596102803435386866918737613455101602758212919958676698608047223059283382012919690107602467945923354728648852180635189638369206662891067862280160070373103862676555564844741556744904751485573308521411238252225811941394678445260704135288770079650907214173752337367481398189060653544386045743713405745379625851627517326396250867640464678154199285618941955515642362738004809692071442594139772903339403813022564652684270418264618866276888378379508359987598105547727015015155445610978561424223537457619673013661855920191658863442041846498034533856415521038979198950498018042010328663129024189947315560920483420821391581639062276890555873663353834255372278893201518467395372155238348739678548061201482791219803653599019210790548199824567851715263362498877088394386639719925536564246810107126065580696440959723569233701404610310246973594626039838543533177195606704784197520477824281890379254784374109938931828002268916286044999818193656173916800912710369733789414172778737061811693964812730939462613206578564500118486805865959153346864201369005989836576353569903944084820623778582989169321817279142488460538381458432728863370127583305239710747613947307822133190219179183570819089130142420058645585784688422209129728383145222767932710448557865758683719622551158732180920884171400195070140120116382683897155701022047067025370954473489754611029737152699757521300442662138275617395013374391970535084235413565028191558971309279297251240970024332774390116153546225935892704372030538814231878190350313994258923524537047840947821321457434033298906326095777756643185361470175710318871959261382095462568600352052087036781227177346642288640951923069701317290983673432227861250138507976180054533962585124092737059240634305236678611808054179143546886024985266407333863116503813059764080294353051323870107622012451640539601318457522341558306908197895745203011448010870033215018887414145723080567142977346260990079935973330710075470750170894229496940145965707896558464004779629263040742549261451014832523227872649846740172191893992007987957474567217978635652546341423051034370376560582165555708264686161594748986432618922108239209971591920388330413391720688726083197265643218342150149278179974441323914998597375687332087370290956311292700335852103839297184658029122207509656374713276723365398630961268488812246232346239601752666725100079037167894945929855439663747430736715995577077005819999208593790891555708476204037431563876542888494522675994887542356903338584076723999476356018718920306128818740054723215137530133244788863963922060842278931787949233999292501747881977519556796049419951311646324234628767215671760322629829404391342362841687125084100541310350156117253126562808455252208778375628977720566811843132059084108678693272103868702937520960374371040377417346818773629491863957203791358320935505151862893394296890093732179269309795385024090810435765003268889858496220780602079852419969682651605645473331522029120153153805843921813104182305916538772355175657148444042575745585096527002942633112273333634885535559855106762133304998217064877745490030139638683663606491598894062201895739111203187877425300464851045578027194642288838101963397407010241668523721844305329323815014252393054001628199690379396746258953232595633549739285957832689289809747769625327431224397800269758538291201256630290288700968570056218450501144189287594307051146527781495124515533053919752590161556877553809134189528233404830393459426504547092934030840329878525830168866154302364908027038817714061306033067212650575567181101558397217877941870340038440462120462153841001423198705360162179087200492477197027855106000991446738034170385452537754482264282159110181502590391915834252737182445303531952277437628165552281846885765111226510128129690249319468984082182517274283254945793247869427352314631616061821575671413342907195300261144391272359746726134852838984864499810408762349414803296599201634681127891946189771860402409955268106340798683769891877698264870441302209964376470710758439003666348210091137744649468676135022944104966486822504923142020064358858693873809757201711428781427100051848527809667683164252971394170831343210342377026587702873325628063074948931362802990839388551509667149094004920240475586196760434535361879416976575188949240516035134882827567971811227343353220759014891853749334589860893095055430262715992266968263000667953616373653682956774843475286695274889469126472601324219663818715483145016147937538564459757456815268466055675353793241536155792583156547588686276908265616547763688360350550660407240748622202806438091165738306203234890386909645321893023010367549671575768206475945166750757912703428795422602860085072296806383302293589961414475069814029231393019078329629234600931101084802411550089238684237539198318211752825668542716862505233918266455464905244232565333857977345271333053573566618677646288267069749345398581235673476465477607852869011780192428452347553144853778732566631439713952574701929030931076369065497520745350105226717053371749144828138771051787397160733326030499653351137705298821337007340784415617688210863307316972722618647629115602876063651955225264509957370360816724782247650244129032303671680977701026570924438021857753596884832023036021533257142698283921243435319897809835236334084387522531987030792213773195498368023134335111529432839190778923664005194500321113830006623685566354998020074198036365304057589357927874081196214529511734343744822670554149638451295125390888479923710293774690948288347939919964860848529540054409909822186152615798389711480877766085486633109463881892343233002513550730172130440763525919578231498894375613741770350502010455075512270069278998875670238035064564005440955201637419976944345363743880716053791811688719043008640461044490160353229349066505165643246519702186211554477011000383721753594577831739320794347542121293906951937579036301397842198130555717699070019450659343136165411738730710465595263282779853952409040598324992747324275745038241861475148369266183356707066534688048553219316613745279796529082082857639511951948527823957595281561779517046459143503764202180986974916583018656186159379365852522622363558362958327654469675163440476910555564941047160589036659284591308765858958795782176464923141510464925918603250732849474169220545316523997215011455174890724156742627238854919007177532599446033560479408410075141747481045943990621998596732918883770545105343343718202584795610946767585377235489577651196173650880308940373444355269971320016276511925192233869750597170583653164115943164878442091556688823456694617337539806841082762634977225901090857948411767800283359391523574938607014672276222174581727988725849039778909246354941244989281337024447216246633016211621522596725629409919781941810237192178410167683163874877792900705580124309761157285274384900116338400148456070659963844303307623636557697798591793003259037851355044786881252374072910046132544454880869878544556205478378185108655996493163822768729111469594930992588231249686944797845073012200526854099371308550610262057540640481928638165380378301721042508474239202241085613011659805971990225347603180794461411245463350445475006176308871996809721420651295052054019142269731670262365692035723287327710806464699048155116148979916005482168771070421720353675302863717092749045617557904031616791118360528916277321806908833153615854710671774992673710800374585075520780190061805219771674296710750663783919054486951019945900022221312970474298692610674354015574598097624828656536631583026146836859645866349701579870362191600976162326454124070340611074970298564689977351083522656250787591628177775703896159603777369365582798082105052507863726997641496174602117093196178383236183202981972093358695115185030052240200372916587037130345447228778728591607316026794413965641998422254421839668199660350099283699661118403771197281313438190519419355990500068418289380049829201993434879912539179362526923728731117017029935180555803261516664592832367247296386878893494273050002486784911049324170496382654070253885168004061840867352979039273484861724434242809718242694368767388129453123792314225592552714258886668862478187411760838723651078912739984834236372098708091002570454138327202776209925907721686082939505816961159660489861667792683551309598274817314403840329636788001548349886768057873587317556361197072690979360539651981015758737997180866614409371145201525285099597531249648568263419488474882007710300818717694618464534655599625236287925546020375219080728553695404538912861851792475464968886786896685675833720126439130771650800768029731176705048873418450850378810797794654816113072717049529097391244552739707481636039029987784497363275766711486759723136207067784035546995920055398306050681956434264802389486476373763438882705605238515085559101751380914313145048330306990315488678660306970198803123849249087825879849206403158069411353535267601063155732529721798808368412780648173857571530157095882100690281808450909524836099005604026189981541225551529128196543902956665821062992095280103215116140259055503671487895054417178419683891806581281377195072587688953859619894565498739247604528793600901370499108250974467434443512585798376710724470023558788536460828293446471388473834985735944623025606938107234174069982229475819294197606533092393834750500556690735562696957146469563411692927158679902332147031939314497800079407593767862236042610514847535136491082830644592758324926679717486978389937120329589828150826961635441998755309429674023951148317281851125350340726991947467785568655253301756742774026598270725978045420010699759331412435664731073679259050242872097155911617195094398748245718500299375855307991428936942785405369332581625249105966804309323322961605319455878877704045701744183782485134755559099751872608167114297615417028255289540002529202857320363358151134233258707474215864469786130720671214882587601161944307969727765328126243413198137231423473188435026744467854237919278092144661838369870156719229397738516836624051940066677464230425748033142284777967148054056830025210700829011755895302445798068292029088365795858304591806681021277298339905908098891854502056288980667082918785584348686066357165763548193248043404780428631874945784236336215770889327535712312196474968244084689510553336256500326538579828093785788241084745995865082145324997037344613045118741687193369662745694018906154778780702979385306588821610503587690890569844194598144933712854841143051721694947469155702009578033012857385937261387228040329850031108866376973122831960689891163012843409088909288542602545529831798193701489983011158200710835107252218145838401691372834204839280325800625557028691876430814489938113860566147434766797962247915471852919341053923302213771368369100641881853107831121865741912249958049473749299585749497596467857763863148915402425657539410812994850785685447611742227252621353867762133159224417317961416527173220118041671319026504197806975025466480805586283522742164405034890780528312224943025968266401509293782963112990444568344625288622839764160649700841687852494198008178563875595533119078619272254676620947079093391028994377268369585386168840533140454221721684904486799909117087651896809625173790548822552584241407575854660608260520158161182657912422440028776998709404751643929018877270927905100633596465514494620812425508113669293567419192968341699431714225980950166990403581440785544336362066592608218643342295500693213472044142534493106785852867464954183530526479214673296970731856352335495063124700575764649392786107485204605756094461815398190446584082446100873580637949111219931470601683699249483100785494113771158454676217083341320768846612583277082739165248315917478499982564687688629007194800860014751298852465224843583074180228997907707593000046969277771730761130868280112919326400637271235340582188093630423216936953143867112902066105214471961997110594175184673878513974021204712377932801435790385314795336347897818277256092959856151430987539333499928246868016370759023974268192136986142965026022326408517609310256765003989878467895822084530465719975586271395316660270977046334451215435077500329739865319898990915969838531433828592640174151144430097911148051996362625942704974833349978118051178518357073436503595425503874982865313046423078314437728963948422629387637878676803268805801810128177475773411769912452366236705180359247736374695615714969413005701840952667024752463419370351514663314610024209284703324418775929765260583811722971113213278549291232784479088580884197858810124750936085575075488157188984170533001149000248556460551448554074661473319459275893952528639737398537686728953930558568250160258326851468151351385070639203656310851501998132843504785029995624037958528238669864417293364469603222134559549824681705706120485058434721196786937080280818500488933317145508489266275371689481335190251087004433621260046613136637670442468510125326327455793356152830914810668370034898269954025724145532314477487210823814020559344079481077928225631416173321280657982621987732361836499812796781709918015533899105624969587119215896175843486030758902064680487022771223278175065768802689849999815795417184166607161250222145264354766462578614806583603898558553603073075275985450335244312660833670463087175859797618375246781053448964286563496340123804982789725001172364155850635183297863254763986195410921771620665829275956580302818432578623473652062310268413064569842393575761540164344299475288460230273608670754790336167224965026116242978376376469638273376468564863720583166747331228897786896355349201200509959978856557599990076782789325750871777090012407391309384103709697658043501894168015604247634124810639879556132893823339306200764598203263088298598948246849916093168598219054817902342230627165323019818652517168566340097563151166159432518317108927779997382021950744017991263855885501799864211416609052022569604878751837673430754848208623025755481961111862069640320868974840367461900788845327427322764054726591775140883437534212807760575969159320443745465516632456483783584618322015566524457648177408085926044214294006349572269227864932927670528911233936161548790351050062087113261345493430542357769825494709385331604565113256535852186578839074717689900507355627331394436945370974016141155640842590924552428966762745309617901769280242778851202865346793814179392186857046368555818962373774608341169069508343801333985757426288534598302489743987537696924099181516114897097511462550212249049297236242588006046500285949022483471782876767840675742854001689578730926756310576558852510264067507572620983117935590142943588513069328678931478025585929136020594866059095297731039564273979768156158093962003597400012303707641766786931671108598779104102520557411333253491612522001829658908665920268044627540066202644109045927315001494640579494945557918633707379471657282899544132643755963655768454450467855553764433483649933423449842894963101554163395265078064985723256440819212509679508646578389932012766421195814105289501657096915908994487762992425844469330379012450909584873441820325581551190134240968097427983568069684809906955534865723716633654936547779009371505082202872513038200649311284158841012683754620305079016060865869824082907697502580129650055181980342006418114862845901946634035096289138752104945871006332869099560671671904941707445346270045360235054640677544490138658971142996271797778843779631595310526708361013962615273604176410493494839691192235390497612783411052615855260200739149932566201190682930040237727353546670252352866432092641083207675795881951981755784052586285543479298773996548126453039897984104276678517973815560296403622082079418819981367186877632070997857144496053027021518488063140217343721974503470358987911882276347092974241635736472010349629477165851419092581492574888014109806396061611724661337762891767141580632661577826166370816329722197381018779148648491154253840091800841039932756609996274279938462414511712578607592173898197118396150567050998546006354200359469523892081375111737422023111277357838226306428422546186393486583762350965644841487341405744856711887657399501669080772505133852212958633119447767074091364969534556222618186101134663900602945974750736943359970472559208857207226358004185799892272282278119431778004225973707039802647252174183810170673040889668799221841437639550222415738458676400446094435824989331656741859551807222728779331707209510964549696428761731933415019955393860923514095540171464766519239396465118453792849632632088539407132162197456863157109377063035816442371029194467440391738195623160769347881516076628848547626064750202542315136892227666729244182407503957210634624876678516141835079292132899784657379558734817837112730892115580460151726110027927272644051574791590253829407418957727961234819600329937099166195541265067235546921776757630757351579522234609525578054621486074943464986692172512019015138436749265962447060213408859936654428774025809920533295463804250367043030160644846215720883794511027930797079190524443577939251063650497040847180871096154666786359739613380055222554546938260833297179506139442525397113327008573648532779755473587815311356342206606594587049065266975851585999540703845987532660093401194167644820562902076864415007514759506002325113397722842035752454153058192871205700371920968236284389091878937473513285859034223744348787694128670351870304815891386027887091746653722510103605693764544428592461199119974926154300417391510882506677197579485557684719234660372160499165767180211159571282024470611551837543729429964304276585536800101463986004729614907575599490329951919284168439228945436610818889432443376489932672600625907617013155022486994770428007797430233634963812460819826376407635728042544733522261676529802408147308199311201688344200858295476761700526953727695424816453601165944243346168311009107675068187583890163026721023224810011054126026839926301838925617668112979340335957247807445015526235949218325732403536737100502100410732258297416606194400154024279474703294610136343425777130660090094355827210126974655518080528802761951601307986423873504057801925772905548967422550633718501815884270090725432148452865863227980440415389263986357790216869751523393967871416650735111513367937737100838801337748461075670277771421011284081562740940789942742890707745359032419318919660729265862465566917763669666740087985717278981959830617414357063404927978529718239240568214479742127837775799982242576972950485628888265062686232542639931570888829712095456343278990743830306573891812831872995317192666567598863318651028916121128578354060863431540645732720049663785719923429252360559446628728761230913824247348332554738556936275293577337911185183145668942508390532753660140566329281707669165532570114512322508764089042358649768809046620996266146688581151743942783865731375031918638298056198086559675901247696515689352179687672889981317188485739302772148970184686792536078736499550999306315621938077920494819873137614944593368994327539601325027752852896278995603412972531094153876239885565436731082538907095441614731392656518880413665027443367864467025748677243513183511990332291998094192037129041475157098699381913020940920384339125157068389451489888305851936196418127336246300092483164658397968339772063401706884231640330213798449846817983752668900378811141733462919490414593616209073503880654379440394334547438488225651809390549044234672821915834690166805542158217092969274071610289116283750978623138257298932443622212172908354754024885660123612007168812130177329515556268108808265019147383891950275124479660089734510147596400262995857598924830031962466710243743121808626861901710018256862051646420227514347482545916370913118557383201753594745261068834857113720900758483393407637657452159735976705329820923324420475003281569168247490302105095092243439969437542265537610322674978143163258628816345216443813872912416996494678732111422238637800340332634464685332611551838431156797554469959506590647390169490821764384262944262168818556621813271141538761797734043930912767987335146971856273620346897446071001636211431566109003342785748355123650780824118367279377916654807842945650824723296436302005917406600430114991039703953241163842915175910696495430666725025189497027588561185243531191655077043042834302360044123751155148640317899013537388999107243800516436546170971279617571954076264336301921601798590253303045103250958503303038899265744733545525230513988100943202622412358141523404141889695785098229218016044603486984376960060115129623463329924121012131226140261841105020252414521347612464899823729068032372832735350050700679485529686021289310439505613715953322680244191633443808370367136258302276066533821074007825993492315642220299665007786816067651572641690599126789493176606472376778089612900556037555224823688011652381874062367133332515934683725371936781390587416529109866765683337105820289604453918322801002744761406798711942415220776648246431102008352604409215504647208521605862190014178405292940543011139005078208258116741676652889635880072369371538171188109821021121810410580491325142292962292906148977653208734946669853678224285894928539977716967840038418756835381656441768187644300407077310068131915186515524480672195152610270890009891592734931561308300225811356727904557858861408769997124988031219971918989855791625254422620250215921799717078435304810674113298892373818019165477371152326834779757400159234745434403867486748198805875267833079514060997331742480888218942591026696944749803049024903316464582181888933757005729523383122965474979219913886038416413524801604382477737869772242307065638708628681565630436198129447060840175425616883433368980880034684262342883335341760895720415825247554235667670649380590997675032138720493028938282626198165501281587682705104586088873491754101971171743175402067079925668920725045747660258518562812114176104099172505461848810426413692256852803611997608631731225098539493707185138296634922067612832366143923510423595036567639508727432021955591878506018265261364273508967544754678579198888885231954088837569870558135946692504111453579562731372053711568851950945948971862979877747651453893854734545804055244049006347198457296099576017927768484868374561069925515326236327185738092302200682524990205491581259739320030637217113426849782501309649052956752629555083270397255985225390221956139389512207682346786102224878938319945940822284765802415262116463114188802125206790258951015901494929371608149195036680559185177325172236528955629548118603906975267416835465144400916168818830761119064344118923344541933421403375695196478132732263458207831486938282901559308504159258489089388514392254983389713344182919317516673904276510632631287857093035182457374976121239923970870221399492181537713084094118800151908253506570450779975459703910377804300454834422611392964322447486362036315922014507736661310661786110364955793748847758577449913678510958493619386934011365127860042408641342076502428016535039469872852957628635937401987913189914904230792348487713874940202324755256970456295051309294899946488990292088400802332506285092738361497938080890862149956289249327167353016536581816136549061671685743080037950038470725798019768132513476161828443369452335297522497049880313627010750823645940751358744415301115439016959687641043723063156859064735524430054140425170449042847967571150066238571723005437161875770568826390745953519409535388673943025310864315882487950934768364163762010816687818425757883964394766257988248688354965532118147864068233755464225597234356476519665386694464379820381352622959633614680362606043989982702668908845958785357178186289579672171487230821881633374178784710628561678293238201627268098126193081732701477531827080412072384442033645825629400916651321425096588076387419240071357519570369925326169968405707624510205691240332857401772547535383100815600969615272190163527992155569795133299442986953849650444463884739454221307078119683671190585684550572315766963982503566280332508133461564392029399347141317905666950103720925729745252917680121315701143994289361745787935774373948296365188290488009145200685874228141109917572956647020633598052797340237159234346115963973771570271163997991135039019250623002639972314275438917780228534206515820208496653933823184142450836145509330529840259946616385174627481451629097895973491254617437286973222612906906786425334997803358076507552375644700148135482876300693517824212561860274342469559237710490423632185718724007209762402951465463964098290125768498603750341120728610872726714048433908421413380889936247124410253297662200883762981787515663755948854849556129644085251992072899573047921603719030059942909131064864677693001105174804441623170779347526450189337482245356648909698443884622608148988358703725538942373792345325735478576201268939961642665775556016172009686042836588896408835843702843931786568381754801103386073651745634226872014180539716208511431121787698956592473136383982650608291304592559889542014597754091537455951322583811748447998791337081802146703204180774804274596474154219561904051343687632751441379404595188557199672872691414189933276159605276855126047769860313248558403634786647049885773731468383312700000364549114227391793243416606475085106775640853619358736184705459481032820296671355310633230069024306928050273077966306713643745663245162535196960845354743939567574882132922435744002001443193917581581074090333073950772053660164539182235329561884349095489980780108880027593430485827889809008927674053202631341144409595678125465116465423464790595451984342582177160093940576556327328577924828238792028281133464125082456396423686604988651320144622446081264743962805495606425283870055117444863195038461084088645990969747910924175319486813190008380556097194846254747413435393761387266084794675958662897033472054056704209965743260206390038635133862095143805206599562118504201502028218031747247315156280315020009465660251212681573696428889691195093941539653087898468081398167052337903350432100267637562144605963029086213257051462868345308280232544014897769544394798800043553188121799173020219428945615995667655544137817931498378590345391253735305405212850448740034159328896855606167969427292097641881320725103093511934654107458895086079911864611758124782170242037246841010419786041997518810643546946474561008061029212251506620451525396827916041544741223803871943974420659861725261705078959889612249847068004251882458586308641869771507784051572088766510746856211030652392056342635627404243040185857223830197728130915194800214781733982860089308699904244320343019196175997049822531488655475461985585783109546647884658550284194189950454013007860549862540162599727124202927770069803874649077258032709403567276903772567296762367261952238973530986083539199246433210770976096831797733851535613217542887356070166091904693005421034053894908920288916039796739752324326928824642761841582260806998455726147963779258396452754693564378934161286800936620163580041256387844081448872470749022465733179837573764067381328953446338674906821263123668414923393407552122553887798605643655022019174572090065875150026990595369853146916338543919830333141599046799896438472042771345387106338807131078191378564936203285234837915980058795195493815508448384207203365919437152759114345926074170333405660604527085083500095811074130707020828363105061189556449066062925030672985186190818499533773339100109461747975087090949281958355581723542093802072372228877153437954896334176553010797715308996143702276905719927732001764340207055800126412794840314949871480200389769080148417178946180616899185182171605832500616056759893648090103210511831922750674172954355351935943596831336186276923770975270789024217072488861367565105506343720127401233960963149250270305293973723280238202133114250471534959809895202899891533145668866520638902769224731813283288605388577145210285620197020698068718003655495047232611617514933108915496770623856327685526693175730289765334053145089402820892091390386697121451058092646865905732554968532487310259876358961107672090573455826381662100477589013044787272388240085147378903168315287606424132176839339259880957356764921713866897572814393310422251832998240633565260423093336233991544328956534161490400749992426986044235126248300875768161283944580714812845604831139975292452080946396506262795195408484766860606344671582390494888958533993792129971132324345636487966621522814391572976537709122946798902665211689625113048265821622060426196674692078759171306118801128267190837161770944707920986290519979245964970355191394658588644671367645759990955234392087700917567357003069795106832337548918174750093824598151274015708056175410263958663295194270802187244771890819185991505191169248293088944865329503429718719284120376859989427795121017678239312208024269096493749523752841021327087666377028442130994861000786646145434064105639575996107723697362074110991911098163772691941647611148016565633059717457244855438308807955203960732151431897080337404888277285854079290927159617512812531239727764971228641730339903796760821042089208969726151542764247103601134191806689661333199166148336904963332601523331584318494126229728982138547023818475648761045240133206412644764099409611494014644604753484522480198319839546328941296439909244814744152696935777574834808875957540051686040365507774668686430244921319689698863076264502460571434478765435090181658752432827676704270948331349343050522343030701095163499093490778443591113950916808400121261631946336604229264447891323544945726240736900265571866488115983174043385626478476559251097956586639962441836254279686047430799799050477244214624848412544589220854272902205416660317481161130131521562949751276175477003698793520870423327549484196034572019241366724458986136411100313647694971516981236658872497928302080317160931091376379791981956717787233722964204804882213757618567016347860842095088658930186982397149713251975482656925148990165063494453948343936526238924703313731310486571807346795923410239396176323931051445476356250806872279621776062792240188676795623231786562221233610704616127416042523560852159976973604006905884858158057715408379614386981326526841661545213376557811002668014724396806829082842906613504189075863602194097137399749873899697314846431963200982765565575397495655003079440571581164613218566229329944676976174438613197181260735001876436054698261517606839564157291492472430012589195950757038088187182604509572423157954715494075895207907648291519373976138259266221639486435163774484169935142934975099139404195631104235866265261096753880440714775785569325874418982000183828358399022396510118394938137698618880745244447841439487426953441155813974696931112598202503010202482641490116424398717444224128127591959803300535296602804286347205898394059470546548804665645259348875991196149943612156952620610049671594243892804455355275474331181371462712250193996981951961786008962567950041000978016249044915472622052107726303958600464237965233494602243390111014488820674606940323287260086373544421442986831911705908669732215525982675544983566648584903812506632406396303791158851547846193443599275496926426611691166292580888899742571141046987045577739887151771406758272104018117490999228665360639748664107244205342861423327434002882923335590994577819014983134669034740124543231034618075263160167434344697039802488276483111132941137429082334450209434957631830242580400961020581475176704540335810711119556461816969553856197932122794235393936250986224330266794947029482413228258956305902987055041013746646075093761874179145332559926009661607430317194215087311665016431197414370344123832432487998409490165770435803702041964995550463191597595288466000036642109528190088656346308393204378362176972253120636832846209724599752691159768244448119745714187169103940655534302736475137973130326457973108306387400739365003907864262861851680917748285688492386690352399991956186040489208480214160353559099217702206849165439106680174495812214738202714782706059798675238648453280426975405019240493625762056431219830349543009591853298323226885561511982088141856406607213717872617899330186316893691136626642790573792790520150695973839307887139481685438434428558374223498390339915959703003702773203952903288994862671770886630321468491221543481031672213389024135339168900726386347535453713866040026897779917158972114037314443736711235651945038767531105915508339868735314785141954757586071736629421565440987914085476163131899780143572754973109944119324087236236459409601619482543571612810670247574195457755716285017782663625808486942762305129633772241944688163484399634966430335718895771307331730279369719393049302578215542863960604019582504371885187954635681987897188036924869660979643331139923926125884280546672722465396547193421217806572597172684956789860453521581729345743816966499745240062686952836225646673573054567354012585049102722892180378284709258393157644945070607030014574646308356293019399719329521163618190245849910070820551742794864674949620415818610589568416718655232614860240808834222584472081749256568837212278815729427615021043395601628386509425598280610849167850706270990677121316539101973579837788464645530020160776896048970744002322883322703144440246046236593012066873750471342959929075962572555865966106860853607475250092111335862905648448221550916334912529035881147812961586969531832787016678276550652526635800545202230044258396762398064283461214214683718512555641125301660174551793125359764642206485575108183115282629138978779201999300179487154709356342221258498582228083937549547273299219266205451612838536595918178267024782872917830678804172901902368815795958388696177653837708560837444485224523438531750903468112815471138492412058462331244206973992892917520014602257848438228460183096753010302182015009121825114359446737506908727008875448670527617547354838570140127932567921377800990083381104122212551989928044620263010821747519315217129672475652429126333948118703991595290010891282753215765228565325759988800867651400063396406933639741020317389650267936777854580477385672608722185765744758809698254859452292232552952231351347552868691593433005567702766642676956617230443925804842377721890339002269105953112911545506943728820337990852991424598148161832282572046524027990526923912136832121556777910673573548197685904435201035615710954807792793929920155400501981140473256842561219876869304886940440726800118460367948427252691086813756286064215000712729872075858357157015026994000101056729361341811145113233006950646665266014281150773657540396372890733855520753968376368110476254870411390912417272052069499668542576998910745398709848497527286275513815895475984312941103327766251909821717833901073097910645743523948036335903296863377434815070141431751128345330808221750228758970391209712002392463623342975903316729397190977737725766016360848566850255066274476386332814816286069738257534195402240660274276460989176631130172871200905772173835322813472408330945543376800693075138301207804866139209069277403332819003871679420331291590723328617523698879408385800580848067006583883785684525393192984519283520646419627253264490641683445848409165659823404292620704714696403401007839420804879016073510875796199907018532552808389547738561766846870964574018691951419587191709947462022227479777895430150758882934019834939686720981179451827584461287144405355915250145052611239987079311445418458046184347192011234423754446776523155142374418503698553793394022589361115558430443175701949190944478234030927940271276956794630299304664759104152416134553517307713359784171344704988435414080742998846681218874610666184259890417546235332042734205149159131745824218616352843445360240951843774617376684461317166578514344223353977481834048966229060525953529034817481812160687706528920097972657671064428719010162646140499003532081211662196124582019418236788048906955842554389308311608510144279452350756001857267288112026047492511421221467236381724282700418283965388748288822755190256209554336953097199957890104203287798398070484771216203420735525955811042072162614798962651538468405994299066109922932878222058928671204898195603889393241985258174161223916882300759947656904943355034624342213213052792357608418050942329768845991844164882207874735150353257548822569427980932538750131515839565516314547853830241261958251079363900611607347702373186626629264505596673519571367790319743422476530201874196783516506417808604474514016563018158120455356929820756280986548141918898092886358349803828613229980989417095460902551134911088249719513266062161043070145800020580379368381613743685843953507074329325544585316425324113731542189015152709793065462539565434957254782203514551931314241818262900656119075237575439259797064455256297458476807923460822947907294708841961979497130247929366547654246907313682359888825073036360362368614633243687294502282548175789144783861486531456380430391370412784359380536711565022382270456518629456590948676197185044396095399568714459030795197476333165964849428603900014262313182754982742756921495605438245627866257003818396002225871707244776422440966558335172882679716486501387090328970602382428880174893193834329084564423871046986129737408240103110719778934949753534184757658301148508887310951209763890646147969903750444338439697788215013800575597221477231086643788742241087447613993722434362279846972892154702677587713567607265507042435671692360066365038113376403125400371826713574220757577160692667409299159281588557198177517911087839294910610050646886683209337189326997884417618048413257360650446643405165827393657308054156020004993910387070422847767167036202553383050109027457042201484791370592396146665919153991327006927058621347740539832065019705698228953615696515394023884034034910841194530087643630316941586313003492818842795627879751802248909305521360238525989967791656232008185514193551143121596862845026070030207443773484303126507524293542227274283261871140930102957037269638777332252224599438260600246159239954358180259859119548894556955364497933360318210973345212618991221237148901660694480027593354598328530071734000554107898062750454841575875067799848319423542309305620596015569227021793857311347073654864641244890722299150112933325240014634190614105681431535965711328256125902441027111478895294371159191163543985892268009368049926625072009762593158646889407653658935036082494261641321502849405122473774510549849112265167320416156533690611353232212059726916181225952419655317545199444593507766783893759566461407356865437947846913165834583393746940802867165316692457154231752864459026193815753978078612805608956344395099018390724866542950696763771415945941683184267515891469757117354715038639167219705624415426808253840564521081991489295802020789163709904688020657208528007086937814210733137247275347125739724073138748494392761105351390559908206204347705577490836424480714250794663819553928075381355669749965300488089648359833002772816173976185862356225212077184863964389964988039314661861416205810667902237174527388049278310398367419056870198535280228888496816177948751715322037294369448099289001735402777351719563342204483902174300703468909340811394688139487665651801100129216131466334835926527196755624085649088102930946289909455233186027906740315710128231612075782395811445258438435168991551449381962152623583834055189036410620548258507349695327344067850110596581050473610338589050169282142466441537394657496715277662012746029483498292584622740216498478496575489059368960046583528589010939371050172610001215896865493164394902655923742980226821357225044269576773307475424760856158564910222519136077083541889952969399441861146589026308655578185962383023918180019816818820636577204059741366586203246505056387355920229246495753457297825229342830107852477276897138649314605457647315181934841457492732636207654746385812752797132823436243264336025795269968150991139456113289748459437195106916266904448873412265447722550768613578284769174946326876574566279878415807834909503333768433809100745424781205308120012859774626837447698594960736165068331255999916701774937404319065188612862517284695534745398971965656230959248733160952940735303750051468808904650219059443411367960669574412858803086069625655369661546115428814041491601690775852407790213646506679988836020322707986988597286931107955181228042696764307911296397676401209842720435807817434255070467575557382190701878416858444253992036348963467948508814198086217506619212636592715856121434393697548846440673969189932069845972100578887229128839973319969359397953553998964547771439897888771212637160919843905022663352550076891488077951822601095955187605739706768845686664120391878306317876312312252049036726824721298152119557266396747951713457697329646813861685928471031769541017545489749048659500117415974308856902785920684312821805335055890732535764672535002238616373833844767836244238026885391741495397829942420607989882124522235242421335313655231618650801928586529211702121257795197351393147037897535777707191519808985708254347421037606989988748066709088651106829905081039349482448390919754105755906286277604800254855877835384229313536186187018617861860042675083721803045537239231723842709230007720474835365884319860406878341016923998101704912365102759319481939475564215710449102714309429080976361430332378261860320096496240648634247133644362538366741486482009981921371094525638861354390912677885059119637504171902767561086760096848600409161466998616246192039685454704793427319617943486072862542874653936728259379486123015204315679237522757973894243001709531098387525367015853997090688933399519886833942337350948178726260994971768027603513586726666029860602066171585705536290574147808599411748077089045817089458174591524543800155255108949559631249193850998087278141568571224772449142387934566945966544875774465019684383573643694507692784497164832619893419787315349654685058780370148118803531307082207836235338181547199822361387425308472171781676176378281376429345689059553964603963642993280372531765901427027651381298470654634407698124400999819585846067608706526086525064917727240699439087416231916277275910283183098468140290350146391381101174292036374730730348024769445138409648622994512503922841975975307000865770418156734655971516541588263692446027132667393963700387150221004198567847057959735343464847164255805670844858707135863861640347053507020221074293279310603536405774101029753594651692490388696245933105671371156969333917204593808474497759262733905373055218823081597588942690032448497303544670747639222169012623825583008359041507063581350412518433046432419593781010368152037637853041338606776272359500303773672428890291331409289096867619822756995025976572052477361055314691236557691615656317890205796592496972989472396857705991847258669198236407451494706882122560105189105030079971554821165700857835523972472641773490483722474763292529616026090130428789784814496362024124491516863498331375041303723648092421158094836242818549087746133282205340074875242824207537533744728567128834680364573045225938523218182304621805414242998061862154030551533961842187641739818789977320244637565127260017293494783380852314139734537900038625367807854934266359353545435480072787564646354117009999999120249274921976050426546689317561552395454776958423720447588858601065552078921251220754764866784018744912614605190651984450205627864721518709761904286780509404508089276880920323895155456078664252228079824984358761519216152102503907110225145644927740042911174800268984977049541958772769575812761914015652502322694406949588419746993865880869026823976899016952479052496435230172747144966632238251079141656686792869477192290688194537873144316094121710510396648797185591578924833736340861624238907460646673876051372567249419671169533720891310803876701437329852844018123835833803954701846447788946991542755065079012167497390978363592268936724457320660343010172334897110709599763372681330261935675288886008867092006335697670320659256286458776434766755006532597663629984445679267127676693311120223253429546595931394115623478048488529786722617333749617527068134156583533013263128712189167030185503734298653188413491642245334035912346139418213358941276559511585596899038633703895566622051094859765389887926468555633358169118447918774094834843942209641005727380354246318899747683995040747084329399182572521491667246373598229933201232683139894690797089263962003894744540917178485397299729949901235528165769699424912025646076498137196691739569521030369089128415331279579852281799232571036410975894954205828863615562693022998742280524521431749666885516511433220947570911903672817870365362574371834854464701097877923574395708852158874852059267773211344791062435957498780998786688344150638937967217047481537623025334788251906033485396840237734774674221236210778704541566231901852106538459076227705433017411584823812578147073982537786561736021983041671144356778515644994177143855772808588234449617160087992912119445782550955654474274205373767544249038476036988711068935838785550851523576233500463290779966191549863818445906169971795626521418840611100523509268054131673667405139799089143961531697519498069098292022613019128138677793870273006598041731377621577931241977448358287257597765308582250418317165492930762721981602511418752338452733975254542458400163723097611583994796596568966451306475071008483489405464066831963498138512427727243004966615069082805118272296981844186134843312447899416444215265452338759894779045211325292281367056951569663990856591338315877040549548987655526463380863667787549107544417441898063623905254659047928630010715294047102736304672676064736345553660717664309540706483894246660294944702266545292840102119783120017028556580923858123586457149673804880624333342092384293420626076412561369489583502246387279043621830077334583890468458136048843405208123835658678066697404930100508490691608937113235537003657902588089222169177407154574856506175522440836096523857827378582370275743761115784571727619054556546733888108783388745706578144311595583783315854711124324142298082276389334795311578872723089042141538695877319538196778895034151812199140409582421339655356880829602936186033934087765517689163538949006744079850116073756613438680081335376090042524368886890122087107731043111474168376163550429436586025802933068687459585701817268257912408722181201553712935040022360090632359726178129888088022706363224165177260262979005003459227112706521318995146093645667902887428405909060104347695057360115186927417629822100245049381668731951109892966967252540182761384741445417746759422329970514298003517623157734868368703671584005722080009468484476883705587647336346163021956599521490549051652063995699288075154536719577234736699856820235927801552139260019357254090286201242504465756624519839540061826951991809467431955105477641861723317217984886955954087912940853681577578086253153889108048835112892284015926664851858351462530393184836202895985341486678992676084251512744401714425531550977486928320567918444076643529492272359416931959649552537810499971564975727107824662022290922180321311799826718623548523826565310289494918092438724968391842766703016818347808051963460557249700057699848866848185863985940306496013847953664041122067558000345656776038670071274917243667252934943336886080930984668441923851419584389029511873016233390722157017589905840595640437482569864953977455508650386292794849202508484893504548108382152173672788249151070860761578669589908973008509810585850472867825321566320718330396122442996126751556495309401647179074337408632387476229556223464819767987984288296707850635429550204674445717691272997699492134777623359676218823370378989146185155655698105004573839696245443478985605006686015394226996317404667335663295328304317469742299037106290873412937409853172932629214992618062289283492658554693623673560134904604441154521343964132525320038641551374695021895997626170788089181221002778462701325949395567839818988557928987187010400720576213294636686921723835512885225850199492074169238981835407925696102373352694062839863139062525328086580668014005306567182817284581041679633343782599348268666490107159700957113231792768609047681830428060887923014474948342606748859028119036236296638008949831649525849055791788053319409913082674308974450815626797802555252827304442848691126249159322208660656386066106002306082377324119233093244412777875715726672717467673598190863338417662839582609055414368671432654645552560500419872885075181461396133359611182585721798784825347411797745972285363000732078391601354871862883886183082783129702694288915612365239238896271958936811536683984206650844899204999486651005454218512310142106746091560812646814677839594771630437566688600334904707907507885704362767164942580711185559564044219869377522168642934259058205785193951002188977381029934642747908170319862877045749820385501750332662983393115522672423013576024608777970790805983514124607580893524778072770145371486348691461518904008066376739957405922634322838302735275778323226500978475763278064887302780249832209518961575322366433948343971182621526077355286601059549418366854911644134388782892088752990078409937443684956555869596669844633989233859720569661402335161410745821787964502447880198426160556085290302187130426113254310924759207129545767613719131840710857011766874456949759220088400823815560083593800702953058133947591581171008554135672241677619396304094733655584364762625565004077225390456064000269609011951430567597707597066492575053214515674707533703747194142024638957377827476098779896526256516232221392449702819643111777410714387556735465802389360491342183904405159493992711610447958702178266699516170814740078749500330095976954672338309231808223311637354589012787797686276874675724853157408824124226915872714003017642746661906731647237105618586415015616488889494703791415969748136665022026710676169221148597791731484770337256565524323213223486138509325410386196709916558520622723396252707003069015462558969756685254143465578216361696461927919819512286627243981938495022648410182527384521220570712558310059552992671601739204911755172804325924908906900732177759505989738763160899822506615287431431094835672647623144592873654191157854129422550788579584457254163639972836421531940959997411823114226059396136753087528461264132010156796325700777083859192501501572553341786354160577735391592596383718667344729913786904385323745874779598990661461554466480216236162712460475158105929498428719455262082636373354629950368993525448957177196627510098862751646334205253716147123580964463558093580254529412359733313194321432087063036495026688537916415168736161939218551753153435134836435577093513860212601519796328518117273539144897487463949279389377622491830335892808983604327407329178783105565024066741313020218006837540543024441023897545901975809308162570065448080838161964833163047821943585481998235218223759751567767233942520856663452535350718316845544744069798891737279470193162514394423922515124601600633503114341131138022362261888946250119917380154881314571674677919427544202420042972012358755053925740054539049546975091756191460621897574293551719946718692007138179212749746537042183277622811610144799628785650692406753059246562745765117233093008234795874159992361209915576901092192091242559872437386366971434009985693763085101154227257025512537014626184577816179696698384515439979763298077616794784392892763138726136479780095323613353287428036607293508786208353893236759958155627589480331278652557766455885412180276399166457219957775670617148052771472260980121761226400400264004881956186277983883710052099075496737591600734559162668328493870703026731686243137236474867502071205121248607888014694681088556117315692555360587961892883922635478968273299475246168088943239638219494900783650959117271494418819486259604228553880882922526349185385880188219696829776121972580053280230438246390399121568155536570706580580558488277346250171822874626156336998412504569338894260996913923381744796560346018042352072049407795904187214966534294879694920142447954652655242245588658415690860089147368289913042279915046533717061734630108463555380804098301583773837268782809712415333788834209658484426072931743800859930063196102154978525231459856123417565533371466176806276363029572118061923533756380279632071088567180600233136344045188887721771497147946229241740400194478873942090131107120093031938139628698503597315445275071672532350368654368156118014730071123260936060310159515704613375690818795818267771022917564039887321553927568330298227567990687184188168223656398085299646200433066201430755666657089011562340310425615545751463836646660654684519792045398875124317505241917846388286747763047606286824259511756202229089361996586660289908031501502355025404118693938723913142514868695225748784277302045620079504713420621010637277146574394943228178203551360763406772485790566641160842013630472577184550423836296535765419206088847968136906413680344334244761205427300117744006451199404029484737341643246200603555297030620808279624745196291383841035564176333512401991378495478486930767276778243610433607592661161364724313857712311404307108350242089556956134007453763174152280059873960295523951082628187736982244770691968846844591831800658406897272202230412903662614781637763739718383171937979396435334910260508688328353039891013463796431042875302602930052114164780243316427657882230750286413380993461125434557698650612290716499745856050771018939051479760319108216104540519883881183776868421491994545134616845543564363439573284521818233774351927594317203399672882072999823887369553076969786698079654264058361305625271684064540635438341322109664531764232031305577587810894923020420914326844030458495243633699421691770345111985695463059757582667638194684372253655683759312763387054964475054649900122875303932908835205983232511253936476079931736720649737449856708632381736236851661198697127086770407786669950937584895155789235957552637733378010597918836396530614804779612224622026320057371319566205067076795862711955319349356482104749800413345430389939486511021069492286108655190698686292717817401101622931612007658790588023960598237885600525389965019214267503557920162968905377104621384042673382455124177531818077635816010555897783964126070435140280312101161910455339372788630580980451355249468366125277884751039033309482138398580470623689757101997422233741023115836274064504557749378522521719624201475947039002568989057833423235200837328332424897243805106108177891323351558201050238313722623310812567852549659870427685996515511762117371525668027188473533591739645671444848686628669334804655701256486760892680577373002150280818572056550739415161407893334109166152792413725359162229154799676300334175382446152100317642528879306644952289928252634997926018383313038886187541318989889258492026118154224799456140185436607478589653106760312105565291716562981758712716795719926341991220182094344767351839501367592492951839449974279665337249224117334690079967664115371075149790757783155924680896447440164765511180770861808928548973942695260668583463930354412929228731127225651422008163781526763345267442595741346881023552824505044858758313472517397053089080340877752153027753953874681297590483019353969338975798210029507409570185546605290029227861742606202081372469130240379034437314483463050003751036207263575158129571477682747838727045235989786060701853471712674868636567027127621655561898426484664816554369945188031597620089368690011182843474667774103748018311214530536682819043505102637010904385796174472888733253990497256103493057917575634905003017125530562660072651437733628525962845607576369564271441998054889520264363561318129286453777216790894993401737961416864843459763728801643012273397627519791632035783184757779063886375878228874143393295853090647798238325447788805531528696646821260372589115060350985673600169960255539174569609317440270310204534585399155959326402678008777445201977367690148173179295439609777727214600219199069732856201931295674312923543691088119613270379806469042687761789200560441418254833564832711568233102307444636487437286658438767552552352856679418899902077833543646489186443596511014202743416924020223500497998694239124607989577514350195232408075106971959753801748405345447618508506659946702116743642128628866627055763425950927749405236760596964208849533683180937596277474037174245322836590095611193576169442311974815297641303206532747066358937047906009359677130627109528348194424736169201084360273417873995079258174037719655482837351975460017510209031969948012228885847191271568579582937568741881813251916535972885428619427309939021855974753271178784791014619950576330612568573397902465462013416377002171358451396135767684645738163703756643237949072480485659821752340181436574164008454998753601204356379569891726073037087543463241505619422924142085478789303702007675103828874919472047037081011389977572774836435723747324863084755543230155054726908953552706038943643612176814171340322224926489152693902978004410332847452829733536760561907942586746795792431629962045086147235084136249129117237113214073211876931098934226078027284051956609909143242901290326399817586316278446043317565847815867145919310949458765725320205348406063203978407696716230122924677197398466166692535998266807662901693417978882627286259067735371040339525345292526117274279219079564566059317014365543224273486891738890903109262963889118816835487856715030408605548421595613168815117986188398202718953652884086727385632029748501147340089915293871502522853802351088602260616602217766191810820592750050479063309115145128660358313225942542214143731970072861049713818302055574064368584574082398964443691031670543184000513302530233425944602790015361123323259575366609089937857009838385556223025855744697710849178984936695539486473259613457580699179375204779653309096769634401525715152958825566622025701038725620864015909804147364866473061225999935645215744545712101046274594183878770320026497520781614455449522515025320043251963060849347116565061000660524975374463452520812351191386631328477586643505351098915645496385810252829610467195158494518784990219915513240265126217468922856133731483449112810496954280135214295109500019402731749316698250336572052861121607111056417959351150502790493360992544022083765288836468286340273337384658014802261994523895837596434314068233700133346395073184032515732860507821964803178425055106711083755554580903120440292237072427120827661320868385605734724342621526365227520773802501828681810960871603290813451069927918100793874945607624750128346202745734037358269455234553853899096580818581737407976578027460100135875843290840524286703442180727690250090160777471533400580468914070769808006135519745232223884429247239068036425557991641111405785764643050689781336585356063463119832893896863773525734370669537884337383958641173398403757523328311730129179795605176303858873398369072817363047667761815222774762579122220516163426703233149725349248909767386121620910869030743171437119276572972290328470956561018659930944674916108854579759217472270705805022915626310096927564915090742193401108612392691513292549124992881605492825560859060288670855215300831845675273157265693266654855232703202703786434750766201893809123826542064628704264673755554728046937253006601883392051236370915919190635392553137681989962143804539766372987563290780037531060683601990367634914142854416150466323718820111914386005773768061658146065411323622132894750032239517580623147374840070666141879894243492772013130893739698576758518697409089153699113391454924368394905615330951730897159558080503722640601605995894410096909777835519997517477386078488435697885302363828687472743380131275373315270717522158692548718914715426717794600285275213479699381561290743071490448805853775906753454881381560263384335314671720948435280325513082551075507109112339522233420997732915627680823020878772475490426076207671631908426815002648775819415527136556099389887527677916044200202161659885143886153468186364305370356021285728059500022649860598710662409389205282951178011499778230149297346087347482805129878482986651455865101990829303864747622835479476622687591635545430727328119569633013821282712627694035682258136778747869881955335838630454002216891322323961783275216165511802260569298116439279255592430107272424812693892398366801205491222915528321692211221117540918912367282189296144415756534188687467547590966449914712004138438570326010015449668780254570334977252505078335751312573528833575793362682954034375252616311458536232543178308597038748531680121363946366207619912760847786832856811274859294516929181412750186262389324471580437447666408630992354674801531870929797660367197602764200242445052816487346751856073556819353544364696009170875655522299179076774016453950966198999001283819320784802895062063070927892318568031867339547615188467888677549209693589035886000304743475788787170140071810458571247915694160190035810102844843669593786854232450713560982769009394139284495740233482444832782791342753067833421583631967973738638295337436747660583628895275090359731122819588768418233070783022225459664423269510650180487101948741891722009907655456758185971490366917682994534494263311012712717355662634502505691053933943733821783950155732414201147209654445672548244260463525235130531660186853558058597186134890501818600640475865331611974167507094965256790313055147376090621508548508630261755268081526008562973775987921066944426413443714600990873237835980373661021989664971057787186374324212710335819336548292572870483624947724448977902421629628674534947476770407941357392791517480232441159005940743117238296782110842680950382652977337611301263870729845357114615493269849212023898085544430694918433937488852916033643264863806891516918990429823726587587527804952277103642058025363044480058453022753003332255824265246094986609580487513537853454320764790174901563413933543031757258667662817025153195533113712570279566801454392256531808219073760206406403582855661394505787151237133991907690928641767891001092625821480237751933025589004236384544589825749668935575414846303761602058329476229647889098412108288498800244909672752945523064335180306392695987586786159391772767251694677621465988490903803256557488695197571358373092616437526942802550614022209103939173454284119244738169548573014896502556781779872924953812995391577062172066433116793175120259453243614834702976933627184034574491584687407653735529771912581445790017259574824036341393081876920041070820536591123621104676217884073974804301020228525459846503422961411069010946411698619181759409234343640734051577452408351280568622191260036111225186199166259383243419888242453867777568830087819836227350009554250641309884588357559356172888013006583138805907385531143055741868745653695649927741557773711965392195131677469141906329685162600977294961159533726385250535775185428623837881458645495884649787566616909802011395044042526047605200014141488786184848023037056093869857703551309412252063095862553973559556625638025212722950691354901249122409731898220617710661166162316142241422093071664420268883919218082457788728038554098807128887425738706555324011915548154700162939769250374171756809279555219492755011853880203122748697240342082775601872514984415925802202733316989598514754242020697802760831888840925781871493500202405237165629310011926602425944730028038247349796353736706971260038315694357420964408396380882592530341706707454340993626947908796630920218061020976954287702754365663560319730820533460791104681147203908988092392314155346447493935956413511110313439027411209210755207811343820832728667152469267125326498004846245690263578430064084874868454071764692241685045744237715016697014468297069055432063004987553135842109279422784817824915894040146398169597343281976368950306291569664404752986999985165131136572388712622025627826035063620432994093546409869775068234082570682658335191276953729135701210728044666476707799045736939324796342776872294753978322949220284622250550406783530800915237323857527040163058650643832563157622010080485980415495456633219011641799970624621774658974343625160200762604479278528501874158256147388916405191627008949621774682742276666351025318549452753618787532518589392124038491210563068422832990149994259883732896448625971193061945712266103241346516356533414899541416670478035800946340314875045777879517679228252454566064118462801513770512981556099622628741404616633197263038338020145905433376955158145847772366000493662167615324444976443045901955287225115890034795022849286774684314967133566632753850057714752288449791451502442647536069381269934597476618527992300232478923737915097437488467366493951038545829253537311895192429536224132975220436570637470939741674579489556570875755948332701886469867312932026852273695477381967848276942250299088922227261338157775622414894126879272222726058850023691412517048440801265686282871586271143159289363798540347821627259091177118769475218547106407271379642419672868785923774537264635764682909426674502906258799229818582281083280326452209411787866857003669079448926648926900365846996652591255949829842126367483216950792700989709703446526589307772229778433603543155313873978096321794516075983767292895713789209643317231532761193037476307905954046925753974250819659244488484461178181917851644485277375899261975703331785591326155264926278767427883818953287708768988408673433505994792149935760778183675788066005077414000476149499835751465081172724812137039387854951781326886739692466931901527228964193965045034556442276516411601178144733059672405139232156683743529763442797578023622131364922213055848004912313385665140424575922374260777513693531885741522360150883581871344030722287841600765438789688508442456076678447650593287818252360228048979342795636543430466976540431022753665016941896364415831291203556032507360208645195460831472663050998104802752731077909757233995879992703495881900802671976820595887297009844286087523317819758559073097759578652013753299840997995914321471988001975503453282604371640587816177365643735291683129521857393601361590995287440142863296234024316652537599363331825342259890460793361695920726061393525150244016958421362351984802552047049162193428960488455008951797070683410499148865685235822225327938124590386306643772921305393200035453316101496720323655544405046266740476793204351041773787303385430871587677067954114720822120354758723297149289144152158332618092254821095971127287970737924784538522705122420974196034777199661056404538212040115074076094399131176336201115006367516612846631612256119453665244340442427530392396503376339702099972329331770699231990096467431961124763876569427429207117428890676526633785449992467904940453944267251758748571344226561807133801798762886236991983551494130515253699373304735751771114635397735678791915137135078510498086909657953489821450095995706867283960501653502310778948095433848696367121104270142581972504194650451765812727216776213925126018133680142861379116552592105566569378410481528103122705956049165730971421439301721050455594121332940674904476604437966378832931941143129220106437118343501331877433971217819724536834685353316997424249584231116319544049549402849818487856875773778329371882260671316049324841690902579188401135527750643723104133854860088235030402960809010700538978648691257355715018198245592708444346865085882042942476190207731851735341473488871831288191951502993627372240174317973831454302949634958210814717312429037164710013890038654905952633277859761242644375876867809700640703905768885061623982437429309116525297552161165476961886298457906046061405514806921540184761268208431688290640751410523278941926279389472481953531253701851712185105450780453507076918331536933745868278429652737621451969557577997294080243313197478897775109260214665844381941164204467836220560610003341791196986221807686595215515782913811380481503133822012894458804730571840065340644963422237498185030132288354508987618914259142940196359189296002614525605960338102784798990271716623772755398117206413387454829516123751403708496005536617492903189330480671952136742316346065468910593707543346309235448178941337939235014670256848894148804979217225886298793113551485370219941209241780863564940202365344625798532755622768697882949580362843141696011396791208930478923859321326942907285316510791531656663258470432057090652610155571946053098045947938223113118217148614097410970517984649252908573683873018732156843772407511616016709016089075144013689398682223057824572073894997019071455728298322214250878359881441306016506722456930462748549053050274415698840808780496649958525157640205610489563232446458426264857272804358915247360968037703290234591824220279756418144459300825559485599752834555800782126811494673289507319715056010735412024033184603850753223031551553748350817937720127694012636118523424580378344039762301511257258903557503340966310687381121491407764126519306372525891317209497032853786826404962221712832002239066320761830001215317297315004505420840409531376652081888609670232041061199167432542729829664386302300692312155007198672588426984126787319363264619524095653026254622730408584516994312287476663997756769817063037479648660087474912504577500804833652879357972418532914880257221549366880231497185854452053606703623206237326605034283355858635428596253673397741352194724841451653642540723331644382743007380253664741297324328675720517945160835257115573245850645381278681715911803938314570184210036098929913742852139568380966569242634963627015155670409086713583503907293228627838965899380841975560638502330491238198918191860454777908935087041813650545570457666861184263613279518143584763947147342114286837540008381005744530871360347857813568369568458199169498096218687940929659581986880685232695170142294764683703714767047557545396936689682025864175310470621641862751763631654515915646663003243985174683757788356965458581420152572119325912078378190249323053251770163044568763998797675814186996402951699144977515895325371513037125008826781607312725920350018626734553617839832751280581204332557983817852359374939715878462624700119160936453102403026946573816595367989162529460075774541464758239780167353873810870771691684249450797423154181658222964470417392027887425766889703524284104163646276743735137553811820134983719018294417649006120725218529888083716680612294459691635023954281881997225373529243309119095857301320623748862306942403390648452813374857014559538958694224690284326587106252589960867641405615725422198470834509494235285653656670965964813958277645499754891587219082527862379564889879270026346722514444051858646739325959096830680481255111008479284281422799307665347190006591068974280435745008175334603491749533103092854476290874165448706028248285118361101889706980722744035883893210505478023143634473196727683713764910162750308537879019632487466386409321063979387848834121047411176489998687582899904766617197775756580349502053490283037079360243475532088862151349069324135101780373748056966562859858818352633503217563511696646332484495584733574631240436192426110496013341016534712931067559972524088807067576959649680252386685921753663534281694151213801982914974624684892519961335157836742831033003318373452244128429145005364079158673172458299947186604366506076045736841291791152707327717770662661478541666034827677628903528716738728948126366551684190815526914720629625661405225750568789535044131437635033163952328897375352991540511342319092844584013307560800654301965471107111432115392922021186848404289001735390357432858788806861778282790149586635919554231696819741551736333917591734357013938064933326700505431760869605631155571349494951412066467934254484813974472326635365504178690519087744814427669497987809528910682979007518700502969590367056491496853270587576890779720755725478774712951430060678437955176619200698680119581871611139614548544268840502529772629879348106426502780481457815499377713806547473917781696007945906017777083918212010783617105299158041812258991068227647571831497668735445885056228186642295178123741084648158122387280779943658528097279860269533912575767020140827616301679303241023374364411628525937729481408407719842655420261294024281476153682129088951319553606871220076675465908267818116800422385601001686027512703136342217106443546945206146555619519428787520660005722632509844851775057735568593925207176889849523941931208225308169391001147199745732322655973938444165781308446854992904864780180146477900729877027685294035364901490523198442690159302477303776349706015864792475448059329533030298401673426423988620045438956325251450459855621553530427737460547979682367572210467672771551561445598203772264977566370033965788091252478958022290307665879353447616043863065582106364628197705467894220918682873803913769268786666152131862493632493609538565039757776759302047703301260470679064078819805920874410513501159866472324953084007514422388905495061581880619702097399344225072812194363178975809565844229106526796673265937368270084597065566249622927263605350054040597479332724581746689467455927065274539222824569667227390352070358464263096944105827858801562115049048875157259491382227882146813940512663772297822014023645466628904886904669390259647946179292646207537674614999310090439249258117110172566823906234375060137077247929854956744839338978500147852843276578140939547273482692715896693598766838047059024584632719024472699983401710342726893933226228309406046845582033767578145027824334167192494765351188072655835386556741192480480018456236960427706197185760901275072014992762834133849320039267346072594925649073743118974147648209846491319909260016492934058579128312794463749790240700527714054897239084559038312923628827571817573762102296005806323365755305532770265752537175661804010097199409631413261760789636749368396323350762017898217777659614518583476600979032604168701026179348445361700911011923617316048419123457169752596690347467144382286069428761659231822766521065645719021660708776559419666418346352670993383828168351075115644371820436132121951470828386638347426952317806911364477592796224029576407628089790415495667835301641438403853641892826574448393594120530486969117152072564976148250330175242732842682078761855039438184166788872911384777990750106422072569531696860610383457772920966458434876418948853160288102673006552792851423144588971824133966896300131563759236397950199983962601090257013319493697286264654966340893237904796271387136717148177324175704334864998083032408370004629241257494029530090927611264998391428527974445021842444450254386156023478417692133298301125995527988458271065341283810628700998605506808215972957026697294406583006995773598256270132199855194645809577284469070321630774176890860598378652506215856782122222010565014119748740676692933382586232775080920727395302663024028398695682873086370188644403322976227335146981688782607907353695330363517536362774979997896157629364620769162358369926896243074752993280043288016538434250010767721381012614654966310307786344366844790163703477594671872378872855502362767017808250058029771019738717498141789006106217306653816326252850681250710729169061189719347583116511058153193441837344314698499752659802529015499814095062656209259341241889905055745555751861979059242777669576403079039715047373612229177460432352907107225645402415154775966943775061110949975456613693708165600098724102629280943370149563249067047160737232505439528784816373033182101823167866101741437098499842644000581334852958027176087010226212978884274691897286714251392070370349344821231502009403109399911016411496058313718401631461559069626321543906032400392117571770853118944604840537479783823965229287090949671319875376975714156378948245822605590570530318644803542805009416469551302199659007311820650379873023763460368479966556755084676157971541682312054080052251896111885810696987797982492683773702711009528634202057072019636711483245330979780352564921760674672190294758234730054115646743015856861681127346014448510945129979422508702175636934116583441593884182765108769677205601505417271727062833287499803281664647070564263364105440747339548821853462696521441851352252211280756108218688842271605549734994207952574711796370381782814224367862288925761912664817429170664470037540800632061847854067072144673518531250611227801492948403660774389427776187719883925593376456136372159035746390199986914348997733330206076086415127290807590327795325066866596848635845273245620026738843078182100756613495671138746722817155047114533570150152538450183347477455132207786277026027537815913618526485606494127590379300695229018609671277919021369541737427662308960896712076495650733118337443698109246869770187189459592914709524389103212981682123585583194415975302365186589302464641725151334213704649639260696101856440711421467963962800515023658511362043764075835204538730316933929857074611974753992808864920679919068865032639608758174985689734435674770226656065679566787240423342490799836934508695605523528237565781361434040422828913173452137437577183873556541479959588145988089832619335870575657163644252906507063725600775828442541277908501495946858773784091575793965187356207782918461981790889681456225077733905602654917577355059685515239293412458930974116479052794242524575437589881946572180665220735707411519623364762759169060857434169659981548102214968716029257158903210452403516717952748354513010406382336551518665851574820819238594361906182257177600690751577565970122385763806662709332165054145853537197395039584433614088826865373409308031193436718324549525142202066778537565954056451675788258298529229607460797234344731752398538545074626297956820668620463686156998113410182484575794711663194955410055964485758570045322364779516038029340397253007751334959012904192053942502506452993641546059232595176986215415358838354340789797339721737839528526556673880935794359299128400782314068563810017145506945902759799971091005563170381751564273391914722994570243644047659354675507466386971361863440749791436451974639425510751546899963776913392159190034953131393638792979865475858554187791362223691946803394238187743682068112134241080468810575519896234991555850133402128681232711760204920325442864934474637589989934314736705461221162419567098030960427228565846971780728052441097930682768748848257902378314939153525918309023141138521055891104860930775823993008114184678898292891097820963900624521193772676185384563743628905628732897751526985994199290901470272379439084702754844314073110757813089645163069810302599411913831705439886837895955675642337305645581831920906394720129086968665493140682217613930925432810457099875684077290407755966716316535271164771965690874342743313490983490404904568333834564552719062532265125269900211810539385019243135490283853340409467359029137267579236754804838110569381671255402044300878690910405376970903571961274902804043926804618868858318451674317922265116148099036946123061279631434991436602836495279380738887996598510884552852145774428666369850971745657741310498323513767130023278310179420406896326214094650654507681056086296167497494071746921207538387239780964545241133903163477593431790729859448613681426122299895782020876724482936712193693960980910488619885629688913480860354488066041111641409826458624945186240804746716288921484844625700082658835865815646424675238085910599985015799501598835415918607240983647179499792632050772152065807980248133366968475042364677211295009469215153581562826653738716713336003433917088841680656744195637077074794566690426929962969899614906961185300393299122697017905456708662661681091395238332908666894519137529679545269676082618973574221577552383964493803226270823283040142564697559260357167796526125284139803541322940779144901680880013427631776265848452799983887277001223847147209502415626560987555569841933845441317862804100187774009035215902284385339722108735471006580738793953735937668593589317043205903578633795589523228703138158890822652472111706593200257147769713115475761438856676622533427900328884460437675377159554492762863143828883255177987202763655953463413740564809181759738415081541401452369187632243305517862259318067925043099993923958083085861248399041381853690777971859673158086935057679716027362486393570219976725323595047362323295143009546204578919716864614175279231792640768536031468964109682295874125218893918609361537683105009243209551145996382888702298896244868369528100341163977194225066072917072813497686700485426127407147661422104662135421732662314475150030509748604030755463406901220877971398994175722384711000281442614861057314300274985730747642320704674950130171376434340841418834284402129769548498471037401409694626022562037412216451340053456998155141399408786185984753065244511410637491682968823946915698077870430113838810536079157299644552628104640395646554535758017288234531619297207669977175313703154823326542555149997612326031968535424338241104247102282860481547429613339122421296338948317103267884080782386469883823108938552493692317281972369762522529809227702468524866981915536492712581660405672444742551949048440605731048880741350417225505706893269817190159616767229783926951354719999619702235413326773075660467011566399717511017199369193694351928281636904411653661255445590230950385399828720286705664820056579902446614191423288852942397121360017274902189077640303639605458121241723768218309380229242008003647976978557860967806735281722537155794927019558237912236305907030938256612697085961087017046051830515876012988768745326159313750909069490961230558730188269337781170840106699580683295131210516242011172211124133241399168112512155430668134084361972303263718951397830564014599126921665787758060162538022159837024412648749076780532217220067042787478221489346518580700531580963677209808834025386941600416833005391184505977288505342605765917059026747931519465272673562614316919126038493648751364736132669877880829340386921671764495507028538760269964255664492737884560108503303423228751142462218299584111938342472042762144235870157761161059302774277774621228941412000728438072294734324050395083415251081883481792976677429699387395556750715483450452774393428486596445545660124227927375083813864919580415302652633224975224153408495801450183894318328900476391030795652412237146827936108679260286659131189394178293408204204365344686534863606876271051676724570756864427392273679263739649860282499434008161907069177316164976611637551984562732636274839344008776300597395232432662626053306976143459759946435061478090242160027435291194850084773656944674399132323273659426423083990193093328490795999347409447123626105441828481460546279848392758251393481390238559665791881201382825951217770603773155142033321408541008327698696056776991604437150266401187693686240287793214409292357304058368821711969342744110555375005257364092051035646193306735184863604704642913118094197840994936552826796196209101878679151418673254117442272643490651543095891254941038312182085638820860132280308042415966590420904928643582041756962592897122190838420699884739987121030272456003950226487832086428590552937929729981234147657439394382405313194704412407211936255984673742090731038203403133706115955031703409259458871760931735897900048513981318872331947258424933568466619765519602740858539244257635775433228490207221272889255804257971249505986085244633973999745165363249526316599455299220560893220333408327878234689417932993813361757502085874462150898786547248079042296384517248830787075704973034498920772520524942241156434359477509485535712432601491744861990898094657606581205178657830585060156143269379291362041183227156134595852078716295275083322972543613520475083377103293601258240910244192428911365072597030496732287126053363760123142746765230232792963528740353521340815855903763919070792607096448155164430953019567921910534275027928892648475462894924110693317167086210292308685926935023056438620446887033976546291474524666722671712595921890821633968926606269352443387113455785470673334734648585396070051351446188716545852912761255891908130286342790389002827355781333603769170123568042364600136810235990007365041826144904494917175177723404512339038224705708222360537500329755450305386925773508385905307631247334573102115046227485257157137041800555237805831716166338466409245001102412033620774647929100360757866795421749998750247846522416636065165721735378339663311100308287544271432277445894289275244480246953030121643991161132681914938579971607412981174184665802725420223698836968019625614568136344887805470234379856057695327333999508763536867267738922344737414106287976990986482667461212719801173682851393644333489146952092092655992675958391395389516807016501072136839752981529739419445725257383044862861541715316913944551114392441959011136252697685358492318587119225868978472779874263922446499510695170833226985886287063533758058317388620750087832508906394923154387817411618627746516870352278221224730245869779648217271423489762937811098445587697330656155100643074749947574932459742875490910037994754910579278217464398077587895783138274852709013167463441145011864472884811072762305172609231885611756552075111918873732141043212066797625919251538679631843609315198575051876396470946065968818191582563458211903244453459355239769241892371132826216405230917747329973743211308059745494234692659963395028954622138255386329090703970046638427627190341409522152244927630106052157728711900894949245935133000944225584639647344632430321636406377146693323801462640243503133884482195516037426194882028968256856433019523084215085272856467671339705620985405560243752767741098527359349062134840964620567781087131975843618333142826251566118299765746981687497602863785459187185786768691093212480737444627857075589056498184147907515933689218217885205116920994098043698549779994990143157100363925647556804039413781080822084183237774243021039228724834753464947135436708895957118699849753138215790794340956663390137456907758684086049833838455789173913097425314872480686049692499954254699844558666359874619827104791399717834474377853215599501704424471057697044186426982414211642607338712513040268435534289818082490376144247356166915001117794680057739714050587365605897582954905165741053955505977968885363599323748812927596251707417209029531645982208933143703027607000462015941122370460836748311239053743385322493973139117288600129299473290358739957531422419379126749724771719848956698129397097793514704903223500337390382941863787601571281574263054894660263578218331789999035442083241271250296605038000564739262757987466771901261721508773960976351483168345272354491646474045470151304964666424452287735309084291210528131848882939442250808954353010990993999748992433115946118293431457828298768323858231500923440008642918693698870512399473713477352264342119526138232289208696536999001783446957457657534879092400209460272754446816900689376752422262718856951486735700992113166627466421030421833705457341583531243699979270629571890437724427494543214083035515478814836388405259336902276122957830706632821832270412606109466792145907331698081650672420180172188858164315594251113240030439318873260385472426194806087575881297538623364705103939805452790412941088473730534194621374734601329328104226966704578092281058093775398158053884936192639335941537157990071261722813857017298576071943677795983839124658469486641458427699546684794060966564525801163481597655629452353589915458511775181472594581044998123268788978968921359371505876697849988977766071622082982092422724875645099458501573747703059978707268968557025537926103668526419423499496621367475781722027958053587114179090348806757828990761078480389836134820319246852830952892037558092258058392024509449161609641680809418135997309945704739912684942395441059584203358265878627204392468651461821452191500196521158624074612956841042530074931362466466815385445236034083400342878946551727830688442727057600578334985907350947451983257087371751856254700542716543165461161884483458627721746821603034987520931918006703107914528233142426266485990303493457022200653392743672349351287503642387291098951728037436377110214035381634322255853284939665176317787957020736101383209091039358624206097884022862736264616618661234851680769120221102058678207017721131070841583893799239487736556732224989891753721287584927832826653142651924301404696569919397518940940671723188879158476107110763099288897481407613132635287604942668675158364495595375836401247333527920933463305685915112749054368789447141089018168785814905045038227515655139686389502411245012984135011543419440444796715452211412067488069340327808074544595903726548655808329120777126978255187646978057749334021967014423443332138507271765109485502951628772747208131186982355257136182650579529951141797130081368385880819156576405457173737986244286517967167582453699152770788321885066437351073864149224287300622397987370108527368422246036126175533161909242871012109336321270224831150919276402822490051573198712653351264386195622766656314421964153596411328147864904413991005943496407204441085456075226439941332041202467848121768810987795163063606940662309938835958435713548830257105422990018114943157355662633891216435178456316413136820848571918858217269384639597410737416156698479503744482184296865228460994936784766805437697452899310983785144053266022403331258448182484339252968242047056633816944106668362059100411869694394379184777189448105830598717159299696138988759728575724238906893072958894174833785152497167943282537096102254497775260258889658197094460621439693137184580943992043718703288599110986531826392836531182316961763702358656945963923383526870078241120603165288380476395948514219184321763437229328734269166796802994866642682647460081479051312636496160249665107798946461961758993837394126136423645380702469898942087466648125470611208104586208341271124319902162854002640890774738026093577678555975642908516426188449852789120720318768633920300279349570103317949255140117675578167131761326463684438002978834750525944563069097650033717970276479685735639475257066163098656920444850548888492615467261417737068740535394143496015468438797039905396602691800079000699851617359039321492507381767926943352932438047619497522779488754102091725085897822919880849189454904422037526438582509015593829892176303562381395398084663441973471982122373414248896204408759539195623658768419198210886565971281365019052121966368444821145915796753287899603174593215507689295982503721047801464799634917193340915271825837407362613969524570042598687048559731832772581390545286239262322997868931668897681462170765518999798166923200989688333825889976586741032988710414932524059661664545357703253212498972395513282624271265034104743993787994693219445866249422152953503165680001307181808349304863292573241990169423832606916332827981085579125561228111200328585109123651774233341987975160938702043586122232382523368088023819426246803198919408794958148928908241115822405832171902784339886844156495800812958560113094435660400973772494151516049091787064202646128067914469638086979896039294832409023301283119956766785686402785329940622112398963482042238164518312969637551643905783405607622622007038536885511896473891823788379021027384863103562747179829198999371652236274137839640729241390820793329994899033144064572630723400419685905414728774885746705494187706499175338081280197044852361551196406912395569150584154802446496196332706107590144882080745236337966710744604366238713747732644159395629448486193557175439520793208816778240982977554068535703276357765373141934613187365941903415935968556833509189444174011673698361898184425285215832450437828488881673336316252828643348985801822311154885808644015652163017148613733576322343518489304451678211270165626860734750116446330065769604699217291066832145008704807332596374011393435447650450750101956967147532469124439389007952002759947981634720707209938366970201947232235007403984439417045908538809437850125918136356610076522519587673118179997290924231545177797028320350831074139498355401732620270690592180064711789544092275040351821451752978591769994766806629216424118943528814092054045940884194207454808014595319942765763468246957756814810703955711633573227465710965690808831111579483040663744379205027286511962341612298787091588942502351437385938363993576212936101391676583503804128012462562872776390821876043297273749092560646987680986037531723520551750751706921528312883151341942831869030191436859979011825842238252170894848894599484561559693975318680371320427531951134879954611823204143713912987541483267803989376086717714949403443604977087020698162649286655514379057171155582610119335989961168105746568075315834949088082250260894728036730741044704090837680351466272675918550973769677436425935309883324552795742484458304618971918226032072326127301468121590208107970729523489683876196191424961059416346538361114957946361176343602232743935515797511552120452335357951435084377060572891878876753893217933188485437470423303839278726680648027012308394215706335245756002809486051302942392948042523774625962121456474905936539922114917294746639803806039967355236380984448313288088872537525466100584588634784416981746313150131098224348979484754679720707809617337903125997845113619449324402915768853427112650707302097518860509362149607416782663539470376075531828399846924914710975915981553145708120980527794013049748000661118237847848259047961450064158009522508072981338140055995483371717231085129454472316492903983034914216898167057794815881512498737431260361869013420094011637200735777559221159669551860542575431565868199544483063088954042239457844214905823841372112171824576143963727079100072441679825959795114500083829197318425832011040214043594251973674170666766996275491323039699784680206965383909228250099475482716236984970090383143167666611749718567995306276931152032079718346666007744552104639894821202711658157671743191432285492127745800474782357265485212714387692224895102023006763674394201557720884335407090570624817131983092255426267568510431722872429155030146046047065529040046936825369183750171353977848714108894657204645020809703383578345968147500714205763939899005202160762923970252123318071806700023876919858421702866886375890952602701204750027173922633845210597246815198053156677812423814762452218951341716703128887109348917793632542376921185373479669820756943021011992678606045490477258118015781208110247669463454707588530338219286305959195923203941278950390636935737294819322236005730101207830259707746132029329048451307042909006361835863571973817435015338046539102347739143160054844843669374030100137212308783633329040082439093212566585887776726089023899796484648992755017447828916389434294997134041574505638025362343148932669300525942304153065723830557660402979412977232428493620335941348241146335066341431225417494836762261827333909083464144091122667282197028692715900020654761720364152017680950724946345819059556483144429585833545550544585213757017219109726815031123619712797859196647775960901010969169721763588382825306611126370066237599830266090936274585734128680351403065341010275876969441618314614846098517001309196885804339470882564878153786288242503719193468666823691417721106115440417262925234243142817668407003419504890552301372887795608322562306176209367574027427036139453873668865821246662597123863211031856968759854399598934790448111817446420894553165672366463327295089995241782042568429091953522354666812227337487502492103790045851873253915024717424755009762718558911743908803986428769757157753803069675804779074720053493411278231216812379704282331433292965659436443065054576852188996368201176568369219602857758229831955709542496289484231569472307596379383990504435237428430812388858363140520360750722475398070947955727975364271336513226048421833841076144589226726154601542785963293535217469922524976731478596025816814896956332029003668776048905296105647759622385751231565403642341608275982566207235995852320146102510943670628059606625942275958418623869195401639804038907784645128187483905169140653124785607990515893708812366292058680267517154911930098767064156529998493755659127029247134097890545387588201274578236649599066598891578748336669608067802884040559484411163112339339569049685275039036207236980478458106912980007220971830781364063042398476810461262877384074880271876082555141906742804854226316916023248978047085859774931159305922074488797070848905011103497849939068523417915789922124569150371334886910100626195128417586508510958217836515826231345374582252815409683693573113485608811663492137145522135367083409848667062657201382187915946304427959661214011055756317653120907625352544333125807300251659010168929937087290829875361526759900390422755717164701187084786096966124965634028493709672556829285418353254602616754056040954693685310471009279535150246130271697138837477655637243568794941580174524455991086731764637205340427792942725273150923892640153715235788772806362378019082035723429286510414594761215910307811485207906435013546767388960349526778211210331592821655736992164324360847220892694331684181548985095099580825334649131992548780266919995455214112468774646039497862499037403958107832167549679883084988522971193732955793187977416999450564482534893311814912161223536449589840414192349271756152125744744373353036518524581710261588618541690124129796983931561784844232042506725807175692740310335761862559595959421896084119830232606634994940981294890499128543871712959869980047694404884811212075137924351308243877457470631102836150333925421488854259259661421393893587550814682276879575485797535379002882155971110431846497953820222501881641050841607440452078892861617458044742502203165221495587916182048704817773205833728207279361870194920615581279252558005428713602055581136448471136053939714287572294112072446955838054551842973126546219072042353231937463700533741034393288325340869221691194047894484747227137495630894101337623895298215316055038112341441541668325235099917081236878853866314009066841111221726682870660640141808214798282707959937715461109899984536041980002451581901772015537551168968882510519104907963800533360672995994751451122113153320033719849718774488282538592354450122040410882255829523685426318790935098798772395161275532458137002649502879526489259940600804058478941998933458659210816838904896530403667337119571501112246987181905399293960854230732119230124130572116045159954268801373545591899416522367394196233875294821648066363953265599239563174416144437512142729555831829675861099970401193518417635005719657024091604933148012024018949568680411273708383109633096265809447508895996770999694388725742246250610349944783436862837730735346441608572910057347058707579894062805004553340407613080061023653147957667679418808911197054895580282180886915922660873314248738050217056649092753598466388043548114820016805665140294050359021132256128857923418594872049689037631562753656925494498841061869012032218547944345378865210291561655167244329603347201442269049939341748460557114305052095243093309932567844521222801315114146413093732064514943040368051852338180862526658366098314958263344849255687675738428482055868803624048912462793071672570018350032336253524305731669894299483323197726621313947675328939164045411415274240768680404363665794884849107368144937864973194162352473967320907091157291389952983205630801468469470493690155940042521000117688242586274991059681933133021432110636481350850301089220632125283259047580634040097069946434718758357877064799397765373355069938498865827108192715956790870475804286960626139603650557937241554543420085170757089129685245254739278795559016026319211392720467571886427313759844088740592080150869356046658707284953630802394690450410728883649933801575925742784724236215010965358302570495080757898831151951098039827689316297397456252275705902845299191166082527040814341300460335748379305572157792741438685487874295915614452517740239906993964857922591255791205368252313655189374264398911394409634876191044742820661297233370041167653520060209129177632097643542964301277280792475635709288712663881148805214998252640649733588825703340754701492919166580193540729638848566693949911846371633992997684900553631121144245553862507671995937095527956418860854865519007996382528903573936702106118553173986375301513089251624905896261839067422997411273865676086881507507358600965054453551319304207658244976651519650324613122795032097357399306490587833824014371997717542540487768971927219000640696956671633908132885536539258956031171161166762830154367824833136780111746515697141536927084803557361870736676204805668064816618849180901211438383466124227146793560723364331238750753800343752775706247013933096984138720636013734204681720980043486208052941862938558757058086444724280924428188892989035122732997033832118732082900251859785778460896410187850098617337494696787279935163265782670494233667958533740943346832153129397258739468948355614546879341439544193320299466352166901161835921899050245206957425830822557101513610212296109482045655722848731442620898123135548123596364613271903839391296980220697501646872557182212804548966409350485933781314828444545259186081313345802493297989246002228098490211290321426419308254670585210507613607764467541664985868182127482234565737720104958419753337202600358520917540725019622655695263120575981258357317029929109509723914696185600119373794187409783871903169441999801625452011873903757911393279349339220508099828532337696511488632224762669217946090699747829971362867709770353077395396445511014695679344531117570714771199719215315537720424236696589496976706935479675735904879667168000023225765003575567149725019432285294525618849415166594861354692993673824337923055028536145391784559302689048675484556662830945011947526829536590476728254718965844549580778293089502712618748189872739004679200249186910312722968966709406267534236356587472837023310848301066542764931308272851912029586513443423297443385474950935769623109187708736985553201293219601089730766146772101355671545972787489107067978265400872759635104211899792474682102553489270475601963689494325651511650225340876755494466375618883419629001851818224314909765167632292623510413723939915582451115222089455877437309502630930730362368770071338007896412926925404234627751539628200037640349691663809410029039389801282397098839848931469648489805254031114882680953266267834752673081442839147609521375511194359625685727410997958483937493537897031264223153147779019058891149451334383945633150525372615649119561521406368366775370659965877022106727176730706326452916702356856435142322149188684944359137291400158443744283803301037149618681230858438299329109694754399943390272070160262405613093664833149831622690284903750911863256641024984847153905138078614135660288728844548911737159490811591501528217559737758748429750667571831368486002210384804197239621988688166182322099213715038418355782906512689982847254172753658638418367255888378205548478171916181662519024027304711323884592209464401475381666433368211432103328579140046468137303237784282158034555362619021864264430378164301381318504298068490680846388883824583398339669260485431637404835923978198925093991428985071015529726247961700725223103855582315859737893614139094306225367516783418458085556052149269134584667412063582766813650518554685775658892448398387267773929614492289805282309231850125116645514343452132497400887826930285357067709073001018538972968057313886472249532535531985310376223172477432540063394791218270074005714441221208473366033058496840327108828096877526946411837207550420870699436270589799840513350663400153912723736244440286163659408436501839411258617382876180480996637336253934233359130311046909192312443481490795248837114142249447536959947838417013604356843266562500107961023027217490920641758818573554401935832904968016315833181209814791823515150607741601365998796313134859204153450644212678995072549615471476057668914656777722827582102238564713532869978954975907432921683971339164011231217406458529251490837390591251345313038961916972821111286719675457551618743524309198230128667045524250221026696510689845199080587174068964217601499772361453204756567144430226852966245929434760644183995973774142012134948499201393856128333346424134960338876068733595842368621121259679845322452990066250268544467601183531435435568700661432883892357312563247971259182132548614514637304751733195677807111664637690590576838418483242015482311749769113378537447191668237810068708648074619378335117927753755621066903359955230457776366432269732987008836669145964596571111409036506780675309248006045042162236917330916285752864130018188545403618997909672557342888640473818977037773411716050051627809209758477506954664357008991192879568971463432842576909501930043435316147483746003738745604075277549253159104334825942736343907391237908640215413088080117859629973251421759147988054588184959841502242945013231987542617555426656664698901621045008356520515933043608341763400620265465265895415527995481157290555707621176816920231826152054820733346772988620627412013442321764803162670220288250436136269107663723156374326642463811285290834381054286692450308423740575534278258338712534503923723524790218010135055180617188541196956140600956769649401141555403112953726287437373034714634741116290526411532057196602672185420486989752513689278056188521859364152437206854698812480352871323247146181731420296041434795876318235763468530431460500699815356929757668423876608264039611699817287977397286069803538686609994027111513286974806028612763198691467050187332804034840665211752467223126667480509500828750398173927926051556240136960347798046870776570186985246470458987344731993656981785156067705542288275215591084428831074636244649906857178459854698098618037210246451308991739819723178118772754110206996935354790522331209984638264286498343717849774562330436862970317202134708983535067949303824511024439795468882573286017066169188094805073535729091094936063125003462918512118117737874424126650174477767097907942441262358455905088715205996149715026845194659255767383230253362418927585000739136507818156226561196414166573246142786703639662189787254960884354490421243611308279740545576842529273741369299194333799697245876759421304412762604852540875081481551033376202995410077293519527873339806272209278197708437567955897146322364074384930343745983492511807466803339576787462548635707657884542039662057551239523082545336919536781818159968139287994364181577113310453812328918089748451824546455203526932452249796426810997152853855486072008641102902838836624106316838086076197617762755944458692792275326687540472212942291986479189654734986630895719618221284640595733234208414039318108782646559407037736653278814810074235426728547425572187173809498040486804337776478894412059477953558736756779659936843851327301510185823511650556067103648733370851458193239443212584412367813978454524352977848747313319894708574534249020060197489633722150705599645449379267628386354872719981811682508156877718089542688710665604004429837548038656104911127472340464022957822819600022265198464387859865609323917149403746814823642021992933931247105526848474348186544762613885285203913959125188910008603355693342345766549285144174406830071548313076421163841769943215055006541753321188152481389750256078081344841581682111676139970417236224803893443288260541787257438107724789490077086278521831582241137960652624930151104588490038522569113426478473536885914703309661527331885430517433560236390612018389239801863211784836029179778289232973309278405193135764954442069066817166060160498540535542738625374470042286348530758285502823157926855645141322167733669916672167990323977088917684504146958875007848793252856752439057630777588528855072669081431566727921162533002608677021448092890184908945744883529345984725270500802179897257216350854662587335367761388241544482103461680949179908569163694022609356882798101369694033434096115390158401922796177648344197653957231338254653149693628851997214832816914109674967601557644475389386667814282529920846014135374394247642901688143093934785180585170280943966632603466867681980663462008556969982667684964752095128398552653322829515110943789361506240912023155136615586284769521594314415351779608340981855204750700170634037531311412803803353709241558660782592270912649475673346072076146846373031395354890384822184721671601611450915939756197451768569729652123433035811026475134658816412493598737119335400695702172575069187892357448116593335791404256583394732024269677300194238369584178051097526223788299238221779731538416588835777331622018394845116158197920356473224753399530036931033796383940912437050503295886576973301752395862361820618581116032428345154865617266727124986549709289095555921826608358493118224099611632783135124649737620968436542774705764349110906050612734789901646598516622909515465324136740461151193976145953063550648778604955069440734995314936024803989502713453929520023792830350783499939863046090252529019273868798700882611848334203266493282658604567348101743099615742890997704896435319553050276604766908215761100353014808211819596995391692077943153400325813563852280233877615658685774103993866103480201524329138546530281333832044183945986134081542811797233013768906152803705337198036110156858055545135172425486392442874052898893682660644413066692386170769556262236725984400083323127942950495475906621853160018243277956867320971843334500899445370738463215608373866362120760991738737848487094207226905888572265852732247648010695828822290889661723866501532894552121085606273153005085793450996803044702830307788084726921114954410716855551896586927186144218413888887062113400765694220342633078970797873346539514594661060074104226131425652639118535617394197033375644788096459099900993736509591436809912415996634514142580151811884328989162198111636408969550389768562602813620018996197042074489406726756115730852840423812468030751961636864205382962004565300756103983804499964846599961714695107946052548251161697839143092594216464584840248647356769190410011645003546860337825880338918241905834809687234094296245019429590469143646089365930375885372270210511804908644309425951262637970586589401847820807826144593535404338588814517077698278288399589481973915588580521222832580428498567406173398450933480275967111431386519663717543941554551779787875837529764690040090538674940738035396363314348385142786207745931497545494692035955086726341810586011146971034529153757508203889746468205749228812525289097357937133308575786682282885209400476598820297926739581329615772324425855419094555066654872508246607211760972927061759915872737525870654971685758243733382739366244833728481036349359450916243343219630073087278958339620894158933820666448987864373895336559028399706079016508653880135996494808548024368357987961825632671134505839561038076963628219576244476528451598732266416416965005087893180537099392103571900750643176063677090927132412165657956014310477369940988240538148246013158501008615987968681432703829339697458964094390581410500190775718805147552808920097178047528801405038455236703523924555653294309232497058745725137989285946544804912719908252041947420577173584513940347404131414968620928112964223825284259736300944396791660427268305273008416230395298933549629607442089945119723888841127899052969983037462488523746812537003585747681976319898920328310421148920884534842009277610638281690741206854083076730831839016643314788390816266671075092404153856452427029545232706232760379346949534107640121436508551773790241615153992012079082006091178076300223104959922030924546483247754892366035403326231340791361161811018684678275149092975011752660336117187120158551850419557095135524932733619023010545774079885262958555775878382185017951367960619144272826097611806850200681488548191562852719090225563655718033939630380173179583147830345948180687055003785207197565152936391153695263764494474547962209392358935474293260780138920450862746297113351834540932388100777628823441893131884179030077703119414020186149533492124041469488693441065947857653271849581693744758774033141713072274474664391510017636600679379467989880719268761829072629917765070344517821409245417932469057789303609622103793332851830256842355291763610087136110812796120825519931599981315857745047797385940348907514739334881113101507065596361874358595016601160277019074236914611337997699599079426414237003492766362022539410806765451866234529323431310205715113551879301748885259956314207884359516398087197634520641881809419061331549964008444314065374919152461379768756300125800891077781776932524059864756816343456959830078997010946779159117876239494079334283863273521050303364090817151553799067593088635891632557340330617340792419578338409193387990404574776715112804675194067342644472960301023891361432700009777969951317091843857113675391233069688408927794942248268472859069593821897993484524712136322027022727248533416695062938962098891004637797466194109034189540692258561775671175703268421424767884518371374613011906943259351608029325009071595044410446493680803391643961571743119780441085062957868269852524034442393451614264862095778936357675996992546688851534294049416949623794276963325062858389418319786570396939504221747976516164959897154595577402146817971627511342990051244412429737582849951269031508220912500958429835858950841904629473079302306080348239918783349549065602056163528615833600357274352118917541279932663096521610761928380993779042627241133643298929087112486514180463289296657153393695675826716123121710773287717660795014465245227023471294505666730392141902597131176405320092759576655310656077785274622942450322429118660347181899567917250899158765023957425058948557406917620781248279956218972697189242536543444910954035625287106035803841394536321029473863947558478371544438854868146140228522193863632788061127534378163349587434300323355044129518623337269853202184728439699346584066636561964431031640921591540955227031821775921386186921763007463760180149976152728667170519261986917177376336096362650886261354830599406581882157946295241529622721000603136861379901229027804842146158312043245901051481972233745111919657028801988866385544804558922299387431214728806631415100004627317585837103992828078393058298718723112058596405183116120462828531494748567637431821138255330935309914162263093055803363445388767210585294846084934474374865066353664602446971726250996831631245344491822248140050384485422222226797805508420784873426667146905076679666525494366348291895129075414341825131473857591790196292400875340818543187838260760930028813469449335779302682775779540079676401978841440308312319348957439542857418885736476075431931045244156569883505761615496870133974890355072238045411609434766089270821233001709550700764358895029363638739118437917112528505206300881704174153204444914487857825055748805153203515299735048100606623954303309207409395831612702134112152929151071612983394521000677811891256943382024557245156775830556458357166470913869589263313840513155693329110001812396320625555596513070536962344600877174711444674711041715916900315485198169157637336850678300313192276118149317221977464382695309412534643955498037977069794897386182593470492765723170410251964839650727909407496506551837087466685944814282289263272250903598451267430738140647074188683791857416249598299208511534833343023271790630565380362395874549926399229324366662158884314315308257001731449740448855928695828722320046240092362673502732448740204903833061950820854657723637136172849610787467055132143003135449645175399437801679151519634304090847232537693047974546803489820052013409523506546003520089205456538502298174530450181188624566144946123056478916609349769965070387806770933823168921019094206987264082462859457150064882401851963799460671054571778974565059960570041491726594148937466296319754376036758250955805420481932828821199397057890643655000759343072347883262795951085797821795480856848027754133709106666752015075513704063275965557386781816333297657722641339930676465282842216231443352034930517448302027288836558736900972432198493545350963516074211422668205683142600887529773062164089885362577831811104468735675091582172171711418490772903811026860909644762095427419789633612401775783561118226523674425858739822740216673032675873500280383276940336847355746773617492059425638286560126722209253963622853143042003394780542769130226079589222492557445474259032060925452062237491799429839770416065242291444283095687930322408578508327853040445217241634659346092141528634984025410305567767798770532078994526966092329908723350729910866228771109300431504187666175844660699918572120829892384415000631282952769454120366852174379775413991012311938553855458529988275582766870043107514746822872804438508990334888749384192978713325082528037094386995045239848917718963996690631419347857336035959710495766826703190546910300346296649062405290502895897827519959672607799282509371231192340733093807714102740865597982063638510944193141139069197523124498215068157482245145062405138479217888092428190688189493727528806392662764927326117852385546508365651075374065730447167668030407481994016909528725242867903491777635322487565183468876605029832057757021344569778255549780186946299535092248217122521265783734714621364571872899825479752226686919628007258928197731248136190298377341802823342503712652972194284304340888171202318060220799281388661742280639231737848355562755897018738967196747111456327188988368035133136039401052235230612850421480438960883397746808879748895814951150100316411451982760473757804051889385212527915255529723705284819872809658550664028854886112102328097492580901173402725638817808568025294191816165909945505411056723300047199269757812938852294985386022825585943509585643401290596036193185016636282328088085831051152564895711997384475814385841889415537943926628202250444220905878178992469409706800496721919913961577241117234704162245510306007138363954268493269755871322025095110382350869521752405225663786308970908819613089207058682938303169613097109562419285396596501681881482516974078627372582555656862665090128714196335003111028808662558211191995855617883745675375478649997082223182800446723827123928329711826882963317365555512210716944607968915784544742032334229800761410789770630698958597741660987597326197633282358395553688716756913379569011298203923052340631963249559650544644347926978364394605802193447932140977640191845073508055973860124629877284105695890839776184479244285751433452251243179734211669784775259111049362166978112782562093205830749142395365561856277294762306351532764665795725975160063163594100175442257904504314270680070767911467386860145589807155026707189180404135475604793617202927881350689315513922083852182447592340587565683683719972278545979623834832989879152693365562925538691664302943256183145759815937305779120660042327145832982670917488153742619358271700796676884784219550004623559268519797933046548452199672498285219892590355084243708644334700891049239835330867936618894950394187945881747842591872205545321410138951214928431023406011760578258236051392712376269245836846414363951704574436749961794790802569497014484245266889108872143226883343863678702052943807171364433449936492445111110305804512741726209292056268591089718887264557060347872987290214855613220792342717205679368090969238672516111865931987388687665489565565217859140203880796756459419301074317594420418544071650812413548890248992611757360493180447683363625273986603367891584073283165585189222780498208536480186293427518922711079602034068797755286656979575308984751914584332573666748323543908701627834054700816061529516851228235297537184416870967357152651706924723365068904452705330041109660555971140822974259883009736281473381323237995012219340016836910321812124317653115806221697788368625697969038075959114259195114936414877329177582857178921821740702084184694813873186737371660230103628114022411743400460962025053566583176649826813860966996587720276820240425734543738626330321485358811436822241878947653750466994213095434497676091811315829490781542473507482085674648311083877345905298959622734505838153927657346705399553648551269291878708656184364618403963375955689828049172550577045438045093058868546208586864073462473603353344787268092736749759310591102409973569152909160478466974887220070171956790875722957413364958180716838733946415206022388570787788136662774978077579396639677559150287601839123967604040004397807725161864380445278783531796204388764926300916478553681927053623176357679445900502498656831278279195874355470986756361328992784237100502199599449902813126799031335675787547244956554951523453301238794472275707829747744661149462119863222567887162038210662029438958107586983373389069277067406777060328519593251060428788996566588471835308923584063971153863208532766118579246489586624382269445857617979144467392260736846508965132189610365064678464669439438607954853261843149795839090188843491041941396664717554227757787450696436412340345373447751801008444427506670520278709300093375827889750674021647380271880657262743510538043208350613201508651711393246785816070612032305372079620483293362440056680206073459903426581427031382428661644853938565147875699345291922517353395087478694130368645850156053598234668821346378684305130183044527279587297495179732565676870694711910850090629170570660424856097893866461770188165674048253502832110340187860572835138576123408255054032427254760745830459444261500637454615282345830073375260373985907189805786977627213076702453959329629936143967989201653877220168543830937943231808823926796508788466238328819712318342662805811669358548715742485818829450188616868328598071404409169055139721980811510244513451558660196583386734114695310155098809376075005232536019234501145698582072186986387498170994937024153155653230620992764292088406866325786309266851476769944712245302728755796704524459122447131694466223368736827709154684088245214731648357334212740600995878811519255775714540950960435418645059274011830939970509802103867048013273186767338948479081354702749825318999166374176106584341712599267131470768869678030170250007341012990986634069999261297047922883069739529572869243262263236115781851272051600729254899065271972207013762456796162417261235568431285858720489029457299451428781302993420976218458350899566686239914880734973168429850856967877453571957912691800659441662825614477699143216371902170604517396889500365655476812202288033798030178718794074313816091670637948628373504021215217864024627533421830391768973614858778591806487908735729522383256307682957767060574718396994600744503751411134329408941988906220471482709731971409755765089230364322511147836948512420911060565628674086367376443818335373166164086206987463936636469227919743393849486223871234230229687403611349631309669267728192111309640066255814135354526030970641022340141649590177949991053748017001481198379161113622603568259018132784837104298398216312195727933251199380883689176669703173004135179252975641550469319918001745131931703290301594993987359056878548713194154357048627104322352232212052611766880895379989844170936263768037921219529364830612105954801222362571975209503049545569666009817004159847971135788472353422756402288447663153987184515951329557029292765870276311782979161314341693029883619348927832954748666360315388452609573231723815844397664468539364979366324146989556221259732217205342958615481858247314779365201069977201157014677397729202497413093722424124169569801066447201513221301617618771537389577820827636259787193147849786393109699001378509587756140430105189021755685544975606072780381165674368123756330195845950066223671986838807076404587695193651264819859789537289376794314913521411609836555453163101739738644531663228347313130726605377906991059718649214429794910435312738608526594263677519327524228435190374135625722032686617343624320064943081915337438469269966946223364727064755165112223026305409608545516873654943945131173447070500641764414201695091418742346575457366834985638166824029545177277279332672156193733922240703517258775940958780896204477471355429793999832993513070617913327310632350565900885372904646101539279280744865981240718288398845922020792069546335326291110201853893623153619028325227384717592562953943111729883655507688932577807779833902479031217860617232730151964029878851784147868361315547786806224153818844148913203587642697499773952558601866478954367434012387759086522764602227123024240502771098963465836718263525837899546978174082432467351838108520324358800451636965796190448390795501781351974989377118918943499227806938421757388838697318915554543127250569047615847748274894725296359224480577765706035108412977803051626868749949479698280515942738835361601124317316607478866449353922677493785039913818529436068782930316682112397287867339904203011978250346174621231771503978718522428331717694547514782059795716590261936515154807603754648743418934467698700448072327291370277109367988465193593853615486471749123592203827836930628646093068473047929100419578776645174196066362843413216788212585027704659098365531558550485350842936934750286335901602011486059896903636425743358467373937920949140561229374803938577506631097594411599217611674864892715741083768532586386932326699193342277372449143460724635639045292759454875838389608045698944033338028285845679518992900202334317067690042527007557768738010551800608285655642839253074949681396311656890465454557715777439813090020180452644527131051259756761579649613319894361168304338961023230462797410877358918988754637474160074124034216281683317400197645518499028551811089920617039809038150494243415870607512011889175085420808971758838031077700012946792613479000926758027292432585177462026466661581765071024032619479371163645210079537749088607714678459358479238792522647712884510536307443403707504755175589841320517499458840498925640664595179413786789660706444539202292748526743756667266223160270208199275100405343254438925380275520138964735807563019360563466184760984551022863841226669157978921451874323179629219927425656017487183446157600453959137550835389873593372094729490819510086389671741717997770772777237938636518693777341702792837078643771793960482527399807882038661285566984323848001808495252806924187665991221803824824107054560208498939583410454942874774107557996868967567462679217612102094821833462400399708674591310396979569599818107131149517708903656186054901338787605322053089162921347939684709280047520432069024898386549165980982915177265461270663216010665980607246800471064841707083251978872776030031845425342968157084388323591414128678566748009944954512655227856117145270184770285206106192412592046042395045005903701622483109862069151159372345005761381060367247714082278056790405824157276655145931982102111490535737365797621471554056412472747095237364989058244519804199109999066895555347454546833333335995858777204528568921795768826114265234638895431845823927701267114780667410685104362302224304878359293477197760879829807262948220670234138467387141294374899582510346917418057229498783917391477650134577289377029425621043206925616635827197702155859143975565621420380662124857043215098535160432220630895503170272891111952052206724717783110384387513852924826255706408719486617422724954789019645555533038458949051933504574560781469579467969075009319065342235975441101203513741238454729008544580222696291985429283174276578075710202408482524044571285214468727263475301314413266707712192226117406344142927097002852907889516550100686667682607680211840348767585108694480511978248446777453134327022936241896333369268496195335798364030615465177105506946256867269539493561655137333980145431280634636859617086232309955872509730663710169022570026442393402608804766867098056076364487421201237201208690220025041130047679250415693245331245252502832368931389963752968358539463890860640764972238513351172665274943639764868708306767507707273913813013229626749796569470767359128815841848685021871026377284734267171211691523679377511893685674794192323682604018206720297907385834191129137769755894171915874804993436651277156940635232394682163231465659208056687042719486501107369627789688797799882653574381103720978968520379713855803517401274145298002754402373877141573202913020307343535711514237989175843244865310034629283460855299171751336103424899738039187710681453173764585404944673234717912201444102692016881242987681233011247812152430827235836446411769495015727784120587520679577409097367206471422615675703200700195451736454220868621520449215969250560329502349524681602396007364337642259082436242935842708691342902767910590585678801708939554620389927733824962646823652178849181004837489005847520107147967423795866269615826116609006223284627786495069028224674908603625025852811802360721909822514812774335675617774145491508717522318393584550010383432293729650430050107308117891285994188617850647181946785602361788133490958993822511644026855309237567707882343122157231675151903376947190030717226065911810409412912090183522992405163314281547958241757234496427249611404886898504531951651972910570381889413647346534290131680344090027017828690272023330456340543338418276176795086378899266706033495919818988195154660239965162286380908001697801325665954523129454205128413066796377404000144543205217746128220343050652551935154665892084279862130921546211029989381377533995437376691934181899303211889100442664677742993830187449210737201468089980368890210428711778310616655021649624001648495059315530742622030064493550923442424421178998424683398671447342593076592144048758907654945451305913686305202051294836633619778842099063161756212520151996773028001566361510244958082770743879634457936509837423746064425779849630026123364343117090024546002119611736031185065870950916241631332142449676179193392846072605794217299980175688383490833308270547032451925452615606321643452770615839305721310422145721093317477066530740114855105561432459156899493015241245681827183146916916656808006699652768317224077460119943351467367338048099801024642530370146173081772788639594126029920744431350648847032533430819996576030859553108538174441796742595131997011077108078717930308831313129236430476162917925035732757425507649321935626647957851492228254585677939514523606067918694247345983802036688825644035793001825305894376763595351773605008456896010125036978970967675535714762844682478185894673936415274535744881514966693318521912671146146596201831570034942045772559694424335729537916903405490270189347760463247936754721499378451130284086177749298514392848452279553000834824232934121028831443621062881346402520606558384869829207529321453253946305581469493180840135729960971443816760032938603719229668976674374721655597241545457718199215850574249619299629786392289279975147724484260960741240264956387115631367367037083443296083240630129299213933233935817224085354551383074370989354814545375681968078364888016916737137990105418728300903397928636292350593748191334583453807067689532968910974077041793367537395542293105822046317143702751949283526914074394148160293687133339837926150278893252815128709836119352152829564175981018362266367948177777365023941519030862224224487587618782467353009019173245551017097218916360795652943363711629499023857012071006967838128476421266712098762467783826073682718707718649954957066928619104358607927765024044202677455303182551458468426966259250047448522258294449135929773287634701170005530574661015250550537789212514458358933493702366620472074763420419507967014861985317986419313580894323701616071422646372284924734936598394293784591748194619609964385878828265331700326073642553149448669982922354895248921780552783677554621921461359954133612362212505636557668420524018012279331479151396190626833917050469890557600015443273808439618795000325152506588432743899726609890816704384271961253037651171343449229128368133679219029011858366022445911142074845543282217335737288670922481164841548038773771647305740656954885463540734624211574690889929699940515003789073905936213482024498045781667018482235674494287750694639338944481931403646260794285619768449913234168892890221767265773845708218557882545407073906290135723804268165839747317522180156134449141161169542755960936704087222743689789347465715510020668598094149315090941868652336927722306781245320378288451284681688709987285416093899952727021877852281155339924001891127807617295148024989239015617585705632065631977345836547923850824243570861211846583349360494890112708009406304432165111735213357766429315078634403018933810736504687656128618610600890759538616353054633031199363755139136692530864867344961661924120003247617815543987485940262721741435718224201061272274020624508996140910331980824822167724730582992581102968386823019050193437772951533735003027231974897024304167968913086806280687934197416190997464817185246714786818638902816930129926532854933718841595214970321075554459022951975997855847762621077952470886635984714781842377283476001893772417276124025560016713811264466912405684354774923376161387042149179703822812225831175352259746487125420319810158993070199411346885460323921501876662285153357046025161882790928112670853022398082231626687005955326778839045088143549178828537881260641055565233423051598156801116622402274114585918389190536752191138071027620864931071603689546918985779922618195576017737560949324454384680979431096822008430643022382954474346930143124866883750426547358970040388400905217896786963881376594091199119236170447396999484646904839024831522532187317865653776127480686745461150626749694648772458452266522739337475871144373194697448809474237605132293808729864043402023127513278381971963603462629812049157965085439703099345509001168613037335145665204186073152265852758630700844704362171044123281829346045193112910854242705842290575238214144501884022995180954992744062709838763971754083083154923887090100834563779726815266737720827031650182127515774681393841827132156391209041231945354925005460198770168601024276639032993475331975717693515708625829576716525331372715617562540434535134102238736294422916986160102060019800960551297270146332582188731470454709090851909163069971017520249515901412517340751005156498838268279563679835541462262893713628157368477856745518022702783706062079778904038676936122809442797417787100900848570660279516039636450149799715471427577368361790971570683581507771818702171788770161989152073159160228399195146566827561719733429403027649075752897091324744329309871038744382305834375101160527887094746364183072760882563966759714419893387491496411129190550192626967500272718067743766667680394669580059942531130320276804696940732894419781817247199900524636128717290245631148455816788488879762692135135624736705199488910721686835215807492302180002570689654348344109427555496379943747162783994601776696390154195341797079760167733318159560163003179329191935880681879768791962699221284855938073132045303986832698409354906581820504839275068622857385165917554316187782669746403636268194644216746380320218419637998371596857065789163479309241341452134183776560564187865026674570115297852122704402183393470728182149228220233097188090653638284913667758207081001196653840422920313279336993336939906577183845409579516773989149247319592100107770958869927092681827523382295734046290644001388565571773552973714887730570431628007600982559537098036444416865117594082486995830574709222395979799052848189923214446091488570347768701593191092669001272025067155523669514058205011382526417339071406053089514251770615637928918572261654935653337486436300915335661485472785690955609039272388297169202604175762780680848875840585027837453456619985743864723599314518015473769310818697231528641813914679412963836983657420507227436450951002740708224195979073939875167252524964539806359787060165803204049130233841709072007932559444209327426058591195915915256043008943108189938755110918354137073807344584434645057721694575411143192174540099118163189632065493946688611575160881037660882586679989884948606847028325893784560566233408879942146167234306060595714386895781626136155275479723006103226139092062180757466821205920571711848742808482386443509759449183347497515081609291769814058567011587202222239706470305515963114979167351167288652460913041435361672029513548959418303920226436470152969053641634001467843130456982545914588833406868083130626029496647206296500872484379720494485266589342286469534465081726661573015729925851839291608071441001151861988648382859731363012858469641226152136890962002838193983157678482789015212973390635662003660894949928420564465951861831477724034456555244705259098940183044376013371179273501506012684842627633716347325760051699622574479834009598646702607398952285709168596482239898098634991016250121172036959621054818192213198658559270787903819565254920837497762115438275371567946550293022307278182307388649749089799456830002128750072677054463606067050074092218497421274066144031120878487792888319428865269480977919037528446752791324049927483609757967964955720499345900492453377895580315371298665260613949084042468114536516004495895433017191168845617851517465680614009573785619688837455126829595151315764117062903664760529458255662959945816278579684849180764118486318736968411666387069626245614596877169553029979993178429369502409821624091776666438528787943517389836997395806967197451107838146416645907026626781085859823864904468506769698946790822103473131371079317359604245803855618037256259507722665673982542218478852764176048607123596274277315596919547551540541498113655967253331346510011180807702432446134113538662820635746894299087919719957684577350913716606103232574214896869947258163650457742111998578168812149331904673567822900359980658837271880401758005560343072199042094734773773232900262397098107629873663002628378250220279655268925457321617341711181581249063549345422527856443085096441823500441628300216675577066934673349443420280617453499133116222745396395525725640791892099339828891762772327985240636166261924997179259256674829694202359234766896213301823881145956342786242929258331329050565859347185756411643293989880603373372502600785739406931422385818675451105394994400108865109228516905885751847225187628677397219280760932735534825486410707601040039270404573344462706716627760578459406671326439389692320530252874469137106144013177343356616697690051205656062259866120501837425906161982696027378390869043933203649049665254511995210894551582416110945805866657863455076386491381709272284761737808185016108152909756532292860221373663903739621147391146608164325603935332690869835590801732511183661467762552752986361411196362146090427778223299026219797188311560972756408724378604877830565977511497296716653533532716096863991360467029497402689880325785620504941238712334504421482649641996667238383861434636946857109421563257730223885717315552588964322584454863165285647222418913258699065660341289614825358605445483923830240604580408100207198791291654280021588797369289132982448823771072317779603679220144674949853554233514571421727398537839821376207405215179570319654847752726015526081602569629264621916312896475316299823254451788036723126462903979480831935248804025749930247378105892247925355842946149214865119098543269890273203331501994836712041563644230132625683879895444328803073481175475638057170724155606138701280639579058043534706797494272303990684496283466699662741506753905387329900123885430278395867981671551025608281313876040825383203917052515247552541737581221044546701629500188291271412774447976375270568729972883424549716747184417901122054711977493605550279720473475642287330712547974869943420609224248473033098222810024122205017403371648846662472114490407696422866820966258988911578060071814677076545223507258251083877671089755138532768494659464811390900507040738575599863166102687078310558765249734307461055737930801013584232843682088212670701066446121776173460064543550476853528813675423168179464486323604110998978594134955095165540064140101717925747317718599042506610271119152734475886193497677876001144480140328664498662743535666324340453357464757358990567177364050284598395715962860219652474499928482278744858247281134306779847344637385085233686854303300020880001692401029875709256341665788354151469367610673671295538319405742968868314919646195132467328634528658080808999265187255899162134585055628582716866316600310464923511804068848677399852174523657175432775215803586160300294334405077031778586196416608676123522149150351566292701647947570556413832827577702813063952419130679744519344511241271519982782819518594244420061460212647914305716665608265426857064752362334089861645540257252539211166426326957022803616038921301957439875416102387586900715681776332151499484801284294777757722133117562974816896538837069283962656865390759958401021935010404840710182111962489842267440274771874150382667186581875122525045333369804002163622168647738884992209898773586729613525857642880714864305967785449364415283199825856173549413973575045961043646750424806280341931090211588713784402006859715935533945128560938585804842413724690336521680796921336866507494217799959950946963084715371227311045139615285818326459149361084402881566029988176786131559809645667859673825066746705680526914677529887921403943459993850699986497111248795531253108917891140490021172672308521848584290883459884139854303440285510054049221208593203138325099223293436531603495886840607400475160949739232279832743100680743653801614210449985255169346028184156766207545452367515490791537472046097453519701954035813361969328687372934929217617149280241312362587617745459979745779089971968007844270881645712982688087348764793499339097183752620925012286463929600761322579868754396199714752774813025878602633797314445583298216603802682506947006809613394504839434269944945335701533471050566116354366176181383903227370195543145915063918500116826186609415763703794668625530555926435106443999491479917024489548771450821044918787952919263699659039832630849767049280555728769575039084677131694244888025554635979105005679126465504380633693734367109166988611035270228108756949175492034183081194425888585663603485961314347943590776621759368505868373745771201989268035932358475444363670869271019873687644386994719099194512333910749571931875198602524321494415965823578031138174252626416262718701359533998989505563777632384955497772538292134827870616372653104726382760756774930417389353706532985373977787864568170964130748619464151400850405595201090818300135700276076368609997943446641042198896505320913482224550389508091630821204779308386902209064473420588956136139211526755566645221557987683608088936117857194283856828418719072423474611368908184956114017046273076752556779573764455737870377794414396534262132169890262750799180455482543735738671400672606808158754421489946649352490255019077820116424347435594946668482370466273169810757882145152493265045512999671548725469303369502810141799484592417514861736941512721762559312100865395881445533008197835256508603680429770184090591227324285142626719129022823471890633791978507752434914918236147285940739350446799510289114148968559697734976100828124450529655170063227850852324889079050377538941132125501096449450293107417018686016003588795792223408120430501422939090273506763812316425389659440414975249148852453089454979487527659468379970270075178938141248372050772170935594814103819659825155222905335913721339633706653405564182511675915669194236737508018879952855881173806619228358916787748514144442804777393659660770816014929608222194980130386842830722168947892299150174086828490618990409907278700121564769244522962311337066795952157357902127316300949903237062264558475294016077907087003803248382096433668599823577594718013969630914280199951862906564482356800274524408291960722104554838765828130431554995249370312528447209888882918745431567763919820100510650781096607866802660059862124120747349645791001746351370877239853632918397158878569211199648398676051356726238374269743045704846584719935055120007697845460350211044779538233201545460879940211430077535632563901663886097536485675644802090008287480883662719773786870760922975716083582372627729466723855403205387455784695231829058315631313412104348613304729608069556185869251908018771323219038950016146401411737269531583990759024285204640335684962689390643669008714089906268461258732430593593906836634178476427316925987298181858202565550189546236674097288362690218396492528677747118196011442731860491260852584931740338164104701928809678568103677777586765573040305267194614569667249906200619959106372356016873181958248900527200247622337744489622735671033557970574218210724801254713766292465030012840167042401781033193925148198664202372272440261943542537530777342268300239217765252659107402870456962882798398723107065502919289790796624468162523333647765771520353257190981230188126775177967258187238422665704588192129233094113026744390016982181993296059873400245420178766480741919040170465450652997412115741077363029119309566496360854715742670128525153311280970865279681395302802584787798065230615756955267925760460292615416142835407110263460700393557183754667116416492056989865548165584647615064938204971207463612462176836556848988879844431256617350030564959028686742095888821049989506725604571859745408151510490906113208206488546166672328363074542738097170099340439751793410784759635179095659314448495120271965323067689073704990056297714709709875345431682743253884841720809749816947312857231534979581012439753649154816448257729082148942009462276887353770335578458185219294735189408502707961543894405037009217902995423984116832659033814935705512420819779947876446851274778073052368166873843830893485171086020140289654664201043954812465496415862833073869957238097773694970673849784776752778388115521105618355709911011730045307432014878061690845147674165869948835267645118208075335161178750120174240336192797326801008785295059511831317216195385090623729190603751587840216343237729552009492159733712078072073770647681190984228444274819691784250119605518739679320935134053572807675439395001521986656591942408622198865474668732824925533044823401887910550132105691106380461527184045041997945417225796991404745897951864267194642477520854501135761298181846460733586132994472911844242886011654087819195385592895818971183155367923349345257267051448390169869740016637110644136982824583176076857727143128907778612397892186392437943335717001918008387971854380192035068331418665880820214516651701475156345830654109272325344524944867137507548173027214034468190727234190386981959950039347539798361389573093255700962779656594343657420258934675714743200444865348130826718012600499538752048169144768864926077163812467559218231765759417328491574515918215973357634056358293462898611772047656705397969887462572832628222320350149017953379493455462338159002650234830677320971097449354402478204829550522994523079975075235320251409792483573282963717189582785962602653780831409081406829930474767286315946098329882148847643962514173776511939828099688571573279363284956746117031601363645682022401879196531703966664294839093500531714493119008105915097412370740788379764014519880349012038496487227712944792543114958442421300473622245978313185426185883958949308751147624584684413843844555349895065477858337764960906692798943315980249917598634956998982147563882252762134150886124440942848094494749724433216481607474010088602273506253502693692421966460981460872586768912349038400013479260637742254578450839582719085932696143558261957082437945813192322995787724125852349401268670479159923946847048199853303538959813192307677693681507907306125903797357248210541105135470621932781190676381369499910851787437329849409386994258995516230466893206347726888508523577252358720765017770183174001738208687092376764898902898332550012700913129348772687729235877289782004520004171390501157522940229635247722423181716274572080849039392592216551713830779648134008758699389796411035021352681170658937871557415856626399271979051956307041373840772188564696810241198713432210046645737388416238997210901657125929256520813711458626068994919015210118468853494955671445597207173280346021252798885772784745216167403363789078033456435834713109957042395746595809004621890041925832985889101364326487195640396970912173933102446337228100870754488888694504094546999963581700778311690987650681691254950553301134399804254594544338122099519697314153389238598210937311023209471383059136182232013150032690686550469336445145063349079105343792269904357623304391978377143084816422683613593537010666971067641936010278899070876943762349235470266131022912981500534101151513168227547467297387956818792793266381741512594567031414135477705680539564407231100447995122032263144097296793177005800139019930073011884385286407179848468525316465063417577134554819817326610679390404809729663270983191344063108063370666493275425369546128050067598026932618794608822977454501576089324028036454177849917415388042482431238315816559102272164586121750333093046508633170421873845901274041869448904773777372122092651847864738528456961398090735390599315578820834210938675595692277853968467067620633622362952817724356306891779510135014958053314433954375520293363564902014828609136319394667641109013711226801614264952665754799410522863946375862380877798002506181860334359091758772647574435562225055428659561847177150860343307758066917544664821047418386010218583164029820856471405482663100994616960620081302320162163926654419021454925290850640194802876522187338296348324480857135330045545148726333942884670425495045298518998859324612753432405912178052223887123753218407600916548954857632941109371117359507884826539276689063067373005787081914796285320119875110241185363851357886800108921528898940899813226790379812169227173314702386303331707682016129522947443301907103161773768780986224241098587200033107473861130902278808254605756652843670512459684972149822280219614249627761949405310413173516316174120803582866113255755123168131571460450923199996052078637138449757905459935170756491590961972888670720826662900666662919523192958631065590616661062345564885223202209427388578628577354787226729667804816378351222409410248850466861432024424694575575840273997768402222968544621243591834266951510250359489486705501377274989821400157690769403198118666183777692326705599872763093734040555609013553188969911716459162374732157758996062965000469441376740658531197202914675551960399070571301525058204286747334563447928824217569623127712848176242064870578265777916088790434033386294859452549387609259694129717574725837370188992531669195482466243305214695980251051503278252402148742942184020659485811164502855553968215972956606672662351245634441802197242655583799200158052360031466938078880193089809586379344334658003134198834548354477497914836980105853522377801396274411581909989135432162892169036491749514332371328297389070500097618366887378091578990976423537391748434427371809727481281115333389503621555601974885870109083688348203039661324253405845336771841370002017712910435277696106088314517523272387846591229513253584227205965568763529288993048107632345698539335912396523745879754368854062849356147627246804933536904041415127972675161294111623121802940985542292836362096928032889436118973714593095856747561475660148075195873168843517771958408331960473541369951061651487663459135172263767894270387033668732769437118063031715661787127249256588543840416088129593508588026574338567224233656936627191246915115700266131740556496866419469801178863757873065031845055057385311194698973833626062878249752358487077658961372704539935817837420408163242108999102857643298435526276327375724441332098424363182107077450244291662143337369153387761501927200280411062023649383715099238487525064305998218978219750248015545322987874086076100184354481614393447506051262704310989416310138698894094766538136253975252634608771056343978737198592006603627100104600359208778165047503948269059007171666531438803342875461319679141118337952702482413101455223154181761628431216124215744088547117337743542887750868568158168915266863414688981335856799688221960834327971915762541578349608726203447903710842231536490838154888701510664000430884658162934182135416472333309504052220939673560114157042998914014325070769243576313238335071699112865038455255746523351270379213318828760215541877435680881106741578975236079653221820083136483409069756929140524457658478217122143698585398546955745105108346006594485500305130506927030543750366936827774205194771389915106337996023756558923225558483651016410248973539984792411816071524667082473739897875875720912436686572581572910616068854135623319263376647602955102067325350491982476630281694534468522709996743528876832519051509474362373863767405798711075231178739481217983619342557186086880281931656017525164701540952227311134102955547261107059749923593812541682353354408335057889128116750509050717817678109139460983887464698868113558193980167718119771663103240147172252980602359745300330314503743428220539418832463994732989012828244195614758766992699529918283963463035635236545686477119898428667634039116128721490061791021026258962459685832465561523551171608549757203428029744200156633878156693744173357303537516449809157369210732272893849530571099272972316236211367542932727361154583593692085649384874941799144625573221270931951201669450513125284219340877703790311598562550146938593491624368630747942413722474206313324205846814915787424814435813474491944310305856260715405103791258266365316883409823089385776199843640527417772933454111558508772610089858221070395960481937879959211084904494342546335895579206296333712326434638748198812830528344216330079062899884525639957273129188574662435047227775533714837927179893056102496099950213457240118605105982700839483368377232839785696419294637188730162207268576937193663498778477891729802317561882313618421957039973453912909773818721515197336190200077094532088428591437544664867954316131946761837880671570485297297023763117644199413888055814125179881307856274398184030537729448461285651320938402037403138114490225297945026522495635894042867595183089553383558570169698843840724653457620991263788967265728862648472422307308708482758742857588150812268266738139010217456500556888245248006030757414772759372044311777568258695603105187804340172610407099689721758843829955896817014927290930978443394220413097617743528668193667199347869204679302646579898993632938107322655459228710981569517581357131025701829362989385993507487677618520517974379938523148059365211996091180756870439645381253137919792750429338119174320622367194711082298153016761131235380326603922268184650201721994659114038827498069619893226356493012489350694523061373503133778616035899735896156223412602250214211353796305109538516255822038654796576521554934118866996499734045422302563862217478880789592558562589230243659417153481679628599714875263487851009348682455091820222862185172308272711262999601690360966364903250824740580654944047199231420129565350318640513509406828182802759082172518137602816536723508270697025206382274003047321118519384406889605128301130089718878944496270413875114648242100431033403544730317667708717181838011662948284771704141297285454149653657362876368377837212849287611670564020301347698793748376910695581641961300416569933933799608001433216265926940513377386007255330493159721644950262237196158014055089852895971588359765069487761959141603016270474734461672282883200191364693704031220323560354360606319266096296972466303338453302966813954160425830348601186412693306511840047035085472959831190947277851558562768793008687233550896418994156486024069343667841946050828868051532821315511379213913743012972317009235455713159001238122250755245210088441857673965816896925589688950702294706984956724836148067158268418027433970977285650013386113619604926280389185393428281285524192948425027857784643868023742244142124885710815214314568066969280873400882411676435849175590521310211285318385532420378824695770930810453864422720074273104858267699277985362749125171178171819788365448810527903638754036624572857917206481683282260357756691115954959091959148892483588415417143887460048538297973709165175394090553265473243301499918955972029079300614053453295907833313865535105979028221462721159503787486074081824780341754343846124018716203973268154683940005031775504650490650614805675608238264053553246561186426728316330849657302917639993441184523184128641770195212484274254170274764191178421721622627486244081418785596599135605861981440121326015303515777474359660346713512326706801967104199058208707367496548068165647089329794340914096107241822435194524669636682281833948187778829200323575493987807642248704992059568062805363444680842545006076490991775646980024998813971768032333068863515203737931625392109821947545152528080991897286592178611043411524947450771575039159123350332756013127329576671592932138413721661769582460574136416257104826444605257054943442499324847132622419460547901312090308178474563079651239396236574649017916802768817885447536297642421570065609681853275785985785579208907786633234010726480992087282000871931119644811496980437858021499326214100456441441887985032095211939283234387517824898691024137460737697108590274120428979876122073289338856969760420591504464341605509148931849718971912578429803113450844819317543496146118552623319098735244858676799299285286061369165121550797639101237771122955647710547528932965652499415447135140752669838046987353008374795275595379744444471923571113553058649446988797147426383936978645961348043618400192394292115889409961649636735416835247657162642498155711077076911843044950823522807077365780073308744754417449507791747221001406972028983932449028848428289756822637992719728721626389007304002728155329276122428654859141570812773691190241883623508133545701733325115199754439000241068470436054255495332826225191261830424276553108076042980826168172756975818225363526624940931781161436236340397704533767493647180586516286692065087805910923240211367697106911496597948979678048126725300470566312487571315921261255219634215656308123617934294421307889162813937099021238662386700654571163973187958266081232904477720636248541445350396689160334676661233433879776606512772650638671483041743571679335127726737900332921804015524110117499165105865314555927497334211851348288097098510586368101736498620268427503145654626412895632151979124520274893776339060429654495525531619530810394866623717208048777134092234442297345994034496834537937493497288630738341159422946293710845604465326144209588227111324202485645582529644297654042664107730628414658078532615659509858669696432756010598042361776385892876562426205490756740163460337642822391967789816345458864235397640774575780026327847888191713457800424071615869443049591892313543256356333616589592635537408149911425911852885487522915132628778889724759364441552201485083397882528815314208612534079243006245228765582789697581165572172917416762573850916050714697877468410212356203976866486935189549880455724599359895443196594635922998436311931573204926947680215896712699128232318607151368885028332475927630051852112113849103611157165554343128091036229279099821220143741359666675202101196711094089717217649726442304143170351877760834597918805903914220493784007181119658407195153360100923948987615119856171921686688077784583305068107151346136914267734943415974542779403775265934043857049260320079291656030707921817593435036406495387971648440633801139573023062771146315442881023657692477706878070607703622766451962062169135508909694156717170392321536991154428192584269441473421037638847059236976128386601165158843957157845259582774641761519265939009030846465635191536326988060503744180907852336730923760540403964648996466316891023289240821753943815894030012886374214079919885306690915949644274808952803212299121463044818404316471254892706263990653399778614341811907802475650127997979480461044821442783614175361180598851658000248545408490016563731187866217085764247558833577899172165710980799039883993491325829799066025757974475605453703467310774359583558003879714599528206836274320973760578767483065220165627372924843946011061240057313062612661553607542716233294874525931997322700422751008806283281053927457876283136977614306671151548340284414034635261777039940556845216267119378946334635963965414750018375670096348746579935775096311619201620701491680956222912301718592131085221163343390380031873736718100871640650785067710350384755691841078836752799082645186891428223000002386983228831088075187367598593490441242826763995790467534841856539641505507326010929292118413935684252686404771109875344861404340548312220833750643058041172125566945102809405949271907258012696058937992344873218638827050673388943527921347498478345743407903529638117288066287033928340827026988688800751213825697646175760675718948593348479782642636473439066320085023640625528414226157608088971451698616843685100458465107148472944781177558087404041355306307493869277943839731457767710025937072569176741807260128462012042323169397595247708219814424698231408194674178943431516974265098793670124934451794666715036900388940001135144330907819034315452512035099086604166114616728277918318509726741926938553579860630859497941792260234486719438381507255922360775617509085956806305397533846737917209624229628356473589967077136674394353280433811487322584507444131541889473397051149267223545646044065288931006271707598885863891695465438115847617701014943983251476770000416128521680465821671289924180525241663630998225591557345234376063896478825955209132488705205938701477328348586373761048463777583932392510663764140348088982916790106395536539877911635957798115414693084294994013534413270912623052317781423724949670474717014742013267559522659541611682644301008016947136811654699967145223766478191421369458290712708214427280907838476683126914310377776103732738732748116353530315218265490824840248634390356137984689525735218674073166753652310682936967044929363643015298091259773913054214028324855416848348311650546896050204034573218702569515939110841601711986546549115467989367269636839630581852307546565028062484926624737366992529701256827103963946258468773681495822888332657638744543138838958895319185512492365462962458170090851039052443663770532463023096917201111489155394599873566804176396054952362046181844572367093171808335760962400063926953655188438910162843257081622795853569709713887493966924663686151865502499872095755724362320766084863949088294853871992437842997493754394220563795948878545577290904169902167265654992709901881368575097262352906758599277850414621007432663351630752160597768490388408387494904904111327289699702964799952008353090462880348519578276916676828480883979185007025132459948571461920010358701763641522558752340471874218064761321387006368099639453627967097575502055875744104343744426210970380077940208662211354722309845150306493998689266510790137973176242670387392252105591763116112874422844188684533542494241781987895587049066171935345074300957053643187260448223109650332439545820072434172280950624785029163398391600015125938482550785903643668807618093628067286592093301498460935834919203046269108787854793924070289685109495816758970864222787068300730436357991029156783554321611755631953726132156967783738054034611999895363172274018150944053363770253312308703275629885817782066301102427654126952336875504836364874998291830354052632089826127131006256982890857478246982368316252289415416884152495258363842236207285161145696766440236393748760943125671958215905897820218210365243667023538930571972406414644576471230498056331250801424299832457742486913449275112037375392486413222788502676735792713416258453097275310386313601515325451944801631576040900611155982828459221721411281989225336858038524832094589144424119985570569960886193587997810848993762510324100635073055652366818085783841391456584533397389069089282740775933082408302954425481155949791519731064890342892714528702716105836850895155997214336755212489155882035403662119661889686178212210695344308249334512529275911033761786547321798174853742214454942138904279251403767991803504462169565566403933301952112087557046967048691938337819166027785054365492206876932535767868998062266025090053443480254083797059394494280211843320785156615396854540456363816858139618596212821672160886090000058237584298383111907178753104889004387179229106566375263714636902058185545668209744909045388923106391647388199064995336978032334671235636388498423595258940487043072802088777815677417759028500298511184964250412752222672445048170695472488251744162798117653935070595663192442292321320404799600487091761946676030839731617979903797706485227059638110628320572786627689519126512188755581707728883749143948473656932492115144787984628503395694248007190362563436250360342821738797638499211396518154505260739077578459005239508320771428689296878804835787846617883397018029395450683576019655218744784561402189254472315871482198722517112234146405879201277824959624579895091967719336670244709934583459295706028469794333916191213284922769536781553239613886389955432963349068656235886672708359044187087124003737137445069526837511695283263710919061697828012628094280471378035566821621238609912451754286364808969459465986889925653967043611691564551073332107831164768730049927047916836902302160579070886327701678623254279507777028466511268830662747399109341516259205146354207835310205934951668719173929370636266851788406496311285721256167356496565829165418725780425884872797714043988232694668143053148976973063976189454668905709463450036175174997923209227953379776803958300072042510438538793631069638672803456675897145083975318265232189301975712756517696898129652363253500762356610450111923746681263296368703319033266178906251782518248874028256488622001560553692309996790884114500428816121388588225958811708533190853262534794850497695245096691655597321630820089774184357767503569477664509377994141957769944446652847516971453019562803060935983167945154139922685570322850026619815696336717911162175736764588289248120082838514953394327478851825395644939607387813829097774197527700306250974713354517999253648341900084762090828820168585353433315943964273883855834011587651833686970595407158867966949564673743733680762054048110597563550033993368749271493208851043139845926930231600276147036688775958168867872989557462755518579876547530508916301416049273528126836008716698643751862444155003040295911555652916692617018180502835795667148584623801240482246809028243060182707727838137550047418608505574368928234010392440908086954831324601780361646469847461723934590505639045527014107380465595472090871802306737130283969489782334501053157169479708763827018561126577138233418298437240831963724692803514484804543271138688656295682073847120998462756135371701298680305015050962999808674911339922853928272298144086467971288862178106244108578661017809177926788793551870464096209862205612957063848836945677831984033282125651868516040165450379256135910532187028800626870482260481346202364129169468228957762754080409161750602064938741311432695378559581758263971205720023574049168705097289721077241275944852693845853227972603789368311110366585304956990513983750879722804423096359911323201740493270556560028077308728695036257670525835889009353209588394865256296703457941290072367682783507959302052955444970499658670500260503664956685729294833253018886423352292353344277612528846165197520744300593570084463715607888096249182539940383851390549936588805537105945896836567817279160660341315379588472070909741569185787435895234868983361711118648186818024969873523757194984880713754255988073215636132301152264123188396823716191238509276169524296446625949985530616279080241537626587524500514115388092393232436249168194441358108966802160184707660562075842616934800758983272043242858128377861655052781504090434081079405995719007925181720635467255349835615760031179704967583856598813450101273648845904348998913432351467200273012737404272267187380585975459722572681450702649456448399996679617883202164986111958995385863842469932822396514014092585176092125635465151648377195885007042357550078141055513411204812100609798009523184338933983699122473771590579055340504548424779918799922047784275227308602279612536717122352169521864121673587476039619920200891623724977522590616891678467006024851567026601350666062697921914475134613691910369044035959168027412495601762162295239932419150666654636842869696776516701733170102761916603820929735508770123702925879573944423408903995395956147570044613228531345084841832272852049057565707628204865785130517960834217466095823079686408963640180895042413145505529827783190791173163847775561512197499892332215020835166776373816222153768339015758478081446757842133096102296356971751596298813935442510644264127586651734744895033950736401256292979370556338719053415220196368485192063810137619420678693617542364688189053086984087343670020874611568865749153482241589418967007134894389143817971286023206050338890384197433489616504992815821286894652816056000797474055017251950529553762594674884006514743608736865659740455902477628838866293145837369277233075573291737880521390664910380472555501858393684608112109281912962758350909060594264059081342028257682091063313225294244936723101279796305985960335022876418960497231035005469145263374024068462477622132656880592748730991235706686177437761447688670090333831689566306777680255123279548223901505413778849069783821033817747258750388226639283645907313634510926908905467160993428010895477394857474625153855308847024570043899078115920594081946297145111188975350878992337640409412584731738917371293954401860767583280294674891967437209594356628643101959415186064626973713502283657702437205920403218063617239992157512931306536428996956737812127725702036631297121617475641753642615262761921962942683822664651505460266576153117521907839546489651102169740695567428033362338081576522778731769509055708911637992561196943303205502298311043899544665302259052487066359104385719186168961531286332619762379113915067503911666183321236943381690652572116913491237393462324734255309758440803246610803718367801003865898711998371051883657698114383485051959603085298535743215285590932107486397664564380193301182312870442890743715485504667997260449660408786365421236467998219995271279565389517239741091826579933589548476224741806386357884296363580950005886906539843686343930087923895873296663882242159228480219869308015158411094869151373443319366972448160672549966711508200905197225465981575596802327179222727930519769671873838321686810884732850765330511899276166094212289697995220117518325316857845122406652101312584652330371906096720221963422072362846210603470946688760849585223321580476312977907337280719735032152527753845256114175808984727997665968622229153549933273808950930124421728539234765587842809781341807179933363711434037816772208005654631867576345400759835525661219105150307580961351552621862602712077715683354259782323061752837392297081427186220158748594035107150197219830559739386493591357552016252039398667110088049159475664609883662062039957078571649409741016873804048779438017057914797004867225198242754749858307787804352443553619749801973182004709195587319896528893979604512108083086123428963734674793216207712859204641013149620582728829270899879375088008661328727683963951209864707568042512707065841335218373866967847313033165125361594711765168585492544170039402704311813142579057191598862282656189350341985363431913138462749619732423051378558630359837583434058680197133749902780371191386482956314928199994551296991615550044755569248350200865322270223161619029220144777398821218395401547830080397403170526025952461409258226664827720232368920428764350819381238743893666307466272185877677134961616007401679929775863909047078275319425030745295734652933980766481280484047343904938183551301375386285561279452011248746542804419844374293439839087560886510292995893109068474360722828544011029795423274930219286544632502115041691306358653197057883628910593300045515025408517795828344526042835793085425026558972102536027674666338714875960890660497077421150361531193001511633445055461386149728093155126030005848600767938322155288097729510901981901609082817651136181127961131159930198310226395972692119049807932659984407441173452232870961014498513176266738326679556683512653162238534878350934725304600407841880057101869475168020201377007747131357938334906893815630005804898764370408868743625033221361508466114802455759418196086377293683468043807056951740116574865534699078333513428042972907353960964251877292609952050624991735096356115984801241101747455828701196862414399384978633286529136798354421306964086667572392654878385816542169945547888250215280239394387764878196711798295576957568373175354372896911841935172947116044391228295114364795056933571621996165469730364490574947974670907920368721187292151279058361202190752239004074504034644325805305667747530398691812676047153533991145545745490084859516791604229263578804551948512459872858296764047326150282935092083972347566570793974062069080845727919792918900947199286232337317925850667099973111075897922065914290013329816348347873298771523161060875388291194640519443406747570422955262813369250594389578727928393918795481061387962901454782914392004128463358057111019850100059323163185131531908918072958448762903918211166113948151597237951856415899438152157772954871808541714865057306504352962938794529608370739448020381097850181862019870571050619490503487209160316341508222803025751765614158989537080133245529352412181240553760824054117295454083211627713134116037371243761895927831994585792212177093724857483427731118455041792799548671545169212719449693635448550181678080836604812295437193477989087498736007116200013457239145885553002535629894931192084888830984591730812990868360200751580449449914583078393773167010103991661020531302514072304851959549724950101338406371777044847270598818062574324650542817513029435261406715163791545743621132186490409292467699310275678013219753817622445387936141755675118307130509579076572067556610635141257992591626269184252772635921931007748558525821393025585325422897434571073702097909438495348175161250085235023549430186954708261993728976975217029840556953040541086207867543781712154204866788133994952492655699696723204542011042719736429744602602388058314122007572000617175754798666977089924572631152751464681892589935451589449386969271828217830344622411280738305726955940102434936535392336477392446188299502346268765723972038291430654430928509992031589289411015176406807686743476596794013518207823446065701449455831481708145145479066835389753770642748054403000401443163632368844477927165026799806470101334146241905995517118822822816918283515574559127180776985666593944173643912808497229175028507826549644430229772267118540272336152164047443118333985606471432793140988053175481156467622412974512991132920958292387883257891612322518122233302343562853606962950105068079433890847413812964829826653647303281647075564723760409298327589441194207133547560727733898537106183926981138957823060037870436375495570740320074942559657001579164786649144373492657103620676052737026464023233618910167351832936562141697375691435196028821990335673182332005794280763742219839244611671670765369502288506226132044809829984713633824686617972496175853041997226595998376425693022134979135676254594168404471284808819295705121991361875265873412986907784168590685049814668967485827845005693898950979316770079565606862411589192832014189492607471410547909692980993262989113761603292443710068409009747807127254643412158126148159766285020159654073112873451335747217761418693315955842734868289891538831612166167838712537317189305239732094223668536286262067784108310209014067169708530536980326969685228346852067880906031987143111581258492995598459654999611170864129193024988551257075964123710709708429877407728218037528241264887946537073319732361597791768415769459084390491532767172207211519938104415620414534091125917108543121579072493504049857769519759584808897345984622380967987866940293587254420633140568549590337429403961093342781864310101105084206950271326220420309972935489306703186879279033298419744595536582754298635957650782036934861105958952490581719844066339532077060392695822014005107338969304431499123811129221495523660824790195906849168071545003800305565836243792268119382673955614901095512210171959788312815977510963446398783441145554571503540250459461247786814410962504836879402110742705138960382336854863248171850249923448729789641367806770416291190500565723640467278979218177914225401118297343413180168417531119062571883016717709695165264058401233648997853861635455857657441151430695893255170149482933009491844620785839342369170104190880391813640028482827239787951391255729561846126053742466692380110491000451224886000813852129392293813337143441018984221725160264282129356735320445329633324113925373077454607982232301622998846576331493031925526070094002562765622711160373947793943758899695547532784767734832440921909027184879218063034822913747475951950535397048215930410487470298125602384980891640792932975201238046407443324692368438934074780705768291094032057537643098780855910243322627261053862869250696941682316631588259455771107953595547656051689712307988700533501096261470101573970546789474464304986382677793025644648517363119147107185928753367620240261808510873747119855039582802866757138619099722805405961593545920331667352574319805543424734075034598490859915084123557700221517446634402651164171582074278023935363670615736400373354734063327507575338534943872971472312628776676886740882659269430137961597956774151466234000701304103414982179113966696557271220094562239007707383317383436718692845159394014078023065569584364748683876923353551058606159084115594943768793360684003865886434427266629865083285701901737263617749641243371511305019175142370920272237445047494053403735303647971350498629631247930649264370985664244074131684754063298096347880311633396650832757952468642097759870339713256231801617509869842727025534685408826131753635473465676350829970526821420208218173598992598942771625326131030788642918381369914189839738405349643758956773744081157774394015604488139963481595126193543282686674182901908787593629442573777408046073031569231484689456129984481723367909217309810248470958216383406011403263215717698822515594452520140116096486101300857097654897953165360602913647898157785381616616176105649521959575872147733669233962082083388520569716784867764802472415725302662394173608577680852814423431841590375340595826369159838598136719980749195382082522673742521228251872340610713464016259833302115930489743780269858699466861151669885302621547462808842761983772505760108619319544875945528748087414269006811830132133149665342226167114955868839360364252189621998545559044499556496813508792136095234516359281959133256984117410012711269329577086320121431876739405181153362010591184872744696124140072731362664436992511826977524946465258871275071463969364070776193425658676170587252512864274815965707344443877881690536353195332304581942815580408170785700831994097235762798462691109260091250958483865465300496025600286536973550651125215895692122957814174511141808091106274661897016662887208711784688645574352681168626912047904707147995207287845750058119650747044929791591045156613492708097724351642502630938019600923433724985044491839714833117572171014661463340823321220508868565580316244687488961584411713324241978783390945357414676336555317565657917319092431050073965588865147207546359508945969467850216777810310590008680655719083868156144420016729608571381199599119702291485877714826252374403180018242607256500196320545666462358323845732184550963380670794415997326380952936973787061269242951672435371781712460672634123403242778816691348812565166972430973295346642819293274468511538680081965390859868378975675789884040479965175096148164325233099968437537162822022271964380137595202651921194468139650389837909814900736424668158625311263945410173696045331319657581990301599045360311700009201672904556066307557881998965448877768942023822893275675974026112055307502125418065862138313042966587267474695550686046172874356833826748665733401140910936334701635132074597839760296687022777313866332118866754678578359960705713319077444501730884394309911242148333699222904459057976034446710528974479368965982452324714374817653287367527452707033479651002592056822772187496561583225466184053387273608497845035148216249175720334689574019736774229061157094917914575242748469113951427002561798507606167354317639836838008596285092651661622977302082823175443335329871804081793691337023845136779093016272299366486240107889999815500089554842749144758118387766925307143973357050901817358242771595780780071757956962866210281574919207399850849127388410843409540741742538783298397588725830056391853392480868840972714503052312398775934335002838317269598477388059008920188344412080040807278428586623374569616047063475595393244025810395859951378771489808774404293774500747649450235611643356092098296601976471601559094326793053784794457207078471692972320145451279942309574561988393445151616204358020532340835165037194151726565778588722184180233148097414553034139787034390905637939392893406535414838095422021899948070085864559989251143253060457011398155665934762871680848964297840863968190027698339384940036621938772619962006118393442854064710497796262322412584011082132211575421180753018219808179773396999499308832662758196280875443519191617963712058831873493918860094915700839611908207263174971908280868872457343911712207020692726645883114131905263879720113215397707390844153574442683327814422889531925291315820224122140315141538195628336326304791409019124363299549233526169728722256325330103724325503043177142373505354825475494761620111414869717460439916566918939148259305720349252899032904988384770619525872729638261790026197008048290179143149948992661070880920008521331310188364287611884320865154786996460682302121124660315771595045440565869810127264913508468503777139987155436565660839377449462949805094977793880141677219013707504628307875074814100920880580302106634143072266459073129626064154383321903250118213721978715960376191911096980203278305558843032975719268277293195780542702598772743906097403179668102988151536153988322056269211779245184701567968986425936679546036927895541656668091266607472198339270065777798227267234523656469599532589855367847356116328385187142592020412139523519094432437551461785519747013919534859412861507933206327512922390476782686295039003391763076043107735902322843728991369729908151304266908843934490909678189633634784338782698670084400366555976160561347462675953973404038360065802850621758138688906212089262421135827302579901252159210115336704193172412203229702110777298622893245490156014823448884773607805243231505015317170196775241757247172832341278839764803911652988920693185105798575366794045407842578057264683909846135043570304680691574870849135279279263108517977580658415672709801915697247158217434402102748340126425676830761690180897356307568297206352204065692475175130225768492563858998045347952571745775065622464013498628554248161794524381690123028333144417465192405461555618212932707751561905450718801003189447012874779775652500195929466521444602669053212663901085827334676997862647758087019745852987289965439192196225720275010601846646295023716444610294998883513655898652811830161401331369510178855209519159817512046341933915869175475980186033280491330585738726840302159055687962439709483130659718644584893822515172052948153323328848309971809110780181235404911522457200758778823166581282105590722891705852388530808360991492491836876004185741863824717963710486169459490783933512979536974949924703088928221752740761358524192486173141936656497144509995619882080303402868330075089704022175031337492558664107740501754247134146414882919972036916515805527817265744407630737851171743741934118195182430639683938483300830695932743191074621848619325424744143879190364570462357354016375664512426417090076820659104796076051820508374862994236707013238703155791487725268274289536743602929429758021791438361779391847087896430924244109337320254580314579954749412798503214488352291704134533884180975873640109124799081316607411245957792104299415869221321947172480480424025849796902335178843812721435606484712826048587799798581827291887409364870238284518340231582191470490030177505730680459228657501274561284423916981978495687169255301835382202389972824970704039012303240885195029754289476080644537969147742402467847541280268371423999900132298278763845349546786601372587576532566282274503944544938270415887653933175595602512532397714780079331374355492765682370567570090268723692867773875271356713178550278856801410484431569715393756034655515011942648807008629001755508915571751605207480342486015984677245408341631288849468066127226756408826835576888571816207315951864499269046288779809799005367414974429889867184280955979262334495552856933568692159955713544830622508238864044183292606515754537025916863028841410713741845026626487857793751887839798555559712442970175353416609584081540150498568391090518626072275167110923322931718428295846225687675510249513786516103373045790987077728961260884719780785852927125986316329468789003402132221820259424408206573495520242076772448126465501281113180688947876825880853845825830856932689342081030711148689674494451915368426680206241768603999284871107531499228223740301629223925203472611528892936983815285543069527854031053338263627133375481678915778726062857646800307664325596742198418184989488333395837051390600472641285077386946772901827719620681315230962365873869728357608747690243869772904277027717987440567673003996369176229562330827950945565195029945989786298563410774368563116361387823937414503923195494578235480110361471680360547143481689244901119312308600599134886325231362991497747227461332870490994571191269182591916935091305353661690315217126717794926680075725487657341607926751206510045027141004072247010667596897122151867541166747078349571405138466853214953227462264776120124844448749690226828271888307330402040742113562341844079896945671959761050836232157642412995559488628105648273533502062518148681688132415320665166329352426489091232900429410066571694534788008422576580561685024478100786647288488636306140446257976930504807490430364104099795293674157292921239471432847825538196504697547367887949108268258113215390767746018882379923242081251983836616199937919943137349438413206536918138357905489846788225509792749442400558594973457283181048830346218795229472568731640284285157510942862207672002725757107947678590955107788966494757751998263450450995927933633093237045264265101284366367200332737573791378191795326750075680863294093919817422462765385341088027976031495737435607727956693384690181225705557681125392653167353155117219510251094528218902908874957511162322396653256250422829578814000173239293395872713406112762928158708492311188031328597905705626190885906308075678012817900499616392735629183391904849948868811445838496127657530522758763740528338964219909272126734860881529630827001975505103045193961370210061324916096350859551415487937463636951388929978012708887228495631984277894052310455902224633811392988482882136905848497213568276587671236465941090481784605163631217212801797738346184826466294232724731552345042863798035809866815542543911549291676859500698486797547849823223303579520799685946686480185758679535141044117846721610529177155097563702493611741585872816651759356578847964120558000174868544083645273310773906774120781126366695940485005872464918876204464194982472245330091902614871594970318096674980235991805334863053790264749904617742905199859200275606509545631751781428954446333646797094997171366777436382106771143487310665604891136889587832453477527410624074096226097080866503339019780930490595604851551843390662401539065885606967776665212095465288053966075326907667366303661610503484358515659384595541335209870047559099197669856446058673842380824834440011971072211268941507087914380376372391989673339745931775717268203995842094537590348947917841981879793852979472315997065496273601699569175862024086670153741760488530877550001286718388758297153366783749644709892786150018238330556937759205037845275800061554325959244184103341073935125991109754109855887190602251553389961791548496455517280075764302881843737599633359426462175866197861188439247796843976436010691316910325927068088387797643034614223023768373276424763623895473553300170653579304984935027412187260719695309162748909728331486850721219260246461897078425704111629717559659994361229950996192878762877731609436848066043443171480222629635891498576512132306650540165822434557720188774554491067399978669233879158196124169174500558634603228527169210963784564316235286226529183079840560837021080810405767030937956744826691648697041058679517870090545918104175150952705252505942808970855747762167976806624266231360926363491625559545024854437407722926919228710669162214554482981210578076783477708370721822587844370475902637802069312264404315301679871147696525201402480168831367725396452788116487183055277867273814178530222910241118860099208932301182396013707959165925343941799237331798180306317597144848925144570305876142199365350845187291381311484177060032030490056469289990449334056856923050135694665924766383467360833640595039252393795203658749547301900519044327866529678896409836740070052055479091061372562237872184112369229637436017533487062551163373257462734529317823677231451400075448073968401977381773306611572071563650699609297445272368451686935723530154397950548626801676367169586239085621476924704665357767586269284669330779955075807484046949994393932202307017973108846703005121972863285453845633639911475548842385835076437452866101758299751785192688583554180812476095062907295538889625299369787730707255236773510375504737608160113838759849012085284981460388865356567839186514438731281955874187559538076481539889451240542893964847751828055751170809701610609384844498852415388862027085899691029854621460117754226253109274803217955998807367916881567331130967316914075424150238096449728798533982888789485843703993601722982274176109682191740812222115617630535681600302947939465929548098237679894585853004230755248009146352557030751832890270923264339423440111526654197150409799333903949334906774088271937551259609919465490772992898932248144712832569000621980023076907130832453937052367291918456254708922745439597496126922995942779598756738052437382210670392127472939222157555869517523811886665057871080800250683066192392825747083230084065495095426913264019462201597020300364597736237502241196455311533059910152499357498564625782624988804550864428557119212715761219915143565927529126091880855863515627210021781882400408798847786709124210990926034614060055790921383638978030635610643246989398148944318307489069635126975685706260057637892792682833467258293853322009142497609332147167216720033032666210996996209246275089254026220273666577733603396403603415461412309468194075371141246018790352104024868371140125896925611269765185775327262585764586626352707687891245464762239835243772724640173229559989307007267424610474229635285042167956958830555731649450701462548417753841874536958840955585031153835981951638283901503185745740269720883255292226987225765645330792562413627069470134340512177197417332661170219252798888212885388128498096188319178031673747501961960404917469544647205776694948406969384257770347207242560226064871668709705134449067824592044068056888621624704288657684626996188742122291692261447643726387437119632488944869431305040143110500392407301192712246696865127310638886842444330348619718116865579408717038531988952180146178058866816089010515966953581742927037203621197705629562504788089052491721332102980717436029772177319291466340701169098288693945110444745458680766395335726936908417818182122318084300304877539333683301198920472992142301777481344837890016626407731800433722177803023937184266583304578544276335625977120400759522246671046913188249301156634338656920082125684137011611446706930642544804356998355305134671232067157098051866349894301631147916265609681388887490346880700208764619983984608850252850602227342229733997797083292402578539609310581463335400425417469129729160769398394967421819234873236615772199672385978552502332838355010018936085651666683304379513389110198593564925158800793098539163301183774771637798781795379128369640147519317909720651954039192084993986628585527814871976728241573104037149949062307849008272599525668986720829332526156526536390048452055755073018849514951471406628390335204300099104720907574784311407507189209806586213284939939330747367509874700689347058822526262994647622671139189727082516756876750617672448034371703342955285821091076995962613682564093523173311025598559484457918996898508950741628393534452015685347550157604844478495150917795904103248505886061210341810953240620152725657471904428537271960073151215616085507169067420821677655342022801824661684890793508517938865822819035996717014048849249121804898398956124605771888019698577894679140032091933913602270425246120227211850554943136356534190625621787697214983010429780912267707553107868653145953265325186564649733923623714550592034652780357180594900616717476242445500289994807494273255371707652511164131135129275387017086814149811585939996427501198383491743376847978315815211490097290767523953542303794254789317126192775472141560323328283053968951276135838280340221324298921270567713663540311336197172083918009696427141545764964346015400868689898293236618081364262984586695010287884996819711851701007707583549353652144097623068956640002546680499645436208413022636958449188030878998111741431575623315191470344855536638511398618003260331872191348299290126181241869824976631513210243275176578922047230933755690438244466555246812306912253317796768923281289658116588799381937460859230344285078202890494524280272849892604288213538153147529977988623278008534198156621725737534871654878049034712027489642656638137797283989402079388515261180250658790299472568382769119418499469454621417486913534788236258883221703043710357721671287104535815631324206990845971385371554356615040084048904154137855592238468668706698211342499381699825339430690679157815930659985033967632327347249119150950556929819924354384235957751364745257065948303899442190541154677921640418110839091608718085808849100368538141587503244621954384421873845710604982188987718508959759853624947454485760369912834371824961189254299466101046833373872450417646461209130735490673181902349326634032620623129994450198900301322075433656696185205107729699354267836395512887351831650433302964042257972357458058711237178795008506082058839726561181493842363967629148035553030472958859651186682558806810279825345339694900347054596705598220052357265071823766807382737287547871452049165994941755051552016980999612563674025356367765465115575910708185902109859120039456393260376257174270428985957403264114780830393553038752289855473451392457755037396684800962578329054149366412872747345308332263126047792385785489849073651133414609774135507982838431985461714412503590475305140373945568162686216054500971953947212197637369102510197490007097909821507731009244697009234710404937130113912549132934424951796958193123843542885554133518049108271235764395615856103654354240733902160013300673615395513911372395019767571136288488702401102359096522792098676229958863178342067545347841114932321659690439106985788466436248683485122627651889066308746074111716445220371753570268084751929203645803445332194506801096094928935885473925547736693622332393745779173370228050818580340115606443448681725278882574842109440746221285298688519826522363283572832890590917627061289667527485106234512433100623670003314766719453171973612264753399111423751135338116823666744732198291936687829931161430527354379496886211915366537709408354385018106456424413938789466833942259300388065042315074694271328009183348384795847883552769997092897877467337137665450989615799136078111281271963439873877340167573437666190398238871823895243407480166673424503763142795577642180955196843188202311862075226811398670200851546451814241793958477229816536527273528852587987356344172214994223268182579478470456131865557107211143578986294170738428056791002010624376089480460759495652061408842107103656882730718295325801793494111961056468024331452216171285413711345966638423476586276648336477165154925095471384763200410551832024734911308249597373618410997619790457612019775408237708087753141245542442659556201511748724441497016840386657294302492459971784599930721109267478716572982382446113858436589358853183487268301123084125272838525659697672225020615521203116936378073587111079901373651694572524041131441399774367744061799654447977975860335651345026710191188369771025594775846874925681226751739358153824238823517107392235811618497970721732390306311585077017457545845882260248821500875143757434462567358937390442889487545325293357238360752828958773981188871724050749995389205808919180342592127313098533022399823270274355915561122805090192955941073404931622292927260404751870334548599701465620506872037581419601765181345805714167654864220070195488506858773832400426351784864997555787435431212013583558951462861234698681979685257833040924033208214641369793744881976045423114992723836022145424545741500663945154481688203628784249019892917400034605999809682557902885472450398010306855002933054500912267050541756146267219996087516022011914102167691015888816680044630638157597234084774763005668277072646107035160154855645006641720472861417888522930814298579130585221359670897396217140847857953385529803375263514384809416574992837133145505578630910304702156909381593414274592536755077444630291070169145553076103915411392241607231733865085386088049553108322024578055230226400827786224547975745921326114629512656741237745656809369916750222509803539213677311686088497554876353180487910948092960665702573213249341014078541168887849529299187895283852575359313613068107818807313970789256277043109299439029757902565666345037603620350689559488105280127728352934308687885821319249175369770940919558284029189113054288556404357650021545734448527061745053613697475540337320449307814848961342025287205101481312193537995811464819457284705204191373706222867101100608079899772962701358444792918545577622520425933737201457762890539509093777119677736274904282204960153787450176859500544909589486042462926320820383157515831543368969806051135736830354512123429260788036608728959862919434256992749361026689321989247504431860160990200698442521867603498575067638163332452614520373235432141540974880177011767811067366272850544668902995521776805812048411414848447730028379246614105923360174037344942352910333194205481341517326405333601451014279259351155433440916439360891447308618553220449449002512675411633518578802430094702445811693565772609215434223461472269505545238068723115263116248382049177416199290066612292913764392523689765705588785312857390183536132328764976672273389235949096237688363074317706086595597880303650986739249580816402413337593211893498660723886286086121677910589364227674021476128257794685711552880378426286473612030204768623831566552601480154932673092904873629566789487844144926181182603610586777577909751169787595428465353523215053441418144514540664797190117649776585337179174270877646515929475214328174044293099312989802782633356792018840446006746885363874510520976269596728035467105178719264361632712046959700242494071117546567898831385004029886598369412017484793752544229816837900677432111895766315820930488930356829471330478908403922783802542980350488908739056620720322383250823413120954613337560035591879972100414071805215075399109462963125913163301954022343249373644922407891279406412001858582778401906104513472233559532589518980448346948243826251880973799662524907275159054962452016307060844975711234901078950211571571167376610373408297689433361301565835968392245387358758190786521344013197316260371746669723225357604710595337711201324098499476903518471450114532680404746642979401312981699841557382510235408078553578471084019362417915654844712939165486116066273013422759340673784004046422839990505394566584559709679083750250761631530744743780499827785371565703332558450435923575309940572525121337313687259993832135890553658079242475998958602530371329986217132733963567150685704020988995182047506769041584382149174985372607279162628282249322344041515022686661449529572641017523658404637792493421207712950628465858541662648863323674283430127490533146140188750472103228671724471926241486769550434183781003558837989487235651624972571533525867634643019621884471214067866141683523105696200731484906552960932536095744956555296774542962200583959075280911605947367562996428038962784658841547457227438570421338910676547861668119507599979403953709408188570354246952869730382638759340065054541923249402308306195725495418526345209965794940767642483485535349138599783262417828456170104655349571025876559847499119999426287805761441164835354510865896410858437276551233602546975319218191549711423329671537520949382436082597026907629957059810634356367214920166290048004241062493044419014715248650269362921570672203581092078213157998257737902194660991888659535145547452377876132792931917357438770529584271390112576952235559948856107929105415153487960703412552684659136639811524824766460593169519441418372105968828841464992408445011124572654435315041223624724790385549994901776972728344191080069383390090890798452874323127011402511898702879480133337380453971809409550425682070643346196607774650286588802339898554417412024664008947184971843197692766926273705187896106797016227776320742435919348602003097664476639574379078496915277226407799435116319813987064433602519410200880388384752744205095381727902435932218745549557388681520194817201086707398106402392965483284122100848320952774152075676585161366351997737506572537319653796613794524043667539262067223135325267932277714986938092305351579181936184341196483079310285713952837699271417660749286025674753323940334812910352231621525211501734359143177073590271994233100786860517498627411066596064741290781829274061525338566368953470677326354911098095326798297888667078537112150786034581150966408614326395529780775035576978187143806373424718644970147472595551527526018929051978428724127120702734558527449752980856506176742040372769367925807239345225642157129123896692357324482156045898458287298094196281068840310291972231851128548624389002958669636627912033981745371686784051462973371934517613845821492238456451458582242874818892431667995015559250695850542062660435919131129135478460578696459044377705318181727241280255078249101595560694935366138720308403206205583011022664541168008316435739098354473181193804175720869823696416968005118085288597054638392302650202285095149126202990436070641667580902225942161638609580519609573132412420418107137343624142499795839970752984785801865403973948105142542516189235617090951789095239881791790469016055138373927758396271111689236080696873366081988545061299687771880562668881335047542609610682415685354908445567076858592729673980769808792527352143262552353604526980837828973972994889596497026297336505036815365102165560797497152335553292566988746387140186721864080767235247046970238213789373041442182482834349758420098741237794424058887246459106766282010439109872293152056605574320032628264064039072815820065350219311019376271061552131116701024009469218492935204129209472546314424636294222506474961874543488514471186346263534223312008717766476621731291638449155611044774363617378098212612769693044250320687895152285263549976972166241414876130217643317450316176143148359402386614658875650157098620236585687595302859609075575472683716043578512611774906350303832150574151690068196682984645854498746890022345242854246321088649964668121171314765051652120739016128183250914454540536103043220006469999005530605635691092360432337616904419596270033843340488273122949001158776078458222076959391778874849252825078647353483965541660599591919461437879527035030942903527478731706609078940806661070943690688883780881298922095428527913951278215485369316397270129899489931603736051647469469105434390253185002085901226208745071172201227633697663852899702649938712222097042859001096571191438591955286899230585038821611331012212775947447209862586415783415181874459196991327758190097696676062834970464458026186363950542497105382465853185449582864545233732750808841852267039080923535932236196134032797177419966167362090858137368059748879279993806028867642475539734393057332841101016699718267021509734997542345220161017706893653504689895597145013237140468517848159980350316489077155085364388481791546882733040431173701802782556525815775014565163422185648629840890665348840518129559143625768836976689932939649078846030201613082986064217818274637502676549251139394190908661960197067297371271415676318859984639461084473899388797030513927769342022890503367837600754147020412569919604312725159162560092573974428230579792563234323316027791856939455332863024168284417401163372552485356230749646752465635365991198594027407204685782812296829492711526316417023817253449907428902114457434745897521114754915466308654958609923814185176399397445696706208427644843336500249483365653547249332126462839793904147110851176078597082625156122064132173474343270474606497923040948738866763932294396116507502791963811956121386406483938535017581562578181985641256640620184375936189160892114966379321797691454729354898118022034212193686426648337185063990586813156808126897727246849923660326296380528541819844571137948277289254015666353860820707553771536395596819513817968619779065744496276502432888670670024785615049912078939716148960011184883197776155094731514360295189921143237977185163680716489710161697190329899623761621326653395082351686453158057552272421458573890303605710882882101430616950384266338857583518213369718770446372937087656178451270556854606834505383123502283915034632905131956354485834027695280764286583188541184790904367425701235045993137600010241189014101015942314313170481816637852416433352429467069963834689762433332413474046636008501329998474005780541725145305609745311781142893138463713919581267238537484361556506107078672921027669809356434612618222038114977219062508256692071187350855667511434141709522554943532002064657469643482698871898779429766112247940027580540269761387290561685026319515427794420651953858745486164886877047243967275442441468300785388312416647078924323858048188769455683508006645004471071471520574626298683178957603058142225699983825033829360198018149263054280878023384724035434776973201547915750462743782478226500294898077357049525370894843583119312285675861966787417416325443851192965307091482479224157000655645387227240175639517428020218336281903335858089346661219677522547049837783641280619719826446361406520057972072259966702023260113368348066999998178169146728428791470213091214908525711744326925754678963262251692916880758493652735842703845274329502497501462797642760085792864256925256004046510600604474825957835198968026973754591544673660519841324106299943245121647016005315830946655220644547799391598957324591356660745778073346273243618309300611402846838536836989587038675228373296925756349127737609623057163432507297644641981333637269850399977265528798679897360405642146059613752831932702285707045377929991202904799522686298405907588013099159158775396118604787675310378221984841188695688211951524244149183731909097423945090587292504779339761281334573779704791399199595455227516321209760543533198625643978308492272034755873561319350000104623505288480358164741150688235815885611468439734395939279221995315994972023628630988752680641374773700472362239570927262980141756192505313818653975759173151427963302568311879680904510696433082883651467007533089325299591384896265732904040668697279316719461592832854192976774358100302982817731145276231154666387659664245589944086252546200352375627132838540349507908241312782198237887569916780208224506101110275536829209984049353217783252839964004026514221140596202575772782678109454079418387003425648914741518653511915027080815024859418701395372034968973202009977137683554143431206830581021847236227199533696191308486352652841558328146959157917436000307055389548582702330725047213760707203168625039548779755408193651371062109494260584046128315765635435325738957030926931677795348951562525499923691798026037682202216342033358247380924467275425687594169056394858366574595008570522623400267512304240724866357174260864589827119665376841883903283673436890085232989615829856009619735781609934176639024986048220778808072372493505929507377736420628306696771402761914130938635056041103635628685128388446587592169136997173664988079323301450877995188433591602050542519950545250823995306451740053359127983957510198915728666132828588676309690385600821626958740166003361089886481336884417014466485572496249268186851021747952196006717260607756224796472435609117567178634199198428257600970674662575820638697680612036964809848151119865874327292290031853603012894191890058714461100895280225306406626550349724867790856028461630282673680108819418077614092181540327422444507257288827517616194691687499759713804876361185032234022549719535689889427016095424118803671711167429510180994790172778389039478407972672851682369357793361476168052178806135077416809967018456507651456962372330002381230512177897981971925231441212258054889607584790242258735973839457531826425673882063416661598928866495955194622232752958919587247223077454904309116848948072049525061211680432405238932249154002345111517574896293127254240410258201231747604228570473584665703421394211914935119002978901522699496412061560625854460926744011781408842940097822385030015440686728103326024937101141391326315485951421471621313992359259702448527706871163802863206436335321401178236768511393890363952926324123715971825491268078169776323571725454686923075481892075046418326498314076337886950471893662371918688935645178253509775548569376639222103759872828372265050633772620528080757304555941180851276791734838308134244813876117312061330955025498701722837008105125084336695770952162478134472528409270187369938914736514877091911371429264722150410592049527713187004251289753285422937826168816317434110233508353245473460689496088641800942483334115046886396034770773864659912837132422729649378238997281901549192922237947897100930653770916101150214269592744383159043259537849656619151799805618711229434015457417947263032739441812686453157343354864490088112533736912805827366572896815226284513101531670481247435585671270783918974600874120443921605197741343429363670948180400345608549241532159205552471051370075155528088776997938140218501801350191582737070762916598753716760178788693970746180136097778341103012486289505510014317301061587385227080932324282858698989139048136113591977976112643548821684558512881369026139879569782438179215471728805384913971638672964118773141048913023530210053617412043881182828066745625122054090858751610550275246410310476884588044633869096568593235829407020962168035701633091760096952125125138769763492380810739931751345647239737818346854345681443399147169782101754299685129458536090270133050892263412351061434274554317137495071797595858247534926425557578213351923099831818906981777693902101447444340308084872410378129120457190865678844439661636566584145974233914129154215159543151786856671224038546353437437709222147432939572114576995926640549360513368947544891529130625386382778553834465422408494152306197990915026506618841053728464206261028705883205111713128905128989934824307326725957857104518429409406654149999933513194462936051417168492446009430458270069446740794418880968230597155037091537837321457162792351722292243850216882217538803437369449925741756392059156365195167447573975377446714629508964291275508037893500100317820270827502022907880257972688916835276266207304025245363836130959794922919411020059303193556443543625909511285571231260090643646781131219935870720738493069429662429758500466583888190405771428504767446369819437409107860707927809482403983393643067400913395435639238913739439935121261096135605608366611528131579296974397504333535176495560374234555450630870955709264938838995710766388927590118906390431920102721974420347701312159455633850051811979808286784893542286725194124423216465923825377566859284110174827267012757962919704548186907127559773901696502932800526857064715851863045225349918907573710403302693944548195606025095537658265257260585491468605718178632598536904784935038602092553554781610804232851497972581998123817895847969956076636956976517192166358447743911539570524331543270967189591418240617191126196360652073443910283584618067136191091758167155094069858621215161560954237630556731788225376402562349160655978471903640928048531319264423779238304791339749357920392756596016125946848975773667160814363678087096177226699397206660568964358779421104028186939050423596803593717667496760141661362092529318448508061963970177856088749717799142549309571747128359831027236841055158674730883310616731658042886834731191372670446452391047669501409427731595815109127660096485875178686041657689416156972456346332105463479963310719354288112246371196993201365291134943124791112375477591866995024488427253101674429957735541384583383863252096705054641134895701811626492871152522283033051606021045718115597598465903818468371624365622579552554792308784901258949365278932439537554322247453830568650094877823759469295146450254605643547256058735806114221800333466232101428436832642541005062037287626717497266926402599163853604036373039406467398803623195378336798186765237337583847685470802680700170363209844525103296084734685086310465528007616189903609789373329994195018997350900050468484884082812958903809612786110679690162393522877993449905565049536822011281157120398674603360751344558831066658831019843787465730410424252124672228372014650713201028134503046123046790632050622120468378203984529141023834273980007308971269312233819013015262988780040761122571840065415817377232999873019433087516623742979279491453904388901739657240008735530870204112808906815284262244773465277246941486671682074487998436115872599997377926543421832105528562170507571879572483637998702174597792661080716034811022802601766780968538866330262505745073932144599073030660880475827886523477956480494689522745954117799202573341621512120710373648405246445184095136659573665477367511653299786969857531576765720723534723383903005260113757922010908789957039279899014360282439408812181632993865402960222159676570317778469172848273748936091050953475389486119483740454039294053240723429851497831083099626727975631767557116594650807845356017345908686460593310542357042098692028365441029108857893950950813751214663589060572831310502930157482625582152372494549965224242378843857459123464110977402081867149731014418408200967392123547512910513985856212281172686862983969212217563039820927791845001562046003395481826948851005004876197391791677796473321219088395736346039305575406767202414909216878229469196042870984239692874035208928357582877042273649101836014511538545736816667620198158406893999441089951056502499851943730263864806945668375464051365942126384767912455649937422706064151021822333928076324566598115848435400026742226520229788991740896184703045289184624161292031032123403008410548397112960573958950693105338221387568686476823739221899604909921912034136057315574821000737450890701650325914465182076921000257033570451364494326934505025079499439602998022971914002218310041581770259325177795708547949977634966276959325913407070153696363990938407060926496788452605058996054585419037316907859494658101206398824793303085102786351080521397741959701216753161389180888274360787857141537210036567523162700984329247860025093274105080497858454533017118907005506218759484087205805525394162221827313369431041535844555934634078360292283922209843459408440104388192805862864563520509769378214254542121937439049656555589481485523896806199972998620316200417572945619347510108417822478572697229385762024212646692821357948553881457895927952184668177223879213684594319844551437642799880678562626577538684422662134444342347654476829573527067667051992057183010614975150471594693794708498600909729044055625920024568885172571653123182057349951756427813847226739605009350917725737692575870526704320893518954449894333673428393258258838625820568234024652765996693739116305924742555680811628450302166522611413359644426714193881657673957952890206875258553400909303963578287665407032390316767939649033634422155933936389426328123214859265431013518358728694166407608686897935115607380988074068891590539858168849785665992292526416094639245066175930160882372649289470918744081878669443646357796863064576940294344711420442595739509481739029038029735922664002154270827973595391422237739001932653981717438739787601265277621312225977932678926935655320906727720415865604521592499766853428183027958867978897851247546249304009306090174298135528589450684096824631428540565418250147241194860833345244615667262102013632047652691949058552667887381998221953813292836559197663162712886024606386847424220913243491307335361071881237943619079491309913143149314810286655051547686062610554143844913764838918932758064331777056908952842993274321307121798813182096497187783371705772719030150501297553530316304834958139407804916440453016468836059372077914980607162886814754255288506656039210692276300438443050786678230589714002685679494897407488766153407507254105370857025214436996669469405424555282705474508669161359373730740486740186540682133759550434749261261026475289514868663622979371402488603634482812818190412448699755691666617025033430410533418391880623764363360513685280448438329425060720767044775503926425585107934396316403255835274191599341747633440572465968380893857850820924333339633191263653092863925777041031862083889701650656525737131348899300112455467409214663363281808338483578515412104681806187275511240543044290001768242952547323220436218040992664770561648920230225025168300633524624334937141141859626287924036051984966214865430076136934852191258382530829506773808736631427764384986154610185873268891035900597312282660821610385776324088422310021023986592690569746847799535859884627045625624932877931534212287598197321454516710350066125367999055836493128884596294771059513621380090217626402483329716203960366862419310375637823972189968902916040434206315924885939706541520309378210809183797430036383656404313791071204128660657755939778207000875982539566838339424574679233941786322255233041748987911840233605141638052693257715757937704956215627833383345343310154675029467656136814242820674184669474935815609587092514983117050955624423439218073249745253864232848356521467710264773649046918163650019515873502183625995664437936863001442368023753743807300829980010796756355147813252959755001602901789083475721372674437113016748056347385050682531317598237236264511346890304096930977681105453449378532674660686796385254143358171071752865615639028047166109427161849256199703603089759373777145117121687853802313765868273287944041798316287191198429966780919811471147466519944343902581485802940991066267793460169255445751119533363317946504627603699451154193560561951780425119301482595715912398092052376993144806783610060975493560697874386228041586630809917940108462058992243150431427417321998124204778662346215938491883451795016005376864537471843332671821208086094438156961122863898699867125189482411380310737124355520594172764786915171891013775868693069635181187785755021574168336772083615346053662127712758592486047927329285872206917949847029688263335694110728488766790604102515801269655439615320208802326506361820982108394902652228759367093059616621706736082991743216153132468199260788960008967183210898904240782956152858037114542249487759741412528551979222276328087094590253036442186135800173079798910523541138819241220171199807100644748470209709681867483080689254736101133448458860716331691991253515146404718755941155042211460743536865751343924907875389765909474871824653873352512063472457802576314073962601711005096466526631831470179808690002313743465136287628357025096075245883389129019963146126210342969961266239523104519614314180038901701800382816035911761928922250124113448356065230653253483837862035013154050569582430679855836383538225501749467908057429974714147279086669591301229785609194612321554101552143843911273329951203493857614522497382207232948235060800107305821468158732905849860497724354857881578253478025564877515055710170177420740649493585477847983636034205037147710273932237843858055992847734463594963351917384016477177498972263708551376652997738519602205304897115589725977483537263283316386954073322836399187167096886515481121095103224232480694901452157127860671136149456727890196141155932981002600968683837317486650035395355326676157234424114985990299206256355490255708323299087780940273480714122853121715005506698017397170599585988770294258806933157086222131649070830552711955566373619374227704816772459761471853916345374819942843016366037008444956367451212425781232108877116489871484058419664936338738309394992609269190671731415368723562523300105176197986460139954100506575885554153649987940611798084009303154295018253301586290836478449690639317206634169234868436951683799258553171517744868536049205298784938346378522223360029604627313955810017399273549983227212932489603209390893378506409702225917938615167480563532010303736255127861487472587987394557465688978000712355368315681341388829854038814415580710731630045705033895811865016737062899971701825399409222571081739865989984078450676854174362277950827577471640465705233125611789613539029953438780923259476155436584740180124044751895098022389914158149944126380162883760276908291637780541166457976598727659253470101975547980880823036694542197807904898058946068085600481893556229035607090822272371306159612559605440841791768913114622462860094585731583728067797938382743518488631806424506713863675790562597665245591657475917174683682073893821091097084650003712358717995047090883904225738488742491992731194832164042865643945974667097218172534487544147357427214242684388503086617216911347732046293622024795043862624468949063662274332758059816294291965583880976801872522048141760065713440583199114883893158383677452593580699195131133019433618287886769355348899320036505355780662941635848808129906426206754079497418189323347183420345864346397891681016825440447497258382766275390651816038899344455588616029888469078396044663379522949759419041376655351651921412445316316599771724071530263995501271332661009017891794339314426695224439407932925050779290309671822121814049705796568486204038357100815181801632436618430210456002683376391137724989933549537562635757926643127292753912021187073349651184147780161472071717540545887366984641012837033074106769218645155302383183126789132594928148949088929535196695686499616697813188485581031079438336186684671106928165576492389447367283760099314187267806390764873347015652857110911490492420578951646250108055155568925544101283935589354429016892096290372329964024275535208168081439582970406940543112869276922067267935120631167975521691092309876573420682984064828147430547631770225094056709498173943627176535934456145280952193990937820744888775539240105162477574300710577407330597401473402917162467435335488277606085904535270483555266711258225398009612874493830890153213361267085313485878842926291723497147923152872726687064589013407024515362896988298168235069035412226527444527914018737550734230101624894899881341385217398908447623567745776660226388916497189108357517112419246494738842174366639738241995682362441339242788977082854316512714166040827398054900394749855451063021713941895197286221707517862561313947377485403561179898646773675757249276080710080761095673490213975365644534447107484003128870320291608746468834570392289055722514756564704882967592584940880972535014574412058687799432745168705462826520881915267878581804452057305208837411303910445244015565808992765525169054331470341353481276808922405524800456349814308458924367276037109853284693714330384329994085767730337456907602948393165151119386820329728615474195989340927549820482407562243823447042988652871962522507559137633222628851608465019589917885737046867859807505610619603753411642841325400854646291634912647878753829650043618822877104862464518293882926593332227771626910474566938916748167919400091823571526525771781150163192768335020947448060869274380493989432797877284766937698349072896101672186077980385527250381947457478274978689634573689405770613774688467335689920892183995512715603490487673563924526444395129212881970476143174865668387235567862953920940033787694417771567236582658846776598788396534472846824142272574661575759958151380745476450489831344449899885078303912514506982826696822322406144825307776248939290215423622377559072162779346482681484752551657675206806550547792730324266010685127121496442328009176987743115076822547188412831398829109124685509446856990363994368408879493819867711848964815699883466126467044766079303378092017483912626927363439211400925129222922435250203940917525891709512197585195614099991042634144718074571486155529193056942490364030746721685869295608620314757680668675669489816737195732425560444803045556357125780187808312308880971676777753026631307190103185335991084042685241547153303439039105911405773156139459230442508534968409495527241111284128926417405213290406045518456475355971987247275150757421194390196368834514559473604138119557688356484354321115426577848208436522820719011061590541487261978002005616215943584013737134011196540489721184509638112996897233631617091223483767055547297615745865188521743605011828786666606058758742935304934125288493757397268196930774737958627193821808677126169778736112546467355984826459068337557729313655627246441502196728435275042469131665567486614443590876698113288465011562189307747222430670943042597228382733661377167887912188631274680394861774505507551801920125234197117835760905285893620050572339485738249290231544211969820715039767035455064221791406863185148342973300918612678257484335825588223763850621516343265720688731975183814804005352108194810773903859496110685223054933664058131695554475167087832891394675401808532517805367973423369550651834452691142500609386059242585734766430066964254598846825265272118443135306977834179374101744201487704953942054674026167701012585440399053699528979410181080755637803093593006378391266560221052658208697268976241897449413893973764709202491175069163851127108577009264291228592108060695055624996498929861352438878362984654933884113453496696832125137430348968268443907133103101492832818973613757854654149466765365008061761253312670104402503651113760234667000593685727786432937846562299605671464628262851340721440202593635699154039898807124727990692247955819105499699649387611819223613350036424675657912119215644215753888564500307277149380492394379915736544645296977819257961607202490990534241368626290722882536464030642437166130280797299022296741061985137114051556926232617737527116134521039734617285735757329323384412194240756743349251262543161371626860534020193690174899149770321727913865268495765164353922508714772977141548556133252381493151611672870231903880529344356688894629107902186818681276110563801561281740024920578339909076338071696626858373334239271678202964896647518710703114654509986670892954332121485092768439409573288590895107985165534727335634344738750759936338776994868902486049395375754885134016663357245450505960323006520179278240941579523213620503206754345315085222261846205989612003134271319361941234585713911552681585862407740659410660222017245786829865975543329414323326850626403221699293612449579951431469738817828842640803881635882386788234605693290785481671261255962998333693558373885647509016477267699927231662982324649249620991972906607004775714708334862731443883276185433283488750698794931846198778849951894032964813919995420146081012235223260075342447855095300269006966415022832075131618003263811264518601163551918234027807231474446690603099057227472959916152747903128536093303888617071915121091770153147865632025824882945020508469807355300124174739984861822774448363423128506438702846831755920060563675267322378823273357079188128431315210690874665503938153413432949218759305789187100884094162675429353806898940606320088143786703984057733929610641865211818092350795185413755331848181481148369002450232312714189036860933916893708800007320244929240747754340777794679572646964576436035297381922311382074221834474350544360254106383006257402535769970027674801491711798545565064227459680319228153361419324318929613492901277371493878889970810251306660409395013027839618278727692755336321894922655060533790555661837796449037920672318292837307108612530417140401323976088104192432905237325685427927213163674268959181535256154343207886982042640096782685769989855611434748252393760809632625273073034816831914646701780432879285983958567718384720351857470925862402056053130396183790327939724832311314405485511713077866403739270584280690186407845148906839922727107768498060820877231602918024866197519001626835074965554625783588978799080181427122790730048221861051956255921137598332774716505033315420188769300401779266724028167200810867715401916598178840396638809624678655699313840863514261193821252509012250515092047512478345179985209557405310597525271605682181461855955929241866770938383654278242110921682608676655352034525059570342790224996896157991157652293270123384267311736701091854753362911010951910224196983367637930644439117645382198708657142712494529467403833739990446289518015592496011285464708572046179395329603754464188423340088502792840309326355262539281924738779720877843904597790159335039081621328569254749653681193591624154087670816173425733288409222931637848271155965253255234332744132949161184779144181624835497921015461965270930009509102478495232323271544688574267882409263235533195519833539677261481442216708436307687971310112936290823944596016403526024613453766257532137389359320653524267509892838995835622704188456596843464815065200709423161569096711499154314551645545080849827073803949787656178713057946384176234197742238134942071508060805256804702264853573855322420083770633257269143344421994752116720394662938513687593378159203043916808848162127311918334924350173604610059359007104354379590174077941689675983138325769829048404692554082097233107575720784542842621014669728217938770421860574640038068566060145098641186531142877390239745051721602427772175685170775784096629592010035250761626264934602353162413210709869328257841807288234336005959359887902808305765509040944049992146641526517782343811506645188367685613620167571451153569509259429940261150305327266399076641640661297912883000679257840736401176480374824772956424256972380645925086830670589495142376767966273696057112856506728719235259632832847638510805556434993315147288673177472500544966141023071811065377380891676427568943442921327583532164741578598874398576019834219740549402778510798777431080098542476323456801043441261633529385537979353158489164523444416393157764075001575332614812894255470183732190764149846153315636045881956745822487115884321741146944632620795400344740283188508653613038810676975211112372980253487817753524139442582653429794969157443618288627803765622730220177487284592611880019584290781001209507207251784600405398134587346889646303482041908164702634408452659891586691649117165901865610890566098159249880530431382497531680775637402676233629046424424921838863905471103268848170552460100184849440320504633830849065149392281489313859896736608303348726946580903513731824322872860574168246280874141062562984803205677044250916270508137874287184339682787799813727054710145933582140766857807635428486573888146612797805661476889846844074593588995179630895569849034834799163183080686529697672118541991944949068886597140497076869319170158664651565886775097817847588243303541764765194757155347778572746160723689206919655676704906303090707507342227485976984036418850770604096638697052821115764427000152488784117891866768365149199291725947044094859627531284065912677286915328689074862021388539099753531482417271984300299644432373795391147088579340340232097225602072804984647466980608938740838592183538893748270203307804070892700889587725528359607559677585997351119532078266781389770093434193485579926334388401392779148242269569635011176004314456932773422115130273564683632178948664488620818563872259741506528358627103610731247381609339204062740158762244339248225657954100085689593127399985431510058305966497271411047793880571107320169351437025648326691848507856381030099454927083342033038502295188388278215805451237664124906324507064704593659052813664478864632759079528440372845856471917296099518688499795521898473974728405833251759951968561709625315160530645570731733091296641767755688664360280242203747521916563138717653803074885672316685764311438805588873936268826731757345994245252461486133799909783365946520482762720979180832552701816359762363345586764591806865919246865541890674696226423393065857104640823229065565903516045166191953755379418246078783009240016779013438322074567469613048439940921633843517721994330003732350909463688108450238968936797796479029933200289391722421718851977151713182758978579384875349056193019932605621431006116341198055107644602340861729867460500227978916336450257214823572803826533135006833532594105741366907048816404929271460595441029952432056425067683053819806460247827540701960698616764395894565214418924264959003195891092402450542316013684172034213879055394372837900681851846603064685509751211068236087421231323736654202951041143282117545966083647811852000418845918408163155478607843444898198342537352397182057400245815832897333601546445158835096170433460400826004859998698156174932144200227646142674817178779760979487221850265126232009576254239098082501127995287140228442507166429291564593981361509418763376695608476913018624221857127627691923533417173937126325110094622800573402754483715927999950710686456028627847492286787567862295242415953416551521399416600282301997546665142501896182844988699267970315213091758198321144582535203017433166030811215724585006962900340358717047182038569719683084745592856256031914954555095027917342448010558879432653096839575400461351001731629134837924911612557455360541113905975019384037664808167390021626370579807072758836476278819198286992878432357193781005371691166545661884001433586663830893498983263284248321622678800641116917281231147140400086588239413776377656884726494619814765434371723485182033347465247595111177625827706501382712531709700911914125673922971183971401567310796112126036570131499286408327925846379410524413504840827413159035697642492356467335488293391199007366714020710856003634562153104899405327377300850551760825946045948532747004228686377432939614228249292799344344711555478760768590187197706619096300494970529769594338447395157089271168447277418715131490094289126744282330322752291226827228121692651713905722991252491118328103048761864065788319837343658100599059904209635646893198092122134148708508996268316389231891981000301071156142689822045793416084353152646242102836694105454250395565890092617787461895219436912431887335639087347060462065989174353298784110488323346555821925493500810885331424368938924819791493373438947857956193870803803871025636114167132610174302468123834694016231801616818592599346704006716830726069908475029218161758553040130598869742361082592629146159679549014642477103762656649386038849453864206485287837637005465994039015299440149396976546630155217673791819612646260638373607098743218196580639584655072717447873057714487344199942063039678624007448995071106725689875997721438735170515455532105253970235342864280610661679134165006050957010203541279663950348193735740298971687571156394566817694850586598410109461730820955754666516245446785922734447833874191146253904456610922120520150594926207224071522620936992918784812787627552238771897792122224355167840480108031445003528094392478948507712002851680889559839102356850083084130288000976686814911458827814617358942653657640828381079166598162925591683914364963053403665697512334760642955248702023936919847245806962523356750668205960116242483759200988127989231903492803388383825320357026491146598423350388588786609746289619186941438236921849030431644750443781689305498639808906807724962909595022025150528413520891185470830451819718353260459834613337290763944590280870648013323182597178131033148149382408759757360122483733581171046016975414225931933682916825914461646112184700280287305278410022112144359765451612872897497603833131140751529141242117590953100701328335638036776920199288961690965527413342710001986224218986205049840981643549377879762365303782986325652929139661742194968510069057029464087354874851745979196108816123674740792890082901394180323404914014381491496373935530651558375776235213567021945948055153106125225955077542077434442826077113870763093343541749355300570422611903423529711149289251173952505120722555690588104502719662043925262206506041161489571269668624487187943324115104176064768460232389701625002431749481617598925008343504941525024393196237405919678498108722770437774636809706453329145126503616272813554995302562331029846006410364206976589423870828428222195961801094919750018356274688969656762989439468983326292713955836981039282349146554393624638983866202907608427863604994076826118026360648522928807037381196763912190136375727434276844847099833646220487851419491282864515924875185201173592553896067028136806041118844560848837931119793303332176514558801426679198096650682971019670147977726810177902422276631088495904496889731285197738901706938616830191406010193461311541287120522284390180788808569597894870108437640614490597033667794617943226086936471945780564289791193147938342564384086150724042753627134767764951264592762266251284076920969293254438062109007546531247292322960844918940093458992174568943010852448113045677259409576795097196177361302143544654111312996703350457007100922521877792508900949867841302993221626178092245827618751480605174135128775763864832918502125293319611182119762996447132055460396448937546004707616010682096638178194915874678270837953713550238163422585880827971345304241504240812101072390509617400966967184003238646047257169651007479398523133067519187310646051878547245147778164184369019573855070311380021455048830176380718581769584018626196371551873011538926402354151837931655115910264896119887481410467131977308643439561319108168716777057459191178446770792750014270355468742299820971752437638629540044039513988584444751687844599772345518215396014842282606169967960836702295717400988202654220480872661544866202763252616046239513990203896494535434972277159668877317650800853560897318938990742728726060898413735876250096897142100965685096389250515749669630227138017780504889782828909068458023789737770229442988457703664335739651883197511670855161917481224512494321800449063745089718995744292831452125852576010759175648942405678879698664435502273841771190749432871149516616271001211263641073689194932953117410124266657363727639679781243411869440752814588998925713787940298520726012902237677093471168081548449012087008071415358321723580337617289216507492459360151624013908433771585753461804084235341713851780905473485910607110455157841987877183756261997375168778888984211811634208711764742358398379867492961583871378571213134507183119178468179727314979882469808081149347532971942026840428890975289880654622126674380956343575816265249592685793851070197146416588861964336261259195595071054668179252063034500223734397099233766237131346929035896555200998700622748652630713518069203831863790264229856419622485993810206587332208230422801460044279924854372009868061947641379831929399254261805632003693970217141022041053345595384487234637265198575776076081446295358560044716424636268205032195265454823642485075912949751058356925575275569725824408782272344660526517623589117470195612645477332806539942915069743644015749147513082747831685952703812893319735357066561565859652977512737209877370387748494400320306142750547762175167433373160547560098780768539679743737742811038202552924250788037670368418618380578540564661401437477631097347840983186989278270640849385760083481624913612885111054305417448161471093712785226944129305864250669076279383311380819611663217668975053257287894157899285383425521369634923043596027411637248755619839542604262558956268837297194828476216783711440532444837787002294743632001186493592482602278308713170223040770819444173123075561031868577879142138408653342266323530865887555246567941512916603116265318192533456783419779284448327859586867627322705226064847223898848258369725237637151871758990816577608353211771967129965748200068661082244237683460455729710660454568036779236073587392285718857299944068420062746135707990915541057191446472659372928772044694812393125137298306056366113239476726849773583783324826112294549068378452797007969867104874846341958607571803346372802735472553118202002909593296362957728871822609635170256439232013206702767807168882577467815897069027329449616604337882176508196258795537869142571231461128542897177812620519128692982056439694484812881747380465064972706065625269242155030159847296530756375074577968233947249534632508706128738073058486821512295097546796897090799290849044683415048609075498785387377602887099997455368177042482208013583115978922883845587442714158220447188374380727063157872882447923720063480606091449536375314642872680291303850414006137964919843941508037049975743437935137823893983078243982906466540126628406309588568305637357805466910387230566176661082884567350988399018692494904600720675782709488420521748693471080437776492367200769636903370062510384450280814869280408035372165684332219632622803190083979159578640220546636816108388534114111687762827713078580462999098306240170595018609821315286762987676112657044377248838553145568858171178311131628258724053489936933528938125209482480998147389517463718249528671558825109932483412094913368972319452539581023197902256718405642786013690818803695539537386529816231544154845534915971096049346169034806282365110479826213121630873695922862716409776267817180868458713698861983908682281142836265103498679587353510652174331086135675332713937416595041417314293186130299702647982793589336972668975727945824832285883441933478015476760843393944668126281972766994828710727352640644277188165471584587641242916978517703248054605399885573504143407013350839325119972011302220318045378623311954324125680588806818115110946611242705566134938928524178445661635594438718890210712663834104009579698458459889008510818938727972384265624478088789393402633139034892572452729598341455674630989194128137465886041530991360586820436197304821522046316578609125955519699835733178246025654740638290061181624640316819867867530757488678085352977382064016695940772233818857412650565788740954476667605422668416447176070958205625216516148319208221066664875910826077742452861476099368437083150705640597159184012963060384939778091907099831371170385343079096936490149892655510619076753231729243034198417945606725171853466924790725164411951496317647631142633250173368203810029603562979081060838774707209158439478117818963129487572032247174151078174296747580179912666707312787359885851196398095187154838218262571599213178701844466625749536661384690810603963706672723859018897212279600187967199853749930401487173611255828199576993199669928042397791233876704146023311357917562043043409185318101015363914765431782585959338380092930037443762641911806443051145825199808302333333600738037154522266947775267970328069514294963043634810837780904309729096508822583987941440434511827189751426000787676552654650554774228613889612056985902263083240946338114613414622844388264918409337380296308120547241225855438593844473103423161490081685909219914006327513809975022045002727884745859966483038123187803254263765295863302308861227887107747344793318338598535203874681293806332043215328846536854189599364592997609204548889709165229903681952653807374856566034056910953333655100094723463679262377942070961750152747520644104712976495665244917201837766819331372802570066347349282182187098272459238943898028595652297966651559538534253824003356179594405827920009389779940509097792616703143014156216397764538009674630548297875816465279420418829063447983360184323547478624039030748731795528488480398513845863066262161081307334123943591180128061001049672063380764863703928955606961477782860554633891664904076713599317516142024094927702640248302506055260676300619271861315627465155245942927533115701942586907331640791556923125021627224406927716889409959925911864668306110050756858910850108091086215452594176116683223448519339587771939280757981871256253504589757565719248433837341418787415706143257097925611338752021533161388181428762327826333229857355803888230741472898421383123367672198324448883045608016599928817909490792658467462491111803653045806047326645790055000214919034951893491291321460807814356173563315003091632585441499275877201773102393912169157964204900417275981114654702450562618029211604319090564671840430566975493547323680890329457508353770233628538365345658448298891089640190257320995329750517044933351320886732853186208270243911382819038917251455356688186035705778168450051886146567874329278118758489698466219106978123038850658944469038591291154812323265270802601357149423795561676638700294587691336630899208499544765991583830748692756767323865604745427092434400151667030314934242171949727056737801928118441241172418906729751207161644566264271067587149503164560185902592346748337683297513167232631276588139345023850559663819697583784551184597436207546511910124437719814999159825484814417351351219401137016229629494984083210367387738458370409555985489732382866218101694803742891704178319432707461857484915027194436402607288379617694940780125831232971119066586138589285779772744098166525708668424061471489380391062057930550138393197689262105620409543482478915222537843005059388394585649743942090748081861372513558710220093161309696871216719803884792162081087843939299497945316091837504574180633356015531911094896481171709654744569202443797385676406080604691193053728080587143792670550425043758453166659212510464325850236064012862847438684184821259957583531081618989670355661859137643483228142423248025330745675883199105722796668226722323343672941463698401476116508192769708963609295136588564607155433993605307313702563189875339201404884692488817934136064866902746947054951032822868071150736879537621297287218772177315122778446249546790874730727577420499607869260042514775812207859686959677647802843108053648712158227640963330243698412010263907080508127564421948690886762994000443123862769850175959125509839991104894350801969476861050671500124546358788894456288528645071106188900485936060621023677370286291212693879677585951963929495754274492890036678449874140552242363142952275885160944379057259578670299375544996177550189062691041522454794480835111391201395958162770513601823946722140024199124725431006545631827439573957366721848380264221628975259377024410667482017797969939328365105938682767449503992110865166822642560172572167831192073950258398850762740884625218096791318203629943754465669841240586307950406166119129042875583977643115219393858554279346950387903743810540807660001331610146011129546634515475160590955312291909587986105399114628639055739849280034214870596445606101499753346227187712792951441954476799511748012633008421853755270827730421954886348739773731771320834128071549476380440572802438253924856860597457553501846137040320232276433163617248513816020416688937675544245952237395944363366652089033363526084074898817936002101412483860034552559945356281307347833891070231873600969639236290374027389828496259984126939616265826540475447542344430141566756524793134938952885635148565949100667077920674678872983984709724719488628175371570705241613835723313417251910122264448085736596555803385222197591232366854648011003543777407560766738905090111538831382628363172934335541008772621125709658534021161127058150519744070331848453844203737120774919767710319773847881261792268926610531914918187433762744477634683892077557925064564823199144021417167207866112698734259674407641177783890849959951274392411999010795188540807295442579839527746341513614125254836233930602553407346291996595067554277736036894558477737568682749401529803627942802866891620620489995030223830566972318938912517305966577843977932971590107731518044884576871535592439559825628531744615912153563427887750622739166256843586166724089602136041640350027030906062379597517003301792678704655290875974245090932622731055327236052263144861363229688153869951474355059852591062669622124164940691141478989018563880080379670342797084703864349195560775142063780275969293238276650953294628062059903693157570773566028709585702178907031809555233425980438620899952623253214344667691961502627973802343120322798026785900708208988201891475717539052663678788535480780613036287661474693767148275138596190714636531443027395352697582509296949485294223088023188565949323384826390714000476533918202518235306869717097972305473218976101690422806924084554654055007941636654789443388122356530717961759143138820321649345294902787169635178400687023919153144968417278352474874825302263969094795964586319959288224170037513145913981939046875866909728462899284490573384564087609045656480470823140817856020798027005609990235571641519023798128531240974539783895947031842603733141886956365029314780299422655387317702486540703632407866072310850191130622702043494119935138380893934152684405397271922276830106981133501826918267526997623609414937315918569827511194837095032732246852140514967082657370510818282476613307512022193871109236304535981757189236356536551302963391989223867698179338566480119040967388072730149365394381030387244883694065294137901894133955215603443214131386477620019863860814161596687259970052090401923947153244235608207868845369950990866464951240131584830791879933094251335564812126600124001219141428841577301982546664563126002539093722811477897324721499526999112124579797618767128253163780536179663678671137411050859148185318167933743563119746973967349077462514055559051043054623702603444775424449889716278254491755952297792043085625558272888910280871496333777540928054109131583633770118907155248968508195854424592623702982513804272606214305645429945215839074994365888842461859532009762576826345065119870734928266782795737800429727469134552833586178646132103541761932351834141205796159302080356576205944174810255487799799408947182860611135095156813168333234465770578660322794741862597411693756498681515973470586042833862823270980206814802552892098352141906879445841690469442275691107035506580077205225128734200507482551086477282319343142609482860747004069909521093337451133195461777452421383039859197638027140682427829555193862010449629243878550257360336640636584928177950211768812848089608637103949658687505922941375106030571629750079716757268752045976926220465826105572158784204800180016579034825559641114042591828458318977411411015645141353530095224468418684324415640277106364219407495151974605146617180553552725645660574049570032405465308133800298978986540191824523345251808401156434575751686831170125745335415279904961446336965433538013876795820801826834684063075298847642764263989057161461122355752562679399607916862045317831171052114673748703191602039079656101892656939033781802263594181848991529086849249521251368008305926494138743120849222924276286791934579357207154129420944841914675571246728550010139399331688177338651884504531315801552491667438105022471310296009389817002694712819674624921609987684817881030215089593947707511045507681186867409227101047308937994694588306592779014487482892627097076119901862904082395242908923375518258040145903177614940807511416384612002104229060882329214116179749917062904512200788288851331026522252174893591303481296711236553292034381705224453985235517369718386604732147824881709295178253214359075598623695036500310411748801841157866764991823995624246216332720155394574941857305727122591172371103517295472638105387824468944876049289538711676930938763902740668880831925475457330174776807499328854278530048352410035203259814357958344925717130243456773404385136567437864182175091796435462108442520413845314085606890605199058754499605164526816581328432166708665240987370935981119325661077566360471962792669072030858401223766160468054442429082888442832264917692417305854506727270216079160817411659420685228300531151703096288737409278060488675033375132709610766387169579108907853120856704521052492074228564053453069169914426320740244010262651037554623208881434699500558066862331386598559126042012828727648346315815938881734683048110149177448558946862407992423728354294942018587967023709894934583747834682705590882124081433266539183262009112578634628320331125820331931207662308313840932836381518328273846823875778028766741601948914042340085634583257453586037420651599820285791045422144971773825607822031916921602575551491992679997423492831760766753978734811870622669579409013551870427012049259159684935350351510357869082883203032260177420573491334666001608113302779711420723540160774400395735115487142431471996199780814857279463861093577570711146146691064040054937791129005910628852858561327902134169770800014417168500455155404373888546283682299220621253004832111930158178428275727895269671846751697968418322586034196971842682334715299078236984210066755173837296918044621465886672463349708754568547399701801593270135379714505185732461245958463206959369995666086309268360617065754074305018829985905200369703380305994206872718151722900189583643628184040654688639933805766398067031353317655690555199043318401012594003295931292588373139693567109518370409633316012989890236427567718049749516637266340486350702225102390931965712511530418896226116539278176092543258199289456451455866363592413692919811758024496906399530517053074274994844525046364831685789534195589882428581978451919892139885715298725953493327577798283718762232544323081412036853321732526727756691469211290904814346147145900784004414105591749107824506736983816740915984102682123546554564167596398878358698450363636476621156465822436628622321255579857638058930652775242455107246481456031050115441959864540400488931410161076702592000669671019524449388705985936734204056805124239757807675710375819233039593870399270142067406129983849446372462305004673870109477582655091017282587489321145371422311316283653916793112478344812078799171677169839922507405184173541425381110372154742119918764003646882647504491860781911073512139118339855288660535685253529989667851669705386047957821593033063136504270890071877582077054881467115725801087764725480986030593272775443055051129408248488242993037589286258855674426514982137694562103940979472955554206306708690384202271925946195280531107995208354823039529115147595557540091217765301277158755665332007714555273107647117348947647383116863276976952063823386900739608556393265431890705416524212968473431475196155097579581381891994925579095419485146688156001674479727453615219094434018255352925001560193445837167227205628626725034157803210944358239450384238318840733474764860215735351962206022738785415483809593957056269312033025235576538331932640530936978875249856133743469863893181524430994003515836591756124576384661858740492070601496728263299247822448432641957848571991706934156727420779100000928097447065340457352192512256760437879999830961633792312742968427231338079726106931279171624527595195761249639314598015723708167099382742170593620458340814661021834702012912279650909494342351161946107190123712546459032355962042057743933568786115028157720322557148000727712680789026665243325185233955397706665965175141203473463837210479378306191038877768683964921216869012244579544479142318792217548133543325280032742205700945199823492428348829111898897299598704819339470705240134983573756354806730081879939876596338875970432132225994785936610089881025962007501480846649962293642644090707789398786771779396782518735631689887761058589176593787324055789128196560621935039788456842263026090321721160630123534941389209207553546946506084821104438231541362151191131324592152847735579299117814830614870913777644490950579547997548239724192563316892758628543275345720898625772637314720023726144439229460786784456382441128533326820752388874537760860979161692741335769461917340839687509475977582378015260825194057500834712686888023900234564736975043758979782366883192985546185222370956140808675492432854035941946918034413904959564186848032125811825526441337062340800522691962876198120352402786437973472959920049563099608130257474505416617222848522944049330608015103818725546371885338399583254959327787855276755764972539893046887431911385712861461670666661774321011289332326376197721120427145676486856540373270666476418534091310784930358488519086785250592417134064284465952419461246441268592683139103249153584600618182213112453005880440492594314696338219127597535865254505440661590045293234638614385544042236399288319196358078682833455360045850062997684243582487730562959449026858898646163486103750431525970753273582008335599702205184902998792563238454091440006943900257721033552252007113278244714993904225709521135280587640930730245184525847826300314548956125589246175544482544303848526526715308060899880500125872476330625915950983214570232885999555680823849926923642498926587275850324072147054491579249767408619730807855747830370819060619449791197670593374057328465301385537721284819026094782688160524535027128845486955436076649799847176446207964760040979486120212181693712727275476647053089189875056832897572051073704830564046441357686713844725709522988989083842800613319138127464506216907864924943756817920533672119401196427394350401202658284503961145212664709554305035908785522105485307403901665881042746125043316228420216513387701521381889447918788167770528287300197986801906979093356329828919821176618335883560249115638358585552748253994119848242441039091743877676637344615810439433406039343719080666441231250746458830129884847205384687441042933745429972566532057038116268369467697483984271422424002534302510922951381756489401270817181611588080848201601882965549934204604715684435807188231499144112827834853595538591179288174298923155441626244042579201909047248621387386071904920559985688416680585821913749558581532429951873024754509930822545768131947844339582837109998800880644095031864158212527528105449276140836139953647812210285116226188816255160970983854209789294004871815218410090432846856104863879437923702933264866303047149062416550147965102817106675699826986272627302401128486722012234144374193446089751851476069367423666711921270174597217006721078057131040062912933951195407362704580884880381715059331181435160310042904117418899841588101409414870120618064820980110596081975294689237938412966833005124305691175896900034341112189924628040450297764260030630852677782983435388403029405226801904537150413015436451153260165682094828563300373228162655101179283758637995584765574590735931496447791781778686722782406463976688114452180728542117054224382776699288893543903840996296292234806118931756137332898065821048672762729673206006646891763197344333829605703675037312751513267841038615611196393242432856418907167466769863464460819251421978227750026711704350514913702861035745457957679737006206518296080206315319238449664365292991493811167548088035888382235183795718145249013335437614230751936693453189289938464710097697761084889965278525012786985183749299823380834698894914998467511491933362456428534855256608712477380725440320918629011800600992216733698474735294089838169052268317615519346307611109277192728696028815950167739934819464568172591919215597264355994061329015228379825818968880494595307042444663738111474067903001180761536528611968457874904460599780248645626753201344418689665659208591002229427776491354340836788106239308237025465505776755869549352467914897540954614971920713764988461262676720955216317888590986117973933969442370963955034724265725538231961422020566771525873735290239330024928569452627074668583154339046715276526910288281180089561947920073598131823653205131367799589324392540207975569259929458011981354326002783048675246861007957825566470733137580863334257799636540476252378698520156938195043765936189150093234928962072939606188548232552178463166195332701637850022743027078465064608391607127780314403893816609653180030879493544329175960163052403655227665422409524776238740420940896411624853881224521041046168824336273754673552840773689514340228243627208367964513042199303500177576832300672429777081955496086321689117216273058018013743356517954732837675446430325075807369502220006861348337194784196184599973923613347195639284421770732954177069301835235350554220703032420539883253564738229272239032144765390140903157376831793194419343758759789198471945763665221740899612973521065218557379996307517112093608967642683865647929501174661959771810949966462148390815434426396103497986345595792967766982986162018299248390480887518935417987847460908852702951021472609412615133459672211000373499514682167344857718280752013486462745878687234908548547404584469504731957821147165620498524456017987599316726327350303068093517041858500360717888049751111627171912612675212510758635839410880211422330027921035378872971097795755566880074794921681215947999210770768378505157610145234586133189918899540195900270965975040329339137760231534565153846236128615098852081217119846188676861682849793800761100914032573311993285412956092230200539804405121072542445027077264069235394069128866433002476692307053402875996334194442965693599495203345224923896768810820735099928678600943383888274816339202707339849159514396509273994045853875283838937470693378060817489746569030538216804190230563419176834818243214988935066871500893518969874343715874084779495178909786192591544260326475855237141189959683836888419536139508467440291811892855798390956571363739986968496525135971966616567950540084305565651064631675758062148132114317413911781159484557368476759548395318739893378013403559494968940199757710975782559447653095138013426351913648380581835426834964007397359641027696733275043663236787075017835841534298808989201655379206796767598209384400671329381423931612287890529359124972073100793671810282581630124696030297741137421297150533382270639144912754930328579619093261291573705381109979101047673668897669906227946720899325078265276964815042005901627422662107621052686811748655279233333145543245007552207039361347360603013837167942096611911403528491401469024598490720721796826729340501575138835647568446573463176564736092418093644027369491864504894655306738538170096373745488432859667950707682655393679252930434271499868242381575513042926777703012660185992632601991987796541220018692176346479240686068812515964587646104714577327401269294219978174442403425653562468821768565275380494330931493018465065042738584778648671385129881348646633183619329911356570099997053013308584716638559566307786510863622229447323904157906799983313746277871446902509262052970438610566298984589880372418322802668048600561147131542564348498154903019385575513787280716323613580327731682375447748722613577539447678449824858388059712819117560196577584972127399859242161387056998504757819274262606890966494378908301700661006330895828380880915526273603511389476401892990015422110524742356560058860066702330217136571633185661062807862567672968132914997171508832416087475889857197911340956202623947667476005874489938875581283731786404476383026353827315207423200475443779160827519475104598295260116610866535077682196273791230398903016955897926091659641357622798010650382727732768085974723864139848699169287730020561560640003662043253779507663543801627646943573287657664530572178190399897907466087459126418848936876537763440188865975370664475360740698525833921591073937086451953031213750930119482054910331235726585479586025188558232630384833859537937149498429753351411260090813872409423085704287270404089632449893859064148703695534343978034365662486478715462353665695015194642416741835611599385572366360377407305215308258517025757950106689534577876464807398278843527590426944209577433829224976418018724941390160686557995847042173510680383758996577717217834764440461822773185732788362786793024990456247031137762979840484133813658326868999769183565033849571396300811206447663594235604277163272841794890646564582038217109460403230462129654925422530891021981651936078907063993005150725808037783325888978428709361231064602985211236190664732406850472896431167993992037842804776472998329285727158332557795402228655070041172591373584283818259831560059570759010239341254236986306914766351953989819069366370022445349812017164192535650606990642901315166825087971016703399569088040286484633650137337800649255927915010073455202336452418307338546130846238501788034533812747593269514084461947494146288674985448552843497936556738847026867437384327775999056017617132189475745478108513771657587876631281659042496966305607877929433425480152486446730896216443788470791725158570930266745130467920955198971477978278072279611101775308782065270573612002331933065420560024661435904684109590747037429252492934018286949799551311126246308687919674195001055921892791706650062528594754820444900192982277337630945914217504690801854389570635714840285074313688987225155981628229900899636376580742248945411434843109022838419226006627765152612914283126833665299191275119494167879354609651040907120969533476959650560487268173883323404281413790873774817887705988265225439555897974970878148812411368027800127925352933123830092362745505911635834491779069626653094585697883577295076864394590132887582809814494893735842556835521886145302556591959920122269684471608213971843116209289382773343395753451277538947069776877865092412265593856935115346897725255781254679256921811643011804752097892543538929119141458147139484785490946497233645761790583602559396123898654522362610867278888628858051449028848976052201595183309980368274338694083387342233294384192328218605667372391722656307539271067031553227524041830139531201791653280049993616428698630141554769359990008164306213706869518066208538575187490398011837194985768893141099840444526570404631997774664834666528382565331148533884039431062622273310752588976531365167347548489564013316653469704205666121309526416070177866185721613596585850806284614833834568720266466261473679246601890151421547480443432696156667616389994263339205947375662787504428455822990626435815749315101583142348971912540139478382440111353699367756606318864971543080935061281839563838950909470466898024401594738213205817691288781453075272207364788801711182661042572789763874472177751478801676850267782913433830944185441766991461908600702186363494350643220629942877265934322238589131040913659010922477602693973730624661930856675782281971661088435422402873785176182223172380414620543084743290736467932371648897252749834390556457183226576819262874231693562862389976265404147830911923573499599830985710996674041924045907602438264678408627849420878948756267951290759194165421746776605365369926460747524561902386889761814373396405653098654929115241732419285428757507175501070387064542146447519446709892305756487865575845080093450984916603696444873440736116225206132197592560415582863874460148338376634393244008222376726038062250294109108306462463319460629647140998532112349483478006814240049418786926240947951224498370292707583127624197851010866558728670152975612209900861373567203241597533807451540037286754363241976414556006017370785899289201004123442227068164913513826212734749106804765424661125049152729589652252289852000480303072682592810228711620901145477747190065418974731862338522098933890420756100847996374083865869035727521371189648614372430739484280858793064123548553635863351847872760828918873161256588369589290921305687942877196129109984316163261087107152004593420248644801204861607565448102777050796494313767876834998735601586405629408437402662594045631899022246499420415878760125919829841785713724954128607562467692832644042860732816826298057304649014026577836248442513974244130747559008721641768483624636838091554000694486642423185906451451227619164953119349270305280550621521902836073028509008434732438420502345262224642114654448591162567630236400310788942419828541265006944588833476859601397840872017091076789972880301021419126876526164162435204809980126759819084250759374336018150088971400492549442741057253190083245247113908027996221739651099044178359560335107108423297811506620813492260363280468380385454918499509133524559043851522908924121803487128522175001621313610024233754465268343728550454177974935513275861746745083891004760334614536278288459818626361203187411296894074362591485719272341664107132902124465520719329562658153320949321975607382216432603522547265168950590230009894374144601569397430999984345443474652558955186102666661303930482467213708373855096532360326213432464298001164289009105100859889012513542662206602200102683081529768593592762685462331796682528783841754773033156639331000130076970306666455044665677962117559446517673591579290574621901060633372271428032726202529304369122802815186477493125861040665331631432975620045901001385051900946567664073704460557953324613198335062559853586030938366016496270868631038818228390960020054306834397635653658616275965584943621502408341053057914949587139328981059546404833649162531630500485519266520832952818710513806737880348704225436079835366351957801125406119593695127853188758766753413747353969606040987867780518471802431308511005616619994380103978720005479421518219302388613069976726738593161390314639668783099038259746232917921468899016296933658079100763767789803928569929857681249554467235268075008450855875505695796713603810090268986233685465264007019202721097705037250092204669212849369343059708833396287414244736919966101526388504837447926283737128991206643328129206813020618779751988097134297920181169253287815388988752445690618258665921242095103560220279460967526333726880113370163546071441335666502048001574015956200266997949669443378381332687711957944688453335821965638356096687637486470286949859844967344790106062034248688244826427899328940336352167870614246639461770959392977188718703529320019648226134502391352096270881124012380152407473812985150595578521982484754332858185996548708858479138634798662872211931376606072647138747307547643973744052992718337268647812085383726091003814255951013248337859543846369392918243413479062506627231444286707933280638563735356408466504620617697763961490643634336626253516099733235857079813971870161903795261217128585250556649347997003804789659585946032472070362314449290702206261546472574091508115384081094825293381178789947925476572234005072389764059856984822303717409164817165548919805244101708897656529092580176583328765699154906211790755032598833512669546252918779944798001342831617436007961629923697372784351980024341401396204031985553957252916393549495230322359213840815100570140018709701141972529756276395556656492458080217834376328894658272727967604748211981773559099157251683436478197259823392678664160615407674457891176570075622708072483998892692888137181415252676449672872748427550959141605724515721742771279072237721491916760334164255213793809423340024051945056880101914373454473379122614051364822867909669626502523126813369185954799409349833271960472371129678825659649950165019875929675675846287831437626207635542826397733944630063575377541568433095196843669289013542279258956248004006570078074340161945448390999546831393574696225600713587724725094103602000683189510820626942543985828679740543055298230186626066221822649829618718775418995171507745983422161028090277626686217248428719566742060070821770786521531626600548963679737979743596714469871982943904293607970519014383895273024256678086176103303287565763127893960947104489679496972555450552023566342407208307919163562948720926996044767057479821182600524118039545132893700104628733498318317224350873922593727162218592646589756233636673746744261887388464339231124828440397877869561401315922211391675026835968065611942452557703207185076909277113785634765999359631903468956788677606934254889155457339593961325627942453973224831067875590671856698519534192286232263248656232093255322279798037211511254598983884907956236942830639892696015733261360088138321838906771452692291312000530885964035965953650313069545147689709031472590701939270324433717463636573584090383073661882482819993283433111209159521883003775690062871415185698798949937991790160911237763235843801655977854568014659175152762425548160804798516404817298542754462119891037408547709017905637273829646205999809511075392650335775239849636659187518221403953862602530095296540421831805638765897013893620870482295145019071424480741629925502772869184527410320497870412243963804507538588424226353453797535840141511539476048335721098959572033877205778299199539059836216410102978705335225808078252876754508725793245555332770058428748375127295793655184172349693050600035969022761196146933400352007115932741968988275444532131829726042263426560637467389584966332948171581094993793076402690722585317650743109517931753074947810643398441050645071914261002491827935307338365043974303448247824065707874334361028009753349522315406472805000556324529319325261008053203241591090797962835408573831357074188497357528138839674521801188032898899812002597069423773457459835407110652105897211503675144888553303539193920746646898141439347042392530079779673358347710854734241004010931851513912376152867788529697114886958639387611217960655640853887444941325017733924795231120470645903731356662490081534264260150405224121337611371751522697625201385132853789831733886760884631974329682728898799292484359584653830089921505382845346973163430835109439490807484753695703839188093696532765878511377927054473875732017363196232409070391322943583989888095732913176049626565152229047781066668855686782565891808591890367950233848084589582625568739767337410745968674671901344642081150740761973440691357547341822515183278006623561655046106665597785483609269207087617224928647057722572806643742210663810584556987014633610461669233226079818459468419288406234442848486098481639433528943729424215946879651688105347364679680832705150789283614615505398982238935654833047246821346127856658597193022863813353014164912901172938885572021921817950177226779859900792579320570000401239581083178638248779292137113397274466345965327924725198854996434124831608261710144775656177622840747011604514685482298979791079471443365820523393995862476557091596597906940351876303050575593846691289126838144620819295235754169454270616134334488772822539048635020084145345440518777357839061320523532750618933763275481861488062778942629333242221076166561059062624854443112846174763722165148380028097952934012295374349220058790109834806788560433314874035622479353666812161893210748422314325688261129810843142052576783767223364173264612499552794392565614032794719706446232007907694175428015334302528906167414739190521139890384887679424203691363745798000938782548779414212050658238460624712383586901973305361303296025245662847806779673523032212855083258383581930506435400064567073935270233063632397536816912288977067043643627642517438282208730124604108159550203928201754524122417621693018560420458044414154811672090508373784646873696910893210805071698373564681660633166803641745370898733459653577079354454524007117555620587117232231525362203134430303322319116182609825327967209729138178864999216522715481365593680300149654337622460768258181951785158629939982654960299251019027653178532580705023954322565775139855740577878187839989842557034862962478419594145751678827085296020160615768025980445985188936542536044423851175681222883764759242047806799924913712153935448044345931387906649541859164112257321860481339509564703649209362213614299982732363884919041820185072222274029879201196619624045058477605920719070798283885674550195723425615304580163317297513155792623816921876558728872184363903520261564167816945427367951191362096384654949876249800595295422025853367065488358515942718837443099284600707391054923740597636414387255244334078719584994859087108164919928333300709746868263531923912715390186510435751795981413565317834516747372379014954829235894730125930501619917708305797766512085912216377799102676517400357264823953960205100183575608568191289004595689668171536123194626092270825850381300319724034515399442627352773136283309078446229236680927776008428359360431369582206048227800649256411421917149221337077774627362324522879420786663786875554572102104913262072040098072006692578563591359878871034867952473142725456946548820970361757992937554880578515706310584959122392822677707218206303494801541237462304469511611960277838252893918527250685130746473414144293396297216291271298611302703613223974607557744952939213774538402786329470154794404530277821132360640083463280268855809243953679697176711566718535595544857310316871410321608273302001778473727975707134040209583763101636436820313032573037497278001655208376809372986610891276689150680446372753927919838269634803105538307841219893107313166368832795241772934347810601809592661442640406284378500286026709455203788464202450310567325993662557531753801398522771717968567092350821102210336285212633808336501934672620474656618078685703628443664980718328100320874194042320781700851567428116617288993299399802779282113364155292979788030671152765830082615906330265941834379449725905197092212106142115406458088126379892404956894730513208583394002908529294651183955274770467482502594568811615481486825800009207048077498692097105244763621078726258229944931209796782416949149715257008136576835215591709728366179842325626007320345975697670170201872238162415597161724551107143452232410516338251086430825075140508950585082792192091645019490846328674736045173134921220161555767970127906006205317366481766506601823628447482320976977691004025862163671473150208803569716771395892263362541786702643465629413991609641898240776263592656225222188803277445665621795810638861362968061136634447105905074447450193760765322560914113700829508145547388644133831549715176323459504387851978999247160118579535318283834601706214361162968568776951608802957252449956819868223364494801473198676118578817346638924151914392116825667481654823501432379085764453898995459714576665059785383222806920242373625952540200513024245981415155018091149733868735337795714940266672899926992833382819606408381597821354844798336145347702831624983611677457145771015782049740292112931180490734707444745881077609770019432967179636688348208616687347394605039161069073977751472344678585330634705561261954738352861553339307633345997581295174159131283514220749080023243609417992064465398683746041697114754171499624449021833027355957373800195098131530968729961929011879923449781013850222424841037697191337982851919301254500178175802901862242663640413968869171071484328534279776655420104817662889287880104832677373344134730548707541660543636711335876840840240421601034715139700556406703177905531903674885805149412506862380312195536384621705284803153864239738502925367401842578549569329014082733433870473777034445854719062701442425362864608304076073187816669250895279757407838978703149036784207602017577391281822519235905831708148079959885161184692367281632782935860673866428261024779803255115381988213147448301629846645226236716844125398694468388496518724155505473846316149571024295279319533676754228956245582113409893140823239543068031730979568110856819711484250952965989798729285761002693125369121300006635554438667102415256572416411770790191580074886061813995075450155694076164765745180348110335470874779261101438300634969295670475680610971923434955554464840591671559092557801326541679670196254847473798663032121415707548293611790669299522811734430466576642521991127599694675787255386168013921682129702582619694004441442579182916091102630746171369929024583755736822715620799232351836521517154735444763291558060815253207977139924621473841357397056979911493036225178381617432658074718195861117417209004009535441992552378274160428250358454264532195786513522067993022188505817620885608637473579388905146517175610300252092086746578955321686705125503918615554921328477425829122172151798810400367410594794647151953460141464261373698242270143249280026527437869522251599301163147496797765860910876386929248614898376097502495126735495340716407917963178967932205553402514687107124915695691803720926222314248392304637370330557516361616188630404821678276862171011368017868736779687769280645828943541970463361989800096162861807407043507514583183387540682464702602239703718078069253643034024410299363843375172002144291639830551090473280766930454585605698763137575174798020907545927674381952726960042235821528810775343580624731446354684347650575359781700794442001758403191038162143948862875163475237497446587244182465248654566286690869760366131728248416684765794159561239633733951231907598850416655893703282316238251341572750561237962826777989036269779782860205210713291372565171271478119168664549610117685895001349322386423202290569264351395868380891885254493424444690216159271147187476964026055707053000979699620375268797348689047432653368021346061636905519031843187013423817739148399162904249662720607435061790917377521363155686435601365423050437897886169689075044894494771850555529699421121411240127436914555004246767248948932360305430839800921225981543696486535051254428014064920221594402780626639613163267153841798955946171918957221359971055542626649061063656983164458080424889029574572733411018652034008503380878785488909798301471404253833653902705719706199684561411308746916975162330520152991429263471621546954639357609214216584483397277289047681677774412247604599020090237892765532779160341142755277212585224927559316481375642589527638331754605349683061498838816877949315037537165952949128025275156758706462393224905295728523441691043097008573669003781614233332550057614179578706884684210150834357829051568058744633412159301254209542257229968804215226205453191524540569335133089150847919042257696407852130851090877589255758441918341271316431645698219897837320295235625593226150685954684591672249344327073750884881157789050110579877964467809114493526926904419090909819505107727252490222344641279077243550011837074389223625599709539019485923565719241293385792975307414832354355863133634887238838651742856930439418739997342382805933956785484452961652748956651571863373984341705902270867162560365177139775243918817666505040510587169409807896874228160482089556763277324271808077589485024145162821748106901012831742165305984222878774481294340747972804173734027370852781129679645106054929692382416336459892629517540944408709064194280286576526960582462478402157063865258427634174120357230192878063789135726144671786969571313237773712469142158734260081426349910951261447546198266253793622643584939355874500860310809902671228306211205121120561790107661325732203701050909463792408359376541631685709128390104468604554993479214791184404691024805773842376286376750494993153756866161694273584478241036933653611650511139854099133731957275413179750251005364225398243493879283562211370709824345144053557390713581098382096814230019439178888453155190129925630594510052553030221782095285033686397563597081359342129061482403138096005372138012669898328151638537135542332466400734063261646869064461320747810085804446852636512561281083461509035587119940228178329648638500134940569308909669516951752454036442488482447948694490425402641024537219708034078302433955906605317164983211110157785340500899682010031974617194398929335809643047410865003956393180567601864059568852744157213333593729957384742705546246773187847777803091084523848948044095583958151371246817850609113410994750681482107132372646458707763912693201713291297724533648897812893876230640433355732778757583961756858098745029506429891806984269538751457948958250025630876402632506187159311219636870097063152475046166367003422266982181111209748703838866276092468399514612922375735338770852368195590433258284373118601484535528582207404424943699735338629665157174688123067651910157407070375915392031677834843033538455624415177220097522419873901032789837184406529771566256288036142670775792735100087740955697427449734314421336654311844597382622603453225310756567195677830386312281483720468841218158109572965244484239423844613356504723865762410543288401333510775585223361406860662082915876566588629718394034178421153164747803014705267028180011713439114060074611221673471987675165781380946853430873436457718335271753753871042098696017633785794758965618947492855004538385122759799197176036384292900108943592466001729224711814551226527804699298860340833111622451557161667471709272231417574588415038043034893027486794244102907691701963637706487452529011187463177331938946678670631187897677811553874068385197790544878224175894652698339245433470059385579938327589678677324228303462583433414634512486383595667984892251455829892624622598506938406844306408163381221114953143259562827531678115703867229674042308394666411798960267125520600366365030837725571894422829741904405873117600088171645207006355286340932554694782846853678414358076666431551017567161467217165966898585225234758365912971252049737966815553966676974723565899712066565886998436205392912411499160311777447342545563856909079489608999470408825246361359894876431513713967210430955551679193499440704167390586990949491702349451988107983136482180692366387434387092521332252467089218453103063332305626576508701089789697338722094146164920629337118836150011113521713583454372524277434860171238402367751795128388611535146938798312876448537958973178278973657335085600641164021679470087359065118826843291748499593894334178863340478879859280489984538307804682945931687231196334492487670481490893492054986094116620879229708381446625388148475756709787924400147168274725921743959278000015164973433778139769424179192228341532158124723992700393321430453302859317882903777683815250804344241075449487047595658304378131423669918675620734490942226758398865581922810215104173768211523083707739312527183643158292961433629438190771161670964556874193075695810829147767998185515325128344723252991097720266832582467333120879567704094151567961325788009205694497008128469482518733285616617503144234732181813585029876316203079352930647313719277351067627220456845993198867315787594539148787900018569974591843447463841960003292268656278584251973532949741967627887448727758578252286359802306773678895093734335902789384918612723416553543741206506351416774624746366158318022473031140202327508244488330012202054442562948341298602876654958334164715282527090200980712485377843564260518708763913651591671935784838582090952223722047499054091431506012006522337976362146733468999963108185199686657868516108017443296719001431551191126719949081843922375720862770331585554579527230757404818683101774549299892075789090071438973578786204790719690796708459340677067235223788327389585378665120728800836553747459212861613866878103053122494977946108421890940216421469412365523672714662433367457795470223230323887134598400179217872924500038926130706552438333408662391771672349245921447407218930958842806971577341973729842273227024818052673875716582935225295780844580864168832543452978959180309729554777671888074453097204727557952181439847033887744855853211525370087719801194110459259689105898347716647649027714233728554022125272689015768240485567739602564955990675043345969812004482527556417488454590969987212349037394224303081488766073603970446224609843975968713928229325337095040166637459853215635011965040588015701648726255160536371540431043232713757569290444349394434355715797534358402125884823601880816477202355168549145419535065898878185459006966791009065214830587282937082896069341958341687258355467702132842154686389145533044890207338760127756514811047443619885649175094635975552001658091123806624683443904119933388738488742153565262557355352353427284396817323688572796021978396682874757294588677348730516388130705300656252093047434454088312872702942160028547982300011232083679638255244051660377730018038917791291390720237606305783260419020263231804603585432192830135061453980974361134518279961046200999460732189970430590127945015016318047285258075712600830403207360285745464740517737110817442651801702425207379072964040879705662862513327871694404731526482141411629086753492798224228322858531288234997557015002386334141749219915301385793377539805514597830889534058533689403734791322895490195297521780228928409289352262218381100671060081271080375953548378316434195763430902183694162106990337052351019626456993291736412879687914564557525542732254083155146331702714964993298623471475800912787362264962581444758348647401657706862218070977692573583808971899341819845449184569674903791949752752006647762548195560995308941296807316787239797016614751217183271007129340168852759730197343764477194255191376283271699470611203097687116864033975413722298101536922213773397012868512433959387950301940209704432310636302202257568076253435572969245981698655285795891745772053939524844093939784065677415462524142667894017535662011809823436063626778839169802575695606638398009682120899224793555843730743257246328088549159149704333678150431253544083082822124950778163404357595749768927354006140245064864570858539107254105758055952252070430603034317756808515623545824448944554061818468830384256758194037104834342890561648544223100178378610598191166835034341364391938375647777826508147520829385144769308128329378176216503247666521529430361221910432308928378872134440164046187392254693671560288587351337032356493659287982428896731261560870730527440657734470955394244023196188039548774324222003766504310181104734864610609182881439246007667644318491751661362452558034468309169915159950916142634659108857239384836252733643828421318033121056025847299850414850625590488951524459631582690649431634520562034981881155728726241553232169552166284454726268773434722826241145654528329714234294052445859841099930212410510471557267994346168678298494451588581023824987637848817884463249971871813619690969475343972961601925734211548119576558353262808405909542408455795011284696911285376280242157033801234381988526200740636310336155864031109816475263925120582233689719233646027319940951399230845982016188995449630665715608562105306025055688783173654517567451473862708823721563154480681009959499572705249550532256500941235086854703357731368831844544992528670310909324153800637290810301077465742230678134271282695527120037705202642604501024349027328569468500566195958514524986349463808798852294131819249938863271689735623967721847431249377706080826212665454677294842886467835929832408600722168684197007725739710678263713050241314044631111972322556315455478659468987647183015152531423703294371543780712022840068178290009383215988513716610483137604570826714246317740191218196366380607342231129806128268275764113015655913724015910517778989927636374583891535293998798638986767907321424995857465820265956738400107021681540847341461854745846560505658480117969499703106049196929807092193137792292088732454765609092921332603348008839619657235946689828841558033469902312030316089482321472216227629343761480052935306936239708773209933431924540502661660421642960275639888140562298067038886551488339164859151966088400752091318572033698204872412124002793064526033385309860758807655557255617178351809272546723961210488105734582985945103501092343153442054782514904649772348545687458788071044765252356856703941273633250531427258669790036871897923734226228596909693659440256704071469119441421672640522572786147428731809103812071688421086083092356699784238561885063082824239531382172271425962065661344430108877248413810085549116952626910931940155465380230042369932670604186764464886041856679059813986528979649957548975920545679517081393741357052888148876911204044564694750070499432657064273602285942936077503296240937942652190583310854776349810895310364312647511441239098336517473436931526154115045263613406500007588184955143843577478452943482868615742945268466400347193943441531642755661566874775066262950870287202201203677582306288202404409796985669380561284561263273206163264700811896761707190611854202703532064894039891178983947375289859501673641448996650069188842706248088155444314532555541456502094882090067740470177960828056919207563271565177509864820046501876254468494890446648359381175191052306764921359011339114394105071640507796739461054347739517497662197321066095744602030722114950140611989045004227080009617645967417823984278221147128446406444332124558300927496058715140419622520000011968145062947097467364097090809923353985793258274768592956996172004383362961838770876762870912653154143129502359263779859623962320416267313526962902024156015358255438134569893640321462768319118619915443503237990176367657757125641368185609198197765419661066180203607020041009730226847547146350938481795425855813549470062277389606663421771195538991090496987717599085192563966666643297705704746590224282386375228444971872803809700159389785853444286265719229189005375082778221210493754802200657647599255609629577090199731888973114732146698199366059788998189364630508655970323305601554277635547782454023028692642877124775079703803893851394055875005244470557254572359764896951352727545026212385560841575855062750396033013884376586526767316619923348264714577588011142577202435011295599166500564759434493349838410149988357329348582352935073848301396093195626373488912672995304223667837448121400929772333462023554898016436811524661086533023144485205395406551756848557674171400046910274867423550080863641342200754903668044570705488007993383100993117133454151020473802261546547551323539652447707174250354083901936757320186911191099277528167032312767189873613884154693394686774597640151898776982506381673049542172539652187007611032020952722470019085535191277980963933623292496292328263791838104595865708687187659269148546949625770201382555930569283345281668943618385129790768476399598625362894992057076983438199139296585674331592193073124800521819923632014123653488767165879038977314574212582485149358738114702769852004911858851763503278578460245037458524539568374307266282408666888734932800349601818132732461926123006761985800060863673121796950571843870704355579558799192879175668908426271681793707237983973635818667918936473543243906185957151934309508406670157109846391328294262017977043300686618311584840294824801830657379899595393577484214902064522190097149714507964683627551734410632230249503791504936815944958214089364335792353239598307282089422387016494193750860460955691244171213804343352187909698434906850530055893112782622791564766946715680897742228596670086204059563855476015003131692852824526897724451828803997630978404260915667887668337337759921755469859862026332846715559906818949148008237420980033838816722121139433591464371643442346825275349354641522284383713618022719455450683144386125381921035201081180751338587094861070666444359404899713040253032266879512292107624798257135651814567106208384244388375509730363849494497419856888588059703565447645231913314597778553197418246230334007856562207037333638720018962570975473209543610765418450623507605250319696284142889004636878139756271494754898483928516217633031319538508496798896760454770559227890061829651937758534197780349412566210786516725847610138746580191329425208588952984654759195297048362035239484665291132850824817098182719535867846996379234842252697988118309713925340133050643304339902752901368046547042492856633289841071592897465033424638858502771437051819322647868165684470789803912055307061976176023487968726807383182534486159869420091869819650180390737847337990146017517476317071033886822111907669512014776023488356873150552437219473954118244595612126572906107275202103438770464295483618701494861266830446471502707422386565291868549876407161584644947676806606130530681704264039624461071221175926916850565227790302732065060711380735971591328950832606167716255494954949650156394135020666073924988966027794186371936300637463884285429579953962951437952423440079560132729341412447754526159096417262092470249883255396408050263439710456469410217259312469883726179658354623414895241851437737198892120144243166369890779559034108722866148974840161698406287391890305082052766893830116848140853272567659659797422462062788001511417408678798656418803005921329863269506828066820296721165149595862282403945964804452051329698260453236863914556301436453762794628006655780301688133706850846621494023299040498890774102842545750999208686044516289193875656256732442797330578130320561572344286768819139821286590510704906164377213465653066239126854223146443052367894769790107244946238427745125677010493089909914223106586120801761757362861177660343498488021964692375709594321482315981392623766636076604542940096039871691369116500201096686696072052363018765516470519203571264768867789039604768494716344886715612766530778558958818334114651499491417575181199411651621452793039795968783707670087253858280741905735732270862332017955861801938083386956824473764585547373472298294403363197884302618013204904502828107937002990682548197970630460089604180932731324610148146321599366356466340756737308693035999608127184661202515885951867658754860316677244582636399872041077285962528857072800857331746556153678087743441633073514482832440672179275259265687307562176619059495747229713872285949501906714025383927934385347744558421405025354078593673819848380617202704333923934122746042285547580047102587033309232394209664715985768056030742553320852928365765584128463670300869845644364901613576742755013392661418767065787793437491515920757664507481224620965305822816380717630655914499529221981359545426415083964340361027463379740080692811909384553089959388517976623973522873089086009689943129740493638381327617887543345445144656132233188276030704863828463452538810753238661911088607776414790074757212420011591127890576585161843595110643358656839858539294338120512003355265251753018532673799950548897104011979858296689753970455212026760750352274283045156580117916409240074842937931547302239983221494607325387850569314729157409253397134459143839839602282584045867703384888153349126361769583601394515053739249128385897690575061804554793778682785468399052243873344520380516143798471493560640790566315752580028498172660881732305665810321758809153966248451720629367801278552134139743453055508892618560155707508105894525072683897339755293351334448949247572291993121584117994432673857441774804507895074081239705509866345182680621008639984274940713443176587852848206969182763307982234859694964820240088971892072687676503809913824893423590001240731666665000411195666396310307581934536358234707394963197034935013678009010893171667925926522131355457662007352082881553685333486015729921559344229579269148968998730907795892197900157790112012489497248274396209773093605650979305800526992087067705248797737192863223321217542786106645369081162308491281559048112297700057654506401607047567431583670741423543734976370844929367527786509715609469475169815616313384849163624700875070623631392326683044771273695493954829789511213253890647129893149362150210404938987069336333888982044422211517159059716265782735323505811317884760317336485911687613310304721833442886781766251457848712705488851693189026969419793642922372799456451811923702980800186231837692597182112933401735703685694394332793466647126657410742166969541323914984923995927307929298239873769621434838148487700671206909828438434955198831850684457852701635894620592514569632390755551705121549442181959647564008934150265150841144382102926113896653083638660498522269790833205982313148338394304167342838461083156114738021193290776168608915201588708026910693695758206948789540628467761862972864563906963103134498025315856807993559546483658362917314766602087658011542738366252857742141554523979827306681796243238144134209549003717251668454106358116926348641247308438553379135498338713921578300481707105256262052469518879602520995854916805198504259212166033283978068224107476633652482507666583668407830094876692278360002995588138706340206188282105364896247473047394136230341576948733315768164442124291997162336932842092373781181170305083686267511738800097986376756286879935539275246552538281527865280169740344463007789752615139316763860682778846212540997555751346286930352305388522654107490232669012401548206682491204403238341152694814218242639353337495872450768962312111182328494490095601553018888455532838529157518141548823996297316652146338587892058374495762063814493592636168236254404494386643090654023517329773170000165269557589860858212357831053386766053906604251853799721894144001597037863888448846793765721316078200844138745190446572215310954394523047415943443978329138999095774735104991584430489788825172108586882872625322853121154259708583707393781568373658031108497965896818813882100978491702389321298954656502224136720100028984702162385755730618495176804142412243274964015136312077848238687108604354254768914643354522887115738970362157856487166195798785315180950273448625190676798561412966630545667271348410562923049536973886214362954828295935268409161291962221905459690481538714062941748192739786760726568705246519739649319645161013509955267138155268826624088285306227708638473705644094171621825591207697377095840448241092862274461409378621341788570254197530301947981055436811672503574623912630624602975297389788877420500386436266026647845451011321529466343763221707648086291225369646335449454665382093152906995769828489893874196768176765388812098170533027548770889844827781819641523911540186677547174665323353499881723256999419177777416442458242071653104094412298719799285990164889582887310674242677554056780561230271661656099658807875176472864397319194485631018372907069901343401043213728021304028814373761277266617671810556730613666807344435575072856310722661380657534410957095529621021989710706539005398324661575945733769656490043291776234116561404549843758025201605178787256163224940619545610295189859333701439739451748751335502624674378648912931989315763485237783547610496177823700822286317730953533261559678514760520338913471078378625037282676397947889278503161196471566790191455922770175603488886352479494537913806065092698327229293585763311488496801839936535143908615540905466745457501839238573681657195005947046953263768047314146695675168139240005269021704363565521855734796127944401514720494740146157564932581089515936403424752670983907286747539017542314232455506022488924401536098255360443350675740670321176651773329368003612184207100204025170462312606246610378050078553999037460748591275293805846692820414893649400695819066051646642687882091776358153270994862645090727386719203270390686702540379070623913266037953378034806888980204360231702315261577254621157368523098346537678501437967315319390269349076160692819011287705819072770393781020058898184442580546673972177083248633611430314411035453013032220707627057147055057907935233846687262865023156037509336339968505551825454685581667672733837994456080552431042114513088576599828879173565925161173553756931807058045139014236353528480098601853295622744008846242963958022211962557002232054042538816889505080744346525133416153237629405346975366543427355589778910277359209423299207509561804943994136397819622046835443021846158501354149932397017252227282764174572429921501104616021181043782571459223318176968575653522630239070431567764866444194644451643330078964093530573050077350104818586150815179887449001838558388263972870227051157869490432589900382564222537195931129690285760458837878729768180079106126470157016322678766967326110830841520679100811250465093433564679493150634919886212701171813853636606104974900629916228295772480729653286927709855910093692132034039853322360919952291656708805616468282893637533790750211034735582306595282019727929924062192822942648993846836806823447228773363094730331409197491490790793398384285097711448214022378985994785197288237809482916760105420409766776149615350206738306970902099927569559282911601236706980074304509477795571000706388679253024623686919455140475889743034922219380879329001066850096155199842287089953032055258598075133614885868989064021676997010770469315562146714860198905146053999780472287729765719172316253435904572181716576353529623691298816173447985308891966053466998142415482080858307224250404369035405948254881990529855778783760794094009497095250507085056785851567676466781388291929182792348348807655807166414575637338639054298391916743415838859930618426561919581001106560116638101880471766278493135312418611951930396721462135590423243214572569866578466582869485106801815182526439634804279284862409482587107085637242420642431753340432086890731253234208390467708355207319638061417970463290763474726582062556262469504320175703685447901478183477056471810014120619464770615977377608392167114476394424647576178854051024872827477022764427408288168580105127804416380869241681267167962434066086341963504780397190910205080076197819292685723639882457166614679082416861941621167868983586195191645558313423069732394595802579807774086488630117099928586884834259988071452395890039289108691295981603956950241161880624124840773975835568811809288094437013711376844412084135527743607320950845449900918774442309901488695814695152766093625149035063330981838517119942633089969682322181807504552293417710145752414882275553129884040285285624895941434468002045855846700144214588824799347203668944210666546681603141075446903223193261276453299397849000814633667628805310162174947158882130422256353059895686066679768335128814467950353801824734249374120449310672608936091089679049723006005354438720416408192919473737213952040992647629006980992215088727615040075827850151669289972793756198934826045886767838861860815484743445878309054595622133005311506246140482008731903564520338843658923193526138610810761481609501267801786486862546425871070782915618320281751636236645799475379959434700965056216334860443963739162371706377673998787851284151284429610377566405239877854919626334181381575700159804341215717268571098836142015607797032039806157310960291591987503598528571489086266415276357275932470402860552442938984081375493480066945134545731602870797693356467219024359687632105543349964715868869347135650273888518530384425939346717354123268277709034949384665784694896250346500020314648009739429941206551443506678653838248812500501970473808397293547403829703812853024172183955038633733762726401652861175335479627353942949992052071892390813189263625932173179474912013213286742363478641565247417361642077809385046556792408479490727600979176122327179458382711196080878058438101832713663170031498445502097129621443538056218601746241961544765482959917254687985226421453678540997674228575455244065449851816490233329384215483979459716983600703201040605140252998484294011454579164522088722674812021501257761421663651602084825861421796554062477630993259655796510897274686994615678590501777108130310662308719078410546425630688449569314347896786183595757055318981809960832932615005789856839277910334116860088874621203991961491578161683703280004964971071354110046261330621958438034250356191868427796009414152801240791157849854262068907440187660492217728727277964827739472392625146285710892434628368145447238990981259379534432751808850809944033396611563807466441748555752988683448101186545369305982811807820423566301541673553119814346426356029472519776280857058954398463545716451244483212181034295061183474098985737358048075045803279983613934202601233727018768397036298636028246310411902598027878054142747389922768970348904120918526860961418206147305944336716038230852454643399659050306524714939357669252887512247172746514106435497750674533956549447195363036649175152021113207946543873200634302989681177389791381941656153711211310219113076706949511975541867541746991156810268379315577543990220715792821433753709283379299986103235101786881480786186394423461141965066079545326823184789240986364818336850065639413937769482023352429513434882482059014793993880895859372853147696074338300624502645110775921382576806044197833586535352801118597315099280330184724623215118847570811666018425504653451899397749126861264065452565996675060971859400434498992905981975200588684647414864587300810269683381540775430387928598126065381208652101188094516678672493334040424873209195804960914273525732948426364255831730999906348079221052519637509498078288152627949275475948219673504246467595397958841694081455403986305954332172619620556353272217159187195657468968463063734037384906205983853532492728022573809419588231445064037703167171957516924387245400620759616323232199042564593615212498726922943637277651721301546799436990774373694243279899379094917008446648440445172148066520057128929699117859175325748099247689765420657812580353187160858659888011147055899386520283123165907612848489818532418493470332610998529702625686108366947989472251125618539109639098107602004030061805476249239380429207598285074679289779735093276342066219880193754804924294372425399000814610993383971376197814783051788420185121504349727389148309140896729193949097103247456561107288356262148062987905143346617712997675448405539539808531164267298268059033135772909711331605222014194013124303925536238268652633193057847834004178666611808613990202984068388485886582422234739711104924565480615862442353626266948956510030088983572437740594539693932754288869938754205927911827450546371302740589490156550259789923732345885228230333762991544376300960333020699767416717183892984949297570701428382975404754489613461971611388695577006099745167898827593124725665913480704944584037714755183301975783588573905244832650700455793463785857755064940679213944202928595827243385830094332173113737135072202858679813727526843729407122994436593952523823098192865561180386883280522676003528128585660752820804114824291158934707009752971540674339707384251068474078971102864376620684270223893896737712528180540362212267173316376939394208005960018052277143354135678032614852761515349100867681295175064056409426316957138083376003566513439615359056637170985557953781337368470853634461119954974623513989005669602490088089627526549559551487507531004769522517937556687406955643692766100416612749883025014029298605462967723093899391861019157860989701766793400656290185645041144986230668057381700614367890931967806422617946731969363586616062375422085647193327466912837098612768887392801037243168743077569772030227838589843063153392097421378514551062840910218422788187241980692310357661395001528922784974132802188035637055233845274740898728957977902791417619187347416350400582703967528931674376805206977381112909213029972232840555928559062352374455086398666802476314184030338942313869507844804330174695376520058535958109681155438724283660939993482760656831838927843765405245976219200445297645540876392115031478192426972404580922140904630097249586291270539690932061071362342199768521778780954965761440508860404422233616511458941992332726339277643090551417613988004194908598978195915666799302530364912845514092304537432481482610769865471182882005563284419690850812167871570018940405026196734800226764570532659200503068948943280087158545842733102987847607923935921771995046862326848187386166919196526107083457276174224158690571059784966172484069870180811435665739209314948299900812827932934726151261567833300374785671389725118558396584388062125242349442386516882028086557843231757868028928704250422019050739603857267821406196755992794154710953588236646430328162354315047652924156646999596888458488512347619215666272938977350102758489537022100454170306405668356493251471345740107884636836773589895199674742086490416212918881727383375252251124917351079318324719931721571833406159240456067908573196932291904604580216411828842686163476696825052714351875350900698884591180038088593420648215659114567291923102306182191236804421691295455728798554852709303581780882605023882984335111029710060538308900290642548911423656640240269829582342007842889329828987532833089615998225994291167432877705296713571187356903334556836215683027819665122401013070166490778973456357579026394107467634547602934045776747692019084933471451292424216689562222544489190795166176728604361686468392699164313049105065355214466719705989728190983294458239372198325648120495987902451820133043405181173726273499630412855868193949315628251391553552072149335609994536266996937835567768099963915050297051475832430520032276230704556155033601467629154852161679968305437351695704173104541289934332200977095003483127630648669358014058949265440096101022091014806376780832476554845942201929013723562540922687760477245704410953526770817358280705529563255364356348718401325644770432992991449102093148214690217041784359979838413777464964741188233677022014127341199268623545007603053645898805843445877736758902934417657244711905884573763925921333083714539078389570148680295123331264093554277747749141648060104860939298336020536626703970815542574193613916100575712755164493906275678096656924002487957282379423897480278896326899907076148749409464018618639483229384215473730842435552638216093391307456913678841924448135836945728829907884290181176022859832079519630120356742743429701010040692971936301570636357258429184411696880722798583761137971304290528451452359496929443075226695431804234300005085139123996129883415191996937678874484625683289557328578763846927801407475655438966943935378821873991638000852340323016830480805900097438059908415831899970377216954537119780791495778858930491487153435993627119021280374661229442871904169427635348275795669392816233881530000750748375441190364364054560383930108803360366249212086100500107454407894082860442245158481275029585860790486542883206122459166044114072097927489079301133071798787784473776480367163804606108668429860159965558250022890331752341669884414466535511342817013278945309908162597899640674904018990424459129135999736693748665867525282076701758201913682751076357552556471381695107924257622342984918706295816258745741523873314645587201520932132483339745415612295549925119655363027409750928470733981222997606265775652225317741448435882230100586240073137130674363422574015110798649115289145486832557357824614450806653704182298050425968248097052907889617047708861933674300044607164112360293478082025241380706192871742286737331265505861496523693599145417264097894722525381924563186743805509213137694369494428097172019491214024089661414713663820831108981235156160900982657523179124366182128736200850555941718581147532892933289996244573737557394518536501956007935125539308358293160742898179176799278130897354447111469154810497486450295222591501877597936191311334943898061972600431750218736270371278818334450451080706790900987331148655989117549720393260095876758426910510680776990481609837270623831190126425394691904435587951779830189174119248129693376076246598180144058467987916886547260456316447368377832864938548899803765315627796521450273638130279708651683710424380204983790789405809566804403190058961134934543994927527278245398913017903021917291222234369827934196193394122040556524814116042627800697557932398317189857196692915957667314517995484416513481284415507192950854182278338796563280936483181520851488649540955960244421046240618928858480453353916376769345636972095551699185159933273265871275943233892423432847333076681914885855640308641912079187393123784668190682672027741191172001414286102190411923052643278791547501489518196461931425893672894722751736819994360914764476561485191406815542780196552424168577290793033006188854488947801634243685712241197719608987992301562225023711014565466338175157859672645072120551252254496824076466217857029540777968343707925406905092470984343108531172170998531977256137721784997112926744116955420968911699428278824679004557268627422147012403737637809582202097924873766167134460748837220072985569284496560462353282427250864974508489751082133406181366070169735528463199311182030487689339161189142763285255172405427442855135780686569637915367829855415599670577022996435122525673081719179194047556044176994639782766178182541018284678174517515724290589917290796333605054615517449729054979924528739091452709743083100599835236451355133879851927695485060906640046504750983559131441260714064841072656224328002028496267082044953327214263632753244871017224392622497132441715210303603255748267520230511188620211253647227403901669370760293898381741874726746586029912882431296801277157371222479177243081619455876579677887388349346458273541956870353090877005024342944637355271260109115268843707173090460940624911286597830272946155978799067779530330197513038383038147584596914135664522421926729692479027645107684782492301952121990322518113348424996204612160441630038517659446105068436248286360280833675444043532920907764276905127348611406436222972450204235395293647814219779538257838079107050947732805651377341759720595704795788383206859357265317113347619593239943810889486416320664490467174585635159195702353925816625154125696292364654015530910263654915217688632478934729503014769940140329034854218786624279513181753313502654814002598208779816862526977685945379395953073420565459783243950289408750801402102026878838395149967847166138743970199479521638053546291167310697838209743176987638825072779409390245448828786342485586616622130586899090169013280020536742152309099397411725427563556361039160902623926396548331368752908655766929836155968743585854692142930446201434638622816565765401068647355807575019892505849376099622211046330526262004862454882957281108832849768255052085317912757117896818079269584378565082305685133900899338834351340702328938446420400505115937248988470304288947895438667896806815618207104942289870939728254544556234085766847288796091354793954785233359945692489155692324159744780178687307852569779747394456951662407760271243943659744748850562775953238793774454709269617146212497047179308939309864190945164376389034228555783022885608817953403874402305421504889324958457357712420492959820594108943940803179546937483253488816271009727728454377852979772833519375063017738282381781516631330885260565667993583953347424590915291813435602018455198048128967074480826745915750018022538949036648285291623423447895010397087233992589066520957186783581888914361618708523639432387188837290893763416672396587684853958055710327043203478714174543798575751980634815498076440986551260525661052338727987962596163994840259368573709117302687431485081026086567997341561732393931334080579342351830095017966061989682780903576208901298401712829774521708618463099553242142852324263556005415144658649427975208932169522277184928591869266892032840395998962734510984726432759482535690460508353856380450805199544636859359696048978128675083567863453039667158494613247599053251482475961021106422054433508902636698016810173122476342863555595597760147095748800069288490790340391257885460867653765788697338334227439476498245437372811005041366832813198119012471522052811183348743448650089337094535977394046349894724774469165372744848578016289543506560062731597350181504211299566963660930093172076342856296749833028221557978242491250214103874101567519906502733006916927539696760216501939468297547342200937197947451467781841924872154232212435693102583713648132040443769986201475256923069756141662582370648767710217380368121786663223753876714065713087914825237370552442941791411104159890552176686610679579561116606883192284350678330454986707840088739981396981118600880299023575213816799317088991790341207339916236884308378991311599442742855851611753187514201196343051260921055356198418937347074680893420639614468225732551341901051016121234414160796757642847068136105300364419535086126018190116673812641857590492732738414558084305220127610386196769500823998706768928305428196051678555807824337882029550397907131438572823355746041092069134485123285459519637597686379755387740580863534128232956245152633929879674745762969877977396608888195173672444097898867032892262607887328443992843686407753874973847179572698508310889637407806462278196282820770138192233479575557487443524045885058280093950194251527779226369679745245134312776462909356729074815824606395794041777321900253501800278782570296906673607478119745358255304484131566095973667842984883657456486363685460279690860163187532843472804478736558168681331758339712290087029759465900444193033036558177152955969430216908725556161578663097796072565127938266226897531076759599980139886625237443155905598634704118972963068703278687498549023611139254473249028091219248175965972197405644497980820880703350901947935802172901804715331402661831002929604512023179804427293579626284391738027967461663774733246303842216079401253671020982664334044371012165692653624351055054731069106330750128337708445944558757989596961721966147139974164516229845544721051681098453116037378357050084292911829374631384416362375470496784261218043277639224138180115157155188352153237564469941654667358951488532029628011327744364729615334160466752772855353961459559057263401690370646162069993033109011961980842710165656066850996472009368267631680426457493358117574049128183324301963366924729557653156376460638579846488388137164322278564500747947126341535140228437596344076610078380254372355846045407817980785022064288619320477463541889951660237321122058000170892624398913998360738975289208980971194372896393193574306764766506048084943429182663440359733936153492761493224404051355997036554882790618184773348512963193056285993432107979388717317541910173700957494830492270427447591442774555009771296043628902184737834706462574189886442838384512615361915363736332219374541024019791265789334358090871927508318557813100199382626262824465864126805394181152441391828124213217581544634688850936796130836620323289746437273797780966458456503801117299960356894361261913814828770589114784859754548712393320391385871627536052095945197364001326408341843310288422787112251162749517504134019623846523987124951146575887135987501579451296921833290108178826098438395863837072977711577985043012377580567077630823127521542475240296740624289759715624060129923871635434160593267055132383592220461031087723783523645388665952702541352062709780952298077920761842689502159314878836498522912025024278517272424447039749941818107859462444236797212892920928400324167208089702648650829359460643130580255395185780054087331743927281293494882664565119361767010894493831600057027330222373378543347354754721603866068425137430986216601291617365654845087551038524464083663293410115652214871617864385373741997003047337427405362512356714944764619849382679142532895950981772601598310097450576021564957334984045157025626150399616936325407588674308641015655689804477321602110381817684642342485336356728358367927977991924172843043362574996326246101942702991892740906815519834878823214892270210311534414207658548208583876855954744788331412983629829784695462460984880570823217496573439211604534096675267221933462591695571211159104318611416400957712279623426786392887351162301516316647601979488596682545579770655749997286853912737042874861142525487844917376696762986344747961821891302737618381427994459499480421223346598220406153255292784513410696024403705009784466770899106686999371299970258646953532603092915687537092623405834351014543017370198622012030471337270786748652213803706805341668364703490047177178339717878814715299592620341405947704298389944137691895576705505730403476814647610738871043136802771716719229942879220707606717816431523688701939185776047854663736964441960904407800388652427326040589286364061956250912114193293829496594045480976822240896265078418577858662057998750010569101739733359323936000567879395927393668604881895064554751498206460655733275508376462295822948234722915712136138888427917078822913618751862737963018840523910967706199262298882329872859254157643966574318734560992614385611202008649028827519379005359252954302800183719491080606808852813597332632678694786254961771386221465925698872297578699084518684594819321772960647857175152353035674724694649826436900972333260891253852689681146790321157332239603399379357877967007238620444989581744007008637299818912360468704495154220055287915660083348330284979055064838123933467769379652799264191714534515890483768760384792997287218582524145544038656925438649061671118215850213615817093346174411713934777213067743276636993499706868874705670477129135772759554238555992915503948994111968549092674868728807906536749188373953501867893282432686781316102509851944190455729536883923990459752704377759428271691396630846198306617892189344325286801700869473704883213250068275041425741853416987960734713308739157408041410222313894255805539052680950351584254069703815209514981868385476640406238750767146245306799215088763874976122153217724954874985673989544800667051948631801881107133080907243450431537351095934887363721249728657580018179997237806028399110234598007777220944715417572905910750480702888271721222092774184270018242680796721769082703948234036708352213725503775721855092414055327287775559688895194718202476265381277790274320608664151023082824581804310015627333004962950561161997269530060813695498699989434029172500301619474397329509303901824566820846426860416855822370618138111807480205824249632714172521751036147182610936833419609936481374097618411724744843284603653959505949884361544667316304175197275355936411014659385741311758041025915979849449917631912093384783202225879662253895081227726014982727545161724715552994200310715471500624940092249363171490088115873305061862808973272933642631995937479906314161444664357648345765691769801230334872603667162301564810961885230612286305482282572561511813545607216480864044918954244978632435135701160762491544113984302008967864436785040929548438997377032565220621123026260111356825064423362353766857440973853760894612602653925462433574976518316555356972095381571027811389923613731061365892963950425706735897282273805794697924307782706104345651616803723293773763117054064734074626960931782518377482348726891385439535921821520195821131285728904019453496088947897754822812797770724635556907239267942968313952307188292050611094159469188300955795558835756440021912115534083671100941432906014790326001233159102545540409103796086085425480970944394521073358061815329793663346429705374785141942568556417333914589086529123393319554282601929965581166239846082063471060255293361828319858165648914187132974320618654006512735003200219665626949527659784417147353705993003710815689718538861282086465736352700562013781283393050377731279432295571042536377860624021161665208324870196215503159673082003200101592695213339701304182102195001417640978071542431633353386458812224566273818855096574339619691914210936672380738448850500130325271564457624351952945875426393950186332441947486932773384079545539896271236620654384837095083008456449752151947676915293980285919289245512861625762151230551666066398733972923641338137969214468243822806242583794238729826969397468208853675832277812220522395718661869519218895619302404284840167705869075592277345155687026142059514933916743009726869541456065989430559828227194188671609653392224243587387416182037442438147841926551185182230174214131891890262761662728066039556758719527147138651468346879005801992442654127049075475748110259363113201560465296582338136271142019269548527380886683090133304201776955446462022597320540803934442807766632736802185090833274292660706210598888094791102820706026891282924976670666671124421220299028941599935926164291208173149951484803883872906564313087966554825899252372784907037799833450918834075265581748596647555019044637669402341725969736612373444863984752874503215292070185254470312773978635966223122255607406906566123740821130894485575590805374321359168838791527823755029925207083442916532423711294623840782843776549101127264734486371346473351124324200365350101700490524125505302815546770513704011583870837726621874993965950570323105126235775333692024532877500245997785480286846347335163189909936972058937155222610109648989365904272329298590374325695779806572373210196041938700805647686777481626469982028586303026400948193778196368413306502107150250231650689782783632836319919075887445145376310371027829207237032547753484056151743747747303961011441995264736868892225418043041318538807959586166176251075838693629692727838315800864343389006861818223265547523246882857376267865805126036624647767655889695567768292285522051108704533940798552462972364154211322003893403354932354008433434420137187287689622605994903619563080255217639438973827498459903753801610169653160054920135010180656411974450012512617748643351119760461282989736819804756401499525506356662412143159716945484615049867736385753375222432791399351002235507575155971610683751552484407007816720883747690569633616626206926686581189706490843719414780749382197612008882484007427793899069880587739073237555203398483393858828636450892579189625560648756039954314082263746313302077410821476532780624158681623993837080737766079389153603788081403691545855347608049775663918491917454889437984719157447502338049354167412007515705741914508261542122933348712062802489591532353892851740529739627814869032658533503413668711709726153720219488642637856163405961426577008913876467723023739071526174474888787118337854454781115260231429812454892598860557167477398209457968996934726936932664602418219646530984293733613923619067500490988885808856028682832346226926987472801727132308737953999902503209166918290265979892925438473336906271780724385424912367432317521642553243566383397128404937947244664460281184913342235103216399988024460765337755601207798230894488735787829295536734975803462487872365749990025608066139515519992132031310724354251278381020476839012756858250304275315806173017558697752577717380127944936028668700391025989551445926436587376773208972350380559966319474753566316657557896858094229938822819310410289905046418625737390630872553522543839809938613449392282807410680051659553320806399832054675751176712586257573476432407015064020716115635096502380027634115641166678903040888901824712076713367027903831499741893648688925717037516659779947179357480403031094463203020771140560121904546982387595676517774712440856265495771148391132774542538868283777641234398315648184111777479463202975568470203942505756177759623027323987791447629128345358085767896608659900138022411230307730117130592333929243568600249692963145167718099426368273187844486008465065474718174213680998214494352167292977071900693156207408333914141990552859168007865303747105065766237682234936811386621298015865107420102755409685355304464290371602150887777943668182657088205972721826799540163624503300951350180432898774265186342970726616396692476753149834401751132728083594599650202420312005674751856859303996811091630666361432032217370199834011593513147400415573709977253428762756995168192327343867607248944413332912459546316432431914145030201662979503797855937569843157908166151915751368280378284398945190642742074694484383169254627723125806868320217509614837566047813396984962019180631251651150122919092109397110027031265577134856111262128844973461634839515903939993848103686744770963143414583280683588236314988183241217809363083670741478878624513581846783273422239621189860888822110512055270568086040946619844057997624771848008334890648618171702927734951400980903471013158819921831596187926755100594455754076521625378767952789376658843068212007097022694839911771555595026500864611524315333040273702287847775742365927769481366539080218948969871477870295106183861627707925455614007380252198580922121447151423404674247303548684342343548348946248424072836417097255111265521981584694982196135296278775022626887430416847790419346417248312617258153177777509275825727444780716130444558376190099940607075382061809488505938658396868644501822824849242547406726525724998148950315268541095921524541744060954432936292521435971218474978236524092819666917829595472075416520173045917460281020377281090642086902004950710734774374443430409641929356162596365847775174839672448199512847712803537606512521905560771323909084973635766437037000607440504034584852261360399516862674826566029603984384474742545042975658341307678095603989950379031170766881272617144629795673032202895808993538375899363647890173683561278865281941423518958267035977838196399752455853450836312376983282987034780981476511102103918067824421689882832558584100566803967441707980116161017475693254062477091092100120012277935795292870660957873820099167946794762946031093054269012962072686216037859801088806336423972829571120913416684993111165600410420731752512148705794509972920398272160897076147615573175145678787519725642843054682501585831136318550627745723245384638923793322780951505702898226587659501619940336563086639437398856882676714699166007581755813988118946424531302312515367239969966806052877285302064916003255907081023443035186733260134309010449544066015878087745719138776492792295185564787043743179661766258134996507077768096320236332844757878476105480123836946937941478429199157278684520755796247730449180365353465670624078649933873369690918788967498004368671777628135030065636693993489529914470348224838252238270445827874826633928698483166768042300286404185476363837869670670729046593611022372565351684914290823103889315782808595598995268349306940499667573803991928627761997627073563751550117041252395667840846101394296620910397695039383589741908560835868955668045313811282431221279591568255591755153998993497841645705187508363349036087147631387100239820740685541598834460304288007661676228500492020411781409598346320025175708550394484619404560307577989445070785947115155439177909285161994177968662893558213764401192656579417043836893601309365698708665210966651501970955009658603006432082204164880055664765038598491307542533683584721300810539816902477635887001654536371236357791376438098786229324735518204782666507788304416051863061257811843147617149295622413601023005281313136622329564151269638345305078901078843492843036306003221600960501369346052023048284095975071934084622367329686991789003155856208593814575126345479300364187501746191035151663873254429326049644727067856101673583722197038490166537202125192289958245929392262770576826445662348082898796637721173630302630476596361082015146865998326681297387107587046911380811059885766711772779285063952656560017451614335285265263807149131769757993612434722201250098196456210763583586216843458926808451268980341785952749099204811955857507906405350451711051003338702295689384208941993956600717754313834742952747234805194291799468738984496607570604073967462234947874128333746784195300095658567922884374426003507121128966029849182394804615760034932936205638012954848837450442814707921118419298437341142816702509366861202246576707561500187518213384030601975587425790794984127066484032113455297094293375698309571031293108552438414998648242631659563925544147337040898426091641178470590469824699181722644873273956480428873069334919337176715738362237541794805437079679372732848339262737429291362140860417223984137126228152492099880357739506040847428371304333437417908202105216726595162194132968351640557630675096951631520207842283923124365542100994399599357192497627541867386417209528405789659980105265999892652550661490682275432926667429486228549969045599581942754177232312905741393500026005240691309855534243957656846199398174696500434387090101811556798042371039617892398462946798325986397905825880831111898063649338911250447822057560813631409513956169024846493924394828026179028717608036130011963577447788199244486703519956032700244636795875852413933080157600594730636889450815033038311369401545906288440456249139165078174236370938645631791039826446175541843573889762083751482506952040154687414988252728968962772742468706266789565348830674851765883935469215401161832780707428434597999212462416950254529675506475343342873428382604527853765410931897370401400844702269976435105976912086518671690624950893653141092493037170596497521995221173294519978214248042878363750748897274748039838737791863617211973873366171526440129127285312589295771826071733712039611952039496656400480948249651702835744449365863660067528419550878895755384447071039053528032014884371177022066629348547411730222720757889915605029261706487005822663373692054533669710296761825112641358598926490140371668664224644599421357141285869278623067535738926969720970944131848071549737965765591782561909103524305922488794671205057599040656832720776794392768186191017373768422165798121136739771844812969863078859911133177023033360862283090090112642265707843294020576978327653033287937184608578025871675092846061840158553568859339318488624545193487977019085462436727064368022257862741766959100451634663012937400030685143776115326252075200908500921159371296277650968979113565098010048739106799597075244228664228152614633363514314998817290975710518116022446307410741995525583597269906959266191302578153842795420018836343892090803276531094722300446776115634061558185150006638034738935692539197428055256619522015923281292648586474865647798202930866801775419862481020279626178638783217790120474142137783898411538081136876223169193175481831200575454860644030833674276682026728269029678041922986434240535091674148115731048320938077413564323681014296310346501123210871367663343247301961355876854938894316610763936577597203019959142534706895443556020238678227247749233374626238991966544887532322756974969649896088364609426224502270320601924965327641344848304837072967772466045918742489313933047891226330294237396484568068096638762947034255772235709601013272274422796463448152419460289997188012193018400274054324257972530765560526368145613384868527291359261710285593379766714861285373859651388576984673162052591520912628755955996185171546861464046128853134739532891138034993782819405927824588971928934075897806940002712960566006606667911163295439866579518581775541866381843439345298224065799674398665604891910630504809637520968687963809032179665469636789175389777816526219077384832840963673285408010361258923808380693435707355336571844458369820710122238664872552143204512514072057226153437385694941013287177635096252995101372202095960252565373577435847930654026217405087104277743162807461614817021682898982731787157915478533662069234894881383651540616896355991761070242715217059053992563521251475125561228837871377215532040246191934525903720735850922446578335434110426610676351662132619435236177049300603043953944260712633999601032683855334689994927970541604186394623168098715868043819968002841876345279204268744849730461517356867438537086512678790228275868514087258622647198997364050452076114324809202913237216226553923537219640637321553808124769890562161491240908363584843254302745753809054716946162057111254628689144465600070417668936786441422556301689028466613188395885616042546712665434201043616190910718294136438003453801853046235062421051249817780725094456208151720200424611024581140709872621250742869266208407794065981576959614268977053627219880372210388749708367288293413796934283016938386783713581530931756013403671965588788898285772205301065172980934292547762931248159697279140420962988701610877747430710770569335310932245038634944909409207147567831693653838824971163141671555048258896491079417690072408721599383518987036790570328839035010559124620806873230031262933828014351246443164915701426248025208113704553551834912074967539031214977788661049799415806098958720504134406291307731489243955986582373222491871263887827947066218604590490854834241188336222062389671198519752448699924192983075788294266519668126938014872577667765762639942274658472243244568183501329962779918673031200577781889826943975442186045550976778021913771195713968304985704069447949196275292506819352756420571111289008746777824639229320063500041569920230910231095760365997853823706531716345887473043766306151188152296811259297576231663786205553695785864041416679201945172947881326197905250120409148889628920509732723881330390526124466256117850614759885160540690105359947906530310522167326746751134145762483075948962433589520981667886192675706260102537735447891904977161153908932649999481263417456194859869036013753746509117457389366469174614522745111423867087812006874461258415206206216204504131730547049703801174766521955670508851008402728530823498927888419010173638001806988945958773964703726250609863849782530784479548109843705367938348498141783966760710253285153743744545008898196643585940027552680009699705847405435215288188571543639018848291316902365602722058679030203644115131276321087050269552652015074936752695085883768136640808828231911685705820180425983258858732963182865461677200683192773262719827855320315447373197532368013515590588267653308310701417848861363115682566345308602782191806355076429580680856102437121031068008029533364699986025302053027842471428405817343071938886096016160734115728637430277446821970119706900349659148066379492617461353606999769602850887704575382652296171778216301042858354185644785444317883833019987960476983082208101496743746418010080596653192072506850407360055380133008389092212695447814634375606834869053206891169432026284788589618765308580150632253490966017309331315302978652088843764158955824905667387397251823039527802869647081409783367599794705603737362000887558332273198446705287848989506452950223516772128538195016413513143331193367082067757821546871291426933899845663922101213662400423347275865355854643135025238923696604493961516317504852110885768034692795527844841412275975397696356636772190374227364410069508781026056106605150426826074015523243489438728047191591849089503070593627216589505883471552543404042156134966724555949949895973252084621484841769431679830017955848016909109556764477890697359595015011930011751588198693903517274687099980405949576501371966874473867830616678446640274518893523993283834914947413779260729137379799099240288543769996906555750068552744819671925551273592522658642986228395741001596443226372396817197020734465337227808107715179749286632029681261682482614429317518665751964308257679557554718042501112233139876262281380568005117149257440256847209003166706354450405234584432113550227462683145923601459099324195527794067962429610715915216947137999581549895403536037826466942624470431565074989513020510839746529500803566384383951908164460985907803669403206242962330996764386050542039120341208459094779935201863913017504600637753859740850622400201025517668427887232746755143172471353808365478241459207014768148629565961419730122673507782601787396027456409584544641063873265463126227537508434432063045300422790013375174857606236850729809154202520768988387733996953429224702228402512319208149693346875077427866093087264258233965936998897415516478892789143861618706584432939055946067760804203779588633488259793465420406909645324963036340220314136184879462929718322399745217096003703894158147130555517322744859924369401291006248110518068336290193979214931208485926237856819600715094398898501834121976482510907659165938251840787652748905060245689902610227406284703953958682910187120581205329250802665743208272624802421851884761278787239971393626837310212141342969931474326627327420912909639951505410515837214269605579864196318217827312212162271274698350729085913090513907964923749926166622383581806666971579843371690037282436185889446967716096246556618432794537387582168063587936307421414858801007584142667535956339341212577528539662157269274732501656732372679002896977703777949641638236097788563366213355358184046731225835441463139201034347886676995899353565394603829460973959655845263701834873553944883881508653555697761118428119791879562838189202147200684799810727900670193965879385489757449704913826859006126751875542321936696916996402527705313966933780882783844625334919078518857646601294148039563351553950285222133677110389030247904145185478880398926248059321882933308656254159819440210650482628873888330728862527110289253035253071693297881116345515156272834972470844286655279922394521132775131396698794631324247852182222203193937926459848885043850032361002366021276979594665359439716928365825099704595413692091177750483612264477734314718827795865168661957469227702885698074961577826314181089382610530605582257324898756986297046078137760893314843715048755546542452357737369377054158872605679694046890039785713657809068429015606203641783927913639137007511620017468142793931433056486844860103392192895948612671432095354433381358820682055979399479672858353019985549067538859803286847453804149923543224321484081871902196118691737447545723571587773832221657671371834054891889458257717194142385852823393802320972134434016273497311489759457505246246876487218488977787898205450076592505640847690388241215072405538220844976278083340962176146744974876066025909970552024860177460021096894160250784924496771681639695524638748355358723197924381427846353376912872243571340446432233088330983860175437354083406551775205193912578619169223150096739919294216507284143163420360218172136786825677898010899193080439611647757623012664230464530363783098682838593258357650525694356097650406256261938044183143695012551090147408074950190658844986499031804418575961116224640004962651793461638455897745194999820855539860485458335279558952115843876090109443097626264076672064759497024516507729044704742983924218370615743679146697905622478926067750427415085105974529051671553688403839448889552516011045039711156101272019593266218722502232828077089138328793331017882509995343781287417868873665814430082431667990109908824779077079183747375406201980430830475810010724487751427081356359276149751382546928237500312759605749512081760617939939595785585832067083966465640160536085243214232241869988027157946520020254964142530778111939558682050905679735839578697547900384278808722022957171623617220923951036518951800938235356611165616913948781999472977817345925722628510767602956814069080579649097632119567394933288462159931354520202749001466562251626663319334541459921655158454255091795954782474002023201185823577010658345209736755687337180859623836820951812699269239166237724519748465823272468784983425117377339501085011243109020445551605316375338410118566134351563925502518719285733828240164559773154671704180091636496494927921499166314157013506694296184133855975218224772688071236965605566402647983196614541091266568074586379651974455137170269855532162560769117227775713315884945352064793457679972484306983320162214019890405136025499918913151361680957374474712201755500486788029860676362094979997700079378611017021520876452085423643708568006907005210015041385531205998124305471182464647225456526205991431608269804481342318046348024081263304328116270352909756688303494514158569152045735964869454514213156364173543683097005858945250790845505860606827292633709222665231978471006341958873251211185396624002705379408031764802499710193456236971449568215595271633134179333869410495145078303553989823250449138216577857511130940682597868234500180080433346443309345003829128652465279838858549266003036166600442619656926158956018608270172784223973070975264428645783638693088212922077594101392211631083838228440203942298196625067638733906731685254414279498931065158623744407544993357095348737613213258028011841906763965824464220948130033118456089966123523373033107916273331463469079599045422102009169468155715598775877291239120431356959171782597979083165196567488584274552058252812915551898283896089872888487621559758394590774174677136740653753274637331526363104934224203996779971664895431813757105543291224577821017201658401217598073114027810619544505984934505772158229451816299068558267645151707387869299225221204778705800178732459003157603425141748415014398896930782565208232276395388035374982526356268851255359982664503243851846502864594899362589969367224663993923655850180840122323606574782819038634140849891103719173833312523550221958693590906267069896693782288401607013062834670893706228535226186946290539121505808100182120782703867024589566823317822102063667452538881544995495079280196467751986539099034307446770766528677970911606361879915925949595724526194328398328981162489076064956776271528793350362065716806574754773172110019582250215647862574466242974484210333504768430215345665604893545279428866323838675096062093379797816078092395966230776078312396506473087127858270563588478382103639581542189709151706111827003740083341519399919931131417380526796093458780384694395408282525239699127738068607875784495855719596874343665538730725683858014902867476888476147084531194556380094681010941706472826993107879788589112590691365480491458092357532646132933347046192401956881369552168164172169099508131526164903236599725097569756691895555405029424684497334914291749068798725890219422604051305431202134568888901124968238844181418719503855309581105573823972823931699286589494011587053742916518113840155733935307063872620725254306630419244717424279276996492433852489166864299747743173751817343900008899292952550578200274783065499215528995884711703205470748185783542863963314671711173945956983786612452160411638775856644628249859297104626035499640086964521547748602430959351642202892600045261229994926879664300266767505404776814238051714483505286477832182421198194204035564292831651609101279139839091749459980215845250784677555996232901709084992597331089090487230826064194744240319502133059304504486588397128893547880075905313972237346786525655083719194356784324948505257497168757230663747464198314830891867590833025134680486093435851624508120800292110301233072213599308693755380792024661662152181395048715302296442582901340415876411381695355912123004587779679352145517501864697164622267603144100565385195080648275095916156708280622658298585756862616534045150200838193885292096622318320490282457502638234505890017990983683576586090837875235665738610565897130677478146071862568490822787808838071612806917725208539799238014849124338932446808768639340230616901344400571956120820626197508962547939820400554386612758198272647743204942915109071806134694187422613708087148261849602401692200541669682058038700379203721304645886746948238835083286895445197178285215748412871651715678468893324503157639790461092439171359333386076740344774595363884515004375670226750898740272145503815790095526754197436711503000091935281025447568295902626986706161835920775155883053305668978867959571779136942030724214213871974891095262653854919661309523095943763822586954698893241762856861872383523059667046223474582499215693821752564917600915431117966308512589900633263013434918613855413772041866675394170642561120412978867957404180505992395652745871046862179461334260325581328805060722850202272984229287958472780900404449011432149842670957853225780214395039557148286301384491427926944609454972909611623464731956775898266627131741474948621296216406856490721231024740952927692294313258635568885778108064284831920590778792767416054286185492628847318113602697851955306287206377275384990889419999644393719501481968770981037055962597153891194587114769790863916169572711923330208944499721703234274383761967733403540340268140093866927680893203703304216172979307821807742655727662044557616492943618154500416365215388234398912554786221037564327082546848989830338667291635447525094626273443496247585878103992821823581373151917360243836711771953210294909437536254122305087009689764002141021973841594680403002053367392825044419237726934158399890363802853944503150164572078776490303286303393205731680458359317666103602202473642748079261478766184623480974847672383767601455273628622087017946892510507627659282874072379537579527458985121966563945675822660425101187767286196634278196895289374969127533276442680162677874353393948350103658834708361098879742137339758480312701838219576712279897666100968331017961140046225167288302416912109119893281249245197609445086639058814063386261058725633754999033812362601872178443831184422344763985909976023925315097585080429531627545945562161489697200400148053486402254154166365707574560454432913390816009893524642529168407196292374284853195034245705264871093955713495871102510898673973908487390178683502422010733078783265008860751402285651858591470392650878495185413321362974469132929511754181969478805088766808963029883601022788493597327653260385012385824427082854475125820872005224434414722849931528637397674052049751744378952334676962128586234991469034854348733582417295937158891169287602118132715072141891379283034545423529474286835740812371186337215572395346692069267499169568713868789898144380703998926561970196656588867507484378680730336681682928605691515888629653204595896628619582585300830886483869085955226889826604532289665284666331693422764673601203441114881123058769916572368557143201261110360735655673080851417229036399556320112265209440976620741414950085077277358384627345441913300299660249420659393625441247957491100334595931969854312027225616502471844853753093924331578050287232662689055353730987778025367220141974138903388211038348914231365854145917163869953214108284086995303514771794853553932866097090277850316983843545319300355800827140567747672388622646092307223476383282618291620838171580776162608863465879191129028088900299480651503748767446280409300969774724854146045295530123689088583951703448186157308132729241454452606524082483586299148388669560920946471449009659943737302876430409887928379120373762644472100772288371160932319566714951167361942165880344371784820078091147942238480378740249834308052214254119407704458788180256554607719327041276952231924331240511021831887451072184505713642714581628858124660962773745684046871695851218604314597814646123076763938617438682750271689814654835631979242979651360096107152498132406054286865257338684990985422364481717244351418774925971131965412578461229599926303707670887047521319370632980235881530478152857116166268554064311645024590323318421524940960790967905382399347969654411441007075831727975531335541984341309880863370712410876061997278846693598111585908070598615745083812466758702327273446081245416324253356858501822627400368192441436461862511534790300663576839917699446602992017273080884914459067199683650264549517094306975733609585322640698864454854376568402091161152356729641794367172178956722315558263523980092666520250496220902634053567857558135335687571426904147249220303352065223768731929357407883872292823780044671876292703376046493845887703182305711604741226753279077289943247439088245387798521990074552254398090564513886921861652945315756582006759838042448972452604714317746128971394663882602390484397755573753335248573646644666687148475667312620955428458749368184907355888686042060578068720138979746501302295189269055746760157215935208875026215220584555906921752226275661990701335749702132980565148822567616582214640872139843007052181365949401512572134777616490274556063526790721810869381217282478377170096873809601149042681092543318150890437279518401981953364479806777308986569881617517370012975934366746336725846529541627368317031794312209385009762428390785341168694351480262862242417123984820280876178508958311589117821935963357515217368528305804120113320153786924983932820637473220370020192332506578603634894592044763800454864612532349850325235525348046967931344150096101475475945439113960910042441922179230544779114640729903779525417156611829298745122257981388636197121766867061473171648454905596986686060949345838895395868822985605516775701688168012161914746485042986327401662225230932612895883825461522633335430079552628901956101425463929309369870367775978535719662968372746296996239643744856984037718138603744283867250761068406788129085319958562977030632960110096879683511177349785089142440168869006771673687936396813352899136218406079476562839718414475622086062960990666269175391732096915331098553876929653661711156358121918153153801917056972210658235801251063446200901083487336600811083571657342008272419023796883482407988634176164852382518517527422979494536616995885738686752885708242354599334651681594407899624720721525816986669716487713481860909597591950454576564778433421753949749126481924748053375451913670570783017505874910977653947203419299147130269905769788671107115822835629065534497683452476743337695269847089209832227523760481624505695909031919653397744331392133262641718620191976049830278594108973143841335897104368470291779927355743806539698398458148406680461238808457902653559135521565228496031734832071988074189062461305447276166182020753993028791602124711102712339367766338100792187479394905382293805404281837754267556079736939516442925332957351918580501503131898646598156994326202438390511577212460122615947080765109457055907187736039772775034866805694900980976753321267246844248526789919627821759335424420443683496570395207456391447371179697735167288164507043540347758597847069336556409276433199085784489157738965102345357136398064342239018659723988002166909582227600600184582320471767891117231741513448253126221507215880796615538722102384076393906250045779411862451630704843254995184162120123830174348942674275798424657048122928312821998553914790814856945972289334040817557344710571467192734566183196612599306143937555455326975451906072982947055153849860551548983359657313056253582727437298923043321860084452473589199762453896140567695252516346778286222467148302451350999413628193867560914574785713829368744002134246754564984643756966182778193138665889900893356953593893358405718288970029765411501962268644932213372021540145198709805536917221645992572601771735142607015509000086690798493900596951461913732674569835072797490010083418921765135673877449071087831347501841837834063968217455977382881691942732837732773720408949300997239823031570348327747873597044258628793028429870344427133092240783876653238244001279379246849920250823283935229072080966146371070520566725242340146022074243265957832624948006856440316160208516962089935347852479099405160361907146615527179286659274094950798577918092907873748141546750625939875919239096287435787136211549865834763839532010347721200967651769976329930726705647786377198371943968693657167178198832325240881257210395628463833543884523842929508770650016988802412046421762924259889434791097280533153990160841124764565864457671134197184283670607978233343218637161212262648331348306572081190915559965153978958687449584500256471565314991806914302464488798209003358172765395510994385822618284444605178336371690882430069910193601736843386613930567181663076365468154028058671592961259892208998981123822631567095620960511968743345615908592588129848933420813436018184657017788899756617113884186318945145456283709879535462589070838988715449962695230061987671080908444134825683343329290857089762097596729052812776188966583439889342464901061916287212738647759212402195370852464526515084059498044118261300826399476431619160822790384163058699476719048426523157722373894719385821313260362471979443225254624648104387896457195077999393231153130756851271770300169116213677405380891575318255402189924284469651665010346879646038112344662242643196605929796746876324717110871455895199971167906806720227208044833296512111986586699315215781323232192340253040902071975549439751461390724054687387930695850002655398958813038610432631561688206310120119621051423857734126911858284837446889628483470154950132811656845319633932879860023698890946540223482852486676951385210492265866352142361935763827715483628186368944139444523230131179227915216389063205031081026185946790512157290998308227511931613178138162094964701107492924966832085349684410856980356404901693967686360596785540283845280335050492624982917440356679260497178865310731106546592832371908508779959594800915038127386044380702490893231982428288504584809165970214571400218839918730492213910075944342837379864320036651447820001832842611192648566294828774129050421356509360798538416532964248216382036053700478081413509220809360742965917200028845316103536279549377830538005981138149061713186149434619341488891840267301373712940245825581147746752296664326365842861498138422885343997497661136845235878245885903800602632141558307876310304045975867790830711473932997493162317697461359984340436978139663712052542964398798460714838263209221744239555398817746569956445291601877400908650610633360321149231667740268860067098587865392161256301502594989863543620948505307381728199692165859607399102414377363295060770076304304323157257600776896408189539633677662149934898913594224390163116127059384776955529044057338552395239623093484127357746519176791579017898097713586730755459414186546450021093941517106219931075712135663077349526817196152660267497312399970252636982257550204732050285222499590288083079742177028333486321506834575099886105369088170542055033378414047418088930454084819332941285531686524264275505920600807255664004583312152699352649452946012459621593907605659454813202996953917664860642788399377405982024519616086157891171110311643937275147702007936163638358042843335050332359589632892627222552250039667002060306521151103153668276818947854327257978907963951900091676809354625983971213155093987029744123281760403630224392045939131642580886484313770690929236666144363381854522307351393568652921800694656827963863653281982963338306659431016183715167061441950271624677442110685962756370111151665997672599440915174889542208998327285836995307535196657355895552806088650278110826283629348156150856512097754664386365567732744745684170006736848930396696038130956019857513341485386652204819698879649359727119822038791766206697744698767999073034193843937170415638528843091527010200796394445754666999545018719027315651562128389168302170337155584575602217006594677270091760631470161914971300068421520992078085496709341889556612484838598065046232834467008956181950093231753763367614165288860937238368362135846600110995247679160027903031012865086208810459331671527615134521829146081650995433098873588274496751508918785939373469065161841648181146459275587211291967703490233726839462914220973887346693230139913538764325932066808207525901968322416972129790385719042482435625771012526032772707822257070261513031622380185197250869448787808791787120907497730008061032087276862335438496249877364992309305290147369632860541343062961521079300505565308181921779817670860179461012522839121441090793250287752295588381467350812324863466769352769018506006506222111136009473038087437481056766551336489160089194447159729672123465235549817363729828151981409140938550224689716064491465495843904129755035361412179366555357202167798535884427186521248946112678451461075546384387488155423682062853499429274774736096984821713736815051977528428790956312158400639713962512452648503758694553504545735322498589155635298513399739731834866881333894412030243586625990237059546360070690782024352123955075379128486303515386618953209892189360567081040119240075772966535092951069432378090762389698179701490650352613492583643682809084444920399885271383396759064635376328128107033523851457121680089521885265714331609069481463682441489398837520973863895603452301592261576411085459982335787765616318231145655858365633945994196290198947828739422763569928788548307744415746280543971322550888232001141077247895082268505483401748600053378989655559049570167299950896172865935380049802415505977211948335892355442337919816507655026777248868407259931652873680825845705177662143840256319795459901434169957643870127449675238759568578266475914944869914171293756539301637463160813737709959047691977787048769152608571870583787760270280942152891957527395640626452176399999990054745880486450995970480517305254009721611742455111068210465197788660704835054148413585750188584318357867069739167925213331544895547646437839055961699471032221383930925642990589878254017136486321281101594455359722253984123454646309693101979553743394431061166271866251459233729292750502844563738433998623009741300894427243009580052067355865933272109587073916236494788740816772054982356899029307379735318368074908674641437428132437044349380652389494185137953431902518391642984152678842849109560774367460436851695111350135446768393393263126110906094649760999118051563389176868470762352437686826688421232353978028968722068099816290580444239783105824391246789801804044669678094920337712811031860485898602417954240084242968692288027479831020377180793858896296278532691935944238752039913399041368390799938125273239857538194267906259965553258236226078648801495049905032119421230679215598078920087460854565842028271766722076058974046376058371826797997990122366339780966175836496385896367667072109823251350557539731914979423494212350537786514772756882260455579439818468147390401549417259102041721756284957571454743314348848796104982426515728967398407235431482607110858579438114285495374613114504090017277893935283517561231578719389585144325804807730311964228302342854913842101474476969948090868448652995725229886009895908632931620385066461578177871458383459403467894576308697725997622637240013683010261524561668522862563630767048790067149125772099235981064173597569676669218933593838289639452900469555432153626632806795417170967226918032166683625978462969367356379895340699606166403014269541654782396696561215018719579895703603135494764389694963293553692603784903224471147729146002711231604292525583145435530137567448482414132847543132945078858386557081508161034113556572434444749486545467498781399735019757784257377832182002194406986863140521691384873494185036529420835930817333250829258627522103266767950029774631337848208227556970595479088920143293907776791830089492247777255417321565769269456366199174626434200454426808975474559759262501735544611781015386413623569697362157691958942599952589278661913931057052351070727687318441852186343439315701032192111392530507425714904526994161140825751747910362278248152130708885366073473791895369255341402427660049773972653776792904199545877369757458491910358581145328129915317546011813346954075949845132629107852397026589372476715874179934523545429289277875548091774837035772147518331449574427701234838853757331902041277646209959507345122532892686828412596447299500276322552091575594268616483235263913836449490953458760776643522720804451394079178507807145460717376954550947903675344514573373762929024201594663883377342667145339540254325268620907873219603003478493502520110662207262748271828387829666604306812314515167564297171044483127050938414353427822746806200329131947873588216825516763715500541436917905064193384000002982593180759261269511518647586142937718752261354415033048305738743735345132218198258137895467079506896865528832247338181165263793999593738664410422970675988210279413022606459972062831332868774214705121346803939717297002612631031038181196330561652802412541232734788991500885070470344901780499880509596917794903415264223928207980515703562709499080562966695731105964796811920964310432372745325468937477577382743907713427017582764587986620407550301227148664404265704814264166235536490097368727941979933145557119877432067702032448142493484893424998486918301246570962080043127603796166704395417618186087368355591495359819004154975509341821203252457503502264973425963883543772160206072852354294440983183921280919932508651261859898912136419320559866978182227863733434468167334615599935962988724796336099783684826683132334158332046437090606428980425784086661503257468588126665746142602861208285303485883558317428630549816809103268426939683950368705537049818345624218551741270668560073178114976389323847302097480719818107176443698787609165463462310279104010291883116211189537496332763116369631314700018784352454080431782977152950212664797008576729399645039765139358680353567506807265869340045243921058261828496858392759687003917547346631573056025257463555090214187199641310541788018147874149306413608874834871465555633252234981649679097663494932207790280443205214975437048412467065456667633811043776452554019599622929936342551747310560818025119710516613975326883950318901904374031923582114655959750266537893437882227227606995137734120705212504934272447040436632595988691816120411192196233274739424701313313891666645139509097043740992733240895094424766701741936518594430899911299487010615188912896964534898237132189433121263799451511364671868443211438683992341155211280271212913820705925007282669016104808102394666580974601298090928399794584029057201939838691402608021874211454959112032962583433925982002790345949331304788103600655945425690169361050544291781815620200705597775858045823147815049676144354508974412423924445959451689344243333619986493523367360786263277294003302817217744300231452601139715593418518466833063110840082278814051543722364658237552493549056567895314335320899990963242871429747251753269678001795792104614147336758144636144317528865284398170132174739248051261224593379960576198361481546151586288439213296916833190951888063152822050751083019374425160653197688248096809015563521130515299958362308646587891153163620018445758136621131122074156738459855393510563527578934994477417043665588837295721540157987493459450013876246782465650225350580596284909102448476978941058984397398364160998765130219517394584509012334354810366535899219869160745024715930895055779901699898836896144483672890130954381294871973529859763148595529682128061917743999628514576907860383919952596105588857347556220942626579746338651742440626735514822755445834878497249157386257424192344020653668006301690651497504145712444384755660148343985646038631841270831423054666269046541594336522587454692154138372627103401152914418675663969240472250979928716112656720009903059842096140609426160908742275491193406830416168644577824106358372959591389539107937968826273287965880174337261098106863653296885577203288100154552273299989121198580482636030249632527664095997712801339069849891483554777367399113559747842660302820225864492642678170311123944004039018688882575061727695870414507300518780401127217069692495353959533344352192358148704235450523136670410153485374515008899267601277562359273179074626733732337723953436213955655760773382505953941895523804015703386244710623046372318010555456083037256538083905926836655143499725715677238393385350342576081211962387850257675575180000296025905008660464156235330370515125284781356561791441122729717636879365372033490470926986754639043200716167236746028385818189817987298466372704704686153055998099020291045786347828951750254833124631359512949850803748797214556124839917205740397176511831629256453500647710995476463285632531992995173787607766886801098685492713569488932193716296916418871123447753245737431786764408296936614680348668047846445211954902921046929901996364821108672673111779737395738875124213309501378752964271483993672505454790566001639519637057349654507076360829413912784432966225214411195669162103466296201336872191299359504671941420495789735542733176376434466107498197008604453739311030272572553701855248473203172377027550597269056431711176922677976668262464503657715520551789961482000095885271434364733115766524686677090921071948762498189792160776700728271434237976117231524954063770696595024926497852104574157412868419229136403277974532974076287027227478258642015039415172030188565091021840060162839828744381255239739332380951336561794342731138723474869316355332035489013667374311184488547356589066523468496703149809652260926181891542791254566514148312086761049623105951093630856064311039956468991751985454039781631951914049990236592217143175739828024720266593062441277551294454305599278002223791610718778921832750279155305523626894580875900429754281635044747085033766729570528777336195010269493651216620233745399767889815771777091156600524886652508819841885415243912226084597124765520637120547696425662446772386024523430284469459531512799445790875608547780959651097267606513295850559851183759290030889680559071597953762528932439166242799221906782406079478024635083706791446031467962110293710336899952949311990050740019518997215419816895161471940285200213644938495144971740838027607790548175436118421633081291667449602626189733744277054062099871546872358308729507267161436077316571103243733600076671258016974159232427017674172992629366731387906156017623130695553148298747416661826556493801222593633542240420295046306682405335844801159868915417549107708296884364179970626528900290709937375484148042768831236525663644446641524336829773763519529526577371356566609432918052075378528769914342386023608010808307787405518166502940092082533120063317293810120144044630822405207632829338232001148255823856277993176542678666848027008731307170544511266676101783487602477381303054526937340865915763529320204189564724528989505537915216786090033795529047665546138328452710874621563526544758233309077637548102963993153651558746512616145806017025844726779176280659404483967000670834921475111010673021314993200322391373395572964676648696989922001035933062170427207538817698967215073511228789323403711018535900478881493309792015563164196375215416903154387502115595420596304802836886546772009499933502042417662986032711567612710318960376782160143970625816613491885956190104658205835657629647694555400961686747587860096005836281242495131325575829250981305746419611007456276487454153018483477446970401495802751552550641797371148852287937007669613456464926232026703926414673987345435622318872207024406112033265547930206425918194433449020986217616469956145249026493549474101114249827339583774759708599083041093070698204612749250787363278117267191488356947781698063298637349998780883663299858866039817651076809798004251300919050186846115392204676480972385172467389352595518301762901038640936439041226346580801479996349113754759076409852848049426786690231226009500437122992640604240684290336746606118441736177888117779279867817480384028117093660795302322029026037702180840110028375900721402490398969887180470776333103625476131848418545947600349304795561980953550214852951805937904268473243346238235020958288654600594319196815502467321699547455132200076904787506526658700806388253270124790403553513900208895291937654765838970709741849051788522332838788457454430599427101009988762565500624579640351806545939063650064519725995964365971170001230588208291760135313192675899524100964764620078405936850070924721649259142036799541053199168634861248763813153392666056289746646728988408665445432507756252050910498805280981917386261571538236570253133544228580250522129778043483555350279720581456013771133060703043310205891451903487576338433939076845102619806894143475073225095856061368077383386271746408100468133559035019690850595534134362384413854112905159916209439964775370166453355039844119964661531073808440062179627172677518002456676173083513926530346799505276750368823664317561397538838772101102319966170000681759670138522881604059304972670260170587803025888249037701383572062326739806803174501433989881249738719844470094137357777535427909131341425617735376250887455602545202594807208814714048815886440413513233511546489639538761781002477329551139326342534046551253745630829144951794511124386713044972145477847566329807618927222778946058170609011322157460911166048934609954375991705753907048110485590545943458768767748887583628255926838607447166933442097801131798822785745014965178601112530519853240018173541595314640081864418576056111176693272554475992675802971774543145986432623676298504314700363985862798202584976134898258657682351864754188100839123566407228763662323923728475067583493336770940207237369980405350591907747860094151481844951640731343480834626761416746484058499515648232105163851782074682865999147577253431265338959944566060469028832496253157219179008254466112066815610589851436011689691809968747826308706646495838993914586592238506132905301376958879707571001469148813288853764874858923395387740170716074729586440920718845594845270447174529613238805298846151080009333625283783527420869820965692892070345527808342758975713659378782335134456235062610765105052738270189313181042456107772800762405587694715354416149860130997447271580089610005567781853125721554889531205874728758920033353780544954874110132910640585763296131259309512221604005270257573821278860696099536485588134794132464900835453879251438298026515742634063904310403665618417107094724733826162803047758244828684437997448315421568131148994409945640685682838778081038810539932366926462310768461138673751941499066154305787622876079043057118596326776159337034224858237834461610552333071361219530038453702566940318279545822714447474423198188663261825276573740162543090086927216822241357273927853194936407063569695021308722324523433314437424396115049867825033429703502353327695738452961229487815657854498146112348302354732335139973701536404738129449822666278369381092879041785788304369870448869909341954131976901318635206789416646538560067464811713257375223174503415218220767772563244088747641739199928766683005946937922059021584939025729552958293062679324061992083050771482221012295754597294671857401784418591959019611439278278557030816377030014117804111428275851080912773819021347745604144128107421978507141711713028029346079603576366474092663743352116668639464712558598894226613051792905759168122451448543299263379290920916862200970331033084095812944678397421393219819824027509425438211152334145680738639510461206497759075705914367849897661351077703602003066775387716919480680561857387343125695487982014974178821358461051788694473844925722875151674777482126379191026004480117897693277794732755467043978223748328183275612441968351759519480836256778792185650663821314061030000915821521511918156485201739142083943225196965953564096334305635821722628607373041491997088206348035588395784368267451994697360328596836590560684194961254657045099494540321751385521626734140266939350735821766621109256774598334688041941241592321045580697594341586778341422467937551256009692220611275982841518757815643370412109645172923716703429709151223427577275526314479271856732609342420901768422685686035980560699027289915165994167496848288597469133677908167694719721406413782903311786776342035866230699147126976126223635346138453874988799909629423967507651174075066141082555181034343560767285094173847129822063394262706927822312877950277152004772974600344381377065136620671749998496048886449308059162059409928620825945233168589918320970149973405714694480910492125682721948072143902918169109301965699495125860249687955804122280007913025814685841813011891185990875680681407693915356802869865090419600342742945743922674641232091499852202611906732884375669980597280581448660819532173771117847431110029753704355079348627886027280393372787109213835889380105892731332782997007272716149727987691725784668080849011076381388114586874010011109541660170169331972374535344124893650946175183093596300706739925733740160166037725737969178137699477628938700169560806283216945136705060850322247474052954535153042954713152567838346213243352383075473404707844786158886410960302926419073837150837967796572627838902708961815271363766746496172403686935680401831125426571185130912727206893666386978769405803988367200863243035820618376874972832485290084445232728840541164577424001165079712342289157769564137317498249175679107387040317238730446301894448921209791691409247175166618509664866996916059156897203423374304939688456446972073493107464618997102015248102477651695612749675976832222278034204781882548890385006171832884701113383684981764124052250797291800362941395960002309060431843872275208729322988727923878173126419881246569759071563579350748098637371626445469929089955080848458470260396354418658190178745942430970380847740340953423291871855222271497399453409025304133772078845185941370497695374147443244697125037328369051481419009838472835695160538644671993144141533178050205317752845781310788888420283470475207076856895835264583639952113193348698243537380856457449656656992315833775809526481802287571516767387812739174556883249816319914315852290742150422496696614615987475609463492952241114758484367299671199628349314560825005928549130372077234807445757226411682968560419196841353212501593137616771012144009020327432141215297078831815679763490881840667179392170756464957181124031371036603503997131967236552559145412851771513007491385027111206094337547771689726956508744803661284886617025967145741053221442040638446518413772775951561113347749436909823615623785965012631913408900159859853806787346275902172864533371182779678148980451957702430653629226536124607302827217703314388802340198680143687638202832178116942247389827287614583839078856734837891498693764930846372565095336734104181503663894204010476645145647056718923056816460452251184992017592082076119891737929177034125820295122284171258979659878717591144880050785961761401082011648060340032716478199559753999482601896159802305206744928125543713080305747910681899418480881710302251120694571189404567256518992539353993907051819168024845590295750444604919215634707259943748129547485036273505484779088574773037017934492902416114866665400637650738877760690046589694144179178294225100446274069358286505811308493829591109986426310720024235275692172579616472103421011456134466677275024330489410634933276154787172386813275527548694841838176817366317351320710479339860992002781527497102820616097892940999153147948283336517705592999121384277730911262556361119018003680125447292300775982425567432717557343012739774750392242799030311003768833299348979523822801238939845619376074822688407936565349976651735551562019371918502827174799656012895529670940562192025668516561819931296309388412109273505918160978186268672996636524877187594441004558773977128614897913572166123474107620794619897075753422083067613259988609816271712456775300332860664117243221556061767749284902541676733818933483583774867840160089552461908988897584026986033212873004723522716270012496144783966540568786889023326431955698567969856494002360793701281210881588670283111694308345129590217362546849153547911070484322921042189912030352313742035341483209789408384083600031194265538078634543559602832462100478999885961478105713639203555001201965873154001210959544577138183305443128341235355245663306797892820402001556974246041869421184704959945884550411380124899540190846340284252308580852000363756036402965246891440036327381666147268627994373217863838946940451793932425810434240243037547298467309637588560269635283375270100986588812205909076919215868842215189790856751398965008346347352330244364190707459646769352550422851562125368485410342200463778486408485510981197433680368478370312535373886747356362040940290161153114293627682426256074249134788131474466390272982546530631999215103282038317580785768158591071776803361443498727596149140012190180662103380321385583411867921440558076896106130393331328362691241353873170950101004282220423053146126776564329518887943420411520667221920276597173919293246722237313698984951752529272830771624621006176939292575771588155408918498305848062617305942265447646121037772357373192006181754780862548241536830400915901093325917259677907495350322328035388088803257047743696950709499643971564800006435037231601994569846623417114174079861435402483536383333987960641185643581870502937183207346872943241131630745225064714273886248090196071674790648963178319726832955835511983052724787532056274107921420074418701491104730565741304014241136124441550042505179612348823169569704981823833500310912583770527383277651118331205259197802647878045219240877227058554915805237841547985370993388814697325985161097251680218034504124079487462008512945184023204112667447006918230208798725347532949710638666689519482711456619004102901980592918942610436027717311102607774151399091574280058490973556058951824839431255334402398280134729306828979312641178480872981663789844907685369070483975968707837964738323761102358791692263633353801414548672290401192807689769507424002930314404883297990628745779530501426720572467714851758651556638560784967174983705402725579679892346935670148773314848522211033412897556808308714551600986788861805392269949959541712889739947809093783198413922228334281638337381577603937471557592423657259511926924026721306233905821328391341068886742922474438847902775808475566266921772707864182868832550242719511132992252403261444309154888035861349769830340470724669455335340520905194589782657482573280675682151061776748971105592437338310917379915142467109077249609806696660849682211855334178601783977247162534007870813660363358633749671150823464344034912176484417715862048555096620631385565532994410798933061100085357572040654256458705856564086375688003796372967068116227104461996254727531197272562360968967754726930692186322208606351114804590396870506839726494783856274437812336284310127359232366349757729466405375375964019757637063109968188255825055329287632746799884037003872117380919830174234272394398855512696010382889479053011294642131294795436299535363528768501772925567002355976537500854667717963834474791822974934060839100423577490722901485669636338950406927044522245331205039363694733014991257229503766415281268140393841713488318706232032102966730207726779150238052564417537846993690812530198208800416925018683306076173590484746097748745464701666019696666776273983823603068047051875284160729731240893306638369902268059952229027429820118673805697864015262290107654551709814814643424270827029596470059422833551982069123693452135448087715440025058525831471880380387869911148447266730213661603012565007277522035175859042975163409287319144962781776850668902531925962614163241854393899681089408090005182672835327420537774066871080328447695620533296606828382598143229294889129659239039883373379020085785054819201443000761883514669187545913890033460868909938464311652947565241739641315277803630462170074382980585880400023849381697543866740917554835675969925808820765263213552895616736401275185245239639252095105498088470707070544208868874060030842717609038906267368850856779863910383111105073706029647344151180036846532847346644981789246043728103437632095558708557018289936328897436872656295518898987568999217723985319560554238735249964303362008712358284843078215893951957450168723369284067223545902569522973647613203002857333969980031066374660218033825150800250560798386226899635245564217148376463909465116243257906216262886472731860181852836152350748151372420269112896268358477051671342155040913829930582643726691456824689277560875605763489158006715695019781753886672013438136935462065733910401216864601584297334582310142818918568468767898900130089314025628570563147489598579968063614105143510081250785796435754825263003968761329738924262378122377839958975616038497406227587674941221478713369469789651463198719228786377577609367550853005202580083979994172366539876194586728286482384488502297682348841453332753909149351907323001639742397055909555904261378029270536788971415160380242141904388838498043352944010088385138639484305562335757597811684422769538911571223411700822764072322231844051100547737634382239612943765960580995525366973061261953016399865061979059253524762719548323044252999691304044570100279627588993691792324474011153403054070725397506896043954252760631527063015415088288986158885937558284898711347336710684584941633176465372168001522050677284716629806415484464584692559049785526749997600289053632585277084669869918390713868058959760534456064606494926536524730907023677782661812115830825834447768485152205749067936500880837624734982451350962819136949709071149130742761582296959131789288517110694635092746735178441345602030593220984133933379573270527172224423374514811736936608905474476390414930831839512753495272553609318434926102735717421178571089077322232375766928303775382818052287780069513506277163281732540919640281294810413716586720380104675882494166173376436770255902201441245805369478756221505264489124756020223916782562427496099385066878255094093580233220277328140873115773848361361223782217670285009149296731812380047410210686985103392252232209903450126467372824531226200737692866807768261381706786658039289300374229976079443319916819430648333344250283499885396748024351136263133616131613152589684187932594550873069727644856033712166340564279414446655863654833992000645543097274253354980789458328937557002986885804162302799764720086295129995061888672462711124868459138849919622720686895145436497873835417666944775910739197762840873907106769189861008673740543640225847707585885803376000568562335714155391023332996517770165942947221955846869367948936907326264251665817847952077888431237953594730242830028199872416295239712166301887505076224640366887619730615587503722111447384962952066726372679215969135884341299018749966781520606959459931846797799368425929842614394040246413787790546501762480503880486209510973698577878546123886629240063324645217525060220550011647321927893760089310612094898484898673496347639658604944926288191187135564056081626471135251105078723721294070046366847800685977574071172172883728269490240390560591080685941078888704706775475108852297454992861267726094600695706355153662769436501125077075029168068875826815293097851511570380568576481074105935335322578521246848076380554455747038105297435605159152081902865822190388431862323616967909758745588965053259662566054102905573402232023525708756508462395460197367770942713573214672169026761128238214100192556422836830241348754107932871314301429831256338972367062248370495803601921988542494864675058130621013658201332216762438785219496620412671122015283528420466716347608736599551771739437414519208864369600706192096464345102741260871848155362410078785798894111067810484164260121521671811331151861664734066084834985363319985669259743090861710595356026161182759258446928155815921975268365246644617124787239892557787284804417224704217218306012872691332580082387988055267354935870292674542303640898068405984734369246492793740871351456980659674924002787196660000692134668932476228743651448235094193215533593746286617261053488022768903196930707125718031866393251867381341248810031948425537139997594941238192456789337051204614871594358823051684445227947764890155209042719973608598886298295038962191508994056073337134135043601497844305164090207794087754290617179280630187793929048654940422691791419773235227064299388709275297482294257929111203396059801617082386447892302096179129175803770378660919896071140451403025966261209183829093594464700225120217941572768195484167274741744546312486538673499627712255822716140748519745307094223759722850333926138257581656333277395384320637113922982268979070785047123788768081811348035864357706112242013239501718340326125420046792516816156787238991808235412597363189702341180083182532808976465058919728002848576487729517383867185275478690202268799083740770075718681837813692147784012422218565326774119838905177331137175286828212328958405324181275185089238520006256352166381627272460806650410862548530308135563740856974804027070807096457456208755731811530915845980220865720248987040993472044468280833703629567543903143822174271676885620745443906395921381811555374913774462813981151109794424611834380115808755631306397338264866565016310365635171632899669475493860079758754577955005842076865484669125108332258940115239357309561577269789375142951318242536022480942671275682187604867357366284846569976507153942990862831833765953158885158349519716080481902281998770988382567730657776225119097852594700076847105596671255574417687757696256885873659098494941410374277280645124302758219471133671831843555823813681032634068553928795157150561974306168966207237323991716248236687894971128448133670344278060650639071278847601234311691579328426656175662948412003908357096818347008739483441060575523812778173152281194751681705955737148454085692100954152291109091866044066628947747029427799552715600592676905053646900130246771490365662483652295731552884955087359233460797821640723094817686344525803400380161477276405980217932841263183224888283364362506535074014833884262819693056234108061064897126800960944495785984474514793998830679629254606084064998728802191158676518973273308737097338752897276432822587602212240315814007605313200317507833188388303280749554987529278913650869870201826058370422533018351000081737516710469346080421545204552116636695393133635921046065408338868804667533112827063326233944902434795382631828211497101971125533312833510681918914310444199056218362137043711474199241266429886800899580319289249150284247356046544251425437961047309799907696678883407260241904761481052874809987579296930294876062943722501969308302424376745645202273755880172904889843513736215461782472236385806467859621406443052850863059463284360998786399187087663264972937825134969260173285054848902209747741633038951991183019917755147931858028691210444891532478346585389092799486728631748583516847447971328559710676247290356100293260680590499738289322534306728639259711045638648010440689945158659476400229334897644622295643669413321313090018379108693892459959837918256005961721077960449077985614049964803601883296009478442517933920046068259168770970235786662683177274425847928419536791828212140048769191031879432161055568600465600988576265715251052882298686755336189078100944614870013005153759866160316983874729426881902481019097400635066907736664203004803615813926157297522980662871692761552363862935455657499701280754861232709099329604849305150454794666610221327998400809593497858860565876641655942949641056979363967064866389722770652269851883199596801134242458221597123769188121406760217476549582613214779570852014374992196853774658163590690923842365137499097879466698244794980311777719919274877490578404444972269713215663770277288531936762188187554288768852454410707098552132481284284490799440679966371117082032323000730352922405916257267544478057276797919029074744530796017326751379281447458340886764060205920043929790889017321946082502561533928528899211199592222839164987897240938738210093332826111966366225674860335761181258329721418190433576395943846140586765207110699598250562957655127679902013937821300720478005547504010860758286757875910485175739873613966616151297003807265934146450328603979810313920402686478266669225695230397457892925351200311563778696184694455766957125721783813804551853658065059306177896497341300495381509905704695996614343829266831112134409539985618259554074956476734753671842031294293869043137468228671604688530630801817084548886815371550463671896654951630516124922095778973362782134439575622261162317674704241167417979639841236642595414295237475777192191858433883841988234066699405897366487828531531838786279433131632581859536230117342857374673305038335530628248701103080573632388412243031359355013388233385195388042460815042985313461587143774575806519768013026690955253799209568844435967116073306678069344573273865698623330060243263381532508390236408062513895485068992243011219912965301024301604407254245079172996743274523817810371616383377908056938223590729252057790436137120790940136174868041828058920977889994619031091397415352555957725696648132171833449880936240423845225478557944608756854529199302552695495449828404140675330616439772031344055164491249176641408753479059079121956989270300645993035610204940932298146873862719966538666585860881355307599582785460115262048181746411673700089184985929327204331120708549970286087151372736514751405973152397366576827834053249383906746356543961976074474897742499124717523139951731607037234142901589796286100788886460963979996304581258587144395504384184456588426818762068342495714067524086081705003225998938578494707952687046338370077149984607254123179161273633051086606852288704755301266945723849623280050126650483756860136107628259857956843600247460128158634853510605062955100499991540112519234362642412589779056984983500701987119460854840572038889095278440069541688048484249605940424143679121872637773962256527941250792654543545947505167561449048575758158302802576885940960303401920147593597869055591822940571608634332278073837838133830754136287984116692849508093836647026155241966104653623563452768358082468173462602125699157414710632414739732119139644234347901979861193096934406052348362895562204911642863916898203024248714896698599145764090920428487030494738336426912499642987859614582623764821577756301363739303156717497668851181518137727482840376942258114436287976036227032706401917877897137063531662483034537003939387962858051625279503156679776993944335114848711498530127814214549581083701863399506546875927393772123463994115226651174840750260263189723221311234148727291154787479543784088135582927328671657273855734190583182075598816421349015119385474283720108395751641154651553722976692391596359068682654951470186404089826650612390699036438051794602394454273233138237742454969087150949930570551868907745377764829445349908843840766242396693208955006189968914343086084324099611748683873348656704449843344063869736845719855039532763607719510434926272966506240704996175856832456029243083561878535152720274548205871511559659130917167777241496141689368550513046221749794515417469063992063897177253369508066487969541816760285979921763676755079011473582218286619578675699187155108175738097811207756879026244353924600170578588683528822386451153682762593138972288399792104693837545935789963033379467005783842394018153904451932736493108733003125124830658713614320631647698830647443117922564977701080214652769225613549936401612511618904082680351145721882111868179148817015177579724628027784831271367118108470596491194300563264935721213368155481728274716610972542401680759585557708944243680802818621655404108375129567154663723813074995310203182914812515412099643013867263445981236144968372209354497307764163982694535183902736996325846056159908688196332009983854174886673461933261757466718715470643536288568166317596139299137395138650392975009741675082245709571514069736918001507999458085280343468775157669830064187967648644365731468491301357760136987697218722082188965752008051763683686034114944425206968337272315655091419092095922705149358038013892625869391100412389981968122924741068874150493472044773979677781876158812204974226776558676967762887006031731730277801651540868753724594973047607952342586220509029503298762374394994119915766828560928163943681893625577106241241501812075530446542547409038110018360990581004024475427391004079624521100292968940701735029327941262541488950475685050241399469662308729791119715919419786146744593214705004123274773470801301200909022169054895184111809451479393564792608129360279084487624028045267800161507311282992131408120123810714342902485813943324866704669563257874092058063607692493600399808369700044053784267015577879896589089837831764404259732229718666048343234229926831921757656108045236335493876503116535292609732421051836872707033402546750086800627693643427637162002664422819657043579640873144594445317374407073479167573273963623553319208996624468419276498417916545155519574536142808594716579599024447263408175514241997345621328456113388510961516065771817174614518428793154547569456342110419585159877534320185924476433967102805532462455578050693971542910992357806770769858322060553119393134579740015453542509970057734648345709882428344152443002222553250961805842779806651362514405031886788138298142645875886772621348908315804835320902495702127166141845591921318828592697372146755247757270533482807851521778802879234284521722749863031776171494608637644281732296453209620283321443871274244228474962457237688193434869772746021944654120366718268415615237373428175453959926839842928271140399268831935252816423421356960228143425855058095718972643073967697478422279652105881813473138189279386213393423920753860418507023567123182898781742634289786323127863561472874331690801661582294192374636050857531034369575121628224642316063003589315611804356264965049871516380675715115906953781500521387004819451270182772802905094249963989491188660916549984691927417663736232459166706036977758515913756958838094965671051581429808400354763058188107945991741890780844927910322766680503683431328788197225194064908953424952046745558160507006982111126914489632873020348736026278126612009665693874779575015864420250026017353046873698452967049003288547152632920951330313934949253673856158338070031894981996823398160149655260308199560938683845133069391906514775103711844361587379624113025818486906182072568325880644698346217651762985511965311349361211759341519749714073313402831846604094516576888014707462064906476290745984832090417668490818862430134955305644280955561581407018600480296561199672408245489509086283653179437371329625675286280410714933799788806487919328336938250939896600002245516068331396130345702991372382781691544643221728431403021369817417062110137931108848273633280394644183711693602926227504635322502066887769364300923198707803449024360459397331330863388741183225117043047638183435343626109719975087710964457307283238871428495843021168904445318377803193286425397028615584656053381056599060878614991284072624500110674329933026693602716199951103410528407331174277091189471044234397456496834667088202987159845181232483612811591853494676212848830478524121966210358185480242932844956643043609578130188788784968372942622479451042715533787239555829503707986921656659206078212888340012261767137977793247269594631899477751935039352113666388248284808789209819145363524786944101541261187500487357579983162411506950261820953679734714927533120593109965592079379290827988851270634514175475700253294209689736552216405825860900517603722428920051519609893542546550864820098202450621133850251645591659401909188245574972027774168035927360019258701851407075960321212725051906127977248549529011587228333794636590187391402100112845369037930243414776527662378800561279292598341094690805164011777896762277130499804012353485647399017537633821212175879247412214786049346205996244283869978084151894954243494734047444893663531244175766612255135806843342048494513938072271972686772137489751196381912499484100488476921986367908906044955103889986921824274958473809052855570899728636138234283214296303119716418037004530114530825040792888215305186338364891373077546827896233966360767264269137117440008442447834978554887938016158821861896093145627059442516157337369096848580099425450688015163271427970176062831308147333881921589132379150244490105881500663909751100779474541659546481307396023832621198525025791724364866511696308280310902001257436830045133516662231197424897942685096049452100902069776752696806779554124293274012418735466111906863328048122705509686357943123807672373397342447056414239101272356292160353731259999237894115124686324945852792210795379404733300274233573952410345669130623306218305462597943578489230266494001848438128219366295121188190166024713571672349070212342481948404876872144571950448799264272056843156667745441416282505871749730422956947782076001503754664401141675903398078910156985348583123181783886952730762485961911447705423504543065151496555383522062106074950944067031873304180002439194811063836816294510435821831820351875913130986872900788762856551845849379437127777227835189658098163362363408653263803262149936109832941637104591103949830779453006482414425630141584749222042841917023080562695561750236468984989344275660676948355785207982763361701120160875818756148296709676878229885129482591103304774870778167658289764591667481412130310451535423623073518932139190045368832124037692035571963133527462756920892687463485256731937108632785318523075953361406133844875319483994713369255845131681843417302595259830604181458157970369802608073984502742794396229503118163935606902271621041835208711995031387562012148150027013728585213632001053536009063912112491549826333799806616831739836789008487282233309794254594693600353822146368733215337247088593091711272438731327922035559047537771568720524654722876400147592040825335041375910965708593217564133274946251197615119566580912258209584861345876588366758919714402241404481232303206281499636795030372919078952971154892867079681929215674576035019487190481890587671910931932713541708687753356147538652488774408554619589001913364627467311955854170484451220700265147105121504816792388094343952153890362226076406436301234705841708039385403919874794259286425789142101198458992650519671462733265104733224612468683921142702194264553823033013985463304363209442681888963245199130680718768643074758741534943744423674132151642665820608661592807656788353618216214145036526787408316694222243722249190917475479325696565744735197460087639447821940967620882962338950690070603138820115900001625898875552442423561180596120848474780535219839171366633066181010889994404080572674834581360058625242172545905048601977695496050976953678288475884831152194399776649729212841838347912930194933877368998363654454910819560272861325053388639887662515480282398584547175221396275099248500306734774815144866171009130554585636900973263841893481374746981173020183510515815601069755535095256132251927044763004645075224858331984849804516254544659469874293566128777616728180108845938163891191159432962126955360382616812503561457928876832988488311972305141055106085054019793255797755878017385613578299233175277317114677209705674662387143674911131041645786771345618055926365258766771797005268093278506223332083907304802302274628329594553915138112485620499667998957678117959853132135401685629615120888345181976791946302798206529866353013720017864177306887344574392850503733368905113481331138768827652452961691286942716619108009855284190490636122041974756443949129050723577771223260493164910813661657940582380123187406963470453220555349177321889907953542292900379499663515127919344979878216033992695420653971652181961589736080436394170206249908428938561487739593489020402037362324544486236051531904679261275870580472370090143505959430587333216625989175372156845590057982936851941764731701906445451845207507814765669793576022426329370090942627995390269281971495927156517413998703531356687374580740620265703219442019111545312480425700713481767113143212389907133566728515487405938678360116534795489159402518575413175155564116982653946527501472150962723324259839591370588479850714217535831223429345534712010711174368822591489212756940008146149827272202600082482609193763345844386630417574128036841298186367781217321372169186144499347923375414813397564225443386377299831194897278049905963452028446693107557124915705568272831746122835386473625322125704063728545205272114831099027829901288924366941917049650129665384735942940095609054218489209165501743969844681387698658472883882339268876896469001087182938763763103445171082583410970808646195555671544103169560777761545331594094534649341203909642826227254212999953341649230045147571652041155012153033635622262854692270017625351517949283808679928508087449945851212046287778124973950118856957854523442971935378933862404852851688328743870747838718692857338944952735139278942134072349277105406087756131392208613207139285149118115767331335296682391987083750408911091327091278676015099096650949225472388436213929309554051548742430374428108717351497947628036038191579088977253016369838724927714600524555785757199138695636947407822874323412542035941935657506213735217667735776364704921926685606269945132589987029680880156517296789797131431139643749658370960850795860008119632628428046973482201980521940615046477920982600344416398946762503467864395792061530635016859115479318439763268798263025152879310420916791838608973947404663857456154245061845754879922574957714390261264244417445414850865303742411902986269327520474518230871668058380160052304589279643331259580571297436443267655944090945324461046768132476645374609790462000493698341371246733611761582618938963948264049052172272004396795120187639076648495083170700751472087085299874126334119365472164013422900163280793621316265384447431265317797850116115272655250596502931651581483185424687844001881342210816130953747352107495676633057256466164242147410960261616201263103167067297158377923745883153500728749076911289802488953217665381068986458160529637760560577297639307526751413160468185274415522216435279986395042994366359247660500850960977946770710718019153143539084996226565550723410628964950322719049090397135445139708766159780397695162799698089106580789372565852121339979006251906461681717750049143591816817001360640314846127773528905512853266903971497294101304661624840092584664346097656162921422641357488809678437775711563007609326900723546803012970626212756722012602018710114762758269009428637038521370752480709945598233552716853357189619178952932420968416357093264634946157899148699283836538351699795247382073159042957354210460441878286330623281388596574742533446392330808201467182868839664801452184078179510348704190476513030025036735792776163686528582069953280117353089485513074562949104633871949451499032771211353730057460047659085689465494359058768731959971521721645222357465125197290493748893526313592352404891723118597452528825639073959247431089379186146354152103821114679175774897765178253693310072668427540958923030930487278927842349816263016614895103797925185675467789699375793889316098155713603508668674390715661859615097876879915298918662326996917263643397212747283044285768993365838263888151462282249418255769476771338161804479385973897645398760204878958277836068874452126635921783262362026375869671079208066089668006644723244783679749735523495055710487373512507675925679096356251263584895817903733334030054935080545317389569846781179380981365018851084751589674793094305784886255433516224960189262221468086260739840795931987346557048432584266729415891742057109999231350510624131757093733114713794875729431817940512282832184423548280716540140851006671830156693096330940063425987843202673463147842632574510787576023941932328866507666908840322294281446774996609643861683526288717210259078305894324948378538357633289913454049570455192891966857951594722124448605664932486572020589135682961055603453865401893959862950300652172629558271051486589094680600947054117621087267927949138682908627786945028457803731998199957213609248813773994683238473587847482775066108415866477946421511928668057647957448975698655185726563562381911483974238088809250845034263157268534181322664392134115884332742906507434315996125267233215210062668469416150351601282678521837059188954096058316187167770640460526256661548934398505808324442518182127867797467616186800139675648297363935190366226149151934979922435258964964726868596600162881433204149571938963303337750488881934308611123959270073306351954515226711839697968049408290149455683708567452911734910876149678373551650418023674561457371955995709028954147493816390863022937012110143575597986513196343131095078556976751102550307209946332782560729032681600198819863776220475922971205892737685636877682577642732072251467706131732570171287872527311542647899127703683644687117939758341178509543262410183960619738509386097589791668822781993841141233307283639409901223473942218268064801448805264527458938099736930468111168862336139263462689023780244983387447243459947618531117561237404399820676979968510202290331607066691529442179219703604513377427492145738954408166518219844042988739946036749484394262518768670451518405466180569540080863144725988197132125668568494702588668389964058979787483642756110601900325073384717265666307061869671758392738389814521341676355859219073109861651734462261258067157139748218686267770644188308817766537669883714074846434051820928801782601768529779343716457754944430526488223334762001023437572726095542917237964504240999896685786186779426509677831447821573632167849002527887368026306385318177702895263151045360583018457512133376593988239774249794571120771907942844835241731448575481093493391309268514591821521648611753390442121409146996917562173321901182417508289501601278123330789439963268449774064920927655328653608139744981710293552203634259761182086793609166951420122775709619573913794045709323786623307024119540243048435959780077499876152296779859792582680890899403457266991444492973307189830710210810399637203115377666300703058122380445604823253874617028394540319232339910802058716751333386989861732451139761391798746133751808512252532726442827309636681212959017699870074939155576441820390543921388247517655837178281340466044693852903859558093626096191643949968927536343998182651519833955020831859063566971920956857893045482373072846991630450391736153739427975074247441325818943345652194101858172440282529274272814106006004204195609019354818757298186395870968268275687022498275491497839137264560395677263592261882773466540998058096530947425507670280394039229141584232317273996281598862107223561185611021392490649327168126410527667395786041519484867765827545617558340627013412131657994549218347483743360032010856300019156487583517111728890709166180598558327745649079646562074964677032077370649420815403224538850387934720844965847307355192507735670533298411464566223698246872234825388651643817398364887249737008713073501267797651159769781280983904725292375846979615631357470692415713711282063948646102110348985708552602306353109259460561873172843963891988149847871186407165016572481444557100706581444978085124163789933646793616780443999140145076740416960514597503343268785853187080130184553015135125824457330760580464351119261951708358609188940201931151498906406830990276383039689844787213637905628986261805888135589017910999952104254263916166305633618492255353449409271847204810571008485859919318134563044448566075460264880599874908268588219791035369032254835262077085214953062687739481772550607455337818521482408419074902000906547887794936603103026967825066164433426218009113998970877821257333703503832716005948230697787355405244117601262006685308427537251536397879057842901878500266407569075432218224740060016026804357546675434486044098465628831939337762073148354983780878328651582012704886034607556464944423595038397253493750541070478704848445607208904774907528142090205930086143281214596256606104778828782757732922166187467445501779567266795333125756153208308461113802033894812644546977137641627979683970154205153797021802644425289372841255410828321047506410811082810037472935545635524254190689411310511036784770055420851545029390900241577124076479442795600211910486964681235250253133378756393713680015697191484963251078335946711472231826602084069915935845019575717773437285067103298686422684386419304497949866707613051584700269685977867373277649869337685422660081953659410167795767103475130047036353842873772226788589092064777562295376654656946186070517673178140238295893138650217611297744423280729073253122010857512946222140952063853827090569589356260621120240845185136111856127851593581561384860847901357005799156908502392433555981990326589710346410082027349445468427989901668317972135115536692006824275309045150138674480478966454384124998341027608950110605926630513227077567761350226167190404007242823238544192834112546621801189717548638077797735067479945325899638490851458654851517353198406024418267338482546109574133706562980249987577015191312082410981980632893043583739481715313882116046594444644637183359612381872315809352445937214139071162846441260303744716100418231379583297296431836393834657572092590332134660993565784353764286362871205955095595269391765322189998554608170253183402096584721058886400800668612136152299747989845425594777176072552601102280575203426609692682106947011227253276192640464186608888531403504931341223434518159401013363609804833768584988869965850894189302619536897008425234632434878850416522291869449263012183655748439410630820739900770132111118544860380106954879171230417954629917534417774659540876195108204852140231202965141613026046829432599477361836222018680174502054158037027404863091059701615669074469849508024821382362130459356146602533632372813445346369932508719963660430132636752312899211673530810002459799361999871690141033281409017706214515851745600223819292295512199843030466178964993953975618565390305187984549963221194721773472835815338004107849612905477575367416863483625184924396672454530052214318905382235994755671812054901979191778248002286446072752579834576411670718220787326778100543202733792437591358791231429348573531148793211234454551437168093707006066310395538098848616501878916341170508007689899598822923497490854748704999529855899034573861106531895012260071861272821521724569007183222966355678409838226452495186569473189435823709360699560293684810128870678698058883960492782217969325896522933226513370383459487039375479505848485412360317261315661436706238035515219340305152061923467223587314521152655794410345499778254806429767621827161491902359595568098576895779608070215544891918703046540739746566978026640159234111856673994960345142012184221516310444945747410324934102218568476910712645476527765906404021261137467326693072457024434741213733888018599437446176738606729366443412333267381304564843965769179108891249791543039393536968758187392560785522169912949570701769357125604394893355300030703483388458705627392398643519994997757208283587489968074738023881173185082682961219331849632434949017075051568673358350569110057640256374300835184020052877970520955304350785882303469121386042743159032148803716164999995872519217694064533169086616881896592460894105983619087242987101696754308773743672930747960791078185218789008957341186742510817896829104978344892930530182856522621274779396134140031844081621517561825232473503150417748103292831078268757844453812045229537605297538507848941856639928055170749666302652415727316393186641866511178936618047394074682053874376285921850422561427180154300985095928459905031856675993854100236227230682269461644328906497219860887826155728967745615448808780243730705613209813432870167487958231305084919889914359013233668858093468305091415933509476656737560589975524973653195379949247554762544651700179946409577004486049737795640069502059355012141066670854754862534658521802801845490295820091552910511541199974499660910801970800171812171295113292556387849906555710668970187515294318532531351820339134118995904819990502355336538268969139728104721750378134807845929654805366553980051463766716397731748914946812433521618887545877896122274725407680661743089307214706465639215750462380181625283280440511780037229515271313972143783918951538801595663121230958115608212497677142411349344044238364201572227625628750240630611538391798665453242173210792849294062829590442121432477684891167174312704516125928435173236470667573230991404154446964224780165164121350878173856054621517070327649197652003208950137714246546275242611566937067076755663830727085153656787036671573746339551535564411356884346770722251416463871663487364166349375466990187880724388717786779725286409426705183097070413958246578566865765930907690314981819506555753803963699975087552869458212986887529701138131911618561486971460654411715305180749898523393844575928128580771762419370891645189656162769607592286201546167896856562499433480278272679427266852863852340969666066654021622947354130513653912190629454616261152741266264975437552740560886570040005482947496926134214668150963888494349502541997467912599278559262865657248690382115223641399843444144553554552278419294483809773168643899895719226019459014867549673150721238340450540636710046105474590099066325606335772821792977329816376106081039919646698716647073117166526249538459858402835495009902852370294483532498478059517450174288627037131116674966461509380963373826262207959733714622866801833968541011048351500684519786304106729360408931284646222744414178205900782168681313631096547522850075245898909151235374408020545231604353716211674329116152607966671476515176877512685846663045588755260673513066499351579557575156665313028964141373142325150545852654863213468801930825749050462354187361886557573303288352016589255975766218054612694466213825666595089737928373828534278786433047895354845930516210250715343561072295206841095495445186049536626874174254165352687928514572608194926097633941239538079981815929681713105575998244251629928555450025777264456957313607630547838910631090963613103986727104193190014361063755468140903636408745566216873588772009756327840224442608023005242930177717000330907207619196055074183488294412609686356078987867983264682146442210148220707212053772749633532544214521683562373954906731453028742796672193909405854029743996291545851977521901035084801450181133209620550934827320630029044702362311319699157155954987098175820484741536788329779396001033685839055316962665688511150511808772759970242818414217099403195782805809781182124466320468313147277891734808321634572415012101351139355316730148433213235958955502733535947466757316846718156884123121387866014794175782148521731971314285164730187174181456670252941111093887552022809374677783379513860601818677180039159257026439963646845348282684886766929940986882291827747941880816138434282481275306825812304035824678694931967029087121448616906427815150696580957779181354355029597881381462805826176393848051282880943501232049781500061593475112269304113317157584525809351469496508511891177044769950702377226125400516272243147660890540241795996760070198940758203090001618943849337995993471988632979793036355863569372012979566522155304339446149369713029893087812727880907133307181991721688612085196529705599370928162707395172168254375502737219363494661865235060045577532376024763217112803085178493790236000392651186080103397687077720081791580070225021410211381087743916010490254826545014260354273477612147987360176932022633809482592550928741262342498948586124598927926515975882395560386037459589932510073999283344323983419957033253876655723941490122452429350157135678692720370170175123777726265242537150572870587496386581425509182632635895820755918773065713441331671290044561467033074685596127488177574134218512200760673904413366370305473172809263948482883815291279323739219685261952582377996880503772985564128858781273239145096986234343889807825213363042774690340133211199635293404909338815883903617260388082064685915287111817795690307420951556325079729442596635368490153195109637941175428664958352782300905196638402177557592594240705366478448037001456908759463892195613457057841584963758896784497311439554508940522681540355313514762446217549500820983621200049382017859662055483084801624967069618113594362225300808017766071081054177571999661312749642143165922004034007686042711210050321448204039404132172339033050836095534904879815083928076240819236796720127914728719701896155990213105825587795990556834546187359177694380995188392998542371768515531279082814661079783986178552711569902430716069130930309522273265816898926315100670971215309484412917044049629049635053277009856803085082701234643511439156425350212840691203033341746940296058131058128284361395164157554235203666186100010956169632936590221197004787844654187085033096990439241957758572653960556191928789388764075393406716990053432671871585424887118149857807209226743632241828454712358546730624827248584595048470485482049979094038867385858576978101569793121800714906890474406577718816839381898591382453289113144663999137988872949203070812543442835484114556095279353665454237860345614089003208926519469091569828989434010195755414120512534170116724479186470708038344946500426277155749847571898849756880520215348504750029889758587778264086258284697341428176445229868885800502274717666617070785159112533472746185112493723722192796555630144158582056765906227547885890885936645857785330673130714198829887165329337668190966407300807463255179377741734828493929902693846952777435477617030332710809423170392113559386096266075525637820308106380974678275908507230339347367912591865431566428906332069023629177870812433971487450971529617938618960109366296258011451013778478882678526612292751089444631285586017484918854799647514136253601004122216819694515344500574016948858424127825258857927759022499431613886179610313290700803511657816042886813329381548682580046107856843141344360659331675764305976840867225546432552674973956564700457987686541346636184541309815291807625088443132413676512381787643098571661358746708526384273699395661505297325537240218891701354532794451112497271551141919819656776392461926507376032305211804700466545592556686830437910505971606809825289317913467276424269303816850912542101089408482754878981225366565673645241722063976141471350510993509457917344894116156303391563269218752835467149060822530543429623153781257770443192454876622028152242819996278310626356609824006843228488321809506300610898179458848165068849339160274916760846665637937376117508198831598293523233701555896500225174800094814275314209566387765947003129378633523113806604147795795380361026883349588565803297813717486487019572164241842555268533846043871008986949505889832460382512246057357397889468063648189189358274037974148440488307975037780525967669195433405595797365701613842222004495071825957620373877290773388320714356072019244852660533520455341922088153100683846163270447753822585692727523633974061980739953135943016651297630744576235466685443529284845124228785377430524651879178784417044515801553261270392156935509003278645430385801323497003212055364998742429085024202250274081782007583488704475075530662457071574809369820018083809760594034621541899602130988930738813251517280189310218359000974788735929693398266955363941741750799447368939785666112753668191305082329802567672990687623292847114522452315848956571602270984863192089496357432347375338522731836921809277804823736396135948794181835309667604491708031891598918867663165314747620986436533203129546255005924005846098543173620611880122080996005774371370666706116580861716454430816479469187260087447161013700405498233133176241371805719815384812975050255058047812491952416255320636401086960076123841200125286762653679558395780940367378105272469111191127053237745264740166185902668925533675040722435055075908394300428619488862625957556289618163275530896317031601590815277887701776077145276554527749818366557665681622259921231655893559310610814977318976525047428159392865368017736238643289474202487257262635963445888378649186386911227802047441594442352299265089720370140757282119507199510959959260863963898784351173657657942729104775084007560981590936351126003032108506919658853158591315907969218589486817762170497597015773633078172888002511223190523301296556676683143330699778975182592529645296575419932518538516857387842775618715019072761994819902215736100186552801720278688515704319585372383397105563226381877680890730235383388666318073772747208707873537561697152764953163187678312648864937774248628731331091592047232331896386158825864012299372305256301403634718247028651044384956244719914708138833970763752344400622778933852827352690091725708530164348488505554470412838103451232306981356863187467818276111655605251868683797763931023124730450716316672199946411713326142661362508769919336346402264109740549797570118228944778117327651221823425972878343081226015606718119635816779149653186365352222828954182071855950774830934597926411777817452944981394756818019115395628251267128023582677250068472136621612924153799489448962250879537003107955045148016198512053709387143376103788935867456416544640218062102531817570680224144731885477360391316284712262726784990151692919962625649176750936584566236675998447879835265086430631405984668739958204952647500761977637442882317845084962734720647022192873315624427811456485267840663976920136340033361067952990765197749209780007783454543200316942240783804197817190074933179705114111435851168208960996775618035434713912888958325494164592644307678574192737375104713277021689372840097111437048362888883132148274327420136319510365523350879331048614662315021967512648153521335116007802256917239580361520288254816409376747323162867900847691580827512907651790878344729146945512100716808998854487769122200439248534008495563933196806526094527300249165543425366792127605041107009286441538095322119133922592306624654552120626421902498760769162480614747001748489318035429907817099898477529627259345496622469192778985582380869908827775282892414467468004065895422873325048731414806047978985379308115427907239259845583308413718576472983325898874631610199094696147264958864022115127618124705704381919164401232312262747675930205458828146289346671917722271629929592083089381681166876139413757507654179049761458916004731618163820634173507786633928466843767417270818182298335608810256537393983306144071137235222376454482099353030485211806042264255832044856183582156694103800079766102351900673794891848874745556321938903834891315949870093937215219063579275677763914098097329184736710823908548186540664209356243516961755474845683698791133237694673819055825011354391249552260926311415200566236566214216451910499552379875938585576166753849395852139489353676872221605674494905330149404176097647085346329958850888802792054091826012700322898942340450207702965252778388048014204739376617848418761520930983549441526424745193196056662694068641097323943080348594191098885806708521969968392253710986697729087926334157627386523249970055544782367475015457519231993224378885435569725283925839809990320166065061133152582140790695590268931160595943307560709155109994448454424728077555922034883303699943697261937874259505498938397223369953935192393727222342066633764607391155432346241221281758774621026158622712927287090730522685704207134074964164412838539637890508518526214463517408752780917106129649433585406518922103822330021642970883889970654510509183343416275907722251491253626598577660164415024867495334790943156218077061639970314311473717323465006290570389089309899841639145302114755583512343168170556232378649967621298424830789979288610813759604995278737538510417122048788239371849641129635224122272614604712535630858931569405841438013426568646419513467726783856575242554826793604211274493562614399374604073843700884909857147251000032392152081673542073794237549070794414681329112854139900314153582575313465536252296318438425442606977444975860307322757102669395432544723108773453366415262096915138913290078170073706184684216001335917435577632746189363201566397393697885543426266387721691959257282793793731927192115840753041509113529295102853829546771848742757843516321604071616284318223249816487945282315205008530771038346470284325493713312359117899392810019128374731809255391734143464813472960716802335851112204949497810835690040626164720323772658743271569363757115803258593828799470266629821088970149972586228133965831706589126093062833836325185919825670207346672649207947344982898537334961019659550223657787720412106941309873384128836495356116897914072838872154507354353439666210815783106213844328989426025342083541936545815127059649652201945385486451767990522133179332671082711106807781583106181469578714793571999857432391597522587507686098111059872863248792762444891194797796628757991107466397109539417566346992857044665849708743579900876448563023070084470200605979859546625537609757775508401271887051119531040795003284421257934510866609032906321979373101981927782342194052316455374307501534810091410721433298382066409853180663070065650787245665175616712395929346076639226475154053339067534094513319957305581433828589354160325360704631431819246400884897649190016663843015930474150636994933533579117014394664482006324604370142048962550655585401354051420947679585001680835746328452365051631181355270227963895306359701340336928603025755506157958295708957190741175544885700557254978041933318006503052676016569397845218614506312632237795696283681221269112038501417929962702024094199014348380212934040376321252657196427659314880058456764870034796991502486982262822433626534186800122782749566913707004341511961233658878693938789412782897002896463554587797828610293935252078067055211772270062657316750901002855347878542842612171378285165928677139700984657673844169351561689202188693483991346288172821137794936863119214045060288441406962208414128484435707840100723931651349504234663665933097073131821505699553076062690457971035938126540392362994519250783930801782713806177792903481046171920484156276071907353089305442555620705468902874165281610306756495394655751441313862501149139752003601951818718582064120138393451854873048827111785428142914763224703998432360936009821935202798598816843815491936357745307686802317138763846141409938558040974026004026332611854025952843789943547477241613039472006606241792291167223755835184954210870295595174346917059687421573496547089118702498815360270937752903470572380457348749589160381314839947832521771174701697360913215290056862543523208466841236334548297426733214287737607605809567218856528235771369969456652157325351352557454425294608579841064705458880001650196633970459127241433020862120123310067987086497938738074838558013463045179660864953623350916107510466109075495123181674910498383664729554102596856268958141138070874061224115849062797872588796011528222916029002650103476109483785849546835337933704110062706973441587237797386040444833889351306293676409690617791708441574850472401044461930397256173808616115237322934808100288406016148270248071029594506769499538056529472929051868527093180795694788666750213085186552627993175924875105759548681113128537813388043304297488558774911744773481491092241104440859313559271410897427565361475627982773759042401143655161129429113695007492563993618685862964639751716269751067236495836534786336215763996270774127298815228796715213892499751571559984231967091121959355764848804166062762201253401968300750963464211355696506376507390960423360113884533723290189732761303086303342450515991441723844050670218528679326274869432777247313921638429083101265432293324993153487464458126942110114071925556365653744745554453083505261444821253072350820343545614797123626154867793138670629971342998867667908038833219007585269092827179923138174994139649251142154428671699032437955081121456290896108063080094635744639800475379982671521933804193209050723426897890336818382424051306280856466619830805746683516881187794024246296588638377674067676051492096413637421259569449310207703617449912094808855424615789266124017697103514936955626230407618462737670744606016327956138464289382962248246526312686890606881385626296434567053815721410873903010565844049272645673705493054149492360723373996997458257884900183216514310079406837547089809399737104612153415950656020342326472930689785663547086559211988081954572162413093365224062238525649001166933541171458343635791254686053968744527733266039208891843481687359629663297152188683206817757253475090939426741427605427286814590168851500336440354533132604938026520411219885586706096100904726833302454407067612005108171444433140104688583402077854879444512120902224787337228135328183705664911782220794541722513806242867093229573481366740299432536075941282242779486089038284119250262534677073926706614660570996400455463235252398403807120152722872417664505724415801470266744567195938071352545135630988495921159780456885985467705111412162150985557120769995204752571108578252627569998131276418044374958235525391832543828081855931552781560017027653490649106067949170650436985838808257791812542473929127594943888624548241037908106785976788389968267887911816148648016367956894747826612234206236820783850209702468116170329884360126968212677148857436287654198336060760630878571123514485869057886206174832122828934771150465869195939939619560931226841833313759397647669726948221349712858276424822168776801693969894079438556899040773152614680506713803601679013014120120190095884158397589642797984121606712144463411524166491911401096855617970561937875722396719958575125702276001038647419199837183864895189535680519081460498649606838246369218644067668491326509874852462426082638782467619085627555549009550819470177235307285905335145734447786100974020330021892167419313978258511676493939286878927934343734905289012844038764390696226964923301856984365994001002231402360132211005402036058770019386117094997246469606338870350696818456683908766699550876228805273538365549989494031280801676305684247248197163798667024859513297405410203993725481600998509463767011652235784145607102219820697871825138698671979330090801339919512709410485566925861532672270743694590042502704827718149534981769207453062764102417062809893468736292888449219722961989235658244944452303899474210912681691435218789775536102694778282369294204287206109658533101337157943190001291257916026210956896313433095276430285707996925288317781688911851623733066591690060090161990526181204918836486747863232288492907549932480441139169176576543347871711490543257742077598401781997993095938703386130195735603051216347366387412926404659217334240917314988987275428961961104938479448247506466516279490915054390103133014062976485770829434382542666896488119327022810473399797608708452909214389987503319963408966038190382093523903974310906002729398509522841117076874875162481787625578460180781410422274717000084640854530797474702194666049018172249868813732137615434090282819146075296995647449548812145327269889950593857308924890488874813317910778718940488915360789861521481136934545241119641175696148007690809073006408578157236590973829358636471370228068143431352768583091894344653345313209505085973301324362455632578735660181439936582037050699080090167996587642254890942827960706383595647351043300557204645548221641427927890592546355192556331509552134354531712959041617697310073919001375647114685731062000617092672367806439465987420013367412807202497118898024719207348408915482261652898459253609659228827262014241557097256014282632420641165346985956132965221761830546973894744790333904041783933911460961164051843740398979085864785982627036079110826602997899123496966983872669940361882677496067099507056523173223864646274349669106283195037834229555569375740149580132722541169416175013520396153278709223711587964577298186099463005440797082644493129687638212265231620305168956208800055893717390843922265066734132105863613648827453069523462437961407174985294389817467086212832924862230675041361411472833004010715629255947301269965447308011859472701645372352479100191982183771962986910343064350135621402285204699455729066087838583345860001687366779148085947284607015928670410468124826384693255011338975060659592230880870478051804280446224749912217838705531910703349404965135995447327720556484784798618830334403595412493461199448570850434020813669052826231554572581604272149775008414360512479019980468792603864087932862608185603158216724298043922583980163463698171997224157040045236149196092345630906194783801045157060788596143171957430892874177385780055395810593586501748573138912978537306028482848002278707882585146572603814171578873721941458397194826889188366247356927192916771269733645753963200810284861796006991194540669609292317343418330366008812263105178636258047975403120108472250119362880338617905465536192866491712944073077527461035424966429548664180303444936904237476794943486263357376505577676952626362799626485654915050139812434047077389869623001204808691226160156375380041737257150643567519571731211797890821570557645010920967965794133648150993337121698563328233775061893341094277410141266369140777338512754993174000498514972152654998861523041182336400897253156160378042167616489074125431855579310082900675663554469210041885273236188485587432490792479779603377239020827323190387980892995389612031049183245787415488010283761373617948909229835495575956316188646554674125815604965970628617561952009740644271624893392804764331035062542389649515352729448033116517494635814452901604108990615017358498973002077362062976531140476041014024864343472040157965061362477011197261414798148465783510243006189034127565444609361977170862876704914990303452685189066252652677050702858508694299158704851621039788791235104316077614028991014129940819118625491002886425218817975988590650539156793264626745321064160724871836232182978680238776969683763007889629020844575272983142258630511448056673467670249876919564004469287983463535151428370926049118139743197606925350851648096324764921842548835083710370826328668066893519241327280086230221849484720717779622919414085595772448915222705414228362692828053539119163071191112100754709079257672371247824647734131144380025816052122924497506103000145394008144681084908762457276084775774939839585199581313668901111600803763180226338734037547730768955057740941928272457752867661039789420487583787734507867780450344293631534201037655456523928426061479603888359607655109777112138478166263255940032378304117640789749097814592388387900822730664130227386315205108393781414859117200633914839924963913845515669875334922753533040415506747888619837948700111418183455309113551134510338190300757253311389265635410625653213190470006921073852375898012563553410603303840733786884786239134960001847754131376279219138905850205906826840719410190211388667805154344904235628759626685928932611103768786813837728101327798952325401658071603693597073615172590577960496530662794878019499695860445795148361278561055135483385802959480627637507182549183706678363684492924412270041364640642813634069173053470048724561632495242260780096597580236918615230357744276454150593797747140315901088159815151515503312011135909376987624800622489468050213252139646646236933932575041393215316870229370786706435497379317662543796980173059657702783788486401546408287249083830704648634658045032673670336127969398486491192930455116383324078678151769891157274316745059111706004268682082902390877423824194184751888176519707318850745755386171000771852809800715035754110010846874402160688121136384748308160083576156801973095454823701134314934390569026833730510049514808478208654694753576358584789586818014730961158359540766860185760647551304281179190313970696973117145416270134398096207534942715959568825643436833809623953714324956255603564924434473801597637310508911510244305819042329081456021037314628841095482616673255161920577891206775244943570342814568705092587882204292448114950541060755089487725111454076774578556056568036021033737069586178648734763063134502290521806407160553316588118216687626711095089403535861024068490458108898184209766975129309676072140768083729345166034421278132675473940651555222664871483338003530849409462974329303188230420132882304377815193183461058354756123492025681797101247080336644648403039597356139226453780369031389873858435326125440001296387589087401465070625530418666856753504729124719155630751813501550007255544843676084189178385931912379276352042476310008756128678159669033882901855322417129756121160767528249754329009611800162469401203231881320857982770492062517819800891515327487222418757617989539785834588048070688080903632574373971207038049913556102973186085105850147950690242589697122580097872396214119222034170022862553691705105164259610880056069163196269449801828091351140824843738595104899073317526211119938177312173003062367675720257659506654496529876819219940982994081873527633890911749771918972702388939673046582611159054430103929437149157454192912558535449682075856103325876945712593890361798975084391350567975798297342361198574987199017079603692031635817958731050109881733179454524366020895465009832914558259400691730016978876336134668906837133553533144220126900696418585170048976843673146223719406745989046134702574612153518438754592472611228199049008309745449209795967118414719304063563134110335233730649939753322171704769538347617628527478021176172397042230314013155602488411045772749585541352323903781202420463040852134929535497631014478008824354581950154195844005813962119200820463166391525433389515797324426739495547588995144230846950005041431894679864566423037664984623453716853024104121791561566943707761556981616328333116053935673636413026305363393895188408587478042658947173017991400473646067661188834694555454693370016267138613108248306618316618991495197885176056923195413722779484617331882678507122565090031279956403739344881544441335007153788576734462585118431963084440078625390557027738891187724178442667081668765258644841372918981156255542776355115853806286718272237574512008799060126759463730064131708483812209388502590534426296390953103163601127382825372407226358310339244197574204423783872050630004104626990929954884005146630868701004633176606721191926706458009515540591261779661790286205438459187956874466103646619731036910179990403768619117157071931937864007968875205655034671800377255502576704336934439552128174196084500176222409869476484081037319436580434306560847581271830453447574725458475837912348208142803273449732439114882866261374378034394864704941834153195162867983212832232531049493939370554120739591207971803517530121394346624890773595668098827090125662300774752863934175637148508344671844103819041885246157564994033952990238546773451257958884811289840293398067362970607558861681670904794482013389617955900806522523769560753640371476588472069029668829149933923852803139540086403758568388277694248962227708282004613817321477279461682610914289307406368110100859630342634034904747711805183100690629299679375096053502032445171599676959259092412919723707816642678912444254546693414132082313608592111800971288134366386456474992893176393253054147097400244105385308463413413152848116836191654452023779629844353159314438928873996127948558693749306624660746637908785847655422152468419884095808571950751700659047631016831462741815117522194994051637348584852197373941875911744323579395895169791683876707547099227900810077827057012912546883247074071301583679194554136129194849630228849140756974340736400591513928689837753002770305658695873211384002627316544888849642497957054949241349408440417608324388349581007858655782375837727606096408081516698125759521605074954026949137174353483967066827398993310421681219004012625690181665498274945903602368157492345292941951749862227540121691032852136467942530368265796646850865887239357214932076847911822206139970835674960956144971114869358922717765473343472267317178353188660241043270929395426525563013016665353325221592380882928727542978158689182892420967698644714500760264632203595856702003963376928300996289561500694057812712892087085030346953993320812920075249365823430568853013112252814105649169748191721784213944505645696733574688218945850730639481793708063931687790184569267594598726230929187375940843295869175107593042570947227614200983813882101827496147791872165001720407849040083829940198121352485906823495080441443820012389928713539324958757540353579749778158993491075495964546367224942964696429757830143376860960993997196366421220928165328647510394622453828718694082620490495953591950245293145211655313677114636064499234608432676626786700252503452235499310915960133843187541530836248962399646867950136917962764556515602719658244003664268210349145586966411264061716830331843446388423384792870708448853717792704733820885185418820222041080076742041782313236586672977943565534748446021006971151477712544713424311732778256689286898456559403768237135875413585452906169797305281200233603122392983930926849532633307526798005196882754096239455553244723438422453747531252300911455682607841615381119638567886952535459961581742360901462027209706166579944178622736225612563452829249920634883713146942771282729555700168736557543771027839280219307209135038813448380004398320133896986482058444653239657223019502645893630603580939536845020232157767024436878258976855220583188305456169059713697014274835237323402769438910726507268155543171920792769520458240229082861053818752238607274015022028488230749846885392511159888366202665414745951262559026107130168012944111817783025974415830626355060559223312805693461479019605744042962898729615678521519352979051670617803391236011605576278271758040743357045521617899679926965645370387705727171712776572237291477271061830136179092714298040377678849351244789062023687160746136331698132407521432170275874200343767606541123953259784538667191542192932496593518423080432822400678071756954345088134163058872714310569091980528118872176477975718297917641792256968122663162327101777653219547511962666343518530193915284912458036764006363444873142685877444854541321668897557649540631070670024432422464824428334833302456037249019137809391242163834132745657697449678382136846398776834251960430930791109466873696959598850542187590139774080622398807952747986964073010632980370271498236614398376906105916315568482498336639524464782944512889133969988587285213246912789528110401445637619375927039931452176740494972725752809199435866442671970640143294078085158625891181529364629977109931458184675326371277046189205087943571923054438436360878508564220173464957119132890900082364167741418149554534370985009359404096532487196987097370625625597751052488941962429227927437647858726980055016959494822196982982629949584775290118623996625763430743223043850099070001334936808418620783352095460145754711915950545445111367201522641749405726195038068298882538395506645523569607359085516811706442876739002459595290952084590700698230309401802195912452485032679910296280611945871343097333421748913554694546228034957252600566289361379576048825983471090959609479821374586712217144179185623664839809345793855333892574837541746589213982433227536994720046391696485275858570896491345577769142880948119370279395402394799805047665150150274900786330862060965683728962588828884802655335408539618990577310362365502768546355578905586610997883566536370797318622310534448100291257061487205013688430888332755449067174168413132805512891591077593575953693276841087610780292802161747324864756384855182653558428917959025463159521478975824277943693251502535824145282326180813461396453657377803557599286115044155016618008702052704218121077365528610288745612815943371142650167107163108744978325116299770692598968819781747162340547469097615124779312813178800047608355367938506879327105847702147511057102294142719610014361509232607679781954189080526820891592065816115666092946089110288434891077063016890782880425054752417536517089111130973342678059809058441218750572937835313143739005753459376426994152580559064453356650199707856637447596062316326531170128222696119973709489122607186298288140167574428195368206250838910243577124232287657452966854594135392205054170201296492678065680863530977571825588220927225754054616080152550029839947134575590268226541320170382832779463349446019139221120851159549440977604844121210259652517362012375067539975635697053064793507697595979987096390023092569371072229278175185745892955306292338789540137678737719013547302648409534722110002838420024027804290936993472589237104321937633678640373417687868530765982871930291738947658103428686664072650377261953953447576766595065631079637373256897767311002268059817789404406761153114992092380393813829800340615900168072998852066074315556286167596511637360366555271393363246607482805082006972845860996158741788004247584948140608002098959398096921333987139812123056290321181915456572231994542674588219826264127476366115548080651064674228622065406358262236336918239450045806040546166274385628311979637978169399278703979163202239141913219110947031353839765538009824321491089806118647954111571715785698774888112925961129321740162443038674639052966780581103139540282406083044210655362896288922801621753289292104812581057438837594433579099136372153681628541306122439801601762195843152665919714698729173227666503188955077146583527416279832418299449001798901139553690880548519426239445266833242651501948689114858885966197545508044373438874282929615526966031056751652722624910277747043655929838241375074939576768997105931326287887558996588549347921878353605926616134369135908955756122741326858729503189217659631723560177480658121562388213446672882897152698749740370867189454799471810260201973248493420332129446900165771107707271481278951225363938334709872996654571227418274194639892626870965908431388845775445490501314092884939317189223063905206729879091788099732524767514755016290296962606839528734894501036024730218110290047375142196190864277975201624195011540383691020839269896562812879717033604022464656306998102140721076478256835435526655333829724904424974208169140288033908540848587227750653969923202888045732189784373491401524750709266259639239414692989240392941051341568471911105773030089519462233071480961688702239426985129618566769486288840174410137409741338199045655912206203177578551709384751220224316385788212877724481243137057195119496913749704489518025812604867264451102886622063508462390853113730804646776488735744239586798696197951217341031412338969806350249247000508159488749762753922423106989722565623698533817836182690590569809890822046034246178261777530182120648984564394673018741033915754999802776071696093975428241868373201654325156692574629550605980284019114729344638425019011277657989597179296554234216142518285092149452809501050450638818479722928071837367152499683912499614098273540307861279167982860602446792234289972480886917642804599570876523047613712502001372696943886843490478945893975509062997104809870918062780292718757814372687754934897539715828706234854632531171468978011605303998732736447705235568638259436860262804721853963528789046810997649821452203981420187018801916803894740046939444289472956302089031537119171659968883996212069410938339565303780093404959621925949268165571207561306356772206725570045890487236527189252907843055787390547588293715874244626017191837187519484922799593595069432483125911122926464377714716777350846678486515775146180358307409723613895167270075256352214814566796703201214059447613075511865184273612495969306289231018436177183285118845726168069573994265663637901246425889863236499618968039150023579967744293005775183756043976393193444692023697854449206853594516738179737098217838009864126402669935631233899731406397456726917203204568586092983456134078579067648820065043671615997988380654354729659074569127950903313701068179563138091402171059684377647011677578551939370123899611087470559062056915032711392528316845644404270780355679728277365099635700986308939008943051138037076205391135631224926019915727435344960648497460904837956932717945508955889855532559502597712911129520280018674081275414684156726988568328009510083474493325612191014815012214718350435752346962428769747171435728261775672569465373249058504400523308498223538448183440210613112841864089624385818449160695214130462329787606901545940209743634686409328288196234417020043099511065889351588561144191324471631379490967205258898376386475630305362073216499121810914260724689113350369837204533917689980307113870409432314615821751350738455544420259287367132882821150579057943057707619154205360106059844243929996915270849813373477300146385281707063096549184758065899116883264121297202669290422319496189794600318790318152023105533943844019060768253618533719994738601032043950359877803190993730747043273685789962990402841233333075072677942623169875159378182541324705224988245275216499497034968216107088880326100920877470581644576382903082900757133344127562673089392519949594497574690626187446338260617605773870933540439402117141924539385920695172120076519839842680313750103301032253968113419528035704509700636279141120594073011382234806391574158942250474276774752629687114832125815335918863677221314901664348779077790572804663428750199616647861502048884277625407017436521206600695984599939164143121796452919085663431820024746865621918735228357586304201787197344860519723642905918913893050703111097016151998018538890922067377645411243681487239883304055941387055998948628586864971298119727584282158279827963176437699103464777560424963692537553844398529553005714701996172385002614592046125339930599599782576316529038473481846406884744085910998359429007499154061335173521157094679286239746965774232412058660358780977849624388456462694074828064964034495559358748824869868842370805051742881801123924279501007113259717337792329914111419571859834483239212369670960826177313847453129533980200698164870097631179765112949618787529140265766771990571364800705375873167506992786215436570559798460503971809417849571569466131658175858007297276748537168639232070722552063467010819288963481857191370508874531518234947712030387395799750331453837594483716349921119691301761643806128571699287287882675305616487982738992518862501313881684918552231969300711133446294819480235402879563712578646887765230354451220897464106705987988183421652536548240623902585979991417230803230328696688651247177354849353590533936736644975718340561336459736946942833235958745228124010566855011193203324059405363341586589167257046056669763182606439044274018204029783044972031007510199344585651430983239340967299127434201528710945996677861025096450796762635990608287280961364497680002185876463575014161188616934697193717362157519844711579905534269145503506960139055633882070804101374893020822406453418189366740144978760756724922445736691876792392813961946738359555673616563887199205121286753781323380891641707038368362418957716168659802203962145980598981977154412189179904029552820785563567152582602454581462948860585852814000647980366978848278745248371976250097009770919667098426011571730576281877573587058689722008124231121087939553176032504684613324840546995360784957382244579980183485034280423424601447745941211429550156915286326191093366548396739497438845082657520947195515933241203785535691726068292932130981279115110594599201685439756836765557234898872821653637262674857888005691540552148373388873491391344118518201879381710421904748507323332630996533882973545223675036840768934121443190879119140760790067470328213915281465836036132071713771934024377070853867599025768119664346882281284066502176814720218171222209766180802389841106730664039970521873680274625452473843415423616493904150114080080994643826492468577200973377676583537978783110556623792462885789432502961595911012079064633723630316405050361383244378643475923747838673065694774605940378905797354244499442938024889927860141961432041206565977577855061246974975252570469517195765680766840999262036375755418383731803147388624619198805839704367719128953700731737088517584486128992696561264643921703554184465819992012624278858461769195854075900472197807053727417014132052044123149162295964493844030828583556613235915680569459647380676843494328548388652939175447266557325488308228464498782058347216665474007991181600582046161885126872351069736297017369072426279940235920613508197021161099173788667642916378769311035172555475645522989139604501428246289971671463743972661078167203462622306585170216325488453821806724514931403202973375453980913501890977180730713856258212532486798921800047363816890558648376141984240767724849043815735486728473800760041773679068118584371241575403537539713506461910376682692956206560311572179626759774171611220442509003558590162297984110222614606209252556737167248586633996967088514067016129447500508854255988920425700952901718883149863895260991441938998288314146102861571465974744275895207311180449197024336072803632034934133579321099452328099185545539067933960721283414894614900762944273218807871017614517776695548361029382584972547992331196205761745728386732271204600037621493225077585074552352767416328567802743692428244063947761117144031166562189846777776177171589582472251223095477762520100201487697620989619232705501230224093576102948535148494127010178362469619743624742238169382090801482785220921095079324148014995935934103007913258507929095882921635247997245328017055263930041088559886719760298028676560031683733170574760010471293177133680598630216459907892648265591688767653605706343453366182836297668124220598005292511178199685675933485517649792524599306568036083890887316629073689620696162976723547213338684863204464467950506030917619272809630985487649023297962684373730658517796511559457010895262887878386280635776218303171091436019227557161494976337674481905012267235850152534729265473263553852184158708904579118961542606493544124895074322052020110516746054068805678550530908301584285587342973335990966840893438525602290541139954432364234884229780491353690113283504597478228375941477025260087762529055307925099260745464974618876445698835966521695722098053796797228514818624277303293223175490663838290758977323479276785574687323006562785221488972499838626933199545915994651274758147594308361762086328848839733040369527183655623430018654049641274540902794985606326895471596814983582522569411427957348525716686769688879861658952527673639110712643949914468092486782154513153452601384852621544985836851174339985743175810856669587349631315228694062280381962695011845143457680756519607736798366880796705740275314557954887897061797361389216483619950246795885565230475352228031463192765832318394820120709604294354692439593657662913313942426348628841596164331316972701851565999635383535091598479089476728871215970782901503696042988547036871038822531462689402052592702325880417560117088284345062242063414810811860500317349379428995040301895562802530475727381428874382547389653967021942836644169203313963417229470301528756794435205532089206819558909887628479361289499786857031271654484448600826897966915229644263359647881262269056400389442330361146684831818430766481098418058853025630782952362074188494768692450604217312975768903242073760926122145285194256134387115648603389526774719998146031030201777598070785512651646763481370183106034042182412783064611823054259587386723828162853531700076661667082228862852784935462273674848173988233868455210749789077675999336820472592591771643333852073110677290820240718168615853698743806186179478157878469754935456652362950943802471045167087213527497415655549513126803479088271298015881129421916162322043815579893839786290114389587884148597668323055863626165746072242444416838185239056376038792060246416004277343420678066259483526141271036653387400425242252506408042375073085310465259393206261831544815929237941693529767154418719478084897160076378525397938616599924876387706241456401191750722323561851429012611138231669572163420380879874316399924681858929970989674520835910090372770853042728737911046513744269597635461353108484829017382318194744276046186199280389063124127583626521854091202405235571073973855256824142027231861253406461833463123882523123829221058860856525688262717791612577872627735871928495896496944348243377925591120094156000648711786609617803910020660470343835268071885588584686545152268524926211951620851048262912433822429203042401476460412736117379955296766388951063744722151375576944234097789459486349366677189124696906023678809992576318797806460812882930105499243210212853802502295149553849884510710797400025209008615605029047889751930784434649371719511547696378622071968565631390921980758528216765236863760835178278675992638830881309303331161671997888993410784928523721149362457573919864672244409130371704636528052765771832674794558653355244806317870303560258788505585239861308585280961669576105426487982566675031779592597412403051301133396148393544865811799692589922149565132172107611194252328205997360273251516944539757639832434555803453870165954254012052349832819390961243283056006936696500503983806226626801685096471045230429047130677309504131374326492829329629429450920954572673865512935630621827334734323453271458746941723137893779121122181999578160962448858495859106236902270399688752430920340769015759391197059961803837861814247479951297231106631020216534542334536391690609383146617909551031542203451014300475031895514285677053704546037897195552195336374985493211344823105158330671109027894999386856075657440940104207521920354299541097826165356299530142887872948701691049491764383781430235745531803470220070773801198760587021326760496265378070869951767762938182698439867013540718736984877542640300142230866603073477673479524086707416325804420658240636721756941340346133671717080101615326458576989577661780313271801442574036898970558270288358329316225358658468673595316270803532830645547139328733436261017785381802757437673681561684308131323128034545436535907279868060659804596814523112746523149458924285749243014757131096594568233148105414495960003532566270885065086197989765656638019397143333871572753423282014625937931183164793340547317142737869940953807854882342527464019010579679550113243171190288328079918436862739471184918599056861682623386197070923771372388493103413860875744608186829913204405509400194605909098656445509612566689013161180358225400282379351582750453981856028967399863313011315422558097811206593620772113833169308102929861070077955738106428065787118037118037411838067882195404733488700872769373086589556873978737879534172052726342694748278428711347298128310769966012695274744702705363525952690990412576509383057064120353216964222502456968121545907278073440587775610933235237447177079811215659831992997936349582713503068686596430876788623878463885192162079021319902583166147763142131356384196403711790400848738646088715996157157434409559779963369627848270240853672376483969616786493599222543107469906797473557070811520075015935649715829159586813557447549625464818486951600544486452837218026845532761697726346452117101692277238213348997731754617401356081143797837360130133299440336607350929282791635027448856119464860654574898872491035603550719410677891490741048846343971818378764741903035532989100409858273170180975256528825518985022699788681024741940804735716610837402942719181033036309250717592947601411874483197420426151717238441238772205776194827547872123825977936873398815989579224571946476665268752914614371221940016259649184274097001787832340163394068253202768457236687170578063524435044033548748769288207964157382574904303829683026169725917472280308532904163749549318551339975315599704891864206105394634305947588357206738549688383996293674232814790546168129012357155451992395024381795960304460566105357070590963951968967688289933917544287329129287395934759084319375413473211273335440035028513448193871224618318052425197396327306150909239030669928882264867309928004135784130435018424848717886436624078400864490562308152934692063120073269963218737507116560546229638284812975532260028363849478156243676632000266713216729930122456845263619339230632842663691089880419200125706506500257344963753945468326541652926433950288159691096366128000196407129999053599492308480828703249550696158717222819858413093262481130692522256350668438457225950185803200628148096871543345464431885644776880997773044825595546926532896051103092799061863166287812309603963140840668850760457718623650194944952153224669050901357959666871868479485304558260875064032941538505595525344810036186749881536966817085160154734733813957701301597721479940982476758933281730696313097985344568914135462545931743081543318965752016872976232735930184959897236349685866103355849070297137984082543505516310220889120537889002238109954529658502810038784097607328331867828712539374215270289284375610930650795980193558397053846042270578643260156074851031938772265701201840931436697494436720506571353703443600924982263391775389683446911364959891512339795656581337127371122851819809087817186487366794919195220117176107555112615449780712145197752259118525122576075516580282983602247720558971905926641129482289232962383640169147640367117732623810847761511975506211312532281213536907686581938845556758052222056112794668744404588625194612125131377716544729747256083555513971009779939921406216809275826433291880794843859459877407290037708927302399268773211638473214020124066173006229939150140670148463298756603007942275930691575798472969339747562254250589254669279297546753084081420586194826017499906836409884169476253216717638614913561956165548299857178529903664904289904788139592313335176024244797687039038865178713339613944155000976805595973255105097527086257561920336188266789868284577797646881862388669722424052544572249484866932875297824531666359984811619837590777004180256252588843244653621362322946993397891313131494740900976226769809758911310031571585060705234283472001337259824752622082007180361723790796582644149977799279723979707750290547605085009918517247135534948171292549601504687028886369459794976289570894974771342437571194517407727928254605842697995718761339027610336409489095182922279419713332366545525916544427282590524908982824212972736499058309022787695143444995760187184196653840529838465662778756606147157363177623327897737043587652081306213211881924651491439601928227867495469660550221945754988654192963902754900124987797043377134170005110023623687655603446762566202124637246378232902917211621475999929785498507943148441234428627208667577986630260252076632323366502597384710321190801276243138056420506218582776922118574068839731543355321875447814569928355041348122776537855277937458671689830174492742990775884234417039005795216488646242853260363344303106305494569624870642728996268067266248726259722197462257103890939661283566317581391134755130713584369688853113537116936453066817549679454888910767609624189509577810360056891363976644283661429903763948946471083871714604520401247926714877214159994165012421889583846613933037131711846660793356644809951132301207576392034554909589957377915727088710295739122076039759151224485594661572014301855100228484983578265512702146481678278238499591108624920424848353717845085860106936499441424147453350403943455462413542948635953709270765462325390901531346177485408356302962305931098003921800042289051393738259887397063597416731052692594796069073423585787318448670883836187170727813985891995469602913384272126205632533642276712852734620529153704289480487709317457692710605697576073315483405183999859879325613639762284209105657808277735690540453360817503639438902881869349653646434045222080454516436644728438769269030179893335799246556226058363234517156132679631121462085575710573608781311851109830081626518538557013809272597583984298005530653363763872335364255174325044323481272299824110192554755802323062980176977985942121799283582721592195496767659469149454469954209306797816989076080774741781010986087705527565363476499685021773442230711450973960589841598363134177695166761183088848855809212049513910459760759201992205429879502567626469394647559703488973152675575941556068644364314341633328241159054362516785641711710929826729492288702987041339251538572004434158441005304759602305987375776628137438501497411445476227367754079241389212437903019088861923103789791991206955470009103772590496151926624580054610854806451857929252031022409064614270565556084470032705381096941190869914089828553277328960476048593497912880960162931120063080458404483232020956329113336532308393423589406299566546762659977593153535924216947934046826363624912219380994360252303852990350407407056822341192038249310432147105965600015080018214899936209032713019496405431298127898127925783488656457343726758058899758669197336906159990920024190518422541594636041528546395037491950671361387618307438900321875835983830706144978842120941768604532708675496045015535423624715247037255518767268313470243457594779644617584292588570000723356709241956170334774555828767555619358466438726632985285195666345386076305667701263602734363404499725512239380377060385113380725075387519634962874924802342184570131226149894326153601870325147690169218104686729861857283184890067778972924917545441590909316929877295519191666716061796777702669162473458514953028007639576413394448112759915635313950027352234416350171954764180914760561900431806519770090956299230521111480534294069567185891398135523412774634238115402660926937031057231899399868601908837279978611892258291812478384656433834114397753129169721311943156924454282163345200113829626862518322226229000096321120431740149473313651285620306523743379045553588410816033426601966850007426886103533514110722328167463235873011276427622968531873895435649464465860916142604494324361227326148359730956801447544721887948448566268383545772162160871548060484203202102252945085808804974138442870050325277339770055918825881456017296130562508543256619246283530487286728203106672820238676733675796629845572825442704304744226490376627451344576074751506252993137679503347833504727949554637958914020777430126267401320191148320813250832135739734618187947441437975481449210919522057746953053751418590108827062588883159858081700341749835787556128130216820371565319733399143079635752461523946793899594979578191904671568415544160597435469247651037950891094643608081502089204762400909092378183258516620036515634485229924083305936503773679925054322582262089575994829188479377668580696673476177515911851342666884896623368612396750123927611514660357507485494894903843082878777937585524865599706436237973176162526302811974473171699609013518305244196398755948555080508414011584958817823494245729648858789339303391191018760699648228184948685168469667850430061699845105911146707750850449232209015227811760946410412110543626547548245975031015516671335008149122054243779595745343142314487446939279065022254936991599768510984564435754592955936316933709373929046308825603562467237164457006007556672771666850517475360908617310843886580262342994525033169925169768152287874067626103357377069757068373844404929380997574456919924418502950739394420980444106526921481818368730577124306170669547070892356026866891578160118071713443467357511987895621522786490813406387455885652872492542767666101229467780760591990543894731167882081320504237356859078498850563535334731673854058422640267345450395158332114920610688508364433588138580347808964610742058052644960630311699944178418663426845976032653885304348371013785350827291823656557538746965417028633672209128892077660069691580787085955290603204209118072123723172058902916441502503349174018249324425457330193911822195940623377813814220519211753885612790178517446011272712392371504492162774316378204695040076450095895003012479778478008060076731602566573269604743895425164571917861179159532404075324336843235920716725941012832766388118141165751087248347061231400093782067595820837121353974934948441258503077862059413413113690914386785199180461954000944589240603657717496507251339350316645059803543576538944585065651966053260733973123436793489997429480788333440745507877949094261057295452424866969175269343581476305847719854280675365581929601903339697488111430991886585886573958915066381347426813518711412417394632879704335048801191162205250737240653706144064289772415591061006981241046773550384494500667509216875248610189634366450587266912673842131685862155338134511704118877371331186902098284632709343373871260231665989060574657767431692188782711697614429056855297046012390761225292573398114478119652365253257697243598882841312962575940535703073876817402711471653008645587572182209078614013446711863320470430846284596179412978151295266847213255089214867058783836259899121717695940453818405184885688231905781753768535258667556601264966594957089676219118964945294982275465214409910600392926265499076206119156807911309735369072216090835860783459098826814808438586065487387046977720727672430307391388085779493683651717035273431937500796185004928471924537629345921169644999949741092070216246133595103490472762105332128485532312125044096580644651724800180036637056089538821588606164981523574076281320542672759336040492814111065981807689704075502452169076234767613566830774067227479046260398403393312309013114693617140696110852813777113391010042281843931234981504944148912216249063205665803531500955030585641763342579632652201662596649367895973420112409174287836106585968810648823572961102273033825135306035827122207039672940189784970069870948803700071868863911025077749580073196690422895382671745587909264871185710293020479147666644294156162365627460960974171037466886356670759638097570758192373448509484933588934284826421079505316218908266622645476480340738400171770108991857802072999426262622805175351179250727880431650757348320022149885503376899409902597033543160496175732670003263144079409741434824190626228144535862072752583762813901131157239963283204507825546728922769722024476486230406865293274987984467340533646034687542706922745789132743700695844247778304823902361553966633643046212669160567800711704105032290843200841265426785850370465048296719523455012319089680906880192524227318423936100765018263302611662719828410508376682044501565220023090636627420589817163012021087584176891811181030977182508671461712793591202981101383967000384179226773417347917143563784947694430054100964402621894553398697504724878408335851598426760509636975125478321970646099778936009149274151228796061658279909601663452397251536063032375591185058418388486045651375734533527213924783219582595031912767590325511688138991768458297999919546983912730842582204563712906308851741677759450879860383551551261500078672260448385430574806579986326822712791292631284375214211026138429319014449111465515213965601272999583403122656942137073338531367890515952557001141379427894596725257275042809966944643059244660723737434694322173972943743791481459540622948408661849236366252024978843186224985810962478542388105298807873679843953520338373577186400071021804615379784495545310192837687195347883340492443240466013378871213976021875805965516337224740599562275421145783016145171754262293544141352151749620205082232002094511885927155220950120066526287306337557787191303472226937284101429089333237188419114327027980112430229786343291591828142342880717763233174364119762325015071597275647220859713925510156789458104857190589493419912173211858067553040275330538598055369301975126674481190331937401119409301323003503251185196806808533612810447827907064283555766165194858030139817971306485291318340355156999444961866931669084523447614187825220438107620118025885794281795371134146460658373059182616199717981291922639076025380091242454597048862998694165533485299615864284632284640770553082259908288004470637502944380502968326820236897465591886141226207446076498272101836039919254859588013492731486142429470106538518522683070335040932126196005663338047646829174440776873944029983371488622661237797366207248316639501995065646487441344143651529723756845172952814859649524101109554676666284948734225345758254220837640836435915439539910325381418068120344903047173503376251587414600156007143695849081571137408022545763190821273407285903042004054432932948222821267562421810957612351679732040360340415277390721141878594167396477307135664188567464921152098988742574583554558277140440510156067480576022371848586727865118848669212008433797331783399872989710429895087778274564372447559639630378119551500853000156762443262668803777592486906295347544524423614261570237923098803416210553807027739514332212008156224364317392443978466014561328473988983267994228077167662335539393206273366491736177883136928988791253116297677003202568394614274792155078543294041720963529753877115976080165208561591746307799812608540575611801911510389319641547550045004689199127469096044305539129390511089914730894292819977740935578212347602459138032774611192202882685255020106187306189768788197592477891686133820328583474965978029315819047675766000972367154644471460851341888324175594473402375891611020506456994544597414875029881607459075107509384977161648809695394973123815021141280743216484101089789821894170031682932467311954022360318633084792257629031764160638200797446698292578357474688440346361351007729153976290610186952574538204927040594807546056934304728664773731504044135061382183354045654324855546593703704338284176586878243976754668203872227041769579830387972305337575420744443145322849926029217234616153500506393098839230802384148476566340858156133444278992722495600673828955485923842743258108627314817047451169225056501897157165370360097948185718426742080639852777890529531366957198523153614774569560771688768940718253324469014784500383553509761663629832144468281071827192180780138845688084009338329703410636070111738352537815133638427275885804291553532204847238390365669502809031222267273331622734230658723192468616336754694004537630011819758773910297998483798691704411679933713235192671597771020550701020985591930172791598773390597490466622688012111971673651555981726004136652705186086249261049026871450604079923554004916686793071948643496976243779742870171207283714162751749302818200459399233311182377806900813784540092438082139769281744188115702964578406095737580652105892232252298066286500925566534889597390446082809743720533618229751602842036779358617278001538051599402056471026850589447028702963325550636521521886698230292684451910395771606593819738182454085412156551816753753506235643990789364353448896679175718401868564183046876598634975308749553902876199375254322485762450699828472330654536688685670712988466909973316037550476602393201748173067035127613174741209558082230181541952249054638556118397374378941096440431294849929129068037267914657047471813091140731067261840131140316238351601995757574470640931421148319495447671217622636996655444732235153543594357541876553745469074524893305493663079493251431043342099874646198336729793835157685143943228126385860987891917782328883004304606514802681422573405756073413668225101266170956477983382624787366146213446702103679314065398114787142098546058993090146956295653653481435251863134252121238577276756436341320118261928935647004112992301248226659501269863544064692249356981090333544491882497002999968442658491112760124275867653869298888963658630890911706976737670236318210891565163258974621452003195281157629095776811047272288886945238573172718769437013392274967928839336893102439039587293478883034765990463040976370624994246292143397497589732833714094947233919210675260306512314908738279505842109642780313024754797920701135802633171712482798872973600444400675133798486931224106552381964921522240539263721364628392653360276769716798520915773551778725365801867228056526081114109911158483551826186316990837849253367967014626972593215118605016917675638341168625751653334860399175588058650287191422517553701837607350819570930344481220296383767986411267269243864147741081270459914435899172573643185313877850233091382704458141497361459803136046241919131872755916692726232363094275822927423515786074486068367379804580018888936798691330818277139422985849436150187006748942242931850948660954298018983692290409733861276916838309364886034103885454225271703133539353635100242473377202323839444975496705980571834699897818706842858243924450284852548467831445558282458595818393886589466437337842709684108053149413415112569699535964428683141130926699264785420635628668669267410218086769190021708842005938760721920423825482819981363580579165451437200339549827396795533070295129965059673639044968434350195289693691773470062780984088854260165910512452869289865726703958893278456771088345171596193656839352119371821449488625383377441431040582997532394433862110467789905589165615961867779876991739591187661913854492603972989099331946095242332784251018474676097025475729192959224139744977238283032192430226083627092205525272681764044346561701821317662496748038236257045239397247094145147782874110332311769848259312004657429595574894019135099316631954395327317191031182642674442515427004258433018751501833607281830327999402200064859602678936126518048315842338072946380553231449125918549348573652841085915032489929555705350125815066225057861373782311519370198075576252420904948613581847176856301736166858490064878818915680424792495471196316646645513376950180263779650402147692987072767721363814909727093346614625895040889605105228022568644596538259510859836155308334827151514782063601955087257637969426535626811231383507123114390463696730154266005052974919985821277806233869948664752123206391962947494487141006553563753376154367511847794137967930904500008508922930665602868658926285815510422977103009668777092157623656682986437253049059711966980613766458813318040825959006537656249294849166839716409283722131240241875871626244528928461679103580633647003120758413840702290348729539698615671294237858908217092119402361792118260029951828761884610382669490996319695334762155278484019428630614780175427604045133479220830473657552176065159266421262503797167100981877135349538021743480615439045156317792094685544409414104092481779247046858482130401249696990437064398686676224444182228999113604182399244205250410202762376204396523592317434738907215240716026332457621983374918818511651820756365790240124364015308398165231860869519969882838445208466269873441784905005531912448426587344383244320520839593372705598838344507839726007878866025961433367479086366350272285417447167278074343576919470938139610004254814656860936879222035120224498891096372740588554614861500220265894829133801663908309213314383195348257137808890572226008728769110395234498681294992445652436252921035312722547932486561504213377898899487460557890029172435455475789650929772098721598574851066044820707137498825834213869462666498812733186210800955741744989928127550294454009962183927194669028058352851165410555188247736522930846527212555975217258792994561829124736622206689872758986380110893187514852822465687632154528026418598033512275362712994686766427289035411388339360081772981983214870732556886456393595777268533370199071692755005214436335146926836162135110780131688512732287562083692310278929900434410807815638615470951527737837007782683113258643746622085267916697337816074949296576706969646245937528246911487367387955611214275832435530938024316473678477340632211176300006353514074469974800909651581643636966188493689658349039922517581639436249456523586658938454000832048755746421145441702939116269201808486058420274658579435598420966163199082816381952746399042894670514209787121118737206259332816712751465703587048416002555810635503817791615788545122960674684157510685811812139246333839892960070748337914761137479813836069547993231119207280257107333198516866106916088431374355505990222745643960029315604414037712240228458228104972406315227507946390676261966131438606818515228040843268996382748044021368825820862311893076876544223412845440810226613308908576982011783982969322207100093868440242061205465329509995596466764908030986923480220091542183988430930549444447220287985060196275175711697119901599666874641470106392270860666434512842953906709091968077550800450024554886560074665840438220944706152487950028680790814670989280402607223310365524719006744589204097115999129257596248251367088800451051362626058617785981408666736699136032129428164019069840691856769630711928574864296809113914689698390283953799322027106393253575725205869806911257633982985837675299624509336454768503169494575033544600613848890431752222098986922537914728314138483710954622947610567510969295856247766077520579837364639461559614448607342355474778085011766276985583729232813129502466801767658914303446849843440475623673152973401716230497345604075162822541722068098250813620420188213299244385696353513341543939076360640469437258866702553246616539637333691354674046421559538814148100679172592712492366122495779845272201905271878365845509679847739893912131191738110785938332257226361758311691972002818334307109319534083627595346525650808613948303564556515526629324854364532413577922433758566164168988239792943892459533558401241444638760592869011163340044490675416296577658386243279389670884982870151636163985217416315868286256428710964429363711882549761340145079486994040381110359417080667334205631834492518772978036076632483392545159248798936173350340691216905180327216521343408187294936574503417206996325359532278485281413337441348129842181403651704879361946306566686656840717801836346670102304484462533079561551063214999850911565265526196002191773740761532624932355085198631330223247121287709641956606921071870857648561450180910047454496668225137635893989295347916083406850624786947771859460626045499412323556686303155315984626140517901477633223393565040027974893731022320747938720351720714042765312985095583390152700770435708569678305765756701219027696638242146402830940783392296034161798095161849653843955548898337970358995868157040909543267827414535339562218726384963828007967590163795696271165654549085536325025222520134380556591689909994471564354409312832866201879791178561905765541836032101881550709036623920112027163001629028545721960753286864983107568778671258313695800926112845803993125115948508712948400868099207205726491835807041375209150749809272929257344908793269656185419606485964153269299664496410301375119415721172812747788253803154991041603890017149428422017104385817846436290340932306406610804811643979733057785713161876228425783915763435176221297018667481909419024657836727868424808972837407556074396333222277770574946770269177497891486136183597317853574426177689004735849471434199087452865965259176761568248439828326082363377711256482941256206124737436788362652198434447655999299237484824019228565398900290831123122759936672289736940208336142975206450155826550385042478950579360838385123164500363078830026966868756450333113193609944024874145731842196931553199842020274577086353411936956008078321429506728187235473483449788224718623979181164602305373306055176056641256055275218840549993888948034256774657597899044172342572296948353256430000996675248360432834900904428343806538051483711852381901707960122091792152799956145691971450897970419361621074298448760410787965302410320268794302146040797995061466186306293287449381813323359031436547977330512298225477569443409286881636452583645602106367279758365467704776319756566030303152901302412012851743429285890700520956848881971086137501191825730419862199218556594236373025809019538563518271985499258362505204571169481699041209800707322607126736317379853939427398870788887783125611934164782206160745301370402022456556512731631285334035626859409205540933062967959171451249129127945063849784621811430507720126075109970106232397126517710576643808511679387578549231164001451574515975095438763246185786766464704214284916179143438828404280505321505362812999279543328562795764156736958903167112689970139159018598461916767151738574369105866028500222126863616021635808975997004487957976371399433433609608953970240588774983287246696191806077277886213998334950783201372535874139162035739184906581931047117331160099279429663867792362741253464727275150031757025881651754916627542808189934612709436559848994656817920179950118012438771562353828689897767847347614026568011345938718713621404408187410494966373934248117271430864737640793911523416050631172203746581050203362606141615747175425017664122602019938727622641117596190889871146632891099389586930673175089268536508950920680127719462608465155866841433958072959698930813307634579718333420549932569541867837430935922378034198758335692514152651572431442045984337683405225408642110963549254180960846932320425030260295210864270005183007477800826819106841472351257932305323590040972132809919077950830668900736255988383912391633351869309060453357572608555281566253911789424134541653991833005137377801306027309911253779383774886988887277847152731163606709347415369079688869672027893840148117700273283986962764595047297191654391832465584623937569310177633549837049632866143154704870315940035074530030606251901176458346922097618463437176535691397214958712342033925807036102503505009520652612808949803958209958515373853858779926459973088015507117733046063640346604970026339124450502947296321261703221445081511486327473870880014183529496732953600710353084419576328467119767132465438091064497935602029053785889579598715973379524460222558436317218813842146377808269435849461325210030444564118249095007817743589329016197189153323652202086399936136987269346849848801839812877059526736565805348357294953065650036303060574134968961782439354237112047148872272565479741112310276896237948751886237519980448604715239696505121594661438663377064836697246362474469925826020616760483382847627115874509897523157509685442014861983212059358479122204035369770175621475461145183191875202446866046721794479059296405393810555887006016050990001806503783725460839970827313585262459049329221229341879503713874578282470734514416208428213916504629600166987854734523152374544135865931346809604287797914733028462868393233846569884997449438938627742008806708108343851683740650172045033618700382414036872741555703902315735014751393157234923895100168385124148903534776303799152955572581408607927731573017580579054221289546491921261624501680642512806842204473562420636037028136954081768898036863913862264535953390126744713025592597676542480625478948745657192768828409785249460796243787175847457826914270513399141704960133045416219625786570192544807478796687390061832659707594243424990353007183124429702710894435337871189881522830979726262511901936961618889717211634548282396813705141349909727278713292797468507618546057967669472770512804442829674158202365528854178851067643210485622899599681960377524409262892006283589040518978685532990807223971236362511590331708363081535584811825856569650931782223615799181086260647984929887695645150229875514932628222440610597996241840544596220807369969011865183792951434540603582672548034873545102685264162363737580525565132693950525093894956075303168107072314358868538059649514533874689736492578919773249832389994666172043565856806829818926516905207957106780945580514847485279364897188583147477077124993405015279012210075939902091943342961910872590978094543477889053275483149121920478614240018193671356521261782363390706631410577876007914758923079521118314174294198396512411094087730897276358784277597908476888025803723971812927084578175877150339925003793611694297566959962953033959123791616481528148451908660985466127432413363083357073064712930939305287060672221736564408485692482979873052562983921416226340600434226316003513509980502043800822551604334902142600806399999685428617486649573221486577620194877712747964903435166261104218947166482007704573450163470046206444571415137880666134339968089754702279758897195633214900864875912404043683820917254825867715276594489896100316753156678774136546348346527152456385044524822922879506160638497552958923262699454126310686014392366708507211091990949319506185056504865044858701317594091341150066374830222203708148081291695347136407508937018994059834889655421469397473631405912405161500270951865449077839448449295476394305566109424317651556331949969039635080829705913971432852604459263616870088930996394873730496315168967384095457083895989315146164500715052769885001127714891564096780481285518994468545552239884257448283778674745441174767504471509936095787251546910380443897434274406188758122898569543659060564325429083243869822125305307604813168754142619241911134599402772669414999950494312404851089008535971406371662967443177731148898146506445359278035223036835744691470018114601352621114183163545829979888139099226269605381967375100444737526003657727563433398661803327890573344334416365761929961799891319499067281130381941362957606336318522979488154476516146221516563224746406878471497187894468720430165435847362460466274268267215537348358058437790764146295330823709696802354856443434711126033425111426884204769300318635759246645537719644793141189627110118991482805229058327796832312071361312433936187821321731787192692971404597209831764647875033653354797362786551196740777529583601485185893052243586506755520353292179114599049626120265290697031333131727503598877945225016564966782746181564275035842362352208566917173503963057063162113433363619139074822299379708079003907570250221367943459986317300097326697416063045105165336559507436446779880639122373296313853819244223593202326596639744085461298318645213332060118913173123574617222319270007021119811264271533989727208407139729414912999980353670857747542192131677774028324946231574073940612131227354192162996699331455314741424589558439743407822441568603479208883222773166619192349162291022687206393449722252633992819556414407948492837539345508789939282780291423280495776440740221798640867574203656828111705629993121213365348529415576369949918276276177250693907029423744301481427585303057794212863972137788323020603698900702418658005990926554306875261590345783617257385395914201578285258158364176462469758147621783758884075320391153500443401911056752144156469027150436464608141912207852199773046890964106369688259144862896289821850554561611763752903283075331996392853640102910373352988015588331871580478813322528292930657549072586468672121380688520466273148351496488139586030207197755525671741589474319575423270808287422933980181638542576206867609588180882421660103915155037183293365626586865989630678192371927684036869791842021147187603151955997703373597678188025268749500041924799562966675883033309214003584582199062917167784847056121194521346737592937333555414227642297958606153363296256585200973816596641576398717545248667712169716011085257553563588980987450593796180769977741703400305601516833539869569474513724622033547409220708885450856396722469171966486200424953025139759988814496693354679358686060882423485974425176332245669180432099763343410969657531739914527367912179591044359367021696231022586560271862395919495968070688740860824090332422524930011756578455281022586817520106871901555216693939051306049659364883661389858072881854265665899140123460607240212570365074413270576666474775660567634607141516099201011059058876618274060999939600742190792487475204270893944301036759121817729116624618013266049721383129164727815812191089746815393149555170081146202189534508129841083354194015184794350217960099737905865066013001608087607762633990756574729523435018156483030118868914845051879758860819365145671395553911167908262029609693925552793601872157955231835726488520525756303478743957342878453437337042237197306843611320671843335788289176759157657309887586851175824272489890326623604725148488901713669600038716807658078058269970786807680636202003079196231278024520963010561443085039766852275129458728979075233074523281920113275591178415219494342710155700600833886471173766644311395860275446330923290572282781182008104575582910645176106706759706643724771763917444744812375428138792576973769953331694535956001407090595908391433701804106961709576674035957963392920900724201084846883154338368328832981329015262812552602395622265042917932708257304878461222386537064464688831357368045966991770339007307598409141646388910627266633670335579256458447251566917581533727373015137941114624595400951496605002056579282816224327933158200235356707238047744302911650475595898724823843501284352244802143732074148210385812858897127003198312488318517112294820350469674537844537610001145145165205162928557155748213893164973251351220540628474713934057795324124680986775177447635917586852858492066000628239928532437984865065000511875553412413205556532011262000765812791213528857839528480270213231834968810140942159990032144166201609270062525088873439546886102441216800834220945834649664093997821334627358243333388046413299773113066921516033428474971282953365524265644016004367792278056307217063857952765069142182337691463334117131506301505483132716155105639539695114520133643423514631312631616393958931119423819862262369806768112543578454467516915936214046749702973632870467965126002913427115842274286306034719965018933455300514429700453581457220545922860576917298283204033211431228766414089237019563673846942414728763821891795152165435821934046752931943155738992900244901104545202055765696797707179442216913946295955298656749033488373658307075314856690485929100726165356392538175907834162420946582188326660716573421809048347031045122148432114272082802430064624724421066646356323090214801677059823272705464537365542331360057009024487131199804993786807394678572491849522407338888785870393284337517532454366471745658483567388574318075421097119726406597186192121171339974435181766628871231211567885323338413427448505588421252808755909535468826733457858316796074456166476676623007396375537252867733167131666103080257230736671110406033167106073018650536920084474713987374831592970044215871668359720338692026570265328464388203688353386830430936548412177084594650365594074893909290638778630365210459927107826481204311839068595180806962314750845122285945060576772237005707121614157786674321197066996301810680392999237242102420512379090095494283020888999163844076203571871693719545486082426122036341425105387207328839117806512984687583011903243444303741619372536626003580152286128344216007503344037210920269006957295392079122055919966231533850372694545560129096265337271099607182941068053418657681137930068301772850749053493692290764800626426665690602930279606036636535212822113100732985748264167144251040842461423600317979573403814961753134168662347943212764315128349819029964885928819390515414300751216103220574338476952876663614372866201723262413690246391203232642244177740698823157028934289471411489804638403656843481857809162304954323675165324336136166707422459498481770447374988913771686596442630222832417825650481398529040623548070657201111897018065305625287277280373833571919174307659482251440059086722040036307738212496526400007254800673025412204843727488602081328931863029177973485630873533977459363416337186165832902484911005278412575402660889814639444010403676371737509699349788696562937729064547696154910285168739270127424725658034928454357760190298235122636682808172478356674606797927691629896046621593726614849803436144468663285040439407165635714778850707101229339028827973770570624633868867340727568901519137908506908360635514917983808169777691439177852072664693029074715642193239933719268376114907129198206501607126822041447254989040389191364127746602816489854536705832510246763577891141606962680697984872825507335634174763127764776070083637993268428508164075620032738035090318361529864845548014699469623203193582609078606161667155409988979885125904782943794875292229279087739857287669801486498859444922635992473940185273292954960839407259428500939481366413644745183070770463939358365300111892647736901732573522378860594138699987033089903524638195722112350436733716310626905528264025158202674470816919923730324281331119582000335043585313003683685461782607436831749963128032456214556678435277409839930356225200975171404106149905454246638113138177453031227038282051989447048778954017869007853375604501104654960915383920096686918238284537879002375119814023756367521497677891649134477208546496750553273298071722371128090709637929920380795124778536486597378503615300563433631175056575758444758276691112559498687256833509977058041039541353783543377193741850347421562831779892435256949753877516385976226458279947475025030692338132697432106128614403102987806509084212972694872186240044832530230630682370790964299580522179151575700027875901540448418732169983104666345450268582375651772533917375638756988239290611595595564732205554221059771209465143713370887762881724818539149322828657887921645347614055289525525434124724340063536552090711479505476990300361982502926140808883309964591972984932645069418571723876839411634374680552188770810798421256596874816857293162818085089919182449827644525409116573567630954200340037733149297328987923809888864580736948738426644559585616337905809710203922480983359408803704240757471342081266250524176565245338505905674263658879956779787083755414171254804461080331201441845522620364372308412367390125386266002568044916766036965309003309353434284222692068839906252315613402085312663172013306554913467544926538892251212916669983085748693960111072159774189379273038438672972023453729172741161790092831371427961911685593293300878463947658449942693069530525304688551458529624057558210645694636299398325968456840095681591945784564490521729508210823907948769653505516799814961758542922578373094235936870326440566399511524701460195079440527426199498656841857587868302146121310187359235717551769401029283133979246420562821553795031605616634308786451659173354746926474111489461070009290961022375974797485726605221643186081549283798566613612307420531809474263060313309347113923603395622552649703130315661332366073869052809334522724733583395596189404587819282074021741591838341423470794881294199539136509511319476183341631154024740809730834645069446052965527896945667320448070117747636827399151809651546197364540617602301348112154573041203926471432962685055541400271297307541741029873920414308641678759739380859958508925943499404549736793273262119292457625730060005718770181791067086938323135925259393115273863229865745887324307158153636716476991312981606168826039693506427114320583377636315718892498258788866738041575162045491359229517797092540162128674403479679980691569075189481971329247047953737898448370621695823999761261860029270013888938689526722571688835413108264553237166632886408764569633671641757432167510220394296457406231617171883525934440849854397007365734205566676329805009634472504086362726042591795979201472883512531786749752652443553501749011705348244248353269062523496906466006000243850072572847179842733342170188244395268273638835676115387485289253154623104657716346022485816759131867182198628337925126927137105557053453673280673086398677622719198662093537661790322649867906976864794795008868180752356430817495513985435981345743825293750838951064787343055448949960622943313498852167187011162520488839666415052678964200396627745500910039913363214137918201970241695002271649343745909580126426851115767609979957076453225074189625557786196451270608799111576758682787297721990996263027723436393498148552445249168453039129309720718556425080825287445992795041713617301036118108729845105744281986103849354806399668045251075694938088410571440617124901827665399236759783636688283566329545759448525525294583840947713931474228678702958649930584549487761802850623275378371621574223313645729076325745925882736649274565411110304741117501798654433438316289600952512072438649006959648018705258693513176800450422429906850843873990967687389676707040718070129683030881316691401087196307817213055720848862572653183391902437408838546863293610742801057529709767078090747023701213726412318104994062149396834104510242336496561857600713921877917486295411022648502043464171326969741811774770903930520900039854220200476705966584759243769115222565622168242659718369917704816193322139959873474802055324090362674115101637167825653869422670499248288663120954898849603862517947898008462578915064918721076108130191563896393293236702250894162058519384566828755879086158560040534396869692150294186170469748717259424307959498485878673138861532559007040518011998880171992383136449550446509237132134711756961800300189029639161967195553436228402487115621707435305723686678969749131290725974364903095632448356084670525162098467861159913585345472223008175795426629421964698817758991839475902996642057530324149451838908152647309248738488643568370477552640243594820750745063666578182794064831429668714023192345770358571331201166893199879689308304637165026053001899030336143698563228643620393773506944151913830699857922329113571628962184952859577950880960133590098340679724755909605777429080477098801097885190649890989790203575254984754075084638097863009191870890683245728485728160948272218427372631212940177200066828599650098135608814984453927832839462124623277441850337435821535476963006024179558096483598191739497847867129089948503255463149036529087325428122208072930335345511238641483537646134960901797414356205004657342308241487267011984623220789002733248630832286451115176326201279504194057652244127119866109972909400797928822807542595721456278323877255193574407614875794126558594876372686915516945647080251107691635597508204219906331992532717489427495692559403168413866167416027516425511830634222190565256475966473760064897172533482753517521189628032361346947046116968851017081756392241279194374157917085117573261437988702981743456741934734706069398902564837681751545399298119861662634174169840076230909841382078223275928836067534195637947617509283050462074001529157179625504314661458215190705884628438519234518012803401013738114357752767365195646787560162846676215052412956404649666918726858476776427790659824397519885615525266067528175608397108986159714690009836785306922812279794345943700095066475403526730740375050640895092350815249857387326571769071299904278861852501932620284614096805102361008977284614394448172774752349522714241935768854121287555043449277213703558627165482846979395801782636939660254397526920355164909490479702652710557638300453880341593220098814600547018502598046453235302192845351259631075762074414203966673322508569695020008607720372799914386294618096556951708140227944109952032854207136242966264564562936982811469339274430155946343379037458368912207373034485064889034458253163622046372083966019399414407341454359347239585665363704170297097574646190914560867649906139382345748527075813823713594365622144565086732686882963822057956186829294550939953000573174665303016462394407499403429334596293591998765027538622942576606616388333399904755961449741641825183339868073959783619084782837172561188685670420422996838526320833388917992383094547404532144557907598859524372281665511213426153271139822544355452433940574018627052964829568042585957347304469728149435254381242202552053379474771065433592498379243904466061981100778070445922034230859445459991880753737867204148429114329765065938320668230653606164685052494550251044029023936574738298941360303521412018349464079965316405848928881473739471901604809879258810716045307650755898250905128919652369194914179125590466862154016286048560521341702404643741565778791535777468283005294888460679047269036594653178679039944327972479904325281008828252923434714013063414568600771078056362142972883634687240523994813491525082172265169404292159950726248810234040151007089799628426860020585200568657519319222228443136078675461750660755866492318845629697995135364003325720650361724129354466515620974113294697593926070410947333596975929977341784934949761735903799430417529787106111309824325680327155615565427619881335652677187106846375586853464650966258793322126578288327892369501774535753795580173681812654455733546626068454698291473837718559334855116105457273990329483562755546504454426905297482350789440729456532343585831687055337981947141944008554770660910590906824240620709047988685588538691378428867750074493605421505150117914672756110096993665856949493739307822675298351939852818403075831803255165640844286508851599811575151972631418640400324558230538392534147076495976160778002801122661951740649428347003599147858777279842530001523526495018503248111980471867238053618971310854724715821617586908565686260781056347110568676697658882292820494036455782930425737945910634011880599297626501603146525898478207101542613869000619032690096170366300315983127897599698345002590982466409337551985264185823416671738994397063137380454480754052947552749473898436477527251271069100085152334321871605946943328415719341300802998846706665370583443047972341914899536555094601505497250287961119006944362331116988620874594744769653840005566914410999927338157313275024414994305322380515595727765238056380662025803368908268513319352632076239756108634830466684933356970440909267352997725977377344899823970602257560198312425948573045029793133959817893742175570431006805038340362497382809693865948234720447060850157128473210213958347716042183108570925396926263110184256680509697989796910166462690732639860351141264238748309950541298941599851750197726010087322352066711239701706550822849152540111840744767462077589024896904444693040752095817133656091110561905874953274427024759346939734425802715802452103234792251247507892591898842152988822180367382577216476485414787745851365704900600151935294646704672592057127069182965710884799029235808181589797356005195326468646157432210100760297078564491413191851604643641401455077453282477380022525491384965087429784147882450558867333107929298199190764706048183255232669423985701450419846384496335522799906390001208440151273048330916597512505452083014251347972431172558841396406535482873007859638374011081009298152706275431095900458936776777569930651667350418100596493492070201293679661710832445236292067016879361293187266517021779818832431208232028655211204373548531756763825093457561442533723234553859681142770618593330737448535544154276976764237037318674527634617594592157537011023251810779161356424716253086741892248833027104321430176978643717666086824801772074702635518967202078609316591428721044230935618316062529513748444788414490216753077319451918929611732809998334189889069787525355676987441066231000708628390311498873797225353696628469858906677001192090060965305895136395311505721400065265955611660421503269980816571134389145895045825770093047396957747555731087469588467707494578343159361336767123057727953364901586516952385387460949472215356907157674641182447321404555655409378793728746332326243610657854009631238283197373730788593290349153950940418125394256250729773422173599762446093170135432230160961114510005658511597838620013388344446927706854666812332279238752814485033245989154507622890495383935421092144296369470845729224313170967214441495613093464288608475083763163343993384674739481492229032624491744691391970463811208196410521720479975782437932207715472572044412435949849252214989531557067150358149271683869767322378390506893234937679535223560225986024850975003385827226206741605928478733940303165725014176196159281422520480289185023108929932799254125611654246975752588189210998843722266836958472490442812030364871207804348823847550991797261128352512949135969545576854752846047678030335361765914266884349351624276564001608157134620653035356145741962401168931563683011393203584142810346575309228629947793267144668300807976390270517108309487010257648520673161761003166600730809059380384047207180195689438442662055469910274918920166847408561326833418313266025918901292276188829726752771940999640708762734840565862806974444297715271982793232314502234841941960521871641517212082989588234750845433617774395231703639431337798347054962489503875569044535690012436524337106109662439364295129263281611300073754354201653303213893755548962554990642807628966755152852883519965598664523272095920868155293964588018303062952152932638517387304073547868141499397997914135847887300214408039271574311255247714572525595995452748413737790680772855187352569552633351129593593217067904378550834331667535316036131645499556670910159294787466234768119962794253664196655391583423733026208888664955873190866987372122315770875783320997185722897497136536745805073997626882447156332528227351520117405763429223778951980140927108703936784055417141487199613025421672760263039821675478380684062087852601935061456213997428919156555212749342157776199007631892697776247256432960513839017704302041348832163294163205086975207421801263592241677290712085592926955484168244586073791310693721799865742672795469779669024502074529789444000740450301421854302275591399199734291051435612052095974263813816408288395429677697639846159257845376874786051949956730900482848796381375144756211791931061184134155743504360567852219410792327558174547841167928212898291109437180323468958464825366579606648603655729777379261103720338169892623721716139244208468800524717930597137867821578512127465428063811675147377272627730240780875033490068261601364929977292552573036899809423960032421640660003247194821860768121601689586372562908905421229664396305847839365112846072540504831558578498304574306991647031406669100456418802311846285456103541935878213412934134986463400331875374276689981033468205090575608834618680177211383631136273008677996615602706663415679259012439247465856788598036762943741060582916677590810686247106651699891424713913293154014722155677719195153855332110250734879349537468280751967416947085401645719804211720716637713230445391110721097687505002249394415255389241365355169329947838866322234397343602523725526217888958212164958684359053046193191527602609341430089354895365266215298931785178291531589629902381799558462193573457613180430832340111757856825606277138311318863061422942386558632604821869503138735054036081361176156614142517375531836597262916073590903249867115477655950760264385562435416671959438239241358514073405910711751303435599272674345448923251019411386150685881267718237540292439835109162679883052618470394589037399968692513113983955671068729080443326336965776084322108502656627858571135228648470926275323675568698516849193789951714023962109415334617164592477376121318070561729936076751452630066034846707802698499864189819892184361302415199328167515194792229963783650024582447136086734212148802176545911256862886403841609952570496989131104455732613554662674573125298617280567257499326457486387252408494831954260203163372558542970300844019173928228446314139403457887196340040851204548842342768902524073479887050351359699761793733226079804922068627559442287848416498477933951576672889750462883623120728741758656386418400003434255756367658739175336024980908922500752236547702351859813055454350834481312269725554170962217773388652455750740850370971246897205117124732288142381018062862416047602537725375016438378722067064552849873026783479514941559337841960308427212351479267180913427170066112247191096798373561261191731277307003938097427442871684642436854648871279017117150137432903499475055458394942033699444708846348519200953859578521223943138224895528720876157407787220308016047434927131880061017775844540791586383869889014787209007694603464557579849274582080208009690993199057839902900494824997578410845157926634847853835276449686220392175663553553582570912307707038179643374098284929188793554417925792886207091567865251139167727948593229506616801735294091715901309106734878684088548759586826941773768308124850615175129067482656378685891724845984209590910314255373903286376109758624946808933297484478219221033452038792923915303349689152952391098081513940365324115847667541901088410269227754702947314708497874167613870390823943889451319763767295893351018011384110898903625977675678448081209394405677081768135444034010013059505289958973259015653514979260799062831677142301644258508101353261837576176149282619561638729251833539795994882537103591928531562468309887801293917807140977802172650361458991123234495689581159455950046638123784556022193661908957612336972972921777038876707897511668181611485226747238261326387457444575857476581803151382508152707239003321308655335301102583129713234192383347424447569745333293473184058745851236847499848721431803010718228447541840361851116138405669796072874965706272968680326653580956707816204368054167882056221782820285211197700541916105358135707713294127172813954935320178958991679865523170695869325421668344682214693499803137564312085550333609469546728599708292225254216650669841728214122243515999963190293966835373988909481380315906495861925866673526154607748647458003679173641031319725050899318205208057726173369991108031487299196234841906739649568436885898370411738368521538835142012894292051088262228541530114942400233081719592407618579509894042900134457236366386715863028219974309542435956458290308866608754475134222988429002705702324424963744524964119074747407866145716657863764536845806510289499743046505869525256745368948997729255050010950550533355557053931682689158562386616153321501777378562449324344694911212479119276650104948659000774511304421626194604580588499987615429783737585069007890610081828336521331814425492314494930237114908626604532545451679655505406087096885206664726518622614904479372283939491533731259614187184254046217730679148442259211660362113136677237435229592054821550933817492586028512562264955466298343394585683475502245447184902795687159381331457364498952461185296578795080330473671849564702042017442130502398662694770213771701998949887414434863301367793276795958507624255009870620731382101799560357318124440058897849477125612868583214216796150271595999246554505451913926753774212133426824402351833635617969720963193549509484379474415343823919085795215538917417627677222597279465062613038872126296403040653705892697768342305837958741527278828616462762567656231119274462755598817180639019178325924346127694465323933988558596648661978008401176943755031367416361538967479338073586670010072758598073915282879634190353130854721246760195019004842374642746673751306184709183728898562064407642672790895858003020464956817580228550287339814018032042394334342635939567442725383091000882302933279017934778164318377461848964950205992076157911536466663710704438759630972572197923529026244489556190114291445982913469498587053170376445488266281603639292546041135301003706523773275357408693672226574860150280626792202619761425996431627001906669640663540387068101151440537833601589656337415428113348641677560574438594987462964387600681260431542440057960057304616876774995398134466147031774075325906245732803589000981052737625017755352389920558031039226647378094375028789070585191117421632783025280543446965009946026979937934393046255055901276465789782654424747697971054627056090199334785725760674561929145077773040167548777308634859781523226269405053181323773646733864624538410353934373327080607892405084076515413561845083412707364057890683103800579478545762051771906728090122499526981519074901484867720258524012123163516334950204484633625892141822458067106627175937274664093389753130651371851576156647115519977320839988393837128427230906629584309064273416182887609135849618055762797637519265064146515355412386287148857488145835684589085106717189955308345995609159660637831451362897407984485188863290733001166264936893256845040032771622703766215389608299735044548061159292621507916348553178435477717331173025070340691845307867128841600426323569537610141831772329276209803479261963890330851762537513779562677149043733947072791270800735985329685491304203323332420471674272654121537812187555240909950868470836194763368753859388916322193090085188294063228752723512804844421377015358191611421730945539161133231907409889220368940442913733896257814813514024083928333999776004833991819113467813661080964220455521427807118133778753332115282781810601260239510075841745362536666532586038728473334672659189398104719715157437769091776642021614970848079102428676644072678701973943748817385199144615639185355387977811478198817853304688897781204343680932759723076447672462894662325260207036234826479823596829281733747716246341984211869118245626089495726717817144877411884778394661747859726059945315535643705814328728323301833747679375434910344988891593348229819141930296081519723465960291464509920487894428490721262084255014086075709311550724363947883795004044039241401931654482940557751348691310032884020325162343637602510919759751095818987627708335712789230486466207489396284995137558386059112388109791225038769502400898448124499500163461798871234686601514109143284515892922707995501082274158258041784866384802314439736006144009692059253493024442469952847583162705434200970859325201626079248055300395565591971075203463334547927321774828981406250003705206522045564573381998017224470540569340604857848234729103068227606853339257130017219160234408793096593256241313898631188265771070750495672476897946121925639725887146674258884138912048821730913067306036855804779993817713147524739932054583157830698617416549278928780893493466555540313275488653650827569616505069028487153410237357359698581788410146017438315633786462919940844917617220042479081200063543918737863984846386178576795004114135856344218770625239909529835357195018852257605238607017785601828436157036814123883429901567127890197521798049088809416309083336320906837060382014609795699309242947440596179406179504570419754148086470988586729085944714835550871367109074981978320487542939776079588693322685891312007612136488328308536067967462495988316738217755909653933681403127461920429194887650901227960418648643823015914897774552270666767942344382848985724329266432331569580767753878372432630412689786398609219829456795975474376223508670547022773467785529297303098405879756369388060677964690343989830129359381876577013685127697936021670364044533118674795590551386647128845477307400087232379828179433264586221902804769589811060207278088978715957063126112420713142896484937463145228365523822213277910128070817050940072137776566228509487865705897732249615692780002309406877170960400923096638153595498829002896635657595620085064549183432623747721622764405489511977014767450156212047390798282288742166631591221774295408450345637434200843958472310114982987390002076368073454354997737763240147808012753599057864909967543361822371663596728067047695089891309058413801996907872390707412174461274272377224349331071475854673861574991990858488374382374741849143854710856520513326637930845473420824058248789482452372844282381422545267032772015283171984221232750025951247537755212205830428414552475244693079393268138445289500785597439116606304917798473247985082624122571725764441383379661410566298412658576728943238354420910806946683513321337860958707438501619694533458833101046641698963957569246533759993515512570744967017561839419011883340803013299097543396243389664016761172617250180683259140104424798242767052332885128634497759717302492619157278451094750993423252825508351008052005972652301654178481602575226218026067705014184020622764578226384454776159539326685243865476981170855948126217369622146726213537550944482221933785861802814338868883051987306530436670077953316579724803097312635911664595421011569581680026608828894887785027087750898685196588237515831140654705811912470042395386148995285842391143495662018748715842154437586517682069236701452238527710110376043018637903523945574301927080725280975845354130108826096765720254238808463880403869582543990338140309973835438446510086291339207826269591142463141602388998824114732115732066566873038277570649746210651020841013733895368320072571290199048607091440440653639004013475361702459448151736654685371814511235813441840818050405618116506687755988661180275341828020403587751606052789171019150367657322590447890441661955679834163485725264049488927232121254555794169844128526175490847210285245455197693182424520053712796906866429194357193352377483577518724462539968679832069503721054863117256040404315421420970487549359849264983675737932377490726407708922203446350807436063586604976692580805595166502988787162673311337220062495197708029641443090765498296794465539422849552083838953698565657119627574048785498051347289892602834247117339816045853845586315231010867982922899874476240520124020540443317392755768573491252610532514646310227143408040109899680798549326645312740422352491075045852217551967348505519570678991871248244647742451726300324607339105490407709988298098539195111602308648323756078812417484133191031303247820476918116997380954242447043706760779535642736275295580671155193640626659882997692891920807284225114733129885900311183938576185517140013876566124817749633206340650539155234276472911611916035261775125188695381130862092423351303208059832084604377204550592052852644254202293146994303318841071216380251640719027748570296725531582967999756482269040545187147862652690914301265421702189637194783099978289771914106048443355569175669800570834272128344153267527389955935053457456903059868362113497602724842216063212012238832027946613161482761802859723495550680331493197038059853421009612831330136347423281721654557053487573335812446103266561220793557948818387524084482603118238922300273007324316839694680012919465447767557935682648003846467738235973529796157259768854943142712276775083665952904872664624897407164815804532126171042004019404620197782837004380896268578747962030604064848877222978113228636506263361471385030027958553491350509114103525727981774826603924636804764389893010789439213192342910679797945534744986049344784147656600686031519528484551949348315344615677022143858977611388650825994576129181836469948034778677171707668428747914653900158113736247785851552013155442607603090598885723113463592544918552272870151666546455759977738095939026917816750887380633336196708674050087040933290072583489982559932001455126128563806136397315008217679339196189269013108972099278366477555492537378632206724106147453939644989708482856918391765512351526806924772588350642262964127152052237094329491775615761598026424172185920043066651611573475215227526541710795546771115857822926445147451513004961356984126321545841052370656268042084799268597126057922089919052177691663929568798442169732789641583287047086165894369139927351149536191664402638454675567650065919288423052194262794853842666172554745745725486561086641220895396890526956355410539497448766720675204592778852335259142658610878059715783368076835973507435509379028358121358202596517617260239265947466860609154622110051126662101481293180917341313100913923524871937483617328934585307570758575368876391548594992318875968750311459320943558032970192320628068469980083125010425901754887618756441200387420198233587809267446183466482394730443815259411552864633713080832791883987933375151668368676832883334800230789424476109885907918766915564659489985389883167310011723148786522031952478339181724238101357552659087505255970539282309988924517108924867650534114596061692794034422142066553002291134662692482650427750723421506392428430802496699950397271255023543525947471223415751988546612325685097147582954053125819694509327772833462595285277764106770318639355847719754771003146407354606263476777045062971380031762745030290504136317162673413525429364946019685260202271847330719061108463430213154663330624621597096164552720847843485731776138932677781345133135125252977767551225144570661980700854101024463343567566501919391392520177026938292363344748755592421708538674612505270565400683226235264774675794083345645261711260824021808488845631017830159375014387152963676948762935428784576480032534242452234541334392106395873430226191393923088169462633475599070242661322299737422787783987059957991898812288066262354199124003457514055826622322568565637467456480585177124950434697400441289252528011162276533775203935164084251405704105292986199017052649445735656602879134015645747380068684525701652424422026189126998685807244873127533861875954667648068468976881990445473690103306385524003765217485296144257429337840038306181933650817564550241251247935406793143448639565188569335826602127150998865660733584253245522059018564645741528992723122449197643301483639455416462310496206077270142040328418580580959710504512164097536071869592948335073513092991118313099534798121978751423024897924506336581993904219312680198240093688911012230377185472997059275301404530643276569938030967299444647700785020994589925390904283898317179067061353907727361338623152422353040505439954458458817202606919412391066422222105657548837488462792155228094937160079599267314666890912739166966787791289476495908102182492312286752182982382452689586778089896527210139700231464062568224458789012114145738209919993062218290042796686915422332627845986501712529939017667405791632004085016481318989668803829226064930658970367301645026056365530686278476223508076878813546793442921785853819705835103490316007670310417075653356579394467861243208717288191576738147579906180072212260537238985516444244343298092462558472486914799949087022182046116441588192716436582262196533883889327621559207866140552731131617668053327085987887423570453166874417043463686916224161710943838975789747531242848223292836846637861057744403748489360842253976671307579683425192605245868114119371135983046029182064423008992139605365917809653873133101399545241418108435602607217204189186553188995680623212529400915331236465521023215084637132642738316482251852667323906948159346852723310816444991820378873054525309594353031606275457450931738312159500848289037658732224980776428254548754419629737602001813025430564705012331182042273791555675006368538908289042674022277873852262483957388243037376686550988931880664816850517393519551047420543490410990595238063699337885010493768134984028274253910747193391024309026969698969276908749406961858904399602341240250215897980211383761032218654584787000172519747984217594292548741973249510561772220151449255500266284719772382473830212784249860408387709951950311347267484212920294384860601402346930618827384710652666664094962971898290098185338152227152939388939168781775398984386910209035146574053475025447072901481355062198197777456019857246804086956927399610042053876987735482675613870438069714679127651680080662140013615150935881955780477966797410505284902586014703820681597078733336570399527254492682456556161322663744546001428831567852568488952500524601935841379474206303756475603767597399423512069360011934864628414272183676645731059495437006172459548132095238061803818218077907022889168081755925716535323891205351753975624033626555284038999083151000473172685580630173949139315622671067830642509126214572653917096905752313797507415559391393754431875853532602481927986687294201181240507388102501286940622374152706630997197453376788019297649520047921465953929298547168865043074560944813102607848903137666020480708612211615787970113633777065961276409678357874722986405039137027627160725123860103068497638066573849042044561265046303776907494651573648494405621111681813298358195531809805677871060477840128788541137214948409313768433682982678369692031072576413879997836363577797287214655492054421379624504123606901586754955761174727163117322936763125249497310801451193216744222820233021949428265718016113996912498968940419266692216232252779765383618349196333691705993899007486341060062235169356832750892814957012161226793286973662625589154152779738040855660295226668589505054157815103502954185186885750678247950591015708643567850071465658286728257382129074802814846993523950763268820730353304718066622028797433612687769731681694933827292783651882345413196320998437000186536179207731496752259768755549582897933895006321815491441607001334697860253848096582947059092576427348202252767691481863262090979723365219146700997144331662844213889200747273764370008782275386564649475596318996133402379833290509882941144768880309199865858043579826201050889780545311338391693709354506381735026067333958736816913803340067014676242205575456645304209492707631706219201468900685827895486489438889085558274937660305025038421908162485601665280085944135757876453197739755073248385590289484669185908065973957125776257332194613414470718976878354688367296620941978370761144166558288659583455399059260803005985552165596963350226856005526729707088245522262089003708557147737071577932700746111919583326950800506365701686631224730244895890741975225402936979712367528195865385102306233530466544821759747420202165216871979791044887544362703267070632521649328935249418906361889834900033472813741101834785837166923251323188129844644335205854533928807983892082507187516969097871153957645462520341709570699569023333440613518256579394875126450263804716001214386129922863305916985285081111885454098766551120882183470231964516442937329733113756886150564497251513388879761082324558773885183871607394325535958746625163802761325589536071663433442024935649679235522188783986936124491468768743777071507370127542279060714325157539606105515688096719517704562013855592553983676069352533760183268292503839408198923672583990542647057130193849287866532886579726576242033963973344346997666521908985267826760711897629352112071726663841140623938480357314135182216944990498195594850284679696635308563723006389587208880488496666044883176332409031536332525600110702150270632681867334359905564995964408243133330239750201027407411983622948099803978900027504646742165878643497604998082916132825034010928028694310808233559008386889778728687260995349364843151337381333057517795949582302635138822518250623133570253743581106283185966991604651407843765838736804907912126311555407126725643512233722747157865162548073092636209593729159012379680658036188559933959491538807340534612196090115056277801041886384865514260738140557864889893342498482502541231027769526367433511521672687831044459554153404318161324347433894514237609566971567112172191996616452442826830544381621688533682255322240481820546655097200456530427767404192744450896788760728458301709298925418294422732045626948859103335999552286507729647364338668146689605676389252179242801798565158749040032680949728766694187317953454342606266708409988967183333313086464728330211398057139160010178097115583653957719179152758541891147043546604765323252696622830021062387211098643152319810871694752496516613543066401060593707007933979028275604828517663958237148726189680916043560449762315496413625343474238881091252729650551211804902436264317804935934846183954371018551328747072345963815933469645668569258514103787617037546557893571250113409705736152204304531396027324741980981014888122547593205269640191668786797139439402212062461424385289807746539158734435982358548596117585543513416780621622018006493859084771365161495824820588322484158410591328887753948422429069672548100816973490394420552224522962891051984677297411759187057227252399356801527062913947022632195584880620098070857553232512849024756559057369518376147775426508888328677141584355762650233067523910020890622543162792963120845921379865675306961153549234765478113167317076698970065778194173818142544594557925055780871924235674514698372685040191225777450311699110536939885599276531811057468240553075331690352891460491340865331095177127853192329909457208911273312619191368365285310613190897021726625833704377000768019922772931988394576034509494373650826470582295420140220279706649278584619983705753741725575913256352909966665161098124815267717236542810089604161550885785042017591784429345984496930439978796585026342568451768508297195350212934027862375742804145943110336468807117599165110292992922200833219622052974737165870532950812980346986897744320950987406566113356891262972658932159805999961889945917716788408135144067622516117727681354621534805488538580203244054079511055925680251282174257200581556278995438957617317442571565939701577311580253940252186385312854014327749733760542356760328063009998226946062291047532258684747259150234456044796007993584758664146135362253213623504872410772957658652161651933425649690195973315237693445756460424439267856738421657447993676307978837234420981735099900065679902806296738280467923207762716725569617531151473997119096224054904555779710205176942634228066999631597752147929299594233514555992813726352410928384200213995153635324316302290382359387009261105948947598257460693889647774687638621270223264139836735142863213702877280785415923211613003645273390776982719215745130548491568594353777949396314479024099732548768715111804426303420625316185518266504029280511274824578955107660615729815254443659064776651820281655562925140331811783133474519012567146901671006261048569571869011635128551316877445790965967858628015535202398779282162929321157686557349487923008743460968177548742712100915813359987206304646868230808035076101501169677407504822267577349488767193032848311317470132005512127448996715257960676273110386198047893104843953302067050413557977485910335107288431123097900303963497608883058217849682720023549548188045006770253461706358838409568739441282580800114332313247824500765798750118355871957000355280439813223458199350292166624711725881059462233809101246500107393435712925437502234639875158668832526199198731172322391136598046501473311009273313557568604390908677712623100353687103212076916323141058830593420005394353166202613197291685856074982781746167673373394719615757002590011683232358100944612840440615026076788817665310516265343512231938221241557447874619793068823172512860539817461787198853576647471536518711882549688904203073819561526181820220766529663635276928927712982932033996347482658200389915268918494533501380909026712098296182006402946968652248395608245161383283227378463466965215268883656814810912919126810927467570440118230928530815955412749389080377538259309317132630665535654770026535273909201640193968992536057215078666615088978267360048418786769608895587108548673295768840670800166079531951706827326322543475863306045042349982922376274129548309668752032966102517882310741184344632133972058632352471097473724251081197550316352135620738501919946128741544487934501724783658098116770520768698590904013141054640983898428521116406756971401071564881774155731920377705306760665603556016357430716831163670860068068669868756157430603353471337348726622580600719058876418251635143630460514345198994078269887161075299072403448399691218813184106532432432644434131970584451674133151299986572332315741911768012374601368230591116585931957948162294401607906384244147167040380455929451734796641688194336731135829793898361235504077941988185549516923581665806984744497139565570242053646786196915892151441442481976458519768579803764089777313925469135014006559761211297155868871357630387356783131671903316153457551642364521307270541027448071820484487124163170383962523594866111339867605344616605165577916623275498488859967294125985093956994388856608790311933452220670596213698962203184467302719680875480249721919800695769478384396909368934925817659742817849187267301023492734676613751107660799807622347716106755782854072047747427087568761399488655333872912884038718834090773199966405375191006322899762403824695189825428842144854143735529791052111354339060803214230657404777632513525148303417433919991951096681991048437881257910799540530094604186537644292806938477407379162662741936641343617408549255983801731696929612950382075024056331908257142126096644656905926404610257412507372392689321806163563493904487653768289529647230740786217806096987211106069932391269354589970996382170944809320832091176428315376949585176107619360525589385129472781609406784969945985318073277146219030390786337163554942086371340407862061377220543366756331657357762827456300001817858795608234624031908373898401153492933531531676452591650383249381032405842692831900010389193783739891227108736847225803749488881083836405765235294808025874562569545495272426813416651534583664901032720029832998582879674014455953630202359666541602700982688971165767534105808144137222950604241145373221123245793589822946135274948934063644670573237711489221999415542958399314847187833585027154031215925658250722637870302964220641838797814635589588123554054261586773896557328204958526580136679788619342573026208532139327339110255283321309943998416094206241337629788905330135865236955773832738604093943910033215099808972523416918157173113623811716829155676537647124065194173660687322244263271540703794560884783687413640963708495406561528487239961408637458067066946725360487553534122909170179464960939531968950549149760679304728493251390768998288760099131468862306713250900260440753901626370125532503234412600762331433596245258934372854025645033796687103696839002598069665542438143752812139347272016157276330508495187600733808133897173721000257170371085449595673867338932175266093707338977669697039050933121488457206878381341869461128605891055368172750005608558924235157186072690861908769395727951992174343298233830684938128189147451054870248671933710853845613837086041370199742840436949449925432801896420521153434648697242269184390217849527673539996266350723526692492531587659241483893513258930410617030125020901412587000127176368360835133688475538575449382402550113226635378250372849994577064334215410122350387272457109469969914809802490645165014843403730611388981169049067225137503697312772881746714154553298591794293592685716684987165440711777050285368466784224954169032704114967112303894566376610969816839484816746945651697390401682743075404636092640955516196293692879653471501273315960306679068370777874903994672602746096963919619504670638609827996075853434646879271574457609511629043413176174330812598526980698447957956604966342455361692427035291538184660706997944509982515036763398520251149902008504205890888897069504975878577120720130587813361213013588068168478532803949942081855451900235319377913395894124606738135545007076415398909097550886297034794572504419347121257951065382700046653203965918887462305522350881699843124364222279987741983034561322048692180548604195835166208250288613145848614940306386014966871896937482626426261747886663441225285144824190714783415290092172492181237003882956005833356470199102606921067133651844964277403851101353248598689437670068385331544783943624631490299381703189613592966010930510153870364804586857926498114000581144161119030626722386854991823415249199680432819347637480273674466702119181686671495892102691992000563812907538216671026861201305288443482789233427752298318997044760536735255182312294843323370813237409846478567699299229265010796964457001929295681124445121442854944628815547533221211252887187642509622923103171598335306358386091009400582443555194323784392726531038423908092672111713722955096006293723716060624216502477387836325439961311478186059382905251393935665182019180898981149812093331584324744125164597767662833496280254687065599139619225423521444235444229176349582051249261833229631851188192081917782653813132205503926347644042408034935579224319797030456153894296669048841521206221031077229412256386819511220558974205910990673417582745469299585802606034379171937339587076535552700705616534479718009021988810463832787501158616623838657214123109397426647724554940761280301777169978364158445874231473110252173886358229439063718414977833003294292729327049206035189015717535158590117333678461690742247279959532355853822742974821449099141792829811552060386686334754563185412395229172251463572644258429573400397212069684005502397551878952753664363976821033355361704335620057791576119302733604911917157958399677227940575711346139855806752432030566659845938277377227140282040660359364707620302830036054407365422255283929442658445610343563616581286100122836746328370501133207372494686184775728152064120189926632928536547835948175154911468560849148635644687844079500522663309195810618288306407012585394608900569027973472159073808846355595275599887814400314622737599113160562147020966409049747676178772515268672572400101428698566581574075473452433900531306698034511266352226479762836801229249437886719368698626558906152275361743789159772799614061473946354649599165665144355112466966791877111124747512238936992132203192450473130415734479532938719880623565074117509207892402706271954346472639333208505214725368911638609521955284666210777002971514670481273666284871510229153166405975353347286221526934982735777977238420284959502953411065989124628623379666765492675104159181192822443677819417216458582621822838103195649676391215996858225970371009161035519104358519852050006221934166518441925963131478288634178421448830343112572902458117990483619085082737569907465924028719992500384153156099318389405924850580860901961575830089155307843579467657181348332674659191891341125284730523774669719769596857561051605174502371491074242353069672499106157577746051189348298102656248960853781404057024428350213992534323066378093956483041625464942905990759032804549638577530130456634923080075219120841458591590389929482774859620092947087396711674606785331393121906898096211259291867348174140285487055364597844795895306216055862174500275060941991857309890408944054074299307382681173038345736663510094734263193561211473285638225048160520653067874396413951115012136127603531245898625128379589446682270045406681190596054340442686623882553847428669797329211146808450429439007021362180713195098457602854382950899755067837358272855832849486370071166523011630820329473838154964508480540930089890011373014898419103825386104024154083283161387430460163009487182359755238998870763613848606050309112625629037187083031336941068678872441951074076711512250125379631362082968193924361231345520161489177356065392317934025846775554420872117249842323445168114932982442879155747157086801027354614965664813222292984044353161806092519906619617662808901953984379520484709739700748718303954644713165405053161743836420222438096165193550297487611696819262699401594806812995973720672748987559442977443614078767102933470750568157878233914544543873658053012668145281358592605953192204255897734780470062142158129285579757573566014963691878867167124892809961648777711824380025866261955599112181818202840995041380509577903577529173856880073963798859582785182483878777018295416731112906652266407226052337877905303584501547964356036359794864373213525594228698938853997759827696622893934266453935526977660873031720936262501133523179985057299872422135839763224905426265617772105212410098982051178363163113947998524035659086791008711160961609684412996531019646495388235606485016501431724146655236476558250759246383494460661433518065201947131898327902097737883842333719997583861853460883194776184542737976769885725770841548014175386848375722537806195194237250631925659974699363287663444456083772922680681247703255727912980223907305318814591442161142465917730317439664067173501899136430004773427203319070411887600887309045061795109232088939879800310777595683871546426695012429695093399934456757156227788578112857839532572221983131852337506144868531056783052403270399470744711948218670925039202697757455165459518687491837357930538075614191535492672508161594250417079123567816350061789479978696078251635565739306438676826120153083825797117939140314426004091812858088261212328551388428817648353201338110770504303025744333907361868662310782755230415084897988298658338537226687089805417889852477229231157726953466922288450647857674343659121405672097184409895757196264381515638882972242200237599938896117561848253574417630961344835787007128696409617005590406076339313349268464979458389442203017832167887631252180713360744132957086685820792371582499197462004494251537497417253241913430805190904649056215808902699858636159256261702057626240432861199918175418346005796388448456756044945118538833799379719782095885395562840908540902261055254960672818080075371122107864380023469982505025257014470256160845586611986841853141953198540971404250505575724967843374236050086108097851222390325910497027338856658289965957177472325795837411144578516281627448518442283991724033919487333305318547913850513622674123487117921091241527393842896499770530850595804186794447674702616230643126384872645523797568098442890035324882823954842224812235195392709046141552254491052074413807812369050788850810016424123362875178221895952521887825909862385814842863018482310980606577460507718161261558032000271651445427255532834887621944180389125063834399941003933005660890204645613407917920142678869294942498187414374566702677299723349295234255026368451007431253532493552282772011242765178874028709248355486083147431478976786225468808714498025884709205741200606608555929642274935396151641787724801113441272320341884629390877148204378345775844523852304790436352867192848336259848403383716487419975541041877320677507557506146085047862578673171825939469806016643342649770072292622031954239831060749186386704240323371989229493255822726512833244729796812912091361231401240731837863664964598633294528926579614355253339461167758146850756939781639515864238770749660278677539830939440226094981585147405542467553123375222647882517419032581814481856032984282662559479582627869243927054292068537494270948541014227961169019486815010305543275217098898755780895474633115333188888288289198771728588799534403353334760321122518022829471566094668708739267500194715820664728632136645327948188904643193241007390752061563974890663195264264150660270828617128186995496660294173705537317156264130117892629763582333431960803546711043812050877583788886296525904224630381651307974835431022814682653844177722646121080330929940695241478054021726409230416763613097083157729536887052752819762914642221383288617553068616762516408814434574257970120391238587604342439270964963885277400070013664863066004821804398004517598806198385050523441685149878749621162403620122023183885115311379263019886879748142464083718066013045903769859358469656852893116646830495281523236104558038211054392580250291502534557597645834708349431541489117072189394109676680050569782929488105636502759928685115109859909126288379172134239259916480070762911085326733737096265914106356998710505144092521367408489070344134045061147464923625417331558675450648450976473068583219766400362622188642262390368239486206509539951083585959177237947264901113831260100011894717268948452506925482261781503606386637346678992846399847346329326094746461047115185252752497897761282069510537459033270666275098828444599170528407008776788411516707878318529326760700804871731118442658665602312520949645268374774215344294995313638549925772087346105818496067865679167623868807152120916506447139697696430120524290937380965545813051660817915874659618504963415972234807242497532487984838704442900258441274848550202834201576964011977793802924385709513160566352579798460597812800140674890814925018123768515054358258817757513572737035103253463476840530031085495931882118681477910273768549304238751739736235322869075315961337402413916371837978285256444245750937823258938749852086248296982907868058588289784570224629362056539510074170677825272695664208991498299007021219963096835340576704395883732132794895425573937846168322231740442064025847183156211212509357138376611562222945456649684758244928060272900202895951028713495675199517139011571647786028566303839495683629168292701860394159306785178934711691684999764772236704724150787191203090283847402554619618420940048661893292107110679126369908294414714207862957251037588224379290373278846246247357024753352310603502659809610967586744162054441996770406434225868841991970930373202652426501064397653147516927325661627224111299146828191351622637381269873112012962255840876608187406181608455315940271393393549597020418025661056406180109673089844414649302855083603935399490838862321801647460475006738767581191557358471071873800205405774370219616259532203172034359951907556306543698376233188493217661274032983006200760852137033937611880595288500901014419026099927994916138272951054290038949910105115634478260537100258367603103049315339972879034412516123874710855307948333000352689083416628515619505617728657916243173059528665338975090226544016477549603777034211409558308866237670440593829109606751154203233695477200015220966044826408270118448733861847310259600658136112697196455933532320684178781435781607143768368989537569613343754053400647319898315729603182668462681163988221689154493111057177399430787963991976227100882881471206182277482545700067898687978786403546034917287224666894754417470184073261597107819575218012318000540884282578497595511279835804229089098751999707923128114222864106484589285866674302078604485697631696940608858810829729875859033884097883875929718739783529797354351255669038029483166626732658178115592973051601844039848841715764848297603859021927694100802309369945875674572000233800839336160463693155293041262957843106384063613696455657301346324227112878229519223927189246212879649272355049872343978182672430102228821896336087894168109805561780466558176721421436060002087647839822108295253443068920421507872635333464868752017691331938218514419305671694476765826911650557176472094239848577103669528420531135970982814222790325272885834432390507903311786446587037409256369303981405236662607445763481515014718251017469745046475808586350811121044216568545427269450529768542975427407125121389851364743366555554706981644725357907967047011739209447204216062595837449380913912317907827169793181189847256628056705078498966806143810043606328298609821307544383377833105039084070620910866684579207876743163425750559535994432098918591083978747710640150758172170877767635063394735726401251641849733068150673939341030304304614423142888432985265078386274234811668030233195675446622270728806247381236172835061336725538925075490016284319537577072506312534167817333547490111530439858490194824198088108675843382485846150805677222274797537642139232947956259040891746856073823099853935311192025933158511543756468415658082289860693451009953505660457725440501774759763751541529418172512405836922395690559358898481699694834188074382635963995093998706709896995322377948529916410508746994453892042241431487577537326790193281083431839223006944464644253755898616997593523934540493547278411176317173553957050398732662945399458936105913310065871973863522819878572133323580747341568356771698642241346585981400239434938293543200324508749398192765108236780493342894002397922526904093163090018724169772638554266949427789828059322014913488248978948291010226238796498318175137431494528856022621264688696887249319568508994502222949504770507929803719552812446208063812142733842346322589521890048288461330607305352659615509892024209603138264088170066844532920519401022875763539325010565425644500733775196447206300844827223012322370584314728252054399355383444125261016014995478444329116362402816314890550918246146392554992029084812003213624177773264836518642388189919871976771973425842923874393604711125819999372957617070229377241558792231192380348717738929604244083973262108064577813916937217489820726290399344249222068195661781495662237223391872808784867674534821997442393036710171322948025295576387140786250633858158452138527926469545083024043210006852646683509084435284925537796732523521005509338015109802328246383729478392337664052120045465002237532972553627755438042518803191602282636878930993165057267591535222311192722815584421009167506539012204593903086454961571206628567859998579657334072783366944295920234969045352324946126646752781849368836258291633121264881246362972080821365170616929300003090178965649880161936198675458056756345463837773279495705193234127422201332473543050412877915316217216583965127118523879060359453427749875728231951203454557244278246171620750662405926081182443519457752938927850743571459033642360637749726590078712916227519607739776199046987117417908897659653404752117675849162761988147106662900914340581683216343029932583514680587785096060543528580824337019723384787379271913866235373065522056860055104874078742889149626879678362794532151794436464642488444465432903315374731258752220646132123767051765018598748987531781226097175964971801738881721661405766617731741241186781635645881249242914280539773797070145749105819869293064432272841082347965649727921062607271472413656170456322134763061610899060850192640441120827893915032839288394442345196616392904747726203633883342282185393818624462492539494510246743989362267189408596968793787235711955992216630719526778389630225833508542511566129699561968734133738256199875166464340249688074541145808228098486160533193590603792018875312680107984765703763768754082257891322486162808963383925427463001001350102659839331906079884225489962919499618361989758766655259885736665149158434728085695426427593598673810218655823650696795712669916406411081005644346662653629644736700678523381382149562177504858132638406633299992674252751992418864518224390106292032671269621685387826571099304424122366163104839168326515995598293282937817395060556289274487116484855381535994453437236207119894135339542568112052318847685858733709561682913084306704727357966228195148711357633122103522704738453509941365249169948613038010560307636762081391208525712125025995002204808421538650406920561077255003181295037565118417039428908021225324767839445040273413611376372195449996612288630117570811992852469405976252335133952139850358150551944214882349869286239380503106671371558868494645358628516632523530363919398875532831740169822445858835996021846846243374591975259502267376820342258926794353171715674258514348293284410123525552930441640967620544160691904743367632398459972851073640863907113412243301296060121589929619125296935124030322088538091552037881467017595906918718789159963461904566268346450937557612921815114605558836096064214897912548883970126868128394383485240358511800134807186631843078210205714702035671013069238089841910812369095629372078227857511456337881063835679739617986049478499733434313551743534809048003513386428125094236689954288803444002321855265285448999329095721219549793447928265203022078669379759985776809754283631704607148135609696666658430708101373429894418870089075016273543743549271440024131614638011704558905454388102495038509236458778977762972823043824247220951625409155782892005203012429719772086017833733726434109030196127642551744484001550815966186478685108818216896333505788860020785902101721412011994579317235924108451362366615472625049978270358834123327756259758896036180662184514371342613101896455671880299232426981917133859300605927039998619599666143053201566698470617908985112264134442858763167887401903910636578675362564845047317204843427358638076516820994880662105914252956340616987516420491036066964159707625260961869787372999949269488910256712441448596316895541537867786012309273696254568513673871623454444010865662463975590172147529376330152260559705915507947560364267445717284086686913159594006458966005492321854349098447424948857810983339758500408994380776083246610876138596149005099754698114700763697240313743941658714554834136653053691996086583037402468612607999878393670491922456541747440259673741129367368323994232579634799174502656330149491160022718465404219326329439641279126133160156577927904523430998144987653611292054992081732125704992698669806953110047988544356847125582477371428968786287792459954351876853631054773868280943474750157853675474288409689122337145579255137319231353416968406514199036318427545755695751584134848444320478123386508819631356608507029192218656016339541269224548057579127066007635361465466665160937720812384221898360862996298293627406009393573681830175727857147534550918340446164665836610363425932094786899801619796095556881447753330394625712983831043027679113381456011036082232191245689651566449401489038084338842845138142020322432713346843208804418114732008752132119601203001024369581854639566164757310278584298794769835001612872238928372746770587129752452369694195816530822616581686365961437717480614460775521116245395041365103937360717712852317219300421688681767787354429497732140717639449719452005812146027079015914416665901691815656767673277768458693195807024869427824554749411596362549175782512108016648434234731182614781759778782298810499080483531597175428591664998849208327358009626583792377390864278037381394463067791187952761677295465825741829540965621771102835356902992424381633986991082643385308186575422733721886085946322564760552866232287750340526416789304260286577957379568870529128994706862082370931999639725913903399153239933102609614743700041266262079409698132411907769452219361161377763858069307829922408315094827474625556909960478999468845207443539451592636623497667177489166693064676814837783972693851563248938853746472301841484435127214318894719921779919835150431693401477948498142275597508242994002587790561482475783748309327188076792182833869625918553631536032364603076278207786268479733565728525034807956363710731584687842875471106149459061475823475317930760923709841435969307432773761867112428346577250946757297011622145092994503176980411760927145170260805283313097861005969092851594839195765562760302497566757854623477633391609860784951119385670064804439457235645505198267817772478229740268899473624194248708372435858942643240230837625318294286658804946315291752275062721520258961775639300211911789199930104972809255798165383002808109873890946533897005532628146953373283954183010340360443468968197274284992810949678542096827332699006866096872781704865998932711939264657354108799454006772335939699563406455974223599497656529139488819782235600317588898075810518477166674254291447604934484907963638891933112975056595086233299680276998059234534581092002485523925934887324572185150186052815214522929162875939303903451465957214797684788470895369193812526162149851434130695807233921992103628361438598447540201494437165301345466311246963797312845868138245358510333022417616147986139701701954398438359094453220720017313095732131316023769698695402072082113875683974148294234337523388883490788710919984923543424282788119712723558531079457332497277905503159667710571319837348616354575689220372284090886948095238711732082262232725054382329134384042229778547372765151099528068923960720840152930791673630497019209585499033074892572404660873510450485056563215705707347160060694471425505063418720473711389602538925553561460534541712805061603508810952379167451588435467510973465347198142215351990440465947398657613841611496160009292713130140193001228439215061995622056098552549404945319264876140417525586468055350670023962985715282557915852466192849252375040586983106882644815790002307978628480169544163721321992533527171890659875346716682513957833696369008187298901865782876736049471117462729518138327952927354124340659451266607723994652254458579130182470367391258685761100989498153531921082228161755167065013068236318754540339970652836896014932593681081965917605769741491177679304248830895711584643833479402837650026927152145753539151248581660311097637906181853146012084859389466015983849808023975520114300004416114802271491735864625523225581689020718435392783524662721705854669718472062715664985960266162016199675167130656046763667751621007996861618712728050064525302272311443117798087296055442518880676036278202712382409327596695006628400348682656922508335559571971815587568097161128871716537707116366259922715985078488179894412049194295554394593539655256084856819701446849166047863752291317078606793604320245981836720075724599264979482616686083978072286128247298388391476621636724385948480835759451649827881410783747175785163636036182596597641833776316286339290888118298186254376555481267510391534859419164374058871071897481935029922955196308457609758335297177539821645995600136858921898122678186118185064872838091415710985043124497248085894149125364896040196642052145786343625870541044583914351359899545976480529513057133433399141433004390792453704572648301920201777292461483853457405178260181683690273489252143756320209408494112697918587306740701499329001706069885229191318429824913036602967483607197181288360406624088816083587653052196823054400259153718353901093430782791122641855514269593937682024955016809940593413068524646064453809099539404204981856672863454903973422304624375205514440708385032176875800215326679984607770042108627176139917933642560862319373634867059507749490756664706916902938445148107257549389066279045254099817841879600791140900990700464211353368923943775433766804294313450282966673198239287530026394039453180587564249770928850126426757302551402856404202185885206200951299788468407902560219174813473098187882371608200264038665577780215306784672723820757554430839064772617381711140700506619066867236490015049306330439504911975736051545976179371425535550295204462963075522899053729437179868816167846084082686846331920542102727243502574538136997993461391581087055791376237092332016932217393153425055293405868680068112649523565726767932492093001173099706058457503478064720949634682505051067871256980478700337844060982610520284927507010460173185722444122040818710664996885699937634808429621971173993972726024767366664399545530779102277065872245147522589907879234465533576091321509595096748773469228772157171310532333294147023704835647121917970279617483877614866845041233941626445203417001121477725920922637055785730009332445972998735736666302521664760203280250495198624960587671019776480049169961173651377359691196762267708694759873526677780219728425595122212796725754207069744132441562301255017693951077628114045093140832538595834279376092440072733186321632395548980347046942896550247284501104403806430211321221599306759018605939300182735950473165197095415957581430108237290506896966530195948858846583065508058773309558073242001610978761324217195642705399415139328471089316224798842293351762394806473863863079524958424330877992112600608844776802563686762361565477978507908578193770078486501214508084048687243322437385098936165138334664682002012277742647817902725900987368275207937347343013442559211151870771621400668827060299621035863149670148034876509198507948182021515908497772258783196494030547132387233167029902455950663965926299043610678404967715127467248253146318702291741541923811971242274569901205210651389799978341485400235876629244611847894339844338084633058494037522579701825227065516880570821958769029347076352822565563363514891644333190145578451422096885752526594043676724512795604310484423783243765958321026814693717818502571829788403022353928168374359401647305036515560421032638206737758462793640042635848749748925887030895446389570186958101251152427487679431314199611183638871399195676314928742762292702679909911404354904424174870827306921861308545409295224390773445907470984047962455712503131059678720902536139839256431796444040058269579796055730114811767925019348186358102087056291276274267664583719745313286783122766276241889302709578000360694390372441822992459082946775835653671689481883177304078920318362931338084404650620145063034077682131983121618387208239621039210716441145682831920390340098862538574796231415734145932011290376977636136035583889333166002692486993288857905397124611384939768329023992172850462632182859369770688521291449165322626070914849314850358343882539140047720489769339237744023816247345481101853907943823801439463176387652049741003302863962563997018014918366636677416299051000482756541230123203248033616934558792306585925106782646224955169609581331117150042486322691143100478112362284177994615232071600448992272270759254041117234381406118264023651749051123251951523902646143851774655169941171043421665221996974808814966305535285528088487996092060469752652924913745562812443484228114514997267172150627494959726513836430247560953873530525744869114016974988843318436418957360001183430903318862194899976601209498204896364731478609450039725561337155282490694637432764134733846583456145285745125440552898794454180640395173720199191243297624941699672139908453630855350552702862498951866626182820954293482993302851551154348333638028456441725921883976498987282845572328149456181763316829672772089625444362813579121868882738584265210369590659989968191558455646569085121598348868386453570515797292837695598223909877464930934925578883182205605039024597119854002696774035166520356902829129616175829445682928283252516793796032016615664639951156080962896218302067229895557504648721974820361549993652282763554935259044028883723601995335373928609352123663148881526908029764136569718444894374052769068994775839009305789661004735576051011359862745753427585708673013921350517951970480380595221757755585938359253410544966237507668408552083189447082878385694358198413498844580103258948437333514035476597885725325257495839348265302996812148121643576153213318404386415281816932922367342762612482082821596287942389863989308142197443820036094559179876044102213550846629836511096408547164945254572071568060193712365977565729340282328108921576200639321270982339794309914629105330108963648252689253172219471511886941669753672380814563553456208509177723788260804123117004547648313768271702186616935719938280657087212114354249166471752446316824483813031053126263491715562598134608124456952102047980237607667410220996495589398676392218186326997083321879300921114940847707310376005717747557418091291462501913820077595146243040297337573683960635048797960296530343778785522467748226266137916024337752164423417155277740670115928262619898369578401288706913092542025826612568297022688959226807749380207775908037540008263149768635021184093671668853845621779935004993930162145436512722525447712741527859319120562364090791362796904027689788959857713010619425310942785936919121426100015342189054213039195237686027580426019719116299646315634970939809948873459570640547020691974613009324015795012510098658276651032754143050034754532869906778130384439993441990554408928442834632461453808602810056085361053936875162425015657694061245644158275904204251954986088986297356298063925112175147275135972363474702934154118469930960441694746334772301829365415502444828170878513561565421155650206021311976934722916608885328271231815485723119361621794035818879890601881864563532749403692598217272489089535805469457879742426191823518231516633796313278380137744794495671930792951426702204203137692165501187231562569539624819695572095988471205494529147784145833201121646936759480333511450555218329506155480039032257871868472085076089410739727812254566584582212390488316009333059441443315535563411287564411974520766151303494885056561980838810693027407505606027943076510245057199175282867492712092235957643861106715230408548239303329586947914147025999483306937978258715221789768487503377113342796597070284136878283575172527166314791197506168951445179718000721737551793834430162591872427948552710134500969771101322311742281224569973266119447440967650950184110099044509587147041753824522564182916607393029697658429369901929244804088691359456216641996905802956460665664124188998842545163858813221774078316904420627928689687655475446307869456410904217141690299202168945383449981983997026775471180285588741984470892149860914969750795622596866768382767449893206103539129812161103302576342447665524073798506117825342293574258371424410741665795749193784770523062485535479129708036519378215945089875927292661837286427492099088045292277884154396960336759068993804516872569908230535564820127930165553241880756718647465986862387141719798130285517886573672200615738034074010936559555007676764051173836794853365191668733500185300488281782295963365016547250379731354936657318263733032211303078490809301589424692328022471731541088059837660961297816409994686461693427167381633556347504964311270758277844321990949686784397472280178133829455804676434273658860889485843847304359018376915658559653128581424163644589953371580104219930721191867612900225708073863187792629401621002132754289147387930169887901743182110759406533253324210024374838853224840698440498514138231971526574758262875201718806749860997615537836776946803166199267312490114086318626976075229656914633869431275358927742249736352735358835862180841597043980667168176189150124793719463243972232623026264280262125875426489890223342532754273404068626221572837251122158892394332191182623728977207810214667138761216269037360066199871267488324343981795309118349310960884761942418394104128566354368856323621523920024763212361157234024484683816042033039710517897455607144800251660359383205962407441218589848514117632414086192525711337657328321070814145177024878450707620162138868570032218528652348458499689963983472675149730090343502318375606416947697002235769818548344295627346776805685390039458901366952466241582659709267282508429745054785576371344572087982186985380999609141987202987982847609044326529473356684434972672919761675031443626651879416877518037817384722424265614239077034690978715966679766239456016132947772770030285895402261534786937020874984942983977119181137697197352686946702799235651682264331415724571538686215518116504354164176622982837673689450435551826144275708897107848028215098126771061213015978984220451887101936278547348269415615265862771675057804893452583692454612143173921258211647596288321181080552468461206363520856136383361316632320752745762427824975389316389596902576120256401639787892088959859193997761314331963889699451349882330276612908004852175849485992760083097541184137090949832080023069395955352608605252747818676255721317712185172192624055523625982069689287047940061529013120421900937901440115863505503946257142470200153054521581776978340655950959238864874696879507533355576032298297034907469326421095415975617353642932194719031722078946651891542026804548950141409115584509132814245390212501107287667578206561502014691134670078016393614454051403395489490476095693981190577103511948632677167571589444096745781530958000398835628027341791663441612022547576225698256552137914773883328260099908302303375707477123596464914407381722534292325990848604418655323716891614447753258033120241039986069021969057613466315166003739422616741994095681360984759743379750023674402789535128220557713244754180926897306130274688251342804504942758145973224681805074360974319039937477630910747804558191506574512955715614383127604247925858645570644586160499402044777852814739016210768505630126309340539152934179165578517083598143697281960376307893743961068201813009445134069790488128299351788241149885333050923014361391512181157453411170916207615067394047392405287321606890944716963340266728715121359990056532151209372570935352397119847863814675508450458031794556675841426327623286553890264314437589524776572673343161869983731116748117949117381778035253078593010527484485770811872742378792692899941857223323519969320953493074728477052392156191250416203611188240855959715266654530499342018646210599345778364146464697587006169398903377207642796476313580013965826180482440061613139993707360981285948409417420281124047975823522407590851976947318628951632264819389775228512417911911606896422428039430417882691746296753487806047269733409138281412095637406597081305095409153110362202621827094995353490286298445875932221774394039501201900096101370013927922111499791242104342509656020214520840505019328811999699221640278937227814349520681768331622755299862956156684706623169604861911422377715988187786695749544667707179169965900140616581519822807198631212510860729783304059304712690411943465748660288625556582203647537799683386431288806404074544580098044590800996424903468918861900522985322415572382977061087401192730681857351727440024541945809094010372884059171940486816508734057936511606668461058689239754472599341928398298317438895397661988635214545174558276518245997646613442074152961305800038126382312728221151483013788736601164520898967381533144621192894909090084755165192313102034521042838944441052710236316399643391963832816585810652815796587223286131339102296508061159639166080304840174039922109392399310793664226621507338725263334494610399672081804839270669959431448173116174545483916128078744057590270780607490446864125297997671873265819480783105303731154820053712576437447598980739893863295105196728429998770613825443085751560107514259244477388637393161649023660644044547722259514154730294077614099897441518470175002462324519163572559392335509619197360728523848549317004286092466469077446081894906169816400555940074072977896367089880266905617289337598789359404040834157684491499505348660013289130343777253070941835560866044894969548867208735700009304361736799773403373271052462600195488446616885597725785847847469891826615450306585405495831329939551554575758998207768651356996532404927037868502346388814427865726664517661737125579816152657310904179615498525513111108799036208563168745556670057656320709437894724757527257812369041200720519745868244178374790554899140548799595267857917523175882843435918630228762669122230977850557659424759650855935523222236831691882093868624933049409939430381651629120688622614847829331571697107264376875131688725120953600181804591052623006382744972776539958139675321158542432692461671285151453286928446836843631722251962348367159330187145820358491980157710000965169095502144467876250473858873331451768836149519383756148223090524696736155904454519123892261590997886261780453209020315495245594327404029582821454318616163948842942783199212346245830201377633394465878670452677910682852036679869568241673530437883876727043634509594226132165091255361613872788014102730613417056503458867846270930570056549971194448078186544230588110896721547066994730309125376997629197984776319409951397007124847055224504751075933383693438166129610853807343533561488799293882541786236407241437991927285807192001717535325600151835433197764313212378474446385894161849745911653564296141257666577496811759363804250890823252609995882555754307458197883642411992406577247141153362104219197361692149440152843523682368142558575822932481657333955893383256519842412297240020255603045668952335964346127675709216184972229156505516944684132635638786815293848503046381865091166361301872821254735726957868972706881706835000882020294070753155333413291453482534890845631783401396773587674662483608927435105750876627507457794374551979694961928332434575932097091808445365846332437730693517255185931238911281061276669339300068185230017848032127571251708267847710791952257684789391446675119727542312787149002332160246049090256179247445217694780072113643912969280452933745306577189152010642233063087799148861437975852005178641881545764185963165239817413178143545608071047247254192431157116181401142021547137254587893555264795339375134199497908579230580323401512663648123777652212762072796905823121533389163571067880983695327667518640940410155461770513405735644091033225210904167877498006287265071167820649027832403298713865522794474950906742336123708957437759358596827311312675436707670083432477295775042772318414036305510811088092222644505635348379271546336232655772201623220289688293735219644383543005658692667413110396017918386272569110360469381501308200205665201710609954061322095576817247000794146575266895508436119254572466167466175191042961928015929228816477619567256686094998887652186919336393485650337644715521582575651067318754783268550317210253723730918226978805156548533927879290059091192220050592853682243573953721151254113950958047174428825631718272645418907483938995059326008218362919338819123261672680544583274646281411279924608020529131510295549780989881458896207414105368311874449753857216995195767951038275653839113230155830755896246710244580166415453718331128035172814143972647388136381471613228066211235298578694193254630112220566418857008925082988457557875743170930254828455464985435162839598750202184454686244222909116755347870130926546110732576166022208921299856251581417593230281246393507824462484463294488208368016586749820192617131600210296556425161125252287675577061138590296684550044777728984854122908271884497169747117100281131374585824104499694630085111830451646645563760522496232726824234559808106314950101133096518943754774570297072694437521551303181420454381125656795006137476466165237580296807852923402770834765089180388044373797745432943915928074455929742073028907515670125060708488807847734582223096515388719135117888112317956541914586427429368442638321178295467323149139741122413643494969618460848212656864521430675519674415018042582759135935007319177789915512484175271838162770223350496448622454970258135681779709091216131250209227868240188029625851928200698084865522499982036687995263263116462885350519744550173161842211075964948436446139843851572739941957369558248209813753275799510390071183781328135639834893513549207536196991489905222504400071380892415150890617280027578167490990189495303058477254319593605054555492851966191130209738468252816240987959713471471676502530382328797047600203788532737564055950889986894744536541071552059534562538574053715802932047171164336285559368827872311737910581656768795830675192084132442448325744881242230774476483170823366408599779195409104058183439316587591072556565626975920294413451886479988231607850751098319609200553721980211182225586859741009122525610472543791498083505795689078713968964250744451446251214092933541488079590276628698472445629570445982005620983695922775259116514896240368988098784829822391502384367318836507950823490311659177765608031645032112063505425580271894925987022023076065134446863848120701416107619510335933877180673615867330849414246445884683162986768057587410186509334368342385384127095801045115577048180403040264401645916297832745702476718577961713929432771798805340852644299490063030490288365458852126305613519637358350347438348309279902354623706650843501675765601661183851451795375603471952769566559389196986276228339480981456772652007978158517675259819984795338192291179160939816420302902575324139345500952040685886947376218180667248537882956712016195536788605995305405922593700508331396852588634694987320936647264485856283084689425380284967516469975457826993437544005533382542847022104164434119368966853600686560431544394410033155677899837518406856901648445919688573594971948549902564635671276883328707843039846316206413130604465229227406933933952441345702495552877935782424870913749917404026531694757764364216498941878172307564139100465738736207712801344503867301574126460837356516763314048252667126592140947446882516201551501123887716443880932328589143701745015591754569417253791068065379929138868639761568336465149384525193985308539852673604531127968970142905515044056750182795248476298994042234761296125393032294820448988329830270291642305886095887856004080995123255165225916402883890814541743394296188383126791169092832394269149458857583096905710596004612192163545192028711261473070726231422234261825476937297227909064700933941149326073679754915343866926770209624746221433901062366858240101329395148550585089288682034672114672094763160289495143345304766628233553193331368819022203074640864516542565598858504041015524530897292352600680620327078222723114721262615982318253162818285981650435294907601390664152537786291519070687323850159425940277005605578121943539447454692250046932962651958835089695007449177803694820495635643503426546110661264209135987610753185452265336602458467348032283728050445645975490391185645732084142715370874504045437746826459251529013113563199707770954573374653379979355006980923430165533019251422820027310227009175811388833484758038080644044920205330857555150462309630562610264807537530969099614579046188477364019697890833864618299344817237580557562126856342500396781259016284749917203389901848004167788052649726678545109639927867194010753887853416845440810146471448585790779722200540705689617042333803943836844913473001477012726509709637254135526166599842253597597201843765952181739236728495753241303649882439564275874489826817827945439175865080862636770302269915419748347992919725922683868745631706410751406469943383164286914247935846733247084676341595361385503256028037990168898587629103603839205859353767304953981943311646257203616139021055510104204110393586519075827329242715200151081881345790330912955542490372358940083852213434580655430530051989434186796134186751143365643589378739024071810467214975432070969979257658360658380003976711712949861301311461954272311088991899978310302795296848355779858901114660519403843183060139105811181459913806885272127137791106880550534273020822952901395670018252152509645204290088190099302089249254004933249513127165408057476074499358146356048978341422546820352636942150957078751199400835435513854506428089920687330953110009589437803031711027278931040953250357690068203927930448933130158053484977043110846193197615196402663874695715297174428980090407298539050618370285674890565154779330879890293187549768163720553039650629673905625136795761917427549405099229488996151801915046342309289141123511756479601054949883630597272718056772230842942878555778751495809942260399597874789446839985316850973741347552636838538241670927837541124652124126010486793260941876600460550767983159358007460424217499082566924683893457996307850953985138333668957564569328269667334657360036765573058147288778664650332629912919020870646372205475000617628896076828283363540343888858730434039761206828887856049637996829880888796185189300257193840982443752183322448641539683900061244114634822894772568553518162313652825304485881229019228141173141342677959764278359363405397141625863084107719784952530622114964099451552197746448116583078272666173682182849645706021786666562845827024203205021539085168445615295575932888838934727483263822714299166196814402757837636342090592655025234454644911326596400757971381510809403894364023036416466752839484940454097338955901038211311197960812056441554459011826678689639488467825831836931689145758617508772268705805258621510012733056171474055947642979299099829331052299674532258572101859464627427824496236942259415345150814828930367323532296866998125225185111065317411248696918818411377922747084640042290010627224289770933071711460396792630496497486960617125914931769077547106650171558424384184587356719956825000035613196856018914296683338651024486660152701356582305321860617695033975901677277809388418756155070604272489524900762747518858646824870643162767918905294055661636603120471880761921311234228962931491293724797125810707446821955386292282873671428795405504291414237101833643042798153613856213227949788197562640897219342105252403176398069736486299423377001120831396778118940190172810342003562907469888498706799291663617185232848866891739159134918680483271795009477281391365876596331812424937426719670567335664078529756277760968780692342319209483069860494286156343451030333512004041979280449993626190677720578937052191532140435394605876462563025878442115286973423762726065179407134319551422594555691625043978998654905936219414778034335101598076281086905905112581476034824485069607197497809374964729341734986212038290584862979125937069760962997198586504303822959003500766016524549719535422375275768258232344901187476747883179058537994039715773901935339174879379319445582494874657590812801138165406959865719060493322319802234065552689949657424917101464707337918814009091875725229725669505878489149012902568003885413198000898224828417588901910452106182634177747535520490212095958583681509292870155849616388135971407100839972723460639233428781125576774301392106365535165136455001250944074448363490743936821369802131085431503747432376280709949678703828189741756816313899483910046831443939526899927526271888605129011366798919911475898855862460401312274746967471243743719504132653477718610537389354855344030046505803102380970517906293939086557181125895873151086738217626050812671400131304169955509518029895047962171570902078982523993684517957936136029901278390817821198139912346502152433097850629185936229422592092346785772700617829321554992532901714602859176069868490121530237459015115688026728200967131123069692989497603245917361321360277179255592889402090245184680554018870266855731846903309443452236120070386358749447861251919847063482086861368746430399602767495983269125621102642750928151390688967604186198888067932996087921596305970728814509017544983686898837733473523717733396349384064889024007967787402122439921467158283854673693322187497707752381863234621868948604862382345539112266000669384907113741836348125648455725667029318957314115734781162601256441745454282926553091749676702476565983074884630836605552367240956275693546487886416312216383524157308090589660913353552587638308316642429667390078685006347517542843752740598413001074568858729090977150882629618881579172496968524246210472967139590513771159462037705589690774502507620211895071772970505346278736019605495468748825187947334671495536946936200238979660111262676970134215952281876015446203019569986884258503392720153515821485487747800763829995091989039039932441670580257329076695289822335032930856354629349824566876431602074271091231204686949805358975861095675610040978237462846857650780468935070459454518696671056421155964493045468931847508730773426782933071608874886453088169116900173698394896690565542047379388255235986147343379265919570530417251291538207743874096804276433832929624350413070306094995865368275010327477173773721737092232840388212191104356987556205604530082204537672588742962186625387940316575293403271327190411709975809352471694051510061228702242614927178309758106390135678573860228061087961673052297717963959123684985016212934894960328045958350268852873741061707014254259485873283718929362330491746526232314325487495930833659470705566289813432969818008699745299850909377255378569614104486259489974873097838030786254018155409905552082456225108975361585408586016961981633926855112704494850830939192398594357554257158704928198940028639785437241210555763692903385935806350977567520855700169054524659016561912461361415021995262425676094168464981192403823236063464341903170775445629612258866181590210450187493572766037279925077340992630699685596169535508686127585664597197045923771806017804042764175221971006685923352150150225603594181282839438669361336221407209198308760360414911387441424956167821715363873736824219519228577556667963783298205340834471259919041447536540033843829717324982837712694055219346901836188148786528615213482915564465201880778513730501781348438004954715898293234195118676840645185283211908228902019520703394853977743092138669669988539805133890753396546906327845331694648602926417508383136319275069391356947518815752363954321880921904341391837622166469544007962869790052555729110982354658624464274976258783572039993165611041360735489066283985246192829720952136630189802593291926631211946059146377660589074876917534817595261644682984143491349600015258506446523328861970277035994672085308973110220848809743597115941567672066792782907077242202982336938952017184275643561903279382619196213081386420682425704259672436060565812955898826231533167408055378347997199319166436726421025263549380530541874632303783412349056177332134282345144956406239167063830443216845366064871203469668585259573832336995873881148713874889193822097000646871518895335745393387282076997406667296449461104486436198276368441015369942588156237430071206213378410945039317053990872725700304522021632868755365551124622890784151195142932736787487333891572456027630130981489904825942296585019224043837168098089469787155794763248097252314424294089048615111042143776888501538709056855538867380744707873249761088744827574357566156567401770493511103649014903314902793504731935402656167933475601990071722050561273823268937223097230708073736729697107013778346272483797930543963596860457244372945513802190648358470898913166335591050440464900416911792623611991099870832493525557913061640573039953508597317702186782185025816318867372744776155062006296083275819722893237467232892090985215530828093129147403006504519627210862949363540408824171532172377032759907144215971545616513860454009410652925147068433026745004962035821162513371492964256772153506776516796047135822318665456877637170597188707470904194117295993922001518021882027275429510442974801166339651683111629046938312405619116913055188379346975198217892392427872373743519575609823601284157082176236282031581523250919394361953986263296044179619985428107050239889967078260654596007876312511488701866988687579516317273405342267179566881663794688662409728208670195157269943105290611544329452036236949636116690948995133973508265194081344915487290932833373112848643394235596948031149471781112326036844320932833117311095746823513264418695710270018907341709853180259834440733645748925261417449142604749832722065517889318993123338156659676879839940202563081530133468783985122759011653322841923372294966932509706642391158862885893088596093511407098438575550042774146772769605592273918172418479305311983011505647884586507193090335061373930058722850399908089315562034672384130579746639938441185617506034663017914918403309780569963156223046081671944897616813371616650376345846309450579279413239110098825920355775460585515951429531648325180537626235266737891262013752592161507849853783352456658149665630675194030796855991299224358134092200120658034837297660992901391793612260436949675582545756432152404759825366999780537264944671867577881948668769650242818166251465355521915485587511837917302916358535588321300143272412705465764926675948372441488556436702238427427386310705736330386504462321281335549352474127393330606491038389817549925205345328129936192623124951470828050088992922765053465813745293953321582867387732105495498605254835394333836392972909311629852589614279868467503277426128032104943383500865529005562180544326360719436753143523515251529266213500172474124172369458304031043522859341106186380555593849143439036677668632297793330985932046777386587426957562268955351610361149181303795680851833324557951518118087592559731294536795097994363552396307716451524430081005488501432973765672169057893419992819530955225298714331987580092618722006490184145301075654120399118249512088205101080907735891989967171892660726850028208032527788586358997546352814306486522670459714902554577976723061220413513375873876967488845488072113669511587353357253895651135801732967454740649702522712633324422389080642024827164560668837109734356415258146528494582631365454653204479025327068085779437676721503637823658728477410432113585575759260363478164621074871057011059788702308168362781195042926881051362048585914682139730359957193330173948093758331127623227262351563534895175613598714618950440452231360150464011677077221280050493751870061514394387410097126762443315462414700275246051145797306400138820475805700184832982546094291237610343573220676252567437400432476290345684191288677630621925121131523316593702910412824152290569612938769349843527895169753308157707570901591516646590214963766417357781677888617783275795303840786279759946040499752407063542526891184028958740637729212095459987221821314358121069224243352808272960992870206522441167015569370533700956588369898759703747952353651004128328676639506871615280560462255631007176393350342669164154380094191267145922570517082484114270982037513892411399301037510447685451801581940055865284526723530443156342632579445598103855333767246370295142735894712101736631165411270456219313961643992793720509812479197468438797445452237274555077237260050645438404906773221388386743751446323270004668886438278737852671116730127047962395898519312852824938088380247244024546011506034459646759229593453108896015970063726668277050196608229156191796907734893011666747479759509597503347770583542622284852933251140577550840136718810766730450749281703845203090473248540862916943610486016578875443124513699532237200787875336003172886799647753926797733277569696770906259132202845486127661252265778094987127886615435686896143644292622515771246175634019348302163426616067153101486485931189593291780248586133741736663796681174400222468486421426076517740319161882250803127750970151448798600829938118669533401051215973867835683814910457485665200602640982933639774368597587694659971335552071160179340858477414546323133479921432320584198762137723673692579812789525910473891002427350448106082175242352400962600401402912038414419715198490783907678255268698403185806092512736285661382857395558881173973239215302731730691847099315184446862448274813128504116662282188606479683639140756794932286955115027708534573485036481303455259123557089128255912527190260496134016206854511496551200245145100162252520972886163352739572369447943822653585352077344353069799806794790058168546666692654028788249198595587769191425205872538757576665114786538266358584023453110443524663107971224020651845771210363470130087506354061834555476649973634836652207436643182268197289703660324775843701948632593290995665262172878167236840054281069126970908099634663395307710945296375882899000614624482438759630620069338802748476278584482673494037294250914999604121673051290836016021268408033304805870009674942063767572199036601517971116367753565902990464972036444410057840652096194065378201265389010115778392465644754179117035503422935507012172448364146569614398002507934858321054646407012430753573515013249973972609562949639677275456660703524582222581486031314376247566461562052337395419099831605016161281744772780637725031205449683364707443938910738847046190516318975456635019513754716412947214901180122268320095201641954987978216524125290941309366836599842869437595305787275199918051499288613808177036939562703841042516447946037309301593288642664112828908116718868448880412647934038115775108567819753628258799467671860406596586286874123502268251764128463858387509489213237333980054318158119877167885649488203309441421046977433323107253092795775942972704713802618478859982504796870002031440470544833772152880649384013346657283737101355409921561095798945525768479522689619104667791297919501330953880877707814778090317811122118308626594894828664689224221623058545266880112304592393061770763348650791575562904549681684105676476105908952980039537524079201857259505540885243260935378303630537304664270754208351218424638719562442062444616856126612426147548108109577317073949111170807687443018027531678474975439969709024269161097478833685518307610798686678485198394119125282741930773824006716878210881895344541043090740478125692544699192768454224111106046798281924670799345630256808997596858919312498587187055400593714804354614261923250747733739765391037846178888799854261531488315389328349270122781024348675794747506756030879685463658709614797698954275418375969279470731802475200569374251555664316235294430322810665837359978994020453146168371147048222035356557697515217981893866827947349391206732439329009498175652146909635457550846831612667529173800484503640717830035163800163225548957421316306203989534642086125231744198339909535710167456290448707115865097804129252926746197498923627171576032232171617387386421007153519437620237984264977966598064582017758379169694562538234583252986574948314312044476443997486544867523039221619005522397693449088755893751104038568545305708590631083554279418628240003024675439455650238644127009143873524859182094636596429545439461827415649700278999141470846284430741250332404956806761856297729134669758305020092489083038252664401485563700382075264935222533065955199520680421596154862146150643661790958881265788633799699224031965807427868646595303337777037879044610706420155365334199913514629278656178199912489177488700586715203448482277642102102592071685254216717360747719939953124566767084688613480399858307466504562769374117914881551869278039254360864287418950500382570257067254375970252471768852821138249175261431815482848216173604810383583318393791494112690714667733648456493622667851243034071941553826123708175844470891669250347550603546828865231051282003313195953067760390994937463839772386451372883302368541326784671387740974560860890325429155939406681583125017686395901857683758286911178962983799660730134269640987706849684058346508015451825493445880240274694562630578786116166341948102647456997620296694138740525929049005404989234860887726784279352599683482127366303017215958551242356044986161844208455138826312529071743762307487440373740170596209600766980395911512524941563131473110025719857529392753233275610266630389938934093320762291428171098453967143968901155324400324586531045351885339480572862818952583278374727069751275420894067620696619541424831188446352836472340176419693678194540830220198224949256672749763835757117169065092414931651939730741373785167599574193170384260240806825332359878694551264743770544168932388371476658081990170613527765313464236950666633984002559943540264761436760789829307598847936941567424737607977851598334393430074533229861889325356251692967896570258007795133638910715860599651090714025449804047356709254010363885062377925810110091961611142338029160484404040629481960052208801798410589505681992819362611881312559490136626169474379676242111241704303173824170047273568703163441914646545786870766859146134865839650599587678851324828500782412263381822742530394860605554318139556882353749030188260158003459665494431528121205448835617029016907426202875853799071588238081422700357501475351523621820320224146837507248155566921658531962262274142425647507814882574602555226264771261213505252970123208922241131323556928521484881843976811389698593818348474155722295273238929992250832182113624605924203262780917110663786142836389412637404404445099976118647967721831342123581528140396160224685886403621997000139695331090110018897825822459829409744060144483317755623827761964590346606069374266105787827218727608644243590266488030394959909539579971588733299348104693904358908816014200486020344841728241499455397692451003032634244969079298048397173327280552282155811305294533776989280621713184400913774991550476059042776875354372321460196427944972559481638710280783488712804351491726425316893807282999918067121226862778187079904529738198016447641334522834187428395414974089213808139691659477296233379520208913067583344022067079407793247656482216584781708849111927073828195686897286565655740385475269571407182003152388749454788639194153668327710294333491664898558949219513591534055185627470462912820848054160497763259144748977361106295523967786724725686436127731264700645720105700367946833935210399568315446004193540644189835849549443705296344655193062966199005099310098704499548542817625581259745901463469787326796998639468056708936646042144616253989869018252162998057319555039456014556007358464065509860642983376904115957281138673444360349216150642591379014955451577950912415455159463620034372674092950174422912234386597282935773101869203811972250684121406597584687227176645223154982521139346777521529268214709869914478349959503673426861843092728737642612031983079646145168062937946434445427707140023289188920877731576328316027502029259445812814626819132142670516432657920562545887245333304340852901292274739277986697672715302974823138637098180666286740226883605102638013108681059347927815971796984955348947087983099189550178442142117944113804008943044308444791852507560888606175124451933259343521616661045087170790801475940387224649215090759797394726337417947381226475656191592054891514678122475197534964655916411409864389300585565731118359847597999800765179594404854819326072974305480531721906341091392091984159570932127652081003040043541905031314158560646654018345482136035347851658278718142935853198465791038621641414449239829842811107506020062963476289311438711165755347697363902356502575734129872043501144457549412377818802352229620737476534286323819389513134245853584280800091301051248111615052795969534029688843943785002332448759125688605639084427438075522477464787604442137603648383699753197330222945261089387946241592512165679513763849685262365907930299121840638003369238450842220255234364009715504180738970153675137806582619144572446410560785491835092819252212292551256519084651941434483182651049700609059086377224881473859754582109089942951534125753108883653576965015566029446460593557871787631443085870712692575453707112511023024554262341948647317991120078738635327140250607825106806948880900585831062445032453219641980464822942175049104895409001255949029890334199135523548892017039011669238319729878023107239406474234187311401552161566663824532281562590114102883992940236006947442703836565345481057180644694124948319067049203313644322725030571809156455612508342425846696749679695380365910513264163357856035912774193290334716401212070090859045844633759266949821927223113144362668275564890401619546938349786462084494903861282774103322897115734712018563393260443751328493360463122951005302848215407537016447003668500263777077502046085712229663189750866965885084091288535955355440579476015902138919578580823136295343291364153420430497525951760874074508757395049482655032148580071145802526612802747793488444049891406039418543612979326639230149430544942690284619151411608908817145757217272695478800349721269105398789924458379958624430935765831782937713764520737326815704981679032280450703940825704728457328394793166775654044643968540374658880778996965214167664946788218410485134268196163318692528401712296922487053650147050866581161895763942290687161551569030058538828962646000943555871080288194042992235166346725436923311890608344237205177517483461853087846693862885493398626737300916514695784954807803791022695412823849465976608588958556255467672635485840220697620612527365781259478670047941230491668183683510266326798012235986891316365541709934218914029837275230939349359550640836936705190999868171017508086310042349092021486578110170677685648137672403752296547299239135390709055201027605828229440263687290413745191095277557719023327577054679617801420456504723492189076114995671896750532505912678202025435122240351346783107460596842238015823645381147517171397812727788843200707927800836735690358177600700749004168993340821320022399509062191625731357254663898822967391330693486537939486204792426552253173619442066555184284828918117798807049916092160758934090821144042929037472185474548834082992387677350573527948805149330850964784509428141819572244706797679616963767184906718940298189407799320343552977743871001534083796054146600323393059657178111638118304910904627066843951916250811130195598443752611866691405323716839931939972512854751694574919127338825026463404789521038086672531852930463498287001581317497312066179348625419285033868806553321379022792457940958905162677996991088744381445164524283241188787144144366230487330797440331293989509302701431704242092130192189085276183206578859892057365134569915120325628264745592111855184014211271989415954860480038012080090655143139248680031694299744784935371229145155943090376843756978467847841400505584387347305918028948547740591047668407654927035361326216344342093670752893851396947272671025401227887237442144468959393375957572429914917045168206763364339479070464615785119952544916036498151781937150916016064912176318450254665384272111614349183142458344156444065382112457852628443869666847282738152361932436076542470577639739100848358325529164901329615217500851933143670767436315375283482385827169321994598295940473052928255913165740335212470204212778725141893473605260412521226517758946783731573061343446896044525548121498774321675627902097325825116689372137586554749020810764733901771075537145722612365826996361507729530491885242633942533635552236971244426798356082665592497634799655953804788514416091196135062481352198055870134346411322187023717549611970993200728717998664056608360093737564269717197182512170142802176652517496250992488447916067316494033098210787170900882116721557794272578272224285660191330179370242827569267047552893468468558213241645922942542603565635409575857777598561092148898872424657250913217657294806180166380639057755055787457082314795808688896962978657652607014726872502732527443500652957456771991842150665919997880346551192773901506242760487544370219696390378194995613823073593307579405870075172938874023856548325795368875983742202250503476337547371318204954160710343192147641652244637119522194018336080866290122324169750974087935870430026563931562281031480418524191027423211938787710822700615588273031135498183586467344871554141101633609956064421981031858220444986183586535203740101672281571583582807765716775491187497071404525817826728364548038884302805447866261208649881961153834361795152406104168049611665768138338079832300623117284218572677260188929411709571914006067843316476573472920151535479341786934988946166230903298433543360501003824712254679911434070367836381214203024595357705150210216213831610688718289232788275517447596947753167634953054336747813555651873145742536421006309138506924845466214302529913130926705894671899919631121573160213493954606961381919507777846322367029263933598513606504503667746860715321572912387543490888823986593473351280163449801958931442136963097964248996648829104761525538717771463042346887213182129228859633194675989118456051528498314027412735452639261157086557023438924945470713278537968034889282819549710901075716351789131728201156198561607641924646222260723701300432359261728607867466475080381515317772945874513836109240845619291901940308218169014185544995611857307000817295882233559080955920706708800601946319386595980350549427058529886699627727357068210194097247017440702818472678215350015944156003947838621761162173693032067829851296834289847712503624306401877892972003397733327470487539711844367075339245451997855673906138803453967127697288534433090567654137201881696066969103596031653833175786794463498973210095992399482777805312333590091202953546163994077677045407439379229067508528060669306188726611145310408712180989833159781720503966688575873761962959718230852302149702956886349121749544329597363206144835605495384746030611196956223620013830882250429950587841914489640231202995777095385680265456265065208674581616399843702400379650254918580710762711695166591588177277743995711373892893757682521370221824519533572251171638744680594385041734886183002364760466337000499229100464452758888167178112135526461346835276083218886619309263515214057869012316841545967091813993984805546884244254874083320306626547730316142538491164916364914941300926303796687584495790461677906446888772052150278675656719618226560062758645952294067630000639744091019336153234640577407240726470417471226179111216615771819606996946678341727260716492976777288975678353926009432769301388885658089966692665080573922330021602568461335648098962661839428978280927968417370285837586383642868946979546804955232396672354228196762412047778195798115035299753475237561971453234016071791158795194790834145243306674608286962744361782294038080554053766436344952466302570088885451669089820209815776155290316652054123670348357472362549442893502358712061668821532377166334476754039440153288669934935782426374472530106181245310555682042550181581960795819549078491124687611900924255993299819105767101397926579348468727863105641067682914765472115286778811156539721709644786154265191446462261157341510165361971641143298132084752345016538499759181907696373683350788876360504369699409384933554125978430982982717708667493237774190617068029935638854784885142766317902308663337023755441719884037337034417975136599454222635277692189063058550157080425458807050968306262140625860537445438771756171563672968051879605355862088553386299865984095899966204644664010694534647892810580585459509923487406135123845746173149731493669100226346109476866364167362699950798195258611216513968831174309468208562014819220132594673347956439518114249264613892656500697817260900243841322981345974970898297694862988495409252837003000309398524485323050298031520259832919101464562193403849536998847968451659030698066021300364683361521745907817305635753275318781114700475232669281673868982274941868916863904103493918514000907591587947512958005655278663370596836484312735818272917323481033389736673027082668675899581062733730153231005928393407226001013134546110272411979577692652795390111027046406414746750262863490939182367859829316697902096469457792910220785559878019969559820119685479398395356768992905133368683570899077474769090441969250592933333585754452116970995479901264338667434568123564026245058789545046193423555046504815608780179510561311945073322545241990062639424075297910634779569733564890909783798566750436148486952985651321650994881260768818264540526967477892931795536120977395005301046050745032431708636372674454659995037149845220662380351049265181385684527982032612032190223428722303125775429469036095724286458396186725698126207115268105124087895562293671597212857588013703770972299138127747767832795927270239740435870223985984320545554733932404451907171524066495355641589793761666422391147096213865977056080788534360927349061462051827331605914313620502182068610186512421942478792665563622999686636319875267201886397889442268693259003884631284488167482374310395773855507736174927639934355191726458397301504050535507837438290977315177443250125059232175208912386823853899636699589826234742303627583894133695799761973107524461216070966989057818816628632229443704928168885828877336219941726369113582932756948722702716856573960277047765468280300451924048403750645127460438273245804022327481045586814258731841602230111567214960624906915158992073256089074926913083862628461777595395413935429253740600085767694859625595994476721367390707164459964976458736365290439063782305416953654432960772940335604585737092879678975136097387501934480800860266240297410207366754185720741333848844141909034413528257851306504818029065229630975337918693392260563456225212367930865640622283842398446323960112539322466638418077468125952370433356956884494399335500870061868459766439229321588934382975160308323768808976997223398195068596930522489185725475912996659924120499670947747259922175577657097638847068770676532125394317999825445992819179552927207232774092863892800075296049658837018132983601187492362410501245730410124389336929892467326212252133416166747477477428157954369314088928954706051424814817018828793140051158417381045033536342548070961448101293740711373132273438092956150849508346219452730420698930510045980474345594785830709851956924526380874433565235662640699402327601305931136263915457558537618736544004947367428529513828583739320600336639817723842354310955577156021133823713175276888796183352846934816518256691018075065464941722703329807511036973886013111271307380073474385485839421530151503203269230224892821084522824439983741995768901491826429867330358324376629506455015553200450402279958974431206277856987321553448340535815222112084393280768037602230156300800590294829186247329450116464484413761272437365396018332035538252880331462921966393866836325486008634069969385158672007245856972258379119130570454937720520784681171315819721910038406482487640928764807289132544457701425739693226702675016229861112857652410521911981486874701581250162409906382832532073969078561796340561248782390231180303849167911254045037007905956853353691032202651884358613084073227198591509768103790809045111365569607400755745029958566683282271299136928428827299012915692288726372177244574836122196268183842432390565374467630279968495770144133079489725670379442007534382539545896771535513981003668692493565028746368375975583756660721790233853612357426711682157391381717067822254692952785975858115946006570664638121664929596827706776372213861453474184529529629644412292923062824341877735529368226804723047211584024799560228089330587456535725218651264136722732820366799355644837268701761012965519836087766260179338223411993823338338815898711371945333435646145517478505900115537411462908642831777104992553624758467506707176510086617884571354564474185636044894318584302835669047687880853952076793673049306062025740066932243520809346694676962180035068702335364951786630622082433741115634552024266935613393822553452440340023173033701657239652002560965344408689566310834849781601444303461023712677081529873097979621779746875331306683080084240187976733220078442014998385083186924204235112640193328194362008988488472683829428387090837457923904630603896345814291114948516286294027157143444881495580986258685478157921106535147141812296850848319995951879167220955858338705740080785485595471664652992285502914969540967344665831840151392161696765144487054128386443915950689504076665557918975400121152023749634754670807661773182777684850155098997384087037594917967128843852659997043215856363662074917076563563520824330301580035049195043430871455272398762805261918706677708195805797343389748560490684128232217187923041820491397254972611977272461913503123235713191716733891482974267966910998580593091580052490991874420939813321582108493837844835438291928763544700605153161995078063176487476018705260372994463599886947494921364658223621010887084845380497717693100651630684016303702925551604409044005815919237840061843524005281665946115136545396204852151547979019668764138245129254883120634798960911820528045645157347338685885090409908321036452112826872926943951268672593620671673056347731744879699277671747245820602124283092944668912406054306070053226855667246007835283000689218766663375114444028437670701879949728083733210945767122097272147905511590402555586131144128928193569483537721223394753806039957252369365612948683484496985230428246599378349183082776255169583042113812548268075848929406716458408294803971642509648874989336654614845632113277072256591217933230811868761026848658462976448489375737113879033633353777008487035875762302984498150913366146746766072051699346106381887065635118222599780154420382625031032259083345544557023102466437715140460975940380950485594905902924037386737019616216730968186236875643559499264626513239203279049545625345650216049474581687453182410437648671058812675968857810704598721711540368177730944457288693378064749129200607922360186523361885163602092880141800372282989019356600448184552218911969877779570487720661462890058261020821315472536248284019129454600779125496051625153958840106545838828026706502943848947540082844441578891213842561704015172062591163893125280870976484998977216781301397405557774809370496904857471279586473011249887884948095141933271993375952252127217146285883654686822103129369065813621260993185779728864216309057953205337179533318606548721642069088963430504565908014595347613742430105812604751107127686467547548903783727960295061217545173032427998997207717381777732185499785073514977543236216555657836062036561765877787323114613962527150952373146643947061518919233176788967525630517063634587897070939023118461824881660501333971565285841660678203026666154287422060877000509934423206415371364166367043654195753807905012873082667148132056318104523915294970737149619685083742033065030931387797313566096361129949672950781223036639108913743906017774843758210312908934456481793803828071718998684528101947165439991430177857233289168625506363532414110603349098296641428545242470718795829688902560568810704456584917756162799679107271463853455871559909786899809089133466337242200555043111207367547547854727581853231135100847043423779735953946034022095588133720581334309183666612233291026578293178941425613277698462474884108303580201712351380590637460992360692665488515247578034561367994297801235163527433486450760180503568626746690725624159937766763527088570351152753609937816653278805203134218432719577351622845891502489163909465863765363541590002415801524275637967176178446561012778654326080584138022654679235187422223806557026854503543077778428191516398674572796654494147692926975568929983916858738661243798435555566941776387611505360489499556389789765608787784481355643419116819927125075309190759635178175618610629004416532693280783893477000926894756765203392533092306711240201679679737505283865600201493891444378691875559774915764211921114592994595703838844209391263865570306768765313337988683120065356922664892533414010182903654032400449076009093249943726240087843576583472125604435332378075300390887457597383958214754205007052900792311329034389110539090712105338133186443957692913542319380162096758078117397047606362537159461381954089734392064746946208897988937748106017742932828889416358328593529265810978720957483931234209546934475945886700829320679605384948477366016141706010772503338008307538004358417770355878611016200622811317334835791657231180621619580516012353789086637056554656252218400878020149431336839127636740585217880649564063408754014106683788198369374358321455051286514553183691732058236231233960281494833248440584073570128279572486772389458406692118323306211258458495536210472577315278118092419696274928119546370397777832002845351095752355161338685568101230956476896762012578406910509900157989696616492169699653358070030783630821926209049792275816796160970060102026887982328280700808550278665448730775915761454277696325237630046750730182148446521437290510574876786103432115512850462111342790868259674737308909454743301117934244542159378530980664719202521888540134991833186109249473991440764780710220819577781463477935445027772682667447089466843569298270508633048963268622299058297561461412115726753181784752138241301756142187685405832280154995389728167385779852362374408725848208529120160080887352014252130220884932242117153166684956016741180728839112305965575446937251256148326292533308250167991256932655061295743765065477631105943108791726137890736323837073459283821009508155779283517755187859514987698514047110504515927102878657407571569856704285861332441416658085247200626970810921824481089088408691332422007987925504300174116083652656604367724128084994863975332173748500824124518574686427157071769919079688805924516589512260534426984469981725332835587885668164429850482734808672602521755500626940485160610770218443451864838618684213723581377796166460930717698877953704617141867735793498631030345013036526399410788938279421640517896376363075472994611018232327255455827030846846078080854508019697257760813781103194698548308034509894127643423150042958495694427462582148345304486568248567651406062117161346121577413568611359757152723881515888957932193125539174220093871534336582395553732718758434454072121501633520452605189038567368201952486444442471851824887869105704895730506779692679341553749835331847791265838178093905036744723232533748284127949779761710387948396854419431141278844302799303982011328565728907273842497755343686244451318309017637501800247059488575423161949505920505697513894344230616711411012957736504603087668199400268705212051891455181861893149360351312536193317808026361135887202597356593931840568010225295684282324548874199994783867165672612827392900109737506811279251280886737818492626085824674300253421378658047324984632883008119557338421596769366347895327564992377823958148184940504752254260025523706618581533596329462893221285020335860224162408355695651168070191624524984224220456213974467531510448243167059244176072257330545582905221813187118172325881196745369440502438700765866964108430193262626446894426170105973106055588308412011266490009076911815894807063423012044095368292428904815424923450931479336464374008946562571020250396762877034713253450663554525648303390751984558926234361183789036066247704824850016931374399027120251395253104075613238944663946240611242691249700971869067331455571030634909174244839674453385306471839419654163711965822326718947918026102872277727978120580974535876253406055858409111178092117154561876810898524923118366011895539796624144591336744650157635893642047580580517198316250523910842864886047352856322107859520084805458681176595930643764117008479241952285970757723582072430538293031212618179458449826990481249084680263585470072397216664260937117192662926697430462213757300249195314679124323430224169579263301519234244612030842176308755019913398549983457952564142201161839261183498613334966266857997222984121822595826077826014566832028793313312175368560009536455802117900211767476465995268813854497012153777424253462057393093398315632482694429315399714957199239352642027937675765405962721810043676907287625817906879856328581185788123314907373554884673877555808046536612182539097114012639719522935728708441154677959408860787190130415521861383895148545178155621628631102943721000299733672654386480408975611788861154865555536033721513935973842385803836207443055572550283539278154738127957580591341047267505129358907402197149940049484310485446302284939901439156502293300726787927047572140822871449423987523013939426171616144736599539195392448722556542692715170755999130866179716972896410054853379000653620286549852914264710609350833203469944501311386725810766333602263981566315112703938461141039613588196816936569385476514170308681636732844338019212932261752053375155603506697942903132346504102996619975571715575503255812366710090140271657756642921387063468954939591385087828921109463258006300442205515051934094965813806146661827413123401825980750741105005512554381037790132154959765348725185043515583668001438149504567098019338780057967174028613255213245008171428155995487400112118147589641289457518191498580675150202553818265630354481928231977946625894490565054878179604020394116720280468377618793077799543085436470603586207933697732861667068542083268264968217234591100709374003204417300790665159066043949715416275802696988384748846185612150693253425784626299843776999578484181725014221152288648661269733415377740407504430715574397093669685605303503726157757587332973183899712255974433904484518951783769465511799520126960691297226765832928677050991983613258053778005675270154784752888307598016421994418479180907128831152162026608757201071928734414210987151845894047223001934142644405898705570743792878921680662967604653981347269649475327474638425563313380221351968548264173401387048975581652630188604565918503083025596781535625430352716636015191799622945409676020071967006320691676539250412462014094459148745347515163722724694587992087795036223522991572614014025524024832827794713865519497004321573780961049918540434085007988121780140059331160287380931076764990742514931933149020851160773498380646797202681748711565231220485020519773282435837870482627974481684401599982382515218372795531909930144521768208635602169398877186633348555431784420190072029378315610087288850772609777675899823878820329609733029155557731390816691107009958467344946089669104562722614978263149379858951064442616885464336426692470078381927173793704772704414642998465965427733147213163026324086172543416258538671263458129543973472296423178300878967355075558116920661700977060602155631288612289394229497746298566863591012837325131080322870142504598151795053687283573247074644034137346569371507511788064967137711537055539652434137625038901458166092717821822943230930927716578843833511879212931740917172206269791904312913148127323601677958990820368994822053519121348625971001114200331885328961366077675002432061652856516043979007600932685053895636291125537442536492567636472084633432651700168021604898632965975332257542077224557566125226616350262927703293500918070349263983636892498032033246222398905972416439958039745694149196643850486779118401566053623229673127534413981406014958876233128809226761119189432984201784973373360738210874716053663653870552110718400109679745233665468179303375915296325833906848929228769768031877909178429405576051142108704181167970069435801468953299202107384010163448914447116887044135182305793338587811371201713184059268533853011472801933801377511080741419818325417215300902730627788614836722755436521413321478850055629064300265702001981383693192351499504845735828191458873581461071168746212154235234931977606248354031083644100224992972112976936572793387000272985460532042422507746413318873667321904958092848835405445542280608105696245533504965941406056742219516052534950885811237182522448230216423731120703782174833703662310542073204880787705773943333994419090244654405899869861234156984807634181140781689926298078783868306585713885120090870980348733723509166793223760811664697393035669342152936333049677930612009896805971538834223524738473820561711827394819782457936834512703753171559212410157340461719830654915490525091575716963601282872039147989542408589893493496458586348804805866908168799749422668824049264924649618576076848012589355099655814614275344118440851905878571449587058766126753505122829624056930709132184959214859621164389518261079979380716836177165769302031220922638570383788259130804556537236048660605212330005489357999973212925107356957379884200539982671204774534352835531109494157808787608066069569445219218086592572505123634105198734478254338005308340044473602296665606178189465828279713629847782995411812344575446943943091986639371122478206133797375280082574629375870003409465064960857412020880463918735408634140695230759389770313306551291739641918646210538542744653073132683120215353881767020793106117487168745171323330508545432304695887321933007899149929100602673886879338363161407458161107109651002847144509611350009966850140864946048772122638486569454337570486170825424433442187767760945452575667309454683352726830256577901693554636447344897199515779509026874365702096629745071957590290476220343259623711397758827266419358420613239940258537459480087417492809403753006203762233342813474572175376275490255916198067436474498447164426474034126687074736438150579656098165648375749608585580940260704231123665340693094719941913017970458071917857149512293927465793827383483435202367635591369163855023477437128198784346107083864313095470644477579676910151199222181943812125947580492057303316296907252248304361379229475858912426324347496283959468974294462033493318344798721297805996217657789898496941286413416996610976207069572776530585413066373707395957160851720137127082378484763507810970173651028193682552686700050799117452161997703510399615084650254715712097622036325962866636877997074597469909532450740537078415945584993153151676965004574637371325787596746045447840989355357104413296496896507035284626808106263045965731829785119687213069869538846309456436731952697045471534112640858099337051954798327731076319570922546402896135876986062833793950027262496642100297468123314435520016328336245242491189214437137601706787126127093576660897306129087366230468688533967016855416937251258862808977185302910127864669086104999575377597486262662412806664054388444054830630467926137723945661720895885062956870118755085097225776962364574613477079771286083745938890110290463848727476829046784774606421421730110242548124256321605938537813608984783606589812359409384536988902343730822563412789367683120069803231988439690704348560187168689098334852100685191034401383785116018833431278527692177555636267661631825360559814105325506958258760513596690622085348587055441848761472217182605226257373587940882524719710036503126739208072167246150455442776334392995066989548449816547886482072700932558930704110004844089766840373545874558834794500273726116069730171197898515676321166059984437686756415968918595795300732037187768739356901327422228515998269267991065590086687531063251402424907955272734874292489434030777801121698093929232508364262017872424646648655074563901199982082039889903134375758686839242205565855714168774910229389995299308143414112738721311070626284723661326150297290071556809214205060893136835450632932761489302196683013090296186756753073199953194259034240308266221519496643783072345433289860073605485841019712413467762103553343720383413509966631671317589864196245540622541901481694037608189480670733234164846115588204736711752983498762970781650886002067289164486886320873039700462504091604912403699999554665668396690690297764340031926391018983098972882485159645579689710766735857556412373203003073504874049821767334860266645077600107914844650953868223285781246165206243735787231104808393317622193957726671099782208129850285472440631054226269282136406818747056748519014839962168139744168048727792391819601653325762661723166667934045155094788305873175601225054684514433073931761876922714376993563359205524661104273650838008622028340054619455092810212397590469710255603799376809432205572989481675418289054561689014975071372023522158408882732169751717930487524396776890643500046581416344457469796496252624003817401938247632982367097245270127601711138177227453508257743627080961248135010591496806559846299875515308006451383303314768000067302847879611588879102430456238393213720842109359861867857734716009783655846248244808567142487303129910855225812044950515377931786162386211114439247031290215440028402865319326514799096405947408734689942571735746758264196924339522736495252915172935164907731666542202960014148856489245877132833232305198170013743961882132898123758781050315233703625940505565221954438563248636025582840479667416465084139085022308732160171693514214615987626931264623628388241529176083031188631624082783418080171669671663751788672005309247811927176129232884219916517313579329622990607888914560669123733029034559178522139668290825360903743136234958209256927970327806023749228328138075673672333370720350141429560521874932180592226124240825644020945123356108125289542699886551994115546069365439707740684194424594888021487041268689036947869985364725298857670317681390070109873117728422729729108499226170428916509961300939652110910857894400121904409315565342680986710803010593184090788777993198192528916925900371915802732268173178903809913689911765197849370232412884977057875695177207660905155451636640531347927562848220634311866730577283607729710914931710857902421342196692144022509328811630866981542150247484221705374614483448490719835020595054136804714267161154189846390418723983797942255385704380835447095449618371361104317120400310188717678265811008917820114890708665305462562913859095544244913281475762959369038371614587716785302595733444502546275864212609958070561688500338503559428578560241747317080827969330143701716760616401838496615273777714398128367250876965309116209622354349654559925995306636626325936530897467993527992918649592752985751377675477721787511178936484451475084796196594998988879867918638383626201251479329624806850278993727583118780928911213115816104669068346369730883475428502215553618046686906058394555663633116950945344554592212956406776974228758410392589569474042632778547860177092929314030963788253154983530076059110562060169515770945798265874462929260698320950987757019171549707147547495555513050497658314271151504917610331161714689808330444158450610434891114424143707076490495514353123353092331301395582194562290179716477184923424490933495996430254441047528517381884033468513660171148060385252567411957448530403974326886825816896555759318655735688709090656280843884679809996955837355214995445016012011930351972542123275238540739071828964074827140882029665057451637752652969546132444962338199181007048438956679611372712782190233082810333072928735680162761596650308755101816574172222085686380344858131145698804774716453122248671386728175359975533225054147551169704613907992638919944212709951656161232678271287724659853247822145656217392211201915974923991113779170964642320657595375244497256098108220820848226613765928615802978697105206189710053320829430327418025667620838517677412818716164111028013808373608829777253044483421780812226475035679970385544663067540101248963540774722329362323010305835858018228043869896553906494174258061228418913772388607295803043677668681448601469502986793316548677949451596886614760102769088630961004616538246917823256665846729692659543355862515814708664531940624106216832065272512512384087074279238189925356020664715772057983574773197508245948669881437320460899419823002030662180259902988648786141438972225847701695830851980758809648718512617859483036404460716628235574947868846044546086709509187943359097183186433332709335268075514024655655692427322409323295751204066119578295294643183002234952944902353179168397496934397274008761033014924319415158836702347027835993972422071388257784733342721148890868375119388853697577936019511556112978133368024774537406734526602143579887517058994612454534516059585564422788286365854494887871810540371409772876508250336116963495993776835153918671778888505113962953228578344997714199285664452325620749318662779317005289689177748026435716063329360559381467886423054931973877879614134159474910751056190482751739362306048624894493266525405038385958684207173733574238073008247338832296400809354901412062885448664320926118069640307475632092369933079569570016184081675620627250842001332532531342565289920066463571504409757624066668970976600192077995947840731484687991305553001899801160941176188208493028847262966368684221549001050974940421384901863523206130608833156772231827839497034768848692519002523175367443398350855721437762101426654177361486566577738767667631494871100209647366393291571032795868233763512863423892086933924908323093175934247093378176153648692075482972183889252353481329562792488804630490402707442340958230063364915827745947449173770288994277851747161533442341289280856877663254926609939737813601022894731976133481973133023678311383879967593283607041299479385137417088435669666613031038670383912766015212403107756359783867826960816175881452603796664685069526193742011811969582643208001294130046648032230743918206074048174635859529587051596883046856236376161174236342066355035209746088771720374063159122819159792799941059771813072610504477220204649114418429495663145171719226348508807659366399775881895235604910243988791799833256007071296514194209610374773894998294610273456455640701059116152298755652290399366466227344881592576164518447658938123830109602629830301350337892120293237803352769398324722393610989134916665341783207223989350425868346024056310862591119921989233548510265614833855291588020728100693445205057732447977391938854915759863401311540100156040034053481023337815470996634067498869388659070542139559383267656358538076749013033003309489961855537396672648898988266502408303720122188446904888331640769438719358402292136926044567506489246013149791037347325877773237805802991645184926026559063875963168980248704537764418517181471279734296795401598112122764641617641367170990621658657948537191269086842734316366576396298475281078629933173059410518376486671156117468620459238059168957038895353206540175203539665230837364284558308814043542649941296833212027951304349620129646137479516294353766163023578104519183737995301448952745539495436320036451614841277992731436418172412517942935689868778278944028409163334258128906421506486501507533115624360700294836189292027507176478506998735754567364348255546291539322045553212302397651056454924696430313705128485157315370804912507683081505460237817885500788629946411859144457414550720545252336330224383530210389955788069713085592721776127540052139604562242506784176897074918807317017414090045954642503459283504420556577257099557156087318059087754967940155880922234151380706684308090500682976331353648640417414565624980512023855179872188307882901956403547732373595108248780353329847196812493723895599210086850300343553373443437637570608143060099367454921466888400265154328812755776963500083121821485319267423836791035249433785591654763270272885751887072578622683137029015315002844869983433200487730617032375460139873241272518109297490273735855209918187692938593925156168189240452541132792728625237011580025101257712657165860656161267153460315906964654931951601482025125884780959384748259933704455126377019374811442315316712041553027530525698301288029701184847063966924026858849822071362952598343737711564040379751523296028103337515630642694000545645191225442128672489125221506993847989186359448482790590579722633029443419904197413381097606590131320336342774768436909781664150181117899578764902124662419963366867401470965921996160711841489886463966566641837836345474569165621311671842903508958285326516486863819049546818004132967443831259997243594619155620635464071381956376912356276841281057359594277801099799260992100889822746936117680913737161607235605555815942626607541410735713120433175109260431787376044267424840617817856304476669840731632386566827603243392529240079719608834895132133891221902644782439975054774267175738037526355717298802386362212852495898630939584250401509793320372818914572442874901758081392761237873144170240973781135093017078373151108565086492126674019711646753567567076877250656434892317684954640030775234808144073178891041736068081855122790266425033656971684017365220616419483273688820845688861757058434251100064444026772805594862389942720785380178563608966377253617979929094878088989211304153904643357852725142754529488752685261201793482716344339588613314033853461050435830820471659758446542402914000884985155179504570746276686759035393506045000087948141124985458324000653312979234282759601162656917796226319291584317382427660189617939000746957137655234173591373914802815940284423432390839452379009414129375145382207800768143085195743405973922648074452232706205183211359170504000192153203569048933245747715174989716633008375127491709752955423727766412715958633652858913341092253282454687884464221701951956499342377565644842092715556980135723330277657965279354220648105931798582781932064242639792360664062684696229486937239166879941599935571792633854255625896307582956936649630573727368591884825259835410757513307875571573436123250752189943339735726959490572805055112418419555960916370315140637379058669038034825273490976589337797632223042785260192311106374604431842376843623981959509679420146919142232435057234353426506974805196464867817090014365903413522151004586907060137993717688818775754279169049817005587117487645130232980707785557876431385064888692160821362245303478244846457135757742442821222039030351656824775908886381460002766794446086808244852256328031614191459087509905728499616783674732342184867489571431753174686309028063451054737396338206370374199930626555283648487439133038361979671112957293909757751391762253627643362645872812042923619591797243122092567332659359400525873102022618457822576000511692536506246962378639544419012647393109613432018640812562445208626927996285560044478040140694555916667284930691948012982077672176331113393523939407203031640587558702403909156184701826938044091914375480122185792419649144455952509454326158094726784537065064233542034017426236043411257734461938096016314589097911143256479860828797283918925796965169644942083659618256169323893296257298021050020257561969089144263217535049929304579552308737776174345368059090541221507098649870483949561069931884715017909199093985510147962944887269213402404013867560601623395363695194629792387431423069526387143755246623554565713801208138522654355682335302699431091410761453556774964743387485915504952431403571719769481904798123211517882987325470029829182622878115575400629570426612610414044680804996049550655979169668439823246937489343009517671598241465503455807506298692499219320175569801143970375573638788586615410439652689963900169614640575333327354671515163141458794237440206756688279346727241363438796336153598877309761364396099275789343756338285908236018405509269574455674255970007222702198001777231008281439296725461973136462965356796624625488251205526506634555752823102076145296748021013878032015136815586553840889643363552842601205128714117915643136380462062487988061144098255439094960719561126345614259189261144887433316275714728830091818568184765021414010960583307429384155883004090697523567300386422345697250349729150871614440673307663034051189082268581691672487541323829857805710426598966525447094827231687297130759705212098272651607311644948235840945210014351220351668672885631546757105786734912958170192540394753233196110100356355268043456042776080236533144428717068289661261464839791126526782547628102957623898615453443062963402588223980962709493128968835272797369898703122651937810899075758868773072350765298553912733327943562840917908010125237962260164038929187374830699011943441005858618439456510147836508080687879494116741341343838904614315271134943810467311971820685314347665608983073382597802189858530232930586482675520395035368425030230386803805850461090258845496471889539103429459364774066014381237685045641349792651105301770394788042981421058359576018953347868996735438064475360852174332044149493431418373959880200429751313890568163809190284531817352356768475898961192159652405538676740612417505381201170630516391839453548326670848075149685157643530240437394961073372924678315382505070202189610361633723525871433975467423717243951159668853898364111602490742934435436313495332656950445836375637796818037704308145865108371978951675378539273015142816750715492918964785880731662304277742911868845825038024179907502627034319754808456847265216133928062733401915909526003896287675744226342141506171201366831500151169814093869851353974451857853386417981481898615052679167774044484914797953619872012279588165627564733312849271052527670109698863836501455504576104486967623510264130463086691168924507101819194905822507861807892497878394071709886340330931980865591629979613210795602169012202812163187203410539405781598093441280006397409546894107495489946020458126240597987354103300847982167453070563335676778011890170914522077163257890917936096337731732142379938580105108614458523121050546506031900456714353098010383252135869936625613179040387775487463607198869919988636983607113869092003461686975137060806662752442604619785233553716472529224439312573289720469154777844615055836470428433624191692657732718599835473497178861657105012063435365101977808424726657932073055721681691034731456811252585666244513120903177232850721750249979218498275063408237371421653044826361162173693734268851867057725760955715667249462426300623979867902064530344610329409298350967598037283658017950317093331866988718856240657398404773442907710893650431436194904293638932165083764957406489466005473407101267055987692003456465119682385864512136401650027204776994845710483439898569018552280577139967045175749889345917560550027141488956546913896385215670831017744992095669270189358364300320824103371215425351787641531508984761561826029396066831790003364382301422531748591758286471928465271078708405108432477978570235634179619536187269148594627451194583708855507191672778755500542677703587152919208492654253012397969099305629875377130834074760867911107674086533356143029820161716200060465694429106589669789893273778924727245339057898938857236839987370549648063607576058714404077170815283810988384926850136877713024001846728205592776936999051301818127029944736676239114325500347668416627327132077844255827928314109174190652225232516020114899420972994436896562933257369414718915055203010566586766337093232644032953348492938169476891202001459957432224664134305568495421743293956630000196551341099640317035536854315930222472830917729812351496820892570033040289054187295437710679164370643507194344658749047103344476997478476318572513936251586850933574294826833690202562196670502982804189434963093609177459395005080185306072317611646222189400693422618048579728553670096346608994099953148351602210536194322979646097378603169498402215044247912150571628451037788009938591218066754490821525762706756411919999393530885600440854278747368556896340792408881572473786745117392629782903641342976925625213804040921606575386581609546405781870323730488966514665483216457909138530778057685881713793405562813493520615867479289710844031893684651653534165900622958040618966615533899287421121711181850286778559378308291860328577183897430152863929740569886587432621964487381518251022735172609556352627332258700068181060773201070083739619559655029745249551149676047341733643962480539313632570744445425354221757175155526581280367739557409827840550752607342839589468744185145944182934267147234442829643539592821054466390739500691047312250134201401304660754519002851439173231604766056354753308510194749151263987753976755181353618752150327606303652278905379650706751923338654923738550905451023276079984491161637620186638659957292684920725028183018523142424396231207835981473867085227811035476430896084719639504252728502021209268974064546859094480424977338672477357625220480606182310508468850768368807400496838661585397251370359401794784705272940883892772452765151441633807346770958013856857851874674347571815375199681794886809599235419138521530187915606504262421408695319050075304177257906869512610299105951786344855770123595780629872866801634084151144649906763559370268214843467912023878756950349761635043463593739737867838426531057344260834464586556176435575626076430037900679716714587124383178790480848391851586536715859936749062879802990258548455867743872680255776729869609774232577675858609020909974841078964724936467206202738959943270513703123465910680273006792150393347191950624700920567920221090236592847825492081460325469001889984779663590560775103022681556140281866575772339915682188944407825754461013267778783513076362861257357120103658775152278885454282429465283447657537931224498146682979314107396199586124872495496443677856882178448801990529270943751972824150864529545088567752157339854085730052387351457457320983411927483797670593535980995318848340195199373915444657797699145143760954896712920855293980736851254239869512616579146669479045344906847217904317725987244885002963051402468751628521396331244765402290241364698256948298445901394512147943852013471837038377104346988097493438079741647958956655900376169135994344448083750415881041552141608139819681681992271710627476080804863653688439097412389514715598506159615783234337051824208823357676659197090125875535531807785384558828237216708369455446969495233732373854598858418919804879319850906783441664169745596408270163783579425569064089584955245235371251775721444581097973819551302018921311474682579907489493654587071332388193631521927677277615905845577691705598571662122733787019460944457088435278214395844252386484250706407415168878732626315056542618757272734566476317616384312561607730480554782482042438619873708266674376362713914609173334138948620383882351935320863912162834718529893832655456128745357656698150499579017684258213398362395570177392258881253965777247588826274855669476292040175766770856514783497540245033244670171394960231593512839331232096668568914610052268506340539993998547631180212219370446958135705294104592484639956607367173607317190702191701018721164523556621032311802707510179803556626107068200465597660374819107640756242717190251236536660845070679679045781146109537222425643010049655292536434481972776180254559262195604873266011058109011996686986761876387533217061660806734028266497813359498549445378615276472009986744043665482176902634518774110904480758382382722254491233231232399786169668600814070669750232755870210659422855786926259367706494323338042100619868434394357176812524584852363300082604045739900090206961557135064475067475252719700426912742177242146899528820068736056146261519966424661353199484407665184146510394755545701045607985894781797699963386380432277782872129028070449070780724232828221789960780568620595512748182679080659648914721125057750371064139446920377650948535739697300398578273089286621983696435660066338925997483532601348881100011990659106517938277114053120559337109945008740366808798813614925224426279723070048843594610045017553173910767004761115316460619094543225881091234042783700287655033531661385495349165049112013831751273029584549841635590147985154945249789838285330883366456949110815539603149230633396626712844178343192296041811266530565621348927781816643699999631548864574617570479162640199725001774452448486951785656778408902452614176875063686305041097096592836848351654550726729429064186908813165539052356895624218947447194958349666030356922455623187317054134127779714128502747047763545874600953417035035414140662828907378877948795314100547251991288523644214799736787864183468888265636797464782217611610739376953613762849985390101144819154768211697845468236343175644468908665354244765140721326301403847334532133914403811698797804783015385634736261334257165637342461896930511189840843715384473213374455402405738442061158038603101296861461901267542861244057940889113711353164070940346781668140398254859829220927589225234063525130735490525172823728108251954073316255747220855689281279742141006547089952980689100986707011632162261588339267231776211119978004522210892513222926606306693486988231187003978846907062610390446024994369347704053689389549600677846129190307760847754458584898263125452216788124153414851668278183101437326429113475069413863378664244868896327666606701319152610904015433395731102761352635388741037430327630500174569506663630665704114916891224986224308069681965573720387437028375986430766838689955294739269217171355926902099518233238304108616556788480257896384103201403159005562158810379367765611283371627216735341423643092870460350704376459989404902917727240056422285341811547114626111505494284654619015399032171963369953724457457914139729341897159738621631291237188310350203139801728398106227622180005568363602556207495943086397450390686302186760538039168947628644186275914964084446702585176290369380274472284680643324531688000227532310350223896792267030358717232481051639560369402269134342180047280990103083091324554075940454905714481733026652891526572102007696229338884624236656176984558116637028888507008923307349145940945969498406293267637040199250027319416467394412246354396026111234578847246313411753242955507832865299684249095222531754405293280525821794868619213263699539119801874989766828086639197555824463331915424057462167935468083330809121898416426638842051293403995437485394831904804426047173114756186934538016305226072362582467105578352303277392666189072083781888626387382411769113022739313694107182995188085564179399620542224719988865758222998809331138663620757883082172872200820714525511334932094885670607673123272262168616792921485817922951432593963159911166689479466092717871943638219546305929747087905674575269779551043422874776323478757500129592847351951899802340125180073294944826154996019505362145243785737394075131495637153008091930073286935586229854177594329461143442882197832592499336573370299942021010583904925281713792591565869418169272676939856134706975851769541210570479936596551637399165894827900537971107287711554878508227337854333495191814058942949103336147243357393144172150031724274793423352750563355431008320283856904995278301437434367679506830428896132399277340135715484114782703022134451677066224182186702657007294433115565723027722737091593334671988280577748230556906035547907604902883142323152882095834790407177751710524995773280213389569333408064100377525200709315795664728386760842713442847340104314941535852217346299092340553911240888138305640680340643298563566845187993561527387406581632882286241334418944145922343471046004594544318749654274211556277523572611960371915862088002045933076775529816930844374848188011569997869352304167267672646957734432434166992928230127088213860699422058837532843588569493514722543887656483114770890547040555585166361015522058111370365393335024055891502155897665648596252668932827416219147257964696074511042639852435540023185854913106762260741722755329248550950720770299134777608348601329099678752813187118015016548534362195082794309176433687184934310946895745674161533359257866302959527049005933047773918486371830256137054921430626151022457341496123180297539489831985446265818777631014459282685779981817327057418054292990651245162471452002428981890608693759440552629117606480527591183873281846905511084117806843502810032054600904737444478529744346590887381001173429908565539293645937467710798190814435241472637896368392220917134995121806432014912053139285114319942653048352992124974723361104071543576780299005766304273333920769984876389533729451742633970318631918485515367305411207307938064233949259466985666500447404825581619233631781641057920328291691424986060931614428473657163766044163326805637886767598980979045321959688368864209629721557132971794621835219943063398533309816474484468983770727950047822568132199454579953903684439087448341298173401778636234311380090743948053588666801541628640882173860496277229490657933460175282954994190914293782863595424942189868833171942351931002841938076385952296462798217123307574300208832514848797450550475387966265822740994588157101680995520625401942075908251690119358189496265497056922366954803235725308913646608876060110026933552873390782854781734932877903129651977087403992246658628030793644485674955848308194057711100054109141691832865528970479142819274382771680741077815861863823304957316087423949004359469366675123082982695706349210603466008719702590456134425234878687544675965585494401996436866167932506558281360343371795666111325579439977899263108609491808823193514499188211531686252586398614883736446229708299078143357508713568404856747625103602041761254389356445486547251007595672473387982922816750564568976097876992762864814187851002240770573628981942927895905189582424605598314527018323962661303737646740885593593878156537242832431690804302452763472477432778156541725053677390962457563381707659860959770076935266812512245153453234379011510892503715546113029186294120758626370803403807160069662711536188522670386836192788747203714497455204436253413818608595292822190473190400115095315689279243691480431685833713722066735419027533955715401966614122886063490909222561444890282101563003238898028680444156211457089454306857579672492098510506947275049759436291782812693605121218991552850046362555690314671627700438264760932816728090190950265947058771703276364011710884294619700852507103788783101874651531803600827675306043818021441489057643867770966736538583015113543407879240048499485149679436510859433312583155657224925694037308056785500757404806338458066194243731008425241460538683059796004476026596015074517420630238819631033981252037969907774854351324313311791719206909706503098182696477154138822848206146225772591994309568501164931410511740396611313922948249336352351693477718895146668747436770472610530372226587637362014739745141315575662703149417912008406226308855346530123094197566236637329704839490157626768601394939771743923796093480578660072523353421599114641177313342786231104956549539383296480050927098044114608739746543767698508849490167658321926533984150032464472119274155525523175332516272898374458390585037510181186150765224324154889317985695800741964302068364713300576390211844471722811650373723712397594003877745213592758616427639184670692596611950767451275364158791998519951520337377931601519635930848453732302009623493860510635010247199535826427567804030502902445270538144667934813381250392991711116339132122139409129219524089244538534526335536247127521744509965756868056270669296795035177196863811126555149192100217526794410547663733316409901193224005433738839499872165747168973646849893219782826734079024632285110285436027747561979716880236274916012330378336267679353775340932635728117816998952380646529570568608646592318031653729691834907723554203469921235709960507400874324102235327251290366022605223525371786998448833508219774964882557543648955682163521182534070325330758919192702136979822908345643420817634639838827515853572713641324445665382071979263305263473933607064909231082617494328254726202500535264417306188730079844499051015684971614096471426255628110120668703676774366435595733211463591988939563578507144915992822356670667215424167625698306129524611778496219314797931199401927815561299872885707870235420662978552265559589765193042292623760785786393691783939161200462062107591357689669801880644644572603599429869573189896140039451715015193355266076827591112781847858835930177726126598756178789609557453082422570904045587888617664153291278120850025775635106250260435860799865519743065976369728620703325018744742810263395127914239068188771734071829709931770916699288521577885413813728310015456794654035373834909172468870499919439287236713810974754356184127225490816105443582032944701415683116487322365276021032699194374664652113630554562345493155961003432284428227124552581932081940974450998098069697944124101727975977285246998153738830160507236538653836152592668964040905846052875801962691769457483208371163850902006169807022251207593075879203852829745614737722908658855479223798445695907932091530723713467472418033659598091255271664988909633759958326724750491491032423855533016586227283634193633285834488955075310425213556503159013309214625932923204679122402854616074637087740406220015844981684694864252283388523286294827116168498336613680411083348280491210278669277502058603276035726942305714384126779253002824170971866057729238806029143804354948507790094454267816820986912490467841323868271916045142358034036800124147141706055005937126525038275676612229849251194785234468200964420201202207201830172989694844150151973185757163095907360776415961795288921981301470792333017289952244903066331926572037657483625876844276389542027972851599647255427214973076064425808243097701988091472929917391063908867726707113121331542379702923888746027813179265084213623551937937518824775673600954879199865365042910386639644880208780047442713863377172609351604843412817742041578796168506729145304786761301308979944149638530241042060245732256571570472443847077762648722720727485243651709479528214889008949991838754313209531551452662766198704544353718343730169737835130549998439957456984460323695756109963626441250777546842805602525359933255885595007777244739631344496509989110603120967031553014210697020513713390438004950090941849919346169393989435457605722024238203598469088561970000517672795890538071342924746365845659003447203316685801133415543660260861878301204225970009198332067520655792779308995493523130557580825627537587035879941283843038435637323879355962491334403555599347981540131699199732646263827783098622260447179548507334739673280120909712104095174899597737008650861096454099982983788767084151630368628797143312292504838434932350998836135757309792337932412026806332291851611364622786893749127773028184424174200969214217824024999675920831280927066140572676830887776625585297467899366409952837697599795253465832757926505521327936908231885074932775171599343357992329792750824252792119845331819955120125470179368429770246250200132720339586864171468453736300860278765427114985225085549673516215456122015016098025066628523971743459473161927782918477053712763767928605254286252403324116092794442012732191731679111858280241161597193264021229354267620306714541971204188867800946404266978469043073602627731658714021738064712165988908877000688376554136827076469080528012166488982321718100370619430403247892959852214727873077034828885005795502386830000003143385979568325371294712515967396651221385470220021411608603134799340856580086759457083792011756119521625083308350303939935384638762086335040507706602524170433489905581437830550086492680183628621548291673633875621686446860359609373705881261186232440319751135236848652042432350227493504197483634175220105355992370215762570885555957201799505505050166167117182355438529480530769350696079480862169157112901047600074697414475198417509143630140333798272743082537100645361589261734142432174144059096620822799278989314479081090800804922624898511124302642042986651293129659662411515776715538658972358528233312740494298728327086520790433663268348260213015430787317806051560687106572935094265670098692059948488873049406934946845196707283719484855913989411008898804423596754332602982144778585804982571254607405140788314700342282849774693463011478842328972325662132263129305435726311016535036782256641281529309871584846639354973227463497240765121980910236151400860659085835680081799624580373135368453336159968932195676582157465178406048997274122676284293847168056799791070493020745372783875944954772602724081778686960198666517625975167971169125097442130015971450781257912701520142207406352807621060241129297163231007742461364558123915809472170202486851460295016167097431747184903418583511616428277673331450994115865726900035560615667970512484239588506604404689076271400608933490815218158916732619102779057634197263209515474092979519861344917823949745160309160660044872236608901073914452761881982393936966093814213000021585317184154604305201074405261001973775850592797887197097160680265561573507665094014469743697290277936147114622049219471549156381104449969149695647869108596617050530115707925119987593097646858578548249201460592499438944302997095748684548419880041060934722875870636415798714198325019022452504550711910982892370768603983211332828614970111085173651691184486921356437233987343009642325671753082937061366692933788086935317162491391168395787881046142172791452470639321913983740903485792148772202641326784580069089947956647965515059135236176205046083759844387397506196444920766634368337824859398615249128083632463178952044958578744387154026333950686056692702098481544920283099876635697519999359282771898625898370962387562177626760068021664660348864249683854963156348482598198751973948730958221520849096956083749514516788945955234382227573193009389220932097218253211760818189076931517300389263653640128960484995381034856714955675053738461612604016078131716829038953154100998094639378247491864868651758982034974073848278582357867927254526377589970091147918474529713232687181654831029824036210611449399628421387421176659981134137088982238455629575920516060715870603453261861326563156374144924623303084840448179685293743192638602790120712666306877159489984588644597479995977466198216600787374120567375060884194235595363861287968736370235261760577689394879395834412509311234670463032306997854852754398208295110110222210303743955747327974338857906812748921523079364220175256323096542052358218430658237030103572081871903526258025708651571653850077810499512812744416508339727368270414318775802937412892796252726526161359911995470905131512776657277807793109636789620391997320985970241672897325043032970231815258094170827746655581231361317282249503853158682829727741796210649521754737425132839470857692571596970747195053710521874756521321152075904345761926328295962784376726701437832293089510744871749507212465860679317112845047879925989218762773629642931436896509866687758325485635397231671709426812859091914146139404312996600066564335815621556308632905754258616475318344016464828478149462856276856442829640322919417734262762010422546148449418487648262442770885713258923456190332872499042558287762584964706940136897136941307994620670943188847827335261417270033974459439583180716719133672813360213385861646080722667730424367762486181279315980674857020672798065896361023972894181689254759222485923266261340768378663859688782679942368224808739848435593793912110942882937174619175523465762679449371291332022657426366570295337240786716071731715873553303279223930264363826869407970285861854505163174933931687865071815878225811184770580291497071897366064310867803081516551530859754303823135204048202138005905427842607413437098479868343076781295584880481104689691001613072689358232202848889721577629735659778246775511882160132309324687169860508096118006518392154752717730281022018884580935409966978891878463650386657624203299713738278781753654241004400614315841852791447240157744485040837090897027354659877420635698497443158954739147104754705743954378358831684280533260779626602466378104820710635704623827438415570765605877630740240517886328329037602229332498809017284880991520160110523869384190187859497086472490821572322272515738401583821687128618016486662412018325439457203481185481653217228812925507867249191245592873170692394167839412865018213517975763176154023979049950346930092343127320028166698181107026257179603081501615571603337507096054729762744087459901439198875043349650312232590560751551655029515543099238296338913829860624000769967629911125687798050119782036841001042950816117818035437790412053396613871953707150577768130240802164498193830437217323237636140919066126702681835908018377336468487842525654565536337760389162745337440409849265161260710032252359113946227727211268409526984922907832307786170114090002028260126006819652467905599188421482733186141808917190310417381434083745844877816097675226207223174082186022705976981275435507210602927735515349431366530759833190791617390415375215011263149716237987324112442240731249699801322803627131100710656072973335992482306649018330830450246118574628906902148423679105940480476373948949318924027217223473292817324909089036858411481090084805493110353209027357336349975557589296131379401048722935142542327937324142746706155633923193113142184319341337505547025713129146333657456325519680690602078633268945960025198910700405705144424743522728949399424976698443780729771874021169753361929120823323689352553718835645149731765760914264182818542479531844780605071097661361045182537203787892364254978926119580731399748466723304558985379025204361844016682578643809524920346055913209900152892545888987756092041033130984975647145509776386838684160284173834631842789937464477457018424017832529846948680923975019879562094615694548821169372816834102455886930872461506268975554529496482992887696221136190069660410013198966974981909629273083807149840017807967572465225667862253454597443436955379881632941297914069346848418723681739816047754942133897000513766603273098149701137251478808127291198321514780649456920130648323513698902915416138060982073542004093796165996931274281455532695453396128217832956623820269744540381795781540129887455325491956070399558814351738100677797658007222248053758160513913490906955677113538345994211971291206791795972643195482948901548111088385586800152773324189272556990222571512581220782902982141579269319745780765891880287996749317857386776449616481504146150259024494106255826187050828784429184694452648348295852860237863920667609302150144261242457567249277897641198162550501597922101054591107134783857876803298835486139986523725435496600439009828442956370691596111736925620038017034908820766371860524270562539484022580331823883403392868086005477961633222429617298381325956352732703113241063415543613515838952422709366980692805270762349875878614417663368513496016706751867073234501686214658780603330535390213900249797596404750356607587595956413571106743325012930519120478629380664989052146524755147205437869257314388263658472817566273840378231570418605911418360528605500005098624051398057332708015724118036948007608545191754863119225565613497002526499208142809908733843821204662554223097435668288896829173971782027966233112613251096343980991515783338818437472690832809883791940459469867615029397195618751734210643557276914545890606716387189552826077131444817375426609867759819273307094985322113527272260317993271463415136889148014104633768052482530700005366144619474813031822064451403708747709995604637391065860561163855810443559754061580672176629059814963554921499854342837517824748186160788572791349775314013610641780271507209442784212722355637838252400533497075325109447202499611407244629284059898497633569297094052091903284346005130651474093401451768663799057999863673142170579865864575664839086240346550113904381596258666672774751813388618729088917158370385773331552828269895615399131777502410666409904441677311776674315778954152537290536452225878741621004497260345103069678441714613420964095831629792310091407700368673373942565154978481342539231167594697091046429439977041081328457019271324564076250807034353856275478524280356083533555423437583826233306342040907742389617502350222385655668101916217292189737006389147224834681802551794457817557531944587415374947723892446830204524432960864648500459236427983082606908202977790772763331934540419872860903174511358673618115701380208353814625862770649280584411279511810696331279121239611122085785379908155168188493056063190425941362559441438886769108959630669023484919059288003525121454715180550573887052491995751975180687390580817593920129641253557893353548914521110329807700212349242405089265429862456707821232490789697975054661426934636998454002738725640705352108688696411869586664531017686070399512772149160925741411687104872370262130385190768336363811621894765067668776341259550100439315143311436692267954572614764211878172290366358892745780378605751741214516371133801854971640915849793883244428616988188585657578983692361335763361712394064939261894519531084653291653096028745881450427368260322649059296446657612860440553869697941386059326619159127393257877379785882178044649302284523299411749960179937939051604543392392672690894464521010138826385544841216410037219609023353710453764425604848172462546384532944025626289926041819876503388685949655426393713382846308665476740059733459476607761165988113738002104310718876518031706431531539181158064556945960780665026254023935239079205448304997083996464776491812201075225722085528570104714176292811368293013235940449569678523702157189851285525576723928223935602531475636115735480325088753525883462881329652402260426020649696583122141872549705991331277390426804336082543199904078531431862147271655851993975452938628881274827628269057283483786651751692712186782488344400137506667349097009284784020721326148375749158589835073436526328600501806506564991616219028932643206441946615063443954465307584493255917523680266007675778502481619318430317377161022487791347355969997203993601553012089929947357456812351795822130573527089777754102436267605880034186829560070891324870530978043137504260023767060376627299994771390659488857267108537279263260332458387847863248714352200803104327150567791161761249503192118204364654438427040630562283414112097182939862598803710004215967665809230120421912298938033991858340189111533178493131945611833412990041777464167102309273075795507274541958910473645474627138316779836920608868241075278967948816864823425888671827550471831273871122632170408573817692593144706560273150092119098496925331960214094045165221942250605699815632580175668124517206845535591554034663894361281975396910672229204844058224470878852072689466813996711464727232050763107994364107890480410889156295928887029207237288773371442050889501045796270295534309045411378340504020191405447392544248809758017821907470839663920067791363418415341378710266220776291606434630672795625825931834349909107490910774482591556069112953793200138536078864858189504228179007215714702206371697393697093404231929491497220300200346656568183912484818621050601001733963037823472509049707062087610046970825901367887048477902713943073240889839377236002607841588499516232792607237403337530459698482574972603161211836050374281079756375253320008690295194220221077458323695703700309960609544894562211324991424636924174440332386251918259761477379701298438626843688656639138522655002863590550913910402918103683985049745286272908447440344919900125577599334304736278833803877475245103327963200867716141680465687322556387425265530236698615005078216787571491028858066713249580891629892568803369008926373823885430136243248755722399932396559107616636757617630776884054550155054069287917941474191439847628851090454746188345061695840211392355802517537028889499199697660072805122552126440933127701801066526437959035463560171778058419833211940438636319009486950528788423769444545971717650952622130587985838352162658583576320397986562038108526156253084135415792797754661598746757959509141189887571088993256694639340274017122911040359404923482061448424745562608523130132690957880686242415100551318161511242883359473055075232986400770392810239791874514520998474834290306535468341292458514481072682018084772440260205375142455417355764380158578319384583787069759323550626221583439953322882967068393853114608534871479477110752405528641576201335726851606008912937385737170712381411380177725470952960976698685071954764778971503085478223079127879786861993601321630933203043925125001606544222958546794324941455785304122717418683521954465070026322096254761063439307857555735358373553696684521739187621632251113593622050349974614767403838787964791118274899618824100183214888608615863314282273328370361639708058839769229531492606369233814325945699184887316475413765754640344428827770384820302449755829918474371364813187814124397768169355262182508221579988296096258385903157254385609690169184159783965415634206894304844037381342343893542397958605973848516203539353459369698307287814443612323919947147561095594578026248587433884711627280066344180570399393327883282917745401593305352233756047293332460681783744365338642157856789794528673649610128122332127791802438347278028961753696515138233909425987272457708313500736897243083247461492704297740960934674575657271411174962382317291361849742018400880540766091963588143157479864908108897184295519105222148227695658412902784383730893097532677046035822256987567766240299076332136600920315535908281899137409657785120712661853734862540278072010571066997648735267564818559749078750288201692755705435716805245016702351023130157143902941768469741505770850173749595899801329907522636464909593073049882092484215392950062460492390577124876459338064375338856762917473119591617087525021346827772749313388848402255466206544228969833704512490677256030981294578447710097259043055887622155190987493693698991881301816307445979596031426162455268480926199629084829317356683044621705913223594248342403246971478415049022168281322816324307573666339228230314072850280185620463298505568815338982417450826448477423686426730420530644487119511208801514188175718129731684191888527701324555203734502905507868028414919080194711002049402782618127554814596393907154153699425044860800752010083541943486291835688212628812313961533941537417218347550787144211478174592372839878487080061516484544950334497454787006562156127780656737771084451129812171786545196093879295813503371261126617613818851836773048649071972360952984490435584372489602953400544257301620840361232699077323508573976652941700123108197737588656989794354791324902341264728939541914094666297685416141294075905667217433313574047557778270855497489692758400092147119158868920908441011222430002476664631163034324559407480166408504156928992070514067568909406494485492663913255694711349010153732482979307723108637772259325271622093932453071869835318127273787731940307094636838313048851625578044056487114083293796650663495462531159944275139051863490862441857721947524686318929091097223461812653249911169391314002160416834849304175493668377071462572115322657264775081613429653478561546436745457859483734705078267722827286368849823141855345357806140449819938294413795189943886736943411092377349537338590158622754792135372692653168590775758700511750333854459443907502387256252536854961245222038894492447997031280811547640722659417498214829077084648833118829172065647095009601362994496160515742355406042919989511852999906265109155321107620901103542166932571893150856355495348985712276248187518023280813701169508589310344579136264336923025725456149014938092994557076639142196743722688414829740727918330921396530545724572466128762920398440841663085006325450931082997806450593862103274435242285837190357994171441251577002491120575677198373682283473112384418072469264401597784498456412629308994036957320715380453648225282435808060488086508103324247969495304179438554681867194872438237145796627468480019710463244195966082306077964578386887187108882292222000300357755620739434106266536006292639626466686822217901596566088958439613392752581581826058931318164755907726448614659149810711943461946609041997576129230158538825316805795482932509889031160814135924071545454443661645186645336554522943525926131669909675025165508153275017424164779227376190583817367939317293046122508895622785978635806561420517606976375968312163011364439312770153436137397216763440490006749637750338147370011678021833296520004176468642528865334622355884364209381974701148034424412523415083539437349596780288424096140656287521740893475646455137716142861036248837884531210483407508748412760584040538842814283655336207621384101666794762461901267412571789546440577171766785505052179993273528394772475397143023177918706457007254343792345059176890554474898790386504657603672851120884079730273924817839776619388112073455636870473988489881560366944302592889985309419409217579014913348946195822160384370351239408411209609767609480382716408338749955660919769570086255935507102004621926834813635553111058476353805651099720105806067371269939949894498568597647564689743220297776204958277657175119980415564590519454372831546765096194331317212324592553684418536844294899666361481356480223480430485162429714566589404231473011393220260721310414854978468584253087625922657295073361013778892375159310902105323039298886973887911799272830700547345632243351287702323578542355097193328306194014356094766285909156249817629209638630261468281555104018189594188686845561451228302317244102015397951643408319565228169066125070712794472345421861829330532936043243394104504514014756452500852649204928314078692895432731818503206709514672326236214597981690738067639666122810453140884752449958549388067598819811776982200539057197514675765849442148047581845082757948508114457013374095201002324788562162145533359179891823041037197401250319318407995190300355728312838409072605502601030498516991123648795672058158612657319589897346239132994073564184034180135983853087146762262193235793208705498410435504328267498337939102285579649389157453601632329674228498381690503101219853999091684160101718738382937456859977813906928078329953756267582269733946316964605015132724254702552936779016341448567359469475209578296281044661645598492279669713344117059430511152230926155247637628769666234774133997221502507708950516006535836033287882470886750391831499186583232921432093796397815804263450796096449273076747247317929037986672130113310970788152259948408863615393765443455041599285292229118235827654651984385580161974079108885894094261794406384591561911356470222147482730472365616038483359325302061103774211971855947840580562963800577790635147241349182762810251184875280339354030081031792790891297883939430666871138518257174839140212762750172400144981701412866580014819988926800903715085049966156283622229724848876666560154801410772452385898212031661762801030872875564888971911643389050460017393606781952721877942912482920768417567837172106426850307519876101468206315994402469516108474422287917370377403329819376462936149547185842789232732640599297888712674404444148540134055705642530920478476302301328762551210098531023421713836270648256942030064546740306824560906735485435103603067355527780038048291646759236111760649435722615683399833934937441525746400089262782984333012724109161361636685554845578233880500015590404513560708110450175395396927930679873630714805527482551226931501900929495341388748155933869968593238144087378808166613268940513491898047870600563091266465225529059596518657250910968910040765039166738145605173257730195089560629986017944291649357485147715004275571302593935327062840767485395336516485572729057200136901919860110998407890329838111072688588533236965488539072893546296060251050397092357084980905541344780725145219154598715540207055976916570514812645358916759769125046917732991283555856651556074685082625254280351164186180918075052273917402156510300692409805100115811738030729660266127128549091403061238478042403484272081625655523098616901909705017287296734325233533078863956443982918040375491825916774326877188975236026412698970833335753118158870442227818363134107193766796789600710735119941781435145574292972548558091876800196475203500682903503789193443316258174571389827963371369118685193686612598627743364879198774771109669000349403589943610092698251517714123462720819017152227455955739539305763177545979746112474364528282505069341872129164392275384133018013171037744616499226901090595117664184287661495457428510070109070511943642482193006166486506012001742652792082983063191739485460672294097034764756502871032499826553248875254329431457629026502769386110869278659004299421057589416448029021054415521314913448295704225468252124463787456447479877421113895691188977162765013937281486178967326120763387975338942833675896883265565236556689698165678450177327249989713879365687811686669738335651622909330127583770035800370430275951095758378065192141792289301177702027958463966382884754923880925883491969741813929249220854894059082077462852500592791036774265201166172154956631757231244313749485391063799735005551996261498862675611535009787199244386617473052169099850753906992634073527099524366653235982314729330746748739785939506240624819275050098331290211427232037949050816755779213440521522204218664337372064086824363839037627281602520536661312397598286981613288732449733339238444067478376894736563592285835350987160161038989141862370296034397370440120998861982608039924829007435488110680197556101115663404257991797231508046731871795996456365974714451256664902166631531421339682475278604319894762100850561760745133159761090316803703342930125051032408443992672099782008234977669984807133485966018605071402538004060723940595392217515804955198869316350070450419057044521622523252462873047508629073612029655965097299639876122234380349501755538346560195334895751251619272917130923951385880071300672019622550018024412694888733448082325956871878529438130200731980360095160632342233078489033080124344195378702939372363158640449773521284403409871145707622267781365875610129774237368089861034059577130018766178347890261018427461394206905037951287798077398941386922780935748979126804815141638374423308832185720526380710875717745223876527392326896869727442247387841409668283868940986664846047036518005289053219028115987863721380887609284488487304615288957050298250815033753241636189118122829523176285021090673377440647606325512039933878931288775092559340339767369563505630473543387801508434191474519601195185896043046223873971192340198420929845745962165134922264978974703569127949672388825432890385133830600019141258714407135287248630000949929612398125635109177153254116341190020318713770846406605179496676658712200603399602556162220194730742351458911673706315638709082790296894589889105646989758940556859040719181579588255428616109057531855727376147583688549674495387307410696475987302853892436562834996458059905466021274711788452578484633259332209312968003350420960261893798770494192940810641818725461934990013480392196287206999436330720099639823753225773062403396063974216935288764565948468585574698452737823172697515651514175903337473198686548328540467690085520945439082992949374057044021108982435220732003375081981779956435194775954541354886996326823807223580627741841421393480915874155945544210298516123979549892887253757165846030960596617693547257962452051933356814321800389784365379665627915118968926695580282396661874294470990666909538307816376317324946690924881790270226631938103127782556913761853938827373148701334421137543777068906881183614426631248625847706866137086225399766832716355565736096021383610207540000104224963194418668938725050886391638530251132468761994320763707606264526321646485339366450701225369583854973792187910827319127214264366107773185592453004644931652530744366273909903600982787975912868783170493822124341660062522740903400969172053263204713001615810685848205376448228133276979528498654992529361128385182268010833654882511224894064906183165245680706928008847406907274498015699672582856448909805486110440159756802074093147151072247477035420687139270898526111617602491191828035978855152691606197376278708062138590630594059368124346009353217210846640470987925395848847878603911487215661914465839846529544699761656798514438832957679074139985630238345600919762364257745902846628518432331499246050381058022323158046796552005768007004210910675275748470591268445082963971849112278385893082642603972800558699372769139342654767756126873965583274682069834676955176525530170694830882736692349394203273710686964745001492949799940853755166992367961446976445815540060039491587727713154576219012196763916818946436133757251695876412453024034272087626314792225420839309054564376108249863342173558965452048578950231539095774777170176327806090377960990634780963133545635643262993225937756441171779913867238256453581680484235429553689589394811088856185247678573565661970881944067493151826390199433171600266717979670447820306695367854402281083482196185705082978623323894985908291691618996104970992437615419556015380069162340940724810862809345470193977680069836321768554751121041958317177014608054094774361445431687945094582396037807215656551624425711069136713316789359504588585952974935292437476880012305997381960709934387250099203599427760762179654274768960118162078004028002773831792576722488802286750860867407243120669107494919903533457175481191978527102284228038500937152388609558152055735330255709508217479659098307067346983248380825212686747871488435335727894331934207016714370207112590937858419146399813685468487844486548629442346977160896743918790741590382434447440800288754056995344932750043640975904361046003450311886472901139640326027494010232489284794177303430719865992742288778495047074599244679469741806779897685144782934214613639186452186614897272582283986002775564545673021428919844091344099002036115313597364925601702176403843626943069242547910229976941284215036954071366158308066263102773660558541401843381647123996751751142191273666258996483402184769688152581663359178285940528143364556126458073260795046090195431332074865239523250927447931577917625620034647436183621284410102513201363179178520768747113251340084718014609313905095576082887530727643489182548992604789678642517405544350885370525284371378434520021921056607150928502711901728725306705415933858881352024465461622687246962750387116569962322591118166791685866085354331963006137267891056285667482893611560338897677211064990450905814977898538562100038283243648525429133413389235946673290176427595144559192551111870324793298952000712302299783152715529478550304555058824285885016046938889914635974007970162166316226990685574312305546351667353006462061337346172819646079687151095848222368682607983438686251958692818839418610052313348914745203109579088842399612248519571538337554917787786627766049830427660199084387257411866281960558757831308250044374754933655436351527761123875240299625711796164346768635046913579501548871496852088083272057871281388794880168880118084947037756840078147771546992715670851567897301463188711217839521711097700290637774371257955527230657307208586512865715385540117095463072537772268890821217128329945189461688657747146903867907862506325648650622766591450358102255573393866583074691135477559716563673295508887966262677296672903068728806434072845141496333320797759302471036067610926711482057540493331126883542066623687053613280132096730458445165743919470659554905545186088644725390945020124308568473436412583347925858546372155360797380482782072615729324509411601775639712842073539771771643573289862202126894289665889062828851408223065397453078920413251233269452249601600750389239169087920346070697883237181042042300729491295947111774362955068429389355401387342816542760075891103130351873793181144864927650935088825078644792705972675344945894249653035946182103146705796593869385919940628010168431359606837958001010181385289558790856031221746064172392184624268601199335698823267477039480740620061202907625744125367274990490829139757889530888837187145268461455585754353806425421430983027259297293324405365888248161307742564347961049427432602686296217531679625754558790427221222165265146554130616240801944683812124272860007347388656224797122861059455137549398031412950080416035907467503698406957725456004116811476615549515349647019112388129529283321450091257891122666766649866990061669806199405220044681865743204685705383433043074838732295217639457810153198911568634996044758136072614997368937285172814286556391707163094320232986487444442811261848292579079678558233958476428598015888771859729649501159200295944691423461896274271746309808743212356327223177825016461196112408896734407040880026316927100938601287858965991745723863684452167027351490611561077428270945625681586681750864758675286562558384017062170466002661266510344758631064124110089177908222787841484439978545099587522621060012036765301337732731583567404277852512234304179713478467510724762751509235565154250905298407978429418307205743141745555669255851495986032851423557339496561484411705699578414447511689183223756402817122389765232674462856148621225931283754379263767924522235286206785708934501290146975075515078820621221684346444495365125400707060851309091298446723894958178914199258845865304496410340641351063789729322616709412385106902243415176661872218399606698442418896503281046165661707518414107095389756287745317587132066870271424169817000378333443668397488292880860580330130303949855309716713150031842819092684337905672941645270897242856994005142835754628285568842520136425333097021907541584502845451455231503246108606153032937353043672797946676908917634693122411668709693447201428981879715867733457613641404852012173933691595087221081268215221246394817847545068723962802402810104545704365966848985963718639284898198058915597068063954689666672055670355701201757572161293707306880838937863119342113322070741664453086722096156647113004815429144852497941586518893373685583964405501842413852942990302651521395744510213942082666218889463395193061174657337325433228457142329446943774987784288438286077584468458895934289096883589603548217957780830667189000868915816523068881999586793358694356192857213223305304349401586420780996477178407948291240023350725018458746053653988118318564634309591967947164592887852918252244549639843469473457328646082200855709186421530863774976514880793344361839808951523508365913640462675438604118103213631018454623700537349278232798243106729786378172448789740188895157175924282410042250900185815212874054189973199343090617410708275383999452446756955084700573923513797123664574574546828857461405563397402562131770569533272198239387830925659532644983426553173508415746235573028718096940003192811032349273343614936868706621878362595148301208865014057803763586833383701076523604743789561687567474142343581640757397331669816017311400932550886464609777178572173150144117745542906577380243218699991862143213133698546252386463403113124433193875501787832229177472750379151792218395425462744230369696151105551739205109138994548662648325188956062349568134124001657664546621616378036136463529458330074052464720077303322889417825707895846700884330509799757611668405661646151235646247840125653124315479908748759160478846516457981151042450042731575523964164073479958809803103209786290224094035598941544868375145742866964454618588438253853730929150300603300268873986410125601662400518215488878561489861830460630486630238064971071801229446295949231437004621260970741051326429806032011887570796209977359133491427366275436003414036018671680127961717406126606971314235195810312682089397404075172637562312410601654292324857105647438929491751853940563998985801640978363811722422167029515319432790751672643684862112657261387074280007511748064368907232935784980237139577712592152983364838494545303517847999766963814250089289137637807768045385428529005270605428501225363421325301615738922228031987495065998608704683734088005779846849516577152920540740380196109222478544289212410405577513202651685107137593117682929948756918609071838817274250162289433577345495399177001153252914978301117334439425219523808925858182827957333491679164586140225756667056284294141071527546881959267416383365588902329576694447991471739497030858923538403678299318467067463660745397021767582686583630792730613394701558444633565309753516196730368145827477978047346633395041931138991012798754146959598089001331266649181090292279827784350758421664506014870312966641489535660681981335007995221422983675454246994660657649877124731483416934667968218930158224856057048552516754623412175008299081325342581317204006388628301916313291138372786836333209313031428692430412163552378205168940547040988136256912729429285249157333793959212977144677359657508061464868114935941114504611590731930338160923213127093037661893823224654341623035138898619087829152473384201349930544004333616236848714416405653878062707486658779514660060750960037349749028713194790186754085200751846785782641680572585808127291529612569589018822527800334440852940554539522257550304915607794721346740407357805078523542074590890671501212177333730566560755823282670401673676382622467792982864087373205735623703654187332263223322507466163735125360814880820269859239552433265072008747581747256506990788594557067629294685436177913323397736552174231776954927874898014838440200570324219490534350463140293127746201306563816758292053935654395417147541715672870456624763478515342310530677599045153866322243832007914418935175408660073740611635958271657564785168252353741898596503693463468795682757268516117393206902708043255681688282679064259696625751826731845590171897201739203310448294187244281439439643046286176645056366287389109833913797499355007072619247446768837546777074531890592387300611545315615807944518604058291600743630192986167481924104270036435957896629001275602951205184421042994728436425826865023537169233499032049176696063407995415242162424090369748370992757202680874443498909431259854396697117759367182097288477261830815233744581866992528732507994039396286427280132525523614975148227841908610982295500415423944102274517834091680375673734910741317567192886919119097673532497908008937796749610720066041984818410048407291602635443236177272193311411051732966552919218589300038438660348459897252932864461041795750314986212825241659253019648645349861654229815189002611041776864637061103766236649276183082972300895592531706933477645048800339587368701218516570127858919836637018866540507413123801348021576402673047718073282717193237875666247179335171964924057142383707611460022535424292699765863880577051356116718188329082558999342923899156555994444741710471389142190273840870829898772081747849293196496230258560019838969132643877704224830418526119051360052546466521791276332514163157703997989256157408740831601826600527134790257616887620108934723298470220846238691194729786871569167729775407130990653642959789509659736260248445335052883389597838247647607813003059985204088021059715913201306650498861211030216067311346897676732456750119934405974591731055410536023501702954361776760943413547141508364253940715038038766232149222127040441298060765304226076683791867286422710762797108439049179140361927750210843771634028814716850327635117610298791711380336104364847314288887695506187155269673326117451679158810762952938116004130053490200162513733295491784041833900221997704230007896485724101655217597896326097963925587100734615996476161676991763354383689908663287053534301733756588467036982986220186994849913635441931249764295536341908947896619315326102765402303627588953215408794764755583341027211641714023334042629033926844894331493921363012453300250785636522394054335470022990863140269853574909282831188516725937102334047892225932142154892951781850546286000844119135901247617258461537393790137556206194250886441354168297631478894462753361934737754233877373385334442237416103111019304080436234428014931862207254430580320300909868058148131521969391697867745402183054767608400134107793532999114425606287136669607466156241568321561506838748080766454333218490555847667942106456165140949182294188815771953577701038938416361388640873235245343760266574174061666117247761919101000291066812675811013386038662268775821197515656468262841360929646442196960312632185929318779053110586324380373681573442980620136608620607394261551327585839150718528444346277539319108736456960108405254568202106600057632365889720747908507456262009111101023106193004250212130808959178960105020481498764051671059817690943842784721823573430881320911866871770254293348491364786251721787971920386736093684720229711617701531274074498798898409161312347979795508793526016895221852705429783954129356564981631965632539670581821037591156042132983178084642726890388489053855372892527371780446544909411535006556426180178081866783629468826963170657378552436980989503177185718934796013431948388229681925517343951636544580646338830661325426274366126285719721931225982241647782966473309678410788911448486446339769287774054133255020730104196691524751555876243691240972899122154783510121955456380992318224254264742290612564789989818798681489997797927623205659913181555020431249080698366849031524399862875989516259041563057063453525383056318699079439569217981468027117873121036490139409005010782089053927822134884243503061718781808094045825552476774868591083574227226514899245952417161791443450743716089759297404647552959448241767021813602699715188695585107097674809489599710948218385419157188512855581867805120515856446630123846773158160953212340341421883385520690781857058968958189677772706331057190839246005575591680893866660900342145564294819900493097935375838367447574780618841223068645644092612836165892699012769325758161466076423317630783230413638426876791319079735871684549264906178449062609336814737557301690768323785268727223885820845772731920300436447377880303409420133191357645881633420786592222833572396317207541544705408431557400316506960505760561764231153565943212084842587764959677615839706470282868787091490343415854562055635816915229953696601808904038038942380806015388624081636642864807171540060457330261922646888610811356019777115579248203554340439816444746013399667875136804411060660106181148721548339208378106623753187427326858066470176717503852438264793731471020360239997237218152112729424019078365557061162400034902897717549538967491781237483056682398081962234838469542205259164255548622911487266515921385640708555169309204053138904373422315307626506620552792497526981340909598001911994727952279268711518118018158146440077725926115577824246753499352758681664287471890584257288218684827890842036839136916251636582599179663321171349215653665370177636730653704772010018904320482714832682811360047570425851368821610627799887020738652260485572813402821367394048334068470395356802358837613094680167620253580253509606872634295747299252932833872053597203188080509245795883479797321464345277863718017432636829806170270651703677175488373205873807659112973379006147236269965789375008003449044554033529643553725358265532073835182882464344653479905477004992919613197498023280966838161921840194876409218879907690222193532216544324122747337283604219450886741273612535342132363321601005694243968258826609557092687173037323032879105152305127067887713737508016160690037786950435076252867757323156341467513980148944812672690449230240654883900055296771407017589557342528090718776493200526866632029966081135290269863582288690504513439720017361380343333481446393592531983208199483187036059033747002455503361811032346683509386632386502558031819111290666036187018087553545493197114782963391351899687923608519468361251325032065291846283313317584270928913030300758581851951531563814934302304110761404034311610979694544560915511925694450810851573536317481200652619305355669867307312265447041489931345808986416568158052750681165311565160036219650230900936745901526292467524209738159969489414846594994129738845076891453859126908208674014028625792946075089464839751067529445719535868410212222701180066875324919454361289732973568273461547448498740957919286115384165940632201929184980964273373794730489453445717804479019649952268164470871421603938312864908196750729973934367324308353430252905762140808705998857687829311115762379603848223409495697194831325216526573775197969944218028522694420052314216903070522619025730875433977735267823925664426012258287475235337234702624120694334499673380526842042361762207147705738971569198505870441512829589320416434097515857168389920051261991786618345676685738387680106811962763457058379981739070476030118577278573248536860147831510267312608577706476351297798735417637280956956931775896610340562775208399801151909572819750651703973777822405253562271360652583121934859820705129529956221088989610125315986185339846539018114260549190152913933528156988305166203341051637846606449696514318166162952979323598442298635312665049266025096419617456985511029100862173801740487251767642440306600540695952879413394017815935771679049070596789473860649436232843260511005932674945331448750351844905049355195267767742622647115162801584696499013098202109214356829482243227661220257979906789870480608561384510140512975483868900156651056970150632601339118197015908918609569349450437813258028010437634488208864474081234821622548146003852923602421182858956449127297912318902092524790535338802279024121287705445202459484178534702984312532121229733934945949295590500602896745281012227576747884218092343853536229625445786370777462290625503414170346365222405909764716513415940835915425698006267417774030319219300498038357179598940554574905661165301610037842039619093041980380982531567805767694496185973511427612972086303260272099900586753070575629877344978186151018844847847533499077971537154133343718208996636675946535639772378209779483422126667539147405226968331033125300152413900109351228364725245490104409856044617767229541761086433185657320661818342757444490466876283446009310789069665018769064326649501136566295861458788090257329496213979812483150312727722978959341191753585377876024882985566035498562563859267275076789668138323886538315094586900071416586134180054418384018832279433609813254677806062968056538057306775284992839955936782700773133837312893843352387174612079717409874452038911547030402007661341293496368185395612445210924184809374726020381843421221783331775054022213689604110916695296965031293048549199514622261124990884712094491152012929270068961942331054628019394751182978439155307637113655165798308037311100475068148055543651157707962695150226113418359354714446872489850187021172464055269392333214479975511260611260678352589582539068172276985387549414711668429187757146208645090241694437167244982261510419866057959212787234385053226855527099591810846476043768945829515167350299601924083156742215297544842841095321069088503512381479710256892495853353442639750643048631678612417047107659771261444427026292433763783650218487948604747171021041060961029637187381370055131008523594978163854722660689706577975854795252070135549275577040140525154794386751942431490017586423479217542156019271082807300232600165661645019507376290871333301377869176242697852655126810026909540874583634790815285498628202638455008333571392251479511293925926228037968683147155664245037709746888206735235370152589825961892082927946112358459343117562661621773878064226051509992365895104289138184976828255492680847065610514835480794135622733073907082016560518202556114189129294057196032578810522644682835349780283697709995216243324020965483172974672530569912436171412688922804572233734087571962391845125869730988530908590556988897318324398218595860262655719761859936304280697048078354745168332575653703693705526082978356874927860647896753327905559181700214807057192883451620764186288344386009473749173734006346875568644668664601933773045806410431562912528350343832940035613354364471476202012752287840139738488991284570933289053863565555606945405876736444201789342253916861734919812722143735948596089524112839680483169961348683816460342770197515961579342518852870160587332354764645166520173210566724784924118207086313962249682142675380768040420684724656097303114442481719161400811265187928985818849051562606919658152946214494311747779519594879527945144465192636636238963159422791706024028290952930325660035202013932030482190728295549276770191241528299908958992518874048759068815759855160365095375290613130662808204862753959327519884455079996082272424915691080343327052397308384169737167762535561178042705772600962239279517293727122457758298347160143447580850771259612933285374081497584397653255265440249314742766263670663133487228874675580026727107783420022034505918308360363560834212569131196557418362640826462368866334078362774922643379188056264986240739678466948156652874736696492998145403467620312427981929139676531957965082091311155436362584852848422884714221851791855488122162212546674519064046157132127986213510759681002375292648650323970110568236464207993091508433500347674265511053569271455685259539694525005100487542318307704741039307654717879088972702334940696756198505647743164128114362778081154712592610195287098168969599086698388955000831373614045496609103714329152414182072776844257421303799288390727337565639087623817062638584196027454402994759773330631030010541291371526359457970722768275988880372845863600489097907657342963721791211470238797837306009361451364634920313634341154650726588840406790539702135924123726831446628356266588773930630422060061293814463158324178177231000011046682248639606245861900440329831931037794373224082664573842309652543441763353473272145748876594168674479629739291256872084820716119010153416380712556225628990307376275429856467366844865835587131894476252155501612875438999202647862218574674290891115205308918516816301228743110549609023403395841394098392149126103668482109859736039260283030278528817645469043197978881452287379598562786659556801206021965489574145709849544856636145607807886561853552122748639273450163431348176778502062502981109992669137160323629019646005096517912457567372631745498162770706852213025691008854716233079751158773843543028850361572103710823743333660857889995183973088194692448661885190637440710189982436374550462953704424553899113293261790960348191833591666415666214888763529592048584840126170831689084895983047924331011756702018776426647367845387588611793614372029170965526355817112491388093940225423376945308204155553586647216721880813851358603782781762460228290867277416325876132765115160018094418484637889995508263141936160814525089012055164432569275981909411543737634360612164594193711294348082957387509186248823143415800966371558114115163183583484562288114103428521584508655021210457985620489233621839463108267807417446312734853623375138630905286967395560078263914487317893843952496282217221584920557841554436386010863094201738636949329083258586325228159875286394305388604324602847606005346120206254229451069027346795351681533235876535814990873744517561701461857726833748033098933153593090512981829266985340661374305941030755599110909930955745178851363881289886934842010234327068623906516966101827971499532414095925056047358166422808454534189249528438863641458922236405330340610105764516823418806277706485259599065389983354497580689045063180749818896116125290944406141863819552828270040724423058598860680102149319005559454274510189333922467104010102420937510712466975597967678635746873170907495789959297247248570320160501207274628385584903498915580977995920647952596291200111336816761080770382369216219578991345965253061391010490004146518055048603279221411797654612285515272565462226414364413952317678668934237975099138266100805140227704797784242915920574008928882558670869647938675805841545946461939349167864420794802018146284421514920661318746416138223128275925541217540728846009204606479164172741738710250302040387545121110044562145832508474836945636404456717205827888634033502259104427831097777553347528864127996931709373011229120205208684072333073412592126605137168393654453282299419199083298254416090493915630304446264914848593241148395768224715819058814350149387150227208127024831170053155158550913612014015996476113855126831372015102360125012354871025616315228392022695787329471104632640483544893875571755402203495438319018815150530484284633597880069751639361681457056632516986404854196618079627467532140322169482965001549154557321189088306322873866477972298039071983376959393266365667359054847256972963000056643228456756343303990243906662142537140666299756288467252756912796240344756243459771167519038713541633021852426030692580105606502812177127081069673267999697334615485822337851253995142853980463120908359672621173366971705785474631132972527874579477651895138358408236388603501758985615911173554588208022993894357194271493033324526170150021638720872003010956648212667796952121086391002729771475664500995956896702516513674516591094590368476966311430037578863054157887442436069176795117759754304276637833533908007281535146948083935740593804577365394932273047664771391636748618245468710278351495304258719426871127503477400155740523557531629911110571963891139659974991828137527708986976902331260715086263479527803692866557783088404135349817879317180901352115000239479690268051226017103280573796725951708055619819631313071184004292621818434173804733757112324889700247167944419998111386013949756022562451221765916468258034069661907000461335059937946220216288160853983065765513122299036576422951955589962897119699544694823854731882717436116923219336804482422756756341497763238081826246850983357428578850449820129069917153015669272674153032576121941314456195891564832934885551519884004056298229362583820410387652080779962793674528962436438431667265288040193786788648000069137623458452013457455103244280466558051405961718488585374305494761491647035972048029270789947286474069507945121735392545296707213058859954438388310512631468141787224075100250893350561583437338698774448262997822341302878494946206497580545213655110470617013016181732528053216541531160665791349017028493024932487863157387257061756427122309481260529363107983654988494823846410466474199434230230722426979062640191503750006703705936767260401013793084271346464478225282200141134223679001589124708372061114597734773742109156618940317139207213639417672800452692510116368565809196848609549285958394357485400850951543814585799909781776944441476995027959909586265193424398650290813955628818781789374352280871608024730315648952526634302492075789438569123464915629959127216197669363325840637155089052764125120757659408657311050241410783288751938565767844230507767480410894478138682229637610948680740618089514967265766054227435173937528931770099122544089814805577949097772737250746559342033255953346225325548898990089097699220905398179370623685011291703228174070289095256444267363132066192148054488472812820988080395308680685433830114512105494595318373033621304294036069019088198087579088496600727361521791135087337524348666950584284200101571492619342327968366887957304743268264440418422118396866098020173596281657611891800481993164889452711077970814110649669079690284529352483643694266743007570888471845513312629086804691385358975817611054049248110553270153780007881840442220935969988566680717661480098075725407627833843114811546367140257209855229888063669550747904577352095382647539195708025280292271947465572433560489114645080392441064554107367524591298564775118561522849172209478124588668147645751675253210235066262964593642922486024650779046080935375633548865890343734726442428109157774263752888363222010391397201869770753160034974474362523194093746227437957771868639653644939196992841370497795104664519034485753242379390934321142173568974969872658278656563974823975272417975680617390823990211254226471912517005983066106955815864298303494213398144747965415044719702133153458367136427995791014467117276487905473606873184779241406807012760276186744804193818295876191939773201107252811470136416751103552740690473318063591132118940527530805583345217089959247145944920278350519765921757145456912623174338266092420653718088892335972062393497894743088431018379043000412546341120684404503232317393436517796949951068701475811890387945501612971245995088984578787682543347324141420487788278950687763436769558174859584839126042246375147085894096204362160627851031478642318797890985169422324592540427444445032874921709640097136753245361828581678997632079382519084923924214357204744982278499000258855888031248919494237360382727478073778912654819074408619979309645268773066389826584488432032747390627788919147452864782346085673965824729506791132636904014063670173977356669964743778722527863250890612044140824097936191527895030013653291609193938371388556127685746667380385016568080254169739289443114301683797358936969901910258191687217231594408995083183854893448588138707006802842845919268219740035816095644900387867122671952707755572780713126779262161224104019242340604401931180472992152462018556427592845319108065830944256487559130348524986084031947130153086241585444742687040299841971757652021687844539323340339098385063819183044076950074911666225163514441838677815753624501995468394884887040466035838870035788935694678879081547688898141766885644412094634834103251316247583267029542120739379507110428656442684904461375860307798376070861996438627370525522853317856564770607481063478669215492066620569727227837248159707818787116442143699927888849293669208467428584539224294350929278347497725390093383788539165885565038847726130832163202243267756871852389703755532021960519760467906119459841664833580645305716726551697252701978406760306484364446285491885600121538998404277609757891862532643131735090341359598460508129989850108361648948703983581366937804339417421270966576374156331906313148807273668313457913262515977759616824403791987589547449844180174507872363743627166825317522825376202899273597483155208086074100706123065690840276441966913742260022653258116551219549139084269296807669721796464498872813616506997536082350627161457647984666427789822050618673681859197303391199136336776102918586877928434270316205799784358601738960775276046878307620133325792449456300890952012675488201335307564197071345679243434202958914407355883042835876314973939718472269207550157639498941265163091055509160656892704053501300478551850609977615397797701161488331780561942363841234215431478220372065194739312537665652095045365206208691065839192615474700351796913248146042717813791447446701509920316181882481418298720809181540151562940960030361512802677111596211848765683018618884185193381794128665840636215630004711691700237079097970706055412063491290682202155007858741238143150831176685250184063302309543869859075073175145996023387005521505476128444302290228171876749634046353512715514287280179580610605656395281376785728136116507324233010322541448836737333833654165422603891811697803896819066361003449594217008035870971410699246241266686462207933061798983097809573295601656357496590862097231532273163638751207844248007489804290909424948299927738728718081878377374318345753138298400575178129195654496438815415728094780622359179024639097087157829389451678370525494785556197661992998895681779624765198473836278020177929923320917224594737064294958686056975413705065745019266761177489147533268717350231495455497848454437435048227877901721322561071705269548621904382522339100982096870280889325537449155992235755360889685765978474466106289586760978393233250617246306248524476260365179526519902141913288471904079381624091211646362654659125889834175365063093812909700960779694767175384465484685231819558699923364538354973235209249338606641417397581182203107798119134587496650763839198314728571625525049639031451677555206324620871637556028134330736528994089512253837836908217113946976653254131985427561034041244992370997029147686628117425781754303066178128894245052550435886849122942952694587526451426953710729157503984763321502833780751713774937729015682925945813759354370072136200451962688852664073069101963734448525587223964708671146787293974183653602561584924698919628373494337308525469051472349487737214854707041777623547658352169522302521443620826392399360148128384048396123332258714308707366828009811274978244406243237395375480983850140671922349495284375349787323467845287764244584962527069726317842700794568834669410007715726974655232602848759534852182033776788362266168909673840882565085523585062312515079591135082251847334907475104023604222768213195632278640457614114372727447100776039426478754563280939375274264023559316537456054613568415486160775191847382443552578048868945081674835095334612264141901864481386233073544428895700395715693773484057931841347041159009205110694931582333429442427821017833082052419996743924259507591767449245816355283115529332420144762810006794944354213748791918573211534450449679763287367152461491946594367009578791647128323219364865222724295895071158789504446811456696630808308893913352612474986630995744593502121344974880685179371018977311394360345910269853574865513917800025374012601935521049549396373130610503915399474626779300771718402271412865886299721340918156575263809708609141962027398400602817473174147874812689912817710690533523864686740931058923423741815268518503586969080183129538705394571136234118799224910284938285601847972886576469041662335609189017322943611531921321107724079392547297578008705315780708741233254990212148304371912712370931476738534519783947610195993501900430943840811322173093505198727949049877743384201383257708119950136506688667911713318953844831769035324763570330001997736730593611970162419309360498055279312451078538993608365230866071194298859317716689586823601921633470176833488406364221197161320724880481627347187447596744812592689132077595252694068089813521990989554644602799338466348386885385624702478750325037795049285043645484418198884734786083562453932876438353891667000461180413968809252365642179222046864472572714349625828568357702469887787666907716894375567521145212964658433465576044483535825799829034768421893299104215763701569765433210767624037459222664183662995590479749678515956510419018698494955227367970206784235974092715041861917207301419754218148790444889221201954651148566496643197149200340973494674153699131997469314573827145059815086376360844955988519992890372037253021377926562034675921175429572160568485517527309461450500029417009505544399261615928085752900879829312487805333500223997602839098861862609926270509415565121743453992167169562879848911367751495070629351685146704608826794743269723375919939765284823559924147024514520477328402593467543844644319118748790264243769817970872087304962013046927013623944819885062700782993568139165526764650135600534463834799089064936623941173976286619952154846849652766872288012240799453261224520501031996917351471438039486973333193651583626819308752471748150304738124537072363997110835308023822293114129434445098053870726807293944237954057437295347013924829648442152112023658328843491961310830311208627273098362056456145128889125857441283696816411401069932650503209813264034870741339642519778954312461187637602217526160391637711663921052413982660069634546862911200645058567948196851331052714849936428552228306174381030417896816373753657027618238220912766963633677848016011363835377447782813931834787401705886354475080362364904112623144778877100960938460037952562426897240889373374946967978898579162376199151003265218599533167927933459570197949487660622696830230954531456868029216894628548375807829986836058983674536682616535142810864574320585167122815447221852705627985121425467844150985177331582282114136107985918678226088033457799066342176604988561821805674127176893382654858487009044176208264602174005211540180501957820580220521806353855303569412537943071492751327021687457588705508253515487225243347144482119589755544634888482140280891494605003213016566029879113249521819657472979686996916164329700995367303572069897154156864432615202154216131797810205196899744011553903702353742605128246621766929592445059222653869006867720841032511638008863635697733028658806297171631051572890726215138420747729713251907740705634686655839921290213205381920994941542523045483621795248706283261485745485495936086008651005843988976902083550260171941609500812671443455040970476197861033588254953128680629749904239141342718188094681067494066550010353228035220273098967829108934979749698493760992071540622685440904528221650040391267609655529578496644557110929387473248923713586402195941106790132893994238150055454847436208667250646128647900524721713203019703475169445075835023688789449388514368998183923708965661679535096025604064008035934176659157586731772745800302908176022792473725328038688503745155223376455511384856968187457684843654368766981703220165651097704992236848181112774370145121118332186188095118686878878093597209389708727784772520805672925599415015698968165283038673314653688086840280896935679907293700406016817082250227353771447556664493946819720762480481066892472796628314790465461119157483762029868240642408237910561166827063071212772068671015924781693749403645965206983515190815947405333748635759059708271957859648002331931570800283928318137673006868942606877622989279493094292851748367831371931781418165536599019901600831564752441178424571954087276126083744238550914429598870070726809656736726799804126350177116195279058269156624547499416241870149384193290209246039667019523379832479740143733371575412777370728614656073002899543592095075885564123601632967863520474742132754075117535075744593814862766345343711809692830827628639677521578921937010055999724384594177039593167485774671965800896576187655592333735551165487753073716827069415677143025584331368880927662810179338450079222344557413871369124333076260048503738359421654775647995622892181147424935842545629591287958211772858361924606112763049921888063575386524915705677637680442914397954658729746986184168123545773561246783614210085276416853255991088726631749218839329002577719786500651566641767260732894498461895078927276317429528409596321455944946679159379891543037159421740490599693918032324163188994177926607709095152970976911091438257149762651545833578917114125555174697163907766454150822161889594749635050702072500021976192339619089925001488950233462792622906483218019721890931228251182732788699943395877572381917199559865826506107265603242960690002361765021493136612127542919369266240042469645816323060573774730971602163800502131865147250821868775620493759855434811077504574141080550237814900662005083551372552591730954408358709154603905452170970519373721742837353772991567304240494701914729757531920958679518375276944658894639228665947505612271899055472060772023729669805024389438028836926242817570183854711540637081937631237466493261837851556277136371031341238126943466744451861308649999192525451027444419519122113328189801377314186414949124130772161711318852149591429804525826755657485009690052727242413770317033934051605316315037932770030281846942765464803277401706158098123251752349234785837152827166581892710357816075360995535857064936097873576715406195865136247976978268775825450109233074765266863608748203896109318133573369267014575939489168989091482989748587220273273910452145281551087716899686774604943900932532889790385831935507380505274776409919676666476303072738585913562731176741891299492676599068360521353062020249770869374091985466200915308761995476245626677096297427491588100316699477847775705420029849107315766104492005349304851556428382587750816500676199644959242263502231087941730633618705403268765222410206885558382373286464497754202657106166450275293357964324629456880615645757952825331153922873263337314549639905877783019495355709297190921846798764441019316271831363283601928603302089251793373892230944492409320403040208951519465526181458358660559320058412645960106784567677826967748455415812258622300098489719412799291746570293635872375203525734204369261851741405465623555474902547773779511735689604947036387635326063503103022690983282243860383554446575382635605460308755736956308124779141338084282230088890155596783433707217640524539380109203161001507189849686869119043764951208892366267158816821629182759165740307909058260139968507372181012455458654201472925613958207565855570631923967860737390604050937296756405013495462192301798588076067797080562360760746855784678204544392169860170300760084268296027004535162471177634461356521272719956421121000804601662876193573472916389952844446903542210053830757963107537687405086017743539672019619968659505464227842449592071124871095795046000640629975776180887941462028909291126706745927897945132392331688400392119372602387013056915606863786086139496948836286416890281675010626300085540879126913877165464506903686922957689957095657307226143955523519170996529225548329820119520512804806805589521448587865437634255030582123097999799981903676559525753708721231393281071442110217128246320049548627523748124016494530368904579297093207716705548322981839316284464580045907351385182990962586424080556065652370883197292672829297140275581993218062471429341476587568907893372999579161494289931487858330211096980656235890383171235189640386226696924717462451775660418610661893659776347910774487258101496469503199997566225313374717259296204832517161224224190433043035133976894881184544122169632123490005898341377448032092082161055947734738185149057303313865146826776147239643770344592790870279314333633342567594800719969611018937011743866483671454116887461848625366376334575426318809009138838954422352787072330983576314574789955931085659854826570717992566398063222622481071043652117458698701050692624924185611173436313792749309190808491216363942162478174435357079736675813651695907165223224852836730626458630263289278947455743576164007991906974398761505922498055427248321764593960944958730208892237213999098571324840853267859696710739135206432550502798908479017415717302429919275487733329772042159680249305200481695296063304433054797015135551855918249736096171295156405523126312303895742205866522529464609528592063634954875406604619355924682409620593347721957843837927435429480881524492461150471644358352933756489248802778984999340719956483645303701358083266957000875087143634168367249490410150526717845706549967955137427275575259983019177051510120985191114834233431603711320540934953120677386352418320161038794766092195569716418734362210998596649922087391866802586216503249586195145023514535287344868869554194179829182129347744859691016276080029433962283275365850127244218922199516393396347529232601604597991002372108580355676157065736818233421455834065205039143018763693138744830749911266850422155968870486429169445125808819475569043414475304516183786553536092125771739155259522603155991284159679435501273576510142970488802207925633397171232984193443343052983227804228801447952095433883400505934202224189708612810455126409389514832917560572942210233524996743131630192743946110763234495660074901262041565484899348226482909061230679169799626090099946216594253369857382310479545070347047860669449110411030694795323935651501289766185369056561087332599753110230076043149491655241204481053605896737405004581939208914931226287693818886657997147963383367267199625159991641758554850164874891756473055520293352547836328085626842642511599213016291578927288363820545190083528843510583880476335841790854196446482168635707343402929468850773643262105897256729251996605364327649317048689511293830466963051969857743211022374150607144948225302699080999293198288610461393110670035106005046922555969464888586516428678209071476544424217155080503593571019777160113051408912874231028984633429999421926703181981676296875232533635902887546091588631716322793276354454820720004304692916622475510369308614974018779458989243003430224422686395418281391517031285088981305943574067716201412498154903256720002867683648165166305117543651739991418224082384094932690883617842414907514367911664571465067379313368586508320228775165208602943110169544049038044248608660752875307701926909670191410304160552315478063812158108733862303398674437081553675265141720465931014722110343882795199592511482795448755436674528066834431967727933392127219555721285193454285728396571968775212217901078514203503618749570244081304964031766284175169950964300634679988935030596624888597678966991437313667199476381284005445440331462725734650667577831690154620797611626078305957971597209901259711526757856747230765524363067845486268415283682865078053304524337738875303558397118456042210286214148908405566660526846802791496179934917839396469691386403462099122194378013689940850654925701420923910602857440462578425421902972544147355532488244113259569394836009789082181482139147998515789066070201163129435217184985778431224203866292552600250407222865583228285318526137725965157941697720047043845462663490325028379159660710942660481346409934290981096523277694009525346157605846133478967685439128346218542678193678413066349381860068639588003487182857376284253926156151070997639459686943711526351211058259702045836512015566172051101457851505796644557665534426820306612869834173248405741621595701993897524718148732195754098640988363972542585210321470255912625672770439689784956074364808097340214792045788921597299617911546847399506820356484272629592054820308800795306667903983304412451831998451239803596925044788076077569268666075333380890992588142247388851090967820923238101783710669289649286989099152954590798894375939823913644545424785003985752723851860856191623975139955318111277237102872169385568472691765231581674466643424944701425502875735705186305174565555377945803087992345859384789235965627001555901165966278766336418544277015802351470018363057734324275930829806703126886165199828713818025937366172146194783145252686778247931866608062134784078250290404860292169038979029418807385398672640182692268949269113634604361826496198201564723101533227856996975626164182422807970583733385932709894055857825302012284901645305409498224310498353482044554241030804746216748803162144079905147333818423226105076794684659613232985395213131850262076164691103813853976476824629883929182105052419964255075836099962078258150538309191827305289594227439189466773771494772908168623355512342692344278675462916559814886777766636062086899536586133091605541082833244438646878148550006109059991405462656244279468821150649147947219097496227601662640377804102580509986284740853896704883382602496008141716831624639791352059127165005985968222213053483099876497416081923348896455317175784306359954518163414017108997394130028838137937886214782741363019463790572233253265072030427060676577237223655481823818507734929912299125241900359080990649150299844258071215891036815810871197511359375120293703829656135444686867494605570401874045313324336539286182497397930417139574190273891610714216378956855064149938590976008727824100399018809650948073444538115613076812006553523495513166806276459173017304907707550985099079644671505980771330055501145542477924309472122270836249596825721975104729170182966548470530529191756115480354763536187479631126821435806801359366368792717491661913081717420088609882906184833083088301477353505530129739508431663359613417589696142183959189942473682181802628001911333529487005013711590641906297149644288546616045882789894233051632932815599094955121140284184372862128819837319251101174807867205203371918964496044846177077913425619191710418778867766506042846746552895452716507420598846305782047485799035150245151250328223272923292503464552559338018177378574303877013486761214753404452697655908806016524353550255254619876179100950030591008595834769713353501659872197652613681744350896132682824430875750678718170925387267241890096110319669096678538624671258359687571945764336652230030783328552112691028051873870374096766934839652627152393391664567347752552611050417360566822083245463157103626369973078319514881457196562624471749197880526062639838358339504844740726567942896445402460736943894715703559739427619376174125538671370976985624249654283297723387258562198551285926785713401296538144057293083691591762126324480428463150468062467038838795711094189144166633519748740293393127217474426734959380991104056713579943947586835260166970733453300801277028703571622268409687090575838541750829313972108205348269683084524039748527405968274949205057892159630942379532641770331403216665200160794116090131636886860624795962849836449576994333501746660633912362694386175251218936906791090562736730116527980502689863925646292775915096655985035881947222945270947280137991845325011647227232062036697483840212291644406914766774683316261897360138183333903697248980884951061333572811944370546365161334496206996038456609947681221143682248226481640011183627984494285213442466897522051710609824188147445693265107012774976166370516333654725951111265627454618307980120074805485372010929595516427951278910098294085460412053263923777307115444041186696086701095113171553775570703431090519002751183643462429810769270627619865072893488724205816028710113762547210984775581629681878158955034775814987705143320676820941935171223840152624173065658809436802276913194666212367621542074069079605283926364502287880544930347782026960445446342924533734058892755392383414365820687176454130322457114547385979644307140764408611640881775435559221247445099185104024804293526675436400130038779946901925558858095694734533978658636189730415692476525839699678050764291114566483671876624146123478438091638262887641159661368263893201426941699326810270474280182361606762300450613403849939689559459124373580219103542327715854647676757448155141054257068250154439912432810563283752069295287103359861055337487026672138476230706745851447593052449439830784437589949959724140185133307734629740203983101957450108575466360546029604469891651150737757523360828090592883235220840654951251915504975184015960491706432587797707585790239984332966015672525211698747721364135979271793393998065589824016401405237901517235032120200510054491213903886766400277479073009058816758417988724891037924498179836247015654054248410939042509318305566974855804018498323493112148394061079714080747724347950025037013469254441204506224269763724312235153901342188910590367146042897622604922495016938698425748983229047273066387564136039428210705321020404462119425366258409429356883251769537700908672568924418431947727400920478556313637274392983606217071898519333439630187859590117406553921135569088517279398131907403369014672440465994349766747300168512993213183315345839918812678321453664654209421384657177984820649134635954233595356683390467425149450319374807306131045268991526334346695928898026086739660711702922768165579021189521418283283919876528121963262846685876247918787533084820260247360337852013023339462895806671618117203326322704537966959505556076169779055048848520255868333333085039980411450565967176244293223291185956330872974176417351972547632281078607088535315642016318303891767364761875277579834132624863726294406256097764454800350395066786015141815087880846163068612128419392581627951400001533613145536813373758662868085240635296305417576845090411779101762923260179826050632932083928117996722912185616745923749291149862558727967068547903799405827481845016244099058044451256114432327919836753609645686220468615754580298177577290501361301276349291263090925368764225509357064367529960475416413123928844595676729581028536266459337666021182284660781320346215252444344216815425723191674199259822796105636200638011877803394943483202185534682479127861557605421309066173469043278863397836068867516587250658301706648642125260762000529685760843588190701189336334702508529033742637687553339927738994019823580573401914529564938909233046380451245951992611663328413778067193943874928502377267208190123789236352313172183629103136235076192734615131283093318039016028640964798595368215075889478047240864234296789300608595156900586665994297409194906438742164973565867483118775580351215788735685190211714524972017361196280787711636500082644678999639190696421689265128860143928334213951638131995485518998486417496522561896773389418054128226380125179391653158175214050587850335554110023848815963527723785768719667779962276288754793843316965085600294363524830089683454278161737171459123762339527744853602014361401522841139982178539439090035193032236179378253247843583300316755612045500687927789982194136619384401244602971769189353454397586053466202910963926988660529601015104111429463627359012002527680934153865382055131435830156604934532786534549447247766372491441088773356269611688671725063939109723931393502608528966798558537622049316816772296115117281193949192782251032301213282557698907734706954653752614784702774895860984378331940525095225268972332815505727228350001385788798935755003220781018235311112488674442156783482729700403800852265120418990400650600579783025534147198416902150607287553994351638641546065916724919966689370566665876428216698720950865496093475495402504833390804990901357194952263100211486243530242523425927674138736881987322561683918650991326101726627457700141060497492763015359693535289358734592814280204164193620428120675019576103096203085012790156873225798170779679960783795587597187883998420608226408166662966737842092792650574378673875048783303550204949831254057052850191254100900564334369247009653360313894688957574603401229932412861025412724492559651147164297851719430501450275863797765717598792158047706267103147326607714159414206661952618527593731260593550411389382294915424183761571151298767758165568461774890486275697780940180711928069223401005678930174981148433415198537421276283398993579934241715645518467094232530468497720937188809431630302555763133720074448852145614933436427542072513457727903020212686967647148114203942197362930118494024177904983997032121759700158549923601633307044166387376868777754428546636945622950278149971933672701233021898764412280281384491240132338893149527887705697626821533824370673588985299507519241573117362767042579126987521091413670763635552949047700105932222643697868152695920325960894556904296797922954101236429566547010588553372970176393997666655673057676766800471307507651925188088457151662212222171599822660346042631599107420570702574251544854273471444325818616349761777723619509514967979679418755691468625686892103607070486144110308334386753588593997223509867896177513840627440622071105679529010514836319880873233039579170590048473111779701117246145875130369932100987224910593150855756601134031480878751007112174550199025264676932535733001392393838422222391704270060893448623374404911535454047845770681003834144665876533891774356170353398973163095156518396314657127405854305938317360245588909892712358172282574889740772240288636516418493426548343891569492056683352237300492059831058328391790396311998202217430148992613786943056074292640908510494273998252368997243063707951043473250749369695615966892853557196377457251137239188714982048314686472201542378414416092524190735583720541960661541336275515984576570669336930551284372268894257495290097270557455072703857132338447887791936298045083175086380980163785621013514204085172971549347099083193145267721411496684459563034924219660446376644050751040955118436499843355927043492431236251722338108010704652578028687337244406074702810136784209865353969866909359546635520415251475584056464457415097916340864001206676400136676291098631043000221746670407413121397988414273970615945144166325312460010620954691915958895637429283080478068536564000573621144308987712505570820770597806439739102921310925282126874604191384449518304317747662697056567362379303717842623179058318814029627722926568345953763491531925633116238491345727161329955217786631016246568319946149681370740704516269590891411697321850558862521748853190419059076303812919409335341939807849952499612197878043629940560766798538601076996468944759277316288481321393116814050393086655399943260093311116340021728434203534329735621954818228015850213158269099021544599768313845381350251214469688234856966385705551383318000946239472694920765512175545483457660573294371993667952668255111796239103681916631852364589982961384039179444245182446162323532499066689275059081297124086290429573389210819001595666826426220404095107151291526605385542884599808852309668035604888270736937140970115552190290723750626343325200427098734362650101340226928777587458078025229239075380962509783403540218915535103284535337822045205099815144453329046692876056828679368135462719603247767278801310483944177544385643112116801617637990790721021957232681803667543891290486582985035888840380816907813203172350486687048803778001462991915403602734029267274738261251506597324651406568144810509464268989755812244830743150941910665477216069354832056049925455827248546128504169849602519881791654356168051480445873378131241494954459872263400749140095643202383670636276016612680199934186159526983136391246659173409924542546594200284450898647250281678779977589255337232713843818143294765059360085209087739907276714660934817407883436183359649313238732419432212980893418556896118544249519439674554101661586749113796987242227030251837625255940690385293368000577617496612464243957314541388693742971726075332431085676927495993115830488771060623205427708448068376018249779138224772717833175111471358479149056641852218338271602727503289724030567295753063762337075598646809555291385513400901081539265285999350623913400565951716156281282138721818101293555821549459634245987483986952273366422672485732662463850858940674196055713220046523670786740508316883870365021265081865034577778206366995696669837145807535837921595201369337138428237612997117455096955556126285949812334726106851722289555679165282402625369172681933911063454861281444808180002080273501852462087085933158652322559466148249286160287720959302124365447958659168015286464585299730498991596705342408309342153560078047575531300781561904790963674001052586963329074803879258662481755708843116416384137922248618534038400017559758039842870166958526470989201422657137854104550399539010871749569503430783423691976891779617438993995238621780683576676617719422428780618606093814460760544038223586447884642713991609202828064627308349783633901128879574364254448951546302284218469961091746239055031385587016208148979492967718664745361175518209696159153164252352187397443174221453796347124172018890864878993780078964421542783456531740156637093478255444918439194939367767782640848159568869826567123040392453002984875542452719941102391797184859476032539464734345676268209157303727550780227484023412202593258955728865885863857411131474937337638847759289717866627874060003139218762504008912110516102549467150452029078022254008212933238701704075279078928466572827561905783143779554507568896191419638789281588030324040519751758225638318041841900792556801435840012832292206017154729320382607442543105768308940843454583737405447306612115530277894335030069030286022943945977664199704146084062260714820947567085492328020445634317355580995762921910211494984248340068397033669616670693650842582186578735686457167802111353807989172203507750139124022603757580265167020960512351518301162159558368795414638537144349403259099219186586836774686995871732945305515245314886694163318968809077524525954145305109871279398797196871076105892237859055939194109389225178960729065175108643232946715251846760062096350587826398722567529269295586432537316329070955762055219229144386121092546277602147418999092739189733627868174995728943624647947765409072484878413797512452318586025729285349662389522920167431660166221533503160193260278843906389895481701977862925428264661663332624018573807216650140431276929161690412237734684388307058886845390177442175084035823990170004937932137759224889373072425765787008452403596182543774451932056904535493912080302596231242190107449252187993384061651563040863552378093694811463967659089768167321813138479246575643364418110585863607534018074278392816949279907062953427530390606000040266276857189885142098357464066628823705313130094492306869129536103982147596638874315944702677528732275875857059575409306710777674528064644480336803028710680369999831134350437882333224318535689610820440998188359531602832348992979668821971311909650496541150383739059521720583785616987788720923501618321986633555906596727411903125701161096902977771442596044444849543265270636185391558739962819016134698060473274957824669259066489870006773210582673624711489331327196366120536647876457765393042462025345517350153873040863121458910513521058335422570008803612158873636393204719998416156344762222257947078447253008936663352102045495832476820834736498395230174532829109658102676482218032729566588069998035694703979340255892663849028678947443991711400415888363996104182449507061790916453432600914455145126212306435749666682049665574705591367033557639264798655666284214740488423641683948804746758285887922058197036041722918611060702832761914777578987692621765536753062285862064612490948610279388051057292664946305923658016959125296424343112608577858387698448805368954021001088166756541851856707168954249638655529208293086455311108895233977748718062980684128788613691116693336633762845809296476529290633181677504635257715366396830375716487917645021401449178713643303413692882505307231516156274170067425693678265448476519254653412017788271458697570652963834704764784600952928790428828808400062061113138688605179816463957767574806783949031023360647459007884175694687812993725446182622353276493449169762738946291875731634035685051629392391499412392461521107672157745060283275967571876452539130805614460872238829262798464971119937537339622978452042946647880597905228949510989758071483113522207031394301415071133952579038537321709010249376836391132538921880860540109802453521318154753315154510790860383060504959566071903529304367381641567805369790882282141765173212335614947574462871710724545390041224429317152848943126155099982636330309245660119020792387592312452319631162600502851499743161261035407790058245082679314562019064109000686089948351145656644713722853127115852919822612131024845373500222857699850693378110537911013018778281973735231253827620159388061545966022634333069619831536927772337559579167334439810502463092907321347099699643038176309906945986598795730853561610011215608920737602370144771638429825999147185317493370059260490843522040656515280522564925345987691211648903717873017368838743579482903590165088330186261204968648705091038363027060119932035656729237099457200190774389983536714198887981983370152792851586512649654687227475218609922721775806542446367991634996613876122947573041586758310103832179889070357556026498482169401359986314085397783525221692339415699749069464014665317887238621443449866671581510191572874922629800341336379685607682978788536869615417837753411418450669141185909199518528531426110662213335662187751348645516626327748226386515683600091706216057033731998698158923375458214569782946076143367960541006402978505997262346307440475009878739130328996680473514182723026500962639011818762513730801133163766948212330036179385154425076630391512504719233669800377299799500240324538166463902667179785403064203444647783103430998041064497790446687891902927304433213951095269097326647925568928304199369747334989928139791270668142522517579933822917564883667044378417970354002337960741177018090684652643781176528553586292617696466634993772662711910402934492524395256159402492999976135635125541429756936867753175300213048103631268251267631275094749760892598100599979829237719594457894841300081580326128593064278364696340924594985975354075766078087902301805052240580820022515565973407952589400148725174835499342290177494977649855763474524006045481016287955031170643789661509351337003218473438032879123085428099336890131469764547029141428218693526097795731552761496119297340710606232058997818152847714809553327088057472144027440760775625926864776214501592365260673271426442024490301292150258306130723815992402374813357474637498870192021485589543882323178606634255795352572477074341978990060497876664630151038954250775394654669547276080565635074121014765849771278419793032165610582968273908808392451065491877011057292370032189176502735120400494847375803622068632572788047840348348407089532295802930450563944045556462663774050604603077678185640104263036976773123557852522157793331236452917791881098561802899349253802168794868290890602420421560139999403881621136982122298999671062818322087197025432956944041624965444783617225125622090710805639838424223777685641788344029615994343470730668773802192433081444118277654113049784025757314282319637432100748863661555522714736053279661493070866469220716530436133353909114217790723157334009213795265891354463953626961343822215288445411801405445763443634708734004266857952389733895681599147314711879308362858559291244794685699870440884707509736530649359727269325601954806739600505915792291479146929942177566820569868802663616988441099871899908229650643434012309454323763298607507684724632317169850920705436194581753180809877850938930001751663352521918678662119982918543455984128874076758350061682546405005156110551833716142173602656410021908233172831457941482417638338777511784835313012537932320014140245467119240485947867970797500024124986862133850878897688950539470833678940462415544707816292449863205301017184450218756266436124187167843516051174433908163468339702937121913003999412492294315422965899060636353325716848339755112274615379864557470960321676235967419784684904818031098310728386912050129108420868388677906280244271887257240177299243065269838322923025616664294502157388448516048915008847029753241480164207165781756905777896933324052694304905214033816272376369428996532302003672568060166414885685592043192214781154374870365614774280366390973966382723575720182680542331242942974963233811766905991013821021496723790889805467160249883410711987279884761624721183230396195580093448157926208377440823079019879587517628284500915928944145077963756459895907972337930153204820015785296869355925647977018340203844526739395706463236698584982986701312901874837305339491399153186599279210421648263380578877591532665606659544159859927192356264180261570442344344853546786736530237505223451465416893972301677218294740449183289488399424097962110207848585219062522733835756776599727774843370455110381802410873141017056453132815897902238077593111644118388755646848819681432474286062347116851510120526283173903876646807770027366875008973284321462683658816902008472182459381401548786663120437599140638213907525713375930113495961091940927535272200925591140554079976832002449844273108380240585154842594403332736327087270616735624202544205556437333446995484910521676989970804524488824846102360594241641987875358987462604480120186339551739060946592556427804308110458435442094178779901951328320324246793134151912910920927156295680497166206810502980590779891828780549057088829382608959275122218723523959258876173830227693016184669798961977998534068067139395285668903100839741634613079827116020277480322356057759734041870333499781045646788684815423015037422717989453337050812555890114152156519780704739165937671591536276460943095583815371860881810925793241745295824967389681789176257816323193234940727434378933307663788803853182359616083205992988039483763362177061140900707444817352536314342960982189231735350499635228038676395064483439220700763792867934339207878649672109883936414900694415264724076595691001225315325401952301202479546265242136746153393247003183821819472715509688414627573910844516743700304400421099843077615704389469005213020686029565990128913619578772914579080612004986532369079949037169619650066207919675035644442171604183363112618461474749313580716998874803845037609219837536559475025687007804232430859556649664309169998927842348737861892546503858852524415971258853612875828833150239698817017491093817100391473657058461732591194226176438587365998771034726148227853994822546229472771107812403668197084739382219306478150222841136836966242976714086665341441071417579050134799027840213995702068054935880790028846901522555391886913742771665902428624636752937239841283097113879948976307070745766319032711035325881440361392180496782249182043838607673120421851579438964831445000058319381066668595000047079434113247176685813411793873211629648131032045395876832193887379049967746447665127030250814412738950560989902491949023910620382922587187111664107359205426804117593643745855023229264958219222118734212680456932199716281477979050563721764301281085368125711612987496432749014525739182537858366338359793259166263185332995003861630571592977259784995260311653861824276358500265415249916150086295856970621671296052657290755970461147576867655135946821839480641290393405985397522567064273852459989195474099822533484217490904076424199880289033625053732202639566543420207451657130819257522903641514864135946050147374286643152095721531367616878577958747075628383310459601933450135046347265063714076836496457485129898406683468424915908949370918665477087679989996574407302078580523932378808450536772004315511597747828834982737987058511414880583825812586996808829862895513359955886320013528090995335836514782044644991488781562926861878081784201903541440741353433902439799730716145978761620129446314578278864193027686567710130040706006830627284789616247695480645487874061900461130408196693814838148603422627939185383778970603722089054592230268370586007677473017878678273525645189613965715170207163170009352650296292998316855485331962172529168354247369239079095146067669330292660504628684037986431083474073318539332167974370547981331490646009310263986645655760027152211272729872582325794638599181599164010543932667723911119372145261877543540967596286750725431960207274597885837142539509628928213987280034686657478145571651223409436476913152205978626514352746266732680943225660465611675759788227628537002528385728416935716799249819718569755289470008413598555316050872229906594768741976680231366217977352500472846158697420111609093747051752632399198656742154731613693719169158582920456972028764371962325166109225404551992541283533144762037645799290436017981683468181829191453196237198838303886671948590621646078706598686054451341204106710289421833038462739296302877570341000117309690011990020819153105091740218851580036022891991679150676681295339351073678774949079400810297972664454827680044487780852948594262512382164847972551834865167318271304975385053065858978835139780363150951008360620865462715100175386949806866297750450336686883794671665526868482583031451306965070830721780041365268791428069424081410872457910520666341652254091312460763344339111266563291174181490429582363961887502746429444158362002972335697254574116885523636067587026607527932341478973054337924717164549461018792611385581611108946125893240975619498307120197573454229553901897793437429507560155030480304437081400869384944405208714112169843756992578078600018566644782536472086238887629150224322408162335373575977309870605366388402983920215837186172602118887057388865903482565691576366185241135219431785481946671001930300456198413382349007342518875178769641629878940987270368939382513823331827083150926553254332814727296028087416897492632405201962936121624846859374494025292716942994452341185459917716001366234291280386347919385587997012908215752449007030572876026712781998389654461930088599450145407778321959335181692141620379926997638773989681628399986759523193682026265309716409369270416621639111006246528560645081301545897346747993318447468273809498941733246001490841708913097056332259920957367841240610614023452099267648306631197242991240178814471616209246238214950259382239766885357113921325038145687034974194144006898760611134851234548869499713827468594024357109881191298692165369078939654998290017435506746520866320304558303947938882678683071317806762927866015058728465162732211971748709733912739506929678775821391845302127125709564790053400526136258190822367041054569083125117299970042908116633882606426404978676757093218136275400539836253650759668677002362778100057166287059234705632549061619936533810783252374434357023750646373616650406998448424612499927103222589261434224382183085438868097571444634902388800252964984017038712801826818920697686470139647916615533483574038183240247980519461297139945358497474266917280002355760079145094020745973187698836551466727061576134953649352330169093253607690899497672386355945990704322686498102713325218982800763025054242173408395684184210810647059375123918418153826925596798351980366470197882970248052072470699078733743406751335392758034569918952459039841432203949500822377421260144917258925180988542067214684741474054685043563587290091982653389510830557941243125604463333756275112628815904967986505845490736000999745608092465274188632447178685361257703747314968137310693712307419736402025914003264927668389613283499772245181009993709147444116280407321007237184028985057076724387083688362089228292117124787437927792210174312195409671109037535162900475165277006338523157231917873760269657817729344210548455872731521317586689051298909491646418318790875700545775370564463406769444392505368359955589717867975007002449358617687573001193580843233458392218897378443247852488223962960307856304422434184555024918366921036684416612769101461015626147486945090580625343150184535379035239483000315856374712118082878030909653198350699973826975232935944040424024145890038049402876606381053152455882248234759905987972981893470542861165619066417898995509995612944955123430232061747094669490323245299784282867124731114805851884886366695221283700613008905012273451604151562328231507154369330922023661720908248877202585172130671315607047842380545837681530387970665077589335644489503161394102473913270303422156197155997843876320073672464624868870428116838275104104774219843652550503467212499802480508743873923525307251162463975478880231319042212520083023773709478833840050165130112639500003268117561462370823783492029353458839271990342780265784570862286881753752926917551521152407378985355932506989074496278843186406253709599160615378029840683922982240701335811766794403915252504547561920575339006115332596779536416373729099547446919637542529613842380423194241428766827446024326138581162782206260998805830548967347189438653823860120488730140532380388687931908503884933015839801948471552766657380969584298876093107941783099143476369172510417724251605284878480495933251840260101806628887042896132046206303474379753682821441729552924502041867505133497757339036497765576551217278390991957431146703065761542423085236079591988796955787393783961871276703028998666633076798737290137053236915064637892877482891363379530969673883890195020523328719095342352793674324569816727727340206806744473847861538167983246438706214526868836087150028567382706758271584522313608133921059780254472080770604225963036448114275472195326792224615433933673527299340961696593987175570789261929137980757061131704311142255194130935834795927855341660006018960721464291121745097887006265476301378763312233507444574248821668083721942938630303875982084802328107027307218736320596165207358654312391446951965157136334557744390280055834820222043850473307084131054799732511581575944147136902449193980763817804644020195542255150363328951692665385558291099144552643914339651605010226258771850955950763543272736783489746792598101455125169226244457251588707691397084612894879711519937357445359691232940385420134321083037823497704246704443457813098484061801859518741954956362967962198098156319189995743899226855899982847858964634729999807570187670345340872628301366612925778101593949573197669917008626033749656812075910977764115505955900258488036011418981314506167350513064382886921929086551813076164718043112411591561741153387797982308404001693651773583043261345043468189571694901024843406704884872018725473839349776757161025944566080943206858181218681982817571453975436776480007188052591206430191472072438709273491600959777356231657370559301730912370428919233155459259451394747254115937863919669536843906409797758727685449228880869231697364658635642084191057549265211528344159229514617199199757118772865128917797098617719363436108759687837221031266953665099933347336319827117831768637431992873713968707363727418430788210521797710082006196343665883264678765425567251750212100887781046591420373364558324627391153569825148939451015413369640358846738877081251710525711036360330533954706178388013224372084341049136898164098162862653667186793752957264681252250094523208244277412218233687619122767723446059548690054500878790725301878385663285028833300216150305293217074703930933734383311211216794160222977000290694566918891846322427788584704409115799383899336652809645410034329614718482525072249257981065849976820236018273343451684001389115228303127938818913780705861511652364123303962801764491670722621507464251310456376397112186448998003156296249959646305702903705008361837499340532853551683714778309239490470704910255532447002779483215287934408845789744746274598312825300033519603895749411475598949616444517410116534092963904736983594667495607889657533464965486888088944614857261379086097727062306741936976399272769233692850492018248085921430507247430282710522310848914250895115554791154010925670381865883303928577855618117483814038169094380255644183933074750199129626153543027448768418174251189210850057535106316087569075075561956623498506145013017065446135888647737644918578806154236855799838141532980048485255982379335918285375420492201691134237593894800052299415402010164632092957482408910015028228400213439933733444490993285264203615437528313358956791707115895654610201656873245022565538258663611854854056697105105660280109452763760910972726539269790219793262032505099155666887911294845643850963502653189021954605713818800939120812886624734334179165570787243446208195808617152258129982866904218218560071421823308131972485125676120141387554657131848220394651912868936923594558683498479301400518665721883659539550440287672732402781942409446948497811712725746561423752740340099346967606861003248975902171616967816596783814319283446261878788896243127383029263016970440840712649710646494687508817893844625578782514940031114548504435093398976921982790901717921500488342181221402341647245475273599353404820571969765663989412030478444265162924748881574743186789604286900908459250328244171179428723651923100380546599686699792802159179839929324516447481274039907907116883666300291920104957762713187306594754302553100820632482440703006411651725307455837961038667891385670501685967388373885285236772296715034407667220226104983990016338483222572171237151987056920141889768642805692942089211027813812332109002975479169293878960336224700223338099076104605882594220137052371745373329162304075021938090496407120333997389736097973506160150385164328013844059148263729769063643343168104417446781252824485861498727762206730892920468246171204271179387176026096242304894274296272255514065807462040215291271882652387086357259412584616013158317960135604230914387546186019037594079574968678434717973901119644429241303016405035411817918279961917672878111108222439000572894363583802977235695647765616779097777924762151552823311124938238672234429060964670899796494431915809292097665800651514614898317651373250229706285361228143130208720912200707691406458283122011217325570667126520240809972377156542415452827234588858737263155432438663342318195552375434615989670825970346438760739736800915626108956889344823981354527087745086026141543278341885524413050350664735068707413005696747349197064253110840696591108902296626940760712044184439854222639491722775056304461694807683159569368111321650778512543284260921143016303926993145517424477565038705870435253065092510150993541518239069334032380359933024467065951358391997307410067268033576769454749393119654396176385394037158957563248241391133744192978932866170770773153257618030433937448136141814457983440622924684806448976071835338839584290005093599235700741640160566245956771493120060442064748720073540482093209318288276893662877299776685123974888175546704810339484106604805788878390141377402191176194603572255993629963892543040225724469969924902484190542225812620272501518496832818369013569977090665902667501296917033756953524337137389230274657217255381337566889638312748417859335298554743296833352967022205065498883233565564441221939699849225111195048136953552912819786111494344769933927273210934112127065842751137660833859428154664725805780946496856016981557521156806732304278900097430012620568126660430123930417545487258986534943348036249629115144805104178686053971899450532761959396990551515183601858316284078873647924153629087885860320659276350963500567675146406491042388305035584833563790163380603172194113006916888127459773676307136806477911803930061487561674234953642694888713321340386810373993609123340580467218028314520288197550643718759638545303646770489533255697854902100527446684247698354121656363532449825327975941278505890293222534010890054770866953152963372425350593409993607119942123580867209459918968175604855662003586795315336699075861335564941329014410909668379036574894339932978856727779467649861390365086672509383270362450064665761775348074724721181569555296256597582774934361538191143342398075439701329668670289971204524169235562478193562880153168464360420499126795460199075032177917801135863305569155636406044692495752532646510849632032220574284090522524754160677385737121091109583718416914624673319163000046989672899830186667007308987229319898028962421992000618499266893279343194015924857113576900057931485466998620377038370838223365555079932313877759605240523295674614292659445502154043920478134194629307793487947368626217390280933007369281839750900333736912008522707163654158782409258592785194715626530982616441478697394836522078634623831216982789076817317678052055323243197928898551672056339790697453523019052531854980115175293916646839940894496108304597425884006655092400133203600606078594990494643242973054588886855499590844007780742542480581319716334481889507137223328783864278566722142738177568220443567422576141207691245613448787449337897310642123460974712575998206778694514115924258800384970614870470072069839366138907778706206259857328226162014756066389183182992481760034777077479308309245079380823505598584117398212438089748957722447288085720603108163415597751989462815494030827538604723632411801268544130501659437515991769087261808565727808916059129953408034689235005304366778280367425152772225987906842799591954285056930266112835509151858481847916028627854216784477900828572335095014143534481418824537384527495160211255691535250395372645645025918167489118292453001562602488645595973142225527501046607391347570097211021610498844668974552576372747726978499362775718648355357219585783974329504117556152315916196341296425646484104911185732624326885691906993462743824012786439679465636512464392919597808843262278610748628158882676222607277631678765731713178703397972028083964896897002928680290783890287677331136778192637890266474854532963569791967801985059602942843655105621560344263606288493553307214256828153455775056753649174141235190341351129093374849477396301222984138953592060455435071093189885610851951171617156963039090368460810752438743436887820142490313834825291144970930879483451350202797245366768810271201159243953294947996159749069134219799835654743970268129882881324404003119847286934656870065750473619810693545144969146802579786432001055642414894530688134372954853673935950045165382985548463775904495107111734669984720014318523117764818609909739784126171226345838710285745209817612575176800327190843257261199524951989369940407657525307173118092110862334653093393838024591943382761449063998408503965482958205148881042671246852721323824764409443984336951390220888899793721149781887212448323287302671635089767003099352041724830434401734455693727055854563483174910343671392646252563415301001107097323124546153405369962871681282967212896033703462944839115852981600690793509333055282338803550763315117743590746819931666792152138009591651127464599496089729528909663338782195288839074469046850436336942252208329228556430328603379686495531305960334288871737909198777956198649640866981323969246212930580435486212200998115763862661222299018899742272839654628546185412372917947187765652528674256420720768214203082335899262817825464581175851938775225641335196747261466723507360136476110252873985152665443584336991798314003901886589654101956672411127871472343942932752488858257191321042477244626615430223105441754602579972298062085313846082700620542836795454622105075432800313700067884370212637167140606474862500066106521729947640620614135298445416500132050545801082779808321904673699653918493463190692225911857348718496777811250362463441871661234432590988336710055202582616787245950147521058082580256130052555015666269278597029457986859351666383457681746133282633210440099713380514866811732119218354100373340511527899638330007976825503667464231053527673496845618584517732762465474854714984257036693751792215311875442125033488665004829053938894849840149674217853310866523680122072788563528849080045073805715452791375547346988789070677576976668513372588752184852537995096904227620344701462942846856659909217743907767051380336315091134259418204348660406910934956965301868912271268071571227489640481833068429862051335305868590693815989886912312636232300653273988591181149838921991954141435939531233829342561986977799565328264373508113927210021797980083148681824464329913171401602909969768137571295412045971980217788939465076435397414436701294887577535546111288491603089520820905964566887425601890388685995049704865967170445878390040781355179600713054061130426239402306792149443079939405980876330304831424084104024972533797788214539791645271031619125496789471443408391780965719567546175638402645363694818117516887812487836498612283071148286267185593411186852419748929712047784481738093871815664695133844372089272853914504340048236779239850980498031588791248000713699560172117792818172801960682365185079079747905199264179135103881166998746063764493047125131220527607115502912108731003378598222286969388439928281617034265010706285172589145128531999349262141262122547255090962010024998869545361204802184894391838907239742485377664339104996174396583381365005348565723833908716864562537427909867094819430919853675588925048802523575652655691349803369188211808690234426309344374881451778314119915916559413117382189980843717915468295684200887260634552106297686840728952149348753565052537619671136837938264035873364847220580309340997656385254619667921693697831067191195183276825932862180895708866423121378127476017998220209082405392593483837378399792727696741500782475289490687227378611630283566134923279913884333578965044701917270453031376138264523423322386076958852348587237222654054676508458528324835100206537487721450941982905475812754961509765803697377823125057449825228409106003912325553031933257499933384164706138941062647665837743877460032246570521080699678747040118569418204950595537421191880937031971177325765460637184576313567544529108561014085311190034380564617301054054363791669467234488118375457337879834714905610934889833172934663918239078242686265870520704064506813034030238933396493759391177688986599130935272574378511034685683380020712164024691150322752223104067036777874787216023154261096298481811734148890898409162736375263435306577131008351778333246314751424615847694941229244109776712850282656418886785535113364687594895752916686596597495960737817071304292579131654791190378400697312129855177153805567678026302311765655386280565698057106077335147138689805401223717704548926250536399812018591284610560315333307658368531312655406409664227504263488782356653319889548522203935942193328612702684321663384631344456335607352682115333407652488829788261345844362653901719118345504874025214170991310495767588453780644577295522518410722485458547204972522943024568185210778834801202496881211979807439446071914688902662664871929339439000504223266577955826450790722799128036217418216679631719283710508091511651456647063512697034678609650661363703030501047482804340053341746708844490609997015067040194376490655046459541526004894681749464719366491523612630459068865172119211575868246861091273447877557810821891836689580639663665370021134436897945362429109581194764985697003992299624318917093751792945476608708817594668255773904632377534057591808150297778249878374573750509933685336363119181333205458494670839624010855133670213135271090877406882758775809027164738088783746936759967755680063468982077141069458537391486510279101298431121071310510951721198772407319799952195040413066658032922224829470491076706621117350959040627696246858745037861068764988062439640443933265984536766429631463985055868436051070359070750686034180482612518905506902051197685156570636219531261486998596586341609821608408729452378797021402114517606332297716162208689185255495509808930349338317481668925208427354980471876329281714603841247551703151084310611212219330415108484937668027938290939605945896142193233606460382644974575557287056838863173947951730566962714385318281510839579181634920668635005356003688817753972970330355746861318686333470838300408870095516922401414895404570280349400940623292706568874390713054065554621068365441708910145951739671247681509648701950998695740743356566202626082906667835983674052955746337506444706405003485933834250792188466577111950239743915695239498166283086193610869750568294239363502081610784939030110330079147784374781260682312369282509975844017412630032749273997960820034408677047957018749917784219941182139023146190918284520301193057930406083416515758157904382860736944665727841374220577713913429741913299576247737375478260087778370883852459815171398722637674352771937471167565377449266548311751087934702006149362612769324069527065671187955922003747240260575611774101556627436765558206099774559800892317078287984195481820650520438671128495483450654701278874385082979104960688978757971901738996796042194764807360641971949536250655222572069624576244427122880597214612587719574486399714599867786141956765502572093219290574106392191297711043683498541646809272837718386445755892013743126965151804084873369693724032749326158397603864678742427557338277022733090737568850700804441684708535187066298810728330323630281350039294882802374585644789231224887835874991226291997361201701154984485851381463662236023857567755886414679206417534758203898870341519147307246545802519002681963766082893433977793712170666795800275103528545782706052297645428578752632068721357945679704142000342557958253542687389536452110584911597631602614110873626197076799967826058717404262848802661407593550207379361595825430165125824103753949566797577998175756273086296705902119097691940223402700390538510501726129239454994794086499074847015155581659935635783105837675530403331675833484634739929252203453265964851101470531999240328823515198224143776294552932387726330222974205416772999647811773856487408917488011793622916097894713526691874561588586021768303040652035652125420660690927019131596071093533416870602279662436984430916207899906482692111117767200709505819269778223454568919524529215494672275841613866648573934872917047512952338614022983642752971144357705055600129836820090594317982535655582624886247153847119802923065185331863831020025316214523103059803848640795452893680382450303992810724279506430260841000470725318671444093503374775754734646414357604831558142857128747863970068254398681750633516275345195763863789309027048790957241614537556376965623934514507908674019120219639559476167319748097194726901362843566707311759765270850800114473693719355605895738459985934215703111288521633802552785611103460192085927785050882961820223495199631472738803659898677340477952947830630231038108277854638342945702180853447774991542733454683619041056643095341437949686227632092760096446131744807712583749732555011492157561934027466916361408264978691270226401814665432336938061774786858661434183336916859561459966257127448136984360846123915949475767706016350415085152268233846420515650638844223558373371635678327704771639033465177012100909356640241291292617950859028548024899990172058374234905990119019492958134754433736028528717364832303070739622557719198689124745769577004483458507013821163966606815012408382416740883421723682386246913174495229815125023107758961950400473688139344304682043024419428092529669160636448568146565710648089592094556541262088608235412886477243213703266404013015904342744951782098501507555910441050066451665075124793597860786198984566973706906571548149102526374074297144332722349364672146854180758857695727237298571739142660110448557402962109304198067942779390762211707748326537485939407090946139766298359623969994749332975632558752880235324492850406956172413124193475905772543737417148276118173537782574069838378862102113906865516975046744364214327967935194698013783270444545382688738655691278145122602814837004602722914384524823905300379104097377369938170285490999704098864954905010203551835999543793824292340882964250585558610195654472690728139123480725018872415603128113184623311101767440864717594724148675326842006234620865935139665074080772426236740051602534916030193573218647986692857781599599593171617851230943612302588365662310848339564340271830234270147749031555392123717134618094120726869383953706867551694164938013351334854169763100852345235732892689159304727864091400128977376790642846411362780133870550092030061254878539983136135892852966773576090496825094618737462018554879458547572298622744817170259912756631477717270853630610588982905134817700165892875023626069081005368669975277852854665558817758692265856876161463511748287673977295889819513666150214690814183200952296227600514101562288041753970817371954274260576274267931463586315059962940366934641038720025687156417344211092464455939770110237324798247257463738557161956034512235905562942660588839422736974405103195904744057445164695996960727583290179274490733518383190479643533851137621823337997194619825311598650867872230661993846824493082729434131471990147102881014315094106953486809427395097106270704996539756599365794113427328192973262330430001570444629314195203867363854911175067128818448757762869454106242212029147230216803025552081642568874546683183086705890683427550123654496855363829227638588578520123515505342174705569793283615814738826943187513234493170494508236444073508588007322506707013205497665653015623212445290713299543685726127901850873637600349820908961935541150503863144850998593117289283417190239725172500926303547336934606043562860048486425887500446019881734851841141136534531124044758281437077072200700308750176739931700181235979146576772124142144376607326329025157589273372717411370397234639213858861701178402573951643881930110245269628965229749672029870117506412128379883978206379719571472735798765490478980302843000790883455467924489723483636326446966492111255203361486435103551590884158722740811874769272251040716581072541817085327251882593845300907822609154481984874588232608259522521082666432045690830280966511645416713356098580182715510201864897451936617924546026890036381269014990405608960761948799765046437466793311251637686927950677728545657746319481336162702231802073674274683479798920757782820447593668688119480237092274587556314500379295783939760460074255147346463126202311449979552901143960356138428560342335401544644305249711798792992117052756636985198374432138223481922518678898341480752883839402775817160504734646464957790873109859970216809184447312190709452384454441317156882599252819694997954016571183589901675108117878104435548082785123788472322790461696746374067933002798784902412037237542008820822685121236366078642437382780825401395902962282506064113430399170242222788095223124864149729751122913038818723224482923996012297642034793946587039245265284958696404875844771745320537494938161887170007024800440151690807605248573785748672977135914922583775536952013272636230477028642242756745812706171703484379855685018038279045786041287691006640274575794178300249075371978497440652946058888801160711097428257957413114926802611518523690787059179292236538277624233924272392528340838357775562131956719142893511223527851232308085883635844542717972605810001677027166761383029293314148345371667611959267065641768394173091500220369242566882357795354576333455105689806495127387582152798880504294802055052311898741866506370095971289488633119402413344361644440337882621344744711814442626083067290651686934131180408131659939298872537134000343647169319712062019257846925369808009605263997570729761975091738920629226102034927963550931099489069203455129746778917371411038817798246949027828721719036261303565835431252507289904567685938069494019436956472824764173039652863475520186996901694172065990714344002814240658412185647427115024497527978412459054079042041023860442578693390530577343570430891780955704054326642247465114217017559090923439043380326614011838770358384948345032502261549130869848052311628891486260745619606764908976909615565504034172228545894498679678331050885225229128303686768980269193273548498450538013183528703370394593927189120457891505438758725376875459207181773594986736382770222171064958849712829477877637775256041744257580343760334564821510116390866850558641691617632398299415504507001636183101448171539001303191165038631335231497795940852242974055404894552034120880991033980447651807085559688151714997992297401480722516361875230046886430160242063422821987148985085231153169899074234234269951273696555653962529229710978443383467171507371717255339018880778570654374122127202191515830605357189549167006632532354117820183352004008718397567749491584489089515596023442957882173898393071466874449952733894968543920310663313003528599162296301112209230563888349764110891774834580111157926245482833386212924086724406598202682382191422721929738013092231197675566321235875924145315697781898082414598778959909523869584384930931373439775062045600050234489186833605279478637212037051880977111356244863914544803910063368281858108316123857176386488265478063870615614972412037857948267829601582066449818192902591823613694298479478887230783484331923767418317015854258425961966603584483015275435948303456245637293846796717840840603223228468150742788247332838873507328907553710959388255198695631365041226947067876285839760120643866662784541541466009659946952424755497556159141191141621433409357109467493962681689977010081975335190199539364354031932840821219626215489013348678994064335891133079112615411667383377722336351509629076866152269135381230810324390763495993998030057526904911889496880172260035644360073740812915110170849228155042407842834528737532463545035150857396251053124038704235843162975016841234510309390797668001084435500051236138030716152992778250584881954204664538370857790185262553524197346742659083913764129561449444268077499491693150139912571236195461891223548321028914671539493295691892158066649501095707099334060761587782997101750561320413381224771470548049952266423387631458731557617082027000209699679186508455951128837213984742548948564367295218449762160249963916260409278938179898375935222171730658495897967655869910041618766319549279864354454261337977755792908238733654191120047488790877706831979706252854662885997131794247100993629445340672618002474167233314409032094491559762393663743247962301298021413688371825163696895197916630681344466962284891034423029142601669754341162638026599006836472086885343931119869372799878137474381516611455372637680810947073045507445389557129674140136817506633136453209753867190185307038008368143962882324774452241344474968604597816640392138426762823447127026985966461926305398376634854555149086795491719684155148515644118418378991731252587060034552449434706720989986073932610501940227127316264182872489644429929468492641917001609385394852463471936030740181115645562776859439796911606485109861012962248104373022220669759920162218493910471887923654656667182543414038463476987640421287686170953720752070027903811834894867518651926946068938419829062308172149323353642787197765992076408346315579514435808196015197171841031757709983656841839951674030619305443432500800170301654434480730515183892187906857481672296458356889693945668645360411397482219011353138284617505152260213586216946174077256891954663990352180766449056370764384537855718287341891595326697096929381813583745333238579343762750513238389651408281802675699173572430137126326264160888425402390629661505962640135936580499479421217909172363240326482535676454593043002746135134162245220883855702756488893773284025863984988936468692983521337194496767282372347869223706442867090777645454219636590388270112078061290415447759455519579375474697100669514496093971538867692728354704771137217250195355942096216364404426820418292635584979464680856766840434235016859602156834037734788208080845404242997228973284095095556151277817198319575987950034339505465839038153954454038500476961758465058274094182171803098572960338059931788218779189018445818295869617623087407848047585713202148310039798181240951595368358529142644912659788554553705382275473793346057482411043136413684364794519104178552589678169517911462991920643225185023776518746535131795081136590265170723672088473758054524206608875603309705499883584811028667744013701241409255013159991511550221988911492221011287248262813214622175028604552778846341372955314472078277858501687805425064952966475303026204229696686560516012465726846426460290897373898631263893037596123872550383481252637371749861214315246923036233172372527948693164573837570955300743291432965262511032236512297521085427442618081817168856553171349184821352775158837048772587521843064440183690737612188596430256599019267947506409867254337045666524926324463912282889548658849827931200106164101410606240938487663306758827993714456129711090041672720194071037284425043116557339412446768833199740230338116095116862738154205767199236418793302584189273653011443063083085930111767357875713593105999362044029652399389702719509629330788106402341153122894639206448990823936860697797419870222877811897839185066324156487661529407527641469293838696888087518789735605336043694496346088008591831791284176886204098225917199690396770531813143345925095692426552761364500199204961497630131953003037702751942970616717018343472166663665183211695694209347429455723918586754618363293612422626683484106417013176681107910961552195311561899863750068511466350026445264870515050573201558669079225638371168997279647948984404106880173731039564334074008107201533810460794676969940570423635968893709208333674659926050411376079532439803730366962631545938262757449829430252290300664515401159840243201152503439375731005188921844051614816090646871358475697172892661848466607723753448171717545099220569547092937687266834744295254263128948412131794230817171800895360459874062251382151091279696540330756344068293762065772258087289877155188106990424231782886477709214400644634872599580825783237209638726558280616324871043283460823340163327395820376661289109366943589771168452255460726741700754644975518943598760638060037526559193169298129597009597345280491041090120118073863782434483457018485395471873535398220538629001360154549654475293375867711302588596179160359312118769172313358903765607960285236428427528841682044508281684954728459850555716515670925846570158026953084878472481546740060481947200076569935397358996118271938531651442857345590321810800691842900307354966099200759066508067683104523033361742890379475633943347929781512256504091885775018249202260601130888804714419131784230790201573836841302172353632435145478301884613253216146680416568187823104553386779341416607970019264166272417446359791092251038521701324270817326432313436804964886369999011743198617023472201064874704851247211610417689921589314943698333846527027087307116163582303095425509112069450376255140466621460543698155831123533306523472609975738268693736880951834258697135249011086978783005932395557320791725087522903708940108238463206676814796585960586434918669964712641623572653618039893911068808965276149697918907088548702450717430320986592168241470316067116809381864593606579213644491600431018918781699268844891518076231534735841280705544183464528993131141656158358447546570772012738931145356319225259454877148011655407281264804687415128031473474048605443605505010331174274038928368108243079801629093860394962244471007574655287821766662679135266728267215507309566041781944603223601488326940028824074790384844892295877860739281878161610790779819643000766773426168665910352475989948216280842223848092549312433808297579594475697768041131000495376913936404766057834578938407150091505900168307600167608480382327496575666058045838974082934564322517263466857070435094657331873305161971655602660685198279242944283431893055417107752941908622244362086781549518232975919577658848377609092728951004947752936832542267456882031951952113058498919816693250435540490443025365526797918366776682781189019820847434896292238076926653696801208912475133219783836498935933183277058811018710543128746644527232646798308334861371486991806625969226071799832651981436956750336041029692636132928991667822140958286903298351115851520486872678465676853836756827358558947618062844257970761237039041766683760034775591247438834943680197330238799605527127343597761168503097023729644838722139551221187304094488594574141307018411557393982286856231382098701888048639386656506064630339258155736129681459238415004175707706254597976061803665047063209547176479793737931357998988919526836494246107900609495945794580958502591107416280162590909320087156905111640342327500007433827013254725039630958796803051046297943008597502749744272327603268819937253306069127797921217187709294818307979468005308172002401896187650831911694287829700771637686594390032309181012976540474497867720327570370784808095593516222684684574593363585148101036797255886226542480414140986705338149639321319020621580005310035325135214971705710805033972303074869866371735642042478275781831669483072403566428327463638104399238050399284035302942283927319645740372659918666367609185051710187282553370252856814484628587055627338586644536497521703135731720332168701892527224924250553892379798876680433432540288443956393437626610254490557456400703364688639083316381190088358906397088892519440641528822064179546927878675245821306421482578086526051652151234169079181820498313825569124334865543168045520750496662213303236409245068183917372419722196573466214644328112879036970003480554286156883717457051529157091424394275179876052286041396035571663196875764067361120501585775847559228657486732766620402957854648085322560125278509199630218856005905688686680023510282497316765655069881102670155049910373758342117513083970804887917404394623998723783974843203318644161038788468179193011600273028519135677007419355779851778694129904715642979902883794662651908199084703855982281885034456901032557151619948035123559750132006450247903947036740436898856780937208186706916867000491742396076292270041221174338623794491791663171484960613064469230977039981496959105290574021941972895463632720879958425957478121578491420635275159947502966705141859640244617755894612526088001098206746995115505957168197287046386028064293880910543489893447465842201677157558191779920446165960077475720460061526251237821005922396112398828747820696407654481886283820597423909281078760007753680677448511421991146184363987440323806984883158702598401924818587030634070552808765183219177136103188628192057653790260233759335161302343657686774331470690839776815595015278023870097926566116953376346204080076888870227938980992202034675172692258755047513563568306898571691903272870560292267631560923136196235928712465801268335391974459405073390279155468718339145515619548478792997069978035173689051654831682883647952962157369084643516886864535030827757049196352412080029828660755050939186108507042694501327260928845324210424736758915254281036735158159293195312911938365685828276879928738212145298920356973988425272467982019705052255496558264318964163800727980375987325698320520258670381546416647476428715900677690288628202623530638687420301729592624608987126107541044186985793313431549380323657599407335840940017585923712845226861077009177066806100633665666543323023113011881268403880622159849882130497822082422977996909957630781886126556748195646204710073090487946075484253400077319347082888135703135493156230205390770090424793853344704144694146465484213689053764510092178561497498657477737522920532638347247859541156000035083172532410505610043810641093641323762397130225373904765189869581200205216496034942020898947451321543283822436416526145001758053257545945762219526156419034072376612533624764760686243976575772779898277285824596251424124439447269280814378971343105908769244546957294339015883265199825579198444176062431076516123283977428227256511024565328065532594167554078829970874156070128551418586948033397932819117327298513309996455824207814360690325233562112200003816115189951375682296317976277828189394922988241840457564492993262649483849884336200794616206855435976072237726012757862850215307611227766902419018213152095124505995847593475663467445341145216568068472930955522398652645446648985924315096798732103005175068727577722585816104876548926647132383542586281529621856442208240029468153125644173599881597399671176973598325123716305382980099633189843005288081666269833474138122347740834837274240247473418253326380344244431320764190844548079893563649432605996614927826224877110674966014520314603316525048709556804997283555181859326362013477028730192241815215793828134153077876802175757761737436545483968348619304177298829325567295917407167236609252665511351110152331096316768184268584418508855890418525417565028566272376674669381929029774866872037745592617340766519135072907774400357011522446526656396872592305304388799846953657523227046984682440049583847125926020055774991764506587335979386173636478986863870188243659819329754918855047877409808994673389211667811115219361054075749541624804831274321936487418175462018556172573434694682214220060342134990833062988100034477495389276633772259015364372595291095675013303795563969951617772128090186603433849860231742457415744187613506088210799532494144063000464766287427236150885060372482033391734448578540708989872885213874838254670935634560008311075558229163856178706937891471224435521796619979072027011977607904860909799726525623916342985070887978199016231252273558776094854710994817902898895902581346752922097963721083656785742605806866129746760089666393905569901151209832605534512224395978650657470353712992139230061948616263736025408700141059109499396529632007368200437614946582179636736125085082461989454611087703976171769423805829906707493728631088808005373859847327330759964658403034618077595574937173182539350780023633170667099719388487610815404792963731355766272045255695948356412350156850123548121871559336978166715732096708188956017467659222063228122209505750007920196322902190721863397061411757312033021925010745674025013604927444835283642812719419540871713971299040651664267188106274614268297602035626458412077124649143153754087443330130226013068985303696926572547329145901494086439597278277984827790772963178503255008289224595749699866943744652356258302515388609059606055918041179903636550446559988420241254646468048270998728113940516403564197840962728615640449688403330721738360340008401462226731774198216263593251405127047620049762927205590066480242588692621908026518194483242546939710382420106678952390180938456282219918268530541426960485912196830953034910529723043040162354427189549275691180304745922922012179392368461096580254985276771294199668235708109482293221883040066747959455279234976963603965165151726981842666693903889472502743898844212622841899689005046867894119070677283076169606000726508108177956253656430147230793573783657613234131518405056008297371068148984318478446199109080777247078656416452317850781027875340326525786309194541211003632491689136761902232959819411286405754258511869389638173684615045940389659159302308272007228953852989556064085132447418187822150142232968737290320503661962120536942049180932799044206679620954731755917545051593835443282517271227875590721983291112883325669880709508863105738359745609601303699535080876721473965620416608662531438473058581682160056740677857993122342727208431241007496246119258817656676130795051868756375306384216906434270350900128553462422800027821027546319258719372054797896384632857902399677864518878005713700550361983429564056241154809627830599103244163834083924697693453500895817497191174741830353288377052615172154680055715359544769331158129370382332843096178461992882705556462643540621945476280955579482349087492081038758930398899350174421332984483559312973682710369762716382564940311830121278815367280061091890428662781601037817531986218444580553129077571574331003481398646779176555377209522478460293494491723566429230878457346896244325122896854945492139643703118062179060190948966021448696768149284140465802340769795263604712166028117045623318758162782504559517620739204833585938836545999470531928964373998229102085818183642319293902669447142220080634001577548441672994049974358142185036023926175345540502457003522978490933831264620241098645348209826451484472519563808372199713284723160355730541520229847445280412966628365608524879402490162305448828050082504996829353099043065080415698737934490324974792343572370993419937488830903481892098929635690109853140266512545532750363682608791540894680626252282245603088064486624275743947952970287089108019355617418729784391760674258997166554869758903434093696377856637397737457069704149018354229591003270088921939406045716751792961202947410422199127041119280614605019764546187258516106021524100809353654199168061526696295678519543134853164651822186694463797308158896970822109795699853283748721348148886338206609221387279594628798401811028118629845006290431175005833239497868541875738713213790118784743915934124258948252253213224933320260990135948383013791524363594406646163342590102998003460790621487640063021613942052239653766005572198798451779756128190515300420528389308032940003391743155626025975336386015197354921709913804208920234443732096301753356051403277484800775952795072702523604817942282311376279320087065790430928614665197012597180386087212590179219383619726052807788594015504761948733973887242006593696533882947681511102018536198053565285320393249625693376312779394657736376844300750377959205225310291370560788212703964304972604787064767614217491408412043557658021317252433989512772280386820237828096382016611283118016770402363197927543300962338392180522582101378938166594539544665919141207383087126620123615319817485460289878283401792006374265748800444456857936824060954804236155052815236622058933001567974689105046875174047013498299236758564467680089159529049298271352783339316979025900060827540211038780346246441664513055923038789893069619438522599084569260962598442314372967947027425962150513823681329427988810301562811718362381805724515609789072436740817548263996681610238108039085626119310948500684895012888311019520415205410435704426539308669461643199987622390397353753465591519732246256439960175038895790579964229612665363758349394243271666973165615295395782126890126112320247677833039285744590709083804949580602366765507013426631696075500201886545712944052911082888078820157674566643452751782243392653745762885245660912599187624511596671459542805650030017220750928879415089561012953294957708855392765921496220131875198973713338049206537468960301435272916886812166097990317296148758264571385530673832393264686062762289793684002344896532921150346483487621873623121213313705219335795915638162506980116257553842260132778540945366328513582911199305664013136886034523749493509174423963994497491839145938649693181449971327618536411596577240449976910047915472231606535340253474760748611064463588389876266959363428335671906935917356909927804753155634927506622407123915455679404964837968123265957785844693038334724849364118124497913062530177397726300483731424681071414177419761343199277198185296483726519102135316622002326333013699433542281088714382664400788694692339782451729801302772764481181751287086573672569892029608617976912418459789103842987764102650619889858171291183722392689312972135721532944834339938922919602914503874369730505257217053348285578575869049963061144887172289677297279119879532873706766698507564440899488206095670824434658799571671139524202133123044523787230445036120545373705140645517438134518316094505740552695592142911996157071942511828344787308502826072871400932173962916300643639581634339984944142322506227520135652880676376064802616224823759798993779418328074891500312337991402453389951427405177751747885773286617619710631233975348207464185051056202008516588988300417138147589009105085640118613886891441069145858378316609506815048254451830058314772516370758933051665650641596315447158018456309916346232415737323841508207850618917697544512373172295717164104311884595010927198348674114703872123874388976958256563565964752747091166778159328341859851462202259273067474735516021756872755897529377648612812979279252111873290464002484579720217053363850398145781195119017071323349595293246505126356537595623802791091612351868483327852975944289076324844189909559684110622750772205802461425786328616097457749954316055830994047303446447660052757580279923481357629528330657891492459787020750152504443470219031595016414445972948842094060909397258493938353429359259708324767261181179570994193082301914384341252811754973935223407193266803594093038789800219471530987315102216848958752503586030579057682550037707235902823805529897712571469126894231952428663752985369921344158262688092974801361426978384900645271104634539307211896434885506116446363070953349519045089762756132198775438755840557872321179766064534294054962337761177155279695747648916836914869256238008730785661167550847546362620322983963502733788562859663840991755893188028346841999633691496728716268017204237623690470524151090745874158251438878110542989683652197179284611015934637916360968914922429356846499911445121647906720829423371585513437932614688938386013930816773555992527712260142277019349390677676702097318860057787064370320692980404417946660474268695502132590304976174995258354836793476998487670671501401636436672109506145896077782252817165837720050266659890187833178561901266899259535944241611890253731294828513069339716866476660992942889963941997678985898270486818834676682084064626025804845644545105954893600950076821163786482712937812953704754970175394317676507617537939269802219841193608953140705278736216798215257794832605215686005818841093472240060919557887520821675690179262366660657472095154315198781961582565565294935559791016628613997319835079094798113663395218707772777564176098285032048179619989335574016153667963180986564047562582284728222957513593369084392370373051172677810276704352774055643544652502618117468920866379720762716154524424148645822584654265521614026781307843100755707154677850666205807361434861051939150294933211728572069731423331590540829218742190066988344240605660311206625775459344484848634754014836828212422850899562757825082222253629709876310659133977630402180167983979325829364029109960687021076850600493744903597648670714753999035451487344696708111971325645207639222185954605516396416731941802018360838050044600592281677078987929549547238564572141938466691331529620111841758341214819672676677518302702134445270004198783737323414361432161133181988356615674168178655779612232681331392913524809043770863107129571928910303049424537210314991037044525345198276988374855906391875282071654355349200404720779912993186681371777043579105598136867793460720427500178537491698045363031465910216732994676082177459435782860540284082626985334466944194918524336770177265678818214803406148893230831479541148510748610219552324729604822156230612649837396502252437877681468414720047740182576916758705028092204506387027114925621605083663493237686125232195588665827686028422115381768736071280661232939671213637277432455969662051873113136305994252773493354664887353533179119214545319904615882117766143360105254164846926136038456676416533274509994131726775681508576886813170298038339687794278100470184974121022944335281654386610256590042417660705618872285600539414158779874120905386620725886542829214065830901083079705382434023337642452622047102339997185814890277567885355209755895672206580773625343257144345317233230296068505169417833835669825671027918181121883024740798909333418080763843148394223340213138954954290564972985356661923610193149426185528135806786699128037647905649561995851791420366078534517788033946178106462070101867986006408771537265572089102733494956482531040598231672817862583679023798149039133717063892629152177167756480846706551486371366681143498897785991946284095556770845992342624137972069705136264203131068482861873033175604387981111439559069536718989716383840096588885908922786995095344534231526609536672117348897141680915236058462208435540090694314258640489179372035417374706008759368945960937748522442704690834576559044446935289376838380553370941415435721228463944156794973159324669240315543987289689038111418717126372201194054748168711903001571573601862638412859990798693217186662083291985446921493462188730167926973546861820238246854361394246595370954582229848146014236086825263745212500852059209639511869493296670345908759476329993037080312143134086554815983005304307282110156971972133644524958334600169761933837347244586852074700800370934785599742847355627852329328249984953200221953667403880311825471345584100078522319617850877037134029193631320259999562743979476186756775469964883674600727899784023537537697828124892352711811417439482437925422236355752841600314332146022782284203381647043722374735463701196590501754718371591982268862111405463689857602182821568889219655605390909001794679982969956410926713231457027746707287531116619254789544009007925781799896738865633034027613356228330109704099331724596478267068370701493508328390295246900812405364084712593598606672061241147182317363752434860088863315209056961258336337381238480453549030670446624528065754364055322881267422716069075091520888240767902192811815789065721111379982573763718627327855647931725989224350049932453419997126432014244356744950914843677737418425381412958295698101657402455204497727746293596352100295469039665446833616603683123498419876281200991308281602547026859224269254624533521479390234246754702627762510880741008935516137093670831586382812990918592332296638365543139881893277201689649701707571243729650341526394007741413606805764379401934682497222869766018063623293257322255118148674453406271500705423639369547800577761956882951276514770850714645332486335984232467686082657045742129749875290746981756213517823674120359809429219845271955033341173777106550353473660987363527232912272389563220926919727010402234285683389609083526444805951033701395481171984086087817664802612427017283452675992796860594635726077373136982385688442774009358955642738137011240594214551454542740710101746785051039766539054906923080358690471315814245074428828320536510219087612681049714476810113073864248199981142005946696252753442971706603178040249609456777187767094920183050223153096476458581179248789386223579373375912248270083905110081426211890456013279316870587166694109465806927230130505357785629131641725076524313894188740933628952262632566762371730372928510907074516894539349826525123946508738425481417471427919029038686232252676074007403415940085996783877139932805248546065326407164171173614198212946957223476738156281979806829522516558676589154887859911218108813029290195140188023579846563407922743875641335465176101222623225242351013427985925799164083881269774310619457505259344673441992033482671067588501316698283053367815540409913962698727446464008381928645904376924406588745324433822185166043839770292415419214911260622980875059769258045049873650504020952206130432805741699170697528398747127643252583424506728726756299758858265624232113297398855510093736984601040112910067255164205033617037766075756247999647550299572135764687113699902725424496700604611011438839695337572463221599670697949469240989889164764717346177322829502641896851609782764496492624200886907689467531781270644904227341996787156099571501272336398256764123551426395896913466523371962101606747456811150196531266795053081612762101226462278699844787574800024034838146152810011009585657835062722907585221025877319610741395761534083770816289570965377924182050300988764155197075662421522887772054764090323485998961752403084551514922999081246155787362319908259325218787997438255993916556717451463761608079165340199075483200781536764044685265510613739733370834783645122987112908607609171583078453676140052135434379540856250805234570702310634093047516287888875842264741666549623905128521841068260983907628587253243343753416789420143770117700253693951580055957134471394163909407360338013911199422719678547496428795525886254505941382429641031315125014692387288941047718590337178655893978716186626946801452382639262144838590585061537695354586528293307967302769617334019020348362716430724727069241439749027437217983353309393058298538343760680218192919161429656354707095662850346558970227916158659575524283545855388369701833754208572344406373826597418647591838354858060287574327909049194329900452681369193273763904366244009876811076988161313819639028473586661254279552599568543178246879146818069595798079955447586680150274304701125556265777003482057770807547872397020676153691653088609448787175454358579179282848132270730915806797871170788682011442610551829115455794881615976686003928504084700262277568634292706648000865055946022286075568001152728787923423512384023202073451958948885625575244582373291261602601485815297893175201460876705598009151879109443334464557811504796852582870749257154099286466093804301375381742456544564817506582819047532536064911179867343210407255167993536902607183612762446546839735991500462761037238796616834636478376947746424638506745395643662783778076087460169318438971897147335490615465768845589435513064110612416528130863216293405348568588928777759594396806462664487442043145236377656622094060788771632429347609780520466910466246250888670704628077489061724352813971837118425323731526636393972541602716723410460027481245080405995529952574288362540213536763538762325424341004390625126841858938898970281816790529485424383542296789738167592187667663827034298788807130900240050948278948489457298543801883201812779182817397760018149145078624150023569780656313611511730696446300122910151810856483542526960665569166873524255686115960428333389021947692781035957457234298142303165795882723141631509126188555063911603518492713907644139872540276354525164175159920391625760541905925458691950247656120108130696788355282907627908193641339019218307957055219123584626476793060700154736046577557334712585928817826883053899945614578275253148401876663797199400431010670883122420280841214238628806874392248444618670291599979697340086142763407975798935443361703160556483665269534210528323723351197424515698587369494379009740660221446018787046173096619549954917071212546916841641566336144553426319136044678262880607750587753592861701651393219941616156868649037911344913925928287317478483094687577012430921339512543903311354440392789527868120391709902566726838991560422156158910436019369673133766126372929817642380657893888503578388036031945354031216535427528268598178755944426305702924065461354722762675451414972113769523997358191616694216628513621969459515990072004287477893984826139939961591949939872140215331523112025775414807321791527741911194008700368243853405708069188656750703585479834230194189756973273365622858799605504954822511208134027436423629111123376380593928637888838947175284425304110283340008124223822148460185704968223589116311918405232851792687645028897246485062057403490347524149907783153099865354372424988655869812723505782947765168595657043336896309543413264790200795271433034084601091195319343914329422550258365253150374781158081257762237619916502931277706183200577454209813796368014577936362000548482031684333022343111271189703890071473565380829767106605851401191869935759209380149148356573928186090723578534292634550224670692005488345103191141398322174923028233223687824992428362905852115353315898284377926373872730056270182302328345290612535744055453892438943768631819343448490521277878313216230907618499353793834833726781439453536971818483651658200435154572117626975454027363200345502887690390186502224035785014798744154299866510381469018083622671496409316569682571656985247199698499965309694481549579310698935343096146748412256452670130278846106551599678878687331633113496186684734793962114588264817569610488041283971007052045029690050665241930057923437128366398573727879898890124856817243612499575421487706971221204542700738063968274262775977355246033599788890189320835266196038251498784820056368101764182492792498863908006477353633570896559452307219213557974225463120205991104932310984825174579876194543347630855022107593062940079715923960198048666182686390156813762641350626682815184664922661637770240378281593289265728512365522436212057941059204080713281783469647865295999677184114731074071345691249753894195551949211913311677367512366060912563135140411710141729682059527071432897635064693558135860146134382323558340078902324496558356835196607374566954244973941565188161288020251813037417735756609533601470113241025917065749413654713979109988462304621141144548525790934539082734375487309013689689066003886070683010727715881520289542988284809361606364163587083247082043193362829952797255596464971055170576874779291813456216478695099412912259550284055548551727683936262556639735208608639629433265394463655834986231081547580492738702395726478328731693233139521101251176514110087191580273722957701245944257716259550835396124093167650884201112459594802868819171767958958078576168316650013690879030287958085569577244037671530075334980245923163937622888145128786129369980260982702533015340938397868811990005960086152498665100168735645917857816977657498789167221118771157682102271965850448343438452211600984506554368948555302155286293653271681355976374560738098403463329719248881836846243749352352113943352037401111123920484634813102680577189766675786419542427493291474727725217687024591454904524949610623485303197313111434542163324025679266329940906244144478552383899111453289139210740010919773503748526237173597007166302610536553302143407456279741198351717217966044232677420154367891765177918409268992674218174384760525669311180007611949714804543228159591275404016402160391438637808960199173081729430329600592165976212985319390665577966125379653475869167009174825666320504185733274839896460653851739493275612875197577620238957282388886345278028402607480412824161903248250142498122021235149980426378100467414390390236325834796439319574915116267094730366274852950453023160198584024694659672407453884166709375200385628379945716078222124719152535566003872673602632810723997841587876043831676912902616323979858812207165147142466372395405557114113613536061355251002165057997103829714728735357039694359357186064212082790427422249350883513182854732409304232167610332185895432205132972929472378465483780512944757541672343150502788109906620332687997224392522022799357289760344812467907321572127972795993329530722123738412229248007585746203290978968366605687902635513878120576537042424760035711693059370207846417766035756767359420035059268486491709124031133413325224406141945316909077965121913318153135480620724405697893471633238320279635447948768616202763547186775648430448108460772254814150989842737412856491204085637383843198586772167147742206524990907724868515784225389281095022806737850565784946913779605038295677810143055023751754965526904994356396850421903694117845434135764223247863954233302207367967102921242358985157800601478304114702162416592532357805294184544832318990191716711467076201694876546591597219748552166369129305944908582818159614656331938251063383036533272012205420690445658728382492823741086271353116608133030121636662091965323650393099425616793951482108818464311635164144912351226304768505470693684484709696601066102875493514366279959266586508084594404592999914673937452748660979787160645983627461838300877379118781393055573260623845745157015622487077204421944442037906281000302830629459146690071337673579236514944229761895659530644446021612799071683827541803860588043009608961238023451832290696987988249249763073560545640063809750503233408365158879279412827115033229947510093358572597996682063764587922189445676262711052131001855364147215645639120243326202418545671311009905038244114941510859193348963662128227242768216354853494450151305239841350576918753691295493746399969271167349126034793776666372760425664572179790234765543810714846109630404460748531776789041574698518525779165212903221016092112916827063425001028147192633927298544753019140520861753598517198883772610101070546880217046797236921259546001264320278045910461894035208630018528385203531805196915067227616106812487024241033253026186682755445006187288805523752142208529199508850759955931193420111030903054167902829821735314385375979897161420915790163536295335648693720611952578878643745881090968747421198587721341980066061133043878625801202372745899094144089190585428176838156239007018049973776940106939139963444094980139181293463152576391521086871708610981068778829165741787438303932581407955030498894556003513336462804779744898028376542016249721942658509351514549130795573504596994638303698115061563725540294320944374942766638682748168902391743751085189405826066828145573462748853894732117989506136763079309757119792237971587825095743079337557678146181014295465528284219808909820062264462098002953782212024612247723296983682288869096118755817585326681740583890260468134028155141102733064591825909008205995620911975421229805797174129120058072639445586370615888492483748323375878082168410978153694445641724139555385388472631385515112104579806264645645925541149485943740254483251613895443726139617341657599992691074494941721898647619008607070392230748660254759888072147971758594600636982915085468361854275552425828403383080457261067220439772971673072986351405056078643674083522161855885740417007529388859983494779797726609008991523750659878435261786872177968976782082001451770203356756564544901424371994927080291886057578837911867675892168783766871817418751493726680441409115618702482310718528305202958789323555086319853642816428993149727146620763862900665234683069632089656187694428070109850914703105337250622942403467434531685047674193571068455838921832309342327836907724501451136927075465807909933854151340315797949373715037025587432241721032723908728236497792709770651688588870392818959884086876080301033238988509087241542923526528460687210038172222658639345269599544081942335322585114174752573078568714091703949727992340626029681853761964893778695554379798301697736207159551172278911469230191508697800230055946578259420364349501506731003828604933077673001184678740417168735661600864014887926934023900858182477931118459570315550082645215169567859402583146818656632646160994303766090104148077594997057551330804915258523349888784802631790747725548549742076651335183902978056337042220445745618892418764398039742629151847323081705106762637703995782194576166146408625905961554170942180483360123610562513721604027466282279636869473573744063634641608329552378398664992646074259835399656348058950562647409035303021422891307511956856438751265120525901458323311919655691534772784400983887757077347602361706307328085020711679832571551832145036809826257055977893992718664203818783736991858109639052298046630936690950494597063932044219145966644521552096902496070402690796395769271753177412246044872886008024417172899771731032954381158662482480187435679147643121995956248687179877258372690696238364859014527256302114423185984489301735193943051523340840606337620130073826686490053401855344316210134451661479951085381551234275852737070734494257952101945661897574445384259297246846349463124158962390519768573996814991166122169212349588025587173482008014386120650699904249874490733858410501838571323537614122289049543802291205151185861736714161310977669487433528895919091681674244240255742616340999784227091615085462589418967766731233750278647548459717097876630036486516401163633408851356808197323817050772177083609530966403475662774760444456306621382562267931534981231631220589962677484024517335263263819698425676978913289072396107559951061351249566417591025022430041310637958359750244734185125829258808230005104364910875433129514670599689109340428579504299644414449087809642282699252013453313933608976576961318070598293038409929647900402885858873004754584802626089156158308814360775720320899475829559632946982688277611321687287869963188225535079200710591598406464185851697667598602852725195569159233040449522895708052708005072163022978811461949630698791784338300014320449999812879241380703168084636663863417899488084830489312426678003545532403573832094428746901858478037822864352414758430748374690763185892694325909363974365098132738313917527945351997268656582659205145839478202516722021512024918611190036290228009005547156881110378102464905597966125383017449702630925888445282041458161365254136413130043094280963030497546022974418411938429077706989070444611186038107511705109054782467726106442196795188150053535671462821436498862724957258771674184536634060260699114990342773319824314673203964395564472487908609829689223827450135324287664066548522796628149428758267950568711530885408201486646302458677824781844956187667849099986984114808104807460359040118233801019920241889079762936682395731982670290206159581308912657899675936345001265495890270136075087386288692914677756817737477453533963349725320502988901128629263110244784299686070369168422128010916174051716751761272929074717773764802159765726823920013622472744835695519397735387069836341308534246317789965699190944814944317461250570386948906997842736926080327861978692926208845562737386567202280431880830958172538735082669499894360223040991739946022896025868737018778706450868454813115776629821455142973058946385773807644257723133301249220739991067318857969420458403499313013349218212512024380660613152843649904489243995451557889432028106226268966202978508057629321730470893534801416209957575127326746628217167156330004246367616145007281847727039822043397199365315909353657744241181656220271325680479779738699025354526477777694999212124297185236283640923844270032311879927467904032303926192320099685048671910132402985062653402083512108019808181599214435103534795036268552364245938727075638385266705767115081147905894224882022919106618241229412441750165529965232126631688784839634356553616201241224318678769796182537328396195281181206343079051418762799794594970848581235347772024681602500375370565291112393984317377027687574668360571614404385744248131657879450271663363629913143392486138388216543904133572644318852527624156023359987439280314406284977206088978734717182009334524988568603466997694053074084792430436740583009567478116853118469374641329581458352639044222799805885256744008648144960330106493766103482518052889966365978699378233184209714208145933757269299376777363846581596512931049725900111590718768586718537087348067359477584621450756538888521044718987520720162273560271221215827117754230724963865036493054269459688351148824147846743760583805310820618363298216944213662170872985662723731133808737135984725494570838066796185910075138443058779902762894125133262437154370886835539206555884959985281841084032456632644613336779990507371685132309767826128638296974187389100402930752305333528417009059547971004016165510840199517798402235821033894541944072059210150328643438067128758768479702201704523135890516713661916039209045877338658208584971283493023154134005074721823037739550434410282508939131751263852874414391967403582585677286722140026156584587145774718510709209307588894124393831589458257314207396264738458460603458080108295630743210358436301310877800238328331836325826834992744802045746588923711872837561677673716248571920285345995387918206921533189524082715715375395857153574473704813884167862509707503130174907705476867295476993126143198813079366775198440129255417730534883761251513987263010350688426107600144216184762221910173131646879797922098305652739569315483309211473459202499870695754933705813935929096204223609409063089342201437426940594595131268013162383464214868297392868124051087539711987223593638913048853190490382572683756365999484673762253868540792924983451304352106335439774150144462278306216730326395273120878223654387009480090571377162106386308126770610950040446524283182307305298437632015145377353871716061583461225502937696737441710355407574705470351099112335554550298218626775348526091531456541074527922869196399773002811574251539171524851200587179162200128038960509352422310485143507568140418310384548752247389812442103739989420129683511868315653770810306476188423114277022759495340575482227175351357331726898413546342321726436554657743262427824739969545893479963499765409617269417618311328363358990653077373454718110289262388570628186945026261659714195446249391075321521476159991162101981325968771241749930812234532012816929534116586257232435851195625893834719573079748162606535269027501085276918813988289804284220561751883950659143021569668590462969953552598206532592191215268485827581685700601018335479653137423016065087535208094111910160417343350935341984683145146905535403262126880029625064909193406553189687256050634980493331217317390098779229266553496168616179225440300702816643762919519609303181464123198400923758313509928729015464833321507648830381447858046637702455284261228708692370026815649168209078183343626329720119600348904035570710347468610407579920555901033566487152636827140964967686247274898016118249678860699687405316343465271725783392072973994565658165615890017613534914740876375776788462625944080429406307780104269700818102946639970979600069134211910505183729567448878843219419582560621510715584112829660390083437052686374262050429355285166326327597427553398072900397198410823553466763451820132841976454285364128101259660309559754614888463400509438359762391201010593501394943953552364369466794936093891490112939728052407291530725884587405364395251347660064493451857260515256358873933126222355961796711754624456059456209596873418222078664359861449468474155661449071798307115206687146536996967417471035774569565927733301631078964406895632670204187225587104290467303645917303444847429124135542154230686115902733972008796745017172329013545811758702037792162256826255403423277405328115105817081887599505442631513996900009295921737822472967247366738026374353138936707377974427505160291173789090904766053308931572530841225283104166155459392522445079940447108168021936479636195890618411611436194382086119925195979364745806300283235547046081644884289467027140840726312209277821441769511888732117246679659596726494545726606751348035850480479139389045816089898022768285270329853897924378531023447977683288868202743543046420548232759968266969835900391375795922979390512908890888528621664076844101255213156101201118307306462296833298552022634487886672984334947626103231226944353582569451727312675636750353614619270258000225424173455930596306815032512012182088371081002650478246899240308397335200074358382253409395924879387078227251918146913488749581645965295788828707590679004437826123996009688098605472147603304229773385409949960244738410624068694371195872788647282881708773935041650124276220035021482365179972815240860606577397024108090460947277085788406714612083116564827700295559546395004245569629461852581489100627823330729877252532031334664849618251021284198264700365745297942253416509138748079911423828810654792359264010142396038955658087912303855532777627182421166192896474769948018955042853213536604805726976603293210376896792017137695236403184539465050977806159061027876759573834584000552687025969431612160999250310213327083702897532321182750388942280132675689177273944887458961393015494227106356024539029168374776868064693096699592686682789039475587003687746187981079294629897207560580565865151797374132035341771966845970515326620307003494009298388382651118129027108414926033952937620701214015280262880290275016173246900319729174208682073663728477041337458606433623423561472943553362625012083993914404526722495847440151158958385638615978028926691684550158934758223764188680925158193114027481937534304117145186069945010302303299162925554969361256595500775664433715970314481930581590607228963841672158406809785822831975994707632890931930529082341675316373286049387677446389295343400190401352868264896405437208486514871406077054786027192454062784961061614946881244563194386234585797211176449473165124775116139690784795692776208910533895114986437269691615425164431205940520041598559852095527061759952143997409853839521507616989656621733506664454757367332143326430947502866132073968125977798822883838053212092534579410989469920192030673854621840259613748224155273809363829556566922135501991777512452490471082538023435054461707021832903857116101271026951839151787665862785848202620974774930718870262252494673341482155874460369773739163688667085061505801839082522203228891746959660930401137246835913955406359649733370208725555786886266674091495866085326190224893651130404347830381275009075441623202336648787776928235477056764453981072101372208340666261593725565809507389498841040037549996698984643113070800650440937445404104355674611049968021295866473380856282013307083037440736427053371844583602595748526583162381547841568241035242902364727719973234967316608980592024548925699175999325432299529283026210868222245602421529542362066012592789318525285842267588315405464511877101666915825575985016274369702812980607239916323370511029099847376042460458322014370527596981665802731836035262275097627536340978721872310166491019124478531766180176489265308984101535170093392079170841805214725931065691758407826143059166825817223581130754443301772715271170784042465685251031282967511534868955211640103065759193012399769093291105592389620051674311095772016776322020249100750008011181703221603317830170182806719429014627663342628000199786457975224791474820835112545838637007585337928356997429200611469037112881469695123503766827816600328707246968528076571222484869170375551313082108084489468659503028121277694266144740362795830847157337735351619167149909571747746192750827898981683359928989520541507130357129946378576065003160427072744421014794774684490700962284856264080753397871131384737304690422551597591471649665222017276410656299319853832003971818918626051480326813363128036257999958209361972646036163070339778805685289026383505850492755855879379673849512817433646205247384118618635494732771883140285247327074375577591634584395741164709576165516388215424681685811341111823699726602458964606863944336226741182418928946081747347502325833185519866545217706116541928961453226312995740309681107233806665091059855435058454681295190231144778985048524808114662995864332946176729029957661179133197884419957741092531365967500679245270235290681803432030793835813863411587680284795123014344565724531740659595417353982931170884091717356085126154874510902527362427025792845129465054491978206253185472438808554944321517625552724136397483440817683692587404139270455817905945893271747902569633588225966643257722109922957218662367568053464076710168147030482473578174513558211887431214073111220972606786914910331301970582124440002753346143793001097820859161758887800177038182610136196153493023829639879971815842910679621118026532184080326406123048173279401065960654932591364889307341636145778073964497167079800619823422444287771419372776197928991383819940454509626027329663238896659743347210075620728542955452902502929130956478735108144822173040784647641246185422738695770107791238328596780956955437222898201050473717967083349158608256289594973733741358939359304430642843991069863162856006650493143930811025676360463317256422139969513047470114946245536144554724528286585022910328819627948218298947850082555871064715446084043887508533719914013504235520333146994036484890537064184334259438210193400790316010548417458493658456017006272721042744384465268153190962402341537134405208769127729605492314076928951962470435387034170409708292302112790645043600732455686615978002323706471625179106080589375724544232123468639209295623140301123141644842400309193454745385392834783932927452821114241099475326870708781823747231339865345326873507972207045302936563797701331429465125732957034138494050618086040261590631450596116175841760054061418014660758074286695807420781742522786926823615368282346743385915763143898158666592357644084124796823615344783015004663987418166621830024434276512873946595714030726015070595826015594401599633661028542933924415690205393052109164777096493593765393966681019454068136705728759361439073652825769337292861870222226259593522512381812666485704902055427259106060512781841737893342633143831317445453060553194104591362381615008740509384779047633211193598196334930928673038658579313573369209041681965772339053713192459343708851809091487847895717040265549067387489533248644071600761514060265412214843348915020374731234874441353078247506965772234220439920928155379858700776019450071235327669579079506657983809065496837102763648916462990100023802186094284713150016977512852651440878077375889542027996464606022393586054853089574408091918139862888964167578285470893898040400538239980179184330006234880329949663252607901818184098885754347078747016138635984003541222232144577321049290254147049968733979911855721931627999946822600237779974897134893684518839026941794455556414841341005760063329652649719075810915690110938969991843470319251946087632875257031065372534071212725589571142087631034151851184897919858394482973774187723270226518517094295988779824595513519524018878446903049048264533333630016842702055441801838003036683980532998286027983616711608011169195166328642512871728490212079762544283413250250193135796112603841223680007823479135461094290080836501956726451255011268806455923417377380609597560343572452436195982918060903102377981133964967339780453622574815473336767464973421552383856461794029094444430379820774975848441053693450297007085792561242357907137830304531790710024373560011345688333709128420259954620244505013550822007441800696902887791020916358742340182951506230097872401696321232250568348474395467318132965523819821611489050306287360037022140160256143798918270955990783078909529252639695688935166499632999842323122405512198985979576828349268921191698561963489163744731415545230886376158606343248395823661074501964307063102647597424829736301698534620430269751563055863984137763344733345074621081105830934626388226594180717938583786268366397576740933240463839218504069074508846958186843378356898841993206253671084006630072326047333820632856056903807285522116093036783161687182035837363142538741237878323540300934246256673312046221899702977471710821312965185799932061038115902732865370612324083439048939269553083200021185567897352901340355688357257353665637994416613078671467086023482072877180914540925489190328392227536908772318070039915595335580301423233419403650617961108125530161901813382464720301899463940224441584503001992847208654354491172381710995618134473827636653552697458745016968369149732737152660809633474873047323291412708771630147555791071307630972522291730749473738845449803660284376712605171691155057511002239781503136991864444453347053011362425289279630165780326515796267140769499249978982559400102261334982557698369040061107856954431957851974902470885276188812999507254609990612990607175741016933779844756836998604872480139638149878726981312363518741872992836020998478485924438438053862725313687441433524111301930568171609444659800504257360849641849780097877606900807600420832775471741210832864516111446026699265407988145221685320132191978536164453112036703544853012711545163468055783953929546910403491207446878945098893179265713958731856231264398042431627591245438966501518805954031571812832822167314359175371678465898321687404448057327304580742037826613264708828882501917660496359461579794953851000719893547846351997234351604080960528403341759043081554495093146531249532842545414537788028757431099126181923382842437526235854432755997749770367135569379380573850451796882222442415471279159828484476112969907759900106752403431947886848927854177090758381144564860623064471964871693865344672697661252704970235102631700002070089432761348489280050141846290087749197970556863786400608373451147316648334020281931965807348842190689589132018025755651595393190789116168237422767491619035439035274522362655244855504184294089109982797020407694558877995989184229852988666497101271468437429477201625311554592669907520576093692990049217768799936404241666835243803143813453435521833870707090266947600709314220694419215786025319059740295950925774338789036410038958862198591309224239388432633780974652874958670333574312281980052301351824837768873383744076390191603516059206262302074136024629018025074481465736353175081240424908022649543910013348344336760490514849038369753897485332833158349866566340327582337615221430250496579546064500664802090778995240780841043457583752610457030045005736718232157390087851648897886537090498554078461819255358239791833818339118899920523422866870850380181695403297444517650579522065143366285002320670888524491484447106024376571179796971485885034052979289509121420781972228169945949219433546733595452250689746933631084342703086031709122895427242315025677290978022187872615690125875189013579233360719483883569267745592240422710783986043328297581920658775335443841395797298500508181061272488373015532671177878096529355988827723372304415059253739915675113860935458452613229325965681285105408339321934324553643351876719944474981998974580680964446705534282248119512138623236253002489322081118623954735914570500378154497034014421292919210516292891517679071299092778133998154018024381896091063740925454596667085011641611809531517415076059961848642069000288713273382617429492934784146195471876734021152380859314323490604250474992723444719723126113567625577852145812117168027296177626478706542097863582166901206698979813613602744422776610783153411768428272908666852583653243968316891149791934910659183051487098565163009559370200336626543012581564381446017288731181487120162739542868798445358262248982842094903583292316766113187454689904770382648149988955157041708143640029245876459945067719090587030135906877955719197524845742379541114656634142241901373965855791639807719629201069455303274495223028248124637996219903609067139105409204945136376715973755640202451527819114894001966232706646848993744439530773590346615327335162800699220658105564013029894836985957220905539321855339379248761204833582415020111706205957159286981972297930348414033819542655899231995908713230550607445286311087467585724249028705164750776496539792642270091269756885571410531428574550087097464594715344885167697093433634867278693402327312593244628606136060619942309438275149544781420371286958274030741881969250065728162248408249372565808720536058274558338756255934534958363123726002000986666182698230409648089234129588250241394176209050413948723884194452675132607965874951409758721572396799505820745554204064995041394555827233133577165085231735163853889163733146794896380529948924580618039736204487319308169470235929802962774616776025542304115998351773668037963617053563474205736139492625388606684982155354459201787242277524330354446668760067448045327318687921252964079761228650183514965333536732520394347388328260173518977720142062709754483852705674071258722855324374766895266073413967094767149465172188163124011881574860431116319420181616529182887446459728033858806048742525922491553316576610561283618455021393679898232993913463810985277183709685654289332796779833733879293758908049085061507862714902526835497429466826163577568357025984155412573394142709233357180082786199038360705879265745274344164352935991058536717243475204300673222053418541138092147338979862632704200647632498223955684419694567634980373118915281016769172375489797953303819769134009574368917755287382083560869043384718301295603649785059476025520576484237499352746474723400402076304044196472327041533031357427986770207186837615242935745732523394922242275123247039029434642951176997603098267013457186840860430022312295171271385970669466081533115604058013244207038441337513717316377873102092806702773087904761535620153949318180219994490107517075557523908424544565402028492863621746695359225097616624522761112390175286187350987742258418682072808472708866754253803852047626387239084989839136226256070015918522708022870431848857502229730050805180502964261468662635303924070508316911096022886906859625811732170923728859348535132718787595296896581646943390624950792106238311239097888105868824714188078141555071713650071770783227173377138517439390293607861704778304011928210277853413864955228462654820475200065827231014018296781198924637507706034860316471401492030388664977940741699775147710360597079310595951741706951851044702100076186169774975538327075782792567410132816798850451660428566802689945061765045140795827239115809535156101677314198556888927065347848515024562545480595079403564123992181934648196263214079380931479786828926041993656134831216593746584090517714012977059633979074151752047943527728024640990657734541397683354012711539440148134575756061060133654459039815968214309704916873101537865829222015351691858272374189124529106357200713799844469336015040795844778956671650966076249639051055581690864212069940217162603349033578088812536616957397228098078459676088786780371200830881272585772661743820970643125321214438765991977545644887114934967070616840937102781578942482907363195210960811246322415772893266023293204568731189008249462239259643005726315512323727779646384071213325933365420544423884620315510231322413322049879026658777310977503605367850722671837069020272317438339205379713877221039327864642933500172139760646177485752310967264970101056340881291721684418571999658233357743032406763672063776515575018012649108186312413070252518949203199875023811146704623861396914551774797345358489648336732579372543590415111761258057773676202402032033489299791453546468146692223509856125997713038971154121787985870204387432731627500191150391657210203050664566324382737128261458320358344029590408262467582215827298640333645791535122783345258418926484517703193370167589612279760925683041668246358228139409806291304151332144902953318742231322341280612252708643204978980014366362151830861255156337150316385534531085178424549551268208891419218997341540277180334763845055243914784773343029214417585370289409433204471439606607982132834338219734516030017618936801560456691748174880558085237673857430510026062968279421728876406860820436469423691233999126707407664185724240210964175417242574037287493839695228267647676229119687079055096783158987080632366204617344026415015709185097692969842555138076325365732622449488548430272181870493337716706280250232055527582769990632860636646226013567508276392532884230935908712506772900177279743087823682427502506311559594607010822476336443434236738965594413800977358390041117463241917953800630529617424055509814533249368070196240463759534747539150803949398731213256625998222574816020463094371391968281544464736859407649814871842426278388297850764303476495601280754857024484289581904610408094550134912782328796955402952977275038871347845263847563536109638579871042169732125704119189562054252156123965897914451183018169323050337222001082466869783413435138110772489479044651849554374724143137656521739524931537548755322462295088465209451577882589192578368503884852268005306251917922121542890314486823294335274598737621079217858303748422801055247061565036176573732384022585010239835562806550848132821842652291146072579321859205080999638228858900192914624272454221526511720161331484174456735750655693875627248063264964303466679267970512654904487253402671770909538358176040533146665365641906602258852611913413290712734222478390692115522278786249128184810832535266476248235645570649978540136769108878826929932766276517304699925259830910898115492627806019190535279934160953582842950822934794782231612170355033622691484077349927252709581835125402983852007851870186767228103407460434179041313748981121348463171859474664079291664437201110592007707487540648990453137724819037898344492709613760203918307722376164663641444063369248085668440872288198464326229125613812762127246839986942895303558780297374303483805074797421261602023780267492052925579616191098206634327530162858855176035052224142800808990444430328830009406664091860765945834940540191222449813802366274614035141199100503692246942197669779954046758650466849504472412547091844206588525578896813224500512707549894889822353801354167441068675805153243600592642917227768756915316640047114769573514480881182825030399767625934286789831189057326689010970546140478032491867383881071074931507787716877055418214453494458365456709820873853858212464087651833920458152785549068893050058434327304282543270948979444219716391536409628994461299176150447168112364491009994641933406312294121793500140679103968304850061625007593395894095680108022612276993968935439172383130468335017309366377644614436786571870273310980006524273340219162989156832338919446786247494307758102051830454426284326818586931498145218106995776143727209805157279843384959114785614433177435205811609688112418639183866213808470118005591231387680034241315784362794815016811462791005197096656982790775376316456625408740795235297346374799263569388959370608773166635625333122985193057897492205467509665267169705506300545556100504517369876663558000990197843806960717072180482480632578089312902435323466803414212788190575581781353220847095928600948642190845968894227542001994840593839410975963880673128890222224994571098412767366652813221531684895302165245408162585316952471912746872137083878178912882342393709080741449274075708503841656816264550869656024606917139662729258154555789697415659264989757417610783120001143385409537164502359407281090880366374242840150890281924163146299586628914627177928988192243982597018797960073517431869546328003240616929100049973903319670210624652684319899544763893670690903583462576261134902898070295203587481995463864860748493622361158330513381160269631453056815832473261645273359108120734374077621904053040216876066016332951482625365198116937428482404910491742818772242102072593648020695882925453133605636918510003742547986129583993758157073789393069429686917035949621784352624629321555484158254777704781083304155481818464599337446618862320851649704680255729928986214850713807312137319306811355735402831807164216358738555617850818763533713706840126650198290428937206234578612678808710491475443604032670672215882419315474004644464205174587257140964633613610699205635427392872307530867260123009633723448168563042168031188216576017307278365734752085969222962309698564656256515882810226210642921998544426487715007174919666319844971571944481903626513255120078652763724194164316003491571172582040050416824682323070743628430039139223380107990232116774306622043598582458743900306638317055999249219294064293993518555815788803390869612165523275219802942489955946588855725903745339356914845724834432811493533425078436205818073394570191025530376227383664837414544291795208006546761508334102652044765224219840926466889714301798239698828181684067848340691983116951863335639434268854540219463854779011515153814855042592391830433487673196160913194173306635132596759860202984836272400574899409617174861471174427493752020451192159733186639810141578587248928174873090954237538904317286205287756026067514265788257869659467944915710672662144743566413274569126511643633775524979458630862656877769551063650692289691725010899616073701410225203482784637306328966515310967240257887546979725910967777536222546363935087477727203452837278517181323163419034130121680774488135633232650674782602428640407084558282180876707829457400701660008576747083358308467243737988580267899065366300402693822354366852917740997571694759315719745459673538063578529395438437622938360400916780293854391793008818766207946935348606904854732143905791460992698249875732130737813534623796228310390745103218818847464382867045511130883349562538152854073843239147367202660667944967970481813102858577756339835176188075130819524295448516258812976770384642538466013565520382862909266211101069429576419322719067837701377835520981254381260619774096966583437142198142221493621273032485909262854030026876793616946550040737406597962511408387268118838607221022493663649385694289884479043040313805959673039312282168988799259573955134171735627766000540276497845063726219500460960754408213586091769268285158808290162838268257436718544861458694092225687161451921997618019620951008200115784807346175644659401937289197570991581602310392405851325216481944120551582454754006188319657291596781246635913424410914989193732013709403570778364596492236764456283605634372349052547323262907002129275743365268269325806857230424543389744559106091722602980489914570663113867524876978039168618922372523738602794676315945946804285350637114386056948096904318035644897398984204118139421892469662789286611358169474543303824527168937215527189517425076950669604230194811027005761674942147364247123856431953177678909955769762918559680369274078430026663613976709175453006186988682313882897244312176557733715848735292179020209345188993975665840071237809006342021285302260378283780618227824303024884880115898458214760475353149552181522960976874869575760658531023861454397522053043662365879191404496832660716677082359622292210975887174370806335761512847667439305064302853808056331485766203241926421369077424416053491361963413292118261164467073257328253919948086845511569609590968840642145047254002383707771887580673679208369077044143265980358282059059799482841534596164954461350809970705358185127024964225311044041740313863701296052765553947732480899248284628595138189175347179825415466852089906199993013580262734060151038778226721431735919710678358098028230051373460770413460365058766652581830431877313381009653970983720979852479957424831561411296964323791880118325671682791749718832384625334931635933624940589293904585837466555960779184390327374756980118658211696209951233739883657963632990390855538284740133512006197083637818075529814375403231171284843269457925459606152919497654733164198622662676319684163612440075246785174651178129244284225969681129679133914564217961335866247455337933373896129338653000315884883951709470764456231045779357703401710181699570606550502152917454357217894540383732408572190383962000767871380908108149438406213063139813645836944398850181180063566754330178262882835104756356095620519908812195771526490892455712652401995728385476762210724741207055436369648762140928510456588217478280770881994858630322914168490515727416250651445161556417208339823652973863146679863719522377245728302220285168795968164896439610594147620667847769422630876808115327859463582828870461648412942899704592563698432608081444297823701322789609559413748234901067711175974470876808374071700022224416023359718376195877079177363587834391903693490999984099855622423581454436832032617386153894734188190935775019464909585795730656605523703509972647047707746946107847953520582868309598817398253404535744432632203423455933984037473858926550353281790106661474985856509011461423420878377031960640369126875491260690656822888114763289453790872740372637988491946942525846184963527074831058703443083227935199714732630959636869734248766816653738596957797601048950637902178134298934674139806587199086092831143874928625204822461877809619493388603751926735765667014553888164858216822778231561156985651104312754344077514886678222234815895555614603762145517137462835830571821985740543006104029141137029738206955410551026014103243543014037972336397984216964972066429067991076790702070330007333988330630434424850780920364099195769413866614446759182390761545115622177754837045881931056593875913433555484629662651837530214117899111379208924835869515530776470048858661738326358166667647008866154713621466838215555424920034483124961463052624740127928170003770314840963558724877195986127624993047219626722942786542594317120641974200843660314450846885621263821675591541594566612867952490311596417027198410860415219667094042458995968252889267582437864882711547718271798588255116183770584697871153115436691819836494476318282443515388744351984012435426233563263592546189381039745378408540837614339894924716012463715934912670926479542818234046696300236888211508519379326486972160405147161635097134775135764892561543175464949898449499304804671240830734989053149446091298008832844200955911445992055663092532806551199157377847679482058357705597082003589316132244919680223020860716005462015616676627836089669503915139415151070369056485346592956711072302685755695920476089096347661686123960500120417778119807570220387277147463352380436613211731976071256369442525788570387206518003493538127996679138179814444862611375501462695001076420269558151854010204801642757554698852200445428142369874408204485554007827456864247733194439360294642586852393660188851730025653324715943374644487111239320611146747759087491721832933542892238260488802622389076097636899541149143651892187515269666357072438136036539808585037776205143852247799793917071092665156680750298787811965247324628538126931221621515548904438923912744985280392397649072476684299437680572740903330064194478574445064396632728798294696246848931014113325481640338311518514272129145023917142021537068856440270304642987889136112275717182712633544250082533482674441836033999425517825369011976305761455479523921102572766356901829528480141370641984415467284169089874364403628324620015440530714618611895940320081312408703871275467426771990031968479734263070607628622532941398751368902692994442845143699646493215858189051524850580256293550532480134600731890865126914638032131707132618706948173503403806167907334708120193867509589210842047485298754087010504225793088846172024855759897895738981392547541658819999458215665089746605250776330781912019957789309342795777914076972197802048445523035552594582735463443366518293144218139886441301911811782266277866365441109576525952661619387205038301071073455758716123530285640978137528754107171796444785162453701492940299671936745351890598621470784309516794293378947374183508437032281667503331309007796933136441015468622160924586028642885217192537948237724026959412383330567264937553823986677046964060798520362239125663836779160040854105294710165843997948798264572250316297284138149608442703285445797638956705426535421144734972415035818280564479167170475406148960599130599823546590074612349652462214933423821870226193033995038913012437718676787330753076302918163682803714887650903694152501601458045482466488772123795619483784277539135368379004763396357951449885265031182741478871217480347734628427683218098103989969953913373705001422072105233253437303336519687743167567629671658366402368756114411900081931327897359576633364630235380199434832237165941400007649225732973984418270503938807729360013972461881204812863028545222828791307874018698139954327690109894880826519479728621463936862029488482075689711212489409168768396891839928564604973385061176115818586909280157745130611577506753114866059361634964320922680050195530610827188449340606797311698574844901014288980649819052853958799431392320147918764769085500538575910810087071152672752398912366607952781540733671959353621410034697642636935372030645880468492423942687946396585823296354459849194062899994262634999105906056960600141833176055612735637470915044448512821741511648720980342007261665534503587965273111508534445032288046191360943925060648807286328304001944949064350700888235918820434019777795170142956774614275667156229753032309017343286175508515954575917240380476372440511925299536179596309955982319628047765803015492186365035035158833461267603804266729686653602141136863262505491100459894050252426257202081654184939357483780767083296144617106284219833560833162566087404644630428193474617094310329773705182281297034269908378104140749455587958625924183657906144470459903099646410046555041083881441189266246992840705956718971155219709021900483697465877278605947078588090197364149795677901731281371099944794166430550559731355548928582980647598273673425815533357760402353268060032825725269893568874507217340709767690203790762627321095611934114138263403886933927636165533735158537167153177167260480355754553102367086075596190095546421758772491758759952437869453784746078383706577197393345910018034923602645227852516905336480937206015191652288908524834001840605513009682026513104703539709911415359796983572946668851051193177877389477991722859243955155119807457088547112879795247016133393146974228009740332474245086782757110359198509154998026720837201206844570107628827453965069797004790993603840121165020486467009369712834864079920677553593795565599760328084055855339222632416126652765851309360814308626570484618592666712574864398961127044096560414080125038180628315599288377884080579736045916215487366079923197089105155953381830649925545876283626926902006792624239709760648972048735486722781316631816848887526406222332798879430393831558775925040085397575684137150181818124923134175735747974714947945380661381578549211400773327853946969069302715304233262077438915203769306166952788392302992915682588965261108765649846671478367940466493851903242361870134297172786604050080798594332674556250924540518858101907807698970764429882582810999422953043948528117359545507955616957562020425624544621319126390228932580269828798420449736882266524442429018820976074462093712524230829765014206273450087911325489168312142465221391543655784589578166673566650598528933468184312382765852313589405822253159727047185373608874522335497737575427884923197497564107547933933547737326471600875743607248279126120527679385416623331725495909437126166398114303262136341805386653438027251099276732735677398699709093196163057524732915588990847980806152807593030158253554585112536543674284811201839155369587310976941245021820013169943336380248844154255016294227964875934696785128024490842597003229072029556532930857540382359365759368780980591970634656209281045008393833656233877296772367920819070774794081058333147711785081423060596205497344325453834146401949618082506943879513644780134647392436997311964565581092912887438004701970581877588042496670337238260889402964795675548844300729466798969598649588341290064329042957205227223785285053091685395974816949076993109055376709003958912540060059112599776803083599009689304130294916624025496660031117615429459847267228935784310134973058048162342448834995821721981143154302351494568137380886368993018655804554029654396881565720350908405587183908275412364352023389670521326364872310590468693967882575653044263950000603818431048494805215147262878984340610249447105685907228399575063967469984787611145799756902649555929995121937079717773709726061221967893623891165737027325775032176602918000086588970463951987794800884126213870367132341206361270112919552468990166259473523595214076203702486455846587726669038346587279988363996904612464850068187534399783632485566302646054543641403437386207989684352483244468163320612335812519823652695183254153607916476579793746543112155570633887084931482371462512241991699398929507422016207180744538412904762345967959741192315424228533128016825789561873705074589014240476472300876385024748578471730278725558092382358088884327355728251440843488481986394008734623525193262153868528880815915693789335653421469097443866497898039388499334782383544229741923973194202860629999445425116613972313973352447559930531602733929122920717285844887044822691743968012569907149359226603777999918788014821703464257165201172869533948077009320656762575441406574584235757854495099712828877243860937179374212690834889777280680798852828887492388988893525785551026933643550123026303765420291058757807230749928724849880457015065364337604404505267181135282740561585878846300216258263254874060394873254559917312459681535004064518459054402689673854991587190300331491957265544447724469069643233954793782103927013653197445095901013208986048079289733727426521031522364088851351550716877907115272132529462034068080748523288615501046017080282345048018226750465852566000403792380771027301213759289557518336494851445183655358507706491868068813110726793398437681398575327608107361206920860995504235334214940412294628206846412530252190423706836384280266379214032919945679134261012949017424536377907318904096406489420333548061163637741900557152773649909673742935493799470039360038114250688144170407641079541536415885424687761868265259585103622422163072849600636759035805817628275956073252429640322480330312636996437468263892454365478204333596244100052898625010270102908760959945788555248730786668761802746631664570124652313868017323973196276668919769734258415082711623342520400386997864603718642293186400457749084827469946701589352613861464523319389716208960805490270704614415301173961642889262883210062664154536788040009562608324410954554563278639347335089180397019129505506116212445899874132587671215069568508238785130752656541106729633033312304323838234604758758696875467291044870693662671677704046048276720212307798780137940783119249073424841939497075829743511501545116164154547765231869418074857445016740070710287285576240429634786193347593599193267154662960260686877340394959077097573571618114715952578900572513763539498632447208371819132879914404209215367294245949602997826300851069531153746445326586361531235761042162957752216163327488058502454964419116960105198906252676393697701774948706293521647396170535907405847811442192817920222345701623890648952029814063856509903852650578688098718326466637863662622973453429739620896415794969543366837261193649910863540133642870209345140935974274071405604326054557787483142012905251621827939937781450738790061694722430777010223768032904632080096548886660410407988503710449632908306657695005685454365095285063705667863688430516057323153354881942447828255935650155980851217123554068130369644644777939659597970700074719904957962619212888752730603967346935183664940337711394661750538203072570697123452409662027270329949893885651674652516878731109680826352110759936730233613134975367008516109945958343056190526423740439011440514806144485346344289627382335126874011497687265970585469169027589100939878304164084615022062582208514173118781233850413753503149538687719688920560186321161172513495251933297833156549528922337626839001927169345807665527557619074370791891022448131374631986992343328815962853284036037089435519204123895966464718342351595917414890084751427952776448482425627423753671960883730532470551281838048566250494477819282177155008707416381089854659118574355640217950946828169888654871124160984582705726870569842436831335133399363470635165245917653486143338076356102124281860313608301473225443053090857383696748840721241251146208612299638705254466168526786057651780577423820896032524000440400883147056121981870126147515016421901770365261273277932381527969463738641677892328903759377025120711670554475193021473644195731825774660953532673952437978770078134625991537092169254879856619072148151660813650531783783453869897398695349090713300903712103284489707731408958952977265156734793267838628405163755666452266893769784025687624695583054575472916345344526256633882963966091686034461039925250519726599012919270033632253921782023143736979662909257231677534521642739796890067379400376977308002964798599897713661987371785749611558043698406738440256806250727912177202066421862616897257579308812899956559549687021789435940902507386119657245649630873735473805480073879213421593434071080665049667563364766825072216061351527326477893308413814798392270740797874397149687071219616958035884366823152208650527235585915668355237959424392393514394671586875980788854635206977483205154666888064014148044170506810462027480516748832228759773941303776136888028569627790426231562228823335682426592314018736987550075771710374930270189204770575898345686499024703443031102721575778860321394456762838443416107434065487728147432533411871526413409717704372801742032758800409382426215037911204809679162269584951555204127955710401927220572751418838053376639099985287721929013665617078373831485215571681532667144797930245478550647729390857842932658781192918615833069802762996828503206554416170445454206566509852430316001268329337558717635479472392414873430519218979758184543291246871142406162593936537292375860783577216570595985132349586984037676374022591476439917073283053588277421601601596916173082600122174450548714817921628866581521372232809206948929170420246383616607381188535310855926953855652654311640996680352315731231337576627799558856620427030710406150199415097623191320848684810675427500569074152336094822623925751226778458180439791420443801017939969520005994701493508547768585846473223038948075819514890745395919277669664621902192535951873461428048123743742926547916663668903349432295764477096612603868891179442268375938503210229422703145384656324038504696558419300078396991509087521140853295389810736746887231835923044241557735786425225832091971140119751064892805195233654085679598452393731289610708767704251818669335332218884247241667582708835331915552390815467138868425359667027310053474688797174870557208037857208124486005642418985047967741850340684975859343592839967069627895626332895804687091029665712560642410833310241137016411735159823025143427267973019922717152844734746911909493612004802915728741478862210873219541925731063442319217776848707976880173857415900205917981146974426532813504478610807318200865489569876992830563193505944691604463857415074174131200968689658332379324424310286675965909313109755365644047137184124215407238158687568886852392131000455613236346126756052722967118334296049225062983023280806108923016988564723222450867868109224527891922585180468003917982841599390047689445034663870113510816185078425143414749850562294826488174162328282066832514656588307632325896713639354416556406077736870863818075092622144961191488976407479640782515519091035853396351562600140413257711883233417996574393868744420716185603647095965327572743126351544763010538817033824032085516463623867161129066379938667002176852011698035074110270524855302147978112618217602337042991728450508745163904135511268403295553032360499355578556312464970735711266218114687654744147087697969181864139488768619216633003618198662070123613173796249209990646621529469236678945229360569576740780514288500369659120962179818151938841010438520827182654612073372827693554064350871910259259023020562056990522199024649057193055833114206249201935335916242515612128908491297752920719168594944457807098644215656220197364399894672751156333776568406185942009453675862895231184444612648371567090790983528203877985947629210265189795260417421603686169117051490292095689312001057906017180425549492628521257278654648760546165080112561842993325981128734771387198469828326943698232306556873328102952118280642530444841598377375344272751943695242913123125714369963758959116842612317230693125464057184221670468213468655619141778919452496107649381091965242172897053245068139890362274945626425972106599940867743712133534788696983315737123540967591996540025690909603947662124209547008649918411575991173582065331804946902286307592020510616677407104956508456445098076984513965432071671096075230630309992627807768027044850496497538895528758631636375302219487080173627761488739393026415711398696489551203990068750791311322203010443881718535392179470871241374058684128419583469935155750725432861753125248095323751995771329147256614936050655081740208355158045597792115211761115881891695049909364356701646033657569194874146642319964799586802758411750098657127459272233867096901130079416087683589324640143269033586485164687827025836274205990467875023586804861539738061205028470467186936391466891726398094084080510982906491691033596660089739571594520348765496259313889922888614607933662196620229519647877112628054225439998443769154736346258878417516898400476912330797864096130096933645135346863217593593275856642415005596218443433685090099641840901345763034820026778113019873797846951023344375137435822416180045620753974755520746752209717664848834415422716342050638895660163644820905925720841407884955840140128980657092921117541296369632649164600528634611040370872685561618033489627497685216048459103991012691187146435117002601497067521336667415212599197323602211013869547237001375442219442292260251801436639163588635850344788855945039278028470843610090345140438768313332821618375618164862973183803140710746148147089810652788675034382434328851767904678287498263735362696979906051102769246658145649802629075180105889161124537294746173172209951023843055442457165744246148169854680227446904237640231742855033511006180551687030611877063664481188471310880513501995936925455186347433928995711900188044689867152367893864308370629771041540718236173311939989960768139745183068794236262789812526183667789130926842456729853344598908238306701941080598074675703376424607191666703811176027998705793376949702362084720770070918440602141418568604452542512780004866176592013473936821173225808651188642150914538482570062618453889013595729886901986049138210733734205100381726735581922409704366188661499450588565386906182695671434606866969017744573605307375575769526253017965991636358197246600859170039467366932357125642237514479896569067950028988949946463587505435931605996222283102484414917990136675965195067358776193556289317401384625080248800411224062413632800346480171357901989498601020649072031028429787341115273947576934639879311174043595879560928110146026565023057465023138086095760137706856055393217281633812111058246848170309838170127169847605727432854132443124156289237653136327323725803435301636675224439656173336913240949370909875255836917258077320846003485438383223054579128448549916052380473857916163835052912994109060472323771004358254547438553475472678825201429355216299332180157262689408897582744786137075674454563861071565103884077923335119414084597409087048805109697023871349675364878214152523365287285385418667439046282703966229388295908440454443433839001861924523356363959222358547853266552583427262836061232903861164366242791295026412945441999438287627724624933310294757149453927626197452372605137530106280713066772940752143616850017093677181381864392177866719072388756682406261214646204213163639926765872396231731089172030188895344933318443680024190557099327797546955016426805025882962723654695800379545026073679329761867087384549488359614893770884185075419757501412164066414725261257625389178684085215967941148940925311376041750392191459562207980750511546545243652018810073642414480716360854866972502652144984414550310829504301838694128615528093172584791388672536776000478453548021859762090275414768223894709145336810149916678812206097662011243865416050578062961600333867367008593435485904669117905812776112604915334280621995001634583379678460881605864966120618499456287192042982761606870895523024484471589467706471093078866190958129634677380209130994707207788902456125148068943695011239935267501967516299308916668955941162968503358765109845277833953804059391554988059144485627125476229802208141225904154551772366275415661071537431299486608846372392232119113413543391122327440766460818070892630679858399183387910857469538196523373466272761547862454439742532562337987784710366055793946985434265544243837937580884416021570250752134202190448889214799314421949896668246605769057397253670110020846246581347438312554024418403123889532901041743134670813323298504365946279270240863381668129420492729532497050094567897537811041556866867948018736704061595744319891671609077184657531117276894729088704766470528481110603017110860613551039545554905707037160326716700979175752341461039714579239129275838992668316457212875314312688653069386277334866487020367647961736444124734257484567474312359133334153371925495846291212452872443845810986272919089052745373090952976631395015339623855944565356328996272676851774859113916253963589822862631418746666920989582022551399346282182289831929682948315040057263115239334998759448563349363176472006999465019669947311941256951811547293962920589880268577709622206331719658677881408520539680622099828499280590042669135747278648599438894768587001471943762460080376860970560560147543327392831503580096991439201703792405225684194403845018677115200267385293228489388637088719176609291165533288600652732975173076804767612776911600924361929925972936726538681663114390115427959031603384493564052185943896200762417373062220104182877493304943059040681146024924008128445711138299634305468153191211007150287102513707394154712587232299638516362474564253968000134024785199560185822815812911776474237948872960188105871347332800745843671464130326578640553433782941180144364115771478640531215354214963876708750781195771128667427167147936872656987915917683061274188762352589486262633582514095272350946510832258319355516369647704456315891410918186512156075025453250246908260087481093403927374096840319515862624432609455518045955566227537927742705773547704552582727581967614591114555221522813415916877926613501105348189514512665449198400838837129331935464462448694849876159178972356991737228628798773900712381837601205501307313395590289478925175177640942066655399965386195833677895781888383508961793154967720819266696877799726230182321701964830016653688207445093672511073547145070643564936083006076866001683608315362831304172608673623652455235892321958248991224582112664860075038335701041024865005562227859471443553591163151499622579346167650302382550337908853670885798327139626623601699828165545143235560276025980648574311176926146218857073695259633652575775714958975947595624823972142768696054210064541842414380078860995141908529957195830090561832834407742579719930959664658619043770455796823889839524740789814208570604697970088945515315107789235295051847641571361216624860821755079895004163663860804487400131257713022471129296334341643546482124110634765862909220297108907519434818916698950718999618167443986294523534121489896977052099424310846864878422861555871408567299563178408784946066515832008596833781183706088572018184866377142583341276838610311944300352024596897244599846526695698639240728964820022804430952800230646868329443812820944011444341598181599906090437226235089308414053246240601127290634927821509879872391723619391446096137765458437449814791737267494150283776783543454667083069168515209684854200902037050364524479170088541742757423061757600113782867837105174088006833744778314930190276658877236567333870853065052417788967394819512356264059005421056291639208232371452934167656272840558736434896087476977326866194028612496648781261233443827199525773901377195910672415062721086263561618637447255174622800025703486827986801518186007136466662626406271838083524345205013717377341775468267656760021998749253344487009447793595739335725250208331075510776246137159691583433342036823659184608058512531311742922361822854609517880573252577366815658681559765216323240103981868296594538394498532936419750041161395674370962999755454019590475166476210513558212107262348782278444276851101609005292018569976108177635841050948577408955673730186934164940170468999538095407286573638413474735133336404445736930106477577649020765305980884218470374775358207141220523483098785896943645044981156827659936084009984488350252914471486194255583234386523401718091635994862117396875328479032615706621964759445763935391022946201794091550532332375344952412520639189906775498788048315132135615630064859017520146189424000314755595746252136022973558557762612031303494721569853475280245189828717208368834758961069366757821018998106131056128393233941153168875422545372564255364993274682491915119699265623377356491372205028969060432386650933663132060163265617467734948881588892537522586393008537083754073968378221698461480877842657294732899034987779597328318053975544485635785871493776586243909311532532427423126899033101372317319326896831574439223023980770131008519556294592851015908761930659032706893992025056642384404889668926445386267328586295767537760063313783067321948627074655837745575341395539185596185918438440371587540208918840515728866930589766225054890840348046127425207019703983058610024865664388216791624269840892616564994522954603637048481546362764327525679405299810421088294994923536914620225421108279611872193469831281911077440896260486270038484412872935665680347497522944483898962159839074273542638359921116161026129437335271795680415770276891913782009590566291043190380736863066406703006801968592959089353939698149791676382911848744352959040150230452473709037259160877073039369176429260022421393887282931351228028797609261010003045076874475399582228413984827024526094995189802194812160797732475269035949398691104334045969567848121458116823726509003510448911877828167412554993712767967828164337417474240267478484109468187995416097862394918310310916799733998349436981332793042734388344103240576536516729905088182548223066580441939027305576711199850291942671258688717119169540420758525383190189221217933938627549248426142217163362616805385586803505720082387739658909063016839483126648788552975370395936950426287626154877712106786177251772179103721303603601670007322209424962647810320366592377002431582477552864666066816290025396367811442705626622628036487331605156410782173662511755200528870163476523664869495289701666726600176488464414852892337957989227402009562554992475077956695153833373414727653626945107073301167768449975376037709692011068556613343241676512799276751051875447165689451485545657500610848265513593474903724064238522862712542845797093858410491895947143280044458283197611702215254948719787226865783744646647852245132976970253336164358585025086333473426686244428955986935076682996958161325472651700006705228035196424892553880876087079540969607825769876696777415075568195896379088251778432824099411934651844736518006288183099373351786573379439157171263671945441039008524449368219007093018034358801212929701791156961047047340359600147449253102692096503732075885968845528613086197277349448693453239022296503482068711110254651603230913017924668931007081205018970049149692276353702148465827267919701323128792866344941757532692525065300188909306263271502613326004618550969134935387512604145941442621778515454616187665378282546086205146744019165691769201869567173730003326382829283901830547417561899842709358232104479088970229750702783208278849408832568390612992570648503492295770550237199622769959053192535877038083018949825744870057323341985312868661985545617457327702999561611097190874744985983781901001855924167919816478386362823742547226886462185415210501474461241326180305760597552262819819052725041914369137762471709405321430245799407450433982840792209715759852365315486925076212177050391832390311870280925022976094310181603537260819443074143503845441214311478272519696564446319054093277516387337711368454252022781971343989773601379253371885616629092192124486410824508215808539645098506321044883247015211409300366956379945072584205522599553712792612164797812013760116159242727940406846347912627694404969612792530121568477002323022179517581480963422031338829246258696582704918094780127348645854726862804558755552972837664223368066732062187186460099268153901837101958107798900070111869564849032120901462137284528702750852533731971098219387446587168114242272212501249383172223532104692594079418026075903265898653645874196637862439726619066590554915117440526413585518085751111312852849340735174570092941144514966161405348590917093899257199080585443054448575292749905448744928242936200416698424390644694057000019676644841090707120186503825708023291472128834516120988459418385510344913346545309377130499816987883190676375455322937491724551715798213351115104202548152620999273032439655241731418295277870874695794784356671467633971145716016241948959456507781341485214523480439474393560051924641584140081081077286946057285166521715675655799927325028363596398919317552926238298441213604080142207351846894351451515807997258619357225096526625164063455560051748445833035556736251318287665112462364649513827494734114185764674608946293254018898151883101945686997567540361524592828807666593815936333685762535504425909152925462636083323839104243547520183015271490079189042354036899090555131919658399415355180515025291767823870995821584917215020038652139434673206310025706892958926807252699495774421927692214453432630720641754077275272015140256513967348573193496498303109372375957243528679546139102618147576544314258246539018842986293853684894608809146383937674994382058031291088921945682559936902648312311912547737202129141132821729636394402165413162782051835748035674190700328109540238568508163326519800786866323663552976340576811715602827653234826327393188447044360176673166277235468147927587022594892405223350331777613640016837591823325996674999035263151164481870941947947015504741791008614458617620925348148194237735313801757423854395684416822514878639443829450913866531744633297203939970162964449126724124889849680883698395560150889795772561870583819298693342553219641060612709034634712373344630298226615772944320063375559260427460586525204467193387803420086797738633854643964120499662384190650816700873977198960320855497183727318691259126632158662376077276962045278617140577343608866055791504723672207387473821888191403247577940123297914130325584217795537615203046615266739222015736524884441055812704858798912141023230309850249111845014880320112339830016258658933834861254384176300351104464221810323646491986821226432136281990016271423510600145299755903045178803121748678175306527796467807846213428770101034855272406994621659378403095578604536061711090638402353669338419117449957779052866878061958134619878922629421281995054976687923079221056990287755893697700985027575109500902303418345696297442173700388778805970497884965399633597661201777240112497352136518198382926853152306440604591820742937146385708152509893104892926554368196473660138492293310115131761465199236533104659494756772781245662968478182554366012879618917737380497613940278060882722791382822638826412720138968170243447783245897313681278362780065217710682280542958851834990810336306855696035450183381946946072532312550532827325582333043275376136086198231306289387292515398141336924523011015713180289817453167436044680818008083689694598433513546369037052413590579844088901486930589767708848298638286120994497204290236734509554963979925299476577600133959997845575382696633323970230511037217929007745322856155706542990664272301939181067242571794437221281350765492682434706148460099965119788065172884714847184002370097072142204990480431581416986933059695025351773741487255293285434192500184879945533018561807303742256270526746674281023954252065593697387720066389649408072181671717320128401610801242157509453522553813987168414712043002691015677986398468268813989323653604171446734113960021246628062649973123072569878925398386890582900022965964421568581900202250042805938784246700199911438879722473524859365821560743135870664874054802752028168529653518966362957830675733385522822706318999060053404681939178606833834343098381357216467252944788335648516616476223575867848598785996637922608319910242537795364808958938084486453840019714838362876636537589608028788927209375282097790467345102811734515178948972667892315948022657583457223433281607011589626296506930157571791037053168015938691495017468998968869296053100461537500976995916855257341080471423157093163676834410693436985179105342694423009547470508655541040540482983615190279047029506901686394060626138442821447861344850144611082249910148616031905081535533645434547469723902158008001816333267762066065518209973846321616492300869505891641322869297671530178553201351941793746586326915648920917214221309193690870295205590466694060127366310012835447917969238787498602132619961111553333047376980076071588826542243097046698458669059965619191482324909900435292471379948767774284293626762823784390676854857801919644460310456230417491417940921282506414120695601779941893886932300870700948537086879864783564406770025444691360159835931648625634348688250390143817735589687128743741323311912233956607472486844831273853113173115508235690705891487116721911742706826117233884342991731988026809229782273634689330989396550438406419076579193948486873995078449707263662135867891596608858276749011375527993770616827562615090498053548456015190731288990779463422143409406928101946619886248210397384205331333882216761934716406005816042475625979056773825796955948583965778829055559793153113458370305040776801604064137495275887838758283852401207346938835947467261025859896789308442244803354271130438422462454571899442428122373859845698231792718026600299893916164235705885755275362736298216773726101679160750980464193428756454934413708965902887758681051601083562834959669924378642213907393725122097994206002374587141603830458891000359078529079454787419659319097436504470107262512224041409567474906783577140045338116553995548266860036440080977627626226947341869578175100945222858147366040542350920944010030797589204603114226320583105604995812196604409804770006699259152143247783761174111563760912165967164038015178502961742324283635416484827320097991841171981285716704024093574674659605794012591194504689335771696886027426166078686862717467105442562487378968779949294490180459149627384530761290075572677038745488509056371973053117308505677010464879689623702191416823140999089055383636399549886621367750287582423711348206146348244193596615095466094114894903666516247619910221258973091455256580849045523140203701691141124798607052183939588396585924789484291874686411274945273318341749459242331886303795699693413043782936014494132704368118225740606835451770606451883498079470050650544885935890614257233262336782195141275803331555269633542638782276715853265403552247989728816109773886855563404945594802310832846174127181281074565807707650597241921670143576066640626369172059138726050660697900419010850696390609081394353951476082617125773888483069674528935046120084494144463960833727157301195927748861407087689777192973365911067906118805565263669203663793005588175567073804328419694736036695300209416733062873098546034507439410659489916088375319955613157360103159575771996868852898915019493278044206949566014931272216672787959965278693677637198916213536615465174575027224365857815900165382077881886217489889357337814366984850731849774946891088772140524493190595629443711794231498085763831740362233701572518799229932354057169089470079955938459034340133082670025430246841546454726877874773357535199327712919625970599773283478690248917739639316992869179161347965169841097326484941497553776621088354416796035811868757625660865791631707929510124170530957315936845700274896002783926589502003740631420799727594101812753495593033678322807082635102737056507687698565841664152470980029677148805569730494588099022390142649393532989080380287101216016445481550206969363654355180312527653466750185945587951878741929925042510187004925655290264258573776009933730457582309924501480160378876212249329661480234789026585229265996546593940027058846839485783479138900320081974481818570505537083282817013354629916325702118931183967990786426475283475525780973864603291511957413792443891283032360346962556127485612928478998186669916751998667696548662961605557567603934423107450817009322676279189372786726378989754359450322152356612473967714992156921708960808354430724555439309890840454253985845027819769322228280970746951382446720730446674335811421557227457062053169509613860423359201123507842743555951273559020258206267932862668286245773931430129851111375290924539784142358634093708079344911127629060290126408379304643550369494662572551251487026473392125458600514540173477751236469973087551772984906994329094953504898784128109566304214284484911111723593645132586533081388385280738862190240048018314934891018021232718256110568705620674976529625203558428381188612767964169635573246184767133368253993269171778351077756655849886681499121669401730597482670891141563165236379224785761500966025225840808911070967991276556356112275964040362395442410566277122264720363278574616214988887072420793096678833009070408453530626738562982921368173850879744912106331530558736035437931649642739604562287784367427329393245161751118302566649874756683848278344757506347703632521926369510200197073772508938964244252831908597916792590998719540134025103596798480229587750549320724062796971234676912307431174634962390546724767852099939180652651759963424489627248778518784475883973661680741468573444120675652134394838260161509509272754038084499411813621664930250634918318182137705864914875625555226317941446407103516639096487833240454369990564909325843072215450993031305681135357296453098336607947737701666615347244740144147796482515805566820427681309789456207995957070865910741835245172194448763779584017229715241349591776864506134954420148396209485144034274397054377498845330078077518512900207212727855182874445468950432290162996838502835753655797000416875549160790418602811582456197400846461456756067574617358336041424985543156924645417118483045076413092305548972125716609202164458617626200347263117971660923620515724481755568097662345486326073842841886628308204377560525450195745174747370304079882744915077088098599551157111215411491034105929046611968675034699606860706864052993062942441815083173221534276445499881165324026118069739857131359166895867833846044087399113663153707819633330172517767356640785508189827987104075085902096772255381389429272136183272156786415049725283697962895676842920134454573308859178497792680024370271244895480425470974647034084472844293162053544846098509475300634619843024377990063002765688823616708975751327619442281422222992681188119403573934180250147506069808411543189433567341855435256818316463142671021785288225441086749084977198408346235798063041511710966664829348948281157514674711332372945792594245945124267416457484425615127832634286913362852196023388020548786145453297393904928238263623028710594829822075776811264801054718473082477598980410009499087933444169059360574814937596657292802659484358288341470488446227388819411135151326129762936808097377009902454737502201744589330188917288736426246162011857879336208491550379503759459531156586704554042217478032183642149932423962735853610865301781608999114916937160520039032806397202893036390220468011235701243539057762319850749312644261381384125850578462558891841535897999651539133406714777870226879406085006808993442710371516395457615427787009154159027582207640432441900061358820163150976217770492754050737325592159055394332134894622922460330173106733243428617721521069711869123245480450787130802959550422338515668433136069542995821561535142230936911888812009195969711095096457461616791487998648017931443710238979532587290927992824919573223423567115149141748362180693062761357836098326394353503645144142899417812945672520075448652615353592887440464240953503260743231278234424878641210049059353715435823823602842299923723185627369754031011274787029121677924630865398789441254520055718131666904104053728665951272476117335053122198825714887921405888510624491528862726498933685447097153610665895031479194798220422948183029222095100081715603304759322235049134011923761610726825224409459820548042728817302263680610701249570734340232722024700995070242220303234728894774127790608271772990665831254362537491949907494868267045707572576263208115195898772952426343959485661086021171473246380546925936286757183673921757250263607170402617049824075004746910536308640369958848993689256409961028313486428970231787220640596053247302351132490490784344097907213255290495419768052280861080468518346894645953821859305602083262256763816838729868607678140769501831460556673217455483524153843612725948717382924525537090153015468343921051851748277823993263938325431092136816005890766635065230442061262981441457188244839333401577419428307618462892170999206893749630496098504853640228957094085603655718530602383111619985832841444074977445772412785913655333284361021770433446809639058709296671472364515578053158501056566985809359452869599557683325857481213959261029843231630384948488989192190896294237153794916728948628014287198499644182689660212565894481139807994716789506002554006864661599060157857096353126841457784152386018681968895722458644490196962349732944870171084188973523829117253103015009085442878001057570094420691436434033057368067049574103489587994447601403964059895234305732487758341312648601408819994282810810375225512498951559786316309410670330472598091575719450364551401234898737186911623796128792008803466205750743019704490000217786003880387162032595336132151455694551028181786989642356637169105108318223642289466778316798385674405950884157823278928607661046461399180861439501058951248335149058039273781305751939609659074612993238378249926419694007178580445628508576128323999253319637392425180490703130990596156634482627596990234746104331655702380470254631662056931120232312502303115457254372663763676092760110985830846266504028702754934221507059324604205830369913969946005840338665038177284389179056050055744095695353941648688867458229977931825309457131725672794746658849477732052085430263591105091946884206782005353726604355247769491519158315509983595048424572671749604679709319906733185670078343008073017808401514307515170744235891492481730307574728418973678737453038865557396131157872981617559810689725521973763974599173921347879233741117644437274890173526217172145238081383462654301864898878735466016667882986413967595352055960304888800386817398210043214357770433565059243508675848200952197370364374215534999651246019361111254073519322249128637593819691934726159534820416516179128048773880603380897172056362207368622714471988787438485267012555756747330919094840522589837469791245935458242709668671488021104371596451835447252225476772537092299178509866179625314820852417490874248390519369931601277230901466743816133361424186706479362971252761027655500390160222325317345840288535118541471713878430631487026289226320178558694163881442357986777242160877115349896730010658806683760350730076620401364777750577707170501373039675783537352067036077057437887111426594576576174701382229150745875911175849520693174132757726336817922842893966649304622012656390763552090924209981594001546539530146070898379791035688386080393260135099735977219922638873473689006758371819518458942685592979952150511778277632776803262779677541546104851404423155689441883824226911640111886408709268378284146453451209077063223734883377613394601470050307744318588464344116325423567310057582445810064472080588244339329437502041697651523679034889355169440143755662787097577019336738202873600682533201453791759162492114237857939363032647777383219393785087762036059885858374654984658770102244111398218712941413887942172457076524210943399507669679751482028368667877698907554097436799770938325276805684615149258482301050686417770504549564485123128070419670118168644602862387715519359798342526383818767781790691951673477083416449012054993641710724426919276876630726716958576838239166561410572902413939527415538418757944250921076989868179985224079638500208244567095971605066101726546018346179607539051593027957842849074994823404008038131025922959581434249065737574031464004645195512092390701615758870530179156355728918448977275487468068203343900767507121403944305746279395029377866426400402542917966113979695961335404312617039690214035561100244009471332860279439725930092174849357901907403909195742329807937991679296622793421682067261517701971070765784699363905450344347497686056911918997882557410493329418130054012310874313526692459121629763047091952027821760030404127081471948530373607111666751352140547849109394389389947824828708701221289841901305161949110467827471140749414536938840927939557841422043155855171728094402583529272457644170898638706885745632474154708876246875583892743101014078810883709487831247100048853808595240834704238412524744127226278209554086658481999362319602726597257157634770141288489806809126931172125338722103783839348602005127845802643167275905782084470548752585567940541892408774715625697545580373863286536573541319544361466752421106430750605154119234975546656663646356628242120728397900986250685075854791130215191064194161607121957028209416785337982183918036496204219698275672648139347820251762892310139070417593264844282621374126522500643771381249491870370562376129280402619828398194964643297073593168290666971601847200862380085922353335662090674424073646438053693479167586275004011471280014763233222145221278445007749910888953500740115602874439193256708672074352233856142703886275157906523050740327140985858499219934331329519262602417523038692758872025082466436964373916594926693437452723687580577091180913879603179249550560499106957177076811119497555259003176739743352180042306292174777946793312803453727942568575492064580842727237389506418283885463063748829504391986126967313864404472562077780401774045665906479622521100117085743311660093945335800251453879481145206445085276705044403645634809944992846978859268146358112666483700843358315647660024858902247835663526556491786759255732068441626707955679249585908764653682533297408924851603493135032079510274508798036342203064996298342752635783221628761631752753069740734154342822986653921447189969875589346983280219705267781944968129636207560687200229269202203409782078283239250567886656455601984633126013806550424663211579992903821752322525599260720740930220680505703356151310945154813304143138230180435693411434604698168535018120652215617942758100370332475527887137978549720159581263909054898159077809235057878156077032543590983686046607187888247522326854006133380135260478710847888108724117958382794362644098599174357766258849244672096108794825938807886446542091472001239291311206924653503607643900279274578455665886646467851369108198728250656713393448472884734798585345084516327810674471259052635485767807451978427322160892685415824000119966875803392677791999067925344009441734768348247182207318287228369757569298617765184352044407496335646781425382961871135673743628258913607971846308353534209716749633342708792061412625612249241934925734152941421795164172098497574749742436062744566912057576544075199761518020594068134419881192181389301639799921047275890033929669915428774915702716266877373986032383721474872032527020558090180508125043290546357417123052922141091489259843065451202696356549717929809054715862976438172213756203502900478570893232082537425937870964245115231317142017614228633903733664082727087810778839149700709141500808190706132433936358267344082752489255780376901432676587620734458119407001635661823520592315537931871752918035652689976294799446752262110261295497730787558719312755769595744077026083776624107609969209614273668313318989735712859606462990166342441471017450153879713207521051209392294125108998219709919376846522167301579525243015007998452446181049641676890880972166754766929148214407949752946402607605324034706410447106036043093121609307264997717969494292269220160732886516212752245561439452857707195255918625862976352279013626797061612493727644412166512337737646448195638896130737653796213794093036433766881171081855228044814245457411988853213550826762479026316470450823226844023335713431674524004372781259687767384150612676865174660770226088937103899415667267832715234147489552520786079323367334045373595062466966354305747911847045643438068134975899925888675030963996117356419577163162020176291533001028997600994277682285905489551596335029073569723877727858564050193097221230060452275199219658208783431251446838038748340391858604488440683669300961734002703729622025604435949197972888432395566116216307462343196219949411380448917493874624012400357574116310289378411974715883991716881556544968942806721755611508197729162201081526324473662474017826655884571427813675013864123894171432076206691167888138130378121237986881920957337334816712029399795735135397280106147902556647256027349244405351974558527761534849058453595071363399257041321080569021913828855932639950738636076999103318050295508219742204101942045991909431847315247685976136512545652107641804392672185761411046512932788553013339168343103527146979510940841478807343747441160536332202302599110491709729785575987069203703935858484715623346350011244570881832294589832752580204988405206429455064466957718563553704983128281255893188979274288239928606633735775395170297712354043946670685870703657849838926761582140147679556292244394036840643940408366055741335747652552096893847599218414963550928783486295461468421154892336771796883499959588005074084603470579659588053871519509053699117146862722352254994379607402529577868595950554769558906810752088995277000548721144490329004042481295905756298884346195381798841375545060110069365140628137257260735668644948040616696942483157387472364861064908911952321881524448707492756168135783164355712598631211192591085467484131591449096943504583554072100698024496154819976639834597450955689746813915667871807615566898613473376279140114126363087945271035232246691254206958957926964292542412460411726380102770024637764049095495973686176147571661859771567601122406589240228085477085810978705140421319905107113766145694924679022341406718831207592606364220536036397272133027520130079148456733434824630707613846523461978835309618841754447537500558099031431740147343885562379441173251723865753018451343906522471982073849152146031962303919078012146859541684643376059871363739167879969763406996652177368193522287797767766069354245896272110594034953857653212274558930461478145980831282448864551045988976132019431885851842629788224474991443443395619476097034599449882982193126196250466403990396342802724186379567908439523555020736691826362980773114624977685708215736578054979694121389781317677314835050933590276605214825400769955665342269954470344110336880860373766346802040729830788390635041234709261667274814189057844189653579620118735234537779945461374305494519847269680358480611072815020015087510832690571392427708631840657603403321613661940702097616772404436110741493968993286732067618981326677621615136126994573475219900121201349926914836272879006359710172577527200227874672256826897732418275141685329902449414574469484104529288547501034787913410543998635644310531554532627653823297502673207041903467419662927981094367239745148102957601970560690267802368727130698360809502831473239939060077934903140687650227929207494359392962556036613258176124776236223902148867522930307710929036988348890218824527135247093039622172905216182211096366396375084118512354101470222898154151856226594231047409260348475016855322351963483860857883416833266824469382072264510681485077005755786463011038545166776076742623900960213393692260433218615104466275260702512278068571694023411541616376861352356478272775615919598987897170542282270784577652418067877979044385515720709273675583968208153706883558275412980700864782297149491376560616385822031086558259799337849825030296332124916584495272808278686973778270160524471286971925963425495957908916940215898178580649726032208012153868672686517162871192178577647882576336805395999524102265168543323180781009002196631673891788673524274189264252154230430283684372405870113586987214168845626275280850958218027749186309662890951445852701012373764355423963069966170663756059586744996018672742376409024501092253974311436821883421941530513640545274750962394449362021922941900491468095560404723109117946112852708358670420140251320700433020618456520159750940754198068196337481487625539425605369767220906659764179560183910315793503232663724128439675982075769792076035884675840923060473622902920009642100371512671285199991650811885590031735426807597988295093142502118421288911071091475074636332304705268601433829027324441693301222118043156699825820396590965173109099294052634021735641329060094486664184291924590722921472054569308446949648603458578733787515654493785221935049109227639064605746708205526684621485857426670824256819184877880592468343466915602518703849975142175147436166278131170587602230356571184940307275089620369439355064871873321915345207229287806905962191111594140311227748404568219080300742042441859827120553788735264044052190044644086190753836596965668623591667759060155643617866149331351500713665458232615677007612100719924168457600876232484072432059155045046792132346714011848726473624829033368570252015234908580589529735003605155481718986347810550035891203999285644731498761340071687990896717091159492178191274391672824218202927900986870562880422033868696023818055523218850356336945650236492365227221534282160233807882914607298608011668116971443285528492093250834146082804727703084098577851354017462086815653785529810904856375812630645969490941446390097586197809072251955029578905484913900581650020858680091695752458672222919983962458447730731540498218225246832674735931913683778750475556518760844361750158249498471764004042572418736700662662342759313372991021466231757919242769201407379295627355053970810891035147920789543557631255551322952446830259664426753195907576823088977464231576237457244612294674721825095323180784595191351090000327660889054580807694100640148055439893286402014069298761415075935564799012502155064318225776931446212091714696370151389875752946559140558947766506318839420184896452533737308399680802674817497732694369466780857018246895481243852097753282998792050262222870251172429273966335822878683197040248341833962239782006733393485246407001749089310653443880849466085907039836738945537085102017677206789920233705407433601183113461492703236506868050746601003548645261971268790027240226082153083917985772764629075514102057958339222495933512647953736403715040553597237029002981633587064971852908921009143084416316213458166856985869047698866355969315035554737908948317002418061804000266838348268705026505032337892247516070645252270444134883240034899657937579876503545128522771765742949877015324462801630345058974815614225876691232214095385675862492256877112235056479991444902999199171917600275973739645551405198386471816928199974348340719758579074577073450623350061522752104032729070415240067740616814822890375510053169444855960461688607248976809473567148180133951136919104059682022338347409910965215666074432946156688344898524679723168944902580717605093659412144954249982246139585921563286723561103014877413984670315333395488898314128274670349923565560208867782535099748351467647722100841458667555801653461865602339719638821187431037522015633893446076904101435508235942797441098744904193660605226729303513959627566808274915187480529918310383477016970782829977109125583577144997807040089225102635110969089228683971156627023293011133256379727048080872759161280928681492163787209883336011485360907365740210635801266349490641291520136728033076234016886079968559344064035475736156324010239172146211768565927997442394494578421249676625429011556308374663155636776537380940571188502327674757202491919888804093766612747595235055372135369131851882298207807534303494221720556951590041775362519528016109058084061150468670178100018638040587907735563046500393314997515253882065975901010843537104488024234555702607250616899713076458379185016536512158536960332858541044402035500001673342877542960951482828837955648148788561650883963972249825448207880753356018695465910988293141682447374431676036649065363638204105085694069926197954587260405609849125830542195603406264515656092630784780188396611077298634682747379803080422970228212436701717905804597567393448957464041790228352550088254551713584670367257769780581842153298379160957098361328554975052994650837968429228518304123131334851081412476777440343002667083944606156499923583582825031034143306957066699508672878813775758174180126180311222708163495135992303251213115462706812275402342146627647970562787099644431172250112625863995081779675888940106003092661964289099782920790057493987503062326280377676114289679481773779853041756314980559931638260538561198270274866869384594004637477066573423868522192897120297850334173953659344394158746302980630463277238235666840458414358190084891540707927593799852556790063328545910820325917316872693595910325808487112103434100311308392194888369217133317296828964932030593424036894876732203352450647670720947282259762945350336545196785480476562729953756073447072670174136045525781246773788751292808075259634825846306992181435469206786707235210118528893218912495901405290598968342540199143614244733868872040777283514091743312094582054322056392294604812566318911332341006742285497469157590091420249718173240814311865740013308606976222680313285393057914450139282595897463237090180174045463538780919077410491369764143671806790291538650376482467000309721529658366844476688726574896573894848473225123604316210519641379972491277462780623831877376501219141627639113215686327569981003389458719858061054711041765339101957932743326792863524100693189242566658950353701365732658369994542065012219628223559326583747915950707667249264348152259792460792167603452178897053084210809043395131818768567551052348718047869362615754099413928921819781891325554397105449483417757694214866137262380186813230752544392858057589257023094917694809606732028417237028024961539117102357821659571808237742111142922663616745019736196121251626449572720144283669327656457657005683421486441222082410685306220582080883390179751267808210454151296763984064541591876380851544667361641187850982003091149942483776738956133888210639696255181827023585436485985806596955126001709622778744853400262919543942958555478322552625652467861266799213725497209208163896751971207448933505428975062341809564646224695670642507156429146650266028758838825889466424596244380503001997329116546430001697665419041108654616945283242506672459047090802899971535189678599809385617357612543312345563529848592034060203449391384313762222657685249951752148715611552693120587833959041174072562977543415934376169377283453607342488650811353410124846851914645628021222002178691193170090195297749607102020602527286207964886063350234226702225961807562139449823165695813993507626461579288598778828948296116720787324052420193722888327539673222674795963865065463798190638166748786035620988910785313746921349750206769659032351120101681724963645820407438664140526600593329614493828841239898483509201843712202306485445509336000724540577171419679707520730535534234141349362279786638983615959533208594164013937831321729340562457612890506858868098875325624339664962744047965333325801805294066583365455585956656145986046186320912098760551571350279952286060860628380121051403888860455018197267685671792063158443670557051045172500696573592409565850979985673044461166953848736046550000990491079735732259804275640037351077863862956594723384549082182023251247669865079279687490118538091709172372120130749417839383194757844853932740736245073571300927667198003648711542800861385715137005416074797435861419742831589834070247820579091198612206494051208959611160070246423716208502646512191721995138320381842466578369538605155695710940614830312316046718847869936084015718886348847465907769955485669679757144144143132361655347923304874165517166314299839868818558473684683449564691059642591188297600664635753139809063497291831293885452748540307951647475729080096982019463329509228927028162147078364942660595323645071496269067889161714790074126674075445721172455711742662381281161152686128271911140559932921535540167701770966579726603053889722721959330938402290154426922891060567086470771244010740485858991589065696741610826097237341905629770683351916363272219827839462756637893570282995570435251591015221924259837973030209767677601235747449177367296499970619095766062843438452610445964717504266063145153122265035852927793983807008996631166202423856504063651195021741497782896071105673006063497030589022089554439203281208022401101469943411905314401255960865508580170069226061301663229798251931152504850642755060398148653230679608985463082735902615535457147148107792778290364293819888635304834598079731488251546964985552643314795526884639090472839611786497698597508788059642114367166166981059594842884361397144866627233303412770927706612646800413732593860895110160771995790390363112479621905859414306474287785812458591399461465260852841318115406346592092412411688971193313907560130157819443601678036741905429949724945521236527892644948573609810335624383373456392014395133886505399971133327591168629355290988038562149860674075293003981304938617047028140978915153187111389730081281891221046171048106990590827907934808325053189190460742539086022633103772785231648982397962389672322185999955054363471506757910400302085271184889341411614011775360867112161472895343734363773460165882240141339797235503138470732275306587527290794484565513689711887247006001802088583657310027796087019487991258349800309110271537588315264040517345661932651895486545350537322921203643203255698394204123207410932664982504486529675230625018774440196450281863165869343648421979908032893264552968039269964404195462516692603091465075436847612076571666885754857904568714631050199027238181552319525077161507803551528498363660333947775250723256963662983389721693796789064822788746967206953368923797864942257374896158062185124152877400664356369497749961643150861289371521505591221965364798722814096772367119321412830361702343199924632309136864619874514903594881632375182375857936198851773549629513232398477259024568184231047096867200697128477997371202007630822382476820948781710855453490395570331928470805614783335875621489100674903162670005646047110272960787964596962909699034103662581071600538982185949296929347798672072846628921802066857736985690370807742723027409092148890326616355911485646079556699402933623546287480979227035387771539251157242823748447872095738932148379510736541537178940127897142512089367365795290204316839983186903979263841228414159049049374480807962751894079986816910557649651678183483434056032024997084822331350093923351666848013552469254807553137613520354608138857698460799749973756489729290868518834159978427779554335918980209345706142642408910047159276191943909646458790637303636927625617009572041153791413602483020465686022774904486664431899411008460294950757578091390667340723959430208283484793300050977203014664483019794663030649645316045755756715605753522125125575899113428497603746418716254437636713832484913198644205383402024335482710772275603385512145659044043771860849877490144630266316316962598110244405705535527755285976402933530182038504260802827943337446031552210875692335752540855836549988678823083353357128632155614151417510379538407477142284969901332336261824307556826330017795101376625387856083088765686450828500689016535014616509384464823553447162706346167022232390153066865181640436358236666283001263201163190391259548358342132771520063581575416063181323799229060271232083556281443231353882418659457313286590951535957029269280481286979690834099078970601529626370529522891236444660260481295035613104486858592080525929550351356671552680561981620675592840411773256154210427833803786247058760831092134867586851863284091118856960082822695529911509994884144967283008443543348394561223248414242679279701970648182203373803924907851992091540220447408496961960808468176151793707520099110788448072501311913043369603896621262742651770073314721883641682793229433635175701703384277114837904521080405144217052430888849450873554397146150053945758117722322019008955502181358843097164611328414917514848500284516176852333224963645096710100451841441504344112722848517430418009815777590872520465778653528764080367740540674771132214927858543631858267708521193565799821486202160946683797547708112349395477270310715088307375849169021772877984650669391468171515686031344165689874804188726475708470542972352567143896674957288430771011330995533633759221716998636554467581380719552283059972732814677029533399570710650384884968335046294133560654461881130702042756861548391601517925560933261711035383077456395600327782399667454836933146451803694984194934082490178741030295280567808008668193576975799166820570573047112627524483886312794636565616666544761837200618950216356896926180799864311138492516183386703626703973285120889450586303938115244128622515623641726758771138257156610423680379369192293066428395320137512713660843318401582735604612373785005897766559226166397163992590713121474596352012830073467087518017320789739512193009957868555741603001198142841624806929612350333900022207221649209302487010641425973129087674188616681244381367632978011779041277876163262650505038956728296307048276134990674128405609403632003559978833300114538520642647743904382930829662952756203925744638839734164921852352084095539824019115636279651452044253535509094725485234283028134264460655001424658595763483110561820254968869456979768709680634071113871266541522243432092924238225447246109648182002307510597619584689032175708133290092465143285318166829811393133386740322048150371029739266597773426217275913197644438761658279017871364221594374306782524174152918451491604501411926011916810066831768187302502973215649427370487947101443977161790247392681395173108471345929260234295977064855387306775323446919190373895135107258318582744825580847554860866366502830370170882332732941208144383503149882472861479733688843659114672552313859569345576627475429669758554850732763824179286400322501138173921650465504344502344097805960216117778707285220893683583783947815306356158395962586206490465095247323778485988152528011980816430373394927601045325503348651456731395437492993451024045283597126165648064615088342629853379856041805171305617514760897131766950384413394356924086885164157251918544510318357533274626965975657338384590788215952297660221500794610775872976055714053394360639967565602775729171845732386677232486113011311530846293987450785011760052696114102659341423943300477682606304187724463110765636975247128916185200672058524662179869822238369362058545716396165824941024837560830862704589237088318381457942859458839090924045973199565309825423336817767882763762227443172824064536605492603038282345018867876899478106332968645433580024665667003124448904896002539452181504523710258158683006269282558883448386295076810451375950188988463734730998953019141615427230468771327984297583333935717430930177301607640468842189232688809902210852978396976717484827685383171995330979660109232876509532852531999410351121526268406029853683064084592469230758739755360125970434395251528873014848771707001878326240542649582832412774286810575564023923446370552004183783021684091087323551558508514977082413769995809220828250706482560147181546289239835258336828357981647779783442796353602386811682340510348112380094175872368163028744605654961686958984002227559437849060233246140479122738761280062933282395035396453112873979689315767345659868571333220185028720869393500040778569244858343102806062834760855756008083311857835446803965222843921794658832558567646698149659213885026784876716257545621760455046496774509000841757036390797825942032080277021075734199412142105820344273815444224412985611122867047501761440306927570739242119640181664116927721132644515349167586412396407623656488310442073016299012348220950467995771667790373643798513561437740214029617247401778225090353201603016284424802721783186118170344481865747656508172813450368909480478600759524984823953840553541543635990720027667259849220829715605865864647151068655841411735034946083543835377949685911178027124992259487041799418696910866675044570862354376583378675694456374389317658066369757463410415298667400529841009366951731827323492528165695565344282064018979424448945980996337215503643623610994970765057019182179112692278560392869387079875292550876863677625743715485804383155236881481295709184148127602406145914546899766666743198376749875621864150267822411300147511334900122666047009289001082252986135616120639077239066010671347545672264195004958156142816145042718278717124451527642818165469897801791303943681931063639930353081828298400666685190773140099073392046870641895534699825291941135231750171080818556757558877857893738057541778584124138799553006320913830238638012832051710141563672243849497408517743131689766177931785980974647578763931136835052373869468166269351844915542265702481885879824825107862159268736953108520599168368538030694322295215310875437979827715957737028625159571067575117369210165222867170829747428997434461329997347315726109764249878522644232434503182917491576044385070095281265724621424974160408644469833225250742377503262280750828611307573031377386671197243439860485011617052807016134527654716556348868234348000160666917445462300740340677319040731036153302000697551263545521438867344904287038207327075643225170281187739902385474053322236274545228505432377874014758566167938242415767471045897021608563449827887240491723458142910742819656794073357546487714123191253318331060739085396081621837227294600980596120663035688257364773846398336482723019449481181812013886308643472431693280451049351543788753656606732289379242903198440789297066563158135329106639624269147817481598735537028424712401493736719451078407548133996329242753638398698332024826694541546175745853381039653352071714320479702835843243944627709654870381212865530021455957895908434519953621269819212320623725463423741264309953019202951146675615498032976416799263169155257544814306798489072094216999172672451382293001229783901167150086317034161189171966160471043640429770372672836639375313061357050585431503663865270849236910784125678993545162940262651215221557355213291119134160615494463303976837669702267192239952391545943593428588969786696217146367424049053402478168370103181918359017283933453601177143661199424138919640860184449439712720423772438977084813447295112898029892896668616592239925945796543859856162823900364480847297533517811273102267426414591600255322726508143051664585262790506383738890668027686337415402445943681546250944483544606389613649322832028373531599432529144914605012451961214855494394645179676091243787593771076991522108459611251688757045421043056057127568857654267093790195566603089043964704879505208637723500841576361628856300736422887710898870305696350116656848378136341192553482390278935981310668652257692954854448981019735536443357453320912893127900991066818620947210552841153857959803300988520603533895164791557432897800934367797434416259953843642737418523960445154708693799545217461623684022591202269278792974007012789612103234283259289337183502636806558143902428989515520250387041363153390629224631357043924402382519052482156800112497634949396948266152497621471727915831194733690539847608293761447416184233373694243068264424806524117203523306116618940544265478849537569874739228685374336635615538391492558233991323290225774704303947211972579206865709164636623123509016662095667591067597083414704943166177380179406389595799420097708519402729304708710067164623003195125344717081069532021384613267202344397938886691323907488454778605576607188828066979757537973954928399141275381752941800056721054510804727869180814261888840120305625627163551470658867609777930086068612860747324752955625772228572036960034663939413678954834372241527122973792870293189994372861098453107357391925700904580766789482160772713890693651638149869949655547063530685207177082469089542728053838242727264241783682405713201277572611331617298272278106113621011909356437247198626595869817726232664149813061967082353166590090152294331955759036073613746059325076023468507749649554012874556863379135360141827171336838043069765039601502942839216363020774846649008416976016786996236929673798709387205632618390469116180384638451486972887576754597169812883880458590599209885032312149133215626029362039848383822206952271102042080594463427827413101216550130857961533664597072893616945304524543976623122214706908581588628996905221855062794707008048627468259406514377274858711682676513481280253292250894965299264022968037759905946019452962339247233863162281847695602441201035236893292872386781272092772289961044822643961645860532374867948058448671385380152656567652822707265580800532142509183852753824630759597469434526765316105646837124144973428844537553537277106763271281226273859858170937279955652799996617267523320874940950677304747856747907591773234444167430008605472816807299808304398440208985286445633044924747956646939203656342111955668508817695086839128038081666839156489056046173694595640620723179920001990755863107653595951230044543596520331750511001928760746576349956916382303648687585942683954935138022491578508638295861061406075143560733078177599948507857934839706554305988909173111499065345667018939129858639496432892703687171997820590717117336265737859256397412042590374475651422763472241369418364223404703414627798079941851189133141213426046594767109696530819579490118268034438026989302122559737485631524581540776571088663124988262740435093522978539742298088941640421453847430189481998670482718300568896589407566356844351006451204392958233593385231183422875218573607618915458262509315884698144861737525121314857029047248058770066339638176890673903134550512428649041658499408070313946815505803346526793770571730946463462579043334576836206425384518434694080766050070977162937933741224314971840080405003356831506874923994531341931125054115635341992970474944622053082299942835831957531403860244545673453583382101805530963561265435125481877367056704430300987920955258544973012289549651248053855517303836850723762957839028540492601031803337125767693705221238164272371650102508653202224034776234592791935039584215203553266668263487540097388652701193006440779118419017640975293336842282457964373825070963551192322193003299391755524637029298222236084284644533274285575232872932541397733757767220943989599139867495145881656638079186888320293096159215923750838649297032716433290152485401093426389959912343473547262278966732425463879793171692273018360320580050243787316788621296415969675422169438855420651688077597997515615928287463501409485690800714178141400600311957690070368750258765243685115450151278703504374420730943348478734758160373882528940825590286616709375197983511309725484803129349077973841334456749215654008851865042610517977994225550081407887534660307742148261510673031526127322065445778395319605005908803126800844420957937921610386436728365006077651839706029924067342693978683570372224292197070459648632088028656054999811304565091249369159046887648708116058190089217406378389916649113422556701600477009176034129234127956849066659507460796302508177565858322817893118681195988696886229615459257241826555046986221631508705874199370573111332879344894714838153259896460374234450584199437494180327802518428745213704779006886445955963206740133979042423911758258572340980522963608536551967958637515100631034932962737540064438840129339620169734276463421211664268227354411894102028817300819480464711094373818750307482681116744025705072648815813171085629389900331613046437097480675158630108914359806326664255193794644569586955910094687839073128604383405006058301043942172110416684068818150519734924171332707449033576579167365121122900344092887930687001150296767512489890535093491681804181502370998435163537115295211504381125095024846260607249092524361295867898701123165519557230724561347232544070512363488338583517641572092044221992216869839460291791814130431721120874088884783626283157281558919315275985168769111599964376193421825077950122101227993111028810156912173910860373257223896565652914215066768373561579263182436895431043508071809534856260002151047162257383984517857400649123727293139417966991305241161185555924082098336202797200284218824408185357261914410145452453145749622092476969627174494733794271136566329833875429149960429842496695123967853189938846740427682016311875141565733140098605825970490635219518849550649170393597166448392595338320207833641292073256749212810700375574400624277823147690128494574166070426955948379123168563355098103047618539198448059807450652316863332459889782019296664100140858367132263884402805602428507713900721695093275680581874549690268009529862208538799435814057609070105886862383791131091034434875825000521737436110756811394747005617563226599253191277338473273688146607741201166621439958800836266791832812625773145393661163209151454474763243228981109385826918717294359620571644500628060424225762783988817772364966532642564051149813367212707334059792166337746952258225292739196982819448281778281033848563669749224798119437304842490083358106125797544532825318796598304929478169543576872302065549667982058535481436218175926013410053312403492168009796732334165524174093316527682996998230459047743055911994703062357151045326323533262291143345600341929262234460479255965110231505769602509579590422171680675455226559526563052430017000374381657720531384765042844290209676020549155916601857224388445182971561005041121088339489053369959312270339695265144270996511298068514584749797987510122634953701585311566797747179262079066671217766170195631579502631650527913579965486802765260709538390893188167888986905176421191117898142474246693367965298200367549613506642528528466338126681754808569011498890625685240818168393460107990966696822198486226468764756504033603238601431351508177401061607360219351479309525779457450831727647693904656077388142420573682928645207396329204704703107042550516556880969939974534715466549068809206599497810807098946036472217345816732189963126418792638406977977651518691069864460937959031286347962585394968629526563607596689428120576682573589683465310315879428286177522164572545013903949206145920793947040216834647098262914491791706174518999611858670793892112352113080532227172551961948576710144655037913192292812116816754525782888686830050782030082606369934021627668662214186295525884731932894041903234908020972005560829293260164658537114041675561633648448403190836151517866578292908864024937060529572996793629321488752068729792695088529344722738986301405177439229517796756102960642046344747705939699696358434708080953189691303928076999739245336463550051336739107775622036254061124075375531958917565919258629695017661218448470205618145399183233246514703029676459530003896352032946375876903531451335989459078197457615180186566923255169117257544048534638908684861876521116746993039411810991925123196116827145947439722635022291840618961892792208614601306912634779320275431048354815679072357797808995476683109791283813003674849443074013864366419347468855395312966892763834999515694425436101057908056094376491842116709131632848297291871339619075211587134756805067563611979657893434127632359355660928711294572764449556054168195181906964491604761462719759570364696365052351782822429429753539385066312118913694376828020343308160861122888671792070252231478045807142009984615034086034231620332832051884316875373364819114267506399187846123739847176313974113962742054938575626581803337733918250088844015388719949383675521675188804799756636458944074708158000693344093966844575309293734536615222925445168320546167113216406085844665806433514025675742404557727886226654053508847043937240104030662191788793229192970985695202525873776896126054412568441048639264802880386705368345697418554428641551597031569781945879430195191548157140552814365515525335769590631997063954215356364896776567728124110727569928548388487432413483422157565715907352625752846279655849284122395688148575314797899446542189226865940881942644244706913823415443893980478316223446743531031356911071166135130221087874740841455321988815134591622327769721595338315757090114491778251509955261609624731699541922910227766088214661767018356611819166373426915836810651149534980845161004927011790817666316367704496117120739108079477093692251078261936613483638367770999416340150722252182361125414642298141627310526649000548127992558782442016207825639196690643243902908896582080314323915671753311849353176679188021097089665082889994327400614204318883179613396788944527735229471463476634722982938763819659378863272962743892527151522585622550925671380988640466791658068795307308400925623522968403680383490515818203685462859403147967359410377622976897632601051064895619722509592277219959201719185112216798929641766814287741193286401757392075460269385562088342110902902787136263679452905731197295006526823824065182037181299594615676035988436201058165268122343016091907211665645972442069630563561019225234357061290885170176399584024836155012519355882310345036199255782286338621064428563082947810681131868672536360751511851210600103033749689992473830511053113148206135913660237129591126473883219192298044568367100417087012412931850470752478836394552625546861476645906242795007217826318184447690553741291840205320231949877926431079547339187610833759845235666786395214164644923449607233365585396941228804235245805794647842185531027072046964746700392905401232955973056817899283133651209077995716475412969563405048533842569155526657163924772285081136729066210522900060612709291024968325737653530882567844047141333483996666702552693147508855011847396281009208325491144450203092631616438811089310403354564408285714324605538037849868541172260103818810076278389875754449472154794688664774426597805311906778633812815015008921584843555932015813111272489298726148890262197811232299108796716955882391876143897162958419713732049010424750109641503235326657621199790090559579644617953373167059903980512981853886566891211732857207600297433832706091290653211012695260266230346095758981924920098511311357998492486561329553156042987535829356167330985922889021138422328695591555742538992727380554841310276626917400015111674092954594591007801859237723021834878494240034831021784075627055059442989783131777663122538003411133333299416883165087503986717544104099576100098697290752238355939020637623224623513612957426743687933373387010536285121262657806367432915723801115431775215012392519393592705030356541272913628769315213441522282246998541506946230779519433074751800789652629713245592098652803304147302124359070759531905454441357846938254936276473331590013674382628652969693901808795734745098717553051825223107706409385446294833819504536116007988857671783980389058735180483347472632926132807300827516977202460338522544269254844560489118870493665730532099716737241547308725022318878844118254395490861893540395756081855688203219352652534885709051917887787160352400148815587001355484122425787539990396878720408982007351772775077976108721140292422901492782208929576989482443679000115511003345907790017741646461637028037047614180317445103415738561687812848437005378971475178551479622497021310940217207730641016727579669896073577408754408010396024893676818203048249619765517483570134102731881711876916437206347038705197728681509810740401500714955446595742934135765417837062650901472663714274484476447873767974159479976236024855124648835649394242870241582731082257053701682023251468266272230924701980440610961166552637871413697447860736182184355366343688106456705112573079480823601304974105557840903811923359464909315855993033265700199644950886908632861786640277484647352053872435501815192967566464959758469069923892695650078462964370545165235914087799147031103097910542817225808673859265075866684663931746927590935594360538322961114837150029450906111465596465812797606369056719551553240165925716706868568919694877945186831843721393123029996486092316642265300015847619534708154400206683237778200945072641190078657266065424035078452760130622898011052058731366675835193051867899080340173984967434701627188563280029747042551379232580307723457387655614966385997152218425767746099542226136646330948695223053943428301991305709257328827616138989204883585320254751866832208589402161364171464818896830566662566786553975765964559444679237139049311257236886786397136433721749055048169743834680690104383223791315929826527575940216879304445329316290935898143080839429949318851726103173288279669022085055662053426845472528768116966511125003531547379932649137710654629846906924294417983873954657131021938102494733561365390191325534900143655644916886876354800323910833239191269710276594506808887455529492281133495169991943743230046977551881062256004660869768750813849070739127547106046731750190859750409235913454160442709801190349162080792901695417682276829081633470451726803306665001625843388108029419010976518926072997980097501483087757628431207236359979893482332078912562220812140267940372641769279700630084144731489658546847650952688620232697220814254013640311231210661096983149367316081676654769064005269725124279574004145406728928022474768216973865994563733119317232929406636348695716262527775000325151719969177148548103216963838662071689605484641909663902872850484303687868894878766506849280183544319683171536556773119112381114085286520941503320899449468863750425778607407559640034085649775505555487299979783148716494249506642710216454347261400880884950550441846822499423267414612918989539420719219164210148016434554344446943581696421354287548643587292638301801710453132922027503114335762560264231685519752289655298110266056708294267715513923987778945562633420372597175444025171691954428727544643765510886292574814104101691406500314319877200167356778818384596162986552099568377974526105172351539196694688440868842499294774736642726693147785615465650363584252961387663193712232624966063208446525766491824571583298623263710010672312166105508155934646937767985969495191328684872368044534399156851963751867016981944901003257773141601552728104212631309738115920876984465367118489790577365479356350593462654270999971062828819430421979070654851470162714397581976921902230512115623690365373240951532290712878666228744266644046560896732418437339522528734305447651433677253240958836263918005198741357139947969425409355997342970015982936879600202785303034887695418204526556611036815553501638305211034385994799845418224238664581351607693177374820227314517968072594841717685661257349541269778620167950523955932143575144835596798712071340436626379679039998466721049369311627881912153278032654525508048380121507925155740703275695894161088007138847617120114183595148512744243390397684638189695962273049275085400373757682931454060243051039425157828047613559341066551026644683478769484752350264174718452444509389301269248358687664043162241947845804481378011815796884509060824922043170859973142830349917829104811174888860254580673315898621756350097672499031132809721697262961415524760495792813889374583290799599739177438972759471625565871375916795674424945609231414903895365080695526157368800056617305386360433348591256079387668871643024044949967601315736015456291388567148623659223988068011764090028153308923300714553973487147747865361142852689013173007271900412534387493189546652158314407275144107933393116041850225195419336255765754476759640263947653743924686826106065112776789410129136724463583968546379806915733836229475020976377546000795737182237022270742693599396762303129667060984691396505559578926175867338040985642139979978864028444032626317063943246621788791038752693331008350172650740682642646119295437577799657112903789310414942670530972265324814756711045218679281722235126431116487920173489488125164588552259491300144036529291514773340366675283438596054654414428803384176306805730593859699290843319796037582108934832050749731245945012027543119719115557107632150488682823301168523392181252408126023733733755140957441239639376177134873407688628618688929866670839666379836397896416276222491734024681291262710438357918556712104312758946658635706891392066521282067146675865403919355002073281676364706186885729872215749313814449192194574608525734283469024773702316278111581453813680085630484820477967448864848603760462660753783351120058447950749985238258047013097748350754583535416233639771646124080099055943654601839001623968919833536325991580477477412064581238133372503385401393734674257123600025562630142211528288161515513873566756329612875385516681304933220092422627424125082953399131510197432343037971263634662265985477746603689596559929398543187071231962175760508842169068303047028067051435909245341274462413486377929631896588227077526539344216599708635417030848751474259360955736818677520592859907649032222987091901876395579832840795183656802347606606502376658316931385123494975828751019544329142498472204023436760143749748703458048379262766270472415498766288274371416588148284988811413936684625597421533438531475127081031749779637587601852876962681713805234412785484786576865205024072125386502926425426022597984989598163040359694079482327997470024633207726835283265871414412157331844021582165279149654449183581782606734956091203870472294058147921410664806925648425198535284920097141075199116822242433503182846452128292798683367327851184876677127940006800125215559175232856732942679636259505416373172900509689828022138693628302262867446669740886420015018804374235048663960850662282581530785904380168452748006678791815028220972194931245744966740470099533818919629894501210538092498153338438347557090460188745225220720132568507957317973241724914479640363604051284592342535314307623083739499665750189556126871051932958680492601831202698803118486514155325236514064373809369217632077539280399427496758788840880206660760757300040073157155343095341299268603815662214236934035418129026684801940668134598525000899185004400705454315646669078351098261697637144841314974908090081206814030108964134169844203288968267127184369232996070475875181010362003512693280099793345258089188388688354800058263162245661013917875013939839300044284153201601325768103646337624586629797976373911742645863108532601944394385136099339022330896069856154317723249028529322300046479593055531607602069686581659673103715582970689064764216960720980239749017518724560615494710256641396295480771602432163258166982131109198042653929124957547916411945893046274212692951319891467644789593517204680687290836058795996047446009447759819651183201187779162578896423126860226314107472071688911008118761091357184171354064960634328700698449302761187746569318964520035304944654908338715973243148247761531860299408431116365531844648867174431074336977230061391600148719579636480453493919059809126581159702425417819385186661442617047563249233193726376928086754289334387648785790669385079934256041673940395706494438037144199442494556938893268014318355410821486770018279432259815582945055667002352216091379922655707935714150252063058124788777788150991455043488629041591637968512448901654507860488108787987547145245465940831114138436531912798391504933953764349789651774075267438370901736829396561910372725238142435632401727008889231050922414196516277918414613996876290267944952664243462809612577490562941632119074936465015358024488596355185417113386600894392052780469840726169973111764970328697843313591093874091806130357998063678020879018501963312262686999805524766078288117137192320593456490783660567270500571042564313005078922605843807764228654841628876243804341550473547632971468146468117838352844924288053338823143850896370024456431962261259301374639150825561182642977200103095379075073908781815391408749971831227769210475847236606287052937362176036323838988788311013750415895465839395121805429793587245539623406026344654571927342536920702061415523853634983243060537075050440135807051470151139358201044850494877701546551454736584659108914004350532087933001772881799731472640515331812531711958507914834371784439680094853046344265730974253407407178024159181981540881468632176200750626843130925042014999832988241421431649533078710966896427028327538168606560982118075127232773679721202108297288043602936352230497814096806055458031785541457331915967659962434181235074887849919422774924214459620116672181706546631094295930523595267271579919104392544436410705077989491268121498865128313509918228145841805909633112352621023703123908674262255884070324366495479019128344547759527678756847087899080408612198187124405948874805321762898707078790259587154385753842542046590579189323575978832578989023191719072161536352207175598805807953855879940692991812170422652855712921024122674673165669844270415305029235683449367323841413716689981744099918532034680596842647082835546703205749875585048492743731843603193167440745024585940680519403764069061423799301203226755093856170646882646996674688603206793763396600627315461211202389142917145341202985409751876064630257688758685359488923640059079072751873220010005899690896883882776896088157420083670710480795512570686878486415377115858193021624064519327256795632600945713642006737387061298889199288962136984183353289065613342644348555573651666786408573896231675890546696653000477202857269954249557768512565423529234408978422712531407147485126017902074455869224745348713597059526788069991898702290501618981444326091614829908741641124329679395013110083695369597490849475526979641721512784411859165958239530530508826175525099845777106830767708608402339701182219515784938187311638093850596953234354303688484093611073741221123100390686215364550441089970831819212648983679459746647238222662835980101933870750869169982898302075923833948030828233817464201753595504150897443107119784892062661191661507724588221095492792160219084726754899682665046772693774203655136233798908180921140775847599216144685585377783209061822144111811729544470074170105263770768744933652410195483707946374423285000183413850308347925238663623858521449085124244745815540139655574123641389141708635002822532344463617516710608577668193106615168104636354075971753387923806519202025964567281188529322194677562880202913155708320786167610832765275359645289556433596326482314760302217649197691818690859898264319491799023753165774838143840734321182636527812556489241631486466564615339318772101380901060529727297675448520715336400912038839918358049813647384884926996089955938598401163724006132809778478461705605690584505486647279144580122930748217749277142664860318190434333248635479906502154228725518516530288674200065859552715395468244611397947123864718838297685825007187529644644122482919701208602603676648093229822400655767008186941420052057021131773650318123606207739260428357936101193923928940997911118582308988039639123020677834121803009661722642788481999173910956529703955282052777462518385619802877635962029730639170598545177173349225385070298032358293327848281005891040694553577229190684721218027964814451073252251990938761600388262814177637888646635077496582797661097565803553177242532508680060767355757489943752412508819196300215715701003449343276078834426436053758976780979061479744591092236435247398828798558575549353641860828518357622578527482662234916909495311523160747172309629693714077355101695027568904765112145623489727685512706842195796680719656173645562759268201948654953530839178988889726949572985678106889661663444103282044986322473169100394568850058304779752706779597774878433777498606174280010420006979697753516696769643561581617900542504398214812159398460511931893924097832328680349633233884401853301047931255542777092546069915247582252590899850041063899994714313895034565035933879293541001998805899246615759972913063547979378272622930556535594368878789628037536462147639049671214922344126393475145290893145563371429293806007427242243920855052353309164414106321776976651367299351954922739495194710267844290774312811188457505547922439605787661069313641128303020415900907807263840688481529475767854827095919923810713577913950614047546941681814413985483343274509859806117980426695539602632734172529057374232430883641242983708018265487328922453874446713477964781130998982216738791624775106584009070396945157203013044692417011592197256626873495877304026535529258286490177757125888993420812584968514663405782262212482729183192873242167770126965546196497958651541759485890229838923890474265622664179822431578894373330572137540217136474479056550289399990982452751677868291624819617843521635818929114333569705027676637838375536405200642857671578290818618323534935044586427737855562266621428764262577149912999606337197407802299568827387927833603791437966876736232768470316434251244743767781794091623437486355820287263188511813975768875487582309913669279439988652947506134141642576209495130596365295114868654929714091000801327303859422195530702870220686882700179918097124393958047152582428103698860485853426950912498003819425459536626823950643426580937925827756999789981852059216817732724786310929290469241269468098034648370467755737775154302398206416167056266640904370702368778476962572472297776119726615509137755235834897877290580172554912543811018969682064731770374203634522712823799118535233919162068563530875195119584412262998219440343637598372697776851553959659360768989135200882917759781437580327166961060964168870104876316615053873218675302376572641361491861832646254336019275824608297439155753887740800482418815393681325983571423040800912993465298849297851053131853792901013405126697054484791324795190447012241308290207401851276107826852232856118187741733758271457228998107197560583666477797997398432971081722556151004495595298192675749439569999099273719175417945003479788777566832640889340527090796945835662669571232215472799365356675657209261267374950812841240806414445773377686257223302946709560221435467286178469888718640314948495260139228664033736938214402411382009003915163977142110283272727022087839837470549641992901086881862786414311507254201210409068370383818502491577061678158670144341205227041323282759238395916602653201405539905009258658747587002964819974744084686789870379824701733786306057969155548995745997849361950341414806209001311352041535066818267851122396045751856815371701817960663271102821406486958390639035851299544689680345237967412898965712718300254127030599084201169583844381883583321184119422310172069098588496265340499512948997954951025079699587948988577476285036993358975347971877034029296034461086497536524455303812736140234989352182733132766362870193320427507807823412826040961397060018788892870310068282017428893612355016289013524068714805830282657165860647184712794323680184426336934098456131024884110970598759063350998494388368948090101237800964954884989637388047277863073827524427667907653222820984993691876943826547261258145910319593771886182047470463021960423455257180140085117592783735715099920989970017870302694332566067291513697024967477413493292148200697225076856093710820085288814156344744379127458694115976667641929849978799008406960267289758192626876455267571584156224885336353837135188323812517911005449972552862485021956819382329367235138899944022668887536822275706309343046097104385243182353909048193200337217706545363622411258868799586985344497080608423760154032091593989389314279281053046729654275410802440732187419321946389458943175127728202572321557325238428859941937188201326861997828629016768805565232133696300420235645053772446740929786522601730797615915427221546612874429617451532838852346519386971021225514245788218563135031719698722401148251288914092053377417826832767499490450146802021834516236035574843836162866301847810883129488439098343195285797460515450039076299518711158588621146199083795211264157399371810085685215297143594460839194180910117145001802376656009740153460539018993043385248679124982838858681299892422804296976624767140187094413857632971125969237349138903506849006372018408339958154098559609710322649166070869606964062375820316967366908987032584704955788359495253619333826500977633496266043431798009630093197381120733375911030061143550279271955497167028067886422710672125220427939563611111719380029188992242632594415813287063315329718379490972115754518838414338647257722235673982034068643110780562382213039272981113099833923899550440602391158882147356289926352030204052411155777886582857208788151125584831239878359345288184238372980837955715794883760157818296083284676149516917418537035114617484710419347196208131463162872391428446006149145057696890943142897684367295290266189988000432382743488912277626961526441915951163834959918453167733888642735622538011708758457825657753862538064663527897057446874660676130445922244619436674011638313301789117756399554500429959377597298201405076009768956901895053859712480815096330564322161587826982347248713537766946591652288087017863998878882172583593469631623538075478129848430148936444118550984945507769787117627076030937998831295909511594620215446402278149089144302552825289195804187051246269783391638761797687207001277430704011637912999183501864991199259434530187316457432830793123448963834203972483037915614489824661249753175530197963828209906790497528396882567048300604117301256447352152767762534076192893240061967522914515083810791276873222696999422532566344785755137794084378471871544936414994403220662045762702515265867287953717423803448594430341873417061019833948593753719696019034941072254836812692186198530455588122352603172050361214021213746613628062854556557214396808897550667549045432687070861498940031604361308024929888570561219643480964429853464748566311418905650097000681321796146898397012670574157303614198102026803378665841956433513660140092991529145339983297261959740487423462832065019149601411473151765376437687891673098658411567696190346117252798982743222427621480775055375996976113939163171365143624539040867307943032921749378444088648032553498181473441211817538879476914666527556740245592345268468118762232952649863785158770184097520019783557380440830141433882016995145154979567070336075857688685962069221956563837102423654189174000079087913606839723923881031734120533885897420334144191745155259105709923526100130175442424743420831000810022129141492140323224827321030420748576776624889393212212551740016084522146174086404466460139695514241883079291563904389828684709956084536769896202952975838462475124797507991665809087689544602536763360445037767091516965265339081419477049696566425075537811905536978591327518736368646531324538168300272396047805196992105054587714153416291454076188297212432061724676345632567680208535584206617568368204150951412326407811968280560453859904207237944765578037469163211559591296058995603623524266921996061095093610802437625913673189298959417314525416887588879133377329089925913201850789358469218181896948688133358436542247290758010998646688139740394951913593415567083690494291947081707572077544967783077100768823438132394711115634094276107764382304108007469549480723822619297122014849922683104933701514160660012435585354225654177007047322690036919666027492109302412324746225354186457784975399251946895173206369321491191682761996254595816776776913033449942445117452167751451795395812510325632095701103491604992573705189801881381743452105877111915394927044739544479228128477091704070309794872077594668720578764740433790636239983116802012181859526458704904494148310596078412020534661988159629728429433072642118076432204938383675440755245021368247023720386952197617946610670918235909234437773274469935981292067083449874792119075103514094578409279176677874563679169925900769254083403617323432234911514326055215514680900507723683103136412798475935944380460815699592153011485397811219386333014186962906648346327553450711032484063478261901265442935289238041030847533298108605447294759210970478995928450222939390913626663310782185980742949799847066963252113107544907416163712593097595132286955474002315750234370981423422607626721971005301862774041716995916644740789264041345573738467772187105191984617704698831194452876450629762398907878877418188481774292066726684244201994329674599187952461541451699343934100651814072568837156013766065002743321122905682114434865211973096221535119450005908522889615197003901014152436591126520311789995253828356000093010540307618246354081514356147510558543006035575606206792853829693820073699596505747814903791329575645920382856048737442901360106574880684885926174324787584452981993581978299570997688823576577937094028431954914169468780329298030172554816612359907776468950509990626173773083968278427893709730619926996395924533819581319075161539727408247077958494395438742702380781664995050709702026165771612654620501828689825909039968020260346250953573941099162139369457934096282569078775331645785057677939435117329135017975557588641654456744663376660440451192563857980540938289638241850039888701382215898710044211212592574865470843118019885781165175619696391352868639685291106727512737462336854732745277197477623111364358939813363071387693278768454573641936069483075932106998858400578965160787467239605840312140065814432353219772921798496130686193189128802335249079133667462821077543240025823468845612724305030343960966051072028453795078471811152153144194322193985610312655483460739612130071731541937788437083255376039193439154563549459944935881772747881915063258778337792909416276364811582012662435677429680857132405213789204766696387943678679143519968604363235177878920716346460578622809887502769160072297324810093692076432492148489349158749198785223802724756986061975096147693672856235339931895477765551647828931713925202250322438155659294665244606708360204600696727872966521259939086324526660230908595393572344557902997495177231058105975274382173053763401481227740099231674275878891724504137705251455597908811721146031983015631630707667116980160771245595560155878647674204197397215963630062531795111425970239460808865631580969410042200835460324608738946646731518118215102529920120468682602730787545316402655242408165001444157934770675935687796319127603902416402332547462322781824761925679909985620587413668514815640314370351194490649700462091679241989105150760338029311337520640642333666648309776110030830019150929407714267165843258548380356487147652730830496621333224077966963402409741910287539922117435374921336725528613658027848325959045017087401761005702701223903311902041025522050429284559450734963804697694851449446781260804901057751577187472423935128537449780603677637900644085178999394574678943436540032253105676253682776859898795824302045223349529200481859105404406697685303199939879406611848838358311179307826191267773965258407510348143056289981589271819285685458684852017078880663712698123944796828247004125347465589974759473235517398989191952080675379437496807718361257845585212227201584752786483059243164850269457059303444168773672671991612403479618158018722870373763850942548764255578045430036659339365426137378226662095687604926676578960837796134311759149858863900194160671398146371688301259027553187018987945341170817992966474803076509486615459465424052936994994584539149351275510987514331817839571122395021327898399112937293667547448942501635812860791209296823273182977944835873152769581868952271154343594838757062796015445092370184067954340663786727976848583279322325566143594879687188012566330699429430397884270078025764624109722561852731304236257191263968846306440173811221553176849262675239164813153848487163957106775958297389119392449550961581986754948061939737636516824049024760040336129376833688487196021287170859396987533656357744574156056126531673848984474789511688634144128717944063729790477864328367514941956877183152836362262320244614780408035180955379704196361435224952687936894155257919474810122486375652101654965192241135451002623910635247263216966725180533848936653165373406880123694279077919795028259371113207274803074685474824979343370588058762309696196921239669795329785308322151743743963117880176298863129041663610700336310650050436632444789139048127347972851849051615663028139264683424794369339394742133073542008180915781043744867059722079673033509315264467440511636652014365693585973323760798438117313005108843964222333285666900730567226935810668647309034669907394902515565882412641975095259985370827015820641831692848382061546923048205131107847508798842357351081096743320946393904065507572725748414344654455234544296061089637918881458886333938623182539194146378403307919415611081028727163968378841934856802742383353831447770404822415280731362077059290139832336695509562401972740197719434385751052440862904422905207340497130581621383421433777373042584153279557916938862105493274596739044359080288491455102406067647687264842397715154293899820045825292935067997371006491299806064673589498265577448151736495181595220584884585451633981938308385567876777108014477636102345988114590600302408043113378309311000324533879175485865756375587127373222092112362880918308405178520765955578673594269267929253233041211702240323518197103290589566376691566440165867105228516070664719167806268614403904214935912573430888351894770514267346926099400781526223846101329749826085394652487369038723885890002932735467934606203524931634869472827149732026105954737213302617189142427391592901457177566080131851235621478962546202469997281116708745497072287315547829285364459252340177920643949819178504240431861794785587945582771383169623984613699669249756718260180863770919067015949490710212552897432197522859598492640768892803650239180534565385808696510532827170035073458891017911796284628545365780140959130169212134945809702591091131714094504690552646100490481622276841323613359021966373068740932797101254127645913524969136975392649269944978801221077048158156914782712935233827206559115472384325001983814888787793390303819024291717662821249606300207766131927308092957213669553301592786646234601861758710809845117298729697208469549838868002946287622447870649125283967498651148643311145326616435518316984588139392657053719934778388360208220032246735603452430806026023410433174706903099386594088162208694010642968993483039818653976088012553469490592450231377736548424938118412705007180048239052954146900011309306046301932600197535287544407866675539470654518575960066733524079178523332764447742587084735431319757317150118596087605007092354423021726210735749310186399780991858643566883809831390814820184022719786714430883449593975667306901016386577456188183931339618498760826554871566143554926241399236076183970888998279321796824394372142233581516231577158282839416368468826413440168535434654484475033753266390063692088065780696570884017333046130834112920826805997610107129623556478514683499806151384826406565023434749494793913836380445908966028539904452995149291393697186579104164576009630243392228523118291978377793161566463069550846003666277597799019044565712967763337835134508226329555457970256618108254202336305200464942054920171095450825871394394553324585084684372209818604494147211945076172163189212137018977679639704250493421559824122857941721175180247342399592962115302348596662500294596818923559444378874604975311095532994912675542017479686299578609031540562650686983862556481696162781465172291533834861594855232137848838848347183172847486530611834756508044400652276480753834618390953211334333815981993171868103463171195425509016289793621920252606326880452904212720776622227275725916055736376235017984743364782695632847050326928491850380899569823185367164650816647112072429059959772653123240047272295392685740301755884577959968452802734288231043467761667460140623863584957393433522310747387169521222627021406796127272885793838477047415694781540669506084128763198439500324116340405965341104274586689633749765147818738369442688698019127133176202378842825797597361965650037763829747367601397248633962352072940316290854877580057157413565989556734503570298781928603408342585896702260523919276393730310608428405821866431540693100508711421994782373895350314520136038163591930954008313334143049917236768250443365615908635495971849390683672575276309453617546069101219465900485863711014955641300183648661405562489834377982351726143880792773149089695143917850924012107079984240156859115284644099147601887500565919337062997783941900508394401558657457591098504412806103921563918639175442337176735270301661570631992045915794724674032765753460239268487934162069383753646287978254451120840955566427581324920116008463184693313661326247136197159437807382464126728565417150869573664908029694263627517028899216844113376087824855797594123710837373936804669445740463223223852003343432073406327647097843283296330392676075629935917605928890475811954210114473671571565797396303207817709718969989759788547366932585164821258153757389632308824241607164525464346131409635971592741975425667166729366583941454238455004881360086080694128938661003832930288906755275493587782632310245234544088423282024452747443833717765601467763714751076728020540011546670149292571061656786385851131482734330260643079808868206770369487975389301141824619420585238539631981453161148694343853036960196842066678134923573902972403270101720046109946149651755036456459051339402281388333019710006871621133842920800128991554786081270736429017081436821880463202386269441621343745603612910519696193239540154147990617294594250963845788640638042511714349379571935439758646541724325452948906753725380770549935296025200970124926690711085169673663294548038348646452283818045857256345659117580900426986905647157407149530295511762478393485507316683156924526711511349449559084987563016362602441940940268547702080773481880581970382473188187284579747746983450215130603730425177419873577985125697181224543363971209319445259267808016742807827278492605099995947662712144074357924769661831586650851683995572782106820833072691321989136117967663087179838136919345234028903627314169164206637661205503089493245880814178406787210446690670509964591139292980778312790786446466720620669282895122638118153338941701064643917973249864202321377834474353583366895809562253253885024264591061803861377118705016826498903095378198674217106205706101429884666180850075927770823115673148435754020412269173905957338220280816055485728968286970307582630705332119290816270770414152280233990323345213192954985578549828109757835338759407640060007121486309107625143600797275271290805577364579359272176899845971744404533787442812572612300696807509564267913732418128719127761333606005812613392709742774116203725744720024838129745708317359333495663802681608832725230399984511586265048119049358030831535231892218366002265395352239961806139322929237678187379262445652588528070305372403171866290959541221288674928465541447205899005592936099592285566922660419580394067775875568586346847424517988272762239211688185292326591947608584550133889829240001816552263410560892626016402713506911739538009008853781407608764934749340010209155975896479861374660495584968351154696794936632061283835309755492760329213458824411409346528387233251899963496890364967039821127104575226423382540509180154644199516231772492736247002229093395524082330219731469253834088485606998111867534188472359378004960992862593546991119693319439900505626256224946490330005322275106272852158540096556716919180246269380599678051238273109617159453114515308469584604752390357502877364881480490604944714640901658953649177276310593188528130305889065628860385944948381978550998318149679388538302162286132655530722210291305791109563356268140925721792251279868923495955565891326763839546376902108872002166673796315676274292503382476953073838495030301673674765653314787967126103006503738078329419175231805250471138211631083472152814802935805241596144976549919326901314942803967847392436166036271490050587271382021244546228553933002187033988507782190363748333478293218374432901541218981623440995625666145910758527066225972749681994269132309182552596006337548150147954160408075243399374160326984391624061168449797532199767576740674226451890834320728255354910655783272506415861079263049026764587775706678334008483809269433949747267687419305394109563484541789999149837794109320594142604766151600674490927240009752339146128634565626418160580605000874280153587333449886506576794910113515013436088886368820092737141499508265399008237548842365066570368515625356373336516045395473418060636209681663817484924584161106694932470949689063862634561695532513043285816276546657839691630813853292559619138766467888095481618070734964930699817995730458068827591134369558989669157842771308995702040456282959581785177790519599319388868433525776811943598550301950041335442323669772923599558938643682146163894006480086734108983581899120777302174837615822669618049101829981406782480787286363093883853257767809347563734254935784432707651396037893609270913433414598707413304348924991286534959544798716656459425450420754766450629635044784432867070174255335488197437078447861887738930198044201289061411375194492007292696112037715360322056800021273436583444673477483688887140873841814365701846686238600211778323252656985584205301039802571048300916901574127812921875428703996220328450218174678393402930994579713476564170279216840759116757806475909184401727225565203930163425900641493800019357381944572032387533349984229419640307110796487718313888102523339425587068507576571740124342576610890566556531314850344968172362123355479441867067668974572199034303937152649368401399067448676703474660082085961428909191725961517928202169139069980760879244686906319537670249958754769325381131184533744581240758369803124435835841635507015054727980903477804164902336069529054582183525357751767962567164034781770004091482307783992435048074110122182597077960774910689734738440215142757614234099264350341033062497261773874305057855089883104392402509470922586887622971009766840643549714007775725268127263973687259864468881857239817159823497430123470841553628001855909569869211987776888035542735763377650407183250748220132894767274523287207309039076485338972488462427519616876955227351545614056876765949044026192832080018060646499952517313963425864477171449615025994381864955786557376470614484152532316694000736774524772340937535467742284052928638749729177765462350184892576465549855205369088791161501237639936265018137781217101825689566162834839986136379280290777049968724983773393621660708449898928669452306927191952566472057038857865997574589057028099667454946785741942933248779753284217509120336587298446806276186139482963123350995565460798684566095559259535562110916886587354323211240566855255567557297582466485710341948221755306348688843260318739555941323628698629614128218443840708195064235234904990164700744052080505867848296753542606870745270859380026044048566121966769047844583047329392667416480481430785317094965933924287883876710937088791787492687658746405614069824131209633294236436120933260600295048404554278492739946955203425321418608699087424180604677673309037346381580478922579349885244381600363951801530477263539120886225600792066015436531286170424759625026217478520864668557855079387585069894233632997500970685781995605056091941292605455152095083353023422328277482586739965967296109120499854310511360886029126235995951272425925644700214008497907330661357884263481879918913938255741948857445937108262797419547097466925626347364350254695080049763813645240010983592633172120861499684298089635562000199717809494198137527623667505471772969842832340774540911657705754039746943789525771068135531247583653379171461522024245925073131256815095384850394963369243468188994795489732618579670879615764162996488344845349475791903782198380435573328346244044337290271853377753060701950509443749252682741693720716889373572135281787793678399998581219361078805230740977767700536966643041275930311141281754730798888719995422200554377313237361284566014619454104370441445857637463422663160513797432911320565059434518600867641531321561318856384584168731366802504701879141369235667967595339431284492777499514702064748767965297981774022576455592138734435419087014052518429571610353443641184205382322406239462870737410849977170431265558299804985950378928752679930015678811184382827460734487831608930835455191719020887535205482534846597124151483186266280818174997489538654252757487723409807814389722171057680256892464679696297315707622154665779255771520525570941667058409747425269100912272165644768081556502777235554315693315850454730625312444198252389222181839489309112998729384255437877422606900722077877591557643684150916523058481730703963334023871228257841344901611682885118932379080888145819351317193126897574220551420029333019845152304562721210918964220005022935728612205030615780385301988165605654726409906658298930585948166003457408860540149036382652509309701515450286289516582039609721777129292914464872574375754541702705099899376364739426292077922235894877370351342009314260891274674246393212379373146886783922717633161294228109909918258601191908779251718455972872645961952513977017112545243440725660146961938250300836550490637906458038665572370863950705685269735024059383803246750680843113956771625322289709866131973729039102809559057463181285124512893276970100983621532931912689031518266109989247260361163557507618593339052915500419934106050740695711769689579537130369827271996600109606024345825350900219430084491493678668583394394955069825335445265552320140100142985849562104614249192311578510792819277514531934803006954323836295166757528136164617061238567597166036774366100097316468121127915261765627059655419743712559881605047458492207303738407380150920432745014056692476445294180002440483161045229493799324959247206480081963697569473178224485523012174291308181132601490351725777004375784299713945971421486691979243036266220531343345951471497791252436505728043646723504537329137513244909357486406491721966097921673635760021145605456056720692959813755489149741689464961664012774040558109122362866454141104656878410659129501617743303076433841429300461451256688713539283071814741620593458242728646105488117969306692360308857838414688879198189786778958433952257198470235128352996876848740783860722216415965820955565217351571593969908928623074189663718923084357264290769544115770700692053825873804232272889176490004484326186524424586480290059790850115091026841523691064529715823005697397461604860715364001279684468021707605338930229787814422913514255598431705277758713983650131292474221464249775389133178610403847900970711412997151323223428698972628086896330620554721977515216709544097622728970222643064493723596719610883710316154336262000085771188705161254796879480188861084845795379759347696404297828406299186200111372811884627076437949362055761995804687874955424443778886359117007948085214218913463768751990670021548744046283014813505451413495874194420578934798708265821825947642997720696644259241469736725451465865666467146931643931880968669564785203902690354192172563797190308970856098676350421562934194865920375476460305907384350364508146659237590038071669024241539305463707653949687801895621622701031379765807637207395450595634608966364467140603062821716544925322667881367182750578786494252516659821885072007822105784785905704018018655386503687313905877738340465188124709545964709009436109967089164022120897743319138788077964740041062799785000845406685585453254782334624002748360556775454252332997617542888473638071811931542850260406269790378922122767012030363286067305309299207584159779460992775538384067624123147588173260410841633273116165013039623732118984877520596197509103482564448707491235833782653259565923029113005921814452482279151244417205784341361596639210534235456531523609260598226561379278987626832702967832040501781285928802707856805925039079104280665722157938810487456096196201934535263854170362310276097720087336999091968354091579375956495004303994866771826501634356485662795119304179070030924095162976446170048775908610796815655172256448322187698143935190033723096540434091164460271866079856761454696836047165925584896676403912564576075027425588569997059047911673161408094608267077444887331515686309072463355977801408917059668228813046422725211265343092271744386128718191963317437718311289660391120929243492698790660402050986444411833598149360520505370719592195417651580486047865413892730752595068135048475036956350214457622961038112751408524688288170576502108054474898694441766399817516059577341705749945978960901550896459114676564665478043255066258974610697216694103630954495266661251753758172071528605086042029373183923357133005767909238021541668058088812486349325744764536059259183899914952726266014342157985104914784120273925953425805974192195924584267480091238217101020757327775185282916670025607874841899688453487920589534067782573901901436147433993247263054339671429049340992879452801023404903204981265601867951339906562482824481822813157210722464063897964371330864423599853657107608560644435510033861517398337457533436019950571786232419621257876827395467517559744862811650564279633256335659356910802278499157393747945452135393611149718470474298973950141906603830357663855759359447528383692018766668324153096218418906762862753682606532093416685139478382687246102263986221504479797434411653647609749598712133443396676862986054887239314654456118965690316567715083025526007839138997542607988255548265415903641284905778233121765633523839504233819341247177510095755491088202141079887666951168695607259969155559495324393621061399991905936929160318133150760027505231669419450269094182250733589244256901616103702882024092802434509525204805673244181049607857220701769793938296928639954475910442896246007825036468951831424878034346920260786145976776901372081108140211629787866190922940497239625242569577898533543573788968605248771980654665383328950450594765350138611060475481892237325030142470738011895543456751130672630380836595881076452204266511058631629051033013357605877250152316978476726749762691312514731227015784188477015085968443891494324760546933159350760701647489653451282810289064099683426515109552158753062384351855828929077807731994903673068153571184296025973511532444418704590280914913461287802073368505550354216810742356436804170061445247113857632890193728636027002098108629814043785285892811384774818716951899011465079976827358388664458209862527723925860184208358918452887228044215086874718758757541450369046722083455745207074680540407688403678418737714563112416706667141819937266269993794752018166120264174050978903322892071599592916323674125971484679496942493100318698334578369926071871558424789013928921292331797803097830493346136930402539127800893547931648482044271521304268251219985486639928824211165313518329199178558802182632385061139680296220235466178537441140329762224581896225486769789841351761779628874315029828081523983711051637266508271102431507982124130444834476281291942571035038177631505800745074000093493988969602643327215846209554725249170463562958736069821825894159778753604317039597654263760052014809599110152897990642293610305164689859957957291904131639173341506032177569215872616683052620067768690587867931320665916198862089315482421271272248781908108370952325918332179204794020337272858960771486710211318925276793867129848042172063751054702639424253876669268390399856510975299703847105863419526632186443293863872662848274951838759650048511433185597764195536704129513476000603342167309085313366004873703881589082457582882157912224753374633887931401787658384827163776459103201354872784364820315437866704512801030635307326494702781051846093657244920753342887570775601098952588248007246421619099738396508263630108115491388372381034359603434409666946340640417982867277103362244679214973365883145481190579126774570311062814832489265521586551674251605603295552595120699066444403348628999026620443009453926305976214311601712834561169767625559780676039126874545884408752278091271232145459866587931292514620363231570001500697760886336490389248339218287185077892616231119682699568798764780775037052747464096385981097330411016471549484095914866066884454179008814390293229714002207799610357399265923562726815353320338398738682991612673600201984311777794955878478337341627039669451088201532769467636494912638475571144037566598929415336707453536118066239510488011771133940368260012343291467706112568880660576728119953466806525596285495932851161999096121276645408868735725832714500210506161738702579411835187629242723022438990923597263596277121547190231744664350958668331212884038830128026168389718239464510776609897234749996320499564927904503863567036260658731673284726564066764069606752124531984009861072069921282219917906178613778920676047252828369059954178625304458604946533134316290516416754796958135724948187457008802702100106066655050891482982053425356142338870583613075756891022538494046149963498397614119329373047582939401920913719870165625201252845694878746575895900873668569295491913206539462622234543275892980253466769346210742913870569073861685911058503960617156146155040486719871345870477152426815497284990399116587706658224949213666352240078552700818136153846347165390546216840675903687209836655678659697303992875733621457886120543046657990918126667541403709393285511780943550597793011015304468399706106521766211510254167092297188973860275071556990669129427372143453207023250023262224845652578534025700838830712482372334945825328295591574378638839869347664437024635606105204652160553135647204037183455019232446829232371886294098943410799922361791415592015231384074424522553123173363539764619702295378839010559111858518030753958580992816541763827070524148608230348844826397489702184904285536033156462315510425020714239291424415743397803781520093692666464643746338726679140035354230471576732389531051759719675360151573607708293809333297421483933715796767120227076047056370080237047606271148757850739086981210739311889833369364936956479239209449739441519469885896432827581084869936766114256422814173981008211507531614255600056391524481455540762038074089172687887484809973827616497696990590013697413870868013733927187899816090852893410687044122174330506624575437884016095188583706361569788307211291009935536403342782795408142311879469699033878023516921826497243006629210215543227918236911602846950936591968748384822085117449194914709320102970114709017496152351562370932982300794215195737713043596796833169613196543514382801541716294544367957507040494337883786965749069701039281325848983726837739894696755234359280175772930502084804523620655576924703276334785205467488466830810643921723789090283263333209190480551957532489157319186616002474047652378464876990894749324539433421851922615673509710160302281280993990762114979603986232799164577338192274372505624723806624029012587277213111859362505553281847605461375348997178626490592390306578614100482674808889275864321609367629680232424629841946651951597915987024793039018244181151308190718047930201167676868944329972719759526679892007538763012274530723533687282547973791183160198048896329062785624976547153642104136705261362472471307650308370377743357742714063305230096776453567525678564449462365800232742667842726284649272178689209265721732872638019954610386554212979235305399806622344422106641324939208098508794642585722444413887239313040742584472856414511474850876853379734298289685559884992245209411539376436642550327892411540657749039585094640977151861423452102112591717649481147412502918671838066642063461760350065985745686134894204642954722999756388763367023732173277630285446271412182351316448908913597166118963385816299616182966915696263878361055616822201079183226836237177799760288763662639466148050405352943634519534646575700294309590318098129783032403494616821949948013218889960959771750360416050685482613621025975741178212849552366429186296962215402728890601481874316321840227508711388835283928448245497447314462971823522119359380879028525751189735573112298991546407677772735144673130997036480913980482613968918861025915754360223635015429037590147191057095837463991865729337605824179006437452352690154943334269416759006934121080546001266097383846423187949809557784012770412963709419275262153702766106013245590058182268672168665941979112537306199341826688888533097263312897727812490550974115506167325862460843037520706185345500974733396748977600582232054601336298209801822375530768386915647271132308582661937392676087177045304180392778754477225535990695011694887203802723459016406399519758932054126826598741275165909560832192137387322169714215494338947605446386936136596667181437673865398015108061104321815098769881480124607861757071868397976523724539899310948321093418575175843633424212023545004597928391073453908969048296330748486383253981773302575027603894635910903399150581635406173509588308705466437174227165333308939259178369378071210472399942404869596067076546200835053606133613088270240794925120740933155244348183756970068884680503433619272508535493868908493758560927528924771306916682561174137784717680947958737378675428099927203438208847093916452751956640367678894932966855765599924088603096805089157128944939028863297855141752365131520305066962196465705917122738723318487315851266801065699481608600915980125731763784064449841539414639766323023935530616588284829293627213540064963335681927477912697083724632730320781743294162656379065047444724380962519977851886861688448741931363407218950284996411783293374081007191827561153352895026137810605868371221146657157403677507530150253311062801601101384112535707763280796171233102266665313093702522458539041408363085496158743534200299339939015306131463036957206407742947619012380452573012026715152080500329263248618105480795515410736863401417211105286213804234409568164535745546151313149574147749232618990115262648525634143434614783815984767328966718176273421353169499324591552712781058756461036156743571489098504543981103703366200993799042716342684590246186047313856275384510572546635360327995803877999826118581614917760881015026260482373788881514243636044775264210805632176750916292420786607199307635542679803929571777283603379743710316222227720615336941712095783668697082171604876421281971757746230075688965419616300321028818776066758605950345553526790644404275620546996082516683504690172051164706409143631567827204787003957846808096011461745313040499613664606547172612134853209783681155580445275766118723648538075496866770880010000672020003197793072745309788791763444236561240965829732216059869339668940763918637806876199716498045801951192278317529342119602627550807744371185442769511923104749703291836811592163151876988801179843701366664437235094361298785099342660735512777592090324824082022055312137892094511765928404584122534563743101106216804591467910476222763608922313886419765078251290110270999946786852803509660212284787789758834632174246394598294715809895389175084169306431747782683281883521370745077672198531321105301318563734591049294949089818702314280257203112571181690382670383084455850286981165863447861842043711221841802415637792638372314128475041452197149212364683803061984778285211834121855192058958541882063261522002021865278333265583339777761107811842483449275871776082218595822252012601473630736199470720254529585514066584289075610601156719714273636151768801888238409645321409271600333270234752209852840006775930127287890933274514131069819206763535296639814890658225698873555798078722260412228838087253086083314663427055311378357261560821431897077422815624554993509200214681745749431792403615347077082341734629196221553518651739968811045059024690571790147637457777120440413539179599103426605413226929331804780768477213172074610520295222204306263956812341368695416024296196700351296202108555881715416519406930908467448052185197604102098438914861011112711739454781733740476477444251956661839909371060257158517398564583772635725871513507933522405213415025504149812903924306810253144594815567254754923021682159907308712898546476166373005526368114501647599573150749684772374769900353664446125908159640178530112693110036004992196879290367656620664657900784677856595044770209965394435023501842711370126315979769568063362291734845408093526580354257016761226296640682683283262512403835818699086174268531962672306833893985020057334014798397416104974589207838703907780802397614943888766500984035570326325165753135604717316680913968132267674925581086951873996633065520735843897780230500506929028218905707322507620729289040434740315034392509737634081418507316161396521161804947361882359245942758453270275018806469728981636005845657475671329769534522250767149445802626438552918556451438574992834126210975247933811045520668779504305364183101209935001893300836867969630456380102935998528687148295460200971261264153432431832445757440846696636541888720496047697120616979792824591037475318923926315544675044021739589647023791395064305274489141919608828417832052157498778815172457884776815242749692426950422162001992711300525937994897885569734809958616193431573722869000354365363570413927719314881073657182197191111811816384277459744210596474109909674628800964865422671981828295559991727310191678214890453322695480435026340295177243571775329235939604711272842873861366168563722834083655436377837125577355403900088116572974895197769185228613642189674174271130810671704511375316759226621711717190423859096611380550213366648547694802348574070716816165585973075829483121223774665958619106444784122243437910801073878945123815855120333502407765134753233967191427898863250477835512746307929914304685079464138832548797447096105530193454236095224182902695144014444444263419644985146953176751208982284802626248501384350698286602807274070342972568906678424695044552304868961590630651462804199369971719300467548980442894030704376985233050434670453881355169220297218287626574028991345471970409671567844163769246953799634072983264725528711505558757437167962026477798196973946830832420757340542574993643205481809319585283153727492502618692000214705342947799986495030387096759733638369964039830704904048353117663327250406196795365004451723146603086441691131416415730228833049049030621243043266323724074488018582356268879939679818918282161880507754134263135088504437652556171341018763505472256404960792998159619553815754561383067558686677493099254008965260586254022368660209251064699580464100357371829107619319378886383304126790842736862227529428458650011419495481609257182171200441370140598880525890916082190719783951312979687683183446940393033741551919731760162429731897835698773129498440294835682618802239352846141727263589128393489178440888691730534817573675779519890865683041965504237348999999100185228154342964275367534336443522402302468333385475080865523733205577405665385040063039072895855533773795974476706641207516771411350905519009535322233531405282775269340164971767271396134312447542933801912608073204813696740306013664007432032917218877248414913611574236621432395790042237133473454717684855451784412125430376184797494831260901808476794221082600419210312182145440500489952704140897998684076011469512616635313985887097156445449838193332003249890662768917535757698640013337630370466614781494364133186192639279713082375337437424472282974321947588393919333356905013814538956868368082642940575182482856254332617738688374766109721255613799179612487270619708603843448510623016635984708626384505773926126841094845563064438628070704003143680079146408605883133439797193868461710061774985293837723508183218312494918410755147244661036123538332321714543120702348585113900503270458483261472568269587451490938998686387896651634769472513340642519272202054954831673550646979611232913260771399883376507112280472580335886767142787540671404439571819637358571292947755457899587137286880282653448509525284746698552624862939734365297786626130818995833659280663281720656277295669016418625229113443237704502119180901948143220298809826781170898670177620704622023809999976468099244243819849843445796663208397821050450063343707134262963256519921183764700837879168144135577441930762274856901494537736762890145513145583390318771262136867760720592219899124934951814016572574482508838987549402543585108278019023782854627646545220347824042713606669317712792928406981023765768031117445567264628906399871009779900072959879652956490269119169140355312877256871401668496150739851142181151481510030346187748119323124712391413038938631065444154976219621550965786427761536374729820818108206366763353597308359354640432495575713338991470406520326394317841051039390785255739272589557875112864203909561866973332227857856183708744698578769370267176088010173625260894403829026822441193796653905689864144206680788139313675223127409200149650612361003776980614411300037671099056735887085088838209643795668232043096812501318916163195246095546126768638031649016279131717228053303399886586371603039714881897530880490711298200463320653617012154435907346440058280875208283765581180304837854179190692160893801169459364285120999110104833233655454716144854557213135686609196540655712638972988124866880231126457391791720031720874320380702400520622431678379572710283788184684131132751554588810432736666076312197696963495634351686734178913797732679738953958879513051278686682261113766763640147385056688932480359841683491850693494330561289552862708845118884360178027000647715907629601427838965967328492246003804260890992236969867402244973885741599373238690726654723565187571544868556673401107849920493642997623098647180275206638112478638682161722351899884240901318307634408897477584748293103925737825895512716571468299376010914888357964919695556957132465562598441128051923224763422932693440682260227722259536947684220605651018213993602900732199305736983397580336270417311657714238308848445709862223227490821413423379584902703005826845385516089341788667033195660653177402487762503862775187866255483778737719272067730774172759323459623218071484133507300549997923895295247614037260836814832643966775376166392641929711386215624931485938169190261698488012248839546563519102086066300130817907798612933393255794441788543524801745822764006423244093861859915830680142589749680536785758560278396250579998425005052092307942527123752248824585200566685210603466425433812735697182303164874459568276984848883417795787377227060074253861559047585515645149480719871788357227107887744282768153241510317494904126421709011615058328309536856503871050260729121904775777190126529487880041304789148099243443746137684035907892358616808278125398100576406437088388450714563102758894583039999813892726766142251219204395357352755508679410614172200500890481581344925383401198999930781273069077284891020011826024646324521800016872268967847372892090092272151779763689681747100447553061165390647446668134847103027439292215416971876637418458988709243855724658785031404877878949826606489011807838114928282286108577264810216773180332461548828628645705440089145585327248284326836826230943054015590312736673069047232514314166950236003019909477285008934180693408524133502484420670333441262935466531821213590054872571960624582272056048719138762847526944685499817725335284545385501891577924990434282771515691495644186138352091737450798099954832643091322859152708362464496937052881354220799230230025053906979870577456522163953432714811567286693318194191965909148727213928595559041320022556605548118321043300140582729861264253831239809246594358936760213159875834165035291045205803967475041365464593985841167350477462725397240754949594773598475749211743180579363712936088746806998173071557781696238690137472195584542401333511543984114587385792073470735965535952540255055046057675590582197122640367859257206422701325984774425531473688281583635059827565774841804873262551210579433520056068659721457229130706607277106568914807672594992886910306971569563680118622180058055526100226713543582959910273576226651929238909388684269979373666820246283571176622727258103227232881410281779144218107067976501316897190354372504998668721014607563669629733117986274531451496927940227809041255299059863016414006521731636232518415642344204825449091889615506368810914758336538889187108593972220274749207097170787471641702533219102074966341762530883357363314454574674384328864886966906066416263614166646661136401053267170711487012771279206505524763921563257307297693936369584774842122989122191350781614850583306423218458732091149271259301735491831237649653169001216726866126846353351602436929731201258616431527541214048958294749871767619935828955997464929254694490963127349786983437562093052860539847845275754077556269132159806759888337941293796791900914589787402305739441606123802408246479447934570940257725011281704575467425483034446968218924515310532691090825750557652627506325630048999316636283148190362729006231481750944540362344729709350320001409810341907585034793780358294121910404640047317742455248095937422585153666495499758000876852183744210815940980683323364309790701502454031190864472966738770002523908520321011766272999989720397973776344668996745395297215273896618509389759264191226316058075217937159861019855742699730506917685581860570220716014361572813626440712747854173005161169110017650473828861857970991145507993650955161459155560317452702222814772481960752147373924787859932994989699684993681853475420089746273861968483507612590181780322369677575297522133474669979973349717804708241610076897465113361600983205204976833804065511539834639476729622246401009057096429765803892592217480788961998831238551064746963949862336583295006729933751902113676720943834255876477729799919749509563139968308654388942922528187818092708861447689507753302742823573934089637071364503736007470502573642108496645710017059428930855074820183137060317149466437600344371560320767158814137480465482217237281540106318386973733984174257076621348591656452874852882486287586545603006765401241105284934518960902307685358648507664949802213826586564912916840941577414206700688528459605550323331930304152079490261046801434742882136276198140880684535975561292419914229279599657485654226843310830138268666001171513147825752245592477363142734636508544742760939695204006922820840225637720358024725575732479789937187178028015342062794887687939577001709608630823290915315513168794457811315949478504424775393779490459277000843541513654737931582841314921303071504893326217334921875757435388712465232474037330837987509257280837006954783760089250442815752348812085126463720690092477726649111322490217471061388040373284255586447373281760736834299942808273934236994078869252294010389411231057017993205080203293695664624946114780209190480753233166999541903686845616289036803869644795577584859539326660114887647246695481634323957081564567316127276163033285783276673867136783305817549704577763924727729560991545798830642469086665390204122582933418706687878673732936335232856985959091611562680743241435337319604750322687126421388125971784582515468834908246063688927101158551320512564515968040438493949334262566077660844558596445462605732713399072164096097519375962537210358605486783551250526726220459119945831877181523040539517685020925905764327419942336161179282899970157038192079355874251429206939446907308137754335324857969021974123043159131043130432995949163782606459321594044012738080660464287493065276048185163494859787640283695112147489203679664378395549722758796798021302195559348303666810200557612856072908846591260414914974036407624195983148825600101243733142079556533855170232111284992592382247895116150396383289303686460772517813972614375308938116171911619829192671152841747561697327281661531056186376896904286397106131127015913930845791268669536892258836543346059602688151262478827691024766590641404922562827631482363168812347333945291891021089556303937854342440620143912984144425430425071803165677835118619526271700399461216097004906589726487452025440735383859544269080118881736579356744410304712369269977928953129580737040588416457100896471019282310354524100295404341442225122983674256501204850123144693336233239333487585549230065379497229186307371823629811931763667122350484821804513775815722771763252845045292003353445778278716605757782386884578059705895789012578439573306960669578020060462974301381698107172828885489915499141628035695550910862513627247055975011145993272614120539741434844626767156496531504027131068316508698237078302815086996427890837812594062705022437176873466275753159228964902884574726375176818232383796360492171537827730465114507459950971908422084095281644625081060255570813143010731137859399207044317413985994528932050213753226023283760559502637970074020118421776550923071538297133908798946891652047616849005927875734097923556972696969168248338435037779037321947818666947172025961278050573572432033401503236456222421956204032738204685276622529663485514843373079237882919236532205724416302000745185327985919024203073938246452773603834537474212160899676707148214302152180481066941328530137880282265504441679498945487938065496279282182142215086410103419764308699811079342639241396666539812890608302567224141919331444989262731435756316092576856782254041653759598248401597581343996798061319322984026306882369291997365511273041710643409475352688636837125006309726130567301511214889664186679822013948987348039569250826278389482759964529657503698756894300781928524717591951067502926561197781498421343651554518599123673004623899705328915619337710538548242698801375123645738177492844856119873011225680452802096584455763719321198674660726854725546229503363048423089525871983665079421763471664686081672134865081692026220521011313894283758490675349543677746841523014046451275817257982359829578736171512929890639114104803631410089063217343777176817074885684781346709901902345880471347221260881156652521184798792347032897046256976192825420527391202450463737048626280469881082470342599007661533714027723787809071468944572174688197455263697574478330641418449151246138654778191298642836133642465310055893725024366145007389447626008380385735545255307203130513475906984874923082089976599670393688294566458923011816498228000374354979689289001338887826446508071152550513867507929417193807590228130879796374257360773285902765203071582104617066305352474901595215526247710527244114034423208689898451263101347867278595505060390030123049287618291701535327799285724782608776875556011807292342276529633720172885200975469395908215835585732407052889242358263651442976471751814496518831927889444337777222708674718838466941660529005292506521270225926766837259464671929389529355039786255862418711055531467011588658007475059415245518218011498666960188769293653133902237294529624626804107918710232738162798446569130228266943688112287658115027538831198216880253386217942475975111284475148677958778919034281671700413378224368342639729326785834235558249669005207881433494215028180701603004768097090465266867175462192884030468425148494789978397710525034492404277047734341317888360912275343124559764092153599585617321819630716802951413994308249955354812476850564683654787999649385867364064437860829803779561130751821414117875594478258125720021465343845912624582323328200099065025026802591353832779087042662768681394228848079156423398361724369653725869506896186792879720260997521410632302298775301728504388675260694784385178034523918652606341110024108394549870580166813320746830735640445983334264724887839902458603668328109159741568567181726770828156254856605920001537580159642140177971648006849978458160296026148581212269459114227181159980203810855642696164342776500667616257930985175796250917523736965899991072717955729769712333352216950476635248302338891246938276722055308604103837889054578576640482014025663755213191054021965569391244212660375461427032312192361147143203685973314625484962035673047301702761798027111099389054773649055064676469985234348173716214486151142507473870007686301011411384131377967919740531266938642645998214181897521971154973631160947448378121860156478523012925942471431344279845722314667335356395509110267128125920111015846846975039956038920195735393831481400442648209805567506668841529474983588932534434452408404136840749281043091578829844968625199027668633946022636981952294644160498341996193522617486149244610315109953831294461959255263603667045552310311463611961680164562217664096845560751133034633887107786626693071308625831539478198069616131912348080077703716061952908163329921282629526954142276347406753751597021110668168120554558231638911191958195625316246362671824288412593006852720081935768903487915070349006917986129062901672223204670070954205061914337404386730795405903713107228708417549666059613287534042246936044720972655850667715934069433589060994773299728346225839020045859912499892909525642356782249182928157513706386322126989689299675927165857983633282555119776737042029518240481060114054421854962217587530997602086133702045790963368223293505417500455225663995789095584913542050304491726822888188599472087705214648398135277583636974111992339650095916197857960629186989288334135274594889645406065516500937130619628258264264603103060116209221110284858363276543566009826531141889857031288466471204766725865189226032755613739133821039905718496902979844679417674217151293804070906257276082726460466227812638515792070929340702941331914466517889076740872579463981428915238252021578015566252325822145826706934248881129277302898924177955165134480590313672564590596757735739936794187130219543462285663419320990449255327051858545135650343680506803087395401105363131659652395777317337021856816199714515281538763530888388219312546156091508797813917197643320207259064907139307383030376973128183050773002562801753910512658130132034882510011028685088069846244418489918027533776239393194852390077919479300113585219730062697919275583691778167884288447321460388564345389432674024585925469403292538349833465629437920092662210036396330950418962177802360142988834911900721923686566188162083723032996561619475307823379339800101215439493280785253550132401692581260682965527794543139427629679036023250077007833973363118839241705116175089739626626710846016173733986432807391794990917181578951265453806070741225316203288407759825332266735135524073743024363102204719705515174189173734580088109970747225503673282150273313288447787932855126719458439641966577826576727160799197398240982716646412709767608345079467897029953836061223112460178347039923421669501268955927629011479734354687201965098807068438424139253485450942284904443727019581167205003770951544480228061163864263422902102003108906482582205794194650138414553999702534989371576394219073033747553249043485549195386682747848846575025355139091887929841101974224309551335559852691654968192687568648380473463860113372099387256832803320940651036882282118673758841389111665499321550680145836064745426361254811406395277850861162145398182204763967260650527427734906946259938495343183541395222947676328372472320229440567528680275330754094478083221481152465754628252130038758066137819840019426036806341879422832958932899109514419710372640125206320548053194279085524940292364571186952371248489629324443681980536161939659214054712301342325866983075391622502268337493164965942599564746131670510563062794616859344031456855841798066151157951302684920863874741833621056466612672643798775120867050690983621570260721763139303534625099340772355955763319288064523869992733886963729707733788369436727423291190828579485306492529307278168788666306616007939757971212673893820436346797134135756454159318731829041089573611801225314459645765159197304700608905492031033956879023378562747072456709578845346820264336013375540177675432827460471301572144221914320630588321171514869317973510857290014436898040842185654533607500292416749452246431176404810264075557815907283764088764908593144611709216661901179660172806105303656123408086816526504163905208318190502677609448288600556506808451855310635023059244136227525278214230281690344551588192489818775520254108734184808990665794619945877281903631699665940038911499225163594695339969253922114658581789853754297902961630189188435731118356779908290665971130353831417944177860743896025973891671439375194713364974622082159636224364127634138948213298878885727438401066523137706051080274505753616862618450032258387835977045961125256601125767359806923761996810146751022321412931002096482230109565333080102592023668288723106485248757638862323819793064614641886969641324394320288898512002653389783876376753908573212979919408506225260177177032673758484160954356046205498386340197911031811406124009033873993470930413063965090652866643840620554403314221484874203820155634881851765658923528950974150573541557229055927793046228447256382815281005116016664376868695154853052878387493161988364132314498218923293435613241445530862308896690267928976132931633679941033100879377908733575657676952435883009922992430700867945493323779753535225779856744554467381233560194360035697161934186143930327759278620046030097099680086212131541506379312874507522142006118449137992702498873245119762331483967162447209365851808741555755604166576997932587806024019930457401855181035507214037909678416612563493748600725490524356434632250363411176957446669773958435415389237211480917691487330079793200886056799043999634946303447707603705918775224133431162970970537641704933581188128513690632083254144695802306745931110492533799755464636518311990059325190118247631137732109842721028034049829156104688806114639013969613113956289468786344937740734856447935082641129139689232865317323234059621482954011346381771195888981641753794831040262198870152638696589912865909915335537661367995412558970507262559095028194073313697267412052554450253218624485794070898123048190141706166667361719705969919553804146090556227547007759440340746454630991230445737354340488438344446960696959334351440603806720665290422670169808247455238329230778998608645328002025751815337300868083887696666227083290255003140288259173343251124702888571605003339898234841891350958039967488625702443624843098015213778268564895231110391334565898638696828670080661945274666969594321899704932826887915366997265967527516601782894706954822736898521206148578857406685378395137810731638679467038666976594095151166930393138196575380571403900154647133508044641740974649762230677194774226045642713249432202296554526203493277665484680371466761832293355772264409939717305864975523621610734986810866865017961225942914226661197230202975614483338362424275237612620230036636989277575416616227718093690035245187196433336907733800549939063650416424135544036459036774966085038961520259922543797183244354514366109727215264669641444867892995891808973664968917683546492282547234321991326707119653315616876953827935317807566811309283194707101739195301817473431942168209374927608151411346237940852149862494995198864060188650793324415174264526533244258429840012780401428914353008433192369497136513041056428192263579004909252435760160827809803834183980108240528090917741618700609129395402324179172327406873951164708981465774030387951348391922543911642949153207516065761505698184502467039892534349282518879801403429908606340513250507100241300325815881421377054863133901757055122083299113219003515952600385692315422844870061555040821476113064787955297183115552486377477518933033903152665842125041355066659293513719182478814193963496338401968095127116818582393445696235930817209593266721685053982628253179761312295771812706488250093605377076881517165949742993160093078592978336314275270489788038448820699115432129756564112279501028164343591552306398043279771407387020980241927776368955303350807351674893153173727836037102634718681364748499200976637133874171601101181590839572617372547084901227567020902160105892022658902311026707310015103193236783405257280691300172890145463378319228388079725083215344820157248006284878006892157570707911103022462572124679709822518491139092309025055931087664965600681312224682978593496196286961563626725644234651754069101006008009068657493034198272898035654987988271636229517391846330565535888592929765906281006716167036831428962761031409299821097828971424650542521479855180021212680361237216950124765834245184226014123425994671457691019654538970436256959677437998760367461316625055650484365800100313475218121399713011684107553349051514791850504238743708391603686024393321516765540852701325842361833317882924142783350397350972697863387706271714138528048998654403486348298737567921492150143921570168061159988147917822164713971792009000773701765785468914735328384540689556945465329456369497343395294386620396854398776092441581791641476120673178180096095021047853981857427525391512141396600473928962321208830689030314035317537520627476703360539291269819066101571409117317131064698874796858769387036829192330311665157632036779310775254705071677207575001632128704353693475967244087354991632014258029082164692107541555599116166400058373390837518600145690698158863031818262202489190829509698219168943065873346370390717296427948609056317627682320013848985042576117217437044539905088766951136949018744185257328100463908937470323050019883197079121368517435126090872056098249490297849208164652979509577680227053759783372697927640712159648501127516031300241315116578934156871337069255690161231160030329265539792989778623301391080749517303588551584856155341969767037446664672817698287959925113834773150686128527116995688796248198284968817492802235439088451786888020765962878799531848462649592578129435845515929183273168640579975358430549375242009045052272959409448350728054437602954038636923180085074981055665674864546467124109001996234383603823151373101798396755919578344384410784913937455424230246121009058826613920352822338121312087405964827954478542336913303634272093135627005231453479852796238282018998474356000181631812358961181108255431662072816918662087091115681444496357745338709986720800141184925104052917464586362414785842293970105715542149310523374061077779964989767423130779691069404776486045169236501502293410491967974093796264235852360508508174189499097608182928930990474757615747969995914358500365014846622324040906343591604595525434188791352100485745668956265480998637947221403818070617887503328043992406849371951515946639411032351737838028228146999159251822168853847270348080625722569395699941330606018012013097479032048058722092663171002017661609160302339480450045113405513937753330012296987991646128741197244081402942905694528113583056496000058470063559114314526519242654873227958758172119841532087629562492668372942717770720478200690825068534297142954859569806869146403899636577489342843473185229197942184690320766861549881531794765420810843467887385444016927041685417298354213552926805419499777891922982609838958095419684211787173971058274854444671131460887167732933122642555135280366755229404603036308802853439548048858311035819499422019901948513727477816702817283245218575665901261122057880694999517902983205058969719225715099772693618840133680591047334531876909689820454221082680320019141960344488421348369632647962205026649440891595420598845155828633036086267134544659003662626483352079433544030211855774511097859942369962001138659422279254091720910733597713339182980748624536388403584590450335490939727421744175119862629152189637215178408298047966722760424279041245110974956657126748474505508368320441883185571931295256713930671327450238720046325360160438765677415829899497467621429964153215282976758090651483461739141075923220996538473377902529979906775812387911376171207501849416819447179301015264891326104162315599206195612455140786288608314381605805908485888043070607298400247544421762446232547882597683811456431758552409749248694886823424819686157763443820302240986655478489712692697271734785156411452683037678901406226509494015279766497503166995941031796144732273318784912694895942020741125640499454006409066358091260267967222167379166271700649528136316178236276302111771726954525322388277821144365797512591882887612900049017639842748183359734033134774001736381224037928296885179999048246904759012008526434188491368510269914217811252234766360329194436842345418110621402571355993282294168617947387129805552593139303654655792035138544635263489494821351981383979263399866788225399814616897155388025047748703629310549303077684146759772229450602020176968280555458517232242315517103547223906426884288342260907668167511764224619397965822086211566319860487542948640615754724432089118230997905067994932227214864443282394958596813288788076487970163294457441717192908449923124693243008104124832487652642842246468983195142470899270717661593705640357065338814018156711134174753797063558769444628802001373376202888307995474975894907127078658491505163861917958214098201085454851983110667222841185587401525442314219635760301400784815808247776157651963691328417072920448455079982244686501827547965418437179841918247914242368868760136157016147690344984411384946595363986694704890239920482871149421819376436313682014921704663949854637812667361803366471022777111310151807398938905130179015427863459668981150447104810372927091653431532050655188217558640088567891155021421398190096911385562553931034775711126889508962180231415050894104979310188813703736888206835329566959201351115766401835854773402984256709456757180645529630423706449444102064237338681204550021263756801650384265807959052615789278175253812315778638858894478527108230356240173249600886838984019647458671491466334395219249966250291069587747248815626093653031172718138161645447177131940226342836756920704427655378284003757953896919997627683254327031196238947515065607768060413147120594876012531615504746485183905369327212370843595599438812523161820106917503517323252394393674378802600325533290393909944503412409649691747368442831006762480001532894360717602682800403691035463416204418651858362259889139592652993788948514994452230816916156532983552045527022984949274668982174622651534193748000117202961614342007393521773099299029075881217795224539581668598823129731369470714689125173773297317296893511355444527700156309493275423793161128135163947475316554069619963940347394777772250953282450192519368107470253678266080271544939445000451797466638353619985019814914849786360134003148092658779663586807376600555248947004438425437982929590515944839094418251497526460841026153949064630596593864192049394989516285355947070463175333200951443121925539309516582272470804266180142792373961739498115041330330744281797190667787643799776916571228461840486264470408101517345752062248687028948112927578900503693561597727059312875716832788354175483119056569138537760206446720236791125137802120562937665964876815348838807540612862303270597459507290751320374104884825222628320001744565136004940154222866111749919639409549415377399298128024147277465138452772474138322524765873280509169291336409643389863116272981136028524810824344777480781348828695105467465727426828104628460900214807754426981873282168842507965087723233100046612320734119202234742650258532478836241351903345572401870733467134069559770838398673109040567659742987239056382778298278765030833563197552388363093656846591508207361064473527773203299916205853330833078198373782989089393903883930971373352117900140443744021326247123627712485172627355323863724151980455539911294614433663622326141382830603989110899411204014384705871341615424806241995276492692389638617429138815136943430894657431480419297289057941539170383394922745279278877853637483675121837352037218204260911804043385744825323316399497300848335092455216293371296375261406406864265214906997202486076535460730345671610954736806284953806335086823600103640122041680916982960932012966852549414773859379703414014552123488015292359921451547679990738708449236826127630820840352833062632184487106737164959791768522198867898390022852535781265648915299269526640853235884601673128444615190882904373503191698927637147547462424435392831356141987902669522731588229432364033385007440492662839264622570204593694183704463163786421134095655226336140713906287999922817994402490010495239894711442154697681980105668888821774247339215939537022145098720400833129332945668958240099713465944421231963939598536391467588734462502034085037105107966873467991299700958710970686545704305531933877138364356767964396580209367112934967516571300985551317170589930089865720640720651479619882940321510450725379450996137263375396837220614212123675469727652941602373939763769502580662333125411570243230100535547727979570186738403795238452605468489811437795986830257867417414111084402194250824555096057885727022018869806039643166504058149379710428847522659318404920858570640810356331079893420711891104589607206218029215599502729404053217299461655697028386453820776442614089525100601721093216866501372087858589584584117529228368104458185738052806748740613470698066222511327235010413146431895002806078367715426516293075037480029799684482416769207294577484779258711031252074360208842465290122467441574441821936541446016557263696867941940757143408981141790895919923027341963323518607102378398791318738034531079990809665841219490559458590657972235972880169682631280232886903432670896972437848305473603145628326631277705943204141870578328158923642315043628606667785761637845574793981408663475546881885457700893154000432056535786479283945757155614110087794774727853190060165416647839453110285503066923859079680924652886811655515916154965022929658683108543474581195188195489678592757475886275784724777576475332665328001039763102538669400533732199590462043967055923083573758515940002691784428500603269026075680506006310618833173340774721596785093405788281429789658431425413027086990933007517446456082752705795734306899640785158124410509431761511925666024414880337572863831868982901403784423015516007985975423501487255332468245379181126886150099583712445338259363713176507269489360399454503998816085099399724908123057760290974392577940990275830250749404687621376623978084284054746012442216994834687262288620239692917898283091953285903508452499308999715454776223636992763620450824701631328411637668299621329158735729693894458526205410007473751656965418029196993822197376819518180722434467137801306302614205267266978696366347010923245717542972934101564273371776491233940498386654621055994564900450393801585153463805576185742045020930846402088479709621286825861794243400636922737922968663690336617471825042738164473277774352864596142192301803678803559504795816911414092295219864163533694491069651481977648408263007700456140360762573246125592800913001346564069862786950910424445314561307480415240140979387379961587203989166954149354745588441429969383519699715933806262517087101197789224232777824197556390845485821628219443336330915679171229340364285320205532313400162899207577460945277207405656598513965356678504362845437776497639721054599061764812028489215869084999150360055361543486918285436806687754258037300450671991687630290733952732860582832614487886757983517956338045644837742083056828606714174426244152529595735782013021474769773274305049429663412737494300821223122492231904762981129113478960295898470180268361796148395061768161343672497995169560308487350771272630550292881746221629798300602980062668023336964132491757719660458900403546507555386913633625632531109450406879316596771957016377542414992037634116215523854483040697299435963141678901392155225653607662013174048879936641024344751712625478044729277452031818028037251476322670199064696712753902024890588565407450858373247508587378921875907355458656928469454010341383129876311651520678152644557522918760997708808331745264288109469356729045788516266767748264134701793363915341352878291355024687190840477001484781923176081547752268789778515750593537210756134770019008471333516850527458526772662544400112803720467272551467468478020007257264220466974350975793362552350632711511157526943130557365816998289049954138076243106946443673645866275072204509056762683434548903106417197613193644067445761679771734696170925627587593399879006604616354716397372702779278266820859553593046541275836135414591767353661163780256773506868580944421886649666832163537295515634824984708606797123418331425187397381513265903584669218609111807661656119354757709193705822849184008592325842352514722199057824990723833283399822510992451816778505306431159746329682387209679060573783990722088601859325341624803572935752579176402039564148699182426916370721722030632602361441407656646779381217051580163982462004372870303929176349487707263705996488221453838315349547738027631024211208808807734295988771204001934565029024118506562685265929237642407207367005428038948228656433664845139716503053977917695783834360830364194966027004327859071775260138667076262396227393470650277401540936249408053344578859465280779704709514925448542396618937168005703355616557736712386519131142087000785408873131055599032688223768498418950344114016541325914856420619173374991297193158555272456894412024644145954333727036085232584843200412371783794384496945832256721504041702914011319963626074672395898164659119322937761401643353436638796224766535981515080863236864347152587350900567254754986218034566475564149283000345999206119885243970739231636609467724972010505355890031267307101431132919965657198693802587335237323042898643132691628824853989169359394260668449961187373790087062060549055515173974619636233719801440819609241049535575569497079792460758562522013588295638885666650597164655309062798578021112157876154466146715157128498851476293066754586301134671522831864106119325426374668604930209828569638483805540783295607051682039513751118126442015417821741197076568582304959756593322816126185980404502372526660109740922531744954397112562704366174422435414692292528672763996903362216883553982522309129322467293349587150394974140930001687024101309830662328814351636368296844586170037957758185579871966885608065073617929259746326676069655780556850810190030082646681708025643724688143130500125976933372472898082606932221785127532017178361669628058704886312699973310860386183670310135670319283034027471279953755689463028106928903644379062878684339950267028461016954409186213322399302508583000619866789097474294758400523839001508148869751098278267614066442335778723319384048081087092263066078618031152667264305014617521174539839605994201934583067828073447619233947358983955796529696681109601000596606194211716546349301966686640787386582520173038842033587308888710205598744350906431785704746138573705976061239132778868494490398175528694498241652110906283868856251856676459959177439033587906151612023822292514422887049114177978614397905839254879812931255281452234424210644733973722400945841023509760769205725862575819863741670750225259155051203389235337926077998407858836542775576034028028569484148739430933029055449597883895042481658434488779495812128147237319745506577105785657939823870194517462159912825147846946370233031879467725783275634162288457629001403535664686859056323919985211619895958035233964348179753737564365746812818500682448013779675089821220518600313777131099373950296527620734260564392408255368758144669044159397140345256597821662347391426271526360872605227822355907535279322432103053945574646764508604710449321524111223467151377382989021096842078916925960286004037526812825616609532052084076561552254960369067731055864613323106139589495252747008789484959222245413633851712698622174711536670502243531638121810609540099371593432650482482835544946272752554065940756285403759769420078200056004055892428445703184758992057568585192835855124093294460439011050835478627300367132502745493431242375070503766849714517798270478249763339689967800913426291085984070988186243423045762607678202850498016643846592594326444692747871307099293874462952979228122019354340092417509979063615441786645716103979424079886024446377853010310588504550335885670203145906694985478028414400692332367368831990386919055806709970753031061030612158696402068320059040707488292347233653167455376095332196099292571197818105657040583844525665792121974158926616426837828870974913653761355575033313909345857561692074419426495758313318763020786667647283114285220673058180382021699146748607283402376067257744761856151298741410480157632306683022644581944704501320841083824624170349855065266815641498482315632838532567389906479061364337425858500815893406910998322056597825799824892207645004540110556414167163179821447990352424816150909797220471346767348027677062844649221576123430077244585460079429226747021217914581239124070019966100025134981648041679734797989699274231308174967487465957026356074957528368040185932734322201560493977678403696694165819427596460797947231719155861626799200925551638492575524899716849829807028401183822802235912606955031960689534124081386872274077937915077020288852098796380068396484850659161290148195092704803819999930873362730693547718125025251502205020479007920018141365187218939893830140473693872185249574286179245271879614783739769007208163839255861009700262904980727365620436035191428919263442489378637567465975765153716379076780546891976722406347595475680272411255862359946520600046782635837120302970890910627865230512115163658260403271565850170839101601513122772292658570454254302019777714743477593248268983887298256521612901832871086685621959295943860667344298160569253785027460101476730690801419678152442508952240827358812405284636766651396382783912085712571964192655462031564402888685287834109534883821036090189482429966577852651397460114026173476074791134186438000042872335095876433584763374785306146992430997391053520665998132743783009778031424379448508429322251811698600460126953892033168320127819207540151173203101305868788804155685710002901699343238749935572135990015545044157708809406412077413374475619258234524733115064294852562471489368754266217271339290650572829764748435175670250884053024780524588158849883541055868430153901122726527400293403015838190457811945122355122269498000444125021982151027044795441010054014949486830975810014655662627964269418179548722075945002169071259938385601796078641321350964877816817556902146972212466066491690538634994183624297794243290859134892988167225543353925989192314021720911858887604864545134461364400648004709622631353395814034634245030523841215181721605123588713145479887499140393914494135842433300513122154703489631886036847037113636534806549481190174900869282667414894202251010375969963893987000253688139936713095848083975004348225982694966032095143795000566749525822223457061855939210962414490553687750049866325036962016221013648688766819429046272587883096769226934500276627624778596449294308226167858794112607476471767185815285455724424326224062752427762290381864497941669348589697020224469782516906076293479700333891410912707690679933322738117317430654644573831128568090421495851719307203840862060885151138550396676188402702613608457566251735099548591554634500641666241664598296000941951315947434628292981059173615543618451477595091782914492708743363502236063346420149764142903553441244125121278639071041654106173140014736336547700992579250450917195397823158046979073169684247833304182383680453362501917389205256662009606345193198309826070819486926551790806721103391477754301104391207798205586272795885580958433666772325650343099916303246646033320835800420680897024094703829387700881176663040664517755612511282745268038537295663373425720648875555394766172319358178884163580370906319081123156089129711208580397806351467707434216101749306029943677891198244073005224979747159074589017289855882245831055702901117472262279975545943486849838240237784126625797492928618982731970865012414373035250490396544574727001483499123455557158238885274617420331324174323506026731567365062604599097179209038059201761995630826024846076428189080686315716050288362120259529163291472271959879144863479166209481348916805833791677723014546537071403310802072467566699321516801788126831479535073750795439716030282214761199995352305867662806047026274347618588120994077556806283021349979404935597980716124713194920962378301310187671711516526511445826301639503110014023729782097177201851265656088442133700837963700884161218470611770508269696219530578508403657441366338934128347437005852559422853975497600963683924957102656917714205716874876617434199999804032370748468483566574546156648331887654499361697053025191121553299515744533558350430869830959492626275956593613422063467766813918117614238677173822588247490645025728916826040438431175561479205533578641737387151245128221833357676191015266594580944418636062959290560091479607279548044268397008397308143166120873268222872286995705532063397626726200131460193304146116145348503035202275051172406186075437834610251203757254382332027844818261641349862397889273823560726148538451795796229759382552614102968230004133260807598971137302902629280614559711506607194092577681370280843144386340159255416891658270081062818950271950411248630290709698878073725885528437081911041649888127311966730100048183690291589939579706520070128275300051486435083614345217837378503242605521990999223209259108260610626409189214441904792344575510971084750390766377875414791711526025921227296317243136644039879004716908007231892020447358319816445500414248907594854138082266307432162150341050053806807213306545225987696739436633965181711674473507399706232187815860904888977350484976530765551375091170271678772344411414735324751865883725251125951641263409049072425582987133970334263951551923191248354275799330353448533727931403872305393780285031576457376033779269370925787918651689268102720448830274949868265705940719837814344335716899681148308873081626648476901942537703354420946624097713992392818591368579759497042732716270566841617019182924771083630106532023472781073157538280643330094867805652171746756188076489045285530758925312607229278674745569928750151473619962905848851596227064883078527485502242926258431508557863913979287175627303296711722984844048838686135176059902377526515289043059448319673276427661815301438332331444190645725729083868880518986943076712134635720487236475256304952257740574090446590768684971460908507771496447801540401834719977897208837444996084549793172451678602711585415819903130142017960077457161138633256350225654128234841763857640091280393131293527848628350727978986885201905662845446578038348647410844503101960700981572652132615773209149327042104927715310620392028582361717701832416636085251907501394517397058293307955399985919964000519940923721436266316551540897617797881359240879618252900480687848418725084782166061862652365371269873279246774109528748916478478528189046153008958590171086658967607811923797056566580999801177506799635416933128867948188256861850119564907270796181570604374161930855139970240037045252645635781266742910837221994348596365808866780048863338551547220635053112909926513663925559739999431555540910962986308739385550877759734385367553274709381902493444555262389673822957305705634802030023171422086230717924891777723047667798587250313207094907543981892222742015074437469307160525671322133250867256115148974269538455519323274707212573712727083242209181000985979868366554809197196750402632979617673840385522690074824859512829056754528918355066016057067375191191125961479482099102288477144211376088703664555791392235159643959754556313198089492726476778937543503562252220425259695054020202362550800434846491809641083432119466605493124086407957589753169836594384203745761015895189536135150341244018586070365908470434730349212759703032613350492909335482132119961734195269956633724524869859222098111014945572490249017811265424249451403978363919194113466477742149526610306370561460306858212030699148618303200506535321635433008705782551121856198354015940045644109217093478309390784210121222699863469619340305223545248027807663869320592840424790036641654665621183474555454705602782941653762648161639936893484280780023983383561230517062225282680347499015836988725437316716604037710385738568386690194128675995835447745405071977407608475056296174706593880753785288574811009016145949706173885474117180736760427253896174555347094160135654365862815011661299588214185618259287020807980630787975853761520306876497150800716344552877621654523876664754548971617500510051911760778685629062821498785086765985387268160557811550275486259255766686461028470758514299503035518394842472068055361234626330618069119402887890814153538386559083155538602207075368554735081476212054883242795915773480378865499218100696871419519000170303207094069160516082951748605821887422644783611873592056028678225077134339169272417071039584683419135532601532217547085274579815003781639779813688316107370970765037399315535811566946673212431241822512268633860013308602794067516897351102438440876854392193055227274293013800887531433438471239076502507704352653108118422235435999566682150964653023869073136721512099878224721198278472643043094215807618997189056544873349441200582807153885916309568705337400505586342960593340536819893721351700053812400988072680323860530185014243009462613625087325754966389207929023649396413149634994923212823594891285908491287760371400546869480977381819375043547249606803777951956466020287646540195866919570003433523249819719891192462998366196025134650512202950916819283191217767453420730609198092645133581201162433317172610886731085509856086269816737679764367211270604976577648692089602702177975995447431687075396938675398643793631651733523171927128056354088275658176278850717624604370131354009114125839902182939127851623142533684610183615731664585577547076137134890059289005091962228424463085676541823448918682330984642448162809794496670912159712942561513799241837886184251049280162417698530969185220136076649253905583630487841393391336435795431157916866529883280511980763362157773294890406768081995615936515957530588230795115103084612213320607538425385483459380554731205767482097897949744157103284142618232266037431702417691286341229023176467665195404064657415073214226934737569078876872261344680625394258183869095388283135840486966568656700224873080344764706609047969354024774564910455941248395502931805931172996107655089246259483356264954960282708190459473255530266344606369949619468422052964946322288772642746987620124711339489736576962214114065251213871780539927496030495782135512581101191505179738656394670093054959874798474524235081448860802962577513518731421441728290371836974988249960853758722870332162158733428143921779059419922590912006962101743572689486435761381596482184309844938261708683322365714987604517667980783492637502801233430891806460755587540796523071928252733737371392145875041047303752769692969036981079468376087234932215932892200607116265843152108859651126518393331978349378320639393856263608663558232313544645656742119103881728490007461837270329426797567794470050754421056851245817088616905292156245001403693878573169149330821951935116020384511583607222146662354133364278795994435155189940754685814553361317950729626886760646896356323526482703207369588282798482545304704407526000139559037480861663310034723943606069999523388063907205226376869595164372720884357773387939482461370063033704683045671686749954814802172824716339311319322568652811668497835444972784930709350379579482717204213718854126794481789225425220277908959941942028152817493739483330953235581262305422157785488221660299163188025723173292363104709284807090253583229367775281538548603044963588679115908619960711568255287410279734947404482628965606253934141096889011699890408329261254678688831828268464346891285435977625469638991834141801244667666496890050367513369485113722351986513755911899483835684224398992825675640185207618047278462777072816530816031154625851119817940314375550706796663191540533802844430426866545244819303905543607080608709002178027799107479873300333842446182911850369121304211089508817171101210935714694861258274448843516146593068600719169909767371743737449267610162914858532999702753980228191367355930597958289511879203471172480797837153024841803901536856135420276926850532673391737096873848440470880862818643162715721212090232846865133035336391697491449311559119131912325359493940736509997281431637430257062773462869995456138471505865386275329321688224645386391195542114162819520080621645465137429830048101059383075520320602086467972237297113232589325929612966828554927007382115987948467745317888548535080544490418161694274888924145515782641683950948173369393231382605543484455954496777359658013445437922203270275591179647649784793388808627154623555019671271530812046505354017983275179356829356159524731969353075277055345537173939388151760026871396690433221615059982642596122821616344925106489434499938352103544176763842777675014454459957876364553403824581621377315418304689138975397800167188536834922475639488471863865503241665984692969393875748749310321052656372490816894273102687493979520096003876807658536751461731813251356181689914171121521679628409855444751529614102193567243630415842367316583421320983533028865011070312771286841702528149311734262673070848504991721861981150514436617455991418282557876813816083756905682969940670819952692212353514075302771203346541293245576714776484138527437062016309099965978933343655424328925127909832856619549401834752185645947932890786528233172524614957842362378267815033665278589029173616793816547704659445521444880151053307467079973312054010972557844741691403858753691235463568109696966251010018186541758730576876970178155045855149176168959222322364585438397363520066867108811490782538891118524868205010822220311856055754142490466275370065301838689489984074439036513609447981280445840919324155130206085573140567552936070497368593648447370344874914363303198250654074769826624620652892157645816547545550160987650892703468083053445626962741882068944720201902908855214351188284935058787138833148164183037558656670194047630467407292787772422505952379578760040099919359473132086843558086775332753557398109501466794568216439248697483082774030852453039082308831287773400151704264266821285902100599392652480315300650103259367429237899209171280658921215429436752322373923547558727629500918881289889754296559027095765093177239114377755975867354832363519846650965505642776317791546050917889137850234951754574896507823974259926361962106067050150916285645092914383721476572640994837485398107918148419489903573048525876007123964247237265206172131525619472872168610823089762347331624732510635993558352138515088262783499164767088098501615464058888404822573304804517103816060189418267478103868570531386980741270897075495655901883603679098222750181775617303522660415660342038389990608994417880071542486242173563577870324432957367433684741921959115947595018836702711215288610510778133229687541117707668195391479230778534514714796591544004956925422489590273062458169338158229912545172550294312205245764322771920295103370050957500163879678814851541090246564320159412499438518055294903692647352754537289148054911157250606223490009659020041986337750413755409094154378837939189966065335706331492820838533297106946805106691931534040555311548821978611056913305879931516122551394945188340374740957449355720807439088436351239736286131224361646649423519955839092405614548370680413735205004322008460689448536520002085256857654883207845245034648022493402730164107555395647629396670814875457492272657465183428055985102398858516691715829067573941030647869149980335619906425622967761076212620443191380857336835918419008418335600190172845819365030008246010367852468360429747111517195200605700122386178036014301273691476808621269155130300118887805626870870830544496066583505552007966266719737112694696516812648499960291645733612185877575361240500938732314130213820450321744577965527066666438227284091582785917706426781730066647038465713260162631523829566763905712516042532545866383420368216094329106230471353826550545827873514838342301518197999295904344877788995754919581728240504068168376826527529530953092763820256723401689479684272806994097140465663338957308485681301605369634070172302129151585628738064538056777952972113116715409611991080039031832783882193002598589310027849348024917614935870782262777978664762102680471906292547448157976913644359178868190883704855940988432928242048088968058100052088457391641022409880310988273856870174563553129377278660278380991704312612612881212491091276776936544653646191501981951979121788143640937515002150649836000850030391509614475981046983965562980001795004182369502560602919103324567803262017626958818122192700325856377111468936812175711653505537182544555683504462221421744782224271869577969650026095213067346092975799181379622515500987951106248845879356803502181133125222434482123942330495722920788877797234051905501573674126311700201894086476740177114020797350862424147260141778122896020096278825494529649673282313314190151039922804436722647094226356672954449954577706383502116437949432169301246117253611099512147547195351914764191306537548382584501779319682269870892533139529020404428932409666995185758110228327054934567246672909794675239092588594953850238897749115174119981132266939758776082781330572320474729454245666454496502579330334913069433367306023282808039969638603701556882286749636283046995322840217200028392812932532620046009294126886259340589742891837020488671264197810541096800887815966438898896097100633130164791518171601963713391472950051323209591208901890247495202687330044974596973915108879041819549230785971446293601833271010229857007948658621802054873247184331349367473715089010135179161882517989679244118947324551954592858073876487048447918267277762841431177263879672162258194689039077064759021457855009655957790594170932128263121820264953242883206388567168198724787865532045058094174564727367740476101395610136514501127563295192486580155526243663062024692872958311336095374058449721017756562073782063666017869253125234651428651504186887631855062926612119683128215554184557088096260316245060709651721644213430607358520302960109852231972343213204383177628336986367590453190218728147742302976883259138607050926772420676136358562395029841836795726756035350502999367731695568334821246537446502188810872004253537062840435943498183485153564130590954585070591074841439099357708154754226821521967090796503806398836572662029831660923148928280257319693388538155414709661073702491168605510316118606533260906636490652840883150350058936276490751524489855773941194364343908944825867941243038909231781694933342752374004446936314349673925731328152117529313773311486934512138877511399038161137229414324987411392042348809606006254310666461544571391784426795237897135530584804034026600870779660496569243489564628942790270268296289515766745166903701799404337687158935868748745580292357914242536832084781414550481300800889202759259292827975780932968164239786299225152692057605468556460509624401288821170646591543503871253487618085917582062277474636860035372509343280935797195397694775671649919180934406267295752969438987872336933564400512540536290452249778389867301632597340614117844160936182167949690948932772115542427001204228723471644416839125744020856835177141102661737748774534511735921245357302839021562726822924804836183054437312095475600311241934822762310815860475693872444082164203070984163134523688769590888752410338310114371376673878199266417083449217763374208051563077410788882641157511878035015067828609510508095620864217249667032834742628667958562345972202607287637698485769033560361095052646936914167357291475343880741779684955301999899142618129894445561324708495249791410715269020714861162482081638737859584658971402048578688108935173283816658474039702471834731542678673598464185039568850193279951177799393348985548064947656318441864413027816376269638317047726225718539241007779089655040298928530692986271872723472573479786801155704319625023125552737505192443442261775210186331729106704439863640739539900877544900909003522402455374482631640779561800754091241897502799351345068630432171747112271935593943833944893494549727956523515069658337559950309538928318193332417405322318025629793257282427201753365341443348703888608669872954991097594357340740058381905692246653006469042769103605375200031115533625596639702673140575355122973378632424833262599960771168941322442279121794957995112746094535429974038903247872410434563820678036410544599015401354464124573835950028703039362923296983355022787904882088618396475059653512054942845500450765937199692333397533909303821465187942913255486530498638458794982916101192374838110003433271444514550081981270558695631272163218198118262601104048674122993987825019375325084807131691308596189427132619676207222962096217628310202670276176533802149654361376144066837788718370434798070931628787698153381076208847642807478867197143535486995297188458552133997348862334051138379416818032988018082249263957809884807459407547106844081270194441427630854281307246598555191007355557476352172229360769655764966438397165038635100177481435699841250987314738314775708357793771122919294946608263466501983907837051561879909622505847157457304466795198423298877562206419018787518541376803711071395103965884136002065582765676169646545995795376735435851506444331512600951296027417426947882677527508412851209450507668984973051320124129688037821886968111241255603158902328341347216939476190125218256945658437953232182915038421543037582853726830281088511034412358805455170391506643288533236465669786679110016212588434402400823578475056863642768658556244858830597285284985344819703410135909965369996933865472107279278349893099919831034748065073006084389131157414837975050493929649721536954418747466242409337702246252759714105103451112674120232471077657824259013858511426924315250600775837268489010514485217444287414329703488242040624206123797204177222296899554379339301911560483473700343369890526621554769036856572141326269815348616169271861687126447030011930898621300974845133113020561111002709729057504102925908302344608732958005059152686579532160326200416828784318048038743575100597414593256999334708532878761877527968217969372279279807854528329655654206685187925233817164782709312480845484814564298244351889748278764019705986153470076357506481652021016915215611452232716978790748385706655293125390976652046365753471239688791038554905715830170904380813946861665735969190767916359689801457352683976031576540659781607530930899035549069956729805391991709543185074051043103029796985995896276442515155076648592467476597443398977683048447109443217840514266861706327147282910395585650950012928131910173715073502645689331011329201292802775250076556288688933079040788556484397086162423309103590805855876886669448528643931417980126983936603869256628516396644354280177128823057938356306913084017156796658006479563830490616256263106041386187701424569408971143459372582647901509878465313601944783031486081562967358721790703092751599276219368386638261078301835367450117180570919147995762189249109930468581602170502572929325042456884489907517460044802617351579223859353015942130434535634848920983266760698937713637235826116599199480367183109462377302389522330260562397752152489732389696088204022460370757280109158271007514374335310167546109117722323766753424339871602450154084338816420065054475774032100515118679237086626875821592817795532231886220434563349423910397694718495467640666174218242745204377773860766825573983332304362374817008750509955906858312289128586096754009741199599047374542769108110533239902669815358137292701770420725537049137103862130457012085398494450669563685251490008049329085505634842001594274345129802484560447835955523571146277822416082633421225209599814082475718204800176300616379756772366122855011589175047073119363771920088487139290080298365202383713502233280123963564837861345724527185045431027248992173819913054765408809857135429257227433608339193368711047168128198246123290699302484456316357163219196776702874036333531075850376837618435716979382160999154296875846943838088593106867442348806867606614028023039182494344937672239941173547288596572350028969388992397021446364475628152885153485800286556561138011311655847999670881074134368543830089392589451570589114109308842876380889157364782611643555156963531755255543047345767912966054457180906532232801281822709569012465736572192498783419114489120442441335807980707435550012261409639491787103594752966401025902838651165172453332796014685795221269900140793722079156752849751203772786714426854081063867923710576213113026304411932204411072137244917151895007042474702230885827421370284024535269914129442763351721904759920758275756553986629848266614585829212870130438213423523059851574285481563812037000859982599235799037652642239771511512483056304530125673204575396458815631585254904810749892477269805804696571045700159569230573406077723257750821002371033492387043216492549496306517560899534698106752498811368698038751085050407570774118009102459983355992593865662867866128823580062302203836513066573334061470996274848125087433010120791148687738346664069298935564960040699584549606573102189628600620672092321438528859190714737352702453715802268402331222930424026481499081562348933256000515181038443657717802722309406647430263126480444266127042608760549781660443223353901836849836863093056446452422072981293489602885437626375299462268746894116515825761378917270944091161040262864790099406827664610655222401178517518136444830877412042375430557714644168915738531945872567294612351139681313136181300191061185235430767482882933769207619438628491647468054063226826113247339331389768271002239677700336689111848457869622385641506947176599475753672313808045504555146283199064050086028211085430037162594500586536872743641164695244891597234368356049113214261597437794258215723714881706162515818771877999569966948086807059792731603547905184525814279398578123959014261848962628092177354307393305365398494417586080927129553431251909978058811006802824492680531966364555205183772600465048398490264906143000910386904720346603266996003140918633410880703463589746394901299681519315588422362200263408973566652654676714824159752248834452353787797423242763301940120346452327140851208101307673017086964093612565429088756760018256870720411395553768824411638824602121408234242344373948687834842636724790485885149860184315481511209355812609619088784434284177934961824139538647523048172720822122434747251968390396139612133745337592747185573077416059738601126691881648953663694364539951406207953267009075269679912308263138725472512207394606609922559661844307407009410793001020618352431587797516958921427166707966675308226622895012096438019487544238256295609193270135944936503406485300784810332336842174804841357120722049138825201352325026193547714923269970523265979511568947600020279683276206370034195940256472939802030053947332856401266889260395388169871555018350567954210382229769162067968665270325217178682170854038794109894523126521001306636755023427583999091160107825589231965816455767662209559931763194698849769148618377458359160615073889435285659514512775932738969684397433668362314653800734569318267566423376406545249447307134550789032201924697521323060132699216692210851176119427348556913649228833294681712803792234914634966758345630585413446375492567691725859161284833225581598527387929224650444179381450196634988103644353724859879371617237541238079784903614532823797392890430356766258991389107826930867171013322063488205378406520979622963620095855310161468035906873914967425312582847118918858407966365064837176734752370418115607624228140939489465497980200652371356748105227412723058150614250210821067268458405641039490551604031841849145549830962057799498787716771652921254778744181406839316524303474123960938045596959596081167327363529299690017411008691339480049033386276683843495059697617580691981475479248947504222062280373966156207969567176581483875957853718237898018655439041486579091864693284545659815265375909648424352051647160669312378047689700275949262769556087825294946800328443463589948404610752657490561713009058255141354377684034868267032192843846987423244795798410334570665834086417373786750471854289413593223560221388925790619622960320619276919870788643767324433190785534060372948629290544021385893323133111603099992440371198551848812474010691655543744099506300165195260211229459684182670925994775530685480428136913531100712259394634375102008731519881902717025848209492248648170838056949994150205169830652610342559452935564953977225634154331740353274937760944593647757809960397781786962869273678191979560297286868040574073538295369971616598921561477507252626342502557520644288702512531423525322949382316716687318168581419203773401514212447603035216150700357274695041493079730702713350080860324498148800330434042145400665655191065237281505461614914195992672750895526053527843535951126951889259175825684745514699339392741457873767883597842808944707396425743306826191604115773096365005245677931279902480652766308566060204430243441730786340382431969368885699274517870724124868245188094123926130184886849092515660126174047415697732191547748742355214420084099959348474671496832762493669438977850259395798095752181695261436732544378604812526788565956878660417339851783376683321744249786221279559687035108702839711311694933549105448749205901665963071904922689679493551953832381204837223623245165678910059756837569998457820397397287594261944356261455372561645116994890066296614643007520862631370138454559034520040939133629007676209966605732957226985015011643503824114934420769474596066131866598063792339428969421756456625033043718318204243698630354595421014389407010775620723206985507875398731720523810927493987880964954981095452401337465167357380854030126208785439239463948725489007977900600180010452888258091981836917988940137338873651919928150286597359040362242919803409345627627931647793136895691496521938048916218200650311660450486398051390012638765564473532363774789998124076303631562062259086980432690709473283017284274396221795651319442277871279826374785653650677830961310006112580179093279766084010240185774575562467799836049485411945935924192475973911844573231598256167605931233649936066532638278757861293135492846116407690808984930846273452920676837173586762876826912658693398160741699690775852920159755267266357254848629980546979881341604081267313009356371832227221624833563887125916049013836508742195487949508424248164943233677454707915670366276065532684386937923174115059694468480156051463415240952133252408060019540854057834714172287141797145548666292731835120107386871000557565039203234948559874573799619027147292586924040377893169236155289111465185268276952960142980018675333950315873363929188653235311883458915870925582715110919551168351917870560899023454090699117398996926492649361017982562269315485830897099553185441678230041387172801310249901158328543674378348589212404221393141647051363075688658234779840773577781944314382921251994935742975688160344418917995903538738228926654572856866690194471229723416726111627251835720099363228377024827150811615204690706573627400842049859361766048762197371894963371033440473477931371982206213764347571455479118050001132865987400350916208285719023658530954141563345992884295026208312668231373079700738450976715006422097158105136640539703292026920733383973913603625648702240834368863137320927664011621223571885084425100463351598549655623881418474387386366927068875367997804468404815938628836932956434057969905336985969835382483675745293443907605470857839255661647130624814190578826693699902992047838424687229551824436506503070321918197647413442857301352457031666169247244824948173646818538368919955680592593043204454226876264233844623874427652632698724225778780539299597624534718519055386686270330289265146540676804147243209110792878859017985191817798070368210107610296727018011935483125098359913444981263575913684475715642108716426770256299841214487864212765146277789080942113527959516366163703061820471545241682254347720935307368024108561359242740934071686355690143646627431289931462223534992097244897291550499824880385345305263203389013418671477921387888212096826449065425039840187665548060871773060206769359528258307816243728903607808840503666537168048261769699772596419118702683634739340723465002431389643232569825689114620415112844436107050480975547034409047415347633337082728928573295810511428136741137689334570119892557451044448564846104372783427870773656569606383533895913773580696582669555875666012822598401260005392127898886305350586972619142953763127579298338653435564188862768807281398580976886594874269862885909729615034496265481872482727701986008834953151494506426278072639918526816552452064858867477242218840639233967127701391505048732594343434793320937816583853465158351136000397426164139856323130906293342644491807028567870322044177858668031405288551101275993436385702683767119639930679916536641976859669552719713130874220883540660386163898488895181128788856264328289066944778013085107240546064639097842783386555738889959387234510476310001583612318472620497375956751062383144687141282074538547519361205528295480286168287575738448819891410957281617216509694403644030024795969932099487547861993644926691307224164564071115150934461546971823026451942795445044183513272922518904179447261533297721967001070779721438050036280103880924609945663373638747100760069530627793989665574478218807068882597745178252103509913526285069116796093975711228895875555300553049254319698935072064241685435698600673103407754976663418789611895093130916796990167560259707112827965965566508760743129694409247175141421659645818866721377169536940559092808637456999435846403746867433391433032443585540746559309673614797048586201493633105491372412467210376028364750218566186430688297752739476360906294925202417863007025273268665349006829473725940835434564508134542008478399643024963170402220681735335112898781950180997622516720338268524857874207950253776921141509967106646745618011310881872777471369693710264700353419072422736495370911949029093497041828807489327917020056911112617494943703518253033727467968672076304255704449121948926124031979310663168120131009853977453528420510404514280636036789116988460609634702769225422834328820956614629073672916483884499829064762329132652315398503984593625066776392240462684464401596034742093316813257609460426867097013929943053213648964966987503379549748183460444266091231757572680778837531653973301494743237978392365830463427379824240033601988566168905962560490105563617990525661040151894841834034155391881432927513949464692894839009865860057246108985832786468491306589111923829111280983994103344288093244724535891801328689563812890230446419146031831990795360390857240148005664026799066099334624814358241280970972568020607227740090885546847384621705843871226591371163113465961632751972062938145073371172687604026334931273350796826867445917839382788110851325364474249451823060220767467188658049639763437796294572393796927630904433907428044681415914200662515044400564396664554644610094022515425489652549037825776052003314623395336130270392403598244377598194128567758762756923110467126584633954746671896261669077250423779333354901399987606324829946858041893028892545622253622686476425593870355098304322010231824590518379776884113363788617090485133894701192043485359413220954337025135545791840735058449206670005206245282306015994080545938971385999423410733891457578052237781519352487024620058954809593547282437358492803502342512148419881666503424162513928157762281733758580238426712392682918006451632063937179659825393805834558038949453970622064730832278596538830559386336704921305418007558519047060351890771035670033356354929653391792333523235618854715472282745124286561059569273831840659043500853594931503758312176574022100674788100154994580725322809613899207182702960308553801740342046785897427400281397449295683070913982117360203338704977231114590579734812798053868189565484542950772503081270963703547499432432125889350585152902153180821968105369571022758328788470273463158931934909080256257072658647602765187338662497513099796263604433897762021010276986110466370095247034696549643522646247848009288798231571577952164560934673515411567828238041363006811292719481803772074227063485320474713175705631612853303705491638300660321112281209229741965061696455619807373694336039491640122508806573764274833855819323915618545422002767334923196520564111379572346406204533157880783282016255217336002481171860870515732128414640979798892644200738993118943273784176678636857101961901394060299755214603500659750813253029209856478537557597865495635261319418719892249747386035698749476389103798201522778444159706087293827637632534803643769869951089728713501292182775699581925539978417455241784484785741837042279046728091711722301769290598613817003820169938367996619014196971850423327269154011067313500137866283968295508061314206914025567349554912879631022852505138755102763349518270058713121517652064112849349400857669531537765763161888240351549600484869292245575046548862102595373716308052955282013381187800525346177104014888418606299748824454668855458475147954517161891097281237572432192072769699971185976643192651598747662785989672657459765156260413642581218445631411926643535602322486231056564769188736563253335255344311112144944169378853600627766522565437516274670752462659528518371072812919120718484259766257482664665967728445694975809564339560337095040325097998970424406782213300362568050549964821375139143396525265260732067115764376741091969088936274683961741229430075895009466897631533909943565923997884599004638758550444299267770044852651105192324280526835335164073339083213890870943469689416528514725955575371251615187125310656300633345738940759672775949170339445916208299167109377062304207203099348943076841696454048578178413988123167008824455602344800362136315190844772143144605271267718238408085649515379897376753564201116125466167686846006714121599962469820428153283138831801440797443007027922339519236156379612730173572358718981883266148580207817891745053513539639016834224196190059787015010949842071015544697812727806605428370164045585877464617432351245017116942004421240595564032838128173642259467881698501191390124240321977936293633518484201920832585112017578062682938236972686121027426619395105483307313273946045225489796904885881566666203861792279443976882090362124966261663167895501388057787873199461410827203859241730949444917733896399826822387222325643323992670391077113745481060811041834081480570770542870695967724047203619998383752540574042736813347682895355241009417499816749448153630160803634917780494911631262381049249862865441925624764220570786598117023905033764568761106863267450287609656602219736683380197935400147977070513065060725540824030151873429052521158915584477815392275554340011807128204700406566027427406886184203466140397930387279709082823080000420462614765682141131273001208007857887271884348123014806610647105324961000715019402664647682000206510815733394019860083684382565839616810507982280891600920414157040164444160649032014538917100088482772110363564505918539657943915734700263411062369392544951849024954119619925828910503447191304909466692257764423399344574971300884030949248701910424428093619723606346156120250989440974514999762547531098113413548063172694641111074630932826269210734457194552231974743256411050413464423374156004686621414476074929090329555269256359171759518463518785120788047869020962626591928757245223582634451573240825145644333334236719917248422529095689428287050938933045900138763133575239833344442227222919022947018261256856498026698049531833820425232009261805308647095963821239647021601344472800307065987737594418836539789620250800797923088901483781604610964582488140961035860704226429497886434834125012163851652457117203395978404730888962145432883679545514806142408491841075486795725864715074266770095905063951163500854124488876530973221749755428065983429315111386297809977293090429515046730143844600879234049929673349532214893172570749261086702294248980995094593984810290050621550408773478008843128309124333798052492123889331768955040291092066420402880522209987008322566109278785587766390637064502192630050028237521262428159698912683369022431051464342867817822163476106578172276880113623135688456751977921776756030673296053622839421184433994367747834097126730635172810930423683174675733873692325398087619770959956020678903759993413626030196990668881726566032710638183457247711217042008778535534871350596022576841949109813851926447929980983344867561329510739459740232816771143555760764378785698382261493396110784086525659198981578579402779748909535817039569300182544612690175763722898571305109043880798902240220374713309324849085290091013160061773976565496581519538470702417254133719826224768608492424704826924371720616570876282670030763325018259487713418376128903422812271864339831317876326458563093685112851060252867808114189816545134348987698758523541655421221162376405088736312029840100265917520323188639929034554080000070388060001266147687701617342253500361362521516197446814313577484104882663136584888541334202784585292885444841145761042265170766980592504729978735141094564123026943744354797932030642994584307095527417100967734914989525572511043957157870110738296563605925856803654050694026621553020650888565407033974789475602754377198141064673341072591375719632373559060700843769372216498629153269894299418498165196513011020926564902415434280518640704122051149041482208272521282794738164514278002792926351645697300063455289770630910371715259180881122967564103619787706791327619875450950283664414801310764140589056787090989020067228248274265176325657728688908090462790017576225565185793943202230381993949744345213783751851476059814695404398858482725328138319761974140766381597584935242236481313683482094961529449524599910229406890199547101455595181998386312820853765994377774653224148233957347754058347315313129337110700487900548863018796105972273198118072073101848951488440754397812970543882973107632824809526588025306464823262919368643548115915330196473179983204586094321375824946857787694741960392484194593036247483270405915531908493711928705487073509442583696881682090400644801017412414102912698750244544248801026756783485390673825105219022962495737987804108488935575889187461865414145334579230101972305898456686608995203363182904360420129332899634257017093143075162074818395214970486099301594830526244313227961295851789947010010066574326018093613381657613519010056468764382547052956932171613151775233809624203359029911801224080109059908240570594103426348235285891319392504573904817259494006833401370529203791654102964113327559506557673391864614866770653189526557871044814802589237803979981522468656941600395506494191538310853820818575292276576556954047571926613034967540520018265491816560901991945474419555554107830244606127830374436929029629644415226216770312636830167166345450582153799324427442912621345810237095822575677774886005906602970738623825311263910482545093591582616961038541593906250030615970177734175147621091410765084085414810918380171944194954599755988473785245527948337149543114106692220872853767652168379759010843700619994343662404190512977814856744798535444010256798393433675928667623764243302301426575957408257005303383442773274577592163734078168907931309301903800344893081595097725606969944789777422774105466815526990799551486724084414363257050811465565112714157260155382807601518876016734666516633008254139980544463678921020939699535519124645395958664468309472278181908417332546815677440270520525575958914057854668148729865171939254327151989434346639802155199752012546795964006112237383907807676524940288580493463730382927140499928689703328031923715373050625090284399053559468818025333839697468887880298200659817226641575998969201199510618485224645393465541986538531372534816057245803268635308664682429000015748509705562256708413147507541768011794229050913925344096095161458993706218149149615177895191567135463785007075399911520756647784075631856088932195023161123256661749289155088222688903784468923933549273742090881639111934244355840381252158177018286350898934156829273224220563011734439796981108688433388453458618182502981045516107337963272601319151185157906022333351972671395761100284218972157158813576019682506156117764408920662681491899750396912207040303193026687271986766881310648315056204851355522150374259356265143496222734101631505601845209023191071932337577525480436434914884907179135352621021723573272158107991528549720741793240993598440741566192067122006080200384443848580464752302512155798524814442178514505524022435554823467973514955335440935830768180332254796323508004752024350765962540459977598631159105954268221486538824054505788807296308266230467456324587934894701824295334636210519537214011764891119320420156562152298374547079936418988220897727776376197640748004907048384881627297491774493790814929295942983399003554441982618362048498697662352934424198885104455048670536630958682091947480788896594784178419528436028530535206925930515937223619612243735075802934650569900905808336416007347994076835248969438203673108409043888522700065691857814042918463512282206622849998300144619565233596738444056464189035477658450225548745461366800015668688162945377024624467134501054216317820860160051408941322225313032379184969786926001549560576839993293190353856820947945426778762013398862966348746388248005861126381730315937423421128255279255260128104215624662374118339869290263616430009809192609789746567526998254988726831831086488606287120095252809395606356317552943888837138901829470783148929307540189587128422219241660487550147047105994535588256589880275134750558658843986759552844365838501460335283564470369993151188792992706356562396303775129789566410573276429712461327181654209744865592513918873537876154545921762370068316265577720373947871313365782715455335424510815075205145383969268589012072999793533877393226706831251603073603829962021177402346530978067303986594924386113752894633115352058076592532780837143569386170573130512678243393037019739266586419553483152104204630796899404901304619186308205711961628559752684811410555558103994743055137770444558691609370745531679709692195564874990476989278829434091479908441105512014391694917977413921593061175946091542274918272148656387755792353190271812701235128101843527526323124578988337716204171857702470287131219206581372020072492622499900556807007326594960770515958349121252694113189318876433781550485131253314608435098895970500450223277681876601459557241695567036146857913494338624659724430517980487645260566305167951056118364273021776202071524882963951728528704254272245249043545374698008356921878082014949119700445702158837197678333342421145734981278473910570675942327938040095570948826929032371428434935423409444548734617661056224812750819729545167266295247027753986503190895770472272557646294841318020803822952348194906170551495649653099922200234181873187209623965439673597584776213581496609700760805869574935743351956063119585595069141584815536732414933326838620425052743153316048847952962763757432784537813880811507379051730347429684222820255425455131764605211085065856803761065277892443553267029925661286180933604406641085687083527062738925087420360135245123390773555435535293640068662295067276030874691119760713066795844001644526884714108796754861268081028111582849736187792537848300214704171288043081403364241508510545216415370716406694128326978040088947329033833674721841045336269367252146817969621757833203062827132223166934154588773253437525359426265716892343128577801421020088282646395481897303682869752072575643660079177149013533412380788383693745155216085339380594599657854005495641608766074429701215724048592529268250077487365280249234892715055911472377992237473944035366579450890877965118479373561150493415135880131236256667515117682950981516077446328802704926290177829325600069972460866729161688858195298501918947067667722954546243016158982611452668255058641026248651238738876525185341143047583926990477911999109648137888151306093299936194637634165929215525438568436307322314645937267718347064121423475659668568556139028534748916110772237332240617855453992065577406981909977082605120685245991084443229059607148419516077418968609493894422979205290373857545171192013911189739094778944467676170174110771545615462364547867179190858367033583627788097414752883033208528234584381547770698658207453785016061871260525732756754281760215746995328570280404241319853483841861844854643931853504363542126384897946211823572300566974254224122559431425070703128104655238484923731895577987330519087975786221986619202197578318748463581363595288021898013041937758117602843765643684268010772213190811080151092255213343358950174828876752094337253065266350837903916345768222232983891496799409390570027187522830785613893534714497376863062944515322871977353369374183150778110505228374549113304289698171861669241061945206634349622999280888962888978889860431159441052207244364203125313942990464841473976461302676732019657935417049805885171992975451297538142927466120095496524236812948423994032876290222473976617465324926181649153021260657439588996794741481677485152864867672952050514583554498344228091427949174800594274001687677666510883508870182650423316218021600570714577747016126288952366242581540047809152816349101456583511083809146173065793526905683225100124551850419243698080294289593984403081755262577254758676130592470607613371042405044446650811322200406241624529250716323198535600364165997871720642335812070692670861604480474994161753267632797213904426859659435142401114079015170028738354774805053698404264617887354656015028506877947141980295807374416476017624592130879266041144459023053950532431990265016409673760027248225710292503920548861082629481874689118123696770917189764311014223630680314064949924710184726780099338646159576993579900628245994843253309386279995712583630104532400952873791435760739166736174392977798543783223897725661349324920700909890251902671175674938628449064331074101032115341489355117614531417017782661760367566009116408473339935811407730061530409591247072273684155960316045400798687089994473179765169313747369328226453929473880995166361231488249637229612089083874095432311952194939622292300229610602253401978249480278807917424598137841294669030018630496375692844323184780039648460622703510551115397667503187963564227569456549112149433126446464120890174027678643294784620685513568480338769210648320894909657597290490127474643557459342495418201911971372564208082623771904674304629939016652407159813909967035120343952906353451391557727871486702053624097777591282888925172808065032005192135161535124240199231465462621084993883070873066931612950359445114794210383507521021381685325365501764635359573117095807502173239900194181133521088830030050743836524877383283331699026535350931811079829863198810901968470733645099412655433287883500094992116350840859455483844688518989488632809319636143292552698793273252419094352126292464693163034034792379811412640503288169444617756955588465879691098895378745291813565048275505563500945380844354403762168113168308861460988423313823994638623934763770427679319976184084582565340912379316850113910702096889561337513349426734144485493684135991608844876578232625804514229522386356138852607381722261015540739135670377359718397097701547623772860645736197149311394823035210688285836482689309690481729554428538111949615296539862261826075627814391704958074849695164698674434280254129436457125905946286777709821198671035299718829048201379802272601033449145179931824827578159790008859689817497493531704222205658701449444533216136869305370789269294099044450208484617151790847594645467287827211049456132790439227122204864470042603431984428522683277812331261469947150159007679650270133632099245444622880624201088267618107332597738489703454286746707301516189199797040541410279680993251664008928876324011998645456444184317220351007894491074748461620660419677661252951878034973778413081422325181921553421651444539127765137637585406828497098124909308947480113610564868657355076223444111596362951126235721071521157076659408615556100551121953230093689898718198981951810286246743720837643867111491955560452052411502943620095646414307484446367866102712367819847705145068503765317165421926203512124266381345334096632908226773365521682986019345844445288103423952946598120686755807847869444711327713533227736711076614997294388259419277049033280496266966742658674266658005806738794362322068458960542919877394304206807965112981143145239970369721529738477841275824266737347674509149584000223664017987076454929965174264901901119769605494392695986405986628621186357635419821069649985476662258844048659578370663330037660417464388560856861869275999744366784433534030835968130809349659749161611317683985543489101404055707620241623561267522785425846019059114697864186510921833673442629521938068302867753173883479479770097294490356908576338214770074666039769833358040554154696710196619427162089516918891852859226520097167215203958996096768568018927249597303691315021165798228110693547544374987447967347853753939502834830344465905875795659782590534150737659266483689101548655954932720192951486610681748676721527038082204415987248540541396270880444425149013868294981272128878206144089451821995700302248895164260537688652049355293794986557608108422916067092766585883113571684476378816282912003782607039908220833309471784132058448242254504968408935590760537670811270655968512844120353124604289368990319084637413627494462384330952638193751561943064501396993861741469792481592681943610876253165199762028768669818196556860996792128528140289432949542281871441612047373898768856164489012327497735644521744329534896646105143905103551127183175840613260809321340255435609904840608841000712976855898052504122603286198218931106982913499337768876696972620665582037097502357544981385414881781463213924288354400017052229542060332172449884729151244376923553344902754199615717879974005384542281640166832680804389164370836364132247438691602424299834021346928997515741488832417360575692315921363394861812087962632894866206927803624045292959385434637715310053365445268447229865076846526225900172674065975621049495963883003710459319934532840615567013693308290008951358733241908833045891758851450811531615671459541869440277472943486316885181378486167041990575116395885384163542075740163469989819083151170585264852653373623217686373090305690895758757193887334714274104738938811537793648679259977469437245590021703948535978899027493633835293617505740453353681531075351705673084931556131173089955310008764295654316372341444416618565430527685750333114915863168708899345003353066017525126532713652429805802235257637250025778909538338560841809465799219002839447739314609508163473689040423643551150994147907639573757982291693306367227496814690915965297540919870657493114709011673109667059238438984999526465594279493630893464430005578435639356208371475140037271014795850132512325726828993384894033815607993543678283293753849948467937762787664698998194145120147836262494865212658998649397340633074060554940860827566389753341608286268527285414529728452447558201782568689247013230791654700977309969868324130987965340114971683729827526170147254394163834736390194026574767701440594424267808312757981019338569189993598555030963854936719351328501066454627207984410723610228577813398171938179674939053542848489488760597961518278992665820451042167819817332875291169710685709101034632203869811429581448948747063017651924668147465880932945184763844395028190864453171732916726297338397116949437923204891869387731236006245299544378059195010479645515734620702957649935095878341107180575959957922033280351111663832862465579763275422427984139839646279393654575772001212332738029368123254954262486589899615530407405060771259779262994047313416223979469671305006301642784174405753346444690121196716683598723368102976067233157585009737468506400252338454986707306517750972196681253827298790119604945120911570836916433166458679314510661137904682393533289499032680900519035373863221481349634565755057158731961478190650979668576417836308202947972913486251117564725261997404836097785047940664523234287831683985369657592547184829855113418206798714973603277415135805369509580485436694320800491487545539504497515942132093513042992776015067218651462138200028619197505087029228412007059109335616347723371847819607933060709338596219302392471434774682988546215847251435205085942234278217430998970223778586153605739115277670939972582106759782880401896258765350770487385033210840512603462058345592498314727867606721584592134339344622822687481725405376002809756229250470538521470938591784372482639860323259868023522039817914050116558947769649614355430648189588289967383661981884710420887266346209905669679645673817808454370435814634151459316338606787963518908029750267795854019431108819002431792029329924578957646288697685172077034751957960073632738591959199303054356803867244231256388306738845737046587029157878207568476472593902581981572540737855012631514715168544978661665076602976927312185878262536294733406736197687286935910325948611564356028700064266552503594868897489915378279794226406435398272503020024047949475503188398657420524057662157705083736769213714320654367836937992337738482478962419061133909663384878110120652738795462945639139451384039310192304731261459138678738749695319099624852657193163958583989378914839894362419582137781013409659010856350552149531647577472587927561066923268224721092060212684033182432170856930092896808357357226826304122882289165493335295440843737663320268798805823925797425479939299776610032281102950364291006757328768023852549496152839055751218080684793315155666201779130032031149003644459724661393943416871039333732479405766580787075517529181640531407392349223558324925399995478004324032741888492283251756532832261432603652820741843064358953846327427705348330605853586378478295180185041056237015401732739847403665192495875567685846079785044239002311467191299035151448981975217452354155729340194564309095991370781926090549111647931006263469948158621364755322075882066782436173177621413940148297099349335103778659026083721465283143466761509974782257075986077176711861532841383895209587406349566913057754009760745453280661032758757207377967329081318676827681050170306149231931420023033236293379447337567554630878856993534468042199425585530923380834877226063452250452372183211828127672219792187851216007566736097020006415479158696658354185114222890138082669520551926614453501897058219133914764023181822732841686058164818108781130720110522842637802409057079704102233197179356691527282631215665567598607102202491537914090225767879520873817694772314707169611181390505846257863288467371422215895527242234077014124668362488276528506124949382407127535587249434508663742468686939520017663223982974681498666907622833164644224966429233542818290345060005939054703631879116290476421982078729230562045164012377934411999824422389066446191523007850632754755605226404403833506206707287500515793768915375593070437756423096864157506698255284157390426901118141262037448957752479095794738055663063890365192484046649761608296095320919221816333533995064539173565390262686460612197366614053107980746751957569219344828475499858263535102034027427566911813806701703601670625523955996773427851101581712201301002009444972654774184514528020130666796448724286855720678971935035516190736944201664735548981477450977957683606105425875674424028927947878997925836994301609771370339049880514731596775489132660655825295512678760735441839057350036808332966291149601475910327103706508825823374642761955486482341012146971062149118740727220279058293623502900175993337275667748631282197572119652949503347864258617670564686633544702205588707013575682030317099242403516250677724835950657410139663746631072978461886977763203378371421576444705238362233266935305027885861790055976676676584577510335772675853495799856724616669072530986644243591235995853478248409143126340082300689619256673183844299579473292637190648500039255270150932756359925143118090394621895710931964822339312646859551790130562059278334427099940725524513402462285182718173996818545884819490314824379415955263417477837190880903959652441483983055700506823111693725968208403930100897117348957864334461165612769806786756020554880855933736903436535453518077822035869710226317873732456235216954780963161427329534378846181023623088836919785094658048774746088069223788555994852668919371745117496978344860368160454019469122814231763632469450628602548092819822407595720721824823171330255143809769614715331490077352802797907079603682701047228324732213393797757748997555380015382875033068407729806167040888903766254726186465921881439270038839805491126393021022854564674260332604045092126403693263639571423973046383714294521865882402153804820534831185838627484590263420613141341277911443981416456159801635521045580807638510644875104253853642015505761945128818711241698505859128879346282323151130030824103951427349015473097515788106835279243452219024783806708333366359627317361271424060140497769725226155583395739345244662982877229435525687460311108983540120916612869971466092669678890486926540257932854193723430079563611776899236144613800569795152517707892704250705977177221820859006261312616636874014573652317361946862411499120909374493256379691939547015001636983660313240567546792281164387375937730359443818086513650807156573885707924613633445680168851972920396259151505637441797373104096583973355337203172966435792394787825707602127026704290922557561289241953997005083612977007505492476121785060646514963392807923878395444516706639317220448523750142679609015740993476088698708812670842349868378853704907634605320716799695261663800304586844465833974222977431183279671862951589554610021587265111844350833450549815547516204019241568004423638264576273465613807173293001731958965704987165223639659732051179830395244580852039414527574426135009831686340160234416683169486465217300631908429719076543418140448350324779426818436859991658867557238782357713746255697789138731798128625154121731275441150723136637081551569769697928595362169303380705493039627692525272774483194356606647192528132341106350877295778222248957757942733879943665746519966049620625751522603683657464186853840025462020486520568173640633795938147977885200378638122693594643509671780364474755073355640158080513956344305844514680166864472071389668533171205403971601437410765480034187776573932086963509324068519803254632241775233491008973385218190644806963628095444091565321804808059742768746640469044722767041798325579748765953102303468104865816231580437872121833986586684692994936805517924129566902871690998678857630949244015616190561594306054366006423613546140718319230843202938998592910210742873643282530940834352028803448148300903955194979551881082649563000909906275515215755653755500357602874038674235105968685269236700593888338845375941840861479118268014342405157914504367442914968338107885559575571268234429522317819604104516736459544066880912156491649618112358646873685822907911380337765874068061936317802783758422243794114370308278204662407345648817095227077171033978377722587087694041678223638130734392450930255087991167697341071831294361565536346754005583784095875661644503950575116546024357086697446539435676603910921848668641446129932860130840382237972927738933957428764854733624664145885462629571214451093169388451852729630558619772666698079095347749172277500192998099867326982451960280993934577693809657839312090158417830751026468408867714559071975487531522908209292344336605269054226032330671877897369509705503238817890765718301058174156728877974757191350945475310143108486468538954055039567943519307271427122501079883150668499937173340196183810124953075755023790156220805948021149187507526981922839839799651952544396332016999017482870859263514104535982648622293059889397381216905560613794831908739356458247794340813583045850735721522579993532218616809740146949306951424299632405870693127550875727651061463579350634844455244773426839278624929436289511240880538929611461925738966109375454108001998627439463479472255316353014141243632083490797293066830907954319563850432289414873769893471935191056493304577469855226943643054200688158635269571427295770274268726478394268389639469499526815915364378181276248636941468402277556469692299790780894612819375228531288092437654208871016287442171608476243814885984601202364109305269582492913861131376865540817580523636677629190392703017858691147086448488298281023133609630731202823689813057482515121435085175644901142434049547783685547419947905291121427931815220953340783492912937503449209563482211432784335096559817729114275986071073250602936264028410817967971423363129490525900923921256361603338567721288160990883511570039866989607241286876466996808596664205231022988702769307503075921680059410588077567377418593431234558216427133250467334629590478101008270929341548718431030835822193365689298399281402383113194186744770669531929776077138466736215574739913497096482909118696232725994438739635046462172116304521767500624303729884862972284850558586180539895262231430841921295015269524531767756321706616095182963562997361252825503593376667389694782572166123017390145739860116816834491822993097417392412005744467405435911768616817846400901745154181058306910307496047339070715229741454422406444076366968053859512882454702843128306301420683515074763940786154662158631483966004101958778109024641604114467248229833687823307757076238424588643685584831998966944333834149579984119903103840563981253299645329684178339533915290144533769808828782855351450833639293808953925529605467193119375889508626137835925194574431819665298824943362679617585614790748709760574182219862589622228397421905794379825915004384976842735401043546755249697536869760826541269134381417703474289968279164594180226490858952686610898878181127234401922296525948733006374827719178922319255888078394115918982799418374544272057682700232065941834036300163474961705201036881957849715825001699862272281139430118385391718645796440648871764669211600401641339719196429710069867921655266719225763184062856802618679377405647655740946207494761986891181993343366442472689735973643591290527256967993627127946338264129321444212271755512544133248323797711625814796786204976229737932468969099571438052910170848904771205949279674624624541471859537835815443794979162403256933068167469173665823455501480746158251428119509804132858281157668563323602681147597730664956051834440125641421228982452131242296014592111278127971935993597003421188646532071810614248428059714492921820000580035528293632131203623180088784876125544072658960926769605649013788317390944852565885148431317161190363246397795659419746403009179112623215564467168459801825943560619200554726615468224960617926463225994767670883833565411734495084127349507459732243506160172578057516785377841365744697709410508005157046963560438632787981948493462687340105069656585352059898607596089299078810686966729563824863515675472756948350866256736869666890318212501967649642441904353840829078225286176613486779987552251407320175351980672848888553644308930299401610158562864511329471223383171915665281956543724261151719533214473715514390680821790866843444422649546385425718814194172496481415596440908742441538282027605981443711146357990201206157307949394487989206706134838454078533293105402484135203280549162026607414027500104776203699219424673304273988779120177370013963331419249281032014961954383999300634493578376878446886247824375462377514109264531956211909182065861652151525321522346378477911519344885816068888282777648282514272140003909848010601019687816292040523475955668492685363038184128111123616276720415213479452430029751549002838512260105353599329816059491515512455227911329999874117117745920533415916950492960713055614804282936246010248379148918952691564760133790762994151745914759670898785209918042589589665058329017404221573855233699176329184498780455507403632605732193448961238209091017508472310023029088051318172020190686172405043060117877005637199248214718215192879585987794597546728086513461938238083006693854023619127351664066349124503752070051969598571699075157605658556717886922592846501486760971093305120457434833554457356503546827268103457177577003440599064324745664865373138863772398419598948515269765556077104104880430792810933472267360236811038934436723934587069637757159491907223133266216923969122569608447981902084275001835285198630321398890678330805434636449323831366413903343611238708835930778894998124320887483216238779184277574803902737185000310823972264230466948934580414913248693001628028947797699054608759994263632067975648289784434670819284899703447495781014523041279146113721992602464456284869124256647025132567272676312637704545780181793195303405757188427021582400552088987956471658982887754474131199370663970596376083139547749911819380165450018622321942515755324952192484458247872937859512774342344625977431142999017157107104815314394449047651926972263627203055098526991900981150724833069212650062039584790699440671432261707272699131926183023774260599687021915296031614759439017576583938389909015589837895747493768989096576547920108564067667860596995592266009209680904122557652758788077459852312638617753133346217964185989025752394036346779091147199673555763282884532327208385219128495500247295628626086082641011036798891385221376040843559628963144532122540668271434631079872720716384929034222840659516621182078762105338576266360126423500327181924873666481583422953964156145969295210554795129243138979451219712655320632720178291851456084730623562447307803168701055442416323361112000644849787555926951417332445192426750475684100017064348612448429910939808771483096506500868110546935919809759413254844562127173239420390202558404869370499091141793482298070622551852276859429006004077063126657361721888159579529567005189053717275957217613370569757418220892285863921690559355867242739012482609772129422039194962797696199162144091279687637657070950552677530093640990285322847186679714563558093400694247948285317624997429473721448251380011545324967408108448861160009047551959560322624869425279060650234725281972429457230527008037146180259281147746026146707310469645057339900584279621237907416236457000257093757694790930756645951209065215683940907934484715344368865868606069676404075585360022305559780026004337774496062837635565744293357181018145560836691430751920076576295020757755126022393789923413118657247643838027639897775726546145240204286933635422389843463110929736634537055635777885401453620311381084811138781023426475956386560743315552586603218843358028999062338577727203512028900224364846645823257197388090536458567986197245728188458298947181418248195622502449174667295979619793902063259269458602110234152720070425466858408559755405267044709504750250901306065649356373891834229636501605632750554704898706731005735407817560622847779351445405895951959551214743011819724467970767286245951364945997088561467718793463243300581278429608743409680745318001080013370863829644840062732055725625243807498687572827108575379912848501405135114338697153706340410119001191412607671731354406230463475167798213600322554360233588989682163795671089959662796649681624694402968085616439606394082308547176732962782866671964447516194289717587411352411453957493991081734034083663827599409674877153119711149185586673853912837503505779267430679468516768250817101589504276280629266317900674765499341552501838276377594696160738845115449935272019425276884482774506049086965105586536777139671494849421906995286020207553867521513246900792506129880953182813970327397044940367402410542938831982231687511939593221536051612588567958389629073908973642537779609957550156691584671635706649731931249027105342756144443273455385868330849172959906831796110780090433005666591974705183800073367093867812115221978807902717781987421772999839607641836889507578994764092231456914730560472609165344599614460677403371296609895387776033004621719174904971439928910843576956201205328896298741496472544740265408075705868920239164993928577291804700644356007556572979411294649733978567492110412038315121432204617042120665589255457004487335899410521509023031986749016328942019518883194370814499925685371348665832214146338324166961257122894442588226764355843521672484847593721141541783909198176668777246810848853690179928871630296927646171771159996405816966815679729666432425201260165594750990366628756282078981043808912118355402466858308214480059040423651585707494503493237392699011734651290029472884037986117308740454053700959588930955911304128075866007745030584117160472593068797862501763168989765473940064124218132228045373486005802413596812378406780406357362435973211434400971964027883527145200093899174970287741589577266983752588950869278974414834347418766859145062695576408847714236671119350947348870861437505041567367404719696635598972202742172599009618943703260956211018285549659452748037813334944571062603413527128449607313578864488475871839772319408576083000489730565136700795587705124804727534048813938330346198813174764599077524565025392610423127123438173278193031479397067260394929524668944875184572797800404601603823833288829358621871327977763222850778754109072404132996027037041190820231509514876913397194252187292793440186979556996438388742555666003953161100796642701407829250332616899479771510161316081619006859971931426663478804783196113258143619867144824544578717914980284620364392611903047418676872328869685236998209099875921292813385392552262490483679666707349338364346383492618691583882828277035174807103493456187466619026351495498594367755512687804937033126435313376093899950465230277474345276501825341579142262135948031014323532653659508895833952883519401659136511457314177982830998551456433853662700384942716831894916922532836087182961622380435210587826825284959486499741274153666012775890645913420391854691879557687411215574163803871107802772383855278200184933177449250922106628011939132800252443679332955235797579999361840900083310576928644150944577563643456712969613432960013867953533986741564130305247868082896705926053700331192277778984427430178935342408641788019417020228437142546599892720181416224380656075665771665484742667426314699983386397308008306063532576922615730881463982575303544282589804158479419775324330114916512835752736333984402648231378273299417810551166506432296026906751712916015492134911030003056800906703566289657908381989975800536400974848583747087139627216828446023671320819578367125779179826588226027840578561395065724233223073744086072843061115319094324316370238348842260953256163309302366590604927220787239346292999053365384585312722913431905390470736236208187892526391397773149885070041233581003375694938784304067293833520887053277916492996101987580839682570755733818378965341325237245478015463408145928887117321659735349680404887951391021894500468775685546698998237101648823178764383171221914498899543510522454556082493892136669768959246820144588899393446063468584369383213535491215679661506688128846150668851045383612395619600936208553033628275717205542955418946764958943100377995613719610816719864464723013545794077977014313544717230648722476130942071593224482397997362062894580686959015789875795831991719210988331227097091341336599211473838726699459285631282983695100784712869328778498308516345021774438084036144327942783700949845562381622817825265842973008620171698862450421611159382171815475496576724671237410455043821918331565105038444791054449227300699647873231221451086534492882552995935265664933875770055187263318325232794888228698353856104376519650942848168917654177119052188648596790469171693627218808765951205629419543709832715128497190425937541731923082278043316454609741505610043308355332587334834906924278546553106673854531658035503757900277817793986717626290613962597593260612761359294001979662034656989873041620969256861544244587434402190348619552603271521743578519321177699499171318168022484772465851330542114037857735807535378306696548745784569636203201181387983724741546343706555949081161002983293257856624594610949957281742838510615515651851725469200608468953037693390325568123331853317366223534980794730372525784635272118838744395182406229321350772894974756391439336945016233765751399444577538707129598895863744245081275712244618857392936582524813362325454809277802757431155772451097678393857104998324881511023192316055306517905075435545759281648040576622199769927992595835539394465711670706710119488986476319529626961686308161860058113783390401090731633812013094510021192093053125243291362089725239552078877782782751387386322722786515926189763000644494670269893933687317915820026144616011592225283607338085799592063413534935923199954682236422294568356480798309849401423285539823486815970826586004330058566918876304047667648040676799276471759285566505553150243799392292330219039961598987483310943059003311158333651202980429426673585414622272043970070758210304310364963759727628651787796756097804385493092819819780460413284146042659336848040065913445108639104776013271417499495481683723999027028665243215814564395648914395465088866771974957871866130166488884317807546200421245844999748868610695921418620561055429139940890861045735819045240145205794801229052343619418897639752794691733161201998520570117015063632634616350352014740726567635064685515014914597809364374369842598035233849449414302215914719939906763083659387394847615385348486058517778292958907641668367515538735431903569084188683034010355819426019305661818661504601799549273930914052962513182430121526002602082458822218592467051037871823751827827631626141154862640872306233922053149336006949638148601390876570100525014898893831418109553834205391735894549861749388987067201443290838591321463730776554362788816690768244708460790122784568205840658120703725589540926789948625505385986521820609173796293992772626308979843814610090550119785606092915642576780618448159898760640283991871012222703702713494181557424800936079242435621060146697583071772453158582620186604711753443298624956140250978741030666140647208196930883800682473394332499976953703597099546266953243822000282323642792072292446503960640050385042201774538355006201899052527057406806280660608438018421923696027667199012647317999327451484155777857389609938754419271057048037627066332901103079390540723620624361290049559118000013798412442072017956374890257987790519508917922475087134029980225232071101978981734685927485328397599285107822933471015899245519819792112167660011231482389385821106977372764508199778911205183527325666444132741466791853609409845337102510730308122406400176672386831021855445992156198077414773145991808009490214263092235929311913762444823226705743530850713118181122937240342471311380633590573767982074670542761751838929845838955619885599999918587805102735846723380265749101314746610053242055440043102143866265585641562166496587744292096134794835851477680621036392560526526876292531070455482540571517291735472382001332636464697503330638463521743056509099644272964684944170092635566799889819022831142171052513166887384577446195264930582697249077505218888121936505047022049965553589784583821842923790702829273329994926450805522958327674687306469264153482040694904744249487769506228599189043776582746273402094806213857284206649422105904339398241025875314888543580339773504259696629080620640535022208993703828237917324086010338934201468227216148196843148596419230189618934194809921228848710104216170527620044017087534359110371487318240258101858954360906381440893043727794699731735850781149426924374221895422103183089838924820106302204966226893076959082121378491699920828946780311235960356235876611394878883150337125314947134516643083310425920157429048531616659833561767668124496623084706517420250582527313939402526712558351147509020721249878987383915660637392013574427159372746095957675547469702225023001136952383134311772937419105885128258901036406142264243068153654196282829910872706560565220259245298033822433340156822091647486169743958171027966203800501607642938004731784538563537843609120205386614191089282635970823632218790523175207667128767829476575617260247065799376681028964158474904501708689658742945642510408860618736558739363995023306147930348525686446636197040024275456379861416057399005064419348299003715715175659261989184711513655861743548665024464819671819014022425760092295995031668119147249331869344928002569708867708062666220945283917868783410527143551827421446033725325481147560850389851023041903141166214943184471355629410812870981912708926245746764023698180208897144604932996555661138263023004811251167060590765499686991310391114106790568704895715368749759018789586562489276809837014066538736979393645620595840648655069454721723821602210237672812072374698028779493983566666792378809883612523399641538148073203833173761450268412538095268524119584956785084034006910673692165128365056449823978846060920448348781101657648585974980862652986717096266079133142385887241338690872821260842257866416419666312327816898195939245113473937592030363258068817780180885166176903828993217040164142876055886736034168030607266413999316750047442041939713236230302296963415013563728782381932970311239174951041081109791205839984057726849200599996896439538995379998109536996928957872850773956015072285876058561918340923667854516426209951402967712065399903450140333772831694915144426457648491161400981147234761904726647276072898123966833834937748305417330581816562226253737710523316420846406404556447159637505616016777149520809733657465439418967661824233838282704460066037038912253815920970593265247483164896072330318734909770190368044108890685206009589761836621432987001220397892158523253838181205008270291177735031810390757100246445603686367421880250625902494903939421272288460320400934604849754077432755938597621100425009130269242142416239227017655530419458456337207655607640208612316765730938438436719731147980799090225144599522088766268886022239733087937856500445428407398646431450841885515728734055447643442494625787459432568320920842258678282343309533050863497015125419797753529224947937575985808612049478824865345071827408029779323077350212748266886828387947817469746610362611846106556057023398028363193709025381420888232404952098987049446294517909082895670368907403812119768339834034675954119376948057563559476733663724116330200046051657616834116179401066445677489564580223731910695223390174419028727331532564583705534394724641944841003786319609491300676530352039746744323358851409460086247090285938281993568877203048944621241610454030499110392548870281429104708874925881434933054527649677488545546366074251073573330682431963722510962535351939592120035187202981234826757966424304224541092051830632309337869874174972354570362347465910040376185326418620536183579957272946119089624875334707813566526258031811084466024688692131261684483460794923103852704513944213370790659635562743192373199931754905047934296721266766216825823439325399261162919087032488430810126189277936616783410695410136698390024137887458120449254169535584855211442415988633611477926539168982568885664190112251796237347028597981077034011095362347276864974982869121727307316119110433422379891659312417352842916247728946204308348140847581205493528862081745150101577452227980086003459452360657162011815387940805514837358291667073894798014973709676227121313513573893127652325844833794381778677196985239332972840941701776266917818112710787180902182308464707608848944493322731846158151800980013932450793627361456779974376997419369611668683769050312163437558398823661445012531895853155143236249779366857950829223405319929243402823566626732321414330853288055705990631848701046685725080320007910061277478636539646365418061779277418668248819802327004629998931268478102676357157347985602943364129753183491200535656523136036892443298753879706850270983130243846396985009828748156267042742479011682222499632155823829316818028169085469052913355943375512564197418553630135245420987782221884480643261748224385595827580635660094671518270115256740218961079501545700712378597200160342513845661001989941371583787344787771408926205695037924915357432522634813648431438797602325419343429306927526506893107838855808586502808804346557940642104854055785417377735179953005106613660671028625110385464670131178623162247566841151680737105396658745773550754286987098325791465390010513554061875464572714138900465830617581787637298735343509450603620675085779948629944107075405336615648275279029821675192660417976385082421531169232101440208544799914547591416716626256393453186882473894569338823095517930914725085810518514441233503681416641310874027607877763603864926426243737391533372195384386628243736811675010483475898250537755510470967023078408715774198518207900373112346047995035721494926140085840034735222267842160889882496423361623270072664428722179726825214891911507924178190439937336612603568178828561740431815268811002492025218083895191477406048901443475936334514950820842928909724482892777702701499438238077733526041245434958908184536003024955706342015274188441173404087408394692224232292467143047933325724355131397210805285016516823823394041529826816891969294633143565610522298477719679822013482885062631058417211558852203600069775266202391337331433687813957527205572014891341138516416216778905423068040871663215790381276034604988002590750770620613116205703824356565070582228252055799244774149610734318102659867192246740286824137831098301217327783872116890346406925344409402031694628393410539325647807821214379282391245806679585220817499487499526774846860064217124886779374079775592141319369066369287035350015888518552774047057940396807607568027520234783329752334792994017927545019501898161057170612579128021565994032276852931154028124338282729344935749670482555119097734740609612229729490840127660718998587911343304675339860619695834196444880905831153077867029466668997653056125768151629847710173476200674798977604161445973203521421569623250053093133052190516093942088115665451708074295561238311315813981329916620898362636943188226727950305935863609238878099174923460302844457792050260145360673299574947474089677000169741078651754311952670469690241262963844603787621418538674390737316626411537159753271889723918269009252788840022077955736616185058805591205560200132389742300687367753459455671133613108292917581502981058711545751275627272946671782225431930404983240173050867262200362847098358872568643138164385044020428405424028498139763157041342101114408268075838810339843880867806121193854888662105273605120407028539328043336075528647203813488433349891619222531244706715526697352577167088297262283997099662630637120562196605594133590276187680912059737370061988583716327173517618501782127199817627474075112952141287126027914906555054924440101274439853054510017634184299544785554301004817731678255790405319654722251750333602573538019886862764886264245778633798418301547429119606731329331160039291204425928299251353205338397811796345097251186351058749559137903822231560980904406944618874683691252029559346954707304633505199087503626449772421811718976647356574054379004708575111324626016813879255981076678970643621662289848226420321862635652142488620830986445534308125849044913711498897370153392181337993100799806380523397531100745592704712693536112628102537460594903672997016602717984792750721028621364355613347202347535054013772923944063164621966390518358776972135557621653258682948800318489623896214325535217687679381560143258090716925132133846476414016614040585125671549850738303883896019545192821737955072782317584504281794825122438789130521515860170824120210912738803615714656967177182586446866198956283568564230448882968982877034892985155783889206973291557202471482092487719790067232212812645193956383215301121524735479376954117658718299322196083519251951600698030700740311347299154206313072705665465926594208878067770731346529926502366098142896719086127314577862267451273957321816866778913854200336861431573079839764729535616834272104129220392642572581467127583466677569399693006465919088149167527098936890799507107924864626227253588214058265286687246618963806147019873239871978189446046428920235479179713065843103106753891524054043942242532188581346956340829734483893557616846548591908665168135334097309922322218306224987086510567531847672609149034875250793487516144933308732224034562141226110561878352536898253897170818227776352955020725850957553978192924331599513867671769140803195525956090692649658966461396365520758404867214916273111878032341381686631995306188244411887985370530025220932072091188219030751738388455265332617941655818825831985495525556068388523307606313938171085451311958304176117709829423610324428396283163871847880184167234099828374361977058080017470660830912164261793195998383918806247059180561454970806568061043091477891576047693374784405732492923505772390205291300397603239140143394006084643796783469979873605181888030492498375841078268285174874507723963141226216187331333745017756223599644413713951634513437086893092781181268676233681346882768042666567524301747113692295183431031287721974277195818320053641958446011895021549648967350305442530504364521732990576384292890058954951317461512796201316295988787391055839698400311330838589978167383889125892709399758015314259626285219723576487391143755003388203572617726312763275281903920607129976078056172145612434389053587481120699985537180132742129345824943420036635860528760370672667044775564295233785782517847239544483686400654575330497213764483235036684256631964054916450494475538856764581110008909106338173296464178633526148039273603146986132870726179947081552260711307287350607425426171739764903952144735610489985781113383329635031558985321726714464932863342349190672831246390254035820607635899951288530395948877447522453017634094193995247043668924864900677523588562520688999974265863555771855680426377600869170364460306635645692483864953768291668539700973030091799570048267068225737050083678979307089444516897438736390768466607541238549212019813499197055681255352830826202632155471445967066237510687711490952447185805333727881414667738633529998114912097426433629614659388487501151097748905988709715428796292847425085854670141003942031278158542230818582849759510961703029080397922899581605823309248281318556038104891894474545321502391400238734448414329787656480928423792986274314849290172479104316706017795270781611217804636206586654893205323958661049588842870601290933932999967567826309633616959960036413702927643169779424065238299627732357145567782488535213689626642515402999145024960716050918893508353664718715264957678924393202042765006906235645877641620525634563175409565056849699481483034076535224914397829087970456236284399032728142586159751641888449120372281902381779952033356276106009406668045161620132595297305710060910212887806059428874590276659963583922182800062524112108814642197571977364665958737821190038414387300115556564010609706477135813477850202230750423455480087641872636998522659017429082654397080953099775333135348482766636045018364903604703014252634944739648899527999344586403130558793295008989135820704512069325241162115543699286298091246724528377124092821873535315993193302122095608728291172379982446552219552764103767292327103024544290768024857313457942207049907752924069186774471407480760829764899664762673782301292642175106864472374978334652629195864145863887166948743352775727234403062461196037328148413948471136985199019128178295447152223849854722082435295768415945957076745889781228228392041780822000123731977108757469141305445335823340563790460215118173253150284457495317015826443916685746987370634518468233089144355513131906375294660273298117147310159355750939607601960764479605764297278759664703519919077089211815241652710158912244554906309616331811536186174347502945365914945134363865889556315671432240854820472187445652054694727678590741235792543383420426797208922868426696043116110983385137204946286798727786496334458406322843032096080351650900246021865725557641760380575171260159579611184454556720063954894498185175736679362114372766399865269795630113095976248974377307561174273736430160913558002311802093840087436226235186702062753356410989480262431173430218777631705820244560309381727688114251323035159170760083392290920481369938782306088375634773612239572619319231991721234028551624197599325166262367684652868945889575224980619630953777220399408702389365920465611708177052183608875869696465799515900516177684809252211968225961864663723670836720265143449908484134649167165407301777565205264778306554879167996164513768290740582849554023833614115428334333566119136540858973938471072712250747945400257986059664276411749940892142923488568337104619086206434190712947944452676335369074934230675233651575434693851398629880055421134147288086644162944231531442234238974560119125240657877221624684242876633447231938141518464244560233392984632082899420229792987238140151214285582647419168339368000159813395318061237856859847426796638594282236406316845231147199317936346205672030936246324030372330634076012456150671060541735823144644965080178400267512936216072657516500196181033889042668662900389688227240828702312070477648533194398540807343095908867172492139034338621771281165582112535566206526933857183283187082504522920104843145544024134650284826705069970166750778547137938817703364297941942871674576175932078506475873172214331586372776133995596873238095784279359116096788121689407774022877730883452905624308500584961610881475186492864726693654892467670922432980721479326999484062496983750521707927438601133479659691358468389590616000910890447819052431454400838766700813968610405017266901581372060035333219258023127772869325926307635555950417706689268987091858735936194372152512215715379413771677258746639830710693328273823920794468688729337027813540644603553295298629722560191945995911479634110534501329419195645807627389554431690191200428325013788052107365863013940900137649181079424529288769147548939868777860986569452411769874908060388048637112311116677291358771422442862943448822266524089821490615857522317702798965868314444133285276790365691262347088537815714271895882847037220956112171529784473820164862084004563347651396619988675261488696638773557361696902685508512872032657663227878168285154568161183154339610656167759082112696349770828871058165721365493792097282215423279336924801539728512622615149769287760858467748896374101141610103387416066855344239299002144016163577352090440657162395725051972568993537167456325968812733416812098699885622047469850717403954787696837910420238566204559392730591427182676888510245599138387622933422130883903932854375433976365679758070042530342618225046130645461177732701784950271172619336657267548528112153965260261168536435418355049951954717858931252104201898415545123034105880798779519754515760148808973000385385027710778056905757527005885178357609177683657834852087189091487770402003585850767206776153621535411001371061136901515994417153178780013469593017464901317386303961056843434536219386952392861249124282380874526568422731580341275361125661278547338898237276955007596078544016268748644338032621774338767147316882604700178112813902192194299446522654205114629870390931844843000883807136259679764915055342025777714681294458782771244422752559348443499891601666778497563492016239815011070255296659385049859910138909599099305433108381820863727288634198804057899941536102282193206365936016751114510524900253974947449537657889986990814792863601598862864680533479087114804846294922339193226192674317020371047489761609793524873117680116064349698800431591878221376420389042164676585318310196046326837286014076397541063691470859723211555134046780667640817264314808563929733620907314610528610317410670559576904755436924686689733034788387497372997422397527688166516444157678842258114750558955177322453979608752185761794980105664292862506146044866096226753847477873146385673800514485109427370299268108565339442462644822111551054477376262667263715792779768124167646997388432598885119510598928296899065973305916578786080494816556236373341344637370893892153485339921630621553032275276952686191102507171503914230110057247161433500959675479646375256509906214254275408828977584561925067654771537994867678398106406900670794961880577453995973234373974433339884707706923966290062290606328969395055232514668002748358738700069496443553909512816683611635409669468537751147927799544097948982761496534224084879711181906902082935235692555354079169128108921431095658042082990704754186276818379210059901635839441217686242089426877247529843973941376819709918570188218174471027436248071334383694095551688916833991248203233038389794966929824293865152564943668623281485729008236881680005970162365961676975001657859051671604998519657385282456765875541375440068911238833165178022119677393362084019687910572874778081648543408548392751991520103710838477296440585465527646000415293868578656244971188706215105984957245505907077632715488554739461250491721751757914071163356044670612794902637183050589531036319139567198661431025260834161917339990169581987525457543279018740949137355911219318157943978542084195028957049555788874224461041987006384260317449741983816129406147928415108284072901602714115019238243722665315233109126546659557544576208895472654890670819195212843701653703337974933825439497943181894389787992375785463630905376961560463005782557388628646318400777525091630347238742086023475380112251757849954609061521683833906501247071587733318149718620997652783490739594129895391586420172687649646191526709305223364080477078780848895345588726452959523895278192170741871082689787298352185913877048432031029340073468571733586156227214402951704963203977260385611705859015845497174996359555368375657183187908530032230290706766737935624759981979942054028332664618299578920894196528807105801324440413635060501697035382393794956431499761670635752099395546729438087921593305510632972921482499856390243218860783073392438220695909664530747085679943128251607664106720254991350191811257276390471440659616412854490216680830475627758874155710692277225171098129831602411208741256180414023128563930788943601632178905517145960118278917149663708714442130818461374793903787960455132119075369638736895485222366239044867988921109781860629804015658519001463319712260228250723555010762856328638588427369086584120076314063881848588747033917513774287713780983962631691200785891741624906984493562248783050147109810298240268457343131170418986756183230154638217298656855798867481781627286132905930291982386189326440856553905763103779846492332462571197537226504116755066290244418584955068278694660668865658263360347121233176540156544415135560278308034000038037590464013984573683510736371854597939436467054664189126420155426159327510054045835520167816709496956848693455944630515620229825537590901897068434090008210535295948188962354731975813899445335109925286004215420630300709567461321318790755474137148058239933784896116498253098612008350384233703099117700201294310393516126524009890776948141231280905173908225314991204121185653535252553270403890852841024967427781103300439567683451796403449747833707995675608202553386149089829799124026149499413659349851914284394020108059313209498388520531781384659550123720477195842260218546720040156982181372438918264440430698928342031690382581936282702404257963176119329180493264402435658752679769414647679291196901123344101364082511197200877342440403707488015506867036559914067074338813270935826286058103323779022968811535423965032403927056055074550899731253505918972993015005216225963562209748437525041709686053461874745943494747156709424378782490407590110182085801639122355338176982250145452044734438154840358432838755968785450619339210275916477431405071789088203563151500190292332701047803153109606161837194520136157713875136000036277088020862273536831166045983328460403419023060665518729876167037679928063260452963176018950833107095709026245634464586680842484929274934877460719795682101023400726824274058842810583472665809784849618824251361557396270420832867367885498157334647023139265925939733290996195579129916204511973101532099487725144986140869617591085301300304672930793858369201763838486712536149938386772726904004272199743582346525351674024937074698965568541160769027772978576752037933860487557968451726527835331674281758992449041604722857472542440811856261531246035032888514309791342358668396613033669937981254214601584121915667773611444593051756545650860865131081876361202396297945477825053519324683336694802672416615066636647852785426471325020195587159186286507340273146127360640020780510479443339209127651066011015004155816159235392997776713002040841406765352496633065462186787268138197989338426220225989017062056483085322698111793491918732761219918235349789858275042366978258193315379272442686028273038797333827896512919037445367485446498300757824383789361858871013931418480422925555117442979313988264948574194679799738124146356476847546140176487925798496510366077006614654079875591955201845271768799314630776879570588117548702602117622077494736365257483691807536506410831249845877455076754312704675188148413493983879115168943451253881398517374903713213187238450196614553364125942041754075492361589248965589676716722380449265982018869808792148450383103948715253722534287365172924852859755350486086850574840796871286340905001778652303430038388695778604007840910805878923201037591130629158952773692683572609571030467439483329608328982406209659973128917128563565954230727708298789377450480013621851474337503763063763472953510367823858381846310705089777124762825775535346970612179269942864131618897766302966951347705775273586446853992747975435464015414629753751380339816988352842249236231182265144472331362444394009061288272260531465381295793034908758103933829431227737406822509775825085941137309767515704239846438520480945735619387951986077579176376916414959221123894013944589270628515303833727142670343603322608642412343203228789459367983676273804495210593442712139589485993668489156250061533912100334602208733607840833832685959655251098744066369905793457194502931559874427162522175763376205629264549718102270174304222862008144148361904705902444000762077407730210226735315647643824514395492455068952253742426195991407290614800813021233050174697606897457922978136329029772406589441051832946211489607771588543101353205268717269445672539094508911439414854515627593072746790149314773259475046548875667054882702847240439491126241574439536831905127312083893763509537186404506108124298242561110785249096205038210518344507689746528422848107553729771495593111985537541883064009541948922279656641133822413239155496716294870323454812836983568883513094015395548263426987257891778279976508170068997732508798559703529926589058209492916427938406484891604505603325514944074761876470922719029069425955640749482476655203773467399672812752757131147107814445745814045608079857547313575638077462537758121421222287682291889238279800226368741542293653943429518988730028351643393117202785332733462726242690110712440303525983131892612332745139030047202068098222109925554888419218414989285082590530275823027949703983358211290744187691720511143502029707642329397007846613382155762918693310656021695322584892887144120024713832154176937630163847184694770264279080938908044500143399999200939023814738288011048945158886012079691206493353090450603720577622626598832149623244675076700715658886135504688793036186391852155033118663148216022344428413592538683189784312635325971645499296878042012659238139184038925975444036825643797972906756124503668437272663822954800556346948213558341531877978186760126710335441795473842809381298822869511488945190080730384498946280691434174627479213646545531073989602740124802250111811852953800052722865505415149178259779816111337920211297006207362178098392279352399006943578107663701452117794541719821684764541054974883119995988676958893543365685787365539692138812226410502208527265114879734248651544788968449293661879189666236642113731802268697062288483087065549794497327747973088587447136028333553617303703552562429513132076003595640507454588069657097411939069386941335085471072660226676310512942468526856620428467844920018985210006925611512653814753567705925912615377236228227256774621628734146862853785072326608581271487130252763676456665665104129621679939730736560221597405917931761639003230622295071450006666294777465493224487825007273014828255939078595318706343217144247150802621991058237364860110443496794341088770417394760858619321327839520764524842546095437826835126219359448325371308129607965825026845226402098355043149478633501484429260678992116738900044302238668696433954056447586675756213226172823167668506890499267228952946991581673137233570026528555765004304275789687616436135281142123883592029391296582692499914236002600277213678961357123242788848586572694326225988356960799827944623303722565493632239476027504658664298044255393987830734137941241114887706827122891123565073441647140838272716109473452868502342158206998241060165401717651219038918400474793115283754587968089300546529973465025371735850678781467626005564729099469154630214784401842902728080599505137846202610488175417634660915440507279938584408091416596043652788025738003161383997596150319472448107160179870684869565202002499149750967619043083981443084131389108752522703604733318754261812359965703246119676584464690632038858281230676064410707217938671787338719109781943409126650631140282347314634287181631536137194126103274970430779200510725051240566913844542687927383989321239651838760468969501744897309118800028051548441380460797338488890693939541197435336285340937092091481800972753674137377740316852301889914053847462824849845531350243004368030696867491673030931564093662900603519117106817874097813964855839491362105416502359222161682526866112472312514153526303242978782456894713226111333629140865877248804542766488426503478585028748103787230582453791222405614489787489266381353558516131017332396442292641067687279827148126910491616585442771284319768313192127735324138834063836242760455931692495089980308838374110643674612952748327455684992831403094067577228869606688366419337929881948436052127513315046962403682585735168387638759930901040606709182164606016262905043839543600502766176866931757922662926415613745539967145743458600719165810014301566377684659072791776327414354917204534520267278505529287151962909367865623031812926784504457696385994814251556930432247335295278456313334693212129675505620934082947150736550569949295969943406326236669255290462560808415416986514366593840227961194130091305550614709461172614350484041674040547768434809713785223880047995791959106267776349862782009138825234751504646653211761454747666408097851491778970087111251172447754299365002440819240525780534230541193611552327024747139830678486662489537784152785834013765487575718650435952976461345687154883479700519313124938858336615851112887528589370945207886949216831478757334125038186440820570534780403834110291854391620035002610709239641687278358716544283859182254295864699209223265656872771546894913728294466424592123693959284135419493068872590301006040402544856571202090592826696790517049110962475265754607295494718496246083394992756988613909184640445191396486381272412360867025183585372824313953574564950268812242797865326024772768089439300521275150943557950763272315663492958717165868077206097640415468672965452279783382531447823627174091560065018893244389072078198066497262718023902335588211670498884354261134263211440057556525890664317028645333738862178549291497947022845160557653055914765641669098899216014909968704261627135850421863297344423171711908257709571468762802929262420341776002710973195898425720464211121681342168293592675075782103385417901467093883658185753989312649648367754170891294858231333070706214369523337301291901982814410219250095222956034496516592054839345173766168801681326828108627017932331269354515581126714069277811705094154487283429939805575735118548589946253801659100013933257407261398123387025161043389356128868029052250504751985283295169201681693024385371862075716339150733169494707651869115539318779945849591011071651249287133626604433061007304378423688283499386261452537636153730364564829877159284151145155030059795565642700456546138040573910597701422664223337441322208430634890768973412026169527089948187415853876388114911302837781229443053089230535699081870145195272152183361831973144575281712143013972076918541070608362509124075348965506441649985359344958057582724245264648406339826554880618758017778086432687554553638780762276931452818082741652228862893291157505408870709930761043527360793023046430566507128588083121952498702163996411942609015253577224450177902623788995883376716891300970252786233138982750068166348453044963819640199426811355563743002535516534976830531986786452614604044996844470855842470167232704464821587378386836749836106255763654045705152091204848301271977194902606915842317450709917782605471403781653681283015216065223948181588918515518877828669375004820569306075180023276072710127036392534837479582694135731100922103003925342112206527714361644963846294324229052059974472991063837954441489340536100060025353891459546949477365016842903234741426889236089766138122832975599152843533347547844910625677386535135473727952490562855021747994765285693083608893174540016719042676839836541661602527856845897675214540048238616280250997679432466182942382576967598230719174515154517448301294403004412828955593546861115933947999499102043923285032942316110662915089111684923815890624406378301673134242265726000129707483456150783447167761068447678729462325143169209550356708414248001778666440569967211507093530324527026776089657137677349517745115763523785622648964759773982245840353784254984705358981932271905354752851968585180403509690620339468170795661254352295848719972710785510219468714163001375271326868605543723336925256673946974537316691868035129729261003787666266791695320260712672315470827996255007804010491183002464520814910373020025718838265154353786636151608224225246523085975395477359041119714273469811579824820876133215701239458821113722625987747943682730341794706099677993335850520740389982438050404156867307137479322550398559105049815391917915776029194756219218028661419597383704392934569488467371734041923927439909614144814185699613327854998558474555122082662958916246689209252598190068499095322258197424909672731236750542214026898913359628989628049564361144521809486019778418844721910284679344429291632786745165881980957235862202014616732844515665629452447557093464882774251455026100452042236129994616682703975497335312023502660291740292143888829803704884350102120706196129386811421706067657029404890083104476120992757674616397289395110779429525022752995881900571541730297868167237381121451261708791485205129994798261777440670781070972943807027850689874989100335605659292161829497083902983799004559611297276641537204309580730407501380139064306077057839436785926999784061215887866318419098204666316353103958101816511255759554741646094101617369981539544040712404792017174746866902300462120570727754910816425621366069458829885884576226587316047276351266378132074167793904850390017041428025818333570707121503243874612878904344957981861737397243573922344664358693716684104015031732152766437762333917467794045366491921217206395261903398784463631347100389411514712197636915615565024223824243850122614595024219247706234195400141023954747085746145961180476065459070785828264703935733253225828129744715996339330404168992709443263473361022048984422884157505079499706239490243476310490518119610293053003343709847375821967934188794200748858782799632412094159152959959253087539694629691109610922019162839158846410750749464817430352993587545646712078097048391767166400768586591027942361318472195227848710292599692912185334133776552077816569581322400238856917054168645510089917372344400727552381634528208045216980388131013555025287252899661898084206428121694794920827899333165332287118215972020845463551982961255013174802213073437721511404451539344210313083558126440897410504401897379465895517965918000538753655649829965581399156951287535398274650671419211739145680939715967878792173691305306873385091007786824018847695297210085545350037835883656878757081177605548608150356289306894555806215407429582175165318746607973827821331422436671990189486563541572853988378488533935348401279360649977553086189675864335760700883276539909567301698198918325365076091416337874524517695863015926881246283939068954577470458780787710006284071484217100831718542721468669945880048338628255936315465485457221244757962637015953348845828211077826821127403639739412736275698633574864829856458323022091811205483936187367148041363091987640087554477563992964587311733729849945486460844689249450952129716065572421724414165912774065441997424743702185944682795866523553124645583576382925205695737352391850079630300576368615552221401510562636102018573409081830048299485111656074867130416385011173414126507128799738877736009187586330446192928734533042412609245213824722253694975239336582931592981075834801243217953753020925345763577185397582467892004563342960657452587650710698786841309733046664848378724641614000605846654880237510624518338265139119450749797534371301228975115975450780511047548180463136634387538353780553177092275961984422182007095827983601343280109310186961839259856347565086709351892489708774918587112553717566379671631738332190906041935642211522456682319230283184976190799200795989625235539047405240211038203349067000308512328749539251862252890812211838230238452747134083867717488099708484470027027810718431407469397662882196189281955970089174583897760555148151527972764125023007418211698608560082410084947021933763777243043435351149881190210631816150909867590586270444789762394400352969703124378192681643246013839098382317605667857770014055897323250323898272695009360787427823581654354234842853235000859316695658672163754802154787800095780454927473944720707455232894386114142530759387344591368992415751919789589744058462145622850999208868839620897271630664309551863190384862021977150502760595425726059674805992426127808180617858328478085550665719156646556873376651745633857193014654300404808690061959097366390524565457222026305847267930537636734197704951568816725638876108981142437955242885572305113865563607404911704935325619156458216444754093552889118071528322388109940997820159371235696669546162473167189685779421360706488963357558340748715261932773038727592358188728633837087703731071759515074637342516339072238542634490433980129819816625767089000292594263925873269350322759868124896744407384861699579192542541096563977017481169194491623273133349080454962000655350309975122793660932124889134270755254224534882077487098132639799997283280238456706040976127577787598685276604709522671488030364648217335217804355594619408119306372956129421263720411515654986648072848142074772498559079728360877747611095323218890686226316337306626419264681651048307799060045255108777172360354684362603497641639168200464143998548876133121585764291494590408076393017719814114900538580028662401015593267344901020321629159026970281278730542226566682635644845329931825436948572875250045045409390910097019880501986947267780500612400791767859032740227353605586903571462455406393440053783926439242476987394116480662626488952440141077550854821829402813214685455441728767787641743743189559436667428884978694698359187564345769441748023073784929148235125048375545893682928432576899610210590270198409564687247247018016797287978558167811747525749339498321868627514875258321922708936648053481966720908309597145144127160887563960161035108013792168774280670841571059100095072857900661051068820410865183237099392788335128399767947423671307448330119974685448935691907093624700281725932509033167732331907143013661848987979719884701515993522517578227551142740452017959493963808180684346976718949673528601708670066559935018302399136240679918163746054722791363845890482673247929276040634119196958115032438810826290723228319780294832995561168484388893082281948607286238256384233645303935847880340111984870893165847240192543528204049211202304372246417345340187617499872804766945213540030835131656747868129275322944681796512878985719888298473913589060935875142374994563358143226799687122732798777707731375356073509170132458804098705154035560556012290524294512149334605472012911430367537501509796823965370340080766115044863197851635600015054067980089309899200517675299322014136942975508367927799272600969806329502315547989859799062810426540582286195322147484242413636934203759342910810091322743363485945798552794178600529332820303757324437882989077213891037174184882503791219339438254996298810424209301072539718913513496042951369625906563011634992140992931679294790484063394545301842911542636281909999790319161592836324300617388716603050864219298360087215021082044609307148809195414137487458415948114361348371552208933684988418325410701595849828302335397273117904782353945017191479794534958960710707243023946376568530368337626738080403795369546182087332572988035709063749305477162204403270100397766911442981575317479251320993354577898576435033965156403372906383611644303232921261656381980269139362768270868446158391609899410823905625671603918834075674347531199327915099495337729282044881745721465224840764129189050061715818886962078935586332415092184366287614698144713103893255123474126824633701138720219893396282560730655672209819793998148341816609514303451302520388774622692294310789553091653838703261296528696061312215891082712229697878765420843607607039032103214377974164187358247562958338799977524317743405601364791665965443676664590402196843296202172260766830317359989855267413098887034007058300801598383383007335365661815197276424936718511437464887628888364407987457147076916135787178542149263405506926174021915590858417999848776495583607163402678202022779820715526376849857128281974135628474057585188991459667951706072302863407431993589839372460597196343242168319725259901014758481425219728761930371974497049138719642424884850137443116596226289085225061444874217612992601511586888710289143782684764478288252164763182143888326495714339307824945786093119236480919229708584134262325550129531494338645570547207303196021078608069491665346973274717334519356485544898717412489053597829424956103194462873470053706148969401496447719072621159338717301173398623575352679672780643250286717104519547144782971209167730784434396273277076590137926447948804176312225817390413975532848808600976284731458336698669227849982621450422659911545574085945665270637538065326261917834083021965655257583954471433177385391740780526350044002172450060748115248446492033999342767275459524180461703174092586568642809213923790958668710198410154165659993980835909449772951291874372054585414200459677828657437216086630416777598569128115526837870020447748800655883232583135238751837043772374324362512302247853405945181983925956829110429965302514021534776203565380253580661673219825401743994824293028102611310323501679227014485981615562005953519764520755020836548439697586815400436734414636324147350196190539110240713863031030074876898307875302194336330665243846683675988623324707578205850993994906194614992157181771491358239150951514492749242968464946421498312570712334430615230509074159107824620914089395864464536976805846018028941253650932753734095253030605469175208957770327363005131392968617823076858671482040837376305921973816123238980348244072318080083182048968555042290870459508802063902367235723156549662366493507117700864239489917698742821236094846420091968535697430787020687192542085480778221414677832713548402508668539240463752387793005726263269118770392828209903909010241242694663156317229487120107838203639402485886569403752238646342587512708692106972427566126605087866616711392075371849676222158712317390430354148931676574214460894299108455050422633658856033601751561189027402597007096997482196296410203783095421317031400795376290285987558221431672051984814951050053084260741532132993087897009532448225876693649153299536872820934146792861339611738966621607503599266753341683925075637073786014807868112594046910948010580099745195515477990774642301729247246259907889773288278601032315414824628612950069898579800183362892123005872798468913870266751204466260271208889928129628030453551047591339413923878717079945825373167874541922290852854465460814167703684957778057397825262423426520443426742475000081826801691470648192650187203627849457246816805209785976224832446021916998636415510277627483020900567923956187131144471430775755188510058864130104978795073754676906091271141449291897094757537368198859897507267416226653420686064999243969484921767486956956524237127871062969367045849205507746210819693512972507759641619606454120294472999358242636773900456309912214631947408632618948853512854751703605376354221682263283729764194560655587030175919322841440609692114051797745541652982566670321766078674609066021257937318913789187743965282143051143946499855943500642123236858445467459710673373910212064151452977762793168065071852217498760390903228825218352348278533618423992844969975111639353086088372356545157335753801290074159198139526850579952447547473016208158350040940103940860321529954558156464819787450334333179442171682142633861846292371351327550621448537316563890206760646390909146166482996962229801430286020419548563261263736208082594606947800587972071981806435721035228690829550735244097869549497225352111023365002186122957432136548921002346387430063670500523222471706970935648072591478643477793246138895284737049165155569712445055688686076061793587954392291542461657891609337727087806838302002899365645252936026189247750931790292404421848589051619353313323329190506456122604566208745664023022856735357825605504877927758865006416001641492903415620787107759172110662719259564469096086395874304367598472993931096968833915373940149739855456942961648041554960126997882430309640872681815011705098459923388180951967871448690733466203656566417495990385162411225182383514751463219609287401168984638195278301864892887774103610052644960666689625633068668856292953331152935913573946361950373409286768173725125086498455286532713088516864941510689693938268994621446810047208726491882579477594734893897770962147085205792121150149738217366288469144306104497115951381411225639929236907356522801027414130595694651070603595120806223171896261951306776172938386501401270576218613134888430606797840473683832485304445252074641050548328617449650443264723893196347395977475973588451703535482171335784015498206865147308711350334255940926501607173549801488027810879096099780844528665995291921323082166296530692831192436601420363216451113732606846171682608046176818418513979583017606164627398353331312374499853497874386874086624866780527265936272124721275574063212142019918526296615285408158045963015913169952308786136358335057306359409957127176834595187593909130904499526661301962291425809565015154216226027806653297177179456391042875565250995583529741170324125193920209794943685464415762062469639965756591104268816156170039403064208936102945201753627458044386513539226533409196243265226310630600954850518788133432227272370257267010144087721329994887780851696451093807958065224460075958634522903448200490650305089144705965544913433982276618700483180694354828760457343971317266198783769580650803439961775179881915698225432710305297943007715507452525196878940477585712733231741280453492554422232386933844005906329355872479017132813505840273417356219923168788260048062850532117984763523332693222820128275484270147676262067541582322215849435656940126559792967903082240792556606674350608021709724771913712896705159259734047151749844921855767680502298877328378117834999719489435272991706234309717164289973425360319760028863824607981835313118714174722774614398713199309837726450123334328270376586610699210941533853633645352583183003706320585143998516773868702137581192114707395863707088757097927490704001272752197134942812198845114964460992796273269673710083395705239030410670163470701880575053322383453307170107907463743930215050169539995586538691786718365315505430019844042300803011671553397939157010172642667742541096055288956098814348554721541229992714160565980809974589463999332981848124688835824352510950483491740337109586463114190205412718934576655790988714873590783807582449149596317085629400406304370636328234355758546695775645255650726145168347929784527298986526121946367666769545461649904585114105944010442752336034893865328597373122838657853579784696878848011598577632177572427496372115656954371202808919127637785023650904124995681344946538745511886576161955066866285754501702665030365443264341206641213180874382943372258075472205379214631246781592278873658913417682610071406564217953731037184384559643683867732725411569167506048640297861307548650576882753820229179491523357484188478757544651418799211940335986833481749532641310038282521165205862557868690753427061740665431248744618870802563484328573993025765912301217449081407587767145363926963418229184386581731688219204461246451035918832640667640493680870340143329915397542405127712040213138495549966469511435561568313211846268931970607185409428762729194138597677261924542549100393679129230484783798097465011886348296532802155611644147009676351250620453880704158739219595623126504376544051116740604507253656487994760529356359269684156806273569127599007818487086818142164876179642415631882917524133504851035958513455400394967611041123726362844893955551066874581370184280781129033561860373431570612033566532905482394838466706844048315845415026352807495375984791021623861536225228049530445361197002753940818523919457005135703320588182783935101520618955771947655313960475664323473424719092514689054467324006726658249131378295278139514197956277828680087144702499709306020777456154274229023036798961745600202447985266079273448075756951199762989687803751895349267316655404942575212995630530098060168283582794107080576495747312017383054869658770380410322871643187847257575214871362157645551206563376524192508283777679916721334070245548177785050639828669242333838891412760640141724245096071235940622517674051673491398733363073980493192958206991168316913431995044932305767796233377602090212603131436158947336473120946042217949235640946166086394300906544143919347142460268274044321762909792435703615876209928401296072478683346134586749673115039395969491572511217293259955010024225737204755159079084865889064016271403683629247288658641334646215708750377940626475726295713199205192925706809422487263034175036696538736615339344683375657979583484632180183115047183524183588574385646677715615156523995080504187304389796065219619473019922757677022901789502655241009445940759807255998038276273880418997383769684182255874611381723043468575416495483345242751214280527287918525957775450509597188877464729128835336305512259998905379474720277736027733023864680137198039604116664147670349065172943885605444226808912999604337821649931028850164003890860173978808188475587805576377447048411890203856195395674383713724197704192178255234375019165825699400302954488023496641630213688263976614204631781532220125660724432914665568361637255363900576107368576973165125036678796711990226131352020554699798251681113983340558148761922192653060970081416492040548155259770349287719144348502074386516380225566084985807274633422303723193522734623309961507118132769081110061103973725757963519333264144520177903382412867124497666955024994627672863948927304864955639928619960653373891297258287557516948976468985837287385982037454261481577752693860418103164090554148580169594988555730607686650501297355454305070693470170639058206715936904467955878205899447754148103715793169289518412461198913116145203960067445289264415705020831317734825468768626055475196517407927487450671026334732339216600548869517815433291652242252694659871324861673337254232447879615247231870791967984707378083754602257887019932757706677166604242613256504960128071304741087485739040160676087817462722001822811850120261308439238107895447138245761954731019303099634216384136370071365198807859158765824717778993366363797839723429746032493693210847649712410252586730283751596014516773262821934253921446006618251903080375641398308334502833698069278830211787010605549291786920150499977195925171238099527898980101184438802702419781418281451230630969014733176460035649553127995486431244851022294103782426041315442922328703890728487144125937378626691925992478541538142289929673602439443802665281950239917334807568675730674817047990179900278684661051417221030805864462612802002323995817917783431988362243342406262195172370868976142868295693848729731214450928018655303182360951239020676115991705000959579777437357052618483223743153991949669170222158155115606751265934970216622065642491349534753088644126220705617235262105705888561947914235995710918631053771761904268479178996401756443568402900260468015233076217284225782256334362829755855109498317421513946469734467262646677976532456813481252763198559411088119385391520593602273411368874552402734272430268007373716367438819065459640915062518890462204370598525907281445908179872052789869423706727077125902186352675490657127751772356237985382821184128688158167618140670743504116037208768599121294946873105195290851613615515086990109612930614530285447807815607723628258885627247027421966547569259609804371096019119867808751475571671447266460527302420083023670255156044639469085042384132039421008318922239796986736735166797593290217865514138941847140115909601017379416077620970424821276086680766933770852017665873507244994049951036361352570554507430732730663063396913290231677700977135483804089249748184059873732145339653746521871625561539998812851008690547582071386067086938884022370727075359705429392213139657058647555690002702328705708188265963412171936281466541489795440944859939459084225929292462254373251218812616818459575820456954032070195809302396103286565519889391948677873270478161995546212946190922152448659060246459123643506793604508678157105040186720219853124822135888941121008182195119209307685919673935368657076133963573951386493590550487094864700811097541801352746783131190165667999364594500184357676239190201007739287092143649042563918029128458029919652373528664292278513497326792953254485059436973247118074064843651909895835084810584598410614502605032176402422101301922378038924818376338146791739664267967182809832882573320334611890505235022540958179463751571261180012258562492591799255922003070523953202590973722799654890176868510571668661449105311320861224891599462192271136417859113187885619105893265986540842469144697975564778808756764101747403347724955346416975588505419936865010453073660456569224735455549195628498071482754605460516686614945679548837443152172524905083064319653972828790852809747475125945525161414143059212497256510694691593906651433895005789091837942051544130591232594615297479341557186941055346489413692763571681375249934792506585086710183432902051681805234409141552646716938493126150991105640849756953265571364454804128620244697615893797364542072516738872432775971324721126647669615320326403475419321210516291917368772225132598357613092686810780022441099244880561893772561982075551060745756466527853088685995098531731646770363413217398156110905626265223229734706112307077211980125843351419202869393468765135216532241207418440818977475725754096657180802176417292341317436623042065933773712180957749327587461557723923195501974988674580061294884136540581465103661609477066979539850768357595285380887194950456453679271943176962232908753317487472675863466245717053953812124585984885434607442165965095741802521085291960887347759824107776861724150613805031179579978414550605775292641356256722274405479563751578862612887803095078137094201381130451070754697621854953327687290109863651775926369209120587036493387251052353737147467224902334024059253864078555561543865609093280944859472465239271763326697773890988200032648656680696578066444622185850041740218407164095754940997400007571890177600975522309654920769110271409422236815562882315736934986634655162916583450790475138120683403616659873654315190868709326833228565393010588954214555153877088162339996240566098355667574072409136492137166157707269710165021858970448185701637433477873186552322112320641208415080993276100764349024185275597829822045550773961140325970620460022905412419992242371254411234753809303984840720500794110402584316901263014253153990554419184825063996145395115272169244205276457706306397425067680675173973668558463469330585148359560597872588500671245084650602051891835654941525016978013669653050998492424315781493297996960853778773712406089054799289747830022848594757999978977623516556631442986029205995088258118207553934314296876704724275007317525433386599217407798655089837311314148475403211891396975730331546284736842374962700755337423422982700445012487781295013325922115612139962962512816238915897577330362790248813266966366289548142206057555223523789064825251435940350676162364407736181871794387647173484549331049337841922352823000804227508700228271285818361686906379861618814480875427238799775953789066215092283027751779962711303358977219933369624355270027409848610436317958451705460839612932246040004651280109781792396516031247994522812774759972461196416448339928699375361702987682005366911356052304243520568443045369351646009309584430784722255280367753758521955042741404375911969492514981353352051225574720547983615833182641051347946674214009510440522863416323885680949251846643126887986379821029456082980524622496583197246836078179014283476925838625000597777623642503752957788903690196971065989678940087216193362707818777390317917582892546806619312928710041252379425723860565574621064091509320850984980195632139331084787444477894609321601515732955705185352947270682222326912475641118060265173977556282077620218920303930404126740590814835621785871427470889889516659869802466447963813602572733399433952633776361162080626519958506484125684894285836172963683464168125588799701722155083939105660513854182577621160402603016749027956310663117910606513241940829423511785226516796053685975157235556791579893193295802897763686480124350538733125822500733123131116741847830590213919623783800148571614659812118156578607384957419956172710707255502230489318845329711563290276802045430028710715151855416908323562093269455968063567779533935508554807513159076150806155244627870165783123024969722735640731673266115461767835473826897819158688917613897546270032004198749725134942027273719758790560740222410767348622101121751908943776047528182703580177027298216206074536328862107061381730403952510682890518654257761381818000947405935100195537973305051685282911699121158531015857742175963121805748343674693203673050316563124301333847679202635714993440826802716478679986623661742169690344932788844536072814318636059744008456353173845668582658338251078919659057066802753267811145697765016204669665187007913604579849752578712828510720174215840093432915569394860999851635348751240672520562732013549327975353439306108984193643107178308625677168411420977023980655908925429935970817075054867905192098431337548402923158250054801993591273664194834163095494124504201599016223642659778711921139043543129168233002418996941327866555753596317383796545161248976078953348750979420047045087890506425630331969289045997196471231420113370269350304539871354963987837615685787879430307540348357751470571209814230152795673449903030213846306555098947055460259433468254821476298199170294395414088233692634111520561388628772139899077019429840209071806526762741422774375812069148860881685106302648923209072610747749698304821159119650082104231374661655162975949119052868795647373919994017366121616148758943281237534047007118033552749521334511277398781860049145491217575591605948487923841662968017660819889081330980136659933767062635271059264961323197625740042849364795542513017352685088408873193822769925074240078639683263501691681092190210272117704625132578770817526795653967783538990844882013975091054311681974884278112833733090044222981544318498841063275237550634495714989492218349740772251252180370402425113939926409019059165098368924072804787705585434563514523076075027124783426853939945402396593485132167843630882027382259865342832084836632798630546089581351168799878483556143192943267425521077037850714663645851090946100330761649373008405834835726181772963185117090544972566474780298821477332490137564357183964399714093598795841959152072862030769012245324991551446415211862502661480332113009176694018276991788548812760488295026157253429261389909208170331191109114089066282320605480085892245922463215461972110419930517300729270666071344503502367326833435889095386071399773249890529414687177593125550992213773876826233027169673635630350253572141393180465070187333656538489998272450607316518943947521278011107764793124835375715832839096388035047221610312882174660614663162224870616584477322084551094907891587943932461718296071984319027816821368782526691184855750735216781944829022931023405008247608358188116143072619053887659499661929226953989201800846452044873940175775252912671396074898966117371917187288667346426838701777917478317652438070597775970830816047843833894911159416045628490879132639190516706633970905854967361354701052197060706335951769383045355029015329697274225297939685222002877166745713888316757671205649045438553500907899563582507674050091421529298985085197491578644885100650351199936178567959888203170428072636382105672790464222337028522781779340253986384901250629030901747105561468299840590040611653082034973123137773867247084386665552811861800806385173086044468906713106551839771220023288381418863595475734036190000742178545232276128306783875184155217081527095379582642892133172509063940967935827994741490191533454338425101733815866573302239894653081290862522874789915985188367891928803683390687854801467233437311924408442965022146418918745542719140214197238620394564437330338068003406329342007961040873021153186291124494471928230263476691375931969675372336406670589826379761793579777489464266818013346811837565775381584323078421455833820104489080128666506570104168857268290604198074281657883963479692689400517521706219444165579561651424877954631602566954556011980239264084541304802312920837028651873317300262516329654790754586815900216234925184336360465273082204372818310855342885703306447042323230929376191619617402308548435789088410368156376730178990851181817670923229545015412366072264628773093509350157683543786363649893458986247681023887010362055803836182365347448719272633640532472321944379508787673410303686448257416287215056826066761908885117019616283292130387861823715654303522820438389051990978052893142568889363103172844158158292392329131312514973379356563099693132874169892754165024808071140623719670643927846436653813073808712322000891587413637575473380305123425789602025642021769272173476063259219628148012961569770697809220012109805614189859026577619163452054257131222253657651340546001883660744263682134164066765080312947730876222291044661711085778432971215565180979340300273901861707538384850686929301084941833553480903703139201672033795698387096437302761104421297381484176908445511311889852554208505571913530386002592960924761889795730261370476437415228649333874786239947922003438494254871487605737736621336369570255647267874652614705791455835768071069482792226516473410090042412946292455209677703926469309665895837767458617672729618786211993878747428044866215435110937904573824453509028687468165035964114376859580132159276161631221473367833226864063373497017340967055593260248187190753936490594301090672875046496089589231897580723292905218478694190845612364415283099137438041212054498352322533936164078811223019858703449290255533156009028434373869645119996992336562770921337623708088423851625236785493044244693442838648647709564026831049715608793664211644344121302972485293749048616601239420155776976416239469707498895792027797755811329431055901633579720765920384068643069579504589319446099592141685081042483918928412040678504773831258470179419819191196551131372884224157077153849888649878711553004196205431390007362763999639693230972850628541862658440144884492064991554406856993468829710366872381468481267213084577340866409895703759227749304016254462404292087093329095239430151296153433814309696848046545113208269084334659443154497379599167365300005469480173891416468265128973083880686358352720719969794716696941277083483387349248573081010560612769863006057071747304741900369986439130837889131442921487989026035142166753410162599673985511527657912429270379731192807779275617409083243782042835984006402889417423400517019896849000243163853193992053227866158944337475942805850219340721586460020638907677796252078755702388189946290504734174047168743701511454352434413348797416930616347116397594210026617908548542186018441231212689398120853670225651122197618747779382676361527888963102179117355917188646145629053777169834801467200718220132180956341985175981076256885293906780642540575727630957949055178107191246114282035598023774471232119941165969883725311766424009955261427566226037560847586021309131755178697998965896647033013781672852072403519123185944567267807569912387919719485059030950617476843791120832910295053360459984439726868986430216348466840934757894765415269305947810888053557874878256212528904934459772553166185313907988755471984939086406055733719481410164249112779003463424305264104141323316566248102975310095768389994449031949145041344979200992949114768500379603174971632730221252725589729535927870380557261529863750901972218435052614475326913937531357435738127410481514938964076522959409121481296203731646370482841876159813233973696369507643124331397976513068837936691085018063626572273100186919486922079843395027109851247781899560596617750919103854997341845922057364727032438673256098497585989570240227642304263001404680103528291129326541088024763932227422195354165061314566583151899290895721510672670030974389829607100586244439217692881794727766363638157472726697587979435372544107860754622387619692899745914156855710209041598224683078831233562800839459682248682250218318542252533570375141567475833155835918424369687866361388301786234673694674839454803560889458851038906968037987595377321002181818659065187158863878286125053182493971702324352571159901857657953911708205879837371225419347312416813889017620504354716908798417167556234482280129089212796331348719689199597615430246588168902591229597114056236351740269407209691788131837538281473150000900063224557524594216371912727958032615946983310639728062205887105882293911015636893729964929902585235076033801502615043427979867692597403110099297761787874027787499209536780059258109705164042665867252081070237878953561247279430021888119580149283174120250194337202970832185111477889973780544310881736728288976411800935573851962684929088105642415151170134320460229444071677164679943621324072392368975827890287207307405636023914418048252485537021894608995984376935512218948842469720620398558082459016748496843276675292133072490379750227804711013454903046560564256179077439708096806410939327091328412552080457992629389275891427805644157000613612936042733937377788537114643803006166417005783595013869548077541742037677664682757615291082692528766057075729852183467972293736839479847822187947627760427192473127893291371014100448893188753998589155752295899371522557972372536309545648249411736213176737026202884855712695033197830770240232986275423455870287180544524860452778049418125134477357402783596846224653947618942505326041448686482513696653772429159225613082328392672628217299941012382295830369362998505100644715789593402883538217291937940349545609050722977360507880378125201242087119701864739278106536617309338068099618484114619825863051391192636294810661363712045887364181017493489671925583048490016642812649319937328304224574020773495064846603640676138243872421041192168785811189150253032580637183256742520292891136303911363897862778325908169770731059838780929650954419492163693068667816025936146618295488564372070056985306450918803489274831028282167286949333994036258861203761437443732466345662487923856600064415779409209435551057813250757726543556031374151497206046926880568661845516944432836301001510975845182926348103289970701674430405822139658841720385353407883511243148807302786536918845391205714682860856994460967792312880866490516159164214897604716352425080996594458630721124208269820619740023145305264687894802468691295646475350283623937281967365910343468823593585616440328959871755147967090069246005306471954300169332605072848931137229894309933852407666923174016655552894471940053832356902152005512106695150747232989408326101217504715617158390022334288835517674595654264905189857384317873496123629469448432309171625478569583581813025646719379953463358036734855540120162615666512281689182957360792595823445560698699730137664873245781333111434812527725264524587252120877741092263825996221233911294213357663250891240387710428795565567349531958571718914147969780509429913398459670221671308247885946001470181402531512380146180905151680693610368854222045627357781212558530207968977094648593191463016606095805330816639638538345076874503577648158985000094878688410662393771684833132761200479105234026416712148853303092070518682755690870166128807281989416015864820581605858164433024867130303805293872427872034972014527408967791157328963226085769215303662706084710343674696017073164799829585026542862434655536620604453118192099622971481638806856071216508191823811779981282894933561750043336257286662789100642224228710232285532916046316478280925468155721951722111788428986907227274864998804690577720604508006078301888649482799196133099721105486847286237327861438898096574717905350322655493341376996940974938154148186980841427262255646279088702761096215670839796627395574834700382246869669858708615815995025199746539068301952010017094256893172133938282170390525439978067317975424578780682854679342599662139206312241674283909670312161465004380317217754465513243690271377519073576919091092355928791626426527235158770235147783003654143402478508013337337451902261219460883661278202943480915558696484993040055162595431881540359664653969923701670205084335521814989978242620745976421598870984593300481121599831960897366339696331984717165487277812702314469260704780515390034053488539177024894404153066908044074804632863812287247630834181547147864699257198859017786982538308219095937151887252033381974371403952299018986923173678876816379591899367986894000641562709921328940737386301366243078228546761090423338095321403080824949491093396889219405665914221317151458147665659095008308078644225383514207822053907661956540919812981352532107680354955141777095554333598699679822929020163049314915282366402939495688485985942337645588318695471350668695050221666750984716935990920230235263593300313600993694731832054037948441343414714297612328083870118523144049570653593804848602090969317754533984955148072611321442414574535185362131115766933077695887385228580364094602499177423130522541068080596116857518619409674306429573463617993380369579478539814242994628913237394352683171680395721864557456652822067188450027083924798676640702184966900857084815227450398794723802098579812572559554357124032104119023346272552137731942744304504573344647997328974097924598077665308876151756055373531612691285923588215480852099190240817324806480022941065206805701024261464866638216161682299050764915824543909896478648251267888646946843961751417899775773308153515803430582326122150729012056244776416413388660060548486556083594808069596328701385067467998199486308868915417546589372495346812726668296274389046845528720226503009309825299407052476035855761693825477745667908376409687710504498661459694857897096988308985812147016307316167082310139408819942860318409819592900069502213270921692824395421364254104727983745874124435518731602506932254819630102603769245691261468634807829237580623237461135573924177107543185251287950368456163157072255203000231901338569053003755394383435495735386561740835052336414326135364160185996144431831096734961429064331963348532621623116844504204270372131607000713781682908674780724212565408921282327938497019801371519084724077346538389638444014743910535463067590150954798778109940791148266666668653096793587728165093907040707789470194793461081300658875023099007024834703535440957617740065467755612526862291863492022789817071004119788258061078916887134047800745365363381177761218788440064723990018745156393802342803694070842820335833701226249889501334950739518674083435637165267492593273603359538323931691465020266361221941335262078637593362783835280014096721315865598162597038581881531042022745487789420984589199447663477918748085363909369633169830018148295352521325997731315477919785532023849336272271211366743897646035755165807432194893414204234695882404309997975108855894187992861514837203500990431777741155835930988124768403850287241903685892534274050379334689724845814630384942382736469803557173241647726446422785092264020115690684384755160996418548599195419655353641512240710764905765322570831156022966258025737838158768717376835040285607148446412642900701581404369052548553898898928973338877633560924955855698132119627585501788535406334362132045206318873076440617203155658330724194694646196677307595862514376720319984394048089729008923362028548670690851606072594091056885645696883302874470456137563104741619882251913087940700632348481212852189198222387694142312156802103615360967048553486094753199052157543227778427632282568394578617618312409014738769930996932213521920222349708525061416943736990278858520925630184339162812810493576179009357597915689391162145022727033265364005513591558705287864420920451318914765330465203268192823183143378596853061457634131968231290584655843031711933306011660228064886901593526704939009233548463800367966243601237321038010259824531111491563512462468709476981727882528194723623959496895949915008760058284829920636529615409749258219229090003691326095612993721451141414251138560004259302386933544923757489442085575441193330891381368577636102216888671499888231714846560795661519880050281592104067738746414936293929767232953335655913822875050307760130791687513807648098660518349469503839580243164260241427919281179846164615158582153426142771458191666638352832287470375597704325420533882791632781347861817332608862440654567990254475387086015390043644022368396555781877571596891697944618085551137782230730887580775561817647963133899338017184824626213894157880358766539434107612303244984800358039162475118791034838001556848488616286194981865014143856052962468202852748915213553775786149079156868309049316037564238735743795158636595170557140312201152297803564604733361198371140256320225244282051620868578315410060038881860302586946631288858150462770704697393016579532026380108710499749292526262251862552973678806801065981527853032777710750073630593390332647256216309110049233649731457750133827906314381214629479362118388598968253605965709883519989235904045559955493234581356535964216783644607224033426413430808838622313954358264302851800672404877476730703464324128129298062790183096433460043600998426104815488012052193009079124629235473293356880240755768504127820632180166981457146137381978229708352001754700725289824392025780948548764551245543275498887522909346258837446162954046144974242630218957302088829148172188697212615194334777268797523069212781347618044644407748508502245914700184130007979578003967708493510852383160500059533996696935869901457921599379003989027118528442386684173501516937061526227475282131944714630798962932980203077506917049028242832615500415295445423388868469471782275977155197310772147872449389523630277084365614168892144173447583672611856964537606790591073182412572195870158534916425616005191880869801865148262653188975793500987364338526506527066549053654953710709598388647482406059296808247500319456038697238515283774994077088085691113872643591661417381435967022873102929523935898220744654611972353869651590965982423866663808354988888131626309334116313899363730970833836977567695251575790768625977524156518078950362280092862393501572717354029480485140567379637706103758152458009459290573798086371390591253500131166856180515370905249486354343549622732079699541015133898238406020108554999506238262145067253903353147449323157798651179479998758077720239017982007963044186574787804576687304190806742800952858863859017208062479022343284137721548162481994135814052115265651026659943409511389876259346927720610367213921431406653267494342179043807740953471427444769998400049415720277063616206131768138810712274027249929097700631167206634849016821937414881113741972640849382846850810066840483375911053054860430424231412088793627787644872934630723444398636599551893958216633097694541993267644482621617007763534580356597329981112267999236387566149492057417490494635395519480630565901319088352467931476543965749678235748229508051624287578048047276448573910860867610076134643347017381237408883392279481137774929367359837554152505901148225698112055530749419106444555162812383559880165164391374540265573424798203573272272459780928280189718669931876693047313046517960459390757046470090462948178231436603318353853436720211084712918064795189353557412400452165555626733701519330327044361137897229155303293277273265520141711077079671542288776332873786401947970616972301274137656966258217133898190876931681533007462019418537117773630343776066319058919219227758334052280005877381941910256604225940206199512064995384526616525086189398598793903960256087270028275873580013085224798052157867595600504485103892070245169994956508608796939254843400234433475150842237287815847738912044422801623798536733324523383998550529019767019967879682136283384055595391880680122733364092476761677451612886722493290982977452255880130442152571584154366546908963174941706095119296319071574862675434199177073799972748400716708549301065667352294105171655941844165976452799486863042757997528389604335332861459514421557965099624986868789954443072535111281056936798303834344772331672297259693640494846231510634485128262482792649108613170774870825423027832403793684567663491258229115457934478653054889522422580137990974492156160242925379937089943581652375135152614327167484334272488600684164916751098007938556390856800817601524424530549930495506098592217485412589627279726581841984563756153381659939022915948962706887270195070410983967957765439377365677070937533545999630077017712614345265227014856739960069151010929154501609852147120263940779655742493880607897331485831998417314625746044557143683687825452252447866093935638546781967558573806048790133972941168703860625826241040692806356554153549885910012371335329564385972436155833304477411872911471881768840810429450847914942398848152825141745040961401431205462491078569239143373610591645104937633615421954607104657134737144330983397045729609040818158193766665137452951884081284222891274995313504976611124215548464386351233080078809612654910824064850599940558212554029020570496994551509819132956194341627911847122308863619566728647164441954289317162396347068665875930676713325034736802251332072679544253509986926683004610129738246571871051206995611940802392606997376053324572219790921124703336197877034538144856813784163390589869721004349163504944669200085559329786422737817091547908685676837125726674834649085927380126160128532501207513957443088756181876668080406875194860379721824715976351081041240452359862430847785902226425958940786011448774604777906072794382105849109973918498820261253550648116727154831699795569672234259447619659354858005651241695444738526913650489315816093343531943340204370332902151004965611874023252714511672016890975591323438479299429121330993407980135742981856783717891634996676997937186596188904764378456623272327631146963983913614425156942419603971803251906604440849345594430253269739783577785066150612611818267937932834888086845885732082486817626893184985972937317992134103024066738603488897026576043194628010594968059778565892581350349502034945673794501072911915196795437645575641788328164100553129832777264042140574608741410945153844781884529077479002761553833457360342625898679014301034409120953932909099899066364282674480028308305721388774991167333054320500006246020460095948123572869362055826569714100959147397248165947025108520446730445069061330147041461604999516100160921909816678090939475206539749010652883704086198822561922963470632443415919145267685204722486884203202135228463155347038201775422075926878934886888116421131551483866131682657291007963875448832101775745747546005034284162633580359177877840129309286187998403260749099790880141234632525308574200122103688399513813443012660967324830189996832275819024674957089556654189484620843665405852551114436113769793579041619762216937334526808089607732448166889326484205420755211470494034390473235580400346508725830537293686210009397028674602778678557754470871451452026733217516464061723371210104383918091621127159588791156930666732201625100663978357950289008869477626375832915351398244009265394154265200602274531370517988585301643971100080445643771823806844360479002772468295558732694467941962338551210899906015555675072556268706890315719284882265891984508244681175186163547184006685702846528002690052300691338974809347560016158625361300037925396953834110050169584614642518558235102455249010184006419863275414591132411770913224797658785801474772593893187474706008508871218028224773375108553368502072060720730959160502641032768651504596231163377445179621633896190140800002826190187317129835743244575915539092034863015259001954551480860315750403096919430808246681263720088049833135760735932765783484410907048588258471423535449376396361130071596650899411173355883071301922187109115029056860651046164121001280894052395388840129197528878173117922839677731631642380141569198086288306857736585440504539176954911511867753763515687061677961188697695896249139791492493234461974035309122450181577497992201193764636860073680570342330884157890692121724911997213857563053998343836539952873971834072216995159506289704877436137850113941941584835782824318972478267944714760162501808835075131040376308621523810161309286834551358990725125304187320003490223731208784004257104257322011663769676639424741475608184865743952044122189691648455360159929039031895614713259628678871778125979182285541386967752421581195099741961577030488891331453850439396428485818005295558883572452177312983057455081190100567369268413725910817051228645762339518978317824701814793152619693227612419642243545841472816849320462203824515988706637168723439028869025548472497240252975380498301741653706195088284307285322764547801824637534103309165904149921979569739655207070692672744137888706050351268101140703239784792752122701659370183703498917678258541737907424108866807957474601405083561394494417750034849272932094876716192417454696940341766035773495792301278049119411808635327700927653530520779600383639446527715000218062740572468815627853453951694850002978655550795751230739178728209463063291927357812566177071299581233316889063415919672382749279093138168182981755297310617355821076994370316488103362180880371853368717337722710200280874653294926748204915135322957635620094928148808596266368028962828502116280049623624729797722033889193196061536386344747392346228435953976722691190974987451259353341178612344357271962063434805553860366484245716436643509199312356996913887825767427894316068063648419834454137344470079703170188214279213143175405534871027337802226076777769258061376883201311479838046964061908010078089158838284943216273682898900137831301233537654674458217167378947590513704225854933384468939793607112667951945180493242674346573549318163742997865896372149407988187316277794274929684438843700704267276203756403070396740566053513894159738422774570972734006998864411577509467680666452878224519884246725873387554452562942672772753740900484081030003152750402968989860011091580289711411866046472014493465878508819005003082370697974121207381267955892462155947064422501374119496594353011039135691063438863765271272719115659824905507018609166555558671430198411045197667687940253953888399444675512612996121646477449536456405563421624327608315048009635601727409184823735993113908347902427981304120765520273308857376983750634194652070830139588250777939450252189253851052140848747603654347502027339049155533139138827624301665498428755040571536628025490295408463816278589828136314056931017607326507468564091918708211241251131090715761517725963387227970633883002327059825695062095706824694516749501070017803100063651348128136681658537111200014382853155687143892722484621942692595628193285181319589557669208955314296504543225944951070856356281389946634765008892633299343869618180980978578390527389640012573134579785583722081101269066066077416050793421713000800876991218922468972004667222082455456163474895581891773971090557869340442955935762156133478353835347518972798768846873993575790045662325056481878121982287480592908627051932838904079866584811470424227690230908071172235597593159202806047121211482459836966956939410535281741694488821221576429386171485377375592200641005555832869948990620150574521343279572148421581490988943473683761284022552345021667509196552626316746587619578427334933737056986620002834388216724115488877349387484588194945197814214807484022343137656331106236915732802306037624121236411540080172710031330471329620752323525672527018312134598834470172435513854755971677148558119407618506821600034042333444894489016353161616113520994451878353421578171695960096006950525599982675777360667794902910086620214018854886356472583237847942087546166023293993385099244114207886775329011930077064152065079683563134612011735928048715171227574765969289977894267665029447002443057543452038025671197822994303974064226038931220400731402868099486803559726518045603519423695984489504417013533313031461128508721615986477189764619749105215322220399945011141634020833018402428507103869915195110873948269449550090369378746374260968982827525857644114562595737443614500061322486630846173551892151120342554659274042834320712027134391822506712183936511222563207142829793279573583822466784401443177057795378822477562744298465152509671919472791214275494629772786639083700293731183619302654660430479722257916644411499712603556766936211892507684053959738158102113257364832937696259610498269928207101351074559189672039816311316165261596466761517484045070717823261621924519325021460541108584174651011893482487754126958882534644191002816115053099553029379885587750845385149171115692374248140885208790579634454667891970896054751910346783358139189357738734095108463940008921814300625462759267631901633119853588730094143050622551213816845416262680752607861586368169891717925092144724720389298698340848405795722604114641737389327159814766066361223854728277121157922238214678045741640200745417300115120867402584976307152313970948686470413176240914675521698914680864063505670523737888282574316118118256125740277999029055970479882253529704761661478607303344157906381617556806726630318050268635696660934201684536559242263150933617213619691831683641585817150960142650704814513625531574001723945663316210353059871035347718982738663298336683560172173023825978738298954693248429913781681501252284932723419027171456953740081957036384922763095728301996155053178034604346356997479103583318682571845375045164107006534841651921081975883330919815460469595034428334921825487185027266484660815129159942631812766878833012419337786716383127475459805299256830485195888384109328270375482778711539389570485904394945157709593265306698780833727597976249294665948608503853786029297058523044283723655472120894378773031475075748018269734192717879526378622939330530878677048568084364998287700355005822850888177708460124682732655862705937800006537257356780753546006282361986138990231701417714558824856116735020171999032747663029049476613358729424264144179536615404372601134703725029735414984579199036284675792178049546832351285323201337088163182725338016621161897801440036656116852493409436809854900280732593841879536356868415429837860634861874535259506998528838376019640169295239689504962040625735276868404371074430222745946882802773547791159081514238753860220019670609172800475680189002290645989612176443888062550553740664132969823007091855143058733796297615313218181964515293188014058970366124926659680191063253198681897956177504604133852528974904034654550531752838409330356928721174691184204108999891734336851724637074792310518656532641777436789590561420390570768227278723921368454428591127853094581111033172071167906981913791708064741287165682862894184465268997431301909778944398872049498034561526263233260526828627794405293231666719870942330314580199875087017806839254414848596407885619511915072692145380471752132646566646739016466778075437997914345719962439668907851263473967837756057172635546342100262383969640855057932243409959240922122750540628331394164187907326843946625895501543598914875577558382953895871566724998460135038978683000567283556188897135566650214775851838876410668375704131879288593888604871570760612302524227370242846528424033518235579603722139426020739650828145028728164771851316985243280412125531968228559600321495982765523132649041295123012924023219234620848084077960909859474736687936798040056514773364029262267030453414805019898165434543123001425101752703315445258928211298630437088492220602863169770107808255790964528595136213898489711950178197200238873782979339569148897230909743638470831695571733409961208125707796957564587936218125374594926592952374504912214139048179467756375390259383491555098228118045900563563914049426953484805641248578144898128434862881040292885990121448506126563182181482808868939682999682395570555659423690189578237926229371952401035328452569961879684610999808621866306001319700317055415024741543644239188362787330229239996091207581109830096526399722591528700017722263308059937862508813703177510455795349038936311007055230022443576066137942170815551696773674618010280577776894242162536541201186430173604319236691506200578239568185078711934331975205954970487069328790700105697649541465637379687151583794398369325036520539586966605801386112663368087479573792408034112922486267413756174036251482756027508443061059143623701865100653887872780450607564129960781512747588462298800256650755640147766269653348609834951290375005244460594427726250954281138096480242183617746599943267209969712295468142031644381548579657967449970382353394502038640933837903666668562117499518473955172338215510208844264644111201451491869316664189926804471417918351528039139508653024367107559698457326803240617096001575370569098462745728125442743537706982922562614362725512369358489210493861555653665377551953787534193853345797415822664632697219477499602426083701655641681828939221806717689866674391302004184137071852978545556277908183762791726983584772993305753333573798769950197614869040918913989356053329405438168870999175469269517323594063411562531820298612200157071371205566765842707414308971559227112572388139594091593681980715551847533647285446636132233490482175161850338340755840075121246332824530092386630310000035475448464751455982880894085953586760183942580902995843330367106634858732668280587136710252695551379718233197834393217119952548129441108529939808587892846008959882840008765363008499746734120720936957901091105358893583800330093619496834599558221000219493794535739382675772042729109072845590179746070572487893352250015095255037429915251842780863353706943751563486555125062528465808810253827175742589642141230805190372205939945683203429312795226031653545589181835278351277324211735292559780764970429356919986803112974357922029650275697229868342528390798024862433699257725813926156877529516621717101554662989381573858257651475294260536219302555228436191782390072244965377744363968198050139267462382292508575600983341760167220339549565434780202790994113987850210544124603191586042257820782446672430770102503254571549260263166185450959257463502863873541037504921854141672664181294441522880387029853791083768446999803846094270136987925458692995603280612147090133048416279306563162741118713173355042129032467826820458598223270690792964227783943715525415916952350381833058075440200438269588082022944671171839857215372817596596757916563806393025834715668065727257167513691071656148079824584380499016908645182779020842290879480487323055375529415993937745858071767996302438399885832998681329911290839249707909046801846781397198471884352179970211031637346743193312599551337458400221565191846065053222543854663060302675947015497617239260851405670541844493891888853625077329672717734180487471842719662345105826476528570135310313231186775753543400684236620640501942355634405049119736485496222919507421805020179301826607178425003065806131789981560669728286978029702977677946371390170291459888393103952401984787186504995818780908179786993571071406275727186161348681486436491129910258527783703410804285630652193700712352358404837190167678844452349286392065823092672919893942698184238599844296650142385352815748624693272604942282256547454951353111016641438779781454143930385225316110934951637012186343641428071118893581736747924084489950725166823668690503052312472588260522741427932116886217784153350824028204699736961899909515024342260286166202263242635356244136846498440230240494746276319612862731739744453601646491089032591167089454131550230185563846231549069895283764028231783504868390075859999742692245414719652023346622226936422373275147759949335097581727870046384241767211933607404521408051140569152669756434789251494877466485306475813261627073858638456557444468766377297245945440765071897308298182224007891381817044104236265278806391879331224761600430252289555855425865819295299616705266258531010401572511542083862769553590574996088653164441642667611136631113115807329582448954316142173550604229370163139856166270381069444492361961179583053714049142037741001904936929178903174695349492483800375128283951757469318909898644401548850588995007112406281286081237550086610174861846414792749785593023093399091351907811480723696716701410824688324216074667457773079440068832753967852696184490285596666524377189672291750119432259183928177226737563329942963641681945547530130623712676524625443305428360774678891928978228955060519694477480536128030009098911240653125004274957057072852733856174113755372503659912552382352182431090151277989218963694898007324322533740596257096363024868387411359274700458327276588204585155868108218833614787993157633389512416915563449099245461099562359182163444273131719230545184212566108902098634018260718259676367299760605357284394430581044601997375569984123760467447558443579664530600218779915023602896027958339794643935600268740977730695585581105311182550771586481613685147209016405659788219360610843882999098547575331674929257018203060795653278985918950906822671188047819756742661565158684461030627653667653118560023953941937356837390213052046399102997215493730371943589542819471345306829526238935915402880132176229979377619523366856020905469515116817509300484172428721098203333170965974758658096655007236120308639244237050214428930742994121244725204234436952308439088632157365434248081582858933012191485332566341884126256038483933526014934663163767259099764690704574628894158089860583457160426634928371734268988574336874421220950846701028469202838421625301974496235486592467785438706210048533616182797211184244361259424057314332829925578227706492669121559087989721150120369649488018370752394457930980441568217336315176452112036490319235780393257156528419483128821621948255565416967337481881384634524931572621884323229249917948248833538308444191032586279421781172296980066598313032967651036030643094177590559202175078413697271451402052097093452703358239565371993988055373107964887380026928033593238247923801617315163656465662801194977630941395331725073425069086412242997985775931315084675775971380642240714921239242157329520951572288028028978697475619351530747378323095667610579384351739442923766118682558275815625639032445107338075744550605772100407712221347260782023761374108184880246370052359838336119956076826658665278845177029857173993842445925993288645162708950219948610454726976616435835044119400426976461031258888603224672754738346113762261683594802343114877272144104427643033998768964467917349375379045263983133664564906551743885374993830633052151117073311849684213419785504015900656891813971623899123315754683213624001540906837076741970241255701159455527308832331323156398261807634600727475697972177505959744476016300041176861988377873719266645091084191637225057284706863346519521693929820938769456888439580679893657611094947132631530668635187747132234573927650396810907913284816090670329305685667018913601850955094966988061223026641999171692767735802211010153612914530496081410376896833683788117565017149608982230134139253586898883547216907181552457871937089991964833997904014665207513317407843825841386848533914023532147513444697688335317492931423263889821603539695983431830678002146417074607547201809879932145190516450419747647898637847014393617591075423604619985157472353945791211251055524177031712875222453591092917801696418105444329217356390940059138707204784330138451354164621170342894596660996333482610264458355037674447484184067700895533414811706100541764300996085609756910828470270376789648297573199702267049983593449633557755618669351404476882301376711537333303180431614311712132226098024142597399901105142768189256087515754108019524960834909208205298466776386439605056281502161212828058153736876161973114321317711721941698652468803787230926946937194644970282435540246575397463312062882112109826567561629995492065365009465970173251350017416640528912443783199036841960005428304494799275277516645981804105813302756504659484277642173345298014025815789091629848037860402895149377896740431662515220025868254093311912601519214351203660540030462423874337238223499697076079160402118311620495075035644905408772954610510271916936273369394752736118798339672743276894039568571466419203122876146331319955013650870657704377206642253297228440421368406621841590268208184962057193125829997112194323189855793207869208279535187611854157619201864913532046679506082639987927862638226995570912643053219328795583749071054069058493786676456182137357245941293387264930430215372263555535636656625718447272776660314119392453862559814327341510056120398102078836389057872575095444414756268312573460258963503140532896253583350635958911655280923260594213347017971589163022939465157188321960287023732696021144933510705426462323862520957165953351504187270847872456746078950907475096200284413154858624397647869342692975260796341583610591799537351379873252183870468774180183013461041511607092546343698904049581691012266308753723415646194229302307320376806000856012442233353894759895508495271063522632277835761152433768649721015877968897516196914424383133867913444492198422383442956646369334096922425917371749072697515479158844200768943711071474657149110835832536969425748040353760873005972108803600127041920606358991514906314697694507665503629159081852868677720747864379429579194417126729498582088651384641911734930029714477247655032467993859536804413134341524874048590366941728345384556910499597601253540518696941183309524104772672796068372283177528209004323926013879196719900488483802869451308683577966742761756239512118442019357657466191651088730548507122049682594412675389946236505774887580201161345083458702143661672586332537518507744234267509664544220570553577586617226298499777480807320283702267446330920279213360660422788281994124529712830502882116870147049931559713813310412228444530663705561304162287265998740373435689340040557436393826065994019796161937170594435536507315587475705410909128217477346351334592312174150154616520914287600865425258519756034622636726993643257957466381775958501420928366590599660599609787429338920596928090695807697828941304025403936587569344983494477615707665941828126586245467766788021140649403935223540909919186054180502031345162152634979645760195840875838623453677448550450751469018369168284681144944706177202014465594972108027539986386543794305072399791025180422702240874968790438740663031850843903581266676199361973761725115871687518790837551879541541496762791630230402347628634697646090912216329213559803355481498720196443256737581553841054164976332693796738143081721143752625049663980299431090975988122115651238080308198980942702112558573118561225050071248914453675065075690261653745138843667626802132068127483881853452985379102319665362104410612496594773026407273927674768963623924123890412699754385292995365741623396688740602486742532715733857896639817333778711765133840988167965460953073227096362390157731818508296274536239699761014384383347235595737097871422041658039347473306468109196767574584965571141701714468044825723315885316165122192455735830381451535087779318606105774023952841958717344760264545339225893782630623893264278296310826018380584418863391765786850303112607157722763866847901486828318817166488913849388319485535145518193542284266456275935730148384811032349956215747850586880588425608261997498481151249493276167542878797900715328140137886626385090205988067882672167144138662493085814613347790650262154244466980983194776025110508180863193902552597810055854739342525266688390701845280311004332088515896113221003246861744445661953693612342791804576228932393435530723735757690517044518008454478815078079317304880034321796968093172856736495269316153829066417203992549880503028767491465854296818278270533340267176383746514114074185577522739105643309006528268340986905672037405452764992274604265411175166621080383707039711944076284210644613175199559781837180158982183868824243665224595035702871546151430325160403174749575917434297400826377183900323555751444364188473649467158454597362894965232981587926342362464193034501496559729790019529988634125586218017277961772064369710375563754599226932532770572095090135289862818451309036649848776328930587566466359288428889978481205046853544495007377943861280435305408351301932193035794408718586130963118517215519752345252676155755786942701587731428275429271065716289704450070535986163940406057233770325155445412742214032235275807883472827196155835655522925951105629986082083962041393678687714041806468471422668846708446126328997391210440345302518887923434152966824371104503918102925866002220690588575170211033573383967940693221244526980205429458691070583379799154907338228075270642573248011757534451149002254685904243304352667389707325637032974928416012823107080808206465369089122905925847863599371903421165258411535523589341766061774528457344255299243152040057718612037327437177176405055018984568613357212402233455115891500172012141200943231552625336555872966725773880842339885725119009657301908925409460116290832779949116791625851206791515315603315623099033977231668143797984724047374746484278343789696799015386916532336357830406746852652983646415504225902713549914649413703979917560244080400537374403100724107169556422596245939428995614223146201350719522512260541669985179238296671593597474297535935981840544456280073845850107261296639989325701489672542127625677449556380304189876304419106330437928721036940845527018677868017804873115529475552194803535207122734765133922397599493920041433088455973036525072160256280123890978374252354759916400895203064325799514731356485210614357139608633417279885848832456316892828803447198099887058681378657193088259645702156729038145261046029079702099527787772768856861761841745353611963768769615954663090468335073999808275601287637841238811762455239029857001174661972104923255963492791825640259984104237658089122933498595251358963537722395415493422169054479301346411939809401072581318581995368991911793539858516304141933994665932831386569211412177942369343301604173557204551036504250454933088708197565657223067274786692652739087966246887046444479698184145658261605681007612177841857723678094191138191646661318957870093590126711374040691750581441268171855199854103092138960875426814072896755178380644344899798885748979194651678273620940714907337072981930533621645855016275244872756097248079143239682781857024196513837390712462641329097985448848591260666598148411371615305406592986256559293254778253156135666771966813761138467335058506515227172631707286351137492434047421195001801223076783461205814793083766194418341705848509859199292134632488020955635904699914976227896670836386070673637077517916474931313204221437327740135507153183979849960531050231918540270068778619093064426049472305966707204802446445551688590155560205806561128559077142400810222412166568317819520696048280161261918059031220130800465107258731430412190794297317044953729998992336317096480926401408237960066955667194519793834649557970137056445067478397273923921225567629668364190780714331726819709320935369922995493529007875827848194081114557901814598973710063143498563498214776002823943842858848942616277521073073867973304058335609538499724315569646378759940244305667510712123736957625010023828207927348553034523817407983551343132830542640328306770518559719758831247745390106360721695499262151417639814155209464639897507395241480336013900408213040134108091244729041263381628105702923524179771116621817319034231252658181611657730032011078197666095458427936211148542547382663528287371517188934932367055338113181731397497714246807912743288940954838493241412630494244282509506098278703478212246909105406409084438814225348688164270375251553738496067378621920697650374960235445794568439105416767012353751201133519221101926899956157637490414935481888278870414363538573333235631528587573468703852874780199706800602284911341229761370277694630868928912769174302794540823229878797097908985971803041903064301429516557767374219837052522184852226908447713860876215938329077324259508116554540879150589405785626565583670993543176469904153695749815947614941575271835955583492955767510282188272140519887160268061020455667783198700459402422095025811258695509756319453494444452237661835258697562313818914008838876526723481988471803625205170761539974996463236137516986035876210384273721327130583839301973274542461896161383321412281048385426101780150879766306639006267731377006505035820555821611026630637806419580792520157369494681160946360201202832956759189117599288992875973686628185162603493564126689296240864799986805514250616284895099848539764478047478469315633666628856273160175938965990797671210659111494062430718186300666684891120808972821671983669610632023307703503392247764502320911304101761146682192580973756105135956326678410592122748962288472026605466454410263365857145836849185704918078800683719128529205695581731106069553412025978807870835960235384004438470666124836499998021194021383346013729641938795253056023605048616168521015799701818988434358575093204216771730222953090282608731140174129833374728940298586044640246947602102471489343247064915435231390822441336877425548504801250000956944743086592307444774034087886680607011531231414807514899890942214006550439744763080411729740707688001022194233736719895035283069712863124802662397146670388981862014446986981231825471100792447336590443480931190804090778647217868793932579835794456287285737712367673248090646568292393315663875631744824730576798688125657233718249753283334776230795258704955643540174094921456566241403262183602147770997165848989036386463119518137172283955886620025670589072366703047594680894215565123726340189536007079472488461594665809851025829199688231767415299514852094756357553521196533736399842393888871995342861818710696151017271578600699261116047742702568876103207846149962152526158217350402794864673792640923900323373377039739342509350451071911165670962403987941550412417037404831122988203790616256082863700904239611075545723632051617994315925140237719995788583565702825887763884282739559728192262220108897842544122227329526877189036016137030196351388348104528992769503375207454744526207391409432930492577671777080213640642037442324638071247932800100790343004231693573236738610672838567811870306698960004551851968031594791461547913551616867571317346511906431902112471099944411116545141837183692610664437875579966059312896719127426765479430929753158440648476265488252231577627987988167724820129798212532845338475776808820335679852191239207098877867140306129930222969878811495955208875814076431052006339129932949992383307112322800672465387060199897000151306478987775060908988974017234574463339821760332461525006072689184644086431984193722366838522187670931233280027651911440835435181435963739620404303543428931704320366706006168704163347768570585439179519488969941766734833588853694212985058442067567617944452326478035466151061201677720375761857815893883438096339670868150660268923376294982689157106910392031424504848903871259777719639495454013806230453404182516802556039411231085885572280117564091095369760591564689743725990924228315715761683775768215516755738596145312201253483652275809856395995479398572180118491835767213327787592999019207253472535883823337256516772534980799613643915577341890208230104051656239008246956836564045283578396775984845586132314192444753328519158326707148470157464771277731479382428352849135932679192693811768593467905863242721393278054618962130097726862241635962784095328872871341325441495930067991651318438880046839052986382126937249590131430661884946693148608565629444116923902132093676411469260168789153780519476432698695618120790997436950493153794365202180450565288903032622671552243182450447493488424622915454649276640988060477107644642806497595198327277080143587678893574529500971897709677449971339213630564657710673990472597072732018063085538021592780305228085220516728195721092407608555663513326319877080902054209318668082721783965965530389398771593267470003045869395568523799594261999914249531549349992270781589791216698742157192299402516428896873581677181896145830787510262224355187581179289732559423163597751308482186350859534290569816618124957836846649487207760733732720902707941724832210716809041703022624166700186110397834495490008151557130540017346471141584949666862259905763047352029904163769804228547505121052164991372432608404751654305917964145331190483984830537317269062516703862360537741703436898127580788691882237185037473136966683382738671470627099137213049744407568611794946539464269623909551991983971010593301000029817800222347289950435562252427737474190882531425469943724910827358027474487613738507560014937729111800087926036019346076115077318000364476150337754973323003441099261561049290747968141115063593226499063719416765062926360862327106221651559270231484332885260371925024583509553712327738356466581137793795294844415494839053736981318910609135979383701862425228477688481470184511963859478964218833859452396876687452651804091505601720447709874795349871417879455342487947641544457005494364775285758599844307612793425347497589395698682428745806171404120894292996540306867320085260117074198941876541241017745918109878782772014310500382598736704378166460889913961038804073431885538833082965248659479943360754423605074826344719030847331433395724632755056475873015998386841636107405488794127367054109003759480122088578514806556873616407975886463223485219315468986487617129388542108307662105020873856436893871917414063351665165947133443905143427288141980447813027884114088603151741240675410802112183333566598604585515819538689178520809426690028426648333165628569404114787698566270161457780634592094583608475000154253304105166401325173168665551686696053706838272820977852682030115941467390798553980875213424284751659339644589105421590087338378455159302559536008418868302575210379178868081135633169056263294054432785280540854895855343564277553390955679364704432194833591364066695843437851433998110602488630747171706671430971636609521536132269637149093453595328764355833165364312132768103142296354146670934354252399563541958352946942772262013735481050147007999252130609960931644816775033747392854082959783011527073926118728064922312024906982235155207490380456541666320032332978841525729115769411516841632216606387550209471268422840341819572412886170880967694206704640768167491653037583907818684132101139847225109080051216707696703514309359269197590017445687864664046449031965977776271695251898305853564784772310454328979698641899641435509289514529766227013759448031240046559857731020124879947129225487416717546583480269854217364989491303213535720377419131805558463397129777170823886433912957488543491598202594298376149078396257042973941155661077644180031028585740255858491410481909555867779049474601123574375129885920579233696493379819985085176979728588844385457417039017214290272082570759482107571878943804410470198843595390834594685752118581241998914795974481231283684579929421841272187643403638298184306757461195692944386642901206514687692514227721213130075440416912999287412655098052388196560191891494614241800470911435888716003074106056988964465764181565682236486664196282679566542967728240387017637593734269061634951549729322543868974932984822246113758468618718797516154978312405940253553527607946564051970964853088894415183457829524422871393537075994459922113516293053738404305745543734624090277865827142095011004995418380751937395408443605268022951860627786553169023458823544947948105963369407337154847257717884107109143909057529963335045114137676444215726190621046008934895106134752560503366651175502097503826802262156097491620155907016065509824370149806712847245562380721109403838957627974520727435967523844682760202311200938052570355204944116108159890635071202761701485076892084075208231986104408450435685649015436149770108236964540652761157141818067776258071153627732447875007223064603688441619917781143670954322312024500034704425727436856704166760368375359566575038085127844907885441354810381935104874919120212465222485952004973476133581323361791515497993583789765106952919135667113129269236656470493185687367465392668316282549326445069574695536721909833870450623956739794154846664050310945608124103406576800564333527054193299072910547678250487930830701990281336798092142768321318104107393532859687369221228421447399389346889258111732006719642252927005526153758548898404090592294150555589266780142389235335685658752521283858115952066659036144126562019893550534821553281779009194258965439994290763346807211168561414460990595021818725996786546003549950945401093015928599960001440630037147238618309824768098609039488380364852831306633859795055220783955167175912388255411062374768724099635958243056170070692351519297817353394070134161873316627358029561648173482423456934279454428842297982519881512352172428331492577842502818153394407713241966886170790283174725632218454919012139101358678348984794135609156383015941767979660817433809749911163926188222265532000141086133260141773859553130766293695909329930637894834501482060022435514471419091190029840892673346404833035294457460992270889664607714237441138835452895537274044023079686370924461164023638559731328443343308001348989877280461424200684930049584478747003265301882376248513394984591858236839775243686404838372099494598674355586514179648884907119091346413221543882057149058488977052267561474953292526298676681829361162787587262242315611754862568696963138758587173533055715623258969651733186165526935936809229106548529754077076214937945962373263502296868099826086563264486348646091098895371322215669162640778026380730376351047787179733410301556853630002406284769909658676519327639619045458239279873238381118878452999065667984265825547561290695485993462007034336538335934573434713977398176763078200680267470950606376014783419006000290193038269968050408556217962909612281069041260378636077371766298220307368259130182461962476028453850539731246070044901117095937116404636418028917368261156007339300543084837980842628356826031162329158295700056468412682829134047338249638466493998337695879143734072160753544558726942460004340732424904993417188945501916240446869158237553583423428603678921058593208886949589015543387549790206789521898365158243794756090546776380491823890801853137770707972956050627014443269233991931242231727828425764409221918577677317661568996128795337945700859018113462144834191301940145402343170803751428124357705997597942559270732482201937754058622080074564350877141737182074195411220073676400295909153420693670803500909334991047257252325954095269440721503836560236816932528920402665132544603873528399190471916435086811623369874227645090531424515900878153004967317916050908049725096784148129089809930269519415775728776054696421748163790577069952113469434857148582833038678243113000697581459699411377031409398056010516684073514946145970057322306299412613035258972364810227666159450215625814285927630480002383263954910694775964647941528639134555204424222328001582073031958178730262165229049152402036641192530645556977967985886287475935886474525612545415626400437770787202292430465431572228414199660688024894475246327173647426941650098834090766237346785581542336329698803054940074832225393505496291860933129124310247275820046947490049723383113257273104439721624965042807348845669659816557982344092141725082670036829171556598668570656767524894365721186173524125562060385327810168399213355008370150019106344355644242746922773946178352239262606190893513031020803207872994591493241113207123511252058073518863411913083236244780679419907240496213445459551034749698492343063171885621642308182353980979557395507795286192339524922766865432194736773652302533052190420471956586333465961628428387623088895352290659781764833156809650311236478664790012463910515838435832917046320691979422691388177409833545454969000620543136175636902588851351154207588824186448724205398607110836231330781598744162790498697817288518279394314954069361294225117883055301917240708366981177190710529352394764681687698609063624240617752340544718968891424148630748746611132249229208494697711014672104165602823380565299256530580037374329066999748594905339234213946288936509950559308734836437752008216721077148673377314435514924808901319705364752294916115900296108350739590986587521075051965306685917588679233144166922052047576481986878341070425389858896847659639818381171794352112375721297095698578264245781668063234192920475136142813461558509952167424088606020496071850706874677015129970378794554559080211473980980204342633439317678721660999221285409598058947779790998390220542209095793009035402160686547050127818522548324470578606974479816067012049650027295789834202089740391798377254207697482927606436391856930474129795023584300966785870523317408887653856719807823141967506409673558286090543399545445339129366293571176905691435247156267552563825498208186956027454374933769256776078129376366848597602529343508251522938721601542325005911057906448750560278824299448331810002846859328902133780283359568652388158855797109270653212873082100151968859215778158360702777482086429278706658163777893487810681725607153773037706677147648873045943136918856300455325687759529328721330985370018847593674298882835063206736230980757499788196129038951870808393965836399480892786326615923780440779022668331069479336795547765613550488031603866039133242833846873593746578932177829607840721625112513419332638326388507072149380169474780763250996303349463972890560099205798393018138039900322379626259092115909985616314397361520465985792645256383165438316850968019812658309167835504593739158446795721013901066605327950029405793872182404546145024091688002895625238917720240646099424666987368677624745112246332554392532063169949118643121483326711727510159234826406569775742494182775762411874908117808830256387590776646547952431047744561253371811106710756784473550984925846796714201842845657618569730588508470469476537215288984797079239324361659734873153784041172815405518614316147437669909305037501665148713392585840566352275688239163477695666055797665680415516722591056708696567196958257629115016288816226894382928433934324784414369694184129593141777027252918912912117226661186908077041621692197093722554794016466063709388207379805684559485092871628742636921980923807937194097475274226588877507999689885719050086632312457788189600010714452766237921060255842626026187379241101875149499602477076365564854399602558027336400501911757697626786564550768836273191949251001682082719167078333178994634402757264586662573948399466221260562600350237692716673222872693907855138676604148797861682083304030362455263617870264742290763781189608408751556139258892607687179427388487195462661948411464906682893801111607452540624962283594390567616836304948212495511791880261322542822260601384013732958428005227130506770846390587669945053917874239460442799774736352839861889451206332255600588759420222295087949201568940467950650006835251357464231428111628503906918803670156564626364672782794882048612910541787372330765040843919269945465666337063144175681430217598691961526446138734438235648206828339643988269435096553151706726268379791887655364574935374277296433315213578954134588501114165408483635147318029314379752734607685563641269311727341922869768713263757045006056558825066925960640817326118436606149762568898254759582573773805088655487375061345218975032434273534273613008165769370499810265212993953663312799286462018710200737710019869089211918878202292738855165790962620924333908491063189635077163976539579219417499636097926662366002889075890668850513906072608721816898754865608953759836889070669261433813689896486145203959784090861765011063242974319774442673739247871423921097447276006679645848423053664825127534733734608863567652492800622194084856963611679292691635822936264782365876062623728576210413942722901853439470752693659777742200727999161450821557547325884902277961427073625280744514908151769453713631304265786888694212213124220495464258774386232136763009339927179980498325617556820549076495306281216714622054258428650822945023570073478117245503467970144826871639755730254136716459902477662878395750106026079859591509623909839571123263227997827961735269080528168486276593004473057957294072569087081492860551219016729855646716211103231050139791533497462235992777914645045840494665982909887236424080409071481142462180279357982837481463660088752184594492321662211055397877933041184257752748707236236397370009715803382857106372941068733634699059323137004243447353567711327375702365459932504559347169311046864873717956353139802583707761672703197631753686517923127893517437394667841934230274099446455570534847756479885559933199070144186147548668704514926846947210848194185040066774493527315256116964381868115074457489359944154290737734300922279818283434769574708024007781992092017121727376157434751092795662345751947317269516665252115175253988857265644146668547399461949844052177839664359375638208350946505157661902504015655904622303097267780628690935419477406462920032764289756166868542241037014750498453407540282941666696920599192254536189466826049323836003883274417801362604902599516136057675131970175563674207612915738258539950610752188440669078388448754686692049442906670818831799188055711446781181045115325264266084767000701686610590111817839278230550681841640538637497431674994377797900504921205797696962000345521849560783597823033753732436265949733425923549972904354950792957262792465014271575804495679042547859110561172784014578449023770579036173532170828298703858383830775220882710962848767711886692127995539165410236665395776037381994900611119348319622463901739437538158781377398151855547401200322504535898223709804129042525721008682146898590870127708314467288687095391795496378759266317433958609445192530628000532736377639586631108362054752963093534054270569271728615842582308942724238637346032195063825883295278553631906553567812376953726242943509286419527004090900917284100647443670695981017584469577218614087950087722236036949248395714714095656611721926779598307216906465270961290191315321259515069894180459201827182889059045632583653475003568590133868175491095653545846988518486375760857660314906401115010214164034381759547893656259717069561928460503671091527643217885387932618043639897440871272160668994022948321108310024467584220975496226955833026834615145625640667389511794952087420263100445908012450935688170721560541993472588301104479112630154963988234530986637854270306678688417792941768372073555873923513916247994715065080602924376094653755132021696684585088096210938428838856859691153540049069591820849042163630294352036552969890291321501995639633868092824677238206041566720662190002328430370499808485061245656242376771454357434847809827081604083871473965945612215445863727120273111785230698074475479638375219551544618096828254664818180694956061709946102749343203700067742898475043764734728738711264184026362024351565518633284048758435028726497588929308873820401720085695590213440087567449999244837597349987648990289019810232550427509483768247913765758390552874510201875176072493432521956561518933195912889665839791777936637881667314470500612879067526891086640960620649552770946549564520029599065638885917356309982207646640927527885889674486868354662186474946684439923409093794257030930309744329867029770540946302866127884075430324395303241903784502165092734249279199475753260722839588312617846850268905784306201678367320714802763100227768533221862530553429356051814802041137317481772659981530921589354174684595369844739286446525724481562623286755103491626008940857707700876714890561896423215011319739680106492142052598628999324599930076678114710718978714217537884586779417135037964769717704968928855425710679415372506171579867232349885216029300614458292125100030354064559949217125391337919635350290278973688729550431560266253892190361489050242430568840926362857926844465926659122560597127074580476808993562953375035374157233215201526270964704041767233240773840483581493366544947678216674550898635607740811521448584037787006997281591244527339485064058203034216304946572374424003672185593174736727183406864443265022855132831559887817975986670301280424397176202709169971320142115995146967365251529188356988792041077704448397369500528496529450920196537356672859238158025981456221872924647217953522916419977108883235660517825354527892459025864019685175735481930009194935511283874857962433749848804153014123433104071147484153933473781266308182110669738585793957351393749689821684528670502449207175137908618065137120977289083026216095067784897853091601085482719012838027977009228555656471882022842495176030100223667194879745484182100467402500155557650315717726157138761233057911167107000748497974458187905719212245947055390228998205415886914658020830960404381653359509921918191139835345696503495154423418363160785177133628229968992758683524899209528832545941995280406914419619698636716941210014601542608571903078009921891810261735803486046077980284093042308597306388578420518784373699161811863950533678115381480897548970991235378742623521006502880958579072015947089552717676729597276732261030771663844295977368484073263823459707133401391053724160421095599171001101217243948009984638098635589335365908026853781791727055450410295506962554597355535273821431213505567377706038833537552322316147817500775569382024124973274518291534708931964422832512997251113790909203078532794455291109452089968715385151279070567355731149123230952085455773586064538321035194907801333927824275302998076447807170428004001772618997971553349204835997975628357501515586871336683290186988740493798897661857596697011365128445983061668400905864054274554281967869495777222925528410924141333550364363071403010873994657619374468467446767854931752767268748040699225940824509652655493374639758552563491441528494190980212747297064030611459870917148042400988271488038702813561795665287211488304058540617376264774204129614045968682364930960534901124713376172732362768494784934302124256363602435371805718986501759101982001747705651593959299885659651743099218391986738758726009435463834764568237617599061038154857171581573218935630339967371746842849518483926681422936764267971457151426123141353917497504694953646580256984172591707195027445222142541477936535323082888254630642602428974912140518337261886662001203485826955427748262490110501101807342177602910926773655657893748156146227747454980830088520474072103523639954374481437889873372951442570389526870733092229260792791843465501257435082089106317328304472450711870872048305705010805112601932707533527938789607775290554682632512945008078189217947536607229772941183071274916656167199295656575876175741797568788768287478249930683447205044117488027305443458131995202297219050749132081841026494185821167975038480516441481898614999738367669302032301814011538125627636716221542409840177602319712949005806920555188457170521622148048026334486227763484262928854303165281396119439298456496172763010585641477028656955294800044814152255544721588282759772987779267396953401153343049176799308203470185165548321004977255214899651251907440119078660626131909611339529688202517769649852780452948734984005990594129423384615253397438655765934562591045156589169574699487152228154218102204189304238680566468600851869248976047909651080926298918619048384632913688399759515123827384394701187454383569069916019013284420687778761645500963450274451476859976087402984488734406434151300971109280814736063131207349343523136475912929156769302330371629485097747064474990386691815554163620686250036631385889316595572071630460148590263028323681872205679154584163188165839091241625622522255185001071982924498332835309780997082577748767634116557238150562255753415080304166131510723521419554288252879913497900196430501083676144843929797406885105329291159326794556179557487534260345805565681988878738789944935786775856151345353930762251854366466453994927231030516967745322597541734285109508047217113967742010514710890103302661790628287815216644390821501929549789829555803102730484837890602251181196986314866605459169391510453674884651614363489752330540454964194675327444984074207864918357340429542604129035825499331978228660746085062402991001014505387583680522389515196271150536849374959345726210056486919642993503281546568156761340713493804129889564593734203045905336525852789700058157968064330088412023102104685008781201664418056713138648799856634321692915781735037999714018881757108333780180244382070150717900348032680553643204312332306028668769479804898948040710649943313671807802998753784435707148489344033886154399872344927656866039599767708912239633998617264071831861077188920518688078723231842439138369428525049175867961552431707008689383102441403861615056994955861193194324931062413799898956773056187098815490835202320532056628738875728842717047717725654167782375877931979250354973936375609088895379305645092388124399287522283323546925066238934747357465721406324734216752748205876787681182569305127359859000162717023388284184487346641292463839159676864667178406825713840449231457550028889117462032993674313501488977218748806353041671574555754394998476238463399847559923936439671870082247528499791358640531643613045990039918235111629568498104670367923986629092278257441309823350958955722787009146684558769540206713820569844510051689010422531641888479992127332624764285707441355081836091508390890247302308011278985847341355825722072517427784426529736284406359473968250539968766439067619120014811587502003920769766121390733343187432784724459293658186726536923637682960063875492644878243586092320366618373124434474272391927184318536751518770747384786293502281336595750702134968003666852183004693027112753159983996825782917240674951789919866638618956740436161380692338407666552484178502428869034544043180002015787195087943084456672408592368564971900934422837124655049110867196782739285318383629256121545637322469612308636046090642628634892411145224882008385583033000203210147414670542284723201695815503714201918167883811915250610173751337283221650320208457338898223166688277361921380106843428764347520440085258751223888596324872508013409568706896662163318302934749803542372712575734972823525249377092778800503928512201618409619898049459986552729583064783364167765866681431233375908151776714813843656452849197258430730890967447872576775945044540886116851681499720963063583578970881085004836008108384085086684961483652004603342724039046455688993786642509912145638298335239669872546345830380919158035614394292934993367288609905379446954785077242563394173981146753567126863227567618266764942071839298216221962248078294120704724349920036056699606994181350637611000617998339264072164731834722995934207503202300403234387445401570321010333115284926551314653276086565589912759146424424498730201828636229349441766191550287376933366188345389239972280638607455568031000079343988714478949326898351454902982037933728789800948660085411558477338855572234482253200640926682697491199986643421601006877119191898981594398842185969290864611040342949259992304615095069728393021642790106748288646241745365176757745508147008400820660048044332444594705268717258576664070676902812022969171032016657402223090221369062696630076229529967566632146576577094078668999520626168729028538631046245090126677794669752108967417590576686010361719530234326189974176966809285985517699289686932752886737315680858538314948598432740345223386195893298398009226858617864900787891216250984689245426567525151707307287553138800628021809444062499042065201127226825562244481114592622032901832628718542304330348350985149850178980316122224544522486752299053812742016445429630875542585625294520447196098826690628721817473846027053541270427689316362546648666381739903004295777357611785504862465582341217572090837357928842070976893952085393409982269854520344239569704260627745009687944318500634765694324108944170065211460048900301087845213352141955414465058427775724460813482101944439105900815573881535542292035259498027423651431066260631010453332492319880332629879604761775658271238579678914552182062988860618956195927066310060673392844237051511010064752205411387424252666326386628123296325586947220003222032451854148988930565126272020383440126140103951076644198176247712718301725088062786392316451964628087088649485883142988570125139006527682381279286748011230860746407184869198522065344926594868465695242894429437219647069585988162486745453563965299002084819918533490019359705846327189355363084644253204687082836252084979670835258578328995050046673836507050267484023320999817949848294311809689208314273903072251313863457600068151050955024489141130901145018163620585247218799951452768871006016827853534055811339082285486643004737230732286202063675678890995075635600446630754794951794011974590269538378703069809431513426673242709125432460845829336433985778085522009618638121046195867782546877402119955049559468249696379537115418366835311082751938631866882891626784127249129785993181689190447745762359370497184488738341172112556863481714874361512505520570026172853600043687064302667154716394758969160265711803059101602855879284497572403860453486842170875842083018390997210534093093112438389260587977726689394149626451126120828636684157747654938145125966531974611070193477994024186169430657219073398465579128931678136764276378447039305510572274437708629380778919202928879958299488923629139393764339182848427340120841288101425403209472785207292714270584572895952728874879910389777106269970670111128517487726433894210404775483843944041052935289318713781038068113942830243888598235751774607343611722907995618809687580886104412024718856903354028475548378150600579853905220898622474969850931330109116587080795121356391392260076161884476098449898714404661805826152780709877276835359976896478842049790820861489724285458985705138302460561318338082903705774691337170338696886856354695427546386696124245412628992113533074941889772307191695810234985017628242248804584922787154451800814124059944323929666336769725779857341691480073446485831429586326456846176967861127098818769624228396656542705014799214881481451061058147039805277160231277691892843011978791438053821657382691321499623783875706564660155086726021076130926222235423297207858519600376805992358820748861999352851175230693408104088156341273247398855542726359062742058943483551752032499212702094399790172023026164106295756337987959619364929981615944455070347937986695590576421511961427360683150996016907104308862080237361486782753328319770761773506964093602196635306464798948211136972282438722289965735654145653558993362026516365800255661004593868002388002097706620605757182008287767015183651530983166478387121601131172984208444553328128741639872929192647611578749542210609803989299620648481630993131284685245332059500891165787803513048667907101550762021705252513637407272971790401876416374944849020449191891083404399751981685788739415083470434477668816834616421420573989896537802048516333696758826863490740302997164923304434916698457740389582012824038499651854717441782446590429719207240796434132125833783694928089624068948161440010853624835929444565350049546932570081478582090915680965109719807986940125169986863129978027359015978748631152839487100700629627971786827154936793631379503361574743928624354487594936012590081506585959560877550974244890226107020630348856221140293961763078844409739736875900245390368461111831761858660909343034050100205765269235530935254730735065166266586510555409325040155250634135073360261309238371221867674114141199469907759108905063168019134137229051468603764736078471269647691311634342149468845991988317704302660549698843216200671471026296722372208115958114794569258731891441562606119611083720211182726950664899296737073021937216284649803896156083633157562515619122291029074452925695857705305155708497743085298900980551237300209048421953366709299254105920593319558535519540898718241635908858483551957958053718052804713527090668124337733609578501216743840076689607694858096384242647268642010823726815306125266005846372503592033319213370921639144153053035071939262592760699273816828648906551319011813859752793900448703885302981860819606077909405279650066527664613370807584742287235649085025414455059058855796491497138966012031759344411435739856426521057524955823455756739396450336490283810162952996056289707886925885141835180425425211703922609112809555797307420249002887700398240055406187750825322194313997522627917736391766399903185082606988843653509550024878276402218562938164085556892603778189757622966263990501756110199715611128971780795865209251273918950973386141982138311392701301471001914188079530093742217515099250293703905089119155622585015167120007145095754750678379706372508166186786260177615468778019531764848801134116511475708040968819961899587302475515579560288593588642566081948832307392189424311703672589281303598068249559532825440217617768081407230071950373990491849849457129803930603140562474360620217902297920424028929597641332530093544268653786242189487311959548491657510027308451750566672249562704605026264761328900203999637053410211146288976939314173485698834045903341593902205286643247594022332285756808416260910326952751453969207890598248077837548047759551780448228010534126005120996315916167005740570276051712518728463322256764624301764663743088877376838078826274223529214931354060066311457130853557581954193504333468535706338154866538809056882792445935182148806475616338698470527792228604555790229073706548013490507581331509245769606700273449735054612541075809697636918792736065345844299883292090001884921071093144706924862438815469665578816946944865513924092445969683834627901325245068483527675688165103201697926790784976431583287227371355243592277726536226972347923007492398048984291482075509135630124416373522606639728576903548280863690023226505784942975689806521922610737835317897794496957326579831599213992711880810454980336778524616386766600147585427556548245139398892664294227291896009304993587994024904261950733226721310199773630104096607587028138469215795758907309707048500837829887900334672674247182993875596769416048284334643025842921299197604813636354049039308388290548982585607020581408550867089339175275920712261698025078022169115717890940946602767565832367999615981506735384364521662837395773300088477602793213203771551845424369645829945511484201595071261968749185900031374448444308206171888030653403712636417968421236340392508823103027123782461001145203334048023614431694983255393321376549459901159190213292545650998312404111035751404010786327461983001462356329301364079102772440279325284717620072713247595916646487671255674595927958699912162317899982090805138593298888013374065069202444564083653651730374694844757774884157307910432722335395551889892073232413570706985990863463914728251405081635438081893724825128968332898795334934490045269475772852577715717938423529461113566686979701287113699754493324343734580110688781609308690026932784367255662504160609949237431503920155665877898387957900078633924893695748432747105616112564740434199600995604278541783694147161036514292847773256140042704028482748566993101990657829609105753116474615717363628662739040937277617298742981077766921963690954616100597855863512664075969194567029410938694853472257117035733030113020261648610347348135278523671930384852047106936403281677265141529597297118559173340328993190963271297765865265051024975878081852233738526889025894170635468209736706239468600673301295002768787099864128384600873218106380194222361402842674464063381710319332384027465769913082050343629757329834526879988130418584608619384477979343659447828057736980001583974973723188316636043225318573621957810987232262561537132713125826929325171178762477015044416961264202369806643966593947679676440642701779968370190095273664972413184678421154481634480000929817600297346249935402828545110359252018313349191297834781743365347788690329458910959958601088880619507900891853644452336359934720057287343477798863416091794516030703715080157170811823784057374316029511531616955992347711499442787584130228932997430046699701730618887898232066609817580078940850148306660712223361832436633993325364294291651218053157780974098979086080789538454108066594287217525701074784949183635642684369152348191606536157278396854324473662919742821297897098076883183770438603107842417569853766398366841211534879863281831524746426388530185119778629103141552450779356165249757771636263002263210241034700699818609127940026058197600394866835344134471090914680024509919152913994063693733617189088204963278114742725438466368845095686241877340470221762813116687398371449551224873480835464948657592210534388486410371652632902234933950111364404511790963444236558449899967524424271733560031426286531486217662308783323145115707936795847943066032200138282959381120834662393326762468054322889707515663317593041864191494914936378941281672677800253908231459424452756350051788130062415334953551074619683939926525233850603065672168033759949043003990401889406691159800698154255793180616250848336394349315242296261106059214036595903123226221309391450048631928676984481632160756813385375066374935787993674301939145103465206534472780248112801031101890098422018388285404609258184390233908453679035952385929283253164581043140354722902379672359366320140522790718086635253396759735858889397292288957875611090177481545065531251428471395897738498705780871801568555427883884650968019677367865584974046348169893665391972623382815765972755284646465517887928374665290711872073033900196139650214329601194034668740087995893781119139783527365237301756176123977219599187033647421802022986990460922908289810621782340484997166120255530685517340042048376918835965543576062236146100728775621900816930917733824771904069417579440465008155579553353898939584454294995710335618213630466538849129248432648642450321178993417109888953227148980280138151700940562005279885354519773675984349228642476844835772677723029229801965725691285282423336047032302894808733772298980976125226803613728919964506583931984215518916498792742963549117133862553350659126070567724795949735643215000968609782603758651200390928844255013888701385563102112083028412248295144495208139676041323135770787232800359643510668033819626936172385983975624893044811627650163297106445918749166739873478313397492264186996730544203849199148922536754186195188680244325762993106580962916118840728062797810695817454007956052653621554773607375761998928148110968627143804857435433812745344871728364840736937098237973641807163593660763235091984317437610976291391979607927885280956276975373407902929623254342742046265902997707172626799120893712095343943633179053194975606567275712540915061663893830212044492235532859657271735346450621210177555269593306697270560133530451000955283016775948683231279293765315800537056783168292461720897200603701348661410389567095188440848770342112420640442978071339970917881663921920279214832119398958381080654012222891455607978475888524869347858112903119185496900509677491352628291137602517216492461940521375457295720619554310473350474786521925041799125911269941489369558713971614548398667137161193399913850390654040812837520059767000998456256370216775056158431727768509764227589896753259923471128340568517326735324362220118930417937452706876755982171075155806223522523567796699263785003256554736459746286140971012938484485828302501862053502986679279712723309841801646464030634993019730022081547378102752157730541767212701362812118842870159516106629666946006889322666800590142844863393477033516886973959523390614594963238344349836512869651145800976475462066174547238912324032859451167145552551369820671365491838564225296219316614283821787198115251424950200786330011249991025042661359676417440609551653668876294235875590439583548292648688962723899238891718783893932444055426071242817515366746522918155988892048012310640327067045795831998444835158086805285762008635836764184130310583709859510757746851317240483396920072214739020698313261193162895392307739133713056333363355810249022052886854555596074412409243299181637862714834992003758288757770029534854281278787900340569904359303474346350187910096445161039978634228617218684957882381253138987474623800076265066954525152910068889695472899553394695254419528027985665027502218875066295775147724571909462773722710512300363425587943050117450356273239437047170050025656950829488639358347527853894332770371699206924487981243455577061499973696242261648926194905131937620898898145980428547624752539621314752892441445595926422494221075420623581327828718868488804989198248112681337105530164242499113593622598745555287649950211923089721779343554018554786960269460964243156325024549199922309184668081154548127211798752585823458721084334635025861094146899839269513127248703782731035802216148225924362655469732247825170982047480139245275938428510638968852964461051453412024757214367428764341406515006644102019760580113665043708604813643957393275059564518368774031661452144494350821315946949325653240242798700490483189043574944210980198254801583471719507578175410034394894143400747946372966340380965830362175191012662062105967732105588540027847447120639976242287460760504767065238417159113722487216504561455091599745738105723923172684562469596612606743657425763581119567229717840200719568900771221013905051284850663411683031247694085101079849612291356662584729853074728714767468457231552231556717764897451229989748326704962109081071183742564705728088754377356934971136511135317094256985211241591126842700702279762231339169570679941546216587464020390027140887011769790495823139514948528101191980147656815658001617624667037549731757120625207387261302608281524988914476906501958688520727053051386403389607326634276674878511330714822349285277213244101809871007222516255590200722094563755332212152343488544313087575838367982108274760408273359189613406037020384911674169689799171028526134275348057860075222635088436467243762464514682956836024440012598976901759613228310972303094691899633204872737792778380671641557041595975597677714416749175631150598613723642432158512385883300889341949605429832838415743328819453575805831187135534680861437063132563298547932626878003650763887701762458628571559495148964618260179493406198590496971209837825523039300940292840208142624803705798450635403387997998809435619211625468968630422947339147958798412769099800757318470028689344419570316064394835623943779920439433213019548547109196065254940404154667621613995738480187489991111548359973612323130831008265294893969814497598397602844233350427047615093504011631329621512199602457030284381426559418999260521959018296580901134929931187322889866440359010737857912339232820881790209496673795479569816877245762155446445665066676725974189514402544623428600038394333003006473863695969600018899332553345420250795522147040105433387491431643483171776857729411703604077730086421543937522281767292140233790111956795897091915990734927452798819207831607374450000503965669915469095984342020750874740813688717839163930681460355765398528949386166439319378141466683017450339753165065259747898387071407679247810522193550064369430791690739028654192604118184518805766542086126573538220760138453033678092280768464390663906926624274021252949971870643173356194260080796056307508691543103859432815165791595485238020623232341929686260125773603843979852107721021548298553628750271501156853304532977091429110033029802525084641515320153321051351467890218431224571078134289648510724963612924070176444826423206766323608943970509253990775806023211293597690984111655893586559034982445632163756096308981627023328562062405257899623105915150108168904601833301896053640722840917645837790305728292761872404000576453859956117031984139088289155204811092555544051849331326615189211063709793321446503540023878052018291009026378067292012413518284801046326783831348939080688000659825300526413939821763691314642071899497906161753855344249470487012803553565652330207322913275626493846440012939247482629434695677529959124958221050974415253352337615026439003256675763462834231459990929926874463395169827397334170313548532260621527437255801246603502306431760468659917420307395627192791033766340019870934934702980666796930662283714955171413581500766480160360741564847490141988186149415632851352233356714945908155143847428356512073712558694829820673309203274229118701789604400780313610857058721574887893436647991096203817937149510448780156436033187523683311888045920131792479013222326392939258418020211607276907753953980842261434478735220491913118014808509032971529857791306369162546775872749183914780721135500958470587128229002676360555989796358211638608898884797722520660006167714041382738683907627094455613775376717573478317658796463799325872486047583293163765770762075435300752984488360626261744999784552171566284711809616292134685885493024179986722445145581759822380766801878158153763289935951061596264196784327103254686240155165540298522771359581619578893436682823169178178070294837216294770854030139408163012649900751304572779061922162869517980748886303969489119083595003194440721683034867108472917514446297395984387809304140409359153797930380147644546496734972789322010742917403047267900307422182189528346392162330312375991999695464637315426798079754884416018394148289240450653381798085320420749154698058449284891224685445804476617397715482345485598094725733171287696855516534693575992799854007239653360788353859883393246898303755928997458090292335484215796388894609797026504095487980789054666719087646711369534521659108676927121698413323073051135719439147301025804259474383196428212116330291120735976658195942983813188815405128400721031960846651310525535567331860320949682088420324896728987690798762994651795912275767546260946277673504845921373961134855834189535485856698917143619465418568304483595279148622108711883701149994157325597484142692337999527710353712237389216676295840876047149586603180952523478191663466147443987532857083479276595797520931792934421428982755072483179741634003729758070866268438801538519572016052068922812357083310503121066147387677958976477868900540053665811634032274504443821937871588734726292976367621976643543572591241879996416315241582960151171815349164983285107480981272026030596050368276569596518962235953353402051034144241615985594200734356585933885270278820089897599679084084403319769091900903489465316831932430831073762460034475148831321459071319162746541935104433967389722664173524811303398059845426081212399437834689906114915457095709894950666472496977910614979032708974839661252894307067790386198809883493757590827792762973409440762307806170421673709593451661409432383862352102117569499099670365528469839797149915840538001622295762512906783511081252113683113110261545632234288920950820259946978305624972833183109098320403170539148758736221332850872546621477033726865096127560679938773561416337385221428939446780660680070557686341032690109095438096399044726874159373637841602501066085408241775436182050327483191618581168255588057654470084712899366348835538795877169292208216448989417005747497040841954408038188980078678648839884438629316662964950457092355013827980733781995094233761282160369247143174299586043901318675405523007696924343458845163097010833456509259008661850367321378422935408888911142542910391660463404546753102177229264857211955558057890983563040581702892019929413553569688619271810279498439788673299479738229311309897886945954740328562381173474023991592741894527192656686863104663371085287229218639691577250057941446681650577415448138080484700798610536336053013812555935230378138179197896241440017004300754027369284953356622262934861180797470352490211503028668759263295612170254522223439965863305721472356796373630079891743821955821190420207653374484434417511176535991261097898150945700515523385674400434376560988153790715083509549657937506236096957795928703853949440187891937518805474022446204329240598594728641524203267355687063187146089262137090354410096539316879215492319540104149874082391529683000523047788501590869012182302930010828026775379108575942992792084201633034713663353206852311868763145708618697073728028174899347346380621490176454939547595792464773372103692133301363756822425915689330929941822382783872840999070338674671820242866162485188262045653273274481439285769648026626798171928448665742560305069153904500349718344258859536120999382972858293950139806534930700505658755886870660150384285728426385008296461959198353220221167192937599072866251467017809181032646639199979521844022502970788738772682971986102535908759177775518606650675298637964943733716186615706670483544093538465983739899183211075682164361954025984050794057059019847297870825972077132419932941792412420332720191890485601887011336929185613784719940080392492684056836902203869956773256937848261938463156497057338741211361755850179713054951351160125859457927489551960931867031413094894102465673231983723115974806324037286483724038115719627800996923604118471455933140864451340415563823069114689101244181997485927477448048712813996784851374551257552095855478302096164876136150839804808155103978312127267903844848099309331087723030827477767185605963758071945748911643046276963009295750956849113260842006535263798804149436841525098984858273500942673378114800783248697151520715803343756090291423419341283217946104413316270293189962925597881390738472336400382970073100883640061312718895112969111175852158314251504948696933807252094754883843442662193438252419303784371705622745178676528445692823963159939637353441337817301458680885627604869844763022433448541845882595702249694575672866947092952715761590248077776353262778684730759449000983985439801196343956237690564063466224580587806581671644759301125097076897660418721259635443498098968909856974078423581421846949534342839893016949802089227058971812771844622260014175463476505583517543201116702607111710392452560262544491148132083415306570166170964135626615806307875608157072840441104861654852466248820397277334971756088775646743293612339066900376011919023576033372238628419928249660145003184976404185261247810307444428805787515547422809282456902816832096232966033109054916427013252373448208849841752569287215735658757344144604932551030590725641080140497267320514643168626838865631216070675730219349907293936458121531923295337201891443078486175684081517573798928035330024694701064151788179617316848213235973978599769953642591611734494871813745704026077456749119559059219888585150976718505289373224717958708567200641617303494146133894686565941453093752706017421038216458491036537604116956529139899917641635869449048015873162108698699835621755697867062998392664938026582996166406002666792836076375818464064339586217912001081839864476119356578373241704868088499804854745720844835835657885598436157768057043201045493657678210637067444944868714144571567610628756858020467443345399057117067929112091246112968249527997962079880748515347388775566769236990857580442316379344753323272229633660813593557990638860893716534490055690022269589155164565557867948517190636947680886150297437336909163407154354105315553441095157750564220119960489508454280282490792040414963975846475288649128220284368388707352954705671317164310466661277940565478339923464862907466854846471196034863578608775593881986265827587994118560091397647089916690889702699361031910273163650775280437624565519752288034107591581164303946215578253733507690347380767082775022509111146278239472261027721595011089862647268267561860330286526346360075666450921320110273914304030925703476524168643366744248319708388875064932288915298025724720442139876192525885095831606279242509361076380058041793294847494551604240625280361857470876708260158016057876424751231129135291556132438936056746496483682798558773152423319539407696935050820883110564652811987932452132266719334695113078512225806203641528571173357362991141647495496086364925717231199743449137936990306007847506965495386770463675694989050098133689510106934056094003309738131828335598096625097320251577541473487703014089908862729822106177912296267656242580767253572969076871932866232451346451691749192303088728438259202479895602569438761047950396715404063118932302964592447583917966866459795941270189369570651500244809785708352730726242191901452004108149526862507659005518996886820622777120820573309976147758313851470423164891239895595733092902635877129601094548436012575609072690275866453822516643850516396399237866692794458007435350369263882245949056235127507841320739628350612554836315891222379917555996302324305508699204244155254944350164872625192862087039158699924797582516823774439657126460253602185585457558182577239181666423513106102732715705469411565277713777219449546313279404580051795683894664930622258113162215698715420674787134850827515650791810703787221051602853650334774240310943185661813349839291579154072070023086527351986994644310691747362578122647408486037292614338766005699898292538980353737271743577152458509713864193736551711762752019547628575480809798636320863860073060976858287791937602062682103884892236676358666920288132271959063573666381612213178429355759919379734619558458874617791043274902133869888548764412790845445223160768261367446891472449575115716716051816765906683692498097683905531133441555057462718621288913262558690106025084703901439835877351785882246390287040460382182218586253405203633356589603002943112097698025838122365278879089616484349270963228004628782514596850218725843655674397362022120980718621267987057717819370418941589363832892144690628484608300995499507416230712567537016585448591768658060011991012177818102100956913785622247868829022349329319049651359571138218338000426432165861586217406377678492927019266096153094086206228396851750993602203447062308778133591689661148902943684884435881511001189654818142383258163254331307411894981323073032742205238614335170421752428555181722879546384204863869954228892194670011894799663609245173751736792172869153041555432215135116055934676845765769570377604646882350468073761884896241869661794068432247249224286456673567616009852991941367973128128824142719590562119085170551308014504563456378580472884518250939861537664338124054143694954445727191135767794191007811548596489746045880838444850890698142824220488291987654236650081868335899818466291416289885823523655501735927177606204261044716350656088701895316727241561262953065460962963280233604358790884057268183301073277156117559857174252313716668713474302693729272465968305227878430774541327959341208928062133183283399982993793542945769616229894111695576196115833198043623449143915873663325336992705811016198935994172694900752691963039571910537432907230610156403347102786514477996878436263856662906533608016032217545278259472276305535045490232712968731677382583828369939454618155520155237328726424940138090403256792180834692253238598741259294573238752384113362643239243139034265605732167379233075002230942407486319609790914062345568237136996511594095971568624076703129857311457893046027635313948706550251523705311716611671489788725235968170715730178834364047903085633590065683389456051682076835266756971586582771469697029370489827527588531375961648082915568319787004829770999624756292948895058767517624451290823267206599255981772639669480876671697304623946074674346374915507858658436648691353901557037526412814087473070159153999435986496689766617810258643870533601983579357799652604739307183799721979556289645686726847320268119938552316655347898997252937424904601768071111687449305186719945311924398937910805428070592801625326326161982892968007055996950424413457392242295761049068838216734323577381775297554051745340832091420260637940243205952629816065127420003005669586489377753077989112613920241222263926756264755034584499448792664307513090861741179944172221102735684976458001827278806461435730343495556423409761360523507418538353204799133845546194104295996620416464931460269933061631453347330167112376032835717886354507138536871128189528420178148755599165656253413390738812514364925453269448862592421493544667790445050884025513970567121985233927826551692536681534404476431566247358947210639854524559230300906287344224378978756464464008592781308544008357161228323231667268939846479427975257430582492959756532217665376909670918903718863348655196310095729642751062466528670041679491986510976669565465909895994466437151063867802103040262083141396376769798249672849469983853089416998227434821716001593157549195149880944990390285761012634706690505569013979395846653805432620367137698830854996432801946434718957775551481803364021589752392588829155328650198765126078282789522460817453943852851590562860201922185503450423332996809136146594801901161356751020495822273586918357458340950789355396383628480300447953440477735712653287330825039331049584224853315757819498906204460160571941859149814887757001440560517568034033651853966873509155523478426139886126538394970726655118530485119364072477175940174623820718036110321870610109437257722879507426440676450645050490697547618570666200973000102220430556832543546120493218413920380112325383937088856946192328172187461789618490605349144326314878045833193522529888928057405963262401205554076495083450715256339743817779072605428530535800774972791859253049133727841192070126672607483618486489314287646679384149271525217566725877453860354061799913341471222871906491432876820251397899487657379370346819583911848117551279755650210422823510443958236963904065397493679372581157876159078795667534461834850241908788680434742613264415337895110975732099470289743867371161555169335522725934442943189076038584513767745159894335737969039221264822233972975507894976708365787705110769087508867661262036578335940395978250553800474682986460173867233651246013022281021024750926060861231921050165979209918683994667996378086186126930261692952186712601196179430318674140446788815972741025449046041035657281745984917882819456619686462716812371799310510740687798259291650031450334521412679667314401078410345955580170160581822393571818502384629557067561539522628717386616741297501442691919801719928421069212651907143944554123185928832917353247992578290499100634780557653385283800479073345468438045931444348483108674023402955013402886673812035524449072501239103832325513809331748605305902147139385532036599922625663006400685996178345269878521425932405954125482198501270315574251015287588226433230682590133630705382284579163411879393619517176539247924131203014344948099224082355007120742533730451215890011713218939861201150877355214878362287582001058637048951186405108226220399926252173141797158220396648107579327048046621297188323866043410357480683880302628835106178905615269050982711894163207471362690711981752643932945257396814461084350705221580410830307769612162332627544416159405537926272591237978553106243180359872571813726668016242272642094206645056323636503569094966279255206506833518045836054858736536327085825770276491274391871013322695939624306793713431795562623230112306697360446790611850820762256875369595609308777374804714031356423720609358429886519230193477640616058966244054309700867340988962707808111502917016319486012225644601787450905080051061448853782730421253667346811246044639194667396375309733640889533942177378262736846476163394555569425120356485759095693409775346762414929107672421814364335169994515198958025706746927488759008887600237665093392986218188091532376383607737387282542883849000233681993088642465495705434863977356688628718658305826939806070989990463273658348399490692993079661396217193119526052356269616694951474967854901896334694016061108898571716469920738236988430126153731792800028048305516256707664281101543793690570948948679292954510988123085697271148625084946088401369764520214772252833248174677747690672623613547816578617578049501312568129134086596295636249140531403506601835783050879990892536876638270733372456308328570794837921815773189658136752246599366861198816147610720795905400690372559060009501969332400385103762459872730936549750828962421448613145649836172494474077817676829257785911008009428312975888063302622970026751436569120717535457580625989200460972850323728053804907423265192041132336564725249884086406041342587727604678729738627060891527478968493688044636980013417275274507986477444203053068235259449969744387385826302833820454111569483633100923466351753492195113289927732818473371597941851996976578173594053728690290910286529767319398704562415523689473623678963510074673728797971001967865149460921378374997700915771851243742254623561484650247440732060658896769985431494619759175307957734793929605179517695161144727048625631525426915956117184733213454097520578398189969220337600704493167300815704769612343100666891946449244530049642015785491451901611667103943773774341185937143222164749842934007009114900889766826230806800945064940420012778092601558504946305212020711245657988049365173991581423465430232331786873642550260632293677663559164962789244933825945324572092875983409154561381040742163848477515113447786738993540501731003236668128993583640007850357626859640114602150584624103761339877212464142388224730410182674222953349322738293494249134192936407312597922101024111080339615339813774330436605092361060877517570733247024600307489571131224148429269892851931262502174588836864291265407637255864455557247040689163874381264885803610299809870828322433692980511872699210439029632445796357465732643662626601501500815368491651673334181319552335600961674186669456428282277045306368523573508762734198551515188270858571284988610759502386437791680818605783246869955528153182501819652168133361782816484688345430898256710238740493637879044618996351579875585217623656951019773400912769772563461507330987640706509745731346105567830783476335495545388950580588182635062158387000043633229350702455128872434618957598481338627109706251220046060725203832503770897504556398582430005473364886054994855271287273514030153213212173297694776269818602760454802470426783255666680467812488613307865089716143792142313441668796255037589546352970597022712896926257475628383445685805436246780601074499564047515168350335007406012119048251070070960832939716437104795952694294853408915738602091570473807770155810294282604676616682096084781320547209345423799534714440129535647910567875564482371446060713819330854791068087517477783816561058820121080560109540100483620315575869282196681417035222591135667547441657396198110773192898569848453080696688102891176690098187305085327600782662788795286762539052895927647334522576863853589863842215065549510927468183911173328575718980198219739139787394961611761506232824397511256720623519153110910049420260390435204724458122131697402787387320339158095476099331529715088629973731934417420867726334800588175860766008970944722865195568980679052228350565040857637207915917585021996650838912499463443234315610234632830712528750316084734450091646990854846680188185420941042234098491648096867981858984156499025159123623303894890966846490206600507568650338512417608775456960177489256640089959207478660363555888283905325302212808396668075487271914866246216871232134094535493966170150705105525588126562261070127577266185953102216832253151107060822836528389175774459155388802372947629489812094176447925640544500076439792783614712714699775516808690135353384878415780110613359841069362889158961198054138838947344013041537144389557483993617801441764805975189313945113516465405046279894147021427490348078142005537706917367567198220538373384297384419680508286720122236535032086403863607395628433136332078750041411608369792915468916055914000892033161877631613594609782157186755102834830032756863643423608596660379332892700246226398622584549750017235807431082205605876356604872852967273514473701260813973071461706336431058187930606513537043465175927936130877229925917818461942402658892670076621281525681209053001404172445521022431942681910690334148261487714112268440909234727786960067513381639578840743205556527563300939574716425836181550451166578628306288326520265728831435253036077477741814873276229827390289513239743324183749067599506611713638904967807310449826658700188360845259181893561641422121767734397606591364878693021000029934744741242114562632996623515201115712085860470745752706940166693458453564828540502281672063006533427504912795209807123984745713790200913163112608999779591216817339256697412978000014308982223662891807282959269738345860171914153649688343854863790440139905491678151054237637070893591295383355644279035611454166744975067587811722931539650087464899817066528087540083801925993331715077286312424174978579048477685213033704905116649027658952805712283786180872522811762762069603971115611626162476767569153731543991829997099594096732483697820819987483542329900517831989209276136991741407015798604964070221843033960810725044056480378394710723552940489047935017321964877176227955335906031119929736989848420100836358237308240667256199286566964372013327382918721570853739672034264542946615442078312124850072394084891812146444464797107037335949959088097021324804876370014850996190695778788491751215863115527322472830454519262675696654165792743829776600889324895619267815771041417797035935290038924801341477197153602876919139823124132240378055717061299842133282156473134277380828652850212136975112254829176439419356915069237565001326414663893023903991178094834205348626568044113170005687078806622032643799274137438931109306370447059590242079947693971932630808110965698932566750508974680564863931683518126127798351617660583068747973177171541604935656127789913909365127856901809989536715640008491083178637826105357223072557105986234099221209632762357607461418631793968117266126529802812383993529228188933827548208092002400854511135093858571736411752979963210837282165917127223816292424388744742407853091959637189634877408756595380088959345123045896770131724799181504738166497927479885144240635923928054241255143819881394000842589804781032470222527554413858914240114603574161308209218369978552078808036225187792709388395708585333970186120069455485971048700490099123107651447560081723293116483975084070025139927615111282888672762124293250738041611638915104247750227522868246324078940999661038476034676787149155247843047334198496325065884132127823449838739427684801304411735881822543245012234176398001397067318381703160391349161310660605647592808259409449738199565408884388565814175938161357992449632980991199945534916816901323335094459415083830419746776897476160665846259925666627852251316967070824803451924384060957282586668610662518003842897137235086655033640050615071421854584532851820668846763643939033501950109838754199183324316945298900764451431908625891567337561085223805754950768305246912288261123531964514145047011784656902648651934596717098413547908161030702725684230512712892370555908462891271475204157349177143452782804514180527860006456326684674743491364473943876741701917815451676544301551833586912119645414981808387092961385041863547586090865900232141892949712470046031879240663848139520935471021217735500763800589720581752680465904765037771224942185576440099436207660548769950933475891367683733045133356528767001743576900730185722744596242010387099219834347036423813909402043281655989443358967795520519708943422270437179007645078878296944306914328107009186559303267155810919612154256778162907270477540934367692885324117167088152853970656798865550698870621661052895761750266365872703180775915920623463989097918067097053834545341406388027039065248215158365511317180635669234461068856621966731247682973722423820925381331234232760853169458910207186862212333079579291957873207240288937662535933903752217241316568385727957615677589888547657399976311784844216849243220777657683034900728158046258302984136499461879318576357959473809359182280143582526754910649619722958424135212761426119636737684376026520168697948710006795769327481151570295134834706453531380080115786371448348456454038532124693793108786080926641246342674894088736716449889654915172472455672438979594728614006778020056010039671830162901712362450108186890115252837563892877635829358867430154801865436867819337580875860128281270316456873680553669859534353975025958588846881714265330104003202569319478755512068057455684506000620049490243261325032131219736802644261708239399471056989051773566928740222971193208335215400899451986654160232015586588183566686338627182538344313374719876462707107120250595077328661011710778466717422720035937915687543501258166123562037501993801992522332297501319668644825774488689116892050429427928967227716211719662541546390079884013647384302626567062960255473983455038219921365267450436097690465724023408954090948994607827768155039532307941067726836609590551737987470701738309992959011207583856072344688012181988713215651763082506452006880485496556955222303092154927303400296577844548881611009410324226400299118310453667874297215040494385823274996153524596149825175647028843995653798686417626931226769362765343153663724962665940691124616977665827232404758408903430533330379966168511311286620604482858127786092325313475434566788035455825606964290120933826730139345600958784482413564140372241983007485753433673362509923706245448987653344254723313319807444011256586130339986902289971361427653713602245730204774608195567882693657018496872373478884126817479142220100940070909952016127340994117725249236719831666455661857549349049530145148903067037188854838126784129281113369145265819424625139218825871647390435942976650539525291381742229876920022843220589423810043675839802835015488324874278487264157653678836527227084446726819180557424819424875600963108450572323730057371220653417598253488266669352077761200228698870523978901860776592649126033042973500884903121787364792524464685905472721067714849935100094839942605829988321891164977040864562508504000685786893278572537934187395778668961317859584637192445316577734767364106830455647928615837017780524043820920973670682191185995532082195524947363322082736272740804668708647257728602698208975131218185641917218420563438861698974233919885658958630895621432064590195953140010505027510950207141283601852975883466320957782576667779768558709464428112592655701600529633520566135624226611284856137282572265695064341826984177098463389021775175162859596716481325642210048711993590727815970579831335700522556139710010576923819600541638294159795213962200768062518756267055273393112858498443391812231977093701059910064975381517539021564637939667566983386605793721262846055418112902853233777731821458191962722092314583535780558646136616235832222065819126225048472809598830361253853281419818164197704521049707317937272241262579228343587368659829990839790006458698309699843363903557574950384279568306138122091137025747901455808593074642249668360687349488068110895654462436986540288294032431262714953658486366911325218844042451665580776961857631936129276074850724632086946478015994447393941529225250958914478593185769060845231635247562360909831443508258971084915702902766568672300971675012380651398480828508097793967293040904861945789963829198256961000407762128853327426380340510513631392775148806634984785577479253892606071569395304473216176814015692275070816131203776724121778976915531564923288999218106417292983146676801927739234017269546058045109929059582958849554723766935760302453324561419707658184943806996516867527887325048404598713669413758668200312511683806388805045415898023321200451813695755120275493289523462692622974652577937599504662448079456676703584007275057461787528307855905404495119047931676431714863932662002375111578829656839344677505330471595592772267137284055638260612276932115225169277097362157162858182041007251469520716054369114429414778750074971334355042286328963077636797576070404956749004920287038987473320261878000330274932608430734752325467720144156119920362127545538769742806163129453437141140989491340312538664365628844403668873700423931362324118224394739908146303071571769042792193186912651081485021058283852881425768314601799649116323418383408398109962488730151426441542867283608200767944891122795995033107110957480970160134397135548193552319386379265875619498682159890830545786255032526170271930048583500922249292756271138522892824948532182501373050406871959813097048934076507640741406365114292007075651520137977956133355151965826373665937304974418611713078825858059012692762449847025928981237727846355958776137856217674023510699006858502140548008225689276631860642522759460618559203120293667430665203170561222981095973258811477330093738864639191283773538048913899283092086871962989635741225671737607906538087948372496397760954313340118742095462736585073168233574222596342358809218024697004983422694179719551333724595254130919744423622183908638645126061628829462616726822869171442251670119334844277564469142942830712582276173833127049851129350829296294051597957697145220035526604249870786688605938349402687916475859386448684816309470520283022825394734757766457810092001343631636161288523275899851235249232967449614416096471784468852786083730775728867230062914500159888968882410115633130157281433533433096669288308492581422204422117315645693885627561155297095213810571918192340187802185929592805267286501412637853079265398327932254333512506826884335348299705567121390866143315804055707528528753187010680579942956991183500055065966284032950893053568756253950372715066427244034831051600519205580975459153935854292000841865796651067841078666310032236014819127277391683216472426891585616348566344661414011412266298952640453783797010580414393127021427475780777184993405576872851659097842222665846471932519907276461209327998003574858612168959327536486014698679969079638904159743332628762209823715855914327613203477583275333062141870072454750946552256930026101074141401626370957157418071205023428023707960328280307048201682097717114275086828745918888260682075404569857247060298184825221575631206098265648950476325454067804734236695624759710589690496731629519106912660233130206853083903058398552101877554685504866646438449409247858702928207786879507203286241470110331944506649385259261385521177452618069328649823624040671633353406391225253795871803341859909967788783705630483812566079965485271320294471019961188376461397794083667331906944692498637506462019218090823222315240930889776234440838647988037708564416555299913018133192403080223283145089473951039464762224038866555168280577530108334635938929673936372103602706130078518064679298880645556589196474721274432206991015116632044795287878819122808017741810185266615403960202783974113207520614183605877448163590181038941827443656183378060138112180736619869555626607637295536155995670372150851669444400147894027573798299177450588196166646321006423290557984231638406919850565873322363589303076890717135277261884307208502223770203455763294628691597837121643068569857082157705944653316861603627792832080026447442634419211338427603123921247118782938514019170819693343391521805447627888557975341488520234087797235099175127289273518557435496175818015197786344083876714940034088841037185037275610841282479136710192959187617469809618089584191573152552056024556537633901552271529964898321392173817784206701413707400224782927083993913059728276568815147684171145772489727441735157113308933938448095288882237554362852909948810121836407211848839961909994688288293359947869064356176079966043989541958625256088117297268741170638470181852828904332749666526850348131687839306040644643667855165626740776643602297200987674546672432201846296786832088642492635466140151084427670042849612353411624424785096364040165191440636103754366090362848317071142915769883557860383336775086727921596411120229953293367662460284117096121193277765915418559274264606571348895011406367612213883657398228271532900618960187630356124586177755395927036269568594602245979898460005882436161259108179059246913907013104008362272448491676358843680490568556954119478295059465629160412241566151049750296536733153025031662910353345198047995428539130400567829185735557278467735762123315341295798055046394090223240835217687462676715538366274300022348886498620797083768850205361361387726612719017964760277968163229120640127177077803330584524219594851185930744300680213201029407285907807801813148995376694627802621065647174613845605564749639871126400562501195485631484392131468632672514162815416862277888468502343976162068894011806515164544560598740665221741207365493834163399796331568867061556525853262327013309317811473527171015446619162607619455139820493733388497537617375988389513976207914592333052157276180963752224341685206196532950578864293874379789749246754314529228294697031405267823740711167213446608539739756764012539776395456830523510125362889521083791278325506428021976276887710088952350716312675461003482608207919750483761161157407385326660991608277520573793185131080944870821042084827197226729073765945812442250623070413515104365242615659364844868700542121735743880364006780188923996968898405916101310051018747381904496575245764188250149281215726872036561384857171272968924027561522631910749489855855562876828709152861163287865907454909596714939148934605116221629991838815543091271771343128502891034073146239168470260440555950658478673113746822590014480394195603708427627145773043059037380813793886212213876331302019038053527483665762440160813312463252891988538448028598525163697257153545610153218870847293935031967495881718342152467634887873196206656364638286548411696235766586053422973496980886685687457992066505458324903937145891784879124793236360168335289183453941836313593241900673445197259434275516938372449318446932283417933603195590548677187263083962867949540483454940549837988793886247444450732106433435089868769453878677425140780155507866268630645960226026575494144045570694901813546417728778573783164890011858349690536431482488747795562367320276065613254322566941509404759623217957843318236875641745020500120916162153758951474103371227473725448339331325792341160506966653738371383641809200738374889824115428484976760335410040959716025549351507950080855500063515296989914055830771154317243813776934990804229288445581534076437815469605682037425413970593509523351080476523462352216853238995331201323697312479807491584269371931820033231324661055420454504536530261501409921414980267601185342820566443152900268528839355133507000779032448677411152587895110213521674596853735355296543376105207910610220211112556422222807452104503218211356857822745414762139728114079576921858776723885059012634677648449061725409084464511135692876852837953974571309846029538445030164741536908612466243450660479800065649059180441411620677986131411234961193447526300407706192090121244370840312867312122015802553161420784910462304852501942191285509432350252081926073384527273519319348438805445945012323231840868965786794136001608891990386059839972084115410432318524414556670193448955866607449996641071542741734518346700515265695083311939428661905160744240743829650214434104138810048451505725694835764450009252758472252391842672435569357248572881490773362577853146122239124323339083675916833634853428019834787816867082782319952856536167506209746842582396849729958771211004737145310530962108863187288732795870573636980960736604350593398715170377243389720508656078344687723031216968753269693854326045281570669082448278093303807481047131066862212660764906407346829603432569137074402024240311402862136641958540555361335294408892271470039017508975820476900329007188083227374591851731059353372771385872179580674272391138316451180750693028807810464895017992247941611440318437158229940014352183817809226642539318743820249590948959491787000848176002410855835598012203320982351309228938120269115267806057236796935065695584097825143755675661875654416766079125194567724736338562121722386063637285999690260894927806527496985182890146150326001714890563951935833805438163147168074834876963374992869616890250272410273220386365037518777301975540558107706687821227627371160538368044236666359975496304099970954452598617329273732849233269162888392709892899398633716396068913964896910191651841311640137298344614625497899228929644774897511147387075369095647759435715989379555736079325388709931454723171075723106395116863011686142090871979857721762268566923064144785457793482341601163427130269010109874317301441018186020609919054088764138883685334446010655124004740239738950563205324538568858001600789831213270877548688483139717218521543251410038403509032765810549753783690180871291475504515376141696459786782599383771472433181847048969125247926220793733984114791966916038522797823308677729543990191480425189516629089357992434786126514452061007958186323113204607326642572065721367049426428358467673425206275021226559462035415877006201668908817959714645862677295833313195825272024702548004326724331047558730727315350027738475502625490169311194794352730175254699028586796132424372304872471584945083691172436713957907737880230059090422192726344467397723240102610904452751835212600807491184291144458806635023903785982561816896992603618420634347642032154440695149735759998277041073413851115416706618110000433047757083496974104843525167257803586411720247328303580323831449790312072265339238416162683544680911649613884051579553015991340223416042814123701034430813164449911578987360249845791744295200238409803806658455986711999710904532945787427560721420492571481383112738092445721389836200290666404177401006136013586863157634275346155640902401069681843786940761354830397070852935217437922431259439321154448568425739147734000433350526719290175670561763727774676890287937284040665259198333202177203340266594596006895579672780097351240857763803201790850296666840665557814278059372903141488665862755179890938152580951047497837858208162184773434097548137030904353007375313611498362895707387570561458525149982387432777455300594127717929309104929471505961579484793268161676438107707624981125755638638530862045954752811078945382342901322525356647935372245080409467071743376720299769092607571129541328365075105268953564914478440705087967599180641583019258961200742304166970345434797721789036404630005696290674057738271511185142757441338061139818227551887217896589832097335715961787210745701408291115210783249117071552834834004673027623557216219286571130161406103965233532384357734402050542487038735969604129388314312280793050899183881434009963956456923326255363904877913046018261970928666860893239905425867655893914435148619676658550401529459495610349083718817872763289487123232161122183410225411843755736444397442582275410084391151513529960727948001535041853734615889868767750150369031095863628108745641865437172657518535448355592976414688648705553968359543884789062166205341270412481264748443023854335889720680772506102677644125249407927205206596206610989157057526792213608847888882711383861202009985926666096179162546534306724082621184107768747868205128923505245902076845653850771863358000456039283033464888000734126371160613430579134936363506135291586225549016949993200773056578023411489415006371842525827495375847841560271742878797986775180097170670424900262526829812024586432655564612712698713889097652301852302697035391639410896683459715188437956531478947822345952642439128756445228448067963876428236148098290856631115517298429991663353970772189287339141061027137476068329386107118655847225573527661831927351772250458396450041253533212093388168608221719228622090580828342168951805595579045298397117525693953515088045035650081926201119996545526917751386482112705756719602183527101685857041133284844534445293098637422285060695319536084623345768095724244788745772553598501570275367115617870303777928616955638720234552082707224599328313113852371966986727891351666667030279168874000530468312524433187508568307629893447864512262202426959817569370385405642692814319224520765250275350631987589225190227706550584049141492062904407410272991271554045984407061751932761710038059896972894179403252418584294394674091777480905974459423019236998667010209696113486618819975174643034177235890761169850217366977247066268634837391748031742190858942349067166803780975352129737399323691117206314482142330780873349076897222590022593334713152470496654474252010632346314027623191381409060556297044822729027405628485535140233591922073466529860720950831946387191966533114879307475599251190420946002314011353112233612031615991419687116601029824770639122034150669795312576117903604514482362231438724164339333024054495299428682949338574192271872880921135991744689245343141093196709683040329448834040632603716580303947291211605105654895879894391931776519139202012714277596505867972333443218436177772280780475240027754952439060293973581036960313925271065929121814447645302630659619019761803036128191521624895069696473810104969747697255088997467332979016617654433988941924047675722608099682486891381374022056619904657047064272888072815292649090076998602584452483918661664407197061738302664871511291973526232185011885384252649560261085473372765262236304689661507318976016032992791890401018218612787805787311054145624120693330539178055314790652735198611955768612818898720674673951129728574152536071509410361933270721112358471289636067316135418026487526114016431234806068912151967552877931481983002446638601513577611212794302804840565581431787103852574038786371929542724577279173582794695746063217368926125397924101533289777657050262923870760661034849794730136679528650919142045079221652421560765929262894769950688415294910816432461012610885374607910301113322028298263428818938054612965886757539513800306004739403330710804870024408808682979478469391983635896205438087511796384854680427169405529654525130177407689367618630961914124095612314147849634132003314980743583022017427817284337097356950374542471946503439288492501686375456545833366193865708266116859987238632041839740798009810634888878865332978286385404113532329773471438302602171059765767755756855145260197871151638929907960933443856552769027569800613637490179324944566390989567384799586098914982348937124232463263521979563879906646584122870583033997795151628778722007519445213135628262920609442498426094637194257659900999406743834064213996462312823989752038219627077461090719854955524393289301684593092065350202203362879831899912690563907753921413487728325568415771571484168334044582414951705713295358574140753531840233203228942657639324307274159692383924570807963481002475524360312026437417232402357060458966663049362926792702006390604906107767498907057185341032824628304318001986829182634314067642087187212003891610923755216075532430861129817642045348997481536477042777826678147623554215525752130197732376905049480876384154432278422006154377684793117025705086852481106651660137967965560749558699881523443745674523166090214858157574350323855501532920596289970631604376242105984173815888670881282672145265472295787758824779867526125555160896377090474518430003676782343414428173375361260250363129924677365634563501834193793240197617957405130837659797869387953045683470294264169048504916896491822186014350053417554126587646013913189516342126291328583801854429125973169203778837381833673770318643575935372159556334836992287952284320308493617642891041757060407648015892079319330220741867166115929107777778762810175261201955481372649126783865686729554684443661775172642207376216491646570061741769673819664353865007552166513225509448489260074670214444637190853187481127722495035103288864583895861799159133345217770186828133253694724040300529483474554443770707844678314548544484614963738403928430296159335512997834366833622234331042458567621528172009294771086165979816898629614862188833863683045784840138413911226548165407746617633537171608226097506518433126419917171994889240189961160059081290447787876917287262217578722192666987765681593053008658415918121500844173171510811411980234569117992320487522772831239218046678406395684358014106393417550289971577349882232911745750966811466545569177306121735528938057419875085446770074570800885749061851995819580877609058156880235873888105774254020814512413624544980466821301382043552037853427907581225440431877730923791503655722934600401778484111760320369067642040735314751259053753926911361493892857555511036790240187221172104639442455581847018707999402125784008771062920506143606317617530645237940752856582329855333231032580320318234315177451384502296827688975654708995780094524778932519169153932155182309726725455628771795676607522500934311872567692043991742650714181054574804684568233076504795293111802433808746928630608126758397810263622029220168489356281783682609392783870505192502128881801914016716167929311046911294874082486846055249866931923987367766347203405809564626156763711685753799968587517305514485346680206251874636697464187189541773554323343834166906063022860435995240246391582079033979208370430314539277058096143504691353031428054244071870738785716904850933645935255532215278343232881342671431724450982863692079559532518261858877359251528996101400733844031486259244705144208191345977476784566140288188091831173962177590867500069634634685860447716967859499977545421412058142060097153553887366667301834387419304372609619910505870562139823171268278556314306847960573993182696102248246452054798818187736132601851422169246106137424115701629571652968116077721245691825575553828621513360800352660252491997721032476312168750338811394049255807928688418967603860853177853897177221667547867332968071533060780254893928475617240369489186867868129535791259120826009759302988112094171100260259142993937741905102175650435608956087025440885753081542273247931668835623317978136654515406150935640411273959743821673112027565179599842215131452391267153369265426913637046146801323104437184258139177616752919110940888777879590436668591897670952374440702335884619490921136546260586014112666092610232914295880220565184712237190695851152221841838688237582786213590575037519552929422214435014591356597413451692881952539617853701926357797364322911907608491001920424189827251904295039330492346452321765604567309802990123222182969233005973707295273221187215188404542869191541931854789129891887095203137492402023992761251165424225143813631684170334333565321286214257435899838533354056541348018271967906446463254841180877848515672267949446529858137653727850292357083805267502483653304205878088739833219693230279625279875100065683354486321153867384637321962579342514004609633068229452485905302980746209085371910049388066725429011231132194292438981385801587244676748309644162674347408143229358537257086596327349731345056953075778875898053967719001798311594800624981665912013732672721289654809575192259602975997258096661833979399445341646195008008623793629267995024771554324961810830235058834237980432089629145609724084312459769374011507352421355980546494056612503598514870857013331292961992093019467206019555825019467376828840599760896529557059937224029565902380168165982896145054973391378925413149881807729818607305033574898213426627088664882735876400076012301043879475056511940598819984244735924944375502777170969311598734593249647222118101894266836887867420443011606920918837289440284281004434703179990968063065572134120621719841104094312794188539062152236574591282046094588187169912960960576046217562520461315838549154154292088001528464975169444768660428719851803135059480055158116211412275323652107127609149263754993583007648210311801155785646346499781680169009828186045685329992040192592168818706007841113063269175250870777724354438730189521236289576084304428512946148188262041129073312021175147329298459534182547774714164639312481855907493163502644944642164380829131288441729574181863706785300986506799160117792495719091398366013512264312519092329342165223613477733766363114924183640905112301390004208095239741727538337306654043007069094119992974760874140162025266575351711792162202997983359212042462718181072837474673116840105972381097669033789643468165439380434981621198066732921087614991648687596170936178563177832037446606068796172897219778967080348362894965108364958840967121925839461901637555064003740527550228441725027744654376610305388048737611629751551565226238870254779388196407541088720857073786782023971818849178170466960048344270906917478909498968002430908500189887118272525534680344527362578533983655972028902495316284420972238275082742558074799061709310779813151737794739620359414043876132561480091865564373593264633330622105207825902004909315918595614632966498944965032195420984315839410676945943112695033741384270406606334234321243900426536664719905012512940707801951599997097486524754693738211126677468588158826656404945557252964831374237386762340644653707966640124260024733113632885341238014667319038121836934066356910850783662005846744025108843772100265441036600987099863507479801914644951032732711657117127020131161625631347089984336640077185126092100934357254305751046228702440132425586236120117064124824292178116111634793873375158598397363801383359961605149555129254310065654430738312439843006781976151048658165734195247229786532192071274452823376807705951385673122840651605925950135601969092123620623421861102760355752406825939025818947671603491467064088960587519994007052720251643191960566215129304803176086630154614158859222274634601050755801581760086114731482373224553399328250797773294530991930066483813422884776109287160921354070093418016951261800236186822623638021770742128157103280325954573129768862114629765596088699347983687267671688821824847166017910866420733388019347051090437120898457660206878624497295618917669638711341075626795774700911355914758448249873239199015075734254321408932624193660829678568006314046417309918962937116789134943363242996479214877806630155031924372901629808209215423755859628132874344955803762108934314441953106019498061035953073600365365425011508529747192650658678950843642106935327241157382993515524663144687686333611725659613534977978911053674688691408084015424432746851317291304948015224976798672025796554428245435431391864739932308574185707805031189485728541979526007275983598427631113082152430217712786964491605400127264469408349724125115399186244375401504576244361020395632962271540832664721861444668630443695530131514627025185478794976499656600748767434174740273785109749153040356184781727953382107052328386617707809435127413711549732284859107549177751048953419552515190035658981090554277206584017618517657679574295695664400491213223738430128830179677239069832317704050310664096201773042170105018532683809086327705513408226669800590140272747307075350656636259209824197763413480091708359563540434471529485771714621998440963410179559043378376864224500111853861178798305500843241688768182625356481562551353004321854310655983855296992179803739225921841736323564604674879970014368585759409534525015144188201510417840140011111606765307761205020052488543267656521855085155657584511121248189785199173897866152255523428449083175496663296981823431288341491860119674310648096722278118346058965672526962440216656114243499894205504048487444606403298391227579873572739215267650247095555622192094687319069141566811489672872793741706016530669322661242856831728565633673843607970177186218198944174988980946928667523411864747726445754155469034103335891773822068039320483749272567372574526361978439253302039351050927368060590517343051647429664641741333506340719133740705185859564704014790007971986318086996459241736338626500211770997096125798582596842441847758278116374340472071621628619699162805575585484605077594788333750618607956025664046318581633367562804987123693477841469776151975375171704746122101131838403355650155100801079739995288145770175756142182094505843385177411900309363845454589290503098133610492979244585391026141307729465856025396681602229851401126068168337300482232668583473256684898835077817298962235464724652027645413703841406297099014215855523966241073901073727154892491630968171584808286182417367587241341106912772917147058143899014764199348427536059097793805699615018479924839035500652163321770781441595751087891532782811894417175134752839783036450205749903297291498470854785175193337604772293310028542068777692139666673026236241347795628196832515970550283479635243748734931911540202482750961146963238343070271635045533117994447989727251203981068314500872549596699320621455443228179313076088204342399077022188512699767621994421158989147017826555314866573630770532958360814038092672252818203085668045235348589080891174144100113928256693831397867057750364412937826761646003087238701317546152453373891166619679045925560290252746438071578895998087315712402957156267441215593643239269931665688533120688868430129694354439191906958843675626242570486341137110919135454167180855499358043784421212757962931285978226605149628677583966943556299307622098859804844531176226913247750536664457925653764943945821316833948889009066923758603886584829706136343070615313518986482296197973382741645035324905387759885362041227162681633978912559334712600804649106661897094169910958644919716753068660055786854316609554767411354101443852506504123867508180899112331965134813153821543762378386350174724638917619195956395645428847497242628661698163441268808060022764188967760980003479657953384036954733088775897507846821805920428750562148981784955466812941247937635261783508125155874405389522000852404945955046995453590555033163838053862238741199803732360040381930341113025021306716912000370554914951527860277282301722429278271908067479810695955585048144474991554673818202143211247114081871773844610499117765640057158713464074829420618130403438289735042535436537086755048503664641888004229493457833608157814266317630165225249002395766381920077881170981922223095720363922230321369592472564969004633668816842114021835074796413749657575079431248413529223481177738955979937975211879799551904139411192698613055990533556489844756968682215396456366155432247034897298958071681869751010263266499214965194876210141469776649464916479815989677786831371367016246733326108550277838815674109692770039510717339525688016318610319377948444227843043725236899094014304255699210627202207875056068512161536353499497374430051107066646281674699308252048753348662166026936933808157029875137565581706366339354484324722723060157561371554382725456885521375861801012572135634181213949203391942205235198605622965859160933283427557954070244618572419356356179017705347656059743969028545360535818591042941794001899628367594867104323601244385641889401867743048117951725220995943783765975779801747655172443023273609053575007421397758233568706916540511858727409777566136968726772089984837082756429291581422301910435094647058313193249985939397555246025190388574201003734060214218732581384825440141974031445369586161397002889711130584175118976949221437373850174300780565891043275443163710892888557174298929072204059035271034165213682665083390740308133262785861125130706908123356971061138704257503773652349372615065661596324112100091292396614301075473465309167844143502530491515699749888217087744429845959224938825786427525675004091933806702073756234067401477397004959220614947789926158765988615000718938098619855193608476588912743831896231515070545107221821136833248433382343429814021413188867829166393441313765214171212753581016321731840980728853721688600398860118350927571542405465522598947304334347272190821519884640724531288194780590612933370000165165245277214900533600647041996211434175437785517212391203960643541387920162918132777182448790012407281356470717934034277025312187249547052744451336552364578876752495224693306219224180158071504789911640307266196719719902672087867384238580176552287779612205291289957643505644388486409329896200306965757074353986077412594352523605849148760972019142133671098111536919116154443892648603549677326321493191209318397962443965416246275122494260602784144403476030506908791648163856165773019511598799075089274035781497298166731023599112859417572457434195560560288095060539289074639333377137189388805859960003480380547721653375107181074893475126421505630009246476228715478279059776532924352828447240283873632940217545896858025527983797998276662960049523060597750542900748622169996476825756600929536870726032359881918726926285642877181388247435162338463083103263573645287437859013366050969123896280266066403480394846773655356078670371373590075313412197578676364506903357496227581935103503961059914284002692404956338345021373836577813840655591858785676421794278816532407460338098161455819474212854210037373284250285551117532592707093758926098408290579599057033372955495423620805099008399778193130916230772251140260135398005018147331191798319164440522856144158133852834886112228139075937984508341608322273382254136718723202568618184134775099381938075907486720207189728084935530924059291683099168608704604455710267270327308983934867320052470176603409078325505945468590375884389845113242819266375038700670025460402715170591611120840694729570832797736397955904153545285657346184290156415596385591675569324407073175784670351315301038142707280499633103721176664705717885810761942116672667189685717963360333041449590339288361356613574185268727832979675950511246139289320808377412725762523952088185012893791504668438236235325579009778651116985041825124991816362814820156241127250918013033934547590346041019110547534784583103769903397615486626780215685445607424776153050366382603976163274052147464425428525995808657290147380396846037657989854874090767366930787757983971801230005504065277382739112305284653804372725315474557438221986274906093339658347147434399273606497365954142884719560425940060066425847611925386645186865619971159444877635198909109034770739385437913917146416957228577551171405087573580459789924838101827263713795590547316422687239802325631126613788681046856465895117684023057422908098247005587000468140616964600191770899828466532316734076126110999747948093052733868586900700548611464754109430106004065817785560180433968658691728870950787758276275498466745118812452466497974873210483750398540945695045657766035384670566063053323138110762208079895665666703520545648896460289739466792887857285271268320447906473336102152545783913595194430982185174711821011410177931893336538571787670610978613915000320778394107731238850955738655961482241696936170096566816340820905010235715829622066326666732636151436561916456894041465553811479699056351328202109484139017011950569516845825921481502258460089549206090357286718366841713894640841895446277743229700848234689392474738545320521314860125776344772974920604955420145695896337422211292190663698499728018837103083582673173154461134945785982348013870700910588007577512850287756116892700367543587195379104987591149703956020337788609111597582265277304584003731601706015424699154080917373986344371289813963805465207552414203979854160244461478869359279345447994183135371330775321818027085540645336085221807051465069178361026885113412498632985676539097457150702614866596592508373755116021760661540368825783799208953785078406993889481039527691145593406404611659169155391575147015909613631206850090858076492580040434743304310327984142757992398682156628989805050472001804731961590692230649012592433304300332802867848295253850388860378117871323619451298657014174788161982476842380891265966071554743339933029082504560630396402864118221321011648888801232701729704432580856488209181132054682024925667471101138491834772522468529153321287009861980251854125047003759561802968931998860770337372621251638697338295988658573078752895200416834385536729231115166924694359553364123594458223796433927692188883695750366843350336327981501020282810961728609735707901337628153125135033619792780936828525098028646340887182570351724057283049254626244325400060887655183095531976771036852684608838837250638569628065857670807545812488269115051694734323086589753532159484430513465716920870614203884542404311811436208539205599217789803663416815669762376231471145280243022889328007833475681961757356422308630000279935678098505749831930346430956411775507738073783433143529837483840112328655710256249947724926720136517982271011943057955756425172592138178026469826588171174207029566119187520153817970840424053644210514577925842800970382884850031667002574330168314410943287944025820514117243964284005521367643877474445730631804312307017224680097735136777495184849366733195566782733226239369106479513353385611718987210776599012693686956648127270507233488187407800208427763762395633509514427419473965693450436066912196430020366885430687118722149431165061635140925923916293238171286563413703692098911526754352172334078797670066678309799063046169270872410292401841068904761087037920743145017965432494667017284692148187362306108949708456058748736805875022028818990226747845850203009591896098055105869062377146223708365935300901694694344531092317782226196764106148500876681051672614039478943265076319243984194855778198315383380881239207432737170620012183227103901592325574363955342524221902205607625980177902708463517651257733326220045351355275927622798998263017150711748405920306160027380075032197153691905570968189887244274427090519663288980627963253001735903923529299735999722231622426629170012012226938038295329088373040090457844131166502270340933482062013741342758604783725610324775171520576048810906325259734907776620358547588410180038705314753259249619692272664890742808653854833354975049872433878067616072655653690084074015361248316201665325011897224867440800454275875712808701222466988111678894569168999568021073916010650398570790105886341332398850314510050589899370299921273277156794007644413720009195201814432468452073248688374900754178841575448872099339718769400890997146104676120216000016037572591741152435116948179350991155960161292586326447426253851007845813684757701974310910939121562682975124570662315380370971888658793908217358264701167517948910662935618668347707081271237652759891062191944926545728125140580404614984178980344126990899211096258902615804547994536435809319157999695443117710247125541038308287486524993736877410328026207816334409335294573081458324898591998606418816884947115188736769691565863426284189790306218365657394283965962952886822647465521611175592477813993564717067673689776048964574431605296611315666006012994118916590817185388053622504875751201071339250626894456349913777909414423138706723122872954472617158081204049433072069553163136984764514303255684637267695294322280687137493161029792181706732285831160939271555813739761719180601939574628880598588343229298441081123938426227656790626235399417490901515202488557708581090260227283674932255335160676913263473014430235515297975454439636705613448830855078022192743987051345206264017124576962973411950235936915301916041179981489235899682335364615212157882315381353684339203010346609103616793121324883663185062935427361206571302443085375412665394679719523970298416815088708129772872567524787163085898402728901807530844792967330203235765285806959706513614951309821314721580527127696692860091124474345968479381350907281224701805253566647875701443125764188931205916608049002164105981783862635731965052990904138127116540297414647309473568433495092310735891953584421065942398499246717632065095044071248922820737914742326892223933547837799494166884085175488875563720410610186595613377343402057200406997450191458316316364719645255437530229997366473649500587391092493595443039028284453323071613499586996210389477476554869467343039498161998679986614336931596583264170012294526790878638439547984593446275095655980431567063547918437844871686573687291691414319744909695642434180219558464774540741461803947641275280962818788749050187874821753811258508172677860742901373180733963421984072553216671058658542547821328208744043436799331758708194617297216752494261943471400343881097859330384219800179358825018522592045358687649467871429706920550569581313893665415864611466531247670546106893917090142326478812260152094707004699294238292254236686914883896994530063531840045074075853831775025644691773036632258899646488216402599965293662048010700955004805853509784972025187295177004433802962865373357829270729655863454491142344091070282767046411859117828490689194790873777857724529083099891500385666546376826802672300179408997567495792312795050476449340986867201631520273087513828561473515523581925265395801173682266362503800567261683215500320618097655400755442451343946702289817292682157172467690072458609948791814030315863999839920718533142779699205647919585728535922310575366325322891321570732240876560953047920473076923769287219610406736982026116352676347013340212654791619059402479074651100913895167976641523970855680499865934845126556897174512664816692671947613243486739025569924180041701462585302010051199694412044559615798993551537627690897860394176524496770779858239394434489034149793295926038803272992466826994410049459989991950443349007171403089929399722577932400895129580603328166768039557425931379375584909748529462455815727352381912093464147101099114367461829594841729156203139413851212972386552316386779013171303850333603510747309652264459437146415321717431959931243001852759077982526028244694709078964542388078778460885509562587035041861182108684065796717219469660047643974975245884830058431777281124739385702903542242745520614716312013393432234477651498374686045783342362876140774803046332248468523440344728705366792134885011167494462264662739200458752796373489945746388766251991704191492947775440354933946418490574668369725383213032016440642380774672945768642318766955146537920195483316744220930455165014257280129274332580688592800021348632908739452148865394120282709893072551736919752894570798421576913223061218580469005862532161666472697351888122776768598135495684814363796974619828446171494261377603493745873295485293943209871055013515986091509933434729661296963933805063519852669738910984965756313447587665962106967944297817124787514807881994213672053425459349965057253213140156228409804796736787294804086614662169408262960300954777904004861794044681536476968885800362948032479513093390900364470184687461153687606065553012667930464321405776022356509415217575193458013385390204259500970619437124691155336259351415059795288775242320409140495342766297648324656158981504505863748193304452240885937276084631629479408167635729820044572985993021014833268306426275190082937826262675374066235474664702168795681972404827962826027011868457312858612974287178435055401316025313929574773892790253092181426322729505358685510408728839462958938337517307313747625808153069928437928365267562664638788247961214215167402104751754804571551699616001883716182794435760804699558807894149796779644309166613908437092248853617821320733646036441125145705253827331049389628563609670558052172670003193961174080112092412249130716628285066230701459989381411195169435394495925201118695679877404368148090830249740582846948765991293410261131307630366059829612119237953447430636010516115937027154201421034625963543266933838270233184453233303988739395568060127599650279826463617289680399286563810289539081079915019427661125505995695665349394267608270295061740367440660397982065386203738280051720354724878111214402027790544968645447680098380642115127924203353924783628816864897437321998253109850247594834241309959515715330631604574772991052303884212217358162170296989864411152519928986104120111312222817872339661447328200047098372437952174068928794168093599845373047798540717512240017639974611813454120540103092578671918226654167374328475757784116949438153727698607113173757198902702290426218777617603483788901394523542002022081837895958144098456425024437842368338976441782850092140911551511224470684059336751006149501691946859081467426711715357445187696376314961576364254089312939683421813594478280412576873827161752734295933896650874655565270792735352476593101552473581704181984751219949837738751640161443671096958894549756575540786837954151989179182221214240616066047667103548211068997870437169780959597641929164355065014423562245737776438320147577007445504502341399279764210526029520853311525291865515448067834938544352511859169131641421552932645317223898061832411946101452351768425991278467079324975230288650130113597999246129969603447353833074100087485382205338428080516525498359492689715382842262048772497273407801559948351789140888266434731807898764370826344051124555453144768567841530611435035067278256131337549189314731003913869407467362942035327593001225221313439428327019439241467195635095125630832319793937428469068589619906182854366355889164089098413731494635609898613059961821174397660727416453981178309632344644235944277118911007670047576759223030523149163805643559972568005430632390755782865486915085568905215699843739320271726422763725133474129733059017317442926870362085334819153916036401282917769059301103112032032653486471338648296419213716861830733170157476227620839280825999353256841650649675867954543737839391617641986554303145082559159033848636813850067957530037432968467513122949746012695658115529281858428392872731925460184222611963569962904083942346812455759506619228250014542973920785021376662698863014112175202391569669388577738276850875533190740415946283533087358498587088121511621700061806979432063615096340850287300856386656516131019038839981617821690522224649678069181724526267067360334290067736115218168288499026161982041172529220835388504233872009648829024179677094682574909299908908135804120520240688410583633744958122852897528838893094307241797108503390866381707069242553265534753170241460870833623189909915139076985279524102850114359153020072325554527746467564305731888071976188957404326880911245417607715638387650588469594755400247389469232397192915874919179818172644890022266837019379813197248328012967535024169347729277204322496277507831651537468484951552784100928616945341253923943863981452040699253789044099006164194270874037939595057771137951041814681452576200622580510839588514169432839676768516951012136367318406220888387027564469162329954194242392331865710352807300398630456096591434751499591067678800869880277359553631320705450011450130686026606382292262893571606848465458755313280971250622896982054597517938614998301974071539846381468404444349244259238529943565997541200403317434868311468752288344259541428554040849069922400588283393016110742317815115230545989299389184623266785000940070436720203193562423986065053237851475045030697135913100090109088031424583314462726578444429963194505101558165626013412674134996623804796264804801721262896417762077326087645689109836016576937970901434765482255584514389519063251535313571083402200043621760232523827435073115394182680855345746864260835505262996604517363596838484984377839642976049132174323751233498220350466708575341193974478455424230010652267137625479056362797431948151287760211405223229178387002234774371838818126773804950896171736344258705164172615272146481125752719957736439858305742913444958683267249314848651626617686674076408711794151468487971656574091751869895534314462733451466424033737545216687146735932758389106814723063091490735254238911885037023408897326844782090119551012053575422703983701380660707636903121573000723850060328739264317795871709783849422362491721701132462566479371352198625719576288506596856566251679274628919963634994317623938737490772337630989655196536395850290083279377101109559314230045855102396300468684602181562601424472994449666768472435455281493311149673466534201618209449108008078275316092849659321837731399273805541983317835090905067076560340998434429753527284541344503155291089403022670727832698788049149984932352976392243609498865879424401975832940636783223715060504948770812157163875906029542932271636031550887289890231931600891653830489320183696888270699231362916920230633457371109654332600218170101599513324047279333308918116829901740824937885575188565354853141312374415807157117396000176430164476392248870134898162409301816660119919135749125953822266191088857099569809211431168383702881359674525639891714166477604857231569832862938411618713035855843510803035469308861655192455097695261046423730949024494225995792840618186440533343886350903071467244721857609413795042304533831175410452402108277307118851047824694406214751501595700577745745218962346204550771271796976107785258581422289756451396760230201813734201855586525929365785921300160912870436447354173344515241202529060637161677167705676787992024785253482482396995027745902894907828647500239522979757749055466781776084084847437422328856018854091330512111265334546509818432042162067988038575725767398208061063985800850373206861095053426018978133402010792264811987236463415961773519095824110327347201242119637745340799857320868417521374718335209403006549542827431152094979519835993928118078222059936220980594136792660144199749758259364773985343822744323986652893171165300831883040735659355640936605548401774710015052224203852512029693120529278157510855391387974111684495917918055272294141818628918875989466818298390004473268687130047667642193391960424877687735201293063056617893428712152686925930082624361863799345798839468607558047667684610777204217511178615970957765377718682842629958463929315572545959364178207588641776699953232964713641928640327669128375344543154013486795556851575951567891447725210847325847334803198618537999262910113457373508694336577033013664306531759824826471737344192632179567430109298287519257556250825453521866478567213615254657524100632397202417798968052706288149068702580037138239370720977193256626867267718416871444600291019009705153379913352984364394541360668383352775919064725254186095497861758996296254801651227486180282077613007814283781063323580062314199422370039798709658784383148849326508583073711896127252075350861276474052211444296003135502982078134893453414608481568458047437419399095414213372606891289138005318547725996105998916108453058165373875554189650085485732436718334706472237498623976746787211594954985818162642324947402191643912349937708647088029412410793817196317486476967692757925850188079410060111834937832675347205376045673892429123213799802146462559296830784413186482440683993676641710212396623993597479471084780602909294355129388033369861924148636248976203777372341436393053160812582324927446367936623523603689247786341135391721731960755281664612387847967333278921316345265516919426520210796191908025482302919996236501256582536159854791004693302291253979254885558509831804539679414031458260389270914820994915692166702034289285186049649928699677967790423883401202758225788389835081220392547489663622218500097905443780291626974168040289335895801814115782197523914898385784288728519817402352792904309332394250123578714657011430368405572991016991524911370410887027038708790173699656621944505050570784100026798877888246640794826514957502914105329780709675764308263163965361731665421095492927034863270757810900110724539767947583511824090277485125071284465554849536562186600455431051955837876922252032908767554180666594068696278418674626035208731409555331663536481861824777195867940628768960097144131199279706008807552737332032361567838084966426957950365715444080917142853904994569712273307680709107158538639295398526363508031764299824020001606196707427525640865169670485963748451151272295153586452643315971198441350988712981867632130266032625419210052110878897734679893000249324044756155251216546591150221640084427157620446061995222109099622194949092528222318775145952381330366180393212400248182168437730533139826877722320185050298706907308409226644267477325445580895862143054671215012096821569268969863454181778947970231469331721871120918255949388517543316148505000723064361918156568364673453143614068389735612231366436144092968427328205912014992627531009848607859234445873224501530123837106505655748419671706467202292988510177523425679642024083673444112135910548989556879239316479369158942666713883968209604443549932384324716623938812272895981048240503391361518008732714394828000801310454549928270757476861295149635671733282897655615224875395372653830000553894632646905908979362179419452561919623017598802099343500070277211944152628799181840374899499406693969277032375965296427904973564107763065809696739855924362079438237789138958704045426515571602345292988147930632330032592254173863211422490683160427780929789920728149518586731878259077697815600539289006554478675207700991654766489289605770027675405673813112711285428238004554930748250630421966763399609058042257494373567766448279348657001945362842690342042361076607371302666040265234167145938708812045117082980276107326447203546561428078033717521486270694400817282855736077332645560623076295948022118448663161258746844270970868240313962026778193023135167622031023294818011276577515429572153513704557180330901090773308246842996177315732948352839593614479063363717362278410557842667175113392697191000706285197575754193269220621963263748343335552485548006757785688505684895834605402054959217959147379986685071103670528521353238926910740297774509016749130603077198155929763782772738780114842007136951820124359234806820768444676958513196501051333789343027797872794791313187343243901696694923567152725822668997060501464506598963425860603536765370465955885500565216669080214809187106926242729469215609877276218055836998080124862217810059758477189696028206889518330408353439733929558663354393924980537265773234379304608770278609435174741062311695621050839125176685106257721244953702584730470698193942735774487418745446896433046955980378161791049013220402704993953419464963195084256483350643118395746624788648262854933633077916259964447734162096890993644480427593350096933479976522999579750491766707508440095360337894522918858147198789540755616991992513284278747687419430134976652966859516760523985457473903419836681380579437743819625794160460356148395461690127752708653436187165745002520224291977643272826278897809722512382955780552005373409632786516786667047836593619031185703684570026765745580088100991390435822934263635888476537766840897493062727507027453336142218745237905986784603837249235716121868886440668131204693756020813687074344046348712167514520173599866628407776901113013090706897820963733970369645013180671754436258833504221155717946561634302981642035407752239978500725925987523642740184630014963606870528560215327102891639718521816175310970716454855260576513070115068444955152614381184929666528527047289668438263904560694853763340654379584319623492114825385972665489708464144311046858565327926680143922000614666028075399721495417682793170991112216577690857731434017582922689474066196474261714156375528534932005651256925780681300294845664778104770065868712913602564418813558113108134506819284913905310052981877603935677352306955695738087535468769671027108573189875742062328804819716176746969104811577921384227996890990244697135640790584184096834139775089921283124152270230296858736015705095014308494098896260102007180325855192962821550582870480929837197375283570776737673577333478169094496595906477980908889812049613074772205501273593810157589849788374983983593866440705745520993573481011332421955356945489521179796530690890482511640783038305587316888428036509403062547228035319872803394903209665149142419682589375655763465490637025285382229804452184187628015642275231772271470913939979300891383369667848136417591145921444623911957304685350276457646603359713232799154930826548107130206023502848258112248463737577415374597348690700923963637128147104967584575182130138579811058371845168544547124086849289872152825083404845105327953770537906758157214523133141546540227711303018677586199406435230922419107656031524675872476863887808880860915757107763285394592082475993177401332680463439360180660697738263125359179348290389469727810560732986991354629156180467224954292498814787969647318873308868924595814017993972361578049508252144639676436199327163924778801361321335460621694598687128533427472703955148285070216618528887841240937817891407931444468769307759886586522936754555785502029184027462215154006190066421925019468044327868744276576153254474487900029969664898081933287996354762116175529239908675849818141812782055619857604720710079631233882704243900353616578859706090592609282818855637919965232816280551653735305312154966132959985970526590452321526711570882172989335933052021943921503232527044239949328267529800828598335692723066619160780427516386845317138141894455021377721545891221405316180028188213271913546312800021443572705081122149776185257910098815210866654257362242125845590388181280558967991985099864428527233934156744849078549619619584756161845266359962010427903962993408474724094615047426412111217650661368287184641879300794121620475586979329586621019014580322144097458196470999695016388654944296243669434233420379726442388463259641508670175182995063701968763911779390646324289624919083715998692946183219843289118277897926312927015901548528278601168879331502342692463283631901879162014739663504183151558354962609554972542382175813992166613606051933111417859104498177770815925058659022811671445552134485555679910923421850483383363558753403324191505322353803500501878836279218260523451628537875227656837025285579288104043664766924271454819877647578511874872591137073203597430014292653742809883366935282540843587779580223765047718363730031668375636745646265544991475996116203702018083248335153795910802520345614138022979906914238484609508667710046247089357860411161257844426242241380375790345883522727178866401804695368239028485883589115234535575089377535538529325649681262077759645849839085556133400698430825790349916056154838197088311285193109588417646506948702674549263312076981074656356295306929056648036626337172007936611770677142583480357355641793007168177475256424389888636745106333762374265995437298798636942499048420482496085113135678582222914568564201531193232906229802796436784040120613294755908526730132539631232278093825630140239069348275629830187246520518806157358476173332477192677422080925194812201735636297322834538963890654949702911022213968114473282754269539749662806569263585599093101161797132264580070388014402636327329195778495459259196179905892335445097735926288303821994259992360065608560954785189130853975413791309174965995219104318507257148507087894387738663387479146474278486725303255548144931663801834619267224380266801078342222376600052756914791361655354556850770173454810509417548979243869962473865072222797287623147653454760780209091552196952316607987878432143820410053304735504606931916265753437105162457870006597600977759002910101367660040876631798366782215995665786690445187198413438714244591858011368051889774512858509461761620669565842146588041658156498860386633704988560453240745391136305592587734489266949776233868019437913861873444127816611897662743224831316467901312588570926991454444867951454018410136338810994013183079456089707360508160012957863516957583800577144231307820246714949193148814706793041351672715387614880109956264290579332401600139008773117085560232118919197258616075021975605732459285589233608524497946899637889595845925197742368976748605111320118994233948210505270780278045293363209341464803786409094675042777763386732289877507566727423616182859676357822199477159920409672736479535863490726332814926502837045149461900108304529494035236588984009670369638421223787927966514480433946239151416424239507576307083923660656261852463027093644802319659798724976256028137642969139432334649533115421743328041879083740192206385165743788511335395617391839069977770449971410326325151597944803864153873334745141307416413888862639964869137290491231932641152279338153596699822568123553629984194755334079781941978842599646856034562035486773264467370842145265315453016311255989877017031032593602838157932803511787973276672763072886943355797787870616631329105208605056507728548167269188436934728596478444016126611254370777541775787293817432071574111444176419039234265375449620233738796907378316249303297310676016802429592054924400209885971661277448100314699160920146870173667115368905144682844949717591750713061923296110900847590948420907324435899286595913738406342836644931133807662575845909895370544194156685146989361415898461234168993775655879430125894196373865442611548524929351277658872190776917864543625357379634174145079668224986661472597330793080576926333600378751878925863843947936788297842777253398800174542237292603436896577304305175311987346574717236624735506222465915578772102529876449443945429741427744395902568520000347495361236680792593406502857370279075891581485092223756672476026980038513363074383762107157193032185035567686761378891903674043326757056577422682034081937313463374618559116377738396278427729644344465356489072926887780043159849839483101483247836910000053721965684212189467205753264283158117417091186604083522495949664941187493657523964681671975641043712108335413367804605752072117301314780328978331893978763289072733896925664918728516740407188288249760218625283406827963262473366767232412040227335711103007155231906744862353988821738673470792548622037906282617909340283189116501317034392768866549441747581754475431815504155339818197701216890106620827900176569669676632582642014725072441418559129818582397046454037037759483576668909907924627008096368885539505576471721301245896697748309692716518429644771215966914737133403138210969408044016192396185749295846481010217761233032187101333634802645945751452846333471840894696838042474272182280155137641395554303307563576533802653073117337772096115894303471146142796465343259680568419602642803650705636739204278370270065474981551115185644092420598289034927919360785611280960755338939729850781756649420312277775857014969118066852013179535264898688293087224618765725542881611535992595962745701914763932652717105907429222558769438999805925615414222721506590500626280552781884214482608499466746459674003852347438667334435273769667042338924791578938777721747036892720755464343359247622667187816597067424343712594292115229929969800525829728563352170929384526858434915835050009336473850253012473398854113751681934342138277416658169932159121194679581766548351367445459815303429772336666673790552792790561614001936692476390626123544131168430103609805651754019918284030426504583371270702433440076027832974320206015856653939589548467131509528370009126588200789697024077502452110515997175623724230335742254377227459819274279466627805858155019727021891472035349556609385814203867473528792630564622832883213164008013759082452577521829424779298867938425534637290027803096456011486434199988540444718113444315890799821013538147079812707644241721358503379537546979366467591151997506655879225925766568783161337569895004736332086599871827006214455030112238678222661721044891395541526583043853156160604766933106915976796159579025532452567954574715729249873939949999682862480315687336146904383403596447540445765749264859943135777099566970525903803610008425848827073925147148738783252984171267650751944912058879014641968150006194489319866203354106152201345942725294702539763632515027086987868670774584347119313201197482064680788577118153224018830096404817625821886046249370712710354489164268282581215086620045139397910542784014107203484522688772806694942834441453065279068151014780386377275187578993667438168818485263712452355203761224203940207520314295975997848219130800030909587063870094174786742237611654374669195409161230087206473178298321436526302361891108636171030587705508886570240009797009978037025861339486557947990734995325058039276384910011564673499428601331487063440417034800215809542217974594396797256084140070036461143524613468416224786118571939555598877172906174496148199084557894187594823613026274696449486622628883387165661520341255263835436240866325466307076641168243303851409257645642058557269241386795795270265460100399552072070562639515475979001832368057367102283885581358930972911189648600688650513073647297922973109248077261316682625986441123320612767944848018635068717404643274252021039391504148299682701443997905047006502032386127084530052019186636570662598054167205630034178770020053904524003272732830071339236339541437071449602557101758092259422443389237020347854379614844611391347062471457476477838965681129106482087438357142810009342587024435173600993874767387353759663150390592292568709155099348743369176275051181711311297931252382142988046366720584926553395112260831560773231688166276993892624258721622532837383780890300197807732553148676183587475977916090395785469954551354848037784916296287244506574071016217361572794622285387059484636924537922377506165851252084912589936011260962695654510327790906886298714752786956426076349988969597033304608522652577654793054976557317883811778829186587734745803233080973918285021803640133075678793171543874971191471872950499518085989149758078471841781371284678099764453467551708900202835861462505226548775273134207388440691710846588492403813729271229069249261798087388602736868953998569394692914500628772226732092843812810052608823781857680628169507989477454261493093642582254238982412940990277983229502405256048979846091596168997913788808934681967775686721642410510110016894675599395578763823136391266952122153884114735370684715232186619636752109375471283313662860275488403121116348212419302216383342247285055803550244190766363675931888868724276899522674274037778316626217951737598192266024792892078649555079013501204504843373312466764606625548311575129484923658218991388855341498750813970549268549614913343417337841626097804646765029936761825270989097220647201389608075587683311637179771912313985057856130352057681237096393272460873462975768689271335896192939718508731981091431247488805288447708400193640797550194047030421369435292156956186935440490057227574748891394226769252680870262286050503629316225499239341915814388027908352853612154770387915376546174024120086146635245637329371007011944052537990924342103789368020925457275728522961770406972247884757792163039796438557766356217981297380915562964384537309517416831196225464744329098982277916268187669131856938551802097544746456892651875478566932686560522106177156883103252739999279378145654956827038086784597900001864636867879459048481398630972605437376722273760631461005667740860898655494939068294311891290680904874955457693291120760878595577257044879947155294496506417458071178095811457224197590478778031488176332708786510166195124081905265398070991422150338971300197980486949412886112277238608548432098167693886106482809909280960045262736205398289547586523762854505959841980550185009887589970329320617127595437743051166373714349719065245126847066567033787052805024921989855869354869078933186139585980457349285175585032659884523912095156056822800757105642066867042664066109018280475907125331318531554591758047968147676787690948477327197440754931486829202167032076814485219590305211451989772277452156200165073621971622690586892428925623447804713033893436763820650148060510873109320169168807601485829987147612254642353322549180234759914828173394322844517148576078417196399340373531348379830292883538520792927632082266887718179137613114587671362643294628474424729228568615178728112368569602365207139391244722557255870030027143875978918426863890308684089317110685918583465088230396109893040365002093888909293863152061361968341392799506620825721274038916515120158268513324129742150267124892346627133711744776297366584959456541048440551237285758790884437042113615825381842903502988585316805304874926598318074291572587377991283382034365168336848391885953757748833027655310280133004703654755348666540832493343668763029109807315052139015717850721981723035603402073926725767406414173964625485277107451852472147372242742051585594248313958052115975258276482829674534158715102266470825109938124758943806210545440478739523175192248857107194216064238946723066562870399357796986107436822682784253277881705623109439337739319586577319457750624697987859586080617850276791407322625247135435170106264539183158068830613804942735401526160164507668007853116770512911020188673580962040413358826707318273999039751261545574680263566582307193795391658373825151916591136474581834060674544755688454814600910110829426259995459444117608229120137190713014655441321326446242188127920909972664177100582133939561530569728047891310076331933969450361422349684563532390280295834196247279110564905237483739154692363698448125719598862690434613243231904084373390551965071975956211483537889994978032224633993907302344953267444873790600926244767609548982647335991541564540620598940881532340842097895973033151289821951557385427387399562472796965943891608210365822483378555501052275667644988272023247682949456707138132553713079511195062920971086401978880378818976387062285210177588021604126938680291646786238103234637195738146706963914583535127707526305338795901502391040736871752730469764111751798669571343598964420566273217273709439672298206479159614253056137039828705258318865475867917163136372396272901530075386562805966518918795861238174766830246555600526100265774641694764670266603938630105142070085324100461023002830712041389084135047780354432430388447321809014156141612513254428184903451290000263705991085630020116091657641049684515016706091228344296858608424862824364731829426258888684916998513300442141682298710952093935337146441842619169665491310658331965071930799910203269648729522613222643082333725161725216565295206613336240875422650049456550062973461855779841237260917869150174344218268755003531338800930785365372701923074524037778688640914066652766347963729531368094340739112931053996762594985905415197592313033442763279514975569310450333000988204921619841747679452922929431184728956611537096098727453538364087835487966446133407457762776514247361340316930366973682245061034651904093671363839343578640491462616376635445913781760472617548645516565403783588413814147548526598722448408861356070579002068233349682159633855171036508160677580819131086519704993759916853429507701001331761739185382206177812077811219144100765114615263333229412513117058534978015441621742552268360223062207738432661294779004419448701820458776712142966781975973235912319006222688690230773331497198569480019606552259526741965870033579955628563870224864873002621591405076352406860393372108264302121167533859452274528005538675600016192066859364388567926359292253331512881296073182390510493864189272741248438296135743296130207069983278909281691423177067134974419162394651583155220873598203194575288315120879540284957777130126810197379789476561382713929228832258221586223665715409766769744086723553842153486855416435269122698103600442384717337223439597620914154721350493108699948580476871319017396206415054472655927227286703892282228025675351517550278972667923604829416994742313687033322928409348930112640436505094426798866412677386770503383471305562014724280540221279559106573916914460604000682055196627295780825234097757141821519980222704213507004551644896060030115999901847510271598984301479367258322183508423606077407962400832898423652471721642975814823532646918340022438699905613483186703499060994838806162839896253044275119067685954192476402454733879785715208184563885013024041222832920335411096416292048560121608213141410255935359574533946576026071280246644682025361103618643627295443344641821675268706680500163274937783658087207495442211492189670040085897072180471971006856105492509724257597600808631704551758165999133369254732739022783151553049698499329740080426614194176912606575041115903679865599572724481436025447377996431163499651945049185788685029623572475545255873501517544218952833247740443995360911429824915078256070350924063321519780145614586671838784096035074001686911809997548835776010745167204555664947774031868868802177308383252767277132324979630746143426007285616297685327849680653772386235862081387579333426640675225362499255095232307881311709185993586409321764752077360186943687649582572157178067032212950279727364725218136270225048964601102442635987102519068360060858065544210041593909459978602732383588958615835809144641006847396589980208970264606795682584207104627182509416291235668929304034935425612557562700725970323069783621854341284563917758026166874618568087643722354079569779083156578625409277059052882695011800439067630882165793505882690861644056523046562072789788912279115891793867766329997857025878537993836921014472995906091995066928647576367446910996418026806559446681248914234594246271583581224070837118187459222974268662801533351231330728991874112903300464193648288638177336545089725433472163113398651184495382298866620169453685214657077223330028426353486420376696280986709300742070971343365450793429929208184498353814170086443136985538516157653672360125297961023842444410947223236794511078128464129258521931351056020968259291724812030957183320780792241848696971552837191231206055922474177062664283710799410832213446890106148636932685473434962733499294902353093116098943014248899780929748994514788897042397341541627928561889492641045445490058132717483163181910734184505226125620047803097391894081267817330395738694723322162339953106444197304256117157976116055762587773895496474331918118594456853909659929942232962458828645302160960786345471283602380207698979377235872840239979120327730945699837988657836952937511970283862276665344599550180355964036538225825495793929973905439853779064681549245910774907944563869257518844207217750968874708364768410357931693551471822605170847146939730158750892031455196404615764021387307463348171237001088787610884067614091594150041649983138677868791853087820583807755464112313321459350090226870801591425597929900453424212321954741749391797878651146806317046008026512652304342070500157750187242182688434150831688547321574277281963322132871064106965018546332840784644857609518039066704710727236590239919205899925695442666069993439051208773982609015165143237453798873311730301223264156308003770809637893357026307023105375999911058129293524341951057512413088187665951131199135535155454493648719877470381168517914357762517760479848359870268436564398784061963800350045855995147280834332562485374097123189067793046511640209058222806909465229899378231867117112559625751763705762646874062766443906291911286883284213313136822999567313076524681233779984812256944835782741146478520290295483642547316872529991350614294621646651420965124362443900099909348182993004543212483477931823991825933553183122177162226833224628218693687585557342153941508731739558890917425457107708106290657570793327801628851912653434289994315830298570548759321138623027581192298371890443614061224389720237830250388324192187239554955450170904883903646933182296437399593496238480984143115644043603986023363498183082250114331540005723049114220378507475810194213932509472083771270680287565728446610316450263260004576279992070000790319287729489699484680339869990715475146627767463391104347622717091880232352279800619816776970983812222675359890843505540443080335612491608412169066661129592788794989862722779870560440978940059838643292387180722187375052680407630668872111811337400267973173646373845091666049672414574731591990800329110211176121467892864793736237611062783356286569649413015362760500467392834415205212262175547001652493625849924054138061428221979430922655360950282751622465060738558978681964564880371766722784708501181929978685168179413710927684714819057870201344384501464460352156171489484542151014944998052199493174154621983936972018838976449376591708150471768388875576903542220934339313292085566853308523117799977858209365655768262001996882649856378938729792095279050391191755152051660673998051088159453959833561359084390596016715546790930070215933430557816974367367668718079062064251849269754145924247528284259255370379653902843885629977099087317052937581826805964132453858665702233267760818895139251001022859597017283969577768909404993254964397025962377614755923797749972787089299474789228213976801709914549713704283175238063152313048735249053374534745399541116336976075875120024069259245818611756520111077589869973503434972910146301690056280925857443399198296964585571239961867426338058054319924038477971966862707806963841818343153394551152790903894438193645441535947028165850227043793305272278124728829704221447071277675462527324955701252787436952157309497312888555615505892376392179123610289613663414861492026878885189496261104393604191181395359302563077260822652892294055174796247227443372133715263710894820686379709323679586996973158742485044361910040392645465309693163333788887088852414055419891289950371379041832480132656545917528129316920193283522524445466195030452298840270103171419667958620483041169041929846172865495099323396027734487198920748987939515603426409471663315599387516481161995129147294088600966609576786676410380373060060391758259991759099501805254223202237822819730037424524676346128182101119556896828721789943557060720097856207574386168558667130342181446841543988768036605648721011792526739783488708077526461777060174175888293445350423548662685063853431244583067515067012793795688987593820905929768967898808029574311866292635960172164877479654206161083841181200935229489479265215288418017629178099844610977148925941163856400976211825563808832803579214898905296578554454088750829740752063849017788706171245873867134900328659592798707994035535330643768276878770664156635479064200552896493464451436814520147582007804562786318772327334243438381506323871616675546382210189936973777651476946039063018686782158350534404587813346233688400870588823864985314414324489292652048182978308433263529661054767667995292069115938672062404267384912597398632351947866364287450247387686736398506277516439297928032992580738280485295991831039293022552633204026248648181435695430607833444681001416034708881456770227971289640224125528151711783266927736606644765738049196625271161817921208970973140646678431130744898640225834835815099324296525483046723613430978962544592530250931557927256047473429641228464942773129474166013084679461222320944527005996334917904772463278708878844907639584963052184708158082824148986309110655197910253638835313894847870632901094216301981530902370180461335037526200820831630834626899998932227074822259842494853305015521920355371716106698377807435251193052713378850111694477728826241408924301142752201892284705441977800166549741228286494552018958959367438707338504845595628243742898328084583391413263321401951496030973698070952488098327677324429790159611867738340310886674766223002964825333283480775461159144959312568991687438158117995573051361816762004205004610897025844367678779788189281490787664949278987540513600374286990993873728458432261223542945486899658989047443172781528640352844849062929478169814618457255830663075300889505673514610122788365788712085597841411959994129900164105321963292053628983975472181225558784435733665303969444907958509124968946627103718139530030396896515653674760835576502399701256082740700453978366409255433919192875666175963142947865087309751762024281719062537424358873063305742759759903172482462040865013897574097255947681034675044318827293522494075164216596367932564857730816946501679112212779782061801339639634229449183720601513649217090434883500097591994238161601067138631923019986971631021355745857155277562155820440007813187503170072938788800627802627375307557951599154301220218636460448370187321741470750261461255579971855866967940415949829956587640454655679455961965123522102644389289704885513773368520438452629830670547110033423658227233985920732746218580301424073815149569880292791978265076225813854374421893426586666367937140568711059008789444297218132018383680317861525031010210905355214634293838764381319130507255487796231193043247008852555976703247298022798648747123559486500765233757246419163884618646930910295452970590292279463596526044221455189860531738535041364902828706162391550533344626812801680650889379426755656757525717389482076758448881563942448631748950460564143730964335400853925661378774800699892665417477602384165121809028356863164580111274414529276268826669380458810848081258695508700182332330014361806383340849226522598371122489947128719725572960566111022966033377224366986547425634666935299681257741562233108708711822890304575680958412369263347959410039645640732534742427560630012401704186319160755750419783679786090753705311261747822241838933820007404866550652758525548335233203809559927445408349831011058009869634549452349365117895597436041849898587745342122090928874937950051198008437245921018703320511911251148447252787761670683441633095272214258506251374487539186145575077752035670665763168666909592469798309893323197178520563355793170512893111248489704445054200739188187741811724522770478913572656768910680888009444061540351076163292284560983897858769832473109662169975069238333374768858616833644650252298832224979055764124297040112896677900160198781053157547335997818250226439266332213239075085954858204799615911602572250257013618463559978292047763298784267895009032254496929303921822534499659581184426523682070147528540064958915375667755578826885883209380842994327892867156832323520624684469733220351566355407150382744122126972661382762761807963106675509863069436771514002927002904489557261383715618493945046609454895952688746708769179248651406091077720679226646175654540866007862471632491426629076832017898689865364500819687926701034673426327982992126721599574329379412358305587777773785647026244358341249485773000897467101274973398649030950528143321960730114388073813692975630375017247470700312775406795845748613143844976457237492188187639167917209666646707067722610552292545090672821407165043613053502516544449405339150065674800520131336547868993361375406993057012816859599641572590475597501910116163005632604951649654349488869614733686810116698887488547173314902084160857948736866026499107711332194628581120971304717915989478054622412961429341592448179463599692947317133952267252308557127245786711503800989447124159663492971540745009448139350437392788663145185548826409408031585656786036707885104179498870924624543025734350722220069695006776262433419455831533249839104939092146359691616073243997970490085313784149039572410778145657458656212580770425710871987240201935005599522494278340548315754050172720893926916303799360313872829912785175622146367184197260309475012158911062891475549221347383410477233882450884379523565879778194102922978327917470661386089966537720594513793818080706171262583485755432707350799953312623416981028250173007568218016031970866284035738458701814504432223928883256216784563940819865031247753708518614074688972163345897673244245444517565606046973749613098969473703792556740058601934692685967690333237169366481726836936502827835193595510410483238210466748743880996442103528863181112178629760044372976578780901323519716512704424611381949483233909914113840626459520722304647825772064722130563740836253244292452895786202267531512883442193228517908984036360490116450879411069026770805302737765489397668066931846497249211158048020441868107367820109123158102560261136815204470799791888739236445084286447102488277761654949643715898265017823760133241343234903988557811126023782081391885730941241569400160581866247324133780997228835343640149605947954037911842879700237147172186188107567959705782087768859830203431414305735657344960312910880628770163563184226831976452947806829997513292337961363154013196386319748805579236193033963774614370874176510580366096511208688708350096310447195002155989233415950136593425951927265034683609686979590121106792341999110745350532718799447157955394610767926663502460493725843960870385989441452688317726213599119688330166400486544962289897032506625708986331354601222793848491292486868268128033882087977470122379591034173041828297448124350005386625053050937377610212559122820346800199325308633486817270551841499915763232258407722888637014930135341960052054329548227185018789245651468943075742976316854614461888871918165821052099303896140417684985409190691176791997356167323986750259498421647243310100302981345257199177728624939820475895447134490788203449465104974539908095297338094340712627576003344081468105981904026718435001596298593255140366701769092058504370313790917755029473870249015528978985001393492842377557567867263771665075034497808471324645277803692396786687217667501803573836309577964349988528565041132019244064687695720036726848831128561940808431663922887819272222970503516835421435680632647871513728406901005659380428225486206906974675760597310606390333650139745813198747950675831374572963977733070947519204119564222419288320306611865619856321720252551358066783110620309884983438994816775680615696031717940623428170175822795679838431145379403659305077584419678185481220985807176893633226297863671950975539043231281581211040414349342852977528503992534076841799432062088461927555800868184254428633887194654766491244453264519282575093152047262949141491135982790373048208888699908095064010921119989270466089284353391599585222243027845190628218957484923887708824554852205566222828951195696748920944014873977925622590599059494754381275389780444890685094401813184181258200817603772807166292969285846593900423552210278602656836798096713826861295379522288678108144361083401357267828792545788444760540502932286644801524025654337594540843290282576607936210627005364154206571552918966139348861330868558819984388964080880736029826961225362550827568175656439027535506062041122104870440312950960549381985005650774951920497163861743326321785981092840730050067592695511057573676990308408893851691052937759536396127773948939502686696210574363092184108335380128172840169175283022299405943002022816037456024717227410037717452914209756340709323553893923073079674196010265716587997818085253524608987298157718732880576646790177833906259926940877688463081866980175841802380074644073308999570271754319446113900617433755034743562704420003378056337605859161840163903778162288942354804638247694706080472635131506424582419418433793924473104962166264219098352416119118886583438675534444401616504790431988908107929394758707661339589122056226748377279863812898471682030068046142064087123648340543494202524476973185401754308767848155148455839350167042449818786025103158919434086945232967583017668976041291574576563873764837120982422177088224153288133130672388258164446952042207105781560627588225928598505867356469677852479082076075969524139261674528572093791312519650859511924470065098417526262229107066975899441793678701984868669234315749216013724249840420725187289640866786662287263971141208079180399110380095586297068397128452882675703807602639848516677693208895017858642503110243071740697310872080386607661516759365453839130086195475268925304648050460925217099634159542892864934776592730029659884681756812120143952535373880536171379453244597013749437411951956128261757260226305817398920463011867075610152316764648349822605938844352926139768112410323402508740512965932354254256980462025427911548935408595739625988758517292720438331897291268598512084030810999941728352734213816853682190123489282879769043409731382119965500604659579448006750709531572218543001494750954855538094287310180775689012154611734540617818637310053436312518911920052672423581439104469927004875472003301642901267565334746938552177468553588812349547828200621818131048083145980404966798394252567344065212526178760396868829957177936172148601212085528012323969860667250249356048009262038458980455870105474711430580484430712438686227136815334104378227853771160650359026984813390181486270747742539726449452959497471621671322084718956902427977966924679075615690704045416457984794763590661436248564278165757670791887834668583094343388322080279187251606571647913960015544947149779777630379231547850555290450901981262770832947286851945036617329097730463292329507781809261073592634409043039606513241638039732717344737513247649864807696768983645421328112200609786583268798960672310739816579418607276821590463980030907117957592564027666087575224950498258895028840473668384558788986141725165988742221601404560447898645527611207711453528969829084763983658714583179887341975045387671802178140932324247526310861392572883581008667053869400583915401222099285235040781899474698707111348920530162266921612825300564979728579905309940393699455543442829817375864469209281219774236587478988845001382059268127700045860845774190960754316416347790847788421125897289385431521001739259984592316076348370396264045672522008306019467292417752995256648947113332319310192862997539058389345530765724265574999630786782307588584589358710486502788662715812117222920900843568866720551672299430663417435742061258991370280459522203558379895234071688567307898467597078374015069289266442149554574949527107251924333374797134485214415565738386019580230295993800944068250205677781474271577671069127600904549569035369513436647683849396124945779741798972492566266045234428287679980080692096036667212268242975251383734540787303489570336414543682929434512936050738494028998190419192779177145356362371189100900691523410054205068266006400163442329631885362319578820041404971579326427066048751047264609090343503923537444549085468189054449846506084678044921319357105713420449361909796754976365125901553470637419649657483920922868406893416163219082619017501196029556931740220361145447118489435263810285196854167773788046625526777464267240362724609743229959191582214327396529382928939286983886454976861965455496213986692482036811524822174654905091760013912498893684368766284006693696525954110641739405411551204911818430614911390619706057073783700187298498695869416578144275760289823670079037445678597125149204455967648581039947443528200420634172995451716465571739802425945454671559805796295334010130578364513008462134626083766697551989426578068292190949255658496109203243124527020157739774446754281999357439833017013586820392045488573387964551371131045186694399153807122796366898854850027505576938543399632045641395365048249888447562115471748194513410805012693050034600304356351419928966550760063982302933805280149642736189517519791382450934763014319205042430770698682327268882261581602109222271552831920981601901243302371091997303679374947224145273998192923160253006654146439413326022252693514857673847496208479396610943290248712368216395363746585486294379807410661146345765643628786865491424422797145229059914496564282555914607105302649406917598369161853382372353044325833116088487193045148837137904140243652954277443132002379131125955308495352931510027154218859097402724219812977448240437363126586263766497317833177359140217739500701598513198360529587533540192116063524816732280682241320089669612231463281104077167614802821953238995341395894396796662576915906763197679911457949868331364346659087563826506723973298124708435035262168151166993365335292570177971529054109916194846072444196857931773887803311223603357927142818558167896889409673334203810200018629195005791407921345435317900711237223933592827195721757795241586730242135531260284385526682581020532732573337867975857710313313660201807413352453205637070477742245383872734175390578567850315789570043816536743562956665383850283827406675322994828890742888036135701753635546012981783261571327560060767048557550534847962620981406965474405739776711405641062838573379860824703089737467723688509215270531093516228396812942798948847496095720948028193219653950387193807081433470532000538947434851778205440721403864303400559483685671618886310898335148114558018342666680946566309157213742976522038906225533722409826076792937408825007101271685501319967124747642956953050798917895260713148121642563432218363299491343520483039947562423265714232313507787901447458921183091920617673237153880583093289299288449503782093351464413280772691324894116268181403943493045689691674068387574901723837318108019243223584424808494097337174873783567570687244020444017511171152220092946621848791945118909082969223166278365769741499936871606897861276346591581211907219220996257126056240436042873086321762796504579422566433541903679261948542875216540185048590301840160346899782535667047350422502204618361930004354772686677767159556728789229343616192038557635654613384765151517344708576105214080600203588191399487013486176323975777316597438728628801353759245122022865214000774170663439639120586796179796383162292900952162068825148365005350130405107555373043684699561938738123357700269359551128944317247920320814603899432187278263969788076149611420563284518590755628606341260834858253867321640940635146421100550928270498755965859128300718493952067853954557722161062335749654207206681079789203359459544811812319311996151618867583078953666761617031881879071598678479761467434941212909179566406167608121175215476441986161686208816748465620294700809923501671487901928543105247324969571208945287452140377518928672714536088680045857312223078899218842879455252204717050653657588631471497257363672707781495782375993185429293109524330562061604025558094801719852517229281154517583798037710643278483928803559937050503197099695405771928803424191313883234077596067136204678572938828975398102397500192427385315094468218710221510840935442099555169145186792588404493230439058834367477842675344511597961436757933659714178102971618443394786488370801616357676785926103991870153385261757211925332946541575757357141350498149086951512592428633308794614892143437887256288469148190764675095714119310540672876514402133763111855373732133789694716982887712840946841640442214778471395379749999840011719025769477484919693366479362039263389974111030623736285928339830207415055503984271292202837024632128657662804693805093320207821623226315369675401429593817092165137836642451409357112773637709572781716004502571956522017397463991801185215110033568649172947366168715886587123123615707917215346418169980133114532749875219538967365403856540832671841560647103105102992752729489024164993726029356657480239824241075780990376747766288291139422987683244189266674749653092096747253120550791162366017746297335545358897880873899048468261720681127093229546872052216809569463391885060687277176040654885777483893000206384869470187597669197007011659582132039241509921778536343594054457918979614415318774475280915493113860355494276329284401431092444381205646932841935735404559990004579265913765887454752917437514619210217043755468023214997716400555380527429013919804228579539835675784849539750183932767793719137285280842342419360501632956200651063274656416197819016789943194844151981871734730947443344786476720000386422535613304206125411146705485036503634854457973112094451934860534054973287745215624905485443254584931970111278612147595705478869208929587042014883936803128646319077938741406924115921118905298942627779908801190733487640627144294876302015481211502514368131726363711812482330179657787015942755275161017189107744859662504983792535278783388053148566345634565357387635899876389204016470717071378149841784320881403541519136673203705171624168739308644167295405501915476680989451761972746040006063511177788396622670602674208807325382016249350397000327956241324823913157014329439217140664839721109647290796396879163914152239762593688085463325577923882806973492909544233700743257671897190392655163915603076029373854479840397423721467532169138223505202952133673545663290538851063389958375816549408692894169779340351971196928955295345261198762017685340507865612978651838854896015773397370884036960976523068198447878407675277605573456047830487694219415832393928079834245790031348325915757670328308809628646889852585032738921784328092737874000487353065830736894625100885480796252616172977751792969198821639098869472069383262770674147773258677802448901167892732725084844924947673523788025734146242718996013319075131915198279503366171322614216706032280433209889439127039653727352020175788798366341609774878351754230401663387963023240430214849388031573831804791025713560027582640666902615671088582872279379616372221356309895621783479020803736559831804803883612430464799575119266927520394125966673460427621924327318050437291600022119322101220239769198573950946240432451924231092761660233966195221709640525019447368188930696030724995410998563321878479534782157253691893053076813744088085152724155469812545293219220438740477035820051913296452476201763505489671529122788157065707524120531902975058787509476481473025451184758943428206155507844948636801182493626640694310029400967232813415647013416798128220594546150572531711610823965681930404089424048982613835111169589697294214573275796628808077787143848658374345835058174039510550116214854225554801089417436979741785972774202706416974953595455925201559469388817362067436703612604330829404004928543199093256251858958625616250945916032586711570099520467453147412350204358542183443262004428520161747870626346237593429700233395151646039649394732548130088234176171247409190759429821043222247267711388345920473657898680353042355516202655112625216577638478518340164297642043760333557953266532142150145767678428777687986874665778716016998931466200645292908563547582737051009875909007301478864495780760931231418176142037052035361018575512671956838316301172878183007537711724615159775606660744004916400045710172308271944858382856884239288527762700847177729162077602860913572036392846705842512431460404241639444415030321537950956874411557371676977379489171067270263400867121613036215215813751110561916861962662807022066147300083786441769298153970754317702845384440820434934690322521113490955092039317113949944662298406149421952847506486482281658054717221178458166680892635623184266625268772580609769574323340292944541177370407442149853449698112416466933243606633399001916836890426798363389058168470534560547941543580002435816993398955992093194214800973326493772934941423247951921676207520055568527686764208647107965949320178571468611645960376682767730111882962116444887363040018696589250921699416315112225489790866314264290237713212424986239156474644911591172356997344808760482668148307913891399715855818172042403286995855649628728145598798376628046910840337923639263128453725389274404337477809944318708071270053826750780945469297281230766274842244678220814274864427048613302160195158959635836886649756615778291566687250373362065492711347241203438839757174141817399883314651493191399482175943862613069873438149207310310560336098780257043086010760344069137567552746202929611196070139709865523018085680367369489419191701658197288464329983263030127597677674681479119647073854543347119023556055108369876523346790549261401396761772493361847556343378031108367521864776972310267599757012011034433224163398004889489687399754696644731332983920061322611624231623314943082232057868116913281886584733922914524767299053225074837865444188083793848690293894484340446315670920256575077435539427898097455978538110583547369384908886719477503397172992127783547495759495726693603448583733839889272234891220856858820080559542700645216913196514073704651877219172880816569841550678722440986157144075360386233357480182871923770589532339004284326599474574338791503979666226598797202000463406852638157407769228242234288540695385551841828248464948002914934059522067623413986388317153363680498968859910089191661479493765413146170300762948628908435856815059711669063694786105096247501706051013530432108867978553509497574347063941383087624929147416306806937078506887663366361867967754990943612324936692844240551402171545332646312515248031616572281363549655462158615685407891988496889131445621595565215685693966520005412390938541643058395465064816896327180694939993216416841216312507243597797266538793069228980335176718439285995703217281572408280219512624019227822544290568065323755073404789479457813956619130013604298409300002962315060630815320372526104799693312441139311000051195686574885740410200907728313353802509475867075185935898846369679783358771062961745615176130453369430798854969120163863325191199491954641506145589492714795429826374711837737516002167421622604927559130330849558141879101406492887491401628004511255648875484986967837562499082932666473996673335733901171856889198728721810591150606708666930374675434555045489560933954309281893821874587041951738798623331092647291817881036105378994866270441017230294786972777129929089857077670802780594654018773231713100225903317030669811454734232962135526096583212509117323750626627287256144307424192188938097942606766863439426305773625454105607403050799327549807023155331911388240364710178078079992363348614455362826861491386649878712914298194714851257517736013280761316306870347118782997406657706772187325225922976389636085799026712520580290288577839646922891920343629986531423120784053653255572620681965673564337114957841204432416148508927182161331081769146104326761164680213558341392820373458835804819421332871872874583225432757422000221912051139361232554217698779474826117448130938615361361144904727420999283325886149536064602229564108500540000247272936810911377733809834633569746520847861592892883714370847157238434224844358104704034734037358307116812286842240826278910726227029878269570195706851217924108773147103741995470570403417418731749602181149598967068716691446860145097283357386502218843846446651333939903802060128884572693276002799793557700831923044144887533011561189937396617319550507947272380572014199125673988317861804353593577694110973070951730933828664848968186401507168549200323158778050514837237036843049775880179347435907841760622668614016516586276079834361676801361681329454199863385795181579425654571063686709190601595870384421432894242836138364095865689519752089358631585884331072708207804942322934707984280144352620781288519374140211657112001670196326684561223442153471642548099096608892958474998252513462571670772029180957449949903919389117087808962181513326331037006526271089640206733927811004958030569117317183545398714164299631767860410720674396148950114840893424303267403322011346379160335760146459446113105984339368466561991272105947844012871429521889787909661106791850664314972266157069022275574565973393061015597363378126705098299542189380607415213317373259990216708447356491396023391157147120368968712944215385023001522534553822212962747667514105341792991935171990339580694870556705114976738424480498808429878964617667330523855943226016784033697410086216056757557763117121931532173736510303159451565849792935020539405996343389400915284550299193414875072204783660632618244481405179753776798611163821031502726628040890041835666322277209944883924935564442210138430257855369949106867849888164807382830572718169364396151663003480790788016313242994153765063900902912083050472157697119987638948431078843160804187369895422187286497088437632028951254118645173551333524807558959230080897753969654686021260455355272539105886675619393156429809463812721991060670607721952364153572319077832868862976480682165764476712533647324295404065631457963719787293210109820821517773319768452277836617345376866125711277473249777543770780199643294873811352604601627162394156842806413713089059583091944950840704027224401268834528121116444659965149844039150027036867384634205174782141737374389458957845351325158950308644474071258798371864759671392585229010267071082084316789885254456781771012330102671447511755853172486638449135735652516645968971817088506841755772710215206514094458626751151788525908960852047278618051655110003297603508624705064284248287404737934630851675431012534833460476985868399825923809574495755558383977513355577018206524350359866602341858748739434643088181112473779604879632492906348000589649809405847350606089954642230157375666190282699657033001027148739715122921276124106531087622493069675799806946570366024436442096942594994182992437625882481563503654760322694773766654513058855927664477024884344392308050299866282637207812677041931411282111494893542331776465830370505854863112184613960776157679765360373417748811564951627531268003280297081592576642566850455325232236834761138640099840853107188086951291492818892713551717914898544832876362686889563631041802546738579858969361448132297482032213082344406577146708616573572485671911822173777145372640405890848103000141473019798146696140008222684086778144745581797110867726041222823012713036687809908187711122464877264292397464790260936919063943020342895582202270526191200306761849371053746023934116453397326705821919563533043856247241127866087912068334581753875433535636125421029903849143110942458452536278872131714221694985072793012412135041998221966016728498103921088793337975670195136980906475519802679087320883942034697334306796355086848918614172132451443478994363194039263985426408521365357830326023928897094966325294642739396278221651168385767994971898173919206601544153426640659284830945227784457901137858907203786263481331444190681064404259316196473833312601732993936037256206641488148112997477202044209158013537647874903553526848720947743967306138538344870374506951976111207800676207671521260311456287328140700657458388686096598330848101044105801411032062458329283765537046163707630949098885992984476468042233598835865766094936446846694275116761737952578181653661608775624734811573800231219744647318833801188294659080090523763944064758974477472227998214763233985680386111974752829817422843620777434121608554460225719613671991543190946836618162205896624251298074722867147762890517535354561448437450198408772113035306670551863306948819238638454492885220463847338473157871518488737041687148304353471818936428999479670156422725720316642960634917885680049650622863556935481913504577565077194846234464608587622275391387808718483529189762069551300363226173275482437072555999679965516552595705454284005663907451689277647533171755029842442815322934294212311525792641914880261537176371817850959309069041586974726395979674908833004140937114765714427167066274659626713050019503873970000422410017201001122765197150502537103555577311081053101567077762301539609329993721001080423316634662700743019338947170929782102923533143468308872290910222259768083747423219812550107059038542390933374228187351273645455811610258976204041060696988870910311254207047992583742540048659813031586131486219107589986057183916713534504278324694407652523299132390728595574741638561676586223206372202180304149626501802868440318898658068131222479098291080585316684256020254054959604839979623173898290145513951289009080013371548535938969060858287805305109228324118209957210272256212922038633952276721303485652582404232531866513557537543453049359170896799575314287135616725039188640510222412114008995528046296599975886936513425173153254450527481344747597351586462753767338448471007307531503660355664593884407954699506164963124046600029483233212555341721726137592022820492345598247422088628440776686699092035435442015031443847668388867584084861554716759494433094820655119983118509109430950148085759969729070735805765947226060802090483718277100871092862856508824935549121439504420012478682599591742618703882013839218484285447754595737821408184030790183622868278727890515084043505848671212548001222505074001463779322669798482099114167450350052213195291994648599800843991714126068649710088785097001352941809534794129397152910021135534483311787556952023385856354237870914232404048415323016481740741481940935775513821494910414711773170299060137695759511061640793112742476060371634725868125515642312349832799262260901585032841407339212231637922729182054895697546973020412005789724136614555555307313911218144143894098841802131688137156936755766522769746955693052363096292325037247257559848424111577781561668722308672642815603254610313225866372975689025883768098075451859425501885494999624540201479415753031839867754138855818521769821628357424335854156463483639423868170808505956018514036879818368885899635841790440070229936682113541532998148505124569005746402542281541062645332425377506218840872962253095421341596403124705059077248613672707498459334380417959998317051657564314737554616771761262177274480315569604799017305321119682333964207626459644745653915778302500976450847153640451416950427898826789141106822758506090774921582221470498975569638266779178347315768050277823631551994940296222231952298062798482701822081057762516529987428188364107329600889242559155429287681309460792116044495647670414870887933553200017098628934961263661156971658222577227266736238715381337358779010036101496031782728291068772214619411980941244712739881430426832905652918881236772299983083264486554160436847685439382481358636611623715397618813577795708674017167011995672539604784791348811221047617101684154246742889320698921427469681763452449591329175341637603946025974452294736900368035045038160721197635910982464592560419699207779702266287956658353197368788868459404704923584818906217593058715697635254369467415270181182127237031307934176183795606958354301285085800463312077943649245214511090974866957945197689282336031336722432911998680446780514253379995790833052828118343174282429416832940800117317383031070946616322655242699237986080792993781401776238056758057565903201588426856583386669722232732996980627154195310653737364702846805947990370551604632186358504335778699785314657756751368406295372009487433626392382164634406640967134591441032181229671057261300627565860657740285105082541017658163991518732996313157690570382225827218957569790235885006330494515575812843334232277691925280931954627682769067921761164967082558703997866188683881056082303835398365769467663404139536051072407282666232349318214004524243761266308235255239941680541023463110014403941095059048472002177728446007681613637980887513951745100758986435785920105427450429764314691241694185969991482990517424571452242140952745725688744766036353798597777029955399692841600127308200906505035717053367708490762960565839437123517550569933026155319885073170041970906953217305916176082670312122955886270068943128371305395111151640833083120288212982579890806432555563689179389908223619273843254059965356671066448059637218803504278200878790633667923047977764457802032139419249363558742023387989334456871336219076134190567671212678395195643723140623901179958962356140606072885313196127952743340688525952649384986636407459539802258749948852946721393837251759009299678394724654661163561751905360864303979594085354514558474779469640004317882587790976303360591703426974951561647028111809233004608781266504249414948125494578043856735711025056107407743238314188247861688466346405215733144773249562080181331851177377612827161979989938107773215931395893323817281950722239264023974888542310569086880999635597413319013981651225695220572541405343621051704969594526055976744375385308539336556851110922470028921337850288764924351725588345551382610120953543903669632485652377760706641655576399209079939852980804971737051289871271889964165471616958024913606260694154370322652409811104413252491228742867246881703001326864179586145294825481438812076953256516220853664160057371304495988695848941406518208433930234523017769748869356599891805523206483909649188531788285604274955215885821824260871738375908224642003108662686880407799694487367033125055691184541699733854921977123643168098133978564914440579850106394792692212933859504414942349712539607157168752301580044796265876114718493251013854212322918591393717669533048703698069087298330460086976818106863641916552832984189390328594922893007845046654681001876473976136188462154741677083673754391199810940255329173821828999099294363075742597864821314665606294290517459741903746014291371862675519284955572162287019584321827340593983239301114143977875997976295032713097456834288845685112702491803798089313392465298922393254942461941063474246349646827170360037978531921763075176595903323258268912782043315689283071238381110482636976812043728210694350506792889283858419206946870882260848108765061411792439898595384302647546837366335076406897363673514323370178125345530001587795300746585504538539159225913646898183696603577199561713854635321620325972167061350809395315583720675429674395200249473481991902900067121477072265438401914772189251498283380565684356218936035856911819602063923605366826584880889015648725137511062903921139897859489500048310029400637849518265697247382715492996698562126811273044108768672285690883695344206077614757741213414122562360550089393464190241307808988847072964254824559052892164024933619461012754868903975304128028683877266262243354351768974500163930435694980406859910566145971942733917665747209176848014522991501257731411966176680202773870922052620238473899629712158393425436601855597759248018987588713594725704368628377682686765881340374483401477925227080282196973098921825521688626529008179765853676001739064326390258788504288767045671308914706942951154247453924538380605960812172603653951250788066419214436231263830044155762335730865541012448687772170665902289112066730795219031952544311241829585483517474357369154441721153135026406816181237112229395073607975647221149472365368332706417993300483561990412993199358793077434894079285987103400839317079370731130402735255947941908399580170019188338541257249855403365153662901642619524558038284763895038449554593211428299706195806880497002404020811883325079692236037904946141163729713472058146475590995034883111941512593910450076749828155028735734145767412457364523677805931663667681867512118248778112230481273145414765076917020659366144500161349340894880886883350310603332318639784224604526416887557099027178968916257176078297704622434763777989237207305892485825069925699137477319577907206319732303594781023026848375375906863386068999077497570069230198565287257540621372558048491165639497759956257638134722592891407307344830541968333841805927949262768327549522265852389737348858097964581501471946576009466529201920252510603630618338064210500624620018053470043407527885635328363047730470569330852255007950625613787406093696092050971030108806130868762867113646423531638728891422900374568264259086740094111213423719126983178553619909991448993024584999169719036911029661885647746829795479568422880494103475363366059587872580386717000237411212237984926353509130350188592651263543996792911845769812861086851174177624347459201767927430167888951027736520414973101825940688452374653990867294055869694860352519672260750273107770140679039704918744193516736158393882795114261561394049056202147350853101396726456422711321054993722780372043906523197664121659072321155614443890144376685752989877401200686960821445989139079406419452823203434272520575530601320641703076370059506855081441783898996598056423801973254429589280782878728912847923552083393516846995714315051813608087524848664964152847085023102195504148378843694113505230663852887157327595623982816161564735818549165382204915473699694373236692773032122866365048540688187785679512174809127767492014643139925539917494723616001578850204639793416119370341628562266441955502945886706174799257514416442029055212531403966307707257620085832932185333874267169544363663715147550517753215871804734210552575783797227501994302723828742894963708518016830178510867350276643278103252336784118287366294605975648698665178334585237021917913041235679942498259878075687461373995676962798067403050150660416580049951267525584804437271136711861830546167708324120362119696687791787752452480311520284908198174043382572545065793197723691864065704616398554573531242125326000331671657799494711553928958379559107475399952526069522765305861909181803414416486665157220544363597968773097840311523143468385070827920365838959979655195605758212568110200670116300454262340579072642841198568227357309050081209093334473343596946131864266014033326097273799490036862714164557476804479856909522722444655412097705385798815450634707129179818964174543821632916884989243573984280711746411262779652578712242807255986790232468905652288448180965848865950766228539032851437538061439568038767094770838590926186093162308200796226305310511552420443119993910065320147514382213002414222849299754422278753767151602963434848744262539754250838569530135746333184753757360531130621889657793013435761802857811864976469879798309579383031339778731148415390819037504879320603456026456763484395614069777907028729096782282784659945914928148087635972562558765489249991911202529391274032641061671200634061291926315844255347598362000037791527750709512076861936487461913261824515144282806581761189273813379519230068517275842151683985024519043309416013478396128000490977022649847873193891731411343434747262512790863953409111753180452569603385963258063772544811646900531993634956109591232654725311326856968142197176361482686584093585139957799816968801734512631387447682734066625511629357639231386208557299441458737723075587838881486018935468842592171383448202356978026780265840811282996790737739150763897611061569369922313522006425464800605922172962456608845852747847019181654754235072120322899469794612760778340960662761957079326745713889093977377683300388604684973439941660786267146429876406311500051295021643417219965503893212267023441384837681848780356374841627390684336000549118158606125960240833727565754290298279650389920621107792894854752563565288340925222532585943386802802434990017972818387995383775878032335562978260350308905890769121589981215256769322557258070945301326207720496248143815886047227277324935908865169958543460134446289792866821699041937541290455793494431959213380243766377327668498299436388490864718982625805700817662595384276283855359169379380003592552738686702405433704779870963863844653195660174443442443295586146901237971170787911891541620228188316897874032578247222980291391179626402708575584981641356951613319912233555207303574162790807710962285204846832217618924127711799483196950594043891922865258413891854684360659169003746806348309499439321470383679863228123307641186089513641487764469741575032532323202175382209226709263260841612705967511068346440650609232792967470887754195829586215328247507246846775661365805903558173661636015326298811875503072093891711489953504402611602195177479116211700047144441017935496439090791735298007222913432789668162103964734276047612282833588966342599502467051165380724523279926976881596012060155693149056484365752484791268704037829617780612040893079295033689952515538652396632205628617527673991854077009767325999632533117389107944041544498530617001872174895928058401380562362772503331268416001169030122344258180791483900438330655095181658419887053252672529458225684661588274100182792725421772916312456871329577985609056300852868586812188799697625575224302599437351526015795581913690718019616652485383579532364514415622362092584009120106715966522400743212390786356530554030426067298695542090263113791891185736615438081626070516770406585149752998656254464921001862217823073888433261653760276095137325193278199852018474813909739366517612200487136409964826192406221148468323807812844566910205970033604886790432826169578105549054406244400043869777380588072345903971766298367899683437871114344380267638931374129944536732613355873774384472552098029460789318916162499715888618645210141403519697908431637394306384239847632209768763216474802449169212770238719804947375930286480938087845315405096162394159403541292385691840591025398019931382321978967771889911245908089442256134077072844179299942688830947953851295681382262884002966270236218890317815007933893926549080228601468489905742546764277994723461815184526117379018667626884242370129681206919133098268424589012572854528855726717320322382314219331994136050448390869611350642845124576604776561175129039078026058098029495945562211301301607539976882986399189109540904064006705519748205503872641641596703257688427150365994627478467924755316807184336194843010735100989705639854845874571387775821122548698035649358272371578401255096071733169892008677809097060117211635970437220362972306654435336668757757352768238602878992698691007008205003519708930317135580324241726181317659140667060735267800326234826349714987595530203757493338405660117399357300096569891108789023862138041013684890974682998120589045933710002132324628837598238617663795676398518618418678011471312805359387860922642925935523154358173322241285112992100806750811004900670207626412699510274828813029787356579803934619271918532791149259913586831660467495691623443710015768145010366116901181435387994580534415473014732380052604376883832043154479313520645547268413405011202754600173806129936067015851331268361064373593600467768229784967774981852751140213650872133793777637760293436324121569825283588263993564194302126157630250313286231690474742620873066315995591446479825864110787504179237590126928724957442001203067868067606543529353695892879242133519231104802589564745918962552944518092782057148900582287412811163428222368009529406731835928327607181360310257702816984059887689449153177858704894425770247383791534821284102298130119861615384525292200215613169670284129525706451774232627433323924093994545939624156371106051372556405349588633289365333946239465205471005637967495023204966308724822848803497458044804497197340909315026709566066018108201763700448454707287073585688971364373993891734886119427014356813697363199225977545216513589700693141350190916703694422157220704234441875382829308874314559298510880806327187817884836919860804099375415073926922347225983929940488069490303838847532020283650643607072182731347577807503167090359788845673598579608190992622137435745983364725910072596211613735903801601751616522932495789634072158607471111533838121169133188149857576704738135154885073018484356321648676256503333394309333070074733527780354108301390888140928483785630676244119990107745150914314507552996259306731841273904001577817718527095880556311388792879181667950380384774905177086633174222667833040252447939885338919374672240557789895720853266836280459727494220643170334954152221792207478441087018423229429159812405633602318378825838082385262319427734681522983669032105053990538627384724411877107706925605041372679347694896298329008721381930176166088232273059721202428843068811928679923553836772708210491331456452830334777158742710920765431546331152596502223840969102123113053395325664668655361430242695442883602192354442206330466452345485610475780705477555635941763142582961286473687630606088015112049601880686090282673313700098943458711762345399997097052040417237650395420319359539838987540568073106632651654902010634723741843820023965934927728302002516529110791993339506870945394497815265496491412954181087376449945155669460311397628964206418390258724050085301875725770726832407533853180648562248766556490875454581388894926700376629051373038736623421966831515898122702355923489017637533186756740849415732974132606889257089913662487979232456756244245113507668114845097836530694112346044197685582383639894985919889682083954478855780115354154873192093506065768515468094994459766086481888783666443983266771343174968820934661088528095310989870114074746202265525915619512384495690148905786053603317518358072130220780613232286562992116042364356712987323030486082468439786709871637435202093538813402267787458723943491781342640231124773900072902362423550787054549991241738373084388269718209255455997882452150239447124856388738420909291689891564181161892381461564474876393067801413540386617373737174077830826654868250126426356548519556645861440968890167986763159560230224818700789273355580555651398870121027322630657192681464393323489580393370542458584807577267279267398577539323649065331674188677586109263082658295465106769029463936616359895778888096819698379947700580996400642074747577792367607211460651714782630346575167186920614975466920934061171039846617868223926284743032925169022887086013430420118870633712151230558549269174309958166720376925417484949696768993701970883891729315049947484114720925195634876654525234788378057648082594868701443252594108080182462046651246186605470431196437198259500817100538332010789796644272323408456151766594618704467913571178204330512556382953864625132360217857658810736046601368829326457903501533178399268055562753070608291964928653124351346006116340642545819079219476989033193841418670380488009166190407217853069266436865797348153703172871638763985794948223068304623148441038207915956597895857358261139958102652619255617082284080549227762845929230445922799411946894007639530846095571558485693572873071374976499785784897615550966114729158940174858076258127995054747693855902587641104218323855326929445731322813709933909962558570595855330426003696995943071403000179312667591037214114636362560161164199341377245051901536712524638365589229178878161196378501403080925733259441250218173895270682235128436850956704249494186868566575933021462854460643103864033123188793099760771935673340052033583580053415034336758133054580443040624212288190093422458297360298852063772393352670766244172392485245127315983634852474399693450008364548459075797754931876230293815564102415291646430421325535336532286848035005013833468464125235983182323296046741295107213342647139806115389824861127248606746351069639428773730302333734567957166181351285443937863125309100910547390733988426936539632516477371371859079279784058060621453330726070776312359928900900323792131439912890491146168344817741768178765913712687019065340586794077007203455188259120625845240077312465583067571450439112540997650406848537434197652753223061597782712638273313721275564815281617592533492960204422942533835013635999414162253348298220831684350826717257020204781797375172732084098258842699067706184034566573467996191663691415638039607002255793637622554076645495518874296855350984830224397649638805731939694179858947589414920324358597335479859855227508179723202298201868035695089732903334057123912379247808328704892942505955138456585665070644035292610232505518294805100518983479454473422397894029691192411347782150713117781050035573900748658562583710503144620886059201638699988113565476090761289862268598945004272717775598486396949608868307026360135790465557429402731995258048578726698402347098399637790150754186826620947584805037793203383140052925245059400000917636998783334100570390947841597948822467080980733832326451535648659667570275883484639514371615080782718372892333170558512914850671082919011030463349773182361750668354461967906225765104223409784705948973483456422666112166028701112939771565671189084735628788276781839803442541656369484594048285909648384219118657929383833664928690763816465772809927992505736315048764684703315082930563887960122379477535924212931532400028441565398380385744218993959974419413230712706460128293529454592079171002044600166164010025177857376950774500656122413744516933794419028848760449181847543702991952367073720701067158036486528765009257053360539432687183815931719527803575200293715359538539777306367135100109218774169004612723877755703898416867240410782364751460820279548454390000001578077598375964715060577561473151294774423719408985627234924932483518039534144049336693048472012004562652937143740885256550479139171498147301413894758887938676111497767372298141920527433553012077898922202617533938420920573685340938341533430042750937316172503330743217068773119614039861068029146403384398858785912592015720294268837131845843181978776993975956574799924156515515444187126247061735561780581128011449716545091850837102201808180522445132969395760949974588345356469471471153830076468679791801777720222553222488300116727968070535365472543157635606816876685073050380292939221769880270952093541291372321360278652613033955953188279885783439061550417232943545605279280947371960640547005276193254717190336020559646338453693259115246781292210247539600698692605020793849016059944636142048328561191384907368317899448565993274868263815298300044243702648223049876491231605843696693405066340986672665562286254312784986074362026020271995976396907802872310750733023114338799657417602595852701445659391065197643462818504750901009471016856017062944227774357052751441246989035749373945973140010024778691669208630993127526247849808671790706177752352606853475344599290966081461208598904095090519214684594628195918389845890835673470792472882236812450688934525814023146388057604814564029881361169698136531536232129576688975463879677454341965641302973785931268992665343649159845109910028153932350214816322874302302384871953942645231329254716886062074318577947330587180318229327377211835814353350631705511578232773126264388445269876680610977428557207899387745338837795940835830734074339851226442991488581924245584736677562944445865071748672417416025826881174952533773210927671721448442561567794310268454250738785411166208772626241931254040916366391119346004905347968934592716478866786796132043135471077640621971155227152062794589255094292463844672856971176599356566854369200740961865316266447151797833607062439535452346515780222592291424440858445903388339432230092496395304480288123977446945109350457057494397689714773934899331119896631579000944761386833080555079957836864076356287115044762611447879085528172220882841130202831190890051556186306372865949313788613330086065892651097719461189013030715381553852805319828127832666158426533102087446791733323639031066434677747777150848689912229035361588220996612772349085202504559199449144184379858712020906845053445578292004850327608422951468416466635830672752450924957779244558461702760416607934455452731305720190094668344105666907900133447218671527234761227185268526275919543730573610671831353758879511985372888541044620927362224752873508494483428889992955941980861515437744867907016262480405055218156248781080040214182366655430146014413586784441073559516577634125884369505235707404662339371429209982844471443160212752911961643763760371202677563406540620254746535940221149216020606069867520904424268071935304347838171860617200061934435402547513609983680197024472281422220884439932474136417575102512497719439978931457145973108739195208725757425589444271452888715797046194733842786298148010449445118932740228381891651743951770316822350976450453212512772543503315846956237286792334926639443377847239680688299378384759315544373645735029927350323729003730864326119879743733369840473916589541209465253353160783237077747974842878558559717656853526229476712281655871319958706129744416365616186298079089664517463025101301337545481231300191500851891007399385882786573909163970650583468986085625155425597838299107322659715174617333686196073255395976978451320265198995396967994532949665470165025457799102799285598825932617880114496000881981469588098710119369207045099572464467868295186838941741465964723970295188320522046614162893238023370781326763602551185694511675745213031156882628036736371051846328072275841330615094095305271450083938352554187912498623282566813309675672704561748645435056705208552999308094753315471551035167311597552003293977240055044069927294522335822552110153044481306382432701239633902751551751512880897523326088067318385913898282508969849855104773327267111497143693714355688524696814434178069787880911321957719934473554911088321673039413514113276267182350755368139660917035236130985005660207243809970980286388888683399521204497377920795051215455347697565304813849571213735718184200829453676135207520195671598065303363968795749194892629824572282858388469157819481201776720025123039869437551999724931350452521579968493081905723851844741533695296812615359946489655415120228702204802212932491474222289909751914917796449532300015057667177144691264637235002523509287504904119916526633505061453613011179932888528290080357416092789892810511667492589234280898519713136221720767220999860567314650313484745780157682452970122399621116142873203558355777559163346343120010789055229523661556787999839544928733900353377433416569931434349372608795626986897048853238955849132765230987972761061360950450073302829484413201440197451799143087522626481414309316035355879532113136919496486932232402019810319499210117531596634103835663393666828409604130230099529544785622411469467547972855253941355305377863481835298544946372302421312601252829101767002236726170443097838634557159491818335966061302805899090834086620796462431031273641315671450559706862398800855894212595102041809385020034557779285007303059864198091290657330916071483863401503221848812189250742703522108432829623340140408900577509375292545075847930988104231023189170399244972628742141979522516524090057426393874621269223846509245149596841796465727148546152449935737925449048532515960858531910924244763894097738832758623622565473532244227204783116881678791756045460331757089380228113230152635899591493348448034519046793220734105994021663488018523373695978804902088693190349511942591379457759500133865558163612917925713470009531491587230512827093096511821478629170595523043240094987990585678389658055983978073795504641980389509312432881208542499845140899297016814673023618680468804598951519179913794624288128385898277810005089962361436509878525958660744058395555957662896113744726161803413503169457402295252924021454425374659849432633026972362036599181724042618928952550679785065396930910217034759312703233972255161882107460884415511015573510145183131349728151918788231439405825815293802814155546829246523449057600379839044986083781465664240473028482172295688286200091441584303238788525580301942325617479880038418806038446783002912237720662373303551648890162530877986677091488159580898479440705343199294314305547694669335047238544778466602608270430416501431418973558402379062952826257286319596546225622936300345018844049210214087746499674846886559317742443196466757695196510543101050511931799625165647949464217368569390691956588521545794173739821458155985793915693597166335091534494737826047165034895534682687396109416295393014751480985077265992434875359485143752117931970755905710801603010219039765315202860116301830479208510617260272813737182457483667188978950936576626921963829937424180968601973845273351047100723043385120199123087566983170714102504486688823626260398915975723848003799654150022352417583456923324497842133324752230056145944455626817752752268207309147792473233328210757545215203375192656087792060137889685355895829169621306818539923122180465185999715399930646833932224726189863046655463559724275079163471474159649799953695625410796197094919290752614181075448445933625697830955806140081581851266873682864403620753783321385703634306804377770091442130645092461391845750225462399533388926772874303599068090863330435598671979857481708110973113861619590489292293110589235245672652566294283487317074085679657245656145028401204308045180263592378267393340192445377275165511736523275031551508000555993232895769032931740535632878373421746293593599512978658386296955298716092341611252157670335004455643654456863441467051382987105591763718638896630210410169812165363533126900840588990110326058737383387971663642832731182641167419763366842165848747149135933883835956169088765391377051629952251666463893232000335233067355497806418080687413343539543069835100320498434183143393449208418592172684019329841577758890134203468654267723286874755585425913992992544115295537296069550502516432648178955050199975361122367578707358383946096641398265901632306802425965527194842111580656023942298567561444472636399891123532743742649829134126437129633986287600366134765411957958153273869467495379026655336819710634915602761298589905299742245441009576442360645914323970676183219041942139796628487800782588641544278985166871627094999976231237522202961711987659468296027768672423419692170361806537671238052457538778739434893056573968949109622198574343102255085675684000981604370677582262916024219491215439745488945406740883149786983456057189016970896413545046267555839439455673501762354872109081612483120574756200277735231481323050129042302214195435784369868182299943393099841410631264011192113100715008408944476519838145755421441518974274247551714677805804089803577983077673325053745038514879993326172200779255305714315352664376007326963022033574087120825318358105959778176978185470458861091500831286024812068488648407382377736899765020987430852501950600710182578634948888316385504032472322849659912304932754304317617833810959474379841645085110840088561124455933446112545227646611374837873954911846560871289429247153747344838073918743149420598515595416597738347620082441233287047666047659725695094983468800077146340079316857549621745116423163768547142602785832605669090124041838362525362166805554758522376231870615296687866734160373641213580371822330144293227602546040676709292548765692258056707906141363750972765815212674264719526994168804440604434212129482465112403333714037139226070161774300587017144549858876290191070522034556594473091948167800443353416049633025949373335000956670271403717254071127453018412880360679124579631503318981008810363657442990335490026839671311955984056231305477690204089071992172482598685804275024323378514993301346498527395784114115644975824900903288751875330915746554992641384847966033294646698389911611695541588862861254555888768769700641437964142024583726551798802776575404859348192225522628769458379757663379139157018231515091190900462572305660627291627029493565395677103514591174241822133701677159652310187343809066319198017620254100317941093143225616907729547422758239675037764082665969149096781223762670175548508373107890278628920822827802718516879457481370488684868466389937980108787738271955051107760880945490518479331757175936697511967919123180272760349993667055897133313070735771575858298330228236175214249539544898224194536389067210098650830547974792811870760678980827061231432315191964142348177286193569359080878328675368193623038623786323963058802389094165471791247955959372305121149642142441104827733560718298014621528663578821949509873344402405536215488200722339497549468423820200697216164752211104666950388976905138058062713242589609768425345785936676307096308640444830666913704749177797674352708285085607820259443263857384745263800141984867791922769290525141539847517933641997120296833603773381193365602713436346273418320496832951129289161285398879776508141680681074880445922472682021223490211281476736921175529783415921835972061121046313244741840063105693146732953717890702969897470371293275019779218240231200583069753679004885399205672742882465151812709899341121665856516258734097948550634968559733829091705567129694715558343974088809710616857715436795671404605337377802258343544519321463676460430971031715540092300141528977965555432424453971217553495505495959528430988583246443731478460039036424276557072364077383506725053003129174060056341713914932040045551946339802749494092489463238937131320260911987998704137196520580428070198128008804394172711140222670540063588105639778033210298200114337880798201952233018847783950271767493710461941145159609407212780684100142786683204450591574042971142182502016908373147959984173207716977449865041722549201594514323857440262843492832685412047707699338389052426579963208009597353815196444460696517419634231952855392639417292094244040659656481213148156701476790429654566453856354939213358751875102546462600132822394696037680076265000150846211698481670288307362488765546831454301398662154416034182864314877444130477857660443770479478318774549915970147995009217626987458020179304189081447544354397121288775464942916475511992125924350947332422328330306818519592754526498203327430068372060716880104753898094689734154928279013215792015674085093217845362351357638201181046080044481007193194414688594815056461214646073228942283592440383361366923257009201534632720277500508302668698003601474406444828752097074066181913896527778444254708073351617488690394647028782463086137335366659084840243655921795738878310788911318151856053101725379244871788262529316821081483766655624028054474370975022036700930881349914268639576593032979686207862120036991106278638757679954757655463551462814177004534470931862676558682955878834237100320091341674349765910816878215880748315647307687665192624066744881344043969970544074456946046323500592879316046471503031010118649791983327438485122902363363268938838539656968092164199286965356232835437564085939548073766036328151590528792291666468509904680482800184046501924958434272807503720950252343000556759028736414754361159529150424112835885203081344303509309890735623072535749465821905249594874806706318081878537072331750648483053407147735863483506373335784639543947016388077430332648635072455393912304839487279511253224437283156000470788561344928787735637470802528189717315691595789718824784582305466977254082578001297807728657594375893636062431090785999806529408364019118076185167149115330463967364243998693606415786649628411554720755640738997539739492470434024167343748345018550388154209875390101186094686586902101896652060255027254081742338039680511704576165728163699017261532557964920536346409887320701863561087510876335030496251986018715748792593185357671439810165010268131881028187553420754952882801177292840172000660638980879129411483274889341998075830029084223459253213357341242153822197409829492599804673020616576025721359376261585034132210045138345085158276166043902914317174018921686085809157310975492723247162399684435318187495896406576190788519615139721403577258890580282487654764648320504323182505887798386610600488933118043276309438952294474119486326378143476398994323248779103184960352181237040929922392322253222911263068212830380754315353056307730218893450736304822749473957373838994141339927180251776779013215788012589225601415608493018056972258071440166961153590450457548887294631283588191415004707928566371964615256963311502123507948320492134394279599736011735252153212844898031398338799998792200174495280720745863015183181291777861002853490222370566898442126272766490839580033810419762957981336518128741425769381240056834471156602276997720514844904212014427400918610897988781267802310120698369249026159957115474773551549572614650485505516527891043189599052371009492559848648105546857577973631239008987747735163023297023930619552025027258611633638652437880802786928076991171242551232807420841026960319527761549205966609740057217207847203600901227623408851729057095850692898829800926699058442890785894572780746051457748568288647259456582875874132566141194513208695672666798687845719392315959259851785557653465332664033525969821958002472419226483255834773687800017827334287895472011161121618825561775542987348859695156315270357039863840930685897100169451549279060181774535897823880047382506459810625052815708792774873234051219060208226821561582410583376939970550569557751407759259724366314947835614750551845524368295115684930745332604534860892560011353040225606555973488663530991944538208778449888134896808363830987201460605088995653737464755975077967517322095765152000011502319838477983557565139914702767324804795247427589778134677990286472550510767588498842788482346675225328716686956202400198695177321617328575657074165003093153714931145337057157644379216104815576283286018305663960080965686287508888908189251448546811315746081995920236325434374863498381666049437518263972206763933498727122122106280386058768017042224167563401767212584959031466347240952137334125842292786713129531167579014606554501743591493983032662861844566470678763974010039988742561033288111984136153997927484364277080573321439919044677331833270840927137842890889357732508663395029649973689233852817441931329708572374456448611390629165727581146681969791166885118430213258654227486510289383400845227382216839298011209973255910576944419416995598887969969434671536644369059233020420538941228522964306153232844713481241299296259790609361147377034147616741725691653048351713873696400484803553395924879307094731837881584594247078440534249402496078471510019803897055521564936588537071346196966720207717858351894797410112265742153009566757612606833981415303959174640825795833687656167927969455710260460461595919194847587929130438894236223371689259911074669715113668346502983892123120754909240991898736289485538286303072239381055874503181975905065415920100810717849271189892354997210708725366237353827046343663492434712926267487570233758382862510936842290715322703577577341592951067863530428051331257180560231462130669159034206528007041557785595446769583788894293972490515447819913923988293335689666831879955033728497068736748214186203151563876138612827263746814400327050942776126180998255470636752084288109853926723756895160002393142843910603566934244355455759650347159759017313691957742584609285158775544355870514935268240584052566605160473528955438109525087544786177754598459587551536495377139462903779854952738215556169013236181345728154855454511554657777497206074310537374275353745623258872373919295413336407115709239321532402652993694909397833047073983695193729588654515622009129508835136253671179587877556080486237428988309938668342171490537483942784483580858519183673232902742270715524914317139521207007618945759120533760141829680470601413323770477175952421427899622295036390678253625546889827151342223597066167909106595155036156241051568464757713884326211641403454206094972606719241941193371304802455516208561972616066068504319657801697330386750262109098012736240736557824546516566185321055151920235640979423101196846806648248595550323258107402382770295916209963405844862048401965058319516545834072108831691909708313172198260834167498700716126590766964161236445333010985071308130825513923729213013233511999723505790800884709100571786997626567855339097128583923768631784197115506481460879488602192905455967988339019594796581812876649908149920515068092673471238431945636472536792711969945975898649297071476263954638646373559828345101556222130643902462716162530856135703847414790966244179637933917026999042548952055813900179030919546422462709565727023195684728577407759320478046078497918548884954892816319553245744044403556847748763343702621405636989979687776134383273715030562729607764741918486217189907345892380968458621878859119104105278247526210792457205816896356514456975483319466488220602278716650774150799796763660463175777072577949161295306145181050763556195225027740924472299003638756453228476145200333159075544890313121550168449857090011709877890513391879808069984017145406016025318479958964514576094478009038939183986692441999046272556030990178287464055169879827414555351358273166391107252233323031900466487617897061180645678096400910150602585267275041038312328148897466701713543652567715540144729523297483519304296728005141940922998193445534790496903993656571451766861045827983031905155717528774965712601769660491511738625927138181495182240652561625309102548499815056445506844215273717002348511668722711632483081893063838654929407109078159803017576444067195958113353255457283417447389065794739133762633885495393425297795150723861261482092988883166115359032973918689788032988896728215984963309882484782505592800720777317640218617649115788102301816957069019346105378371624239953785832267737271433178936291537237989560841174726645935737309493973457784895912507072414405949227095135333117301172437197424110773296419508816510950697363069762770186815819850212731671389797041052664774805938588870734221112556169807359243403493671616799367372141647390393912943180866580725072000626185359591850775283429631483957683056103969978887279078770041691274637212529233025059471303188760106839441504360467801778128155476206080463097979951772149195333367210490534840874327564548661742144052988176391290340235101191235354785309839164586932701782227238786372985064467791737988319249391183126986592125907908751064710900348037002413538070471428289071838186623388384124282460155709088409918504434639726858909365755302417837511161929810090189111679835671186818140430971161238065788159277909334488291430066125985634410893025325921865890427126131372061439739221162912882750865348623996198367418647745188195554336505121732121939948500797128713911224432302221482061055873783252613580055309811699254970457101537222341519621281268871822928482538422617892071909541868053495743426140230351583337625924296019551003019225725521229130715229681613153785541662993292805770969624753410327192109946633007363078720250799390342123597858012542753218181291789194277521498985439144893427306097193473465223631493941605542479779945941866334220268651674619581187506956652000443625177444336707378192299337041038122656766880765502086293478361600312713273002840483245231106420469996057514560060899929951634157265688833116127435269640086064628098905407321872817630993994310973349049574521983668686050482101770980152421556389074600588093534559754636963439361471327380850562074914984889233042741607065166388962241338331969338275668883138526788298957566779363507677040475387006978299568770739084577213559979921603363662269438298813689949461078312990620007383529743478923713097372497601090108934353769346238217810910816077304074065487206426519586372085974248523987114489854224030786662141973888803537825335273307007551639805827891581628278628296588720227396340638180987800241263076652875017315811896568224982779848361383292402353249273646410094328422794183415020793954800430498194001194965580745077168480787080794117159202241622462059208101889376610026308945938665444252214029199352154661810811010748913661350769074734880681594511480452200170699155719421864536737677971703496281606736211905325970906144539308048915955765013280198292628867849532293171749568345730349388659965613231409264670042785811848622106135510384517563096383863116184072333563940647802478250298657824710891796250213664706740897093456332012461112413678220003985920487092184562291041482449866564870171787986791329474857519037237000679436668390579004702980217481767630604978128901188359166096339259847282888606016863364949841187955112173340796767616096048698426870975863648608844480292401646951308467893635103500278899109617220301365934959124217782789851170151381245321416036954123352955289587424093828489243060651118467431596022696349420785709410296437102239906376180187992092584710219990317966727116436074295992897687041324155343892501560819417285620440824371399198395956308183511642822673614590369796939505793585359648361403919045876658060972142921887112556312877715450355274872757747976669657402946772049088108510681253557667332592407713063391033208262537280173256940627619200640925449922750702303230380422088348969346951360710596052736680919472014564923859294365640850063308480548881056005733943793456847091143086043584943522355437582606233851895100828815333511785980803536084654234912522278323227474352732877437111403862805758054988813349391055277449874158415131001882678506941554862822236873396997710922383083311008073838245700134561232707503339064506514167581518546828323847765329269469202976460200158958393210296880862558237394127570433294265072598745609617630235705436717979997522155639847253590958492788652534114125725205327145052240851533972848556108878366575165211056517320987734269822866906169643339122777337227407890130125921921937806146404784329540680027827582668306449466334103049509101477239234290773089684735731566816479428801675561469970164317643723195832051696174345529933892798794292605513606791362869178031759543295813487995630909920100410101977122993041413155154395354435661520305822276261305657205508338641792797233730470632493397680502922299716992036158023853761241172356056633706079387416340309356865037400104287348175572575394754314586040057126227848374705045785331996777669456447287359135049321410273067270803145022788527164298958520877979737898410288005872840929472876939373809961499350962511036176879278764596532795003779438382457003243068226243900560177155776901622028926796507996310635944358413081632652604643906994117842512822996783218547515917965063874781450663032512181045986028485560788228301569329352839784708603449036489907995278032509810642105827743665212949063576073844203434288095735719788421212695904399528681376673757324525987701519993453922894198187442890147595330691411843161299012055790037397006819522659398624644584109305566470815892785661132909820295419593907521559399691655441459197690097239030417969153598452263843417525413327446712328751557453634289353186466641368948112621768970507192285261361224645595157146757521367264107457997971694987258579081406005561462795100904835250440178116044506000394427014834512687697561418513869000184730152459241536995146517966413535430602042078280710362385264023033426231739080927155427116035159972493281925354133315605485680325995997844726433066639757824497100571305095570434487648380212295776544663311573779700598318788525448746871314734284316174318595363360709302104394482328137765568371328146526387389764053923329945446984943638441436392424765801902235871482837728660351213796107098873046049246795664219777550493207765749713072151141250999072668008819501702274240952847134945212758930034195342708005937845487565633608225430704686512818884566413757854823703616275415500613967434209415471733290473121864371803025988131519259983012137383329382299426516799232983454546813647874497297334334194499559595375760328018185151919076596291049163993051175677258541374303622476967878562287522131043474797306250995541877641792609037926013888204207587007918883540645433048098766232534396800345367048151272712439932177601139749854062879756852771247628474390084590460156652218755436760344042365660775901402514970650842012585052272830522719896623309673085158965997645051911562226188452607929347724437866794925903117779269795496504238939750785451716668700522973416104971281618168451603799510917750900917980374864967116482154414467210810763003065019645274204964053750023433535334426733689090510059123457723464170754118727131657466942431582351019289803725906679062656316899679934605455939317793064192699912446502059173531004418919909421191107660227470958195269524463447431305992279685250135375712593284056893717886451525623742901068882914953357834862275114251062491286120092321227736429500037790379280934194367931741059437878929023445622631619044777873887357107520267819965435813957379021506684575901485911836625283149696163587612097229495760193965870051536581032721667269589488164300815244229845778795528473417906573787445249027137931740995726393376728885374638463450760957381861514294337149687967911032954247573737633347378306025843619535043552358781629045106358431734412530288000454777818810314634371945375978486094807031310763243066743441385972336566070922959920954930280684856315353906790604741306336961863005223769761352171804256826992595720228395318962864442997124808814004544353845529897467609639301358065298389422513779681373568648549168257847279872136536025270925555664732883932593802091448160593873645727596326346224593164428493126442885464402513044661832964381612137222164080328438471935228612150321035546492736847936319167428919353858437787231465670530580671164984468180702464977699053269431808711106036503904999864014560853863792942455123273157558920746686189990511267515374471777838484020839880917474201719764315784000021876662549044449368214016264238108979176423133422077763338637367447531925840350340326940186157151876033302696643841083247956264135144258887514105763454589106575494052017037768584291042210648299500586149348496197042073149453565108724871392737568091935401290088565097622897446786729325736556289765214030832161517897255410074496177631579550263086416231987683099755180918948552881013397150606734778790041583671359981404605060681681084555105739895269087002470170671742774664474793891055796620942643218450688560594669176390863591085501689732239436826456528556483892905059161482378417631164842454114513711142069529779120199233160462179408649430306685050030406559166861421181335005301798602184871629194450516033188671046033942981561878783214030678479142640166536303576357670015067902100396066357044596153993414223243487040261546866557290954918340139671677426632370328770392592220003871987073125931478707655618005420019248548874748043461315368516470172644130395721795683722082905059471402278692994825374738365702774004894956253847367300411874814142034910381822855342033572074178359787479605413932088106971140641179621101491024878476099989003995240858400140589165804146828194689497377118750052665474458804101836162300269059148066548133438274507895324970268145361594024711454801024906243788706591986277736518498823748018860833912434359318028902564774727786606853884370932870163543036478313187026003275653600092624246962307641846279606399247935714670319870711814709198087342309951687460892692254658611419888676625226328362627082910904748592197900903800356763335514731819173199934229398670895488107732720773452719839609097808750186020498304810324245000249080273751087497592929769485240766109131639935153965177839222533473932038487508336302162813098809605775448363377304311061241682359561002706172821412913457829708213787310909347477926970162797497086233557983692675085217196465745019980241582403133179983870188847893510323138115923041655096902059636068753578333065650253136618077657916427489486873498368886859802396147870466646031654352137877380882393041272003278829172505692933469733103950741512570378649543857721664719373987222580862878295465927306523752010082118005446541743308881907072918622923069880276027509314327477976591157279244806896308560792656967110288894156271390705793159448610945127400805797365194001433191710823585481540513501707073332593289779158181793428546931098686700844239114412311519428094319613976070125333598567448976515894618577045277038515033438270083776319266346206076543963436407813863869602967696699972518593523175899305505267675727068830312907450416231979137539318815698803754133863461231960714075233545141994640382429367629077414926462675614402923310884616838578912416891406556402160055789210253866802186624298153418612973456582636965524992498159517668764856337317313439438091281298624531847653631313262600233733904619332805293866862957281022276508153430951840964579492269866943396992569315481891804269842986979919881534733224826030472176189344793336120627247239315872711293993980117747008512124526413991369027728057066368668540214896341295212744438536912592478615391007973490519685029427671448401256172406782538074932213811391059970898465517316897785777401873829485240240102096168228971133930183148462781395159413370716963543999969473656757340041116247086256418794829896220169208307924034297200378398778486762162214924311380532947275033284466379533904794052672455356558262707722108386683735987081423818439238984980367581352874906935470610918108234265102546451361856323084328828047122936652377063787968255602022660976747607172811491455948083030212718234297422714549940648553407790416327800059588471134800917160054425708259606509156602844617300471826716306887849061567164091160925986404712943985206648175118866254786205778176673527232800158513030278244560984308702460886961424382319333839120928404320786153006070135869282784673117368575115420646517956003680535794715019532279456118627300874429351975938530004030677858101265727948652726160079643170586209916828807817302054161542905588068524108462574953845224457822392013636646579145175354113675753589294505136776255027187126326913043528587302485639162879055365070733158644769496910725025500150566473148454523666554926549174675033423077085062477255015235829442695089799099926730801721028349620002490528695666150434637688857289958683598667445431442167912253031988619315693187702903041031932834837571193785878300654805623957603763276812877081221051931388506837960140818562684502440164280722554286572987845265648702137797217559462753111663302321475180759383698998078640963569712281483546520248429292326241638970358940596830317846765436967379574465315007631244881308246905307379720637555628200600009733724702009383991174913732711214665087028035850719326781831287151277310343297418685074823521085357921880805785747710422211174638831268119404702789870190379586862596926277320776392076610070426506800407067639597239988938923551821980778937702589901527041544865777794905126909088358758675193521430816745391072582047240264047954879004302844211699475652298203975242033143265624221397387140950897444564663349291269190461511779244576339373853746301462065018005430340090096829746145983095365442588386278224511347175476676153338010318665298241820260449102447233817410741598793324230752323902455124923475100776455273438266885057563544737014004927002809703002949177108103095677830061964822629267300612011213061549845041385619142174380275006344105423505033466118380548605518759129143881993576825722504403495440453642050362284872186241400430637331316193881232806047243817661945297901178096705398184164370186348371236170369693113063445348081210906940389505158136574572825631679382681616422532377793719518081359532965193202368910159272586244190770986647586322438866151315969605878843527086760754525737246564994163396327022637142215780773719971367385605600722336672725015063281395529885270981047687393470304851715956822963392355080292459241249318970544528918778096604618150414822566858447346938431125105365476162079963788627844532081822449996543311410480944479118814192417608212673015427980957334349723930780882480794313548270219562872602720948510054759794330570072655038335829821806450453348803513766877580546286618564598705134434229945014609002506745576172254121992599874921341521242353720955507929121401936314182588512612895719498637674792619808333834455506929823628977711750076698391248446540985953252284018540325967825344600613731935608063229041463179730909653643591456148711190802236407530007229081310190239588889287526293464665226359162375092332461672950578908052503657776457857647366716274609267603827120291863541841363691067057665161083599491501225556883149779175381648004971872274059838547699467829299289759077285656893814834727610043443754975008840533567571065731089911127395058550261118635254528311387995791791585749253400610306926830600874128239463787331207380796545568395591836875828428752580734581706274832951582273311101988860133897648285809794985233309765817444342879306561175915333697010636450855672094272126502437395020005551762956725249460528609005270151069707714579522370613838854518699776896289174982637541783575676126897534581568051866421494141048347681735268724530927642686358865748670610655833414499848477351938496158512416164429136413416442477939103865000445405471418834733518510641910425510082715287858964411551368004433276457519432840798661553594556006119304889638600365257745094438735235779598446798575093062001946901078924199268021312372067323430131285616422834644987499088409815977266346088156616062893353787150932074966484097608117477303843842932257452409512914797795789638355702009476135194156928458851744560205324450282386124903889688904666056300468291845576261411154993147330418281171343948555144148986446951717240886857314903148207142141024764082566396506066389791585050461414256945350067538064901168621775145966747595720727816088723551126024137743977730816047369777689603897513816087239385464686543218748929886038229760884292954744525358961897613318541358033982421829590113340315626802247098379926984559908685659114700045363520380946941311253414057110944518226115505345034858942395426817031989480226993219043357508835829222445558025157760310019316990592384287586960894797771279806246017121057064952785419596736219513609785555836869737219039442460411139784279753363516295314532125607949420027875409808690775453236886896931544979524507612758764872891213808294867602393887509083629202457090983954485917441268989243871309903949025851908252391425945146925254560152268951944250069847707691443610101548095724009184731696049052980312105240880068275737836067359245176435673616370237109112405475995859050453914429141203873537120495525113483237945865019963909905003122851205751255662285425111444142541818259421376293646536271193258957175349324831448555955474895690875368422094634734391036040013250966581861954516026117464033684607475299538474075477355764069636163391346208613006361919923577290855410468579291273496061459695677429241211288845816691336801280715052359950590777927162752888689978325231585089247513527297330519041932318284264698623519688594700556622346070110275678013536312054460088114105227444725051472487253680239299142035639865461035648085721158163942062420175152136672838059806119939402659255944764800332685323472005691127222942765227165063106121995301298580919956537427279566730290763624283771006572684598761118767369979474272895831876452928437867374446184276151252781596156516283033584373066959753203912911488237792617299396059146223223207983284114168468385581421438000203707100059372900519831170775700429255484644590001667488010570698677181627732626918832727412190066243230035888166874592152773767649672737962587038586124805039417568463742202085447446892358809569134976977015267195923053975876878210006716903984301525506719965740124420135193392360880714172945960683664947420455594492029647742184907234463476538577917043925928447016313240881013070804908302818765284709564652083016830751436578620647447555152652048685848442500330170509515799805494936169035360831456712719492013492909131703697451505884489247932313350246342306803301013896887957355179425715874811691630382406298870752699506108853594738591147746069273837950083712301665150278252895744816715447593079582864004340224971976785336170281334543883798580425682932999311629977511397410057016847918241374289139064904152578599434177895349100981688385860438774077487050623141658153069967175510960412634151058380509572436296281164980811557903283762452755639490022774727895298689520090953071324053608021620518888482683453202985142115459338424847029142336044590077485474080398038704096023415098664843011204336219437003662204071777707262953176215457874148838451780963071675306075100352950047373241460401712700176576755488087090409866314422662916828928037376273908998112536973882939203248843250300144101321712374040405847203475637316369533566138905102340283750027464168910299979050395023100116446444549911072303692093406206356227004557043073067002697976814436275532298600987710276514217133199332200562302373238864235598038014303246127328344887134953613902410390139761558335689593977912704853245905485426125755516129048474977509530235203128475749617325733569597051104707851199046476452986758053806624565061117407789245075109181676999652834724938531307062619035387788449044707218701295546390699876270043417451610917342875828936450155042936131912042541462902621285635664971512784772167047294138807225328868708687333022650768690336390020998343624518782064816176158192201323769861260098193127832740343811974856371207006456936886565712658784610690635984106953093675504809221884734466117786013537291629469051378631406638068941117305976775454416125130041019375302266891269491052302495802904480033755947098887761580659312588802506707040971336090559454161667348325461884213902427677739479856176070998588034034384619714514724030413717572859647355695246214229333126658916199367305496176659167279973162934868155009233061938340426883651159892046140402774228358161508500012138619073119369972503440807875607428797390101710065143313105335977793602614106226324192874061397738126130720206074643961379795089261417887947518626097411912431673466569962910929234102234256449211402599809261672855190219900649146565272946001997972955012960400110022937977594283011850730170836284279463636876409468843129121289827933857076831843740662068494444351757518139237889719854207662679712811248640853763357516345466536602459162301849298419541496243040597475161493717255431237701153761050694168801855807047670093028155094127377323085807267963057753043547759698566098940023967216468448270341793537107068902175115831998202850917972339537069787375811000444916998784087544622270114122201896005963871332494686318706006020204701148611064230005892166952713402908261088071740110724194185113928019304761476185102368794625397833847005203577801316264750769595055479675171808436268280580237521492644431232446014620879813770060613207454145303636812188890273068299808891085218471616380892126536952789107866564898840976625266924260915769193479250286530260319732842507741708142002573249102503446835530133370656617980524388302520757304610933596489342542752244708438445154992148075666023088265010483871957164237139009109441919039451094328919339432893379478944876357672233317958994648539027988296530981194341429155484474271974318873816769834291693100663934816450925849001480801397817342435614055646496264094798206012410358715442240893388802754350072971985328213428756190201618557875465744084189307561635741649459730936253610495355004718471422867588537101933558528377222256298033600202850570398254749549406988219428443247274505509278125171409175258093898966928647992043941722857164072166927270156200400726886620872530182812983994784313738316456324338632565059600509900659149613837455708829303830821332629347024202609040815391664571963008796080153974664022037737626765848744489428408938181153050658980921841550984791587608760781864050440238407079944075518195448001976584776858278368294990001129778738642305535801132482909006811833676376030611885087745402995518366517867555514235043890824696179225606074049369429350411994479625114046911086946506953832479879622734483529266961431686133474566889275287355214724352588085351366989015132592799471395856555031813487095694656796646563607825453590784884997286197986988276506119864377609764548483315837763560438718953341881549104603795323204581570093259939115465142403819283113726073546590627655926379065842773625652464746032610427263138537126914774397006721040365893791820752177684609433864598696818047424224913910147940241217627896333007664570855286187695822707196550671895207424788289766219151603500546297966465375054752850385375968057024873764128082361633707273002908014965444991855276979329531149556815811885833757393399652548351255722499805172587689474811623800322477065663402701556858081539035493471370674366341036182647100203818318256810248155134049229542207619649273097860742328738954246390384034600672305074420744769940201300879220482910169045448456466197315596385172126396959188983142530504762986490129996711016669591002565438636862611725157490530391973587592014756798249251030442076715939896771127276835142018711056987661975138242314974616210555524525146572527986201587002174189988998898826185615244953907246371410915203876369661264992719159663951972300409925855412722088309904115508676872992259477729552803866028832532824272147881492163956569605918895614576133021582271170802885869848868825780141800851379151068964272230817669294220992671500757721715804342469694550389512439997900571289141237179435211593017533773863095384869727812891439209263326836373038746332778699171506437430022825224635229958195694150560905711620983196070241155247875261825523476615506210067233002052189556857973585201500363377293447281113022736058860554335308592936429438726119660391594061356395855802175330872940542458451592795018701575914684815385181204273273273658787941313383609532824461898898205150328304723077892356509592454248098720855580262155122763394988259855775920356011598714514564555100751418503111731605292564468761653627385818686133256265125474003524895035536569916171861030226509435813107311366359872083752025620730875495500256941269762034261867860428652961699811307138858912758325635973098364334314499282230487265977051830798153884644909320362122413420581787127054530104907171485990612795363637299605882857697881591483395638854548873110901255556197522172844573126757471463429710812866727257558849052850370678406948029000766844845764955113595591690337160735191606288997225584511171247889830830828065739755720256956971462001341467729534624083770589693246297009208461799141873321869077754835959175852683887270958557466317824924118577288380684198205813513372962331496173516723389216358812958208218247624183592606405563474862298424608337976889616155421829014460999896411734162348001041267788187768112349175292649226910389174141328988879807568482007260045763960999689280058073330200439713466539852367060924902691855693018713247288943913965685656466677016432575306522015481484272242861981026866976629050092471213662092205410778331672020265554929393320812482685437039951576707612795178991627687984694672016330357843648186815730898265557765911500852457261731649812721108197876916327354175060454848234999378864414134668262748927166505446825280378429876668127674578247416463809922715648794744645458228016641394707170061072698363746559204646541807569279126813589866979534802896132309057591762038325129509921567378858993883088247194691435253404505826051844523101379323920013158766634300223822123652156822371374556871912948680765398212768770422176476692852771816376280235248788484367521461353669667684036586775925362581573924214109891714100835218295524046907662395004240643760868464795113903777500823187542336943960909099343113666564902218036349392097222301759423220040855891880849456548651810635601822472298035754611749545829301417517417444843218992715748000483387721472352001666032465395049047854778454431682802601084848243141061698073827306039844839904011574418332375953368716860880058756872568244403315472928158017943423492142755291471923072885023968284004674623779131385005875170794176988253850701162877825310076308820185472117009552596109442602418581621632714496611500511659235991608769202254204490389620279076573000002293078679141868260958130104950641146134564154907112434351048192589149224175794912704988472852310256021239847183582554423431188112597913600841537546395214956678366172308229880204539188559593687064582206439588283351830902006561429331336972813753546357751216117400359500701859342010940962225198319464441071065498430348977991215470743892840827776710168215222452753942417140593288867288415386810717971820822160988161755915830440144759935961253201900210027564027759535413796504129138546497661079957131396711364949094016651897390930105662541126896445516151805727960570940142484504099287371230372000920151453401826319768694220602100018326151473324543311686974407977210474565619860152373210619119044554251270778817618634132955016719877969595899082619061575016520270601949717377543300499457179496986463754929373995671753497907887787592170897860540313362042117246282807694750534859370419649565684598277223878040806698195618976522633250191183421289112361064846664900905592331439298715458491772645843170081260413947978035504628826543389627018853202497517865511155108995340782290838415049787090136865673766297027033541013816478060152856936439956215861281838344022426263411751935193611361594998952858365556866090623621242614292904145053869937210692296095352224027899812144092342814068801378644651707763006491133731916679024937318871299947953280203134308223796810997749965491116557988485176285638008330556919212862215119950633196024050158994208788328663381505551285495916219403295871839271788982481496908193054536112736169917059589994792403368391349512992811547424268969846549033759864738950943601474457198238267543092102197084399398307316382284360404687079502821574898113712807745741441865418833141854979525677670365355388338475825928246449512109764967196496957099505737527862962482493697667855334546198692277032353396643474072474523739269106914704619830753343757387743700735785279727209952273228063762998454485072599051834506109380076719885164224520771019543272720891967791448510717363030309943178656043847691227301156317459387161276440640581360193860968182956846971765940729216674091129438592298597796538773219660976968068777620148482606075268572158662359204494999222095438715324481318469394647341745636855310245807334264714990826890602110408880094613461299179866210461695171524067190745074425484229515765238992533059670234749266115989463172686163717161472520610050936956975016139774366556363971633359637813672313207254407686095386801040903418521789655245190048202963460651602507441320366730367993307981441219775080923479453976093041956487780984957237679290052391474077659951404711728918565156951066043035361144252649738990964807952579688180491293869516302964668371841819449963642687508637172634064212557284625864782029965664973057704480394856835564686254596102954098411274872270369435100895060965330557349676263054885202443962182164617839858919298243466312918275626306740672060946875575701938076589125212412525872726437029999661997430826565558509616472354528508442189842716037604318420975942013595674984323782382263411219919014672759380782025604967232055601377309039770585385711223198777336372477405501100084313559341799481677658541842939446929586414199663457194326775843038091522391278706480266256106972905870696821553290452893459057783148855139716494275878331847040675890834767110963153554393384105567125199680772052651887680942250757270840382007270490651366609634286891714717790543438392684961235015262001587100382904539011517519307916838764032842120948946889453890296917253536266426361526810163046186176572213306797992969287424017443191414812058256606492165301456711671251484004133064680676017128477146018049286194554585189285232767715403985751773525806945431019877588679532226485898040850745499837089312760848222269306768827399739173248141375347146377738432792253670367786378872096128767714608337678393098404617109330006233624349761065091252671200126480175545243215843092253048051715214699961294052473517609940497619827685144334056029243666268925615391253227973731966008945948816001188905066053275749743413006523315234901927446840449854021117922456898301083556588778941544081669784299578828959266205101765211657511132121233039942094725254503121285713926932286736933973697992905003901585726926136464042268349743217750300942211757405022076531287611393487752255228312172664188903011130647485892658632757075873167115597283167244316384583292246625503844412636542562042186888923420581320048715030018317214975242598130510175096100487113294407676910274202975667299940206048771569803492257303614591436334086800712822555773416633800828861960703329918761346357005238325695059100235261854332984983680290870482148605673033814599199350164100344563213393179442667095381533487396262199006265145152652021091749369101997584084229728378290384119987383147348312182229872229248069174913479136136295935622307142649203608418557317920401013973530990410693540664546454685255700158199244135884295993140021658716416475645161738199959303336135181165364856087554650731708235367452014670497161605733074396600760956611199687163062494244068614651540041274101326928705544994348846378993033948426704197281441029182149384478911164540882655359467767537534769477677220613884350105862218906021431275068823663589257191145907123506760171908780755430445413306229643003309307997472317963914000762011158881742816850515343061640617725842399982082947312215412973177557301293313151463219422244117690725547246783488967215683764003846968042215924107785305940713401046624167337114038700998806815615315365588116240130007144897069783612402438636266163756887970025558709044060239279340947495408187042968867094836528981440738270051781641283985392255345819545918216313935801613386927250378637979710955360071197925601960594336450190498971173418187456141978239621012788724442298239083900500482240845533152784546952965051673058105577167569168231808016227076414049633489343222074588959330171072680979883299980688012557206830459334035288101821269131116445087173441516919398373351793759301152520494849977645019684482029010328800536982544820121150094167517125022774629881323207553777713051347796877459546054301360508429009806674231830379143152131902408014375278314115781402571609011383250283970528458773078623202468188047973800660136191471653965852436957220064522842930565520648901761152965050739275596934701017011199720238630970816184646561419163874481226331116656897010107975398926278363653938443526054359844397508255838477195719987406013820264270678523594926045514841355520914217559379340272377086723797116942121285349162238684983808652893507154912014899124204367360192408809182663423106533964482100104650693913634892245864366924404611726543090688517987224977839766823538834796151604651802321398330060202039099273236717584007677073380431430081658247621550136449564331759957185545245742508064792534098475354295823222644415020792403851281490840746786009195148150802427807153113118199707352350614884870600868370919629435106107798446281923300681778814914388029998456090935096698016319981187094180278355880108981352835867413156511964672035948175276082288931415288855472414653202472722381714269746663422790566566448774230872101498773477385148011019863118167381484112616834264984265795709966099642564156136540089857908324309406953501411131755627952352369405517896280235876671139728343696693363177699050009117262966965654433008975370048588642674666241011569466484899452579603848415820710840645362772814632818979515876761143177178368434007344584025592739095692385261824633735121233794060706706072430902664642888283856448067551883096296621442838493319022170601742719667976070775019170330588118963866536791221869325643866982135773084008812514276314438106245584907290444012934225145411155638874780390760053393511349853544059565597873638874709355441867470619155646378646309801778301780517769666770225706625050053140308811789970227343098055017647795075436463414245002359948061027929181818794995407528285846329898301848151144455607306829323461375799065663978802934894343768359677782056084114608972966009395149738249391818501970777793465062307608810440217235074621528176950517996398768777239948709666724191575482006762405128757992427888546021804628457666901046408433378957099281488368999166725259473363843412139289956948418072624108120292536273725695872861903167926236800306688446538247479218424160293030037331725639699688187047071538447209962164577993243297999446053717349737293804909346308130532768326205282196329315481459703825384485296753983666993538606856972306105932238217782479102183521854959934414766827485413583749993392432652596556605495054353768323096190643591765831194859606343839797109120267638503697682959561577814461320666465883186304083404101639708300456777587259645454412856848742207970871796172167649712051651050751959388306593383922662891720454330670968302120032802568631165373387900110865599260512296210380969620273128665431672525949320511964455655050272287833775159399494668293793628140207144814114860977041808218657802410308600875292061643359585232023962605180153426179243224421451699389000407901229728431685220805103781034885261685973514163671227769623524330345103563198729425500086651294732859976423933256595921738706766821481830294447200395270534361642615276582777315786110513337710393790813309784107091713470682337188965731203289437532662581040288824408561156086755224160801910804971985472950872029224888413916085022694942806732827348205516263500805646843156421438816278045576854253721828228756936201160817783553247848826140978385543636342276201742888637469943746594516994043898103420631330783446613585123026153121689945857763723806686378071968041207596542468510612688828466724911953579386998134945071255806638941324970875977824498810778890170991322727983138751079135538236708775617104533690647704930360066859545749440681531048379817874984111999941447670610330824940870462969304783465089846911106389806030932242979812488063515129273856555996040572103729572173200625862987118629109924272360450586228499410563268497460532503353275158863778945689815302984270546882066149928229575668663375239252074763085584618248112202277000012273710386580444034930160784846897760546790003325460263488387626636673758667657202058242145350058995209513800705174980212621169344629079671959338664862111551084528537458025935472081827199752497554617285273332532811015840175316416357440427820890513555754516833930995484043094326141369089419239597135558973628450547432800171975560057659752472370399016379120000970735493622567577542345454557135127642050960267808498721584571663238891633412611736157381219047366077420318214098142814694212047820902758520116287101562076040923083463672292577949734081302039384855322189191049930007072000715988215234546557138888905696100770370028631569609560706197760204511444168446118303133988210132922742646121132359516421800188067176794692722123355061203374094910368851967294302772461078744804396263215350403999129257937231955359844524074037737167979464950908010214643452479466733973293714604436422599197763407170711240393398297451485647045810960525124901439589293551149198659866608840379643785135332904931533441058087994551655850627617187330236390141935807461977842795964778466432319161206684968684995352450313947345708615276167499692363048977622193266215001335699276450365442762262661447993006834389787547459142007609026467245974113025202783535776278493900980476463666295053893599952272311784891338725003856235348839495714933563404787350941929476352571098556629544039479401014698733724877708446349121948722402043942994368144144961206943144926081233333078252222220982868206333526783377156906448290590222400031351857161252056180273928468762585902112272947463488735944663700646680910256879226133698655171686488251282210832437884152764520424462173826220244808932307180433771239488919960535987578079641455034405329365392616939429069523893149548746610721997792525623243787597790125206035178476863761040235513530396538846849765805731619612131136778025647026595064251683479077751481807283779448570480299370125432092313427973155004415213462749433913749399651537454653151297161510664690773431391578305127794379861911660344066086527047437518179707331825982486125453135283886250399758975975458746576282698319096631929886579015778335363557648703893101686242434715485782882855040190139688334424251041974302872537570828882881440345870009228441695091744547554992738848679416096714980785430420931059012448502038611431892177942113330216661210559011201118437284063141258554262659293997594425089961279760714038401246212684382346887293180077189300601069292551337695528365308320498626339104676074324880092572669545104764647169127680465164871397504943878569496175202498241995844397579164652945332941555818825183171448379125945597918676500450633782887966256823196677023265044252085019002682119849952923323261167464212369282533639448069459981746064544193324986230419481653089434072667526415010998435223385145913841006779362127506938416935572450893016072599888097282179558696085588639355325856489763637649366816225357167524578075448069873146258147167500306523361189560497046418089755682622237159281109414121669141281236404978642160065749918499521605630771297917824543750621923066379964802695388829410124946496976020395957245818171522069965568077686343273628492454904190732899092429942615947698022926696398565416159723067067278009731343506895628792249942319206508081348541664937614068768231853777785913397091225749573086533105043585128044674527570360619304525913546677317786059630027300623510569316330631904588430909229395382613179133120513913451754394836216908803694770623027248132525980097429741961800175287174210297635891552549327051545620988820578038138061111411387768267111506664279424111975342198603663507987318457129743003209874400306417926073325824981263768952790506347292754924030573067852820248222730215893422432274619202955750471063682950552581059072769428961965774435289593001760257210789149402622193749243089830218264322004179817583670445765763147960793553437872995711809342421003805714728427802880277881001411798061831369947546182462120423142159443944636353792899453242026075272797949277113162046902817467082355158824844772710942103927416602260837643910480871983889032999022020201463018419598362620753901974027740883994807787364057704886115767886550337186346131144859586088176673564029773929815311680265916048837637162810875083238714870910403518407809442136497589827272200765213545549471774972523667619074968017249335405303150055467802928053447292287773097952079006732362921160419599898550480208612149620031604903816159343973406799067835049054042883792429230367722969216555274546059675879112702491609582241425815606626332058319872403820645773381718898165330362769661175787920016295934272657333426813235698983693856010716877347878087239955914122034824878358932667831798291615048500125434111915685229986853592346882789233982192339858003084186104716918997654631479878411467150449534386543303700311575103400214302905700134853417500206682693027965388693541502381262288103739193869050313330029177185733840313499852938192105542025529128265691614779921752625714510720684586964745962670501379374919919718956292172050720832549385392574188188576496081608941278327848332653380158620783788164792493870215515066064059782886925498787960703179961997300573265717235615073718674603045326064195998328736211510944440381442770226426760902766236753744829130009721878532239264912327725114347354052995963707977480575226819568032780555114059292426566554977566863348288140714236669920275898117746093851436892493703409206182496141914129073224294466672440950901083475289551949286426022856155019635312414897433669075109580499963916996623872989361184519006127786728847052513651570106788427119054057433317284392570781167127718545599893168941319128938161228727904406787150870917004616254834723202900160207489087313104441889975845218141651024985847734013013345564441001392495652529477405277088933311317915549593824463311245244562717030747532856494324103111660994066341112616065351818904691133205416217487746708593915273320785100146418137593262771025505867663451470978465336709678747412701986939837963586858937671560896186521523112866557199649283221132750055386895579457707648985864370688687700008404458085338725123847014686315653019497654764182577410603699884610420982324715604599675064421389572265986792978754653130090667101982258716340352528432693760459018928475258725320461147512902291768613517693217491760682131480214454961006617397731467844470991404883284299273574959386691058469719419571424858421495907435382080840526982888001941661986552378977110494854594128480506930883496008489260331511213356380496472532284908103983131613243574770164355228867478320949604004077888784939604843927556403245925339448178512693452362270801823364363213495881887496987068951356222442817265726449215490512662422146019796661796419370873467410220760770264021282819570752948528577943308331499137254809352122976504974168780597749184532360888480392249736489750234907699897525750477482556618862198034343112241989677176509782815780730458334361171013526532130143503800033586601509481457460057908989122571467664688737744468566362519915722790479594892166963727917894536652470983187168434199067749669316779473217841644485921842086700208464039665071788419685529028312010444406431376262114622468940175953090392820714334275882950297755932544915737375244626113020300543351242582459020324235315060068783626157430416707493135961705526356809864397213199650207074336198814089509968306821963034338309223502850922406258410175380366798919239684102379648669447920243000489393491639715968281458794606619591061995208389649405440509203591358132985763484491447744834395949641084343104923493478579456687571843839031761694256055936217877208861380731692684741890415141102845907342610130775076696433206941618014840247835979563672757421755047325952920453481354390024070219365124388762914355006156852827805465150697856956085079488745858095846892895806321309885263406182595086477856548101926704779494749911516950653871831071124902821144241445993735936823629787414931670092631837380716404655146626424004202481648522551889032909539674478333975752366492769723741310044278499905962648934983942168719504081242259497651734866084279093981578662559976995569735391519020636771425035762895382849151419956828294358167585604278670457159804188410901030909075132051046177582277205633471344500484200878329085885369419559674652654530810233030564393128431324676687764374962342677257844160445297551626279607412825321041953117200853943675926877062603291734144740686201957479398325404756477018194461203003102804152986516950759134691262604985760223485089612610343749286910035757250298734207155461351722709373829288313034928412041485702273196513858617965428434445102343327685731248842270628851065676982872680062186333111458166410767550048552211302728495607992288037014783769458265385450772110371957874108010462568667687431403722132733783173516327090553817852566123004758645864159792339256894466383178397487072824368126154271768090265960972695580774774542821727505309730657249405573896924775759174768980351483547620492787690809917088075230094859142434577454595222953920892639686968375175043591990837670523275893562095615226792609333446799347302827609510981907643299976720964339055506297870440264886252481931233614176772781171912054417990268375417479042117552775045324456620562368154878964959279983039758015188655915284834500215061564698958503031930824296160811555112205808650066422945502797298321400301516622663236002784144312736666916004119451015520709731586134919758487144850767142230207042398142215720628480867864901222346789459747678727733697550239441337447660102131502666193697845248043549311685468009567112391610746969730235014665928913591709212970205302622110082897647379185742297375224209987320259492589108059832527687595658513104978601637726896951590178280211373397672350569673045939689151643018721964951412958735870065004985246009289892958270714170450596561475853636446974032752779878619181614678112574794369894958179535610652893345664516893792282196539053683753175337775265720889606446497266753632866544384084095023434806249006681852158980568497525220506021650903270489647984236151760607551906787012043702543239607153448600050537792006220432170492397503490260621563103081723795303860385270281205951099781094281459908210577351126377582167851051688620431426681035799208738933434742844919511527150617573718783761476109578229043686908525167087405523732109317031187202069719695508771850346023681612453900775808683092352081160768505328300544327886049975828441608709655740150011223700209291693373060651906871763955536918643901136959560520666969758445971999319944192322544347781598145894870961973615197513014470751344437686393100261775926670828811749194199697704453080669251029647943426700842441581796043868916225348106471289870265282496959212293912163656126986351359865725374096598540573397702607401582673385984161160991134049417676532868652381570599320422403536222812792617758056419123697640402908303903643132483987200257894800996125992531987921115907372014376539993659588945537856776622305726264360750356546945749784565202843150589537294365624361811167246141746484936415267353127713484815055730598834225796383673115790765163247451905536997706422400857369905153417417071532438394144963460017671291212976690713346184456376410087848939305588847165615988652431485408211905821801035748148322180759206894548467591425774782023277976674667938866082632929559751621758084217466123493452048475221174855941924306691387593687872936499252310011271765004643132777299980828728420079980323566361690682913335637383009190143794046367747677079233169175761592795960868191997833127943515229160256974440355574958951384814942685348223226662963472487485887306856071822805564482851654697484698265028011539724847896182779095882919683492212470388965994433090570579884271983929733039756969698107645515840931853178086756402660709098973877649387866842068222263478451923946259376042468168081408695451069346831077208834109964025403844814342261424491149848245061677205315534477363973068378389232358078509665235486978863604307190738477479074106042452018161837878620969778057568500280905319386755835775834275628575744125127270107264799276586765299468963751683060739190393052796211575947463724127981833130521999327828833023831239610908412609057670020212662894781748871659425760547363611422045285827993842630832872555565276765649756554096710258803239215155987430933823558177977547048328621776224210939549607190522149446130503820395504114088861886505062719174440288531335556997436814450150415105203278173212364919171364231748206835511214036595414991062994195540696752543951950059272420373033308933044152186095724612526845089534712580519976918745363840598171082196593838423957762332005815111365799936433312602273336067354275348223074174279380622480360650383840250083954225572790259400657825801153178744159095642199139315151932932259271525059468869277405396803350234054167107027869659427877046028056699800618679957602454712032606264872952201432194201796952673619618013730638601161228041987595314433674930743203938842501215770947555274734663466870999110357106813839458264349908859428663692108284546987461109900677046051839468866203723187403534825825170330722380153305361547882545673089114552114299750281921361235302870163861501577636941004559967710688478703593814031167433080073085548422343117223187213045752795493539966185062767720095634951538797982807253084777519331164774045743660247867878162455117801060366411247564696855858713146004017066525592678972169561786143478778304474802925683891283088401299808052362108582933597989694081111498394056470102781914178153660942593792491787547052545045050387866281232579930305010327155495329460312224608186657340842530849426331789532383328182701487108651049075122113969265868223890580194358393275759868172664060994267406062825954967937613345907931558356571120723136537630175223261606868140944146781596170808363555915866445485418942978413035909569710143271201182233423040579794894342092498061702511573026980935265817258572354274769889587341009309559991594065972267579310195467507716904977961492070049813399968919292394440713366869343252918113041579566867780677522246258366284048882552891410049557563070815538464821900563376251679463625034702074442133216296602459046729156616452238486486761884294618637124686114177145641676748213725770107353860635095831588004330415970830080118886127258245673655032506666820984790373826045884803111989735402545537153579811745270553084363730808305847695223559823078444454634665699496680382064899164203771509746920866711101187542785882314089875590127325910561662820637359888237166409773544665018212008028481088620444175644047329012614718196015288353170583569085249580704282604697206438232751491765112318918721553172378905792751805989031499312227082840368457171447034268505586368135051266950291115249159833129006563379746159179089574777101225090171419168950585834102128029076811323982001866332992130665552961194590075046920489426771811389444839039842147952012536168732068101549953999585810237595075482998205933290737478687025008641486214756046578316458453904625334671948636509492670253439936568143281411214976572933676420348055960568878362634738220941120669867645678801498940969156117912928281471120854683264284658622464958863632382226764558948457430349195867383652920135737034750727246830692405785856017418118466364522655345027822005592996680706039224600024102500184952787908054541729123053991351002747409127633513831617537993839439746555103420239593155579454650307969474941450247187880230010809963913036736029516846834127489666801145514297884392066867769143949890413218060375103791288715638767297978678669033198800762389867442082122950377133961984301337672585279549822609832760197145876419497852941841766301098723904062275720882912005611333938594818034001960505171887481256229771377424960961462540727102474598022444140743788015574419360052616496611972658712971661078331564534771466666800219842217977984907307240107682223496900370958754411063905729307743172625472790485769699908875344631586812771535049158193087562936031600100492895461688533687485445157675136907876962371984704188420829625406033353225209239712332189824040828155081764770992001471922788888514706009363022412217523434805349637041517015475382760029444913102805931146636312781436232853636743182006396743797007508620053796874927893411381960487204756649227025172117336033192040682703248760726147519527812966976396479973049482023101657679069279503414522148352102585708524452218514418353014951837645288085559012978781154063234324799261916420351388647660653025205747744209581349712995755871244853815018272887269998470083588198371506775698231785495811808400232082255652947306120794707189006785611943089207361181929629584836670444544316726471682838477997834634389964484586054619181877953844177952032362891746015117331947215175156865911745291121418958618984853102803644402937553152848672870012118237777011392843489591034325915655320053442909020849729266214253837713477333265219788267463512379793802905294872774352351524923052890882786529044056530422466060539819459410861252812572779173753301570870554493089637579934695814805832633732558794129730074278166545173854457716700097409988122768014952660811598310604939861187870064102603556663964135673675205320464931806440442747864965285473727758832243326848397686469242738343655413961275250112632366180197623525724046337003382246563976289458601630082107967746805003457550294212727553453067812698555554247209348569475061761848548993065601934322490517072285589922585076266510095691959789457326065685176589457339503114505129989224053427980324919691586891855102349823114434450230561406678358084381335360038737912702486753362649294755004585762547816210038810886440836422391097059833015372282987657337111484278421759248274120913604861559710896629893367875501840134227096918069080000570383924005973066236822560424459558344995114745931777232856302012894219393662302322123896561558804634122169393496683850463462028138211962710203638027974096143771608146242008551077627714241919184705785771277601588944625475827356299749974121024609721222601083015476449489738060471745537543926262832669122870437897677213506866862448891261383113043834364025245384473622978648951172727503734376118268542179650080423170478489136805975210150126709792414703102150388220971224441839598796392682138947814965207798550289690569776088042111307341711801641958877202728400480406532584049295606584307273396208622033329365594362567878308230564785224473142761953507832676973295161411838397572193897686269931471285901355566425618725333783615763223344707529925069812980113219802191791489065737532796770112461171686503995484133704110403081337200585101734187079337370964741382221179238653127808149856619162512178646660689917532483962186698974597800470569057823559818995583561907776790342436809294476562646678110646612502457744258640287560155222841500450529346264549908131889734679234413115950801023181550818467962038915310447982738481604295004980201218666163070863817870291847023081230234649400366601157005981485260592943645040838983786079427009509038811457784366785632728569076681293727443211447766986042534219388398050281189510631829572188426750249947510612655196683590740230866509746141143022986641219619165936150051655382605829833100067332245104175051552166254478955093702062241347324645468614361184466194047936307213894630015263863331335653335807957297048280541305674391533990983740291311299337948596963092113873091841520288683186619590336542886684149976080058025930879636186708042123753337691896767660650465365095889302468055133354144994969094902270265258608491697177093821660098563342937502043698556851369750470649972290891717545939427312528842374157882500111616007727323825703490995450867491163245257125221996406690457245957879459932984596713309441766852587001157155619115561343114695588144110117982265923164105898592006044933939211806875303866268066786995836245154240663464921909969525561672016595428355016434088715259629538540300263469258492283120127669427339240469344354408783872783320829194620597499011527835371248859951534169220500520542068129301561390044503377917207634819804721203008164045621121817302910519090343338565938288912471425456701392935299676871466833217445879506616618348420271807728783877059617519091590285951144806338115435080051310761239607844980907151606610979128978957986037834496597290855266646868024883905941222966211646388493149733168110543259652736801287860940985487683836768929528099690843559045573317592093953917591628812282534715495500577876490512525620005642204422095782610842917732935430379867638250895339493825743631501410247796182309014425679938609582965754199771217489614036870892350412360742597690429408300596013524199097053708188337622814523662146361222312355493431463534277423123499010841354524912692104196341563560031615869845317024429523923615867135757512275167673792927387967080641646240551775926299917353072715959316702011259750158728595184503704118219368052192504040049388383553841877341581451696189202476926918570576683677074529228829494795436862929768370295390958369420645237235718944361624913507334393398554384515826136741437233452313327423485923371770444061498381095801216178836798328803962198087220705869702146157260520320148079931571431486945223504941431847247382286477467537037208181371174984014678871132076858716912428554585850184785901139757278446956961576236629085250970495079851391983797712287583837839920974996988894464752545710088173592724852489849450895298845691722148580155555364340387390365285448552670846884978834139416588954766359011729189189032162181589112530140495109899607405083280874176200218444856956683376852892075864290970117271291066245722501996737967809170838183431485266394551150347279182206310961296503867893458804595402524803684259237000714734051578387955726378442249875744092207169484132515687275320040164694508580889003148873138093602488968237948364146181532380560624730160375707894658711763872188490472224872214571769050556705342710026524297538022333843944336913388706130898716155509538220734836091490502247455434971206952571771929464969889442347101646137157858661160797498750522540086404054326521143919988628724876351281961788296076386499037499918252953835675101473624287110903279562873824900497081024900554888120798109573746260288754777405068112204191362939398641436456663802783519371607191991529134919393231677823500707689325389585937300534654240656036125098446969297106614922692491153491985342931969789025883027328711726849128787505729574351068097460737599841220306728164316929113308494229546474432127726311387888231075553571085947251348420557191161764260299815422904817166442617909272277481476943663462164672743557168428815397406131792167266050986538591500998155469698739805295837770209852685326384688991889721339880784247927286102421442933041123418395410249756271995970326236054996790802005680704369739539572024281407503855050580058537840948341687136907338273789295057533284666342646242664953194017020491908095707799520021654709947631962656570222574726184362665409832813889483823564848431052190068079212024963393501798905359819194178628997341864617242621782520575040332322481339159981334660325241076345167515493669241015883367327534809269603109435890298846057122727096593217140977356991224312539858279665261571061103755091676249357869829741500889399962285251206071471414459525363517055823671096786571844924835017253965027209373341889650574549060361679540603961453008340067408620500297052120602714268581164409135192824439715690634221119886669708881172423676978074049221990943153596640744461535310159017009540550427250568498153511601565451937555078209835940782036360506303970626560213057333265624643247460674540964767798472850252966380486196552510283934346408973959073609046473117486948377888914591081181621712562213197975940414567142736075712597246868761463662862996101243819322940574605604172084977285133615129943471544879816947905933759730326864884275428967698523312568704628269087827367640181613905976732195671122124555447080101719102570617002937119936349548960517770073097318925947618736580379080516010440866279430215908026067955858106310772211641095564911793448078972039132476670287357588913342477645539208692909667762415246978270052242590834532326668617289460445784466323263829881649873795420741594378127662169004668677035106554955199767777001835269895489356771970873195250822338371484250870139541624571926192482462658857648150430561760174589477728102887215155040495303842640905371441105607999173679571128187590899886856328899978291890875044697410123851229194301249135890903808841087069372984035420322114170230987825022348167626062575263572050599997453547753343496105059358441761018733784760512426141763623403616907174402157691189071267319249216373843003141512512559535531098926628305639599958977566853300756729621332492968773000220645803417316002108301117841354876414166255933873890686903387097217008163093242976467373438086186384525112342248130706676749203406304812627578058671298769242568018760303405572435404282122704321834649147836393747020866409313816541140166938674457421550628601283176725368634087652151948164872058449903865175566030667044699106418956464763500350600667301253772103602911645687524798929269747859858352908371816213717046893856642907673793583367095831569961636181560807115505274928398722937187231598393179871133550004199631669578563318624017218288219019792404821936070896311907771450214191200772107586514715269424846470686288557985958097165512578191862912720708557230458761255109531057170503556123476908124496747589943808712713096631418747717566348994851182622932035609813191892921852896082958783255788212096812206892439614655223105205021369264356554803221307596732722339442171973501457435189654309250048471629115954321797690746478185664068270927472834195867772811427298613180307902614782426655966082138293821328726445223523851116559899321248524266609414073985743010394933449728302852140387869888253996645563186620087889969365930965819332221177424146442465082108360151255621107353688716473016783498468097660170494841701644233517047941154131464575153503944612053757306537510568815043092301722529126050649726281910512398445002000919720658840726973122089449274476821858595982074662717774711248118368037730086243557899359990944477939146843248685845273085375421554647958235929554161489379019399231265034837362606925922946130260698737341583066733328460682137259054122626379468693133620529447230253306048451652139664046485609659063391258757496413092160892842640679983297516856035223377758059208649643484468235103850383141542601388081061325009882534485111711479673882027262904815482462985747336814014562055864549231338954386831121452850897228981777068062002426076837938480971736725653631516702127605129843516048628108428456138276363654354371984105546096062796888201100410889278884075467999074079681889617443484287463850362823563232461076299656071757230000893885324665540175350375844074599772890594924853952341287409881356049702102917354611275967763699763450969577190199298206747539848744124752968429695116109984658327002140107994393562409269136726580841690008521571383777671391357736933782324327142782663093882857329471982405689824696841869905141333570377352759543110752682546134817313816686220641114314128350076149718201947853287115377012189088900922326812686912298043418679335683850043549276097583388622408019664910815858745515196603806317124509524604124059113528887194542482767866363917985455384808329313460620435656899667428471793308426268906347472592801561550265287146732896897468570891302381597273836765302290843249153551706878112003423794535064306148191717161025260856077797018143352308932657230492078231873577057828866347320336120916626331402663132919512535109906130526178233105462210180088388337205561116529653630963246421653261763334807413668916232620629487932774052982404737571255471824237197957878152983432345884571983792501518212414654188106526693539932704533473149412223956064212721691269208459845159231319895394879871112851414397162453788289552925309566031613930021103796117482132221438792902216208525230071397438198982399564602270787153046939330288214884825505951702557771091936466592534592131348183686977092511051573003646227851472644252299134988661440197009997486549151077884071244140391706943794671399696079346874792654082719690827726154732933942073493038479168827770531396040148829334127276694689074117617032512752703474762541306282512886189309963752733480095133055209939797766107836996886333461238025432347475114173489921593050915417593821665948532211050253590903247950369802645594703698097019537493436091052585706580482494829255343621174160406477434123414036364724307642117922755795625617124709348006978161669854135475095178548348547982718559308046719692493080149614586416604692372542027511098422451434698420491324760826506144005461099045692369059513583663100823017605538715729380018157038992998922749533540373869704371243175739018932763389043625863108946979646679816555389582737834423578252684380505895619017189147407565437787889588992044558822543157490304142399986102168230438665645232341933407531535605057688787135323252599822505256894500576534261929966755433296461388640901597792877973983754835598997968704804585541557469257444897597495992292700552829788718268875910822527249040425434274175064798408858449188032213810763846600635137792029693838072459001636324207140961794930291953084535062060005404304492638037636363402789675963793888215119732575264544278670053996762652805644254009294986215511095067257875850056205574852339212265153761178804993426850396293996985802217722460834669681772038427833544560119744461256138049554112468888146207073994628523033833359341557493317034507589536625839707047640124293046647794486519537277802310982291500492896944401286749830842907155442132495062403371021808152621556375943615514897144449752556922717475333836399635650248656905434334603309846662190443151047047980342414748007171278044586070610841468760343906559809212809716807841634513252348364431826370738542347635867634397346139477355869204899824327177612561499320262814133825326221230143790388006846220491354569004122818772868286421776884352243992593700496902086432278635716725331691127974993000550445877328989549124851518362326764329104589243351669268440019850682773298496978045703277252692478479977845143377312603491690222353605165072264528319174030575800194146982425259135609576114232402029237880027396325482945704247745619444193348142972388127687280137031656543375463130911523451856111479491152753511983236118708815337149810048526428115929720839151849847687315496878822596706100407358356504453244190851096973938361813377601759512485888792716740206306949439063706154254722593791282044627128521296644832245766034198341486164962651502826937927317489806863784815738498800482229622394575671050033531256186051134714023259558464743691890597291871901205897499735751071267615557901972379522575037497373474490707870600400122578725229130809704715419733393886706880768487280347956569517195924421709470960940258099399416763003029716757946563149078838880667957364646597577946080992434256164084466550282648560281645261756561487716516449069079011526020310287653451366358938738409982763174931074328778221508578168522284509602408518363034474201171632884728541230003593065981248239094041761451992345047978273750428266506928374709883461275822090969167448445323618722162145043107894184000684518353311813936364697448776314830893218528517879083883476036232021052050078929771269642260560606018525640780836053697370776374977459189946431238323625185326307018139035395832170225499417061660720881812662665278698104136039822509353927088432062376578473306291647428872282126906359000722532980745926811359541162131913810941065765934321102024860761491003078729269089128135619790212486771468682647536855248606262589466933952801069677796302167252498627359701829010779311299526241487826913025697558755448840399188344241676458380269922628213969756405024819893742690107700593752804981781580475340251443729486071964471213792635905449184142240807187289207449938006941803021927976957381107600583256425406338182098590203612103179039164675980793470767079797274059487753329665654516077356382924131248182590335082379997612389839915353352508261091222446567540177853923811445660588937259406073612548518516005846837137410364604235598842065345476904701348820160896119934648336245652979349772184221543555022414224504432789740508227292097450059712211915631928413182198744169770411518507934487488251201610733420025876689533494984904362134942509680069899412548630608706608988599248479408351824034072316616717553058381464826991172139268884662868577047508597926479746162985477823860047292199738170744953470214434214275393425920860607280572665643835842015302725014651795756823965011625462320396714455366151133097813910349819460807072744002766563110968754266400153965100693920711345242449906731031185115532586021184007567250706939192902130694300825292471529474347565340450384195264065813055591360195051973495694834231248329528478639939014391681880147105005581379221838180441374391579170036666083068282339436625235723446430355102637573171089192358121051801619890234437417181287542077227097627651829062813678991976458269027150192736244770658060806194873872461975884564058319833604145165923172149553361536353212727539584719282174153902921416653373543434303759609580936783468084455801707499538985419122535619395203955086873680081131084577378427414377292768837637533509182131539701864438469626063328481079516465624568843677538080834482998227041040674698039934661044620375442718915331110773057683430885204832349180400850795611754026298754971793798249142245786493876642209252896645476334369213478258703985935136709559821868773719841116264077455436764882480513781621824552981942005272491243394956646954295044605243537954381346774035211185882038426820355331826043337380926156044409655324996580191953402498244667382243388294926926078367857294974667774438132496573188991682908952715939436061935864162971403294247333086614275755770735494900843891403988388977735315085878583696548263192826891063150215250333659843673452424814983339238354334053160021237727876721656297716341685484577086330116336208209209781019768895029524581331353469107378626597617431580441957212275960916328425433805384389792935689963223778114886507055659530926494846573790339713895503193392961420103644506347890621230491449466844115936301534262389907752184551935418216206982279942362645397876577417492804358331322685273239421593490225465345568103818599953662032213261399084116739965923671759934861136179091261457398359916206370222843582472443781701370817911109377142807657189101861596361520079468561669087829614517477219078642848593814710544996866343595951226030389273869970949094588509477253892324733735205350675678553863816569821800753151922322586153573456788156066712363017333489135976544125185478889235688318863787727698752196277519014693411975077460988217616773619827409222416970576563815091559771613734123004214859855712150904597567624563290963413192119142257202223647422980293667232361615275844212381275121800306390610988111672098899908426364582706482664224992629313697212932736875527756059471807109610719210480016924768545273769554471421525101505641584476812864562898007471519188412704207113296257382764863169402751199900162314637952701125412551344064302029513249247521922472860222845065032852512517007051329414406536586355999506140541620896408263874308346832749481915496318183272076067831721048496326874718241112568413686841913430947338930857428904758660665087610478143711981805807912923339949878968192328574442547391978856985600162086183058995442084373072006423309477472594570858821421958838474810218520318171742202341665560113892715803139033222705978528694989110098348647650002306650040433924993178566636282046235658697962183456566543519730800231053328781275859224501157232421481363970109932854039080373666524460358883961753556259331649341261550372911316542772158931247327689031082250144096023956919174146402486506011447336481713364683714894056857197332765160313437564997672567988780965136834492978761385165332928687259348002335823219487364079651207184407448607730783671220956354998681700289926177616183079354703987470649593641112706577658323233700047405741759754364789332477250992932172090509976528533066186069113597005112674876328636335023177786518532527903647201484561911608310136859785041717727942582504974780161298830207755651751133557507316983194665521732799907096199022614819315903715672680010898240222737711860461923873407042166602791766488174411173352789652164227391238694812360588321573609022637587832784586213179462846858527174811037487750868820310900651598544736177858217884468181814816453591909046597024538703440310922115088450451011548428721420376786009071540221947832829238920124574621831380517957198003288602437729597519939590878975478364687661854648106914914804987101538178717343241114133638702407527960579468735127311431736333540815195542433833806873258146232549990846351387866856015197745556014897592265644520784842573639674420543395129993039982855361141483083021067634827817067851563289369539963009128968625062783994557065321300733946005157620400723669718337551589619468755381398185412242585524340231093228910335167280030359935821905118624946189492620329579470109626362655174593256918949916160070451418974974420725952203336738511801832004473573971329204878532342273996161788212241915550615810257847624669388847074269615343439939442651272464440478699961182030018237571328230139447235009073464669951477156912644115447633874581699901838175896623661277779423625107228345165993990520355122962905627257104348887922190422743259094835990928136089683544418851617931606233561793585490746443101895343745061257020786184131009576492855346248334161309302077569275229267768558491361601065077690268694660070043151671041001889362274397225896086270583892884075374126372348997974469873774673760514321402178156308007910940736568053293041674203788590890960085602004729038899153647032267136279334204651050951535705117666021297193494739701585239990289443689448938278843169221188108713960191624779773043286413721904080416230877269226680148839016665453900544734388618461035471573431431346303912515517134382635727830587263844854035511571389866547780534796024434011345946284819779344580499106366715046392332212331025214282787382711450690137498575460846714432166203762805916187021929739499173958372760786443732163870656292188073707513861566330934132764310266285490541047201287647816489764103499857707801069539805632455853422671932261470721124457704203424390597492507367857396000638353213936566617696315130722697676220399696541732952834050157810650382572490642452714050316952863754787251136829649365175239591856803057889641115724287338134238314603064368064994888483652651008151296218369979595895867393925999164249393001515476250616789134208694667983319338787454644896494378091577827323911746823448748951707200667973963821597970630489119761320437637233381362643200529859515246226755246711892314291530425618662855347469302618373710777397540389562252500496335485776105339936088705009209927290414243526327408391927493393754544124242700536628093392739692475080481840741674011426075618187195541043152245381552581001941665769707974387760557170264120549030387946846607628987089848870556538392729186017029168838501210963674893264540976355559789217467917213496159720129237231264681091855247762076106287550758224822033721865629245373685557529309639163789059451316673028679741197547656418966347162872215825928516261682158135701594723884975176987489342132113514122686445860615671926253668477463814298175071276481101349976143901577267582338226240223416107753715402644076859705602432380857395728291040146580946402095777097891394690175581151376627288987284722924920735647941904872246804119740802958465170279322853357790294236943545425250207558825543391392428753994045461716139533137662472353283394514039228991098863035369068572645220263166437575261500874515443791756037287805656183363965178477992842627237725444255928271690319975124613842741406738081830004468039107028760351124013434212950252738964205417998758935906545795181883388047399914846275719090027964556611426012993860483177416597123207644653000155927898124074916592878436942726196685872744234793881488470003106705951115088455897585114226390229028402512227788943212396932274174739266964500553554641312926038725576488785145765399087882989308913784182631579520140839704821475296780787267761835779789899014859909681935827313897176838388115894933964562674031195833295371916103697559653313058500222629630013992326363282841243959694866569221832484413973844142675328160466375973763956551570945080531227700009533939209675983374340559094861400913331343563345254890657934112736873616491036259565390520639482724835333889381124267589395846537350067085911459935290696209223550814054373847382377015921217530158608268049184606124594665268091343085031890775070396071351705423520395051917281877370638636061767051258396416179959867296842348990014543115910400683922078636836941772230011299273557836529467405181910034075454191497762204126603142876658577922968930738391777860486466682039734138931138384830338922976072657028273683889118455706869966272551058820067502987493462762938890353264710450653016913636988612325786569082476089614290794717521600599084854997714500884641248959397181360168140590295341622907506936659006848440237310711961385803345965056373506086915509488987649776245120539137504277913412466175105848275986677693428145550464022314430723105107558948186882891001383102549963047583054464395563141520933596226832669797969617317950844370133182595235755806609775018340360098217272408732403661757975152717973561845756944365934183376039978712448928376847161415834845115083306459835901625827054413893867767896983538117443982929641003053098459118990891836017876797934364924667563611987515555869033003241978173455307601105843104405379135424848575029790540322015542754429082660941402110620279213030380637840054105370386744746630039831357919181359321304021627871757002439175058438300138970405188821873393336168965470043449055019046613580060232180554619693539608038302107090769049403798031899943530701106038340758220262185564366217492545339804958096518874386141087005495522016857072893771846131121263585585920637870568038042981031411081854360073076816445704567947095237228506518023502629834744676834957969502045172380244181620282237908944722725702536594030955944230917095252185171233241501233619998171813159216732710153259671384491856722541199243020267221083183545471426504490480362463083454783304914028055137577369410175064116706660766072269827565201541736366312628412834546476864426225933193832765818844761816483403599141823723780358945983970497375572916215019818821250434432229869904582337367690994066976206809297414792409152460324874251624575921964803704597309208014212264222759544082673135627370462383060281097610292659664122575020911175614347670779488393527857609907970903354601712337696266960389635315163407103828104446998110521191278839419215983509645780289580246718610196623259231599114395320738243198091125780117124041939107932494755184123251705058944366217433562962604731153367708109534048417066713908269507704892763329699338475425189031866600372887641334146632113115848243656086112283299015631615934322985743437638933516967568807583697257186137053385998728824285781073938625746007581808870672231647464016646829548469771511560009468348224136985640135457933449574640607227849548693583302278092864114310317194434042596234015831956046398927642196604513267908155192506449136072516930832674376150090767750393007904634727078275917874015739756573918243844341956678026517723465008869584449968968381163044313804836784304264709820947876517414601486675048190360362416686401338898045716807942887969454510874578271351974212198663986565960204595813581232787851698198341450193421790173866626498571886942342134642582449985544521535322753332596665296686531694471289003902220071954067779845408212470549359645069058758636354263289904693603870939617387894769841359400221678038768314350910976824630180037650700378300813850968305519989381699394055111777196525644901553680076380656147607932160927742130011993122966275369557140228734534966883120618665084824524833889293144204277295619611239231030871163468762137360287357530944762072738489906804093795504100798644418223156776534465186678803859118399600621652082467321035531730166972557255018336814522824701407571291521669819270867938925595284127161171635957863244321057471737966648658870017512885502347107086059724542321471531022995922935847399338372670873039017263210520515085118707833855416806794380947286821609062079879495632379990782115966322946402437337682453760891496597565455040378015905054559273307614297638828736923136684098483252503424704435133262123507718944408055095076090220954645429090053152125690368516150462532191854208252411370877434822635927991689139988814644647065642051874001388586386204385761966280245312420807335991788247163322285175237494259556049946851346077344374960400092469761472802990929892611606742612338877475938456963305575114951737032488319171755157872573439089227192744884264489184008750187023105182478490640635323867112308903521810515137507635541937962226559809491411334504058128662802348239134222736029861398361141531031139828850807403154174622765914067761234024021781541527073666077425694964290817719763244134218775700499984666785127533660705309769639639184676165794446231313952494312602751865796050129514895894969844186532325359437072048916178733705372888285020360357729979275977005816376361447692346437935607103098179183149248387397029517915830756445721330164178219621698069943205860712465310045837566264351930839323159797641633396518116453645020698672022904593785932497740876126431424262712089651649838043389379343720348985628937717994573017335347728883494029639974514274348704423733794946876511070101510112270342699809925362680493783620283041204887408847378706586888289072010857983679810861257154588082475685549850939057655474241608876892098494930854740014278434355497329602976344223701879478034944554431656999003696722178910312256899221580342960740062562613294290323772802115807665586038818497913451513984278846048987183787990979123920011486496925857896659030844409699267517427180003415914000722492489087367850884043978575479220980185014144020234161975058203684187993648065911579670252514670639783351911555751439970809510292284987775493888084871012062711776788520414466907083671304909148980668411209895489158064140677910977394562786789274682113714742084374944532424253708400767622903199229860274614737144541835175270142199359207342478054695866094801892362277342838612554234072169520121756480015913081539556760504156420677345757604238667150841286515095937426224680823933399094460606847947527216212667359025400198945721089280117409542281393478463929545484451870417612604941395988700606792948423357527895879082874542569398710677781753255064149130128998586756890975316377162536005027464090790355972546281319768937804861839330727165213706915240316766499371387884655840297240403831550050737607160549108940719933708273680514192357944506783378262531395528942375694993849870805949151491385325680778902293207300144037515577888087515034426825741370443635865814639303807492505967181250928582293784983449158053177233937158674838531107617459840512323845874964819531360471554400707631367579530781203361612602961673867007402263545801189804893135475332513369123822476952319502233757071835063560275017291399516277693956127752546776940512816103573772886556344160492181256353731360491813164091815730054314119344082657740528831258148734432493120368717251992859478428294748301055831053839522115477130626960121953398404925242949782850438741256103776877450688471660625503142849926650948083679221369067827799135671338632542630995806733509705871299407233310581449682431833787087820146613773503477221354534545790288529816849245474738729215243550532748719469085241103719743441750136581402337350592641062444865912709461641075858737797292774621897954504716503168435681885797119613889839688731259161150085545197626504991107474832497660620440521885736294318047099377098429374175477297226521330043466116883171620030023078796739732092148059391131837737789905689898948035412662393781004655792311420239149533930412522340936492498112166606901808687083044600355416933122593459478455877243290631915379405636672544279629874541253391626975147182096770661639618312446356479017067152624913581413515844007062359355080287498089709361749897725504998498067388274509021914800554039819330808723331922833977217899444783760748849071458486950608372489038376295243661119452899984306512744202409469282417976723566296251802547789206153987873449180929459688452972666906941652008716757522873505520362302943596695567380584340805978911111022258507529450711085643717408527853493042708204915275762186261217680977346604924141471497853797991966940656731383912122402743373564089905147380578143066807551476634793201026923101366143880386723181223778078533586625639912486524202670349500757000417821313219617629736408014125012525017639812126940160915818834181968916722169365769669384937415345532925752110932058036412822833490669966884610794452111065720163528851662021577750204609180267846565048425476823450619820144572200221013057266363738652381306011341190803176657584207955706345571553169992763902727677816942220074628243979974509438737458319501812699749564713310268345818134934100470867128925347005889350152390308550078047974594021732478672298038615257232582749037665619980684153824056132770746496825303663539446608419032233168854999475503769278664881540616702260110994884052772834236672119053846634008781879864202768353330876061321152325830212671440033783643079999983295976893717572246124605117990290931766864889440420476140619103649670222165128225748071141185198888453394950607175117323823050133647295386813278030019458404559433952454112955394971199531919098517146741662980591688274318430553508963239554062952631019130872150966192409823930125220510793626158962324042932834670187961163145114730774437134509234185865614990932122622878340301744414339720715472061883229024861412156622634332347137727202151819766469809624554786476884110407389617865089355365541835177316272925258165777342842116138128159249857505134057095888672012728060355510818458701173224773886962864921810474575472051095117401974000801823966142673589696898658698974633367068147072613846418388252099618699379230370228495572897315447064085124827255905558241364379986877816564958699035608919476300537988762222845052784964393127649143916034786832146925432531753575074565386208182352005579845495780432692748931773475648439642611224004009236809035555931935606106139971928771455480465416452158680868443083166149593163043608241223001187209502122891678809501911125048331605434022748198175464897644522411464712469117676532929557248045788529077485804442585583303430698525965380153657384038707919509648394437735461296326924629817633259301275694899422454594654363670485960030891917951276989290395782703896022154919351256888799863223872680766159926101023189758688683559175705152077647611870764480641209111628589851967819557235448194227381128377308513552777408417001791490585074833907243269636477720878693447360300636090491636824111852561126496115564179011141791443832063477433986599755283626489918998234131011100510279724751372687236975679113094126567209131203375613847205110394676540657250794548891251203148098682854708897062487831301249621777872394305511936735922863691372870339694381278738817919407635021257858060379386473649660790869231597231102185913695573158497107422996379645156476111797130986262326084511745044769011218726743916108113659688482880083237689806213022145449561805273353796859980489269427311566321525589942586542819880479806894559691751443004692375004739147151168447393209648538128574647133282175975276426759691361661795391708988316272370654602516550509490385428793305738424354005576871103630549932471725201002019841500654406381794714785808516447288017462492012903605212288385535837852080557708061755554342710081411822385227966867833208811280198342607075678591822843477248149341374059507056466971901168724615429464316943799012222072334859677020036580315913891141910035145082886036631222668650630697925239813638950016137963046733482083641503545474282368558677755202569076461921940597967301748699203231334536498776008928790476290808127550759758207706784552898591225359586334144021796045018266277091499298132755559044383327613997003555894079968931109138317829008840814642819737743077573556600898144557643132967485702859368242154129657995125385049313388586048675694061780701030245172520517904650207104635652832813342917092420700020227559361712056434222078570877929752883641616915848067784899873524404169121003216761980450596740883854293905742530242112093130389833763115910720898480864625663166694458682065547123435518217985373347881521447953326202579602217430818457911850084216615523827022348742109973095169969900587466309604287271819191354635698200926269610664332959010268305226114744200147562321792068964333167111709571593829192315175728118592656203275797350085798389634559547869596036665559968170986127545768589431033525698840385968186843765460938556246049392905575361811943361875565306633906421505488257038668713380177906343135294767290919354805174863198772898964045349627405993519743271964537155118120209894911722832841067075485231907782309820399609084828812740679217251004022442105505511155501346177808163201313930131558842854953468686668836079648475908643429502285079966854601251993573683545531727360874981344735881067427727051868010856974557075381669734016589437318009956913215534257390005006924318733739313103488988732053572203525491512989010966088568278607357063386351244786964644018739961691988143852595753342154331943589428117940599647847509364620152866936350325382441056608650035050921350392225503470589680961616795891118426546098932628026141946996901903370203945552881664714166159196580966228626097405409671017357052676163179128722982081029901246742501501269751442783785550222319328410386124917977545478452967406291360601151997018406414815528502838262403738713065875366441020282691040922556378598977433676727536033720955999739633830155814198381784194360449625648469164340005758315123057758647996712527816940373394871434822227602924896013499625890994833674781430215355091223370280501471707532566911368327566087237349136823547049235955647079597355482481513930197739030248942797999660733200274288598274927466404771592908679114700680102232944851170081339728785628630272511065432822721807270578597437208780048056104628126581401538057863612993816054510228563407764426466095707753171118319695451214227555736753767774652307406330986352953736154464310505840827377306640580017545521500167907027349094085009719881036336002335798258068699098111071151470166909327085421981616905536074748444891099245829822852628071023608165674316364137936615193041411013484501355669079169825119159805914118463664375443558500919568355264564083554828950222017647011451291401681284417113468425744783363878113567166733703645638484020784356453308478275928476022032288044113052731162571519467570727727513577578158687339720515542058757793450568333665694040116402047702835975901503013635917787457946812409740218398468349058269899655454905475732009883855107687718126154431612428256703778988306915686071624496462202075474727802127631147650301294633447733970061456060645877872124624238526977281691605342178837540240875548031308726579136562320386907282237381185839643621790344624855910140692606815122568906137450819213463119268913271041431782515432301826749546462800177705043459928296200640823800494240341955898380674865433709925294595696171707690298441286024327188480624211183497301778010452543358233013481233134154178876904449218298961410021356900635365863282237975536135096033165194085099065840092279365095529456918279321794304224105571495701405791332738095961329042148627174061107574060193766218294710135175745935993378694506368119354080551915873838746276649451526615710551647369301450363745966987309009192935442281620972524813854561338554229308663216551399670993873038875397511412908398709154312753203267394897046071794528970908843049550150065829926491237781895287303788289213999768578181024906489467087960180193560109041725920708622361428037627630992679662887873978549936655784928171468387127918068142941900956132235829203374739352650411484811692536043797755460320297133932336178792024762972588058443118039681698711807298545571698855377957510582088424927843832897683857968208567514237401954050547777233415578009769806724130373541336668070256047528490552129695945326247998073160251693393709842801305771759142230324820585845785330561902342207512203201949362998475040156260507178675780755365596234674362949722922923337446408383818689997641470054780547159220924021904870244878031887521147811806235406656845089305819261627075831359998225549941018107980283114488768506447487971281008425639178137766484229286399201526214061021566466689010153066757163747015551562453746636758377439175141794983710781422879478550256822896191818641122724832497246363215323844348702006414604521836618903253285654104902368335970378305947302036860756689595514075334524276152134583233792533326527415414211636887132359196548478727806771621951548188498995523019699591211664265859234237854043769556274121712589116361765265611033778790786716454847040071808160160959691634354160638172158340944492468663737862310308776683390452014406166450201079037194750840513373630095840170985814792829018374407205434165054867964684407489995640062024369953482932343331371892270019539415119982258164970895967096552893250784692360717426987068456498802390248875693718735119728231792527714045553967821602083487222070398592051944366575650460271797678539972361647433263203693930506208602056264739982899734125036651200348263052899988054578186887473894909281213855109690739525151120650993722861940371294102988514653814200128091242641005736129898643280096629351494758301662025398390679381103270309740877758925058992778577839792666096322992587703518377808259264037349221698705531911712896570411646740585197386567746932174314014999307649205374648678823365473038719165822696476654223636959877137083334871227218904544363374605156364470852624177161833903970099436991002351836325032478725500416230516437500604281177398525483508658800580411594304390467909366219430338008433339727347985058983407491999960940816918510274109250527978827235345224529959051250502316905635580505412066051483638646278521909944359834679245503275354666757342642115990164760715282597241400500332264862455670306577411393511195197208813394085941350819330284980364503057667202378683511524202689252616038585306603808747991820384463565004997947833145985911977450416137966772268492440860269270132963576031692472724509029594376674798029523860357244511063489744591565010066232612291190144240061797830519152828225664445148493135373729732856086718417465992276124946432018002373733107283802120155474570056625147585180694110492660226544099803917877284573204582856554719011299008780388305376503721215160227631195271348360558989253450131607215916283912795210393158395156277796522760733115436316039384112706243414374853546913804410775619039541997947046503184246129649549478751955240816982058594778716458482829253331312461461553812863800593601304824387927951416527863278506903689915721189964302951368466668499323535256290989047293321877234901929670746413115249909604741385435755790112182253930341891283017105869822754489559510257759840070123156957055535399958267382308210463990744545875941261483932695877652774104877226917946772837104902936400898841557047050987034473522234259482334564357983151127500426476123907139423309472426122577622304048803450990707226951023605103096571673560265157505436543563083606582550344019588960890397035242830793038593439209582999217522815242117512092102090963849303336905608812524855261407714304167756801428829180968233583068194996894879500009670970868602362136269614438916441585797695676414166448933262197835285178659458150907348206068917242951747282086783723626114255098258171636588443308499793338996809835153333866076497023472510774170849754806632502092138982655106117864948080577124136012207941561422598274032617820592377470322466795744902812326274652160229843782881618509348062975329918845484803045989714511105192705060900582497875438188078643587790250391171051868490304497104190281112366042741439946995713680211972293514373987184981751970531903829103166059141259437678587431751818301548294549321101028992551359775096114542720494673745554364069509552116814686791050730167513577178091751269972388409473025489456351267581325496756329182988567469115470055596185716297341388847451638549667757387563973830236553875058250313293523451741519785725274899570655312816312359156240797512334509524203918424919245513416596465388293006210215882907038265939509606305176448591885723359789763411262492242869611749703639411079965124976119775584975189736490278437448612714599896971738090299573031146409112599112712739492372698453426572131184507602708093266090975689184045169124128232576111748631254268293007201587386610919808390868074162646985259525505689362591122159638651645765045451256141447360255808392826280362988320557573909365729519486672576685902419244523949617633620317765844332238233912151987925563881275683704429746769818581459336586066916597766892495801402355430443316807423118844823290445672125554565329203387643635146971188417678901316732131739495174839914814828905775452034563164587642577532182094038913497112170700803087093888651049593849283192018634985035469285705177394746081639916716368226850227296961761662627160639229502151659965412947002282281051291437602527633713086189284691786796511343165165428506783083587182553249434016249368038713982817010493511216332838233903162787898985415542753479646165075734338369416712473524379106777701978381003346769104594177454631904548622499424720896014241798867783467928359327224451601627351796969009339647198878224788322878098129272497660765565314248500833430392063672868718010902030076541122459930805286900195701438696608159371810125287826845681502954701584771880521338172431146463312140312920700903394970905288822580006753769249584923230834525963621380645226335582375595965154943935012073811913604926104106418719167578781337014685258981741304711207816159436743086100074001330769697761137656872145327703747627836624022932886467542672412622655605907265283841493449979375395911281858274064652576285768808632188892860478670320256466124851029485748796457905105068890487065974670540976428326063241873579774919529753215293511202767822883323651186440166053226489467120263098856296261235861743854921284023832004915759113326162809638306744436318960159388601010905973475809815913021090099973014475707579832087152061592676651497347465202896885949735287425035346910374074423797897430833261975797030515906964869397712248985417436182354613841428515908270753930768003518316730264484776273881213060418153297448032760196003254894231342371147974502295684738833081141348303263681296803005942946920487587737451685636144843868108620089297234417275042619206079499139107071344064914155007466325300450620918716439838127428709364017256965876998539163978928407300839220592752361508358921304274410692989292271736421151838362413804200750302266624496126630209135718428481721976231192269738111141126880802792198228671806898111254245462531806693361327902336271946078437276446651724597402035665447774906138614807118724325881279239415726264137474818170070911153815511504327412251845260118323374806648982011253694358207486868822178609021815360195281724575190562071814684950713060857672956037196848584090027160543729122869051873939253074082718144883055552029570631504354408261836512293551936149780389837462683746022851313021083814841161870209185436675536792426190175841221234327036146019525348958840390993871279615833603962396767414757747338996194051295839337287525517210239446626028299005181523946674458140454493758759107718159707137981868453168921469679238897162620647928162098802882694915565480562801412070660975713841576062202123977135221540377399601547288661326357046514037297509074084638391005749292851700811286004624790486257803216467452519670283890408731944493836291122994640908312963255886934174521209578006095568193422869119256390243984544055684658859135450367233878031642104128321692172272900478284545206706291078188214306207852648912624409776928373009091396524767212630580315807097133948684114762025732026076171043380261867511895752424230702037686024302268478629887041494265805055746023655150747202692070625485514436798163324197242249969163281015763767368618749086348893101133815542211140437344804609000548075264761063877102772265390709877506059837294889390414914873362347414944189009042724254200208848915122656247142002018651052515252526362843814211324727599053666023649262969044485197172271878501948240962343090017264297247186430969457927983762772551499998250591706242033636776296250913524632718261360515803652201274234915048549961295976891686963313594346113262641422145911753256659618574716475846984431783140268788911389097922057801692423718247958598893918003496837014443657288438918422511034852049226640935460541565668076370571739240471995907052147899624077443542098774040525377646921221318981357084557981319279748229588503005854984010725750502857517879510991224197974559506435504078628945358795241053654266000726307800539646673012050061494256935992649436631733114748372033219988562196608260533151436850038296688962798589572233808321325550254433437478725448009941065800925817641222112794708578147480960190846274013912396760301401933145045394134121061274836320178369180487791195134875644434144689604925295462702158793851522721630628532585509206655305116567596128109155449741944274500780554228709484509680692161287493722324131050378989662573639895974807274001860105508592974218870895330594900891412632387416974769288356368521965993603031706372005824048403649704582514418535459188151807263128398438678215559222833766746436074250089429935651181847971205819737004216694810550343477733382767575857405205280632494055314773196183127966216745724933075204967135550372025669288518046904426675383381500300940630666432908232704750631406679850790950304962267178454897365594932708756093016003957208288258606432452140904686896223254580676696358523764768275830532027596083278934881426043876567324173687344588864029142446384935380523824379895892557492233665334227960239032633825164087032449432103089702655759966319455105410441412285011736049840655088332340997799058628416232867629181000918620953935006207555140277483592394147496959991336331588705888559317976299504868540643410801838058292123435075325281721672430286388264466435217609389101021803150869144329115656903352516773975674058001849202587064706366668606260882781365792559995529616681851394892912250085204172253213294483906156280736462334036726776921139838546350778838170326781137062070913687796166213717693857097188920406570675615776920051784144625723159283882340491465183623788553795849258729864418741193535050020299302669087025625203962752548764217311308777424914672283860102404775841634552156759036860616544901568875173534363060099733808304330313053769492681458784754411269588003205817215320812292316534407033185632187574777388692630137491177137980868014482329155692553166569532418479572939295564069764630092757829035948877412499054014557450274829904471362691347429424585395059736857913084696145618222841135102308104750804976321860143615993938581498859079525234508597759650900567160386254333905276207764675733506733211910672252974549467402928201402435601414685654980539268614068651386244402204699879534457038036677388727261895472042893562590201149045326779874481541718393089841460152989601787650928086187158260549657747665354113374042762119091208369220426248818552277000979203013776470906089954681809447838426066382141930111042497749134535551559873412438930853476024587601312446579930828976032469740347917800666385082022502367509398066076436716193686967037089159818874544665422841918929335792024874613019465684861270528690825825416422634617193098417076486857267399109248727742840190123643763279320028559172020170676690568130498050785540175389995881772760135080077189438839429474256602099190227424776272591364554060105257216172114095435982366819478884961448017315570752870564564360565517107294796718042517330984855751606438158013097551562299819907637009226207086272241085302669545087885475119037467879929231518199002987623480306217384263895982766602244563574411811078397082125758157971950590845003245043107435886404391041110469022425370986554404741997094693845259203318994226423066263556594452977181082548222675326723991229321059694044697598811903773982591750866077350830792229225936995523387624801276062186202994817432285662409671136670549343837255141608844048811666592781799671237558285777930253876216173671518959732326319853202290292407798665550904817036253863171444000674587017752944286280572648256802461843408535177480448173523613299722000554332460836990383663435273257676282460143656930218905362344496829459157665635233161382364198250889555043705322198692915612636557869320798785832277099602692001201018307852384091188685211877383902101405128204970217441375274753570456804070082995818309384763945227392045817089504331300224477050764254533025940089123195790408099756187152665019235009183199135970903622573081987448639078216288146190321602030627235392712889954273976385210186677467072532218852250911887235907147147627502314326441378554114978895748752979057401526394597038601061120655347783992003025976404546194836019539986971554767849634546211693926740016400724163338123561029322771325581828345730059684852941089208733603885710968033954159292240865130928477114816187807727773280157676130462169990858998169813173086346099354907696406588980375024668794156432588666064494666545617397163301633943645569738176599415148077682905220052110360702321846137575358376335646956993538496652234831709047528129689453992096053649108773931511589130348525496444222839555282872130091818606999156060985388322573771488871951105036010164146788259931420096908434620190299597046553315314117061977248120939744374616081450904989413622443554267670657882156211816796622527611187117162236806368939444485862984311591027467344652826200346761130806499296298196209506422206326087678737240288522656108174778864574747031841375383106401094010458899361217504983515340964323684739513738889284001872558699965190553881338494143294255036386679053824564967203578525588979326206460956020899021747037754590202989057900721776571000957215686884097048057939143271176583802244818335780515440866279762223522757957697863801895326482890673362429440993085062175240601456256516284746566068329729795239260432999200587754229571498204044438872763594942896282280740523781096775261056705972176734554298639302224297314757927549731765042021895086217756345507496165948216850553851026817906362075016702197964033146229972037963556439680195203255068933252580675393995321578707739070485544721397120085596164997674134864927976306368880870505319923968177093582859690434491157471367867139610507266454397239370780970448204610470813938237595259315123319221890502400700156384301115235489026477098112688611167803141777822457228133747523498382655874647043207512800005753340336268592242485131181947158036443354383221397542875624384884157321259765379604878111330204665756743773214810695091101777987478649892146282239015875584220503616476352693307923922151613744000041333716617651905911471893662745494300611226639490640123385998906779871972069746771821872045653716729728025023980814575406866739595453874263383395470044256230663956537773232171093132736895341198072073123359246782956864417916349770834194084019216062776542838396072869881127160443244407700930495808567413532863836088955456574059328454583715041647712501616277650975029012844466835062711285977147313093326894792339680732125997793814776229871738207619739805536163521501535705944717573173422741351764102539572769792769700255267917685260714573426756413001794472973365205054749417397453996652483793248442527750572040953657626798123354648176014715649335492974027888961248229269540189459249903955097721871108994271411162359578496402444560400759306621029940924129191275889114806606440426540356391303877931044963686173435931630783608923199338875144502962063713681244047465670235703653639321305487990395554621677781269930818081078739421564956444469602071996818872155156387212602950906657423135915122301289464934047685812305342882362175967367205635154981558889925367936856868762328246357366049339453821449145897547039870377777884821663153292699836941014225108133782553995362693709333697617367259904190883922989730558465222380030325543001241042861677191389675443225484375992391128353341381732861138044085908593062499883140439587606660712075963168393117003507336695978501789442433252498999481680646241408147199966951117042218722444376431675102488308021432823943689575094372477777057100941909323715223437271693022013408698441649550886486062013212278666235537900293292808887592893842341611390156284374924001171647860424809689562118287281159495899949299426864140108991340069670614197473042850278930389740942048741421610804251250931516441872910054670550399897807194526088944399206407602503713779165756192526979015957082541928798054477672362524490732355356737173091044600945024615313471062529136561633376199974818669353235916434880309811432214055879710001081995023524988995964929734884881591318640457375769927724071495006263956569701147716722850552409347758652603902826128126093312039127412370115409806392183166225784497984577504103578229633501415442438428275089855917882310801254782208136864005498646429512310157300936003225809595691898427288173118519542598635132205361074800450373178419535265901125697871543572078383053638161251427790698663528524811560700731872872127152005929452010460443850983620795170056515710363974945099899749555200811564340792810417815625232661854961240544424618870763315945844595677851754939842210439818116945503166081067067118843848437029940279847718102377221808787375800747721521905819172112959307372511427088904708682217864589008930737256356254091903553299111630928907502599641759364201818199473843913719184181875307860867065990646870157272834648942727139458180510003281431258315575223614157355728141970202030228353879036698400602822394282041677198825718180972260898549211287953281618487200447164601689121821226280239191522900322162138153822759695794546600270447388235984395939390011704633280354472039576299762803364740911717640937458223293897756234368440535319145736684432018847820238949424127213325611894913370895561674016880033720211602306440854557304974402461429715781241480262445538964569069191108305494844563198252676000476347797098079751075802105207170640581237123817970132251952912343756687797505702545344391153759568000043545757998886310467279161535727863214512789169414176581244669982403345500711005226782450451337675220138631867294198533596266797962825165493074342891746453551524196780490994140605764933167757892710789922096718458339053644448047660251918268791705728908678934664993814113025598858256401050176727679029845865282614929326302855529005547190492833577326748152085090091197050932072122104591098172227360593195457449252681874909259350879073653375721796216115853250873714430923282396079309135852407278773792780702219446834524025307177296959235476343194054876977159641880394347648030287488069354743643435675426110243015766363954182563381813678480982738591759127055352501062098353872388471089194696364097601075332146868456180551876189410828260125000469461230271444812444749251388578503989621769423502659483230345302159637183389792333671590128585075915249219659251092390571499199270964432422052114729418246061475463118958517487736259874850488184322354954493837087611567021702343063922516599637672211938930290964325554267469965909555495179824457074082606082540570466766755123463825960513139032310416566592260147753580759684613929866009318388004518015489318849126305085697016425509829926957801096073244607887273171731107054795060993489790201472946878298757297700961187370181900904400296731733553899395396385387571063748344890003719734232381205915290132736703088172985067384806047837513407406985987389921175271483594332840484421506677132500074760543618305780867148672222984888239163742979550068554578346577694719108559432664819478537645185464761700957390135583980818255659047822157645991813379058321004082752828705618901672669238409342214808161131687855399466159611548248580800553262633968470781230361056804243645648606426979777441136991119274409979087710377877082736817906004658978828198797984579371619800865157872115081203077539271859973564075495700330260450272420392353282849538455272323368427617987095062537094000047618612386135540691877908258991347099564187767466219379657762908206744079652480877571308449560228316236934691752429930952311440313038573420059283544391451121423912223093966344848061615114814110391603180537889374556110778946644226448108412192702748367965997386149726174160067342274278837819887792459606360494667733286377027015803988061689445254560947055650098010083294907869371083537343646430870910014896373325988511230126789949978343910180265778761100521278730517617203369189400389173208750322329845735418072348207884468896564809731910657018544922083191318161632465568816656196231274721188215171147496403540012943624105541922679656076128618926915109536519282623417988015991350800237115393029329583936127743568581175803317446339783494134206136639694649032317254935417817310325922839590263660144292187720309463956866164699033631170023914104362349409446970725380584724430980891303364526401411638697955869121068512369760802430593392359207879894373060925672652831690628887859511488142922392201908286312862125031065405791597815201460880936078209013752702674589539148204451346839720128416870684536002263252851285987823088486783255764573695451309771095015538528347452287448882959984642642108980464428817541320584876797817612416798047871296384511228847351259875799022807946331867504005146243187998873350785702034207902869023808098506377260357898343970771544837056069571579976910863076677847481747872091626545532539767729225330436713936353783747754397190948517578620037482866371505971139333150035920377583575631003115844612693407748485119161120483623514807862724484395950555610150647718906984686167726391244916581203195291592211589582366401480341645449646944731697911952696693558228667230763688225719469907746921244242775233323903790591637018091398421459187093004134362290541252818552957812202551516559456451714579264062644851243072137157710910306300465143031972629869922574830912991184423458196749003026493792172501812810246885641154420255261500081694860212549375767419084905929894312490166195157443970536366400006509228055349707824970153394747926324596883912762779611221942085550191924421719290652484367193512593041095074867948811842289866957545256552058650774602172598081056733042108262597073087908775272122791017313362606310719775166293831424570182702636485811339517351942958802798992240550642648446720739086708748790377332905001074685814414252767634878426589223195487937259835263028345706957057984338608450403621599656955879524772709703844054351356489202197366124058121111440383264227628399906299037619500241653689307334599463712296018807280473943546619687292484386127757427624460318417669204771467957195120105435347901857708444648529810691039634471488013909059223198478988161008714608334565359772607417976130591413514508475767908936890268699623182782464480120208572922302379338735931714622023186487748926378748377999740766454141918739770366198006915573098578641731283514050426731135921700016842938608961546885465741437618413850190520920248321296294762064253369241746491482551986141894964257339342626057445381001113686242342672382888664832347123553733053617494780002350470028835656458753409752274538985345112804851713292899403539022960098304834292431217085536368492840371261780096835805514724036471275195559533706974135177816247990844574430285473769412622335440977049664113449814508620817228120262606667302811290133741754945531184316758177250315718461598173542244126898120409737922187337939271098021000352029016446112323448342783433869124567661784370233757617266185552529376347826950479371523917389932021212893250942135349955636286729058987562166463689394423680175634028483643320848200564183586630233888146565028928569685672661891890091664737913652697755131748355468805785008346977403957282327934050502085721595390289367126815546482905675914797921232238506447357031087144011180764684505173945320108535353208637246039799065251782239422258945896662293224998730516830786667985372326331463172443307762861735828502088693974783853055746253439399804231737711667533369165658426026216658473412682721927484719441831786265031021619904160250787516923477732163355502541947786875639603625269052939666265964836824139594444087724318495437284167865524230627024283252635015471486466990963387200345172781924840135069300863885497707145880821691438209461871114002874296766479957980896387517441102963728907945634287895324283064280947171519530143983534316575800410296487545644887310358629203715961114124478392058236759461267038978674152589728310022043137406570625199385058405768456482276064353528258771833014622466937045727937438272084533671242936127711968975662515886321846969816461806454091251754048302358274703796690512914663997487691448898726587655590916955521733315610944271551992283658666702917618759701331139842537439046436915914181812769432193718639187187260476235573390349249398677875038256607184659681787128866380624496559349296863432424052547035743604999217435799131827067845511098445333641612210292873663920351620273659213304114125593903149046708420967151558410416375404283907749231484177787185564705445996511823787314669376535281750973091594210853937209762881156850835665728808629061893980603539347614176058112034910719061829616562180556371992679653597769277568386449759995127937316416496655466192414888512753129576365800639753906580892245783611117406315376008647457409919687749936858356226808577717054047845356963513268240344795002248875435056724962504554794800452108723557647375499405950116767154949292398349955569597528415051692977880266046980414233856232494058182500888307049730461968132803754489905610148733419547984121419666243882976981868422081437737313548879935322183428530135693389097638098202587387191442236833530426569505441881890335186123287206126754233091187376094926143116065864107779030943793865740966885592451925382454047637102377564328441835356748903977452283260197555607905164371401860424957484724191952037578770990879462830021869297916354443746123447514602087694420808444819725507823868344776657876200277165753655099317269561530253443957964145710664640843253961807836657530560503109148568852065372292566952540990128676467284577237640701562483897990576270558918953153946191350922737765129176843865430807105236455392459428109633871055645118092535324295935385868519803045056721949588395226050107248514273589894819080878380302438934302326291694677870766288379237105593318564672428028154630739447645094999436763498398318517115492920964040139156417896457403467588205379449769911942987864125672410152587393489240289485393558723554415263153357166076269734036063093071696547110654385200642162946643160450997273050781040493552967082185073483841332214756617515678618613136223780183233246599508800245736510786344051928730143675372133493677886665808535831573890056796914709087710230926306114011651367371160648066985562054883148507364773590430505492564949060121256943899422498607499524677969834091862141131282444601822217769575802638814819484214023619621175907758314196631736727024639483677678904370763304281556965859201381685228315362243693501303727671940105702445679605902365334390961080203329348873391623197288690270039007449676525170284594852357921519153813390548671757402787518015414834152466644449417039281622371605445476260629744723305336571724857283500861416882483069823704915635856221355832427832036409895642576013747467331495075177333580610785616182260043748776541425481644905858107672852990399749246632089939445108141841574981950894192584024931118650323532988918520300818064202257236079996608117897333749200836600039069423341667938319881383090975770622364490813931964401801585441429784684135266507843812318659315392854897098783163364504110010247928150108751723531171363447140188321780870131595877577319056573686871263957975771971827670779125876274683255071519724086600551081432753977681710852282316235529691580482162104147556085288210260680606073903892461968737314334696389207504797300519978540137664646525089126920153583927269764701525186229585375553858886407317344948851193474293515791604371137814293532812474729221367696358828847731745167537860443442229880979193162882879903322195432700321903712241978966905268417197928115053518078384184014194665245946944831854876660981486513580904117119988273298708160566135308940270803996317606161343797547277201010430708447135690052929972131818810575545101198023008711876553876790525410052112131138461129204847117768434846118137860963924933017359287129169206316228268898050279280135247275616539480269647517383907237664425677487523761238951148667429825747211757580738771649485602433860194128491081542471041219674706056927943832311256431904972955797739045573611199681773308066668802212094467279335321554929221094341416472095436704719646208383891447476587300880151794112438343619186509029849064560831305262744980033145137545368637121931637141932783685117519561903594776188732228867058725105547998475503668449861110152663229400787006032626324749273433000164813856216491769878974034078556966743234557110487939029340753960045946310355274313544987267438601993280873315832773668745333860538419269095964008664374630851939076676142266415755740534394103608203652907974004360864428807640661341747828140639813786799747175127659590707872805767525733400729686822736182304752979855481645296417752086246633561352987229521131454266784326287586676367974515441701527838439769381974960739411781429986637670967982282939508075279371798342677568810645364708800496075202418183266340754625451371989837085763410936441684342895821516092259508976918260125589793685404197965108529944471482200781681580226408172405415782077544014338175188906925942075030164349818675220474061875676145031248920308707617944873908552001170846905478543366548142902650164046359767262603601872936398640936169254225088035729303110995636998787051869878513095915050040354761324451220869170548609099847494302850831447747220979560396989274705120726806684513658055335798288623161935444823612701216283751471905405604038424973390360863929993364671009952079151047075436361358244422482598615374117435408693950210170521064886222237180588216769777688083084399815347472922362481610552100305015828871968425953095923647498190348703340932778776992486435228519458118715248535705089383243432739477173570749810407219297128302187776913884245325180005436347730050212153638232115082139681271979833744681528107957277134605528209895580335911233674362800525846018734703900952078001314897199663872574008401499539011423281895946107809670875877668914856050975023463651774224893499755459666575688060903981759837071677001702967663347146739020307876235856165267685284761995290932410642003777350423013104246880532785251497449993725620055398013795772682385162112653251154264741388061222451309953517107929120141310968869546462107505753528523202652094958700779879102822079108713992414333632862228061604983726284536370429952742542412713267985872649484095861245518463331570257491445150564930640070344675975880874384397943642475855992821549139244898679859692598972909546753248906587100304820900205742152438475281283322259213069260623657850634499019956314976252974122995978407569312685216800069103235237460861746690389370132118919512144896117843865501249695511350908809626954426608320968294299161782664877297178242403695585462871495134419032983290704496190813095828149104627984976117402671423882752357537256761386190565298458345252461254782225389961845258981660481826602751297204783714848031089471998293181319961262801139436222454687702087096842407264416124154985790778996982861527957342627446321878837515814957070103698725835841602427265017059494196265476715972833462381955933317193600672341097750141678077577312794202407256603672621011923330724288607051777892120524659992407262443762613261079898581772052908575061016368862417423077194498135349276724920231859114664886343336806016079733469198821531332125381914010881152034292634904255958460504106980732738143857276811993896529438317669204363608467846889017685908817589216401233512839634592213758945679770246379951552348672482206975615876161464995297713899094966459177488122811202105586659017710605487042767943858814225033097875615152967274463351663749500691594443175871680473666889639205695397021178225997327316440521586794393246700114814376571573242202810429935754496729651537788020822886478977605382653919100387405004846452374061472685000864554208068261442274397886180489349801029185973355342275795671271195127180321981723840211463279520157833600799404741499124698073160045547974016676399918701814486134348273470732892911944719253330858202772897388385128479518057039318336091119240308260353475537007175708171880042377887946364467520628568063560699490083036811030974741589489014725348758952146276727755271078528320824449557676084714368442908744471418829035919534049195725063330686623925480753839783297847433673510122826614135138008832419793235375330759960672213964938097203965070064985092458110802239794890973826905837843846530252356770552370049153351983883106853393298298970125865101937119442614588222884297233881098649645696311343609906113510151206615363646184008836446388601704575586961215396541574164933299071625366835674633438699335644112033488673259192448354531821059245927742437291826626980590446150639198546265309709800677245363517846077712445831418097182770684378463451795222948978731073650831767755757969350753432268275608660324698340565071416709553277720556878656211735819957128378772344735357736511046846572075279631675287695204082949403099575979144434983987978651716290870909529824136616465530868247545328653998919588780293123264410769946082645700415866648788019301570418047909538867434310878484563482549064727595653556904961303322153880989570891422662669095778582944396150073582451893806701009657488514881701561606740809433942805543113608363058123237977831424847557088436284863664232085924645221534919248182236764088642005410760918450552863657061378111482396457169989564426632056482676016447022309587535876956337692786149887383533687759849636481748718705967798878693607349577358833135134781880164590866805173808289970576621317832181612337037756263471121369141909413615895459169567262071804727503980368104009559918402866754405709650026817942247806211190258827157088121430622227051638413872572476826116266713649316494462637623920471725785699451120671293258637532338241706182949202073513499295560166802565722875573496758239416962277236075192212373855399765508660137803378834206132525444894678456827003484313919821080263435870751904909325534473246573738109848933053527409476415102807665786617864057289663710799086552709549717051150790767557636287084029826079651008917530745080911437285315683136457981648896344651055514198403744375357237112704561871482076611067874511146231611826861160527934667195111878616303283122162963727526397325251953936671602674272908141157577932270155129785781787824281334035528830581434306652743247803562900541906804284100688143151263530869673435575147778302585213074113932332244334349537731210602087880356857314222381834254808648340368774320524691434060640364072427957146692911000445083921545243699682298990865901483504215311104875156068278653300366488820996310406545308896987010675494264795260079544874714970013245826040852365724862059688931279492584671645681061910511286516671223104250706593028328206238734541530180504506414571831912610660898977435247861962710529882891397624777712269492591736511932841313334676259092288227449999518866379343784516677579803670765889917982851658114355228799553666305211012802090273500156298979630769960109973328254277636183755462127235463985444506662006763888014327524103632695083312211050514895286163647044959775305521852036809068623030631269630346517502910437298116434646224217776010441231324682486808791177417634375369418234268488776748278360543726394987155414841670238880040020336898209512934089596838080762736295384655464743014792044655102655963139773787461781495981096783230458802582542709282339589739614344323039834611350690063738644417196552442393203652611581629153391229006933495075319142361546157116176115838962824984848021950419113708607692943862925557658704624682997013377819026263546299549873541155546261981486974242877685847954082324739892403641841119441281169195313532670006996110788755229439487146583487681233964016624500554259285320876353053263025654905030383159298197137208484484392834327989782461123044529242113741572023864995458107945856304124481764815916098614740672819126178757549180778861424248445235935081225113653238984673499310376003721940723248502761365150244638263255193323133025401992626466551164667660933937457704025253910176276208200530837071992089204798052840193929681962962342979509063331694837588550769006473068968655445649288023968884553999425931592766270788825864911469457543465179529828024589301239238298004044030450829020707732389700902586565452967779670580516245526920031536652395310791794182711347422051180261335387806428425679938913078181878658655597295753042192857709405099801447504637851590812916915197412620937548488879310735516032634296604590887594679949451187478906906670702178907328709164369513766293314823101797110824365809262918265272210587829474703591101501087458734337353437319727436619310437429957929979948759381533106762539229884193866458780264329682858202709118072560716399250648393126681237261571608061234694869930776891546734375999060006626059514077963781408408018254671524308619702053391762255562596891232780606286531417020030993503662401499015252807385842991359858116653512615381757841006808041724528796007781780916032164688382792483081600263485754819826345314784733405937097573202406860512069727792091459806439029684934830755954491619198705037942018847345110451722853572371339452870099964937571500906832841462196965827561635981854513499677208119704870557231759605329285253813848741950956807006861523747421328129594137724517598760388372680194697460153787132536303469184790132873021621538528814681349503859089450195707416300572427356196561577248703065657709598829493053874321717054309118694344521315641265821846012872169025828915001064458272676016602992967936005408006366955067073403144768320967142737334427154148808523402444630462025920368731757310447622508911568261195395121924758224590445365190534522155573563439330295158645352121764091837727986673909602625261358765389902563936889086512953890773028374079401604250941828475532841723934249103715552969673387288915067859787188777630377243523265426152581567184886058495319937362221807199468937134830662007033642552153857914856652754879518214932253965506944787020165946407335105444083291414173342538057723887949166631579236859936716518733166221294594864070044937171337032834167812614331157729127447442282772768639188184526073975777718335063220212645063711935618463092396636626900157832228399742959814702985820098422818802668493349261090309196232428078292965922580144892808135278421464560009905288735196276745340393997255356990685299312351595424507168965176277402473326373450616781072466564002924790472854269025028031789161525263270014817002449772998255132988762976707111449612034470832098166646900788652385011389625004877569117404671288455223810036312357810382431782762385021739281194644818961338976832798523325912942773129226644620382066709489518959414424888695326264733251995617491337611210665337249295850896629314147042050680734290005534243427152052440075779261872376194602346541393648225375972680269752311132310813909812112882084851406827419700899546248129259740936317909363279001073166694843238323431517735656589329698894250355991728477625929236049120119680917720958054876830645578432788064994393964382237574344451603603121744188458047630724791279784460417354644364678587221324897508704790893614197355834563609985684408417049907441749805532096915291347481677503754362020522666070981873582054762212159110049089953356576832023602184164599372643017313748779281766209770853737804544827935640032000139244979139135155064871183008103817352768576582703258706824244346694161802946252151986088246028180461353058178044868681376807853033989484052509891895893541355852601860249228791512932459991038649536026158075763303502492274007606418396844037756246259335584389416574831780238761674321871679783058593210208335052128202619593202653758424619687538810485247840258561952431459197096629145796723710243386166662455748820919667715922823782901522162380302157929805166004128717952971138811094236258325989316057248238060919382684237488045685546991654235531798515870243325544908699155771359459557349511547619840972437017161640027785713354167443726579987147322740844910304571644536460531010962049401422048881528225424934359086747813955145115286697935360414026910865435157979275768145301765847844781621353940062312366467015272761015386934646264133380201388519176109023790533441659314540948625401899893519869295551634355948613092635486709943713430863313309972831118664422243994017978074498959511652917204455662262579769373602126263568435472982508202085234875363308165884510946228250800208278744808768772254579909618270723716871765304761156647631943168238458167027150652904338837619459499108591377088799350097994381176360188849115457990713253149121739857575768148828353158751690870527915807720175383579154085833899938407765399848129558274963260460919208225278058373104298900548124964546408714366774507393975428515034708631650878818063988409432877693741011150378343323734103201937940647116745747173653356470691060083653317347802169883638340699309382459569268491281426359405963815496409596747842233882757706620765802335943195039869583238683734345470639982249085395059912468551577111989234800406056226250022075514936236102728418762624671863481417766970738581894148623294821863168622904095645072141160647312628730024979518064494636029636733573179545576676476205772700041306553858580039455137741691419838401049168000024132181240822830608866835346302081736931923177900265074447944401592567111700889758161791155576574903078879767087568906663874777454964214461853038589331715142642587220572520821851409302979941268050486252939934451825363516450858958178645589796876951324794558043508856767143632753671345990925551749884135732048185938384679788891669786588206194469514072672559152619934166669505452547395852683469806645570446491765285611954925324805659578674826832595857220282439063586495569223796129288645138199052133311674574101945954680561844912780045819369284413219864934794918952176989135318183166146128099548631255646655362065285119851482389746233483305424821874562483560943821928562103204616755302003909837671851589136662645978205630706245115100545508706103759030055036899161018157651518086599909826196928568050745243181609895765866808693710248311371274826353518015885143350660832510126500723477194448409779879061665407156147162776327774882266509253890563368757173167240646272259249932681701439799944584070915690883663829851269484420142986676173417612795165518236066667539550680596037519095789359822871892555952485781542856516565291587041626826498862359632239872221675496727441166311697484090457308067309927655533399856459980896520290038714913588677064180052182627512431807673426645675254830920171760913525575472394248814149186753871383873461907213672192397655198085005232592251664200352166631001672887644814122204080073876226106195050474296798218489483015746295894566993524421912988942120869762829946795077386120275167797279486176481520882885440600473956352401576599507250680480926567203057242497734618946775404567192583398686532858588485835783956213586797800780220238782366235232309676234889103890136704404772939765857771657851715564499040145668205362955734433870922492942533177344156005143015933010907708812214810640129587827756804549552657760504876987485282126448418637626517991245357267202105043459472048805099574369792219640607539402658425695808292946092472982838835312356700728213859730675214631571013117392022675303386138478021927605162556078477307874179795321864531914719134407955289990404533490835448075153889971065158434210985702788572066921199071322951021810251576562704336063707989481788610700246381429696500230608954214810996265392609494689061368238647704932429249869143632158029404098032897242655794089655644507812528994840116319543712867431956090833514858098700165082280133885021322539686226061959107619293157644538402371040031187351752220275748331672638492690658118361111096343337939933305845284265653487096730714512155567878534850640144454359783090822890642114682553318747003045230813898610294997497071282240325994981262903271433192083756569615424574164738600885122278996835232590546189629138225362205234405401219269618446085850341499047659818050385287981939805477703903312054683173226107426010350487234860396123101175974855853153818562491443275864579100238150357263088830658486612591686378662082876728577669550053353631019619518416565022814185975998298694406043865840349377263747901597971235868172578666035746950676282711537394338831689204794658041310446805860707989739325994742206520240162264260483401936681969687469948303514206719434903789708480789257483260499115848658769971306784894897027722134621273769361812624410172415501240688482722370659142570887554087921296454378839079528801038112356492555495991139601052168211951124182489156256393385385258462482686013289538431227699766898580433330788590764805550785637858610550647402731332253922282809997752750961764116364445561552532208781418869641153059625916485277089720957751527601823749256840781409789835557639892546668584711117841672242071411320176654926201743691753148068616703813540827558715156100003261512221324248251768647122515545567373068438868449150777026480734273047335240506511101094525436063136192875405768143581333637773019764634635623859323368348520979659787946861393201864200280882561613739742409886581602985128738493323270927835660159239182889454534872446169922980325928256371596327559306606427486529303732130256348596047028843992075271184636759957194965529331448642083744096803844749882080379932060688260196480139259136791701265216121624870056380086610282052755979912326947806115035819775850095605950275111364067299306857317785982687179897364446534668602526887744969961530009690227645336386407484035125817930578581106752096228770120345149870632989499061201717968668188308378335345292723010994252528004058218056521129991731834460803973368276481780189467487848331824755351050788264861744036862133572033114895697964128483937402662902510712086404966560144556446259120232189269142612975168117157510759369281689669542751060150774721664086559051718455544104314907490315574469355834697070257001751198782389994799490928219647704943483502904576132794590037932822908642984217727524630392544950321933160208517500393602470399765605617670002990357641807655581870394966762011403151326787783117099409962057582678715229826700797451116950693238849717122723265456248106447200558210717941654206734570546028187042363230354807827372892240069110080088437520801778392332686081334764850340617636614364926796114484700162636951542689299517091002902086496612248669325583339813146732405404490349602038533114132736719739650177141226409199495437710180221021073053813010802403937256760876546309790514523940241034869581663865788088873695843035605667190030550579757658625015699230454207758490895468118774895639765323413448069405097320583551222824944448593345004032807968888107417994790472934566570288699915988380834890381406502978596907174955681577457910924857124333860045332231176409313360836365721989536301522141596001684832355114964916608319535962636137252638433964049509183158935641669051299427432920405278348377033799322693695375945159727272677271512587668146989593545194291335360152820754661542459586414710102280335153198608845729002262243940491491232067402965364763965286747245961968629862613994170751327534865617846741532165712173932199889756323745497638578196683326316747676660812532830113970434420494687524130821358009811553393093853571414501080677782124405775281465512783814225127730560318332189079169771076258381124912918776190315628611725963608804325753251925359488336610066547778677644627010523020776782121098047659073479389846238455579150340017954014253582301598215669083692195010398189613129335174795461785243921573109493950123005186071417500976822903680306270671251226740606419717423437694745712355929079884068810448997265405775818097440509740239486463161543588997424660175119861382531347738931657412106631686663135745121880803144675351476120285283589889336128315496506309333564633548202490029743792450975158113331878038058102132806206257731503617373551992173866933425240653205053208861708381267451239685603673857650539712266350614809428267354923977737130329158218049623384796933916252399878270681730069899267479718800362147557977225235455165745703229137984378005698656246717619230866923231810069219430497414171640848399629341097870985463265836231104743056536427662428979702959250761404194999217738765047301788253794271514620267124317660062032739138217576704290683652106821255954236417298643040772162581854436492910009297397229544627785371501610632996245222391056103165313438272312396793368254091541973622064517657324400986381813124712499339290262817542859668883961021364405668056588515417237197205905211654383703975849134353507127589316319518331713629974272032756851200935444150337062101918725307896071756831747743357361640563958352475945274642289034442990842739041837705430297065134124489764548714330021491689967799074414660951629437059773770297180102506109259862333761173814471323966162395861142394160434054472163471858363360702497372952431314205285133482578962712894310585292248415218948323756274848792263062200584071989333329454727727444436239383444395552585113616300485429039076226367137383882634622243483771261200612346659058378652615406349708739817950436089439732183257534884544368785165596470856479533076708732494680663712648660626822674610059458039042108820140197734779638689412270126822384973476394388851188073504922003176070055261207323314328498108526681037639804865787198713933005367752438258520553259644767832135124541324315846705802477920332347562160484094963834031110086257611813503587456657891787352641199471380995789742198519266547378977819272521545410087949801591053249928968434076196372283596326228600280448958712742861804351194050990450509149950582603073890153627683409582732544153659320235939542414316981204113277797758519473921448971060718412926128897471085755578002671592733021240724372651566033940054881520661142681738574387308075927490638176236306056402495223756557438339642732522767685038134248132214475653199029600015659912174360971406700762580996239915562725114530390345914851480771514820285517726158365626578462701796707387096877737967564218354054782640275246306221261429994509045360603492058027226408434216621715247961226936876064611396699962379269310093110224800062225303205161102995558195605349731001198133308486640278672786764293483158105300471147770186995963569108741813476579822077262844248580540155515127120409312961910155008713593816603710958294740335123641557178927663011532243060040952750238540441007283061307986954992612541872780104796308840929396886891671754668035929671911217293023548780893129620397828887044265675136730710674290165881218276377355649955488325795919921938401060091806740753327692062785495907259412662025051079295366975856230245789546049305549156914167087326644070091005593693599570769644280762669729177145877688186897163026437179175577628436844372055458245435040177318863206394496084184347074662899392348598150613698366861766458435359250025345644862441504957589783101104085529721820784498478072993315418243562819068408670759407890675818509182318383478524677235059760674916519910538274600439179978179741966322239165043865620685055142937108395994688663671873189862050725237051884768199702545434097259442176667706420065479679824445093748300691832570957224792506206418965189394325558027283183265060414983320006419896000714806214894181630633661756197003197609794291216116243369984279399839989141538172773504491834599727170512826652662863962390190133832591542276272975942726906767296316100163745355816717214171962519006998283492782705909358448026493763698171619152363822503306655853649169341683108190993809732699842894844129399621959440303276230137704219425395626113896813528162762047288987303422698854438071364777903771870758827714810020975591772578167478946910323737724806473255077937094863471756762905257484713189136501033424190245295531592991744415199968823183892104423419729699644266199785567903225772036702387149462188445264996418776815626508867866013639156776011200172156396663909993175811527786965528010000201763724610397614899622240326761181523993221554768635578858270258746427725041854954731360079634820314367030732992080229164849605149663675437148183359424720677972300241909783423167388954323098642133566988776645407950137320217048066653750569370982477473387527507926147214571890626282915417744803044150834990976251588545348627330942582780080102671106111325376388126711298246070278549174571740273459874971202169569486625541051865463176416648588610554660128721440586797226005857578672020727327803248398425303696219669525865751375971552207282029208641721938261122746908342269565625436796134721679495675648998518995592758972294705723282353184466240144252963193873893856397328485892524727430086506061628368897263951014893584206709744838890630335225919749965334550478142890183339777259940327166343518146253138776261767220256576156434583894024141967030383169025953751485530687631818772149413787630733881473589606021793895138929636768259230361871140638950208977026716884979978049153323657228606040895922256574269061507633544505460608384847858686455457844548927245237382832679815116494628110370895887044813042875890309491341406828471742385926458626347459930827700052882341961345758663593292160967008928061288316246035795003525569309669391647730369543366631728994515865750533483660072981851387316035638296438816802590962048600152342510796725451318793756543780045030610659960636292292470243040954449851141946055815091521403799619036148805777110613986253953151565927225493417441278698792888989411151892141486565720608462501528400281555213758476573145976344502126732015745332368253616967504236608815175391251558549020617790257954728779568676676726907308791859741797533968313550011810247690285854525807929427584549772521584182001718541556112432700862156988068054840876209813303730681619252662599175771451151269520204209516195713909720008282018528139650475953291019887294802586232566686256568560578191101202885425951113420100400580228454863679913715006694938142063375257653373695680706459473021547291313867610595214944100100005420563059743506759289510718211387672549122565676067432464557116674354279905606170496881866497963282915009489479525549131085676493002784265090756226036232092505129130549852889399765188680049413879826564156889551157543977942492744729349640433028862973038352743777185325692135570298625272013283616559907846551366637229948871257735614272132569154082918098689548437644448757603614750189212909642504678399750612191921651862187887407491397481288932241706693151171797636976591508799347168290559100713941680816851642869770116801629777228101155484762503694343261074739952031857757601219001855947199473704709269437088911526754773945072555420698539981801305511233072412731255395660660484462697233991077605411336411992190847815814607402010627314911436315426929306102937341575208676176419596035676018335805275798138722897732300005545727758731253488831372349627817905107298487759574016389076465219428023833825823126130763844365200531179408673143317202489243843562752528993838451057338974310601603154157138229621036625499938083535094593061761252908822401250056971186224640157443042142735678350805097899878364101135190731817931207479480968613985038721047814737395382769947654632395052857011467997391377456454665916650602006998598325260132478300270023275712098505366671498711754271261474168363707197362993547547041115222814331196697108572769933454891434424741877338010909045385525023539476072676614362364512474847829121737096214482395605131931394323031065950774030738206186127751211708666290946847291181312803822583876412068618771903426032394841828916143828557536011681833633416488484601423196583554644057060132595838237064697400073769559611089742928475436245623832467843458463445522275772695925958809647516655579696336071200451667211211706692270517426948474426614194602783396026658510476635889282306576402618680505986720206554543028838748419894263442852175822669142454850849168746588595228944205394963272428477833154309312104924820597238856977270922775999753238115249926831008794013780513253083841554281996507112913567082219139257279889100786507001729475133456985884573668771464949153783774328616710299741894392111992764729881786370480057353787715996805588542358212674489246417485341395345827172716046429703731034137692882697263705039487670414313877068928292480454781270435956364945350329839585173278265800087972178554380517937788813275333059967047971551485683482419101025533901138658816233790621661312645090186518664240426448196094460551610557718248597805812019721154032099236285665141428889918573817172136697232518918698057311000551611805379103477653822492643494244422968973022464584141256931464409515535382390415991349421814375568513475369557253284061258811928853043876807947113226220251091057370763045033419084527785288820460379190269994189875308056541307452107855818891417964136190014458982285823185825771335303213572835158359863813648230478760518012947494575794747567113936812631188173229662726607418142880878922390976224216083862571425613228853861075171419693123856608045252958613171045468344234260770492241951388586876749464105624188307341681899291442626482174943518205268735600926467272123632754563196274060485624909987206615611386686369000074197244691455102131898229499439857850159875517102405986693521376719411597737511200425709649666436865591145912778363846672696658535418681560436257532447835205524915480087623234617121798895693927655054500778677389348209170150718211293429789781045031825104123279112521963131094691890397096809553762976408449484115283501450583933982597516637405840989181177530496769246438182028343031746050981160447994387613885269038954495131601651106941325674859690535988117745372163121106720235766301282905748862154298248211462987941841165855948654262259663765278875803984391733608266986371070192213854231555449425195482186432587117858173667532943124894794381313773094730303561624270680385776047572814268768696184953724009331368113076335294730094271130775386799368853047475158017457947720458888636332071274115755077168759118888410266023009579439114053263642332506327996467127836677548740136630849091831941711305756778736104603873435349839299260669623050523796635201430719432551717931032135097256112196376096079834417291756596331909451645797350410291823188323565760102115168643448041312541988833054245166407369435872041174703831047233816278158752672300962881536042555105789893275464720974447585581094815426893649575721707791687497234883149588645062235034070219595764812904362118095286993723678704744018087436959428368655459470422008702760820000533190442299304638066352061317655552507994267772494022342081705948717979129069200215565642175325169574945848584107485904269818761300506065334818589270283650682712518962544541815485017889502353242909992762656317692378006150277357139279992801487303941739991691567687927378671810447032010529320179918111950613522310081860924756427482840143007395685590694978672552727114919829976467233429001797669686753896928685542896178905542269964395777788018833769563742802586642955287105358440580349826385369907933718939433814158938142328555851082293904862098798986880036460354185819573956875514776212926287292063573264733782016624395958882917674278696362309620617739362301941570714399996098364098582625390038306175872232287907862960673379775536486419071951938023583498219856913485998530576330625180981400004876110122711923430192721515545621001583910805900530353183980281033923480706487181244656087699580552845468741151054869070683730199871544671432788563890048559719791218620117120879576190261295457570842131548550339889515167889827381646741767176874481169734029416788466143397654346692123771252084182599771280967276533555748716839973534442084818539541321397234577364787418094368714206642046223438002769166739854496519951858487771692836696482153270937057054150186488937000959651304941760988955637462789095724663985123938957065497804162161197598427767634737149210928566357647098045119921029068788263677769334575013391238146032244925810131008317474536982495990066217983019157730649155137289268743303088917647510283890138249228804000864218469315076459309135396544958824138034518457278265554688483129141793817406542504436934892796121116807368428729132219666628904608934217617306506649482269772903000228002183820627718612162169274420321608808486073778790913271950406522560110129325682740430574345425224349642503792147655727257238782460440950617570672382857233602739855229032891533979171758295568973467734508894471562191465698438066360311045635705127804795346813671662450871192276343425253286114808686183075632025915442837573539936419724129467901025564955578931613976195976781500577695375673212816964071765022897452624184621440259759128786507737737703485389744183852965508559006723907524980137253997933555930348872332235028638681214474995168251049444212155783163873676104287107281798414276811960583974466493760763657117378618543366212652484729248292968673536203104056456864634384083554877659656837497387960169898328158724354330525975866025001872438459600237471271203046684562018878024386545929042564294803242243682091806738881041473551860249868848245822597120352171798308111146451367089484535808654223081768435528844143130464333409429283530116828127061763160161480707915888833522007364939578703945192694519149857897838310633394568086880700428392371054591936911143479845437721879103198285443971692113409609804736092864399502735426867233013179044783702749058014779687915214790441475328204965645727042349722353479136494826863638046794975276211654801848464036860269929541267043845965395223118793363012306439282541258609822229832714554661707211894161675186661104661939005317433379102504219112837851200845439701183410086444379860881075036997053981862107901139104345107554428754385440504793532046426478020732434639604379850264791748851576888482297946820977697134831323382081791602135293061645967693033282203415948750211451518548833523242412878814246690746565899360638465923628389584321221895042757207383307747766448274679884065668829987520193590078408266873667179864243476717058742342203290663786249953227457495683369075611869758709070008189571306593599950111584862180501216082471078771402937661129639508715842480208576135389753169824617614793821982678562508355258058686817090451661020026995995914385655796229506728379193779071291334531436840287893933261063400413175538081916653357382427148568345544107422397662362392571944596160012559036686795678042176585923271321540990552965169348115043509971903599322284274014854401555235359754341079508349976579802027855138690461722438793941913045641659408839657931925277692313790276204821165114530411654432741585274415301820797887583828044341300186714147326936580425745711093308080036319835066148934356143839731227394187119434312003815675297479981183567302732453148285953029652280182771135438299840251190747672099885118863747377981065437448663631989540451067460844673217795160279110187224748335533827135036577673463158498740342248155280299992156997592251767575848879048109267077530158512902187671739477573641304112011854125176811997046389762535123677793453932402716324945026706587338964740770480058576224010165334512061419016420398372852068797862026982186054492108870538035403547281388967554050334135159687533559086895917182062008593063683789882543746229705862856575262401139091378283969874447715034173782265014959158618776650815506421607803198138982891476245085530175595431058576657350090087231611628882322620153534927015561171806777488869071036337149675744999381747099165317227226397380303457584224024597195437459347893273921725364905515074010669268625628606421378680639272430050623117758583945717877168376975662312750088719894932604956887451643789369313598174823009276665193508453556492617202910513450131836513509868354376893833993137062094633018213654159273128821356637894962055101052711231984920097965123605239422740585022759136701642278579885227761299249819416535008189473898232135072663622221465311357403513093701151683378805975797383447786093532976077002929599122581456453465812978153783403684480320811538794564595729394044837014229592456439372349251440054057294955660670070996936913669203614719051290213866486276710437876509277647426123867276073437192802880637878302702925630838389120496597209086385983132438652740787452171916508460865609188662823738940372261516751469325586687142545902613269384206543841586966249942285562699133321545656233906848697696487889148373794114046184523326100283614044790093964983359601039503790791931821521986671065518929701620378367697950025786199874969335527383759597700679538461396395522438506051025186678014744954746901968935958085092984945059211249211406360267404083066036834985118684133481093306484058799010659404066784939591718811490063553713230180967501161736083390551954502104131978828089852620607682299602673168665101870396431481873064169922238830829278684181471653766833967423099102952179828882407508736670765900674889454006501444527405091179418858956574289226423485843248071575261298578214131918775555880177657946197942040983517762146284025032391865837581079553291512592643064668353451031139877604125986177594450431513429928853833182404324087828164855772237295142036533079242553345439861012573987490133880405986893425733920962301263127513847606930385623888703315500003167553363070664919078459055691133889075276637275279854986916837037482219740491619996786080386836116441913714463314674252977481176663726608864263433642781763756271143847746390327250751279964338769144245369453491355218643491328134504557541639807960883661651044019767941812778048086009535813508252923911963231477245209655071183193631989768700262008365242930220276535389236738114836446884771182896319448988247192052895645142652119668574224581567924698771333325715023288945028111383277524135865436425423555026624826841064680791855520933783082378524529393072963088288426844759661896377161871812219581106928344800001318979044482731500292264341503120638736624869933578388458947988132352872276293069677201660017184972334531976989765083283448853530453418476873992629899340748176601609418655473964672102640153353816909884464262762758103814336219174166407886051908068916926979878696447250319959738045121748505737801849927028558919012128291704882504252658129155842300759800240467830456655644431505161009751015331577267372169480934668875902277872879951419032024520744543922401496189367176999872918241889073209136609466519908060396662660871119299446376047562455976852986459909910254629486016339275759377821071449102483495771696356944432460293124468641892972211809393732896475768290586776376742628641452247713924944009271724263150716590931338140016343115641812632793792438674507609501237701967439826851649749149046496872844540543144839096885876902852928709856351549130493606772690218747757101768931013439009221120350334202687830160993026853723549719790415842145062846394957453117571091900317264932280114719852854694148570115256459319608188584821751427598790185818592296627976623623848451346529406229173580654094565488310578746342494574586315951330393164662828390718510944339296205032753123966111476951385827661629054746980693964132737801842366539494447897702415170758601657041913483858059265660959889489661983201681346691977578516176618082792645501564969238639781417325244222607855379669841573994109020836543683484013613587659524529534492288391805243186123289433627628258459076334327521585071931616443551895444549906951119379312058745267416375809212997813049820192333919815154022836799563393594950425996172748693086851954151666293359852409446812525585020784956287643703364126359544115036662149796040343183024961748985150105572881079078056540775446724399101347961392540690205481518156562233652625611336194685177764220429147944125097758007328363011130768921056609145774699799303695569211919136999432098070869108556425107699020259097165656393844141626514926900678962981933969793747128194746150040567744685792502096695433546098041424410984617095238843511604535847494038378859609472486296034036025798023031494381929450003051035818355178886853365626866039367639215281764660853636371915965092779094746184956019666493515581738272643215514371381585467888331262240942684070989171192702039619594573177212305217017996999238633667389693635487061145543231100358025379570291695720025115435434932335848655196877291474273417593286795781150339233414931254150250623179717406808921189169937276166329442049132254216882187283958739541023776097477714448657353197445281320474133110148606073671013058031019599714503176385214704559468443703017095730421718154211149717814939782639333497656533987067560577889013548197356362320192589288036694875060933120608620993329991315214292624831901550682997901849344172608554358427797164267890836784609195553545780721441499954806196744697230197756712645451845224650032648471907094003577042555180380008890122829033006062264049216891474976424966261687751130164704217375942442033711090131527006070340612632595363534184839957901009720960432172670589575065482846513976571075016644367181973946954747134047456091565430009803024594772503188446555736656412213260461408157721343249612970734422144347999071600843630731597653110473158676444979577870458711680119731794711259836911573407812397654891716096899742541695272559489777977473306520687365037594890881567054355163005249778859575126535576180938736006927998179015663830991067795633461086543540250875847360373672747597616749472431752433993987559075185364594631488583742430818306117315026324837505425611170278306064406306950254662320464398929408961657934881307391078746891041049762327966726509991263871208592618465198116164464631468209161513547532059819869948379428425229404639176515524097972633847406250004663293834810316237733229390501011316680219001042605273858583664131491464705771995849538415504346716639475343084129303304686864197895507784839859277840011637376859285448600842707829414606660284138499840834561107348723405398184609512273858641221198566903555565449533491711565076878835697623449516744936549736183589772911088561365342631717585679529527469328887650338939220016273981020597145012763966526846084871075426280115730244172138843292566987709234893719056658185279839473223163826596079423838208923691262126399642512465621899620250643170326971915014119132557556145033599403278853852133937480464163064428532148039118273112807443516771750280336393112325605583041072353218615465297842185754575835346783947887538833067453385838116829960842369419508656621770059137098768521689820167213367076636581589636145123160805865976899573065589054935741697232679242149318630760759640637746332045404489793584572522403107742111346031485594167226945880286305404213649638385988416461123305996319017265565682826361444592534639585481107336467210927320296756883952566443968534230713957540300097323958647175794239295895953433920820853427820878807581528948736743361604794242352429527585944717096512869774248800581511138898695921585790505645734789636895970215855027260101919475382490877100960680561569246265107341887816616317735893858920473675475262348249235824734018784928763188387757744408174974543016853217924112476869285792492789913669570273859991547774757492934152179980169824978314774577202567519368830565536859278927801847278183001444090742119681412857732860443020940879844053872430429890538255857251180114736304389431489573833342544359739442158245261661360928603143916084740516368360700861212393041406324788082566048292348002066341108520212677320095890750289385583621337816811786341304086243881919257416538829402772790744704339899495028053177979328580315515746458192545761612918748335851802983488245123461787298830649091421165228217627878817665122846232787631536341397013262352553571291667300037256848419661909323594359044242219221545101374005804709643851820561387967944732706494901962795900482283331908123217397748158085495548088706406522537043663846974618524004848649156034074020500328422334133015959526995900298485145768706667761886339434954768725970174381604191185379860684444821372854224802333631942051836821450274029539057388109295900120841321906084836754637261814854724579168732504045638128845963491998222886208576548953873868641069247094652884732932047114790070190082590491859703004080852307237610916718079561964174115181965579125405776249631817226031534906944828015158873306720384561219609871892400974954646999203678659811663737933173650013379928892780731059202815615601061891529508684896776453734879303179625299632081991424509655784547142545839176712537949503688851031830396523996734347265090706909053598747811155523728965178689843982102463218718955401795737253206782185952093871910920737585109686897461166412032562245544422762294641254593830022593121705686109541643739592142858674453243869253387539690822841187191054549202640193473396227571393563421467125342928227424927203433890754564885258101554299345061146693147918851078903852004481684730785468295680797477441113206887696920024965374270734211061280077564413512221758985703081931677613553107216401748523360956520232046545967876619337511776693417084445769494450669804472138462965745462154553170979566387838926159536647246233104853942275273126750636090630787520760933609429434355286657960671210171609125960059781839015910512098907062660391236099970896593982876953865443688748329783171583881378854874515942902137042920494057080103520265157774317884647571930227593758233189394038052760774098888609392061759726940728547149096147695453930796933776680693821599837222405806762231458153100390085537998029384686795644512100366362613908121879225841507738121166351874944074935126823196946431401139251489122763535754540300537324682064825929531151000706091075451717372606231848314375826804355861925467677376712916071605375051911818308935793713736515518263679310624100246242806425838897991166854583869215480425567783310958595369998878469726149210172557075159194425191322403957265908464566205880927138781587354620065294494402974714297681941109990879645300240724310739384651903712018079189440899474131787334469861060014133002268886664315548014737085324128139720990646363521103427173530945374269875167209550594740269698709165503505013577862612396379862962861430508516244107828968841148645058745891568652768778444465262153114796573762634152552281988205775794019823061506386381824179214437789780008785446689947040037666675131572034759911477912716810809797266847667612359769941737082570803154039735986557906972834563063776838147144727207609684900242180292870529084900778158196184055364958457217415372574902029057672564725537739111923204391980340264298234756826502672688626333498863414115047773306269422545184245001562129337557612841579545087837333964670571892477565508078259216281092028289821967955135118780477395275182582641690358830393842351489463692093192291233262342826334687256427466197446070594164502411205685071808784252163251019765686170365490747136843796918021763205059857927269983979109967258143582453483933165016223831994555722395202131481114336301487943854188982976030790196267348116298091685681875861234720360443477065066529312429004960733602650182185063655064141129346852298682501754804943557419311353608135517038406100536221636982980351879771304080268331098182178907498439004773190040520416527886701372380557428844584516794224445554648137594844021044013848606330264990799183626009250030493720071659812666117447079893236937571990354664184475249925520979761800662144696294118388125422892095810634858101237964992104892743232967402354422079420652332893666325506764352302414319555535965627601468312218517826711667699770620406181482161743804518194446522538068548379476986092520192350050497632284761263241352127833145320790825504122299715366815498679013755054363419260610366297837016441577270871463537739924941222904275729737241853517532122823553530606960468706184903075981692992961747140544346828809527104756180619939503949411516887602070988995676308309038881333083593882427174540195796689117174508204357790096452444834048199857791833065133014346022116849657347125327687824559094639253923670222111577349339422545881867743061253744172417858497685937184318619189800957771469573977534144696401298524615372466993742897502940042523836217145626013788985335370796478594191773357590822413598983755893789984167536373656858952743756114380890222406967984413480725033955085126392261658434172834129634177544650150422776418059400879018238336767521972545182773891341006551351366000045081797566405675641555784492334557531945234895251105160689087970756895544722677420691983424288334273024809561433390367673673427314526416849926530120235915778294746562949140285087244511196250112393728474655843128595603564675387683099859008130700900637459795574939986123609307022212814111006913130824017222557736529800354434833752358545603967003601509295258649755889331159974802333476138371103022296512502132032525626579558812454942071658682815365624201146089206872677961975278491869116321159258699369836533534314866810132575935514349708548435007401416684344309559732644549983302208768360826500004330201084658664713143119257180520803988655594126912285724881427679343001188192805584973641872496788226804222398765581767184454571173425353444502758735809500779804801279966112473201240113764964858304023800551822192363253537095440309433714006872584687317882368685058247900801877269152830894672105406106372847292846129312975915182481865052231132066765277311014537821728489635615168047618220488386428866381568123731691465947915588585418733916342408295050721919212019805405129207979530828053865988525069254101993782077123364328681835053675310506724495038143930654117332490362407370276968540951140410266219587855706537329549935688674248682504868775779373259796536560494110216275504767234406989802972220810518743948709115913605126526493433665593829907444932727521687264934077235036895250701641249643259764934490402646536354541231898091904011987163121026072543700963236445097464876963879942082962819173471839540922748731336905938620243784766724084344249872401051371670746019684025812866192977584731667573260777737113651385655537819398750496633374158715597101156183154912688136770954162483413235948580111255044581678478843347537464509215557255671563468358040100345908504540954872910126612344215308700003029976483158531899515044581444939846667916389377775247866869493296638272872700252876602285331874376760860099271632463011438845013841861723525618594963052212883710242560538772602390658160249974642196762643796987085000638887321695949596145071184787568395358451559143290395197403013601606378602447102101835105516866136417736429866821835840619283010435345739208713008984249536003283644327000885979065127982887236524996746931038818504450970645159292274505613904532478402910519956038459560282190840390140368857520031645003961897165238923402196776482714794716820544455062823012299216539786569355928925387230479383857737071507006943933212784094123155376896660595626678562663830229360371368349741919875681122847339950444698870345182939084386942502699059432092564275552320725837063610086157382934307977931075138964191990268504463651211276353325345414479014754218725770727875581349227212900814531493201758824040702423471085655691406024414551775981217077656485235473422537156116332066217161356090707562975916307996820761907407264428996591993705912103873769534352041017184503063805123094511645373963756878277471370488464744043761397927107146698275886472470658309195798395809493548158861334604070540808178560080082912075908357890362546387777898889711152805829460886437007508106902124547326980447453782354933554723571484707735899943090800750095049037760470936809852106575969231200166134602997453298069318109951302390907225305162225129449550759170289591188601737216404006916583594563842781184151616614726820328065134197783959564024574737148707570307969910342194919108726401830321278048121761047252221590237721970232306996335576021201073021738683756859708884695528026279357397864513359827428005011209524834618890152633655574633238712318423293338564104697433953907696250381211278227554652967963544002217248179309946718774261645967900961897990739961241616388018657739156987291556967902625066300256881044652180969045989898298445415166899585577930874726876653507910225508689423343944255979235946456889943052463072426150564917514820776542806033732198473276144348399207935554673448628163462953967435757271279226739932638032748896957157309102778417456895162722743975204295874817306924463373073010927829010828664744870023836606475161683485859199916653420754221544483173111270376424014230029784400747057155715802924401613944465225487852948717473777236846919632252669204666192489119872569554445705625017406309426173898547641211525046056126093261733558636383068162618186931640277178660108841619204034467268099695510825160869441522009478784465145461765543510526396229250609027173814303697915299404799960514406926861914019660007660762858867894529163580846633827776344209023431250087542283886488235099163326600212094201986435119134967183876408174795503009943426438227770684284901464892951207115855660558643573906639408508417136957671838574348784390591876047383117584288209208978453632212024716134389883051156701360600626895384930224808281957971957951275533424313760080145357553665175681228112303034230503268572964574442439928628892321439111162406344234392497484675343714141854571926886713738878101341273170478793063004935228677542017579369271257591414615759616350090880510005179894247160286089181943693502444500121848191036528956640746621964652771834068549061724131202565924892943023477127579241035769453057802991452605603564187063446393910382022564361938679796006123115567618754272518028416137505725004012268965296697780939767736875992234775736298943599783116560198604635731699228661789256923026043919704936750979180143753563501129820225234280540893237222927608163411251438573350893337898994122626418452907982600259850391912939672466077373980086174996331411965898042398550126261484719621345437032736081285923744869642784458861649656302838429492584969768710585489888584781125414370330593235945645045750735549643558044710895620315612415016581693513177314353140453705721796219543994807508933997168035126907468380491706968135323576103163263034942443286945413102206326173790064017528749774244882653731213531216439882316131408692972453665882958711972499021550898606247541964524713428134797728271679077150544853129390721754288415208016466166228806901248588422662069012347585335247304807662483313253243224245924155520515051073479861940726475920094584752754320445393108244513431098651022966818276857057030501158164669216850794642130612896500862847709047935830743230504222012853869584276262963006509380840858761803782544789296183624359783249835918881413946158448097014723108749615577738429023700108863164925027371980019478766684975491337985666428121566750866394779296341735902283143495336945977391999835015647607635726854759423540309337506575477350081457380508322459518220232472457806188932109693625639069555322293299874846828067821706195312234804956578296061591411958986752857030728244599874681725200561224653100311523788748619337037423142755356167859617159715790156715790165895064788313071195831566521791338098195341653668352786120632809578184641098938031241412568871784424386574018527049069951261208753124463029396064578025775112186630524924302682602627515485810160239676421650391287764963450088078887854312548457068042538506321490172203814309366130096516007171408191246380562639797791463549130158367558782122082051224588013598315055206551608728654988993798627393874367824893429252968227402341153050627549974049518810342219810052272672016536780861031234342407358502162029751288887966037820016622665709390213447688314850072022904809860544613826877160712948489015068369692335309447633241036195498383477233443726409609457529384033983725872498701125846943577373727552816064482732548656328898960453444024389444286009078193332474737454076113611178500213137177631361315433238695423027142351252271991134203082068357445091699717879312756361320148517676942999613894158867744684944136458528625059309329145911793308143934699234863232024786780742103764243863237210980180010250296167325480873546546947107674784010017484247596104176378657348173388593974247596640143870165378559903853982600765628724449448030897963550588377350729337912996182794725301054935059532785091986883223304201259424879257489951842935472125780057816436694277566503489507332275114159835454264521693369554630935276814264745849460929316945882769660752278365478283361093731267402155877149459102593085462962379871803456960155846466248887821892179925935065936562475213835311389733492274818543169673099167603653656979454875909598788641278304597341829669738384842360489182242992941014558941961323552134962955683534358546587181626828777462859836172628640925451068815181854743068906416396924240015746251233663782353515001192156424454968015709398393242261595110152910012739809141376320622400349017988206310739791857242490684844790735947289591981440961398104226543103504875939530179162249198299885908467754691574477677536139654926234835413942797827884747322102691438585355356577190862131276757073034628071365465898412584100033202856927896056111306148378306459287047672983564447969424808450289144288180086414087164930080375512319870820637956753208351386596903962047766844168000434012315714530628201382291367537271471298015782255335500099034761476292031781766101985352679216155487167217455939767115356307999697813934228111132404586332914437349287931954657722561754942010293566124355338099425051181526306759504627705659902870697068559996082839274604857021745549909791940583690502043797830545424726440605496619480305093272197317486621027645553765883780283143763767284323357884172320237063977128834950384733483615759191954671080661252137474164276386955882199665559093391843415554960889430108515264928025127094033620278173764398921223398456221291657510588924756565386424854157438753834764291143060981889062558249236720536816824012173031907015766266441539738746290935498329530814593676010918287209985999550725854687341487092241024388032896691576127068622958145475216814752384326223305416194908710927524055282121011865867302501244678409546903783862510565690538519016724614634868143085284692042430673943921816102513376924099535137858103039717582216511244351800275110380180002646341710802878145173960483934871457776420574588158752127934274850267302323644327877292332942313380603593686224328412721800691600507391742257846540132622692423323258505897831194794375148741264031001037390087872966574332770098804457798743739621600665073411103516932538622286442037636940861467626865488234234529797117943371345024882774201803044641396481957105437098863662106224589312902875069092752988579403750684205280177981084229882689727211504554033115061510515747257975534021326514688378738960509621232689983823797356461184941389863570113973183208202678746202897283266894277477240809726349256134693861275312187188031043640436313853346905124779151635883646508841609314063718640215446059554962653948402862030409330484466166660215006231406208347026501730091946203283916936374451302429097814404574488810930746303362443768151224629411464849694653001852156656835391773226641735506036780859835866477480546758735885130718114457437646548034561719995640548534184393472392126116936554100779870602232780392035305139036677922992445825897706193386144119942230477241845986337516182850206910803647079211062658740443114850479898530311301081108037670592593356039803291332177142952991593460086854601860318109151809317055122949264241583528928605098918462253167284281573952651165610183622384057907372778977089429629316453248625162292051877759418521835331709769511741935288766432394099498073342142383904627008227256449963387428784265130846558064949931531372128696194278434828070064724741949517129208009146508197009527037129784688344263407167195307424458444451020692941463795482341522731577444832608383997604980530996085653852712070345444777386706307953074702044354640481829232459996002801738309923405577885786577051931495340499552601201494849743080765007097558023461831913192659250901443328241256661004922252479777783609823771943920656542273380221804553168619226806053881661590350006053313310060614873088831444049886575670376601367080537662083394947441161079650019875734558037943186256491932895467577234572507919340641356470458570875858208356202659814132515926221756207535946998135427516474991587304704145270416445247837556263750366351685489145541832849584872100018851727818433388802994187341174386553393402948062333382590172636176460313803122398195526593234325012529049146997269325239334185488008559004014471159474551996415832539301664498254513693152250837352863203550149632401433221910585769010413551780072555388293232265980736767223013682011755020552261527649478076351376144173288215852990650221073293325602557698430660904170105630607005390346206175802037396196854476997476983309845565342279916542529591104715649978415364915163430074753558972198093157713018941218527191852936005300897804611614626866103710342407642225060176567606613076047571835194180642404679937377802616872929905656377106208947411408509998962624483048438635234761335941328907865293841685335713552960441469197367306948213848294092797277239674111794633238959417945019921662596928874828689550978146334976050629822405680614965050826012978126847075252110956911958017416520759227827724645150252970891104758397989854249493421685506283556520791994746798324231654174983084525683035515754495925379259629564822309163092218312578107239104541819558622571494323322237624207321693588833110663810017931499849343399301237302114420108839555894450103508512600409980619782100760210067129333486103037521332920701317791681175964636955238709874825137405629056804190268775110869214852179487295251291514001201515540493925933034250427684346913526011274344761706829615128043073127571207472353878768649453964604092641252633933798393284101936769246420862930826852247667687672898565922308368511823640209566175412405088470439743530861583777616823544162223777676665972031977100378089995210197816570522387465352621688423191842308056698826107691202745348365099563786312660765865827647744008448696279289499536799256774543775141897528456010781692201627888447670575765650850508009665585528509985925563038384629562928050503480831206204046359481053077656232562444685011318362951353655562906940270010954199475374061319598038527847066205524828101411295407373083440619909497014330646619782205625641974180474671645306196848920197230990128089910333043707152236928750057606103015002116285754747662992794487770674797966689135543400415048117472260968208079811969526652436063891055286891745136375883872342414296000557927284241627159134353235162362991847988631496572885478470054534084545324632843507020143259986217519274697561786381001341331842345884560222277058310232310398203171665047412720409290692710668030906432606006431662881936168372545308994376002718034126770233346465624429416808940905939320428065104597012993663657991645798680688848882224026122293994122223026223490373885559092217109753907563317280749843131963722315254931681258088464033332218206380859443330999297938605582321866600821518303674063237841979493562006822483088638673585782819704849986585369577760761261742100928195720462026662732686340793473177365615217557795232415109177211687931559699242562193605349042550627005603637269869839201414130398157428728207215101528062232107561152178480126510753647436824663899972200275668606534253403750738356529391066658076749208380646080019889764969690727102284855704039405817879759048257454755140441641952314504390738787607259862015691506816635392698801102054181413636641673382389348855500381113585730674215069968786718673562622089025462843442324317713470288025496394524249619460857070853786727291133464839914327548889710765445595823517707544907586186210081696416783886041657098061867967049160708787517589263311503931592181307798054871964050281892066316467402684648789506734565165171753031128998777779292053971027315745620285362841482999903213184499489559070793133639296940330287389064524783716025565431060018451628153955349706031126015720929525082313840257752948481106972121801978832060980266944807875464348068169268997717714815491248931043251971527644022854107519240351821272754241856331529667509947335153494369117699122008675964982960003579233406749832002248462497884216106673973185103159225326506527341879378354012513372577229259701792751241439586240065208900310597902401611887588630119933802326649778414425457419646447953885078772212741318120724847045049463150283331300652462527837242930724039332463922987761477500251937995704888640986756721418042387342507412303793453609467774990282382857243484895734869109197411793135105909899565457739055803132765532306201895194673467612652715387363409487267737237595664345817817378995642727839084410634771990698125805072745151940581632543486185401536910530070900966680562522549891602617691076457358470889686619214803676373005730407018484681219080839313153347944924112151916980962195368043015381949712246426511220849137634856465131493780575731408030997988808290745524137167054260524364104083820364349611980616184629657858031298212743624787361442110300311737874891151058021113894211834792794586864746456806717674193247723888859191059030743651158557543544549547991823394533668351020102377560598318398108447777394056493423531661295437630689677013988184468551640246203864653989231732856360354249743426562530215034926637040069954703683387408784261318486607598041223791501642153008997709079607215126861714072407788258836456653567914284231083985921654642059204890997074082859364964870528914572142901782695874275881173191574213800619421533439434217567580549263858200225787543839261956052679116746780403317401877589177167811415100525766430974394604272612223414345701074047147432063530122922690549569272938543368047796464457749444745687574685846432731431950163110666491165239173607698142026896851268112140003046835855548207775416611947403217218155433287610576074949827947142128771141099281981230700086587559702813736425784671098398724157558059801376117406209993670468801440582455275832674522398763271001872889966525788284962843209222012143767648943852345169044889308323900441393491547832907263570750952216205530125556131637608590147013600753482557833628975126837854659024042872787896213168030977326859699526486261902712941385989157540852635896659171917001388438345060446454265497087091135450229976129401514365973359202304365287313994934714433797369634986134461354378188954687360923420703396751193010509985001364974444254340594008523324892608136905632247274915941293540502631474483867147385744924621999661518841720556686726198699103911124164797969489808114176553115384538979314817395241895566332174733600366929542145245913688066998861976118103716263487925934178133496881676182954607364920073934089088755167961127348016432659478321174648105254499349840214296590634488118942626461371900759443361198778106088725981256849320552610483909163539175209165256243379278899954780102950173474145333049702010211045306350829217288477239807256710483066584892174537014185984471107567250148108981831456087471239071487943831044471970745289259000774956608469348518627311560282098407139333413541599157186834903412504271352301560512343290656456051176628156378428822569256973743433897256500903961967688955709172890847147135098997525921788985876041197900411197579489581656511458516665842717091830411377546698284790756207148530468668003031201752668869971129709171390270862412948221993571697180784653917501703025111419076650829215529401903902641514741046207156686213548123719353385844630751613552972906351131434856593611455897985164836265412301893391411534415705590117029386796117280813050647716637790712482821383967894164189099071290691358262968065607060979310920569176706116679220247884613207544509032688741947012574973326626861745027532233906241903876410690636840952161674045257443735315617151878900568227814856410749556169671653500084533554996987377474056269779004054255070658383947903903109001276208089879225960530862869266862046499621833225120581844934827952661094106940613483046608779729329190423089270684270872671179308144559035627565741953550394194556806544810845885045983326157508909621951409359054691294368271589060388007707303535748645864968834249037008252300139006838433057507287055056580289247421864310676159352431699489263009311979802300564826944020017852682825649885436090378857202810818623418821278287301218515146227702331587321377553875907902278502592291578515740417353514665424258517078457036794221493630981904480601107567336254614357536908376149451468685864613764619769540905063867094860897879825920919484957997332700161170365492738339145790860986185849513823793028347964701974495295711000054978897771838467852317983436293013633593744740518042711670920266526691204130091199369123161985736897297788087009906605094185406329969183385530265596979160757483488678511087933325728036096085114574418127970995551420707904196895264230778502677006210473840078595755031435206465165365262209758968477417286844970211164938934483839533611544794592424075326371228843512087696085379508116377823446604593615162688690594717316303913880292151685224909724848300303568023741324702357563619388524146248209479023594080729498690786644740915961296351948001012280167975698315559342325802583016455189347825900979405180124169444358959989727389189909128808807339772697986690744308542972350235777964860404170915820502934375285527257441178291838789301702554958400190122882515949752433071353674830509416389057976490223653743428866069770381725585662781197411342813174890585180047105976580613748843742868270515687255953507509352731769242009906299020658353514769327798159973211368831053254295337217428537699350733757014795219263299127665095785295917467919023191499775913967883387692490074148108039915346624026561148484481181029734823404999593775381028759817016335520621236732533452337701111618499223259252088436219507057959074835641942943763276566146480044371939685188722985555218974148836061504919369279421052528067254922946969574872839119011044887782934087151350994062461627270351089660054645945812588351624823712778378945153819187049573419361854787849246015474606580608764575458009672195828827371203453857846370690355281718582959616114696274824880857426747301483403905375466058842808450896553694394491049022424636854841210288956812436895745177216119339846633389633933126484268519374723997214630968658350575487532989017330505912762218155736418964167650102705546370252882120708226256095089600522910173508814468227081590687711953243328568423795829769642956133027455807233941152025599870205989564960876291418531902360438314769972998089075860216785239007326182929929481135617409854119381752117799285852196826812089164001733724391044434648709801982249631998491776277202300668935325474793618612788397218627205604539440651953659806489882195818663264860209108482105468138979978858344831518471307457921180024224277761748238931344983025550642232744557685493530469604840987848884207599814352339172900872943188803877787557197558052573728573114866819342138361444233399312833018635952647134377867182705993232685925758081916966823303373392282177220535921966234610960441819097845755522523502697604406830845597843496860073785576728204088650513509087876914249928556509282064320286808452672805442727233665876823305098439711747860237584622336593158294790214249911849618735726860058532978367881822953527264722557006995479853028645132603669704841708796747881717914963439033175849212526330519734326880434625721139235643142850665856727380784506204333931710448681948460078687186393740022958719445613770308088288714999451786175869810627153867141109065799775298274222930477471179263612795591334768780171258224463610036881741535454167976752755142503166878760856429124406375055332026943935223977172722349594368296980390021542379747920587699223090556585802217586338797140811614101783386392628935837092475968357711209502613478389637646438878980364705864501153708219673751672098355965848972141286512291701619405277603647494792433903080947012009190474624976926643299543389923474186996933400385453162274148176461755240667570045422975201540857842330783572744256556468665379310770984300424041377334660202880710611458325164130342353498680011800551306732125903238191690880177872402855234880131574988343387801232337359438491084350003034234095163513232332610910211051710967417548650642261976514831638709844552664323800143822938778679297844723788412673574347986474262857259981886084374069202528104818961118280214648033722883138068825962034522250034213824829602430575881957620983479949508851174553361353918228605652500933118586390282299619647024835516521951177006281525282980374931844415149295344450061143186888440894505068036884273614893167372546707376939212998002282608156342482757262376416597155952149470825237085971809766129167030110613190128822159176383784190278792258001017952573852513057131300694101291811291416933987765062198158652136507734811521466626184523127681477847147005646412439444633922586736684446807919438378864920676766767391820041372347840633761744538321714889172040314951378394309004459031501533626891646268694797979106376387936731266833981962052377885082344194993557935688850211704932192543880174659699562184534046765789851604611791433767353790535730500094923708327138659754286317019948125398299269501410542306601275135948406521631178750501708769217223750853728763684741529407385727834983428124335461663034523688960631380698179397310719647537641269172227176062655785020857156289966572721438567663007490554996670989805250779366586232611410372121651234714070392846109499074103520166348415357313879842135511513038713629424988450975024734935376312267741350324493220225242441955881029125185578688665400363977924882477197995252987928576364752278311609179346152576553340359209556181076803076406215992227886920409581607963185296371356244447078294650202975892335320603960227003696900387103361030870360075244163518201464137758351723350955703953295490176169102096146431394443537687852393417299871880699862061802476076761536541862010151572443803532254552919575237008413601602197609339401086597949121162681007095553454214255802048484995580441474262393684087817586803882473387813802392701080128674104813867632894231844125695320875133146154992506226522477366611537846990355754516162795513047507800615505802751405085710040999865002104169721036716480498950926021530777169204064727100157758060678294623154342194828479697988513313245863112877995356448470110578112128008821822134616519039165839352955550165175941612043755928390325409327573775277801041511483016242873553955736319307322901165811787419975486706596274889680273086303877708648052362483567626607795716250382415170594521815097181780613812998799176681317694941247044144045301659357105403637571104292917150394087149241566577403659205573912509212255821345200093992473319450978918540577941650361545265752814352422323273842790959357449547500398090680496502250398648329652465263909851389087964035540225740632865458361489823927151213089199008644882198075236877692325408417461824000925434102819560275048541267342695082976700766937178316752579395949530123454288722012901030855227338074825231075824985902380055041366854539627610386933351865278628627718291202184754185969138461705711610077049907890236635895061698386873877843237566904538630973145697143820892892928196386886144054860688133573378698789237033621946402163860736858052538918293624048307664051601673137237179447527354011057619869091663574460703492568549510200935514248385761170056149577585252045870256651318484692050648377935507946662879802235381582357921884338030140233998107485148342687745179436249603734714070976500935099222990326309945516776771734045641377632588153880751339972052282533691588806661993316034217072666235293151493293931486987507308886437859558002075985961833750632996220576785788899658823818161275387272082965299338855651189703644838702426488954116681875040596466324429112846998193449773574204617836728912997170600200217793514543317719877188102367693036908401483570902226037548597555884433404602047112263524422447444948847351432942830248836598506539468619373094847776489887849063086073719052045631738027183042601883297679439346284842244297002525556766525059164962356951655953891358548240628703610556865144835506703284869931942514252862954354929927477445284966205859389904725472460411545999450235948459342947695277083957404784955252595702593363258411267656821125922010546001989735636077717476901396356614167071689083747515558464156627622128830164038657372740408729589955773148787237534644584079293437107628395139385482618377734157620842675220956823457675783664314822748630027772023477618912573371685283228120578609183113126761085852529258263580498768818000410642555789741268081283296793018802731101888906625561751993764317182349510351192795448002705240415543235884329864058554248145810377947051489067485551444453776946474665881648369659298988249007094876004403159225078268958253144295458756867940176978474696452816323430320435235708893948759722163646330138632328402946348247285427200495871108392501520489738478893190311695157824466665807810926016627881541876642481524807905076190504132828026451598245745853948040362628091384967281298262958813930753456910935024547719832352009022810797395695142094857486669217407970411373994928078985954992589634353862188915447456396532789832839318526966920150213138256519490335786783695818394642566879182912867703608907714715696244205339119471298707740936661793860820458672806159358140059930925234730365476559133211744576265641827601193928505504243555305499203254377136446844791894617163448640797873209550862850113845247838023684365155153500093660304239686457261018280447623592505868488781112950093933223348781327945972300640993585364896122104399594131242140668448973787972154472325738159398081964568939160439780054421370892181444223131117861776796844263008573827543321842741097165767933002364279697217312546527926493816084775542550898718934375536380725160674804195075424352712361024559031642258153611599428241865117942662057483532675903584086495950172735422267918707492778182831165472438030029193978141365093414259573315549572475330535872525580453949061837373753853884510328299488118595043986867760882989355476380296088832666497207480976815232381395468767918038767875983794693901590563853825141115156388625606258539903761587950520542271777440390732825402532308474754284205264859111237848547228573985528194917231041072225599177347734992969290661803556324884471423937709355689681870482308975675670276357112592829029842819645710231064783984934051527052484746794949036661275210827488258691531899195215887689348089201954183118892334080141239280759103199402668306083783623590525582397939529468509144657546956439497319531844655268006190793578808756166584525751964927664453723010867493438396909130363149734198202834951764915986110184801422792151527321102286266008191712281626632265465891290731001972147963999306515496678837558306800226977535587980653452075821878323845896047297362174933160237419364399258700743318502766486392737010696654055886687458712023089875370443454447569332200207851824626408190676102910175624126454982207902232024721091244534144923242002946588015558500853152832343469790524531459685698608139813936576319005236558371440273838540814345182533863908914676717589443577724443954348019320433229535655154908030325746147049813492665921293354506361845640477322714137991254280307492850244452187833170828081831199816004160726622115194825854653199025529090661241918026247074734759956322060459539019301884669544597612156854235743146183053637962514597974529423857173338127321067326717758832219622929195077785836867053046614945983744403265696789601778790354250382310124369819346662195122780769782015953196451480256097347337616775749383217213552734415910064767973714869809390999938493257587203280822772144559038205695962646944220066668212288020642832838532627013832531022810922700621304567443589465026655544331769630715258120270810171870753594963466780413600207373199359961197823885191436181979540814636877786757091298364551831747598214615860365305702098088813514790596297461202584775814667452071806300471469271449719121228968668036326270318958046596301607215781172585197560905128394297789585070332271536963699451888094201400718561879313289241113094720245549939519477097858870733890189459550415981941763517315535953600055526668865835106387711619005575656108996037233411887951422019583844499282068545633968319959870325313480962055697162135658697302272025981212698889188143659121499147404355267092768913930952657214092618376930123713409457494816565812636167771814965025302244670289354548819990907074999986997832510131570735082215110489464334442727127293040890985598139998009025253740704245470248352638591663155553256332204137807674333598753614558926699973461942845419507835209320406620038488147356670901819909536005101765702375368757305334627458080975675460851101599057049290911908604279139497636394693683958913715903193870819747700782334094971967483019505429916874572369730059705703354827048329465465090651387071389872330351587777839958137773652262484005226202582031899943487407240326868644626737426638809391067350898873289008112210698405569260806500602623361689861846044301811379178469418134890302066727230281520156325695199651259035513395080228080348614172838249822826358220096959386253301033084903391092964177033989176135979320015584426009626817310979208516018112192513198075469773596373649521184848778251968990227303773420706455081015482154771156239984882124527359434603132406733580748821092390744259290957499219679743792511239713563033388706832302326652747592246968656891213587701181471786872255536866210204389960587439571540162329092722077668165736529848655466151767346704182625111348448670240026100421416155722034299302495291365781501484064151340628048505620599610888944793422522332998373298904833283735182982605580697596585326621595437957268058648429080966411975998386220159158518744569800579012358793623722692128355959788675523978971227075063045506146285133002597622947818997274382261002042697548994878732119719861385655480363849073878584136194147846957981722917415893940938531444406558088197551021880039239189220086320825185133776825439351176065283177154529604249767812673388543939455599200832252566220973698609642554803732658423532046483718510278301912739317190450777097702290203926859353320679996255718637671297301572297253393580379065063242057120987299733850066363514540788817707636466687229004007332018507289342922209074495710840183091358506332518815234623517563983010822774427037952186212697032532508271889400112933059213016142085054768364040449217903595171368295403648968980988418275909588840851146636149683483508245805641277924067935998770666035184966445653132588536850009661854287359761176512324931545333845784555831041470446634924311631557183897350163881401087830019617885462575663795986426208567295414551183803728162028713070892090384624086397648643984679372458191883232220400837879735950495965208444326726878641268423092374671284899129963108892099233836921007948058764916092009981519199418646311006755351705111670026322931868507398135394728235312149514410389323775180105109007263276204762387677377598581237622936049231035818258133242718665440802178120680845586085612781734892623409297982815154442271608424064828109950421739450714338766971982234874332119118587972347173796232954466379172519487411424824259866504903101855487540813616496717024462320111605560390063059649912888605518732119485463661635816380057923987157944416807895460629438122768336216719276823182567838895776100520484356755349666638722322400145082960765156818732281191684266878189228008097003598861191870968118743168890173735909456616024875295720882961536006012691867321073463506760465505803806948775327838256575283991172958384994603201623867412179606867110645616984216940710368787459249657506513732084424688372597057310162073843261839004583936697586112938642966065000663496879704821068487142700300637736875705126451379718451775761997456257365253298300533461223415829423746694251961008254727370581784974103761901133102236639789399784819236323919642807800275518791849166561147622010256616866791715629791455475181887683093927368359063291994513634472257655937117272081108157025391241758805686726149302062167296361909640983250189184771528352029377733803694104082720797673559752361643417943140181475918810727650434928927764683948478291710335116720759409384206368871213797715516955235320121198093720488230085371325830477736881405859861939384848188004507840373473520682041460771280805440782575350302595653134588625835443405661508766948565474281206509308295614863443240249918759248807372031434312142625775110550383168663814376359389750659741703289755881399471679081266648329090742064564594897380177742832016492078236077568777596817627296179762736955303404899169032284844888163829782317162758964045896097954848912225576743814729200235362089273393137819548439539601539599879030926896480551882752740361281640989816899695626687618104182322377560119291978281194150261248767870680683978858882042928244843453184005975561149211201086931859769940914063471654465107117131659669116219117097737397609885466781036129592091161922280528283454549335168922300712019368762407022370230623571096151339161991606093187826346926248918319668843030926114919018498524563321005808033070392201825063382217492822558059209356600652315541756067897868853304382987397808966289175814969888217118318950532281865996841879632956459179776857276101203331031742718685275637465678797042497324129877523575638953126515230956427494278248339918509547193160075141948050571653573869461008597917918602555574620691372020436763884081566238010904185784849401424997877831160664159934274251609063334195011557501639403242360560152010476777235291931179097974906770947545041486459309822621730481338348045546379821951292197912690432537466416015989393676798495138204405976092354466941414858007269209813324811327229446359280440846748537300323845448124677518006041115118686365728131773961316575570056074134175438059207881358253206609176670298224512145648359790317148605059063114067366977465306328508097117867827786584395915978841238480698901696308263797101812570420546692769647570882676049611354836176905416444951918629457831306045275500800499651333177844329766297530564918217144266869880516491855477795465659181700418750334246737622312081913697864218508241787871901040478560496271569491804706269569619118161841515433503865036823957973830060506358905942193677723672166874790474524466582013787191008265703785249875384355671254221863490365874323835593094508116674912563008878345436766485194216733967935378556456812918427795041304271867565246436269119970975649745011009070656713497847168207657885712282581596580056301113989264473494644296423863273658831986290649197821409442843241693412459959045925640950088726749485476070566250769114927638835938780613610040338120534052534439573832323262070379881106738790764040462247972349179721318506872923511973303145585703828291496943679173745292025667641606705314960630228029617376721839214828807173831369029807008337291967689304542100844621840293921790321909287359835178942162663593611828736190818765835665315290627374066736816485360480461401859581516474929711295238772123280799010668375725469149703153638969705862866276060151254979314315331391327531284587153927673442475163565277375496786751757769487246713700773841764940383656628604530694473257954085170596992118627656489215638970858557718256382452759209085862980676729196238292989685854232778304754980279196023657747956056362030979900754649614111155834903322784010612254907302631033539346328564694487115431038674249072180256047001212847321956794682119550367947471430329742102340894358870961559409110490546984253936503482924912600322551814513167781384017137841595430186652757131445301155762513346575837767627002743516397302371020762021196294193993386813762620222598086400529336087335391479582170682313489039793037006102635892082255550756033797860374464795401437894547221249155904291934933451967475766927798426820938750765527839159705703822457686453145265710501176533345175796640197068759962695396401883720990055741194165609989743404546011114244018389326025775247804336588333767596871897745532281283733702542319781489941033340780852129952038601689933376866585725595455212134052687180922614368628842498271322043760023629881708236314878366909622830861088318722025680174668874106241345504025167288218394472807786134891046368624932364014024240611404466870874003876329872416805129279533869314665685940335536101738449909579138522721460346529480944674740777337769058470798365387143315343807028415046797680951212206244900574797790489537009568866074855949536567252795174712136860264023516824596006438003160980113639174886432124711470142169310351514965366152882804686668254351840761974766727522206870002751634320524640574255480583504892699954818320194129663392899523525001044317956960768553339804601620517160918006999415935742610670831777751111112991688171242355355477333444382992300898033911201508976051574322613424980417324126853608161055141418318781099918145890300968418621675251028632640685796781551136831269348551878616262865341093847477985414778079224794747023719236232030234944431093920980163991115151161355669589265148009162819488589180198684568795673947860736566872962392922615421819551645353270568615021701403159446254299307832324419728565605204065974294100689361394659041792930288622186914007268479728576222452008261677156092196503423560788846257910503235852170273731968001421246176420341327257199895719917553887910395586889798332093905307829974485753379093872881271567264036631208303173517700392422360925521900893333406658599733896296355624086373692146185683879247386892114485425444694818517864183101219643119572657103563640728303260411116660837023048277922907609327038213479232135128296019014146025989792833731603131368849074565577077758665116510738053291020049687176872447610474264281211457478895768221326983431999646395623322916970909582379204955630047944626176050983821139387942737841743920159733000667338733658107934777686379107935779520411782168091878090012652952730065648425408854701697182161872979193282236961257905472214310939352494151702200203852896933088666410718306688397928497727911937850630226849756995833868621051012295112083643781980352626111281821983144732576701022369655772604870383010936892442298229434335590917523338380296542478315572155918764899265740622010702921129899046573099883987566972766666167055843682807370104031303932511006131857591822201126030813165983998899968478001506143869714464315833378343110844255411693612195760890699501853829028671180934733046186650342377964765213650955798876354803611156932304188365922159205035038478181770368444133857134889184704986398262914234190941996363656889061597331608469074776779654716249485453575422084033093872400492560557161270083544278527746716861615106323318478588967248398356575255439450727535822631583327062330875009196386180072537009710851610487868833216425559208368387578914399140869347884468992123289069089325735792056478660079094477275616040842816905701496108514988946354530409516686348384985727644543080969773797789970438947494852453944171461013377999795729928044604026672904322981492540543199151167256866675742768075778353542244604957465532017945400723548888057657451033153430202952469638246963256758332204231785098912843550693211234249648146526069187472620272830491132849168444202086453871944497474398524965418772126549371439532594611377123455775477784897188053757912525061957401515905490832677566552868828710609044313847357219584101601424691264630057221225882380961087103943048929052958415681840275469000685426955980454773381763500436726473924434327043415825084024491477075331758379657576756788307402245639806321146510601540315347729695093184394186943720893917006758811212664509130717698139730973788044564207529232615195904055471251960628426165041068911036491378753096309088810563809607371739845093007955767312631839308589861202570266457264659855749141643250970980581854000668668227942401490252264672579301420212088919115451935848648769368013302826689422515256795975862631306580427089039373171919370407812988550368311128439489899452422313820429081789366644175436318305864443946081998806570595551819180575690967210264821042612148743930682072086543665279014430784156399289780148628429667314982866048972400112352594764243040907000863012948271187429915697019579227326951078225432933468957561946405533416149991402712667481227193364825017205003289382210939302161825880200757478332027795655228169806089486978285658728219541048186032302488885249458621099041115105326164315640284615557668271815080478003856824990457156050945617296099647889622090162658272085050354029255000877301660750712329311158396384193915016439744264055476823863571534065752907689330298977979894583718748987459165112126244588459000308191544153292877503710377553701553430580405196509896658150775790856352628707927102926639788636177736901149591228320477422735396765023079873368944132156193973347126151255767716403464695141471615068009218877869485673843615243379423045472667473171243225481325560268560504180346719429948112380335811273511669551800329026927659050066918421728999306381121761783465697662517080557721928279079507562933051585537633572003272440119887461454653965228349187339519970370519094914340498158249882272181456932193604625910307664082824103135342373192109478455400151844622596104537294580542349284013985599505572509241482816585984658892925678931889652174002383282342808307817172551037061646973974588544683901498748943031603132768642153272851758746056540093543918796085848189253758479641928711138124357015515865730225914293095670972528873848993750215089706105688525796120843485000414265646848456285313621634073990464059841477986627125779021235310902279670622641524944976769394762172692308406752219833531045523741026433853774022951397230416564909162873770079646457491748142668226543802859347288805416242987286182178626254870208577378674805240835792185689301630424884551917682762221743152690442616756730807472455275638654085586521120392962905617687685094222091894991832713621672267979468353524954927739462130289796090524202035299533513015246688850740310391312323834265720337236970272676292569832796648397470808049033903512598830225734165238540013429479301458893449279062458390024730091777056827845506256790728600322062273468725485546180703192917302093703722344778999263497835873619405681672500408184957980313401892173676689840706871111607268002257167717463179077504565828364689935226019733565224355619098924710121388049510155995649621645345379810573093437722921593401855574874234472453334246695302310883565535537665005504645735774081679970992973510243446777171085696042339601432306758374978123504895072441665966801933102091980671271871296130385410684805757250620397854047391026359085263997424998122742161570780282247974731925564416003092959395191055179316674661818733102835287098320155705184658212388370634907919307899261168807582272014824630868708874284516439412693525006809483100752534228803330919151482015744172691678976564731151533668314357993328422889371871061767918683676572838538811583897889476642154556901817049783289691699736486768094424375257492098016718384907252566565092584758279437983273674373345656196640251866180884453339118252250279957326222361358072709032136713147588565384975110284563593693208077812611007008661249799909137296391728711912708024042169794768964020913051590952825117786591363345075146796015813407105791276378030378015103829744431159531863396775709053439924718205769267583922263837858182841078579187721585790832391284260420829854180336327171058394231132094475625379713466859837594469145600728094225251366120088822034750082328789271523943325962596471936861908563586384073948558152384293599591736415485403214456664851797676253667207404610264554462367651274809540304122942395457678447450113074924166658652001208330482350153273123494188005328279320819030185949041712779040350768385063570095696398514143724285536849712048198263245685833862212249477388321135797848549445581536440561649543058647806926502442346459096054171133723695660004841084519965544658637438673031792872997411046244205813169444143121943841648353804284058810525527124480421123074031719135563639583031565525546650107124578974710186769870590305591236640993207303201260612503827927776784523094444437815745547929211141302037679450066464879943517644190771508660397394085890475706468503749755373856196099034958691375410315414666637419192711978866361113281551673415728445491393688724543743470932156042092261422588750179376764036736355349211176305524733595306143476775152128716475288001946234700473586399254985601228855828876539164820399382904884010147706028456965431573258817339447979024801778979624244719109877689552838327969494037116168585873220993147681424462644749452998079987968047221470524479040755843593871177589048365572426699406267877147187601389429184565923815326964783281384627709247972710862981394116089706363483928285231693641774137223983517888646103734858890925915045492022969730218318565052677650622151270533012487144105732358652311191294499986596723199260093662624784056365952101228269821727386820680595241418918766518270649060639603964926591261040478586828235772555703207352024133270657555242147305735123943184777144972401191069594673433199587562044472089084181462878395119809521687281846329545678764730556639115884966063406851190079769297438314717644329055406761726717158165054071265234926794284560686278011737058468434368507306965920382431986803659426886812192867394857191213132609778126233640715375605573518615351568720005495243216022000932129173971813508588274003692624873360400377484590653295134651451956918954406114021355217391184649154386717223427589577859606094107586397310710491959627573992839530458276937468837673399668232126834976147605283358076883165442657413606080576286935793118202642881386797406927068810284595544509764912254314854022354261188315346145108270144911553063017145339644052041375910493953717578764432781292562132036912073080888179909660690270878245703373763015028709637766064489227673684561666165148950073336049164341060402937540036085534598036509005020619977088087672401337242676994900653071093218341671294577562969963596351738975405504037437130172806890120531251866336741074108145446338913931013391843268089090386015857120190069850831911924526784161101199315308522990795676695324161015493623355236733806306483870958075355768206335248771886974237507843504703650874683506097094667445990711068767407229468280881204375642844886491630149758022703022928499689322002718975176035655037074715106264002620470378020900395689952132678190637387415164326013184769762311368185499576873000567956419004850689475763992043653804028018360094452264018889437462321789063733714103686083376366608858297406587583488387929452044992897511481754077727600292927955106445259115314449331310687535655775765339676425254911448856095075468286537048908093406053502249532770047469339390074930819297698617558843089388228279492867530048091656749604072528599213736833600718089122693694283638289767409541146103012497052902329671678033288176360506156545122146956570069779884232039285834699716747571680020022147763387828205518270646593472770024879344419827798397880446065645271491861506936340688475579466286089170864447135736126135088275165722179349831485591915009275974909696613566856327162409894100048032748290159756711009111983203038934293446720087285185711231410272682189916328344223920243074334266358514401483242004122681611627703604058709020265859622548728591504839974755194723252439924249743397885488408674330127222877745906191285240748920902883080976384308263970781608586099586925414441786047523909406607691460440030577844282654650349134033266393656474135621719269197103748590042476079384833210395237808160939199722821313052418845023780537374520324679468296511720280712011939612179232127437681605166046921100388748867042444084471554848927856226456148423922358656567843965639574932496437351775016134982913298437829870155252641814345124653329306926540829090904509863174219125724237748113159022111705204230832684213868238321680273064579845766441219929862647276383126248667201988820053147286717409254128409267548743207467150692664981507359913350346978044990741391578705634799327582426094990638512734196650439474681552375177069020540137201718034047843290211690174180862000368401286743947478504512312476930139992430791446399630592553101926427826769171738019862180023239259387772398123394849900879894316714263956981896242722472938741624691021786809450087548146517765298403049778089544495627709984337696979460436734554718024304826891200923828544551888065508210071242440843050980322125322207325996319414197545925558360507175366883652088857595520863922262884468626973956663409675698509220342857430731982576933504397754091782252020774319376114832341405457618188498733442732606901364886810810677592217525858175543235911152005228508586078679501456202574143443659919211526102737884935033212971230979533964553389402750279983442136234822836979140572600316081685774239916620756176569487782989243892495439766978245197540570912597886063097773471621526972371937540341545861715415005252566685624048102720271452517953576667648382974225284105338044551659678510001574420663517492932131415419425843618169686967694912770814137048267310036111249872821389854785464236112431189339573951774170899388038334211080665087232068644701304550747521183384237466289248093853851225153384555415247762981015643538916234942988980205319097699491889445283096529957503850326855094838550733832830916928250335880054795976736262307487358554446533217262779612930784415760754753349672936113436267758489941314882830964936365407421820865260582241631356443190898301713805595139416047680022634316121810100398528951778672224120670166215721409893273774663885971077743470895223120698682388220301034461124674732356870444160191327420739500772977486587609728047651710574581601039181177509317194296631903359065906206229962120195363487225894829333342065385904818952520606057389379482171993254733672074458210911606135647428425572041631733086806576969730961484288240725989916840690814913008844162944508460079658177974257113454345009347462150477047951236281887041162270809496480739930442941821677189140872008332679030883612594174145328697270154711672103314809902976861828692225404935550664997103015712849169172997810892194319422476815232787202921614579113199306473291251947572717429735923033840747752785169490754395606630644628241831472521164441505921598919555245101181654658534813738646785865277806781384244580236775210644886746803610282112588138544632204875845477085212609523503738914225838370929871197312467101506434852231334704244431751023377114859870592317734772295469314691351624814945449305017919731310711595249963409601485634618314272556000546724308305668194791864047408869513130040380283211384987924465105647421988842695365538283664990953636706274290159607113592005872678631080374935987704920114733146925978192856728278469581088698647679139617962681700119056981586678578787664233606206307981660105621905179612690145918933141674995183651998294002136208011547704079864744366276199374747455339082051853726993837869528454697711569950758817459690148898409860157945384381667783989037491066849223756810028157727945191344136702120861955793723086548988228954258384209449375971591425494437255218327843051234437674483177162724081997303160202998080368821598707912644376342225437671424066555691945858024936958173332877158829449269879959684645262920846324044367386167640248205715930445371756648815955442711769360591854663077661100432251231293456184289649420197847853396611725273299926543736269409291811425201517414808654024109408967008602787187316867786294313387732195255366436214470404082652093465155830284918659231932737678755838303058649494292124564780268754710388670031017485840282438776885930683685676356238008395496454039201573586644929447162389260233541328671640446499582493479055916170610493668690140323861059352841596708656138115839447607574673274227519161836865084858962229106440367111500304755522149346734054297975947835849414416904628415850717575700708512320803307065917362898588366534516226696956460607354165061839207567437988060533362302774323599737370443972242730420837900077508371688990261989200232012451819336811726135051372079182698889995131281595436567154825092351971710769727428596607593685447627290121441309385131252084240584364442707481704107357182346066927290837456525284716114335320483240878085972180721126368908520871708493718587945085890096730043186238968823436310467293411591774998803984406382723979384003152750281930923441862775350099452893404380224072266118773482679535051164931135501323822733385755271026171369055505344368577572155633470777131588859079520966218083633286151587002307866791744544972430815904211023267332090487478990907759531747067296044843192377220710811739986214781740283150681702730488412096072165154739595750258354608781702918778455993535714360742414102082391760165914892799005388256684273558304062707508351577171697705196854664873557341476917431400855323651433353319328378979992744165431012808440043708029747710869093229593472414751689618420250316551400918266205807525715322479011686154635450845348748679458543222598129630407805703555350325731949845593279495051485448360180988878477136797940193267015500504324075391758715866595015980549138813606166912806283187776191084370810115426268138175118106238561235051883812466680712407078796465562669713905502127894179865781517394772967891253251412019514512368743695622892155648993328317897018099527838196720801726073530381703884953011887767033955954671347832242806493095117170838874547388760223357932835746908058594257546295448558579223149030863011055154989861580939611135717472059471335278468191325410171037787121257957073981235179132889362534210215149679287803620163506961427157988823805960048964951373985544482143043769425254220407924011083014808134118255653794540359118034531359934644086809737206922055470289996391369228859315776012140229129392644617379772428013259913421384486921741803163786576733606052124365041470248222870232282599148060117796742877749268598079358013878331961870443882371126943298885579427728719420955867677850015372061049322915273855480929482618546471263896380520142043797630268545744161395594542303676426707833166628154050870822532320939546213721344636031577605960625889693650395187405510030708929607454555480706735812706346790338266562449355898002643708654494973215500754652370147557424526744840859216180187453587744020804730818283345056917342355396022410104843992821582288535006664463908791113440526837674556135466378601747591202832034580743211481038020564984672341697421939218681239982301794659258970219420740219774367386139877432038056742694747258641663191401770021228111888874777309892477551539321121489489612578273667497312052157819392119874756015730889746483647973134249908658550761006447691016137771620105090941107111090297570210829532893778080742639785193802336032121462080210029803702438773753000402942173257998010519161589052570701391338577476112392469718031615538399431233643493864471585587288176000366573845832993843922327255775914184988292875194495222744405070728921731209356934722510674842105802898265194680839014570457394435759249039821217389352116939698734828786982146433090007237696649009282149516934342686626069695286577037678760517132085664259009017757300065160318174507087879495424436180153628949089549614784736297973278440771611458162713665635199841952828896777938950732083648650250106008492321121120322226898257326153155750474466854581292423465776774791706505120942487884576613952711931059220134811801467774869311652678439683843553545743279893651262108763009155396758721938856669005507129205548009939390498533983809695816848008742787629078309540922430124005241984307167414386366043686593748152052105475385959987432949907504669321007730182946416413588190968600520309144530904798556336328908960445146847378082441405456037296802447893620156498781900806592417593412806246197915263692645401561378086135030684288508692637829121945146783953279369483990591426882271430588809330629429397327738574417522317519473678686112560439805982443292597893697135118836107283667427398631344117347544296028837921866889080625014424434164087829290786073782881971841501051382733298265329902110632242537442811837693347961544477855951876694443867592207453624649746419552198736995817265722063559136382424904594387743496540339007793364063061186786120137698400947408791704107484908640770408452001549597620916870496413815621875538937057654682665824553902602779538783011033713788219993603623071066568116880470231729371182106395603370661027506555755027799333096739424071034737317950920396181192611962916150123637056307781298921204444258406303487490137041451942692262489648075856822148932798433108757250323939042264784458408990438070844177934339657070411252796875888399434730789177814050729948865957198944258959840682474919218319948109460893625123619770345855854094297099991902170442815926851279339840635156327304797742083663770141720536898671419142657251003389977317934861132894408451390530194621428403859521661631722972995281841929853094428696168682085366947007359282566129762050160993223309428475527643216739058823140641602165098738021515560971668610029384158841106256868208008207467684990598541337860502859480199767469588345297332381144919696986063311359393312772838869344835694398209400583254715822485851176090402570105860629181546002524760260838080506756673523280506749226823326017039453714426387710150865026496072217819804986048447818533789763243026456894950033353846659581698545764182930528723023122585904906706395080836018668802557220913566003942836096359085334378526666998391438703008122105696334955787409745949006611536340695974657406970173901278869643387479767096019378765751547778266852123800378030504413973257950807326551021890544573705990157435381071631702490185757486373372242822354817221146410696480365144179935128144002554066118271058124722418398894292874763478872741390535875050860021036566468117792495812772389532734022167388846517963031909992870886578675762688063807025771767626051085947464126066844761703078924497972038884968453085302733539333583096014269158104676509783106944984223142158681493172745347142209490840204370103777997204286995230752925913453288406256166374354679081292082077217715404885693182200443045726348548283447078971841339471236862827474772320763800532645909749406211714992196050503800830833454190616932703970584268049696982449448716502808247509909293421820651639553134524157590696375263883094520390160792495752929202981914617938361872001801250780188879984884602710024209904607222485069127628423539745059135481244447379154574269579175017350942117360524421177639535978606522604096592369097866776355233571640774027860360362521564886184613335487706806154604247637966948438620606069093369548522286955191617082977709775058121604174882600696381467596688595414654520783680096855129779013798050302712094432764228159799937465984860938543799151173432166194207571743308250746711671626681468306001023111904298445187511271114684240986678784818287853153946279561300654250365805177398225264881084972856523248744050858083912195652197243814440134159319842088607306079490931951225215281187483076117477538414353423177185260531910543034992349384265287146938914843008242742424303555997550241174661644466812421957475791929430708862447331208513112847128231871811382093299761334554179653822538169165394936748187670052352870811739889456804660109144832546984856950552708056135028642036801639347624364408301822851178081808128611770106776500108291358943380455912337585643574313101621513770082291159347797843400889287927080479810574105936225496079128699303836436955266773666611502419535182077877746248435336693413910218609643813417321812018611243005941720708436440343297596337938956728656722113732140675670385420525981576958460059555591413911159023680606587314202368473010230590971891797777653992538556328663038470136432418477717666726503667510176159965967951186282201082949092601702389570273652441983676757803577974914055864834847689322557978096358925746858893747680819636509150178299216692773852631538614460830951147105987190224624217916914841476865267802748757519088325775955835445975376124897767668718055261738994509152982592324504204790258631894306003280083260785726038045797264479731518736017917173201670573231442137653357062081215254423589562134295977604162633455475733211357250124353372985431059109179294616072528664051000735355661011869871521919415533140967984294104430449758811438696458735920370371997536345829260649146326344423192800307462504662089021457420881010667584843198091039122578129626559122666257496546188492356748155777938072489055083386096278249340860966736729177849949554344742918528194543237499495626481552777519756539766403399595907015637278262409279085411928909680298414498002553884823710077851440941401832760461119733150680171538424271519970581751836347298000118190447282999429568004064618732763790418571734731446822789950296223200335054246331983236458138307288040631305438510773504980308227058948406663028136797363316139237209548784000382007482516449622249078680754502018469690416129907324849552758276087451423192902972801486993971912636454410898983450447899504622624214519844110629339721225220712057412114502274949535658301062950243911206658916441848704734498031399788313625826276277723249995431027478533199445967224094775773639608060476193717109665489220815160709075119972639595880958655123437969126231718867301405219153171724459968283039223251257873804461623590911561011715264550377811202674722206512096842032670782895158541537703832207951947620134606774450180123337203497954355160755290137701760153124511197120634950451430986885192365109935694272199908728679701302769760066920374661851693315059751578999950246457388497372177291384184174058465688117174640438467943215060005992916946505701404572164458766729123147286733766672536206674886496848639550670139927716806021448141457355883695128864279997685614450236820372011345946158619095340647757321201615403925406817362303367628488442131151233663163220448484022118668406623151418072547313021288023439696696771548306829102877734562705700707850561010954874034104356796868282972341698770228678957774522119012273339885581354802563931291680108190045000907410090423618590281185522912096451942442091535155655147666810998168481801169481178150526339934116186797817608169154841937544144720727883232365152012583802100206914073914052943406939062763731164446346942772358008525994571639268850042816775990572765660196332011251296124054274021629242288078524502898442297337275223474824928418183290133476681244520173362689830593271625776364199070823671130682699945165751768651749701705169700677684133028761785511744627246474089782566045724009259116156436113662877496556362747132147971175353521934479681049914139645727265311798091845618133527185245216050142668885497813495704614654470327053072054125689007337516377107018188422527726953826528571437803813882273789063235926684942377096335138799411289904751381597729743845565991380213174913786415748932354533724523602824543209210879690186081659538543239544944057120977783001091960085971958746371447399690066390247577296233652629435673610110545059255428474352447069317815929339383966669392877314278315430515878856142354903759832540691552284634557259928148444795924871200538174671795769439501775845643757803314975306517001170140838373950655513132485978244656671069315051396934476368201863815104092849458980771060100057224870365768361946606420336296845187174056663266117246496991077282728284218359894793258454036306180048872081117015124040749309451716258292112703619150237926845802053800348087857793344213024960837297315168778306433757958812303678898447057462700457302901504699438334791032388303643700401523549062362180827832670601379951346408199530343570547582614173677708808270251154135601707783288484641660129135255060937743896195462032287021334709476726640395031580841310763282816171235690891508346761800197309235643388440773893961922646549473626342202811125891413394734012318297672904233782707914840409636137721891494108689605214768364178456609210051022953299637897927482350560524250143751678258077863901531830719724863306689560941071754871227933951561953131317486967893322271711582433692168954269450819811039463311412406631771831072026131498615935976180483032696399176570319439585415504771978887518895540991085246828174673666241780075144406615963073171438105890446008091898181550608640545791898855968258744150561741935823843807840900355044488338043198405822110220791072327730287336006892825548816978261070280347855784954577863557076969813968336141721532092097596952803338540841877024958651965081395525172975685067225593856355386735582481292489300878673564321208554515037913763231458458778139328504876454114080110644422309023226732407104691389789652187257551505182417617539637673998002846569183970544686272280319982987948334850669388414133728134850937233822956543716766644145486827674065602321479315636004678750728742139980989119959573693775147410582045538442198067212940027674573816041434952794259192479829248048206962980355010268151219808063332088147556698151595532512627371762551087780324167212553133678061257417829206628233645813681677583490770860777752999402659130463825275336967060060445735867311880987014165897599886513434120274511401790620217187577651130915479882119831923917111747303087817882219833313315597702215596110956091397236785073896427186376035628830314674420614737597873063141219147357935725977898852780682368888490028892522761053427030584111596268041368142948566392418323937788515152865816050063656965455314569310211241726103433379929717704992203618882571500376271581121772706961038638548534372197023551090211758714338021120795697463361938060816285221299011264963466440110559504573705629025789788696931902059044391908704427322190939614036984461478603809117860722921661607831728992587893497626935204886153023776542063241160952730096457150502646563741656015639394653240418172860886552806321348494163660929907653483439790987203766594143052229457458932468440198506112350064208117400524808723395100958918692383878415321536120144185966987060026111543194330416496225996041792793693479308002133033295725814621223094682655406733710818004486133800905376514569533733282174880420404336979631555195674273234432150021304256236714917340946307716072532388315577573384542135943415761882909981790381750030494072573036755734997478368870815576789599758388786562152876414002529884883064662597763733839427779999850875868257769322427986980349949996700644647120106242594073893268469062255816041768200642982412690405614858451122217388668272193394852145546132520440539514761690377958941761351429312219247482675545717987246299844613700267977611084344761569881722517902768679666582804905236711876247450159619957163715017666531477556109196785103682865858246563589085120754113682804864261148223002300445749451879363830188138353228322471903283831404783175405989738400044532282201407376425300577560093958677933115023085040597938944666650500454139112028454447966260789504316712908662061518544802449962002827949518080305454081959840119175912727264743965153888973815510703568128691359928072216308421481920159784639697957702155306491891690100659308795068252929701520525701437561852314991750677348545502079853089977365766497383943655068774314018049542493889316457836195807244521251308165456294801739141999410135361782177163819108006627994791268617873624302715279652781701198045462021232452784613264920770012561251646834526247247310350847616613004448064260859039610195370242639405447279354198111534603836997907228237333765535953901532463971023514812133112053442317159646735570062150678472277489090939864473377006015463166787624588999172994704936625906900297218876175439947534833442553328485061333977261703445627605232696288465771874192809887376198015633712092018205854945685731756037149004248293645115807781129139046568944921285196215573050451697294173814433947207362855354314382196723762935607148241858591487985412440647150280964244572157495359382341099617361719018461172621090973259743467511927431310908878541786831366740003820349639302338744350183155244953573020340772557766862202907417134726278739851559707491508866513422940102993757432296411725841805033301343804658595726610140896949880828888239167528942671781067814848429966590331647911761553142689302925853002716978106433776631088799936350224274768182900781806760215917522788592214549987869244884280922017344655728432074336002849195985076683649637496548549049676328118976597286531080550753264420144365022768039015894863664749763104842843965532053504086824947292161750892137488546115097676372715689678918870214890340485292728559021538777727067790165066072861939202382168769030377835945969252830583378121724744100563131610783385424829893669750377902286380042481375594697511555206976455526248421538594491045914458775673522641581945236631740529847307740114297753267848648180036563076397321176098466853441286398889744117834443976216949376499129318728476928427814642682111917655386932160320111084503876563464826497316102145268514687779564793367014221006113707050208063322868828230374423763759232316252822946331050655154093038871232055712165052649588057257678450330764022788779465298669475732068517769415826926328667126023117879305673789119288650834560427689517463800016292602154440362422323333448341761119751835940886285883003399295413364438434861255160571922267388402727253344046458633886250796089898655125264315502712926789453502303979568357827844692083411935084390624443424077934921315590070439441624114159193602449944297150791783050020693763174825308089623783954674866850920622390940499461286701395171444881502033089290550394358303569736258594458012812920967787160714875445726931538442813275100664305600745609950342446659123926186517596904720395048929904065935960113325007033074001586249703707060446354632543411607426179151093884581774039319511609467645674077636719669508345041112096925309442709885255248001701076489682288840862709337586242407697441716929810623455460337757712729836071104353174053827598355567228957647459333830614491882613033042516604768340809451815448572739121985823883450788887631194323634827331941447723304482091369454870632449401337820128779746443127391757310632544760042951381663331812596727486713718421081521273229155218737768318677070887008626351192812253943878041305433801621384768123388195925330063113846032186211412768832870391401860274054780817162326437490964643904041879682360849620143368413242594589193390094014413577652469486719461116810881323373569600304178433783081063960861804417310527872774923537006381248813645556871545172929385948696781953277553695559843571857207558699571989020999746351200885938010083930911281641921105962460474634589343836852427632275497280091296335289762645030151900335298177998124945322905797683208633658286951650340215706389377121015480956698148012569241593107768891914121376381859132884522236742012917265521329293566383688049539784276259112468942515046253870229061560432222428116844435505661270410420915084462072068893906392401691703349240634522523818845828302497568397827117071898981398834933312411535791461167858722348717054544198828547410309647555312667574189258007059707590281989884046675468782734056290466621549823162399918665319233014399145809202558842852305143477214341442232857207604169615623815053554081384860628560837610054165256250335251282194084489242724043184342405555031328472806536300106007310398985643857518332337073188711247304671463706203274513503326081085986348416622369448854826316737701020820732553045653751722579471206982912314196482416094612565583205011819929826807206217875757574996014795775429743761459251898837305500868894828305254058069889576437448399064303283479668062365114774464685790620254251004559486863565589585413998734608898244965380738872375750105077227799247973393860373758953711210209102849889155969537094543504302158204699002086537711424436565021680592392740053291360707186901444156518846074282548501212225763148495320634580634136639811141554999243707507689210279300394478580104814062119295488479843816602951472098751964769492178344225818627685080608146308809353821093911062884371818703687794646114718375935499481720850624898993940556349132370106827124097729510675728360923669624972595397211427976787041151235643088908915027817321100795161287607812440920114603090735525532402916475373462005131711927899860742281338283063422183989443839675735209842274098231352374145585998005185653362928625781224156258892469407306066563853314429973628925947625208533383309009178690390048045066880814077180986342707658647960619128330720987139227786299873347246793368385484360918868462005328839008556655094570009618981495949929499054651761592880704362976191600373091211753787001181560089221412878674571301132592338415702112666094424748520086102034821717271633371085928307131116945360589629155769156744189741375399853423571595835808500588048700942103030063882312958311970835704739810519803564409433836965767308574376967259927258832385430640774238309549363195388974224673526964050067711995660837775789589847871229720733786612668118986043171192109712848150270083094149281570805561167607706550562861836320494271824792456742444240860894256743435369381332816786508897970994586573480352631698293681257805267469255957386616274870884884468278766523230227632753953654771320493425032327393158623324329918957625752492665204567946259382365867179275614934510755536184269331416219061746706970897870985223778299399002549328610485523332057753662697126186545263724621979090519733997437054514276254009778600326059854466094974731983844656389991711683425086990852573389819956390259217231544916994884585966142428845561862955309578168263573813344571976806541869129203900748172660083329826267489996658454252249373910184370489631224834572186354819859585766683498107058828595695174484228783352832643832842712817440573227682492537399763848242081921063185662595834504147567012798675547378184819712365064042376353281750438809277697197907689518060167816084988445995897955341418619201924049389516448914754949313006171617186419313162287828253020196952633187993879381988504421494267018115454224817928590710464164332036469101737064063936243653984955437805225700134004948825842931260763708719176823322014341949178540596616573692875387805006545019889957615172848246863567928807983444503929144438766303659841854347156218651077213665502698125627764520526902824765161376571215426667255955016326615029134466472319691428105979222008719779178458050751523164281873850440530375896455836306785267022808809768965422567037343059044889570810107564748634468381742559165232222897715901428483013160569548638666521929369333188245177340119528295282646942324594060843146857210817418878199812860328713816928208882500676995869697624223513799601855266420668009996061144858569218755568165696895268406511700272410129988128550148237881526823268397023982288797804035292901890990101353848338755732367338566931113503283227233159707988486001119883906880052767535500714390501677706226761025350330162828380685615345318124325096087530189134451035792119568421307354353160053913029923758927409711490542091905133517460065329827226369346088322862921300034014950120391900677019646767492433048797366904528433589061070457542127584214073021990825693211262345346873291811472434607044707859879346398533623540461875200613875192068739556399081838816070347906679170166646071247113849200633822896975139693804888683829123169588337432766552801960666303444259848496292760267104687619786942992539889894698419404607099787871924300906505836779876376047930210580331831045004014163682082627101400233002260564620827977033965527884562055634978650962695027661815911414730027947502959610652025725286466285149484855237973541342161634034435090008807635795527203122077564787847350349187428107922204089864788171846986149878118492973728955646631619930477251328653773836700264121228101608334697002516156717954299019324777192572712438846659322910580388931329999018166156374528394934319351691755803978810713113301772345246247814594524572033346580683970511818701760913823754501838747989668748700825520927622526553885321681545396077006337804763723523528154395255832080442830014900977622292114736875603090754408263642409496543608561557898955242381980549623659050949894713634907363476744060094253968812940840031942891752877486262052215499763618479304989775598007818268098075148207959716911638925673188756276654088807199555582953494921997675938170169431198010400662329779154754074250574358230114162809264336985234473799220898618210209499302514098420536929598700761870722144932254564318367569030179337264958333106252152861926404951524245499607201949347393042869383015425480638731830402032786073221900144492587429630553754169446464682397953131195601056998435941176024973514931141671447843223170023774182128279344668913252603966447143246435351919209456119358777680357682112314665947014600155043657061816804769114350757430763210428365285624905590465340325829853455771008658941068913618895181409702380144415935850000861433202772540729844738219694199356558342843153691857023925656202033910049143678057109009691947118968530771277212856880591575839288031831649098998671748586652605727800429058308818280102269801543629756446073834987297351144208324902250832284062169278456389036310125054938225250803311767779157561025798934249416618500103961839033896703075027943452295756333066327982658989982943043907106678416494707104442028659896942690525516197638345018499921014322622393979048903280715991632254630320071254394261774147164969269891949095864297945331231693468563725521441521393634162543718017531500476536873746006780916443896474724557571746070643822933542196400438556755559088974824656972846650062320152619102015225381015275330163327515930422613794200518573620697086994025930855795458832898638562445549267133188706801149488311906490078841398313889215914395199240963770857368376163737035425281756579579798853740393469810687790503102845227726811848192300742096398096751624774775302373035113855798847706903062832820102097133151131330731838794098102256264268479649445345591695901098489386018129459299561318490672976873304350719155848880381406158002856182864948520661943694181727820269116113858897941987337995906331527680782594380805946432179616544335953380100512751032390839663589898928678620777900543863299678918864897232956969545738567508206518673351153651864929994285278503285043781247223151709675537109150097485799460458066148678522210054686942079467282537639312480896030244000831328507977790008025828289751933793188088357728354803967836297242746151728550959110502007187659021558696593105386256369812182830169082056807447685619803315317505492699725460561860536038639381931572892080852514984960257113262967265391642251744766011929893687838972278896614131785432858171814992779456808801867323198221354928307779193693594522814655597271569085964424866915097453793271125966895728001716566812099755554108671143294667684564486804067039146923071166000410055320872960542917861922295758056597862074148117455837181675479590939099463781636784430321197204920394731840413611343139769302667883290650303695729013580876964290074403224844936631383907401861767077534576279607117094512029395761432088106871829711105383834755992577306662830497549375086043888738023976874972397300466770916562605032319078406163983826292043389542229277867615275826287576424268962233844406656436555040896847459975939491432381562272594005115911462250280487065650642098024883327306495177558890067867442498530482328946401074374664285933548196215222080510336211397592367498343344567808926583501551774153320113790145982580733258786201913784364638676337096621380752607913205306357052588145258948720111383886287092678723359011250924654617836628922068549120585117375681962639736322173760709198769532799879013953318588690212845875233446006558301329257780686797692268467164702463317487294460562622478726486571058497308044092056351034854478186104889373642295694667206985278831392461865133515748436562583577957347457861630197112414267310557641278322669977906243913548247678418882697374135628003763475586768325001573853965165740279643194677372715283203131706773901748503704553377654923860290940111660177342532239255158261026658188974146010186880543022279409949573530713998930705006836592720307400665383919915390579082470585764614971089257191351177950442734887893490564940928769561414567259131673663419520892670891286572629845574440747162292290197161812097055480963264329126317600305962353389991711382547832816494167543328333939051356556315966860659354430521623835787386891030452303897019734502525731880388716024348920129862028095561911110594813555863406454254141198024660030299076807032530516611360928368789413023552571223262579769195229035348907806572934561856949878323392359296194899819576682818692215239889717105633226683495597921300119019884816586387065571485462782571848077913572469954849959293323096749451631621241573140245922644974128823673697451136725973163340431806022432880021666801610393743398786421745660664393230952926985536483938114943236007574629875605538240529115626363045345056643326292558178246677549250663436385004030516812547089865033053301483847534213652966377277748808523073649380767600279155998881895283461735989289350682238699787214262102447548120093922112342990710965632020455166065082168896371650204976741288332299909135746179995587042027124975481766545190003159076972767116931354118867145439704376025545705171846140657584518935346570902580411756043832692322258999610007452968526683319233052145603163395804821180721187743886395785286325238363622336783581110064375874417275262443940009984456136287838716957439241933821309015857032544246976615040092495773998239058955858225925918235378832711805652875810539282811722294624932608011024174033703381139178778549974876961522038674567388657176823661720715843323926054919657361837660687036459787923463006153500871805083513885327974510260263325523711544411810163691825528579398847483333031139152331365245086553546188725571922349000056800950735988688480721003841426816958903752795295312349156634775789027357196920747428861184998387719096342894808055300620549747096847841555651237482421965857356473893347750082318251944335264826527721392556625578034327209467536569301984506121439172717244875513489847015502860434529478767651095815935489153680571849281022639286778841997676425029660392441461489067136170377427813371898090290837484513899391885945215106071372494348440648881569428466160452404751433470399680554621781725572973016023116396637832610739295386849610294408257830232196058752774548752715486348037082198208220339217245199078093630922481341215977989886328681745505717430432528017759618095754412892632608875189171335922747738079885420836265353303165531371861794057085041888103430107541845277531362200625794625988629742318828010336232727394618821331055637115400952655549438733457623223580654271395314850696208193694654285283589391767425958181346764191936376404062258269452378822860531551485766158099619790264725358214564224125729863497531049475046814022361408241224826493803032667540288658596607662955675976810984654123153168809075674366651027193929435049400985933803128292995399279478414487671637350493369304807978744902746886463115837616189971220195388585087401416746936522717240888664825872752360455264653586254219953276910569360827550170155559592494726129388519727800773125643595387684133786686884918412698076101611722208699932643558889468526337354912881411266041320460196878150315160202549176575167696180150866311207176228004180707301867493072839353634525959407851425774663653804445726817334451287855180107684658884935332426778160536276589718602026860929795161247871733508667218998634773504149992184181622918046033666051794772621544450729783811710927183122032224182971970816248639691447116934785785343802351835493933661017898934547919728605968777402026342897240459233280316481038813712325478107179946459453156673623359741423108620359973976445083423453183542288101916557841029704983020216326037741278688454749464058242312220267947734816283136951306679261160754380470705671755878376482000065712577349761602986127200236592715775106110884527741849049517509671260529580308029558236224823783858939069452992925611184578919345662789960479880552930786428948227704494849512896778696877096103365948131315770072744149318743959806605759645689220855588562098746506822686349318373670927162860598728012976989590463450256613447203865996988299968405539929452572042939871550018225422954811809131293890499084297743212054651791462623362768799445978781756740968860332103478488957714150447988631019224268697033782178415625312939535491438845563619040350313706526326932617776039015857752300723654636537369146276087833762260628092217118656180172927904417823475974212055213689918195777152394432424375325346074993608822465941678911642138447811022807288139070978120316295552958020924089948483297372384094731376813151845105304253501265297475748783429672858171521804450298646190454079619976537900296482781200030799248647348623201719612398877191758091870316403607680093511298748387820700779137799510134664218383607548793046237166429773397459946324371363802325199795955151669082020516172146623340778603334175926013120617514849609609924887278129212907308596163787014220616120630129905849969413110947269447766606807863279073820664522631761748762639721384488238149634693112592360508902963000039923285660749175175813651401770221866013829472812981751824564326617742569103275134351165476961170645164404574863393605169220138802000641049961758693537135980347985996803491544977189984313952165017983160754868428387411394149977522979971975579608720697349865057833024007925961786426432245152026961629699783277478601179432403003552480883371072514296771087986505510008525364459748314107327750687739756376357805532884629186477544599109832833807279358804509247413655764654655991880949867540993745164211141100592529584968720235311590110225343438078783891040530225844503296036990763311680311718283919685375112250194833259777366320955697368608438775971230567505733033999876844708521025102197590610865245887589136450971180098733158612640280023026203320957033267474029276329171160837341797956743568952989264339848519318833093958062579344709317591349014411752311031683559631489427191651139543780429159221365582909616315896986960563707207779051362310813542327036260177720737375520633021654232732854958113239430655034833958928877936555246293651265117462581791001023507914672003189640853192848593939700836037725374581267674007191182975491173564504360288500711763860853098716448553923188840578945061224367947023545592350718367809530226325429649147461477652136111387649823909354101900708654894353001226601869539044208852498898254316142099936588877913343486881691470356551266597698968486192552042027894002725096354045711571637622842958130290754948543370054090966453611281490911461880903286320084123205520715219271693598385660418277848542284519430264704787626587739807298071678528418022987840391427057317499208933736772457907787334327880614327304406959332367159950876778707156951628765671417806939343500589660952949177253223816455178500376574625165467333444466868764791264524847146034519517071894870020896268525116387644157674772533943600640832545625828071803628224683188558993802811437934919720419677587520935923678278572959996635969645782005015082183389702838661118269025592026624587029576205813637461817577303407110878500965516743949265948604334987479432339045691998166423732703672072807395868536583143381617926599358356166188928371229043552672600361892946367544377178886546840597732003735197160622732013031501746470621103924056560886980657779055920553370250146952017410181529268973297449394087636713542146855754688844606751144760333697301941184886093757111340517820859718725635308202429159245201790464599656240490053525940174914501459823617212922598173804547246802681897149878259209727998700393558442049671915766009868530567630187945387127943298109105273915718545694598889183462889836934690392518928994004876465472885421346364661234395406578459486757166647746070541399704847582712425469042317209443327304253535853448989516102559509180554119379304600049861978032782212193996964017492559317834829922931407235863526897342443702185718080112944559883057945667993417297578312083399829847818196104624827729783980897153237727797857453992980985302912578303834191968541495202755548837679992731367838960098559998611379444974563160040635631193021393109130830319202146273718184478010574068011087442957347353209030106768321297106483712316357647452175802393250530771419081488593296881554405495469363295410975083532615741269669123681909469844410494982009698579996275954894145633964696674255491585747533270092260279809891647614377603671763543393340231667372487256647318246055790655468979728600895624227874620265802937824968439310656701119227315651177186100578398079728930629910717386768546753285295559233650552229427955201170529003475369326178779145397091894067689995232689502264757857613239545130749994316342298640463428897132394751568901128175057619370174592326010361018406956085399789582425708222312758703328632157363231906471367037016157984874740328501401984325384308704458837026760763151108005024690071185388849730113464435037594423219801344893707481396653783995719423864668413169611848505927932773807212522972601638120874426336122661690942523771282764642690540625631711975063748848304921909357068399531627859667664262012707005392211162900065429393767275875243688734641428150984343599435004190205679585091768268509110769988432245512428783554113990040980669196471227562642378065297346153067045194863442763540274268122352084587116708945447658697491782701390643850030990390355471712815267102901957998727140688239261120362144791388939375164521408750641951156124645852781298150204149612899158981574519194596164876758294780557948692224378846371079392328720454250670536864744341727277445369369446978681673826552931113587196074801006262789286438794489357045238574368735256348723492643643459325556421883969747338501421269684468874672924400936845651496753396042252135659365213896340214777156349009769137169483193892397786730765443240498497489682002961545803330380448264643755961830692378342460887330579915119192786412800432293750059855376274781382020838726363384089257003643244831656647869836319620093433578433671021943171227972768315671861789588915159261434374175662308522714763263404224546265701694586242970942138846711773106663560568892542198681034841555841009013943613128295705115658756529709500231357177067541146997682753397983930934369036605489496279972300177204640118059284786979554848110970513576950692066496787396353237697894365515646627141065518092048487735927440097722317322174212542738130501614561811043829980986184132110163468612524436834839273559710132815077062459050315261073813801199685034118178746206907760132857171430722954167420937729521727482309216819604006678751107103975230906513005735330340753529432608578462157341471627331426742181182369527876762245871491458252577302046798397267872071366483486692769068124599686207721976490786762507826508889353984888651208975510876308385671243959503620415265928262812343128346937312741704336005199637348813029959029015627457063343721590779765484530129734909964501064159456233116476489790019534427382058111385740989459260743618789920269512067549432987403595222686903063139615186797045454895605604175003004194880249231934553694427102080813034458668067964404560384683403734143462355825589901268081275011942139644913715167121363574318986932652222140443971395565707996752199814054711887285900363730293400867552149243373024813814824413994294287436080263290262402092851250646337971095787848091164407873832077585230851051039665538831459733168272566182990697826895866419627998785600111053248433883895701244046043209966720993520536699636157900654263363425821510136431912607542361662379550776635463428411271345739259113129683946650958139915670761491478817401173415078256722897240415159350215560201617252308564165245247695311889840456993784640486269368293031617904688378104855562147049028383597864677121085602325067002651821419036326196155355619770196630918514912908478201525861557367120816700087309103630221470429831178755626296651709889277047282725347779798373025422617419310386488123090408640847739111498927220219425126434124391396119873713070892839919616842653738420214793249272342855551083032484363060617312919215885774488840139380833897663215706970466619455147168207203307420512087174095756942701961507994750250950517970254836352160101224374988158935018756229503394280779124902607071977603731326344364698277701271453493113739514638775078351246551812987617232173062114465221010562201101602163301471924661686062170018864103276643584251107359727106650230054609799387911832436905901984213020271055896050407154508159376042038651487128566638198969537339309199737244503261226222822417426629851551857436384632032884444156412948728196912683979176969076088290647673259420637185759493721804681968618451301973427250347932706713734156576544468621184249898160339949416180402337436082885237489513365425108047572850303359309032239049919292293432899779196084421116006080586948076708691068813041957357730654451935969157060353042172413720306822159226658213954187287223672933816349409447279867959037066496346727185239134092979957817810576510998343485464644628765661734062625275262548330286400805545305841152011705762650323637023467001585479115945612982028759146844738991405530760092511525395266798229630367784418365205775137362203912527648581932885764170159664839388206306144769709315689655262853342124218509026443543174976148429070584618310221772488958834214284390479708252274180826552442668739358457608008067088479703335815969169212467454834451880728751260197983918546271162447364122022905791414539195167562875810527819302569146918244984405419390284941083057876823470824431483076364016770935526311927114363914424619346810797162280031561505517886017430524928862076877579556399899541005540148951059919171613441081774008523659069116059148865288054682062059057720327799093437588087171369365712013431121095191336129963149539739167580618405358922722272409884895489437045763501379404633676797498405010105165263015753368130160163038424315672328043029789724687896397199437569308301441358149513676960687013675633542777163277992315331883178010556369301421695525930814696790196851706114794752103865953756550008783078592862664659962223737663007523933245243376970950930191814161364465268668837133253240343593707080790352706327297683946397246871586535735123784684501895083739804873646350151044627926962457442706281501750105258459436318933354877947810920821743683744419281654057278717591919365870221165649136334001042647985094884790305473824809691694628180641160998791772814538468529278568671589283907351190355444694587965009379108825443180518423002381711291514548396387749490863650503711194895415508149081924498230530641715273349003096285056921543956924018104652826772357230497702438910699534480026001017079396262323912647111943417145504471592606795127237017242662808266659701501743729194238434716489283040822017378247971001637962822620868189466288428785032111038277113778388248000083849662210820072819580639622025440109647132345231514883713877868853035578822960594091127533151203808939133520357624593501519743478805390569666938802514696998978676834084883202648289104631784144334330765454254501559339300193858943472982693280818652059774629675537014458629463720056768566293116755957272230923975216291385807669839223345396507271032332413981785199867992388894803740500056750936978882777093143159035176624008545916665027195411271246454995337409031601900725938472565120805445565062304097107061512170593988645345327679657721158344162303250898347535037620123801377598213754307107045817710088206936579224525979808466857698969596757831267522258040525282310877029932367729667252188713010348965481186749716273184300888198367473971496459470159681200073067241756087968652378651988963764279741990029683057082851566526150915870724078234004561906417865592771699026965475344890243259450027534566771515158459370757611284831812240610877532441495860967150625331306477425774797867413666974041677388047684913728678901689725567777382732365611427100900838535486204828768389519667367297585970945945309834317844072029748159243455357927519403341250270030267618536599719887353216250364535749674401163143958437019925216336202665590671991626293144517506460438553204816189127143176182438743744372251624952792794365524162238043654139149742259346776919900205697233820104795984074964810163072950378036053794242358691304190300800133988438092893598870491038896673537271807700487978303410313368141895816447280065471996678130905698818185111573857748128442762216123309371333208739878515649610659018538796161269683010359371760163430030060204928037343375439345132958363875591593433132222278171515404566299761693127576833226256150144644216540242471568183663635277796295035682200618083743610925573610068751682449110434312747875462068398107648273500045327367192889294339350119960722891199452374034529694587725725029389164155377532338808281742565382034129072072155451098964022894181206454092927167987004652101351538409141536744150183056525674769158210691699249496834485897084117243038142953050826171960016823433903601933027560566661681606494780175197957628862752818593574958416120654742219333610298328095263466875949215072938173462002962867032787076931246388164541721714476782113403385264408767401944462719309672897190483534539064951721472928059335999005727384815571692856648371011780854471984381947254483207687160917154295054484461670081563254488707446521423942589404300332767536688750519117612311585048330188830143181726873438464013891907529123421925898815493919583475467005980436599569616820845084430629118782894243633923940177334062850313975413027197136237190837108900313988704203762695249926041958787871441847746450732661076510644066676119809413553449067096878948108732372296110455462736517481526815255260686451935426532085307820088511012991321659776233315423055651463453555125775923468418809003194835477229502827158611189565286509502644136093311778152648249248117653360431364836213148963477478677359840317774458072319665108019303017604438141240720855432980056465892691458399468435538431750093606529975836819088003211116644915367659164347093151509729554482411381551542190501214161212811664361283849055905653662838479542183948753089394072381192278102437899447041511504665430077787970032907135212642822871828355982862891793959684566361027391344843193136745955116480912609733211015774307168883356778819502698839139858860745712569081096653692293513986197158597829246672683210916395909190337998598303629014361935503459447862925911905056317069700062424914529926266028239120736658705232953000222799521621584482380955481939213819339463050835666203479871629587567696406576485070942506248585318181102229465268839352108653771936673916964490162557130789296994027066526656715634492563798311873282212497774413914853904262705659674810626619945498643908177385439795680515815933848847044907601286600793985806935278154427331065393805136655454802180778190096782800207213976527631040406352115296399879566111836417007127418319203978030268291876593228738927438763800730592297134347075966082954447247123896369248793144413412614610585672308173434097947422742176450658391041142337802145864377817432163105917411800343034290033264995831225780984943423688719341978245607305223647526652655354206087396976982607883982936546388109343517469292846881929086550194071959160537376639114013184149820379862565500273612282111979964737964017815040831033418394267484554734135752586236587676666385591221802489389087769296440956622982937887025091670364191986263377720096547580739756195721995072835496041706440531804908812499323814976548176034501707197149132556063636966114205760585493150175251202421526926578624409715958586459360247068498079104973529377040166362368342032666548472715252850480547435732412049052465357176908708571408852891606089015484838487984103187432763410824681974958851499368786101163286910541157579638993571539350015760677744908897983844161746657209027116040715595639056413936105274531003897408284972197102624683620841319839113833601182343184286747171771901928734670425497186947946817712215319135944600718592978988214020227542674429304549942510126055069996124637506833473812930969874303859747887913035725971859150260645436425892120643362049669287113470791084891351124829935628229051868112401077433959123204248768426300356936433982441605820518892084773523401239526702644638104077660178957230137881034263247303889246715975121914882411422624903979283687562587157656353848711379612838148927256821911250316357648966943374107657969940697587818350185980860572418521617827120755877662743168059549628357956937098504829118787661799084330689499676754927877047315776719206300308293796348136900381012807484561449452213559334807628505233546213158853947922439835444219246650964199272164173727103073730598337033099230691664647218619499425302516473786064432154934307823114849334402654469465386497711450505212756407372090652900279639851467038307994502093950728696308801946403164551073048065120163963139743054661796911480515298541340219960393275537375777295894999216863285313205785745373010935439378864364268298221732141272088747467549001552522157712308775042146312441630977843636519834742407847125393668801365871210008540623878791791678460345295215742475766971651188474097173608482414887268122410497200757597100418867419490901707408318274697103377580893618164707097495734524435119604446725149525525977568584430770880361807015053826131363347192898620797298225110711806723386421923932988052426481645144840206139816232929929976507578703601864179788079344855656330924046987575653621763835355559475126763339653060282543441744317482246934996973997750503017107130023391761797115359676453992208280013562330935570070080032660123333798277092005652917472436601612325972860325855590745083997833997622063613549877773035787333071639966966271132458751620666866713298325686911946434952528504907359627997264843520367371589943181260009219685708151562322157042413507928377130096653830772967206719613855912421486987654180335899147724683409545544458149280893740934898796935586898070841788121636039045018108169363267576129008564502479675603841853210891621753453355987330340014233211097913832594447408566055095705031974314545752715181630677192343951754860494114355270707471808591610509618884759286115755429255505341574258067125152811792039957645687183642869130826837307848443714659227309829951980710089905827390210411794261369143980869161620671594643160193089016380443373980114510016748190046290643027053891315833317572231010869788693531695666774512090904844565066124483384963673591656369760502798913575880784965150837700673299701606786633547269530944374625092680160104676835509929468276131365037238669473141887486865602648852449623030389575874959059135543698921257013362027616244246689297824489854023765637732468699534956576850819670972640422309132819370821943905788157514417968460000996207107145180825636288850623971766377232897648970683092189975013512908917132992064729507247847565809650843779821409268771194134062222958433432754049087063396212277123778531889791335909670188392415809025572097817098822823847819040134089041980945428858878665146213683464167834790911775392457452353138880479086323456700096209100777546779903120872063531195635322042279212196431948573683291162660744242791695681374396696091667189728328951167722503796751440851596816081021723413045695864118333350112343988290700611680246771601604213792323846700917175837598554415589741815779506046035671736291253136570247667028687714560073885668241941558814423513574108296417523839873083465058903374254535942854984291077486762320768473103323952800902827434918810560994139840837274003381245529132454681379946735809919259614207778372575455933526144137946251102666091722118830431042330954702367357983350506870070670571610091996731463262271824431663971515322368550306663677557797428627686473849070735421812699464730101158509728782599679691712421389282303074063436271751532002710321737008973555197813100292213878288240951968238760307152196354307886425800002399362518495605279255050715889691379689156848187050643641728829670408714525751130934229627904058346555059726284018305094700261465259661027754699213115290255688435842066576625954725770718439551540167426777074509396799853515012909748780649790699020606933605392400167817576971747084452760086029018993361885118601373196503358665470489461774597079321517827379311000456772704143543005481616217505643947503335662307872997196333839849256523550664419415351607460790314961324994994196403410553279805647524023756659008768456343986924555294290791796084845837152298090939969714731716937243865279886807385085837856712287805667207925200099944664050754375168298434717103107129525703453909877570853350152056635618294828159505965828700562953747020405255985700123314282977065518297259096740135642846534415046424334947058023885192958653120649788552020851670619463266745495678300701753326306999355342023320079050681834500104878087681873345110042717947636632667157324133372476446125401816198718210944943480576183545088854065020168316668107913640174775351901909366176307964997434483088194354307194901589196918252496016222223035225924827487394457934063322047040601067787734671362819092825448670487781293127126791071014761595271172940311778910288307593912725134863917248626879083530446005493745687443951729085617658325314725117596108125851374236615741581975570287417328083592588772754960971663931286142056062571120612015794503105594467206163374229629200918088893933354676594178925427891337258013600716142108910973319823605015541030130807308219873797533419385961729599088421560286724981043461661822986523351200059714738301945190230114625229906251211654533872555967124716860315669994962170675996448358123527923802866842727093941824083797074937590601777370072991275337782754748560362377489397186241548897547363296912093347502250259447954695527515572509201509158942107573487511806570325003010487888970606745854984375211932086474602001188097808301383495036680108956282171481812319936986907686172205249255811431088516282288169426902538506865944855379619484005621323341382059220751848196658800079768047953066153401732400734837973290074907440188117756818317813707858304507421970719887020107317783240431509500508593918469708252277873866793358579166884003285665660495266826767558974078163000673836165981502991230426573716720388953284097627426344912002623184055224185564256090341299267480405235981352806658270133362844003267768871692951515516643083381160133355251763664165924400049134448026994607313964977081539621866492714056532612982534827575148081589433854292884736452773182922038628932757510400710550336484453601885234374000988294525149436648961173637095531390539019544804090323884854724134248262417728283246624313046409517321577721922039862460490290453257542039706976492962565618234376098168438587250169663149307757269539653200680110145397815949214498376196499560394472871335447826511508532507402575336442693940173967970055875441833875895294088966581509133736377431434910244507737761341167670787988530306676330036096388747236028980768496278308072885406509529517669705154331580272337940082079799842206408239124343591384506829581307866948111131430431743001199716238291806142255206272741897346126848357464262681699686452196150609662618122342019670158302342989335380801859478916201076292623723969268674320706560627012416490510575636811816725351400736529488242141976060714558300529441210324089299845767548688698084264031636637707948933737683389721217950615762429500746137766478292414435234741991478110705493927388950722461690810897466504352350372520679661830201169303770750002344682400288888513429520882676810704134978896332965337946879527328401958496904479365502525996668127441919887693031593507655361241976178665257436649543466330416198992887260942208692057859453291030419872711025892897990261700631685130257497337969886981611609571358136059069645488855903153794931387041709127781308925116864575032037117502789127281344331251916315154842664364653314651078628461290498422504659045996889980329310153417867917161562718645680019440125529032992237076607422191980679100884968754219813159334225996495481902853150921458938186399609260916292309994413387049167584306231617604093347186399315993407432351815012147450889419300925170073432599241864066154595618352403193757693323040272713795463748712345167715447650143059513415902508715594855354444879116265421355053300818895196866903747332793124835236588797536357437464680670517020652382928786652682740000984668646359590807657364704790759963830001579452306025877577099195786440385322262149155002793125337724255157498938400384268545996344664380623472582453114294295108306226521567753236485610128353375256630368322072491523769668667417593521192130905140592238438385505793930862031811607128763284585871779339452183115365688822491602753097172696726077034053123753969192346334687238374112186461590478481925493781559725023389177972055806338002573036458157472748675249407914353768593304709665545163932103805178912416419815715618709986912460723921014931661292291925313970017833759259115634041577201369878131982794661726615308025516656555435122587499522272921254849850063830523786905150923839839549672378639987780384404489805932666596960967697232991493982338439075661909543571496384184393005265417764662023018000664012770196823360928775643949840061843704375451033134319053848431442785164146893066986231450694420283676605849100119024647131892311374685531558515684125961435037453348466693385906075006883284461226346221755616759190845444560725745358328235519562279102703112060269107461515995555181617018533797223436783205583903637611659940188044059107412511117031113846088220804547365245489792419656403255853206494833243733598526802196637617831842950177763594511596420597076057087277164856485693648126024815775793675331377910346345191588964735426744658488939384576044993862515831974547429665045302407329972815693668943354036052000816038456645903077510693170073518469559467204517429951170773224022321162315073581577029842932850704693639948276996403182132941502068670508980583478166881075482849150452861015754470070814819654765418316676389198162213962883816973253075436965530424051468438608036779138242218363664951781480546983495429994033449357419561671214366399078020331882391086319897291780175864681949844421862649292950051191834749045922562258924609913924055758241726077837996472097103138592295657098733668330632283704862853798014263778538346706770066035798733036100594814130635307742584752436780102877254301022041953240075466637632342620928132204360242585238932516888341337132289950448073025831471773409471129381469823882398268774779749971422799407372585924586271483876490559143252179469500846695651060407411111266665889464015345454159990854615531913922813252066715062673893089928233410820726986713553766246372872408564005285586608903421717021771041154103950573930905670118501156302792186029091366960306642690464379857759912240577370443897978545498158432111626513590419575847525234667515287394702919343024892191144160236132768865154017564002871778295443438587613529412716566601277827385560535754644248176392507170266724486059532524564287414898516758344855480826700517988946072956078600010455220466902377752831288237410351780629482289282958600761671171997048976014137988288329057444167577269998315979623420553860384120649439567818116596429399697075683266075697084801570312600988138508693101802283013781952578601831247104728821008767859022316957609634852605704238463842546206502296948584989249636880913573316151673750472636509773422387119673197721719859185343007970295291923452286330572318194227364538823919924326668483964925991388093806760855855871263551422354643414970374386094188416937166731465915718511259910492573371286017757912325724384874578553355743414959250288975966666648281908916076227503341606521618719367250704620979743319109916267234711376860566329703363807671332905460157412921599573407296035911839835373358584685639542549811977593692891074982085425404657308762208651267278495194338839492155650398741954493530281697001747599292733805972123547807779739840149612044788739452644358358991914062131012061602488368022721994036663087828200829968995040422828599680063889848212174115056092456312858675049384781486815498790110999690338348274439344856299634927501098928083302533420734604789970584620935576768508896808144517871826972229485300950337075619546410746543377794602787868643704880029808225481766095433298520707130689043380281806406053942625852674803472837636976446000201355866408135668889183521729049874353331021569334040164506915757625077022844510368888296865055705413129327178638038277225927902370172506550859729316403652487231628913328699333554825452612522898777805180794956137234793365987695845243827896024570428606094488397865453172445257945174140097818529362568179171220954280243421293959948387641765214872021151702695544561097473290534020125700669838875890067294850564214214885809832352191548586614520640177196279515145319372540040822796920250988710645397524004785200304750466485422317166816727909268355805906162943665769531700285541773660022884889432838732374754722118550253680157856028387312920685893237501788616423630086803492506470601672953643178457870749752110820544648695473324917176303871466679490329842745350485111370194785025815465323026594326437902901616796178538018806005891122069097784561829626263725130135302959029250638486965031468812016703276496833941314183423635694233118615711814543745664784451343993105289004446597623318678033609051285617906145376625278987468975718410744339422183105474319491781527137016929049692782501781036352557532495626854344001281781722088757773468191568135478150791722094941368174021702247245012991600825504929814553637261945249133175302068227584752327630495140542553176309753588144542148436939039695331324971869310962468036614731621204514275159801645310980774777360262325647234621300374977509099689875345860644186023350082814512528752480840110220467012365144584425032383510539058468690136936349334267426477270976208855282619905146410547837044006423160987998269615168899097463957241250931343358105519187151966803911985278256031210939875408309287374528914557891356435548621311598983481191092459472597092439463252028655294864112542684654816398364971119421650319612403452908117270782531259342786237097302492461451333490672855843234889819328692395138390461256258095062314067143582290612332320718854723194025088390524875827683961303546206910756764009964241951503912329926072165306795210596651061342916390812077686694370987467137050059227969155434986629005076950974390356983047171593449309569164828337132346081235694048024624548539256322246701079172826466114465844266296652444477183643143114666481197741172266929805741450286092351885302553132239215810634154475855315737018954152932245008880517800061357025400016760573495934292430089438432155346351568832225425007529474134367362428324390762252326200918827824590798464273069263006317238457837337961728250021586687415523697867253975485940510697873527900638991175175267830677923989394103346179666240956574404098272450701322494812934440249688642088286762780840421387049852228365440335103577779881861468960653360729784949860867399010726923019795284963844937019579460088287991608561042578726201509125578480704947789949409872129099649688052754045327560692781052445838062473999160100198857578503646110832828521103086426204290274849800577363646805634101246206049091900576701308079734129482132756007171211366770918896768007157333799459409361011584854538111935772357696855840028966498682537114493897892564462881386884135559717534759405724166769036245364103335759702502404968805163672604522943217887086653664572526308030948762698631495217106502607727866115008880592232106026807102377576423465400326990642764119268937715659867402821917237453266904166816846543295473905111719292022277222319196777212653831070025211070415001884709871282942692816518383460567732911041990532356153083440311134136603760641349155318904650319923015437357682232473006393476035325159888159707092867515674451571827834511115183321930102533041728161036013536105137533181973066535394417858360379889986354434840007777693743491705460485972234968218853971185986967484539556473677957477990877188077898446842264933264806908647702178756463503896931079896353443893342479282726031813734936492075024098548129535777521574937925055499207368500783159148634315173189864713777600616767932571472593334690409185876191390472775448539971178414488944134131310107284728265203918742763988020964843118871074301393961145432889607789797545090614245304172249176209307795615609419985865304968566699230537946282551072653852219271310128785920696778308057595158706671648114780629579717045145915036209368847308291591058088453229860862015571936509549611321445891949790707601896418524513398280558298678909443876203890767973733635534317759706358750735991441737388808871335337322723747140151518414057495869710074533436161113208153447964393239333020199623466360750050353034302364153582370421923546574373366040446951931377677214522239152656381261962705681080277265928074927587801689200087802794627087187373447231684944682095670732777822883441433174024544664390764944907160617491007686420855353352163576275494719671925981746940668765156631450694098944539206717729922541282313147873459317292769828937008631387112719332758858762759607543811428091109080892893395146955594312294752382792514538211753094193598002310089184502103978512456336911034105352459568776405800812964002635183193703332887755098214382573670026724356276152460180548967655707606898342576517686533751318696903237717688230753760722954469510280993198568122589512163074977566458988106297535653435652564695107258255373514452266615774333185122439851423542861588549110048521016970288506823022425719399735442782837629337414748674230691831357360753204672032991364623242443090785313269597533665040358614256683897736591926162698408635016774552532457512221001772915508869784064862659469645092941877097768261379399934653427786376422590623694437011156568370544023561845623856887303076946444283823005699617975982914681488296815234172955463111064878538701147259081242062474232839536922699666999494028063532490242155476696701558911344707317755636586569589418802137762009335624018291000612958031272208116150573115082084211594373016874194355695600201903628345995699079087249213004928415422178119694572602221826163846721381404828126338447889461708548299852380167903868160711927286023030753739020811192151530336984902320757252164788734308460376363138134001009559759481763246148910910058228816815600712165170133535998981199639165892035320422604369260516452323143843100444312239123812003400016653665997906399273876010510592897024014866287802219686686664987648353718589405926571034412857113012151565259682955286437687131169521077441518664252732043131135227460690416670397874958356605941849723820735211318013381724820625801514963361467039614652103888729341860385774389756051496026965416503848594864524752972280464199425408929024791442343526304489956907549488429179613126450582818550505194149560597286642745807034526995530610480845464320888365799188512058005731395291530701955695034807614620929290248763675947428896451494700998892464072095737838748949530708690033298989492110106914803988733344279061490129615776044033302951931504271007310981278217904147412140323132049458102994363324822245068662045089713057863300592203862933933480442180358254561316936278638285125137944683686886618375263450691559391894605446525149627071424605125358505501590147482208039050117666963035295356813093736818484198577172226715078748322867493996077082765293361993303594785354136040740051336889378574107160474200113647866851109513801981932697705873473854791953126061511334305258384429846353478432296838566211532974355967353785348748951466130004989067206701352083464909803496046329288195476198299587717555693191718548999372680438139354558109915845187065716692799724663168555293682829569051269389032126878154989529962403238239983599282092946756176529794365705742282997522588083371261457758784499689381413234110261821608790186700888398991038405716529317620119389931043145488146433663414023048022201735493795942771515232817688385575516495468782916745956574294947767677972944102978182932265610998954389755514083001812819570027327833439857715253314329948951723009986181033761203391397671303692833954124785827652830957986651510123333913987543148951935216425908626744020442565616542589846652461209118840173422931671416777187422927302019876573014527612462168529220933547327168632365546930991241847636814490454569422589262305851142637366076553227016656527346137489084710738433991861440835758472864648798307387489705871374380305941793770998182618193831413994360810090727622978741054696551359287307649646428527478179243210595560483367261655355591561747084241979146966275683073429027045484348540134148764506168017301408259668018434898800639907738160479886724402838597483447627097962375300640010960330601910893898379565879035133909583892689993553226699095473987504118076286310817447097269865800233299331852718365188342721542213833736330769976793838695379195994742642694886196564327142907866731459929475614533167903045833414658380481052004458644782660460045352578750820973548239271454921721745306468003588258240847153653839963262570089538163748497897079455756251775644101284298823703093729795376097165246909454953815079655054951282765281482944431608352927708510264590623464807317175734627041803913584236285038046479789268187406183540261511827400083031545317099134744875049857181379335417578542772292713025124012229156818697246852919581068462639549216248299189906198260297688298306267582795461581708732481688224419584754913346446225547619593378595965133214505916461961348427174523623070822687520285168993455740818355013248629328657004499085388977821435714024435431820161977457111357606801581704324684392247076640064235664370067277757905097894819585266417956068337345405784137709823225851301843688813357244274972416856028872512999005701013259602059930081508678509615500460574491245568946344800532067790193539913207134252157072377930762811402805530901098448877913063428877643593265017329927344906992663533348305339953902950671201437491339282112111269509485920893098827989677779238632996701083817141445014406141719162777621454180882854549118160424432462613303901756937425380503166532470764942566109797107498434920083146582716293983263436855363530073383064841173380026180173891345863651716748502811083759036645293028326344620552067129907376494032961279710993222326055948390304636853947630347538590561564853362304449610234888535537075260212147768049326473463755665018961467358155351648972913185218321142748370809408081134235709169002886882511239565616891407733387678250778160880354596205491055547824023250170543200527135284123817926223853490443127156797768006197806012763510095555763409906472080037531010034421040743277031375921196177072086924482303743189824591759569963830096126023052829918488404246262260235097895863299861223305094904180046585149134221607764949250524690276623047398503806529983580770485445216368547621492318652933782314711349002856613799006882050223750975365526973755266052004863936441965515349846485295181471995623937397448726089629627136412573018776246248073600727545062645292034394468277454589455519054178880388264368803447830782901921859555009536987999928124498350062539516729777732651304641498480437392123532127401994048678701147877795586316778101080753583372174537115414878564166868081591682285379246808009893162683814755924636425163625268295404866815563605226131381360998046511050090293500307728561642101475494739889488931637277023184431676280876303754328068443954116693203469358047213117630110070185105444202934415404831448232576141037610368503905860767962561034052676343590317858750357057868186373054465738248881075598920974420478228787211960467194399067639032552854940437638888803760740647393762578839908413812164487620985397670934992452500644179685763311723892031272150423786663106478988239876368372458416813754569577158328195199364098479051329224098682131713288261164130024435298190993941090745532717145294581995845279631846068971778175070049465610104524370006410933556937213592179206200173668935043987584995347418622795184276598949785215277383370612792331929412010165403655634018104982962058020964443096490351897613490697760922477598192340832428681814223272223570288530146467135161543573475545113413509035211650141601252592834683809666260299486536679052939126281352567543912146320866631324380568250833808433545724135084354834384566438596488103041723657455837545214451067511365932357566594056992664685682810803605972911064992744729194430614159460877719615930555046116410445293068766479367265600446959239129739772741134604320987511605716038786858928636770783492537883858540712655853704094898713365568199460957065173960830936821356783341149562768318378613423915095454124049636404754120951027789295212883443247220692149401271206437914426278720747632607932180871769468773208303293033075381673268983985270690348501534984585290605300606295561867372933882690835351978462351185909218313530702844126433644977385646775824805556607522917400171594454476305003051853044959207902599205177085373684809401438333770078543157341726002017255557038712878064657566121513769305360723460485379763513669484904759804398230296668686804759158858122980955084934807960440827455981938981787390886214280766106248638499560444445527014878236345921555743244863844025769252209042596558079071267186650578770848904908294183725653269573876493237525587212738195761585611403773070678158742299417391980053388457036588619519608542746661489536339744428764981951734545585779338851082838596870553246990110603241735265150674737238904608093937998165067002685694261862107847862740381686519547330058447155983593249420641442395196190766295228002052158763669708073150312957110418282641136028311367172977617332870205181116111267708194672170741650074510669764625596058583746519939946890411055241094655432193441640052609550848100507962675133793172592117319273116099321161047913155320156346897227142489870700826122088239994327286940588122863226630099840930943280485902574892302758295703747152346166240503637070798207623013725170880619015300102826215589860767151629713936334046684552041100972909961395378827668114548563029146187567064741526495767041628924891555646132448473550748385851793219266865072786681612710663653511779450123191333581552243912952885312057219310130164039574906081009432745188460392090187877890038434095852362360532594876112244694345259488242672202201656943773524634038405050951366450510402779833520951685095688238663691620252519826492966346296459621194404839234165195796856662527948124140698769418753434757119187677078711281041192492895425715627941668096366091384611343554358065689380162240570385519768760771871661983556049854579850518825929007205788656171618547389461667860296211798966312087792021242896308399133064039226770694199268830181954749107908721017995976700788057524354442745302004646812534515507885809885030620875569144355547407861595146206830575018066464209340796187455799756649569237641247074324020604898123179244068428117041874309789289830194707977851166454961917906134952503778264346407395784904793631290351415816533881187122858447806696599112067605973606201919442981246749304397250767244198647259318716103999407070473759796300659282736696782370538706334838300691997898650571791652794870453211620748851760335671569746367115651665194040895211839281385082570698245339776294874862072922541433248897256950930624763639319589513007121244346960194162443271771154191661193124959785138425229578109661084633644087588249403152424009327501595883512658865839846120070039091179825699156868482662034144780456802916304354012760185860629613152532249049074780204123639980043581099027525993888265580464069267721343928831629473200954571506023412349945949659257737272471471948297847451050971945593939482740029521497464423331800076180099020670185367563407228480049815773580949307727753070934581770155643919596090367591751772681867176213512563855249379769278968622144727847515213063649122585757272892915476710965698154323508767292326489936825967733388787330803420388811513607891100046109225053261303539790764278937960318271850322568570517339345599772644061577433423347575225083710937268677483806466367898613729063476006313893306165067750503704240375313623131475345615355304305169352711836613404744897911080654409709947710731447266467822330838656951448445745361799998854756311043322647146361612466446223650253160722717379438322112246379169795789108693594688972150857716771718426386423077020478964506726926979591224860249498694109142629344657448536790186316793708152576905703455024604644751668776762808396856883857346728486978126682452002043045212946076050760052751996520162254854566493550048592872835190259662966958275353031699439502620710491417672991482172369779286598317070278048575509224018605217879280558056027587418897469206696867100936407638719223465417957960927250914633730434907195446859033693059688451196317928377796908798228054659616240343813275643726381115149601874808278245099016664776340189887458768935585484698890779173308041103123087141178353824544518499950452059587351547862434921708556348333332332872447943685899936625381545678194833022388613610402450745084484039531689826896829704212081981388345123875577028315243162520393277970507670482987393163046760252768154176914387275637546762683943677149687001838765367218779844054747201109840028011928334208098205111150764413812185064088292219281159456840645351237104652656734680835941162457258684600589645490630566248895995158410871860630209686167924372726569977539679723685807862857784372137444897023704018395550781563644980939440955741466749933842427168515602452908109488824546445263625368522254206852087100432312223508397818244383919332517805318225106447411352244739065611791365622703648213497898164668073755733635038811989380061779805462966943409103959935226682788696170739323904562700882979270852341752346815438481438311789276071766967548403210800408108200896780815726910885103711969922974975659338689942637188074716643965169138224998629713363028453404224023747025620517761860390184903192426303926835043233359371532473269541399483199502820208785732324435303950955834332926118518778903390972997601261678471421965533328133057988181589901148867515490219895786227635032080655785832526223269690793083664728083174991923809217412588393959459215921104675418599181722770007272514552088414271401423218941193762397012844024124322768060627938499777682973108715360143637080594129739981243363264978349924561219007289416047860977304783293661635375078065152138362059647347703900726455308145497521608265275595517709702306821090843949394199354710986765154335850580635013714515899200593537393567512158451104037823140926208525502843095179345605496282154115671786966291950585278363465645859980150167545997384897356306525943296225740957627598697075381362380924508115822611728770350234678059333899023640114185324369960136493997800884173248267637801602669714704561820165194044006888168451916786388969021740144868629163851990893130537609603904407018563204687766092808506731169308018667445528557774052128713570698716920781847857122170905892808433992865365809639392707853631006071768108607954281224784411859938005988815449835652762151778761750824982807379608431016625095541266856528137881974708681999409003959881904899749401181443326741892503212043989207290815912102854626463679670331934299795636444700026458710461880586484227855411379344811690202369062819174914589373206470541023556233951755696567295766612152349723247217934137790574566421184055740886064097434592979836242607932326173255048985285246315626621455869284768926685345506206182275572435078718214320731874934526443399519911585341121742963871922629016719643954094765009404187322236378720182612573253438929882415719738275762890619061357834450590558065591485568736341296439074887397277526534595910650949659923887843069751541709384315112618728218890462173318316662208740798705177077971520862128094333840409680584957926217251013330358897727844814121494720817150457504621474818539186357024764002311206320657981812071530592470477071777088606013200627363863655784751750789414513650992905207807026566598769301531239086269025159796876227159128932737122970546470566899621402032639778530383123839900797148950199980759528047040122080390456399933592644974067134845461766724674108077621400623503737902554091110397150171057203861020950588264484784335206403566435004616327953411713324929508927052078183673759407383766448584913094515622097455489895911036976083268564918248123676596779818398912110234550526057747461591617980549347641430611008762632686876370803669901337101170291017628201458544585853532864881038233187770571082884863810406183503891995302633047981993366842968831882401288857829496404206364013769806956629603606569186494063791028769041818877880026076477791125897804931344235860713616208435519467952576300012793771305598362103563159673862316621356069662298405620732929735851371886431973858948760187284862051444348634026586361785985442310453412727280235109140542894908553015920789909768237634074549038055568546881407755652459702071954305367434379430298916675690043793582621124571720721341713893061077954079713553342089417666639880030174130638692156179433599694894755320714475826401505039885279929427962261329020399513611235429562532735179326772274086931093453787684885311312772823543632733568260326350733246803068749673033099555418315711631716917486879259304890395218817855179326033036121206302103001055541780767963796649470595591479653671082783890437587152169154479446454995133973242877059251134868190484542819469209901743542567834573851343451259407849304499688310819247160519602461800097884198113346303691771420465672177580260882205098623008733834715370401510191693218842404581815263133626901187138691330035617205385144357208770960538599008421057740480206192085456815885986584155188946920787253609208173510803177907461305570497878339853890158220658833604296227081851663842489185025007579688230126386411290295346393420681683079376833429553224761575176350031295766293831661361769560299595730281615176679092843656141368916234039822783799461119015494354185716819106888519527871089850810809975918347735374250636568602396316555074683165390751138333560814414737823239946283597350786821752486407579573094506486944762889275575668920937366337729505061668812879853864272156936801967394944325502469163569828510949552881491664076165369725885621749695570519998526916992650994234724799027912919229624060617199634215416615546006196288169223648631873873352957505414316508096492331063532790035573471122768005293808014641089882126191718529707470885118174479614544572950752346753896362045745444262746530986174428054939698564037262353325778611710879772317703616698400005565436139620723656444448727838637590812828552800902539645782474530557125566746419293000576894511051931147765838976542347001610949567699097960750647727104650021474563628713730931170571693441734845432528858934210156760818531798575246053263885064623879379872910592092351671250817090414321521014572047359163899792120871100582636074824651390365321163904611318025180883059427697990622158788778981522350584331578505128124534092202082454212699448686010189325683920128467395534445435817309904817617333306030569955263875246848323067909749488245106012705507136535171609709476323736615242178500244511827859309795760605666603692664579013914082742923383628414609946793438371561248562262808382044395290532374485612713805129683016607447950781513503582731224016626242682322357769408343864527879616409948648109694774395878973587921289538649332685201527083059054996873641718224599540492420171851006076122973172502178396385469559028481314541639837624469693677295326374641266098155242085902984914103455314290347468784944845966489260856431041877898016665082073902792034026998945413648800424624075384072345379378319770674533046383378266595056193359866452092811013967470962167161514044830906479457191309762102988412890298003289978225794401120652822333296144884749187565169495883779666185365499515941628715213677283741787686463667285334023130637708900639018834371826111120831369436477966549605567301905301935730950429432494503632693693078498483289077528329893396483914541736538852280069758211956786639126188727788344657032336185296783973129471084547151072441414034421895362909154275180993404822890971290391861392044616565816677424802272724742747637100591826594992483999141654785090337922299052056138989126441216523463608228904906606557778284593989573015561025608027100621231901697033065389904448321239429529810264228307256169059704257314143307848232683650590356099310302309720406983004638796949305772171622133075348927335202389806271127318162906242540471106996130288685944317323938654030270698125492933914440074465623350179468715816149215497690977749443555763325739219714620949076763788115581330131578947610299438076166068446145743520658630953208288978177771329643329113517125098005323985635254092833006381726611717958913216783106032136470542870473161113439124981536817723203073581911845409634784157737204331711894637670274658619133725261231734177485921645129866907148504482131255661067012499143654632031738191213647049073107334475359696096458942653235694547035016325110102350909346002118031921607476351500904276224592936943501934008158022799730142121890314722880228133492707488451630596612769027947938526781544554450032619127881421431460719670787605466496323786979732574666929478340272076141741645099860994218227019286082039600089747645275336733071960217238884574235770533091859543289156515800565894369254770208874454492313231663919504301347994333351097280415786869469464366942733755964953466903390777110212436349973645915882775535602039943042194906699605639407212105336209688374989041647957667647274593263557661649406898400610641847130461877614356665247805557602665370127462326367072438895594874641794079348402533924648584130461906072680286251015574065135536759925137018619051859117528298126373649682101263694856706857153929614221141791176358568495924807631041105981650307137645172678416564396218072235505386566440022832009158484683383982204074052075371748138226444356416951101781083998654981988837879219641182126464152148263392190549007006237257264660408312110422194161360030306668234650387407818030636293963120251811273836671029570718481783913712614051488306269317024337115834362444768812097727077906956957003423198795067675795952789967254846446593975647707408984990181076995072019353386269048891264472757375496960805888214455763431999283065963359455292045453293572557654251765184700999312068906356915956467398040256408185213393700512878182576355581954454049689692476870825137439750144284166720247647949126909872855533926079042844231630968014638145357818196736514450405821845567732018530443897261446036147415456278153841424072056832846861909686997429164951744414768174696903596571379549719688941021259598132008679855551809024918517557970409804885418126920079105543696726286800234390379247401877473019865111860432977074157092900953394994524078209918580566436109161922355303121533089177554780112957806167732713109815015862463402515738537605969186253774715952572623813444119035578754553665420644859776309554897916484091349146030010256621573220223520575515545912750490888309508385755416391272421549701011165549360060745589854036105057583095652936405455041116265236723441656613298915079508070213439874769878694788221640890094822979369872820559564763376648217551446121451976369934849003741647810518924933865136179096417223128950081152778360855788359824462467208005712310145039947178671520527128144613064542661785829169425702690501833455101861179760675840832527272976703744861416302079356741564952746604271180078645380750418740031461342685931747582111709446622746516213139821815017876525659326704621070101610504895706992366490259521263025636837911412831414907405177587551144960385950469670914480865806775318946648004849279076205906553401560014753878261483943989828771613628402276227282882394909443412522141722567335826797066131172077651218104476893680600628541500388308776864201891893711195898613001101972834495756619389882422783351863402190095120304308460350903596573040150538392146399876461614657755894323483672014810233542283668209407356280689226434188167747721307648058157013060111125634810496760694231722291647520837748237549627462576595264525949443273321286994488573092366072378996166113780554281635307693754333516579787649946667099979134605701493786049793871183547107072533084835902849068453867886804727410197871912178438346906028241548013372786353683532047181864022482224402175392554602766263454764850399951291049849672315343320247702818153907647398375077333989323551161081318835672580919786056660593788778573730132731436770747807857898373559784845940053416813467872271274906279586898488941837680168672279181297345769464532008931399969192422474656413038155936864952264478978907459037614364741512465022511237154943662628936498846519607726710155485665997585423013418043259659575080981176526525279977696523595753142049959646498435626835686128568928413211945036503472838097452590195827122835627825675919184172836462336228625902540058185328988882180584809168757935345003426733091198030520989209198663287473593788158702703406946135269364682098930450750745003763366956249554337266301889366674592852621750003687491414665118922584874822987153036858933193205765924019903043984291656286453439762455603180329796982662598783406652528180290700185796836536978647393046544628694709208742218948052494178467240162126787695781480896141666493819038092624255160644120270053929061763348525260879450350839477862690828190075508474187275581395411179498203354256027415461512844400583016957705960241192505744664506718855538275812709512869353289757597677155873784801046778577993175759218459048017201175802837403750973075915526206981665914752718833708013694613794986963421351448092269660807806927793820018306313817660422051175029587159055386264297416878574000319021630922929307872727460070186686009008950662515675544652536392156071136867021901657880639562415477326926125739223485450327261528095259838284862112201421876933904197964083969307017569626171449882662044962303384129555333440750384578043819289107678772230491913839894083508569639081783786518448593690148071459120217882348679815283530555339811365259895361167615383283428322367368642039512087930567978735731865552705435367753102228793835521750267506725804081683592984094530322969234103609669614173103987684800034620052171597898646319271924388960157515839401755259485398194687723888168179933842204826044440570956364115449495852360006614449668900640334486587655252337950600864438238226529813757677528200306803223619789419488437475139138172277507137698071220747943253296508032029489766399890865399878321658674184846234419631616936191589982721620120998973247154652942283282469839659241485084878717750693999870765465600829408127181818157379322670839033907043379968396973565223501859056645073581264244482254291410375856970725644491811280571786118937610268299787514896508891246560227455535841274269757021297892972861427299839490870963610670430250702120121043234443514562881830808809901321847901994247048635716100140582776610728480375221719682284875472807263936517332149884481450161514019637205498804393052575727563544012355305563085197376218705028727507848484251002949466624124422623438787294341454492385602462429554566695474509425808811706285840638841814684411375007220938603205318263151208533871892911987796438032916433925518365394645331023635940391752251450768103018077655444964171822029092837543066635956402648346123867238281251905825761256371572939607289292793626437053200178293757232926595375183469107961714169148189714726294337902091480238844003639553668210643671829327917745974711713922039373323202065421573747287471452745093771334871111203633219604019001103720543189713975701902462153700032513017317495931803187213727706417633902750857725757399366433161045778914136766221912752627750021117844128714504308811614940479871271270254267536873993639797961139081362831566495815974052548670996905119666288262585668387802931065286632477479836304387085436465431066288948100183586403662734751351143112177733990091151568672537136144449960367818095357278014088411306244321629590377498939854836572007818377895145332201017838129010681730384189644387010618988966034182814586400758328377735390828307272056085961843085858538857448589902946621423913535062908710619319214974072536288507948013355820498004245420910897155441553139271374477240423855992300948094629366373328321924111698468744344838050474301991398289454685591564536921588757756757316960879731367700737557348737437650519167849463210507632010102231092869554876796406351329399591817104328879533145430152914552906469170898779746326358105522660815534695002505246465788577300071272075615122352627946859440001441617860674573194576809686517406830274989838300176191277073660441758497840123433006064842778159484913814510345534609738130788140107702307859767795928376973462984617313834223297436699086462407186437525781422481875982830245644171138160677099087013348942182625215714133373919623288183574283164621602389568873093548867856965319532638605599403566583169115271672822815689395214740342079983031679913323118733899697291646058367488473494869783591493551930659203492716713826321514144750735941833398015006354092341901698398276713645278733102557238774887336900148813762277013813643439196543798671715212622414217765725650083612302486376420078592228837464697514721021853450085419372792567198174410470892677118513380463930118126858663329108330190696338686029232997840594547024340237534726288151249113477766950734925534087180806798987654463794615831223442164338926805756747014294745154362581494240504876094867722849232812532409346719523869824822801310197764974515362184191233164288464955687973699606152764042962811933557883696379563816280723705482289786067871992657091180059420528789813438110839849352116538969727942796672416530223911901647364345315575630070013873688576072631134681133916331809020925515090147775461731492312233461536320032772200175509479293564136943688717709904811577900441323662592270042245581735187512905972813018430223812366239678551390949054557238598560620029445613036322026878992469863166817446880210469168300975259397267395224847898616686386163999303349497456913377862740701175116551309888933456340981522508486361360442732046277505579483823008182371344126370142634178721011992722475835525950794924810553758470094408566817498839168518888301553803169869066066958623193179670306737460106021070819834054025759885396185760938392553638881060576497130796787804671085262474579707367007806588340038002475327393853434403822060031864703482039643774657072446575342888444586696323914963504864681917067349436875709930706640032218058265592654555958805041120026177249617107069404891740911197643432558185733823053430346775481793782050826503298815249434947252907802205347663085844899261994876083499808424958208016499347438640814174249935477800261435067127468235807665549192855544267934779222835761199463562374095545058680147007890942747249289723921312454480244784490998997026955310528218496635551048287745026373491761538952135290822336958709576353558913862481683597686185713505200319075735826582388211038296714421554708676818555572232088699866564230509916387818079764585119662120520260387333194881660380412280761898717570282873582598952948163510173629077407071822951063290241727371165669062842555804737907485835488804049998972676898716525090515292179884930706564248303485162833879986680369932277920515068119573776162059635181265937039138456897188126474378669937643428031817832292534325660822815686041199698937220869283968423644097849588585371604605186965366646109705364388818122886681862573577835475894451853235319759465385194014490568450777522889402262837271713408502326478991592035975697307667255546685810728717830808647880448137053061382365039630215958144455339087400742807042251676615206773790160100494153440583264459481019470708182308267138794161035294418573455015040738399440585674337807086274016126757040398539717284409828053234462616163562849406114181936503292867038033985000780044803661336105850450744721933548091988681560329432330125265648996448794239544545392990772990844469554018426815204387576879773021982971962727129398626936186147177199394765994967423076204289045581960288089945341281643358779711972222750507243670361948108707718571938516875445222871315200510501829942452510460706727192284340691385133176412465467699422773859949460290232904744864480270268601369536755059535297814784056821431981359410812730018339350923571656349021924904601199224161840124855368363438162344575617886525661312896406621764747048673225111772650851876185221610250104424037154775745942110105140327738567152752989007813159386505865901128048955151348105941823184665852061716383305314263842859144611650517230979541042470196218730434849246266988276172358070755081498501300711819298777677967250831509697603832997731986135399261014336039002502120209832943023968731064697324412520778213972165886115916570526510156645496195948284138149456802948583496593553199175205965147038772962785295227897018462505856847935561589760271974452748974988374599382637858357809118402691296672381677342439429697919686410352927804802022093186551553753814309928409287968023887851760927482347000188269945401906269639775723414227858316982329479339568391952835774587537905745262743412709858255007686940209655708542146854767670851218160911096130117104130403197611212081159375402259315498568186961911491755216914032328396565656379243247803407089307971312577411180502156223317658256073963326864529249172109916012673845008872576677852965949515668081481534298896499726975363513869216706751214066783124896858845247995645236974846051481466771596710777851796064050991944178743723752379064403337484836263135349484857597431950564528953650348151005358837487016479038663161783819795428854150020500052013313558837568569679831313318492553997076253882241772795876162676413804733349755260891964938353126435606735411950071708148296091999579027885176558302787815642960281015241957464388572718501033914037371793310662851464232707700649065857137117426644479969835850040490329545132832147333831195582553296548476023188399086071205632193733631243079926629809918974670131687383553987852766573917368756773039802259962953561021309159716604502611239469856804345189539034392511345968602564568214364035353162856907506015981440218357262275609811938117725178263545181290042233689213652416080035563575251138805506145716956477286079187104591815804984539564897902617625600931712560812923304614936938248572582819279371449749407453064380154786049581771489048994316049765475894913800099054087861853710085695522752511019352080337367735521897763957582798195822462843733246144418801403168037296621868663293179455435896152965772092209936843584039997844723477026907542718883922841602071921062809913104328859272403842477855836825616234791545346744430639424802199980807639059876601065663838242964310751643830573303107295084045438913565747992390894277143857849985579250834962808772688380814453112737245583973219044946619853161149466294057736215362251510687033654404720622631247825197220189762758702926309576708175995590433791871704999350804868251546765641739123193856415301810166268029444668709761972168648763229219493716692988320244226188283182522548822060616386907570642756748888893562059687747866804469006578697751669988409139847388953125215845238749217233181732186836591104726489519918974726225019686690997792584736313094471119557060952186828525998571843035944017029196250101824940692439228805909715592185814167525792802539993537279039132716911209100624788697801694531818123391781910844055878124204303548101892638312976091573055741258269937705055975087459503657573587170566579358770414643083708262276180984524024624643303472315001186010914480960183078467693594280059727944819707236485634610529101332790467664655723304023183331175045338664935847849377444494941954259524606989958789622004112043484577147853442443490593414016611537584330649105180798882361267890902961662767573537135753608899859558359137617682622808006625338071148621750561079498219369867328718404983585371156482998643467022608193152837126719703611719100761194852545323682908105989416245315187231810782654980368549719224026212674710259428724853139884002263585575530260438323590586050166191724810982304737462387752336099061097875227698071400753438407383850699985303571635485780955433710320544488518278066862067894430512882509627885437790280759960974998468193278166215766596932836986946318604354174930307802330827028781256348188453246879315821936538403565876869514560246996751797628732851697636476566948705380706989173255230101891786953447780774219589141076263345367800966199408700437286164437632729337306762880144982584685095002272557044074183599492732832987728180522261646917930498101707892625549586015730556819297401659568442887814865783098579559977464502473010800619797158283992779829826874392355022745750677496199836470401684563482969286647291907765132506194521825169799400212633464133303510513766575762443151971824875335296122606764875156245158155575540307149862095836819924267290676260412489058409488871849893686289095550589027010330971730582639923964287502112906805436775414343560641237786654134928753327548676723496455333076007048774185567938514737628999497373597510704495115375986797978224140833251080020332795958025239577334396196775858558695667066747702676310226904535300236585057081214347540077767964772689000004737780403204229700940483039062959660727594479090776258478039434141446166329751864943144151314976700715289660006366154717664429811836221156815298556175143156990546147945276788158885509030456151244163958538866370723633061296684003339769584664448192452203415972450154482207969910253800087628358021475207462624112786370692535278624054443200471776702039710583115875408613748945966890200795800230714839980783605279703827907580552584116895135719215376214133660262230523673864425572208974948272036212505943160934111323352891825525367365420830889238125387878062732952618079759883284276989407673169312027295461811086395140308757888955492108137708196801352142556221707887417436543618687254397522930225963900556988984232394359500838092792321369758595760912779431351079112372813350827653357929481645221979758332698595055546164624398392682717492048760739153674895443023548110090656842028722919418165646641616360154624148615612485676035167203281038173263526522442846690584575416058949388677197901785296109532391503025310839179273539922081847325755751335589602762543146276569754463717252077177227022833468451292776811119201143259212310665858488358737136898826456556766157618905956296705549816687490093155741280195527669376798307345209278722672122921711014291420750166936926412943518706498031952045075400118185733612674157319936550590111028780710330689231364231916329691138919871730537423415801482368306690857019502702910905572481532644899113709858436425969232349253982496863148702843504926665023907192791484581669101121875435760206102192076411228746437378817251865399483437241817689039399207207221617319635790087509766974141254694826843368160036542911436184802415145330139737823847986523308508059043150933311095052181312105059423435876228941334551855636677917045236719497121344791246099790454716336364492048680255780217993771501853616062809518810834775853623391166447867927514865920354052100885707265339578870500032358890039135554317944704689591288245475704456165738540547061147018580053759557655071084534804775170904559667034206649152373620937376228216043644391368803900330038473654392601739211513480742342676700098725560887619936175912344623353548657367094362283166426593766448381983364424521627176931202611800641738575078366889000753987334499194681591270035481508076751862519402770085821232096366379424797756273016084921705290714668160178724659479709926726370619426986928343447609537414789077103128694777582289064920187148547476024315595291498517343155431406798828373104613294371723959997500911957371777298468695784300881833008368550850741881816212228389032812341082288673766636451667335791547880861831839720421748177019153488791143883956725666212937314446700211830917207857299397889756034224333125915627606122926025229412542878026234364308404607591852082622429527484561815716473422161607451821398948739260750219608318594896699541779059397127318803370059917704248943879369791575616166652226194628372824243949060241058122463778099617890882806366337290655389597948821261045866695459074000816086991756703086202146023274576730765742429701539484366078124902581613589586222721667776378785293696955618376572758161451052493661549452620649578415965308446577556531646638427564379224090345619152441874838539033783016141697455324074275693119046969213899649334718531372715036743939315885464624735532222022595415869209389715754416839735533059602221768470927853860056852612068453422667860011615375255079860547115878294652054971974083609881824368900857230513930553313425229469052086554225810286799592326420960881308640321266206362634380152134365055964453539436772324541695726212030614518949432614149294478426803846027341678046244706657405135599430279937219579064254899887897773482072847244389711936720417181233776545564532166570533767976226744977396737260817821991131865778267124763695449196820346519608802092674298940140355072024740668781583118117006082545546442234056403754637628745345412858857840370609670414024542185195563102820423201971008164736776000087027877591354476252289584740179739788086966664868105382101169768084818448766075085273782634913318789242273887448077333975550720358219818538487484009768780410926778044738173167682656286082584287350168314613116778965083380254762955372233401772167610407095678691499621917729467834627816364157989964495609693891711244217330295097241199264240206289116574476586136527158749132272261842635672990740691227147956565805857180395277268656527292378742991786178137012346430105006273734322648475534164587754326951867297680350169903693036903147670625506785577963713525011821361900275018619178739521626480803305037104342329383731856589791952478526543605110725404167409430407874956243674237110497405254794191803002711046454726376888136788273951382347530160600188496016982275092859702884391970989186978776414646782367866585756689246151556687829107587084147696072559130345936640513121913108230110183891120464693600470589260721771179514858381650031281959830374349268729588805127218465231076869859250843552166673660714613884582298836699324740048386412347055360162388536422343920688831841020301923003565970353008900436461047746267868369890518857100204889598446209515151681880275590556229832944675200011203148283067512431941475944324210864721046743998170319880697181830877071690984310385127660276125209288149486108964485023123621969886268324128356462442549361076672442686232063754363635030360942996229506045510227969800773129262613393299154351888951081571023508570265970748581262083351919769222993638662950505648926765034818043423220946456200088058224782692285387326387945474451727665724905663338644178096206127951258763660571959030372245067188351918596048153376785113736129474365726534539543593541092255766094915005198256185241938373157189510516647137680364735469096860589258113257509457948779113024518974286703800649543529669647051083024888807408032566395159320279829534534193569244692774484226553613873275135000690337594642149656713823947230708100767553334030453254384743084466628058109971795477019012345969386915451607916256267013082267317588479246110195042081224293058019483011219202584173209143863307089311779185770217263611270603380115503340804342350667375059771805662061079398819679124444077579926450592303498749427552842856707790725907094976803333517533456080418208202280249919305275122468190082268864771380468405437626053535520552767600162618435624568914720567478473035904883013628029121945075067865491806825978346614581611442288014911095771124359817248855946609113857068086867247577217048074749335285961600188980391492097592456273783043688819466995442264389035503782195479939134988087255382297472452632914256262054661912040538726024599566148785903055861038590557748810854529917688555834289941886234746354586823987467871109736985443948574727963235737270914046176550774201228113693486636927854882545278824408525658046625964850035282759128725273083317155170079699250339085842083812179657958150914626616075440276195625174202532400710808645231141517228371902877476805279708175133906574093668111207541011745977002297363008158498668749489344670134552949354169953233321053544849533399187718209948940376614574584142745839748697333581866136577822686181656826442582064802120394843664705391821121614716450007479093129604080938032322071873688727817768144494713482128919085932385353608796860784071538299237448657295522597801496633908176746578355631541221184341278617488385001645610989736822568443292480832174697965104159107792057190261569265036535308902407926109983935951563144756901158282472810293667289437747722015863644710075771341455210097174945259706600290601620130610139768048441149026388580743823509846598983156119226590031035056157047925327923151118461279648331147833432920310373660586737999253132509993884173072878405413870329388340831067729869426387381746753618866047674285207870106274661469828707098108779789617359391806845722404641990323152926360553956364034771611788822877859367981844198210774996186806731669091758065412736136413151959162298118214263148592721927159931026055910634656792783732982151142428142875475702332228903517678228622017235387303001157524661931123396715215887815547009007621644830827859979674711713764473114938291115280772119649015043443301426946806271344194483520620828574499185290603061273402552402733385010148599716858703982664975453513090005580741737925000638854190308261067990274345514230507096205423996669024511695414206122149383891877953940809846249005104983880671508314764431329996156487302289509499801577328673460453357802663702119054688647229181362193275427970451768249043094178012731541160017760838519171366691458851526086332450328874664122156197772879997131151528706281246869182052518489849806965955398693724629299578163694570151532027250731282080605369733692503842667091339843855300174071035449053825228678611471046477819400195941228796785260323313781508068943563603158341794937268421460829358172685284995233125037082271585674168724976478839580516406357475155155961598912705406609010865433889921866116006839166319623230878297608476441571140405594762181731197359736138552528662157196561285728468672977921369591844742751285425358429664889309520835880978531028227145425674695771677161537936604811175919498585678166544897652766232066662344019561389285542341389469741124691976306203259130235874037396277359422167321253911155655522804090204440758908684726684615714305139423062918952756152640516431769458193629489571599547225943178951295820169675067707317022120708197989923286309319186715814070136256807324250309002245930819831651728405573657481233744390888218097488006608671437405867601689954230352038814159139145660636809913998734059168296290644838153012193137784982448450634264881980045799920045184177054351188789160823333146389812293785723885899122954939791257721577016298018282428239970456090450547764710436394451440578372159451766817448791839397098854125905279997969612925127346502229415552963990592477539264663356926659875331478840420575080094391032604476159016179984926857316669076567236608484505491626901115474907749629337663483097142416573192750860456172768156679747822523119048434025691348669182453471897477338031406525604175179190646487973580650446062487628568594770307784706642378395650296983917016408632429624675565637298444727386762783441640088426627550847468800869915979246651936798630354522401769883794423756063925304960224797929015021110391565611186599084340238397843137591773665676916976094227346871438086413016998224510705165767951506130321293161177363990925463005027543062650523047603896248098203290460747306708682918412227586812502263112734429633538437226791393881719064417260342699110459490608862354209950897289976089424799543773090008532018361753270492483294280282494430994142401154669063601872960895425818922766214382397148513405099047645204597243499174602435102460397116439961190404280622555729774549911198063440433816629234623910350057312378834734630129812256145370323627644529252933381421296737612852312355622033216009248746222860499136562580423184783498180787963995082003603727973673637418212800098537810202059503459285928614863162665851191398851405950671518862231653468283116536956108456690057831225026720569794515071342920872122649087161804431120785260431127724346959544990088893545437002025637215039072882491937359354658478257959197514588394439376927075738699550896937163327288919271944368939810712688171858956731573510540181255076540005658723247964387386812193244650229618709639969824069596337646706587606229829164845297518424106130299176661539510916367901958142230475495824414117020134380972894553653626220054153673473417587161398905476414963277187313347631373097115537312993962895861490711107510416121355033497199953611405669309672310673954988394377566223394936984352636422484093748333422120902597165718218547353056661762859049157391012985810909398526298835683960892813931358295894310263893009314207123405989183988019473397110235160312962733285097609006276974645798844249560569676790762469491066285872676990122846082806999651280817585779038992984613995351497233404326025294681064874126696692543586298851241994620707959003796778029514576002882703358900926563736054105885161337729805396836685888151918269777705064275286969721848004961204061541376971537108378547047919373367777476862431418695872144657506666592163034801375607210188778260821379998489902570327083969689261303913900457588591122394610815047469203295211163216297187328886705067968695894914428468689668818138858058377969411764316739847602773699798856658146086351688158051987771724879356288492106114327039771632658093836433020586062272637515536278921060247395704344583295834558785082033349005325306223258418216177519771990497233525547214063987459738484274641110419705794272446424778148773375999728040481874274568161974701291047785662895588312886939355291528168725662115871329161640829889443501213441860620348641951699789586331784669695468955090222906742316538120110082026898294010132299209257716082462035769464716137625947051620497495638217211687785088846817440582598471625306706316953555496494360054984908642489624313849098895543839957147147764170325765322132499666265283086325453057949303128918888646998439595289032974005303164948858427400674939224189894673365361624793324904674408182266368631355415614293251951278818657815201762571017290421752927973421310602431672400528779202946771067924111345528287215025258735752977537456238941751604714858970324657646587737779882068053249850227481490092024639890290209906003160924260373994048179207892160628943482093832267043458386451013478985164470473769674012756196604183180232402641152516342844063340834603811833082223567999543233705770183177509356415283764806411723992650148119250984013723201776628552319567319649357434592688973041234756523225501621492399133922791799494316944081135073278773168425700978348542351996175193115467687916727175486605865059007427337353899297327140590593396149661940951469944647795653671325047570165921088934332588915967286945566393405607986394276250738454132247614936304176239575530556341592058414721760720814234867317589847065982219253738361256110980800043297558180804372240783292596864171251190501388774659238205559102462312197657864136303615874950954532631421443291536678991740439859658889897006779963592534283299574443147556008116701389471580499400851430205320807190301525294530509203427743321933328153726328263506578161194372231097468036548400319292433737979150530145058394850472793184676015859774668859224468017487198396379623557985853700399109750286563086389047122288241338243044908337884310309180008496091579702577044700147551940564537228391320705300310338796025537856408885071481543786485217947380441120808266387520101185989702844652368597809100912207140444038365367649667042064875438757988858420710080141825939086333308706391393969756613208568705859721770797203907741446286970795668163091693574616115755840261817923938098259083516995509703502114994034264626023048606710565108143238701541755042144737157318453345746138175759312496891606878306871879354147831973458730437439827667224710493398277037853091346707522351003446904342750949719881128000737647266206803193674030576425007466386256443196484289902602248201620155472092532008219546172551350540887275372222059564945434227355274523098290124127157012575670737675498204425985871711627940091899419600388055422193130797026491338014284993351460382644736247455029146675125776521323290491956924197022564940901414040667993190875420938097076274497914243548420316986734802217794249726064478921669776414271592266602054963372281424641166726994768375445079447445796433103313625683702860062710447292807204156311989400123419719534063644619468389104067020529380298227452254083095350178534487842757085611818802868563005048891658644459167834422951004575152536391034004491752038255936662605652425298045170923500722373712498468130408322094355247108476246057556917202272927569662462682922231229550055805888244160385054905734572055713071933798058615868467995979424870136841051273060464810357353168642784830308642319172439954088188829476717878229726847787494271914575813329479773852743334640899449067098234717867087536968408786238724659476608930891148945734081614691208934889220283774655644630006735159693911285579859840472688281482499037742826298223063507425242417870025724912310455518045732121663746154660957125058397467215983014436502395712597461851085774500606838335004753281438613584454784574187958388426344067872062936078926415616445901866084176946606612451521539138950291457233617272871875437398502840378163894236731095226019103284961646840897263566548120603170909742613970548524654024587826573277055306516837029279099206416227065300175910009514744373202684148053336455786683780222188609350512745113034429929204073341552749391552366825541806974087259041966672165577382860330692083855292434100526323013831541637663686358592064129320629386584043508625111142451740300377745492954725900793283525313880696681392467575038127294419946174243114236445458716980188931768030841054902431145792471790069821933484366006493320930730012356345886167406753449339754933334536864683107340792453961887302515061862096048228170951161681172026762605423014884347610664946459192643080308522739041151961060752192883317157128805085565115846788751262696010223688969045571420111224910060788714705322747827886972506044660540018776330094519304655675442398269271461113612357805394039544562832330275748004597294454805162228144579781281044913850007706777384196071308696862586763731277077017399090270451422327616497188958243982337024136924702832170053486613148557526117318768930208210974788464907320549837822936281715435791911788653211962742701415510476493141554759762890279990453748545512359053310120192886348296671556216620549925848429978720299325065029854812521158028351950824334715860254025151554898736249199504453124525367723958385953993668311461682129626728452138277554241873742907366325880278047122642267715819064017523950780634768227429236746539526838029113771788949502876651862151956043440040527598307683842128691772573908609418148476193337998805810078712899170757401221868353277959245554313192603079761603868520135987025629249066808395716150581219830192661634499748169508568119301771748204051626346600885385208349835603005089693836169235347833801922290079045595365803512989112987068104791485333419705081066582733662245412011413204046397361106906316975084654642831500719353400199122306331531326666144342467434776460728050051854566696893444223389384040088745622620961011873660265783425808170685892274704980776484096242042675890367741643695550310901907521265294012123259357283655445052669856357795399104873434175442457769708418646259512193410420684830271375833599254672315822013001699193592607055428745401988220755391307501775395354541035788796835467317693402489085332297467792901381622887949645353213404364764310813877070205079558446628098227401215422303783753713864486165284674874048626981162819407263863240012770670223704349572463847196044213458539049599816575561877405635798882428398138045385399468743412351057254681676407031135944662886870269985405737155429194673946586029885841292711075436058257489883995254527404913620241543745710468595254618394624124274119090906502120783684151772386157843768732036275706513532155933724713779733302411524225998573726727855497562030273882379241090391672832874988544485503936533056454041065250543046589396258184175899665849911556329258936079401806226749545392922567571273697356899961231988641701062960967979573917363761724659716471296573923741157286092516016839524832190695618444402644595666701343241289496909881239747740538326647430504410108791237171571213977913426702148104485442674136292608960127390035688654734278429446128604283630098095680496688162108344921838795592108350513328658625884042843633959022943584279070017262196457254667898086334897779146127970063168609964081417156667560172088287454863216735745581961523822969219687766396247133408875509376756278107028785336506783344237031763298846356843148768447143597463506085995580931106862247771679059741567288717760526934587938967501992919062838719742190087648964196219120601006879423972215958101065380866127317362374022630864043141915364116498260549610902995075083896904620391757454037793226661224077072098564058371700227916346725470661405880471357159349109071767568726980987018153509049102144395339830787549466847929647824407422918506025081546932634891807484278160602420058787860303353488030557453128603590784192800455830874632242717951209021700928501976067620957547219566697385595202316244951461897570562849838539751322213390761878067464964303849525356186541041651404235885281403115340205386931472737911924157783071740624098316366244218439948569532268908681324769132621152617149676594132923410472667211500282732394371934986265266920706743250702497796994537600085562007117196392736933501246475961354875958817535040437812571251459486370081500628244295307304467573084438025660448159674907618456503325006696530426611482596761872077530271542488693083746975841163778851453268089101270929981898457878985541278913940337636959545857673256819242013406640606811625370041299620907595510890159640992597229984159262178205064484370047013393812380252287722937216094568081937659367543136371313157672538967788283196287326230131340073544900397968609540086537806776181894156972998515358382207738282129735683105498728354594367543159581665791006483016943106933907324821275194480791971125377516090203636863565108929473039492387907223538035307326543212738749995066703407226405794038868106981464411523142620886037346821250544697779310158108756211712757552166549087888363328279688475117961198181438704816627719439168505910588118582586882691304208634366487879182166558177654518611380960373672050507502611253722552344613601352232100980037538760056752137661854621240546383171344310507297861439555250233201262420727715556864781242911166119048106250940150981211142074107887042779489856846718919117082321347956902663325064709943111329126880182139833158386095243218545063232736400752671766403945441959050261731847671001362312915354736914458058206269099684591748271928509360604930086273067899365019484508686968868967306627147713515640865329986286274187238969715089941006869156100880335652120081857008956123791960389100847128843824397941599941507142413431828775943341929182371265353110430274093225815171101245663181323072915166812441651011417341797073640761957663384239579316908598406012186873569301397128860157654734816795187828779437977147132699398716602616650078853117391091028435039052463582769651876934190111055854610453398581321488996137891452780553586228069416273388361039435949605786106376243187429271427093404249037867731932702028671626439766934001352716210091697607838165602793613291392938818416177517092058860071023866145452888812155934803165972032833085735533585672527653520239965268702474227456485636845866359986042802872339755244377603147269174582079337639469984103917521130763700664645339613253097400107297483964836367049507820860431983069896788268311429923853100572166767323791113941914421006424002559461578781293158273639335534586113740244233291413444578009789984824210526303429495436376091079236255941136469538121147137204852348610678381764977281408034056588550674608237151687376528482833159011286524138359899178236021710174890146330819670883183564415275014220759040699299921515844920085221468800482474960084742573023739296363985729609627869059926243048008828776511110686181666549062827592107688764985588213527251286737032673296316917179426892009878383914554288208834869447851547974390981761324723942290435014288588422439605946057103539137910502051642400562969015595648993167937622585785067991619807147672663481536427873530360355791845439273845012433802939315605094399718631891192772963907075781887359700488261933664116064011386583013869027840700750975139179712663760948600270122104193046316610571937325191878624058894176439278961798856899780389483558131927838969408289018720467830859129399676589257765137147026635172014298485165475148461207293613460336377001391975535168323360883173937973522332144693097811880933197596319965253004391823958093960088453476251329372556173031173181465512473975826371462872293788128281317485026888143690008177643591519547487788531434412685655330848063014578992983909421743809144427304046371997544487590852510008709717238239569605791790227816955997620857710785730825378564096448214580824763277138785747311055401394097371221192797077395276752152987434943439862378637485057577439336937682828874046202881975310457430559028299668070551721014012358272988547741997172631469558592862702976071735920205487971039763295448827303285427128341035813956802724375111226584082330149625899693346316274542133575681711260291413336221805482027331219991663392487735293288439168916846769764756618490330799433714268163380298434056937854437026440959622016645232532192782866068417169812244023343448175945323689774295093153415579693622558637479917164431938236640235376437261824152355437553800534523112933303182973899660357302642344442749166189609705555889223638502323011037769743740322337571887319989974911181123920312537404654370659801099398549929831766390700226739003024485169812846477867629035305090469985128431981307469735621472964829094512521931013079909203800460165505687082653890217027865154356205942056852301677600727986056369259849062780613071201580569053636797009691074921410359540325391791304978944187865096309940754080747199679070670104484027415600688080452372735562638210326544448510044329057767505523368966924871547473603933892665669744672869247667462418635921875650864855379125184892684774464569080065539118027885665896339845944216245034448934970266080892669862988735695018914686720160034157486409742261379193046070964488809412864622459285937548415827863094602591003767918020765815977493190941824480679836934566165663221618949925411561659222691533752330166797729684741024496136535339829416760852595503872163960089547784799091361962801414754444726022109385755764121678214781370234050573322628690803212009584358901322430986465942679423739155620700757228035519319713227684267858860526446851315722934015986594057093499699656572502568778553806542453126949301527134454758477333224960912508978092589922009656326861710290185560507620455352437907887122329227803934375814850686734663023589176192267654021787866842441049567599334195829290795352589608906506263158339975037243495157529790154630427346414364544055458527316775397251167833998422699396326268436458448199833209936042461970460029846370670927791607056991273929083544562251961833907561413388146971241590207756968106878592841470756758620148326387885524075198815635874002979099096068562164214289942003184842508763763001850262564524141804316400942225055484944791441507833870397370390902734701308185738149877798518085489785787051404495416085894603958757847006311262403011600712221694290681187347672659613912225202935389661937058171054727605679584419507052909693107059359166391015651296435862109871455778959697040769778032249209153573832022450301435490587047695022797453721660313563413470569457175772578452457702309091469090662070375067840591702782048561332609888963197470699767057475472820755234001057422446673536158441643774059299877464325553434200973224169631735690510432533288513938161683198222362041723651541077857545168509035018263247170324471090840312101149889572366379003683729178527489727214545740266778608851793586097354027183965819415684229067395094720561373002653518676872189202305294105059677530789198667276041581388781499236578722713010747130569451436835456890924713022036539837735026910915268883811246013166128549753827522395069159425008015199149183682753476625264949376034881529241415636891533681433878342226668330843945639308256838867453176036543119022708523178485544102925025712508012924515983497382889594728735491774867054860387775035947882451145555374581137305958798226599881545047794791674204478943587367643830264014095660203705223311954105350893658777519269061335836131768485208142790609078911448239686231845319968610546767077067676880944007207681637727050740250687889047239030534171890589707862710250889661420714367021582066859620449445278166008831359463534751085460524473516188098832181586287710303344583352766226846704945990246712386517669919331584383806597210689806630049394369635021630490156815454725014688393460292670663473175794214717135014560925740320574487803543188016840914457921922981278184839208356293190069362484980657984821717158251765882435890609894191347465092468112260388135761151028597688351541501236662130887831673407212083189517026435733137630032095648502397542935322753830460573521296265032153814784507862798419573225306329455421212493773348340287205980120381331583752765817404440749296037598217108411858719260803528956441284672220083953511587595271618645865354854329901431311313897702151197271068672054792724122169050848867120434790523077609751446995165569272011368683961397725821130240925313313007032972946612007597382148010853749745390500074473734244882040323487600191779541926087754951740718095525343181587356261429309541523215340162082920566501364157304475762939674502484539436906953314330005654398252624924614435145107386642909725741592851425445120823433160989167149742769035320645454887890554673963048122743243540343424806190433582657977262067779173963268052945700066156451026847397722407326220605165522227595740804080784200001707802555344812379486604384759801598373594726221437724425868940034374334346568124163129347171180597261734179988492639794104945749199503940136572192960979231222105501750043870996271856466741518301763457594595726026441671911330092113009018651986829916209246383250664494364939190498418565432079833181997322079039247890305809882417731989793575702507339477258424076450087761675525121566941936571743164432877155473973902731155706400930772010358610814792712445160462375364040415907483657001889441089168290552298583472900561627237530566679378819194318957257547608284999733207979192398859888519785170307583847067961444261809184189944563297368958457591314637381845137543342341631583299444711247247066685562140740293995781816912660549431215854538377573763971560863999632720132275627457015728850670706099172710804388118173813380637084239187142176559777761389458039637188176230583617887460981111885361428775497685444714268250365223872395133490085465329082487774142247965969663801532013444362453814274061470112312459063594077000651883433742946473039235275016109845640154078981656655437945166185341847579372268717104236215237328590911237797993003890671719943393061660549138584502839992787664865040080363644949163715362849648033372406739185041530296064358694163979158838542319209943943711307015848927528714585494261758673282373873041470928005196451166995938861931362652204842396886811084352282112597459544378156950385369086033087171500332580353283354978163226421511627377103647611440870845553082439792385969347250109877645881760103332087701409896808053096229664786103861992063664773087638268387823489929316895145253884258667307783444448913205875365431192604998967864732695527598667698791292658050342285305098423355092605402322904024777519164390335776146532035319433478476782545003308896663040394946750746805154351263585586318076888900357896244413206344578894331730822003805822024814401114343498587196399257019700434375687583939167755514195057122039897630861837279400256381197427340829976286540952047582103275942805270700881410401379970774039552579226813426385460398007980462854613959629658037025425207624022716912351817306093051107684496865909016581750801942397855661928669523956221644887543557587409164534441949892229454268395959870197194843411525026775594250346654262354274617059033449066056345802897147076191198334441162635602400329270988652268463960181879158330467342903855451264697364491637959121479492045068311503587717119319558643999395997816901101826414178612506349281162901718851713670314038739311492786657480145161365071944286825775556918490166729594678027376820012472626328721814270465838162356130680082818694352046909457593467485596268274121200919533485542541464719280970498280484133846705560000718518984565005738219227478622321420360854255108577744573160567221462347290764342192677666105527112892481507096603464125572630028635676365286914509519191755221483334553272831955838675097298000526693300078294555855625395314465293439674349469375411279187489879396926139491539284042254080772019174799856823142754623641360664143884036340761689618487915885954457784989195072388129501899023038382701201677153461671143911890399420186649664079739077960364355844326273144688277905394723464960591267826201339633598987406989412432305246447984518745035241542534142902418599379774120565867911554823224050529252094479536718596621821404163821502481382541480477815556866778096605602228694351668186451211985828495438271424879941026085566595007262488134931582732421811270597302480662645949781457437589911702395263126399222834959685130000229351809058817942964139244350617235971570712900354695454567080069423579121174775098229718438762464586803262133223328652122056935281759778227239895549152527932679433392668903584143779081253589681885303625228081576088798074946289153521614399475509624015638621895377414949308264361574698749322301520477732451329932532342540344096128470089521803848160127910627412770925420116615114516470138384470435742655699886482658647204986842629119777888339157595563686837477577620169724954867054962608016125075560861286643566854484642491804300279406318678793408189067129935566677443687846219279280092079021155610194008870822668475118689097354438238773901009249447207662638144409118366268479510765049722607293218821021772873099076562081633600219484172120693761042092244210584091133907351058941940901315285168121756889556218227687053807388564091888755958254347308895165646175824718224239055116781706278453796500688918575140087037353110722196134468408114924758206418180710741584455088404483673070387083004189277513957061314633462867107842486798188237065634736812229307354635480527202418468123118389037811251564935515060657838158452618594604446930677988524992817459299070301917294392829837168373808258026648603332617406156603753423366218102235657487271730939580352162773737722316130623342445480129452598184295298233086173821009989046208991685557243034383197896158816599518393356065423859492942266065051997537161838644166651037342736548372096518175803138436897887663148052060184709229015216087969695571739490226197267524878885210663176907617315080015433616898809476578216221934648718887545951177717294507427223474648546242145967376633051862567262377085454510458183578418929595223526517013646842530344526675220479715686841538633592943768392871572418747872347582703320367011266665613393780628273190125139490596479724865367132979369474306095882234720372032275881004959123091289602801066083548222692748026341646054560562637547415723807761506364098973527997472104355189030438618104596051947496089399667437864732219401263101133551543019740888562365222455746535399556830744411790545833549664363254461451883769877724878924665184024071098794667772197391065204867532484935733776555570053570389660937279226103749826483414192790142876256399091108163654045859643036950973974518430167975753615481347040197628221217424639233474531050042597440341300367484463440610726946421100458449310191549291515578166508289479294445367372796931622230061909392313434404542487940192590889043378059487634555812688903991410757245597270078955760248090819560818877819602193945544569946642765593784058138203824251828501162410982606829103021162420337392844746385987961986919765365200399002644258981255341660843535178311743433005715728587576240452902105530981286345319145686501398106011645260811407274785363142089170028434772949537455502156351384555314568378244663910441080311956785074944949841484699802669350789389347255089158982340073834353949328816811528394080334720587504320274853742620137913798440888954020127312918709816078689081605907250746480712353416640704686254397426409480261266618474944673663507100413225465680394243559024244475592867173065575929765953164545262762768528127801322262589316923670712657480421714280861845134461842566163743687760939385050751966079274061436083441996447845025054801026667674371472818871633872995169839430840279633986124951902358082940362856255280190927779413816713687381593412455687670438887722904895474679682036180330616188209158197538847154045946850123788293062673637578325175328170866937268496367717052928484691122349457893742096493805770377345342918354276718794806154686163806046625170626183085102641372254345027295794228707716956008007543835058530962930374060990293927491158372044874161284623868802720897378236873095958039728625337252229202317974746894609704266002249700517211065501475243557768533158023233024962025154316956457751956750719223001911347474757971053859206294612848163185713257649572902489955265556473014874356352079993250999005374117604668825781834475010667941298018705999270822657897066453461915613541663570367075423120175737114250367470937905847378701473446794234799942252240428923184712190821004639685473014156920325537885412338411079693251141498526413707114790445196968498837288622839665375997942611404605737028612427705735567813566823640580760874555164282303345740324161761934548589252158991328374600197659049353414363063509008993355921556330256770317013088344504378882705010827823610941008029864477670864036828773597264182721195337222012784236987407533219479598964440007496582504792009291436372884309741877570903558192339728453055308349111795946306551873966289681949070719815054851924881918361802266436231431671197811269372139976422970095881338356884846230003265440188308767931151271569247381278253957898429241871286180455384825362145092642255344642497397952584004850034676060985355003414861218134450761339552142686835832548058966899564970821915523355942308924055808783173761631299054334833712449753670526409610414098295779039086356623136459483369860975410777175375447098202627188474941331879005607346955958838318952475091848871790485965172052467928775313834426169371104088779937687156418111560710388977542377834211181267903419434831009336156115898356044603118083696137764463914660741833812459898676280418118819878890378838389851333418592436022827994687150128356943375526078763778712455110475529844837886046943682365798583419982193477031473069010706849426340077363997366806703153589460860484344677960291772918690289260902203209221139060192247741793500259077042301976383071469940169458101219712549688984288243816254308411020050296126095527189740732666813315016327379556769251208575942991720829235028839884702204804934178975019196555229965530317971619006885413280016585921308732663330911654645796232850209696293208050985137464464389124419355795095793655588966199818826353200364461999039034191303784138811159520485522084718704967483037643372831134874111378698151309514074799696426045097660125049889734475374799964109642421809843947265506462869622294859813712655094478172219379816301757919182393455798304875149362502789659348849176027307210939398322290137931992287984944430902086277141735029065514786112047853637204741272185823070604508116950846856931607757343373905854467987110165987786581773484541278807115197330082458355502498149785289884250053773913755710393013712380543755386391283759919270223563822029210270997938161459496533577631542726730960084851552770486804256031673747604073275942940495919063105443876036358936926711835379391940246525089020369778411179997024927723471795287205449744889155584112818291280202785755593900885518410601483762469005707926991586795262443980453664323533746995575809366101019723134552457927388159534306314607986276209603662909348772186495867142656360103739038035451534410160227094411978122953580836121144929643179440559848224708500105909256730027240136538589692502795480782933385566216110683146319683901722375030002413754402135409334180043425488891786351595700470189973142423790682971036231824652138420801900166022138457847395779441478406903048721538343679391975074982122212971016832232728408732077588600792218410807697170847944862802396201539285893510259123423556393880943828440568828449319856902034138077246015854005298651178895439867925145303427918160827104693106753524817603496377975468589585917874669595058625902156379885481568194923118296913020900672541289422555561557597057826504612909647134468743051646363604904598931128143509144494002839285861639464306210939451392865079334136563530191448176818731196560037820147302578567940699706518333959211336885851633919934642794206461486496073549077622454993849311316109872905325666847133877966610829104667679698920399520258352635413252219094950598264072312628963430857085943993751213328447194196446578922108914903623452811728697676630467770358134306730928567057970147031134742832125637107767354151092959877371335477046815950154361740742171166723502215961416087977871586695474752576298535079782838922103797279964974417714332639882900313341165688081990461815823424343067191779281954678953536569971249624441186514386530034046097930269603509001218229233163528322326889912693011101747339124464774862489342771420423988625995502476352084742724901327909188736521677318170374789577907955592810441772619806996153880168884452449641426022585301885180140122296680195828131702875842411011744283121214082831894969128539172903167969308404812411302777615739829228764481805873122899609607743564923525879084220119438706951818384875872971196776183151339706629955398579170233098585926004559435677040986514863551799288943256271995670175900377370668973197452424006419124253514351920232725399957639883592770481809128512624357634789257243373871913958783845073790966996599536638502271611866781881101106165315659711029581421321781411489675681540355659973172882564297709163747973889767879334265512308288717272805833682659530359748177803492580895351073956844357464341604853249732691329092543041232419845858581145205379371137271525040159738055949036202551377704984057093501430076630522141501101143441110463460822098043821873159332367307549757590976974090296457311296271638754273241846651673350853914451851529346136855866894093589064383447622357289092374565118536333449365268143164190551096942206802666371371363643228674514035920204213320572170372831318985821427882415499087932383134883704021231856156784427938346096326937598860224276002091986964051632655107815429164748400258405881023110104775478652572666368939642708962082627048008395195745477586899946837253913556376331331580014721941895663601276879181490905539746949300069942954652060081623928239802280640236258259069687630174759318301565127982795361546218861250137417852164789322084169319449822693983076983997794050453911814204196403669951839256410130562510393714760809541690184982881941742848110612601849750180475049478521684688772808013226419936499098658504756908691214789347053427479928448778050173619244372965000239990160523380498533020867021020479126682748660158501923230298721273236566881379834613946567822139190115966514871916097136779786431818228013127185769757385240631755330229524322776711434727876572738362349063708431349144047360203610228238988178463678457811124345626804711334442717355469724466235202408308682403352983571706526507559883644330489567364846910729469960605958784419087952823426015814370752837409326194363918831683543204013891702243475611058869128991797414079568666472950934948675997908562091130578729775316999236688374272379061352917925508560903024920251143213822738559300961393485243353506389589878867129744459502208621414607559454769985476922987322634934246269450993311221973402741178830207327659193679569910386195359654261414365672226143880080355812303065141506737865029906620920167013496834252124004142994170274720723328102237908783278976326081116940193033259066485680887514690630800273534732955898913678766818029407344439443261667112521656584322561878632340053395486051765259070703872587631595683935386571963916372687931723067505023970643040408547615834494847920359282490524341025506795412671495558045609484424269436310855185684194571863630244265661368228935573420335788782857792666179434367642936158780544038764653908584397546518795410851732722339650133871893486627169115626874339984133429361698352056685569294681611777542913018467656134007473251093245121823826894443507954296827755751273265247419176789855904536674228167721500187354558447120991122583358511388321666204240824799610480679514425519395248777632931157715934173631702369848339308310158297127080083953582126085538884310868295626077053867328243576678864597725815529728892774693050312608378349237731241847808075969380047309330415438804524072449255545990220614002626608969686108756667648515225051928122300201688210284238444679883045314225144237260405250921337536817951239498874016917737763032417250376630424236414934125401847613550722274336381192623892886695006988726853498938563548255415205424900157767628471183990450138403196947038076571121708088945040833757161172078596591216846500099670283746228099379752061948197557920265994310035290099331546640120198756537342493902658318955600858728639104003755354972684525761883599874734043870308302925575553551843447159081907396198219383482577877746879173152978255398507304690979545413329847281386163756911081060097361636616272230276482664987417588741333852953043448160154434636087248428290267099298021500683695049788570990780373245233791181256841513320610994525232576177562943942264969700409084453546295480904749111179760852692061267919299097107740689106306966969125828787288097842834072975190670387988063259097485029040565335833539575290715030357684579633400094440824669357080500024924874818800102713872687320493229302255829495187013188519671537519546307785582429885791317714826730460755057981061432349152926092077639113987774241180012189807409644076019823471346551172868246527917469643659730799758282956698922155771667503237074023958700562489879218061309613171683082103813535055280352134388806393980455956390023849020941784017680147444102838228238503369943057405328355509562302119156617888001743146475906354516183474864268198881899621554035484641027731163602125569260247697507074186979527649406320808352753027331816412986546494724452407291642494133039530642478496666956633192411496815748229762021030596967703415614037993105489874549881367875838814521403303879217069498021524720510628826277339666568715251720447552930049825094069786103231957978051161438805477099919376673716328229789752847290891051907833302327735185999215324126752241865196555749734461513831167481396004917543845223875046092633881095612740119465455655285297791299758168107783752089810605383849335986506242929378737209188288287608301662298583732311488413732562697876287867028857074663508895690829906328455504674502818800245404834162227488651217343092863159447706474210334368348552514741666685214575505881950530767386713913174076953558623982376678377030289940030446642147981916970501063740487084268089770598623765583102978532499229540354228034961205911924982545517478743772115586867543728738310699779797438058517744385898685508841815690530299538124379925398335787406109315626848135085966460136018112001453799915937993292860649727283308029370050273562587979504825991041959242512147470554392527470236963025234999134258463237806464367666618362619547428462401885392476589831584922743296018665468851978749153079239676254097246200177231546963368684749145630549802056593048721705504898159259048169200625465961631574602069564355202278815448403151519461667807094207473544110632524152523864698781885119911215635750787256992274502430533429136453762788426394446073819057880460274564473685317760099363472051276104944648575131926166318803545906994405639939952509313694990268384396483317563602428488671328616481671240434351328348600254885055251037912466017041140825144333785579969440853522129330062610283766065520631338283949863910068022787754723114391666205205064871330024804612194210713831484274736449793852609690929014311799374209353288688365797921197400774280280376826022390618368331079472478334579063533759637130635406859266562672279978331516045899315601641590184931185649807483166412588514044448490863939761674506312663184870894837558294156838192884726114864364526225323426296646456336436903569495248681024872274658166568517384321492043993039618299459287962502478919742222962557919731742613413151646972332331278112583273211070354692629422353488571805259348882661719833321687105815146569977695475211829818010992848008804609127538690026827729692922187569600912871282927133535064077206531393187542829911169915594413070756739020836332074946587758762651883520810430828486290832768673060247578312245070506722047571381778554407529743876572803630187643204490644476527174452969728679516793659998861163992775444865666015484552844388377510931440926093922598742111664406013172165908756573243805608970003781005775657820067839593003003982710167663655348734125435592778409357728996956404868310903991854475985504608694212627808052486368722077829063705902617084451047292883503479601030114331482426914922149917407427247052896223209942051191056188817202837753662137879664569861911511919638410870973418464022011772516107901025969230072814122532016922072034744290652018680569271676426606123654080383745532675067601218240259482868550497243554677607739951039375752526027430083523597805426382398295709722190316822331695170906453344969656699769246359207820760753844742522336389839427480761476414791371263752064311634183150968075399353560043200319999183592712078858838943503743803557436261902865651169158001365821741669673942734078434938535805220572222764695860789779176912191754563359687254266352467180743651075094789550574050050010981515124991595960385774935569432656131437857336036574927625055683884508279236366557109280116111449420639787754698980643680737178160104255371604769333103913709216008936307868917330682058589656965445747662553222659616160086719932472735711086679658462556893100225425898436184409549768071736385604480343852299785001708029735037707444483108875532011339086233578733646418950458485291006020709624273739445675891005313233735067255513503695352549997484124072862833712820660513731922744765853714475379373705027785237152474736764212426878155385630781780363122865805391696510434021151479827334629745581935053702106792282379637209033045064208060510729935454539138390072318695892558303214291691197116735520148742764546913109464371634244949217814963883807883105499915835903881176319252971560493006072779543813545064126564318426672913365102935680929440763481401574596120989677087212293916956460513586409137477645861835486795285695855812631329461821480038910186682588078640176012544383921390831025988824942375087027942042442178762268914178935318197850343829225975613306605502114965901837307749234894723262212886952791135159628239914191561445616389497183002899087193252322801598601522915604925527056893014400578090242188383870648654364272664321748627582403062400974791921554774633881786129026883651391916553777328534905076705323556901020095644864055843974549517853469259949998168428382828524688613093693860308573759412277204847878624482601525599760864628201424113987617321092800027364963177328146486353040712944776671165884335990961459406346525803069667054214696951680575320265679575613483007354749049696383359042392813150359582490919584445068859361878411425636217255259895019126943525694175278501090940943470348139293184733241452433793128411701808028828910347425131301163203261353945249887389514337766067048091600681482860461362716293972189964050433358190931373333046251347819639451592086847571463379748816987201223779541644841439463747770444228278921305304250367018781954041886267349517640951000322010498072171334168451058943110829050553747557947091973991401192459870940221604690876414016611039664124587684609709829976677341379666684037630843951906059049188574791458651437975122849156178978484553484500309800363216279173306430287653171433750615095693513538236714465956014088239205373078191215518670818314073631992905792378158538404321764577772583833458457954526566334844448407684381059061106586264487801617849799124024549451266162412565358391442644750103647688589919172906863911704509604548225823712578245858490368977273318260209212624088667300539740853153542330544643407996920733264919711722301638611047280170551652538794972872521508315645609879625301420343174000069549099309077208547040306076456930625165128426875903325344734544949462295559691282801291347529209251349975387432951095113875635089621348391401630273100299783782292724081080940420003507746761402759236339918014407953584072898286818233755656033359332477059950993339104349416901636528832838941760375717897984940966512938809050452460415047629636761660120325479478296323532700932773261318892452839481546913457740832847718242693061325859616396157213789646131313543449297540383731777165123998783824685393969955598551660918403351296309885146718885435866807838976717694522423864586464795390974206712148764629557841746871939526220676276437692599362539151288625621928967636592574168578038794053481029448668095448201007873214091752952931657939983687323834415404358533155712660575051274735806226571365220056011939997690627519772617917624706270083290589183097730913374969929741987724615341397662761693328333203341694804444419589285108666707361027333634083626077091125418290188233071743367344952544981806361091286255535821460421949015716331944056843905435769553313344233349613273482353968477344159212947244547166217947493815788732010597300892587238625637820076031420032970827090028634078823284373175846583327905519682454160809946256058887353231037416310071905931780472407139310156863156343340481776306588061940706378112009571551224421831946746191086509435003312513360645943873428410703539136116015990716280719223801387585257941038216883584144692047494297004303660726391116717948345606555404278518400173596631860246354459824673302502410898472989157198105489885483852649978789114246547461132502281913080103595074007416977350859952043999569885109452075528453151388898285377919850840967208662571278554825251497409424031481773740031714593012149746608182361118867677306443286737437134165280315933783077386776388945870051569145184463637980879641275709137153562039438928795276964975572372187152205432862108878920217010994110656491456207142090272010003657143916322925125940904661456274942219622022132503649462651937858741207815831677955690714668906562422924596573848251316533531568026796663485564373488389676558145644758172589718147975123092932120733645881071650861849223583371900222561854681783216572669096130153210688944490908644151224774495210159967356802807078873753285925044601280201070492118877263215480477920229966661537843547886303252492767858984201627433411371182988077353427884996401861973123070534948380594640793318177777386269257618186346342500821892346047044795738486723809396847244291659289536182496864879647129336355640551523175264828932856845592293973684647455095660375864070884175182758332583696743399859277424047225628191785229830092364878521723105535052030971861929087952488400088629214183245545156686548079737790366843455744970255007252069945368324350846392930973008755252747074996506548350767380206201455410556394811395891598000923860231648011974795089763584777132664387056825951860683748790124273277436188538891471519891428598683835913662368282155477323611658109261640864591132593117806256175864570518274015602552558685778523714023151914479525767215171090313970287146231910534528472261861793853382140736551959987553159950204527301961830390872944285856065170207366555318988486466949631957933457859106748935278871312521209952946629514451538456921258064253558831122180832856121496081931657464834672977380405604002842866566457776228737721328599851938635112434800973585584189696368477321304681744162501786106668336804807855137719552506681073394165334257015324197652876831702346052079996146080186667998408175043641805751008096647922158777781080746985143618982406545947673681809074588905127158210605194301690660327415276771367196426622876371269059748641306252090116160564406226782448742367969198752533153671708481161610624481462684924682277480274057752511299569751049537348206654354034252888740655205761226253553609339650122020002170738675418380500027213240104984906154481101725150981031555239600035138874447409547322112345203706692450031717335724044609917941082309503437771762090395307488543848559091207577284136831087242242233547092772298038848487855210609739783157715730990485136714264422238636333771037079439617822411728382625475755914646816675063556362986022981372485245908263324208020862361449318604368778181027317454138443204570737314535969422875934716539735168384857466981859733527329970405858379151170638818574511847074684874802493940316120908154291881874364392405048637078535480412942906583624969665226522383547365375983722865822496177002771433784482218513563147279569041875852442871971733732355684619402951246159713578875681812303218777512043484244012942494145408227691997491661605941611010476757480590810500428767022427582969556288631204111680330664935431109309515421650505176885600019299402994634111801480478513727491297176890931023180249780850308846772211864498450545383683359035423910341484084073988043571682989188697912726967614727012677981713145583560345811569753020691949991730309462813256287430975619843882771266224818195433581831189978076865282621831359069897378084494421761702789552480080242031637731726824180722400792000298332975742282056457657209954555683362388355040746808504136604308663642439716668875647438153089946799387518375201017565021971564085174959527689369333586945712163929702706407014538697407128744989802410172819681317631781222868229671388412933192503859076936025683046881643563210417361748898517069077470053286903783913733839597232471591348581347721138134649361544624267238431900589662141214782274242993239069935106072421420521417530345753968063219793830805990525669987313323956876128034484709165327213972857052204107586055441391650808148517433563822945226641713488403505828744846618121365110197160224935271230961721314939931132528832502852045230407764419736856799934887434241328180897500528687972801404535598428971412239635923956060759685950741974910528944865735961851831436073606728574299269563774183368953720784211946305098026484296355232303584106917387823001086051057323774841623269558510072688320968934124274642525261438346890136101511833746161377300614330034987141204539069825175349227372688858990588177246361968118473269441196400445927510024670993469248827533435906459153484497557423871730701875997581625313999754131685648091919843256685543456207667332918981127771205957860103621627929712757188666621713262509074284440640688363598125158122629384665981753415507156269884664811568522878018551275079298766076553162572011038216349803125326219354992655403097515835121882677421895572793913619832361540542611656002243948947075660908658974729469069261994052028467045162173968822490231015541785625339581714482024529303307744622579206005616685594776436779086081625759338531044848373420690798877411182394982974710687861932192707907984167541009665410725715995310154578477639938941203945692871854733224401344262438748414935813440451920909991371739975143642960199370368781958163250317392849651960360407166543117562295232604529503695190385912008060110784168839009831851017917438136071218575365800276128617513797053176218319126313771658124567188551774433113833587533265094895798198197883461545822547319296906966673498665446086078771401895395841025176500502791979728462127446935327078820270422142545182156253953605009928482808218481481179583547797212322824019293911685523733494182064852051030181007642782446993617409143429083316547022114776628077975024984840510203750537151373996071837214988806772789852390590851054915310539764457840500692913548192690285509484998109137994862977588918766035568934016943201288546242543164905746545001945864389133285553590855597275094885284526121960704274793652887129969903793749108961619506515210030113907370399581549515086306420830389383442152776155949456000190372951933558436029158830899280413178545116163844708660894712173578812323145939106155061181750769528426282723919903733766141353808948152383130273573138523134164582826961887704383064033052857049538198053236758003355798665799246880513817574389651100313341250005492818119782661257002736236882540538898140095919951276543365329411674548030125778435598014265946053029290109476988654875759294519476152147316515785822765109916589533353781007834161688142074472543707724803907160066194883343517600849612582713543695368933817706854826292796085045714789546070215973416044669133316841726726981620371971721775888194119545666397109865935785671008264826343506557311849800162860871405445041698666413881821625764773823269184632352003147739573953158156338826153713218372537823222536748170094367112004969352048377136573659145818523859003485106676385601801815815728535060410087820880167550093455215777294978434332547451361174461277144352422140026185915760391489850108888501173673042254066618402378317334744409381015779468154125452439710366922320010279809384127279519761839370524093202711740978034752544551184404262597358385115565425556028934020311255335171689736216850968253704832701066279237871562410597234321191320507776459388710575746920564062027469529469764141760676928914878903195457915601142606001562672725440513623249991684421551760819900590217293306770284795682454890970842131926069124040525447733392471355143265794143786759691686745353420772534266662202599364176261476460145593792572809503904498592379023031696386322076055249988461721089332498881758373222612840663986821047517547045189140204087455947464154579549169199703353918347011694677251144288557873521342767657858121210947559497604399899954906155006690491227264474748130570197569036138362217432050205448701713722366646783285895358718045258090796310223763202228323809572961978655885006078420623294109952398377347479800309934229646786100214011443329436739840142723313743502345233530963680222367204201557036865683239454545880040808107224911880296062782275523068100478202240287665964211621876575195062464236891875571206033426181731251182691658072535476648989841234816839985535939900776524268927243544746860451127852897489316571345998768854988643368030621565099365150580223154650412829930471642663950374461030119318408694253260891467150415929822273610298209688742747719585260721392669908105909990364743797253013257898222473082129630447722668492637182972712786370693497031109928704275030863813561923473530117103451286514494867188670031212360519688488627246537044965038276765323886756238515123034796297114283149482443224926574404906381669903866530757917427335061266280033140555419790642353149231454955728437631324408293346367090226141061290499441386049918084951171469437264179348259444362016028396092941135470851542441514554811815075196807404302576240645963973474394710468659600513789027968592175753793786773153926400088474760564932833058122061223358973611858442107049640995564521362467100143187874178758755279239251091856454342407994575268785293638260311172560939165117367931696988049781045574894044810152584355666990367623640566683730917583148612926015336974654715165135405005267156291049568083808197917384268724643983636716088042818088765579539226164293985842521171851486520828153010863661860239901185006095476218036322170571359432687607873392413964177376545194762918883495372016724216700262584753575324913280327074260716839227954822481923472990929276508309234179402866702332808201216910761460664523076665098265536454542588923152284128137400775727801346250045765999839294574868147316877301178890540476805634029152682582224836911031068645790554701067743585333084133888021877839733762481068884091657920729245290776816131443658519948886181908754401530820240581461853628378168273951882163732080329719572728225900547214221446466121023638109718342758295446283020595999370606538696776372600156317875915189536102750324325504642197249901246808234074130807341832092056574408155089033328944163807557784412866548618185420097409248769679844382907419982375890851894433044286149657898041721471815458417938629561099985980323557320812373476853185180386162503095987856729635442473498343849875226170190335299478769557043381088920534981120828147697362899030699736729951180571481584578741743169137098013661929259623528037646099372812830927477052791929440630223489590690074235540046556591483602383461785046303756127289883289812458536212742963894998839491188970671997564219971216281434848305686900016039470374319444705270327093015278043192419959860808326254172320717269437190860962263074275058485160537589107134158817482672196375540010956049538825458449741613906768594583215557865289950870174212657895054247611673645870965145559521887829095329840251939120061618381186806528080101847260252811469576589923569834124503172893607088610803725412407791518915133159067300399972970896122059626931409495845913183219616392702354273010101194668188016857578919028247885358787228659954281654766231758908467323213066272794922083793489621830354873460187365866158908702945177163820717766164190241094540608450284532502305706015441299528599643904406447914044182050984538161838002092168558934655941562825984035218562277204067511169702198042284019635197926113690720804293190038848984394468815457195467238298747972463969265074467189678899919193015495976169391636302597852495023800306717124638731935846084571779872392862764132736041826614141814102769798720792369784557870069780060572636168608232971830566001588558893925084798649882753696103918886645505983806391293534330758284307557461836550699058003397436611924187115188346260985281329599086507370842857159187622607903492897285383493267792258010916490818784389298020425770541676934400217878204447810029250912014042988705087110771594930596370010119561524082166888439490239982210380934426998987565738501742666762531098689154353255837883515285477408931825261376770197806135818159673649202054408421381445990144191163212022784606482356401569558011488616659574905235803181621499368754099254450170325529416731793627974767726477764371909927695043582174857923679715077823500321391483447439651448016162620105750259908875380192973532106418417327400858294096211110807278686915173415282103169489070152296548991726632147963067581193032328210687606594041188107585331032267340609136875158277716829644949227138353291853243778060989268252724366723402340169649762423942575294902002030482299634789211238741840321182010809821205315982409318383526417695659077516995541927190204362722615079107077258977968951432459092294984461447256564584354213887967936769287043890226159292777502067006706935558382631577157382203196142369420001453112557109964878369121230229544689109397623113362976411474962593453673078250683094486684323894009784339622081705619722331303410887062363379344795509229769190456699208761280346639098809574546559066306265720435602990529696008426158421457378560603889409755037089702896202129658620035743394842430508449198487845614640688641620560779373477004368619901351582941366279409591950502162471358278954267568499066009193024694519014592599577476825417856207613047705969250006049294149791464759608921326268760211379714551116035553709564380599770056653169003579580253483867222289222187152744093752124823122664963510029910339666625271871810537314067845545643116967198565681379762489486729513318594497638189463302842649453583279765497923769457688541244487536598668132398233993828916118647555801749596402785243470056802920549750528795527751231744881227027143586808998186031072760871261264355416201249592213242557427823001905390095621116158178237962869457435414935930982172002517791329827044313470164356903704146413802890886298161185982001058161262802338419358879303660079737745516437652728830539800284393224861954125091889683125610613080956090594442178233686074904930293184717699428488527453610095354410747648586526965240215944372219780923707713679013017038437479219141507126535995065431731674476358493119852734518436734409808031036306546323779378877784714300045376255485035442192882728334418896354728686494886443228071158462558541529182383601034397172874894177483508597449415100311749579977529287383211730669805778349615431184883871517398444142367606201263723431023189488721316419069510211223846873680930584567195214591206700453899258163604001462224806416946308205924845837014351996276162769184907985625729458992972579150040476399602399825545848105130524508960103186011925955225048461366961056978321806171644145617558425918407668230390711665492240963753175737749971679267916618459656265516807721199715592522736020111873195046557176841531532795655269902766066635381228795879255746271930621692629520432707327093005084353277600439287802005500190663682106746700783697374803572959644983357946363769771467516972254813331765944578742232269353369700083190923228686992541967590375225407385736690710682526784589429283432237388244433328998817832137964066862843493032643987199902472351802613593917462577887797760619425822922154219346748959821599540581475919481677856859488615918764817074218562344655997153669190311983678630895761197315773838966408900939894853597591848007896202613816726467100771716228035342818782239818124955244160242364656226985105793971287476566703034757755557302719780734398264117287181834446359378766789751764683389958249614955760663346004393631375414434263187307224816988468221719802871444690065512559107160153556464628092936800059815467655496303443888140247082539983612275918076562723380022699614489832354535757482941955422208809422998233695433400472113634756074967689598590630828406250350878331142932782936560709775120802012909672724311383931087328347731096622596359960056695264049080921144125597373263534932399043984879410529843632996452005108811648942299061515971344877753080773078059504252632771431845290171930310046163402250440904146147539016566951533279878941809680740505439244907497868490331422850175813030373727891514289287299357113712529726463740126370660045810851691491289716052295992772457693848030149335822860225959962385967372785837860849631353792263550207491366507120633964541059506951567366591261490864616093099509903068673816630429733178851189827783890441299936952647398994832215769230573652747718950369138730196919426803084663940586664753300429375274435570956077325675505958573105677881247727280367383948329755385371840161662348652523408644475417590427697272553396595925736827378539884311941347990084730995333622932120277163987784802625708508295133368080063706889337001811219883096444097446223985955015626456154210327499070808649569745349439047624327822168664446066166709768223210145175620220214125934201172206650041295656323332264571960060732477584921469752757113154861212254650736835752261230217416581224864454767770131618620268031784400067383413536466754963920834911202112614365607014884806723456736182926994650498193341928447941446789607851957186620384156429184257157131378301572079133358735203472465706086401684880165112876335434083752649773090019112039687507201812033585850772716162059623947684179184451816068307395829091501432136012676310838599414389807161985292970901738076572439070290850684400139309542176187585694517313645132061989698128770591857412949268623682496144344993072526560636360519897171457662698963626146945550346821092154975666225016088508973629906307794762979563143567892222996786358853830396337656788526022795486355564332581371694314479200945221190303543535040069952280805439606586910120243128053868136069586495809984159629418764771216208866828770715776777771891944972898990802048264509124009223741636768725046570389945599760350527377312496565007326792938303373552726615555977402235529409696418127694183241598339030758840048193216751928023622183063474584029139532398360421130389446989651661760874766973291335278859588428118780833939982967549278449151554469314531135013261143642101834705443996870111747604439752046158294464695676353492712540186228687196251072444292130124197562388284325619763498543744441709030349240015236605902050923343354976039004784598762564894152815357462945913804095773900215847708499737708352164434978587222894089270691180511817143769831221075380013405642748691612987064763624087447027607623296586971953509582606024297536961249601027647660013425748017551078607931140403135148168523326765153340891231475735517586413597392740205690810281017761233883368859345661716979560451967707673329493238701195420566897529997273058144278750306275158635936786115885194463163719947089901673183578836684011008981093036975056388145305516674239651700303246590364765653173505441751790546307438624843124265436933694308453118564242396470711644393545978087940711198014112486936617205339386589977194614446131016458335056259523601684995206698061755886548849682686491690554459700869873742608634389346682070361906732674134906244127515567949342788863492945292016402416781311784480162342466582900044844504945054801903279693050694601102291309390548248508765385962836725930043532604254071673945140521608308623769726710209490182624536790178703029922227444787313536051427453890565090879370933690657405437390206007765635914699965156209618536481432309465578789375734163948389335398806337897681160681316218088713047202376868189262442197826174640307466670856031478585189743192046152198178024522918876834355936352375755294865342417543830134297740680805289909811767095538099319979456333709199126055371190821350309948667599388085890939948660869166571692074187466155257028484603822638496312025957226246470187569805138526079544707021448864431877520786024354205367524228794899405308310103621934378242147117252703336701953315168112449545281126645289791611046480805642403299134950481092199046536002885175376382011310320092931311601521696756303430197931286476982732465265788262120704839146440440998225532389123739536043603962553177375730465051673597511561005247545996980247531447708584752179917770983784141398760711403610855568393145799937752286228646483096056502907810175740768105793958331083194997342540798968680153910016012481387891112149764742489356035142937505092487111645538461413142153754660357660977172410740084298970651012800531542968712198988577057967961492773851194519439488794033888408394521917232145963686284351012333344284039471513059466949842929855605922158635853556981200455965667543967349989188491876312017410504210114679255398779438488192512338772626024235478118421748052871549222316167569176668789540661058314290299139355683395591131273991188526739429431161174959692197019497125809195616104876091795870737064611052692814352870479019175713093109011419939067422526899017702274048888010792096256539707537430251217439954241114355467646064035711977489239004225420651832703327123798939129242000396301061147510761765903113902094214480931601099098532540868762770371171669959750930237289480237116430659804931346069119395095330528049163919302565694057064017498564929604798324860479633201024728908991167694771710717605320448087898991460812872247690580159750316585839593247414455239051428677903225448360542461179888984061426062887506504137232962651444937838251972359977876730660306773755479007669321550572779456328343612826314033006959281487899629710854196351876193940214400479078124394823788084974210850230059223227062311767408304677553784049030758436343126817771047599524294853251909280739068908675088836671682871611359356401656841402826274030105744346898684437179822716076176951058235058317528463153927245608723548161471979110859745798306661152534564299968549386731479810548479994967748396309279610636033986847461566515765403235586889450455719644181027099370972990769085768994177514579331277842019972927586904896663472293935411528996573481088013878754829008536890304051384075442260340041302948378895051834849751610431398751354663539432747440904042355040903440968799808939085286600910158266294559122730113208415554119480075187775218690388060946342098295750743739244750861962992507649094853815132969127056660147528736960533054054718170461250187937382575940079397721832796152242997421278579822832144872481304551857731007038639446596796676085701577497255493763584473852139057636971566623271043116364372194650192859964833376718978146304914129148863455913435860718621966309515943184247118124375151078840024692840294479128030194595907256172486261711611612649120600765876988188085621784031308629170008704789404789937501038366510983815260811112832933071145451307382989606944187397197792961293179798215806466575917549339273269433957423310774810338104966795231007213031335399902782676632746915435039537038724544224476204649524354889861882336173311044902298925673463396186108890800126775124945994586329371296306027951686660703404786398079958994647176903518930829127588119498181183807341609625997561195384561061937264732855404358772222266337686352848560987228766457523339178962821380907529301534847150604139541860955774499450811538539101061404764457177200794434766937584947596580137982791703304260163329189300570390331069924866671862558752586048491181124501646896460824942174333360109018376181296985694944365141688498177816303526683784609591997641750164752211318515945220417726547409733201119307388061473797193979836799708339913364161400902064892767911725707411326624093667627311239368773546097535723885510621025915551870100112524908390474788234098119783461744547241587480298169199740611699873492785900331771156759822556006591460791348060489444592344919558445410973577521897745132669233319115229296985800666385091283429703550120121523115505405481924167000827463184742194705640680685665819001867819383564541090292553642412895781513521144980565248733109860813563294990155625894523753056902352008457292929337251479235375512404141078860375172402135596793963894884944396003990300437239439481795316946562613122626295418751976765788441792073463245712439343062685142340913540293967353765619844932549004600021161410527581080870055860968748404686317863145758381303546174111461139541156660230038357196626263678411855932705264214914715773770850654471245768387721718549661223620300176310271950031853804207926960969575619177584376237884302918493438208822719517476080779848307849778373448611821862451987433306845526670834993873389608616262390048374186866153627748599780648803593185534034853362547039739596076485456184884227307506763366414421944931674583708100561784262566482047378417472931971664189589425468889013505918632590902609579512799773603692665499604824831588588475242276116212254613807811994013759040439789645210037736153201891262487430894292806642019891934772278107650144459881080214759189245333928371544960594218330345727542016771725567785786819448057866570718467488765467983823709641347675486749090494789568049992774013213043955064187536476808038092095715163947292729223353532179146598258982117110099827096283463154547253206508725081648306149868084790372701090915151989319824830661852062821886375666005918923635138198125710121797701347794598340093164849804777626679973590368871510300690380150207224334451445043890473881607487603340638450532013568254216008826104578246718530348874386685066403451501321413722910809593183538845263735916232844117231785188104436692396561969382101603682714559196482733057572795208345555698067476435153406952323100296525290643083815085845790771309037560382365152555410178236029040313057752911909254429321455548317959585727980614052648762729558403243049882466183522828148691120768746431034128295894636651740095564983738515657165880732219758657796186022898301608702526391987595398055402837059041174493297703591937042705865582634759180660855353520933497006589256548335636205315847718167017401381079447107199605370514132488427826798924406939670236876719446362737315409693475075939499652138812906490158605503738991602688210340764301515521505693821087622964732279886056563971010730970247857466910189005364356657023451414464523082668346414580566570516758807914737745079678826821475145414968623895759291570714446687936445626278244858546205764834367817048043136722589283756516725919242374276545997074593609952077194336019780921262623429282256814848831223692343075284075480995736916237971072394693633455074668319591429093649126101940530686694560194825994261488241087425812897340143187354926953321135127663443610120090727421805534743358535789255748395822451948835992328978981566796399706001186211056190710552756787709289792403821698375301606979205606474590238988112039282565912043551581990324371121701961016623696353797359051828689879976921127045917511371720791479826546375022642339199021614149666969926827558930288522740365292313013182843287170706651912762170650043038091923945033266813245501802949044017605204328352526358060431215199581266221579105048493050366512095084866482722415559432900186152227717480345725793357547430808628757551692852972330642401930285582224825688398508799144200135080017861322599645988168320355173389399667323233090824893916088457115424379877414514718515837027934221932838802330974153115900912989061797378267526185216211558808037624542059784257133737401450140186379888841362138352748797320747151780910083264759243265084270259488870655691238262922762152343532196013601456659862723611283295627559119481471448256015566796178211319474311606748869530278781834317524349555179475516749131896831842377281401028693231180392734250829485053924847553038359841007927280582763174335992316528719250536430670683733996273212372169455684791922669760099884066730130554851342199583241497807743375646320032853103038113661898308283233654554538974957382834313651026433635949639078875740305093720715681027630324943073085158048792619243749037971626915273398772950023988003895600495970175693598191742954006465002806808417113878347110932771994408554323639756171712376420935925811985914247878100290086544798843608410602832556239052482722813417322716837725638252082548595617028323661623503349915090251043648334206765419584639827251779712195415157588491559069262015697608072761567855348278114399227979101022183575837474155936462505074350750117432663209458988386822165417279420410953075340046006472209459314146187693645612682017338078357786146270184357695786575930205146440316111617373664274480597468833594580825111304253345435736540753737837597273381942089419258831670227626596128960448195436607172915560256986645515921277451552710153345292135016215146551008376768307980426672923688463363048465676026439708934743516977317604511673327130230103502946269904765212052884601250144225244703280997769403709153944329431843273647528214323306773432912970888726835188123961408633716674913876672156786884708549140024399063690708874966659626211265255894283018100617183584369751442706850809326921949087354830439414575231719333780631535295058012596291440583682774402306755069586503907501579812217554659763182285673719468479897958815563119663251474752789900867259153318646779678125383013333806335532424035621464115091259696206721812164738146096929774721454491519490565029961686783552672566342429065508535337700313843295891997219803755758235794516154729864071770610701614468631204663983802629409347359861944466292822267119105933616300362409635893367261894075339753456135594834068880035462905027733362938312135725994469433183663650047631996392711836764956125930405883812048421566390422910133195778309884960221752631979142849294218256744773718699053588166582588920705291671894404743250429094185456585267415630891097161100761971369845337391089292019668080117180672416739087048474767391733502813788843752128419180717163502897297871301054437819595194246622823969541996196393396982133422253075749720252010480372815320180791061871210633559642120044755581629216027438736272243587159386744495333997796159376125982961794789617844447008037662054814575498689321652650393161691306302811335440154140995630272966327260154575181969974089435043827625858195519272399088566824584178335114249480437073524209653382620967852133134632631171971544764877495005576606384300004444124152111377553177588009893362208933450097974866681846368190726458416559001945758179760816466632552682953465921082404690156363365007065314353615434639630627385660926052142788636825886446613993439050433337321493681625664313759432900960487230499627854401986813641994234822490160680510782343388114524299291846977840777171824338629055392000499113951300260776077706145414384473904692701490084724931835791690833838745697572224544627994059135285423801405080615857961025057361582265695736883366344514292564088065748582785539487055107386707468534339020232947740569636591061519458960593909194588605594174324024601167420386937845540349123544093822592755819186394873234784706855052430561945921992198018124178604593863884093337282132720533765787175543663299308946891964478688192223335746621594212417899541092172980499575074523586750867862573041976275171637253629524919339704292602814160957742789827453080654321873541110243804979952633205428024769115871405400287449655508918662116876022898525643319768154278116222449699131075868139080488471620455747841421213044880432451117322530182415671355142502877306212478048361046770013841715120584592832481803424266256626170175730879537902760246264744588686407138206015271388071548669956067051787069010780344015457655631518729193509341523617743188533670196832546125801527056851254073789462484634584706375445738549968683196853717222038032027358065594275344092997289585618045787332189277627304847600118319389354211069346967063822509474808340837591374933615396612975169104523990996943549993795232187703756947648758695861383181292857792007423449070090390667682669806486354419775657724157420432866047513707946688391021771600062358359265016014128812692636889323185265018522432531331117266710743390081362544337141135913038859185432521971562104491235829053453624573117636113122713112289702929077951383662522889715018677448811990609395203063775973443986203412610216821917868478589918828613454405448574380637368439579227709813828190318573189372120288892309980884970570324994970598433704324282251821322569113716131592398915144606286541108175169715103500875809153624389052925093641508852811816715198244726018267516157924446077271529705971606261883223662684275369694366243555818401057665406706644052766558752497952970122422158881532140595359332598629362657843482210837867226939063278558535663509687007958242866041357383092226034581638127106231153581505798453403854452829660714825715768930426515287660275115127731274807213932609276520734420269433448002147466747344028149825085972577992932086012753013277632037036458894470047402611316248143590521354675259033995001278564130848877402380775616948482384952428362271251378671550692259223907517981560742158595312723498985773933323687378214911291264130924243677929536031078196418485431711127203648005369614398607599320200046234723189982944985467782027737801156381146693874008978936472375788694533673649356686307173318165781120337771841683070630978183168226896475108599112328761852155147428016284134273651558887579613251008516921823718414838818824937688518286453748298760479620648380742497936867568703043558801022012422766393802521886554360013861575357133629535707153457396290073649340285801262468576955870116638071326776941155800460192414773986328470660620488805478599154476928865172656386602797562597879380869628529877343996575659221563767986834773919732520925637282470219727591654712319260191198370557436602634182614880826160436302038557673286292712820320409714893416306660050000196992168946105284656169200458978972071029790954460207780013142670723801980301238244305914890812087662550160702400515622768106998703180220839068885430592296479447140177859962562574813550476948314878602453874433284930926086786116417969177235666149599352567671588954834830258635360219953166207578657793545086408173252586870226736344369072604282616334252619758529492531926862601136061436021541396122722645095064976747858933477405831466789642863813318039115919852512265830797948218015141877879045133717535457057887781576407475116007385418243206478271501232822871801809901856448665156929782551921225845695416570306988411037051777149717453975441044307781647818659644722454587617312177155073935154245860271057317596026304057227632479829618125814622181365966026773474702941961986664717966355366420236558766830007389865873710116137568288639674811578089998450316407182950641412849132095207805159621403898244591420656020796821245795816918350329030471622578355345771847296162173212534345711761030088926429979401782100709663932066183700048106117570933706885605201925644025770328743144342970961917108758347029725988431317370305635993968692532501216395630325092415648281976893941847165202145542765915248914840087268558125061066030707077302368575464653020011876215691668671272361080554529861813934929063348970432632480111165265741342416349684159946249623141660776341628001281204008970345317876339376880882564683571661913847001920935494362600334182831656923403625705449553177202430811481106979841322672975598334204763281282017678585341164244919962986449729093925350415434747266526115996052819201101066025647154393055984438833226448316523568325238626331550934772874693506520913221774738764841870428103327250955184366425878866432537310179093626191699646228899780441304912015965899436980588866483617798609891272538806102727220809260531240505433894732074159599398896828946059298869500748095503455342083782679098599842320893993117879465891139698329530534163774115453053991188510493197072173337464521083414553904469500290509547750956094493131530399055322077037884569979653941367284639839854645418133765072916141943238938481907744460801398969672717495526111472010793122335010660677195657294773119977398285213950365259708170631675192877534629653344601645204860428875041934763536005393317396992461211542622486896871525632912842995799386591072116887649129233253909220617622786258323713693787106598742340241302039180217575744510688494250262731422758415650380347780622828730995637481283335210983138484095890515465559000059535034303023124216489222185608762789755802462318064509590359345409534294539295932314153333862254422962609505073038116212104199801194893789041387144327186246283376023516736119211154692656521893911588769429596603258820102141051207350537431414963331172798364587755226962604418572602928719829849677301771672256534503500802614000852455605298859865061139331968424825047973983297243539673619666826458082262753546457564069190877663673351178350935087807771259776060665525539611786975499110119425813997500158914300818659632131947905792653233568156019155044825626408692789641215292977159092874013351891215752659388388363627479017707484843885318111060302365971168921722329767909016495358417149832542207473733296800108390184893142756124382191377957208144035563747475255900698508582446555244622526768695707007662934210395179784174756803569601926256221020061576415931932979329018838825400988932746378499668765953811386836999043587180063277207777828633537442561379129726137778686626516688690912496446794249373171916109904612158687237875292870611855033102464792166307440659979504343488820690185360751285241784797641789580436981695572669369739933739406753204774878561839894518786313301378702218598212090176234869097915440648653885580855966208165086839495237769350471728209375659283418674659917521358282327534712451135906514291730471090850126283388141444944587510650335633798759239823880452494228258374572842167509669029951873249037574113264592285930886036706124990241918977452083841410289121318389561267311646880259865667977982416909323468228939139471730069910087923778824029566418825606117907977889188141107297135861684935192053891320755510756841898824509140407152912546373110406129785670193862491891392908327116635148069799660171235456086604768546035535815910445786429892744266866791465967288546955492602292719145268090643489930414354731688679697430001649937633462663114423962337914604570596063702669573681874391957116798367508736802632400161521151836023775808371785787129687136457694872472260619669876095552441350265382448135874208134497275613674347768952123890095560200600591336546330779073877467314090561987971869213257188063812958909655026138800843277601313224351805341087159934129156542178709843925929934034372887844798752716121225839153739935144129614640415103447629046762266210507583932268103391404895009330216140537844075138140071309435881937114369704840509258211317871786550243985438097560375478109529518535780322543264558251868032617019741768597881576655290468329309577439723364839626218171885859511612460449526484186974652272922855936632337902370529580596150568786308327999702941381491803346412417938835952619320903161600765801005081949852355716646031564847205578958692964789018399425044103691011256354959935115530695601594123674073713480815843787817858829542846252944914781571734665059445636830043077411616246621111914823991315325197542101786824292150438156259401099334582530278395035509105977957416304840464880805288314730845922536544240781672845631502916568673024601477537553983642258681613643939731895760922837775247132680239952241172595770754990377295456824576488419614882761482019014092961945600277421963862891201929276954784094568839878334704065278263780645565823326497985383333442349745686006756622768240562773424073516981765258614998847215339022318401130112010247529314149044005749059452961774664653950122318210818846673291338186116661451168470618866379225286125112159769411868493722099063837341062564243718788256985168213529208567945576895445832844834482235452136333818846416745591812976760770805342748384142416082898392550182860912949724045671706728035280157189066930904579473936453270542170881091938571747787593338640228307900785166051440256550703283839296721618261397417869542535288251528631068480152437765536352087085896157530559050667455443419481128195530240688620707557894688202894596425737445727631014133095831092048071154848788034356151321458119965115117544889943334618441793584179505783985352722113773775358446886065547803937518342212771730387870608974272332415259256216344456251929481876375923156979283785943671094863582516735980700834613926089239749035974816034218355873047592109756219926476247533287753398964347651733990810059883000572092382907284583223370510833956832254811445232610369461516028124787298840114747001918204301573363942747015109720872510454483642027311708538208054223254701419457728517598425258243788211955977146469626271475930049467010678856653578859618992943717616690405366564063077436438715942207148392840772168468615779450247212505035354157559872243109113683961374008479523629919751047904240582538856995561943270604177893808417079559167676921523623452877719333817192146204403868952302260076914796343912893824551910963845366496747847913829967282881522468307673249226734282811584865834696807103428121160369624212316271614840388699201432188962626985312517422366056964021319482310665276640193261416735894587652617461497841720724054358293392249718914154478314598316878042363074001138165921785682511445162163614422168974068556071790996640091782748734968089958204632540373378672776016681994039121260249034835705212019858053499056211601715121889379426593401720551816559164525728311929305032554725271396106824038668724860622344258332740676590710287106770907594470071765807687023727583368054608895565770222713937302937516447330807549073934057004175350674078161370387330183351450759136953333100368340654409316398963945400514191722239976096963595285634240552062808461870316524119016021299428124225720735788390843838159664055411375110650591551008574103818367421571300459350249636263022042043168329513933541946218624030134927461922187067378206817151935029892033069882747743749475478385915515079054084740129480104141139063443464962787701186865792573226066724432248205278975692436032249691176278297080601281091158796030311213714126136615678510361309573474537673043246391197450775142128631731621294287091713150354668393528635181473962509361494055031287505422571819441450947818206070149755122878953379304916512099324308780468172532613911252645427093720118316878816804895959916923317595912020345217277121815246474624969925308612354095963417818389723548753205764771459914100142248591747242377465707899868018894061151058384318847302380862097677842402924741315331825298966837842561236481728355399695792740660223942777101601794753797301642396332252973605652446688984018977524164275157400858601376252465866873153322306058082602803754905951166714314366258772857999655257882953216849237537710267179858643859780326960563828365761844407226380131051153823572257634258438464514136639314370764161396067310131876765604963740174628503689405413498295408689749758782851666504799110568486594682370163271498132204415161273034416146196094941567626581245765742933773315648887309170427900059432439126629902623324048994483717613454538136428161571323344529750365178809993954461479461468403960231311134862058663416099326552412557454443263223426720994529716120693708887328751570276171676404922163331676303768916927144381141065891266387797477520747287413033366879046150437918007147954120260079024611459959385318280688017881737573453033749563663790333636750969082998825172552934131863722304684926061511471258665651932934213833520439232503479876193036259568870944767535672405340086200371123975890280960636984077184514493599142871071966092032405690324679114813685593984711807093738316977282395374251322011436778324543032582811554508766191713736804436314145069844435413085092449616934127003999979116673056973586904936915830755772506372228597308855144296850464269977962591598694230131230521626066320448892621071075379219277179108868400431389450726122742503302944243680411059031490348515956902011941129683587686801972853611659444759702115561737153639484504239425909134045335292447987645532452876273769155010116287175903142268522060462212009096990770702464438922822037957711189555777396871281412812301480396225706143465320839744348614958053262160317711352269964091055986215739362311126242923249967694355693331318771767217785665324085592644977295330419862871662603729423536004994930869231768246823746949555829106904849709520672089329777048814922348867870747328273965168662380079738370826229240767798732642358842029726580275541973371002695424642989321454478452099663775940699812826604148131424126607220142625261515964188637170933370707302850175476260932802181696482341656366100052885892685625314362832071297267221177138509163123836273931746977949421011720591153103544128684711657690344084042054192066164514673054865248957108831642897107786842407211937892625114027585372790671706332079356483346292620793054573868634251658119413896432761288266917562889044569703688053948660539736733859555422761788714449842226191825824542938184138962640723795836803761854073435431092618232540410207016423496312770878594553650443753925487871114549326311391398116599649744257305344263213855847025254591265616979517764335949707241056236857200137569042976991400210003793683975859050925643738789083200908516215507530495001206902667790512223066577186027944895852405957263119385929322917181073046114989746017427128251800453830108249006354860619074749046419777354877162223875253928494882215720603668794784186510850724503340760169890806636409938696198993797311258121924674694964168840810492983606591956955157913459006624344758376330846940086644801226968017882140359682490831072248507261787276689301623309450451315165780195622890048689835911133772002821232736822594526596529627585021401157478582752325482011743860125283297754632294333437198936314271213680260032780411822464699973503143914534866022083895812236614955615976920598812279359013862081194694047366866026970556593693289697301425198959465253396703011118928114067761641050704460218511892482538614592989537288879651204468949966488297040144959848769316940045988454362194094726402403922658413164701685655733440726998397206579543715921665917617799592646220012092755503009289502545533487470323699465395562136049822581269179452607029867459154329603672270630475006921867218003052459756397949367459904321319696313144399910307313781650847021544820136247400583753430361600524507757723775966456295280523796744498863624681214789050341399271140663651183547199612084737202622930831334813834093786721417548039278419561757682251843607590542026605826981940038006261249231468595463001561718100879465790963108242456271642345757054029990105383773616044609495938764431717946654959562359605555071297467483431325869190117388549968391401784470924333581820706665612801310622143733568059742228168934770746204859491725164812537429817714951900185850552398908631732053071913671101717536632559356103195371566596717954745885128679540218327038573904941260710384487698996148711725833567713082393462154206021567850681695971921063486687351261814196222529658036100353051326331411914332658680384883304727171721372531509219754491937795511153584358401350274394975366214670259324588247092205819652434482574542938884675955200973197317057963925668189689042379842684102024023304617217425168322785703566096398692277709873990864264497314879608019846867427989119924408606982271546324998134261979757632282828259247233428740632509447586761841235666392024441913272249621871056468158111915819434806293866578118218344410838600185581195188829616660616173851207180266582334095844295222618807316539833539922547415470223752246603506935891379704870139205603440380906780378635319807683854093420973871708379569697065383440881791259860959699113690436714375974920921707327896016384049890757665987214780151795036592044997514708354942354902805864837393920751431739536297381352786718241700412785779454354727419628187873286388921930504204658948263009808266277496389248364910171929507324832089538997783313822711801594433245619959311441605563139467978311861930281369277341066505907453660422247828386897562071531015251582428042757574521800101316596069392006745308531140698991571979356476393929270580976674881052857143473925607510346792388761148478839895114637454851437720483134179984241036345781192364453225451529079129668655388304378575316313394515428390052059041203590040897610187578444433874244411051220753079069979591441260389468750937378477539575186030246470558336526079166799018518211529109615986540792572874729723284123654713424464421691201737983256269837207555094073376434018593632002173027811199367814844319088793342120919974042120572582586742747399108639589042468954800883798065989021228593120166112947049477484999799628036478047390066086694401035624727714121861065265475862541066859927239176901731412463381106753878398213103972989932644235866653653645396721100036351268542592340080304580018144138140339931601359567602644906027680718161830714965039171957197009374255738643962606554967913785039565279623681410548704154710487498305957675566521639424652379043713594229922158692688209758351366161061465950075889489846010236865391381992178722121948154871245812157093392686495229714194647869483730879860164854772588679635945292877921945102667888675387495448539107419831415391245392864681366673788970005644700013648019664285313146850705925346876632387257064652449089706828571326301360462910312709298716809463745832752631534852454266932067800252893502692738617790959241898121981128947056648907789018172773368970894604943675118731851991390221280082240155093061444837541008149950438557427884122785913163014244319508757004144969523661596703513070538852520066611866467677607292812376160558363427478934969084150793115759135075673260237586980175634815922015891116501107613105489681289964420457403208274667775394551242146184767837409200825776637016712428393334655240872052100790708989483769417480242951014712886862437007288014177844934798061486477695654214208390541508474461441625022027289452335744064015591808808684493565027458514549008868986671723223689216172434683606354505119617578568137162399278569769205087474393483837086080649686642041379104233494225716679754217046422308307459405960654286805270343206593112658517443057350350350700507475296946973393324380589439403488158152054487872309563645797176794666896492803968216233061686908389793949612026254797364131205440740911882391653782669222860101837021463713841857445918934493484388175064147611972952330591446682006179961561351327931072516950570727909969190384287554009332645918789328188033978246388425507257556296383375775975264803412071560862052022394923525591006423522770879190178256373726453507044674938424897235493953597234040073276139770848258894192464272392540802021078000289571211702513663353098363208198368284847879424768469035212372667962292468886843474546849558763878393037310746950648844987341473794094930743914314647471268242918185207794384189676054218976980560458116106429751062715902037330343145802223285098170601500027065953824128912113959152335194284386436056388272635752940036017458797040293560325788356809672249679750676625312567187622089689725380848696802624776794435208728136015224071819853110851907441359410514265544852969039761129796631451164044210246164704168881512856516957615240472795790263358403046887332918238583002383774913350903726860542805585708412116675564473969719178328147843272880279030445837951001542465350070310722115098774081008144459131430855332400024837117639831207570330045330837115774026639962601315740389215327048817695739443413966171647451253935468823025811470167758902462326965530844119340923061587687146247803738731525441493893976255690666734496634994709507418553209418532969415702965388158658892334726279782562403422051969218814937223016768221273530495348028582520869444543097987718931349421361700505287517827639485040145864645471356557932524981477658669911477020124292476741481297551464810114438045968156078293088488338325581814347076074901243559908698134248477856457255933629914450983607544349048901789444120038774336062576323296039184824516479943074024786661521282875689997234727334582236614267734654322761125011304686124885905485740729905173560288346752227916149331190678913338988752161775877099435206333336117562854712308791865118262911331041748723175011870247382078073237958746308167592453368439592753784449480692263435195391885003050282323403906129360505021086617318573330355273637009961828233854732966324342069581319898734262616781964432649776241499757449826806629790655324281188726384150227238679135895025423138731791878582973374392162754027631256245930198029638207409041421482532768007502264138894926948237051942979876741638216270314104819308551177819322717887286693151104246989267020363037958354594640612947284024360617155319475778883132098852999791789576042854770425921897231927723741344937803838405456729011444993851411122049715727084603049892324855500814584258909511319578988088397709238630340273513933199176718073471797236714655092250869618183678802299442164052249171059764883548653703721608792862732036475810120453459980255395455964336544214739486027375225806508753647033658911798447954874490482932249076558611582244737100463799198631619029534415856674467300954824975683555980234649531321705702986921955335084672831968541112243593154458070237084837840821571759613888556321278036943837696654558127683868915323025343639026086970621052611861249366930101359851982250895723395183789000180261113705081225907729766980714543786980162008739141997177776886652064962649482080009796637360202034129260516679379642658643142551351347381092034371217673465306473712073772957299792850842141535440605075374513999927929747485750727016963982503969507548544580923991349723343470537494835657597607818462901108719284394932346269442134485842198510199502688682750866667676954415388478989394572857771773809003706428440592988904508282663701605657330718420380494261563008652202649683543260695701308653022424034851998166952030666503639392588708140542021657907319351945239725515751304117778955028191836860445794084994845300264400309311721858031035242500373498683669258128185618596043495412491465990913171743170652927453681666356013236975823630790593518722531437079858071979100434010530790759153784971257793707799767670351416453163933827872447672286569418954676011124608010335836043494288200978072609557104726303258747456340908896129221935428251896797287861543252644296351166422651028360243345041613165647885005791018115595846564286750426204179280377792334751970118959690514598770165470846123149494573562142962252175145619970520283725323446827358561213130997684506376890754875565656907643179763068444935670975785835538502289305881347559329145042020133783574951174627353906564798264507172508707920620395341716133150593993071993606665748189188639643062286790233595546952764138829844304551885161844807849971745537959529355877318859297632137349828637734055883103638693926250502402039408234960437868426805014804125544242577650267480202704313402789043555757585528937099718670828966910865852817297064084127578783211845981611015159533329452737080509503648912927402225845655209920358082482215873062637741838574670365786191951227149386180017668845296462095204511526255650124172421623111638898989734933208343874619942912246752101041245758665190052631305883287666728818010405810271377849822335531894282426376718243929511530018964483136759253843639155579616561915572991181032048653529870911670181298554057161480110538784500894945830251874611185898494277574294292540827056116534352819204717394706783491585861103603214627363312834706897658570888961107527491353643126772510897878035146215970450668937954678656779993883921744222397434629775644293115246499861676148582297334515131945223955812659783381884087565274260179178591101599175937831835936600299391022247447998209222501725083110952185604972625721569768221968324776493841508645782400830354340949926787454692670591698193451550761176107744783034644602226571875126063096459099937795844843013466164597728556155188888146613103925429343900930168815485777258415395621347219665425780618372461757228192745333402675635012510641021074759620535846223787637591239169638198795842845978577626373232689720471422142553647679403452185072123118231592906890941471982892691875337335832261070181168700037771959248936555726839579495399864945875497850033346544359791945032542908641538360240858591674905530470736832264075448346328610196690680970041189513302562096363335364888610590895980858298541762523138113443264364692857295883480803543703079972895386397968857554763031904907043728799025281008112108407994304364285557932892719526458625237948989656451279006498661978008835909429405215238544724237453361908922998876064258158136711059626400650562013963563449547909828747619324046565081460937704921284360888022326563789842846200813244731742165027375322205987636388982504004842126301752205400788338753907974062888848196837599667393072288610223814981092914478347376570808821012673115580713580207095354339259647465934923240456821197693823083065262022226013637772908725278160200372568046936090719709970095808838479981376525484852961906034487774268112016742269611510208501468988615733705434422969235314162320417242304518193944633871872080636226339963676391721856510903448809654558868499852909407541351962492592936613060785157372293912568850436472606040386252881879618175620880492995166329645339940196345876880498890405812813189428304927800757832608405012907257218616131152914189091788039562347732671388831171184765938361764088715318202581473533728358050848334631720739742735866486247575749249392648102854440843415396260486292837657562692777593292369403231846129900032391654552540716195909448593204074531579571990187112575049695803833180668992961359958119999814012617898797158190998263515631584001819447351013601373407410001924471519316092743800981537773392421237001837113363178550381924895442770600296911694706071964603213639868774770785065832842388372272185745720411642140219403394561111799093594671848083024911404483911217228899000251467269036834716152786314377921834295060478360967177821756689902251524234661692253532817897063908137740639681159694426795297093611539455921657832418276646741795424572510640454688102356101306488340083033491005512488774329560879935363093197170107134493197197546520017186293177563409063584902514805844601504953862049503846060304931910413078892150991645923280039743556540528756198099671655436982579066728295482285872972154270882591230329551276596016055569042534722217364414585553514834152298670030862514496753080876164316185727791471230946184822588492257269474288907503510896145856644710585114693618385720697588882344914939309039928016798532942869903959727764289243201336217695370879339445459432306623035208665560285000644998595040316759551467742260290211599494163394463853907579505494008885251359225787079442995348892110495926108834488314856491069540406378513705499042569861714664247759478194758743630601840273074757630017044147946787497507372879261688638417007427318480297634411637662196298866723011144568906275213832216778594091303754065412416655116694562683531711527590757483067706009691776859074703219367428930871766138163934114082650515421524652794623662523832016085856012310127240032355024176592724489822170735510178119768156064444977323989371698436972554346074828158410891219316986805210100339300323935710209506124652982589430738467415108321163933188734718157425807510832391769271217875289896458793812452625942770278201421590840326032534673882991207420865990484969295475880508920232744024665828943927578271110433659933084180606630043601686534443752829071893433458119958885465128701179764759699614407868462420769707930277355178681707409852118714153737997290381868237659726961066986161925779096306590944319139542853242147945296350731792958869828818518966830473580735641324311198009652779087281598897888148384663811577458986842388592085470365132046728797744605767607408082911858534579146088921938899203998630326907888609648258418152814565114768046355700286627784648753978879342681062440669212230584897237109517883396246200088643773742767229237780682713263690653581211547055398139841030107294167640307680531543717365846557268703918991561128002822037726380327736322288939501161000913304548191732763309414495458862064238640139756825607112022138545378777643951585082447683647963238096902523195205351432283378178833701367530485970720312232134616332113431040131191150142383333403407351728711165033516034994190923563196075931565499942769302875803002259043842038514277421838429774268875440132908517626855355583006296966218513691166458962836437601468630507375403764400078096483075790065585282935591655556607724367331721515374567230608782295746997982024885898259337651084880005689796793255454135621050725019124206323144374100638171875879406907134318438104866170731685383611644874173200048647881670156203525689937985907089930948123198752757813194193244983321588508945377816309331815638011089756009805077053952932334287471091744183193874940521870578876124285381604272066989611315995647932611980852589327486660683956496157805700695585251370144640890027282825858773187946370477826283905232171855026118966926619762992789524745139386305797368796240045825892888956709921646200211664186690576541456014004772876152731386842852568251359986069761155911767179033196871814185951784403614190562657356655003356298497757518263038739853753042156977577944659943630404952245117283538036634136356627700481846286959354002309198277626192068134855961788296268483667983088596296800526809100372558384721715015316170648711044619614214709466727129170085857692394238841071528290231948740021083537299560602950660244600561378905274588844535244700283826321927618534824284187049216020981031258914119700357550864565289501039524722779070331262210094221128175713647839885704778138071271615914678846381248385304000617990967305401277183120957496626689465455491537805971767578424651835568740076211183903485786411943923549894621840978086349178715221031390758109275731053620823600921919667699830180625874343918104543422688770057082629297412656495708858387903054623957864117866348297391069421411921482873010296704218344690297969248372472523261106832857611718199053634307626107554213228687031334951065770885572504107003117661475619508984799189296945788172185705968329059748756284376150199675433318111584030064952578832041096723309439798508852290631825835926038449368348012815759486380559032811663180051744391610093745932469692669395283766402553802287527626714168031657079682002109309878900499172049927705395949473534580859518492988389241554141584244950378128578501360732656992729659437769715607824447746718180771260787301816252970365095779048687973535857192636970537997967631624188160218014350860232561165308751133550700463324330118538321206125662292590627601457986508123638112084648935103419423300571856977776992135549851576043599331296367788773954906359446232050758419752895092865570653740549593317261649541547578644333219075024600395164132204763295288100583447434533663665435382893110925524420837097001920305197268721625266419726318945966403185271165138357301625242604504048096088046414033153835905982863302030085423184628697822066366486187483235353725869322551238061617381239011373714035841955227937785405858805056106907965354945672172299643561748465680829030463968895777618724476422592564245961421780253499021785467481641868685758582542774909027304421175171209952406854733869091047562971950297144581197541759067197028573574211267128633471904568692315632420626741215317916744498152633258272151812847885051978588691896527864055209854204650434231895584586307524118573844734912537360265176981805237591838452022598244215927381860929652496381520205191422148728930400929808757554891445730443939926620843165208551050796508651181938743701506945067313505977058462129541216385092597563854655324460898582465494150482633766826100246248644236807183021139123034711144789796057325097043434453761947703635006031966733387278095700300311463563994455048938609316215035934235018400042089851688634215011331669684000327060214649670312405301980698231628395890012920285806942528085665745476956449342471821861747202879285768673484155583097518129935874666961816088570022958850841996085483166591337489449597780577974637728460131070941245750866891497408187044415457971565171634568109149870884657827929379666153139404781494871401489172690242827432320576582164573737617247117864985799232008152637729041107649138001803647857155280590709317372264000693888286217560313270851882492262050299051888307377970349558545101417703685068581180605434075749970891333592740330926899662878288734915544890331330933402631697947783286861155798827808550369756503252959342824767813055921566136918678285272639008580028370547471259076226176274740030528952862269942031882477268701857103866480517010975819394570317566055856409119435892936595346530081807374771947798055460220268185674401332198914661346976888372690411817378785058772249502783948968656635851922898462599389297936105464251455784300314915555742334698548912178426097738009399857721820356569416101283963499304942872127601818922957476318123036917649263623106501084271796877624854268630059967518045082453258777125713386600072596558115992120014733035386334405492375185696465396577768373441628043918752298908433145851187962820525065168499557632455865791590827855016775150047033193919626190232984178828405373360548986629788643339848319733155499636022784033957837785319965248300208841539769913633914653789372357371107034346090069020584478967897458287288425584997692286481625671938251572506893557984525769261170668129391773002620631376918503352647625321967894147320412292836132629274549573977645719146065287910432802411194105347539666261202913510585148640525675422302930757134075097715398568104244020567690755667827348590110496887424817091191677930977202790596205455902967806196159188500859993239104024481775677576039130486023196345276886189085972425343676652670993777437208948272517998830545036813107406917537264210405622334244202325219427940679411908787010881004791678801094122109899544437917695873497738758186951874629115210487767035634876225532146214232356900950698828279228138338246365611186795623418735446385876362776259579485768113940286134886172995965065179602178054634175160037059135867036283033853767053589536675873245058230465372518027764620969917783270072505728868017672771884357148563761454242608131410012282308019618997887084096291092635237827840463800440617182279954045277189253134396155706631401612842022645617074472092951372928205251594776511824312324345550518081431342843642869776437611144047017118773464676835205089183860457787817345728802638936135535174951069289286879654303989668304551366970141928317817729929489219606392472265160535976744764909841935361467805912933425601058996484573974612974845040382226440704829642649062019397451531290304336569453727449206269220994856468727024076254117920900731644346372435158882447320641958471373041093789067366883367584988458554043827543224740896582194245019334658395015304556455679213292744174319812232345195174066595704042444997522713880949474734481595859019547352987563336997860940250872605017792956702480435145838488366899374241610158125464210072040522028965109452076147563593491228051144097531675134859947665615259610255216921431031685194141330497205925131498716994079121528750448541382275796709371865205514530768632434285006136938792999283741277236552760048248622431456847427556874041671535079607792702554082399375479261720053179560168172885873502896776281653072460994834495948866873456811989480468779022254782975966746582135181589998928449568135161317898601998028986016622879564964704597915367588070279624303277996481543437400707908277811036983981958155332626481211526280018257845131407453711937129395641820531570474378605687267988635182787940180568080755780648616263158437266127155811785948178984258777830832560234836491586022716181894376725349810026016882158220198368111823200816356318725535953333887307119363906644494493718193040847841086993216229264022676411556156551717023569731895162518719365611807543948115357111570117736459142860305533014629637408519223177637149407282951953159419409622661498096301465084010917722648083696015266856474296595241167842941592642158646104147428381452968910278957027446289279672032034368412018697955713373731827433517599132091001346848721280658017063955758176899315563843462215355914619852900058026956746643523277964826892724094831273497694135901902535396479056560037317805484323257929252555749889510063895079335351182953899533699875312155916931013839370246841103230532702250035128219075066376965869909122121121750359723210803726139052223811151636321855399656931712481818467641348824830670296745067035015255911471421156216398332517924554693174330723195470669764258103484851318471272761198405949099486603673470310928480160128356984988386338251966628604915617434423797553257685475316217737444823807135955461541959281645686963834468539335854737488894736130400647949768144991253016363445938483289885286889710896649741986695522685140650093968122632719061230014551764268620904526278662704117378219493839121412263558338427607067993195649097561724997621815799101490214408241360893237951926761356325348941150648045057159655665204942653080112601903513786648357264504439260969720790143881213971174321534227405054522510083155892771602406156368979738100757018887185065586086906641147441874588240733808218684759297578604512694858029022753685264089553893827539175313909671099769696331437944232178821176643105410920275070755202127159807641292179166736486718673564853914372592054630800910838933748876487019869823985898755986626930953613327335366852796374188613904233834082158687863092823978688617601393050037032288702926195503723292775162861231101843872557144010865313147885118097189730807469863174497704528211148891650794058633179068395628053395698023272321469928567327784441076146281695388196385655688928718864160425768167788779815276244204960741277323794246181280903086989103574592774624119704685388114073158576049993964431488013423847402571066099750115615169493741239275050640923224628326320671253351410042100983494153973156315438776666590769569276510273084909701489521706007360923928535839277462193727868264026660083324649765602358285219920770671351934584615021365387107067348508300334827203953271657373128999056349716318190656260695442147386701132745044533007982075733205947057643453413964025821620766308451964807635445308386298479230402333567157926197979859098363490592772184323705287968591384700621950958379056981078351836570769173749743524779657010505869209337488006562390772540818787361258183453861811684280960954447069086820831760350052985466600344380712439579944540433679096058225085129975596346685065884387951340199360746448456545205188993061154992977843699636366640265962044402571687363285973088586526797697427829847160656512378045423319912264056694918587736199928920328581458037134331298335373555390498172928800662753785274283472925197160059037594687233399253274203538483063250885214055533695691926752053771231403115260525422944167890554213992845313778734705661608751819646525549298361631995106388934450806795422381300963835680704953888236172325478585517199686968227844046010215629366199363272480466421007208715278092249315552267187532092228941880396136538353006582097363628928985952008450022323481171831632203197172429051622228243379393419364005087301495176761974954545930275158785197801484973731670750897257826723384795760595785115028041892598321937194215511633772733758399416067809730244413692727233536272219344243782841451626946820498884912311512683181759858972665492655464947478223293295170996296106719841945652225273428456854609317366006473663874468995300655089354151422006191760961284495697817149786331216208353857125806367632374995686912486770061923152776623849032171472561803985021106824530471000051019764718057009297210873433520839804958259026064907575814158212117690226440640580186079248311197348895266459131517344883328078463026030422029142819783879707968859347170920920063050653427910391644612547458251539413537568410278114894322547325136470498721753940442681756685435405717841818221580177513144086822100897316930365732277801888823868461509570373630726897666703916229989324138390564204074126894470651164734920712760052954001166045939319733579862480176594320336705022147683342348647798500009091755739772162418483238713963855533821520969428455321613440010461327311836306750351907115605400538469622281261027350201360396930150098315068557134281918952865232978488110739907271640582858263543506948146606964647150718158674847527704060446935350411406794121857597904548794001277152443557852513725091635606175545500511141561888788378579592984700446328937082116247257346465252708859717872453097018044251781660297196075468701686984704243797223135460566499743016620511547359057502793054395695672533920250434446819222995152217926867323916437330304006685138240223966009405514609967846779421853354108219235879560180438018288139022606973898868169974343559279061901317580719972306924382419604460329010604201631493479367348338953392582275274729910934491194536902144263361309579717709578387400725137332361500909632328307652522903908375136480342993132952226884729215670332142231566639051393366116277583529892799559301002527475955301185021809723078363629651291647037842294174311444544459844448507087166331129876037125640016545581053506112272940575329590574918718682801820495476857869778842963685826823786439614542799003091896115457227388463494443182000017117401837651105823201192822661495221430504938219935926494491320438086151469668343664305475958398341670883142910253757996581466105149929997626874501000924510789760660412590171781983246905916116931189282916257953522335257516871401482820554314951193988739496667918603642254329457676479271620391754149897583405494110297895383307801284792943773908859257110949898604532690362479689374780830857922693080131984098979460592338847641716045206081417052510406502092741554754035287790466163690229347684449333361985153068967062741001024806591131456622966727881371699515985062060185401020844367712926279941967267117304729012706922687765309417771366826682808393180840041013353620089452411167974396455252236408207692433061172542251901470516492979082445425524870685846183743639271983171016846158769101021030173650142531183491346708389440908531906036628811202531830491799971848500562643351709868334125829966145982530637285905811103252633395899905820462053485296441908262807341561065055611729241217290590689313577136493713727596870389880063757229018536865871977312360476043533600672720670865087352932805393240510968827851518439787162129379373619980176879427210201735952731619341845614850291015264442942671181219076489815497760853627860954372787752412603042539167169353458090854101786392986240101480445566300455757113038232495707017367102610391798335870311495424900337323628515088523797938356670822075390380162489305030434524957281800588945908183174450768089086972268767461794811310541599090057088003117457394972190689344910058949002069210338458751556214989790723279717272204812079167593199789420746224442083999365110809412100725658883150093247755705942487182227732822419998037686533349828000497671555998170790351937365311065962113425904338214228760198434197114824482230871779870528249033438181194446795805165329857077144783381992300827668210317849042463608536209831163431377674805949500948385365530849637141838763009531432758961545538029742071981178181294585951553390201760608575782380470501164290246990912206319145882810673331739973224266190300734499861502781756100864419477456094326446150788471556216013820448735589385567148526912952039976666472192242457022803970221654103688771805470710794851397733087984310520414358932297025978812376529821331173197231631225742242966099653839170386966764013880698172259660847780023747513409192873545936295638116533791047070698401847092134438100980622747238733127284791916607693944433448824770804803137868005421455733702463228036353350971226665830929145133152836041172604620572526944229522082670232767348300486403295642700629227851338157307871623361922108361000675551538218956703639131925654930129567795799820092069802215878212663382975054135286578740071353779992930917577392673697378780945964264961002220515988196855516978320132412365237630580855748285666817067895389720538499266382651312318308964543316245540566757761388353042620724708143146308885621271509476536520556329873156265765537610828034658221401371519925377656394827073590920699034389668804242488120192825689969462617651673468626004640450782173700742724589437873902299099988391778402492694893659545241875723038316776923493555383524601413066893334960475117941319353286477047423529091266234736204824933272550150370277948722866279789144894455106654542139537273684478694347063561034254433096471244304368514318967865069509617492104557175835879700912141902786082436237730403210096811923748389542711964234512624415293324941897769358162851732479868533841577729548091996911761813856843033381120231362395102330482399600499127121568893108286233786308829381037236971276523058178900036910338903557023242026779395283431372783016130278804645108798185876592706756778775067915903509841446101467742560727050688096863382303610757816332231751488638259082334894105802589251566127824584854146000954127442057028273674445080659829263125871952422773724145200379692026183419486992144917668957866620908859097149144915921042877212493209370174477071097114027377574468498268007779679564486010911654377460320998797406094323014163196595391218262949137701579404370475283350813280771607805671829203285256774009307171681741103451732066780594968492951047832880657568249970058693413190992544188954844142701974189184629010392226221197451325297608941246686484548146203587759100958530222518197113144270665632920715481673632831313917521631259869012654280164701407901493883335342256231816212384928744161534375015648956126661971568516295723858705376833597100305077668013109464800256260802416809387111362801362881918228626063334337136811863432328736204494501578258940778099137235525873150626118812078847461475983180506295511780019645912435238010865321572232715488616838541433820570332174597748478379829015123213344183342553758229625480104938389913804362243303412569589647806149782172620097203917244537607467338615755637413794244480954282490105820882963361418883457137807313969751147554252816627509880502896036726109415669624061685222994210211618300626354206608273135168842641497409809070499799421545635869664186050868360206355837921318554394160091545195067323540052344181388269385244919172873680286916366576584821101265637391786467575569901232170676197738430876797975938546054195967411807651105912493950096616382549074345859638885088760038055538567224512341548552160641178704573542382830231913698746237387607792853571649929325227884841478438785091802577797330878165169336928403244261269386596390357811246109088038664775611430628767933500086798903979775187883577047474198999826332982544567939852521514102280483267781735121205292367398678809550034850588230225076768700299631982507147761274931871329330974366814029989587167871369657709060040772541786682656196180445044968610373771046567667628616785187749521307894234599256086997352574784825817514932226945337305070764720236170320263073135997547846845846006220801828004439468513457458254967346232977206937666517736972398354101963279555488730271551103983522750268908495319796166619557114369109542788042531533473195842924499860280444401591585523277650105094423634061847938789831675643524440499688371776849345967840657316499606237543726981145530226987168202690427262072616577465740861604252801317161831108669304351547154031669510211792560987783572431818557434365564973340045330725534850633795376153605927726949997282318491886552056347997397407595055640837661651875915599171280226914782617110836665000912346698106086131530793151769046966200529707150070622972437905233512103007003153217434947686957130093893905612012815276699545866104485099828607120358561886481064911293278312025698186918032061958835263450197061980907418251801137614287293229097364985054859733700172383914689921368425778120061268883048550625333989727271681315334799334649430172601484722709317822997036803035555001088677402922742524801926458849091891215030619897701774672701550254810187454365940798809172732823309440175287881870775765556711689847128971475884909010120101263121428879700530077792434756558249835434090534162021865021221944208140296461846928109125455705472947061968862333451845870616306804506808003323420628378009833756938949116829783848384263020148520782036221211183976121703111056648304644217062566293225858638609873675534419992414115538765195284206799483661715797315395463440994384021113752454109114839294406796717570943065573699754896757099836697829308617736463700541604201992464589041517455023041948505537154202531039730848239741637367817359562564896389594307734141814316048812811601575115527422470440569450469692459600158650510210729489182176650193654341050804428643500580989952706069675349967319491189301965652087237092698195480908765561602834748317645169925012208331621186124569003718922216760244089612309781778575598135066318191028262703048120451026173265155265889348679268386152372385166007316652347253569262097292133226981388587957186983212899460469993543112554712692311998444688857052833050696638828857038336225560287833628447387070285954935947109564379610367648364506735722258655635318861214334107298479235315852114290871879522669270111366313238219253639872287931888329991467722813969826349919684193112736543412249860121754296959094812007064783745016441786559516671676139557762338926926752169486662228638393878863426427447304940179733997866692835293533949793837593397414871753975579011795601392316255505429868116036988897441355283272847723305654095949620831638292066555104248586986349463881780231483514527044162658261693377171794222939102010493659353954021919487005805928051703732667313032697470649532456552242725317470586265561581512753246701676761846918390607158197521521604309839993047251542160031434081746874286101667754798350716681168973132296276040564589677051606360492588154045549728407961051012367652886483634320272429758647072764389455927431897179392375195580376150377529960775231404393503904341235020317634187906191178716711119047482444216295733583275943088786773140734765166735187958947460198015574437340704787311778102838962427789868483455118402286483105365255493760658663983704526646624974849049113884644374093325895963032071954681868783235025704626554508928541555297070820846750343644058175075331459835457581058973968585243575616263075041016256553635499468304538795696857673484652994783996836881525042030637884997996696461393767720983348101229179296549283807745604644219014467573271453053657960307328408352062585942476030575041697756183313066304505813643114340285383507856606852301957058750482590639583185657119460168656106924190857449261553438428042365884981517733297885820771957592167422170867696970570186496377434245876372485523693234938032558694373825931375733729195836124815358975032281153714650882307195387588887555980467187358728531043719979659259566807336499716256939713192016675841507944100514604212602984118785663870435909834098943634628167779566832858983095430122129016584992694805153523782957293923274286163192275665966619773988724681865105381668690458426567206006832951883098832777013723419491099016916386948462929544568671797871474143851692690662213315549094685742302210416780681031006619203931447455790107150696110177079865309444051577956062977375114668937897916832885567616256273170671114813033130748040075013924220000645418568385260538500598311443258439212935831917730005389991164832770017688055125901789935323553045816937735745485412523334104049791020729657877621936177061226920698931605229176773858023012063653526935029814078039189451037033482207568687666135087546538348465415753740845942856393103668994739363151620131563107844156826344317156602993347497422842159321430519468714443920156485481017444666839623409031766681951250575767266903335327992380427558027516437926986784491508329128235938622011324643209898124175263864636028471507049718391104708409646592701069419423778427908323692998073100433219751156853116185155312082060191060896062347940256446581078341107783889748280899841075107436530399612450888057120864951452855428803549737947305201600302260401494327715813425273331090899566700414964541543629750721635243007289261554899357219805674738624648282941374648809227788133917106803919178776336567020041379195035696556029885836005874237455801240806132103371517806119872764592443450165369149729499726978991322294827140394882508956804386799889915127906254638316507906688183044590860331627158156130380429845388404239122639405178612202120786678047566832995592217994179289817822943257773528536327037180376438243642122177758828771150149298288268345793668735537928553577926922522643636997383843897659890124871113389309131781324891014053714248973568437065560738145026085767598103448942893389065046199622105825589431625221331744823741719489562245538759150671933720342107388606809823293553081127552631773012425628459151298789444223328766936988499146890902901079521309078520190780121738843458278114678391355894201012470218010652167466858169170073651109764588015420827474691633338357489182210021000758600013399155098217813897905411457989443661955871036662216192211462863864146796730733550461485074427782514031503944016455197810042922882156370096102378785013599446988857507328947969393340776842257494851222184374652110676058207872954960526009136208286118529982259136314557088072619057596453412161627646992692665001875497173858671792621110922479349509949304453210451304020430580487578940587757357102424856519802904743190998487126702013396112577563790704806100845208593349873753368568461663147880662844523929999572580888581767969366794641929980437241183235464205460528244522178041011178336637591757509440474788412242004546157608469277869424901465059976811869479038395725947734988665596660108084969698498424477904742971864663319828629104234042667058778812826486397885944876743835325303449564012697418149605334759035034813035115660241992662743116663961563088476655337723909339807295101244515921185623394713627996536570012336049727015324923233740277889978698091578756488647835535571881055334446258727119756866706479711713392738414174583789427624360123238331559857246551211420708762170930067699088849312007170095047475035630674195963996653655649110356029979443222766504165784554818836586410075092983241015345870322510969630951117401323664238448348529140335544989349797660045239334611401565462731726799917542167950446031611369559241705024406074658711834881413120163406493466696685192385820235942948374478712960915690982147499162289179315156496723124634035401552649386437914148392824021608092696482025381826847682090502855980608151230029822720169664371567900985351836315595891410061219914098847780616370691524726307906436180900001799644752340054101525157298040147101572128989148929218936293995003963600657165560088741015959244948942430530947301120814588289864505613145358462435870109997918915346508540066720498770730664053526292728509044745915683891301224000973554551626592225185217661924768059130822218976482894818376903674903749988111027115370512414846227111660301179695847895526904833514630411683391860904674585318590271885395162285121741652534027999667357831541065156801653821279385944846326609235287790280151276771278980200883870286943128596756909813337070205934913314143866677049253249325971730821957601882228104548694136128684518616829735913974614577485636270684913814672973167539922087892848852382816776248359516117061071885788972089891145542232533272272413752079490744182748263219907898373750680466723399525454191995717571574371450554330163598601898484545675903645547376346546810700989912054969825302526480601757068959960931554616493632762546096072416624791546195819462622660539200490779430646265982326764023099889267995170487591570428436334275163899142624464370953909877326301905380733531142221483261194226504832844804118104324809664012803166319852165514505759356608584074616085148129545148814375810374728951647811997476147311272851739344981534804414483512649022238485412276456668391875179710104397754978169578484587225163102223468213807607746211446038541212986443018928368331909312554607704088673233261305877287662423156395036652974604178405100246548546014119145224835423040270187774801911933597811363498176857547620610332977032426373488366975588557539124466398260992570997174870009110954404627991341718918027175535669535027778308450814223845808210915560815186184583053116487617590129768236081606833320368918856246600627013970677785929949090950447336228581261110831441496845923024424988313045355699214473234425128645472946150391626694678502272317515938661517919028039781942069999583124576220156976215540885129129929217346017230106657753197425646751424317353980782485269272788079366366191552357864806727512461447936063005792658696832548472634940990736983536655091361368660981815680352441082460054028312893902655871385171287192773226320502881775695328280160303407458858640944795180150652264745353431519444598192621109388188701151886287326322834501260599721933236068090903099072157909631819748421053604794533009038896742854776932320573107021200383547897075224603985272715279820702081067753979871529265982314116826759190706578226370099418527298796912043254680434139402914847290785833961525600054711017867114793080416515469903248199525455134211829559370484734230368939786793673085592617967825309521440045928704132814628238896431310934706683330542515181502285012113040768395437975336806809393556781115247739125025810545559142009095023492329001568652722041595781355438057156214347379847258673002343274062771783971943678637228857924240511998661501929824734622375800388205804865414660500164129200267825106304880671548030449658862072787452641306037404255707436701512390284219886999783707133447958168916542047382748754205173812160985617944454847382875521645755002780842078724060334424719656167685822229489054178926726288653595255075383532162185904909047261851343788034571633602361238383304471623000352117209256641295993208192031124228138951304227980469077741590025961586579804176621715096669216882651544334734410862782353589310848693966071045906578157237957282214895996649955315760213333421824131350134469354101608767196730033212603004258722350304959398352945644981059390822617637414595691768035506799775829696582026198744138239932553444442449013591832897481766144221219422761250332297030517158624175696019482358358173130678948236655083171997441061557791670437151583141723758008630628124872794528347307359910957698007887279228346817966459326300327016308636892027769554698604219674026175186697864238652071234858442592153397022868678661227018238712992775196964386926931503435092305059244178176785334157684102653280173404730334783944070402845803016034474694180552774065883035098820941250852515852518643702391330168087819192008332918116798072820480448225393176482051882955800609509182725348804503656973185166735090671356738553999954139913696085242497039080841583280727782834947211153103196144280961364730658489846168354162504281511655229229231016893231548829082246729133214871181929495870321052798774336173287277503512957190461460580284324602086316769926123442853451661539607885835408765240927252659750227585851204500773991667083060853655828290083740813843434831583337572377628653605194427665912418991103962316587842618648944289826251999133858845057452256038226064791370110897688282329385030563455827844525932043595213836159222601367952665421373823955743374446130130485047735766595105335767465363648918596968651776555931999583733223439627750455884497385409465115491083487587224479903988052981595077820738694917558973921330799978057118117362092727573233901129738940898345855962102238359434521023472287666234857311473285183223490101482162523397640160700925853044206585904127185844335719292995095701676670046969318174479554892353478536619888878366576408735868052459064288892008879532410288587133845183071225968839391568038674751254108472244043932686665871709290543254916731406905846229067318179962392568315128920955297145559089364879430006518235504346328654534927417240093648637343264732794832912409444404788526262004913807122832107673565301126406116825546164466536117925829061083575764658065792488422166906522213580454064361204530472203371502017622167708480687120389314258506728809375051803718175512807623688420916770303745389721457499978540488337615065148687629085089858829191871436044223079988969345676559094329817927794760711258908729538446152942760699854593673513064109125867719111384536999760332922631964394253766555064776414505148550129765685271099806395096526663053647772253328556598438214203570186752746782354689779988323402748457290461979684686746521143302820267611654684125996709140482997632353727958253312958767864123876770355650018452372198852320003532512813557420582336276790530015062625947311312928324162803428218938819537588384530096206243599474698533842268979214819567345751900261917919801958516081521593862416554388311205833177490689044199267242051388075418905729059535397304625361563344014716442228363803942493432110815666008325465119539121045228961838282546874087052765122558631021083398552447725275383256144912125745362882482451896190909390700508408314517711680951922365782330241779899631898496325476597389045766480703926069697357125654439361047835672729614830181079088420326470364515308689144665631066739362470624292276825120571011503460249147610071132888819555276930174856522519476503370053852065092640262497401164569606379731981592074145701739738836342581599068415937450560951851659435427460347316085721917739574075595185835208226838626349875330804608936071617070948182176690681564065816413744825866356876089045445306163770238624780565431787864867497023091414604647610898352027080294797639122950780351247162796740445704357665580863073744434691427193796100804775555324416222146895834525542420758851028840310925021943770331907096456517587074071338734896959347944227684215003408137467646302307361986547922510692017317334949076630888706368695873188453348479472559269439414079667160690499584776086444929224437188079983135281760911271182317478739623818081680620526273289980219885997697450069323016699416757531828683364455072277061139795612791452693386006988004943954446727876398031848276442126336048656965312033512000174986338828318408667614528340854169877186729312369489620675623151093431745599869908722379334219073847213101623288855996796017990393417583622712776499233561526888913189514712220140876700743659754134637638126633629342295861150203997435622494856340301186414279014446953120456648659216891933029676565465972271655577954201771182743347202301167966065671990537844356058812867076828818090110424994298431404007312341383404989836151240287901203999466395282860446736914367640729408685048039988821623278176865421329199398326520626756692126147167426511602059270872990236431254113830263668879368439676638255857235218682620601031859298009970975875516009994478449869945300314245816595948907088313158580688467990433909038491699050539323381114866567242336617259928354312938430049990646615835918954106756869313066737326818863716944446135637501376518861528617860323572729483462327468247511288857131418916870445604305937275499721831725733631818030852639812382824133866279181208968336743235452716817867922767893834361988042140155694386014658234948310379172642177116702265964801388949769822877828278659803651475934642462911661717339443072302397727381345197439334737476889631250609689803458226394139878401404550746946804024656796129611392431186198133857037305098452522833473697610738421414834795362311878403615407929053942341655824396595657786710938007055828393878366778257467907755854555353804291554984544617179675101267189599486752731213845656212905043883222244248573594363732024780961349384889368908620043096918315231889741402538895823251339531909001259024457989542195355259861096407330323581077390049369465662040296980038491979187508588819878707016736555968741761921793378029764330596914555028691921867020464881130939223798348921665141796695072174968496191317303629644565058292371337086058252580165102105756520742063460256484266707215508066457192421843051857565052149863343248783195979687046229112653984738686711319108691810551202512967417473851860576916564702581154483932016576340969997245025249340655771184859146855620942787539407687523383909050735422463591319134935369298754341903269158602238405683450730585245160825423905991894046421078221129182865264963569449852196307585914716739625549150337685543799119172527799632475289399810794308180019870864800476565818140869095782408650478050607761766451305432584591923364033220578683923300335089325551161032179679628606941473999168159723365916265520587319978906880015018586123373545104285601568255966056865040266470718323262278081705315001071846815932149602828700327796845267248153806765771366160240604907717962226825990597566254292128596437952719013682546810272683294333009197550359911109087798824438466399953233036566123637165487068504605781393814238651405239952110739663983207560213718124238112714803514308222057549457561050056564165370975074125668169856730647648013944100018307726313008018339735612231999267840808623610321430402266107623656207257817690122548770486515343827289238041148383316049835522395383738862188046348618472340312886015170219178615365276805043827882892595608469412382362576066718735638444610348131840151976160522164279749755317389775853834357311512764173284761942255323900192862571841054852902759151806425680556935747805170071024298816058328261413444215865805322736410659752470045232122147915631311820651941816196529076901541587587379320419843233036686321446587698631546699694345801287871105931281946554390133785445487930448201808247017654471892162621638437304038277316589757271720358845127789239302100701967570669216657359230744661589929229170746721923327269166189301443735069984272666639485779981885702257713801518021541794726141665938956962702609686834646112406903906560766195038283711311667700257337215247452813269827189870281359590114266159020499830667181909238077956586888014500838348437364354961753265828187610061095197914992567077136579616814161389784083931868545089272789212321418860212983564031230056226455374373858027348375354459872093975226439646746260862681064236449617208189843454559730901319570329180551106277249228325624161484044745724859615692140434250843175261249792815993182773531138414034253501883048467973356646533370943188177611859419317703321915823879144233721450306917838252357471371565561986731502218165381523790010070825082517130835822407748370529949108463845536625476041829651891642373725510629822387456427422741450590508522165139792843391342023512744154394994750788033600340634670625662197841338661943742260663913916518443655134685544603473631461063265695341431150279077436295291120713159004331711837429463408935371699198344212424887487414778224739673781623164959037717505969127783034406646214750590772819709996900641857344821595833985283196891107077622791950761296156509524599510364795334728282808754165486089256366925278831908420514885573679443573155946686279307184672432915149097029185566036672166338818148585737384124868475808250302193031384007468968749358122270958022070305552512116038122441001078572819339729951277569582125601070425375246075384122570902083143858783472059011976740013796875122872701928781254001492414774170662404335202434316739100268557348537765499584953245631425975126506993241740430123604388373355776358613775822919038984524053725936582743867767032363997898039467466089731093410535281395388278694541210308054843372779279948503994260408677957023870527609053105126681996847293505003752685652820095245522996063453447129321629987190689210952847160252096049526303656822683047593452307970125584856997731735081191972793462986046522658021780682691181933021839892410314289644647711078142029950993466032962322045403823423838137478273889920358978334867426691095071680466409040312856771527211200037881112576903207056802517391235225202166776739758283811573712754615164177845603514518336619659478374043837668683317060427787164808001578999949643320564584962498726796145175574608301511166263344870342047351307643692929890982326536301570414713540358782665274171023448985890229990513576799555384623469031540787015036309425234160351944838949932585238221253387640330534642968478194779827293092722509385563273042117156461858168012211098370310397970862467766188357084494180469845201699355869455790144716061986202080333617780878517013008482243584379631221462065671822942128117475987384765590945079247180871109906539635031038007817964990324933098829201362312119392339079222014375522869627219808899114866880761358456986128170937738564013244818878719371437700744626004368144421225324043798862354096094500971093981323034857286776349578756145736171355757330553509694038902576574404337999876852191245182537197458874451130419090349808102521481429326200613685540939304638665878764983893196083242213208875814626039379218853125753652334104753595547293122057020679059997465135313357367006131953337166503535417255298289693366349185287395150482412784613645163276072535227826776748139385127164021897562081659941561403647444984381438929126963719016363701129413236881057318558583911387581244943796712709496687329372727842019124815124722543311966879885129476559059425372934105216866718893835256955514774470721091029456941543218240970420375824853433030142706434309279769480856380028851101205348872679596236618686915082551331768013253969872694603384154979489838416138553420696414511166820093810330403139307593727086162536004603447279557194332506779367716802195838938387511165653265847967759049252572616091925941404450609660273213252590948280023216038700093772684472911673621263817969767709689140446647468253406338745623012968624572162608875693645000337251375054679205021015715561719462607533627811115323150885750646286109774021696580311727146670793842455830703077057846947395301921311934734051427252908624005004730873775981471839298421590701481368585742235305821774669634880783270072411274419071763627639133061268697495256758847900187457249659690380191735451665936661864419646442831133642837531869729258840419723835726164999509271840258745260752684069234362645640812225592619427091328330802351192006863840000430576184765960422631636371276833486595489587573362364749256070507415464059222419409153876307306003370723963385625582943845246623173112545377514705933977693469729705500586662213004271931831088139748517338283887494296743458290519144277622303413782048642019850248127259438741740386317399129936782440578803335811963098532321785747004860997658903390837688214012036605577051885170509357104970377803252432517461198052310744922480523288660506942540520497025894042790912142708164952144119706889103430990495701926518184521695511455153575018734713885305040389889871356951349374214469612715153609511518534498403504153969218722653987893952403187017491823738061174685917957935234842530783739083433833485810141668376669543613075805089107296960949366457424662217154585603292844334120272086420532514674365288617901195192221839751050227126208939460976068627697691348819054779141425020753793291104673815101065807459583075093297987525984077135363074627464973092309189100034823496927879244075599511424512961764926046938979625679919498031229059185534424638099454382845817810955713549028061074484109857382657482695369649619837452758265412817900630564965543316023121143185119596380331089304516883674150622294033505229331813134424809698264766662730071119573335204919018557944567074927295972276879726993903197516982761517404129945092955422698253579604392513371441987065620742903493260259868123779178549458147959819239188874974652605872066567880091579479441401748613047825219692685374282683701630561912445365281848893587303429709696854016996401426416912913855007398948330896868125349304838098291337795940622901195185095578214705231063827868023653945823208361219382692219050859687112068778956354605949578286311718781767526876930809508390256422301613888346788771679722706585629445860598719468149275086195927930560710716197501008224605235026120731278747641805848396379771650110259507980719863370684118936840884262213337921773644152013130393365920596459396837351636334845961541032822937917876969696257148398664579794767410370363200988130246160319899622723154751168450945025690252694767674189527880327379737213412993954329622059851629297798277965101809504666056014490442013587001709419075575550325482599040727583435144968511430825864610933119770314764831091279853950480866748176699602518666665657659855059236827369586946334015243348801966686749190020486588134317795286490656919377039288618179281619493977414203072442078365128438996410344119310930588095556325982609328707057465278932298874160744150007765975072694339413125745141942323192187476572867440095168143896443657062367817627806322805929711882127351561635454944573608604559574013242438045321624451188682438040671308814359129634788921418891380560338710737756605696022616849063688892141672864869980037278197091455588443787658306892799211580488783503503857525950671595618032299130212063897591402563587794271554303924062574911176325924317366158307420939058146038348331695498247753935254770982148698594940060521502069838537875654289135683649396554725342055338640200288212894121553181882414700074928895769054581690480767611206607617566189679653858628377504073707737904525667279028520318609386439070825921566894898940367843255865990547828191134424913912289433629248199085737567100667967831487323003027589718220371015009769691424073434710603270609318577446178381705405022055168773524765706730293052522892382734355185460607499279024061420719116163718532569453457581623073371277237536887875104425638421849901688880521316204722966825317268429000076970960653990703873812443430951719672641380276452236640835524219711354927478769596233229462256898858644632182878883775949598083058499654764998471145032490950617366059736362164408308763087155701973776033707504883171271358475229757439976036679443663206822895338429986583135334189116694923408456586515711693792501631766920346897108094224089922738063377167651877345131603331010613284167073309786159000627039787844237467361022715871538444658406372727658770074338419249834551844034918665628955628501933280037433811176105171527930817211860662717927464679435633966064361071054820098330486998665430203039454281149606388329762449696188508044723416244241542536960779374492623225962730383103360467169506370903448236156710578657327198876356086524321320832726612688543781296388506665130765507512085306990636118010787457095212589706072686828652652008235349884450850507059377537840235668665713623730836778077924569295760676404418537780471370453634982478421717776475372039006062885747491065231832053581484664024894381696504462190871689091453418558408901813416769380538626325444341921536947279678886355876421710282788951516179166000202813000544107093620982933198313493652847774928810364037176384062950521752732457067416017654764030686647293004838754406726195516446136204741893633924162735398573722880433823885877084084068267352253993567307143765315626290876660041099031419866179821727738312179059701723777821892222867929774790669254795902728597234664298057810686242494922962243393178433048381578052209381654242847809792676788155449324963527348254552382087743250378311749827783984668001956836279475598813972672341623798622027917906719890864555861074260500991894393272115422520333312301826479205958643909310826938268366189677696442573017805163100166441577615733772973336137794971712083638645063038987075718657681232964106242530541735762848982833558553799954529033146635337071458469206437278548303567954485370354471235088422845876603703874363067196049525185615544844884451166482862514615883409689048165390214704882780100947365024089410993123645550641168503684178108558233790059247127767410892380985633275344149277611966092543554344356001643146652967316745684447690474355264608325181824587549577117069789038852078294289544181357360277823230851731423894654171630223673133380658734713522927599898269870619688077901737031784613083217622668215414927635578587622773915594331044259391132357719835819715629063804326452690720130937710244513959428252114987711680716749664624757726942435734919273227283147093497377992807887874645246320931122668491679721009993704561414919647382135728224439581194976911239373047934412745045918227761474621554401851464329323852673709564677344671178494165398282267086931798089689936687053373800965568431905206191683199920266845434521139594661506237952149603947240709812011239304170570893742344043045467350132925306600827101311576032392901522771472444447426684542017178147690436499971635923201514213633337592985435879513579252847341836960871167852023872181447560324454745115485939928074911281386809026465126661247949016162845204502180524133990891571692297631175762213109126787261309767699077485409244403725426929497535019303401425386674207683636827167379135688707906515648440135568625980391779442757613659947296306827978857143897776439380520450816505553876922761897344391111093977197237612920024279841143901505675036261441850943208531541274197652455855411810939910803102237143784859398027309135373890578236913724497570483879118879836981187224692792504760623763605648731256038710602682879882128670025896184795338697461417577975763024491369035272312377131729088078851883959235046349740121331914767435872361028645068749324807779915991144100632279238506021934975328805587757600477023718049217938254123690353732962240756739589029587710713277708293531967810387425774077985027059191065629160835661693347772248048110173313073033581324324823374279975359119605177982580778879653132502214974735868007931912408092288372847402632765748337607496629878871242015045922504653038407744303014184488917736251228845924037227545473653871412490905237183465230131315529321938919919059496687470767792940083441087609872967533458890612369484619557902727613895137691262845732619663222627557703669150269543794883214324254075469495238809834279385042772022425448170486322554006819265195381213820446724038090504851077271773438739393064057593761074727127947046968320339827688825434553422385031903231235015630461953366336601269617776058914602470306957262290595402096752350325124098881573515500792194632312093570603464500679383673965027105673322078495247261775220873224871969325435434347694941960755950709276501803439329991504534207149496014735698412784336770459850165575938093605441234161200463962821718258371563351028200216106098263768695173061543749700713442449888648910030676770059512227529994339411996013663271841366196377874008250759173399472919936887606697246551534044104593970348029569713142379241847865736283039328105231369278762382897424538954131725892593678641410776022036244519276542441639755914232600955086923594905180694745036699072960086925475162101343009827281196807959505447779359902088939274414648250285032402398893869907727380708126821649254666486782893337457314529260034109872605134034033805976075295042658387002024740385219768373034059710033558480517919752492669436851531468140698644046487593574738421615890329243695744747825949771657402495959986564387190076717324274156843709065266131726543400852956638964569016836344189338579896075113653660881320705267465558976369106702833486598314334517865992600473713894311777034491743967816297852769023118521091260151799711905876473956171808034211043934705937508519291393398528565692382806943300858209113374231489339232607852142309404670685683469683190483199746901818314325508179243854060672734411329075464712294429398946366407783737772489486421769718531598647937019427512110016603667800881837457372269676223858303114654012741000300185059460943592002745103365781688745534596074859969987741390340231158224777361175115884841629668404769665612271953827929657832243296330902230282326709295735569717423039629107641954548303290047342565635276191222349317885870364557184831513401246785170948780140020906680056073254273591951659417440701501640161023793956249565030268828351470934670835654579616195909415001215867629417993612686238676299643126387275733737997111880452486702007582395768020390678338134305713635849855754467083292252199450005359149099128784431686261130753350867443896252598607400974680688232957471285153462908134159613090346277242722407293711478208842411596901430751207580864977738412587515477760599864304845815734204516222868363502931300681777796449232965740923828920559003742578231001935087363854498558713936182868812979777289247671786854467019159082101656454010235396282883258284645347487135538636029971663088384888583434937282986808302576238587164485749074341649698306175574572325110378106921347889857513790663176185988400387189260182033847234659877028740129507440059219357944835768111265793419635128163460343213434523123104982192914522027599301163978801627799651606585119559472972368656352933877612926073605785462247173804449218185742684024091228113747490913778935739176989404918534176640918366500854379161567080467797952777219971372181445527942260352679881339461119497076573356767825730372148370258880479016411674920143558551000353758707661907117342885951017142786588348058701267228273706176086380917440273842097629235730929071899879459511711956425563324618248665873070456025080325684120127862513711604276266041916566536175937729586607026686055827123710042356832488028625735123078244300842219471953198581566699004135180443858152887886704200844899960778182096390703580610053257950029736423912306035721712747703641496875921530142953357616446121428006776720437233867981997351423498477321440502845036883917571204934121635288332666018529466684125743796077679893680535291248720665528637559337938626786951304124001961332962829903874761730151111415787574060098748773429276056068315106706588150464513351805199517076493097161893225958124055390988101996272095610817773748077191057142516304298928993360870901372993895859778361047133236021361195392619727544257588715500244394723247600135672042508023464275722072416328697813591989707790938307968680782339378679827650807362684963205794289103417836739472083249858583887926533445431689673916956914066030030706041265342076220788663306091384893608457344487187735350392080770777304695868191433041194685477353847612353221722054749416033443047387805431029011034088768140031290642926780241568112819455329534521324592650986089893510188688712399690852532900734516206104162160753064267088818740224217522366442154647695912164565984221313282531887079269124836243841737548795369051093465779341077577286877170034860810095172664680243826677358777902949506388198741773019509245401052940920401718339856357993535627924699833914943157203352909946763892811990672807458333085956759204583876900212647164573999275682492359152843678822497561406697567883520876238157405859001708028618653826053575936624463685628414045953344385565814341564517934124529283403441213737336552621079581561660690109482411254975803599662717343045605552796161063960307993467126661791626081364946837845694606641350325144273104216930453304809425924778712712820462210407177219611764899415353572594204003141625928361546559873232046732056093185612180765890006962820556041338127205164293346920929623696280825310915882678544529977564520749464680539085956355874364348981150272840632553711275260258381971264831841525958166172893131314164703107654275209791465371956165384024719404814034827978748262267511732480714563651255702479332680410290955987811746425414400720634571079606113836832373382895250213000399487201403464850652634220472770082937038373602506994744758697530142608744656116328261671047780969880349789161713731121939616410884917709958026543162816792052747487452893454568799889271226285224173761819823504819926101819331386406342243574314246944829034205827053013275197783755236617742250583395771862883832736808879917280239490508134802195208768567911554491083614300563742236127378643145607725135040127503192767740931019160846316760433074589207020279988977745925007679531334247002759142276112543588639941634453393426306756170761274938366677353360301523016526984617884031557686564862773563257993562680146396037909690138942736862029723478054638027738266430162883584549458229592764298450941740414021316140074990069694599539453942861123601977376897714680618745293917716591138342202681176934013177901337997932344690658281502500061534206085483617249500206782391547112692496674607455999267973578303596478243553852326444206042069780022645142659184159330597834079618321496537876412446942549268302142371481203812444365299486999737839595679334819668735309870163102257283371308744882937706631545544482931923538451614121817524254106495102704623492161268004490290538793683530780683238320186373874702924256359546645869252304767005393448423466598172741045285683755541711894505796740214284580930239591227346440593124425376235358566139328845565859286363634404665744354475003492172455673556481361661349738793868357647100074880504894195613668513114403490184467624609427248498738507691643410995528749198369658735212177429133395702417749873131370558071103253642005804395952104825904716380945417029648465619689785867695735609474004856473431717266312024790263227912099911771823380323586502867105254696896120628752330766933765443333640505043282563886551144012329011765391338951699277615025468719035135570569769433211990571280779917285509121784332806945566202855794093405670194144749536280164950549512232510032550109077488643599323251048342996141839137985318921579223178061125100892181237779286861172444821738100317145372083321753591538329234474598163659055860513389300741386811340160352792095053417493815384885492110945322034517007169451911714445023992018034407156383502096232842730744944675718680855709339766006836214516481075055067982004141967045672611376650009902268379199555524097061299793536377352916384027148974988498809051835846769849391305590118704989049372564938275411166312783768511944228772613918311432342788465050901250500018983580847324293614786667345228887729945676074927544258063826167342994343724431230145615192600805059570775339868916055664902178457043266898298431276033821109070859603611324711126123850962996714502398822333174260236299819937666702686406420223950626126606073361403605257872695636957708918796404502699138758359583446742293186477048021889455746999090878227331864225594125908779796832103678022996546587498298012278485782257000315163972992173685292578971130993091720347500997858837610510126435546711337275187401673211749137476374361621246196338647135549329503300682645560417696655505142146141573540853389473237144586349300322566845345898132319810499498518446222896436042439567022495127896288560480610548147156514347336775741323016530824957810273643712201554276027996099600124054061095880742678348132715754429406465178480204481591749723298428270625250408557183602238068933763688067031893339634618690031956651422591270242982484972183343210679318208550328434323639544229409068173911345305014393678098769745218652626079201860904627307256985811168870256300648956350735197301145395976346360857450430433642267046937712760038608177257927536451808469798034828121632987545437351129012405950444510766684009348791298037397082687303127071480544625039889475129429517772680813225013717757349111146182415137286067354256627482609766331506553277111885592535147260915101339822495057423174352554733914311417405859833538756294175563238810534528944636036494405632997369311069988490918898083868121220114420014922187006158847637017102704910544092397582113785704028377079148905216531158303719757720896019963332995674993870117370895498272560115824265620488120970955072545800761368031463279192724292383032200115852863123304252076880896108324898352610473725075427226421684478419903165427735943391654345728780781019205374871893544684769502872691572571213066013903926084631385401277050863556906909702711031220136401915226788175471007959341881476693469481845493446855120221402089559604778257918647265940634856326385570338890201231905920671803733477408155059045458066518875497879196973386097883372823879491186475179110850071996739688101947769090747314916322891846956217568574582897444443053868261287701907473997687127717285311534051778621480372406446494365134148205455996636500817132447136335610754844041313751409824433187802056310797299726086043164233762422799906951169187485720525703690310606380692867672526400967247758177229464379691002110018491191629145021514304750197876734032611138122696626473336329591968286604128292893555127671883542813531593617262341360695580552820114079371751701001714284621899364297852776215982380155855529233848690786785720266612340982683338313719037611480408828649432166955761648158980571729442428074370790251700588102661241442894256138247837674806431769655800177337119473350602088591080187145108285313206969096587403770968041607817470380020320393529478036324307656621177224934113964866878130391926734668280467316147971168930834211673963569061597216347598244696184838530900865523054639215738926312833213312425366963843112422421951342501009605344591039740042699585122400057726456760234957594819226833239485535666271438652655265287043566829027879822073204304252110333951511434932896280975890197469572284917825054606753635311201139633815947709122961433914453782996342610254955670332880885742283713768522891866738169816835017650685915978723575317534989085831560570254883233471109783300353966022003201759763667504717047055048760719480439487012637241742870082460473091173801654217599762530265269498362546574642129487305773945537927044632521341069750816377130312482709491768790731236803039472114673339466398523493160116222044232846068600889070900195531874202533131982056126314756361048337811695008241292073817845569457621902541254493616728637763627822270026650918002052278081301453242050651272660443021860297409124377024744266743809019254237216594085162546810752597788012566305196727295885753532240743779030421524315414444535417564678243217442228715348541866139600503260032273138744548510514879404169709160496488906093781984248276473068160056628924086779638326941823988299173099311311987969891463691654153113004080757604818441630769570961308065703327430769073129673212465594182761323619018281393244749822762180814571207640515253394403146757980771416234229136662383822385552396795663116922663394826633952872797500493224041604510732161738543081637926488075234935636995307934143904232047260494520868924635005890822738889296414818327240930718106072212478464918418165511364658035112888174460338325346666719183874126550019361294151814435240351616881510157950928886056338376157263655788791294077393503864813343121671357976029091939119881621404054611826311780710494083532054712937245659908840359845141534161738963076869667453723803695525946450268384800352838155040728230193995565916504475047736735960901288863881828939829403296588041997507401568857984800646623895605561006744597634040259074995283798347004294680914923862718646129819634067866725034091077065381652827980034450253037264336363298572125204188856733567303229411435332171512645014858546635098321023965228656203507327405745913025214197405373721067294166711833867804547183392592647929951199855218616483445832614992451314125463011024708341050733783224233720530757042896077788255508403268370499119910258795334155933105230257294372301739559753697558902061589475440007303308654277721484935425860722064725267157337791031775255199431701512116063104908982335522325787867621330777760137372065788047000168679662973581314118262525887788251452433741075070859526403138927386136008939361267808676572194687762518348336673155720905751315909965935785756127893654439156778847159326600378197789524535781613906625940564926478547993581813863680750675289031423792403366615353268048659329825932822572001459464317911798398781866221782049402748765701854956019634042080289953793496056032480313989154804258034749092532173400587792917662972303750064026310047237203445625057530222033432885317730656831563044670805624460264206303260396759252401212205499423359258030748286267182662958075614167984415510444840646158287363004746120931711135397690293478936814682115680417536078600573257959906748220980710253799399407813035495650970771145016618177533761264440055680951380433429739046424084625030277457315749541738510785223324581581091715121593546301188441836860201313247226526055147605714974200354574621186016056592784500726410553726338253942052821480881039424120440341263452244655138403115653613840635257504718822170542892780315985805840542527126310252714807989624348184658178526986859116725459554521403774359375388057361569873367630300277988892711362287941457508407952687431019688268581158816980233770348663427843859039091866705552931377044429072068700559210064217136292091804731424353068729527629380859691804454065254477502334447576042052698508008640140399976722490770704984427466185627737422043619097332089956423424264221526378324215844087015712031821081940501043470738713820856861050494513236416756754502274663122575484401833883228835905771186874845072283255132044895926290962994307990321298472623706049524246083817409506600744391807910752234163132442907029295945865984035229825631367314838178032633396118661020498052452206291706300533095036232199721442489911114826990198865580484955112536474512599118730712833904074039932169390187208232894159144251259494057009304947802266733660793115249599576861083266453693692598761284244898728431471006797681269299746478431618629956652808311099563419606039635564750964968419998778015367329838017298389000592464064548186928312045223670929919850900116440931979248241681620729880606351008406270537771984408968798599483772722767419172113757585959168999322936923234648011615159643840342216280054471790976147141940468859257019292969403932843360359265435531435666430379116502054981086153206647509211092121754567241584405648370041510621817693034023111130964848686562077398004748075756390870576098600814820442212683961623411110452129352458481099554148358972298527228311607546935706395120977220630503899434787054806784745952604651759152730012608764854300446899170420858883467959243581243282935557583464238359396408373948423837099491747788927131848901039516281092199113198877615088501280683948240860590030289217642960832631897318362813025985263153438689604479434119629563671532831676035440497078848035101950502333228311013960902267371111107032699150243798777271154310348680212976486867180278954964046168163290958175107886077737841964310441704404651697303809185842543942073799511416546745213096409997907651619606391907791640108338450176712694444617602211233671141905040009740557214654114030569913877596580363116270030470545305206086039492368423987221703957634927662042640687931775526945453207342590428565417690971979801308073016530442485879722816655964743708911373339039434811720827755251924563323893191468987648452095728592656604348157532073710516456742250448103381703420895628443564140474344060584416310225640317038153602940886748642851858171813044852665217832084811912435734402058470788762471020070056236053594994699717722401187885868514431453163836746068757779867829157684139050746572261596167167400969785235413547918587129686687780326807184372290068214616209722912046978186974116878949839460304034136687380481096973314120912781177774522026948549018346855720555776741014113174875073121114841540508083945639069023185960830315564089119944266065930809252958559242330420189785684506668243462534520527094305399712843219951976328761809226250522504427371187091209904611575163163017702764482601734272892835640935864912002955869134457504086534204071640057159574760423266890300077749960030562000795683230747892377129684186560741422942172696657324387605662691521158281517207272803297411313027435626659134972909942273430979087236632190174062715714595714524450833368982608582575670041477500813386107896077157396455151443565463121801612064940176031984385444209008797650937495847334114231293649599095060451034145360332239516820098864306166686929879687226235567374519244914432857593165528715730315187618620534269953571072857803108741835223792922592723432959294775155768918681994167404160035115815696965174467070722820310748149070663712893263756752670827959743777372893584631529371528612462562193064641420145280565234245585637564385912054409991158617277712236272861492570261564618025239085832282275833041517331616994861900749268847852113719095688282471485078686393331197458035804661421510500923137559834662270778416943548791519825582341372977206061122043896520484213722143677081206127892186168399841218791592541899142869144409357145055850327366622182678568480750250503671270188277980087963317703207916811529198254117280884115709914060725756976531395196339289629074733041305322691465868726527628468873906560365005272480909494925836824204532500586042933440048263703820769817199213737601475761141413658515889310955019531829151287798154996609655039805217835961939324240974778374341392481558395676266856369881611210981437724963608131213448521105310255970833677975371710803700463253853263911150257684474618582917822142505462483135823881154485040354755099315358827392955133122982261903407101316423378691117859958655563742371441606424493979802510845332628081878190107017446720858077956244244710595030359249186832775126337333304015244640172242975689933874886299761340576890596393933089708585034907222157514762054511495707322680854183412234763211502853177033945638814739916775370755840923097714686512744765101930589735197531121719720455188504617030383115312956148675248989542369434807476993691747452529697563796664903360696288031349836531378621219144937927634340263928217496306179323346075811710045833414810680681772391926683554958220145568462919715935131640367979531885797925648258886887089723346384655911641929488918653624605106109122294360557626874068325747993712313068590602410611863711232111039569954292605392514415191615635613593871194339056008725365947566089679387696583754888403338865469510944336902050688044830275239585950963130275239205760607828813495844065488397146202885099404305357572509896629810205287159904587766475634459402557373838394549639179168802439875502130111673044269952168900885987121350250897627893973466683444115377363386499587293562018874926507037391877395635591552197817984196107777465612039739506794195413858792612725361773837226813557195523113877972585226466411584716208551797803782349866744500270866815889607420047026525571549063696612906041961536082101407065783077254252607887415204073421868670417849696626451164745997950610800566395052226480770778479993878075040993029689980834603994773693326144221930000599847879777139041339691172046844748215083328094990581232990711405446973149740102763408596850957726123678565953891528573767999607232273807846476518412547684547304566375011403025989346223870431222419270101512506506541869879125990708278867139041527060139179679603796256528314300679546389121321965150638147173275051466376545049197395777546867072326952991520101649352207903231772297997112649289515340130182822890764920103828209017564525670631004118532619593820032599177769291381123476810587548395635625747699531812100902465023614491375105238451315877586585684319687913888469327975654537614639841666414156160709980300476782896907836732298359401448975670326377610959028458106530075159997468825359473254873612500877512545079446110887832383304913796035090192014395132270844655203674335487937164554961750090986314653236422620816707081927335711130040759282376757538919473879798871274503826971150079365404634978762139657853164694835892834364649054250192816231383381518548429148552187666050433480208041768100233665229698843779969912697735190841907987454671610383256342263448127863801969702868632317955843763519208729473117088948085761778149842918044556766168395284931234386229781214748526625805583637642201400037092914458369648126773459443940658077055268604696317460344724716817145156615806289691950660208444235605850972570090309997350018108158549857563827821528531794027101435601288445632810360263874827574186375927782923326515959855969024489108982950932512883115773937077194866437653353786231950628844420275473791911920756654191096726442908324459469281362543089115522688018068805771117717596219025318474765592988403997092445982688413986957509794901693641818808733726645664043456152759518927098117779581236843696436748654756233789150961395867812177968646426485385264056692968797045194723384700608394821601737187044896322875432483125299056936689620631138122776522577838232671314056533924689380494664143173583791754400029516530392155702862233376755317185248295387501767779096641820071911499780065508507302160169640596731401591614081772010083519438317441541557656254962345976952191878040721296201859848010571168578296464541452811796483002643942263758765084112778933858016584292629053886302610928568780079119865591618920307384264779941547273288170661833050789758949266955011861077578435333746869466904782694785284798086814460957090026984041356741001138704530593428765568780605789934429267355852353440175503397444048768770539595769345413292745228141687214223170952597763343594444615863140451750624015896407701255235355296400520529533700782430134550476091326266777852404016426645256403678842662254876316068976483269838999382129983557574002015232573264309533172610487928329058514842984039479758894131543650721632830451889396369966219031008425388382383969429536760002439635725151235903600141476394288326403666111005005984616085620643457042065204976724387066607907061765513294400516858342095175475456854345907424044172185811176356440033470689182322995099890493440502424694761593110416669892600387789532028752692002494969881049637802805508228507987186625596423906254193180276533652577960845334565136322113769027087382936495369438599707657500913966527896800953844385775539948240996247118952757663238739062836212338686311775039019179836859646615954540840882369933362203440145717534786102597203854777082573471352865392920831655794866126453771982039456420329260891365788276173042869659942380410350685294665925390090088144096694352473657477204699873899330469062863162800916681806453480259549058488979106186381153550780044704443475944734393576540023652785141872591562130496632845553475963632457045051673589824344513031234070379950372037468377124514303616132511028952280537148615675645159895209634149019644860550370481083972457423608271829617477015946457440268446243774141494954291632543755006515927469481455601301882547564144247457458503599134417646380792767876672029816193498418064239132700443212057632121902984628763258102260061581645656753119289520438498093930157578503988854125325034170121500884283575879181925281097587883347870302408978527549509373746529035067783591025804225225098494115867575610222123084519660149357306385141466449115804759831104145966497161114222789244737960894770876003182769864091493201476392616146833604819247880033776378098164243863260540326703026259311060164974473439972444950443663972229686173051718518649499855158979995641153780815427620876422943429635845553053932072431789119762623630155753835139482180458315759446730135998912102130849165870355742578309986087752339629211969928688990545835317593392859529355017739416024500934100785550224301253636361432394543189363016430794487563642319077295135989204873609814784891286235268378219042894501430445757981282664727203222800381323293169113809014565806222736308728386792005943062478228782207965034014068386695831427768024549886389279002869479437308448843910097325373577017741481798459924676875007423073779406626480955520363797336992080092008064091583953629610221523603287819061916082950834608573402981700082537244099650111592341759511678478776581988973860847477874219534433580042204983340142098934887065678764514701894017760667879594365516452302251894961692390560771202997138866865990121445975763714221634917986218101651997239445393344220453235234417436173567822695912639643013515202457346409587230701604257245933047582908440357886896899558063166094761232866379042532740464532095440429231684783954145666862407647191137639270037530821670367898792145074416385170057538072556725498526171174678234705184331327338893604834197065463630795047740573875277260042487947808530119436646640993534902212818562311062742648899102703897936364113298023375343777629307030213252760411163538861180496618203354693322159773758757355353426009257879944600428330438081434539248849463517909120459910031972235556869534497164940132234199420115216745418453995822680778459900779706888058350094562792628527035729271024431004424826828719513844224905496851495642518692327142666029527850980230766175639130349240572836611161105553428366322047954763952731477655278373546714697099262870984914484416665719825964296508158502409860233045860758626971784073450132020082988579058678487519513446227265823258306036407802557773144658212597898795623376190637830631925548996961536499017997434934548643040369011941248390197673451311700779883175641766156409290391859194885283694650901864901531101995444968595225961031239393994544537095816614161636004824172957702549775087645889471270816040323467268783901258477707787423859285392186135876451495205770921250839571539115241147260233471876437295567244898222515656726157085418962597197128694295258342542628468295719038233547530950761497372062016948292426813034680301239362543043134835645392340826227659290272801395323896351299219007954313387956409049506411999723021810711578310132534278674627454052755272001966630816219465327775134311026437951873125358204478666497365739757172725635272750632923260113966349077112605491613142263945835086274646917225534846898418586624240944468813160437378507032530807731808799544934385813103902181439832136167061012049591429353437768529555557279268147531408027576364481800919296650955687411590597352274901204473632191487829210127735384602236269411465129137863408039900807849390748943942187870908349032651372330103860810604167699976866427634432038636637947368155224580629197054759556746192825633919142036852817310535036201491604673842810510410459758143899974121309920486770808120929910505742899951296406090466887198552396524027905403408885820580125441988384777945167903884004023759329597831042515315887973578913532564351245087222738042484307815421867260558040712519711275557260794081418846676665129407154125375488575966927020062786599139325557427434922922061783351241102998267252887745698292302285648701997070033172931011199407380745150562286389034759292509682085131884391282357942497195275712056302503797465192755424378843192884382921615911795628495725140001757293138709750942837096423765250022745951002746754494472121344353643322781311404575760020236995909186794213197913298723738747925018044674681203160254485479136271715985062732643805548001801495998394033300149229349202467569312624331164489567041497623384308803292276239008071552291056004995274277388805028488019078764145075963406421076156773164673763245751458111042665445613759395364260802625768248307617845242757628772638117861737735675565196100717882621498436114057853765912062471998890971208137247655206062586863819680991553641222403557134039450824799455663104671136569896982350278789849929929410549400835824092477356240871152049700035846317294239704689626876016908946320260284836508585195447197638227186113149458269993695224469258570889594608174969064310342937397696075673131718257962176646734066337778566449554968219023634001002256375591093537358173186566911190716859998380601564007973486132918244553108654062908224492537585682142749002744561951516018783063916560648976517468076401695096963818616029952728235518924274650402539397677762101589169842043467517738268818824338958107756381574202244326872973184212369922885570244688654909801439403501757254199871094538733620563070055398987438805811036707496089441837604438019072534355290784420398197889815787919283989755362473772788770895128289741645690046620078262450640011822050704451929803987635732947752090549576800645465288558039179398172777597016056646964294518785713885426666980685838379615708412264746872647173215704227024387834104371547852568387063048829451648529474311894637563474718665429425353509544042597127876164115344096127601537824894381635386946981791469639035787998040745546453670322880632422025695063368041098786131280668881449577109440167683571266086041876049324814847431511863178959018501772991573857881471746066959209669893280151592581865155661956148822242727617216123190515616154878399117174715247720026417909354631388846040072985264877519998559813631558166424509463636082808291906434762421884122793267756680353626729463559400574205112946833412548685311434226841155020124493326617582512734104287444026053683015117182745225004614521699802178559966517885086400501167413765026706087145808428269555318940681882237366621246088515906557272371639933448347755470494344726519811803043535487236240863193910580845842181813201559855965023763330117370355084935565071537154468981244709660072724557285395057083730553059742109913473977740634008378530125255369560850063629048631581295167977935966661002154975714576075394335802591819663205561821817470071983414152534543983291300222208908390549452763524547687269216257489799313937999532979568849505037334049194663321267622810828574678117131962260004899973317115474173010295500721818067866811535789810310748729500519808422369284177173942899116308484758706799777933424789877021242303953016112558449359039627647005536336322648944215857376693849576786571592607352222860457709321174925967688858638983468071624854073181442102338052762629690545358473494804913785016955692955798600934959647427066199513890097045797261302984604682754961046628249092181528824891801113713644681377233188307896720000522424997188995355211358523596314141146308897394817302281975424864039977855847846685377303393999167631257684840630677782122397225655704453520936267245979858015699936262796888616282246682125556813125186048521282805780041136840227434883163156940635966932382250589092436532340961531054608860906219271382804375447938526524869619834860255616969048230011645062912976807039379858000081274595420582736841485348564969498910430007315797481524864632436320255024585209450898964875906702929906125603677234097199529272023563196682526839319108688775318067466128151510303755702229307276509229977556438520693271762609058047062540158113339260836584460116337358450770571501623798409442697406195071821800581152369131847204068145653749067726620793418732170866909755769959702599055017690836755645155287747191817152429313955278165244569170582676301163307706065589555629613808297899853952496915520987177921170064294974181981542569313583764080261851123361715966758028248657823930733365058824707270746380392596575452581010139899184758544960023988733456982480487472520709575282854683833939055090867663589481925649638918258652937728061854613952840519895161880328792793889038223833654176320796200954861933964516382194149165549335997391892150054844248818289326338642301156186415029609384565656866953981419960351162595016360321080509169982990822610751309134784420141264740383383427469234911231981367822003830095636309559352146236355445876081243916417110711010184370760653575464308894802881391816358783500862305968542046353144568241932251904280525999996099838357693296628206324386657635207314832003794538788661358843974702677290600952243179489927454227711490426403602970666277382092062319554100514076048417645786511194526581052407545425568829639295702972051094937181026652586517728896994591493046329756923423909085304312095717775642767195282806386835020670650529666909498051972279825644319108809756181205806799719622588188922404725686287819870224694045063746156620924452000359316269512769446730922769659268576246731938098016057329066699331571115770109907158009357444981329551759322415163497978895447045579949370777747548254071169980445064376876562295914022218707364268738434847746947777724108873112292594137352358601486718590926534711742860447818552678316327153389562000540514178041169865247198789966812601858813436820832456143211058625109150029733879571752858966170618751522018918603203439255856282724797051095002876842021721312617353546685830340375593143763632944843658860542241614530837488002094804692988280916658454044538662949286892814800138257613464602608195042735458824566160952367879027924152656939020205015274739611226136673240877467803923624628766111954029917901445883765756071482573875003909173836185607803569922037117373239949964698009690705547493930533636636401611773373612416522154253808506893148554552036648204925711648648889022440692948851033517981261641464789950258757357432347235743221055818639914725503518567091819364205282980194038150596811874803327672977366280058689503528181602562482400483001882788265422573809839351146730099546127572718726725037365829310556844549944457974005786983324972063365048595607031452063147553694475294131688775179006018643729657197713643182650622130423718870496567959524332197661745994426089522833120444245319363643805473270929793828281287479214537167411528471218768052260261181955648367581989856574004723102796276832591720882928782902426272744194781365502555372717976315789004923441709743431513062569407106612719001252810720539188806825944510843061172431123719211830223798489685393481654768174149331744872721051439254943780366118382012205311914909723447250027486111106061649190720593256783843784117191505731020855356262521995965898113082880974971609497868459765550728499132180049768704010764220356675870805045918597557800789740334613740580523066395499201080504940484402394839341158948578500988458784231203486738050815105008157556053008134407330506412516890496192125326124026947004896295891843296359999876558267045550284614140884431637016817617553231646730689870778493392608231165555509943553055787880267593392916688782475473989976488341869823817744941644264557282633949159085454306960771231457492479778615851185527345837307941536897334787800780189178323790490936898523603683947060304840741664879270558373281967259203297538988144277463011488771383416439510607585818985867228755202227457623181759614054320389696470113323978841291363623339795845154504745481577412100185179044138405364546654293667306987483505281303952360591362196167353706822071454914796038215233386581888676699830965280641447006492761097978642237535834961630578931425246086404534131403911593290239957271507880284564266544033357259244054548414643448324428974823335739999150061774123405265722771190856504705287234956610910379982971488642921986149469494343168820021701448101696359503914655252277892818645777872505158567021304872926090639338551443169870337067226896585338978687156660916205709554804620526362039828842061758232865367051755253317643969043900012500730575592680826943351744856829111644926125228860296491500726211736479557651889819468027473806820908980568377187417472682025320979127465305945381205271134878355188734884552012738549458584040949481105930477895921621583252162914090760452614006642841674086285609080941336109994538628060770164520114736216932712116992231258524287232122729485748488864297094642914473580871111987359538860239713675958084473226538299760577381933041129232170634032381492554458209319652969065254375040451981607770911061236359886713483981649456698784716790854157976935405756192511083232769309663759826924490758610205097331608119398581153337983305216424067062644268810235908827694770840829020671622813007563857083501746020756759719092611820751778942142248279533785372159148818327661912998282387971883177573729259248993608063423251845791218608346523026197979126902438170170469948515374252437201389115801245435151046734562240216408680410013891248717797707765024486903629653587653160957997574544300481109453199033963203371563359062478924968737929766392916944390551765947310664702034768567671123250986331542393263567700453615557345354789076344094993150186455362930384345960147840695040406156878906715390499865496471261327137337258217147980842037154034924791342561665115570383284862728307137881457762869192198534076722068855186015253956263850623700237890763239069005825641342200688715273570742635745481708747616552972449193467056645603694308845960750506188995978592062047772378474071942610711282991584660480321084896291465773874595241679403009087924609930440380715291869925885224666485082021142794050561732531543297752786306368036237891137417251438518537561834402317270780780867231768884378959687878377968308015137125747126028538477147041678078480910433915990275240019860374925697471070354787541509965292124904437686834661519138784756713479427799577253971486998746655985341237540433961924652155252203051912022428570584877299837163949243580062632100201029620247441128040131209294624965761054301611341338110219549635681403150474691099659978622178132781436675777774790788684210393245601196748682464192530052012431134864543714274558135959565494726662495172229101349942844594930029119190600215454423656682181183005791853582263596016047511360064959332343463754257631369237851947796860997046473763014844452439627719428259538027305329420131840122748001664586112653504124651576967961795971392664166499999707745854016449930538420240456080248535819089670212409276650886526653555780419541056483689065073611209208567977187471630350427463314016484688150376143862379143218774147773630141768130746244719987452816096670580036407161989889328808772005908249555803556774957753248013616248609245162437105491864981913803844735615276370957868213817175302194009987630618090700567322211260416497825373259281289511100087124477297352778067591749543696930378553909406622497385652839006482592775803979850752571883321641957263013056483839535201542014117626210289529875435595437268988727565970575836245249994771909219796045636939248844940434989289433098381307417570122270645316001738355810410250248377514702099778022657842169422933182379938452942497409375118301496889480864986577380751857867156391168585431701927978042236235756141193063451213609494013007818918153970027339306616078962824834555252552039959296031859837341696029024541440515850297631095222267397463023809892590915706010717842682489131159086734290261574511779263514437446435143909099672714379907762865476719856931822180369101782954198745524918012081680148843555889067901607030921111744810454318926856082338144239255090616742051709856581324586978488225766555696067272358787556333562453925497144259861982076777149923714715933082552896420615175363360907409185059147667448609810417080825837936945156089327423975599961742997667483002046111254119995034884645101739250002371049264169774948515818291103102534692659855672174966754519062287173035771494136146959320921738000155942056102889111004247477199273644061189514358141865514841748231347648832917650333562628037356996359410232207570099025555702268648144886594849179829552647876728975840921217420062870724698052098936405492167569594103573308741031290622217557743524984614264837225600927345799174588032373346632051420638972901380340733390908673205455302564003152500130394698470576260851498462830504783265160541742315585116449096337549823247748063074132667965759921301505445378975618708926714555785666703119338376377142838962566340832783251783988485114594262842208605128375598621520355159437494046096117839444996357024823503715019903887561174194158780664286030635109286406980055488594863441738906794569456221721701942663081407610995035653031628356397268684364672400733275897199960216806427507243513743719237839965438914707591884679715490634415727498544653389928669750270630807732934426003264832844588427856917069311552373296250709348696494122995422690291572436695750511010383054301126792441874646553126753371062080291480447111873589769352049442843077525695840075771506893761748930551886782821807420219892011411205349924518758183050973819232228809253228422055432119690179605405287333820393019321194572493658343183684207381579988036570138135057755662405905359831160528880128060383463263890028177875328763040591698880909210474613597670130184339407962393897532227205850780689016410627660330514564004708642445517050850116588946748559052186917282234207136768913241571407229652435259179223352740604791704332804513274144627498509338052885340372769625618523121231324481490030498417818386561271252439936113440884430046585641453281355420396959620531440980961094270101969330281022250350080115980625532112847945612447608686729654054389219950397723938000382534860234172858727926293955408810506244590468359260480879108033736729227471784737340450273165692546971224085863474728131016223602248021383686579823622227332921577888464045682188367927395021540946129971557486728239596863510343080955682828209517433868922643438791839469912299911653621867776062546909578693469244294637190064076992847821060663701970648515718348079581012427362623486288580121828598144733856131229870968093820663102621695451230247838477751164815772725905336691713403335707850797478187589751698567793239281525656263563942277586493408789619416156527893956655657579319014662400147048700511562537529372817753115801162323784278273193251800550959923540354124477754174502526675661688511136264887067491048910866667012987458300233207153477833465361538047943579814036813703195006133708932774657006049586610359996994308207053887838042668203729874631609171047735137760664808943127143995431826920521397531051281486006704751073119960398992698537710410181091885331196972083233227803595989220509740271557394281125923749029606086090078392590634740182339305608531021660734891223318506082385839236879475566640483523856835195446426854237977914007117447428022366309540122596995391650949066572011786841722600296724071327957066242636886913724507649330723164307137327198866726638021553294744960214616724865472382830026714632096541606124361218422174369132415324943162341446164050863905744078611686837624538440579762458882284529502192925548040145644096096822313934656626045777463840646069346313396091877030580065648814861935069233590719695117895067476943590770008692809419983037807625870020356292997596583345371132089983235696947778634937844098895633038943359938464985417344227501212633652806139410829773318635994269245966810906742433116290551474739243548923830249001890103469751448223897475042436190318884513167278994858108272880926648989771632137890935016128878663546144623678737923364369965418414864826586841783577866171452286770760446410126884427399516796371518567751451122122728945885481597807359132103802682032251410213548971102382341034591775968515836673807453469296443513808440679207114635161530507818926946332290523275648385157274672590524067839822449785699240470198948654445711308112321942443612851105339858179878004768336103685017098498470584569991960077793182652731835729315762578915367550314084056472293238661869775153240939917042465957258073385878281087093279214302761082297792753050529385472886254823490476755511714110246016133107329902671182711149391077064485927286220794484441396915369918804739828629132788681555424020804318483904151114269655285308996111185376229503265234151579352328592452595898700821709760262247045971317831668821146628574419742018772297298393506739975320321064914465616464262827692083087894359389376254091847439225748949538953030174348683046136811846578463828197970697122819152231536639940476324162153630716244554289936381071581972868276776656801435380048507332280424133306157048072198000815893094777200352571165757903547390816671627336285736995725905037713651450126735713169424497420954270946288998376563943112329657552437808304459476132177012347222795772993533310356039213468424848467438237435918344808956600325826915557191419062641421820302400930270649745552934453898591433295406925536457798489012262750891317470154738864951252213267005148352279933288369686867690726044503550412000623215051251456971129667046855739697220342983516730136755509102868091110878927597507101871334466861621262366358471658896022625675224431458809392235605321366755609275918920611959547302966721199840665493133604755559648842311496653271510053685332335147420581457642616561523549115641290652083241260416103274214755280997240135425628819280542631224848993566408245918683870299088300976689371461648167419673342894597744360597431856336394665417733526313733261039687103516464352750706546883859715710031593981760281411976630695136150093707736430256144890423059769585616426749265642744288007371896457969051662881646662960359470459721026552922922382473195514853008847514912689469003729069054427979172196435611921422418567488812264875388760178383190772333936376076822335529819172128307841018683415092900740400487606783763117573659684939056123133873621319173522748914074623328899936519860238869721917182117862481536681552287010380023702776340660227604423552253411403850018794761315817281278089493885343645788298327733417181723268422370854250990389343636884988057995731725254807147817655232422483401555309902046912091094805439206027329617248763883569896842563982469767557216455228660959238077782615124556327800072269698002208932786016309932456909497433492288933564218545157764017044813540997453574328239855873267101092154272896820137286866817518267668431054649147638177928713750918591904072148649374322600422244701649516217115385391733418969037560835927420185975978858300064658380239863341632970546509725943398392433543820730618767559433390398050529530563996699282947408122162754223098905543516366612760382667357707132272962931180611289428815204395071800728271425331246086397746292660742531126732979680585135053276916853090768191757996151165236189481462707805718674960565385945773226056780408941019266134914001559965773865692844819226628422427626800182794534006979117495734870695923434392217634077234569166931702615336129182900657599901286814353392474424189875803583455468571624393822430531019314403853177144496636876367842397244186315962680461221464465176711912191428661444361173502411708078776433485263134184565618222738570470842335978158904395600313839800909751406116103826407862318491432164825524550396553813256173342845167559649420792637537816824140311248570784933600050584438646317899498505785807815123925105887011951946269960730657437249295419053788905743449170304194929136635844629529665774402709142621045694383610825702935354618873994948106796029290007058090460506569626161721507817369409116431858679277021392972252275569520713255181512243742435020290394690691351502077274997355465145895275457074533052096288550961933902277559819444443355756691644877202464102907107887327426821009735652733179241406524176620466312606897035884290619706206764447136359508105879357985946209791612517659181854262119373886502263824325352313546383840083306509732879850954249626108720533156176037778374400437892412474770915000370571238487659468517004886306628400135898750162442373895409867406673011534881756800551308283582062405315767419021756282670535114141582990470306020563558367616893153086125326295906473662237110773324589569420691307125399202721564593745587104920405561758392579372814134020444387938723550841007775803318396807798499425961253284613427746025530757972991310380699419004786084840071157166126482647906898802257491873804220092196578149597260794842737713088744908485017289449070900302110001549740610063113645876677761896620095829755796098722829594182717390009659126338078689490227533674344315739769042618595961014246962040276544839451581912596565864693408551151740085005344184062973446973357476280381483665996290743041997756542151723547216601565797856095529534442776311047442459121517669445637006288023041611853997645803639180357691139361421643492877283417079193647320922201781927816507551721970222898360692329508065923494967765220688704741190167203075286304581015069262752348564869657401745806027209275222095927117573450254103820506486768653475819664309006560033979584535904453231046522406036594933034264099955917229670949803808732691908090795094868615888794709000057115527982161772330208810249993177631893063890611910247010332422122727617440014175882029167433189164587095568300703684287497137371115429983160901499919952312426364292677478803465301555669426947139567106079848876572601934667388680385422375311749875006862467831764162728011931459750962252738820572215914858662993835395106577076564971718208027193549653086368075878773135708838994298143690552193885616377806008469896417690148359465251257008442699403208410363544527767492785213185402006790236059237715768703550674975342094991220402311981363870534545125605623172643891278393648776638519727488217494056831636854568780561982845579227948512889813843864562390812742147516546357171569955776099776665807373165411545562727489501296684523577472930475015008534757891929684483728269910692482938636635285356227859260030203193382542032816086678583610935591919218086805956185804291293984403089612402122741419747269725369666012777225606518106063340377322536162531564003573688455717499376269426574896181682631337670060666521151870816981510243421199591380760626046317795715161532685204140450911753032044749885851835366227205477834863608781846358398400861578073086257164774185138681055233883721714513590674177909435590138243846586673568275922982764937827090009987534431158826376728690088359792477875676806795662257967072119689867595502418541225746210430907988983382594614948903464352116879134060325564267506370331289603189017535283048882408099038534099824075885238632056784535531677811775942087694653732624949643293549187120969693984005033428825244183133778266058352374435864962440312356621105415925527678089828180600264458050574772940214524480634915030781660346788640354162937260555360026936797612165690205789634957359254665515258550462191976231635074266146338076240481613571135077873898629847442341910789697785005924255748416316739087100120617803370000450853864038135383202427724947724452012917677959812374957549258149910750811011238083042085617784429827171362988791847180935827236563353585541641510704204735199552086038078134542892657408954940056167785062489761177106177327366551928366366617618259175215404487254065301502081499771610252126252859587786110738065198284105538446651759155238027162365017755624116558605506043394834684575403668017246833578017854885127216554424365151172945652790807075042947793532560005729868447263091273431274620699583728987838752832887167539524988447605790251129116405420401277677870423399093000008078304388316673854954594815519586649864113081368236713072064989778201866328375633830135303727026052679885514215544863467192068308351007061086444352855414662948379522485762154067054159215406863734470143957164986622315767941248576786070547792930055708634648322493542672618306437042102107649749546982442218791045333381072259542024161907324442454729094736854187507191949682601333351730084554978701376592420486815937067492842692138857051176416850873206359720338338359384612720069974377141614373211881606684757129873617492871200695607685002071471916584586296708170027897741898053724199004428000318463351727750855302167501484280696654037968400438334514110206957323439708917838042636808137022404377218208240675653745422510002318227605890517863665878351485766764123258016799228234062799918113358254160289427533589616331105748366555155004582840667694541082804059880275359386071822709170375817073011801739418653840820392237257600161558455906114818316991983554690142351789159196672226143919925974680561084902203679541784570863262163544512496938992452017439094771970072992459394970541389013259622200206702893503161221570941363037503400911490349755896848329736561765227797467480054921157568800519203348245781837938804038458423612680115541959616392986852313070328510941366770543109264661638510903461448288550717016958659526698405208781164369855732621043359784015933231420894682798705028173030581759779728314932967399987716643956439147753225972507971913843435528320473395240038951800187704858248334702955745453630606158266516903755361363660241553644815764326843574779366579194552050107352186361862160352274639760135115001348972189445659856739414484501448646098015664153430053711061785913541314586475995518291979515255803043460879950310975902175899322469888626360177457107795600860154689888960391314083075192683016967705568810344661081009536698039002368709587232324445017393877250451772846673418213836909248037981497015216202752454033321535758442625807346322284062300352372153161068828477839095102365076727082993354739815744451817981704733020070855045145897577914108019088128156274172020548762508198736279667283347631676985440792062428528301452454752376151010533592187903967179162206256043296277065063462400109556644268292550926896590696242004407599014089084103274660138655268510683445620345726541900867328403668189615179070394704886972644470031144626900075477003001902026832264825695469281301095302168902405835412388334163134376284422021789598770120839794601821167417901610712148465859363259131640830202069590575599149853883327245857635751110254413021792087881110503782913345100233992078433376504016765542685403779832891502496909598207793399620325917345461247244765867280941522009962697298220758852645423778666188975339662349473198312870339844848424429629521674925032916489459583050891803498523382646163151248862559077878347520741321337956963111628660998959424510403117677981235524488518071921970666551660720803871233648422313887796150511789942593159414755756298018527860002803654651307440915745759187635872470385413663888446156137198294743768277981762809024215317561681822767825182140015045848252177483739871283355431807370259559017936904228339492889351929943760975486267349245896546424720481940777512602855465287425993534250663481532366456862343054889621834296077894277142326573797773604262556244109004410255744996240428057165363583535462251913052430754952047583991342965116142083942893250801826559488792488947029921526270518903042016095430489356612922894353543429743684213997386161746193686684024058624607983195119025397140073724288552059939970818109297381117445691720880794326021461219837720273535177399221873044771575208241742370940036604035184413237021002918224017879980132882549054201186002368267635867295894312427691806696627799721045952121304395355805096271254195154514112835252048542147625258738431172851962018537152561391787559196924685094542758214425901238142862724811018340701966886120076655125673846131640472563013828340362848833838134623838418394860350772220200673929022392590838339430816607815298925555366147020931102923577261712680482425760519612437738807891330450745059983798087474415913980731190970267446135839886881754707998761068911863486596755280628625207252729010154609093028051102472114667172522790630721681782336237334168380858048737803996626527450390916089254669987196746559066560316824662400816982018135104901060818667816010916765686073173218608547469799696052212329945683296832034252257373009905464373335719362579631934436907910295645674843801329938025112878093421939392483602589148389706636996183365160540299110704290021177598979694382859782614786059254153771288788296925287790047196969552074108640591971660926295778343934943928445294279830820141028519701929873824263648841563655830122917911085199506325621634742399062605399498777953871115673819431691855856553475253911468611589909254142215033986792641330278967699463598029235580603486277618384732510256486105929030623801229087010084156302469467156100338940132082572382328221920984343367535890621557066091199252544169635824698621038553311228901996798237952717745231081696676314115360392022088671643121738827972940886192717678058309858447140834339621670577492415889665668092122003126855990049364041367144985263061854910863235474729665191961739800629885974712525090871425963080451262077613345815170621047599627090661020835907209991206149220206849422543421406082726598514621891854892601294084971875549148539947000120373986135527793245985268543616105252434798512576347537580095216870523015541025780180806818273689336085015926976614100640079163102674327823386699132858752549208075517583117146793295491233877067833074224684157801208478287756597346644051349193820161676044339044086076222254395090612072633266797594861254761329657241835376062058243756027390096835529954812746338639838103948575856302845780241758826660732835678207182955091995698474360332499840111435500162390825324748309711243934284324004229450428656776594077018996225256523292563107736256479180544661549720945504850333843216997006078247642845120765303036272471436615059899958543410024184772562840533863128781385940626086204840836360129945707104400349091046571990810432489948652767564416670625110883933121120715035885309059492911213381163769285680204516334373195740760450947845866831279519772514935999251272359690383468319817602854635579264274516618358674600027992356491244497709205418332966544034418569389567853809376053688324100126497945243120744649277624179727417679366529559138142075384271790974106418706450768919069412702640603703973700252815221368844962584147157081520552880129218601040822434305277809201352495983635094244489630644822289368124117020956534183690585635370663757416376244043663821813033508510040804620793596723424803179498559612353495690677987439648580454685763566949672709159883498902495409886287127140241690437275510847837804259642524641058589746013573872722538567440474398684584675912203146489083137065819225971390665407600060647876641794727751562459097030129839280404032788467418722884831579678035305768661149262115847477649836472059908200278385490795946936780464271933039011870993011639774982759428446787511275180186000496637855560914171063722685183874536684878106896784661684622618555258701073156958769027898244408946381020762796341230524679770778253615169055921870821094919819946014108996456737651872914226435187005362008502744428740443539972763321523892578004477705265945215847856564037221022240938871480931181587339285821474116714967682846020395314709041440453107302303210043869446511379162515057259602689916208776396263032736074493062039783991266193084014235875230719189298682028542598350287265781885044827397060014898557646168754418743235483103107851088530163900209125123936577650017023123981152779974237016467058229564464735759742920883150869289298613781528771928381377264686041558170861138053141751690720732687803015854733623581603656881268243483773379083847254893757158255902668827860008467786361941620331840118661192348872190044804696014289872998742836441500804756682809855263562294238915403003500873534747004703372320215397287870529163013663452668394459906855865154723367278718037316427546658053058560241118033969679838692207983627307865907344813449613810630380419926602268820510809149961517169502644260700570586923370315996849661013279981681988120518861029165503283700346241394818606880775939858737919396224731384617193401227912011696537849610204453645320362310399443023800925183300777550842118078343769357684655045573251018334125528032047619742706617903479250996959980598000495230259704542953469226911629140452428344548331100202507198791053145004352823847405040408740758302765427092910804953627622437083897719578530923887939512409371603385271553694740133742892238312770509453173760679230124822675741113772791090888890003898900008994338201428728077434723133282643265824861581200334766123183693643346453733349529089021366783802697085600361821880758047439406191917021918126940128910415145414685727661644373819842281282056890072891017742468080985160337070475927151411679793944167593308864405026308708273190322673407988558063684010400157460713957003870146893274639535502019175417563812437509739229247024354984623746644081513431539578512249051264765397464084712484214578666225115432324044478918837939425295970414480648754593126399363899589487350192363554513250253684326138824733219121886202940634758709884479832310566334375233103350647391984863876627421882336919156666372422010022569207734509586867881065157936102756790862272378948263257898543122009326223941328846491941245696267281444976287616177533113701430828451188643579262885669490000135999057708942532228178403460179836594471183335435522203687415988429850114356277819344926321847436987066668278119882203101403338842165207659319976212024397179865261714781929247094986662119723158655069833051846735008000771112325780150557098542914298825244754290023098564662698826501425689015127548285927277043879592381537025227445669306173201028103766544599677024921779927708235722141970166884404606187309692891135771549731814033838729944745310899532952572516447213914737455366889609711758953644301240995844945856924781370895988349198541511138083442682292381280701408272904333654820947447599120666092289572988833766786681318694701792167155322204509734872431796673729683938668028478376356643614986743692735553325555483079794224104729499635893930932547827615314559616733690361533589649051107764381897226661930236686502792093748721806563087652462783865609006622006353406879750262598239593164653506290535667068682899970180469968343307103649751334383598652079378819434764952269729993267854580928114953825263833609745016817144745377742802179750702238133962906613386000298186123555400554726028959158519913582571007514592265572235867098661530957946558687173788134699406814340373055031287504751286478355074295942496037211042443958530962448453360531811488617666444253379580369242564196477622986356094020096146001056494556815100993913073271223743460955148266809781787610741276189479574499352364416973108667702152198383570087369848985526523638555476660979853682541575279228895057324535061135922148744251264787827898694658883747363246313286450034273761153178095292012246177711030480781927788720087207160342854096848313933021537023654116957826746131266334825156609163699672811821628270977205400699381307248603125232760934698381010921881330526850833048904833862904324254757525823293718767251609585856284193306356425717899927914720066739084266636663986814213091125684931367714627322738325008679523688128659642442729929407996603072776458738649147166092425382316447849725124030299435755223017786766428880663497481837827283980694195389999522942035205702832097281117953367410689945463816894963831436696364406171801359226433442293251816244738124402824869694502233263685497499516525708292073424286287228804172179736792658659374813181964106576590350641242162725338100217630707332842103865640533922290409447693538728470945782377001463292230577405283029801255911749812493834453052725350950433957158474716546121527957079269494303114495718715661106024893894370119388847619626782041547639745898318206165280222926624435961652716283201535342174492170529307578944541142141613857378787400330399135543662186657089878836906083403451608291699573197741095866204089958370116288864862488971996730130630423011166665401087095914351380174134202192832342593283011998539478300249929574437553819590955714957790057225243846618562743559741380985560972770209852207293910776713023044833643876135590839844667622320932430735819651595929985738694340373676547638664583394632135614311094323076840446315591202429226318871669511017551528983053581546584089966884961713696302230538868772213085172378421289930157546682794447131193678761814593976119720399419327704489322037167028770730984688566700159730012922550270068404825563617092057098676685003744362311111812873463599001114872501434366380539261470290327157605692366632992440624556445075605352939306576665079250969314733108765848941615205227210145575127692092760832085713987430929686294523357453156273553693395760027178558303384380012324921583745595387504130611461794260100244680863724051276761864901776066085243784885571933577681110969060580346227878505330735540043227598158839308598435664861222879077311409714286975914911828745350983184472428201473482312822394229085825544793280892016038665298621754329761177537076652827682843465900419701444123562144209345541734155052923766559672528775501323496269269220510955377551761492469425779967330805634205384245030299495532626722796249857429970703002954420076051026049575781155895576495805326717196298230303209238279073549767544939775572580004910967638970483964234130576963883727842593079788956385554813678751939979778160742219107059337809158930996038488366905463609220247481343559772346691356132189791646955343787441610922909427480939029696235540719304157004996319323886525244590048068471540691838974278467629402505821503748687513815941796854004417275308138399670693293517710801863126560464752016072535147687710335198604962848781453816271123712154090355045996170504958613543987835279293069441592737227859422462254444609665058705273842441856042193096888097029080556670912987245954693618001671040673478223630569983425517941378503918696463795140744898088303766007977736859526813132322856682889467057865536601744136691066774999623611312076662555094081382750164163178657295930171950516649754097372668109405711737360168044662513050983127767850934866697504499831732474034277473988513855882019921233096111559051358700306361998050667593365948367167674657508219467450910650156103263356551931542084022070029894514974041444329175099870687643356712599979021218542470424675620847624558901033311591666434974235197077094438855991413325309614241742548634334103027768381090632910483297036131465777189399245001573012108982651366537554810985184506806682769696656091548783232872115552546025024944142868330247951754869378683853817240684554881807974817010049354224507906446873476830489178551523702535071709262429645595671512135845706985705239886443577208512117880838056959420206574708405535511853062832705788751715735394750921916386154837592707800994293129036048849234099861698991153775614078511105912128971711426754071783555896127218159514843497916039747389940185372805465459674516269193399309890812836471333012159494784330530387538345532968028471919036836760015915882366180980842255585390361424111573881332913106986043606825162778033676185250056196371624186580889479372904206003599155709994362334381447485401412902200752510294742343427368105737589141001555088481173240108078186574832321819436242774611794112269986357819227085618686529137731471019911958451547748768784728181790647524085331386383099628325454111459689492538220600853004262485158670312418152642452923654321715946059612618045476190638073831489333369715565355451151351415183309293126902675141735501620495365804441661954684877694273817132733875454244114319782575861445258784956664976670543108633060982552131231936889606553704885586765070658939505163557836145264496955721556261716114727472477584934801608326449078312266800485966882356888733430680662305629825713368179933710043005769922858303506845486503848129717947783137273322858163236782758259977361902874169051723506710464594838383932744341395940260619626763702730510097444931537949738715778559695110524518486835921062793302803679037456520147350523408518081135052927413924803717921557460518552638242120461342736325432466091209552453754237562552614497650841618260188270642140154870478322353889448006331852687231368591969431197946751877976507624536867142651251244485886561309442883003190479827881805264962600843981721973245791749149639847741008311774685632637396946022220024323194907510469000165340280176720546580252332255656732780389285625397790684610146927017857828870852001551594877479102943943751624133815891118245068480916982068720723558407341155141219587790963379415865803319790464693864700799020891480938248378166567384121302700632060119521787090996631421622459376233958208152574548512552908453326115744381806481191935083843228349121418734452956015831793992866514047677796548725536547913213045095889186386065630707873717381986758432551400833669528930257787854959486036994567766335007028136705839694022477337422082137726165532523639224908408858315111027028503547080941834695240394576749007534705127925404571627459412378319306606806813600509227260961277702452902200380265732784186961901617192738442561630160837667525986906157849380236231726820521033626436885544796711240713049561050696659026523857446656134548725283282059204240870017002587183289495592575733285945629862406965286197946991493611281443978050470575440465226244164657136896316998542876191860907845607917483547107248293050758152713161329370813324656197256083745800367231375683129400876427503205026398022801775037918148251930128527725683681758976705064374647474962391370739230552233248058437794775927591327697728717738893838407735213648463453234313736991162831915314200731423624035179617514902095234171753868015452040820747509840079806934537094311560775419234251314077518830992456921726681496879666889357660409489854973558348501458347893842642065434826795415174653237529402155530043783393075059322467446630000604546882746347218937489404953729106987428059390952875087968863798569934928807037942024983264233252237992146026123154839937462032740832310675776044953929264426362452965819447674280049226343588477853835477673042680285772643775917943356888386365203036631365734789964616433878997273162774163804168112108441293369218387157262488600196323976054052406886214076644211846267769751747403036913148980038146120792118861780376842244698273220103427090337189209189243050142769039685601798361773508205592359844194776513937721166423678154384914112291307490572371390266522114108250241631827310903720476946817724463896671335602439091965759120800858198544693540892750965272138841323096050010635660789860412708268975690872374493025083212564580763563999011490780271773064456138867335424486835248915706927509064274957911220017808339602177414100729341079290564341862555937838626061068606408261553647697672880008646310103110494496486482718488068278977960800487390310996206129002072318385919969718750324307494291203409246121865253505916450836503944962678428974974572902707265615907253446905237464485576863496822682213547218658320080667488802210321750769334891582854381731750535759940328507095357457662481133665080604213702942062714427972472127612963005609475964428181473571149415171172915632262475269631759190873882013142301195355131093519737724759772488942767029208847585773195879298580612093926168213097116851821853579188011563190594061470665038515827426495981179131189142728803302742971920411897759384088817978686720808743879383008041800909015473108628237901362032001023669288737488987395055173947204672175630900632595411530432846715787609690811726804866672903628371180594657155574835284391444271061819230578021318333819069593914767493701097122879554028196617590207090674607893184119801625760256805228675765980390265263957393885191774115257995470135649833372978598966896667149115279154572263959643899617490491644450000605823511260752829710323749228778261971850992642621670706915431963740703487197340351567849200198991221386819021627949280621888486617096903901545463332186572422605719609946332090345502925849545898484197722275794220484703546109119684801707123535280789404571967878974366587126429136118955385091932530096300921418236659295702403487043967769395025138562309771717327823562475997547963163361068354544211716152699881903174091976453083815050344162869808302008078538744573459506378945080347936223946047405048373263132233133792624671620455301208439090217984456769507471648376855213825745208967548622703453720769591004275170545604462295142114535789362758741643864535494332919153076589593821495260618649219324846708945269801267947046894290266000963992319863869646750023715066785775565957344224152448575233674505032634465399649759536596024253133551902620643717953500963396518061505433328176582528658784443245118202861571733875758194297316105471378620723780833426620844147264613552547159527743938452719033271237734872203302574778448013428873887810234376523998687024776300627612304232687726062492404309105735299275155224198019043802432815447265636170103888066161110772202072011551863480732987946388354555595909693075062441465041711860088986053617576284451115142765848624108674530252194392797236227679361499529541343007714799362920206981512564618833563367291774503796329140302060138876449797490614977533228459419550937258923392101490044947463631505244650695890569098659860511896821737185693063066371003760467438039160296172951300606403588130275716191970646356611538845291710796731601984524046382734048164471516014550509522218839569687265560759887014932117088675668755460775664717328108602977256248440772442428112245978478495723636467340965514806536024651948014663793812536891040419468435250478403752897775508057606242298986163972339685640797593433998956810787316509308552241433886593753184875426725854116530013691438020329735640543346586062886358603434915942686631270223553477212364731426347505890418022872747933361597947297646703002725860726776352861489643939420262312319743783060846790310367593706370575762560469289310932863932371896675910948097540636822682149503903725537219654100392134255063532312813274556679248599092182351604541939508496798745330414325673684118235686081019980038281597597734291741324484628565381890594810099572011653087411148077716235142878064325023620953549342715882447539360492376800245908925528060570245061180546771769751333718809259120985000217231977208073972352157759823563589092793892355711092916214628648625827929083196369192066661076865482825028788354493507571490443035833010422866787255169378213761830419712973719962143466021045269201880547159013309015277595396847185119290599914444665291934704933346039964357150212286893102977396218407873363342338902302114624584819726480752095797129204149443027407292338666397106628684669947654771619336578493275027415606749692130917522143461390211602810064833475714779027323899709320551574143001168106158024025219369110356360864874367677467967201292706372204040646200199630898907094244380732327919241114035678147327443092134421684442515231146726041546382290347847645766544354031197920708064010383598134224154958912760168250047424844924405145835626208031679970238706649469155693894880338484369326205628885497440410140603980436595894880790641225812015911578914350084064904510234005559117299863609643919156316047893538166997028965268892377901386226603479415711390715422151461550338039775588200901918462622312791245388933246375117854846155605554050208314304488531038989677685262206800623630729270155412093793128508164773847021970063864277270550085454573350738516230652260972014213657148471271958230437279982634204464760177966970573187717602332001246134422343174911416928431933362681623648063291962372146738511218674669073416208193558688256088718752175767120131085052199743547375853043279937552613532661039254756464623350970473207394413888715189824272484226844083203599395453932638844696330470256387043888485909153708838550412857286364873132603179088881580488431487411735472775313637919840513332580562669076868704266892176129470369339670696407553620092506282873586158158637765850512781016008842633303005550695021787587580423257625229262115366120416127653378327975655321177184440778635359058071988758153449706751672401952382422936869991065254347304993716047077407796864799185226156621330312789690072191463231508011286110126083098561456075151847184759814841141800703742356897775785331318682174754493740403354048674721704010051553544915298564814345302680939187604531024973650427795568383284931147735947376921868139808564506541169908532663207344657207157156150562426099036713365348340548117284082584999065531365475650963978790793275511435844627631504459190783180053568037183513993281097607823080836543926188750779902922806916539025329353692974689324628956174418732284402163753060062434003276331176162924682535049526735466734737061160794682923753668404147744833651897348737314698320227477077431033160445211016382495952727909279754193488155675867249693826987960561507899204721266173530128090200762584980706835931658266622380872990232738283804630842902749821533984341141778227126224719400848634282002734016781881953253893132575476949196313871421850747913116924832524131684474411615575285523708444595698086392805033500564659038071809173627952408803734878834261960755449245816563748840659384203083235771442716732955932747575724674549006385185115628757725895275937220098748771127070340220156523597703203485441299609545357351692913476569691658244533698249876118999780797216554259892195156651689017902845681783501979689793442423261103853274406022481100011440900706355234057368548254907560861546379614171230143727777425613741224476062509704014083451753291130460476644376840500171673370069463586666713761469848464747823740270877594558919004320891850070292217667894497284199813686531533299380565723670595668781727834405367025703349942647103334389828395775977772734922559486443945913599933493197090364059015149444786881042776832006201081149523347535466867291504504741087825504399795335693444984496113528331594185425791734536486185201092900158739503324472758010772471615039996072149278228495812037940483537581510041347022205770283256787318474194585394943923213588218282527732810476792159957619078530824585034948851925858194414804194801244853789320840165929788553584492856590197060561634092388731046673655324574264782719378072789579053412574295757783250187945314135694709633001078243164561182131656081552218619127054510738582313908023400670742400481368110945843664546611597255400079609314472871184653036266505578621302565258291582231070338024879351518657426900986539248860320165049873885694103659339914467701756680584089123442030595587741585915440866525521760294239207859823748339316622846925638295196538313093325709178083112361606024313309925587629702706619245492755515075208113800533092750436825869885449615337257257649632533209975094425237960252617961274616219888268413387005774545146370500589720165493858331709005383713441677915843936907339292725351786737319877007597176626020445594482534207160690953791191762308770855935596911116008650588838856520962085923643215678717123044382474894790583205165837540745503102797135665592191680951452960804724031976803257084230392233003440368680778486277389792864623390541062897562688670667328731860388157996476540130187689438787824706988810825192186849890272599465680518403525783881211866498150922698809609649849864275610989495264490879569342936539614810620165841224290668522577977192438634856798495630982003039503035521643356062354568254798599717607935154482207579187141656255687666215607454086619895738354199156596721884768949380844292039847077455360281194211549635411054859483663610482281811443157661302805658759433570189502336311870180584338510928288901745252292369197577856233530050352685094435981096966833634683016769380013722665215728594278914045685243325854271048431726998785924397104493343152542638960819861428964102763494999061063191009127914918947042826577144571852777239568208225709062311117374582495864271920954902939641549442066188967805855143694517071986305655705574549645808876723097565029091628711804568725991772405074118778532748892112520218495615061330116198404519246346977157421214150726658349151278809316622035859816049214023381693924152467223865767241319632367322011868428734501010929337493592628400484215481165367134071076664497705518780437464333766539698711001085334142612013300637270673306023995180568134554047978974403593051498498889014852691922366050344707415490907675498314954953181964003661215599823833469845788813854625329366189664762708436305630985370482049170900464441482560103682030768489164999127761818739300642757211699792298433216341729198171069628088829537442943238197267079838199788586340791737426062573172057796914676018144635759717889565818209661325857711192121549029076519619498206118027245611055619610181034773187728870394726628173511537957640004008654537552800807124955465947077493057186740594547463263556839408582834125111577037639218732373907029860817700543113442204084608704908212780410400130585496037480839981587485505904763471229987880141650245972776593406723414336527745663973639565637833566454318602741087122300852977390906289912365374479997858515293659829972716576758711745485222588659146076637385671133411766126068921595879901906638196760960214673636438029750974039006100465343187132811689983209079693510086257536576309319004376624959812910009496820287107819448735776700285397856462369557541654326452622731812432190357596352989029683229132538052707258769957167951844317903491556425998607534897010015375713780834975346254600959350453456785075777095836741091197652133423619278654436561520325669657546454572657765890613442386945162988312685638343668801454466443849663503802720255047766852624745833241854704235607271284965556378223757503857304364048327404607730485573023303467691248261556240753861760176135184420475092628149742555078512860819486623354439344832996990347091292110562755487389518060739751022462433440944628121367093158507571341428933565076262265062449117731181108108858086181496437388675266364380069037253192610009982536330566766275070731354281490990223264736957451754146900967341431080852122184359357588233783346337201709947324485345341040628144162514508774747573811465302679395222363619546830885492444444720067454908710548703220382536391999233549085214358295194722961591695821745999012591726823868623455219938452787919922890204100693665669315536325543898559177364112123181047297439926090313475168344355907746525648551560586675076608384948611625870527094334540721257644513427002097812594085215795420899231610630098024551968782515934262904733911918883311981304189613989917135451383460801490472448641039403785216903070872427980678554230059211075906758942780999775059996531827919423195008490221806680216221751998752237641527588170621898116990450953676519248609956188974726426718309452825936598487371968296081601502895309082798204931262768364577986357435991727903660611448121061310681815342258466810066374462000920493696601557192274978203806287228331599230970992116615107734859170705563894532372388381062181436336448007835529236004052508361561627333569598979930448822309637185842297710369349451841686499226749460711198697251179547529624902887746738845956701459063646152567263821648226504369374382295986300744631147614126573741225345852395977334674370344550824757272993633290808702539449907014250360670159958280304501914336903136125772495181700339700150049533736244828951021119033076435096987749605330906876752120360665800578318403841491936746870619085647749975282532841681420522017129103416044791132585886230893831099403994105099296627206469949024818441087129611217374622542288545129347472644502080584549904568099130112396187998246156500405213618958164043024536566421394418711270146213342489214888932594464547205610161083835244512797858787144671670687295726994032141819730765315708760537439459825225320020307026676441488351712298223361331796140546785484211163079090264545543960932096245829922989933229853841707162298883849345753619860873126591899216780770746612432383279974651729210350674162738057927551724967335075046335541077320936564218929826269610839935387981646827208642811804103822684484763807573586961190641330348461582760282154625876482304033913998267736043570919973980194093072167869392796593184068890669977070397921420027523258272653541445838828021374301394996320367811334125380794203952840437597385821449045629586412864067061385406230887866537049930248159192649003114485881502177910586430432649468696180762003805917541600622142301371738167610730956741727139930425110309981493029296634867498765698178987849939697650014817191342577304289600390201466256643929165265880277815084507509036061291802388372856010415724292408131446786154005412939858442937282190203282884667726932732511327484822547190570699282395674961273853893599824695016103235349576582853732439466463466123164209850736611881779862045257193495214218013225159978863394685674710523704143213540333465504586607733500590532216159065370452011022773214528687027760147993148941903621317106000114023239640723495895341984504283548731698891111030347997519759551670171642698858082352447348337904011511701005556126415495670691120164106294041301605808278729095846289787900733171792527553534215967570632086142017912197713134832694764795974307769892428350781463065612327115820683870316315883952908535963661866057508740757589923944118696587478450206581635391783674516089430314683369551601953034642152810132264086443524126086378840077656228973355243125894563084981716286841651785626064718144734157821430816983780499571600350557654934833441215286185923941341060209641871280313548239761334848926135357420288865858371342832738338589850977310023100829965196736742955852269960292749019538912538865767851243792301969723649950410801500803182987367936742775886450952278924796291049696736096431747899574824510716968091274523685633669270607887287456264539699640087280675326535150535611961648504780054397202241302047882032209509940944659330795604214953391816308775910117146034285305208872458467834606140033170258499351849415638009757601811903423886089673964744073814408543060535655626243504086957719577060451970965435895149263062536692259448945717115040162445129632545022102638316994059683316006687699859311917223928402425264859864727606628045749365644054618534226512461703163333826275120035568296675562902559196730172890827346337068116579882394219310346908462347116510634683591591775885035464806770585846470696590023963532732796670541296896094115734887858372609569118493309671365498803227184205317810067712834232812037554898627696465476115042021665280862295139358687897646227188748798598060570853884027053325384338081134098418839496750383072470370056984088879118396265901566476794671331655351664571223278356941561671026940580783892076041342252914509932769699640313384407980430658796490509681690535383321250304783602942979422202281520097818563473283050212897866702012038525222793433004140514631656427469752304086882710557970030367183184154782126704682351803425858375701225534277506000530535741753228606259152876494694178922529802064869771065171111717253779644594687767910002751933934131939637706896825832767144222798516051172659636608603478011897684328512606360245019873993012646569366480314014906538901763454264623810748598923692248027917625576306562587465942335526461712732913711705477167340719717451861884767088808817472490888336407765462712136755937457201736317879146201044465016177819019004643728041446571346642448889525349440605870867144575410816865519859480307392314109870352502160330553348184254844458585192200034165724686978840117942711316173787774471378719880874603814098744958040782275248119946095484120483566833714720086420536111743117296154677880126185341439366058046309862385126451003555320147980543680807897230397460024555970339793623576334867409748526796426954068902405049596714044186538471912292028394919509735173257061354199078841112416901458448869654458872712993156290596756004488477598623057824518474042478950139479120508091974466081429037926529449775507927364193935466594503599639721802299726237579529927225725044366568633386082002356087546608799076867719836939997991441147840575183092871695031609137801389598558687813860279176284904709479068461874971893605203135271334610207154821715521621417853567538015669188138438329935077425958190487416884296868590776151486193574184178407053856719181812878772141575362959312218135810225283102335036148043489077348084577243480943699706474213574558541081624688944839063967425356288670692522445828890714497495984916551037714027521420107499406226185896106796011190848855301528002328485159355869798483364878944744958863680913212755578736219254294118654373065835740773424270334051427570024724560410886563963827973351063055519480687808252248444499145657735202730581747627450893778630914986299362784796529061050002907335718294210725360390883397975141552218915738600659258101651540769916493071980154671439545683101864177569457759905516824474139593046939410983561542776621631902517045215194846642803702776794295848954723179675385477917666471795011917755086750758246618484939545724872066034625131820210926747147754624971082495300231551068940697540987190429246196495789933189023223961592622430584425618505955569185523783702593463649484735485388912490823728235435701743318212813861854743432017389917990285920055434733629854702654968958147039365236131003147220813694374737620050880665028957908356388867708256360486742824830050887733954712856855898858344698618179373602728855170589763358256467930463396503046399944051537530061436171998277244947801380025984650004759156134466491758158214386122910403428562154565310715665509857141444088952977284817145762459352681344487312184237795892218165898750951906441874804699518357122621691779552429793754587236055082255189398677567558573973308695033115874122650622709400995201915659468173876003779490981808243246400737324970110839096225886093260032477537066437881586209530192999023457591489066017463898333168474047180414136780431832648543817961250096463816150396052229506653150011558169484327305953400373881885102935637603921740409509179139458385481757508682098975000901636345381815875380832782952604985421777967350621245082444441889471829640771143561332300498551814061333327488381517100517827416238740519708389126618848148375994143259093266783205098196969935404246729040803553667375397844759707457362123870313313203209775558630939058862023030606812908816887483023339634086356788103898666570987612737001807442652111497234460106528917238886223878145851123657822461917283657250435739404907566976496227870282062593258692135209294617729291064033067173094550421285697260427321713465975244250872960333445432616130142730446988521030035912418928616784416473017562797668976390866485284005805017746962061513254931091745020688763291546635656249429540502134660669823767550307720481788617521244718868898269477577270702507290023147543932243236053902126898800108867216367660048143205262177259264362579828652489025282747968738744364506572630151832146085131731328749483031710856035861045761923224071448926992371347926237111218796078235281048767922292945742823926319531699086119707483339076581505341037489803744035267670181261005795910324803020594372899271754632153107103090235617415132202949289135183068325605679563698117090374151574343130875845165898948779420500826280845031579765570907579579762907654918324029276278325738316093653462761182685604420708138652707431945479763065816093087975228920434254424157208304188672556117546802534012812098992324796452831404429433620115571465987588552161352038922202948849498309113108494279883978308610583720010843239758449686569768953965414366212327149395812094913239643643881354885085907694314061000016473995507449328625794378676372829534447417309984575783763716255094304700960141451119746994531912689252247021151662085514538935692756162080359445263051521880071669466120339336293106159412060479445606630879135947028861752912836332315073457718854374235424018022748807191923801980646047802628851335777392287470306171875397912408721181885564680818140030899423510964504632850887058869100988899003147652069697165491513093754012698899089662450877358324638065104151084991714757616029701958778213774715278251465504075222193750016371981510885083254634915949968390138015751226847511755565465737915488166845342040253086270993057719922126566193724360806609401825280101716983880000650343410828103768723797321438851822883778121534859828197065802318757513197853902617177726575844695455062974675891507392458380124927095036900866633865438352584622851561829866450855653130472058943328371894655124703593858644021806929325591065614770782334276839669894958149995001905327475310624155404410728558929505051842561031850905468060686145785744697642908283180745004584966046078071553008317524698107367098581505241765175536965369288403093543809918757586540571610469238254633840987106925210940917047714457389785502308716485991395668927816079806012567148344056291208733662171773336909576853210408743533266486604926649664645064939694946682741193197526486002455392274590175353431228772530540354565529266724666974206999459905824207216179050832297193530380257789215790322425978848943065613181070082018994135065901608495315985821241758898567762402710269345690237471866552816170854442632098692224017529350172708374058058588544432427664237194045537877485334022213122189552758010013604245373743227164260962796221206421735320916679757752199935018612050880296853370818688439977137835030639284456943702442557962597862916448994792141556958257366173262423201146040521480402895346391927407487819826115964077014906735673040396625640800957323310549795068369028196629718201990627863682928784437641830355719257344928690675955301128918727027581143086512411524318482201068733649993979396945069019961784236605743366760730866008471450646554502609491718808393571877874560883463994479887197424199210529662700104963687372597751245637960784981789487210094456285628942551863747530147507707335103056417032666014856379919472532669981438761850543809288055580789863478673272144831374465554773057309028533175867910546176139053167358129911598413144476888812944523150733194253971619774996412386550243964709226128291180254183197408369689808623597550687202114698189924059189431909743733776539928537397180109004999426086772904053802362077078114825788026510880494356771185037438108656858701635788906316544028102706405753907621578062479451581997968251213438739343974286076069392114360904886173896150233374516773407903943977743819579058198327222906452032876262768842827013009688038728818687136718800890548675635781685589182901914753812883494220255620662542071438824662602937854775809641145729598341933691512601266916578481939360513259460748447255972408505705553773574563921247135413287047399108040999392082985034701466205916821855683457504435132012727067906541199611733553006512915275650199162702990098573366598697252831186080806448492790719775489675901940451316488817737054547858028224946271843400843071810697581364132605481623144893568119531682155112976124479844640315686152491220244545467704291193659110338132492600530091102946508512283008563936820407621066775064647206337002029192039029367803386079423029280724039491440536861152518216165272535310145163496027385629169899272358647750885264860943757973540582893888032338606086213270420458949579176017361743321308534574178425684503470204911597769235715026348732783817929258057834544660895160627557822002548884414948839631064417496118474828092202887905269445069612393947776601948150350362267844194614792551801002972294599570887441928395508929156904163916788185962740320251973112855346640730329670393015963520813000767219576091801445182887523171657743840398889244849698462703262628601346964287753953276197078234995373261415038187910425540052002450872926179944938407575357643279438979676677764424383595672120626451108552317137051939409259830898118303195702122484873182081670990116362597348436453413477126430737184726295254674650516245931310337924313910764319517642354946729393037368301649749400755505415966603659603056898815620010457445612082094229779775107785179157879123898357023705114947249705992830792154796836177256891173625602560474409777683821801513549639226787032374266446147195660909493689035955723273195107617419294410767537889647328448912834264217931652347782325108787455378642405146984597062565113732518023242934300033335345089118466480789761562910660952412610819587280800280190043391153353236102795430418152595316368286719669383020320244325103130493096412919311358795382388827954327049669099852906442688177040658035502038662824188204325106328522201345649854885687280760491205787546362479474166083168327866525268590272590752440476552260073457779348813690330621661237242493668625482922378785155582051640068560044548427616400149154741298096864223703566858890958617849815598512676672456295176866915403226959189730625194005076956929908831937356609268915505746730275047176850292914340761833474438718776832312449667068509701250781428889405393570478424538370026213783450074967602257018485730518784716648050678421069354995795678221706998016250125481197378310922187350827036253956226918642773944097535850475454581649504664498822293870085556249006206529352803352339204523571782839146833558182370843735431300770462255097859982933916236075456572405102272421578784417591215818984952660950067812065661579820806633594962505748159960757908895509153792448293995497472937347663462265841812702741098141785104209327579709015645424892338414564475517776574489232545653351863979775633231667691669267664542041976533819497714332185120279012254153553947546707007035355812959446777816632283110223393088054245061758466858341324125264857121969762132806397202075326040473171331697487741142233168668597246414109940288268579568522921116597924281851410512243668111089755560701629202714967997229248321428588746781092870715269996069722768700011433279125963268402986154562913174195398607450867880233562551129021088369477048095848867854924032584824146624934249280328751572094643285193492570312569212106284499581330628839561856382539215018124049632959344607405547407829758805496721180111832343567135725387593604362419491859249310938059997805367376719560545496083060043627100059051458164883115439658525964093327606657724169973839236794186412867221317272336919094710651281483578585449182070205163974008833814841502069937162892239422572908702448849180651521688159610418631797507328005210363533831867708033782533503958942389531221958799781685050886058648337201005446085086922847915207738036646026414719622670477369740088201244470114813089532190392061883948038780485959719350964518360930877036560081897493170634684593428525547992491602631051314713168914612946684022627952235347097519512718051126668862465561714151463159748840720647964334190971557407296700390274346865330636886228046209703686799693590441842754066343493403683784186598918917912824156781480452018800404442780158164885756841167407141850712952426072142828915454460413824281723666090890097310008286359799971926810841352210343227681140213552825124568991961604449140641289560097914212647848697199154459001330968765260672757745282219904639548670407079568550921959024163760711020870167349512020091668537686608387070674804273280942749632181936186959821133924787754236562106445193316630145205387318523723738706424423829320169150021280128428190026191798391667384281617933070525805075595800671862954105266645764357935370930387198915118971500283497845597048611748706057231540350955612105565134076712188269326437357417332338526785758884208663491762298687837671615759037409462751221160468931432104766918861332631021937839563166339298118651791463961525003696001776785793581283245876221004124949439021274682278671908568798799468132410600163914748125107332819648948180350265799201678203362188095581533632274436784294247271414058637539813778751379819131595017887214968089895640657206269593007053239234348256848247627517223461210841540063930028793541787032842042459277949140157305366002339190116073479435603974209645224918491910547309561448578523612490919290585767205338709392177028378415294720664771572754601250938423161151055361740478372775046200716750634848805551583740070972241948801500141045591500308568525293425779582336361489624600588411265586425255473405631585749797117319482160970790044818770516960930402895325696968995865606022810000534916031096940110397110102444620697523821030819410776424313076664245836758908163988908763142828859395125170350331191959191866994555377596947398303367020253554071101900664829808284620457456091208186051344597599688401266423742546510458963408931665794344554768718370479107051612049949647611197466828002824016570314187590769543717425816648824037657101482902720113964250648887544957221358506328726272809780021193890887134223539838646190052387332933943277221783531071427622156244398359452867979598376452635263031880686301249475012555931673043838337502621811034291920632765390810308089239862631374562589641270023783457181916458026976743786485534125555268080878557571431004145053666580938581142522760169490915596578040683381392706160867368876989031341729562218547228701177648199267067948842844737710784756341157326337146345739101704748321621963472321655053027065107316625807987673884238843278518267735530483067533300311800160877440046748909994300703823598099300653795648423020468896748581059831444615160193736389216067304892296858498949364141402495251810457731023377580127984228317878078210824753257379558758423728751244966884432085883170343996797194360679446616556381056985555938308675557377868871726909793892297989277306177369757325294161722016926836435559591988759306141916375103858392466833529816378977547496744403208702315591872623274160552581580329339801774434906644513323248092794923852178604964012563112262380753334915395396577034800296874625435315853277930465860171801692614254875715990758742830333589737894097632224390612965416501493488995443263391132263700241417948379301677415422042219422141076227875985234305723755172746450438120368879803148398387569725231496166915397080617461806039859060534995745552297827615086144815327019523272955371191444483587041599694894038314685802201263680257635830749731634600376849556204490488832308667217772818953040568051064499867409138132227533738840821227916160639060665429098011667022724345210928544927030054503406829434071096518608774616140501575270337623997845955915637593112343498618801814665317281434700144128005056573987343026788374882705150714465867901381646972281734097198710653612429554262423220576564733808127440336663153629781358304744014476224242088206467433523855306566119369398739384050817826584105744562641110097519756417721710204600736242641948104161368858177480271317362371991415947390117477369697008218299677245434389273097399771970108731168447921258060087375337608237632939920044693401117291512696157886378540169088012109939398992652870739981586438032591971421952980561639873022203133449820268696975065072602411980957134787549138174132733472492690913723075807598082983484344088330923909416386085537062501358986813047532561341012349917178880320246036071127745157621703815191680598152171223124840757078556170952994696701273863509521309427067892109221411128451848779978766708371138095193019543282745633171954117878799072209865712158223202776855671780800815321622900857444181207408552771156008086301047853363066772795010018719212114123238124534944596797815134208928914761652719137677826592784483663626855168221004937114308874050917595316478956746099655059691430061741476475027234396473626093965954143395133267593886633061221488736433627280278886841939955366763964353263580000170985812492277742100456765878285653098284824017405221560282844640935923634527734824343760081172213226209134932653666409092795137124379357296584249916723161776804553826263819807931253607853081692962891893109881978734892760157408702029904994549518324075163056287051573355204119330136727862680377937955078200792933940043694434944694595026013326008032450179979877419141023931512608377685717875534387749535415881069233706155367168773298299439460126841247491282150808399962897122116603455873296955534592879372668945075901202555742120058848710949382969210236270490626381401385016798123167425961894937780149819797166685281596813297480010038489855012826941398392898381113501466313285011173395161315157225647905190241922758681196167715220683610948812579191113643755755906559477899348123408583097329820932918101150770014270546181898356759724907547429000162661601781079081289542409156494657354828977442180732566525957262111481812726190805966129860564096032262037036879731280826236547412491133943628840962614449055463238201300824960272837068018441304888098812604323958665472008815311263814686663404879086214670049600238402235121892096488696813316762769258475103274785091236450577392256632972395422661069575454691960546458230590281889823210658353333985110980883523003270849575446235740753318751733769318797056351150622654313368497669127822262687706001293169474021209374241946458326847018721842510104233108577891846937958193823385159044486534231280775865787772096463434042264144054841503257571885378832796172492488725226865097639945475988178747697365210961030248455363752342526918643806753021147787150112173867571128407008578319435009443126688521981283614978496316428617106584914945312296072236478160066931506251634144406004808481000812644675815197010945465687139992316814234734585778317138749766237436119463905150333229876847751143864762787562347721584398994221832804974246130766704235033384453249598983291045103191481730495754564970510625571629270121306472303741900573311923558551520755853020881250516900687388072633106532191813799446805415427237845604730447573215889648661757721965353960588479596144446951472955161624812157344440572887109308146882612741601706960469349752843212499328976650216228589578245768787802557052235622493450376191359338461126514556853353218922573429630831684929560140363502953882483646316612340259900947376840392918079350156097326633125883524712693086687646149377581516173419807091206165815249756964299104633543398691630714457647154248072053559250646292126953150560671087593471483221890516955251194372047806186546354974670859660673511715967180102090294091395620163911114099024680573912041129595524198064994829128838980919536302376963141010584976666475851143907973543842333784251363875048035114589021706727311254333369241453282431035510953704599205375659193771147219626091424979007211331020020067249381391447588392448530137478955112264235973018088323718313732089540756684005146114571683383063258971891776195428219467578969616580164575318650643601939401535663561137348918561692216371857231894883226936214237836824037109456112143652400801800402365600944944890236155151761994546797089226209187377074282137995084239188892165761573216611409234328862118194819683974418048257098932433799827589140741547525287648456910853349658466599640259355390035528316477491931981606611626099659190266623104053624771146152664331227172509907083447063994040303050438019223734936736213642258240618542985409704880189225215297987280101478391753751596845336611820953059761134781276660682253650783537982562849964327458526456374799930170987466691712021530949183893386358795560885606165956177305294295117198045234918748835298351000773008256975887390782245991033733570812525205972560925051052543862692693181602980000058942596270726480217200427625516954371494236083100069231279049533351473534429485773547872492090883028066886724862232917331191692176995745756412591913512110667370833286552499397700906295269447475943903178302253651957837941431777956682797541778432889795756949861915312369474009953479307167490923890019383750259496623188550553142430228809936113750268626665560606884199282610150547728270450532506313940832892910610779706180178531159724386881415934133570233242207601757350654490425500265125904250114821920254959935559324334701059209995190026571354537082046453269503974734230458615138149165634233768653841895761221423197220388367453525745621576083275528264626589663824768615486282565730254002420172954511304188710733574088711547902213363142775542332799194925877380375213961191040333252552921925332593506288980975122819401609993555259238498369344336991847066407548190694804309343305457460857250146328797665158308066192660492803450800511215378805280351682786600954792879856184296430293879385013755962126797502366409125668634456987796373183352439846454129867829843364360689563142749140330846321525837697093985879605261710739539500326185719928480961892246527711638999060344696744112505923591983939160802212804869844448586255108260435123117884639897910051468259798061247702009919801367438002567632442457867041513325905509904334330832731334855476596376250327737842292094585475440053018048916357612473138420901521663678209714797374795809206926082515082039238601165986531360565181834382832877752520589387175616048309791641131052729237134777088830432695498789843687048283219748733045957561040160095336334930290326356189679869116800217957571489356438952158217554777313765468098498172840101466152644222505163364068797786310709494022228664491701498049027643247800673844385175789109853636902997037866053546870003258464500716071932270435049693227542986386714972541110375672309529338428528903579233604335558653832507118144783158671759467482275198871072558264581554150101608950264828362557989950366578605249812739450452293115807166418800607699685476718088834771214713449007639989553084081495016527965556766490936191543428729766695519803862393361206659951955476484021970411555878950849097942413840343706111057502483605013808092119855764264888721471281212201865657427832519598142476384677237284175727549564174229701771422713751377579167975767754206718089233783856377849880907901089225611699355222401301011434953705094892497653095556396821682931836816352803792308418491969028970867788122322273993103772243576769230628568377027961090925712391232898213351332275857896334792566700775862498563646836139042064893173001311967162903354656527727900890528493557846696741798283634863960994309993161178320000525923592786416814191824169640604690349699516030459212384922707312906241765020903347943802338726795771924642337796621156607335434797465878295356486153522963299143898791111387241225364494635104414530043806011447530222541177603831162292385982881337581888909084072988206277547329644421386926219746218967474649207987922445220496747234065600815248803085067701758481254470657620764694876908723772937499833208345931334654482092251103896619940536987626787656961233500126381763871875098537813059125666610128493802049450148411402391508819802275944072759203747241636457666933513587145957629705037214359334158325663447474987649947660006492052628964179959329910359712283084408965595692459792198059579906320884260697141271073996919098529664870760387621119264335550141123219878432498005340477480637242589867960131139052876684771213086283771594975233571478609702098451472660540162820303515177001312304552719677284790445020640966374611844705926925441896328705705167622093393563683287657400980856612430220719060518618807785787171591770613836496535961677711506498668427933715259495880594278442028904546767806913079810283331566167473476423093694195503466394621188188708149874176481222733310502682309031100325213565703525739825953951669239810414006119879562948532731010293101372922777367129043184002559370739703382520213728575084844162862197759556950670560092580951093581067035194693221222150533359192953913980669337385699677130889411101337198498947807582608764679800872354223301051269865949834714375020570256066797426161464407062823042809071097100373532213951108197632284021601924512580215468072179586894696287271810508330224763637677876727943779828930567594964378497617758755908673113498027767534128325968920238603884617501628777005100159910209023505686836854777401822686338627315908767128555016261819530216397284856127321202676888231779752406612742898846741351271952041169684751690984859199544722386070952196950553601592006332002475039723293060696918703224135209673461501404810673804104906246345908221604844148444411671717382408160104968000561644658987894999486453326940099918671713574289322666534470669927381327749116607663196092310778568568756658035833497346845846848154088047379758645403256968161818220981163549036546654210281812768841112117775874505259655676215979184241362950126536175999869728921104490271384492455523383778183076869183770063408096486470809577146496315683966079404513786985623014771346054214110670159724552743816394958478563698034256018244828783645476118982902662203933896974045722176254216905457195627237067877603469198690396201147899799609699071485768731355838164686861553573407154504532479010004436393489973885830429510900394109787136379079419754737347946632330812329717516120768359895375004127002809532521774131092576251263875130039780665965386325484044901727523159832320064178256010432024866219045209970043030450748351209681206052573994398628109164651606861153850870148419418327913928084973840738577008298840433308441741639800063517037120367032865455784866021500743228636636294245842631436761786623908720264642828016081222813418869339682943372691490173722361369369809204231854586892453189811222158366742527313518752153001181039837953818056032181529031494536443132390140982420740650061372675241935829836733425163188165811610952165361981850317989507907249450743899288847175477321545779889272755942478618028117405150226582834103043756336840247057690991264207014980855495218487821953769980436749992017261192193215989756913346307637452198755214826724065914632276758916621901276032858124013884449978759925104045658515275532237052162556090952010610523494338344202398913736845152572560572811819613528612524806140321655180609756003908444075273470441070913616595650608424026357580634664518948241234272287015697972939392359047885295801468284599838994628227623388277298425957855906825536089033965213221381904468773629502875850763547629578679473208361881016690556531462802856688251508560571448336342644040304568784413210761510941341528634836879263949198363482217410580038397655678129814660516273918797921645351334240022180136836029213818225771421649023164936307523984347433187054563117643051094525941079834754847905705173772138102023203477168422045757066495211308965016117495356863111560331910911138211293966233252382547001323834671451520186251878918450157826366841453913082044071453255591628985269516581665192065193661321356800404784210811042117263820599977662997850512432212826892204525794725008524949494640997227858042975185645866687752686207250706792916675788198017267930380978003052279623370146298626395147461482181936842439217361360668396952913429028638703041915701845106920196583123841266592557623887991748716689183712899562499002478321651106920963811213029155492769829733652551788278605170306587110844743865311675160274855649232130842597650964459501273229111814997919684730593601515691311338987994397855123490691526323329328855060044097047181582167231899027987133324138351031446472151956324503325762393013295652039481346458416035042844839920126130055076836844113425789888576691263127435912278158836837621228264848297819071880088360623056923457082726060494950563581853528654012717752955999544408039097441066293914317780615835458982850709340576993705132619529134863006715432024352533646719326095280080471529264015656324022036612917220468345659310207751691338403463983212053488875534781345065355181170112167567885316832395045993425948162438968808365941592791416147344387401658070328867112023080902259724239459105578633389282429511606594505218478231084139324175479187178595265063312271108757017849264668061717841426676337184716391540861485347865940765999738987837179064325180490103073296549186198711146350538744588591539326819987572314556068774431452519171438669508677726170147656515480122620917775128501258303297947463801804041000711267303796291936832672528207157276180657363163328915274228402672764841767469637838575295226559983092848266602684020066830444415898002744617678732910134110496473240042454046942279557935163366064503982711844927463489074609373760100025590487096887498680231545016296553615182786601817484283854978840527219801808207387666937851605076227042153739837010738525194382909170818743956552945523776093912404506101434978241441977254199619423264527245896008942080171197371353551206401297265526818843263000569161553442980039954449890139950751445226716600301847051835396566468471302640118115419658206466872131332212837252818613729052796331428059003094601908677178388509116658681644788298950145625271694817561853008097050001836277079136667069873168943235932377799761923586801178685870559056822806157098600994887606476242735939087546139867583700462630479961747251188348106291756754402706244582799901045631648984029586990685280019882965540049373397635867719906697752202772766536368990482097568815202062356964718015441512084276033753195133189934465621696383573916561088564665149486143484049503919112836513990103202165880152742904960607525636660515408064205750213004985388601182387264321006044167712820543980691617923759088021793646165714604487007469646146282447973219113609772882931825524706425924676906802475039908817532229099488634615152301885049067788482746191296383058981487427712733987729276925771402369659887405781298821669751744798316492626734801327513060260692300102366220834493051492918619444206979850286429774780118071602613410108339138264465791021139825319420261384235655308182845832250508292588961038633373386215874420511513182008841153861787749133025285118904667450789453415994210748670477821210375779169813389152710294604881107397793419117187121337030402897074016248033635482727784273700167646129854927322686469599667209660592498993860925870639836951698972776901510777310062375613065947872899801768182354389599450605123060932744727441569837870934536092142827850476790290793684715445492518787263414184105742395874822531680829669734328705414401573214037499093772498910309564095241341859530490919512714935013902649634302354318104309220261680006569145017450663556602206838340150581906313359032793827437009708776793689500482464907729945480521336809142274137442039607963328291471560555564949183828998156039118180795763814512592937896062102527954595112464494209164381563265443585613778819780726936866783724479702215934078084586003584501329072106531043701629837547699172929841547136722820031165139756813627166140112324995635346922296563088103022176057987424433288832188925880734495727845314162047183368150782702209801288971343705649650313488161296959442106325972448919411322367286520305116526917970388735774769296095947241365254992689548169389580204392197599055669057089177371148387336934318274017314178627038508513098112245704488143831897286099288292266513399458561128958843573263377551092999465998455033876611220852765095891266924694130778714721967464502221238692236669903520547832514475493115378600075221096330533730742018928069398963759750267529047351188140860667179573106051491677370624245303340058082817118263956041796403699641096668012087726694697554945594744986752050866732389497145943053240317574852154046617419561501149371466577775100596475222740181561016979104799877889208812920009062714032705145334440810922559822462785346010999508598975773230012121822455555107920784490953939752172566690589343900706724990439533204351203254417799971450987541164406398621072717977105821766247984368510444332398107685171236500810961177341459457442524512234665758860486748301243978523647749892649421459030325361983068877917776700022347406619451693657353283161488266448362196955936357383974463002969641394186692303489671088713579615289284926235818680047757236738496675068007773733197207640916845663766265981946461585441947341694602076836079774273689315789665011120141781298224270517940905346497682476054992924751603998281938470077070656435531916364688362947470893033827893165588530847650923091486231180612084139298085582016421669503214048716708917246866875216755804210992498203195163020345163569148842993121595113929648604909740360445733513093670930849240053546358643717402706168094317017999916042662466887187919686473466625934179835448890151214217119968966997640755120942622311666197810807838087151677043546203645292509690644197633870780808140403133041881720369263798076162820576562123100864068922068934873374718795018672860708573952152914551427314828940686402911736346971401611986767702890561793966911770163062232353384152056359148451765091753631915892868067275778148673490919978651928387150932586121156473980611828005244455009129405294762041856397381737012204141205798242624308247584000182727918584757441147316122982864028785447405344993016249130557912121555303401276605174462158704144228764195580254122765560818101465417606108517020248711050879405389924734549015846083428480563307641707223914194610279689395655089084256032570471572148664999583328430277257530141091127391642861429123937959170362420192555617080071003324963141739843130062871500578042880793441239012026096278914658162191752266655988254343443759248307994138334429723971108168426661799629237204978309988172252339814763060082567708448831490989086833291691487985733805026924882811707562092096729160794407405777397925888307556182653725663761221668813601519529136976434687211320597831817876466826255695123988001769396841329220679812256709381988002384800555792725137711807785257346531576648704043713963804014436268013540384689013490503153464068135757744406957056197762338923631925966820838394143373905945189173133833869127363945672026894812775427798645946508486650107960611411125250030811763833327676025387314804191686526480053140747706707247063762523613532183766266293933303191683637772323234044325266424098170963950141306849090546188020157537239241402819316514105664165584876352156498840706077484982989740688060631083121169701408888209957405536204319812454937804373397436750588374831253191307392085266434343821009692974348506537605002842944832180235051335561415652574458928214103167405866928128333871904285661379845767549549264047656648182880087475469226392468515371269003913057188265433836409144594950486940646991623312213305128920491173650112210565878211608885713412501499614611765058979321278539525720889647978431318026132427582932814280496554095918651185054298409923284212474678090766178666912933181069624386524659716536017692996447692807420160916820125551655247617811583485176677160435323851268730923553836707120238926611317937275094371455337457220289274826836642172472161925599914243829124065867700884172664647461272253460334341093918834691703840832503707960908093696163339629533661904576361327741061883925909772712059313599561098854220998302133414822332210874972803020975843490982035439162394404634252979309934061978950202190122272838379760752303936368868850708680231301013827331784708444550248288400111892697561371568567854022406485155918491237101003987298508002503863780323340316585277147186557155679456681666075565927555052295368519393314197361472168192288815761061852173930229331754392094712145867711568364837923635322929184784331509406898007084171423563378601629161851999009728420707338198248464605266204938939129936372626903220154286463783340456925861031079936560402465646712329474458468307894422422096226134409201845602419440953551403613291472412284747242535853644263394245870860832415202581716902171055036166986326533502909279952047051148381858607160696671438143204070708953271544306091587382326262091929517074290891072949227098970805521142679471733034062934195446336244044916986871087050238273498768033373778548205597104163889903611430697141048836143573592017343905079791616318394078812343142555424687001013016897060756559531364025893416395579287584815901830001918783258015250432894921442254713486090192362412442102202811313110295133071427034415497670767640728680980540473577085194879034318834089202504845436968588684441614652888761719611497601026554910258159546382296301891845567646822150219299501416416142745469120046564414068089487000276537689305362059063625165517490446666284527869133612640745259651633559371349728215219574687723259553730604012482874414245510700705527387403307583528351889047082522183658162188159392115375305484990885872070679187811222995319946442818175890805313619304007161260029898828379856985227900003388638064832305987637976880611637940467713580692211951634126137412915971835740924406158283791140434073263153584439494479570784259158278238593415334711253791135149972755533882238509410738120582075943021135005879121719138196172190148223897352744311537749858123520482806331679797284204832839083756804161792601563847591198320818136279531160868889132859708052610900267235866731818351911712063962722929092832673439586390572118772561427064954514007508992933677945869702963387645138283965774821831565065709007080346922552172060644794995065521903611926881719499898964393172980766772561281678421206414622825942934144794217484570792190880296021771698049362839160380718437838945994521356166950398537644772008889710795393852341076000781769411043975534807386525395684801672569035652457921476491977921703334233259548497000353024741682822940086223617851530068085916991384683442476872839282263105325414422516932101967374708942839053978441001424384170436599890147955565685682237136993049310906833620303853952129916697318940344022375962466696937549321005034342572115988550964767866954122090840662067980389035166463650910730756655336883527256065000354755322040872028364472790569149185252541726597274968801751501388178564896525094005345658334655810791326961829395094188476357015495636193359168372976169792623130143493232789871039385809230710372754997070241644718863704070342498159403285185367400333574599366196381685574307540983736042770698962161923484782911544363622265621916768302581610562511251498916815108925160940308523451346867210456301042530190697581721841352314649302889298835550091042363110009768579785894213871927566988582963323765054609534701373482347564821667399005616469306159559046810729577505236074184248939962706209792718999402028431318379514858116563988411788200378904728177612926596584474222027882938652082299209332390502180320360311535714089169907939408774103434214245372957426779316586474632934024899805096451510499694700297756617764540448336676467078853607167608655264098726657623856950842352542231592981057940681772553988005529470480035580177224151742968781737288878075874503181279144835169699528722764194847559433690928208298621253877214516778889460252434576116653020139915135085636845777074328321408791896383574252791392132182763305107769726535437470005356767119406397353130773842677137751154335987068388550226823553438154291354803285464536718278120232270354975569649110911859960886402559487467604542696928981138752329521955682870005021428809229358188162361417197559304612924530318031457726509866778781240217663453671821492355299236221139156334444592825193859550002823897038791520072673569333661957115405752149874782384596027721838525740533431081883629419666616168547728830113079595503334277300150739674137414100172077944674245318272135991711065742802652649516470251213067318660566086920323772667480453636180837387261420480245577628184312662233783612419231265730929650161749806484021288839627377477232243298537299634649374434140420999692058226427927874260942637054218066529896038047793687567461327475786637006674929497205212638613149175144907405914150791396648116235893300554508123143680220715769699895834656587319514630416443184359002797024889732159540716361265691781413350678619137232455489699213224818908176659752449970761787329980284528914369946595205141855174215040544573032575009257286029623057511822410324731967535146265990713160409098152782461256073411898519788853137099469956270875301739614261712053467420928233840121553748674555289961867184314868847255982737571776740333825501089110299085216998707635111120109494877426546390693968589062034601899088772657480157932358369813622286035441164436759537283393424027046495322792094845570490905563703383452702982780295969159557455126014766641646983113731497209686501549085255237138639409612924661607122528377764905934739211390402779475761635620019105015297477394811846870858898727981434052039996238967209249770701978062226312187934956293326624955794479208061032050842360656806281202368840309082526736408620321215220016700340353008078713640299082037594476544016562425977432759282847369639702014262495422666783203935562701057414891615824290841234165896280894473686009394494225099503896982486506336665015980831504808250209746394651214189693151977337786861797080954250589061910373836333993797702800173945748166968780939772182685637376570480661801329929995367840789665500622889328180042626726714556005857834118562417561527724132934959812926888487064301595162485553840314821035455050072060938404238199804328952436061966661655072545595651903979471476217839200281618242612870830343087768388458165386533472127422919282074541738563454003942004393632936559278740549524209227931222461422109619869998190652595768299258274439342988021018526970767275059663663974765067161171450833891077015161191268529392708436979962990804546978816462284864002401132329508986484213772784794852915872034115919217797496503375678394168753168471581432889656264126645311554016557535727787142702572631064571774242797920373938608455687641234086459133626909765616449416398188368313756698954626914200014804445405593234822968415173276595005031350662139768468321599463233829063595504766842292055986188652300466589040030522575423641447991990997364318345308041867869434503940588990202931097671679088913058992409490069094629317882681423882181677940038061282160315357984567779031763239090350782294301258394185232766203390280317037756905467261554821149608902529844062279937053564217539021925829337834925873866521827534461540102175094516760816448888224984399123009234887975691883258949165637716911739741083142457263904962694161668712966251395441066886200963135442510545898654712085392489785927339662572899801826533265242245639161769247614868951049674942308853889306364524343570836808462373826124233366647396224519076685485843528355681820791646897748656195248653679159195532006507211489592039009543341823228328372759265810616046933394630824971782032378339835922371029821640009327544861985060294395256425291633690554800480537714387780595812335062411058061439984951672668861255189836820052614596872562716254431380599882586053993082418552688732098460955798560370312835981996538397425867035097237990427060079806442340576683771061342692518121404770221021433386617405960904811076513935452759363571270232341503412412988069200145840361705222909857571769049722068772438764959935890087151506305710428891499482522732929289797339309381606744653703421596248591742168313658723537482005935364989358920532726907789101455090903198947084014360524299657653557980040835255101960568246617036839614075609451273249552667832395100567306638059720530377524579791824697357055468368464718264172604698739942033448805025223130917258982037791650144845758093072217187972865246765925740026647458478620436634665626180163576044953258467808055822942907801241737993347553050767385556543086680920766762591936591533657832891942324506114058728887612464776030704369621037594139603246087108835915291753343819335286576606382526374934209170618514216938798802203047991042413268475093024276993932591816055805104204382619074956631672847882341476300885317160835612374661449803262224780484412532203022192498476345968067969606104501638683652709267654233386447349448974807420089145973370991616042536919576099056349333155252758568635379458318854559850378537884969168155705863214966226794867276293744464348784247420863126001470218409462611708483778291399949707366359345452037689517750523344348863940392365199665200796122402134367543734270311640110011424974306319813625085417131260677815884455608271860853347005244493167638705216217289270761288152297372171281922012569644181833146845354709564014902076954177760201720518576086503082395303910566748741428595547446782800548508920002763610950155627059691709147196395339088280197313931047765884848538007528275674443858451739178760460927996787576618798789805706868435840934383255981271846163232503716144188413356249549881648920541063754745559111601663764782092902695379748683850787839196663023988210258158671509820396538767554371018476098102686885384232582997295535502566622421829516797919710033849899094833842306542728555802581866958992971261015944117760829128103837993516547234647210110511364253322803738370040241185202642991986036051566650438906817508926173544289111117283760631476345543810942699703655980102027931371156599154577669906652131494692722019664030703009652124606392283347099607894237384548780692471170709682422908541706461358798476939404621817335781228613506761397680161613768347591814220437877857586716438203412961275492565092774383637468246740582992407882200647865795925754489876206243255574291353429872741043174478748600149874060678069710706573430221602538272389412518209788952093782783936591476789236862263517072060024397871770798647202083785296039900968536097348313024875694777974525596090275413717535170057591893751685598009986472959110048663201472651605269367062100666761128036572443518674391039686094587082903618287143306514009812607767592961284639067555998488459988314084462903650293897698711821346823741502986500682815096303658136203581926326460117904011905758984124890951509725461467856207543764976511440743142761985196705056776996660272461255387105902834052504244172008478083613854003276705411745023088259861037580564523270632600302398077810147510931230170143889946121382348525841799586544844932835227261490183498493459013779976254365841473243072672633853643015250385241279911566623319190043647058943040013463898164923536713949135260237109572941658758521559618012179051797882765333869446841415256635987233906358118522434809786564429690904435006945135995699168368281058043691044837371452101622984029237556713312496906671078571212570581517281939917678627832949572709998304201885678917540336634644812929324067270351797404243459146988925685453653661188751516276931775485509071349209872592257250130188076389094246033161956839245247348802133001945539507245762749842803981687700778041364637664487872610863014891399491190125582037952875635603516657730113751953301125148949399609645077126185497575875725046573888134562175825078054123732303467846711132929029617358124214186301503057539702433503234085131177822498860141639698735190951409511540729259513149616892022499624410785624661061776553738341575212650478121057980779690301787240037109631012578292625612304810393271810799645474112631903909242741928993322556244264657252697782723481264011135424255540540551035209088588282909973929349848959540399607446163585689013819823972634898888132373886768011670823847926408133019216056672972769275451312953981543031791550875999073581017339550557933572760851978922406239002066147161189125614350226534501159472349831975842907926109145993861513225162429242927323174406014583992465157888585499267360098741701036511480361109150046000493746283182887073076066826898672958894336734997955907605339548761125649528580437090414912468391089600087967823648861917865550800722874429747031202201248470183782679656162829885803800151536413149247898649595564731232460597853290360749728947827506682208010034248416499812977042948768770964367975722841891527469156322882810295475590630235491887304779987552857339515831359957017190089623970839503424595894532833017538107728825574763566030607884946276750010721203301440468488832333787184162656951105085387267282217977149065495054366439579385752757829828969161519512222090364223084076185300916450789106141182873886838511778976527756190257778080563502467767943095386005587897094855033006423139201751192866895115897270526931271649103218126559115850742010179554396847699341254652804643974190752961542979876316036126338705596639269795378288108760917521273867501987589378254130477603722768331322104470016204656569011640149995862853901463941847315338690991055362922660875944340391008239818261949079344132675611863353595447786906446124153397770699193929425344649401017307847220792255847231735482938131137562043841653066377127333032454001743029657273595610630833674868608620219105603637698723686851777545510659139654323224751005169527338418512747145314870166997737533713615177884178528941921592625711427289313958424308300950635317829016083723727612131655967815415255610688036594203649487525954779786066595508586429500102767669993086290446540576374596325783236399641459884934782788675743092199118926873408673263354013925456710151011965506999940226905671016988154857917397637333980130820835213901759588442055897943554284628636205341305961900415380682259636968499401926236270186924180831839462910967808069988164819308373769761940748534857920939362945440723490001532733436224971975753961627585119027328223658818763540019883259362755152616959848287991978741072868259512151806624333974891506637945319639470721846223613664203317131068202679896176847614278621834684793831476589149902879347003221741746559857646524228591188343715219749531192925038531469666106105507360733965141543089054676454163684666500229868710796325357482824466106463283376501966181702660511800647749282981958504048793934237520182621526668784478113469127940701691331787315304610571858878377849950845658375273348224037611043422583972151145464029718373146022236228622703252954303457071130050325964330538319336870556870205258235461582729504742006740632007843917089893771021962618283134122096643667694853666733313119581997623846429845224346799318820785631948797428513836620554864184069508701275885213539399744626612662972671114196805382142002602916900452743954126757591629564158831677261400702862187575162389988822553382891377513905495342314606085604267927452202479011560908042426609576098771212569714730685966225762149657364555239233811250968329267343246277241520214683513463111559213509515121595841741084655164925772568168486389411390216129753410117118528267435795590270563171924776355974525763433168220683912091007260778544335039045138258600804186064477058365063756991433965220488538471126375496204217857676050082149233091901279220177225222734203174417689663150300740966812151093858760869167839925564829015601551656066131305712528464361210984455358245510819077261355359464160221828177186351596763405975871160968218332966351136626508770493879453221967012734982163489156619232871010330088306630175019746152659505657969874364221696175756459445883560747512754664257843913728596347269987157870597849832734364666724500915075306597671126836734509438601955269974523225453189402170397832162326249288015105399682511309148369564259104067372906569656818092094745252740502337908333947307436354310787883004319643270876758339991134171065136967851229065910489466688598853159256924970825512459366966939719914215626026860913052436006592410742628984185867852304025612123340023155189240553692530525511841773803005640603176559556920322387675493493717330128507708561586503085765012849511381131313342512089925964368511436839680755434248157254643215836093377626796490478007265765879307653429478285734034434293091133414306235714375619203904707488723432467954448407089344770563636864069498566792405062916797427622815640500523566356152494314452850319077229496860441303136921600392280607307122794570524832917528460682107719887466133686917764275462160543036924640360792628642304557739248168558130991744742177303353278672889278959955831965751084904923509201225613315047740511204659855458142734605189267420791590683621181648195986217264560963217322895395734705871882220032621052509275818517100274407352397882444813901989912091391023266594069190832621573676807006241725168628490531406290755292048380778879792586995240302669777435569060848709675928432597300122503215642869522019240546709242061286052810598943688004296523156854825299310281104887763050884171936248947872059141748462014936208505832453292033330349244077528232573040886942063609798657121421654951561581506119445813082632309007042943446407809686199596324019473850496392337395803582248386447825351094040749960698039552172151510507570953754493160201211076401027085054143149640282590035934966680471749024392740760199833618496289364212386286944707886127703922860729935820828393685334925686624416613477593358966903728910228116799018935107760965630072767108467033039118142507051413181675663867507548996868490573247859912207549463672655446907475963053032493094294016527608445820828550419950375382112841351673261900343900218292983186815363040174441699135814290702334494656078295306229853190529994772085965757186566055201287152826430228851812507231151882451956695343117893421726205410368180029676265916192017854021375967351906498169713451958591211649335819097000025557993930097761474465696602818059180503055655883576232252675545471606301375430348239765097995068105581100125931983552338258077168267674700348883679727508175299240784443812821302870130341675151285151291363501968691493378432602657944590662093137157231831412190149734177869220440319172522548934686886352847520227562757258429903838675001992677843446436322630831534839371618939301416766154314103061909229938073352093191846469492319967530487981482132381358975064963057096524299972765738746998670143329569450754747799169796787287731276820657150806361889539815121123377224354363717709744745388036122144856618437022599774932960258478621057076983386065275419403672002146074328532984443267843225930260500896223871944267259364583928666373121193067826631897615371767610416570363206929708063502147767864049215757375616880126056146390721122904414297428317161770470261483963947426621072026374626179736832943713717408186282149184991107924566189113837447095901411967005222997011561990726439999637768929002417780519461482840263567889506082513286649714706056307212310569421459212589214251731740067415207222072902377378499659232910866673469650217348510523624627037299789402218138746477281753349242936613609562573510281362762236476882580356490897849953066046546026253206543949007344244719588216853648431147350166716008031670975082676787840640734407308056492991012478924158888710949340849185357562832279837653647928199534366505228826791919361537121373169528054019144921531507236534489681467416623248013898804205680565433926496858773243220773409903701675005903389962525784334461988952068240286904867191415578359974458756032420676386355012356881313159102470617424847009304608881799232672760785304666161424052318836904255481910996444535619716638771287497403631458461262831134002975727221879315446304227199273767192933812926795188820438152434624651462179702048600070486598310100021534132712888039100535202166846051419023162476840562680847759605432924741261969353022531594741646735933283056762246995634951656132956162278209569495625220337647647315315912551891001498904769667616906403107721966446440279312548442649885573476046615649129533558594874033514418224059190916680866370237811833528348763783706451931458921949674579470512580184603077284652474882205528423463577254336421467559693253320293074501828180222166744421888769949543548776532129280955527738784609215269732722868469332802909068621882899256810894803620491954464372221106232445801155986471916158799341816829604572266986701409589011348073921117891070981926906788881488362845595269658036861875802238785043501198386643959323037401045994605405993629142670206353251144350736491354235606037517103711979383846945463447057077795444226256891625455848933134624937136101572318188531199662061954423052109884426852269363288662939252459751376081131376915926270123652444954914833484331979179375567110405418944162545171555619433291005338048395781594044511556329784052286202367112940197242455619810678981949570656933501110732658639995857566443151036911550177823576631569871336862359139297625920115728923586317759515386165747232082206516433393739120604960700951684735269509409427669919363562565352573612088411797477604584184213502890194431781707365625570627473258537295519349447953843526704664097499449743842331071272839826492777594122632084195285221795225595678399657600466784428918719845507607421622905237544621206580114299928990249857089679658322562396939388233017402810951726284818185638365814372391087180591549271456985559212527729031434111605845246947837581785178117760367260647361363160274435993534388232508631152644952690094424262608780863687470842523675637574847640716939206999653332937180949854941807873690590284474379406032746222303000150101193571966441148705391167724806914320449479116770885515586930543885059129841134477754587291699766414583618347004730688780059911261876389031316377374077723236690203746768514309096647585441371477716985738873705544102573736336712563545212090547849368105765407145666437317321356265040969950248650523907660861875214026100183281394432035764990922941607435556941955293336897048465661019294449327594772367656733897306798522342453593102044942731725517165694063250142606671373086502135168700138323707383155587516300933649633763544709439474389746685090043306586684793530248546515437214828552556374411149077497638280802668120604677401261355060837344511645533686453845065822967793799256404762152874466711173306351786207665825597139210224365918978522036752490982817729774562247407704032079641205031027166906339014818825838466320829792109506703311999374802899757085751423234173035754104538873184562525585717949577171257825179300024227978215201223629045137033984673985907604420167073873856068731684541267563935814394853326083158733218423652861812912353900664075990281725374707433951220133398837927012982028459837774469296401854724758463039304409653653583994521904119954042857068908096720546961654785169865319625143978950565134903516840063653285053132853040655622796561579531922100508975116475279683033011772507827944748776474592053282179104064303849680131043139793435480838474386297463543841351454053826572503252976898728446605292743955225714485469862511551250849085394323410431791803136651006446747472400717252148657051997343085729724364009939697411337237080344527424793429777322373129048843986912222046047188734986640035411441417188506692609407438131454853418773294697212605333967312386533045109586375670100022142371110488832953788556418926802640860224960258231512147384709576628070020236780403134890080402166317468519840777140329141102764580009046839573398541145897098322639858509704139852280510854285526427462406955565217916669277241700007438890197705626229458774230566297085917774654257999920544516377149486563224626269447364882131712536073484259142232574071911778206913315287418393716231693636442760441489148653770379218540128427787218165196346527692972725913860890568415300383504159027041805061424687216385723966808874382950323939042257660771013039533517994054646490661815500812784824242616238165161532518000863650146682347334650610644519168357216482141528453419573553992660030646689773197766655177958008316620929136588277502323141135259550243800466812957307951125585879658588293541299924705102386149637636431825632856925953964928538662926459989634407387660683346430116763840106159644117025657932930065592027937699737185968562074014254476716245555332498131640778530468171860840355655537984264825224772201782171675183531829818329065058734106671055640917353118672713780914873434202059723295903395297279922667910558788236814369157249796846071919941986783242128097983242709727201920648800761385659807097390089127284429258764940282141058210462615374196569690208376871153726101428686506448379281646675533533868485406616738029731483014679937173952605222978763744569068419445180101339979827257094639884904199984984338443655841325318729708495404205696094609940317302195699675389924144813860587799470798416189840890127158433751071723107825220682436610872606368206022773309071158666104895781402737491428719854841441702361297567284487171421573227430111723948128197757455029698733684476727854366606763623313233324427371860057264833460425364212815730205248538080501090073328314757656219320284471380395024669746139654800787254182861294157569562853616215848643562285777640441338162683133835512969061892261935560956200652257543616246198752861611829401990539343353171763533166248261676087558201750608325931056631931274922036617644230095712771609890262515908805906855433603175494125747852016562629469691178881740924207374409443929174408224922608383514679253047621622232543706273611472097573760750505762312686748857724929187254682221222344558266516732921586302887681022996834084416977927122982067145868360738324148093484653559972918677974109874001515482084856988552349559457351671476751984271548713242457820808751633264909590966552487069993971508522965415918208585187641425237775041756911912205472796425850725632207576042506148883123283832575773654642538863467212505305042499410434713375139574552885762676687040373537317292547161984704886185770090720083261623004366232155523424514262238478761933063082336154142694562639759320730737553327029901091175223364108200089831749826427051082775817394221773315231198593708803985947610515221362662657608023601019390640856411134162067576441754915613286122050716759987335340486541198796318837942047347264130001798098850919980353939220365266628832656221266010709030870662448798209753561815781941288136791224718545677723974028157479301983309600385209373772937739789160527391860899044057321053127322417288582282910835901029290912744371323130373948334956642123578647702757865359623439936909441537487077984661848966691254546872026059842049043094345340653588548398988517291036685144307719358836756608756708674199641997643329454408277274991787451164030857659975523222690283459467259175672678048070915557778313634041155326656759113928851512312018789434258667422307062880475911272051521852214717253803628302860174850008465271806869034538504439232225125898623715798439089420768346239295635356380900079344604290460631618577797592996775867737598068344835249673549728671074153586772123823341972152662894122369599144656780409737083317729564446628776985107240025034060998411991594899027282902737233932321683370892623146365651135229987535191009590565364209813637157073554864491919272947114474677438342385618938939356068637472945413951081132656780529067240284599915031894792071909165136977948077836635951843309294900621245968743235693350712863355572132218261680365750782385960031441890613393039427968653073419103443537364035164282545405409303227537926074264093942346148766717312358780780313007432204246828668287815338727350835734247194310218876786532017416952975454001271057981749013774828494431393635956560321739414919458457420157972303520660067312541259882139978837896560314955134769279946660833667809623925447493687344299754402982193748165181934267190003897982563671035789976043640103020446303297270476830339306052324480560859069909753594879733853353133550667098426457234616322418089158534312534938685568855767796176100197199324782603949199206795635692984546243296937908047629754753178765227457746737993405746468688579130588029908301874244559198603823045695295981053192065343928400148628171999993583249146302272555626607119094996121421749792368348845805815802333035993551149282501921105392688937897370709194254855955776341450436382520201110140094336742276544509382907187147727067723645132548296476779799333526200653701916423259116920112885411496375286791933136762561485090816593985058522856927564137906641405267114949462482001209070322633687195207304475130313872042430241267853254926680420194128573655182993834972395263145177155466225075927609187735031611517413085827874674607869903565514243075702506383111945884799592459180785190887778431651472116419930506733063939398183352077089077386090012476005683047399584662457772572657825578564268715838092483563106652682580644457755857109706190907358605739915989463063082404173225702860021123971015827058176284044344498479778108276906888805436929337181717396712008253843929773108055976944711596069141717849129875527788281945813514229879971155033874795856444493156764975193166524491611420625030169913863185839497610530387411961849728001286443196144620299873587390558515319551605646521571055132553199546296784175842079172971538576429193995871130623293194919497144940662184893726026240969739493160742135003173214913216398472350705785442866784664439844595913439558513591884980133652397031254178684688907603072265734404864489462672455538177663759128536910716581555693042074047813527469190044527029289765457411700183862480035879591949243216095794522626689948555735904587153583707307767736582136331232786162550532577114260847095522037272820461794450508712979266827462045390290766480769691745394519506063696998315036188425391638275932412535474554983023675564675478316071501316347626008160675964776725292244967443335835678999829685470737886701290481285601328598314316328423766550764028684097159451902955722378225091961020716713388812437623731641393869247971229669868220275950148927200833761562284444843267327020320185609219189531888550059973586517998201185214892045767721206691674373755003416505033910190830607369528012770781132646547385142462383975547272170184958472456649336702030366057790136688657221344569429448640495922319497322254857878761155187873548261026970686390391545512970670844027347413682829639905841971187917928105528072386700230183879014287657655143980394057471425127851510325797127026785157083554921167909738882660668220328032098783073331024037536092486321497971972236582607058926494902881790024053963100540985925855167335268791769003882552629655374040726862943587505534104014990743305353086908821281938616847681840601251422949813511858226609464563036752855092492247277596977385732633058971482893920983406242971619168123929483237853260463549326696178332815913997852346997765171430229189794277585594463466500563215312847012788248879991391028975163497811921367259118266065547661838995031510095107282022359270425722271172466696702097868117756576711487497515251768000984561757535478352534445070313444177900494243585241893346945309262363983255785843265144572117384334044345896815942421963750061164938823067744956899223709279909545994791505133174039959666099417164423992522908179732340367128611179984169366262072053751641417328761787439690908377689736309415826463950671327795397864156874334997981629100184993499390279791651573022402751396372910126350076413345159165951354747128148754859443875038182218035121288550358911688622441821003491100253518211138427361474325052702044567486238556173586339187770441537647354484654005071623111203511785936543889535495557590357127041957654926025314414833649929245744145492938769968390312970310171385308523042252752752817439362644885296195157475548670611855710420860133099754218042569687698599067133191999570528101877197784335650585819579349054145422258685064675823372799204262014296440559025791068793682993350264199097609804584467901613072278432109863003988121647546759066991366634043443794011670439067857504451897778614518087030579079731245807405991903731277557454083829694816364464156444552017089562274183551200213187329558675390405344925627059090758261806865949082766378687985234602879386099002848735282746510476774655077852050459592827814244993829656841005323071945535525458559357225106440539419672237659416499771224192984576385198654786104636549206692925216707581497758576173280536519723345989532190272858105668744154314090747403083835449005185900558519521429634650538506808220344934671220162767737702237756054844524550680859460255331786409004589393375775786301674827298224478703753288777187299705079065909410743126454449800399556005002416320595614399374804241707703201354925109799244348420176599324750914946894427932234812753571064535811419489434180972606771185053900343885146840293726742820189699568914370219883886267836234942045110921807113437234200623921845640390525586081589584081170686652012018040961731749774864993546324266610196856306133078111375432706028335194232457030328999362309011997044238152064455878882261314535532558384305125925059569965625319088371156945459420430819840353099648214583258227745648603870767520945785519853524284361805505088775729982670141165070792044861554322208407792356398457886716632892119698157710047571696282822820627456421652364307116953234442577324629674117072485541029093112272124385147867383846515780551518284227893218252464606356956760798452943667317119826022200046075374005603274221805053216273966705534347875929799164016298204579628399991028527675535245387888385229302817443053787713526312589390707764804219345910819752101683125981182072376185594943462546909306369654800175549749139242504271155190137192181684579824531753893992095842737073938602575331264659499886354072484781908698240071006476376763262437746326652536226023446774740185279016421077653561417664397889596084787954436940134574108289771413439232141042947190556123159454238486035025289844834209219137637439740503340204597038497188707666181991846099116024825979014795630657944886591833555055643712802508269817837379234916676847230623170912636913612086589193754396104949434144515203197344560924676175248829211712728396203227446025144154687003808299284302593686312841513404821826822489734218086022371216312848198546871346840812778218284239482560845226478264116806579116380202768167976616151957500335677527908232955453522946835553723635119262161098393782487743378523685167729799557353752036935965273317190845965543190925507728499024475633054155335642074673974668857949770885615466336157264661337436376099994422752406443412647904574800721361435272235084331701019501231801980982063248213108910301560659750925684288291940140615531648256241556344619005854382599554036347620470123470192001631581015452165570802682871859614581736869448030295364522675333802086728767309073331945242422163216362429730458023749371270018142171539529647865879760361489371524225185770175940166266999402141960273317666060341757683287249691404650624836964466473062372443300068745875639569004786165573485297138187640669313438610373785799632014587448664036366290519658949158182699797758442809443489592697700757967509216655980712165878943697424232704094419214184854843861670729236081693180694098828857081891595360394193297895392389758242942659836962016374938062809295388218427146064487663284451206766912226982113066804248146888393329818557597001187983466764706285569038964205187582706272475486018257256540651332957408667210765234397239228492225465246410410242168200610984949710625173911598468895934419433474559402433245508598122629650333545324506560370124846222135799921545796122501128288018318808120641746024584383287311379626021419575875806333041241274583817141464342603819483228097790966650619267276426499840818582130085390596713369894930004270032207148196926349396635511400864243611157650071533448686285458306671801104736686886972000288557365019284684831800833993885044547200813622551454352563063971637303745942629794209079959818447735847260024243238763937295584478757306319762563720974651477005208105823539177431835905185879665510291949814444408035744066437099461851364011497692349029321000927942729977678024413865299621589875037128345167632074621479163462852394407623276394363288334627042906748125694882420722439165244138069408729012932019304996037614968061622220297589640684486477957609320765664540728092564343239928856043698285376627658871242878193277430309533453433140250316183095272915235259317083691168000591255605729402023684330028517144825273833532838596486919078249494051359568715733706996032591015465418351826113263469072301402242856394115839748085972340785459790772225792381324444813104679377425176547338847133715967425940957554507803095514960796735853364746164273772401545512956005355356635785619010158433068971225870119253600506132891074316090772335346628196164598301565264923219780126862709709603027516693856392190001860751328371812638748210074361216560652356838059918102597650523754481585004722385883612400628455715910592885473947807105121436304056872724164880066010153988390258415074502350415548184528414529734100598420473994002525346111443535563737163225703642124505978481899775025903462610788036645623150038392300240770310183216473627101393940112909746325578966613222169040930335977877904977710238339500405826402906153838189502323907356521839705493071927124058123651505158994872620169972094325735829068259111748928244816324605444780527420383930233074815072778033624029168621515869881148010350411408143955312129350279819961748039433920988178437671087413968224462355153204222704514360236976669794837203887566986209769118608479549970594334182166748076369064560345695945530928212535745114181362262053685721839789151134178394314438892745332727053120059438777449056579165747067317855135352013452363070388799589229520563590574736877190860233829047215226023304427916648664109712156649976613339047630886720133710152812896122478558874871721389057025912830855179139084423419687836568646033398440777178748789382252984955784626978108752554571949682191407369798325786965027217936164245283637123321334181665364025341348081935440059244270020067592595554413052913899748530950929772464538343033663380226050557386437251663208256935676425080565918726022749547676575908379834270100225103775705003435915124058120311072841409544810981607138098074263075227379673563836493046963703230508207264942600739625571206944217768060543143639794330651370317743838376008569565128339197402747400402720766017194627805349105372633850526873781717469034410888167822006350183704967265200808145953908553291093386498800166380922889527967515776292220943537565095611635239191727826887225843433194679933820745116989775304877788546569812014903561429245397229069371415026215802518158518274032170353610929745981018940284368914155863888493535502682303732762512546342536520769593936371796052198565597654620128856520676681021812876372703094226009115303963620446033769053241815999550289639889480867242947156019194519180637684237784322324948349291380920126296878684459292782951102421014141033701940961903208798357934771471112912504911266044591697911643289367271405516804853216507323592739091349415340628058780052631381128360200740568957326913583706688243496870461049014759545415413549050708592914899177853136454136979182809633453515140331754384824760314803783088580899932167661466124555641909282056542268493656131192449473451046648374429963503295649953099579898329421446924333480108836165209412803336847620274430800409398676912758103890482938392037591105971328852331977510357067643152338030539867198550562112732738742186490784986942358439975977282319142368630237290956457792460594019139566653480214232164070819443215660231560680545168395690251601122098871912010188783203875057191297263535675234094952111763046241482085363073347842337547488697624766019475707231373351904487050315620152907037632939416761554096744496533830751516227584566594773711490110311113825335328693097848057200458175085704186100012877720330366075415338106456178759391008019198633942495241173826820930006455868013239031631950417981164082923963255246249053525239793400042091700896796210118403721979253341285501851132707911136293384823741933033161988468606958505100567492520618058111360924860411899995518530672630754097142835099678494440791446561174925252712048713001480933359813760462401262167684087294746738677316333498629851525979909222933283717055932133538331937673964551200846560006478436605446489418933684559580147367046741829203663449066532177911952093624290029370655494848004116306670036604211345081536227764663114139890259387712196699214712220204817905229098761700291199312613290643434496648071695951506220556071456591561981110717522786657141340469435025964076903907305972263221927407650649299624435528732126115450271539610319265531946552989069315392217646878207025300125360148458387609316532739402883834912767465411164518849045531010112194073929742533852009719801211326134539514876389967426669818746432124031168412453028894773574950401995499834016022411218251996286825790261728604629910496189915738438788150582313776823009236249974285491910523718922656272119400809316827866529069975544224145755618882681492135247265064375427998371644623755702452136957649457527069814762949971341678626773100403694157029705453394143056562105398559600933962897625216158793790166601243949266529898223887541004929707034773532031621356537793441620454456107324545874087525328032997643347124158760381396244107017211001218732302058755177887956891218137639939268753499208735317750659156999492817588428689702968600948283259684351563914794577040583912090875872735532959633577511070558438111065672317240932470246249765011653681260444439654656033388445281816681349147508725470614294702192315588048262691615770217775243336642139073981281804729738127872812182026478526204088627773365248616629303531142069585777122679697689574771773929129594936546580696083797670960842886810234784479247075234088529884220097376401995369068060509612310110610109301282674826546814257410112820616874472956142863467426728916190816333003998302438975510691557926449231714614068596865609683177667093078189667870006615512668825508777723430961786658150807965546285893312695153817065882983916206071015190577019387441217172830486533639894002201885225364219844526985066817660816278839443529453873295346122466396287436680011931403570114078560323445292581491055326762389547986888133206587660476126680723109984233238624964796242387045202039219917834063679241785047023935283737332881227976528351396873208581702992167347748621838331441879688986822037813788240841448651366585147785563252790014016560379647286144369722856765816332541347200964085327006752476543176710119346910093611097996567653930283244198466787042396297320294845124239641578359291456541386178824541874778786382033407945474844360814324670123792788193469387261530114209358202784057623563125207413299528701485256222142960340718965983837032514877630977432916217801933590187140274354527291788882729675404526706152326186415103671178595650001836236829932967353265636466898137463256194985765130958430981964522440967953475716147660549568846333506503727759483875192409197085322140830356051375559789172161467201764903873993521350924834595260674090468265442876476815748805557793641530288166971637096968663256569117751782317186685848233087191939167689651115592374028969719170135701883319983988251648427494739433662964407077138781347871923525927669038600850783758223762331039876463825536806215202362896456124589629467278923116089452590605420724593299490259396234298133134455407771423279603849347226268033317520617660442653314191995244449066108278289687415364757607367392791035060599340857604763338280243952247875116919968156525967137156864254687582819701579296811590248749137240853271633264796248908370880453301332468101358533778343600740275787465871173769425303791230268950219494458796716380632338302604181052573103422302712501704721440515293485072059033932259842270465876763570381599561711082100499084401558060729561840261527894034172826444258684739239968942663798904902107451980557486133784079457363628307580107058480982234770029163181721571491836302852046692447985105953573988942067488047757005795651827449210651994466657723159373027664019948373224514386692724595516569527934326821831961348324754352854437037846300744032257767152383677557224148156641161062346041340933218763959430709264511191269744225441465430926841958223651821508416797206968015671050688857439184720443481301175376252123808434424064840132989109055505377176942783393511813653709313485883948088825912649415237992073430804287988706737905491174562571419723899486942094275219880406385645000402463794190427604893573276065365402399993430239208419604574725731421595224424088805408924006610296278814022841927771513966951593202018428330347578777735860109941600409702901759710638056063198079138470688477709346051253974756428753467921607692121139089586132563121508218463373369079866592253722676771511891284897267873372916105067332510128411271162399110628296722425235219591408484435036375381597367762013695826693484110510793802591705269911959624265952611237670070048850891463692075306855728101356614583107258277175919889078014138942065712970407362698705258341427913416016004324188103145541500342461403470500725446422582640752988367591523944855806651819478051353688497838238789942935029543966412311135751093930818621607944975211028888432378321358529069128586472408113544990338915922433247412756145778168012723830845228486236952582832525063863439826074734016021222376379165592177423774784316998723228770270707788248255401484891017401098015014640320800798829675790288545609551028715906605636011214061099008880382850125970582563059154959101053966092238549021251025464673324868489776808069237810337014010022077585360982759658152332276840487782336185105076106911101712909213308735206794073100269870032669751004749286714224724685195942713398793029549866706358884521758927075958324896551138927543732804308394353566426953673945220052107817159915042015027535336485675290784779273178341780244843482961143202894901534905398844377030035929514994739163746214324178666429508303968739300978230691748353277888617458405553586385428154100474243203990893613482014695676190047865391044903637259766631117300227120603103995224314001877751551327022678361006350805414578426222043274734766064621928787236010319265396412353279228207193877623220620854144148398590870095062313184699194263495031107721739886528431421513268423208044769600931501422463405609805270864539548605121246118477307890510418140549194815218550437045038494598720603137118889593622059486773307802208113379737518316639174563423932108603885054981927299582578397451824372832756281733456497010013576794635448958092392294806525398829294856177958905423115801749174281017059931417890473625128246551143488400759691608044929976302104366822437850655870050063730820280222969201797558618640833818282946675784284972078656543672035110416392897219455534046027403619901346332923847283371042973778912752901078528923756793517365520865737614005903505899903770220732631745793784766365425061622874209804567840969615722495245989817418797353194190179625420762517678512429292723850349123785035636773386860751337399549567405886709140941314368725183684045252178870420646708973543887823832925989147243179434016601968093934052038944677325626358650809943790041527983087120681064603573707513433321767943890002475357724933970251206027082776453843713057662126346105288186681283609991290016115056338296465339666977167957717772291081118321064142974737551237988233383533239488025774411570122358283050853646723133163710762433528721077851215587798225552180549206120437500961774085775443250664432119788357652362750557913145968729411748602032580760906446470741734214214098453490709563306816379160044111415009695125198198859480442483819810330144243904927885284151359364642424968675561375325911669082212543048758834845333251688856675391463544246851672752172156143563072248476601241703232377485608400914876106036724833028713223166355309124929281336363350474180837679837525114607785722885313984829292880880183647260267675163013456007400825436233487729526032949097829416936142681668820579069120063508458370786030338809086214007495794948673955745702759629001627706558911058612795857847429285181632706401838915332607466700342433933994419851379371050339043768370276112653269768988092528905139674984698136285559612801792241920779624947224271329174430031485912206376261366092368730124184034474710227886982414650019590048380466340375695000520300211567573807906405798231582985829385001198102875945710408813120798259341143968439227516010362944590863947854660279156286945470635858727811867103791457155441344409206597141216692031658429732896121987059882808393504286967907559632675079376858527057203268474789376000504860184372706446773467656100711878698121563921173135235172302243864614262245851482546750036425413668701381550733820941873375991282975385166576560597393128488725470491412872581843621369015646202311137792365654703441536260534723680155246953850295672308644260374157091025282635258430876243546248385423443066191923611165903014466610597886264522727524186193283349587360814999317240669775107057639134044532353648574412915098659103195818901959326172008517137119009294304917966205960961955114513895832066800622132601803579770589005862350541295382653782608476474732942681677018206996103092237773883457703271208935404938886253062800525194782566206359838949911453124672967821333942713806882808092033047284434146476729697950502937934919591344703207273338221741044504466744358744435517245248896728762404975765328577045017199864836820893244155940769177677901176987313002846415235379372926939301668074768118604491962579197965782442913834156493677041139453195033289540691938165295688145523974588208694115100112246297903671283849887613648245957615101307403173644811269108424430383782712350413197846073418475268468321955002650241781142406022274807815280657436379115846004524505772581563083133465681716045446097964399108814369445409265979446719828125246530053635428762657831748682184767793770938093641289805313131606081755606511138130855783497828171712347772543104160089769107648218181249985182170238008889432481921060885394386239968687725235560799955464932987390651162905708118997674662035596833749997296725321578916365086118276230807815099729310058191908533404257783446355780937553064999049031417375129836719796527153708092897180432994315933956080018924642303928617693994324721125765175694691716724412780835234698192140563986585138633104039145714703165606243979911678380617821900983834914472751488507193039442886508571010874405151931293344273184727742721396106386027572422549181771108195965129969496006879072239696744209906745690296911256083529740375767461528439917793643931240216019266630732875336330152671690463115681714101848337073582911318898768205824651803623147120871987861507410768266217991851526186465039002648849719075177718645718031992809326835792719096446689802449531591557034447602497798057419513753445252681802314464126761444302732373382952812909677249985629510889493683038377364847685820399396282937990850465383553223999596576349952774908399145975005922490887114522328882670208551948515075253993343912514065188605056465485654966894829055926565531359795111950015244693630447724780939831675975687378978079161119716226062539355996605997375738323759797758344719890862976865484368902570520270659369278693854063364894624213377293456588924157717893809373294651172099950854531460772235841951785108580944268152663260968351406623672261571532931660158138454698500459575792845997018148415354935803617254016705807583460737939551300301561937581439491845581021915760143589125245124132302109621157465173373781089610692050106365607034231444996089298018395447341546498078642901208426049252283503269543345649464865457404221772006145807269432832801351746109132428889916094222997703938674259508589729333071629629736840209317748280202336871119210167280230797658295697312802137860009962188798684057755903162436771025682492097873408395836097396629147042246332937722133059697305647514270904153198898288608092989443490290836659159344586251097401736335624598547404538627921769229578933549484782008246352921320345433822962090998321385427232039018923087456228535337425476617662673121332031077273788105570468021613509385104311993511097973575635699194231257468256518617539775253852986261725409045911644369724664400524674702162117851709312441633001268167780152518123550924060488647784636785216475365558949936434688078009349344803742799302782585056510757847952565915945725429255170804330229295068336730453603884632867668314329546204753613425244770018383142275116493209844266313245064266677610509451344823117859518196715350665805435107052745561212240699372647828897856127687434156805855400247583651694714583605431212905938159103566668616589042950038680449606280347745069347781920337840063104043833764510490923371436702281397462386621612293524979930097877056471700225025331153421780748037001526325148155087004850602722241352509396110262577984707394682826717722186086932780688472368323392372399957572907494724749128956805461499048097378974593317342383874039593150637476021181295067967618465546659106641614227688168564675875356591434432082780587154364571682830090589869224046701076491353743203110793436480486653788427657098946446656382171425041402768780056560723012721474367770424519271467362403169881176406964706992500678235486333653083555729998819436257872527281196561217350614399277764608360651789741220169184507871241259022673462141050110087228608597745350835832913519229678181276144896113183451383777186001662027825469979143537967488079923240198716235813769127259380274985328695530523097760869827569900129440573577545854683848918550395252476494643850034117521926511920697341031996878785440406607743110982906421357693204211519220697380711711572405535713654424682839270906219077848408037289632527293640666161104061138042423662461655099894286223982619678365767663433187683615812012157284753559567507743520298685687933699790762053264481900134568668842169008541197570900061191090802284550872530192852232618107547986824762392357613671734086320393669475145046740602753897883562195212855121572471498255407498075706819117104930531389332604745932211839185845574874445263934610793210533683310983150122074195171529763078741057139625941451765633060364454190719937408801275433338243529712514609365222589365470279669130477021252211102470740416701322477796070729673586880935543598473737953465068207540329921663103131363991707900660836829282493945189213827172057049265797779925712931811762786021282313887445437483034172386430880072974300561133746628013505715016336173882559598906594433951568310250992560093952326071097320955989690601301107868589894478227558559135595316292958693448294053281727552278705475933337587788520409395219694673992076055585843395946035147127950947098228786013324954875051877484412601460184072000017207893804186879739263872896161891934407082907348044761022835413470076588086498833454841235465842571076998731507009659896511887434980743927024363094897749976445916326298881578445321167065322225719200268522760794911890674366649060480571096111479818207397002476215769375793007961323105209424757359754184835447165687329420412786507732158256426457283834633946723285362862217966753946602899846444944049647194926403229347506944931332387269603143589205274835558331817620794780302039822463180595016084125352052261750965307412432573578008749396968721731961636554907936559367370293175756162911259894842698218035620517035309840594901902707403506522457443925918549186967642359388551283300141048228662388254508116788306335527751297202856112742250649296395428341152544035713247419848610913013958515664729381256577796942279733092992105870395903898086509132515923747916014359048706498078588505544638939175959608396586717035516983243155061116407096851409076600974757973808338437617832255744733482794932574924695700442807737312897749993259314512736049869744102485434504175145361145840719756998660145935529874570335784404494598447103688449764596047010225019158152828294882923198636558942368214969325613516100707524414978324460826046897525002134549803886298836372028484703742044769262091040719985806427464695729375709167295323876768411208728877376731558854857697548249132764779435786852761818247339654319030761623976504701045697242776057470877591930990074757826138920036935105051857360347449307755966542188460136996182604674172895958755589105064044541620451662334195750933823782002170288037736098199534298203138148018485276603454704377043336088119779725693825241090233895001393902663120818911052211452425745377431951875026187568195044252193785406956100439631129004914977799714491363958092445338259466229178436967779537119423212832150394062841502353878893085672403583396671540328740519858130402192010617131082187409175273789058235242911258460986054083124809243942548806447481924777710005040343731550012650667379750692483726811554165515090987382974585184571345915906811001388994999461675466788762645738760080340713107255397277308480003461784593506946108402358796118038486884774368088868117003641822782500687135657627614424067162446659008109999987079169889336306971031295516009856754286728901922814131749025701995619022128355982783735728899764606945968487506992188640354856895098857962411452351824297472549875559739526598575289858344715260882750994858374994152563842417951660376037105969969682488174311507836587200760458308870541338633877327309289468430547632367537763069630676429240594849812134992889244047836665345462869670874760441848551339154652011027207353574113357679715313220042348603579774953974049807237132127291509478215579220723868164036938694561008458432225679832331918416365718191945908438076159825902840636107104083962212555341855093824296038839988952095442699034778499676707333673317875848477814230948666823678269581838912693557935395006322422783546494567685743412051159315948587999392274242665737571313663678656827841279636186322256288201642326237748357956127374000710608462670332195296877662618493808498731182741822399621306535011682116949905193474839356101478313414355237293658443202584315504563348461636382639510430787634728131353149699445443035376314763609530854087875851712828634089525263817302968022573322520034348194712872757025686497100362167914217102869568352437879353351790473334410622531847182435319700456194892482795054895109036472838251042856579697670653267757433019052634706214177838391887425037704309197889605907088695388955286995452265854807311558872326167364815470032726157581360456706099839380852262482173863885818939033965698504467927790072044410591146791019444990899437102387200492797064218234514231537184590302231659295822009605500524581939149529702731004092470005881375653773322615790157386904555501782048262590598011965930541431367605483461205171746546960236547817247844236411873787321600675119732404554336948247627219841962197125903753147293595629781418778102682568122371689268054778899610194119080187740912345340375438270041172748755262607618337547205566677819715375094403888013198196595077259100253023073194742710628260272239988653533946046760406977733287516182483670657718771348077423287660168695818722924085510951000803021072506097220257166101363152251406604986675626336729799031456857070312639378824609828000356094139508947925511363823167583497604525088573920459255193563110984651009812161994116767127210497734457284554733813455681741580385974497905678901905117670331091313441920450698656416473932004654919260322632582803946192406035892082143609288117741385851087499109415389146924509084782356798043333197442646996598214253626384333574215691293574647632758338958934477762423431522381594877176731848133499812413870846832370149392762603190209501902143782222276491880222413304518952775042652380204729015658586487682734667806945690219392211210252792249334714341926949693440932747902057508225797763720441646508167028954835653778119993929403105125303255170297134365089622204709880646801014586147577357690796562877203316798126651579883023397079708197803468102096144569861564088432017908773301268885456171435934295959483287120073297206327382581156727232144562429247205136006579093307521991661421955651273703606246727388751303410423999414717681229373512163403433017978495284638307286645228623001744494780561308433444436461401663433928827948963686290604306498874504909525926532582192496233176976740273594095450807178725820064353013402182578559873691210774256309342128272259103249956406137817177034659753053379748942924725716593442686916765893480770793918433843445500903637696326347427866311143169109130094504093813387382735004046243800846283315243113077309209452601531952685603278169326275753878434333420201142341660275009470378942497765101303638735238623603458252537056883753751878175041771435065293553645304187957534022775754990822587577214150110507527600295317481994661260228676844575964840780982790044076820996770645106701891666902069268124491080668290401390449738559685511340054533728749957709034473889158470048569505311678926095309158460551178124976398459692638417537420839316417915300857828191364268191133874319626888602683225279581898588741896627962304966532690103528419168638931473336017148061762082117045776740150679913285875710979030681167124903803959552465101119944524647683313024797251827238843752793590010094047913856464175662226322447389494950367178237188769043698152240032381642288294838032242573135537575153962512329303149516724189085287327359937495778559334087266960743396421116118752407110755628229895094044798755203891438605455604346009812116457836932519824313505733608952451206891268136450472512850029420358383578945641522581748355235671326023291500586187713110152039937559000932863276001119741049963001938658206253583094458037580265020156732628340496517855371745562323157021041799856654113739360024367279838894832290155871446881583966533804788449628485845000156639559731160513357138793626298121396015563895943295364531292544755580536401417281693204434091518212268225912679412555937326123546359324161990543043301769261029740838021575920167419546800255241699629602259184684600044854209504896709720449609248042678018436599250107695433756452541711173537952933176593416612551103860796012378829260689461356957917197460373049551771781152051508832493699831167242894380426440133187889008950688613506643668356596142496235207160996300453409112623942527383924310618189291691477295448884579407347280757268189441935971442912974122841101349175570989176120548722146907272525298415807026029029237185728999057653613403690906612008782071072273615527074883530443054175690714590931684528958417623449638326800143384012478568841631909357967653601741598613371295080077850811105144893529285367105430163380239594072342906261561312316858013872676734031970171892871101003741718303272682904316812636844811250198097914259990015368163104287418981606317376957505981729886520683098983701325973769377960632026669893106978910628572568906551029653753188921443516479459296670269058115783341475631903406421452250192103943531712362324207707618578946276467319010436891079202511030648513693258629523143049346402464722388991588010132110158318048303403755127384530007425592570965200963296590281673456653082684351881460757914494946771491931321688326256149262041810455477359268696915961693883213731852374726307087765850903322863895764415374027510576813069595840851556322606244775359889010395385886829646675830574566327051335509756273004401348503188392297581054569192575562117685412527809343124952345533862811492454628554991548450476328450423745528619315929832707731953207821391620350402152962652525302335026838672458741534072420971236216501321598304511095770912074466781299379009255860530488795865980698012100128732133214946349071145579170259597411340776681780773125629480947146512313240584442451434209523891190228450791741798607052998339891725620863295540349233245543916290706936438236086283479332971960070406511687147097298079802983685284947062393031893969765829056520406540993747344375903506892118148722580965417715626666943239652159833824852985847577655984802581872209171068145545689213938053640850383518355281603026278219589672579289894307751629364898721838099872255309771685247430802248201883241940423436330117035521424636290151970614648181569262538737931466752961287503583006402981045028406274492248122957624767362406446157371246130493867317774639538411340917205191706966093302565868598367214593215376873565635735392781322970311194044081614018948928633027660457447816447919249052617441084863120252586959424526429594410629009199802202275415888371071897026588816112525976837784508644745390754998862139210199170658078779301965830516375752427762566103696815142233523272935629184444797515729827442159415617875259851970342737890709953802786270296308410410300870388763011863779746020670093572726248610957179144288846851632689858019703218725552632084756794967213681175663753267082086328128239402457457741175020529742824482448180971987668714424073736635654815503092327234026251616501751795617889429979047310350918819845037364675480672572871239916658953698777895291576855606721417712182255711928626178323984911395765143870725619571479074969718110766009284231685300151977291588460467383813386339661109634236752095661365245837617054490593370055804129304749902693888477759992115955784920140957468526682032728409910131750630952519616039354682870793395583929650346444742273322876085059598265405446432691769583420500712453070090045913758972968707221670990018170647489503055416528825179708320705967713655183142694136750080072164831013798414072046223350499499919945317756663589855682494501470640908146925670317242484597791754225464706037663521372608812943555411298855493764404486311424874186129125452888801055081541104199547118702724901905688653474841050787719940554714100525105615772233844234903140128877711910483763883579678601701990639011987516927715460259228084568700524945848607421557864236096585149258668571746981956382484529964331773214250877770056085860699654375603680615607823785076522672456375004752346588132275555395759127751854902945557085057120439787893953055539826865376537736246647812453410043951115823052955169914285177088606022973459730759494107883068116888254914336405982969668104490033526693972140889093788908902496469258975283192465614373382710038248660992770751047988118797093354088620799232550836104031757444007971679938262127113821394903101303986091254051630413740533165892071420264903104487201671444843731648804512832633632119679877150461233416552270374370845785095601300409510212874928958752648292005985221790666263072542756301022007130081559880454752845106384120826000918934950801217317693523522503783892242512264015821730386555046535671316730792833135446218612088290336707429868375483833100472097831761020942253644411461543691971560509365481621477429234572619786438665260181177345029712939480731505055782962406908254420305097390268240307758257969595260806794530066866729532850468328200680019144370904413213967465589490428751585470105952722183937385793884267446219849808859744065654752154126704213223525024002989303479840774923266212103316619495084153867756412016776121622594982609035446892598429724355809962112344192645066799846419272217866290750971460258209699397594044011489541411471349169961677097056174250414322776067798136912509424796292705019135789650009747838438618089823567532152711668391442874279054227581425216219170433832739140741009640588367263387976537547357092260650577830249918884582997376946353199733892773700337818834783646706706745074996885497642276689625182305345273784314277103216992385269238028004205504994137166060549973152924273170660758352634625757600533563264934254483790349472966191647621612665232406920081183761003432407671760061771840195134706356918208472017759228640200058662028211912234488937521770179991305408204785189790198508371211077865685105570112609166860533091662163035517253221279947673820538255164557473133441268598112008476227153956139802302146746880890208890006157479271739413673392389189840735312393150836976490712807836801277796327378867723696995654701803459262940738754553887985674834073970537252547347205361322579004175325764711453360951463976516388491503731191382350414109252662375733986296284740746646581195684140862019428264566280800273500579684475765512677371402025554055398124221421674640327090759440621560382140217291187200844323628087275650573992239102753773136278108483078913921855388072412027947532149749401488339013495830953185056462267610352842777180889669976967324641280571899584101916263636805408105035191948995062015844903227389839666879678783339901290038663425206580231123566641231366085429154404282148728477431404749623939525463428441939333010432525444830485349565143652133787805162656990377997817146239598419699222889276567880467015256162431293523884821522038847696012642921183259288705366080975176139486497222299878784664254491733984057041117797104472351250334538871419824950765796833526112433555786616432578448947863447621030717828259757880450145411757878165271494153605914123639046743251487751498975587251089485406268665115226939113762530648622218629584137379648133871778004549608739614934075969618257856070729724032196186517111379491135016014304037553644146419279047860663140248045499137218176384332224535650643866480306663613976859096126817847227760629765270077635857680448418291561499756100801515289034408425164820460224707607898313703777107621299372736876861165315510300189543599522610060422822945636573529802597428542360778306198645546416869285728738889634606890449525928434530763488799306972548338404027774862881115266096972759379571171524481983789331016046837544361362911771824420442603194745138986459284263873646256738192576410299165238758468471782827784427896293656718592405565640916863649572724300514676483901929630669622490940383630020333334617637257686109670344580173228000449216728366600931514227717013316461324313179678149674694421168432158717243948798330963933481352113923843636355558234680975261435319610224763947232772046011558951117083128682544596768302510809018466414152938254054708690318979135977570700597444464995955991829736769471609329835267068911183233434758292716698434471619748580830974530949449155468390910280916665342535257268383971718174760098700276748651133952962553103911951658779828502077378587577274518540284137849384066544334964713983170168980817993992575239854218305862482349081162284776094454420003676628458940555213877164769160415161264922646100369965407669887828297034762989402304483856065997472794747078027981901181833892923574729048629320626195177535084774542763663418246256832046843978087198329484148719972892820329490530400134992786059323467223872110582533326516922564209611031905222022941441323777434946781124882757289473496654413175427894642856413021163846954636836796260220722088382998463962171215986099428068978940087655098595250056658783401876054093522486544275300723294724520394519635747851103644987805606826966306888852354117979138292220553570316201107860266831143971552043152213964793658346877335014981363323649894110473863122508270136130630876691920259021563547097438219404681813778099422201741900394338893515899679110137956180601689506025160845231120977215463160513566485865120397041410224873030796458539728963746002258742858684505528677320874871749336936970115796380033975812330190653240360693883507577222160974949458207437548605122102805731990418022708200322594062271843744091427664419344001401202546089386003676261394553522005857260162293781501152883326792257989043890549407752991213622963764347958605789588380657078297829179515462982583044750201849829727482517657307598830582940309472288552346726240853884206385028298928997854294431859238298240240635712355865322705234927202880498518032505367391186121272022353740112980181137815940871374151472899884678952668567231109448923449546575700676174069360165160075704204383333395385036831075617701822641689886531425954345166745207436370092295002907971713390755815830147344757246871652340411082666920678048580613562121641164092360408113037098162768510692098498459449184333381362198954209976169024352580804059820518666281801815515959285730808373396893821625709125225651287553788838297089225298418952730952795390567387479897082339724535743959051129387791550697748286475254476743468395831639197526421285343320606739215167282402450286757183218523850517880269622461995987564905076579350001405539580870932125970246955498805069414604964556360635361909553968942327292007582213586783622575121108666104117092154592551193371961281964209262507236230777977854460851015098234197643486959455604731270676690531536080788378451640812294598939089491081554485239882788145470835126987649218437448746677142335418865425022161744087671075996715620901577006443330798838937717382201016528537598050474926682666396297317578285792603081822214547288738039895089351588788331032417968911118522157960217003806004473571259899974857230352788310689322008609483933589107953329785271942011130314414516796339038364120504179070783476024952885794333297496609997560152530374537622849497183086904983793295167322560109997436510871804217935668601987319701041500531192272065478751264469741750718564080589943963671641586352404125947158441671906893365845597302500561841258815475699299091139063049017727570579465162193621406634096612671295883447510693928190222340980234103356853501142302724847511714825267004181708105465397888920011969303441652400349310125809567946492480371542748622828026465292790319282113394054596116173448568921237189556134001099417648253031924984803966589901038970538649638875290963806155944367996791453161923546318684695557422587892915846668495085756405054851142629997954594677005565369023477536884626502757896302020923048978688269210654652006763026904181928452863955068564323588858037794263843335359372138158809567687534341659883243154204110041646487038871863446810191489061102798720844949185316994605270053379944900063219570062229115869453763941042449916877870358693992744817447314572721882363923839146470489833873626314123644196521798040728941175632686398438846988098132799049289702486491335710492475567030185130386665763485692552765165366443452856024703010710526718898175959632005700179394845494963021340693438001351903210969093652419904530405725103840869267190125050321893452875428797157886015499384897926317797822740918660360385849870380878994720595106261781476433081263584863796776957191756940050182844300842306551431957674470160228000389915462290124591817150731909778566892415433169105138791771099150045344166595407862602911531387296862449524610757542378030259801650061296819542413545536259032503133348471633169651043845611440979964553650750087261005476444660601480358315786459259729332516515395254950572789556903588858349728144715908838676808295170064370076607187247578290378243701324944493209289155372687066274513666530152887773769809033320135173105942269736774784464813620194118933956795742415524167093863382711705528189682074895691465873649813336567028215602032211238427264662542416723421361677493252511948612881312940867874479027041608185182622577880838659173896580502955829779877521121521465411071215958283951048334727043299525882375092658330837453233493556478350935026591911163700666239786925452555475338445125510385163239906672103624214002980744512153374896007469171151974252115146934655607123815915634118164856655098068994078455894177166037429032479133870405247322247113903846088928653119273550202809881169181517740717955592478681048477239571591687078965196826833485012982851886518327841389419280875253072863231764716182407951952604111481208017355851504485795966032987272869788577277275924753940954159089509670423170253128224526680522439837789231080974040468142861569714896800665550519121848581973375251522552349326530563763520143030335596914328005316687690872142597871039566570243863011408847414820485445050540022796059510608266655573083975561322554411968371428054248825938271021059703827140140389146956825383366663890864948836373642197692633713016942366513515636295290686476420664934756988317537099497751261898888307478041850069828000069528608633370871536426456955728190625062987286627960014137230036943293068113939708580971187341144000224076796385400543521109446063680328357768006765683465179540388959120568489778219732109109672125109280370254161718023356592490247131878888686634552902063038341210164400045890916707263162373100420877461524935070236303117986906894006279378453122459149976756370488188658551805249882203116464468722291360609034855101612396867227023352831782272908718926181541551574456095707485742234921338782375971773522974165527272376157504729066722151740836967534603607387232962141962322195333086020909503007815300020784493892998316970995683990038578820120861026998158975721668166059591874140054848723280887740811021412457469997592952438438928242805140546255669795397224450245862598825257336505934698564349796589935451971522004736070506491616231223728166697835404532161696543759368867408778294018504513487377150641880830379765313979007215370743402383896843424212358978975927539404832293690485155014701875953704113178531118281697315677511066982514538384819245084025329226219986312428754367150448707183528413176328394251883331530271441810231210862041741320519043425059811722605546056491786847010348484639564027550275751103059026305988154738323714036862382238056574830426525170270627967480027425592527526087425594525737783973432636021179843690585922104675139739782588435964557076904970498931714927587140355999396138254617900213354168392867616878136797316438911399165787139226197729594584555329315776419631687591338235746079494952466877177248049741484164596277531904726938177230638897599895464992389604601331198419671115807680604950940800681889336471242007306974659129534576828448945696082200630336962372035688795829184280571524771456916694334016562489452260081541338954068659650480950751458320046248813918182934083635069748452002131768126228775140187183309965130767406823014379599668386259184783789726244468346498700924858942054895394693991614680846846359264536575198822617809033477971614721851187406079023262390318662918126378772914920422528944607630509101129241192549448622465489341367512110879082908721387604810895565016222874647832560389546485903232142479842864653516038881925721107128168872515614039590672759798426833297398338449654027583344112754648307492608249726644819197239150189730693255483828032309551039996229767000122803731983173141052400344490116418864297597158248137158466912784777464153756690452584755288303073762048386784717283211776151587946858437912591264605322493712202712632277262852105608862946578106631903295466693725160191154919731938859577830980543474245234205402277508889181442634070565437559241196299000851312788325006162613224878657517403496521747794271843066265852894132200120256721498219092267512389949943157520560077505199450257806692498065489479534068278794040152778855454380932436170664196727840934489799183509268221436912729741151486546700038579188631318916837830137749475933552615244328256803289818734828548407580381297564013575273118481710981995301975957561439936246120092906406613914461595495835072045955046509358610812829025358276078506567840331845028356856657495068620059555422293761528912287406568581144694661681867587429925191692631280496135599967900716633975774417594560797670837421088906620501323393502102606429950887939957290307983230060959183610251010161553991307267705484797285434591986455460833061486514023346406472501546387108913465276457519784802522780802304127279193909440864041514694515577809136184150101467505107241614005960356432380155609619657001087301353290567708885782721389579346440054578832251132610877223620353476720383178140717268378133820271009001491505472716687015128207406890240025848893090614675634613907651736908774482500044854495219299479556579845260907359504868083256603128363270727195687688178264862511606729786051670795088719470324681374363954071390180185655234052070227495259903831857732098881111088101616523971384962292808806612492015991700452032082878019997961940473011099663022219229415933874941173969434975428074162812578556422093350639030925760336168337113795955593706628890346410674513321359496725044329651733565729106333128725187591831566346360145786607875785395542109850350217586958541876548928475991697076077038634532681777186878469221762585323916182604949754421290998368564519001519657919398137345245178359447456388585077527783135251258759106067564934403031734629852238578147441521764300703185688180146808811139263811400180858436995872586492167076065711169562136433198062046464736756180557022881830696466290457511468494860249612304778551565592314320959339583160262883086979869945385459059059320334798970042171331386997506178735435214676218781228980477763724699388759753154563568390994361273177037061824259733557801334903680615129335601865861479607228774491697928113365233839311475178703439520669290143856683261193393899211777365471605138553558920861759139963192014256441282039364187707218539842994776756312634338829110454167429965498509202717452902360851658307541603256799214106164848508633323172270523400682924253263717968243043735582297803489683295162498827267468262776278906825255438656221883602887249404934834433735803705965344794534510878963649350083175085756906182941431688296556376857418078496369995404542129358642807632930142515963753193569728492236677672781375874676176505017277137728123770289962083261239353460692498056197867148715025571995759630915993026160641623149616763958398781733184746214773623780584307435808854845544924343197057796135194816376954953418233883735651269775395945579119938375656086938225565047198981197264397385791570045715303303992437336379665508166595324006721854619260466842699831020684809438394512798837000292171220234959538607201097354688633789928961459227920487634381417425397572895783282174592475278014191184265052828254135935832468840808837172476803593553904668179151786431796654494999054390774844276791958640604007021831576630658418295240196099734820090332953832928031646154437556403349779217010933338553921396121789545186909851449625766755994311410638146941390313247592973678408551250057880810024302386541842921377965488501532360374817114637972017182700126308390283042354827604751639928178683012539839070216254575418373493267019695011900580590247369671758970928523407197751635680926676164955860633585434585027122585855916071508292424415274187147124923344638159617054222882957899791564831513970059365301557363740977464654420560813034156544346876188120877829244259619846707045997699425131186770268177955616190557553237749641140433591240505670940594721273660870501655923590403661738076861698194018585166091339006561406728525083608508286933286307618207287310638209415169836974847732937566421171304387895340885793847803826341877417341876394671797882725146251125711760186421928330449833286760352782330777396962133308129569914516614990448711644330126338040083418889828707793246425136361642908904844876146416566009256489145593135111196394624119179706910111725089975751045365472308799858150276585125869234262698283531310286527710103099924734957412156956446227280721254697321123922466354226681141667921774909317836096918557690947891437832020003697240450074249480570886003482238796413578516383916823545149789283872702518724642815093781545384265175181092672471944126014805477094093645128321759170401608154760651377844940468353614627489303607040535220551532812816721376264238103776283772757417312999353321416246317649995161402632001850030936848965680106828462613662596761105593691946103815780164653766922893955256420700901133388130261224783889399451746968933203877205811858907007192592001165059944078977572826734886656232020423667881449752721633328558502699251893435688324508357985545070798257386425502398295750195857379904548958736101745783586296151297150108165278417328265094554154612234479909127911587141026675790478748498738769900214324226496209453848335096292771322330427785512018670758502863350108230664766596487020936652110385686534907932224368262994472755463823650592900063911175562351721052549306026929454512408158724435716495677246035705018930983295990399326363270660291319458033060739423133214514208039464520011782048287783619533066075602028326107755966438831484549552029823122481822848936398642864534874712411769142574562284897093295914003389375611577886200364757122368708959070455904768916316477688088511770277634447452635581348950951206397012770362950293629411455289464187780227064956884451664484632303690551794094624365778886052237944266831402815973218900892762734108222087400881283420885451614406643257407588841978645935803399535304435929688459592282716830575290464410162377693220099188192981286145130060377645945764011132629723074496699550080892907895095805153408722841642270559307349004787796585233321189702534602491494012172236828908884320772306982151302392163969355245669120802173966611860363739707256764193925295234472758782844404428279543490422873751087097889921061916718025445767495079789108361838477625008999255622205766719838207503048238062345716563128040316634502736881277205767177226288948043491534141913768976657482790178897113959923843653879327145131528836948588384518635887332764318491965008964006668299947655832809423524114853850169055533579151686850632114925429902809730130990450725321495895812513719237557879553038136291741826300581241000962205368034522659640122145643365641737425515933332148588026336251162068859417892954297041865972390364938714883905309767169115968345461885160638607151528339838021001494144192958103230006241796141084298084945216025369478054206184146356757233450867488736319210371942030600494688442926991414626203844217073362198365227778715338964588993098323923591730198490085168809755959171258369097824150082289432072413837326030305938763927000208381438494770333726219501037239739169127359366933894112317294710270797591109825291696370406606360715451811879005815381630003637839834411498190633481847087496861383012806440286445576836468082866288460730373272502974902189104290429190549698771969473969056296294335597855762549434384921133681379669066162487286312868553368056355542648694009405175854491406405272284653312052721656394395281184200252686248912248707808550665315847552187378474914194633962319469624766879889640943724948428221562354492987624213586005249340977790131969886428248829772706852265618409853948635132107602633259187595927801226917777662391279405666949561683051961643019969986715977327612682992779261232392274707349662495640400546225326067655864224891958244612435058496275170635994311117080679295711859276311439557336946984257369816017314446538925643834196937067133335614318773189828023702374924876501712460747304587677375374588172127841188203903485653054395412567643088180356939464304639589022443894241660246360692246984715447993636859146985729452995627401207492220581288913498759033253601243075600066884388111468040102411640513619895529237531091650666395575553450084188974638682714915361842925294620117740014464296581183484577193563031682275040443731656353671072781455309955073916433948477873359714157433301748840133575993877830047687531677336585308765923696733519610875073189179101977651144682135226887455009357764515232533207668024301100550031393386138865260588085074436094789943444927846592718396677047004695968884688874180258671648580214813731564456333483274563884521007121172148652134123624650661186022668103819633300249554304316901147615436446516607954714080645546082274077481477117724258578781021919048783506155629601683820259176727054243325444112341076762707581105658756926221070805173788612639960032964017618101725116665416770114759734486493357373523857670919633370730719282748528216126962317815663828235716328691304262440341196414964683468867009602995480957677504647785278228702495074026963206502162323580682099129451329663047721151355266374895461466930715284020887144993052694061285409357979124265236151738975210872545288955970808567509087456896111852066458858024311609134272520324366008575367912116703785265724193928755229070728027355865275866858214635861486616190951153761907805812881131617442418858320288481145205238851720412118957879367373563363382799192024033172168885846875681090172470842052815201382689288828939482000873768628936991136864342617960072169855353221775338705616879503377251179188119743394169218037402009510805271958420273410898066745486555416699754328082692892122886665133956902651888652105262293202405024867482381237209761599477801795762288808047775241293267460948923112080570547319430362646396519351535191472079107165198805447677049406268278933143535124670435120135325737476278011919032887852312693316373794433599020858742292464710147075764670420436685105556950452307281142576681611600022968039437689976319020752968756251244177291955308217228462115493324434223894260001130000440194817464858243059308871861610813919323011915164701328351849054039544006304140991607281336116007223754151877124575832327018086407571762384870695494764874990237522327597048003861929812149855772240456999585982156206681360901714072527695021953541604894880777036285645943030664404799174467496448732193453211193658522287696927573110188606317265930974482608173263484853920461513069191751458916886360746308912060166820401545681729485914850971971339577085109260875158805518551459058716934688290416682575281735512563222943904128639699720963201302767407003314525283554766796684404888484011598700048080068438226021213922152546159884056870743614293247703668172928505382325114399632761462914340221557648614008705312559095027429436228469185444711830089854684514898054489010418203637731189732918988105191441490734565088891895112064041474539588335420986019001674681222358763158488858217831077928485878196032530380403928367950508867151199441226363452018391021739093166504839865671611031050355388092338759073005718506670302864657883690861424427425894637086107385464404939141278383025530910893529656960656962248623920064137547364031809019359079838195423458853397046047025816418245696421750125065820295242614707615058798355288202699331334538698955630657414864542230487091683580549513640793100103105133484622450259924427338704070465532652675190377625397700804817529255636230982365836204177931983663777125345161190988339360686006244019058858672836845999715394091389549600243329788734904950182071184724907675921711711514520273874931411450092311828365392400476260354217334944041994371490568838056275819636374147375677504386256490577433640596755040927676631106916807018134504043650812233917835048833100899292541272735730506158550474264843118739792828599897225208406826585947568970721584890541723230551727906696299150350661003319494581921964960097016299619274036200459427745693137391457240205133042044226577421352776713710793702643678811155682404652371558985653092871880030094238140309197315980532825662013197578879538408312582008016559279353537957582513523997394670055951951756124719859899651091241086212178907596523571896622052629280669238091748715900172805744760714062670410671398282373681621069965089496430715912475365799581961946375272591548245536822388582539797144915155068654531084393610007975937482152088047554886655066869309072435590639911185909513777247879913688623861402738545503106868154957951949856741359121740043557073068572250926545171972716076956624287081419051645711079819396082976575716276846430875632103333694438610529276688645100119162529161817069062559746232419574882315131385368586517712815914059516533958021012566660606190500975544309078996947455198548268930042437401231842045381624051502971224744040921986230809490910831067555746094003678246830524215016951897216666922164852677853691451614954347346157341056136197906554827638029108762877168693585287902780612447481627167375422259615320238861587434111240567633525647291918222070195050655197650441710845678844400561809726783773262084748932296336753519466359060870504922947723752015309844593947514454081334693577069895056132626820675494750384781641132475232924458536002934647895965851982962749815647326321202614012237212655463786227369880876814258548418704726145958160727323926784428310224677759579879995817541223506221257126765122286221695632017234994375966811894162401681270203980652886516008286523996461800759614630511222024631431836438801243722827767824981477298276000445316319772997651041406784156927302236231247037792870432360504947273840760751882976648266899436753649711697292552379592224732621776287084444471725708395854170805826211296698075371726413791320800930556677047706778708542585687669422351335910037285396036086852263291415381681743714633280655714227603449906412894182062730550429598012001197071542382818086826401400985790094045033309481627474442439106146040592231304674623339568838486661952111638925808660338078309653404732549318667422737083802704403427576869039437904204108480322970405050356387001972593151500220615592578936272958472816688506072970538353547340598608077582538179507248267729214834545474755554686753752491404704365568143094779342978591796838830682276089480727745832284283901236815645502022309529610290126263344791305706490954929262715189628914919694559345468444059502005708348546877424458626716975674198882279465840693674753591627984197980209615061043104222892815334049605556250081827623544559124549763356550144030113720150885647178465821609886015681261539597203151543833585874193652413767096719004364551346409735881227613352353271109367052449321438158282969488005574525905271178102460908681288641043698140131326398688230818225632378342863650557207912033904916312929379828376701881874093367402081846609829742016088344943769515029059080102482514132412817502495860863739261389727117242019151615692735194927744672221909369062730011641382588260280916801910835968989536734197485489577676028701363827999551577314856024142780888485572131380085740430554288753439296615004848026879022570730805410453594079535727606107254020778755231161336197536326091838776078552189339515872751326973988603632325503506870184194482919458364840935334706124078748457031117158629844601606859775577065736983768130954979309981943012298851363934231357094822467081547601768200199040257712240785121566259476928360040823339945276148883536192863384871425237621910145661050069882995698016625433806256429717350809912669773164436302591959703277770913442632535672047506401122248661315080979269439587367107803581964753636929213191466585831211979521818015664979626187993701190636204034966487831296815397685827655971339179089036795295977358711985170575836101692073845537354759289003968493717758738090038699695015252504731625236141903856627166001254080288727471005834940851294260358092553729606321438503449753323927965658823500714206811501736411885856731524134051370184045307422437217323464327459140658232550720007503055607336758686887482581556008791946678423552665835773465399873920305086754963361750495174228677634563828654371148203879995378655373761879775101952784235166793568235950832376448143407903678653732878044111869245695299006864575448799123250844547147226107391826141594120344412640898201785245269402709014000421648598766977319270855557484095491047768374377826775829626682371201855300995271626244333955332418559120891789657868048232284076195760227804060178408444808820720642538222377606068237304263287655030103833472691881807477784249180279355725462539330878727520579617863572586119538492901502562647413382348484252462162362749823538892521616142194309352697111774185475231166810926365299241281743466602378882452575100965344308643779776898972253627532739213006185908745796558994646729849508811681388447008196913974736324113302407384724188025713476715455479372828087348405091674655769275249726012205748803620910362067769756961976254753888553064420545469884859396366284850642330070640419660402693624565092202116511037527367415035646588314822885785414549573482620622839945896238344740289021619447201310955109532304242983334139759340708113026195282637975979783525023613897929792874184057546463023107807128184112032041070141596992239324087795764631863218381595748206405523134662667808458330938286751065983651479285206899241828635700226557561501368683303682689428945908518208415330257437924985102233308300148699763429412202100535902042794189068284912422597608573341125160880553665599249946537878365147087816328082823573726861297289224555339469270729004504434091309922272533742498920823091062651320867112376446857364340627213425166970702314450475633539258826089343406314727148720538312275987518897586984335616790240630353925101054194388525387313116011498836739609171704756906712515072915211674448870873386197690109391032088584140834787505599542329200529349908373941193606082328584897143492176703750969217118107711322594925912926592217319093111074855417901688189786263673297214242932181266686802249374629633395680977181543790242095344429765275579982105933363882610769740908968676116626000957174191373329524606234966836194630190429296185654936795005612183312182642009969158290898321004778819655582290226685817517470151479192390098921181532039772572793513233816925221897399084968383780585077827054628718654770836935747320342637294536345237681525513713670518045151693497005997368416264931445280312901393303438457388021259736734792700504945673326897946651457000851372977533400904051940219726751927065414655795382982521170774970873721550881486164721562129597740480247428849597078716924106618418000825793050022808783150365476585635835312599289321606672853301854308273456640588945917892797778424484290391822976995081085750766369018919853155247524888234797401919916769179870145546760483997533672790571830665163724433997958425182621389161621450279828138618071339095561132621204989550086192954942571708406981057492698159491749223921274606145143733473221453244204779794772739662430771798305892366970969098187961949853089789996467269551970523828600225167729663871016494109275026274912712494796741960580268430499640451940625210439724368067529083695654261157446582662280466842026752787745001997011169721288746326804267694883035378049950088567984393134478409925906780153252115724178149415408313561004753655590039193809135810579653810517850166542720837450538756476813692284854339831653549701314501882128636309311403759238139896213797580400820721576015413840987311103117013276579802077289420813946782528109310467021969149738723383438748235574826132152186066082314673724517144294441977159754981531743570367408740242192411349646530578612277563138767229768585487425553797573494194162606107572929494206603113790401394180354973057430423702887735739877510175988791939343683695133002124600856139221475047917337607343869450904059546352675550219910297380248934549907455669894457282463108745408599551276930615736081032465800680626298083594702838359647757860715057949851160052307572859507819914728493115367228389276887795777151720046125798125113214719865891938041025058142488416250413592045708003688412681641193029029633640216240915489532087184552058475938580516729787748066125567553475676297960736852721591652684471700709240887925628062133862836922866426790627990165358185467823858614691610325610786085118957132119982553195452209383501349358867441232361696591404671128885720750937440335449945184998452803522193050362004553424769995216400079124236716542027859769712676715792269093674331295498946416514921295477083074837806578892447684482172659378613280804988188020427629133190318648483787575468600403286873847658659663496468667203826895526883238052756786886298749928354241090455431237539125868639667945189476844355237485806419042874585879087259541911340965639645415452754659306647185562165727726860400356418878889799568175653982347462502822269636736724424804268030258331120630749427648987688567713959395838524177347306431668901293511150964108033005750896056832389865606143039411750243787365328560583866203716039347871086516626965009427012984109292777515375119558807247742762818855938945159088418042171933350429435161510591428055215914917574697696381206588205512808794356118917858283848562611767346469557423946628346142286812365729133859182633726324922195601811770700542577727612200164308232303199000511712567309549793013975078862671753622886893422660906083660714350055502293344494585962122384859376567467286820862869195019664961779957663530719352719294414842109431043582159951633467913056210282904903877209519038202845328704117836549735873456258588019790119067268901791436639605732918158869471166490637139078648271080401312117067925681673655089706116420929833358847056383606677650333151528864846179152322706891495349847211140064811995954905379431579844875450117662732768808789175729446867118298779286874088950480462631267668924312030223348122528860822150389801264049973375936378351514829178721783619352349244669634085086474813532667547942757040578606891857930582570202736648857961691221032016075333332831821692684243969482279546240107487758614088832775039592073397957286169281803423298848905792968682236568554704283932879777046735923421768421970579503074963928338564473176554992939233917954409372484905685784405830032048964141885144712091625471865290130569427084085216985536239381035337650403662805059300691619010856031040129541893887410158281167526037578456325320244351926430381492735667900658306064330028021079419188495640747829905466965033573041752056098858282960098189623181327980622697584782469738253637911351666724851232542408895252248180965629534182048631825175191394252492548783546291511796849332548286894752618173838170793283000737894547774682085119333801345978694717117961277885725890920973366372329070492056803635804201126494632093160409700813130122353282175751143649144565539159111581098230034609411244302190013286474546788899083852932299683143742820585499028421410350090464947577585834241031418264065242469293200002054613699260304021647406419631224064747106501672553231467916693586530954460607389833409946476750165713719245660367873944405540624003804455173502463534321821937979601411188741078627745790016814705253822777637138825637553234937235765301163167246928102414235648973960952678115858282015646032418014643266281851611544024547548247937554304760024952601115245481455682182191339391278217260251499334385352357547482684758099343624047532593195758284819293199696135597238600345312819810147527132166749138672247977527990770973177387951571215463580261425580058750557063014707162583884783852057181619497816363995829302864754093941526000773737807486092157321717156944163256930330595853959946683183965667389015489792326631881401792071298008402204547845940903919936946230235641370752109402021909504450942026192711080595055158770449243078748658156523667204848068907818398449094243745862141905199883081791356133668502102316495495926742873376325013490871736511269197716204631550808627192627258217260098313089925030662649482249378709905159502001658678835517597764874942575700031544759519495052658568713110025573591522617300846212548488152369568410172110622318637357632956104163028788625222383632065571478270001432673330577988531539027740692012468806321659322548987392932436461601553527897419387209806016897030336899110938343432658768180782241500824911322307599179220179356895037920878164622165279308401476291245796135481854842527103616182584596737331642288354693496655605296343540420761795292702814556354180766037007393755655781875389037449043576642377910539744035116246292589357475100849160421704163693584414637682797701954011720958441989225187995902217757804291873592582117662176999354443711327693715898833507940469886542304517068339027410234575555924618551845782866845356230003579823756444148719734121789785301792439485672107128042798253081446326932435775576020824113068000504947833762364472978315643590876989031826762174330930856472267341734955752745247041048280235838825218643437023081510119505577518378700087304314844057459968462884180180984262718644809415921215035282224765842691526204766537514466740613931287400822623251702305477687099552410086344693015105048549177546095066471312908704513538966850449789756807175522920073534798126250341184033619240630818255595466660468089170918477251949152694090690875793572940510139349132271546428909540689395299986209347930860196318044568054160034372386822813349497173245506119423772424469928699582074335238338077503924908083036821205912008123990230111439051482631730082907401216911609672073136603621108274394596067277700815756569070052954019384079792467393996735269622626380943996579512819048494778742796118523329903557624441743332369556557790893024886010753471025474835574090101856848343247802040712017431749894710744993365782850839967870104592398595287932473258911879135286241827918558298922554073949547578158691211345360145096420018603990311751448612184778054047580040647178484573586430533278547851792813105695284967640364941829700242838698318968071146060767225405371223875759610454725105303414174493412604218288007179277263518507970058408870973379914411134733115124963729643919861999574810216772211104293243392110175141200812697128971477362646017636416768867125966722294755903874981599844074299728648389243887066288218169154724588951710475184392043455114555003951316766645164067940052404226314033604907015632420338843919200828009767497829184250658249909894676490306336065467821359571667142922869539553911726308321250883816439266449675911750364462167625785505079291452601872119532970601659284941836515446844191953117840209353652271834729826633225140896679167935774772274899185365271816716256808604482480445392084347456561788816395582503252045446477203641982497125348216966717983361973349906710735530789525344514636748709835954018834534602513844559883038879127092270252481207690210063969474150241077897772252280776572203163264682550332250985448246724685794920611907167487839523144001174636360491428482445568275601467562573363985415203898965169623250951301715092515185395618055496181155426415718544017252648993054543753216651429043222094660633411477704365755011803503918254749633229224589988592441499333392797971614798113129899529353859633856784128149183691538862530437295273145076028242765446166077404056477463575213974945293122564065927155311889893940719157925434257690135468726570832386632199630875905424430722939004073143658686874558731810523728096581973473489662777876188151260425515353502057688562597112824513669641458493466952193435158230811504982043244821601268598365654363350693425104671260386989406530337470749020893810708470936024199060767562163296542156567119567850795017940071560489756484469250746472426083879751017289993512860451520711145909744930738983530704852154971258914896073968707618820459657452071298081926156701667978672232081530748563714213001377476806325456528401901145610753786595180534366084256750091842270729785662904957594052128476664175817534746575551932124131890540106146135741352868063154814485784736298386471947240783260242361151767568491950176578750161170400863191134380661623647826276347317322384836742725976913447776078855217400864906288118987117992158909270944503830489071673178343206776718297850432830641630867689538710104223159556226267893710904271198972374692367552680214599747161642518510245133031742361787013173533743705465522841957597493523002968003200568663110918118775609313102678253894598744392676678383664813143694845451282010612929023818860108419925745918467170299063630525091319089590918709668506085393902705107155619973140797597583546755115705137227266926113853196773010371464307056802101845141270435011411031184525326698943053106888204646656891962737192552839895435874586770663436357034315470519825536790015206098551337254078816392048418965232160772801269710789072832633263476907131697536320774362749063961912179659536877415275733163644376363752826526134828667154559921857493412526824171595148856549474166305347705985273968013020562370214752356228446467554421616865875271406230547928085417851748494995085989948326334010368271375873745875913552850362178664454804550492246388256808895222650554981428339055764306403536053397729058332178142360199617513508943226570663057207020228188365234409018811335056600527061117614678754354564408392696014788791368863215289192893234490234867675646961143737049535303636650815257410903810303945344859430200044009585416021582632138032940868101854405713743670057800644273394873248918989515957960710316489313964957001296612671808712339624637812000100997655416580683615528268522084996050150615344223948211379908210253237180024882916286140099139954669616838807624389502933497234482604569358983379680800250846031283000877005711020558246570758603500978910378382900995443366164204654596323083433398073499544124119949606989343161618555498703037015509731381516076976006780739686298234024270960028712529962235057617369598128065615079035103002292067975666279080180046832470228626942544563721877258572871692579110522132303554220505339623802864800381538960604681724556718408665356933874559353672883643503631979207235290960185386159014935026669059895130295948943116650369336377724300888648520250434907851646937766018240856298595504780788347920233554069706500985209476186136620718224819965925767948189770473300065930487442540546609289765140259613620914193635777055290910125951797698552406185497734004822152558243930673623809165118089838881066376221341245498261023829663263114199401158936809524125503252668644390427923714105226394517824558448983727486959228727927606796199391715814700444730404193373757401063790949578423539200143667461120009035823475928291545873972664716572950615039519046840477958762431478428708484262608039913722269275373801247321460872604694279862821066465553854602250579913347532225788030385502561407639849242056476895546099546579279285555649741076952587989912601863599297873183621287123572191201282313969866445791842342412275824821750247404175649134704624409179849668255518558349963594758268273058181089124509764827256176816899520710377027900878207796399980879286397309564303540684357231520879278988392769645654623893532511348453255953005064100680340050582261090582539614270546429635605120677721054379418670242841903749249565003011037785235159426175246348742732121283921354087926941646821891674259061551292100545126231690016768357574857887972862485368887216070374911997062510178853965682451877159301117629807188737704247845751112712334717034407456994072411718497157548265506960491118408225863946754539657371166380531813182631143924829722644431070984068411832203439267210060092719767684610104605714986889313792657049498175692526231539036655189619537391102295375549841926636976429332796509709430954471835273452752007639180085491438107842662483350457112130440357378160705491155754215432646942886038816873326734744618283942615987292418307472074731760421281453311830353713322594575663122440067395713319314661958643433639147675589565443139571618744842056910464604376415497266081671770597208852704698034521304132499372974130661845629777552892466990860300428149910361354095654256898335026593096370514733005590134184798889737011618021750665030451868202382778433405540988132585131422880063030173640334718385580900284981091026447342788020791931667643231707592926533194046018986279790683167891492653419418576070711620591360538500058182339327570572236890572546224847449930539065351590910832263559658036134773565576914142222747050888377534425425509490900123945301096947430236154433714762364317563165927982117083093313513101286345707130430987070163296348870096900381915513510490302899001703221757586494082769031524972983416435611464019848367628760458601812335905370233385157243810878363366377143297243617630556054291891403584754006708861556265398779653229591630364155146510397962457373670779592556868641232527747724627622656261722939389439204854683730085262964126001063676255545198597654617350764515348713044497743782911749461759754678216506835521070080432776036597075438115277501403123884420190410654886387987776558330616946858150608528372772190270323520614406414862274062473288624387198218234221219773156729029560496193487771764228986728917429496396430127779572620486502878286689139367166728368639656350097194803671332105734265678800463517879398926186389022755370599512907630928651808527551500658520391290846698071083906899352815895900163811199836400903142908428034313553028241293300844557680250195419425063464368803077363082509878714080846976101688620655703579181458928725646115731865725134945657737159922858372302994494495500058893991676213886014080615909819211482781925379694729449395734597516896615350386924153140476069257873541354252876755639284229839182812921407718069414010042059212123961756485307947193118885871243782169540782345423980085360922197153588639052273253005020474933387007054797809618406940651459159165788350855514531394625087850884292585161902897514954885836204745739675460602168463306424228586273598327304720046696626144705763706723685205739027010923441111186514222844396296592687637340317405148269709989427308005946642914156797106275952199129137915057798129562638099606116849618417884253009674791858767638992427660052220329764069589375624070822828094992875911624176071712807075238496703005589975240385436544334916390795976187579274768006274816009289574884115197962837738265166493771984993334605893190954147101721567002707827722745756674106675077226958797750016361508975719906727591942891991051974582751601685316114823902526661268624527792012302448673682452142240056630786797858834944508157568329773644469365398461975880968422646558413827028602300133583326317774058450801894968331547812608039311459827234503540769778360134963771406159832615152451781285761709980672913140195359495715093875653203019784359838223720400049038755866120217022395738267680843910593149028182454867869240889629304434751511757921665093820796501359406390613048263617933619175961249927858466709600698054769340846902245967023737197261578120732547015435212909863201943863164441192160865380540563321648354702335138020125063160846628756303697953711462691444693223848881172142797074994900289978061387181616358414992795988712050382894579535125630723940019759052863092582780835846036407959051101541196330040605916514140942229963003398321187705824883930275381585369743859180154268581775323133717642808725696197511181585465267431956860625731657878805020774124064629056074684121280030368222390237982112096459118098793086192566988489150722225730803774048706270846903006372668736554126846472896466661869657148494304762783451518274823591374840184352265808053050773601982410362760089473738592820336955305884937818752018656089005833726962488877849778186952390182989329937869086808082698113320155234557747214284010829291826329184015104931459648389175079951792107583077243058184207523510906634471919988836048835540823282775581456461756831020122106122487820766791906482372319074086346453468044098763932988400129275616999873607539221622231170089193017704402611799179671617074856305035715630406396101816070924063134827709459950182747399925959502026434032166196779584605084988292619392055911440227908031276026873927997259144127438820262615330031756368113086909892634420058912743604010269963565591759746699458492989229548373441191042663571584067392628294954453287834261478123493716236415202885696529248657702118780502906195398043502470030831138809727717210817175298486310029568033543544363360924776311213901414218506582270980285333430395078909464163474987957655324852461862514664555747273285750411511734334691869698031923253577474560647019738532417871082949654269980863694896228284377243989977853517298520008673486899001799916324100647803749419064885627587636194099906877946574524205546113043114306946544370127811265771030415712002689184813081508826691259815808400734409930579688593862079848251470881669114901381174360542870351423057336850156027654574586266202255265537272070405472293329864544610884571849284852346900191263347894985274527532706907390966711086582814249623530999521838932259809286448560583750911879230108956004588293949223831344726319253156398418667020864186194214344746552867082833759808069573754433178528413222411251746317483365007189506863410655225574595795534911572938526110359500149575959837775151513060363013969158697006477786410188050818363483093771306098178232459584403189422353756475301985600947522025554471401731628354543513151629690952167982120062997149441144391300019482877683320083526610470852320187036588708989482950383858394502232275323802450459935577614643372673547048743112368364523465092785883025587195759540961187363061002625386496029488475235456016018305029132564551296754061132067153749901270576571934512385964623888718238555982451053922689700898151750425526131128423705443055039959031895376872479467164868262301298138307201926010775504782409654762757123967342002726397567198988893065418389993696129430806685038907832296715255479873111617680737601004899496256980115910959723774080377109029996348219947522092371417725605436177429720977485135751303940482513345506446207201178277963655993226293786512960396518018264196783554111585734432953577759115381360623044265117037352447232160370942654733313285873919786536979986943871285627556949891958104291805333663006062644177035222560973255958932771852631195350282737822357303400978275143105155105863290830936122731114252088999118242210246266570788731939159955044644911417383053109968206215308181517749862666983664354924005801766841800682667656674486999757384702005759740367912713559332074287522286698875608757022812286669450906687487886157475727636992394932204259502264680215657814862695495188533733650859865343632224775051538247076161408071463284018460459552207421281407113392978733019367962624438119977082423127028180011854947074535860120939666701587286361523013075364883431757566701353696678275321409130824231225460286121786526077261301369459552465882947635863544543477843249266230037794652975005531372364276740110957670265212729380864290087638707837695575121486891471003210780526897637787417182654785444323923704398391013949442897891002561210051727952596515768824029768013746672969681739678905270201356124451815933121887538210211680148918551665535546481547016784788799271611821532788647375346370200752226138428062565562894348986284668456306540076385826968610723833651838783210286859920891664757336567902623277038312504614107006972932983455377188698653090519702862922133446705657274361014365649229263355557961326099856902708675403536158308580699158421271418317771646064866281112141145274422340138815931723279150232980378560315225674155493790757767304060905265829243716119825793253636696772216575881169256667641096107899570318401368354111808054130016694157974619938416225968367121626185031520121531975586393546530081023086187915876367535142577466258681646387340477070544327796451799825986225482130931795574157629791438307324255991633439678751139722777721156412378501681848242482920615006806516926494711330992679207524944903599642413335003370846474363096644359353549991853734441123929421709036144316898661916887032578954123013193888502226379048046934611122029951129347550544539340465798073179986135939290802644535546496518798834990364864254136985475749584322208304228375887814366077265135250728927831601827878903630441926576852951861534863099136582828936395209568569733813229312937222594346508637321843470007546439214664419308993208541337738804232099859489436998349411060224430268224848693535197202966632560347220091828580193823185272027089632053433862912003611996784852083922376838370603644913819654686892458382723569311393731847602925457036009927217663600434593498928176408552766876900609974820400017808606574890134745753125700874549699992511396941340767689369399408726405027202912234930171940330153365144721093189734772457637567152979939128428100427181133568623380110965521916214585374890046296311988090210212962538910617730127638379069022274794012665586243155932587121675948157158804887649580973819457906677666588230206084835277799350489568121381860107549365668032822160245712997232651182550545797960208738446192281964826609855431830099302124680123294592021736635896745147671981146301570727768684543067859057683582898374618105792597990296282265855710511015266038683366689494882202884038992267059562436278264286536562943208747451212649517293830919780997666917716698081077137488219720164044062114258628367852007614944982176104113926120700540056261544800167879190916558068332457838006227443928807891668170552745278787059377755001041095447931059354830262493003171631068454860382723600419172477275076213937202827517743034557206826191839779886153996886885869352457263913650538326712816121771923422074083880303829544894416632573514959025600135532460261034760204809907775059689803644477188375853184784536052601619458088147656506230368770357405886460765697482065285086203197778032423314027352231340785875490239405885006499160182125956749259487453004631519665823590226594232605795952120925637342740219077980457344221515029988542570523850701975641438576190988152025969798200964064508375301449513513651629409808501369301400604273003957485009288013487343660156030377266272815702368629406637971870705069337448372759338857156067523073030060928219158484277133546829241046209107331399041175965656552582707726416000523215202322394839402462687095785955001946531576244714952652493252084468617004086848592373528852464711529550872013752265700614060105498429897976522666597583372856735895116546305005018048596342607143471745827352703718893471684795827989514963458270236505050538856418722913563471019562114717839493247693926021864497621636269429135586820842804565954337042104776897939234551929052390463215053276417229153414627645779537974212153204827721005277676227668999644602572084591534492991985521617257603534106281705587300109245652588165797015766178850005705161102980626481012239948598324759369323705423015807875835334397505725701305705852856982383818920609421404219529502828390802451482752522506848366736833100196808969680148128049797169453164978788849256346129099882903207779322699101020122347036753809626030946742322294578641204663372699031459817439477880986542811340126750875889046390168321766389907928774501929063488060006412085571666437112273283315188443150427549178544215418903662601887845035233281977892901388498308665953292791695092174259929322793084956024713136179323367966773155843338066273479841544437950720103832621936293754293753560880827583123900799063444910269083793739671626146263289854099897276117198831622838029697574544241840979186806967597804100778220456215464285598790717226746686516791895701146170249628064941188697946740906127964980455258393366385947409610603509921582002515148420348691863797679051749436893144311336951584588265265862335786685942684234813269804310616626501356820853964209659058762984464532783125113493261840907618103654969598111382194461690603403705024408406317897276708686804506505700039054688584295762168224402652927895577375885234936555124297025439033792297514749790981521348548031982822893894245619713078748521385189034919538764391746610033259069654866650730116845961942184741299887105453757631312720735710403274516810699021349005997061477760152467244091669014832116500668498728622738850232635019161624694460615147921510603833174679846374780967632578032961089452144597651972138001738736967601232389740758620388991230007589374120080988375601615442414497885447200231041838475772983217789847474093874835997804146978397957090675612117135227541906951513482523209696746460517671406434745629610778200542492683285831431679646365915396791026718270249270649490567876300960558355376383454621325629172812148162618430710806284143415297372157143190237290013301996617537735277131249955963200207253369418002671451780958478011287960436444396285748365794967851095814752975553191857018029539740102308253687857518984643419456268947370017065136820546106259663213452803370273342657235166084822141810926242312851118896849754860019502603737915796973044931879033097424781652689149845338170000123397563546293172117594811651092023483741414181091408459572094820182879455400892568948289299537023058044086647073909501579320190697801287475282210855122622643049999053488104232635932445081694853487221294314665379834365621109912635429860407530048852201210765206723618150246805962827465501553256630647439768696223694405740369756413145274127147578552966367592592532285417006349260847986402226003216822751494405744335791206444298079924115798866506069216770181309182715277113080058645214436866147930717056658305083053857142757098180538532032173838699769124590595206083074196686888529316577116446360860655120619137066572258085907755876520482940796611963554716366502485562849247649208529449488533185977220996021074202073031349689295124689030162042999715365779220303726079984502262509166363219959667265991759554137777863193744830683773619462404666906151828353351555133853552958492159446752756335865257058679856170935455312373215461809806400378927992632653644613637488419925704110340450899571752557436641800301138462597224536649188512643344409690942170673738372343621823757856632578743880222458850004332787702663556954601251632592589935510578643537385025141237792162174542651192653499462686242311266428361480579267994340729514507638798374374781852014815945147407064281388216597433368129232143599426530501607381695614438086712356750570523482927187730602616023563527062550491325794729459881625020130473933983508890432969030194362464666234022052187329199487141534624103804446595061176032029487630726798592359762797253653387474695756444173987454400892388450098730345799508781181175920200946051176087259304325378232966559863645609142094859656569687645889547807401168903264167441971724479437899249188165551643789497096175946261979833996733857335245445213357695529109270079715356932946334638995104411684446322750576411000744231432720183327110086030546729923516525355256493641764412289791249444377503375314411543263082478087283948709891692910481299116732955807308763393463712887326832915472834339748392718769316846781731730901487457331080228333007825787876307140707381462557819143375007058039101687614169308005372325009497871057934918953713515862087699430229682906980086898663600855731164544720903144654517931843725699853041828012937738850213262076263999178497004766275102033887652970917314690527920085082906597312992339278500100940184783254730017574740348046195743854050517923930086860691402455514583500040918267910717488255488144730164085996073887299826989646186111515099999466399611853155113082996050805534156942040884811272242449782622622171099950554960343369286850639259416201840070865889939528040038559268176419131239444913239588837903088653529431585802313943567476722592220321041552448304853387847833867269115844644361220549673622904362634675035571282619750555962975025898326971207005959490867701992934344616503717796779690888285041308689017046007092835016440545033589833472739759012300526715399510412886219001484203619731933674205781978851254572316581634022419098817223796871215802589172638106357118601671146640832801010930139946100356789246734953173920425698305417973094799051206131727646321502685932029624842392173795187569737523425606520264647249636669448357052717686734601428641406266267589099954126939125322739864000432367415856405405017437640721026996462359910673215353618255177413958605948651199132306460447206851943117950522633370402974159058976537677711023988512527963254394957019724161528224758669488019777315724942422118886740826458807739528146575783806124056906345002777719466222636093225182577991233985827866211859929581000372772839528696202266031019592231720656092064212825984823018205686195369229801512703898401042880733283512394018925573853205189006021620639560137564963645655201302468039102347272115948449682016497384249773070123180202467817974073913090702486346409633156864207871952476550897644042265164971985883964639232970463876737744646929068945175118774194687267060486969703618594127104180669076537989944761744475053010610537708171246130580253870397252636473908822017532902801073426238634499724396930839494033043713811304425011679167936546759762953622316221567574587250088586685611003546767799237028233467626265706896963670441120236921542509627044623510877428769314647742081160879736146568769564939972273337970926974418797219846015162598707333380862227710537111692262248457567572655063871224274916631976199363661712931250006214698864087244266628566258403708165794500004171797087889545597852935649130104076329844531816266154546103222230202591896615222707821765969125082862810737906923474299054685925033889271287934690597299828427289705539296334775593770780608423908278847749297914735743380285573746665065894830488956860902023706852351407624308816032861281032528437212500951991518306585310762349412233189404252754831606008024057977327721396705490729200119426132501749870572453830547013550594613888090002667255606382134664930129030108456681822965097192059393670600314546636883354462189483146254389088112519933466712081820177318104104214279507312933237098525551324712021852846658912238971052860605106201172072753733589216770673915396718115649971795872464489239543932047025538291998092189838204619254623874030103753367468784651811226472977744178818050403520317871172797421109347625090581255079232935824126745366719188127658174961262412276326565793016463363439955815245493176364178003839013091272370766179049028840936378435801418806906611208739719417266609810703799690411859307713531349494244183960810210932115372947658261436026460385260949442908201826815115870694944657408161284497699076112019187948494319965857605945121481389574034756765490007997737027151441488055472999062261730205352133757935653371735454542954698556016726745331700000727472277504632262497950614921949778356763228291644648885314743043351011995964451501221164188663650681203791426755024844208510991820930347303455164963562704191513906390424730282393014255690595973991973793599853053490713227504129903849480947266051627001427081242241805707532479528313897510512346736428023650123935764084578099992368367243739631172401897698183984602767505599959657158805277749940557399942346554397315290356101354315185054791719923511578945215961075387314472906123869297489266816511343853269161789542255624690152453683856679947223327829744924086732265129227535044484954628282927019072331100985553010811962894707207642936024541794634835676793954788511480859103736093830479644197457391299150943434575262918945282426289346467680778268512742372926703591539928599535206338317252034782929860837243005591435837537790009521089366032635590267839074071815066651531157370454014503876965561156888427573474143549374167331507455829679341011951826959590423017182168712688781846582820618394280382436651839321977105882504155123732104728857699719612805530804269659596154638450565646615885591389390594121428054369216159820957725133654052882684545731136750663497327226077674526804251212529936461826693310358517339328148529581890766787376376015511371735994687535538483464990121309167099635319174056903878227785370382083109929256724829371161386867353474684371609158340989376833940089093826012738354182961527330690541054170346530582397775413008140088304678258191102638377143320743450104850631780043035300611172669682953342012056043168031643559460568954365281895638700115845631987792243252230062401512882179547751353340840139566543363716779064309531343754893280072194020768088085793268560970233399073554905110831412405767903020937298127980489718189761112995395983667438375002009594974175558544380729799684713963413776250847308013782230287935223970267599540260935310720659382538469248047827880504662646719293539613724511237819689349290087317688457414138116004335293081720585991414337654512538073145091955463452392010336953908736726211755040752128374017889815876681537316738289353504419563352150844228707314844525633109141164881434929442821257916432555336051149591820120911016400169315535710232363636330026883173917248796995752016603653511170452108029076798751224174762852939756487848526178859504397829893583962889333110132468495113959652458894950292746928381301517578433296191367428591592841280211012575811761622414835473770574229365301519026601056115280383039641155812088159619285585086582741129087805974561079800551214131084541479690931729045464636834641140925420365168864269787384771519780207783549006763461420341492524638951835617940461139942091841724966692719603949215460612576518012668365002975170524411792210442039883426280174533566252992700339732312478354282480278620141816058370638190530575269964061148052157831478330729002895794392907230545596183550728035604211439753072392697007157992716939147226841764640418936430854736901275166801777729844886464735016711335029817371354598331273734475807468359604094135822598717738201003696565596223185394410640387316672836154290072148666641632672317885784211637456668299201099577195032979396080063843249396419968305719406014910417821912228542567215020013550769671993160766587344406927961924799721674378088679843419565929518254545481433865977035351269254668813480716487043926878494307048176210796146283249697107835972001242256099767034149368115562989615088521349833366500048407147105090259771215706007095877891237376338303392896593583389330243029731354462951744314097810480809536019076605252945688928383545619593050707058261954406961452828048230490365462435984978373794781778267462776855250433974018493967542811205866642668341007438672731313540487820322954597261219449918065441602341543787750191569731569757920712342033156774858760778563428068026661580182407665467882213662348291792603414121046880412851835520302552907660831217901289252945554454997334514909893588855531265927775458004470039025463619817927497101165892818445340436730679284627760198842453250089865456384982742441965107428212169345820818528498914511014187780469930402217892877347974542424851505732570623333024647841192922675594456356077283227347469441704733021103056547107185897707082729743493516444428642919747025203485620324357683175648408244612418025658800665451486704946185185280093931224034525545879118879123808299358964944375375482069080124684812885193017329085983737294515484240501168811048762086269566533744591591276101342122091107942512214430118802401445368894472853260598719710071492606106488107457083523580101416840166446672573923415912431808374813695624031716526252875366791439286891209584427535087411208766082983531845264899363951067958348492457956731935083752301012837877243846828042328639311585201005458443436232582817259644297729160676401268198633999942007690273210276992858502270437496360102482239162931585803469532084516306706086364483329885091554631338529503191328221853667372977172824953704244360472850220732723722633338280334133886330947188765559859442613420686774926462685992321102735768827289190735374957281125431961886031519318332211231936944297991859014442554604643161361623037932815988334055619857879756555068576269203182507586848248361333436684533652578830165209655441124236307526323564939028418802841443229768492671920731102676090136087766426490843675179218016887072971263730790430191377967822691424688861334680784728831434281700057475103996487288732482895122871280221101725468887068820742106276267836304315251729909497497916907009965440824105899760154397658849013100890307027757923346566084869354232102098069916822351463064544287395677108751224487529034854407868327934349275715759243318255762403541381874258780208702539266986646556411978440599874132190132051429470553544776418086392757582057642348706259335303527842115310271942649975705672719269398011465685772602693075551825911241373791331966811255905616391023753526410102079510300562342300239687331671244412411711644754222329404443520189292690360671518704623365976596912031000174144055453951472151045351201129666121734234881730419398757179686923911374135159282281107069926087017669327771717118208384356224914362658347224124989626553010102708593170032275073250569705975698560707102787454001486147079907600034750589578225390552497592602082537283780456255753588213433369047963299632204629906021395392072899127479902069968150870341367462192022379290677599586581395264078472229765673541950177370442124547786923647796478313997363030253241008804355884499961373746016847267018634619295585150105319769039264250434956642723237155249099249795337171043581441141190699076583401933487699060785824615109603850680396343571789755943932835641054354125512998098715862792377284810847533169658997287064927782796818508792731919475295324239337864154992861297764460181540768455518212877624476797159736717394387574030209576964096965011305168773690057067221174793165072830812399381332341394028847981188584462982457484263119084471613538581122382272867789249448556499824987562508675261597678218086378593212393043708855472879701874410045699957199171701902841338374353969203390142863094237443626800921780744596995970904928663207549408042445362840603738274064216351657630506552961113853437510578708028298370948862642873450142836986840600462362305819967062480617950859984696397765215955297584913401717487092528387521865764981735161816510025631326193761830484341252968881143029061757911801920088032037643835836140075552042853528233159153371692853165689450487514901452260316476805496209372255373671868613137445168748894496003031871072034172690955577683291129097702821343062375870210444915987076253347966092251650213447730707480543688432106405865298345405386983768943963882149052839381420891480182205968108796068226176652748895651713809872529189530804820711762983328243717609216206981576516684270986238982608754748257487223175136045971698073376150043657458493877099720011245298972583176312976088319649721508851592342482282041157423885910246025529460355053915828581904781305650153587305839993136354683151858828421102464964329006369987464733474765559859525978888676978644927208367396645810917312661303840266731676913329544487041021355221816601007619606377289242698538991518476686677605015247667143035276004571254143283010438430045496099544203670414293988009993114185971686793462700918547922758643603605632245010393091071873987948777685665115824829714807743192351306360385603864355604400674919727409994970025345838610826821867283083497820887756823900331793241383032837473826889217624532561916235389226390493722640324276873438205979688677688779711805310735404825595484956722834933400364460492128910769909131534937604447251634633524315632766036509817692810270317421893314865259164208116427510271382255026698551242924568422272606559437094365573867788897592049469617226755182561989876327859253114346369412454323230592308134155132300625258491070083352621472824152735752779794300777059942668298311314880126015000166819888898432802568980762291090356605732385138428041696324168104839570577839538971204784795314409593131212594177777273161291023298692596748861197260687180330755755772218228423305767321844397083013945527735010135898785756331834141071528001566084608119851840861241061482196087120952499028067378111901015800159445241766748564509452943204045436810930613518657305231397485408610769284707682555667797403769622868397952053539615098463910335426982393822112607620200317794083942301588822039404468324246029085583002813701616648606891664150207789930851010838440710936652316661149818133971129046659473215621838490739254320497214984274246945785058932377323614532697202200018279743935630477811801368599312450628495224524008575927845017583900572335518699663129247188270823265928369350054770925697898966381176980243281761276136834209035595561834492938195885322901275126828837653247122282118823912709142736622968546758027014132232156544518919772593966485520808868788842583354115284395743762023639939397596673033722135960236677042331368952244480416848894831118989550367259560309626301617187484466796287312049597413757359422550792296778077067081905371106898959215813947300190543444392062463261251130982580356563560720970544549754371878632978638165872040297722393010341284532312912296224329897671019394664524085516787800672578906141957440199564656037368222953160986820118938650151894547594985138674442175694611147757806045848258729671129795539338580369431899723928581660116341782158721613507766732917884531979863616668252431464561872824171982750005112556745523511871677542616958559388780732408467735776779893189954272503864157877482367680493780413961672110904531591587777806409879003973430187065723054728554446369777479840497457858160686906568685245396307115301641189092252649587255841658259275696093601368120773242495153610602557899809510069190703510706688632841382796115085445847831117564871069621929537196802185146792728803977352317267504859375741819592060009298406045394443097059827525454455367343434541597251219545534862706649248644521261683592304371646679053943200294944759611260013888007402225018592631364230353259635236486565750527936493625413253177807407287527990990539279145166301245921234881541219089473707593113066492646744211042787593974811778112607103474902382356310650538538582251721794038751663045946430218778706466062742097979410863575030235707328648923847190196712904756400350526969471528588845619681640025396497917511627889777542888012829885580466610067768616236620963648717306035436650984525881373000972488256684474215950448644494334912397614433235891967332004050593737815841007879614799495144479931128077118451415810792403888164139456010831315887555899420561508083088420128776853864366254478743486305383177255720296625043166881641660496893921050684376080867559336417877705718073261537434817246152601316696714987799235745033017228190688236712911386187155606316946359807216535667193614403498513415937122876048391002833689543577775027998438443651890221714471779703469882393113765827979438809272813701577494459321943801844686688874414984039226599163355611295156641147813416604930968008063602198883532743658475672438326236900777459616974092802623741973628344080396798848914705150059927574696288265564142777060625173996094553586047561777729975833764186008603433634152632731976751529481700458308591565964803696499765668812200855464547592375080774213227501102376337839112645722856669577202385985449306722220670935889969446742601180740672909137693719029818125043800065197004264121384699239012077500501177594104323351829078883612656987232819364550722885749361987453446118075293411697960444435353914954862034396314738688201555527386362823474303036026181358516481514862291412999948135054937264573781240498698504930265493921789356699766667625702048824653254144698503835046814199603266693652325515553153827197732263170166539316170728943700257221587599290003764546934939233870711084118154349386306780607573127285363255177593617817538262674941397396647552985240095642988797237399860895222221668821192320341905874254612408493067334117328729590725712141797377242628453538260251983717350792067388811558356035929977622730832498474371696363833239105614726760419027954942298427091321813463470256238607998379059361163355405883420421205329786107690956699814664059756416148431461562996768414527265513651825100877221119437589216455512278244035352144683715460066144891609650953728277163306352934990929750052177957332959703179201225794530602393353307504192983677200376491090076453453733047847336030923568220694141872505956030384682631829985131586848149536372883893092522395520630270543519922914234920141483510000025729912997126106107139808901823912486438469554479339530019264722061320142860408931653858632572739338953119561730232753943264208270083495583256460020878352913256662608508853142565231497023552972429571711942463868260114180053007053663020261505276433234554177302948313179163230098122407934338729711534276149184728748149402094561503597362097833123165722411500153661927753639377283361417722915091048545995028907694076680009814472012187286668255343337663580354449051385385833142578173691660606370990676237113868507310211900661844671880152343780633888018567668915031857034052228127045453418538069983509216280104463432216475471087647275862318937814440231529915780289395208837841179652075873069554792963905104363998065923806691821006542648152402791445021921150796619563735683327112448314173360694445008420663586590597421394004758597126444274006784368695631210934944643446967850854461287664234795225909885691943128424626573649112281305352836907194340734173551102741031760341254366084553242407943730034353637336546262255556642030422103371225764512076987811588131865417371732348020698472075946911344960656648464635498802213051843605497429910324528014819613718240141853289887253414843986443081127032469249574384482474318374001310686977733330421733468883875902570585395917945868941366297825508937663647523093096626025662791318660002207801681735693479348827953476508795191325369073631416790507797589866480350327284667394264532815052970587882320066136872937476197999549560981953229236183566639709299679861881405410373179431679953646229981662623630509004803264831060544175488100267110738865114763680914704042210085861139842218271774512485066933331496038607279792813792495861823361644231485643586784939222390959941712472515045611929198342644543315376066533115734701452363040230627489123343682859563798739658989661916216478061957359247635997950546551941204156864206777455128011712469888978813637694236733941272479809926199273110016464919684769538501527836494241630440426220087503098790470761443474693384060823437378048561196496014343932720943773856272007754787001979860371075517658173574257997508986782230068754022428867666173468632750399631227194540316805786051183284737407072984986580598034179407413257132268104177635989516004856883777172291434944432264062670732395882646728097515741917000856645766290641277057751773096038459266814005793963174913789645193741014673275366622393394830341760724030776241242427020482273884037217217040103177650764015682106952628921476761798985426621420664141307488558689109861816330117336641214921893942891996168835594370409874217948472496075360081759794043710306583769802700724835191595171891154388227403642842037835969980258771913963696219454802568695935442780822491884315682249997514830654363915036989745899468318708724220022397947926501231621812243771650758480018198288109439532842781866802458900879477134506346465907272976417833141060246485633115838974686478763887566199686865403598032998243959947704171924796582710802259576341511828091433154488990661934905897708883285624524385971632341040946134609722151431682622542385540834842205091630706287959081701859199589068577508407126052086393052948700098050434795800019142272398930745174139840360884493002559960378240526505126531184681895292383339455752865671358619979320131831537479516832884397033283456365377711106277438490374865863089968081917403312939240711692718739870223095595740372557553078931178977716162368861316821862688765588054428229128626558364111347953490285253995704007447403590528261154501079173564856874113727119363981555074077097164405439503108754078900549825608590233811072487073290227788369991056909852057748828156658959566621660107403525000718709446988102145680869498520488076142633689545586744094362311314706902520483146213138761996456165682566861498143422720002814514941356763324782029097452586575498157633953258227484937760423144358141830409456217240644228393615113373162821358526819130408803233253911039980292545327488717503446567063470165561064028542055751439641276985150476263565391348883967434877664143675336753185835832039437131851242504762066652117922961900946421228811311210999161556865975271135552966894171485807506689857284728997560902034463670443415569285129321208256380853032275606903535909721183670047935932817969863432046948941941984145547924163725600136320488801430598134173379055897824234180765141824914479824182709713400722313185993197089256256541679940241915916588437378821358802708432453144501107372859892005758067582745480585120945707415990591150187069880339078688529201416922264933358879054839416213603328143852142417144995489399589838171141730225001043935231502965321239940777555731177790245223433341483280155075896682887330299751755346164333110378602001964951977331698510521228693967183484318355104045644072487907104832110075602491117266826775159694862418655279068408449402441582678462080922812810309819127490690897797702517400533402909005453759407513870660980031800803440584404431841176719472197844678823921300719726013371427233515895808359759285248056361827242822116933895253716312230308113045196876963561150248047257408468120518344840894731566589691170694246426686092503922719549584806335927922773043048407846660863736433427815138637659783444539637575420155015924566537973115763311894849217927856862629001899866569871627523353736223965727111123735202421185434133672346811921728770386011735088088492821769353167463428488868746083601694194869135860306875191930204228399172062574777217687736931579127863307708134935952222775400205155290851614298202038607240415573423333241147138897277447251391206171467027799578730288730775689585651549478673015423956075341774483897122263653842655052354575517360021078735319357660755097690563873655731863461376047805622074271622546989334640862206335901695769359583329055057178780008681783520807066367232182098626421587524454138680549406368156056212987705945478020493863753937354272151587175082432713924891563116996195065433838345812302705500629728269079742811727130020911784865066479457507783500218552614165452728030548688802907091794404033233323120951412170381390954363127893881674458608850303885605402495625658830751301197810599918780143742436295536545801131461192213222694536121530909344721879866576597690614148193191684307105255530484586484959146107875499463552620453300713226565047556909640846771807969131406714237168148402940340177386834877328365752652146447199829159728457513791101859566106564402409546019105315086958184900199654733194952811501905792342269878950761952352069659906981497508499755151798796906849852791116436321682161501284728324511696287867680897295574882888537823491290094113158971235553852768049851736476375238005507902740581512279115488844401191768003916128809477714371494622274821947713118289336621610463217700049025771697984780945585675360820681717627504227492596641123582061480636557497945242536805730512217441395876226433047489856780960202061439217454093266038807474207861435540580700318842831395159928974685321896452508001505152883018851889629568216962065327979106914705978989536299705488611245369389026729276152946780308520155140261518146088915908279407438263722433457983794832542119590365975251178133854030092862982352768267150577897778101788294087684349713350674441532745407735143668189123454055677615443098046048429705809646933232433832144946805382420120231364979130426889286489079416037186977520498493891759555072720245584945186446312391651296153366369516039324445194367032010528107986467541972950694594945266262045724092759913270841617223405072814854254782384560399143060031504985326112139858685093830816826855066895028975070329079453233751298444134607397814028811672612932141518681693845068839023413653955192564918257280419255148966592463681995446324986095754800112793433865596355016784930370098506931125790435644629112623765145790395318397614398488519505025948395729667756174799588154853325939905606389095145024839918336470086221741487576375335649832526563380731833338934631166575634166034244454736286262058393727007450783608690263950432835068829136561696799789502370927406120964032199575618649644207124216575413394592377445812215739724126358897196764496620853130668304482999334137580625691191053389126920950009601706973886551102598270456300427242268128556089029947202802328708609728032522123271363824926127557222259736975417807121276892350321678215905510887490932236231898085734290639670953533493963040364528494705592214302941741211584471642309116499684800912911539136067788364986840226310334825373245217917278708127830309214685092425204973695707454213692846514530744038735033674650366292987548392304393482511292157605461920422245757040203088304490797936767488496357318132648909957357264487646718005100182927922867089242780926327103241623549780726504262170828592960410287985886990516552085998594142430704309124852157097243416735998199639650392857421765528873350914363210662617466070452529932196050382244820554071404168489020799770361880364646039579431766006514950564028343621875774821801443723815838588561919673342114552409439047367377844875338391158290469487699950519247834478291837557096179890398706933133244178304515107562317629763670432313308822076729145859248332613912343736983950613156235276079284016812122437657033644395821217184940925628557688349837582283515872956403111321290467804442400527704047964290743904663071597842871688441659931008111858482100384552108983809677111563376552266465866175771870508844100020709763806317373402701361514136901235921587478758620624343245946126940082143690130137270838384125951376298951392916168477241078148729848704009761911391938286568720975681912791261381572128875571647898654652627107430126813469951635519162484648205920308836927749135190056991319726242295760135811141062620438729578446589299134599156374290492821281331205830640176051331275090725428695033218415275756807602505790017443781065939439807461071525862363442378647155035148336112427182303763077671495139885548969780333797043953602502873175732025300105556287407908242222488101051136932000375736977095773277266800064461484080559762635217471852747587926091426166182166462125813551148838338443041602696314628006318780243310426746346562069998078486163377121046916015676831517395806144824882104604702216868741044405557027526679747216805285077866185924953439577518530282055767157332400730003308697130445393688424415095399980390981102129389386852986181265266271554317582657030570580331270862192787771445328069789024835937693919088245108435596486257249602643496335430512955047138516444980900383099884519174847746185614885438904623801130486250393514107695825409962394798023964397656545359455048198182867589577852360058529754802240751797737461242027711616337872164067204118927888400400947958499229558124121804991497049459235307810216025141884926125324045868741609294572717431627950991378146672290995693165829897771253291304738409196986519987450393404892788168141102650793369843878285663239252157464739077217511060503502402146162716503286796061263794944144319549232147306192548008325514058434789402344856372483486818775277101921738192372731537734924231913772652876477121466908524896724566558695779641704035601302460294375961059043845496050612516889844001381908862661582045735570940667829026793195531871384803949717698132047980081595890421945906205683469063925903004304395578223018268119748313057956157168527058480866250016932967593305044639388917890737433166063268386005476747459579608242639113497333679116734418147551524105943716430693534223570645409136083806748377931393220319081089542545789571825302931277577097539754727329547142101666805395349248222222768750637337649361668442303193603811044931622634084380625423940779643342064532668272334046224350408042143388506511173237495767774507840824651465537011980727095352508517922521332759051084071633648564868781988800590616362720906058692009066817238729410616429209103163972236101451361145672896751070902665410957924967105442747949080777402513605878024076910496070004839137525266381216967481183081993989983386816479508855816539277887251613605776991742020278396147142935925691733662970447628738118998294200027059458958371326811538989341394377886966237741999102062147557606643499429958186258844361590531158542785981651065651930223289558905372928212489899943400078350385239535038385476162289995869396580481939358719657365531521000782900849588467754288764843722361301888502353703988528925668830800276555263708892677960323803784705661006157014401785754339237814133673836242154484968283606776631496782533438129082310618751389859434119817817147485088834690460115461783282148416157809570159647908390883540198895126200717860180978633507468064380327266212763937596579071642823541302471095552056576824378377439664077969926365105612866866999720484696241000312823741617375837663586159194149820918628655976239692521872917499752951948375823545953653421408821612073258525710392970416054065197118082994244792261255883454662011505162301033459926886457119235397791153184083549177648325620896107279759148746038666664946157239636023554856516844049001112146246400914743179763702913261245460271905123370957651750055307002947816098537076660704261087883674249427768186566219359225143779049269312601636001703968276751172320780111321425299824861231979379612163456589567066376898475958569960963548116340332718354003684845673804457222374673292930561339056089936345353220997896575449748944596696623198711487679037649581555809353567068711573157386112709808542955573177713204476558925892032802570901644462131016107554239679123998200618119707685628195140751076797063290141630200111520777806087777637678693035231267643064466602066160218466910405439286709099240386524569158101414970720896141196308594212776353600860593456204741421634684117252986906078954226238387506143893436421687406361700343413471093505912268670855574491599093433798565026121379044306822401817732372720636596262055377657729381262099929677990036714862375703879275929371733641195674740592702197444318195881093792907370951280108548485390784212804950152968581167332970826064833037856671134536432638980669578714205557096959833010805761355483123281814800434615963383515978361682821333155290702227527321988070918329625415254265864638894936531173992910409842840218129223143398867306104708058808058825653431492532707260818378988668443623638807422286595801587507427595653597869481953135346120558462344095272738123150311211896344000712847888434562060378855258660380556933997864675935947346812202465918290515208986194129468934781854890190566946514494101066908371800975912179173956112782245185952576079511738644761263015065706001034502073266933698064384887425716839513565461998341807730168806037287945774575250227544502622238467215783846192186355282018410177202469647600010864685984707289562637738557395769355020064741928144803705353583882164034644177119966145195280294208297781931549553942245200949896996452212909907726875853399445247329564033180858760231712362634624061687866962137320152096030421863810520565740237766014588193839216577211401214343576103417074026701076885237662533207146808068375244240005933353537755337981044580214898006102770822802623346289055768513542112391134918464683928355389649308439547752927259904194507842944015778280035917057639477474241128143752574076360917393226445722266124480307233008831614810864870312982107325816713309673817265911355112344977752678838647976110706506362348912177001315162489377133438288092318416270585601080832317003400157491520412030601889390077732449799451009559444961502035504859076375553633480868329386472554467532221206848014375059805011785813337832539211966224501051118507720363477090846117103255733742446944007185518976490238872717354100845172221501737131977888013602120333646500992859369271843579447660439952681073515086385929813241591435442585118676088007814132484972424785613691308432762613069246016974468609202586103342348865606087835422366162551630540594098458457038849044439248225700877412674730832416832251558876369331908536469537406319717120897564117436957774731558019866691331229121769650064714907279144651400174333485518235579785497700090604856729278732949997034133928544592346302325765902100336186489652116603055955502220001222582898102921486831525689933223945720289094514818957934453492365523501403028082893942993282884337014632941751821817036680852709849078479762419426273688487101013918566315397557697995430062790863305158080643049061300530608665810378418997076521531064161993480973232750889349851136720457904845789237577273936793832417750068802116746687455860964193160945524810964113591181711812144613939918321320223129874673701604100836519923252875409727655823526853047894445815314952362039237485087823370470395738604543178670812340192408727799059104912502006385895051194857083381794580128192312594283376041074799262554490500363473096943515480831425427898914232321513271358134856237993713147762496356559470950732426706803159910042810354784508364530619969907412914322744502364623689173822530526429587929912758450840702266570174967185210929274959008011042707989578766083342277258260038264454108309449444559955929373558448377795003406822896356997904527877666418661066825381334873667803322279969836899233654520184325699284114343069958105562375610606191945995490796593518704909043486428268691323874041740115498324904046119956174728139049752500861390751569808624554027181107403810604970807898671028492030501703320435092808003283305687837880868837335876412426544161511214391731292721107399855548616576191540536956256118761832876095499974730191200811705806339096654595617656521604628358744332340375106455160558565808072418264515737898930186805965856412900973269025234110724114360129820991732857789000037261554568857192037297823447030173224721698189994228953162294951547156844828294285452573675378247687082262578803811242249298183247594913712022081356607994304901126583480131948099578462804961253184899949553491607007444245695498738513426541891881694005475201534299231118256499646165733250799748460434879870780850530738076518943830118230876287417954333984483734540702409686084180611633975670141712670080663331160242980264032355129056106621404518741011075764678694356885259993697823109635760970532424554431090565764505286965536921364260109459174969417699075816005700789957391395363366535542749864914189644855778671989397195564705696319002799280162374858436287264545748468363202592091685807031467892815344665633429312156948795545901620973586210873397588344833760683146029864672525730890197010146213531268608639479778804905094286573732492925358780793973687364575344503555974630110669097783273576799251340742692006255440087964518030274377830078526559600163623206475897826128087142724719696738953520684247320705296502376446961314007538585338061585311646229487379682103876651943668051938253090523848958241210376035620022122838161684971944981109515784870366053716534348410403336002857200827610157595656929331075582218604050444496511002590712134767006648024444843615432125621632550436045264264323735624677461461864435105428382604819031366308091133388481380097034257419968348936750908403284724705992683034173853059810972513143541725500228173197008515138053488148110692320924205858927433372539137951262611896493640156935237639982874628493133582651363119317854818116793361812551190382081709141489270144138478136244146780964178531230421561795854489548648435252356002716411688139433141065817886811769487192489237160614269305092845836008577235692666794371056952519953462937937580387320553739222531099494402172887618596802482252414065884067667952087968481971638617650068868830069762139383761499021088460209001257095052632892283279007341169437085616932166845880074757457735885535695358816572799512084278867481471657122941302278480194487542065761238171983818474643641294162865442290424411250751765398774893699511473272035953976664299831206775952389160004534325907658893189038692053057986006084315750126246546944789724420246689724195561238797112724518305163482268021017725671963438758008011777888445735230254571990892324128251901346092651596889288070487506732526089720890572124436839725177433537046127808612904376215033104817504632612264477895347358854129325127322350019819480507426970494951588983320488472102289876195592572598277435560820624726019618864672245726531165172320541128891304025605616933886234160331007924043493719580665953809429236824304377047840212485318010199284968625278302581318037939907473399167083449387483323968249348086753443513214348420440256815668525986236172168413378457136810703889712659147921318438228034684647964655406486368556892439897551656646950065359767764477450376607888899143785462185991446930978211484128005888541595941408656647560185258855295170817536724533848803890140218252221877479474418527097292805547114682185550432207945048814288143260065043041693114704734968658959051292195467420115677727288578125034209129590240399200906167668418532990172300839025185238388763948729070433939650563248480235062165183139525273455837428187096328611211984126476878933064703508814466594621830773613058754691640928989571455515325987288621862696078476462817081349650212108060001690991455220702767753232706228295347323021211463788803424740975233257568681710108096619258117170792192985509487325139033888745512773353827413540175279846214856157496051729081068809305670498697465391209300907936864872957257506499896051022233885082954171353886597739274803980477043314585562768385493275835402822748254926159702352805229775131939190633771159311996758755183012463556322229468285207586662968488099828943459562250089085638548496439518886722776120327360257842855552390385490058580876118920389246044566138013616224027031782526748937021631477154363789949499352987202640962915552521636100024439865315255947310523019448744646060468196425296440907027670831856038578646222443730304542024144665177162769824273888134416960409937354135395913113303463053482064742899574266181059033474349201410421774617007595794271064284238234686222738871207020968879951804749490027357017856390801888142472987976468073959443666454679598826283577179999574880171748484924789958819714748325181584594136424374772338059889713224631092815818800671512476307680908620840163073197272685264686670292153008807078470113334499937847044824160628009064098330945506787933082753058337657647382931726196885911823181483593290436209512127060116254937015669736374157004626449808174446239279570710596756392033110947833251869565927762084143238613356631653332782661990826013908622546105712241567167528721240970397165567424894013657439830013027178274760087129178523575068413395315558181853961379215619574925971381124912351745618962996218473036406850701024029144014031288458296505215263003321304834915189537580830277775855965720345321871202151560094080370457690782220755187779665008350232528732665779661745291241164628133312792662071076640497879024585676555920004329623201582892646950251311904031622823781996290119326550841512766703344347905145046646156301370460751879873262101326810926471443352170977305477194434019767780296894032690981514686580507079059346347155953130122193486439559159379631402986322432899390115772434580627087954021850005739553258841406531495954558058248027129851649196962196564764263576714108975185794140887322637130886115213574150945384029321504427596815499392862081452392423784366458489904086020875025295500478267011654543047335799737981244152908128326995506409065167277174639465877763956774573745547782796519762636654484743896091256725416144094272447952989265422325091487069859926258903775422743314778275509029424110006357698208252964443632873550962740730805805007748679669393375072980073034537890396767319123168115367141133370481764898718031659086875430211339862845965993808652610023465582852838623561065150510371954907126561078206611170754751278795423720581542617343975565830064963589516950802248725079605700277477543112708981127240388210008363088226463130727352807502175226433040986981713124529793221975878752907906267291138609907333836565806284546939604498935059014809672858868296915547698345679597607113382937536585089713017625564489032940315136721011507426430740299247952599653198045933800401023947265838954825770810669922477988905548202021260523222882518170768687538928174106252750148551873088566353005989988120627486258826757767834588373576311881505585714249312746596724097256862430289869488698553205971337474102727918225283533459123382613860719430112886157201227484407965327962078586305376754931654609615331572839096566632242944588821710199329388203558590361366716406910635936585519905514821882931807313379652707656293721651603487961526196374879753530744724372164642901887816659316004584956127458566586820432606860461431685162037999068220574794283587403152539812559367542282581756772959037396446366816672912551049718423081329699561016861178236132587415952092038449147941648747771302852200674854773476862357128835181540173867888318359060812309069534694420427808289092467592837529572623695783805536888225997348840470654525523232096434986712329875100320942462101128917315100748507979919135669493252990021250258068621361474769304705235764272811373919476957704720156763039915134510921558034942308170787083125439857576450018003892510084773843076109458812925921918805802079290919743209966916976420395198759690047096350011640817310281861029461799438747065692115998192067220019707540046897269340778932646005150220293087907758800876291482603641188066821486485667637571308343676061792284861975572685256916087085534481391888064927005294410561385643208816408466907585469468589731573803617174424877225522168427608890817149562664683291643631365232580318618035464767769113600493111722967089868108407583521229613425463083016166980292090541404354330320931122448439316769913833818170315665213928473521534182808444582431711982048165144251049561091486891752278204701324694303853635568415231539799233828208573238414769902462169937139128602346798086825381451039207430646349488180454604816229003325304684226489930438149222990570994342959587748761172187218332403518434907881890094615577448816416659346992506602362150002083145525576356405692954840741274554988299620756676750994302409988216659280998792228590992171465737585401620438281490408824143909396059539046146143084088659817596665876243902097574646250169880364244877715856746970771161799983167007063794674847652486171023764909927990596670684661096132043752671414548959345959746105757107444732767130968324899751113774843551976221802115722912887927165024830143427594261156905057945273895289434746642468615473489557743228521865658919688806608652334210317536556088272206342510174117179731115623987567057154240645697713817857723171615617680752922226283043639365336603056044607641714435457058280454639347150965995562430178929950769332946342344279354842480125147461627229930736372090502032787817302334221066789690217339666916640678837434723544194876269650527610166727217864084781703919181106801439071085040627865909184632744917258325539072446352056522214594109229311708492541971831264759715368838060752078760794150939488936837569915373761752117351413716445613884985671523804639513312436271081623975191065694958104335461774998019867124321994748679098102783307566381361736435450275953886858468635249690598201975491972413802417002278861805787903107356748587111047496256595585887971110135468003869515787666091676257568167332822407859366452250270958551911519193720117017792436946551850430655682324982676687405992282170631659608440317569452656636310240683660902218501936632302669336316358974501752679879066018456076106721698992531366348834783177781337930734997447506584428684776855253289138050233443980727692481099555992640919202107908772705560450223279568501205673913766240780749844045420230618440726318261618052978456779443111313616615819606349127088187831931137274937169909342410441976543590516068772827991463757988718802544269275744324675301460450440478742441685835400205179780490374925410814948472216470206442069135579859577051893386047096874674316583671335861818531726882186647708739045034609974365265413356110342718488214583636828879138228282520343937704012955008559593329015692049190752657336667139658088205351668099006009655920076061659435415180745582874591193272480985800469991815265118063160033484400689750150239869378427779702655500466950815427003397010909549022747206856222678170402057160885996113780004922144540671626411250455831687429295216658999191185128216572295304368955703162398806498751829822406687805354259382654445019920821838304956169722342734164093056834682942451893636347687587873321347997123523108323002949428041460514509543760649693217844987551383115713457980902443621557485455165452938313078309856436219060771147896842586260193449795863898284451375006449052727911252383104567728258830799405419107228817431398101722724813996522880488475934028173515211143128629608375528652200730718833234263903241722163726442011596728508596423097163732552175514015639959376124180700614599271860025838943769180987960059416039269897956290786124778656982106506359087055395866787488395030115143861982433641100991102503829176418243401483981512515873431177582017515655406987845126077913251815845137484059393924130244777610923835975572032583830740149780784261183572861149927698250784100115016498737123014808220688110556225711115278075834865690017274348499700943526668264852458520946933241528679349267416449683957972053572933948385729479277552255708112519523742738649575302411320880454531350895187473217971298209152756113293362889695455556281665511797316754636623825074638435504416432692505357888155314219417944800811110733045240732821994048152339827207434464315014705705515417127441858544280652036828364299736631565321319069842213423367710372549918397392438227079643167622234189186235228553496483402104728838943655698897866597296570497872024444706220469813326397510494944846918255025466402438388143547367441526887474986431396175900457043300659319847728039647194351261042631298667766640313932869969600540345774833800709941872677646271492402832636723761585440420513990484825587372354085916041348002572982487825463110364778248272026798967206413276785283603733034252942284777142122155913891384184558954565724114736532593163215237864051109924099060055932424062540714111299050346496069810337459951977897566858692433255793536701977467332261125726461969563157032511356438282981558388252792508213802302290048159670650461564068307907799809704280191696884806460130124633591559734521432112662682095929102723679259379044104535945434365489365956330869969562783788827974629020852709833275358313265684981717300216598059305469459282720497897297843254878202254678903575158697457024070641106912142622807926194565921477853810511489637422337067691191230105875178919682285095384060707980913300851494535863226251075984463048984141660679017192201825248906984474385688136062226530618688725504870669761240928977535181202264634201077060526721279785613671163050473070779916205882364782173029381102478696488846850252360386743145502260648568089868385137213826032945119142332455503470160634824093148878304071411002710724488902919521562052025643225742955677718176336608425013062613690878716205091275834344976218403531701013759593369404654915457135625437008341780931824777099612899755062520814522128200892765555277678403287912348620071478589581716239985787354349973222341052558198136746193897078702984817332233426372359165063974051190186992404551341704831269624973484360501574931389314131662166677298426372201105264187077266159112485628422813848052050494717915929164999763091927750384481571033171945691573427566351777395170960005267763740129057412773375720262594827059225239587661700461098822804650502386623131214097914369366894270600049661657371429164542951891787537776858864542576352808194708649150486887104303482816894519444695229062994223966447120176072539459129941094914185858099377336856015384792712033158815358732645427797661780418617316391977111312501806861117863692876272345507648790631940003863052256100536060403256971355580903261377797176556119719274288252498035637299145872630362555889995300147774212939452131489393415560802435928790951493250492374097809848994195491560383145691644738462195768987590133198519097789583684788968769092381908467658327334198445012073041795555883226797819769160605080973858384683165502620799681297341984611586997115468108690758252141148492467121206112601961660508016831593343412222861952174031383646335474595383845771104287252125444183973150431981149566134131706203173299365535370648571573879517629044106877286821072031077504544292910433859838408591203027142793583117805688087423224632757519931280261336231875744094811480200139332499310308925912158254084388363305640832753117765070197866786041485678784160628664694336635939929950126554932441083896793506886498320525480705230277526154398734898689880459003780137287313254290475523242536640016790699525334896151647419027950599218820888789477173669154811982906422867389809313945087494602274233032363215762563395437392472607579200217169011742593986431760362553660541121991251837814642270652104354653571380037454551362342262046779060389933850616095559963149315212618255909576718207400137980635053449205917170725053803107411207278664616504638463229755763724860343995714241457333242540630928379079581788908595017557599453086875553334624378505218748953988259436013505081089507725317278416865933037604887462773347911588856501954934473675239058823572971902024866303556640908492666151277094873748354622971963317291044140154295235554156014846970657891110367707667727349291835970305448986329105451478826732692978482775510137364228778068026329045874729919573109079537770496586382008295596842275104059452966313608783180502723690034425619927178500328819742405773737433799224542389796186268354907114167890256476390176246075820613688807291069659753249702021766450591811583661801280805794259120051099272904630610324288316055075531468583332639185730489455000345502910394982587006812247041245318028463333808824121335225400790675870309350177807207681991330305579022220827653534230191583980599941179226236816474839424597111609469847403850411747875174348746780896046513594791190010438500183583062878541364228575593764747763777684234424169262308323679900882056680319935553153586197644266469286281562933808009539376855076286896287431999998270119892459578097435391386576267455944511932265921563118441617085427219515271686892855030787648501258668570031065894940167602380961704499496823357295693394597577663053923115460306199758040667408040668329505910997511264679323429440608520997061919193435473469697982571592433876193498609245753990718026335337612469413809496445444184711907561208650980596176336099621603641913323916164976255836026408546834424769359998926105005996127066332167770772131799906569565622029531537524115271264608131993534720872721824700271318331184930295112825315912970978023978850944458591517313285593709809254668417226536497685770625713010071784359117456489174638959902939779433878703117228472586031385757305797121398436568668461210692957192530509123312304583281214064608534508065314058662638017235006498414781641206659410143821409341208652166710589872308864495229738362460536953763242377754945712193907574030216496853025254467176384849499994198005223516304538197778143662998028052997741878618533717985240865645177375890066647486767566279050885466742989907110311314155283585345239170952094307063620219980789619317566033170502250474114917745021274159600274961624947807435760887715005548269470452819851239287521255500127380155808243112106949680096586606005771557969022123959988144684409675148933569803691069875630419636471364664242250903270039381773627297450591175648691589036648561099504448076712071953584377846351410424499894404965070953299792798550674052036867874703271114074018614118224770818478545411535685091356350249955340153648165946638461580376082225250665407436085932248972814454596618253370543036010427347752468916707888169641528295858030459921194650744360667781420980104355011825610753886579855043447627153194330221912029101660357064889911285078253195028884318220343860337053153553101624754563299087851441239367723535991182685279835075068519504320216090535652579562359816523357510187185277113647520591702223912249400426632324515877661757514618945133108549698323848647770458070805926658795090689919656278367925750624759247639456529724296265009953733009493636053750085488965006237732095760293953234079831400775156437778429196609995368696025600349116811272263563167103239617625119845724829144479338636015458072960924032770383720822432128186666099740262282181083823912009783103122112232266074822475916935292791018663642377848454090599631485746865550441764105784678606529412165462868180660331060829177274983066403896795151426871481526781369235096740109022125935274892586080626937951684914777479992402277713476358486134997980833565155930259182977319224271967455426990766548400982684237544033179489057601543640343619115147981756820947465769623321164605287664031785888915354636209073751499341255402190493325239442059933236083308200829846923233199565499077606563975235307084165434598423570547982456541298465561644718606768068144069128209634106741562386317668920122849919066502869497640389342979213715290683326837699995058828216025263197421432100993057315486945147139780203279784532320378327769110452397496716559211140368627221439273481298647966444580318699627836163706819408544991619980692041659850439699383491465738120969600215127585205062533894762933631819782571712507887002171030497503829761131858353028342642310510421997264861227220527068144623581250586952299595294942387577647763437260452611830385836995740294798634799758394818821320845531178718009708810425018112625975167636108293090238444176556247819996312337732397466181665247651645110018652338058053342990025212273175463114231837902023335200622350240196688199527688838292466316971882254942342581186135790021173979892786663594293097448231636027954289390363973553877608335041771156254723956026552772049972138023425695600650994136415486670813448425399289109970522485040960887577083379311577783173009053246300246195098599981890573460711253845474026937271046840083671572176518416502422617571273122970094400135750786001181206887145038981027123172647861610800982986301656655051117825395603351927356696547786988377872115563933903595810051941889026065078618417296158329776931105571479682432591310948870811871132081449339078945115308924139339768084884250178888443771360264517156508743511748376445766698386874419569183217019158586514457656145303193750039863024283858093513050153039958344217168533969736323972139120133311744759834307071430342211668810810059725560521126603466146834916395527129714927213901374359702398168959230675442019659348354537363825319732554475426424192385735617470524434330531690151595467479030500237806587356264230137548731965442747733871220900315377124333604527531785960130954418067991157604080595395142614592070720192964475856887435298674844803119479884532283366065280361870169806312134916470793304068749583189920119727288623775868414257819729473378108248105145023117391376200691666330246450014769276533158087446888850022828327984909446118924416409698090921326126149056085603734571944099643366313289554941239539912112432106229847987953288138457631534117112000218779183950207929876649797072746366654267011147400183961588725025630015485682197918865707165292894322622750004766871299418552662063656010517894148525263604887846633028562748260005359632888612108663402333777501286770574209317903181966813465035275175418623291361771230704891665174143476466552665152605427625446273521081915607344853420330948377051473175199267102570772235030486112338944165513499599832880980392268548532136712454275873196938972335212993423555226729124405161995301518697689548856903403000923337646209296498487682114971366204493639701260743538597012544716489126721391951267367879837306469377797022191803430982878898537177701560520818772594034707275503607858844514158463872763316377588511006235855097851091004046083131996913529060734849821384539818898306962215441140765375706528397443074437988949806509663436393852682650717589629668227695943571110062486162041751716773444571980902901463164819118740168262623936524537362355359893280236584242140772596095604100838812823979745663421283520709609159433458848682374093814937021981051729098512862404915688305258275102219087572545897008140552465355512479780528647208790798904789779333015302226728196707355989649232167013137252802923208997401392849709279137896057582774597617744986065240811381694990988329054245186643109666083587479561471504643730887023456767410792860485483518649318839174613808536685163168489018890994730617600758419311993914232633244025336985172075378639893235167531740709351820598412560619634233604476850607525009270319731385897379301126003679995078782372326687622050713030433307185748544857352427546751945225606204905430317042715887164799318664993557404352023358026560425007301480295982214013006688234911879590467661260478752511410361192988321079628246655245032769648479493046332916193084202948161169278113525465474098367222106197495630442748719045277009573541398841970381372467975448680531547921018790056058241911461624667712307675414680006481041953382543711696476482711671291958851857681559142056711252287559011427512581208756331801720276471022976897591734974918945354620005459611031115429339278931122468042234903001350084085574096080148900420183751436784029638229604567295236055818211517740349105681472777327350614966198838464592742925725935546058006901421035238933117705842567329530073152233204502245932123547099729287818566094639895347145280093664257599363076316247260934468889117357911369915604290470547675154256486975591741097023852200053132775408244873049339471168055457423402596169715016785738688903027260252470893572400606661804002815734646915518945659969062456676660594300763270446817006362231982398309766290153134463659232459799692453258204772946469549018882986206286687891111507307244882545125030220210144015742047245736475959397459386818584152531258352003355438080045070135922519418513347529990282268962024739098534194537098637999872818021438341667018658475346680921083653955039439202582862195913700003570580408345655078234732468994240456179049129937016448030560856964016824303548449901142462580553780061291673766773673581259759433272508582598670013310788941956135977102535787631984772324297731865379673015736916094615290820484916651684975435492488732844046835612835419281402249856890036402896745821084391976048504645707682879846279392409282952692359854178523545062541158698769990611725223604440223150350993249153036749984965352587784636606002994655292360695943806694446776066087729723965157228490729883418206306419740953201527693566636402164304622082446747932660756358823941996465875075181004341515720257446736568953308259984390610128375674454624686127335282151067351601611836947967878583094024904132629997083955592665136106223030917857430819211585330049838240900972273694431759174622328048261544141022439271949120309672358580631222159928166395418012505816734280225666266733158327534631895630239737982580189933280248361561427771261384128756531392243897180669204317690171930644722788488771351506424199946933380092503550374754859227130423820957485988023086439671222573731492280094538488221698173741092466871683774318720775202670639481000686222618813902147085900215127279560679878744338770440881758716111543204516192751510595595747399107450534391989298825600581309116099219970018529560306456189256638316823104841247634198347237271679296987445205059103207959448010644623810653558285934696926071295442363702195925854596826603570603401597787035634614914173181719546557845468781825377406822921724051000428763604065968732694678379226121544552020091719719044218590958273128836335166394919105693511009123278210374203640429822388553943624345664165636263594197375243064035971296849544787174449316403959472645845491245991438092651936488788615278690441913533414368645851351252209586090178149878913930939670824705578136452904473924650555781854543730131456231908042710992814006647931324445981796408429215148974885833802396588561365370954393919765756577775605502111879756733172848015556668289606305133990837897762932947879954346054126263170736809713502699497363854311555199081041719863386593041222288043183216504966026852940090998596176574609540077765327141512620675065751254613088031994639469005264673411507491905499634597485838645109561227024868570472483770287031648440650258155614111779158380808423364870957736732803772670983360043208826613579779515701637268845674808171597317586470165812724118725821630897024012754510404179377050695519458900825790496314673122733531119530359799583694190966666765811557992525188490632014110837225528347560400228775983457515187193130616711006724079586958147337840848547579498489580482860255101205548263970246024918698923342106771138387974805084382598128544777780198537781095408047201959650688056753262496094203779213427682565327958620567666295470131900719557768899581646848112642146094373515284233636905526993465918359419096055429365945281420448001986144697615809359963625716331633246333523886362799753160937545300327324368381677235322901341551621118303629689551616741130363402047311280977594093187802761586246801761554559169377412005133016217547803111451356462172384234335390971712473410774177825471616443149236890173880806253402517197519669907905368709271952683503244302423268484231373044320123832055068573178808953665337951502147669714967770909693635152941762641149431404905695194843269866732144516440610056191101613570460139696287039324524655449384150146931960252161450606334697885708595397836945037727123511933453937572341977577479870674803045221365770227610545665936987346183821765452583090172749221941286668136694389489204794895874358612014455729349568509067049070409684321701015179194664734041258272261667969225297150898318130982935994733155749115686073472861184498383873307540098359891855880500775689621614179675160283625062151180314959294681276964566889126297781168095468590235526253753823424380626363828243246688991502577438429927827007212655140391395817255416973099222407924144580371888698125378706023793684493195606688960190953916055351226169881972277459587896547782399775693894137046836958745679071213839810973772474337744114936017947352556384819993259643853880624308316685568304715651039245350082762236877370485589325992793669031624851884483751209467241130504561580505751843766000351814868903519595627340040981939208117058672825171558153591210813673575150708421217185082318459594650618402701581988112533671136058357300548158547404137898721163009122556767961017490248207994706787976460758018173029605455261115159099417345744525067484394582180373182320993236696027436031018843028943428840889267537618250956174439243862354481155215081035076768581697439997019858069756418076166143166565287358698444344483517071088032343234624279741519652612528322604630047741044762733912854739198075332410246220288070404111404034729660536564665946593166224270666631378311039552629926249561673792795510875292131358077152369711355815390752888907756908677629631924735229562928224234105322106526478140580515143605661789727007964389683196108010346313548161101008404508259707184980343837102955807979407440444058031494733589605340389221941482299513735800996115971263196259614756775633872057383330351886319137567077265745692325420244754157907777169836609627925711873950239300410255254463338280492888106346574968106423851518320160215816803422827154657973452686477845540494322477394551161905826518429899229374543034021374690770447560977095268260803505792684248369942859109572495138897382379131754331723473429630575300144503038835432462474204098572638513062435001318085698231791859708666336292447521661957238652548028317754967441076996655563902834166223225284250025804015713473734710082106830636605540488930463747740975419465885077732685070665080830104070554600184169629769768879340501716923290726872232453053212788895120614638097734979032651061817689153088011912904916781156476540914178953285074775887530032630989624998579392991647677757829281174253751626177252132790192814495958688816627959580632903889042411279613031700338177824897453038915707044078369316983014025925112585451462319597210416316400174746774293559277282655171818433296311398884995210567305212772209490798339637566621372158105574766614589197125312187778903000507407876435897918766767806308943801879098763522610861666984106783541320417329263336639264791579645865205294820657215283866261610659659392273956497103437323527797438214231726102685629440498669539273310540672504159864958889840829898824235465456083182458131284806901553130177170575128770104978522051265928152661111982766477364723632894883970423778128570081540303501484892421678421534927661803662701546927555141133222204364074065274586671258884318107211528689482475178565498981120417020649881784579416775848685064345167066885950704983782723989842560465244371447922188759295546337120092717082126433206669462737229011490978702694302551316185304797797934680211118690234583795943320928088894025625839307956817039384922097042959136386114985595805565829707271601654042056422499477845178014336057565636207777252725401038223923862054308796110704348069337856121092164034100228018753298965785024166510123512805421559646395416783964333013551867066275947587538323937714461234585510837362830843176113494280547618259883995724055077026564762752554282736298057662320526325033287290474408390515817746739190840066204051200714371259376419720341083941987026829618652038613243433014996962221037624135066659318369188156061117680108819476047648063328871100405973715880277547733201140288761664945541317109213843779281550229944228741112687269117691189673015663925492941111076018308245584323856783353652333455923843418408510615591644167556104953873294912746504857458439616622217711617155189197501954621228394594804291281086468492362300683930736009542272169544250711444751141346515717573153882990297480185042592521123148680919956668887137446178228045330371901857825354561795224550600764671576937540750663371761527488349997867668672179101750111790483073557417950689142979915930591958137262809507339418817640994119033561423985021475923246719350178249485465065629022507304395262646604148483073222851337334551232159433025158333164830397607000601908484095115206592332756145429495957016711885068173627671376234546593634354867556943241271891919125157122978400137117219568293978718556309759083655609852810599239963642311013723731023954572923085801948310858958510532960985276503393093478636025848879166486204980964547233000377402248446035816470006870853989526848418881119137682602334346904881798415663390099567894508842599340228453716895794010707722546697103067176643626029280629279061758949494834281612386198410583454955394064773663597537370834795330047725811979298582536497601099197801404219909142539333441074487483652129162385646279776849684140802480048476738142414808039049177504275907626048830654481402155259540255905423489157872277970929993110642263580760690940024917418120732000889049860578539675266917100716463235162812695816323308870489772985021834149858132218380932648701166685816164586231585765067406575556059327158964163230181769715622904447254525163889992557487168430487531400833976557258942371872322391450759809841223456858374556970742116126264227269237861717410881743533268123223502157011103441667403356289852418200711235345128920934971810314278829354503162868391923732801507895075446888909584820810729300860948450103715722747359761685095340788736587655615632067127224272956325134519416907912254961246053122384590066383546254210890972601523424186586264749189728025792210666689871037179409722395831439943976021327831670372852406512012405004891425512473783841561292550578654831663418868156420547853086706721660679060553009470892090481499543035741627983803528118351034205206165555028466820490867368203668508836593749455250438440579625687454048250479082402411880707695622479036079863971498809659841729251295571477866282394234887703010922291773100635880373794920490048488836071986079937707158023794986595022055095326970949411167274096555150397889960840106980629233627690170162348098362847451864308675366984042641211885775539726135210858625351382176535418776408637160863404105036147635821532187836859797300453891151754701258298167238538404718855249956053096223104928933549382284856745140150781926618354406439641044434347744243041769969802045933224687640752459269003417883936662460265230102772878956959787449383664237089247954551581238368441325914039996876162139862807052867569559811253960770676667812444194649392376382673933921126846214777140495955471788306646126116867492588014359527226930047482209150390175576133065697655674049794164240273874000365599524406756260429325576968773054886346350222108064858132238653913150901024287283621115876925288288510864387283448432823719856039720806737394455456024811325598498218332711858430594124708195008074200773744353964793786509424673479217832414563819567237517549202361554303239033947942828813098695122321493699812343929869675783792115528014324456440527149350239511086317250676255332712530261165583264727016465760661338809435991231954154292866348776141661515147450711949523357792514347698395830737720430969602137030901780889611717469026532472687255993735503486047939544974378039945021270834667990241533031711462500392911846067760711187772917517721107410334541554346155855604711256999442628770214343668700388792851519634500077245886941473669792922408529167147905490399470359090554591738558187328988231775521684371057923576944420008369775172288337663630840003862792578937053369841954319650408673134706611022936707262314387523024531905349065194301912944041702552226399925302830717181981235233750204668415768137428364274326758344286769491386214882387304358388061131206065727817991368916054577607264652104240876880392358661997036346192840299900102758724844857831971674706617407742322298378372630666324658432947383920525233450710543226726801047916523978973523896528250739868062235905113243934588365991260044679582044729893528185163773834539142059430671350074043890273454030709414969659208731996980995677884404841816640278957716260201260346015711643465637896383562454190152145338670927024370026776698945289011722201797761587410500762093080180944121590572407465275387877576328885394539722250759592868450391627034274218269197862495104733063142822950227782310173301913797688390692306802799645702755163322262531192698563617202062933464701790900150754187152669877071845113030451654453358649728240641470991465860753882171473091017080482445164305960199923742971690442486378714129345488110749709279944145757795530891990768568645098825578640386417517600951943301676425877526297612910063653543324050631955434836292131786990140811190562039155171592375530893813711939040970466894500305394430452878428315275857620462142566187526884826674032596594252394270847195893373659901516265216027450904311296789177378675835741253184309359419521420952311119032650140688360265759003321722510576662607370044616220768565173049842201024080510595133295604579875340366927749946153783757104672882854905259157113120883870339699060155692565832136252541430151091309588636186055962331835610929525688704336165551742306252162595274725043622519081975012705961175928901785293680231733899446997753426657031006884373811250779874635470030170260759323666291261278606008557124474927468845582933760507967733903382334596305184086094979480107225459389189973417102977795343352469876593716724313001638959213854415299646589274407646405228832305897640977483379131297523687436423453402577398515301901331693789987348520323940252824183377992533663776022121142486862226484653266188471417391521253298031686937876252101919323098513365839596510860536259826005889241699942435787634822740091003178090128528615723239051349073582293602902330774002233789393437140649411756532871036946463700890161713620187024459692375799479562255162733711405730764253798834685371161047183736382513946359166972165331582130060920387834627720471771719673250584830195421535570671539217081753106550804834139248088722915811709114144247303575285307219773309310044261247584093170524559668506389593673858723863697469428446276022831623084556899498676474774408538827644778515720698475149083000585351908232459203954521061977885872881565755991482220708482845947995281520676304072361772176101563602402955202537981785686868813169325418680736374607760957890426057552601904211401897732579246737079215353575021792375649835237593970514188112794121014179987402467212531570636667142643269936232701457032627414146711735335674152892475137315591853455167091395818360865042264244389149799052070975234386122680106854714699163364260117801515813794680344103399766086452876010299564885973655122219267606000898839052271684532155900945424026059005816888531852273670830815471518069083509048193636120384949468070219151074138172733446083462676602736903432185296078232170835847701177688020848960321926070117638160012949839410307741766270737770307993196602417696089499905220836503730316116540269960299140350082319032684133573188492924308629156743858788303171269001969098745921598319488076537500897657642299948034578632880755730802203772923014750584023539893043081695539282478677319102621939932758269273220229832588230112993766372824554748827593024725500606585306672694065652795335426748057641768579224641199619107720350691903477505466681486766603992587195421502406204740703540062578264460076684486960175909672481615352685437759779201546901898805668310992761096019620627649527374013934488214545839098984290534929578760631901009996699889708780179028911789437657158665707666977214793795739574496046490422946429451770450546614779448606845306349107087864170172464823167849344459444989369753466217517922965100908510147792512913087197032202412951826090160734731380145681917169112153425206344381673944448520031824629154462698945810756981112909104642950608269706815879342342977357766332699249836901914886815795592898008443841000570013475086944308206673020314506631705570761763130677850382546764592478435788434372941165036445809233738675917682318732120146972366100243986828503085219514815749198941615048745361859818161328971786858147821595153735846685366370694130781226045155905032711181550098517672059726372681794583958080845687838474680190924914203457143347484154589584094705861733076577887916291772593545524161861845027347029832179739937428513577299342764349311682528560220364601016916925499282951541550482260554712817213168130272427553501553237827620747557407507041188435877069756138581436956831194476409628157819929092122410139442765432167359043953356869217971201949807848820014389974169900929632108305253864926628960977470401293691693194476737952161444910213897032551154100343890211840222004834061600542047739165557377001856994166069550808292301186952127832851548256977696360385195486598270238215573404351217173097465001964711847559083249016289227131871731163762790618628241107419538095515298558026173187655044883484240522332106633183377358255627507057074605113283364666867564924942847935932502743563254110612833244670859194180797319113647700504743947112268816524751251832196380421391058766728560286314450407155721620742613757851832515067445918018635301728661824242589151064363143715919180974656562772009156803153970675109493371406398702544736185260754605960490755328259113718591569267028090407831287112184155420459218824206447495449652043346926466007772299214430139940292660083068079356827076667722731799686646883159666032041237121989849333243547151409378275919549776655618257241640587060207069678418211400877409712775540026485462203727655086548883919909190751198285865826449669091858073399931677647401239677827903844543341041415773770216065022079497186600165949754412861521743315068479539204187288350664926618067738380426944144195579868858987663101891405623565880135138315464848573097629748405521736436894493115123194514895514746158395103525760447361142558252735898981371901760540992747370002538386308421670054819761731599885334014769312962049088708141433220543206342191465975856207647612684204886529185744741349736264278993144424368491728223269963395897693048321263632443031069164921551108308550653681564698020196574133805448782738211909502088156738272812833690483669335059125961464377855149145266124690464863085456941528826747082386680596860373834208964363608351295830329333527915426032486556116277334686961217678381806687586670881452810296417281022209888146347590915412260854512345548271852566204847444857864213189701455391262915353581997785722181770951965712605005775448254958132840457444364884968265355140005092305234511336052274182668878311452696082026250439369786186541979139172131317695735191282273601205695186953703929632647188732820840984973613572161979199921019918928507835741525448848049286508914893491706352283303875949627647237472374371714999501784709998902699675284120411793140814160825412422135428928417963950120359651204137553214996427677551778936685269608324480645707778869302806286404362265319365848101323255691364877741608206891787500162449352787661725547741693315105672514896972163913349571895565232621973559809449693259120711548187402470738982988641509651543286784596741221708625153430761795779051831113837731285049620730007990299774937999340476623421432867275171207164897709151674898189416342856084397519814650379875002965656694163989475565142168362445795885037713930828552756190995931862253768764727764288303578803343232887384508745802745964577664465978879852804898980832732816199236797870716208422137949663698302954347377236528893177749390244129397464426622098276825028260923131440979434945319042354514672424594198660827949073266018065352476719300997388467655666134771104139953939102519343843357694315840466749663603557480585686297710529460244337501197935847520593721762868041020932727227470014186449464743551644684295981358130087942030079317383636436451675086226613561403275887362435631801494022956674930607220124040455821182561059352619650013879099256877113568093756388142357439385073852285502737938193764711609536429833097271143657121047176372264643961092870108308365115508446541900678247666477475865954146608186592167408670142423652723688996727337718041479725088987544150487912927376890830641099374975873132923624452645709582080629424272817744398267851803247521591192577201317118654273376961631307260388310991015636665988131117900808199641742132475422250791746844066243016842160667535525246799953258894369639274452630031906163635313098020007706186317385363917803960140675942491666559779205770742920669143387536408751910316304401372516700575918741880539655834545306421418824676121507486135688868205490205304072706485290113742450513613961652364882030108617912592765444744496988442300642294115663384474882959932921536086266328763554750473695030222913429077865965793999203002778148445447726299310377411531687586333820049051277649792202552987633959379762403755623064418839653570953966291557863746188601664117308342504459696091154927866807706406897455953340631951129049023267496258617968913955792286036272798377758080127074106511551984823111653036003632392191535496093764800618267969792034306270785597228746232042303905682188080206284747545604772474380700419404805377544564224857117889326232680210680472631293948838239968870120210636415281571509107662834022565966132252380220914354305299915226850545786208099980028522807903954765945173789184212069316711703467466693906402196477077143088453300480910570644786385337310301399427715778153848049398982182113167877629930047236342756255341121196043286826622350911609307021846269291884648540586478010579196852553360800096913521839008573449132485675108832032096133828595564530382469258914562317295151500834852477621196081788013065897253355014097756838258113712635873516816599579383839828602228194814673949286416125682065624668312594592326926476809049253458338817808101436754480052684758728822133721646037852825046819871124418321885500165212671879309863397877197164475113528569512880723819087908233458769237675882355594553801918918972976813093856029460820343250717122607693490245880153977715673717665042584578976234310787761716481151696838923798683571658178292330329945696541932921284813894692071471935357945872284288454379633087841916942026864719639225690044409254779910148573545798449038568839067980678217756896986095751410203354928422722540713439326674796809783435089651450694960102354638981778311627712441819666412567161699067108574573309707224947945820183393053824171070170299291548499139106580423749695224546166871254076298508520687845082688965563095563165039359031732223915437681246601281083657376901443397672040330431011328712764489023807439463355574958395528740200695086072839116360190678967244578299870266935895542641413550422494020185874519496048779110948854436856997033105536870225874214424670291354086114379010641561475271928825628141226840195459724860174619134208244276272228312620286041380490022262806511722344446247605277704923539219380089522618367243148121051329900028341703878800881699675396959490916074674887368684338463115629942720865589617793755872784547740154224934671680631082205857842719486638183000024788437155286069705860428469687365976546095788298594435157973936054808779455831748980603285937611578883389931046580937701317580507912148231516418893851934430351530305817552158993005053090104623217313508333916888004354423829117920366177604596776747357144270482774071868177291111528861894427811255586630946645930881469150059747944613343430174802423093796263962654363827457624219524151196322062287916254348511123142834014540969067297162651100528259327254115775790570813926876182464863682619211218799491710540587811646631259864011438720450825091620635888481344976312746638221222797986812793092592754099769920164460508414365230740682309824137461344055796475449619976362584899466001569967477151549610305362142111515511220609289304130989552507983991001897619917578213764215775432275818895272041144016004685306987358567126046490367394348412422133651972004700139018229993295096775364591703652145592401081136778059541516493128862651145584437409301078482641793716499306134098078484989235265792562940972437757777196578843330756187619074423703711245199193625748903360054533075731408097577088094745015141277892865719173396391019949811506767388979200227501037901637783731006987464586120491920867379642222851488087355177226774575872626134019415241301412376900482174839806979966556970984867751140319052007604523636773302266375270212219620495298019752151292941306376604811813614839191170621861774517239953159594385180096029138410306104979030100915291775236990351870535074714120383371242333357525888705944014212634421919197882985611848558222603820702248571569449993198960837753006086000982387723436804393343528696950761350769580473908571932318408438447522053166423479917805092376285917224449187436327690361159064338839071651882643500526803754751474319914771321611724404045663894053403011992060967210753244613770628823241284961430095919150926178472848474260971592822504983346052148489520407924186414570442028134431102988952904573577343014158516975211413494828705358192136755607831603370970277137383280243276347653152995886941340837480321481087478240396172754559467071993520932290876443896579999257753653275583875411484300582109595824257426901126552867178046892223896641604178366052433269467432717122380302016414235089996379683800656960993707455977852870362787897826738031346930092638728100489772598763276731642810043122332527900456588374568809721793380029760481528757426634099635861269394916871292575479573341423789756867815616309606950738287919257100122699419620557873990964471807638781552953511492852978928834712908051725732186871963688841287637616331942580035179787688099682307439922988706039113241452407881227631548319337097228899239853670866378471645612037728275899412320813942461769029482631651322466393445235706496913195074759822789791567799959314736734286594839110720889734821165531394528414107532397888202927865159644947291253287493476067786463954146013063345839968335289094623524950749364243550492016678699403530350649420067354777935931298600712403089906010567526331536177742291558062337385326436803814931356568312527334245190904381218185194106647365142936451352824909875634508902258052376659960670580553724637678756087663542078470778542423428393855740609562694007532063787385010168558004976181377183916530027503592465128615569902220331595750357733164397099002974466810067276457597137276970493687642166831855353090546156846039775489493430442600870868612019659172628338648191750261011532512282715227254508567126705646281354917855972624297146969023596115117439631832213613907905071029848379019163154108770991427032358846951630551420758015411499804411303065463962160426651968750406714813085331271936896117220675567427762423485636736729357738028253240001569603108704582608156955498578743792912786021730032004985291595298216465874180597946141494096580197198927662755871899560853343413381925418374733607618386636523016902997995398375189343983243591445273212170355226926091876433937577961037745977065503338194695120320757752843210644314484258921178355834379606911932443199390796446345341586132128064038545401503185221995975982903129188401167644261065016206917740991097295230990011945313789023078688399993985489559564963571628080216047523555417927860191346934117349738549208831787072983803332023134944796479323019255814453810984925662924351179813814665411256089550355666016038273762207072062683963363209025283111057529504154511490267230758220026057125085993591894731636135594968546168207219703500255139779827049163484311085638817242470074153738584840854795252807873918886295292851794705685523404356954045928026368932398436096817796740290778981867589058727148518988088480627229961238193315704380260920673388003573738271167102049087343340531840828437419462318388532836823357316182586314057396787690634039753132932055557499021762865672791008378124182300054238942391261558362852612187890250716621721954002047279612363130741141246591797737910413319889879536936447184561268808744774382129622858179822700784927887221835032860940739674883840337814150488612562721892728369870317474064195510061916194597309943606907343441971352813363478430799928637732592365675767809055524250766443168410872460977723197754145666144571035569172085982376953005210746773290529401125186951658362916387595213242426097609725491696764194807934624739392524610911637754877825483437356490196555250729682725164939121525030270924089472805958072925056180119005102654938499352566040846537975205166642248606062654402560232911465231998028833879561010123176117276219220937214215026614405411030381174813265398257975785190329311398785264438536936586470851658860872180995865254189852752330413861793308770695219677885437402423210306708348871089586545945018286699533057778087901544277907138941913293276311583050183879609297116090858119705757542622448054099768053365449725193774751638418316915509030045839307525314920056932382072227813771636563007572432597064125029100470783898940152089841612295761169678407885437856661053053441602752053492748082536081606604641058942673039087454462966388648110667227963313941374218280704551632915917753002069781196957096397544159949594373645649226073585305897861040018315749199718153189325480348445783068133342691268905407553136481917205804921181018490881529620640018067128797058615708978129021048701421710539281838953098579900908033864265768757391332193105378149308315462924254147238273867181114081978682219789373881566944920745522282611041388054723758790854537184656260849724759973334455611225686871983346145564023297527599426157371924919233908481217332813394259024428588194123852982295875700838794740076982833526387545587334545424566394048080182924968310808916170965813014747915231014263382237021195288742840757111616853763714032974220910310848273026687331503474537338091551193818205578669275003203465179123378687330652547519596805034969914561504616761347612841131877924039518947123246802524419907174089220250197129399328396977788694420324428108430967440728627138705454753636004614397632291218088611912514784912255714956053512641643728083611958609320869949587359646725463543831742927764078545613441652034858365242244894059966439266619970657759854727715702079573538923091570899219950399286037344521616735693269207539950956032185957171675974512113426527584904018123161813152556837206708487654730439189804594806951189093307171855547589811862390647909398026006130630459629007353171465697136955943176336966553579927340204813633237051113829411337609542909299540381203541016911510850937812465755644800249434962561909877288204808520698053028441585075015033396680830512326918459640625084846610340895877975514278049322845832632495309853050090926237361677815018633778984501552554211869972442588614287158790542856794565465319480315568388255115055177416900455580832350250910575747209342245936925559900593282033670310789331648667197808251976926934811958582547588966436188097286766980747212140451412069909848799748586964679951781993497374937564552521050208289356186060879888645825783712977707517705973065715164278446632593913358139796564078025555869400967232469495137346539949342235474173010201763710204612717584890321382660147229950343732115936008353801643538564669611305383670623064524928316135561283377019259753895397473739446942287421161593107334498662138594276422160748043574596755233173316400232948481497978510026778776598774227826467244893603381536115812868492544777593118475761632922318456155380424398569525041311838995154062387230994108834268104436507646792202669202085388872552645452862817775112554544255525665813548361288280595467129507372307750279863442510362926588876853794278396031325322449907477858529456932535832222321005528159519353029232865826133011887500364602133088952209395893570184107664518961829203181473248106147590961241002851309672686221648130640320177032172775025297109527329610893866699154899910875604546914201615948049332224574829106697075785279116864452911780480002592003106838782663666296780892474821061832491860662577414767310364839170291248523080441547890501788251676088650767797049177497499871172249640468050112908821179041190901933023834064692357438867353152076137047584448728410800722935879963036746647293963309414362218504168595149887798039977727641869767602921200540264299676454878011278755978150514310484883133300704563227979448337827539475893369154622450317908516728708649069794894090427341864917610524465043927211592037088863336101680317382001805121223786833794930790080915995729736957849918598245637465232278261818717853608036959542990353400126997411589370211549843773022003797442010072257897073199646819036664495025448960199554515858018737035087867519704676106096343596854527504730884537488665831323429373063215537055450642062646708297341801232143212529106396648779958092049408596696388422225084386913702084824446376785428568809238764381478585215731950497237952354412124507038164745968059420324469252296652591063298453749972368495816677019487408664004599980146588270758374509980057658290038735308427243646292378159581686305211905368429387197690510652458473611740793862339383025212571229365806042315682827666788880859800671466344761379286151605127292859182275782210057034416850887828609855621611999253961043629096544008050126284234733047287996915422708906976112304383760230886298427998349124092300164426240817497464476213147151354147674054158464179296627896191543828390946048120569900790132921146544082420486379310706279450277930046115641100301363494342906858882566406318674999822515908185017399364471360018760306285731045283452575433631673144133599592115212817105551531828557621664023631306327102742447199753253075117386492321963745758220798395892286901037759557578906541325376681097595968485087452070961499840479000933436647647384345938385027301372937601278985922003539274021046584262764214522021856056499447300480111551913670295395677191833280173920997262292461395703109491935578063223636814077983227501912888136818272591305035806549734939260619248614480744778198668806259529293914089179036458519437166957346215787407289975306142904887432519719855118516823354326100785404706899328768678522436116438278099372905542308169439900353690072019248661218698569756249784999643565014663849063620761328956857373563171091213254396646866765460107127669689274128558889788414718682264741271096190745295749887681050383071636310216831206773517292701149736337856633228951347627987986979849403767362424675278272530526951033790391056678925941008053713217914934282094482097350287137752424950391548738828648368144960300833023491799107623264522317170703089816958879427943209056953746894449142764197706932622323697450336480379488222259199788966845636745687509122959945646619171813179156749160388963746629894184294810122303068300739872981147398205790994468263359407187445765678698552067183047716177557196315883776831512097649140691667161432924462722846442108484660211601001172880792646318987034893922187825612870707356432627754071613353560936042139740013340872925437154790495648994590001926514056915021696965746097288396458208739642999774913187171043721228522674821266097322593842527048471584530974582224791570144092890824248961465428417698703183428829559582389507874432069301191168708798384748829669268554414799736472432117592208852732289926892225302695943553776534121371771353959074914394452672407425945036742245996463195152792280908244640374629768729075549592068254784576149900411875178767453653450781012716837086277783036968702733481423370968692162377310856623105244189944568677955146017552645424717542767806668939693827091339655816835583998276678910391256205563710514957658716990491653524852064461547752987032662434911104804349052813288995733162814764026356571403369280749454085605457466115540335533300590264270783484409092455830797444478134141822503013482944846652407822457435641656918320262544914243189790149437427048584102925152625902057427827828102354147187968633006878205126154907261084194734927401441535411362870310370718095216779634344007180369273661887709228258194793920006110387140182558631329958338548856377140734528721055404518303154945758073877734486442054726410771242584876478900298524308218867236401647638621942728630501937575604289019037997703789242302005234514955758797765954751276746479199706435404701429175109606809397298810657481574184541771291500045456582511680524507285857659972836975070143245340721539105657303494176548150454671148618910144923800765529412508311859109259726531957914854053766806141435820132315855773971182652268060804995690269981510886884889489352421344746745916062437265697188831750712435411828070784448404112651308795121880858607610713011836072164112930432321062667008099592265813856787766675609207675287645134129745637114014475954278719645405241851181037888440312989770469345304325750325938823718244178064734840335478160076529528994104920623491100915829088310293874229081579190288456858077617238288462699407717867190620147987801257839404548548098713387050979331283309214608520629504936368569408067827027955341181165304530640057364686155776847216546279081772142961557667633571655268647528589597908622034533954939882892088690736574366895053431376109284060912365927647198511991158649627176288198940645530501031578654071753782879582940672543294940960707119887289434665044819315641660340553999492876411231552849684636681238038915275578548027965210910938662597100904317049819015375864557158694079167957118204137172751637776580530867942745096042479303866782490806913861156536779584756072179519456649459713259828802347659447864998228608994799024731431248149644111699167069961720692446170971078743009650373312081793179548295840268031091931623803551374217137926125123656483266014052373946425311250528678532248690942228988124139726342956109998938858020072670666133561134038721426314945707258866353165513473988040210702821574572847292678937290032392909511658162781049404500332879023510509461685056531943739308091917193023921731922436749083753993336633883763265677386685721297437031826587930230566121681402574748694282836426299241271893549096209853630087329722281685761183430317823042679900388702451711209414888078082037096301170083569005054111656548072881802268850764733066456636458409724702605379821144474975847280737237534843814676904391979324485937029559396293060433299700996098308213775172271047698898607074668714496893966155646380035069629370913939034175270093861324410334211155505948501923541527452280987483857220920809418850728238728822775575287231613914261401685129218760257377806948874750707308857571007230854637357035945256745719929069699203283407885849704680930922185137658698378634021588569422505429308482682024603348778186623768262133174286535779311567716774799109150705989280488654023156695051332152399351215505731321313668566167231178746884099937997350957752609806930018480902926432536161060735785489019567913962842483396477679862117323297115655731334824079963783077278216662898839124997045818248257524468573121203756227906190313262034719462466278942442505525760353845433420065053857294976239050295881717551538093014454377121535318603574329255401425309674657930917488761530741372710704135132027205607992466026698273699755241391752614844115869636263379047627930036778780457811480531755146970543349347149196706197692950893190076236720528729348383864282698119213539987931147834157226063893168141746962373228589572023780001246533984869047019252632391877309173995791495186663275801172000868235116638583469949188053820605717801949680888148441355226961403113231982294122254509312332388406346029574434648563955809568230506585237584429468645786811438347592489370949063670206435170301919858710471328929218275600713186455305322233480555160685227967159577440738250337875147646358958036580716998480485159611014796058531073437615147659228111703599603169678080055388333028540824230460463133200644292418211557430973188394291599338500462584335607980377194273839756585523928998888541075274012866721643121648638718253258263011884891130608601029844296832231756218319207940591387134508882889039386694215221857344180421101443262084894996562142708294381132326377093465200757723058682331422195695877227785391879674395222414359247628897189972747253839342463795902081140268024118562144541904096458975765870251868478474648859943404030287527555618088440777668173530831860935613990713405655779375498953299800235328212214915660771260124167938779557183583817365859893758140769585756473796742036705217278411715747777403523488568481099695168046582570520002934529516501195727012336959852243406960631284170682887004644235905341549544413579326644852425908062701318591361347760556091996307141708675381745369626493678616580497497786948447067760837147067536574498196074938218442194852226652196539423397478743485980828667476076116515203352389515049629575540837443200380590280567363406394830719513072464849891242915052502141729817211404387798313722117784889351018126378009458143749823305542508948506767145623083078410939539138927806138745919304275316805988190696632986934344971178725929827261700389666921505131777566999463978844142920208969263745214345685150002970367853714205605313546890381875563579441785374703966184192895920893650433328265146691684156533542801202401521315476335959686543235236968670129605877077042477564606901451087415023375364287698682939882269613026361756860004344354473985240429790769137105471479600214410188004641009886927574556223056515870734002927956409525976647159524891616638388309890020225203378450644940836195527389370476582011574679498254339821718776796768583969461027547350955718226077815508378783026816662726839290174613594477788060350597335676765291233308825645671074350310212841008710817798726177062553217592150935688087769555151200884865436407454722083169818095357763944711842013608703723730582400384526047906634151435041797486522643445607469763861848349217013769505979935980145797268698862595754168907276912666808656966574444624510872105526946440665326417197815761200904720363900784247155821246675577171219271259750649070690891828517320762209263094221352854924538523403556039632782777000123270264679904823061703796623288934308919784758956082724507710361130247416290668792141153788613526096389251328739231451447188786339312379958035303167762578435117598737138087547513438490762988401212680173701644535835930124343701670013974042328256760879450418876728217939126840490683434646673724123673728424121934270765610595187371301917745174022067205789897157118480521266454802935846735098307570045793510406089812572995634904444332952499485612195873911744971033351317222058329865363597991727718679599855683815732536336333752257950145587307225500597548106115798303725859837403291670252737705903948975011609750638504735192310676627656354478769137705682208714561022255888091960702988928597232488238535461480856595664345069240982001570050393533179046092348128965776057566206406746458031289623207311998232023104269132745047988183651664276631065913075594494121092271005843108156646512543889695154163532055204466078663950022789655567641408641500557805648849296726934771074171120795630972477639535862706048707165746225811409487794448032212414533510144288395665264017615190563362176316301146120536119042974783103394349765831078146242719375999989862500811869721420822678635293786747034544057800873613153077051180713051392131951588417095694351460386460404479185821822889065675150955693495608915718734756974073720041566307876422162733976638777786216865134412068350540928056459393775079701124579893900652762202839846648019027683918575254792391170507546647518186566563905057136903498310343401432817991749579043413811236962964996753780329342667814883440650977769911059474186900221206026374349460880551963567662348648518176597362702587698733647491666084132395009597003928830242410264568217145207995391479020064938633171352136881826399805829163672661587593432124889239261741216187428857886337284390170229474009921710211932755275576617930155725167653777183647927545632703847659179019237281429470289432973005676399081135665093255186620241012700914027422425485340068801106747029039744508951764114229763149442250949525583437536720386211463930476688969248563916107680183182352231041566365482737876380626220883177490996979464247463624896040947724948220719061809765705677710102388017395244184884195464118199362119855937927920371128205821410064974032268363924084421047333312282547718690655075460361029460576927717073913790789684787924461930342120939597024510643727298301461758350570041569562016534233729294707620561187192663043930904911687829710611534537446723063128272467619518404305370229533013115981508830813484789673887078829584909456501606873510557895229943414503301865697104983817000605034791281119225768489041448202265863068104767823185284117132471229178595624461300652551029424359686293912267628458331507586728429669939237821444900392268785965477219682726684495507893768292479325543573320312451022516649626281965087981477553300205331299548910464668511865366466042165479974605585717357496849974643749394965252371068907821157107647816248224406325281668505034994959947642215488097083693296466910026199090450206768015258606058196823046553644443332531074383021784534292058163100516994294251444859096653657634607532883877233752224709648152827167554825505266068332154253023787472891924227262378867499342964336944008926130095467640116745874357598259879829704458196515243781813997894484419969432302563401108545721493205899765251016011223271737980977327842342402598878220835195188168182237771783652496475926725002510841160198673973469217156467530890138980084305629041373674433084394065918811382030013178227412336428216631110294198689612206142415926601993293474578049083813446876670301544477085194868713071169981198442577783980800915454777372198026299612018513212811283498952510422687990869582214924700564506074883463714496894418787168545946130843066116316960458269639210123897854993070819644878384059563070048732131796182067643337877886986604589069344696122214698482581082553358095899827441857183134862949667927717996264404978352060302164099060718615504788079487547330596191274149018781685873192408217518561528903187974720125290539696916021493438757022563378483394554451972018052589786827468550906102922705663670482837105173354527343134828701793261363400234973580743612549198132079814962510344137119230017717830909170817699433821601731567109460421532140885071928340326680300907826107184389753551230054835039794219743835801390880692043106473770609282650049227968573214276529579567395292783043159595090173459045539131625570896253077553754407583333072157277270948755369735462121047229441254915305654390096957962211603801890627648527116572048397429578872036472133071767885821255781792741030195061651963483607301227628887301897447686528333713215937342488224289341814470834590345669802241822452818819346581991012670609443298916871899269118552876313924111761656512257600645196320114307163334377514745172795277977543401342586052680730116328720350569901083410531089990977845201587529969338166119260205175646697542378944885151945696034362483988008880019819221977640979278500473365755408040546879336166107317796569704941712708746652578159966823435291871577787254040265668523271668590107691511024088854445372489930491915744274114635026210318496381037377023594775529533229571545299193936102703496126976974324260953938312373423373417155573084266004309780949159257913502367485086592122730490966744814529094391562471603790171875730024011980093160088404016960230933606663647250330392183067965828123669976985252985267770169106127675739973090885426273252361380930623712867404235216763080966313936494699046920236954855138225179041554683637884520596339938486616872235949405985145936120565448056868520477815600867672411943774312981887617501667818429442481301089455241277111555450938290138388323801979364049249339343037752109673821198130511960430689467971586511688197161339250706444086611951592778880085665454403916373797050792304446925366578200212205231459919221219406288565851934891044362662523073398584136770893149996545526602080627698414632704835475493221904959985286110734875120260756713816024283981089646888012770834543076969461438424876946570244161516455870333236019575387207105771994069640895220709788293946705762224416938603359047041943191584740746282231676795019057290964774278352197709763228198443470677602856348958780853298653927758303293003313884881203258928316844852124995494148710285456409939008044564735898583465191394478686882217635888659704103207727826732097236127703131551994732448370863037139665700038437338916512022499219585808713342947079811049643243879049258162124452915393349790078801790833840912496809358836439989934557121510812295731855624771847223551491929449288112677427061350369565570849042770015960820299243890949045615206783360314295996122356419499687169936230215125719037317457180824017285308001133313173702598241912396065470654452861528448909351869714505071569179957254072335894553651422590013061493564633697083163160400677286746415510924669344993275326635734688093633537557093748771488322821254397303783701756224178816359747894198946167190616191428251732317118703979231107773270113394892094278586559464947216382733628558932564352307700649840867511901846576267664603035120400935860450992243228067131876049156489688985148334025015059828067928662579170061867042594852376779879818504301220123437598905704615862476352036320051062465087452797779945907960343817172253839307758900136908249726415723861425719480636415485970134382150693883768063252360603191835088220113001258476446978540964551854082172337418228082651761760164146758051067361758847105637227684016150250631483887679005676544219557363131299747410145943615969226678375933530855976425416414231467785640316635743468735048244297285057378221113505597710171911965113197953615127021445313081848020486258476475835920618762882033074718753806628097055335193839753893192449115425545656099441760117268443127071129512585258755372449260449952390823167523623623964942859989685780601340886384986318628726439310290156042619122477088560716802320527467527017135595179694527960752562229833494775262034892972015524038943223664524384127598341866915330519701115814059122976761990756462071172912043180588507855568708208545709268762314924243555197308760902526807624654786273295883148941988135606378603806346630494061861442715624842093996844613037370836891734500584255064245757312771250779246823352267006431997270094914052253988922335395966153994343725746971960552048605000651733959701082286845161969574971418204463773286359230244702271985443312570896865233452677488528167939034603400794829362994400479983394808146747901659582095139912487957676231433491688626648595170171176869973141813277685443437325098661965516732928456386236833340472324425698763219651022286948076273706408117773083077489974669249489538219273397872740456835010185170547243711751468636924219735837528552144306945521830534106028444446994342544858805251532914414963722099919125527688108697171913928662072666014062279902901720369723470982982659337406636420524250708014387622517750699449329788008175229231878052459715215713171665102576316604253664243496220130731821953304628965002074501902386375311451190391978621125164405710886824095943209758344995023875438512060596326089975402627036980895291974949378884681698546840819681814605736127502445694331715972854295385305173986839343182309612988953749950475264765652238009126443767079303813687912996481836947239952077369142266029498506803283925827261210076173344767863517852748693732431208230504157102028688504745526231709334333547826168002676710662941122020941379274165382485495494460656508289740344976919278334404123558612349778193729492826483830586504799086032399723335819330279527242430713073025078500164728570119002967081191397842398973009650459041074869844123534478798371478805308577216432273928310802184704324889268970803800623602503755455732172165444618371774998262807606991472199470086740354666281917896940660315622899408098504100617333821527656808906126846889018018076594614219621142023510360533661982062783672140650594215778432675611107550058488132068876100872740781941574536440527678970305603468315831080539160086472393598835133226613940987498642656946746842059904608352291158864067715783572553978374010218338029716149748565208064530735592460473946454856005312756063101790145620276182165952847187610286643027091423828858228147158357405949791882100367175230787454031046853282007226522406040864883147845230662114926006820962534109187885251020453590602832106849710111365385742137314298182529455311174215519233020586584663681511978199277063596912309531333506527915628594368587722078388900952835722062066303843299157787069437596144714036278252683941627094245537828227646541745698522113481795980216630303227301975274085886147660407478026718767213935980451750745360344356053767193770285310449987055154033663888217495043664446753987087573676302041438633126561411750401281878878248847385285168802543803359777448046130250674627106546905735117151863734086491909984716072183334764779731950198809649206771418082112521450299742163492385956179159013043742591008749203554530616647826798539000196607790128591408272218521136068140674195263828318902018054081418391118768594360975721520521623968250152960278485994012657733595706241688243279745457996809668637534865801876182076775537238726919365420267798234553878323104187995327770317057545585414962422622034113424195652951612694829212272967897494707147278025716347337292803608679698476466981368200129087299080014126615163263443141031948319608631100864703528555271691567942981397172220841173262277305053271831505192600817172512020226255494252987037365448805698424574685188319509675424442921461562554946528750396133696163546818471961450915423846823775516612153807522315795442590106365493623562271047933370596188356722377235947742715711772838613534589111174890475355346883096541026501111395015364703215432682987517446198682381805454520771205565280791769501766041365254289351250144250587538764372802482316564047704277540885713570597867326283013011042574564286051591463727635184746534156470763134575240544841458354475781593574838946435729007740432707252719083796844448432077194914273650577797669698909202274229974706597022778634525290604702863192444318492665985818000294330554616031874788505347705220773356418067003520613317697202129521297276238516955814287217328457598753099639981540713546239765536880100445332291572064847953025536922863836139616325476900337208035318453791689613825675818414847977010287393040351686084412494449587340320423704597589898187918825238638495698286894077482479002368062756348737280353351315264034910755837806153833079601181016094776102499274231473073894692177840914631581812338332372723997605755321032537475798823363151953037130841365998683844807042067919782182013622213783939688614328700528183853265843375236965783517767352468472723159745635750672347290613995142647110494060192075165616129736739143827406278839365115000957069845210824324601785599543771894760357237289112303313273295858359040541721917232615608489962729615592890191678116393829194982065757566420985636871969601058201177580608944189970252631309778790349835483008501012527816457039496241410081723981064983355911186141548239666517451421502407659931902737180898806026548710683978254207363824708903895484882357804123322458467257309519285417175989153956654740387011351944810762784533595477621405999706598727887003486628828990218111748349589362678476054473251908301129625969321491130008082289178414321110374322448575393238427093123927910999832443982862972351681510623299651406998370079915406192047588538953869500603647878448097384106971073494019546722309281349200193891121386098074107659024286553758713396940935305846334336429575126300707757668165977401778661114978160768879418556072653175537148972954765773200583956206866932521308665434465699360035576704316589115711310505628183527208251218573730613615074293400403240325260820489435083420080786256707793918102175742577049050376229552002937493842886176786663308510099342279625459048281557059832825969166170470581421737196273439964890027579153789921428033618224792895688250668841476862159294121502773264051573450602100669485386845810790469012518547101167823422890833874318664787431757864221983369834579239009180506309275468030913962418545268033481454917481042607377190095263889644541764498074751398432242431255313767780760223138612388507963568303200141218763702749809166132003533182024426770402711437223040212981215168812841561867121222745128154720598240334470859556187954661898464366624272706127557531416043646516114496290268254685775156312663692854023691367658578559750992425892556699805921717003736662625414230815705075348702995085348284637394531115066958516463257748225588201038669900459327586617008373965883737107672200407646334312120523581510880746787525245757339222371938183029950194828362291228793220927107119983442824535719599359460568148162822534351554361045349914389628339010530833684292839670454733615486932294207257324304014582141136186073714662484708976257735001857459000308405854621085620825493179088418219220332329358204942795895535963283690378718076382474056201625201253380172161868004877814706686598418704524724313363643931582428962285113360850118679261894780482185320618963814223281176643409871097187307452052915241954876415686793991408017185418199396249496816038969199872482811550556115982105001272048650670822607028532329657307352597733331340641588888809683580683660571516320655884939460139783625749166868923768879316632195453067547228231400562448542115372292940159683602393961680564455111179495564259139361689199834009095754257275389256678462032913482546394915829833741689634482790991363763908276787777060482274956333956843374059825211296518242439603530522007621809107134154764632287990697865148447342912804887868177401552245316786835868702524127253541624165030572181628164615595134101436261990702565069927687948427222903951977160495548384351253220170347150146027989519111673457560076886368997272654714187411387881785045021764262171385442447023376292724663092309138574841926785768803828938178270920129787435374232339116209787021581496361628857867065205468170548948569344604696875181470808075064672810418628329104150395148154429081333266909663470277335988003210634240242384326855065141213272605424494164908882337887893651477884503174720623645081452764839114027132403988283572139172446239252860524782702251205041664524221474397944412375585047397080327645281296629099922219537296476368636242103717530696246668250382264846421228336149588715504170027557669260122814854428719874635852472460683131682555567910953359622104830893456558071085888214775915615147403866235645527199170311614196993513170507524464429774430242587623779669571869036057924847222683625265801419528964891059695771895003230991620199802789297895021065670112827561508093886548922742402394671581204016910435169195604489241826670880859662058037636417219883144746483478142812259480069795147068327526311142634143362634548250027146824799203417319002993890568569620311466224760286671862619238974558939191802150688951301650436761116115042157047713537696532465289769815276060806005639604828631033289694362941356422435732995629639307732131331867462337561361687235368288783568808891277834005633224085999040281992755528326656712472973280856167958261410083701581817697713136965024646879458613689865313693130765826175688752187279679006750737034398039568171837975478861895287900888038050779298267972554867208828870004435065347866225194070233133212394498247568100381843960356731596421118435480649449173604414341997500895994560249318770066047221808490160934550525756328303799750779820700465534328654908322504117346483965928215969258346959234580205116566041468142797299448561715003364145693088189735688586184270401058668831900715744594907138153913148584481687631814558369036476963820087984329884218490003154795489376052733310659900620143361782592705537750368144402151886426887775868339282820820590104808833181074572059989671249513047334422146874172801490376464287215358912566827449721267703860493917195280844540952101785764397697448907225079490628421156600950105152879876608874152344256082748210050569788478258381829926911635149438477968557641385921484192583846066364226240894972086202031450982876973376106200552189862922741325411898982014272730442417849141422678544288400114749637609270548849062015528391617773819693538917312071636902380403254997520376051561167935145730809249251515103976617142799879145386084962707443238297619389845988387397420219410618221765719800483718804261258392430487443290232576034399713663299499729691648913279997735371874827162680401724659950656975885762977574541406644710764214151139871608992485169551747547907485090847363997722354136624886455028624327863381670441400295764956668603984041337932416862931328463192980260018602328528024550530176967763093895051611456225671227082766018388875075562664887781714725128181243859124436661870823364789405527028460005818032814231858961602821785107382066821681833988355866471236735878293589995988102714725783855913407812402330505379698588054108964274209120500960106096248721835226846710988629103228076813879347060099582303401600826065962052581279280243877080302315739676189229380709102365261345084416847988015364775488199416902926777455807311924150229420670360391987775620455546404227394404296054329672625605048816309256271915021544696564377978533312056184906626703233284730387616490575321800122292044881465962818051024219888739545895350702028573741546984272284370638631768996114698684626883826103967475779240079756838263594806544769330410417222665418129862389949375690082661997617237816173338602474163941663224737655202059804886602253578292873886208626212872051220115857935841605571391197104270511102198000450285758876095361395767094526566681971044212398651811316350560545861156331203433128435900035051621862246914394766548242971890750189172903216856058677558277728044803428111853348894060255350089533689323122052703996808520395600174146860507831809857413797652922004272067300009896262297351179840632874742014958807601860349905614168838643285123762072800897286541275620670835642238181500694084639788697968582044653645655804453724026561840909503449965629151480043520263521596284689450709354468762686806800065450622392867096392775317259327709627326378792510078400939485683106279193923121829107247144847799222044749602236486620255193235846710686141987759695420743887718696304437598082972033413620246381452298421714571870589391608925045000051848538117187291982322432084214120247649216187512380581195217657894902250667767671195334411955478493919557291178877209959751766077987949335070812963668499012710682219121682537590226927039574530040280899019214598229175231879554194440555656952257435738950070158489410940287982900647042364575965014447572163486786815040427907679185868608955039927234090450312263248755695013295149339214503995855286762410261094515281198660095831039958905989355786855194923856264801693503122761522630843187317154427996063733534256927202507838502585450096755141883535965822786675374343356930769072987430896949716216821679570246840178755784763207595274066093007840975946272533893951834389788484689948260267512637473918081961600016182161072473684961396906828391487395200757644516275008492524717225954447161508658965430152674503528912635858202026816057221545892177767580636936925073322395760786581630982473185424606766952923773678355765250085865185128610583515098405019711666082141589899461913520077517104902982525731290238293506538028868143116080695430113504849995784428356510528157477182237374816037713579836728222788606522157370406852691722960874522360918639731673954689248210264092609214180214485897924249186541333087160214747201793430672432153705769204911410281883052153117513657542806335714727691528567627136934176155885330314168922595453926958808138315652389199639091108338022093030999419369045701534007271944670629276639826354444025076606091557676740908974226591024755739468581849827876098572354923358486890419325816563876934986566145200682828239440052607904024336509067078493590247993686533863757715026562351020203510635940685736058860193161681045784086675606741592627774352109318320419704668956266979629037799791443019030953430352860582776363609210214792177022754893171468548288399792894011657771041790870996831241761557198443450517149619665477998083612038934077746161832598043884552973571187230748781657956182920334520269073237291432235813539707251965320453410968085417999675754470231622387415314129112759280234256083351047306434509546427445763498130136365575942357539207162297680043302625843687960630286982865055350947019681181622043367273007424511238337039588541576316672181704473216470977317910500586913393698119083043021822413291490572161437719128041201082611430599298109143921163120975440629169572902030199166698034389360148352562801961124625052485403011877101264031032691779462933371438898764326201487700464452136568673193479408423104352033873847984058276833560206211841591986143284565657322996963787494892286984478635400583976921544910997380526356995755481619747184871641869848361162236618744661160717546890399065533895266067589806961797965576405282857700289440470525417214520410814202811416346098632941211555889867384472424649788421485820721094262432342308831606182380837460134504990518256876630429041768472893823560655638817401546598464158826733809346102020335218408578653960944251793783449151917972701744443691190505607409177603569567809426887619381810894497760645157852670129578414214106293046610546874859891944252247231673876632116809725763863951150839744920705567751197790946288013681826592099957749893959881534115760632167853134725722818163763507041730583089381782150153529982266613430095020681838560652047974511805219252541822680723250606101597739636727706539604599765992360159505970246257093363105385846915042940625539586953008431844845410044991551461465923061655968672658326028420763082356642103920359082272697455436850592122683488149625853679322434608199405834605144568556226881581635419813996073137676860207565113564803369761465251707310974189405864086661091418658762765847328984061793424073497082216610175045561646734607063629833648964724387169383343595955028994625278592496009552609713604568342361767948335922079938903566073980326506503044371400940130558776629242370878336782272939896244822781087603399852567699687004259287252702311549190276909731029543171807411780189188908404424301216998554425419254097087913245696345558862972536273689281469739141636821760765534876807769570845981428706434815510835745912309649551106553927650676281374192048285602458500804977879138951341738967405131177192397365380084704377489034928588919663015324143061839038669571487967659988175880080507247239169781611586924905701258499660189644418351117725589814978367503325201568052673562570685708214586118686953445564092243737479155513758439939581025523666150138821579220042445227018159579572349082224508240064023867478545474959219021493117691538037652529107714946222354595282008507866508252728440629384333263101820544132272403406775236576427828650814972530168066110220791681339623416833741095224517547856203207559418581362797357779639005352330624088328685153777169662419525114614549431323941754638576621955466502668797360029953242162893580732316053962103757771400166907129170105465499158200010755911488517439091721414095416320547535354708093303289984966652118161283069663705562282707860930963998499468911379935146201747783064739193361994864607681155643782697686792706827641520955760979456871845294868916998259516983288065606523449829452243693258056587112678797445189145825036257914963286877433105988434055735372568642884263303420979572487659960926762702836390439940947852750056018493441138842714882701251649303768313875139553865094672323399600024215611724386342691593614163327849502732242284813449549617376364462781745904129555846631909984278222380998864324225163229223026294555526735493059647671216651477785163761934356147064039005080880278765996054367944473215556769034884139697903422924299053343205723683541551854594596601785546657243403527951775508806704235559813483751617187448864522747795229096415263224494099373355568764962683751076431231158789323127309509870712294319077045935505353409640252081852819662225569880898684647754738935316411289789051397016504896576433386717441953617740336011971720710932327741812912697798536229342190969250526864083205001877669297363116928939407180799708918638370170740723175931040997159283925876370540610501246676670907389886580283575302836859441810958575534238687424569904960487272377857619056388795735115104916918995784297950183686929887887912849020379727172715229048336041532709193416387625996331731264950166126476109206161420415344203099657569898479357690954124514557156069374946665837397139704004038662608162679459920422151101634724638642593976591305685712054777233737419651742478664298537509379718179936011103429617352358068510843318076629139046110196268002189769668647165800824571255959313221697506643130536979966891724030710533857355537150900423682094368630944185207804648424663731712286031637084901179163475667559857595609382017584526302879063092011492149897168724884742102261599114531523649014147959475526105567611470091095316000893772534713889407109731956726017377208569009209758438423232152187620881709539926101081248727229286327652949789678952117836493319338850578766925000171002399132313204809944956698485599646637870199299034669752495345986873321395342553279023725425108820244677717807775293714027806707676986039527384945924592878420350194063980575274216677742372214006446595446582158164490692564526281152904285192446995959207529507259600236343798645784201215737430517405271157627385800339739584254283794143460460201168922787102595600845156313430094871192666372896141331307504102157905004270869981918771556832661026817611241885309773313765029866458370814881273483671685020701074234143218274721878430060887724816458970688605334231633206499304852545364741478415458532735416554815969685699090670820220263590594417018634640527483128123558986603004378832072171626848268435369459589686602340119387872140486039319135137630278727633914545626946168589468752578602108345129576211892770735135153567122688931793807742401242109922369618932766891924929964117869872764255035669366374499749259076005401221205339783324279104888174955794622703870522544681864064908717603303731244825690309751353856363038443724297644433840827919709287003576337865948225790680109096720477527958985929149629113490072610110667950840766858423621515120176793128193324583363153247075476942533263051292706999226121474927739749715101609304197539735924700796371228323723016307893351155340805879756852075910665214543771864386293854955463562231463436452108264257238717429547120021213271984729290648570581126507510911982712343057407855885704439205618349724069304076449069881787811388536610837046834114319750260128284533126999866467484283202713655038823239543471314386992486328745216857006187085566754659017528992813042502484841381008806778275563064666473163488576246135781038339231327642327531136341502264887936094450852492765636448378587223814220380575333551915655308586575220411876067559032345091022107614969923745682696652382055398271888578658110596167662761935910523329542661547487607781496538507153846633260988336335000882360171900943700033455859764883164406571704942412322455206749005749249809657763927799081082355056536718152856816792026534244468536119591523386421525750737374781688751759703627142708022119369066037523786099259531271121662088984757281083427731851329274978855260806036857513489167745373414502363900720336950108574566862321807649819356846860715463237686095087963173072619736086969869019375672701128205921417126602633425882006345573787350422806684505039433986410059132281624063132806596745643049901562185750334808111808377073832420497786448954594792332860684411308370260382760020387483356876332924631157836676810661488756204619767999553693469736443593003124144452442703698828852879404833880372760190855628955652646949332516632334972729539163814486180245276990745661963522111891613363789114931192841229232956046130274093501528382417058682485496934711116533780472336268366538828956449147498886034404294489660211350334220561138910607772322671748884612824447252943113197836423840032131476657444695235322649465753758769131483381779498430051133326296077172492883389629416660193869244688507794531921388358399125842170643882396929263084498011711544610017971415048868571577464038681990852404370568145183919179469511094650781531105573726367510647480980804316300996741774932178971836534867686093235082229394305633596540563289512148183610862927826761861570562967430344836085663601262545031512423495796900752025933303919805801911969612145264340611868523703563867740913289303788587598559847424464858784607241109042045647219733587397026802313889775245882146946779728159066592041495057824542606825737772464820867160457777843652064920460723716464188775046179777813371596295644181425244734978796546391794404044320996824731413738103727388867085968825723554973611818071148178829804792867332684763004548774443172249980168035346696845593718506082719938703117637996527576538005359557890606518466523096886105119516244412103808209653503902343245566836104593624503118701731238104412899433589045053338580446183967512622288619157049601516794210666934567888984912620454175510465075759341921340980728498570913393206744588469400104761782661446357016000991659974832116637496069354027059501105963743934851614310422892570950130015803211593665548132312771945352039865984561781038630296943052756283938134153344496830136639312342633775292846601463714789864152899703161981460022448064624419788468333473122871568575065899810974160484047358875907772105009035481667377763580106181614115031830890761461203727659270605257263407579066279039962742177747753994037904432055294610091611770761097997552488524106450696552129945592397542211241246410459890667526981387402238651516397004854690622164803931915643239103472114350699534466271342032455881589694782792000960039440571156902272623370665167612357089606952069269170094963469507542924270505741917753334177383711535062946336384755195665108033356072876757594353357798667461101461629689455403629492158719186760485988611710266446522064248987697369780377201963582561028371966455863976693268044796645006409734185206860146880500152756548899550593788430721237039230953983655124724088325800810524219641838686926037822730374036253101112336669556360433156779225778932793037669354946192335469626036523055511419628463807119904459786979896704673242639146344748902054394023733381968801143611074892328276304302769927758158383656914248992400814587641985936468382411334651839147529964477370826943864640826277048593081371324211856716126137865649888148040044047217726864076801158545808733133180058730118012136051699857908519207944239269860539249937935442921079102763784514256490459967177221034496670298513206100922844808000770041165297974284235872386373171390118128711333440679177381514268051590301405308273153542478603208354144081290704714385165200194618167963863425213424569922892044121879693452267714435572518306601926071071126514645549603641146726451617783732313086919329345884632476333496783579396084693176234168183221268887380517389960478218213792671110996337734510311610903135706047491606934969800188931363560350044126443787017223547632598868888671090795671259159626406958148167750679701133298145640966499386074293362423183070967231852999464125285815131687084568952808144702626013956430735844519419348583934434283582156105716992483880599938165296494731208532539175543143413405924641360550576135711112992178375602074040216544438295862330322693668217505518178689731826140277455989508368515665812569993284952014074873820478974893298953858295197907652647782857526116294145259678747411033295200756028215752664233113788497178838361158768452768090261244294278035543274588153406349826249354411990640465084113221195458653662141863207205168178951776654040530638226978516870424014256952713558472533920092801814324772207601070167815386108311517201685828653140042714480825206196298654883454453388260378714405349354349432685926188826125807397883308155820926533030514017056340522626379673200746506103635559519783028487832276398727233179083498307837377975183978650751995094081506297405053041184466473350128887727924940539119835735013798509280932571336111783789545916917360686545750413492305901783092820153861046984109958615211710034886440330034332588888326393047534803935897142166296654135856767835679641482567113773443340632165769068813267052515428106936598785226655000407023359832962947373479619085009142829863341445374825257141628487350518449222825185858889569119237637058752901107722793030822880122854398171705371557813755250555694380579881862251363438762290593743961034750472873620691836794419625245353901229480948431988172224720560122790462414170664393113744967299335625617999957966385540877766463115619360194591779653627368312716850990053272184121973528653998292610445774707362984078230831855686192567203893699419681437321696833152126687289439356444850079970217936448499595256911539041246090088556252052631068206748872703949982237495227555960753749301885272462009620005325703825419389830750341446804024607965339545702612245698561051716226577075272425591370643965283064955980036238240703371112306967036304457950663279621821316524967005099082624037478304508863089466366976241997136590695907384557211615217603286905340077681014942198800059515387285992559398018681578541257853469932175053377405982166512205262169798644912951285404364076205847507822898902319985760472727797009890290275601831280371653354586952160061488265505036486495533615652816657068029257317870924498788200114302200849149802979849396062757388135804145884777488372515846213953881065816492092476932810842111386563933666980821151922357578203708177090860088188061641137572771400409609100951064164198572129247668679656911452371795645339244642744642139445814065967049882611778389672849000953289436766353575941164832128741140531329325424662624812337001995040090153076119958383405485591808917121471061183734884146815709191444313784441155281332068684673729539607181341632524661051833333309881155239143870082480673494414904864009211156557471892071545604751594550011956276656322564522285174320581509765879831819831389788864833631154880799666236688351032399293808338672676658027715693372082239904203505149874656471431128557450932815107335874929169662378000386340973366628391709096434463737733328810840682853514493588436853731851733769089329770259866027309775952963360793039398552542075385608120459125728951230134575490542093622556252648943394527851685259425924184918826519469683856386298149262239452879123650525533131990228633612543229074980013623046375422211961105998852339844544006717837636603990666201080102355668215879555891239551494547321969682664221134000352699738511194966489349978923100616399480559897158441233375060876493964472586005330729367236557234699687852243105706990792942637337906901434294470935107929777942986804310072277187033877839945756313799040168707227036780165933500601963573492485331912367881355475317611100133946298411435734951658866749000012707513634622745509415047523097130466593817719877275040534156284845245867379749783431973605838797341475858269047079728438651056506209531721512049976401441706998148639234105936952637826145346877032714881210190733160621676684263744882961486441198633289958363577440024254484871815127668918244218405170848566378719429785408646433748709460679263873167417787867552015815005904808340717629789135918923595764042922282905296300468034589105638013792153851281258958842384422210823819209106162718216905526132494550523598108524026264854390581779550609320698170862587988192530419411044808141083889825908589780765560131921806713974073757959887808616724948639591132860909526480934572965576223068619117344782059788452805952901845824235590724924670474919734246164473272001479084457766146074923807089156051360511929450863835932730561277666521388654522542541444403814610331165337676823405604415621358905889388164591830718968233404140942272815878219514137204384342314536106232948883935161445870451449988482034201708863055672283384437620736163881904234682165527580876387484640251931531833382988458543042861269388674688466380416537708515784493519557489667782723171569356229539500960907983342225194568045720194825687362629393508714054926248230511981442096511658684110715687067532048418043517653320522613814201480320323073342016430444695868745928637862888979864953749711983270738393486719501293925561112525147375345684978617082462980441253839571800132058422128959384990610859039642050736528270769564607645839846692274941509594945850210407078864009019578552309235496946757764557542283076921553565515787251062862444575478237374087485526386198699314609277191485658285958083339142743233249475810499450447390588239440563468262750205832688035581810251149963218669150105748389918212141423311296824862422525588858705764313424298585182945294272531713716732422749828808649130691400387775113230138479570627044586163311400037274606098929304401192976941684880045903199510980654781638099176820486122438147033376764345180301375148901602769981337314181443970311089955841763140651588046955528866678599204158354654628455733203630392649471699426638286490583710898557298057033863112690168317913648490001734645024640970346981313907652776397647915971498680747090828803313776367399022914536775725549550347078601842741823768111853194842656105187936214705273399369519367336079022261102895638416382280347505295275304324213615582224419311228547280449005110660768058716372600414745155864726634274409387913409493477657589336023589801078476734785031048555505018114793488393425087623450636944583793354413428282940050231879565110280007322295997525388867993060340376275283496553381432074029946078357656401617949374517373794986941486704496184444140404371977435223850942500014694657100642274999319024049797811341309513718528666593174666625656091644021038011395395488249539709385504099265978151024466789877609250123584113903002323715944861889937265147372338337555292262309844610569695684723605674384890303743957079387551654897066674956557035702064821035130095102810215977573176207893038002115424444809278990065590516650900011288154685700739669598219816645999883869773736978266614512367227338701063239043304351236913385702616715999344610046023455345346442014461366127499430094608345293157176336951882132527210584603051679534224544340939950234096934067345855755188755168498527969119417290347356688803092905587428850584145171414990584135204861146237068213087997796272990825098925692708664256218338758078064805968006773159489034338290471504005010682555411813642797636894804197656639177743634145998982521429302471297790694618384849645253503751451927375711175778766149319631689108125201520084607941540810650002756193183079507478755437516099613815225219959102430831294881741478506414850268399629057515931308720183716201066056233237631939914299222259784999692329702848597941859659041031571770532264386205733751327293086103184204033048976900397182227438549994915686149732508624527944960621196942978396594670180690520610085668284039525397796450850946266618313671772322463019634902957546050715128031067067848354704646828223495855317175529224061174150962457662093958663064844366310761156705369502108457715695640080405145414004916465103886880968473139230711510559277668058980263382943475242549712156218659138029423076769508309737066949135057069352481329738453131319804143910574013005067287965617903759964093619013354417508179020128537349685015936097955039454009429566954514085893393484747155066467005592986830323067314233095363145588115038013055430272247889056874118607205155109702536454227470472883727246636759348158476057170315957481789277023898414754511733190159670001730633980730456437335714875376847711595497592286989592843535593630605662390539455894050568527111942476184568745426971830003525284867716168082932359927235316485909820294601142422316422952165915466871246650263512268944194278657213443423358320562024363698998063020752175479551830366060354678814388930480627080842297001308165654699130791010890290394522393208731030304299386914360580170381251827945060361624095836121249329727067252958405780597872752563576108871238662638695219706370467991058788580197329694497928261567171426612227131528694665053215846646783684494287061113155087477007744291060165487489315561287077084189648864305026689441079654062367491324426314042840810782609102804348446427960213676268971160258232132156345501424825821503193270665533712579574056924936709518170877956646012267733968176886332923114370885013852922386297085400043649069029273353389563987833399567651016071562100350813092364708600919479060870762850051951072708193847884991957047958212532642029194229981274687477420400025323633262473873682014646052288291773600406227588280524325273480280580572451589197675866466583777394098677850439160884151840380876915837373080858763692206164604453289873317356630831025834778654227383762431439250889208805483980118970909965952545875210945505299053701565030509461284024700696582872369592535930210170361938053074211664257746128195035154323792105079760381535459695212013932380646986734949237048060136223552128293187800001604381846764142296045074381671554004012546941987531284087041574940167167022028868072640810565925504461472898564809222391517392946954225646373890593163421573127580475498226427246406696141810010300407624211766193982216583533121961523680510857308516076666308325394530193215178591520808922850373976138094149026231107002221257838414137117246772760311969946449081300274397352167601860449992721246846649655199401634673465399885125699658145963405920952494190027589466040332364569258006271381974837376747185060325391226035989897159767044668194178553449535468008722857324636864972869052773388113896900186300127857282880505420096029455653300851099450336740924222244838830339011673162390634712734655028519804195402582171254066975809248709691697917437491892614670426927299867483068515512513677260738789386970539485959262467172908930247308808838753991059534465225978412618987926234047866741063087684123639499086882287453746745840089478279569582373790512277933720152318406708754560296821405707591864034683661050395667134516777463816175580121021796383996679975752477794209620088655416161772752246687559420544378532796486649526596481564158441690222875011744506232501461966948323511622909590470390403954903221597575353190730046350221125512464372508381415196740734049715183059191218206591733212684279523692113800695218360696591004401018152220537609732800515666153423881714352135208775431655152575222172398559941007938453622153604157217493958962067888715419921068549330302145117618691013597567116000638742657287552943673492709516390596792470614924229073687494378897275007551856049443588030853890945638058273391877967766714506175839290362899784086516157285118948934274080419763884033900555985535088599339991048816771653465330111068771523864142887427719435318855142251292347157180250208205872871279594463871722306435172089786353500236014693788214586823968669900181174491750399481067868660984853262303214539050887804876714191664306301425242888799280618309173001651346445506390161043295745421343628529323157485087249170889529472027604203635408946349461873976350419043945750040013404089159607601080565120810721699941748103886790531782981152282928666687798427102404405866058641628684969981416900013205834490484270005068050184202503182278427880970980684905598519156388103960648761114120706581276742188548367155685539431791638636646224720291232968298268355879277412078038838916635965270129228053523541914813069596379528403488366906081559137181942442965195471016020636317234368909194288035074670117530783095186544353887945633408137878030009835533475035800880410190775676842623158807943284566838908811261778475280184299438327554907703665356509559426254355111964529925400246027275297396979188110723346203034684928917998772830550069240137364482687542936996552146221432581408239182478822421905049852038822616928560761088715891153222726958645347406676221114621541647498530145763429085152829908640931823310820374222147156570831842414141311508392543772265816752685124892790857544536875989861011481126809677814780170350006634954188030965571922718185972632680547398649687167478238563677754836103225751921018218384081419879823015632432304335717369501006962277512746633703318903170897081532434307772511805884041826181796307444473613018285142371052206493656402391974865225303762809977831177679318709315299504303124794148448327429671569719752621463059617781967991007604888000469469336310810022196096669806429650375549124575509317976443353756836893277521780085914840106454999174999196228013404043386853334479308712740959000155444926175780299868447802418962519591561616145855215548734250947743813023993816677465016851248585101065055383555331585378065989030413092400566072974285295534291387174764104070583936335886947754973120305080380029405371151988705681659186383417972608391460391161012138295775497546083625542315657236890513800734770305975328814684604765389239341149774475951373518041849374442231525857493560155630335081945322273360071326361322871548767539177600005942133731406478274918755647173099857774412956544628072894851509347300176686395214240493741195751954136118240397727439223285268108315215368514157965426480922350188129666570205171403493623037563271749983173505827597284308432345239171134720391595015258346557264626017961819804661702768222318357329229656316218413088250733838494151821383888345134222037725941826344278325479943446934011566560216090101547737568605686441103840431758839563534745343030748828783639395568501121643695117677749624424676607042357110957051487569675000871843311556075698339654716497608070967234789028379674165751412021165459907912566052437135904629727609567364706395387345748310866732848194778947594056547435574335716857166453746414872641682580027228682925113724914658470212739904232182594990186736807111192782972819162376926363166832773483144792275307265657978127025578581415022394666742690411840000446131260881410164022231149306840432372187086233567219145723280196388941850222724927515920363691100532836281076539264583707310021151283723115896114737468349714478623359490376833742009089318580464152043932679022070066079495590104607064219557672604392412035416276484400104515256797463384198741899360091365762173868135989081684230744734018824052508895839054173562887543143658083963163753119181746967767054650258382256022020435334714667573794266259282117407747148195050727501364754143044586613828125091196561808466702717638729693709155586641842380115779769937441116270159251485408240118602337210102627951495729193581231549307296563408051016191005763790344622981838001620753659898651885314359740845518439121869183790178318489032522625778478081660592647084834811209957524052479555065274219895314873460140416280434053393048129353596089027469491688186208746356082172751356420098422823409197363172611139717438803355994200911483122326666298540926644545072014207297747001717235227259219726129904336931454705618440661687466414284845448588985007259287002217845260174271249904902602124326323416677896949559994628740279579014253259806462055739434949962135251578032877840535863075122017818875918382473786341818441241441581928609192191700017585643253238810062958107783053028514644417672645732831702333914631682612725417142481878711933719935880055023777380126087535603617190191097333231199971292197623795815488861657245869723008572273292123336155819685916612084082047029821792734994666276937564490465127655921441582945689182673013414985297982529387027466341883373643876280254226847531208573940011249015979218362344519785446665939374668191132253225266952715050408272272927683084710675273377032815759058840325875655149047167627031756395006224594124149935685578992536703568900686980725330431879961468098890670055340306202883099299871375912890104924116395626592636424910711964717520283986099342163199472031596172075677461250422013236078967257587120107129837467152662688910160684026018594597523545457816548468215073101087185433835655059608380516371614227441104702533799481355120521921264401338179434752174190359914796840269562136486625470729267754432204984349320039887896210838340101786417322429681040217000953306000086870159082463024150425081438352245921603961145614591566678703330750619972669808105738873584793221970807890563946458117014926601144075263133003043182562545028287574066394487811772938279303856600045539599845674240652941134119788297169796110119384230068392535008889379225307746832347422525214142085845309863594630926756170893339033042862871103146919927082883741014605556592233887881462533519296791365939742904952575385521811962168686085350197283908920000133973412477719374962557625808829169017142710722896639360894993376065232231105496563263268200639985541437779443890720697510395340440255479821271932565154429084587612909912780232643989399542937926349058913330378641712258097318441405299602813719708952771241176139686866921439681326188573132668578130245570761641010033169220523982225630089689040626866929418356479414021437162136737243854940468551633897995427249721918267245841157740838407153802456404171671680277553209996263145721174455533982557990861076522687196382443605128482287078647310187758622252214198219815623689058881690482573828384574289117633284215326473854012819598318480793206652802556007588051516772642293351244773986604243758609390394982658050444354746537085310151814881214711375169792086597467430457241127864630530180035326108530871844925035577720565175131415782584270879837238636822012108468533286357691767607322315708024992433080172528259554789740865586611725801979517401641540284159322388567072715343217312616364350843197174436993527781586441038018604146238638100702978902220090308432598204611225027567714492722813331965399684084609255517925249352471027693619878239798756051596171702788478175427311288254444495183484412363039202952106611920759763455944857139935148350093663830883060018506226010587019972868875757605678037290627890510596325961540175935885229675527535891770608014780654662628354813882686561688106779214806161595643719196296652149134871658896835602983950084905920436999112364414726048908735329707352127520932934114795177658219122893553297770128461221129596725656414513980751847028942827260164948288969585312616316911371377355270826873267254308701469997801955440638942207354615859276292578412426339197255643874198773908601660505895382481096044152768598430092882436257449560446636326681532818329262207297192756947229918458019438376568261125842220658391347472905991159358358509286117055932321921614119687211128290061559371651826330626419993027492483812211014153785621709615642806211870162559125502978425531752961422291900772816782855270429756421163281136234783625645304374214490152034190900339866958818404364690039882369076408317710495344585140901620775227141967036453668221064479012707191304100661902614824316669634290668089447403665419445277928425530617276696708568945722832790911313634196765614840033338601883322923888630264465812849736892943205265353342203740868151984882796914902737003928743296127574013882021051406573562850411925597609445506503949361136236461738010183213852870203777807089998360321479429730963043601016154118533756415774031227902126999853347431306650369987748321822591883675174866962256855293129397506662265979421371445390164098984130621654978736087631265343843647535049550237724549261349870373540977201496179862741974197541136110958136893964768124932016331879742700123499079899768763366679879967720220139384163517783460858661848992212782691843442269604811891272131838151058008045858217530237232671594287607490739320022300400032709322389839543486021328603627955033812127249898248144568888694367891704759929765978174142488293590121057705284495563075325896858113227373193701246965011202457511138048259391156294775532737354132768951036130445124410533730131563149831627679194052213361001701665975749250384892797582168886233291432585761112170117630933916557306614736037118841672542141697042727231138746035246267425989449079449051916083809700294005187519001068543448731635140816837741708272920853869816887157704416384897412781096795750640059611803308020800648316491928425146047367543627480660974556926779172286017921375128377282920885521463815274507270840518715187689515505386843482286476221808290282316954208093781617332050560264079620552249002534389606630424524036302727733939521724036964153465693482637740733421832073486814805486176633689840802696934927228580887524488509837723767380152606211062529539104430757489626066209554609364767525935700221901852472125962156376905442737037493981966740804210917661045770584105577334921648233505406880619149234475548413936931703445079697288594748290791081444234756827461162253416270384755203940657000600990391619930512934660916869207017845509417568041982382186894760480632354170245442817635823195533203888413869128504474304805823844336269571669654236204651809482841056375394588818706440265568812555700353348840512920525162932767022175058249048828229162285897215609334255038743218208721752341101533127256390981368878621043919134602669467270304606086949672354466623500650687219568710348694005399114567613631674061778874979331544365548710656099425868645420517267511368170565818848410067785905680289582009664100570613818316844128524267089831786953898638752487511300208009131336580171423976846995609639354811706930617428655830078548852176105695148800637093471716819770317732624714058050039031424820131671605923403575117274437093575620211361995777439342661413084247703462311471180407229132307583973416821309898560047569362410539361605600627056791383996777188363149942396038721142522189040078822508131947259120230946101449389352987687511651701312505803148311994908079082618993043625161512178657906204639125987623745821722537682481580087327139574233199948269710449403439738742450714681561432018343054359696617012195176215368797659770943441468718966903027210025790305910764459235244177188069924236795473101108846997396613960093855543045643605203655936787375027575259409814056806224332291723017869833208316222987193447237177978273766146169025598956340221491418907183087463983777446318566506419752432966109483784413438192842695076892437843980437699765496516015993706609498500342447196263295776301885468888276313440545605708250176301400708683637591329961449127214861788400083159322089429660581572541602185917664406931826300971412371295417184450291244074087411733777017480993224693763056030194277335216929179070123364445756270067076724360079688514792616471742882138973882716789257794282188980584063703975484391246541375672193173226175826314040658191007628161131235906697837844552815453021385610799557997369839738708258510292935328573260849360349620264596051973428906636853226847059271531284200754123565785600173003392625648427616906598609170464139736723846068504643923025541201132723279880298175719855685100559687848187664534088876088315533051118297945856632851744713449201029931628192555548653029820343459417413604545721089460800813002075950639337775789661526401380392128388784922169311398763123660571776269834344364777527912630565796132289535135644256089640076149459059498366177348347495277926791688355341576461996035089185451579816819821205575497199649791757688402724242120577192053436122515783948265811116331856523383109701711596541670662745727831477417642549399926564365013353153332164860099950023649185160039642914936300029674975650277961458681387156959207535152267362164301673349253945242514810984675778342947588245130316289242494708532405838889870822091147332180388524101308002197231754108450475445046566993077130441330823523635388033173167249487583327006443572461386816561390594888074380370200803260401648805075029147155611616026699192661882450448586672485200896197340487241351538383649974014291841705333670549355357808094558649657234745681034704093773293272053974816449292585009329693246888790000968872715585549726914801393379573641951245122229083940916538397748355361777036766213840721984905115691577355987808995008653286659812269286753863838577151593394237125380574642092194464952574514833751725263358446689582435951264623514701956654216393870911189165575076743216293367497017451062253700691354585229401105560339594695429069705866244861903875562189724167837343772870298838475239569478226125614228895281662675327088851257677064467230765054678115409227056560990118692143478981292883608321419023002760430095215948660907733687811761599703395643786694969537639973626277737793572191285027326648501010890262789367153594980613421892508390447344956717940448109166630697209059108372093718395388730311733945721053818389785265880052442706902157820760248141649694919114484426048466840655113477212813776493869095235925273590447534106584689809056544358920816648184201357573288005714458728592313733661874522699165237179342999030349391554264845616576549103857123562589126804075507642292318441386910680897714964855312989485958807746461614999356875447238661133290535218378477819827218648748521474094244049817115117636087304976763665761717146804086956887756078985644950069285580170945011300203244616005330524012379814660315598085524617371119943361138479161926233513308487262239559936561654212102522049961663302329430201622497537896408837661952617282539732118729308802654743059407459269704827003620880524038346868877845928029209445785605547532211386322116513895636847690862605572497226464925609831384977866473570557566098396146399792596804165386660858390024483008436488006792112162316618564063015430170457227310455736426655347650442435251031681933180286518925914492112392281134423095086713662539232948610801792413740765248838300536015716038655800700459549765039603545763413218032380323509991511250240096315125789108085347947694750150311400109953697561385248322323727557519832242287687569650920141427520210622482315308785014699195801935952552288867405770895108118670634348059079431357081390242332726943057946556792578035192062994465778906228501045537443442870012178291452144612091682276871962882504878553956243275944332442934722424985468280469119801667067102849109500400149667647041265990764177516193319921026083052264401102131889078293055657404964909545150636446853673362743394039136643618557821209892020958848976795029962062688260316760867079099744996425294011007448280552745294628123041848878360639328202399615188677993470921238060026935932088924323900703283094818088544291464045529094134594422472419173282445473477478361171329787509468487671964936503105834197057588361540437716816752139214424561165874493626088150854314245327803097934753248942585395890841755381986039375100021083556982358620548100386747380024297794745390674600672342768004737885167367217548854954730211182845706185934648696709904520378222850706610248667354399197676792501538092232979818687759937927766647518607151251301651823327449594815826138191646544232986463609769651783672653890204762460439248677632374298411650295602256068457042518972185535935776528632740648277713918171631622643873934365777002817053547677302235900546307842987205275448411524175427742071096469110199895215708223731463366242663928531827186754561439064061422182201749084076018931709005476001598686556522611809330624050814825910123323938106271625081266540243211581114031816711174714304709278874674047820252622854297810117743282439094230470254882178228873297447263857958241705386269511287396114157446613326944592252248824000238497996002769773586306454931783457598389222973672432107619905605380266977141476811219593466879492696518339653711651024931335089761982330607829396053191174937971552655117516836531639946541949745696482735045461669433350035381342264603354446084151928099709114927066793787107674557872038415016701963730186058706223747807035933542313466284869615615714235729317001560905961251953857754348936632327045004937766406260593957789199389765362644586365347306323518683459450077212878571477723831740175030695833569315947481707977934957079964451606321590160902945665662622097316041634823376825318657048707555029326367293937732178152671420469795771109901443267932687859653387395038811555648376225397115897898658927868021182971072545539797252046129721956716749180651929553827859649439453085000125786578085232475717109972537877801939786644466401043856572138186666153295348627019520029544359787376199792394284264573131697565511014855024585894967851672855592878793732395905842241365361173700145405813219090246976651925840999915801850840628447895773102644501177124364949872263837775382150737805956175437446422136650904910258434754653545876072908211388934816598278647662203282580409481322998456778017693846836661823243433832083394257021923869340693624259732248811178099922744051840733269429653634415612906423654020547494901906324013719752199811961092150278281527700158067701946274427012988368368450359826133407197902413320717880809369475736142418564596471305835356441859823741989015673375987399513269594137658886146308773295058235020023933871748257578298938717305945710514489446015859748899014934371170056710152469723279061502616120346832575387485780526990371443075343702902515523081234669676103523247044853222958094763388079264713185359247471135208416849635524940675246759910450123881683596055125382132615587933218529888201760255622142770483377789888032867643123348827317453889948978382769085773757513206020707246485038493449330370497166346116224592807850649186821589775210088107439948153389981797645539559272097282616323501605218669861979381873395373488083706203593426040248440239206385865766776479112243380409722467583956295823454402884703925855114886274649794527566477401773980939457163507954112020683429766079587528726024376024230512850710913692551153952617368794491779527023307804570344719747330464076541693744352840369073637962997951835488167414926487116014141938914358897337972229074850009390090714762441787326682243177012827363448060801958413936358350703194671696752429751031514131780384091472456936464025793440809320437777659272541292862735878819024444142916197795311494896772538237234688974450856613168833873465821317566443236274620178023622888525976533361397695188665341626930373002030464001789419250483237332192966503745274555264692485774871823625724851292431028758095109561357102061360967310873037258529815883981432054875662372945970609205863483608305048116186763891111629963557174185029604086231013716948768211944586622790254220047931033525553442037458765201498657612018349805083297281323089687355933682189273107314392480140272272579426339113319306723730237177363841004795735863031072073323746213993006649755094012033941751170930004812668991369470951249276189725039277358602583891672517017732708908826174474395379796637060900518015956065617120235267290837654888354385084137626770809221642919787780016483894354222559281192847316496670590575966881786996843173109370927122493506010544625104010892474149411545628588146501507892740280395404606540101516137518591330539691251972783575420570290524265766937686578127048365001194867286475504237779827192112629658976023577228304273866449642464142301803781698558185639637301820077732178924503295414738860643894910302563806848411918046251593275953766188971336636078823501338063292302560664709187969052664909182015903411924820309260297133415372854939082237126132689645815717795459762567064697743166007099330392634879544792063195804200298332958209811870647254994829365332706115198299108994067829975620626346136458169711029615893074200198799277970394162941855730909205233582913755797617858110796159496240969780576643342351375003850104452495938956334209152786840918777774064420224394988308776360423512166993367914327323473922361036373903014178853225025559086502234726818802128638000526029420474215878678677032174923677202085410550724631485275718744317552148299479484718481453048115667594696766731433863079996417555101358418013452318914467324169349631991240530096783358062570974185235825010477373390549147836532408105761940534214371399858280896103474614171574687297596742191454619534081998402648445445754258410387618317752772631630365227456506272834601828681432837063000008656117600858216807436481060727604347070398829628134568814630497422283481429870616147505671403866745911638811925765408434403832743940480057204306721381190236139664593812674221068441201509621554608636536889763178021775800350874665379583760929014499657483141844902068621353373197084695435443830209210307228014084439029938995254172936717776781251640671871409485435825002149531102088577757645229387875053622419362634015836079741270800166832994723251678084152113970552031505799744485047656562275595852577563280432655835766217929727344534252261806440833430378045303199089821544282863357144577831018373823607986698619684207078238035743070535176986765580345105754195462995463610521723373178407218069524341838064039823315438809535934500382390828149799676369301908016437932833030117877288063340199915826429760813626049846498126171472295489010656715043392961378332616945374120572596498530706633037824316683855082560782247104021211830793194275468082793760579117888947382592401884114750843891373560214438051846363505158089666545334793580368662651953738190365124748034257929513647809391656265916874177405814711481642993899086028197775886860555756366510577203569369476049269445914664168082005471817988926253353457914045653099965745985915894162205386470430113925881141023067703247164283287285587456765518265889245184797143625206763804379637587047387188017005651018382196653068404750307594456385149218071318762470544390124610312508542025699216142730200179695568053326940329433474192260684953454122859870675957173820320540341744086781792853013487350538362854585110255454235453601311091278648095237785968404154414293502901573217555847760001137502832274680685783789843203731985425895127462348567791229066763849068079774078605311626877694512717695000105808291194130506899290925125814552489553945796870918676469179698644412391201466221602359725535742452028691689147219815626551206178403029652141710284902825231005811196952481691714248645767304530020885848884057171545730124461088002828545080405003447856007669253171485986437976864231280645675684542814396695987565576496712432622426337538354850493019727717716817451221001220082501012963465066159425017655786593788207589972397347734841042883239549748701256982076677799220942539945070136031291124118975157332505792224563459119092473185567176238087631570925485487543076223207322412285187873743848717450100721919181915734559521869677557354849010557986288711133214415073842289455496398943779890842313276399373044273109960055671144917366452258599111276302895290067990491499353359676985573747203594035996660716476327620276689165963126723038285946444760433333137195639837732770833358787677685966333996269732239163338519712672092087315596763014997507224733874730287566947891333715901950378549779864303824886193408284429338119532341224865967752565709163332038177116032291759535846539295378207940801938010219101181681212617546808215842369643022025464581397007998436349020888943354126119417242472632814143037536996845838419690176733292920839431251889060827468413720546423025205234180687337147458081931084039654604022358048010752444645143138169223748558282678462102907942212570447675187110800961239260517866837838282559545821488199790642014595551832175523507241686572698290448579496170311242224415844181971403239414056696613330596178447716317508697447280406412003337709834226157336738457629355826068203738566617938840134973532128140318994171852193827603540277760538075234849785936811322953443951044277778608137354304242672466109814521641443015031163831381386037236866636651750657428926984396356499433083464214286062096009115289089096231917236983591457893472978190070669384979982836360807952394676207089793978037126585207956703733611629368860650659189468123258570872897598302357346858605759874290787966461048400728552613777869519742554712120087725837362644362599002957058122336959169760862328046802508686746838766053303994351983515806153329065939329786342157432965424141892175554059553976556828667851356208824865006686612057428726978528069064058890312296703166153156386224254633258124760033950854760268804873131944227937535735614866923329445674399586804709513591253644942304164430376999677366551317561890098937036913689061703861894132308620762164993617160293156622787788309856293644288354164657633263346168360037452285608911654927459560542289685212819984668770792464830861701560087031812440221424742114560727497799377219177340844434355279641944359234527333634051337304249087664700820466415624578494024203322067344914984353467229901755436343759605682981771557152114001061613460721958215784508898828337230904300413653684813083838702798770863965312874357224627765768301090984932548779222770882401871828593402618390753867671062169493428269452674587150415411485173044718715224622138247933760413706841565404314521941788332013405219694443591143225956447278995303018989167221417096836580458667845096855392992691414305036947918394476177632473809537760774594186954954339228096632061758351110786180981263147821977174247454597842661454204581534500414011686666026701270559834811526575533558231710838500824881348938742505887604147834579610021496135920933762805115799527428877349586747523071458601511298245323210710827153248563469805150968431099378305221744614686582055023424860542889984123026584307324101981755406599518720504586573168672596838223759929523001197676552250456849991300332698738393601289417080921582059400828656316697391211533466908507101123261225880562177512037324241656880286159728423711932841778486952917886017730337083248363503671529246157470038976388809555427023156999177598030289070946886134309334016012819714711057637361172084068444802824161941650652788876236605436352880067664203671110958342290589331854328203416178516124966294658761121951936992644750529649642722127240255269641809430565032317446743963342491775119877936075281595845007358730981177681654306372167845613052720063052725793920613067809410323188813866114984453105078607075270763154137597758252853173996263025263329887668724195037903290250292792469960148941154066548415745508085908642451226567603282790068891433101888260953823833335605525237651524872022540720259048715703902271945608753689023916036966766419258622770311666713443763872887317952320649483382385627285336563530276043213853796402231747923322245197402742708390794424962635074972622118369845784545705630789915298649623643233110600587189505820500424064667529525121363201486453207586966589665822242848547429927045113233323046004247462429662664504403111407246611876415829814875693779414815877554332577046371540138345866729187070254260354600055282680550623641716160991856844405375525642068189637393248219525279822005487272706402086665808569536592465002138544508293125689395185876601595415593036575240018571458097788569907218446350791546898355974902557649030436128107113705466805775920173661446204821756992074401109759549037889419577845775501926106186659944490684810960297677183433592313868639744599331503704188050233818896215101675526100335741140021730712581476513108596502304779894519725984736149082157979026003103334534140877990654589113079612834514663222348418550624710959579143795595312368588768895478134873607382097262167003421612512829058780365727956015701930987257151089858669874332645587203605836129393310144146880003809703372028363413423278620995929272737152357308814789108652063427480684340550050760647858983867139088791855761552907348821988445572317316122759787461502120773495907333446922487724717466128020913223319597321801477833628669737668649694696353732186743228877879276028476636822835592621549157744436637226748547612534580667596363951622720105203571776771889770963763359060235816812809343734647623595767876064298730491580315207037017857496888547185453484101095540240216435580827828518162743050015189390565069639777311343136849024966353259429921597394941298723249249891488995304167999997799387539039474686537266746972965967421517696739386232939219355861978729777087890984598392379776927872926874338845980913104039040785323934933458695077015847363567263331404556211500089953388779067298085187041685910650284447499794519131972575840885390911468714729311574981931903678858866765792890438276795642859636489032002718362113145575092200997409089214557065558796873427151223904629493962250534903711864167986409784491643302341615368312936091522624920583486822038211654372650347444173722941469061998554026888641444086727032320839973996912858171237210637399950059118429440989365924599592595543268346363688852805710367123804128794921611682939737717781805373705718246583180338530331749066177990031262334714588961330589989293849674059899067977764143135601137762351487573334898189965946511001856115991614194787135373060839614419719742020742222974721111721966284416684035645004017292753607256557412782779306008100210440109424330989402766812746446306482115467660739249442650374090620750532281901796706766234808307772892213314890356268423992898017856709753453605661231268156552179890588149722211510287366018590032566299546601437677542126284695860373562954501315420981825768085040366426513855752099490375077740511551236825324229244654740912409334837378832735941414960586576434093818196272725974551314943592408070072256157605633712416899417450014090442077680976542191885742830850028895242124173977076994757463679872834423410190495177556832257092080390773368515480732927098827536954635420311426622555874557413827928238334009640865842776279042303665217520460066935288401727947508676928180502319557663512308944725263351957223550392861514358969286859405702529978533540476390700213066367620485765231384343929628484291856642799223338051854059905969782978411487188238704145603743370045227432173454650503538978820938766610591704712415665700759536066664066423538289572926436081452051983838504452946372571786456066226036794277334646340538010238229762384697366567248744672570080704882603524125840258326683904089754435857904604316380463261650671799955835607846578203439600100033528923156526034266026192269515293698697698154542648403233899702764640736676024093778341279424899991664831215997708401370668571356510081549229748028465324876798343351247047969794041354633117923346026624922358341322770709826088200459726303509220214679523379863477163326012871213447797311238386556369283889935612834183592865712337768344088889179905305917676962469913375397188359090909232048729861335212423043468794710455303607806884806218985765910539445461522848217131485022568835229525568553445659456739176197550928896834054099681874411861819136202508909530985841890810635852353570321452611993608323959801268306604225028641635628355142383061240094647731688001602234358126154082689049759219353271619055636382405119053959645465727731135986304502549730194249717737571746415316961632974608728519815869850238278378245945890015661863056119256871449914591434108703828384937305123075790269977366797293747721400072277033252820673411955825836531183535635611259337432469602088627129532600989581863699023515191646413916362241897462018465365977411002500913032906855125042445468150828389502838180984117873543286821222154662408798677925698063844234569029047476896114495324621097094918579460920282909408228936563145478612051101513488638809665995094579057029131445504979575362134651262851727352271902236280079565618591361150538136066017416259224783060134551097757810990698643688844012403796871859625363212820861198462987666511833433065738256387835097656004012996825125705396348544455886103185620860433367839804431290828215888689812220251555500903286559210882651948525455246283138686127240993778592395560502297993288281625301677132353583146519006557406354335295203749406602440094621205982698506574266672562686590930466732926710731795956692206302529760442363826260865136707468211132512128347636643757470942713126027919722362027475106996628908330704083952263503183075766973983297683999197360500718602498546082823185566465507586062981136883161118602615450173290763824980815727385496725294913013948265744717628758268095729758947616550069320502497336608550747416469465576543099368685367220114626108451447806878548533805182575972207901182657351048915618980485603453925550794066123190649529888814341898447802739932720372865698586608026204445750424809136762241939742022925136716777531457733803035959160330802854596868416368132483474321866735908376731730114027038101892747861849171470369719542888243134993142830897283603810886010309618149608191195224875156306489579214959972332913450833115080333378804723473452380517157903758525649988981620044929288742524409976078177670990464066500374853301741214595079160253081889840043439727386325305424827435749527603286748200398337840806803071413887900231949792833109098610656784016543092832451245189724872996861925949963853761297429116841926260072226967188635510315209689905201347555034195435094607268823207210399920337275032421322671185106910053781985862162342200582033380256158366299669797701827996151698474677695229610321970624426975960044239368264917127107881300625779005673264580845511282264220089762772333940482428214749774930123211182160216944051002968479593449997645417011593680858443493706164497421545150189883168178632568893158602944127746534933046138223798855705553408064655948309926412722887776479874260274841417879873996631282329577748157896366789184375283337105051985400955241096497695089143863854074534827401179335132100808080568287972574964671311228380066747881197439056870362564173779344740093469381357986346524406461164224644501077185789440610963214437638831037953433381892943714330721322863394708501985018201327580577787407759319486152606563963241985495256034583339397879993984947403305223277338967083399429517170558842119215036601272646585921645415270491298112434765699910935876538971197106170865883848240050188567881675144765410439268769416948734675340911958355090795522919704133210757377105291679173028227911113300824191385092524937268923318708563769042641247706352069662075204367622316447166148584998481559751972027701823931279385246549518749013613639636631066114821908335114864540424232276247714306857818012251879203021712963911563640027978156187858132582405813199931973017705346815665078874833900403948136152674480059355321531432707181196388538227909937127285529061471608700889416941897221932306959936911901758592414566423227067239099743824683502577264623667198665070040307478453387042001320788606156332187757755140649773704581195547624363574361094003983223573863670954882337183344244537927316610524979913993800441981967033549947151221429572566536990906597527652994704429950503076434140099700089323132353145710254502014518888564476485131639322151605500653744737709099691342432186008093264946623506529283965901831332538880327914576914746703461702388230106626362093566564152188840095549846458203626484853268934702439266703389144395800485539817606096411800970898420229685928486903460136778221451438849316740532397270428532007569728507876317259005927927682966351491313025651406501167274515519881666360440945087072978142368380294653867335807674558060308606368566871089478726980619923274185041644560190541691255257892914562410693726494655221146077794625712193756907908065091939822367089406158157158982934201208834953016956554180866405845210621521556367850937143889760474319828756819586079059583460014853430365162985160325769960009698620321792061632283569330771210318131555645405230243618113860639126879115611411661267566605958445616794423102968817745258852848731696742607398772264132134233673623292802096928747296451117704127648290468085916513343092018479735260003372992171459667706100989268539164715076479563515149067029114500982327174543987876781758294869386038393830457608597251795801538371304332740002639695607144039796921832218263690857962649816297358292139235848402695055687166113159980725035812096723138404029754536709855851880582304303195615135848495777957984223315988928841993932079886438307599684500704575636509215593982252641960222035387963226206148964661510459822980760020362174750507391593428177536684339454556436782344857655875165783860296298500080460766839037465838835265963956691947850148497983551481748924950238484781650039203838846445635795429973897586475109348515607808801607694571659718672421672414778608347467585972160129519575571538492953405680691617782573066830334002472631447392520329718702292822440680104347426037820292233634966479836512164225962792463398937179072525151004969924824419682169809167019730236913492107691522586773679785079110934165329491672530910464780944247461421167239737889016839361382540464906725585962704827145465555774980579121072696311901634653189159504044790268862442228952534673746463858656654303955597662186384858354351014694631002955367222512179689110368578237741478272532714634316698431823928288392277251704776143979610566419318531174250978921906343914130844079135800943244645910873949940885881524660248753272878142890244181715852205322317605367430846814450627644006187755808168718367948346302809889303093424278037824331861426055134017633150485072695986359395329111192107159271571348660760953110760233272751890110563060959642379649499403431398935112541351909002494014029796143582985479438158658837853424426376699038250959832644447742792434905684312128872696445757112366320355348318877544416470304068296468739573480158413069234973213461707247611429383344975971885722273236828561416013265594172448945768052418861472666875640003106538581255161951809107316716060223212363183186132558114548802828782894097508716446955575485348259355857443000528987053444190037259097079830546672259118235894473402993778842340320050889102121176452581685679390880409543227223150727713711247073769269240796740451681376751838331423620960212115525851987877946654572432298686050662479647535627467999617622895473469042080374623332938636938692572075855669271125639166886687026154371690614669350549772466549377338445963239074456606180147366092021572680941908669847937289526576943714395917569486309052660525980116314309408556188591094141102032719780155402294752388736284532542428910860460812391995990462683133294082989436756132743676867631408893775319661658857904080922213714366321020521199169134359502771473087193965797299279726680791611604418621784823587014067829936909108843783001181343070382020637233658629215262347175500756685564894465504441814920263570802536955749831779157369743017619390925240703531410173886356778090085551649382062981218247069318653435384340694110872718264899075587678789766171971874111829147463469340316169887585987252648455211162514610411461618885464883899851838814389445920887162908768662625811248630233540126833834831459311485054415356899763947903225618462267086359120503484085403798195446954518247073550010848394400215239045526384073703486158687657338477468891888457296038786447861270188430322919380832883560874882623856366339399206751034438019810377509202059624005655001850276197969351621878559143413534699807748304279455350124476346157934564293448945457250223215632629363584384889411015305398431938153710212225849290380640935654552791074411823970295161010812303967426532919883222212803292305990864430762145097318921121218110887091120469683716958645012260357153206321509626404741018534992534330766824177298989140207492382748370127178450211078751820314572224827246769903943294434720177810561820290919291683901424285143552719986461600736273711213065369886776442398793770056415714269734548369940856015295150332630698692201688968578853227876008425901174695407991391812320233401091768258416143683199286501999856461943395377302296197662408014745156832243624797015214435449771499784101355663877288627896437803263151050269118374854321462167601100548299280509291078372772958670407347456263215824205687347720995498224528810127858212227015954423813219281695772557245774245114282169778408475748081776202568523211854221706119004268318600620314162200866588402377828349841068783171422564068974016435355944985152294193307458971341602200862398325067566147458068645631854949005318825895394025414693112218737869416078143764244400183750842810773375295105971218676100260029680208307809318939744966726916151832754902535121724804601383842941558936798711550412543054856208872077212256782188092560437940527434018492397783236488742683573810214829933084165803808625565432089455767134858860998439505890604636623944683837122041735192374347957102385160748903907669662818037439615165824914791600057542647482452353480464275559206734766010257442513822147571428340013523254015907026190124860958218076871020936348351582425654800319588121896626945863654304034284104712966202214386210607561472971314106782757703101379521841271359797005646880206963617259031222120295432302377076780413338978214644767021130910421648886861715801135941997393675803466415913006908040347088873758530278644458950624154862755687547463131810227845736153600212282909102276156020088207368907976448911500099248184991211038349630603629313928703179777114065038145510875576694825643995743779763199550027785958375776564310186799069880833061665116258701441718113580569301155963380203746214353278984502091615804921013917908422192643708376293749754532798926970868356718499033663505610535910134961679081646675688799303888125247709982578850323556961113348174507159785308186667970165500012503147851707602358194703023402347962025414374068035639636894283414403525580047918539796746351734110489292314161309758255771672501094216805797489325255527130013382327423432031611321778698359786130020848579473686850286293845567854832713582812014614125183511494912156041873172104608245524027066729229183044349782437656768010131623295985784634617137719202750900166051253753777027231557751963655188660435768702680783885285986322555932610089737217046808717955523212798169216510070188622772519295269502707214277301882404951759962753926427645444413876728409336796200165991878916871827045164103682177846259643133594609266643740466977626641889005997145369510495516174570077420692136373759363183067058002000994384240879540195294558823535329472056714695506608784764044638548002805977239103045788243852687944474175968856815882597670304947391914623333595651164502191703893879520285160726716616643714890575942596430440661431586757095182320532094854237199736174173263605395312625452331707660444643443655611437642617070908776874444893490565068002334011601243321937610863898248359891450413950189192534795890649020485190008186815109303821667063880847624348843673705676875800461930186393077693541503202859466844092807086447774832641968066429294730004408254849853635533195996669630571970219248279738353679464807826463570860448780669237084734177894413437606193985953818265495044513671919185860673321991941861269331878734002985689477484339305289076660544276177373323022913142525735353046070553783979303492397523146028963307823475946461836054265606068981501294139207870431353701833944040591857043905799527623324193115643424427111923826733842688484149274098685026712014085837876998387164448446969033990250527052422786113149911500720902207810252017738332596251359886032581955675811267913263144437023670876475241510594398866823472147244993528001730520698141024506484403218449071603388207362822990872206211419524268692937561950589290462313251145667250436124002453342295108079592309688295793954130638296675768248405150660581732170422140947448017724974510387718106928877891666064092580636101229440019435039624332129543672497739678389407960526190712103077819226514038621135060535080418805804269169560852853765787091252406474866603034092192232549572754448019547244986615086403091973921248335948345624732046654046723859462524673300540852958264497683245283180979953643243520960869981464168703544195657871221841315930232626605112159042534622081873716367460889487711872432699161389119406907131072735753536215844025976299418181721773035426048493899381914770373905559204608488996585238892887625196543678471998281483506718276664441660864865104716959690409753767008706184893290259781373284660288358652272213076994286224337546237595414046878126317896613261867273902030784745157489612437474827431706586051782381084990079041690316345147862634842065775493730735020907782816748274879508414195284875837463950482061185098954582612942188054268964941074517147642574197356763287823272218461878557590555804773366545369611250675985961028798382664880679886762877024211813651409220672488148453531632125977419333000143992093387850116798534331796968359851407981617226819319329477814212315180442753794200099058087176020076994271874116633706569770010135331886643519034528859844762183474720296873100269374456800705796056892342768665344719963530511334955203360753662929738796171160755909721054052284734853991428288979207154025107312137596154552132808049592142071236754123554421201939483515119379166892748056627701618761858502759972966373523569327022256653544200080101049714644235856708725856040460783512454524415720805005916659872910831093621148327372183134949712065149500077441370231118160882377033799224723111605321050046174728522474226329822042120508594907957620523796507565823851030366847034593725629208034748486360725869776550545786261252515745342713190373048433686345657032714506243840692777342889521658052095219165065398840807988866439869281195453823306293818346784068769518380094959198875038447520683506837720827818805703502987942457608640315933838772999437149595185121669383076346914347982130401856019913182061550918889381498280893045393020565927077881258869674438291150946761937265305402995135637042494661204665333037868991929379012521366969310904988354092252224988911573530001091161284214659376105102407008479333855365023465587373841472079320050815098513433684507912051296006482657302676731581957107565361380874869612601255841157111873067655046484901702745965498668974787518182476536204416304176591643256536674007888006070300482232902932504799880718428298549820906109550363930573807651505168644204586299531237699362463290114131532001191942588764895297997481438001966112035172695938215833760947141199260605680924186982383490742528096817575297570392855003716107156857959968087543347571877832435226320471678671096882439292025489747002538289429827270490475278388095480018363481087394719841132648589633051491401653812038966579932522329577179783093232154819481818223336835959596968489563394946107103232186946624313487354677805508882408274874654748616447404884939904679361287553953920368938319228458699335311715448164628959030198057838111712538601805985481689429616472894983579570151315368206130526366277546801764605453921526408555864684822092923296609488625038115387987521672106612869704071217385013653806289725925493081112334748403143963441020950396008263213687129900415377102784118678536837266341917267678661957244293066899597054494384401041113907155087288472099702250954902321807114832563148980197495981824693260086289170001017375512600183147233939637808431506879482311618198083188404184769989243066016620767579566202721203286242420608314455229679966707162816394018681564853816721330273859781912229805861809701526756230534723693419580330841525868024086738927888127929879066634724032911031108485606307633383672253657172461568994318929935248163795099260632432319732194205157481806402223266572115253062577517951819348415644417993145944791151724305525205797521706293600588052017562129008169205296913617043022555866282645200638266691151622901114643458780361613940839510204093438961720656617942009751106973799268361329024116216368238719859251302448895354544080470760420847804096824059239464266769907744184198925330620599663716035679272928920038890157378980888075573043440176901596901530738493878591088294019938182559434946730915822494093677843053217479795104167548126214950646707321085223899723037063830260955150422849279223128806743992043644649406695443523209547085387577560241359110473635817549679496846819854770663235711969365650832513491652798470749051418189140416600620459405026405257161101183490527031325833640903462468893696772947748101173031361896208236236606923178312226703285650180237411875300818556247830790503109541057965069992412616440839225120076664980075569475836938636463779288619785653585871166138833318966249312740890499305712309913315144033755904594741513095880620710563341644998239662890022007257642138024098810265924549131135253919849338107455648029051736991974781617060201907583425108536004285640157703578468118092393681099343836595532441696250403624739369710616997346696967994388122744345073651895277202439621133961560609659438161548510077904379991969059391263152471385763235685692390649860757377704114928169796698751859141262258191142593461683085323757417768943475959916768630461268305016130748284118012193781937004149136471766459375999728652924120718192891219020432203393268499078923377567213143920577254411242261253419317700274211405239275735196333046872002448177479553331156869978326114131771753157946223083861551487248495582385535952563691828356488920203765385670256026001243436547337161222731054736538624043609014124943272800711223630129826146799270250191802628729466954084891257530791872246555314546620860280206551549584533570783739969901404426823163649405988870955260857316191714638963323382781258069031014394022378859395150615585346098739873451902079717886422831071527851977657635063079350953624673068704357465380919716646326010034513944134798505832137366869182387867014056741059853446102573901926012066701618643385106701107420845738323523862086283616845617467846900571403963267495373083065048409047365082351309020600258738462560685672675896165847931456244204483263594022053223591400430454458198336347911613733290136613209987685597965171266688524845588002636973790857287599229996741337353684171804625673524956525123574712724105647763441758079672075208988351623396732269780093259613528397783734418314222188648816638393408815035971591955378222784628750436238916997912158658271322457348685607187020595584688955201267075619885377392393378486449479195482323179371316805021163421993571946296033266867515391878482336165384657143991498943426157139051113616492152136885871542863693354395502178105226265874458743183245622192943708446545165390758962958001036558865720902855268485442139377506678265057699233706646646913868941275469702110198744089952713403163408824782810282414167917290191162203671479869534175733166843360496147057365388441149584803378826134286343790131974038605441111500800244450867535255318260965466291968481636786651290235534031098871750202620643922852095694647532236705029061834941948649628936436279282178671266640786230853457583720194814993572052873585107171690814378388822633245524411952741516418901719088606347352940687181199906664182033689211251072892835194590596348888435035451322168187845009098730924035488484152221149240054277875818151116378964929033999037230888964027526561627529680898475498618778178453771482795093382622090713240911490128481468765812535103072170448642828920007372973302286523482372579882266012482282534727277987949846018313647436554230133425277646466622146040066183416052821274457400966535130624717721555234072942652796853914107304530654341067662421024925151796814525643874724860288858720288612822186959311316808334611128479444673603918046643325083394956217761732196862870477753029750714417439429753759509916695847526412368180280414272515807595901473762105081526003499006993159725578900613780216946196210560022553998812707419557742007174552053442693876522257270359635094751186972496561428147858388136502506017232114587819666507864617360978575614954896244517827278632775870701076779262490227757032664693108582956298679709586057632630380466740018932072971180534511506550557139842623347287551789111321438166726330315288036369082395910134401750469574261993260306266745168438807897395168686885083961960939183922439461737080883521726878235918445576345608449786342170035438136177839561987695194202604482449044548113540470518168177422734360802213751152071907024385242844163265506480874214491879185145883977906234375753575765604507014002991715208797176515682430221452069717701411054367962025899763442073577076961407705247136487022796875996818708574444111582149478940435884202510853493806060135031234686462009925664971256595620350353242956462399579010676226238625562031415143325361986819437633549976659365223184439220151018597632432485613134534755313698040063391470134362680704872623772470289392519749677416176735809020352920435618974580696379553418404055414742389159781803038463637926982697714003139539837016295164544109262372349391213884072572651045821587277722873087948940095385774538364225304309133078860068686322474997566608532236599586099432875726192318435097696504578224511195352921472027029460368894074378773627991489425918074585949813516413963083130772079627582977611380423036731992796125814973298312474279777129041680836702614741764475717775618068168658227306578201474564599773052889506278303014231867388173857205054612275630034583325269089799754553952529214272690855377535276197443843536244780394652336047176231639106673725371407812776897609981091912386271454183763924700663539700068952251641885275670315897265288781979754246417477053792009960790129120428082980890074069691158618189221156604166495690684982454926446986540093418533808867957192131130313608142578155228292024979914284954550448464850404970518202534347836827854448727816840733311723214115668995020376556856746788071699240094223967498452215682542013160460811015705635142944346555513497933005236231045756136399285933827214584830062905829513320295095069358845497297503516763586097042530689874003683175590265757989328582696247171169482868148762371086902241712732536458271416024909299584984486540848690419730421882472099290117085946097511561977074991377216015273060511745092967465516846067434491540960345354103956976910796973777867990033774261903347614637436801155394285956783298414405084078457228957213753062294316130414523398087138688095337723645558456733988823280716134349720824300521798568017537744895296602903764146991789874106050784663072709353444319078955630802534928798295475392286375185881061753981543671517722785600885654443097245254631924465102030782705496548349691297471325365211977647917238206343864887287547679087598322561743792146461775980834656717047933108101445678693074531760526130093324751720294374536360776246055334231117842741803660715266765178979921195508324835082324928343277615026780503334175832282895197123587641333911928800429842189141542248731374938419048579516334878199248440981575051371868327354436836534125250488698984154013779446150433424215696500001162152595214718911854564053184087597328112679817051225541809307789449907627219587849415108099069953493905246229241233155962252073503159987992515315122793282702663085641273871545331696177984282291329427961161807154924004520631296779741431758849926362562625261994258235744530808466073957199485813469422751144275920796557829769167249720785297746687087113678198858552122999616351502774503559819350223097399091592378470479342110128449918984533917065137369634898757876066628750557213678249358427068094788630829242415084985488204458357366925084259009693699309596649636386179910743899588066200734072846612506666491285676556892183966179564582870115996478864788292422367956072337250704485946816396086367822817414077785753739625839117881655458059111110566651194896901493659127190558355014969968198149012851668017193286368384764534376424460270886153703437859190835297761681495066722527674964016895495832072177190430462028254158026276942451482862423143556273593528348522437161686427438967063311948084919393971417401215401892926001538787433433386134480649004070322479088474374273574804149540207170408890689360720476313115683625206748446997000069133635097602546158741743301874907745467145805222783399363991461112412931648214988084329182366210764235639797969159210448382611292429819473234643950931272154826408239493362713299618774812642817691203501125906439843923592458837213229989617982789463258100918033563038800045193698884680379648165480633138477483902449280396747690263619944198584612280004280426474211118445741631141562935486242539263648417001231599329838665311527381074815540441289478968898492774345365882390997873829568591014384665685564194545829341935852543834529363159087358882763231892866313284747600204780030894067279941685274884315181145243597099164100812356611601046772056934750002819927999809246756322645863601007850658905307881806787379626703278276152922317257379909693236604293988039284970997575854839937320963015208718201495149571435708706655216449547281055028459218339819349995416137665537575244254984962998946485607519595052058698854342415398113069020317273787438579175809009818883885255156043965783992923810755627025308500083570085075653318839991477134447936018698357467902123359243173219902769728032680111075530005738704845975265724748114408783188028717617347977242785732050501028197390441079585862078386162960752333034361192923875210934709242485105470185625570866944305722876372983487364117816166758933936804324364757242791845872239226461062981178736883521626002648839498805490001480199203061988098784147742672849725296802323276726850214054722670342328247772402519455447225196713188074487401796910308744515509314804837233683370255518275417330886028363207193998655265256939844817727116286014824071597199454966213608058190690815606643932714678582278256684175417364493552028085718329362808237286875870014930748010376153428681945227823558887897812346608258387800950406111981226461571311359858436759310974310199422365000948766845643551675872638651081224988406463696912922472746700759579242660373143309691366249769144841741651836576023040712237082878105859673913423325932420252697788858840258818809152267191773827070928764373613458222339229500388964067756430373336023761299555641901120513519647258268018182978560670343673629604104026470985548213355808686165844929976067546728974735038655944728635406266566539701586882427644302067177170299827354805741905469987555439052629787793538828029636281202146875071725267305651337325261067567753591594399412224697919493871925772998608350412921277770829123644455443056663136091329013574038423307631071638077696465738595875974882685859963463508149516223725916190938301873828062015222395545005428971716375254492592834603943223301600018677300881147284654524435859720437545477217147052447088801532007367924663127431604001779742199814550246818193236752143386121767962405619695549438115392506231675987535866538424033504800017846969252170487502008944214428616600879034145277630853607092060489806935249078721180153926931767472972144146102982085448346637272354860150499187197556604101908844817967376237275122552670134162402795369420397322765301788455492467485421906499797798305706086045864096599103665924579681759045308521069503596269836274585249976562164927453680169786505349014534893156012227894476732394612862186413097565495744051833172711378804655495465813889571756381902854540890099205311766995669657258715327943456338923594419235247045700293162136230983745963253611982475275865838462022273315518051573269223370092601863908631618601191143385633193337642356867860216768987000303500018797777284542900712858849441770324556532944025516415875257834752811403287405346959431512749764150262449682422059494199526179393410029586781389873372456359233382660146495610766613654605092689971742496610779299047128185479628196000887386259147311018780330111754914675237552329494602580572207972875585528233184575648384086396722052375481049589655430977891570372787958316665935797921140660525299267973842625651199055501991493131354613747191718092388553303725629313583819286695733283410417562946897456163838956532430089197276442114581526795946125462624528287745420150097507242470788603869496000280386430318962434011704482826133775528034832445339820566305358242389385359444682464044023713153033238238257911532737126141870235180847986629490337057647446749823674527990014740757192600378852354833557610766680070815726307833085904929833300699699339484250387836510861002578182874705678163604364247954075096510730915905416959800112260999661337010039346320836742672652047480227497677059221085512432097238910017135655295928298385000614006462292789595379822212534859587259867390727098972160355981517351651013679791965430881850173998691175140941920728790441238361123506873755097328912784524783751466055538803970102175381160172468397538152481816855661832247349747289208918700022002565720296304042876405465777414923280942919712138749347619743560428649961373577234762714109882528800574206165413668575609744514047929356733509611696018050246815420993161782828509367771394596464706870706013246602440456025667533338405235368142943736829791736181154297481169032105917107144904012648484291234093202510362059921049601493215975822113958182972658887945855997452580284594762262906960719961279376187042271751969394564207681108381498904354921400389557460618915465839224883203066555159328974017896115563646854068763495189401396073731341127952962846607395758684086855918080965221415447955650551998164176075300263939092849188009606426628763387850555295451582080603359234569898064657554026772384816598352341827825626504683093537072376472066031409675509244700898811213477035642030611165817731976001964268727254683562019136703729156668678168561129556264618951895310686337208959014143825625729022353919937671233827958906788369433190168402587663204210520228239094589303338199198390298251707345285426613370798721183898063050148878374543848975870049479192679327713698521613273497393341437678379669269988886942656894040531083433349038051458441622721163534177170125001392244747787091879564160186595788238442407868314375900760563814294770354706136629930174393273562749655023473627507650136679326171386365656937956830457019403441695792942358815029871465209842212444127644815162135207325464470148773791893866572561072772590934510903572890591809861686330005669951016848493276304363028080630523346511602288573481357280899123040569947388506567272185111612256384340898396853584616895693812788450720164020907745409693999115934288990261122224664557856964776088074190421900081341488884555626528106053326118001905303431747883696466269497226736553069531398887164403333998349935520210298944404590060609500054332385011972520206149228302878890589126449223637771941820197153799974415324228163291707167981597546450511143022637466776759889557115094124316521635762980831127354983223589798495991195646855055740484085969733036044982424850289351095600917271546845308053865672936857668000082319742424465110441011267587596992483843768081757617082693124351162550106152756140962249485387028414046549770155994746106970012418932778193394310035533098345361989072879804233238192795644093621344025389341339443693583117152195895152257644675050568980353468860301877786981275664496031896274211561593587397237605176923152903795549513887468253721393134565747014029597779481327986358948900638498021380661771851684926346314997857824886421369810430814208144193119556879598596534450238921981859321898760599372084028103699510777815228444122658406362995767471470221932116592857850146644739872670334906295705566107261281743549676372441941589744655161682237928418625161692320286121592951048797909975533234079256177679719380637642316035596458041300683952417098254291572943820149461047120157979879845203204629397731976948040688512326165316852450051569777742698506367232945386464506205560882053750587831231111154553983578150519335825627966783397370988067703254378181412404068711122693450159395807476676486860069451410014892437132397558664656280719331033340917454174035943516761670041021129100126069469167965463066637657596842378153417037446886634152661880893448143858336556638862001692116933345570777983400611141304126239029940567710090408864656466409643373188226401865191221505177772154530282381242206990250950798735213527095854563284689470203599910602689277159181760758100051705241970847079746226162990090966792186852119844251013204785623087106742724907038952091762181087449845745791624305369860727943671029713202375972545411979967490298615999562594883514137885255456571984641773303433109520675275179848621337800389840889240010919082615085095020767480235360468642471249513916377281867228889880289160818691719735999273857815117390505344946933065204940412489671254142126557981577557868044409996740197778211990563416075311619715575692590646259942719593946323685777037826392486886081601350780653670937849071813187536422450312447650979493472817240822797840138919541451633127515447730975952050201955173582453530179349354563904684747094082269419452244833127812025689406945274619927878942956691356272457861823414553586662000417029967526715277611836347091985946733437346725303145845178569718198409028821386199984123210625033718899474159909632034100865498496608057680789973851682241719501994248452436071437345363868797425488812998505181428290365465165197973238550599522287433397774645546360624841682661725110035307659188357255348385673133690081204550943261564571089373811713506209640391655856966587714143286087720206647167938803550342112233970101846538479893233499465871138507784299130549869556070745436493308200351566377587257119244860259353292733217870158143534849752590891032097172620343525075977338264216453242418840291765879199943406604602018575705008525336111746928648113510603302222626919596949829201380076821354001528578021339339021422334817374790266655086043649385335520923103743298725998178786790891122720180014357820106007320361965145778714149218755299220121841831505136715275964161123592051626903813581178285335023513336628389631682295046109596124493545209755689475817533799434352288596527142462235516558673466719626008104942153360010578202046520931034828343481912563167330374432438454715941329183588625198818331416050178120658215775544458582237558561558392097793401231941604647775383271798189613628979442291674549617132649014797556709719558824408315187146412043780261477038146366126391304296524022931330938495226031070623934546208506605812746366037839772044168524743466815365288816585426617790475982009977490085633907468698358903680305952793190191042139449919845305979770316631228355221514110928260636064191418822954336615417032859133828409635092882069059271306409862938302792026982788179026491533526476081736575947483037499610955749000525882034275192896821084813243518535082479812475425822491940552532902907836774904784254581284961730349787949083691694945038187556300722639134956516894761202098329012929704240030283443089934498979359133303047880934510153364380805493707383153664615452463548143096553218349373857917548396932673219799374713296456817156329802807268511315412454905496311901304182142061904737633112554079697681738118482653607675438842589499995140188809588824815324374387627503544818255965792474014837911076520261265811597036746180292137646864912524881226763355299657708591635843016578632519903634167159705343121747936710689889063167443275644881641691160557886657026319722092148643896924316317115814816057074326831937930885378645017901046860287089455681256028670990600735508013117429351291857294912093261361368462306829173374032876565839515749032800313505012965956432775832178186833427819979358677074984675456074541899589339783855785396631743636647625539343582861507514653288831899436699194039142542475849985803523119895008517006936153542069576710526835752403261655534457122455895198858853736040644919839016776451921159753200461506949903736383859530528595281639954890388573489490120802416411115666570497091200235974689455270134984438818690607905282587091607084704957845067802180422069489412717834523007986541795921550132022490156053185415233667484383212809767888701190242617709831580485472768347937774425224349401812972854030565432226447661756745729373509629653576514213867517232235927273714572568675406686729662420795932356802941124229345252095231269047445655822362433415513649305707450858958875771194140301558714001305401986308854236089576974810083199889783781538339965526274139813799669352156781983939618514213821150829716176655172223775007649964399424690485724812204208954675934868135543664481622380852099807824169620481942816897413587530555835922807872547818201488844047838531205384759540463549352375332258833300591444252069559406165540974022853030126571974831778212904774571958587654732100029813377457982321055908938302622590574097465978598969824365216293281705412533573854775424506435928574849858620455115027520379845267093560135840952203446735195329727761179778976447449553329118327696400139022153778061500504269350505046607501148349207901979327124812382781711258989082770810056118495773960267593654742471656015896642528707640439151490652355523176656656275225506452359773746233392408882640994578408484206728569381992823540908506797623024033143676084360782220531195467731259888730508286057117116366057557501722826534834752748267233974718150090223984741994050029995325511758817004183418846218107030736128165217132112513661697336529837417883188674342379458121205296995724330536202731304097660402558208044468133307201292455331668618792303284071806343732090229457450127455208872399248720122982374778618863380154419226344839636497690600328766188886705860038885907647002397574298678607794147914530610098580390224879039715304484251829628772287677373659690224749881622462489637410962548123936043346093937952613552223137690962302125020511615303481987991902820025029052683330607915130753844109330660905860607893147752040886267673338550439051544431386202355217039621971253725348913897449209539804211690590447317616230550299476816321386157406897584697036143854093748719189745964724220839465864994453851471997241497753443346341062969874763814315248034026858715163736768895446195902502088716745339782439048893230014401392587355794255438847397889927003218180277155777422622112013978965241857715464003398864768506383647566441739718443509945010525844294503252752623413524752744300222120261246546581013582694801158336236191491384517232457773588893157737706220867761753797073794725504015907066357598839319577486901444254404990505711095494150321196468920912638510666624066825933796884467628162449748268393596304886255150609877814501555585478023442261454077432930715195321519515253770765941358493682416508618196951004202503301853750113784614549028096194199548765307463584190156189744381122309868454268073540816176384459909052777497857506663002755267301075410348577179441111471095750094241283281910758930019206412609153004642415812150725483784174776305291637899798262225643051857792151137218829473547583370197784914694955906075833614397730723928652088968042418885470141773684042033773366504881791472199957187449965664135449281372047782390362296515608622873795267326666000201670410551036313116151080111862310734525096188082430659911235814236603551274247523603952261027197097572774477598343633217665376356877547253856460173300133666356657430012993433282866203314245449960790405189841827012278028790449842913927662874815243932326780913490384372144913361748852518637323710166763172213731258235900860731930009518064442190539533063231770895473014433040441948768892472659162271432900508869314264548605875498586875481296986346759152490655478500775138239377011185421078525923739633824102374514649152478891738215570021099514521798312155811380952312844106744043819529787402787185803217989938694105072136926196694704498423179252021396931415055541720578771564973826315516326630273399143531878875322272084080902886633471962553977255079637511537770350561765657307702142873415967118075636911217357164177736630778607553333484276573956667056767637660998834390504781714293451996225687815338785583099751716427860709485949732497437529381555390799660075024820714365889793069393304556217290274019418402477485992097249604692119829768753043295241571829074430940526538808961005528133168277526284582797979210291537126959558614718897611173011963571720935871357105380571350836905236408618230888134429116748085140851443184328978892155967066970604198566819465165497309371849055765831925687451750963346873200005743254811559659367211441267470710472653384940472747513238796227630088865812645030542689481238350924472767481077008781646899920348083287282077047583238905591395261544827950788495351215309703106875802636587484694065189825043840361239341193476481068505932537865319852708068219183033359031976450791726520936917149862524799360972576298752426899151788617751405974221599138225831240972096236684067249497280806305332827554277589463161653427209367997925875310032061401297393259922120076336604935245371507647551581612554655953543463469834023022370848769880043140584053627022696408619107420395790681672126984931462082287597976234932137709018720093201252068885239578171545055604614324973088892726452887179747195253091583914949901532071818911157189160438077673539813622995797568875423335173135469230499962713611507290541500312005132678528770048718789839117235833744108828669549639246606406630727573795506842140271430695951454572453287838104616610448471720005806220469906276993344239865072566814777510539785239709881103777363271390892766554365767783169343806490482878824755058754578981923637519594348139072108770783382090503775706910918900422560661506283430138865299117948411505726499267342620504073543595781014822344823489141041576485660937023947957337595413125675864037333336584255337812309701308757321133507387565015160611286818730900894627690069595973513183760704918860885260543545301408114826623913021725699605661843186757816263486403837920745980394388697449871552906141472924363732831389636663066684849475845411560225981006725989337107212323164270169108892868015263968941847362229317957299966990196367316008999274105821521141552768938773619106292391365640090728631110262487183408779764371376449170781333363256784279052111715364295395829192131909930234929536684832459598088343518946397883587469787682606816885211947084492760226231562157427817400848606982789734688275079701791268987760768142006758437352678368634407052935110216912312650561663007364252863175356987493658485597907953752396253634543787192993918899966413093057195882292638140889854351390412787355410264463288895543019670639059424283834772561822972849707585822043923444280498563165614798297423087396681576086570596945806981980221349856498097486473636307012994955872348221387823645422965222898536020333008098077044823454907507337009253068988854351670088019963107393506438211543278800308400598512985578838838625260161182327496301759426197279711504930245383960744077517360963912629789593278515331367520052143645218029487406442458223663575319601974770763316193787872882460108866173861463731015807845726897578887437313817265373334966877351785258759165729495187250379865813886923121876415255808677913126750945787828943272140210988609183409063040876352476742540490048120663854722539572159288878135706477601874950341255068723947772544009142963091916406534198339731362316112725126057421347009639934374161756279629259219363141656427721503586689521158409173801605827874065648897359214730288234854725805206792782915932196745584585835730710804569831626307415724605681015404986974914612550587569472528506026111924054014686058941845041072378821175800999180459665027870132602377849064572376122826310389550097497996000886539490511318978870642891248766278321515892651669536862202924200817816833949714614930346846213151792812581650707191654476915760103634716266785129477206415779417775927956667720766708933989179426809643770708119939952519979964076561109493511874352002390890314874397086928411765422055922400384683102915853188175850250643360634956090636604819409816361747671066690225148574068138613705781522072982243348604687780735716132286966629363877231270293438275988052892838570715372376847826387866728365596092899685001116998226773544473876339165034893672350901317851560983064055589209717192204455310014069873982289643108446121642993781271620473363362969929439750706079849626690017669370061572156648391247065135159364336503035840870154657003220274116640269496130757076180052740898837719105084633473742166280675349271955690824999947769372588547077598056957408316519686881726549189970341858906817052049160140085573929762781648323366124676215107838454767393931084739671846445658787830804774344942751272317064415633890547610035939860386086592679035056270767282409958816987909372549244121189905204178880443321675305313358618783168119752696861813148231737043043425675442973725206604141731595402290375534387391688560011067624535283646030698003991348252439638746957125989594063291659640588691622441939327980394910018482631403794381713632125377035803355138647936369859912991366352372809455004010958310555647882714004204831930661818591340654974274632205707424933682882386260684372814432761123834533657483319509276565416505875103238397656843013402584005259550859438134273826545726816153020450512677419142639169609864046863604345204083430841189832236533904661269925582965811557121374993621771745936971418294347224361799699983306661501359392322617008575481290101510496728401514297282670290226819816756890019377273107887425526581138356525966689181457940483832794982562683924250779019140453226295706302398192630022440825386355304547279795287942267738345877059078676858831387510886756160984897710815482973890282533524403158036141224501191903717999230772794806255967846949345510480258298973759533120992964590439753404534169637371416005124770182992282425991216628366384227260075207570376250641329689480082389543989048417854949743611214135824945772222661053973480587841924253722957830529296062297743525596786930463698616050345897695356460830516815492183359393127111095406503180841076978917328358250247379558028486046842293637423187121883919734315983115449785996128873439042753084239308774338482562632713959135733137902097000472383153802225575695516404563559502617419956857652411924079350056250030037517926061238039630848272733300078024057871824089326193423649054047303921296004499519912375777224964459081371292384497712435076587797258040606651362423374205333755395593408980313770392273957105483858882755507995167234958352385390017033859572267571547718798557529622181536291005811759833102094007544065271073620761077193229711574538536771757164624424983073392137057323688492685050942452299701952587089716121443372107753120374114079554240767861713347482761918098526213311900333328269310936789196676575667366072447085799722114122621711287161809827298504385421979036801608904991169396381833407675913501839179528444941057903726039913426740785326012202551163905888593438801949594388945036113770267786105660453929180357079051707692943787128709147345590062213767917288333197602299281602112822244192108776619088157422402907859758858760895373785443296703920368646654905717875574307781535127905109639641337627345790575209472305254821208981405479257365900339850256638442006788546183012971451204501528079157451688649593345711023697294921090649705535495567459681696342253449453355992741731067047121879557293047923724536591911473738338833491015156427256322743132866878550520273366622854217780709572903215073874309453026817489645981176256556021490596437769961526327091717307237471942800930016788822813555601805408429591859326598503008170823352379781350622510396070080799633987530362915387158807238792763671818208160944054292538664200532233661122447176227080591640532973844573474158844116714425485106436696783182591621401178772080089668473637551802959869276194110605163004375907595583801300922080247990044799888679432327882995431015753940220598012850180021866982702067065682547375695925616544895793197892885573030705107651588913773584690202191474844002380500519748474180199175734731935082959392194365881159902310318228869939208712785831565520451822788794260272964306375840453785499267384506849717749619324844949630102825287040335296138562336137145015829208285323163997942476744766765750953697853139282788349626076301845086218588505868768635267931567344271122861354501787628942858269208438110913227746865200674113937609072339831896931442328226589622110903432512602607235802060084291279626148305309313359195186676121307570299018550196229340421361520245569176470537008523146355343648662829218358493946052045404453932750953235430314119690144223954799198486290242787124307092109019819108211114840316045575491728395319771432626141801771356749682092892149465180186040608722617032879388230140134955445362188539413872237221582091266607215647377744008174777719235912079192666517829609863520924099997546014515371468502977986918792598563481352904035283191708634671966359953799888810780831167852933127950316446327777178331618202258549626591857395752559149018116201740720288633010812631804707270627325511052185339350104554124086814433370204058788806975764788412641790904544660649685210552439746709625703827798254472884930719001875776058128340912989812870454920611021223421174002687757186183034673067465432190329362041481960991744726122395297524189900072521865677655949044700096055928840053719483790294092329829612201482288649259817922741920721639252810588851038402000292003273590149835294284681272795352983674634295078372016813701777219954702602939603498251761240264130375188243684768883537975731048706088243551541776453322189372207975794598403915691586612809607507320474633897935776439498691495318868314168948575769173600739331063789611399748403003410197190720086994754909392579457974819732798521948579174616769842284666149145811687516724521042839805919905325091307733562692151441505754489579853562414968232656795250593940566608463993967821794337685901475102237918535371642021313505099170174759142702477712024898211966115989442693575175454881300366492610721287299689450025562617554691770702320682075368218802850830640606719837848736739503856494028744745480250268834439678647045374725995139472039002348943500256957244299785878804681504375939777226459640742240289784203001865623507164085403289534624166749777220191477240840264388035496289063849950626500862939977363846239767971061928083069018775871616906112789497170063146475328348541813867823742006707975527087279033781489095838464291779280520103954796666242583189052735606282854848948001264799787085156344368380302879844729949262929088446541966209269052787194076558016637555999917681628465068160409678968380640620675178511944693111396585953421124030201590955543343710389444648072312203656211689528680971946052284511389790385802606877231693508507072570839592899789818843881182045411386314973150582344856069753538366256277080165801217737211700737276989808385596324075049261079933833605811989790433883112502254643138985197020441909461665331799069106908142011366408878579186238470226817487153579194333486776572384774330991205834221392519689678540826787612688364772799683738952627288572091989997008170715982335277096429540867170667316241371309285327299268479162340530959550017341369928226056774867308419816648373831023413503515837053554406694422929607430488110877201614727191572519236898851923115228981200630122204149065286726250644387468405129466635835406427130693419659451844098109626604321643408717101502914859755884302584406573095703876405959015058964729151500981558926997731340667558381291664221429795238827072198901454723892008879918250082168548876398965734513514435732477594618886464849363697673321594690019596162999670668088130982820211695866526282917330913443505182398921093845275842800502293681950471228428975565352139879038575706623265971043577850078802508324643414122397245376192007795880766262832586223700791664128305733240624968225963745855429525501199516631586332724166742324991862376717508905370209720226215768669223280017562516856295361563639742535041823061318335728497983177182115732618280920829700377623443138570644110388264384434749834444168047458481394810484934469070104406455710716101167043919991101119311072436405202647235704785556589510075665950730461575383633480240532744403882370602055299771680635991350965491852338141419342898428750086276128929406463369795790916799505062510217966196764679386401680169360450538409016557729451522919068251615549079887775330546238938154323046731442608943141556536691842772256026734099128979555904977997665636075301373566514537067819026097507048001413252531172078345104389505746164203305975467993323434327025857651113304449790426364873916261926997806946206369354040572206529488289006909700527752089426157804457891658904608264935774228834404221976350240843620246245519021267269762160894236307734406742390058586167148109062355239130731750648960728822743933491327260712011768889681941029114511920974207755575639817886654864004945774888019847625345085235337117737588067933711659164974972156885518573376367478975363406439229681852802427520420265220527518331891732334765257876495081600711237853269606093584865355845352776920804376631965908496738654419410768577414478523936774751837590524003703569743965462605664376005620464116517114594717778458962566771042914855506606158428670229779604539175257281875853329124805979616019529442548484747106674310380457411813585567763408444073006932540956812497156096375764201678447358052318391747723440958657843075265443705515720687779774210246777429148581076939246255390854399890014033181705279918443195440385282003947917418544975380803154843324934970056872144473345751049886878659544779154811257664532453574781021516738286128517002494399859809965286912687545338868844489096291213486953572415097688768177689647100374099899301304571093625500666513981704805522246107656350239840788189603914167794253107213389343910433502623659778187500233094633089834467305832642245780459555211380622930968465873132522686458757518425223703028005368979844438252287681835077887710843216998164110836498043120205492375510306237486390885352030497115385265234109223914232302435565022095241592452371937887279831758890069192749549524237675552922590135111331302390355664830623908664319361443727623792398360495726581101464819668220342718447956393127150869448823969628830469197866855624259707034060907438711390438646006819110992150096030428829835865986180514210231656241809544732974720201549155712290612308745301066367442109236369302887124721569093025405036766078240316923560576474107922752670954361704474805590275813493113266888658490645176195356249907460335211839615401002466592112540678319866805696847082621573355430456045185268549173170331176174829918779358151504636027698429723369020384549087607225962247527131414962598662075483982588379214148884276559873707212202461804974847658701555745133634672720651169020343113559151839704204506299528005530519363768960230529605061192151335953306889889617399329048939016178064377125678695228873230081866513339289948813642471867137930380145388697779200847410064972594414844702240861284938177338831923140797699847585275864431915409249554069603657900447302902392347161513436008332286156670348654557928794998239563316327507412540251680072596527340446072846695282856876021829972972886629175025963771520757932608650316117742874019785374008591461676625656654009770239215701799238937581250273320520779340116343301646320237687029978943850705250242045254154623786949629933105546169277253253967949997583257347306579843326888600094381056056418989810635404039122377553244738540234508573301319514193097309275442052104602261442190973327872271088426519189692033825409324841307313539059261516701390170556145253834866486135703593587611317255617797506772502650314064283484665298327897574970667650597211785389325332726234072425907173506438414753908399056366650822858171378802588394428253179307674615869332130606273379160544368363191884847448306633585834542048284224982396329519244355395225607716975323506901779334995767843396449242094916890541167733206291538304655713020230910483802649002841887524812784682582697652715206957081970645849164283377573601314315865656445392698465505335301842921354559653680414752925897302546638413577054732588236024227987183100593479497519653060780054609323650901622595037401212186866419889911253601733595071358117240855663833691507834982672075361550153360285040209397124322947598813145558008778171579889409146260308023521430630913742344933068172145166083024321729231895356007006180358289832801746145067503272435660357200633679595924873669986928652195463836588263686929337305845673688845991201898763340652960303566783559495717653766318423306018702840107136619836637667301427226739187951238571762590242870389630825124622299345701486598111981360182505374178702127915091782961570911580067252315124860680342870882733094661733212241258513498486872650191143597898135457425533821596106048280758026244080945193658390346250959782259791586438106497577190028515665094487100793541442481047832882021283509792008680148051516927664392681631266585879946965197506280221836749608258750324181899298861951442328376798739682568624812397411252227360552011409717884177689130941482868248933115887767216203331155473782012047786065310673041653110078569806849734079801582392282486391107916850588708221814888444719293299770385289254501647971301052492938999093159891567081461127127595236434467300248600568424395304733633498328626115385661404539305262859175897207666806747806701914211916988062297507157864450205661084908969613660893628940047026635084408207235176281978333213283748583608123174949118728697730320677294177918403433903553083407802280099814474115519112668282900979894096274275362648540975329429078099598438399500173337457954414780901399121404058847564139474456109426530223532225512284329017072265116343955846329482394405140636332679300661846182134756278780823588358776662400588020340563448089394757104401622732725885231633126888179345121995103820327268639876262570372837887379426738175880110176880162300311968611156179443516573390154296955943264533021178440219442874145012173801255839294602419253202805385098988876951475194425743183008616755822201420553864223410884820916060554531195640820990287375976649493285566425715716622712395591984777686794500864819319278407645884618332684294534663139417359222126293947562400787973178393422317980383426625562030345996251182362469206970147917240712331151783488718510803897052750079488483012445072852058350124365057842927501139905910269027835036823194691728450370039665176131887125719503885368971405059814713031217530424572412750697482995485947262642237917527946134452443244110600423757092172885026142521536931501150840643471446346810490004602812839991518988304267307492357262315748770813317440301773988249180392175755579696353548309531431724405305386075897512897328696882439823027338333640212275030946723397407556863848856771695913119577637932274396914516958315450643707544601884178497724712700728159909556997856987251161640717588942933783308306566562356257043616922466145610764244361121408279063504187302797187791755024790286359892312478169222253173203224684437481056062495241871579241949789204422529180511934965327471792889446947580666423452518101164865281284897267421002495959294781385132539743677604778224459535168608411873084011700588524146782038313468366338789540624824181908320339284664274589369842576319709439290911670384533306139195856805996350064438512243324423915093156453155455161060984176760803436365839767653727466278250727506630462082660234731452562569194281342013357717289154755813698810163137758171183387171729442753613270200693515219855460941383304727875440479902116140373196611151928025265855014470065616703359141964044543824013942618070867856127186875927387209267083047449281163660953729977185950878815454837698796215656318768005992559898723268655418547073137085776032598175450506114378138436990648750162097409224779093522117530902317603273929380047844935218528522572625108051762141609599885274250626702088127111638036550881229885905820258075431477679699316355354986323965063353634280429113871000153178760813393873667618767756840757812314147221305661938831078363246342994709915809508959822851204153853787516591265055310572566070297611511824475575143953836091800050217622251337565280955826382079645677847207757717913731245901676314977841153287427025372070894017706484738752817630339141798015002245796130689000879755514994210769545285356110761828698993853297159419423992625131648026549510339240518283832300185845040730288564093028582379330238671224892747511418761069511607517795144097058093137880202539831942269663265879728648261049888297829364857903216233526891457662683639448138662839201129871454506607620860149242953841690223975446233799125804530233318982962820441414544766647322509952883420107457421778711332551712110938781709431329030636694890967877940246096679429600401356224952274103499489810136191552286615642584508368750015372323393901106190854799585826728401539841208380044124384227094065952889808301749850974165703259108142249634474173737807981890004032855825360028700685788423913134086829825240823267100296231905551246781365097880578763995662999336334079485944583580494298625970474353783038533924773988282598321682027974568941283253567812661400273407542373502831308952455590513969382927646105435952071395441143808022847870571182112581342484721237425502929065246629735322588086172622822199848651577089599275798295220351421971038877047662130799913796720539778301157841199885109015766484858841608209153360100491450596135309284983251552964800647224954795139830826229223669924412024571111941789204000596464440050081288223318645954603487257192485036734088791086996795808525324600982437805570854211263215662606347887394229162486810777836212298089034743520979158727487130148843468678945922383082357744543600485346975005691899474858000646149423788129332670186286926011329475477122782532507239657433807081806209484686833946743327950178483025619133696771525703327818659886236123827221896063804584755836121993921328194369586831525533653067136380351423416324116797798015876182343322157496840991095073940272019950089455191304700503864217094047419839534846608483705428309359054606421375212570862458086909618501019275161816124126428191425401062587806887514010637521361509717530451433360210023366081265205783803921555857585670772997509418756481804894594214845845171698262082339472209942693433805362305709300400850226533050976975049392760806166220915071875634645350454229838334682289463526087446108001421164480266697353188614434369768919441469071536820189458976869378678867642778437834592011363655552139659961198966726559370205573987047426158193856292625479522001276585190655190336051311118003491734489866583171604083649693765373421691624916378383547445373172556346145207960651280378589425947412654775691145562577781079328169280163785590671881142214439119891789651688800771857629937483827926226604544345472420254879267925431060481092783062157438774353766465157413299031037094690253483236205453758088058552798184586647698029219851122251988879037888165177403318599319184531263419854329385811941066981139989801894211103992515368098421844625907157261514277039810252888393427756940148309025653812928600013544397937076146255590226860307365166029410075691887556598593188434295696683865771220874014546371817916901802947708231685355516735330355387083851398866102661284824817582866083383451196741609468199792332723051354600566001690493897080530105876905108679533592308091889960685753225611653848548470418063447328243058616271447607982022878488802531868258831945253793944779927978778170404116122620316000810241292872647606109357109943524386299830155885207044243914397104099109604217745082068894987740136288243688287175024519118837500329625392241567792295176507506452538717182462166009232398646983067167847180568722127055929786484030270000540724306776529953095732109751672928540937087795772967271109166210272571794426160504096935193163657660767125547687355271167908175392359776983371065132471938969000380359478585182354803039210134511957795434692929484229713666593618743183356711098059337032071060985168570359355479108627665519359130857619894625271171655700013196592340674395062121920979846948707942636525535420649481477391642670838864072459677355388218091721817056305419127178723129752762078602714292813593800799441727627413097060370405949959638798709133240065620965667088098363326531531231278220471089438082423834933045870339347887016172077574281334011095942705923933995697136084244954176426757238421506588032807468733223740534160468984092774613017914127980820271887719487295290031841377965338052484292374580557989016115180295010044318667693471984610374815427591594496662787671387554823608031198311112135665342388618517470178722514261600870788364851800028389310111703278048352699645964019364823444335533128092441180836178384058902954591070496484347142838117886735699159736659113435500722625395403750306607456959607974858602834644262641711446552770961186251963254588943788848003699046547986509408569804631062795230550837973262618187171381153652229894400722827449031720910616419899711580047614376801246327570979889905695886583356856240830264009985365755683004992825997001654516943660478056530799085568067659668878419686394561708748275760773736747728455988017864491716647216046783323607695421562037389846026321034260098757167043262079088705055636692873990463640120057014349032246846046529855917124166731991065999450163638550165585955197725340139605322994370166606265254143788601606970979748232418940728959941237563558763378829279577019309756391806075676289467354778963571434720186071862327259758317889425425712512241559046860518062922277811305554909893324715224338454497501484729188263032458985612842115689256390426524030217265447876435777415812884058725780964511447161049208152390734230291434890412748902350272937268556299814757273963022783414707485844919024744092637387105489436429817855377952925544486890799456763344968716360459122526561593515663097918722489667530783291137494256666303307154847324312966871196158310446517061290933455383820626524543259065246288139265148237377920261189271019247479093635028898432701726723190005090615315721921103177005468201848959748844102481886007817331802732785429186948589164543260585687921342544025897527113362638982336419559921066324867228687815667322816081656974476410794739528733439907840366746048720694816851615188133011640200843440159272291738923327022194003693532712917363334697101781963930127483894596422812261584566899412267123764108252365745748033193776391974248518986810113352395681885310426642224848984652932297716513071434480982796851714081154619688845507466245135122495168972571153689450523879355956331018721007888561882180150667634308564038232179914143909956584006103783453499559678956688821868050551069090554298595300943892469350732941463868407839930864167821799103044092288567940832794963424758443556146593550840602294159626567937965839280774521896980885285984127466437827164861998714598429670950060971377653249268475534040659322203736313806553959618052130928328894501017315673955805329933614873292660894378224613827253836912121816943553401745677707015699149516201119443536090067897220046342543484328340000277357722435053705474944997853093842205485608578740124028798542586442242914343930546375413791725532423171971348929777163321696926253001987644614894951978606036080675703796198952552365833864292174398928910968858726933454007170056551568609976740970385348689101121645527294853863463849429065287315662247628871589466116355632768711987903760782718053899532897271782888432193725698805688656541662721481404783516559846125157108567463542092986826596105650779433536236545489344447100160956676689987403360097388516070142938774068530815789544476961472976640894947413407512247894156790248458549301085467591466287797938535803476862683591700805152899356950385083220320767134604519314081364552609827969035286267035003112796240839496537627151559300017922968310446485594354543840867559460849214645224846878660422752604957971848576994026728934496466531592342210615458716824000349540902692418330908361580200000295805873617379003498457617938517119683491394087463232741667115774564111022559604555851125056681413045075591388088062944601128028345877296448274292494852763033355482074487862189142005486103788284225794606039589103997570448375901330688499520570878878477574964482098635788914730100197526509338979099355140591517204980248800434804573508528391283695348922996768363548920950505864852196425293993718348507052820768977120213491734095227555475864305927075869618920466392166317983979445565689192021579419917085793800928826947339040706661658451125524609235545648051034876614126702770068135490281647539049030711821253693183135635733907890558928930271222748954695807103917729744336269816075966456548194875606004055748138733640216907168800527406857717262206356912788972592291526896902229702537072451224377823490006161354193419714401493978467894375200201896654945476904093118827381288063482295420314723273418766671150979953081277084397344970189924081678587708854186671560814082404706859343134390142258065824225511615625631599104649345084166863582450986869832722983427137188671552254870474503907923983612005718293228106696498692175650515316275304166776328820450121603813151684659111601360330169865534246182437988014893226993502552611811235636112144839097885739844752945090683835305115788824562710952398905626488306690873588614142710155258362531311021372777365082047046079082125421611773929295198715347933025607822509566626451623773064120865283691809893719418532230905730733009655711931486097427075869141746281334418404448054293639220000349838227455604302670877916160755290128622829097025197552399790334767214532931929790952913407444303369915990959075134633238388511916221671349879590645828502123184751248296020550130804267193053660407031372889586385507266945137273686100780542003853692885730079881970664643521884649635055580667416983548565572730166366550459214933667237947682184299461508900332690119834434792202505986779037009555134101167829296720142346697050092180141565814663924242256414756037680011056512974773064866795013797677841715581772109446016860302657810589430049924386751292588709948026998603701564636739988882282582779497339993815453964848123255902825496298230026500481500978018717289441367245570551588981606564377872250114529219432107448204856608552313313071730437986242246461685625738769999606722540960204722691233205213648397830601874287836680374734592570726528780624107934494862773665399362943132694554314661954074521935037452310519377402508574199738839049095445147528222530820877930333300851567859657500342514648670372059688957003280730776985729544103287401187059756778615213151473303480468167779075021214130374395304823709242475118511087156195283856796901162684602552046839950490304029589397186754668345358464024087886811358233529516772763136576950146374242369277098698231968818948081702796432501937440320017477412490758049680624183788796979536998595799006324307298267603598681297810203263290681566350699172667535744763937349740679772160469930691659208758599782340748803518482509941071925723437083647228799306746931558739207608734193728445138383298913774058001673944539975984465538485197708896822935292054116098322103745936377035180261631511700724966199061540837344490096202816065683578053665756148280652465161395267721107785036942193115143542401611124239792538677376859856006892352743625895546443318617583917267236072119189656018776766988281729231254430546799362282236455799457247659322615113162745169049715827578057145980633067465974939141291061172804130479350179397695552007432812062147452929473168177444603632917440579619394629950619780456437733914572720841173709420980242667200084072635991236772262629544193660510534589691150781350603516466148063001990659081762189486840016375480069476048247837940705101949083343750433878608940632067284027240494589987744154226240680649378300845659865903392290240574425122904791307764517685829377181227981724125733669450464586058476626077132407826801654996842081829053658220052251668627674389161306458816258461292250772663188434997582555339789299965297101454223227960573599178922055469264489058622391825046715454003284900895435080380720954815599649146257475497964993497937454861447855648719246418320419514031396388149334487039649339799504792159197365337092673554119580959243739835014507427512843535615100344851887119087611737632985912626070536091605281742984881868420934755984077266437427587770034885521432876912422423199885110459234954910511822804438128518405590981111511165433268035558209225767726461528569694147832636385914927440085848536464567102781431691006514042120474438773446947657251996717061325497707458090234534032587682383996463988636152020863947665245793020155654256693601711321098556943965010979663351414467377885005966163840905553184365195318813246387603104823086965052596720344929692955000172432489345499503637239443689470846156594657247486027626724248937386878287353148992434786587824140585339335642387793133687368782150529623436913508858253871175393395472578630379013559950063193722602468573276975435461803621124296750601826173665489912596179473050370240563459072776904702542609479314970433646767738885099502312860497305600900725560587054761228332770353559962531597369512065103957467513966312837502891266734421165189958656404325313632816817558983509275739147826739328971091401795225935984486133254336787028651858904728227091927166047805567057809839285628383086146398085547560290432020918469197857277323802425264788903449170739733508360781417805183060454209659627955159365800171168406758520731190308942985067663769486300501640672097433405949407129698797566560909121431421204896426602496783988345012908424537123301356172345670194355522765520861003204673561733002488785906400586147401135638237938080150629218414570580709924655379557001518439265839865971128405348810226561790630667738460541959633827313370526279225283931556521723369068979462727073510819165210959670554170475092044147425223676700745952447380779305224171873445516302057604832673050857128966877662890746750754488783338640318065311525139965299127354352164908039437813419036625998902966985486728094399062063961746719834657304574676168712912428983040097697996915617537264493528531921921352282919367556945686415133331628697480804964600751991468146825354679452062374547890717982372459483034026706878181719666187874552156325565514965475837599743202375033487594777250032835334835136602607010346190682076030345367134069277340470664858785933652111311931391273717899699406405778414062093615998017776084308391291751817332553243256496596684180537400026482313025499143274927977703835550635351157946457896631189787390337199843431448633171386840639519673139699054531081638069398875613047748225833684431211737445632686289577114132642741402744462727980590988282700822316122889734419487008545205848883793640747744602987302556896064909218765775313853333430200660425317828123633621968669777016168070784663977848926722204533111107853875870722762517663479051988841043652393604964968641752001914036213338839316581698793200038899728348196661904330062733727467961851970706588673593417395430571832769724071121539352905503435400923158484543884630317776593622781875541289218747083670237247696969493132881573161939611909793079902968152802304409726971220866217495013552804918546244496707927684106115971279454912995258387713803400775885658787998776357632571791112007196388233235128992183798517190957792510020918595338038090533659951872020137862241575797479902701288826581931717516165157598719619307074380958520649353804987209944096107047188071086229630173611644912698227146334432506957317101152229659748348846062600840850192128101667338748637195217563891406121109773517407330563712618620617809583326027772744680688869749714627328309419575877582576940674623253365811658793854140938156525079944031478891925840703769204782979360364224070533875120016985511493423040701316164872096795417594030486900604971832799691912687970328579601535678099322380161752951806997429012615245082419843171364177166111396572895613515226150172324876723299172903944841447438114275859251719730847293578553939387960380928073060605451747000967659889165563701187385211650095328089824106451668858403537591700147302426603128227517630858860674302654126626849193416612693581531525232660192142214477705619331213770487789643534258138661088318584448431939770546056232649233826111996404040194731969977548367963865529315209562899321306639048199960608859971180341276243619699636614442586519475116525496031991628241280166273006590982671733979531354944289548703004697696134383369121089431449461321919925214198707041977492169730010848733514903478488643090327495809802785104815718078923196627122853654235532500661838000467570167077350860050187286481186563443954524736210518981042267953108299187643454888934373310517391722871738696288721059975776255585093041343402029123688901819088784630519654459606229301486800189554046513738102391818625471563669328074496030830461836026009049638784735279657844594797512443515225943304878394292500511124460262722908039683009906903629430289499287396838931624043976647394437029501023820431072175898944162661433280311112144508154899560629373334926041137751152187819377300506109019748769933809469151265722611716536571404014974717818721003823438625121689648935249393437143937056113427283940949327871942123919774923571228947181437697377355991500201491716132166013278263610087644933473504232563680118886534616980388056236884761668202912588564846547627171036340129855172629493202020415204805342706166662747345671494944644325105001012706123658208997764614234783909392443679675992727152971942822014417702088994123278968556623260548863862656467119349503369618963778319026823461143825113321164026776154105526340090806370942381341894618262188344851681160402690198724475878301059443000753459524534680160286003329050504986991555220777257055020506534338993785076820347355551611594782320782005414084028464631102879560407832737976207848994799791274245117575875542902217822283215180415643962500574310889416605223331518548810656126748339366370785230268161418635523667710242245905926258178102740491534533194771529789082577565861106047592465194263564064400657364535421838718312488527160836687995012021224989653989067577359323200926676137196861617803271245290506369628864449880429651433122733494908225711391784474859614639660898440901086235711368356444598473349636602164223222336835255871472447202211362916871428488306800835102698210204247705287913579228066821982630241436459718850262062246664607679471620342429446103842244466513346401029935678539710810042401788062571379723465958371831812036050279680140518464713021394185093143329578602727522030800085027792410073481302584634022674337678516449552656860226089999244425054078833818443404231389960825103494889913261106926915731855469696671977754560952164489410383639307863188975588651277394961612235722905395779033301980934059274345346020228539877856824196403283146504452074388202955530859354575570842498520398373391499655353504120047278933560036624125368171329084506309401265972337415869488454121826582179810445861164735003402562746948412829949977452085144774408756701238192650985930981322795453707011568538877124912324573477967290612797895895063198740453303524933461255625452299844870617451272380545020924526383297800895514691558532229113181392228779710745223371698036745600048621426120587700786295319470320765295109575332725957010520822580442864800442435450150515204827793672449287315592432250045411700763213273614030062279656317812317234726390256848933369853924890172061807641821502348331053000892740915318414021915395467773805307446862850355312386075931027164653948167314757781237404836332952891060538672274208124631932038353021678054106800902545022499774723023201282796108586794205763671133448998152454310671325937950970642817862687969971838758537201364649084204336852369713073628136924942566372322044224170207665913017019623456797733277750761973161064478651691668323111365859139380865643660367107040693175015508322941170793716193332991622589742239908475780857887491169814580050079458058162307034090855004882584425639418589150704365534193808766105762388715459377737989219421837589769982026512844338462264794625655383482840895928603095333465246534946600875366724154540057842231636019987220028339694490505130476112682340821012419628098484648652089632278818763164635691445331140648167163622492765581432147679862437915169038361496633878945499754812837042623368581754145961683911176856571056906533830488446794690590639690272943345618872712793543883918030586888672388696487087748503509468909910191667243435922077113746955783981965763539497126889545478693067539520745409837570258809092791193157957066556314340188197673169535005418411741690644386789855761339720962592451408692635006248750237206708440404120703828820056183510244756352765210857594354067159588012419112042195075515798013138645720760140874554987410869773160475559978564528433712749745384940968089368861590358766390444199921783166005155550527062574616893032446018870143457272604923511709296782295232887934020854291429499832825644708744734699894045175628291972732832723199437204954055513494136833745322471104003058479574465035240952737056490029529181266132975224348290129619884128974236064675936803034681901417574496660000616929361973364885656498464642940756707183921939938544918718620334218937949164107625532619679013176686185208897309113037799364330132656742961785046530248053304170966649149112245957838225828078165706863039522014021327260092935691400663766405064667247466795768159065785379867752512786578952954312796652159410765475139796927501084476137540864809764012274509918320338323855782669806190333191836340495859876222315339249193584394162607992706848391207050499798512911856242869522457312993868200005519133806810252744227301805190389849885126566590181742652262584796530169319743414285535945359168307050381292552154186799492146991844319432190643279712836587298134193892294318429234034447380756613536693492031579022750707732822686024337745701479335134651352473374084539063386884048253343405302720397008709327241971539705626831576791661800398507954409839999668234194085261680783335590177617957546613280157061563399701848614841419397565896306807650000449480239192762807132361209134511734508111013215880398767090566301093029903075703186000856676287339863622907309254009639408037736145088659122321654343610338970564611504226005771066388856343428870665346732088470508286513311812617529253159848740472531293413590421411595848001934760297847846929471976820124794889900898630957394644435679960122550292614049489778304712640433287206729442205473455839174895961615052824253834530976619825339007501743544531288518862219955737704452607247953512612346165445776010749565058032125415590050224181954157223962977284610255314086923673712935494628307238977262755908846366589151685197281071281900104560152686059672572544466371345435800810550242892980298449958860280242610516580855937061949722893142440061060153523553544300069911753819455404600371741456108599217418284945353830709728081502297959715935685430529429164464932567483214336195517241404201808237741813885808236470823917840298279383337834660035904001391612895867615101970646898134196614265115177904212953435665596051320696381961678015871486659060825627576435536831454923812514399858107920332403526975215052785547403093948938697292182279552929844368828580856912057000621265861339640712270611711273043065373974573398918362137609060295166817540240658568390444912296399976007183030009916399920674963983650991171213692277645016917520735593008049667917263247923508689443319735499384858738334428655249450258969240689088255251247408202420333768196843440766394356621430580607632390008191568473111168518532251321467421830614280418511235252115268018964195565416088027159215756911588517153217164019079722749134638514718984897674509720903526184773146714237704165462885672082635454492835304901558522513828307920174162502195938327662323641406146900700726036176262553310304588855402475622440478825111833679184887371900028304894879695167286731357929098075158808238599771965906323584938303476844374033103028154156404114748145934308743770011552075229435692038677832113246252823411600802110157594914437962601236695825573902090737896010033962583048844252440184883203174750009220803864016203722560339527538348311183618688455642572463523404392701732616351081671987749071117188299783155010923447450011904649497784409223014835464887265937542567502342248614223360332531886958161511344764618725679061736439001139378335215150214040632124354291280246762638321142127943444214214361089782061875208684330139509201498657113515403201937720891472498462016703228966397500465221970929029877838582314443209600327049513155067385237488951499534082671724392772784248366940900089472563433210957359147332980188409432972043083254138572195048163812176287369773506726424761996744758145787952884124295060887654872491248094391907521665838601235549409667379641240296259578983598476815100463655206771203660708005725397359282073583011312560717358427833268475877300990947630724172362285129395390496508021119424387970454840128523984284560594835924350672027347315503784097458159927324013110675057366387965599117582221033455993034536666272139576552689892291941141285841376688905739847418179269108418370342715837604734984786357113672711730070191960958875236630480803433051851541400140922527015407377206801770928703581512938982650854911399073651310689107716814190385585613772155193873195402091883167525357356627383456028398907602547789906115822286141147981578420153583209836792399264536403314762051699865379733444034186329423927515245945403736223477774052329362642343634932095975655870234227881817510129066276253271687983346456192616939656290581455954201026056905643068029907034716058684203459037622632609418406743791031060964592393880635864419384654196586823658118213246491424342095085532614559894128651113410422468502441671429987812636521566660520394522418349068745283465107937227015984207715393572200095227413794053668480208335707983812973774284710846034604181357590567193015721576288613370089262339439270737891500442986165482189892545142066758186565536826280188712463599357317466079441743304449625485866231816876535547810664408335055741756252361752474837842404175086738416344472778392250313321246909784276437299694554233259464514929590528402148015459678085680409816253178704073229831417898406266956968014985070288156143489397719621902560804482055870026296880213959347611491447182483006786421581498497459176197637139748301696922650505998325053791815044396537287594777354580441336562560653615592375246663995436884580710363259022613282587151040529899111039060805004658805666747953687927170077582921873630261171758199062199101043929619188979820631124054159652203845637285214221759692286503460862701856373936397285063214945075134549676646931831917712016021030253162379779326667612115143227378282035686715415459110759887972948189392172518512576611861338779154440058560931001253663286101933033827718839858055265687174056717657165078712933314473327417442531408325464074451679656346003062582021273758715512869854849708516029481667105994018700451412869809338221231476735035105232271845862247195552736312475203064843955597122273723111735127535884526732957959754391416608180536463578145113085294060739496793455991909905013764730975766899794955272574127023886056241832540327024443447650512392948757412093806435000242722627117808331517439103331188257342919743753941685120844888456146263301584492362277480658689610366253354049478146401001731048623004141183170687459350198422420472633899772003010547278059631612633627422215462199727300112181370429133777425270024042822801809911823851793820185642663515045730236728439928597661179666083054123644807118485682801330620495832363280706170821115797129314048309822677597636437371869275508850848937601762440060710737001552116577902433018402470342012244162059706680336374104270768154299146120791903999708135963056479591528959026594958212132460025086288384497940122341567944223686847899172981859780918397809509595461066026125807844089478366580378518349338944144919089827808102523742714752535282771437573035386006790911653304517674837173358574091306744591389948751712528138834466850640332562708941262938241238395669588445943926349078093576715728967133261529406056000132641271753521948760696837205385036465222616215673230282563330676524272429352656585631253320813078176778639671740006259465314523571468543954521679301967583368506338250525336275216473814375842734134082600883685997334923259199363914346003757347145226081762680717757656058206931116169592599653664095198610584174527750230335267875476393151288354408652697493724493809819552951267093324459910257767344767040638456982810613162201702153235033642151458071867199468375298178457719570241222822224608666804879808683210436613202955375977120506008719209292317468632302326013783953870175223135206224557433629785940705609959438571152159168266285302175982491428989202624702747241649310842247266993120986088409974632648688284902292491834662531546572341671528344986412142646042802981963333164673713669217380663604234480080410280790558234098175764421569412122529672361999167434387605755048737943279230828278978165422321930278608329313401475605888793122759379058621920724622635470838519780161532896274906546466552106278230182179738549470137987695929163213591617814848890845115631531843083974193761777068646843569710191127007145551479812885896962781202997168327296761408590947279497329837859097766077990584274276490236526159186861348486609423802772285794932892593564901562497302398241100656852706981151513822146299524232396107435546664128480562133766310869922391235054813952219037431994500880777596628104039959476442294536525918864698096732033308170601237522107801784341647874877867869431493562850309836320444349709261147145070964665953646246329092651295279112660110842235896634705107621467895199223738605677055532832710643954231919756085515932340952914999903919317349358657841920806163618674127267579675940299074358852039074243052457517135694506828164690137278638719877731403546706690311727783679918884025263856102655229318257923436844496960619433288662406285112624853323586752997780185568444550406419660621617230665776019398841387431252117367254436145258897490695717051137341906437182720613316120053960050109313719043092651975737051923956769135844193266019086062850092549613225103325307240479244501603918288281634437167381045420568213828215475061680062606538519033545200283286030933759409368473697068823296353821913851034950101260445593911154755739955174170233665572579861096873314285095146867413137436539035189110345316706692802480277820627664079262912936863979062973400051509165710648447297296435268019831599238719315990787683692890142807193983746091769133302291875072176706135101308413921989513395236616092036733769432279585716557608844400539025047699470233372418848778512314744062377605964412778996229513399647989247592341645098298307056411057521079786298482014781333276358545821178044055761250464994383441394863946804172874196818458435660976200632364486905525249905873690422099435373037125216764581060624622913132408315790584724430425395917887964121863837272810234359409780208322189024879067091367469013313874246434809021996946603884281677198126752841896344827120805476065875677550927973783145655151761599291298900635168245910291504351019368959906395112309749321925258396165380868972169639327146460607360529819567602065799136456365033910787074795895713154771053667974614491559476462480844368265662847539652036619518647777068331865608303275076510259172161689724990513987133833319148567302253850748951251237105758793339449025387440223931086732173284703691166504766995450194230066811734452721167878312374743978130795947121780579603987054413502221345601034756115644236729503555749173017286130036111565943213845889773096720307814233320699423071204364837589989898692779471771449450024915552179992257868998052529857380014321627873172973891025228825507193746810360615111295080362793588423353600253903410322752875418454968584034480717628066413951375600701478650333385057071359051622427211576241060557506689101334657083614599083440169666027826235877466077946446571758706954475556663081598774146848200147294504306065378428582921607149815612405670794720598223903754773097216095046249382254760574751339763244684077567856392348625203555903614722623343677546624242306950783627019249237449264186372713434407740940718881678826159611236780027970324780004483106066037444156457032696715026567356511307227040327135694197452983757174521706239409855644620403869992968674813666774282912294372073504820749283832227510503803173050327313876099059547630665853010089590550472029875506895085499349585190064962707073531061340480277858793456846073732480874045070090930012695928857625137506260020911132824638978017985211696579330546693025993806712560636142357868775727753016778725537531541727674467777614865642981540358024189683840216705921772743065321203765348430036686244786456248056483869705516598281173706277557138560708643960271800330465900750781630767001097524679124141126249665446770480867264649497724504001127437410009106455898413543276246756006722737847460602927599288275942700310472471286721447705245348569864794223948478690940511524003857428145546450115368904896145982341084040366165478379201348172541445844582999794308650501585905211004595936999626257066305461097876551960987178582916994584349191345389830350505579504841219639856225346780147268118707221638891919924416775278255710814503488208867446388530381754625003089435444896527160067420388572369909099657257768419949173402886847629871942410200512964465561535378717848143582768049288842023348481299178718379931681051328067872176462285255924230662473583567450401074458604300524675426866779537621373900310915585189545808888715089110362790854371134877609304982672002293401718878667029394156521301689305986327057344699674861165211801670466381136723615462791377718067998595801180157121113727289772326460628939594580005239660067314440447406955528690199613136406258162227445185557278474556232787374857934125834730467949123171406143584400353094027552407184306483468486879280503094218842867413572233506848432381994232872675987037911953639475058465640227074504323082896894784748560838745048024794999363233344576404247362026914608440526722414099845804443973725385983161515014045527039355134795650771247029037520651849131744581050245608839874416306888806980142596165670736039324363243024739530637317249560956341497942560348157764657361025240122826045890601555559439178485454027275794040220323478106808746542855532978398411003047917497891490503788011224829327309725224766633523407741912427184772086763215138357264546682509489750349330731395293515043966547708608545198786505776636796761217350830523170637784072522994851513824141530493394337486615863322887963188250676418038026609729078592096218931254057470495934566059434693676334157434691734526885548752509284328608922006447834576135062797167978790061632614979019917822601436073592013446489366481201504650586085752504993582437800591339835190008636062239907203910781876375916227532222782480822629297563231133527037329802949125277986522027633715621109271574839148191068129061498250434555562955163146716227565175451352862655120863052759769598289758420585877267805681783720574638253745834678289257468650953302197417814506673173823929869505838048141757813611491482709329917134131733875945213409042245412449217454373301915236870444149579061580181110586366826437764238833133104949641470491433666064118358532730339789482678437741500046654964995424014325632977036835640581124231808722790950455835096887009055583015429716132632499639546512398571615077090744624284758891123057314791554046875916511542150713181136040086484199298140722447692031353883619183675750435111742333447217229111526679731010799982017971552809717084106998950368297455547019184558033341951892602838625481148761767209763790684947212981037203518457821391045979449837224196730658617367274920670243344169195274980100453783542545149252740676876244304973996261202293965514473179232043074603381404927910357614295776430238824156489985423838791151783521253697894476731550481582866633677137399808724918611136706791436253179724142851992853266353742674838192936105996183221434238916827062053140966820263862602055582605662744945945162478507222056095193097624646610278367850529504827368120659358788043119086340465101994498002728407807335563812443996577463553136582098281569703504595575731013737583899780560505765137356870288515212401198028409588823720007654310945319402643167028338298918211517729586617872436529737486167441889436179978560952531905769540500383701825241476165884612351122191305477518512102142617287894437453104665093774371701508483196515112097525195472439673642141680062757686561586431895981530641802489462632126561506240663053695990698146021415134069648944446610655362247760883976036583190032858780038419749994428103146436420766717279196821732972850484004659408202994973880478078351029460384545113878257497011727930823208432267962814030005804727136837791307149481553820101439038015311460090613980014368693997193159274960709048336263661192279116170998041116260663301103439719037207016781937283099785019747024046248413886127030739246603850982560827692589539947326369966800655755622248812614267577884685774173620390238472182906617327976406702443504684339731760738046743697369285036550675619191104871767825645525849078333237280782992469266340295081245971848034606455462588108656308516143992583754003719080983936328778254791171565646220199045639529751866959607393146735712343689973688126298095949126790751426742233779873569934951464177063523036489134947159762027426273515690893983995252796304097001505474248879738676087900513728093410430401251785859045916892350848283059971400060114488057144137519827876734497382754706789161106798180218920400333216592973606498349433208472308487375073931201114481753069423730300403429793959265096008797880148947818401582269826218979954109563251386236855297585709552536376246311220874994400863643169631287579646516672861173307819479178861631984682265645416655063972676162340484824093538474991754780219457491693863779528229921010399795885886654739164004827308029698102102522846625361238835159346820649272989280453555321637106469015351553389768312646750096421006148991988302742827265425375071479440043143352284542854561465811074811149590521091499742328800691195270458456572653686888531448442159656927899107791439250646387264132139881813645439728846124874886774626333267136364192365087930912484334546883581318263431964390956405596934410687074543894651714393657106359802037143999744577809746949584003787351775941610848402132370366870577648155290967022637976215272299317229408474585361296876097110728698645039907265390835538023293376492705778642039122617118851509984432519817219144237462403384218672570206834267786442133221774492829370091813089562428749666889112847323163443356810798293869126597283111547366088184683933839075321487490149346987034633671240943007110996292875414025459419672833446629971855864259375987787232336986941837201649381748122100232587847138852293600803857835267553274364688899930514418310461509502776975455007022604520340021015273624060291393608524045836550189362054361670462844624210863100686311686751910452389117782908051268392357493810517945401654600551137784611281002231018787217151265957173005066721543259415518868026623028970300617584480185988824298713699310458959650811163478882702367719308444641234479499812903241872584835674652402558153936854603137273766500444162528985966035599351783817652959207130547781570419651281384742541924465394823342308331678981442219927931116205030026695500865551753528825206006627278103067001096381622376158056120644637145655930686487891684876476037978109611785230284624981215126762664781216887365865478443842912688157868112718549908005026804592639828486191883043545753969572236703977927536448847048333294188047883460677881084550704961204587331718978281696451731574886808964741543256939049178586864043040970562279692277277391190734104808604855910223634475023242617615738301503008417269734874857017853497531258686660607969960086527852175568838821855407273254410364190658710391830422343831354201863202939842985323248005847046765920525231924204515177332221222196633999696365412702904733677239641761679658739444884064252432204238301399393453405637818848763971900580962477150051591284685325761505996672959389581210699159470651264145700425192330302418184858974229648878716800924256124042931948550327524267424827716653548192698250056092177767545405550968191545385282684934901532221542351337633107847147661437280414268885720797163248111769516000985346942371374374281218245556478440612720785677026965098165614775138357758516611465330905869227413299339752988004626700788821396873142873888908709901922779171533655394589663136130739760371149849932272746672675085432082513197900423433330055835832283481026645878914690430029406150001562630588950375726491668170903491428043034393349936004316231021124490027672498964202497555396053902547756797346991770035908686053753069576146047715117780908847335784566416911142410733073397996179310202605698057204287200120493032335405176158283468169448160674405929761443203633620902612810948887308871283585561792253299845367340543505604821192045812201007667396703690718471731476956697909732562723008609069507775199558117415948108943728121154122857785715942420957032255202245558210493898053461418129693651869482767508292064898933258622742681974746738158798885008931539991683055906331879344599570932893198092932960358844276143280947561351091947640129941077943039156751012630107033712569620772952454270946113000816945871956959731252012871175736098995969215179311056770147293183672470724078766148241133842428291827542417556968072192377829162081529514207309046110911851585404735360014801468366814622433440320660631387938463686876000835504118844590486273597330537204857835911768213397657802656603677155270817657572532283577474075203877796130615280825954371476350288361323189943597330992423817366598276445432559769012617876717945513923852003981038275230925809376580270429633926540387443878648064059437221315346656100507286298784937743219213164885434254205723606760080051370151484695791431826004970313677871518189146681059352322614197070504295213586048962206756346674676366353516166305521297607105044600715985964940628121865542292928770289550711538156167939951956884704873695779915633807797146665323838115691988187710690622837623744691348981324419089194254655924653370495222114503505521071630377740586681878493177917173741857479230676991101635842426887974534273339638906355652886060443153784582402422070150840650864265527355087391608484288823983666860543253051148146530252467707980609851865208623153590457949413035661149711665731302988615481739646908091233560502972752709179163201696867763258744420470039248556509821383614861760677480395397417428685495703119601506426369688136409106727493009028338297677905143830756525716259682090472775734705402169505385263489139428447664631154971116623783390090951142649510167018349819424360925775365014569039487824222322201250756985217718507055504184519072044453128489629131211201136216788115506577516672839900175239546949363041801832437961920167379122616584540773351134852649128786582426221528122649470365724823588145269288662056532652112140656497012886743709151258027238232689356666616284921201347199105183267191017590788832403500693489497279243865547384135675936744104517703764249383212035615155700174444640589447030670446008868709740716838389236777490614567587945923208583822534998935246451822368042298358483539632949607120773966256606051820100183499766759857046509491976828477253481326210916180090696037533970518939057005810059257309680727285065023055368664385309309679462130090654426616228360987622693158374740740010091722434563022113366040656383199430850979047022061357518277301580479501133846033719419907775059235304075501869514245357515279949887751705880039688435440841894838523656295277171070628989519099927893704988547514014845887496418534863815707451535141168498867499984216277169553328447377334424366619362318315679932596187066088834517729235863422996770965789566924706374694303560210108683193023711288700298252052906377210296757489615411402602529936670131759318828976770405860970144599634519437840915993612430236726115162219507702726430380782866349033006835217408755233360788232841530691541054647625435788610703624952507186766513669551902545498173433440882552639064606749303566316848416121484949487883420179792623134051241351378835790358927800407306956529633240476224127941929432364565047575114467421497474105761408689927057588579196765137521446549430984529851739937680491929077759008190932685764358389008254169298979852701269966638951552874319883865911259235406405167038343895737748273546910249866313814136887077131926152307315356491098760013375901647550476457038308105632196060597908787129901813437202025670918783823506618729984922056319033353623051146787904288156044229964696850126793233734996680522595027507341211134155172131248732442971769901470240056649939830623121017738722644641286026968862187128007278822771168278867563397306708439892800253663029138658135237809682427057845503314977629278718108142270959149675329593234266545756865481059987107757648943015258806411278450569403529331121918647184649718846648352390359217683457847695665304255822047473043046698324219300858507245660540403283998551993734852456633894984228734311217169269134647693051815062368050841925403865317832674051285593251705425676763462125614646562355798716592140383751693744377910090061948922357804646937400057248567469744018344872312940375491108346565726002591088528248636575801831447052033600660427321472336118714999476218589499473179729679524656948860966244419625767722457401412327584867879242560089665264131075223609510315987445088845720939584154681282582602633925137151286710645159024185660538161431676259162023856262187591590458861746328866833333151877538384982636498889243733111575081459194809193431025950632612945790468691104757801786195191566720027188269716408416340854157296556787021177033863724380519383235959472375852176049281558904500225700677184870822202182604111839989481413766721818602528375827704659389250843273395042046364066361569703072128822096703436783156885370526913285379316391740488311147132547847927749010600021959022654423754315582916055169876664395410059486779524376307885237414711795157536820939058340445476359525564703341164050399640368826240491508236588879000191059244753302263909470924774489770792362940380381700295094482255200433460349271418372471282794370220526382457443417247485341973779941851809144633981894723629830327726541132677997694616848183441901197376600200072781215695610114061379694959037023123311892248980455663503347267294349713446318108026809702578549878569987062848393882922089484012969687225743092087991079418168103290572614652051393148555860296550837982477410818925172967773097629870435285067955830852585557317046640930164588683426452398751444904116905354218222005802382419987478244088548953039047518591215663963775714450066216964257889606587639644146552591372403361344692706060586696378488042061257853837706425293431112271916084118204678678311917587275022880686666429263333668574798047055752046928927125853474265795452348393313711841544441638753930444929246881661840076314554774958642634525004942142066697451461408657491234556851567833367808159230592162373895355172524695467411085231625253962365980429394513990873966944397262901539525456100218063535828946816065331088164919366058794693398150508942104280759571734679558546185932134295502160666401711496397150204405031341747596677288188019701525800902572848639714323501521267699093193282212490798210291893303838500949486656545595814953207793831454804362476393665678350709275074433359967794849507754068285708661976279678143423475167762972986990591989952822650816961364944202959009553463241980915699682326806449282203544491214434003091880052946997618576127569155546932299712088306647972657422645036693741016789074548473768146899781339364638075910413238923711628596549402085496814337987581229047719508342820023183706256100880647505483870989058113535135043446751046765557165983104531430486106336253634746879566391818375235207275446591399367374451685678683631169943465988493148838011253201270847917986085669593608412386693417228030317081947475325011197199093199093882758927603262377273844190540539572655843038630239837064981330231224277897137030973990401795846309752541879344764458465717754992128126200929226234749525771101551380480144431762029343973654026791388562583968811307286323758690361603322544230290916344430090515809532830978875841407451270051813650974180562588941425335623682470932194981077104710373838090453157530929438574025752929022676998763607212767410474114272780066518485399919116698973860275177439594668087786296330999535776449929038586062541992286172714875980103087922371710373914996962977127337289764627536185830440644687745831272258075594254910380499178830282865588151552109558077352538850233869372433943694726165873064627028806023634561419610133785107837847594133510321518336534674807400158646962802918429701671293525734872004825667898436859165575521934981021916657039021537538356934507069778139926899797611478369875145623899837833799921182855845979309112192030753211521601771087754595691717798956223480909020842078417208778614394758417507042233637916331878220814706363693193533883782038579749691058757523809658221036582539953170270157521216925330156899265725468887108006657719365113473329961191378942027392932148114853566910625904789264220599585624432707223916525752349439891353711979602606995604387807920474379744720139497938655628669707478932738425835928963584454325852997911247343755729699351632999122964418514162022394146305003382067318821411410161538646645496582428641216194877429886999449756800647855860556266298765269668165520357807976944736320415774366538915380745509505222061713309079267888087494052796437731701294467856007580935969568448215343139538035591778965861750997871837583887690753700641421891770045513107200069261105537884936893476145950568518919501595149402948841400712898372780624588882174675586650628091415877008539379950132992889554037205830093591099490482131611638509530660476726299743537977671030997118797103636087423816397311566883147363961348318174039687998727576880941553594430543271882572914509045248494255810067868018472070015788938974671758234860047298967387136740245307614747804214394910649990893540510381244747222222264448961770012931137846556532571721568018595476367047546685346065543932790143442190976792400125324734744820453783606759918348772984589492185736150580134199772068791288896784703082728218028273515155791308129797467409575664445784304659689305714360409816384428357363276402099015967061393174407715338675299689262043281066889601836747207115836798089305739274635758326192197512243280697636594469501488815519447455545835663125711640337408913789951719285604600272310811791981779952865297230338750722538428402173738233807961074566511144266584861234328737346121795056001850455475441340298904227597406573995152451045158028186301343261560411125563417881754117530983309187740261378323616545887415949229339058446427190324611592592099886589546510797658260419331076397302087913541263842494318200825955049877472806893771914754427937101073177996939374997741257749943027645549059465770748697875714488613339779121670506429315147460242974996501984400424150186854764063703386772966213982717409254205410053816699145166034994120806118120013701253479596624166963173694442344636502053363108424589406281929148257200238484455803400110999672822185609333455741568255028274492196878329662324810334859998008986907781013268851544618205931042431745171499237045119915103454270392430200141267593970502961198694009540156941013519593380979159866873429777514849786474557745814365153266464212565171466186490265809122280339682550595334241681591488181455307524766568851023790534238280887956192147206652563331887354413140624729730482001713459747234225163699603199387367174148498045648718991451304826511709088008443425660951955306813990843948286092500300642470520248667459141611895899420321189667572245732481730339370874978218345820276838765422186734125736662506401420962802331184983011528219905958388488064189515962055869532543726478147061652681559186894502517221675569080041982941717998908364419999660979781857672678562794901944092871107740151502537424818116585467433258498508265323364563109252589433068832538947091621119629379758567081120857456101933236207665650019226034440608763367888212630573221325516567918641062612385178747388468076485540292641429294772821895266528753578418101027803840309380854687585957801519972218971302994630377537043990166736538673195062179445029744992965633129966601182331417894611852398833717597123679751632911168222274250649076327517957422375783571228491560039290450791168973141009533284140961174955576025989499003530915971752590340679979313515967979026793015394825225847709012164671920996774260706825749664269551488989180320463750604605789185809783496902610534403245481765695496960608967160521448043690292756388532920188259960404134372976472287183437037822887270666761420093310843458949708837360148222265616961060438816655862473948064936145523785189135485683294208676771374966685633584481622995531219782986627447522256188148063227450303265048420129373117605880334372122883062151330620761648656065374187019160151388973150852850033660577552407984523945344275050338420288416446976427271465362152466082091425716902033683991809059766056699059839242284612791623493595958130959050095517348672720171931360356540544508057351819035445938453389765299946555310398970558011057054737335486650466347156001140991307319477307546918089230717273197069127498641558187508978314846390029241724186931648918390627417952537423169231160863469711220872817370351987482411056143454130029470166950416497736559864957708217795179658609337669910017092557046678500650348197599854791740471145318202003689535799925714869609835267458364139819932296014502480639361662899788586455108306392614184081604076176909267213176984050355402570397648882935189248972765047062713347609616553878194168512422399644786581488723895209217369646750301235490241584946838809191283951912608661129577384107809553320660186830464552542012816145080641515467013978579107060575917621282943778130125338367342566285394139613893879520593711309928855327865705628408455552460078683096836428367666862336361706085812395069975413070126098533306601772534610136216058608364511386024302640827431228245299798149202390571075190572336749373905387397356255842420371217176299159462157362794979292635340838550013756595330489667190287114102864903426115935047403085252093294298583869017156382418044950711962853198044392909145473281296189769579295255562045471596870626979956331265886578469186462419480697824920186148337380721141962701923478398774525523901584042305007733322972745196853194459745681144399977060772653898702847674373801826913753331817185233122372164011624290077048546261860500674275206304023641130445688394163382632811919108040900576270647477053088887655352743689558819259177012272955808729945200671927909680215541159283706323176264060311036186982541625168113065222178670998192099338431831268040384986265616254164837643529750764212207435592620648504996471897305677198593809575912448553932189796756259500894283585143819888446001469196673217063503893459596848341795307956546300660683520371963467413373618602613421113233471155970305356055581631957888187568492557759559431665506653466679686462279255192518670479474127060754512483173604361096406932560293176573733859335688199912636890564269288617989646471168477438845468024193740084859960893316157341193516292049058868547241889171788010535516159427494411997908452583227959709138417617545528806368702429504737050074785494174174913298900225941784224351877362738599722804168499670077226566526348081989594905503553933344024080383899717308631029166362681458954604279088892243571822001387517750120837866839370693205187949394104903609345559031672095554936703032589575689376979558498321372233206917206059450775917369187676277781207504435223690892341136491096295187127896387853338978804103681821454259284618543763646274727624101079514640244004733646563401211851024725101336890688629872323098615470711776474254342608322428756630394137278716517515559265163142420096406398887060127145076144463002137327709764499255690611638460559764675472353337220745218400450419807747053487306692188296468688657615712341284439923150224491674480109475857837417807647759961118466619481341083743184090620804296619913302776702979629527240580169945843676214996243963465118512264098267888928129463594074149127958201607472626584819399708533720395516194637146341689880029694857511685834980514891207904684718626764652247125231631634257923083890672967721335230800013955216457234742441616354606219276449699944119954738288437569020987057075362171145212765628486568049924789573569680707922191584914168838854576965507972140560268873532594116332757750146736899731854979966249953175261755205763816348143980335077596224723637587889652878888242269424172245464543910883446235171001178807556883806299448557077463886905607092433456086963456442502498067377386542579394587770626733674886542381564921869419547345738833853733565894533603246266196373778250578573165572559565438567422865009027633116726356050386080338122884186893106134098723024133684225720443060491141667073466872773677831113356383266855407473956024438127238260287537081887602735883802856090010310829927737767344479070568188928327294660020267271672614529758810769319019398260708223534727101397394091992680839038842924970804654756619595239873182612479580478201683336415555478923610021606561988580024320373039851832512298844094137337140433530668909442651253113920262563628367587359302573803035188638394800269433493929478979810444298960059219161520429700696489138474071764056306116018562646133625526572953605673542582401370758355080093727756358196551242387594434594905981273007284925141088404309757967330687921182868996661268733539434918519494795831841905894778151779651400204585265881813472211793694724975170586602016780185835609819029503910678631111939649716285781524467487884958312199651420731039851223587413562755147244227437417116237361901660013984206091567694118319819239798877263096638126492359620204410226201905376431593120350900119531275309714824072502124328207354540046224909838948655560274735599471397570016244881551291193679237169464724092553978859232969896425247561270854576002063873845017869528979031423212612654610762788403035799367409631922669894782620608987251430719880331694887977243998181205605996256450793680544626713845398890025519861828063120722097599407645347885439966633603536312982467724987237488531367059315919696967599296086301218556569304675450580961406344233360795549482041375289840081157057599445626833271717547620682755785238133164579004314823880715813009450740459461820862809477149978125532211545797498816826343521438095557642071500952493105061739872442741288433794318315813755151554751468031178192183459684489956792657346126943735210254403804908423008019981741264625447814903671224707397684956003792497306282404813304367216043830638722149689427300233169205366498995111946137728157037569149654187084533111549194996397578590962252195331023499479701869004540453643267858679616013702986664001472515997182114663008994641193022339972470664251952504980938065459510845358191453242672525666856342105026326565483851369579632400968595479816104345881283444494687957810364922189127478777351269942044406695261175250023188180068626654504392984108084301867535218778431065425134291978488322463448475255326979023681633051357191941516211731071897255622920469538138761770788184373731637352354567083363186465533727529981504167213104387719769445099926262841572324519717665736621601347139751614568765447869961446882586151056663717874547846869084771421753412788742145718406668386708147004725421594422164301186299664528713324024830514551728512580195063232328573478139739556069734928241786679593901309148206880921784799451073136258134113112731367812710216493108631714913181983763494115152363967135346832079158395031066790881212566261593898227844401740220239818260708327283861574168384786470914123898592559044681429770110616156980686269806487984534218499688379079135106356995921485597074253990661030809084133571359337754152617366497498272605408869735574358895364815553195419724774537656607735447047113230807345091402321535067498551174623264596042904309926103398312824490064907963755759138025939761673293390270046198377056711418903811184772412225120594090496196561868328157385620820658337784802440564778975888667687330248452213634574722229778613524447980022109421816738316102364726857613349245892708999931624879039481914867989702322959041503467936293622111894566070968915161581700418205326883331604656510951682298764799302994757124971425747718571206660947903247630723463618508119283273602584800203584397253431544819368945849767649104698136782468633538404667969025671155150719205337927437810587567094713866488335528414586566623058610451031547128519649075911986883061901546088250669056011781030103838335594713277818629307466145356946240889396069279219688429205507468905609741094839732478152636897582814280918962454319467266739967485216073289380243047505389689301535791711011448553222644826093193228421293021131663166993444632156069321425997224285584391850668317841099204078559723885913510333792551613691048162744736002391613367475013731871289367174448253690119282197259247234186625418485335719308290156780570457173022251906330108566324820772558622214121698639071821808198098905516268003831149185938487292549961353198776920208245229804022884231744449776047202978009004827624969932867263021241440204842545861635652883239690376128769507177417484155930335568155969624808367072321853494218364780042622259542412933156778449451395735313166211619207639313104282753299279754786423149889752995159329938912144903294163536908456161451183108264090098569163217378100861772446429653388306243597953560615739940677817014019399400355193138497798162997936351149214845993580173300596456134825106250598765112895382923858021376578537353827945152375960154978604805534266925620547749551576349053266575089033435019835851730028175659735750829716724130319670221020433343161658746801747107844898656293019233447330998329847843483402055268308548696528505053066581364798315180389400843316931796460042165098906718759219189133877973624922277287031817309636618379075168380856443593541076841194946250567900317024344468145899433224096150399980776611567355088114222906747230570302676175127555377057956174446623339174402458871827445319348390823259017636387973612103689072121288587785027544381853156016671576375818254833032795228193540668507651449167327273001788362602232981177326408249434022013763932789346248093584661169481118597704377697762929902526291330201177699646968726020256904600804483480872950351260390867964102224457615039511695805589238366317703387726443195666756879926184855622056310524957625908258495503187115200031754586344593018218904369787175845205038497324400507860852553544057742933441704554534022013752994782361789687511733521319345020934698366257666959298015180317248032996233362035270886130184462078139988898024788890911528062802643152280513747512513838637714841914187143479710190856210139335218649927630952618265250864398034785055949279912490511592492745540043600279346717860437223705932603078966153475678709656524301358171517521333598282882973921834772304745415871832106363841966887384143571551010927435562921132771282118420636428955696940837336978392440928758877003883280122009558327925347863234867966392217139459759550696684146711599971524945301995721719461162369220865467630199611018370619838868027423134890146821338993668822646305433366508532662264731989680062581976867849281171687548760719556189379482217767557025681820444066418514503778385947457701982487063006238228955080233412854944833898537891206429527865096576319471720286424735592511188285679818315227704368042774570489160009345188895133783312034335264478353807308621150547912487458856271175467440037703018219943076630404318245443384678261855323015931015640553187627715525943734699020083671384033133463882644416899966078538574422201118987419259681217187304201271926664621673751085349382536145582266890920929441609717532237113338977009355765825508097874880206854403456051593261085328671708445283526215179574465486530862106181954257304229058853080191800632548153277596957561424492837693274147862683212624860110804943003303421122898833558791576682149977316558436982861853097141151087267754431186143284595474474547590848839461217665051832625209268061150020736298487914967637242420376737689588904191788087668921901673968074784095576270077275042359925499666508306312258363951524343451108966965588097616646832227151297825630513633938947122513016774861811296825385153680332891167476253610049454077979298630178165075229658123350994836966401710359276532974529983811625634212464688971439567814862175569433340391606053728571974391823749584265051794060072113853049835190665624870855039691027077249244297759919495500206182489526918089220451838656075053969009633180914651335228962663649798797883519585606882839577185326756653286328647184774578841871704665767960791657075355275244987717322217667262418066404432545507817423490107683825427263548611769300731418276339038706231998952833749646651756987257848395192050681635998014936765758650804786369787137624611527773439672553399468543246584559176249229469802840545926490281841443351456159322346040597715668849683764934621888946144340146097238027898150011631578035398469561260548606546711002423812356540087171523330518113448455047996808532383504608640471932027952518526127709248977843282230768079204887064245779744941969298918482886515506893466786613210621483315902624651908347141252439272724588889268192254078896484538439142270775452511011110027300348855856455704881378107745370363357850671011530191496865048854273218082485883305093093542402920419308668523987740327568683623208980172320894378192060649683708301936753435728741038661741956493043080718795219115465736679405140657540025907622604229343335079789230090173751281535810301981292726248312689201759011207360630884599748347495073516523051988451850577585259260565796427469236585097144797105367409470645003024653409949631994258549209629658239229501980745207340975147471583054118720553578347604115177144020407680076013014556883959317872902617236525238470134819932710588855740555241515927384839890602459797216066889223307459868204767963984652571946874959038823115582272249421918322716633148485488592081520606886460884420673860162753076929616374441565988529967177073552828131882410393431499249494885868215334889243356853447178379749589162509170939078649518367707173211897921199381726156893945652594555486703449566664764861931228488253666126531636554180352663399327475905108193726011988446251404210724532873832958893938397148610237924697580008729526150637130948709722886461614314279375344181225558258308135989256694168406522049540259079873847505672363073789748830436135013855584663500246680220808851653071326028165201989284426797208911892175955543326871930474756366319665474559312335134280603286919980285208352991051330235547567093053873097029597074351678969007213678452087111171086303262131800691171540872119220850420255779543697260553687784047090739772016134937805346326249280690390646583215019820295401397453292076636001521461809502198962564226008822256870398142934177680053419851089254446222427335011243424486139565391684722478157414487808709973131052349311981046009170138892660036839859674029379406375841711683124864646675272528527024211044047978729293662151730625166940063505847879855898663764363750626212966559810230427340859719647848055125281050127202264016561265349924213182948959261753746090778510951023981546732351850809272525655935112970025504581935319718903987659648816601552587545871046226081193500407848764486995526983019435761401384240480621604737213454410438114919286699098610514770266587683380214982959371561857176483704589096629732629374743627254711494846291085673190289531805292654409490923597597522088829622920168649583335316109830901472719116756195397143194077612186684795617358455719538711776366909510749811324501714443145736100374313858498362339631593919694006212046322195414661853015306707959427524553994338907101994773692708649728326140508903274026826566209342123436398311544807822163916187927397422014148268556667743997682415076200988807687655003050489774091297171624202655105584846079364552377659361355803894201519302356810553787302173105635500580329615494187136293940488666865700324050731274479066160964038454106942922587789092296645496017345402681592369173541206517590217479998120798427091664769788409671034076189243088522226204693876287444461740717277669961141410586219405707573649168342214718048290820770696247342507962615911054067539489225568991472122844869213046562649735800023424931148656605386557831393605297833501125721047848228661790234533343354424522893544365880936739102012220571127604719071432048257186745637560936916911581119764238086625479094040650026450338616701974897351984977307934777411745029074926111231119776300792291506737484709732537419032219275697430981340832257660938912890837901903536982311171967208772589893821717947681945154043264864832505288154045819058091388034160111010650346120606543892727793961200517934427158540084533844375973301485161662850833360573611257383539584847330052734669391432479919520258616543623259106541504139256586915043043344635304792052423139833416588286378543462840891028086629857108069354905552012026534452272489146244974173497459535249581161708056638717331570963073641093123892731032386993737252076053555324687369300484614519682805480996394499340320725596772590730890903063742847567765459658759443108775141578601202739624715412792476666922662947105259239883880831627117447620174031909301409672997924281215073311497001433964065200550667856944919529984111813947875585761680708246994802743773462417851098374439006589785055934742997750377059262789672267643156330579005196636038924366556688917312601341179104187181222007335844120393635944908111313911038818821663913063383626797696604641762802511572176785449040208687271911805515165874989330299708667129986285222103034975219912516897632467692788442540776502716744488212316078127826179733767741769183965845482608733789456200034973810108077448040493436064197684909479776609570625522778313960154145036818339731961949063371267123178677425383640276531083900113411377520905069545043229111064714703770692957212478612055582356570495244635310696762584941181198943706459165000412655227487477964694108913983105293397346410114670278942087477036052591037179914889663509285299409292608150664226028816034924001760770558132663494177643076199994082534772609813010923750006168968313327417462213826252822236295564982753066129456838428715697433078497896564380247201334183899796992380397059497891533163332730568245692787071198857498384484096680741554015060805277071238863160097009453807359816176780967120875541980450364780259794758648408989568333899397223550650822341887191311587664013589627219345905421704450072662027452337123616732581289371728941727901566738429746196314600778030261555010684541994801840288834848457372090426209685668615644637941034257129111969548873620244450898416259998927558396987767803631711277895784197868783090967743109724158584967849402191123611535738553412747599300260078612328559570667371347552493050943153442403779088142672876661035857543840184647764676171350505611595228377059957273488196631106322710019527501655727073143105896898896253417564842284238254727654023993686645338881330220899929971226734358647567917695249117400780766988577385389588112602961449640745882548181089685402484448288849950459338443726452485803783105143642710322287277105699758713277352196188579578088503306042167940366400605033805335868878313643640565363744731179911342406509757393508633889937565685790681953693970809410346732883455839363421622089662225737163463664456941263283144557109055790751627682683098148351576388345089847465357791505629343367652604977462101036521596805427961908917096381946204670348921140055489866709609073454146134607082383216961724878775568516288561445290076399967138987298202352726176201663154281007908051555354843289039446558739102173173515997857367771820496197243739104736755231906738366880472938483614275135385790781498537796086020636800557388028926917720983168777164211915805835364212470704427600556374020565945693736314903783343907909042025801765688909988860085892335388840943216525016131609745729599243905844644814549013196415347115446871763525499120472667095746411815185767956194160434927739549126087688080126264808241627520395345447525504653378625809977729266395391068544216086431599013495386660413463253430816121147819306472303085942545930093346475731567826995904793808087647552601245945265793895187253680387494799794084064809640737403766504554370369212362420215206705454190766284038333395467852478931812793707743497703603291569272599983660446198201221231193175253168271117763641522554298044740033811109613298715823368103462928088194573406097288213634848859352424725297408770240333561718523712013469021133807711073919519706795290672115946275298103450559364531060775080549905780552576330931980389149179843946401924973590428732868629526075058586011804060207196173395567337248536752211459913116809060070147706303277830897263936766803439775464890623586514561809040857005994737688717385020203707737691700954904128304934067977516065504398136050639715879513181159610011750515760451381309123170348974766227255698879101110016022397619665875634664794102014624703210490924527633782601502324271104570405533300548058487061503674597609304159970785275786489271040120633970225364771306465211662406762567268514167303807741234329553338019783314415473356574719238145737781948611288939741062293616546585521824307082498715632445962217263774779145703774419006550179077117362209884262620228800857888951058833786768804990587085296983946388140125272009454328146599698647140442316003273355398330183969577315521766361063036581243902120684837617261765218662473592951291970604156070641649141378666698844092633725960667441715294283067132170057377020411478327158703004560279661544367929187035507114793599402753899073957715980349009421024741584203265325504488719893864899314011043827284584678090031027505314142100480962354585026146158403553103333496768161443351387450928312084565843741145166042674354621370280082218459399134017757493846283947992314691621757219476287623140518679243427426645191490334180163136625016604250811808181787956595200838771718339229311556109812685859316804568117598471781708004006858815520494737029449497351244413045746341548897209160274727047944549999495768856912075275458284399264324221799550156227627826369808748642315012470116118750142466095123455382044494494867997044170238144960686625584268468545955983251675382083971460608963078867071544688630907496341495530326421725148030484299155898232088257822036654143368224451329185236109050667770522564229296054529535544807221378279911039683075031459839678464346653222458085833735164901494947946930896334227161274395564274597302993497535092890517624459174563920373698420906659117441412037936520908275904377786301763166598568099628435867806714436382092445207381217380673051299624981591923605140304336250424038610671660411957205979553637769525279270892827520716779183294432234019359149779317910404277122044097450301208370188730467542255674093119904867636726553559227191416886623786043429549629465770462329325241417748258766015028179606413534825262997900581898663415210013989167812281084091321610661798915923829512667704079387348170288749144624549971077941097579995335609672933210156052479822276093117415789437084039539439414809868992811442959530084518583292407243580537442148977470906078778471540836798983363127273479523742364086860751861559042568157796758140094834267267471921257314904104050990043300135436359315641788792719373390501212068641899862015914308772702839980089043759467112819385998449234225666791892525696271833273918617379503991288882972475759995919411767089953756322912966714309288081840995637089188229557313216595546936851034520165964822018977549645331578393258541176523595753240338196710032202144400346421202138345435641511360616834992705692527507088926735638019913972559673517958742580637095825119175570361655408336534601995444655666518440119454891763751476074278150184109717400498515864502880994718470035380983247950230529362465879934278000182781122534136131429946085072562416267490233656823895169401501131168911398472099957063152137790221676396014996881675230743648417526362241565775321388051193348594294364411413542824958829835716793955019372799526909741559367512686891258399977766767709415949164292989228281673455248484148009253409900038231097742244546462844663592778870854085490935940697443662617955353115161229379467678782378665672758853009021071626138298365574263364169799142200788115643635373212558002753505871342298960508535748716312025831527459811517569984477004197993864575220660867299857442892327057698439048854746395779025876647096433809435116952938558578381911331507506690312785060863524052450880377088624538985595734830949928860208415261548459245809040963306977474067524249790724324824102984858389110023673274959513476788755886846272973126861500684763515227017740626788345205785239990704738121129587206821213785473303757413522531265064139483490051807584873221799906379316354463198914714008829048060125618867959485682664457282089321377328228940760013259540081224617296406338733022707127540794609589092294194076182134564966241720314160156573696886885263033552526489159251434383347551132391987550104663745978819721611466347302776909411672546007651875277079275891431962679295467143680375082743490713689388851576456905667898431710231417382604806194531242533848876109243685672413526350929578861655986911095559802896381906177582195001969812285095232858892592177330151067233634188727678807358457002436108626628166184446786357226846039540943817705038553960973696675963931227932352656688425719730424798435584309814305354988635484500176837858439989801030241556415196612864334976548002022202453763836830119489131381006394674192079955853126024987068129659310346543949320988361048188100185642875705088434013322332098932495464351210973111346046993161460893256799901943622277219496649354682796956467851814315864778544945906599105518472039753718207870247648509898819620057757924338608138383015015367372031854335936809563412322894951539162646849487963834521409625973119797385359712048815344613694552748252437269215814983608802728681943350434604433853535147234516944279567971916467861653962394976081273718454075730103393918918252719734930286920990919241275066267229244875855626230980021781794417293603072213732108626388014978061162900198362788981976367800063392026127167701276176055262399226757899283034361616716632568760259365046092306260388076059066816161259620699317143941027406138836707221322638011585524103906225585169565059945426513398687128569270428507885953642445369380718948216986839291375950496422007864425312994023084510096184370548343009437105443231848097955255231892675335666654092278759888685810831512159119281226309225937204512492414712479822523090154260528845366983874653938957117734978155343468750855349683041447975821431581567787298182107990532006515753716767152902325741811248971791227116110386704679165798466014476497328354982694292569626492316321045210347067734970518777403499428605768240075360587669118776949875415300791798921323914793160993809561721574081945429299495521402001104847345074704396297985207941274118967179859164848592384930237965839044387396647591571330877518686722494607455548659131689950611618444036409901379665543500494045689206224220034224748641594707700689098989312743011912383203666264182848635200294477246273580111345684860784694485935745593634409170862091737425791489764868849973018458746150716308094853088325730564699026223260553649474294136700141960313319591451476137214236914312074583686741221295532898314974136881441493934655757987879511133415288234470071919297102142639746323700238692276210776107221650637171001157180408025832009392049168564994472069149274379667512339298036558394008857198364047157875950865430496962900349832454077041721307810893491249821480993892616608582940328367104204108920803712174738010831821141353563562234773866653861616913421613593494865723556442626526251634644491394654873104846268604736598751864525913127332494133730779180338406555263925212266545375951025456200204603622210414118130168041705398280285955834439331737712802493786632398072031817340866660087247732616916970272549860521241665242604658670073912779178354132410819071408578989668147789860533893930910714276699797457622178890552176297732247151176159919512061554860373657066984061711283859297991085425814193915770565091264695869580442377307691929397288854895060643053836673180077018179023479383856781084582185300695477352922269952616708388195125524158790174690951113052864266528919163786999574671992902379532643843797064691545256450311825252364780092802195484294005436433754898577469868014660487175363047752327755987795757433886419800658996146891405759849399036902504945239292506370362460939601511572773702037747201311927942872072505126226779997883458501116534130646254241415902927150679337853591629612728415709107916308129513849439870211504354330781944238168797220482618566389689049930013599726482254519997720520730445964236563927785237594271358826272840887315594909218329389869444139024074032186962755043637874272868892266088413219343115888419144020144583679899603556074832253550463385625406138144780130100684484384937011962920789188982252371409558538721820087479854461124162135772611299079704162003395456788675050001105380795858688706996320112997417003052569957263287835476225850009049975526038762838574077147066886152038812887090568804446517244465512211014321208021357639076851031006533962137002488683679838171118760131106358588945825693745205339449390574978076072296516149224608697653774596031411000003258718482145588799815008631666895206843603008957188158755624580146329975901849054017255626799052580437204755007999701215638335433420258137633247348418326198244937900721005079093597841271422085533620807331103399496103526182683639857595257821556776112277024688531709624508765689629036120977855796940786248771493264994527870756548334426749860844751164745635311823321137121109048329389028586360461286773979716277537695787426216027416563486597328992007999656599897642577043017740231643811131768577298121285925023625257980157831738862603596072710863930564803890961218886454960961072072458360605317820850420135656330436001525972273338035703151089837027015717052089116728379765564649492308321056826742236053061855598092375075356829162075189986110943599525170810304177057316789894468289501442951467398820039154686047633237271076682937276828510376458458792736881027221688065135389090221824388904076177196255818029089409855667007897101034268938185871893775163308572736302353416175895861421509526562837138986347087066543071463719514129392011904182205177859368812322944297931935229168471041145416959653032677787281860218644253498265307474524670613374265684867006957007944628861662514160323324356174825243710254233745514367947221452421133134942215837692968722720789450719381695629651600147403744079397930699979345489884909402314558868279130576568587684020995048987012805983766091474665272480248311249044424196149066263982170719481044706963760668219962995931101030042258109241536173393231210673789600949734504013320183897025061237822310790445112546052362307658286833009267311892670190434512386836397617443263492118915494677333451739164321299450147142873673579682566948737103985948664169797347754523507519636768601761644961982965014563277651290431841263549356971381927858774622703412670459224396615421169452792855452276657935612779325911610163209594371852462454126850440990396087049054125896445732227770170044458514128654503064844887985560197493288353377837552071645011798843533333616471522866148637560857178925164030404000594959905479430672111245519382634569108833664532570758374167944228474640855279898782649791409785622695544811463933099301323685009400221256668799327857887809816560266318488345617523656393427941950142545231425594399212137360768048541486547517870524533531585295455101430346484786545522008960141103783847471799938464202690717097113801799649129394527708215918669672514114923422924164030753940674405496761156133800482906313312957042757229886803409046934123424612076361835858769116471693559808621710786998354945493653547115745213413650328091316066808140602684680716811667673015390779021567388238099719479845002171076941710799001365887854235306058585901078347408792204731716971817984487131866721637747499424126233057688106598590479591590940822691569009521577326673975595043106701946904342881589386692363657717381436671477184122408945035720999034926769037345381549274934539111783703964743383144624860885054165305804356713036692566310141195369367062268123262345524438717131044933561724629159087337946752292471786511039629456737455867325256103566678460040978433621286215081479266401224963347937113798008913248463465430170807678694754496242659425098885352371955149395168508384203217799307173728953411536956066041208732073946868533263976219210028495975490337489670043641674683165397986354857765910680510683879826048141454037505209055798670117351535858269488889789734946872534868368278381119881025600529045239159668903809066328912241640979920160311928593286828453594194720606849739887740909789596559341247706110652682524742467862650636943701439054042093142370693071190958413222597349320786486068439454661163554590789417019345908506531976059621472963415524138770119448889189345533789023160489757096696449184298659099006532192239701632950901016060216178434407642644301076690802423550430473461462927771672274713012736705314079540670730456061598407845590162733975050794169423025343313083439913349641380632711167430254498498117124117736950485011531115853507719221202340496337835511870026480454118001577758356578974020082660879938877696477163794558836211001336495979427578962367735108699526589642399224621182393365829021557381274891364644528517455305129044740654733241029013802372136305010264441081039327910045808671148471310535563331029983811949967451803802149642627578906588593959568806489307554510858509573024470782111720423859202163333964030092870316946606613848787400742896390442670259530089359172237161243354239686534378929684178491756205834184327465837181769672371698915409480567718103559475477136159183246688353808896447864472323614516486168499351938425767983607060459260190091905321127403013098440779675174584714132302100839767801224388791194094225553857544022028272955313279227777979368558388113751124845951265621753491770345699180940525873358354113827934761566685344467521943584757761450518852464151641191396917954771143107598552103393338834246343009892156036599605234288808181532726429124067398613297470726349861053020035031609384205325160799582715311312658746046259724367810894618832366886341883274862798785232042645076581899455260285083819940090925299395832833318343831563518078745897880354102619053318774818552477941072051089874172658275363518819220873888600970613723118843008143755167160880897993406800342531887668926581833868228282306420858698582887106568510821704473664416854061848361261799496190443007817698259204966527772866041480138655293284812083475918654214931310984903573143534440645007774582850004125954631965439524156157591031726795940226509848551109986271020379106711765341031090445739685710052487769095564065182926704030472885824847118490413200853765493681245409074461298283097246038488149093499743777224124750450383235528684250238295510309483093401835944708373562341016181659178395953541394461962728150311283961933992858695583071266159082812656318048210096139076747087035841716553327262851125347571319032163660958532310185286862021117547360290060887991638293838781619066032195056419373241949982456151995674667648167335125848523310809598521616820219849265946002996530563837876866782596122138309483927687607507930772476546331684974940846461646758951067122760228193162402254051302232655869444669071506029794672209506979244866068489625690211574038579313206740631521393382423411683611642658189723969264344364620758910066812079703561801937217890612128574819592894480088007003914692974364424337910897334420732166448640036987388162664335256042623129626703518963842873212978595550404956306699686819542611703621987159978607503425312150013235066283797874177043385905290469889902225240075289791545535517498473708338578226691301773063997346229020496711666196986048374368818071153814304782384239585246157421682770369595426917069741784666883997271574032429131923121293658146754008483858420735041095684836461973545430953705335906862309027253771179662081727382721493681797855398281239263594579480602211788426753405184615096499673138350010910300905762253213124355029951152807529575207138722666892815804632133125648899322547604373307259152882104640885668626319541373418337931691196663805499907934604655029301002904283920716474710945257181744402225927687080045391549655944728800597467032904388971583491537670760605301185278614509772171496720746307044504571891213751642588666153010764533035232207617884339279398228917322812715983373227806757341643610034953718532113807720006145618280861073306009765138363458153918157708405954115000538385818342027687990975262691095290881146795552299833738651008314436053776490709506533512159236450631256854848749921404552026694653797134568566616764548069784893158095482010071595880185143348943755991119911051667355471371229464969659394036993007160512194961310531800159982551907932367988067884072864321973281443319078551755049641193067571895661373510109212714572982467917940769705544502543657557224963929091670605421795052665714795623899372065998674612240470451441617564437416909083552812228707335867289890551439013661096819105453904348464782394108127994780592767906753578355969759513235109764005081952619768742101201073487688349892798457869517079220735680638995008531754583766718816031585913066510499644200042623071653107497873677757362055771721937110244145600301379262914935126091290019573248414520788014413447389043027106173827082073933413149140126253274536415962132267027329000970509796860114191861308491378600949492609359094677467087837701397006112693165439289340784900450811768699364334115336435883733836583439708946630192161853957986089877366292470302580508528162663643339237841036666886336854496876253536427303011488732398774943224735207187745329241934714774911500335738999625447404061718844304033952798635451263664882446756477975702609151644988515310580248943335514196834238975136394556434275610735919495607281199159597910335721218587208070221043087624640867072432408031157496687806848427490942550096677408286531679417205023609707770145930975872130463238756671154150145111570160753651805535275524230288297880592200904353051923204544878798919837851592633121903946609181366971473240223541911543905021343273254047461597603227171953338879767119958585152973141694145529325546241938917400095766101865067278042620525098474136917527286805841683339479888134191139125141294578538742868204986726900006978443811974673335315159775540326090085555874467155283809347018984281646157303043571131070430882151836428977691543299652276146077099488202629816613226593769826058294948808396256503479691843768596277459272126107269687132879442517400132485553552065888470878778450925422837016015914517203024689592927737901752307311249977130529259425551376449474505907939763272305573648245667596774143372881395976412089057849543274124394635561101977832012648820724127548923444343452873164926759013073535922087783135435711528759167154820176592777649287231060995168397997706170113279909425169221200013600365420429025211753908227130280868148654711937604885803172623875329063005071632939918191973751431482604731658085186445711864676977866543418668121967896418424993500822946515111082708896701659301994134356383139068961251957018018464625469913584585583486864437115346984237831531579430300912092015796954806397366855507912489476857451398144757291120503848665258082991690796008785971243725344388151374190305894193711814700107546650981898352101823731706174421544022587883740454474739753342448378708288247274529704242782430013751977562728647043822420010802950656607293635600109766070391565143884122658152679137684476150306804322757759936975594768359260183365139154559110194504327890668395651052477952057970991280207858975352661713762063479941589379443081366664417444560750173763994394830687908703907382461378141214490131001385815696000950292848752490251816366212397636795170364983591126383325907045528348819459130057610903735242510072426533436077618913338674766130685095110645754013291821404592855362414960109474154591661139714436020736940409986663499883162870875636944976301407691011179300484085725532595229380340515925525736904478255214921453026543263727088539329224609650895848005998042802438735299805827009798605188198095369946443565197545161433332652177636197014905509799628639829847298880770339876482088135511848815096104089553374371760954868151241762303865206785652706792477340662092449162990166214884562227898583494241319500495692100971891564066988376786287569306850588019307217131464845361993615224027528270959635869416992698042133136873752061102950469581194840408251065651012927070573033878250814398700926775144242703702140917168467552424497218239410007914588465706483372527292830057125370909528216013001167265903489419812611175362924580067926920088005067909843270844915653931450198207203995346926112254357423914519290208788640698514029219587714867206121518587948767756722461760281174113435704818706615205413899716002197468282046569445066417758012874208970349842974168366906319803008904479338620064374085031407746041689835752653835839556412011693403969381015967056986416480866680481155621908132478623740313843999222125499489670543408336361106470404597462065513584594282188781119339743419683211851459019179928594413409778965182678851281366987090426085807773702338750861386327164897400620691150747875955006962425663142869559584776906819249817536102120265486237360454604307095991974997458963609342877223700257920364845110830825720950221013756295963958383796816390656527354994187275226434478503180616762253821166153743362575169565740771853314500999404927639310661937045217694828517001044634065432866709188625247307852202567263126641578806453734134490670377617687245570369549906788925667532180798034112882911622067896294271827779500854115804869118741108912801098680639941619563188033162112358434700289759349413015475288588888004704645938470970031285941142443540056511931133884275769481091466521179717920529290594090835033410236367135340795976875870062869812375197853071618378525354323702860550441904665426546816147826372224591333318295287332645134667040848064838835991803844557486158886655991528406267715140425702629256657536665240793187069803003906484862490390704989328053387179723456056424959679720617410743710904462085287929934184352603656482800809724013150661202536008894803246731674482007595229948419976966600539351456012053339473941619543158858658168627309099692479752507930366426505860327671835306629771735290954093035523813305965955529609809849386899510372889779401219343552294985976021794024274834106742818639802451468291212117088560586018960936906578905921824026141542148420651391342859022725457526079108411531321453213341655369974663204355837627051671253909259170012108315936351142762926525235905961724323788333019191445273387338208757701816957089578700960748648955468805344917409966871822663365924567226943183072931373450839628617993096877159293421194652599404393044978488153888112541616753831765441961566932434695805894460267141460825896292076552778840836948236690149835910578847407334511257624882533273154651201382250022328207199988576167551228557414709324338400358426218411577306014159334973287560891754423259088650596241860442598707015617126226590141153122660770470039424505968861800803370280551439379302465398817846222314613984541190127160327156088572648304552920376890552511209741449933098907816959522457529839618366280288666144371086903512443614937748843588721796338261607204826277123236953858913269999731702744108376098212133971306417192160196674729681515965933580868486893795472817193828151947397214232881773539137259780615188189690090261854979254333262507960860929207859001524733077800831898791106565194483488100555943379261515179681524464620695162777113988929018983767834628105475699120771161769224756995665340375818447345552857134759056337220103886098852419047187156586684874122155655803997903452452989047757119569325701506722486600847747388899683146162376417513386745956297119134896377813742025744628268602178467188937939906813773156584194140683933683960861591222713223486431478481090224205922673435918650188748259203909876377639618532900676821060983369763109780269848624889173816192334463199292264038553633680283200287354858012157028352037467630001288323275901665699265286005431312658367760555422336396224229360878068735174088550380556910554279874995142419872570463454485402003226593803373038775731061074754800838731756411614788361301935859553912601857682861003211453510139109938100546765269875075992799870061148016314342841163957606547009682793253500681121004202085657933746752335847483661317084903179505562645821735788189138804448443096539990743981691468392159133788930150614099029063556707508185989666780180045558655689558678719753488943725931366263942078508378017117031990266982730007557603706063746350092125099928542934617769983739322824606570768032217627709132540603064747786984216827546411135561337386058433099716560057043663853283676535375618397933423562660262624482625788597574885385514402469979267784245631062684520124243941580496878002531477655367124876692942030763227466820094554781447908551993688683726185742595897268142116170684651547153925027281928290970402286474979432716152135370684599809513606400096543535745317268911163107624614659865846912399121367211144168127851213094258989426788985553158292047142279657681608137180472486634194676640157385416161456693386633922259513651822089174151517127007084636296589406673441188946972936290471636561518911434243558823625535146700417418902693209854652777262819825155960594241003807909862386978859621315910196820222907587567759865423018733985609396074192190177593887407201555816221942794649283859176132838589743897324538915174283213270969307557780193506311591712028355269503481052425058059861913063632608362820458633890447573901261523843850336323159540566415347986855209413735949586919184474609622226746088450713529523794664732595478359751300526152050220962804172407105506377860233960970441609932233238874694853400208731038216815514095136763261408636835404038606670003380995710731091204024857434692446959534640802456795765490017071018205450578600170637059867074706923688722270141162016563907086442474136538472417125795080860169426838374807632722062823914683401620391618600688531539224357989283177964634997479281710041925422690249430541897176676654758037632349014770620528036784506646521224293529127914050424771768034372203353974063706500430179395892559504937819993719950669132215072478510547616509681042938947030876338891720621127808550852165325643627436676672674918695639966640575005893787131429607736724877834285798639052379075548457142076375056745879673490996922281045773520299838935156885804631292841700674475705975805141241454292612629056073522086313534698509267718543755586703770548552537252528063468989690408452727348503501969593836630212903836202569101024583216946809724377426381115295861453290136451195475390483643926077377167853928354408773156616948758328586159367181285071672129400003010013660117182620975976321332816895225879672953451079791732647376521663592426363373193886439471454879872960699137404165456924524483342480470882618679366189316259221386885108478876459515378114038932401042112940303063598924013997457259234370829511738783767270960432427275568818905956655255116213273109584987867184685298905074304397711008684448309854093442387134662276345479911191156101569164743442407780096475680496503418303813119255964405350767197215335064269155083168721552068527384831218340096427602754533122020024606568348052360982228996414618870425851009985568420312510033944351032844341519174365501865422364929054858661782640998847987972606141851253908787172432877613285078805251788481410214459179354023323871512566124694428202382990434133936316344497232852544780832031900554696785911345821111599569087485784578051624705525865855895925143074166382852638994038765797811754121158159196930679922651641425664405502880510028185910656973553890039530380073030441599849494267691240604479755218658750305713887237411845067184683155918939136933422138439438382419978630111375448492510324384084541468140915732884985618340628969660714865614372206180482909688662709374394847160026881126616180725200062155199508887778780015832970055302218246016665352924577535296281236796416944861293820497151651724966079533264308006678435679532385587356397940272121147692520623941384473317114910843119951817431145702353457064795878510218402210807865969145627941651741112820397447640536835102937734398021404348744224792126577803957543812829844318756396291273901238289822414488257801372972498864516192806105073673545967137492804703076841598787779051704097827804150859157678001929929606285447352032526239459390602144019623649519583726983192341299393748045164558270275672075622922439288086672804605554393114896678729694601072966161565373240124674843073608066522768652224985541918716035413669979176813452828331760458197695326463960704850203317458208915666968799447444866967292528053181725665565614925778206002341218060371460321667490006771538596134240204068403899198343673917312482915636401351456107161680516517741296945010670552169782294412102518458880316063826536792848178176521790915902423698053006966344967692440842290047127096404662529044700428681558268521757011923446764482872339888928885967165959629301082727243663535434725329334064791358767072204043343782752442449239387523894795487504235665957736382301771040369798448934549951749281062003598573941286478354850824384612375072014577400021332498942982931538558655752621552874565817416584044418650006704123704029870805482225006233340590640108010222749461652037263320164429094030181251401122120950388759410533372175649199304459720567219761840298079748155184482425838555865156127594381975370561793996296696069687505341354850983969395956530891935481824122911086265986180981374720467727211396083729329238793320779298337276767785490711186825210423128029718058901529102999910389836415414212612777082320327744290880127175128890631766099291242194697316479652701010520080355149249871946263194407849463115094694794707188781765713087803390936432344181225390620657177778022903946859121861750343883851863109245651211935379494301728611399617904830032670317611134776252982634735307792622363064234910708434636911600724416048302712889550517862785542001015974116256317071233209545435971364215988459276832630363838870365176880992462789476601107118632813023680520223370341044820290485375276012659268213243674499378822516466120571013301572524303984940613865488679317941644714714597048755942811804358896527027306557537360107378620602288672769038925590884381640577435960380521399253489992013377519338163862248763673096274983504546286383976041077146870590798459809376685947318100354514989980580458603433945686285875995282142462619780757378568063617066701150996128412647043184780174456622325390876547004622087925455446683255620375568876830589169794463765055343365767039371056236278867865892392922475797294659790379711893255530952642399973142937087532783147534037045817790108320280098470973086798530289779416973369019169350283036850253842193103087550892085432653445712939211815188536869000553423918775512010567640013063394103735164095697468131207818608014022271840227771499774413923437976434406370099258699675278657701513069265263151692966246936222071034061082831224071861284917892746765275300398081042604218846759574635305376970072091243904969844340064918460519444395208573791586268795643989932899833486565149494666653753964895818518667983710475657863964641485387039811526561681627858453855909105104162376757082526256623652753663138745587557322552741709099496367368994170204083225412688546698510796137879294922920372263128745159700440963597842257292939474529861767482011379209772340683903250167623806878762742732443528871560025556600724995188521813979384941768475769714834415000992016322003415710126869902578846549611984135040860665225258594402759964894126508992437886299959169309652622812631160486780055025243299709799621861783483051023645790225082303484018202294702815207877120904299350342215496904961367431725420613176431408638641832125787061916894390601514721710746234833854324832077655731073015900902868088138271554079084267781021783340487608601444876647915570294075884714280457974845251289926457436871706100464008912745340191560049265932011640442080909151137870987643586822929819905376533752704152434003876505835420663420922579749161865676335917910506317412950385345121075548368037322175790879579889660970507265482396749224807735890146343864637733627084127855346163740038427322772392997906051775220950279401775663616416235875635068965882534831020052427428606185239494022507653751716439988186062730649566650983437853075179634517665336917447474435326278046524591379536708638019547206398903669235640280969862701490788325119382697770821897400948151891562740459831987755644074228648889878308596774015380086065149315162194808952284483879014915450665156791655706619039770904113944010320471954420908145783627599945287954678802558553383892518622745037286883257927255353029724941129378866983761381541107449776888519707751193431931172369319008417574367393613863619082757419679003937686733277457194929585878989528164071071984803106560179377852946962546838115804389555530974939649136124588250002738669770837693547385420700464808563185883445428147065368976966842952222566232603565228465332733398954686336798600368452837934637153606716908610639744935394122913903812713809899368269555479613649185223788077696849197186187800292690318457176620040240556432654820148348297176155576538722914226480597453528916746136852712581583418677653823289262481032636832440127775931558296631719252282583832272628654133876599285363149953368951982783859801817693397257065284337428346214533278344503628370138078419368299617722651289112772601635844957501921221613519053899943798364256592900599130661073385449367486637904043517490610724814554496321025930358246568804689651309969095709859803004736535367321121936226873960176462071348280878928369749087065103245421993786962118620873902262540077047927698154945885805761857507878191012689705554609275334837440823619687582257119669298144104548577689466690963112403509682907728598414971956472862520643228240338903360186791259336590700781671784014376568044001706137580867519187678597420210181818618826763115066748978949884561632070525845469938320536510659494936596049013605877205609640895664394239665026472320751056338396532194430340923105885768444282353001704301044511684676540626022453708884417256779719449899872899041037921095006130348412922721928242464175248780166582545990300542739768685389949557307135732690102580437466858660970785072030114573084661126401947250042921975071046751438219272330169472170145152203360862774030046879143775172781045225243822744377198746610294067048296902945323346869462926090074652171270615872386435487502225381335121234703998197544050305518094642049994499785923665924967836696101583364353070312136736305873864048797289027514543061856940059606515342859486698509294616555401908415763394343300134844974623857668542986406122815856618845684548722310289158424864316785246621268577394856872834611140406153674429883450110704630672104617279559491502018227142721209570653602808445987787302789794565709708612887560594797343410061446602371360734237295233979045098228537654798979239276408698703545977880733707974678908518406529614113315276888602967564213843211601402672006558359833591358432914020148387237498744753853918539152586446555902828310361570061698744965552710393900220248739087704470831615063903087478516655183896038233773911092270295219809132659214283481427984686152254376154925585148950739237618943161339533497013347191510916346607789393265165564056769950914011304660593181007748594436135341018753835895948512477616635721358104634676957038786771061417600619246730167815339277906977535063943436602930765334755445701282589951895297699715634705208459907641322646854666525177181959560759492329208118974669190650592417081769608237629751162037765030877075891011592414379941052598028952117237408454451371456133968881352998396979082381894080995396793647705294472528095431237162487008598168608203637357838018037033256381255010823745061800562265590726912693320968115195898296794304934821227151217925877920507435795208554158870093799789491752238864938707407371014243750725594080588733868407333919294521164930051914975575340632083998118689045453534364093739389768138551174579869434005224081345884187083925477386441060930287930379747079342188677763119850706266211021585557207063485270299445063889703018759288594239414439663099337050262173515097238390760855250661761411715212244475008331759164309259441686880740527939259952922899195508496484572510855289843565170362076006377698426734593231602697626052832875531694215735057336534241757202405865053642646342297947919228012058559721904050684527233602495332324088059358091527239178162399318985863500715824232534015487976276563583175398910252137161355075324168651904570605648826959877261782356501748143010222930095780198742387954401535186680374176709240727968922588714718036595965395265100284938925080388956722139589382671998709249344369138862478344227829745880674304932470607118501217756128690233220159494478522043115605002216488069840317056351118133197714387187639604879541712106103729159934423198229016619260883795600085090947393428145760114568504655696147163063207776153085162126726715896937090654552602064521559562341597010663678192949075229372124358860157398306129742878197903690586677929415916350340381615469006073808843895890424617724059826062067865542347257988734182786743320673063775827881814008093537820100194296636104913649953112615232924922101692760278278680546708756456460044720410534635772261987696015725634222004440596596573205610159871446328771584498565961209362612825316491705048171665211398002528709657077028401253360639731562070673876405671957108770993635877702891457793108563063362079492852916372939515085305334005571887556143267947559779597730014233752885603677258286787682638810500330604361508783138893495558951543196645698684926624390542755474325576645588040079031839913261836168138590553712672124928827089881799480438777055899079907103154850151526337674039683489496256904837664182051018399896260590999506428479961857082700513393108417484402797111493730027992484016420577694751142110263178954483213355648712650988145505918268458933105496481772949520321960482624205628271649893955142326155543604659723153126542577372751088473283290498671928915627274291323760136351890999260463865528779638255944867021186232568915072523332880928436588625957412192187359629855209555507298507111523648996930362130761046939052464332537718187780634074850238030964260443480038825777508952208709218105213001231617891314001058071195689253810027468194990272287908310558106603219291172641183901224757415802133723342966798187854122363982512020821310953397753604717043756811381437699443754048900414022397409005685890099969478904524412833354641298388686498429699364275571713584728462646760308964970875585457380547501672757612018071976346161977018761239908787887351829748667663475119352027983905501341289952369476252083047112602748999110865747701122900103774334063992743481461111089369496034709479357650670068608924900782184347578718864584396078135218358120692050724548781898436784049112216804815569538433370630894595885184002069637500557638001931949925286173879952853737078603357341278269776472916860498301617403616270069541698407450246406135342360672969335255125745318915793489113467037313571616973065448114907996959774839855302988336942750518948169278235033626043670174461811965796607908629492508430203608831455819027167528075986729130944597605711266360789147595769280911554691329385112049255000668989008813983937474515543472120432926998364157283813003948831069535835470626635219010084035368786232009794146271522266870480511523271101231733005039575083897174539735045064973882244768743269301368045955984906859156457538993211890924874399573791549978853255238032651694007956641832636931732224871635025540553836992099784397246703817668293896220205687607977862414703604556739621239702159615746977024567399377082039199645482882234704265252314041818762026488096891274157917488435176429539735294254875914348807359554422731235812356083721335218674002908079796619471160969152064563578669060584971687897198967255736126616802447508262456024406989175625257086142034718939718490748821516183700389325647809489727397331216869928574801160556884419731004038206698922973799050826567699536233870849150359300610286874498014941788993542514879239533576575627236806077595006147061044720329486663709122793948377851918312376401191150089965794142177191926182066630983579232340301583997368985347801953987807319500901095282815127621161938914732944805970982466910023464049648271299717053934944714999105905306503468269601990561846713178136640360103540912364322379552742095781134958270821246415427226310269101757600837229381410897804393586310043975844294865525308468960496627559321553164125597141107381222711774271476092812791571679103942637174330735130462356638363564544859405117564826121759130494509640996449064162880658338346048988901147974341912489854754356760884056275761747224995988870257688722203901870852990891148531738565449163554243205952892428020168918880919696081600281840551771888798114785536389317964731782238610043906448959365554349699755909633497248319038839279266296592862610504319636565039464075577876047275735982569923983617789160272798703208847388501724839413676129474664997654395926318133120763137374222054653065758011508547665948219465938464478388712763373745867287181741099106530057242973533804864858160281983733288856383673331963555239532484610143999446044289838403653095664236450189567705481071276067413461175421147284528045136722846925588024913376794577668145955884197860759339642048173474011868329727118005844835345517247568730534568702427536083279269803011724679605436308590234786619013424707365865748145587883100413847779324584295793447524795924364580898132329162246001475654477218515729360354372356313777067652415775888554210324759730150389975049989948793205542281826103981349034801640157085107443786493411058129671305098862084354362235807011008732371316954009718847463280299645170345029584161208621682298142299164761604034905649394881149757369842305993327204061715607135434668843990676149178257471088057079872629759395403100371484305941000037133076283611572769242763398873642627990096765627180672286649569962483028420625323087025044145765475196342217240343824497362902474905152555845202932908614098483207179654424873448528964014427640315726963545167915589874623680633752724787742313822638913381364248322733252737456242623018543790033023794536247178538254299857422927526255582500323748023713672423133575813411097265037335678240972174414739533766360388329866363089761038944267214082459506980799966876693524463355657931833118578025794378707089105817313712381818424137918894281187748507789451799029524697757572939203949910994115049218712134463129424248879704483409281103817806244595861441519491984561882045998797303990550700593630074281187173357522613666463547964169462277526470246802401714685514817649162636338504020525852467976999428162841725260755923963110993524632801778897435069694310164485254144459682216960526222882691026692803246969751734769671536036119866872035727266654580730522430184282847283536572760207611515531550101344504373797792012901461881050965228816533320620183683467464282993521583387574341187127379736443077442391443397608788942067119773379734111237131083580138555670796460052344160929474802579614272350704424813864704023410990784182492824616907043132554465581380256349080392344871812185545356144105909611792938613143936803410991415591258227404659451538748405303305550231616569089481708465686819323874022439322585619361012675199917031407784371741087991543501005778571538533557761959862222457465640512857735803242943085033125246916930957391494668552634979811976579382770659789378160185783692022892559154333946501890901419504979678918471160932419775291710496086706715627181588093553177775227832026191930936296895090873366314920972449810818057147907328946397584694495503344060985166110653123842174249223436583295076193545518661571434700287011875213034993866805444222743021417670107293135269478986545114766139551663766641726210353599473220853361880846233510366053903712679506350755626017131534664706724400658179123010531807217242483107591922123322483483208625985131782292848107747698556600220458127262263989801863430770945771199673343536103256751725482652599639542570967926241739397065920896486662045626932885600582374516224547058939893047278271138083981242949267519248635717647660510331455542490488603000452644683431655021178942038432132861901486605467393018216746945645884329869090970726737785834562239104019917660531745565888961731463972207270469199137020018521811207028527581038548381745982154913578794773806156009644018509336159593588071707160337704453110188348318646481274033996687992329793850112330444259683222487497070059365530278865449954820049849701532648273488042342633948243977646982245806365913185241832682200776157517508794035720931448017495947854398376177197458087902903942029082371082875820145813350374591327179998876914251416906225134850539263492241538800733460653263237484925838796845854984010586005974703530627496277514674138921286501784415684324437608020559106207470618047384107561002657809512101429504392464763520435168508226053923939256006915614784022383152065486102112490844397524510511735081325123590039121643899664407737475446214313304278755515783103512989885584377268005907962168149239037878537513066092793103611028579191248156594340338400538262608440138792813385551840741212134732860375395849458431997621641156397260839457812342621120776489119324097472045511572413108333306453959472762936398145951403862934194224485288777262231746369556200070886251733260174454534297216112803519251179057603445539047772010658867084064332745197450162137358166042849243740709129986889774200218512621955858538471673197069050520468814873756853593827007080544914732624775450951693222316606100594155203213288089167862628986816066787555133798354979785747256011453448536435150532019696173041089752004334820974646567464555775328364003817172277085633484144026288032612877954771568162462773236166548960227218366581936481345806097046270200194634815967403244377755258918889197954765441955241879670152981458281013856126826947896160615848832509879804739834328875831947725112324331050109600149721105686935449077078998601836776643832922159443123886316535245460635755101439009855765693709661901307014803432807938484190021172908245522169933763132911701487477631552078445072257773407767201278404691128408787454170595046208865863480948487703784873132343251768659115083107208176667464282362030820555378270003636557134786566915217905465669320631211225559562765002766008605859555454039957653516257496501544720662102220081827835941905948409076329402224698610408130806408297671443065216499046572830220953533803047187889352572242208561746239068443541730259332747525950004280426377493428202051377100477822693835208606505477708305218544283335345060636079113491377472623437605603841655038624681732756431101231549412984412403831592831046118120298780406645795927188958524441601281101543515837352162975177890289375571614348697662334047170299074743415249389557681892998963195535330105144363381649986133600748476071106867962897172908447729565519128226033345107689153167668342496108808468438099890319074056607323953158408269184944422103659172057293969071856349142154220998961326341133024756854919768967340883006735761915417640289169446730268529835332268363438584046078351385960804705557827182641496303535578361395333133660073049762663062009733557380512417469028379364054442855816989454994820418839528016324431164229492955246852376892494119848359390496705899569767767683947361686433748507535420946115385682070513474499953380025990062705888597984921580979265011647339542170947207750463964028719218013216630224215898004205518884559669360557598518805126282774163447895947748894292092077260866237521977160899728627965543861113753524339008691405144853658320704645616809044344886635280203206336475462370631050141082363750463391612870204417638590285088547014703369472988154080535502743096587542107428835201007328259891324730123144408141193190310667351758437806679077467796388957518062604143651877698100594053687237590967108460207221970491229507698628517684936365512312590370925418555893267276260602101311574703518431064697765811190787941850360295118414648934559281019352727520280470848896672864337895429536132465256779843959546719889243087948863643600014676241796515901349512336058222319858740265584550484004461167322982296548196406951782765883957313093540254444058279775453029566498723581299856293018703266047745161033650859078722098977982100861179542035086129301594588047773569968466551037024601041288472741511841011523689195023966134162094989926364888927389962738852556484720249521550990836173792833501291721275638069849806645765232996688356434935905939530155900079346602038480781154713509474575597016494158812031285348478481523468443467751963844839229071407807228902944927282197615292166366302698915469861320978952917233602459213606103186524312332063418845254183520610818751865283421483782760334152823569938866318882293243362623795742119469216356696636070513035273135615368566416203039223920764498616429025205037277808837077978169634156515548110225507136901019234186065944863260423024400015034483878162655623370232268781061998770649149144962148829184401420925892108810272185920809029339408271591993496453623655177521608994059495812208987505776625113711797917581984394826849984185114117487537069811225974465188978615502462972587963960771891087968159505513301168822243440296131581962642653386051381214249974084793044152723006271017287986312375536678484409250929986073930207671834505006046155537626336506702320800201444403461417272541018095032798595261542031641756212171811112435738678405592078047515698756118981383136394015805481008859112967923447498713436457815644660297839111275001246310389489567215578078313448442066888116195126502009331962581179926395066975671326415758193240100784436852246282294089337698079454866130217691684907464160253425586035163504332988014296853241135305233774163434307024712248887861014689449019607898738060576060074659026968775755496785181828155041506885801811888699125219413745114057363031215196188621630108712352200742893300553035183217175363703872162845036990890778328325805531543895719987739974038588411914459675231445926801643523425303751266622080350567729739295311469044209330977141802163001410383319802364534398680467273554548382642811008963625729581203673643629139554891873019480096056296368810622872118112008188746295601970361281793011789271542940665466286355102616993918826327631015099816475538472793089386937080669595657731364585105127127196263101631674163596876014068092776411365544582466929901137290826993825731783787902836784221036066483170455810429894224221535621954729212826516791314685075685941963854932102308995492878496995823270891454690765708583883733846888648933063076736245702902221302914640480727057824598977605102847898724871858392620971143791291132489524812015062248224259622679180188076962552625560802152920823500182951490387676988894515058314314833372911127188981420659783127780844493309836546229728160605059745279452349509443218077186917971304480667136322946213984364814338102726131088541124285764494524336188779125472661673096624660108662268010654622332431638321098787930766307988828884524134743505556576329973717921400214904323892430085277493831410877686030665163471149676755723148385281447436612930983318040915225081141563076311367720709106574757875195875238654051990291712436322786529189375307643663583961889773565232179382286390966056338269333018276017104443054991787954796669264403136626067359356444456226205459137392215808047558717948564734285288204300897262292624752270387270073759416323816417244600392718759557100281779709638822251813196166899596550537929675955304072917016874049202669927047472633605378472244867933731992006150937286370692310270929314430775379225611128215514462855146961117781480016329303980717837277343879587178454366645099744242892707907444784382232678515914587861433683289242708285903012502653126261699764539626827627166673904999365418698903681237890068893910774097276908321601116734449230000888003888561354178163016607490057680679928293944841163975628959260243803872533120218408859782626204546750229948670227314567729465042244774522803318896614392815094580711637002406888875439871507649743430113243986647388065466690764528796784312770081559108484663235356885310039292147950219339517371932348384109259055439297922535217612687293400646284608280158103708563840315811516994390942395108875132848596710100091841571826918196170643087174916702517691649321215420871386289687957521978862113965357445403312827212293187159564475036036184845998779886477322721582400953711921360017874311746967110191150518628742969363181552049171866918927439860536328128055130099038628691821408160920709842058478124935998016113325582265342166886357769321411092415221232048750005103884856078587528694778702216837110463418762525657465349095086352900099556992310674524669333907903310055160455304874828160846098822299919085639159306710354582261278075416554230451930225407429966319942285080659630280755873027728077455231201604147096931287663442565067144077909534331689213669431286222808054012670411081853422351755317452890090910463900507477758621464598207867001311080534297130240870337197690566017231035070252168854075062211367577967663128374521890265752996735821083254688726859906195046307199203386647537532391547231790625434754676065330342572553185102424207720452277969470637366756916724231943468676723740513406845187006101660829043988797325365638377329745823317578666144907862436357695961159804558981263031541374378350292381769364349125364966071617568041452776199861214932136502853369066820137842442937506730047390083340265151910795514889621684414564191855162215439549352483702883786955438086243752290037551156843784087855342114820428979203586628072048950043566919168545088701518190685625317927801382224099637917729470126945204533396089250968076626130240973301875672304466957382598485532119391391256366198373535465441876536313889922893731289132532139376422613514512946458917294442568663382877939504140817758026164599687883991851366254968907833151939318357677542868209206390915897269836592482440328485169183420629801306508345451060557181713721829096971791470013539828049530985353477463540771878902436473983637273840110951391337278132273557052770658935601430858555886560897940634100226467327184577722430023605536234634271647621636897271395307092648295878098283679877649072835460197661638105838614779159621378281893523743807367425784333873958621448626729639845896231971977763643551573860077813081545304580415407371124579562128784617410313448534280035149979143960819842025635003603288415680040754810434116517445354792906475160098365371861197441208687697454609410087194034626745496805045182244289268402599920089710227587879110776613906597322006597676030311430164207844472775551651631826370845058211511153749014630167508088533456733082354066760747650286207599100073626867711101462933990244834738283650324696313944388374418662462792469006135128994810941754531138193151038332404820958490319896596397105540456230050246349210208732799823675330852142444695286378420812268621061930740704218777982149644772584875344425959350776258415708324972862868187425784292723665566695251929794309768498074097714016505933811698010056834386241659598412164807308183348944568876896699388081096952673242786580632930956896301312546511700669201955570945471721565813459715183172470874274413014307856268682117629163105418401729770950350189296495013635881934388020802520175122156089701416543048491287948541023056737171325203629096205224003854248741351292801999358084717702942825768959681916222459426475073123411798436925168117499460989077020854414375528368631310116157117976399849452811442820693441303278710281703604167867287222133022994996977117776546639819231292368449553540039802705755917687288284777025159625603027643198466410130531189389615876481724839302834780571756345064196716732393491748040741225198212128123747391809842427817932285999790184129752936161128361151860752143163532143069065423031378169046253446424360734429554581992270107938218197286940479935619042564446229085266791504183610463291106249114404401157129237233954501279073949575578045099845223574855631457133173205994279648147647105297609045717229437498966089603331474128446615001866485104599055863873670331922687003866727886952915056020149146754951052053760307914621117441096588628355831310465378284190948530484279738806715214318984351497311532476173966553401414808746729147160934103816676532467195747806925450437938690808890835391283989315710104586153757902913044516837390205878444362932355162759417845185074609676695540510114679536067412986784378291693472444911946688194098957092208506056132822903466250930895757528893942595511699378840552398312593775560249766072698793685342126142027772600085990079852739486029285976605445918585817624552836445862240609347996653741627559270640373235343357549007349099711920891930374398943687799016770075919490826520409510207476260113241273671567226723690430287608758255313661286391311083114571597631162602835814600838949580594203832092422675137398065899769651691733322608297010676423952135625408327399161803574095189418278469072558259856195558534559726643086405202424819346790216116853437737272850988918615150423568968613084837374672644506954724828660922826461351509756396669137354970057839070351191331704706346661747037367980883205927402501335405328171561564304083984117234185701695717238831844715994868077940231394619210007510685906408917764324027218609860995806193382790904980784606762086456791047822260101504791796664050385786454579732523548720590257262196088761744027058647106327762051660905330073609486683207096031090494251356892948376512212473952687145633722102259337570102549734075928351285523692872447571161579450028587039407284882108999358798618642919669280291784474742188074049027525092566030242041527100080535203874120795737849382050783406404593749005189494368003679284296368724512795012449820230824468959130341362207167002530311751022770778078679669709888683552957401308347260165640176429888158133918557119356268576396093650113643993108458337366914715391465353218894483323050949030765494802706844602191203821776435781621611948242689108726792129088960979229058264543835239973928404350217431561262169592154783729722495691387429313128450813356381004223097743593423081207627717578838206772059807075045957601889357180190998534654054713844430672719991386791682455491738221305540464968991526206868244928536839999266525351686458661255872732834757438838112691754567977918393998195618104654904161106259136638946951001464594424089340960596413722516769132764051970883594822836966019774864269305986816229635905397633347563360891348777710812920864530287732757854905427362826267560490358704538323434174179772972713979764669094717463874062638209945920354304458087201946702287950038294393683984930362159275916491649042344200206319809372456260530622652046561211102483388153472096176087164502174317261540405678314240480273420327365430704307913608446227112162020153491119648729523547413543081581091081932405515090892622527193416223692144780659358183316037195897548424177207370784847839136736940381496790578357542539858369877933744653638579673100596282751429086420097057998212502422771896517775543889220551511041508396088662378279185135825095882530199167872313003813660733099276972484915853962109324452955202964537348261400396772023331141523619244838293245188946741896886144444007181509061128002778759954252832147490811104295263949297368297923617872723825623351782399405105430296931597944066308380525071681562904404462704845088189405345546915689090333968335634425274062822220086716442665689104212577736766590211890697934492395504983689360278565456984756391704506730937380758386379058661593500539147713736829540036104452528817670440689441285391543356107770155711558215628029499487414966702749463217379917359111731177222241438815565040714301676064011318682282529873505901372535201111854375769903371749273996516899765669391000214479677032232870505437918148429517230069861455624597698561690478699117801737128477103542200785828991062301135152101700833320884923170659760138232122721023071597997657761947116870221425139074632023845110311642367878493829003653855946708482097423281629270307452162934745136079011401844757949331822533229963993655674779364631916840787984461085287111503735284763627154227096586253275478723455681990844011081602324690077955724192766942289934079408156270745898132896742261295776908891739825212406131963319580467266792880481017481364885921806636209163924682590937832266917072843180269554010544557109345191720151989662056422372659384252267737488789500821951123656320070626913322026144308561413966210639942291643170889420119342746009959560086475151587217183412174639314386328234320356687040625652486745469411966910168597999215216929197982488251270020292212821992686834467662131380871754962236620903410712928843319828288142619867682251791877409652657254019039860804185401961873076393861475739258873527485094962712486937799420931900001771773339246123234281903698738910241063790616549359230813125679582550793302484516490989602272184634888720065717093855653225967664895829434388855317975748435220210138826181453632946602868142513290302532249844803386280435778189441538210830715015456935173458551483613170152420645630302055645455822351253238710749380674956455739906754291089448724530125975546457546415765589293348447655755476740657892512808985404050957446892777515841259548305189390744895475896765810817181202998879609477085512451135624935818127811152687004526455947848162197935011435629529828834638031778805156842988008843418864769395753515838772306330245311213219421248011950813680159839863138226636779396309936349636383180092945710558247440799085238994466288185333501684682400581569359557714526863950688370356823236280115878380697242553666713580503008220976311235192198001792223142295433638014059814031125808340896453073793458038308694950298550235535083857732582723060428556754015721344291172665141204475623738253010054390058050505138040461386912189754023089876359110060457763882037217406222590765464677602275527378675336451023426455477352552522661099658723818306960178340544080917522245518703124436419412592941254931352490749989065251702713604430452439263443157939083985312117860969567077559825965670422155447941496404619596483720753053335507898237285141054743405096984926314034176625709674880610832211073250129184110573806553433640512485802245831440491659383695568554692880190745784467488031684499524252405687467768956270588307393095603193824151033694670581102594859720688958215794299733910745531671182235840986444825092325996390356668541783011275941747981324919438939052043414848641322532159613152651079914651527830332528280842230320629012429857947136715655231080865552893601166917806725936517742079409958908806958793719341689779275848220948747772908457446713171723233099113297325580640886691000529733229798017709781512302269895919396824851999426723697013083742201296688255222627703354076274998379646354319063406139632218428953839130457861417238790311318360576287256503354148938601342095532990330588376173928833411990536276774736028250718207865466824495165845942118062639533034671529257216746709380928490347444634466672565322249833478049399712747367682283014516796413191118163258535852419047084090839815135874051647376277242650622056388094684443502841440449897245524792353768835793336181095841892347455327658738275791414637624552403167993139733661860827849057432570009651921323990422356310986380352644614928979308250855766889145502624901281910345535255789307833212827186552229013949095461037102738106130799750766465779895142781509968904166833744688220395997911665327358735558701529383198136599984032917157007931868155136170931283900801634917409312891636182058599702988855093637539004598640167358982790849196929869865500794773325276975476897338070137722697217159334759043176678955734156876660380249970851912553237184696407250636059694693311076368251979712695340998062070210605793892452398189436997237459458306573956756919297141650908135410758460569761299602262350601365293609322900639654912074945265867250254552852344595117126473725456561936377914498815630150638219599300059918768041067978745043948922682795939375406609548752697068408752780882705683532167234663833229118863995403507586957477338257609102921735853379440104858358140950865253719217349853972161030131262958261611504917124025001583625276236735259774801820011529926328888316716972924192178416138263893120486948046813852358276422887082141889417069660028201376944699285972435772041472270137479403647712811806263825770192740447334688404580552037374108594606170382051618040348549744122195402432896669372693525262652359984131974567069741115997409412853451607611372588818361263823491121430237978340286233912839572406404906593841111203529863535717407075565155030670228995710267323803719038922258618190218142735075924453406866546644590656825888877618950783211966775673049081032700337705886543570609090794333213402612250291096104876648464932284225696184785405241014670077904812863876250796312963217904947495963403651464436084215563757848283676323289777645056926635128860944653638961699591827139416263785327130360116020802538536897542373967452180379252072721506177020568625181907855118903921952086404869023239771572272454600634364428858018456541743240102681753774505519906387957031111216255275327448514541142090830799452625556955033333725309005172345366922425260450825965792953748972550691423513797060142380242406388376603245677090958136481178297134876115857654341119528405856783338780090644077359494738943663993412297051571094024876754858862151075228744141964415349670349622540780494182949882648037825972767300037219837058923851204838202023092029775813895212188353901903323664857173550648882274530386123886626930020525151810754626685584059405231352933828977838654084900688377634136169897135860540449429262418471106894503817296114097164772710178296829838910533542494051414468564270074862044666957744101873508744005219457060856817594322743986228457230123798660489682923044125917270225304431256604565976483923570247909876848757657793558199428319565499388210243253881413978886815295387321726777939366085043697582751379483141755079602408610676831781726591132025028559222559497118363319535671552418412801823848284996088302927437797210645876976172380890368889342090076124282924371197621206585204567488428474954273706200597076729068167939750973160964463255209610873700142966732442784852091805542063316459032579603455544773117508138173176362614038365125443434427939183591323526373646304412294580464692040449483020919007758408312385360066836616091502720215246368087256175202733428175764426560768843537547424069421014355664289755045414403668794115754982612203002397831888788512443799132798903608237374308709817136537665914708737151925967435539032730213788904566614896878102075349683583361656702806304005635339751053451225940815317860803813465207424077573173793215425695975793160107209093901805194800572131641939348441587113290508706919823220074927427383255199758682659721580324607667200593109825947464197821427805136665535770028926717636038972079147121915218179986159457188177774554899042637943118055312681298333789188388476500062263979706489142591413364939838423299677077894337505238299580464235696227190329521681334995167921199830469454550662949237822787408265529116836560767068987073662974563544400727421260698372492798383405652799815317710484880889407946923875403951927820362430645120412196627145450048019090989432951676132318210692070026935491501581832511848242848518770237320945269205704315459882369813782000281414727998702964927679758535325875763140986468512027785428996868560326790080389247155841844435046005604467638069833947092565026062432831796589492400059252319805759590060501225369744926944358845259482554204535245245139138049300212794828301412653515157717332090254876117820641441205443876924686211354958068525589375019657054555040900101007350718590457917938582964377846118126131418005151311548732300097493520457783781371230582133580459498153687683250394595436586720299222847079494171037776305197291253937305441300656699272505074100621875150949251950668949505674728600141312606352180131259898040896831844161300956845262512259959859423799574572307997498159792499508809291406712166971215529605713393581009723991587702612268530565451391428622688962432811937491250103697067618253126574960733154098699148007492468616755613180970187940816113123424429354194120092629031346838183618766649701381661781698000738822002753300376035479999860236646668670431220147960641798778074638688574145688351434446119977380695953047152371505296994149339150820367120904690868838537173287678132035547989340725853692005497488608917333695197611210921198415966100681762042943520522077069824340838879384668553267073354388388854573926939912893639048791578164013806438480359731603016624552397937768608693120231706538758066676311136975517905664379148681491750142623677491509674940200739623552090156522080444796254401405354537661660894307518584009853438451925020271048385671982971165099109839754243157234134455149269049667319769221393011177836057472274708936012269623067587213743428764183241917235295751961865839480741982093123991909275220383384345903265170292263324317347101580305096989308087040912081534728095527658132737572569368857967986192581191186520166461546873517726487963234859102163556840775257295739474644497859860019234776228012017804286506069706864238074524017124213818698053434152361975258207459672353688016766909253852260076934285462014290917059444050808228300016726844879764057131413777000629105043098433768014321419745842027144533445349388902656784328106425418700338520888490144597837826785903479805065671216849340210921425248058103147411723720384993299717763122006579809254518305508687681165639418551135634998740984722698319852575903494603099423169820743803751817895815894036348007816593294980522625157527338248373654693101917542599717325573970010580221793619576682279553568544875413926947245045437189918465197211869304790244656835223478303778448424520391519427227181901643559301154366945066033233055522060904419611296976655699333021554485458480030935086201119597428908984222566476006190144717610497900593240756085220634304454394350626165740194972894804517832382162120331859639727387637312237920113347238315916747834262229335609716271527637905102673525119080169861871815239086983850340794617808677435602073396779123735832370738049590772708590706633438239796898831947119493356262008163066740097205746103578041005917167574424226343798462550307897145116061545857829909777422134128610269083701341920097992682540878872844205192076860007258770605639051906272472309934599472174687439829873286740039840059065632578132989751797438195008090256029684036019128377391600547882405376039784187679928432320258716741170682750467213252968476205650586210499520585702019255747429753939506192455010311564440895720803809852363182513050740195536971133423732407877146372182674962298297659364801432277307651842054204412163373513922695339993190418991863135784424660946650314204231485719663696696440778239788219084658632566975526019317145958997885512787625762610085115922499265736684192871224973423442522190123688336593061906291287447330822499633473576186180800259529216388784136151522250189054427565161903383735790074955402938890472436842232939641584777390452381552762682348758763984573557806575471083450185911958275986431067297736616224100259773134064017669052230589558250401241403061100598852553517048899054120271033713393133360999137912451729448819394978142295883697612699239711291358484622447035649074380402006243022990283419559332415341497288102270783770724475880849023294373323730322220102380769703658529939288827247658741154881360873717669413246634511187039626079370560298996181649570491565700751404956751356303331808880028071139613166551141108896580671568399246469788769336435594970492964626821570077350001063211813223799962586074753362528823324481747960813999245254605037727459872262934026877764651467758295026028015544434068093292460931545780522684479635205610142873670098515020988325231593507816868320459215579966919058959434472634017561969049614464788250478460682382263506307129100222692908768745441148226781694666978581277191893595484193665754280382775682886939821441475911364088144557310482650212690513640016469480278477446941529274986778116033636371845746189566616503308677004859202838100627684879316486703506300840884851864500652543484769344903458485274470027673326324129294588446708434302199788570850785957779018541205219700901501938800031597570311803747569886757637349685257317170966396162307787396526637365410363876385840031471646952186687018219105086550356505161930070062280374462723155848525103025156236694928154010068023087305327856658988352660700518110173220344681924417892219700131263292133716952103515875177253925678611693917723007360236831558305487748822460163015666916199217628470408922978067813815417141347223683701672384916453245361757517374823285092790000049986997360354058776563363511171916320086421174430060922998272498530776638517237986123258795001490182041675423134799945419808799518614816685474913648277155885650826897534029769154711261580718290240726019287004146206556382538080070016687482040786607186941109948563955894372837979295962825277371691126258588867689343666358052435420921123213808337102343899444860655050321622000286782760501452917074956814803871443125218320676081341125203600548596487441506413285902210111976439997748075806735996361648963733287961594503301004902092968467590835919969793371101447324064528785059086158449183642347186549381944188202288898150165758834873337948717825567753304062481218104099795087930259151733756335989603374213788364355649887068201973503794914230612612672443017432226066873959235127190173053184974266673688123280728016575417790379070544823937526390951270584480273946065541863584618775696290387287517059762768677865409855728766775211811102958339332965763242263983617694706195050045867331089823039770207168591934268731781040698324346707621571391916140406296382953102400248158714642478623874365492589435859928487584544301123829761283191169316670256327223215521665346466064837341197319148619813702589264983828796320774841523923588249704435089242536349269560222407301542349675195155415810904479385288957777824093079753204265922542443350494101686395395848059364623856951212568748743516930949233628718816874206258017600024424455926371463151442742865574915254088402716901481311964460530094746000537182345552234744634748393629247052010871621033160299238507745382159330830155398981864016832000421108420719940350916735305228407365308929156402723678744979239075656380785324650836049416926613826875901030869966185094446226106183512939810186711162236124462159921493980834992950953538016418022025466273447587326948494156129555075173717985728968955109646253441747703408746655980125539605931224955241795811537077288594303593123814747626807401796446950524060328752814748374734997080478813006818338194708995514376957634811219660405342259373073573312725438281936777939968251970369092026496999864131800825602519110999793214910938867641418648562098653254312328880851461604704450676244902764293812743215148150907290579043496942061809260585937755336822731901051349327303713304740931138682629850174542945020775715186698405083344376905229364175703037536265451096307223129431468411735770921940081422334698728617187720406231981040637861937218501523933799019809869111133515021648878581146483303943168522870165208584503441692865508760449203179355669692915093123245742489595904356074792222672504459576305492651680666119503986709977716047807691113137603319027232741528501843907051206982497682510872023999345569873559882484134526526121118627215760924342875266170940951523562200352917459566676579969889956965530963527401216511506650724715692747144977635420941856419803225090602178248958382637836822433241029433705143752716509727512283169600174481463141221125471154937030655773652900341325238906856504113580981197912741251070352542631140553221437651216503825703369817841405278245748088743657102444726363235481754135161509361920947145515789578630201561012275501077233725261446422984141926444842765080538111536177624598822738975276887831180105078211852874545254966941014572722701825862681444939896536212765546613524732807266029314352369155971728414740945860874279705595215663663049110677210459357299061798124237956500346424676540035731196208999440720146526368171768690610891549344656191200121386211726825459765937897438305660405171458086188587006911675000359587571720760978169487301985324225089932516831095825865613382111115075559481414506579486764443109074281402081427356683733866263515363452302221830216806119266589871152229779244071001419034799438310632408662081892250506523888522121689868446277255289211652347436968561973195150814345968023028948888872243036028685173357062092095310790596420586344017447423793135044903383559011416766002930941595675930306438033446954731969939058736960296583152828595975414820812717379991759048804968494862324314820828035279217511907767965303046485660927692868090681751082980184561896414251285000698352886607470454263346704009683108031145967168560415992124196930519824295617903972987224411459301580211784604673937074975507412153869767518246373480375624315019450767859145482919934960885805898060467675098222587269935022059737008556930501305519043796949942125148914578236804609205333208771041292736458747598819502772170273219434070774642567239089829458011786854106680970706208677092716768033858900542728933021713072988315000030118490133134370130733923278731035129863551969611593564355080285423394844580928874506015729356158739460179321933568053995499543225329441455237997831301241820324784189534781950025822491375299226600359267299055495990840981590931348796953541395382495070268337264525342257044101894350105615592182183302290863531444662655606133425240711901367430930926137754344368367881621932201566355438160396976001656428593553367280028430523341099066193171194247707603980681643326677326901359241066216834245237130014283909272816472170488948339222298340451864461682681888959736617797014358739260497838602035950760857649553194492035152759643575985051821591100001401103600820975743529821035423938744657460603588682355785953052755679890935606340605972328397151483352789184778888647450210555377489764774178250749572054772926606130551185917372835976383032837656807664272045758689343769410028722978237343737419469308564527757825516557084071577316286023017420019105411739935689308468831897170878820018959018227755102378658639833785004965054325075862995864173900396584131328473719247652084316778076246568842162984862792779748593433207749250804497808466863757782850484061431490729347518524394439998908965989393115415108448356085435514429054458982334212983003271622932142399871493871054827154829937925820883645265837682303262572240182599093690611669699155085394812564649116076810137895483798663465521756928696348329631982703933150580746332500718920101985210311206240944720074012040315573826460775298560739714801118749476513223484905758357263494510351919460533744311354505244134509749022347279384644012146205991645767550204069622317522381523117524965685637171052305050270153419207618269237286813750945402669921490945394029200860788584951435530931455524079113455603405759333261824247019786398940360167324235376180781873659118218652007100152275301855111013472575626364882882016092391130246372929084108460398312998231202843332841843807229236059511033172532249956860443125046909027652924962751973291510242717790117473172558249546921138095525721446887834503881650915779870005692081643344217845920986884795826257318207850729479054031996104970543433407357929517662558329507877651552144342530146446088585497343733882889106098317093250396209841505339901283770004188092670876701392396740527209851629215073444674465716864234372399246497900288096971679060437764225758781233931840468852750139991619443459214265857730969551925361080644712116046793825587648135319175498878043837609951497405296572020161508041050173952353021387011006155614599318844566707729153438543253561683888513537188638312368584783261533147068630634152473917726126329769873679601431403089586203643073798020581081517733741241556838726546537534284507027997924357565216434056488985464969638073756392315064951697863155003375661350656929355312693613347089394757750944365311884400157738238139294191831214969666923139736393144944994214155490646796786797966267776390316693735512650540038453862803483393402360772511222842499697798143882269932897032489527844308166930712558393695195453718346546058962562607660511017869535769665033130923521150196725709907740239453541138351198986723107747241458800248944746418726228507283907922969231331646128270472491472717197970510895149816183768202336049789214330714628948666658041263957835830720910122681448076938320438481412647555130341202145211991808689777494125214677417286171580721842401914602887827747989494263296326364755768144026522875556883890606510747493709048886471493087469062419410932359527488161148680639986716309003512230213396368508842121272440105714515578548472527007845681909738485961351710522657908298055812805010403812954545702261040300434369972212308277300644171680711541916482113275373785564403490093364537111193516997114260250369231332703368915218187697622854034503803219616688462531586853665704020020789162077650643866004412650181799520248477169715131500813595965461223172100006823997912006659398720767518776765446539955313276435190582230407953220472170291448446599417896211550505715495401584316734761607987576449937418732654010337097764388554106866874187777041330713804610985219224238346543421425182593864306265613010915208600618268436953428219363275802469469697060358011540011528404636898727165241055505525964392929552349107341500465518507264579071921511337535594084001437445405230562925762359442311762801724580156104110297216601729453148341687068052741334227121802862744173270077508992665989311160588736870764882783481313942740881441965227522991065968175612629842149184460571648868735097877461717047349181020874050916737755021241606736075463204173730306865787971371648260463092457510373195232399030607888418112471048183112620089332441137745861175357774232392093798652059690067155546227301412646263481611444775478380204453877959909806878837442701356225919568061757908261600320041034963630016148043676484750264661206387230893879676138903559553937796790705062679453676519015843713931089189678958223061313767688218654089892543284574959054252060466478221198482280459610621852854744974314018176692715703116556906358290821471193059049980882069877604230629498190716398887455956839691310364503816613677403556647128118475273267950081071858542080080750520100267964174289149215642041508342716235418711031510045480051487836422281931911691892004233095800488400335463342716978733845841754682310882157211911790438067818541186704193735026198737870217708580571507022169487523981667971192691392918707490946726303350262048125305218308904891750871480428065035173335357312773947901795566199540486119418790170451330092532302387629161000005201496538673904846744859721393554525145712378064149594684531635154544032051346644311369196537717107730416708247885718654036994565370152375129204373896253827400752686937401476334107266240421493097538621495084845629457185231764108959255186138485787640210494410449120535190612440641012299614332277547350110844079890433222516946823131668719338987714333955061880241338928965099461308528528480937492176641525146360354565768440006781958326386075823582007537336052804138388558125444930005600015964211090842871616039834564604382144691355153467155079741000238382853184127673913009529974645674134175998171239026347731996051888601908389569475161544510413622724358720877072456737079715877052078594420988792826819564061610478944204267279546041038494074655558566988592349943106034737706385342493093007764379682058750246339787412186748402746058110226638523450581000685639826308261880521729779618871768912664506870213202860420760914645126097972684878182934853900053154201422336028062980982643143364166674658854111365079415792400896574825808435861711809398516626604236917842363452623087906914375036290296758372050172290107296765977120031706429744162481429025295464341316864733874847122074676156914602281490835779743897586835418509482299923741044210097650661255425008069939362365980635918123340980913273590437345657881140295321747400811614349541569556917823957129981653511971163584131648794438280846073130763910698140502321152977877290752696099838476925852855039802740440637788988109135059985864790650568152729633088937660294009447751217188591066504245804530052262021925175023227498217027289526301715896795623306020988638763843133867428732692471499770719731941785960485346469487910723887715931676245132107158417927189490687815144108003632830275072477073054686720952091219260183604733423519807008753823017965038570467046249404883063345152354591162504502449964994117290494131420929465206924906559615166440452428263241693239531515323489130903172656664736116166799170639755364130933007876718517454334149807032968844994456313397886703519809716388207846671470229680474274231522033391677004053178398196515263461298825813250760717803252459645420130891979281463725821575628416202498353934647529553814786935328283980723274250771822894217345088040898182960008078121939689029783426534414745889277371307132337970689536883687737476254116407978957769947380223000674545294717834685073290718322720156467754071072369996699302252432080701305204846651970507479177470869271644273255753424039100596482315744771677401085475257102323819689892309804366528798485793906349402668580697606260657332901287939153163987332046389705863162800584757936803329513902504958457292157418810128310895306763550433285203199781860668375385956372301001592635562316330588348925711595275432703821160144038284392187094752202086020562724671146047049761650055097706774922080997940616267074260572308451174731611525286602694702471583042254600309715481059647007603443353083776168455562617588787397879064139346977471787443346193100786815179109341186311312703955821935440106802090213729955251907904953189723278956739040254023078308157442623733058767830069773838858510282971625133323623863331101532751463533552370424808153038443756410700044042700853727048542316000896875677788921695823096809608740517509341477265403808116830309520078169252675580659321939705730292340387982787016521382390089998281306335601556274842100726958761750208441292128553351159346647418075210419316039205042390765321402729157881892521827177856791461741106405369079873160114800116769385722577534106969226221224827944088729717471992544911072188300851939124811763218843989918203125206214818730263068481859773342654994890022158791672102661355262149384226874617313790548688550929918826824584750914261123490901980923315037781819951509743572400972894904996708813354274120157733139485484557893073597268527560558391372308132356602123253937620553508779192713318219814290204137050542425782541611369768860858809979940168468142104598901748967258926649596133237575874506607013335806384179144498660807244850681482165738795166522614299628340493292048373931588004396560716204106988757478271932746701244248352438614125061550768485695903862926167218861025126501039057014975415078504916582380753441077321580852040881708974416628755903842825003076551148109078781285462071048058143769407942149860205051192406860124924168915547143508080190737904837282940959712661374263757759314928177416980555207439863614951051361078514260859767644243138424649664099105299094711476728416747819756410306587887873376274691877165029411125605798660615939086064959194520059164250145548390796184589668872677603524473119066626462137553371242724374818900545454100088857789327655922620444457445789085276319575443432930562552782294075695790982786764092397652651950761696857964517084709599574844115131687233816873350195766443342556074413908048753226086889288759719369538146030421495102719580059279328720862957614082820957980574500014600070480778453074939783021335507229146555796082477191836418062995168950240963972215762755810746973818618242144669313751263340670660451227340335704250095704883825464388330833688065356566421103984763886199367556576613456727783624197910477236079492841819578429467948220962885026705421825599728210757501864653989310245813887516073319426278902743320215897448698249696129930247558426620963971332135617917312238048623924301562954882988791384904751475110097197771307699405654667627970101397935757311142951662197444684634782748523854474132536933693765853961646309926629843393639599601567354066539078194324997298584962913719727561324967505126251435191652555917523336823671882555439695765104576989959527505372463040581587066143460958596307032286983999485560159857414754432312887014642502650006594016634125930661265015854353664190315148403022319097646901901991282806899772927436797287491704355699265487538852016540537188446239192037856305318432625549084285791504125576477728354386532785873068972885104020411696158581083139912602473335441705793250239169387352851540860311833649650919453164609049637369344716928030543441707314561896127603266206434991410691952826615247136863650284659202344529058936536726444579965557229578443719247548527073721111644369403762755414291520816061573461560790753579549730941162141925953549001372963872780267016390511101287592613448193127918143425919222489245148097083660454811696944111828125483823153255404173686604846716840796732828738611419208764663800072513164905574950990202155377871480174674126931489379226510114362389504011746824975446168839909223515135574217685455711313595512138805499625840882342262582078515488654218327154491647147726521421966572623829858426121691451090032138105338888143821306895542521335478507546805871539023226910490263939163177550457989757694315947204404391776970047514619981770349324569254278262893530231599168423570436729651442642948836298163138006723315886669260545144185860628081334337784590586680380651709078644327578645560009607247399214221291716011684795759920511829743947269893089943864852072512187285122448413567573834130465798807802045760914357371369221542558650825040015685094139074764746934491524180404286693362243419204314103382553328497749432747891219322708932426364265267602984015157173480621707159164192695267920438279171401187562520896932264797670596566322682469406815439485493025478094156432200850363826358403417056599931256469530055862711524017284595694482966257389492199473963897722141572040121531674426525033881828257850997376540824121856244110902177107064414395587915457842923419821434441473159829004055572693059123480340841793996620868371763835907484062743704428539641885797423195374472455465581005048855392656764496996284828823124183134612128964762130574084136710159357024775059450383249231394413287781837327364393919782571017536005838446290808967190865610527800742901118462463156828761583914991902279002928836269895550001000640966538607791457839892364163890965765497134738957501989590358862794922848202418695705721943573046363691437807677925057257375610670149740872180652453373303290445112030457961984629456752468628088068946242363276560134498932232972019951920555054941879719053489394724535267211518771970449201257467805476952433219778948885781824496021127592103364026816736264060655825688454679957870308426302984016438576514709484625581716105957762256715723307985510353859929112991138480527106769444345522911795057994833422639521802335226395985418607226206563186321896689816846627054863783856615322488124988668656202770947141357993152810152565332282535881264806218860302191643908637274783279754977764209970385684823190468873302871141069978280750861878497822939920003168378980010352541717646331519438851650770257735238597764105353101759514261553631412495053883535371771807746975411274700430301671863418375477496319282555682920988135595621103552717823904427473237925908931565516100620088515634392262159766805510062696709342053631660084396954851905971218393846541554950119150962373487885515080252727356820915184454751188907412958868530602027038987204563761086510846105520227705745142925468187858656057655129635135513976236977462770815679715496034703370366748966444123397467321850927533170956294842440353364375413076016078022165961201621902139126859580775094251849817204807517855268321220092898088365149997426181760201010409923034072037128165119087553643781155238201505444201225550682622729003610152252980055347507227858432573519462660818380734250955873656242868674236215616353593434979578415620103314792063897791007436926919986984356543764216963716313652348773618685250305388275714212396314364623784370392989936687558589674478504576914891713896668868893520279203630760794901904529289339083974055631751437476433182244639611368038217819072191940777928005014488438762117167920027842871161834172995569817658082545233407496989621702788598221171210941401036982863423617993197415886760448750467432194607774974930486715051762931270454013140933541359522431059793603362545424671738044277379860420131887614083426601515638192614755065640282634451659376199011576182349875617901832062483158737070704931125672035410959473402257118483114413324356679703688014410431732050422505007155187533248684461909894194104176260893603645480634523847922650125625228292070044198625585617639891222829743380535189121045769792856371976409003382591316532550523345291080960495474356405330403753374584281136365423276789041683749401696270874702083733801611703384724039089789162858513277184544463260901395611539308812885711248987773735001348222921951264135793576007787385381215334728714497656339459192559544669584068768921439396407485097630902256154847190486197074444310327236088894674807908200801438882089583647354166736770452427604422749897632922891086968486554468493612366176602732143916365449166568952141084865485061074870008734242581349033437883392544698989045482397668240075597594870161212708004223843217554902381015535367614977982134850781120391212268449325965774474770205821741603042257628220243948556083695849923081487056258489273174709611015801087091072647070176181091447166220257999452969481510062108314385534214065946773926548797536323015141966775851133739949332124145637283234584495206979925261729125294411212161559577021276401697120057889257533934997348992002218975973473836040244861815910394855873307286729230290663618380218001950579747838824253909246555348391639226588463299861619259133989194721628174782540853377455590443632088650012895108993202612296261204514066012702491627230634325438525123249716860649255205429574533605612719657653412023077781636306403200592002302274268522720943409869668908112725161414670024619653219088131247263669002626583779999467834385279130158626271816472425929532138435948650485144392333584337811132766445039235792564012070061392081535347202182183969825753434614022208722892722218241682454472133775884276977902827084470192490036377794036860512921138564384681295039442954348685149495763627881835880125878206428532166772815280188951409588783545057783001732762525508272314356322480447110919572895685107958337103053866790973279715437388923486420993733517789040057780649732380138502412715287766220878801213469901974315424500081377514609666241942397588790709108775781512181018717675894506761549014829002536840237648979308585055325876642450760721213753719705764244261768621091578545424513808904851335999744955246793991859485796693485700255936967124338030867008451263464818978945982607243648452740025571458487446215158230818143062156924646336180487937506907498892233836643947412264775741715424984900832066718851453919367125529446399832968316600011694329336849828730659070496953691634533935274975713736830483325775368279251010598522437598798334893576359728595816619414112572517704177395988359478848682772225386881657004934624742778080478900399074326302479671868427893665105668875751804915989258786031108249603453357681768784006466912288757799270296764521968321225697193630396352348588997389814887755799846284530417907942095702394575428971869147873485657433551469497397083666246653791858949080306676702820596927066475642540972308392831319097773067289619111613175406002268502701588901789070528578541919331645806571535860772020793919018629310986590379310993994649253488517691520284709735863763706376592123872259380266475131349378838633245497706267100312977965033409776439951734689719760806794087375139625264571034579860127936557727285238859411071471175329824559496740170916138724384487497009620677236815673282883892783654644255026791867177423601976096058507147596538377931833858356724726774724931637046517907554204367916419558901771895273789077848721001570193778324840184312749800793778937955018450628174717406015392073471214697146719878724107099387784292251647588534913642114735809830789780364012179316112891210820469686320593253898784948990816751597242669799819113537880006662618573359510799815983522682526105417941693456754846306467781978950871913131072450036052953251590346534306406569232071684134529467959232515748191916274564335203910640870433829012425483858154342280041769643084856313649684252030246660929926251573355462224717328525307079737396458310150607568602103373449691037013344958129143231052433220348644448061990635119811996727608000182721586443829531746734211860930339443338931678743697023166892721389648836819815045301095010271644625046396080022002564360182858133350489902199196989567718926918266715254337174685383490676806865711855702465847906448540294023456994233496872938498016023174972711434285279456630898869515155723753130557733646175601389789293775111231582206160145049016234812319397299129388048602973965340542257366619837328792683265475208159661404368282950537630865863964427013141601602050947186816885396313378602242688543408868820388188570388906853269637375582895840312400446042669537595365896929622662233134219339470431648677334291792016237106132577045637921319277533969011986672097158436293243344132532937668288958578843819133457315179415090937821220401436208362332826630094645133279441797488827313728410396666629055204205689394491613915506453599986835995316883640989633693059701471577305048740587956643803708455320810720257603401242650488584815928226353402179535649992669689578551031838202362241334232269371484582543570940520096576879678119238606986236517437652073008248021979738049087334941749534915727380112522332652949895002799785880415769161587999981786869915785993638338012813093037852115422776122261222910907227096119414539701498544766959688948351512472880177188697929446438463353811499113664665929388690930167805274052945571770452319727033843056112811379279391469503218039774498171960782363658947197640078577918687478020045932966559709011661200011910091986481460571982055021676704644416218412919691947722310671664845908739168653733379508697723891691964359312834275219447559289315854849008601927129806167193349257564617682025147866735977640309208083529474951334309296917293893904341089625679488641226392438840961436928942920695358883758100219616178694187448500350884403468510933808481942184668469219661714774025133674303124366115809310603141029739645716555887152540648787978133716000756822307460234543258726749213137928261050925426564924200123723365125948342074684607571841477175101691424749868354967739299374416441143307076691201037624731231367287036356949659756408485332621730977135040752229654385585994906887968216960961345700862730434086349926339027868706386792114158911441599355393408691398696428496803158276777143380313051178996125952239392242378780300724238482296858534871067909312028667204837934751495155951776497068206716174527673552587007162241120054016618233439365169597508960974738015264545558437302168894593810680333691494356727882280169346740433064216091277475325175076741634454284773103067815800846544662926125652087991432399707128891918051951031316577026234701944671872832949269064483690015631491528602783152086262073089892894225089135537707876399609723865850804717018181520236600128109584517906189524296396130714894779061483681561536613298830697994743363240524568734925841035596112550751126932271892888432455342268094180776062511917911373680340724982859405950603383837038058165473655064900066093220507504908206380379965404639645711963405861162731468527840872907469977011842493183524793385413068254090467453623752836834177750844867195564915647376298159460033219264177135305523193345541448829411644387346533324698690401477790545408269117288339983993394033163603387298356303250942643152765441029385017405430802137631207677305728306579873338527631540699039945543396589259960743053599071524666234464946353438891587168091783965435626175659902318599226765551261414812439298222999582605592343053456162488078468125199432925211668287451194332781008666803391038941470876343538855239563409698334574643791727971129466075595239222135443609867978615779480933783315331001760912688367132444950235418353962715075762374639558437597823446187506067346041300896575544139786001503042528357929506877728316660434760224236492157142969034271766110316981256841029754920006235739861765544186145206369809085047997410090926585821798859537774680887730790231888936001741216557361945495709172022133989042129145641257278752647005227006825395006986445753318678590036033037279315603499320950922649114564409761109728643109159429202815953195082350954660962180531944152121464889629395219375070485466644115013000872788075720835777426747854702047488044082087306464583558827500715111464476982705087426304533372261636158360087857902145561753450190351523777305654004673966896906337329828629704560013472865775026201471533153721516189354901871493980701900501611234372718857742504162865102659963980243198853957837012610373434578185665191840336567383532812711651114395308579670203943802265949475005600122361727376248636252350626381545517913203675858251784319548764183379589592230086624913444689119346880038953511558535327496353432412077936353747286401975671264939916661817843731166112842410750291161176019060413265641979824652160643850372320054378643428013535894368237233445674102173157642557225120004833293283695754243210765712027076169310333263916530801251053319012163662346961814801830644777410769981728518952429742744439074214372154780894233623381867043352269688798649821788252993144043696828707884397362435405502350412594919362912145156619791437185402862894722873171164717622927993473718544399131620755226793201918327557860257497023659755545676772908590290301285292787350194106900518445117642625748351173919437405766048761619012513890208287024921681223530306296727125637240637508032516037691616637579088038983302624653964392041063954862939055575024957243352075041961205682463330027106382806034309232096201955644290798706791674830511730393430163937462702843721644932946556744684765320597531023904118637690307840387570165839647068794141293979054978905912239841818784274448919184090767541800712807206858802477357634417556777648227088260812829220745395982206757777340031570066528849931627671217111109143075566129796232102570316486025361567555302763037953495440983166470452680926500990621515681764605278939887590713805383043973993082672211021627533259683594251411347160556540332948308687330136213299998129197674694845023638177599166843743403579813924259946962484525904244895767215422002112624457452921216700930668153040523082958584451481847242921082726231104562972390480916483457785276304620513707301899185331639880237822817926125522908081525104740487126388043040469428996433711188531709568090157440643288239885604870585767749998842131885951973007421250972114039286524407884930275846926030126272031816219549245461900826275651052871612418573493480962696449368643040693241548730812324346157733347029831139691754318794048729406683933692397302959092251437112757062214492156169854150410785959425594917172329348479533601574894789686812636044988158447584056205752453021816124355896256114921267718976872490746109069170686884369322052268388187463450890567998311842545253349056420700607476946882473800991741031114388001451307013077649001469794554896819346508459694644404801748793783600800544120850355751063561996797023573844661388077480293157792962601394518465605806490132476873686040554209269803980240491324000224026666694743452913754691647751128834170336466593318080844937168838985698563254493053299633139945752217880586918634803167150293812429985216920783208098567352231819909390710159641254151628990640672272879858820675061240805068452161452483289777541041038914078957897921390372601803185159133640592761999128363263241599618063049528716171826943512999937823321387281859509880918239886979191650353592729523392621829050260756934670255312704982061726445880294228800445737517000713808324217088467871052727578697564183721366361651712512739780359953453051396198719502922126484700685809493785310842669277262432898410796971143761800823219625208346151415062664292592256058872026972622837089768563997085587447855650390615288074578957704926890283481401513891867699988808793720108466250088968978192786427110833640349221819752806232300078283411804176907604384969714457804098336539745103684850120384051828450401773584463855007195796729328268996812386499826969270237533324466504919945552383348233813964135475762507646037512434826825279486154083464838536863607069060645381794797881193698560032387005416051460629044504975146800631020509305499542211155028559386894203130845875440518054155382639773281729505085672237790131154108893059916451391431494339500970121565342906996750162601046287384658676480900784769181095361460473859083306059093042141686077416467371334696037617560859474554571468729385852992589453319493317298276024675586501699666088181301008263277880977735932166840751460792591910290509495629831094786187273939490964356525833883347037208042999586950001838775786236498283652255162690359112333534850373114240520428187923957757042558198834973988486137588641534276392661435075111962277774609864300007535797288336866017053865227322100160525680248519656420127896450123931569651046614004397580840576722399972613762162563609717094181817870064166261345706880012323735196530092738240511375321132979660717572417538189531389745757861402471174777978020334242643076285186274583610769230973478832682203603006252048357483045752625029892099047301838656021661560367652131769590877732560299259663764407706754782686342986070607920378490961823318525001954397168968905074639303519258193180717062151400029969230590998420751034266514277732643752640696664926137617014670398545456075056249574228618584109839929461628643271577052675449606457615287318955315392958575088905029795957761868519600771520893741562408545214718699161776782300209512062960241608619688851022463502946526433982237718764291520185929504883103710711097665366434553210426350389907839772611177869411347053081421740673203758198228727500956140421659882876025750066049254947407285356985975560828625365904860769203102545833540423723468917467745658655240982629079579159191201867193411110352856614785799913176390517019251498249828108462365444295712636916760557307122009251684110051569222513513385237477383578025144083373804218034551556464674751432611911116068752750924885426058347355088084598827049801631915465194210885924782978780974406385720476821626087757062656481637475882714543322421713708047566337174332769420737963016312293077447624248344036123780608640060037058985506829643772471462488703111613536282988079196841073287058483586582754932780129655146733339912936096673448899046408991142721703940956407785243496628573975626346028035880990596063887808686317572022589589801486887230485092329247214034319974947028679988113967250887184101703990224670307530023335477959902709888012818472220096974358390135522208243224516678197304563835370571063493391827777145853978604093714857251945971457174296503837476023880667879543512365589867607974805013859888338656192725850248386186928899527073107179414270764632787040453273616472452937629600341205470668686554606139428805257013066769518806173993875691147389239294140468390388058952195469075092745755722244062772626037173639455792892253268053006891510632661952727131806122048758344857621816398646175938559229041024010597657948460644206731797151056368714257022600381780882758588612844464943651973562478754028066326641415859983648666111027029200849586663945769220400700564937714344449914072057679389690143121743242274162444149290947596710941030120766076191662963857222248401960648541353298886986985385749286350630757362100471308447888875182161230134948121403296149603871587466676221446513628078285916219563032548638656555883827135449988180095125361141570975631930633847320487470224005472064460093645977630500417244028393398410715335825521376552944945577953832380625049285041241334464155288887132870730093550059959990002230524873230518620549188478249003637470822361531006133298669909852323103892631156026090602943196651678789007496571249274426471248514597937515726811559245308519605799316653397273624055588538049705980680982950051049147781238319741708415038318527736162316066045530688815588206524026338002813097866850870985003066159601891512356612668273783018621502593613012196595595028835466412395108957681791865939234224377778888053018208101153648657581373077827068742704200477429022309641124407137609549260729479568187685156351615846119249800785550105669927092741912608787354693925015722201594727786716878496937409507743120561607498543799705470018084473177774004296015542849792446205006745716925242192443326310067138433566210626787578226797422885711533416862546827326162503175036153821785576319801379851414670857616711389804654957809441890385507505591118786680291296376844860037698092557952391408209185464810571466972720870977783402999276671163175501245755084839228419085553573407291742168697581485809215020136431391674415464281131525432498305809394865577896132219003691417352738335070070992171265977848527244217731620298051014732723096321231084080150914263189725296839506896923612949651056756879684106966212115257477985144415099008601402515417501100369453443295938984275061151266408033168914243278219708838680666228379860877746631251442365499126014082746472953546331307468685642122746226727959899864016201231709078308944452002503191765750093530282804507699547894136133401158903398763681191145130957783126021056083259387865046153283464415455146787522116207496453755693511430738328691118598047166197982027773647493366891017951023135906373985801528536228036453331544536049788181214923549478097096167089358499580716788649838335418997741740733616391429170657286699760565227229231105322007307680329570005359702369444797101279491767365119660855281727290858125504771817186971913372292251272102041186628783846810766620815365201754052581371075639129998622615783902942571234704894546811982193521339080740190389232151783448258393794757802335207371470816689597377662404570256619034083117623741690502690027848938808770922765181443367039241594329798747163534473105108690654460307808536320243294649805723806667443128558976823520111122845373036231099824214755898356229536223177339261026468677790599641515247075597864981443685101648741853681234608438665199595275575528248372506824105848978516503164905380007502697439585898260130040396250572765227230500366356692140422878484363880864518986641279078182063017604437359598220267501270697590046519851538058611254234227534530020115847777953320511841784222905062004724362001702366647840257058123157228503491049989424174748280846386735024289759998473228545384881512344997635082524442292756443504272561716105469602072322942668530693304370737380897651733525859313788882778087999329195891267622057700927051853080860054277561336282255545436615494229828018332681667022292845710266495147481448968191398155317855161706603796401293493870351335656322692909292428714587664491187926684096437655676127253422022963734111369019460318413275104377392476545244396548019905470644468202581443653629423448549124535598752316735372781216716125558168172250098556411927876687720954121371983220449519125470841660531221822953095081250553897948393204869353354542865242698518206369138779705514853393770642920187399193290131169172524880816043596539310425276515993620964963302508848019576436774433385504580919854026922578664192457448353094159716809111449010262349210999301780021221594233846997111656263517539199678586069648114075327728950846635241283910238752980663114460076228880818208861163271909116921021584544712046045100945066312562865564476205946812227767307412847218390003739600778235268552849349569155948775521045212207241749513207668215324518692638180613568359451299863539964063246264438129508705971396868345222923017255907049947877389680045468212887236441358772809929946981514354763178876004599253870010379050946640338346956217263489728318118570949429750972351517101360933918897140461385346081732324469238746804670571911506441703482459607334348342921654393612980150881350054303738972543013305047047346945943249034000688260192497810986888835757654712841828673666326998738175760870061948716532905787229017641863784026506302944905770575464211325974642257278871185810136541929494446431360687835966124165753575076270118995895265722465139917387867200558781677276834508787510087358610126822840101440738659852138286021493910004276820811387992670447819918234265321576648365711968827988265353782077192076137548340776739352758996932083827018393483657627137174599136726600878667888714360427524652353148606578252507547497684520175750208250895049408424742714509592256118052804411756373809457749200095210712907178777512635272941274067388521181655615257083250641988413544232181527319989665793686000687632442542915596161684272258771955578515352405910938218750044147947936387669439495548617006898367797697444084780213572151642163282584993683114766782134723753358395671568481093241350182923569619461306416381439956073760876469258294204331716601969876529326025028236470175409840523899592669226968798769628140290325745959594865298253243666917536259804308552944728338121913053541337345042929303459131642957100247682546200489390435417735383767814105773278852802581191766498215401918718077392626601013370616685855885221145661144566728928141903654439868076306750603052498281120499354634206058321284578380888911840398397719103576828631621076248660075399990095045293815694855726751376552235355223971914905892916713579533904436683738790674339218385509528681797315753171011591011706646418306693674384539157547439648379764655868720616859909192111563644264090841461877895647515311119132291818863947007167189987975376245937422121812749385355471821078342940654709258838871900425381242519139423470655017146621264134329101304976835286454574990798544612421780476247528774335942695691275592219704272396439508376670902707046063811360739398602002980517945112975999023106672803199227523679811827285244290143512012337092676006784642406248598910594633279358953951946236700368808212370079895724705329874153571809303450299549689811828453915247633673827055251142643537212927668128556627516072307696584100607604279355236250427540312159381279878167462907912609345363696606719149950402800576428432314482985552782306917816519880222468374671709425075308326557349489821434926502099554604393521578536031069926064878980088312597503444645846784534496108305513357829901354100776198029890338902029969203675013485293318187844401384514161729683357519539899258561235984099844185176236945566208367136165006902080601795057127122028638850279762498819845410076472777454508944692463573497912359499433132797077701493783642939229072362023582557896058502314719690515273252112943753879446541755380901618739391565422680352082959533467829933620516918782910552451652382684085830794257324358150921896463423485629545200448744036586574318664104754480865311199104044666075460087212024288950401847394858159747477131752523270879523241881743767255220975073768043903148207680901512930704816606563147787280351839839655106739809095676186447045712259519933200378873614463494503947236129301520781341924870030121446992024000574957418125700711115303347427180790272508728840547167734145702104919755084228195099719791544169753577220305467355291873336951443169306857594013428909322202460969513043931000448134620468650931831320809979933658354262686603520491434969546806075303839102652946621353017010871201040196361348484009770999658938819636563891142280762827125584128707591673890444869097335990532988628478748783625810407297586629809758450327583377361858388952316613562132691929880719009635136487036874010821473573030656492196593970027885391485472448161480186531047288751602822101379354583733221419877476577220757464366521045125581261731044163120354662518726124108810455045462652518292654581723331583923559828306914469247896856927013123479278641377259276503908243922369928786382802624087220296199736197148239420232705439118806010375533167269784833436116988358231462432626533474319884814025982720633897752346789987209566753230192083942645793240535056311320125670177955184057811855639724616410299868734502791216122160505335303878839692142297101626473473530980051947367180533064238193790331179330771290966286669478774257363320119018319025063252309935268562036851562509596386084422680218268095777535399305024157051803675305507240894978197385835781488516513496235078036275853130789317599873083010811631509072214431547064013186460102925079748528131359139103488482363195115670951506364986411258399628017394743004721440247572217255222064232115512118703158718439689281415876878840692944730648931093821535888761954140563022514227420336520994606977957805073554195735250774281121410629182406646265989632740847526932671804120589558521424876738827322622502484718167244854317354040487186184600933117815655435156062969168866743935573857945881553267994179772498528257351777376266037243138224053331669199537486582154642195308948187355141840449150086702423132826988371512162309486882198331783368727998444898360837742527170165587108544434933821664981901304516443475384424430799319502358072384840418695033298654199654733270551591449144608326119453053485309218415478150582632082737699220353377307442895593061269701261927253334604665108835961103511147472635349620461886773781676336709723160630591264264217460174689402245736682200635520920008957152184465011126762474356853220154733060415772059109606247591664894961316929222023107741134264212597320558612604921864358897157026387248659721983017705088300229089402706699852149749328458153308911041599621850190521415540441454863747577214318260604250880039266968070143756070129104516600569257596668337751716096121514688895764864889410274856356981261653259034426572650102064504911049912046218290322466841532918523233103696818856510665208748073579943312708083071245888820287150455844011407530669854607602785358272211673682685864865027574120260042965656636660021718121908496665355426588438778842997408859016940547578804053465187564736952662469310585118909632248416136965859805418944410407015510155980955221987920539286823276191223311597552328253700098699520430711251646788139961095365289308279251603066152711751679659359141983323544376109891458369236267135004569846806577971383643347655200767713476333283296373513361197071241850749502140487495512155057063205774586882884485121298997875365709304325009241665627912627003533738209648591585093872952598587999627843059889379686330181755838438799326078083594534948823164315139390425119569238437019921573837707715527345429192621421957508849717987972966285342822317034195682500723571412005241855778358405451774713106265790958843702928240971011707191239930617656862777497990126854953298646495504619839579562615037683736749024373660587462252879745630445113478074020522338675221756703833123931692618771010192926559658605426074259184476842714809560785356691430846478419842308396135841537142281215170418437904784075669254277693433251999390131115988631983281993304346699485744670911569350885808327640809066168793381477407304346560160895531339800070363128804544667620106147102015408922924045169662567331224609615640769068332135076769929306824870632103281929460919312814967549007329547962392858402334588432923391006294510248348745676679233288698723504431297116693678537746976203083022702901898450375597975408781797739178732973144796596585791041397472478640389636519901178631976682800058985579414816541776755071391394939324515550119804564027105428775961231781138574130704939473348009120649605051990190254229395902144138811117159085343786712230799900277735685256192183484638910861665932813032726259089607322973626953795843262876286009467232826611388756200320711434810017717435829931486595582565029123625811918521999744755534092080860042726451947996292527214989168685027781594000962805478636775395495278769640234211049998708941645305766096560644297671412569018924258494206562311663093363640973262119979225048369065613360470190025806796848543408082484042167793896424251834501922294105104208946614410073377394666375156414780940390017274306061857022757478964450286395635970671990260509201591055868663985826725509801227067141264752780939941845882648341401840549114089159421598653407194542977919277504239273751045981333612247733013400823045482536369850026756996574926189797277906963703643574659902536964361371682090479146091291968296152671826575626453422371949620486549398917335886476846205268007906045506574230568382971843335380270714757641533270977560337164720038676662055982204408577378593426979860509189584817757285181696659117893242048941697984825298681779192180231533183968288020897447027725826311045683043226824869431867063375946963890332841371768911461231045390029647087684814300003261202126332058903781488736106058623015541978101353012318003777572479938782835088037931907955984207442891830704311336575015446804956734044035756538427156875682539536902449072062773299993306365856695915688869543890265107471526653419583656344176866290563842317160364725572169231039036177493677753544070048064647241676002054438714178010402290356743932909515272851296140034218459292682682709607603674146978686617395560274357650104403915887503199248206331969262234421577895877136561597986093385504470654366095805185033799820355838157431489053052667384337918462518753034979556333327303402333756136768331643592622996578134737306029797648406861635879668092531835568685504284689755574934802936902044942634528163082392433124458444699343826550612216603071201169667195766714078736773476877960461408191244083373620481095123672551474877674354194537970727846621050853244635383823839093056309313721580285539188359669683202774332841767037833646060033845026251867251516442894627355750699244686978590218582932863066590332889032417320103690393924367494484426906031477901150009089237944597300904116646188079038490048953517766451585376602603237174941555380241573520798098502888922301075096690103304647779097068152275525759834934019713578660994326893711775593672207273516773570601236360416499900994569872279976742374548561642140842997055572099348331468091643819945695769628182264695270672911720560045701958031286624354569102436259176439637405369131242305619410802995109524941500168334195380960901131694075837655103620168522328148682578321905441525597436286382075685497980302309094767402484314026917121476816151752100701901254504979005306973577888054642633735252866331448834440996390116072406418410397741854873822443713064320383810362234285630961197169616085186497582485998924449303781104781831783216988321957783943909795390407815101242959271367851922441672958121272292516293339199534382695325443116901241384740009424908289910120722530023671155985559265046507891668292512631429676402528507126072266805872920824174050726231906351623865391584191951007421081656803717008418483221828680965389410393525513967628250840108073751102238903736676494523832531169588100560810574585795348117027948167544333180284993266510882942846798196976602291485278302421796590492579688032186538296566249635464142455244707166119754897853297130498188535121093995876038165339821790574998700698604025000629434088325274465117509375053003358868980594163873197726352222271471153037175911444743946442896703898099595848265272402564580412081013728287327536617727677483817789781864295709791237221410101707072671369069879016683602668464093629856302319520384495858857797498137341456418388616982188447820063896513953650204215516876064753434953250195773961758579487222753200849925393899545170353463816298199160763538549548501761323445012030481267763783083066620870354077956584745359304076213905302412767534133084484478010191768181969583864798938940915668081793592505602282963348012722381666788066542519838692975436293382359766894734400814727556727022397484562409137834407370769804409545714413399995856993342446469719142303464250008048715396942021795500876033754034255081893133364668167760193685323780011333085299951539891242070344334676184243359246165492013599538942783339090260536347462120750108321850590999356452140490584981084793131616632171072276264583724370570773580357195390740599563655103592030151000024165937357738903290843423042254555323232160030319344968210529653225467148266898412841663212785633881966539627207551609318012043387324012090849591576214911931297706723317859006796378934693014643224886065223594589633290077817685479676816030047164579715510882184880726032357717317416497510748236175499659337830990442658024366655197374844874022114558827449666336585894454548468133745400856104848045774172048143837003044218590013395793902101209633602361195411083791379787433319761405093508472920410711348603550416659460068697365977473525904251094607877883708359933540570043374483567002360836226458212425610350479590345098709860737317909203484992562263141070057186432709924833305502144337070278158237252125094398093788455511953531598149086722443048575031230817761254952038900504941178096779703075168913782538016369920565456846931389037452548890323709446551282367909461991813000735574679104959686159074741374927520442838918964351997107040834034120523506199891172463592355089701365506310738348255289301392541290193584724602956901761597964063675528047647004844736560743136092057578965378575350819522606418057625733328432531755663567568360276102677050833605381465000085317165828023998091509259211063756505770933328295382518553783350230363441086973993620971847900457205503775861755648222896570122030586169681791112455161112810576803446473501359507546646598721809057108380527113570566785647201484833829620924542401782439911747576213296526782578463566152720254246496828140696411977169182804502049513436752178888567692547234862482313330650510527528061906677710994147950903184069705662291685366343396198785955277146653862572613557660209552909342058032062369644735067437676237957342057133684681685597681317575633190309336839667115448282468858997173979834268115151246624791312561161192029271747918989556366377449214053849178325189349323646682389681491933262370915278273959819801985475413503804312146641109085122961717131969714830349547204281272420421507613073828569524783975045793996655856180060708824722156169118323194097683788377580386940248633496136482403362222084610971350151322452217388274008954425921546691952459545122919253153082581724784735316336366827653959231959466365437444759496434440166882500466979900277397838275364513441168386762971022360296437059933934462039906323668453826053184222935177877495970554753400016430807508751120414092860217030882820777485178571572470628711640898623749739674378862675078192595405141535218282232064867761845046075861842359160209775385248035183901976684155901147556758514416301015612789864719850018117321482095009397793816090756442004817846930588785000910880915168009668807640350108710684361949792736093620507501309813446657112904032284538687240189871647169638354663222218433070899949697335182364401255906226034455820977561083395621354062744294532832486677820966210324664397301676928355112673828266280304858892357682174010522468201393074101112397455410943445299465859369078083773792168441630784730621766046851692287258672535840812437335805766234671399015883745691259634005774330406608917845784023543838359031174012804910441057566698773588180216833696810278663559936885683786992347970668423599882962555942147116693750467166076991266595903585126755637791906404938684038235957935238393557678222637666655733302279410488598767671480678890440670675302937615533657737866716344855166422835454446652402261700289097511509617591078142149961492464477168530574946654756672220603067732300924736166332256064917094770123484057927487095044194426411561293054077653004366576452330521963928977815475183771476262808028230485582318673272423977861087824361375711329286139816070625596309648243656573992693883909084318297694883039864920098107411838813662486368335620343665542427886732497236088604249273834375811222721106734840546755192704781936111556605071874027315217848059735096077442562183736648689249866068500381739208882488688495780163284282281913647503599290419172995044354432083401175972205510359167874475623958509671975618639374620873143299945273513743867076623305393558309181748871096627958663488278073077088863221947954604452471456471470726789328404331968080805394843962916827114267605873541370990344990469025396574108209762659827338232799485852013571977880067369602628806872647277048591594088330840359310853313402724061699385516433818856531243563883853880776637562328352084159566360627054058412160020407560980008421758288819114863926596803144492972063588425292588017697443684017021647253066527364773199930288724478625189700038706738218717787961345388097554351230206269436021239819400491174145609541360538373314710157183928051983663083234885624102227322421348791354900272391683899684041492019614315840528149476135052894881260975528957959579399032768567805633864180597726642776814034472214349668223504955654962098362040497219478612883363281363033317702373668989323454195027187173029322413679229716370476646286877105803046188732524765871305992975069418372440276492684496398395122843951293815675586425026780661269255317323932576413379162815455881027137123060429941205904774584787171773096124604896316432822671056090652537503091429629324442641549016222371446605134471351829753596187509655558872843981236540639916618934419173968431267361270481316119892301895430990685707992443390225769770555711980372262603577905492725066656670156215464359276870125965762661473978662543139268736532243706505137845122229414840420766083342510451098464034392009368099356303199918286692567108967860732087733494306054348649795575856841620877015861247512154261006101179208069712136342491910514175189702885045461540662294302482636793245776991687693773232337542488154523116491708789077108701132537231902756115972208222891531901939983665578031512766374941661923513089336261345685099364552536754833753322072276988441241685424172585045382555103244977815066076335833448202832554922097014552956043309992925071956447533070688818645895796726006424495141217439189849208761713192377593317818148482157360706189038877818601180227782363546311013167729467235665923002589364549641424471725272297390083080567416790234616272265225197129125169955020912684952027129731838672845393576229800185080165047346374345345222885847015607361454797249855426603274042781034354504205815629765830723405374840338019586225166032454773990323128147314782744106603083860973397566166402859974040027691062882827521712762204412256465067856160494793417512262696498038274426821215616735924115216369418559230961883275321850595751443894083239381805721757104819645019349361388044552359941244862437378072585361750122346172807523148354526559983987850257909896184893045948382080561086837397928983391447063166373707124009882055113704209357162572319136611958496962686094977280243966951996970240427818730586095260290650529831262019809393177836528689904013221137206577066504570672763982996232051224645953652025592604196351643624017049297670627779854377750932801998650588007929730736661558828084929081589161363056597378422097041734821044714019354370791436925978590111841676874921424413085518187317572116582724662574130334246367618336988059689204057207779756205630611155923356255658807037569128174682789965159855472795726981474145323739799217373752446736116799703262001057876048921983999576518383689623897293991703273971769156607914653148400943656739118737445590098867333594935668842200896854854478885559495535896436216153699446375738133377282441860508400748404295757968428002394772414697638108704356426623871660801533983023114963140075947510241828946310066502040087847042610847538719412451576738687649321343371482810570354039915865179050557112046259880169097906627040232890517884696250101191071613992674070395970867156328288034150994718574228951556686409260765897939100848921828946355567180432805157991911726028662083927183879364668493729920018964023858722678963403540241763287196272450255705538010749563196176768343893246714416119798463740248363938287538768841344047018473537783304944516358653737627774220201917597774326258595386352532252510841998328646377533008353185599400836672228579799149009953264632108975393331468413157627521356732916093298659411669755317604192125088934576592440342619133808082755259593150405458784539249294719124203098180998495037896882474571228583569341192547552622867709450432544376896425931975060223626430345137872346991382975482874870768188864092581325916813038034343228856522614207488114585298348684017703133848536356824118134684139739733905402802078834612515219905993747668554003849207448284827801284167142371895081527899405414798186944623197093650870606169287148271127027514616787567128898809983055602167963768045303078176551324095632831945326394730158393343447324429232092958629556617531419627530937347811128509211838549008630234563969754536412626905699771392792953157614452839638015796999697568178371782178207326958800585653686137497882589945366326263069861624464194473660760106468735851118774928061321524659168639995469968102183589917112805432404443316189816654682694533932415024726739302296757635801201798971302425855229330081045841730221574727455580960668956528906896955692966182305264205852096765490024898946873362766495328681496330389191927400257545940671067218174810565005598654830602836507541742489569207173457586197905608781936315197585372072075947082540884495181159659129885096931755008440758455446874082018771050267596748067688847783923358351862836075664350832295062719629563167293718629784943803607647358343735044113265531016792898238753387450305859126712247464120324275872272006986115614554810195647927406435212699081684569848194855302953053269232489509792620622296622290756921233044425041160370795425095531182977931690857625522521194933068348976417429605412644295147708412732322185207954264686997666430795384624520571114553312782529692300550461891591207337828852420949985341042910082815423038751854343641428826176236413272696022311720539124674176119090461939661989389873771215634273449224990791513508546102153311029794568608820715472643506302926544379505357102594010588165108052548316805234050742569663239842110234095774718529604198319694829687356489909238298822812443673941552517044149059453069769236756085075104692598794020239488354211599312849325679518633193915907455504152489009439937700913553132997209264356890174123057159303849795461544013762733626544935953599272882380551934570001369262278984056929289438117446338276283770097365348261567807560186819273033037041013590964549382590721761246396873254184170679497023191214244398482002106017365871935721323604849071062473058015110271387401925616957998501141822516118876568041799964055123598874959558479344978076038279252616635605465501667991259383144865495221924753314340154953617049370628469243676380285834040994729409842423056533984644698192087131472598831816633791541501672834689643293151563543918014466423846737121075929121450225146284928423378981378320872754747151375416530954892069471177559637996810066166805639656811385676415371390183825612682610541742555463069463011090399491934050412196654632560011842407810393981430350926766130541096884947462900478167918747729266787190893443837709445188474692971191509412418228597061752332611834572644345226536384027307062810794245824143378637644753002875189109421160980367630737508315551252684186195812433458136647053185946553061694204721192431833400394339876370476850858427421663428011565896369001452831238406631600222316427869381245949370041257708668515114289645883061787768486761393266878124886843921123309379152812968526979064564135255833900404268639446480570152333426695190389312556901316101143566582429127786914068045269493509945194473136936220990112521612481269815687497094215852508683863210063188497515777094411057047188400576753891291282658972800108535666451112515093002188984050365769854888981584233022893756001973048497527835373547053271838092590676631214272049075883911771814229837760960385326653708226139540884372281114289383665764566405770474327176682280124458438166402174537214467698527824721532638214755086927051610303344135731600390635829682614871784151542048095257118002085052000589626487140270354664580236460565752222278841455567234567834196240054771173848456422875826646939470118898747190308286543728398467277437216253475581866362955321488335444070438545153096638138385176527111144924677264632957213655930840263284623214734831945349716862007323987180969599899288112361608664605533833671362333371682987454760026556180474707111811832884314479882556133190456329396244331111033741078608300622285616552334788339699214761350219376844569479444475299507403825884957022333092300834679452526662848985958037282702701442071242404414554369038255008568277362478202976723339549670528645414426276431634482172205506229904049665211512706827792569942962326886346198467399548795502222007720987895485704776630419368976347314972850776877936667263006607547895697645535592665638578644610781686203630312801918841278357283009483371147491568093352298332395384122182971737281039429992601231719101982067614449549849027592921998224488855095677475913254296843312197878195820404580732319491077835098095342941465213871030450910089193739769485565015358606044985463494827261740185498915133842501860604514834581873969940697922306139014073316212236202078321594710672621658907046693002970557654014253648518651234278159765677267989951016865477886884201958525237900377829362745604921433448979260650084988071428652784238058492813298357719041333923729182597980640268862994791460772756392837212287137953799670983281849953393044739027796875399800678738069464022228646371966872669260025015045890607364410036184474048914062399860578799435680048626422029305035191423954729568598744156307345933856911213935413969984989442284282067168960568164843160997357005784367486827775744337514897684653783617753342361892350467618112494820604657297123985844997120987073246804251746041812698550724962420147967257750639895703833298141392686993674016103520057706992022187831630449003890984591134426654621755039977127982550219461637842353229895782947599172853473243329843737724009639812766243545622103454528173875705598815517455907793314500403194250806838956733660470019675645625335728965809932623244512929898349034370502791696440523108899647880229135664548346002602047537686612949363572320325479167173773254762750739894300588334938052529840776751703392216294928294648600171811068044108546961509942229385274876931288340334415991839365897304438276913056126310938361331538829454199551783247214756330194361706770192684373446691665217065420859701689437926658924395423510193505006300555910929904466196801775631641030307656231448242711088482836331750748966228651819629137327315000227464204237604533969095359406896664619730768084719801273571282405735159387118158128494680775015905840521444508166349896355522252797790006966627107835913036018835230622604614417584446613747190568021038527049772465393446275095913617549062102785097844698125369525312768751301426773894984174036218748511444721769367048073160137938454065143265622915722672473525981838577636201361951589142239584523754710803476392453988690619271958052296598170945135381204341279433695332340428804716435466949159191180647383907729824657345780086021797594773556478308091737821260428587742643587268654080250064239675506000250344133476193321272490785336644465642794241937922634050325418235170120572972131080693442986647331140997292487491289388196277506535294678037737665651132824325995088728468400802158879092826782136541960688116219309817891336235677471956098454074477960548581729779673282933535906107133791060556456634648442922908581145182961909598118119692323312003584981277030719011476443501616472316818117830166460986921921379804429460878778049272454718115221506201289157697417773293621106925935818046442159048302874994784037120503772214905930529336804152740407205751043500641635336045353298700896812899929102715149773971546674413234182942201694732298078923077656636368775644521655615285600878603366831840072109900540255074632528276397636973179942619481856105445232706354204010669619868421657066942937179292433822116240575008748608294019683429711125228503571110187327093812086999003777713390130118985598304758590247450354775977332872901144419073361827563127361146372107491024605651755205101497544010120857713313138768763088641108151423738104986054539037931856118998185725162051768738367584118245314798481273474242755769244624677564523383730768143008060036058249492467519971425481108618249479027910523109039418786147287884523574378113887059070310017716859305651830526865874895258202890378588482497751019832737022001438648894094145849188578278670891674341645067611454403993271586012740650287684163298658452640634940608745374963840151468048295711611086263862583097493673885075458302069199688693946190977726140300707631727133450159152708137332441593694769455541874519203721098892681928995073285013739744088323170027929267882956339206715663906063007926586708699125890826166464095263823252730589216341833344762570861533022637794041534823694743592650837427354794922707081934963745263905744291446935049893648051702115734750456668262782169942965069305714598843381700223424154371607190170098831938310019716975096703485941203831932951484194022625212504509461470861929553444064669614348916302216675073235122526692681347517480014021955635947326770086509853263337486300176262938633889268533370670421362154416267569957907780844965989565148783559390534207176919965044063348088798645036557211257387854626775702753515557959358836832650196749258623368335055486855221380242003051247511761810435915480086057902772283335145338496783905882311956928810134488947057212102099239089222435978281333632027165353750818046848101848486429903263380520412662627181861035900765392779647208834331318552131977500626348281200290086295645619344244103888890617703032928800466075592614974871221934136582246856698885497601227223018112594335391247989481990943961522774652483281193959716106442240820507034626252781904011273305798789204103908460733032313945349945278389801202589759753654951035625691652161882424292359680718311357943116000062538674107794906329498511777479307804511549537629160347293697989040204827079328378105566467594818265063582980343696138386228180059733134935755197976051748552477636710903481716836012918766731446662335331883210230314808569595567174086481028239498933490476595983514422764168469985836404424393113684389485745665165854140348177944783827763127858327996035173929337091057168213776339289357699573419234523539471051055962739242170118807820166563926521460129731185577267768202392505665813982895560493120986634916753523028438945938638042386620810046949034396435712681727910443865891429310226431151715493774366782487311371822646916700125603241903970877250707095724981436758775021936548172401789238816344257474307262032662225465062657391418037785193966464736364764244592471464850608009640447400930230565748680049472934451235291919115992243683923138806069314923479868070000669515998337448806026672400489326580583393709633848541378358532865019262395671409117805489716406138144034142778370575786199251462741932224910198795987243850932955520308535011380419517688200555312748068267572384567517692189014387038919661816373365192511282645257061499084857440368427948492315631824966377170043549925563233484050093270921192750897707542258524694861747710587871637270298039391253066773389902200158514876835277829714303758990520228121010465894227702308949193203047928832091084836438291489942491700253942494478533046181355784769183153853783017847427613966551683169892615589821435836977605642616449808939239640170744847847003872155433335648686755419732004835683873174746660760831846022433372142880641166928051570953391843389224630135700874419485833536291231536445739584907910532552668380133547117957950797044313758184605889423379775643974763148699870938363809370683374709015421291986465416445776478879058200800277411130840488405649704266998604649829780066631418099331833553396002119638599255603195319170351967240799874033987970268925520770589241574806375351628478638551822128459979367455761389634252974019142922341388182878947088910158598005883732855443653900502776886488468551396961597077420668645088476503732835268485113849008347294345403526638413506817537984214728543404020975952652606090325619276189541003093087776376409729395843240523652980451862254452290835906400687101253349212806169827421648761008375429651442627100387773375168078378438772951432636413208684212052331220430988642580077268405470683675887065530342903455885774182953131586844561203345975757444339286787428584533585958583499675874937497072729832457528222822437452065843126080462202026638803513995082031749834156816146594549190781364885089198958867721279927392817872278690886669126835534178521419429197678637824089894286416176658621523993143609059087256628934817267875637670251840046842389191595827469839048264105611785673768743935180791388065459638447333501245093193891100854188699058483386155089421769664576554886354254970475822957717131154062369057371264106055675343328728235921301327708642091903231754186139188667741825833196611929143944833641610207847130939756230209517591551838056035390337801981329270055670005252157059465616395017012890545894620524344354814725272616628532549353798122647259853568067885083689824893649472669397578358303322683644412446799540390616296850880877986960643273154300358356434192391933963876914529116451633221400820609131931205479007026095718860576421558009101331053904159115352559608878782059381225926236646319069487636227519455888385137610039495540040179937653044128175243434191380092695388541833617853306696826936419500200705042145188983224689826769296419051604613428261773101519470282662788576149940643450796829007594640579941171059739959230483387102382357680900141576256854217062711345429262157335759113122581080620769802128325244996270305820931937702583179013412940966175925384934853044981336804666506621451062164509858623447166692030078003548990935680183662417328488083680622371012934098073497751133216524047419763412925854886915050392626979508254782907126223696211629367540506584297023975936844363848618617507670015983493683741376276741819546298669373462131230438782955198555024751257797693668418286323100332582326271867392313397815029757281431442027342867790675400516533192194668139407196530523231494122974871491155807132823551393065301184258193127113836882842848081503921392793459831940745937783377873375854843856913955903070811091246925376675558121743697652603249230067980166735914123345622415993155752612192598669477920354186448079486298222993153652939246947042157395893785254916135657106019302814933248691656366680409403567131652861647132936032572482920103149837937479624853858830422002590270226223264445361324373246995328427001629181332392138476150766783544129330264333624628482525171652810762468986850893881462600533940765894476455907631061824418641783230951068697976116792791300348524159899610023291861419950106074662983682492125220892368435328831354461173663992774917677966409834813893983878549794439009818530959545611430260759436306044802106032943592774381956743827330096432614546691273580025005442466117691679465427450852987996457563791593553706059588830225127063124581586219752072289222867052644120807370154177664138059534123950283560827320100713194800186123510939480158811457800538545760668935117158723819210469397831200257008630860889725811162465153305669549903670070662783714877153204342124474626881894788748948110791396773655166342214583488811658308702738876521523996844797861127558274627145304897885691655240584435682012866479494481321865916136360215224871921080361118128049373176681650183178015767128697974819922082252617808574150803938424689394895972042008959756851351850928492674371753757303188228557584207563364042698493063385428819352368247135521595768511355157739800318866335980247578160259223801710593490820513099680499463751915637737420123086650120691193185230903316818641094284693084543797965736632366431430237000352717767323202071947500870912837277125336537307325153505605169548761086267316036815058742033109354290946955750944430394857381306910534165836108830211932280995025586238128350122473311900412572129676260215768411906854837645624499704443072489480791392983349354574465898640815766367721543630491991455400629161406390379554275576270214101418820612684280795771589302017816014766935826772101595332177187779773000076246409139189238816224068975435224634979418388303218899860664097176895238147075801509407757397746225229712459627446082917012911407825616762561935142289453132559901252266722052819108346489597302134680459375169039233685423180297524107432372452150388965854377511444957522541621763589374422841917568936426122692602540666326551492556604041644901548002098753300028158310078722481923625131072707961776326409030109939332548310297024803282813326104983289783304939045102298993663720373929734138654748660802072592824555385719003309615869777545395053709346314386152058504560981807205338587736136839489349752159204425039154128878859495993679496208190869821474890424847916297176117677233838535415585622231291379726487833053174796851765242155724207542959952138218115067245280270427065206506906961563607960608763490815974383266154757891235156741928270896430474751279226493489830732991508739888965191053318066313559720069156277842357602414056509472890451969447355532345005382785542840807707422859757512505982447552668244710136637177594800457503257456500363676982058590049341641521266356471309085747386431042971010892090349279988081430717688856581078994570235303415247590528637189820496092274365841570231284184335499232776828908094185965604344727899210973960975848719981054481884793213457317487450699060914526665981422903785000421159011355382845444241664123933907569940915728227514098621641369745103471022784789442524423809234030062312511924463206382482645017767099089791401754819594818858735352896445202548503871055752965940957155068135781981815072821943612076895126673900435960771282474259534056788326169479031033713615670466253938445061923406622815526515945628533846002747352727747245033580708148278743141535384911205896555758911935617162140155538737642157257291764569912838478992962456591818933570946716881848693850896806475728500666782696029715412449704529125188879648279414615913276103964372601863769449749604531488242233422788662725626666501030616349524289227057419747363998708062067001079209328277347730944702763493814104406439255832976042929405718283480346591277741850885013572588900438503004400490583382840929460682522655601754078700107666622881216216243816434405710983820291694236323881392006680324228733051498795602037639679743889933495135956130300759607518222134829537042649503794996908203398470095191521391507671796363071165558984628088609094372178407115641974190909308157567091271009095515704024476965674996992122423388544824349834511696144938811546596607393191306540819323013870872007484314927891519351640775168071472276344042558616452094283773011520173710160650166149669183416245037455645775818658028484439919414041882557731098405277248005756014977426224803761675466205540432625218919852340786578237709296097478744391619625830404994379159401188423293087855917435413725498012126550587828617953150412083028282209223482971707178005364772091336743082495294936924651709127793994244626857512198906471962931124326084878535641299006820170793148828500035595941311880108032030109048391571920959536811335960549328164544204948327127854865845642792049149391718926220018461709193671721106140953606676021699815256697556450107387997502834575600646590342580335902775693742163033043514860735772711567263650478093830098775795180175925380230529022838142237595401983840247660126402747408960656866878991514895088438972917507788265928401183848170566006822103472170085633735472652357742103427468486411240257526350259915197362767930208880060812345565052926865070464790946579171821520780737565986612074609720462786589670807421260292302938257911874934473372528566960713560300299987250391192347398201004970942270719999144071677628794128350579128045124668588363866587888726187701330697074172325269489346164247288961597182394268920880678357616966233166899874367345908623947621520096135634810871620161405656820548174012360430245605659803483318243069638994510948026123581189831594077871903054524125289011832411585213297673351601792164656446838615921080813201899609777949235561927279625712970761151461008715670314234381661633774069125576825718522421767050442228529960296400540747424064736775514494590178015160027745780561325926831478647012144496783299191300047508351097930796772036805385760901045749268543880398199098653975374519416820062338389769299474000377520343102410169603293047400801119361767225243037536832360926088491753091822430411951742224413172940679552162804176119702815804233533085299120034501302676707405802907353382360889756322056267819744577933748985792501898001254963440471501000500502088242057353459017363599119333097048869801067659661326371880556247368135621837798239586927720635744987711101911463417077228929416106220035301233044242130812020964188735137465310993503321241180340502833711200026775242709622885236183639339130334949087812892819448591411268783209530282537010935769344104997112339427799594067317862375986410921155524013285820323437573335620562484503425899326848161553940351578708017972364996746673228058300756963064181257645154321940905952987456876020510089257909914168520468596002532136973892660973254509901766909988431291727936619432996444529052791140094423325720543199336526674526398633932083234293480010201370325520085527023973683600892716888159757507889148078313543028290444548825549355955150346589350663458137018051295485950430117303384096218890955941648259007592307868877803550917664091552508124226005599855951133507160600069351231915732615750014444472620163122703376352166839923379656755743274765747854698573703125793443704532852986501758930090560806756041954116016051357376179664612102477442865455651339341633538879777172572897355198785326246785681165460473516414504413077042638612462228890533524591414721733102668965068812482234762094367831852836729436910696388548653920546027134451807671365879315138509770013359635848502807132142281317253679704015377081141534448536746212247645249707161246936931917590270918374980167529702603081196945980508963158626844463599970629382286384400429688408376716249012858156699741304882705106231779389302677261607643986813159180508932613908563183759730040745933233073966094601909060824258538831515398557368550819650229187405542812510548836251340267167124096135883106794717286797181257337045269234673892151893082375830705284021514244988014799689064003862604918994884392405368381019716883257118729148634555767509878875512515574129688177040963530070019014649659980579075549197255884569170253197294692813224448907092841653225431750813182676829366836802974759581398457116400680108824859771430755812118641218175071375076633722406865523875012091560076419258492406005428832655103480106509846253412211346119949920572381753725206205749515727884542806897707388950839489836569535408018891855616051442108285109646616102391502767814559808065432413991910578468852805540060551580320989754758551610490724913834401999277484134255790219010760116111023148942917319277664706328750944661487807341937977784022653991882147898103205469629919847365847322918675000526530761333920925905411893645887808142264972693227690195717351351992586993634472343726764211617388736233518061146246262570030784253548272285948061144170596749532333461617059045411941058707620391619538637876742417495652572183601365201098312091686075567603749620797349569649049765087185339658729644427818550520532271027199511578068696254019143006487178267142072992196853211754507481452002952163206252529637084639781179081017744466574392666908092985974406208720185880940746409998222643917065398995398586429171514232923082746984545848090374370149804873429062843064672880473266189460100587497809035556558204220042938043974814080102482785903666191400461130774488728362551663250303666364526052098825537858313865214951523293590961554296127601950156267205553694672252467395881389404558762156523567120250925511016355057702752183887734864487330935469924320089469436708311961001996070867960689367276284990403815499503925307497009609068395885025823848728300650878303264424692625166837016515563930465828830285341231394777687226738863501621274914588361040663859137244592596046405718869518583352975367617475916193871751010443080459443617951565955324969353284828568172068681558863192751657285872827522385546655596754347854136342689054844759319971415140852773501228594471211806817017039895469167693686101533745319344493654960017379818645636245050373415491341386598183319770105879515956605416716158281598590682816529517915007583951588151562978926820468674824360758358998727580575204863868777254670731215900961362454265488079285017979071825896941323137542004436485992416573365922876065609403911747190540218501499965849444970156380419248189686749372351517651330513879555304286110180801648394917616808154413128488069103158842279628537916879083533007883064728361892260568752672940193370671653786519112944552759302475853791741334415030224264671204066869897139921652397562442284525283441378177706921089658337707756508287843164000790759699634200791031769144102520853842565330761663238274760239979791794928412625730576888061348719959138868247524920937888427494591885678737727138483884264688968056655659812609504393537320474841009799870534484054139221147347278404724599553483252656448810525112163465561288484580856864683067888461258494614125248824566213905674911417251040023414166979760128947336807297606232486508505526280401417312229422206590949316571898386026503151039817503538733692017966189284709178509395032115860379128250005118538127344894338832965582227345838586057388993671161502862646097007371731570489390959339025743061751885792538341396067770160014859496751601488699805233021085284857333999364575729582441265519451028498359787214754763023286714647078285998632379434278257529390631379438868777939921091138301230955847214841942533741240603514197938229437755202748944888020499476315297611943889282451894461851891502911490839845974578946853035188367767622284938284171855497320168966533845772407754485339216515444594016158178889887836266545634700846313010018070316680024064290453952137138090581027582235215688761710075812444870566603574087372087402716639539542396170407954507282193460927375565575139940157034219177768485592230336337759922323210933769575436431581018457667478025222336943152132075292284578027355208239044355100528240396934341960179071611440842244039233058642545393794812860608957246628026879067680073131459974568004628667090920830101251274295716999867634985373753357279370671824487213895774047269119308890942083336625861551756244293788192677323519462320559157213339054674302695201191679666688326511926680549839295513930381426249723924615906112240360550677924464501958266155828397844326550110388840063940594065004173751285671392142408631553759115704038592444060753261403451079344496895758851764904456321801695585117862632881875586560895272464096036501720701912920442602211086325091753197071797972632812160272215376940378071193539472082456508432930563673476745480203939078896294404587886642537332354283260292197567899820210548502729834672461182789579240263197798129260877319405402359325640542120657300575622853830557968855811320043755261765648208845684726021846454322767931169474363329353098944042720829042150781372681538844598083118140698127960443183625331346921045249112472717078444135318554076202126853306711119307905564619128709131991342205339079484244270350275975329361752837709375154137420797744248936477522019120968791185819815783867600128617076480670171827118018492731090328513710292924636206837677438000682419607761224215772415958344801428688615688472347357164227907418421919757510323185948073312685968483330331650649954982872138708736913946200701598216730232479594793781310565551638192984284606253065363471340620582749713131400721581767371575061887071412849400558102259878208906365859213646035954854480290016378783746308271599297580297991804521732445091492238327824313616715176285698165052029219683068269706919557363132385466433643985337993925014215203741877330043761223540949024418115228738184099778553146603899394891281679076742725333278494043187179413346878755215025866705735566531652962090257712245037532350125470168394556895819235561156904588935626787814910147442018751897803867815952046830835014548306774651823959661823160049902696523855091479122511381362679838067847988567240005941047996182129639241557393658363640477115654059307126267267937322778666854809621162695546791690150648301854933359638959900238843180198925826926874032997829554732236419607624831521861070245623522635389398379428879650480385908959402758678374910664414537151866991276962959070248541358352764770077767719907769398723261152512072039436816551257330698277385046268101601091346213097375443363463103123743304112216855943941983751479223527233850409374267891086382306997997443561521411000540962406813558930801014700933766344792069160706431679132672184319634159158899473529212092428201511015939980710366677559935157946783439979364273892597415238242268717547912063787259910743708100572819286691224612563526943861867069434680923836302284824491538885941883365640494186511410030058279796019256989295502483863172685538448156333505569104395104050414914771973051707533361244161777888750813697076138895963208594064729562555472457937876942280668925904736929000317100362317268466291592845937628588598910097185617743528905688912521649242423520768840026368105558977290089053434850332611186166885266306193905486065271578777983292549671181363494117300714249136782169401938173339763515981973504809247049470866624178483198129015162216632128083427320192925488166913406238537273165806521801904381056316103512570614455163883615905118070260788407001864599767889561768405178721768439440509524312494803137882788306392105602280874874648872251649137071445561168619535130246339027229570271408358778638603097897037808352490763072191860550098086869722373962862815542047443310541694806668279739888910280530624621264544918021235043429365478600222730295088575836680833313984942082509508319364528115267647223863509319477472482171345653794219812575459317261497348295700999555503516890037846813182063372621360804421365391351198614282852007814832458237017949073469747693985123834605358153427808202818238552878312012692935172097428507029402480347126137722590594373787056628760351551235427170930928693759671138154457025538074073281532580159029694691470568784066713221814034818025747769634509354882145077924796626945097939248305409772805921937439460132917574248479655888409547581474901602795538237454716562302110715435181609244870959687498430349050351135603395747197340416108985418501676065286646825587065576256986352987761578851329290658400344161152266517782464946110416445311449233497097130478114999893642505495542128589598244246319687046008051155253693015846805699268405243247051196077869957521284040570259004289554210668182539070890792313904703779232267121811623455472950968424139858633000583080959959363159372885839050341610011766090045281867058004358758721358356166672856798544774402386895158104824378722145771710225829648184034478710259611175933910828786944508371028072804546241670622776129533913726358242880658561958532874472858729199924773385039189835958250610209463932976769137494673886246339744717411172534275806069386190909141079236935524503306670411481178732505098449337438327701264330855675078037687579576803847311854760493604389349273427984941385280008326090998977704263040772010078283159191559311826760232769704549665957580488492834904628043817116252213848262327236734531117044092591771746419688101698992376789623451842360411063895804444098500062087400287217174344868239615149821910889703661992264413037162346574914103922489717421780301720446889499494241173405646561169949472142235755280228378022849096104015369864398231852413482656488158807011289975249819841577029417511439621858004957892162768898312611560279227394665953208621340004559108203706796123972051547837284519435158421509188504723970577456729024550236633059412072528030369008806521018684122714340533592689236324770268708912374181605136417776337782312495454185746151395012952562989100951901593399834419270161217899540645656308134640553080772814383313679895716325834200276693254323165053716598579993969668634238301692640277185452518951515925666957668621694292923522438615473972993492950319815215196212932109648779534057350777673023893509886569557680404108573323564812706882939277457968923745805412536419444724415421226050438973435760732458257253083806366033717785132298799508676549911748180180683632322912381751952893673050569395569541761747774979637345691158959587216253353335491515874046549832084478816551747863204607066437286199049423887437697207655499340740968476634261174133475021364427015710093693945793773966973653969922934935814943602778860498226163007838724122862169534810772346805403095489979600156726949793959222115698506156063562891549190533219818691321284069694921044753532265535588032015347958167541283002486752301074626760020287896379264182554925131803056095160981551125369243633488163722961216077007909817770949292779893166803174164713822989135320727740048090259562059720095236707872385707107455868348589807535352728075729078201936695959240110064313930289362524475683612440977562834039760135423597833454030319457563349731483831722987077397854194948623372832871255118433604970529232386392147804996479748411944128777954896418230654370427381098371407741139751925280169791724636687021064332783464978615988421780167657187736948077936681120154041638163533748762016588381087413991136809476300028198364975154612400439401687352480025938711051432224073601274439960841866805106294343424902206278742580893896534037736249546221332070263104981611486950031780757018210958534773218738426442914971802032078567296615579000923578792292242287825049320386207982628300112028703315874789964772073211894180934401890309073817807492677551180080003776630227890419453488471242491037455277868970563847266351346677179026390305840440929460777005327357756369689705248558735453799363428562333355060374868838819127992033435307871776555031856302882047048609989875590123431389285651674804845978397170760711835089560977983098809611596406134727222383145950929222544289320665435367650599940988263546565409442898865756437774680270632622796420773178833544075543610828851458980126878855291330003821915461502039739424394810567248058621708930223707814635145825137922343170297522086636145945137275818018852980547318917247306887757479209976769258127944353223978431040860476604668277575107933139238890151921814694868194732058170870581191232234944488441966057219021110234341318682296050979303393482461891691855167393637462686586935194377464272811233126089243249368026047339455081447379418770771768773393304619154121726043855416082773998544242749315061453573559677647950044668833697137194577263659648034947596064551515840300436419665793187648062997514993166263942498375555092956315524884899693805570256247640068468043315109238299768365294382382494179642617413495261782656668431499409439473258080307109523022543158315835979116922279473153184667625464004436780769736221365219833711828763741556516779052385035569736911057043385101216393794740252503119869164437759238434925678747999223730216446594316117163188108287105539923900590299887720769139023392854956498364864227275310148595509479450550212263032567045169622368168270556368950151401108016356821979506138061457685152251521272427738633095048567555476016908468939105528916791494857830140538706424243501778296805629594082507946842163075088424200136512029352878810046583435515637334591459454115545798134109442798941475896542003432059554020083237591979037982428096899200963619349436696612766560208361806502447497573129779906305194681733524800397581255625963537902055089999571783422756540537156973255573089794775719722709359737986992814663495454720711310992334975575769791443902002928136532510415982640943172666746468870571149057321398215393367833434983722631954766767245871877875214712686868159683627264914445519061640385886722737540390577559466587557696505569222740849333869804391761143233077602102766156967222674606424897017068418517444177536701700447718935310627337862852263805558099512170750566495868152326766981542439050227625425420667379430344766342233585756267164731926908101337124498761642560496608322585009325772647481621983078672291617127608850223963077314026072060722882426911699380827283191539369375707879298064253505874903618012035314372673442446111388099804062902382674041993420022640995496723657124453101466530638134196755772051587407891284512123710641019647385988370693551388932707974137911114780325414453411575310920584787356859580803463810693660462947920370566731627839283636068747030349806249199703456714769870847351037689318934802843676038457048830662208280827483541613366028768036599073105463837546571657194050371600825580685436415666131665924814467705530131802286220282117932453209125280651876534788298384019125511201793261680801517153101536635313119188950909259834877933912387268699416806910478651015070357983528367570225014566947554527098498728930494116163356192543043627721647835988365838815951585040185625498673370611819888190291209584052064014720170278486024203840183348826936560870951517752389131895422890040598689553598621400273529273058951963711683693935549034469598429713342748730855505034932973426036818075751672251901674971131762070053632591800589007481967795363056906538585091403057700343681519034802700820813896727106484682079223772042495994450147494000893892996348273640540584721941950949033863797967043896320582112576602954570568943716971236154944737369036137908604589865415079450185158278341968238139006854249215286906625495825551875863160258229353596941154072505868035174043184120635786508959897521838543122751645273532817270508664737737449350142339362349793691475266653833087305639338216147713309481158496854009479166564164361618354822876381346997445266754566650546118885116156951664357302305451266784137157966419944051679528300531611654094587222444682766926491987995316480067837538527484340867649537617388582112061239451821407878152084476778916902663595196736365592966575613667539807487906543696131750369484209454369015845175183801338594933506367265165220792409957623675667927085230432043896583323076438996488218339413988155020789002352653116422888431106531590534269062392963693542640215239466356098087228123389201461675116207164077163086552576987293084149549233990003864893102889496054821057304974371085247367826704780511138405334533023454896339902194643253454318856404502791918652626250038363929920179159010134090479589421346332403362700518004217046559621532578433501252967927231996843136289847278907009495621024946366936519883451704143634570941953510817987043911983018212898422504341870136285501208570587199995169403959835194765354133028124505320137396271971486141293873798102414829777973893651035768365712698597221976053793641233109338230981640139731962320215363051734114228413627536993641964747892303684928288597427509613206098528564071000864313036894294827051982011878196858702298859471372313033509801058744707795060525563198634862495234425208059075110056627817549986853102865106512781618561594286950224200103864659766096877509195776269600330457213304236525823137764531547336056528100549757371919832262374809558114088236112531393894315859244476684060712513611128805274607775311422557721378478175192537829584903945868505890666125227062231481936442778789331388495681676748462271720724117521221341523259380236189282223735684374594665713150749535430563490259552014200969103703552147368408463024907690943755242014039946669303301869744873041810970050689071352591753899400372646312388642501742096983389712343473512115881120734511085588507010340247146146550090638189488307764875338862413868192137716407985834785002895371813961029242935645262739771921878286164155173832173562467347742225074155752028974694689759067909087432944878163907169955328101799019231197716333613974938472500110852153788046303978432045805351980473872764451441336895316979266464425176451509509750149849514383802848932349458185705778676455253756669378171267549258650461654014874339057996565774628599652495474202932242023252288870127720953159088745596698732267751224677501686693272378947535714492481177263963841206129457633190079972168045836785560495804731444085063727265356364739272621610265259193251321525590449145511409290200312250302933204888544270109302071349769607881740032770478495046745119096021979422189977370908759841643671120352049342034974453936804762858075930492052332353701172320935113152182403586971564830587259091031115876253763944867111438756332083543774372007937784738376447450442065342634604286116304687641781902960783357097019623248268150327270582680935630104303555608894660780496261909906091723187189291370916017029320832741438575976785476016319311744174840828128267333418516043702706025431277858041456479408040376633174697108960103730877368802801548967484041602639122310603625265259278771360875615787207275194884759332445370111723077949594214750005980066407290019842716328610931476745044914914892207691982564577926224910181505031362349359179265941673992289174345507705761102083371399837003799370264818439857546337204252071673023509427912084719686360206090297988428575322515276836377934986417622468807316922080975481021364634363418569215527796444513031007985304061475900039418128533089444897103558019033686784327712713586170942718721611854528760591145308955061048331562304779428293387266485188941081718086893748734748562142523712736629736612579759723763747161488139549921794087081361946388286604520782837094892978567101273637638349877419396396540156021519157118462053588126447764315780685065758921952639041903424869732916946302615659861937765300301389761250585143480958707770682180429745482961915641370533713459703892375721367529702857300634088230960648141666242690205661753195520320856827280722399054610573499583871208902340951016583564871345310976819992025438426664624926397968118481484309141378901238288637440394235551722706909011248692524569136229454361772868494067102170387178721757540702725682848151123840383505008704655349152623371953288678842095485141089635190208661169445323604330229604651197317996570117367424244358806496532668476208395817326705266056351798491913580662011854026488265031863685121541545548773007704275354902482954633967129057363370699263585873312249084293973022424624933874653738432539981865046533782041094247718185479222391547563664594706364604697487595123085047906711665016229641631959245834668596718692970693664258715322868122528362943642325862181499345897115574722174640735805250095017317296504617272120425255899096714058317944781322105499712491097233042136157484362573980940744262104718766189913039404269202090527394359646678552499928967743104291365736328292896277075848107240967017429224477618521267914677606858462217902625233992439037159071076036594035201161665713737744534223057494830609115959677376235610557424469611597968663255601915913143608741775019741755519309807640393185158707402563013878188434674836510993479270981240060787672026946822389113876171778536359861896942517127808270335694403068126571972911231694418246876949849268953613304788789236544963232340242135620597719719582878065043350819921414118488872811937964276121234625333336978831849708955044715625052523707999624741693145238732036724851966286450278664047993535341358645008160959543744656006478268913428169363458951293799170547399368102243529361648380106045294815298874100795532342059029656684490638025221197829756507967249170588823749152223503332309517040320747977942778022010070729133807767283043933024976187516230890101945077617628290999669037358635454756789890526933476244925747896604508875617230689304155123743052343837127579759838279223372902166659125281927916283573744543478877136411296766600132771763983420867579146799707752401884994403803665652355759108093414552928221939429894784001902234327220867160086814394295263236288503432901940914047455406681832132456548029862164650939651680682626727390051589030459644543998057175517477007114455554991091450422300848996728391038431567869660926657351643125177342699353505125543212017635620994317114022962637240765418464221851883088685171897687270818485638818503000651210623401320369027367682031160015002098256233743227525250543349895487457451166771646625999797344067644381450571131503591380886626935216102374924907972586531693760093020439245557089224841057700438421563530940880641493916762143742446073011344107966732806277127615905783946384642285403790091846991723774949525607379515010494637440273919177455360902855866635283635364752249534327178964432851269805226876101202026275077255565079675446902398415562342077529041634225444250857905708109416103021449490379540678799273345721419283992901459666984108656506949775601871500903539867307917819635000662911245622011673914735821116534498093798660762208532576907255530981160552253833114830943726947770642906764123164084557149850878093717925567864783247909453065542622348199843073392716235106134984774698066313839069778035476007788699188823884615986739372698548034014703417929356799890626271781532302503477662680460375611814383928322624743435025250196489898282081569515663510257386777060326151261710024404190854301241739716563731590962693206166990139188135827269908370683222231571154626619655310390111085905468215612828518266469271293505673407289925493810406406339420423951132396696902403064439315715476984230101742176892963295257254094336404807733255183015637804394979154984524911078696923690363077387457445870246799506882287765485937111079578709364135188516263600213131834937906732726175523453072504045609756920067601050007898383071992329403524945657171649503158154150669615554430702715141164044467962600340712228184955485324401697738737321065792840730628933249939136899206102743326597351012466603946398799441901482481939868206736402713495836465214813101238385450258289674486168871866227347023114753079450579850054756233791250121178272342711421281648154285128221615608366023060515475366305591344000339949891335952282704452916739306652658495838456725727383520661770190262213151529858062154051833139590528245740030917458997557345566859783860132970621165058092877581631287903412923321478373726871807245833088347462415935465439577114276787772807475264415216945680347604095230069769040890258962008785713285362148107586692095345937846172183226889957188952758621868051131473923939836880232892587269897609174182248814599598261219585997132531973302200732654173125615363099469628208494731465355084025631454490831874544001973009123286626540794796021269667054367246687223661677109655956420109670449295795270822062466263600921906906642173243789475076677425828890713138908907190888695791371712681810796608817624674788485417214831390546931449206544039140239320139811696665955307036953841432276680382674387925068844266347036220886166513268483575119481853438628808625601089665714492214956351224545606828542896853905683515749192983118173627291388836965736527691523473233086020779597062937140173661195789521733866572270397108890668850534220771995930362508456755303434124035663046247034819571966109834449142206233821877793613199306967779024565947619514579197694083939636531575177205732546935761598085063381044969657621626366012560987318463991301834151666862714359551714931890601171118604580191563031989905772429946873602327346760843926692012438975850296779868836449187486740586705962722681154526152879617555984614656807439696110982584006269348341805000032946155875507411611263276855705049848762776362540703796248614298483781954882490845879166904982661250266136063891109956368800203668838305790131297431145924073097823605491733081420684521799878475926698306755563687165739016891563848546424127263220457654597418966786874355204527230787498299124333783344376724779916433439780778302172625196910239242238382989424012632633117891250280979444644379062781764940405725518070300153634595525569881575953065594499764038587295912445022402128073404498142020349795189046925984642054816771990923778544811709915843625720982464880704984982647307608735412768558371262058139933332601124189347563659362037864901126385503304946650008670543335329769046485878119373683432231911124244872133653627010630461946884127522607326401475692106956866788165096932227784184236758313875990298241009724379865486247563041290181368151524851498465474861558146560319222437332748392758467749094448767037560640408682605071763932239509885136020052014470887818195952438836083307578469421911192072691092945898341053670452727323046089240322065207250346410959552704880335318865566796172311975737825097079661972258910568736637423721115048010225775778332241349239290100449771232912853672830655874630355503672950260696057902959355069099883854605020164909298399868581698649559514574541587453836636186241769551237648302766190665850515299956785681843378409986220246480199732580110935883321050384839634859643624692729433227694593076779152933054987496741287935001517236546663435912055550811369688947310931303444423099075595308117090013184815674700043769206249793472105079112794285918812751691342477326927934590768704451631335088599297969592270891670970296320123027214114989741815104383008510784626544869249879506043101422614794192207626422482781401376154264183802431687072211198552604361994169489946641390682949945886907790323671466794798344053405475511891768326477896347613356461450739021982890121024514913452948940436192767615520785854515731996297052099478336200500736832391207438167028501573510661599223300067995496259962283715534215846241144128786124410717668204228068783651992341729770857903822134277401951585127677897066439289685459893113114695131337097944394939805943758172823277654152624624166087119151201029160203055378696415465480418361425401366555461560695881337254906263855762507613109129800670576288216304787388464311606499957578873479354039529991365477727623039395537893682052417050074062195984679926540715405971324901766719743535278120403377178337022443916007951143870719343454282492167876331460398858468900101223653635251288954186083557849339007145223026476734108135344686815032801604872798308754745212666858158121099295226012183059955750205671505224111665465346409291665771450392833239113362239439511819852165940688717259426383257068239952696704000713564039083106647487906243538371773884696230650353563713135742137287795131639800832179698203681600481872242581032357449988041993519955167790846470476892652566502235045669288114744085990959852867352288402051903525181456643762310858667895886408985790638084912513043076638842198503105644665019559820748668419342420407622958699099414461068963251604170764097153367347560446666619190146209580113158462139929317092265938305806552085245857615050556877241755865077465064070540652920126257399705057735278979879492832733628911825512759324759698819654015154611463080177123015169661898140827877860022053640337315832544327911195959597402538007540250392690862970593685091738414844852370863591012707560820821717912132696893635519962683703617113984189796392032586728106972042907773045900157434267431476768834675677588202318081838544478981320870618929372443354436352226000299460683550866731673131654150264789397856192405429628189721078559848626834832287279152141099564661325550163329468587804396403971449680451095895411248179150784813719609559726241969185779545816479824239470511951729524742677270462060103102019121422649030321988443708094622462769177722281193809589555746608758335931492305152236133655951587263477743418970374058407756251368626228427435849903651397266762235987870269543329637819008952013315090784246703476987005797402543312243488894082090708533970527930356127689990615526360157200325491272429882620871843927367167894089945935061656139307844947205062373343057616613186570709912660883509146581307073667846846909131179836771544651738057969040471266554418815036522451675932176305482647816917289364122457433646124860918277523384292670162336003229092220930155602806612537019563433748146932921751270745714733472535222411642296310088695165551664141155462434696827583072787571507376008113220331339684702489857230667877708666736946856996615356674544743493794995721391813492402726511647678122413904114190369819585374453903932406859155493206959849551555139609681526447506600583323259170789025639847309680921255687013048088261096728558404415192283338259765533083180715201144022978919324019254965307724028152455772462948989108739226840622528982885245727626445355574206692037184826607735686220419572459860950205450109137808119191308689153538318296154207531534060099707856227761310713784145012605237561494519465672241312134658512352216942044577698425703333903227199829572122726314366846463362535714580153103941823816910937675913323112213238542648064592640463230606556558290469811157357259919830462835472238504352478221716513005725283389934966589082727604803912486883083743326315419067959703469582560055662298608881043524580608976201660844785257818753898427123572005422802071314285010142049031914239747465439126298741836001812372573796608989268206215061934537706850994725801946269312315162128425045494234034326700828947679890681892079106565819876316462365513408417154790169236411081520121163319279592658139956539788345764421024390095278953524038663392916261699331747406846015769323976976371164486968614756357455966546588817616097831432695597021581268441102223946516055420154463148828253717144939388820769285048655393618815336264141741900480628110909931988111225278571735054925684985060913044053674587027467317611457040928191574097659374622942915436375108207306562932553861937045245009663285879315213303472740112794838357453687847777714790229362901759479003952388181519122405839719388607488161663125981816146841185406628203220406326061864716161430186624732066163822525147606848813601145374351772389813712595360350917047635032341837657764010471452024689744926991772320425726650723845701854688308972072780308873646910977827307711225616423478936007645256082085328432779047165311075225761026309916489402299204522991864186213782628207211229062374759010033892288101312408221881835328290649593966064081994218133733985076648815755382032942935754121460632644536137319424298780454033697544492811914382785811257026075221417179711634691040148060875456542873880452792250555094225757820342184976738970293443345989233684549385075698075277780573780377098138024375716322147315239316905014188870525842001419133578361967597760815885428310280769980494138126239389304897884079165521231588633194176671665883980546830002452202726267567028924111419231668656134279791401077381451117975970635042032186064695836131723214167398183918632754548850261323499826218182768536881149430850659622669196415313183982659360263649071159972694006721044122074047099850483771660655901735798176442679064195515728686920408718217552866352212136107641157931637413575400746765863479503553938034530010823702748887976398869433842152770067412950806150899997633620974500342601573177961787926923934302554232759887448326109457695721402149571242353680439026089609786424633755161827192432392139566995189180009599747970424683732906634983233321768103095799418079504523386067351115379096978078462021963520691695804586374955924290927227119935454124899866769082886175098766683764668979539859727806686292376240526205002269761361679267746945526240745411550414996458172166997544417723236235017945307409744185994505906689774882117981037396106298040650792563407356240077108221165981719515950677879722438999404947278264606008518961890387543888288134841780100105373799192258146292565628556582888755046942353093114608012315783370451921598250692862474065847716889365550986202245979873078906881790494985736842806260387033481213815232654320143725717302878801025124474466162044145071435672049355497896929588548749576478690733843515951513230435505860967855363440808033784896153147468899504172102230039554066608927756370168797845471118735335786366981562077750643182841245163200271074910123367372868351074990523407110488320651613056026283536595767222055